[
  {
    "path": ".gitignore",
    "content": "node_modules/\nvs/\n"
  },
  {
    "path": "README.md",
    "content": "WasmFiddle\n====\nThis repository contains the WasmFiddle website source code.\n\nDeprecation notice\n====\nThe project scope was extended. We created a new repository at https://github.com/wasdk/WebAssemblyStudio -- the development will be continued there.\n\nRunning your own local copy of the website\n===\n\nTo run a local copy, you will need to install node.js and webpack on your computer, then run the following commands:\n\n```\nnpm install\nnpm install --only=dev\n```\n\nTo build WasmFiddle whenever a file changes run:\n\n```\nnpm run build-watch\n```\n\nTo start a dev web server run:\n\n```\nnpm run dev-server\n```\n"
  },
  {
    "path": "config/webpack.config.js",
    "content": "var WebpackNotifierPlugin = require('webpack-notifier');\nconst CopyWebpackPlugin = require('copy-webpack-plugin');\n\nmodule.exports = {\n    entry: \"./src/index.tsx\",\n    output: {\n        filename: \"./dist/bundle.js\",\n    },\n\n    // Enable sourcemaps for debugging webpack's output.\n    devtool: \"source-map\",\n\n    resolve: {\n        // Add '.ts' and '.tsx' as resolvable extensions.\n        extensions: [\".webpack.js\", \".web.js\", \".ts\", \".tsx\", \".js\"]\n    },\n\n    module: {\n        rules: [\n            // All files with a '.ts' or '.tsx' extension will be handled by 'ts-loader'.\n            {\n                test: /\\.tsx?$/,\n                loader: \"ts-loader\"\n            },\n\n            // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'.\n            {\n                test: /\\.js$/,\n                enforce: \"pre\",\n                loader: \"source-map-loader\"\n            }\n        ]\n    },\n    plugins: [\n        // Set up the notifier plugin - you can remove this (or set alwaysNotify false) if desired\n        // new WebpackNotifierPlugin({ alwaysNotify: true }),\n        new CopyWebpackPlugin([{\n            from: 'node_modules/monaco-editor/min/vs',\n            to: 'vs',\n        }])\n    ],\n    // When importing a module whose path matches one of the following, just\n    // assume a corresponding global variable exists and use that instead.\n    // This is important because it allows us to avoid bundling all of our\n    // dependencies, which allows browsers to cache those libraries between builds.\n    externals: {\n        \"react\": \"React\",\n        \"react-dom\": \"ReactDOM\"\n    },\n};"
  },
  {
    "path": "data/monu16.json",
    "content": "{\"voxels\":[1358959397,1430210632,1430145096,1430079560,1430014024,1429948488,1429882952,1429817416,1358959404,1429751880,1429686344,1664436296,1530153032,1530087496,1530021960,1430210888,1429686600,1358959398,1664436552,1530153288,1530087752,1530022216,1430210633,1429686345,1664436297,1530153033,1358959403,1530087497,1530021961,1430211144,1429686856,1664436808,1530153544,1530088008,1530022472,1358959399,1430210634,1429686346,1664436298,1530153034,1530087498,1530021962,1430211400,1429687112,1358959402,1664437064,1530153800,1530088264,1530022728,1430210635,1429686347,1664436299,1530153035,1358959400,1530087499,1530021963,1430211656,1429687368,1664437320,1530154056,1530088520,1530022984,1358959401,1430210636,1429686348,1664436300,1530153036,1530087500,1530021964,1430211912,1429687624,1664437576,1530154312,1530088776,1530023240,1430210637,1429686349,1664436301,1530153037,1530087501,1530021965,1430212168,1429687880,1664437832,1530154568,1530089032,1530023496,1430210638,1429686350,1664436302,1530153038,1530087502,1530021966,1430212424,1429688136,1664438088,1530154824,1530089288,1530023752,1430210639,1429686351,1664436303,1530153039,1530087503,1530021967,1430212680,1430147144,1430081608,1430016072,1364005474,1429950536,1429885000,1429819464,1429753928,1429688392,1664438344,1530155080,1530089544,1530024008,1430210640,1430145104,1430079568,1430014032,1429948496,1429882960,1429817424,1429751888,1429686352,1664436304,1530153040,1530087504,1530021968,1430212681,1429688393,1560818222,1664438345,1430210896,1429686608,1664436560,1430212682,1429688394,1664438346,1430211152,1429686864,1664436816,1430212683,1429688395,1664438347,1430211408,1429687120,1358960674,1664437072,1358960418,1358960162,1358959906,1430212684,1429688396,1695035695,1664438348,1430211664,1429687376,1664437328,1430212685,1429688397,1664438349,1430211920,1429687632,1664437584,1430212686,1429688398,1664438350,1430212176,1429687888,1664437840,1430212687,1429688399,1664438351,1430212432,1429688144,1664438096,1430212688,1430147152,1430081616,1430016080,1429950544,1429885008,1429819472,1429753936,1695030094,1429688400,1664438352,1534878049,1364154906,1364154905,1560812622,1364154904,1364154903,1534878048,1534878047,1534878046,1460149582,1534878045,1534878044,1364091418,1364091417,1364091416,1364091415,1534878043,1534878042,1367105881,1367105880,1367105879,1364091162,1560813134,1367105878,1364090906,1367105877,1364090650,1367105876,1528979298,1364090394,1695031118,1367105875,1364090138,1367105874,1364089882,1367105873,1364089626,1367105872,1560813646,1364089370,1364089369,1364089368,1364089367,1367105871,1367105870,1367105869,1728586062,1367105868,1367105867,1364025882,1364025881,1364025880,1364025879,1367105866,1560814158,1367105865,1367105864,1367105863,1367105862,1364025626,1367105861,1364025370,1695032142,1728595278,1367105860,1364025114,1367105859,1364024858,1358959405,1367105858,1695032398,1560822862,1364024602,1367105857,1364024346,1367105856,1364024090,1367105855,1560814926,1695040334,1364023834,1364023833,1364023832,1364023831,1367105854,1367105853,1728587342,1560822350,1367105852,1367105851,1367105850,1363960346,1363960345,1358959396,1560815438,1460158798,1363960344,1363960343,1367105849,1367105848,1695033422,1560821838,1367105847,1367105846,1367105845,1363960090,1560815950,1695039310,1367105844,1363959834,1367105843,1363959578,1460152910,1695039054,1367105842,1363959322,1367105841,1363959066,1560816462,1560821070,1367105840,1363958810,1367105839,1363958554,1695034446,1460157518,1367105838,1363958298,1363958297,1363958296,1363958295,1560820558,1367105837,1367105836,1367105835,1367105834,1367105833,1695038030,1363894810,1363894809,1363894808,1363894807,1367105832,1367105831,1627400519,1367105830,1367105829,1560820046,1367105828,1363894554,1367105827,1363894298,1367105826,1728591950,1363894042,1367105825,1363893786,1367105824,1363893530,1367105823,1367105822,1367105821,1363893274,1367105820,1363893018,1367105819,1363892762,1363892761,1363892760,1363892759,1367105818,1367105817,1367105816,1367105815,1367105814,1363829274,1363829273,1363829272,1560817712,1363829271,1367105813,1695035185,1367105812,1367105811,1560817202,1534877793,1534877792,1695034675,1363829018,1534877791,1695034420,1363828762,1534877790,1695034165,1363828506,1534877789,1695033910,1363828250,1534877788,1560815927,1363827994,1534877787,1695033400,1363827738,1534877786,1560815417,1560817460,1363827482,1367105625,1560817715,1363827226,1363827225,1363827224,1363827223,1695037503,1367105624,1367105623,1560819520,1367105622,1367105621,1695036993,1367105620,1365270810,1367105619,1363763738,1363763737,1363763736,1363763735,1367105618,1367105617,1367105616,1367105615,1367105614,1363763482,1367105613,1367105612,1363763226,1367105611,1363762970,1367105610,1363762714,1367105609,1363762458,1367105608,1363762202,1367105607,1363761946,1367105606,1363761690,1363761689,1363761688,1363761687,1367105605,1367105604,1367105603,1367105602,1367105601,1363698202,1363698201,1363698200,1363698199,1367105600,1367105599,1367105598,1367105597,1367105596,1363697946,1367105595,1363697690,1695031094,1367105594,1363697434,1367105593,1363697178,1367105592,1363696922,1367105591,1363696666,1367105590,1363696410,1695043624,1367105589,1363696154,1560825641,1363696153,1363696152,1460162090,1363696151,1367105588,1560825131,1367105587,1367105586,1695042604,1367105585,1367105584,1695042349,1363632666,1363632665,1560824366,1363632664,1363632663,1367105583,1367105582,1560824111,1367105581,1367105580,1695041584,1367105579,1367105578,1695041329,1367105577,1367105576,1560823346,1367105575,1367105574,1460159795,1367105573,1367105572,1560822836,1363630618,1363630617,1695040309,1363630616,1363630615,1695040054,1367105571,1367105570,1560822071,1367105569,1367105568,1560821816,1367105567,1363567130,1695039289,1363567129,1363567128,1363567127,1367105566,1367105565,1367105564,1367105563,1367105562,1367105561,1367105560,1367105559,1367105558,1367105557,1367105556,1367105555,1363565082,1363565081,1695037759,1363565080,1363565079,1560819776,1534877537,1534877536,1560819521,1365270554,1534877535,1534877534,1534877533,1363501594,1528914018,1363501593,1363501592,1363501591,1534877532,1534877531,1534877530,1367105369,1367105368,1367105367,1367105366,1367105365,1367105364,1367105363,1367105362,1367105361,1363499546,1363499545,1363499544,1363499543,1367105360,1367105359,1367105358,1367105357,1367105356,1363436058,1363436057,1363436056,1363436055,1367105355,1367105354,1367105353,1367105352,1367105351,1365270298,1367105350,1367105349,1367105348,1367105347,1367105346,1367105345,1367105344,1367105343,1363434010,1363434009,1363434008,1363434007,1367105342,1367105341,1367105340,1367105339,1367105338,1363370522,1363370521,1560813623,1363370520,1363370519,1367105337,1367105336,1358959406,1367105335,1367105334,1367105333,1367105332,1367105331,1358959395,1367105330,1367105329,1367105328,1367105327,1367105326,1363368474,1363368473,1363368472,1363368471,1367105325,1367105324,1367105323,1367105322,1695043625,1367105321,1363304986,1560825642,1363304985,1363304984,1560825387,1363304983,1367105320,1695042860,1367105319,1367105318,1695042605,1367105317,1367105316,1560824622,1367105315,1367105314,1728596527,1367105313,1367105312,1560824112,1367105311,1367105310,1695041585,1367105309,1363302938,1363302937,1363302936,1363302935,1367105308,1367105307,1367105306,1358959407,1367105305,1367105304,1363239450,1363239449,1363239448,1358959394,1363239447,1367105303,1695041330,1367105302,1367105301,1560823347,1367105300,1367105299,1560823092,1534877281,1534877280,1695040565,1534877279,1534877278,1695040310,1534877277,1534877276,1560822327,1534877275,1363237402,1728594232,1363237401,1363237400,1560821817,1363237399,1534877274,1695039290,1367105113,1367105112,1367105111,1367105110,1363173914,1363173913,1358959899,1363173912,1363173911,1367105109,1367105108,1367105107,1367105106,1367105105,1367105104,1358959408,1367105103,1367105102,1367105101,1367105100,1367105099,1367105098,1363171866,1363171865,1363171864,1363171863,1367105097,1367105096,1358959393,1358960155,1367105095,1367105094,1367105093,1363108378,1363108377,1363108376,1363108375,1367105092,1367105091,1367105090,1367105089,1367105088,1358959409,1367105087,1367105086,1367105085,1367105084,1367105083,1358959392,1367105082,1367105081,1363106330,1363106329,1363106328,1460150584,1363106327,1367105080,1367105079,1367105078,1367105077,1695038015,1367105076,1363042842,1560820032,1363042841,1363042840,1728591937,1363042839,1367105075,1367105074,1367105073,1367105072,1367105071,1367105070,1367105069,1528848738,1367105068,1367105067,1367105066,1367105065,1367105064,1367105063,1363040794,1363040793,1363040792,1358960411,1363040791,1367105062,1367105061,1367105060,1367105059,1367105058,1362977306,1358959410,1365270042,1362977305,1362977304,1362977303,1367105057,1358959391,1358960667,1367105056,1367105055,1367105054,1367105053,1367105052,1367105051,1367105050,1358959411,1367105049,1367105048,1367105047,1367105046,1362975258,1358959390,1362975257,1362975256,1362975255,1367105045,1367105044,1367105043,1534877025,1534877024,1358959412,1362911770,1362911769,1362911768,1362911767,1534877023,1358959389,1534877022,1534877021,1534877020,1534877019,1534877018,1367104857,1367104856,1367104855,1367104854,1367104853,1367104852,1362909722,1362909721,1362909720,1362909719,1367104851,1367104850,1367104849,1367104848,1367104847,1362846234,1362846233,1362846232,1362846231,1367104846,1367104845,1367104844,1367104843,1367104842,1367104841,1367104840,1367104839,1367104838,1367104837,1367104836,1367104835,1362844186,1362844185,1362844184,1362844183,1367104834,1367104833,1367104832,1367104831,1367104830,1362780698,1362780697,1362780696,1362780695,1527931234,1367104829,1367104828,1367104827,1367104826,1367104825,1367104824,1367104823,1367104822,1367104821,1358959413,1367104820,1367104819,1365269786,1367104818,1367104817,1358959388,1362778650,1362778649,1362778648,1362778647,1367104816,1367104815,1367104814,1367104813,1358959414,1367104812,1362715162,1362715161,1362715160,1362715159,1358959387,1367104811,1367104810,1367104809,1367104808,1367104807,1367104806,1367104805,1367104804,1358959415,1367104803,1367104802,1365269530,1367104801,1367104800,1367104799,1362713114,1362713113,1695043626,1362713112,1362713111,1560825643,1367104798,1367104797,1695043116,1367104796,1367104795,1695042861,1367104794,1362649626,1695042606,1362649625,1362649624,1560824623,1362649623,1367104793,1560824368,1367104792,1367104791,1695041841,1367104790,1367104789,1695041586,1367104788,1367104787,1695041331,1534876769,1534876768,1560823348,1534876767,1534876766,1534876765,1362647578,1362647577,1362647576,1362647575,1534876764,1534876763,1534876762,1367104601,1358959416,1367104600,1362584090,1362584089,1362584088,1367104599,1362584087,1367104598,1560814137,1365269274,1367104597,1367104596,1367104595,1367104594,1367104593,1367104592,1367104591,1367104590,1367104589,1367104588,1367104587,1362582042,1362582041,1362582040,1362582039,1358959417,1367104586,1367104585,1367104584,1367104583,1367104582,1362518554,1362518553,1362518552,1362518551,1367104581,1367104580,1367104579,1367104578,1367104577,1358959418,1367104576,1365269018,1365269017,1365269016,1365269015,1367104575,1367104574,1367104573,1367104572,1367104571,1367104570,1367104569,1367104568,1362516506,1358959419,1367104567,1367104566,1367104565,1367104564,1365205530,1362516505,1362516504,1695040821,1362516503,1367104563,1695040566,1367104562,1367104561,1695040311,1367104560,1367104559,1560822328,1362453018,1362453017,1560822073,1362453016,1362453015,1695039546,1367104558,1367104557,1695039291,1367104556,1367104555,1367104554,1367104553,1367104552,1367104551,1367104550,1367104549,1367104548,1367104547,1362450970,1695038271,1362450969,1362450968,1362450967,1367104546,1367104545,1367104544,1367104543,1367104542,1362387482,1362387481,1358959420,1365205529,1365205528,1365205527,1367104541,1362387480,1362387479,1367104540,1367104539,1367104538,1367104537,1367104536,1367104535,1358959421,1367104534,1367104533,1627397968,1367104532,1367104531,1534876513,1534876512,1534876511,1534876510,1534876509,1362385434,1362385433,1362385432,1362385431,1534876508,1358959422,1534876507,1534876506,1365205274,1367104345,1528783458,1367104344,1367104343,1362321946,1362321945,1362321944,1362321943,1367104342,1367104341,1367104340,1358959423,1367104339,1367104338,1367104337,1367104336,1367104335,1367104334,1367104333,1367104332,1367104331,1358959424,1695038016,1362319898,1362319897,1362319896,1560820033,1362319895,1367104330,1528783457,1367104329,1367104328,1528783456,1367104327,1367104326,1362256410,1362256409,1362256408,1362256407,1367104325,1367104324,1367104323,1367104322,1367104321,1367104320,1367104319,1367104318,1367104317,1367104316,1367104315,1367104314,1362254362,1362254361,1362254360,1362254359,1367104313,1367104312,1367104311,1367104310,1367104309,1362190874,1362190873,1362190872,1362190871,1367104308,1358959425,1367104307,1367104306,1367104305,1367104304,1367104303,1367104302,1367104301,1367104300,1367104299,1367104298,1367104297,1358959426,1362188826,1362188825,1362188824,1362188823,1367104296,1367104295,1367104294,1367104293,1358959427,1367104292,1362125338,1362125337,1362125336,1362125335,1367104291,1367104290,1367104289,1358959428,1367104288,1367104287,1367104286,1367104285,1367104284,1367104283,1367104282,1367104281,1367104280,1362123290,1362123289,1358959429,1362123288,1362123287,1367104279,1367104278,1367104277,1367104276,1367104275,1362059802,1362059801,1362059800,1362059799,1534876257,1534876256,1534876255,1534876254,1534876253,1534876252,1534876251,1534876250,1367103841,1367103840,1367103839,1367103838,1362057754,1362057753,1362057752,1362057751,1367103837,1695043627,1367103836,1367103835,1695043372,1367103585,1367103584,1695043117,1361994266,1361994265,1361994264,1361994263,1367103583,1367103582,1367103581,1367103580,1358959430,1367103579,1367103329,1367103328,1367103327,1367103326,1367103325,1367103324,1367103323,1361992218,1361992217,1361992216,1358959431,1361992215,1367103073,1367103072,1367103071,1367103070,1367103069,1361928730,1361928729,1358959432,1361928728,1361928727,1367103068,1367103067,1367102817,1367102816,1367102815,1367102814,1367102813,1367102812,1367102811,1358959433,1367102561,1367102560,1367102559,1361926682,1361926681,1361926680,1361926679,1367102558,1367102557,1367102556,1367102555,1358959434,1695039288,1367102305,1361863194,1361863193,1361863192,1361863191,1367102304,1367102303,1367102302,1367102301,1367102300,1358959435,1367102299,1367102049,1560825134,1367102048,1367102047,1695042607,1367102046,1367102045,1560824624,1367102044,1361861146,1695042097,1361861145,1361861144,1560824114,1361861143,1367102043,1695041587,1367101793,1367101792,1695041332,1367101791,1367101790,1695041077,1361797658,1361797657,1695040822,1361797656,1695032122,1361797655,1560822839,1367101789,1367101788,1695040312,1367101787,1367101537,1367101536,1560822329,1367101535,1528783455,1560821815,1367101534,1367101533,1367101532,1367101531,1367101281,1367101280,1361795610,1361795609,1361795608,1361795607,1367101279,1358959436,1695039798,1367101278,1367101277,1367101276,1367101275,1361732122,1361732121,1361732120,1361732119,1367101025,1367101024,1358959437,1695040053,1367101023,1367101022,1695040308,1367101021,1367101020,1367101019,1367100769,1367100768,1367100767,1367100766,1367100765,1358959438,1361730074,1361730073,1560822835,1361730072,1361730071,1367100764,1367100763,1367100513,1367100512,1367100511,1361666586,1361666585,1361666584,1358959439,1560823090,1361666583,1367100510,1367100509,1367100508,1367100507,1367100257,1367100256,1367100255,1367100254,1367100253,1358959440,1695041073,1367100252,1367100251,1367100001,1361664538,1361664537,1361664536,1361664535,1367100000,1367099999,1367099998,1358959441,1695041328,1367099997,1367099996,1361601050,1361601049,1695039802,1361601048,1361601047,1560821819,1367099995,1367099745,1695039292,1367099744,1367099743,1367099742,1367099741,1367099740,1367099739,1367099489,1367099488,1695038527,1367099487,1367099486,1560820544,1361599002,1361599001,1695038017,1367099485,1365205018,1528783454,1361599000,1361598999,1367099484,1367099483,1367099233,1367099232,1367099231,1361535514,1361535513,1361535512,1361535511,1367099230,1367099229,1367099228,1367099227,1358959442,1695041583,1367098977,1367098976,1367098975,1528783453,1367098974,1367098973,1367098972,1367098971,1367098721,1361533466,1528783452,1361533465,1358959443,1560824110,1361533464,1361533463,1367098720,1528783451,1528783450,1367098719,1367098718,1367098717,1367098716,1361469978,1361469977,1358959444,1527997026,1361469976,1361469975,1695042093,1367098715,1367098465,1367098464,1527997025,1527997024,1527997023,1367098463,1367098462,1367098461,1367098460,1358959445,1695042348,1367098459,1367098209,1367098208,1527997022,1527997021,1527997020,1527997019,1367098207,1367098206,1361467930,1358959446,1695042603,1361467929,1361467928,1361467927,1527997018,1367098205,1367098204,1367098203,1367097953,1367097952,1361404442,1358959447,1560825130,1361404441,1361404440,1361404439,1367097951,1367097950,1367097949,1367097948,1367097947,1367097697,1367097696,1358959448,1560825385,1367097695,1367097694,1367097693,1367097692,1367097691,1361402394,1361402393,1361402392,1358959449,1361402391,1367097441,1367097440,1367097439,1367097438,1367097437,1528372578,1528307042,1528241506,1528175970,1528110434,1695043368,1361338906,1361338905,1528044898,1527979362,1528375138,1528309602,1528244066,1528178530,1528112994,1528047458,1695043623,1361338904,1361338903,1527981922,1367097436,1367097435,1367097185,1367097184,1367097183,1367097182,1367097181,1367097180,1367097179,1367096929,1695032379,1367096928,1367096927,1361336858,1361336857,1361336856,1361336855,1367096926,1367096925,1367096924,1367096923,1367096673,1361273370,1361273369,1361273368,1361273367,1367096672,1367096671,1367096670,1367096669,1367096668,1367096667,1367096417,1367096416,1367096415,1367096414,1367096413,1367096412,1361271322,1361271321,1361271320,1361271319,1367096411,1367096161,1367096160,1367096159,1367096158,1528376154,1528310618,1528245082,1528179546,1528114010,1361207834,1361207833,1361207832,1528048474,1527982938,1361207831,1367096157,1367096156,1367096155,1367095905,1367095904,1367095903,1367095902,1367095901,1367095900,1367095899,1367095649,1367095648,1361205786,1361205785,1361205784,1361205783,1367095647,1367095646,1367095645,1367095644,1367095643,1361142298,1361142297,1361142296,1361142295,1367095393,1367095392,1367095391,1367095390,1367095389,1367095388,1367095387,1367095137,1367095136,1367095135,1367095134,1367095133,1361140250,1361140249,1361140248,1361140247,1367095132,1367095131,1367094881,1367094880,1367094879,1361076762,1361076761,1361076760,1361076759,1367094878,1367094877,1365204762,1367094876,1367094875,1367094625,1367094624,1367094623,1367094622,1367094621,1367094620,1367094619,1367094369,1367094368,1361074714,1361074713,1361074712,1361074711,1695043628,1367094367,1367094366,1695043373,1367094365,1367094364,1367094363,1627397456,1560825390,1361011226,1361011225,1560825135,1361011224,1361011223,1695042608,1367094113,1367094112,1695042353,1367094111,1367094110,1367094109,1367094108,1367094107,1560824370,1367093857,1367093856,1560824115,1367093855,1367093854,1367093853,1361009178,1361009177,1361009176,1695036737,1361009175,1367093852,1695036992,1367093851,1367093601,1695037247,1367093600,1367093599,1360945690,1360945689,1360945688,1360945687,1367093598,1367093597,1367093596,1367093595,1367093345,1695041333,1367093344,1367093343,1695041078,1367093342,1367093341,1560823095,1367093340,1367093339,1560822840,1367093089,1360943642,1695040313,1360943641,1360943640,1695040058,1360943639,1367093088,1560822075,1367093087,1367093086,1560821820,1367093085,1367093084,1695039293,1360880154,1360880153,1360880152,1360880151,1367093083,1367092833,1367092832,1367092831,1367092830,1367092829,1367092828,1367092827,1367092577,1367092576,1367092575,1367092574,1695034445,1360878106,1360878105,1360878104,1360878103,1367092573,1560816461,1367092572,1367092571,1367092321,1367092320,1360814618,1560816205,1360814617,1360814616,1360814615,1367092319,1367092318,1560815949,1367092317,1367092316,1367092315,1367092065,1367092064,1695033421,1367092063,1367092062,1695038783,1367092061,1367092060,1560820800,1367092059,1360812570,1560820545,1527144987,1527210523,1527276059,1360812569,1360812568,1360812567,1367091809,1367091808,1367091807,1367091806,1367091805,1360749082,1360749081,1360749080,1360749079,1367091804,1367091803,1367091553,1367091552,1367091551,1367091550,1367091549,1367091548,1367091547,1367091297,1367091296,1560814908,1367091295,1360747034,1360747033,1360747032,1360747031,1367091294,1367091293,1367091292,1560815437,1367091291,1367091041,1360683546,1360683545,1560819789,1560815181,1360683544,1360683543,1367091040,1367091039,1560820045,1560814925,1367091038,1367091037,1367091036,1367091035,1695038029,1695032397,1367090785,1367090784,1367090783,1367090782,1560820557,1695032141,1367090781,1367090780,1360681498,1360681497,1560820813,1560814157,1360681496,1360681495,1367090779,1367090529,1560821069,1560813901,1367090528,1367090527,1367090526,1360618010,1360618009,1360618008,1360618007,1367090525,1367090524,1367090523,1367090273,1367090272,1367090271,1367090270,1367090269,1367090268,1367090267,1367090017,1367090016,1360615962,1360615961,1360615960,1360615959,1367090015,1367090014,1367090013,1367090012,1367090011,1360552474,1360552473,1360552472,1695043629,1360552471,1367089761,1560825646,1367089760,1367089759,1367089758,1367089757,1695039053,1560813645,1367089756,1367089755,1367089505,1367089504,1695039309,1695031117,1367089503,1367089502,1367089501,1360550426,1560821837,1560813133,1360550425,1360550424,1360550423,1367089500,1560822093,1560812877,1367089499,1367089249,1367089248,1367089247,1560822349,1560812621,1360486938,1360486937,1360486936,1360486935,1695040333,1695030093,1367089246,1367089245,1367089244,1367089243,1560822861,1367088993,1367088992,1367088991,1367088990,1367088989,1560823117,1358960676,1367088988,1367088987,1367088737,1360484890,1360484889,1360484888,1360484887,1367088736,1367088735,1367088734,1367088733,1367088732,1360421402,1360421401,1360421400,1360421399,1367088731,1460162095,1367088481,1367088480,1560825136,1367088479,1367088478,1695042609,1367088477,1367088476,1560824626,1367088475,1367088225,1460161075,1367088224,1367088223,1367088222,1360419354,1360419353,1360419352,1360419351,1367088221,1695041334,1367088220,1367088219,1560823351,1367087969,1367087968,1460159800,1360355866,1360355865,1560822841,1360355864,1360355863,1367087967,1367087966,1367087965,1367087964,1367087963,1367087713,1367087712,1367087711,1367087710,1367087709,1367087708,1367087707,1360353818,1360353817,1360353816,1360353815,1367087457,1367087456,1367087455,1367087454,1367087453,1360290330,1360290329,1360290328,1360290327,1367087452,1367087451,1367087201,1367087200,1367087199,1367087198,1367087197,1367087196,1367087195,1367086945,1367086944,1367086943,1560820546,1695038275,1560820548,1560820549,1560820550,1695038279,1695038280,1560820553,1560820554,1360288282,1560820555,1695038284,1360288281,1360288280,1360288279,1367086942,1367086941,1367086940,1367086939,1367086689,1360224794,1367086688,1360224793,1360224792,1365204506,1360224791,1367086687,1367086686,1560820802,1695038531,1560820804,1728592965,1560820806,1367086685,1367086684,1560815165,1695038535,1695038536,1560820809,1728592970,1560820811,1695038540,1695038018,1695038019,1695038020,1695038021,1695038022,1695038023,1695038024,1695038025,1695038026,1695038027,1695038028,1367086683,1367086433,1367086432,1367086431,1367086430,1367086429,1367086428,1367086427,1360222746,1360222745,1360222744,1360222743,1367086177,1367086176,1367086175,1367086174,1367086173,1360159258,1360159257,1360159256,1360159255,1367086172,1367086171,1367085921,1367085920,1367085919,1367085918,1367085917,1367085916,1367085915,1534812513,1534812512,1534812511,1560821058,1695038787,1560821060,1560821061,1560821062,1695038791,1695038792,1560821065,1560821066,1560821067,1695038796,1560820034,1695037763,1560820036,1560820037,1560820038,1695037767,1695037768,1560820041,1560820042,1560820043,1695037772,1360157210,1360157209,1360157208,1360157207,1534812510,1534812509,1534812508,1534812507,1534812506,1360093722,1360093721,1360093720,1360093719,1367040345,1367040344,1367040343,1367040342,1367040341,1367040340,1367040339,1367040338,1367040337,1367040336,1367040335,1367040334,1360091674,1360091673,1360091672,1360091671,1367040333,1367040332,1367040331,1367040330,1367040329,1360028186,1360028185,1360028184,1360028183,1367040328,1367040327,1367040326,1367040325,1367040324,1367040323,1367040322,1367040321,1367040320,1695040314,1367040319,1367040318,1560822331,1367040317,1360026138,1360026137,1460158780,1360026136,1360026135,1367040316,1560821821,1367040315,1367040314,1695039294,1367040313,1367040312,1695039039,1359962650,1359962649,1560821056,1359962648,1359962647,1460157505,1527144988,1527210524,1527276060,1367040311,1367040310,1367040309,1367040308,1367040307,1367040306,1367040305,1367040304,1367040303,1695039042,1695039043,1695039044,1695039045,1695039046,1695039047,1695039048,1695039049,1695039050,1695039051,1695039052,1560819778,1695037507,1560819780,1460156485,1560819782,1695037511,1695037512,1560819785,1460156490,1560819787,1695037516,1367040302,1367040301,1367040300,1359960602,1359960601,1359960600,1359960599,1367040299,1367040298,1367040297,1367040296,1367040295,1359897114,1359897113,1359897112,1359897111,1367040294,1367040293,1367040292,1367040291,1367040290,1367040289,1367040288,1367040287,1367040286,1367040285,1367040284,1367040283,1359895066,1359895065,1359895064,1359895063,1367040282,1367040281,1367040280,1367040279,1367040278,1359831578,1359831577,1359831576,1359831575,1367040277,1367040276,1367040275,1534812257,1534812256,1534812255,1534812254,1534812253,1534812252,1695039304,1695039305,1695039306,1695039307,1695039308,1560819522,1534812251,1695037251,1560819524,1560819525,1560819526,1695037255,1534812250,1367040089,1359829530,1367040088,1359829529,1359829528,1359829527,1367040087,1367040086,1367040085,1367040084,1367040083,1359766042,1359766041,1359766040,1359766039,1367040082,1367040081,1367040080,1367040079,1367040078,1367040077,1367040076,1367040075,1367040074,1367040073,1367040072,1367040071,1359763994,1359763993,1359763992,1359763991,1367040070,1367040069,1367040068,1367040067,1367040066,1359700506,1359700505,1359700504,1359700503,1367040065,1367040064,1367040063,1367040062,1367040061,1367040060,1367040059,1367040058,1367040057,1367040056,1367040055,1367040054,1365204250,1359698458,1359698457,1359698456,1359698455,1367040053,1695039560,1560821833,1560821834,1560821835,1695039564,1695036994,1695036995,1695036996,1695036997,1695036998,1695036999,1367040052,1367040051,1367040050,1367040049,1359634970,1359634969,1359634968,1359634967,1367040048,1367040047,1367040046,1367040045,1367040044,1367040043,1367040042,1367040041,1367040040,1367040039,1367040038,1367040037,1359632922,1359632921,1359632920,1359632919,1367040036,1367040035,1367040034,1367040033,1367040032,1359569434,1359569433,1359569432,1359569431,1367040031,1367040030,1367040029,1367040028,1367040027,1367040026,1367040025,1367040024,1367040023,1367040022,1367040021,1367040020,1359567386,1359567385,1359567384,1359567383,1367040019,1534812001,1534812000,1534811999,1534811998,1359503898,1359503897,1359503896,1359503895,1534811997,1534811996,1534811995,1534811994,1367039833,1367039832,1367039831,1367039830,1367039829,1367039828,1367039827,1367039826,1367039825,1627937050,1493719321,1627937048,1493719319,1367039824,1367039823,1367039822,1367039821,1367039820,1627936794,1493719065,1627936792,1493719063,1367039819,1367039818,1365203994,1367039817,1367039816,1695039816,1560822089,1728594250,1560822091,1695039820,1695036738,1695036739,1695036740,1695036741,1695036742,1695036743,1367039815,1367039814,1627936538,1493718809,1627936536,1493718807,1367039813,1367039812,1367039811,1367039810,1367039809,1627936282,1493718553,1627936280,1627936279,1367039808,1367039807,1367039806,1367039805,1367039804,1627936026,1493718297,1627936024,1627936023,1367039803,1367039802,1367039801,1367039800,1367039799,1627935770,1493718041,1627935768,1627935767,1367039798,1367039797,1367039796,1367039795,1367039794,1627935514,1493717785,1627935512,1627935511,1367039793,1367039792,1367039791,1367039790,1367039789,1627935258,1493717529,1627935256,1493717527,1367039788,1367039787,1367039786,1367039785,1695040072,1560822345,1560822346,1560822347,1695040076,1560818754,1695036483,1560818756,1560818757,1560818758,1695036487,1367039784,1367039783,1627935002,1493717273,1627935000,1627934999,1367039782,1367039781,1367039780,1367039779,1367039778,1627934746,1493717017,1627934744,1627934743,1367039777,1367039776,1367039775,1367039774,1367039773,1627934490,1493716761,1627934488,1627934487,1367039772,1367039771,1367039770,1367039769,1367039768,1627934234,1493716505,1627934232,1627934231,1367039767,1367039766,1367039765,1560815161,1367039764,1367039763,1627933978,1493716249,1627933976,1493716247,1534811745,1534811744,1534811743,1534811742,1534811741,1627933722,1493715993,1627933720,1493715991,1534811740,1534811739,1534811738,1365203738,1367039577,1367039576,1627933466,1493715737,1627933464,1695040328,1695040329,1695040330,1695040331,1695040332,1560818498,1695036227,1560818500,1460155205,1560818502,1695036231,1493715735,1367039575,1367039574,1367039573,1367039572,1367039571,1627933210,1493715481,1627933208,1627933207,1367039570,1367039569,1367039568,1367039567,1367039566,1627932954,1493715225,1627932952,1627932951,1367039565,1367039564,1367039563,1367039562,1367039561,1627932698,1493714969,1627932696,1627932695,1367039560,1367039559,1367039558,1367039557,1367039556,1627932442,1493714713,1627932440,1627932439,1367039555,1695043630,1367039554,1367039553,1560825647,1367039552,1367039551,1560825392,1627932186,1493714457,1695042865,1627932184,1493714455,1695042610,1367039550,1367039549,1560824627,1367039548,1367039547,1367039546,1627931930,1493714201,1627931928,1627931927,1367039545,1367039544,1367039543,1367039542,1367039541,1627931674,1493713945,1627931672,1627931671,1367039540,1367039539,1367039538,1367039537,1367039536,1627931418,1493713689,1627931416,1627931415,1367039535,1367039534,1367039533,1367039532,1367039531,1367039530,1365203482,1365203481,1365203480,1695040584,1560822857,1560822858,1560822859,1695040588,1560818242,1695035971,1560818244,1560818245,1560818246,1695035975,1627931162,1493713433,1627931160,1627931159,1367039529,1367039528,1367039527,1367039526,1367039525,1627930906,1493713177,1627930904,1493713175,1367039524,1367039523,1367039522,1367039521,1367039520,1627930650,1493712921,1627930648,1493712919,1367039519,1367039518,1367039517,1367039516,1365203479,1367039515,1367039514,1367039513,1367039512,1367039511,1365139994,1365139993,1365139992,1365139991,1367039510,1367039509,1367039508,1367039507,1534811489,1365139738,1534811488,1627930394,1493712665,1627930392,1493712663,1534811487,1534811486,1534811485,1365139482,1534811484,1534811483,1534811482,1627930138,1493712409,1627930136,1627930135,1367039321,1365139226,1367039320,1367039319,1367039318,1367039317,1367039316,1627929882,1493712153,1367039315,1365138970,1627929880,1627929879,1367039314,1367039313,1367039312,1367039311,1367039310,1367039309,1365138714,1627929626,1493711897,1627929624,1627929623,1367039308,1367039307,1367039306,1367039305,1367039304,1627929370,1493711641,1627929368,1627929367,1367039303,1367039302,1367039301,1367039300,1367039299,1627929114,1493711385,1627929112,1493711383,1367039298,1367039297,1367039296,1367039295,1367039294,1627928858,1493711129,1627928856,1627928855,1367039293,1365138458,1367039292,1367039291,1695040840,1560823113,1460159818,1560823115,1695040844,1695035714,1560814904,1367039290,1695035715,1695035716,1695035717,1695035718,1695035719,1367039289,1367039288,1627928602,1493710873,1627928600,1627928599,1367039287,1367039286,1367039285,1367039284,1367039283,1627928346,1493710617,1627928344,1627928343,1367039282,1367039281,1367039280,1367039279,1367039278,1627928090,1493710361,1627928088,1627928087,1367039277,1367039276,1367039275,1367039274,1367039273,1627927834,1493710105,1367039272,1365138202,1627927832,1493710103,1367039271,1367039270,1367039269,1367039268,1367039267,1367039266,1365137946,1365137945,1365137944,1365137943,1367039265,1367039264,1367039263,1367039262,1367039261,1365074458,1365074457,1365074456,1365074455,1367039260,1367039259,1367039258,1367039257,1367039256,1365074202,1627927578,1493709849,1627927576,1493709847,1367039255,1367039254,1367039253,1367039252,1365073946,1367039251,1534811233,1627927322,1493709593,1627927320,1493709591,1534811232,1534811231,1365073690,1534811230,1534811229,1534811228,1534811227,1627927066,1493709337,1627927064,1627927063,1534811226,1367039065,1367039064,1367039063,1367039062,1627926810,1493709081,1627926808,1627926807,1367039061,1367039060,1367039059,1367039058,1367039057,1627926554,1493708825,1627926552,1627926551,1367039056,1367039055,1367039054,1367039053,1367039052,1627926298,1493708569,1627926296,1627926295,1695041335,1367039051,1367039050,1560823352,1695032375,1367039049,1367039048,1367039047,1627926042,1560823097,1493708313,1627926040,1695040570,1493708311,1367039046,1695040315,1367039045,1367039044,1560822332,1367039043,1367039042,1560822077,1627925786,1493708057,1695039550,1627925784,1627925783,1367039041,1367039040,1367039039,1695039040,1367039038,1367039037,1560821057,1627925530,1367039036,1365073434,1493707801,1627925528,1627925527,1367039035,1367039034,1367039033,1367039032,1367039031,1365073178,1367039030,1627925274,1493707545,1627925272,1627925271,1367039029,1367039028,1367039027,1365072922,1367039026,1367039025,1367039024,1627925018,1493707289,1627925016,1627925015,1367039023,1365072666,1367039022,1367039021,1367039020,1367039019,1367039018,1627924762,1493707033,1367039017,1365072410,1365072409,1365072408,1365072407,1367039016,1367039015,1367039014,1367039013,1367039012,1365008922,1365008921,1365008920,1365008919,1367039011,1367039010,1367039009,1367039008,1367039007,1365008666,1627924760,1493707031,1367039006,1367039005,1367039004,1367039003,1367039002,1627924506,1493706777,1627924504,1493706775,1560817730,1695035459,1560817732,1560817733,1560817734,1695035463,1367039001,1367039000,1367038999,1367038998,1367038997,1627924250,1493706521,1627924248,1493706519,1367038996,1367038995,1534810977,1534810976,1534810975,1627923994,1493706265,1627923992,1627923991,1534810974,1534810973,1534810972,1534810971,1534810970,1627923738,1493706009,1627923736,1627923735,1367038809,1367038808,1695032118,1367038807,1367038806,1367038805,1627923482,1493705753,1627923480,1627923479,1367038804,1367038803,1367038802,1367038801,1367038800,1627923226,1493705497,1627923224,1627923223,1367038799,1367038798,1367038797,1367038796,1367038795,1627922970,1493705241,1627922968,1367038794,1365008410,1493705239,1367038793,1367038792,1367038791,1367038790,1367038789,1627922714,1367038788,1365008154,1493704985,1627922712,1627922711,1367038787,1367038786,1367038785,1367038784,1367038783,1365007898,1367038782,1627922458,1493704729,1627922456,1627922455,1367038781,1367038780,1367038779,1365007642,1367038778,1367038777,1367038776,1627922202,1493704473,1627922200,1627922199,1367038775,1365007386,1367038774,1367038773,1367038772,1367038771,1367038770,1627921946,1493704217,1367038769,1365007130,1627921944,1627921943,1367038768,1367038767,1367038766,1367038765,1367038764,1367038763,1365006874,1365006873,1365006872,1365006871,1367038762,1367038761,1367038760,1627921690,1493703961,1627921688,1493703959,1367038759,1560817474,1695035203,1560817476,1728589637,1560817478,1695035207,1367038758,1367038757,1367038756,1367038755,1627921434,1493703705,1627921432,1493703703,1367038754,1367038753,1367038752,1367038751,1367038750,1627921178,1493703449,1627921176,1493703447,1367038749,1367038748,1367038747,1367038746,1367038745,1627920922,1493703193,1627920920,1627920919,1367038744,1367038743,1367038742,1367038741,1367038740,1493702938,1493702937,1493702936,1493702935,1367038739,1534810721,1534810720,1534810719,1534810718,1627920410,1493702681,1627920408,1627920407,1534810717,1534810716,1534810715,1534810714,1367038305,1627920154,1493702425,1527144989,1527210525,1527276061,1627920152,1493702423,1367038304,1367038303,1364943386,1364943385,1364943384,1364943383,1367038302,1367038301,1367038300,1367038299,1367038049,1364943130,1367038048,1367038047,1367038046,1367038045,1367038044,1627919898,1493702169,1367038043,1364942874,1627919896,1493702167,1367037793,1367037792,1367037791,1367037790,1367037789,1367037788,1364942618,1627919642,1493701913,1493701912,1493701911,1367037787,1367037537,1367037536,1367037535,1364942362,1367037534,1367037533,1627919386,1627919385,1627919384,1493701655,1367037532,1367037531,1364942106,1367037281,1367037280,1367037279,1367037278,1493701402,1493701401,1493701400,1367037277,1364941850,1493701399,1367037276,1367037275,1367037025,1367037024,1367037023,1627918874,1627918873,1627918872,1627918871,1367037022,1367037021,1367037020,1364005730,1367037019,1367036769,1359438362,1359438361,1359438360,1359438359,1367036768,1367036767,1367036766,1367036765,1367036764,1367036763,1367036513,1367036512,1367036511,1367036510,1367036509,1367036508,1367036507,1367036257,1367036256,1695041602,1367036255,1695041603,1695041604,1695041605,1367036254,1367036253,1367036252,1367036251,1367036001,1367036000,1367035999,1560817218,1695034947,1560817220,1560817221,1560817222,1695034951,1367035998,1367035997,1367035996,1367035995,1367035745,1367035744,1367035743,1367035742,1367035741,1367035740,1367035739,1367035489,1367035488,1367035487,1367035486,1367035485,1367035484,1367035483,1367035233,1367035232,1367035231,1367035230,1367035229,1367035228,1364941594,1367035227,1367034977,1367034976,1367034975,1367034974,1367034973,1367034972,1367034971,1364941338,1364941337,1364941336,1364941335,1367034721,1367034720,1367034719,1367034718,1367034717,1364877850,1364877849,1364877848,1364877847,1367034716,1367034715,1367034465,1367034464,1367034463,1364877594,1367034462,1367034461,1367034460,1367034459,1367034209,1367034208,1367034207,1367034206,1364877338,1367034205,1367034204,1367034203,1367033953,1367033952,1367033951,1367033950,1367033949,1364877082,1367033948,1367033947,1367033697,1367033696,1367033695,1367033694,1367033693,1367033692,1367033691,1367033441,1367033440,1367033439,1367033438,1367033437,1367033436,1367033435,1367033185,1364005986,1359417882,1359417881,1359417880,1359417879,1367033184,1367033183,1367033182,1367033181,1367033180,1359372826,1359372825,1359372824,1359372823,1367033179,1367032929,1367032928,1367032927,1367032926,1367032925,1367032924,1367032923,1367032673,1560824130,1695041859,1560824132,1560824133,1367032672,1367032671,1367032670,1367032669,1367032668,1367032667,1367032417,1695034690,1695034691,1695034692,1695034693,1695034694,1695034695,1367032416,1367032415,1367032414,1367032413,1367032412,1367032411,1367032161,1367032160,1367032159,1367032158,1367032157,1367032156,1367032155,1367031905,1367031904,1367031903,1367031902,1367031901,1367031900,1367031899,1364876826,1367031649,1367031648,1367031647,1367031646,1367031645,1367031644,1367031643,1367031393,1364876570,1367031392,1367031391,1367031390,1367031389,1367031388,1367031387,1367031137,1367031136,1364876314,1367031135,1367031134,1367031133,1367031132,1367031131,1367030881,1367030880,1367030879,1364876058,1367030878,1367030877,1367030876,1367030875,1367030625,1367030624,1367030623,1367030622,1364875802,1364875801,1364875800,1364875799,1367030621,1367030620,1367030619,1367030369,1367030368,1364812314,1364812313,1364812312,1364812311,1367030367,1367030366,1367030365,1367030364,1364006242,1367030363,1367030113,1367030112,1367030111,1367030110,1359352346,1359352345,1359352344,1359352343,1367030109,1367030108,1367030107,1367029857,1367029856,1359307290,1359307289,1359307288,1359307287,1367029855,1367029854,1367029853,1367029852,1367029851,1367029601,1695043631,1367029600,1367029599,1560825648,1367029598,1367029597,1695043121,1367029596,1367029595,1560825138,1367029345,1367029344,1367029343,1367029342,1367029341,1367029340,1367029339,1367029089,1367029088,1367029087,1367029086,1367029085,1367029084,1367029083,1367028833,1367028832,1367028831,1367028830,1367028829,1367028828,1367028827,1367028577,1367028576,1367028575,1367028574,1367028573,1367028572,1367028571,1367028321,1367028320,1367028319,1367028318,1367028317,1367028316,1367028315,1364812058,1367028065,1367028064,1367028063,1367028062,1367028061,1367028060,1367028059,1367027809,1364811802,1367027808,1367027807,1367027806,1367027805,1367027804,1367027803,1367027553,1367027552,1364811546,1367027551,1367027550,1367027549,1367027548,1367027547,1367027297,1367027296,1367027295,1364811290,1367027294,1367027293,1367027292,1367027291,1367027041,1367027040,1367027039,1367027038,1364811034,1367027037,1367027036,1367027035,1367026785,1367026784,1359286810,1359286809,1367026783,1364810778,1359286808,1359286807,1367026782,1367026781,1367026780,1367026779,1367026529,1367026528,1364810522,1359241754,1560824386,1695042115,1560824388,1460161093,1359241753,1627400534,1364006498,1359241752,1359241751,1367026527,1367026526,1367026525,1367026524,1367026523,1367026273,1695034434,1695034435,1695034436,1695034437,1695034438,1695034439,1695034440,1695034441,1695034442,1695034443,1695034444,1367026272,1367026271,1367026270,1367026269,1367026268,1367026267,1367026017,1367026016,1367026015,1367026014,1367026013,1364006754,1367026012,1367026011,1367025761,1367025760,1367025759,1367025758,1627400278,1367025757,1367025756,1367025755,1367025505,1367025504,1367025503,1367025502,1367025501,1367025500,1367025499,1367025249,1367025248,1367025247,1367025246,1367025245,1367025244,1367025243,1367024993,1367024992,1367024991,1367024990,1367024989,1367024988,1367024987,1367024737,1367024736,1367024735,1367024734,1367024733,1367024732,1367024731,1364810266,1364810265,1364810264,1364810263,1367024481,1367024480,1367024479,1367024478,1367024477,1364746778,1364746777,1364746776,1364746775,1367024476,1367024475,1367024225,1367024224,1367024223,1364746522,1367024222,1367024221,1367024220,1367024219,1367023969,1367023968,1367023967,1367023966,1364746266,1367023965,1367023964,1367023963,1367023713,1367023712,1367023711,1367023710,1367023709,1364746010,1367023708,1367023707,1367023457,1367023456,1367023455,1367023454,1367023453,1367023452,1364745754,1367023451,1367023201,1367023200,1367023199,1359221274,1359221273,1359221272,1359221271,1367023198,1367023197,1367023196,1695042611,1367023195,1367022945,1359176218,1359176217,1359176216,1627400022,1627399766,1627399510,1627399254,1627398998,1627398742,1627398486,1627398230,1627397974,1359176215,1367022944,1367022943,1367022942,1367022941,1367022940,1367022939,1367022689,1367022688,1695041336,1627397718,1367022687,1367022686,1367022685,1560823353,1367022684,1367022683,1695040826,1367022433,1367022432,1560822843,1367022431,1367022430,1695040316,1367022429,1367022428,1560822333,1367022427,1367022177,1695039806,1560824642,1695042371,1560824644,1560824645,1367022176,1367022175,1367022174,1367022173,1367022172,1367022171,1367021921,1560816450,1695034179,1560816452,1560816453,1560816454,1526751771,1526751515,1526751259,1526751003,1526750747,1526750491,1526750235,1526749979,1526749723,1627412763,1627412507,1627412251,1627411995,1627411739,1627411483,1627411227,1627410971,1627410715,1627410459,1627410203,1627409947,1627409691,1627409435,1627409179,1627408923,1627408667,1627408411,1627408155,1627407899,1627407643,1627407387,1627407131,1627406875,1627406619,1627406363,1627406107,1627405851,1627405595,1627405339,1627405083,1627404827,1627404571,1627404315,1627404059,1627403803,1627403547,1627403291,1627403035,1627402779,1627402523,1627402267,1627402011,1627401755,1627401499,1627401243,1627400987,1627400731,1695034183,1695034184,1560816457,1560816458,1560816459,1364007010,1695034188,1367021920,1367021919,1367021918,1367021917,1367021916,1367021915,1367021665,1367021664,1367021663,1367021662,1367021661,1367021660,1367021659,1367021409,1367021408,1367021407,1367021406,1367021405,1367021404,1367021403,1367021153,1367021152,1367021151,1367021150,1367021149,1367021148,1367021147,1367020897,1367020896,1367020895,1367020894,1367020893,1367020892,1367020891,1367020641,1367020640,1367020639,1367020638,1367020637,1367020636,1367020635,1367020385,1367020384,1367020383,1367020382,1367020381,1367020380,1367020379,1695042626,1695042627,1695042628,1695042629,1534746977,1534746976,1359155738,1359155737,1359155736,1359155735,1534746975,1560816194,1695033923,1560816196,1526751772,1526751516,1526751260,1526751004,1526750748,1526750492,1526750236,1526749980,1526749724,1627412764,1627412508,1627412252,1627411996,1627411740,1627411484,1627411228,1627410972,1627410716,1627410460,1627410204,1627409948,1627409692,1627409436,1627409180,1627408924,1627408668,1627408412,1627408156,1627407900,1627407644,1627407388,1627407132,1627406876,1627406620,1627406364,1627406108,1627405852,1627405596,1627405340,1627405084,1627404828,1627404572,1627404316,1627404060,1627403804,1627403548,1627403292,1627403036,1627402780,1627402524,1627402268,1627402012,1627401756,1627401500,1627401244,1627400988,1627400732,1728588357,1560816198,1695033927,1695033928,1560816201,1728588362,1560816203,1695033932,1534746974,1534746973,1534746972,1534746971,1359110682,1359110681,1359110680,1359110679,1534746970,1366974809,1366974808,1366974807,1366974806,1366974805,1366974804,1366974803,1366974802,1366974801,1366974800,1366974799,1366974798,1366974797,1366974796,1366974795,1366974794,1366974793,1366974792,1366974791,1366974790,1366974789,1366974788,1366974787,1366974786,1366974785,1366974784,1366974783,1366974782,1366974781,1366974780,1366974779,1366974778,1366974777,1366974776,1366974775,1695039041,1527144990,1527210526,1527276062,1366974774,1366974773,1366974772,1366974771,1366974770,1366974769,1366974768,1366974767,1366974766,1366974765,1366974764,1366974763,1366974762,1526751773,1526751517,1526751261,1526751005,1526750749,1526750493,1526750237,1526749981,1526749725,1627412765,1627412509,1627412253,1627411997,1627411741,1627411485,1627411229,1627410973,1627410717,1627410461,1627410205,1627409949,1627409693,1627409437,1627409181,1627408925,1627408669,1627408413,1627408157,1627407901,1627407645,1627407389,1627407133,1627406877,1627406621,1627406365,1627406109,1627405853,1627405597,1627405341,1627405085,1627404829,1627404573,1627404317,1627404061,1627403805,1627403549,1627403293,1627403037,1627402781,1627402525,1627402269,1627402013,1627401757,1627401501,1627401245,1627400989,1627400733,1366974761,1366974760,1366974759,1366974758,1366974757,1366974756,1366974755,1366974754,1366974753,1366974752,1366974751,1366974750,1364007266,1366974749,1366974748,1366974747,1366974746,1366974745,1366974744,1366974743,1366974742,1359090202,1359090201,1359090200,1560825154,1695042883,1560825156,1560825157,1359090199,1366974741,1366974740,1366974739,1534746721,1534746720,1359045146,1560815938,1695033667,1560815940,1560815941,1560815942,1695033671,1695033672,1560815945,1560815946,1560815947,1695033676,1359045145,1359045144,1359045143,1534746719,1534746718,1534746717,1534746716,1534746715,1534746714,1366974553,1366974552,1366974551,1366974550,1366974549,1366974548,1366974547,1366974546,1366974545,1366974544,1366974543,1366974542,1366974541,1366974540,1526751774,1526751518,1526751262,1526751006,1526750750,1526750494,1526750238,1526749982,1526749726,1627412766,1627412510,1627412254,1627411998,1627411742,1627411486,1627411230,1627410974,1627410718,1627410462,1627410206,1627409950,1627409694,1627409438,1627409182,1627408926,1627408670,1627408414,1627408158,1627407902,1627407646,1627407390,1627407134,1627406878,1627406622,1627406366,1627406110,1627405854,1627405598,1627405342,1627405086,1627404830,1627404574,1627404318,1627404062,1627403806,1627403550,1627403294,1627403038,1627402782,1627402526,1627402270,1627402014,1627401758,1627401502,1627401246,1627400990,1627400734,1366974539,1366974538,1366974537,1366974536,1366974535,1366974534,1364007522,1366974533,1366974532,1366974531,1366974530,1366974529,1366974528,1366974527,1366974526,1366974525,1366974524,1366974523,1366974522,1366974521,1366974520,1366974519,1366974518,1366974517,1366974516,1366974515,1366974514,1366974513,1366974512,1366974511,1366974510,1366974509,1366974508,1366974507,1366974506,1366974505,1366974504,1366974503,1366974502,1366974501,1366974500,1366974499,1366974498,1366974497,1366974496,1366974495,1366974494,1366974493,1366974492,1366974491,1366974490,1366974489,1366974488,1366974487,1366974486,1366974485,1366974484,1366974483,1534746465,1695043632,1534746464,1534746463,1560825410,1695043139,1560825412,1728597573,1534746462,1534746461,1534746460,1526751775,1526751519,1526751263,1526751007,1526750751,1526750495,1526750239,1526749983,1526749727,1627412767,1627412511,1627412255,1627411999,1627411743,1627411487,1627411231,1627410975,1627410719,1627410463,1627410207,1627409951,1627409695,1627409439,1627409183,1627408927,1627408671,1627408415,1627408159,1627407903,1627407647,1627407391,1627407135,1627406879,1627406623,1627406367,1627406111,1627405855,1627405599,1627405343,1627405087,1627404831,1627404575,1627404319,1627404063,1627403807,1627403551,1627403295,1627403039,1627402783,1627402527,1627402271,1627402015,1627401759,1627401503,1627401247,1627400991,1627400735,1534746459,1359024666,1359024665,1359024664,1695033410,1359024663,1534746458,1366974297,1695033411,1695033412,1695033413,1695033414,1695033415,1695033416,1695033417,1695033418,1695033419,1695033420,1366974296,1366974295,1366974294,1358979610,1358979609,1358979608,1358979607,1366974293,1366974292,1366974291,1366974290,1366974289,1358979354,1358979353,1358979352,1358979351,1366974288,1366974287,1366974286,1366974285,1366974284,1358979098,1358979097,1358979096,1358979095,1366974283,1366974282,1366974281,1366974280,1366974279,1358978842,1358978841,1358978840,1358978839,1366974278,1366974277,1366974276,1366974275,1366974274,1358978586,1358978585,1358978584,1358978583,1366974273,1366974272,1366974271,1366974270,1366974269,1358978330,1695043377,1358978329,1526751776,1526751520,1526751264,1526751008,1526750752,1526750496,1526750240,1526749984,1526749728,1627412768,1627412512,1627412256,1627412000,1627411744,1627411488,1627411232,1627410976,1627410720,1627410464,1627410208,1627409952,1627409696,1627409440,1627409184,1627408928,1627408672,1627408416,1627408160,1627407904,1627407648,1627407392,1627407136,1627406880,1627406624,1627406368,1627406112,1627405856,1627405600,1627405344,1627405088,1627404832,1627404576,1627404320,1627404064,1627403808,1627403552,1627403296,1627403040,1627402784,1627402528,1627402272,1627402016,1627401760,1627401504,1627401248,1627400992,1627400736,1358978328,1560825394,1358978327,1366974268,1364745498,1366974267,1366974266,1560825139,1366974265,1366974264,1366974263,1358978074,1358978073,1358978072,1358978071,1366974262,1366974261,1366974260,1366974259,1366974258,1358977818,1358977817,1695041592,1358977816,1358977815,1695041337,1366974257,1366974256,1366974255,1366974254,1366974253,1695041082,1358977562,1358977561,1560823099,1358977560,1358977559,1560822844,1560825666,1695043395,1560825668,1560825669,1366974252,1366974251,1366974250,1366974249,1366974248,1358977306,1358977305,1358977304,1560815426,1695033155,1560815428,1560815429,1560815430,1695033159,1695033160,1560815433,1560815434,1560815435,1695033164,1358977303,1366974247,1366974246,1366974245,1366974244,1366974243,1358977050,1358977049,1526751777,1526751521,1526751265,1526751009,1526750753,1526750497,1526750241,1526749985,1526749729,1627412769,1627412513,1627412257,1627412001,1627411745,1627411489,1627411233,1627410977,1627410721,1627410465,1627410209,1627409953,1627409697,1627409441,1627409185,1627408929,1627408673,1627408417,1627408161,1627407905,1627407649,1627407393,1627407137,1627406881,1627406625,1627406369,1627406113,1627405857,1627405601,1627405345,1627405089,1627404833,1627404577,1627404321,1627404065,1627403809,1627403553,1627403297,1627403041,1627402785,1627402529,1627402273,1627402017,1627401761,1627401505,1627401249,1627400993,1627400737,1358977048,1358977047,1366974242,1366974241,1366974240,1366974239,1366974238,1358976794,1358976793,1358976792,1358976791,1366974237,1366974236,1366974235,1366974234,1366974233,1358976538,1358976537,1358976536,1358976535,1366974232,1366974231,1366974230,1366974229,1366974228,1358976282,1358976281,1358976280,1358976279,1366974227,1534746209,1534746208,1534746207,1534746206,1358976026,1358976025,1358976024,1358976023,1560815416,1534746205,1534746204,1534746203,1534746202,1366974041,1358975770,1358975769,1358975768,1695040317,1358975767,1366974040,1695040062,1366974039,1366974038,1366974037,1366974036,1358975514,1358975513,1358975512,1358975511,1366974035,1527144991,1527210527,1527276063,1366974034,1366974033,1366974032,1366974031,1358975258,1358975257,1526751778,1526751522,1526751266,1526751010,1526750754,1526750498,1526750242,1526749986,1526749730,1627412770,1627412514,1627412258,1627412002,1627411746,1627411490,1627411234,1627410978,1627410722,1627410466,1627410210,1627409954,1627409698,1627409442,1627409186,1627408930,1627408674,1627408418,1627408162,1627407906,1627407650,1627407394,1627407138,1627406882,1627406626,1627406370,1627406114,1627405858,1627405602,1627405346,1627405090,1627404834,1627404578,1627404322,1627404066,1627403810,1627403554,1627403298,1627403042,1627402786,1627402530,1627402274,1627402018,1627401762,1627401506,1627401250,1627400994,1627400738,1358975256,1358975255,1366974030,1366974029,1366974028,1366974027,1366974026,1358975002,1358975001,1695043650,1695043651,1695043652,1695043653,1358975000,1358974999,1366974025,1366974024,1366974023,1366974022,1366974021,1560815170,1695032899,1358974746,1358974745,1358974744,1358974743,1366974020,1366974019,1366974018,1366974017,1560815172,1366974016,1460151877,1560815174,1695032903,1695032904,1560815177,1460151882,1560815179,1695032908,1358974490,1358974489,1358974488,1358974487,1366974015,1366974014,1366974013,1366974012,1366974011,1358974234,1358974233,1358974232,1358974231,1366974010,1366974009,1366974008,1366974007,1366974006,1358973978,1358973977,1358973976,1358973975,1366974005,1366974004,1366974003,1366974002,1366974001,1358973722,1358973721,1526751779,1526751523,1526751267,1526751011,1526750755,1526750499,1526750243,1526749987,1526749731,1627412771,1627412515,1627412259,1627412003,1627411747,1627411491,1627411235,1627410979,1627410723,1627410467,1627410211,1627409955,1627409699,1627409443,1627409187,1627408931,1627408675,1627408419,1627408163,1627407907,1627407651,1627407395,1627407139,1627406883,1627406627,1627406371,1627406115,1627405859,1627405603,1627405347,1627405091,1627404835,1627404579,1627404323,1627404067,1627403811,1627403555,1627403299,1627403043,1627402787,1627402531,1627402275,1627402019,1627401763,1627401507,1627401251,1627400995,1627400739,1358973720,1358973719,1366974000,1366973999,1366973998,1366973997,1366973996,1358973466,1358973465,1358973464,1358973463,1366973995,1695033399,1366973994,1366973993,1366973992,1366973991,1358973210,1358973209,1358973208,1358973207,1366973990,1366973989,1366973988,1366973987,1366973986,1358972954,1358972953,1358972952,1358972951,1366973985,1560814914,1695032643,1560814916,1560814917,1560814918,1695032647,1695032648,1560814921,1560814922,1695033654,1366973984,1560814923,1695032652,1366973983,1366973982,1366973981,1358972698,1358972697,1358972696,1358972695,1366973980,1366973979,1366973978,1366973977,1366973976,1358972442,1358972441,1358972440,1358972439,1366973975,1366973974,1366973973,1366973972,1366973971,1358972186,1358972185,1358972184,1358972183,1526751780,1526751524,1526751268,1526751012,1526750756,1526750500,1526750244,1526749988,1526749732,1627412772,1627412516,1627412260,1627412004,1627411748,1627411492,1627411236,1627410980,1627410724,1627410468,1627410212,1627409956,1627409700,1627409444,1627409188,1627408932,1627408676,1627408420,1627408164,1627407908,1627407652,1627407396,1627407140,1627406884,1627406628,1627406372,1627406116,1627405860,1627405604,1627405348,1627405092,1627404836,1627404580,1627404324,1627404068,1627403812,1627403556,1627403300,1627403044,1627402788,1627402532,1627402276,1627402020,1627401764,1627401508,1627401252,1627400996,1627400740,1534745953,1534745952,1534745951,1534745950,1534745949,1358971930,1358971929,1358971928,1358971927,1534745948,1534745947,1534745946,1366973785,1366973784,1358971674,1358971673,1358971672,1358971671,1366973783,1366973782,1366973781,1366973780,1366973779,1358971418,1358971417,1358971416,1358971415,1366973778,1366973777,1366973776,1366973775,1366973774,1366973773,1358971162,1358971161,1358971160,1358971159,1366973772,1366973771,1366973770,1366973769,1366973768,1695033909,1358970906,1358970905,1358970904,1358970903,1366973767,1366973766,1366973765,1366973764,1366973763,1358970650,1358970649,1358970648,1358970647,1366973762,1366973761,1366973760,1366973759,1366973758,1358970394,1358970393,1358970392,1358970391,1366973757,1366973756,1366973755,1366973754,1526751781,1526751525,1526751269,1526751013,1526750757,1526750501,1526750245,1526749989,1526749733,1627412773,1627412517,1627412261,1627412005,1627411749,1627411493,1627411237,1627410981,1627410725,1627410469,1627410213,1627409957,1627409701,1627409445,1627409189,1627408933,1627408677,1627408421,1627408165,1627407909,1627407653,1627407397,1627407141,1627406885,1627406629,1627406373,1627406117,1627405861,1627405605,1627405349,1627405093,1627404837,1627404581,1627404325,1627404069,1627403813,1627403557,1627403301,1627403045,1627402789,1627402533,1627402277,1627402021,1627401765,1627401509,1627401253,1627400997,1627400741,1366973753,1358970138,1358970137,1358970136,1358970135,1366973752,1695032386,1695032387,1695032388,1695032389,1695032390,1695032391,1695032392,1695032393,1695032394,1695032395,1695032396,1366973751,1366973750,1366973749,1366973748,1358969882,1358969881,1358969880,1364745242,1358969879,1366973747,1366973746,1560816436,1366973745,1366973744,1366973743,1358969626,1358969625,1358969624,1358969623,1366973742,1366973741,1366973740,1366973739,1366973738,1358969370,1358969369,1358969368,1358969367,1366973737,1366973736,1366973735,1366973734,1366973733,1358969114,1358969113,1358969112,1358969111,1366973732,1366973731,1366973730,1366973729,1366973728,1358968858,1358968857,1358968856,1358968855,1366973727,1366973726,1366973725,1366973724,1366973723,1695043633,1526751782,1526751526,1526751270,1526751014,1526750758,1526750502,1526750246,1526749990,1526749734,1627412774,1627412518,1627412262,1627412006,1627411750,1627411494,1627411238,1627410982,1627410726,1627410470,1627410214,1627409958,1627409702,1627409446,1627409190,1627408934,1627408678,1627408422,1627408166,1627407910,1627407654,1627407398,1627407142,1627406886,1627406630,1627406374,1627406118,1627405862,1627405606,1627405350,1627405094,1627404838,1627404582,1627404326,1627404070,1627403814,1627403558,1627403302,1627403046,1627402790,1627402534,1627402278,1627402022,1627401766,1627401510,1627401254,1627400998,1627400742,1358968602,1358968601,1560825650,1358968600,1358968599,1728597555,1366973722,1366973721,1366973720,1366973719,1366973718,1358968346,1358968345,1358968344,1358968343,1366973717,1366973716,1695034419,1366973715,1534745697,1534745696,1358968090,1358968089,1560824120,1358968088,1358968087,1695041593,1534745695,1534745694,1695041338,1534745693,1534745692,1560823355,1534745691,1358967834,1358967833,1358967832,1358967831,1534745690,1366973529,1366973528,1366973527,1366973526,1358967578,1695032130,1695032131,1695032132,1695032133,1695032134,1695032135,1695032136,1695032137,1695032138,1695032139,1695032140,1358967577,1358967576,1358967575,1366973525,1366973524,1366973523,1366973522,1366973521,1358967322,1358967321,1358967320,1358967319,1366973520,1366973519,1526751783,1526751527,1526751271,1526751015,1526750759,1526750503,1526750247,1526749991,1526749735,1627412775,1627412519,1627412263,1627412007,1627411751,1627411495,1627411239,1627410983,1627410727,1627410471,1627410215,1627409959,1627409703,1627409447,1627409191,1627408935,1627408679,1627408423,1627408167,1627407911,1627407655,1627407399,1627407143,1627406887,1627406631,1627406375,1627406119,1627405863,1627405607,1627405351,1627405095,1627404839,1627404583,1627404327,1627404071,1627403815,1627403559,1627403303,1627403047,1627402791,1627402535,1627402279,1627402023,1627401767,1627401511,1627401255,1627400999,1627400743,1366973518,1366973517,1695034674,1366973516,1358967066,1358967065,1358967064,1358967063,1366973515,1366973514,1366973513,1366973512,1366973511,1358966810,1358966809,1358966808,1358966807,1366973510,1366973509,1366973508,1366973507,1366973506,1358966554,1358966553,1358966552,1358966551,1366973505,1366973504,1366973503,1366973502,1366973501,1358966298,1358966297,1358966296,1358966295,1728595260,1366973500,1366973499,1695034929,1366973498,1366973497,1560822845,1366973496,1358966042,1695040318,1358966041,1358966040,1358966039,1366973495,1366973494,1366973493,1366973492,1366973491,1358965786,1527144992,1527210528,1527276064,1358965785,1358965784,1358965783,1366973490,1366973489,1366973488,1366973487,1366973486,1358965530,1358965529,1358965528,1358965527,1526751784,1526751528,1526751272,1526751016,1526750760,1526750504,1526750248,1526749992,1526749736,1627412776,1627412520,1627412264,1627412008,1627411752,1627411496,1627411240,1627410984,1627410728,1627410472,1627410216,1627409960,1627409704,1627409448,1627409192,1627408936,1627408680,1627408424,1627408168,1627407912,1627407656,1627407400,1627407144,1627406888,1627406632,1627406376,1627406120,1627405864,1627405608,1627405352,1627405096,1627404840,1627404584,1627404328,1627404072,1627403816,1627403560,1627403304,1627403048,1627402792,1627402536,1627402280,1627402024,1627401768,1627401512,1627401256,1627401000,1627400744,1560814146,1695031875,1560814148,1560814149,1366973485,1366973484,1366973483,1366973482,1560814150,1695031879,1695031880,1560814153,1560814154,1560814155,1695031884,1366973481,1560817456,1358965274,1358965273,1358965272,1358965271,1366973480,1366973479,1366973478,1366973477,1366973476,1358965018,1358965017,1358965016,1358965015,1366973475,1366973474,1366973473,1366973472,1366973471,1358964762,1358964761,1358964760,1358964759,1366973470,1366973469,1366973468,1366973467,1366973466,1358964506,1358964505,1358964504,1358964503,1366973465,1366973464,1366973463,1366973462,1366973461,1358964250,1358964249,1358964248,1358964247,1366973460,1366973459,1534745441,1534745440,1534745439,1358963994,1358963993,1358963992,1358963991,1534745438,1534745437,1534745436,1526751785,1526751529,1526751273,1526751017,1526750761,1526750505,1526750249,1526749993,1526749737,1627412777,1627412521,1627412265,1627412009,1627411753,1627411497,1627411241,1627410985,1627410729,1627410473,1627410217,1627409961,1627409705,1627409449,1627409193,1627408937,1627408681,1627408425,1627408169,1627407913,1627407657,1627407401,1627407145,1627406889,1627406633,1627406377,1627406121,1627405865,1627405609,1627405353,1627405097,1627404841,1627404585,1627404329,1627404073,1627403817,1627403561,1627403305,1627403049,1627402793,1627402537,1627402281,1627402025,1627401769,1627401513,1627401257,1627401001,1627400745,1534745435,1534745434,1358963738,1358963737,1358963736,1358963735,1366973273,1366973272,1366973271,1560817711,1366973270,1366973269,1358963482,1358963481,1358963480,1358963479,1366973268,1366973267,1366973266,1366973265,1366973264,1358963226,1560813890,1695031619,1560813892,1460150597,1560813894,1695031623,1695031624,1560813897,1460150602,1560813899,1695031628,1358963225,1358963224,1358963223,1366973263,1366973262,1695035694,1366973261,1366973260,1366973259,1358962970,1358962969,1358962968,1358962967,1366973258,1366973257,1366973256,1366973255,1366973254,1358962714,1358962713,1358962712,1358962711,1366973253,1366973252,1366973251,1695036205,1366973250,1366973249,1358962458,1358962457,1358962456,1358962455,1366973248,1695043634,1366973247,1366973246,1526751786,1526751530,1526751274,1526751018,1526750762,1526750506,1526750250,1526749994,1526749738,1627412778,1627412522,1627412266,1627412010,1627411754,1627411498,1627411242,1627410986,1627410730,1627410474,1627410218,1627409962,1627409706,1627409450,1627409194,1627408938,1627408682,1627408426,1627408170,1627407914,1627407658,1627407402,1627407146,1627406890,1627406634,1627406378,1627406122,1627405866,1627405610,1627405354,1627405098,1627404842,1627404586,1627404330,1627404074,1627403818,1627403562,1627403306,1627403050,1627402794,1627402538,1627402282,1627402026,1627401770,1627401514,1627401258,1627401002,1627400746,1560825651,1366973245,1366973244,1358962202,1358962201,1358962200,1358962199,1366973243,1366973242,1366973241,1366973240,1366973239,1358961946,1358961945,1358961944,1358961943,1460161080,1366973238,1366973237,1366973236,1366973235,1366973234,1366973233,1358961690,1560824121,1358961689,1358961688,1358961687,1695041594,1366973232,1366973231,1695041339,1560813634,1695031363,1560813636,1560813637,1560813638,1695031367,1695031368,1560813641,1560813642,1560813643,1695031372,1366973230,1366973229,1695035949,1366973228,1358961434,1358961433,1358961432,1358961431,1366973227,1366973226,1366973225,1366973224,1366973223,1358961178,1358961177,1358961176,1358961175,1366973222,1366973221,1366973220,1366973219,1366973218,1358960922,1358960921,1695036460,1358960920,1526751787,1526751531,1526751275,1526751019,1526750763,1526750507,1526750251,1526749995,1526749739,1627412779,1627412523,1627412267,1627412011,1627411755,1627411499,1627411243,1627410987,1627410731,1627410475,1627410219,1627409963,1627409707,1627409451,1627409195,1627408939,1627408683,1627408427,1627408171,1627407915,1627407659,1627407403,1627407147,1627406891,1627406635,1627406379,1627406123,1627405867,1627405611,1627405355,1627405099,1627404843,1627404587,1627404331,1627404075,1627403819,1627403563,1627403307,1627403051,1627402795,1627402539,1627402283,1627402027,1627401771,1627401515,1627401259,1627401003,1627400747,1358960919,1366973217,1366973216,1366973215,1560823356,1366973214,1366973213,1560823101,1358960666,1358960665,1695040574,1358960664,1358960663,1364744986,1366973212,1366973211,1366973210,1366973209,1366973208,1358960410,1527144993,1527210529,1527276065,1358960409,1358960408,1358960407,1366973207,1366973206,1366973205,1366973204,1366973203,1358960154,1358960153,1358960152,1358960151,1534745185,1534745184,1695031106,1695031107,1695031108,1695031109,1695031110,1695036204,1534745183,1534745182,1695031111,1695031112,1695031113,1695031114,1695031115,1695031116,1534745181,1358959898,1358959897,1358959896,1358959895,1534745180,1534745179,1534745178,1366972769,1366972768,1358959642,1358959641,1358959640,1358959639,1366972767,1366972766,1366972765,1366972764,1526751788,1526751532,1526751276,1526751020,1526750764,1526750508,1526750252,1526749996,1526749740,1627412780,1627412524,1627412268,1627412012,1627411756,1627411500,1627411244,1627410988,1627410732,1627410476,1627410220,1627409964,1627409708,1627409452,1627409196,1627408940,1627408684,1627408428,1627408172,1627407916,1627407660,1627407404,1627407148,1627406892,1627406636,1627406380,1627406124,1627405868,1627405612,1627405356,1627405100,1627404844,1627404588,1627404332,1627404076,1627403820,1627403564,1627403308,1627403052,1627402796,1627402540,1627402284,1627402028,1627401772,1627401516,1627401260,1627401004,1627400748,1366972763,1358959386,1358959385,1358959384,1695036715,1358959383,1366972513,1366972512,1366972511,1366972510,1366972509,1358959130,1358959129,1358959128,1358959127,1366972508,1366972507,1366972257,1366972256,1366972255,1366972254,1560818731,1366972253,1366972252,1366972251,1366972001,1366972000,1366971999,1366971998,1366971997,1531468333,1366647314,1366647058,1366646802,1366646546,1366646290,1366646034,1366645778,1366645522,1366645266,1366561370,1366495834,1366430298,1366364762,1366299226,1695036714,1366233690,1366168154,1366102618,1366037082,1560813122,1695030851,1560813124,1560813125,1560813126,1695030855,1695030856,1560813129,1560813130,1560813131,1695030860,1366563418,1366497882,1366432346,1366366810,1366301274,1366235738,1366170202,1366104666,1526751789,1526751533,1526751277,1526751021,1526750765,1526750509,1526750253,1526749997,1526749741,1627412781,1627412525,1627412269,1627412013,1627411757,1627411501,1627411245,1627410989,1627410733,1627410477,1627410221,1627409965,1627409709,1627409453,1627409197,1627408941,1627408685,1627408429,1627408173,1627407917,1627407661,1627407405,1627407149,1627406893,1627406637,1627406381,1627406125,1627405869,1627405613,1627405357,1627405101,1627404845,1627404589,1627404333,1627404077,1627403821,1627403565,1627403309,1627403053,1627402797,1627402541,1627402285,1627402029,1627401773,1627401517,1627401261,1627401005,1627400749,1366039130,1366561371,1366495835,1366430299,1366364763,1366299227,1366233691,1366168155,1366102619,1366037083,1366563419,1366497883,1366432347,1366366811,1366301275,1695036970,1366235739,1366170203,1366104667,1366039131,1366561626,1366496090,1366430554,1366365018,1695043635,1366299482,1366233946,1366168410,1366102874,1366037338,1366563162,1366497626,1366432090,1366366554,1366301018,1366235482,1366169946,1366104410,1366038874,1560824632,1366561378,1366495842,1560824377,1366430306,1366364770,1366299234,1366233698,1695041850,1366168162,1366102626,1695041595,1366037090,1366563426,1695041340,1560812866,1695030595,1560812868,1728585029,1560812870,1695030599,1695030600,1560812873,1728585034,1560812875,1695030604,1366497890,1366432354,1366366818,1366301282,1526751790,1526751534,1526751278,1526751022,1526750766,1526750510,1526750254,1526749998,1526749742,1627412782,1627412526,1627412270,1627412014,1627411758,1627411502,1627411246,1627410990,1627410734,1627410478,1627410222,1627409966,1627409710,1627409454,1627409198,1627408942,1627408686,1627408430,1627408174,1627407918,1627407662,1627407406,1627407150,1627406894,1627406638,1627406382,1627406126,1627405870,1627405614,1627405358,1627405102,1627404846,1627404590,1627404334,1627404078,1627403822,1627403566,1627403310,1627403054,1627402798,1627402542,1627402286,1627402030,1627401774,1627401518,1627401262,1627401006,1627400750,1366235746,1366170210,1366104674,1366039138,1366647315,1366645267,1366561372,1366495836,1366430300,1366364764,1366299228,1366233692,1366168156,1366102620,1366037084,1366563420,1366497884,1366432348,1560819497,1366366812,1366301276,1366235740,1366170204,1560823357,1366104668,1366039132,1366561882,1695040830,1366496346,1366430810,1366365274,1366299738,1366234202,1366168666,1366103130,1366037594,1366562906,1527144994,1527210530,1527276066,1366497370,1366431834,1366366298,1366300762,1366235226,1366169690,1366104154,1366038618,1366561377,1366495841,1366430305,1366364769,1366299233,1366233697,1366168161,1366102625,1366037089,1366563425,1560812610,1695030339,1560812612,1560812613,1560812614,1695030343,1695030344,1560812617,1560812618,1560812619,1695030348,1526751791,1526751535,1526751279,1526751023,1526750767,1526750511,1526750255,1526749999,1526749743,1627412783,1627412527,1627412271,1627412015,1627411759,1627411503,1627411247,1627410991,1627410735,1627410479,1627410223,1627409967,1627409711,1627409455,1627409199,1627408943,1627408687,1627408431,1627408175,1627407919,1627407663,1627407407,1627407151,1627406895,1627406639,1627406383,1627406127,1627405871,1627405615,1627405359,1627405103,1627404847,1627404591,1627404335,1627404079,1627403823,1627403567,1627403311,1627403055,1627402799,1627402543,1627402287,1627402031,1627401775,1627401519,1627401263,1627401007,1627400751,1366497889,1366432353,1366366817,1366301281,1366235745,1366170209,1366104673,1366039137,1695036969,1366647316,1366645268,1366561634,1366496098,1366430562,1366365026,1366299490,1366233954,1366168418,1366102882,1366037346,1366563170,1366497634,1366432098,1366366562,1366301026,1695037480,1366235490,1366169954,1366104418,1366038882,1366561373,1366495837,1366430301,1366364765,1366299229,1366233693,1366168157,1366102621,1366037085,1366563421,1366497885,1366432349,1366366813,1695037224,1366301277,1366235741,1366170205,1366104669,1366039133,1366647317,1366645269,1366562138,1366496602,1366431066,1366365530,1366299994,1366234458,1366168922,1366103386,1366037850,1366562650,1366497114,1366431578,1366366042,1366300506,1695030082,1695030083,1695030084,1695030085,1526751792,1526751536,1526751280,1526751024,1526750768,1526750512,1526750256,1526750000,1526749744,1627412784,1627412528,1627412272,1627412016,1627411760,1627411504,1627411248,1627410992,1627410736,1627410480,1627410224,1627409968,1627409712,1627409456,1627409200,1627408944,1627408688,1627408432,1627408176,1627407920,1627407664,1627407408,1627407152,1627406896,1627406640,1627406384,1627406128,1627405872,1627405616,1627405360,1627405104,1627404848,1627404592,1627404336,1627404080,1627403824,1627403568,1627403312,1627403056,1627402800,1627402544,1627402288,1627402032,1627401776,1627401520,1627401264,1627401008,1627400752,1695030086,1695030087,1695030088,1695030089,1366234970,1695030090,1695030091,1366169434,1695030092,1366103898,1366038362,1366971996,1366561376,1366495840,1366430304,1366364768,1366299232,1366233696,1366168160,1366102624,1364744730,1366037088,1366563424,1364744729,1366497888,1366432352,1366366816,1366301280,1366235744,1366170208,1366104672,1366039136,1366561890,1366496354,1366430818,1366365282,1366299746,1366234210,1366168674,1366103138,1366037602,1366562914,1695034933,1366497378,1366431842,1366366306,1366300770,1366235234,1366169698,1366104162,1366038626,1366647318,1366645270,1366561374,1366495838,1366430302,1366364766,1695042616,1366299230,1366233694,1560824633,1366168158,1366102622,1695042106,1366037086,1366563422,1560824123,1366497886,1366432350,1526751793,1526751537,1526751281,1526751025,1526750769,1526750513,1526750257,1526750001,1526749745,1627412785,1627412529,1627412273,1627412017,1627411761,1627411505,1627411249,1627410993,1627410737,1627410481,1627410225,1627409969,1627409713,1627409457,1627409201,1627408945,1627408689,1627408433,1627408177,1627407921,1627407665,1627407409,1627407153,1627406897,1627406641,1627406385,1627406129,1627405873,1627405617,1627405361,1627405105,1627404849,1627404593,1627404337,1627404081,1627403825,1627403569,1627403313,1627403057,1627402801,1627402545,1627402289,1627402033,1627401777,1627401521,1627401265,1627401009,1627400753,1364744728,1364744727,1695041596,1366971995,1366971745,1366366814,1366301278,1366235742,1695041341,1366170206,1366104670,1695041086,1366039134,1665687853,1366647319,1366645271,1366562394,1366496858,1366431322,1366365786,1695035180,1366300250,1366234714,1366169178,1366103642,1366038106,1366561375,1366495839,1366430303,1366364767,1366299231,1366233695,1366168159,1366102623,1366037087,1366563423,1366497887,1366432351,1366366815,1366301279,1366235743,1366170207,1366971744,1366104671,1366039135,1366971743,1366971742,1366971741,1366562146,1366496610,1366431074,1366365538,1366300002,1366234466,1366168930,1366103394,1560820007,1366037858,1366647320,1366645272,1358959900,1358960156,1358960412,1358960668,1366562658,1366497122,1366431586,1366366050,1366300514,1526751794,1526751538,1526751282,1526751026,1526750770,1526750514,1526750258,1526750002,1526749746,1627412786,1627412530,1627412274,1627412018,1627411762,1627411506,1627411250,1627410994,1627410738,1627410482,1627410226,1627409970,1627409714,1627409458,1627409202,1627408946,1627408690,1627408434,1627408178,1627407922,1627407666,1627407410,1627407154,1627406898,1627406642,1627406386,1627406130,1627405874,1627405618,1627405362,1627405106,1627404850,1627404594,1627404338,1627404082,1627403826,1627403570,1627403314,1627403058,1627402802,1627402546,1627402290,1627402034,1627401778,1627401522,1627401266,1627401010,1627400754,1366234978,1366169442,1627399751,1366103906,1366038370,1366971740,1366971739,1366971489,1366971488,1366647321,1366645273,1366971487,1366971486,1366971485,1366562402,1366496866,1366431330,1366365794,1366300258,1366234722,1366169186,1366103650,1366971484,1366038114,1366647322,1366645274,1366647323,1366647067,1366646811,1366646555,1366646299,1364681242,1366646043,1366645787,1366645531,1364681241,1366645275,1366647324,1364681240,1527144995,1527210531,1527276067,1366647068,1366646812,1366646556,1366646300,1366646044,1366645788,1366645532,1366645276,1665687597,1366579738,1366514202,1366448666,1366383130,1366317594,1366252058,1366186522,1366120986,1366055450,1366579737,1366514201,1366448665,1366383129,1366317593,1366252057,1366186521,1366120985,1366055449,1526751795,1526751539,1526751283,1526751027,1526750771,1526750515,1526750259,1526750003,1526749747,1627412787,1627412531,1627412275,1627412019,1627411763,1627411507,1627411251,1627410995,1627410739,1627410483,1627410227,1627409971,1627409715,1627409459,1627409203,1627408947,1627408691,1627408435,1627408179,1627407923,1627407667,1627407411,1627407155,1627406899,1627406643,1627406387,1627406131,1627405875,1627405619,1627405363,1627405107,1627404851,1627404595,1627404339,1627404083,1627403827,1627403571,1627403315,1627403059,1627402803,1627402547,1627402291,1627402035,1627401779,1627401523,1627401267,1627401011,1627400755,1366579994,1366514458,1366448922,1366383386,1366317850,1366252314,1366186778,1366121242,1695037990,1560819751,1366055706,1366579736,1366514200,1366448664,1366383128,1366317592,1366252056,1366186520,1366120984,1366055448,1366580250,1366514714,1366449178,1366383642,1366318106,1366252570,1366187034,1366121498,1366055962,1366581786,1364681239,1366516250,1366450714,1366385178,1366319642,1366254106,1366188570,1366123034,1366971483,1366057498,1366647325,1366647069,1366646813,1366646557,1366646301,1366646045,1366645789,1366645533,1366645277,1366579730,1366514194,1366448658,1366383122,1366971233,1366971232,1366971231,1366971230,1366971229,1366579735,1560825144,1366514199,1366448663,1695042617,1366383127,1366317591,1695042362,1366252055,1366186519,1560824379,1526751796,1526751540,1526751284,1526751028,1526750772,1526750516,1526750260,1526750004,1526749748,1627412788,1627412532,1627412276,1627412020,1627411764,1627411508,1627411252,1627410996,1627410740,1627410484,1627410228,1627409972,1627409716,1627409460,1627409204,1627408948,1627408692,1627408436,1627408180,1627407924,1627407668,1627407412,1627407156,1627406900,1627406644,1627406388,1627406132,1627405876,1627405620,1627405364,1627405108,1627404852,1627404596,1627404340,1627404084,1627403828,1627403572,1627403316,1627403060,1627402804,1627402548,1627402292,1627402036,1627401780,1627401524,1627401268,1627401012,1627400756,1366120983,1366055447,1366581785,1560824124,1366516249,1366450713,1366385177,1366319641,1695041597,1366254105,1366188569,1695041342,1366123033,1366057497,1366971228,1366580506,1366514970,1366971227,1366449434,1366383898,1366970977,1560820517,1366318362,1366252826,1366187290,1366121754,1366056218,1527144996,1527210532,1527276068,1366581530,1366515994,1366450458,1366384922,1366319386,1366253850,1366188314,1366122778,1366057242,1560820006,1366579731,1366514195,1366448659,1366383123,1366970976,1358959668,1358959924,1366970975,1366970974,1366970973,1366970972,1366647326,1366647070,1366646814,1366646558,1366646302,1366646046,1366645790,1366645534,1366645278,1366579986,1366514450,1366448914,1366383378,1366970971,1366970721,1366970720,1366970719,1695038500,1526751797,1526751541,1526751285,1526751029,1526750773,1526750517,1526750261,1526750005,1526749749,1526749493,1627412533,1627412277,1627412021,1627411765,1627411509,1627411253,1627410997,1627410741,1627410485,1627410229,1627409973,1627409717,1627409461,1627409205,1627408949,1627408693,1627408437,1627408181,1627407925,1627407669,1627407413,1627407157,1627406901,1627406645,1627406389,1627406133,1627405877,1627405621,1627405365,1627405109,1627404853,1627404597,1627404341,1627404085,1627403829,1627403573,1627403317,1627403061,1627402805,1627402549,1627402293,1627402037,1627401781,1627401525,1627401269,1627401013,1627400757,1358960180,1366970718,1366579734,1366514198,1366448662,1560816185,1366383126,1366970717,1366970716,1366970715,1366970465,1366970464,1366581784,1366516248,1366450712,1366385176,1366319640,1366254104,1366970463,1364680986,1366188568,1366123032,1366057496,1366580762,1366515226,1366449690,1366384154,1366318618,1366253082,1366187546,1366122010,1366056474,1366647327,1366647071,1366646815,1366646559,1728597560,1366646303,1366646047,1560825145,1366645791,1358960436,1358960692,1358960948,1358961204,1627396916,1627397172,1366645535,1695042618,1366645279,1366581274,1366515738,1366450202,1366384666,1695033658,1366319130,1366253594,1560824635,1366188058,1366122522,1728596540,1366056986,1366579732,1560824125,1366514196,1366448660,1695041598,1366383124,1366970462,1529043241,1366970461,1366970460,1366970459,1366970209,1366580242,1366514706,1366449170,1366383634,1526749494,1627412534,1627412278,1627412022,1627411766,1627411510,1627411254,1627410998,1627410742,1627410486,1627410230,1627409974,1627409718,1627409462,1627409206,1627408950,1627408694,1627408438,1627408182,1627407926,1627407670,1627407414,1627407158,1627406902,1627406646,1627406390,1627406134,1627405878,1627405622,1627405366,1627405110,1627404854,1627404598,1627404342,1627404086,1627403830,1627403574,1627403318,1627403062,1627402806,1627402550,1627402294,1627402038,1627401782,1627401526,1627401270,1627401014,1627400758,1627397428,1627397684,1366970208,1366970207,1366970206,1366970205,1366970204,1366581778,1366516242,1527144997,1527210533,1527276069,1366450706,1366385170,1366970203,1366969953,1366969952,1366969951,1366969950,1366579733,1366514197,1695037989,1366448661,1366383125,1366969949,1366969948,1366969947,1366969697,1366969696,1366647328,1695033403,1366647072,1366646816,1366646560,1366646304,1366646048,1366645792,1366645536,1366645280,1366581783,1366516247,1366450711,1366385175,1366319639,1366254103,1366188567,1366123031,1366057495,1366581018,1366515482,1366449946,1366384410,1366318874,1366253338,1366187802,1366122266,1366056730,1366647329,1366647073,1366646817,1366646561,1366646305,1366646049,1366645793,1366645537,1366645281,1366581779,1366516243,1366450707,1366385171,1366969695,1366969694,1366969693,1366969692,1366969691,1366580498,1366514962,1366449426,1526749495,1627412535,1627412279,1627412023,1627411767,1627411511,1627411255,1627410999,1627410743,1627410487,1627410231,1627409975,1627409719,1627409463,1627409207,1627408951,1627408695,1627408439,1627408183,1627407927,1627407671,1627407415,1627407159,1627406903,1627406647,1627406391,1627406135,1627405879,1627405623,1627405367,1627405111,1627404855,1627404599,1627404343,1627404087,1627403831,1627403575,1627403319,1627403063,1627402807,1627402551,1627402295,1627402039,1627401783,1627401527,1627401271,1627401015,1627400759,1366383890,1366969441,1366969440,1560815420,1366969439,1366969438,1366969437,1366581522,1366515986,1366450450,1366384914,1366969436,1366969435,1366969185,1366969184,1366969183,1366581782,1366516246,1366450710,1366385174,1366969182,1366969181,1366969180,1366969179,1366968929,1665687341,1560825656,1366647330,1366647074,1627397940,1627398196,1627398452,1627398708,1627398964,1627399220,1627399476,1627399732,1366646818,1366646562,1366646306,1560825401,1366646050,1366645794,1695042874,1366645538,1366645282,1695042619,1366581780,1366516244,1560824636,1366450708,1366385172,1560824381,1366968928,1366968927,1695041854,1366968926,1366968925,1695041599,1366968924,1366580754,1366515218,1366449682,1366384146,1366968923,1366968673,1366968672,1366968671,1366968670,1366647331,1366647075,1366646819,1366646563,1529043242,1366646307,1366646051,1366645795,1366645539,1526749496,1627412536,1627412280,1627412024,1627411768,1627411512,1627411256,1627411000,1627410744,1627410488,1627410232,1627409976,1627409720,1627409464,1627409208,1627408952,1627408696,1627408440,1627408184,1627407928,1627407672,1627407416,1627407160,1627406904,1627406648,1627406392,1627406136,1627405880,1627405624,1627405368,1627405112,1627404856,1627404600,1627404344,1627404088,1627403832,1627403576,1627403320,1627403064,1627402808,1627402552,1627402296,1627402040,1627401784,1627401528,1627401272,1627401016,1627400760,1366645283,1366581266,1366515730,1366450194,1366384658,1366968669,1366968668,1366968667,1366968417,1366968416,1366581781,1366516245,1366450709,1366385173,1366968415,1366968414,1366968413,1366968412,1366968411,1366647332,1366647076,1366646820,1527144998,1527210534,1527276070,1366646564,1366646308,1366646052,1366645796,1366645540,1627399988,1627400244,1627400500,1366645284,1366581010,1366515474,1366449938,1366384402,1366968161,1366968160,1366968159,1366968158,1366968157,1366647333,1366647077,1366646821,1366646565,1366646309,1366646053,1366645797,1366645541,1366645285,1366647334,1366647078,1366646822,1366646566,1366646310,1366646054,1366645798,1366645542,1366645286,1364005473,1635586658,1635586914,1635587170,1635587426,1635587682,1635587938,1635588194,1635588450,1635588706,1635588962,1635589218,1635589474,1635589730,1635589986,1635590242,1635590498,1526749497,1627412537,1627412281,1627412025,1627411769,1627411513,1627411257,1627411001,1627410745,1627410489,1627410233,1627409977,1627409721,1627409465,1627409209,1627408953,1627408697,1627408441,1627408185,1627407929,1627407673,1627407417,1627407161,1627406905,1627406649,1627406393,1627406137,1627405881,1627405625,1627405369,1627405113,1627404857,1627404601,1627404345,1627404089,1627403833,1627403577,1627403321,1627403065,1627402809,1627402553,1627402297,1627402041,1627401785,1627401529,1627401273,1627401017,1627400761,1635590754,1635591010,1635591266,1635591522,1635591778,1635592034,1635592290,1635592546,1635592802,1635593058,1635593314,1635593570,1635593826,1635594082,1635594338,1635594594,1635594850,1635595106,1635595362,1635595618,1635595874,1635596130,1635596386,1635596642,1635596898,1635597154,1635597410,1695043640,1635597666,1635597922,1560825657,1635598178,1635598434,1695043130,1635598690,1635598946,1635599202,1635599458,1635599714,1635599970,1635600226,1366647335,1366647079,1366646823,1366646567,1366646311,1366646055,1366645799,1366645543,1366968156,1364680730,1366645287,1635600482,1635600738,1635600994,1635601250,1635601506,1635601762,1635602018,1635602274,1635602530,1635602786,1635603042,1635603298,1635603554,1366968155,1635603810,1635604066,1635604322,1635604578,1635604834,1635605090,1635605346,1635605602,1635605858,1635606114,1635606370,1635606626,1526749498,1627412538,1627412282,1627412026,1627411770,1627411514,1627411258,1627411002,1627410746,1627410490,1627410234,1627409978,1627409722,1627409466,1627409210,1627408954,1627408698,1627408442,1627408186,1627407930,1627407674,1627407418,1627407162,1627406906,1627406650,1627406394,1627406138,1627405882,1627405626,1627405370,1627405114,1627404858,1627404602,1627404346,1627404090,1627403834,1627403578,1627403322,1627403066,1627402810,1627402554,1627402298,1627402042,1627401786,1627401530,1627401274,1627401018,1627400762,1635606882,1665687085,1635607138,1528372834,1528307298,1528241762,1635586657,1501369185,1501369441,1364680474,1501369697,1635587681,1528176226,1501370209,1501370465,1501370721,1528110690,1501370977,1501371233,1501371489,1501371745,1501372001,1528045154,1501372257,1501372513,1501372769,1501373025,1501373281,1527979618,1366967905,1364680218,1528374882,1501373537,1501373793,1501374049,1501374305,1501374561,1528309346,1501374817,1501375073,1501375329,1501375585,1501375841,1528243810,1501376097,1501376353,1528178274,1695039287,1501376609,1501376865,1501377121,1366967904,1528112738,1695039542,1501377377,1501377633,1501377889,1501378145,1560825147,1501378401,1501378657,1695042620,1501378913,1501379169,1560824637,1501379425,1501379681,1695042110,1501379937,1529043243,1501380193,1366647336,1366647080,1366646824,1366646568,1366646312,1366646056,1366645800,1526749499,1627412539,1627412283,1627412027,1627411771,1627411515,1627411259,1627411003,1627410747,1627410491,1627410235,1627409979,1627409723,1627409467,1627409211,1627408955,1627408699,1627408443,1627408187,1627407931,1627407675,1627407419,1627407163,1627406907,1627406651,1627406395,1627406139,1627405883,1627405627,1627405371,1627405115,1627404859,1627404603,1627404347,1627404091,1627403835,1627403579,1627403323,1627403067,1627402811,1627402555,1627402299,1627402043,1627401787,1627401531,1627401275,1627401019,1627400763,1366645544,1695041855,1366645288,1501380449,1695041600,1501380705,1501380961,1501381217,1501381473,1501381729,1364679962,1527144999,1527210535,1501381985,1527276071,1501382241,1501382497,1501382753,1501383009,1501383265,1501383521,1501383777,1501384033,1501384289,1501384545,1501384801,1501385057,1501385313,1501385569,1501385825,1501386081,1501386337,1501386593,1501386849,1528047202,1695039797,1501387105,1501387361,1501387617,1501387873,1501388129,1635606113,1501388641,1501388897,1527981666,1501389153,1635607137,1635586656,1560822324,1501369184,1635587168,1501369696,1366967903,1635587680,1695040307,1501370208,1635588192,1364679706,1501370720,1635588704,1560822834,1635588960,1635589216,1635589472,1635589728,1635589984,1635590240,1635590496,1635590752,1635591008,1635591264,1635591520,1635591776,1635592032,1635592288,1635592544,1635592800,1635593056,1526749500,1627412540,1627412284,1627412028,1627411772,1627411516,1627411260,1627411004,1627410748,1627410492,1627410236,1627409980,1627409724,1627409468,1627409212,1627408956,1627408700,1627408444,1627408188,1627407932,1627407676,1627407420,1627407164,1627406908,1627406652,1627406396,1627406140,1627405884,1627405628,1627405372,1627405116,1627404860,1627404604,1627404348,1627404092,1627403836,1627403580,1627403324,1627403068,1627402812,1627402556,1627402300,1627402044,1627401788,1627401532,1627401276,1627401020,1627400764,1695040817,1635593312,1635593568,1635593824,1635594080,1635594336,1560823344,1635594592,1635594848,1366967902,1364679450,1635595104,1695041327,1635595360,1695038244,1635595616,1366647337,1366647081,1366646825,1366646569,1366646313,1366646057,1366645801,1528375898,1695041582,1366645545,1366645289,1635595872,1635596128,1528310362,1635596384,1635596640,1528244826,1695041837,1635596896,1635597152,1635597408,1635597664,1635597920,1635598176,1635598432,1635598688,1635598944,1635599200,1635599456,1366967901,1528179290,1695042092,1635599712,1635599968,1364679194,1364679193,1528113754,1560824619,1635600224,1635600480,1364679192,1364679191,1528048218,1695042602,1635600736,1635600992,1366967900,1366967899,1527982682,1366967649,1366967648,1635601248,1560825129,1635601504,1635601760,1635602016,1635602272,1529043244,1635602528,1635602784,1635603040,1635603296,1526749501,1627412541,1627412285,1627412029,1627411773,1627411517,1627411261,1627411005,1627410749,1627410493,1627410237,1627409981,1627409725,1627409469,1627409213,1627408957,1627408701,1627408445,1627408189,1627407933,1627407677,1627407421,1627407165,1627406909,1627406653,1627406397,1627406141,1627405885,1627405629,1627405373,1627405117,1627404861,1627404605,1627404349,1627404093,1627403837,1627403581,1627403325,1627403069,1627402813,1627402557,1627402301,1627402045,1627401789,1627401533,1627401277,1627401021,1627400765,1635603552,1635603808,1366967647,1364615706,1364615705,1364615704,1635604064,1635604320,1695043112,1635604576,1635604832,1364615703,1366967646,1635605088,1635605344,1635605600,1501388128,1635606112,1501388640,1635606624,1501389152,1635607136,1635586655,1501369183,1501369439,1501369695,1501369951,1501370207,1501370463,1501370719,1635588703,1501371231,1501371487,1501371743,1635589727,1635589983,1635590239,1635590495,1501373023,1635591007,1635591263,1635591519,1635591775,1501374303,1501374559,1501374815,1635592799,1635593055,1635593311,1366647338,1366647082,1366646826,1366646570,1366646314,1366646058,1366645802,1366645546,1366645290,1635593567,1501376095,1695043641,1635594079,1635594335,1695043386,1560825639,1635594591,1635594847,1366967645,1366967644,1501377375,1501377631,1501377887,1635595871,1635596127,1635596383,1635596639,1501379167,1635597151,1526749502,1627412542,1627412286,1627412030,1627411774,1627411518,1627411262,1627411006,1627410750,1627410494,1627410238,1627409982,1627409726,1627409470,1627409214,1627408958,1627408702,1627408446,1627408190,1627407934,1627407678,1627407422,1627407166,1627406910,1627406654,1627406398,1627406142,1627405886,1627405630,1627405374,1627405118,1627404862,1627404606,1627404350,1627404094,1627403838,1627403582,1627403326,1627403070,1627402814,1627402558,1627402302,1627402046,1627401790,1627401534,1627401278,1627401022,1627400766,1635597407,1695043622,1635597663,1635597919,1366967643,1366967393,1501380447,1501380703,1501380959,1635598943,1364615450,1635599199,1635599455,1635599711,1501382239,1635600223,1635600479,1635600735,1635600991,1501383519,1501383775,1501384031,1635602015,1635602271,1635602527,1635602783,1501385311,1635603295,1635603551,1635603807,1635604063,1501386591,1501386847,1501387103,1635605087,1366967392,1501387615,1501387871,1501388127,1364615194,1501388383,1501388639,1501388895,1501389151,1635607135,1635586654,1635586910,1635587166,1501369694,1635587678,1501370206,1635588190,1635588446,1635588702,1501371230,1635589214,1501371742,1635589726,1501372254,1635590238,1501372766,1366967391,1627918937,1635590750,1501373278,1366647339,1364614938,1366647083,1493701465,1526751807,1526751551,1526751295,1526751039,1526750783,1526750527,1526750271,1526750015,1526749759,1526749503,1627412543,1627412287,1627412031,1627411775,1627411519,1627411263,1627411007,1627410751,1627410495,1627410239,1627409983,1627409727,1627409471,1627409215,1627408959,1627408703,1627408447,1627408191,1627407935,1627407679,1627407423,1627407167,1627406911,1627406655,1627406399,1627406143,1627405887,1627405631,1627405375,1627405119,1627404863,1627404607,1627404351,1627404095,1627403839,1627403583,1627403327,1627403071,1627402815,1627402559,1627402303,1627402047,1627401791,1627401535,1627401279,1627401023,1627400767,1366646827,1366646571,1366646315,1366646059,1366645803,1366645547,1366645291,1635591262,1501373790,1635591774,1501374302,1635592286,1501374814,1635592798,1501375326,1635593310,1501375838,1635593822,1366967390,1364614682,1501376350,1529766495,1635594334,1501376862,1635594846,1501377374,1493703001,1635595358,1501377886,1627920985,1627918936,1635595870,1501378398,1635596382,1501378910,1635596894,1366967389,1364614426,1501379422,1635597406,1501379934,1635597918,1501380446,1560825403,1635598430,1501380958,1560825148,1635598942,1501381470,1695042621,1635599454,1501381982,1695042366,1635599966,1501382494,1695042111,1635600478,1501383006,1560824128,1635600990,1501383518,1695041601,1527145000,1527210536,1527276072,1635601502,1501384030,1635602014,1501384542,1526751808,1526751552,1526751296,1526751040,1526750784,1526750528,1526750272,1526750016,1526749760,1627412800,1627412544,1627412288,1627412032,1627411776,1627411520,1627411264,1627411008,1627410752,1627410496,1627410240,1627409984,1627409728,1627409472,1627409216,1627408960,1627408704,1627408448,1627408192,1627407936,1627407680,1627407424,1627407168,1627406912,1627406656,1627406400,1627406144,1627405888,1627405632,1627405376,1627405120,1627404864,1627404608,1627404352,1627404096,1627403840,1627403584,1627403328,1627403072,1627402816,1627402560,1627402304,1627402048,1627401792,1627401536,1627401280,1627401024,1627400768,1635602526,1501385054,1635603038,1501385566,1635603550,1501386078,1635604062,1501386590,1635604574,1501387102,1635605086,1501387614,1635605598,1501388126,1635606110,1501388638,1635606622,1635606878,1635607134,1635586653,1501369181,1501369437,1501369693,1501369949,1501370205,1501370461,1493701464,1501370717,1635588701,1366647340,1366647084,1366646828,1366646572,1366646316,1366646060,1366645804,1366967388,1364614170,1366645548,1366645292,1501371229,1501371485,1501371741,1665686829,1493703000,1627920984,1635589725,1635589981,1635590237,1366967387,1627918935,1493701463,1364613914,1635590493,1501373021,1635591005,1635591261,1635591517,1635591773,1501374301,1560818753,1501374557,1501374813,1635592797,1635593053,1635593309,1695036736,1635593565,1501376093,1526751809,1526751553,1526751297,1526751041,1526750785,1526750529,1526750273,1526750017,1526749761,1627412801,1627412545,1627412289,1627412033,1627411777,1627411521,1627411265,1627411009,1627410753,1627410497,1627410241,1627409985,1627409729,1627409473,1627409217,1627408961,1627408705,1627408449,1627408193,1627407937,1627407681,1627407425,1627407169,1627406913,1627406657,1627406401,1627406145,1627405889,1627405633,1627405377,1627405121,1627404865,1627404609,1627404353,1627404097,1627403841,1627403585,1627403329,1627403073,1627402817,1627402561,1627402305,1627402049,1627401793,1627401537,1627401281,1627401025,1627400769,1366967137,1364613658,1635594077,1695036991,1635594333,1635594589,1635594845,1501377373,1501377629,1364613657,1364613656,1501377885,1635595869,1635596125,1635596381,1635596637,1364613655,1366967136,1501379165,1635597149,1493702999,1635597405,1635597661,1635597917,1501380445,1366967135,1366967134,1627920983,1501380701,1501380957,1635598941,1366967133,1366967132,1627918934,1635599197,1635599453,1635599709,1364550170,1364550169,1493701462,1501382237,1635600221,1364550168,1635600477,1635600733,1635600989,1501383517,1364550167,1501383773,1501384029,1635602013,1635602269,1366967131,1366966881,1635602525,1635602781,1501385309,1635603293,1366966880,1366966879,1635603549,1635603805,1635604061,1501386589,1366966878,1364549914,1501386845,1501387101,1635605085,1526751810,1526751554,1526751298,1526751042,1526750786,1526750530,1526750274,1526750018,1526749762,1627412802,1627412546,1627412290,1627412034,1627411778,1627411522,1627411266,1627411010,1627410754,1627410498,1627410242,1627409986,1627409730,1627409474,1627409218,1627408962,1627408706,1627408450,1627408194,1627407938,1627407682,1627407426,1627407170,1627406914,1627406658,1627406402,1627406146,1627405890,1627405634,1627405378,1627405122,1627404866,1627404610,1627404354,1627404098,1627403842,1627403586,1627403330,1627403074,1627402818,1627402562,1627402306,1627402050,1627401794,1627401538,1627401282,1627401026,1627400770,1501387613,1635605597,1501388125,1501388381,1501388637,1501388893,1501389149,1635607133,1366647341,1366647085,1366646829,1366646573,1366646317,1366646061,1366645805,1366645549,1366966877,1366966876,1366645293,1635586652,1501369180,1635587164,1501369692,1635587676,1501370204,1635588188,1501370716,1635588700,1635588956,1635589212,1695043642,1635589468,1635589724,1560825659,1635589980,1635590236,1460162108,1635590492,1635590748,1560825149,1635591004,1635591260,1635591516,1635591772,1635592028,1635592284,1635592540,1635592796,1695042622,1635593052,1635593308,1695042367,1635593564,1635593820,1635594076,1635594332,1635594588,1635594844,1695039286,1635595100,1635595356,1635595612,1635595868,1493702998,1695039541,1635596124,1635596380,1635596636,1635596892,1526751811,1526751555,1526751299,1526751043,1526750787,1526750531,1526750275,1526750019,1526749763,1627412803,1627412547,1627412291,1627412035,1627411779,1627411523,1627411267,1627411011,1627410755,1627410499,1627410243,1627409987,1627409731,1627409475,1627409219,1627408963,1627408707,1627408451,1627408195,1627407939,1627407683,1627407427,1627407171,1627406915,1627406659,1627406403,1627406147,1627405891,1627405635,1627405379,1627405123,1627404867,1627404611,1627404355,1627404099,1627403843,1627403587,1627403331,1627403075,1627402819,1627402563,1627402307,1627402051,1627401795,1627401539,1627401283,1627401027,1627400771,1635597148,1635597404,1627920982,1560822068,1635597660,1635597916,1635598172,1366966875,1627918933,1364549658,1635598428,1493701461,1560822323,1635598684,1635598940,1635599196,1635599452,1635599708,1695040306,1635599964,1635600220,1635600476,1635600732,1635600988,1695040561,1635601244,1635601500,1635601756,1635602012,1529766491,1560823088,1635602268,1635602524,1366966625,1364549402,1529696606,1635602780,1560823343,1635603036,1635603292,1635603548,1635603804,1635604060,1635604316,1635604572,1635604828,1366647342,1366966624,1366966623,1529696862,1695041326,1366966622,1366966621,1366647086,1366646830,1493702997,1695041581,1366646574,1366646318,1366646062,1366645806,1627920981,1695041836,1366645550,1366645294,1635605084,1366966620,1627918932,1364549146,1526751812,1526751556,1526751300,1526751044,1526750788,1526750532,1526750276,1526750020,1526749764,1627412804,1627412548,1627412292,1627412036,1627411780,1627411524,1627411268,1627411012,1627410756,1627410500,1627410244,1627409988,1627409732,1627409476,1627409220,1627408964,1627408708,1627408452,1627408196,1627407940,1627407684,1627407428,1627407172,1627406916,1627406660,1627406404,1627406148,1627405892,1627405636,1627405380,1627405124,1627404868,1627404612,1627404356,1627404100,1627403844,1627403588,1627403332,1627403076,1627402820,1627402564,1627402308,1627402052,1627401796,1627401540,1627401284,1627401028,1627400772,1501387612,1635605596,1635605852,1635606108,1493701460,1560824363,1501388636,1635606620,1501389148,1635607132,1529697118,1560824618,1635586651,1501369179,1501369435,1501369691,1529697374,1695042601,1635587675,1501370203,1501370459,1501370715,1529697630,1695042856,1501370971,1501371227,1501371483,1560824384,1501371739,1501371995,1560824129,1527145001,1527210537,1527276073,1501372251,1501372507,1501372763,1501373019,1501373275,1501373531,1501373787,1501374043,1501374299,1501374555,1501374811,1501375067,1501375323,1501375579,1501375835,1501376091,1501376347,1501376603,1501376859,1501377115,1501377371,1501377627,1501377883,1501378139,1501378395,1501378651,1501378907,1501379163,1501379419,1501379675,1501379931,1501380187,1501380443,1501380699,1501380955,1526751813,1526751557,1526751301,1526751045,1526750789,1526750533,1526750277,1526750021,1526749765,1627412805,1627412549,1627412293,1627412037,1627411781,1627411525,1627411269,1627411013,1627410757,1627410501,1627410245,1627409989,1627409733,1627409477,1627409221,1627408965,1627408709,1627408453,1627408197,1627407941,1627407685,1627407429,1627407173,1627406917,1627406661,1627406405,1627406149,1627405893,1627405637,1627405381,1627405125,1627404869,1627404613,1627404357,1627404101,1627403845,1627403589,1627403333,1627403077,1627402821,1627402565,1627402309,1627402053,1627401797,1627401541,1627401285,1627401029,1627400773,1501381211,1501381467,1366966619,1364548890,1501381723,1529697886,1501381979,1627399495,1501382235,1560825383,1501382491,1501382747,1501383003,1501383259,1529698142,1560825638,1366966369,1366966368,1366966367,1501383515,1493702996,1501383771,1501384027,1501384283,1501384539,1501384795,1366647343,1627920980,1366647087,1366646831,1366646575,1366646319,1366966366,1627918931,1364548634,1366646063,1493701459,1366645807,1366645551,1366645295,1501385051,1501385307,1529698398,1501385563,1501385819,1501386075,1501386331,1501386587,1501386843,1501387099,1529698654,1501387355,1501387611,1501387867,1501388123,1501388379,1529698910,1501388635,1635606619,1501389147,1366966365,1364548378,1529699166,1635607131,1635586650,1635586906,1635587162,1635587418,1529699422,1526751814,1526751558,1526751302,1526751046,1526750790,1526750534,1526750278,1526750022,1526749766,1627412806,1627412550,1627412294,1627412038,1627411782,1627411526,1627411270,1627411014,1627410758,1627410502,1627410246,1627409990,1627409734,1627409478,1627409222,1627408966,1627408710,1627408454,1627408198,1627407942,1627407686,1627407430,1627407174,1627406918,1627406662,1627406406,1627406150,1627405894,1627405638,1627405382,1627405126,1627404870,1627404614,1627404358,1627404102,1627403846,1627403590,1627403334,1627403078,1627402822,1627402566,1627402310,1627402054,1627401798,1627401542,1627401286,1627401030,1627400774,1635587674,1635587930,1635588186,1635588442,1635588698,1493702995,1635588954,1635589210,1635589466,1635589722,1635589978,1627920979,1635590234,1635590490,1635590746,1635591002,1366966364,1627918930,1635591258,1635591514,1635591770,1635592026,1635592282,1635592538,1364548122,1364548121,1493701458,1529699678,1364548120,1364548119,1366966363,1366966113,1529699934,1529700190,1366966112,1366966111,1366966110,1364484634,1529700446,1635592794,1635593050,1635593306,1635593562,1635593818,1635594074,1635594330,1635594586,1635594842,1635595098,1635595354,1635595610,1635595866,1635596122,1635596378,1635596634,1635596890,1635597146,1635597402,1695043643,1635597658,1635597914,1560825660,1635598170,1635598426,1560825405,1635598682,1635598938,1695042878,1635599194,1526751815,1526751559,1526751303,1526751047,1526750791,1526750535,1526750279,1526750023,1526749767,1627412807,1627412551,1627412295,1627412039,1627411783,1627411527,1627411271,1627411015,1627410759,1627410503,1627410247,1627409991,1627409735,1627409479,1627409223,1627408967,1627408711,1627408455,1627408199,1627407943,1627407687,1627407431,1627407175,1627406919,1627406663,1627406407,1627406151,1627405895,1627405639,1627405383,1627405127,1627404871,1627404615,1627404359,1627404103,1627403847,1627403591,1627403335,1627403079,1627402823,1627402567,1627402311,1627402055,1627401799,1627401543,1627401287,1627401031,1627400775,1635599450,1695042623,1635599706,1635599962,1560824640,1635600218,1366647344,1728596545,1529700702,1364484633,1364484632,1364484631,1366966109,1493702994,1627920978,1366966108,1366966107,1366965857,1366965856,1627918929,1493701457,1364484378,1366647088,1366646832,1366646576,1529700958,1529696604,1366646320,1366646064,1366645808,1366645552,1529696860,1529697116,1366965855,1364484122,1366645296,1635600474,1529697372,1493702993,1635600730,1635600986,1635601242,1635601498,1627920977,1635601754,1635602010,1635602266,1635602522,1635602778,1635603034,1635603290,1366965854,1627918928,1728590657,1635603546,1635603802,1364483866,1635604058,1493701456,1560818752,1635604314,1635604570,1635604826,1635605082,1529697628,1695036735,1501387610,1635605594,1635605850,1526751816,1526751560,1526751304,1526751048,1526750792,1526750536,1526750280,1526750024,1526749768,1627412808,1627412552,1627412296,1627412040,1627411784,1627411528,1627411272,1627411016,1627410760,1627410504,1627410248,1627409992,1627409736,1627409480,1627409224,1627408968,1627408712,1627408456,1627408200,1627407944,1627407688,1627407432,1627407176,1627406920,1627406664,1627406408,1627406152,1627405896,1627405640,1627405384,1627405128,1627404872,1627404616,1627404360,1627404104,1627403848,1627403592,1627403336,1627403080,1627402824,1627402568,1627402312,1627402056,1627401800,1627401544,1627401288,1627401032,1627400776,1635606106,1635606362,1635606618,1501389146,1635607130,1635605081,1501387609,1529697884,1635605593,1501388121,1501388377,1501388633,1635606617,1501389145,1635607129,1635605080,1529698140,1501387608,1635605592,1501388120,1366965853,1364483610,1635606104,1501388632,1635606616,1501389144,1635607128,1635605079,1501387607,1635605591,1501388119,1501388375,1501388631,1635606615,1493702992,1501389143,1635607127,1635605078,1501387606,1635605590,1627920976,1635605846,1635606102,1635606358,1527145002,1527210538,1527276074,1635606614,1501389142,1635607126,1635605077,1501387605,1635605589,1635605845,1501388373,1635606357,1635606613,1501389141,1635607125,1366647345,1366647089,1366646833,1366646577,1366646321,1366646065,1366645809,1366645553,1366645297,1635605076,1526751817,1526751561,1526751305,1526751049,1526750793,1526750537,1526750281,1526750025,1526749769,1627412809,1627412553,1627412297,1627412041,1627411785,1627411529,1627411273,1627411017,1627410761,1627410505,1627410249,1627409993,1627409737,1627409481,1627409225,1627408969,1627408713,1627408457,1627408201,1627407945,1627407689,1627407433,1627407177,1627406921,1627406665,1627406409,1627406153,1627405897,1627405641,1627405385,1627405129,1627404873,1627404617,1627404361,1627404105,1627403849,1627403593,1627403337,1627403081,1627402825,1627402569,1627402313,1627402057,1627401801,1627401545,1627401289,1627401033,1627400777,1501387604,1635605588,1635605844,1635606100,1635606356,1635606612,1501389140,1635607124,1635605075,1501387603,1635605587,1635605843,1501388371,1635606355,1635606611,1501389139,1635607123,1635605074,1501387602,1635605586,1501388114,1635606098,1501388626,1635606610,1501389138,1635607122,1635605073,1501387601,1635605585,1635605841,1501388369,1635606353,1366965852,1627918927,1635606609,1501389137,1635607121,1364483354,1635605072,1493701455,1501387600,1635605584,1635605840,1635606096,1635606352,1635606608,1695039285,1501389136,1635607120,1635605071,1501387599,1665876576,1560821812,1635605583,1635605839,1501388367,1635606351,1635606607,1728594227,1501389135,1635607119,1366965851,1364483098,1635605070,1560822322,1501387598,1635605582,1635605838,1635606094,1526751818,1526751562,1526751306,1526751050,1526750794,1526750538,1526750282,1526750026,1526749770,1627412810,1627412554,1627412298,1627412042,1627411786,1627411530,1627411274,1627411018,1627410762,1627410506,1627410250,1627409994,1627409738,1627409482,1627409226,1627408970,1627408714,1627408458,1627408202,1627407946,1627407690,1627407434,1627407178,1627406922,1627406666,1627406410,1627406154,1627405898,1627405642,1627405386,1627405130,1627404874,1627404618,1627404362,1627404106,1627403850,1627403594,1627403338,1627403082,1627402826,1627402570,1627402314,1627402058,1627401802,1627401546,1627401290,1627401034,1627400778,1635606350,1635606606,1501389134,1635607118,1635605069,1501387597,1635605581,1501388109,1501388365,1695040305,1501388621,1635606605,1501389133,1635607117,1366647346,1493702991,1560822832,1366647090,1366646834,1366646578,1366646322,1627920975,1728595247,1366646066,1366645810,1366645554,1366645298,1635605068,1501387596,1635605580,1501388108,1560823342,1635606092,1501388620,1635606604,1501389132,1635607116,1635605067,1366965601,1627918926,1695041325,1501387595,1635605579,1364482842,1501388107,1501388363,1493701454,1695041580,1501388619,1635606603,1501389131,1635607115,1635605066,1560824107,1501387594,1635605578,1635605834,1635606090,1635606346,1728596522,1635606602,1501389130,1635607114,1635605065,1665876575,1501387593,1635605577,1635605833,1501388361,1526751819,1526751563,1526751307,1526751051,1526750795,1526750539,1526750283,1526750027,1526749771,1627412811,1627412555,1627412299,1627412043,1627411787,1627411531,1627411275,1627411019,1627410763,1627410507,1627410251,1627409995,1627409739,1627409483,1627409227,1627408971,1627408715,1627408459,1627408203,1627407947,1627407691,1627407435,1627407179,1627406923,1627406667,1627406411,1627406155,1627405899,1627405643,1627405387,1627405131,1627404875,1627404619,1627404363,1627404107,1627403851,1627403595,1627403339,1627403083,1627402827,1627402571,1627402315,1627402059,1627401803,1627401547,1627401291,1627401035,1627400779,1635606345,1635606601,1501389129,1635607113,1635605064,1501387592,1635605576,1635605832,1635606088,1635606344,1635606600,1501389128,1635607112,1635605063,1501387591,1635605575,1635605831,1501388359,1635606343,1695043644,1635606599,1501389127,1560825661,1635607111,1635605062,1695043134,1501387590,1635605574,1695042879,1560824617,1501388102,1635606086,1366965600,1364482586,1501388614,1695042600,1635606598,1501389126,1364482585,1364482584,1635607110,1560825127,1635605061,1501387589,1364482583,1366965599,1493702990,1728597542,1635605573,1635605829,1366965598,1366965597,1627920974,1501388357,1635606341,1635606597,1501389125,1635607109,1366647347,1366647091,1366646835,1366646579,1366646323,1366646067,1366645811,1366645555,1366645299,1635605060,1501387588,1526751820,1526751564,1526751308,1526751052,1526750796,1526750540,1526750284,1526750028,1526749772,1627412812,1627412556,1627412300,1627412044,1627411788,1627411532,1627411276,1627411020,1627410764,1627410508,1627410252,1627409996,1627409740,1627409484,1627409228,1627408972,1627408716,1627408460,1627408204,1627407948,1627407692,1627407436,1627407180,1627406924,1627406668,1627406412,1627406156,1627405900,1627405644,1627405388,1627405132,1627404876,1627404620,1627404364,1627404108,1627403852,1627403596,1627403340,1627403084,1627402828,1627402572,1627402316,1627402060,1627401804,1627401548,1627401292,1627401036,1627400780,1635605572,1635605828,1366965596,1366965595,1627918925,1635606084,1635606340,1635606596,1364419098,1364419097,1493701453,1501389124,1635607108,1635605059,1364419096,1501387587,1635605571,1635605827,1364419095,1501388355,1635606339,1635606595,1501389123,1366965345,1366965344,1635607107,1635605058,1501387586,1635605570,1366965343,1366965342,1635605826,1635606082,1635606338,1635606594,1366965341,1364418842,1665876574,1501389122,1635607106,1635605057,1501387585,1635605569,1501388097,1501388353,1501388609,1635606593,1501389121,1635607105,1635605056,1501387584,1493702989,1635605568,1501388096,1635606080,1501388608,1635606592,1627920973,1627918924,1501389120,1366965340,1635607104,1635605055,1501387583,1635605567,1501388095,1695042624,1501388351,1501388607,1526751821,1526751565,1526751309,1526751053,1526750797,1526750541,1526750285,1526750029,1526749773,1627412813,1627412557,1627412301,1627412045,1627411789,1627411533,1627411277,1627411021,1627410765,1627410509,1627410253,1627409997,1627409741,1627409485,1627409229,1627408973,1627408717,1627408461,1627408205,1627407949,1627407693,1627407437,1627407181,1627406925,1627406669,1627406413,1627406157,1627405901,1627405645,1627405389,1627405133,1627404877,1627404621,1627404365,1627404109,1627403853,1627403597,1627403341,1627403085,1627402829,1627402573,1627402317,1627402061,1627401805,1627401549,1627401293,1627401037,1627400781,1560824641,1560815955,1527145003,1527210539,1527276075,1635606591,1501389119,1635607103,1493701452,1364418586,1635605054,1501387582,1635605566,1635605822,1635606078,1635606334,1635606590,1501389118,1635607102,1635605053,1501387581,1635605565,1635605821,1501388349,1635606333,1635606589,1501389117,1635607101,1366647348,1366647092,1366646836,1366646580,1366646324,1366646068,1366645812,1366645556,1366645300,1635605052,1501387580,1635605564,1635605820,1635606076,1366965339,1364418330,1635606332,1635606588,1501389116,1635607100,1635605051,1501387579,1665876573,1493702988,1635605563,1635605819,1501388347,1366965089,1627920972,1627918923,1364418074,1635606331,1635606587,1501389115,1493701451,1635607099,1635605050,1501387578,1635605562,1501388090,1635606074,1526751822,1526751566,1526751310,1526751054,1526750798,1526750542,1526750286,1526750030,1526749774,1627412814,1627412558,1627412302,1627412046,1627411790,1627411534,1627411278,1627411022,1627410766,1627410510,1627410254,1627409998,1627409742,1627409486,1627409230,1627408974,1627408718,1627408462,1627408206,1627407950,1627407694,1627407438,1627407182,1627406926,1627406670,1627406414,1627406158,1627405902,1627405646,1627405390,1627405134,1627404878,1627404622,1627404366,1627404110,1627403854,1627403598,1627403342,1627403086,1627402830,1627402574,1627402318,1627402062,1627401806,1627401550,1627401294,1627401038,1627400782,1501388602,1366965088,1364417818,1635606586,1501389114,1635607098,1635605049,1501387577,1635605561,1635605817,1501388345,1635606329,1635606585,1501389113,1635607097,1635605048,1501387576,1635605560,1635605816,1635606072,1635606328,1635606584,1501389112,1635607096,1493702987,1560818241,1635605047,1501387575,1635605559,1635605815,1695030060,1560818496,1501388343,1635606327,1635606583,1501389111,1635607095,1695036479,1635605046,1501387574,1635605558,1635605814,1635606070,1635606326,1635606582,1501389110,1635607094,1635605045,1501387573,1635605557,1501388085,1501388341,1366965087,1627920971,1501388597,1635606581,1501389109,1364417562,1635607093,1627918922,1366647349,1366647093,1366646837,1366646581,1366646325,1493701450,1366646069,1366645813,1366645557,1526751823,1526751567,1526751311,1526751055,1526750799,1526750543,1526750287,1526750031,1526749775,1627412815,1627412559,1627412303,1627412047,1627411791,1627411535,1627411279,1627411023,1627410767,1627410511,1627410255,1627409999,1627409743,1627409487,1627409231,1627408975,1627408719,1627408463,1627408207,1627407951,1627407695,1627407439,1627407183,1627406927,1627406671,1627406415,1627406159,1627405903,1627405647,1627405391,1627405135,1627404879,1627404623,1627404367,1627404111,1627403855,1627403599,1627403343,1627403087,1627402831,1627402575,1627402319,1627402063,1627401807,1627401551,1627401295,1627401039,1627400783,1366645301,1635605044,1501387572,1635605556,1501388084,1635606068,1501388596,1635606580,1501389108,1635607092,1635605043,1501387571,1635605555,1501388083,1501388339,1501388595,1635606579,1501389107,1635607091,1635605042,1501387570,1635605554,1635605810,1665876572,1635606066,1635606322,1635606578,1501389106,1635607090,1635605041,1501387569,1635605553,1635605809,1501388337,1635606321,1635606577,1501389105,1635607089,1366965086,1364417306,1635605040,1501387568,1635605552,1635605808,1635606064,1635606320,1635606576,1501389104,1635607088,1635605039,1501387567,1635605551,1635605807,1501388335,1635606319,1635606575,1501389103,1635607087,1493702986,1695039029,1635605038,1501387566,1635605550,1501388078,1635606062,1695039284,1501388590,1635606574,1501389102,1526751824,1526751568,1526751312,1526751056,1526750800,1526750544,1526750288,1526750032,1526749776,1627412816,1627412560,1627412304,1627412048,1627411792,1627411536,1627411280,1627411024,1627410768,1627410512,1627410256,1627410000,1627409744,1627409488,1627409232,1627408976,1627408720,1627408464,1627408208,1627407952,1627407696,1627407440,1627407184,1627406928,1627406672,1627406416,1526742864,1526742608,1526742352,1526742096,1526741840,1526741584,1526741328,1526741072,1526740816,1526740560,1526740304,1627403344,1627403088,1627402832,1627402576,1627402320,1627402064,1627401808,1627401552,1627401296,1627401040,1627400784,1635607086,1635605037,1560821811,1501387565,1635605549,1635605805,1501388333,1635606317,1560822066,1635606573,1501389101,1635607085,1366647350,1366647094,1366646838,1366646582,1366646326,1366646070,1366965085,1627398224,1366645814,1695040049,1366645558,1366645302,1364417050,1364417049,1635605036,1695040304,1501387564,1635605548,1364417048,1364417047,1627920970,1560822831,1635605804,1635606060,1366965084,1366965083,1627918921,1560823086,1635606316,1635606572,1366964833,1366964832,1493701449,1695041069,1501389100,1635607084,1366964831,1364353562,1635605035,1364353561,1501387563,1635605547,1364353560,1364353559,1665876571,1695041579,1635605803,1501388331,1366964830,1366964829,1635606315,1635606571,1501389099,1635607083,1560824106,1635605034,1501387562,1526751825,1526751569,1526751313,1526751057,1526750801,1526750545,1526750289,1526750033,1526749777,1627412817,1627412561,1627412305,1627412049,1627411793,1627411537,1627411281,1627411025,1627410769,1627410513,1627410257,1627410001,1627409745,1627409489,1627409233,1627408977,1627408721,1627408465,1627408209,1627407953,1627407697,1627407441,1627407185,1627406929,1627406673,1627406417,1526742865,1697993033,1563775561,1563775817,1563776073,1697994057,1563776585,1563776841,1563777097,1697995081,1526740305,1627403345,1627403089,1627402833,1627402577,1627402321,1627402065,1627401809,1627401553,1627401297,1627401041,1627400785,1366964828,1366964827,1635605546,1560824361,1635605802,1635606058,1635606314,1635606570,1695030316,1695042344,1501389098,1635607082,1635605033,1501387561,1635605545,1501388073,1501388329,1695030572,1695042599,1501388585,1635606569,1501389097,1635607081,1635605032,1501387560,1635605544,1501388072,1635606056,1501388584,1635606568,1501389096,1635607080,1635605031,1501387559,1635605543,1501388071,1560825126,1501388327,1627400019,1501388583,1635606567,1501389095,1635607079,1635605030,1501387558,1635605542,1635605798,1635606054,1635606310,1635606566,1501389094,1635607078,1366647351,1366647095,1366646839,1366646583,1366964577,1364353306,1366646327,1366646071,1366645815,1366645559,1366645303,1635605029,1493702985,1501387557,1635605541,1635605797,1501388325,1526751826,1526751570,1526751314,1526751058,1526750802,1526750546,1526750290,1526750034,1526749778,1627412818,1627412562,1627412306,1627412050,1627411794,1627411538,1627411282,1627411026,1627410770,1627410514,1627410258,1627410002,1627409746,1627409490,1627409234,1627408978,1627408722,1627408466,1627408210,1627407954,1627407698,1627407442,1627407186,1627406930,1627406674,1627406418,1526742866,1530223177,1697993032,1697993288,1697993544,1697993800,1697994056,1697994312,1697994568,1697994824,1526740306,1627403346,1627403090,1627402834,1627402578,1627402322,1627402066,1627401810,1627401554,1627401298,1627401042,1627400786,1635606309,1635606565,1501389093,1635607077,1635605028,1501387556,1635605540,1635605796,1627920969,1635606052,1635606308,1635606564,1501389092,1635607076,1627918920,1635605027,1501387555,1635605539,1635605795,1366964576,1493701448,1501388323,1635606307,1635606563,1364353050,1501389091,1627919432,1635607075,1635605026,1501387554,1635605538,1501388066,1635606050,1627919688,1501388578,1635606562,1501389090,1635607074,1635605025,1627919944,1501387553,1635605537,1635605793,1501388321,1635606305,1627920200,1635606561,1501389089,1635607073,1635605024,1501387552,1635605536,1635605792,1635606048,1635606304,1635606560,1501389088,1635607072,1627920456,1366964575,1364352794,1635605023,1501387551,1635605535,1493702984,1635605791,1501388319,1635606303,1635606559,1526751827,1526751571,1526751315,1526751059,1526750803,1526750547,1526750291,1526750035,1526749779,1627412819,1627412563,1627412307,1627412051,1627411795,1627411539,1627411283,1627411027,1627410771,1627410515,1627410259,1627410003,1627409747,1627409491,1627409235,1627408979,1627408723,1627408467,1627408211,1627407955,1627407699,1627407443,1627407187,1627406931,1627406675,1627406419,1526742867,1697995080,1530223176,1697993031,1697993287,1697993543,1697993799,1697994055,1697994311,1697994567,1526740307,1627403347,1627403091,1627402835,1627402579,1627402323,1627402067,1627401811,1627401555,1627401299,1627401043,1627400787,1501389087,1627920968,1635607071,1366647352,1366647096,1366646840,1366646584,1366646328,1366646072,1627918919,1366645816,1366964574,1366645560,1493701447,1364352538,1366645304,1635605022,1501387550,1635605534,1627919431,1635605790,1635606046,1635606302,1635606558,1501389086,1635607070,1635605021,1501387549,1635605533,1627919687,1366964573,1364352282,1501388061,1501388317,1493702215,1627920199,1501388573,1635606557,1501389085,1635607069,1635605020,1501387548,1627920455,1493702983,1635605532,1366964572,1364352026,1501388060,1627920967,1627918918,1635606044,1501388572,1635606556,1501389084,1493701446,1695030081,1635607068,1635605019,1501387547,1635605531,1627919430,1501388059,1501388315,1501388571,1366964571,1364351770,1493701958,1635606555,1501389083,1526751828,1526751572,1526751316,1526751060,1526750804,1526750548,1526750292,1526750036,1526749780,1627412820,1627412564,1627412308,1627412052,1627411796,1627411540,1627411284,1627411028,1627410772,1627410516,1627410260,1627410004,1627409748,1627409492,1627409236,1627408980,1627408724,1627408468,1627408212,1627407956,1627407700,1627407444,1627407188,1627406932,1627406676,1627406420,1526742868,1528313420,1635607067,1366778397,1366776349,1366778398,1366776350,1366778399,1366776351,1366647353,1526740308,1627403348,1627403092,1627402836,1627402580,1627402324,1627402068,1627401812,1627401556,1627401300,1627401044,1627400788,1366647097,1366646841,1366646585,1695030828,1695035713,1366646329,1366646073,1366645817,1366645561,1695031084,1560818240,1627919942,1366645305,1366778400,1366776352,1366778401,1366776353,1366778402,1366776354,1695031340,1695036223,1366778403,1366776355,1366778404,1366776356,1366776348,1366778396,1367085666,1367085922,1367086178,1367086434,1367086690,1367086946,1367087202,1367087458,1367087714,1366647354,1366647098,1366646842,1366646586,1366646330,1366646074,1366645818,1366645562,1366645306,1367087970,1367088226,1367088482,1367088738,1367088994,1493702470,1367089250,1367089506,1367089762,1367090018,1367090274,1627920454,1367090530,1367090786,1367091042,1366964321,1364351514,1493702982,1367091298,1367091554,1367091810,1364351513,1364351512,1627920966,1526751829,1526751573,1526751317,1526751061,1526750805,1526750549,1526750293,1526750037,1526749781,1627412821,1627412565,1627412309,1627412053,1627411797,1627411541,1627411285,1627411029,1627410773,1627410517,1627410261,1627410005,1627409749,1627409493,1627409237,1627408981,1627408725,1627408469,1627408213,1627407957,1627407701,1627407445,1627407189,1627406933,1627406677,1627406421,1526742869,1528313418,1367092066,1367092322,1367092578,1367092834,1367093090,1367093346,1367093602,1367093858,1526740309,1627403349,1627403093,1627402837,1627402581,1627402325,1627402069,1627401813,1627401557,1627401301,1627401045,1627400789,1367094114,1367094370,1367094626,1364351511,1367094882,1366964320,1367095138,1627918917,1367095394,1367095650,1367095906,1366964319,1366964318,1493701445,1367096162,1367096418,1367096674,1366964317,1366964316,1627919429,1367096930,1367097186,1367097442,1364288026,1627919685,1364288025,1364288024,1364288023,1493702213,1695038773,1367097698,1367097954,1366964315,1366964065,1627920197,1695039028,1367098210,1367098466,1367098722,1367098978,1367099234,1695039283,1367099490,1367099746,1367100002,1367100258,1367100514,1560821810,1367100770,1367101026,1367101282,1367101538,1367101794,1695039793,1367102050,1367102306,1367102562,1367102818,1367103074,1560822320,1367103330,1367103586,1367103842,1366647355,1366647099,1695040303,1366646843,1366646587,1366646331,1526751830,1526751574,1526751318,1526751062,1526750806,1526750550,1526750294,1526750038,1526749782,1627412822,1627412566,1627412310,1627412054,1627411798,1627411542,1627411286,1627411030,1627410774,1627410518,1627410262,1627410006,1627409750,1627409494,1627409238,1627408982,1627408726,1627408470,1627408214,1627407958,1627407702,1627407446,1627407190,1627406934,1627406678,1627406422,1526742870,1528378955,1366646075,1366645819,1366645563,1366645307,1367104098,1367104354,1367104610,1367104866,1526740310,1627403350,1627403094,1627402838,1627402582,1627402326,1627402070,1627401814,1627401558,1627401302,1627401046,1627400790,1367105122,1367105378,1367105634,1367105890,1367106146,1367085665,1560822830,1365991959,1365926423,1365860887,1366647356,1366647100,1366646844,1366646588,1366646332,1366646076,1695040813,1366645820,1366645564,1366645308,1367106145,1367085664,1365795351,1365729815,1366647357,1366647101,1366646845,1366646589,1366646333,1365664279,1365598743,1366646077,1366645821,1627920453,1695041578,1366645565,1366645309,1367106144,1367085663,1493702981,1560824105,1366647358,1366647102,1366646846,1366646590,1627920965,1695042088,1366646334,1366646078,1366645822,1366645566,1627918916,1560824615,1366645310,1531463514,1531463258,1531463002,1493701444,1695042598,1531462746,1531462490,1531462234,1531461978,1695031596,1531461722,1531461466,1665679195,1665679196,1665679197,1526751831,1526751575,1526751319,1526751063,1526750807,1526750551,1526750295,1526750039,1526749783,1627412823,1627412567,1627412311,1627412055,1627411799,1627411543,1627411287,1627411031,1627410775,1627410519,1627410263,1627410007,1627409751,1627409495,1627409239,1627408983,1627408727,1627408471,1627408215,1627407959,1627407703,1627407447,1627407191,1627406935,1627406679,1627406423,1526742871,1527985743,1665679198,1665876577,1531660130,1531659874,1531659618,1531659362,1531659106,1531658850,1526740311,1627403351,1627403095,1627402839,1627402583,1627402327,1627402071,1627401815,1627401559,1627401303,1627401047,1627400791,1695031852,1531725658,1531725402,1531725146,1531724890,1531724634,1695032108,1665942363,1627919428,1665942364,1665942365,1665942366,1665942367,1665942368,1665942369,1695030059,1531725666,1531725410,1627398480,1531725154,1531724898,1531724642,1531791194,1531790938,1531790682,1531790426,1666008155,1666008156,1666008157,1666008158,1666008159,1666008160,1666008161,1531791202,1531790946,1531790690,1531790434,1627919684,1531856730,1531856474,1531856218,1666073947,1665679199,1627919940,1666073948,1666073949,1666073950,1666073951,1666073952,1666073953,1627920196,1531856738,1531856482,1531856226,1531922266,1531922010,1627920452,1666139739,1666139740,1666139741,1666139742,1666139743,1493702980,1666139744,1666139745,1531922274,1531922018,1531987802,1627920964,1526751832,1526751576,1526751320,1526751064,1526750808,1526750552,1526750296,1526750040,1526749784,1627412824,1627412568,1627412312,1627412056,1627411800,1627411544,1627411288,1627411032,1627410776,1627410520,1627410264,1627410008,1627409752,1627409496,1627409240,1627408984,1627408728,1627408472,1627408216,1627407960,1627407704,1627407448,1627407192,1627406936,1627406680,1627406424,1526742872,1527920206,1397770075,1397770076,1397770077,1397770078,1397770079,1397770080,1397770081,1531987810,1526740312,1627403352,1627403096,1627402840,1627402584,1627402328,1627402072,1627401816,1627401560,1627401304,1627401048,1627400792,1627918915,1665679200,1665679201,1531463522,1531463266,1493701443,1627919427,1531463010,1396581472,1665017184,1665017440,1665017696,1695039014,1627919683,1493702211,1665017952,1665018208,1665018464,1665018720,1627920195,1627920451,1396583520,1396583776,1396585824,1530799194,1530799450,1493702979,1530799706,1530799962,1530800218,1530800474,1530800730,1627920963,1530800986,1530801242,1530801498,1530801754,1530802010,1627918914,1530802266,1530802522,1530802778,1530803034,1530803290,1530803546,1530672482,1530672226,1530671970,1530671714,1530671458,1493701442,1530671202,1530670946,1530670690,1530670434,1530670178,1627919426,1530669922,1530669666,1530669410,1530669154,1530668898,1560812609,1530668642,1530668386,1530668130,1528509794,1528509538,1528509282,1526751833,1526751577,1526751321,1526751065,1526750809,1526750553,1526750297,1526750041,1526749785,1627412825,1627412569,1627412313,1627412057,1627411801,1627411545,1627411289,1627411033,1627410777,1627410521,1627410265,1627410009,1627409753,1627409497,1627409241,1627408985,1627408729,1627408473,1627408217,1627407961,1627407705,1627407449,1627407193,1627406937,1627406681,1627406425,1526742873,1527920200,1527920456,1527920712,1527920968,1527921224,1527921480,1527921736,1527921992,1527922248,1526740313,1627403353,1627403097,1627402841,1627402585,1627402329,1627402073,1627401817,1627401561,1627401305,1627401049,1627400793,1528509026,1528508770,1528508514,1528508258,1528508002,1528507746,1528507490,1366710873,1528507234,1528506978,1528506722,1528506466,1528506210,1528505954,1528505698,1528505442,1528570978,1528571234,1528571490,1528571746,1528572002,1528572258,1528572514,1528572770,1560817729,1528573026,1528573282,1528573538,1528573794,1528574050,1695035712,1528574306,1528574562,1366712921,1627919682,1528574818,1528575074,1627919938,1695035967,1528575330,1530602594,1530602850,1530603106,1530603362,1530603618,1530603874,1530604130,1530604386,1627920194,1530604642,1530604898,1530605154,1530605410,1530605666,1627920450,1530605922,1530606178,1530606434,1530606690,1530606946,1493702978,1530733658,1530733914,1530734170,1530734426,1530734682,1560812587,1530734938,1530735194,1530735450,1530735706,1530735962,1530736218,1530736474,1530736730,1530736986,1530737242,1529044322,1663262049,1663262048,1663262047,1663262046,1663262045,1663262044,1663262043,1529044314,1528979042,1530737498,1530737754,1530738010,1396581471,1665017183,1665017439,1665017695,1665017951,1528913762,1665018207,1665018463,1665018719,1396583519,1396583775,1396585823,1396581467,1665017179,1528848482,1665017435,1665017691,1665017947,1665018203,1665018459,1665018715,1396583515,1396583771,1527930978,1396585819,1396585825,1396583777,1396583521,1665018721,1665018465,1665018209,1665017953,1528783202,1665017697,1665017441,1665017185,1396581473,1530738018,1530737762,1530737506,1530737250,1530736994,1530736738,1560812843,1530736482,1530736226,1530735970,1530735714,1530735458,1530735202,1560813099,1530734946,1530734690,1530734434,1530734178,1366757981,1530733922,1695031083,1530733666,1528636514,1528636770,1528637026,1528637282,1560813611,1528637538,1528637794,1528638050,1528638306,1528638562,1528638818,1528639074,1528639330,1528639586,1528639842,1528640098,1528640354,1695038517,1528640610,1528640866,1528505434,1528505690,1528505946,1528506202,1528506458,1528506714,1366778462,1528506970,1627920962,1560821044,1528507226,1528507482,1528507738,1528507994,1627918913,1695039027,1528508250,1528508506,1528508762,1528509018,1493701441,1695039282,1528509274,1528509530,1528509786,1530537058,1530537314,1530537570,1530537826,1530538082,1530538338,1527996770,1530538594,1530538850,1530539106,1530539362,1530539618,1530539874,1530540130,1530540386,1528717922,1528717921,1528717920,1528717919,1528717918,1528717917,1528717916,1528717915,1528717914,1528062562,1528062561,1528062560,1528062559,1528062558,1528062557,1528062556,1528062555,1528062554,1527917922,1530540642,1530540898,1530541154,1530541410,1530668122,1530668378,1530668634,1527917914,1530668890,1530669146,1530669402,1530669658,1530669914,1530670170,1530670426,1530670682,1530670938,1530671194,1530671450,1530671706,1530671962,1530672218,1530672474,1396581470,1665017182,1665017438,1665017694,1627919425,1695039537,1665017950,1665018206,1665018462,1665018718,1493701953,1560822064,1396583518,1396583774,1396585822,1396581468,1493702209,1560822319,1665017180,1665017436,1665017692,1665017948,1493702465,1695040302,1665018204,1665018460,1665018716,1396583516,1396583772,1627920449,1695040557,1396585820,1530803554,1530803298,1530803042,1493702977,1530802786,1530802530,1530802274,1530802018,1530801762,1530801506,1530801250,1530800994,1530800738,1530800482,1530800226,1530799970,1530799714,1530799458,1530799202,1528702050,1528702306,1528702562,1528702818,1695041577,1528703074,1528703330,1528703586,1528703842,1528704098,1695041832,1528704354,1528704610,1528704866,1528705122,1528705378,1560824359,1528705634,1528705890,1528706146,1528706402,1528570970,1528571226,1528571482,1528571738,1528571994,1528572250,1528572506,1528572762,1528573018,1528573274,1528575322,1530471522,1530471778,1530472034,1530472290,1530472546,1530472802,1530473058,1530473314,1530473570,1530473826,1530474082,1530474338,1530474594,1530474850,1530475106,1530475362,1530475618,1530475874,1528373090,1528307554,1528242018,1528176482,1528110946,1528045410,1527979874,1528374626,1528309090,1528243554,1528178018,1528112482,1528046946,1527981410,1530602586,1530602842,1530603098,1530603354,1530603610,1530603866,1530604122,1528372058,1528306522,1528240986,1528175450,1528109914,1530604378,1530604634,1530604890,1530605146,1560824614,1530605402,1530605658,1530605914,1560821031,1530606170,1530606426,1530606682,1530606938,1396581469,1665017181,1665017437,1665017693,1665017949,1665018205,1665018461,1358960420,1665018717,1396583517,1396583773,1396585821,1528767586,1358960164,1528767842,1528768098,1528768354,1528768610,1528768866,1358959908,1528769122,1528769378,1528769634,1528769890,1528770146,1528770402,1528770658,1528770914,1528771170,1528771426,1528771682,1528771938,1528636506,1528636762,1528637018,1528637274,1528637530,1528637786,1528638042,1528638298,1528638554,1528638810,1528640858,1627920961,1530405986,1530406242,1530406498,1530406754,1530407010,1627918912,1530407266,1530407522,1530407778,1530408034,1530408290,1493701440,1528044378,1530408546,1528375642,1528310106,1528244570,1528179034,1528113498,1528047962,1527982426,1530408802,1530409058,1530409314,1530409570,1530409826,1530410082,1530410338,1530537050,1530537306,1530537562,1530537818,1530538074,1530538330,1530538586,1530538842,1530539098,1530539354,1530539610,1530539866,1530540122,1530540378,1530540634,1530540890,1530541146,1530541402,1528833122,1528833378,1528833634,1528833890,1528834146,1528834402,1528834658,1528834914,1528835170,1528835426,1528835682,1528835938,1528836194,1528836450,1528836706,1528836962,1528837218,1528837474,1528702042,1528702298,1528702554,1528702810,1528703066,1528703322,1528703578,1528703834,1528704090,1528704346,1560813867,1528706394,1530340450,1530340706,1530340962,1530341218,1560814123,1627919424,1493701952,1530341474,1530341730,1530341986,1530342242,1530342498,1530342754,1695032107,1627919936,1530343010,1530343266,1530343522,1530343778,1695030058,1493702464,1530344034,1530344290,1530344546,1530344802,1560812586,1627920448,1530471514,1530471770,1530472026,1530472282,1530472538,1695038504,1530472794,1460149546,1493702976,1530473050,1530473306,1530473562,1530473818,1530474074,1627920960,1530474330,1530474586,1530474842,1530475098,1530475354,1627918911,1530475610,1530475866,1528898658,1528898914,1528899170,1528899426,1528899682,1493701439,1627919423,1528899938,1528900194,1528900450,1528900706,1493701951,1528900962,1528901218,1528901474,1528901730,1528901986,1528902242,1528902498,1528902754,1528903010,1528767578,1528767834,1528768090,1528768346,1528768602,1528768858,1528769114,1528769370,1528769626,1528769882,1528771930,1530274914,1530275170,1530275426,1530275682,1530275938,1530276194,1530276450,1530276706,1530276962,1528373346,1528307810,1528242274,1529044066,1663261793,1663261792,1663261791,1663261790,1663261789,1663261788,1663261787,1529044058,1528978786,1530277218,1530277474,1530277730,1530277986,1530278242,1530278498,1530278754,1530279010,1528913506,1530279266,1530405978,1530406234,1530406490,1530406746,1530407002,1493702207,1530407258,1530407514,1366710872,1530407770,1493702463,1460149569,1530408026,1530408282,1530408538,1530408794,1627920447,1530409050,1530409306,1530409562,1530409818,1530410074,1493702975,1530410330,1528964194,1528964450,1528964706,1528964962,1627920959,1528965218,1528965474,1528965730,1366712920,1528965986,1627918910,1528966242,1528966498,1528966754,1528967010,1528967266,1493701438,1528967522,1528967778,1627919422,1460154177,1528968034,1528968290,1528968546,1528833114,1528833370,1528833626,1627919678,1560817728,1528833882,1528834138,1528834394,1528834650,1528834906,1695035711,1528835162,1528835418,1528837466,1530209378,1530209634,1530209890,1530210146,1530210402,1530210658,1530210914,1530211170,1530211426,1530211682,1530211938,1530212194,1530212450,1530212706,1528848226,1530212962,1530213218,1530213474,1530213730,1530340442,1530340698,1530340954,1530341210,1527930722,1530341466,1530341722,1530341978,1530342234,1530342490,1530342746,1530343002,1530343258,1528782946,1530343514,1530343770,1530344026,1530344282,1530344538,1530344794,1529029730,1529029986,1527996514,1529030242,1529030498,1529030754,1529031010,1529031266,1529031522,1529031778,1529032034,1528717666,1529032290,1529032546,1529032802,1529033058,1529033314,1529033570,1529033826,1529034082,1528062306,1528898650,1528898906,1528899162,1528899418,1528899674,1528899930,1528900186,1528900442,1528652386,1528900698,1528900954,1528903002,1530143842,1530144098,1530144354,1530144610,1530144866,1530145122,1530145378,1530145634,1560820521,1530145890,1530146146,1530146402,1530146658,1530146914,1530147170,1530147426,1530147682,1530147938,1530148194,1530274906,1530275162,1530275418,1530275674,1530275930,1530276186,1530276442,1530276698,1530276954,1530277210,1530277466,1530277722,1530277978,1530278234,1530278490,1530278746,1530279002,1530279258,1529095266,1529095522,1529095778,1529096034,1529096290,1529096546,1529096802,1529097058,1529097314,1529097570,1529097826,1529098082,1529098338,1529098594,1695038261,1529098850,1529099106,1529099362,1529099618,1528964186,1560820788,1528964442,1528964698,1528964954,1528965210,1528965466,1560821043,1528965722,1528965978,1528652385,1528652384,1528652383,1528652382,1528652381,1528652380,1528652379,1528652378,1528128098,1528128097,1528128096,1528128095,1528128094,1528128093,1528128092,1528128091,1528128090,1527918178,1528966234,1528966490,1528968538,1530078306,1530078562,1530078818,1530079074,1527918170,1527983458,1530079330,1530079586,1530079842,1530080098,1530080354,1530080610,1530080866,1527983450,1528176738,1528111202,1528045666,1527980130,1528374370,1528308834,1528243298,1528177762,1528112226,1528046690,1527981154,1530081122,1530081378,1530081634,1530081890,1530082146,1530082402,1530082658,1530209370,1530209626,1530209882,1530210138,1366757982,1366778463,1530210394,1695039026,1530210650,1530210906,1530211162,1530211418,1530211674,1695039281,1530211930,1530212186,1530212442,1530212698,1627919934,1560821808,1530212954,1530213210,1530213466,1530213722,1627920190,1460158767,1529160802,1529161058,1529161314,1529161570,1560813098,1560822318,1529161826,1529162082,1529162338,1529162594,1695031082,1695040301,1529162850,1529163106,1529163362,1529163618,1529163874,1560813610,1529164130,1529164386,1529164642,1529164898,1529165154,1728586026,1529029722,1529029978,1529030234,1529030490,1529030746,1560814122,1529031002,1529031258,1529031514,1529031770,1529032026,1695032106,1529032282,1529032538,1529032794,1529033050,1529033306,1695030057,1695041576,1529033562,1529033818,1529034074,1530012770,1530013026,1530013282,1530013538,1528372314,1528306778,1528241242,1528175706,1528110170,1528044634,1527979098,1528375386,1528309850,1528244314,1528178778,1528113242,1528047706,1527982170,1530013794,1530014050,1530014306,1530014562,1530014818,1530015074,1530015330,1530015586,1530015842,1530016098,1530016354,1530016610,1530016866,1530017122,1530143834,1530144090,1530144346,1530144602,1530144858,1530145114,1530145370,1530145626,1530145882,1530146138,1530146394,1530146650,1530146906,1530147162,1530147418,1530147674,1530147930,1530148186,1529226338,1529226594,1529226850,1529227106,1529227362,1529227618,1529227874,1529228130,1529228386,1560824103,1529228642,1529228898,1529229154,1529229410,1529229666,1529229922,1460161062,1529230178,1529230434,1529230690,1529095258,1695032868,1529095514,1529095770,1627920446,1529096026,1529096282,1529096538,1529096794,1529097050,1493702974,1529097306,1529097562,1529097818,1529098074,1529098330,1627920958,1529098586,1529098842,1529099098,1529099354,1529099610,1627918909,1529947234,1529947490,1529947746,1529948002,1529948258,1493701437,1529948514,1529948770,1529949026,1529949282,1529949538,1529949794,1529950050,1627919421,1529950306,1529950562,1529950818,1529951074,1529951330,1627919677,1529951586,1530078298,1530078554,1530078810,1530079066,1493702205,1530079322,1530079578,1530079834,1530080090,1530080346,1627920189,1530080602,1530080858,1530081114,1530081370,1530081626,1530081882,1530082138,1530082394,1530082650,1529291874,1529292130,1529292386,1529292642,1529292898,1529293154,1529293410,1529293666,1529293922,1529294178,1529294434,1529294690,1529294946,1529295202,1529295458,1529295714,1529295970,1529296226,1529160794,1529161050,1529161306,1529161562,1529161818,1529162074,1529162330,1529162586,1529162842,1529163098,1529163354,1529163610,1529163866,1529164122,1529164378,1529164634,1529164890,1529165146,1529881698,1528373602,1528308066,1528242530,1528176994,1528111458,1528045922,1527980386,1528374114,1528308578,1528243042,1528177506,1528111970,1528046434,1529881954,1529882210,1529882466,1529882722,1529882978,1529883234,1529883490,1529883746,1529884002,1529884258,1529884514,1529884770,1529885026,1529885282,1529885538,1529885794,1529886050,1627920445,1530012762,1530013018,1530013274,1530013530,1530013786,1493702973,1530014042,1530014298,1530014554,1530014810,1530015066,1627920957,1530015322,1530015578,1530015834,1530016090,1530016346,1530016602,1627918908,1530016858,1530017114,1529357410,1529357666,1529357922,1493701436,1529358178,1529358434,1529358690,1529358946,1529359202,1627919420,1529359458,1529359714,1529359970,1529360226,1529360482,1627919676,1529360738,1529360994,1529361250,1529361506,1695033124,1529361762,1529226330,1529226586,1627919932,1529226842,1529227098,1529227354,1529227610,1358959901,1627920188,1529227866,1529228122,1529228378,1529228634,1358960157,1560813121,1529228890,1529229146,1529229402,1366710871,1358960413,1529229658,1529229914,1529230170,1529230426,1529230682,1358960669,1529816162,1529816418,1529816674,1529816930,1529817186,1529817442,1529817698,1529817954,1529818210,1529818466,1529818722,1529818978,1529819234,1529819490,1529819746,1529820002,1366712919,1529820258,1529820514,1529947226,1529947482,1529947738,1529947994,1627920444,1560817217,1529948250,1529948506,1529948762,1529949018,1560812585,1560817472,1529949274,1529949530,1529949786,1529950042,1560812841,1695035455,1529950298,1529950554,1529950810,1529951066,1560813097,1493702972,1529951322,1529951578,1529422946,1529423202,1529423458,1529423714,1695031081,1529423970,1529424226,1529424482,1529424738,1529424994,1560813609,1529425250,1529425506,1529425762,1529426018,1529426274,1529426530,1560813865,1529426786,1529427042,1529427298,1529291866,1529292122,1560814121,1529292378,1529292634,1529292890,1529293146,1529293402,1695032105,1529293658,1529293914,1529294170,1529294426,1529294682,1529294938,1529295194,1529295450,1529295706,1529295962,1529296218,1529750626,1695032612,1529750882,1529751138,1529751394,1529751650,1529751906,1560815141,1529752162,1529752418,1627920956,1529752674,1529752930,1529753186,1529753442,1529753698,1627918907,1695038005,1529753954,1529754210,1529754466,1529754722,1493701435,1560820532,1529754978,1529881690,1529881946,1529882202,1627919419,1728592947,1529882458,1529882714,1529882970,1529883226,1627919675,1560821042,1529883482,1529883738,1529883994,1529884250,1493702203,1695039025,1529884506,1529884762,1529885018,1529885274,1627920187,1695039280,1529885530,1529885786,1529886042,1529488482,1627920443,1560821807,1529488738,1529488994,1529489250,1529489506,1493702971,1560822062,1529489762,1529490018,1529490274,1529490530,1529490786,1695040045,1529491042,1529491298,1529491554,1529491810,1529492066,1529492322,1529492578,1529492834,1529357402,1529357658,1529357914,1529358170,1529358426,1529358682,1529358938,1529359194,1529359450,1529359706,1529359962,1529360218,1529360474,1529360730,1529360986,1529361242,1529361498,1529361754,1529685090,1529685346,1529685602,1529685858,1366757983,1529686114,1529686370,1529686626,1529686882,1529687138,1529687394,1695041575,1529687650,1529687906,1529688162,1529688418,1529688674,1529688930,1560824102,1529689186,1529689442,1529816154,1529816410,1529816666,1529816922,1529817178,1529817434,1529817690,1529817946,1695037994,1529818202,1529818458,1529818714,1529818970,1695033380,1529819226,1529819482,1529819738,1529819994,1529820250,1560815397,1529820506,1529554018,1529554274,1366778464,1529554530,1529554786,1529555042,1529555298,1529555554,1529555810,1529556066,1529556322,1529556578,1529556834,1529557090,1529557346,1529557602,1529557858,1529558114,1529558370,1529422938,1529423194,1529423450,1529423706,1529423962,1529424218,1529424474,1529424730,1529424986,1529425242,1529425498,1529425754,1529426010,1529426266,1529426522,1529426778,1529427034,1529427290,1529619554,1529619810,1529620066,1529620322,1529620578,1529620834,1529621090,1529621346,1529621602,1529621858,1529622114,1529622370,1529622626,1529622882,1529623138,1695030056,1627920955,1529623394,1529623650,1529623906,1529750618,1695030312,1627918906,1529750874,1529751130,1529751386,1529751642,1695030568,1493701434,1529751898,1529752154,1529752410,1529752666,1695030824,1529752922,1529753178,1627919418,1529753434,1529753690,1529753946,1529754202,1695031080,1493701946,1529754458,1529754714,1529754970,1529488474,1695031336,1627919930,1529488730,1529488986,1529489242,1529489498,1695031592,1493702458,1529489754,1529490010,1529490266,1529490522,1695031848,1627920442,1529490778,1529491034,1529491290,1529491546,1529491802,1695032104,1493702970,1529492058,1529492314,1529492570,1529492826,1695032356,1695031105,1529685082,1529685338,1529685594,1529685850,1560814885,1529686106,1529686362,1529686618,1529686874,1529687130,1460151846,1529687386,1529687642,1627920954,1529687898,1529688154,1529688410,1529688666,1529688922,1627918905,1529689178,1529689434,1529554010,1529554266,1529554522,1493701433,1529554778,1529555034,1529555290,1529555546,1529555802,1627919417,1529556058,1529556314,1529556570,1529556826,1529557082,1627919673,1529557338,1529557594,1529557850,1529558106,1366710870,1493702201,1695034689,1529558362,1529619546,1529619802,1529620058,1627920185,1560817216,1529620314,1529620570,1529620826,1529621082,1627920441,1695035199,1529621338,1529621594,1529621850,1529622106,1493702969,1529622362,1529622618,1529622874,1529623130,1529623386,1529623642,1529623898,1530803810,1530738274,1530672738,1530607202,1530541666,1530476130,1530410594,1530345058,1530279522,1530213986,1530148450,1527980898,1530082914,1530017378,1560815447,1529951842,1529886306,1529820770,1460151895,1560814935,1529755234,1529689698,1627400496,1627400240,1627399984,1627399728,1627399472,1627399216,1627398960,1627398704,1627398448,1627398192,1627397936,1627397680,1627397424,1627397168,1627396912,1358961200,1358960944,1358960688,1358960432,1358960176,1358959920,1529624162,1358959664,1529558626,1529493090,1529427554,1695032407,1529362018,1529296482,1529230946,1529165410,1627920953,1529099874,1366712918,1530803802,1530738266,1530672730,1530607194,1530541658,1530476122,1530410586,1530345050,1530279514,1530213978,1530148442,1527978841,1528307034,1530082906,1530017370,1529951834,1529886298,1529820762,1529755226,1527913298,1528175962,1527978823,1528044890,1527978815,1528375130,1358960935,1529689690,1529624154,1529558618,1529493082,1529427546,1529362010,1529296474,1529230938,1695033431,1529165402,1529099866,1530804066,1530738530,1530672994,1530607458,1530541922,1530476386,1530410850,1530345314,1530279778,1530214242,1530148706,1530083170,1530017634,1529952098,1529886562,1529821026,1529755490,1529689954,1529624418,1529558882,1529493346,1695043645,1529427810,1529362274,1529296738,1695043390,1528309594,1528244058,1528178522,1529043810,1663261537,1663261536,1529231202,1529165666,1663261535,1663261534,1663261533,1663261532,1663261531,1529043802,1529100130,1530804058,1530738522,1530672986,1695043135,1530607450,1530541914,1560825152,1528978530,1530476378,1530410842,1530345306,1530279770,1530214234,1530148698,1530083162,1530017626,1528913250,1529952090,1529886554,1529821018,1529755482,1529689946,1529624410,1529558874,1529493338,1358961191,1529427802,1528847970,1529362266,1529296730,1529231194,1529165658,1529100122,1530804322,1530738786,1530673250,1530607714,1460151864,1530542178,1530476642,1695042625,1530411106,1530345570,1530280034,1530214498,1530148962,1530083426,1530017890,1529952354,1529886818,1527930466,1529821282,1529755746,1529690210,1529624674,1529559138,1529493602,1529428066,1529362530,1528782690,1529296994,1529231458,1529165922,1529100386,1530805858,1530740322,1627396903,1530674786,1530609250,1530543714,1530478178,1530412642,1530347106,1527145004,1527210540,1527276076,1530281570,1530216034,1530150498,1530084962,1530019426,1627397159,1529953890,1529888354,1529822818,1529757282,1529691746,1529626210,1529560674,1527996258,1529495138,1529429602,1529364066,1529298530,1529232994,1529167458,1529101922,1530804314,1528717410,1530738778,1530673242,1530607706,1530542170,1530476634,1530411098,1530345562,1530280026,1530214490,1530148954,1530083418,1530017882,1529952346,1529886810,1529821274,1529755738,1529690202,1529624666,1529559130,1529493594,1529428058,1529362522,1529296986,1529231450,1529165914,1529100378,1530805850,1530740314,1530674778,1530609242,1528062050,1530543706,1530478170,1530412634,1530347098,1530281562,1627397415,1530216026,1530150490,1530084954,1530019418,1528652130,1529953882,1529888346,1529822810,1529757274,1529691738,1529626202,1529560666,1529495130,1529429594,1529364058,1529298522,1529232986,1529167450,1529101914,1530805857,1530740321,1528127842,1530674785,1530609249,1530543713,1530478177,1530412641,1530347105,1530281569,1530216033,1530150497,1530084961,1530019425,1529953889,1529888353,1560814903,1529822817,1529757281,1529691745,1529626209,1529560673,1529495137,1529429601,1529364065,1529298529,1529232993,1529167457,1529101921,1530804578,1530739042,1530673506,1530607970,1530542434,1530476898,1530411362,1530345826,1530280290,1530214754,1530149218,1530083682,1530018146,1529952610,1529887074,1529821538,1529756002,1529690466,1529624930,1529559394,1529493858,1529428322,1529362786,1529297250,1529231714,1529166178,1529100642,1530805602,1530740066,1530674530,1530608994,1530543458,1530477922,1530412386,1530346850,1530281314,1560815959,1530215778,1530150242,1530084706,1530019170,1529953634,1529888098,1529822562,1529757026,1529691490,1529625954,1529560418,1529494882,1529429346,1529363810,1529298274,1529232738,1529167202,1529101666,1530805851,1530740315,1530674779,1530609243,1530543707,1530478171,1530412635,1530347099,1530281563,1530216027,1530150491,1530084955,1530019419,1529953883,1529888347,1529822811,1529757275,1529691739,1529626203,1529560667,1529495131,1529429595,1529364059,1529298523,1529232987,1529167451,1529101915,1530804570,1530739034,1530673498,1530607962,1528586850,1528586849,1528586848,1528586847,1530542426,1528586846,1528586845,1528586844,1528586843,1530476890,1530411354,1530345818,1530280282,1530214746,1528586842,1528193634,1528193633,1530149210,1530083674,1530018138,1529952602,1529887066,1529821530,1529755994,1529690458,1529624922,1528193632,1528193631,1529559386,1529493850,1529428314,1358959902,1529362778,1529297242,1529231706,1529166170,1529100634,1530805594,1530740058,1530674522,1530608986,1530543450,1530477914,1530412378,1530346842,1530281306,1530215770,1358960971,1358960158,1530150234,1530084698,1528193630,1528193629,1528193628,1530019162,1529953626,1529888090,1529822554,1529757018,1695043646,1528193627,1528193626,1527918434,1529691482,1529625946,1529560410,1529494874,1529429338,1529363802,1529298266,1529232730,1529167194,1529101658,1530805856,1695043391,1530740320,1530674784,1530609248,1527918426,1530543712,1358960414,1358961227,1530478176,1530412640,1560825408,1530347104,1530281568,1530216032,1530150496,1530084960,1530019424,1529953888,1529888352,1529822816,1529757280,1529691744,1529626208,1529560672,1529495136,1529429600,1529364064,1529298528,1529232992,1560825153,1527145005,1527210541,1527276077,1529167456,1627396939,1526936918,1529101920,1530804834,1358960670,1530739298,1530673762,1530608226,1527983714,1530542690,1530477154,1530411618,1530346082,1530280546,1530215010,1530149474,1530083938,1530018402,1529952866,1527983706,1528048994,1529887330,1529821794,1529756258,1529690722,1627397671,1529625186,1358959943,1529559650,1529494114,1529428578,1529363042,1529297506,1529231970,1529166434,1529100898,1530805346,1530739810,1530674274,1530608738,1530543202,1530477666,1530412130,1530346594,1530281058,1627397195,1627397451,1530215522,1530149986,1528048986,1528112986,1528047450,1527981914,1530084450,1530018914,1529953378,1529887842,1529822306,1529756770,1529691234,1529625698,1529560162,1527142965,1527208501,1527274037,1529494626,1527142710,1527208246,1527273782,1529429090,1529363554,1529298018,1529232482,1529166946,1528051279,1529101410,1627397927,1695037749,1530805852,1530740316,1530674780,1530609244,1530543708,1627397707,1530478172,1530412636,1530347100,1530281564,1530216028,1695033636,1530150492,1530084956,1530019420,1627397963,1529953884,1529888348,1529822812,1627398219,1529757276,1529691740,1529626204,1529560668,1529495132,1529429596,1529364060,1529298524,1529232988,1529167452,1529101916,1530804826,1530739290,1530673754,1627398475,1530608218,1530542682,1530477146,1530411610,1695043647,1530346074,1530280538,1530215002,1530149466,1530083930,1530018394,1529952858,1695038004,1529887322,1529821786,1529756250,1560825664,1529690714,1529625178,1529559642,1529494106,1529428570,1529363034,1529297498,1529231962,1529166426,1529100890,1530805338,1530739802,1530674266,1460162113,1530608730,1530543194,1530477658,1530412122,1530346586,1530281050,1530215514,1530149978,1527145006,1527210542,1527276078,1530084442,1695032374,1530018906,1529953370,1529887834,1529822298,1529756762,1529691226,1529625690,1529560154,1529494618,1695033381,1627398731,1529429082,1529363546,1529298010,1529232474,1529166938,1529101402,1530805855,1530740319,1530674783,1530609247,1530543711,1530478175,1530412639,1530347103,1530281567,1530216031,1530150495,1530084959,1530019423,1529953887,1529888351,1529822815,1529757279,1627398987,1627399243,1627399499,1627399755,1627400011,1627400267,1627400523,1529691743,1529626207,1529560671,1529495135,1529429599,1529364063,1529298527,1529232991,1529167455,1529101919,1530805090,1530739554,1530674018,1530608482,1530542946,1627398183,1530477410,1530411874,1530346338,1530280802,1530215266,1530149730,1530084194,1530018658,1529953122,1529887586,1529822050,1529756514,1529690978,1529625442,1529559906,1529494370,1529428834,1529363298,1529297762,1695032408,1560814936,1560815192,1560815448,1529232226,1529166690,1529101154,1530805853,1530740317,1560820531,1530674781,1530609245,1530543709,1530478173,1560815398,1530412637,1530347101,1530281565,1358961232,1358960976,1358960720,1530216029,1530150493,1530084957,1527143221,1530019421,1527208757,1527274293,1529953885,1529888349,1529822813,1695033432,1560815960,1627398439,1529757277,1627398695,1529691741,1529626205,1529560669,1529495133,1527142711,1527208247,1529429597,1527273783,1529364061,1529298525,1529232989,1529167453,1529101917,1530805082,1530739546,1530674010,1530608474,1530542938,1530477402,1530411866,1530346330,1530280794,1530215258,1530149722,1530084186,1530018650,1529953114,1529887578,1627400515,1560820786,1529822042,1529756506,1529690970,1529625434,1529559898,1529494362,1529428826,1529363290,1529297754,1529232218,1529166682,1529101146,1530805854,1530740318,1530674782,1530609246,1530543710,1530478174,1530412638,1530347102,1530281566,1530216030,1530150494,1530084958,1530019422,1529953886,1529888350,1529822814,1529757278,1529691742,1529626206,1529560670,1529495134,1529429598,1529364062,1529298526,1695038769,1529232990,1529167454,1529101918,1366776382,1366778430,1366776381,1366778429,1366778393,1366776345,1366776380,1366778428,1366776379,1366778427,1366776378,1366778426,1366776377,1366778425,1366776376,1366778424,1366776375,1366778423,1366776374,1366778422,1627400259,1366776373,1366778421,1366778394,1366776346,1366776372,1366778420,1366776371,1366778419,1366776370,1366778418,1627400003,1627399747,1366776369,1366778417,1366776368,1366778416,1366776367,1366778415,1366776366,1366778414,1366776365,1366778413,1366778395,1366776347,1366776364,1366778412,1366776363,1366778411,1366776362,1366778410,1366776361,1366778409,1366776360,1366778408,1366776359,1366778407,1366776358,1366778406,1366776357,1366778405,1635607058,1635606802,1635606546,1635606290,1635606034,1635605778,1635605522,1635605266,1635605010,1627399491,1627399235,1627398979,1627398723,1635607059,1501389075,1501388819,1627398467,1627398211,1695039024,1501388563,1635606035,1501388051,1501387795,1501387539,1635605011,1627397955,1635607060,1501389076,1635606548,1501388564,1635606036,1627398951,1501388052,1635605524,1501387540,1635605012,1635607061,1501389077,1501388821,1695043648,1501388565,1501388309,1501388053,1501387797,1501387541,1635605013,1635607062,1695039279,1635606806,1635606550,1501388566,1635606038,1501388054,1635605526,1635605270,1635605014,1635607063,1560825665,1527145007,1527210543,1527276079,1501389079,1501388823,1501388567,1527599142,1527598886,1527598630,1527598374,1527598118,1527597862,1527597606,1527597350,1527597094,1527599155,1527598899,1527598643,1527598387,1527598131,1527597875,1527597619,1527597363,1527597107,1527599160,1527598904,1527598648,1527598392,1527598136,1527597880,1527597624,1527597368,1527597112,1527599173,1527598917,1527598661,1527598405,1560821806,1527598149,1527597893,1527597637,1527597381,1527597125,1527596360,1527596361,1527596362,1527596363,1527596364,1527596365,1527596366,1527596367,1527596368,1527593032,1695039789,1527593033,1527593034,1527593035,1527593036,1527593037,1527593038,1527593039,1527593040,1527587662,1527587406,1527587150,1527586894,1527586638,1527586382,1527586126,1527585870,1527585614,1527586881,1527586625,1527586369,1527586113,1527585857,1527585601,1527587649,1527587393,1527587137,1527589430,1527589431,1527589432,1358959907,1527589433,1527589434,1527143477,1527589435,1527209013,1527589436,1358960163,1527274549,1527589437,1527589438,1627397699,1527586102,1527586103,1527586104,1527586105,1527586106,1527586107,1527586108,1527586109,1527587645,1527587389,1527587133,1527586877,1527586621,1527586365,1358960419,1529036368,1627397443,1394818639,1394818638,1394818637,1627397187,1394818636,1394818635,1394818634,1627399207,1627396931,1527142712,1527208248,1527273784,1394818633,1529036360,1528970576,1528970832,1663188303,1663188302,1663188301,1663188300,1663188299,1663188298,1663188297,1528970568,1528970824,1528904784,1528905040,1528905296,1358960675,1663122511,1663122510,1663122509,1663122508,1663122507,1663122506,1663122505,1528904776,1528905032,1528905288,1528838992,1528839248,1528839504,1528839760,1663056719,1663056718,1663056717,1663056716,1663056715,1663056714,1663056713,1528838984,1528839240,1528839496,1528839752,1528773200,1528773456,1528773712,1528773968,1528774224,1662990927,1662990926,1662990925,1662990924,1662990923,1662990922,1662990921,1695030055,1528773192,1528773448,1528773704,1528773960,1528774216,1528707408,1528707664,1528707920,1528708176,1528708432,1528708688,1662925135,1662925134,1662925133,1662925132,1662925131,1662925130,1662925129,1528707400,1528707656,1528707912,1528708168,1528708424,1560812583,1528708680,1528641616,1528641872,1627399463,1627399719,1627399975,1627400231,1627400487,1528642128,1528642384,1528642640,1528642896,1528643152,1662859343,1662859342,1662859341,1662859340,1662859339,1662859338,1662859337,1528641608,1528641864,1528642120,1528642376,1528642632,1528642888,1528643144,1528575824,1528576080,1528576336,1528576592,1528576848,1528577104,1528577360,1528577616,1662793551,1662793550,1662793549,1662793548,1662793547,1627400505,1627400249,1627399993,1627399737,1627399481,1695032913,1662793546,1662793545,1560812839,1528575816,1528576072,1528576328,1528576584,1528576840,1528577096,1528577352,1528577608,1528510032,1528510288,1528510544,1528510800,1528511056,1528511312,1528511568,1528511824,1528512080,1662727759,1662727758,1662727757,1662727756,1560813095,1662727755,1662727754,1662727753,1528510024,1528510280,1528510536,1528510792,1528511048,1528511304,1528511560,1528511816,1528512072,1529827652,1529762119,1529762118,1529762117,1529762116,1529696583,1529696582,1529696581,1529696580,1529631047,1529631046,1529631045,1529631044,1529565511,1529565510,1529565509,1529565508,1529499975,1529499974,1529499973,1529499972,1627399225,1627398969,1627398713,1627398457,1627398201,1627397945,1627397689,1627397433,1529434439,1529434438,1529434437,1627397177,1627396921,1358961209,1358960953,1358960697,1358960441,1358960185,1358959929,1358959673,1529434436,1529368903,1529368902,1529368901,1529368900,1529303367,1529303366,1529303365,1529303364,1529237831,1529237830,1529237829,1529237828,1529172295,1529172294,1529172293,1529172292,1529880922,1529881178,1529881434,1358959654,1358959910,1358960166,1358960422,1358960678,1358960934,1358961190,1358959648,1529813850,1529814106,1526939478,1462705499,1358960928,1358961184,1627396896,1627397152,1627397408,1627397664,1627397920,1627398176,1627398432,1627398688,1627398944,1627399200,1627399456,1627399712,1627399968,1627400224,1627400480,1627396902,1462705755,1462706011,1462706267,1695041574,1462706523,1529815642,1529815898,1529748314,1529748570,1529748826,1529749082,1529749338,1529749594,1529749850,1529750106,1529750362,1529682778,1529683034,1695031079,1462574427,1462574683,1462574939,1627397158,1695043649,1462575195,1462575451,1529684570,1529684826,1529617242,1529617498,1529617754,1529618010,1529618266,1529618522,1529618778,1529619034,1529619290,1529551706,1529551962,1462443355,1462443611,1462443867,1462444123,1462444379,1529553498,1529553754,1529486170,1529486426,1529486682,1529486938,1529487194,1529487450,1529487706,1529487962,1529488218,1529420634,1529420890,1462312283,1462312539,1462312795,1560813607,1627397438,1462313051,1462313307,1529422426,1529422682,1529355098,1529355354,1529355610,1529355866,1529356122,1529356378,1529356634,1529356890,1529357146,1529289562,1529289818,1462181211,1462181467,1462181723,1527145008,1527210544,1462181979,1462182235,1529291354,1527276080,1529291610,1529224026,1529224282,1627397694,1529224538,1529224794,1529225050,1529225306,1529225562,1529225818,1529226074,1529158490,1529158746,1462050139,1462050395,1462050651,1462050907,1462051163,1529160282,1529160538,1529092954,1529093210,1529093466,1529093722,1529093978,1529094234,1529094490,1529094746,1529095002,1529027418,1529027674,1461919067,1461919323,1461919579,1461919835,1461920091,1529029210,1560813863,1529029466,1528961882,1528962138,1528962394,1528962650,1528962906,1528963162,1528963418,1528963674,1528963930,1528896346,1528896602,1461787995,1461788251,1461788507,1461788763,1461789019,1528898138,1528898394,1528830810,1528831066,1528831322,1528831578,1528831834,1528832090,1528832346,1528832602,1528832858,1528765274,1528765530,1461656923,1461657179,1461657435,1461657691,1461657947,1528767066,1528767322,1627398739,1528699738,1528699994,1560814119,1528700250,1528700506,1528700762,1695033428,1528701018,1528701274,1528701530,1528701786,1528634202,1528634458,1461525851,1461526107,1461526363,1461526619,1461526875,1528635994,1528636250,1528568666,1528568922,1528569178,1528569434,1528569690,1528569946,1528570202,1528570458,1528570714,1528503130,1528503386,1461394779,1461395035,1461395291,1461395547,1461395803,1528504922,1528505178,1530796898,1530797154,1530797410,1530797666,1530797922,1530798178,1530798434,1530798690,1530798946,1530731362,1530731618,1530731874,1530732130,1530732386,1530732642,1530732898,1530733154,1527847742,1530733410,1530665826,1530666082,1530666338,1530666594,1530666850,1530667106,1530667362,1530667618,1530667874,1530600290,1695032357,1530600546,1530600802,1530601058,1530601314,1530601570,1530601826,1530602082,1530602338,1530534754,1527143733,1527209269,1527274805,1530535010,1530535266,1530535522,1530535778,1530536034,1560814886,1530536290,1530536546,1530536802,1530469218,1530469474,1530469730,1530469986,1530470242,1530470498,1530470754,1530471010,1530471266,1530403682,1530403938,1560815143,1530404194,1530404450,1530404706,1530404962,1530405218,1530405474,1530405730,1627918904,1530338146,1530338402,1627400516,1627400260,1627400004,1627399748,1627399492,1560815444,1560815188,1530338658,1560814932,1530338914,1530339170,1530339426,1560815956,1530339682,1530339938,1530340194,1627399236,1530272610,1530272866,1627398483,1627398980,1530273122,1627398724,1627398468,1530273378,1627398212,1530273634,1530273890,1627397956,1530274146,1358959903,1358960159,1530274402,1493701432,1530274658,1530207074,1530207330,1530207586,1530207842,1530208098,1530208354,1530208610,1530208866,1529043245,1530209122,1530141538,1627397700,1530141794,1530142050,1530142306,1530142562,1530142818,1530143074,1530143330,1530143586,1530076002,1530076258,1627397444,1530076514,1530076770,1530077026,1530077282,1358960415,1358960671,1530077538,1530077794,1530078050,1530010466,1530010722,1627919416,1530010978,1530011234,1627397188,1530011490,1527142713,1527208249,1627396932,1358961220,1530011746,1527273785,1530012002,1530012258,1530012514,1627400007,1529944930,1529945186,1529945442,1358960964,1529945698,1529945954,1529946210,1529946466,1529946722,1627919672,1529946978,1529879394,1529879650,1529879906,1695032404,1529880162,1529880418,1529880674,1529880930,1529881186,1529881442,1529813858,1529814114,1358960708,1529814370,1529814626,1529814882,1529815138,1529815394,1529815650,1529815906,1529748322,1627919928,1529748578,1529748834,1529749090,1529749346,1529749602,1529749858,1529750114,1366757984,1358960452,1529750370,1529682786,1627920184,1366778465,1529683042,1529683298,1529683554,1529683810,1627920440,1529684066,1529684322,1529684578,1529684834,1529617250,1529617506,1529617762,1529618018,1529618274,1529618530,1529618786,1627398227,1493702968,1529619042,1529619298,1529551714,1529551970,1529552226,1529552482,1529552738,1529552994,1358960196,1529553250,1695032657,1529553506,1529553762,1627920952,1358959940,1627397971,1529486178,1627918903,1529486434,1627397950,1529486690,1527145009,1527210545,1527276081,1529486946,1529487202,1529487458,1529487714,1493701431,1529487970,1529488226,1529420642,1529420898,1529421154,1529421410,1529421666,1529421922,1358959684,1529422178,1529422434,1529422690,1529355106,1529355362,1529355618,1529355874,1529356130,1529356386,1529356642,1627919415,1529356898,1529357154,1529289570,1529289826,1529290082,1529290338,1529290594,1529290850,1529291106,1529291362,1529291618,1529224034,1627919671,1529224290,1529224546,1529224802,1529225058,1529225314,1529225570,1529225826,1529226082,1529158498,1529158754,1529159010,1529159266,1529159522,1493702199,1529159778,1529160034,1529160290,1527143989,1527209525,1527275061,1529160546,1529092962,1529093218,1529093474,1529093730,1529093986,1529094242,1529094498,1529094754,1529095010,1529027426,1529027682,1627920183,1529027938,1529028194,1529028450,1529028706,1529028962,1529029218,1529029474,1528961890,1528962146,1528962402,1528962658,1528962914,1528963170,1528963426,1528963682,1528963938,1528896354,1528896610,1528896866,1528897122,1528897378,1528897634,1528897890,1528898146,1528898402,1528830818,1627920439,1366710869,1528831074,1528831330,1528831586,1528831842,1528832098,1528832354,1528832610,1528832866,1528765282,1528765538,1528765794,1527142714,1527208250,1527273786,1528766050,1528766306,1493702967,1528766562,1528766818,1528767074,1528767330,1528699746,1528700002,1528700258,1528700514,1528700770,1528701026,1528701282,1528701538,1528701794,1528634210,1528634466,1528634722,1528634978,1528635234,1528635490,1528635746,1528636002,1528636258,1627920951,1528568674,1528568930,1528569186,1528569442,1528569698,1528569954,1528570210,1528570466,1528570722,1528503138,1528503394,1528503650,1627398206,1528503906,1528504162,1528504418,1528504674,1528504930,1528505186,1531402787,1397185315,1397185571,1397185827,1397186083,1397186339,1397186595,1397186851,1531402786,1665620770,1665621026,1665621282,1560813633,1665621538,1665621794,1665622050,1665622306,1531402785,1665620769,1665621025,1665621281,1665621537,1665621793,1665622049,1665622305,1531402784,1665620768,1665621024,1665621280,1665621536,1665621792,1665622048,1665622304,1531402783,1665620767,1665621023,1665621279,1665621535,1665621791,1665622047,1665622303,1531402782,1665620766,1665621022,1665621278,1665621534,1665621790,1665622046,1665622302,1531402781,1665620765,1665621021,1665621277,1665621533,1665621789,1665622045,1665622301,1531402780,1665620764,1665621020,1665621276,1665621532,1665621788,1665622044,1665622300,1531402779,1531403035,1531403291,1531403547,1531403803,1531404059,1527145010,1527210546,1527276082,1531404315,1531404571,1531337251,1531337250,1464228641,1464228640,1464228639,1464228638,1464228637,1531337244,1531337243,1531271715,1531271714,1531271713,1531271712,1531271711,1531271710,1627400537,1627400281,1627400025,1527144245,1527209781,1527275317,1627399769,1627399513,1627399257,1531271709,1531271708,1531271707,1531206179,1531206178,1464097569,1464097568,1464097567,1464097566,1464097565,1531206172,1531206171,1531140643,1531140642,1531140641,1531140640,1531140639,1627398462,1531140638,1531140637,1531140636,1531140635,1531075107,1531075106,1463966497,1364007521,1463966496,1463966495,1463966494,1463966493,1531075100,1531075099,1531009571,1531009570,1531009569,1531009568,1531009567,1531009566,1531009565,1531009564,1531009563,1530944035,1530944034,1463835425,1463835424,1463835423,1463835422,1463835421,1530944028,1530944027,1530878499,1530878498,1530878497,1530878496,1530878495,1530878494,1530878493,1530878492,1530878491,1530812963,1526948438,1530812962,1463704353,1463704352,1463704351,1463704350,1463704349,1530812956,1695033892,1530812955,1529043501,1530747427,1530747426,1530747425,1530747424,1530747423,1530747422,1527142715,1527208251,1527273787,1530747421,1530747420,1530747419,1530681891,1530681890,1463573281,1463573280,1463573279,1463573278,1358959688,1463573277,1530681884,1530681883,1358959944,1530616355,1530616354,1530616353,1530616352,1530616351,1530616350,1530616349,1530616348,1530616347,1530550819,1530550818,1463442209,1463442208,1463442207,1463442206,1463442205,1530550812,1627398718,1530550811,1530485283,1358959649,1530485282,1359286811,1359221276,1359155741,1358960929,1358961185,1627396897,1627397153,1627397409,1627397665,1627397921,1627398177,1627398433,1627398689,1627398945,1627399201,1627399457,1627399713,1627399969,1627400225,1627400481,1359090206,1530485281,1530485280,1530485279,1530485278,1530485277,1530485276,1530485275,1530419747,1530419746,1463311137,1560815909,1463311136,1463311135,1463311134,1364005472,1463311133,1530419740,1530419739,1530354211,1359024671,1358959136,1530354210,1530354209,1530354208,1530354207,1530354206,1530354205,1530354204,1530354203,1530288675,1530288674,1463180065,1463180064,1463180063,1358960200,1463180062,1463180061,1530288668,1530288667,1530223139,1530223138,1530223137,1530223136,1530223135,1530223134,1530223133,1530223132,1530223131,1530157603,1530157602,1463048993,1463048992,1463048991,1463048990,1463048989,1530157596,1530157595,1530092067,1358959153,1359024690,1530092066,1530092065,1530092064,1530092063,1530092062,1530092061,1530092060,1530092059,1530026531,1530026530,1462917921,1462917920,1462917919,1527145011,1527210547,1527276083,1462917918,1462917917,1530026524,1530026523,1529960995,1529960994,1529960993,1529960992,1529960991,1529960990,1529960989,1695033382,1529960988,1358960456,1529960987,1529895459,1529895458,1462786849,1462786848,1462786847,1462786846,1462786845,1529895452,1529895451,1529829923,1529829922,1529829921,1529829920,1529829919,1529829918,1529829917,1529829916,1529829915,1529764387,1529764386,1462655777,1462655776,1462655775,1462655774,1462655773,1529764380,1359155764,1359221301,1359286838,1359352375,1529764379,1529698851,1529698850,1529698849,1529698848,1529698847,1529698846,1529698845,1529698844,1529698843,1529633315,1529633314,1462524705,1462524704,1462524703,1462524702,1462524701,1529633308,1529633307,1529567779,1529567778,1529567777,1529567776,1529567775,1529567774,1529567773,1359417912,1529567772,1529567771,1529502243,1529502242,1462393633,1462393632,1462393631,1462393630,1462393629,1529502236,1529502235,1529436707,1529436706,1560815399,1527144501,1527210037,1527275573,1529436705,1529436704,1529436703,1529436702,1529436701,1529436700,1529436699,1695034433,1529371171,1529371170,1462262561,1462262560,1462262559,1526948439,1462262558,1462262557,1529371164,1529371163,1529305635,1529305634,1529305633,1529305632,1529305631,1529305630,1529305629,1529305628,1529305627,1529240099,1529240098,1462131489,1462131488,1462131487,1462131486,1462131485,1529240092,1529240091,1529174563,1529174562,1529174561,1529174560,1366712917,1529174559,1529174558,1529174557,1529174556,1529109027,1529109026,1462000417,1462000416,1462000415,1462000414,1462000413,1529109020,1531404835,1531404834,1531404833,1531404832,1531404831,1531404830,1358960712,1531404829,1531404828,1531404827,1531339299,1358960968,1531339298,1531339297,1531339296,1695034688,1531339295,1531339294,1531339293,1527142716,1527208252,1527273788,1531339292,1531339291,1531273763,1531273762,1531273761,1531273760,1531273759,1531273758,1531273757,1695034925,1531273756,1531273755,1531208227,1531208226,1531208225,1531208224,1531208223,1531208222,1531208221,1531208220,1531208219,1531142691,1531142690,1531142689,1531142688,1531142687,1531142686,1531142685,1531142684,1531142683,1531077155,1531077154,1531077153,1531077152,1531077151,1531077150,1531077149,1531077148,1531077147,1531011619,1531011618,1531011617,1531011616,1531011615,1531011614,1531011613,1531011612,1531011611,1530946083,1527145012,1527210548,1527276084,1530946082,1530946081,1530946080,1530946079,1530946078,1527144757,1527210293,1527275829,1530946077,1530946076,1530946075,1530880547,1529043757,1530880546,1530880545,1530880544,1530880543,1695034943,1530880542,1530880541,1530880540,1530880539,1530815011,1530815010,1530815009,1530815008,1530815007,1530815006,1530815005,1530815004,1530815003,1358961224,1530749475,1530749474,1530749473,1530749472,1530749471,1530749470,1530749469,1530749468,1530749467,1530683939,1530683938,1530683937,1530683936,1530683935,1530683934,1530683933,1527142717,1527208253,1527273789,1530683932,1530683931,1627396936,1530618403,1530618402,1530618401,1530618400,1530618399,1530618398,1530618397,1530618396,1530618395,1530552867,1530552866,1530552865,1528373858,1530552864,1530552863,1530552862,1530552861,1530552860,1530552859,1530487331,1530487330,1530487329,1530487328,1530487327,1530487326,1530487325,1530487324,1530487323,1530421795,1530421794,1530421793,1530421792,1530421791,1530421790,1530421789,1530421788,1530421787,1530356259,1530356258,1528308322,1530356257,1530356256,1530356255,1530356254,1530356253,1530356252,1530356251,1530290723,1530290722,1530290721,1530290720,1530290719,1530290718,1530290717,1530290716,1530290715,1530225187,1530225186,1530225185,1530225184,1530225183,1530225182,1530225181,1530225180,1530225179,1530159651,1530159650,1530159649,1530159648,1530159647,1530159646,1530159645,1530159644,1530159643,1530094115,1530094114,1530094113,1530094112,1530094111,1530094110,1530094109,1530094108,1527145013,1527210549,1530094107,1527276085,1530028579,1530028578,1530028577,1530028576,1530028575,1530028574,1530028573,1530028572,1530028571,1529963043,1529963042,1529963041,1529963040,1529963039,1529963038,1529963037,1529963036,1529963035,1529897507,1529897506,1529897505,1529897504,1529897503,1529897502,1529897501,1529897500,1529897499,1529831971,1529831970,1529831969,1529831968,1529831967,1529831966,1529831965,1529831964,1529831963,1529766435,1529766434,1529766433,1529766432,1529766431,1529766430,1529766429,1529766428,1529766427,1528242786,1529700899,1529700898,1627397192,1529700897,1529700896,1529700895,1529700894,1627397414,1529700893,1627397448,1528177250,1529700892,1529700891,1529635363,1529635362,1529635361,1529635360,1529635359,1529635358,1529635357,1529635356,1529635355,1529044013,1627397670,1627397926,1529569827,1529569826,1529569825,1627398182,1529569824,1529569823,1529569822,1529569821,1529569820,1529569819,1529504291,1529504290,1529504289,1529504288,1529504287,1358960673,1529504286,1627398438,1358960417,1627398694,1627398950,1627399206,1627399462,1627399718,1627399974,1627400230,1627400486,1529504285,1358960161,1529504284,1529504283,1529438755,1529438754,1358959905,1529438753,1529438752,1529438751,1529438750,1529438749,1529438748,1529438747,1529373219,1529373218,1529373217,1529373216,1529373215,1529373214,1529373213,1529373212,1529373211,1529307683,1529307682,1529307681,1529307680,1529307679,1529307678,1529307677,1529307676,1529307675,1529242147,1529242146,1529242145,1529242144,1529242143,1627397704,1529242142,1529242141,1529242140,1529242139,1529176611,1529176610,1529176609,1529176608,1529176607,1529176606,1529176605,1529176604,1529176603,1529111075,1529111074,1529111073,1529111072,1529111071,1529111070,1529111069,1529111068,1529111067,1362432610,1627397960,1362432866,1362433122,1362433378,1695032103,1528111714,1362433634,1362433890,1362434146,1362434402,1362434658,1362432609,1362432608,1362432607,1362432606,1362432605,1362432604,1362432603,1362432602,1627398974,1362432858,1362433114,1362433370,1362433626,1362433882,1362434138,1362434394,1627398216,1362434650,1362367074,1362367330,1362367586,1362367842,1362368098,1362368354,1362368610,1362368866,1362369122,1362367073,1362367072,1362367071,1528046178,1362367070,1362367069,1362367068,1362367067,1362367066,1362367322,1362367578,1362367834,1362368090,1362368346,1362368602,1362368858,1362369114,1627400526,1362301538,1695030054,1362301794,1362302050,1362302306,1527980642,1461263707,1362302562,1362302818,1362303074,1362303330,1362303586,1362301537,1362301536,1362301535,1362301534,1627398472,1560812582,1362301533,1362301532,1627400479,1627400223,1627399967,1627399711,1627399455,1627399199,1627398943,1627398687,1627398431,1627398175,1627397919,1627397663,1627397407,1627397151,1627396895,1358961183,1358960927,1362301531,1362301530,1362301786,1362302042,1362302298,1362302554,1362302810,1362303066,1362303322,1362303578,1362236002,1362236258,1362236514,1362236770,1362237026,1362237282,1362237538,1362237794,1362238050,1362236001,1362236000,1362235999,1362235998,1358959647,1362235997,1527142718,1362235996,1362235995,1362235994,1527208254,1527273790,1362236250,1362236506,1362236762,1362237018,1362237274,1362237530,1362237786,1362238042,1362170466,1728584998,1362170722,1362170978,1362171234,1695037493,1362171490,1362171746,1627398728,1362172002,1362172258,1362172514,1560813094,1362170465,1362170464,1362170463,1627400483,1362170462,1362170461,1627400270,1627398984,1362170460,1362170459,1362170458,1362170714,1362170970,1362171226,1362171482,1362171738,1362171994,1362172250,1362172506,1362104930,1362105186,1362105442,1362105698,1362105954,1362106210,1362106466,1362106722,1362106978,1362104929,1362104928,1560820020,1362104927,1362104926,1362104925,1362104924,1362104923,1695031078,1627400227,1627399971,1627399715,1627399459,1627399203,1362104922,1627398947,1627398691,1627398435,1627398179,1627397923,1627397667,1627399240,1362105178,1362105434,1362105690,1362105946,1358959685,1362106202,1695033169,1627399496,1362106458,1362106714,1362106970,1362039394,1362039650,1362039906,1362040162,1362040418,1695038003,1362040674,1362040930,1362041186,1362041442,1362039393,1362039392,1362039391,1362039390,1362039389,1560813606,1362039388,1362039387,1362039386,1362039642,1362039898,1362040154,1362040410,1362040666,1362040922,1362041178,1362041434,1361973858,1361974114,1361974370,1361974626,1361974882,1627399752,1361975138,1361975394,1361975650,1358959941,1560820530,1361975906,1361973857,1361973856,1361973855,1361973854,1361973853,1361973852,1361973851,1361973850,1361974106,1361974362,1393630270,1358960197,1358960453,1695038513,1361974618,1361974874,1627400495,1627400239,1627399983,1627399727,1361975130,1361975386,1627399471,1361975642,1627399215,1627398959,1627398703,1627398447,1627398191,1627397935,1627397679,1627397423,1627397167,1627396911,1358961199,1358960943,1358960687,1358960431,1358960175,1358959919,1358959663,1361975898,1361908322,1361908578,1393630526,1361908834,1361909090,1361909346,1361909602,1461132635,1529044269,1361909858,1361910114,1627400008,1361910370,1361908321,1560821040,1361908320,1361908319,1358960709,1361908318,1361908317,1361908316,1361908315,1361908314,1695032358,1361908570,1361908826,1361909082,1461001563,1695039023,1361909338,1361909594,1361909850,1361910106,1627400264,1361910362,1560814887,1695039278,1361842786,1361843042,1361843298,1361843554,1361843810,1361844066,1361844322,1361844578,1361844834,1361842785,1695032872,1361842784,1361842783,1361842782,1361842781,1361842780,1361842779,1361842778,1361843034,1627918902,1358960965,1361843290,1361843546,1361843802,1627400520,1695039533,1361844058,1361844314,1627397411,1361844570,1361844826,1493701430,1361777250,1361777506,1361777762,1361778018,1361778274,1361778530,1361778786,1361779042,1361779298,1361777249,1361777248,1361777247,1361777246,1361777245,1361777244,1361777243,1361777242,1361777498,1361777754,1361778010,1361778266,1361778522,1361778778,1361779034,1361779290,1361711714,1361711970,1361712226,1361712482,1361712738,1361712994,1361713250,1361713506,1361713762,1361711713,1627919414,1627397155,1361711712,1361711711,1361711710,1627396899,1358961187,1361711709,1361711708,1361711707,1361711706,1361711962,1361712218,1361712474,1361712730,1361712986,1361713242,1361713498,1361713754,1361646178,1460870491,1361646434,1361646690,1361646946,1361647202,1361647458,1361647714,1361647970,1527913305,1528307290,1527913297,1528176218,1527913289,1528045146,1527978814,1361648226,1361646177,1361646176,1361646175,1361646174,1361646173,1627919670,1358960931,1361646172,1361646171,1361646170,1361646426,1361646682,1358959651,1361646938,1361647194,1361647450,1361647706,1528374874,1361647962,1361648218,1361580642,1627400518,1627400262,1627400006,1627399750,1627399494,1627399238,1627398982,1361580898,1361581154,1361581410,1627398726,1627398470,1627398214,1627397958,1627397702,1627397446,1627397190,1627396934,1358961222,1358960966,1358960710,1358960454,1358960198,1361581666,1361581922,1627919926,1361582178,1529041461,1361582434,1361582690,1361580641,1361580640,1361580639,1361580638,1361580637,1361580636,1361580635,1528309338,1361580634,1361580890,1361581146,1361581402,1361581658,1361581914,1361582170,1361582426,1361582682,1361515106,1361515362,1627920182,1627397712,1361515618,1361515874,1361516130,1361516386,1361516642,1361516898,1361517154,1361515105,1361515104,1627920438,1361515103,1361515102,1361515101,1361515100,1361515099,1361515098,1361515354,1361515610,1361515866,1361516122,1361516378,1361516634,1528243802,1361516890,1361517146,1361449570,1493702966,1361449826,1361450082,1361450338,1361450594,1361450850,1361451106,1361451362,1361451618,1361449569,1361449568,1361449567,1361449566,1361449565,1529044525,1361449564,1361449563,1627920950,1361449562,1361449818,1361450074,1361450330,1361450586,1358959679,1358959935,1361450842,1361451098,1361451354,1361451610,1361384034,1361384290,1361384546,1361384802,1361385058,1560820011,1361385314,1361385570,1361385826,1528178266,1361386082,1361384033,1361384032,1361384031,1361384030,1527142975,1527208511,1527274047,1528112730,1361384029,1361384028,1361384027,1361384026,1361384282,1361384538,1361384794,1361385050,1361385306,1361385562,1361385818,1361386074,1361318498,1361318754,1361319010,1361319266,1361319522,1361319778,1361320034,1361320290,1361320546,1361318497,1361318496,1361318495,1361318494,1361318493,1361318492,1361318491,1361318490,1361318746,1361319002,1361319258,1361319514,1361319770,1361320026,1361320282,1361320538,1361252962,1361253218,1361253474,1361253730,1361253986,1361254242,1361254498,1361254754,1361255010,1361252961,1358960191,1361252960,1361252959,1361252958,1361252957,1361252956,1361252955,1361252954,1361253210,1361253466,1361253722,1361253978,1361254234,1361254490,1361254746,1529041717,1361255002,1361187426,1528047194,1361187682,1361187938,1361188194,1361188450,1361188706,1361188962,1361189218,1527143231,1527208767,1527274303,1361189474,1361187425,1361187424,1527981658,1361187423,1361187422,1361187421,1361187420,1361187419,1358959942,1361187418,1361187674,1361187930,1358960447,1361188186,1361188442,1361188698,1361188954,1361189210,1361189466,1361121890,1361122146,1361122402,1361122658,1695037484,1361122914,1361123170,1361123426,1361123682,1361123938,1361121889,1361121888,1361121887,1361121886,1358960703,1358960959,1358961215,1627396927,1627397183,1627397439,1627397695,1361121885,1361121884,1361121883,1361121882,1361122138,1361122394,1361122650,1361122906,1361123162,1361123418,1361123674,1361123930,1361056354,1361056610,1361056866,1361057122,1361057378,1361057634,1361057890,1361058146,1627398995,1361058402,1361056353,1361056352,1361056351,1358961221,1361056350,1361056349,1361056348,1361056347,1361056346,1361056602,1361056858,1361057114,1361057370,1361057626,1361057882,1361058138,1361058394,1360990818,1360991074,1360991330,1360991586,1360991842,1360992098,1360992354,1360992610,1360992866,1360990817,1360990816,1360990815,1360990814,1360990813,1360990812,1529044781,1360990811,1360990810,1627396933,1360991066,1360991322,1360991578,1360991834,1360992090,1360992346,1360992602,1360992858,1527143487,1527209023,1527274559,1360925282,1360925538,1360925794,1360926050,1360926306,1360926562,1360926818,1360927074,1360927330,1360925281,1360925280,1360925279,1360925278,1360925277,1360925276,1360925275,1360925274,1360925530,1360925786,1360926042,1360926298,1360926554,1360926810,1360927066,1360927322,1695034148,1360859746,1360860002,1360860258,1360860514,1360860770,1360861026,1360861282,1695037229,1360861538,1360861794,1360859745,1627397189,1360859744,1360859743,1360859742,1360859741,1360859740,1360859739,1627397951,1627398207,1360859738,1627398463,1627398719,1627398975,1360859994,1360860250,1360860506,1360860762,1360861018,1627399231,1627399487,1627399743,1360861274,1360861530,1560816165,1360861786,1360794210,1360794466,1627397445,1360794722,1360794978,1627918901,1360795234,1360795490,1360795746,1360796002,1360796258,1560815910,1360794209,1360794208,1360794207,1360794206,1627399999,1627400255,1627400511,1493701429,1360794205,1366757985,1627397701,1360794204,1360794203,1360794202,1360794458,1360794714,1360794970,1360795226,1360795482,1360795738,1360795994,1695033383,1360796250,1360728674,1360728930,1360729186,1360729442,1360729698,1360729954,1627919413,1366778466,1366778210,1360730210,1360730466,1695033128,1360730722,1360728673,1360728672,1360728671,1360728670,1360728669,1627397957,1360728668,1493701941,1366777954,1366777698,1366777442,1366777186,1360728667,1493702197,1366776930,1366776674,1360728666,1360728922,1360729178,1360729434,1360729690,1366776418,1366776162,1360729946,1493702453,1366775906,1366775650,1360730202,1360730458,1360730714,1360663138,1360663394,1366775394,1366775138,1360663650,1360663906,1360664162,1360664418,1360664674,1360664930,1360665186,1360663137,1360663136,1360663135,1627398213,1360663134,1360663133,1360663132,1360663131,1360663130,1360663386,1360663642,1360663898,1360664154,1358959686,1360664410,1360664666,1360664922,1360665178,1360597602,1360597858,1360598114,1627920437,1366774882,1366774626,1360598370,1360598626,1360598882,1627398469,1360599138,1360599394,1360599650,1366774370,1366774114,1360597601,1360597600,1627398725,1360597599,1360597598,1627398981,1360597597,1360597596,1360597595,1493702965,1366773858,1366773602,1366773346,1366773090,1360597594,1360597850,1360598106,1360598362,1527143743,1360598618,1360598874,1527209279,1527274815,1360599130,1360599386,1360599642,1360532066,1360532322,1360532578,1360532834,1360533090,1360533346,1360533602,1627920949,1366772834,1366772578,1360533858,1360534114,1360532065,1360532064,1360532063,1360532062,1360532061,1360532060,1360532059,1728586049,1360532058,1360532314,1360532570,1360532826,1360533082,1360533338,1360533594,1360533850,1695034670,1360534106,1360466530,1360466786,1360467042,1360467298,1360467554,1360467810,1360468066,1360468322,1627399237,1360468578,1360466529,1360466528,1360466527,1360466526,1360466525,1360466524,1360466523,1360466522,1360466778,1360467034,1360467290,1360467546,1360467802,1360468058,1360468314,1360468570,1360400994,1360401250,1360401506,1360401762,1360402018,1360402274,1360402530,1360402786,1360403042,1360400993,1360400992,1360400991,1360400990,1360400989,1360400988,1360400987,1360400986,1360401242,1360401498,1360401754,1360402010,1360402266,1360402522,1360402778,1360403034,1360335458,1360335714,1627399493,1360335970,1360336226,1360336482,1360336738,1360336994,1460150566,1360337250,1360337506,1360335457,1360335456,1360335455,1360335454,1360335453,1360335452,1360335451,1360335450,1360335706,1360335962,1360336218,1360336474,1360336730,1360336986,1360337242,1360337498,1360269922,1360270178,1360270434,1360270690,1360270946,1560814118,1360271202,1360271458,1360271714,1529041973,1360271970,1360269921,1360269920,1360269919,1360269918,1560812861,1360269917,1360269916,1360269915,1360269914,1360270170,1360270426,1360270682,1360270938,1360271194,1360271450,1360271706,1360271962,1360204386,1360204642,1695032102,1360204898,1627399749,1360205154,1360205410,1360205666,1360205922,1527143999,1527209535,1527275071,1360206178,1360206434,1360204385,1360204384,1360204383,1360204382,1360204381,1360204380,1360204379,1360204378,1360204634,1695030053,1360204890,1360205146,1360205402,1360205658,1360205914,1360206170,1360206426,1360138850,1360139106,1366772322,1366772066,1366771810,1366710868,1360139362,1360139618,1360139874,1360140130,1695036974,1360140386,1360140642,1360140898,1360138849,1360138848,1627400005,1366712916,1366771554,1366771298,1366771042,1366770786,1366770530,1366770274,1366770018,1366769762,1366769506,1366769250,1360138847,1360138846,1360138845,1360138844,1627397462,1627397206,1627396950,1358961238,1358960982,1358960726,1358960470,1360138843,1366768994,1366768738,1366768482,1366768226,1366767970,1360138842,1360139098,1360139354,1366767714,1366767458,1366767202,1366766946,1366766690,1360139610,1360139866,1366766434,1366766178,1366765922,1366765666,1366765410,1366765154,1366764898,1366764642,1366764386,1366764130,1366763874,1366763618,1360140122,1360140378,1360140634,1360140890,1360073314,1360073570,1560812581,1360073826,1360074082,1360074338,1360074594,1360074850,1360075106,1360075362,1527847778,1527848034,1527848290,1527848546,1527848802,1527849058,1527849314,1527849570,1527849826,1527850082,1527850338,1527850594,1527850850,1527851106,1527851362,1527851618,1527851874,1627400498,1527852130,1527852386,1527852642,1527852898,1527853154,1527853410,1527853666,1527853922,1527854178,1527854434,1527854690,1527854946,1527855202,1527855458,1527855714,1527855970,1526939479,1528116814,1527856226,1527856482,1527856738,1527856994,1527857250,1527857506,1527857762,1527858018,1527858274,1527858530,1527858786,1527859042,1527859298,1527859554,1527859810,1527860066,1527860322,1527860578,1527860834,1527861090,1527861346,1527861602,1527861858,1527862114,1527862370,1527862626,1527862882,1527863138,1527863394,1527863650,1527863906,1527864162,1527864418,1527864674,1527864930,1527865186,1527865442,1527865698,1527865954,1360073313,1560815415,1358960214,1358959958,1358959702,1527865953,1360073312,1527865952,1360073311,1527865951,1360073310,1560812837,1527865950,1360073309,1527865949,1358960672,1360073308,1527865948,1360073307,1527865947,1360073306,1360073562,1360073818,1360074074,1360074330,1360074586,1360074842,1360075098,1393630782,1360075354,1527850074,1527850330,1527850586,1527850842,1527851098,1527851354,1527851610,1527851866,1527852122,1527854682,1527854938,1527855194,1527855450,1527855706,1527855962,1527856218,1527856474,1527856730,1527865946,1360007778,1360008034,1360008290,1360008546,1360008802,1360009058,1360009314,1360009570,1360009826,1527782242,1527782498,1527782754,1527783010,1527783266,1527783522,1527783778,1527784034,1527784290,1527784546,1527784802,1627400478,1627400222,1627399966,1627399710,1560816449,1527785058,1527785314,1527785570,1627399454,1527785826,1527786082,1527786338,1393631038,1627399198,1627398942,1627398686,1627398430,1627398174,1627397918,1627397662,1527786594,1627397406,1627397150,1627396894,1358961182,1358960926,1527786850,1527787106,1527787362,1527787618,1358959646,1527787874,1527788130,1527788386,1527788642,1695034432,1527788898,1527789154,1527789410,1527789666,1527789922,1527790178,1527790434,1527790690,1527790946,1527791202,1527791458,1527791714,1527791970,1527792226,1527792482,1527792738,1527792994,1527793250,1527793506,1527793762,1527794018,1527794274,1527794530,1527794786,1527795042,1527795298,1527795554,1393631294,1527795810,1527796066,1695034687,1527796322,1527796578,1527796834,1527797090,1527797346,1695032359,1527797602,1527797858,1527798114,1527798370,1527798626,1527798882,1627400261,1527799138,1527799394,1527799650,1527799906,1527800162,1527800418,1360007777,1527800417,1695032616,1360007776,1527800416,1360007775,1560815145,1527800415,1360007774,1527800414,1360007773,1527800413,1360007772,1366763362,1366763106,1627918900,1527800412,1360007771,1527800411,1360007770,1360008026,1360008282,1360008538,1360008794,1360009050,1627400517,1527144255,1527209791,1527275327,1360009306,1366762850,1366762594,1493701428,1360009562,1360009818,1527784538,1527784794,1527785050,1527785306,1527785562,1527785818,1527786074,1527786330,1527786586,1527789146,1527789402,1527789658,1527789914,1527790170,1527790426,1527790682,1527790938,1527791194,1527800410,1359942242,1359942498,1359942754,1359943010,1359943266,1359943522,1366762338,1366762082,1627919412,1359943778,1359944034,1359944290,1527716706,1527716962,1527717218,1527717474,1527717730,1527717986,1527718242,1527718498,1527718754,1527719010,1527719266,1366761826,1366761570,1493701940,1527719522,1527719778,1527720034,1527720290,1527720546,1527720802,1527721058,1527721314,1527721570,1527721826,1527722082,1527722338,1527722594,1527722850,1527723106,1527723362,1527723618,1527723874,1527724130,1527724386,1527724642,1527724898,1695033398,1527725154,1527725410,1527725666,1527725922,1527726178,1527726434,1527726690,1527726946,1527727202,1527727458,1527727714,1527727970,1366761314,1366761058,1627919924,1529043554,1527728226,1527728482,1527728738,1527728994,1527729250,1527729506,1527729762,1527730018,1527730274,1527730530,1366760802,1527730786,1366760546,1493702452,1527731042,1527731298,1527731554,1527731810,1527732066,1527732322,1394825825,1527732578,1358960416,1394825824,1527732834,1527733090,1527733346,1394825823,1527733602,1527733858,1527734114,1366760290,1527734370,1394825822,1366760034,1527734626,1527734882,1359942241,1527734881,1359942240,1527734880,1359942239,1527734879,1359942238,1627920436,1527734878,1359942237,1527734877,1359942236,1527734876,1359942235,1527734875,1359942234,1359942490,1359942746,1359943002,1359943258,1359943514,1359943770,1359944026,1359944282,1527719002,1527719258,1527719514,1527719770,1527720026,1529045037,1527720282,1527720538,1527720794,1527721050,1527723610,1394825821,1527723866,1527724122,1394825820,1394825819,1527724378,1527724634,1527724890,1527725146,1527725402,1529043546,1366759778,1366759522,1493702964,1527725658,1527144511,1527210047,1528978274,1527275583,1527734874,1359876706,1359876962,1359877218,1359877474,1359877730,1359877986,1359878242,1359878498,1695033653,1359878754,1527651170,1527651426,1527651682,1527651938,1527652194,1527652450,1366759266,1527652706,1366759010,1627920948,1527652962,1527653218,1527653474,1527653730,1527653986,1527654242,1527654498,1527654754,1527655010,1526936917,1695037237,1527655266,1527655522,1527655778,1527656034,1527656290,1527656546,1527656802,1527657058,1527657314,1527657570,1527657826,1527658082,1527658338,1527658594,1527658850,1527659106,1527659362,1527659618,1527659874,1527660130,1527660386,1527660642,1527660898,1527661154,1527661410,1527661666,1527661922,1527662178,1527662434,1560819764,1527662690,1527662946,1527663202,1527663458,1527663714,1527663970,1527664226,1527664482,1627400242,1627399986,1627399730,1527664738,1560820019,1527664994,1527665250,1527665506,1527665762,1527666018,1527666274,1527666530,1527666786,1527667042,1527667298,1527667554,1527667810,1527668066,1527668322,1527668578,1527668834,1527669090,1527669346,1359876705,1527669345,1359876704,1527669344,1359876703,1527669343,1359876702,1527669342,1359876701,1527669341,1359876700,1527669340,1359876699,1527669339,1359876698,1359876954,1359877210,1366758754,1366758498,1366758242,1359877466,1359877722,1359877978,1359878234,1359878490,1695038002,1359878746,1527653466,1527653722,1560816180,1527653978,1527654234,1527654490,1527654746,1527655002,1527655258,1527655514,1527658074,1527658330,1527658586,1527658842,1527659098,1366757986,1366843922,1366843666,1366843410,1366843154,1366842898,1366842642,1366842386,1366842130,1366841874,1366843923,1527659354,1527659610,1627399474,1627399218,1527659866,1527660122,1527669338,1695038257,1359811170,1359811426,1359811682,1527144767,1527210303,1527275839,1359811938,1359812194,1359812450,1359812706,1359812962,1359813218,1527585634,1527585890,1527586146,1527586402,1527586658,1527586914,1627398962,1527587170,1527587426,1627398706,1627398450,1527587682,1527587938,1527588194,1527588450,1527588706,1527588962,1627398194,1527589218,1527589474,1527589730,1527589986,1527590242,1366841875,1527590498,1527590754,1527591010,1527591266,1527591522,1527591778,1527592034,1560820784,1527592290,1527592546,1527592802,1527593058,1527593314,1527593570,1527593826,1527594082,1527594338,1527594594,1527594850,1527595106,1527595362,1527595618,1527595874,1527596130,1527596386,1560821039,1527596642,1527596898,1527597154,1527597410,1527597666,1527597922,1527598178,1527598434,1527598690,1527598946,1527599202,1527599458,1527599714,1528912994,1366710867,1527599970,1695039022,1527600226,1527600482,1527600738,1527600994,1527601250,1527601506,1527601762,1527602018,1527602274,1527602530,1527602786,1527603042,1527603298,1527603554,1527603810,1359811169,1527603809,1359811168,1527603808,1359811167,1527145023,1560816435,1527210559,1527603807,1359811166,1527276095,1527603806,1359811165,1527603805,1359811164,1527603804,1695039277,1359811163,1527603803,1359811162,1359811418,1359811674,1359811930,1359812186,1359812442,1359812698,1359812954,1359813210,1527587930,1527588186,1527588442,1527588698,1527588954,1527589210,1527589466,1527589722,1527589978,1527592538,1527592794,1527593050,1527593306,1695034418,1527593562,1527593818,1527594074,1627397715,1527594330,1527594586,1527603802,1359745634,1359745890,1359746146,1359746402,1695034404,1359746658,1359746914,1359747170,1359747426,1359747682,1527520098,1527520354,1527520610,1527520866,1527521122,1527521378,1527521634,1527521890,1527522146,1527522402,1527522658,1527522914,1527523170,1527523426,1527523682,1527523938,1527524194,1527524450,1560816421,1527524706,1527524962,1527525218,1527525474,1527525730,1527525986,1527526242,1366712915,1527526498,1527526754,1527527010,1527527266,1728588326,1527527522,1527527778,1527528034,1527528290,1527528546,1527528802,1527529058,1527529314,1366843924,1527529570,1527529826,1527530082,1527530338,1527530594,1527530850,1527531106,1527531362,1527531618,1527531874,1527532130,1527532386,1527532642,1527532898,1528847714,1527533154,1527533410,1527533666,1527533922,1527534178,1527534434,1527534690,1527534946,1527535202,1527535458,1560815911,1527535714,1528116808,1527535970,1527536226,1366841876,1366843925,1527536482,1527536738,1527536994,1527537250,1527537506,1527537762,1527538018,1366841877,1366843926,1527538274,1359745633,1527538273,1359745632,1695034673,1527538272,1359745631,1527538271,1359745630,1527538270,1366841878,1359745629,1527538269,1359745628,1527538268,1359745627,1527538267,1359745626,1359745882,1359746138,1359746394,1359746650,1359746906,1359747162,1359747418,1359747674,1527522394,1527522650,1527522906,1527523162,1527523418,1527523674,1527523930,1366843927,1527524186,1527524442,1527527002,1527527258,1527527514,1527527770,1695033384,1527528026,1527528282,1527528538,1627396935,1527528794,1527529050,1527538266,1359680098,1359680354,1359680610,1528117064,1359680866,1366841879,1366843928,1359681122,1359681378,1359681634,1359681890,1359682146,1527454562,1527454818,1527455074,1366841880,1527455330,1560815401,1366843929,1627397938,1627397682,1627397426,1627397170,1627396914,1358961202,1527455586,1527455842,1527456098,1527456354,1527456610,1527456866,1527457122,1527457378,1527457634,1527457890,1527145024,1527458146,1527210560,1527458402,1527458658,1527458914,1527459170,1527459426,1527459682,1527459938,1527460194,1527460450,1527460706,1366841881,1527460962,1527276096,1358960946,1358960690,1358960434,1366843930,1527461218,1527461474,1527461730,1358960160,1527461986,1527462242,1527462498,1527462754,1527463010,1527463266,1527463522,1527463778,1527464034,1527464290,1527464546,1528117320,1527464802,1527465058,1527465314,1527465570,1358959904,1366841882,1527465826,1527466082,1527466338,1527466594,1366843931,1527466850,1527467106,1527467362,1527467618,1527467874,1527468130,1527468386,1527468642,1527468898,1527469154,1527469410,1527469666,1527469922,1560817200,1527470178,1527470434,1527470690,1527470946,1366841883,1366710866,1527471202,1527471458,1527471714,1527471970,1527472226,1527472482,1527472738,1359680097,1366712914,1366843932,1527472737,1359680096,1527472736,1359680095,1527472735,1359680094,1527472734,1359680093,1527472733,1359680092,1527472732,1359680091,1527472731,1359680090,1359680346,1359680602,1359680858,1359681114,1359681370,1359681626,1359681882,1359682138,1527456858,1527457114,1527457370,1527457626,1527457882,1527458138,1527458394,1527458650,1527458906,1527461466,1527461722,1527461978,1527462234,1527462490,1527462746,1527463002,1527463258,1527463514,1527472730,1359614562,1359614818,1359615074,1359615330,1359615586,1359615842,1359616098,1359616354,1528117576,1528117832,1528118088,1359616610,1527389026,1527389282,1527389538,1527389794,1527390050,1527390306,1527390562,1527390818,1527391074,1527391330,1527391586,1527391842,1527392098,1527392354,1366841884,1526939477,1527392610,1627400530,1527392866,1527393122,1527393378,1527393634,1527393890,1527394146,1527394402,1527394658,1527394914,1527395170,1527395426,1527395682,1527395938,1527396194,1527396450,1527396706,1527396962,1527397218,1695033425,1527397474,1527397730,1460154159,1527397986,1527398242,1527398498,1527398754,1527399010,1527399266,1527399522,1527399778,1527400034,1527400290,1527400546,1527400802,1527401058,1527401314,1527401570,1527401826,1527402082,1527402338,1527402594,1527402850,1527403106,1527403362,1527403618,1527403874,1527404130,1527404386,1527404642,1527404898,1527405154,1527405410,1527405666,1527405922,1527406178,1527406434,1527406690,1527406946,1527407202,1359614561,1527407201,1359614560,1527407200,1359614559,1527407199,1359614558,1527407198,1359614557,1527407197,1359614556,1527407196,1359614555,1527407195,1359614554,1359614810,1359615066,1359615322,1359615578,1359615834,1359616090,1359616346,1359616602,1527391322,1560813093,1358960178,1358959922,1358959666,1527391578,1527391834,1527392090,1527392346,1527392602,1527392858,1527393114,1527393370,1527395930,1527396186,1527396442,1527396698,1527396954,1527397210,1527397466,1527397722,1527397978,1527407194,1359549026,1359549282,1359549538,1359549794,1359550050,1359550306,1359550562,1359550818,1359551074,1527323490,1695031077,1527323746,1527324002,1527324258,1527324514,1527324770,1527325026,1560813605,1527325282,1527325538,1527325794,1527326050,1527326306,1527326562,1527326818,1527327074,1527327330,1527327586,1527327842,1527328098,1527328354,1527328610,1527328866,1527329122,1560817710,1527329378,1527329634,1527329890,1527330146,1527330402,1527330658,1527330914,1527331170,1527331426,1527331682,1527331938,1527332194,1527332450,1527332706,1527332962,1527333218,1527333474,1527333730,1527333986,1527334242,1527334498,1527334754,1527335010,1527335266,1527335522,1527335778,1527336034,1527336290,1527336546,1527336802,1527337058,1527337314,1527337570,1527337826,1527338082,1527338338,1527338594,1527338850,1560813861,1527339106,1527339362,1527339618,1527339874,1527340130,1527340386,1527340642,1527340898,1527341154,1527341410,1527341666,1359549025,1527341665,1359549024,1527341664,1359549023,1527341663,1359549022,1366843933,1527341662,1359549021,1527341661,1359549020,1527341660,1359549019,1527341659,1366841885,1366843934,1359549018,1359549274,1359549530,1359549786,1359550042,1359550298,1359550554,1366841886,1366843935,1359550810,1359551066,1527325786,1527326042,1527326298,1527326554,1527326810,1366841887,1366843936,1527327066,1527327322,1527327578,1527327834,1527330394,1527330650,1527330906,1366841888,1366843937,1527331162,1527331418,1527331674,1527331930,1527332186,1527332442,1527341658,1366841889,1366843938,1359483490,1359483746,1359484002,1359484258,1359484514,1359484770,1359485026,1366841890,1366843939,1359485282,1359485538,1527257954,1527258210,1527258466,1527258722,1527258978,1527259234,1527259490,1527259746,1527260002,1527260258,1560814117,1527260514,1627918899,1527260770,1527261026,1527261282,1527261538,1527261794,1527262050,1527262306,1393631550,1695035693,1527262562,1527262818,1527263074,1527263330,1493701427,1527263586,1527263842,1527264098,1527264354,1527264610,1527264866,1527265122,1527265378,1527265634,1527265890,1393631806,1527266146,1527266402,1527266658,1527266914,1527267170,1527267426,1527267682,1527267938,1527268194,1527268450,1527268706,1527268962,1527269218,1527269474,1627400477,1627400221,1627399965,1527269730,1627919411,1366841891,1366710865,1527269986,1527270242,1527849790,1527270498,1527145025,1527210561,1527276097,1527270754,1527271010,1527271266,1527271522,1527271778,1527272034,1527272290,1527272546,1527272802,1527273058,1366712913,1366843940,1527273314,1527273570,1527273826,1527274082,1527274338,1527274594,1527274850,1366841892,1366843941,1527275106,1527275362,1527275618,1527275874,1527276130,1359483489,1527276129,1366841893,1366843942,1359483488,1527276128,1359483487,1527276127,1359483486,1527276126,1359483485,1366841894,1366843943,1527276125,1359483484,1527276124,1359483483,1531462754,1531462498,1531462242,1366841895,1366843944,1531461986,1531461730,1527276123,1359483482,1531461474,1531529050,1531528794,1366841896,1366843945,1531528538,1531528282,1527264858,1527265114,1527265370,1527265626,1527265882,1527266138,1527266394,1527266650,1527266906,1527276122,1359417954,1627399709,1359418210,1359418466,1359418722,1359418978,1359419234,1695035948,1359419490,1359419746,1359420002,1627399453,1627399197,1527192418,1527192674,1627398941,1527192930,1527193186,1627398685,1627398429,1527193442,1627398173,1627397917,1627397661,1627397405,1627397149,1627396893,1358961181,1358960925,1527193698,1527193954,1527194210,1527930210,1527194466,1527194722,1527194978,1527195234,1527195490,1358959645,1493701939,1527195746,1527196002,1527196258,1527196514,1527196770,1527197026,1527197282,1527850046,1527197538,1527197794,1527198050,1527198306,1493702195,1527198562,1527198818,1527199074,1527199330,1527199586,1527199842,1527200098,1366841897,1366843946,1527200354,1527200610,1527200866,1527201122,1527201378,1527201634,1527201890,1366841898,1366843947,1527202146,1527202402,1527202658,1527202914,1527203170,1527203426,1527203682,1366841899,1366710864,1527203938,1527204194,1527204450,1527204706,1527204962,1527205218,1527205474,1366712912,1366843948,1527205730,1527205986,1527206242,1527206498,1527206754,1527207010,1527207266,1366841900,1366843949,1527207522,1527207778,1527208034,1527208290,1527208546,1527208802,1527209058,1366841901,1366843950,1527209314,1527209570,1527209826,1527210082,1527210338,1527210594,1359417953,1366841902,1366843951,1527210593,1359417952,1527210592,1560818475,1359417951,1527210591,1627400014,1359417950,1527210590,1695032360,1359417949,1527210589,1359417948,1527210588,1359417947,1527210587,1359417946,1560814889,1527199322,1527199578,1527199834,1527200090,1527200346,1527200602,1527200858,1527201114,1527201370,1527210586,1359352418,1359352674,1359352930,1359353186,1359353442,1359353698,1359353954,1359354210,1728587306,1359354466,1527126882,1527127138,1527127394,1527127650,1527127906,1560818730,1527128162,1527128418,1527128674,1527128930,1527129186,1366841903,1366843952,1527129442,1493702451,1527129698,1527129954,1527130210,1527130466,1527130722,1527130978,1527131234,1527131490,1527131746,1627920435,1527132002,1527132258,1527132514,1527132770,1527133026,1527133282,1527133538,1527133794,1527134050,1366841904,1366843953,1527134306,1527134562,1527134818,1527135074,1527135330,1527135586,1527135842,1366841905,1366843954,1527136098,1527136354,1527136610,1527136866,1527137122,1527137378,1527137634,1366841906,1366843955,1527137890,1527138146,1527138402,1527138658,1527138914,1527139170,1527139426,1366841907,1366710863,1527139682,1527139938,1527140194,1527140450,1527140706,1527140962,1527141218,1366712911,1366843956,1527141474,1527141730,1527141986,1527142242,1527142498,1527142754,1527143010,1366841908,1366843957,1527143266,1527143522,1527143778,1527144034,1527144290,1527144546,1527144802,1366841909,1527145058,1359352417,1527145057,1359352416,1366843958,1527145056,1359352415,1527145055,1359352414,1527145054,1359352413,1493702963,1527145053,1359352412,1527145052,1359352411,1527145051,1359352410,1527133786,1527134042,1527134298,1527134554,1527134810,1527135066,1527135322,1527135578,1527135834,1695036713,1527145050,1359286882,1358959703,1358959959,1359287138,1359287394,1359287650,1359287906,1359288162,1359288418,1359288674,1359288930,1627920947,1366841910,1527061346,1527061602,1527061858,1527062114,1527062370,1695033681,1527062626,1366843959,1527062882,1527063138,1527063394,1527063650,1527063906,1527064162,1527064418,1527064674,1527064930,1527065186,1527065442,1527065698,1527065954,1527066210,1527066466,1527066722,1527066978,1527067234,1527067490,1527067746,1527068002,1527068258,1527068514,1527068770,1366841911,1366843960,1527069026,1527069282,1527069538,1527069794,1527070050,1527070306,1527070562,1366841912,1366843961,1527070818,1527071074,1527071330,1527071586,1527071842,1527072098,1527072354,1366841913,1366843962,1527072610,1527072866,1527073122,1527073378,1527073634,1527073890,1527074146,1366841914,1366843963,1527074402,1527074658,1527074914,1527075170,1527075426,1527075682,1527075938,1366841915,1366710862,1527076194,1527076450,1527076706,1527076962,1527077218,1527077474,1527077730,1366712910,1366843964,1527077986,1527078242,1527078498,1527078754,1527079010,1527079266,1527079522,1359286881,1527079521,1359286880,1527079520,1359286879,1527079519,1627918898,1359286878,1527079518,1359286877,1695036968,1527079517,1359286876,1527079516,1359286875,1527079515,1359286874,1527068250,1527068506,1527068762,1527069018,1366841916,1527069274,1527069530,1527069786,1527070042,1366843965,1527070298,1527079514,1359221346,1359221602,1695036719,1358960215,1358960471,1358960727,1358960983,1493701426,1359221858,1359222114,1359222370,1359222626,1359222882,1359223138,1358961239,1627396951,1359223394,1527145026,1527210562,1527276098,1526995810,1526996066,1526996322,1526996578,1526996834,1526997090,1526997346,1627919410,1526997602,1526997858,1526998114,1526998370,1526998626,1526998882,1526999138,1526999394,1526999650,1526999906,1366841917,1366843966,1527000162,1527000418,1527000674,1527000930,1527001186,1527001442,1527001698,1366841918,1366843967,1527001954,1527002210,1527002466,1527002722,1527002978,1527003234,1527003490,1366841919,1366843968,1527003746,1527004002,1527004258,1527004514,1527004770,1527005026,1527005282,1366841920,1366843969,1527005538,1527005794,1527006050,1527006306,1527006562,1527006818,1527007074,1366841921,1366843970,1527007330,1527007586,1527007842,1527008098,1527008354,1527008610,1527008866,1366841922,1366843971,1527009122,1527009378,1527009634,1527009890,1527010146,1527010402,1527010658,1366841923,1366710861,1527010914,1527011170,1527011426,1627919666,1527011682,1527011938,1527012194,1527012450,1527012706,1527012962,1627919922,1527013218,1527013474,1527013730,1527013986,1359221345,1527013985,1359221344,1527013984,1359221343,1695032401,1527013983,1359221342,1527013982,1560819495,1359221341,1527013981,1359221340,1527013980,1359221339,1527013979,1359221338,1527002714,1627400507,1627400251,1527002970,1527003226,1560818736,1627399995,1627399739,1627399483,1627399227,1627398971,1627398715,1560814145,1527003482,1527003738,1627398459,1627398203,1627397947,1627397691,1627397435,1627397179,1527003994,1527004250,1627920178,1627396923,1358961211,1527004506,1527004762,1527013978,1359155810,1359156066,1359156322,1359156578,1528782434,1359156834,1359157090,1359157346,1359157602,1366712909,1366843972,1359157858,1526930274,1526930530,1526930786,1526931042,1526931298,1526931554,1366841924,1366843973,1526931810,1526932066,1526932322,1526932578,1526932834,1526933090,1526933346,1366841925,1366843974,1526933602,1526933858,1526934114,1526934370,1526934626,1526934882,1526935138,1366841926,1366843975,1526935394,1526935650,1526935906,1526936162,1526936418,1526936674,1526936930,1366841927,1366843976,1526937186,1526937442,1526937698,1526937954,1526938210,1526938466,1526938722,1366841928,1366843977,1526938978,1526939234,1526939490,1526939746,1526940002,1526940258,1526940514,1366841929,1366843978,1526940770,1526941026,1526941282,1526941538,1526941794,1526942050,1526942306,1526942562,1526942818,1526943074,1526943330,1358960955,1358960699,1358960443,1358960187,1358959931,1358959675,1526943586,1526943842,1526944098,1526944354,1526944610,1526944866,1526945122,1526945378,1526945634,1526945890,1526946146,1526946402,1526946658,1526946914,1526947170,1526947426,1526947682,1526947938,1526948194,1526948450,1359155809,1526948449,1359155808,1526948448,1359155807,1526948447,1359155806,1526948446,1627920434,1359155805,1526948445,1359155804,1526948444,1359155803,1526948443,1359155802,1526937178,1526937434,1526937690,1526937946,1526938202,1526938458,1526938714,1493702962,1526938970,1526939226,1526948442,1527996002,1359090274,1359090530,1359090786,1359091042,1359091298,1359091554,1359091810,1366841930,1366843979,1359092066,1359092322,1526864738,1526864994,1526865250,1526865506,1526865762,1366841931,1366710860,1526866018,1526866274,1526866530,1526866786,1526867042,1526867298,1526867554,1366712908,1366843980,1526867810,1526868066,1526868322,1526868578,1526868834,1526869090,1526869346,1366841932,1366843981,1526869602,1526869858,1526870114,1526870370,1526870626,1526870882,1526871138,1366841933,1366843982,1526871394,1526871650,1526871906,1526872162,1526872418,1526872674,1526872930,1366841934,1366843983,1526873186,1526873442,1526873698,1526873954,1526874210,1526874466,1526874722,1366841935,1526874978,1526875234,1526875490,1526875746,1526876002,1526876258,1526876514,1526876770,1526877026,1526877282,1526877538,1526877794,1460156454,1526878050,1526878306,1526878562,1526878818,1526879074,1526879330,1366843984,1526879586,1627920946,1526879842,1526880098,1526880354,1526880610,1526880866,1526881122,1526881378,1526881634,1526881890,1526882146,1526882402,1526882658,1526882914,1359090273,1527145027,1527210563,1526882913,1359090272,1526882912,1359090271,1527276099,1526882911,1359090270,1526882910,1359090269,1526882909,1359090268,1526882908,1359090267,1526882907,1359090266,1560813117,1526871642,1526871898,1526872154,1526872410,1526872666,1526872922,1526873178,1526873434,1526873690,1526882906,1359024738,1359024994,1359025250,1359025506,1359025762,1359026018,1366841936,1366843985,1359026274,1359026530,1359026786,1526799202,1526799458,1526799714,1526799970,1366841937,1366843986,1526800226,1526800482,1526800738,1526800994,1526801250,1526801506,1526801762,1366841938,1366843987,1526802018,1526802274,1526802530,1526802786,1526803042,1526803298,1526803554,1366841939,1366710859,1526803810,1526804066,1526804322,1526804578,1526804834,1526805090,1526805346,1366712907,1366843988,1526805602,1526805858,1526806114,1526806370,1526806626,1526806882,1526807138,1366841940,1366843989,1526807394,1526807650,1526807906,1526808162,1526808418,1526808674,1526808930,1366841941,1366843990,1526809186,1526809442,1526809698,1695036209,1526809954,1526810210,1526810466,1528717154,1526810722,1526810978,1526811234,1526811490,1526811746,1526812002,1526812258,1526812514,1526812770,1526813026,1526813282,1526813538,1526813794,1526814050,1526814306,1526814562,1526814818,1460149564,1526815074,1526815330,1526815586,1526815842,1526816098,1526816354,1526816610,1526816866,1526817122,1526817378,1359024737,1526817377,1359024736,1526817376,1359024735,1526817375,1359024734,1526817374,1359024733,1526817373,1359024732,1526817372,1359024731,1526817371,1359024730,1526806106,1526806362,1526806618,1526806874,1526807130,1526807386,1526807642,1526807898,1526808154,1526817370,1358959202,1358959458,1358959714,1366841942,1358959970,1358960226,1358960482,1358960738,1526817307,1358960994,1358961250,1526733666,1526733922,1526734178,1526734434,1526734690,1526734946,1526735202,1526735458,1526735714,1526735970,1526736226,1526736482,1526736738,1526736994,1526737250,1526737506,1526737762,1526738018,1526738274,1526738530,1526738786,1526739042,1526739298,1526739554,1526739810,1526740066,1526740322,1526740578,1526740834,1526741090,1526741346,1526741602,1526741858,1526742114,1526742370,1526742626,1526742882,1526743138,1526743394,1526743650,1526743906,1526744162,1526744418,1526744674,1526744930,1526745186,1526745442,1526745698,1526745954,1526746210,1526746466,1526746722,1526746978,1526747234,1526747490,1526747746,1526748002,1358960715,1366843991,1526748258,1358960459,1526748514,1526748770,1526749026,1526749282,1526749538,1526749794,1526750050,1526750306,1526750562,1526750818,1526751074,1526751330,1526751586,1526751842,1358959201,1358959457,1358959713,1358959969,1358960225,1358960203,1358960481,1358960737,1358960993,1358961249,1527145028,1527210564,1527276100,1526733665,1526733921,1526734177,1526734433,1526734689,1526734945,1526735201,1358960967,1526735457,1526735713,1526735969,1526736225,1526736481,1627400274,1526736737,1526736993,1526737249,1526737505,1526737761,1526738017,1526738273,1358959947,1526738529,1526738785,1358959691,1526739041,1526739297,1526739553,1526739809,1526740065,1526740321,1528061794,1526740577,1526740833,1526741089,1526817308,1526741345,1526741601,1526741857,1526742113,1526742369,1526742625,1526742881,1526743137,1526743393,1526743649,1526743905,1526744161,1526744417,1526744673,1526744929,1526745185,1526745441,1526745697,1526745953,1526746209,1526746465,1526746721,1526746977,1526747233,1526747489,1526747745,1526748001,1526748257,1526748513,1526748769,1526749025,1526749281,1526749537,1526749793,1526750049,1526750305,1526750561,1526750817,1526751073,1526751329,1526751585,1526751841,1358959200,1358959456,1358959712,1358959968,1358960224,1358960480,1358960736,1358960992,1358961248,1526733664,1526733920,1526734176,1526734432,1526734688,1526734944,1526735200,1526735456,1526735712,1526735968,1526736224,1526736480,1526736736,1526736992,1526737248,1366841943,1526737504,1526737760,1526738016,1526738272,1526738528,1526738784,1526739040,1526739296,1560820005,1526739552,1526739808,1526740064,1526740320,1526740576,1526740832,1460152897,1526741088,1526741344,1526741600,1526741856,1526742112,1526742368,1526742624,1526742880,1526743136,1526743392,1526743648,1526743904,1526744160,1560818226,1526744416,1526744672,1526744928,1526745184,1526745440,1526745696,1526745952,1526746208,1526746464,1526746720,1526746976,1627397207,1627397463,1627397719,1526747232,1526747488,1526747744,1526748000,1526748256,1526748512,1526748768,1526749024,1526749280,1526749536,1526749792,1526750048,1560816448,1526750304,1526817309,1526750560,1526750816,1526751072,1526751328,1526751584,1526751840,1358959199,1358959455,1358959711,1358959967,1358960223,1358960479,1358960735,1358960991,1358961247,1526733663,1526733919,1526734175,1526734431,1526734687,1526734943,1526735199,1526735455,1526735711,1526735967,1526736223,1526736479,1526736735,1526736991,1526737247,1526737503,1526737759,1526738015,1526738271,1526738527,1526738783,1526739039,1526739295,1526739551,1526739807,1526740063,1526740319,1526740575,1526740831,1526741087,1526741343,1526741599,1526741855,1526742111,1526742367,1526742623,1526742879,1526743135,1526743391,1526743647,1526743903,1526744159,1526744415,1526744671,1526744927,1526745183,1526745439,1526745695,1526745951,1526746207,1526746463,1526746719,1526746975,1526747231,1526747487,1526747743,1526747999,1526748255,1526748511,1526748767,1526749023,1358960455,1695034431,1526749279,1526749535,1526749791,1526750047,1526750303,1526750559,1526750815,1526751071,1526751327,1526751583,1526751839,1358959198,1358959454,1358959710,1358959966,1358960222,1358960478,1358960734,1358960990,1627399758,1358961246,1526733662,1526733918,1526734174,1695034660,1526734430,1526734686,1526734942,1526735198,1526735454,1526735710,1526735966,1526736222,1526736478,1526736734,1526736990,1695034405,1526737246,1526737502,1526737758,1526738014,1526738270,1526738526,1526738782,1526739038,1526739294,1526739550,1526817310,1526739806,1526740062,1526740318,1526740574,1526740830,1526741086,1526741342,1526741598,1526741854,1526742110,1526742366,1526742622,1526742878,1526743134,1526743390,1526743646,1526743902,1526744158,1526744414,1526744670,1526744926,1526745182,1526745438,1526745694,1526745950,1526746206,1526746462,1526746718,1526746974,1526747230,1526747486,1526747742,1526747998,1526748254,1526748510,1526748766,1526749022,1526749278,1526749534,1526749790,1526750046,1526750302,1526750558,1526750814,1526751070,1526751326,1526751582,1526751838,1358959197,1358959453,1358959709,1358959965,1358960221,1358960477,1358960733,1358960989,1358961245,1560816422,1627397975,1627398231,1627398487,1627398743,1526733661,1526733917,1526734173,1526734429,1526734685,1526734941,1358959690,1627398999,1627399255,1627399511,1627399767,1695037988,1526735197,1526735453,1526735709,1526735965,1526736221,1526736477,1526736733,1560816167,1627397191,1526736989,1526737245,1526737501,1526737757,1526738013,1526738269,1526738525,1358960464,1526738781,1526739037,1695033640,1526739293,1526739549,1526739805,1695033385,1526740061,1526740317,1526740573,1526740829,1526741085,1526741341,1526741597,1526741853,1526742109,1560815402,1627400018,1627399762,1627399506,1526742365,1526742621,1526742877,1526743133,1366843992,1526743389,1526743645,1526743901,1526744157,1526744413,1526744669,1526744925,1526745181,1526745437,1526817311,1526745693,1526745949,1526746205,1526746461,1526746717,1526746973,1526747229,1526747485,1526747741,1526747997,1526748253,1526748509,1526748765,1526749021,1526749277,1526749533,1526749789,1526750045,1526750301,1526750557,1526750813,1526751069,1526751325,1526751581,1526751837,1358959196,1358959452,1358959708,1358959964,1358960220,1358960476,1358960732,1358960988,1358961244,1526733660,1526733916,1526734172,1526734428,1526734684,1526734940,1526735196,1526735452,1526735708,1526735964,1526736220,1526736476,1526736732,1526736988,1526737244,1526737500,1526737756,1526738012,1526738268,1526738524,1526738780,1526739036,1526739292,1526739548,1526739804,1526740060,1526740316,1526740572,1526740828,1526741084,1526741340,1526741596,1526741852,1527145029,1526742108,1527210565,1527276101,1526742364,1526742620,1526742876,1526743132,1526743388,1526743644,1526743900,1526744156,1526744412,1526744668,1526744924,1526745180,1526745436,1526745692,1526745948,1526746204,1526746460,1526746716,1526746972,1526747228,1526747484,1526747740,1526747996,1526748252,1526748508,1526748764,1526749020,1526749276,1526749532,1526749788,1695036981,1526750044,1526750300,1526750556,1526750812,1526751068,1526751324,1526751580,1526751836,1358959195,1358959451,1560819508,1358959707,1358959963,1358960219,1358960475,1358960731,1358960987,1358961243,1526733659,1526733915,1526734171,1526734427,1526734683,1526817312,1526734939,1526735195,1526735451,1526735707,1526735963,1526736219,1526736475,1526736731,1526736987,1526737243,1526737499,1526737755,1526738011,1526738267,1526738523,1526738779,1526739035,1526739291,1526739547,1526739803,1526740059,1526740315,1526740571,1526740827,1526741083,1526741339,1526741595,1526741851,1526742107,1526742363,1526742619,1526742875,1526743131,1526743387,1526743643,1526743899,1526744155,1526744411,1526744667,1526744923,1526745179,1526745435,1526745691,1526745947,1526746203,1526746459,1526746715,1526746971,1526747227,1526747483,1526747739,1526747995,1526748251,1526748507,1526748763,1526749019,1526749275,1526749531,1526749787,1526750043,1526750299,1526750555,1695035699,1460156467,1526750811,1526751067,1526751323,1358959946,1526751579,1526751835,1358959152,1358959194,1627400023,1627400279,1627400535,1358959450,1358959706,1358959962,1358960218,1358960474,1358960730,1358960986,1358961242,1526733658,1526733914,1359024689,1526734170,1526734426,1526734682,1526734938,1526735194,1526735450,1359221300,1526735706,1526735962,1526736218,1526736474,1526736730,1526736986,1528651874,1526737242,1526737498,1526737754,1526738010,1526738266,1526738522,1526738778,1526739034,1526739290,1526739546,1526739802,1526740058,1560820018,1526740314,1526740570,1526740826,1526741082,1526741338,1526741594,1526741850,1526742106,1526742362,1526742618,1526742874,1526743130,1526817313,1526743386,1526743642,1526743898,1526744154,1526744410,1526744666,1526744922,1526745178,1526745434,1526745690,1526745946,1526746202,1526746458,1526746714,1526746970,1526747226,1526747482,1526747738,1526747994,1526748250,1526748506,1526748762,1526749018,1526749274,1526749530,1526749786,1526750042,1526750298,1526750554,1526750810,1526751066,1526751322,1526751578,1526751834,1528314466,1528314458,1528379746,1528379738,1364073050,1364072794,1364072538,1364072282,1364072026,1364071770,1364071514,1364071258,1364071002,1528445530,1528445538,1529039202,1663256929,1663256928,1663256927,1663256926,1663256925,1663256924,1663256923,1529039194,1528249178,1528249186,1528973922,1528511322,1528511330,1528908642,1359286837,1528183898,1528183906,1528843362,1527925858,1528778082,1527991650,1528712802,1528057442,1528647522,1528123234,1528582242,1528189026,1528516962,1528254818,1528451682,1695038001,1528320610,1528386402,1529037922,1663255649,1663255648,1663255647,1663255646,1663255645,1663255644,1663255643,1394820186,1528972130,1528906338,1528840546,1527923042,1528774754,1527988322,1528708962,1528053602,1528643170,1528643162,1528118882,1528118874,1528577378,1528577370,1528184162,1528184154,1528511586,1528511578,1695032101,1527145030,1527210566,1527276102,1528249442,1528249434,1528445794,1528445786,1528314722,1528314714,1528127586,1560820528,1528380002,1528379994,1529038946,1526817314,1394821217,1394821216,1394821215,1394821214,1394821213,1394821212,1394821211,1529038938,1528577114,1528577122,1528973666,1528118618,1528118626,1528908386,1528642906,1528642914,1528843106,1527925602,1528777826,1527991394,1528712546,1528057186,1528647266,1528122978,1528581986,1528188770,1528516706,1528254562,1528451426,1528320354,1528386146,1529038178,1663255905,1663255904,1663255903,1663255902,1663255901,1663255900,1663255899,1394820442,1528972386,1528906594,1528840802,1527923298,1528775010,1527988578,1528709218,1528053858,1528643426,1528119138,1528577634,1528577626,1528184418,1528184410,1528511842,1528511834,1528249698,1528249690,1528446050,1560817716,1528446042,1528314978,1528314970,1528380258,1528380250,1529038690,1394820961,1394820960,1394820959,1394820958,1394820957,1394820956,1394820955,1529038682,1528973410,1528053338,1528053346,1528908130,1695030052,1528708698,1528708706,1528842850,1527925346,1528777570,1460157487,1527991138,1528712290,1528056930,1528647010,1528122722,1528581730,1528188514,1528516450,1528254306,1528451170,1528320098,1528385890,1695030308,1560821038,1529038434,1663256161,1663256160,1663256159,1663256158,1663256157,1663256156,1663256155,1394820698,1528972642,1528906850,1528841058,1527923554,1528775266,1527988834,1528709474,1528054114,1528643682,1528119394,1528577890,1366841944,1528184674,1528512098,1528512090,1695030564,1366843993,1526817315,1528249954,1528249946,1528446306,1528446298,1528315234,1528315226,1528380514,1528380506,1528973154,1528907874,1527988066,1528842594,1527925090,1528777314,1527990882,1528712034,1528056674,1528646754,1528122466,1528581474,1528188258,1528516194,1528254050,1528450914,1528319842,1528385634,1528972898,1528907106,1528841314,1527923810,1528775522,1527989090,1528709730,1528054370,1528643938,1528119650,1528578146,1528184930,1528512354,1528250210,1528446562,1528446554,1528315490,1528315482,1528380770,1528380762,1528907618,1528842338,1527924834,1528777058,1527990626,1528711778,1528056418,1528646498,1528122210,1528581218,1528188002,1528515938,1528253794,1695039021,1528450658,1528319586,1528385378,1528907362,1528841570,1527850302,1527924066,1528775778,1527989346,1528709986,1528054626,1528644194,1528119906,1528578402,1528185186,1528512610,1528250466,1528446818,1528315746,1528381026,1528381018,1528842082,1527924578,1528776802,1527990370,1527850558,1528711522,1528056162,1528646242,1528121954,1528580962,1528187746,1528515682,1528253538,1358960202,1528450402,1528319330,1528385122,1528841826,1527924322,1528776034,1527989602,1528710242,1528054882,1528644450,1528120162,1528578658,1528185442,1528512866,1528250722,1528447074,1528316002,1528381282,1527850814,1528776546,1527990114,1527145031,1527210567,1527276103,1528711266,1528055906,1528645986,1528121698,1528580706,1528187490,1526817316,1528515426,1528253282,1528450146,1528319074,1528384866,1528776290,1527989858,1528710498,1528055138,1528644706,1528120418,1528578914,1528185698,1528513122,1528250978,1528447330,1528316258,1528381538,1528711010,1528055650,1528645730,1528121442,1528580450,1528187234,1528515170,1528253026,1528449890,1528318818,1528384610,1528710754,1528055394,1528644962,1528120674,1528579170,1528185954,1528513378,1528251234,1528447586,1528316514,1528381794,1528645474,1528121186,1528580194,1528186978,1528514914,1528252770,1528449634,1528318562,1528384354,1528645218,1528120930,1528579426,1528186210,1528513634,1528251490,1528447842,1528316770,1528382050,1528579938,1627399250,1528186722,1528586594,1528514658,1528252514,1528449378,1528318306,1528384098,1528579682,1528186466,1366841945,1528513890,1528251746,1528448098,1528317026,1695035189,1528382306,1528514402,1528252258,1528449122,1528318050,1528383842,1528514146,1366843994,1528252002,1528448354,1528317282,1528382562,1528448866,1528317794,1528383586,1528448610,1528317538,1528382818,1528383330,1528383074,1527851070,1529044570,1663262299,1663262300,1663262301,1663262302,1663262303,1663262304,1663262305,1529044578,1528774498,1364073051,1364071003,1527922786,1364073052,1364071004,1528840290,1364073053,1364071005,1528906082,1364073054,1364071006,1528971874,1364073055,1364071007,1527851326,1528193378,1394819930,1663255387,1663255388,1526817317,1663255389,1663255390,1663255391,1663255392,1663255393,1529037666,1364073056,1364071008,1364073057,1364071009,1364073058,1364072802,1364072546,1364072290,1364072034,1364071778,1364071522,1364071266,1364071010,1364138586,1364138330,1364138074,1364137818,1364137562,1364137306,1364137050,1364136794,1364136538,1364138587,1364136539,1364138588,1364136540,1364138589,1364136541,1364138590,1364136542,1364138591,1364136543,1364138592,1364136544,1364138593,1364136545,1364138594,1364138338,1364138082,1364137826,1364137570,1364137314,1364137058,1364136802,1364136546,1364204122,1364203866,1364203610,1364203354,1364203098,1364202842,1364202586,1364202330,1364202074,1527931482,1527931483,1527931484,1527931485,1527931486,1527931487,1527931488,1527931489,1527931490,1528848986,1528848987,1528848988,1528848989,1528848990,1528848991,1695032361,1528848992,1528848993,1560814890,1528848994,1528386658,1528914274,1528320866,1528979554,1528451938,1529044826,1663262555,1663262556,1663262557,1663262558,1663262559,1560815147,1663262560,1663262561,1366841690,1366841434,1627918897,1529044834,1528255074,1364204123,1364202075,1528517218,1364204124,1364202076,1528189282,1364204125,1364202077,1527145032,1528582498,1364204126,1364202078,1528123490,1527210568,1527276104,1364204127,1364202079,1366841178,1528647778,1364204128,1366840922,1364202080,1528521314,1528521313,1364204129,1364202081,1526817318,1364204130,1364203874,1364203618,1364203362,1364203106,1364202850,1364202594,1364202338,1364202082,1364269658,1364269402,1364269146,1364268890,1364268634,1364268378,1364268122,1364267866,1364267610,1364269659,1364267611,1364269660,1364267612,1364269661,1364267613,1364269662,1364267614,1364269663,1364267615,1364269664,1364267616,1364269665,1364267617,1364269666,1364269410,1364269154,1364268898,1364268642,1364268386,1364268130,1364267874,1364267618,1364335194,1364334938,1364334682,1364334426,1364334170,1364333914,1364333658,1364333402,1364333146,1528057698,1528914522,1528914523,1528914524,1528914525,1528914526,1528914527,1528914528,1528914529,1528914530,1528713058,1528979810,1527991906,1528521312,1529045082,1366840666,1663262811,1663262812,1663262813,1663262814,1663262815,1663262816,1663262817,1529045090,1528778338,1364335195,1366840410,1366840154,1364333147,1527926114,1366839898,1528521311,1364335196,1364333148,1528843618,1364335197,1364333149,1528908898,1364335198,1364333150,1528974178,1366839642,1366710858,1493701425,1364335199,1364333151,1529039450,1663257179,1663257180,1663257181,1663257182,1663257183,1663257184,1663257185,1529039458,1364335200,1364333152,1364335201,1364333153,1364335202,1364334946,1364334690,1364334434,1364334178,1364333922,1364333666,1364333410,1528521310,1528521309,1528521308,1528521307,1528521306,1528259170,1528259169,1528259168,1526817319,1364333154,1364400730,1364400474,1364400218,1364399962,1364399706,1364399450,1364399194,1364398938,1364398682,1364400731,1364398683,1364400732,1364398684,1364400733,1364398685,1364400734,1364398686,1364400735,1364398687,1364400736,1364398688,1364400737,1364398689,1364400738,1364400482,1364400226,1364399970,1364399714,1364399458,1364399202,1364398946,1364398690,1364466266,1364466010,1364465754,1364465498,1364465242,1364464986,1364464730,1364464474,1364464218,1364466267,1364464219,1528980058,1528980059,1528980060,1528980061,1528980062,1528980063,1528980064,1528980065,1528980066,1364466268,1364464220,1529045338,1528259167,1528259166,1528259165,1528259164,1663263067,1528259163,1528259162,1663263068,1663263069,1663263070,1527918690,1663263071,1663263072,1663263073,1529045346,1528379482,1528379490,1364466269,1527918682,1364464221,1527983970,1528314202,1528314210,1364466270,1364464222,1528445274,1528445282,1364466271,1364464223,1528248922,1528248930,1527983962,1528049250,1364466272,1364464224,1528511066,1528511074,1364466273,1364464225,1528183642,1528049242,1528114530,1528183650,1364466274,1364466018,1364465762,1364465506,1364465250,1364464994,1528114522,1364464738,1364464482,1627919409,1364464226,1364531802,1364531546,1364531290,1364531034,1364530778,1364530522,1364530266,1364530010,1364529754,1364531803,1364529755,1364531804,1364529756,1364531805,1364529757,1526817320,1364531806,1364529758,1364531807,1364529759,1364531808,1364529760,1364531809,1364529761,1364531810,1364531554,1364531298,1364531042,1364530786,1364530530,1364530274,1364530018,1364529762,1364597338,1364597082,1364596826,1364596570,1364596314,1364596058,1364595802,1364595546,1364595290,1364597339,1364595291,1364597340,1364595292,1528576858,1528576866,1529045594,1529045595,1529045596,1529045597,1529045598,1529045599,1529045600,1529045601,1529045602,1528118362,1528118370,1364597341,1364595293,1528642650,1528642658,1364597342,1364595294,1528053082,1528053090,1364597343,1364595295,1528708442,1528708450,1364597344,1364595296,1527987802,1527987810,1364597345,1364595297,1528774234,1528774242,1364597346,1364597090,1364596834,1364596578,1364596322,1364596066,1364595810,1364595554,1364595298,1364662874,1364662618,1364662362,1364662106,1364661850,1461263963,1364661594,1461132891,1364661338,1461001819,1364661082,1364660826,1364662875,1364660827,1364662876,1364660828,1460870747,1364662877,1364660829,1364662878,1364660830,1364662879,1364660831,1364662880,1364660832,1364662881,1364660833,1364662882,1364662626,1364662370,1627919665,1364662114,1527913304,1528307546,1527913296,1528176474,1364661858,1364661602,1527913288,1528045402,1527913280,1528374618,1528309082,1528243546,1528178010,1528112474,1528046938,1527981402,1364661346,1364661090,1364660834,1364728410,1364728154,1526817321,1364727898,1364727642,1364727386,1364727130,1364726874,1364726618,1364726362,1364728411,1364726363,1364728412,1364726364,1527922530,1364728413,1364726365,1528840034,1364728414,1364726366,1528905826,1364728415,1364726367,1528971618,1364728416,1364726368,1394819674,1663255131,1663255132,1663255133,1663255134,1663255135,1663255136,1663255137,1529037410,1364728417,1364726369,1528386914,1364728418,1364728162,1364727906,1364727650,1364727394,1364727138,1364726882,1364726626,1364726370,1364793946,1364793690,1364793434,1364793178,1364792922,1364792666,1364792410,1364792154,1364791898,1364793947,1364791899,1364793948,1364791900,1364793949,1364791901,1364793950,1364791902,1364793951,1364791903,1364793952,1364791904,1364793953,1364791905,1364793954,1364793698,1364793442,1364793186,1364792930,1364792674,1364792418,1364792162,1364791906,1364859482,1364859226,1364858970,1364858714,1364858458,1364858202,1364857946,1364857690,1364857434,1364859483,1364857435,1364859484,1364857436,1528321122,1364859485,1364857437,1528452194,1527145033,1364859486,1527210569,1527276105,1364857438,1528255330,1364859487,1364857439,1528517474,1364859488,1364857440,1528189538,1364859489,1364857441,1364859490,1364859234,1364858978,1364858722,1364858466,1364858210,1364857954,1364857698,1364857442,1364925018,1364924762,1364924506,1364924250,1364923994,1364923738,1364923482,1364923226,1364922970,1526817322,1364925019,1364922971,1364925020,1364922972,1364925021,1364922973,1364925022,1364922974,1364925023,1364922975,1364925024,1364922976,1364925025,1364922977,1364925026,1364924770,1364924514,1364924258,1364924002,1364923746,1364923490,1364923234,1364922978,1364990554,1364990298,1364990042,1364989786,1364989530,1364989274,1364989018,1364988762,1364988506,1364990555,1364988507,1528582754,1364990556,1364988508,1528123746,1364990557,1364988509,1528648034,1364990558,1364988510,1528057954,1364990559,1364988511,1364990560,1364988512,1364990561,1364988513,1364990562,1364990306,1364990050,1364989794,1364989538,1364989282,1364989026,1364988770,1364988514,1365056090,1365055834,1365055578,1365055322,1365055066,1365054810,1365054554,1365054298,1461264219,1365054042,1365056091,1461133147,1365054043,1461002075,1365056092,1460871003,1365054044,1365056093,1365054045,1365056094,1365054046,1365056095,1365054047,1365056096,1365054048,1365056097,1365054049,1365056098,1365055842,1365055586,1365055330,1365055074,1365054818,1365054562,1365054306,1365054050,1528713314,1365121626,1365121370,1365121114,1365120858,1365120602,1365120346,1365120090,1527978833,1528307802,1527913295,1528176730,1527913287,1528045658,1527913279,1528374362,1528308826,1528243290,1528177754,1529043298,1394825569,1394825568,1394825567,1394825566,1394825565,1394825564,1394825563,1529043290,1528978018,1365119834,1526817323,1365119578,1527992162,1365121627,1365119579,1528778594,1365121628,1365119580,1365121629,1365119581,1365121630,1365119582,1365121631,1365119583,1365121632,1365119584,1365121633,1365119585,1365121634,1365121378,1365121122,1365120866,1365120610,1365120354,1365120098,1365119842,1365119586,1365187162,1365186906,1365186650,1365186394,1365186138,1365185882,1365185626,1365185370,1365185114,1365187163,1365185115,1365187164,1365185116,1365187165,1365185117,1365187166,1365185118,1365187167,1365185119,1527926370,1365187168,1365185120,1528843874,1365187169,1365185121,1365187170,1365186914,1365186658,1365186402,1365186146,1365185890,1365185634,1365185378,1365185122,1365252698,1365252442,1365252186,1528912738,1365251930,1365251674,1365251418,1365251162,1365250906,1365250650,1365252699,1365250651,1365252700,1365250652,1365252701,1528847458,1365250653,1366712906,1366839386,1493702193,1365252702,1365250654,1365252703,1365250655,1365252704,1365250656,1365252705,1365250657,1365252706,1365252450,1365252194,1365251938,1527929954,1365251682,1365251426,1365251170,1365250914,1365250658,1365318234,1365317978,1365317722,1365317466,1365317210,1528782178,1365316954,1365316698,1365316442,1365316186,1365318235,1365316187,1528909154,1365318236,1527995746,1365316188,1365318237,1365316189,1365318238,1365316190,1365318239,1365316191,1365318240,1528716898,1365316192,1365318241,1365316193,1526817324,1365318242,1365317986,1365317730,1365317474,1365317218,1365316962,1365316706,1365316450,1365316194,1365383770,1365383514,1365383258,1365383002,1365382746,1365382490,1365382234,1365381978,1365381722,1365383771,1365381723,1365383772,1365381724,1365383773,1365381725,1365383774,1365381726,1365383775,1365381727,1365383776,1365381728,1365383777,1365381729,1365383778,1365383522,1365383266,1365383010,1365382754,1365382498,1365382242,1365381986,1365381730,1365449306,1365449050,1365448794,1365448538,1365448282,1365448026,1365447770,1365447514,1365447258,1365449307,1365447259,1365449308,1365447260,1365449309,1365447261,1365449310,1365447262,1365449311,1365447263,1365449312,1365447264,1528061538,1365449313,1365447265,1365449314,1365449058,1365448802,1365448546,1365448290,1366839130,1365448034,1365447778,1365447522,1627399502,1365447266,1365514842,1365514586,1365514330,1366838874,1365514074,1366838618,1365513818,1365513562,1627920177,1365513306,1365513050,1365512794,1365514843,1365512795,1528651618,1365514844,1365512796,1365514845,1365512797,1365514846,1365512798,1365514847,1365512799,1365514848,1528127330,1365512800,1365514849,1365512801,1365514850,1365514594,1365514338,1365514082,1365513826,1528586338,1365513570,1365513314,1365513058,1365512802,1365580378,1365580122,1365579866,1365579610,1528193122,1365579354,1365579098,1365578842,1365578586,1365578330,1365580379,1526817325,1365578331,1365580380,1365578332,1365580381,1365578333,1365580382,1365578334,1365580383,1365578335,1365580384,1365578336,1365580385,1365578337,1365580386,1365580130,1365579874,1365579618,1365579362,1365579106,1365578850,1365578594,1365578338,1365645914,1365645658,1365645402,1365645146,1365644890,1365644634,1365644378,1365644122,1365643866,1365645915,1365643867,1365645916,1365643868,1365645917,1365643869,1365645918,1365643870,1365645919,1365643871,1365645920,1365643872,1365645921,1365643873,1365645922,1365645666,1365645410,1365645154,1365644898,1365644642,1365644386,1365644130,1365643874,1365711450,1365711194,1365710938,1365710682,1528521058,1365710426,1365710170,1365709914,1365709658,1365709402,1365711451,1365709403,1365711452,1365709404,1365711453,1365709405,1365711454,1365709406,1365711455,1695033914,1365709407,1365711456,1365709408,1365711457,1365709409,1528258914,1365711458,1365711202,1365710946,1365710690,1365710434,1365710178,1365709922,1365709666,1528455778,1528455777,1528455776,1528455775,1528455774,1528455773,1528455772,1365709410,1528455771,1528455770,1528324706,1528324705,1528324704,1528324703,1528324702,1528324701,1528324700,1528324699,1528324698,1527918946,1365776986,1365776730,1365776474,1365776218,1365775962,1365775706,1365775450,1527918938,1527984226,1365775194,1365774938,1365776987,1365774939,1365776988,1365774940,1365776989,1365774941,1526817326,1365776990,1365774942,1365776991,1365774943,1365776992,1365774944,1365776993,1365774945,1365776994,1365776738,1365776482,1365776226,1365775970,1365775714,1365775458,1365775202,1365774946,1365842522,1365842266,1365842010,1365841754,1365841498,1365841242,1365840986,1365840730,1365840474,1365842523,1365840475,1365842524,1365840476,1365842525,1365840477,1365842526,1365840478,1365842527,1365840479,1365842528,1365840480,1365842529,1365840481,1365842530,1365842274,1365842018,1365841762,1365841506,1365841250,1365840994,1365840738,1365840482,1365908058,1365907802,1365907546,1365907290,1365907034,1365906778,1365906522,1365906266,1365906010,1365908059,1365906011,1365908060,1365906012,1365908061,1365906013,1365908062,1627400529,1365906014,1365908063,1365906015,1365908064,1365906016,1365908065,1365906017,1365908066,1365907810,1365907554,1365907298,1365907042,1365906786,1365906530,1365906274,1365906018,1365973594,1365973338,1365973082,1365972826,1365972570,1365972314,1365972058,1365971802,1365971546,1527984218,1528049506,1365973595,1365971547,1365973596,1365971548,1530290778,1530290522,1530290266,1528049498,1528114786,1530290010,1530289754,1530289498,1530289242,1530288986,1530288730,1530288474,1528114778,1528180066,1530288218,1530287962,1530287706,1530287450,1530287194,1530286938,1530286682,1528180058,1528112218,1528046682,1527981146,1530286426,1530286170,1530285914,1526817327,1530285658,1530285402,1530285146,1530284890,1530284634,1530284378,1530284122,1530290779,1530284123,1530290780,1530284124,1530290781,1530284125,1530290782,1530284126,1530290783,1530284127,1530290784,1530284128,1530290785,1530284129,1530290786,1530290530,1530290274,1530290018,1530289762,1530289506,1530289250,1530288994,1530288738,1530288482,1530288226,1530287970,1530287714,1530287458,1530287202,1530286946,1530286690,1530286434,1530286178,1530285922,1530285666,1530285410,1530285154,1530284898,1530284642,1530284386,1530284130,1530549854,1530615390,1530680926,1530746462,1530811998,1530484317,1530549598,1530615134,1530680670,1530746206,1530811742,1530484316,1530550109,1530615645,1530681181,1530746717,1530812253,1366838362,1530484061,1530549342,1530614878,1627400273,1530680414,1530745950,1530811486,1530353250,1530418786,1530484322,1530549858,1530615394,1530680930,1530746466,1530812002,1530484315,1529108763,1529108507,1529174299,1529106971,1530550108,1530615644,1530681180,1530746716,1530812252,1530484060,1530483805,1530353506,1530419042,1530484578,1530550114,1530615650,1530681186,1530746722,1366838106,1530812258,1530352994,1627920433,1695033945,1695034201,1695034457,1530418530,1530484066,1530549602,1530615138,1530680674,1530746210,1530811746,1530353242,1527264601,1528118344,1528118600,1528118856,1528182349,1530418778,1530484314,1527978806,1527922459,1527922203,1526817328,1527921947,1530550107,1530615643,1530681179,1530746715,1530812251,1530484059,1529106715,1529172251,1529106716,1529106723,1530483804,1530549085,1530614621,1530680157,1530745693,1530811229,1530353762,1530419298,1530484834,1530550370,1530615906,1530681442,1530746978,1530812514,1530352738,1530418274,1530483810,1530549346,1530614882,1530680418,1530745954,1530811490,1530353498,1530419034,1530484570,1530550106,1530615642,1530681178,1530746714,1530812250,1530352986,1530418522,1530484058,1527913277,1527987995,1527987739,1527920411,1530483803,1367106143,1529106724,1529106722,1529106725,1529172259,1530549084,1530614620,1527267161,1530680156,1530745692,1530811228,1530354018,1530419554,1530485090,1530550626,1530616162,1530681698,1530747234,1530812770,1530352482,1530418018,1530483554,1530549090,1530614626,1530680162,1530745698,1530811234,1627399246,1530353754,1530419290,1530484826,1530550362,1560815931,1530615898,1530681434,1530746970,1530812506,1530352730,1530418266,1530483802,1366647359,1527926555,1527992347,1527925019,1527924763,1530549083,1530614619,1530680155,1560816216,1560816472,1695034456,1530745691,1530811227,1530354274,1530419810,1530485346,1530550882,1530616418,1530681954,1527264600,1530747490,1530813026,1530352226,1528182345,1530417762,1530483298,1530548834,1530614370,1530679906,1527267160,1530745442,1530810978,1530354010,1530419546,1530485082,1530550618,1526817329,1530616154,1530681690,1530747226,1530812762,1530352474,1530418010,1530483546,1530549082,1530614618,1530680154,1530745690,1530811226,1530354530,1530420066,1530485602,1530551138,1530616674,1530682210,1530747746,1530813282,1530351970,1530417506,1530483042,1530548578,1530614114,1530679650,1530745186,1530810722,1530354266,1530419802,1530485338,1530550874,1530616410,1530681946,1530747482,1530813018,1530352218,1530417754,1530483290,1530548826,1530614362,1530679898,1530745434,1530810970,1530354786,1530420322,1530485858,1530551394,1530616930,1530682466,1530748002,1530813538,1530351714,1530417250,1530482786,1530548322,1530613858,1530679394,1530744930,1530810466,1530354522,1530420058,1530485594,1530551130,1530616666,1530682202,1530747738,1530813274,1530351962,1530417498,1530483034,1530548570,1530614106,1530679642,1530745178,1627398994,1627398738,1627398482,1627398226,1530810714,1530355042,1530420578,1627397970,1530486114,1530551650,1366837850,1366837594,1530617186,1530682722,1493702961,1530748258,1530813794,1530351458,1530416994,1530482530,1530548066,1530613602,1627398990,1530679138,1530744674,1530810210,1728588375,1560816471,1695034455,1530354778,1530420314,1530485850,1530551386,1530616922,1530682458,1530747994,1530813530,1527264599,1530351706,1530417242,1530482778,1528247884,1530548314,1530613850,1530679386,1530744922,1530810458,1527267159,1530355298,1530420834,1526817330,1530486370,1530551906,1530617442,1530682978,1530748514,1530814050,1530351202,1530416738,1530482274,1530547810,1530613346,1530678882,1530744418,1530809954,1530355034,1530420570,1530486106,1530551642,1530617178,1530682714,1530748250,1530813786,1530351450,1530416986,1530482522,1530548058,1530613594,1530679130,1530744666,1530810202,1530355554,1530421090,1530486626,1530552162,1530617698,1530683234,1530748770,1530814306,1530350946,1530416482,1530482018,1530547554,1530613090,1530678626,1530744162,1530809698,1530356319,1530421855,1530487391,1530552927,1530618463,1530683999,1530749535,1530815071,1530355290,1530420826,1530486362,1530551898,1530617434,1530682970,1530748506,1530814042,1530351194,1530416730,1530482266,1530547802,1530613338,1530678874,1530744410,1695033404,1530809946,1530356318,1530421854,1530487390,1530552926,1530618462,1530683998,1530749534,1530815070,1530355810,1527145034,1527210570,1527276106,1530421346,1530486882,1530552418,1530617954,1627397714,1627397458,1627397459,1530683490,1530749026,1530814562,1358959652,1560816214,1560816470,1695034454,1530350690,1530416226,1530481762,1530547298,1530612834,1530678370,1530743906,1530809442,1527264598,1530356320,1530421856,1530487392,1528247882,1530552928,1530618464,1530684000,1530749536,1530815072,1527267158,1530355546,1530421082,1530486618,1530552154,1530617690,1530683226,1530748762,1530814298,1530350938,1526817331,1530416474,1530482010,1530547546,1530613082,1530678618,1530744154,1530809690,1530356317,1530421853,1530487389,1530552925,1530618461,1530683997,1530749533,1530815069,1530356066,1530421602,1530487138,1530552674,1530618210,1530683746,1530749282,1530814818,1530350434,1530415970,1530481506,1530547042,1530612578,1530678114,1530743650,1530809186,1530356321,1530421857,1530487393,1530552929,1530618465,1530684001,1530749537,1530815073,1530349663,1530415199,1530480735,1530546271,1530611807,1530677343,1530742879,1530808415,1530355802,1530421338,1530486874,1530552410,1530617946,1530683482,1530749018,1530814554,1530350682,1530416218,1530481754,1530547290,1530612826,1530678362,1530743898,1530809434,1530356316,1530421852,1530487388,1530552924,1530618460,1530683996,1530749532,1530815068,1530349662,1530415198,1530480734,1530546270,1530611806,1530677342,1530742878,1530808414,1530356322,1695033941,1695034197,1695034453,1530421858,1530487394,1530552930,1530618466,1530684002,1530749538,1530815074,1530350178,1527264597,1530415714,1530481250,1627920945,1366837338,1366837082,1530546786,1530612322,1528313419,1530677858,1530743394,1530808930,1530349664,1530415200,1527267157,1530480736,1530546272,1530611808,1530677344,1530742880,1530808416,1530356058,1530421594,1530487130,1530552666,1530618202,1530683738,1530749274,1530814810,1530350426,1530415962,1530481498,1530547034,1530612570,1526817332,1530678106,1530743642,1530809178,1530356315,1530421851,1530487387,1530552923,1530618459,1530683995,1530749531,1530815067,1530349661,1530415197,1530480733,1530546269,1530611805,1530677341,1530742877,1530808413,1530349922,1530415458,1530480994,1530546530,1530612066,1530677602,1530743138,1530808674,1530349665,1530415201,1530480737,1530546273,1530611809,1530677345,1530742881,1530808417,1530356314,1530421850,1530487386,1530552922,1530618458,1530683994,1530749530,1530815066,1530350170,1530415706,1530481242,1530546778,1530612314,1530677850,1530743386,1530808922,1530349660,1530415196,1530480732,1530546268,1530611804,1530677340,1530742876,1627400275,1530808412,1366836826,1366836570,1627918896,1530349666,1530415202,1560816212,1560816468,1627400531,1695034452,1530480738,1530546274,1530611810,1530677346,1530742882,1530808418,1530349914,1530415450,1530480986,1527264596,1530546522,1530612058,1530677594,1530743130,1527985742,1560815421,1530808666,1530349659,1530415195,1530480731,1530546267,1527267156,1530611803,1530677339,1530742875,1530808411,1530349658,1530415194,1530480730,1530546266,1530611802,1530677338,1530742874,1530808410,1666209376,1666209375,1666209377,1666209632,1666209120,1530877534,1530943070,1531008606,1531074142,1666209374,1666209631,1666209119,1530877538,1530943074,1531008610,1531074146,1531139682,1531205218,1531270754,1531336290,1531401826,1531467362,1526817333,1526817077,1526816821,1526816565,1526816309,1526816053,1526815797,1526815541,1526815285,1531532898,1531598434,1531663970,1531729506,1531795042,1531860578,1531926114,1531991650,1666209633,1666209121,1666209888,1666208864,1366647103,1366646847,1366646591,1366646335,1531139677,1666209373,1666209630,1530877278,1530942814,1531008350,1531073886,1531139422,1666209118,1666209887,1666208863,1530877794,1530943330,1531008866,1531074402,1531139938,1531205474,1531271010,1531336546,1531402082,1531467618,1531533154,1531598690,1531664226,1531729762,1531795298,1531860834,1531926370,1531991906,1530877282,1530942818,1531008354,1531073890,1531139426,1531204962,1531270498,1531336034,1531401570,1531467106,1531532642,1460152915,1531598178,1560816467,1531663714,1695034451,1531729250,1531794786,1531860322,1531925858,1531991394,1666209889,1666208865,1397774688,1666208608,1527264595,1366646079,1366645823,1366645567,1527985736,1527985992,1527986248,1527986504,1527986760,1527987016,1527267155,1366645311,1531139676,1666209372,1530877789,1530943325,1531008861,1531074397,1666209629,1367085662,1531204957,1666209117,1666209886,1530877022,1530942558,1531008094,1531073630,1666208862,1397774687,1666208607,1530878050,1530943586,1531009122,1531074658,1531140194,1531205730,1531271266,1531336802,1531402338,1531467874,1531533410,1531598946,1531664482,1531730018,1531795554,1531861090,1560816210,1531926626,1531992162,1530877026,1530942562,1531008098,1531073634,1531139170,1531204706,1531270242,1526815030,1531335778,1531401314,1531466850,1531532386,1531597922,1531663458,1531728994,1531794530,1531860066,1531925602,1531991138,1397774689,1666208609,1397774944,1666208352,1529172260,1529106731,1529106732,1529106733,1531139675,1666209371,1530877788,1530943324,1531008860,1531074396,1666209628,1531204956,1666209116,1666209885,1531139165,1666208861,1397774686,1666208606,1397774943,1666208351,1530878306,1530943842,1531009378,1531074914,1531140450,1531205986,1531271522,1531337058,1531402594,1531468130,1531533666,1531599202,1560816466,1695034450,1531664738,1531730274,1531795810,1531861346,1531926882,1531992418,1530876770,1530942306,1531007842,1531073378,1531138914,1531204450,1531269986,1531335522,1493701424,1366836314,1366836058,1531401058,1527264594,1531466594,1527987272,1527987528,1527987784,1527920205,1531532130,1531597666,1531663202,1531728738,1531794274,1527267154,1531859810,1531925346,1531990882,1397774945,1666208353,1666210656,1397772640,1527920155,1527919899,1527919643,1527985691,1527985435,1531205210,1531270746,1531336282,1531401818,1531467354,1531532890,1531598426,1531663962,1531729498,1531795034,1531860570,1531926106,1531991642,1530877787,1530943323,1531008859,1531074395,1666209627,1529106734,1529172268,1529172269,1695033937,1695034193,1695034449,1529106740,1529106741,1531204955,1666209115,1666209884,1529042229,1531139164,1666208860,1397774685,1530876765,1526815031,1530942301,1531007837,1531073373,1666208605,1397774942,1666208350,1666210655,1397772639,1530878562,1530944098,1531009634,1531075170,1531140706,1531206242,1531271778,1531337314,1531402850,1531468386,1531533922,1531599458,1531664994,1531730530,1531796066,1531861602,1531927138,1531992674,1530876514,1530942050,1531007586,1531073122,1531138658,1531204194,1531269730,1531335266,1531400802,1531466338,1531531874,1531597410,1531662946,1531728482,1531794018,1531859554,1531925090,1531990626,1666210657,1397772641,1666210912,1397772384,1530877786,1530943322,1531008858,1531074394,1531139930,1531205466,1527264593,1531271002,1531336538,1531402074,1527920201,1531467610,1531533146,1531598682,1531664218,1531729754,1527267153,1531795290,1531860826,1531926362,1531991898,1527918107,1527917851,1527983387,1527913270,1527913271,1531204954,1531270490,1531336026,1531401562,1531467098,1531532634,1531598170,1531663706,1531729242,1531794778,1531860314,1531925850,1531991386,1666209883,1529172277,1527926811,1627919408,1366835802,1531139674,1627398734,1531139162,1531139163,1666208859,1397774684,1530876764,1530942300,1531007836,1531073372,1666208604,1397774941,1666208349,1666210654,1397772638,1666210911,1397772383,1530878818,1695033936,1695034192,1695034448,1530944354,1531009890,1531075426,1531140962,1531206498,1531272034,1531337570,1531403106,1531468642,1531534178,1531599714,1531665250,1526815032,1531730786,1531796322,1531861858,1531927394,1531992930,1530876258,1530941794,1531007330,1531072866,1531138402,1531203938,1531269474,1531335010,1531400546,1531466082,1531531618,1531597154,1531662690,1531728226,1531793762,1531859298,1531924834,1531990370,1666210913,1397772385,1666211168,1666207584,1530878042,1530943578,1531009114,1531074650,1531140186,1531205722,1531271258,1531336794,1531402330,1531467866,1531533402,1531598938,1531664474,1531730010,1531795546,1531861082,1531926618,1531992154,1527924507,1527924251,1527990299,1527990043,1527922715,1531204698,1531270234,1531335770,1366835546,1531401306,1531466842,1695037008,1695037264,1695037520,1695037776,1695038032,1695038288,1531532378,1531597914,1359352374,1695038544,1695038800,1695039056,1695039312,1531663450,1531728986,1531794522,1531860058,1531925594,1531991130,1397774683,1530876763,1530942299,1531007835,1531073371,1666208603,1397774940,1666208348,1695039568,1695039824,1695040080,1695040336,1666210653,1397772637,1666210910,1397772382,1666211167,1695040592,1695040848,1666207583,1530879074,1530944610,1531010146,1531075682,1531141218,1531206754,1531272290,1531337826,1531403362,1531468898,1531534434,1531599970,1531665506,1531731042,1531796578,1531862114,1531927650,1531993186,1530876002,1461264475,1530941538,1531007074,1531072610,1531138146,1531203682,1531269218,1531334754,1531400290,1531465826,1531531362,1526815033,1531596898,1531662434,1531727970,1531793506,1531859042,1531924578,1531990114,1666211169,1666207585,1666211424,1666207328,1530878298,1530943834,1531009370,1531074906,1531140442,1531205978,1531271514,1531337050,1531402586,1531468122,1531533658,1531599194,1531664730,1531730266,1531795802,1531861338,1531926874,1531992410,1530876762,1530942298,1531007834,1531073370,1531138906,1531204442,1531269978,1531335514,1531401050,1531466586,1531532122,1531597658,1531663194,1531728730,1531794266,1531859802,1531925338,1531990874,1461133403,1397774939,1666208347,1666210652,1397772636,1666210909,1397772381,1560816207,1560816463,1695034447,1666211166,1666207582,1666211423,1666207327,1530879330,1530944866,1531010402,1531075938,1531141474,1531207010,1531272546,1560819791,1560820047,1695038031,1560820559,1560820815,1560821071,1695039055,1695039311,1560821839,1560822095,1531338082,1560822351,1695040335,1560822863,1560823119,1531403618,1531469154,1531534690,1531600226,1531665762,1531731298,1531796834,1531862370,1531927906,1531993442,1530875746,1530941282,1531006818,1531072354,1531137890,1531203426,1531268962,1531334498,1531400034,1531465570,1531531106,1531596642,1531662178,1531727714,1531793250,1461002331,1531858786,1531924322,1531989858,1666211425,1666207329,1666211680,1666207072,1529045293,1530878554,1530944090,1531009626,1531075162,1531140698,1531206234,1531271770,1531337306,1526815034,1531402842,1531468378,1531533914,1531599450,1531664986,1531730522,1531796058,1531861594,1531927130,1531992666,1530876506,1530942042,1531007578,1531073114,1531138650,1531204186,1531269722,1531335258,1531400794,1531466330,1531531866,1531597402,1531662938,1531728474,1531794010,1531859546,1531925082,1531990618,1666210651,1397772635,1666210908,1397772380,1666211165,1666207581,1666211422,1666207326,1666211679,1666207071,1530879586,1530945122,1531010658,1531076194,1531141730,1531207266,1531272802,1531338338,1531403874,1531469410,1531534946,1531600482,1531666018,1531731554,1531797090,1531862626,1627400017,1627919664,1531928162,1531993698,1530875490,1366835290,1366835034,1627919920,1366834778,1366834522,1530941026,1531006562,1531072098,1531137634,1531203170,1531268706,1531334242,1531399778,1531465314,1527145035,1527210571,1527276107,1627920176,1366834266,1366834010,1531530850,1531596386,1531661922,1531727458,1531792994,1531858530,1531924066,1531989602,1666211681,1666207073,1666211936,1666206816,1530878810,1460871259,1530944346,1531009882,1531075418,1531140954,1531206490,1531272026,1531337562,1531403098,1527978832,1528308058,1527978824,1528176986,1531468634,1531534170,1531599706,1531665242,1627920432,1366833754,1366833498,1531730778,1531796314,1531861850,1527913286,1531927386,1531992922,1530876250,1530941786,1531007322,1531072858,1531138394,1531203930,1531269466,1526815035,1531335002,1531400538,1531466074,1531531610,1531597146,1531662682,1531728218,1531793754,1531859290,1531924826,1531990362,1666210907,1397772379,1666211164,1666207580,1666211421,1666207325,1666211678,1666207070,1666211935,1666206815,1530879842,1530945378,1531010914,1531076450,1531141986,1531207522,1531273058,1531338594,1531404130,1531469666,1531535202,1531600738,1531666274,1531731810,1531797346,1531862882,1531928418,1531993954,1530875234,1530940770,1531006306,1531071842,1531137378,1531202914,1531268450,1531333986,1531399522,1531465058,1531530594,1531596130,1493702960,1366833242,1366832986,1531661666,1531727202,1531792738,1531858274,1528045914,1531923810,1531989346,1666211937,1695034916,1666206817,1666212192,1666206560,1530879066,1627920944,1366832730,1530944602,1527913278,1366832474,1531010138,1531075674,1531141210,1531206746,1531272282,1531337818,1531403354,1531468890,1531534426,1531599962,1531665498,1531731034,1695034661,1531796570,1531862106,1531927642,1531993178,1530875994,1530941530,1531007066,1531072602,1528374106,1531138138,1528308570,1528243034,1528177498,1531203674,1531269210,1531334746,1531400282,1531465818,1531531354,1531596890,1531662426,1531727962,1531793498,1531859034,1531924570,1531990106,1666211163,1666207579,1666211420,1666207324,1666211677,1666207069,1666211934,1666206814,1666212191,1529042485,1666206559,1530880098,1530945634,1531011170,1526815036,1531076706,1531142242,1531207778,1531273314,1531338850,1531404386,1531469922,1531535458,1531600994,1531666530,1531732066,1531797602,1531863138,1531928674,1531994210,1530874978,1530940514,1531006050,1531071586,1531137122,1531202658,1531268194,1531333730,1531399266,1531464802,1531530338,1531595874,1531661410,1531726946,1531792482,1531858018,1531923554,1531989090,1666212193,1666206561,1530880608,1530946144,1531011680,1531077216,1531142752,1531208288,1531273824,1531339360,1531404896,1531470432,1531535968,1531601504,1531667040,1531732576,1531798112,1531863648,1531929184,1627918895,1366832218,1366831962,1531994720,1666206304,1695034406,1530879322,1530944858,1531010394,1531075930,1531141466,1531207002,1493701423,1366831706,1531272538,1531338074,1531403610,1531469146,1531534682,1531600218,1531665754,1366831450,1528111962,1528046426,1527980890,1531731290,1627399761,1531796826,1531862362,1531927898,1531993434,1530875738,1530941274,1531006810,1531072346,1531137882,1531203418,1531268954,1531334490,1531400026,1531465562,1531531098,1560816423,1531596634,1531662170,1627919407,1366831194,1366830938,1531727706,1531793242,1531858778,1531924314,1531989850,1666211419,1666207323,1666211676,1666207068,1666211933,1695033896,1666206813,1666212190,1666206558,1530880607,1530946143,1531011679,1531077215,1531142751,1531208287,1531273823,1531339359,1531404895,1531470431,1531535967,1526815037,1531601503,1531667039,1531732575,1531798111,1531863647,1531929183,1531994719,1666206303,1530880354,1530945890,1531011426,1531076962,1531142498,1531208034,1531273570,1531339106,1531404642,1531470178,1531535714,1531601250,1531666786,1531732322,1531797858,1531863394,1531928930,1531994466,1530874722,1530940258,1531005794,1531071330,1531136866,1531202402,1531267938,1531333474,1531399010,1531464546,1531530082,1531595618,1531661154,1531726690,1531792226,1531857762,1531923298,1531988834,1530880609,1530946145,1531011681,1531077217,1531142753,1531208289,1531273825,1531339361,1531404897,1531470433,1531535969,1627398478,1531601505,1531667041,1531732577,1531798113,1531863649,1531929185,1531994721,1666206305,1666206048,1530879578,1560815913,1530945114,1531010650,1531076186,1531141722,1531207258,1627919663,1366830682,1531272794,1531338330,1531403866,1531469402,1531534938,1531600474,1531666010,1531731546,1531797082,1531862618,1531928154,1531993690,1530875482,1530941018,1531006554,1531072090,1531137626,1531203162,1531268698,1366830426,1531334234,1527145036,1527210572,1527276108,1531399770,1695033386,1531465306,1531530842,1531596378,1531661914,1531727450,1531792986,1531858522,1531924058,1531989594,1666211675,1560815403,1666207067,1666211932,1666206812,1666212189,1666206557,1530880606,1530946142,1531011678,1531077214,1531142750,1531208286,1531273822,1531339358,1531404894,1526815038,1531470430,1531535966,1531601502,1531667038,1531732574,1531798110,1531863646,1531929182,1531994718,1666206302,1666206047,1530880610,1530946146,1531011682,1531077218,1531142754,1531208290,1531273826,1531339362,1531404898,1531470434,1531535970,1531601506,1531667042,1531732578,1531798114,1531863650,1531929186,1531994722,1530874466,1530940002,1531005538,1531071074,1531136610,1531202146,1531267682,1531333218,1531398754,1531464290,1531529826,1531595362,1531660898,1531726434,1531791970,1531857506,1531923042,1531988578,1627399505,1666206049,1493702191,1366830170,1530873952,1530939488,1531005024,1531070560,1366829914,1531136096,1531201632,1366829658,1366829402,1366829146,1359417911,1531267168,1531332704,1397770336,1530879834,1530945370,1531010906,1531076442,1531141978,1531207514,1531273050,1531338586,1531404122,1531469658,1531535194,1531600730,1531666266,1531731802,1531797338,1695032129,1531862874,1531928410,1531993946,1530875226,1530940762,1531006298,1531071834,1531137370,1531202906,1531268442,1531333978,1531399514,1531465050,1531530586,1531596122,1531661658,1531727194,1531792730,1366828890,1531858266,1531923802,1366828634,1531989338,1666211931,1666206811,1666212188,1666206556,1530880605,1530946141,1531011677,1531077213,1531142749,1531208285,1531273821,1531339357,1526817343,1526817087,1526816831,1526816575,1526816319,1526816063,1526815807,1526815551,1526815295,1531404893,1531470429,1531535965,1531601501,1531667037,1531732573,1531798109,1531863645,1531929181,1531994717,1666206301,1666206046,1530873951,1530939487,1531005023,1531070559,1531136095,1531201631,1531267167,1531332703,1397770335,1530874210,1530939746,1531005282,1531070818,1531136354,1531201890,1531267426,1531332962,1531398498,1531464034,1531529570,1531595106,1531660642,1531726178,1531791714,1531857250,1531922786,1531988322,1530873953,1530939489,1531005025,1531070561,1531136097,1531201633,1531267169,1531332705,1397770337,1530880090,1530945626,1531011162,1531076698,1531142234,1531207770,1531273306,1531338842,1531404378,1531469914,1531535450,1531600986,1531666522,1531732058,1531797594,1531863130,1531928666,1531994202,1530874970,1530940506,1531006042,1531071578,1531137114,1531202650,1531268186,1531333722,1531399258,1531464794,1526948437,1531530330,1531595866,1531661402,1531726938,1531792474,1531858010,1531923546,1531989082,1666212187,1666206555,1530880604,1530946140,1531011676,1531077212,1531142748,1531208284,1531273820,1531339356,1531404892,1531470428,1531535964,1531601500,1531667036,1531732572,1531798108,1531863644,1531929180,1531994716,1666206300,1666206045,1530873950,1530939486,1531005022,1531070558,1531136094,1531201630,1531267166,1531332702,1397770334,1530873954,1526817344,1530939490,1531005026,1531070562,1531136098,1531201634,1531267170,1531332706,1531398242,1531463778,1531529314,1531594850,1531660386,1531725922,1531791458,1531856994,1531922530,1531988066,1530880346,1530945882,1531011418,1531076954,1531142490,1531208026,1531273562,1531339098,1531404634,1531470170,1531535706,1531601242,1531666778,1531732314,1531797850,1531863386,1531928922,1531994458,1530874714,1530940250,1531005786,1531071322,1531136858,1531202394,1531267930,1531333466,1531399002,1531464538,1531530074,1531595610,1531661146,1531726682,1531792218,1531857754,1531923290,1531988826,1530880603,1530946139,1531011675,1531077211,1531142747,1531208283,1531273819,1531339355,1531404891,1366828378,1531470427,1531535963,1531601499,1531667035,1531732571,1531798107,1526936919,1531863643,1531929179,1531994715,1666206299,1666206044,1366828122,1366827866,1366827610,1530873949,1530939485,1531005021,1531070557,1531136093,1695031101,1531201629,1531267165,1531332701,1397770333,1530880602,1530946138,1527145037,1531011674,1527210573,1366827354,1531077210,1531142746,1531208282,1531273818,1531339354,1531404890,1527276109,1531470426,1531535962,1366827098,1366826842,1366826586,1366826330,1366826074,1366825818,1366825562,1366825306,1366825050,1366824794,1366824538,1366824282,1366824026,1366823770,1366823514,1366843995,1531601498,1627399249,1531667034,1531732570,1531798106,1627396944,1526817345,1531863642,1531929178,1531994714,1530874458,1530939994,1531005530,1531071066,1531136602,1531202138,1531267674,1531333210,1531398746,1531464282,1531529818,1531595354,1531660890,1531726426,1531791962,1531857498,1531923034,1531988570,1666206043,1530873948,1530939484,1531005020,1531070556,1531136092,1531201628,1531267164,1531332700,1397770332,1530874202,1530939738,1531005274,1531070810,1531136346,1531201882,1531267418,1531332954,1531398490,1531464026,1531529562,1531595098,1531660634,1531726170,1531791706,1531857242,1531922778,1531988314,1530873947,1530939483,1531005019,1531070555,1531136091,1531201627,1531267163,1531332699,1397770331,1530873946,1530939482,1531005018,1531070554,1531136090,1531201626,1531267162,1531332698,1560813116,1531398234,1531463770,1531529306,1531594842,1531660378,1531725914,1531791450,1531856986,1531922522,1531988058,1662071384,1662071127,1662070870,1662070613,1662070356,1527459155,1527524691,1527590227,1527655763,1527721299,1527786835,1527852371,1527853657,1662071128,1662070871,1662070614,1662070357,1527459156,1527524692,1527590228,1527655764,1527721300,1560812859,1527786836,1527852372,1627920175,1527853401,1662070872,1662070615,1662070358,1527459157,1527524693,1527590229,1527655765,1527721301,1527786837,1527852373,1527853145,1662070616,1662070359,1527459158,1527524694,1527590230,1527655766,1527721302,1527786838,1527852374,1527852889,1526817346,1662070360,1527459159,1527524695,1527590231,1527655767,1527721303,1527786839,1527852375,1527852633,1527459160,1527524696,1527590232,1527655768,1527721304,1527786840,1527852376,1527459161,1527524697,1527590233,1527655769,1527721305,1527786841,1527852377,1527394888,1527395144,1527394632,1527395400,1527394376,1527395656,1527394120,1527395912,1527393864,1527396168,1527393608,1661613897,1527393609,1560823077,1661613898,1527393610,1560822821,1661613899,1527393611,1695040293,1661613900,1527393612,1560822309,1661613901,1527393613,1560822053,1661613902,1527393614,1560821797,1527395665,1527395920,1661613903,1527393615,1695039269,1527395666,1527396176,1527393616,1695041318,1527395667,1527393617,1627400509,1627400253,1560823334,1527395668,1527393618,1460159782,1527395669,1627399997,1527393619,1560822822,1527395670,1527393620,1366647360,1366647104,1366646848,1627398993,1366646592,1366646336,1695030820,1366646080,1695040294,1527395671,1527393621,1366645824,1366645568,1366645312,1560822310,1527395672,1527393622,1367106142,1367085661,1695040300,1527395673,1527983194,1527393623,1528048730,1528114266,1528179802,1528245338,1528310874,1528376410,1527400008,1527982178,1695031076,1528047714,1527393624,1528113250,1528178786,1528244322,1528309858,1528375394,1527979106,1528044642,1661617737,1527400264,1528110178,1527393625,1528175714,1528241250,1528306786,1528372322,1527398225,1526817347,1661617738,1527398226,1527398481,1661617739,1527398227,1527398737,1661617740,1527398228,1527398993,1661617741,1527398229,1527399249,1661617742,1527398230,1527399505,1661617743,1527398231,1527399761,1527400016,1527398232,1527398233,1527329096,1527329352,1527328840,1527329608,1527328584,1527329864,1527328328,1527330120,1527328072,1527328073,1527330376,1527328074,1527330632,1527328075,1661548361,1728594214,1527328076,1661548362,1560821798,1527328077,1661548363,1695039270,1527328078,1661548364,1695041319,1527328079,1661548365,1560823335,1527328080,1661548366,1560823079,1527330129,1527328081,1527330384,1661548367,1560822823,1527330130,1527328082,1527330640,1366647361,1366647105,1366646849,1366646593,1461264731,1366646337,1695040295,1527330131,1527328083,1461133659,1366646081,1461002587,1366645825,1460871515,1366645569,1366645313,1560822311,1527330132,1527328084,1527982434,1528047970,1560822055,1527330133,1527328085,1528113506,1695031332,1528179042,1528244578,1528310114,1367106141,1527145038,1527210574,1527276110,1367085660,1560821799,1527330134,1527328086,1528375650,1527978850,1528044386,1528109922,1528175458,1366710857,1695039271,1527330135,1527328087,1528240994,1528306530,1528372066,1695041320,1527330136,1527328088,1627400510,1695040044,1527330137,1527328089,1527334472,1527982690,1528048226,1528373850,1528308314,1528242778,1528177242,1528111706,1528113762,1526817348,1528179298,1528244834,1528310370,1661552201,1527334728,1528375906,1527332689,1661552202,1527332690,1527332945,1661552203,1527982946,1528048482,1528114018,1528179554,1528245090,1528310626,1527332691,1527333201,1366647362,1366647106,1661552204,1528376162,1527332692,1527333457,1366646850,1366646594,1366646338,1661552205,1527983202,1527332693,1527333713,1366646082,1366645826,1661552206,1528048738,1528114274,1528179810,1527332694,1527333969,1366645570,1661552207,1528245346,1528310882,1527332695,1527334225,1527334480,1528376418,1527332696,1527332697,1527459150,1527524686,1527590222,1527655758,1527721294,1529036616,1529036872,1528046170,1527980634,1529037128,1529037384,1529037640,1527851582,1529037896,1529038152,1529038408,1527786830,1527852366,1661683277,1661748813,1528971080,1528971336,1528971592,1528971848,1528972104,1528972360,1528972616,1528972872,1695041064,1695040808,1394818889,1663254601,1663254857,1663255113,1663255369,1663255625,1663255881,1663256137,1695040552,1527661640,1527727176,1527792712,1560815937,1527858248,1527459400,1527524936,1527590472,1527656008,1528905544,1528905800,1528906056,1528906312,1627399001,1627398745,1627398489,1627398233,1528906568,1528906824,1528907080,1627397977,1627397721,1627397465,1627397209,1627396953,1358961241,1358960985,1358960729,1358960473,1358960217,1358959961,1358959705,1627400254,1528907336,1627399998,1527721544,1526817349,1527787080,1527852616,1366645314,1527459145,1527524681,1527590217,1527655753,1527721289,1527786825,1527852361,1661683274,1394818890,1663254602,1663254858,1663255114,1663255370,1663255626,1663255882,1663256138,1661748810,1528840008,1528840264,1528840520,1528840776,1528841032,1528841288,1528841544,1528841800,1528439642,1528439898,1529827653,1529036633,1394819161,1394819417,1394819673,1394819929,1394820185,1394820441,1394820697,1528439386,1394818891,1663254603,1663254859,1663255115,1663255371,1663255627,1663255883,1663256139,1528440154,1528439130,1528774472,1528774728,1528774984,1528775240,1528775496,1528775752,1528776008,1528776264,1527461207,1527526743,1527592279,1527657815,1527723351,1527788887,1527854423,1528440410,1528438874,1528378956,1527851838,1528971097,1662071894,1527463765,1527529301,1527594837,1560816192,1529036632,1663254616,1627398737,1663254872,1663255128,1663255384,1663255640,1663255896,1663256152,1527660373,1527725909,1527791445,1527856981,1394818892,1663254604,1663254860,1663255116,1663255372,1527852094,1663255628,1663255884,1663256140,1662071637,1528708936,1528709192,1528709448,1627399742,1528709704,1528709960,1528710216,1528710472,1529043042,1663260769,1528710728,1662071380,1528313417,1528905561,1662071123,1528313421,1663260768,1695034175,1528971096,1662070866,1527464785,1529827654,1529036631,1663254615,1663254871,1663255127,1663255383,1526817350,1663255639,1663255895,1663256151,1527530321,1527595857,1394818893,1663254605,1663254861,1663255117,1663255373,1663255629,1663255885,1663256141,1661878607,1527922504,1527922760,1527923016,1527923272,1527923528,1527923784,1527924040,1527924296,1393635153,1527661648,1528643400,1528643656,1528643912,1528644168,1528644424,1528644680,1528644936,1528645192,1393634896,1527459151,1527524687,1528249928,1528249672,1528249416,1528249160,1528248904,1528248648,1528248392,1528248136,1528247880,1528840025,1527590223,1527655759,1527721295,1527786831,1527852367,1661683278,1661748814,1528247886,1528905560,1528182351,1528971095,1695039788,1695039532,1627920431,1695039276,1527661896,1527727432,1527792968,1527858504,1527459144,1528247881,1529827655,1529036630,1663254614,1663260767,1663254870,1663255126,1663255382,1663255638,1663255894,1663256150,1527524680,1527145039,1527590216,1627397202,1527655752,1527852350,1527210575,1527721288,1527786824,1527276111,1527852360,1661683273,1661748809,1394818894,1663254606,1663254862,1663255118,1663255374,1663255630,1663260766,1663255886,1663256142,1527461205,1662071119,1365531418,1661878862,1527988040,1527988296,1527988552,1663260765,1527988808,1527989064,1527989320,1527989576,1527989832,1528577864,1528578120,1528578376,1528578632,1527852606,1528578888,1528579144,1528579400,1528579656,1528440666,1528438618,1528439650,1528118864,1528118608,1526817351,1528118352,1528118096,1528117840,1528117584,1528117328,1528117072,1528116816,1528774489,1527461208,1527526744,1527592280,1527657816,1527922256,1527922000,1527921744,1527921488,1527921232,1527920976,1527920720,1527920464,1527920208,1528840024,1527723352,1527788888,1527854424,1528440922,1528444490,1528905559,1528438362,1662071895,1527463766,1528444492,1528971094,1527529302,1527594838,1527660374,1527725910,1527791446,1527856982,1529036629,1663254613,1663254869,1663255125,1663255381,1663255637,1663255893,1663256149,1662071638,1394818895,1663254607,1663254863,1663255119,1663255375,1663255631,1663255887,1663256143,1527526741,1527592277,1366712905,1662070862,1661879117,1528053576,1528053832,1528054088,1528054344,1528054600,1528054856,1528055112,1528055368,1695030838,1527657813,1527723349,1662070605,1661879372,1662071381,1528512328,1527852862,1528512584,1528512840,1528513096,1663260764,1528513352,1528513608,1528513864,1528514120,1662071124,1528378953,1528708953,1528378957,1663260763,1528774488,1662070867,1528315464,1695032362,1528315208,1528314952,1528314696,1528314440,1528314184,1528313928,1627396946,1528313672,1528313416,1528840023,1662070610,1560814891,1527465041,1527530577,1527596113,1528313422,1528905558,1528247887,1528971093,1393634897,1529036628,1663254612,1663254868,1663255124,1663255380,1663255636,1663255892,1663256148,1527459152,1527524688,1527590224,1526817352,1527655760,1527721296,1527786832,1527852368,1661683279,1661748815,1529036624,1394819152,1394819408,1394819664,1394819920,1394820176,1394820432,1394820688,1662070348,1528119112,1528119368,1528119624,1528119880,1528120136,1528120392,1528120648,1528120904,1527788885,1527854421,1695040296,1695040040,1695039784,1527660872,1527726408,1527791944,1527857480,1527460168,1527525704,1527591240,1527656776,1527722312,1527787848,1527853384,1528439906,1528439394,1527922521,1661878857,1528446792,1528447048,1528447304,1528447560,1528447816,1528448072,1528448328,1528448584,1527465544,1527531080,1527596616,1527662152,1527727688,1527793224,1695032876,1528184400,1528184144,1528183888,1528183632,1528183376,1528183120,1493702959,1528182864,1627400497,1627400241,1627399985,1627399729,1627399473,1627399217,1627398961,1627398705,1627398449,1627398193,1528182608,1528182352,1627397937,1627397681,1627397425,1627397169,1627396913,1528643417,1358961201,1358960945,1527858760,1528444489,1528708952,1358960689,1528441178,1358960433,1358960177,1358959921,1358959665,1528438106,1627400533,1527461209,1527526745,1527592281,1528444493,1627400277,1528774487,1527657817,1527723353,1527788889,1527854425,1528440162,1528439138,1528381000,1528380744,1627400021,1528380488,1528380232,1627399765,1627399509,1627399253,1627398997,1627398741,1627398485,1528379976,1528379720,1529043034,1528977762,1627920943,1526817353,1528379464,1528379208,1528378952,1528840022,1662071896,1528378958,1528905557,1527463767,1527529303,1527594839,1527660375,1527725911,1527791447,1527856983,1528313423,1528971092,1662071639,1529036627,1663254611,1663254867,1663255123,1663255379,1663255635,1663255891,1663256147,1529893188,1529036625,1394819153,1394819409,1394819665,1394819921,1394820177,1394820433,1394820689,1393635665,1662070857,1367106140,1528184648,1528184904,1528185160,1528185416,1528185672,1528185928,1528186184,1528186440,1367085659,1661879114,1662070602,1528441434,1528437850,1527988057,1661879371,1528440418,1528438882,1527922520,1662070347,1528441690,1528437594,1528440674,1528438626,1528381256,1528381512,1528381768,1627400514,1627400258,1627400002,1627399746,1627399490,1528382024,1627918894,1528382280,1528382536,1528382792,1528383048,1662071379,1528249936,1528249680,1528249424,1528249168,1528248912,1528248656,1528248400,1528248144,1528912482,1528247888,1627399234,1627398978,1528577881,1662071382,1528446536,1528446280,1528446024,1528445768,1627398722,1493701422,1528445512,1528445256,1528445000,1528444744,1528444488,1528643416,1662071125,1528444494,1528708951,1528378959,1528774486,1662070868,1528847202,1528315472,1528315216,1528314960,1528314704,1528314448,1528314192,1528313936,1528313680,1528313424,1528840021,1662070611,1528444495,1528905556,1528381008,1527145040,1527210576,1527276112,1526817354,1528380752,1528380496,1528380240,1528379984,1528379728,1528379472,1528379216,1528378960,1528971091,1528247885,1528971089,1529893189,1529036626,1663254610,1663254866,1663255122,1663255378,1663255634,1663255890,1663256146,1528250184,1528250440,1528250696,1528250952,1528251208,1528251464,1528251720,1528251976,1527661136,1528441946,1528440930,1528438370,1528441186,1528438114,1528441442,1528053593,1528437858,1528441698,1528437602,1528441954,1661876556,1527988056,1661876555,1661876557,1661876812,1527922519,1661879369,1528315720,1528315976,1528316232,1528316488,1528316744,1528317000,1528317256,1528317512,1661876554,1661876811,1528446544,1528446288,1528446032,1695031095,1528445776,1528445520,1528445264,1528445008,1528444752,1528444496,1528512345,1662070354,1527929698,1527465297,1527530833,1529893190,1528577880,1527459153,1527524689,1527590225,1527655761,1527721297,1527786833,1527852369,1527465552,1627919406,1529893191,1528643415,1527531088,1528708950,1527465800,1527531336,1527596872,1527662408,1527727944,1528774485,1527793480,1527859016,1529958724,1528840020,1527854169,1527463768,1527529304,1529958725,1528905555,1528184392,1528184136,1528183880,1528183624,1528183368,1528183112,1528182856,1528182600,1528182344,1528905553,1529958726,1528971090,1662070350,1365465882,1661876558,1527461204,1527526740,1665686573,1493701934,1661876813,1627397203,1528119129,1527592276,1526817355,1527657812,1527723348,1527788884,1527854420,1528053592,1661877068,1661679436,1661744972,1661876553,1527988055,1662071892,1662071891,1527463762,1366647363,1366647107,1366646851,1661876810,1527922518,1527529298,1527594834,1527660370,1527725906,1527791442,1527856978,1662070345,1366646595,1366646339,1366646083,1366645827,1662071634,1527464017,1366645571,1366645315,1661877067,1661679435,1528446809,1662071122,1527464529,1527530065,1527595601,1527529553,1528512344,1527594840,1527660376,1527725912,1527791448,1527856984,1529958727,1528577879,1662071640,1528643414,1662071383,1528708949,1530024260,1528774484,1662071126,1627398466,1530024261,1627398210,1528840019,1627397954,1528182350,1627397698,1528840017,1530024262,1528905554,1527459149,1527595089,1627397442,1627397186,1627396930,1358961218,1358960962,1358960706,1358960450,1358960194,1661744971,1358959938,1358959682,1528184665,1528781922,1393635408,1661876559,1661876814,1528119128,1662071378,1527464273,1393635921,1528053591,1527463763,1527529299,1527660880,1661877069,1661679437,1661744973,1527988054,1527594835,1627919918,1527660371,1393635664,1661877324,1527922517,1661878863,1662070863,1528381273,1695039528,1695039272,1695041321,1527658824,1527724360,1527461206,1527789896,1527855432,1661876809,1528446808,1661879118,1530024263,1528512343,1662070869,1528577878,1528643413,1662070612,1528708948,1530089796,1528774483,1526817356,1528116815,1528053328,1528053072,1528052816,1528774481,1530089797,1528052560,1528840018,1367106139,1528250201,1527524685,1527590221,1527655757,1527721293,1527786829,1367085658,1661877066,1661679434,1661744970,1528184664,1367085914,1367086170,1661879119,1367086426,1367086682,1367086938,1661877323,1528119127,1527529809,1527595345,1662070606,1367087194,1367087450,1367087706,1661879373,1367087962,1528053590,1527725907,1527791443,1367088218,1367088474,1527658832,1527724368,1527789904,1527855440,1367088730,1367088986,1367089242,1527988053,1527856979,1662070349,1367089498,1367089754,1367090010,1661876815,1367090266,1367090522,1367090778,1527922516,1527459148,1527524684,1527590220,1527655756,1527721292,1527786828,1527852364,1367091034,1367091290,1493702446,1367091546,1661877070,1528315737,1527459146,1527524682,1527590218,1527655754,1527721290,1627920430,1527786826,1560823337,1560823081,1560822825,1661679438,1661744974,1367091802,1367092058,1528381272,1527526742,1527592278,1527657814,1527723350,1527788886,1527854422,1367092314,1527661128,1527726664,1661877325,1528446807,1493702958,1393635409,1367092570,1367092826,1560815159,1367093082,1527661392,1527792200,1528052304,1530089798,1528512342,1662070355,1527459154,1528052048,1528051792,1528577877,1527524690,1527590226,1527655762,1358959692,1358959948,1527721298,1527786834,1527995490,1358960204,1358960460,1527852370,1526817357,1530089799,1528051536,1528643412,1528051280,1528708947,1527920207,1528708945,1527987792,1527987536,1528774482,1367093338,1367093594,1367093850,1661877580,1528250200,1527852365,1661683276,1661748812,1527857736,1527459912,1527525448,1527590984,1527854412,1695040297,1560822313,1528184663,1527656520,1527722056,1527787592,1527853128,1367094106,1560822057,1527659080,1527724616,1527790152,1527855688,1560821801,1695039273,1695041322,1527658568,1528119126,1367094362,1367094618,1661879113,1527724104,1527789640,1527855176,1366647364,1366647108,1366646852,1661877065,1528053589,1662070601,1661679433,1661744969,1366646596,1527988052,1366646340,1366646084,1366645828,1661879370,1366645572,1366645316,1661877322,1527922515,1367094874,1367095130,1367095386,1661877579,1527922513,1527854411,1528315736,1527852362,1661683275,1661748811,1367095642,1695032630,1367095898,1367096154,1527659088,1527724624,1527790160,1527855696,1367096410,1367096666,1528381271,1367096922,1527658576,1527724112,1527789648,1527855184,1367097178,1367097434,1367097690,1661877071,1661679439,1661744975,1528446806,1393635152,1367097946,1527987280,1528512341,1527463769,1527529305,1527594841,1527660377,1527725913,1627920942,1527791449,1527856985,1530155332,1527987024,1695036725,1527986768,1528577876,1527145041,1527210577,1527853913,1527276113,1530155333,1527986512,1528643411,1527986256,1527986000,1527985744,1526817358,1528643409,1530155334,1528708946,1367098202,1367098458,1367098714,1661877326,1528250199,1560823338,1728595242,1662070346,1367098970,1367099226,1367099482,1528184662,1527459147,1367099738,1367099994,1367100250,1661877581,1528119125,1527524683,1527590219,1527655755,1527721291,1527786827,1527852363,1527854413,1367100506,1367100762,1367101018,1661877836,1528053588,1662071635,1662071884,1560822826,1695040298,1560822314,1527659336,1527724872,1527790408,1527988051,1527855944,1527461704,1527527240,1527592776,1527658312,1527723848,1527789384,1527854920,1367101274,1527988049,1367101530,1367101786,1661877321,1527922514,1367102042,1367102298,1367102554,1661877578,1528315735,1527854410,1367102810,1367103066,1367103322,1661877835,1528381270,1662071893,1527463764,1662071883,1367103578,1367103834,1527659344,1528446805,1695036980,1661879375,1527724880,1528444491,1528512340,1530155335,1528577875,1528577873,1530223172,1697995076,1528643410,1527790416,1527855952,1527461712,1527527248,1695032373,1527592784,1527658320,1527723856,1527789392,1527854928,1528250198,1460158762,1527661384,1528716642,1358959696,1527726920,1627398481,1527792456,1627400528,1527857992,1560819507,1661877327,1528184661,1662070607,1367106138,1367104089,1661877582,1528119124,1527854414,1661877837,1662071885,1528053587,1367106137,1661878092,1528053585,1662071628,1560821802,1695039274,1695041323,1527659592,1526817359,1527988050,1527725128,1527790664,1527856200,1527461448,1527526984,1527592520,1527658056,1527723592,1527789128,1528315734,1527854664,1367104088,1661877577,1527854409,1528381269,1527529300,1527594836,1527660372,1527725908,1527791444,1527856980,1661877834,1662071882,1528446804,1662070351,1367106136,1367104087,1563777092,1563776836,1563776580,1697994052,1563776068,1563775812,1563775556,1697993028,1528512339,1530223173,1697995077,1563777093,1731548997,1563776581,1697994053,1563776069,1463112517,1563775557,1528512337,1697993029,1530223174,1697995078,1563777094,1563776838,1563776582,1697994054,1528577874,1661878091,1528250197,1527459656,1527525192,1527590728,1527656264,1560819762,1527721800,1662071627,1527659600,1527725136,1527790672,1527856208,1527461456,1527526992,1528184660,1661879374,1527592528,1527658064,1527723600,1527789136,1527854672,1367106135,1661877583,1528119123,1528061282,1527854415,1366647365,1366647109,1366646853,1661877838,1528119121,1528053586,1662071886,1366646597,1366646341,1695037745,1366646085,1661878093,1528315733,1662071629,1366645829,1366645573,1366645317,1661878348,1528381268,1662071636,1662071372,1560823339,1560823083,1560822827,1527659848,1527725384,1527790920,1527856456,1527461192,1695038000,1527526728,1528446803,1527592264,1527657800,1527723336,1527788872,1527854408,1367104086,1661877833,1528446801,1563776070,1563775814,1563775558,1526817360,1697993030,1530223175,1528378954,1697995079,1697994823,1528512338,1528250196,1527787336,1527852872,1695041316,1695041060,1662071881,1661878090,1528184659,1662071626,1367106134,1367104085,1661878347,1528184657,1662071371,1528119122,1527659856,1527725392,1527790928,1527856464,1528315732,1527854416,1661877839,1662071887,1528381267,1367106133,1367104084,1661878094,1528381265,1662071630,1526808144,1526807888,1526807632,1526807376,1526807120,1526806864,1526806608,1526806352,1526806096,1661878349,1528446802,1662071373,1528250195,1661878604,1528250193,1662071116,1695040299,1560822315,1560822059,1527660104,1528184658,1527725640,1527791176,1527856712,1527460936,1527526472,1527592008,1527657544,1527723080,1527788616,1560820527,1528315731,1527854152,1695040804,1695040548,1695040292,1661878089,1528315729,1662071625,1367106132,1367104083,1528381266,1661878346,1528651362,1528250194,1662071370,1661878603,1528315730,1529038681,1560820782,1529038680,1529038679,1529038678,1529038677,1529038676,1529038675,1529038674,1529038673,1529038672,1529038671,1529038670,1529038669,1529038668,1529038667,1695038765,1529038666,1528127074,1529038665,1529038664,1528973128,1528907592,1695039020,1528842056,1528776520,1528710984,1528645448,1528579912,1528514376,1528448840,1528383304,1528317768,1528252232,1528186696,1528121160,1528055624,1527990088,1695035172,1527924552,1528385827,1528451355,1526817361,1528451356,1528451357,1528451361,1528451362,1528451363,1528516891,1528516892,1528516893,1528516897,1528516898,1528516899,1528582427,1528582428,1528582429,1528582433,1528582434,1528582435,1528647963,1528647964,1528647965,1528647969,1528647970,1528647971,1528713499,1528713500,1528713501,1528713505,1528713506,1528713507,1528779035,1528779036,1528779037,1528779038,1528779040,1526808401,1528051278,1697991001,1529629017,1529563481,1529497945,1529432409,1529366873,1529301337,1529235801,1526805841,1529170265,1529104729,1528779041,1528779042,1528779043,1528844571,1528844572,1528844573,1528844574,1528844575,1528844576,1528844577,1528844578,1528844579,1528910107,1528910108,1528910109,1528910110,1528910111,1528910112,1563773272,1560817189,1697991257,1528586082,1527145042,1527210578,1527276114,1529629273,1529563737,1529498201,1529432665,1529367129,1529301593,1529236057,1529170521,1529104985,1528910113,1528910114,1528910115,1695034662,1528975643,1528975644,1528975645,1528975646,1528975647,1528975648,1528975649,1528975650,1528975651,1529041179,1529041180,1529041181,1529041182,1695034407,1364007520,1529041183,1529041184,1563773271,1563773528,1697991513,1529629529,1529563993,1529498457,1529432921,1529367385,1529301849,1529236313,1695034152,1529170777,1529105241,1528910118,1358960679,1358959667,1528910119,1528910120,1528910121,1528910122,1528910123,1528910124,1528975652,1526817362,1528975653,1528975654,1528975655,1528975656,1528975657,1528975658,1528975659,1528975660,1529041188,1529041189,1529038920,1528973384,1528907848,1528842312,1528776776,1528711240,1528645704,1528580168,1528514632,1528449096,1528383560,1528318024,1528252488,1528186952,1528121416,1528055880,1527990344,1529041185,1529041186,1529041187,1527927076,1527927077,1527927078,1527927079,1526808402,1528051272,1528051528,1528051784,1528052040,1528052296,1528052552,1528052808,1528053064,1528053320,1526805842,1527927080,1527927081,1527927082,1527927083,1527927084,1527992612,1527992613,1527992614,1527992615,1527992616,1527992617,1563773270,1731545687,1563773784,1697991769,1529629785,1529564249,1529498713,1529433177,1560816169,1529367641,1529302105,1529236569,1529171033,1529105497,1560815914,1697992793,1529630809,1529565273,1529499737,1529434201,1529368665,1695033387,1529303129,1359417913,1529237593,1529172057,1529106521,1527992618,1527992619,1527992620,1528058148,1528058149,1528058150,1528192866,1528058151,1528058152,1528058153,1528058154,1528058155,1528058156,1695033132,1528123684,1528123685,1528123686,1528123687,1528123688,1528123689,1529041190,1529041191,1529041192,1529041193,1529041194,1529041195,1529041196,1527927085,1526936915,1527927086,1527927087,1527927088,1527927089,1527927090,1527927091,1527927092,1527927093,1527992621,1527992622,1529039176,1366964064,1365271063,1526817363,1429883981,1366964063,1429817933,1429884236,1365336600,1429818955,1528123690,1528123691,1528123692,1528189220,1528189221,1528189222,1528189226,1528189227,1528189228,1528254756,1528254757,1528254758,1528254762,1528254763,1528254764,1697990997,1563773526,1563773783,1697991768,1697992792,1697992025,1529630041,1529564505,1529498969,1529433433,1529367897,1529302361,1529236825,1526808403,1528116813,1529171289,1529105753,1697992537,1529630553,1529565017,1529499481,1529433945,1529368409,1526805843,1529302873,1529237337,1529171801,1529106265,1528320292,1528320293,1528320294,1528320298,1528320299,1528320300,1528385828,1528385829,1528385830,1364005471,1528385834,1528385835,1528520802,1528385836,1528451364,1528451365,1528451366,1528451370,1528451371,1528451372,1595951433,1595885897,1595820361,1595754825,1595689289,1595623753,1595558217,1595492681,1595427145,1595361609,1595296073,1595230537,1595165001,1595099465,1527992623,1527992624,1527992625,1527992626,1527992627,1527992628,1527992629,1528058157,1528058158,1528058159,1528258658,1528058160,1528058161,1528058162,1528058163,1528058164,1528058165,1359286839,1528123693,1359221302,1528123694,1529039432,1365336601,1365336602,1429818954,1359155765,1359090228,1429884490,1429950026,1429818446,1365271064,1365271065,1429817934,1429883470,1359024691,1429949006,1528516900,1528516901,1528516902,1528516906,1528516907,1528516908,1526817364,1528582436,1528582437,1528582438,1528582442,1528582443,1528582444,1528647972,1528647973,1528647974,1528647978,1528647979,1528647980,1563773268,1697991253,1563773782,1697991767,1697992791,1563774296,1563774808,1697992281,1529630297,1529564761,1529499225,1529433689,1529368153,1529302617,1529237081,1529171545,1529106009,1528713508,1528713509,1528713510,1528713514,1528713515,1526808404,1528116809,1528713516,1528779044,1528779045,1528779046,1528779047,1528779049,1528779050,1528779051,1526805844,1528779052,1528844580,1528844581,1528844582,1528844583,1529891146,1529825610,1529760074,1529694538,1529629002,1529563466,1529497930,1529432394,1529366858,1529891401,1529825865,1529760329,1529694793,1529629257,1529563721,1529498185,1529432649,1529367113,1429883724,1429883979,1429817931,1429818442,1528123695,1528123696,1528123697,1528123698,1528123699,1528455522,1528123700,1528123701,1528189229,1528189230,1528189231,1367106131,1367104082,1528189235,1528189236,1528189237,1528254765,1528254766,1529039688,1429884237,1429949773,1429818956,1366964062,1366823515,1366964061,1429818702,1365271066,1366964060,1429818957,1366964059,1366963809,1429818958,1528844584,1528844585,1528844586,1528844587,1528844588,1528910116,1528910117,1529104712,1529104968,1529105224,1529105480,1529105736,1528182348,1528324450,1529105992,1529106248,1529106504,1529170248,1529170504,1529170760,1563773267,1526817365,1563773524,1697991509,1697991766,1697992790,1563774295,1563774807,1563774552,1529171016,1529171272,1529171528,1529171784,1529172040,1529235784,1529236040,1529236296,1529236552,1529236808,1529237064,1529237320,1529237576,1529301320,1529301576,1529301832,1529302088,1529302344,1529956683,1365465626,1365531162,1365596698,1365662234,1365727770,1365793306,1365858842,1365924378,1526808405,1529301323,1529891402,1529825866,1529760330,1529694794,1529629258,1529563722,1529498186,1528182346,1526805845,1529432650,1529367114,1530285129,1530284873,1530284617,1530284361,1530285898,1530284362,1530285899,1529957193,1365400089,1365400090,1366963808,1429950281,1529301833,1429817930,1366710856,1429883466,1429949002,1429883725,1429949261,1429949516,1429817932,1528254767,1528254771,1528254772,1528254773,1528320301,1528320302,1527145043,1527210579,1527276115,1528320303,1528320307,1528320308,1528320309,1528385837,1528385838,1528385839,1528385843,1528385844,1528385845,1528451373,1528451374,1529039944,1429884494,1429950030,1430015051,1430015053,1430015308,1366712904,1366843996,1430014796,1430015307,1430014795,1366963807,1430015309,1430014797,1366963806,1528451375,1627396947,1528451379,1528451380,1528451381,1528516909,1528516910,1528516911,1528516915,1528516916,1528516917,1695031588,1528582445,1528582446,1528582447,1528582451,1528582452,1528582453,1528647981,1528647982,1529040968,1526817366,1528975432,1528909896,1528844360,1528778824,1528713288,1528647752,1528582216,1528516680,1528451144,1528385608,1528320072,1528254536,1528189000,1528123464,1528057928,1527992392,1529302600,1529302856,1529303112,1529366856,1529367112,1529368136,1529368392,1529368648,1529432392,1529432648,1529433672,1529433928,1529434184,1529497928,1529498184,1563773266,1463110227,1563773780,1526808406,1697991765,1528247883,1697992789,1563774294,1563774806,1463111255,1529499208,1529499464,1529499720,1526805846,1529563464,1529563720,1529564744,1529565000,1529565256,1529629000,1529629256,1529630280,1529630536,1529630792,1529694536,1529694792,1529695816,1529696072,1358959154,1529696328,1530022220,1365989914,1365533207,1365467671,1367106130,1367104081,1529301324,1529956939,1365467162,1365532698,1528390242,1528390241,1528390240,1365598234,1365663770,1365729306,1529301579,1529563210,1695031844,1529563209,1529563208,1529628752,1529628751,1529628750,1529628746,1529628745,1529628744,1529694288,1529694287,1529694286,1529694282,1529694281,1529694280,1529957194,1429883215,1366963805,1365334551,1429948751,1365334552,1430014287,1367106129,1529301834,1530284363,1530285900,1527853118,1530284364,1530285901,1530022985,1429753673,1429753677,1430015817,1429884751,1367104080,1529302089,1429884235,1429949771,1429818698,1429818190,1501388569,1528973640,1528973896,1528974152,1364155162,1366963804,1526817367,1528647983,1528647987,1528647988,1528647989,1528713517,1528713518,1528713519,1528713523,1528713524,1528713525,1528779053,1528779054,1528779055,1528779056,1528779058,1528779059,1528779060,1528779061,1529040200,1530087515,1365400087,1530087514,1366963803,1366963553,1365400088,1430015562,1430014538,1430015566,1430014542,1530021980,1528844589,1528844590,1528844591,1528844592,1526808407,1528844593,1527985741,1528844594,1528844595,1528844596,1528844597,1528910125,1528910126,1528910127,1526805847,1528910128,1528910129,1528910130,1528910131,1528910132,1528910133,1529040712,1530021981,1429752905,1429753161,1529760072,1529760328,1529761352,1529761608,1529761864,1529825608,1529825864,1529826888,1529827144,1529827400,1529891144,1529891400,1529892424,1529892680,1529892936,1529956680,1529956936,1529957192,1697990993,1563773522,1563773779,1697991764,1627398225,1697992788,1697992021,1697992533,1563774550,1528390239,1530088032,1529957960,1528390238,1529958216,1528390237,1529958472,1364155418,1358960716,1366963552,1529956685,1665686317,1527853374,1358960972,1358961228,1627396940,1529301325,1530022476,1365794842,1365860378,1365925914,1365991450,1367106128,1367104079,1529301580,1665753390,1529957195,1367106127,1366647366,1665753134,1366647110,1366646854,1366646598,1366963551,1366963550,1366646342,1529301835,1529759824,1529759823,1529759822,1529759818,1529759817,1529759816,1526817368,1529825360,1529825359,1529825358,1529825354,1529825353,1529825352,1529890896,1529890895,1529890894,1530022986,1365400346,1366963549,1429753675,1366646086,1529302090,1530284365,1530285902,1530284366,1530285903,1530285647,1530285391,1530285135,1530284879,1530284623,1364155674,1366963548,1530087776,1429753678,1429819215,1429950287,1429753679,1430015823,1366645830,1529302345,1526808408,1528974408,1527985737,1528974664,1501387799,1635606041,1528974920,1528975176,1528908104,1528909640,1526805848,1501387543,1635605015,1501388057,1501387801,1635607064,1501387545,1501389080,1595952969,1595887433,1595821897,1595756361,1595690825,1595625289,1595559753,1595494217,1595428681,1595363145,1595297609,1595232073,1595166537,1595101001,1528975661,1528975662,1528975663,1528975664,1528975665,1528975666,1528975667,1528975668,1528975669,1529041197,1529041198,1529041199,1529041200,1529041201,1529041202,1527853630,1529041203,1529041204,1529041205,1529040456,1429752649,1429753417,1429752393,1530087520,1429752140,1527853886,1364155930,1366963547,1364156186,1627918893,1366963297,1697991249,1563773778,1627397196,1697991763,1697992787,1563774292,1563774804,1697992277,1529891150,1529825614,1529760078,1529694542,1529629006,1529563470,1529497934,1529432398,1529366862,1529956941,1366645574,1366645318,1367104078,1665752878,1529301581,1530022732,1366963296,1366963295,1366963294,1527854142,1526817369,1366963293,1366963292,1366963291,1366963041,1367106126,1529301836,1367104077,1529104464,1529104463,1529104462,1529104461,1529104460,1529104459,1529104458,1529104457,1529104456,1529170000,1530022987,1365334553,1365334554,1366963040,1429752655,1529302091,1529890890,1529890889,1529890888,1529956432,1529956431,1529956430,1529956429,1529956427,1529956426,1529956425,1529956424,1526808409,1364156442,1527920204,1366963039,1429884745,1365400602,1429753674,1429753676,1429819209,1529302346,1526805849,1530284367,1529892425,1529826889,1529761353,1529695817,1529630281,1529564745,1529499209,1529433673,1529368137,1635605017,1560817707,1635606552,1635607066,1501388568,1501389082,1635606040,1635606554,1501388056,1635605528,1528390236,1528390235,1528390234,1493701421,1635606298,1635606042,1501387544,1635605786,1635605016,1635605530,1527854398,1527919202,1364156698,1366963038,1697991505,1697991762,1697992786,1563774291,1563774803,1563774548,1529891406,1529825870,1527854654,1529760334,1529694798,1529629262,1529563726,1529498190,1529432654,1529367118,1529957197,1367106125,1367104076,1665752622,1529301837,1530022988,1429948745,1429752137,1430014281,1529302092,1529169999,1529169998,1529169997,1529169996,1529169995,1529169994,1529169993,1529169992,1529235536,1529235535,1527919194,1527984482,1529235534,1529235533,1529235532,1529235531,1529235530,1366963037,1366963036,1366963035,1366962785,1429817679,1429752399,1365334810,1366962784,1527984474,1528049762,1429752143,1529302347,1364156951,1364156952,1364156953,1364156954,1366962783,1528049754,1528115042,1366962782,1366962781,1366962780,1366962779,1364220439,1364220440,1364220441,1528115034,1528180322,1364220442,1366962529,1529892426,1529826890,1529761354,1529695818,1529630282,1528180314,1528245602,1529564746,1529499210,1529433674,1529368138,1429883723,1429949259,1697991761,1528245594,1697992785,1563774290,1563774802,1731546707,1529891662,1529826126,1529760590,1529695054,1529629518,1529563982,1529498446,1529432910,1529367374,1529957453,1429753167,1429753423,1429752911,1367106124,1529302093,1364220698,1366962528,1429752139,1429752141,1530021978,1527854910,1367104075,1529302348,1529235529,1529235528,1529301072,1529301071,1529301070,1529301069,1529301068,1529301067,1529301066,1529301065,1529301064,1529366608,1695035690,1529366607,1529366606,1529892427,1529826891,1529761355,1529695819,1529630283,1526939475,1529564747,1529499211,1529433675,1529368139,1364220954,1366962527,1364221210,1366962526,1697992017,1695032363,1697992529,1563774546,1529891918,1627397452,1627397708,1627397964,1627398220,1627398476,1627398732,1627400272,1529826382,1627400476,1627400220,1627399964,1627398988,1627399708,1627399244,1627399500,1627399756,1627400012,1627399452,1627399196,1529760846,1627398940,1627398684,1627398428,1529695310,1529629774,1527913314,1527913570,1527913826,1527914082,1527914338,1527914594,1527914850,1527915106,1527915362,1527915618,1527915874,1527916130,1527916386,1527916642,1527916898,1527917154,1527917410,1527917666,1529564238,1529498702,1529433166,1529367630,1364221466,1366962525,1529957709,1429883209,1429752138,1429752142,1429817673,1529302349,1529892428,1529826892,1529761356,1529695820,1529630284,1529564748,1529499212,1529433676,1529368140,1529366602,1529366601,1529366600,1529432144,1529432143,1529432142,1529432138,1529432137,1529432136,1529497680,1529497679,1529497678,1529497674,1364221722,1366962524,1697992273,1627398172,1529892174,1529826638,1529761102,1529695566,1529630030,1529564494,1529498958,1529433422,1529367886,1529892429,1529826893,1529761357,1529695821,1560813624,1529630285,1627397916,1529564749,1529499213,1627397660,1627397404,1627397148,1529433677,1529368141,1529497673,1529497672,1529563216,1627396892,1529563215,1358961180,1358960924,1529563214,1364221978,1366962523,1530285897,1530285641,1530285385,1429818186,1595033929,1635607065,1501387546,1501389081,1695032620,1635605018,1560818217,1501388825,1595035465,1358959644,1527924808,1529957704,1358960423,1529957705,1529957706,1529957708,1529957707,1527926856,1627400268,1527859528,1527859784,1527860040,1527860296,1527860552,1527860808,1527861064,1527341657,1527341656,1527341655,1527341654,1527341653,1527341652,1527341651,1527341650,1527341649,1527341648,1527341647,1527341646,1527341645,1527341644,1527341643,1527341642,1527341641,1527341640,1697993049,1697993048,1697993047,1697993046,1697993045,1697993044,1697993043,1697993042,1697993041,1697993040,1697993039,1697993038,1697993037,1697993036,1697993035,1697993034,1527407193,1527407192,1527407191,1527407190,1527407189,1527407188,1527407187,1527407186,1527407185,1527407184,1527407183,1527407182,1527407181,1527407180,1527407179,1529042786,1663260513,1663260512,1663260511,1663260510,1663260509,1663260508,1663260507,1529042778,1528977506,1527407178,1527407177,1527407176,1560813881,1697993305,1563775576,1563775575,1563775574,1697993301,1563775572,1563775571,1563775570,1697993297,1697993296,1563775567,1563775566,1563775565,1695032877,1697993292,1563775563,1563775562,1627400524,1527472729,1527472728,1627919405,1527145044,1527210580,1527276116,1627919661,1527472727,1527472726,1527472725,1527472724,1527472723,1527472722,1527472721,1527472720,1527472719,1527472718,1493702189,1627400494,1627400238,1627399982,1627399726,1627399470,1627399214,1627398958,1627398702,1627398446,1627398190,1627397934,1627397678,1627397422,1627397166,1627396910,1358961198,1358960942,1358960686,1358960430,1358960174,1358959918,1358959662,1527472717,1527472716,1527472715,1527472714,1527472713,1527472712,1697993561,1563775832,1463112535,1563775830,1697993557,1563775828,1731547987,1528912226,1563775826,1697993553,1697993552,1563775823,1731547982,1563775821,1697993548,1563775819,1528846946,1463112522,1529880666,1527538265,1527538264,1527538263,1527538262,1527538261,1527538260,1527929442,1527538259,1527538258,1527538257,1527538256,1527538255,1527538254,1527538253,1527538252,1528781666,1527538251,1527538250,1527538249,1527538248,1697993817,1563776088,1563776087,1563776086,1527995234,1697993813,1563776084,1563776083,1563776082,1697993809,1697993808,1563776079,1563776078,1528716386,1563776077,1697993804,1563776075,1563776074,1529880410,1530225241,1530225240,1530225239,1530225238,1530225237,1530225236,1530225235,1530225234,1530225233,1530225232,1530225231,1530225230,1530225229,1530225228,1530225227,1530225226,1695031866,1530225225,1530225224,1528061026,1527603801,1527603800,1527603799,1527603798,1527603797,1527603796,1527603795,1527603794,1527603793,1528651106,1527603792,1527603791,1527603790,1527603789,1627920173,1527603788,1527603787,1527603786,1527603785,1527603784,1697994073,1697994072,1697994071,1697994070,1627400521,1627400265,1627400009,1627399753,1627399497,1627399241,1627398985,1627398729,1627398473,1627398217,1627397961,1627397705,1627397449,1627397193,1627396937,1697994069,1697994068,1697994067,1627920429,1697994066,1697994065,1697994064,1493702957,1366710855,1697994063,1697994062,1697994061,1697994060,1697994059,1697994058,1529880154,1530224985,1528126818,1664442712,1664442711,1664442710,1664442709,1664442708,1664442707,1664442706,1396007249,1528585826,1396007248,1664442703,1664442702,1664442701,1664442700,1664442699,1664442698,1664442697,1528192610,1396007240,1530159705,1530159704,1530159703,1530159702,1530159701,1530159700,1530159699,1528520546,1530159698,1530159697,1530159696,1530159695,1530159694,1530159693,1530159692,1530159691,1528258402,1530159690,1530159689,1530159688,1527669337,1527669336,1527669335,1527669334,1527669333,1528455266,1527669332,1527669331,1527669330,1527669329,1527669328,1527669327,1527669326,1527669325,1527669324,1527669323,1527669322,1627920941,1358961225,1527669321,1627918892,1527669320,1697994329,1563776600,1695032123,1563776599,1563776598,1697994325,1366712903,1493701420,1627919404,1563776596,1563776595,1563776594,1697994321,1697994320,1627919660,1563776591,1563776590,1563776589,1697994316,1563776587,1563776586,1529879898,1627919916,1529879642,1530224729,1664442456,1664442455,1664442454,1358959923,1664442453,1664442452,1664442451,1664442450,1396006993,1396006992,1664442447,1366823516,1664442446,1366843997,1627397969,1664442445,1627920172,1528324194,1664442444,1664442443,1664442442,1664442441,1396006984,1530094169,1530094168,1530094167,1530094166,1530094165,1530094164,1530094163,1530094162,1530094161,1530094160,1530094159,1530094158,1530094157,1530094156,1528389986,1530094155,1530094154,1530094153,1530094152,1527734873,1527734872,1527734871,1527734870,1529034338,1527734869,1527734868,1527734867,1527734866,1527734865,1527734864,1527734863,1529034330,1527919458,1527734862,1527734861,1527734860,1527734859,1527734858,1527734857,1527734856,1527919450,1527984738,1697994585,1563776856,1731549015,1563776854,1697994581,1563776852,1463113555,1527984730,1528050018,1563776850,1697994577,1697994576,1563776847,1463113550,1563776845,1697994572,1528050010,1528115298,1563776843,1731549002,1529879386,1529946970,1530224473,1664442200,1664442199,1528115290,1528180578,1664442198,1627920428,1664442197,1664442196,1664442195,1664442194,1493702956,1396006737,1396006736,1695032385,1664442191,1664442190,1664442189,1664442188,1664442187,1664442186,1695032380,1664442185,1396006728,1530028633,1530028632,1530028631,1530028630,1358960167,1530028629,1530028628,1530028627,1627920940,1530028626,1530028625,1530028624,1530028623,1530028622,1358960179,1530028621,1530028620,1528180570,1530028619,1530028618,1530028617,1530028616,1527800409,1527800408,1528245858,1527800407,1527800406,1527800405,1527800404,1358959137,1527800403,1527800402,1527800401,1527800400,1527800399,1527800398,1527800397,1527800396,1527800395,1527800394,1527800393,1527800392,1697994841,1563777112,1563777111,1563777110,1697994837,1563777108,1563777107,1563777106,1697994833,1697994832,1563777103,1528245850,1528442210,1563777102,1563777101,1697994828,1563777099,1563777098,1529946714,1462837595,1528442202,1528311138,1530224217,1664441944,1664441943,1664441942,1664441941,1664441940,1664441939,1528311130,1664441938,1396006481,1396006480,1664441935,1664441934,1664441933,1664441932,1664441931,1664441930,1664441929,1396006472,1529963097,1529963096,1529963095,1529963094,1529963093,1529963092,1529963091,1529963090,1529963089,1529963088,1529963087,1529963086,1529963085,1529963084,1529963083,1529963082,1529963081,1529963080,1527865945,1527865944,1527865943,1527865942,1527865941,1527865940,1527865939,1527865938,1527865937,1527865936,1527865935,1527865934,1527865933,1527865932,1527865931,1527865930,1527865929,1527865928,1697995097,1527913562,1527913818,1627398222,1527914074,1527914330,1527914586,1527914842,1527915098,1527915354,1527915610,1527915866,1527916122,1527916378,1697995096,1697995095,1697995094,1697995093,1697995092,1697995091,1697995090,1358960435,1527916634,1697995089,1697995088,1697995087,1527916890,1695033142,1358959911,1697995086,1697995085,1697995084,1697995083,1697995082,1462837339,1462837083,1530223961,1664441688,1664441687,1527917146,1527917402,1560813629,1664441686,1664441685,1527917658,1664441684,1664441683,1664441682,1396006225,1531994174,1531993918,1531993662,1396006224,1531993406,1531993150,1531992894,1531992629,1531992638,1531992630,1531992637,1531992631,1531992636,1531992632,1531992635,1531992633,1531992634,1397776693,1397776694,1397776437,1666212157,1666212151,1397776438,1397775157,1397776181,1666212156,1666211901,1666212152,1666211895,1397775158,1397776182,1397775413,1397775925,1666212155,1666211900,1666210621,1666211645,1666212153,1666211896,1666210615,1666211639,1397775414,1397775926,1397775669,1666212154,1666211899,1666210620,1666211644,1666210877,1666211389,1666211897,1666210616,1666211640,1666210871,1666211383,1397775670,1666211898,1666210619,1666211643,1666210876,1666211388,1666211133,1666210617,1666211641,1666210872,1664441679,1664441678,1666211384,1666211127,1664441677,1664441676,1664441675,1666210618,1666211642,1666210875,1664441674,1527145045,1527210581,1527276117,1664441673,1396006216,1358959669,1358959925,1529897561,1529897560,1529897559,1529897558,1529897557,1529897556,1695031100,1529897555,1529897554,1529897553,1529897552,1529897551,1529897550,1529897549,1529897548,1529897547,1529897546,1529897545,1529897544,1527931481,1560813115,1527931480,1527931479,1358960691,1527931478,1358960947,1527931477,1527931476,1527931475,1527931474,1527931473,1527931472,1527931471,1527931470,1527931469,1527931468,1527931467,1527931466,1527931465,1527931464,1530223193,1530223192,1530223191,1530223190,1530223189,1530223188,1530223187,1530223186,1530223185,1530223184,1695030586,1666211387,1666211132,1666210873,1529042530,1663260257,1663260256,1663260255,1663260254,1663260253,1663260252,1663260251,1529042522,1528977250,1530223183,1530223182,1530223181,1530223180,1530223179,1530223178,1462836827,1462836571,1528911970,1529945178,1529631065,1530223705,1664441432,1664441431,1664441430,1664441429,1664441428,1528846690,1664441427,1664441426,1396005969,1396005968,1664441423,1664441422,1664441421,1664441420,1527929186,1664441419,1664441418,1664441417,1396005960,1529832025,1529832024,1529832023,1529832022,1528781410,1529832021,1529832020,1529832019,1529832018,1529832017,1529832016,1529832015,1529832014,1529832013,1529832012,1529832011,1529832010,1529832009,1529832008,1527997017,1527997016,1358960181,1358960437,1358960693,1358960949,1358961205,1627396917,1627397173,1627397429,1627397685,1627397941,1627398197,1627398453,1627398709,1627398965,1627399221,1627399477,1627399733,1527997015,1527997014,1527997013,1527997012,1527997011,1527997010,1527997009,1527997008,1527997007,1527997006,1527997005,1527997004,1527994978,1527997003,1527997002,1527997001,1695033397,1527997000,1530223449,1664441176,1627399989,1627400245,1664441175,1664441174,1664441173,1664441172,1664441171,1664441170,1396005713,1396005712,1664441167,1664441166,1664441165,1664441164,1664441163,1664441162,1664441161,1396005704,1529944922,1530012506,1529631321,1529565529,1530012250,1529766489,1529766488,1529766487,1529766486,1529766485,1529766484,1529766483,1529766482,1529766481,1529766480,1529766479,1529766478,1529766477,1529766476,1529766475,1529766474,1529766473,1529766472,1528062553,1528062552,1528062551,1528062550,1528062549,1528062548,1528062547,1528062546,1528716130,1528062545,1528062544,1528062543,1528062542,1528062541,1528062540,1528062539,1528062538,1528062537,1528062536,1530011994,1529631577,1530011738,1529565785,1529499993,1529700953,1529700952,1529700951,1529700950,1529700949,1529700948,1529700947,1529700946,1529700945,1529700944,1529700943,1529700942,1529700941,1529700940,1529700939,1529700938,1627400501,1529700937,1529700936,1528128089,1528128088,1528128087,1528128086,1528128085,1528128084,1528128083,1528128082,1528128081,1528128080,1528128079,1528128078,1528128077,1695035428,1528128076,1528128075,1528128074,1528128073,1528128072,1530011482,1530011226,1529631833,1529566041,1529500249,1529434457,1530010970,1529635417,1529635416,1529635415,1529635414,1529635413,1529635412,1529635411,1529635410,1529635409,1529635408,1529635407,1529635406,1529635405,1529635404,1529635403,1529635402,1529635401,1529635400,1528193625,1528193624,1528193623,1528193622,1528193621,1528193620,1528193619,1528193618,1528193617,1528193616,1560815951,1695033423,1560815439,1528193615,1528193614,1528060770,1528193613,1528193612,1528193611,1528193610,1528193609,1528193608,1530010714,1529632089,1529566297,1529500505,1530010458,1529434713,1529368921,1529635161,1529569881,1529569880,1529569879,1529569878,1529569877,1529569876,1529569875,1529569874,1529569873,1529569872,1529569871,1529569870,1529569869,1529569868,1529569867,1529569866,1529569865,1529569864,1528259161,1528259160,1528259159,1528259158,1528259157,1528259156,1527145046,1528259155,1528259154,1560817445,1528259153,1527210582,1528259152,1528259151,1528259150,1527276118,1528259149,1528259148,1528259147,1528259146,1528259145,1528259144,1530078042,1529632345,1529566553,1530077786,1529500761,1695033409,1529434969,1529369177,1529303385,1462968667,1528650850,1529634905,1529569625,1529504345,1529504344,1529504343,1529504342,1529504341,1529504340,1529504339,1529504338,1529504337,1529504336,1529504335,1529504334,1529504333,1529504332,1529504331,1529504330,1529504329,1529504328,1528324697,1528324696,1528324695,1528324694,1528324693,1528324692,1528324691,1528324690,1528324689,1560817190,1528324688,1528324687,1528324686,1528324685,1528324684,1560815924,1528324683,1528324682,1528324681,1528324680,1560815936,1462968411,1529632601,1529566809,1529501017,1695034663,1529435225,1462968155,1529369433,1529303641,1529237849,1695033919,1560815183,1462967899,1529634649,1529569369,1560814927,1695032399,1529504089,1529438809,1529438808,1529438807,1529438806,1529438805,1529438804,1529438803,1695034408,1529438802,1529438801,1528126562,1529438800,1529438799,1560816425,1529438798,1529438797,1529438796,1529438795,1529438794,1529438793,1529438792,1528390233,1528390232,1528390231,1528390230,1460152874,1528390229,1528390228,1528390227,1560815915,1528585570,1528390226,1528390225,1528390224,1528390223,1528390222,1528390221,1528390220,1528390219,1528390218,1528390217,1528390216,1529632857,1529567065,1462967643,1529501273,1529435481,1529369689,1529303897,1530076250,1529238105,1528192354,1529172313,1529634393,1358959655,1529569113,1359024672,1529503833,1529438553,1529373273,1695033388,1529373272,1529373271,1529373270,1529373269,1529373268,1529373267,1529373266,1529373265,1695033133,1529373264,1529373263,1527145047,1527210583,1527276119,1529373262,1529373261,1529373260,1529373259,1529373258,1529373257,1529373256,1528455769,1528455768,1528455767,1528455766,1528455765,1528455764,1528455763,1528455762,1528455761,1528455760,1528455759,1528455758,1528455757,1528455756,1528455755,1528455754,1528455753,1528455752,1529633113,1530075994,1529567321,1529501529,1529435737,1529369945,1530143578,1529304153,1529238361,1529172569,1529106777,1529634137,1529568857,1529503577,1529438297,1529373017,1529307737,1529307736,1529307735,1529307734,1529307733,1529307732,1359090207,1359155742,1529307731,1359221277,1529307730,1529307729,1529307728,1529307727,1529307726,1529307725,1529307724,1529307723,1529307722,1529307721,1529307720,1528521305,1528521304,1528521303,1528521302,1528521301,1528521300,1528521299,1528521298,1528521297,1528521296,1528521295,1528521294,1528521293,1528521292,1528521291,1528521290,1528521289,1528521288,1529633369,1530143322,1529567577,1529501785,1529435993,1529370201,1530143066,1529304409,1529238617,1529172825,1529107033,1529633881,1528520290,1529568601,1529503321,1529438041,1529372761,1529307481,1627397713,1529242201,1529242200,1529242199,1529242198,1529242197,1529242196,1529242195,1529242194,1529242193,1529242192,1526948435,1529242191,1529242190,1529242189,1529242188,1529242187,1529242186,1529242185,1529242184,1528586841,1528586840,1528258146,1528586839,1528586838,1528586837,1528586836,1695036200,1528586835,1528586834,1528586833,1528586832,1528586831,1528586830,1528586829,1528586828,1528586827,1528586826,1528586825,1528586824,1529633625,1529567833,1528455010,1530142810,1529502041,1627397457,1529436249,1529370457,1529304665,1530142554,1529238873,1529173081,1529107289,1529568345,1529503065,1529437785,1529372505,1358959658,1358959914,1358960170,1358960426,1527145048,1527210584,1527276120,1529307225,1529241945,1529176665,1529176664,1529176663,1529176662,1529176661,1529176660,1529176659,1529176658,1529176657,1529176656,1529176655,1529176654,1529176653,1529176652,1529176651,1529176650,1695032100,1528323938,1529176649,1529176648,1528652377,1528652376,1528652375,1528652374,1528652373,1528652372,1627399741,1627399485,1627399229,1528389730,1528652371,1528652370,1528652369,1528652368,1695036469,1528652367,1528652366,1528652365,1528652364,1528652363,1627400016,1528652362,1528652361,1528652360,1529568089,1529502297,1529436505,1529034594,1530142298,1529370713,1529304921,1529239129,1529173337,1627400532,1530142042,1529107545,1527855166,1529502809,1529437529,1529372249,1527145049,1527210585,1527276121,1529306969,1529034586,1528968802,1529241689,1529176409,1529111129,1529111128,1695036724,1529111127,1529111126,1529111125,1529111124,1529111123,1529111122,1527855422,1529111121,1529111120,1529111119,1695036979,1529111118,1358960682,1358960938,1358961194,1627396906,1627397162,1627397418,1627397674,1627397930,1627398186,1627398442,1627398698,1627398954,1627399210,1529111117,1358960969,1529111116,1529111115,1529111114,1529111113,1528968794,1527919714,1529111112,1528717913,1528717912,1528717911,1528717910,1528717909,1528717908,1527855678,1627399251,1528717907,1528717906,1528717905,1528717904,1528717903,1528717902,1528717901,1627399466,1627399722,1627399978,1627400234,1627400490,1527919706,1527984994,1528717900,1528717899,1528717898,1528717897,1528717896,1529502553,1529436761,1529370969,1529305177,1529239385,1530141786,1529173593,1529107801,1529437273,1529371993,1529306713,1529241433,1529176153,1529110873,1560819506,1529045593,1529045592,1529045591,1527984986,1529045590,1528050274,1529045589,1529045588,1529045587,1529045586,1529045585,1529045584,1529045583,1528050266,1528115554,1529045582,1529045581,1529045580,1529045579,1529045578,1529045577,1529045576,1528115546,1528180834,1528783449,1528783448,1528783447,1528783446,1528783445,1528783444,1528783443,1528180826,1528246114,1528783442,1528783441,1528783440,1528783439,1528783438,1528783437,1528783436,1528246106,1528442466,1528783435,1528783434,1528783433,1528783432,1529437017,1529371225,1529305433,1527855934,1529239641,1530141530,1627400276,1528442458,1528311394,1529173849,1529108057,1529371737,1529306457,1529241177,1529175897,1529110617,1528980057,1528980056,1528311386,1528376674,1528980055,1528980054,1528980053,1528980052,1528980051,1528980050,1528980049,1528376666,1666211385,1666211128,1666210874,1666211386,1666211131,1666211129,1666211130,1596017225,1595951689,1528980048,1528980047,1528980046,1528980045,1528980044,1528980043,1528980042,1528980041,1528980040,1528848985,1528848984,1528848983,1528848982,1528848981,1528848980,1528848979,1528848978,1528848977,1528848976,1627400020,1528848975,1695037489,1528848974,1528848973,1528848972,1528848971,1528848970,1528848969,1528848968,1359221275,1529371481,1529305689,1527856190,1529239897,1529174105,1530209114,1529108313,1529306201,1529240921,1529175641,1529110361,1528914521,1528914520,1528914519,1528914518,1528914517,1528914516,1528914515,1528914514,1528914513,1528914512,1528914511,1528914510,1528914509,1528914508,1528914507,1528914506,1528914505,1528914504,1529305945,1529240153,1529174361,1529108569,1366710854,1529240665,1529175385,1529110105,1529240409,1529174617,1529108825,1529175129,1366712902,1529109849,1529174873,1529109081,1529109593,1529109337,1530223167,1529633343,1529567807,1529502271,1529436735,1529371199,1527856446,1529305663,1529240127,1529174591,1529109055,1627397201,1530225215,1530159679,1530094143,1530028607,1529963071,1529897535,1529831999,1529766463,1529700927,1529635391,1529569855,1529504319,1529438783,1366823517,1366843998,1529373247,1529307711,1529242175,1529176639,1529111103,1530223168,1530225216,1530159680,1530094144,1530028608,1529963072,1529897536,1529832000,1529766464,1529700928,1529635392,1529569856,1529504320,1529438784,1529373248,1529307712,1529242176,1529176640,1529111104,1530223423,1529699135,1529633599,1529568063,1529502527,1529436991,1529371455,1529305919,1529240383,1529174847,1529109311,1530224959,1529042274,1728588339,1530093887,1530028351,1529962815,1529897279,1529831743,1529766207,1529700671,1529635135,1529569599,1529504063,1529438527,1529372991,1663260001,1529307455,1529241919,1529176383,1663260000,1663259999,1663259998,1527856702,1663259997,1663259996,1663259995,1529110847,1529042266,1528976994,1530208858,1463099739,1463099483,1530225223,1530159687,1530094151,1530028615,1529963079,1528911714,1529897543,1529832007,1529766471,1529700935,1529635399,1529569863,1529504327,1529438791,1528846434,1529373255,1529307719,1529242183,1529176647,1529111111,1530223169,1530225217,1530159681,1527928930,1530094145,1530028609,1529963073,1529897537,1529832001,1529766465,1529700929,1529635393,1528781154,1529569857,1529504321,1529438785,1529373249,1529307713,1529242177,1529176641,1358960713,1529111105,1664441152,1527847741,1664442688,1530223679,1529764927,1627399764,1529699391,1529633855,1529568319,1529502783,1527994722,1529437247,1529371711,1529306175,1529240639,1529175103,1529109567,1530224703,1530028095,1529962559,1529897023,1529831487,1529765951,1529700415,1529634879,1529569343,1529503807,1529438271,1529372735,1529307199,1529241663,1529176127,1529110591,1463099227,1463098971,1528715874,1530225222,1530159686,1530094150,1530028614,1529963078,1529897542,1529832006,1529766470,1529700934,1529635398,1529569862,1529504326,1529438790,1529373254,1529307718,1529242182,1529176646,1529111110,1528060514,1396005703,1396007239,1530223170,1530225218,1530159682,1530094146,1530028610,1529963074,1529897538,1529832002,1529766466,1529700930,1528650594,1529635394,1529569858,1529504322,1529438786,1529373250,1529307714,1529242178,1529176642,1528126306,1529111106,1664441153,1664442689,1664441408,1664442432,1530223935,1529830719,1529765183,1529699647,1529634111,1529568575,1529503039,1695032364,1529437503,1529371967,1528585314,1529306431,1529240895,1529175359,1529109823,1530224447,1529962303,1529896767,1529831231,1528192098,1529765695,1529700159,1529634623,1529569087,1529503551,1529438015,1529372479,1529306943,1528520034,1529241407,1529175871,1529110335,1463098715,1530207322,1530225221,1530159685,1530094149,1528257890,1530028613,1529963077,1529897541,1529832005,1529766469,1529700933,1529635397,1529569861,1528454754,1529504325,1529438789,1529373253,1529307717,1529242181,1529176645,1695032621,1627399508,1529111109,1664441158,1664442694,1396005959,1396006983,1560815150,1530223171,1530225219,1530159683,1530094147,1530028611,1529963075,1529897539,1529832003,1528323682,1529766467,1529700931,1529635395,1529569859,1529504323,1529438787,1529373251,1529307715,1529242179,1529176643,1529111107,1664441154,1664442690,1664441409,1664442433,1664441664,1664442176,1528389474,1530224191,1529896511,1529830975,1529765439,1529699903,1529634367,1529568831,1529503295,1529034850,1529437759,1529372223,1529306687,1529241151,1529175615,1529110079,1530207066,1529034842,1528969058,1530274650,1530274394,1530225220,1530159684,1530094148,1530028612,1529963076,1528969050,1528903266,1529897540,1529832004,1529766468,1627399252,1529700932,1529635396,1529569860,1627918891,1529504324,1529438788,1529373252,1560820016,1529307716,1529242180,1529176644,1529111108,1664441157,1358960457,1664442693,1528903258,1527919970,1664441414,1664442438,1396006215,1396006727,1664441155,1664442691,1664441410,1527919962,1527985250,1664442434,1664441665,1664442177,1664441920,1664441156,1664442692,1664441413,1527985242,1528050530,1664442437,1664441670,1664442182,1396006471,1664441411,1664442435,1664441666,1528050522,1528115810,1664442178,1664441921,1664441412,1664442436,1664441669,1664442181,1664441926,1528115802,1528181090,1664441667,1664442179,1664441922,1664441668,1358960201,1664442180,1664441925,1664441923,1664441924,1530749502,1530683966,1627398996,1493701419,1530618430,1530552894,1530487358,1530421822,1530356286,1530290750,1530225214,1560816434,1365400858,1366962273,1530749494,1530683958,1530618422,1530552886,1530487350,1530421814,1527199065,1527920202,1530356278,1530290742,1530225206,1530153057,1530154849,1530154593,1530154337,1530154081,1530153825,1530153569,1530153313,1529762142,1529832027,1530749501,1530683965,1530618429,1530552893,1530487357,1530421821,1530356285,1530290749,1530225213,1364222234,1366962272,1527201625,1366962271,1366962270,1530749246,1530683710,1530618174,1530552638,1530487102,1530421566,1530356030,1530290494,1530159422,1366962269,1366962268,1364222487,1364222488,1364222489,1364222490,1366962267,1529832031,1530749495,1530683959,1528181082,1528246370,1530618423,1627397200,1530552887,1530487351,1530421815,1530356279,1530290743,1530225207,1366962017,1366962016,1366962015,1366962014,1364285975,1364285976,1364285977,1364285978,1527199064,1528051277,1530749238,1530683702,1530618166,1530552630,1530487094,1530421558,1530356022,1530290486,1527201624,1530224950,1530159414,1530153056,1530155105,1529827679,1529897562,1530749500,1530683964,1530618428,1530552892,1530487356,1530421820,1530356284,1530290748,1530225212,1366962013,1530159421,1364286234,1366962012,1529897568,1530748990,1530683454,1530617918,1530552382,1530486846,1695037999,1530421310,1530355774,1530290238,1530093630,1627919403,1530023263,1529890906,1530749496,1530683960,1530618424,1530552888,1530487352,1530421816,1530356280,1530290744,1530225208,1364286490,1530023519,1366962011,1527199063,1528051273,1529893216,1695034417,1530225245,1530159415,1530023775,1529890908,1528246362,1528442722,1530748982,1530683446,1530617910,1530552374,1530486838,1530421302,1530355766,1527201623,1530290230,1530224694,1530159158,1530093622,1530153055,1530159708,1530749499,1530683963,1530618427,1530552891,1530487355,1530421819,1530356283,1530290747,1530225211,1530024031,1530021982,1364286746,1530159420,1366961761,1529956446,1530159710,1530093629,1530748734,1530683198,1530617662,1530552126,1560820526,1530486590,1530421054,1530355518,1530289982,1530027838,1627919659,1366961760,1530094171,1530749497,1530683961,1530618425,1530552889,1530487353,1530421817,1530356281,1530290745,1530225209,1527199062,1528116812,1530159416,1529890907,1364287002,1365335578,1530094175,1530093623,1366961759,1366961758,1527201622,1530748726,1530683190,1530617654,1530552118,1530486582,1530421046,1530355510,1530289974,1530224438,1530158902,1530093366,1530027830,1530028634,1530749498,1530683962,1530618426,1530552890,1530487354,1530421818,1530356282,1530290746,1358959945,1358959689,1530225210,1627398740,1365335834,1695038509,1530159419,1366961757,1530028640,1530093628,1493702187,1365335322,1530027837,1365336090,1366961756,1530024288,1529963105,1530747454,1530681918,1530616382,1530550846,1530485310,1530419774,1530354238,1530288702,1527199061,1528116810,1529698878,1530748478,1530682942,1530617406,1530551870,1530486334,1530420798,1530355262,1527201621,1530289726,1529962046,1530159417,1364287258,1529958753,1529700956,1529700700,1529700444,1529700188,1529699932,1695034672,1529699676,1529699420,1530093624,1365336346,1366961755,1529699164,1529698908,1529698652,1461466201,1461465945,1461465689,1461465433,1461465177,1461464921,1530027831,1366961505,1366961504,1627398484,1528442714,1528311650,1366961503,1461464665,1461531737,1729966937,1729966681,1729966425,1729966169,1729965913,1461530201,1461597273,1530747446,1530681910,1530616374,1530550838,1530485302,1530419766,1530354230,1530288694,1530223158,1530157622,1530092086,1527199060,1528182347,1530026550,1529961014,1529895478,1529829942,1529764406,1529698870,1366692445,1366712926,1527201620,1530748470,1530682934,1530617398,1530551862,1530486326,1530420790,1530355254,1530289718,1530224182,1530158646,1530093110,1530027574,1529962038,1530153054,1730032473,1461596761,1461596505,1461596249,1730031449,1461595737,1461662809,1695038764,1730098009,1461662297,1530159418,1366961502,1627920171,1366961501,1365336599,1364287514,1461662041,1461661785,1730096985,1461661273,1461728345,1730163545,1461727833,1461727577,1461727321,1530093627,1527199059,1527985740,1366961500,1730162521,1461726809,1461793881,1730229081,1730228825,1730228569,1730228313,1730228057,1461792345,1530027836,1461859417,1461859161,1461858905,1461858649,1461858393,1461858137,1461857881,1463759969,1463759713,1530747453,1530681917,1530616381,1530550845,1530485309,1530419773,1530354237,1530288701,1529698877,1529962045,1463759457,1463759201,1463758945,1463758689,1463758433,1463759968,1732195168,1732194912,1732194656,1527201619,1530747710,1530682174,1530616638,1530551102,1530485566,1530420030,1530354494,1530288958,1529764670,1732194400,1732194144,1463758432,1463759967,1732195167,1463759455,1463759199,1463758943,1732194143,1530748222,1530682686,1695039019,1530617150,1530551614,1530486078,1530420542,1530355006,1530289470,1529896254,1463758431,1463759966,1732195166,1463759454,1463759198,1463758942,1732194142,1463758430,1627920427,1463759965,1530093625,1732195165,1463759453,1463759197,1463758941,1732194141,1463758429,1463759964,1732195164,1732194908,1530027832,1732194652,1527199058,1527985738,1732194396,1732194140,1463758428,1463759963,1463759707,1463759451,1463759195,1463758939,1527201618,1530747447,1530681911,1530616375,1530550839,1530485303,1530419767,1530354231,1530288695,1529698871,1529962039,1463758683,1463758427,1460216348,1460216092,1460215836,1460215580,1460215324,1460215068,1460214812,1530747702,1530682166,1530616630,1530551094,1530485558,1530420022,1530354486,1530288950,1627398228,1528311642,1530223414,1530157878,1528376930,1530092342,1530026806,1529961270,1529895734,1529830198,1529764662,1460216349,1728651549,1560817199,1728651293,1728651037,1728650781,1728650525,1460214813,1460216350,1728651550,1530748214,1530682678,1530617142,1530551606,1530486070,1530420534,1530354998,1530289462,1530223926,1530158390,1530092854,1530027318,1529961782,1529896246,1460215838,1460215582,1460215326,1728650526,1460214814,1460216351,1728651551,1460215839,1460215583,1530093626,1460215327,1728650527,1460214815,1460216352,1527199057,1527920203,1728651552,1460215840,1460215584,1460215328,1728650528,1530027835,1530218589,1460214816,1527201617,1460216353,1728651553,1728651297,1728651041,1728650785,1728650529,1460214817,1460216354,1530747452,1530681916,1530616380,1530550844,1530485308,1530419772,1530354236,1530288700,1529698876,1529962044,1530218588,1530219618,1460216098,1460215842,1460215586,1460215330,1460215074,1493702955,1460214818,1430080330,1529764669,1528376922,1430080586,1430080074,1430080075,1430080842,1530088288,1529896253,1430079817,1530087516,1430080076,1530088544,1430081098,1530021979,1530747966,1530682430,1530616894,1530551358,1527199312,1527199568,1527199824,1527200080,1527200336,1527200592,1527200848,1527201104,1527201360,1530485822,1530420286,1530354750,1530289214,1529830462,1430080334,1430080077,1530088800,1430081099,1366961499,1430081353,1530027833,1530218590,1430080590,1430080078,1530089056,1430081100,1365335066,1430080846,1530747448,1530681912,1530616376,1530550840,1530485304,1530419768,1530354232,1530288696,1529698872,1529962040,1366710853,1530218587,1627397972,1530219874,1530219362,1530089312,1430081101,1560817454,1366961249,1430079823,1627920939,1430081102,1529764663,1359417914,1430081359,1530089568,1430145865,1530087519,1430146121,1430145609,1529896247,1430145354,1430146377,1430145353,1530087518,1530747958,1530682422,1530616886,1530551350,1530485814,1530420278,1530354742,1530289206,1530223670,1530158134,1530092598,1530027062,1529961526,1529895990,1529830454,1430145355,1430146633,1430145356,1530027834,1530218591,1530218586,1530220130,1530219106,1430146890,1430146889,1430145871,1530087517,1430145357,1530747451,1530681915,1530616379,1530550843,1530485307,1530419771,1530354235,1530288699,1529698875,1529962043,1530218592,1627397716,1430146891,1430146127,1430145615,1430145358,1430146892,1430146383,1430145359,1529764668,1366712901,1530220386,1430146893,1430146639,1430146894,1430146895,1529694298,1529694554,1529694810,1529695066,1529896252,1530218850,1530218593,1529695322,1529695578,1529695834,1529696090,1529696346,1529759835,1529760091,1529760347,1529760603,1529830461,1530220642,1530218594,1529760859,1529761115,1529761371,1529761627,1529761883,1529759834,1530747449,1530681913,1530616377,1530550841,1530485305,1530419769,1530354233,1530288697,1529698873,1529962041,1529825372,1529825628,1529825884,1529826140,1529764664,1529826396,1529826652,1529826908,1529827164,1529827420,1529825371,1529896248,1529825370,1359221303,1529830455,1530153050,1529956702,1529956958,1529957214,1529957470,1529957726,1529957982,1529958238,1529958494,1529956445,1530747450,1530681914,1530616378,1530550842,1530485306,1530419770,1530354234,1530288698,1529698874,1529962042,1529956444,1529764667,1529896251,1530153051,1529956443,1529830460,1529956442,1627400504,1627400248,1627399992,1627399736,1627399480,1529764665,1530021983,1529890909,1529896249,1530022239,1530022495,1530022751,1529891165,1530023007,1364287770,1529830456,1365401114,1529891421,1529764666,1530153052,1366961248,1365401370,1529896250,1529891677,1529891933,1366961247,1529830459,1365401626,1529892189,1529892445,1366961246,1529830457,1627399224,1627398968,1627398712,1627398456,1627398200,1627397944,1627397688,1627397432,1365401882,1529892701,1366961245,1366823518,1366843999,1366961244,1366961243,1366960993,1529830458,1530153053,1695035684,1366960992,1366960991,1365402135,1365402136,1529892957,1366960990,1366960989,1365402137,1365402138,1627397176,1627396920,1358961208,1358960952,1358960696,1358960440,1358960184,1358959928,1530812990,1530812989,1530812988,1530812987,1530812986,1530812985,1530812984,1530812983,1530812982,1530813246,1530813502,1530813758,1530814014,1530814270,1530814526,1560817701,1530814782,1530815038,1530815037,1530815036,1530815035,1530815034,1530815033,1530815032,1530815031,1530813238,1530813494,1530813750,1530814006,1530814262,1530814518,1530814774,1530815030,1531402814,1531402813,1531402812,1358959672,1531402811,1531402810,1531402809,1531402808,1531402807,1531402806,1531402805,1531402804,1531402803,1531402802,1531402801,1531402800,1531402799,1531402798,1531403070,1665620789,1359155766,1359090229,1359024692,1358959155,1695032124,1531337278,1531337277,1531337276,1531337275,1531337274,1531337273,1728589606,1531337272,1531337271,1531337270,1530222690,1531337268,1531337267,1531337266,1531337265,1531337264,1531337263,1531337262,1531403326,1665621045,1531337534,1531337526,1529764962,1366710852,1531337524,1531271742,1531271741,1531271740,1627397460,1531271739,1531271738,1531271737,1531271736,1531271735,1531271734,1366712900,1530222434,1530224482,1531271731,1531271730,1531271729,1531271728,1531271727,1560817191,1531271726,1530878526,1530878525,1530878524,1530878523,1530878522,1530878521,1530878520,1530878519,1530878518,1530222178,1530224226,1529697122,1529698658,1529699938,1529700962,1627397204,1627400488,1530155874,1530156386,1531404862,1531404861,1531404860,1531404859,1531404858,1359155740,1531404857,1531404856,1531404855,1531404854,1531404853,1531404852,1531404851,1531404850,1531404849,1695034664,1531404848,1531404847,1531404846,1531403582,1665621301,1531337790,1531337782,1530094178,1531337780,1531271998,1531271990,1529764706,1529764450,1531271987,1530878782,1530878774,1529764194,1529763938,1359090205,1359024670,1358959135,1529763682,1529763426,1529763170,1529762914,1529762658,1529762402,1531206206,1531206205,1531206204,1359286812,1531206203,1531206202,1531206201,1531206200,1695034409,1695035437,1531206199,1531206198,1530221922,1530223970,1529696866,1529698402,1531206193,1531206192,1627400232,1627396948,1531206191,1531206190,1530944062,1560816426,1358961235,1530944061,1530944060,1530944059,1530944058,1530944057,1627399976,1530944056,1530944055,1530944054,1530221666,1530223714,1529696610,1529698146,1627399720,1627399464,1627399208,1627398952,1627398696,1627398440,1627398184,1529699682,1529700706,1530155618,1530156130,1531404606,1560816171,1665622325,1531339326,1531339325,1531339324,1627397928,1531339323,1531339322,1695033644,1531339321,1627398973,1531339320,1531339319,1531339318,1529897570,1531339316,1531339315,1531339314,1531339313,1531339312,1531339311,1531339310,1359352347,1531403838,1665621557,1531338046,1531338038,1531338036,1627397672,1526948441,1531272254,1531272246,1530093922,1530093666,1695033389,1531272243,1530879038,1530879030,1627398717,1530093410,1530093154,1530092898,1530092642,1530092386,1530092130,1627399486,1530091874,1530091618,1531206462,1531206454,1529762146,1627399230,1530225249,1530944318,1530944310,1560815406,1531140670,1531140669,1358961236,1627918890,1531140668,1531140667,1529042018,1531140666,1531140665,1531140664,1531140663,1531140662,1530221410,1530223458,1530225250,1529697634,1529697378,1531140656,1531140655,1531140654,1531009598,1531009597,1531009596,1531009595,1531009594,1531009593,1531009592,1531009591,1531009590,1530221154,1493701418,1530223202,1530224994,1529697890,1529699426,1529700450,1530155362,1531009582,1531404350,1665622069,1531339070,1531339062,1529897314,1531339060,1531273790,1531273789,1531273788,1531273787,1531273786,1531273785,1531273784,1531273783,1627919402,1531273782,1529897058,1627396945,1627919658,1529896802,1531273779,1531273778,1627919914,1531273777,1531273776,1531273775,1531273774,1530880574,1530880573,1530880572,1627920170,1366823519,1366844000,1530880571,1530880570,1530880569,1358960980,1627920426,1530880568,1530880567,1530880566,1529896546,1529896290,1493702954,1529896034,1529895778,1529895522,1529895266,1529895010,1663259745,1529894754,1663259744,1531404094,1665621813,1531338302,1663259743,1663259742,1663259741,1663259740,1663259739,1529042010,1528976738,1531338294,1531338292,1531272510,1531272502,1531272499,1530879294,1530879286,1530225248,1531206718,1627920938,1531206710,1530091362,1530091106,1530090850,1530090594,1662065725,1530944574,1530944566,1530090338,1560814913,1530090082,1530089826,1529700961,1529700705,1529700449,1662065981,1529700193,1358960724,1529699937,1695035692,1531140926,1531140918,1531009854,1695032384,1531009846,1530159714,1530159458,1530159202,1530158946,1530158690,1531075134,1531075133,1531075132,1531075131,1531075130,1531075129,1531075128,1531075127,1531075126,1530220898,1662066237,1530222946,1358961233,1358960977,1530224738,1529699170,1529698914,1529700194,1531075119,1531075118,1531338814,1526948440,1531338806,1529894498,1531338804,1662066493,1531273534,1359155739,1359090204,1531273526,1529894242,1529893986,1359024669,1531273523,1530880318,1530880310,1529893730,1529893474,1662066749,1529893218,1358959134,1530225243,1531208254,1531208253,1662067005,1531208252,1531208251,1531208250,1531208249,1358960468,1531208248,1531208247,1531208246,1662067261,1358960721,1531208241,1531208240,1531208239,1531208238,1393632061,1530946110,1530946109,1695032409,1695032665,1695032921,1695033177,1695033905,1530946108,1530946107,1530946106,1530946105,1530946104,1530946103,1393632317,1530946102,1531338558,1531338550,1529700954,1531338548,1695032406,1531272766,1531272758,1695032365,1560814934,1560815190,1560815446,1695033430,1560815958,1531272755,1530879550,1530879542,1531206974,1531206966,1560814894,1530944830,1530944822,1728587311,1358960212,1531141182,1531141174,1529699681,1529699425,1529699169,1529698913,1529698657,1627918889,1531010110,1531010102,1560818219,1529698401,1529698145,1529697889,1529697633,1529697377,1529697121,1529696865,1531075390,1531075382,1358961223,1530158434,1528911458,1530158178,1530157922,1530157666,1530157410,1530157154,1531273278,1531273270,1530225247,1531273267,1530880062,1530880054,1531207998,1560813885,1531207990,1530945854,1627397966,1627398736,1530945846,1530159706,1528846178,1728590634,1531142718,1531142717,1531142716,1531142715,1531142714,1531142713,1493701417,1531142712,1531142711,1531142710,1531142704,1531142703,1531142702,1531011646,1531011645,1531011644,1531011643,1531011642,1358960465,1358959956,1531011641,1560813628,1531011640,1531011639,1531011638,1531011630,1531273022,1627919401,1531273014,1529700698,1529700442,1531273011,1530879806,1530879798,1529700186,1527928674,1529699930,1529699674,1529699418,1529699162,1529698906,1529698650,1529698394,1695031099,1531207230,1531207222,1529762145,1529832034,1529831778,1493701929,1529831522,1530945086,1528780898,1530945078,1529831266,1529831010,1529830754,1529830498,1529830242,1529829986,1529829730,1529829474,1531141438,1531141430,1530159713,1531010366,1531010358,1531075646,1531075638,1695030842,1529696609,1529766498,1529766242,1529765986,1529765730,1529765474,1358959700,1695034415,1531207742,1531207734,1530159712,1530945598,1530945590,1493702185,1531142462,1531142454,1560812857,1531011390,1531011382,1530094177,1531077182,1493702441,1531077181,1531077180,1531077179,1531077178,1531077177,1531077176,1531077175,1531077174,1531077167,1531077166,1531207486,1531207478,1529698138,1529697882,1529697626,1627920425,1529697370,1530945342,1530945334,1529697114,1529696858,1529696602,1529700960,1529700704,1529700448,1529700192,1529699936,1531141694,1531141686,1529829218,1529828962,1529828706,1493702953,1529828450,1529828194,1531010622,1531010614,1560818729,1529827938,1627920937,1358960209,1529827682,1530225242,1531075902,1531075894,1531142206,1531142198,1531011134,1531011126,1530089825,1530028642,1530028386,1530028130,1560815425,1531076926,1531076918,1530027874,1530027618,1530027362,1530027106,1530026850,1530026594,1531141950,1531141942,1529699680,1358959953,1529699424,1529699168,1695033408,1529698912,1529698656,1531010878,1531010870,1529698400,1529698144,1529697888,1529697632,1695033663,1529697376,1529697120,1529696864,1531076158,1531076150,1531076670,1531076662,1530026338,1530026082,1530025826,1530025570,1530025314,1530025058,1531076414,1531076406,1529696608,1529766497,1531402797,1531404845,1531337261,1531339309,1531271725,1531273773,1531206189,1531208237,1531140653,1531142701,1531075117,1531077165,1531009581,1531011629,1530944045,1527994466,1695033918,1530946093,1530156642,1530156898,1529765218,1530024802,1530024546,1530024290,1531404844,1531339308,1531273772,1531208236,1531142700,1531077164,1531011628,1530946092,1627399760,1530880556,1530815020,1530749484,1530683948,1530618412,1530552876,1530487340,1530421804,1530356268,1530290732,1530225196,1530159660,1530094124,1530028588,1529963052,1529897516,1529831980,1529766444,1529700908,1529635372,1529569836,1529504300,1529438764,1529373228,1529307692,1529242156,1529176620,1531404843,1531339307,1531273771,1531208235,1531142699,1531077163,1531011627,1530946091,1530880555,1530815019,1530749483,1358959678,1530683947,1530618411,1530552875,1530487339,1530421803,1530356267,1530290731,1530225195,1530159659,1530094123,1530028587,1358959697,1529963051,1528715618,1529897515,1529831979,1529766443,1529700907,1529635371,1529569835,1529504299,1529438763,1529373227,1529307691,1529242155,1529176619,1397186860,1530814764,1530749228,1530683692,1530618156,1530552620,1530487084,1530421548,1530356012,1530290476,1530224940,1530159404,1530093868,1530028332,1529962796,1529897260,1529831724,1358961234,1528060258,1529766188,1529700652,1529635116,1529569580,1529504044,1529438508,1529372972,1529307436,1529241900,1529176364,1531404842,1531339306,1531273770,1531208234,1531142698,1531077162,1528650338,1531011626,1530946090,1530880554,1358959934,1530815018,1530749482,1530683946,1530618410,1530552874,1530487338,1530421802,1530356266,1530290730,1530225194,1530159658,1530094122,1530028586,1695035940,1528126050,1529963050,1529897514,1529831978,1529766442,1529700906,1529635370,1529569834,1529504298,1529438762,1529373226,1529307690,1529242154,1695035685,1529176618,1665622315,1531402796,1531337260,1531271724,1531206188,1531140652,1531075116,1531009580,1530944044,1530878508,1530812972,1560817702,1530747436,1530681900,1530616364,1530550828,1530485292,1530419756,1530354220,1530288684,1530223148,1530157612,1366710851,1530092076,1530026540,1529961004,1529895468,1529829932,1529764396,1529698860,1529633324,1529567788,1529502252,1529436716,1529371180,1529305644,1529240108,1529174572,1366712899,1397186604,1530814508,1530748972,1530683436,1530617900,1530552364,1530486828,1530421292,1530355756,1530290220,1530224684,1560817447,1358960190,1530159148,1530093612,1530028076,1529962540,1529897004,1695036213,1529831468,1529765932,1529700396,1529634860,1529569324,1529503788,1529438252,1529372716,1529307180,1529241644,1529176108,1531404841,1531339305,1531273769,1531208233,1531142697,1531077161,1531011625,1695034920,1530946089,1530880553,1530815017,1530749481,1530683945,1530618409,1530552873,1530487337,1695034665,1530421801,1358960978,1530356265,1530290729,1530225193,1695034410,1530159657,1530094121,1530028585,1529963049,1529897513,1560816427,1529831977,1529766441,1529700905,1529635369,1529569833,1529504297,1529438761,1529373225,1529307689,1529242153,1529176617,1665622314,1531402795,1695033900,1531337259,1531271723,1695033645,1531206187,1531140651,1531075115,1531009579,1530944043,1530878507,1358959676,1358959932,1358960188,1358960444,1358960700,1358960956,1358961212,1627396924,1695036712,1627397180,1530812971,1627397436,1530747435,1627397692,1530681899,1530616363,1530550827,1530485291,1530419755,1530354219,1627397948,1627398204,1627398460,1627398716,1627398972,1627399228,1627399484,1627399740,1530288683,1530223147,1530157611,1530092075,1530026539,1529961003,1529895467,1627399996,1529829931,1627400252,1627400508,1695033390,1529764395,1529698859,1560815407,1529633323,1529567787,1529502251,1529436715,1529371179,1529305643,1529240107,1529174571,1665622059,1560818740,1397185324,1530813228,1530747692,1530682156,1560815922,1530616620,1695036723,1530551084,1530485548,1530420012,1530354476,1530288940,1530223404,1530157868,1530092332,1366823520,1366844001,1530026796,1695036978,1529961260,1529895724,1529830188,1529764652,1529699116,1529633580,1529568044,1529502508,1529436972,1529371436,1529305900,1529240364,1529174828,1397186348,1530814252,1530748716,1530683180,1695037233,1530617644,1530552108,1530486572,1530421036,1530355500,1530289964,1530224428,1530158892,1530093356,1560819760,1530027820,1529962284,1529896748,1529831212,1529765676,1529700140,1529634604,1529569068,1529503532,1529437996,1529372460,1529306924,1529241388,1529175852,1362500186,1362499930,1362499674,1362499418,1362499162,1362498906,1362498650,1362498394,1362498138,1362498139,1362498140,1531404840,1531339304,1531273768,1531208232,1531142696,1560820015,1531077160,1531011624,1560814909,1530946088,1530880552,1695037998,1530815016,1530749480,1530683944,1530618408,1530552872,1530487336,1530421800,1530356264,1530290728,1530225192,1530159656,1530094120,1530028584,1529963048,1529897512,1529831976,1529766440,1529700904,1529635368,1529569832,1529504296,1529438760,1529373224,1529307688,1529242152,1695038253,1529176616,1665622313,1531402794,1531337258,1531271722,1531206186,1531140650,1531075114,1531009578,1530944042,1530878506,1530812970,1366710850,1530747434,1695038508,1530681898,1530616362,1530550826,1530485290,1530419754,1530354218,1530288682,1530223146,1662068029,1530157610,1530092074,1530026538,1529961002,1366712898,1529895466,1529829930,1529764394,1529698858,1529633322,1529567786,1529502250,1529436714,1529371178,1529305642,1529240106,1529174570,1665622058,1665620779,1665621803,1560821035,1397185580,1530813484,1530747948,1530682412,1530616876,1530551340,1662068285,1530485804,1530420268,1530354732,1530289196,1530223660,1530158124,1530092588,1530027052,1529961516,1529895980,1529830444,1529764908,1529699372,1529633836,1529568300,1529502764,1529437228,1529371692,1529306156,1529240620,1529175084,1397186092,1530813996,1530748460,1530682924,1530617388,1530551852,1530486316,1530420780,1530355244,1530289708,1530224172,1530158636,1530093100,1530027564,1529962028,1529896492,1529830956,1529765420,1529699884,1695039018,1529634348,1529568812,1529503276,1529437740,1695036967,1529372204,1529306668,1662068541,1529241132,1529175596,1362498141,1362498142,1362498143,1362498144,1362762330,1362762074,1362761818,1695032894,1362761562,1362761306,1362761050,1662068797,1362760794,1362760538,1362760282,1362760283,1362760284,1531404839,1531339303,1531273767,1526936916,1528051276,1662069053,1531208231,1531142695,1358960722,1531077159,1531011623,1530946087,1662069309,1530880551,1530815015,1662069565,1530749479,1530683943,1530618407,1530552871,1393634365,1530487335,1530421799,1528585058,1530356263,1530290727,1530225191,1530159655,1530094119,1530028583,1529963047,1529897511,1529831975,1529766439,1529700903,1529635367,1529569831,1529504295,1529438759,1358959687,1529373223,1529307687,1695032366,1529242151,1529176615,1560814895,1358960466,1665622312,1531402793,1531337257,1531271721,1531206185,1531140649,1560815152,1358960199,1531075113,1531009577,1530944041,1627918888,1530878505,1530812969,1530747433,1530681897,1530616361,1530550825,1530485289,1530419753,1530354217,1530288681,1530223145,1530157609,1530092073,1530026537,1529961001,1529895465,1529829929,1529764393,1529698857,1529633321,1529567785,1529502249,1529436713,1529371177,1529305641,1529240105,1529174569,1665622057,1665620778,1665621802,1665621035,1665621547,1397185836,1530813740,1530748204,1530682668,1530617132,1530551596,1530486060,1530420524,1530354988,1530289452,1530223916,1530158380,1530092844,1530027308,1528191842,1529961772,1493701416,1529896236,1529830700,1529765164,1529699628,1529634092,1529568556,1529503020,1529437484,1529371948,1627919400,1529306412,1529240876,1529175340,1362498145,1362500194,1362499938,1362499682,1493701928,1362499426,1560819494,1362499170,1362498914,1362498658,1362498402,1362498146,1528519778,1362565722,1362565466,1362565210,1362564954,1362564698,1362564442,1362564186,1362563930,1362563674,1528257634,1362563675,1362760285,1362760286,1362760287,1362760288,1363810906,1363810650,1363810394,1363810138,1363809882,1365991194,1363809626,1363809370,1363809114,1363808858,1363810907,1627919912,1363808859,1363941978,1363941722,1363941466,1363941210,1363940954,1363940698,1363940442,1363940186,1363939930,1363941979,1362760289,1362762338,1362762082,1362761826,1493702440,1362761570,1362761314,1528454498,1362761058,1362760802,1362760546,1362760290,1362827866,1362827610,1362827354,1362827098,1362826842,1362826586,1362826330,1362826074,1362825818,1362825819,1531404838,1531339302,1531273766,1531208230,1531142694,1531077158,1531011622,1530946086,1530880550,1530815014,1530749478,1530683942,1530618406,1530552870,1530487334,1530421798,1530356262,1530290726,1530225190,1530159654,1530094118,1530028582,1529963046,1529897510,1529831974,1529766438,1529700902,1529635366,1529569830,1529504294,1529438758,1529373222,1529307686,1529242150,1529176614,1665622311,1627920424,1531402792,1531337256,1531271720,1531206184,1531140648,1366823521,1493702952,1531075112,1531009576,1530944040,1530878504,1366844002,1366843746,1627920936,1530812968,1530747432,1530681896,1530616360,1530550824,1530485288,1530419752,1530354216,1530288680,1530223144,1530157608,1530092072,1530026536,1529961000,1529895464,1529829928,1529764392,1529698856,1529633320,1366843490,1529567784,1528323426,1529502248,1529436712,1529371176,1529305640,1529240104,1529174568,1665622056,1665620777,1528389218,1665621801,1665621034,1665621546,1665621291,1362563676,1362563677,1362563678,1362563679,1366843234,1362825820,1362825821,1362825822,1362825823,1363810908,1363808860,1363810909,1366842978,1366842722,1366842466,1366842210,1366841954,1529035106,1363808861,1363939931,1363941980,1363939932,1363941981,1362825824,1362825825,1358960932,1366841698,1366841442,1366841186,1366840930,1366840674,1366840418,1362827874,1366840162,1362827618,1362827362,1366839906,1366839650,1362827106,1362826850,1362826594,1362826338,1358960979,1362826082,1362825826,1362893402,1362893146,1362892890,1362892634,1358961188,1362892378,1362892122,1362891866,1362891610,1362891354,1362891355,1362891356,1362891357,1627396900,1366710849,1362891358,1627918887,1362891359,1529035098,1528969314,1362891360,1362891361,1362893410,1362893154,1627400506,1627400250,1362892898,1362892642,1362892386,1528969306,1528903522,1362892130,1362891874,1362891618,1627399994,1627399738,1627399482,1627399226,1627398970,1627398714,1627398458,1627398202,1627397946,1627397690,1627397434,1362891362,1362958938,1362958682,1531404837,1531339301,1531273765,1528903514,1531208229,1528837730,1531142693,1531077157,1531011621,1530946085,1530880549,1627397156,1530815013,1530749477,1530683941,1627397416,1627397160,1530618405,1530552869,1530487333,1627397412,1530421797,1627400527,1627400271,1627400015,1627399759,1627399503,1627399247,1627398991,1627398735,1627398479,1627398223,1627397967,1627397711,1627397455,1627397199,1627396943,1358961231,1358960975,1358960719,1358960463,1358960207,1358959951,1358959695,1530356261,1530290725,1530225189,1530159653,1358960210,1530094117,1530028581,1529963045,1529897509,1627396904,1529831973,1529766437,1529700901,1529635365,1529569829,1529504293,1529438757,1529373221,1529307685,1529242149,1529176613,1665622310,1531402791,1531337255,1531271719,1528837722,1527920226,1531206183,1531140647,1531075111,1531009575,1530944039,1530878503,1530812967,1527920218,1530747431,1530681895,1530616359,1530550823,1530485287,1530419751,1530354215,1530288679,1530223143,1530157607,1530092071,1493701415,1530026535,1529960999,1529895463,1529829927,1529764391,1529698855,1627397178,1529633319,1527985506,1529567783,1529502247,1529436711,1529371175,1529305639,1529240103,1529174567,1527985498,1528050786,1665622055,1665620776,1665621800,1665621033,1665621545,1665621290,1362563680,1528050778,1528116066,1362563681,1362565730,1362565474,1362565218,1362564962,1362564706,1362564450,1528116058,1528181346,1362564194,1362563938,1362563682,1362631258,1362631002,1362630746,1362630490,1528181338,1528246626,1362630234,1362629978,1362629722,1362629466,1362629210,1362958426,1627919399,1362958170,1366712897,1362957914,1362957658,1362957402,1362957146,1362956890,1362956891,1362956892,1362956893,1363810910,1528246618,1528442978,1363808862,1363810911,1363808863,1363941982,1363939933,1627923227,1627922971,1528442970,1528311906,1627922715,1627922459,1627922203,1627921947,1363939937,1627921691,1362956894,1528311898,1528377186,1362956895,1362956896,1362956897,1362958946,1362958690,1362958434,1362958178,1528377178,1366839394,1366839138,1366838882,1366838626,1366838370,1366838114,1366837858,1366837602,1366837346,1366837090,1366836834,1366836578,1493701927,1366836322,1366836066,1362957922,1362957666,1362957410,1362957154,1366835810,1366835554,1366835298,1366835042,1366834786,1366834530,1366834274,1366834018,1366833762,1366833506,1366833250,1366832994,1366832738,1366832482,1366832226,1366831970,1366831714,1366831458,1366831202,1366830946,1560819749,1362956898,1366830690,1366830434,1366830178,1366829922,1366829666,1366829410,1366829154,1366828898,1366828642,1366828386,1366828130,1363024474,1366827874,1366827618,1366827362,1366827106,1366826850,1366826594,1366826338,1366826082,1366825826,1366825570,1366825314,1363024218,1366825058,1493702183,1366824802,1366824546,1366824290,1363023962,1366824034,1363023706,1493702439,1695036196,1366823778,1366823522,1366909458,1366909202,1366908946,1366908690,1366908434,1366908178,1366907922,1366907666,1366907410,1366710848,1363023450,1363023194,1363022938,1363022682,1363022426,1363022427,1363022428,1366712896,1366909459,1363022429,1363022430,1363022431,1363022432,1363022433,1363024482,1363024226,1366907411,1366909460,1363023970,1363023714,1363023458,1363023202,1363022946,1363022690,1363022434,1366907412,1366909461,1363090010,1363089754,1363089498,1363089242,1363088986,1363088730,1363088474,1363088218,1363087962,1363090011,1363087963,1363090012,1363087964,1627920423,1363090013,1363087965,1363090014,1363087966,1560818213,1363090015,1531404836,1366907413,1529041762,1663259489,1663259488,1663259487,1663259486,1663259485,1663259484,1663259483,1529041754,1528976482,1531339300,1531273764,1531208228,1531142692,1531077156,1531011620,1530946084,1530880548,1528911202,1530815012,1530749476,1530683940,1530618404,1530552868,1530487332,1530421796,1530356260,1528845922,1530290724,1530225188,1530159652,1530094116,1530028580,1529963044,1529897508,1529831972,1527928418,1529766436,1529700900,1529635364,1529569828,1529504292,1529438756,1529373220,1493702951,1366909462,1529307684,1529242148,1529176612,1665622309,1531402790,1531337254,1695035686,1531271718,1531206182,1531140646,1531075110,1531009574,1530944038,1528780642,1530878502,1530812966,1530747430,1530681894,1530616358,1530550822,1530485286,1530419750,1530354214,1530288678,1527994210,1530223142,1530157606,1530092070,1530026534,1529960998,1529895462,1529829926,1529764390,1528715362,1529698854,1529633318,1529567782,1529502246,1529436710,1529371174,1529305638,1529240102,1528060002,1529174566,1665622054,1665620775,1665621799,1665621032,1665621544,1665621289,1362629211,1362629212,1627920935,1362629213,1362629214,1363087967,1363090016,1560817703,1627918886,1363087968,1363090017,1528650082,1363087969,1363090018,1363089762,1363089506,1363089250,1363088994,1363088738,1363088482,1528125794,1363088226,1363087970,1363155546,1363155290,1363155034,1363154778,1363810912,1363808864,1528584802,1363810913,1363808865,1627921435,1627921179,1627923228,1363939936,1363941218,1363154522,1528191586,1363154266,1363154010,1363153754,1363153498,1363155547,1363153499,1363155548,1363153500,1528519522,1363155549,1363153501,1363155550,1363153502,1363155551,1363153503,1363155552,1363153504,1363155553,1363153505,1695035176,1363155554,1366907414,1363155298,1363155042,1560817193,1363154786,1363154530,1363154274,1528257378,1363154018,1363153762,1363153506,1363221082,1363220826,1363220570,1363220314,1363220058,1363219802,1528454242,1363219546,1363219290,1363219034,1363221083,1363219035,1363221084,1363219036,1363221085,1528323170,1363219037,1363221086,1363219038,1363221087,1363219039,1363221088,1363219040,1627396922,1363221089,1358961210,1528388962,1363219041,1363221090,1363220834,1363220578,1363220322,1363220066,1363219810,1363219554,1529035362,1363219298,1363219042,1363286618,1363286362,1366909463,1363286106,1363285850,1363285594,1363285338,1363285082,1363284826,1695034666,1363284570,1363286619,1363284571,1363286620,1363284572,1529035354,1528969570,1363286621,1363284573,1363286622,1363284574,1363286623,1362629215,1362629216,1528969562,1528903778,1362629217,1362631266,1362631010,1362630754,1362630498,1362630242,1362629986,1528903770,1528837986,1362629730,1362629474,1362629218,1362696794,1362696538,1397186852,1531402789,1528837978,1527920482,1531337253,1531271717,1531206181,1531140645,1531075109,1531009573,1530944037,1527920474,1528772194,1530878501,1530812965,1695034411,1530747429,1530681893,1530616357,1695034156,1530550821,1695033685,1530485285,1530419749,1530354213,1530288677,1526939481,1530223141,1530157605,1530092069,1530026533,1358960954,1529960997,1529895461,1529829925,1529764389,1358960698,1529698853,1529633317,1529567781,1527133529,1695037732,1529502245,1529436709,1529371173,1529305637,1528051274,1529240101,1529174565,1665622053,1665620774,1665621798,1665621031,1527136089,1665621543,1665621288,1362696282,1362696026,1362695770,1362695514,1362695258,1362695002,1362694746,1362694747,1362694748,1362694749,1363284575,1363286624,1493701414,1366907415,1363284576,1363286625,1363284577,1363286626,1363286370,1363286114,1363285858,1363285602,1363285346,1363285090,1363284834,1363284578,1363352154,1363351898,1363351642,1363351386,1695033901,1363351130,1363350874,1363810914,1363810658,1695033429,1695033173,1363810402,1695032917,1695032661,1695032405,1363810146,1363809890,1363809634,1363809378,1363809122,1363808866,1363876442,1363876186,1363875930,1363875674,1363875418,1363875162,1363874906,1363874650,1363874394,1627921180,1627923229,1363939935,1363941985,1363941730,1363350618,1527133528,1363350362,1363350106,1528116811,1363352155,1363350107,1363352156,1363350108,1363352157,1363350109,1527136088,1363352158,1363350110,1363352159,1363350111,1363352160,1363350112,1363352161,1363350113,1363352162,1363351906,1363351650,1363351394,1363351138,1363350882,1363350626,1363350370,1363350114,1363417690,1363417434,1363417178,1363416922,1363416666,1363416410,1363416154,1363415898,1363415642,1363417691,1363415643,1363417692,1363415644,1363417693,1363415645,1363417694,1363415646,1363417695,1363415647,1363417696,1363415648,1627400475,1627400219,1627399963,1363417697,1363415649,1560815918,1627399707,1627399451,1627399195,1363417698,1363417442,1363417186,1363416930,1363416674,1363416418,1363416162,1363415906,1363415650,1363483226,1363482970,1527133527,1363482714,1363482458,1527985739,1363482202,1363481946,1363481690,1363481434,1363481178,1363483227,1527136087,1363481179,1363483228,1363481180,1363483229,1363481181,1363483230,1363481182,1363483231,1363481183,1362694750,1362694751,1362694752,1362694753,1363483232,1363481184,1363483233,1363481185,1363483234,1363482978,1363482722,1363482466,1363482210,1695033391,1363481954,1363481698,1363481442,1560815408,1363481186,1363548762,1363548506,1363548250,1363547994,1363547738,1363547482,1363547226,1363546970,1531402788,1531337252,1527133526,1531271716,1531206180,1528051275,1531140644,1531075108,1531009572,1530944036,1530878500,1530812964,1527136086,1530747428,1530681892,1530616356,1530550820,1530485284,1530419748,1530354212,1530288676,1530223140,1530157604,1530092068,1530026532,1529960996,1529895460,1529829924,1529764388,1529698852,1529633316,1529567780,1529502244,1529436708,1529371172,1529305636,1627919398,1366909464,1529240100,1529174564,1397186596,1665620773,1665621797,1665621030,1665621542,1665621287,1363546714,1363548763,1363546715,1363548764,1527133525,1363546716,1363548765,1363546717,1363548766,1393635920,1363876443,1363874395,1363876444,1363874396,1527136085,1627921181,1363939934,1627923230,1363941984,1363941474,1363546718,1363548767,1363546719,1363548768,1363546720,1363548769,1363546721,1363548770,1363548514,1363548258,1363548002,1363547746,1363547490,1363547234,1363546978,1363546722,1363614298,1363614042,1363613786,1363613530,1363613274,1363613018,1363612762,1363612506,1528772186,1728587329,1363612250,1363614299,1363612251,1363614300,1363612252,1363614301,1363612253,1363614302,1363612254,1363614303,1363612255,1527133524,1363614304,1363612256,1363614305,1363612257,1363614306,1527660624,1363614050,1363613794,1363613538,1527136084,1363613282,1363613026,1363612770,1363612514,1363612258,1363679834,1363679578,1363679322,1363679066,1363678810,1363678554,1363678298,1363678042,1363677786,1363679835,1363677787,1363679836,1363677788,1363679837,1363677789,1527985762,1363679838,1363677790,1363679839,1363677791,1363679840,1363677792,1363679841,1363677793,1527985754,1528051042,1363679842,1363679586,1363679330,1363679074,1363678818,1363678562,1363678306,1363678050,1363677794,1363745370,1363745114,1363744858,1363744602,1363744346,1363744090,1363743834,1363743578,1363743322,1363745371,1363743323,1363745372,1363743324,1363745373,1363743325,1363745374,1363743326,1363876445,1363874397,1363876446,1363874398,1627921182,1627923231,1627921183,1627923232,1363745375,1363743327,1363745376,1363743328,1527133523,1393636177,1363745377,1363743329,1363745378,1363745122,1363744866,1363744610,1527856977,1527791441,1363744354,1363744098,1363743842,1363743586,1366907416,1527136083,1397185316,1397186340,1665621029,1665621541,1665621286,1363876447,1363874399,1363876448,1366909465,1363874400,1363941983,1627921184,1627919654,1627923233,1363941986,1363743330,1531470382,1531601455,1531470383,1531468335,1531470384,1531468336,1531470385,1531468337,1531470386,1560814912,1531468338,1531470387,1531468339,1531470388,1531468340,1531470389,1531468341,1531535919,1531533871,1531535920,1531533872,1531535921,1531533873,1531535922,1527133522,1527725905,1527660369,1527594833,1527529297,1527463761,1662071890,1531533874,1531535923,1531533875,1527136082,1531535924,1531533876,1531535925,1531533877,1531601456,1531599408,1531601457,1531599409,1531601458,1531599410,1531601459,1531599411,1531601460,1531599412,1531601461,1531599413,1531664945,1531664946,1363876449,1363874401,1695032383,1363876450,1363876194,1363875938,1363875682,1363875426,1363875170,1363874914,1363874658,1363874402,1627921185,1627923234,1627921186,1627923235,1527133521,1627922979,1627922723,1627922467,1527854419,1527788883,1527723347,1527657811,1527592275,1527526739,1527136081,1627922211,1531664947,1531664948,1531664949,1531730482,1531730483,1531730484,1531730485,1531666995,1531732531,1531666994,1531666996,1531732530,1531732532,1531666993,1531666997,1531732533,1531798067,1531796019,1531798068,1531796020,1528051034,1531798069,1531796021,1528116322,1531863604,1531861556,1531863605,1397185572,1397186084,1665621285,1531861557,1531929141,1531927093,1531469374,1531534910,1531600446,1531665982,1531731518,1527133776,1527134032,1527134288,1527134544,1527134800,1527135056,1527135312,1527135568,1527135824,1531797054,1531862590,1531928126,1531469630,1531535166,1531600702,1531666238,1531731774,1531797310,1531862846,1531928382,1531469118,1531534654,1531600190,1531665726,1531731262,1531796798,1531862334,1531927870,1531470395,1397185828,1531535931,1531601467,1531667003,1531732539,1531798075,1531863611,1531929147,1531468347,1531533883,1560814141,1528116314,1531599419,1531664955,1531730491,1531796027,1531861563,1627398939,1627398683,1627398427,1627398171,1627397915,1627397659,1627397403,1627397147,1627396891,1531927099,1531470394,1531535930,1531601466,1531667002,1531732538,1531798074,1531863610,1531929146,1531468346,1531533882,1531599418,1531664954,1531730490,1531796026,1531861562,1531927098,1531469886,1531535422,1531600958,1531666494,1531732030,1531797566,1531863102,1531928638,1531468862,1531534398,1531599934,1531665470,1531731006,1531796542,1531862078,1531927614,1531470396,1531535932,1531601468,1531667004,1531732540,1531798076,1531863612,1531929148,1531468348,1528181602,1531533884,1531599420,1358961179,1358960923,1527461203,1531664956,1531730492,1531796028,1662070603,1526939476,1531861564,1358959643,1531927100,1531470393,1531535929,1531601465,1531667001,1531732537,1531798073,1531863609,1528181594,1531929145,1358960446,1531468345,1358960702,1358960958,1358961214,1531533881,1627396926,1627397182,1627397710,1627397454,1531599417,1531664953,1526936914,1531730489,1531796025,1528246882,1531861561,1531927097,1531470142,1728586044,1531535678,1531601214,1531666750,1531732286,1531797822,1531863358,1531928894,1531468606,1531534142,1531599678,1531665214,1531730750,1531796286,1531861822,1531927358,1531470397,1531535933,1531601469,1531667005,1531732541,1531798077,1531863613,1531929149,1531468349,1531533885,1531599421,1560813627,1531664957,1531730493,1531796029,1531861565,1531927101,1531470392,1531535928,1531601464,1531667000,1531732536,1531798072,1531863608,1531929144,1358959650,1531468344,1531533880,1531599416,1531664952,1695031098,1531730488,1531796024,1531861560,1531927096,1531470398,1358960930,1358961186,1627396898,1627397154,1627397410,1627397666,1627397922,1627398178,1627398434,1627398690,1627398946,1529109036,1529109292,1393634621,1627399202,1529109548,1529109804,1529110060,1529110316,1529110572,1528246874,1529110828,1529111084,1529109035,1529111083,1529109034,1528443234,1560813113,1529111082,1529109033,1529111081,1529109032,1529111080,1529109031,1627399458,1529111079,1529109030,1529111078,1529109029,1529111077,1529109028,1529111076,1627921955,1531535934,1531601470,1662070333,1531667006,1531732542,1531798078,1531863614,1531929150,1362696802,1627921699,1531468350,1531533886,1358959954,1531599422,1531664958,1531730494,1531796030,1531861566,1362696546,1363940962,1531927102,1362696290,1363940450,1362696034,1363940194,1627919910,1531470391,1531535927,1531601463,1531666999,1362695778,1363939938,1531732535,1531798071,1531863607,1531929143,1531468343,1531533879,1531599415,1728585016,1362695522,1363940706,1531664951,1531730487,1662070589,1627399714,1627399970,1627400226,1627400482,1531796023,1531861559,1531927095,1662070845,1531470390,1531535926,1362695266,1627921443,1531601462,1531666998,1531732534,1531798070,1531863606,1531929142,1531468342,1362695010,1627921187,1531533878,1531599414,1531664950,1531730486,1531796022,1531861558,1531927094,1662071101,1362694754,1529045575,1528980039,1528914503,1528848967,1528783431,1528717895,1528652359,1528586823,1528521287,1528455751,1528390215,1528324679,1662071357,1528259143,1528193607,1528128071,1528062535,1527996999,1529045574,1528980038,1528914502,1528848966,1528783430,1528717894,1528652358,1528586822,1528521286,1662071613,1528455750,1528390214,1528324678,1358961203,1627396915,1528259142,1528193606,1627397171,1528128070,1627397427,1528062534,1527996998,1529045573,1528980037,1528914501,1695032367,1528848965,1528783429,1560814896,1528717893,1528652357,1695032881,1528586821,1528521285,1528455749,1528390213,1528324677,1528259141,1528193605,1366907417,1366909466,1627920166,1528128069,1528062533,1527996997,1529045572,1528980036,1528914500,1528848964,1528783428,1528717892,1528652356,1528586820,1528521284,1528455748,1528390212,1528443226,1528312162,1528324676,1528259140,1528193604,1528128068,1528062532,1527996996,1529045571,1528312154,1528377442,1528980035,1528914499,1528848963,1528783427,1528717891,1528652355,1528586819,1528521283,1528455747,1528390211,1528324675,1528259139,1528193603,1528128067,1528062531,1527996995,1627920422,1366907418,1366710847,1529045570,1528980034,1528914498,1528848962,1528783426,1528717890,1528652354,1528586818,1528521282,1528455746,1528390210,1528324674,1528259138,1528193602,1528128066,1528062530,1527996994,1529043519,1528977983,1528912447,1493702950,1528846911,1528781375,1526939474,1528715839,1528650303,1528584767,1528519231,1528453695,1528388159,1528322623,1528257087,1528377434,1528191551,1528126015,1528060479,1366712895,1527994943,1529045569,1528980033,1528914497,1528848961,1528783425,1528717889,1528652353,1528586817,1528521281,1528455745,1528390209,1528324673,1528259137,1627920934,1528193601,1528128065,1528062529,1527996993,1627397683,1366909467,1366778461,1627918885,1366712922,1560815424,1529043775,1528978239,1528912703,1528847167,1528781631,1493701413,1528716095,1528650559,1528585023,1528519487,1528453951,1528388415,1528322879,1528257343,1528191807,1528126271,1528060735,1527995199,1529045568,1528980032,1528914496,1528848960,1695033407,1358960208,1528783424,1528717888,1528652352,1528586816,1528521280,1528455744,1528390208,1627919397,1528324672,1528259136,1528193600,1528128064,1528062528,1527996992,1366907419,1366710618,1695033662,1366710362,1366710106,1366709850,1366709594,1366909468,1366709338,1627919653,1560816189,1366709082,1366708826,1366708570,1366708314,1493702181,1366708058,1366707802,1366707546,1366707290,1529044031,1528978495,1528912959,1528847423,1528781887,1528716351,1528650815,1528585279,1528519743,1528454207,1528388671,1528323135,1528257599,1528192063,1528126527,1528060991,1527995455,1529045567,1528980031,1528914495,1528848959,1528783423,1627397939,1528717887,1528652351,1528586815,1528521279,1528455743,1528390207,1528324671,1528259135,1528193599,1528128063,1528062527,1527996991,1366707034,1366706778,1366706522,1366706266,1366706010,1366705754,1366705498,1366705242,1366704986,1366704730,1366704474,1366704218,1366703962,1366703706,1366703450,1366703194,1366702938,1366692447,1366712928,1529044287,1528978751,1528913215,1528847679,1528782143,1528716607,1528651071,1528585535,1528519999,1528454463,1528388927,1528323391,1528257855,1528192319,1528126783,1528061247,1527995711,1529045311,1528979775,1528914239,1528848703,1528783167,1528717631,1528652095,1528586559,1528521023,1528455487,1528389951,1528324415,1528258879,1528193343,1528127807,1528062271,1527996735,1366702682,1366702426,1366702170,1366701914,1366701658,1366701402,1366701146,1366700890,1366700634,1366700378,1366700122,1366699866,1366699610,1366699354,1366699098,1366698842,1366698586,1366692448,1366712929,1529044543,1528979007,1358960723,1528913471,1528847935,1528782399,1528716863,1528651327,1528585791,1528520255,1528454719,1528389183,1528323647,1528258111,1528192575,1528127039,1528061503,1527995967,1529045055,1528979519,1528913983,1528848447,1528782911,1528717375,1528651839,1528586303,1528520767,1528455231,1528389695,1528324159,1528258623,1528193087,1528127551,1528062015,1527996479,1366698330,1366698074,1366697818,1366697562,1366697306,1366697050,1366696794,1366696538,1366696282,1366696026,1366695770,1366695514,1366695258,1366695002,1366694746,1366694490,1366694234,1366692449,1366907420,1366909469,1366712930,1366712674,1366712418,1366712162,1366711906,1366711650,1366711394,1627398195,1366711138,1366710882,1366710626,1366710370,1366710114,1366709858,1366709602,1366709346,1366709090,1366708834,1366708578,1366708322,1627398451,1366708066,1366707810,1366707554,1366707298,1366707042,1627397447,1366706786,1366706530,1366706274,1366706018,1366705762,1366705506,1366705250,1366704994,1366907421,1366909470,1366704738,1366704482,1366704226,1366703970,1366703714,1366703458,1695035957,1366703202,1366702946,1366702690,1366702434,1366702178,1366701922,1366701666,1366701410,1366701154,1366700898,1366700642,1627399239,1366700386,1529044799,1528979263,1528913727,1528848191,1528782655,1528717119,1560818484,1528651583,1528586047,1528520511,1528454975,1528389439,1627398707,1358959698,1528323903,1528258367,1528192831,1528127295,1528061759,1527996223,1366693978,1560818739,1366693722,1366693466,1366693210,1366692954,1366692698,1366692442,1366712923,1695036452,1366700130,1627398963,1695036722,1366699874,1366699618,1366699362,1366699106,1366698850,1366698594,1366698338,1366698082,1366907422,1366909471,1366697826,1366697570,1366697314,1366697058,1366696802,1366696546,1366696290,1366907423,1366909472,1366696034,1366695778,1366695522,1366695266,1366695010,1366694754,1366694498,1366907424,1366909473,1366694242,1366693986,1366693730,1366693474,1366693218,1366692962,1366692706,1366907425,1366710846,1366692450,1366778386,1366778130,1366777874,1366777618,1366777362,1366777106,1366712894,1366909474,1366776850,1366776594,1366776338,1366757980,1366778387,1366776339,1366778460,1366907426,1366909475,1366757979,1366778388,1366776340,1366778459,1366757978,1366758234,1366758490,1366907427,1366909476,1366758746,1366759002,1366759258,1366759514,1366759770,1366760026,1366760282,1366760538,1560818469,1366760794,1695036977,1366761050,1366761306,1366761562,1366761818,1560818214,1366762074,1627399504,1560819504,1366762330,1366762586,1366762842,1366763098,1366763354,1695035687,1366763610,1366763866,1366764122,1728591919,1366764378,1366764634,1366764890,1366765146,1695035432,1366765402,1366765658,1627920165,1366765914,1366766170,1366766426,1366766682,1560817449,1366766938,1366767194,1366767450,1366767706,1366767962,1366768218,1366768474,1366768730,1366768986,1560817194,1366769242,1366769498,1695034667,1366769754,1366770010,1366770266,1366770522,1695034412,1366770778,1366771034,1366771290,1366771546,1366778389,1366776341,1695034157,1366771802,1366772058,1366772314,1366772570,1366772826,1366907428,1366909477,1366773082,1366773338,1366773594,1366773850,1366774106,1366774362,1366774618,1366907429,1366909478,1366774874,1366775130,1366775386,1366775642,1366775898,1366776154,1366778458,1366907430,1366909479,1366776409,1366778457,1366776408,1366778456,1366776407,1366778455,1366776406,1366907431,1366909480,1366778454,1366776405,1366778453,1366778390,1366776342,1366776404,1366778452,1366907432,1366710845,1366776403,1366778451,1366776402,1366778450,1366776401,1366778449,1366776400,1366712893,1366909481,1366778448,1366776399,1366778447,1366776398,1366778446,1366776397,1366778445,1366778391,1366776343,1366776396,1366778444,1560816174,1366776395,1366778443,1366776394,1366778442,1366776393,1560815919,1366778441,1366776392,1366778440,1366776391,1366778439,1366776390,1366778438,1695033392,1366776389,1366778437,1366907433,1366909482,1366778392,1366776344,1366776388,1366778436,1366776387,1366778435,1366776386,1695033137,1366778434,1366776385,1366778433,1366776384,1366778432,1366776383,1366778431,1530871386,1530871130,1530870874,1530870618,1560820014,1530870362,1530870106,1530869850,1695037997,1530869594,1530869338,1665087067,1665087068,1665087069,1665087070,1665087071,1665087072,1665087073,1530871394,1530871138,1530870882,1530870626,1530870370,1530870114,1530869858,1530869602,1530869346,1530936922,1695038252,1530936666,1530936410,1530936154,1530935898,1530935642,1366907434,1366909483,1530935386,1530935130,1665152859,1665152860,1665152861,1394825780,1665152862,1366907435,1366909484,1665152863,1665152864,1665152865,1530936930,1530936674,1530936418,1530936162,1366907436,1366909485,1530935906,1530935650,1530935394,1530935138,1531002458,1531002202,1531001946,1366907437,1366909486,1531001690,1531001434,1531001178,1531000922,1665218651,1665218652,1665218653,1366907438,1366909487,1665218654,1665218655,1665218656,1665218657,1531002466,1531002210,1531001954,1366907439,1366710844,1531001698,1531001442,1531001186,1531000930,1531067994,1531067738,1531067482,1531067226,1560820779,1531066970,1531066714,1665284443,1665284444,1560821034,1665284445,1366712892,1665284446,1665284447,1366909488,1394825779,1663261492,1665284448,1665284449,1531068002,1531067746,1531067490,1531067234,1695039017,1531066978,1531066722,1531133530,1531133274,1531133018,1531132762,1531132506,1665350235,1665350236,1366907440,1366909489,1665350237,1665350238,1665350239,1665350240,1665350241,1531133538,1531133282,1531133026,1531132770,1531132514,1531199066,1531198810,1531198554,1531198298,1665416027,1665416028,1665416029,1665416030,1665416031,1665416032,1662071869,1665416033,1531199074,1531198818,1531198562,1366907441,1531198306,1531264602,1366909490,1531264346,1531264090,1665481819,1393636669,1665481820,1665481821,1393636925,1665481822,1665481823,1665481824,1394825778,1663261491,1663261748,1366907442,1366909491,1665481825,1531264610,1531264354,1531264098,1531330138,1531329882,1665547611,1366907443,1366909492,1665547612,1665547613,1665547614,1665547615,1665547616,1665547617,1531330146,1366907444,1366909493,1531329890,1531395674,1665613403,1665613404,1665613405,1665613406,1665613407,1366907445,1366909494,1665613408,1665613409,1531395682,1531395930,1531396186,1531396442,1531396698,1366907446,1366710843,1531396954,1531397210,1531397466,1531397722,1531397978,1531397979,1531397980,1366712891,1366909495,1531397981,1531397982,1531397983,1531397984,1394825777,1663261490,1663261747,1531397985,1531395938,1531396194,1531396450,1531396706,1531396962,1662072637,1358960442,1358960186,1358959930,1358959674,1531397218,1531397474,1531397730,1366907447,1366909496,1531397986,1531330394,1531330650,1531330906,1531331162,1531331418,1663262004,1663263028,1366907448,1531331674,1531331930,1662072893,1531332186,1366909497,1531332187,1531332188,1531332189,1531332190,1531332191,1662073149,1531332192,1394825776,1663261489,1364007519,1663261746,1531332193,1531330402,1531330658,1531330914,1531331170,1531331426,1531331682,1364005470,1531331938,1531332194,1531264858,1663262003,1663263027,1663262260,1663262772,1531265114,1531265370,1531265626,1531265882,1531266138,1531266394,1531266395,1394825775,1663261488,1663261745,1531266396,1366907449,1366909498,1531266397,1531266398,1663262002,1663263026,1663262259,1663262771,1663262516,1366907450,1366909499,1394825774,1663261487,1663261744,1531266399,1531266400,1663262001,1663263025,1366907451,1366909500,1663262258,1663262770,1663262515,1531266401,1531264866,1531265122,1531265378,1366907452,1366909501,1531265634,1531265890,1531266146,1531266402,1531199322,1531199578,1531199834,1366907453,1366710842,1531200090,1531200346,1531200602,1663261486,1663261743,1531200603,1531200604,1366712890,1366909502,1663262000,1663263024,1663262257,1663262769,1663262514,1531200605,1531200606,1366907454,1366909503,1531200607,1663261742,1531200608,1531200609,1531199330,1627920421,1531199586,1531199842,1531200098,1531200354,1531200610,1531133786,1531134042,1531134298,1695032368,1663261999,1663263023,1663262256,1663262768,1663262513,1531134554,1531134810,1531134811,1531134812,1531134813,1531134814,1531134815,1531134816,1663261998,1663263022,1663262255,1663262767,1695032625,1663262512,1529045548,1528980012,1528914476,1366907455,1528848940,1528783404,1528717868,1528652332,1528586796,1528521260,1528455724,1528390188,1528324652,1528259116,1528193580,1528128044,1528062508,1527996972,1531134817,1531133794,1531134050,1531134306,1531134562,1531134818,1531068250,1531068506,1531068762,1531069018,1531069019,1531069020,1531069021,1531069022,1531069023,1663262254,1663262766,1663262511,1366909504,1529045547,1528980011,1528914475,1528848939,1528783403,1528717867,1528652331,1366907456,1366909505,1528586795,1528521259,1528455723,1528390187,1528324651,1528259115,1528193579,1366907457,1366909506,1528128043,1528062507,1527996971,1531069024,1531069025,1531068258,1531068514,1366907458,1366909507,1531068770,1531069026,1531002714,1531002970,1531003226,1531003227,1531003228,1366907459,1366909508,1531003229,1531003230,1531003231,1531003232,1531003233,1663262510,1529045546,1366907460,1366710841,1528980010,1528914474,1528848938,1528783402,1528717866,1528652330,1528586794,1366712889,1366909509,1528521258,1528455722,1528390186,1528324650,1528259114,1528193578,1528128042,1528062506,1527996970,1531002722,1531002978,1531003234,1530937178,1530937434,1530937435,1560815154,1530937436,1530937437,1530937438,1530937439,1530937440,1529045545,1528980009,1528914473,1528848937,1528783401,1528717865,1528652329,1528586793,1528521257,1528455721,1528390185,1528324649,1528259113,1528193577,1493702949,1528128041,1528062505,1527996969,1529045544,1627920933,1528980008,1528914472,1528848936,1528783400,1528717864,1528652328,1528586792,1528521256,1528455720,1528390184,1528324648,1528259112,1528193576,1528128040,1528062504,1527996968,1529045543,1528980007,1528914471,1528848935,1528783399,1528717863,1528652327,1528586791,1528521255,1627400263,1528455719,1528390183,1528324647,1528259111,1528193575,1366907461,1366909510,1528128039,1528062503,1527996967,1530937441,1530937186,1530937442,1530871642,1366907462,1366909511,1530871643,1530871644,1530871645,1530871646,1530871647,1530871648,1530871649,1366907463,1366909512,1530871650,1529045531,1528979995,1528914459,1528848923,1528783387,1528717851,1366907464,1366909513,1528652315,1528586779,1528521243,1528455707,1528390171,1528324635,1528259099,1366907465,1366909514,1528193563,1528128027,1528062491,1527996955,1529045542,1528980006,1528914470,1366907466,1366909515,1528848934,1528783398,1528717862,1528652326,1528586790,1528521254,1528455718,1366907467,1366710840,1528390182,1528324646,1528259110,1528193574,1528128038,1528062502,1527996966,1530225246,1529045532,1528979996,1528914460,1528848924,1528783388,1528717852,1528652316,1528586780,1627398983,1528521244,1528455708,1528390172,1528324636,1528259100,1528193564,1528128028,1528062492,1527996956,1529045541,1528980005,1528914469,1528848933,1528783397,1528717861,1528652325,1528586789,1528521253,1528455717,1528390181,1528324645,1528259109,1528193573,1528128037,1528062501,1627918884,1527996965,1530028641,1529697627,1529697883,1529045533,1528979997,1528914461,1528848925,1528783389,1528717853,1528652317,1528586781,1528521245,1528455709,1528390173,1528324637,1528259101,1528193565,1528128029,1528062493,1527996957,1529045540,1528980004,1528914468,1528848932,1528783396,1528717860,1528652324,1366712888,1366909516,1528586788,1528521252,1528455716,1528390180,1528324644,1528259108,1528193572,1366907468,1366909517,1528128036,1528062500,1527996964,1529698139,1529698395,1529698651,1529698907,1366907469,1366909518,1529699163,1529699419,1529699675,1529766496,1531076400,1529045534,1528979998,1366907470,1366909519,1528914462,1528848926,1528783390,1528717854,1528652318,1528586782,1528521246,1366907471,1366909520,1528455710,1528390174,1528324638,1528259102,1528193566,1528128030,1528062494,1366907472,1366909521,1527996958,1531077168,1530879533,1531076912,1531076656,1531076144,1531141937,1366907473,1530944814,1366909522,1530945070,1529104482,1529104738,1529167714,1529102178,1529102434,1530878509,1530880045,1530878765,1531140657,1529045539,1627397198,1528980003,1528914467,1528848931,1528783395,1627400493,1627400237,1627399981,1627399725,1528717859,1528652323,1627399469,1528586787,1528521251,1627399213,1528455715,1528390179,1528324643,1627398957,1627398701,1627398445,1627398189,1627397933,1627397677,1627397421,1627397165,1627396909,1358961197,1358960941,1358960685,1358960429,1358960173,1358959917,1358959661,1493701412,1528259107,1528193571,1528128035,1528062499,1527996963,1529045535,1528979999,1528914463,1528848927,1528783391,1528717855,1528652319,1528586783,1528521247,1366907474,1366710839,1528455711,1528390175,1528324639,1528259103,1528193567,1528128031,1528062495,1527996959,1366712887,1366909523,1529045538,1528980002,1528914466,1528848930,1528783394,1528717858,1528652322,1366907475,1366909524,1528586786,1528521250,1528455714,1528390178,1528324642,1528259106,1528193570,1366907476,1366909525,1528128034,1528062498,1527996962,1529045536,1528980000,1528914464,1528848928,1366907477,1366909526,1528783392,1528717856,1528652320,1528586784,1528521248,1528455712,1528390176,1366907478,1366909527,1528324640,1528259104,1528193568,1528128032,1528062496,1527996960,1529045537,1366907479,1366909528,1528980001,1528914465,1528848929,1528783393,1528717857,1528652321,1528586785,1366907480,1366909529,1528521249,1528455713,1528390177,1528324641,1528259105,1627919396,1528193569,1528128033,1528062497,1527996961,1527931463,1527931462,1527931461,1527931460,1527931459,1366907481,1366710838,1527931458,1527931457,1527931456,1527929407,1527929663,1527929919,1527930175,1366712886,1366909530,1527930431,1527930687,1527930943,1527931199,1527931455,1532125758,1532060221,1532125750,1627919652,1532060215,1530356287,1530290752,1530290751,1530356296,1530356295,1529832032,1530159711,1529699931,1529700187,1529700443,1529700699,1529700955,1366907226,1627919908,1529958754,1529959010,1366906970,1366906714,1366906458,1366906202,1366905946,1529959266,1366905690,1366905434,1366905178,1531011631,1366904922,1366904666,1529041506,1663259233,1663259232,1526882843,1531011375,1531010607,1531207474,1531011119,1529827681,1531075888,1530880301,1530944046,1530944302,1530880557,1531075120,1531141425,1531009839,1530290761,1530290760,1530290759,1530290758,1530356305,1530356304,1530290770,1530290769,1530225244,1529893217,1527931436,1527931435,1527931434,1527931433,1527931432,1527931431,1527931430,1527931429,1527931428,1527931427,1527931426,1527931425,1527931424,1527931423,1527931422,1527931421,1527931420,1527931419,1527341606,1527337254,1527669284,1527341638,1527734855,1527734821,1527800390,1527800358,1527865925,1527865895,1527538212,1527472711,1527472677,1527407174,1527402790,1663259231,1663259230,1663259229,1663259228,1663259227,1529041498,1528976226,1527407142,1527337285,1527341637,1527337255,1527341607,1527603748,1527669319,1527669285,1527734854,1527734822,1527407141,1528910946,1527800389,1527800359,1527865924,1527865896,1527538247,1527538213,1527472710,1527468326,1528845666,1527472678,1527402821,1527407173,1527402791,1527407143,1527337284,1366904410,1366904154,1366903898,1366903642,1366903386,1627920164,1366903130,1527341636,1527337256,1527341608,1527603783,1527603749,1527669318,1527669286,1527734853,1627920420,1527734823,1526948436,1527407175,1527800388,1527800360,1527865923,1530094176,1527865897,1527538246,1366902874,1366902618,1527533862,1527538214,1493702948,1527468357,1527472709,1527468327,1527472679,1527402820,1526882844,1527407172,1527402792,1527407144,1527337283,1527341635,1527337257,1527341609,1527603782,1527603750,1527669317,1527669287,1527734852,1527734824,1527472676,1527800387,1527800361,1527865922,1529959522,1527865898,1527533893,1527538245,1527533863,1527538215,1527468356,1527472708,1527468328,1527472680,1527402819,1527407171,1527402793,1527407145,1527337282,1527341634,1527337258,1527341610,1527603781,1527599399,1527603751,1527669316,1527669288,1527734851,1527734825,1527865894,1527800386,1529959778,1527800362,1527865921,1529960034,1527865899,1527533892,1527538244,1527533864,1527538216,1527468355,1527472707,1527468329,1366902362,1366902106,1358961192,1527472681,1627920932,1527402818,1527407170,1529960290,1527402794,1527407146,1527337281,1527341633,1527337259,1527341611,1527599428,1527603780,1527599400,1527603752,1527669315,1527928162,1527669289,1527734850,1527734826,1527865926,1527800385,1529960546,1527800363,1527865920,1529960802,1527865900,1527533891,1527538243,1527533865,1527538217,1527468354,1527472706,1527468330,1527472682,1527402817,1527407169,1527402795,1358959677,1527407147,1527337280,1527341632,1527337260,1527341612,1358959933,1358960189,1358960445,1358960701,1358960957,1358961213,1527599427,1627396925,1627397181,1627397437,1527603779,1527599401,1527603753,1627397693,1527669314,1627918883,1366901850,1366901594,1527669290,1358960936,1527734849,1527734827,1526882845,1527800357,1527800384,1529961058,1527800364,1527863871,1527864127,1527864383,1527864639,1527864895,1527865151,1527865407,1527865663,1527865919,1529766490,1529696607,1527533890,1527538242,1527533866,1527538218,1527468353,1527472705,1527468331,1527472683,1527402816,1527407168,1527402796,1527407148,1527337279,1527339583,1527339839,1527340095,1527340351,1527340607,1527340863,1527341119,1527341375,1527341631,1527337261,1527341613,1527599426,1527603778,1527599402,1527603754,1527669313,1527669291,1527734848,1527734828,1527800391,1527798335,1527798591,1527798847,1527799103,1527799359,1527799615,1527799871,1527800127,1527800383,1531206194,1530945582,1358960680,1493701411,1366901338,1366901082,1531075376,1531009583,1531206962,1530945838,1530879021,1527863614,1530290768,1530290767,1530356313,1530290777,1530290776,1529176666,1529111131,1527533889,1527538241,1527533867,1527538219,1527468352,1527472704,1527468332,1527472684,1527402815,1527405119,1627919395,1366900826,1366900570,1527405375,1527405631,1527405887,1627399248,1366900314,1366900058,1627399507,1366899802,1366899546,1366899290,1366899034,1366898778,1366898522,1366898266,1527406143,1527406399,1527406655,1527406911,1527407167,1527402797,1527407149,1527337278,1527339326,1527337262,1527341614,1527599425,1527603777,1527599403,1627919651,1366898010,1366897754,1527603755,1527669312,1527669292,1493702179,1366897498,1526882846,1527732799,1527733055,1527733311,1527733567,1527733823,1527734079,1527734335,1527734591,1527734847,1527734829,1527734820,1527798078,1527863613,1527533888,1527538240,1527533868,1527538220,1527468351,1527470655,1527470911,1527471167,1527471423,1527471679,1527471935,1527472191,1527472447,1527472703,1527468333,1527472685,1527402814,1527404862,1366692446,1366712927,1527402798,1527407150,1527337277,1527339325,1527337263,1527341615,1527599424,1527603776,1527599404,1527603756,1527667263,1527667519,1527667775,1527668031,1527668287,1527668543,1527668799,1527669055,1527669311,1527669293,1527732542,1527734830,1527341605,1366897242,1366896986,1366896730,1366896474,1527798077,1529961314,1529961570,1529961826,1528780386,1529962082,1529962338,1527863612,1366896218,1366895962,1529962594,1529696863,1529697119,1529697375,1627397668,1627397924,1627398180,1529697631,1627398436,1366895706,1529697887,1529698143,1527533887,1527536191,1527536447,1627398692,1366895450,1627398948,1366895194,1627399204,1627399460,1627399716,1627399972,1627400228,1627400484,1527536703,1527536959,1527537215,1358960424,1527537471,1627920163,1527537727,1366894938,1366894682,1527537983,1527538239,1527533869,1527538221,1527468350,1527470398,1529043485,1627920419,1366894426,1366894170,1527468334,1527472686,1527402813,1527404861,1493702947,1366893914,1366893658,1366692443,1529043487,1527402799,1695036708,1526882847,1527407151,1527337276,1527339324,1366712924,1527337264,1527341616,1527599423,1527601727,1527601983,1527602239,1527602495,1527602751,1527603007,1527603263,1527603519,1527603775,1527599405,1527603757,1527667006,1527669294,1527732541,1529043230,1527734831,1527341639,1527798076,1531140913,1530946094,1530944558,1530879789,1531206450,1527863611,1531010095,1529111130,1529176674,1529111137,1529111138,1529110882,1529174370,1529832026,1527533886,1527535934,1527533870,1527538222,1527468349,1527470397,1527468335,1527472687,1527402812,1527404860,1529043488,1527402800,1527407152,1527337275,1527339323,1527337265,1527341617,1527599422,1358960168,1527601470,1527599406,1527603758,1527667005,1529043231,1527669295,1527732540,1527993954,1527734832,1527407140,1627920931,1527798075,1529762143,1366893402,1366893146,1527863610,1530159707,1527533885,1527535933,1527533871,1358959912,1527538223,1527468348,1560818725,1527470396,1529043228,1529043489,1527468336,1527472688,1527402811,1527404859,1527402801,1527407153,1527337274,1527339322,1527799861,1527865397,1527930933,1527996469,1528062005,1528127541,1528193077,1528258613,1527337266,1627397703,1527341618,1527599421,1560815168,1527601469,1528324149,1528389685,1528455221,1528520757,1528586293,1528651829,1528717365,1528715106,1528782901,1527599407,1527603759,1527667004,1528848437,1528913973,1528979509,1529045045,1528059746,1527669296,1526882848,1527732539,1527734833,1527865893,1527798074,1529962850,1529963106,1530024289,1529698399,1529698655,1529698911,1529699167,1527863609,1529699423,1529832033,1529762144,1531208242,1531207986,1531075632,1527533884,1527535932,1529043232,1527533872,1527538224,1527468347,1527470395,1527468337,1527472689,1527402810,1527404858,1530945326,1527402802,1527407154,1527337273,1527339321,1529043233,1527337267,1527341619,1527599420,1527601468,1527599408,1527603760,1527667003,1527669297,1527732538,1527800117,1527865653,1527931189,1527996725,1528062261,1528127797,1528193333,1528258869,1527734834,1527865927,1527798073,1531207730,1529174626,1529108578,1529108834,1529109090,1529109346,1527863608,1527533883,1527535931,1528324405,1528389941,1528455477,1528649826,1528521013,1528586549,1528652085,1528717621,1528783157,1460155174,1527533873,1527538225,1527468346,1527470394,1528848693,1528914229,1528979765,1529045301,1528125538,1527799605,1527865141,1527930677,1527996213,1527468338,1527472690,1527402809,1527404857,1528061749,1528127285,1528584546,1528192821,1528258357,1528323893,1366892890,1528389429,1528454965,1528520501,1527402803,1527407155,1527337272,1528191330,1527339320,1528586037,1528651573,1528717109,1528782645,1528848181,1528913717,1528979253,1528519266,1529044789,1527341620,1527599419,1527601467,1529043234,1527599409,1527603761,1527667002,1528257122,1527669298,1527732537,1526882849,1527734835,1527800356,1527798072,1529699679,1527863607,1529699935,1529700191,1529700447,1531141169,1531142705,1531142449,1531206706,1529172066,1529172322,1529106274,1529106530,1529897569,1529827680,1527533882,1527535930,1529043486,1529043235,1527533874,1527538226,1527468345,1527470393,1527468339,1527472691,1527402808,1527404856,1530094170,1527407156,1527339319,1529043236,1527339573,1527339829,1527340085,1527340341,1527340597,1527340853,1527341109,1527341365,1527341621,1527599418,1527601466,1527800373,1527865909,1527931445,1527996981,1527599410,1527603762,1527667001,1528062517,1528128053,1528193589,1528259125,1528324661,1528390197,1528455733,1528521269,1527669299,1527732536,1528453986,1528586805,1528652341,1528717877,1528783413,1528848949,1366892634,1528914485,1366892378,1528980021,1529045557,1366892122,1527734836,1627918882,1527341604,1527798071,1529700703,1366891866,1529700959,1528322914,1529696603,1531010863,1531142193,1531207218,1529106786,1529107042,1627396942,1529169762,1527863606,1528388706,1529696859,1529697115,1531010351,1530879277,1529170018,1527533881,1527535929,1527799349,1529035618,1527864885,1527930421,1527995957,1528061493,1528127029,1528192565,1528258101,1529035610,1528969826,1527533875,1527538227,1527468344,1527470392,1528323637,1528389173,1528454709,1528969818,1528904034,1528520245,1528585781,1528651317,1528716853,1528782389,1527472692,1526882850,1527404855,1528847925,1528913461,1528978997,1529044533,1527405109,1527405365,1527405621,1527405877,1527406133,1527406389,1527406645,1527406901,1527407157,1527339318,1527599417,1527601465,1527603763,1527667000,1529043237,1527669300,1527732535,1527732789,1527733045,1527733301,1527733557,1527733813,1527734069,1527734325,1527734581,1527734837,1527798070,1529103970,1529697371,1527533880,1527535928,1527865892,1527538228,1527470391,1529043238,1527800372,1527865908,1527470645,1527470901,1527471157,1527471413,1527471669,1527471925,1527472181,1527472437,1527472693,1527404854,1527931444,1527996980,1528062516,1528128052,1528193588,1528259124,1528324660,1528904026,1528838242,1528390196,1527601464,1528455732,1528521268,1528586804,1528652340,1528717876,1528783412,1528848948,1695032634,1528914484,1527603764,1527666999,1528980020,1528838234,1527920738,1529045556,1527799093,1527864629,1527930165,1527995701,1528061237,1528126773,1527920730,1528772450,1527667253,1527667509,1527667765,1527668021,1527668277,1527668533,1527668789,1527669045,1528772442,1527986018,1527669301,1527732534,1528192309,1528257845,1528323381,1528388917,1528454453,1527986010,1528706658,1528519989,1528585525,1528651061,1531141681,1527535927,1528716597,1528782133,1528706650,1528051298,1528847669,1528913205,1528978741,1529044277,1527536181,1527536437,1527536693,1528051290,1528116578,1527536949,1527537205,1526882851,1527537461,1527537717,1527537973,1527538229,1527470390,1527601463,1529043229,1527601717,1527601973,1527602229,1527602485,1527602741,1527602997,1527603253,1527603509,1527603765,1527666998,1529043239,1527535926,1527601462,1527800371,1527865907,1527931443,1527996979,1528062515,1528128051,1528193587,1530274138,1530273882,1530273626,1530273370,1530273114,1530272858,1530272602,1530340186,1530339930,1463230811,1463230555,1463230299,1463230043,1463229787,1530338394,1530338138,1530405722,1530405466,1530405210,1530404954,1530404698,1530404442,1530404186,1530403930,1530403674,1530471258,1530471002,1463361883,1697995062,1530157366,1530091830,1530026294,1529960758,1529895222,1529829686,1529764150,1528116570,1528181858,1529698614,1529633078,1529567542,1560815163,1695036718,1529502006,1529436470,1695032639,1529370934,1529305398,1529239862,1529174326,1697995075,1463361627,1463361371,1463361115,1463360859,1528181850,1528247138,1530469466,1530469210,1530536794,1530536538,1530536282,1530536026,1530535770,1530535514,1530535258,1530535002,1530534746,1697995063,1529633079,1529567543,1529502007,1529436471,1529370935,1528247130,1528443490,1529305399,1529239863,1529174327,1697994806,1530157110,1530091574,1530026038,1528443482,1528312418,1529960502,1529894966,1529829430,1529763894,1529698358,1529632822,1529567286,1528312410,1528377698,1529501750,1529436214,1529370678,1529305142,1526882852,1529239606,1529174070,1697995074,1697994819,1530602330,1530602074,1463492955,1463492699,1463492443,1463492187,1463491931,1530600538,1530600282,1530667866,1530667610,1530667354,1530667098,1530666842,1530666586,1530666330,1697995064,1529633080,1529567544,1529502008,1529436472,1529370936,1529305400,1529239864,1529174328,1563777079,1697993014,1530155318,1530089782,1530024246,1529958710,1529893174,1529827638,1529762102,1529696566,1529631030,1529565494,1529499958,1529434422,1529368886,1529303350,1529237814,1529172278,1697994550,1530156854,1530091318,1530025782,1529960246,1529894710,1529829174,1529763638,1529698102,1529632566,1529567030,1529501494,1529435958,1528377690,1366891610,1366891354,1366710837,1529370422,1529304886,1529239350,1529173814,1697995073,1563777090,1697993027,1366712885,1366891098,1530155331,1530089795,1530024259,1529958723,1366890842,1366890586,1366890330,1366890074,1493701410,1366889818,1529893187,1366889562,1529827651,1529762115,1529696579,1529631043,1560818215,1366889306,1366889050,1366909531,1529565507,1529499971,1529434435,1529368899,1529303363,1529237827,1529172291,1697994563,1530666074,1530665818,1530733402,1530733146,1463624027,1463623771,1463623515,1463623259,1463623003,1530731610,1530731354,1396581217,1396581216,1396581215,1396581214,1697995065,1529633081,1529567545,1529502009,1529436473,1529370937,1529305401,1529239865,1529174329,1526882853,1563777080,1697993015,1530155319,1530089783,1530024247,1529958711,1529893175,1529827639,1529762103,1529696567,1529631031,1529565495,1529499959,1529434423,1529368887,1529303351,1529237815,1529172279,1563776823,1697993270,1530155574,1530090038,1530024502,1529958966,1529893430,1529827894,1529762358,1529696822,1529631286,1529565750,1529500214,1529434678,1529369142,1529303606,1529238070,1529172534,1697994294,1530156598,1530091062,1530025526,1529959990,1529894454,1529828918,1529763382,1529697846,1529632310,1529566774,1529501238,1529435702,1529370166,1529304630,1529239094,1529173558,1697995072,1563777089,1697993026,1530155330,1530089794,1530024258,1529958722,1529893186,1529827650,1529762114,1529696578,1529631042,1529565506,1529499970,1529434434,1529368898,1529303362,1529237826,1529172290,1563776834,1697993283,1697994307,1396581213,1396581212,1396581211,1530798938,1665016417,1665016416,1665016415,1665016414,1665016413,1665016412,1665016411,1627919394,1530798682,1665016161,1665016160,1665016159,1665016158,1665016157,1665016156,1665016155,1530798426,1366710836,1665015905,1665015904,1695032382,1665015903,1665015902,1665015901,1529041250,1394823521,1394823520,1394823519,1394823518,1394823517,1394823516,1394823515,1529041242,1528975970,1665015900,1665015899,1530798170,1665015649,1665015648,1665015647,1665015646,1665015645,1528910690,1665015644,1665015643,1530797914,1526882854,1665015393,1665015392,1665015391,1665015390,1665015389,1665015388,1665015387,1530797658,1665015137,1665015136,1665015135,1665015134,1665015133,1665015132,1665015131,1697995066,1529633082,1529567546,1529502010,1529436474,1529370938,1529305402,1529239866,1529174330,1563777081,1697993016,1530155320,1530089784,1530024248,1529958712,1529893176,1529827640,1529762104,1529696568,1529631032,1529565496,1529499960,1529434424,1529368888,1529303352,1529237816,1529172280,1731548984,1563775543,1563776567,1697993526,1530155830,1530090294,1530024758,1529959222,1529893686,1529828150,1529762614,1529697078,1529631542,1529566006,1529500470,1529434934,1529369398,1529303862,1529238326,1529172790,1528845410,1697994038,1530156342,1530090806,1530025270,1529959734,1529894198,1529828662,1529763126,1527927906,1529697590,1529632054,1529566518,1529500982,1529435446,1529369910,1529304374,1529238838,1528780130,1529173302,1697995071,1563777088,1697993025,1530155329,1530089793,1530024257,1529958721,1527993698,1529893185,1529827649,1695036973,1529762113,1529696577,1529631041,1529565505,1529499969,1529434433,1529368897,1529303361,1529237825,1529172289,1463113537,1563775554,1563776578,1528714850,1697993539,1697994051,1530797402,1665014881,1665014880,1665014879,1665014878,1665014877,1665014876,1528059490,1665014875,1530797146,1530796897,1530796896,1530796895,1530796894,1530796893,1530796892,1526882855,1530796891,1530796890,1697995067,1529633083,1529567547,1529502011,1529436475,1529370939,1529305403,1529239867,1529174331,1697994810,1697993017,1530155321,1530089785,1530024249,1529958713,1529893177,1529827641,1529762105,1529696569,1529631033,1529565497,1529499961,1529434425,1529368889,1529303353,1529237817,1529172281,1563776825,1563775544,1563776568,1563775799,1697994039,1697993782,1530156086,1530090550,1530025014,1529959478,1529893942,1529828406,1529762870,1529697334,1529631798,1529566262,1529500726,1529435190,1529369654,1529304118,1529238582,1529173046,1697995070,1529633086,1529567550,1529502014,1529436478,1528649570,1529370942,1529305406,1529239870,1529174334,1697994815,1697993024,1530155328,1530089792,1528125282,1530024256,1529958720,1529893184,1529827648,1529762112,1529696576,1529631040,1529565504,1528584290,1529499968,1529434432,1529368896,1529303360,1529237824,1529172288,1563776832,1563775553,1528191074,1563776577,1563775810,1697994050,1697993795,1697995068,1529633084,1529567548,1529502012,1529436476,1528519010,1529370940,1529305404,1529239868,1529174332,1563777083,1697993018,1530155322,1493701922,1530089786,1530024250,1627919906,1529958714,1529893178,1529827642,1529762106,1528256866,1529696570,1529631034,1529565498,1529499962,1529434426,1529368890,1529303354,1529237818,1528453730,1529172282,1697994554,1563775545,1563776569,1463112504,1697994040,1526882856,1563776055,1697995069,1529633085,1529567549,1529502013,1529436477,1529370941,1529305405,1529239869,1529174333,1697994814,1697993023,1530155327,1530089791,1530024255,1529958719,1529893183,1529827647,1529762111,1529696575,1529631039,1529565503,1529499967,1529434431,1529368895,1529303359,1529237823,1529172287,1697994559,1563775552,1563776576,1731547969,1697994049,1563776066,1563777084,1697993019,1530155323,1530089787,1530024251,1529958715,1529893179,1529827643,1529762107,1529696571,1529631035,1529565499,1529499963,1529434427,1529368891,1529303355,1529237819,1529172283,1563776827,1697993274,1697994298,1563775801,1697994041,1563776056,1528322658,1563777085,1697993022,1530155326,1530089790,1530024254,1529958718,1529893182,1529827646,1528388450,1529762110,1529696574,1529631038,1529565502,1529499966,1529434430,1529368894,1529303358,1529237822,1529172286,1697994558,1529035874,1697993279,1697994303,1563775808,1697994048,1563776065,1697993020,1530155324,1529035866,1528970082,1530089788,1530024252,1529958716,1493702434,1529893180,1529827644,1529762108,1529696572,1529631036,1528970074,1528904290,1529565500,1529499964,1529434428,1529368892,1529303356,1695035688,1529237820,1529172284,1463113532,1563775547,1563776571,1697993530,1528904282,1528838498,1697994042,1563776057,1697993021,1530155325,1530089789,1530024253,1529958717,1528838490,1527920994,1529893181,1529827645,1526882857,1529762109,1529696573,1529631037,1529565501,1529499965,1529434429,1529368893,1529303357,1529237821,1529172285,1563776829,1697993278,1697994302,1697993535,1697994047,1563776064,1563775548,1563776572,1563775803,1697994043,1697993786,1563775549,1563776573,1697993534,1697994046,1697993791,1731547964,1697994044,1563776059,1563775805,1697994045,1697993790,1563776060,1563776061,1529106759,1529106758,1529106757,1529106756,1529106755,1529106754,1529106753,1529106752,1529106751,1529106750,1529108798,1529106749,1529108797,1529106748,1529108796,1529106747,1529108795,1529106746,1529108794,1529106745,1529108793,1529106744,1529108792,1529106743,1529108791,1529106742,1529106998,1529107254,1527920986,1528772706,1529107510,1529107766,1529108022,1529108278,1529108534,1529108790,1529104226,1529963101,1529043227,1394825251,1528772698,1527986274,1663260706,1663260705,1663260704,1663260703,1663260702,1663260701,1663260700,1527986266,1528706914,1529042971,1528977691,1367106123,1394824995,1663260450,1663260449,1663260448,1663260447,1663260446,1663260445,1528706906,1528051554,1663260444,1529042715,1528977435,1529897565,1528912155,1394823715,1663259170,1695037228,1663259169,1663259168,1627920418,1366712884,1663259167,1528051546,1528641122,1663259166,1663259165,1663259164,1529041435,1367104074,1665752366,1394824739,1528641114,1528116834,1663260194,1663260193,1663260192,1663260191,1526882858,1663260190,1663260189,1663260188,1529042459,1528977179,1528911899,1528846619,1394823971,1663259426,1663259425,1663259424,1663259423,1663259422,1663259421,1663259420,1529041691,1528975899,1365467672,1367106122,1367104073,1365533208,1394824483,1663259938,1663259937,1663259936,1663259935,1663259934,1663259933,1663259932,1529042203,1528976923,1528911643,1528846363,1530028637,1528781083,1394824227,1663259682,1663259681,1663259680,1663259679,1663259678,1663259677,1663259676,1529041947,1528976155,1528910363,1365598744,1665752110,1359234321,1359294225,1367106121,1367104072,1365664280,1528976667,1528911387,1528846107,1528780827,1528715547,1529963100,1527929115,1528976411,1528910619,1528844831,1528844827,1365729816,1359295249,1359296529,1365795352,1528911131,1527067993,1661879115,1528845851,1528780571,1528715291,1662070858,1527928859,1528650011,1527994651,1528910875,1527070553,1528845087,1528845083,1528779296,1530021973,1528779294,1528779291,1365860888,1359230993,1359297553,1359298833,1365926424,1365991960,1367106120,1367104071,1528845595,1528780315,1528715035,1527928603,1528649755,1527994395,1529963102,1528584475,1528060187,1528845343,1528845339,1528779552,1529956440,1528779550,1528779547,1528713761,1530087510,1530153047,1697990744,1528713757,1527079513,1528713755,1493702946,1527927323,1359232017,1627920930,1359299857,1359359761,1665751854,1528116826,1528182114,1526882859,1366960988,1366960987,1366960737,1366960736,1366960735,1366960734,1528780063,1528780059,1528714779,1527928347,1528649499,1527994139,1528584219,1528059931,1529832029,1528518939,1528125723,1528779808,1529563220,1528779806,1528779803,1528714017,1529890903,1529825366,1529759829,1528714013,1528714011,1527927579,1528648225,1529694291,1529628754,1529563217,1528648221,1528648219,1527992859,1366960733,1367106119,1366647367,1359233297,1359360017,1359360273,1366647111,1366646855,1366960732,1366960731,1366646599,1366646343,1366646087,1366645831,1366645575,1366645319,1367104070,1528714528,1528714527,1528714526,1528714523,1527928091,1528649243,1527993883,1528583963,1528059675,1528518683,1528125467,1529827677,1529897564,1528453403,1528191259,1528714273,1529956433,1530021970,1530087507,1527067992,1528714269,1528714267,1527927835,1528648481,1529694292,1661878858,1529825361,1529890898,1528648477,1528648475,1527993115,1528582689,1530153049,1527070552,1530087512,1627918881,1530021975,1528582685,1528582683,1528058395,1531470381,1531994682,1359360529,1359360785,1531994681,1366960481,1366960480,1366960479,1366960478,1366960477,1366960476,1367106118,1528648992,1528648991,1528648990,1528648987,1527993627,1528583707,1528059419,1528518427,1528125211,1528453147,1528191003,1529897566,1528387867,1528256795,1528648737,1530153044,1697990741,1529497683,1528648733,1527079512,1560819755,1526882860,1528648731,1527993371,1528582945,1529956435,1530021972,1530087509,1528582941,1528582939,1528058651,1528517153,1529956438,1529890901,1529825364,1528517149,1528517147,1528123936,1528123935,1528123934,1528123931,1367104069,1366960475,1366960225,1366960224,1359362065,1359362321,1366960223,1366960222,1359362577,1359362833,1366960221,1528583456,1528583455,1528583454,1528583451,1528059163,1528518171,1528124955,1528452891,1528190747,1528387611,1528256539,1528322331,1528583201,1529432146,1529366609,1529956441,1528583197,1528583195,1528058907,1528517409,1530153046,1697990743,1529628755,1528517405,1528517403,1528124192,1528124191,1528124190,1493701409,1528124187,1528451617,1529694289,1529759826,1529825363,1528451613,1528451611,1528189473,1367106117,1367104068,1528189469,1528189467,1366960220,1531994683,1359363089,1359364369,1366960219,1366959969,1359364625,1359364881,1366959968,1528517920,1528517919,1528517918,1527067991,1662071113,1528517915,1528124699,1528452635,1528190491,1528387355,1528256283,1528322075,1528517665,1527070551,1529890904,1529825367,1529759830,1528517661,1528517659,1528124448,1528124447,1528124446,1528124443,1528451873,1529563218,1529497681,1530087513,1528451869,1528451867,1528189729,1367106116,1367104067,1528189725,1528189723,1528386081,1529890900,1529956437,1530021974,1528386077,1528386075,1528255009,1530087511,1530153048,1697990745,1528255005,1526882861,1528255003,1366959967,1359365137,1359365393,1366959966,1528452384,1528452383,1528452382,1528452379,1528190240,1528190239,1528190238,1528190235,1528387099,1528256027,1528321819,1528452129,1529694293,1529628756,1529890897,1528452125,1528452123,1528189985,1528189981,1528189979,1528386337,1530021976,1529956439,1529890902,1528386333,1528386331,1528255265,1529825365,1529759828,1529759825,1528255261,1528255259,1528320545,1529759827,1529694290,1529628753,1528320541,1528320539,1528386848,1528386847,1528386846,1528386843,1528255776,1528255775,1528255774,1528255771,1528321563,1528386593,1529956434,1530021971,1530087508,1528386589,1528386587,1528255521,1527079511,1530153045,1697990742,1529563219,1528255517,1627919393,1366889051,1366909532,1627919649,1560817705,1528255515,1528320801,1529825362,1529890899,1529956436,1528320797,1528320795,1528321312,1528321311,1528321310,1528321307,1528321057,1527067990,1529497682,1661878601,1560823333,1695041317,1695039268,1527853640,1527788104,1529432145,1530021977,1527722568,1528182106,1527657032,1527070550,1528321053,1528321051,1529041223,1528247394,1529041222,1529041221,1529041220,1529041219,1529041218,1529041217,1529041216,1529041215,1529041214,1529043262,1529041213,1529043261,1529041212,1529043260,1529041211,1529043259,1529041210,1529043258,1529041209,1529043257,1529041208,1529043256,1529041207,1529043255,1529041206,1529043254,1526882862,1529893214,1530094173,1663259188,1663259444,1663259700,1663259956,1663260212,1663260468,1663260724,1394825524,1663259187,1663259443,1663259699,1663259955,1663260211,1663260467,1663260723,1394825523,1663259186,1663259442,1663259698,1663259954,1663260210,1663260466,1663260722,1394825522,1367106115,1663259185,1663259441,1663259697,1663259953,1663260209,1663260465,1663260721,1394825521,1367104066,1663259184,1663259440,1663259696,1663259952,1663260208,1663260464,1663260720,1394825520,1663259183,1663259439,1663259695,1663259951,1663260207,1663260463,1663260719,1394825519,1663259182,1663259438,1663259694,1663259950,1663260206,1663260462,1663260718,1394825518,1394823725,1527079510,1560820010,1394823981,1394824237,1394824493,1394824749,1394825005,1394825261,1460154154,1531994680,1394823724,1394823980,1394824236,1394824492,1394824748,1394825004,1394825260,1663259179,1663259435,1663259691,1663259947,1663260203,1527067989,1527591496,1527525960,1527460424,1527857224,1663260459,1663260715,1527791688,1527726152,1527660616,1695040556,1695040812,1527070549,1663259178,1663259434,1663259690,1663259946,1663260202,1663260458,1663260714,1663259177,1663259433,1663259689,1663259945,1663260201,1663260457,1663260713,1366959965,1663259176,1663259432,1663259688,1663259944,1663260200,1663260456,1663260712,1366959964,1663259175,1663259431,1663259687,1663259943,1663260199,1663260455,1526882863,1663260711,1366959963,1663259174,1663259430,1663259686,1663259942,1663260198,1663260454,1663260710,1366959713,1663259173,1663259429,1663259685,1663259941,1663260197,1663260453,1663260709,1366959712,1394823716,1394823972,1394824228,1394824484,1394824740,1394824996,1394825252,1528975687,1528975686,1528975685,1528975684,1528975683,1528975682,1528975681,1528975680,1528975679,1528975678,1528977726,1528975677,1528977725,1528975676,1528977724,1528975675,1528977723,1528975674,1528977722,1528975673,1528977721,1528975672,1528977720,1528975671,1528977719,1528975670,1528977718,1366959711,1530028636,1366959710,1366959709,1366959708,1367106114,1367104065,1531994684,1367106113,1527079509,1493702177,1367104064,1365467418,1528910151,1528910150,1528910149,1528910148,1528910147,1528910146,1528910145,1528910144,1528910143,1560817195,1528910142,1528912190,1528910141,1528912189,1528910140,1528912188,1528910139,1528912187,1528910138,1528912186,1528910137,1527067988,1695041068,1662070604,1528912185,1528910136,1528912184,1528910135,1528912183,1528910134,1528912182,1527070548,1365532954,1530028638,1365598490,1365664026,1365729562,1365795098,1365860634,1365926170,1365991706,1367106112,1367104063,1531994677,1528844615,1528844614,1528844613,1528844612,1528844611,1528844610,1528844609,1528844608,1528844607,1528844606,1528846654,1528844605,1528846653,1528844604,1528846652,1528844603,1526882864,1528846651,1528844602,1528846650,1528844601,1528846649,1528844600,1528846648,1528844599,1528846647,1528844598,1528846646,1529963099,1365467673,1365533209,1528844849,1528845105,1528845361,1365598745,1365664281,1365729817,1365795353,1365860889,1365926425,1365991961,1528844840,1528845096,1528845352,1367106111,1366647368,1528779079,1528779078,1528779077,1528779076,1528779075,1528779074,1528779073,1528779072,1528779071,1528779070,1528781118,1528779069,1528781117,1528779068,1528781116,1528779067,1528781115,1528779066,1528781114,1528779065,1528781113,1528779064,1528781112,1528779063,1528781111,1528779062,1528781110,1627398727,1366647112,1627920161,1529963103,1366646856,1366646600,1666146100,1528779314,1528779570,1528779826,1366646344,1528254754,1528058145,1528780081,1527079508,1366646088,1528779312,1627920417,1528779568,1528779824,1366645832,1366959707,1366959457,1366959456,1366959455,1366959454,1695033427,1560815443,1728587347,1560814931,1695032403,1366959453,1528779305,1528779561,1528779817,1366959452,1529432148,1529563224,1529235543,1528780072,1366959451,1527067987,1528779303,1528779559,1661879116,1528779815,1366959201,1366645576,1662070861,1366645320,1528713543,1527070547,1528713542,1528713541,1528713540,1528713539,1528713538,1528713537,1528713536,1528713535,1528713534,1528715582,1528713533,1528715581,1528713532,1528715580,1528713531,1528715579,1528713530,1526882865,1528715578,1528713529,1528715577,1528713528,1528715576,1528713527,1528715575,1528713526,1528715574,1367104062,1529958751,1529766493,1528713779,1528714035,1528714291,1528254755,1528058146,1527927067,1528714546,1528320283,1528058147,1527927068,1528714545,1528320284,1528123675,1527927069,1528714544,1528713775,1528714031,1528714287,1666146356,1367106110,1367104061,1366959200,1528713770,1528714026,1528714282,1366959199,1530087505,1529497687,1529170006,1528714537,1366959198,1530153042,1529432150,1529104469,1528714536,1366959197,1697990739,1529366613,1529432153,1528714535,1366959196,1528713766,1528714022,1528714278,1366959195,1366958945,1528648007,1528648006,1528648005,1528648004,1528648003,1528648002,1528648001,1528648000,1528647999,1528247386,1528647998,1528650046,1528647997,1528650045,1528647996,1528650044,1528647995,1528650043,1528647994,1528650042,1528647993,1528650041,1526948434,1528647992,1528650040,1528647991,1528650039,1528647990,1528650038,1527079507,1695037993,1528443746,1366958944,1529762141,1529832028,1695034668,1366958943,1528648243,1528648499,1528648755,1528320285,1528123676,1527927070,1528649010,1528320289,1528123677,1527927071,1528649009,1528320290,1528123678,1527927072,1528649008,1528648239,1528648495,1528648751,1367106109,1367104060,1666145844,1528648234,1527067986,1661878861,1528648490,1528648746,1529366611,1662071118,1529301076,1529366616,1526882866,1528649001,1529301074,1697990737,1529301079,1528649000,1529235537,1529235539,1529235542,1528648999,1528648230,1528648486,1528648742,1528582471,1528582470,1528582469,1528582468,1528582467,1528582466,1528582465,1528582464,1528582463,1528582462,1528584510,1528582461,1528584509,1528582460,1528584508,1528582459,1528584507,1528582458,1528584506,1528582457,1528584505,1528582456,1528584504,1528582455,1528584503,1528582454,1528584502,1529832030,1528582707,1528582963,1528583219,1528320291,1528123679,1527927073,1528583474,1528385819,1528123680,1527927074,1528583473,1528385820,1528123681,1527927075,1528583472,1528582703,1528582959,1528583215,1527070546,1367106108,1367104059,1528582698,1528582954,1528583210,1529825369,1529170002,1529170005,1528583465,1529759832,1529104465,1529104468,1528583464,1529694295,1529694297,1529497689,1528583463,1666146612,1528582694,1528582950,1528583206,1528516935,1528516934,1528516933,1528516932,1528516931,1528516930,1528516929,1528516928,1528516927,1528516926,1528518974,1528516925,1528518973,1528516924,1528518972,1527079506,1493702945,1528516923,1528518971,1528516922,1528518970,1528516921,1528518969,1528516920,1627920929,1528518968,1528516919,1528518967,1528516918,1528518966,1529827678,1529897563,1366958942,1366958941,1528517171,1528517427,1527067985,1528517683,1366958940,1528385821,1528123682,1527992603,1661878606,1528517938,1366958939,1526882867,1528385825,1528123683,1527992604,1528517937,1366958689,1528385826,1528189211,1527992605,1528517936,1366958688,1528517167,1528517423,1528517679,1366958687,1366958686,1366958685,1367106107,1528517162,1528517418,1528517674,1367104058,1529628758,1529628760,1529432152,1528517929,1529563221,1529563223,1529366615,1528517928,1529497684,1529497686,1529301078,1528517927,1528517158,1528517414,1528517670,1528451399,1528451398,1528451397,1528451396,1528451395,1528451394,1528451393,1528451392,1528451391,1528451390,1528453438,1528451389,1528453437,1528451388,1528453436,1528451387,1528453435,1528451386,1528453434,1528451385,1528453433,1527070545,1528451384,1528453432,1528451383,1528453431,1528451382,1528453430,1529897567,1666145588,1528451635,1528451891,1528452147,1367106106,1529104473,1528189212,1527992606,1528452402,1367104057,1529170009,1528189213,1527992607,1528452401,1365467674,1529104472,1527992608,1528452400,1365533210,1528451631,1528451887,1528452143,1365598746,1365664282,1365729818,1365795354,1365860890,1528451626,1528451882,1527079505,1528452138,1528443738,1528312674,1365926426,1530021969,1529432149,1529235541,1528452393,1365991962,1530087506,1529366612,1695034413,1529170004,1528452392,1530153043,1530153041,1529104467,1528452391,1528451622,1528451878,1528452134,1528385863,1528385862,1528385861,1528385860,1527068240,1527068496,1527068752,1527069008,1527069264,1526882868,1528385859,1528385858,1528385857,1528385856,1528385855,1528385854,1528387902,1528385853,1528387901,1528385852,1528387900,1528385851,1528387899,1528385850,1528387898,1528385849,1528387897,1528385848,1528387896,1528385847,1528387895,1528385846,1528387894,1529893215,1530159709,1367106105,1528386099,1528386355,1528386611,1367104056,1529235545,1527992609,1528386866,1529170008,1527992610,1528386865,1531929140,1529104471,1528189217,1527992611,1528386864,1528386095,1528386351,1528386607,1366958684,1366958683,1366958433,1528386090,1528386346,1528386602,1366958432,1697990740,1697990738,1529563225,1528386857,1366958431,1529432147,1529301075,1527069520,1527069776,1527070032,1527070288,1529497688,1528386856,1366958430,1529366610,1529235538,1529432151,1528386855,1366958429,1528386086,1528312666,1528377954,1528386342,1528386598,1366958428,1366958427,1528320327,1528320326,1528320325,1528320324,1528320323,1528320322,1528320321,1528320320,1528320319,1528320318,1528322366,1528320317,1528322365,1528320316,1528322364,1528320315,1528322363,1528320314,1528322362,1528320313,1528322361,1528320312,1528322360,1528320311,1528322359,1528320310,1528322358,1530094172,1367106104,1367104055,1528320563,1528320819,1528321075,1529301081,1527079504,1695038248,1528189218,1528058139,1662071375,1528321330,1627918880,1528377946,1529235544,1528189219,1528058140,1528321329,1529170007,1528254747,1526882869,1526882613,1526882357,1526882101,1526881845,1526881589,1526881333,1526881077,1526880821,1528058141,1528321328,1528320559,1528320815,1528321071,1666145332,1367106103,1528320554,1528320810,1528321066,1366647369,1529301073,1529170001,1529366614,1528321321,1366958177,1529890905,1529759833,1529301077,1528321320,1366958176,1529825368,1529694296,1529235540,1528321319,1366958175,1528320550,1528320806,1528321062,1366958174,1366958173,1528254791,1528254790,1528254789,1528254788,1528254787,1528254786,1528254785,1528254784,1528254783,1528254782,1528256830,1528254781,1528256829,1528254780,1528256828,1528254779,1528256827,1528254778,1528256826,1528254777,1358961230,1528256825,1528254776,1528256824,1493701408,1528254775,1528256823,1528254774,1528256822,1366958172,1530094174,1366958171,1366957921,1528255027,1528255283,1528255539,1366957920,1529104470,1528254748,1528058142,1528255794,1366647113,1529366617,1528254749,1528058143,1528255793,1366646857,1529301080,1528254753,1528058144,1528255792,1366646601,1528255023,1528255279,1528255535,1366646345,1366646089,1366645833,1366645577,1366645321,1528255018,1528255274,1528255530,1367104054,1529759831,1529628759,1529170003,1528255785,1666145076,1529694294,1529563222,1529104466,1528255784,1529628757,1529497685,1527079503,1529628761,1528255783,1528255014,1528255270,1528255526,1366957919,1528189255,1528189254,1560816430,1528189253,1529045549,1528980013,1528914477,1528848941,1528783405,1528717869,1528652333,1528586797,1528189252,1526880566,1528189251,1528189250,1528189249,1528189248,1528189247,1528189246,1528191294,1528189245,1528191293,1528189244,1528191292,1528189243,1528191291,1528189242,1528191290,1528189241,1528191289,1528189240,1528191288,1528189239,1528191287,1528189238,1528191286,1366957918,1530028635,1366957917,1366957916,1528189491,1528189747,1528190003,1366957915,1528190258,1366957665,1367106102,1367104053,1528190257,1366957664,1528190256,1366957663,1528189487,1528189743,1528189999,1366957662,1528189482,1528189738,1528189994,1367106101,1367104052,1528190249,1528190248,1367106100,1367104051,1528190247,1528189478,1528189734,1528189990,1531927092,1528123719,1528123718,1528123717,1528123716,1528123715,1528123714,1528123713,1528123712,1528123711,1528123710,1528125758,1528123709,1528125757,1528123708,1528125756,1528123707,1528125755,1528123706,1528125754,1528123705,1528125753,1528123704,1528125752,1528123703,1528125751,1528123702,1528125750,1529698396,1530028639,1359089967,1359089968,1359089969,1526936921,1528123954,1528124210,1528124466,1359089970,1528123953,1528124209,1528124465,1359089971,1528123952,1528124208,1528124464,1359089976,1359089977,1359089978,1359089979,1359089980,1359089985,1359089986,1528123945,1528124201,1528124457,1359089987,1528123944,1528124200,1528124456,1359089988,1528521261,1528455725,1528390189,1528324653,1528259117,1528193581,1528128045,1528062509,1528123943,1526880567,1528124199,1528124455,1359089989,1359155503,1359155507,1528058183,1528058182,1528058181,1528058180,1528058179,1528058178,1528058177,1528058176,1528058175,1528058174,1528060222,1528058173,1528060221,1528058172,1528060220,1528058171,1528060219,1528058170,1528060218,1528058169,1528060217,1528058168,1528060216,1528058167,1528060215,1528058166,1528060214,1359155512,1529963098,1359155516,1359155521,1359155525,1359221039,1359221043,1359221048,1359221052,1359221057,1359221061,1359286575,1359286579,1359286584,1359286588,1359286593,1359286597,1359352111,1359352112,1527992647,1527992646,1527992645,1527992644,1527992643,1527992642,1527992641,1527992640,1527992639,1527992638,1527994686,1527079502,1527992637,1627919392,1527994685,1527992636,1527994684,1527992635,1366710835,1527994683,1527992634,1527994682,1527992633,1527994681,1527992632,1527994680,1527992631,1527994679,1366712883,1527992630,1460152879,1527994678,1359352113,1529963104,1359352114,1359352115,1359352120,1359352121,1359352122,1359352123,1359352124,1359352129,1359352130,1359352131,1359352132,1359352133,1359097617,1359097873,1359098129,1359098385,1359098641,1527927111,1527927110,1527927109,1527927108,1527927107,1527927106,1527927105,1527927104,1527927103,1527927102,1527929150,1527927101,1527929149,1527927100,1527996973,1527931437,1527865901,1527800365,1529042741,1527929148,1527927099,1527929147,1527927098,1526880568,1527929146,1527927097,1527929145,1527927096,1527929144,1527927095,1527929143,1527927094,1527929142,1359099921,1529958752,1529700957,1529700701,1529700445,1529700189,1529699933,1529699677,1529699421,1359100177,1359100433,1359100689,1359100945,1359102225,1359102481,1359102737,1359102993,1529699165,1359103249,1529698909,1359163153,1529698653,1359164177,1529698397,1359165457,1529698141,1359166481,1529697885,1359167761,1529697629,1359168785,1529697373,1359228689,1529697117,1359229713,1529696861,1695032117,1695031861,1695031605,1695031349,1695031093,1695030837,1695030581,1695030325,1695030069,1695032116,1560814132,1560813876,1560813620,1695031092,1560813108,1560812852,1560812596,1695030068,1695032115,1560814131,1460150579,1560813619,1695031091,1560813107,1728585011,1560812595,1695030067,1695032114,1527079501,1560820775,1560814130,1560813874,1560813618,1695031090,1560813106,1560812850,1560812594,1627919648,1695030066,1695032113,1695031857,1695031601,1695031345,1695031089,1695030833,1695030577,1695030321,1695030065,1695032112,1560814128,1560813872,1560813616,1695031088,1560813104,1560812848,1560812592,1695030064,1695032111,1560814127,1728586031,1560813615,1695031087,1560813103,1460149551,1560812591,1695030063,1695032110,1560814126,1560813870,1560813614,1695031086,1560813102,1560812846,1560812590,1695030062,1695032109,1695031853,1695031597,1695031341,1695031085,1526880569,1695030829,1695030573,1695030317,1695030061,1527325503,1527323455,1527325504,1661542976,1661542720,1661542464,1661542208,1661541952,1661541696,1661541440,1527323456,1367106099,1367104050,1367106098,1367104049,1367106097,1367104048,1367106096,1367104047,1367106095,1366647370,1366647114,1366646858,1366646602,1366646346,1366646090,1366645834,1366645578,1366645322,1367104046,1367106094,1367104045,1365793305,1367106093,1367104044,1365727769,1367106092,1367104043,1365662233,1367106091,1367104042,1365596697,1367106090,1367104041,1367106089,1367104040,1367106088,1367104039,1367106087,1527325519,1661542991,1661542735,1661542479,1661542223,1661541967,1661541711,1661541455,1527323471,1527325520,1527323472,1527325521,1527323473,1527325522,1527323474,1527325523,1527323475,1527325524,1527323476,1527325525,1527323477,1527325526,1527323478,1527325527,1527323479,1527325528,1527323480,1527325529,1527323481,1527391039,1527079500,1627919904,1527388991,1527391040,1661608512,1661608256,1661608000,1661607744,1661607488,1661607232,1661606976,1527388992,1366647371,1366647115,1366646859,1560815920,1366646603,1366646347,1366646091,1366645835,1366645579,1366645323,1367104038,1365531161,1367106086,1367104037,1365465625,1367106085,1367104036,1367106084,1367104035,1367106083,1367104034,1367106082,1367104033,1367106081,1367104032,1367106080,1367104031,1367106079,1366647372,1366647116,1526880570,1366646860,1366646604,1366646348,1366646092,1366645836,1366645580,1366645324,1367104030,1666080563,1367106078,1367104029,1367106077,1367104028,1367106076,1367104027,1527391055,1661608527,1661608271,1661608015,1661607759,1661607503,1661607247,1661606991,1527389007,1527391056,1527389008,1527391057,1527389009,1527391058,1527389010,1527391059,1527389011,1527391060,1527389012,1527391061,1527389013,1527391062,1527389014,1527391063,1527389015,1527391064,1527389016,1527391065,1527389017,1527456575,1527454527,1527456576,1661674048,1661673792,1661673536,1661673280,1661673024,1661672768,1661672512,1527454528,1367106075,1367104026,1367106074,1367104025,1367106073,1367104024,1367106072,1367104023,1367106071,1366647373,1366647117,1366646861,1366646605,1366646349,1366646093,1366645837,1366645581,1366645325,1367104022,1367106070,1367104021,1367106069,1367104020,1367106068,1367104019,1367106067,1367104018,1367104274,1367104530,1367104786,1367105042,1367105298,1367105554,1367105810,1367106066,1367020130,1527079499,1367020386,1367020642,1627920160,1367020898,1367021154,1367021410,1367021666,1367021922,1367022178,1367022434,1367022690,1367022946,1367023202,1367023458,1367023714,1367023970,1367024226,1367024482,1367024738,1367024994,1367025250,1367025506,1367025762,1367026018,1529045550,1528980014,1528914478,1528848942,1528783406,1528717870,1528652334,1528586798,1367026274,1526880571,1367026530,1367026786,1366647374,1366647118,1366646862,1366646606,1366646350,1366646094,1527456591,1661674063,1661673807,1661673551,1661673295,1661673039,1661672783,1661672527,1527454543,1527456592,1527454544,1527456593,1527454545,1527456594,1527454546,1527456595,1527454547,1527456596,1527454548,1527456597,1527454549,1527456598,1527454550,1527456599,1527454551,1527456600,1527454552,1527456601,1527454553,1527522111,1527520063,1527522112,1661739584,1661739328,1661739072,1661738816,1661738560,1661738304,1661738048,1527520064,1366645838,1366645582,1366645326,1367027042,1367027298,1367027554,1367027810,1367028066,1367028322,1367028578,1367028834,1367029090,1367029346,1367029602,1367029858,1367030114,1367030370,1367030626,1367030882,1367031138,1367031394,1367031650,1367031906,1627920416,1367032162,1367032418,1367032674,1367032930,1367033186,1367033442,1367033698,1367033954,1367034210,1367034466,1367034722,1367034978,1367035234,1367035490,1367035746,1367036002,1527079498,1367036258,1560821030,1695033393,1367036514,1367036770,1367037026,1367037282,1367037538,1367037794,1367038050,1367038306,1367038562,1367038818,1367039074,1367039330,1367039586,1367039842,1367040098,1367040354,1367040610,1367020129,1366647375,1366647119,1366646863,1366646607,1366646351,1366646095,1528521262,1528455726,1528390190,1528324654,1528259118,1528193582,1528128046,1528062510,1366645839,1526880572,1366645583,1366645327,1527522127,1661739599,1661739343,1661739087,1661738831,1661738575,1661738319,1661738063,1527520079,1527522128,1527520080,1527522129,1527520081,1527522130,1527520082,1527522131,1527520083,1527522132,1527520084,1527522133,1527520085,1527522134,1527520086,1527522135,1527520087,1527522136,1527520088,1527522137,1527520089,1527587647,1527585599,1527587648,1527585600,1367040609,1367020128,1366647376,1366647120,1366646864,1366646608,1366646352,1366646096,1366645840,1366645584,1366645328,1367040608,1366647377,1366647121,1366646865,1366646609,1366646353,1366646097,1527587663,1527585615,1527587664,1527585616,1527587665,1527585617,1527587666,1527585618,1527587667,1527585619,1527587668,1527585620,1527587669,1527585621,1527587670,1527585622,1527587671,1527585623,1527587672,1527585624,1527587673,1527585625,1527653183,1527651135,1527653184,1527651136,1527653185,1527651137,1527079497,1527653186,1661870658,1493702944,1366889052,1366909533,1661870402,1661870146,1661869890,1560815410,1661869634,1661869378,1661869122,1527651138,1527653187,1661870659,1661870403,1661870147,1661869891,1661869635,1661869379,1661869123,1527651139,1527653188,1661870660,1661870404,1661870148,1661869892,1661869636,1661869380,1661869124,1527651140,1527653189,1661870661,1661870405,1527996974,1527931438,1527865902,1527800366,1529042997,1661870149,1661869893,1661869637,1661869381,1526880573,1661869125,1527651141,1527653190,1661870662,1661870406,1661870150,1661869894,1661869638,1661869382,1661869126,1527651142,1527653191,1661870663,1661870407,1661870151,1661869895,1661869639,1661869383,1661869127,1527651143,1527653192,1661870664,1661870408,1661870152,1661869896,1661869640,1661869384,1661869128,1527651144,1527653193,1661870665,1661870409,1661870153,1661869897,1661869641,1661869385,1661869129,1527651145,1527653194,1661870666,1661870410,1661870154,1661869898,1661869642,1661869386,1661869130,1527651146,1527653195,1661870667,1661870411,1661870155,1661869899,1661869643,1661869387,1661869131,1527651147,1527653196,1661870668,1661870412,1661870156,1661869900,1661869644,1661869388,1661869132,1527651148,1527653197,1661870669,1661870413,1661870157,1661869901,1661869645,1661869389,1661869133,1527651149,1527653198,1527651150,1527653199,1527651151,1527653200,1527651152,1527653201,1527651153,1527653202,1527079496,1527651154,1527653203,1527651155,1627920928,1695032125,1527653204,1527651156,1527653205,1527651157,1527653206,1527651158,1527653207,1527651159,1527653208,1527651160,1527653209,1527651161,1527718719,1527716671,1527718720,1527716672,1527718721,1527716673,1527718722,1527716674,1527718723,1527716675,1527718724,1527716676,1527718725,1527716677,1527718726,1527716678,1527718727,1527716679,1527718728,1527716680,1527718729,1527716681,1527718730,1527716682,1526880574,1527718731,1527716683,1527718732,1527716684,1527718733,1527716685,1527718734,1527716686,1527718735,1527716687,1527718736,1527716688,1527718737,1527716689,1527718738,1527716690,1527718739,1527716691,1527718740,1527716692,1527718741,1527716693,1527718742,1527716694,1527718743,1527716695,1527718744,1527716696,1527718745,1527716697,1527784255,1527782207,1527784256,1527782208,1527784257,1527782209,1527784258,1527782210,1527784259,1527782211,1527784260,1527782212,1527784261,1527782213,1527784262,1527782214,1527784263,1527782215,1527784264,1527782216,1527784265,1527782217,1527784266,1527782218,1527784267,1527782219,1527784268,1527782220,1527784269,1527782221,1527784270,1527782222,1527784271,1527782223,1527784272,1527782224,1527784273,1527782225,1527784274,1527782226,1527784275,1527782227,1527784276,1527782228,1527784277,1527782229,1527784278,1527782230,1527784279,1527782231,1527784280,1527782232,1527784281,1527782233,1527079495,1695039013,1527849791,1393631807,1627918879,1393631551,1393631295,1393631039,1393630783,1393630527,1393630271,1527847743,1527849792,1662067264,1662067008,1662066752,1662066496,1662066240,1662065984,1662065728,1527847744,1527849793,1662067265,1662067009,1662066753,1662066497,1662066241,1662065985,1662065729,1527847745,1527849794,1662067266,1526882879,1526882623,1526882367,1526882111,1526881855,1526881599,1526881343,1526881087,1526880831,1662067010,1662066754,1662066498,1662066242,1662065986,1662065730,1527847746,1527849795,1662067267,1662067011,1662066755,1662066499,1662066243,1662065987,1662065731,1527847747,1527849796,1662067268,1662067012,1662066756,1662066500,1662066244,1662065988,1662065732,1527847748,1527849797,1662067269,1662067013,1662066757,1662066501,1662066245,1662065989,1662065733,1527847749,1527849798,1662067270,1662067014,1662066758,1662066502,1662066246,1662065990,1662065734,1527847750,1527849799,1393631815,1393631559,1393631303,1393631047,1393630791,1393630535,1393630279,1527847751,1527849800,1393631816,1393631560,1393631304,1393631048,1393630792,1393630536,1393630280,1527847752,1527849801,1662067273,1662067017,1662066761,1662066505,1662066249,1662065993,1662065737,1527847753,1527849802,1662067274,1662067018,1662066762,1662066506,1662066250,1662065994,1662065738,1527847754,1527849803,1662067275,1662067019,1662066763,1662066507,1662066251,1662065995,1662065739,1527079494,1527847755,1527849804,1662067276,1662067020,1662066764,1662066508,1662066252,1662065996,1662065740,1560814140,1527847756,1527849805,1662067277,1662067021,1662066765,1662066509,1662066253,1662065997,1662065741,1527847757,1527849806,1662067278,1662067022,1662066766,1662066510,1662066254,1662065998,1662065742,1527847758,1526882880,1527849807,1662067279,1662067023,1662066767,1662066511,1662066255,1662065999,1662065743,1527847759,1527849808,1393631824,1393631568,1393631312,1393631056,1393630800,1393630544,1393630288,1527847760,1527849809,1393631825,1393631569,1393631313,1393631057,1393630801,1393630545,1393630289,1527847761,1527849810,1662067282,1662067026,1662066770,1662066514,1662066258,1662066002,1662065746,1527847762,1527849811,1662067283,1662067027,1662066771,1662066515,1662066259,1662066003,1662065747,1527847763,1527849812,1662067284,1662067028,1662066772,1662066516,1662066260,1662066004,1662065748,1527847764,1527849813,1662067285,1662067029,1662066773,1662066517,1662066261,1662066005,1662065749,1527847765,1527849814,1662067286,1662067030,1662066774,1662066518,1662066262,1662066006,1662065750,1527847766,1527849815,1662067287,1662067031,1662066775,1662066519,1662066263,1662066007,1662065751,1527847767,1527849816,1662067288,1662067032,1662066776,1662066520,1662066264,1662066008,1662065752,1527847768,1527849817,1527849561,1527849305,1527849049,1527848793,1527848537,1527848281,1527848025,1527847769,1527079493,1527332406,1527332150,1527331894,1527331638,1527331382,1527331126,1527330870,1527330614,1527330358,1527330102,1527329846,1527329590,1527329334,1527329078,1527328822,1527328566,1527328310,1527328054,1527327798,1527327542,1366645841,1366645585,1366645329,1367020127,1365793562,1526882881,1365728026,1365662490,1365596954,1527323702,1527323446,1661550135,1661545271,1365924634,1365859098,1661541431,1527323447,1661550136,1661545272,1661541432,1527323448,1661550137,1661545273,1661541433,1527323449,1661550138,1661545274,1661541434,1527323450,1661550139,1661545275,1366647378,1366647122,1366646866,1661541435,1527323451,1661550140,1661545276,1366646610,1366646354,1366646098,1366645842,1366645586,1366645330,1661541436,1527323452,1661550141,1661545277,1367040607,1367020126,1661541437,1527323453,1527332414,1527332158,1527331902,1527331646,1527331390,1527331134,1527330878,1527330622,1527330366,1527330110,1527329854,1527329598,1527329342,1527329086,1527328830,1527328574,1527328318,1527328062,1527327806,1527327550,1661543230,1661542974,1661542718,1661542462,1661542206,1661541950,1661541694,1527323454,1527397942,1527397686,1527397430,1527397174,1527396918,1527396662,1527396406,1527396150,1527395894,1527395638,1527395382,1527395126,1527394870,1527394614,1527394358,1527394102,1527393846,1527393590,1527393334,1527393078,1527389238,1527388982,1661615671,1661610807,1661606967,1527388983,1661615672,1661610808,1661606968,1527388984,1661615673,1661610809,1366647379,1366647123,1366646867,1366646611,1366646355,1527079492,1366646099,1493701407,1366645843,1366645587,1366645331,1661606969,1527388985,1560813883,1661615674,1661610810,1695031354,1367040606,1661606970,1526882882,1527388986,1661615675,1661610811,1367020125,1661606971,1527388987,1661615676,1661610812,1661606972,1527388988,1661615677,1661610813,1661606973,1527388989,1527397950,1527397694,1527397438,1527397182,1527396926,1527396670,1527396414,1527396158,1527395902,1527395646,1527395390,1527395134,1527394878,1527394622,1527394366,1527394110,1527393854,1527393598,1527393342,1527393086,1661608766,1661608510,1661608254,1661607998,1661607742,1661607486,1661607230,1527388990,1527463478,1527463222,1527462966,1527462710,1527462454,1527462198,1527461942,1527461686,1527461430,1527461174,1527460918,1527460662,1527460406,1527460150,1527459894,1527459638,1527459382,1527459126,1527458870,1527458614,1366647380,1366647124,1366646868,1366646612,1366646356,1366646100,1366645844,1366645588,1366645332,1527454774,1527454518,1661681207,1661676343,1661672503,1527454519,1661681208,1661676344,1367040605,1367020124,1358960974,1661672504,1527454520,1661681209,1661676345,1661672505,1527454521,1627399763,1661681210,1661676346,1661672506,1527454522,1661681211,1661676347,1661672507,1527454523,1661681212,1661676348,1366647381,1366647125,1366646869,1366646613,1366646357,1366646101,1366645845,1366645589,1366645333,1661672508,1527454524,1661681213,1661676349,1661672509,1527454525,1527463486,1527463230,1527462974,1527462718,1527462462,1527462206,1527079491,1527461950,1527461694,1527461438,1358959656,1526882883,1527461182,1527460926,1527460670,1527460414,1527460158,1527459902,1527459646,1527459390,1527459134,1527458878,1527458622,1661674302,1661674046,1661673790,1661673534,1661673278,1661673022,1661672766,1527454526,1527529014,1527528758,1527528502,1527528246,1527527990,1527527734,1527527478,1527527222,1527526966,1527526710,1527526454,1527526198,1527525942,1527525686,1527525430,1527525174,1527524918,1527524662,1527524406,1527524150,1367040604,1367020123,1527520310,1527520054,1661746743,1661741879,1661738039,1527520055,1661746744,1661741880,1661738040,1527520056,1661746745,1661741881,1366647382,1366647126,1366646870,1366646614,1366646358,1366646102,1366645846,1366645590,1661738041,1527520057,1661746746,1661741882,1366645334,1661738042,1527520058,1661746747,1661741883,1666080819,1661738043,1527520059,1661746748,1661741884,1661738044,1527520060,1661746749,1661741885,1367040603,1367020122,1367020378,1367020634,1367020890,1367021146,1367021402,1367021658,1367021914,1367022170,1661738045,1527520061,1527529022,1527528766,1527528510,1527528254,1527527998,1527527742,1527527486,1527527230,1527526974,1527526718,1527526462,1527526206,1527525950,1527525694,1527525438,1527525182,1527524926,1527524670,1527524414,1527524158,1367022426,1367022682,1367022938,1367023194,1367023450,1527079490,1367023706,1367023962,1661739838,1661739582,1661739326,1661739070,1661738814,1661738558,1526882884,1661738302,1527520062,1527594550,1527594294,1527594038,1527593782,1527593526,1527593270,1527593014,1527592758,1527592502,1527592246,1527591990,1527591734,1527591478,1527591222,1527590966,1527590710,1527590454,1527590198,1527589942,1527589686,1367024218,1367024474,1367024730,1367024986,1367025242,1367025498,1367025754,1367026010,1367026266,1367026522,1367026778,1366647383,1366647127,1366646871,1527585846,1527585590,1661812279,1366646615,1366646359,1366646103,1366645847,1366645591,1366645335,1367027034,1367027290,1367027546,1367027802,1367028058,1367028314,1367028570,1367028826,1527585591,1661812280,1367029082,1627919391,1367029338,1367029594,1367029850,1367030106,1367030362,1367030618,1367030874,1367031130,1367031386,1367031642,1367031898,1367032154,1365990170,1527585592,1661812281,1367032410,1367032666,1367032922,1367033178,1367033434,1367033690,1367033946,1367034202,1367034458,1367034714,1367034970,1367035226,1367035482,1367035738,1527585593,1661812282,1367035994,1367036250,1367036506,1367036762,1367037018,1367037274,1367037530,1367037786,1367038042,1367038298,1527585594,1661812283,1367040602,1367038553,1367040601,1527585595,1661812284,1367038552,1367040600,1366647384,1366647128,1366646872,1366646616,1366646360,1527585596,1661812285,1366646104,1366645848,1366645592,1527079489,1728587324,1366645336,1367038551,1367040599,1367038550,1527585597,1527594558,1526882885,1527594302,1527594046,1527593790,1527593534,1527593278,1527593022,1527592766,1527592510,1527592254,1527591998,1527591742,1527591486,1527591230,1527590974,1527590718,1527590462,1527590206,1527589950,1527589694,1661805374,1527585598,1527660086,1527659830,1527659574,1527659318,1527659062,1527658806,1527658550,1527658294,1527658038,1527657782,1527657526,1527657270,1527657014,1527656758,1527656502,1527656246,1527655990,1527655734,1527655478,1527655222,1527654966,1527654710,1527654454,1527654198,1527653942,1527653686,1527653430,1527653174,1527652918,1527652662,1527652406,1527652150,1527651894,1527651638,1527651382,1527651126,1661877815,1661872439,1695031097,1661872183,1661871927,1661871671,1661871415,1661871159,1661870903,1366710834,1661870647,1661870391,1661870135,1661869879,1661869623,1527651127,1661877816,1661872440,1661872184,1661871928,1661871672,1661871416,1661871160,1661870904,1661870648,1661870392,1661870136,1661869880,1661869624,1527651128,1661877817,1661872441,1661872185,1661871929,1661871673,1661871417,1661871161,1661870905,1661870649,1661870393,1661870137,1661869881,1661869625,1527651129,1661877818,1661872442,1661872186,1661871930,1661871674,1661871418,1661871162,1661870906,1661870650,1661870394,1661870138,1661869882,1661869626,1527651130,1661877819,1661872443,1661872187,1661871931,1661871675,1661871419,1661871163,1661870907,1661870651,1661870395,1526882886,1661870139,1661869883,1661869627,1527651131,1661877820,1661872444,1661872188,1661871932,1661871676,1661871420,1661871164,1661870908,1661870652,1661870396,1661870140,1661869884,1661869628,1527651132,1661877821,1661872445,1661872189,1661871933,1661871677,1661871421,1661871165,1527651133,1527660094,1527659838,1527659582,1527659326,1527659070,1527658814,1527658558,1527658302,1527658046,1527657790,1527657534,1527657278,1527657022,1527656766,1527656510,1527656254,1527655998,1527655742,1527655486,1527655230,1527654974,1527654718,1527654462,1527654206,1527653950,1527653694,1527653438,1527651134,1527725622,1527725366,1527725110,1527724854,1527724598,1527724342,1527724086,1527723830,1527723574,1527723318,1527723062,1527722806,1527722550,1527722294,1527722038,1527721782,1527079488,1527721526,1527721270,1527721014,1527720758,1527720502,1527720246,1527719990,1527719734,1527719478,1527719222,1527718966,1527718710,1527718454,1527718198,1527717942,1527717686,1527717430,1527717174,1527716918,1527716662,1661943351,1527716663,1661943352,1527716664,1661943353,1527716665,1661943354,1527716666,1661943355,1527716667,1661943356,1527716668,1661943357,1527716669,1527725630,1527725374,1527725118,1527724862,1527724606,1527724350,1527724094,1527723838,1527723582,1527723326,1527723070,1527722814,1527722558,1527722302,1527722046,1527721790,1527721534,1527721278,1527721022,1527720766,1526882887,1527720510,1527720254,1527719998,1527719742,1527719486,1527719230,1527718974,1527716670,1527791158,1527790902,1527790646,1527790390,1527790134,1527789878,1527789622,1527789366,1527789110,1527788854,1527788598,1527788342,1527788086,1527787830,1527787574,1527787318,1527787062,1527786806,1527786550,1527786294,1527786038,1527785782,1527785526,1527785270,1527785014,1527784758,1527784502,1527784246,1527783990,1527783734,1527783478,1527783222,1527782966,1527782710,1527782454,1527782198,1662008887,1527782199,1662008888,1527782200,1662008889,1527782201,1662008890,1527782202,1662008891,1527782203,1662008892,1527782204,1662008893,1527782205,1527791166,1527790910,1527790654,1527790398,1527790142,1527789886,1527789630,1527789374,1527789118,1527077439,1527077695,1527077951,1527078207,1527078463,1527788862,1527078719,1527078975,1527079231,1527079487,1366712882,1527788606,1527788350,1527788094,1560814907,1527787838,1527787582,1527787326,1527787070,1527786814,1527786558,1527786302,1527786046,1527785790,1527785534,1527785278,1527785022,1527784766,1527784510,1527782206,1527856694,1527856438,1527856182,1527855926,1527855670,1527855414,1527855158,1527854902,1527854646,1527854390,1527854134,1527853878,1527853622,1527853366,1527853110,1527852854,1527852598,1527852342,1527852086,1527851830,1527851574,1527851318,1527851062,1527850806,1527850550,1527850294,1527850038,1527849782,1526882888,1527849526,1527849270,1527849014,1527848758,1527848502,1527848246,1527847990,1527847734,1527856695,1662074167,1662073911,1662073655,1662073399,1662073143,1662072887,1662072631,1393636919,1393636663,1662071863,1662071607,1662071351,1662071095,1662070839,1662070583,1662070327,1393634615,1393634359,1662069559,1662069303,1662069047,1662068791,1662068535,1662068279,1662068023,1393632311,1393632055,1662067255,1662066999,1662066743,1662066487,1662066231,1662065975,1662065719,1527847735,1527856696,1662074168,1662073912,1662073656,1662073400,1662073144,1662072888,1662072632,1393636920,1393636664,1662071864,1662071608,1662071352,1662071096,1662070840,1662070584,1662070328,1393634616,1393634360,1662069560,1662069304,1662069048,1662068792,1662068536,1662068280,1662068024,1393632312,1527077182,1393632056,1662067256,1662067000,1662066744,1662066488,1662066232,1662065976,1662065720,1527847736,1527856697,1662074169,1662073913,1662073657,1662073401,1662073145,1662072889,1662072633,1393636921,1393636665,1662071865,1662071609,1662071353,1662071097,1662070841,1662070585,1662070329,1393634617,1627919647,1393634361,1662069561,1662069305,1662069049,1662068793,1662068537,1662068281,1662068025,1393632313,1393632057,1662067257,1560813112,1662067001,1662066745,1662066489,1662066233,1662065977,1662065721,1527847737,1527856698,1662074170,1662073914,1662073658,1662073402,1662073146,1526882889,1662072890,1662072634,1393636922,1393636666,1662071866,1662071610,1662071354,1662071098,1662070842,1662070586,1662070330,1393634618,1393634362,1662069562,1662069306,1662069050,1662068794,1662068538,1662068282,1662068026,1393632314,1393632058,1662067258,1662067002,1662066746,1662066490,1662066234,1662065978,1662065722,1527847738,1527856699,1662074171,1662073915,1662073659,1662073403,1662073147,1662072891,1662072635,1393636923,1393636667,1662071867,1662071611,1662071355,1662071099,1662070843,1662070587,1662070331,1393634619,1393634363,1662069563,1662069307,1662069051,1662068795,1662068539,1662068283,1662068027,1393632315,1393632059,1662067259,1662067003,1662066747,1662066491,1662066235,1662065979,1662065723,1527847739,1527856700,1662074172,1662073916,1662073660,1662073404,1662073148,1662072892,1662072636,1393636924,1393636668,1662071868,1662071612,1662071356,1662071100,1662070844,1662070588,1662070332,1393634620,1393634364,1662069564,1662069308,1662069052,1662068796,1662068540,1662068284,1662068028,1393632316,1527861293,1527664685,1367040598,1367038549,1527861294,1527664686,1393643309,1527077181,1661882157,1529045551,1528980015,1528914479,1528848943,1528783407,1528717871,1528652335,1528586799,1695032378,1366957661,1366957660,1366957659,1366957409,1695038756,1527861295,1527664687,1662078766,1661882158,1366957408,1366889053,1366909534,1366957407,1366957406,1526882890,1527859245,1527793709,1527728173,1527662637,1560821825,1560821826,1695039555,1560821828,1393643053,1661881901,1527861296,1527664688,1662078767,1661882159,1367040597,1367038548,1527859246,1527793710,1527728174,1527662638,1560821829,1560821830,1695039559,1695039807,1662078510,1661881902,1393641773,1661880621,1367040596,1367038547,1393642797,1661881645,1527861297,1527664689,1367040595,1367038546,1662078768,1661882160,1527859247,1527793711,1527728175,1527662639,1560822080,1460158785,1560822082,1695039811,1662078511,1661881903,1367040594,1662077230,1661880622,1367038545,1662078254,1661881646,1393642029,1661880877,1365466906,1365532442,1365597978,1365663514,1393642541,1661881389,1367040593,1367038544,1527861298,1527664690,1666080307,1662078769,1661882161,1666081075,1367040592,1527859248,1527793712,1527728176,1527662640,1560822084,1728594245,1560822086,1695039815,1662078512,1661881904,1666080051,1366647385,1366647129,1366646873,1662077231,1661880623,1366646617,1366646361,1366646105,1366645849,1662078255,1661881647,1531863603,1366645593,1366645337,1367038543,1662077486,1661880878,1365729050,1365794586,1365860122,1365925658,1662077998,1661881390,1666079795,1393642285,1661881133,1666079539,1527861299,1662078770,1661882162,1365466650,1365532186,1365597722,1365663258,1527859249,1527793713,1527077180,1527728177,1528521263,1528455727,1528390191,1528324655,1528259119,1526882891,1527662641,1695040063,1560822336,1560822337,1560822338,1662078513,1661881905,1662077232,1661880624,1367040591,1367038542,1662078256,1661881648,1662077487,1661880879,1662077999,1661881391,1662077742,1661881134,1527861300,1527533620,1527468084,1527402548,1662078771,1365728794,1365794330,1365859866,1365925402,1527859250,1527793714,1527728178,1527662642,1695040067,1560822340,1560822341,1560822342,1662078514,1661881906,1662077233,1661880625,1367040590,1367038541,1662078257,1661881649,1662077488,1661880880,1662078000,1661881392,1662077743,1661881135,1527861319,1527861301,1662078772,1661751092,1661685556,1661620020,1528193583,1528128047,1528062511,1527859251,1527793715,1527728179,1527662643,1529040994,1394823265,1695040071,1695040319,1394823264,1695040320,1695040321,1662078515,1662077234,1661880626,1367040589,1367038540,1662078258,1661881650,1662077489,1661880881,1367040588,1367038539,1662078001,1661881393,1493702175,1662077744,1661881136,1527861318,1527533638,1527468102,1527402566,1527861063,1527861302,1393643317,1394823263,1527859252,1527793716,1527728180,1527662644,1527597108,1527531572,1527466036,1527400500,1394823262,1662078516,1661750836,1661685300,1661619764,1662077235,1367040587,1367038538,1662078259,1662077490,1661880882,1367040586,1367038537,1662078002,1661881394,1662077745,1661881137,1527077179,1367040585,1527996975,1527931439,1527865903,1527800367,1526882892,1527861317,1367038536,1662078790,1661751110,1661685574,1661620038,1527859271,1527793735,1527728199,1527662663,1527597127,1527531591,1527466055,1527400519,1527860807,1527861303,1527533623,1527468087,1527402551,1393643318,1527859253,1527793717,1527728181,1527662645,1527597109,1527531573,1527466037,1527400501,1393643061,1662077236,1661749556,1661684020,1661618484,1662078260,1661750580,1661685044,1661619508,1662077491,1662078003,1367040584,1366647386,1531861555,1366647130,1662077746,1661881138,1366646874,1366646618,1666015026,1366646362,1527861316,1527664708,1366646106,1366645850,1366645594,1366645338,1662078789,1394823261,1394823260,1394823259,1529040986,1528975714,1366645082,1366644826,1366644570,1366644314,1527859270,1527793734,1527728198,1527662662,1527597126,1527531590,1529043253,1527466054,1527400518,1662078534,1661750854,1661685318,1661619782,1695032121,1528910434,1527859527,1527860551,1527861304,1366644058,1366643802,1560812855,1366643546,1366643290,1662078775,1661751095,1661685559,1661620023,1527859254,1527793718,1527728182,1527662646,1527597110,1527531574,1527466038,1527400502,1393643062,1393641781,1393642805,1662077492,1661749812,1560820773,1661684276,1661618740,1662078004,1661750324,1661684788,1661619252,1662077747,1366643034,1366642778,1366957405,1366957404,1527861315,1527664707,1366642522,1366642266,1366642010,1366641754,1662078788,1661882180,1526882893,1366641498,1366641242,1366640986,1366640730,1527859269,1527793733,1527728197,1527662661,1366640474,1366640218,1666015282,1366639962,1662078533,1366639706,1366639450,1366639194,1366638938,1662077254,1661749574,1661684038,1661618502,1662078278,1661750598,1661685062,1661619526,1527859783,1527860295,1527861305,1527664697,1662078776,1666014770,1366638682,1366638426,1366638170,1527859255,1527793719,1527728183,1527662647,1527597111,1527531575,1527466039,1527400503,1662078519,1661750839,1661685303,1661619767,1393641782,1393642806,1393642037,1393642549,1662077748,1661750068,1661684532,1661618996,1527861314,1527664706,1662078787,1661882179,1527859268,1527793732,1527728196,1527662660,1366637914,1366637658,1662078532,1661881924,1666015538,1366637402,1358960718,1695032886,1366637146,1366636890,1662077253,1366636634,1366636378,1366636122,1366635866,1662078277,1666014514,1366635610,1366635354,1366635098,1662077510,1661749830,1661684294,1661618758,1662078022,1661750342,1661684806,1661619270,1527860039,1527077178,1527861306,1527664698,1366634842,1366634586,1366634330,1662078777,1661882169,1527859256,1527793720,1527728184,1527662648,1662078520,1662077239,1661749559,1661684023,1661618487,1662078263,1661750583,1661685047,1661619511,1393642038,1393642550,1393642293,1527861313,1527664705,1366634074,1366633818,1366633562,1366633306,1662078786,1661882178,1366633050,1366632794,1526882894,1366632538,1527859267,1527793731,1527728195,1527662659,1366632282,1662078531,1661881923,1662077252,1661880644,1366632026,1366631770,1531798066,1366631514,1662078276,1661881668,1662077509,1365990682,1366631258,1366631002,1366630746,1662078021,1662077766,1661750086,1661684550,1661619014,1527861307,1527664699,1366630490,1366630234,1666014258,1366629978,1662078778,1661882170,1366629722,1366629466,1366629210,1366628954,1527859257,1527793721,1527728185,1527662649,1366628698,1366628442,1366628186,1366627930,1662078521,1661881913,1366627674,1366627418,1366627162,1662077240,1366626906,1366647387,1662078264,1662077495,1661749815,1661684279,1661618743,1662078007,1661750327,1661684791,1661619255,1393642294,1527861312,1527664704,1366647131,1366646875,1662078785,1661882177,1366646619,1366646363,1666014002,1366646107,1527859266,1527793730,1527728194,1527662658,1366645851,1366645595,1366645339,1366645083,1662078530,1661881922,1366644827,1366644571,1366644315,1366644059,1662077251,1661880643,1662078275,1661881667,1366643803,1366643547,1366643291,1662077508,1661880900,1366643035,1366642779,1366642523,1527077177,1366642267,1662078020,1661881412,1662077765,1527861308,1527664700,1662078779,1661882171,1366642011,1366641755,1527859258,1560814136,1527793722,1527728186,1527662650,1531796018,1366641499,1366641243,1366640987,1662078522,1661881914,1366640731,1560820518,1366640475,1526882895,1665949489,1366640219,1662077241,1661880633,1366639963,1662078265,1661881657,1366639707,1366639451,1366639195,1366638939,1662077496,1366638683,1366638427,1665949745,1366638171,1662078008,1366637915,1366637659,1366637403,1662077751,1661750071,1661684535,1661618999,1527861311,1527664703,1366637147,1662078784,1661882176,1527859265,1527793729,1527728193,1527662657,1662078529,1661881921,1366636891,1366636635,1662077250,1661880642,1366636379,1366636123,1366635867,1366635611,1662078274,1661881666,1366635355,1366635099,1665949233,1366634843,1662077507,1661880899,1366634587,1366634331,1662078019,1661881411,1366634075,1695032629,1366633819,1366633563,1366633307,1662077764,1661881156,1366633051,1366632795,1627397949,1366632539,1527861309,1527664701,1366632283,1366632027,1366631771,1366631515,1662078780,1661882172,1366631259,1527859259,1527793723,1527728187,1527662651,1662078523,1661881915,1662077242,1661880634,1366631003,1366630747,1366630491,1366630235,1662078266,1661881658,1366629979,1366629723,1662077497,1661880889,1662078009,1661881401,1366629467,1366629211,1665950001,1662077752,1527861310,1527664702,1366626907,1393643327,1661882175,1366647388,1366647132,1366646876,1366646620,1527859264,1527793728,1527728192,1527662656,1366646364,1366646108,1366645852,1527077176,1662078528,1529045552,1528980016,1528914480,1528848944,1528783408,1528717872,1528652336,1528586800,1526882896,1661881920,1366645596,1662077249,1661880641,1665948977,1366645340,1366645084,1366644828,1662078273,1661881665,1662077506,1661880898,1366644572,1662078018,1661881410,1366644316,1366644060,1662077763,1661881155,1366643804,1366643548,1531732529,1366643292,1662078781,1661882173,1366643036,1366642780,1366642524,1366642268,1527859260,1527793724,1527728188,1527662652,1366642012,1366641756,1526873680,1526873424,1526873168,1526872912,1526872656,1526872400,1526872144,1526871888,1526871632,1366641500,1366641244,1662078524,1661881916,1366640988,1366640732,1366640476,1366640220,1662077243,1661880635,1662078267,1661881659,1366639964,1662077498,1661880890,1366639708,1528845154,1366639452,1560813879,1366639196,1366638940,1662078010,1661881402,1662077753,1661881145,1366638684,1366638428,1393643326,1695032372,1661882174,1665948721,1366638172,1366637916,1366637660,1527859263,1527793727,1527728191,1527662655,1366637404,1366637148,1665948465,1366636892,1393643071,1661881919,1366636636,1366636380,1366636124,1366635868,1662077248,1661880640,1662078272,1661881664,1366635612,1366635356,1366635100,1366634844,1662077505,1661880897,1366634588,1366634332,1366634076,1366633820,1662078017,1661881409,1366633564,1662077762,1661881154,1527859261,1527793725,1527728189,1527662653,1366633308,1366633052,1662078525,1661881917,1531730481,1366632796,1366632540,1366632284,1662077244,1527077175,1526882897,1661880636,1366632028,1366631772,1366631516,1662078268,1661881660,1366631260,1366631004,1366630748,1366630492,1662077499,1661880891,1665884208,1366630236,1366629980,1366629724,1662078011,1661881403,1366629468,1366629212,1662077754,1661881146,1527859262,1527793726,1527728190,1527662654,1393643070,1661881918,1393641791,1661880639,1393642815,1661881663,1665884464,1366626908,1526873937,1366647389,1662077504,1661880896,1662078016,1661881408,1366647133,1366646877,1366646621,1661878351,1526871377,1366646365,1662077761,1661881153,1366646109,1366645853,1366645597,1366645341,1662077245,1661880637,1366645085,1366644829,1665883952,1366644573,1662078269,1661881661,1662077500,1661880892,1528521264,1662078012,1661881404,1528455728,1528390192,1528324656,1528259120,1528193584,1528128048,1528062512,1531666992,1527927650,1366644317,1366644061,1366643805,1662077755,1661881147,1366643549,1695037991,1366643293,1366643037,1366642781,1393641790,1661880638,1366710833,1366642525,1366642269,1365465623,1365531159,1393642814,1661881662,1393642047,1661880895,1366642013,1366641757,1358960462,1366712881,1366641501,1393642559,1661881407,1358960206,1662077760,1661881152,1665883696,1366641245,1366640989,1366640733,1662077501,1661880893,1366640477,1366640221,1366639965,1366639709,1662078013,1661881405,1662077756,1661881148,1393642046,1661880894,1366639453,1366639197,1665883440,1366638941,1526882898,1393642558,1661881406,1366638685,1366638429,1366638173,1393642303,1661881151,1662077757,1661881149,1366637917,1366637661,1366637405,1393642302,1661881150,1366637149,1366636893,1366636637,1366636381,1527334983,1527334982,1661552966,1661553222,1661553478,1661553734,1661553990,1661554246,1661554502,1527337030,1365596695,1366636125,1366635869,1366635613,1665883184,1365662231,1526873938,1366635357,1366635101,1366634845,1393636176,1366634589,1366634333,1365727767,1665882928,1366634077,1526871378,1366633821,1366633565,1366633309,1365793303,1366633053,1366632797,1366632541,1366632285,1366632029,1365858839,1366631773,1366631517,1366631261,1366631005,1365924375,1366630749,1366630493,1366630237,1366629981,1366629725,1365989911,1365466394,1531664944,1366629469,1366629213,1365531930,1365597466,1366626909,1366647390,1366647134,1366646878,1365663002,1366646622,1528779874,1366646366,1366646110,1366645854,1366645598,1366645342,1365728538,1665818415,1366645086,1366644830,1366644574,1366644318,1366644062,1365794074,1366643806,1366643550,1366643294,1531599407,1366643038,1366642782,1365859610,1527077174,1366642526,1527996976,1527931440,1527865904,1527800368,1366642270,1366642014,1366641758,1366641502,1366641246,1365925146,1366640990,1695031350,1366640734,1366640478,1366640222,1527334967,1661552951,1661553207,1661553463,1661553719,1661553975,1661554231,1661554487,1527337015,1526882899,1527334966,1527334965,1527334964,1661552948,1661553204,1661553460,1661553716,1661553972,1661554228,1661554484,1527337012,1695040322,1366639966,1366639710,1366957403,1366639454,1366639198,1366638942,1365990938,1695040323,1366638686,1366638430,1366957153,1366638174,1366637918,1366637662,1366637406,1695040324,1366637150,1366636894,1366957152,1665818671,1366636638,1695040325,1526873939,1366636382,1366636126,1366957151,1366635870,1527660368,1366635614,1366635358,1695040326,1393636433,1526871379,1366635102,1366634846,1366957150,1366634590,1366634334,1366634078,1695040327,1366633822,1366633566,1366957149,1366633310,1366633054,1366632798,1366632542,1695040575,1366632286,1366632030,1366957148,1366957147,1665818159,1366631774,1366631518,1527859244,1527993442,1393641772,1393642028,1393642284,1393642540,1393642796,1393643052,1393643308,1527861292,1527859243,1662077227,1662077483,1662077739,1662077995,1662078251,1662078507,1662078763,1527861291,1527859242,1662077226,1662077482,1662077738,1662077994,1662078250,1662078506,1662078762,1527861290,1527859241,1662077225,1662077481,1662077737,1662077993,1662078249,1662078505,1662078761,1527861289,1527859240,1662077224,1662077480,1527077429,1527077685,1527077941,1527078197,1527078453,1527078709,1527078965,1527079221,1527079477,1662077736,1695037736,1662077992,1662078248,1662078504,1662078760,1527861288,1527859239,1662077223,1526882900,1662077479,1662077735,1662077991,1662078247,1662078503,1662078759,1527861287,1527859238,1662077222,1662077478,1662077734,1662077990,1662078246,1662078502,1662078758,1527861286,1527859237,1662077221,1662077477,1662077733,1662077989,1662078245,1662078501,1662078757,1527861285,1527859236,1393641764,1393642020,1393642276,1393642532,1393642788,1393643044,1393643300,1527861284,1526873940,1527793708,1527793707,1527793706,1527793705,1527793704,1527793703,1527854418,1527788882,1527723346,1526871380,1527793702,1527793701,1527793700,1527728172,1527728171,1527728170,1527728169,1527728168,1527728167,1527728166,1527728165,1527728164,1527662636,1661880620,1661880876,1358959138,1661881132,1661881388,1661881644,1661881900,1661882156,1527664684,1527662635,1661880619,1661880875,1661881131,1661881387,1661881643,1661881899,1661882155,1527664683,1527662634,1661880618,1661880874,1661881130,1661881386,1661881642,1661881898,1661882154,1527664682,1527662633,1661880617,1661880873,1661881129,1661881385,1661881641,1661881897,1661882153,1527664681,1527662632,1661880616,1661880872,1661881128,1661881384,1661881640,1661881896,1661882152,1527664680,1527662631,1661880615,1661880871,1661881127,1661881383,1661881639,1661881895,1661882151,1527664679,1527662630,1527662629,1527662628,1560822848,1366631262,1366631006,1366630750,1366956897,1366630494,1366630238,1366629982,1560822849,1366629726,1526882901,1366629470,1366629214,1366956896,1560822850,1366956895,1366626910,1695040579,1366647391,1366647135,1366646879,1366956894,1665817391,1366646623,1560822852,1366646367,1366646111,1366645855,1366645599,1366956893,1366645343,1366645087,1560822853,1366644831,1366644575,1366644319,1366644063,1366956892,1366643807,1366643551,1560822854,1366643295,1366643039,1366642783,1366642527,1526873941,1527657810,1527592274,1527526738,1527461202,1662070859,1366956891,1366642271,1366642015,1527597093,1526871381,1527597092,1695040583,1366641759,1366641503,1366641247,1366640991,1366956641,1365466138,1665817647,1695040831,1366640735,1366640479,1366640223,1366639967,1527079476,1366639711,1365531674,1366639455,1560823104,1560819753,1366639199,1366638943,1665818927,1366638687,1366638431,1365597210,1366638175,1728595265,1366637919,1366637663,1366637407,1366637151,1366636895,1365662746,1366636639,1560823106,1366636383,1366636127,1366635871,1366635615,1366635359,1365728282,1695040835,1366635103,1366634847,1366634591,1366634335,1366634079,1366633823,1365793818,1560823108,1366633567,1366633311,1665817903,1366633055,1366632799,1365859354,1527531557,1661749541,1661749797,1661750053,1661750309,1661750565,1661750821,1661751077,1527533605,1527531556,1460159813,1366632543,1366632287,1366632031,1366631775,1366631519,1365924890,1560823110,1366631263,1366631007,1366630751,1366630495,1366630239,1526882902,1365990426,1695040839,1366629983,1366629727,1366629471,1366629215,1695041087,1531468334,1560823360,1366626911,1366647392,1366647136,1560823361,1366646880,1366646624,1366646368,1366646112,1366645856,1560823362,1366645600,1366645344,1366645088,1366644832,1366644576,1366644320,1527466021,1661684005,1661684261,1661684517,1661684773,1661685029,1661685285,1661685541,1527468069,1526873942,1527466020,1695041091,1366644064,1366643808,1531533870,1661878859,1366643552,1366643296,1560823364,1526871382,1366643040,1366642784,1366642528,1366642272,1366642016,1366641760,1560823365,1366641504,1366641248,1366640992,1366640736,1366640480,1366640224,1560823366,1695039295,1366639968,1366639712,1366639456,1366639200,1366638944,1695041095,1695039296,1366638688,1366638432,1527079475,1365465624,1531535918,1695041343,1695039297,1366638176,1560819498,1365531160,1366637920,1695041344,1695039012,1695039298,1366637664,1366637408,1366637152,1365596696,1366636896,1366636640,1527400485,1661618469,1661618725,1661618981,1661619237,1661619493,1661619749,1661620005,1527402533,1527400484,1695041345,1695039299,1366636384,1366636128,1366635872,1365662232,1366635616,1366635360,1695041346,1695039300,1366635104,1366634848,1366634592,1365727768,1501388055,1695041347,1695039301,1366634336,1366634080,1366633824,1366633568,1365793304,1366633312,1695041348,1695039302,1366633056,1501388311,1366632800,1526882903,1366632544,1365858840,1366632288,1695041349,1695039303,1366632032,1366631776,1366631520,1366631264,1365924376,1366631008,1695041350,1695039551,1366630752,1366630496,1366630240,1366629984,1365989912,1366956640,1695041351,1560821824,1366629728,1366629472,1366629216,1366956639,1527334949,1661552933,1661553189,1661553445,1661553701,1661553957,1661554213,1661554469,1527336997,1526873943,1662071114,1527334948,1527865891,1527865890,1529696605,1527865889,1529766492,1527865888,1527865887,1526871383,1527865886,1527865885,1527865884,1527865883,1527800355,1527800354,1527800353,1527800352,1527800351,1527800350,1527800349,1527800348,1527800347,1527734819,1527734818,1527734817,1527734816,1527734815,1527734814,1527734813,1527734812,1527734811,1527669283,1527669282,1527669281,1527669280,1527669279,1527669278,1527669277,1527669276,1527669275,1527603747,1527603746,1527603745,1527603744,1527603743,1527079474,1527603742,1527603741,1527603740,1695036971,1527603739,1527538211,1527538210,1527538209,1527538208,1527538207,1527538206,1366889054,1366909535,1527538205,1527538204,1527538203,1527472675,1527472674,1527472673,1527472672,1527472671,1527472670,1527472669,1527472668,1527472667,1527407139,1527407138,1527407137,1527407136,1527407135,1527407134,1527407133,1527407132,1527407131,1527341603,1527341602,1527341601,1527341600,1527341599,1527341598,1527341597,1527341596,1527341595,1526882904,1527599387,1527599643,1527599899,1527600155,1527600411,1527600667,1527600923,1527601179,1527601435,1527533851,1527534107,1527534363,1527534619,1527534875,1527535131,1527535387,1527535643,1527535899,1527468315,1527468571,1527468827,1527469083,1527469339,1527469595,1527469851,1527470107,1527470363,1527402779,1527403035,1527403291,1527403547,1527403803,1527404059,1527404315,1526873944,1527404571,1661878602,1527404827,1527337243,1527337499,1662071369,1527337755,1527338011,1527338267,1526871384,1527338523,1527338779,1527339035,1527339291,1527859235,1393641763,1393642019,1393642275,1393642531,1393642787,1393643043,1393643299,1527861283,1393641506,1662077218,1662077474,1662077730,1662077986,1662078242,1662078498,1662078754,1527861282,1393641505,1662077217,1662077473,1662077729,1662077985,1662078241,1662078497,1662078753,1527861281,1393641504,1662077216,1662077472,1662077728,1662077984,1662078240,1662078496,1662078752,1527861280,1364007518,1393641503,1662077215,1662077471,1662077727,1662077983,1662078239,1662078495,1662078751,1527861279,1393641502,1662077214,1662077470,1662077726,1662077982,1662078238,1662078494,1662078750,1527079473,1364005469,1527861278,1393641501,1662077213,1662077469,1695036716,1662077725,1662077981,1662078237,1662078493,1662073405,1358960467,1560821029,1662078749,1527861277,1393641500,1662077212,1662077468,1662077724,1662077980,1662078236,1526882905,1662078492,1662078748,1527861276,1527859227,1527859483,1527859739,1527859995,1527860251,1527860507,1527860763,1527861019,1527861275,1527793691,1527793947,1527794203,1527794459,1527794715,1527794971,1527795227,1527795483,1527795739,1527728155,1527728411,1527728667,1527728923,1527729179,1527729435,1527729691,1527729947,1527730203,1527662619,1527662875,1527663131,1527663387,1526873945,1527663643,1527663899,1527664155,1527664411,1527664667,1527597083,1661878345,1695039524,1695039780,1526871385,1527597339,1527597595,1527597851,1527598107,1527598363,1527598619,1527598875,1527599131,1527531547,1527531803,1527532059,1527532315,1527532571,1527532827,1527533083,1527533339,1527533595,1527466011,1527466267,1527466523,1527466779,1527467035,1527467291,1527467547,1527467803,1527468059,1527400475,1527400731,1527400987,1527401243,1527401499,1527401755,1527402011,1527402267,1527402523,1527334939,1527335195,1527335451,1527335707,1527335963,1527336219,1527336475,1527336731,1527336987,1527856931,1527857187,1527857443,1527857699,1527857955,1527858211,1527858467,1527858723,1527858979,1393639202,1662074914,1662075170,1662075426,1662075682,1662075938,1662076194,1662076450,1393641250,1393639201,1662074913,1527079472,1662075169,1366710832,1662075425,1662075681,1662075937,1662076193,1662076449,1393641249,1393639200,1366712880,1662074912,1662075168,1662075424,1662075680,1662075936,1662076192,1662076448,1393641248,1393639199,1528714594,1662074911,1662075167,1662075423,1662075679,1662075935,1662076191,1662076447,1393641247,1528059234,1393639198,1662074910,1662075166,1662075422,1662075678,1662075934,1662076190,1662076446,1528649314,1393641246,1393639197,1662074909,1662075165,1662075421,1662075677,1662075933,1662076189,1528125026,1662076445,1393641245,1393639196,1662074908,1662075164,1662075420,1662075676,1662075932,1528584034,1662076188,1662076444,1393641244,1527856923,1527857179,1527857435,1527857691,1527857947,1528190818,1527858203,1527858459,1527858715,1527858971,1527791395,1527791651,1527791907,1527792163,1527792419,1662073661,1527792675,1527792931,1527793187,1527793443,1527791387,1527791643,1527791899,1527792155,1527792411,1527792667,1527792923,1527793179,1527793435,1528518754,1527725859,1527726115,1527726371,1527726627,1527726883,1527727139,1527727395,1527727651,1527727907,1527725851,1527726107,1527726363,1527726619,1527726875,1527727131,1527727387,1527727643,1527727899,1527660323,1527660579,1527660835,1527661091,1527661347,1527661603,1527661859,1527662115,1527662371,1527660315,1527660571,1527660827,1527661083,1527661339,1527661595,1527661851,1527662107,1527662363,1527594787,1527595043,1527595299,1527595555,1527595811,1527596067,1527596323,1527596579,1527596835,1527594779,1527595035,1527595291,1527595547,1527079471,1527595803,1695036461,1527596059,1527596315,1527596571,1527596827,1527529251,1527529507,1528256610,1527529763,1527530019,1527530275,1527530531,1527530787,1527531043,1527531299,1527529243,1528453474,1527529499,1527529755,1527530011,1527530267,1527530523,1527530779,1527531035,1527531291,1528322402,1527463715,1527463971,1527464227,1527464483,1527464739,1527464995,1527465251,1527465507,1528388194,1527465763,1527463707,1527463963,1527464219,1527464475,1527464731,1527464987,1527465243,1529036130,1527465499,1527465755,1527398179,1527398435,1527398691,1527398947,1527399203,1529036122,1528970338,1527399459,1527399715,1527399971,1527400227,1527398171,1662073917,1527398427,1527398683,1527398939,1527399195,1527399451,1527399707,1527399963,1527400219,1527332643,1528970330,1527332899,1527333155,1527333411,1527333667,1527333923,1527334179,1527334435,1527334691,1527332635,1527332891,1527333147,1527333403,1527333659,1527333915,1527334171,1527334427,1527334683,1527854627,1527854883,1527855139,1527855395,1527855651,1527855907,1527856163,1527856419,1527856675,1393636898,1662072610,1662072866,1662073122,1662073378,1662073634,1662073890,1662074146,1393638946,1393636897,1662072609,1662072865,1662073121,1662073377,1662073633,1662073889,1662074145,1393638945,1393636896,1662072608,1662072864,1662073120,1662073376,1662073632,1662073888,1662074144,1393638944,1393636895,1662072607,1662072863,1662073119,1662073375,1528904546,1662073631,1662073887,1662074143,1393638943,1393636894,1662072606,1662072862,1528904538,1528838754,1662073118,1662073374,1662073630,1662073886,1662074142,1393638942,1393636893,1528838746,1527921250,1662072605,1662072861,1662073117,1662073373,1662073629,1662073885,1662074141,1527921242,1528772962,1393638941,1393636892,1662072604,1662072860,1662073116,1662073372,1662073628,1528772954,1527986530,1662073884,1662074140,1393638940,1527854619,1527854875,1527855131,1527855387,1527986522,1528707170,1527855643,1527855899,1527856155,1527856411,1527856667,1527789091,1527789347,1528707162,1528051810,1527789603,1527789859,1527790115,1527790371,1527790627,1527790883,1527791139,1527789083,1527789339,1527789595,1527789851,1527079470,1527790107,1359024673,1527790363,1359090208,1527790619,1527790875,1560818478,1527791131,1527723555,1527723811,1527724067,1728592934,1527724323,1527724579,1527724835,1527725091,1527725347,1527725603,1527723547,1527723803,1527724059,1527724315,1527724571,1527724827,1527725083,1527725339,1527725595,1527658019,1662074173,1527658275,1527658531,1527658787,1527659043,1527659299,1527659555,1527659811,1527660067,1527658011,1527658267,1527658523,1527658779,1527659035,1527659291,1527659547,1527659803,1527660059,1527592483,1527592739,1527592995,1527593251,1527593507,1527593763,1527594019,1527594275,1527594531,1527592475,1527592731,1527592987,1527593243,1527593499,1527593755,1527594011,1527594267,1528051802,1528641378,1527594523,1527526947,1527527203,1527527459,1527527715,1527527971,1527528227,1528641370,1528117090,1527528483,1527528739,1527528995,1527526939,1527527195,1527527451,1527527707,1528117082,1528575586,1527527963,1527528219,1527528475,1527528731,1527528987,1527461411,1527461667,1528575578,1528182370,1527461923,1527462179,1527462435,1527462691,1527462947,1527463203,1527463459,1528182362,1528247650,1527461403,1527461659,1527461915,1527462171,1527462427,1527462683,1527462939,1528247642,1528444002,1527463195,1527463451,1527395875,1527396131,1527396387,1527396643,1527396899,1527397155,1527397411,1527397667,1527397923,1527395867,1527396123,1527396379,1527396635,1527396891,1527397147,1527397403,1527397659,1527397915,1359155743,1527330339,1527330595,1527330851,1527331107,1527331363,1527331619,1527331875,1527332131,1527332387,1527330331,1527330587,1527330843,1527331099,1527331355,1359221278,1527331611,1527331867,1527079469,1527332123,1527332379,1560818223,1527852323,1528443994,1527852579,1527852835,1527853091,1527853347,1527853603,1527853859,1527854115,1527854371,1393634594,1662070306,1527856701,1662070562,1662070818,1662071074,1662071330,1662071586,1662071842,1393636642,1393634593,1662070305,1662070561,1662070817,1662071073,1662071329,1662071585,1662071841,1393636641,1393634592,1662070304,1662070560,1662070816,1528312930,1662071072,1662071328,1662071584,1662071840,1393636640,1393634591,1662070303,1528312922,1528378210,1662070559,1662070815,1662071071,1662071327,1662071583,1662071839,1393636639,1528378202,1393634590,1662070302,1662070558,1662070814,1662071070,1662071326,1662071582,1662071838,1393636638,1393634589,1662070301,1662070557,1662070813,1662071069,1662071325,1662071581,1662071837,1393636637,1393634588,1662070300,1662070556,1662070812,1662071068,1662071324,1662071580,1662071836,1393636636,1527852315,1527852571,1527852827,1527853083,1527853339,1527853595,1527853851,1527854107,1527854363,1366889055,1366909536,1527786787,1527787043,1527787299,1527787555,1527787811,1527788067,1527788323,1527788579,1527788835,1527786779,1527787035,1527787291,1527787547,1527787803,1527788059,1527788315,1527788571,1527788827,1527721251,1527721507,1527721763,1527722019,1527722275,1527722531,1527722787,1527723043,1527723299,1527721243,1527721499,1527721755,1527722011,1527722267,1527722523,1527722779,1527723035,1527723291,1527655715,1527655971,1527656227,1527656483,1527656739,1527656995,1527657251,1527657507,1527657763,1527655707,1527655963,1527079468,1527656219,1527656475,1527656731,1527656987,1527657243,1695035696,1527657499,1527657755,1527590179,1527590435,1359286813,1527590691,1527590947,1527591203,1527591459,1527591715,1527591971,1527592227,1527590171,1527590427,1527590683,1527590939,1527591195,1527591451,1527591707,1527591963,1527592219,1527524643,1527524899,1527525155,1527525411,1527525667,1527525923,1366710831,1527526179,1527526435,1527526691,1527524635,1527524891,1527525147,1527525403,1529040738,1663258465,1663258464,1663258463,1663258462,1663258461,1663258460,1663258459,1529040730,1528975458,1527525659,1527525915,1527526171,1527526427,1527526683,1527459107,1527459363,1527459619,1528910178,1527459875,1527460131,1527460387,1527460643,1527460899,1527461155,1527459099,1527459355,1528844898,1527459611,1527459867,1527460123,1527460379,1527460635,1527460891,1527461147,1527393571,1527927394,1527393827,1527394083,1527394339,1527394595,1527394851,1527395107,1527395363,1527395619,1527393563,1527393819,1527394075,1527394331,1527394587,1527394843,1527395099,1527395355,1527395611,1527328035,1527328291,1527328547,1527328803,1527329059,1527329315,1527329571,1527329827,1527330083,1527328027,1527328283,1527328539,1527328795,1527329051,1527329307,1527329563,1527329819,1527330075,1393634332,1393634333,1393634334,1393634335,1393634336,1393634337,1393634338,1527852067,1527852059,1529762140,1527786275,1527786531,1529766494,1662004002,1527079467,1662004001,1662004000,1560820519,1662003999,1662003998,1662003997,1527863579,1527863323,1364007517,1662003996,1527863067,1527862811,1527862555,1527862299,1527862043,1527861787,1527861531,1527786267,1527786523,1527720483,1527720739,1527720995,1661938210,1661938209,1661938208,1527798043,1527797787,1528779618,1527797531,1661938207,1527797275,1527797019,1527796763,1527796507,1527796251,1527795995,1527993186,1661938206,1661938205,1661938204,1527720475,1527720731,1527720987,1527654691,1527654947,1528714338,1527655203,1527655459,1661872418,1661872417,1661872416,1661872415,1661872414,1661872413,1528058978,1661872412,1527654683,1527654939,1527655195,1527655451,1527588899,1527589155,1527589411,1528649058,1527589667,1527589923,1661806626,1661806625,1661806624,1661806623,1661806622,1527732507,1528124770,1661806621,1527732251,1527731995,1527731739,1527731483,1661806620,1527731227,1527730971,1527730715,1527730459,1527588891,1527589147,1527589403,1527589659,1527589915,1527523107,1527523363,1527523619,1527523875,1527524131,1527524387,1661740834,1661740833,1661740832,1661740831,1661740830,1661740829,1661740828,1527523099,1527523355,1527523611,1527523867,1527524123,1527524379,1527457315,1527457571,1366712879,1527457827,1527458083,1527458339,1527458595,1527458851,1661675042,1661675041,1661675040,1661675039,1661675038,1661675037,1661675036,1527457307,1527457563,1527457819,1527079466,1527458075,1527458331,1695035441,1527458587,1527458843,1527666971,1527391523,1527391779,1527392035,1527392291,1527392547,1527392803,1527393059,1364005468,1527393315,1527666715,1661609250,1527666459,1661609249,1527666203,1661609248,1527665947,1661609247,1527665691,1528583778,1661609246,1527665435,1661609245,1527665179,1661609244,1527664923,1527391515,1527391771,1528190562,1527392027,1527392283,1527392539,1527392795,1527393051,1527393307,1527325731,1527325987,1528518498,1527326243,1527326499,1527326755,1527327011,1527327267,1527327523,1527327779,1661543458,1528256354,1661543457,1661543456,1661543455,1661543454,1661543453,1661543452,1527325723,1527325979,1528453218,1527326235,1527326491,1527326747,1527327003,1527327259,1527327515,1527327771,1531528026,1528322146,1531527770,1531527514,1531527258,1665744987,1665744988,1665744989,1665744990,1665744991,1665744992,1665744993,1531529058,1531528802,1531528546,1531528290,1531528034,1531527778,1531527522,1531527266,1531594586,1531594330,1531594074,1531593818,1531593562,1531593306,1531593050,1665810779,1665810780,1665810781,1665810782,1665810783,1665810784,1665810785,1531594594,1531594338,1531594082,1531593826,1531593570,1531593314,1531593058,1531660122,1531659866,1358959950,1531659610,1527847740,1531659354,1531659098,1531658842,1627920459,1493702475,1493702219,1493701963,1627919435,1627920460,1493702476,1627919948,1493701964,1627919436,1627920461,1493702477,1493702221,1493701965,1627919437,1527079465,1627920462,1627920206,1627919950,1627919694,1627919438,1627920463,1627920207,1493702223,1627919695,1560817458,1627919439,1627920464,1695032369,1528387938,1627920208,1627919952,1627919696,1627919440,1627920465,1627920209,1493702225,1627919697,1529036386,1627919441,1627920466,1493702482,1627919954,1493701970,1627919442,1627920467,1529036378,1528970594,1627920211,1493702227,1627919699,1627919443,1627920468,1627920212,1627919956,1528970586,1528904802,1627919700,1627919444,1627920469,1627920213,1493702229,1627919701,1627919445,1528904794,1528839010,1627920470,1627920214,1627919958,1627919702,1627919446,1627920471,1493702487,1528839002,1527921506,1493702231,1493701975,1627919447,1627920472,1493702488,1627919960,1493701976,1527921498,1528773218,1627919448,1627920473,1493702489,1493702233,1493701977,1366626912,1366647393,1366647137,1627919449,1366646881,1366646625,1366646369,1366646113,1366645857,1366645601,1366645345,1366645089,1366644833,1366644577,1366644321,1366644065,1366643809,1366643553,1366643297,1366643041,1493702217,1627919690,1627919689,1627919946,1366642785,1366642529,1366642273,1366642017,1366641761,1366641505,1366641249,1366640993,1366640737,1366640481,1366640225,1627919434,1627919433,1627920202,1366639969,1366639713,1366639457,1366639201,1366638945,1366638689,1366638433,1366638177,1366637921,1366637665,1366637409,1366637153,1366636897,1627920201,1627920458,1527079464,1366636641,1366636385,1695037992,1366636129,1366635873,1560814898,1366635617,1366635361,1366635105,1366634849,1560817203,1366634593,1366634337,1366634081,1627920457,1366633825,1366633569,1366633313,1366633057,1366632801,1366632545,1366632289,1366632033,1366631777,1366631521,1366631265,1366631009,1366630753,1366630497,1366630241,1366629985,1366629729,1366629473,1366629217,1366626913,1366647394,1366647138,1366646882,1366646626,1366646370,1366646114,1366645858,1366645602,1366645346,1366645090,1366644834,1366644578,1366644322,1366644066,1366643810,1366643554,1366643298,1366643042,1366642786,1366642530,1366642274,1366642018,1366641762,1366641506,1366641250,1366640994,1366640738,1366640482,1366640226,1366639970,1366639714,1366639458,1527079463,1366639202,1366638946,1366638690,1366638434,1366638178,1560820009,1366637922,1366637666,1366637410,1366637154,1366636898,1366636642,1531994430,1460151859,1366636386,1366636130,1695034676,1366635874,1366635618,1366635362,1366635106,1366634850,1366634594,1366634338,1366634082,1366633826,1366633570,1366633314,1366633058,1366632802,1366632546,1366632290,1366632034,1366631778,1366631522,1366631266,1366631010,1366630754,1366630498,1366630242,1366629986,1366629730,1366629474,1366629218,1366628962,1366628706,1366628450,1662065724,1366628194,1366627938,1366627682,1366627426,1366627170,1366626914,1366712850,1366712594,1366712338,1366712082,1366711826,1366711570,1366711314,1366711058,1366710802,1367038535,1367040583,1367038534,1367040582,1367038533,1367040581,1367038532,1367040580,1367038531,1367040579,1367038530,1367040578,1367038529,1367040577,1367038528,1367040576,1366712851,1366710803,1367038527,1527079462,1367040575,1367038526,1728591914,1367040574,1367038525,1367040573,1367038524,1367040572,1367038523,1367040571,1367038522,1367040570,1367038521,1367040569,1367038520,1367040568,1366712852,1366710804,1367038519,1367040567,1367038518,1365989913,1365924377,1365858841,1367040566,1367038517,1367040565,1367038516,1367040564,1367038515,1367040563,1367038514,1367040562,1367038513,1367040561,1367038512,1367040560,1366712853,1366710805,1367038511,1367040559,1367038510,1367040558,1367038509,1531470364,1531470363,1531535899,1531470370,1531470371,1531470372,1531470373,1531535907,1531535908,1531470379,1531470380,1531535916,1531994678,1531994679,1532060214,1531994685,1531994686,1532060222,1359352348,1532119138,1532060258,1532060002,1532125794,1532058466,1532058210,1532057954,1532057698,1532123746,1532123490,1532056162,1532055906,1532055650,1367040557,1532055394,1532121442,1532121186,1532053858,1532053602,1530869090,1530868834,1530934626,1367038508,1560818727,1695032381,1695036710,1358959139,1359024674,1359090209,1359155744,1359221279,1359286814,1527079461,1359352349,1627920159,1359417884,1528974434,1529039706,1526937168,1526937424,1526937680,1526937936,1526938192,1526938448,1526938704,1526938960,1526939216,1526948432,1359090203,1359024668,1358959133,1663257435,1560815412,1663257436,1663257437,1663257438,1663257439,1663257440,1663257441,1529039714,1365973597,1365971549,1365973598,1365971550,1365973599,1365971551,1528379226,1528379234,1528313946,1528313954,1528445018,1560814139,1358959150,1526948431,1359024687,1459819057,1459884594,1359352372,1359417909,1695032638,1528445026,1528248666,1528248674,1528510810,1528510818,1528183386,1359417916,1459950138,1528183394,1528576602,1528576610,1528118106,1459884601,1526948430,1527079460,1359090231,1359024694,1358959157,1528118114,1528642394,1367040556,1367038507,1359024667,1358959132,1695031610,1528642402,1528052826,1695036965,1695032895,1358959140,1359024675,1359090210,1528052834,1528708186,1560813625,1528708194,1527987546,1527987554,1526948429,1528773978,1528773986,1527922266,1527922274,1528839770,1528839778,1695031096,1359155745,1359221280,1359286815,1359352350,1359417885,1358959149,1359024686,1459819056,1459884593,1459950130,1359417908,1528905570,1528971362,1394819418,1663254875,1663254876,1663254877,1560813111,1663254878,1663254879,1663254880,1526948428,1663254881,1529037154,1359417917,1459950139,1459884602,1459819065,1359024695,1358959158,1528387170,1528321378,1367040555,1527079459,1358959131,1528452450,1528255586,1695030582,1695037220,1367038506,1627920923,1526948427,1358959141,1359024676,1359090211,1359155746,1359221281,1359286816,1359352351,1359417886,1528517730,1364007514,1528189794,1528583010,1528124002,1528648290,1528058210,1526948426,1528713570,1358959148,1359024685,1359090222,1459884592,1459950129,1359417907,1527992418,1528778850,1527926626,1528844130,1526948425,1359417918,1359352381,1459884603,1459819066,1359024696,1358959159,1367040554,1367038505,1528909410,1528974690,1529039962,1663257691,1663257692,1663257693,1663257694,1663257695,1663257696,1493702939,1358959142,1359024677,1359090212,1359155747,1359221282,1663257697,1529039970,1365973600,1527079458,1365971552,1365973601,1365971553,1526948424,1365973602,1365973346,1365973090,1365972834,1365972578,1365972322,1365972066,1365971810,1393632060,1365971554,1530867298,1530867042,1530866786,1530866530,1530932578,1530932322,1530864994,1530864738,1359417883,1530864482,1528378970,1528378978,1528313690,1528313698,1528444762,1662067260,1359286817,1359352352,1359417887,1358959147,1359024684,1359090221,1359155758,1459950128,1359417906,1528444770,1528248410,1526948423,1528248418,1528510554,1528510562,1528183130,1528183138,1528576346,1528576354,1528117850,1528117858,1528642138,1358959143,1359024678,1662067004,1359090213,1359155748,1359221283,1359286818,1695033680,1695033424,1695033168,1359352353,1359417888,1528642146,1359417919,1358959146,1526948422,1359352382,1359286845,1459819067,1359024697,1358959160,1367040553,1367038504,1359024683,1359090220,1359155757,1359221294,1359417905,1528052570,1527079457,1627920411,1358959144,1359024679,1359090214,1528773210,1359155749,1627920415,1364007258,1359221284,1359286819,1359352354,1359417889,1695033689,1695032912,1695032656,1695032400,1358959145,1359024682,1359090219,1359155756,1359221293,1359286830,1359417904,1358959156,1364007002,1493702427,1359024680,1526948421,1359090215,1359155750,1359221285,1359286820,1359352355,1359417890,1359024693,1359024681,1359090218,1359155755,1359221292,1359286829,1359352366,1359417903,1359090230,1359155767,1459950137,1364006746,1493702171,1359090216,1359155751,1359221286,1359286821,1359352356,1359417891,1359417915,1359090217,1359155754,1359221291,1359286828,1359352365,1359417902,1359417920,1359155752,1359221287,1358959151,1359352383,1527079456,1359286822,1359352357,1695034421,1359417892,1528052578,1359155753,1359221290,1526948420,1359286846,1359221309,1359024698,1358959161,1367040552,1366712854,1359286827,1359352364,1359417901,1528707930,1364006490,1493701915,1359221288,1359286823,1359352358,1359417893,1359221289,1359286826,1359352363,1359417900,1359286824,1359352359,1359417894,1359286825,1359352362,1359417899,1526948433,1366710806,1367038503,1627919387,1359352360,1359417895,1364006234,1359352361,1359417898,1359417896,1359417897,1526948419,1493701403,1695032120,1627918875,1364005978,1627920924,1528707938,1527987290,1526948418,1359417921,1359352384,1359286847,1359221310,1359155773,1359024699,1527079455,1358959162,1367040551,1367038502,1560818480,1560815419,1560814135,1695032371,1695033402,1560814900,1526948417,1527987298,1528773722,1695032885,1493702940,1367040550,1367038501,1367040549,1367038500,1358961229,1358960973,1358960717,1358960461,1358960205,1358959949,1367040548,1367038499,1526948416,1359417922,1359286848,1359221311,1359155774,1359090237,1359024700,1358959163,1367040547,1367038498,1627920412,1358959693,1358960451,1493702428,1627919900,1367040546,1526946367,1526946623,1526946879,1526947135,1526947391,1526947647,1526947903,1526948159,1526948415,1367038497,1364005722,1367040545,1367038496,1367040544,1627400229,1627398215,1366712855,1493701916,1627919388,1366710807,1367038495,1367040543,1527986786,1367038494,1526946110,1528259123,1528324659,1528390195,1528455731,1528521267,1528586803,1528652339,1528717875,1367040542,1367038493,1527079454,1359417923,1359221312,1359155775,1359090238,1359024701,1358959164,1527986778,1493701404,1627918876,1367040541,1627398461,1358959952,1528773730,1367038492,1526936920,1527922010,1526946109,1528783411,1528848947,1528914483,1528980019,1529045555,1527798837,1527864373,1527929909,1627397959,1367040540,1367038491,1367040539,1367038490,1627920925,1367040538,1627396905,1358961193,1358960937,1358960711,1358960707,1367038489,1526946108,1527995445,1528060981,1528126517,1528192053,1528257589,1528323125,1528388661,1528454197,1493702941,1367040537,1367038488,1367040536,1366712856,1359417924,1459950146,1359155776,1359090239,1359024702,1358959165,1627920413,1366710808,1367038487,1367040535,1367038486,1527079453,1367040534,1560819499,1367038485,1367040533,1528707426,1526946107,1359024688,1528519733,1528585269,1528650805,1528716341,1528781877,1528847413,1528912949,1528978485,1367038484,1695033150,1367040532,1367038483,1367040531,1367038482,1367038738,1367038994,1358959699,1367039250,1367039506,1367039762,1367040018,1367040274,1367040530,1366954594,1366954850,1366955106,1366955362,1493702429,1366955618,1366955874,1366956130,1366956386,1366956642,1366956898,1366957154,1366957410,1366957666,1366957922,1366958178,1366958434,1366958690,1366958946,1526946106,1695039015,1529044021,1366712857,1359417925,1459950147,1459884610,1359090240,1359024703,1358959166,1366710809,1366959202,1366959458,1366959714,1366959970,1366960226,1366960482,1366960738,1366960994,1527079452,1366961250,1366961506,1493702943,1366961762,1366962018,1366962274,1366962530,1366962786,1366963042,1366963298,1366963554,1366963810,1366964066,1366964322,1366964578,1366964834,1366965090,1366965346,1366965602,1366965858,1366966114,1366966370,1366966626,1366966882,1366967138,1366967394,1366967650,1366967906,1366968162,1366968418,1366968674,1366968930,1366969186,1695033405,1366969442,1366969698,1366969954,1366970210,1366970466,1366970722,1366970978,1366971234,1526946105,1529043240,1366971490,1366971746,1366972002,1366972258,1493702173,1366972514,1366972770,1366973026,1366973282,1366973538,1366973794,1366974050,1366974306,1366974562,1366974818,1366975074,1527079451,1366954593,1366712858,1366710810,1560815932,1493701917,1526946104,1527800370,1527865906,1527931442,1359417926,1459950148,1459884611,1459819074,1359024704,1358959167,1358960681,1627919389,1662071115,1526946103,1527996978,1528062514,1528128050,1528193586,1528259122,1528324658,1366889056,1366909537,1528390194,1528455730,1366975073,1366712859,1366710811,1366954592,1560816187,1526946102,1528521266,1366710830,1528586802,1695038760,1528652338,1528717874,1528783410,1528848946,1528914482,1528980018,1493701405,1366712878,1359417927,1359352390,1459884612,1459819075,1359024705,1358959168,1366712860,1358960425,1366710812,1526946357,1526946613,1526946869,1526947125,1526947381,1526947637,1526947893,1526948149,1526948405,1627918877,1366975072,1366954591,1627400522,1526948404,1359417928,1359352391,1359286854,1459819076,1359024706,1358959169,1366712861,1627920926,1366710813,1366975071,1366954590,1526948403,1358960169,1366712862,1366710814,1359417929,1526948402,1359352392,1359286855,1359221318,1359024707,1358959170,1366975070,1366954589,1560815156,1627400266,1526948401,1366712863,1366710815,1358959913,1526948400,1359417930,1359352393,1359286856,1359221319,1359155782,1359024708,1358959171,1560814899,1527013915,1695035445,1526948399,1695032370,1527013916,1359417931,1359352394,1359286857,1359221320,1627400010,1359155783,1359090246,1359024709,1358959172,1526948398,1358959657,1527922018,1528839514,1527013917,1695035700,1526948397,1359417932,1359352395,1359286858,1359221321,1359155784,1359090247,1359024710,1358959173,1627399754,1527013918,1526948396,1560818227,1366889057,1366710829,1695033151,1527461201,1526948395,1359417933,1359352396,1359286859,1359221322,1359155785,1359090248,1359024711,1358959174,1364005466,1527013919,1366712877,1366909538,1366909282,1366909026,1366908770,1366908514,1366908258,1366908002,1366907746,1366907490,1366907234,1366906978,1366906722,1366906466,1366906210,1366905954,1366905698,1366905442,1366905186,1366904930,1366904674,1366904418,1366904162,1366903906,1366903650,1366903394,1366903138,1366902882,1366902626,1366902370,1366902114,1366901858,1366901602,1366901346,1366901090,1366900834,1366900578,1366900322,1366900066,1366899810,1366899554,1366899298,1366899042,1366898786,1366898530,1366898274,1366898018,1366897762,1366897506,1366897250,1527526737,1366896994,1366896738,1627920927,1358960195,1560818482,1358959939,1366896482,1366896226,1366895970,1366895714,1366895458,1366895202,1366894946,1366894690,1366894434,1366894178,1366893922,1366893666,1366893410,1366893154,1366892898,1366892642,1366892386,1366892130,1366891874,1366891618,1366891362,1366710828,1526948394,1359417934,1359352397,1359286860,1359221323,1359155786,1359090249,1366712876,1366891106,1366890850,1366890594,1366890338,1366890082,1366889826,1366889570,1366889314,1366889058,1366974994,1366974738,1366974482,1366974226,1366973970,1366973714,1366973458,1366973202,1366972946,1366974995,1627399498,1359024712,1527013920,1358959175,1526948393,1695036465,1359417935,1366972947,1695036972,1359352398,1359286861,1560816183,1359221324,1359155787,1359090250,1528707418,1528052066,1627399242,1359024713,1366974996,1358959176,1528839522,1526948392,1364007515,1695036720,1527013921,1526939473,1366972948,1366974997,1359417936,1359352399,1359286862,1526948391,1359221325,1359155788,1359090251,1366972949,1366974998,1359024714,1358959177,1695037476,1527013922,1526948390,1527592273,1359417937,1366972950,1366974999,1359352400,1359286863,1359221326,1359155789,1359090252,1359024715,1358959178,1366972951,1366975000,1695036975,1560819493,1526948389,1528905306,1560819502,1527013923,1527657809,1366972952,1366710827,1359417938,1359352401,1359286864,1359221327,1359155790,1359090253,1359024716,1366712875,1366975001,1358959179,1527723345,1627396941,1627397197,1695036966,1526948388,1527788881,1359417939,1359352402,1359286865,1359221328,1359155791,1359090254,1359024717,1358959180,1527013924,1366972953,1366975002,1627398986,1526948387,1527854417,1359417940,1359352403,1359286866,1359221329,1366972954,1366975003,1359155792,1359090255,1359024718,1358959181,1627397453,1627397709,1627397965,1366972955,1366975004,1526948386,1527013925,1359417941,1359352404,1359286867,1359221330,1359155793,1366972956,1366975005,1359090256,1359024719,1695037485,1358959182,1526948385,1359417942,1359352405,1366972957,1366975006,1359286868,1359221331,1359155794,1359090257,1359024720,1358959183,1358959955,1366972958,1366975007,1358959681,1358959937,1358960193,1358960449,1695036711,1358960705,1358960961,1627398221,1627398477,1527013926,1358961217,1627396929,1627397185,1627397441,1627397697,1627397953,1560816432,1627398733,1627398209,1627398465,1627398721,1627398977,1526948384,1359417943,1359352406,1366972959,1366975008,1359286869,1359221332,1359155795,1359090258,1359024721,1627400489,1358959184,1627399233,1627398989,1527660112,1627399245,1366972960,1366710826,1359417944,1627399489,1627399745,1560820777,1627400001,1627400257,1627400513,1359352407,1359286870,1359221333,1366712874,1366975009,1526948383,1359155796,1359090259,1359024722,1358959185,1526936913,1359417945,1359352408,1366972961,1366975010,1359286871,1359221334,1359155797,1359090260,1359024723,1627399501,1627399757,1366972962,1366975011,1527013927,1358959186,1627398730,1526948382,1359352409,1359286872,1359221335,1366972963,1366975012,1359155798,1359090261,1359024724,1358959187,1627400013,1528905314,1359286873,1366972964,1359221336,1359155799,1366975013,1526948381,1359090262,1359024725,1358959188,1359221337,1359155800,1359090263,1366972965,1366975014,1359024726,1358959189,1627400269,1359155801,1359090264,1359024727,1627400491,1366972966,1366975015,1627400235,1627399979,1627399723,1627399467,1627399211,1662066748,1527013928,1366972967,1366975016,1526948380,1358959190,1528971106,1394819162,1663254619,1663254620,1663254621,1366972968,1366710825,1359090265,1359024728,1358959191,1663254622,1663254623,1663254624,1663254625,1366712873,1366975017,1529036898,1627398955,1359024729,1627398474,1627398699,1627398443,1627398187,1366972969,1366975018,1627397931,1358959192,1627397675,1627397419,1695036717,1695033406,1627397163,1627396907,1560815928,1358961195,1358960939,1358960683,1358960427,1358960171,1358959915,1358959659,1526948379,1366972970,1366975019,1528387426,1358959193,1528321634,1528452706,1627400525,1662066492,1527013929,1366975069,1366954588,1528255842,1528517986,1695037740,1366972971,1366975020,1528190050,1366712864,1366710816,1366975068,1627398218,1695036456,1662066236,1366954587,1366972972,1366975021,1366712865,1366710817,1627400512,1627400256,1527013930,1627397962,1627400000,1366972973,1366975022,1627399744,1627399488,1627399232,1627398976,1627398720,1366975067,1366954586,1366972974,1366975023,1366954842,1366955098,1366955354,1366955610,1366955866,1366956122,1366956378,1366972975,1366975024,1366956634,1366956890,1366957146,1366957402,1366957658,1366957914,1366958170,1366958426,1366958682,1366958938,1366712866,1627398464,1627398208,1627400492,1627400236,1627399980,1627399724,1627399468,1627399212,1627398956,1627398700,1627398444,1627398188,1627397932,1627397952,1627397696,1560818734,1627397440,1627397184,1695033401,1527013931,1366710818,1627397676,1366959194,1366959450,1366959706,1366959962,1366960218,1627918878,1366960474,1366960730,1366960986,1366961242,1366961498,1728590639,1366961754,1366962010,1695033146,1366962266,1366962522,1627397420,1627397164,1627396908,1358961196,1358960940,1358960684,1358960428,1358960172,1358959916,1358959660,1627400233,1366962778,1366963034,1695031862,1366963290,1366963546,1366963802,1366964058,1560818224,1366964314,1366964570,1695032119,1366964826,1366965082,1366965338,1366965594,1366965850,1366966106,1366966362,1560815933,1366966618,1366966874,1366967130,1366967386,1366972976,1366710824,1493701406,1366967642,1366967898,1366968154,1366968410,1366968666,1366968922,1366969178,1366969434,1366969690,1366969946,1695035697,1366970202,1366970458,1366970714,1366970970,1366971226,1528052058,1366971482,1366971738,1366971994,1366972250,1366972506,1695032376,1366972762,1627396928,1560817714,1460152892,1358961216,1358960960,1358960704,1358960448,1358960192,1459819058,1358959936,1358959680,1560814905,1527013932,1627919390,1366975066,1366973017,1366975065,1366712867,1728589619,1366710819,1366973016,1364007516,1366975064,1366973015,1695032890,1366975063,1366973014,1366975062,1560817204,1366973013,1627400485,1527013933,1526939480,1364005467,1560818473,1366975061,1627919646,1366973012,1366975060,1366973011,1366975059,1366973010,1627919902,1366975058,1366973009,1366975057,1366712868,1695034677,1366710820,1366973008,1627397706,1662065980,1527013934,1366712872,1627920158,1366975056,1366973007,1366975055,1366973006,1366975054,1366973005,1366975053,1366973004,1366975052,1366973003,1695035698,1528641634,1366975051,1366973002,1560820522,1366975050,1366973001,1366975049,1366712869,1366710821,1366973000,1366975025,1366975048,1627920414,1366972999,1366975047,1366972998,1366975046,1366972997,1366975045,1366972996,1527013935,1527013936,1527013937,1527013938,1627398471,1627400536,1627400280,1627400024,1527013939,1627399768,1627399512,1627399256,1728588344,1627399000,1527013940,1358959683,1560818218,1627400502,1627400246,1627399990,1695035953,1627399734,1627399478,1627399222,1627398966,1627398710,1627398454,1627398198,1627397942,1627397686,1627398744,1627398488,1359286836,1695033395,1359352373,1627398232,1627397976,1695039016,1527013941,1527013685,1527013429,1527013173,1527012917,1560815929,1527012661,1493702942,1527012405,1527012149,1527011893,1695031606,1528583266,1627397720,1627397464,1627397208,1627396952,1359417910,1529045554,1627397430,1627397174,1627396918,1358961206,1358960950,1358960694,1358960438,1358960182,1527798581,1627399973,1627399717,1627399461,1627399205,1627398949,1627398693,1527864117,1358959926,1358959670,1527929653,1627398437,1627398181,1627397925,1527995189,1528060725,1528126261,1528191797,1527011638,1528257333,1528322869,1528388405,1528453941,1528519477,1528585013,1528650549,1528716085,1366692444,1527011639,1627397450,1366972977,1695035701,1358961240,1358960984,1560821033,1528781621,1366975026,1627397669,1695037995,1528847157,1528912693,1528978229,1529043765,1627397194,1627399977,1366712925,1627397413,1527011640,1460157482,1527800369,1527011641,1627397157,1627396901,1358961189,1358960933,1358960677,1358960421,1358960165,1358959909,1358959653,1560820523,1527865905,1527931441,1527996977,1528062513,1528128049,1528193585,1528259121,1528324657,1527011642,1358960728,1358960472,1358960216,1358959960,1528124258,1528390193,1528455729,1528521265,1528586801,1560818228,1528652337,1627398205,1528717873,1528783409,1528848945,1527011643,1695035691,1366975044,1366972995,1627396938,1358961226,1560815411,1358959704,1528914481,1528980017,1528641626,1529045553,1528117346,1527798325,1527863861,1527929397,1527994933,1528060469,1527011644,1528126005,1528191541,1528257077,1528322613,1528388149,1528453685,1528519221,1528584757,1527011645,1695033394,1528650293,1528715829,1358961219,1528781365,1528117338,1358960963,1528846901,1528912437,1528977973,1529043509,1527011646,1695033649,1527013951,1358960970,1358960714,1527013695,1527013439,1527013183,1358960458,1527012927,1527012671,1527012415,1527012159,1527011903,1695035436,1527013952,1528648546,1560816176,1627400499,1695032377,1528575842,1527013953,1560818735,1460155187,1560816431,1527013954,1627400243,1527013955,1695035181,1527013956,1528058466,1627399987,1695034414,1358959701,1358959957,1358960213,1358960469,1527013957,1358960725,1358960981,1358961237,1627396949,1627397205,1627397461,1627399731,1627397717,1627397973,1627398229,1695034669,1527013958,1695033433,1366975043,1366972994,1366975042,1527013959,1627398992,1695034924,1560818738,1366972993,1527013960,1627399475,1366975041,1366712870,1366710822,1366972992,1527013961,1366975040,1366972991,1627399219,1527013962,1627399721,1366975039,1366972990,1527013963,1560817198,1560817451,1527013964,1366975038,1366972989,1366975037,1366972988,1527013965,1528713826,1695034671,1627397161,1627397417,1366975036,1366972987,1366975035,1366972986,1560817706,1527013966,1695036721,1695035689,1528575834,1527013967,1695034416,1366975034,1366972985,1366975033,1366712871,1527013968,1528182626,1527004752,1527004496,1527004240,1527003984,1527003728,1527003472,1527003216,1528182618,1528510050,1527002960,1527002704,1627397673,1366710823,1366972984,1695034161,1527013969,1528510042,1528247906,1527005009,1527725648,1527791184,1527856720,1527002449,1695035944,1366975032,1528247898,1528444258,1366972983,1366975031,1366972982,1695037996,1527013970,1627397929,1527005010,1528444250,1528313186,1393636432,1661878095,1527002450,1560818471,1695037741,1527013971,1527005011,1528313178,1528378466,1662071631,1527002451,1527013972,1527005012,1627398185,1661878350,1527992674,1528378458,1366972978,1366975027,1528779106,1527002452,1560818726,1527013973,1527005013,1662071374,1366975030,1366972981,1661878605,1527002453,1527013974,1560816178,1527005014,1662071117,1527002454,1560819758,1527013975,1527005015,1661878860,1527002455,1527013976,1560815923,1366972979,1366975028,1527005016,1662070860,1560821803,1695039275,1595886153,1595820617,1595755081,1595689545,1595624009,1595558473,1595492937,1595427401,1595361865,1627399465,1595296329,1595230793,1595165257,1595099721,1596017481,1595951945,1595886409,1595820873,1595755337,1595689801,1595624265,1595558729,1595493193,1595427657,1595362121,1595296585,1595231049,1595165513,1595099977,1596017737,1595952201,1595886665,1595821129,1595755593,1595690057,1595624521,1595558985,1595493449,1595427913,1595362377,1529040482,1663258209,1663258208,1663258207,1663258206,1663258205,1695041324,1527660360,1527725896,1527791432,1527002456,1527013977,1527005017,1527856968,1663258204,1663258203,1529040474,1528975202,1527460680,1527526216,1527591752,1527657288,1527722824,1527788360,1527853896,1695040036,1528909922,1527002457,1695032402,1560814930,1560815186,1560815442,1695033426,1560815954,1695036709,1528844642,1366975029,1366972980,1527926882,1528844386,1528909666,1528974946,1529040218,1663257947,1527927138,1663257948,1663257949,1663257950,1663257951,1663257952,1663257953,1529040226,1530864226,1528779362,1530930274,1530930018,1530862690,1530862434,1530927970,1595035209,1595034953,1595034697,1527992930,1595034441,1595034185,1595100489,1358959694,1595166025,1595231561,1595297097,1595362633,1560819503,1627400503,1627400247,1627399991,1627399735,1627399479,1627399223,1627398967,1595428169,1627398711,1627399209,1627398455,1627398199,1627397943,1627397687,1627397431,1528714082,1595493705,1595559241,1595624777,1595690313,1595755849,1595821385,1595886921,1595952457,1528058722,1596017993,1595100745,1595166281,1595231817,1595297353,1595362889,1595428425,1595493961,1528648802,1595559497,1595625033,1595690569,1595756105,1595821641,1595887177,1595952713,1596018249,1528124514,1595100233,1595165769,1595231305,1595296841,1528378714,1695033396,1528378722,1528313434,1528583522,1627398441,1528313442,1528444506,1627398697,1528444514,1528248154,1528248162,1528510298,1528190306,1528510306,1528182874,1528182882,1528576090,1528576098,1528117594,1528117602,1528641882,1528518242,1528641890,1528052314,1627397175,1627396919,1358961207,1358960951,1358960695,1358960439,1358960183,1358959927,1358959671,1358960211,1695036964,1528052322,1528707674,1528707682,1527987034,1527987042,1528256098,1528773466,1528773474,1527921754,1527921762,1528839258,1627398953,1695033141,1528839266,1528452962,1528905050,1528905058,1528970842,1695036976,1528970850,1529036634,1529036635,1529036636,1528321890,1529036637,1529036638,1529036639,1529036640,1529036641,1529036642,1528387682,1366956638,1366956637,1366956636,1366956635,1526797079,1526797080,1526797081,1526797082,1526797083,1526797084,1526797085,1526797086,1526797087,1526797088,1526797089,1526797090,1526797091,1526797092,1526797093,1526797094,1526797095,1526797096,1526797097,1526797098,1526797099,1526797100,1526797101,1526797102,1526797103,1526797104,1526797105,1526797106,1526797107,1526797108,1526797109,1526797110,1526797111,1526797112,1526797113,1526797114,1526797115,1526797116,1526797117,1526797118,1526797119,1526797120,1526797121,1526797122,1526797123,1526797124,1526797125,1526797126,1526797127,1526797128,1526797129,1526797130,1526797131,1526797132,1526797133,1526797134,1526797135,1526797136,1526797137,1526797138,1526797139,1526797140,1526797141,1526797142,1526797143,1526797144,1526797145,1526797146,1526797147,1526797148,1526797149,1526797150,1526797151,1526797152,1526797153,1366956385,1366956384,1366956383,1366956382,1526797335,1526797336,1526797337,1526797338,1526797339,1526797340,1526797341,1526797342,1526797343,1526797344,1526797345,1526797346,1526797347,1526797348,1526797349,1526797350,1526797351,1526797352,1526797353,1526797354,1526797355,1526797356,1526797357,1526797358,1526797359,1526797360,1526797361,1526797362,1526797363,1526797364,1526797365,1526797366,1526797367,1526797368,1526797369,1526797370,1526797371,1526797372,1526797373,1526797374,1526797375,1526797376,1526797377,1526797378,1526797379,1526797380,1526797381,1526797382,1526797383,1526797384,1526797385,1526797386,1526797387,1526797388,1526797389,1526797390,1526797391,1526797392,1526797393,1526797394,1526797395,1526797396,1526797397,1526797398,1526797399,1526797400,1526797401,1526797402,1526797403,1526797404,1526797405,1526797406,1526797407,1526797408,1526797409,1366956381,1366956380,1366956379,1366956129,1526797591,1526797592,1526797593,1526797594,1526797595,1526797596,1526797597,1526797598,1526797599,1526797600,1526797601,1526797602,1526797603,1526797604,1526797605,1526797606,1526797607,1526797608,1526797609,1526797610,1526797611,1526797612,1526797613,1526797614,1526797615,1526797616,1526797617,1526797618,1526797619,1526797620,1526797621,1526797622,1526797623,1526797624,1526797625,1526797626,1526797627,1526797628,1526797629,1526797630,1526797631,1526797632,1526797633,1526797634,1526797635,1526797636,1526797637,1526797638,1526797639,1526797640,1526797641,1526797642,1526797643,1526797644,1526797645,1526797646,1526797647,1526797648,1526797649,1526797650,1526797651,1526797652,1526797653,1526797654,1526797655,1526797656,1526797657,1526797658,1526797659,1526797660,1526797661,1526797662,1526797663,1526797664,1526797665,1366956128,1366956127,1366956126,1366956125,1526797847,1526797848,1526797849,1526797850,1526797851,1526797852,1526797853,1526797854,1526797855,1526797856,1526797857,1526797858,1526797859,1526797860,1526797861,1526797862,1526797863,1526797864,1526797865,1526797866,1526797867,1526797868,1526797869,1526797870,1526797871,1526797872,1526797873,1526797874,1526797875,1526797876,1526797877,1526797878,1526797879,1526797880,1526797881,1526797882,1526797883,1526797884,1526797885,1526797886,1526797887,1526797888,1526797889,1526797890,1526797891,1526797892,1526797893,1526797894,1526797895,1526797896,1526797897,1526797898,1526797899,1526797900,1526797901,1526797902,1526797903,1526797904,1526797905,1526797906,1526797907,1526797908,1526797909,1526797910,1526797911,1526797912,1526797913,1526797914,1526797915,1526797916,1526797917,1526797918,1526797919,1526797920,1526797921,1366956124,1366956123,1366955873,1366955872,1526798103,1526798104,1526798105,1526798106,1526798107,1526798108,1526798109,1526798110,1526798111,1526798112,1526798113,1526798114,1526798115,1526798116,1526798117,1526798118,1526798119,1526798120,1526798121,1526798122,1526798123,1526798124,1526798125,1526798126,1526798127,1526798128,1526798129,1526798130,1526798131,1526798132,1526798133,1526798134,1526798135,1526798136,1526798137,1526798138,1526798139,1526798140,1526798141,1526798142,1526798143,1526798144,1526798145,1526798146,1526798147,1526798148,1526798149,1526798150,1526798151,1526798152,1526798153,1526798154,1526798155,1526798156,1526798157,1526798158,1526798159,1526798160,1526798161,1526798162,1526798163,1526798164,1526798165,1526798166,1526798167,1526798168,1526798169,1526798170,1526798171,1526798172,1526798173,1526798174,1526798175,1526798176,1526798177,1366955871,1366955870,1366955869,1366955868,1526798359,1526798360,1526798361,1526798362,1526798363,1526798364,1526798365,1526798366,1526798367,1526798368,1526798369,1526798370,1526798371,1526798372,1526798373,1526798374,1526798375,1526798376,1526798377,1526798378,1526798379,1526798380,1526798381,1526798382,1526798383,1526798384,1526798385,1526798386,1526798387,1526798388,1526798389,1526798390,1526798391,1526798392,1526798393,1526798394,1526798395,1526798396,1526798397,1526798398,1526798399,1526798400,1526798401,1526798402,1526798403,1526798404,1526798405,1526798406,1526798407,1526798408,1526798409,1526798410,1526798411,1526798412,1526798413,1526798414,1526798415,1526798416,1526798417,1526798418,1526798419,1526798420,1526798421,1526798422,1526798423,1526798424,1526798425,1526798426,1526798427,1526798428,1526798429,1526798430,1526798431,1526798432,1526798433,1366955867,1366955617,1366955616,1366955615,1526798615,1526798616,1526798617,1526798618,1526798619,1526798620,1526798621,1526798622,1526798623,1526798624,1526798625,1526798626,1526798627,1526798628,1526798629,1526798630,1526798631,1526798632,1526798633,1526798634,1526798635,1526798636,1526798637,1526798638,1526798639,1526798640,1526798641,1526798642,1526798643,1526798644,1526798645,1526798646,1526798647,1526798648,1526798649,1526798650,1526798651,1526798652,1526798653,1526798654,1526798655,1526798656,1526798657,1526798658,1526798659,1526798660,1526798661,1526798662,1526798663,1526798664,1526798665,1526798666,1526798667,1526798668,1526798669,1526798670,1526798671,1526798672,1526798673,1526798674,1526798675,1526798676,1526798677,1526798678,1526798679,1526798680,1526798681,1526798682,1526798683,1526798684,1526798685,1526798686,1526798687,1526798688,1526798689,1366955614,1366955613,1366955612,1366955611,1526798871,1526798872,1526798873,1526798874,1526798875,1526798876,1526798877,1526798878,1526798879,1526798880,1526798881,1526798882,1526798883,1526798884,1526798885,1526798886,1526798887,1526798888,1526798889,1526798890,1526798891,1526798892,1526798893,1526798894,1526798895,1526798896,1526798897,1526798898,1526798899,1526798900,1526798901,1526798902,1526798903,1526798904,1526798905,1526798906,1526798907,1526798908,1526798909,1526798910,1526798911,1526798912,1526798913,1526798914,1526798915,1526798916,1526798917,1526798918,1526798919,1526798920,1526798921,1526798922,1526798923,1526798924,1526798925,1526798926,1526798927,1526798928,1526798929,1526798930,1526798931,1526798932,1526798933,1526798934,1526798935,1526798936,1526798937,1526798938,1526798939,1526798940,1526798941,1526798942,1526798943,1526798944,1526798945,1366955361,1366955360,1366955359,1366955358,1526799127,1526799128,1526799129,1526799130,1526799131,1526799132,1526799133,1526799134,1526799135,1526799136,1526799137,1526799138,1526799139,1526799140,1526799141,1526799142,1526799143,1526799144,1526799145,1526799146,1526799147,1526799148,1526799149,1526799150,1526799151,1526799152,1526799153,1526799154,1526799155,1526799156,1526799157,1526799158,1526799159,1526799160,1526799161,1526799162,1526799163,1526799164,1526799165,1526799166,1526799167,1526799168,1526799169,1526799170,1526799171,1526799172,1526799173,1526799174,1526799175,1526799176,1526799177,1526799178,1526799179,1526799180,1526799181,1526799182,1526799183,1526799184,1526799185,1526799186,1526799187,1526799188,1526799189,1526799190,1526799191,1526799192,1526799193,1526799194,1526799195,1526799196,1526799197,1526799198,1526799199,1526799200,1526799201,1366955357,1366955356,1366955355,1366955105,1526799383,1526799384,1526799385,1526799386,1526799387,1526799388,1526799389,1526799390,1526799391,1526799392,1526799393,1526799394,1526799395,1526799396,1526799397,1526799398,1526799399,1526799400,1526799401,1526799402,1526799403,1526799404,1526799405,1526799406,1526799407,1526799408,1526799409,1526799410,1526799411,1526799412,1526799413,1526799414,1526799415,1526799416,1526799417,1526799418,1526799419,1526799420,1526799421,1526799422,1526799423,1526799424,1526799425,1526799426,1526799427,1526799428,1526799429,1526799430,1526799431,1526799432,1526799433,1526799434,1526799435,1526799436,1526799437,1526799438,1526799439,1526799440,1526799441,1526799442,1526799443,1526799444,1526799445,1526799446,1526799447,1526799448,1526799449,1526799450,1526799451,1526799452,1526799453,1526799454,1526799455,1526799456,1526799457,1366955104,1366955103,1366955102,1366955101,1526799639,1526799640,1526799641,1526799642,1526799643,1526799644,1526799645,1526799646,1526799647,1526799648,1526799649,1526799650,1526799651,1526799652,1526799653,1526799654,1526799655,1526799656,1526799657,1526799658,1526799659,1526799660,1526799661,1526799662,1526799663,1526799664,1526799665,1526799666,1526799667,1526799668,1526799669,1526799670,1526799671,1526799672,1526799673,1526799674,1526799675,1526799676,1526799677,1526799678,1526799679,1526799680,1526799681,1526799682,1526799683,1526799684,1526799685,1526799686,1526799687,1526799688,1526799689,1526799690,1526799691,1526799692,1526799693,1526799694,1526799695,1526799696,1526799697,1526799698,1526799699,1526799700,1526799701,1526799702,1526799703,1526799704,1526799705,1526799706,1526799707,1526799708,1526799709,1526799710,1526799711,1526799712,1526799713,1366955100,1366955099,1366954849,1366954848,1526799895,1526799896,1526799897,1526799898,1526799899,1526799900,1526799901,1526799902,1526799903,1526799904,1526799905,1526799906,1526799907,1526799908,1526799909,1526799910,1526799911,1526799912,1526799913,1526799914,1526799915,1526799916,1526799917,1526799918,1526799919,1526799920,1526799921,1526799922,1526799923,1526799924,1526799925,1526799926,1526799927,1526799928,1526799929,1526799930,1526799931,1526799932,1526799933,1526799934,1526799935,1526799936,1526799937,1526799938,1526799939,1526799940,1526799941,1526799942,1526799943,1526799944,1526799945,1526799946,1526799947,1526799948,1526799949,1526799950,1526799951,1526799952,1526799953,1526799954,1526799955,1526799956,1526799957,1526799958,1526799959,1526799960,1526799961,1526799962,1526799963,1526799964,1526799965,1526799966,1526799967,1526799968,1526799969,1366954847,1366954846,1366954845,1366954844,1526800151,1526800152,1526800153,1526800154,1526800155,1526800156,1526800157,1526800158,1526800159,1526800160,1526800161,1526800162,1526800163,1526800164,1526800165,1526800166,1526800167,1526800168,1526800169,1526800170,1526800171,1526800172,1526800173,1526800174,1526800175,1526800176,1526800177,1526800178,1526800179,1526800180,1526800181,1526800182,1526800183,1526800184,1526800185,1526800186,1526800187,1526800188,1526800189,1526800190,1526800191,1526800192,1526800193,1526800194,1526800195,1526800196,1526800197,1526800198,1526800199,1526800200,1526800201,1526800202,1526800203,1526800204,1526800205,1526800206,1526800207,1526800208,1526800209,1526800210,1526800211,1526800212,1526800213,1526800214,1526800215,1526800216,1526800217,1526800218,1526800219,1526800220,1526800221,1526800222,1526800223,1526800224,1526800225,1366954843,1534681441,1534681440,1534681439,1526800407,1526800408,1526800409,1526800410,1526800411,1526800412,1526800413,1526800414,1526800415,1526800416,1526800417,1526800418,1526800419,1526800420,1526800421,1526800422,1526800423,1526800424,1526800425,1526800426,1526800427,1526800428,1526800429,1526800430,1526800431,1526800432,1526800433,1526800434,1526800435,1526800436,1526800437,1526800438,1526800439,1526800440,1526800441,1526800442,1526800443,1526800444,1526800445,1526800446,1526800447,1526800448,1526800449,1526800450,1526800451,1526800452,1526800453,1526800454,1526800455,1526800456,1526800457,1526800458,1526800459,1526800460,1526800461,1526800462,1526800463,1526800464,1526800465,1526800466,1526800467,1526800468,1526800469,1526800470,1526800471,1526800472,1526800473,1526800474,1526800475,1526800476,1526800477,1526800478,1526800479,1526800480,1526800481,1534681438,1534681437,1534681436,1534681435,1526800663,1526800664,1526800665,1526800666,1526800667,1526800668,1526800669,1526800670,1526800671,1526800672,1526800673,1526800674,1526800675,1526800676,1526800677,1526800678,1526800679,1526800680,1526800681,1526800682,1526800683,1526800684,1526800685,1526800686,1526800687,1526800688,1526800689,1526800690,1526800691,1526800692,1526800693,1526800694,1526800695,1526800696,1526800697,1526800698,1526800699,1526800700,1526800701,1526800702,1526800703,1526800704,1526800705,1526800706,1526800707,1526800708,1526800709,1526800710,1526800711,1526800712,1526800713,1526800714,1526800715,1526800716,1526800717,1526800718,1526800719,1526800720,1526800721,1526800722,1526800723,1526800724,1526800725,1526800726,1526800727,1526800728,1526800729,1526800730,1526800731,1526800732,1526800733,1526800734,1526800735,1526800736,1526800737,1534681434,1366909273,1366909272,1366909271,1526800919,1526800920,1526800921,1526800922,1526800923,1526800924,1526800925,1526800926,1526800927,1526800928,1526800929,1526800930,1526800931,1526800932,1526800933,1526800934,1526800935,1526800936,1526800937,1526800938,1526800939,1526800940,1526800941,1526800942,1526800943,1526800944,1526800945,1526800946,1526800947,1526800948,1526800949,1526800950,1526800951,1526800952,1526800953,1526800954,1526800955,1526800956,1526800957,1526800958,1526800959,1526800960,1526800961,1526800962,1526800963,1526800964,1526800965,1526800966,1526800967,1526800968,1526800969,1526800970,1526800971,1526800972,1526800973,1526800974,1526800975,1526800976,1526800977,1526800978,1526800979,1526800980,1526800981,1526800982,1526800983,1526800984,1526800985,1526800986,1526800987,1526800988,1526800989,1526800990,1526800991,1526800992,1526800993,1366909270,1366909269,1366909268,1366909267,1526801175,1526801176,1526801177,1526801178,1526801179,1526801180,1526801181,1526801182,1526801183,1526801184,1526801185,1526801186,1526801187,1526801188,1526801189,1526801190,1526801191,1526801192,1526801193,1526801194,1526801195,1526801196,1526801197,1526801198,1526801199,1526801200,1526801201,1526801202,1526801203,1526801204,1526801205,1526801206,1526801207,1526801208,1526801209,1526801210,1526801211,1526801212,1526801213,1526801214,1526801215,1526801216,1526801217,1526801218,1526801219,1526801220,1526801221,1526801222,1526801223,1526801224,1526801225,1526801226,1526801227,1526801228,1526801229,1526801230,1526801231,1526801232,1526801233,1526801234,1526801235,1526801236,1526801237,1526801238,1526801239,1526801240,1526801241,1526801242,1526801243,1526801244,1526801245,1526801246,1526801247,1526801248,1526801249,1366909266,1366909265,1366909264,1366909263,1526801431,1526801432,1526801433,1526801434,1526801435,1526801436,1526801437,1526801438,1526801439,1526801440,1526801441,1526801442,1526801443,1526801444,1526801445,1526801446,1526801447,1526801448,1526801449,1526801450,1526801451,1526801452,1526801453,1526801454,1526801455,1526801456,1526801457,1526801458,1526801459,1526801460,1526801461,1526801462,1526801463,1526801464,1526801465,1526801466,1526801467,1526801468,1526801469,1526801470,1526801471,1526801472,1526801473,1526801474,1526801475,1526801476,1526801477,1526801478,1526801479,1526801480,1526801481,1526801482,1526801483,1526801484,1526801485,1526801486,1526801487,1526801488,1526801489,1526801490,1526801491,1526801492,1526801493,1526801494,1526801495,1526801496,1526801497,1526801498,1526801499,1526801500,1526801501,1526801502,1526801503,1526801504,1526801505,1366909262,1366909261,1366909260,1366909259,1526801687,1526801688,1526801689,1526801690,1526801691,1526801692,1526801693,1526801694,1526801695,1526801696,1526801697,1526801698,1526801699,1526801700,1526801701,1526801702,1526801703,1526801704,1526801705,1526801706,1526801707,1526801708,1526801709,1526801710,1526801711,1526801712,1526801713,1526801714,1526801715,1526801716,1526801717,1526801718,1526801719,1526801720,1526801721,1526801722,1526801723,1526801724,1526801725,1526801726,1526801727,1526801728,1526801729,1526801730,1526801731,1526801732,1526801733,1526801734,1526801735,1526801736,1526801737,1526801738,1526801739,1526801740,1526801741,1526801742,1526801743,1526801744,1526801745,1526801746,1526801747,1526801748,1526801749,1526801750,1526801751,1526801752,1526801753,1526801754,1526801755,1526801756,1526801757,1526801758,1526801759,1526801760,1526801761,1366909258,1366909257,1366909256,1366909255,1526801943,1526801944,1526801945,1526801946,1526801947,1526801948,1526801949,1526801950,1526801951,1526801952,1526801953,1526801954,1526801955,1526801956,1526801957,1526801958,1526801959,1526801960,1526801961,1526801962,1526801963,1526801964,1526801965,1526801966,1526801967,1526801968,1526801969,1526801970,1526801971,1526801972,1526801973,1526801974,1526801975,1526801976,1526801977,1526801978,1526801979,1526801980,1526801981,1526801982,1526801983,1526801984,1526801985,1526801986,1526801987,1526801988,1526801989,1526801990,1526801991,1526801992,1526801993,1526801994,1526801995,1526801996,1526801997,1526801998,1526801999,1526802000,1526802001,1526802002,1526802003,1526802004,1526802005,1526802006,1526802007,1526802008,1526802009,1526802010,1526802011,1526802012,1526802013,1526802014,1526802015,1526802016,1526802017,1366909254,1366909253,1366909252,1366909251,1526802199,1526802200,1526802201,1526802202,1526802203,1526802204,1526802205,1526802206,1526802207,1526802208,1526802209,1526802210,1526802211,1526802212,1526802213,1526802214,1526802215,1526802216,1526802217,1526802218,1526802219,1526802220,1526802221,1526802222,1526802223,1526802224,1526802225,1526802226,1526802227,1526802228,1526802229,1526802230,1526802231,1526802232,1526802233,1526802234,1526802235,1526802236,1526802237,1526802238,1526802239,1526802240,1526802241,1526802242,1526802243,1526802244,1526802245,1526802246,1526802247,1526802248,1526802249,1526802250,1526802251,1526802252,1526802253,1526802254,1526802255,1526802256,1526802257,1526802258,1526802259,1526802260,1526802261,1526802262,1526802263,1526802264,1526802265,1526802266,1526802267,1526802268,1526802269,1526802270,1526802271,1526802272,1526802273,1366909250,1366909249,1366909248,1366909247,1526802455,1526802456,1526802457,1526802458,1526802459,1526802460,1526802461,1526802462,1526802463,1526802464,1526802465,1526802466,1526802467,1526802468,1526802469,1526802470,1526802471,1526802472,1526802473,1526802474,1526802475,1526802476,1526802477,1526802478,1526802479,1526802480,1526802481,1526802482,1526802483,1526802484,1526802485,1526802486,1526802487,1526802488,1526802489,1526802490,1526802491,1526802492,1526802493,1526802494,1526802495,1526802496,1526802497,1526802498,1526802499,1526802500,1526802501,1526802502,1526802503,1526802504,1526802505,1526802506,1526802507,1526802508,1526802509,1526802510,1526802511,1526802512,1526802513,1526802514,1526802515,1526802516,1526802517,1526802518,1526802519,1526802520,1526802521,1526802522,1526802523,1526802524,1526802525,1526802526,1526802527,1526802528,1526802529,1366909246,1366909245,1366909244,1366909243,1526802711,1526802712,1526802713,1526802714,1526802715,1526802716,1526802717,1526802718,1526802719,1526802720,1526802721,1526802722,1526802723,1526802724,1526802725,1526802726,1526802727,1526802728,1526802729,1526802730,1526802731,1526802732,1526802733,1526802734,1526802735,1526802736,1526802737,1526802738,1526802739,1526802740,1526802741,1526802742,1526802743,1526802744,1526802745,1526802746,1526802747,1526802748,1526802749,1526802750,1526802751,1526802752,1526802753,1526802754,1526802755,1526802756,1526802757,1526802758,1526802759,1526802760,1526802761,1526802762,1526802763,1526802764,1526802765,1526802766,1526802767,1526802768,1526802769,1526802770,1526802771,1526802772,1526802773,1526802774,1526802775,1526802776,1526802777,1526802778,1526802779,1526802780,1526802781,1526802782,1526802783,1526802784,1526802785,1366909242,1366909241,1366909240,1366909239,1526802967,1526802968,1526802969,1526802970,1526802971,1526802972,1526802973,1526802974,1526802975,1526802976,1526802977,1526802978,1526802979,1526802980,1526802981,1526802982,1526802983,1526802984,1526802985,1526802986,1526802987,1526802988,1526802989,1526802990,1526802991,1526802992,1526802993,1526802994,1526802995,1526802996,1526802997,1526802998,1526802999,1526803000,1526803001,1526803002,1526803003,1526803004,1526803005,1526803006,1526803007,1526803008,1526803009,1526803010,1526803011,1526803012,1526803013,1526803014,1526803015,1526803016,1526803017,1526803018,1526803019,1526803020,1526803021,1526803022,1526803023,1526803024,1526803025,1526803026,1526803027,1526803028,1526803029,1526803030,1526803031,1526803032,1526803033,1526803034,1526803035,1526803036,1526803037,1526803038,1526803039,1526803040,1526803041,1366909238,1366909237,1366909236,1366909235,1526803223,1526803224,1526803225,1526803226,1526803227,1526803228,1526803229,1526803230,1526803231,1526803232,1526803233,1526803234,1526803235,1526803236,1526803237,1526803238,1526803239,1526803240,1526803241,1526803242,1526803243,1526803244,1526803245,1526803246,1526803247,1526803248,1526803249,1526803250,1526803251,1526803252,1526803253,1526803254,1526803255,1526803256,1526803257,1526803258,1526803259,1526803260,1526803261,1526803262,1526803263,1526803264,1526803265,1526803266,1526803267,1526803268,1526803269,1526803270,1526803271,1526803272,1526803273,1526803274,1526803275,1526803276,1526803277,1526803278,1526803279,1526803280,1526803281,1526803282,1526803283,1526803284,1526803285,1526803286,1526803287,1526803288,1526803289,1526803290,1526803291,1526803292,1526803293,1526803294,1526803295,1526803296,1526803297,1366909234,1366909233,1366909232,1366909231,1526803479,1526803480,1526803481,1526803482,1526803483,1526803484,1526803485,1526803486,1526803487,1526803488,1526803489,1526803490,1526803491,1526803492,1526803493,1526803494,1526803495,1526803496,1526803497,1526803498,1526803499,1526803500,1526803501,1526803502,1526803503,1526803504,1526803505,1526803506,1526803507,1526803508,1526803509,1526803510,1526803511,1526803512,1526803513,1526803514,1526803515,1526803516,1526803517,1526803518,1526803519,1526803520,1526803521,1526803522,1526803523,1526803524,1526803525,1526803526,1526803527,1526803528,1526803529,1526803530,1526803531,1526803532,1526803533,1526803534,1526803535,1526803536,1526803537,1526803538,1526803539,1526803540,1526803541,1526803542,1526803543,1526803544,1526803545,1526803546,1526803547,1526803548,1526803549,1526803550,1526803551,1526803552,1526803553,1366909230,1366909229,1366909228,1366909227,1526803735,1526803736,1526803737,1526803738,1526803739,1526803740,1526803741,1526803742,1526803743,1526803744,1526803745,1526803746,1526803747,1526803748,1526803749,1526803750,1526803751,1526803752,1526803753,1526803754,1526803755,1526803756,1526803757,1526803758,1526803759,1526803760,1526803761,1526803762,1526803763,1526803764,1526803765,1526803766,1526803767,1526803768,1526803769,1526803770,1526803771,1526803772,1526803773,1526803774,1526803775,1526803776,1526803777,1526803778,1526803779,1526803780,1526803781,1526803782,1526803783,1526803784,1526803785,1526803786,1526803787,1526803788,1526803789,1526803790,1526803791,1526803792,1526803793,1526803794,1526803795,1526803796,1526803797,1526803798,1526803799,1526803800,1526803801,1526803802,1526803803,1526803804,1526803805,1526803806,1526803807,1526803808,1526803809,1366909226,1366909225,1366909224,1366909223,1526803991,1526803992,1526803993,1526803994,1526803995,1526803996,1526803997,1526803998,1526803999,1526804000,1526804001,1526804002,1526804003,1526804004,1526804005,1526804006,1526804007,1526804008,1526804009,1526804010,1526804011,1526804012,1526804013,1526804014,1526804015,1526804016,1526804017,1526804018,1526804019,1526804020,1526804021,1526804022,1526804023,1526804024,1526804025,1526804026,1526804027,1526804028,1526804029,1526804030,1526804031,1526804032,1526804033,1526804034,1526804035,1526804036,1526804037,1526804038,1526804039,1526804040,1526804041,1526804042,1526804043,1526804044,1526804045,1526804046,1526804047,1526804048,1526804049,1526804050,1526804051,1526804052,1526804053,1526804054,1526804055,1526804056,1526804057,1526804058,1526804059,1526804060,1526804061,1526804062,1526804063,1526804064,1526804065,1366909222,1366909221,1366909220,1366909219,1526804247,1526804248,1526804249,1526804250,1526804251,1526804252,1526804253,1526804254,1526804255,1526804256,1526804257,1526804258,1526804259,1526804260,1526804261,1526804262,1526804263,1526804264,1526804265,1526804266,1526804267,1526804268,1526804269,1526804270,1526804271,1526804272,1526804273,1526804274,1526804275,1526804276,1526804277,1526804278,1526804279,1526804280,1526804281,1526804282,1526804283,1526804284,1526804285,1526804286,1526804287,1526804288,1526804289,1526804290,1526804291,1526804292,1526804293,1526804294,1526804295,1526804296,1526804297,1526804298,1526804299,1526804300,1526804301,1526804302,1526804303,1526804304,1526804305,1526804306,1526804307,1526804308,1526804309,1526804310,1526804311,1526804312,1526804313,1526804314,1526804315,1526804316,1526804317,1526804318,1526804319,1526804320,1526804321,1366909218,1366909217,1366909216,1366909215,1526804503,1526804504,1526804505,1526804506,1526804507,1526804508,1526804509,1526804510,1526804511,1526804512,1526804513,1526804514,1526804515,1526804516,1526804517,1526804518,1526804519,1526804520,1526804521,1526804522,1526804523,1526804524,1526804525,1526804526,1526804527,1526804528,1526804529,1526804530,1526804531,1526804532,1526804533,1526804534,1526804535,1526804536,1526804537,1526804538,1526804539,1526804540,1526804541,1526804542,1526804543,1526804544,1526804545,1526804546,1526804547,1526804548,1526804549,1526804550,1526804551,1526804552,1526804553,1526804554,1526804555,1526804556,1526804557,1526804558,1526804559,1526804560,1526804561,1526804562,1526804563,1526804564,1526804565,1526804566,1526804567,1526804568,1526804569,1526804570,1526804571,1526804572,1526804573,1526804574,1526804575,1526804576,1526804577,1366909214,1366909213,1366909212,1366909211,1526804759,1526804760,1526804761,1526804762,1526804763,1526804764,1526804765,1526804766,1526804767,1526804768,1526804769,1526804770,1526804771,1526804772,1526804773,1526804774,1526804775,1526804776,1526804777,1526804778,1526804779,1526804780,1526804781,1526804782,1526804783,1526804784,1526804785,1526804786,1526804787,1526804788,1526804789,1526804790,1526804791,1526804792,1526804793,1526804794,1526804795,1526804796,1526804797,1526804798,1526804799,1526804800,1526804801,1526804802,1526804803,1526804804,1526804805,1526804806,1526804807,1526804808,1526804809,1526804810,1526804811,1526804812,1526804813,1526804814,1526804815,1526804816,1526804817,1526804818,1526804819,1526804820,1526804821,1526804822,1526804823,1526804824,1526804825,1526804826,1526804827,1526804828,1526804829,1526804830,1526804831,1526804832,1526804833,1366909210,1366909209,1366909208,1366909207,1526805015,1526805016,1526805017,1526805018,1526805019,1526805020,1526805021,1526805022,1526805023,1526805024,1526805025,1526805026,1526805027,1526805028,1526805029,1526805030,1526805031,1526805032,1526805033,1526805034,1526805035,1526805036,1526805037,1526805038,1526805039,1526805040,1526805041,1526805042,1526805043,1526805044,1526805045,1526805046,1526805047,1526805048,1526805049,1526805050,1526805051,1526805052,1526805053,1526805054,1526805055,1526805056,1526805057,1526805058,1526805059,1526805060,1526805061,1526805062,1526805063,1526805064,1526805065,1526805066,1526805067,1526805068,1526805069,1526805070,1526805071,1526805072,1526805073,1526805074,1526805075,1526805076,1526805077,1526805078,1526805079,1526805080,1526805081,1526805082,1526805083,1526805084,1526805085,1526805086,1526805087,1526805088,1526805089,1366909206,1366909205,1366909204,1366909203,1526805271,1526805272,1526805273,1526805274,1526805275,1526805276,1526805277,1526805278,1526805279,1526805280,1526805281,1526805282,1526805283,1526805284,1526805285,1526805286,1526805287,1526805288,1526805289,1526805290,1526805291,1526805292,1526805293,1526805294,1526805295,1526805296,1526805297,1526805298,1526805299,1526805300,1526805301,1526805302,1526805303,1526805304,1526805305,1526805306,1526805307,1526805308,1526805309,1526805310,1526805311,1526805312,1526805313,1526805314,1526805315,1526805316,1526805317,1526805318,1526805319,1526805320,1526805321,1526805322,1526805323,1526805324,1526805325,1526805326,1526805327,1526805328,1526805329,1526805330,1526805331,1526805332,1526805333,1526805334,1526805335,1526805336,1526805337,1526805338,1526805339,1526805340,1526805341,1526805342,1526805343,1526805344,1526805345,1534681185,1534681184,1534681183,1534681182,1526805527,1526805528,1526805529,1526805530,1526805531,1526805532,1526805533,1526805534,1526805535,1526805536,1526805537,1526805538,1526805539,1526805540,1526805541,1526805542,1526805543,1526805544,1526805545,1526805546,1526805547,1526805548,1526805549,1526805550,1526805551,1526805552,1526805553,1526805554,1526805555,1526805556,1526805557,1526805558,1526805559,1526805560,1526805561,1526805562,1526805563,1526805564,1526805565,1526805566,1526805567,1526805568,1526805569,1526805570,1526805571,1526805572,1526805573,1526805574,1526805575,1526805576,1526805577,1526805578,1526805579,1526805580,1526805581,1526805582,1526805583,1526805584,1526805585,1526805586,1526805587,1526805588,1526805589,1526805590,1526805591,1526805592,1526805593,1526805594,1526805595,1526805596,1526805597,1526805598,1526805599,1526805600,1526805601,1534681181,1534681180,1534681179,1534681178,1526805783,1526805784,1526805785,1526805786,1526805787,1526805788,1526805789,1526805790,1526805791,1526805792,1526805793,1526805794,1526805795,1526805796,1526805797,1526805798,1526805799,1526805800,1526805801,1526805802,1526805803,1526805804,1526805805,1526805806,1526805807,1526805808,1526805809,1526805810,1526805811,1526805812,1526805813,1526805814,1526805815,1526805816,1526805817,1526805818,1526805819,1526805820,1526805821,1526805822,1526805823,1526805824,1526805825,1526805826,1526805827,1526805828,1526805829,1526805830,1526805831,1526805832,1526805833,1526805834,1526805835,1526805836,1526805837,1526805838,1526805839,1526805840,1526805850,1526805851,1526805852,1526805853,1526805854,1526805855,1526805856,1526805857,1366909017,1366909016,1366909015,1366909014,1526806039,1526806040,1526806041,1526806042,1526806043,1526806044,1526806045,1526806046,1526806047,1526806048,1526806049,1526806050,1526806051,1526806052,1526806053,1526806054,1526806055,1526806056,1526806057,1526806058,1526806059,1526806060,1526806061,1526806062,1526806063,1526806064,1526806065,1526806066,1526806067,1526806068,1526806069,1526806070,1526806071,1526806072,1526806073,1526806074,1526806075,1526806076,1526806077,1526806078,1526806079,1526806080,1526806081,1526806082,1526806083,1526806084,1526806085,1526806086,1526806087,1526806088,1526806089,1526806090,1526806091,1526806092,1526806093,1526806094,1526806095,1526806107,1526806108,1526806109,1526806110,1526806111,1526806112,1526806113,1366909013,1366909012,1366909011,1366909010,1526806295,1526806296,1526806297,1526806298,1526806299,1526806300,1526806301,1526806302,1526806303,1526806304,1526806305,1526806306,1526806307,1526806308,1526806309,1526806310,1526806311,1526806312,1526806313,1526806314,1526806315,1526806316,1526806317,1526806318,1526806319,1526806320,1526806321,1526806322,1526806323,1526806324,1526806325,1526806326,1526806327,1526806328,1526806329,1526806330,1526806331,1526806332,1526806333,1526806334,1526806335,1526806336,1526806337,1526806338,1526806339,1526806340,1526806341,1526806342,1526806343,1526806344,1526806345,1526806346,1526806347,1526806348,1526806349,1526806350,1526806351,1526806363,1526806364,1526806365,1526806366,1526806367,1526806368,1526806369,1366909009,1366909008,1366909007,1366909006,1526806551,1526806552,1526806553,1526806554,1526806555,1526806556,1526806557,1526806558,1526806559,1526806560,1526806561,1526806562,1526806563,1526806564,1526806565,1526806566,1526806567,1526806568,1526806569,1526806570,1526806571,1526806572,1526806573,1526806574,1526806575,1526806576,1526806577,1526806578,1526806579,1526806580,1526806581,1526806582,1526806583,1526806584,1526806585,1526806586,1526806587,1526806588,1526806589,1526806590,1526806591,1526806592,1526806593,1526806594,1526806595,1526806596,1526806597,1526806598,1526806599,1526806600,1526806601,1526806602,1526806603,1526806604,1526806605,1526806606,1526806607,1526806619,1526806620,1526806621,1526806622,1526806623,1526806624,1526806625,1366909005,1366909004,1366909003,1366909002,1526806807,1526806808,1526806809,1526806810,1526806811,1526806812,1526806813,1526806814,1526806815,1526806816,1526806817,1526806818,1526806819,1526806820,1526806821,1526806822,1526806823,1526806824,1526806825,1526806826,1526806827,1526806828,1526806829,1526806830,1526806831,1526806832,1526806833,1526806834,1526806835,1526806836,1526806837,1526806838,1526806839,1526806840,1526806841,1526806842,1526806843,1526806844,1526806845,1526806846,1526806847,1526806848,1526806849,1526806850,1526806851,1526806852,1526806853,1526806854,1526806855,1526806856,1526806857,1526806858,1526806859,1526806860,1526806861,1526806862,1526806863,1526806875,1526806876,1526806877,1526806878,1526806879,1526806880,1526806881,1366909001,1366909000,1366908999,1366908998,1526807063,1526807064,1526807065,1526807066,1526807067,1526807068,1526807069,1526807070,1526807071,1526807072,1526807073,1526807074,1526807075,1526807076,1526807077,1526807078,1526807079,1526807080,1526807081,1526807082,1526807083,1526807084,1526807085,1526807086,1526807087,1526807088,1526807089,1526807090,1526807091,1526807092,1526807093,1526807094,1526807095,1526807096,1526807097,1526807098,1526807099,1526807100,1526807101,1526807102,1526807103,1526807104,1526807105,1526807106,1526807107,1526807108,1526807109,1526807110,1526807111,1526807112,1526807113,1526807114,1526807115,1526807116,1526807117,1526807118,1526807119,1526807131,1526807132,1526807133,1526807134,1526807135,1526807136,1526807137,1366908997,1366908996,1366908995,1366908994,1526807319,1526807320,1526807321,1526807322,1526807323,1526807324,1526807325,1526807326,1526807327,1526807328,1526807329,1526807330,1526807331,1526807332,1526807333,1526807334,1526807335,1526807336,1526807337,1526807338,1526807339,1526807340,1526807341,1526807342,1526807343,1526807344,1526807345,1526807346,1526807347,1526807348,1526807349,1526807350,1526807351,1526807352,1526807353,1526807354,1526807355,1526807356,1526807357,1526807358,1526807359,1526807360,1526807361,1526807362,1526807363,1526807364,1526807365,1526807366,1526807367,1526807368,1526807369,1526807370,1526807371,1526807372,1526807373,1526807374,1526807375,1526807387,1526807388,1526807389,1526807390,1526807391,1526807392,1526807393,1366908993,1366908992,1366908991,1366908990,1526807575,1526807576,1526807577,1526807578,1526807579,1526807580,1526807581,1526807582,1526807583,1526807584,1526807585,1526807586,1526807587,1526807588,1526807589,1526807590,1526807591,1526807592,1526807593,1526807594,1526807595,1526807596,1526807597,1526807598,1526807599,1526807600,1526807601,1526807602,1526807603,1526807604,1526807605,1526807606,1526807607,1526807608,1526807609,1526807610,1526807611,1526807612,1526807613,1526807614,1526807615,1526807616,1526807617,1526807618,1526807619,1526807620,1526807621,1526807622,1526807623,1526807624,1526807625,1526807626,1526807627,1526807628,1526807629,1526807630,1526807631,1526807643,1526807644,1526807645,1526807646,1526807647,1526807648,1526807649,1366908989,1366908988,1366908987,1366908986,1526807831,1526807832,1526807833,1526807834,1526807835,1526807836,1526807837,1526807838,1526807839,1526807840,1526807841,1526807842,1526807843,1526807844,1526807845,1526807846,1526807847,1526807848,1526807849,1526807850,1526807851,1526807852,1526807853,1526807854,1526807855,1526807856,1526807857,1526807858,1526807859,1526807860,1526807861,1526807862,1526807863,1526807864,1526807865,1526807866,1526807867,1526807868,1526807869,1526807870,1526807871,1526807872,1526807873,1526807874,1526807875,1526807876,1526807877,1526807878,1526807879,1526807880,1526807881,1526807882,1526807883,1526807884,1526807885,1526807886,1526807887,1526807899,1526807900,1526807901,1526807902,1526807903,1526807904,1526807905,1366908985,1366908984,1366908983,1366908982,1526808087,1526808088,1526808089,1526808090,1526808091,1526808092,1526808093,1526808094,1526808095,1526808096,1526808097,1526808098,1526808099,1526808100,1526808101,1526808102,1526808103,1526808104,1526808105,1526808106,1526808107,1526808108,1526808109,1526808110,1526808111,1526808112,1526808113,1526808114,1526808115,1526808116,1526808117,1526808118,1526808119,1526808120,1526808121,1526808122,1526808123,1526808124,1526808125,1526808126,1526808127,1526808128,1526808129,1526808130,1526808131,1526808132,1526808133,1526808134,1526808135,1526808136,1526808137,1526808138,1526808139,1526808140,1526808141,1526808142,1526808143,1526808155,1526808156,1526808157,1526808158,1526808159,1526808160,1526808161,1366908981,1366908980,1366908979,1366908978,1526808343,1526808344,1526808345,1526808346,1526808347,1526808348,1526808349,1526808350,1526808351,1526808352,1526808353,1526808354,1526808355,1526808356,1526808357,1526808358,1526808359,1526808360,1526808361,1526808362,1526808363,1526808364,1526808365,1526808366,1526808367,1526808368,1526808369,1526808370,1526808371,1526808372,1526808373,1526808374,1526808375,1526808376,1526808377,1526808378,1526808379,1526808380,1526808381,1526808382,1526808383,1526808384,1526808385,1526808386,1526808387,1526808388,1526808389,1526808390,1526808391,1526808392,1526808393,1526808394,1526808395,1526808396,1526808397,1526808398,1526808399,1526808400,1526808410,1526808411,1526808412,1526808413,1526808414,1526808415,1526808416,1526808417,1366908977,1366908976,1366908975,1366908974,1526808599,1526808600,1526808601,1526808602,1526808603,1526808604,1526808605,1526808606,1526808607,1526808608,1526808609,1526808610,1526808611,1526808612,1526808613,1526808614,1526808615,1526808616,1526808617,1526808618,1526808619,1526808620,1526808621,1526808622,1526808623,1526808624,1526808625,1526808626,1526808627,1526808628,1526808629,1526808630,1526808631,1526808632,1526808633,1526808634,1526808635,1526808636,1526808637,1526808638,1526808639,1526808640,1526808641,1526808642,1526808643,1526808644,1526808645,1526808646,1526808647,1526808648,1526808649,1526808650,1526808651,1526808652,1526808653,1526808654,1526808655,1526808656,1526808657,1526808658,1526808659,1526808660,1526808661,1526808662,1526808663,1526808664,1526808665,1526808666,1526808667,1526808668,1526808669,1526808670,1526808671,1526808672,1526808673,1366908973,1366908972,1366908971,1366908970,1526808855,1526808856,1526808857,1526808858,1526808859,1526808860,1526808861,1526808862,1526808863,1526808864,1526808865,1526808866,1526808867,1526808868,1526808869,1526808870,1526808871,1526808872,1526808873,1526808874,1526808875,1526808876,1526808877,1526808878,1526808879,1526808880,1526808881,1526808882,1526808883,1526808884,1526808885,1526808886,1526808887,1526808888,1526808889,1526808890,1526808891,1526808892,1526808893,1526808894,1526808895,1526808896,1526808897,1526808898,1526808899,1526808900,1526808901,1526808902,1526808903,1526808904,1526808905,1526808906,1526808907,1526808908,1526808909,1526808910,1526808911,1526808912,1526808913,1526808914,1526808915,1526808916,1526808917,1526808918,1526808919,1526808920,1526808921,1526808922,1526808923,1526808924,1526808925,1526808926,1526808927,1526808928,1526808929,1366908969,1366908968,1366908967,1366908966,1526809111,1526809112,1526809113,1526809114,1526809115,1526809116,1526809117,1526809118,1526809119,1526809120,1526809121,1526809122,1526809123,1526809124,1526809125,1526809126,1526809127,1526809128,1526809129,1526809130,1526809131,1526809132,1526809133,1526809134,1526809135,1526809136,1526809137,1526809138,1526809139,1526809140,1526809141,1526809142,1526809143,1526809144,1526809145,1526809146,1526809147,1526809148,1526809149,1526809150,1526809151,1526809152,1526809153,1526809154,1526809155,1526809156,1526809157,1526809158,1526809159,1526809160,1526809161,1526809162,1526809163,1526809164,1526809165,1526809166,1526809167,1526809168,1526809169,1526809170,1526809171,1526809172,1526809173,1526809174,1526809175,1526809176,1526809177,1526809178,1526809179,1526809180,1526809181,1526809182,1526809183,1526809184,1526809185,1366908965,1366908964,1366908963,1366908962,1526809367,1526809368,1526809369,1526809370,1526809371,1526809372,1526809373,1526809374,1526809375,1526809376,1526809377,1526809378,1526809379,1526809380,1526809381,1526809382,1526809383,1526809384,1526809385,1526809386,1526809387,1526809388,1526809389,1526809390,1526809391,1526809392,1526809393,1526809394,1526809395,1526809396,1526809397,1526809398,1526809399,1526809400,1526809401,1526809402,1526809403,1526809404,1526809405,1526809406,1526809407,1526809408,1526809409,1526809410,1526809411,1526809412,1526809413,1526809414,1526809415,1526809416,1526809417,1526809418,1526809419,1526809420,1526809421,1526809422,1526809423,1526809424,1526809425,1526809426,1526809427,1526809428,1526809429,1526809430,1526809431,1526809432,1526809433,1526809434,1526809435,1526809436,1526809437,1526809438,1526809439,1526809440,1526809441,1366908961,1366908960,1366908959,1366908958,1526809623,1526809624,1526809625,1526809626,1526809627,1526809628,1526809629,1526809630,1526809631,1526809632,1526809633,1526809634,1526809635,1526809636,1526809637,1526809638,1526809639,1526809640,1526809641,1526809642,1526809643,1526809644,1526809645,1526809646,1526809647,1526809648,1526809649,1526809650,1526809651,1526809652,1526809653,1526809654,1526809655,1526809656,1526809657,1526809658,1526809659,1526809660,1526809661,1526809662,1526809663,1526809664,1526809665,1526809666,1526809667,1526809668,1526809669,1526809670,1526809671,1526809672,1526809673,1526809674,1526809675,1526809676,1526809677,1526809678,1526809679,1526809680,1526809681,1526809682,1526809683,1526809684,1526809685,1526809686,1526809687,1526809688,1526809689,1526809690,1526809691,1526809692,1526809693,1526809694,1526809695,1526809696,1526809697,1366908957,1366908956,1366908955,1366908954,1526809879,1526809880,1526809881,1526809882,1526809883,1526809884,1526809885,1526809886,1526809887,1526809888,1526809889,1526809890,1526809891,1526809892,1526809893,1526809894,1526809895,1526809896,1526809897,1526809898,1526809899,1526809900,1526809901,1526809902,1526809903,1526809904,1526809905,1526809906,1526809907,1526809908,1526809909,1526809910,1526809911,1526809912,1526809913,1526809914,1526809915,1526809916,1526809917,1526809918,1526809919,1526809920,1526809921,1526809922,1526809923,1526809924,1526809925,1526809926,1526809927,1526809928,1526809929,1526809930,1526809931,1526809932,1526809933,1526809934,1526809935,1526809936,1526809937,1526809938,1526809939,1526809940,1526809941,1526809942,1526809943,1526809944,1526809945,1526809946,1526809947,1526809948,1526809949,1526809950,1526809951,1526809952,1526809953,1366908953,1366908952,1366908951,1366908950,1526810135,1526810136,1526810137,1526810138,1526810139,1526810140,1526810141,1526810142,1526810143,1526810144,1526810145,1526810146,1526810147,1526810148,1526810149,1526810150,1526810151,1526810152,1526810153,1526810154,1526810155,1526810156,1526810157,1526810158,1526810159,1526810160,1526810161,1526810162,1526810163,1526810164,1526810165,1526810166,1526810167,1526810168,1526810169,1526810170,1526810171,1526810172,1526810173,1526810174,1526810175,1526810176,1526810177,1526810178,1526810179,1526810180,1526810181,1526810182,1526810183,1526810184,1526810185,1526810186,1526810187,1526810188,1526810189,1526810190,1526810191,1526810192,1526810193,1526810194,1526810195,1526810196,1526810197,1526810198,1526810199,1526810200,1526810201,1526810202,1526810203,1526810204,1526810205,1526810206,1526810207,1526810208,1526810209,1366908949,1366908948,1366908947,1534680929,1526810391,1526810392,1526810393,1526810394,1526810395,1526810396,1526810397,1526810398,1526810399,1526810400,1526810401,1526810402,1526810403,1526810404,1526810405,1526810406,1526810407,1526810408,1526810409,1526810410,1526810411,1526810412,1526810413,1526810414,1526810415,1526810416,1526810417,1526810418,1526810419,1526810420,1526810421,1526810422,1526810423,1526810424,1526810425,1526810426,1526810427,1526810428,1526810429,1526810430,1526810431,1526810432,1526810433,1526810434,1526810435,1526810436,1526810437,1526810438,1526810439,1526810440,1526810441,1526810442,1526810443,1526810444,1526810445,1526810446,1526810447,1526810448,1526810449,1526810450,1526810451,1526810452,1526810453,1526810454,1526810455,1526810456,1526810457,1526810458,1526810459,1526810460,1526810461,1526810462,1526810463,1526810464,1526810465,1534680928,1534680927,1534680926,1534680925,1526810647,1526810648,1526810649,1526810650,1526810651,1526810652,1526810653,1526810654,1526810655,1526810656,1526810657,1526810658,1526810659,1526810660,1526810661,1526810662,1526810663,1526810664,1526810665,1526810666,1526810667,1526810668,1526810669,1526810670,1526810671,1526810672,1526810673,1526810674,1526810675,1526810676,1526810677,1526810678,1526810679,1526810680,1526810681,1526810682,1526810683,1526810684,1526810685,1526810686,1526810687,1526810688,1526810689,1526810690,1526810691,1526810692,1526810693,1526810694,1526810695,1526810696,1526810697,1526810698,1526810699,1526810700,1526810701,1526810702,1526810703,1526810704,1526810705,1526810706,1526810707,1526810708,1526810709,1526810710,1526810711,1526810712,1526810713,1526810714,1526810715,1526810716,1526810717,1526810718,1526810719,1526810720,1526810721,1534680924,1534680923,1534680922,1366908761,1526810903,1526810904,1526810905,1526810906,1526810907,1526810908,1526810909,1526810910,1526810911,1526810912,1526810913,1526810914,1526810915,1526810916,1526810917,1526810918,1526810919,1526810920,1526810921,1526810922,1526810923,1526810924,1526810925,1526810926,1526810927,1526810928,1526810929,1526810930,1526810931,1526810932,1526810933,1526810934,1526810935,1526810936,1526810937,1526810938,1526810939,1526810940,1526810941,1526810942,1526810943,1526810944,1526810945,1526810946,1526810947,1526810948,1526810949,1526810950,1526810951,1526810952,1526810953,1526810954,1526810955,1526810956,1526810957,1526810958,1526810959,1526810960,1526810961,1526810962,1526810963,1526810964,1526810965,1526810966,1526810967,1526810968,1526810969,1526810970,1526810971,1526810972,1526810973,1526810974,1526810975,1526810976,1526810977,1366908760,1366908759,1366908758,1366908757,1526811159,1526811160,1526811161,1526811162,1526811163,1526811164,1526811165,1526811166,1526811167,1526811168,1526811169,1526811170,1526811171,1526811172,1526811173,1526811174,1526811175,1526811176,1526811177,1526811178,1526811179,1526811180,1526811181,1526811182,1526811183,1526811184,1526811185,1526811186,1526811187,1526811188,1526811189,1526811190,1526811191,1526811192,1526811193,1526811194,1526811195,1526811196,1526811197,1526811198,1526811199,1526811200,1526811201,1526811202,1526811203,1526811204,1526811205,1526811206,1526811207,1526811208,1526811209,1526811210,1526811211,1526811212,1526811213,1526811214,1526811215,1526811216,1526811217,1526811218,1526811219,1526811220,1526811221,1526811222,1526811223,1526811224,1526811225,1526811226,1526811227,1526811228,1526811229,1526811230,1526811231,1526811232,1526811233,1366908756,1366908755,1366908754,1366908753,1526811415,1526811416,1526811417,1526811418,1526811419,1526811420,1526811421,1526811422,1526811423,1526811424,1526811425,1526811426,1526811427,1526811428,1526811429,1526811430,1526811431,1526811432,1526811433,1526811434,1526811435,1526811436,1526811437,1526811438,1526811439,1526811440,1526811441,1526811442,1526811443,1526811444,1526811445,1526811446,1526811447,1526811448,1526811449,1526811450,1526811451,1526811452,1526811453,1526811454,1526811455,1526811456,1526811457,1526811458,1526811459,1526811460,1526811461,1526811462,1526811463,1526811464,1526811465,1526811466,1526811467,1526811468,1526811469,1526811470,1526811471,1526811472,1526811473,1526811474,1526811475,1526811476,1526811477,1526811478,1526811479,1526811480,1526811481,1526811482,1526811483,1526811484,1526811485,1526811486,1526811487,1526811488,1526811489,1366908752,1366908751,1366908750,1366908749,1526811671,1526811672,1526811673,1526811674,1526811675,1526811676,1526811677,1526811678,1526811679,1526811680,1526811681,1526811682,1526811683,1526811684,1526811685,1526811686,1526811687,1526811688,1526811689,1526811690,1526811691,1526811692,1526811693,1526811694,1526811695,1526811696,1526811697,1526811698,1526811699,1526811700,1526811701,1526811702,1526811703,1526811704,1526811705,1526811706,1526811707,1526811708,1526811709,1526811710,1526811711,1526811712,1526811713,1526811714,1526811715,1526811716,1526811717,1526811718,1526811719,1526811720,1526811721,1526811722,1526811723,1526811724,1526811725,1526811726,1526811727,1526811728,1526811729,1526811730,1526811731,1526811732,1526811733,1526811734,1526811735,1526811736,1526811737,1526811738,1526811739,1526811740,1526811741,1526811742,1526811743,1526811744,1526811745,1366908748,1366908747,1366908746,1366908745,1526811927,1526811928,1526811929,1526811930,1526811931,1526811932,1526811933,1526811934,1526811935,1526811936,1526811937,1526811938,1526811939,1526811940,1526811941,1526811942,1526811943,1526811944,1526811945,1526811946,1526811947,1526811948,1526811949,1526811950,1526811951,1526811952,1526811953,1526811954,1526811955,1526811956,1526811957,1526811958,1526811959,1526811960,1526811961,1526811962,1526811963,1526811964,1526811965,1526811966,1526811967,1526811968,1526811969,1526811970,1526811971,1526811972,1526811973,1526811974,1526811975,1526811976,1526811977,1526811978,1526811979,1526811980,1526811981,1526811982,1526811983,1526811984,1526811985,1526811986,1526811987,1526811988,1526811989,1526811990,1526811991,1526811992,1526811993,1526811994,1526811995,1526811996,1526811997,1526811998,1526811999,1526812000,1526812001,1366908744,1366908743,1366908742,1366908741,1526812183,1526812184,1526812185,1526812186,1526812187,1526812188,1526812189,1526812190,1526812191,1526812192,1526812193,1526812194,1526812195,1526812196,1526812197,1526812198,1526812199,1526812200,1526812201,1526812202,1526812203,1526812204,1526812205,1526812206,1526812207,1526812208,1526812209,1526812210,1526812211,1526812212,1526812213,1526812214,1526812215,1526812216,1526812217,1526812218,1526812219,1526812220,1526812221,1526812222,1526812223,1526812224,1526812225,1526812226,1526812227,1526812228,1526812229,1526812230,1526812231,1526812232,1526812233,1526812234,1526812235,1526812236,1526812237,1526812238,1526812239,1526812240,1526812241,1526812242,1526812243,1526812244,1526812245,1526812246,1526812247,1526812248,1526812249,1526812250,1526812251,1526812252,1526812253,1526812254,1526812255,1526812256,1526812257,1366908740,1366908739,1366908738,1366908737,1526812439,1526812440,1526812441,1526812442,1526812443,1526812444,1526812445,1526812446,1526812447,1526812448,1526812449,1526812450,1526812451,1526812452,1526812453,1526812454,1526812455,1526812456,1526812457,1526812458,1526812459,1526812460,1526812461,1526812462,1526812463,1526812464,1526812465,1526812466,1526812467,1526812468,1526812469,1526812470,1526812471,1526812472,1526812473,1526812474,1526812475,1526812476,1526812477,1526812478,1526812479,1526812480,1526812481,1526812482,1526812483,1526812484,1526812485,1526812486,1526812487,1526812488,1526812489,1526812490,1526812491,1526812492,1526812493,1526812494,1526812495,1526812496,1526812497,1526812498,1526812499,1526812500,1526812501,1526812502,1526812503,1526812504,1526812505,1526812506,1526812507,1526812508,1526812509,1526812510,1526812511,1526812512,1526812513,1366908736,1366908735,1366908734,1366908733,1526812695,1526812696,1526812697,1526812698,1526812699,1526812700,1526812701,1526812702,1526812703,1526812704,1526812705,1526812706,1526812707,1526812708,1526812709,1526812710,1526812711,1526812712,1526812713,1526812714,1526812715,1526812716,1526812717,1526812718,1526812719,1526812720,1526812721,1526812722,1526812723,1526812724,1526812725,1526812726,1526812727,1526812728,1526812729,1526812730,1526812731,1526812732,1526812733,1526812734,1526812735,1526812736,1526812737,1526812738,1526812739,1526812740,1526812741,1526812742,1526812743,1526812744,1526812745,1526812746,1526812747,1526812748,1526812749,1526812750,1526812751,1526812752,1526812753,1526812754,1526812755,1526812756,1526812757,1526812758,1526812759,1526812760,1526812761,1526812762,1526812763,1526812764,1526812765,1526812766,1526812767,1526812768,1526812769,1366908732,1366908731,1366908730,1366908729,1526812951,1526812952,1526812953,1526812954,1526812955,1526812956,1526812957,1526812958,1526812959,1526812960,1526812961,1526812962,1526812963,1526812964,1526812965,1526812966,1526812967,1526812968,1526812969,1526812970,1526812971,1526812972,1526812973,1526812974,1526812975,1526812976,1526812977,1526812978,1526812979,1526812980,1526812981,1526812982,1526812983,1526812984,1526812985,1526812986,1526812987,1526812988,1526812989,1526812990,1526812991,1526812992,1526812993,1526812994,1526812995,1526812996,1526812997,1526812998,1526812999,1526813000,1526813001,1526813002,1526813003,1526813004,1526813005,1526813006,1526813007,1526813008,1526813009,1526813010,1526813011,1526813012,1526813013,1526813014,1526813015,1526813016,1526813017,1526813018,1526813019,1526813020,1526813021,1526813022,1526813023,1526813024,1526813025,1366908728,1366908727,1366908726,1366908725,1526813207,1526813208,1526813209,1526813210,1526813211,1526813212,1526813213,1526813214,1526813215,1526813216,1526813217,1526813218,1526813219,1526813220,1526813221,1526813222,1526813223,1526813224,1526813225,1526813226,1526813227,1526813228,1526813229,1526813230,1526813231,1526813232,1526813233,1526813234,1526813235,1526813236,1526813237,1526813238,1526813239,1526813240,1526813241,1526813242,1526813243,1526813244,1526813245,1526813246,1526813247,1526813248,1526813249,1526813250,1526813251,1526813252,1526813253,1526813254,1526813255,1526813256,1526813257,1526813258,1526813259,1526813260,1526813261,1526813262,1526813263,1526813264,1526813265,1526813266,1526813267,1526813268,1526813269,1526813270,1526813271,1526813272,1526813273,1526813274,1526813275,1526813276,1526813277,1526813278,1526813279,1526813280,1526813281,1366908724,1366908723,1366908722,1366908721,1526813463,1526813464,1526813465,1526813466,1526813467,1526813468,1526813469,1526813470,1526813471,1526813472,1526813473,1526813474,1526813475,1526813476,1526813477,1526813478,1526813479,1526813480,1526813481,1526813482,1526813483,1526813484,1526813485,1526813486,1526813487,1526813488,1526813489,1526813490,1526813491,1526813492,1526813493,1526813494,1526813495,1526813496,1526813497,1526813498,1526813499,1526813500,1526813501,1526813502,1526813503,1526813504,1526813505,1526813506,1526813507,1526813508,1526813509,1526813510,1526813511,1526813512,1526813513,1526813514,1526813515,1526813516,1526813517,1526813518,1526813519,1526813520,1526813521,1526813522,1526813523,1526813524,1526813525,1526813526,1526813527,1526813528,1526813529,1526813530,1526813531,1526813532,1526813533,1526813534,1526813535,1526813536,1526813537,1366908720,1366908719,1366908718,1366908717,1526813719,1526813720,1526813721,1526813722,1526813723,1526813724,1526813725,1526813726,1526813727,1526813728,1526813729,1526813730,1526813731,1526813732,1526813733,1526813734,1526813735,1526813736,1526813737,1526813738,1526813739,1526813740,1526813741,1526813742,1526813743,1526813744,1526813745,1526813746,1526813747,1526813748,1526813749,1526813750,1526813751,1526813752,1526813753,1526813754,1526813755,1526813756,1526813757,1526813758,1526813759,1526813760,1526813761,1526813762,1526813763,1526813764,1526813765,1526813766,1526813767,1526813768,1526813769,1526813770,1526813771,1526813772,1526813773,1526813774,1526813775,1526813776,1526813777,1526813778,1526813779,1526813780,1526813781,1526813782,1526813783,1526813784,1526813785,1526813786,1526813787,1526813788,1526813789,1526813790,1526813791,1526813792,1526813793,1366908716,1366908715,1366908714,1366908713,1526813975,1526813976,1526813977,1526813978,1526813979,1526813980,1526813981,1526813982,1526813983,1526813984,1526813985,1526813986,1526813987,1526813988,1526813989,1526813990,1526813991,1526813992,1526813993,1526813994,1526813995,1526813996,1526813997,1526813998,1526813999,1526814000,1526814001,1526814002,1526814003,1526814004,1526814005,1526814006,1526814007,1526814008,1526814009,1526814010,1526814011,1526814012,1526814013,1526814014,1526814015,1526814016,1526814017,1526814018,1526814019,1526814020,1526814021,1526814022,1526814023,1526814024,1526814025,1526814026,1526814027,1526814028,1526814029,1526814030,1526814031,1526814032,1526814033,1526814034,1526814035,1526814036,1526814037,1526814038,1526814039,1526814040,1526814041,1526814042,1526814043,1526814044,1526814045,1526814046,1526814047,1526814048,1526814049,1366908712,1366908711,1366908710,1366908709,1526814231,1526814232,1526814233,1526814234,1526814235,1526814236,1526814237,1526814238,1526814239,1526814240,1526814241,1526814242,1526814243,1526814244,1526814245,1526814246,1526814247,1526814248,1526814249,1526814250,1526814251,1526814252,1526814253,1526814254,1526814255,1526814256,1526814257,1526814258,1526814259,1526814260,1526814261,1526814262,1526814263,1526814264,1526814265,1526814266,1526814267,1526814268,1526814269,1526814270,1526814271,1526814272,1526814273,1526814274,1526814275,1526814276,1526814277,1526814278,1526814279,1526814280,1526814281,1526814282,1526814283,1526814284,1526814285,1526814286,1526814287,1526814288,1526814289,1526814290,1526814291,1526814292,1526814293,1526814294,1526814295,1526814296,1526814297,1526814298,1526814299,1526814300,1526814301,1526814302,1526814303,1526814304,1526814305,1366908708,1366908707,1366908706,1366908705,1526814487,1526814488,1526814489,1526814490,1526814491,1526814492,1526814493,1526814494,1526814495,1526814496,1526814497,1526814498,1526814499,1526814500,1526814501,1526814502,1526814503,1526814504,1526814505,1526814506,1526814507,1526814508,1526814509,1526814510,1526814511,1526814512,1526814513,1526814514,1526814515,1526814516,1526814517,1526814518,1526814519,1526814520,1526814521,1526814522,1526814523,1526814524,1526814525,1526814526,1526814527,1526814528,1526814529,1526814530,1526814531,1526814532,1526814533,1526814534,1526814535,1526814536,1526814537,1526814538,1526814539,1526814540,1526814541,1526814542,1526814543,1526814544,1526814545,1526814546,1526814547,1526814548,1526814549,1526814550,1526814551,1526814552,1526814553,1526814554,1526814555,1526814556,1526814557,1526814558,1526814559,1526814560,1526814561,1366908704,1366908703,1366908702,1366908701,1526814743,1526814744,1526814745,1526814746,1526814747,1526814748,1526814749,1526814750,1526814751,1526814752,1526814753,1526814754,1526814755,1526814756,1526814757,1526814758,1526814759,1526814760,1526814761,1526814762,1526814763,1526814764,1526814765,1526814766,1526814767,1526814768,1526814769,1526814770,1526814771,1526814772,1526814773,1526814774,1526814775,1526814776,1526814777,1526814778,1526814779,1526814780,1526814781,1526814782,1526814783,1526814784,1526814785,1526814786,1526814787,1526814788,1526814789,1526814790,1526814791,1526814792,1526814793,1526814794,1526814795,1526814796,1526814797,1526814798,1526814799,1526814800,1526814801,1526814802,1526814803,1526814804,1526814805,1526814806,1526814807,1526814808,1526814809,1526814810,1526814811,1526814812,1526814813,1526814814,1526814815,1526814816,1526814817,1366908700,1366908699,1366908698,1366908697,1526814999,1526815000,1526815001,1526815002,1526815003,1526815004,1526815005,1526815006,1526815007,1526815008,1526815009,1526815010,1526815011,1526815012,1526815013,1526815014,1526815015,1526815016,1526815017,1526815018,1526815019,1526815020,1526815021,1526815022,1526815023,1526815024,1526815025,1526815026,1526815027,1526815028,1526815029,1526815039,1526815040,1526815041,1526815042,1526815043,1526815044,1526815045,1526815046,1526815047,1526815048,1526815049,1526815050,1526815051,1526815052,1526815053,1526815054,1526815055,1526815056,1526815057,1526815058,1526815059,1526815060,1526815061,1526815062,1526815063,1526815064,1526815065,1526815066,1526815067,1526815068,1526815069,1526815070,1526815071,1526815072,1526815073,1366908696,1366908695,1366908694,1366908693,1526815255,1526815256,1526815257,1526815258,1526815259,1526815260,1526815261,1526815262,1526815263,1526815264,1526815265,1526815266,1526815267,1526815268,1526815269,1526815270,1526815271,1526815272,1526815273,1526815274,1526815275,1526815276,1526815277,1526815278,1526815279,1526815280,1526815281,1526815282,1526815283,1526815284,1526815296,1526815297,1526815298,1526815299,1526815300,1526815301,1526815302,1526815303,1526815304,1526815305,1526815306,1526815307,1526815308,1526815309,1526815310,1526815311,1526815312,1526815313,1526815314,1526815315,1526815316,1526815317,1526815318,1526815319,1526815320,1526815321,1526815322,1526815323,1526815324,1526815325,1526815326,1526815327,1526815328,1526815329,1366908692,1366908691,1534680673,1534680672,1526815511,1526815512,1526815513,1526815514,1526815515,1526815516,1526815517,1526815518,1526815519,1526815520,1526815521,1526815522,1526815523,1526815524,1526815525,1526815526,1526815527,1526815528,1526815529,1526815530,1526815531,1526815532,1526815533,1526815534,1526815535,1526815536,1526815537,1526815538,1526815539,1526815540,1526815552,1526815553,1526815554,1526815555,1526815556,1526815557,1526815558,1526815559,1526815560,1526815561,1526815562,1526815563,1526815564,1526815565,1526815566,1526815567,1526815568,1526815569,1526815570,1526815571,1526815572,1526815573,1526815574,1526815575,1526815576,1526815577,1526815578,1526815579,1526815580,1526815581,1526815582,1526815583,1526815584,1526815585,1534680671,1534680670,1534680669,1534680668,1526815767,1526815768,1526815769,1526815770,1526815771,1526815772,1526815773,1526815774,1526815775,1526815776,1526815777,1526815778,1526815779,1526815780,1526815781,1526815782,1526815783,1526815784,1526815785,1526815786,1526815787,1526815788,1526815789,1526815790,1526815791,1526815792,1526815793,1526815794,1526815795,1526815796,1526815808,1526815809,1526815810,1526815811,1526815812,1526815813,1526815814,1526815815,1526815816,1526815817,1526815818,1526815819,1526815820,1526815821,1526815822,1526815823,1526815824,1526815825,1526815826,1526815827,1526815828,1526815829,1526815830,1526815831,1526815832,1526815833,1526815834,1526815835,1526815836,1526815837,1526815838,1526815839,1526815840,1526815841,1534680667,1534680666,1366908505,1366908504,1526816023,1526816024,1526816025,1526816026,1526816027,1526816028,1526816029,1526816030,1526816031,1526816032,1526816033,1526816034,1526816035,1526816036,1526816037,1526816038,1526816039,1526816040,1526816041,1526816042,1526816043,1526816044,1526816045,1526816046,1526816047,1526816048,1526816049,1526816050,1526816051,1526816052,1526816064,1526816065,1526816066,1526816067,1526816068,1526816069,1526816070,1526816071,1526816072,1526816073,1526816074,1526816075,1526816076,1526816077,1526816078,1526816079,1526816080,1526816081,1526816082,1526816083,1526816084,1526816085,1526816086,1526816087,1526816088,1526816089,1526816090,1526816091,1526816092,1526816093,1526816094,1526816095,1526816096,1526816097,1366908503,1366908502,1366908501,1366908500,1526816279,1526816280,1526816281,1526816282,1526816283,1526816284,1526816285,1526816286,1526816287,1526816288,1526816289,1526816290,1526816291,1526816292,1526816293,1526816294,1526816295,1526816296,1526816297,1526816298,1526816299,1526816300,1526816301,1526816302,1526816303,1526816304,1526816305,1526816306,1526816307,1526816308,1526816320,1526816321,1526816322,1526816323,1526816324,1526816325,1526816326,1526816327,1526816328,1526816329,1526816330,1526816331,1526816332,1526816333,1526816334,1526816335,1526816336,1526816337,1526816338,1526816339,1526816340,1526816341,1526816342,1526816343,1526816344,1526816345,1526816346,1526816347,1526816348,1526816349,1526816350,1526816351,1526816352,1526816353,1366908499,1366908498,1366908497,1366908496,1526816535,1526816536,1526816537,1526816538,1526816539,1526816540,1526816541,1526816542,1526816543,1526816544,1526816545,1526816546,1526816547,1526816548,1526816549,1526816550,1526816551,1526816552,1526816553,1526816554,1526816555,1526816556,1526816557,1526816558,1526816559,1526816560,1526816561,1526816562,1526816563,1526816564,1526816576,1526816577,1526816578,1526816579,1526816580,1526816581,1526816582,1526816583,1526816584,1526816585,1526816586,1526816587,1526816588,1526816589,1526816590,1526816591,1526816592,1526816593,1526816594,1526816595,1526816596,1526816597,1526816598,1526816599,1526816600,1526816601,1526816602,1526816603,1526816604,1526816605,1526816606,1526816607,1526816608,1526816609,1366908495,1366908494,1366908493,1366908492,1526816791,1526816792,1526816793,1526816794,1526816795,1526816796,1526816797,1526816798,1526816799,1526816800,1526816801,1526816802,1526816803,1526816804,1526816805,1526816806,1526816807,1526816808,1526816809,1526816810,1526816811,1526816812,1526816813,1526816814,1526816815,1526816816,1526816817,1526816818,1526816819,1526816820,1526816832,1526816833,1526816834,1526816835,1526816836,1526816837,1526816838,1526816839,1526816840,1526816841,1526816842,1526816843,1526816844,1526816845,1526816846,1526816847,1526816848,1526816849,1526816850,1526816851,1526816852,1526816853,1526816854,1526816855,1526816856,1526816857,1526816858,1526816859,1526816860,1526816861,1526816862,1526816863,1526816864,1526816865,1366908491,1366908490,1366908489,1366908488,1526817047,1526817048,1526817049,1526817050,1526817051,1526817052,1526817053,1526817054,1526817055,1526817056,1526817057,1526817058,1526817059,1526817060,1526817061,1526817062,1526817063,1526817064,1526817065,1526817066,1526817067,1526817068,1526817069,1526817070,1526817071,1526817072,1526817073,1526817074,1526817075,1526817076,1526817088,1526817089,1526817090,1526817091,1526817092,1526817093,1526817094,1526817095,1526817096,1526817097,1526817098,1526817099,1526817100,1526817101,1526817102,1526817103,1526817104,1526817105,1526817106,1526817107,1526817108,1526817109,1526817110,1526817111,1526817112,1526817113,1526817114,1526817115,1526817116,1526817117,1526817118,1526817119,1526817120,1526817121,1526862383,1526862384,1526862385,1526862386,1526862387,1526862392,1526862393,1526862394,1526862395,1526862396,1526862401,1526862402,1526862403,1526862404,1526862405,1366908487,1366908486,1366908485,1366908484,1526862615,1526862616,1526862617,1526862618,1526862619,1526862620,1526862621,1526862622,1526862623,1526862624,1526862625,1526862626,1526862627,1526862628,1526862629,1526862630,1526862631,1526862632,1526862633,1526862634,1526862635,1526862636,1526862637,1526862638,1526862639,1526862640,1526862641,1526862642,1526862643,1526862644,1526862645,1526862646,1526862647,1526862648,1526862649,1526862650,1526862651,1526862652,1526862653,1526862654,1526862655,1526862656,1526862657,1526862658,1526862659,1526862660,1526862661,1526862662,1526862663,1526862664,1526862665,1526862666,1526862667,1526862668,1526862669,1526862670,1526862671,1526862672,1526862673,1526862674,1526862675,1526862676,1526862677,1526862678,1526862679,1526862680,1526862681,1526862682,1526862683,1526862684,1526862685,1526862686,1526862687,1526862688,1526862689,1366908483,1366908482,1366908481,1366908480,1526862871,1526862872,1526862873,1526862874,1526862875,1526862876,1526862877,1526862878,1526862879,1526862880,1526862881,1526862882,1526862883,1526862884,1526862885,1526862886,1526862887,1526862888,1526862889,1526862890,1526862891,1526862892,1526862893,1526862894,1526862895,1526862896,1526862897,1526862898,1526862899,1526862900,1526862901,1526862902,1526862903,1526862904,1526862905,1526862906,1526862907,1526862908,1526862909,1526862910,1526862911,1526862912,1526862913,1526862914,1526862915,1526862916,1526862917,1526862918,1526862919,1526862920,1526862921,1526862922,1526862923,1526862924,1526862925,1526862926,1526862927,1526862928,1526862929,1526862930,1526862931,1526862932,1526862933,1526862934,1526862935,1526862936,1526862937,1526862938,1526862939,1526862940,1526862941,1526862942,1526862943,1526862944,1526862945,1366908479,1366908478,1366908477,1366908476,1526863127,1526863128,1526863129,1526863130,1526863131,1526863132,1526863133,1526863134,1526863135,1526863136,1526863137,1526863138,1526863139,1526863140,1526863141,1526863142,1526863143,1526863144,1526863145,1526863146,1526863147,1526863148,1526863149,1526863150,1526863151,1526863152,1526863153,1526863154,1526863155,1526863156,1526863157,1526863158,1526863159,1526863160,1526863161,1526863162,1526863163,1526863164,1526863165,1526863166,1526863167,1526863168,1526863169,1526863170,1526863171,1526863172,1526863173,1526863174,1526863175,1526863176,1526863177,1526863178,1526863179,1526863180,1526863181,1526863182,1526863183,1526863184,1526863185,1526863186,1526863187,1526863188,1526863189,1526863190,1526863191,1526863192,1526863193,1526863194,1526863195,1526863196,1526863197,1526863198,1526863199,1526863200,1526863201,1366908475,1366908474,1366908473,1366908472,1526863383,1526863384,1526863385,1526863386,1526863387,1526863388,1526863389,1526863390,1526863391,1526863392,1526863393,1526863394,1526863395,1526863396,1526863397,1526863398,1526863399,1526863400,1526863401,1526863402,1526863403,1526863404,1526863405,1526863406,1526863407,1526863408,1526863409,1526863410,1526863411,1526863412,1526863413,1526863414,1526863415,1526863416,1526863417,1526863418,1526863419,1526863420,1526863421,1526863422,1526863423,1526863424,1526863425,1526863426,1526863427,1526863428,1526863429,1526863430,1526863431,1526863432,1526863433,1526863434,1526863435,1526863436,1526863437,1526863438,1526863439,1526863440,1526863441,1526863442,1526863443,1526863444,1526863445,1526863446,1526863447,1526863448,1526863449,1526863450,1526863451,1526863452,1526863453,1526863454,1526863455,1526863456,1526863457,1366908471,1366908470,1366908469,1366908468,1526863639,1526863640,1526863641,1526863642,1526863643,1526863644,1526863645,1526863646,1526863647,1526863648,1526863649,1526863650,1526863651,1526863652,1526863653,1526863654,1526863655,1526863656,1526863657,1526863658,1526863659,1526863660,1526863661,1526863662,1526863663,1526863664,1526863665,1526863666,1526863667,1526863668,1526863669,1526863670,1526863671,1526863672,1526863673,1526863674,1526863675,1526863676,1526863677,1526863678,1526863679,1526863680,1526863681,1526863682,1526863683,1526863684,1526863685,1526863686,1526863687,1526863688,1526863689,1526863690,1526863691,1526863692,1526863693,1526863694,1526863695,1526863696,1526863697,1526863698,1526863699,1526863700,1526863701,1526863702,1526863703,1526863704,1526863705,1526863706,1526863707,1526863708,1526863709,1526863710,1526863711,1526863712,1526863713,1366908467,1366908466,1366908465,1366908464,1526863895,1526863896,1526863897,1526863898,1526863899,1526863900,1526863901,1526863902,1526863903,1526863904,1526863905,1526863906,1526863907,1526863908,1526863909,1526863910,1526863911,1526863912,1526863913,1526863914,1526863915,1526863916,1526863917,1526863918,1526863919,1526863920,1526863921,1526863922,1526863923,1526863924,1526863925,1526863926,1526863927,1526863928,1526863929,1526863930,1526863931,1526863932,1526863933,1526863934,1526863935,1526863936,1526863937,1526863938,1526863939,1526863940,1526863941,1526863942,1526863943,1526863944,1526863945,1526863946,1526863947,1526863948,1526863949,1526863950,1526863951,1526863952,1526863953,1526863954,1526863955,1526863956,1526863957,1526863958,1526863959,1526863960,1526863961,1526863962,1526863963,1526863964,1526863965,1526863966,1526863967,1526863968,1526863969,1366908463,1366908462,1366908461,1366908460,1526864151,1526864152,1526864153,1526864154,1526864155,1526864156,1526864157,1526864158,1526864159,1526864160,1526864161,1526864162,1526864163,1526864164,1526864165,1526864166,1526864167,1526864168,1526864169,1526864170,1526864171,1526864172,1526864173,1526864174,1526864175,1526864176,1526864177,1526864178,1526864179,1526864180,1526864181,1526864182,1526864183,1526864184,1526864185,1526864186,1526864187,1526864188,1526864189,1526864190,1526864191,1526864192,1526864193,1526864194,1526864195,1526864196,1526864197,1526864198,1526864199,1526864200,1526864201,1526864202,1526864203,1526864204,1526864205,1526864206,1526864207,1526864208,1526864209,1526864210,1526864211,1526864212,1526864213,1526864214,1526864215,1526864216,1526864217,1526864218,1526864219,1526864220,1526864221,1526864222,1526864223,1526864224,1526864225,1366908459,1366908458,1366908457,1366908456,1526864407,1526864408,1526864409,1526864410,1526864411,1526864412,1526864413,1526864414,1526864415,1526864416,1526864417,1526864418,1526864419,1526864420,1526864421,1526864422,1526864423,1526864424,1526864425,1526864426,1526864427,1526864428,1526864429,1526864430,1526864431,1526864432,1526864433,1526864434,1526864435,1526864436,1526864437,1526864438,1526864439,1526864440,1526864441,1526864442,1526864443,1526864444,1526864445,1526864446,1526864447,1526864448,1526864449,1526864450,1526864451,1526864452,1526864453,1526864454,1526864455,1526864456,1526864457,1526864458,1526864459,1526864460,1526864461,1526864462,1526864463,1526864464,1526864465,1526864466,1526864467,1526864468,1526864469,1526864470,1526864471,1526864472,1526864473,1526864474,1526864475,1526864476,1526864477,1526864478,1526864479,1526864480,1526864481,1366908455,1366908454,1366908453,1366908452,1526864663,1526864664,1526864665,1526864666,1526864667,1526864668,1526864669,1526864670,1526864671,1526864672,1526864673,1526864674,1526864675,1526864676,1526864677,1526864678,1526864679,1526864680,1526864681,1526864682,1526864683,1526864684,1526864685,1526864686,1526864687,1526864688,1526864689,1526864690,1526864691,1526864692,1526864693,1526864694,1526864695,1526864696,1526864697,1526864698,1526864699,1526864700,1526864701,1526864702,1526864703,1526864704,1526864705,1526864706,1526864707,1526864708,1526864709,1526864710,1526864711,1526864712,1526864713,1526864714,1526864715,1526864716,1526864717,1526864718,1526864719,1526864720,1526864721,1526864722,1526864723,1526864724,1526864725,1526864726,1526864727,1526864728,1526864729,1526864730,1526864731,1526864732,1526864733,1526864734,1526864735,1526864736,1526864737,1366908451,1366908450,1366908449,1366908448,1526864919,1526864920,1526864921,1526864922,1526864923,1526864924,1526864925,1526864926,1526864927,1526864928,1526864929,1526864930,1526864931,1526864932,1526864933,1526864934,1526864935,1526864936,1526864937,1526864938,1526864939,1526864940,1526864941,1526864942,1526864943,1526864944,1526864945,1526864946,1526864947,1526864948,1526864949,1526864950,1526864951,1526864952,1526864953,1526864954,1526864955,1526864956,1526864957,1526864958,1526864959,1526864960,1526864961,1526864962,1526864963,1526864964,1526864965,1526864966,1526864967,1526864968,1526864969,1526864970,1526864971,1526864972,1526864973,1526864974,1526864975,1526864976,1526864977,1526864978,1526864979,1526864980,1526864981,1526864982,1526864983,1526864984,1526864985,1526864986,1526864987,1526864988,1526864989,1526864990,1526864991,1526864992,1526864993,1366908447,1366908446,1366908445,1366908444,1526865175,1526865176,1526865177,1526865178,1526865179,1526865180,1526865181,1526865182,1526865183,1526865184,1526865185,1526865186,1526865187,1526865188,1526865189,1526865190,1526865191,1526865192,1526865193,1526865194,1526865195,1526865196,1526865197,1526865198,1526865199,1526865200,1526865201,1526865202,1526865203,1526865204,1526865205,1526865206,1526865207,1526865208,1526865209,1526865210,1526865211,1526865212,1526865213,1526865214,1526865215,1526865216,1526865217,1526865218,1526865219,1526865220,1526865221,1526865222,1526865223,1526865224,1526865225,1526865226,1526865227,1526865228,1526865229,1526865230,1526865231,1526865232,1526865233,1526865234,1526865235,1526865236,1526865237,1526865238,1526865239,1526865240,1526865241,1526865242,1526865243,1526865244,1526865245,1526865246,1526865247,1526865248,1526865249,1366908443,1366908442,1366908441,1366908440,1526865431,1526865432,1526865433,1526865434,1526865435,1526865436,1526865437,1526865438,1526865439,1526865440,1526865441,1526865442,1526865443,1526865444,1526865445,1526865446,1526865447,1526865448,1526865449,1526865450,1526865451,1526865452,1526865453,1526865454,1526865455,1526865456,1526865457,1526865458,1526865459,1526865460,1526865461,1526865462,1526865463,1526865464,1526865465,1526865466,1526865467,1526865468,1526865469,1526865470,1526865471,1526865472,1526865473,1526865474,1526865475,1526865476,1526865477,1526865478,1526865479,1526865480,1526865481,1526865482,1526865483,1526865484,1526865485,1526865486,1526865487,1526865488,1526865489,1526865490,1526865491,1526865492,1526865493,1526865494,1526865495,1526865496,1526865497,1526865498,1526865499,1526865500,1526865501,1526865502,1526865503,1526865504,1526865505,1366908439,1366908438,1366908437,1366908436,1526865687,1526865688,1526865689,1526865690,1526865691,1526865692,1526865693,1526865694,1526865695,1526865696,1526865697,1526865698,1526865699,1526865700,1526865701,1526865702,1526865703,1526865704,1526865705,1526865706,1526865707,1526865708,1526865709,1526865710,1526865711,1526865712,1526865713,1526865714,1526865715,1526865716,1526865717,1526865718,1526865719,1526865720,1526865721,1526865722,1526865723,1526865724,1526865725,1526865726,1526865727,1526865728,1526865729,1526865730,1526865731,1526865732,1526865733,1526865734,1526865735,1526865736,1526865737,1526865738,1526865739,1526865740,1526865741,1526865742,1526865743,1526865744,1526865745,1526865746,1526865747,1526865748,1526865749,1526865750,1526865751,1526865752,1526865753,1526865754,1526865755,1526865756,1526865757,1526865758,1526865759,1526865760,1526865761,1366908435,1534680417,1534680416,1534680415,1526865943,1526865944,1526865945,1526865946,1526865947,1526865948,1526865949,1526865950,1526865951,1526865952,1526865953,1526865954,1526865955,1526865956,1526865957,1526865958,1526865959,1526865960,1526865961,1526865962,1526865963,1526865964,1526865965,1526865966,1526865967,1526865968,1526865969,1526865970,1526865971,1526865972,1526865973,1526865974,1526865975,1526865976,1526865977,1526865978,1526865979,1526865980,1526865981,1526865982,1526865983,1526865984,1526865985,1526865986,1526865987,1526865988,1526865989,1526865990,1526865991,1526865992,1526865993,1526865994,1526865995,1526865996,1526865997,1526865998,1526865999,1526866000,1526866001,1526866002,1526866003,1526866004,1526866005,1526866006,1526866007,1526866008,1526866009,1526866010,1526866011,1526866012,1526866013,1526866014,1526866015,1526866016,1526866017,1534680414,1534680413,1534680412,1534680411,1526866199,1526866200,1526866201,1526866202,1526866203,1526866204,1526866205,1526866206,1526866207,1526866208,1526866209,1526866210,1526866211,1526866212,1526866213,1526866214,1526866215,1526866216,1526866217,1526866218,1526866219,1526866220,1526866221,1526866222,1526866223,1526866224,1526866225,1526866226,1526866227,1526866228,1526866229,1526866230,1526866231,1526866232,1526866233,1526866234,1526866235,1526866236,1526866237,1526866238,1526866239,1526866240,1526866241,1526866242,1526866243,1526866244,1526866245,1526866246,1526866247,1526866248,1526866249,1526866250,1526866251,1526866252,1526866253,1526866254,1526866255,1526866256,1526866257,1526866258,1526866259,1526866260,1526866261,1526866262,1526866263,1526866264,1526866265,1526866266,1526866267,1526866268,1526866269,1526866270,1526866271,1526866272,1526866273,1534680410,1366908249,1366908248,1366908247,1526866455,1526866456,1526866457,1526866458,1526866459,1526866460,1526866461,1526866462,1526866463,1526866464,1526866465,1526866466,1526866467,1526866468,1526866469,1526866470,1526866471,1526866472,1526866473,1526866474,1526866475,1526866476,1526866477,1526866478,1526866479,1526866480,1526866481,1526866482,1526866483,1526866484,1526866485,1526866486,1526866487,1526866488,1526866489,1526866490,1526866491,1526866492,1526866493,1526866494,1526866495,1526866496,1526866497,1526866498,1526866499,1526866500,1526866501,1526866502,1526866503,1526866504,1526866505,1526866506,1526866507,1526866508,1526866509,1526866510,1526866511,1526866512,1526866513,1526866514,1526866515,1526866516,1526866517,1526866518,1526866519,1526866520,1526866521,1526866522,1526866523,1526866524,1526866525,1526866526,1526866527,1526866528,1526866529,1366908246,1366908245,1366908244,1366908243,1526866711,1526866712,1526866713,1526866714,1526866715,1526866716,1526866717,1526866718,1526866719,1526866720,1526866721,1526866722,1526866723,1526866724,1526866725,1526866726,1526866727,1526866728,1526866729,1526866730,1526866731,1526866732,1526866733,1526866734,1526866735,1526866736,1526866737,1526866738,1526866739,1526866740,1526866741,1526866742,1526866743,1526866744,1526866745,1526866746,1526866747,1526866748,1526866749,1526866750,1526866751,1526866752,1526866753,1526866754,1526866755,1526866756,1526866757,1526866758,1526866759,1526866760,1526866761,1526866762,1526866763,1526866764,1526866765,1526866766,1526866767,1526866768,1526866769,1526866770,1526866771,1526866772,1526866773,1526866774,1526866775,1526866776,1526866777,1526866778,1526866779,1526866780,1526866781,1526866782,1526866783,1526866784,1526866785,1366908242,1366908241,1366908240,1366908239,1526866967,1526866968,1526866969,1526866970,1526866971,1526866972,1526866973,1526866974,1526866975,1526866976,1526866977,1526866978,1526866979,1526866980,1526866981,1526866982,1526866983,1526866984,1526866985,1526866986,1526866987,1526866988,1526866989,1526866990,1526866991,1526866992,1526866993,1526866994,1526866995,1526866996,1526866997,1526866998,1526866999,1526867000,1526867001,1526867002,1526867003,1526867004,1526867005,1526867006,1526867007,1526867008,1526867009,1526867010,1526867011,1526867012,1526867013,1526867014,1526867015,1526867016,1526867017,1526867018,1526867019,1526867020,1526867021,1526867022,1526867023,1526867024,1526867025,1526867026,1526867027,1526867028,1526867029,1526867030,1526867031,1526867032,1526867033,1526867034,1526867035,1526867036,1526867037,1526867038,1526867039,1526867040,1526867041,1366908238,1366908237,1366908236,1366908235,1526867223,1526867224,1526867225,1526867226,1526867227,1526867228,1526867229,1526867230,1526867231,1526867232,1526867233,1526867234,1526867235,1526867236,1526867237,1526867238,1526867239,1526867240,1526867241,1526867242,1526867243,1526867244,1526867245,1526867246,1526867247,1526867248,1526867249,1526867250,1526867251,1526867252,1526867253,1526867254,1526867255,1526867256,1526867257,1526867258,1526867259,1526867260,1526867261,1526867262,1526867263,1526867264,1526867265,1526867266,1526867267,1526867268,1526867269,1526867270,1526867271,1526867272,1526867273,1526867274,1526867275,1526867276,1526867277,1526867278,1526867279,1526867280,1526867281,1526867282,1526867283,1526867284,1526867285,1526867286,1526867287,1526867288,1526867289,1526867290,1526867291,1526867292,1526867293,1526867294,1526867295,1526867296,1526867297,1366908234,1366908233,1366908232,1366908231,1526867479,1526867480,1526867481,1526867482,1526867483,1526867484,1526867485,1526867486,1526867487,1526867488,1526867489,1526867490,1526867491,1526867492,1526867493,1526867494,1526867495,1526867496,1526867497,1526867498,1526867499,1526867500,1526867501,1526867502,1526867503,1526867504,1526867505,1526867506,1526867507,1526867508,1526867509,1526867510,1526867511,1526867512,1526867513,1526867514,1526867515,1526867516,1526867517,1526867518,1526867519,1526867520,1526867521,1526867522,1526867523,1526867524,1526867525,1526867526,1526867527,1526867528,1526867529,1526867530,1526867531,1526867532,1526867533,1526867534,1526867535,1526867536,1526867537,1526867538,1526867539,1526867540,1526867541,1526867542,1526867543,1526867544,1526867545,1526867546,1526867547,1526867548,1526867549,1526867550,1526867551,1526867552,1526867553,1366908230,1366908229,1366908228,1366908227,1526867735,1526867736,1526867737,1526867738,1526867739,1526867740,1526867741,1526867742,1526867743,1526867744,1526867745,1526867746,1526867747,1526867748,1526867749,1526867750,1526867751,1526867752,1526867753,1526867754,1526867755,1526867756,1526867757,1526867758,1526867759,1526867760,1526867761,1526867762,1526867763,1526867764,1526867765,1526867766,1526867767,1526867768,1526867769,1526867770,1526867771,1526867772,1526867773,1526867774,1526867775,1526867776,1526867777,1526867778,1526867779,1526867780,1526867781,1526867782,1526867783,1526867784,1526867785,1526867786,1526867787,1526867788,1526867789,1526867790,1526867791,1526867792,1526867793,1526867794,1526867795,1526867796,1526867797,1526867798,1526867799,1526867800,1526867801,1526867802,1526867803,1526867804,1526867805,1526867806,1526867807,1526867808,1526867809,1366908226,1366908225,1366908224,1366908223,1526867991,1526867992,1526867993,1526867994,1526867995,1526867996,1526867997,1526867998,1526867999,1526868000,1526868001,1526868002,1526868003,1526868004,1526868005,1526868006,1526868007,1526868008,1526868009,1526868010,1526868011,1526868012,1526868013,1526868014,1526868015,1526868016,1526868017,1526868018,1526868019,1526868020,1526868021,1526868022,1526868023,1526868024,1526868025,1526868026,1526868027,1526868028,1526868029,1526868030,1526868031,1526868032,1526868033,1526868034,1526868035,1526868036,1526868037,1526868038,1526868039,1526868040,1526868041,1526868042,1526868043,1526868044,1526868045,1526868046,1526868047,1526868048,1526868049,1526868050,1526868051,1526868052,1526868053,1526868054,1526868055,1526868056,1526868057,1526868058,1526868059,1526868060,1526868061,1526868062,1526868063,1526868064,1526868065,1366908222,1366908221,1366908220,1366908219,1526868247,1526868248,1526868249,1526868250,1526868251,1526868252,1526868253,1526868254,1526868255,1526868256,1526868257,1526868258,1526868259,1526868260,1526868261,1526868262,1526868263,1526868264,1526868265,1526868266,1526868267,1526868268,1526868269,1526868270,1526868271,1526868272,1526868273,1526868274,1526868275,1526868276,1526868277,1526868278,1526868279,1526868280,1526868281,1526868282,1526868283,1526868284,1526868285,1526868286,1526868287,1526868288,1526868289,1526868290,1526868291,1526868292,1526868293,1526868294,1526868295,1526868296,1526868297,1526868298,1526868299,1526868300,1526868301,1526868302,1526868303,1526868304,1526868305,1526868306,1526868307,1526868308,1526868309,1526868310,1526868311,1526868312,1526868313,1526868314,1526868315,1526868316,1526868317,1526868318,1526868319,1526868320,1526868321,1366908218,1366908217,1366908216,1366908215,1526868503,1526868504,1526868505,1526868506,1526868507,1526868508,1526868509,1526868510,1526868511,1526868512,1526868513,1526868514,1526868515,1526868516,1526868517,1526868518,1526868519,1526868520,1526868521,1526868522,1526868523,1526868524,1526868525,1526868526,1526868527,1526868528,1526868529,1526868530,1526868531,1526868532,1526868533,1526868534,1526868535,1526868536,1526868537,1526868538,1526868539,1526868540,1526868541,1526868542,1526868543,1526868544,1526868545,1526868546,1526868547,1526868548,1526868549,1526868550,1526868551,1526868552,1526868553,1526868554,1526868555,1526868556,1526868557,1526868558,1526868559,1526868560,1526868561,1526868562,1526868563,1526868564,1526868565,1526868566,1526868567,1526868568,1526868569,1526868570,1526868571,1526868572,1526868573,1526868574,1526868575,1526868576,1526868577,1366908214,1366908213,1366908212,1366908211,1526868759,1526868760,1526868761,1526868762,1526868763,1526868764,1526868765,1526868766,1526868767,1526868768,1526868769,1526868770,1526868771,1526868772,1526868773,1526868774,1526868775,1526868776,1526868777,1526868778,1526868779,1526868780,1526868781,1526868782,1526868783,1526868784,1526868785,1526868786,1526868787,1526868788,1526868789,1526868790,1526868791,1526868792,1526868793,1526868794,1526868795,1526868796,1526868797,1526868798,1526868799,1526868800,1526868801,1526868802,1526868803,1526868804,1526868805,1526868806,1526868807,1526868808,1526868809,1526868810,1526868811,1526868812,1526868813,1526868814,1526868815,1526868816,1526868817,1526868818,1526868819,1526868820,1526868821,1526868822,1526868823,1526868824,1526868825,1526868826,1526868827,1526868828,1526868829,1526868830,1526868831,1526868832,1526868833,1366908210,1366908209,1366908208,1366908207,1526869015,1526869016,1526869017,1526869018,1526869019,1526869020,1526869021,1526869022,1526869023,1526869024,1526869025,1526869026,1526869027,1526869028,1526869029,1526869030,1526869031,1526869032,1526869033,1526869034,1526869035,1526869036,1526869037,1526869038,1526869039,1526869040,1526869041,1526869042,1526869043,1526869044,1526869045,1526869046,1526869047,1526869048,1526869049,1526869050,1526869051,1526869052,1526869053,1526869054,1526869055,1526869056,1526869057,1526869058,1526869059,1526869060,1526869061,1526869062,1526869063,1526869064,1526869065,1526869066,1526869067,1526869068,1526869069,1526869070,1526869071,1526869072,1526869073,1526869074,1526869075,1526869076,1526869077,1526869078,1526869079,1526869080,1526869081,1526869082,1526869083,1526869084,1526869085,1526869086,1526869087,1526869088,1526869089,1366908206,1366908205,1366908204,1366908203,1526869271,1526869272,1526869273,1526869274,1526869275,1526869276,1526869277,1526869278,1526869279,1526869280,1526869281,1526869282,1526869283,1526869284,1526869285,1526869286,1526869287,1526869288,1526869289,1526869290,1526869291,1526869292,1526869293,1526869294,1526869295,1526869296,1526869297,1526869298,1526869299,1526869300,1526869301,1526869302,1526869303,1526869304,1526869305,1526869306,1526869307,1526869308,1526869309,1526869310,1526869311,1526869312,1526869313,1526869314,1526869315,1526869316,1526869317,1526869318,1526869319,1526869320,1526869321,1526869322,1526869323,1526869324,1526869325,1526869326,1526869327,1526869328,1526869329,1526869330,1526869331,1526869332,1526869333,1526869334,1526869335,1526869336,1526869337,1526869338,1526869339,1526869340,1526869341,1526869342,1526869343,1526869344,1526869345,1366908202,1366908201,1366908200,1366908199,1526869527,1526869528,1526869529,1526869530,1526869531,1526869532,1526869533,1526869534,1526869535,1526869536,1526869537,1526869538,1526869539,1526869540,1526869541,1526869542,1526869543,1526869544,1526869545,1526869546,1526869547,1526869548,1526869549,1526869550,1526869551,1526869552,1526869553,1526869554,1526869555,1526869556,1526869557,1526869558,1526869559,1526869560,1526869561,1526869562,1526869563,1526869564,1526869565,1526869566,1526869567,1526869568,1526869569,1526869570,1526869571,1526869572,1526869573,1526869574,1526869575,1526869576,1526869577,1526869578,1526869579,1526869580,1526869581,1526869582,1526869583,1526869584,1526869585,1526869586,1526869587,1526869588,1526869589,1526869590,1526869591,1526869592,1526869593,1526869594,1526869595,1526869596,1526869597,1526869598,1526869599,1526869600,1526869601,1366908198,1366908197,1366908196,1366908195,1366908194,1526869783,1526869784,1526869785,1526869786,1526869787,1526869788,1526869789,1526869790,1526869791,1526869792,1526869793,1526869794,1526869795,1526869796,1526869797,1526869798,1526869799,1526869800,1526869801,1526869802,1526869803,1526869804,1526869805,1526869806,1526869807,1526869808,1526869809,1526869810,1526869811,1526869812,1526869813,1526869814,1526869815,1526869816,1526869817,1526869818,1526869819,1526869820,1526869821,1526869822,1526869823,1526869824,1526869825,1526869826,1526869827,1526869828,1526869829,1526869830,1526869831,1526869832,1526869833,1526869834,1526869835,1526869836,1526869837,1526869838,1526869839,1526869840,1526869841,1526869842,1526869843,1526869844,1526869845,1526869846,1526869847,1526869848,1526869849,1526869850,1526869851,1526869852,1526869853,1526869854,1526869855,1526869856,1526869857,1366908193,1366908192,1366908191,1366908190,1366908189,1526870039,1526870040,1526870041,1526870042,1526870043,1526870044,1526870045,1526870046,1526870047,1526870048,1526870049,1526870050,1526870051,1526870052,1526870053,1526870054,1526870055,1526870056,1526870057,1526870058,1526870059,1526870060,1526870061,1526870062,1526870063,1526870064,1526870065,1526870066,1526870067,1526870068,1526870069,1526870070,1526870071,1526870072,1526870073,1526870074,1526870075,1526870076,1526870077,1526870078,1526870079,1526870080,1526870081,1526870082,1526870083,1526870084,1526870085,1526870086,1526870087,1526870088,1526870089,1526870090,1526870091,1526870092,1526870093,1526870094,1526870095,1526870096,1526870097,1526870098,1526870099,1526870100,1526870101,1526870102,1526870103,1526870104,1526870105,1526870106,1526870107,1526870108,1526870109,1526870110,1526870111,1526870112,1526870113,1366908188,1366908187,1366908186,1366908185,1366908184,1526870295,1526870296,1526870297,1526870298,1526870299,1526870300,1526870301,1526870302,1526870303,1526870304,1526870305,1526870306,1526870307,1526870308,1526870309,1526870310,1526870311,1526870312,1526870313,1526870314,1526870315,1526870316,1526870317,1526870318,1526870319,1526870320,1526870321,1526870322,1526870323,1526870324,1526870325,1526870326,1526870327,1526870328,1526870329,1526870330,1526870331,1526870332,1526870333,1526870334,1526870335,1526870336,1526870337,1526870338,1526870339,1526870340,1526870341,1526870342,1526870343,1526870344,1526870345,1526870346,1526870347,1526870348,1526870349,1526870350,1526870351,1526870352,1526870353,1526870354,1526870355,1526870356,1526870357,1526870358,1526870359,1526870360,1526870361,1526870362,1526870363,1526870364,1526870365,1526870366,1526870367,1526870368,1526870369,1366908183,1366908182,1366908181,1366908180,1366908179,1526870551,1526870552,1526870553,1526870554,1526870555,1526870556,1526870557,1526870558,1526870559,1526870560,1526870561,1526870562,1526870563,1526870564,1526870565,1526870566,1526870567,1526870568,1526870569,1526870570,1526870571,1526870572,1526870573,1526870574,1526870575,1526870576,1526870577,1526870578,1526870579,1526870580,1526870581,1526870582,1526870583,1526870584,1526870585,1526870586,1526870587,1526870588,1526870589,1526870590,1526870591,1526870592,1526870593,1526870594,1526870595,1526870596,1526870597,1526870598,1526870599,1526870600,1526870601,1526870602,1526870603,1526870604,1526870605,1526870606,1526870607,1526870608,1526870609,1526870610,1526870611,1526870612,1526870613,1526870614,1526870615,1526870616,1526870617,1526870618,1526870619,1526870620,1526870621,1526870622,1526870623,1526870624,1526870625,1534680161,1534680160,1534680159,1534680158,1534680157,1526870807,1526870808,1526870809,1526870810,1526870811,1526870812,1526870813,1526870814,1526870815,1526870816,1526870817,1526870818,1526870819,1526870820,1526870821,1526870822,1526870823,1526870824,1526870825,1526870826,1526870827,1526870828,1526870829,1526870830,1526870831,1526870832,1526870833,1526870834,1526870835,1526870836,1526870837,1526870838,1526870839,1526870840,1526870841,1526870842,1526870843,1526870844,1526870845,1526870846,1526870847,1526870848,1526870849,1526870850,1526870851,1526870852,1526870853,1526870854,1526870855,1526870856,1526870857,1526870858,1526870859,1526870860,1526870861,1526870862,1526870863,1526870864,1526870865,1526870866,1526870867,1526870868,1526870869,1526870870,1526870871,1526870872,1526870873,1526870874,1526870875,1526870876,1526870877,1526870878,1526870879,1526870880,1526870881,1534680156,1534680155,1534680154,1366907993,1526871063,1526871064,1526871065,1526871066,1526871067,1526871068,1526871069,1526871070,1526871071,1526871072,1526871073,1526871074,1526871075,1526871076,1526871077,1526871078,1526871079,1526871080,1526871081,1526871082,1526871083,1526871084,1526871085,1526871086,1526871087,1526871088,1526871089,1526871090,1526871091,1526871092,1526871093,1526871094,1526871095,1526871096,1526871097,1526871098,1526871099,1526871100,1526871101,1526871102,1526871103,1526871104,1526871105,1526871106,1526871107,1526871108,1526871109,1526871110,1526871111,1526871112,1526871113,1526871114,1526871115,1526871116,1526871117,1526871118,1526871119,1526871120,1526871121,1526871122,1526871123,1526871124,1526871125,1526871126,1526871127,1526871128,1526871129,1526871130,1526871131,1526871132,1526871133,1526871134,1526871135,1526871136,1526871137,1366907992,1366907991,1366907990,1366907989,1526871319,1526871320,1526871321,1526871322,1526871323,1526871324,1526871325,1526871326,1526871327,1526871328,1526871329,1526871330,1526871331,1526871332,1526871333,1526871334,1526871335,1526871336,1526871337,1526871338,1526871339,1526871340,1526871341,1526871342,1526871343,1526871344,1526871345,1526871346,1526871347,1526871348,1526871349,1526871350,1526871351,1526871352,1526871353,1526871354,1526871355,1526871356,1526871357,1526871358,1526871359,1526871360,1526871361,1526871362,1526871363,1526871364,1526871365,1526871366,1526871367,1526871368,1526871369,1526871370,1526871371,1526871372,1526871373,1526871374,1526871375,1526871376,1526871386,1526871387,1526871388,1526871389,1526871390,1526871391,1526871392,1526871393,1366907988,1366907987,1366907986,1366907985,1526871575,1526871576,1526871577,1526871578,1526871579,1526871580,1526871581,1526871582,1526871583,1526871584,1526871585,1526871586,1526871587,1526871588,1526871589,1526871590,1526871591,1526871592,1526871593,1526871594,1526871595,1526871596,1526871597,1526871598,1526871599,1526871600,1526871601,1526871602,1526871603,1526871604,1526871605,1526871606,1526871607,1526871608,1526871609,1526871610,1526871611,1526871612,1526871613,1526871614,1526871615,1526871616,1526871617,1526871618,1526871619,1526871620,1526871621,1526871622,1526871623,1526871624,1526871625,1526871626,1526871627,1526871628,1526871629,1526871630,1526871631,1526871643,1526871644,1526871645,1526871646,1526871647,1526871648,1526871649,1366907984,1366907983,1366907982,1366907981,1526871831,1526871832,1526871833,1526871834,1526871835,1526871836,1526871837,1526871838,1526871839,1526871840,1526871841,1526871842,1526871843,1526871844,1526871845,1526871846,1526871847,1526871848,1526871849,1526871850,1526871851,1526871852,1526871853,1526871854,1526871855,1526871856,1526871857,1526871858,1526871859,1526871860,1526871861,1526871862,1526871863,1526871864,1526871865,1526871866,1526871867,1526871868,1526871869,1526871870,1526871871,1526871872,1526871873,1526871874,1526871875,1526871876,1526871877,1526871878,1526871879,1526871880,1526871881,1526871882,1526871883,1526871884,1526871885,1526871886,1526871887,1526871899,1526871900,1526871901,1526871902,1526871903,1526871904,1526871905,1366907980,1366907979,1366907978,1366907977,1366907976,1526872087,1526872088,1526872089,1526872090,1526872091,1526872092,1526872093,1526872094,1526872095,1526872096,1526872097,1526872098,1526872099,1526872100,1526872101,1526872102,1526872103,1526872104,1526872105,1526872106,1526872107,1526872108,1526872109,1526872110,1526872111,1526872112,1526872113,1526872114,1526872115,1526872116,1526872117,1526872118,1526872119,1526872120,1526872121,1526872122,1526872123,1526872124,1526872125,1526872126,1526872127,1526872128,1526872129,1526872130,1526872131,1526872132,1526872133,1526872134,1526872135,1526872136,1526872137,1526872138,1526872139,1526872140,1526872141,1526872142,1526872143,1526872155,1526872156,1526872157,1526872158,1526872159,1526872160,1526872161,1366907975,1366907974,1366907973,1366907972,1366907971,1526872343,1526872344,1526872345,1526872346,1526872347,1526872348,1526872349,1526872350,1526872351,1526872352,1526872353,1526872354,1526872355,1526872356,1526872357,1526872358,1526872359,1526872360,1526872361,1526872362,1526872363,1526872364,1526872365,1526872366,1526872367,1526872368,1526872369,1526872370,1526872371,1526872372,1526872373,1526872374,1526872375,1526872376,1526872377,1526872378,1526872379,1526872380,1526872381,1526872382,1526872383,1526872384,1526872385,1526872386,1526872387,1526872388,1526872389,1526872390,1526872391,1526872392,1526872393,1526872394,1526872395,1526872396,1526872397,1526872398,1526872399,1526872411,1526872412,1526872413,1526872414,1526872415,1526872416,1526872417,1366907970,1366907969,1366907968,1366907967,1366907966,1526872599,1526872600,1526872601,1526872602,1526872603,1526872604,1526872605,1526872606,1526872607,1526872608,1526872609,1526872610,1526872611,1526872612,1526872613,1526872614,1526872615,1526872616,1526872617,1526872618,1526872619,1526872620,1526872621,1526872622,1526872623,1526872624,1526872625,1526872626,1526872627,1526872628,1526872629,1526872630,1526872631,1526872632,1526872633,1526872634,1526872635,1526872636,1526872637,1526872638,1526872639,1526872640,1526872641,1526872642,1526872643,1526872644,1526872645,1526872646,1526872647,1526872648,1526872649,1526872650,1526872651,1526872652,1526872653,1526872654,1526872655,1526872667,1526872668,1526872669,1526872670,1526872671,1526872672,1526872673,1366907965,1366907964,1366907963,1366907962,1366907961,1526872855,1526872856,1526872857,1526872858,1526872859,1526872860,1526872861,1526872862,1526872863,1526872864,1526872865,1526872866,1526872867,1526872868,1526872869,1526872870,1526872871,1526872872,1526872873,1526872874,1526872875,1526872876,1526872877,1526872878,1526872879,1526872880,1526872881,1526872882,1526872883,1526872884,1526872885,1526872886,1526872887,1526872888,1526872889,1526872890,1526872891,1526872892,1526872893,1526872894,1526872895,1526872896,1526872897,1526872898,1526872899,1526872900,1526872901,1526872902,1526872903,1526872904,1526872905,1526872906,1526872907,1526872908,1526872909,1526872910,1526872911,1526872923,1526872924,1526872925,1526872926,1526872927,1526872928,1526872929,1366907960,1366907959,1366907958,1366907957,1366907956,1526873111,1526873112,1526873113,1526873114,1526873115,1526873116,1526873117,1526873118,1526873119,1526873120,1526873121,1526873122,1526873123,1526873124,1526873125,1526873126,1526873127,1526873128,1526873129,1526873130,1526873131,1526873132,1526873133,1526873134,1526873135,1526873136,1526873137,1526873138,1526873139,1526873140,1526873141,1526873142,1526873143,1526873144,1526873145,1526873146,1526873147,1526873148,1526873149,1526873150,1526873151,1526873152,1526873153,1526873154,1526873155,1526873156,1526873157,1526873158,1526873159,1526873160,1526873161,1526873162,1526873163,1526873164,1526873165,1526873166,1526873167,1526873179,1526873180,1526873181,1526873182,1526873183,1526873184,1526873185,1366907955,1366907954,1366907953,1366907952,1526873367,1526873368,1526873369,1526873370,1526873371,1526873372,1526873373,1526873374,1526873375,1526873376,1526873377,1526873378,1526873379,1526873380,1526873381,1526873382,1526873383,1526873384,1526873385,1526873386,1526873387,1526873388,1526873389,1526873390,1526873391,1526873392,1526873393,1526873394,1526873395,1526873396,1526873397,1526873398,1526873399,1526873400,1526873401,1526873402,1526873403,1526873404,1526873405,1526873406,1526873407,1526873408,1526873409,1526873410,1526873411,1526873412,1526873413,1526873414,1526873415,1526873416,1526873417,1526873418,1526873419,1526873420,1526873421,1526873422,1526873423,1526873435,1526873436,1526873437,1526873438,1526873439,1526873440,1526873441,1366907951,1366907950,1366907949,1366907948,1526873623,1526873624,1526873625,1526873626,1526873627,1526873628,1526873629,1526873630,1526873631,1526873632,1526873633,1526873634,1526873635,1526873636,1526873637,1526873638,1526873639,1526873640,1526873641,1526873642,1526873643,1526873644,1526873645,1526873646,1526873647,1526873648,1526873649,1526873650,1526873651,1526873652,1526873653,1526873654,1526873655,1526873656,1526873657,1526873658,1526873659,1526873660,1526873661,1526873662,1526873663,1526873664,1526873665,1526873666,1526873667,1526873668,1526873669,1526873670,1526873671,1526873672,1526873673,1526873674,1526873675,1526873676,1526873677,1526873678,1526873679,1526873691,1526873692,1526873693,1526873694,1526873695,1526873696,1526873697,1366907947,1366907946,1366907945,1366907944,1526873879,1526873880,1526873881,1526873882,1526873883,1526873884,1526873885,1526873886,1526873887,1526873888,1526873889,1526873890,1526873891,1526873892,1526873893,1526873894,1526873895,1526873896,1526873897,1526873898,1526873899,1526873900,1526873901,1526873902,1526873903,1526873904,1526873905,1526873906,1526873907,1526873908,1526873909,1526873910,1526873911,1526873912,1526873913,1526873914,1526873915,1526873916,1526873917,1526873918,1526873919,1526873920,1526873921,1526873922,1526873923,1526873924,1526873925,1526873926,1526873927,1526873928,1526873929,1526873930,1526873931,1526873932,1526873933,1526873934,1526873935,1526873936,1526873946,1526873947,1526873948,1526873949,1526873950,1526873951,1526873952,1526873953,1366907943,1366907942,1366907941,1366907940,1526874135,1526874136,1526874137,1526874138,1526874139,1526874140,1526874141,1526874142,1526874143,1526874144,1526874145,1526874146,1526874147,1526874148,1526874149,1526874150,1526874151,1526874152,1526874153,1526874154,1526874155,1526874156,1526874157,1526874158,1526874159,1526874160,1526874161,1526874162,1526874163,1526874164,1526874165,1526874166,1526874167,1526874168,1526874169,1526874170,1526874171,1526874172,1526874173,1526874174,1526874175,1526874176,1526874177,1526874178,1526874179,1526874180,1526874181,1526874182,1526874183,1526874184,1526874185,1526874186,1526874187,1526874188,1526874189,1526874190,1526874191,1526874192,1526874193,1526874194,1526874195,1526874196,1526874197,1526874198,1526874199,1526874200,1526874201,1526874202,1526874203,1526874204,1526874205,1526874206,1526874207,1526874208,1526874209,1366907939,1366907938,1366907937,1366907936,1366907935,1526874391,1526874392,1526874393,1526874394,1526874395,1526874396,1526874397,1526874398,1526874399,1526874400,1526874401,1526874402,1526874403,1526874404,1526874405,1526874406,1526874407,1526874408,1526874409,1526874410,1526874411,1526874412,1526874413,1526874414,1526874415,1526874416,1526874417,1526874418,1526874419,1526874420,1526874421,1526874422,1526874423,1526874424,1526874425,1526874426,1526874427,1526874428,1526874429,1526874430,1526874431,1526874432,1526874433,1526874434,1526874435,1526874436,1526874437,1526874438,1526874439,1526874440,1526874441,1526874442,1526874443,1526874444,1526874445,1526874446,1526874447,1526874448,1526874449,1526874450,1526874451,1526874452,1526874453,1526874454,1526874455,1526874456,1526874457,1526874458,1526874459,1526874460,1526874461,1526874462,1526874463,1526874464,1526874465,1366907934,1366907933,1366907932,1366907931,1366907930,1526874647,1526874648,1526874649,1526874650,1526874651,1526874652,1526874653,1526874654,1526874655,1526874656,1526874657,1526874658,1526874659,1526874660,1526874661,1526874662,1526874663,1526874664,1526874665,1526874666,1526874667,1526874668,1526874669,1526874670,1526874671,1526874672,1526874673,1526874674,1526874675,1526874676,1526874677,1526874678,1526874679,1526874680,1526874681,1526874682,1526874683,1526874684,1526874685,1526874686,1526874687,1526874688,1526874689,1526874690,1526874691,1526874692,1526874693,1526874694,1526874695,1526874696,1526874697,1526874698,1526874699,1526874700,1526874701,1526874702,1526874703,1526874704,1526874705,1526874706,1526874707,1526874708,1526874709,1526874710,1526874711,1526874712,1526874713,1526874714,1526874715,1526874716,1526874717,1526874718,1526874719,1526874720,1526874721,1366907929,1366907928,1366907927,1366907926,1366907925,1526874903,1526874904,1526874905,1526874906,1526874907,1526874908,1526874909,1526874910,1526874911,1526874912,1526874913,1526874914,1526874915,1526874916,1526874917,1526874918,1526874919,1526874920,1526874921,1526874922,1526874923,1526874924,1526874925,1526874926,1526874927,1526874928,1526874929,1526874930,1526874931,1526874932,1526874933,1526874934,1526874935,1526874936,1526874937,1526874938,1526874939,1526874940,1526874941,1526874942,1526874943,1526874944,1526874945,1526874946,1526874947,1526874948,1526874949,1526874950,1526874951,1526874952,1526874953,1526874954,1526874955,1526874956,1526874957,1526874958,1526874959,1526874960,1526874961,1526874962,1526874963,1526874964,1526874965,1526874966,1526874967,1526874968,1526874969,1526874970,1526874971,1526874972,1526874973,1526874974,1526874975,1526874976,1526874977,1366907924,1366907923,1534679905,1534679904,1534679903,1526875159,1526875160,1526875161,1526875162,1526875163,1526875164,1526875165,1526875166,1526875167,1526875168,1526875169,1526875170,1526875171,1526875172,1526875173,1526875174,1526875175,1526875176,1526875177,1526875178,1526875179,1526875180,1526875181,1526875182,1526875183,1526875184,1526875185,1526875186,1526875187,1526875188,1526875189,1526875190,1526875191,1526875192,1526875193,1526875194,1526875195,1526875196,1526875197,1526875198,1526875199,1526875200,1526875201,1526875202,1526875203,1526875204,1526875205,1526875206,1526875207,1526875208,1526875209,1526875210,1526875211,1526875212,1526875213,1526875214,1526875215,1526875216,1526875217,1526875218,1526875219,1526875220,1526875221,1526875222,1526875223,1526875224,1526875225,1526875226,1526875227,1526875228,1526875229,1526875230,1526875231,1526875232,1526875233,1534679902,1534679901,1534679900,1534679899,1534679898,1526875415,1526875416,1526875417,1526875418,1526875419,1526875420,1526875421,1526875422,1526875423,1526875424,1526875425,1526875426,1526875427,1526875428,1526875429,1526875430,1526875431,1526875432,1526875433,1526875434,1526875435,1526875436,1526875437,1526875438,1526875439,1526875440,1526875441,1526875442,1526875443,1526875444,1526875445,1526875446,1526875447,1526875448,1526875449,1526875450,1526875451,1526875452,1526875453,1526875454,1526875455,1526875456,1526875457,1526875458,1526875459,1526875460,1526875461,1526875462,1526875463,1526875464,1526875465,1526875466,1526875467,1526875468,1526875469,1526875470,1526875471,1526875472,1526875473,1526875474,1526875475,1526875476,1526875477,1526875478,1526875479,1526875480,1526875481,1526875482,1526875483,1526875484,1526875485,1526875486,1526875487,1526875488,1526875489,1366907737,1366907736,1366907735,1366907734,1526875671,1526875672,1526875673,1526875674,1526875675,1526875676,1526875677,1526875678,1526875679,1526875680,1526875681,1526875682,1526875683,1526875684,1526875685,1526875686,1526875687,1526875688,1526875689,1526875690,1526875691,1526875692,1526875693,1526875694,1526875695,1526875696,1526875697,1526875698,1526875699,1526875700,1526875701,1526875702,1526875703,1526875704,1526875705,1526875706,1526875707,1526875708,1526875709,1526875710,1526875711,1526875712,1526875713,1526875714,1526875715,1526875716,1526875717,1526875718,1526875719,1526875720,1526875721,1526875722,1526875723,1526875724,1526875725,1526875726,1526875727,1526875728,1526875729,1526875730,1526875731,1526875732,1526875733,1526875734,1526875735,1526875736,1526875737,1526875738,1526875739,1526875740,1526875741,1526875742,1526875743,1526875744,1526875745,1366907733,1366907732,1366907731,1366907730,1526875927,1526875928,1526875929,1526875930,1526875931,1526875932,1526875933,1526875934,1526875935,1526875936,1526875937,1526875938,1526875939,1526875940,1526875941,1526875942,1526875943,1526875944,1526875945,1526875946,1526875947,1526875948,1526875949,1526875950,1526875951,1526875952,1526875953,1526875954,1526875955,1526875956,1526875957,1526875958,1526875959,1526875960,1526875961,1526875962,1526875963,1526875964,1526875965,1526875966,1526875967,1526875968,1526875969,1526875970,1526875971,1526875972,1526875973,1526875974,1526875975,1526875976,1526875977,1526875978,1526875979,1526875980,1526875981,1526875982,1526875983,1526875984,1526875985,1526875986,1526875987,1526875988,1526875989,1526875990,1526875991,1526875992,1526875993,1526875994,1526875995,1526875996,1526875997,1526875998,1526875999,1526876000,1526876001,1366907729,1366907728,1366907727,1366907726,1526876183,1526876184,1526876185,1526876186,1526876187,1526876188,1526876189,1526876190,1526876191,1526876192,1526876193,1526876194,1526876195,1526876196,1526876197,1526876198,1526876199,1526876200,1526876201,1526876202,1526876203,1526876204,1526876205,1526876206,1526876207,1526876208,1526876209,1526876210,1526876211,1526876212,1526876213,1526876214,1526876215,1526876216,1526876217,1526876218,1526876219,1526876220,1526876221,1526876222,1526876223,1526876224,1526876225,1526876226,1526876227,1526876228,1526876229,1526876230,1526876231,1526876232,1526876233,1526876234,1526876235,1526876236,1526876237,1526876238,1526876239,1526876240,1526876241,1526876242,1526876243,1526876244,1526876245,1526876246,1526876247,1526876248,1526876249,1526876250,1526876251,1526876252,1526876253,1526876254,1526876255,1526876256,1526876257,1366907725,1366907724,1366907723,1366907722,1526876439,1526876440,1526876441,1526876442,1526876443,1526876444,1526876445,1526876446,1526876447,1526876448,1526876449,1526876450,1526876451,1526876452,1526876453,1526876454,1526876455,1526876456,1526876457,1526876458,1526876459,1526876460,1526876461,1526876462,1526876463,1526876464,1526876465,1526876466,1526876467,1526876468,1526876469,1526876470,1526876471,1526876472,1526876473,1526876474,1526876475,1526876476,1526876477,1526876478,1526876479,1526876480,1526876481,1526876482,1526876483,1526876484,1526876485,1526876486,1526876487,1526876488,1526876489,1526876490,1526876491,1526876492,1526876493,1526876494,1526876495,1526876496,1526876497,1526876498,1526876499,1526876500,1526876501,1526876502,1526876503,1526876504,1526876505,1526876506,1526876507,1526876508,1526876509,1526876510,1526876511,1526876512,1526876513,1366907721,1366907720,1366907719,1366907718,1526876695,1526876696,1526876697,1526876698,1526876699,1526876700,1526876701,1526876702,1526876703,1526876704,1526876705,1526876706,1526876707,1526876708,1526876709,1526876710,1526876711,1526876712,1526876713,1526876714,1526876715,1526876716,1526876717,1526876718,1526876719,1526876720,1526876721,1526876722,1526876723,1526876724,1526876725,1526876726,1526876727,1526876728,1526876729,1526876730,1526876731,1526876732,1526876733,1526876734,1526876735,1526876736,1526876737,1526876738,1526876739,1526876740,1526876741,1526876742,1526876743,1526876744,1526876745,1526876746,1526876747,1526876748,1526876749,1526876750,1526876751,1526876752,1526876753,1526876754,1526876755,1526876756,1526876757,1526876758,1526876759,1526876760,1526876761,1526876762,1526876763,1526876764,1526876765,1526876766,1526876767,1526876768,1526876769,1366907717,1366907716,1366907715,1366907714,1526876951,1526876952,1526876953,1526876954,1526876955,1526876956,1526876957,1526876958,1526876959,1526876960,1526876961,1526876962,1526876963,1526876964,1526876965,1526876966,1526876967,1526876968,1526876969,1526876970,1526876971,1526876972,1526876973,1526876974,1526876975,1526876976,1526876977,1526876978,1526876979,1526876980,1526876981,1526876982,1526876983,1526876984,1526876985,1526876986,1526876987,1526876988,1526876989,1526876990,1526876991,1526876992,1526876993,1526876994,1526876995,1526876996,1526876997,1526876998,1526876999,1526877000,1526877001,1526877002,1526877003,1526877004,1526877005,1526877006,1526877007,1526877008,1526877009,1526877010,1526877011,1526877012,1526877013,1526877014,1526877015,1526877016,1526877017,1526877018,1526877019,1526877020,1526877021,1526877022,1526877023,1526877024,1526877025,1366907713,1366907712,1366907711,1366907710,1526877207,1526877208,1526877209,1526877210,1526877211,1526877212,1526877213,1526877214,1526877215,1526877216,1526877217,1526877218,1526877219,1526877220,1526877221,1526877222,1526877223,1526877224,1526877225,1526877226,1526877227,1526877228,1526877229,1526877230,1526877231,1526877232,1526877233,1526877234,1526877235,1526877236,1526877237,1526877238,1526877239,1526877240,1526877241,1526877242,1526877243,1526877244,1526877245,1526877246,1526877247,1526877248,1526877249,1526877250,1526877251,1526877252,1526877253,1526877254,1526877255,1526877256,1526877257,1526877258,1526877259,1526877260,1526877261,1526877262,1526877263,1526877264,1526877265,1526877266,1526877267,1526877268,1526877269,1526877270,1526877271,1526877272,1526877273,1526877274,1526877275,1526877276,1526877277,1526877278,1526877279,1526877280,1526877281,1366907709,1366907708,1366907707,1366907706,1526877463,1526877464,1526877465,1526877466,1526877467,1526877468,1526877469,1526877470,1526877471,1526877472,1526877473,1526877474,1526877475,1526877476,1526877477,1526877478,1526877479,1526877480,1526877481,1526877482,1526877483,1526877484,1526877485,1526877486,1526877487,1526877488,1526877489,1526877490,1526877491,1526877492,1526877493,1526877494,1526877495,1526877496,1526877497,1526877498,1526877499,1526877500,1526877501,1526877502,1526877503,1526877504,1526877505,1526877506,1526877507,1526877508,1526877509,1526877510,1526877511,1526877512,1526877513,1526877514,1526877515,1526877516,1526877517,1526877518,1526877519,1526877520,1526877521,1526877522,1526877523,1526877524,1526877525,1526877526,1526877527,1526877528,1526877529,1526877530,1526877531,1526877532,1526877533,1526877534,1526877535,1526877536,1526877537,1366907705,1366907704,1366907703,1366907702,1526877719,1526877720,1526877721,1526877722,1526877723,1526877724,1526877725,1526877726,1526877727,1526877728,1526877729,1526877730,1526877731,1526877732,1526877733,1526877734,1526877735,1526877736,1526877737,1526877738,1526877739,1526877740,1526877741,1526877742,1526877743,1526877744,1526877745,1526877746,1526877747,1526877748,1526877749,1526877750,1526877751,1526877752,1526877753,1526877754,1526877755,1526877756,1526877757,1526877758,1526877759,1526877760,1526877761,1526877762,1526877763,1526877764,1526877765,1526877766,1526877767,1526877768,1526877769,1526877770,1526877771,1526877772,1526877773,1526877774,1526877775,1526877776,1526877777,1526877778,1526877779,1526877780,1526877781,1526877782,1526877783,1526877784,1526877785,1526877786,1526877787,1526877788,1526877789,1526877790,1526877791,1526877792,1526877793,1366907701,1366907700,1366907699,1366907698,1526877975,1526877976,1526877977,1526877978,1526877979,1526877980,1526877981,1526877982,1526877983,1526877984,1526877985,1526877986,1526877987,1526877988,1526877989,1526877990,1526877991,1526877992,1526877993,1526877994,1526877995,1526877996,1526877997,1526877998,1526877999,1526878000,1526878001,1526878002,1526878003,1526878004,1526878005,1526878006,1526878007,1526878008,1526878009,1526878010,1526878011,1526878012,1526878013,1526878014,1526878015,1526878016,1526878017,1526878018,1526878019,1526878020,1526878021,1526878022,1526878023,1526878024,1526878025,1526878026,1526878027,1526878028,1526878029,1526878030,1526878031,1526878032,1526878033,1526878034,1526878035,1526878036,1526878037,1526878038,1526878039,1526878040,1526878041,1526878042,1526878043,1526878044,1526878045,1526878046,1526878047,1526878048,1526878049,1366907697,1366907696,1366907695,1366907694,1526878231,1526878232,1526878233,1526878234,1526878235,1526878236,1526878237,1526878238,1526878239,1526878240,1526878241,1526878242,1526878243,1526878244,1526878245,1526878246,1526878247,1526878248,1526878249,1526878250,1526878251,1526878252,1526878253,1526878254,1526878255,1526878256,1526878257,1526878258,1526878259,1526878260,1526878261,1526878262,1526878263,1526878264,1526878265,1526878266,1526878267,1526878268,1526878269,1526878270,1526878271,1526878272,1526878273,1526878274,1526878275,1526878276,1526878277,1526878278,1526878279,1526878280,1526878281,1526878282,1526878283,1526878284,1526878285,1526878286,1526878287,1526878288,1526878289,1526878290,1526878291,1526878292,1526878293,1526878294,1526878295,1526878296,1526878297,1526878298,1526878299,1526878300,1526878301,1526878302,1526878303,1526878304,1526878305,1366907693,1366907692,1366907691,1366907690,1526878487,1526878488,1526878489,1526878490,1526878491,1526878492,1526878493,1526878494,1526878495,1526878496,1526878497,1526878498,1526878499,1526878500,1526878501,1526878502,1526878503,1526878504,1526878505,1526878506,1526878507,1526878508,1526878509,1526878510,1526878511,1526878512,1526878513,1526878514,1526878515,1526878516,1526878517,1526878518,1526878519,1526878520,1526878521,1526878522,1526878523,1526878524,1526878525,1526878526,1526878527,1526878528,1526878529,1526878530,1526878531,1526878532,1526878533,1526878534,1526878535,1526878536,1526878537,1526878538,1526878539,1526878540,1526878541,1526878542,1526878543,1526878544,1526878545,1526878546,1526878547,1526878548,1526878549,1526878550,1526878551,1526878552,1526878553,1526878554,1526878555,1526878556,1526878557,1526878558,1526878559,1526878560,1526878561,1366907689,1366907688,1366907687,1366907686,1526878743,1526878744,1526878745,1526878746,1526878747,1526878748,1526878749,1526878750,1526878751,1526878752,1526878753,1526878754,1526878755,1526878756,1526878757,1526878758,1526878759,1526878760,1526878761,1526878762,1526878763,1526878764,1526878765,1526878766,1526878767,1526878768,1526878769,1526878770,1526878771,1526878772,1526878773,1526878774,1526878775,1526878776,1526878777,1526878778,1526878779,1526878780,1526878781,1526878782,1526878783,1526878784,1526878785,1526878786,1526878787,1526878788,1526878789,1526878790,1526878791,1526878792,1526878793,1526878794,1526878795,1526878796,1526878797,1526878798,1526878799,1526878800,1526878801,1526878802,1526878803,1526878804,1526878805,1526878806,1526878807,1526878808,1526878809,1526878810,1526878811,1526878812,1526878813,1526878814,1526878815,1526878816,1526878817,1366907685,1366907684,1366907683,1366907682,1526878999,1526879000,1526879001,1526879002,1526879003,1526879004,1526879005,1526879006,1526879007,1526879008,1526879009,1526879010,1526879011,1526879012,1526879013,1526879014,1526879015,1526879016,1526879017,1526879018,1526879019,1526879020,1526879021,1526879022,1526879023,1526879024,1526879025,1526879026,1526879027,1526879028,1526879029,1526879030,1526879031,1526879032,1526879033,1526879034,1526879035,1526879036,1526879037,1526879038,1526879039,1526879040,1526879041,1526879042,1526879043,1526879044,1526879045,1526879046,1526879047,1526879048,1526879049,1526879050,1526879051,1526879052,1526879053,1526879054,1526879055,1526879056,1526879057,1526879058,1526879059,1526879060,1526879061,1526879062,1526879063,1526879064,1526879065,1526879066,1526879067,1526879068,1526879069,1526879070,1526879071,1526879072,1526879073,1366907681,1366907680,1366907679,1366907678,1526879255,1526879256,1526879257,1526879258,1526879259,1526879260,1526879261,1526879262,1526879263,1526879264,1526879265,1526879266,1526879267,1526879268,1526879269,1526879270,1526879271,1526879272,1526879273,1526879274,1526879275,1526879276,1526879277,1526879278,1526879279,1526879280,1526879281,1526879282,1526879283,1526879284,1526879285,1526879286,1526879287,1526879288,1526879289,1526879290,1526879291,1526879292,1526879293,1526879294,1526879295,1526879296,1526879297,1526879298,1526879299,1526879300,1526879301,1526879302,1526879303,1526879304,1526879305,1526879306,1526879307,1526879308,1526879309,1526879310,1526879311,1526879312,1526879313,1526879314,1526879315,1526879316,1526879317,1526879318,1526879319,1526879320,1526879321,1526879322,1526879323,1526879324,1526879325,1526879326,1526879327,1526879328,1526879329,1366907677,1366907676,1366907675,1366907674,1526879511,1526879512,1526879513,1526879514,1526879515,1526879516,1526879517,1526879518,1526879519,1526879520,1526879521,1526879522,1526879523,1526879524,1526879525,1526879526,1526879527,1526879528,1526879529,1526879530,1526879531,1526879532,1526879533,1526879534,1526879535,1526879536,1526879537,1526879538,1526879539,1526879540,1526879541,1526879542,1526879543,1526879544,1526879545,1526879546,1526879547,1526879548,1526879549,1526879550,1526879551,1526879552,1526879553,1526879554,1526879555,1526879556,1526879557,1526879558,1526879559,1526879560,1526879561,1526879562,1526879563,1526879564,1526879565,1526879566,1526879567,1526879568,1526879569,1526879570,1526879571,1526879572,1526879573,1526879574,1526879575,1526879576,1526879577,1526879578,1526879579,1526879580,1526879581,1526879582,1526879583,1526879584,1526879585,1366907673,1366907672,1366907671,1366907670,1526879767,1526879768,1526879769,1526879770,1526879771,1526879772,1526879773,1526879774,1526879775,1526879776,1526879777,1526879778,1526879779,1526879780,1526879781,1526879782,1526879783,1526879784,1526879785,1526879786,1526879787,1526879788,1526879789,1526879790,1526879791,1526879792,1526879793,1526879794,1526879795,1526879796,1526879797,1526879798,1526879799,1526879800,1526879801,1526879802,1526879803,1526879804,1526879805,1526879806,1526879807,1526879808,1526879809,1526879810,1526879811,1526879812,1526879813,1526879814,1526879815,1526879816,1526879817,1526879818,1526879819,1526879820,1526879821,1526879822,1526879823,1526879824,1526879825,1526879826,1526879827,1526879828,1526879829,1526879830,1526879831,1526879832,1526879833,1526879834,1526879835,1526879836,1526879837,1526879838,1526879839,1526879840,1526879841,1366907669,1366907668,1366907667,1534679649,1526880023,1526880024,1526880025,1526880026,1526880027,1526880028,1526880029,1526880030,1526880031,1526880032,1526880033,1526880034,1526880035,1526880036,1526880037,1526880038,1526880039,1526880040,1526880041,1526880042,1526880043,1526880044,1526880045,1526880046,1526880047,1526880048,1526880049,1526880050,1526880051,1526880052,1526880053,1526880054,1526880055,1526880056,1526880057,1526880058,1526880059,1526880060,1526880061,1526880062,1526880063,1526880064,1526880065,1526880066,1526880067,1526880068,1526880069,1526880070,1526880071,1526880072,1526880073,1526880074,1526880075,1526880076,1526880077,1526880078,1526880079,1526880080,1526880081,1526880082,1526880083,1526880084,1526880085,1526880086,1526880087,1526880088,1526880089,1526880090,1526880091,1526880092,1526880093,1526880094,1526880095,1526880096,1526880097,1534679648,1534679647,1534679646,1534679645,1526880279,1526880280,1526880281,1526880282,1526880283,1526880284,1526880285,1526880286,1526880287,1526880288,1526880289,1526880290,1526880291,1526880292,1526880293,1526880294,1526880295,1526880296,1526880297,1526880298,1526880299,1526880300,1526880301,1526880302,1526880303,1526880304,1526880305,1526880306,1526880307,1526880308,1526880309,1526880310,1526880311,1526880312,1526880313,1526880314,1526880315,1526880316,1526880317,1526880318,1526880319,1526880320,1526880321,1526880322,1526880323,1526880324,1526880325,1526880326,1526880327,1526880328,1526880329,1526880330,1526880331,1526880332,1526880333,1526880334,1526880335,1526880336,1526880337,1526880338,1526880339,1526880340,1526880341,1526880342,1526880343,1526880344,1526880345,1526880346,1526880347,1526880348,1526880349,1526880350,1526880351,1526880352,1526880353,1534679644,1534679643,1534679642,1366907233,1526880535,1526880536,1526880537,1526880538,1526880539,1526880540,1526880541,1526880542,1526880543,1526880544,1526880545,1526880546,1526880547,1526880548,1526880549,1526880550,1526880551,1526880552,1526880553,1526880554,1526880555,1526880556,1526880557,1526880558,1526880559,1526880560,1526880561,1526880562,1526880563,1526880564,1526880565,1526880575,1526880576,1526880577,1526880578,1526880579,1526880580,1526880581,1526880582,1526880583,1526880584,1526880585,1526880586,1526880587,1526880588,1526880589,1526880590,1526880591,1526880592,1526880593,1526880594,1526880595,1526880596,1526880597,1526880598,1526880599,1526880600,1526880601,1526880602,1526880603,1526880604,1526880605,1526880606,1526880607,1526880608,1526880609,1366907232,1366907231,1366907230,1366907229,1526880791,1526880792,1526880793,1526880794,1526880795,1526880796,1526880797,1526880798,1526880799,1526880800,1526880801,1526880802,1526880803,1526880804,1526880805,1526880806,1526880807,1526880808,1526880809,1526880810,1526880811,1526880812,1526880813,1526880814,1526880815,1526880816,1526880817,1526880818,1526880819,1526880820,1526880832,1526880833,1526880834,1526880835,1526880836,1526880837,1526880838,1526880839,1526880840,1526880841,1526880842,1526880843,1526880844,1526880845,1526880846,1526880847,1526880848,1526880849,1526880850,1526880851,1526880852,1526880853,1526880854,1526880855,1526880856,1526880857,1526880858,1526880859,1526880860,1526880861,1526880862,1526880863,1526880864,1526880865,1366907228,1366907227,1366906977,1366906976,1526881047,1526881048,1526881049,1526881050,1526881051,1526881052,1526881053,1526881054,1526881055,1526881056,1526881057,1526881058,1526881059,1526881060,1526881061,1526881062,1526881063,1526881064,1526881065,1526881066,1526881067,1526881068,1526881069,1526881070,1526881071,1526881072,1526881073,1526881074,1526881075,1526881076,1526881088,1526881089,1526881090,1526881091,1526881092,1526881093,1526881094,1526881095,1526881096,1526881097,1526881098,1526881099,1526881100,1526881101,1526881102,1526881103,1526881104,1526881105,1526881106,1526881107,1526881108,1526881109,1526881110,1526881111,1526881112,1526881113,1526881114,1526881115,1526881116,1526881117,1526881118,1526881119,1526881120,1526881121,1366906975,1366906974,1366906973,1366906972,1526881303,1526881304,1526881305,1526881306,1526881307,1526881308,1526881309,1526881310,1526881311,1526881312,1526881313,1526881314,1526881315,1526881316,1526881317,1526881318,1526881319,1526881320,1526881321,1526881322,1526881323,1526881324,1526881325,1526881326,1526881327,1526881328,1526881329,1526881330,1526881331,1526881332,1526881344,1526881345,1526881346,1526881347,1526881348,1526881349,1526881350,1526881351,1526881352,1526881353,1526881354,1526881355,1526881356,1526881357,1526881358,1526881359,1526881360,1526881361,1526881362,1526881363,1526881364,1526881365,1526881366,1526881367,1526881368,1526881369,1526881370,1526881371,1526881372,1526881373,1526881374,1526881375,1526881376,1526881377,1366906971,1366906721,1366906720,1366906719,1526881559,1526881560,1526881561,1526881562,1526881563,1526881564,1526881565,1526881566,1526881567,1526881568,1526881569,1526881570,1526881571,1526881572,1526881573,1526881574,1526881575,1526881576,1526881577,1526881578,1526881579,1526881580,1526881581,1526881582,1526881583,1526881584,1526881585,1526881586,1526881587,1526881588,1526881600,1526881601,1526881602,1526881603,1526881604,1526881605,1526881606,1526881607,1526881608,1526881609,1526881610,1526881611,1526881612,1526881613,1526881614,1526881615,1526881616,1526881617,1526881618,1526881619,1526881620,1526881621,1526881622,1526881623,1526881624,1526881625,1526881626,1526881627,1526881628,1526881629,1526881630,1526881631,1526881632,1526881633,1366906718,1366906717,1366906716,1366906715,1526881815,1526881816,1526881817,1526881818,1526881819,1526881820,1526881821,1526881822,1526881823,1526881824,1526881825,1526881826,1526881827,1526881828,1526881829,1526881830,1526881831,1526881832,1526881833,1526881834,1526881835,1526881836,1526881837,1526881838,1526881839,1526881840,1526881841,1526881842,1526881843,1526881844,1526881856,1526881857,1526881858,1526881859,1526881860,1526881861,1526881862,1526881863,1526881864,1526881865,1526881866,1526881867,1526881868,1526881869,1526881870,1526881871,1526881872,1526881873,1526881874,1526881875,1526881876,1526881877,1526881878,1526881879,1526881880,1526881881,1526881882,1526881883,1526881884,1526881885,1526881886,1526881887,1526881888,1526881889,1366906465,1366906464,1366906463,1366906462,1526882071,1526882072,1526882073,1526882074,1526882075,1526882076,1526882077,1526882078,1526882079,1526882080,1526882081,1526882082,1526882083,1526882084,1526882085,1526882086,1526882087,1526882088,1526882089,1526882090,1526882091,1526882092,1526882093,1526882094,1526882095,1526882096,1526882097,1526882098,1526882099,1526882100,1526882112,1526882113,1526882114,1526882115,1526882116,1526882117,1526882118,1526882119,1526882120,1526882121,1526882122,1526882123,1526882124,1526882125,1526882126,1526882127,1526882128,1526882129,1526882130,1526882131,1526882132,1526882133,1526882134,1526882135,1526882136,1526882137,1526882138,1526882139,1526882140,1526882141,1526882142,1526882143,1526882144,1526882145,1366906461,1366906460,1366906459,1366906209,1526882327,1526882328,1526882329,1526882330,1526882331,1526882332,1526882333,1526882334,1526882335,1526882336,1526882337,1526882338,1526882339,1526882340,1526882341,1526882342,1526882343,1526882344,1526882345,1526882346,1526882347,1526882348,1526882349,1526882350,1526882351,1526882352,1526882353,1526882354,1526882355,1526882356,1526882368,1526882369,1526882370,1526882371,1526882372,1526882373,1526882374,1526882375,1526882376,1526882377,1526882378,1526882379,1526882380,1526882381,1526882382,1526882383,1526882384,1526882385,1526882386,1526882387,1526882388,1526882389,1526882390,1526882391,1526882392,1526882393,1526882394,1526882395,1526882396,1526882397,1526882398,1526882399,1526882400,1526882401,1366906208,1366906207,1366906206,1366906205,1526882583,1526882584,1526882585,1526882586,1526882587,1526882588,1526882589,1526882590,1526882591,1526882592,1526882593,1526882594,1526882595,1526882596,1526882597,1526882598,1526882599,1526882600,1526882601,1526882602,1526882603,1526882604,1526882605,1526882606,1526882607,1526882608,1526882609,1526882610,1526882611,1526882612,1526882624,1526882625,1526882626,1526882627,1526882628,1526882629,1526882630,1526882631,1526882632,1526882633,1526882634,1526882635,1526882636,1526882637,1526882638,1526882639,1526882640,1526882641,1526882642,1526882643,1526882644,1526882645,1526882646,1526882647,1526882648,1526882649,1526882650,1526882651,1526882652,1526882653,1526882654,1526882655,1526882656,1526882657,1526927919,1526927923,1526927928,1526927932,1526927937,1526927941,1366906204,1366906203,1366905953,1366905952,1526928151,1526928152,1526928153,1526928154,1526928155,1526928156,1526928157,1526928158,1526928159,1526928160,1526928161,1526928162,1526928163,1526928164,1526928165,1526928166,1526928167,1526928168,1526928169,1526928170,1526928171,1526928172,1526928173,1526928174,1526928175,1526928176,1526928177,1526928178,1526928179,1526928180,1526928181,1526928182,1526928183,1526928184,1526928185,1526928186,1526928187,1526928188,1526928189,1526928190,1526928191,1526928192,1526928193,1526928194,1526928195,1526928196,1526928197,1526928198,1526928199,1526928200,1526928201,1526928202,1526928203,1526928204,1526928205,1526928206,1526928207,1526928208,1526928209,1526928210,1526928211,1526928212,1526928213,1526928214,1526928215,1526928216,1526928217,1526928218,1526928219,1526928220,1526928221,1526928222,1526928223,1526928224,1526928225,1366905951,1366905950,1366905949,1366905948,1526928407,1526928408,1526928409,1526928410,1526928411,1526928412,1526928413,1526928414,1526928415,1526928416,1526928417,1526928418,1526928419,1526928420,1526928421,1526928422,1526928423,1526928424,1526928425,1526928426,1526928427,1526928428,1526928429,1526928430,1526928431,1526928432,1526928433,1526928434,1526928435,1526928436,1526928437,1526928438,1526928439,1526928440,1526928441,1526928442,1526928443,1526928444,1526928445,1526928446,1526928447,1526928448,1526928449,1526928450,1526928451,1526928452,1526928453,1526928454,1526928455,1526928456,1526928457,1526928458,1526928459,1526928460,1526928461,1526928462,1526928463,1526928464,1526928465,1526928466,1526928467,1526928468,1526928469,1526928470,1526928471,1526928472,1526928473,1526928474,1526928475,1526928476,1526928477,1526928478,1526928479,1526928480,1526928481,1366905947,1366905697,1366905696,1366905695,1526928663,1526928664,1526928665,1526928666,1526928667,1526928668,1526928669,1526928670,1526928671,1526928672,1526928673,1526928674,1526928675,1526928676,1526928677,1526928678,1526928679,1526928680,1526928681,1526928682,1526928683,1526928684,1526928685,1526928686,1526928687,1526928688,1526928689,1526928690,1526928691,1526928692,1526928693,1526928694,1526928695,1526928696,1526928697,1526928698,1526928699,1526928700,1526928701,1526928702,1526928703,1526928704,1526928705,1526928706,1526928707,1526928708,1526928709,1526928710,1526928711,1526928712,1526928713,1526928714,1526928715,1526928716,1526928717,1526928718,1526928719,1526928720,1526928721,1526928722,1526928723,1526928724,1526928725,1526928726,1526928727,1526928728,1526928729,1526928730,1526928731,1526928732,1526928733,1526928734,1526928735,1526928736,1526928737,1366905694,1366905693,1366905692,1366905691,1526928919,1526928920,1526928921,1526928922,1526928923,1526928924,1526928925,1526928926,1526928927,1526928928,1526928929,1526928930,1526928931,1526928932,1526928933,1526928934,1526928935,1526928936,1526928937,1526928938,1526928939,1526928940,1526928941,1526928942,1526928943,1526928944,1526928945,1526928946,1526928947,1526928948,1526928949,1526928950,1526928951,1526928952,1526928953,1526928954,1526928955,1526928956,1526928957,1526928958,1526928959,1526928960,1526928961,1526928962,1526928963,1526928964,1526928965,1526928966,1526928967,1526928968,1526928969,1526928970,1526928971,1526928972,1526928973,1526928974,1526928975,1526928976,1526928977,1526928978,1526928979,1526928980,1526928981,1526928982,1526928983,1526928984,1526928985,1526928986,1526928987,1526928988,1526928989,1526928990,1526928991,1526928992,1526928993,1366905441,1366905440,1366905439,1366905438,1526929175,1526929176,1526929177,1526929178,1526929179,1526929180,1526929181,1526929182,1526929183,1526929184,1526929185,1526929186,1526929187,1526929188,1526929189,1526929190,1526929191,1526929192,1526929193,1526929194,1526929195,1526929196,1526929197,1526929198,1526929199,1526929200,1526929201,1526929202,1526929203,1526929204,1526929205,1526929206,1526929207,1526929208,1526929209,1526929210,1526929211,1526929212,1526929213,1526929214,1526929215,1526929216,1526929217,1526929218,1526929219,1526929220,1526929221,1526929222,1526929223,1526929224,1526929225,1526929226,1526929227,1526929228,1526929229,1526929230,1526929231,1526929232,1526929233,1526929234,1526929235,1526929236,1526929237,1526929238,1526929239,1526929240,1526929241,1526929242,1526929243,1526929244,1526929245,1526929246,1526929247,1526929248,1526929249,1366905437,1366905436,1366905435,1366905185,1526929431,1526929432,1526929433,1526929434,1526929435,1526929436,1526929437,1526929438,1526929439,1526929440,1526929441,1526929442,1526929443,1526929444,1526929445,1526929446,1526929447,1526929448,1526929449,1526929450,1526929451,1526929452,1526929453,1526929454,1526929455,1526929456,1526929457,1526929458,1526929459,1526929460,1526929461,1526929462,1526929463,1526929464,1526929465,1526929466,1526929467,1526929468,1526929469,1526929470,1526929471,1526929472,1526929473,1526929474,1526929475,1526929476,1526929477,1526929478,1526929479,1526929480,1526929481,1526929482,1526929483,1526929484,1526929485,1526929486,1526929487,1526929488,1526929489,1526929490,1526929491,1526929492,1526929493,1526929494,1526929495,1526929496,1526929497,1526929498,1526929499,1526929500,1526929501,1526929502,1526929503,1526929504,1526929505,1366905184,1366905183,1366905182,1366905181,1526929687,1526929688,1526929689,1526929690,1526929691,1526929692,1526929693,1526929694,1526929695,1526929696,1526929697,1526929698,1526929699,1526929700,1526929701,1526929702,1526929703,1526929704,1526929705,1526929706,1526929707,1526929708,1526929709,1526929710,1526929711,1526929712,1526929713,1526929714,1526929715,1526929716,1526929717,1526929718,1526929719,1526929720,1526929721,1526929722,1526929723,1526929724,1526929725,1526929726,1526929727,1526929728,1526929729,1526929730,1526929731,1526929732,1526929733,1526929734,1526929735,1526929736,1526929737,1526929738,1526929739,1526929740,1526929741,1526929742,1526929743,1526929744,1526929745,1526929746,1526929747,1526929748,1526929749,1526929750,1526929751,1526929752,1526929753,1526929754,1526929755,1526929756,1526929757,1526929758,1526929759,1526929760,1526929761,1366905180,1366905179,1366904929,1366904928,1526929943,1526929944,1526929945,1526929946,1526929947,1526929948,1526929949,1526929950,1526929951,1526929952,1526929953,1526929954,1526929955,1526929956,1526929957,1526929958,1526929959,1526929960,1526929961,1526929962,1526929963,1526929964,1526929965,1526929966,1526929967,1526929968,1526929969,1526929970,1526929971,1526929972,1526929973,1526929974,1526929975,1526929976,1526929977,1526929978,1526929979,1526929980,1526929981,1526929982,1526929983,1526929984,1526929985,1526929986,1526929987,1526929988,1526929989,1526929990,1526929991,1526929992,1526929993,1526929994,1526929995,1526929996,1526929997,1526929998,1526929999,1526930000,1526930001,1526930002,1526930003,1526930004,1526930005,1526930006,1526930007,1526930008,1526930009,1526930010,1526930011,1526930012,1526930013,1526930014,1526930015,1526930016,1526930017,1366904927,1366904926,1366904925,1366904924,1526930199,1526930200,1526930201,1526930202,1526930203,1526930204,1526930205,1526930206,1526930207,1526930208,1526930209,1526930210,1526930211,1526930212,1526930213,1526930214,1526930215,1526930216,1526930217,1526930218,1526930219,1526930220,1526930221,1526930222,1526930223,1526930224,1526930225,1526930226,1526930227,1526930228,1526930229,1526930230,1526930231,1526930232,1526930233,1526930234,1526930235,1526930236,1526930237,1526930238,1526930239,1526930240,1526930241,1526930242,1526930243,1526930244,1526930245,1526930246,1526930247,1526930248,1526930249,1526930250,1526930251,1526930252,1526930253,1526930254,1526930255,1526930256,1526930257,1526930258,1526930259,1526930260,1526930261,1526930262,1526930263,1526930264,1526930265,1526930266,1526930267,1526930268,1526930269,1526930270,1526930271,1526930272,1526930273,1366904923,1366904673,1366904672,1366904671,1526930455,1526930456,1526930457,1526930458,1526930459,1526930460,1526930461,1526930462,1526930463,1526930464,1526930465,1526930466,1526930467,1526930468,1526930469,1526930470,1526930471,1526930472,1526930473,1526930474,1526930475,1526930476,1526930477,1526930478,1526930479,1526930480,1526930481,1526930482,1526930483,1526930484,1526930485,1526930486,1526930487,1526930488,1526930489,1526930490,1526930491,1526930492,1526930493,1526930494,1526930495,1526930496,1526930497,1526930498,1526930499,1526930500,1526930501,1526930502,1526930503,1526930504,1526930505,1526930506,1526930507,1526930508,1526930509,1526930510,1526930511,1526930512,1526930513,1526930514,1526930515,1526930516,1526930517,1526930518,1526930519,1526930520,1526930521,1526930522,1526930523,1526930524,1526930525,1526930526,1526930527,1526930528,1526930529,1366904670,1366904669,1366904668,1366904667,1526930711,1526930712,1526930713,1526930714,1526930715,1526930716,1526930717,1526930718,1526930719,1526930720,1526930721,1526930722,1526930723,1526930724,1526930725,1526930726,1526930727,1526930728,1526930729,1526930730,1526930731,1526930732,1526930733,1526930734,1526930735,1526930736,1526930737,1526930738,1526930739,1526930740,1526930741,1526930742,1526930743,1526930744,1526930745,1526930746,1526930747,1526930748,1526930749,1526930750,1526930751,1526930752,1526930753,1526930754,1526930755,1526930756,1526930757,1526930758,1526930759,1526930760,1526930761,1526930762,1526930763,1526930764,1526930765,1526930766,1526930767,1526930768,1526930769,1526930770,1526930771,1526930772,1526930773,1526930774,1526930775,1526930776,1526930777,1526930778,1526930779,1526930780,1526930781,1526930782,1526930783,1526930784,1526930785,1366904417,1366904416,1366904415,1366904414,1526930967,1526930968,1526930969,1526930970,1526930971,1526930972,1526930973,1526930974,1526930975,1526930976,1526930977,1526930978,1526930979,1526930980,1526930981,1526930982,1526930983,1526930984,1526930985,1526930986,1526930987,1526930988,1526930989,1526930990,1526930991,1526930992,1526930993,1526930994,1526930995,1526930996,1526930997,1526930998,1526930999,1526931000,1526931001,1526931002,1526931003,1526931004,1526931005,1526931006,1526931007,1526931008,1526931009,1526931010,1526931011,1526931012,1526931013,1526931014,1526931015,1526931016,1526931017,1526931018,1526931019,1526931020,1526931021,1526931022,1526931023,1526931024,1526931025,1526931026,1526931027,1526931028,1526931029,1526931030,1526931031,1526931032,1526931033,1526931034,1526931035,1526931036,1526931037,1526931038,1526931039,1526931040,1526931041,1366904413,1366904412,1366904411,1366904161,1526931223,1526931224,1526931225,1526931226,1526931227,1526931228,1526931229,1526931230,1526931231,1526931232,1526931233,1526931234,1526931235,1526931236,1526931237,1526931238,1526931239,1526931240,1526931241,1526931242,1526931243,1526931244,1526931245,1526931246,1526931247,1526931248,1526931249,1526931250,1526931251,1526931252,1526931253,1526931254,1526931255,1526931256,1526931257,1526931258,1526931259,1526931260,1526931261,1526931262,1526931263,1526931264,1526931265,1526931266,1526931267,1526931268,1526931269,1526931270,1526931271,1526931272,1526931273,1526931274,1526931275,1526931276,1526931277,1526931278,1526931279,1526931280,1526931281,1526931282,1526931283,1526931284,1526931285,1526931286,1526931287,1526931288,1526931289,1526931290,1526931291,1526931292,1526931293,1526931294,1526931295,1526931296,1526931297,1366904160,1366904159,1366904158,1366904157,1526931479,1526931480,1526931481,1526931482,1526931483,1526931484,1526931485,1526931486,1526931487,1526931488,1526931489,1526931490,1526931491,1526931492,1526931493,1526931494,1526931495,1526931496,1526931497,1526931498,1526931499,1526931500,1526931501,1526931502,1526931503,1526931504,1526931505,1526931506,1526931507,1526931508,1526931509,1526931510,1526931511,1526931512,1526931513,1526931514,1526931515,1526931516,1526931517,1526931518,1526931519,1526931520,1526931521,1526931522,1526931523,1526931524,1526931525,1526931526,1526931527,1526931528,1526931529,1526931530,1526931531,1526931532,1526931533,1526931534,1526931535,1526931536,1526931537,1526931538,1526931539,1526931540,1526931541,1526931542,1526931543,1526931544,1526931545,1526931546,1526931547,1526931548,1526931549,1526931550,1526931551,1526931552,1526931553,1366904156,1366904155,1366903905,1366903904,1526931735,1526931736,1526931737,1526931738,1526931739,1526931740,1526931741,1526931742,1526931743,1526931744,1526931745,1526931746,1526931747,1526931748,1526931749,1526931750,1526931751,1526931752,1526931753,1526931754,1526931755,1526931756,1526931757,1526931758,1526931759,1526931760,1526931761,1526931762,1526931763,1526931764,1526931765,1526931766,1526931767,1526931768,1526931769,1526931770,1526931771,1526931772,1526931773,1526931774,1526931775,1526931776,1526931777,1526931778,1526931779,1526931780,1526931781,1526931782,1526931783,1526931784,1526931785,1526931786,1526931787,1526931788,1526931789,1526931790,1526931791,1526931792,1526931793,1526931794,1526931795,1526931796,1526931797,1526931798,1526931799,1526931800,1526931801,1526931802,1526931803,1526931804,1526931805,1526931806,1526931807,1526931808,1526931809,1366903903,1366903902,1366903901,1366903900,1526931991,1526931992,1526931993,1526931994,1526931995,1526931996,1526931997,1526931998,1526931999,1526932000,1526932001,1526932002,1526932003,1526932004,1526932005,1526932006,1526932007,1526932008,1526932009,1526932010,1526932011,1526932012,1526932013,1526932014,1526932015,1526932016,1526932017,1526932018,1526932019,1526932020,1526932021,1526932022,1526932023,1526932024,1526932025,1526932026,1526932027,1526932028,1526932029,1526932030,1526932031,1526932032,1526932033,1526932034,1526932035,1526932036,1526932037,1526932038,1526932039,1526932040,1526932041,1526932042,1526932043,1526932044,1526932045,1526932046,1526932047,1526932048,1526932049,1526932050,1526932051,1526932052,1526932053,1526932054,1526932055,1526932056,1526932057,1526932058,1526932059,1526932060,1526932061,1526932062,1526932063,1526932064,1526932065,1366903899,1366903649,1366903648,1366903647,1526932247,1526932248,1526932249,1526932250,1526932251,1526932252,1526932253,1526932254,1526932255,1526932256,1526932257,1526932258,1526932259,1526932260,1526932261,1526932262,1526932263,1526932264,1526932265,1526932266,1526932267,1526932268,1526932269,1526932270,1526932271,1526932272,1526932273,1526932274,1526932275,1526932276,1526932277,1526932278,1526932279,1526932280,1526932281,1526932282,1526932283,1526932284,1526932285,1526932286,1526932287,1526932288,1526932289,1526932290,1526932291,1526932292,1526932293,1526932294,1526932295,1526932296,1526932297,1526932298,1526932299,1526932300,1526932301,1526932302,1526932303,1526932304,1526932305,1526932306,1526932307,1526932308,1526932309,1526932310,1526932311,1526932312,1526932313,1526932314,1526932315,1526932316,1526932317,1526932318,1526932319,1526932320,1526932321,1366903646,1366903645,1366903644,1366903643,1526932503,1526932504,1526932505,1526932506,1526932507,1526932508,1526932509,1526932510,1526932511,1526932512,1526932513,1526932514,1526932515,1526932516,1526932517,1526932518,1526932519,1526932520,1526932521,1526932522,1526932523,1526932524,1526932525,1526932526,1526932527,1526932528,1526932529,1526932530,1526932531,1526932532,1526932533,1526932534,1526932535,1526932536,1526932537,1526932538,1526932539,1526932540,1526932541,1526932542,1526932543,1526932544,1526932545,1526932546,1526932547,1526932548,1526932549,1526932550,1526932551,1526932552,1526932553,1526932554,1526932555,1526932556,1526932557,1526932558,1526932559,1526932560,1526932561,1526932562,1526932563,1526932564,1526932565,1526932566,1526932567,1526932568,1526932569,1526932570,1526932571,1526932572,1526932573,1526932574,1526932575,1526932576,1526932577,1366903393,1366903392,1366903391,1366903390,1526932759,1526932760,1526932761,1526932762,1526932763,1526932764,1526932765,1526932766,1526932767,1526932768,1526932769,1526932770,1526932771,1526932772,1526932773,1526932774,1526932775,1526932776,1526932777,1526932778,1526932779,1526932780,1526932781,1526932782,1526932783,1526932784,1526932785,1526932786,1526932787,1526932788,1526932789,1526932790,1526932791,1526932792,1526932793,1526932794,1526932795,1526932796,1526932797,1526932798,1526932799,1526932800,1526932801,1526932802,1526932803,1526932804,1526932805,1526932806,1526932807,1526932808,1526932809,1526932810,1526932811,1526932812,1526932813,1526932814,1526932815,1526932816,1526932817,1526932818,1526932819,1526932820,1526932821,1526932822,1526932823,1526932824,1526932825,1526932826,1526932827,1526932828,1526932829,1526932830,1526932831,1526932832,1526932833,1366903389,1366903388,1366903387,1366903137,1526933015,1526933016,1526933017,1526933018,1526933019,1526933020,1526933021,1526933022,1526933023,1526933024,1526933025,1526933026,1526933027,1526933028,1526933029,1526933030,1526933031,1526933032,1526933033,1526933034,1526933035,1526933036,1526933037,1526933038,1526933039,1526933040,1526933041,1526933042,1526933043,1526933044,1526933045,1526933046,1526933047,1526933048,1526933049,1526933050,1526933051,1526933052,1526933053,1526933054,1526933055,1526933056,1526933057,1526933058,1526933059,1526933060,1526933061,1526933062,1526933063,1526933064,1526933065,1526933066,1526933067,1526933068,1526933069,1526933070,1526933071,1526933072,1526933073,1526933074,1526933075,1526933076,1526933077,1526933078,1526933079,1526933080,1526933081,1526933082,1526933083,1526933084,1526933085,1526933086,1526933087,1526933088,1526933089,1366903136,1366903135,1366903134,1366903133,1526933271,1526933272,1526933273,1526933274,1526933275,1526933276,1526933277,1526933278,1526933279,1526933280,1526933281,1526933282,1526933283,1526933284,1526933285,1526933286,1526933287,1526933288,1526933289,1526933290,1526933291,1526933292,1526933293,1526933294,1526933295,1526933296,1526933297,1526933298,1526933299,1526933300,1526933301,1526933302,1526933303,1526933304,1526933305,1526933306,1526933307,1526933308,1526933309,1526933310,1526933311,1526933312,1526933313,1526933314,1526933315,1526933316,1526933317,1526933318,1526933319,1526933320,1526933321,1526933322,1526933323,1526933324,1526933325,1526933326,1526933327,1526933328,1526933329,1526933330,1526933331,1526933332,1526933333,1526933334,1526933335,1526933336,1526933337,1526933338,1526933339,1526933340,1526933341,1526933342,1526933343,1526933344,1526933345,1366903132,1366903131,1366902881,1366902880,1526933527,1526933528,1526933529,1526933530,1526933531,1526933532,1526933533,1526933534,1526933535,1526933536,1526933537,1526933538,1526933539,1526933540,1526933541,1526933542,1526933543,1526933544,1526933545,1526933546,1526933547,1526933548,1526933549,1526933550,1526933551,1526933552,1526933553,1526933554,1526933555,1526933556,1526933557,1526933558,1526933559,1526933560,1526933561,1526933562,1526933563,1526933564,1526933565,1526933566,1526933567,1526933568,1526933569,1526933570,1526933571,1526933572,1526933573,1526933574,1526933575,1526933576,1526933577,1526933578,1526933579,1526933580,1526933581,1526933582,1526933583,1526933584,1526933585,1526933586,1526933587,1526933588,1526933589,1526933590,1526933591,1526933592,1526933593,1526933594,1526933595,1526933596,1526933597,1526933598,1526933599,1526933600,1526933601,1366902879,1366902878,1366902877,1366902876,1526933783,1526933784,1526933785,1526933786,1526933787,1526933788,1526933789,1526933790,1526933791,1526933792,1526933793,1526933794,1526933795,1526933796,1526933797,1526933798,1526933799,1526933800,1526933801,1526933802,1526933803,1526933804,1526933805,1526933806,1526933807,1526933808,1526933809,1526933810,1526933811,1526933812,1526933813,1526933814,1526933815,1526933816,1526933817,1526933818,1526933819,1526933820,1526933821,1526933822,1526933823,1526933824,1526933825,1526933826,1526933827,1526933828,1526933829,1526933830,1526933831,1526933832,1526933833,1526933834,1526933835,1526933836,1526933837,1526933838,1526933839,1526933840,1526933841,1526933842,1526933843,1526933844,1526933845,1526933846,1526933847,1526933848,1526933849,1526933850,1526933851,1526933852,1526933853,1526933854,1526933855,1526933856,1526933857,1366902875,1366902625,1366902624,1366902623,1526934039,1526934040,1526934041,1526934042,1526934043,1526934044,1526934045,1526934046,1526934047,1526934048,1526934049,1526934050,1526934051,1526934052,1526934053,1526934054,1526934055,1526934056,1526934057,1526934058,1526934059,1526934060,1526934061,1526934062,1526934063,1526934064,1526934065,1526934066,1526934067,1526934068,1526934069,1526934070,1526934071,1526934072,1526934073,1526934074,1526934075,1526934076,1526934077,1526934078,1526934079,1526934080,1526934081,1526934082,1526934083,1526934084,1526934085,1526934086,1526934087,1526934088,1526934089,1526934090,1526934091,1526934092,1526934093,1526934094,1526934095,1526934096,1526934097,1526934098,1526934099,1526934100,1526934101,1526934102,1526934103,1526934104,1526934105,1526934106,1526934107,1526934108,1526934109,1526934110,1526934111,1526934112,1526934113,1366902622,1366902621,1366902620,1366902619,1526934295,1526934296,1526934297,1526934298,1526934299,1526934300,1526934301,1526934302,1526934303,1526934304,1526934305,1526934306,1526934307,1526934308,1526934309,1526934310,1526934311,1526934312,1526934313,1526934314,1526934315,1526934316,1526934317,1526934318,1526934319,1526934320,1526934321,1526934322,1526934323,1526934324,1526934325,1526934326,1526934327,1526934328,1526934329,1526934330,1526934331,1526934332,1526934333,1526934334,1526934335,1526934336,1526934337,1526934338,1526934339,1526934340,1526934341,1526934342,1526934343,1526934344,1526934345,1526934346,1526934347,1526934348,1526934349,1526934350,1526934351,1526934352,1526934353,1526934354,1526934355,1526934356,1526934357,1526934358,1526934359,1526934360,1526934361,1526934362,1526934363,1526934364,1526934365,1526934366,1526934367,1526934368,1526934369,1366902369,1366902368,1366902367,1366902366,1526934551,1526934552,1526934553,1526934554,1526934555,1526934556,1526934557,1526934558,1526934559,1526934560,1526934561,1526934562,1526934563,1526934564,1526934565,1526934566,1526934567,1526934568,1526934569,1526934570,1526934571,1526934572,1526934573,1526934574,1526934575,1526934576,1526934577,1526934578,1526934579,1526934580,1526934581,1526934582,1526934583,1526934584,1526934585,1526934586,1526934587,1526934588,1526934589,1526934590,1526934591,1526934592,1526934593,1526934594,1526934595,1526934596,1526934597,1526934598,1526934599,1526934600,1526934601,1526934602,1526934603,1526934604,1526934605,1526934606,1526934607,1526934608,1526934609,1526934610,1526934611,1526934612,1526934613,1526934614,1526934615,1526934616,1526934617,1526934618,1526934619,1526934620,1526934621,1526934622,1526934623,1526934624,1526934625,1366902365,1366902364,1366902363,1366902113,1526934807,1526934808,1526934809,1526934810,1526934811,1526934812,1526934813,1526934814,1526934815,1526934816,1526934817,1526934818,1526934819,1526934820,1526934821,1526934822,1526934823,1526934824,1526934825,1526934826,1526934827,1526934828,1526934829,1526934830,1526934831,1526934832,1526934833,1526934834,1526934835,1526934836,1526934837,1526934838,1526934839,1526934840,1526934841,1526934842,1526934843,1526934844,1526934845,1526934846,1526934847,1526934848,1526934849,1526934850,1526934851,1526934852,1526934853,1526934854,1526934855,1526934856,1526934857,1526934858,1526934859,1526934860,1526934861,1526934862,1526934863,1526934864,1526934865,1526934866,1526934867,1526934868,1526934869,1526934870,1526934871,1526934872,1526934873,1526934874,1526934875,1526934876,1526934877,1526934878,1526934879,1526934880,1526934881,1366902112,1366902111,1366902110,1366902109,1526935063,1526935064,1526935065,1526935066,1526935067,1526935068,1526935069,1526935070,1526935071,1526935072,1526935073,1526935074,1526935075,1526935076,1526935077,1526935078,1526935079,1526935080,1526935081,1526935082,1526935083,1526935084,1526935085,1526935086,1526935087,1526935088,1526935089,1526935090,1526935091,1526935092,1526935093,1526935094,1526935095,1526935096,1526935097,1526935098,1526935099,1526935100,1526935101,1526935102,1526935103,1526935104,1526935105,1526935106,1526935107,1526935108,1526935109,1526935110,1526935111,1526935112,1526935113,1526935114,1526935115,1526935116,1526935117,1526935118,1526935119,1526935120,1526935121,1526935122,1526935123,1526935124,1526935125,1526935126,1526935127,1526935128,1526935129,1526935130,1526935131,1526935132,1526935133,1526935134,1526935135,1526935136,1526935137,1366902108,1366902107,1366901857,1366901856,1366901855,1526935319,1526935320,1526935321,1526935322,1526935323,1526935324,1526935325,1526935326,1526935327,1526935328,1526935329,1526935330,1526935331,1526935332,1526935333,1526935334,1526935335,1526935336,1526935337,1526935338,1526935339,1526935340,1526935341,1526935342,1526935343,1526935344,1526935345,1526935346,1526935347,1526935348,1526935349,1526935350,1526935351,1526935352,1526935353,1526935354,1526935355,1526935356,1526935357,1526935358,1526935359,1526935360,1526935361,1526935362,1526935363,1526935364,1526935365,1526935366,1526935367,1526935368,1526935369,1526935370,1526935371,1526935372,1526935373,1526935374,1526935375,1526935376,1526935377,1526935378,1526935379,1526935380,1526935381,1526935382,1526935383,1526935384,1526935385,1526935386,1526935387,1526935388,1526935389,1526935390,1526935391,1526935392,1526935393,1366901854,1366901853,1366901852,1366901851,1526935575,1526935576,1526935577,1526935578,1526935579,1526935580,1526935581,1526935582,1526935583,1526935584,1526935585,1526935586,1526935587,1526935588,1526935589,1526935590,1526935591,1526935592,1526935593,1526935594,1526935595,1526935596,1526935597,1526935598,1526935599,1526935600,1526935601,1526935602,1526935603,1526935604,1526935605,1526935606,1526935607,1526935608,1526935609,1526935610,1526935611,1526935612,1526935613,1526935614,1526935615,1526935616,1526935617,1526935618,1526935619,1526935620,1526935621,1526935622,1526935623,1526935624,1526935625,1526935626,1526935627,1526935628,1526935629,1526935630,1526935631,1526935632,1526935633,1526935634,1526935635,1526935636,1526935637,1526935638,1526935639,1526935640,1526935641,1526935642,1526935643,1526935644,1526935645,1526935646,1526935647,1526935648,1526935649,1366901601,1366901600,1366901599,1366901598,1526935831,1526935832,1526935833,1526935834,1526935835,1526935836,1526935837,1526935838,1526935839,1526935840,1526935841,1526935842,1526935843,1526935844,1526935845,1526935846,1526935847,1526935848,1526935849,1526935850,1526935851,1526935852,1526935853,1526935854,1526935855,1526935856,1526935857,1526935858,1526935859,1526935860,1526935861,1526935862,1526935863,1526935864,1526935865,1526935866,1526935867,1526935868,1526935869,1526935870,1526935871,1526935872,1526935873,1526935874,1526935875,1526935876,1526935877,1526935878,1526935879,1526935880,1526935881,1526935882,1526935883,1526935884,1526935885,1526935886,1526935887,1526935888,1526935889,1526935890,1526935891,1526935892,1526935893,1526935894,1526935895,1526935896,1526935897,1526935898,1526935899,1526935900,1526935901,1526935902,1526935903,1526935904,1526935905,1366901597,1366901596,1366901595,1366901345,1526936087,1526936088,1526936089,1526936090,1526936091,1526936092,1526936093,1526936094,1526936095,1526936096,1526936097,1526936098,1526936099,1526936100,1526936101,1526936102,1526936103,1526936104,1526936105,1526936106,1526936107,1526936108,1526936109,1526936110,1526936111,1526936112,1526936113,1526936114,1526936115,1526936116,1526936117,1526936118,1526936119,1526936120,1526936121,1526936122,1526936123,1526936124,1526936125,1526936126,1526936127,1526936128,1526936129,1526936130,1526936131,1526936132,1526936133,1526936134,1526936135,1526936136,1526936137,1526936138,1526936139,1526936140,1526936141,1526936142,1526936143,1526936144,1526936145,1526936146,1526936147,1526936148,1526936149,1526936150,1526936151,1526936152,1526936153,1526936154,1526936155,1526936156,1526936157,1526936158,1526936159,1526936160,1526936161,1366901344,1366901343,1366901342,1366901341,1366901340,1526936343,1526936344,1526936345,1526936346,1526936347,1526936348,1526936349,1526936350,1526936351,1526936352,1526936353,1526936354,1526936355,1526936356,1526936357,1526936358,1526936359,1526936360,1526936361,1526936362,1526936363,1526936364,1526936365,1526936366,1526936367,1526936368,1526936369,1526936370,1526936371,1526936372,1526936373,1526936374,1526936375,1526936376,1526936377,1526936378,1526936379,1526936380,1526936381,1526936382,1526936383,1526936384,1526936385,1526936386,1526936387,1526936388,1526936389,1526936390,1526936391,1526936392,1526936393,1526936394,1526936395,1526936396,1526936397,1526936398,1526936399,1526936400,1526936401,1526936402,1526936403,1526936404,1526936405,1526936406,1526936407,1526936408,1526936409,1526936410,1526936411,1526936412,1526936413,1526936414,1526936415,1526936416,1526936417,1366901339,1366901089,1366901088,1366901087,1526936599,1526936600,1526936601,1526936602,1526936603,1526936604,1526936605,1526936606,1526936607,1526936608,1526936609,1526936610,1526936611,1526936612,1526936613,1526936614,1526936615,1526936616,1526936617,1526936618,1526936619,1526936620,1526936621,1526936622,1526936623,1526936624,1526936625,1526936626,1526936627,1526936628,1526936629,1526936630,1526936631,1526936632,1526936633,1526936634,1526936635,1526936636,1526936637,1526936638,1526936639,1526936640,1526936641,1526936642,1526936643,1526936644,1526936645,1526936646,1526936647,1526936648,1526936649,1526936650,1526936651,1526936652,1526936653,1526936654,1526936655,1526936656,1526936657,1526936658,1526936659,1526936660,1526936661,1526936662,1526936663,1526936664,1526936665,1526936666,1526936667,1526936668,1526936669,1526936670,1526936671,1526936672,1526936673,1366901086,1366901085,1366901084,1366901083,1526936855,1526936856,1526936857,1526936858,1526936859,1526936860,1526936861,1526936862,1526936863,1526936864,1526936865,1526936866,1526936867,1526936868,1526936869,1526936870,1526936871,1526936872,1526936873,1526936874,1526936875,1526936876,1526936877,1526936878,1526936879,1526936880,1526936881,1526936882,1526936883,1526936884,1526936885,1526936886,1526936887,1526936888,1526936889,1526936890,1526936891,1526936892,1526936893,1526936894,1526936895,1526936896,1526936897,1526936898,1526936899,1526936900,1526936901,1526936902,1526936903,1526936904,1526936905,1526936906,1526936907,1526936908,1526936909,1526936910,1526936911,1526936912,1526936922,1526936923,1526936924,1526936925,1526936926,1526936927,1526936928,1526936929,1366900833,1366900832,1366900831,1366900830,1526937111,1526937112,1526937113,1526937114,1526937115,1526937116,1526937117,1526937118,1526937119,1526937120,1526937121,1526937122,1526937123,1526937124,1526937125,1526937126,1526937127,1526937128,1526937129,1526937130,1526937131,1526937132,1526937133,1526937134,1526937135,1526937136,1526937137,1526937138,1526937139,1526937140,1526937141,1526937142,1526937143,1526937144,1526937145,1526937146,1526937147,1526937148,1526937149,1526937150,1526937151,1526937152,1526937153,1526937154,1526937155,1526937156,1526937157,1526937158,1526937159,1526937160,1526937161,1526937162,1526937163,1526937164,1526937165,1526937166,1526937167,1526937179,1526937180,1526937181,1526937182,1526937183,1526937184,1526937185,1366900829,1366900828,1366900827,1366900577,1526937367,1526937368,1526937369,1526937370,1526937371,1526937372,1526937373,1526937374,1526937375,1526937376,1526937377,1526937378,1526937379,1526937380,1526937381,1526937382,1526937383,1526937384,1526937385,1526937386,1526937387,1526937388,1526937389,1526937390,1526937391,1526937392,1526937393,1526937394,1526937395,1526937396,1526937397,1526937398,1526937399,1526937400,1526937401,1526937402,1526937403,1526937404,1526937405,1526937406,1526937407,1526937408,1526937409,1526937410,1526937411,1526937412,1526937413,1526937414,1526937415,1526937416,1526937417,1526937418,1526937419,1526937420,1526937421,1526937422,1526937423,1526937435,1526937436,1526937437,1526937438,1526937439,1526937440,1526937441,1366900576,1366900575,1366900574,1366900573,1366900572,1526937623,1526937624,1526937625,1526937626,1526937627,1526937628,1526937629,1526937630,1526937631,1526937632,1526937633,1526937634,1526937635,1526937636,1526937637,1526937638,1526937639,1526937640,1526937641,1526937642,1526937643,1526937644,1526937645,1526937646,1526937647,1526937648,1526937649,1526937650,1526937651,1526937652,1526937653,1526937654,1526937655,1526937656,1526937657,1526937658,1526937659,1526937660,1526937661,1526937662,1526937663,1526937664,1526937665,1526937666,1526937667,1526937668,1526937669,1526937670,1526937671,1526937672,1526937673,1526937674,1526937675,1526937676,1526937677,1526937678,1526937679,1526937691,1526937692,1526937693,1526937694,1526937695,1526937696,1526937697,1366900571,1366900321,1366900320,1366900319,1526937879,1526937880,1526937881,1526937882,1526937883,1526937884,1526937885,1526937886,1526937887,1526937888,1526937889,1526937890,1526937891,1526937892,1526937893,1526937894,1526937895,1526937896,1526937897,1526937898,1526937899,1526937900,1526937901,1526937902,1526937903,1526937904,1526937905,1526937906,1526937907,1526937908,1526937909,1526937910,1526937911,1526937912,1526937913,1526937914,1526937915,1526937916,1526937917,1526937918,1526937919,1526937920,1526937921,1526937922,1526937923,1526937924,1526937925,1526937926,1526937927,1526937928,1526937929,1526937930,1526937931,1526937932,1526937933,1526937934,1526937935,1526937947,1526937948,1526937949,1526937950,1526937951,1526937952,1526937953,1366900318,1366900317,1366900316,1366900315,1526938135,1526938136,1526938137,1526938138,1526938139,1526938140,1526938141,1526938142,1526938143,1526938144,1526938145,1526938146,1526938147,1526938148,1526938149,1526938150,1526938151,1526938152,1526938153,1526938154,1526938155,1526938156,1526938157,1526938158,1526938159,1526938160,1526938161,1526938162,1526938163,1526938164,1526938165,1526938166,1526938167,1526938168,1526938169,1526938170,1526938171,1526938172,1526938173,1526938174,1526938175,1526938176,1526938177,1526938178,1526938179,1526938180,1526938181,1526938182,1526938183,1526938184,1526938185,1526938186,1526938187,1526938188,1526938189,1526938190,1526938191,1526938203,1526938204,1526938205,1526938206,1526938207,1526938208,1526938209,1366900065,1366900064,1366900063,1366900062,1526938391,1526938392,1526938393,1526938394,1526938395,1526938396,1526938397,1526938398,1526938399,1526938400,1526938401,1526938402,1526938403,1526938404,1526938405,1526938406,1526938407,1526938408,1526938409,1526938410,1526938411,1526938412,1526938413,1526938414,1526938415,1526938416,1526938417,1526938418,1526938419,1526938420,1526938421,1526938422,1526938423,1526938424,1526938425,1526938426,1526938427,1526938428,1526938429,1526938430,1526938431,1526938432,1526938433,1526938434,1526938435,1526938436,1526938437,1526938438,1526938439,1526938440,1526938441,1526938442,1526938443,1526938444,1526938445,1526938446,1526938447,1526938459,1526938460,1526938461,1526938462,1526938463,1526938464,1526938465,1366900061,1366900060,1366900059,1366899809,1366899808,1526938647,1526938648,1526938649,1526938650,1526938651,1526938652,1526938653,1526938654,1526938655,1526938656,1526938657,1526938658,1526938659,1526938660,1526938661,1526938662,1526938663,1526938664,1526938665,1526938666,1526938667,1526938668,1526938669,1526938670,1526938671,1526938672,1526938673,1526938674,1526938675,1526938676,1526938677,1526938678,1526938679,1526938680,1526938681,1526938682,1526938683,1526938684,1526938685,1526938686,1526938687,1526938688,1526938689,1526938690,1526938691,1526938692,1526938693,1526938694,1526938695,1526938696,1526938697,1526938698,1526938699,1526938700,1526938701,1526938702,1526938703,1526938715,1526938716,1526938717,1526938718,1526938719,1526938720,1526938721,1366899807,1366899806,1366899805,1366899804,1526938903,1526938904,1526938905,1526938906,1526938907,1526938908,1526938909,1526938910,1526938911,1526938912,1526938913,1526938914,1526938915,1526938916,1526938917,1526938918,1526938919,1526938920,1526938921,1526938922,1526938923,1526938924,1526938925,1526938926,1526938927,1526938928,1526938929,1526938930,1526938931,1526938932,1526938933,1526938934,1526938935,1526938936,1526938937,1526938938,1526938939,1526938940,1526938941,1526938942,1526938943,1526938944,1526938945,1526938946,1526938947,1526938948,1526938949,1526938950,1526938951,1526938952,1526938953,1526938954,1526938955,1526938956,1526938957,1526938958,1526938959,1526938971,1526938972,1526938973,1526938974,1526938975,1526938976,1526938977,1366899803,1366899553,1366899552,1366899551,1526939159,1526939160,1526939161,1526939162,1526939163,1526939164,1526939165,1526939166,1526939167,1526939168,1526939169,1526939170,1526939171,1526939172,1526939173,1526939174,1526939175,1526939176,1526939177,1526939178,1526939179,1526939180,1526939181,1526939182,1526939183,1526939184,1526939185,1526939186,1526939187,1526939188,1526939189,1526939190,1526939191,1526939192,1526939193,1526939194,1526939195,1526939196,1526939197,1526939198,1526939199,1526939200,1526939201,1526939202,1526939203,1526939204,1526939205,1526939206,1526939207,1526939208,1526939209,1526939210,1526939211,1526939212,1526939213,1526939214,1526939215,1526939227,1526939228,1526939229,1526939230,1526939231,1526939232,1526939233,1366899550,1366899549,1366899548,1366899547,1526939415,1526939416,1526939417,1526939418,1526939419,1526939420,1526939421,1526939422,1526939423,1526939424,1526939425,1526939426,1526939427,1526939428,1526939429,1526939430,1526939431,1526939432,1526939433,1526939434,1526939435,1526939436,1526939437,1526939438,1526939439,1526939440,1526939441,1526939442,1526939443,1526939444,1526939445,1526939446,1526939447,1526939448,1526939449,1526939450,1526939451,1526939452,1526939453,1526939454,1526939455,1526939456,1526939457,1526939458,1526939459,1526939460,1526939461,1526939462,1526939463,1526939464,1526939465,1526939466,1526939467,1526939468,1526939469,1526939470,1526939471,1526939472,1526939482,1526939483,1526939484,1526939485,1526939486,1526939487,1526939488,1526939489,1366899297,1366899296,1366899295,1366899294,1526939671,1526939672,1526939673,1526939674,1526939675,1526939676,1526939677,1526939678,1526939679,1526939680,1526939681,1526939682,1526939683,1526939684,1526939685,1526939686,1526939687,1526939688,1526939689,1526939690,1526939691,1526939692,1526939693,1526939694,1526939695,1526939696,1526939697,1526939698,1526939699,1526939700,1526939701,1526939702,1526939703,1526939704,1526939705,1526939706,1526939707,1526939708,1526939709,1526939710,1526939711,1526939712,1526939713,1526939714,1526939715,1526939716,1526939717,1526939718,1526939719,1526939720,1526939721,1526939722,1526939723,1526939724,1526939725,1526939726,1526939727,1526939728,1526939729,1526939730,1526939731,1526939732,1526939733,1526939734,1526939735,1526939736,1526939737,1526939738,1526939739,1526939740,1526939741,1526939742,1526939743,1526939744,1526939745,1366899293,1366899292,1366899291,1366899041,1366899040,1526939927,1526939928,1526939929,1526939930,1526939931,1526939932,1526939933,1526939934,1526939935,1526939936,1526939937,1526939938,1526939939,1526939940,1526939941,1526939942,1526939943,1526939944,1526939945,1526939946,1526939947,1526939948,1526939949,1526939950,1526939951,1526939952,1526939953,1526939954,1526939955,1526939956,1526939957,1526939958,1526939959,1526939960,1526939961,1526939962,1526939963,1526939964,1526939965,1526939966,1526939967,1526939968,1526939969,1526939970,1526939971,1526939972,1526939973,1526939974,1526939975,1526939976,1526939977,1526939978,1526939979,1526939980,1526939981,1526939982,1526939983,1526939984,1526939985,1526939986,1526939987,1526939988,1526939989,1526939990,1526939991,1526939992,1526939993,1526939994,1526939995,1526939996,1526939997,1526939998,1526939999,1526940000,1526940001,1366899039,1366899038,1366899037,1366899036,1526940183,1526940184,1526940185,1526940186,1526940187,1526940188,1526940189,1526940190,1526940191,1526940192,1526940193,1526940194,1526940195,1526940196,1526940197,1526940198,1526940199,1526940200,1526940201,1526940202,1526940203,1526940204,1526940205,1526940206,1526940207,1526940208,1526940209,1526940210,1526940211,1526940212,1526940213,1526940214,1526940215,1526940216,1526940217,1526940218,1526940219,1526940220,1526940221,1526940222,1526940223,1526940224,1526940225,1526940226,1526940227,1526940228,1526940229,1526940230,1526940231,1526940232,1526940233,1526940234,1526940235,1526940236,1526940237,1526940238,1526940239,1526940240,1526940241,1526940242,1526940243,1526940244,1526940245,1526940246,1526940247,1526940248,1526940249,1526940250,1526940251,1526940252,1526940253,1526940254,1526940255,1526940256,1526940257,1366899035,1366898785,1366898784,1366898783,1526940439,1526940440,1526940441,1526940442,1526940443,1526940444,1526940445,1526940446,1526940447,1526940448,1526940449,1526940450,1526940451,1526940452,1526940453,1526940454,1526940455,1526940456,1526940457,1526940458,1526940459,1526940460,1526940461,1526940462,1526940463,1526940464,1526940465,1526940466,1526940467,1526940468,1526940469,1526940470,1526940471,1526940472,1526940473,1526940474,1526940475,1526940476,1526940477,1526940478,1526940479,1526940480,1526940481,1526940482,1526940483,1526940484,1526940485,1526940486,1526940487,1526940488,1526940489,1526940490,1526940491,1526940492,1526940493,1526940494,1526940495,1526940496,1526940497,1526940498,1526940499,1526940500,1526940501,1526940502,1526940503,1526940504,1526940505,1526940506,1526940507,1526940508,1526940509,1526940510,1526940511,1526940512,1526940513,1366898782,1366898781,1366898780,1366898779,1526940695,1526940696,1526940697,1526940698,1526940699,1526940700,1526940701,1526940702,1526940703,1526940704,1526940705,1526940706,1526940707,1526940708,1526940709,1526940710,1526940711,1526940712,1526940713,1526940714,1526940715,1526940716,1526940717,1526940718,1526940719,1526940720,1526940721,1526940722,1526940723,1526940724,1526940725,1526940726,1526940727,1526940728,1526940729,1526940730,1526940731,1526940732,1526940733,1526940734,1526940735,1526940736,1526940737,1526940738,1526940739,1526940740,1526940741,1526940742,1526940743,1526940744,1526940745,1526940746,1526940747,1526940748,1526940749,1526940750,1526940751,1526940752,1526940753,1526940754,1526940755,1526940756,1526940757,1526940758,1526940759,1526940760,1526940761,1526940762,1526940763,1526940764,1526940765,1526940766,1526940767,1526940768,1526940769,1366898529,1366898528,1366898527,1366898526,1366898525,1526940951,1526940952,1526940953,1526940954,1526940955,1526940956,1526940957,1526940958,1526940959,1526940960,1526940961,1526940962,1526940963,1526940964,1526940965,1526940966,1526940967,1526940968,1526940969,1526940970,1526940971,1526940972,1526940973,1526940974,1526940975,1526940976,1526940977,1526940978,1526940979,1526940980,1526940981,1526940982,1526940983,1526940984,1526940985,1526940986,1526940987,1526940988,1526940989,1526940990,1526940991,1526940992,1526940993,1526940994,1526940995,1526940996,1526940997,1526940998,1526940999,1526941000,1526941001,1526941002,1526941003,1526941004,1526941005,1526941006,1526941007,1526941008,1526941009,1526941010,1526941011,1526941012,1526941013,1526941014,1526941015,1526941016,1526941017,1526941018,1526941019,1526941020,1526941021,1526941022,1526941023,1526941024,1526941025,1366898524,1366898523,1366898273,1366898272,1526941207,1526941208,1526941209,1526941210,1526941211,1526941212,1526941213,1526941214,1526941215,1526941216,1526941217,1526941218,1526941219,1526941220,1526941221,1526941222,1526941223,1526941224,1526941225,1526941226,1526941227,1526941228,1526941229,1526941230,1526941231,1526941232,1526941233,1526941234,1526941235,1526941236,1526941237,1526941238,1526941239,1526941240,1526941241,1526941242,1526941243,1526941244,1526941245,1526941246,1526941247,1526941248,1526941249,1526941250,1526941251,1526941252,1526941253,1526941254,1526941255,1526941256,1526941257,1526941258,1526941259,1526941260,1526941261,1526941262,1526941263,1526941264,1526941265,1526941266,1526941267,1526941268,1526941269,1526941270,1526941271,1526941272,1526941273,1526941274,1526941275,1526941276,1526941277,1526941278,1526941279,1526941280,1526941281,1366898271,1366898270,1366898269,1366898268,1526941463,1526941464,1526941465,1526941466,1526941467,1526941468,1526941469,1526941470,1526941471,1526941472,1526941473,1526941474,1526941475,1526941476,1526941477,1526941478,1526941479,1526941480,1526941481,1526941482,1526941483,1526941484,1526941485,1526941486,1526941487,1526941488,1526941489,1526941490,1526941491,1526941492,1526941493,1526941494,1526941495,1526941496,1526941497,1526941498,1526941499,1526941500,1526941501,1526941502,1526941503,1526941504,1526941505,1526941506,1526941507,1526941508,1526941509,1526941510,1526941511,1526941512,1526941513,1526941514,1526941515,1526941516,1526941517,1526941518,1526941519,1526941520,1526941521,1526941522,1526941523,1526941524,1526941525,1526941526,1526941527,1526941528,1526941529,1526941530,1526941531,1526941532,1526941533,1526941534,1526941535,1526941536,1526941537,1366898267,1366898017,1366898016,1366898015,1526941719,1526941720,1526941721,1526941722,1526941723,1526941724,1526941725,1526941726,1526941727,1526941728,1526941729,1526941730,1526941731,1526941732,1526941733,1526941734,1526941735,1526941736,1526941737,1526941738,1526941739,1526941740,1526941741,1526941742,1526941743,1526941744,1526941745,1526941746,1526941747,1526941748,1526941749,1526941750,1526941751,1526941752,1526941753,1526941754,1526941755,1526941756,1526941757,1526941758,1526941759,1526941760,1526941761,1526941762,1526941763,1526941764,1526941765,1526941766,1526941767,1526941768,1526941769,1526941770,1526941771,1526941772,1526941773,1526941774,1526941775,1526941776,1526941777,1526941778,1526941779,1526941780,1526941781,1526941782,1526941783,1526941784,1526941785,1526941786,1526941787,1526941788,1526941789,1526941790,1526941791,1526941792,1526941793,1366898014,1366898013,1366898012,1366898011,1526941975,1526941976,1526941977,1526941978,1526941979,1526941980,1526941981,1526941982,1526941983,1526941984,1526941985,1526941986,1526941987,1526941988,1526941989,1526941990,1526941991,1526941992,1526941993,1526941994,1526941995,1526941996,1526941997,1526941998,1526941999,1526942000,1526942001,1526942002,1526942003,1526942004,1526942005,1526942006,1526942007,1526942008,1526942009,1526942010,1526942011,1526942012,1526942013,1526942014,1526942015,1526942016,1526942017,1526942018,1526942019,1526942020,1526942021,1526942022,1526942023,1526942024,1526942025,1526942026,1526942027,1526942028,1526942029,1526942030,1526942031,1526942032,1526942033,1526942034,1526942035,1526942036,1526942037,1526942038,1526942039,1526942040,1526942041,1526942042,1526942043,1526942044,1526942045,1526942046,1526942047,1526942048,1526942049,1366897761,1366897760,1366897759,1366897758,1526942231,1526942232,1526942233,1526942234,1526942235,1526942236,1526942237,1526942238,1526942239,1526942240,1526942241,1526942242,1526942243,1526942244,1526942245,1526942246,1526942247,1526942248,1526942249,1526942250,1526942251,1526942252,1526942253,1526942254,1526942255,1526942256,1526942257,1526942258,1526942259,1526942260,1526942261,1526942262,1526942263,1526942264,1526942265,1526942266,1526942267,1526942268,1526942269,1526942270,1526942271,1526942272,1526942273,1526942274,1526942275,1526942276,1526942277,1526942278,1526942279,1526942280,1526942281,1526942282,1526942283,1526942284,1526942285,1526942286,1526942287,1526942288,1526942289,1526942290,1526942291,1526942292,1526942293,1526942294,1526942295,1526942296,1526942297,1526942298,1526942299,1526942300,1526942301,1526942302,1526942303,1526942304,1526942305,1366897757,1366897756,1366897755,1366897505,1526942487,1526942488,1526942489,1526942490,1526942491,1526942492,1526942493,1526942494,1526942495,1526942496,1526942497,1526942498,1526942499,1526942500,1526942501,1526942502,1526942503,1526942504,1526942505,1526942506,1526942507,1526942508,1526942509,1526942510,1526942511,1526942512,1526942513,1526942514,1526942515,1526942516,1526942517,1526942518,1526942519,1526942520,1526942521,1526942522,1526942523,1526942524,1526942525,1526942526,1526942527,1526942528,1526942529,1526942530,1526942531,1526942532,1526942533,1526942534,1526942535,1526942536,1526942537,1526942538,1526942539,1526942540,1526942541,1526942542,1526942543,1526942544,1526942545,1526942546,1526942547,1526942548,1526942549,1526942550,1526942551,1526942552,1526942553,1526942554,1526942555,1526942556,1526942557,1526942558,1526942559,1526942560,1526942561,1366897504,1366897503,1366897502,1366897501,1526942743,1526942744,1526942745,1526942746,1526942747,1526942748,1526942749,1526942750,1526942751,1526942752,1526942753,1526942754,1526942755,1526942756,1526942757,1526942758,1526942759,1526942760,1526942761,1526942762,1526942763,1526942764,1526942765,1526942766,1526942767,1526942768,1526942769,1526942770,1526942771,1526942772,1526942773,1526942774,1526942775,1526942776,1526942777,1526942778,1526942779,1526942780,1526942781,1526942782,1526942783,1526942784,1526942785,1526942786,1526942787,1526942788,1526942789,1526942790,1526942791,1526942792,1526942793,1526942794,1526942795,1526942796,1526942797,1526942798,1526942799,1526942800,1526942801,1526942802,1526942803,1526942804,1526942805,1526942806,1526942807,1526942808,1526942809,1526942810,1526942811,1526942812,1526942813,1526942814,1526942815,1526942816,1526942817,1366897500,1366897499,1366897249,1366897248,1526942999,1526943000,1526943001,1526943002,1526943003,1526943004,1526943005,1526943006,1526943007,1526943008,1526943009,1526943010,1526943011,1526943012,1526943013,1526943014,1526943015,1526943016,1526943017,1526943018,1526943019,1526943020,1526943021,1526943022,1526943023,1526943024,1526943025,1526943026,1526943027,1526943028,1526943029,1526943030,1526943031,1526943032,1526943033,1526943034,1526943035,1526943036,1526943037,1526943038,1526943039,1526943040,1526943041,1526943042,1526943043,1526943044,1526943045,1526943046,1526943047,1526943048,1526943049,1526943050,1526943051,1526943052,1526943053,1526943054,1526943055,1526943056,1526943057,1526943058,1526943059,1526943060,1526943061,1526943062,1526943063,1526943064,1526943065,1526943066,1526943067,1526943068,1526943069,1526943070,1526943071,1526943072,1526943073,1366897247,1366897246,1366897245,1366897244,1526943255,1526943256,1526943257,1526943258,1526943259,1526943260,1526943261,1526943262,1526943263,1526943264,1526943265,1526943266,1526943267,1526943268,1526943269,1526943270,1526943271,1526943272,1526943273,1526943274,1526943275,1526943276,1526943277,1526943278,1526943279,1526943280,1526943281,1526943282,1526943283,1526943284,1526943285,1526943286,1526943287,1526943288,1526943289,1526943290,1526943291,1526943292,1526943293,1526943294,1526943295,1526943296,1526943297,1526943298,1526943299,1526943300,1526943301,1526943302,1526943303,1526943304,1526943305,1526943306,1526943307,1526943308,1526943309,1526943310,1526943311,1526943312,1526943313,1526943314,1526943315,1526943316,1526943317,1526943318,1526943319,1526943320,1526943321,1526943322,1526943323,1526943324,1526943325,1526943326,1526943327,1526943328,1526943329,1366897243,1366896993,1366896992,1366896991,1526943511,1526943512,1526943513,1526943514,1526943515,1526943516,1526943517,1526943518,1526943519,1526943520,1526943521,1526943522,1526943523,1526943524,1526943525,1526943526,1526943527,1526943528,1526943529,1526943530,1526943531,1526943532,1526943533,1526943534,1526943535,1526943536,1526943537,1526943538,1526943539,1526943540,1526943541,1526943542,1526943543,1526943544,1526943545,1526943546,1526943547,1526943548,1526943549,1526943550,1526943551,1526943552,1526943553,1526943554,1526943555,1526943556,1526943557,1526943558,1526943559,1526943560,1526943561,1526943562,1526943563,1526943564,1526943565,1526943566,1526943567,1526943568,1526943569,1526943570,1526943571,1526943572,1526943573,1526943574,1526943575,1526943576,1526943577,1526943578,1526943579,1526943580,1526943581,1526943582,1526943583,1526943584,1526943585,1366896990,1366896989,1366896988,1366896987,1526943767,1526943768,1526943769,1526943770,1526943771,1526943772,1526943773,1526943774,1526943775,1526943776,1526943777,1526943778,1526943779,1526943780,1526943781,1526943782,1526943783,1526943784,1526943785,1526943786,1526943787,1526943788,1526943789,1526943790,1526943791,1526943792,1526943793,1526943794,1526943795,1526943796,1526943797,1526943798,1526943799,1526943800,1526943801,1526943802,1526943803,1526943804,1526943805,1526943806,1526943807,1526943808,1526943809,1526943810,1526943811,1526943812,1526943813,1526943814,1526943815,1526943816,1526943817,1526943818,1526943819,1526943820,1526943821,1526943822,1526943823,1526943824,1526943825,1526943826,1526943827,1526943828,1526943829,1526943830,1526943831,1526943832,1526943833,1526943834,1526943835,1526943836,1526943837,1526943838,1526943839,1526943840,1526943841,1366896737,1366896736,1366896735,1366896734,1526944023,1526944024,1526944025,1526944026,1526944027,1526944028,1526944029,1526944030,1526944031,1526944032,1526944033,1526944034,1526944035,1526944036,1526944037,1526944038,1526944039,1526944040,1526944041,1526944042,1526944043,1526944044,1526944045,1526944046,1526944047,1526944048,1526944049,1526944050,1526944051,1526944052,1526944053,1526944054,1526944055,1526944056,1526944057,1526944058,1526944059,1526944060,1526944061,1526944062,1526944063,1526944064,1526944065,1526944066,1526944067,1526944068,1526944069,1526944070,1526944071,1526944072,1526944073,1526944074,1526944075,1526944076,1526944077,1526944078,1526944079,1526944080,1526944081,1526944082,1526944083,1526944084,1526944085,1526944086,1526944087,1526944088,1526944089,1526944090,1526944091,1526944092,1526944093,1526944094,1526944095,1526944096,1526944097,1366896733,1366896732,1366896731,1366896481,1526944279,1526944280,1526944281,1526944282,1526944283,1526944284,1526944285,1526944286,1526944287,1526944288,1526944289,1526944290,1526944291,1526944292,1526944293,1526944294,1526944295,1526944296,1526944297,1526944298,1526944299,1526944300,1526944301,1526944302,1526944303,1526944304,1526944305,1526944306,1526944307,1526944308,1526944309,1526944310,1526944311,1526944312,1526944313,1526944314,1526944315,1526944316,1526944317,1526944318,1526944319,1526944320,1526944321,1526944322,1526944323,1526944324,1526944325,1526944326,1526944327,1526944328,1526944329,1526944330,1526944331,1526944332,1526944333,1526944334,1526944335,1526944336,1526944337,1526944338,1526944339,1526944340,1526944341,1526944342,1526944343,1526944344,1526944345,1526944346,1526944347,1526944348,1526944349,1526944350,1526944351,1526944352,1526944353,1366896480,1366896479,1366896478,1366896477,1526944535,1526944536,1526944537,1526944538,1526944539,1526944540,1526944541,1526944542,1526944543,1526944544,1526944545,1526944546,1526944547,1526944548,1526944549,1526944550,1526944551,1526944552,1526944553,1526944554,1526944555,1526944556,1526944557,1526944558,1526944559,1526944560,1526944561,1526944562,1526944563,1526944564,1526944565,1526944566,1526944567,1526944568,1526944569,1526944570,1526944571,1526944572,1526944573,1526944574,1526944575,1526944576,1526944577,1526944578,1526944579,1526944580,1526944581,1526944582,1526944583,1526944584,1526944585,1526944586,1526944587,1526944588,1526944589,1526944590,1526944591,1526944592,1526944593,1526944594,1526944595,1526944596,1526944597,1526944598,1526944599,1526944600,1526944601,1526944602,1526944603,1526944604,1526944605,1526944606,1526944607,1526944608,1526944609,1366896476,1366896475,1366896225,1366896224,1526944791,1526944792,1526944793,1526944794,1526944795,1526944796,1526944797,1526944798,1526944799,1526944800,1526944801,1526944802,1526944803,1526944804,1526944805,1526944806,1526944807,1526944808,1526944809,1526944810,1526944811,1526944812,1526944813,1526944814,1526944815,1526944816,1526944817,1526944818,1526944819,1526944820,1526944821,1526944822,1526944823,1526944824,1526944825,1526944826,1526944827,1526944828,1526944829,1526944830,1526944831,1526944832,1526944833,1526944834,1526944835,1526944836,1526944837,1526944838,1526944839,1526944840,1526944841,1526944842,1526944843,1526944844,1526944845,1526944846,1526944847,1526944848,1526944849,1526944850,1526944851,1526944852,1526944853,1526944854,1526944855,1526944856,1526944857,1526944858,1526944859,1526944860,1526944861,1526944862,1526944863,1526944864,1526944865,1366896223,1366896222,1366896221,1366896220,1526945047,1526945048,1526945049,1526945050,1526945051,1526945052,1526945053,1526945054,1526945055,1526945056,1526945057,1526945058,1526945059,1526945060,1526945061,1526945062,1526945063,1526945064,1526945065,1526945066,1526945067,1526945068,1526945069,1526945070,1526945071,1526945072,1526945073,1526945074,1526945075,1526945076,1526945077,1526945078,1526945079,1526945080,1526945081,1526945082,1526945083,1526945084,1526945085,1526945086,1526945087,1526945088,1526945089,1526945090,1526945091,1526945092,1526945093,1526945094,1526945095,1526945096,1526945097,1526945098,1526945099,1526945100,1526945101,1526945102,1526945103,1526945104,1526945105,1526945106,1526945107,1526945108,1526945109,1526945110,1526945111,1526945112,1526945113,1526945114,1526945115,1526945116,1526945117,1526945118,1526945119,1526945120,1526945121,1366896219,1366895969,1366895968,1366895967,1526945303,1526945304,1526945305,1526945306,1526945307,1526945308,1526945309,1526945310,1526945311,1526945312,1526945313,1526945314,1526945315,1526945316,1526945317,1526945318,1526945319,1526945320,1526945321,1526945322,1526945323,1526945324,1526945325,1526945326,1526945327,1526945328,1526945329,1526945330,1526945331,1526945332,1526945333,1526945334,1526945335,1526945336,1526945337,1526945338,1526945339,1526945340,1526945341,1526945342,1526945343,1526945344,1526945345,1526945346,1526945347,1526945348,1526945349,1526945350,1526945351,1526945352,1526945353,1526945354,1526945355,1526945356,1526945357,1526945358,1526945359,1526945360,1526945361,1526945362,1526945363,1526945364,1526945365,1526945366,1526945367,1526945368,1526945369,1526945370,1526945371,1526945372,1526945373,1526945374,1526945375,1526945376,1526945377,1366895966,1366895965,1366895964,1366895963,1526945559,1526945560,1526945561,1526945562,1526945563,1526945564,1526945565,1526945566,1526945567,1526945568,1526945569,1526945570,1526945571,1526945572,1526945573,1526945574,1526945575,1526945576,1526945577,1526945578,1526945579,1526945580,1526945581,1526945582,1526945583,1526945584,1526945585,1526945586,1526945587,1526945588,1526945589,1526945590,1526945591,1526945592,1526945593,1526945594,1526945595,1526945596,1526945597,1526945598,1526945599,1526945600,1526945601,1526945602,1526945603,1526945604,1526945605,1526945606,1526945607,1526945608,1526945609,1526945610,1526945611,1526945612,1526945613,1526945614,1526945615,1526945616,1526945617,1526945618,1526945619,1526945620,1526945621,1526945622,1526945623,1526945624,1526945625,1526945626,1526945627,1526945628,1526945629,1526945630,1526945631,1526945632,1526945633,1366895713,1366895712,1366895711,1366895710,1526945815,1526945816,1526945817,1526945818,1526945819,1526945820,1526945821,1526945822,1526945823,1526945824,1526945825,1526945826,1526945827,1526945828,1526945829,1526945830,1526945831,1526945832,1526945833,1526945834,1526945835,1526945836,1526945837,1526945838,1526945839,1526945840,1526945841,1526945842,1526945843,1526945844,1526945845,1526945846,1526945847,1526945848,1526945849,1526945850,1526945851,1526945852,1526945853,1526945854,1526945855,1526945856,1526945857,1526945858,1526945859,1526945860,1526945861,1526945862,1526945863,1526945864,1526945865,1526945866,1526945867,1526945868,1526945869,1526945870,1526945871,1526945872,1526945873,1526945874,1526945875,1526945876,1526945877,1526945878,1526945879,1526945880,1526945881,1526945882,1526945883,1526945884,1526945885,1526945886,1526945887,1526945888,1526945889,1366895709,1366895708,1366895707,1366895457,1526946071,1526946072,1526946073,1526946074,1526946075,1526946076,1526946077,1526946078,1526946079,1526946080,1526946081,1526946082,1526946083,1526946084,1526946085,1526946086,1526946087,1526946088,1526946089,1526946090,1526946091,1526946092,1526946093,1526946094,1526946095,1526946096,1526946097,1526946098,1526946099,1526946100,1526946101,1526946111,1526946112,1526946113,1526946114,1526946115,1526946116,1526946117,1526946118,1526946119,1526946120,1526946121,1526946122,1526946123,1526946124,1526946125,1526946126,1526946127,1526946128,1526946129,1526946130,1526946131,1526946132,1526946133,1526946134,1526946135,1526946136,1526946137,1526946138,1526946139,1526946140,1526946141,1526946142,1526946143,1526946144,1526946145,1366895456,1366895455,1366895454,1366895453,1526946327,1526946328,1526946329,1526946330,1526946331,1526946332,1526946333,1526946334,1526946335,1526946336,1526946337,1526946338,1526946339,1526946340,1526946341,1526946342,1526946343,1526946344,1526946345,1526946346,1526946347,1526946348,1526946349,1526946350,1526946351,1526946352,1526946353,1526946354,1526946355,1526946356,1526946368,1526946369,1526946370,1526946371,1526946372,1526946373,1526946374,1526946375,1526946376,1526946377,1526946378,1526946379,1526946380,1526946381,1526946382,1526946383,1526946384,1526946385,1526946386,1526946387,1526946388,1526946389,1526946390,1526946391,1526946392,1526946393,1526946394,1526946395,1526946396,1526946397,1526946398,1526946399,1526946400,1526946401,1366895452,1366895451,1366895201,1366895200,1526946583,1526946584,1526946585,1526946586,1526946587,1526946588,1526946589,1526946590,1526946591,1526946592,1526946593,1526946594,1526946595,1526946596,1526946597,1526946598,1526946599,1526946600,1526946601,1526946602,1526946603,1526946604,1526946605,1526946606,1526946607,1526946608,1526946609,1526946610,1526946611,1526946612,1526946624,1526946625,1526946626,1526946627,1526946628,1526946629,1526946630,1526946631,1526946632,1526946633,1526946634,1526946635,1526946636,1526946637,1526946638,1526946639,1526946640,1526946641,1526946642,1526946643,1526946644,1526946645,1526946646,1526946647,1526946648,1526946649,1526946650,1526946651,1526946652,1526946653,1526946654,1526946655,1526946656,1526946657,1366895199,1366895198,1366895197,1366895196,1526946839,1526946840,1526946841,1526946842,1526946843,1526946844,1526946845,1526946846,1526946847,1526946848,1526946849,1526946850,1526946851,1526946852,1526946853,1526946854,1526946855,1526946856,1526946857,1526946858,1526946859,1526946860,1526946861,1526946862,1526946863,1526946864,1526946865,1526946866,1526946867,1526946868,1526946880,1526946881,1526946882,1526946883,1526946884,1526946885,1526946886,1526946887,1526946888,1526946889,1526946890,1526946891,1526946892,1526946893,1526946894,1526946895,1526946896,1526946897,1526946898,1526946899,1526946900,1526946901,1526946902,1526946903,1526946904,1526946905,1526946906,1526946907,1526946908,1526946909,1526946910,1526946911,1526946912,1526946913,1366895195,1366894945,1366894944,1366894943,1526947095,1526947096,1526947097,1526947098,1526947099,1526947100,1526947101,1526947102,1526947103,1526947104,1526947105,1526947106,1526947107,1526947108,1526947109,1526947110,1526947111,1526947112,1526947113,1526947114,1526947115,1526947116,1526947117,1526947118,1526947119,1526947120,1526947121,1526947122,1526947123,1526947124,1526947136,1526947137,1526947138,1526947139,1526947140,1526947141,1526947142,1526947143,1526947144,1526947145,1526947146,1526947147,1526947148,1526947149,1526947150,1526947151,1526947152,1526947153,1526947154,1526947155,1526947156,1526947157,1526947158,1526947159,1526947160,1526947161,1526947162,1526947163,1526947164,1526947165,1526947166,1526947167,1526947168,1526947169,1366894942,1366894941,1366894940,1366894939,1526947351,1526947352,1526947353,1526947354,1526947355,1526947356,1526947357,1526947358,1526947359,1526947360,1526947361,1526947362,1526947363,1526947364,1526947365,1526947366,1526947367,1526947368,1526947369,1526947370,1526947371,1526947372,1526947373,1526947374,1526947375,1526947376,1526947377,1526947378,1526947379,1526947380,1526947392,1526947393,1526947394,1526947395,1526947396,1526947397,1526947398,1526947399,1526947400,1526947401,1526947402,1526947403,1526947404,1526947405,1526947406,1526947407,1526947408,1526947409,1526947410,1526947411,1526947412,1526947413,1526947414,1526947415,1526947416,1526947417,1526947418,1526947419,1526947420,1526947421,1526947422,1526947423,1526947424,1526947425,1366894689,1366894688,1366894687,1366894686,1526947607,1526947608,1526947609,1526947610,1526947611,1526947612,1526947613,1526947614,1526947615,1526947616,1526947617,1526947618,1526947619,1526947620,1526947621,1526947622,1526947623,1526947624,1526947625,1526947626,1526947627,1526947628,1526947629,1526947630,1526947631,1526947632,1526947633,1526947634,1526947635,1526947636,1526947648,1526947649,1526947650,1526947651,1526947652,1526947653,1526947654,1526947655,1526947656,1526947657,1526947658,1526947659,1526947660,1526947661,1526947662,1526947663,1526947664,1526947665,1526947666,1526947667,1526947668,1526947669,1526947670,1526947671,1526947672,1526947673,1526947674,1526947675,1526947676,1526947677,1526947678,1526947679,1526947680,1526947681,1366894685,1366894684,1366894683,1366894433,1526947863,1526947864,1526947865,1526947866,1526947867,1526947868,1526947869,1526947870,1526947871,1526947872,1526947873,1526947874,1526947875,1526947876,1526947877,1526947878,1526947879,1526947880,1526947881,1526947882,1526947883,1526947884,1526947885,1526947886,1526947887,1526947888,1526947889,1526947890,1526947891,1526947892,1526947904,1526947905,1526947906,1526947907,1526947908,1526947909,1526947910,1526947911,1526947912,1526947913,1526947914,1526947915,1526947916,1526947917,1526947918,1526947919,1526947920,1526947921,1526947922,1526947923,1526947924,1526947925,1526947926,1526947927,1526947928,1526947929,1526947930,1526947931,1526947932,1526947933,1526947934,1526947935,1526947936,1526947937,1366894432,1366894431,1366894430,1366894429,1526948119,1526948120,1526948121,1526948122,1526948123,1526948124,1526948125,1526948126,1526948127,1526948128,1526948129,1526948130,1526948131,1526948132,1526948133,1526948134,1526948135,1526948136,1526948137,1526948138,1526948139,1526948140,1526948141,1526948142,1526948143,1526948144,1526948145,1526948146,1526948147,1526948148,1526948160,1526948161,1526948162,1526948163,1526948164,1526948165,1526948166,1526948167,1526948168,1526948169,1526948170,1526948171,1526948172,1526948173,1526948174,1526948175,1526948176,1526948177,1526948178,1526948179,1526948180,1526948181,1526948182,1526948183,1526948184,1526948185,1526948186,1526948187,1526948188,1526948189,1526948190,1526948191,1526948192,1526948193,1526993455,1526993459,1526993464,1526993468,1526993473,1526993477,1366894428,1366894427,1366894177,1366894176,1526993687,1526993688,1526993689,1526993690,1526993691,1526993692,1526993693,1526993694,1526993695,1526993696,1526993697,1526993698,1526993699,1526993700,1526993701,1526993702,1526993703,1526993704,1526993705,1526993706,1526993707,1526993708,1526993709,1526993710,1526993711,1526993712,1526993713,1526993714,1526993715,1526993716,1526993717,1526993718,1526993719,1526993720,1526993721,1526993722,1526993723,1526993724,1526993725,1526993726,1526993727,1526993728,1526993729,1526993730,1526993731,1526993732,1526993733,1526993734,1526993735,1526993736,1526993737,1526993738,1526993739,1526993740,1526993741,1526993742,1526993743,1526993744,1526993745,1526993746,1526993747,1526993748,1526993749,1526993750,1526993751,1526993752,1526993753,1526993754,1526993755,1526993756,1526993757,1526993758,1526993759,1526993760,1526993761,1366894175,1366894174,1366894173,1366894172,1526993943,1526993944,1526993945,1526993946,1526993947,1526993948,1526993949,1526993950,1526993951,1526993952,1526993953,1526993954,1526993955,1526993956,1526993957,1526993958,1526993959,1526993960,1526993961,1526993962,1526993963,1526993964,1526993965,1526993966,1526993967,1526993968,1526993969,1526993970,1526993971,1526993972,1526993973,1526993974,1526993975,1526993976,1526993977,1526993978,1526993979,1526993980,1526993981,1526993982,1526993983,1526993984,1526993985,1526993986,1526993987,1526993988,1526993989,1526993990,1526993991,1526993992,1526993993,1526993994,1526993995,1526993996,1526993997,1526993998,1526993999,1526994000,1526994001,1526994002,1526994003,1526994004,1526994005,1526994006,1526994007,1526994008,1526994009,1526994010,1526994011,1526994012,1526994013,1526994014,1526994015,1526994016,1526994017,1366894171,1366893921,1366893920,1366893919,1526994199,1526994200,1526994201,1526994202,1526994203,1526994204,1526994205,1526994206,1526994207,1526994208,1526994209,1526994210,1526994211,1526994212,1526994213,1526994214,1526994215,1526994216,1526994217,1526994218,1526994219,1526994220,1526994221,1526994222,1526994223,1526994224,1526994225,1526994226,1526994227,1526994228,1526994229,1526994230,1526994231,1526994232,1526994233,1526994234,1526994235,1526994236,1526994237,1526994238,1526994239,1526994240,1526994241,1526994242,1526994243,1526994244,1526994245,1526994246,1526994247,1526994248,1526994249,1526994250,1526994251,1526994252,1526994253,1526994254,1526994255,1526994256,1526994257,1526994258,1526994259,1526994260,1526994261,1526994262,1526994263,1526994264,1526994265,1526994266,1526994267,1526994268,1526994269,1526994270,1526994271,1526994272,1526994273,1366893918,1366893917,1366893916,1366893915,1526994455,1526994456,1526994457,1526994458,1526994459,1526994460,1526994461,1526994462,1526994463,1526994464,1526994465,1526994466,1526994467,1526994468,1526994469,1526994470,1526994471,1526994472,1526994473,1526994474,1526994475,1526994476,1526994477,1526994478,1526994479,1526994480,1526994481,1526994482,1526994483,1526994484,1526994485,1526994486,1526994487,1526994488,1526994489,1526994490,1526994491,1526994492,1526994493,1526994494,1526994495,1526994496,1526994497,1526994498,1526994499,1526994500,1526994501,1526994502,1526994503,1526994504,1526994505,1526994506,1526994507,1526994508,1526994509,1526994510,1526994511,1526994512,1526994513,1526994514,1526994515,1526994516,1526994517,1526994518,1526994519,1526994520,1526994521,1526994522,1526994523,1526994524,1526994525,1526994526,1526994527,1526994528,1526994529,1366893665,1366893664,1366893663,1366893662,1526994711,1526994712,1526994713,1526994714,1526994715,1526994716,1526994717,1526994718,1526994719,1526994720,1526994721,1526994722,1526994723,1526994724,1526994725,1526994726,1526994727,1526994728,1526994729,1526994730,1526994731,1526994732,1526994733,1526994734,1526994735,1526994736,1526994737,1526994738,1526994739,1526994740,1526994741,1526994742,1526994743,1526994744,1526994745,1526994746,1526994747,1526994748,1526994749,1526994750,1526994751,1526994752,1526994753,1526994754,1526994755,1526994756,1526994757,1526994758,1526994759,1526994760,1526994761,1526994762,1526994763,1526994764,1526994765,1526994766,1526994767,1526994768,1526994769,1526994770,1526994771,1526994772,1526994773,1526994774,1526994775,1526994776,1526994777,1526994778,1526994779,1526994780,1526994781,1526994782,1526994783,1526994784,1526994785,1366893661,1366893660,1366893659,1366893409,1526994967,1526994968,1526994969,1526994970,1526994971,1526994972,1526994973,1526994974,1526994975,1526994976,1526994977,1526994978,1526994979,1526994980,1526994981,1526994982,1526994983,1526994984,1526994985,1526994986,1526994987,1526994988,1526994989,1526994990,1526994991,1526994992,1526994993,1526994994,1526994995,1526994996,1526994997,1526994998,1526994999,1526995000,1526995001,1526995002,1526995003,1526995004,1526995005,1526995006,1526995007,1526995008,1526995009,1526995010,1526995011,1526995012,1526995013,1526995014,1526995015,1526995016,1526995017,1526995018,1526995019,1526995020,1526995021,1526995022,1526995023,1526995024,1526995025,1526995026,1526995027,1526995028,1526995029,1526995030,1526995031,1526995032,1526995033,1526995034,1526995035,1526995036,1526995037,1526995038,1526995039,1526995040,1526995041,1366893408,1366893407,1366893406,1366893405,1526995223,1526995224,1526995225,1526995226,1526995227,1526995228,1526995229,1526995230,1526995231,1526995232,1526995233,1526995234,1526995235,1526995236,1526995237,1526995238,1526995239,1526995240,1526995241,1526995242,1526995243,1526995244,1526995245,1526995246,1526995247,1526995248,1526995249,1526995250,1526995251,1526995252,1526995253,1526995254,1526995255,1526995256,1526995257,1526995258,1526995259,1526995260,1526995261,1526995262,1526995263,1526995264,1526995265,1526995266,1526995267,1526995268,1526995269,1526995270,1526995271,1526995272,1526995273,1526995274,1526995275,1526995276,1526995277,1526995278,1526995279,1526995280,1526995281,1526995282,1526995283,1526995284,1526995285,1526995286,1526995287,1526995288,1526995289,1526995290,1526995291,1526995292,1526995293,1526995294,1526995295,1526995296,1526995297,1366893404,1366893403,1366893153,1366893152,1526995479,1526995480,1526995481,1526995482,1526995483,1526995484,1526995485,1526995486,1526995487,1526995488,1526995489,1526995490,1526995491,1526995492,1526995493,1526995494,1526995495,1526995496,1526995497,1526995498,1526995499,1526995500,1526995501,1526995502,1526995503,1526995504,1526995505,1526995506,1526995507,1526995508,1526995509,1526995510,1526995511,1526995512,1526995513,1526995514,1526995515,1526995516,1526995517,1526995518,1526995519,1526995520,1526995521,1526995522,1526995523,1526995524,1526995525,1526995526,1526995527,1526995528,1526995529,1526995530,1526995531,1526995532,1526995533,1526995534,1526995535,1526995536,1526995537,1526995538,1526995539,1526995540,1526995541,1526995542,1526995543,1526995544,1526995545,1526995546,1526995547,1526995548,1526995549,1526995550,1526995551,1526995552,1526995553,1366893151,1366893150,1366893149,1366893148,1526995735,1526995736,1526995737,1526995738,1526995739,1526995740,1526995741,1526995742,1526995743,1526995744,1526995745,1526995746,1526995747,1526995748,1526995749,1526995750,1526995751,1526995752,1526995753,1526995754,1526995755,1526995756,1526995757,1526995758,1526995759,1526995760,1526995761,1526995762,1526995763,1526995764,1526995765,1526995766,1526995767,1526995768,1526995769,1526995770,1526995771,1526995772,1526995773,1526995774,1526995775,1526995776,1526995777,1526995778,1526995779,1526995780,1526995781,1526995782,1526995783,1526995784,1526995785,1526995786,1526995787,1526995788,1526995789,1526995790,1526995791,1526995792,1526995793,1526995794,1526995795,1526995796,1526995797,1526995798,1526995799,1526995800,1526995801,1526995802,1526995803,1526995804,1526995805,1526995806,1526995807,1526995808,1526995809,1366893147,1366892897,1366892896,1366892895,1526995991,1526995992,1526995993,1526995994,1526995995,1526995996,1526995997,1526995998,1526995999,1526996000,1526996001,1526996002,1526996003,1526996004,1526996005,1526996006,1526996007,1526996008,1526996009,1526996010,1526996011,1526996012,1526996013,1526996014,1526996015,1526996016,1526996017,1526996018,1526996019,1526996020,1526996021,1526996022,1526996023,1526996024,1526996025,1526996026,1526996027,1526996028,1526996029,1526996030,1526996031,1526996032,1526996033,1526996034,1526996035,1526996036,1526996037,1526996038,1526996039,1526996040,1526996041,1526996042,1526996043,1526996044,1526996045,1526996046,1526996047,1526996048,1526996049,1526996050,1526996051,1526996052,1526996053,1526996054,1526996055,1526996056,1526996057,1526996058,1526996059,1526996060,1526996061,1526996062,1526996063,1526996064,1526996065,1366892894,1366892893,1366892892,1366892891,1526996247,1526996248,1526996249,1526996250,1526996251,1526996252,1526996253,1526996254,1526996255,1526996256,1526996257,1526996258,1526996259,1526996260,1526996261,1526996262,1526996263,1526996264,1526996265,1526996266,1526996267,1526996268,1526996269,1526996270,1526996271,1526996272,1526996273,1526996274,1526996275,1526996276,1526996277,1526996278,1526996279,1526996280,1526996281,1526996282,1526996283,1526996284,1526996285,1526996286,1526996287,1526996288,1526996289,1526996290,1526996291,1526996292,1526996293,1526996294,1526996295,1526996296,1526996297,1526996298,1526996299,1526996300,1526996301,1526996302,1526996303,1526996304,1526996305,1526996306,1526996307,1526996308,1526996309,1526996310,1526996311,1526996312,1526996313,1526996314,1526996315,1526996316,1526996317,1526996318,1526996319,1526996320,1526996321,1366892641,1366892640,1366892639,1366892638,1526996503,1526996504,1526996505,1526996506,1526996507,1526996508,1526996509,1526996510,1526996511,1526996512,1526996513,1526996514,1526996515,1526996516,1526996517,1526996518,1526996519,1526996520,1526996521,1526996522,1526996523,1526996524,1526996525,1526996526,1526996527,1526996528,1526996529,1526996530,1526996531,1526996532,1526996533,1526996534,1526996535,1526996536,1526996537,1526996538,1526996539,1526996540,1526996541,1526996542,1526996543,1526996544,1526996545,1526996546,1526996547,1526996548,1526996549,1526996550,1526996551,1526996552,1526996553,1526996554,1526996555,1526996556,1526996557,1526996558,1526996559,1526996560,1526996561,1526996562,1526996563,1526996564,1526996565,1526996566,1526996567,1526996568,1526996569,1526996570,1526996571,1526996572,1526996573,1526996574,1526996575,1526996576,1526996577,1366892637,1366892636,1366892635,1366892385,1526996759,1526996760,1526996761,1526996762,1526996763,1526996764,1526996765,1526996766,1526996767,1526996768,1526996769,1526996770,1526996771,1526996772,1526996773,1526996774,1526996775,1526996776,1526996777,1526996778,1526996779,1526996780,1526996781,1526996782,1526996783,1526996784,1526996785,1526996786,1526996787,1526996788,1526996789,1526996790,1526996791,1526996792,1526996793,1526996794,1526996795,1526996796,1526996797,1526996798,1526996799,1526996800,1526996801,1526996802,1526996803,1526996804,1526996805,1526996806,1526996807,1526996808,1526996809,1526996810,1526996811,1526996812,1526996813,1526996814,1526996815,1526996816,1526996817,1526996818,1526996819,1526996820,1526996821,1526996822,1526996823,1526996824,1526996825,1526996826,1526996827,1526996828,1526996829,1526996830,1526996831,1526996832,1526996833,1366892384,1366892383,1366892382,1366892381,1526997015,1526997016,1526997017,1526997018,1526997019,1526997020,1526997021,1526997022,1526997023,1526997024,1526997025,1526997026,1526997027,1526997028,1526997029,1526997030,1526997031,1526997032,1526997033,1526997034,1526997035,1526997036,1526997037,1526997038,1526997039,1526997040,1526997041,1526997042,1526997043,1526997044,1526997045,1526997046,1526997047,1526997048,1526997049,1526997050,1526997051,1526997052,1526997053,1526997054,1526997055,1526997056,1526997057,1526997058,1526997059,1526997060,1526997061,1526997062,1526997063,1526997064,1526997065,1526997066,1526997067,1526997068,1526997069,1526997070,1526997071,1526997072,1526997073,1526997074,1526997075,1526997076,1526997077,1526997078,1526997079,1526997080,1526997081,1526997082,1526997083,1526997084,1526997085,1526997086,1526997087,1526997088,1526997089,1366892380,1366892379,1366892129,1366892128,1526997271,1526997272,1526997273,1526997274,1526997275,1526997276,1526997277,1526997278,1526997279,1526997280,1526997281,1526997282,1526997283,1526997284,1526997285,1526997286,1526997287,1526997288,1526997289,1526997290,1526997291,1526997292,1526997293,1526997294,1526997295,1526997296,1526997297,1526997298,1526997299,1526997300,1526997301,1526997302,1526997303,1526997304,1526997305,1526997306,1526997307,1526997308,1526997309,1526997310,1526997311,1526997312,1526997313,1526997314,1526997315,1526997316,1526997317,1526997318,1526997319,1526997320,1526997321,1526997322,1526997323,1526997324,1526997325,1526997326,1526997327,1526997328,1526997329,1526997330,1526997331,1526997332,1526997333,1526997334,1526997335,1526997336,1526997337,1526997338,1526997339,1526997340,1526997341,1526997342,1526997343,1526997344,1526997345,1366892127,1366892126,1366892125,1366892124,1526997527,1526997528,1526997529,1526997530,1526997531,1526997532,1526997533,1526997534,1526997535,1526997536,1526997537,1526997538,1526997539,1526997540,1526997541,1526997542,1526997543,1526997544,1526997545,1526997546,1526997547,1526997548,1526997549,1526997550,1526997551,1526997552,1526997553,1526997554,1526997555,1526997556,1526997557,1526997558,1526997559,1526997560,1526997561,1526997562,1526997563,1526997564,1526997565,1526997566,1526997567,1526997568,1526997569,1526997570,1526997571,1526997572,1526997573,1526997574,1526997575,1526997576,1526997577,1526997578,1526997579,1526997580,1526997581,1526997582,1526997583,1526997584,1526997585,1526997586,1526997587,1526997588,1526997589,1526997590,1526997591,1526997592,1526997593,1526997594,1526997595,1526997596,1526997597,1526997598,1526997599,1526997600,1526997601,1366892123,1366891873,1366891872,1366891871,1526997783,1526997784,1526997785,1526997786,1526997787,1526997788,1526997789,1526997790,1526997791,1526997792,1526997793,1526997794,1526997795,1526997796,1526997797,1526997798,1526997799,1526997800,1526997801,1526997802,1526997803,1526997804,1526997805,1526997806,1526997807,1526997808,1526997809,1526997810,1526997811,1526997812,1526997813,1526997814,1526997815,1526997816,1526997817,1526997818,1526997819,1526997820,1526997821,1526997822,1526997823,1526997824,1526997825,1526997826,1526997827,1526997828,1526997829,1526997830,1526997831,1526997832,1526997833,1526997834,1526997835,1526997836,1526997837,1526997838,1526997839,1526997840,1526997841,1526997842,1526997843,1526997844,1526997845,1526997846,1526997847,1526997848,1526997849,1526997850,1526997851,1526997852,1526997853,1526997854,1526997855,1526997856,1526997857,1366891870,1366891869,1366891868,1366891867,1526998039,1526998040,1526998041,1526998042,1526998043,1526998044,1526998045,1526998046,1526998047,1526998048,1526998049,1526998050,1526998051,1526998052,1526998053,1526998054,1526998055,1526998056,1526998057,1526998058,1526998059,1526998060,1526998061,1526998062,1526998063,1526998064,1526998065,1526998066,1526998067,1526998068,1526998069,1526998070,1526998071,1526998072,1526998073,1526998074,1526998075,1526998076,1526998077,1526998078,1526998079,1526998080,1526998081,1526998082,1526998083,1526998084,1526998085,1526998086,1526998087,1526998088,1526998089,1526998090,1526998091,1526998092,1526998093,1526998094,1526998095,1526998096,1526998097,1526998098,1526998099,1526998100,1526998101,1526998102,1526998103,1526998104,1526998105,1526998106,1526998107,1526998108,1526998109,1526998110,1526998111,1526998112,1526998113,1366891617,1366891616,1366891615,1366891614,1526998295,1526998296,1526998297,1526998298,1526998299,1526998300,1526998301,1526998302,1526998303,1526998304,1526998305,1526998306,1526998307,1526998308,1526998309,1526998310,1526998311,1526998312,1526998313,1526998314,1526998315,1526998316,1526998317,1526998318,1526998319,1526998320,1526998321,1526998322,1526998323,1526998324,1526998325,1526998326,1526998327,1526998328,1526998329,1526998330,1526998331,1526998332,1526998333,1526998334,1526998335,1526998336,1526998337,1526998338,1526998339,1526998340,1526998341,1526998342,1526998343,1526998344,1526998345,1526998346,1526998347,1526998348,1526998349,1526998350,1526998351,1526998352,1526998353,1526998354,1526998355,1526998356,1526998357,1526998358,1526998359,1526998360,1526998361,1526998362,1526998363,1526998364,1526998365,1526998366,1526998367,1526998368,1526998369,1366891613,1366891612,1366891611,1366891361,1526998551,1526998552,1526998553,1526998554,1526998555,1526998556,1526998557,1526998558,1526998559,1526998560,1526998561,1526998562,1526998563,1526998564,1526998565,1526998566,1526998567,1526998568,1526998569,1526998570,1526998571,1526998572,1526998573,1526998574,1526998575,1526998576,1526998577,1526998578,1526998579,1526998580,1526998581,1526998582,1526998583,1526998584,1526998585,1526998586,1526998587,1526998588,1526998589,1526998590,1526998591,1526998592,1526998593,1526998594,1526998595,1526998596,1526998597,1526998598,1526998599,1526998600,1526998601,1526998602,1526998603,1526998604,1526998605,1526998606,1526998607,1526998608,1526998609,1526998610,1526998611,1526998612,1526998613,1526998614,1526998615,1526998616,1526998617,1526998618,1526998619,1526998620,1526998621,1526998622,1526998623,1526998624,1526998625,1366891360,1366891359,1366891358,1366891357,1526998807,1526998808,1526998809,1526998810,1526998811,1526998812,1526998813,1526998814,1526998815,1526998816,1526998817,1526998818,1526998819,1526998820,1526998821,1526998822,1526998823,1526998824,1526998825,1526998826,1526998827,1526998828,1526998829,1526998830,1526998831,1526998832,1526998833,1526998834,1526998835,1526998836,1526998837,1526998838,1526998839,1526998840,1526998841,1526998842,1526998843,1526998844,1526998845,1526998846,1526998847,1526998848,1526998849,1526998850,1526998851,1526998852,1526998853,1526998854,1526998855,1526998856,1526998857,1526998858,1526998859,1526998860,1526998861,1526998862,1526998863,1526998864,1526998865,1526998866,1526998867,1526998868,1526998869,1526998870,1526998871,1526998872,1526998873,1526998874,1526998875,1526998876,1526998877,1526998878,1526998879,1526998880,1526998881,1366891356,1366891355,1366891105,1366891104,1526999063,1526999064,1526999065,1526999066,1526999067,1526999068,1526999069,1526999070,1526999071,1526999072,1526999073,1526999074,1526999075,1526999076,1526999077,1526999078,1526999079,1526999080,1526999081,1526999082,1526999083,1526999084,1526999085,1526999086,1526999087,1526999088,1526999089,1526999090,1526999091,1526999092,1526999093,1526999094,1526999095,1526999096,1526999097,1526999098,1526999099,1526999100,1526999101,1526999102,1526999103,1526999104,1526999105,1526999106,1526999107,1526999108,1526999109,1526999110,1526999111,1526999112,1526999113,1526999114,1526999115,1526999116,1526999117,1526999118,1526999119,1526999120,1526999121,1526999122,1526999123,1526999124,1526999125,1526999126,1526999127,1526999128,1526999129,1526999130,1526999131,1526999132,1526999133,1526999134,1526999135,1526999136,1526999137,1366891103,1366891102,1366891101,1366891100,1526999319,1526999320,1526999321,1526999322,1526999323,1526999324,1526999325,1526999326,1526999327,1526999328,1526999329,1526999330,1526999331,1526999332,1526999333,1526999334,1526999335,1526999336,1526999337,1526999338,1526999339,1526999340,1526999341,1526999342,1526999343,1526999344,1526999345,1526999346,1526999347,1526999348,1526999349,1526999350,1526999351,1526999352,1526999353,1526999354,1526999355,1526999356,1526999357,1526999358,1526999359,1526999360,1526999361,1526999362,1526999363,1526999364,1526999365,1526999366,1526999367,1526999368,1526999369,1526999370,1526999371,1526999372,1526999373,1526999374,1526999375,1526999376,1526999377,1526999378,1526999379,1526999380,1526999381,1526999382,1526999383,1526999384,1526999385,1526999386,1526999387,1526999388,1526999389,1526999390,1526999391,1526999392,1526999393,1366891099,1366890849,1366890848,1366890847,1526999575,1526999576,1526999577,1526999578,1526999579,1526999580,1526999581,1526999582,1526999583,1526999584,1526999585,1526999586,1526999587,1526999588,1526999589,1526999590,1526999591,1526999592,1526999593,1526999594,1526999595,1526999596,1526999597,1526999598,1526999599,1526999600,1526999601,1526999602,1526999603,1526999604,1526999605,1526999606,1526999607,1526999608,1526999609,1526999610,1526999611,1526999612,1526999613,1526999614,1526999615,1526999616,1526999617,1526999618,1526999619,1526999620,1526999621,1526999622,1526999623,1526999624,1526999625,1526999626,1526999627,1526999628,1526999629,1526999630,1526999631,1526999632,1526999633,1526999634,1526999635,1526999636,1526999637,1526999638,1526999639,1526999640,1526999641,1526999642,1526999643,1526999644,1526999645,1526999646,1526999647,1526999648,1526999649,1366890846,1366890845,1366890844,1366890843,1526999831,1526999832,1526999833,1526999834,1526999835,1526999836,1526999837,1526999838,1526999839,1526999840,1526999841,1526999842,1526999843,1526999844,1526999845,1526999846,1526999847,1526999848,1526999849,1526999850,1526999851,1526999852,1526999853,1526999854,1526999855,1526999856,1526999857,1526999858,1526999859,1526999860,1526999861,1526999862,1526999863,1526999864,1526999865,1526999866,1526999867,1526999868,1526999869,1526999870,1526999871,1526999872,1526999873,1526999874,1526999875,1526999876,1526999877,1526999878,1526999879,1526999880,1526999881,1526999882,1526999883,1526999884,1526999885,1526999886,1526999887,1526999888,1526999889,1526999890,1526999891,1526999892,1526999893,1526999894,1526999895,1526999896,1526999897,1526999898,1526999899,1526999900,1526999901,1526999902,1526999903,1526999904,1526999905,1366890593,1366890592,1366890591,1366890590,1527000087,1527000088,1527000089,1527000090,1527000091,1527000092,1527000093,1527000094,1527000095,1527000096,1527000097,1527000098,1527000099,1527000100,1527000101,1527000102,1527000103,1527000104,1527000105,1527000106,1527000107,1527000108,1527000109,1527000110,1527000111,1527000112,1527000113,1527000114,1527000115,1527000116,1527000117,1527000118,1527000119,1527000120,1527000121,1527000122,1527000123,1527000124,1527000125,1527000126,1527000127,1527000128,1527000129,1527000130,1527000131,1527000132,1527000133,1527000134,1527000135,1527000136,1527000137,1527000138,1527000139,1527000140,1527000141,1527000142,1527000143,1527000144,1527000145,1527000146,1527000147,1527000148,1527000149,1527000150,1527000151,1527000152,1527000153,1527000154,1527000155,1527000156,1527000157,1527000158,1527000159,1527000160,1527000161,1366890589,1366890588,1366890587,1366890337,1527000343,1527000344,1527000345,1527000346,1527000347,1527000348,1527000349,1527000350,1527000351,1527000352,1527000353,1527000354,1527000355,1527000356,1527000357,1527000358,1527000359,1527000360,1527000361,1527000362,1527000363,1527000364,1527000365,1527000366,1527000367,1527000368,1527000369,1527000370,1527000371,1527000372,1527000373,1527000374,1527000375,1527000376,1527000377,1527000378,1527000379,1527000380,1527000381,1527000382,1527000383,1527000384,1527000385,1527000386,1527000387,1527000388,1527000389,1527000390,1527000391,1527000392,1527000393,1527000394,1527000395,1527000396,1527000397,1527000398,1527000399,1527000400,1527000401,1527000402,1527000403,1527000404,1527000405,1527000406,1527000407,1527000408,1527000409,1527000410,1527000411,1527000412,1527000413,1527000414,1527000415,1527000416,1527000417,1366890336,1366890335,1366890334,1366890333,1527000599,1527000600,1527000601,1527000602,1527000603,1527000604,1527000605,1527000606,1527000607,1527000608,1527000609,1527000610,1527000611,1527000612,1527000613,1527000614,1527000615,1527000616,1527000617,1527000618,1527000619,1527000620,1527000621,1527000622,1527000623,1527000624,1527000625,1527000626,1527000627,1527000628,1527000629,1527000630,1527000631,1527000632,1527000633,1527000634,1527000635,1527000636,1527000637,1527000638,1527000639,1527000640,1527000641,1527000642,1527000643,1527000644,1527000645,1527000646,1527000647,1527000648,1527000649,1527000650,1527000651,1527000652,1527000653,1527000654,1527000655,1527000656,1527000657,1527000658,1527000659,1527000660,1527000661,1527000662,1527000663,1527000664,1527000665,1527000666,1527000667,1527000668,1527000669,1527000670,1527000671,1527000672,1527000673,1366890332,1366890331,1366890081,1366890080,1366890079,1527000855,1527000856,1527000857,1527000858,1527000859,1527000860,1527000861,1527000862,1527000863,1527000864,1527000865,1527000866,1527000867,1527000868,1527000869,1527000870,1527000871,1527000872,1527000873,1527000874,1527000875,1527000876,1527000877,1527000878,1527000879,1527000880,1527000881,1527000882,1527000883,1527000884,1527000885,1527000886,1527000887,1527000888,1527000889,1527000890,1527000891,1527000892,1527000893,1527000894,1527000895,1527000896,1527000897,1527000898,1527000899,1527000900,1527000901,1527000902,1527000903,1527000904,1527000905,1527000906,1527000907,1527000908,1527000909,1527000910,1527000911,1527000912,1527000913,1527000914,1527000915,1527000916,1527000917,1527000918,1527000919,1527000920,1527000921,1527000922,1527000923,1527000924,1527000925,1527000926,1527000927,1527000928,1527000929,1366890078,1366890077,1366890076,1366890075,1527001111,1527001112,1527001113,1527001114,1527001115,1527001116,1527001117,1527001118,1527001119,1527001120,1527001121,1527001122,1527001123,1527001124,1527001125,1527001126,1527001127,1527001128,1527001129,1527001130,1527001131,1527001132,1527001133,1527001134,1527001135,1527001136,1527001137,1527001138,1527001139,1527001140,1527001141,1527001142,1527001143,1527001144,1527001145,1527001146,1527001147,1527001148,1527001149,1527001150,1527001151,1527001152,1527001153,1527001154,1527001155,1527001156,1527001157,1527001158,1527001159,1527001160,1527001161,1527001162,1527001163,1527001164,1527001165,1527001166,1527001167,1527001168,1527001169,1527001170,1527001171,1527001172,1527001173,1527001174,1527001175,1527001176,1527001177,1527001178,1527001179,1527001180,1527001181,1527001182,1527001183,1527001184,1527001185,1366889825,1366889824,1366889823,1366889822,1527001367,1527001368,1527001369,1527001370,1527001371,1527001372,1527001373,1527001374,1527001375,1527001376,1527001377,1527001378,1527001379,1527001380,1527001381,1527001382,1527001383,1527001384,1527001385,1527001386,1527001387,1527001388,1527001389,1527001390,1527001391,1527001392,1527001393,1527001394,1527001395,1527001396,1527001397,1527001398,1527001399,1527001400,1527001401,1527001402,1527001403,1527001404,1527001405,1527001406,1527001407,1527001408,1527001409,1527001410,1527001411,1527001412,1527001413,1527001414,1527001415,1527001416,1527001417,1527001418,1527001419,1527001420,1527001421,1527001422,1527001423,1527001424,1527001425,1527001426,1527001427,1527001428,1527001429,1527001430,1527001431,1527001432,1527001433,1527001434,1527001435,1527001436,1527001437,1527001438,1527001439,1527001440,1527001441,1366889821,1366889820,1366889819,1366889569,1527001623,1527001624,1527001625,1527001626,1527001627,1527001628,1527001629,1527001630,1527001631,1527001632,1527001633,1527001634,1527001635,1527001636,1527001637,1527001638,1527001639,1527001640,1527001641,1527001642,1527001643,1527001644,1527001645,1527001646,1527001647,1527001648,1527001649,1527001650,1527001651,1527001652,1527001653,1527001654,1527001655,1527001656,1527001657,1527001658,1527001659,1527001660,1527001661,1527001662,1527001663,1527001664,1527001665,1527001666,1527001667,1527001668,1527001669,1527001670,1527001671,1527001672,1527001673,1527001674,1527001675,1527001676,1527001677,1527001678,1527001679,1527001680,1527001681,1527001682,1527001683,1527001684,1527001685,1527001686,1527001687,1527001688,1527001689,1527001690,1527001691,1527001692,1527001693,1527001694,1527001695,1527001696,1527001697,1366889568,1366889567,1366889566,1366889565,1366889564,1527001879,1527001880,1527001881,1527001882,1527001883,1527001884,1527001885,1527001886,1527001887,1527001888,1527001889,1527001890,1527001891,1527001892,1527001893,1527001894,1527001895,1527001896,1527001897,1527001898,1527001899,1527001900,1527001901,1527001902,1527001903,1527001904,1527001905,1527001906,1527001907,1527001908,1527001909,1527001910,1527001911,1527001912,1527001913,1527001914,1527001915,1527001916,1527001917,1527001918,1527001919,1527001920,1527001921,1527001922,1527001923,1527001924,1527001925,1527001926,1527001927,1527001928,1527001929,1527001930,1527001931,1527001932,1527001933,1527001934,1527001935,1527001936,1527001937,1527001938,1527001939,1527001940,1527001941,1527001942,1527001943,1527001944,1527001945,1527001946,1527001947,1527001948,1527001949,1527001950,1527001951,1527001952,1527001953,1366889563,1366889313,1366889312,1366889311,1527002135,1527002136,1527002137,1527002138,1527002139,1527002140,1527002141,1527002142,1527002143,1527002144,1527002145,1527002146,1527002147,1527002148,1527002149,1527002150,1527002151,1527002152,1527002153,1527002154,1527002155,1527002156,1527002157,1527002158,1527002159,1527002160,1527002161,1527002162,1527002163,1527002164,1527002165,1527002166,1527002167,1527002168,1527002169,1527002170,1527002171,1527002172,1527002173,1527002174,1527002175,1527002176,1527002177,1527002178,1527002179,1527002180,1527002181,1527002182,1527002183,1527002184,1527002185,1527002186,1527002187,1527002188,1527002189,1527002190,1527002191,1527002192,1527002193,1527002194,1527002195,1527002196,1527002197,1527002198,1527002199,1527002200,1527002201,1527002202,1527002203,1527002204,1527002205,1527002206,1527002207,1527002208,1527002209,1366889310,1366889309,1366889308,1366889307,1527002391,1527002392,1527002393,1527002394,1527002395,1527002396,1527002397,1527002398,1527002399,1527002400,1527002401,1527002402,1527002403,1527002404,1527002405,1527002406,1527002407,1527002408,1527002409,1527002410,1527002411,1527002412,1527002413,1527002414,1527002415,1527002416,1527002417,1527002418,1527002419,1527002420,1527002421,1527002422,1527002423,1527002424,1527002425,1527002426,1527002427,1527002428,1527002429,1527002430,1527002431,1527002432,1527002433,1527002434,1527002435,1527002436,1527002437,1527002438,1527002439,1527002440,1527002441,1527002442,1527002443,1527002444,1527002445,1527002446,1527002447,1527002448,1527002458,1527002459,1527002460,1527002461,1527002462,1527002463,1527002464,1527002465,1534615905,1534615904,1534615903,1534615902,1527002647,1527002648,1527002649,1527002650,1527002651,1527002652,1527002653,1527002654,1527002655,1527002656,1527002657,1527002658,1527002659,1527002660,1527002661,1527002662,1527002663,1527002664,1527002665,1527002666,1527002667,1527002668,1527002669,1527002670,1527002671,1527002672,1527002673,1527002674,1527002675,1527002676,1527002677,1527002678,1527002679,1527002680,1527002681,1527002682,1527002683,1527002684,1527002685,1527002686,1527002687,1527002688,1527002689,1527002690,1527002691,1527002692,1527002693,1527002694,1527002695,1527002696,1527002697,1527002698,1527002699,1527002700,1527002701,1527002702,1527002703,1527002715,1527002716,1527002717,1527002718,1527002719,1527002720,1527002721,1534615901,1534615900,1534615899,1534615898,1527002903,1527002904,1527002905,1527002906,1527002907,1527002908,1527002909,1527002910,1527002911,1527002912,1527002913,1527002914,1527002915,1527002916,1527002917,1527002918,1527002919,1527002920,1527002921,1527002922,1527002923,1527002924,1527002925,1527002926,1527002927,1527002928,1527002929,1527002930,1527002931,1527002932,1527002933,1527002934,1527002935,1527002936,1527002937,1527002938,1527002939,1527002940,1527002941,1527002942,1527002943,1527002944,1527002945,1527002946,1527002947,1527002948,1527002949,1527002950,1527002951,1527002952,1527002953,1527002954,1527002955,1527002956,1527002957,1527002958,1527002959,1527002971,1527002972,1527002973,1527002974,1527002975,1527002976,1527002977,1366843737,1366843736,1366843735,1366843734,1366843733,1527003159,1527003160,1527003161,1527003162,1527003163,1527003164,1527003165,1527003166,1527003167,1527003168,1527003169,1527003170,1527003171,1527003172,1527003173,1527003174,1527003175,1527003176,1527003177,1527003178,1527003179,1527003180,1527003181,1527003182,1527003183,1527003184,1527003185,1527003186,1527003187,1527003188,1527003189,1527003190,1527003191,1527003192,1527003193,1527003194,1527003195,1527003196,1527003197,1527003198,1527003199,1527003200,1527003201,1527003202,1527003203,1527003204,1527003205,1527003206,1527003207,1527003208,1527003209,1527003210,1527003211,1527003212,1527003213,1527003214,1527003215,1527003227,1527003228,1527003229,1527003230,1527003231,1527003232,1527003233,1366843732,1366843731,1366843730,1366843729,1527003415,1527003416,1527003417,1527003418,1527003419,1527003420,1527003421,1527003422,1527003423,1527003424,1527003425,1527003426,1527003427,1527003428,1527003429,1527003430,1527003431,1527003432,1527003433,1527003434,1527003435,1527003436,1527003437,1527003438,1527003439,1527003440,1527003441,1527003442,1527003443,1527003444,1527003445,1527003446,1527003447,1527003448,1527003449,1527003450,1527003451,1527003452,1527003453,1527003454,1527003455,1527003456,1527003457,1527003458,1527003459,1527003460,1527003461,1527003462,1527003463,1527003464,1527003465,1527003466,1527003467,1527003468,1527003469,1527003470,1527003471,1527003483,1527003484,1527003485,1527003486,1527003487,1527003488,1527003489,1366843728,1366843727,1366843726,1366843725,1527003671,1527003672,1527003673,1527003674,1527003675,1527003676,1527003677,1527003678,1527003679,1527003680,1527003681,1527003682,1527003683,1527003684,1527003685,1527003686,1527003687,1527003688,1527003689,1527003690,1527003691,1527003692,1527003693,1527003694,1527003695,1527003696,1527003697,1527003698,1527003699,1527003700,1527003701,1527003702,1527003703,1527003704,1527003705,1527003706,1527003707,1527003708,1527003709,1527003710,1527003711,1527003712,1527003713,1527003714,1527003715,1527003716,1527003717,1527003718,1527003719,1527003720,1527003721,1527003722,1527003723,1527003724,1527003725,1527003726,1527003727,1527003739,1527003740,1527003741,1527003742,1527003743,1527003744,1527003745,1366843724,1366843723,1366843722,1366843721,1527003927,1527003928,1527003929,1527003930,1527003931,1527003932,1527003933,1527003934,1527003935,1527003936,1527003937,1527003938,1527003939,1527003940,1527003941,1527003942,1527003943,1527003944,1527003945,1527003946,1527003947,1527003948,1527003949,1527003950,1527003951,1527003952,1527003953,1527003954,1527003955,1527003956,1527003957,1527003958,1527003959,1527003960,1527003961,1527003962,1527003963,1527003964,1527003965,1527003966,1527003967,1527003968,1527003969,1527003970,1527003971,1527003972,1527003973,1527003974,1527003975,1527003976,1527003977,1527003978,1527003979,1527003980,1527003981,1527003982,1527003983,1527003995,1527003996,1527003997,1527003998,1527003999,1527004000,1527004001,1366843720,1366843719,1366843718,1366843717,1366843716,1527004183,1527004184,1527004185,1527004186,1527004187,1527004188,1527004189,1527004190,1527004191,1527004192,1527004193,1527004194,1527004195,1527004196,1527004197,1527004198,1527004199,1527004200,1527004201,1527004202,1527004203,1527004204,1527004205,1527004206,1527004207,1527004208,1527004209,1527004210,1527004211,1527004212,1527004213,1527004214,1527004215,1527004216,1527004217,1527004218,1527004219,1527004220,1527004221,1527004222,1527004223,1527004224,1527004225,1527004226,1527004227,1527004228,1527004229,1527004230,1527004231,1527004232,1527004233,1527004234,1527004235,1527004236,1527004237,1527004238,1527004239,1527004251,1527004252,1527004253,1527004254,1527004255,1527004256,1527004257,1366843715,1366843714,1366843713,1366843712,1527004439,1527004440,1527004441,1527004442,1527004443,1527004444,1527004445,1527004446,1527004447,1527004448,1527004449,1527004450,1527004451,1527004452,1527004453,1527004454,1527004455,1527004456,1527004457,1527004458,1527004459,1527004460,1527004461,1527004462,1527004463,1527004464,1527004465,1527004466,1527004467,1527004468,1527004469,1527004470,1527004471,1527004472,1527004473,1527004474,1527004475,1527004476,1527004477,1527004478,1527004479,1527004480,1527004481,1527004482,1527004483,1527004484,1527004485,1527004486,1527004487,1527004488,1527004489,1527004490,1527004491,1527004492,1527004493,1527004494,1527004495,1527004507,1527004508,1527004509,1527004510,1527004511,1527004512,1527004513,1366843711,1366843710,1366843709,1366843708,1527004695,1527004696,1527004697,1527004698,1527004699,1527004700,1527004701,1527004702,1527004703,1527004704,1527004705,1527004706,1527004707,1527004708,1527004709,1527004710,1527004711,1527004712,1527004713,1527004714,1527004715,1527004716,1527004717,1527004718,1527004719,1527004720,1527004721,1527004722,1527004723,1527004724,1527004725,1527004726,1527004727,1527004728,1527004729,1527004730,1527004731,1527004732,1527004733,1527004734,1527004735,1527004736,1527004737,1527004738,1527004739,1527004740,1527004741,1527004742,1527004743,1527004744,1527004745,1527004746,1527004747,1527004748,1527004749,1527004750,1527004751,1527004763,1527004764,1527004765,1527004766,1527004767,1527004768,1527004769,1366843707,1366843706,1366843705,1366843704,1527004951,1527004952,1527004953,1527004954,1527004955,1527004956,1527004957,1527004958,1527004959,1527004960,1527004961,1527004962,1527004963,1527004964,1527004965,1527004966,1527004967,1527004968,1527004969,1527004970,1527004971,1527004972,1527004973,1527004974,1527004975,1527004976,1527004977,1527004978,1527004979,1527004980,1527004981,1527004982,1527004983,1527004984,1527004985,1527004986,1527004987,1527004988,1527004989,1527004990,1527004991,1527004992,1527004993,1527004994,1527004995,1527004996,1527004997,1527004998,1527004999,1527005000,1527005001,1527005002,1527005003,1527005004,1527005005,1527005006,1527005007,1527005008,1527005018,1527005019,1527005020,1527005021,1527005022,1527005023,1527005024,1527005025,1366843703,1366843702,1366843701,1366843700,1527005207,1527005208,1527005209,1527005210,1527005211,1527005212,1527005213,1527005214,1527005215,1527005216,1527005217,1527005218,1527005219,1527005220,1527005221,1527005222,1527005223,1527005224,1527005225,1527005226,1527005227,1527005228,1527005229,1527005230,1527005231,1527005232,1527005233,1527005234,1527005235,1527005236,1527005237,1527005238,1527005239,1527005240,1527005241,1527005242,1527005243,1527005244,1527005245,1527005246,1527005247,1527005248,1527005249,1527005250,1527005251,1527005252,1527005253,1527005254,1527005255,1527005256,1527005257,1527005258,1527005259,1527005260,1527005261,1527005262,1527005263,1527005264,1527005265,1527005266,1527005267,1527005268,1527005269,1527005270,1527005271,1527005272,1527005273,1527005274,1527005275,1527005276,1527005277,1527005278,1527005279,1527005280,1527005281,1366843699,1366843698,1366843697,1366843696,1366843695,1527005463,1527005464,1527005465,1527005466,1527005467,1527005468,1527005469,1527005470,1527005471,1527005472,1527005473,1527005474,1527005475,1527005476,1527005477,1527005478,1527005479,1527005480,1527005481,1527005482,1527005483,1527005484,1527005485,1527005486,1527005487,1527005488,1527005489,1527005490,1527005491,1527005492,1527005493,1527005494,1527005495,1527005496,1527005497,1527005498,1527005499,1527005500,1527005501,1527005502,1527005503,1527005504,1527005505,1527005506,1527005507,1527005508,1527005509,1527005510,1527005511,1527005512,1527005513,1527005514,1527005515,1527005516,1527005517,1527005518,1527005519,1527005520,1527005521,1527005522,1527005523,1527005524,1527005525,1527005526,1527005527,1527005528,1527005529,1527005530,1527005531,1527005532,1527005533,1527005534,1527005535,1527005536,1527005537,1366843694,1366843693,1366843692,1366843691,1527005719,1527005720,1527005721,1527005722,1527005723,1527005724,1527005725,1527005726,1527005727,1527005728,1527005729,1527005730,1527005731,1527005732,1527005733,1527005734,1527005735,1527005736,1527005737,1527005738,1527005739,1527005740,1527005741,1527005742,1527005743,1527005744,1527005745,1527005746,1527005747,1527005748,1527005749,1527005750,1527005751,1527005752,1527005753,1527005754,1527005755,1527005756,1527005757,1527005758,1527005759,1527005760,1527005761,1527005762,1527005763,1527005764,1527005765,1527005766,1527005767,1527005768,1527005769,1527005770,1527005771,1527005772,1527005773,1527005774,1527005775,1527005776,1527005777,1527005778,1527005779,1527005780,1527005781,1527005782,1527005783,1527005784,1527005785,1527005786,1527005787,1527005788,1527005789,1527005790,1527005791,1527005792,1527005793,1366843690,1366843689,1366843688,1366843687,1527005975,1527005976,1527005977,1527005978,1527005979,1527005980,1527005981,1527005982,1527005983,1527005984,1527005985,1527005986,1527005987,1527005988,1527005989,1527005990,1527005991,1527005992,1527005993,1527005994,1527005995,1527005996,1527005997,1527005998,1527005999,1527006000,1527006001,1527006002,1527006003,1527006004,1527006005,1527006006,1527006007,1527006008,1527006009,1527006010,1527006011,1527006012,1527006013,1527006014,1527006015,1527006016,1527006017,1527006018,1527006019,1527006020,1527006021,1527006022,1527006023,1527006024,1527006025,1527006026,1527006027,1527006028,1527006029,1527006030,1527006031,1527006032,1527006033,1527006034,1527006035,1527006036,1527006037,1527006038,1527006039,1527006040,1527006041,1527006042,1527006043,1527006044,1527006045,1527006046,1527006047,1527006048,1527006049,1366843686,1366843685,1366843684,1366843683,1527006231,1527006232,1527006233,1527006234,1527006235,1527006236,1527006237,1527006238,1527006239,1527006240,1527006241,1527006242,1527006243,1527006244,1527006245,1527006246,1527006247,1527006248,1527006249,1527006250,1527006251,1527006252,1527006253,1527006254,1527006255,1527006256,1527006257,1527006258,1527006259,1527006260,1527006261,1527006262,1527006263,1527006264,1527006265,1527006266,1527006267,1527006268,1527006269,1527006270,1527006271,1527006272,1527006273,1527006274,1527006275,1527006276,1527006277,1527006278,1527006279,1527006280,1527006281,1527006282,1527006283,1527006284,1527006285,1527006286,1527006287,1527006288,1527006289,1527006290,1527006291,1527006292,1527006293,1527006294,1527006295,1527006296,1527006297,1527006298,1527006299,1527006300,1527006301,1527006302,1527006303,1527006304,1527006305,1366843682,1366843681,1366843680,1366843679,1366843678,1527006487,1527006488,1527006489,1527006490,1527006491,1527006492,1527006493,1527006494,1527006495,1527006496,1527006497,1527006498,1527006499,1527006500,1527006501,1527006502,1527006503,1527006504,1527006505,1527006506,1527006507,1527006508,1527006509,1527006510,1527006511,1527006512,1527006513,1527006514,1527006515,1527006516,1527006517,1527006518,1527006519,1527006520,1527006521,1527006522,1527006523,1527006524,1527006525,1527006526,1527006527,1527006528,1527006529,1527006530,1527006531,1527006532,1527006533,1527006534,1527006535,1527006536,1527006537,1527006538,1527006539,1527006540,1527006541,1527006542,1527006543,1527006544,1527006545,1527006546,1527006547,1527006548,1527006549,1527006550,1527006551,1527006552,1527006553,1527006554,1527006555,1527006556,1527006557,1527006558,1527006559,1527006560,1527006561,1366843677,1366843676,1366843675,1366843674,1527006743,1527006744,1527006745,1527006746,1527006747,1527006748,1527006749,1527006750,1527006751,1527006752,1527006753,1527006754,1527006755,1527006756,1527006757,1527006758,1527006759,1527006760,1527006761,1527006762,1527006763,1527006764,1527006765,1527006766,1527006767,1527006768,1527006769,1527006770,1527006771,1527006772,1527006773,1527006774,1527006775,1527006776,1527006777,1527006778,1527006779,1527006780,1527006781,1527006782,1527006783,1527006784,1527006785,1527006786,1527006787,1527006788,1527006789,1527006790,1527006791,1527006792,1527006793,1527006794,1527006795,1527006796,1527006797,1527006798,1527006799,1527006800,1527006801,1527006802,1527006803,1527006804,1527006805,1527006806,1527006807,1527006808,1527006809,1527006810,1527006811,1527006812,1527006813,1527006814,1527006815,1527006816,1527006817,1366843673,1366843672,1366843671,1366843670,1527006999,1527007000,1527007001,1527007002,1527007003,1527007004,1527007005,1527007006,1527007007,1527007008,1527007009,1527007010,1527007011,1527007012,1527007013,1527007014,1527007015,1527007016,1527007017,1527007018,1527007019,1527007020,1527007021,1527007022,1527007023,1527007024,1527007025,1527007026,1527007027,1527007028,1527007029,1527007030,1527007031,1527007032,1527007033,1527007034,1527007035,1527007036,1527007037,1527007038,1527007039,1527007040,1527007041,1527007042,1527007043,1527007044,1527007045,1527007046,1527007047,1527007048,1527007049,1527007050,1527007051,1527007052,1527007053,1527007054,1527007055,1527007056,1527007057,1527007058,1527007059,1527007060,1527007061,1527007062,1527007063,1527007064,1527007065,1527007066,1527007067,1527007068,1527007069,1527007070,1527007071,1527007072,1527007073,1366843669,1366843668,1366843667,1534615649,1527007255,1527007256,1527007257,1527007258,1527007259,1527007260,1527007261,1527007262,1527007263,1527007264,1527007265,1527007266,1527007267,1527007268,1527007269,1527007270,1527007271,1527007272,1527007273,1527007274,1527007275,1527007276,1527007277,1527007278,1527007279,1527007280,1527007281,1527007282,1527007283,1527007284,1527007285,1527007286,1527007287,1527007288,1527007289,1527007290,1527007291,1527007292,1527007293,1527007294,1527007295,1527007296,1527007297,1527007298,1527007299,1527007300,1527007301,1527007302,1527007303,1527007304,1527007305,1527007306,1527007307,1527007308,1527007309,1527007310,1527007311,1527007312,1527007313,1527007314,1527007315,1527007316,1527007317,1527007318,1527007319,1527007320,1527007321,1527007322,1527007323,1527007324,1527007325,1527007326,1527007327,1527007328,1527007329,1534615648,1534615647,1534615646,1534615645,1527007511,1527007512,1527007513,1527007514,1527007515,1527007516,1527007517,1527007518,1527007519,1527007520,1527007521,1527007522,1527007523,1527007524,1527007525,1527007526,1527007527,1527007528,1527007529,1527007530,1527007531,1527007532,1527007533,1527007534,1527007535,1527007536,1527007537,1527007538,1527007539,1527007540,1527007541,1527007542,1527007543,1527007544,1527007545,1527007546,1527007547,1527007548,1527007549,1527007550,1527007551,1527007552,1527007553,1527007554,1527007555,1527007556,1527007557,1527007558,1527007559,1527007560,1527007561,1527007562,1527007563,1527007564,1527007565,1527007566,1527007567,1527007568,1527007569,1527007570,1527007571,1527007572,1527007573,1527007574,1527007575,1527007576,1527007577,1527007578,1527007579,1527007580,1527007581,1527007582,1527007583,1527007584,1527007585,1534615644,1534615643,1534615642,1366843481,1527007767,1527007768,1527007769,1527007770,1527007771,1527007772,1527007773,1527007774,1527007775,1527007776,1527007777,1527007778,1527007779,1527007780,1527007781,1527007782,1527007783,1527007784,1527007785,1527007786,1527007787,1527007788,1527007789,1527007790,1527007791,1527007792,1527007793,1527007794,1527007795,1527007796,1527007797,1527007798,1527007799,1527007800,1527007801,1527007802,1527007803,1527007804,1527007805,1527007806,1527007807,1527007808,1527007809,1527007810,1527007811,1527007812,1527007813,1527007814,1527007815,1527007816,1527007817,1527007818,1527007819,1527007820,1527007821,1527007822,1527007823,1527007824,1527007825,1527007826,1527007827,1527007828,1527007829,1527007830,1527007831,1527007832,1527007833,1527007834,1527007835,1527007836,1527007837,1527007838,1527007839,1527007840,1527007841,1366843480,1366843479,1366843478,1366843477,1527008023,1527008024,1527008025,1527008026,1527008027,1527008028,1527008029,1527008030,1527008031,1527008032,1527008033,1527008034,1527008035,1527008036,1527008037,1527008038,1527008039,1527008040,1527008041,1527008042,1527008043,1527008044,1527008045,1527008046,1527008047,1527008048,1527008049,1527008050,1527008051,1527008052,1527008053,1527008054,1527008055,1527008056,1527008057,1527008058,1527008059,1527008060,1527008061,1527008062,1527008063,1527008064,1527008065,1527008066,1527008067,1527008068,1527008069,1527008070,1527008071,1527008072,1527008073,1527008074,1527008075,1527008076,1527008077,1527008078,1527008079,1527008080,1527008081,1527008082,1527008083,1527008084,1527008085,1527008086,1527008087,1527008088,1527008089,1527008090,1527008091,1527008092,1527008093,1527008094,1527008095,1527008096,1527008097,1366843476,1366843475,1366843474,1366843473,1527008279,1527008280,1527008281,1527008282,1527008283,1527008284,1527008285,1527008286,1527008287,1527008288,1527008289,1527008290,1527008291,1527008292,1527008293,1527008294,1527008295,1527008296,1527008297,1527008298,1527008299,1527008300,1527008301,1527008302,1527008303,1527008304,1527008305,1527008306,1527008307,1527008308,1527008309,1527008310,1527008311,1527008312,1527008313,1527008314,1527008315,1527008316,1527008317,1527008318,1527008319,1527008320,1527008321,1527008322,1527008323,1527008324,1527008325,1527008326,1527008327,1527008328,1527008329,1527008330,1527008331,1527008332,1527008333,1527008334,1527008335,1527008336,1527008337,1527008338,1527008339,1527008340,1527008341,1527008342,1527008343,1527008344,1527008345,1527008346,1527008347,1527008348,1527008349,1527008350,1527008351,1527008352,1527008353,1366843472,1366843471,1366843470,1366843469,1527008535,1527008536,1527008537,1527008538,1527008539,1527008540,1527008541,1527008542,1527008543,1527008544,1527008545,1527008546,1527008547,1527008548,1527008549,1527008550,1527008551,1527008552,1527008553,1527008554,1527008555,1527008556,1527008557,1527008558,1527008559,1527008560,1527008561,1527008562,1527008563,1527008564,1527008565,1527008566,1527008567,1527008568,1527008569,1527008570,1527008571,1527008572,1527008573,1527008574,1527008575,1527008576,1527008577,1527008578,1527008579,1527008580,1527008581,1527008582,1527008583,1527008584,1527008585,1527008586,1527008587,1527008588,1527008589,1527008590,1527008591,1527008592,1527008593,1527008594,1527008595,1527008596,1527008597,1527008598,1527008599,1527008600,1527008601,1527008602,1527008603,1527008604,1527008605,1527008606,1527008607,1527008608,1527008609,1366843468,1366843467,1366843466,1366843465,1527008791,1527008792,1527008793,1527008794,1527008795,1527008796,1527008797,1527008798,1527008799,1527008800,1527008801,1527008802,1527008803,1527008804,1527008805,1527008806,1527008807,1527008808,1527008809,1527008810,1527008811,1527008812,1527008813,1527008814,1527008815,1527008816,1527008817,1527008818,1527008819,1527008820,1527008821,1527008822,1527008823,1527008824,1527008825,1527008826,1527008827,1527008828,1527008829,1527008830,1527008831,1527008832,1527008833,1527008834,1527008835,1527008836,1527008837,1527008838,1527008839,1527008840,1527008841,1527008842,1527008843,1527008844,1527008845,1527008846,1527008847,1527008848,1527008849,1527008850,1527008851,1527008852,1527008853,1527008854,1527008855,1527008856,1527008857,1527008858,1527008859,1527008860,1527008861,1527008862,1527008863,1527008864,1527008865,1366843464,1366843463,1366843462,1366843461,1527009047,1527009048,1527009049,1527009050,1527009051,1527009052,1527009053,1527009054,1527009055,1527009056,1527009057,1527009058,1527009059,1527009060,1527009061,1527009062,1527009063,1527009064,1527009065,1527009066,1527009067,1527009068,1527009069,1527009070,1527009071,1527009072,1527009073,1527009074,1527009075,1527009076,1527009077,1527009078,1527009079,1527009080,1527009081,1527009082,1527009083,1527009084,1527009085,1527009086,1527009087,1527009088,1527009089,1527009090,1527009091,1527009092,1527009093,1527009094,1527009095,1527009096,1527009097,1527009098,1527009099,1527009100,1527009101,1527009102,1527009103,1527009104,1527009105,1527009106,1527009107,1527009108,1527009109,1527009110,1527009111,1527009112,1527009113,1527009114,1527009115,1527009116,1527009117,1527009118,1527009119,1527009120,1527009121,1366843460,1366843459,1366843458,1366843457,1527009303,1527009304,1527009305,1527009306,1527009307,1527009308,1527009309,1527009310,1527009311,1527009312,1527009313,1527009314,1527009315,1527009316,1527009317,1527009318,1527009319,1527009320,1527009321,1527009322,1527009323,1527009324,1527009325,1527009326,1527009327,1527009328,1527009329,1527009330,1527009331,1527009332,1527009333,1527009334,1527009335,1527009336,1527009337,1527009338,1527009339,1527009340,1527009341,1527009342,1527009343,1527009344,1527009345,1527009346,1527009347,1527009348,1527009349,1527009350,1527009351,1527009352,1527009353,1527009354,1527009355,1527009356,1527009357,1527009358,1527009359,1527009360,1527009361,1527009362,1527009363,1527009364,1527009365,1527009366,1527009367,1527009368,1527009369,1527009370,1527009371,1527009372,1527009373,1527009374,1527009375,1527009376,1527009377,1366843456,1366843455,1366843454,1366843453,1527009559,1527009560,1527009561,1527009562,1527009563,1527009564,1527009565,1527009566,1527009567,1527009568,1527009569,1527009570,1527009571,1527009572,1527009573,1527009574,1527009575,1527009576,1527009577,1527009578,1527009579,1527009580,1527009581,1527009582,1527009583,1527009584,1527009585,1527009586,1527009587,1527009588,1527009589,1527009590,1527009591,1527009592,1527009593,1527009594,1527009595,1527009596,1527009597,1527009598,1527009599,1527009600,1527009601,1527009602,1527009603,1527009604,1527009605,1527009606,1527009607,1527009608,1527009609,1527009610,1527009611,1527009612,1527009613,1527009614,1527009615,1527009616,1527009617,1527009618,1527009619,1527009620,1527009621,1527009622,1527009623,1527009624,1527009625,1527009626,1527009627,1527009628,1527009629,1527009630,1527009631,1527009632,1527009633,1366843452,1366843451,1366843450,1366843449,1527009815,1527009816,1527009817,1527009818,1527009819,1527009820,1527009821,1527009822,1527009823,1527009824,1527009825,1527009826,1527009827,1527009828,1527009829,1527009830,1527009831,1527009832,1527009833,1527009834,1527009835,1527009836,1527009837,1527009838,1527009839,1527009840,1527009841,1527009842,1527009843,1527009844,1527009845,1527009846,1527009847,1527009848,1527009849,1527009850,1527009851,1527009852,1527009853,1527009854,1527009855,1527009856,1527009857,1527009858,1527009859,1527009860,1527009861,1527009862,1527009863,1527009864,1527009865,1527009866,1527009867,1527009868,1527009869,1527009870,1527009871,1527009872,1527009873,1527009874,1527009875,1527009876,1527009877,1527009878,1527009879,1527009880,1527009881,1527009882,1527009883,1527009884,1527009885,1527009886,1527009887,1527009888,1527009889,1366843448,1366843447,1366843446,1366843445,1527010071,1527010072,1527010073,1527010074,1527010075,1527010076,1527010077,1527010078,1527010079,1527010080,1527010081,1527010082,1527010083,1527010084,1527010085,1527010086,1527010087,1527010088,1527010089,1527010090,1527010091,1527010092,1527010093,1527010094,1527010095,1527010096,1527010097,1527010098,1527010099,1527010100,1527010101,1527010102,1527010103,1527010104,1527010105,1527010106,1527010107,1527010108,1527010109,1527010110,1527010111,1527010112,1527010113,1527010114,1527010115,1527010116,1527010117,1527010118,1527010119,1527010120,1527010121,1527010122,1527010123,1527010124,1527010125,1527010126,1527010127,1527010128,1527010129,1527010130,1527010131,1527010132,1527010133,1527010134,1527010135,1527010136,1527010137,1527010138,1527010139,1527010140,1527010141,1527010142,1527010143,1527010144,1527010145,1366843444,1366843443,1366843442,1366843441,1527010327,1527010328,1527010329,1527010330,1527010331,1527010332,1527010333,1527010334,1527010335,1527010336,1527010337,1527010338,1527010339,1527010340,1527010341,1527010342,1527010343,1527010344,1527010345,1527010346,1527010347,1527010348,1527010349,1527010350,1527010351,1527010352,1527010353,1527010354,1527010355,1527010356,1527010357,1527010358,1527010359,1527010360,1527010361,1527010362,1527010363,1527010364,1527010365,1527010366,1527010367,1527010368,1527010369,1527010370,1527010371,1527010372,1527010373,1527010374,1527010375,1527010376,1527010377,1527010378,1527010379,1527010380,1527010381,1527010382,1527010383,1527010384,1527010385,1527010386,1527010387,1527010388,1527010389,1527010390,1527010391,1527010392,1527010393,1527010394,1527010395,1527010396,1527010397,1527010398,1527010399,1527010400,1527010401,1366843440,1366843439,1366843438,1366843437,1527010583,1527010584,1527010585,1527010586,1527010587,1527010588,1527010589,1527010590,1527010591,1527010592,1527010593,1527010594,1527010595,1527010596,1527010597,1527010598,1527010599,1527010600,1527010601,1527010602,1527010603,1527010604,1527010605,1527010606,1527010607,1527010608,1527010609,1527010610,1527010611,1527010612,1527010613,1527010614,1527010615,1527010616,1527010617,1527010618,1527010619,1527010620,1527010621,1527010622,1527010623,1527010624,1527010625,1527010626,1527010627,1527010628,1527010629,1527010630,1527010631,1527010632,1527010633,1527010634,1527010635,1527010636,1527010637,1527010638,1527010639,1527010640,1527010641,1527010642,1527010643,1527010644,1527010645,1527010646,1527010647,1527010648,1527010649,1527010650,1527010651,1527010652,1527010653,1527010654,1527010655,1527010656,1527010657,1366843436,1366843435,1366843434,1366843433,1527010839,1527010840,1527010841,1527010842,1527010843,1527010844,1527010845,1527010846,1527010847,1527010848,1527010849,1527010850,1527010851,1527010852,1527010853,1527010854,1527010855,1527010856,1527010857,1527010858,1527010859,1527010860,1527010861,1527010862,1527010863,1527010864,1527010865,1527010866,1527010867,1527010868,1527010869,1527010870,1527010871,1527010872,1527010873,1527010874,1527010875,1527010876,1527010877,1527010878,1527010879,1527010880,1527010881,1527010882,1527010883,1527010884,1527010885,1527010886,1527010887,1527010888,1527010889,1527010890,1527010891,1527010892,1527010893,1527010894,1527010895,1527010896,1527010897,1527010898,1527010899,1527010900,1527010901,1527010902,1527010903,1527010904,1527010905,1527010906,1527010907,1527010908,1527010909,1527010910,1527010911,1527010912,1527010913,1366843432,1366843431,1366843430,1366843429,1527011095,1527011096,1527011097,1527011098,1527011099,1527011100,1527011101,1527011102,1527011103,1527011104,1527011105,1527011106,1527011107,1527011108,1527011109,1527011110,1527011111,1527011112,1527011113,1527011114,1527011115,1527011116,1527011117,1527011118,1527011119,1527011120,1527011121,1527011122,1527011123,1527011124,1527011125,1527011126,1527011127,1527011128,1527011129,1527011130,1527011131,1527011132,1527011133,1527011134,1527011135,1527011136,1527011137,1527011138,1527011139,1527011140,1527011141,1527011142,1527011143,1527011144,1527011145,1527011146,1527011147,1527011148,1527011149,1527011150,1527011151,1527011152,1527011153,1527011154,1527011155,1527011156,1527011157,1527011158,1527011159,1527011160,1527011161,1527011162,1527011163,1527011164,1527011165,1527011166,1527011167,1527011168,1527011169,1366843428,1366843427,1366843426,1366843425,1527011351,1527011352,1527011353,1527011354,1527011355,1527011356,1527011357,1527011358,1527011359,1527011360,1527011361,1527011362,1527011363,1527011364,1527011365,1527011366,1527011367,1527011368,1527011369,1527011370,1527011371,1527011372,1527011373,1527011374,1527011375,1527011376,1527011377,1527011378,1527011379,1527011380,1527011381,1527011382,1527011383,1527011384,1527011385,1527011386,1527011387,1527011388,1527011389,1527011390,1527011391,1527011392,1527011393,1527011394,1527011395,1527011396,1527011397,1527011398,1527011399,1527011400,1527011401,1527011402,1527011403,1527011404,1527011405,1527011406,1527011407,1527011408,1527011409,1527011410,1527011411,1527011412,1527011413,1527011414,1527011415,1527011416,1527011417,1527011418,1527011419,1527011420,1527011421,1527011422,1527011423,1527011424,1527011425,1366843424,1366843423,1366843422,1366843421,1527011607,1527011608,1527011609,1527011610,1527011611,1527011612,1527011613,1527011614,1527011615,1527011616,1527011617,1527011618,1527011619,1527011620,1527011621,1527011622,1527011623,1527011624,1527011625,1527011626,1527011627,1527011628,1527011629,1527011630,1527011631,1527011632,1527011633,1527011634,1527011635,1527011636,1527011637,1527011647,1527011648,1527011649,1527011650,1527011651,1527011652,1527011653,1527011654,1527011655,1527011656,1527011657,1527011658,1527011659,1527011660,1527011661,1527011662,1527011663,1527011664,1527011665,1527011666,1527011667,1527011668,1527011669,1527011670,1527011671,1527011672,1527011673,1527011674,1527011675,1527011676,1527011677,1527011678,1527011679,1527011680,1527011681,1366843420,1366843419,1366843418,1366843417,1527011863,1527011864,1527011865,1527011866,1527011867,1527011868,1527011869,1527011870,1527011871,1527011872,1527011873,1527011874,1527011875,1527011876,1527011877,1527011878,1527011879,1527011880,1527011881,1527011882,1527011883,1527011884,1527011885,1527011886,1527011887,1527011888,1527011889,1527011890,1527011891,1527011892,1527011904,1527011905,1527011906,1527011907,1527011908,1527011909,1527011910,1527011911,1527011912,1527011913,1527011914,1527011915,1527011916,1527011917,1527011918,1527011919,1527011920,1527011921,1527011922,1527011923,1527011924,1527011925,1527011926,1527011927,1527011928,1527011929,1527011930,1527011931,1527011932,1527011933,1527011934,1527011935,1527011936,1527011937,1366843416,1366843415,1366843414,1366843413,1527012119,1527012120,1527012121,1527012122,1527012123,1527012124,1527012125,1527012126,1527012127,1527012128,1527012129,1527012130,1527012131,1527012132,1527012133,1527012134,1527012135,1527012136,1527012137,1527012138,1527012139,1527012140,1527012141,1527012142,1527012143,1527012144,1527012145,1527012146,1527012147,1527012148,1527012160,1527012161,1527012162,1527012163,1527012164,1527012165,1527012166,1527012167,1527012168,1527012169,1527012170,1527012171,1527012172,1527012173,1527012174,1527012175,1527012176,1527012177,1527012178,1527012179,1527012180,1527012181,1527012182,1527012183,1527012184,1527012185,1527012186,1527012187,1527012188,1527012189,1527012190,1527012191,1527012192,1527012193,1366843412,1366843411,1534615393,1534615392,1527012375,1527012376,1527012377,1527012378,1527012379,1527012380,1527012381,1527012382,1527012383,1527012384,1527012385,1527012386,1527012387,1527012388,1527012389,1527012390,1527012391,1527012392,1527012393,1527012394,1527012395,1527012396,1527012397,1527012398,1527012399,1527012400,1527012401,1527012402,1527012403,1527012404,1527012416,1527012417,1527012418,1527012419,1527012420,1527012421,1527012422,1527012423,1527012424,1527012425,1527012426,1527012427,1527012428,1527012429,1527012430,1527012431,1527012432,1527012433,1527012434,1527012435,1527012436,1527012437,1527012438,1527012439,1527012440,1527012441,1527012442,1527012443,1527012444,1527012445,1527012446,1527012447,1527012448,1527012449,1534615391,1534615390,1534615389,1534615388,1527012631,1527012632,1527012633,1527012634,1527012635,1527012636,1527012637,1527012638,1527012639,1527012640,1527012641,1527012642,1527012643,1527012644,1527012645,1527012646,1527012647,1527012648,1527012649,1527012650,1527012651,1527012652,1527012653,1527012654,1527012655,1527012656,1527012657,1527012658,1527012659,1527012660,1527012672,1527012673,1527012674,1527012675,1527012676,1527012677,1527012678,1527012679,1527012680,1527012681,1527012682,1527012683,1527012684,1527012685,1527012686,1527012687,1527012688,1527012689,1527012690,1527012691,1527012692,1527012693,1527012694,1527012695,1527012696,1527012697,1527012698,1527012699,1527012700,1527012701,1527012702,1527012703,1527012704,1527012705,1534615387,1534615386,1366843225,1366843224,1527012887,1527012888,1527012889,1527012890,1527012891,1527012892,1527012893,1527012894,1527012895,1527012896,1527012897,1527012898,1527012899,1527012900,1527012901,1527012902,1527012903,1527012904,1527012905,1527012906,1527012907,1527012908,1527012909,1527012910,1527012911,1527012912,1527012913,1527012914,1527012915,1527012916,1527012928,1527012929,1527012930,1527012931,1527012932,1527012933,1527012934,1527012935,1527012936,1527012937,1527012938,1527012939,1527012940,1527012941,1527012942,1527012943,1527012944,1527012945,1527012946,1527012947,1527012948,1527012949,1527012950,1527012951,1527012952,1527012953,1527012954,1527012955,1527012956,1527012957,1527012958,1527012959,1527012960,1527012961,1366843223,1366843222,1366843221,1366843220,1527013143,1527013144,1527013145,1527013146,1527013147,1527013148,1527013149,1527013150,1527013151,1527013152,1527013153,1527013154,1527013155,1527013156,1527013157,1527013158,1527013159,1527013160,1527013161,1527013162,1527013163,1527013164,1527013165,1527013166,1527013167,1527013168,1527013169,1527013170,1527013171,1527013172,1527013184,1527013185,1527013186,1527013187,1527013188,1527013189,1527013190,1527013191,1527013192,1527013193,1527013194,1527013195,1527013196,1527013197,1527013198,1527013199,1527013200,1527013201,1527013202,1527013203,1527013204,1527013205,1527013206,1527013207,1527013208,1527013209,1527013210,1527013211,1527013212,1527013213,1527013214,1527013215,1527013216,1527013217,1366843219,1366843218,1366843217,1366843216,1527013399,1527013400,1527013401,1527013402,1527013403,1527013404,1527013405,1527013406,1527013407,1527013408,1527013409,1527013410,1527013411,1527013412,1527013413,1527013414,1527013415,1527013416,1527013417,1527013418,1527013419,1527013420,1527013421,1527013422,1527013423,1527013424,1527013425,1527013426,1527013427,1527013428,1527013440,1527013441,1527013442,1527013443,1527013444,1527013445,1527013446,1527013447,1527013448,1527013449,1527013450,1527013451,1527013452,1527013453,1527013454,1527013455,1527013456,1527013457,1527013458,1527013459,1527013460,1527013461,1527013462,1527013463,1527013464,1527013465,1527013466,1527013467,1527013468,1527013469,1527013470,1527013471,1527013472,1527013473,1366843215,1366843214,1366843213,1366843212,1527013655,1527013656,1527013657,1527013658,1527013659,1527013660,1527013661,1527013662,1527013663,1527013664,1527013665,1527013666,1527013667,1527013668,1527013669,1527013670,1527013671,1527013672,1527013673,1527013674,1527013675,1527013676,1527013677,1527013678,1527013679,1527013680,1527013681,1527013682,1527013683,1527013684,1527013696,1527013697,1527013698,1527013699,1527013700,1527013701,1527013702,1527013703,1527013704,1527013705,1527013706,1527013707,1527013708,1527013709,1527013710,1527013711,1527013712,1527013713,1527013714,1527013715,1527013716,1527013717,1527013718,1527013719,1527013720,1527013721,1527013722,1527013723,1527013724,1527013725,1527013726,1527013727,1527013728,1527013729,1527058991,1527058995,1527059000,1527059004,1527059009,1527059013,1366843211,1366843210,1366843209,1366843208,1527059223,1527059224,1527059225,1527059226,1527059227,1527059228,1527059229,1527059230,1527059231,1527059232,1527059233,1527059234,1527059235,1527059236,1527059237,1527059238,1527059239,1527059240,1527059241,1527059242,1527059243,1527059244,1527059245,1527059246,1527059247,1527059248,1527059249,1527059250,1527059251,1527059252,1527059253,1527059254,1527059255,1527059256,1527059257,1527059258,1527059259,1527059260,1527059261,1527059262,1527059263,1527059264,1527059265,1527059266,1527059267,1527059268,1527059269,1527059270,1527059271,1527059272,1527059273,1527059274,1527059275,1527059276,1527059277,1527059278,1527059279,1527059280,1527059281,1527059282,1527059283,1527059284,1527059285,1527059286,1527059287,1527059288,1527059289,1527059290,1527059291,1527059292,1527059293,1527059294,1527059295,1527059296,1527059297,1366843207,1366843206,1366843205,1366843204,1527059479,1527059480,1527059481,1527059482,1527059483,1527059484,1527059485,1527059486,1527059487,1527059488,1527059489,1527059490,1527059491,1527059492,1527059493,1527059494,1527059495,1527059496,1527059497,1527059498,1527059499,1527059500,1527059501,1527059502,1527059503,1527059504,1527059505,1527059506,1527059507,1527059508,1527059509,1527059510,1527059511,1527059512,1527059513,1527059514,1527059515,1527059516,1527059517,1527059518,1527059519,1527059520,1527059521,1527059522,1527059523,1527059524,1527059525,1527059526,1527059527,1527059528,1527059529,1527059530,1527059531,1527059532,1527059533,1527059534,1527059535,1527059536,1527059537,1527059538,1527059539,1527059540,1527059541,1527059542,1527059543,1527059544,1527059545,1527059546,1527059547,1527059548,1527059549,1527059550,1527059551,1527059552,1527059553,1366843203,1366843202,1366843201,1366843200,1527059735,1527059736,1527059737,1527059738,1527059739,1527059740,1527059741,1527059742,1527059743,1527059744,1527059745,1527059746,1527059747,1527059748,1527059749,1527059750,1527059751,1527059752,1527059753,1527059754,1527059755,1527059756,1527059757,1527059758,1527059759,1527059760,1527059761,1527059762,1527059763,1527059764,1527059765,1527059766,1527059767,1527059768,1527059769,1527059770,1527059771,1527059772,1527059773,1527059774,1527059775,1527059776,1527059777,1527059778,1527059779,1527059780,1527059781,1527059782,1527059783,1527059784,1527059785,1527059786,1527059787,1527059788,1527059789,1527059790,1527059791,1527059792,1527059793,1527059794,1527059795,1527059796,1527059797,1527059798,1527059799,1527059800,1527059801,1527059802,1527059803,1527059804,1527059805,1527059806,1527059807,1527059808,1527059809,1366843199,1366843198,1366843197,1366843196,1527059991,1527059992,1527059993,1527059994,1527059995,1527059996,1527059997,1527059998,1527059999,1527060000,1527060001,1527060002,1527060003,1527060004,1527060005,1527060006,1527060007,1527060008,1527060009,1527060010,1527060011,1527060012,1527060013,1527060014,1527060015,1527060016,1527060017,1527060018,1527060019,1527060020,1527060021,1527060022,1527060023,1527060024,1527060025,1527060026,1527060027,1527060028,1527060029,1527060030,1527060031,1527060032,1527060033,1527060034,1527060035,1527060036,1527060037,1527060038,1527060039,1527060040,1527060041,1527060042,1527060043,1527060044,1527060045,1527060046,1527060047,1527060048,1527060049,1527060050,1527060051,1527060052,1527060053,1527060054,1527060055,1527060056,1527060057,1527060058,1527060059,1527060060,1527060061,1527060062,1527060063,1527060064,1527060065,1366843195,1366843194,1366843193,1366843192,1527060247,1527060248,1527060249,1527060250,1527060251,1527060252,1527060253,1527060254,1527060255,1527060256,1527060257,1527060258,1527060259,1527060260,1527060261,1527060262,1527060263,1527060264,1527060265,1527060266,1527060267,1527060268,1527060269,1527060270,1527060271,1527060272,1527060273,1527060274,1527060275,1527060276,1527060277,1527060278,1527060279,1527060280,1527060281,1527060282,1527060283,1527060284,1527060285,1527060286,1527060287,1527060288,1527060289,1527060290,1527060291,1527060292,1527060293,1527060294,1527060295,1527060296,1527060297,1527060298,1527060299,1527060300,1527060301,1527060302,1527060303,1527060304,1527060305,1527060306,1527060307,1527060308,1527060309,1527060310,1527060311,1527060312,1527060313,1527060314,1527060315,1527060316,1527060317,1527060318,1527060319,1527060320,1527060321,1366843191,1366843190,1366843189,1366843188,1527060503,1527060504,1527060505,1527060506,1527060507,1527060508,1527060509,1527060510,1527060511,1527060512,1527060513,1527060514,1527060515,1527060516,1527060517,1527060518,1527060519,1527060520,1527060521,1527060522,1527060523,1527060524,1527060525,1527060526,1527060527,1527060528,1527060529,1527060530,1527060531,1527060532,1527060533,1527060534,1527060535,1527060536,1527060537,1527060538,1527060539,1527060540,1527060541,1527060542,1527060543,1527060544,1527060545,1527060546,1527060547,1527060548,1527060549,1527060550,1527060551,1527060552,1527060553,1527060554,1527060555,1527060556,1527060557,1527060558,1527060559,1527060560,1527060561,1527060562,1527060563,1527060564,1527060565,1527060566,1527060567,1527060568,1527060569,1527060570,1527060571,1527060572,1527060573,1527060574,1527060575,1527060576,1527060577,1366843187,1366843186,1366843185,1366843184,1527060759,1527060760,1527060761,1527060762,1527060763,1527060764,1527060765,1527060766,1527060767,1527060768,1527060769,1527060770,1527060771,1527060772,1527060773,1527060774,1527060775,1527060776,1527060777,1527060778,1527060779,1527060780,1527060781,1527060782,1527060783,1527060784,1527060785,1527060786,1527060787,1527060788,1527060789,1527060790,1527060791,1527060792,1527060793,1527060794,1527060795,1527060796,1527060797,1527060798,1527060799,1527060800,1527060801,1527060802,1527060803,1527060804,1527060805,1527060806,1527060807,1527060808,1527060809,1527060810,1527060811,1527060812,1527060813,1527060814,1527060815,1527060816,1527060817,1527060818,1527060819,1527060820,1527060821,1527060822,1527060823,1527060824,1527060825,1527060826,1527060827,1527060828,1527060829,1527060830,1527060831,1527060832,1527060833,1366843183,1366843182,1366843181,1366843180,1527061015,1527061016,1527061017,1527061018,1527061019,1527061020,1527061021,1527061022,1527061023,1527061024,1527061025,1527061026,1527061027,1527061028,1527061029,1527061030,1527061031,1527061032,1527061033,1527061034,1527061035,1527061036,1527061037,1527061038,1527061039,1527061040,1527061041,1527061042,1527061043,1527061044,1527061045,1527061046,1527061047,1527061048,1527061049,1527061050,1527061051,1527061052,1527061053,1527061054,1527061055,1527061056,1527061057,1527061058,1527061059,1527061060,1527061061,1527061062,1527061063,1527061064,1527061065,1527061066,1527061067,1527061068,1527061069,1527061070,1527061071,1527061072,1527061073,1527061074,1527061075,1527061076,1527061077,1527061078,1527061079,1527061080,1527061081,1527061082,1527061083,1527061084,1527061085,1527061086,1527061087,1527061088,1527061089,1366843179,1366843178,1366843177,1366843176,1527061271,1527061272,1527061273,1527061274,1527061275,1527061276,1527061277,1527061278,1527061279,1527061280,1527061281,1527061282,1527061283,1527061284,1527061285,1527061286,1527061287,1527061288,1527061289,1527061290,1527061291,1527061292,1527061293,1527061294,1527061295,1527061296,1527061297,1527061298,1527061299,1527061300,1527061301,1527061302,1527061303,1527061304,1527061305,1527061306,1527061307,1527061308,1527061309,1527061310,1527061311,1527061312,1527061313,1527061314,1527061315,1527061316,1527061317,1527061318,1527061319,1527061320,1527061321,1527061322,1527061323,1527061324,1527061325,1527061326,1527061327,1527061328,1527061329,1527061330,1527061331,1527061332,1527061333,1527061334,1527061335,1527061336,1527061337,1527061338,1527061339,1527061340,1527061341,1527061342,1527061343,1527061344,1527061345,1366843175,1366843174,1366843173,1366843172,1527061527,1527061528,1527061529,1527061530,1527061531,1527061532,1527061533,1527061534,1527061535,1527061536,1527061537,1527061538,1527061539,1527061540,1527061541,1527061542,1527061543,1527061544,1527061545,1527061546,1527061547,1527061548,1527061549,1527061550,1527061551,1527061552,1527061553,1527061554,1527061555,1527061556,1527061557,1527061558,1527061559,1527061560,1527061561,1527061562,1527061563,1527061564,1527061565,1527061566,1527061567,1527061568,1527061569,1527061570,1527061571,1527061572,1527061573,1527061574,1527061575,1527061576,1527061577,1527061578,1527061579,1527061580,1527061581,1527061582,1527061583,1527061584,1527061585,1527061586,1527061587,1527061588,1527061589,1527061590,1527061591,1527061592,1527061593,1527061594,1527061595,1527061596,1527061597,1527061598,1527061599,1527061600,1527061601,1366843171,1366843170,1366843169,1366843168,1527061783,1527061784,1527061785,1527061786,1527061787,1527061788,1527061789,1527061790,1527061791,1527061792,1527061793,1527061794,1527061795,1527061796,1527061797,1527061798,1527061799,1527061800,1527061801,1527061802,1527061803,1527061804,1527061805,1527061806,1527061807,1527061808,1527061809,1527061810,1527061811,1527061812,1527061813,1527061814,1527061815,1527061816,1527061817,1527061818,1527061819,1527061820,1527061821,1527061822,1527061823,1527061824,1527061825,1527061826,1527061827,1527061828,1527061829,1527061830,1527061831,1527061832,1527061833,1527061834,1527061835,1527061836,1527061837,1527061838,1527061839,1527061840,1527061841,1527061842,1527061843,1527061844,1527061845,1527061846,1527061847,1527061848,1527061849,1527061850,1527061851,1527061852,1527061853,1527061854,1527061855,1527061856,1527061857,1366843167,1366843166,1366843165,1366843164,1527062039,1527062040,1527062041,1527062042,1527062043,1527062044,1527062045,1527062046,1527062047,1527062048,1527062049,1527062050,1527062051,1527062052,1527062053,1527062054,1527062055,1527062056,1527062057,1527062058,1527062059,1527062060,1527062061,1527062062,1527062063,1527062064,1527062065,1527062066,1527062067,1527062068,1527062069,1527062070,1527062071,1527062072,1527062073,1527062074,1527062075,1527062076,1527062077,1527062078,1527062079,1527062080,1527062081,1527062082,1527062083,1527062084,1527062085,1527062086,1527062087,1527062088,1527062089,1527062090,1527062091,1527062092,1527062093,1527062094,1527062095,1527062096,1527062097,1527062098,1527062099,1527062100,1527062101,1527062102,1527062103,1527062104,1527062105,1527062106,1527062107,1527062108,1527062109,1527062110,1527062111,1527062112,1527062113,1366843163,1366843162,1366843161,1366843160,1527062295,1527062296,1527062297,1527062298,1527062299,1527062300,1527062301,1527062302,1527062303,1527062304,1527062305,1527062306,1527062307,1527062308,1527062309,1527062310,1527062311,1527062312,1527062313,1527062314,1527062315,1527062316,1527062317,1527062318,1527062319,1527062320,1527062321,1527062322,1527062323,1527062324,1527062325,1527062326,1527062327,1527062328,1527062329,1527062330,1527062331,1527062332,1527062333,1527062334,1527062335,1527062336,1527062337,1527062338,1527062339,1527062340,1527062341,1527062342,1527062343,1527062344,1527062345,1527062346,1527062347,1527062348,1527062349,1527062350,1527062351,1527062352,1527062353,1527062354,1527062355,1527062356,1527062357,1527062358,1527062359,1527062360,1527062361,1527062362,1527062363,1527062364,1527062365,1527062366,1527062367,1527062368,1527062369,1366843159,1366843158,1366843157,1366843156,1527062551,1527062552,1527062553,1527062554,1527062555,1527062556,1527062557,1527062558,1527062559,1527062560,1527062561,1527062562,1527062563,1527062564,1527062565,1527062566,1527062567,1527062568,1527062569,1527062570,1527062571,1527062572,1527062573,1527062574,1527062575,1527062576,1527062577,1527062578,1527062579,1527062580,1527062581,1527062582,1527062583,1527062584,1527062585,1527062586,1527062587,1527062588,1527062589,1527062590,1527062591,1527062592,1527062593,1527062594,1527062595,1527062596,1527062597,1527062598,1527062599,1527062600,1527062601,1527062602,1527062603,1527062604,1527062605,1527062606,1527062607,1527062608,1527062609,1527062610,1527062611,1527062612,1527062613,1527062614,1527062615,1527062616,1527062617,1527062618,1527062619,1527062620,1527062621,1527062622,1527062623,1527062624,1527062625,1366843155,1534615137,1534615136,1534615135,1527062807,1527062808,1527062809,1527062810,1527062811,1527062812,1527062813,1527062814,1527062815,1527062816,1527062817,1527062818,1527062819,1527062820,1527062821,1527062822,1527062823,1527062824,1527062825,1527062826,1527062827,1527062828,1527062829,1527062830,1527062831,1527062832,1527062833,1527062834,1527062835,1527062836,1527062837,1527062838,1527062839,1527062840,1527062841,1527062842,1527062843,1527062844,1527062845,1527062846,1527062847,1527062848,1527062849,1527062850,1527062851,1527062852,1527062853,1527062854,1527062855,1527062856,1527062857,1527062858,1527062859,1527062860,1527062861,1527062862,1527062863,1527062864,1527062865,1527062866,1527062867,1527062868,1527062869,1527062870,1527062871,1527062872,1527062873,1527062874,1527062875,1527062876,1527062877,1527062878,1527062879,1527062880,1527062881,1534615134,1534615133,1534615132,1534615131,1527063063,1527063064,1527063065,1527063066,1527063067,1527063068,1527063069,1527063070,1527063071,1527063072,1527063073,1527063074,1527063075,1527063076,1527063077,1527063078,1527063079,1527063080,1527063081,1527063082,1527063083,1527063084,1527063085,1527063086,1527063087,1527063088,1527063089,1527063090,1527063091,1527063092,1527063093,1527063094,1527063095,1527063096,1527063097,1527063098,1527063099,1527063100,1527063101,1527063102,1527063103,1527063104,1527063105,1527063106,1527063107,1527063108,1527063109,1527063110,1527063111,1527063112,1527063113,1527063114,1527063115,1527063116,1527063117,1527063118,1527063119,1527063120,1527063121,1527063122,1527063123,1527063124,1527063125,1527063126,1527063127,1527063128,1527063129,1527063130,1527063131,1527063132,1527063133,1527063134,1527063135,1527063136,1527063137,1534615130,1366842969,1366842968,1366842967,1527063319,1527063320,1527063321,1527063322,1527063323,1527063324,1527063325,1527063326,1527063327,1527063328,1527063329,1527063330,1527063331,1527063332,1527063333,1527063334,1527063335,1527063336,1527063337,1527063338,1527063339,1527063340,1527063341,1527063342,1527063343,1527063344,1527063345,1527063346,1527063347,1527063348,1527063349,1527063350,1527063351,1527063352,1527063353,1527063354,1527063355,1527063356,1527063357,1527063358,1527063359,1527063360,1527063361,1527063362,1527063363,1527063364,1527063365,1527063366,1527063367,1527063368,1527063369,1527063370,1527063371,1527063372,1527063373,1527063374,1527063375,1527063376,1527063377,1527063378,1527063379,1527063380,1527063381,1527063382,1527063383,1527063384,1527063385,1527063386,1527063387,1527063388,1527063389,1527063390,1527063391,1527063392,1527063393,1366842966,1366842965,1366842964,1366842963,1527063575,1527063576,1527063577,1527063578,1527063579,1527063580,1527063581,1527063582,1527063583,1527063584,1527063585,1527063586,1527063587,1527063588,1527063589,1527063590,1527063591,1527063592,1527063593,1527063594,1527063595,1527063596,1527063597,1527063598,1527063599,1527063600,1527063601,1527063602,1527063603,1527063604,1527063605,1527063606,1527063607,1527063608,1527063609,1527063610,1527063611,1527063612,1527063613,1527063614,1527063615,1527063616,1527063617,1527063618,1527063619,1527063620,1527063621,1527063622,1527063623,1527063624,1527063625,1527063626,1527063627,1527063628,1527063629,1527063630,1527063631,1527063632,1527063633,1527063634,1527063635,1527063636,1527063637,1527063638,1527063639,1527063640,1527063641,1527063642,1527063643,1527063644,1527063645,1527063646,1527063647,1527063648,1527063649,1366842962,1366842961,1366842960,1366842959,1527063831,1527063832,1527063833,1527063834,1527063835,1527063836,1527063837,1527063838,1527063839,1527063840,1527063841,1527063842,1527063843,1527063844,1527063845,1527063846,1527063847,1527063848,1527063849,1527063850,1527063851,1527063852,1527063853,1527063854,1527063855,1527063856,1527063857,1527063858,1527063859,1527063860,1527063861,1527063862,1527063863,1527063864,1527063865,1527063866,1527063867,1527063868,1527063869,1527063870,1527063871,1527063872,1527063873,1527063874,1527063875,1527063876,1527063877,1527063878,1527063879,1527063880,1527063881,1527063882,1527063883,1527063884,1527063885,1527063886,1527063887,1527063888,1527063889,1527063890,1527063891,1527063892,1527063893,1527063894,1527063895,1527063896,1527063897,1527063898,1527063899,1527063900,1527063901,1527063902,1527063903,1527063904,1527063905,1366842958,1366842957,1366842956,1366842955,1527064087,1527064088,1527064089,1527064090,1527064091,1527064092,1527064093,1527064094,1527064095,1527064096,1527064097,1527064098,1527064099,1527064100,1527064101,1527064102,1527064103,1527064104,1527064105,1527064106,1527064107,1527064108,1527064109,1527064110,1527064111,1527064112,1527064113,1527064114,1527064115,1527064116,1527064117,1527064118,1527064119,1527064120,1527064121,1527064122,1527064123,1527064124,1527064125,1527064126,1527064127,1527064128,1527064129,1527064130,1527064131,1527064132,1527064133,1527064134,1527064135,1527064136,1527064137,1527064138,1527064139,1527064140,1527064141,1527064142,1527064143,1527064144,1527064145,1527064146,1527064147,1527064148,1527064149,1527064150,1527064151,1527064152,1527064153,1527064154,1527064155,1527064156,1527064157,1527064158,1527064159,1527064160,1527064161,1366842954,1366842953,1366842952,1366842951,1527064343,1527064344,1527064345,1527064346,1527064347,1527064348,1527064349,1527064350,1527064351,1527064352,1527064353,1527064354,1527064355,1527064356,1527064357,1527064358,1527064359,1527064360,1527064361,1527064362,1527064363,1527064364,1527064365,1527064366,1527064367,1527064368,1527064369,1527064370,1527064371,1527064372,1527064373,1527064374,1527064375,1527064376,1527064377,1527064378,1527064379,1527064380,1527064381,1527064382,1527064383,1527064384,1527064385,1527064386,1527064387,1527064388,1527064389,1527064390,1527064391,1527064392,1527064393,1527064394,1527064395,1527064396,1527064397,1527064398,1527064399,1527064400,1527064401,1527064402,1527064403,1527064404,1527064405,1527064406,1527064407,1527064408,1527064409,1527064410,1527064411,1527064412,1527064413,1527064414,1527064415,1527064416,1527064417,1366842950,1366842949,1366842948,1366842947,1527064599,1527064600,1527064601,1527064602,1527064603,1527064604,1527064605,1527064606,1527064607,1527064608,1527064609,1527064610,1527064611,1527064612,1527064613,1527064614,1527064615,1527064616,1527064617,1527064618,1527064619,1527064620,1527064621,1527064622,1527064623,1527064624,1527064625,1527064626,1527064627,1527064628,1527064629,1527064630,1527064631,1527064632,1527064633,1527064634,1527064635,1527064636,1527064637,1527064638,1527064639,1527064640,1527064641,1527064642,1527064643,1527064644,1527064645,1527064646,1527064647,1527064648,1527064649,1527064650,1527064651,1527064652,1527064653,1527064654,1527064655,1527064656,1527064657,1527064658,1527064659,1527064660,1527064661,1527064662,1527064663,1527064664,1527064665,1527064666,1527064667,1527064668,1527064669,1527064670,1527064671,1527064672,1527064673,1366842946,1366842945,1366842944,1366842943,1527064855,1527064856,1527064857,1527064858,1527064859,1527064860,1527064861,1527064862,1527064863,1527064864,1527064865,1527064866,1527064867,1527064868,1527064869,1527064870,1527064871,1527064872,1527064873,1527064874,1527064875,1527064876,1527064877,1527064878,1527064879,1527064880,1527064881,1527064882,1527064883,1527064884,1527064885,1527064886,1527064887,1527064888,1527064889,1527064890,1527064891,1527064892,1527064893,1527064894,1527064895,1527064896,1527064897,1527064898,1527064899,1527064900,1527064901,1527064902,1527064903,1527064904,1527064905,1527064906,1527064907,1527064908,1527064909,1527064910,1527064911,1527064912,1527064913,1527064914,1527064915,1527064916,1527064917,1527064918,1527064919,1527064920,1527064921,1527064922,1527064923,1527064924,1527064925,1527064926,1527064927,1527064928,1527064929,1366842942,1366842941,1366842940,1366842939,1527065111,1527065112,1527065113,1527065114,1527065115,1527065116,1527065117,1527065118,1527065119,1527065120,1527065121,1527065122,1527065123,1527065124,1527065125,1527065126,1527065127,1527065128,1527065129,1527065130,1527065131,1527065132,1527065133,1527065134,1527065135,1527065136,1527065137,1527065138,1527065139,1527065140,1527065141,1527065142,1527065143,1527065144,1527065145,1527065146,1527065147,1527065148,1527065149,1527065150,1527065151,1527065152,1527065153,1527065154,1527065155,1527065156,1527065157,1527065158,1527065159,1527065160,1527065161,1527065162,1527065163,1527065164,1527065165,1527065166,1527065167,1527065168,1527065169,1527065170,1527065171,1527065172,1527065173,1527065174,1527065175,1527065176,1527065177,1527065178,1527065179,1527065180,1527065181,1527065182,1527065183,1527065184,1527065185,1366842938,1366842937,1366842936,1366842935,1527065367,1527065368,1527065369,1527065370,1527065371,1527065372,1527065373,1527065374,1527065375,1527065376,1527065377,1527065378,1527065379,1527065380,1527065381,1527065382,1527065383,1527065384,1527065385,1527065386,1527065387,1527065388,1527065389,1527065390,1527065391,1527065392,1527065393,1527065394,1527065395,1527065396,1527065397,1527065398,1527065399,1527065400,1527065401,1527065402,1527065403,1527065404,1527065405,1527065406,1527065407,1527065408,1527065409,1527065410,1527065411,1527065412,1527065413,1527065414,1527065415,1527065416,1527065417,1527065418,1527065419,1527065420,1527065421,1527065422,1527065423,1527065424,1527065425,1527065426,1527065427,1527065428,1527065429,1527065430,1527065431,1527065432,1527065433,1527065434,1527065435,1527065436,1527065437,1527065438,1527065439,1527065440,1527065441,1366842934,1366842933,1366842932,1366842931,1527065623,1527065624,1527065625,1527065626,1527065627,1527065628,1527065629,1527065630,1527065631,1527065632,1527065633,1527065634,1527065635,1527065636,1527065637,1527065638,1527065639,1527065640,1527065641,1527065642,1527065643,1527065644,1527065645,1527065646,1527065647,1527065648,1527065649,1527065650,1527065651,1527065652,1527065653,1527065654,1527065655,1527065656,1527065657,1527065658,1527065659,1527065660,1527065661,1527065662,1527065663,1527065664,1527065665,1527065666,1527065667,1527065668,1527065669,1527065670,1527065671,1527065672,1527065673,1527065674,1527065675,1527065676,1527065677,1527065678,1527065679,1527065680,1527065681,1527065682,1527065683,1527065684,1527065685,1527065686,1527065687,1527065688,1527065689,1527065690,1527065691,1527065692,1527065693,1527065694,1527065695,1527065696,1527065697,1366842930,1366842929,1366842928,1366842927,1527065879,1527065880,1527065881,1527065882,1527065883,1527065884,1527065885,1527065886,1527065887,1527065888,1527065889,1527065890,1527065891,1527065892,1527065893,1527065894,1527065895,1527065896,1527065897,1527065898,1527065899,1527065900,1527065901,1527065902,1527065903,1527065904,1527065905,1527065906,1527065907,1527065908,1527065909,1527065910,1527065911,1527065912,1527065913,1527065914,1527065915,1527065916,1527065917,1527065918,1527065919,1527065920,1527065921,1527065922,1527065923,1527065924,1527065925,1527065926,1527065927,1527065928,1527065929,1527065930,1527065931,1527065932,1527065933,1527065934,1527065935,1527065936,1527065937,1527065938,1527065939,1527065940,1527065941,1527065942,1527065943,1527065944,1527065945,1527065946,1527065947,1527065948,1527065949,1527065950,1527065951,1527065952,1527065953,1366842926,1366842925,1366842924,1366842923,1527066135,1527066136,1527066137,1527066138,1527066139,1527066140,1527066141,1527066142,1527066143,1527066144,1527066145,1527066146,1527066147,1527066148,1527066149,1527066150,1527066151,1527066152,1527066153,1527066154,1527066155,1527066156,1527066157,1527066158,1527066159,1527066160,1527066161,1527066162,1527066163,1527066164,1527066165,1527066166,1527066167,1527066168,1527066169,1527066170,1527066171,1527066172,1527066173,1527066174,1527066175,1527066176,1527066177,1527066178,1527066179,1527066180,1527066181,1527066182,1527066183,1527066184,1527066185,1527066186,1527066187,1527066188,1527066189,1527066190,1527066191,1527066192,1527066193,1527066194,1527066195,1527066196,1527066197,1527066198,1527066199,1527066200,1527066201,1527066202,1527066203,1527066204,1527066205,1527066206,1527066207,1527066208,1527066209,1366842922,1366842921,1366842920,1366842919,1366842918,1527066391,1527066392,1527066393,1527066394,1527066395,1527066396,1527066397,1527066398,1527066399,1527066400,1527066401,1527066402,1527066403,1527066404,1527066405,1527066406,1527066407,1527066408,1527066409,1527066410,1527066411,1527066412,1527066413,1527066414,1527066415,1527066416,1527066417,1527066418,1527066419,1527066420,1527066421,1527066422,1527066423,1527066424,1527066425,1527066426,1527066427,1527066428,1527066429,1527066430,1527066431,1527066432,1527066433,1527066434,1527066435,1527066436,1527066437,1527066438,1527066439,1527066440,1527066441,1527066442,1527066443,1527066444,1527066445,1527066446,1527066447,1527066448,1527066449,1527066450,1527066451,1527066452,1527066453,1527066454,1527066455,1527066456,1527066457,1527066458,1527066459,1527066460,1527066461,1527066462,1527066463,1527066464,1527066465,1366842917,1366842916,1366842915,1366842914,1527066647,1527066648,1527066649,1527066650,1527066651,1527066652,1527066653,1527066654,1527066655,1527066656,1527066657,1527066658,1527066659,1527066660,1527066661,1527066662,1527066663,1527066664,1527066665,1527066666,1527066667,1527066668,1527066669,1527066670,1527066671,1527066672,1527066673,1527066674,1527066675,1527066676,1527066677,1527066678,1527066679,1527066680,1527066681,1527066682,1527066683,1527066684,1527066685,1527066686,1527066687,1527066688,1527066689,1527066690,1527066691,1527066692,1527066693,1527066694,1527066695,1527066696,1527066697,1527066698,1527066699,1527066700,1527066701,1527066702,1527066703,1527066704,1527066705,1527066706,1527066707,1527066708,1527066709,1527066710,1527066711,1527066712,1527066713,1527066714,1527066715,1527066716,1527066717,1527066718,1527066719,1527066720,1527066721,1366842913,1366842912,1366842911,1366842910,1527066903,1527066904,1527066905,1527066906,1527066907,1527066908,1527066909,1527066910,1527066911,1527066912,1527066913,1527066914,1527066915,1527066916,1527066917,1527066918,1527066919,1527066920,1527066921,1527066922,1527066923,1527066924,1527066925,1527066926,1527066927,1527066928,1527066929,1527066930,1527066931,1527066932,1527066933,1527066934,1527066935,1527066936,1527066937,1527066938,1527066939,1527066940,1527066941,1527066942,1527066943,1527066944,1527066945,1527066946,1527066947,1527066948,1527066949,1527066950,1527066951,1527066952,1527066953,1527066954,1527066955,1527066956,1527066957,1527066958,1527066959,1527066960,1527066961,1527066962,1527066963,1527066964,1527066965,1527066966,1527066967,1527066968,1527066969,1527066970,1527066971,1527066972,1527066973,1527066974,1527066975,1527066976,1527066977,1366842909,1366842908,1366842907,1366842906,1527067159,1527067160,1527067161,1527067162,1527067163,1527067164,1527067165,1527067166,1527067167,1527067168,1527067169,1527067170,1527067171,1527067172,1527067173,1527067174,1527067175,1527067176,1527067177,1527067178,1527067179,1527067180,1527067181,1527067182,1527067183,1527067184,1527067185,1527067186,1527067187,1527067188,1527067189,1527067190,1527067191,1527067192,1527067193,1527067194,1527067195,1527067196,1527067197,1527067198,1527067199,1527067200,1527067201,1527067202,1527067203,1527067204,1527067205,1527067206,1527067207,1527067208,1527067209,1527067210,1527067211,1527067212,1527067213,1527067214,1527067215,1527067216,1527067217,1527067218,1527067219,1527067220,1527067221,1527067222,1527067223,1527067224,1527067225,1527067226,1527067227,1527067228,1527067229,1527067230,1527067231,1527067232,1527067233,1366842905,1366842904,1366842903,1366842902,1366842901,1527067415,1527067416,1527067417,1527067418,1527067419,1527067420,1527067421,1527067422,1527067423,1527067424,1527067425,1527067426,1527067427,1527067428,1527067429,1527067430,1527067431,1527067432,1527067433,1527067434,1527067435,1527067436,1527067437,1527067438,1527067439,1527067440,1527067441,1527067442,1527067443,1527067444,1527067445,1527067446,1527067447,1527067448,1527067449,1527067450,1527067451,1527067452,1527067453,1527067454,1527067455,1527067456,1527067457,1527067458,1527067459,1527067460,1527067461,1527067462,1527067463,1527067464,1527067465,1527067466,1527067467,1527067468,1527067469,1527067470,1527067471,1527067472,1527067473,1527067474,1527067475,1527067476,1527067477,1527067478,1527067479,1527067480,1527067481,1527067482,1527067483,1527067484,1527067485,1527067486,1527067487,1527067488,1527067489,1366842900,1366842899,1534614881,1534614880,1527067671,1527067672,1527067673,1527067674,1527067675,1527067676,1527067677,1527067678,1527067679,1527067680,1527067681,1527067682,1527067683,1527067684,1527067685,1527067686,1527067687,1527067688,1527067689,1527067690,1527067691,1527067692,1527067693,1527067694,1527067695,1527067696,1527067697,1527067698,1527067699,1527067700,1527067701,1527067702,1527067703,1527067704,1527067705,1527067706,1527067707,1527067708,1527067709,1527067710,1527067711,1527067712,1527067713,1527067714,1527067715,1527067716,1527067717,1527067718,1527067719,1527067720,1527067721,1527067722,1527067723,1527067724,1527067725,1527067726,1527067727,1527067728,1527067729,1527067730,1527067731,1527067732,1527067733,1527067734,1527067735,1527067736,1527067737,1527067738,1527067739,1527067740,1527067741,1527067742,1527067743,1527067744,1527067745,1534614879,1534614878,1534614877,1534614876,1527067927,1527067928,1527067929,1527067930,1527067931,1527067932,1527067933,1527067934,1527067935,1527067936,1527067937,1527067938,1527067939,1527067940,1527067941,1527067942,1527067943,1527067944,1527067945,1527067946,1527067947,1527067948,1527067949,1527067950,1527067951,1527067952,1527067953,1527067954,1527067955,1527067956,1527067957,1527067958,1527067959,1527067960,1527067961,1527067962,1527067963,1527067964,1527067965,1527067966,1527067967,1527067968,1527067969,1527067970,1527067971,1527067972,1527067973,1527067974,1527067975,1527067976,1527067977,1527067978,1527067979,1527067980,1527067981,1527067982,1527067983,1527067984,1527067994,1527067995,1527067996,1527067997,1527067998,1527067999,1527068000,1527068001,1534614875,1534614874,1366842713,1366842712,1527068183,1527068184,1527068185,1527068186,1527068187,1527068188,1527068189,1527068190,1527068191,1527068192,1527068193,1527068194,1527068195,1527068196,1527068197,1527068198,1527068199,1527068200,1527068201,1527068202,1527068203,1527068204,1527068205,1527068206,1527068207,1527068208,1527068209,1527068210,1527068211,1527068212,1527068213,1527068214,1527068215,1527068216,1527068217,1527068218,1527068219,1527068220,1527068221,1527068222,1527068223,1527068224,1527068225,1527068226,1527068227,1527068228,1527068229,1527068230,1527068231,1527068232,1527068233,1527068234,1527068235,1527068236,1527068237,1527068238,1527068239,1527068251,1527068252,1527068253,1527068254,1527068255,1527068256,1527068257,1366842711,1366842710,1366842709,1366842708,1527068439,1527068440,1527068441,1527068442,1527068443,1527068444,1527068445,1527068446,1527068447,1527068448,1527068449,1527068450,1527068451,1527068452,1527068453,1527068454,1527068455,1527068456,1527068457,1527068458,1527068459,1527068460,1527068461,1527068462,1527068463,1527068464,1527068465,1527068466,1527068467,1527068468,1527068469,1527068470,1527068471,1527068472,1527068473,1527068474,1527068475,1527068476,1527068477,1527068478,1527068479,1527068480,1527068481,1527068482,1527068483,1527068484,1527068485,1527068486,1527068487,1527068488,1527068489,1527068490,1527068491,1527068492,1527068493,1527068494,1527068495,1527068507,1527068508,1527068509,1527068510,1527068511,1527068512,1527068513,1366842707,1366842706,1366842705,1366842704,1366842703,1527068695,1527068696,1527068697,1527068698,1527068699,1527068700,1527068701,1527068702,1527068703,1527068704,1527068705,1527068706,1527068707,1527068708,1527068709,1527068710,1527068711,1527068712,1527068713,1527068714,1527068715,1527068716,1527068717,1527068718,1527068719,1527068720,1527068721,1527068722,1527068723,1527068724,1527068725,1527068726,1527068727,1527068728,1527068729,1527068730,1527068731,1527068732,1527068733,1527068734,1527068735,1527068736,1527068737,1527068738,1527068739,1527068740,1527068741,1527068742,1527068743,1527068744,1527068745,1527068746,1527068747,1527068748,1527068749,1527068750,1527068751,1527068763,1527068764,1527068765,1527068766,1527068767,1527068768,1527068769,1366842702,1366842701,1366842700,1366842699,1527068951,1527068952,1527068953,1527068954,1527068955,1527068956,1527068957,1527068958,1527068959,1527068960,1527068961,1527068962,1527068963,1527068964,1527068965,1527068966,1527068967,1527068968,1527068969,1527068970,1527068971,1527068972,1527068973,1527068974,1527068975,1527068976,1527068977,1527068978,1527068979,1527068980,1527068981,1527068982,1527068983,1527068984,1527068985,1527068986,1527068987,1527068988,1527068989,1527068990,1527068991,1527068992,1527068993,1527068994,1527068995,1527068996,1527068997,1527068998,1527068999,1527069000,1527069001,1527069002,1527069003,1527069004,1527069005,1527069006,1527069007,1527069019,1527069020,1527069021,1527069022,1527069023,1527069024,1527069025,1366842698,1366842697,1366842696,1366842695,1527069207,1527069208,1527069209,1527069210,1527069211,1527069212,1527069213,1527069214,1527069215,1527069216,1527069217,1527069218,1527069219,1527069220,1527069221,1527069222,1527069223,1527069224,1527069225,1527069226,1527069227,1527069228,1527069229,1527069230,1527069231,1527069232,1527069233,1527069234,1527069235,1527069236,1527069237,1527069238,1527069239,1527069240,1527069241,1527069242,1527069243,1527069244,1527069245,1527069246,1527069247,1527069248,1527069249,1527069250,1527069251,1527069252,1527069253,1527069254,1527069255,1527069256,1527069257,1527069258,1527069259,1527069260,1527069261,1527069262,1527069263,1527069275,1527069276,1527069277,1527069278,1527069279,1527069280,1527069281,1366842694,1366842693,1366842692,1366842691,1527069463,1527069464,1527069465,1527069466,1527069467,1527069468,1527069469,1527069470,1527069471,1527069472,1527069473,1527069474,1527069475,1527069476,1527069477,1527069478,1527069479,1527069480,1527069481,1527069482,1527069483,1527069484,1527069485,1527069486,1527069487,1527069488,1527069489,1527069490,1527069491,1527069492,1527069493,1527069494,1527069495,1527069496,1527069497,1527069498,1527069499,1527069500,1527069501,1527069502,1527069503,1527069504,1527069505,1527069506,1527069507,1527069508,1527069509,1527069510,1527069511,1527069512,1527069513,1527069514,1527069515,1527069516,1527069517,1527069518,1527069519,1527069531,1527069532,1527069533,1527069534,1527069535,1527069536,1527069537,1366842690,1366842689,1366842688,1366842687,1366842686,1527069719,1527069720,1527069721,1527069722,1527069723,1527069724,1527069725,1527069726,1527069727,1527069728,1527069729,1527069730,1527069731,1527069732,1527069733,1527069734,1527069735,1527069736,1527069737,1527069738,1527069739,1527069740,1527069741,1527069742,1527069743,1527069744,1527069745,1527069746,1527069747,1527069748,1527069749,1527069750,1527069751,1527069752,1527069753,1527069754,1527069755,1527069756,1527069757,1527069758,1527069759,1527069760,1527069761,1527069762,1527069763,1527069764,1527069765,1527069766,1527069767,1527069768,1527069769,1527069770,1527069771,1527069772,1527069773,1527069774,1527069775,1527069787,1527069788,1527069789,1527069790,1527069791,1527069792,1527069793,1366842685,1366842684,1366842683,1366842682,1527069975,1527069976,1527069977,1527069978,1527069979,1527069980,1527069981,1527069982,1527069983,1527069984,1527069985,1527069986,1527069987,1527069988,1527069989,1527069990,1527069991,1527069992,1527069993,1527069994,1527069995,1527069996,1527069997,1527069998,1527069999,1527070000,1527070001,1527070002,1527070003,1527070004,1527070005,1527070006,1527070007,1527070008,1527070009,1527070010,1527070011,1527070012,1527070013,1527070014,1527070015,1527070016,1527070017,1527070018,1527070019,1527070020,1527070021,1527070022,1527070023,1527070024,1527070025,1527070026,1527070027,1527070028,1527070029,1527070030,1527070031,1527070043,1527070044,1527070045,1527070046,1527070047,1527070048,1527070049,1366842681,1366842680,1366842679,1366842678,1527070231,1527070232,1527070233,1527070234,1527070235,1527070236,1527070237,1527070238,1527070239,1527070240,1527070241,1527070242,1527070243,1527070244,1527070245,1527070246,1527070247,1527070248,1527070249,1527070250,1527070251,1527070252,1527070253,1527070254,1527070255,1527070256,1527070257,1527070258,1527070259,1527070260,1527070261,1527070262,1527070263,1527070264,1527070265,1527070266,1527070267,1527070268,1527070269,1527070270,1527070271,1527070272,1527070273,1527070274,1527070275,1527070276,1527070277,1527070278,1527070279,1527070280,1527070281,1527070282,1527070283,1527070284,1527070285,1527070286,1527070287,1527070299,1527070300,1527070301,1527070302,1527070303,1527070304,1527070305,1366842677,1366842676,1366842675,1366842674,1527070487,1527070488,1527070489,1527070490,1527070491,1527070492,1527070493,1527070494,1527070495,1527070496,1527070497,1527070498,1527070499,1527070500,1527070501,1527070502,1527070503,1527070504,1527070505,1527070506,1527070507,1527070508,1527070509,1527070510,1527070511,1527070512,1527070513,1527070514,1527070515,1527070516,1527070517,1527070518,1527070519,1527070520,1527070521,1527070522,1527070523,1527070524,1527070525,1527070526,1527070527,1527070528,1527070529,1527070530,1527070531,1527070532,1527070533,1527070534,1527070535,1527070536,1527070537,1527070538,1527070539,1527070540,1527070541,1527070542,1527070543,1527070544,1527070554,1527070555,1527070556,1527070557,1527070558,1527070559,1527070560,1527070561,1366842673,1366842672,1366842671,1366842670,1527070743,1527070744,1527070745,1527070746,1527070747,1527070748,1527070749,1527070750,1527070751,1527070752,1527070753,1527070754,1527070755,1527070756,1527070757,1527070758,1527070759,1527070760,1527070761,1527070762,1527070763,1527070764,1527070765,1527070766,1527070767,1527070768,1527070769,1527070770,1527070771,1527070772,1527070773,1527070774,1527070775,1527070776,1527070777,1527070778,1527070779,1527070780,1527070781,1527070782,1527070783,1527070784,1527070785,1527070786,1527070787,1527070788,1527070789,1527070790,1527070791,1527070792,1527070793,1527070794,1527070795,1527070796,1527070797,1527070798,1527070799,1527070800,1527070801,1527070802,1527070803,1527070804,1527070805,1527070806,1527070807,1527070808,1527070809,1527070810,1527070811,1527070812,1527070813,1527070814,1527070815,1527070816,1527070817,1366842669,1366842668,1366842667,1366842666,1366842665,1527070999,1527071000,1527071001,1527071002,1527071003,1527071004,1527071005,1527071006,1527071007,1527071008,1527071009,1527071010,1527071011,1527071012,1527071013,1527071014,1527071015,1527071016,1527071017,1527071018,1527071019,1527071020,1527071021,1527071022,1527071023,1527071024,1527071025,1527071026,1527071027,1527071028,1527071029,1527071030,1527071031,1527071032,1527071033,1527071034,1527071035,1527071036,1527071037,1527071038,1527071039,1527071040,1527071041,1527071042,1527071043,1527071044,1527071045,1527071046,1527071047,1527071048,1527071049,1527071050,1527071051,1527071052,1527071053,1527071054,1527071055,1527071056,1527071057,1527071058,1527071059,1527071060,1527071061,1527071062,1527071063,1527071064,1527071065,1527071066,1527071067,1527071068,1527071069,1527071070,1527071071,1527071072,1527071073,1366842664,1366842663,1366842662,1366842661,1527071255,1527071256,1527071257,1527071258,1527071259,1527071260,1527071261,1527071262,1527071263,1527071264,1527071265,1527071266,1527071267,1527071268,1527071269,1527071270,1527071271,1527071272,1527071273,1527071274,1527071275,1527071276,1527071277,1527071278,1527071279,1527071280,1527071281,1527071282,1527071283,1527071284,1527071285,1527071286,1527071287,1527071288,1527071289,1527071290,1527071291,1527071292,1527071293,1527071294,1527071295,1527071296,1527071297,1527071298,1527071299,1527071300,1527071301,1527071302,1527071303,1527071304,1527071305,1527071306,1527071307,1527071308,1527071309,1527071310,1527071311,1527071312,1527071313,1527071314,1527071315,1527071316,1527071317,1527071318,1527071319,1527071320,1527071321,1527071322,1527071323,1527071324,1527071325,1527071326,1527071327,1527071328,1527071329,1366842660,1366842659,1366842658,1366842657,1527071511,1527071512,1527071513,1527071514,1527071515,1527071516,1527071517,1527071518,1527071519,1527071520,1527071521,1527071522,1527071523,1527071524,1527071525,1527071526,1527071527,1527071528,1527071529,1527071530,1527071531,1527071532,1527071533,1527071534,1527071535,1527071536,1527071537,1527071538,1527071539,1527071540,1527071541,1527071542,1527071543,1527071544,1527071545,1527071546,1527071547,1527071548,1527071549,1527071550,1527071551,1527071552,1527071553,1527071554,1527071555,1527071556,1527071557,1527071558,1527071559,1527071560,1527071561,1527071562,1527071563,1527071564,1527071565,1527071566,1527071567,1527071568,1527071569,1527071570,1527071571,1527071572,1527071573,1527071574,1527071575,1527071576,1527071577,1527071578,1527071579,1527071580,1527071581,1527071582,1527071583,1527071584,1527071585,1366842656,1366842655,1366842654,1366842653,1527071767,1527071768,1527071769,1527071770,1527071771,1527071772,1527071773,1527071774,1527071775,1527071776,1527071777,1527071778,1527071779,1527071780,1527071781,1527071782,1527071783,1527071784,1527071785,1527071786,1527071787,1527071788,1527071789,1527071790,1527071791,1527071792,1527071793,1527071794,1527071795,1527071796,1527071797,1527071798,1527071799,1527071800,1527071801,1527071802,1527071803,1527071804,1527071805,1527071806,1527071807,1527071808,1527071809,1527071810,1527071811,1527071812,1527071813,1527071814,1527071815,1527071816,1527071817,1527071818,1527071819,1527071820,1527071821,1527071822,1527071823,1527071824,1527071825,1527071826,1527071827,1527071828,1527071829,1527071830,1527071831,1527071832,1527071833,1527071834,1527071835,1527071836,1527071837,1527071838,1527071839,1527071840,1527071841,1366842652,1366842651,1366842650,1366842649,1366842648,1527072023,1527072024,1527072025,1527072026,1527072027,1527072028,1527072029,1527072030,1527072031,1527072032,1527072033,1527072034,1527072035,1527072036,1527072037,1527072038,1527072039,1527072040,1527072041,1527072042,1527072043,1527072044,1527072045,1527072046,1527072047,1527072048,1527072049,1527072050,1527072051,1527072052,1527072053,1527072054,1527072055,1527072056,1527072057,1527072058,1527072059,1527072060,1527072061,1527072062,1527072063,1527072064,1527072065,1527072066,1527072067,1527072068,1527072069,1527072070,1527072071,1527072072,1527072073,1527072074,1527072075,1527072076,1527072077,1527072078,1527072079,1527072080,1527072081,1527072082,1527072083,1527072084,1527072085,1527072086,1527072087,1527072088,1527072089,1527072090,1527072091,1527072092,1527072093,1527072094,1527072095,1527072096,1527072097,1366842647,1366842646,1366842645,1366842644,1527072279,1527072280,1527072281,1527072282,1527072283,1527072284,1527072285,1527072286,1527072287,1527072288,1527072289,1527072290,1527072291,1527072292,1527072293,1527072294,1527072295,1527072296,1527072297,1527072298,1527072299,1527072300,1527072301,1527072302,1527072303,1527072304,1527072305,1527072306,1527072307,1527072308,1527072309,1527072310,1527072311,1527072312,1527072313,1527072314,1527072315,1527072316,1527072317,1527072318,1527072319,1527072320,1527072321,1527072322,1527072323,1527072324,1527072325,1527072326,1527072327,1527072328,1527072329,1527072330,1527072331,1527072332,1527072333,1527072334,1527072335,1527072336,1527072337,1527072338,1527072339,1527072340,1527072341,1527072342,1527072343,1527072344,1527072345,1527072346,1527072347,1527072348,1527072349,1527072350,1527072351,1527072352,1527072353,1366842643,1534614625,1534614624,1534614623,1527072535,1527072536,1527072537,1527072538,1527072539,1527072540,1527072541,1527072542,1527072543,1527072544,1527072545,1527072546,1527072547,1527072548,1527072549,1527072550,1527072551,1527072552,1527072553,1527072554,1527072555,1527072556,1527072557,1527072558,1527072559,1527072560,1527072561,1527072562,1527072563,1527072564,1527072565,1527072566,1527072567,1527072568,1527072569,1527072570,1527072571,1527072572,1527072573,1527072574,1527072575,1527072576,1527072577,1527072578,1527072579,1527072580,1527072581,1527072582,1527072583,1527072584,1527072585,1527072586,1527072587,1527072588,1527072589,1527072590,1527072591,1527072592,1527072593,1527072594,1527072595,1527072596,1527072597,1527072598,1527072599,1527072600,1527072601,1527072602,1527072603,1527072604,1527072605,1527072606,1527072607,1527072608,1527072609,1534614622,1534614621,1534614620,1534614619,1527072791,1527072792,1527072793,1527072794,1527072795,1527072796,1527072797,1527072798,1527072799,1527072800,1527072801,1527072802,1527072803,1527072804,1527072805,1527072806,1527072807,1527072808,1527072809,1527072810,1527072811,1527072812,1527072813,1527072814,1527072815,1527072816,1527072817,1527072818,1527072819,1527072820,1527072821,1527072822,1527072823,1527072824,1527072825,1527072826,1527072827,1527072828,1527072829,1527072830,1527072831,1527072832,1527072833,1527072834,1527072835,1527072836,1527072837,1527072838,1527072839,1527072840,1527072841,1527072842,1527072843,1527072844,1527072845,1527072846,1527072847,1527072848,1527072849,1527072850,1527072851,1527072852,1527072853,1527072854,1527072855,1527072856,1527072857,1527072858,1527072859,1527072860,1527072861,1527072862,1527072863,1527072864,1527072865,1534614618,1366842457,1366842456,1366842455,1527073047,1527073048,1527073049,1527073050,1527073051,1527073052,1527073053,1527073054,1527073055,1527073056,1527073057,1527073058,1527073059,1527073060,1527073061,1527073062,1527073063,1527073064,1527073065,1527073066,1527073067,1527073068,1527073069,1527073070,1527073071,1527073072,1527073073,1527073074,1527073075,1527073076,1527073077,1527073078,1527073079,1527073080,1527073081,1527073082,1527073083,1527073084,1527073085,1527073086,1527073087,1527073088,1527073089,1527073090,1527073091,1527073092,1527073093,1527073094,1527073095,1527073096,1527073097,1527073098,1527073099,1527073100,1527073101,1527073102,1527073103,1527073104,1527073105,1527073106,1527073107,1527073108,1527073109,1527073110,1527073111,1527073112,1527073113,1527073114,1527073115,1527073116,1527073117,1527073118,1527073119,1527073120,1527073121,1366842454,1366842453,1366842452,1366842451,1527073303,1527073304,1527073305,1527073306,1527073307,1527073308,1527073309,1527073310,1527073311,1527073312,1527073313,1527073314,1527073315,1527073316,1527073317,1527073318,1527073319,1527073320,1527073321,1527073322,1527073323,1527073324,1527073325,1527073326,1527073327,1527073328,1527073329,1527073330,1527073331,1527073332,1527073333,1527073334,1527073335,1527073336,1527073337,1527073338,1527073339,1527073340,1527073341,1527073342,1527073343,1527073344,1527073345,1527073346,1527073347,1527073348,1527073349,1527073350,1527073351,1527073352,1527073353,1527073354,1527073355,1527073356,1527073357,1527073358,1527073359,1527073360,1527073361,1527073362,1527073363,1527073364,1527073365,1527073366,1527073367,1527073368,1527073369,1527073370,1527073371,1527073372,1527073373,1527073374,1527073375,1527073376,1527073377,1366842450,1366842449,1366842448,1366842447,1527073559,1527073560,1527073561,1527073562,1527073563,1527073564,1527073565,1527073566,1527073567,1527073568,1527073569,1527073570,1527073571,1527073572,1527073573,1527073574,1527073575,1527073576,1527073577,1527073578,1527073579,1527073580,1527073581,1527073582,1527073583,1527073584,1527073585,1527073586,1527073587,1527073588,1527073589,1527073590,1527073591,1527073592,1527073593,1527073594,1527073595,1527073596,1527073597,1527073598,1527073599,1527073600,1527073601,1527073602,1527073603,1527073604,1527073605,1527073606,1527073607,1527073608,1527073609,1527073610,1527073611,1527073612,1527073613,1527073614,1527073615,1527073616,1527073617,1527073618,1527073619,1527073620,1527073621,1527073622,1527073623,1527073624,1527073625,1527073626,1527073627,1527073628,1527073629,1527073630,1527073631,1527073632,1527073633,1366842446,1366842445,1366842444,1366842443,1527073815,1527073816,1527073817,1527073818,1527073819,1527073820,1527073821,1527073822,1527073823,1527073824,1527073825,1527073826,1527073827,1527073828,1527073829,1527073830,1527073831,1527073832,1527073833,1527073834,1527073835,1527073836,1527073837,1527073838,1527073839,1527073840,1527073841,1527073842,1527073843,1527073844,1527073845,1527073846,1527073847,1527073848,1527073849,1527073850,1527073851,1527073852,1527073853,1527073854,1527073855,1527073856,1527073857,1527073858,1527073859,1527073860,1527073861,1527073862,1527073863,1527073864,1527073865,1527073866,1527073867,1527073868,1527073869,1527073870,1527073871,1527073872,1527073873,1527073874,1527073875,1527073876,1527073877,1527073878,1527073879,1527073880,1527073881,1527073882,1527073883,1527073884,1527073885,1527073886,1527073887,1527073888,1527073889,1366842442,1366842441,1366842440,1366842439,1527074071,1527074072,1527074073,1527074074,1527074075,1527074076,1527074077,1527074078,1527074079,1527074080,1527074081,1527074082,1527074083,1527074084,1527074085,1527074086,1527074087,1527074088,1527074089,1527074090,1527074091,1527074092,1527074093,1527074094,1527074095,1527074096,1527074097,1527074098,1527074099,1527074100,1527074101,1527074102,1527074103,1527074104,1527074105,1527074106,1527074107,1527074108,1527074109,1527074110,1527074111,1527074112,1527074113,1527074114,1527074115,1527074116,1527074117,1527074118,1527074119,1527074120,1527074121,1527074122,1527074123,1527074124,1527074125,1527074126,1527074127,1527074128,1527074129,1527074130,1527074131,1527074132,1527074133,1527074134,1527074135,1527074136,1527074137,1527074138,1527074139,1527074140,1527074141,1527074142,1527074143,1527074144,1527074145,1366842438,1366842437,1366842436,1366842435,1527074327,1527074328,1527074329,1527074330,1527074331,1527074332,1527074333,1527074334,1527074335,1527074336,1527074337,1527074338,1527074339,1527074340,1527074341,1527074342,1527074343,1527074344,1527074345,1527074346,1527074347,1527074348,1527074349,1527074350,1527074351,1527074352,1527074353,1527074354,1527074355,1527074356,1527074357,1527074358,1527074359,1527074360,1527074361,1527074362,1527074363,1527074364,1527074365,1527074366,1527074367,1527074368,1527074369,1527074370,1527074371,1527074372,1527074373,1527074374,1527074375,1527074376,1527074377,1527074378,1527074379,1527074380,1527074381,1527074382,1527074383,1527074384,1527074385,1527074386,1527074387,1527074388,1527074389,1527074390,1527074391,1527074392,1527074393,1527074394,1527074395,1527074396,1527074397,1527074398,1527074399,1527074400,1527074401,1366842434,1366842433,1366842432,1366842431,1527074583,1527074584,1527074585,1527074586,1527074587,1527074588,1527074589,1527074590,1527074591,1527074592,1527074593,1527074594,1527074595,1527074596,1527074597,1527074598,1527074599,1527074600,1527074601,1527074602,1527074603,1527074604,1527074605,1527074606,1527074607,1527074608,1527074609,1527074610,1527074611,1527074612,1527074613,1527074614,1527074615,1527074616,1527074617,1527074618,1527074619,1527074620,1527074621,1527074622,1527074623,1527074624,1527074625,1527074626,1527074627,1527074628,1527074629,1527074630,1527074631,1527074632,1527074633,1527074634,1527074635,1527074636,1527074637,1527074638,1527074639,1527074640,1527074641,1527074642,1527074643,1527074644,1527074645,1527074646,1527074647,1527074648,1527074649,1527074650,1527074651,1527074652,1527074653,1527074654,1527074655,1527074656,1527074657,1366842430,1366842429,1366842428,1366842427,1527074839,1527074840,1527074841,1527074842,1527074843,1527074844,1527074845,1527074846,1527074847,1527074848,1527074849,1527074850,1527074851,1527074852,1527074853,1527074854,1527074855,1527074856,1527074857,1527074858,1527074859,1527074860,1527074861,1527074862,1527074863,1527074864,1527074865,1527074866,1527074867,1527074868,1527074869,1527074870,1527074871,1527074872,1527074873,1527074874,1527074875,1527074876,1527074877,1527074878,1527074879,1527074880,1527074881,1527074882,1527074883,1527074884,1527074885,1527074886,1527074887,1527074888,1527074889,1527074890,1527074891,1527074892,1527074893,1527074894,1527074895,1527074896,1527074897,1527074898,1527074899,1527074900,1527074901,1527074902,1527074903,1527074904,1527074905,1527074906,1527074907,1527074908,1527074909,1527074910,1527074911,1527074912,1527074913,1366842426,1366842425,1366842424,1366842423,1527075095,1527075096,1527075097,1527075098,1527075099,1527075100,1527075101,1527075102,1527075103,1527075104,1527075105,1527075106,1527075107,1527075108,1527075109,1527075110,1527075111,1527075112,1527075113,1527075114,1527075115,1527075116,1527075117,1527075118,1527075119,1527075120,1527075121,1527075122,1527075123,1527075124,1527075125,1527075126,1527075127,1527075128,1527075129,1527075130,1527075131,1527075132,1527075133,1527075134,1527075135,1527075136,1527075137,1527075138,1527075139,1527075140,1527075141,1527075142,1527075143,1527075144,1527075145,1527075146,1527075147,1527075148,1527075149,1527075150,1527075151,1527075152,1527075153,1527075154,1527075155,1527075156,1527075157,1527075158,1527075159,1527075160,1527075161,1527075162,1527075163,1527075164,1527075165,1527075166,1527075167,1527075168,1527075169,1366842422,1366842421,1366842420,1366842419,1527075351,1527075352,1527075353,1527075354,1527075355,1527075356,1527075357,1527075358,1527075359,1527075360,1527075361,1527075362,1527075363,1527075364,1527075365,1527075366,1527075367,1527075368,1527075369,1527075370,1527075371,1527075372,1527075373,1527075374,1527075375,1527075376,1527075377,1527075378,1527075379,1527075380,1527075381,1527075382,1527075383,1527075384,1527075385,1527075386,1527075387,1527075388,1527075389,1527075390,1527075391,1527075392,1527075393,1527075394,1527075395,1527075396,1527075397,1527075398,1527075399,1527075400,1527075401,1527075402,1527075403,1527075404,1527075405,1527075406,1527075407,1527075408,1527075409,1527075410,1527075411,1527075412,1527075413,1527075414,1527075415,1527075416,1527075417,1527075418,1527075419,1527075420,1527075421,1527075422,1527075423,1527075424,1527075425,1366842418,1366842417,1366842416,1366842415,1527075607,1527075608,1527075609,1527075610,1527075611,1527075612,1527075613,1527075614,1527075615,1527075616,1527075617,1527075618,1527075619,1527075620,1527075621,1527075622,1527075623,1527075624,1527075625,1527075626,1527075627,1527075628,1527075629,1527075630,1527075631,1527075632,1527075633,1527075634,1527075635,1527075636,1527075637,1527075638,1527075639,1527075640,1527075641,1527075642,1527075643,1527075644,1527075645,1527075646,1527075647,1527075648,1527075649,1527075650,1527075651,1527075652,1527075653,1527075654,1527075655,1527075656,1527075657,1527075658,1527075659,1527075660,1527075661,1527075662,1527075663,1527075664,1527075665,1527075666,1527075667,1527075668,1527075669,1527075670,1527075671,1527075672,1527075673,1527075674,1527075675,1527075676,1527075677,1527075678,1527075679,1527075680,1527075681,1366842414,1366842413,1366842412,1366842411,1527075863,1527075864,1527075865,1527075866,1527075867,1527075868,1527075869,1527075870,1527075871,1527075872,1527075873,1527075874,1527075875,1527075876,1527075877,1527075878,1527075879,1527075880,1527075881,1527075882,1527075883,1527075884,1527075885,1527075886,1527075887,1527075888,1527075889,1527075890,1527075891,1527075892,1527075893,1527075894,1527075895,1527075896,1527075897,1527075898,1527075899,1527075900,1527075901,1527075902,1527075903,1527075904,1527075905,1527075906,1527075907,1527075908,1527075909,1527075910,1527075911,1527075912,1527075913,1527075914,1527075915,1527075916,1527075917,1527075918,1527075919,1527075920,1527075921,1527075922,1527075923,1527075924,1527075925,1527075926,1527075927,1527075928,1527075929,1527075930,1527075931,1527075932,1527075933,1527075934,1527075935,1527075936,1527075937,1366842410,1366842409,1366842408,1366842407,1527076119,1527076120,1527076121,1527076122,1527076123,1527076124,1527076125,1527076126,1527076127,1527076128,1527076129,1527076130,1527076131,1527076132,1527076133,1527076134,1527076135,1527076136,1527076137,1527076138,1527076139,1527076140,1527076141,1527076142,1527076143,1527076144,1527076145,1527076146,1527076147,1527076148,1527076149,1527076150,1527076151,1527076152,1527076153,1527076154,1527076155,1527076156,1527076157,1527076158,1527076159,1527076160,1527076161,1527076162,1527076163,1527076164,1527076165,1527076166,1527076167,1527076168,1527076169,1527076170,1527076171,1527076172,1527076173,1527076174,1527076175,1527076176,1527076177,1527076178,1527076179,1527076180,1527076181,1527076182,1527076183,1527076184,1527076185,1527076186,1527076187,1527076188,1527076189,1527076190,1527076191,1527076192,1527076193,1366842406,1366842405,1366842404,1366842403,1527076375,1527076376,1527076377,1527076378,1527076379,1527076380,1527076381,1527076382,1527076383,1527076384,1527076385,1527076386,1527076387,1527076388,1527076389,1527076390,1527076391,1527076392,1527076393,1527076394,1527076395,1527076396,1527076397,1527076398,1527076399,1527076400,1527076401,1527076402,1527076403,1527076404,1527076405,1527076406,1527076407,1527076408,1527076409,1527076410,1527076411,1527076412,1527076413,1527076414,1527076415,1527076416,1527076417,1527076418,1527076419,1527076420,1527076421,1527076422,1527076423,1527076424,1527076425,1527076426,1527076427,1527076428,1527076429,1527076430,1527076431,1527076432,1527076433,1527076434,1527076435,1527076436,1527076437,1527076438,1527076439,1527076440,1527076441,1527076442,1527076443,1527076444,1527076445,1527076446,1527076447,1527076448,1527076449,1366842402,1366842401,1366842400,1366842399,1527076631,1527076632,1527076633,1527076634,1527076635,1527076636,1527076637,1527076638,1527076639,1527076640,1527076641,1527076642,1527076643,1527076644,1527076645,1527076646,1527076647,1527076648,1527076649,1527076650,1527076651,1527076652,1527076653,1527076654,1527076655,1527076656,1527076657,1527076658,1527076659,1527076660,1527076661,1527076662,1527076663,1527076664,1527076665,1527076666,1527076667,1527076668,1527076669,1527076670,1527076671,1527076672,1527076673,1527076674,1527076675,1527076676,1527076677,1527076678,1527076679,1527076680,1527076681,1527076682,1527076683,1527076684,1527076685,1527076686,1527076687,1527076688,1527076689,1527076690,1527076691,1527076692,1527076693,1527076694,1527076695,1527076696,1527076697,1527076698,1527076699,1527076700,1527076701,1527076702,1527076703,1527076704,1527076705,1366842398,1366842397,1366842396,1366842395,1527076887,1527076888,1527076889,1527076890,1527076891,1527076892,1527076893,1527076894,1527076895,1527076896,1527076897,1527076898,1527076899,1527076900,1527076901,1527076902,1527076903,1527076904,1527076905,1527076906,1527076907,1527076908,1527076909,1527076910,1527076911,1527076912,1527076913,1527076914,1527076915,1527076916,1527076917,1527076918,1527076919,1527076920,1527076921,1527076922,1527076923,1527076924,1527076925,1527076926,1527076927,1527076928,1527076929,1527076930,1527076931,1527076932,1527076933,1527076934,1527076935,1527076936,1527076937,1527076938,1527076939,1527076940,1527076941,1527076942,1527076943,1527076944,1527076945,1527076946,1527076947,1527076948,1527076949,1527076950,1527076951,1527076952,1527076953,1527076954,1527076955,1527076956,1527076957,1527076958,1527076959,1527076960,1527076961,1366842394,1366842393,1366842392,1366842391,1527077143,1527077144,1527077145,1527077146,1527077147,1527077148,1527077149,1527077150,1527077151,1527077152,1527077153,1527077154,1527077155,1527077156,1527077157,1527077158,1527077159,1527077160,1527077161,1527077162,1527077163,1527077164,1527077165,1527077166,1527077167,1527077168,1527077169,1527077170,1527077171,1527077172,1527077173,1527077183,1527077184,1527077185,1527077186,1527077187,1527077188,1527077189,1527077190,1527077191,1527077192,1527077193,1527077194,1527077195,1527077196,1527077197,1527077198,1527077199,1527077200,1527077201,1527077202,1527077203,1527077204,1527077205,1527077206,1527077207,1527077208,1527077209,1527077210,1527077211,1527077212,1527077213,1527077214,1527077215,1527077216,1527077217,1366842390,1366842389,1366842388,1366842387,1527077399,1527077400,1527077401,1527077402,1527077403,1527077404,1527077405,1527077406,1527077407,1527077408,1527077409,1527077410,1527077411,1527077412,1527077413,1527077414,1527077415,1527077416,1527077417,1527077418,1527077419,1527077420,1527077421,1527077422,1527077423,1527077424,1527077425,1527077426,1527077427,1527077428,1527077440,1527077441,1527077442,1527077443,1527077444,1527077445,1527077446,1527077447,1527077448,1527077449,1527077450,1527077451,1527077452,1527077453,1527077454,1527077455,1527077456,1527077457,1527077458,1527077459,1527077460,1527077461,1527077462,1527077463,1527077464,1527077465,1527077466,1527077467,1527077468,1527077469,1527077470,1527077471,1527077472,1527077473,1534614369,1534614368,1534614367,1534614366,1527077655,1527077656,1527077657,1527077658,1527077659,1527077660,1527077661,1527077662,1527077663,1527077664,1527077665,1527077666,1527077667,1527077668,1527077669,1527077670,1527077671,1527077672,1527077673,1527077674,1527077675,1527077676,1527077677,1527077678,1527077679,1527077680,1527077681,1527077682,1527077683,1527077684,1527077696,1527077697,1527077698,1527077699,1527077700,1527077701,1527077702,1527077703,1527077704,1527077705,1527077706,1527077707,1527077708,1527077709,1527077710,1527077711,1527077712,1527077713,1527077714,1527077715,1527077716,1527077717,1527077718,1527077719,1527077720,1527077721,1527077722,1527077723,1527077724,1527077725,1527077726,1527077727,1527077728,1527077729,1534614365,1534614364,1534614363,1534614362,1527077911,1527077912,1527077913,1527077914,1527077915,1527077916,1527077917,1527077918,1527077919,1527077920,1527077921,1527077922,1527077923,1527077924,1527077925,1527077926,1527077927,1527077928,1527077929,1527077930,1527077931,1527077932,1527077933,1527077934,1527077935,1527077936,1527077937,1527077938,1527077939,1527077940,1527077952,1527077953,1527077954,1527077955,1527077956,1527077957,1527077958,1527077959,1527077960,1527077961,1527077962,1527077963,1527077964,1527077965,1527077966,1527077967,1527077968,1527077969,1527077970,1527077971,1527077972,1527077973,1527077974,1527077975,1527077976,1527077977,1527077978,1527077979,1527077980,1527077981,1527077982,1527077983,1527077984,1527077985,1366842201,1366842200,1366842199,1366842198,1527078167,1527078168,1527078169,1527078170,1527078171,1527078172,1527078173,1527078174,1527078175,1527078176,1527078177,1527078178,1527078179,1527078180,1527078181,1527078182,1527078183,1527078184,1527078185,1527078186,1527078187,1527078188,1527078189,1527078190,1527078191,1527078192,1527078193,1527078194,1527078195,1527078196,1527078208,1527078209,1527078210,1527078211,1527078212,1527078213,1527078214,1527078215,1527078216,1527078217,1527078218,1527078219,1527078220,1527078221,1527078222,1527078223,1527078224,1527078225,1527078226,1527078227,1527078228,1527078229,1527078230,1527078231,1527078232,1527078233,1527078234,1527078235,1527078236,1527078237,1527078238,1527078239,1527078240,1527078241,1366842197,1366842196,1366842195,1366842194,1527078423,1527078424,1527078425,1527078426,1527078427,1527078428,1527078429,1527078430,1527078431,1527078432,1527078433,1527078434,1527078435,1527078436,1527078437,1527078438,1527078439,1527078440,1527078441,1527078442,1527078443,1527078444,1527078445,1527078446,1527078447,1527078448,1527078449,1527078450,1527078451,1527078452,1527078464,1527078465,1527078466,1527078467,1527078468,1527078469,1527078470,1527078471,1527078472,1527078473,1527078474,1527078475,1527078476,1527078477,1527078478,1527078479,1527078480,1527078481,1527078482,1527078483,1527078484,1527078485,1527078486,1527078487,1527078488,1527078489,1527078490,1527078491,1527078492,1527078493,1527078494,1527078495,1527078496,1527078497,1366842193,1366842192,1366842191,1366842190,1527078679,1527078680,1527078681,1527078682,1527078683,1527078684,1527078685,1527078686,1527078687,1527078688,1527078689,1527078690,1527078691,1527078692,1527078693,1527078694,1527078695,1527078696,1527078697,1527078698,1527078699,1527078700,1527078701,1527078702,1527078703,1527078704,1527078705,1527078706,1527078707,1527078708,1527078720,1527078721,1527078722,1527078723,1527078724,1527078725,1527078726,1527078727,1527078728,1527078729,1527078730,1527078731,1527078732,1527078733,1527078734,1527078735,1527078736,1527078737,1527078738,1527078739,1527078740,1527078741,1527078742,1527078743,1527078744,1527078745,1527078746,1527078747,1527078748,1527078749,1527078750,1527078751,1527078752,1527078753,1366842189,1366842188,1366842187,1366842186,1527078935,1527078936,1527078937,1527078938,1527078939,1527078940,1527078941,1527078942,1527078943,1527078944,1527078945,1527078946,1527078947,1527078948,1527078949,1527078950,1527078951,1527078952,1527078953,1527078954,1527078955,1527078956,1527078957,1527078958,1527078959,1527078960,1527078961,1527078962,1527078963,1527078964,1527078976,1527078977,1527078978,1527078979,1527078980,1527078981,1527078982,1527078983,1527078984,1527078985,1527078986,1527078987,1527078988,1527078989,1527078990,1527078991,1527078992,1527078993,1527078994,1527078995,1527078996,1527078997,1527078998,1527078999,1527079000,1527079001,1527079002,1527079003,1527079004,1527079005,1527079006,1527079007,1527079008,1527079009,1366842185,1366842184,1366842183,1366842182,1527079191,1527079192,1527079193,1527079194,1527079195,1527079196,1527079197,1527079198,1527079199,1527079200,1527079201,1527079202,1527079203,1527079204,1527079205,1527079206,1527079207,1527079208,1527079209,1527079210,1527079211,1527079212,1527079213,1527079214,1527079215,1527079216,1527079217,1527079218,1527079219,1527079220,1527079232,1527079233,1527079234,1527079235,1527079236,1527079237,1527079238,1527079239,1527079240,1527079241,1527079242,1527079243,1527079244,1527079245,1527079246,1527079247,1527079248,1527079249,1527079250,1527079251,1527079252,1527079253,1527079254,1527079255,1527079256,1527079257,1527079258,1527079259,1527079260,1527079261,1527079262,1527079263,1527079264,1527079265,1527124527,1527124528,1527124529,1527124530,1527124531,1527124536,1527124537,1527124538,1527124539,1527124540,1527124545,1527124546,1527124547,1527124548,1527124549,1366842181,1366842180,1366842179,1366842178,1527124759,1527124760,1527124761,1527124762,1527124763,1527124764,1527124765,1527124766,1527124767,1527124768,1527124769,1527124770,1527124771,1527124772,1527124773,1527124774,1527124775,1527124776,1527124777,1527124778,1527124779,1527124780,1527124781,1527124782,1527124783,1527124784,1527124785,1527124786,1527124787,1527124788,1527124789,1527124790,1527124791,1527124792,1527124793,1527124794,1527124795,1527124796,1527124797,1527124798,1527124799,1527124800,1527124801,1527124802,1527124803,1527124804,1527124805,1527124806,1527124807,1527124808,1527124809,1527124810,1527124811,1527124812,1527124813,1527124814,1527124815,1527124816,1527124817,1527124818,1527124819,1527124820,1527124821,1527124822,1527124823,1527124824,1527124825,1527124826,1527124827,1527124828,1527124829,1527124830,1527124831,1527124832,1527124833,1366842177,1366842176,1366842175,1366842174,1527125015,1527125016,1527125017,1527125018,1527125019,1527125020,1527125021,1527125022,1527125023,1527125024,1527125025,1527125026,1527125027,1527125028,1527125029,1527125030,1527125031,1527125032,1527125033,1527125034,1527125035,1527125036,1527125037,1527125038,1527125039,1527125040,1527125041,1527125042,1527125043,1527125044,1527125045,1527125046,1527125047,1527125048,1527125049,1527125050,1527125051,1527125052,1527125053,1527125054,1527125055,1527125056,1527125057,1527125058,1527125059,1527125060,1527125061,1527125062,1527125063,1527125064,1527125065,1527125066,1527125067,1527125068,1527125069,1527125070,1527125071,1527125072,1527125073,1527125074,1527125075,1527125076,1527125077,1527125078,1527125079,1527125080,1527125081,1527125082,1527125083,1527125084,1527125085,1527125086,1527125087,1527125088,1527125089,1366842173,1366842172,1366842171,1366842170,1527125271,1527125272,1527125273,1527125274,1527125275,1527125276,1527125277,1527125278,1527125279,1527125280,1527125281,1527125282,1527125283,1527125284,1527125285,1527125286,1527125287,1527125288,1527125289,1527125290,1527125291,1527125292,1527125293,1527125294,1527125295,1527125296,1527125297,1527125298,1527125299,1527125300,1527125301,1527125302,1527125303,1527125304,1527125305,1527125306,1527125307,1527125308,1527125309,1527125310,1527125311,1527125312,1527125313,1527125314,1527125315,1527125316,1527125317,1527125318,1527125319,1527125320,1527125321,1527125322,1527125323,1527125324,1527125325,1527125326,1527125327,1527125328,1527125329,1527125330,1527125331,1527125332,1527125333,1527125334,1527125335,1527125336,1527125337,1527125338,1527125339,1527125340,1527125341,1527125342,1527125343,1527125344,1527125345,1366842169,1366842168,1366842167,1366842166,1527125527,1527125528,1527125529,1527125530,1527125531,1527125532,1527125533,1527125534,1527125535,1527125536,1527125537,1527125538,1527125539,1527125540,1527125541,1527125542,1527125543,1527125544,1527125545,1527125546,1527125547,1527125548,1527125549,1527125550,1527125551,1527125552,1527125553,1527125554,1527125555,1527125556,1527125557,1527125558,1527125559,1527125560,1527125561,1527125562,1527125563,1527125564,1527125565,1527125566,1527125567,1527125568,1527125569,1527125570,1527125571,1527125572,1527125573,1527125574,1527125575,1527125576,1527125577,1527125578,1527125579,1527125580,1527125581,1527125582,1527125583,1527125584,1527125585,1527125586,1527125587,1527125588,1527125589,1527125590,1527125591,1527125592,1527125593,1527125594,1527125595,1527125596,1527125597,1527125598,1527125599,1527125600,1527125601,1366842165,1366842164,1366842163,1366842162,1527125783,1527125784,1527125785,1527125786,1527125787,1527125788,1527125789,1527125790,1527125791,1527125792,1527125793,1527125794,1527125795,1527125796,1527125797,1527125798,1527125799,1527125800,1527125801,1527125802,1527125803,1527125804,1527125805,1527125806,1527125807,1527125808,1527125809,1527125810,1527125811,1527125812,1527125813,1527125814,1527125815,1527125816,1527125817,1527125818,1527125819,1527125820,1527125821,1527125822,1527125823,1527125824,1527125825,1527125826,1527125827,1527125828,1527125829,1527125830,1527125831,1527125832,1527125833,1527125834,1527125835,1527125836,1527125837,1527125838,1527125839,1527125840,1527125841,1527125842,1527125843,1527125844,1527125845,1527125846,1527125847,1527125848,1527125849,1527125850,1527125851,1527125852,1527125853,1527125854,1527125855,1527125856,1527125857,1366842161,1366842160,1366842159,1366842158,1527126039,1527126040,1527126041,1527126042,1527126043,1527126044,1527126045,1527126046,1527126047,1527126048,1527126049,1527126050,1527126051,1527126052,1527126053,1527126054,1527126055,1527126056,1527126057,1527126058,1527126059,1527126060,1527126061,1527126062,1527126063,1527126064,1527126065,1527126066,1527126067,1527126068,1527126069,1527126070,1527126071,1527126072,1527126073,1527126074,1527126075,1527126076,1527126077,1527126078,1527126079,1527126080,1527126081,1527126082,1527126083,1527126084,1527126085,1527126086,1527126087,1527126088,1527126089,1527126090,1527126091,1527126092,1527126093,1527126094,1527126095,1527126096,1527126097,1527126098,1527126099,1527126100,1527126101,1527126102,1527126103,1527126104,1527126105,1527126106,1527126107,1527126108,1527126109,1527126110,1527126111,1527126112,1527126113,1366842157,1366842156,1366842155,1366842154,1527126295,1527126296,1527126297,1527126298,1527126299,1527126300,1527126301,1527126302,1527126303,1527126304,1527126305,1527126306,1527126307,1527126308,1527126309,1527126310,1527126311,1527126312,1527126313,1527126314,1527126315,1527126316,1527126317,1527126318,1527126319,1527126320,1527126321,1527126322,1527126323,1527126324,1527126325,1527126326,1527126327,1527126328,1527126329,1527126330,1527126331,1527126332,1527126333,1527126334,1527126335,1527126336,1527126337,1527126338,1527126339,1527126340,1527126341,1527126342,1527126343,1527126344,1527126345,1527126346,1527126347,1527126348,1527126349,1527126350,1527126351,1527126352,1527126353,1527126354,1527126355,1527126356,1527126357,1527126358,1527126359,1527126360,1527126361,1527126362,1527126363,1527126364,1527126365,1527126366,1527126367,1527126368,1527126369,1366842153,1366842152,1366842151,1366842150,1527126551,1527126552,1527126553,1527126554,1527126555,1527126556,1527126557,1527126558,1527126559,1527126560,1527126561,1527126562,1527126563,1527126564,1527126565,1527126566,1527126567,1527126568,1527126569,1527126570,1527126571,1527126572,1527126573,1527126574,1527126575,1527126576,1527126577,1527126578,1527126579,1527126580,1527126581,1527126582,1527126583,1527126584,1527126585,1527126586,1527126587,1527126588,1527126589,1527126590,1527126591,1527126592,1527126593,1527126594,1527126595,1527126596,1527126597,1527126598,1527126599,1527126600,1527126601,1527126602,1527126603,1527126604,1527126605,1527126606,1527126607,1527126608,1527126609,1527126610,1527126611,1527126612,1527126613,1527126614,1527126615,1527126616,1527126617,1527126618,1527126619,1527126620,1527126621,1527126622,1527126623,1527126624,1527126625,1366842149,1366842148,1366842147,1366842146,1527126807,1527126808,1527126809,1527126810,1527126811,1527126812,1527126813,1527126814,1527126815,1527126816,1527126817,1527126818,1527126819,1527126820,1527126821,1527126822,1527126823,1527126824,1527126825,1527126826,1527126827,1527126828,1527126829,1527126830,1527126831,1527126832,1527126833,1527126834,1527126835,1527126836,1527126837,1527126838,1527126839,1527126840,1527126841,1527126842,1527126843,1527126844,1527126845,1527126846,1527126847,1527126848,1527126849,1527126850,1527126851,1527126852,1527126853,1527126854,1527126855,1527126856,1527126857,1527126858,1527126859,1527126860,1527126861,1527126862,1527126863,1527126864,1527126865,1527126866,1527126867,1527126868,1527126869,1527126870,1527126871,1527126872,1527126873,1527126874,1527126875,1527126876,1527126877,1527126878,1527126879,1527126880,1527126881,1366842145,1366842144,1366842143,1366842142,1527127063,1527127064,1527127065,1527127066,1527127067,1527127068,1527127069,1527127070,1527127071,1527127072,1527127073,1527127074,1527127075,1527127076,1527127077,1527127078,1527127079,1527127080,1527127081,1527127082,1527127083,1527127084,1527127085,1527127086,1527127087,1527127088,1527127089,1527127090,1527127091,1527127092,1527127093,1527127094,1527127095,1527127096,1527127097,1527127098,1527127099,1527127100,1527127101,1527127102,1527127103,1527127104,1527127105,1527127106,1527127107,1527127108,1527127109,1527127110,1527127111,1527127112,1527127113,1527127114,1527127115,1527127116,1527127117,1527127118,1527127119,1527127120,1527127121,1527127122,1527127123,1527127124,1527127125,1527127126,1527127127,1527127128,1527127129,1527127130,1527127131,1527127132,1527127133,1527127134,1527127135,1527127136,1527127137,1366842141,1366842140,1366842139,1366842138,1527127319,1527127320,1527127321,1527127322,1527127323,1527127324,1527127325,1527127326,1527127327,1527127328,1527127329,1527127330,1527127331,1527127332,1527127333,1527127334,1527127335,1527127336,1527127337,1527127338,1527127339,1527127340,1527127341,1527127342,1527127343,1527127344,1527127345,1527127346,1527127347,1527127348,1527127349,1527127350,1527127351,1527127352,1527127353,1527127354,1527127355,1527127356,1527127357,1527127358,1527127359,1527127360,1527127361,1527127362,1527127363,1527127364,1527127365,1527127366,1527127367,1527127368,1527127369,1527127370,1527127371,1527127372,1527127373,1527127374,1527127375,1527127376,1527127377,1527127378,1527127379,1527127380,1527127381,1527127382,1527127383,1527127384,1527127385,1527127386,1527127387,1527127388,1527127389,1527127390,1527127391,1527127392,1527127393,1366842137,1366842136,1366842135,1366842134,1527127575,1527127576,1527127577,1527127578,1527127579,1527127580,1527127581,1527127582,1527127583,1527127584,1527127585,1527127586,1527127587,1527127588,1527127589,1527127590,1527127591,1527127592,1527127593,1527127594,1527127595,1527127596,1527127597,1527127598,1527127599,1527127600,1527127601,1527127602,1527127603,1527127604,1527127605,1527127606,1527127607,1527127608,1527127609,1527127610,1527127611,1527127612,1527127613,1527127614,1527127615,1527127616,1527127617,1527127618,1527127619,1527127620,1527127621,1527127622,1527127623,1527127624,1527127625,1527127626,1527127627,1527127628,1527127629,1527127630,1527127631,1527127632,1527127633,1527127634,1527127635,1527127636,1527127637,1527127638,1527127639,1527127640,1527127641,1527127642,1527127643,1527127644,1527127645,1527127646,1527127647,1527127648,1527127649,1366842133,1366842132,1366842131,1534614113,1527127831,1527127832,1527127833,1527127834,1527127835,1527127836,1527127837,1527127838,1527127839,1527127840,1527127841,1527127842,1527127843,1527127844,1527127845,1527127846,1527127847,1527127848,1527127849,1527127850,1527127851,1527127852,1527127853,1527127854,1527127855,1527127856,1527127857,1527127858,1527127859,1527127860,1527127861,1527127862,1527127863,1527127864,1527127865,1527127866,1527127867,1527127868,1527127869,1527127870,1527127871,1527127872,1527127873,1527127874,1527127875,1527127876,1527127877,1527127878,1527127879,1527127880,1527127881,1527127882,1527127883,1527127884,1527127885,1527127886,1527127887,1527127888,1527127889,1527127890,1527127891,1527127892,1527127893,1527127894,1527127895,1527127896,1527127897,1527127898,1527127899,1527127900,1527127901,1527127902,1527127903,1527127904,1527127905,1534614112,1534614111,1534614110,1534614109,1527128087,1527128088,1527128089,1527128090,1527128091,1527128092,1527128093,1527128094,1527128095,1527128096,1527128097,1527128098,1527128099,1527128100,1527128101,1527128102,1527128103,1527128104,1527128105,1527128106,1527128107,1527128108,1527128109,1527128110,1527128111,1527128112,1527128113,1527128114,1527128115,1527128116,1527128117,1527128118,1527128119,1527128120,1527128121,1527128122,1527128123,1527128124,1527128125,1527128126,1527128127,1527128128,1527128129,1527128130,1527128131,1527128132,1527128133,1527128134,1527128135,1527128136,1527128137,1527128138,1527128139,1527128140,1527128141,1527128142,1527128143,1527128144,1527128145,1527128146,1527128147,1527128148,1527128149,1527128150,1527128151,1527128152,1527128153,1527128154,1527128155,1527128156,1527128157,1527128158,1527128159,1527128160,1527128161,1534614108,1534614107,1534614106,1366841697,1527128343,1527128344,1527128345,1527128346,1527128347,1527128348,1527128349,1527128350,1527128351,1527128352,1527128353,1527128354,1527128355,1527128356,1527128357,1527128358,1527128359,1527128360,1527128361,1527128362,1527128363,1527128364,1527128365,1527128366,1527128367,1527128368,1527128369,1527128370,1527128371,1527128372,1527128373,1527128374,1527128375,1527128376,1527128377,1527128378,1527128379,1527128380,1527128381,1527128382,1527128383,1527128384,1527128385,1527128386,1527128387,1527128388,1527128389,1527128390,1527128391,1527128392,1527128393,1527128394,1527128395,1527128396,1527128397,1527128398,1527128399,1527128400,1527128401,1527128402,1527128403,1527128404,1527128405,1527128406,1527128407,1527128408,1527128409,1527128410,1527128411,1527128412,1527128413,1527128414,1527128415,1527128416,1527128417,1366841696,1366841695,1366841694,1366841693,1527128599,1527128600,1527128601,1527128602,1527128603,1527128604,1527128605,1527128606,1527128607,1527128608,1527128609,1527128610,1527128611,1527128612,1527128613,1527128614,1527128615,1527128616,1527128617,1527128618,1527128619,1527128620,1527128621,1527128622,1527128623,1527128624,1527128625,1527128626,1527128627,1527128628,1527128629,1527128630,1527128631,1527128632,1527128633,1527128634,1527128635,1527128636,1527128637,1527128638,1527128639,1527128640,1527128641,1527128642,1527128643,1527128644,1527128645,1527128646,1527128647,1527128648,1527128649,1527128650,1527128651,1527128652,1527128653,1527128654,1527128655,1527128656,1527128657,1527128658,1527128659,1527128660,1527128661,1527128662,1527128663,1527128664,1527128665,1527128666,1527128667,1527128668,1527128669,1527128670,1527128671,1527128672,1527128673,1366841692,1366841691,1366841441,1366841440,1527128855,1527128856,1527128857,1527128858,1527128859,1527128860,1527128861,1527128862,1527128863,1527128864,1527128865,1527128866,1527128867,1527128868,1527128869,1527128870,1527128871,1527128872,1527128873,1527128874,1527128875,1527128876,1527128877,1527128878,1527128879,1527128880,1527128881,1527128882,1527128883,1527128884,1527128885,1527128886,1527128887,1527128888,1527128889,1527128890,1527128891,1527128892,1527128893,1527128894,1527128895,1527128896,1527128897,1527128898,1527128899,1527128900,1527128901,1527128902,1527128903,1527128904,1527128905,1527128906,1527128907,1527128908,1527128909,1527128910,1527128911,1527128912,1527128913,1527128914,1527128915,1527128916,1527128917,1527128918,1527128919,1527128920,1527128921,1527128922,1527128923,1527128924,1527128925,1527128926,1527128927,1527128928,1527128929,1366841439,1366841438,1366841437,1366841436,1527129111,1527129112,1527129113,1527129114,1527129115,1527129116,1527129117,1527129118,1527129119,1527129120,1527129121,1527129122,1527129123,1527129124,1527129125,1527129126,1527129127,1527129128,1527129129,1527129130,1527129131,1527129132,1527129133,1527129134,1527129135,1527129136,1527129137,1527129138,1527129139,1527129140,1527129141,1527129142,1527129143,1527129144,1527129145,1527129146,1527129147,1527129148,1527129149,1527129150,1527129151,1527129152,1527129153,1527129154,1527129155,1527129156,1527129157,1527129158,1527129159,1527129160,1527129161,1527129162,1527129163,1527129164,1527129165,1527129166,1527129167,1527129168,1527129169,1527129170,1527129171,1527129172,1527129173,1527129174,1527129175,1527129176,1527129177,1527129178,1527129179,1527129180,1527129181,1527129182,1527129183,1527129184,1527129185,1366841435,1366841185,1366841184,1366841183,1527129367,1527129368,1527129369,1527129370,1527129371,1527129372,1527129373,1527129374,1527129375,1527129376,1527129377,1527129378,1527129379,1527129380,1527129381,1527129382,1527129383,1527129384,1527129385,1527129386,1527129387,1527129388,1527129389,1527129390,1527129391,1527129392,1527129393,1527129394,1527129395,1527129396,1527129397,1527129398,1527129399,1527129400,1527129401,1527129402,1527129403,1527129404,1527129405,1527129406,1527129407,1527129408,1527129409,1527129410,1527129411,1527129412,1527129413,1527129414,1527129415,1527129416,1527129417,1527129418,1527129419,1527129420,1527129421,1527129422,1527129423,1527129424,1527129425,1527129426,1527129427,1527129428,1527129429,1527129430,1527129431,1527129432,1527129433,1527129434,1527129435,1527129436,1527129437,1527129438,1527129439,1527129440,1527129441,1366841182,1366841181,1366841180,1366841179,1527129623,1527129624,1527129625,1527129626,1527129627,1527129628,1527129629,1527129630,1527129631,1527129632,1527129633,1527129634,1527129635,1527129636,1527129637,1527129638,1527129639,1527129640,1527129641,1527129642,1527129643,1527129644,1527129645,1527129646,1527129647,1527129648,1527129649,1527129650,1527129651,1527129652,1527129653,1527129654,1527129655,1527129656,1527129657,1527129658,1527129659,1527129660,1527129661,1527129662,1527129663,1527129664,1527129665,1527129666,1527129667,1527129668,1527129669,1527129670,1527129671,1527129672,1527129673,1527129674,1527129675,1527129676,1527129677,1527129678,1527129679,1527129680,1527129681,1527129682,1527129683,1527129684,1527129685,1527129686,1527129687,1527129688,1527129689,1527129690,1527129691,1527129692,1527129693,1527129694,1527129695,1527129696,1527129697,1366840929,1366840928,1366840927,1366840926,1527129879,1527129880,1527129881,1527129882,1527129883,1527129884,1527129885,1527129886,1527129887,1527129888,1527129889,1527129890,1527129891,1527129892,1527129893,1527129894,1527129895,1527129896,1527129897,1527129898,1527129899,1527129900,1527129901,1527129902,1527129903,1527129904,1527129905,1527129906,1527129907,1527129908,1527129909,1527129910,1527129911,1527129912,1527129913,1527129914,1527129915,1527129916,1527129917,1527129918,1527129919,1527129920,1527129921,1527129922,1527129923,1527129924,1527129925,1527129926,1527129927,1527129928,1527129929,1527129930,1527129931,1527129932,1527129933,1527129934,1527129935,1527129936,1527129937,1527129938,1527129939,1527129940,1527129941,1527129942,1527129943,1527129944,1527129945,1527129946,1527129947,1527129948,1527129949,1527129950,1527129951,1527129952,1527129953,1366840925,1366840924,1366840923,1366840673,1527130135,1527130136,1527130137,1527130138,1527130139,1527130140,1527130141,1527130142,1527130143,1527130144,1527130145,1527130146,1527130147,1527130148,1527130149,1527130150,1527130151,1527130152,1527130153,1527130154,1527130155,1527130156,1527130157,1527130158,1527130159,1527130160,1527130161,1527130162,1527130163,1527130164,1527130165,1527130166,1527130167,1527130168,1527130169,1527130170,1527130171,1527130172,1527130173,1527130174,1527130175,1527130176,1527130177,1527130178,1527130179,1527130180,1527130181,1527130182,1527130183,1527130184,1527130185,1527130186,1527130187,1527130188,1527130189,1527130190,1527130191,1527130192,1527130193,1527130194,1527130195,1527130196,1527130197,1527130198,1527130199,1527130200,1527130201,1527130202,1527130203,1527130204,1527130205,1527130206,1527130207,1527130208,1527130209,1366840672,1366840671,1366840670,1366840669,1527130391,1527130392,1527130393,1527130394,1527130395,1527130396,1527130397,1527130398,1527130399,1527130400,1527130401,1527130402,1527130403,1527130404,1527130405,1527130406,1527130407,1527130408,1527130409,1527130410,1527130411,1527130412,1527130413,1527130414,1527130415,1527130416,1527130417,1527130418,1527130419,1527130420,1527130421,1527130422,1527130423,1527130424,1527130425,1527130426,1527130427,1527130428,1527130429,1527130430,1527130431,1527130432,1527130433,1527130434,1527130435,1527130436,1527130437,1527130438,1527130439,1527130440,1527130441,1527130442,1527130443,1527130444,1527130445,1527130446,1527130447,1527130448,1527130449,1527130450,1527130451,1527130452,1527130453,1527130454,1527130455,1527130456,1527130457,1527130458,1527130459,1527130460,1527130461,1527130462,1527130463,1527130464,1527130465,1366840668,1366840667,1366840417,1366840416,1527130647,1527130648,1527130649,1527130650,1527130651,1527130652,1527130653,1527130654,1527130655,1527130656,1527130657,1527130658,1527130659,1527130660,1527130661,1527130662,1527130663,1527130664,1527130665,1527130666,1527130667,1527130668,1527130669,1527130670,1527130671,1527130672,1527130673,1527130674,1527130675,1527130676,1527130677,1527130678,1527130679,1527130680,1527130681,1527130682,1527130683,1527130684,1527130685,1527130686,1527130687,1527130688,1527130689,1527130690,1527130691,1527130692,1527130693,1527130694,1527130695,1527130696,1527130697,1527130698,1527130699,1527130700,1527130701,1527130702,1527130703,1527130704,1527130705,1527130706,1527130707,1527130708,1527130709,1527130710,1527130711,1527130712,1527130713,1527130714,1527130715,1527130716,1527130717,1527130718,1527130719,1527130720,1527130721,1366840415,1366840414,1366840413,1366840412,1527130903,1527130904,1527130905,1527130906,1527130907,1527130908,1527130909,1527130910,1527130911,1527130912,1527130913,1527130914,1527130915,1527130916,1527130917,1527130918,1527130919,1527130920,1527130921,1527130922,1527130923,1527130924,1527130925,1527130926,1527130927,1527130928,1527130929,1527130930,1527130931,1527130932,1527130933,1527130934,1527130935,1527130936,1527130937,1527130938,1527130939,1527130940,1527130941,1527130942,1527130943,1527130944,1527130945,1527130946,1527130947,1527130948,1527130949,1527130950,1527130951,1527130952,1527130953,1527130954,1527130955,1527130956,1527130957,1527130958,1527130959,1527130960,1527130961,1527130962,1527130963,1527130964,1527130965,1527130966,1527130967,1527130968,1527130969,1527130970,1527130971,1527130972,1527130973,1527130974,1527130975,1527130976,1527130977,1366840411,1366840161,1366840160,1366840159,1527131159,1527131160,1527131161,1527131162,1527131163,1527131164,1527131165,1527131166,1527131167,1527131168,1527131169,1527131170,1527131171,1527131172,1527131173,1527131174,1527131175,1527131176,1527131177,1527131178,1527131179,1527131180,1527131181,1527131182,1527131183,1527131184,1527131185,1527131186,1527131187,1527131188,1527131189,1527131190,1527131191,1527131192,1527131193,1527131194,1527131195,1527131196,1527131197,1527131198,1527131199,1527131200,1527131201,1527131202,1527131203,1527131204,1527131205,1527131206,1527131207,1527131208,1527131209,1527131210,1527131211,1527131212,1527131213,1527131214,1527131215,1527131216,1527131217,1527131218,1527131219,1527131220,1527131221,1527131222,1527131223,1527131224,1527131225,1527131226,1527131227,1527131228,1527131229,1527131230,1527131231,1527131232,1527131233,1366840158,1366840157,1366840156,1366840155,1527131415,1527131416,1527131417,1527131418,1527131419,1527131420,1527131421,1527131422,1527131423,1527131424,1527131425,1527131426,1527131427,1527131428,1527131429,1527131430,1527131431,1527131432,1527131433,1527131434,1527131435,1527131436,1527131437,1527131438,1527131439,1527131440,1527131441,1527131442,1527131443,1527131444,1527131445,1527131446,1527131447,1527131448,1527131449,1527131450,1527131451,1527131452,1527131453,1527131454,1527131455,1527131456,1527131457,1527131458,1527131459,1527131460,1527131461,1527131462,1527131463,1527131464,1527131465,1527131466,1527131467,1527131468,1527131469,1527131470,1527131471,1527131472,1527131473,1527131474,1527131475,1527131476,1527131477,1527131478,1527131479,1527131480,1527131481,1527131482,1527131483,1527131484,1527131485,1527131486,1527131487,1527131488,1527131489,1366839905,1366839904,1366839903,1366839902,1527131671,1527131672,1527131673,1527131674,1527131675,1527131676,1527131677,1527131678,1527131679,1527131680,1527131681,1527131682,1527131683,1527131684,1527131685,1527131686,1527131687,1527131688,1527131689,1527131690,1527131691,1527131692,1527131693,1527131694,1527131695,1527131696,1527131697,1527131698,1527131699,1527131700,1527131701,1527131702,1527131703,1527131704,1527131705,1527131706,1527131707,1527131708,1527131709,1527131710,1527131711,1527131712,1527131713,1527131714,1527131715,1527131716,1527131717,1527131718,1527131719,1527131720,1527131721,1527131722,1527131723,1527131724,1527131725,1527131726,1527131727,1527131728,1527131729,1527131730,1527131731,1527131732,1527131733,1527131734,1527131735,1527131736,1527131737,1527131738,1527131739,1527131740,1527131741,1527131742,1527131743,1527131744,1527131745,1366839901,1366839900,1366839899,1366839649,1366839648,1527131927,1527131928,1527131929,1527131930,1527131931,1527131932,1527131933,1527131934,1527131935,1527131936,1527131937,1527131938,1527131939,1527131940,1527131941,1527131942,1527131943,1527131944,1527131945,1527131946,1527131947,1527131948,1527131949,1527131950,1527131951,1527131952,1527131953,1527131954,1527131955,1527131956,1527131957,1527131958,1527131959,1527131960,1527131961,1527131962,1527131963,1527131964,1527131965,1527131966,1527131967,1527131968,1527131969,1527131970,1527131971,1527131972,1527131973,1527131974,1527131975,1527131976,1527131977,1527131978,1527131979,1527131980,1527131981,1527131982,1527131983,1527131984,1527131985,1527131986,1527131987,1527131988,1527131989,1527131990,1527131991,1527131992,1527131993,1527131994,1527131995,1527131996,1527131997,1527131998,1527131999,1527132000,1527132001,1366839647,1366839646,1366839645,1366839644,1366839643,1527132183,1527132184,1527132185,1527132186,1527132187,1527132188,1527132189,1527132190,1527132191,1527132192,1527132193,1527132194,1527132195,1527132196,1527132197,1527132198,1527132199,1527132200,1527132201,1527132202,1527132203,1527132204,1527132205,1527132206,1527132207,1527132208,1527132209,1527132210,1527132211,1527132212,1527132213,1527132214,1527132215,1527132216,1527132217,1527132218,1527132219,1527132220,1527132221,1527132222,1527132223,1527132224,1527132225,1527132226,1527132227,1527132228,1527132229,1527132230,1527132231,1527132232,1527132233,1527132234,1527132235,1527132236,1527132237,1527132238,1527132239,1527132240,1527132241,1527132242,1527132243,1527132244,1527132245,1527132246,1527132247,1527132248,1527132249,1527132250,1527132251,1527132252,1527132253,1527132254,1527132255,1527132256,1527132257,1366839393,1366839392,1366839391,1366839390,1366839389,1527132439,1527132440,1527132441,1527132442,1527132443,1527132444,1527132445,1527132446,1527132447,1527132448,1527132449,1527132450,1527132451,1527132452,1527132453,1527132454,1527132455,1527132456,1527132457,1527132458,1527132459,1527132460,1527132461,1527132462,1527132463,1527132464,1527132465,1527132466,1527132467,1527132468,1527132469,1527132470,1527132471,1527132472,1527132473,1527132474,1527132475,1527132476,1527132477,1527132478,1527132479,1527132480,1527132481,1527132482,1527132483,1527132484,1527132485,1527132486,1527132487,1527132488,1527132489,1527132490,1527132491,1527132492,1527132493,1527132494,1527132495,1527132496,1527132497,1527132498,1527132499,1527132500,1527132501,1527132502,1527132503,1527132504,1527132505,1527132506,1527132507,1527132508,1527132509,1527132510,1527132511,1527132512,1527132513,1366839388,1366839387,1366839137,1366839136,1366839135,1527132695,1527132696,1527132697,1527132698,1527132699,1527132700,1527132701,1527132702,1527132703,1527132704,1527132705,1527132706,1527132707,1527132708,1527132709,1527132710,1527132711,1527132712,1527132713,1527132714,1527132715,1527132716,1527132717,1527132718,1527132719,1527132720,1527132721,1527132722,1527132723,1527132724,1527132725,1527132726,1527132727,1527132728,1527132729,1527132730,1527132731,1527132732,1527132733,1527132734,1527132735,1527132736,1527132737,1527132738,1527132739,1527132740,1527132741,1527132742,1527132743,1527132744,1527132745,1527132746,1527132747,1527132748,1527132749,1527132750,1527132751,1527132752,1527132753,1527132754,1527132755,1527132756,1527132757,1527132758,1527132759,1527132760,1527132761,1527132762,1527132763,1527132764,1527132765,1527132766,1527132767,1527132768,1527132769,1366839134,1366839133,1366839132,1366839131,1366838881,1527132951,1527132952,1527132953,1527132954,1527132955,1527132956,1527132957,1527132958,1527132959,1527132960,1527132961,1527132962,1527132963,1527132964,1527132965,1527132966,1527132967,1527132968,1527132969,1527132970,1527132971,1527132972,1527132973,1527132974,1527132975,1527132976,1527132977,1527132978,1527132979,1527132980,1527132981,1527132982,1527132983,1527132984,1527132985,1527132986,1527132987,1527132988,1527132989,1527132990,1527132991,1527132992,1527132993,1527132994,1527132995,1527132996,1527132997,1527132998,1527132999,1527133000,1527133001,1527133002,1527133003,1527133004,1527133005,1527133006,1527133007,1527133008,1527133009,1527133010,1527133011,1527133012,1527133013,1527133014,1527133015,1527133016,1527133017,1527133018,1527133019,1527133020,1527133021,1527133022,1527133023,1527133024,1527133025,1366838880,1366838879,1366838878,1366838877,1527133207,1527133208,1527133209,1527133210,1527133211,1527133212,1527133213,1527133214,1527133215,1527133216,1527133217,1527133218,1527133219,1527133220,1527133221,1527133222,1527133223,1527133224,1527133225,1527133226,1527133227,1527133228,1527133229,1527133230,1527133231,1527133232,1527133233,1527133234,1527133235,1527133236,1527133237,1527133238,1527133239,1527133240,1527133241,1527133242,1527133243,1527133244,1527133245,1527133246,1527133247,1527133248,1527133249,1527133250,1527133251,1527133252,1527133253,1527133254,1527133255,1527133256,1527133257,1527133258,1527133259,1527133260,1527133261,1527133262,1527133263,1527133264,1527133265,1527133266,1527133267,1527133268,1527133269,1527133270,1527133271,1527133272,1527133273,1527133274,1527133275,1527133276,1527133277,1527133278,1527133279,1527133280,1527133281,1366838876,1366838875,1366838625,1366838624,1527133463,1527133464,1527133465,1527133466,1527133467,1527133468,1527133469,1527133470,1527133471,1527133472,1527133473,1527133474,1527133475,1527133476,1527133477,1527133478,1527133479,1527133480,1527133481,1527133482,1527133483,1527133484,1527133485,1527133486,1527133487,1527133488,1527133489,1527133490,1527133491,1527133492,1527133493,1527133494,1527133495,1527133496,1527133497,1527133498,1527133499,1527133500,1527133501,1527133502,1527133503,1527133504,1527133505,1527133506,1527133507,1527133508,1527133509,1527133510,1527133511,1527133512,1527133513,1527133514,1527133515,1527133516,1527133517,1527133518,1527133519,1527133520,1527133530,1527133531,1527133532,1527133533,1527133534,1527133535,1527133536,1527133537,1366838623,1366838622,1366838621,1366838620,1527133719,1527133720,1527133721,1527133722,1527133723,1527133724,1527133725,1527133726,1527133727,1527133728,1527133729,1527133730,1527133731,1527133732,1527133733,1527133734,1527133735,1527133736,1527133737,1527133738,1527133739,1527133740,1527133741,1527133742,1527133743,1527133744,1527133745,1527133746,1527133747,1527133748,1527133749,1527133750,1527133751,1527133752,1527133753,1527133754,1527133755,1527133756,1527133757,1527133758,1527133759,1527133760,1527133761,1527133762,1527133763,1527133764,1527133765,1527133766,1527133767,1527133768,1527133769,1527133770,1527133771,1527133772,1527133773,1527133774,1527133775,1527133787,1527133788,1527133789,1527133790,1527133791,1527133792,1527133793,1366838619,1366838369,1366838368,1366838367,1527133975,1527133976,1527133977,1527133978,1527133979,1527133980,1527133981,1527133982,1527133983,1527133984,1527133985,1527133986,1527133987,1527133988,1527133989,1527133990,1527133991,1527133992,1527133993,1527133994,1527133995,1527133996,1527133997,1527133998,1527133999,1527134000,1527134001,1527134002,1527134003,1527134004,1527134005,1527134006,1527134007,1527134008,1527134009,1527134010,1527134011,1527134012,1527134013,1527134014,1527134015,1527134016,1527134017,1527134018,1527134019,1527134020,1527134021,1527134022,1527134023,1527134024,1527134025,1527134026,1527134027,1527134028,1527134029,1527134030,1527134031,1527134043,1527134044,1527134045,1527134046,1527134047,1527134048,1527134049,1366838366,1366838365,1366838364,1366838363,1366838113,1527134231,1527134232,1527134233,1527134234,1527134235,1527134236,1527134237,1527134238,1527134239,1527134240,1527134241,1527134242,1527134243,1527134244,1527134245,1527134246,1527134247,1527134248,1527134249,1527134250,1527134251,1527134252,1527134253,1527134254,1527134255,1527134256,1527134257,1527134258,1527134259,1527134260,1527134261,1527134262,1527134263,1527134264,1527134265,1527134266,1527134267,1527134268,1527134269,1527134270,1527134271,1527134272,1527134273,1527134274,1527134275,1527134276,1527134277,1527134278,1527134279,1527134280,1527134281,1527134282,1527134283,1527134284,1527134285,1527134286,1527134287,1527134299,1527134300,1527134301,1527134302,1527134303,1527134304,1527134305,1366838112,1366838111,1366838110,1366838109,1366838108,1527134487,1527134488,1527134489,1527134490,1527134491,1527134492,1527134493,1527134494,1527134495,1527134496,1527134497,1527134498,1527134499,1527134500,1527134501,1527134502,1527134503,1527134504,1527134505,1527134506,1527134507,1527134508,1527134509,1527134510,1527134511,1527134512,1527134513,1527134514,1527134515,1527134516,1527134517,1527134518,1527134519,1527134520,1527134521,1527134522,1527134523,1527134524,1527134525,1527134526,1527134527,1527134528,1527134529,1527134530,1527134531,1527134532,1527134533,1527134534,1527134535,1527134536,1527134537,1527134538,1527134539,1527134540,1527134541,1527134542,1527134543,1527134555,1527134556,1527134557,1527134558,1527134559,1527134560,1527134561,1366838107,1366837857,1366837856,1366837855,1366837854,1527134743,1527134744,1527134745,1527134746,1527134747,1527134748,1527134749,1527134750,1527134751,1527134752,1527134753,1527134754,1527134755,1527134756,1527134757,1527134758,1527134759,1527134760,1527134761,1527134762,1527134763,1527134764,1527134765,1527134766,1527134767,1527134768,1527134769,1527134770,1527134771,1527134772,1527134773,1527134774,1527134775,1527134776,1527134777,1527134778,1527134779,1527134780,1527134781,1527134782,1527134783,1527134784,1527134785,1527134786,1527134787,1527134788,1527134789,1527134790,1527134791,1527134792,1527134793,1527134794,1527134795,1527134796,1527134797,1527134798,1527134799,1527134811,1527134812,1527134813,1527134814,1527134815,1527134816,1527134817,1366837853,1366837852,1366837851,1366837601,1366837600,1527134999,1527135000,1527135001,1527135002,1527135003,1527135004,1527135005,1527135006,1527135007,1527135008,1527135009,1527135010,1527135011,1527135012,1527135013,1527135014,1527135015,1527135016,1527135017,1527135018,1527135019,1527135020,1527135021,1527135022,1527135023,1527135024,1527135025,1527135026,1527135027,1527135028,1527135029,1527135030,1527135031,1527135032,1527135033,1527135034,1527135035,1527135036,1527135037,1527135038,1527135039,1527135040,1527135041,1527135042,1527135043,1527135044,1527135045,1527135046,1527135047,1527135048,1527135049,1527135050,1527135051,1527135052,1527135053,1527135054,1527135055,1527135067,1527135068,1527135069,1527135070,1527135071,1527135072,1527135073,1366837599,1366837598,1366837597,1366837596,1366837595,1527135255,1527135256,1527135257,1527135258,1527135259,1527135260,1527135261,1527135262,1527135263,1527135264,1527135265,1527135266,1527135267,1527135268,1527135269,1527135270,1527135271,1527135272,1527135273,1527135274,1527135275,1527135276,1527135277,1527135278,1527135279,1527135280,1527135281,1527135282,1527135283,1527135284,1527135285,1527135286,1527135287,1527135288,1527135289,1527135290,1527135291,1527135292,1527135293,1527135294,1527135295,1527135296,1527135297,1527135298,1527135299,1527135300,1527135301,1527135302,1527135303,1527135304,1527135305,1527135306,1527135307,1527135308,1527135309,1527135310,1527135311,1527135323,1527135324,1527135325,1527135326,1527135327,1527135328,1527135329,1366837345,1366837344,1366837343,1366837342,1527135511,1527135512,1527135513,1527135514,1527135515,1527135516,1527135517,1527135518,1527135519,1527135520,1527135521,1527135522,1527135523,1527135524,1527135525,1527135526,1527135527,1527135528,1527135529,1527135530,1527135531,1527135532,1527135533,1527135534,1527135535,1527135536,1527135537,1527135538,1527135539,1527135540,1527135541,1527135542,1527135543,1527135544,1527135545,1527135546,1527135547,1527135548,1527135549,1527135550,1527135551,1527135552,1527135553,1527135554,1527135555,1527135556,1527135557,1527135558,1527135559,1527135560,1527135561,1527135562,1527135563,1527135564,1527135565,1527135566,1527135567,1527135579,1527135580,1527135581,1527135582,1527135583,1527135584,1527135585,1366837341,1366837340,1366837339,1366837089,1527135767,1527135768,1527135769,1527135770,1527135771,1527135772,1527135773,1527135774,1527135775,1527135776,1527135777,1527135778,1527135779,1527135780,1527135781,1527135782,1527135783,1527135784,1527135785,1527135786,1527135787,1527135788,1527135789,1527135790,1527135791,1527135792,1527135793,1527135794,1527135795,1527135796,1527135797,1527135798,1527135799,1527135800,1527135801,1527135802,1527135803,1527135804,1527135805,1527135806,1527135807,1527135808,1527135809,1527135810,1527135811,1527135812,1527135813,1527135814,1527135815,1527135816,1527135817,1527135818,1527135819,1527135820,1527135821,1527135822,1527135823,1527135835,1527135836,1527135837,1527135838,1527135839,1527135840,1527135841,1366837088,1366837087,1366837086,1366837085,1527136023,1527136024,1527136025,1527136026,1527136027,1527136028,1527136029,1527136030,1527136031,1527136032,1527136033,1527136034,1527136035,1527136036,1527136037,1527136038,1527136039,1527136040,1527136041,1527136042,1527136043,1527136044,1527136045,1527136046,1527136047,1527136048,1527136049,1527136050,1527136051,1527136052,1527136053,1527136054,1527136055,1527136056,1527136057,1527136058,1527136059,1527136060,1527136061,1527136062,1527136063,1527136064,1527136065,1527136066,1527136067,1527136068,1527136069,1527136070,1527136071,1527136072,1527136073,1527136074,1527136075,1527136076,1527136077,1527136078,1527136079,1527136080,1527136090,1527136091,1527136092,1527136093,1527136094,1527136095,1527136096,1527136097,1366837084,1366837083,1366836833,1366836832,1527136279,1527136280,1527136281,1527136282,1527136283,1527136284,1527136285,1527136286,1527136287,1527136288,1527136289,1527136290,1527136291,1527136292,1527136293,1527136294,1527136295,1527136296,1527136297,1527136298,1527136299,1527136300,1527136301,1527136302,1527136303,1527136304,1527136305,1527136306,1527136307,1527136308,1527136309,1527136310,1527136311,1527136312,1527136313,1527136314,1527136315,1527136316,1527136317,1527136318,1527136319,1527136320,1527136321,1527136322,1527136323,1527136324,1527136325,1527136326,1527136327,1527136328,1527136329,1527136330,1527136331,1527136332,1527136333,1527136334,1527136335,1527136336,1527136337,1527136338,1527136339,1527136340,1527136341,1527136342,1527136343,1527136344,1527136345,1527136346,1527136347,1527136348,1527136349,1527136350,1527136351,1527136352,1527136353,1366836831,1366836830,1366836829,1366836828,1366836827,1527136535,1527136536,1527136537,1527136538,1527136539,1527136540,1527136541,1527136542,1527136543,1527136544,1527136545,1527136546,1527136547,1527136548,1527136549,1527136550,1527136551,1527136552,1527136553,1527136554,1527136555,1527136556,1527136557,1527136558,1527136559,1527136560,1527136561,1527136562,1527136563,1527136564,1527136565,1527136566,1527136567,1527136568,1527136569,1527136570,1527136571,1527136572,1527136573,1527136574,1527136575,1527136576,1527136577,1527136578,1527136579,1527136580,1527136581,1527136582,1527136583,1527136584,1527136585,1527136586,1527136587,1527136588,1527136589,1527136590,1527136591,1527136592,1527136593,1527136594,1527136595,1527136596,1527136597,1527136598,1527136599,1527136600,1527136601,1527136602,1527136603,1527136604,1527136605,1527136606,1527136607,1527136608,1527136609,1366836577,1366836576,1366836575,1366836574,1366836573,1527136791,1527136792,1527136793,1527136794,1527136795,1527136796,1527136797,1527136798,1527136799,1527136800,1527136801,1527136802,1527136803,1527136804,1527136805,1527136806,1527136807,1527136808,1527136809,1527136810,1527136811,1527136812,1527136813,1527136814,1527136815,1527136816,1527136817,1527136818,1527136819,1527136820,1527136821,1527136822,1527136823,1527136824,1527136825,1527136826,1527136827,1527136828,1527136829,1527136830,1527136831,1527136832,1527136833,1527136834,1527136835,1527136836,1527136837,1527136838,1527136839,1527136840,1527136841,1527136842,1527136843,1527136844,1527136845,1527136846,1527136847,1527136848,1527136849,1527136850,1527136851,1527136852,1527136853,1527136854,1527136855,1527136856,1527136857,1527136858,1527136859,1527136860,1527136861,1527136862,1527136863,1527136864,1527136865,1366836572,1366836571,1366836321,1366836320,1366836319,1527137047,1527137048,1527137049,1527137050,1527137051,1527137052,1527137053,1527137054,1527137055,1527137056,1527137057,1527137058,1527137059,1527137060,1527137061,1527137062,1527137063,1527137064,1527137065,1527137066,1527137067,1527137068,1527137069,1527137070,1527137071,1527137072,1527137073,1527137074,1527137075,1527137076,1527137077,1527137078,1527137079,1527137080,1527137081,1527137082,1527137083,1527137084,1527137085,1527137086,1527137087,1527137088,1527137089,1527137090,1527137091,1527137092,1527137093,1527137094,1527137095,1527137096,1527137097,1527137098,1527137099,1527137100,1527137101,1527137102,1527137103,1527137104,1527137105,1527137106,1527137107,1527137108,1527137109,1527137110,1527137111,1527137112,1527137113,1527137114,1527137115,1527137116,1527137117,1527137118,1527137119,1527137120,1527137121,1366836318,1366836317,1366836316,1366836315,1366836065,1527137303,1527137304,1527137305,1527137306,1527137307,1527137308,1527137309,1527137310,1527137311,1527137312,1527137313,1527137314,1527137315,1527137316,1527137317,1527137318,1527137319,1527137320,1527137321,1527137322,1527137323,1527137324,1527137325,1527137326,1527137327,1527137328,1527137329,1527137330,1527137331,1527137332,1527137333,1527137334,1527137335,1527137336,1527137337,1527137338,1527137339,1527137340,1527137341,1527137342,1527137343,1527137344,1527137345,1527137346,1527137347,1527137348,1527137349,1527137350,1527137351,1527137352,1527137353,1527137354,1527137355,1527137356,1527137357,1527137358,1527137359,1527137360,1527137361,1527137362,1527137363,1527137364,1527137365,1527137366,1527137367,1527137368,1527137369,1527137370,1527137371,1527137372,1527137373,1527137374,1527137375,1527137376,1527137377,1366836064,1366836063,1366836062,1366836061,1366836060,1527137559,1527137560,1527137561,1527137562,1527137563,1527137564,1527137565,1527137566,1527137567,1527137568,1527137569,1527137570,1527137571,1527137572,1527137573,1527137574,1527137575,1527137576,1527137577,1527137578,1527137579,1527137580,1527137581,1527137582,1527137583,1527137584,1527137585,1527137586,1527137587,1527137588,1527137589,1527137590,1527137591,1527137592,1527137593,1527137594,1527137595,1527137596,1527137597,1527137598,1527137599,1527137600,1527137601,1527137602,1527137603,1527137604,1527137605,1527137606,1527137607,1527137608,1527137609,1527137610,1527137611,1527137612,1527137613,1527137614,1527137615,1527137616,1527137617,1527137618,1527137619,1527137620,1527137621,1527137622,1527137623,1527137624,1527137625,1527137626,1527137627,1527137628,1527137629,1527137630,1527137631,1527137632,1527137633,1366836059,1366835809,1366835808,1366835807,1527137815,1527137816,1527137817,1527137818,1527137819,1527137820,1527137821,1527137822,1527137823,1527137824,1527137825,1527137826,1527137827,1527137828,1527137829,1527137830,1527137831,1527137832,1527137833,1527137834,1527137835,1527137836,1527137837,1527137838,1527137839,1527137840,1527137841,1527137842,1527137843,1527137844,1527137845,1527137846,1527137847,1527137848,1527137849,1527137850,1527137851,1527137852,1527137853,1527137854,1527137855,1527137856,1527137857,1527137858,1527137859,1527137860,1527137861,1527137862,1527137863,1527137864,1527137865,1527137866,1527137867,1527137868,1527137869,1527137870,1527137871,1527137872,1527137873,1527137874,1527137875,1527137876,1527137877,1527137878,1527137879,1527137880,1527137881,1527137882,1527137883,1527137884,1527137885,1527137886,1527137887,1527137888,1527137889,1366835806,1366835805,1366835804,1366835803,1527138071,1527138072,1527138073,1527138074,1527138075,1527138076,1527138077,1527138078,1527138079,1527138080,1527138081,1527138082,1527138083,1527138084,1527138085,1527138086,1527138087,1527138088,1527138089,1527138090,1527138091,1527138092,1527138093,1527138094,1527138095,1527138096,1527138097,1527138098,1527138099,1527138100,1527138101,1527138102,1527138103,1527138104,1527138105,1527138106,1527138107,1527138108,1527138109,1527138110,1527138111,1527138112,1527138113,1527138114,1527138115,1527138116,1527138117,1527138118,1527138119,1527138120,1527138121,1527138122,1527138123,1527138124,1527138125,1527138126,1527138127,1527138128,1527138129,1527138130,1527138131,1527138132,1527138133,1527138134,1527138135,1527138136,1527138137,1527138138,1527138139,1527138140,1527138141,1527138142,1527138143,1527138144,1527138145,1366835553,1366835552,1366835551,1366835550,1527138327,1527138328,1527138329,1527138330,1527138331,1527138332,1527138333,1527138334,1527138335,1527138336,1527138337,1527138338,1527138339,1527138340,1527138341,1527138342,1527138343,1527138344,1527138345,1527138346,1527138347,1527138348,1527138349,1527138350,1527138351,1527138352,1527138353,1527138354,1527138355,1527138356,1527138357,1527138358,1527138359,1527138360,1527138361,1527138362,1527138363,1527138364,1527138365,1527138366,1527138367,1527138368,1527138369,1527138370,1527138371,1527138372,1527138373,1527138374,1527138375,1527138376,1527138377,1527138378,1527138379,1527138380,1527138381,1527138382,1527138383,1527138384,1527138385,1527138386,1527138387,1527138388,1527138389,1527138390,1527138391,1527138392,1527138393,1527138394,1527138395,1527138396,1527138397,1527138398,1527138399,1527138400,1527138401,1366835549,1366835548,1366835547,1366835297,1527138583,1527138584,1527138585,1527138586,1527138587,1527138588,1527138589,1527138590,1527138591,1527138592,1527138593,1527138594,1527138595,1527138596,1527138597,1527138598,1527138599,1527138600,1527138601,1527138602,1527138603,1527138604,1527138605,1527138606,1527138607,1527138608,1527138609,1527138610,1527138611,1527138612,1527138613,1527138614,1527138615,1527138616,1527138617,1527138618,1527138619,1527138620,1527138621,1527138622,1527138623,1527138624,1527138625,1527138626,1527138627,1527138628,1527138629,1527138630,1527138631,1527138632,1527138633,1527138634,1527138635,1527138636,1527138637,1527138638,1527138639,1527138640,1527138641,1527138642,1527138643,1527138644,1527138645,1527138646,1527138647,1527138648,1527138649,1527138650,1527138651,1527138652,1527138653,1527138654,1527138655,1527138656,1527138657,1366835296,1366835295,1366835294,1366835293,1527138839,1527138840,1527138841,1527138842,1527138843,1527138844,1527138845,1527138846,1527138847,1527138848,1527138849,1527138850,1527138851,1527138852,1527138853,1527138854,1527138855,1527138856,1527138857,1527138858,1527138859,1527138860,1527138861,1527138862,1527138863,1527138864,1527138865,1527138866,1527138867,1527138868,1527138869,1527138870,1527138871,1527138872,1527138873,1527138874,1527138875,1527138876,1527138877,1527138878,1527138879,1527138880,1527138881,1527138882,1527138883,1527138884,1527138885,1527138886,1527138887,1527138888,1527138889,1527138890,1527138891,1527138892,1527138893,1527138894,1527138895,1527138896,1527138897,1527138898,1527138899,1527138900,1527138901,1527138902,1527138903,1527138904,1527138905,1527138906,1527138907,1527138908,1527138909,1527138910,1527138911,1527138912,1527138913,1366835292,1366835291,1366835041,1366835040,1527139095,1527139096,1527139097,1527139098,1527139099,1527139100,1527139101,1527139102,1527139103,1527139104,1527139105,1527139106,1527139107,1527139108,1527139109,1527139110,1527139111,1527139112,1527139113,1527139114,1527139115,1527139116,1527139117,1527139118,1527139119,1527139120,1527139121,1527139122,1527139123,1527139124,1527139125,1527139126,1527139127,1527139128,1527139129,1527139130,1527139131,1527139132,1527139133,1527139134,1527139135,1527139136,1527139137,1527139138,1527139139,1527139140,1527139141,1527139142,1527139143,1527139144,1527139145,1527139146,1527139147,1527139148,1527139149,1527139150,1527139151,1527139152,1527139153,1527139154,1527139155,1527139156,1527139157,1527139158,1527139159,1527139160,1527139161,1527139162,1527139163,1527139164,1527139165,1527139166,1527139167,1527139168,1527139169,1366835039,1366835038,1366835037,1366835036,1527139351,1527139352,1527139353,1527139354,1527139355,1527139356,1527139357,1527139358,1527139359,1527139360,1527139361,1527139362,1527139363,1527139364,1527139365,1527139366,1527139367,1527139368,1527139369,1527139370,1527139371,1527139372,1527139373,1527139374,1527139375,1527139376,1527139377,1527139378,1527139379,1527139380,1527139381,1527139382,1527139383,1527139384,1527139385,1527139386,1527139387,1527139388,1527139389,1527139390,1527139391,1527139392,1527139393,1527139394,1527139395,1527139396,1527139397,1527139398,1527139399,1527139400,1527139401,1527139402,1527139403,1527139404,1527139405,1527139406,1527139407,1527139408,1527139409,1527139410,1527139411,1527139412,1527139413,1527139414,1527139415,1527139416,1527139417,1527139418,1527139419,1527139420,1527139421,1527139422,1527139423,1527139424,1527139425,1366835035,1366834785,1366834784,1366834783,1527139607,1527139608,1527139609,1527139610,1527139611,1527139612,1527139613,1527139614,1527139615,1527139616,1527139617,1527139618,1527139619,1527139620,1527139621,1527139622,1527139623,1527139624,1527139625,1527139626,1527139627,1527139628,1527139629,1527139630,1527139631,1527139632,1527139633,1527139634,1527139635,1527139636,1527139637,1527139638,1527139639,1527139640,1527139641,1527139642,1527139643,1527139644,1527139645,1527139646,1527139647,1527139648,1527139649,1527139650,1527139651,1527139652,1527139653,1527139654,1527139655,1527139656,1527139657,1527139658,1527139659,1527139660,1527139661,1527139662,1527139663,1527139664,1527139665,1527139666,1527139667,1527139668,1527139669,1527139670,1527139671,1527139672,1527139673,1527139674,1527139675,1527139676,1527139677,1527139678,1527139679,1527139680,1527139681,1366834782,1366834781,1366834780,1366834779,1527139863,1527139864,1527139865,1527139866,1527139867,1527139868,1527139869,1527139870,1527139871,1527139872,1527139873,1527139874,1527139875,1527139876,1527139877,1527139878,1527139879,1527139880,1527139881,1527139882,1527139883,1527139884,1527139885,1527139886,1527139887,1527139888,1527139889,1527139890,1527139891,1527139892,1527139893,1527139894,1527139895,1527139896,1527139897,1527139898,1527139899,1527139900,1527139901,1527139902,1527139903,1527139904,1527139905,1527139906,1527139907,1527139908,1527139909,1527139910,1527139911,1527139912,1527139913,1527139914,1527139915,1527139916,1527139917,1527139918,1527139919,1527139920,1527139921,1527139922,1527139923,1527139924,1527139925,1527139926,1527139927,1527139928,1527139929,1527139930,1527139931,1527139932,1527139933,1527139934,1527139935,1527139936,1527139937,1366834529,1366834528,1366834527,1366834526,1527140119,1527140120,1527140121,1527140122,1527140123,1527140124,1527140125,1527140126,1527140127,1527140128,1527140129,1527140130,1527140131,1527140132,1527140133,1527140134,1527140135,1527140136,1527140137,1527140138,1527140139,1527140140,1527140141,1527140142,1527140143,1527140144,1527140145,1527140146,1527140147,1527140148,1527140149,1527140150,1527140151,1527140152,1527140153,1527140154,1527140155,1527140156,1527140157,1527140158,1527140159,1527140160,1527140161,1527140162,1527140163,1527140164,1527140165,1527140166,1527140167,1527140168,1527140169,1527140170,1527140171,1527140172,1527140173,1527140174,1527140175,1527140176,1527140177,1527140178,1527140179,1527140180,1527140181,1527140182,1527140183,1527140184,1527140185,1527140186,1527140187,1527140188,1527140189,1527140190,1527140191,1527140192,1527140193,1366834525,1366834524,1366834523,1366834273,1527140375,1527140376,1527140377,1527140378,1527140379,1527140380,1527140381,1527140382,1527140383,1527140384,1527140385,1527140386,1527140387,1527140388,1527140389,1527140390,1527140391,1527140392,1527140393,1527140394,1527140395,1527140396,1527140397,1527140398,1527140399,1527140400,1527140401,1527140402,1527140403,1527140404,1527140405,1527140406,1527140407,1527140408,1527140409,1527140410,1527140411,1527140412,1527140413,1527140414,1527140415,1527140416,1527140417,1527140418,1527140419,1527140420,1527140421,1527140422,1527140423,1527140424,1527140425,1527140426,1527140427,1527140428,1527140429,1527140430,1527140431,1527140432,1527140433,1527140434,1527140435,1527140436,1527140437,1527140438,1527140439,1527140440,1527140441,1527140442,1527140443,1527140444,1527140445,1527140446,1527140447,1527140448,1527140449,1366834272,1366834271,1366834270,1366834269,1527140631,1527140632,1527140633,1527140634,1527140635,1527140636,1527140637,1527140638,1527140639,1527140640,1527140641,1527140642,1527140643,1527140644,1527140645,1527140646,1527140647,1527140648,1527140649,1527140650,1527140651,1527140652,1527140653,1527140654,1527140655,1527140656,1527140657,1527140658,1527140659,1527140660,1527140661,1527140662,1527140663,1527140664,1527140665,1527140666,1527140667,1527140668,1527140669,1527140670,1527140671,1527140672,1527140673,1527140674,1527140675,1527140676,1527140677,1527140678,1527140679,1527140680,1527140681,1527140682,1527140683,1527140684,1527140685,1527140686,1527140687,1527140688,1527140689,1527140690,1527140691,1527140692,1527140693,1527140694,1527140695,1527140696,1527140697,1527140698,1527140699,1527140700,1527140701,1527140702,1527140703,1527140704,1527140705,1366834268,1366834267,1366834017,1366834016,1527140887,1527140888,1527140889,1527140890,1527140891,1527140892,1527140893,1527140894,1527140895,1527140896,1527140897,1527140898,1527140899,1527140900,1527140901,1527140902,1527140903,1527140904,1527140905,1527140906,1527140907,1527140908,1527140909,1527140910,1527140911,1527140912,1527140913,1527140914,1527140915,1527140916,1527140917,1527140918,1527140919,1527140920,1527140921,1527140922,1527140923,1527140924,1527140925,1527140926,1527140927,1527140928,1527140929,1527140930,1527140931,1527140932,1527140933,1527140934,1527140935,1527140936,1527140937,1527140938,1527140939,1527140940,1527140941,1527140942,1527140943,1527140944,1527140945,1527140946,1527140947,1527140948,1527140949,1527140950,1527140951,1527140952,1527140953,1527140954,1527140955,1527140956,1527140957,1527140958,1527140959,1527140960,1527140961,1366834015,1366834014,1366834013,1366834012,1527141143,1527141144,1527141145,1527141146,1527141147,1527141148,1527141149,1527141150,1527141151,1527141152,1527141153,1527141154,1527141155,1527141156,1527141157,1527141158,1527141159,1527141160,1527141161,1527141162,1527141163,1527141164,1527141165,1527141166,1527141167,1527141168,1527141169,1527141170,1527141171,1527141172,1527141173,1527141174,1527141175,1527141176,1527141177,1527141178,1527141179,1527141180,1527141181,1527141182,1527141183,1527141184,1527141185,1527141186,1527141187,1527141188,1527141189,1527141190,1527141191,1527141192,1527141193,1527141194,1527141195,1527141196,1527141197,1527141198,1527141199,1527141200,1527141201,1527141202,1527141203,1527141204,1527141205,1527141206,1527141207,1527141208,1527141209,1527141210,1527141211,1527141212,1527141213,1527141214,1527141215,1527141216,1527141217,1366834011,1366833761,1366833760,1366833759,1527141399,1527141400,1527141401,1527141402,1527141403,1527141404,1527141405,1527141406,1527141407,1527141408,1527141409,1527141410,1527141411,1527141412,1527141413,1527141414,1527141415,1527141416,1527141417,1527141418,1527141419,1527141420,1527141421,1527141422,1527141423,1527141424,1527141425,1527141426,1527141427,1527141428,1527141429,1527141430,1527141431,1527141432,1527141433,1527141434,1527141435,1527141436,1527141437,1527141438,1527141439,1527141440,1527141441,1527141442,1527141443,1527141444,1527141445,1527141446,1527141447,1527141448,1527141449,1527141450,1527141451,1527141452,1527141453,1527141454,1527141455,1527141456,1527141457,1527141458,1527141459,1527141460,1527141461,1527141462,1527141463,1527141464,1527141465,1527141466,1527141467,1527141468,1527141469,1527141470,1527141471,1527141472,1527141473,1366833758,1366833757,1366833756,1366833755,1527141655,1527141656,1527141657,1527141658,1527141659,1527141660,1527141661,1527141662,1527141663,1527141664,1527141665,1527141666,1527141667,1527141668,1527141669,1527141670,1527141671,1527141672,1527141673,1527141674,1527141675,1527141676,1527141677,1527141678,1527141679,1527141680,1527141681,1527141682,1527141683,1527141684,1527141685,1527141686,1527141687,1527141688,1527141689,1527141690,1527141691,1527141692,1527141693,1527141694,1527141695,1527141696,1527141697,1527141698,1527141699,1527141700,1527141701,1527141702,1527141703,1527141704,1527141705,1527141706,1527141707,1527141708,1527141709,1527141710,1527141711,1527141712,1527141713,1527141714,1527141715,1527141716,1527141717,1527141718,1527141719,1527141720,1527141721,1527141722,1527141723,1527141724,1527141725,1527141726,1527141727,1527141728,1527141729,1366833505,1366833504,1366833503,1366833502,1527141911,1527141912,1527141913,1527141914,1527141915,1527141916,1527141917,1527141918,1527141919,1527141920,1527141921,1527141922,1527141923,1527141924,1527141925,1527141926,1527141927,1527141928,1527141929,1527141930,1527141931,1527141932,1527141933,1527141934,1527141935,1527141936,1527141937,1527141938,1527141939,1527141940,1527141941,1527141942,1527141943,1527141944,1527141945,1527141946,1527141947,1527141948,1527141949,1527141950,1527141951,1527141952,1527141953,1527141954,1527141955,1527141956,1527141957,1527141958,1527141959,1527141960,1527141961,1527141962,1527141963,1527141964,1527141965,1527141966,1527141967,1527141968,1527141969,1527141970,1527141971,1527141972,1527141973,1527141974,1527141975,1527141976,1527141977,1527141978,1527141979,1527141980,1527141981,1527141982,1527141983,1527141984,1527141985,1366833501,1366833500,1366833499,1366833249,1527142167,1527142168,1527142169,1527142170,1527142171,1527142172,1527142173,1527142174,1527142175,1527142176,1527142177,1527142178,1527142179,1527142180,1527142181,1527142182,1527142183,1527142184,1527142185,1527142186,1527142187,1527142188,1527142189,1527142190,1527142191,1527142192,1527142193,1527142194,1527142195,1527142196,1527142197,1527142198,1527142199,1527142200,1527142201,1527142202,1527142203,1527142204,1527142205,1527142206,1527142207,1527142208,1527142209,1527142210,1527142211,1527142212,1527142213,1527142214,1527142215,1527142216,1527142217,1527142218,1527142219,1527142220,1527142221,1527142222,1527142223,1527142224,1527142225,1527142226,1527142227,1527142228,1527142229,1527142230,1527142231,1527142232,1527142233,1527142234,1527142235,1527142236,1527142237,1527142238,1527142239,1527142240,1527142241,1366833248,1366833247,1366833246,1366833245,1527142423,1527142424,1527142425,1527142426,1527142427,1527142428,1527142429,1527142430,1527142431,1527142432,1527142433,1527142434,1527142435,1527142436,1527142437,1527142438,1527142439,1527142440,1527142441,1527142442,1527142443,1527142444,1527142445,1527142446,1527142447,1527142448,1527142449,1527142450,1527142451,1527142452,1527142453,1527142454,1527142455,1527142456,1527142457,1527142458,1527142459,1527142460,1527142461,1527142462,1527142463,1527142464,1527142465,1527142466,1527142467,1527142468,1527142469,1527142470,1527142471,1527142472,1527142473,1527142474,1527142475,1527142476,1527142477,1527142478,1527142479,1527142480,1527142481,1527142482,1527142483,1527142484,1527142485,1527142486,1527142487,1527142488,1527142489,1527142490,1527142491,1527142492,1527142493,1527142494,1527142495,1527142496,1527142497,1366833244,1366833243,1366832993,1366832992,1527142679,1527142680,1527142681,1527142682,1527142683,1527142684,1527142685,1527142686,1527142687,1527142688,1527142689,1527142690,1527142691,1527142692,1527142693,1527142694,1527142695,1527142696,1527142697,1527142698,1527142699,1527142700,1527142701,1527142702,1527142703,1527142704,1527142705,1527142706,1527142707,1527142708,1527142709,1527142719,1527142720,1527142721,1527142722,1527142723,1527142724,1527142725,1527142726,1527142727,1527142728,1527142729,1527142730,1527142731,1527142732,1527142733,1527142734,1527142735,1527142736,1527142737,1527142738,1527142739,1527142740,1527142741,1527142742,1527142743,1527142744,1527142745,1527142746,1527142747,1527142748,1527142749,1527142750,1527142751,1527142752,1527142753,1366832991,1366832990,1366832989,1366832988,1527142935,1527142936,1527142937,1527142938,1527142939,1527142940,1527142941,1527142942,1527142943,1527142944,1527142945,1527142946,1527142947,1527142948,1527142949,1527142950,1527142951,1527142952,1527142953,1527142954,1527142955,1527142956,1527142957,1527142958,1527142959,1527142960,1527142961,1527142962,1527142963,1527142964,1527142976,1527142977,1527142978,1527142979,1527142980,1527142981,1527142982,1527142983,1527142984,1527142985,1527142986,1527142987,1527142988,1527142989,1527142990,1527142991,1527142992,1527142993,1527142994,1527142995,1527142996,1527142997,1527142998,1527142999,1527143000,1527143001,1527143002,1527143003,1527143004,1527143005,1527143006,1527143007,1527143008,1527143009,1366832987,1366832737,1366832736,1366832735,1527143191,1527143192,1527143193,1527143194,1527143195,1527143196,1527143197,1527143198,1527143199,1527143200,1527143201,1527143202,1527143203,1527143204,1527143205,1527143206,1527143207,1527143208,1527143209,1527143210,1527143211,1527143212,1527143213,1527143214,1527143215,1527143216,1527143217,1527143218,1527143219,1527143220,1527143232,1527143233,1527143234,1527143235,1527143236,1527143237,1527143238,1527143239,1527143240,1527143241,1527143242,1527143243,1527143244,1527143245,1527143246,1527143247,1527143248,1527143249,1527143250,1527143251,1527143252,1527143253,1527143254,1527143255,1527143256,1527143257,1527143258,1527143259,1527143260,1527143261,1527143262,1527143263,1527143264,1527143265,1366832734,1366832733,1366832732,1366832731,1527143447,1527143448,1527143449,1527143450,1527143451,1527143452,1527143453,1527143454,1527143455,1527143456,1527143457,1527143458,1527143459,1527143460,1527143461,1527143462,1527143463,1527143464,1527143465,1527143466,1527143467,1527143468,1527143469,1527143470,1527143471,1527143472,1527143473,1527143474,1527143475,1527143476,1527143488,1527143489,1527143490,1527143491,1527143492,1527143493,1527143494,1527143495,1527143496,1527143497,1527143498,1527143499,1527143500,1527143501,1527143502,1527143503,1527143504,1527143505,1527143506,1527143507,1527143508,1527143509,1527143510,1527143511,1527143512,1527143513,1527143514,1527143515,1527143516,1527143517,1527143518,1527143519,1527143520,1527143521,1366832481,1366832480,1366832479,1366832478,1527143703,1527143704,1527143705,1527143706,1527143707,1527143708,1527143709,1527143710,1527143711,1527143712,1527143713,1527143714,1527143715,1527143716,1527143717,1527143718,1527143719,1527143720,1527143721,1527143722,1527143723,1527143724,1527143725,1527143726,1527143727,1527143728,1527143729,1527143730,1527143731,1527143732,1527143744,1527143745,1527143746,1527143747,1527143748,1527143749,1527143750,1527143751,1527143752,1527143753,1527143754,1527143755,1527143756,1527143757,1527143758,1527143759,1527143760,1527143761,1527143762,1527143763,1527143764,1527143765,1527143766,1527143767,1527143768,1527143769,1527143770,1527143771,1527143772,1527143773,1527143774,1527143775,1527143776,1527143777,1366832477,1366832476,1366832475,1366832225,1527143959,1527143960,1527143961,1527143962,1527143963,1527143964,1527143965,1527143966,1527143967,1527143968,1527143969,1527143970,1527143971,1527143972,1527143973,1527143974,1527143975,1527143976,1527143977,1527143978,1527143979,1527143980,1527143981,1527143982,1527143983,1527143984,1527143985,1527143986,1527143987,1527143988,1527144000,1527144001,1527144002,1527144003,1527144004,1527144005,1527144006,1527144007,1527144008,1527144009,1527144010,1527144011,1527144012,1527144013,1527144014,1527144015,1527144016,1527144017,1527144018,1527144019,1527144020,1527144021,1527144022,1527144023,1527144024,1527144025,1527144026,1527144027,1527144028,1527144029,1527144030,1527144031,1527144032,1527144033,1366832224,1366832223,1366832222,1366832221,1527144215,1527144216,1527144217,1527144218,1527144219,1527144220,1527144221,1527144222,1527144223,1527144224,1527144225,1527144226,1527144227,1527144228,1527144229,1527144230,1527144231,1527144232,1527144233,1527144234,1527144235,1527144236,1527144237,1527144238,1527144239,1527144240,1527144241,1527144242,1527144243,1527144244,1527144256,1527144257,1527144258,1527144259,1527144260,1527144261,1527144262,1527144263,1527144264,1527144265,1527144266,1527144267,1527144268,1527144269,1527144270,1527144271,1527144272,1527144273,1527144274,1527144275,1527144276,1527144277,1527144278,1527144279,1527144280,1527144281,1527144282,1527144283,1527144284,1527144285,1527144286,1527144287,1527144288,1527144289,1366832220,1366832219,1366831969,1366831968,1527144471,1527144472,1527144473,1527144474,1527144475,1527144476,1527144477,1527144478,1527144479,1527144480,1527144481,1527144482,1527144483,1527144484,1527144485,1527144486,1527144487,1527144488,1527144489,1527144490,1527144491,1527144492,1527144493,1527144494,1527144495,1527144496,1527144497,1527144498,1527144499,1527144500,1527144512,1527144513,1527144514,1527144515,1527144516,1527144517,1527144518,1527144519,1527144520,1527144521,1527144522,1527144523,1527144524,1527144525,1527144526,1527144527,1527144528,1527144529,1527144530,1527144531,1527144532,1527144533,1527144534,1527144535,1527144536,1527144537,1527144538,1527144539,1527144540,1527144541,1527144542,1527144543,1527144544,1527144545,1366831967,1366831966,1366831965,1366831964,1527144727,1527144728,1527144729,1527144730,1527144731,1527144732,1527144733,1527144734,1527144735,1527144736,1527144737,1527144738,1527144739,1527144740,1527144741,1527144742,1527144743,1527144744,1527144745,1527144746,1527144747,1527144748,1527144749,1527144750,1527144751,1527144752,1527144753,1527144754,1527144755,1527144756,1527144768,1527144769,1527144770,1527144771,1527144772,1527144773,1527144774,1527144775,1527144776,1527144777,1527144778,1527144779,1527144780,1527144781,1527144782,1527144783,1527144784,1527144785,1527144786,1527144787,1527144788,1527144789,1527144790,1527144791,1527144792,1527144793,1527144794,1527144795,1527144796,1527144797,1527144798,1527144799,1527144800,1527144801,1366831963,1366831713,1366831712,1366831711,1527190295,1527190296,1527190297,1527190298,1527190299,1527190300,1527190301,1527190302,1527190303,1527190304,1527190305,1527190306,1527190307,1527190308,1527190309,1527190310,1527190311,1527190312,1527190313,1527190314,1527190315,1527190316,1527190317,1527190318,1527190319,1527190320,1527190321,1527190322,1527190323,1527190324,1527190325,1527190326,1527190327,1527190328,1527190329,1527190330,1527190331,1527190332,1527190333,1527190334,1527190335,1527190336,1527190337,1527190338,1527190339,1527190340,1527190341,1527190342,1527190343,1527190344,1527190345,1527190346,1527190347,1527190348,1527190349,1527190350,1527190351,1527190352,1527190353,1527190354,1527190355,1527190356,1527190357,1527190358,1527190359,1527190360,1527190361,1527190362,1527190363,1527190364,1527190365,1527190366,1527190367,1527190368,1527190369,1366831710,1366831709,1366831708,1366831707,1527190551,1527190552,1527190553,1527190554,1527190555,1527190556,1527190557,1527190558,1527190559,1527190560,1527190561,1527190562,1527190563,1527190564,1527190565,1527190566,1527190567,1527190568,1527190569,1527190570,1527190571,1527190572,1527190573,1527190574,1527190575,1527190576,1527190577,1527190578,1527190579,1527190580,1527190581,1527190582,1527190583,1527190584,1527190585,1527190586,1527190587,1527190588,1527190589,1527190590,1527190591,1527190592,1527190593,1527190594,1527190595,1527190596,1527190597,1527190598,1527190599,1527190600,1527190601,1527190602,1527190603,1527190604,1527190605,1527190606,1527190607,1527190608,1527190609,1527190610,1527190611,1527190612,1527190613,1527190614,1527190615,1527190616,1527190617,1527190618,1527190619,1527190620,1527190621,1527190622,1527190623,1527190624,1527190625,1366831457,1366831456,1366831455,1366831454,1527190807,1527190808,1527190809,1527190810,1527190811,1527190812,1527190813,1527190814,1527190815,1527190816,1527190817,1527190818,1527190819,1527190820,1527190821,1527190822,1527190823,1527190824,1527190825,1527190826,1527190827,1527190828,1527190829,1527190830,1527190831,1527190832,1527190833,1527190834,1527190835,1527190836,1527190837,1527190838,1527190839,1527190840,1527190841,1527190842,1527190843,1527190844,1527190845,1527190846,1527190847,1527190848,1527190849,1527190850,1527190851,1527190852,1527190853,1527190854,1527190855,1527190856,1527190857,1527190858,1527190859,1527190860,1527190861,1527190862,1527190863,1527190864,1527190865,1527190866,1527190867,1527190868,1527190869,1527190870,1527190871,1527190872,1527190873,1527190874,1527190875,1527190876,1527190877,1527190878,1527190879,1527190880,1527190881,1366831453,1366831452,1366831451,1366831201,1527191063,1527191064,1527191065,1527191066,1527191067,1527191068,1527191069,1527191070,1527191071,1527191072,1527191073,1527191074,1527191075,1527191076,1527191077,1527191078,1527191079,1527191080,1527191081,1527191082,1527191083,1527191084,1527191085,1527191086,1527191087,1527191088,1527191089,1527191090,1527191091,1527191092,1527191093,1527191094,1527191095,1527191096,1527191097,1527191098,1527191099,1527191100,1527191101,1527191102,1527191103,1527191104,1527191105,1527191106,1527191107,1527191108,1527191109,1527191110,1527191111,1527191112,1527191113,1527191114,1527191115,1527191116,1527191117,1527191118,1527191119,1527191120,1527191121,1527191122,1527191123,1527191124,1527191125,1527191126,1527191127,1527191128,1527191129,1527191130,1527191131,1527191132,1527191133,1527191134,1527191135,1527191136,1527191137,1366831200,1366831199,1366831198,1366831197,1527191319,1527191320,1527191321,1527191322,1527191323,1527191324,1527191325,1527191326,1527191327,1527191328,1527191329,1527191330,1527191331,1527191332,1527191333,1527191334,1527191335,1527191336,1527191337,1527191338,1527191339,1527191340,1527191341,1527191342,1527191343,1527191344,1527191345,1527191346,1527191347,1527191348,1527191349,1527191350,1527191351,1527191352,1527191353,1527191354,1527191355,1527191356,1527191357,1527191358,1527191359,1527191360,1527191361,1527191362,1527191363,1527191364,1527191365,1527191366,1527191367,1527191368,1527191369,1527191370,1527191371,1527191372,1527191373,1527191374,1527191375,1527191376,1527191377,1527191378,1527191379,1527191380,1527191381,1527191382,1527191383,1527191384,1527191385,1527191386,1527191387,1527191388,1527191389,1527191390,1527191391,1527191392,1527191393,1366831196,1366831195,1366830945,1366830944,1527191575,1527191576,1527191577,1527191578,1527191579,1527191580,1527191581,1527191582,1527191583,1527191584,1527191585,1527191586,1527191587,1527191588,1527191589,1527191590,1527191591,1527191592,1527191593,1527191594,1527191595,1527191596,1527191597,1527191598,1527191599,1527191600,1527191601,1527191602,1527191603,1527191604,1527191605,1527191606,1527191607,1527191608,1527191609,1527191610,1527191611,1527191612,1527191613,1527191614,1527191615,1527191616,1527191617,1527191618,1527191619,1527191620,1527191621,1527191622,1527191623,1527191624,1527191625,1527191626,1527191627,1527191628,1527191629,1527191630,1527191631,1527191632,1527191633,1527191634,1527191635,1527191636,1527191637,1527191638,1527191639,1527191640,1527191641,1527191642,1527191643,1527191644,1527191645,1527191646,1527191647,1527191648,1527191649,1366830943,1366830942,1366830941,1366830940,1527191831,1527191832,1527191833,1527191834,1527191835,1527191836,1527191837,1527191838,1527191839,1527191840,1527191841,1527191842,1527191843,1527191844,1527191845,1527191846,1527191847,1527191848,1527191849,1527191850,1527191851,1527191852,1527191853,1527191854,1527191855,1527191856,1527191857,1527191858,1527191859,1527191860,1527191861,1527191862,1527191863,1527191864,1527191865,1527191866,1527191867,1527191868,1527191869,1527191870,1527191871,1527191872,1527191873,1527191874,1527191875,1527191876,1527191877,1527191878,1527191879,1527191880,1527191881,1527191882,1527191883,1527191884,1527191885,1527191886,1527191887,1527191888,1527191889,1527191890,1527191891,1527191892,1527191893,1527191894,1527191895,1527191896,1527191897,1527191898,1527191899,1527191900,1527191901,1527191902,1527191903,1527191904,1527191905,1366830939,1366830689,1366830688,1366830687,1527192087,1527192088,1527192089,1527192090,1527192091,1527192092,1527192093,1527192094,1527192095,1527192096,1527192097,1527192098,1527192099,1527192100,1527192101,1527192102,1527192103,1527192104,1527192105,1527192106,1527192107,1527192108,1527192109,1527192110,1527192111,1527192112,1527192113,1527192114,1527192115,1527192116,1527192117,1527192118,1527192119,1527192120,1527192121,1527192122,1527192123,1527192124,1527192125,1527192126,1527192127,1527192128,1527192129,1527192130,1527192131,1527192132,1527192133,1527192134,1527192135,1527192136,1527192137,1527192138,1527192139,1527192140,1527192141,1527192142,1527192143,1527192144,1527192145,1527192146,1527192147,1527192148,1527192149,1527192150,1527192151,1527192152,1527192153,1527192154,1527192155,1527192156,1527192157,1527192158,1527192159,1527192160,1527192161,1366830686,1366830685,1366830684,1366830683,1527192343,1527192344,1527192345,1527192346,1527192347,1527192348,1527192349,1527192350,1527192351,1527192352,1527192353,1527192354,1527192355,1527192356,1527192357,1527192358,1527192359,1527192360,1527192361,1527192362,1527192363,1527192364,1527192365,1527192366,1527192367,1527192368,1527192369,1527192370,1527192371,1527192372,1527192373,1527192374,1527192375,1527192376,1527192377,1527192378,1527192379,1527192380,1527192381,1527192382,1527192383,1527192384,1527192385,1527192386,1527192387,1527192388,1527192389,1527192390,1527192391,1527192392,1527192393,1527192394,1527192395,1527192396,1527192397,1527192398,1527192399,1527192400,1527192401,1527192402,1527192403,1527192404,1527192405,1527192406,1527192407,1527192408,1527192409,1527192410,1527192411,1527192412,1527192413,1527192414,1527192415,1527192416,1527192417,1366830433,1366830432,1366830431,1366830430,1527192599,1527192600,1527192601,1527192602,1527192603,1527192604,1527192605,1527192606,1527192607,1527192608,1527192609,1527192610,1527192611,1527192612,1527192613,1527192614,1527192615,1527192616,1527192617,1527192618,1527192619,1527192620,1527192621,1527192622,1527192623,1527192624,1527192625,1527192626,1527192627,1527192628,1527192629,1527192630,1527192631,1527192632,1527192633,1527192634,1527192635,1527192636,1527192637,1527192638,1527192639,1527192640,1527192641,1527192642,1527192643,1527192644,1527192645,1527192646,1527192647,1527192648,1527192649,1527192650,1527192651,1527192652,1527192653,1527192654,1527192655,1527192656,1527192657,1527192658,1527192659,1527192660,1527192661,1527192662,1527192663,1527192664,1527192665,1527192666,1527192667,1527192668,1527192669,1527192670,1527192671,1527192672,1527192673,1366830429,1366830428,1366830427,1366830177,1527192855,1527192856,1527192857,1527192858,1527192859,1527192860,1527192861,1527192862,1527192863,1527192864,1527192865,1527192866,1527192867,1527192868,1527192869,1527192870,1527192871,1527192872,1527192873,1527192874,1527192875,1527192876,1527192877,1527192878,1527192879,1527192880,1527192881,1527192882,1527192883,1527192884,1527192885,1527192886,1527192887,1527192888,1527192889,1527192890,1527192891,1527192892,1527192893,1527192894,1527192895,1527192896,1527192897,1527192898,1527192899,1527192900,1527192901,1527192902,1527192903,1527192904,1527192905,1527192906,1527192907,1527192908,1527192909,1527192910,1527192911,1527192912,1527192913,1527192914,1527192915,1527192916,1527192917,1527192918,1527192919,1527192920,1527192921,1527192922,1527192923,1527192924,1527192925,1527192926,1527192927,1527192928,1527192929,1366830176,1366830175,1366830174,1366830173,1527193111,1527193112,1527193113,1527193114,1527193115,1527193116,1527193117,1527193118,1527193119,1527193120,1527193121,1527193122,1527193123,1527193124,1527193125,1527193126,1527193127,1527193128,1527193129,1527193130,1527193131,1527193132,1527193133,1527193134,1527193135,1527193136,1527193137,1527193138,1527193139,1527193140,1527193141,1527193142,1527193143,1527193144,1527193145,1527193146,1527193147,1527193148,1527193149,1527193150,1527193151,1527193152,1527193153,1527193154,1527193155,1527193156,1527193157,1527193158,1527193159,1527193160,1527193161,1527193162,1527193163,1527193164,1527193165,1527193166,1527193167,1527193168,1527193169,1527193170,1527193171,1527193172,1527193173,1527193174,1527193175,1527193176,1527193177,1527193178,1527193179,1527193180,1527193181,1527193182,1527193183,1527193184,1527193185,1366830172,1366830171,1366829921,1366829920,1527193367,1527193368,1527193369,1527193370,1527193371,1527193372,1527193373,1527193374,1527193375,1527193376,1527193377,1527193378,1527193379,1527193380,1527193381,1527193382,1527193383,1527193384,1527193385,1527193386,1527193387,1527193388,1527193389,1527193390,1527193391,1527193392,1527193393,1527193394,1527193395,1527193396,1527193397,1527193398,1527193399,1527193400,1527193401,1527193402,1527193403,1527193404,1527193405,1527193406,1527193407,1527193408,1527193409,1527193410,1527193411,1527193412,1527193413,1527193414,1527193415,1527193416,1527193417,1527193418,1527193419,1527193420,1527193421,1527193422,1527193423,1527193424,1527193425,1527193426,1527193427,1527193428,1527193429,1527193430,1527193431,1527193432,1527193433,1527193434,1527193435,1527193436,1527193437,1527193438,1527193439,1527193440,1527193441,1366829919,1366829918,1366829917,1366829916,1527193623,1527193624,1527193625,1527193626,1527193627,1527193628,1527193629,1527193630,1527193631,1527193632,1527193633,1527193634,1527193635,1527193636,1527193637,1527193638,1527193639,1527193640,1527193641,1527193642,1527193643,1527193644,1527193645,1527193646,1527193647,1527193648,1527193649,1527193650,1527193651,1527193652,1527193653,1527193654,1527193655,1527193656,1527193657,1527193658,1527193659,1527193660,1527193661,1527193662,1527193663,1527193664,1527193665,1527193666,1527193667,1527193668,1527193669,1527193670,1527193671,1527193672,1527193673,1527193674,1527193675,1527193676,1527193677,1527193678,1527193679,1527193680,1527193681,1527193682,1527193683,1527193684,1527193685,1527193686,1527193687,1527193688,1527193689,1527193690,1527193691,1527193692,1527193693,1527193694,1527193695,1527193696,1527193697,1366829915,1366829665,1366829664,1366829663,1527193879,1527193880,1527193881,1527193882,1527193883,1527193884,1527193885,1527193886,1527193887,1527193888,1527193889,1527193890,1527193891,1527193892,1527193893,1527193894,1527193895,1527193896,1527193897,1527193898,1527193899,1527193900,1527193901,1527193902,1527193903,1527193904,1527193905,1527193906,1527193907,1527193908,1527193909,1527193910,1527193911,1527193912,1527193913,1527193914,1527193915,1527193916,1527193917,1527193918,1527193919,1527193920,1527193921,1527193922,1527193923,1527193924,1527193925,1527193926,1527193927,1527193928,1527193929,1527193930,1527193931,1527193932,1527193933,1527193934,1527193935,1527193936,1527193937,1527193938,1527193939,1527193940,1527193941,1527193942,1527193943,1527193944,1527193945,1527193946,1527193947,1527193948,1527193949,1527193950,1527193951,1527193952,1527193953,1366829662,1366829661,1366829660,1366829659,1527194135,1527194136,1527194137,1527194138,1527194139,1527194140,1527194141,1527194142,1527194143,1527194144,1527194145,1527194146,1527194147,1527194148,1527194149,1527194150,1527194151,1527194152,1527194153,1527194154,1527194155,1527194156,1527194157,1527194158,1527194159,1527194160,1527194161,1527194162,1527194163,1527194164,1527194165,1527194166,1527194167,1527194168,1527194169,1527194170,1527194171,1527194172,1527194173,1527194174,1527194175,1527194176,1527194177,1527194178,1527194179,1527194180,1527194181,1527194182,1527194183,1527194184,1527194185,1527194186,1527194187,1527194188,1527194189,1527194190,1527194191,1527194192,1527194193,1527194194,1527194195,1527194196,1527194197,1527194198,1527194199,1527194200,1527194201,1527194202,1527194203,1527194204,1527194205,1527194206,1527194207,1527194208,1527194209,1366829409,1366829408,1366829407,1366829406,1527194391,1527194392,1527194393,1527194394,1527194395,1527194396,1527194397,1527194398,1527194399,1527194400,1527194401,1527194402,1527194403,1527194404,1527194405,1527194406,1527194407,1527194408,1527194409,1527194410,1527194411,1527194412,1527194413,1527194414,1527194415,1527194416,1527194417,1527194418,1527194419,1527194420,1527194421,1527194422,1527194423,1527194424,1527194425,1527194426,1527194427,1527194428,1527194429,1527194430,1527194431,1527194432,1527194433,1527194434,1527194435,1527194436,1527194437,1527194438,1527194439,1527194440,1527194441,1527194442,1527194443,1527194444,1527194445,1527194446,1527194447,1527194448,1527194449,1527194450,1527194451,1527194452,1527194453,1527194454,1527194455,1527194456,1527194457,1527194458,1527194459,1527194460,1527194461,1527194462,1527194463,1527194464,1527194465,1366829405,1366829404,1366829403,1366829153,1527194647,1527194648,1527194649,1527194650,1527194651,1527194652,1527194653,1527194654,1527194655,1527194656,1527194657,1527194658,1527194659,1527194660,1527194661,1527194662,1527194663,1527194664,1527194665,1527194666,1527194667,1527194668,1527194669,1527194670,1527194671,1527194672,1527194673,1527194674,1527194675,1527194676,1527194677,1527194678,1527194679,1527194680,1527194681,1527194682,1527194683,1527194684,1527194685,1527194686,1527194687,1527194688,1527194689,1527194690,1527194691,1527194692,1527194693,1527194694,1527194695,1527194696,1527194697,1527194698,1527194699,1527194700,1527194701,1527194702,1527194703,1527194704,1527194705,1527194706,1527194707,1527194708,1527194709,1527194710,1527194711,1527194712,1527194713,1527194714,1527194715,1527194716,1527194717,1527194718,1527194719,1527194720,1527194721,1366829152,1366829151,1366829150,1366829149,1527194903,1527194904,1527194905,1527194906,1527194907,1527194908,1527194909,1527194910,1527194911,1527194912,1527194913,1527194914,1527194915,1527194916,1527194917,1527194918,1527194919,1527194920,1527194921,1527194922,1527194923,1527194924,1527194925,1527194926,1527194927,1527194928,1527194929,1527194930,1527194931,1527194932,1527194933,1527194934,1527194935,1527194936,1527194937,1527194938,1527194939,1527194940,1527194941,1527194942,1527194943,1527194944,1527194945,1527194946,1527194947,1527194948,1527194949,1527194950,1527194951,1527194952,1527194953,1527194954,1527194955,1527194956,1527194957,1527194958,1527194959,1527194960,1527194961,1527194962,1527194963,1527194964,1527194965,1527194966,1527194967,1527194968,1527194969,1527194970,1527194971,1527194972,1527194973,1527194974,1527194975,1527194976,1527194977,1366829148,1366829147,1366828897,1366828896,1527195159,1527195160,1527195161,1527195162,1527195163,1527195164,1527195165,1527195166,1527195167,1527195168,1527195169,1527195170,1527195171,1527195172,1527195173,1527195174,1527195175,1527195176,1527195177,1527195178,1527195179,1527195180,1527195181,1527195182,1527195183,1527195184,1527195185,1527195186,1527195187,1527195188,1527195189,1527195190,1527195191,1527195192,1527195193,1527195194,1527195195,1527195196,1527195197,1527195198,1527195199,1527195200,1527195201,1527195202,1527195203,1527195204,1527195205,1527195206,1527195207,1527195208,1527195209,1527195210,1527195211,1527195212,1527195213,1527195214,1527195215,1527195216,1527195217,1527195218,1527195219,1527195220,1527195221,1527195222,1527195223,1527195224,1527195225,1527195226,1527195227,1527195228,1527195229,1527195230,1527195231,1527195232,1527195233,1366828895,1366828894,1366828893,1366828892,1527195415,1527195416,1527195417,1527195418,1527195419,1527195420,1527195421,1527195422,1527195423,1527195424,1527195425,1527195426,1527195427,1527195428,1527195429,1527195430,1527195431,1527195432,1527195433,1527195434,1527195435,1527195436,1527195437,1527195438,1527195439,1527195440,1527195441,1527195442,1527195443,1527195444,1527195445,1527195446,1527195447,1527195448,1527195449,1527195450,1527195451,1527195452,1527195453,1527195454,1527195455,1527195456,1527195457,1527195458,1527195459,1527195460,1527195461,1527195462,1527195463,1527195464,1527195465,1527195466,1527195467,1527195468,1527195469,1527195470,1527195471,1527195472,1527195473,1527195474,1527195475,1527195476,1527195477,1527195478,1527195479,1527195480,1527195481,1527195482,1527195483,1527195484,1527195485,1527195486,1527195487,1527195488,1527195489,1366828891,1366828641,1366828640,1366828639,1527195671,1527195672,1527195673,1527195674,1527195675,1527195676,1527195677,1527195678,1527195679,1527195680,1527195681,1527195682,1527195683,1527195684,1527195685,1527195686,1527195687,1527195688,1527195689,1527195690,1527195691,1527195692,1527195693,1527195694,1527195695,1527195696,1527195697,1527195698,1527195699,1527195700,1527195701,1527195702,1527195703,1527195704,1527195705,1527195706,1527195707,1527195708,1527195709,1527195710,1527195711,1527195712,1527195713,1527195714,1527195715,1527195716,1527195717,1527195718,1527195719,1527195720,1527195721,1527195722,1527195723,1527195724,1527195725,1527195726,1527195727,1527195728,1527195729,1527195730,1527195731,1527195732,1527195733,1527195734,1527195735,1527195736,1527195737,1527195738,1527195739,1527195740,1527195741,1527195742,1527195743,1527195744,1527195745,1366828638,1366828637,1366828636,1366828635,1527195927,1527195928,1527195929,1527195930,1527195931,1527195932,1527195933,1527195934,1527195935,1527195936,1527195937,1527195938,1527195939,1527195940,1527195941,1527195942,1527195943,1527195944,1527195945,1527195946,1527195947,1527195948,1527195949,1527195950,1527195951,1527195952,1527195953,1527195954,1527195955,1527195956,1527195957,1527195958,1527195959,1527195960,1527195961,1527195962,1527195963,1527195964,1527195965,1527195966,1527195967,1527195968,1527195969,1527195970,1527195971,1527195972,1527195973,1527195974,1527195975,1527195976,1527195977,1527195978,1527195979,1527195980,1527195981,1527195982,1527195983,1527195984,1527195985,1527195986,1527195987,1527195988,1527195989,1527195990,1527195991,1527195992,1527195993,1527195994,1527195995,1527195996,1527195997,1527195998,1527195999,1527196000,1527196001,1366828385,1366828384,1366828383,1366828382,1527196183,1527196184,1527196185,1527196186,1527196187,1527196188,1527196189,1527196190,1527196191,1527196192,1527196193,1527196194,1527196195,1527196196,1527196197,1527196198,1527196199,1527196200,1527196201,1527196202,1527196203,1527196204,1527196205,1527196206,1527196207,1527196208,1527196209,1527196210,1527196211,1527196212,1527196213,1527196214,1527196215,1527196216,1527196217,1527196218,1527196219,1527196220,1527196221,1527196222,1527196223,1527196224,1527196225,1527196226,1527196227,1527196228,1527196229,1527196230,1527196231,1527196232,1527196233,1527196234,1527196235,1527196236,1527196237,1527196238,1527196239,1527196240,1527196241,1527196242,1527196243,1527196244,1527196245,1527196246,1527196247,1527196248,1527196249,1527196250,1527196251,1527196252,1527196253,1527196254,1527196255,1527196256,1527196257,1366828381,1366828380,1366828379,1366828129,1527196439,1527196440,1527196441,1527196442,1527196443,1527196444,1527196445,1527196446,1527196447,1527196448,1527196449,1527196450,1527196451,1527196452,1527196453,1527196454,1527196455,1527196456,1527196457,1527196458,1527196459,1527196460,1527196461,1527196462,1527196463,1527196464,1527196465,1527196466,1527196467,1527196468,1527196469,1527196470,1527196471,1527196472,1527196473,1527196474,1527196475,1527196476,1527196477,1527196478,1527196479,1527196480,1527196481,1527196482,1527196483,1527196484,1527196485,1527196486,1527196487,1527196488,1527196489,1527196490,1527196491,1527196492,1527196493,1527196494,1527196495,1527196496,1527196497,1527196498,1527196499,1527196500,1527196501,1527196502,1527196503,1527196504,1527196505,1527196506,1527196507,1527196508,1527196509,1527196510,1527196511,1527196512,1527196513,1366828128,1366828127,1366828126,1366828125,1527196695,1527196696,1527196697,1527196698,1527196699,1527196700,1527196701,1527196702,1527196703,1527196704,1527196705,1527196706,1527196707,1527196708,1527196709,1527196710,1527196711,1527196712,1527196713,1527196714,1527196715,1527196716,1527196717,1527196718,1527196719,1527196720,1527196721,1527196722,1527196723,1527196724,1527196725,1527196726,1527196727,1527196728,1527196729,1527196730,1527196731,1527196732,1527196733,1527196734,1527196735,1527196736,1527196737,1527196738,1527196739,1527196740,1527196741,1527196742,1527196743,1527196744,1527196745,1527196746,1527196747,1527196748,1527196749,1527196750,1527196751,1527196752,1527196753,1527196754,1527196755,1527196756,1527196757,1527196758,1527196759,1527196760,1527196761,1527196762,1527196763,1527196764,1527196765,1527196766,1527196767,1527196768,1527196769,1366828124,1366828123,1366827873,1366827872,1527196951,1527196952,1527196953,1527196954,1527196955,1527196956,1527196957,1527196958,1527196959,1527196960,1527196961,1527196962,1527196963,1527196964,1527196965,1527196966,1527196967,1527196968,1527196969,1527196970,1527196971,1527196972,1527196973,1527196974,1527196975,1527196976,1527196977,1527196978,1527196979,1527196980,1527196981,1527196982,1527196983,1527196984,1527196985,1527196986,1527196987,1527196988,1527196989,1527196990,1527196991,1527196992,1527196993,1527196994,1527196995,1527196996,1527196997,1527196998,1527196999,1527197000,1527197001,1527197002,1527197003,1527197004,1527197005,1527197006,1527197007,1527197008,1527197009,1527197010,1527197011,1527197012,1527197013,1527197014,1527197015,1527197016,1527197017,1527197018,1527197019,1527197020,1527197021,1527197022,1527197023,1527197024,1527197025,1366827871,1366827870,1366827869,1366827868,1527197207,1527197208,1527197209,1527197210,1527197211,1527197212,1527197213,1527197214,1527197215,1527197216,1527197217,1527197218,1527197219,1527197220,1527197221,1527197222,1527197223,1527197224,1527197225,1527197226,1527197227,1527197228,1527197229,1527197230,1527197231,1527197232,1527197233,1527197234,1527197235,1527197236,1527197237,1527197238,1527197239,1527197240,1527197241,1527197242,1527197243,1527197244,1527197245,1527197246,1527197247,1527197248,1527197249,1527197250,1527197251,1527197252,1527197253,1527197254,1527197255,1527197256,1527197257,1527197258,1527197259,1527197260,1527197261,1527197262,1527197263,1527197264,1527197265,1527197266,1527197267,1527197268,1527197269,1527197270,1527197271,1527197272,1527197273,1527197274,1527197275,1527197276,1527197277,1527197278,1527197279,1527197280,1527197281,1366827867,1366827617,1366827616,1366827615,1527197463,1527197464,1527197465,1527197466,1527197467,1527197468,1527197469,1527197470,1527197471,1527197472,1527197473,1527197474,1527197475,1527197476,1527197477,1527197478,1527197479,1527197480,1527197481,1527197482,1527197483,1527197484,1527197485,1527197486,1527197487,1527197488,1527197489,1527197490,1527197491,1527197492,1527197493,1527197494,1527197495,1527197496,1527197497,1527197498,1527197499,1527197500,1527197501,1527197502,1527197503,1527197504,1527197505,1527197506,1527197507,1527197508,1527197509,1527197510,1527197511,1527197512,1527197513,1527197514,1527197515,1527197516,1527197517,1527197518,1527197519,1527197520,1527197521,1527197522,1527197523,1527197524,1527197525,1527197526,1527197527,1527197528,1527197529,1527197530,1527197531,1527197532,1527197533,1527197534,1527197535,1527197536,1527197537,1366827614,1366827613,1366827612,1366827611,1527197719,1527197720,1527197721,1527197722,1527197723,1527197724,1527197725,1527197726,1527197727,1527197728,1527197729,1527197730,1527197731,1527197732,1527197733,1527197734,1527197735,1527197736,1527197737,1527197738,1527197739,1527197740,1527197741,1527197742,1527197743,1527197744,1527197745,1527197746,1527197747,1527197748,1527197749,1527197750,1527197751,1527197752,1527197753,1527197754,1527197755,1527197756,1527197757,1527197758,1527197759,1527197760,1527197761,1527197762,1527197763,1527197764,1527197765,1527197766,1527197767,1527197768,1527197769,1527197770,1527197771,1527197772,1527197773,1527197774,1527197775,1527197776,1527197777,1527197778,1527197779,1527197780,1527197781,1527197782,1527197783,1527197784,1527197785,1527197786,1527197787,1527197788,1527197789,1527197790,1527197791,1527197792,1527197793,1366827361,1366827360,1366827359,1366827358,1527197975,1527197976,1527197977,1527197978,1527197979,1527197980,1527197981,1527197982,1527197983,1527197984,1527197985,1527197986,1527197987,1527197988,1527197989,1527197990,1527197991,1527197992,1527197993,1527197994,1527197995,1527197996,1527197997,1527197998,1527197999,1527198000,1527198001,1527198002,1527198003,1527198004,1527198005,1527198006,1527198007,1527198008,1527198009,1527198010,1527198011,1527198012,1527198013,1527198014,1527198015,1527198016,1527198017,1527198018,1527198019,1527198020,1527198021,1527198022,1527198023,1527198024,1527198025,1527198026,1527198027,1527198028,1527198029,1527198030,1527198031,1527198032,1527198033,1527198034,1527198035,1527198036,1527198037,1527198038,1527198039,1527198040,1527198041,1527198042,1527198043,1527198044,1527198045,1527198046,1527198047,1527198048,1527198049,1366827357,1366827356,1366827355,1366827105,1527198231,1527198232,1527198233,1527198234,1527198235,1527198236,1527198237,1527198238,1527198239,1527198240,1527198241,1527198242,1527198243,1527198244,1527198245,1527198246,1527198247,1527198248,1527198249,1527198250,1527198251,1527198252,1527198253,1527198254,1527198255,1527198256,1527198257,1527198258,1527198259,1527198260,1527198261,1527198262,1527198263,1527198264,1527198265,1527198266,1527198267,1527198268,1527198269,1527198270,1527198271,1527198272,1527198273,1527198274,1527198275,1527198276,1527198277,1527198278,1527198279,1527198280,1527198281,1527198282,1527198283,1527198284,1527198285,1527198286,1527198287,1527198288,1527198289,1527198290,1527198291,1527198292,1527198293,1527198294,1527198295,1527198296,1527198297,1527198298,1527198299,1527198300,1527198301,1527198302,1527198303,1527198304,1527198305,1366827104,1366827103,1366827102,1366827101,1527198487,1527198488,1527198489,1527198490,1527198491,1527198492,1527198493,1527198494,1527198495,1527198496,1527198497,1527198498,1527198499,1527198500,1527198501,1527198502,1527198503,1527198504,1527198505,1527198506,1527198507,1527198508,1527198509,1527198510,1527198511,1527198512,1527198513,1527198514,1527198515,1527198516,1527198517,1527198518,1527198519,1527198520,1527198521,1527198522,1527198523,1527198524,1527198525,1527198526,1527198527,1527198528,1527198529,1527198530,1527198531,1527198532,1527198533,1527198534,1527198535,1527198536,1527198537,1527198538,1527198539,1527198540,1527198541,1527198542,1527198543,1527198544,1527198545,1527198546,1527198547,1527198548,1527198549,1527198550,1527198551,1527198552,1527198553,1527198554,1527198555,1527198556,1527198557,1527198558,1527198559,1527198560,1527198561,1366827100,1366827099,1366826849,1366826848,1527198743,1527198744,1527198745,1527198746,1527198747,1527198748,1527198749,1527198750,1527198751,1527198752,1527198753,1527198754,1527198755,1527198756,1527198757,1527198758,1527198759,1527198760,1527198761,1527198762,1527198763,1527198764,1527198765,1527198766,1527198767,1527198768,1527198769,1527198770,1527198771,1527198772,1527198773,1527198774,1527198775,1527198776,1527198777,1527198778,1527198779,1527198780,1527198781,1527198782,1527198783,1527198784,1527198785,1527198786,1527198787,1527198788,1527198789,1527198790,1527198791,1527198792,1527198793,1527198794,1527198795,1527198796,1527198797,1527198798,1527198799,1527198800,1527198801,1527198802,1527198803,1527198804,1527198805,1527198806,1527198807,1527198808,1527198809,1527198810,1527198811,1527198812,1527198813,1527198814,1527198815,1527198816,1527198817,1366826847,1366826846,1366826845,1366826844,1527198999,1527199000,1527199001,1527199002,1527199003,1527199004,1527199005,1527199006,1527199007,1527199008,1527199009,1527199010,1527199011,1527199012,1527199013,1527199014,1527199015,1527199016,1527199017,1527199018,1527199019,1527199020,1527199021,1527199022,1527199023,1527199024,1527199025,1527199026,1527199027,1527199028,1527199029,1527199030,1527199031,1527199032,1527199033,1527199034,1527199035,1527199036,1527199037,1527199038,1527199039,1527199040,1527199041,1527199042,1527199043,1527199044,1527199045,1527199046,1527199047,1527199048,1527199049,1527199050,1527199051,1527199052,1527199053,1527199054,1527199055,1527199056,1527199066,1527199067,1527199068,1527199069,1527199070,1527199071,1527199072,1527199073,1366826843,1366826593,1366826592,1366826591,1527199255,1527199256,1527199257,1527199258,1527199259,1527199260,1527199261,1527199262,1527199263,1527199264,1527199265,1527199266,1527199267,1527199268,1527199269,1527199270,1527199271,1527199272,1527199273,1527199274,1527199275,1527199276,1527199277,1527199278,1527199279,1527199280,1527199281,1527199282,1527199283,1527199284,1527199285,1527199286,1527199287,1527199288,1527199289,1527199290,1527199291,1527199292,1527199293,1527199294,1527199295,1527199296,1527199297,1527199298,1527199299,1527199300,1527199301,1527199302,1527199303,1527199304,1527199305,1527199306,1527199307,1527199308,1527199309,1527199310,1527199311,1527199323,1527199324,1527199325,1527199326,1527199327,1527199328,1527199329,1366826590,1366826589,1366826588,1366826587,1527199511,1527199512,1527199513,1527199514,1527199515,1527199516,1527199517,1527199518,1527199519,1527199520,1527199521,1527199522,1527199523,1527199524,1527199525,1527199526,1527199527,1527199528,1527199529,1527199530,1527199531,1527199532,1527199533,1527199534,1527199535,1527199536,1527199537,1527199538,1527199539,1527199540,1527199541,1527199542,1527199543,1527199544,1527199545,1527199546,1527199547,1527199548,1527199549,1527199550,1527199551,1527199552,1527199553,1527199554,1527199555,1527199556,1527199557,1527199558,1527199559,1527199560,1527199561,1527199562,1527199563,1527199564,1527199565,1527199566,1527199567,1527199579,1527199580,1527199581,1527199582,1527199583,1527199584,1527199585,1366826337,1366826336,1366826335,1366826334,1527199767,1527199768,1527199769,1527199770,1527199771,1527199772,1527199773,1527199774,1527199775,1527199776,1527199777,1527199778,1527199779,1527199780,1527199781,1527199782,1527199783,1527199784,1527199785,1527199786,1527199787,1527199788,1527199789,1527199790,1527199791,1527199792,1527199793,1527199794,1527199795,1527199796,1527199797,1527199798,1527199799,1527199800,1527199801,1527199802,1527199803,1527199804,1527199805,1527199806,1527199807,1527199808,1527199809,1527199810,1527199811,1527199812,1527199813,1527199814,1527199815,1527199816,1527199817,1527199818,1527199819,1527199820,1527199821,1527199822,1527199823,1527199835,1527199836,1527199837,1527199838,1527199839,1527199840,1527199841,1366826333,1366826332,1366826331,1366826081,1527200023,1527200024,1527200025,1527200026,1527200027,1527200028,1527200029,1527200030,1527200031,1527200032,1527200033,1527200034,1527200035,1527200036,1527200037,1527200038,1527200039,1527200040,1527200041,1527200042,1527200043,1527200044,1527200045,1527200046,1527200047,1527200048,1527200049,1527200050,1527200051,1527200052,1527200053,1527200054,1527200055,1527200056,1527200057,1527200058,1527200059,1527200060,1527200061,1527200062,1527200063,1527200064,1527200065,1527200066,1527200067,1527200068,1527200069,1527200070,1527200071,1527200072,1527200073,1527200074,1527200075,1527200076,1527200077,1527200078,1527200079,1527200091,1527200092,1527200093,1527200094,1527200095,1527200096,1527200097,1366826080,1366826079,1366826078,1366826077,1527200279,1527200280,1527200281,1527200282,1527200283,1527200284,1527200285,1527200286,1527200287,1527200288,1527200289,1527200290,1527200291,1527200292,1527200293,1527200294,1527200295,1527200296,1527200297,1527200298,1527200299,1527200300,1527200301,1527200302,1527200303,1527200304,1527200305,1527200306,1527200307,1527200308,1527200309,1527200310,1527200311,1527200312,1527200313,1527200314,1527200315,1527200316,1527200317,1527200318,1527200319,1527200320,1527200321,1527200322,1527200323,1527200324,1527200325,1527200326,1527200327,1527200328,1527200329,1527200330,1527200331,1527200332,1527200333,1527200334,1527200335,1527200347,1527200348,1527200349,1527200350,1527200351,1527200352,1527200353,1366826076,1366826075,1366825825,1366825824,1527200535,1527200536,1527200537,1527200538,1527200539,1527200540,1527200541,1527200542,1527200543,1527200544,1527200545,1527200546,1527200547,1527200548,1527200549,1527200550,1527200551,1527200552,1527200553,1527200554,1527200555,1527200556,1527200557,1527200558,1527200559,1527200560,1527200561,1527200562,1527200563,1527200564,1527200565,1527200566,1527200567,1527200568,1527200569,1527200570,1527200571,1527200572,1527200573,1527200574,1527200575,1527200576,1527200577,1527200578,1527200579,1527200580,1527200581,1527200582,1527200583,1527200584,1527200585,1527200586,1527200587,1527200588,1527200589,1527200590,1527200591,1527200603,1527200604,1527200605,1527200606,1527200607,1527200608,1527200609,1366825823,1366825822,1366825821,1366825820,1527200791,1527200792,1527200793,1527200794,1527200795,1527200796,1527200797,1527200798,1527200799,1527200800,1527200801,1527200802,1527200803,1527200804,1527200805,1527200806,1527200807,1527200808,1527200809,1527200810,1527200811,1527200812,1527200813,1527200814,1527200815,1527200816,1527200817,1527200818,1527200819,1527200820,1527200821,1527200822,1527200823,1527200824,1527200825,1527200826,1527200827,1527200828,1527200829,1527200830,1527200831,1527200832,1527200833,1527200834,1527200835,1527200836,1527200837,1527200838,1527200839,1527200840,1527200841,1527200842,1527200843,1527200844,1527200845,1527200846,1527200847,1527200859,1527200860,1527200861,1527200862,1527200863,1527200864,1527200865,1366825819,1366825569,1366825568,1366825567,1527201047,1527201048,1527201049,1527201050,1527201051,1527201052,1527201053,1527201054,1527201055,1527201056,1527201057,1527201058,1527201059,1527201060,1527201061,1527201062,1527201063,1527201064,1527201065,1527201066,1527201067,1527201068,1527201069,1527201070,1527201071,1527201072,1527201073,1527201074,1527201075,1527201076,1527201077,1527201078,1527201079,1527201080,1527201081,1527201082,1527201083,1527201084,1527201085,1527201086,1527201087,1527201088,1527201089,1527201090,1527201091,1527201092,1527201093,1527201094,1527201095,1527201096,1527201097,1527201098,1527201099,1527201100,1527201101,1527201102,1527201103,1527201115,1527201116,1527201117,1527201118,1527201119,1527201120,1527201121,1366825566,1366825565,1366825564,1366825563,1527201303,1527201304,1527201305,1527201306,1527201307,1527201308,1527201309,1527201310,1527201311,1527201312,1527201313,1527201314,1527201315,1527201316,1527201317,1527201318,1527201319,1527201320,1527201321,1527201322,1527201323,1527201324,1527201325,1527201326,1527201327,1527201328,1527201329,1527201330,1527201331,1527201332,1527201333,1527201334,1527201335,1527201336,1527201337,1527201338,1527201339,1527201340,1527201341,1527201342,1527201343,1527201344,1527201345,1527201346,1527201347,1527201348,1527201349,1527201350,1527201351,1527201352,1527201353,1527201354,1527201355,1527201356,1527201357,1527201358,1527201359,1527201371,1527201372,1527201373,1527201374,1527201375,1527201376,1527201377,1366825313,1366825312,1366825311,1366825310,1527201559,1527201560,1527201561,1527201562,1527201563,1527201564,1527201565,1527201566,1527201567,1527201568,1527201569,1527201570,1527201571,1527201572,1527201573,1527201574,1527201575,1527201576,1527201577,1527201578,1527201579,1527201580,1527201581,1527201582,1527201583,1527201584,1527201585,1527201586,1527201587,1527201588,1527201589,1527201590,1527201591,1527201592,1527201593,1527201594,1527201595,1527201596,1527201597,1527201598,1527201599,1527201600,1527201601,1527201602,1527201603,1527201604,1527201605,1527201606,1527201607,1527201608,1527201609,1527201610,1527201611,1527201612,1527201613,1527201614,1527201615,1527201616,1527201626,1527201627,1527201628,1527201629,1527201630,1527201631,1527201632,1527201633,1366825309,1366825308,1366825307,1366825057,1527201815,1527201816,1527201817,1527201818,1527201819,1527201820,1527201821,1527201822,1527201823,1527201824,1527201825,1527201826,1527201827,1527201828,1527201829,1527201830,1527201831,1527201832,1527201833,1527201834,1527201835,1527201836,1527201837,1527201838,1527201839,1527201840,1527201841,1527201842,1527201843,1527201844,1527201845,1527201846,1527201847,1527201848,1527201849,1527201850,1527201851,1527201852,1527201853,1527201854,1527201855,1527201856,1527201857,1527201858,1527201859,1527201860,1527201861,1527201862,1527201863,1527201864,1527201865,1527201866,1527201867,1527201868,1527201869,1527201870,1527201871,1527201872,1527201873,1527201874,1527201875,1527201876,1527201877,1527201878,1527201879,1527201880,1527201881,1527201882,1527201883,1527201884,1527201885,1527201886,1527201887,1527201888,1527201889,1366825056,1366825055,1366825054,1366825053,1527202071,1527202072,1527202073,1527202074,1527202075,1527202076,1527202077,1527202078,1527202079,1527202080,1527202081,1527202082,1527202083,1527202084,1527202085,1527202086,1527202087,1527202088,1527202089,1527202090,1527202091,1527202092,1527202093,1527202094,1527202095,1527202096,1527202097,1527202098,1527202099,1527202100,1527202101,1527202102,1527202103,1527202104,1527202105,1527202106,1527202107,1527202108,1527202109,1527202110,1527202111,1527202112,1527202113,1527202114,1527202115,1527202116,1527202117,1527202118,1527202119,1527202120,1527202121,1527202122,1527202123,1527202124,1527202125,1527202126,1527202127,1527202128,1527202129,1527202130,1527202131,1527202132,1527202133,1527202134,1527202135,1527202136,1527202137,1527202138,1527202139,1527202140,1527202141,1527202142,1527202143,1527202144,1527202145,1366825052,1366825051,1366824801,1366824800,1527202327,1527202328,1527202329,1527202330,1527202331,1527202332,1527202333,1527202334,1527202335,1527202336,1527202337,1527202338,1527202339,1527202340,1527202341,1527202342,1527202343,1527202344,1527202345,1527202346,1527202347,1527202348,1527202349,1527202350,1527202351,1527202352,1527202353,1527202354,1527202355,1527202356,1527202357,1527202358,1527202359,1527202360,1527202361,1527202362,1527202363,1527202364,1527202365,1527202366,1527202367,1527202368,1527202369,1527202370,1527202371,1527202372,1527202373,1527202374,1527202375,1527202376,1527202377,1527202378,1527202379,1527202380,1527202381,1527202382,1527202383,1527202384,1527202385,1527202386,1527202387,1527202388,1527202389,1527202390,1527202391,1527202392,1527202393,1527202394,1527202395,1527202396,1527202397,1527202398,1527202399,1527202400,1527202401,1366824799,1366824798,1366824797,1366824796,1527202583,1527202584,1527202585,1527202586,1527202587,1527202588,1527202589,1527202590,1527202591,1527202592,1527202593,1527202594,1527202595,1527202596,1527202597,1527202598,1527202599,1527202600,1527202601,1527202602,1527202603,1527202604,1527202605,1527202606,1527202607,1527202608,1527202609,1527202610,1527202611,1527202612,1527202613,1527202614,1527202615,1527202616,1527202617,1527202618,1527202619,1527202620,1527202621,1527202622,1527202623,1527202624,1527202625,1527202626,1527202627,1527202628,1527202629,1527202630,1527202631,1527202632,1527202633,1527202634,1527202635,1527202636,1527202637,1527202638,1527202639,1527202640,1527202641,1527202642,1527202643,1527202644,1527202645,1527202646,1527202647,1527202648,1527202649,1527202650,1527202651,1527202652,1527202653,1527202654,1527202655,1527202656,1527202657,1366824795,1366824545,1366824544,1366824543,1527202839,1527202840,1527202841,1527202842,1527202843,1527202844,1527202845,1527202846,1527202847,1527202848,1527202849,1527202850,1527202851,1527202852,1527202853,1527202854,1527202855,1527202856,1527202857,1527202858,1527202859,1527202860,1527202861,1527202862,1527202863,1527202864,1527202865,1527202866,1527202867,1527202868,1527202869,1527202870,1527202871,1527202872,1527202873,1527202874,1527202875,1527202876,1527202877,1527202878,1527202879,1527202880,1527202881,1527202882,1527202883,1527202884,1527202885,1527202886,1527202887,1527202888,1527202889,1527202890,1527202891,1527202892,1527202893,1527202894,1527202895,1527202896,1527202897,1527202898,1527202899,1527202900,1527202901,1527202902,1527202903,1527202904,1527202905,1527202906,1527202907,1527202908,1527202909,1527202910,1527202911,1527202912,1527202913,1366824542,1366824541,1366824540,1366824539,1527203095,1527203096,1527203097,1527203098,1527203099,1527203100,1527203101,1527203102,1527203103,1527203104,1527203105,1527203106,1527203107,1527203108,1527203109,1527203110,1527203111,1527203112,1527203113,1527203114,1527203115,1527203116,1527203117,1527203118,1527203119,1527203120,1527203121,1527203122,1527203123,1527203124,1527203125,1527203126,1527203127,1527203128,1527203129,1527203130,1527203131,1527203132,1527203133,1527203134,1527203135,1527203136,1527203137,1527203138,1527203139,1527203140,1527203141,1527203142,1527203143,1527203144,1527203145,1527203146,1527203147,1527203148,1527203149,1527203150,1527203151,1527203152,1527203153,1527203154,1527203155,1527203156,1527203157,1527203158,1527203159,1527203160,1527203161,1527203162,1527203163,1527203164,1527203165,1527203166,1527203167,1527203168,1527203169,1366824289,1366824288,1366824287,1366824286,1527203351,1527203352,1527203353,1527203354,1527203355,1527203356,1527203357,1527203358,1527203359,1527203360,1527203361,1527203362,1527203363,1527203364,1527203365,1527203366,1527203367,1527203368,1527203369,1527203370,1527203371,1527203372,1527203373,1527203374,1527203375,1527203376,1527203377,1527203378,1527203379,1527203380,1527203381,1527203382,1527203383,1527203384,1527203385,1527203386,1527203387,1527203388,1527203389,1527203390,1527203391,1527203392,1527203393,1527203394,1527203395,1527203396,1527203397,1527203398,1527203399,1527203400,1527203401,1527203402,1527203403,1527203404,1527203405,1527203406,1527203407,1527203408,1527203409,1527203410,1527203411,1527203412,1527203413,1527203414,1527203415,1527203416,1527203417,1527203418,1527203419,1527203420,1527203421,1527203422,1527203423,1527203424,1527203425,1366824285,1366824284,1366824283,1366824033,1527203607,1527203608,1527203609,1527203610,1527203611,1527203612,1527203613,1527203614,1527203615,1527203616,1527203617,1527203618,1527203619,1527203620,1527203621,1527203622,1527203623,1527203624,1527203625,1527203626,1527203627,1527203628,1527203629,1527203630,1527203631,1527203632,1527203633,1527203634,1527203635,1527203636,1527203637,1527203638,1527203639,1527203640,1527203641,1527203642,1527203643,1527203644,1527203645,1527203646,1527203647,1527203648,1527203649,1527203650,1527203651,1527203652,1527203653,1527203654,1527203655,1527203656,1527203657,1527203658,1527203659,1527203660,1527203661,1527203662,1527203663,1527203664,1527203665,1527203666,1527203667,1527203668,1527203669,1527203670,1527203671,1527203672,1527203673,1527203674,1527203675,1527203676,1527203677,1527203678,1527203679,1527203680,1527203681,1366824032,1366824031,1366824030,1366824029,1527203863,1527203864,1527203865,1527203866,1527203867,1527203868,1527203869,1527203870,1527203871,1527203872,1527203873,1527203874,1527203875,1527203876,1527203877,1527203878,1527203879,1527203880,1527203881,1527203882,1527203883,1527203884,1527203885,1527203886,1527203887,1527203888,1527203889,1527203890,1527203891,1527203892,1527203893,1527203894,1527203895,1527203896,1527203897,1527203898,1527203899,1527203900,1527203901,1527203902,1527203903,1527203904,1527203905,1527203906,1527203907,1527203908,1527203909,1527203910,1527203911,1527203912,1527203913,1527203914,1527203915,1527203916,1527203917,1527203918,1527203919,1527203920,1527203921,1527203922,1527203923,1527203924,1527203925,1527203926,1527203927,1527203928,1527203929,1527203930,1527203931,1527203932,1527203933,1527203934,1527203935,1527203936,1527203937,1366824028,1366824027,1366823777,1366823776,1527204119,1527204120,1527204121,1527204122,1527204123,1527204124,1527204125,1527204126,1527204127,1527204128,1527204129,1527204130,1527204131,1527204132,1527204133,1527204134,1527204135,1527204136,1527204137,1527204138,1527204139,1527204140,1527204141,1527204142,1527204143,1527204144,1527204145,1527204146,1527204147,1527204148,1527204149,1527204150,1527204151,1527204152,1527204153,1527204154,1527204155,1527204156,1527204157,1527204158,1527204159,1527204160,1527204161,1527204162,1527204163,1527204164,1527204165,1527204166,1527204167,1527204168,1527204169,1527204170,1527204171,1527204172,1527204173,1527204174,1527204175,1527204176,1527204177,1527204178,1527204179,1527204180,1527204181,1527204182,1527204183,1527204184,1527204185,1527204186,1527204187,1527204188,1527204189,1527204190,1527204191,1527204192,1527204193,1366823775,1366823774,1366823773,1366823772,1527204375,1527204376,1527204377,1527204378,1527204379,1527204380,1527204381,1527204382,1527204383,1527204384,1527204385,1527204386,1527204387,1527204388,1527204389,1527204390,1527204391,1527204392,1527204393,1527204394,1527204395,1527204396,1527204397,1527204398,1527204399,1527204400,1527204401,1527204402,1527204403,1527204404,1527204405,1527204406,1527204407,1527204408,1527204409,1527204410,1527204411,1527204412,1527204413,1527204414,1527204415,1527204416,1527204417,1527204418,1527204419,1527204420,1527204421,1527204422,1527204423,1527204424,1527204425,1527204426,1527204427,1527204428,1527204429,1527204430,1527204431,1527204432,1527204433,1527204434,1527204435,1527204436,1527204437,1527204438,1527204439,1527204440,1527204441,1527204442,1527204443,1527204444,1527204445,1527204446,1527204447,1527204448,1527204449,1366823771,1534550369,1534550368,1534550367,1527204631,1527204632,1527204633,1527204634,1527204635,1527204636,1527204637,1527204638,1527204639,1527204640,1527204641,1527204642,1527204643,1527204644,1527204645,1527204646,1527204647,1527204648,1527204649,1527204650,1527204651,1527204652,1527204653,1527204654,1527204655,1527204656,1527204657,1527204658,1527204659,1527204660,1527204661,1527204662,1527204663,1527204664,1527204665,1527204666,1527204667,1527204668,1527204669,1527204670,1527204671,1527204672,1527204673,1527204674,1527204675,1527204676,1527204677,1527204678,1527204679,1527204680,1527204681,1527204682,1527204683,1527204684,1527204685,1527204686,1527204687,1527204688,1527204689,1527204690,1527204691,1527204692,1527204693,1527204694,1527204695,1527204696,1527204697,1527204698,1527204699,1527204700,1527204701,1527204702,1527204703,1527204704,1527204705,1534550366,1534550365,1534550364,1534550363,1527204887,1527204888,1527204889,1527204890,1527204891,1527204892,1527204893,1527204894,1527204895,1527204896,1527204897,1527204898,1527204899,1527204900,1527204901,1527204902,1527204903,1527204904,1527204905,1527204906,1527204907,1527204908,1527204909,1527204910,1527204911,1527204912,1527204913,1527204914,1527204915,1527204916,1527204917,1527204918,1527204919,1527204920,1527204921,1527204922,1527204923,1527204924,1527204925,1527204926,1527204927,1527204928,1527204929,1527204930,1527204931,1527204932,1527204933,1527204934,1527204935,1527204936,1527204937,1527204938,1527204939,1527204940,1527204941,1527204942,1527204943,1527204944,1527204945,1527204946,1527204947,1527204948,1527204949,1527204950,1527204951,1527204952,1527204953,1527204954,1527204955,1527204956,1527204957,1527204958,1527204959,1527204960,1527204961,1534550362,1366778201,1366778200,1366778199,1527205143,1527205144,1527205145,1527205146,1527205147,1527205148,1527205149,1527205150,1527205151,1527205152,1527205153,1527205154,1527205155,1527205156,1527205157,1527205158,1527205159,1527205160,1527205161,1527205162,1527205163,1527205164,1527205165,1527205166,1527205167,1527205168,1527205169,1527205170,1527205171,1527205172,1527205173,1527205174,1527205175,1527205176,1527205177,1527205178,1527205179,1527205180,1527205181,1527205182,1527205183,1527205184,1527205185,1527205186,1527205187,1527205188,1527205189,1527205190,1527205191,1527205192,1527205193,1527205194,1527205195,1527205196,1527205197,1527205198,1527205199,1527205200,1527205201,1527205202,1527205203,1527205204,1527205205,1527205206,1527205207,1527205208,1527205209,1527205210,1527205211,1527205212,1527205213,1527205214,1527205215,1527205216,1527205217,1366778198,1366778197,1366778196,1366778195,1527205399,1527205400,1527205401,1527205402,1527205403,1527205404,1527205405,1527205406,1527205407,1527205408,1527205409,1527205410,1527205411,1527205412,1527205413,1527205414,1527205415,1527205416,1527205417,1527205418,1527205419,1527205420,1527205421,1527205422,1527205423,1527205424,1527205425,1527205426,1527205427,1527205428,1527205429,1527205430,1527205431,1527205432,1527205433,1527205434,1527205435,1527205436,1527205437,1527205438,1527205439,1527205440,1527205441,1527205442,1527205443,1527205444,1527205445,1527205446,1527205447,1527205448,1527205449,1527205450,1527205451,1527205452,1527205453,1527205454,1527205455,1527205456,1527205457,1527205458,1527205459,1527205460,1527205461,1527205462,1527205463,1527205464,1527205465,1527205466,1527205467,1527205468,1527205469,1527205470,1527205471,1527205472,1527205473,1366778194,1366778193,1366778192,1366778191,1527205655,1527205656,1527205657,1527205658,1527205659,1527205660,1527205661,1527205662,1527205663,1527205664,1527205665,1527205666,1527205667,1527205668,1527205669,1527205670,1527205671,1527205672,1527205673,1527205674,1527205675,1527205676,1527205677,1527205678,1527205679,1527205680,1527205681,1527205682,1527205683,1527205684,1527205685,1527205686,1527205687,1527205688,1527205689,1527205690,1527205691,1527205692,1527205693,1527205694,1527205695,1527205696,1527205697,1527205698,1527205699,1527205700,1527205701,1527205702,1527205703,1527205704,1527205705,1527205706,1527205707,1527205708,1527205709,1527205710,1527205711,1527205712,1527205713,1527205714,1527205715,1527205716,1527205717,1527205718,1527205719,1527205720,1527205721,1527205722,1527205723,1527205724,1527205725,1527205726,1527205727,1527205728,1527205729,1366778190,1366778189,1366778188,1366778187,1527205911,1527205912,1527205913,1527205914,1527205915,1527205916,1527205917,1527205918,1527205919,1527205920,1527205921,1527205922,1527205923,1527205924,1527205925,1527205926,1527205927,1527205928,1527205929,1527205930,1527205931,1527205932,1527205933,1527205934,1527205935,1527205936,1527205937,1527205938,1527205939,1527205940,1527205941,1527205942,1527205943,1527205944,1527205945,1527205946,1527205947,1527205948,1527205949,1527205950,1527205951,1527205952,1527205953,1527205954,1527205955,1527205956,1527205957,1527205958,1527205959,1527205960,1527205961,1527205962,1527205963,1527205964,1527205965,1527205966,1527205967,1527205968,1527205969,1527205970,1527205971,1527205972,1527205973,1527205974,1527205975,1527205976,1527205977,1527205978,1527205979,1527205980,1527205981,1527205982,1527205983,1527205984,1527205985,1366778186,1366778185,1366778184,1366778183,1527206167,1527206168,1527206169,1527206170,1527206171,1527206172,1527206173,1527206174,1527206175,1527206176,1527206177,1527206178,1527206179,1527206180,1527206181,1527206182,1527206183,1527206184,1527206185,1527206186,1527206187,1527206188,1527206189,1527206190,1527206191,1527206192,1527206193,1527206194,1527206195,1527206196,1527206197,1527206198,1527206199,1527206200,1527206201,1527206202,1527206203,1527206204,1527206205,1527206206,1527206207,1527206208,1527206209,1527206210,1527206211,1527206212,1527206213,1527206214,1527206215,1527206216,1527206217,1527206218,1527206219,1527206220,1527206221,1527206222,1527206223,1527206224,1527206225,1527206226,1527206227,1527206228,1527206229,1527206230,1527206231,1527206232,1527206233,1527206234,1527206235,1527206236,1527206237,1527206238,1527206239,1527206240,1527206241,1366778182,1366778181,1366778180,1366778179,1527206423,1527206424,1527206425,1527206426,1527206427,1527206428,1527206429,1527206430,1527206431,1527206432,1527206433,1527206434,1527206435,1527206436,1527206437,1527206438,1527206439,1527206440,1527206441,1527206442,1527206443,1527206444,1527206445,1527206446,1527206447,1527206448,1527206449,1527206450,1527206451,1527206452,1527206453,1527206454,1527206455,1527206456,1527206457,1527206458,1527206459,1527206460,1527206461,1527206462,1527206463,1527206464,1527206465,1527206466,1527206467,1527206468,1527206469,1527206470,1527206471,1527206472,1527206473,1527206474,1527206475,1527206476,1527206477,1527206478,1527206479,1527206480,1527206481,1527206482,1527206483,1527206484,1527206485,1527206486,1527206487,1527206488,1527206489,1527206490,1527206491,1527206492,1527206493,1527206494,1527206495,1527206496,1527206497,1366778178,1366778177,1366778176,1366778175,1527206679,1527206680,1527206681,1527206682,1527206683,1527206684,1527206685,1527206686,1527206687,1527206688,1527206689,1527206690,1527206691,1527206692,1527206693,1527206694,1527206695,1527206696,1527206697,1527206698,1527206699,1527206700,1527206701,1527206702,1527206703,1527206704,1527206705,1527206706,1527206707,1527206708,1527206709,1527206710,1527206711,1527206712,1527206713,1527206714,1527206715,1527206716,1527206717,1527206718,1527206719,1527206720,1527206721,1527206722,1527206723,1527206724,1527206725,1527206726,1527206727,1527206728,1527206729,1527206730,1527206731,1527206732,1527206733,1527206734,1527206735,1527206736,1527206737,1527206738,1527206739,1527206740,1527206741,1527206742,1527206743,1527206744,1527206745,1527206746,1527206747,1527206748,1527206749,1527206750,1527206751,1527206752,1527206753,1366778174,1366778173,1366778172,1366778171,1527206935,1527206936,1527206937,1527206938,1527206939,1527206940,1527206941,1527206942,1527206943,1527206944,1527206945,1527206946,1527206947,1527206948,1527206949,1527206950,1527206951,1527206952,1527206953,1527206954,1527206955,1527206956,1527206957,1527206958,1527206959,1527206960,1527206961,1527206962,1527206963,1527206964,1527206965,1527206966,1527206967,1527206968,1527206969,1527206970,1527206971,1527206972,1527206973,1527206974,1527206975,1527206976,1527206977,1527206978,1527206979,1527206980,1527206981,1527206982,1527206983,1527206984,1527206985,1527206986,1527206987,1527206988,1527206989,1527206990,1527206991,1527206992,1527206993,1527206994,1527206995,1527206996,1527206997,1527206998,1527206999,1527207000,1527207001,1527207002,1527207003,1527207004,1527207005,1527207006,1527207007,1527207008,1527207009,1366778170,1366778169,1366778168,1366778167,1527207191,1527207192,1527207193,1527207194,1527207195,1527207196,1527207197,1527207198,1527207199,1527207200,1527207201,1527207202,1527207203,1527207204,1527207205,1527207206,1527207207,1527207208,1527207209,1527207210,1527207211,1527207212,1527207213,1527207214,1527207215,1527207216,1527207217,1527207218,1527207219,1527207220,1527207221,1527207222,1527207223,1527207224,1527207225,1527207226,1527207227,1527207228,1527207229,1527207230,1527207231,1527207232,1527207233,1527207234,1527207235,1527207236,1527207237,1527207238,1527207239,1527207240,1527207241,1527207242,1527207243,1527207244,1527207245,1527207246,1527207247,1527207248,1527207249,1527207250,1527207251,1527207252,1527207253,1527207254,1527207255,1527207256,1527207257,1527207258,1527207259,1527207260,1527207261,1527207262,1527207263,1527207264,1527207265,1366778166,1366778165,1366778164,1366778163,1527207447,1527207448,1527207449,1527207450,1527207451,1527207452,1527207453,1527207454,1527207455,1527207456,1527207457,1527207458,1527207459,1527207460,1527207461,1527207462,1527207463,1527207464,1527207465,1527207466,1527207467,1527207468,1527207469,1527207470,1527207471,1527207472,1527207473,1527207474,1527207475,1527207476,1527207477,1527207478,1527207479,1527207480,1527207481,1527207482,1527207483,1527207484,1527207485,1527207486,1527207487,1527207488,1527207489,1527207490,1527207491,1527207492,1527207493,1527207494,1527207495,1527207496,1527207497,1527207498,1527207499,1527207500,1527207501,1527207502,1527207503,1527207504,1527207505,1527207506,1527207507,1527207508,1527207509,1527207510,1527207511,1527207512,1527207513,1527207514,1527207515,1527207516,1527207517,1527207518,1527207519,1527207520,1527207521,1366778162,1366778161,1366778160,1366778159,1527207703,1527207704,1527207705,1527207706,1527207707,1527207708,1527207709,1527207710,1527207711,1527207712,1527207713,1527207714,1527207715,1527207716,1527207717,1527207718,1527207719,1527207720,1527207721,1527207722,1527207723,1527207724,1527207725,1527207726,1527207727,1527207728,1527207729,1527207730,1527207731,1527207732,1527207733,1527207734,1527207735,1527207736,1527207737,1527207738,1527207739,1527207740,1527207741,1527207742,1527207743,1527207744,1527207745,1527207746,1527207747,1527207748,1527207749,1527207750,1527207751,1527207752,1527207753,1527207754,1527207755,1527207756,1527207757,1527207758,1527207759,1527207760,1527207761,1527207762,1527207763,1527207764,1527207765,1527207766,1527207767,1527207768,1527207769,1527207770,1527207771,1527207772,1527207773,1527207774,1527207775,1527207776,1527207777,1366778158,1366778157,1366778156,1366778155,1527207959,1527207960,1527207961,1527207962,1527207963,1527207964,1527207965,1527207966,1527207967,1527207968,1527207969,1527207970,1527207971,1527207972,1527207973,1527207974,1527207975,1527207976,1527207977,1527207978,1527207979,1527207980,1527207981,1527207982,1527207983,1527207984,1527207985,1527207986,1527207987,1527207988,1527207989,1527207990,1527207991,1527207992,1527207993,1527207994,1527207995,1527207996,1527207997,1527207998,1527207999,1527208000,1527208001,1527208002,1527208003,1527208004,1527208005,1527208006,1527208007,1527208008,1527208009,1527208010,1527208011,1527208012,1527208013,1527208014,1527208015,1527208016,1527208017,1527208018,1527208019,1527208020,1527208021,1527208022,1527208023,1527208024,1527208025,1527208026,1527208027,1527208028,1527208029,1527208030,1527208031,1527208032,1527208033,1366778154,1366778153,1366778152,1366778151,1527208215,1527208216,1527208217,1527208218,1527208219,1527208220,1527208221,1527208222,1527208223,1527208224,1527208225,1527208226,1527208227,1527208228,1527208229,1527208230,1527208231,1527208232,1527208233,1527208234,1527208235,1527208236,1527208237,1527208238,1527208239,1527208240,1527208241,1527208242,1527208243,1527208244,1527208245,1527208255,1527208256,1527208257,1527208258,1527208259,1527208260,1527208261,1527208262,1527208263,1527208264,1527208265,1527208266,1527208267,1527208268,1527208269,1527208270,1527208271,1527208272,1527208273,1527208274,1527208275,1527208276,1527208277,1527208278,1527208279,1527208280,1527208281,1527208282,1527208283,1527208284,1527208285,1527208286,1527208287,1527208288,1527208289,1366778150,1366778149,1366778148,1366778147,1527208471,1527208472,1527208473,1527208474,1527208475,1527208476,1527208477,1527208478,1527208479,1527208480,1527208481,1527208482,1527208483,1527208484,1527208485,1527208486,1527208487,1527208488,1527208489,1527208490,1527208491,1527208492,1527208493,1527208494,1527208495,1527208496,1527208497,1527208498,1527208499,1527208500,1527208512,1527208513,1527208514,1527208515,1527208516,1527208517,1527208518,1527208519,1527208520,1527208521,1527208522,1527208523,1527208524,1527208525,1527208526,1527208527,1527208528,1527208529,1527208530,1527208531,1527208532,1527208533,1527208534,1527208535,1527208536,1527208537,1527208538,1527208539,1527208540,1527208541,1527208542,1527208543,1527208544,1527208545,1366778146,1366778145,1366778144,1366778143,1527208727,1527208728,1527208729,1527208730,1527208731,1527208732,1527208733,1527208734,1527208735,1527208736,1527208737,1527208738,1527208739,1527208740,1527208741,1527208742,1527208743,1527208744,1527208745,1527208746,1527208747,1527208748,1527208749,1527208750,1527208751,1527208752,1527208753,1527208754,1527208755,1527208756,1527208768,1527208769,1527208770,1527208771,1527208772,1527208773,1527208774,1527208775,1527208776,1527208777,1527208778,1527208779,1527208780,1527208781,1527208782,1527208783,1527208784,1527208785,1527208786,1527208787,1527208788,1527208789,1527208790,1527208791,1527208792,1527208793,1527208794,1527208795,1527208796,1527208797,1527208798,1527208799,1527208800,1527208801,1366778142,1366778141,1366778140,1366778139,1527208983,1527208984,1527208985,1527208986,1527208987,1527208988,1527208989,1527208990,1527208991,1527208992,1527208993,1527208994,1527208995,1527208996,1527208997,1527208998,1527208999,1527209000,1527209001,1527209002,1527209003,1527209004,1527209005,1527209006,1527209007,1527209008,1527209009,1527209010,1527209011,1527209012,1527209024,1527209025,1527209026,1527209027,1527209028,1527209029,1527209030,1527209031,1527209032,1527209033,1527209034,1527209035,1527209036,1527209037,1527209038,1527209039,1527209040,1527209041,1527209042,1527209043,1527209044,1527209045,1527209046,1527209047,1527209048,1527209049,1527209050,1527209051,1527209052,1527209053,1527209054,1527209055,1527209056,1527209057,1366778138,1366778137,1366778136,1366778135,1527209239,1527209240,1527209241,1527209242,1527209243,1527209244,1527209245,1527209246,1527209247,1527209248,1527209249,1527209250,1527209251,1527209252,1527209253,1527209254,1527209255,1527209256,1527209257,1527209258,1527209259,1527209260,1527209261,1527209262,1527209263,1527209264,1527209265,1527209266,1527209267,1527209268,1527209280,1527209281,1527209282,1527209283,1527209284,1527209285,1527209286,1527209287,1527209288,1527209289,1527209290,1527209291,1527209292,1527209293,1527209294,1527209295,1527209296,1527209297,1527209298,1527209299,1527209300,1527209301,1527209302,1527209303,1527209304,1527209305,1527209306,1527209307,1527209308,1527209309,1527209310,1527209311,1527209312,1527209313,1366778134,1366778133,1366778132,1366778131,1527209495,1527209496,1527209497,1527209498,1527209499,1527209500,1527209501,1527209502,1527209503,1527209504,1527209505,1527209506,1527209507,1527209508,1527209509,1527209510,1527209511,1527209512,1527209513,1527209514,1527209515,1527209516,1527209517,1527209518,1527209519,1527209520,1527209521,1527209522,1527209523,1527209524,1527209536,1527209537,1527209538,1527209539,1527209540,1527209541,1527209542,1527209543,1527209544,1527209545,1527209546,1527209547,1527209548,1527209549,1527209550,1527209551,1527209552,1527209553,1527209554,1527209555,1527209556,1527209557,1527209558,1527209559,1527209560,1527209561,1527209562,1527209563,1527209564,1527209565,1527209566,1527209567,1527209568,1527209569,1534550113,1534550112,1534550111,1534550110,1527209751,1527209752,1527209753,1527209754,1527209755,1527209756,1527209757,1527209758,1527209759,1527209760,1527209761,1527209762,1527209763,1527209764,1527209765,1527209766,1527209767,1527209768,1527209769,1527209770,1527209771,1527209772,1527209773,1527209774,1527209775,1527209776,1527209777,1527209778,1527209779,1527209780,1527209792,1527209793,1527209794,1527209795,1527209796,1527209797,1527209798,1527209799,1527209800,1527209801,1527209802,1527209803,1527209804,1527209805,1527209806,1527209807,1527209808,1527209809,1527209810,1527209811,1527209812,1527209813,1527209814,1527209815,1527209816,1527209817,1527209818,1527209819,1527209820,1527209821,1527209822,1527209823,1527209824,1527209825,1534550109,1534550108,1534550107,1534550106,1527210007,1527210008,1527210009,1527210010,1527210011,1527210012,1527210013,1527210014,1527210015,1527210016,1527210017,1527210018,1527210019,1527210020,1527210021,1527210022,1527210023,1527210024,1527210025,1527210026,1527210027,1527210028,1527210029,1527210030,1527210031,1527210032,1527210033,1527210034,1527210035,1527210036,1527210048,1527210049,1527210050,1527210051,1527210052,1527210053,1527210054,1527210055,1527210056,1527210057,1527210058,1527210059,1527210060,1527210061,1527210062,1527210063,1527210064,1527210065,1527210066,1527210067,1527210068,1527210069,1527210070,1527210071,1527210072,1527210073,1527210074,1527210075,1527210076,1527210077,1527210078,1527210079,1527210080,1527210081,1366777945,1366777944,1366777943,1366777942,1527210263,1527210264,1527210265,1527210266,1527210267,1527210268,1527210269,1527210270,1527210271,1527210272,1527210273,1527210274,1527210275,1527210276,1527210277,1527210278,1527210279,1527210280,1527210281,1527210282,1527210283,1527210284,1527210285,1527210286,1527210287,1527210288,1527210289,1527210290,1527210291,1527210292,1527210304,1527210305,1527210306,1527210307,1527210308,1527210309,1527210310,1527210311,1527210312,1527210313,1527210314,1527210315,1527210316,1527210317,1527210318,1527210319,1527210320,1527210321,1527210322,1527210323,1527210324,1527210325,1527210326,1527210327,1527210328,1527210329,1527210330,1527210331,1527210332,1527210333,1527210334,1527210335,1527210336,1527210337,1527255898,1527255899,1527255900,1527255901,1527255902,1527255903,1527255904,1527255905,1527256154,1527256155,1527256156,1527256157,1527256158,1527256159,1527256160,1527256161,1527256410,1527256411,1527256412,1527256413,1527256414,1527256415,1527256416,1527256417,1527256666,1527256667,1527256668,1527256669,1527256670,1527256671,1527256672,1527256673,1527256922,1527256923,1527256924,1527256925,1527256926,1527256927,1527256928,1527256929,1527257178,1527257179,1527257180,1527257181,1527257182,1527257183,1527257184,1527257185,1527257434,1527257435,1527257436,1527257437,1527257438,1527257439,1527257440,1527257441,1527257690,1527257691,1527257692,1527257693,1527257694,1527257695,1527257696,1527257697,1527257910,1527257911,1527257912,1527257913,1527257914,1527257915,1527257916,1527257917,1527257918,1527257919,1527257920,1527257935,1527257936,1527257937,1527257938,1527257939,1527257940,1527257941,1527257942,1527257943,1527257944,1527257945,1527257946,1527257947,1527257948,1527257949,1527257950,1527257951,1527257952,1527257953,1527258140,1527258141,1527258142,1527258143,1527258144,1527258145,1527258146,1527258166,1527258167,1527258168,1527258169,1527258170,1527258171,1527258172,1527258173,1527258174,1527258175,1527258176,1527258191,1527258192,1527258193,1527258194,1527258195,1527258196,1527258197,1527258198,1527258199,1527258200,1527258201,1527258202,1527258203,1527258204,1527258205,1527258206,1527258207,1527258208,1527258209,1527258396,1527258397,1527258398,1527258399,1527258400,1527258401,1527258402,1527258430,1527258431,1527258432,1527258447,1527258448,1527258449,1527258450,1527258451,1527258452,1527258453,1527258454,1527258455,1527258456,1527258457,1527258458,1527258459,1527258460,1527258461,1527258462,1527258463,1527258464,1527258465,1527258652,1527258653,1527258654,1527258655,1527258656,1527258657,1527258658,1527258686,1527258687,1527258688,1527258703,1527258704,1527258705,1527258706,1527258707,1527258708,1527258709,1527258710,1527258711,1527258712,1527258713,1527258714,1527258715,1527258716,1527258717,1527258718,1527258719,1527258720,1527258721,1527258908,1527258909,1527258910,1527258911,1527258912,1527258913,1527258914,1527258942,1527258943,1527258944,1527258959,1527258960,1527258961,1527258962,1527258963,1527258964,1527258965,1527258966,1527258967,1527258968,1527258969,1527258970,1527258971,1527258972,1527258973,1527258974,1527258975,1527258976,1527258977,1527259164,1527259165,1527259166,1527259167,1527259168,1527259169,1527259170,1527259198,1527259199,1527259200,1527259215,1527259216,1527259217,1527259218,1527259219,1527259220,1527259221,1527259222,1527259223,1527259224,1527259225,1527259226,1527259227,1527259228,1527259229,1527259230,1527259231,1527259232,1527259233,1527259420,1527259421,1527259422,1527259423,1527259424,1527259425,1527259426,1527259454,1527259455,1527259456,1527259471,1527259472,1527259473,1527259474,1527259475,1527259476,1527259477,1527259478,1527259479,1527259480,1527259481,1527259482,1527259483,1527259484,1527259485,1527259486,1527259487,1527259488,1527259489,1527259676,1527259677,1527259678,1527259679,1527259680,1527259681,1527259682,1527259710,1527259711,1527259712,1527259727,1527259728,1527259729,1527259730,1527259731,1527259732,1527259733,1527259734,1527259735,1527259736,1527259737,1527259738,1527259739,1527259740,1527259741,1527259742,1527259743,1527259744,1527259745,1527259966,1527259967,1527259968,1527259983,1527259984,1527259985,1527259986,1527259987,1527259988,1527259989,1527259990,1527259991,1527259992,1527259993,1527259994,1527259995,1527259996,1527259997,1527259998,1527259999,1527260000,1527260001,1527260187,1527260188,1527260189,1527260190,1527260191,1527260192,1527260193,1527260194,1527260195,1527260250,1527260251,1527260252,1527260253,1527260254,1527260255,1527260256,1527260257,1527260443,1527260444,1527260445,1527260446,1527260447,1527260448,1527260449,1527260450,1527260451,1527260506,1527260507,1527260508,1527260509,1527260510,1527260511,1527260512,1527260513,1527260699,1527260700,1527260701,1527260702,1527260703,1527260704,1527260705,1527260706,1527260707,1527260762,1527260763,1527260764,1527260765,1527260766,1527260767,1527260768,1527260769,1527260955,1527260956,1527260957,1527260958,1527260959,1527260960,1527260961,1527260962,1527260963,1527261018,1527261019,1527261020,1527261021,1527261022,1527261023,1527261024,1527261025,1527261211,1527261212,1527261213,1527261214,1527261215,1527261216,1527261217,1527261218,1527261219,1527261274,1527261275,1527261276,1527261277,1527261278,1527261279,1527261280,1527261281,1527261467,1527261468,1527261469,1527261470,1527261471,1527261472,1527261473,1527261474,1527261475,1527261530,1527261531,1527261532,1527261533,1527261534,1527261535,1527261536,1527261537,1527261723,1527261724,1527261725,1527261726,1527261727,1527261728,1527261729,1527261730,1527261731,1527261786,1527261787,1527261788,1527261789,1527261790,1527261791,1527261792,1527261793,1527261979,1527261980,1527261981,1527261982,1527261983,1527261984,1527261985,1527261986,1527261987,1527262006,1527262007,1527262008,1527262009,1527262010,1527262011,1527262012,1527262013,1527262014,1527262042,1527262043,1527262044,1527262045,1527262046,1527262047,1527262048,1527262049,1527262235,1527262236,1527262237,1527262238,1527262239,1527262240,1527262241,1527262242,1527262243,1527262262,1527262263,1527262264,1527262265,1527262266,1527262267,1527262268,1527262269,1527262270,1527262298,1527262299,1527262300,1527262301,1527262302,1527262303,1527262304,1527262305,1527262491,1527262492,1527262493,1527262494,1527262495,1527262496,1527262497,1527262498,1527262499,1527262518,1527262519,1527262520,1527262521,1527262522,1527262523,1527262524,1527262525,1527262526,1527262536,1527262537,1527262538,1527262539,1527262540,1527262541,1527262542,1527262543,1527262544,1527262545,1527262546,1527262547,1527262548,1527262549,1527262550,1527262551,1527262552,1527262553,1527262554,1527262555,1527262556,1527262557,1527262558,1527262559,1527262560,1527262561,1527262747,1527262748,1527262749,1527262750,1527262751,1527262752,1527262753,1527262754,1527262755,1527262774,1527262775,1527262776,1527262777,1527262778,1527262779,1527262780,1527262781,1527262782,1527262792,1527262793,1527262794,1527262795,1527262796,1527262797,1527262798,1527262799,1527262800,1527262801,1527262802,1527262803,1527262804,1527262805,1527262806,1527262807,1527262808,1527262809,1527262810,1527262811,1527262812,1527262813,1527262814,1527262815,1527262816,1527262817,1527263003,1527263004,1527263005,1527263006,1527263007,1527263008,1527263009,1527263010,1527263011,1527263030,1527263031,1527263032,1527263033,1527263034,1527263035,1527263036,1527263037,1527263038,1527263048,1527263049,1527263050,1527263051,1527263052,1527263053,1527263054,1527263055,1527263056,1527263057,1527263058,1527263059,1527263060,1527263061,1527263062,1527263063,1527263064,1527263065,1527263066,1527263067,1527263068,1527263069,1527263070,1527263071,1527263072,1527263073,1527263259,1527263260,1527263261,1527263262,1527263263,1527263264,1527263265,1527263266,1527263267,1527263286,1527263287,1527263288,1527263289,1527263290,1527263291,1527263292,1527263293,1527263294,1527263304,1527263305,1527263306,1527263307,1527263308,1527263309,1527263310,1527263311,1527263312,1527263313,1527263314,1527263315,1527263316,1527263317,1527263318,1527263319,1527263320,1527263321,1527263322,1527263323,1527263324,1527263325,1527263326,1527263327,1527263328,1527263329,1527263515,1527263516,1527263517,1527263518,1527263519,1527263520,1527263521,1527263522,1527263523,1527263542,1527263543,1527263544,1527263545,1527263546,1527263547,1527263548,1527263549,1527263550,1527263560,1527263561,1527263562,1527263563,1527263564,1527263565,1527263566,1527263567,1527263568,1527263569,1527263570,1527263571,1527263572,1527263573,1527263574,1527263575,1527263576,1527263577,1527263578,1527263579,1527263580,1527263581,1527263582,1527263583,1527263584,1527263585,1527263771,1527263772,1527263773,1527263774,1527263775,1527263776,1527263777,1527263778,1527263779,1527263798,1527263799,1527263800,1527263801,1527263802,1527263803,1527263804,1527263805,1527263806,1527263816,1527263817,1527263818,1527263819,1527263820,1527263821,1527263822,1527263823,1527263824,1527263825,1527263826,1527263827,1527263828,1527263829,1527263830,1527263831,1527263832,1527263833,1527263834,1527263835,1527263836,1527263837,1527263838,1527263839,1527263840,1527263841,1527264027,1527264028,1527264029,1527264030,1527264031,1527264032,1527264033,1527264034,1527264035,1527264054,1527264055,1527264056,1527264057,1527264058,1527264059,1527264060,1527264061,1527264062,1527264072,1527264073,1527264074,1527264075,1527264076,1527264077,1527264078,1527264079,1527264080,1527264081,1527264082,1527264083,1527264084,1527264085,1527264086,1527264087,1527264088,1527264089,1527264090,1527264091,1527264092,1527264093,1527264094,1527264095,1527264096,1527264097,1527264283,1527264284,1527264285,1527264286,1527264287,1527264288,1527264289,1527264290,1527264291,1527264310,1527264311,1527264312,1527264313,1527264314,1527264315,1527264316,1527264317,1527264318,1527264328,1527264329,1527264330,1527264331,1527264332,1527264333,1527264334,1527264335,1527264336,1527264337,1527264338,1527264339,1527264340,1527264341,1527264342,1527264343,1527264344,1527264345,1527264346,1527264347,1527264348,1527264349,1527264350,1527264351,1527264352,1527264353,1527264539,1527264540,1527264541,1527264542,1527264543,1527264544,1527264545,1527264546,1527264547,1527264566,1527264567,1527264568,1527264569,1527264570,1527264571,1527264572,1527264573,1527264574,1527264584,1527264585,1527264586,1527264587,1527264588,1527264589,1527264590,1527264591,1527264592,1527264602,1527264603,1527264604,1527264605,1527264606,1527264607,1527264608,1527264609,1527264795,1527264796,1527264797,1527264798,1527264799,1527264800,1527264801,1527264802,1527264803,1527264822,1527264823,1527264824,1527264825,1527264826,1527264827,1527264828,1527264829,1527264830,1527264840,1527264841,1527264842,1527264843,1527264844,1527264845,1527264846,1527264847,1527264859,1527264860,1527264861,1527264862,1527264863,1527264864,1527264865,1527265051,1527265052,1527265053,1527265054,1527265055,1527265056,1527265057,1527265058,1527265059,1527265078,1527265079,1527265080,1527265081,1527265082,1527265083,1527265084,1527265085,1527265086,1527265096,1527265097,1527265098,1527265099,1527265100,1527265101,1527265102,1527265103,1527265115,1527265116,1527265117,1527265118,1527265119,1527265120,1527265121,1527265307,1527265308,1527265309,1527265310,1527265311,1527265312,1527265313,1527265314,1527265315,1527265334,1527265335,1527265336,1527265337,1527265338,1527265339,1527265340,1527265341,1527265342,1527265371,1527265372,1527265373,1527265374,1527265375,1527265376,1527265377,1527265563,1527265564,1527265565,1527265566,1527265567,1527265568,1527265569,1527265570,1527265571,1527265590,1527265591,1527265592,1527265593,1527265594,1527265595,1527265596,1527265597,1527265598,1527265627,1527265628,1527265629,1527265630,1527265631,1527265632,1527265633,1527265819,1527265820,1527265821,1527265822,1527265823,1527265824,1527265825,1527265826,1527265827,1527265846,1527265847,1527265848,1527265849,1527265850,1527265851,1527265852,1527265853,1527265854,1527265883,1527265884,1527265885,1527265886,1527265887,1527265888,1527265889,1527266075,1527266076,1527266077,1527266078,1527266079,1527266080,1527266081,1527266082,1527266083,1527266102,1527266103,1527266104,1527266105,1527266106,1527266107,1527266108,1527266109,1527266110,1527266139,1527266140,1527266141,1527266142,1527266143,1527266144,1527266145,1527266331,1527266332,1527266333,1527266334,1527266335,1527266336,1527266337,1527266338,1527266339,1527266358,1527266359,1527266360,1527266361,1527266362,1527266363,1527266364,1527266365,1527266366,1527266395,1527266396,1527266397,1527266398,1527266399,1527266400,1527266401,1527266587,1527266588,1527266589,1527266590,1527266591,1527266592,1527266593,1527266594,1527266595,1527266614,1527266615,1527266616,1527266617,1527266618,1527266619,1527266620,1527266621,1527266622,1527266651,1527266652,1527266653,1527266654,1527266655,1527266656,1527266657,1527266843,1527266844,1527266845,1527266846,1527266847,1527266848,1527266849,1527266850,1527266851,1527266870,1527266871,1527266872,1527266873,1527266874,1527266875,1527266876,1527266877,1527266878,1527266907,1527266908,1527266909,1527266910,1527266911,1527266912,1527266913,1527267099,1527267100,1527267101,1527267102,1527267103,1527267104,1527267105,1527267106,1527267107,1527267162,1527267163,1527267164,1527267165,1527267166,1527267167,1527267168,1527267169,1527267355,1527267356,1527267357,1527267358,1527267359,1527267360,1527267361,1527267362,1527267363,1527267409,1527267410,1527267411,1527267412,1527267413,1527267414,1527267415,1527267416,1527267417,1527267418,1527267419,1527267420,1527267421,1527267422,1527267423,1527267424,1527267425,1527267611,1527267612,1527267613,1527267614,1527267615,1527267616,1527267617,1527267618,1527267619,1527267665,1527267666,1527267667,1527267668,1527267669,1527267670,1527267671,1527267672,1527267673,1527267674,1527267675,1527267676,1527267677,1527267678,1527267679,1527267680,1527267681,1527267867,1527267868,1527267869,1527267870,1527267871,1527267872,1527267873,1527267874,1527267875,1527267921,1527267922,1527267923,1527267924,1527267925,1527267926,1527267927,1527267928,1527267929,1527267930,1527267931,1527267932,1527267933,1527267934,1527267935,1527267936,1527267937,1527268123,1527268124,1527268125,1527268126,1527268127,1527268128,1527268129,1527268130,1527268131,1527268177,1527268178,1527268179,1527268180,1527268181,1527268182,1527268183,1527268184,1527268185,1527268186,1527268187,1527268188,1527268189,1527268190,1527268191,1527268192,1527268193,1527268379,1527268380,1527268381,1527268382,1527268383,1527268384,1527268385,1527268386,1527268387,1527268433,1527268434,1527268435,1527268436,1527268437,1527268438,1527268439,1527268440,1527268441,1527268442,1527268443,1527268444,1527268445,1527268446,1527268447,1527268448,1527268449,1527268635,1527268636,1527268637,1527268638,1527268639,1527268640,1527268641,1527268642,1527268643,1527268689,1527268690,1527268691,1527268692,1527268693,1527268694,1527268695,1527268696,1527268697,1527268698,1527268699,1527268700,1527268701,1527268702,1527268703,1527268704,1527268705,1527268891,1527268892,1527268893,1527268894,1527268895,1527268896,1527268897,1527268898,1527268899,1527268936,1527268937,1527268938,1527268939,1527268940,1527268941,1527268942,1527268943,1527268944,1527268945,1527268946,1527268947,1527268948,1527268949,1527268950,1527268951,1527268952,1527268953,1527268954,1527268955,1527268956,1527268957,1527268958,1527268959,1527268960,1527268961,1527269147,1527269148,1527269149,1527269150,1527269151,1527269152,1527269153,1527269154,1527269155,1527269192,1527269193,1527269194,1527269195,1527269196,1527269197,1527269198,1527269199,1527269200,1527269201,1527269202,1527269203,1527269204,1527269205,1527269206,1527269207,1527269208,1527269209,1527269210,1527269211,1527269212,1527269213,1527269214,1527269215,1527269216,1527269217,1527269403,1527269404,1527269405,1527269406,1527269407,1527269408,1527269409,1527269410,1527269411,1527269412,1527269413,1527269428,1527269429,1527269430,1527269431,1527269446,1527269447,1527269448,1527269449,1527269450,1527269451,1527269452,1527269453,1527269454,1527269455,1527269456,1527269457,1527269458,1527269459,1527269460,1527269461,1527269462,1527269463,1527269464,1527269465,1527269466,1527269467,1527269468,1527269469,1527269470,1527269471,1527269472,1527269473,1527269659,1527269660,1527269661,1527269662,1527269663,1527269664,1527269665,1527269666,1527269667,1527269668,1527269669,1527269684,1527269685,1527269686,1527269687,1527269702,1527269703,1527269704,1527269705,1527269706,1527269707,1527269708,1527269709,1527269710,1527269711,1527269712,1527269713,1527269714,1527269715,1527269716,1527269717,1527269718,1527269719,1527269720,1527269721,1527269722,1527269723,1527269724,1527269725,1527269726,1527269727,1527269728,1527269729,1527269915,1527269916,1527269917,1527269918,1527269919,1527269920,1527269921,1527269922,1527269923,1527269924,1527269925,1527269940,1527269941,1527269942,1527269943,1527269958,1527269959,1527269960,1527269961,1527269962,1527269963,1527269964,1527269965,1527269966,1527269967,1527269968,1527269969,1527269970,1527269971,1527269972,1527269973,1527269974,1527269975,1527269976,1527269977,1527269978,1527269979,1527269980,1527269981,1527269982,1527269983,1527269984,1527269985,1527270171,1527270172,1527270173,1527270174,1527270175,1527270176,1527270177,1527270178,1527270179,1527270180,1527270181,1527270196,1527270197,1527270198,1527270199,1527270214,1527270215,1527270216,1527270217,1527270218,1527270219,1527270220,1527270221,1527270222,1527270223,1527270224,1527270225,1527270226,1527270227,1527270228,1527270229,1527270230,1527270231,1527270232,1527270233,1527270234,1527270235,1527270236,1527270237,1527270238,1527270239,1527270240,1527270241,1527270427,1527270428,1527270429,1527270430,1527270431,1527270432,1527270433,1527270434,1527270435,1527270436,1527270437,1527270452,1527270453,1527270454,1527270455,1527270470,1527270471,1527270472,1527270473,1527270474,1527270475,1527270476,1527270477,1527270478,1527270479,1527270480,1527270481,1527270482,1527270483,1527270484,1527270485,1527270486,1527270487,1527270488,1527270489,1527270490,1527270491,1527270492,1527270493,1527270494,1527270495,1527270496,1527270497,1527270683,1527270684,1527270685,1527270686,1527270687,1527270688,1527270689,1527270690,1527270691,1527270692,1527270693,1527270708,1527270709,1527270710,1527270711,1527270726,1527270727,1527270728,1527270729,1527270730,1527270731,1527270732,1527270733,1527270734,1527270735,1527270736,1527270737,1527270738,1527270739,1527270740,1527270741,1527270742,1527270743,1527270744,1527270745,1527270746,1527270747,1527270748,1527270749,1527270750,1527270751,1527270752,1527270753,1527270939,1527270940,1527270941,1527270942,1527270943,1527270944,1527270945,1527270946,1527270947,1527270948,1527270949,1527270964,1527270965,1527270966,1527270967,1527270982,1527270983,1527270984,1527270985,1527270986,1527270987,1527270988,1527270989,1527270990,1527270991,1527270992,1527270993,1527270994,1527270995,1527270996,1527270997,1527270998,1527270999,1527271000,1527271001,1527271002,1527271003,1527271004,1527271005,1527271006,1527271007,1527271008,1527271009,1527271195,1527271196,1527271197,1527271198,1527271199,1527271200,1527271201,1527271202,1527271203,1527271204,1527271205,1527271220,1527271221,1527271222,1527271223,1527271238,1527271239,1527271240,1527271241,1527271242,1527271243,1527271244,1527271245,1527271246,1527271247,1527271248,1527271249,1527271250,1527271251,1527271252,1527271253,1527271254,1527271255,1527271256,1527271257,1527271258,1527271259,1527271260,1527271261,1527271262,1527271263,1527271264,1527271265,1527271451,1527271452,1527271453,1527271454,1527271455,1527271456,1527271457,1527271458,1527271459,1527271460,1527271461,1527271476,1527271477,1527271478,1527271479,1527271494,1527271495,1527271496,1527271497,1527271498,1527271499,1527271500,1527271501,1527271502,1527271503,1527271504,1527271505,1527271506,1527271507,1527271508,1527271509,1527271510,1527271511,1527271512,1527271513,1527271514,1527271515,1527271516,1527271517,1527271518,1527271519,1527271520,1527271521,1527271707,1527271708,1527271709,1527271710,1527271711,1527271712,1527271713,1527271714,1527271715,1527271716,1527271717,1527271718,1527271719,1527271720,1527271721,1527271722,1527271723,1527271724,1527271725,1527271726,1527271727,1527271728,1527271729,1527271730,1527271731,1527271732,1527271733,1527271734,1527271735,1527271736,1527271737,1527271738,1527271739,1527271740,1527271741,1527271742,1527271743,1527271744,1527271745,1527271746,1527271747,1527271748,1527271749,1527271750,1527271751,1527271752,1527271753,1527271754,1527271755,1527271756,1527271757,1527271758,1527271759,1527271760,1527271761,1527271762,1527271763,1527271764,1527271765,1527271766,1527271767,1527271768,1527271769,1527271770,1527271771,1527271772,1527271773,1527271774,1527271775,1527271776,1527271777,1527271963,1527271964,1527271965,1527271966,1527271967,1527271968,1527271969,1527271970,1527271971,1527271972,1527271973,1527271974,1527271975,1527271976,1527271977,1527271978,1527271979,1527271980,1527271981,1527271982,1527271983,1527271984,1527271985,1527271986,1527271987,1527271988,1527271989,1527271990,1527271991,1527271992,1527271993,1527271994,1527271995,1527271996,1527271997,1527271998,1527271999,1527272000,1527272001,1527272002,1527272003,1527272004,1527272005,1527272006,1527272007,1527272008,1527272009,1527272010,1527272011,1527272012,1527272013,1527272014,1527272015,1527272016,1527272017,1527272018,1527272019,1527272020,1527272021,1527272022,1527272023,1527272024,1527272025,1527272026,1527272027,1527272028,1527272029,1527272030,1527272031,1527272032,1527272033,1527272219,1527272220,1527272221,1527272222,1527272223,1527272224,1527272225,1527272226,1527272227,1527272228,1527272229,1527272230,1527272231,1527272232,1527272233,1527272234,1527272235,1527272236,1527272237,1527272238,1527272239,1527272240,1527272241,1527272242,1527272243,1527272244,1527272245,1527272246,1527272247,1527272248,1527272249,1527272250,1527272251,1527272252,1527272253,1527272254,1527272255,1527272256,1527272257,1527272258,1527272259,1527272260,1527272261,1527272262,1527272263,1527272264,1527272265,1527272266,1527272267,1527272268,1527272269,1527272270,1527272271,1527272272,1527272273,1527272274,1527272275,1527272276,1527272277,1527272278,1527272279,1527272280,1527272281,1527272282,1527272283,1527272284,1527272285,1527272286,1527272287,1527272288,1527272289,1527272475,1527272476,1527272477,1527272478,1527272479,1527272480,1527272481,1527272482,1527272483,1527272484,1527272485,1527272486,1527272487,1527272488,1527272489,1527272490,1527272491,1527272492,1527272493,1527272494,1527272495,1527272496,1527272497,1527272498,1527272499,1527272500,1527272501,1527272502,1527272503,1527272504,1527272505,1527272506,1527272507,1527272508,1527272509,1527272510,1527272511,1527272512,1527272513,1527272514,1527272515,1527272516,1527272517,1527272518,1527272519,1527272520,1527272521,1527272522,1527272523,1527272524,1527272525,1527272526,1527272527,1527272528,1527272529,1527272530,1527272531,1527272532,1527272533,1527272534,1527272535,1527272536,1527272537,1527272538,1527272539,1527272540,1527272541,1527272542,1527272543,1527272544,1527272545,1527272731,1527272732,1527272733,1527272734,1527272735,1527272736,1527272737,1527272738,1527272739,1527272740,1527272741,1527272742,1527272743,1527272744,1527272745,1527272746,1527272747,1527272748,1527272749,1527272750,1527272751,1527272752,1527272753,1527272754,1527272755,1527272756,1527272757,1527272758,1527272759,1527272760,1527272761,1527272762,1527272763,1527272764,1527272765,1527272766,1527272767,1527272768,1527272769,1527272770,1527272771,1527272772,1527272773,1527272774,1527272775,1527272776,1527272777,1527272778,1527272779,1527272780,1527272781,1527272782,1527272783,1527272784,1527272785,1527272786,1527272787,1527272788,1527272789,1527272790,1527272791,1527272792,1527272793,1527272794,1527272795,1527272796,1527272797,1527272798,1527272799,1527272800,1527272801,1527272987,1527272988,1527272989,1527272990,1527272991,1527272992,1527272993,1527272994,1527272995,1527272996,1527272997,1527272998,1527272999,1527273000,1527273001,1527273002,1527273003,1527273004,1527273005,1527273006,1527273007,1527273008,1527273009,1527273010,1527273011,1527273012,1527273013,1527273014,1527273015,1527273016,1527273017,1527273018,1527273019,1527273020,1527273021,1527273022,1527273023,1527273024,1527273025,1527273026,1527273027,1527273028,1527273029,1527273030,1527273031,1527273032,1527273033,1527273034,1527273035,1527273036,1527273037,1527273038,1527273039,1527273040,1527273041,1527273042,1527273043,1527273044,1527273045,1527273046,1527273047,1527273048,1527273049,1527273050,1527273051,1527273052,1527273053,1527273054,1527273055,1527273056,1527273057,1527273243,1527273244,1527273245,1527273246,1527273247,1527273248,1527273249,1527273250,1527273251,1527273252,1527273253,1527273254,1527273255,1527273256,1527273257,1527273258,1527273259,1527273260,1527273261,1527273262,1527273263,1527273264,1527273265,1527273266,1527273267,1527273268,1527273269,1527273270,1527273271,1527273272,1527273273,1527273274,1527273275,1527273276,1527273277,1527273278,1527273279,1527273280,1527273281,1527273282,1527273283,1527273284,1527273285,1527273286,1527273287,1527273288,1527273289,1527273290,1527273291,1527273292,1527273293,1527273294,1527273295,1527273296,1527273297,1527273298,1527273299,1527273300,1527273301,1527273302,1527273303,1527273304,1527273305,1527273306,1527273307,1527273308,1527273309,1527273310,1527273311,1527273312,1527273313,1527273499,1527273500,1527273501,1527273502,1527273503,1527273504,1527273505,1527273506,1527273507,1527273508,1527273509,1527273510,1527273511,1527273512,1527273513,1527273514,1527273515,1527273516,1527273517,1527273518,1527273519,1527273520,1527273521,1527273522,1527273523,1527273524,1527273525,1527273526,1527273527,1527273528,1527273529,1527273530,1527273531,1527273532,1527273533,1527273534,1527273535,1527273536,1527273537,1527273538,1527273539,1527273540,1527273541,1527273542,1527273543,1527273544,1527273545,1527273546,1527273547,1527273548,1527273549,1527273550,1527273551,1527273552,1527273553,1527273554,1527273555,1527273556,1527273557,1527273558,1527273559,1527273560,1527273561,1527273562,1527273563,1527273564,1527273565,1527273566,1527273567,1527273568,1527273569,1527273755,1527273756,1527273757,1527273758,1527273759,1527273760,1527273761,1527273762,1527273763,1527273764,1527273765,1527273766,1527273767,1527273768,1527273769,1527273770,1527273771,1527273772,1527273773,1527273774,1527273775,1527273776,1527273777,1527273778,1527273779,1527273780,1527273781,1527273791,1527273792,1527273793,1527273794,1527273795,1527273796,1527273797,1527273798,1527273799,1527273800,1527273801,1527273802,1527273803,1527273804,1527273805,1527273806,1527273807,1527273808,1527273809,1527273810,1527273811,1527273812,1527273813,1527273814,1527273815,1527273816,1527273817,1527273818,1527273819,1527273820,1527273821,1527273822,1527273823,1527273824,1527273825,1366777941,1366777940,1366777939,1366777938,1527274007,1527274008,1527274009,1527274010,1527274011,1527274012,1527274013,1527274014,1527274015,1527274016,1527274017,1527274018,1527274019,1527274020,1527274021,1527274022,1527274023,1527274024,1527274025,1527274026,1527274027,1527274028,1527274029,1527274030,1527274031,1527274032,1527274033,1527274034,1527274035,1527274036,1527274048,1527274049,1527274050,1527274051,1527274052,1527274053,1527274054,1527274055,1527274056,1527274057,1527274058,1527274059,1527274060,1527274061,1527274062,1527274063,1527274064,1527274065,1527274066,1527274067,1527274068,1527274069,1527274070,1527274071,1527274072,1527274073,1527274074,1527274075,1527274076,1527274077,1527274078,1527274079,1527274080,1527274081,1366777937,1366777936,1366777935,1366777934,1527274263,1527274264,1527274265,1527274266,1527274267,1527274268,1527274269,1527274270,1527274271,1527274272,1527274273,1527274274,1527274275,1527274276,1527274277,1527274278,1527274279,1527274280,1527274281,1527274282,1527274283,1527274284,1527274285,1527274286,1527274287,1527274288,1527274289,1527274290,1527274291,1527274292,1527274304,1527274305,1527274306,1527274307,1527274308,1527274309,1527274310,1527274311,1527274312,1527274313,1527274314,1527274315,1527274316,1527274317,1527274318,1527274319,1527274320,1527274321,1527274322,1527274323,1527274324,1527274325,1527274326,1527274327,1527274328,1527274329,1527274330,1527274331,1527274332,1527274333,1527274334,1527274335,1527274336,1527274337,1366777933,1366777932,1366777931,1366777930,1527274519,1527274520,1527274521,1527274522,1527274523,1527274524,1527274525,1527274526,1527274527,1527274528,1527274529,1527274530,1527274531,1527274532,1527274533,1527274534,1527274535,1527274536,1527274537,1527274538,1527274539,1527274540,1527274541,1527274542,1527274543,1527274544,1527274545,1527274546,1527274547,1527274548,1527274560,1527274561,1527274562,1527274563,1527274564,1527274565,1527274566,1527274567,1527274568,1527274569,1527274570,1527274571,1527274572,1527274573,1527274574,1527274575,1527274576,1527274577,1527274578,1527274579,1527274580,1527274581,1527274582,1527274583,1527274584,1527274585,1527274586,1527274587,1527274588,1527274589,1527274590,1527274591,1527274592,1527274593,1366777929,1366777928,1366777927,1366777926,1527274775,1527274776,1527274777,1527274778,1527274779,1527274780,1527274781,1527274782,1527274783,1527274784,1527274785,1527274786,1527274787,1527274788,1527274789,1527274790,1527274791,1527274792,1527274793,1527274794,1527274795,1527274796,1527274797,1527274798,1527274799,1527274800,1527274801,1527274802,1527274803,1527274804,1527274816,1527274817,1527274818,1527274819,1527274820,1527274821,1527274822,1527274823,1527274824,1527274825,1527274826,1527274827,1527274828,1527274829,1527274830,1527274831,1527274832,1527274833,1527274834,1527274835,1527274836,1527274837,1527274838,1527274839,1527274840,1527274841,1527274842,1527274843,1527274844,1527274845,1527274846,1527274847,1527274848,1527274849,1366777925,1366777924,1366777923,1366777922,1527275031,1527275032,1527275033,1527275034,1527275035,1527275036,1527275037,1527275038,1527275039,1527275040,1527275041,1527275042,1527275043,1527275044,1527275045,1527275046,1527275047,1527275048,1527275049,1527275050,1527275051,1527275052,1527275053,1527275054,1527275055,1527275056,1527275057,1527275058,1527275059,1527275060,1527275072,1527275073,1527275074,1527275075,1527275076,1527275077,1527275078,1527275079,1527275080,1527275081,1527275082,1527275083,1527275084,1527275085,1527275086,1527275087,1527275088,1527275089,1527275090,1527275091,1527275092,1527275093,1527275094,1527275095,1527275096,1527275097,1527275098,1527275099,1527275100,1527275101,1527275102,1527275103,1527275104,1527275105,1366777921,1366777920,1366777919,1366777918,1527275287,1527275288,1527275289,1527275290,1527275291,1527275292,1527275293,1527275294,1527275295,1527275296,1527275297,1527275298,1527275299,1527275300,1527275301,1527275302,1527275303,1527275304,1527275305,1527275306,1527275307,1527275308,1527275309,1527275310,1527275311,1527275312,1527275313,1527275314,1527275315,1527275316,1527275328,1527275329,1527275330,1527275331,1527275332,1527275333,1527275334,1527275335,1527275336,1527275337,1527275338,1527275339,1527275340,1527275341,1527275342,1527275343,1527275344,1527275345,1527275346,1527275347,1527275348,1527275349,1527275350,1527275351,1527275352,1527275353,1527275354,1527275355,1527275356,1527275357,1527275358,1527275359,1527275360,1527275361,1366777917,1366777916,1366777915,1366777914,1527275543,1527275544,1527275545,1527275546,1527275547,1527275548,1527275549,1527275550,1527275551,1527275552,1527275553,1527275554,1527275555,1527275556,1527275557,1527275558,1527275559,1527275560,1527275561,1527275562,1527275563,1527275564,1527275565,1527275566,1527275567,1527275568,1527275569,1527275570,1527275571,1527275572,1527275584,1527275585,1527275586,1527275587,1527275588,1527275589,1527275590,1527275591,1527275592,1527275593,1527275594,1527275595,1527275596,1527275597,1527275598,1527275599,1527275600,1527275601,1527275602,1527275603,1527275604,1527275605,1527275606,1527275607,1527275608,1527275609,1527275610,1527275611,1527275612,1527275613,1527275614,1527275615,1527275616,1527275617,1366777913,1366777912,1366777911,1366777910,1527275799,1527275800,1527275801,1527275802,1527275803,1527275804,1527275805,1527275806,1527275807,1527275808,1527275809,1527275810,1527275811,1527275812,1527275813,1527275814,1527275815,1527275816,1527275817,1527275818,1527275819,1527275820,1527275821,1527275822,1527275823,1527275824,1527275825,1527275826,1527275827,1527275828,1527275840,1527275841,1527275842,1527275843,1527275844,1527275845,1527275846,1527275847,1527275848,1527275849,1527275850,1527275851,1527275852,1527275853,1527275854,1527275855,1527275856,1527275857,1527275858,1527275859,1527275860,1527275861,1527275862,1527275863,1527275864,1527275865,1527275866,1527275867,1527275868,1527275869,1527275870,1527275871,1527275872,1527275873,1359549275,1359549276,1359549277,1359549278,1359549279,1359549280,1359549281,1359549531,1359549532,1359549533,1359549534,1359549535,1359549536,1359549537,1359549787,1359549788,1359549789,1359549790,1359549791,1359549792,1359549793,1359550043,1359550044,1359550045,1359550046,1359550047,1359550048,1359550049,1359550299,1359550300,1359550301,1359550302,1359550303,1359550304,1359550305,1359550555,1359550556,1359550557,1359550558,1359550559,1359550560,1359550561,1359550811,1359550812,1359550813,1359550814,1359550815,1359550816,1359550817,1359551067,1359551068,1359551069,1359551070,1359551071,1359551072,1359551073,1527323482,1527323483,1527323484,1527323485,1527323486,1527323487,1527323488,1527323489,1527323710,1527323711,1527323728,1527323729,1527323730,1527323731,1527323732,1527323733,1527323734,1527323735,1527323736,1527323737,1527323738,1527323739,1527323740,1527323741,1527323742,1527323743,1527323744,1527323745,1527323967,1527323984,1527323985,1527323986,1527323987,1527323988,1527323989,1527323990,1527323991,1527323992,1527323993,1527323994,1527323995,1527323996,1527323997,1527323998,1527323999,1527324000,1527324001,1527324223,1527324240,1527324241,1527324242,1527324243,1527324244,1527324245,1527324246,1527324247,1527324248,1527324249,1527324250,1527324251,1527324252,1527324253,1527324254,1527324255,1527324256,1527324257,1527324479,1527324496,1527324497,1527324498,1527324499,1527324500,1527324501,1527324502,1527324503,1527324504,1527324505,1527324506,1527324507,1527324508,1527324509,1527324510,1527324511,1527324512,1527324513,1527324735,1527324752,1527324753,1527324754,1527324755,1527324756,1527324757,1527324758,1527324759,1527324760,1527324761,1527324762,1527324763,1527324764,1527324765,1527324766,1527324767,1527324768,1527324769,1527324991,1527325008,1527325009,1527325010,1527325011,1527325012,1527325013,1527325014,1527325015,1527325016,1527325017,1527325018,1527325019,1527325020,1527325021,1527325022,1527325023,1527325024,1527325025,1527325247,1527325264,1527325265,1527325266,1527325267,1527325268,1527325269,1527325270,1527325271,1527325272,1527325273,1527325274,1527325275,1527325276,1527325277,1527325278,1527325279,1527325280,1527325281,1527325530,1527325531,1527325532,1527325533,1527325534,1527325535,1527325536,1527325537,1527325787,1527325788,1527325789,1527325790,1527325791,1527325792,1527325793,1527325980,1527325981,1527325982,1527325983,1527325984,1527325985,1527325986,1527326043,1527326044,1527326045,1527326046,1527326047,1527326048,1527326049,1527326236,1527326237,1527326238,1527326239,1527326240,1527326241,1527326242,1527326299,1527326300,1527326301,1527326302,1527326303,1527326304,1527326305,1527326492,1527326493,1527326494,1527326495,1527326496,1527326497,1527326498,1527326555,1527326556,1527326557,1527326558,1527326559,1527326560,1527326561,1527326748,1527326749,1527326750,1527326751,1527326752,1527326753,1527326754,1527326811,1527326812,1527326813,1527326814,1527326815,1527326816,1527326817,1527327004,1527327005,1527327006,1527327007,1527327008,1527327009,1527327010,1527327067,1527327068,1527327069,1527327070,1527327071,1527327072,1527327073,1527327260,1527327261,1527327262,1527327263,1527327264,1527327265,1527327266,1527327323,1527327324,1527327325,1527327326,1527327327,1527327328,1527327329,1527327516,1527327517,1527327518,1527327519,1527327520,1527327521,1527327522,1527327579,1527327580,1527327581,1527327582,1527327583,1527327584,1527327585,1527327772,1527327773,1527327774,1527327775,1527327776,1527327777,1527327778,1527327799,1527327800,1527327801,1527327802,1527327803,1527327804,1527327805,1527327835,1527327836,1527327837,1527327838,1527327839,1527327840,1527327841,1527328028,1527328029,1527328030,1527328031,1527328032,1527328033,1527328034,1527328055,1527328056,1527328057,1527328058,1527328059,1527328060,1527328061,1527328090,1527328091,1527328092,1527328093,1527328094,1527328095,1527328096,1527328097,1527328284,1527328285,1527328286,1527328287,1527328288,1527328289,1527328290,1527328311,1527328312,1527328313,1527328314,1527328315,1527328316,1527328317,1527328329,1527328330,1527328331,1527328332,1527328333,1527328334,1527328335,1527328336,1527328337,1527328338,1527328339,1527328340,1527328341,1527328342,1527328343,1527328344,1527328345,1527328346,1527328347,1527328348,1527328349,1527328350,1527328351,1527328352,1527328353,1527328540,1527328541,1527328542,1527328543,1527328544,1527328545,1527328546,1527328567,1527328568,1527328569,1527328570,1527328571,1527328572,1527328573,1527328585,1527328586,1527328587,1527328588,1527328589,1527328590,1527328591,1527328592,1527328593,1527328594,1527328595,1527328596,1527328597,1527328598,1527328599,1527328600,1527328601,1527328602,1527328603,1527328604,1527328605,1527328606,1527328607,1527328608,1527328609,1527328796,1527328797,1527328798,1527328799,1527328800,1527328801,1527328802,1527328823,1527328824,1527328825,1527328826,1527328827,1527328828,1527328829,1527328841,1527328842,1527328843,1527328844,1527328845,1527328846,1527328847,1527328848,1527328849,1527328850,1527328851,1527328852,1527328853,1527328854,1527328855,1527328856,1527328857,1527328858,1527328859,1527328860,1527328861,1527328862,1527328863,1527328864,1527328865,1527329052,1527329053,1527329054,1527329055,1527329056,1527329057,1527329058,1527329079,1527329080,1527329081,1527329082,1527329083,1527329084,1527329085,1527329097,1527329098,1527329099,1527329100,1527329101,1527329102,1527329103,1527329104,1527329105,1527329106,1527329107,1527329108,1527329109,1527329110,1527329111,1527329112,1527329113,1527329114,1527329115,1527329116,1527329117,1527329118,1527329119,1527329120,1527329121,1527329308,1527329309,1527329310,1527329311,1527329312,1527329313,1527329314,1527329335,1527329336,1527329337,1527329338,1527329339,1527329340,1527329341,1527329353,1527329354,1527329355,1527329356,1527329357,1527329358,1527329359,1527329360,1527329361,1527329362,1527329363,1527329364,1527329365,1527329366,1527329367,1527329368,1527329369,1527329370,1527329371,1527329372,1527329373,1527329374,1527329375,1527329376,1527329377,1527329564,1527329565,1527329566,1527329567,1527329568,1527329569,1527329570,1527329591,1527329592,1527329593,1527329594,1527329595,1527329596,1527329597,1527329609,1527329610,1527329611,1527329612,1527329613,1527329614,1527329615,1527329616,1527329617,1527329618,1527329619,1527329620,1527329621,1527329622,1527329623,1527329624,1527329625,1527329626,1527329627,1527329628,1527329629,1527329630,1527329631,1527329632,1527329633,1527329820,1527329821,1527329822,1527329823,1527329824,1527329825,1527329826,1527329847,1527329848,1527329849,1527329850,1527329851,1527329852,1527329853,1527329865,1527329866,1527329867,1527329868,1527329869,1527329870,1527329871,1527329872,1527329873,1527329874,1527329875,1527329876,1527329877,1527329878,1527329879,1527329880,1527329881,1527329882,1527329883,1527329884,1527329885,1527329886,1527329887,1527329888,1527329889,1527330076,1527330077,1527330078,1527330079,1527330080,1527330081,1527330082,1527330103,1527330104,1527330105,1527330106,1527330107,1527330108,1527330109,1527330121,1527330122,1527330123,1527330124,1527330125,1527330126,1527330127,1527330128,1527330138,1527330139,1527330140,1527330141,1527330142,1527330143,1527330144,1527330145,1527330332,1527330333,1527330334,1527330335,1527330336,1527330337,1527330338,1527330359,1527330360,1527330361,1527330362,1527330363,1527330364,1527330365,1527330377,1527330378,1527330379,1527330380,1527330381,1527330382,1527330383,1527330395,1527330396,1527330397,1527330398,1527330399,1527330400,1527330401,1527330588,1527330589,1527330590,1527330591,1527330592,1527330593,1527330594,1527330615,1527330616,1527330617,1527330618,1527330619,1527330620,1527330621,1527330651,1527330652,1527330653,1527330654,1527330655,1527330656,1527330657,1527330844,1527330845,1527330846,1527330847,1527330848,1527330849,1527330850,1527330871,1527330872,1527330873,1527330874,1527330875,1527330876,1527330877,1527330907,1527330908,1527330909,1527330910,1527330911,1527330912,1527330913,1527331100,1527331101,1527331102,1527331103,1527331104,1527331105,1527331106,1527331127,1527331128,1527331129,1527331130,1527331131,1527331132,1527331133,1527331163,1527331164,1527331165,1527331166,1527331167,1527331168,1527331169,1527331356,1527331357,1527331358,1527331359,1527331360,1527331361,1527331362,1527331383,1527331384,1527331385,1527331386,1527331387,1527331388,1527331389,1527331419,1527331420,1527331421,1527331422,1527331423,1527331424,1527331425,1527331612,1527331613,1527331614,1527331615,1527331616,1527331617,1527331618,1527331639,1527331640,1527331641,1527331642,1527331643,1527331644,1527331645,1527331675,1527331676,1527331677,1527331678,1527331679,1527331680,1527331681,1527331868,1527331869,1527331870,1527331871,1527331872,1527331873,1527331874,1527331895,1527331896,1527331897,1527331898,1527331899,1527331900,1527331901,1527331931,1527331932,1527331933,1527331934,1527331935,1527331936,1527331937,1527332124,1527332125,1527332126,1527332127,1527332128,1527332129,1527332130,1527332151,1527332152,1527332153,1527332154,1527332155,1527332156,1527332157,1527332187,1527332188,1527332189,1527332190,1527332191,1527332192,1527332193,1527332380,1527332381,1527332382,1527332383,1527332384,1527332385,1527332386,1527332443,1527332444,1527332445,1527332446,1527332447,1527332448,1527332449,1527332636,1527332637,1527332638,1527332639,1527332640,1527332641,1527332642,1527332698,1527332699,1527332700,1527332701,1527332702,1527332703,1527332704,1527332705,1527332892,1527332893,1527332894,1527332895,1527332896,1527332897,1527332898,1527332946,1527332947,1527332948,1527332949,1527332950,1527332951,1527332952,1527332953,1527332954,1527332955,1527332956,1527332957,1527332958,1527332959,1527332960,1527332961,1527333148,1527333149,1527333150,1527333151,1527333152,1527333153,1527333154,1527333202,1527333203,1527333204,1527333205,1527333206,1527333207,1527333208,1527333209,1527333210,1527333211,1527333212,1527333213,1527333214,1527333215,1527333216,1527333217,1527333404,1527333405,1527333406,1527333407,1527333408,1527333409,1527333410,1527333458,1527333459,1527333460,1527333461,1527333462,1527333463,1527333464,1527333465,1527333466,1527333467,1527333468,1527333469,1527333470,1527333471,1527333472,1527333473,1527333660,1527333661,1527333662,1527333663,1527333664,1527333665,1527333666,1527333714,1527333715,1527333716,1527333717,1527333718,1527333719,1527333720,1527333721,1527333722,1527333723,1527333724,1527333725,1527333726,1527333727,1527333728,1527333729,1527333916,1527333917,1527333918,1527333919,1527333920,1527333921,1527333922,1527333970,1527333971,1527333972,1527333973,1527333974,1527333975,1527333976,1527333977,1527333978,1527333979,1527333980,1527333981,1527333982,1527333983,1527333984,1527333985,1527334172,1527334173,1527334174,1527334175,1527334176,1527334177,1527334178,1527334226,1527334227,1527334228,1527334229,1527334230,1527334231,1527334232,1527334233,1527334234,1527334235,1527334236,1527334237,1527334238,1527334239,1527334240,1527334241,1527334428,1527334429,1527334430,1527334431,1527334432,1527334433,1527334434,1527334481,1527334482,1527334483,1527334484,1527334485,1527334486,1527334487,1527334488,1527334489,1527334490,1527334491,1527334492,1527334493,1527334494,1527334495,1527334496,1527334497,1527334684,1527334685,1527334686,1527334687,1527334688,1527334689,1527334690,1527334729,1527334730,1527334731,1527334732,1527334733,1527334734,1527334735,1527334736,1527334737,1527334738,1527334739,1527334740,1527334741,1527334742,1527334743,1527334744,1527334745,1527334746,1527334747,1527334748,1527334749,1527334750,1527334751,1527334752,1527334753,1527334940,1527334941,1527334942,1527334943,1527334944,1527334945,1527334946,1527334947,1527334984,1527334985,1527334986,1527334987,1527334988,1527334989,1527334990,1527334991,1527334992,1527334993,1527334994,1527334995,1527334996,1527334997,1527334998,1527334999,1527335000,1527335001,1527335002,1527335003,1527335004,1527335005,1527335006,1527335007,1527335008,1527335009,1527335196,1527335197,1527335198,1527335199,1527335200,1527335201,1527335202,1527335203,1527335204,1527335221,1527335222,1527335239,1527335240,1527335241,1527335242,1527335243,1527335244,1527335245,1527335246,1527335247,1527335248,1527335249,1527335250,1527335251,1527335252,1527335253,1527335254,1527335255,1527335256,1527335257,1527335258,1527335259,1527335260,1527335261,1527335262,1527335263,1527335264,1527335265,1527335452,1527335453,1527335454,1527335455,1527335456,1527335457,1527335458,1527335459,1527335460,1527335477,1527335478,1527335495,1527335496,1527335497,1527335498,1527335499,1527335500,1527335501,1527335502,1527335503,1527335504,1527335505,1527335506,1527335507,1527335508,1527335509,1527335510,1527335511,1527335512,1527335513,1527335514,1527335515,1527335516,1527335517,1527335518,1527335519,1527335520,1527335521,1527335708,1527335709,1527335710,1527335711,1527335712,1527335713,1527335714,1527335715,1527335716,1527335733,1527335734,1527335751,1527335752,1527335753,1527335754,1527335755,1527335756,1527335757,1527335758,1527335759,1527335760,1527335761,1527335762,1527335763,1527335764,1527335765,1527335766,1527335767,1527335768,1527335769,1527335770,1527335771,1527335772,1527335773,1527335774,1527335775,1527335776,1527335777,1527335964,1527335965,1527335966,1527335967,1527335968,1527335969,1527335970,1527335971,1527335972,1527335989,1527335990,1527336007,1527336008,1527336009,1527336010,1527336011,1527336012,1527336013,1527336014,1527336015,1527336016,1527336017,1527336018,1527336019,1527336020,1527336021,1527336022,1527336023,1527336024,1527336025,1527336026,1527336027,1527336028,1527336029,1527336030,1527336031,1527336032,1527336033,1527336220,1527336221,1527336222,1527336223,1527336224,1527336225,1527336226,1527336227,1527336228,1527336245,1527336246,1527336263,1527336264,1527336265,1527336266,1527336267,1527336268,1527336269,1527336270,1527336271,1527336272,1527336273,1527336274,1527336275,1527336276,1527336277,1527336278,1527336279,1527336280,1527336281,1527336282,1527336283,1527336284,1527336285,1527336286,1527336287,1527336288,1527336289,1527336476,1527336477,1527336478,1527336479,1527336480,1527336481,1527336482,1527336483,1527336484,1527336501,1527336502,1527336519,1527336520,1527336521,1527336522,1527336523,1527336524,1527336525,1527336526,1527336527,1527336528,1527336529,1527336530,1527336531,1527336532,1527336533,1527336534,1527336535,1527336536,1527336537,1527336538,1527336539,1527336540,1527336541,1527336542,1527336543,1527336544,1527336545,1527336732,1527336733,1527336734,1527336735,1527336736,1527336737,1527336738,1527336739,1527336740,1527336757,1527336758,1527336775,1527336776,1527336777,1527336778,1527336779,1527336780,1527336781,1527336782,1527336783,1527336784,1527336785,1527336786,1527336787,1527336788,1527336789,1527336790,1527336791,1527336792,1527336793,1527336794,1527336795,1527336796,1527336797,1527336798,1527336799,1527336800,1527336801,1527336988,1527336989,1527336990,1527336991,1527336992,1527336993,1527336994,1527336995,1527336996,1527337013,1527337014,1527337031,1527337032,1527337033,1527337034,1527337035,1527337036,1527337037,1527337038,1527337039,1527337040,1527337041,1527337042,1527337043,1527337044,1527337045,1527337046,1527337047,1527337048,1527337049,1527337050,1527337051,1527337052,1527337053,1527337054,1527337055,1527337056,1527337057,1527337244,1527337245,1527337246,1527337247,1527337248,1527337249,1527337250,1527337251,1527337252,1527337253,1527337268,1527337269,1527337270,1527337271,1527337286,1527337287,1527337288,1527337289,1527337290,1527337291,1527337292,1527337293,1527337294,1527337295,1527337296,1527337297,1527337298,1527337299,1527337300,1527337301,1527337302,1527337303,1527337304,1527337305,1527337306,1527337307,1527337308,1527337309,1527337310,1527337311,1527337312,1527337313,1527337500,1527337501,1527337502,1527337503,1527337504,1527337505,1527337506,1527337507,1527337508,1527337509,1527337510,1527337511,1527337512,1527337513,1527337514,1527337515,1527337516,1527337517,1527337518,1527337519,1527337520,1527337521,1527337522,1527337523,1527337524,1527337525,1527337526,1527337527,1527337528,1527337529,1527337530,1527337531,1527337532,1527337533,1527337534,1527337535,1527337536,1527337537,1527337538,1527337539,1527337540,1527337541,1527337542,1527337543,1527337544,1527337545,1527337546,1527337547,1527337548,1527337549,1527337550,1527337551,1527337552,1527337553,1527337554,1527337555,1527337556,1527337557,1527337558,1527337559,1527337560,1527337561,1527337562,1527337563,1527337564,1527337565,1527337566,1527337567,1527337568,1527337569,1527337756,1527337757,1527337758,1527337759,1527337760,1527337761,1527337762,1527337763,1527337764,1527337765,1527337766,1527337767,1527337768,1527337769,1527337770,1527337771,1527337772,1527337773,1527337774,1527337775,1527337776,1527337777,1527337778,1527337779,1527337780,1527337781,1527337782,1527337783,1527337784,1527337785,1527337786,1527337787,1527337788,1527337789,1527337790,1527337791,1527337792,1527337793,1527337794,1527337795,1527337796,1527337797,1527337798,1527337799,1527337800,1527337801,1527337802,1527337803,1527337804,1527337805,1527337806,1527337807,1527337808,1527337809,1527337810,1527337811,1527337812,1527337813,1527337814,1527337815,1527337816,1527337817,1527337818,1527337819,1527337820,1527337821,1527337822,1527337823,1527337824,1527337825,1527338012,1527338013,1527338014,1527338015,1527338016,1527338017,1527338018,1527338019,1527338020,1527338021,1527338022,1527338023,1527338024,1527338025,1527338026,1527338027,1527338028,1527338029,1527338030,1527338031,1527338032,1527338033,1527338034,1527338035,1527338036,1527338037,1527338038,1527338039,1527338040,1527338041,1527338042,1527338043,1527338044,1527338045,1527338046,1527338047,1527338048,1527338049,1527338050,1527338051,1527338052,1527338053,1527338054,1527338055,1527338056,1527338057,1527338058,1527338059,1527338060,1527338061,1527338062,1527338063,1527338064,1527338065,1527338066,1527338067,1527338068,1527338069,1527338070,1527338071,1527338072,1527338073,1527338074,1527338075,1527338076,1527338077,1527338078,1527338079,1527338080,1527338081,1527338268,1527338269,1527338270,1527338271,1527338272,1527338273,1527338274,1527338275,1527338276,1527338277,1527338278,1527338279,1527338280,1527338281,1527338282,1527338283,1527338284,1527338285,1527338286,1527338287,1527338288,1527338289,1527338290,1527338291,1527338292,1527338293,1527338294,1527338295,1527338296,1527338297,1527338298,1527338299,1527338300,1527338301,1527338302,1527338303,1527338304,1527338305,1527338306,1527338307,1527338308,1527338309,1527338310,1527338311,1527338312,1527338313,1527338314,1527338315,1527338316,1527338317,1527338318,1527338319,1527338320,1527338321,1527338322,1527338323,1527338324,1527338325,1527338326,1527338327,1527338328,1527338329,1527338330,1527338331,1527338332,1527338333,1527338334,1527338335,1527338336,1527338337,1527338524,1527338525,1527338526,1527338527,1527338528,1527338529,1527338530,1527338531,1527338532,1527338533,1527338534,1527338535,1527338536,1527338537,1527338538,1527338539,1527338540,1527338541,1527338542,1527338543,1527338544,1527338545,1527338546,1527338547,1527338548,1527338549,1527338550,1527338551,1527338552,1527338553,1527338554,1527338555,1527338556,1527338557,1527338558,1527338559,1527338560,1527338561,1527338562,1527338563,1527338564,1527338565,1527338566,1527338567,1527338568,1527338569,1527338570,1527338571,1527338572,1527338573,1527338574,1527338575,1527338576,1527338577,1527338578,1527338579,1527338580,1527338581,1527338582,1527338583,1527338584,1527338585,1527338586,1527338587,1527338588,1527338589,1527338590,1527338591,1527338592,1527338593,1527338780,1527338781,1527338782,1527338783,1527338784,1527338785,1527338786,1527338787,1527338788,1527338789,1527338790,1527338791,1527338792,1527338793,1527338794,1527338795,1527338796,1527338797,1527338798,1527338799,1527338800,1527338801,1527338802,1527338803,1527338804,1527338805,1527338806,1527338807,1527338808,1527338809,1527338810,1527338811,1527338812,1527338813,1527338814,1527338815,1527338816,1527338817,1527338818,1527338819,1527338820,1527338821,1527338822,1527338823,1527338824,1527338825,1527338826,1527338827,1527338828,1527338829,1527338830,1527338831,1527338832,1527338833,1527338834,1527338835,1527338836,1527338837,1527338838,1527338839,1527338840,1527338841,1527338842,1527338843,1527338844,1527338845,1527338846,1527338847,1527338848,1527338849,1527339036,1527339037,1527339038,1527339039,1527339040,1527339041,1527339042,1527339043,1527339044,1527339045,1527339046,1527339047,1527339048,1527339049,1527339050,1527339051,1527339052,1527339053,1527339054,1527339055,1527339056,1527339057,1527339058,1527339059,1527339060,1527339061,1527339062,1527339063,1527339064,1527339065,1527339066,1527339067,1527339068,1527339069,1527339070,1527339071,1527339072,1527339073,1527339074,1527339075,1527339076,1527339077,1527339078,1527339079,1527339080,1527339081,1527339082,1527339083,1527339084,1527339085,1527339086,1527339087,1527339088,1527339089,1527339090,1527339091,1527339092,1527339093,1527339094,1527339095,1527339096,1527339097,1527339098,1527339099,1527339100,1527339101,1527339102,1527339103,1527339104,1527339105,1527339292,1527339293,1527339294,1527339295,1527339296,1527339297,1527339298,1527339299,1527339300,1527339301,1527339302,1527339303,1527339304,1527339305,1527339306,1527339307,1527339308,1527339309,1527339310,1527339311,1527339312,1527339313,1527339314,1527339315,1527339316,1527339317,1527339327,1527339328,1527339329,1527339330,1527339331,1527339332,1527339333,1527339334,1527339335,1527339336,1527339337,1527339338,1527339339,1527339340,1527339341,1527339342,1527339343,1527339344,1527339345,1527339346,1527339347,1527339348,1527339349,1527339350,1527339351,1527339352,1527339353,1527339354,1527339355,1527339356,1527339357,1527339358,1527339359,1527339360,1527339361,1527339547,1527339548,1527339549,1527339550,1527339551,1527339552,1527339553,1527339554,1527339555,1527339556,1527339557,1527339558,1527339559,1527339560,1527339561,1527339562,1527339563,1527339564,1527339565,1527339566,1527339567,1527339568,1527339569,1527339570,1527339571,1527339572,1527339584,1527339585,1527339586,1527339587,1527339588,1527339589,1527339590,1527339591,1527339592,1527339593,1527339594,1527339595,1527339596,1527339597,1527339598,1527339599,1527339600,1527339601,1527339602,1527339603,1527339604,1527339605,1527339606,1527339607,1527339608,1527339609,1527339610,1527339611,1527339612,1527339613,1527339614,1527339615,1527339616,1527339617,1366777909,1366777908,1366777907,1366777906,1359567639,1359567640,1359567641,1359567642,1527339803,1527339804,1527339805,1527339806,1527339807,1527339808,1527339809,1527339810,1527339811,1527339812,1527339813,1527339814,1527339815,1527339816,1527339817,1527339818,1527339819,1527339820,1527339821,1527339822,1527339823,1527339824,1527339825,1527339826,1527339827,1527339828,1527339840,1527339841,1527339842,1527339843,1527339844,1527339845,1527339846,1527339847,1527339848,1527339849,1527339850,1527339851,1527339852,1527339853,1527339854,1527339855,1527339856,1527339857,1527339858,1527339859,1527339860,1527339861,1527339862,1527339863,1527339864,1527339865,1527339866,1527339867,1527339868,1527339869,1527339870,1527339871,1527339872,1527339873,1366777905,1366777904,1366777903,1366777902,1359567895,1359567896,1359567897,1359567898,1527340059,1527340060,1527340061,1527340062,1527340063,1527340064,1527340065,1527340066,1527340067,1527340068,1527340069,1527340070,1527340071,1527340072,1527340073,1527340074,1527340075,1527340076,1527340077,1527340078,1527340079,1527340080,1527340081,1527340082,1527340083,1527340084,1527340096,1527340097,1527340098,1527340099,1527340100,1527340101,1527340102,1527340103,1527340104,1527340105,1527340106,1527340107,1527340108,1527340109,1527340110,1527340111,1527340112,1527340113,1527340114,1527340115,1527340116,1527340117,1527340118,1527340119,1527340120,1527340121,1527340122,1527340123,1527340124,1527340125,1527340126,1527340127,1527340128,1527340129,1366777901,1366777900,1366777899,1366777898,1359568151,1359568152,1359568153,1359568154,1527340315,1527340316,1527340317,1527340318,1527340319,1527340320,1527340321,1527340322,1527340323,1527340324,1527340325,1527340326,1527340327,1527340328,1527340329,1527340330,1527340331,1527340332,1527340333,1527340334,1527340335,1527340336,1527340337,1527340338,1527340339,1527340340,1527340352,1527340353,1527340354,1527340355,1527340356,1527340357,1527340358,1527340359,1527340360,1527340361,1527340362,1527340363,1527340364,1527340365,1527340366,1527340367,1527340368,1527340369,1527340370,1527340371,1527340372,1527340373,1527340374,1527340375,1527340376,1527340377,1527340378,1527340379,1527340380,1527340381,1527340382,1527340383,1527340384,1527340385,1366777897,1366777896,1366777895,1366777894,1359568407,1359568408,1359568409,1359568410,1527340571,1527340572,1527340573,1527340574,1527340575,1527340576,1527340577,1527340578,1527340579,1527340580,1527340581,1527340582,1527340583,1527340584,1527340585,1527340586,1527340587,1527340588,1527340589,1527340590,1527340591,1527340592,1527340593,1527340594,1527340595,1527340596,1527340608,1527340609,1527340610,1527340611,1527340612,1527340613,1527340614,1527340615,1527340616,1527340617,1527340618,1527340619,1527340620,1527340621,1527340622,1527340623,1527340624,1527340625,1527340626,1527340627,1527340628,1527340629,1527340630,1527340631,1527340632,1527340633,1527340634,1527340635,1527340636,1527340637,1527340638,1527340639,1527340640,1527340641,1366777893,1366777892,1366777891,1366777890,1359568663,1359568664,1359568665,1359568666,1527340827,1527340828,1527340829,1527340830,1527340831,1527340832,1527340833,1527340834,1527340835,1527340836,1527340837,1527340838,1527340839,1527340840,1527340841,1527340842,1527340843,1527340844,1527340845,1527340846,1527340847,1527340848,1527340849,1527340850,1527340851,1527340852,1527340864,1527340865,1527340866,1527340867,1527340868,1527340869,1527340870,1527340871,1527340872,1527340873,1527340874,1527340875,1527340876,1527340877,1527340878,1527340879,1527340880,1527340881,1527340882,1527340883,1527340884,1527340885,1527340886,1527340887,1527340888,1527340889,1527340890,1527340891,1527340892,1527340893,1527340894,1527340895,1527340896,1527340897,1366777889,1366777888,1366777887,1366777886,1359568919,1359568920,1359568921,1359568922,1527341083,1527341084,1527341085,1527341086,1527341087,1527341088,1527341089,1527341090,1527341091,1527341092,1527341093,1527341094,1527341095,1527341096,1527341097,1527341098,1527341099,1527341100,1527341101,1527341102,1527341103,1527341104,1527341105,1527341106,1527341107,1527341108,1527341120,1527341121,1527341122,1527341123,1527341124,1527341125,1527341126,1527341127,1527341128,1527341129,1527341130,1527341131,1527341132,1527341133,1527341134,1527341135,1527341136,1527341137,1527341138,1527341139,1527341140,1527341141,1527341142,1527341143,1527341144,1527341145,1527341146,1527341147,1527341148,1527341149,1527341150,1527341151,1527341152,1527341153,1366777885,1366777884,1366777883,1366777882,1359569175,1359569176,1359569177,1359569178,1527341339,1527341340,1527341341,1527341342,1527341343,1527341344,1527341345,1527341346,1527341347,1527341348,1527341349,1527341350,1527341351,1527341352,1527341353,1527341354,1527341355,1527341356,1527341357,1527341358,1527341359,1527341360,1527341361,1527341362,1527341363,1527341364,1527341376,1527341377,1527341378,1527341379,1527341380,1527341381,1527341382,1527341383,1527341384,1527341385,1527341386,1527341387,1527341388,1527341389,1527341390,1527341391,1527341392,1527341393,1527341394,1527341395,1527341396,1527341397,1527341398,1527341399,1527341400,1527341401,1527341402,1527341403,1527341404,1527341405,1527341406,1527341407,1527341408,1527341409,1359614811,1359614812,1359614813,1359614814,1359614815,1359614816,1359614817,1359615067,1359615068,1359615069,1359615070,1359615071,1359615072,1359615073,1359615323,1359615324,1359615325,1359615326,1359615327,1359615328,1359615329,1359615579,1359615580,1359615581,1359615582,1359615583,1359615584,1359615585,1359615835,1359615836,1359615837,1359615838,1359615839,1359615840,1359615841,1359616091,1359616092,1359616093,1359616094,1359616095,1359616096,1359616097,1359616347,1359616348,1359616349,1359616350,1359616351,1359616352,1359616353,1359616603,1359616604,1359616605,1359616606,1359616607,1359616608,1359616609,1527389018,1527389019,1527389020,1527389021,1527389022,1527389023,1527389024,1527389025,1527389246,1527389247,1527389264,1527389265,1527389266,1527389267,1527389268,1527389269,1527389270,1527389271,1527389272,1527389273,1527389274,1527389275,1527389276,1527389277,1527389278,1527389279,1527389280,1527389281,1527389503,1527389520,1527389521,1527389522,1527389523,1527389524,1527389525,1527389526,1527389527,1527389528,1527389529,1527389530,1527389531,1527389532,1527389533,1527389534,1527389535,1527389536,1527389537,1527389759,1527389776,1527389777,1527389778,1527389779,1527389780,1527389781,1527389782,1527389783,1527389784,1527389785,1527389786,1527389787,1527389788,1527389789,1527389790,1527389791,1527389792,1527389793,1527390015,1527390032,1527390033,1527390034,1527390035,1527390036,1527390037,1527390038,1527390039,1527390040,1527390041,1527390042,1527390043,1527390044,1527390045,1527390046,1527390047,1527390048,1527390049,1527390271,1527390288,1527390289,1527390290,1527390291,1527390292,1527390293,1527390294,1527390295,1527390296,1527390297,1527390298,1527390299,1527390300,1527390301,1527390302,1527390303,1527390304,1527390305,1527390527,1527390544,1527390545,1527390546,1527390547,1527390548,1527390549,1527390550,1527390551,1527390552,1527390553,1527390554,1527390555,1527390556,1527390557,1527390558,1527390559,1527390560,1527390561,1527390783,1527390800,1527390801,1527390802,1527390803,1527390804,1527390805,1527390806,1527390807,1527390808,1527390809,1527390810,1527390811,1527390812,1527390813,1527390814,1527390815,1527390816,1527390817,1527391066,1527391067,1527391068,1527391069,1527391070,1527391071,1527391072,1527391073,1527391323,1527391324,1527391325,1527391326,1527391327,1527391328,1527391329,1527391579,1527391580,1527391581,1527391582,1527391583,1527391584,1527391585,1527391772,1527391773,1527391774,1527391775,1527391776,1527391777,1527391778,1527391835,1527391836,1527391837,1527391838,1527391839,1527391840,1527391841,1527392028,1527392029,1527392030,1527392031,1527392032,1527392033,1527392034,1527392091,1527392092,1527392093,1527392094,1527392095,1527392096,1527392097,1527392284,1527392285,1527392286,1527392287,1527392288,1527392289,1527392290,1527392347,1527392348,1527392349,1527392350,1527392351,1527392352,1527392353,1527392540,1527392541,1527392542,1527392543,1527392544,1527392545,1527392546,1527392603,1527392604,1527392605,1527392606,1527392607,1527392608,1527392609,1527392796,1527392797,1527392798,1527392799,1527392800,1527392801,1527392802,1527392859,1527392860,1527392861,1527392862,1527392863,1527392864,1527392865,1527393052,1527393053,1527393054,1527393055,1527393056,1527393057,1527393058,1527393115,1527393116,1527393117,1527393118,1527393119,1527393120,1527393121,1527393308,1527393309,1527393310,1527393311,1527393312,1527393313,1527393314,1527393335,1527393336,1527393337,1527393338,1527393339,1527393340,1527393341,1527393371,1527393372,1527393373,1527393374,1527393375,1527393376,1527393377,1527393564,1527393565,1527393566,1527393567,1527393568,1527393569,1527393570,1527393591,1527393592,1527393593,1527393594,1527393595,1527393596,1527393597,1527393626,1527393627,1527393628,1527393629,1527393630,1527393631,1527393632,1527393633,1527393820,1527393821,1527393822,1527393823,1527393824,1527393825,1527393826,1527393847,1527393848,1527393849,1527393850,1527393851,1527393852,1527393853,1527393865,1527393866,1527393867,1527393868,1527393869,1527393870,1527393871,1527393872,1527393873,1527393874,1527393875,1527393876,1527393877,1527393878,1527393879,1527393880,1527393881,1527393882,1527393883,1527393884,1527393885,1527393886,1527393887,1527393888,1527393889,1527394076,1527394077,1527394078,1527394079,1527394080,1527394081,1527394082,1527394103,1527394104,1527394105,1527394106,1527394107,1527394108,1527394109,1527394121,1527394122,1527394123,1527394124,1527394125,1527394126,1527394127,1527394128,1527394129,1527394130,1527394131,1527394132,1527394133,1527394134,1527394135,1527394136,1527394137,1527394138,1527394139,1527394140,1527394141,1527394142,1527394143,1527394144,1527394145,1527394332,1527394333,1527394334,1527394335,1527394336,1527394337,1527394338,1527394359,1527394360,1527394361,1527394362,1527394363,1527394364,1527394365,1527394377,1527394378,1527394379,1527394380,1527394381,1527394382,1527394383,1527394384,1527394385,1527394386,1527394387,1527394388,1527394389,1527394390,1527394391,1527394392,1527394393,1527394394,1527394395,1527394396,1527394397,1527394398,1527394399,1527394400,1527394401,1527394588,1527394589,1527394590,1527394591,1527394592,1527394593,1527394594,1527394615,1527394616,1527394617,1527394618,1527394619,1527394620,1527394621,1527394633,1527394634,1527394635,1527394636,1527394637,1527394638,1527394639,1527394640,1527394641,1527394642,1527394643,1527394644,1527394645,1527394646,1527394647,1527394648,1527394649,1527394650,1527394651,1527394652,1527394653,1527394654,1527394655,1527394656,1527394657,1527394844,1527394845,1527394846,1527394847,1527394848,1527394849,1527394850,1527394871,1527394872,1527394873,1527394874,1527394875,1527394876,1527394877,1527394889,1527394890,1527394891,1527394892,1527394893,1527394894,1527394895,1527394896,1527394897,1527394898,1527394899,1527394900,1527394901,1527394902,1527394903,1527394904,1527394905,1527394906,1527394907,1527394908,1527394909,1527394910,1527394911,1527394912,1527394913,1527395100,1527395101,1527395102,1527395103,1527395104,1527395105,1527395106,1527395127,1527395128,1527395129,1527395130,1527395131,1527395132,1527395133,1527395145,1527395146,1527395147,1527395148,1527395149,1527395150,1527395151,1527395152,1527395153,1527395154,1527395155,1527395156,1527395157,1527395158,1527395159,1527395160,1527395161,1527395162,1527395163,1527395164,1527395165,1527395166,1527395167,1527395168,1527395169,1527395356,1527395357,1527395358,1527395359,1527395360,1527395361,1527395362,1527395383,1527395384,1527395385,1527395386,1527395387,1527395388,1527395389,1527395401,1527395402,1527395403,1527395404,1527395405,1527395406,1527395407,1527395408,1527395409,1527395410,1527395411,1527395412,1527395413,1527395414,1527395415,1527395416,1527395417,1527395418,1527395419,1527395420,1527395421,1527395422,1527395423,1527395424,1527395425,1527395612,1527395613,1527395614,1527395615,1527395616,1527395617,1527395618,1527395639,1527395640,1527395641,1527395642,1527395643,1527395644,1527395645,1527395657,1527395658,1527395659,1527395660,1527395661,1527395662,1527395663,1527395664,1527395674,1527395675,1527395676,1527395677,1527395678,1527395679,1527395680,1527395681,1527395868,1527395869,1527395870,1527395871,1527395872,1527395873,1527395874,1527395895,1527395896,1527395897,1527395898,1527395899,1527395900,1527395901,1527395913,1527395914,1527395915,1527395916,1527395917,1527395918,1527395919,1527395931,1527395932,1527395933,1527395934,1527395935,1527395936,1527395937,1527396124,1527396125,1527396126,1527396127,1527396128,1527396129,1527396130,1527396151,1527396152,1527396153,1527396154,1527396155,1527396156,1527396157,1527396187,1527396188,1527396189,1527396190,1527396191,1527396192,1527396193,1527396380,1527396381,1527396382,1527396383,1527396384,1527396385,1527396386,1527396407,1527396408,1527396409,1527396410,1527396411,1527396412,1527396413,1527396443,1527396444,1527396445,1527396446,1527396447,1527396448,1527396449,1527396636,1527396637,1527396638,1527396639,1527396640,1527396641,1527396642,1527396663,1527396664,1527396665,1527396666,1527396667,1527396668,1527396669,1527396699,1527396700,1527396701,1527396702,1527396703,1527396704,1527396705,1527396892,1527396893,1527396894,1527396895,1527396896,1527396897,1527396898,1527396919,1527396920,1527396921,1527396922,1527396923,1527396924,1527396925,1527396955,1527396956,1527396957,1527396958,1527396959,1527396960,1527396961,1527397148,1527397149,1527397150,1527397151,1527397152,1527397153,1527397154,1527397175,1527397176,1527397177,1527397178,1527397179,1527397180,1527397181,1527397211,1527397212,1527397213,1527397214,1527397215,1527397216,1527397217,1527397404,1527397405,1527397406,1527397407,1527397408,1527397409,1527397410,1527397431,1527397432,1527397433,1527397434,1527397435,1527397436,1527397437,1527397467,1527397468,1527397469,1527397470,1527397471,1527397472,1527397473,1527397660,1527397661,1527397662,1527397663,1527397664,1527397665,1527397666,1527397687,1527397688,1527397689,1527397690,1527397691,1527397692,1527397693,1527397723,1527397724,1527397725,1527397726,1527397727,1527397728,1527397729,1527397916,1527397917,1527397918,1527397919,1527397920,1527397921,1527397922,1527397979,1527397980,1527397981,1527397982,1527397983,1527397984,1527397985,1527398172,1527398173,1527398174,1527398175,1527398176,1527398177,1527398178,1527398234,1527398235,1527398236,1527398237,1527398238,1527398239,1527398240,1527398241,1527398428,1527398429,1527398430,1527398431,1527398432,1527398433,1527398434,1527398482,1527398483,1527398484,1527398485,1527398486,1527398487,1527398488,1527398489,1527398490,1527398491,1527398492,1527398493,1527398494,1527398495,1527398496,1527398497,1527398684,1527398685,1527398686,1527398687,1527398688,1527398689,1527398690,1527398738,1527398739,1527398740,1527398741,1527398742,1527398743,1527398744,1527398745,1527398746,1527398747,1527398748,1527398749,1527398750,1527398751,1527398752,1527398753,1527398940,1527398941,1527398942,1527398943,1527398944,1527398945,1527398946,1527398994,1527398995,1527398996,1527398997,1527398998,1527398999,1527399000,1527399001,1527399002,1527399003,1527399004,1527399005,1527399006,1527399007,1527399008,1527399009,1527399196,1527399197,1527399198,1527399199,1527399200,1527399201,1527399202,1527399250,1527399251,1527399252,1527399253,1527399254,1527399255,1527399256,1527399257,1527399258,1527399259,1527399260,1527399261,1527399262,1527399263,1527399264,1527399265,1527399452,1527399453,1527399454,1527399455,1527399456,1527399457,1527399458,1527399506,1527399507,1527399508,1527399509,1527399510,1527399511,1527399512,1527399513,1527399514,1527399515,1527399516,1527399517,1527399518,1527399519,1527399520,1527399521,1527399708,1527399709,1527399710,1527399711,1527399712,1527399713,1527399714,1527399762,1527399763,1527399764,1527399765,1527399766,1527399767,1527399768,1527399769,1527399770,1527399771,1527399772,1527399773,1527399774,1527399775,1527399776,1527399777,1527399964,1527399965,1527399966,1527399967,1527399968,1527399969,1527399970,1527400017,1527400018,1527400019,1527400020,1527400021,1527400022,1527400023,1527400024,1527400025,1527400026,1527400027,1527400028,1527400029,1527400030,1527400031,1527400032,1527400033,1527400220,1527400221,1527400222,1527400223,1527400224,1527400225,1527400226,1527400265,1527400266,1527400267,1527400268,1527400269,1527400270,1527400271,1527400272,1527400273,1527400274,1527400275,1527400276,1527400277,1527400278,1527400279,1527400280,1527400281,1527400282,1527400283,1527400284,1527400285,1527400286,1527400287,1527400288,1527400289,1527400476,1527400477,1527400478,1527400479,1527400480,1527400481,1527400482,1527400483,1527400520,1527400521,1527400522,1527400523,1527400524,1527400525,1527400526,1527400527,1527400528,1527400529,1527400530,1527400531,1527400532,1527400533,1527400534,1527400535,1527400536,1527400537,1527400538,1527400539,1527400540,1527400541,1527400542,1527400543,1527400544,1527400545,1527400732,1527400733,1527400734,1527400735,1527400736,1527400737,1527400738,1527400739,1527400740,1527400757,1527400758,1527400775,1527400776,1527400777,1527400778,1527400779,1527400780,1527400781,1527400782,1527400783,1527400784,1527400785,1527400786,1527400787,1527400788,1527400789,1527400790,1527400791,1527400792,1527400793,1527400794,1527400795,1527400796,1527400797,1527400798,1527400799,1527400800,1527400801,1527400988,1527400989,1527400990,1527400991,1527400992,1527400993,1527400994,1527400995,1527400996,1527401013,1527401014,1527401031,1527401032,1527401033,1527401034,1527401035,1527401036,1527401037,1527401038,1527401039,1527401040,1527401041,1527401042,1527401043,1527401044,1527401045,1527401046,1527401047,1527401048,1527401049,1527401050,1527401051,1527401052,1527401053,1527401054,1527401055,1527401056,1527401057,1527401244,1527401245,1527401246,1527401247,1527401248,1527401249,1527401250,1527401251,1527401252,1527401269,1527401270,1527401287,1527401288,1527401289,1527401290,1527401291,1527401292,1527401293,1527401294,1527401295,1527401296,1527401297,1527401298,1527401299,1527401300,1527401301,1527401302,1527401303,1527401304,1527401305,1527401306,1527401307,1527401308,1527401309,1527401310,1527401311,1527401312,1527401313,1527401500,1527401501,1527401502,1527401503,1527401504,1527401505,1527401506,1527401507,1527401508,1527401525,1527401526,1527401543,1527401544,1527401545,1527401546,1527401547,1527401548,1527401549,1527401550,1527401551,1527401552,1527401553,1527401554,1527401555,1527401556,1527401557,1527401558,1527401559,1527401560,1527401561,1527401562,1527401563,1527401564,1527401565,1527401566,1527401567,1527401568,1527401569,1527401756,1527401757,1527401758,1527401759,1527401760,1527401761,1527401762,1527401763,1527401764,1527401781,1527401782,1527401799,1527401800,1527401801,1527401802,1527401803,1527401804,1527401805,1527401806,1527401807,1527401808,1527401809,1527401810,1527401811,1527401812,1527401813,1527401814,1527401815,1527401816,1527401817,1527401818,1527401819,1527401820,1527401821,1527401822,1527401823,1527401824,1527401825,1527402012,1527402013,1527402014,1527402015,1527402016,1527402017,1527402018,1527402019,1527402020,1527402037,1527402038,1527402055,1527402056,1527402057,1527402058,1527402059,1527402060,1527402061,1527402062,1527402063,1527402064,1527402065,1527402066,1527402067,1527402068,1527402069,1527402070,1527402071,1527402072,1527402073,1527402074,1527402075,1527402076,1527402077,1527402078,1527402079,1527402080,1527402081,1527402268,1527402269,1527402270,1527402271,1527402272,1527402273,1527402274,1527402275,1527402276,1527402293,1527402294,1527402311,1527402312,1527402313,1527402314,1527402315,1527402316,1527402317,1527402318,1527402319,1527402320,1527402321,1527402322,1527402323,1527402324,1527402325,1527402326,1527402327,1527402328,1527402329,1527402330,1527402331,1527402332,1527402333,1527402334,1527402335,1527402336,1527402337,1527402524,1527402525,1527402526,1527402527,1527402528,1527402529,1527402530,1527402531,1527402532,1527402549,1527402550,1527402567,1527402568,1527402569,1527402570,1527402571,1527402572,1527402573,1527402574,1527402575,1527402576,1527402577,1527402578,1527402579,1527402580,1527402581,1527402582,1527402583,1527402584,1527402585,1527402586,1527402587,1527402588,1527402589,1527402590,1527402591,1527402592,1527402593,1527402780,1527402781,1527402782,1527402783,1527402784,1527402785,1527402786,1527402787,1527402788,1527402789,1527402804,1527402805,1527402806,1527402807,1527402822,1527402823,1527402824,1527402825,1527402826,1527402827,1527402828,1527402829,1527402830,1527402831,1527402832,1527402833,1527402834,1527402835,1527402836,1527402837,1527402838,1527402839,1527402840,1527402841,1527402842,1527402843,1527402844,1527402845,1527402846,1527402847,1527402848,1527402849,1527403036,1527403037,1527403038,1527403039,1527403040,1527403041,1527403042,1527403043,1527403044,1527403045,1527403046,1527403047,1527403048,1527403049,1527403050,1527403051,1527403052,1527403053,1527403054,1527403055,1527403056,1527403057,1527403058,1527403059,1527403060,1527403061,1527403062,1527403063,1527403064,1527403065,1527403066,1527403067,1527403068,1527403069,1527403070,1527403071,1527403072,1527403073,1527403074,1527403075,1527403076,1527403077,1527403078,1527403079,1527403080,1527403081,1527403082,1527403083,1527403084,1527403085,1527403086,1527403087,1527403088,1527403089,1527403090,1527403091,1527403092,1527403093,1527403094,1527403095,1527403096,1527403097,1527403098,1527403099,1527403100,1527403101,1527403102,1527403103,1527403104,1527403105,1527403292,1527403293,1527403294,1527403295,1527403296,1527403297,1527403298,1527403299,1527403300,1527403301,1527403302,1527403303,1527403304,1527403305,1527403306,1527403307,1527403308,1527403309,1527403310,1527403311,1527403312,1527403313,1527403314,1527403315,1527403316,1527403317,1527403318,1527403319,1527403320,1527403321,1527403322,1527403323,1527403324,1527403325,1527403326,1527403327,1527403328,1527403329,1527403330,1527403331,1527403332,1527403333,1527403334,1527403335,1527403336,1527403337,1527403338,1527403339,1527403340,1527403341,1527403342,1527403343,1527403344,1527403345,1527403346,1527403347,1527403348,1527403349,1527403350,1527403351,1527403352,1527403353,1527403354,1527403355,1527403356,1527403357,1527403358,1527403359,1527403360,1527403361,1527403548,1527403549,1527403550,1527403551,1527403552,1527403553,1527403554,1527403555,1527403556,1527403557,1527403558,1527403559,1527403560,1527403561,1527403562,1527403563,1527403564,1527403565,1527403566,1527403567,1527403568,1527403569,1527403570,1527403571,1527403572,1527403573,1527403574,1527403575,1527403576,1527403577,1527403578,1527403579,1527403580,1527403581,1527403582,1527403583,1527403584,1527403585,1527403586,1527403587,1527403588,1527403589,1527403590,1527403591,1527403592,1527403593,1527403594,1527403595,1527403596,1527403597,1527403598,1527403599,1527403600,1527403601,1527403602,1527403603,1527403604,1527403605,1527403606,1527403607,1527403608,1527403609,1527403610,1527403611,1527403612,1527403613,1527403614,1527403615,1527403616,1527403617,1527403804,1527403805,1527403806,1527403807,1527403808,1527403809,1527403810,1527403811,1527403812,1527403813,1527403814,1527403815,1527403816,1527403817,1527403818,1527403819,1527403820,1527403821,1527403822,1527403823,1527403824,1527403825,1527403826,1527403827,1527403828,1527403829,1527403830,1527403831,1527403832,1527403833,1527403834,1527403835,1527403836,1527403837,1527403838,1527403839,1527403840,1527403841,1527403842,1527403843,1527403844,1527403845,1527403846,1527403847,1527403848,1527403849,1527403850,1527403851,1527403852,1527403853,1527403854,1527403855,1527403856,1527403857,1527403858,1527403859,1527403860,1527403861,1527403862,1527403863,1527403864,1527403865,1527403866,1527403867,1527403868,1527403869,1527403870,1527403871,1527403872,1527403873,1527404060,1527404061,1527404062,1527404063,1527404064,1527404065,1527404066,1527404067,1527404068,1527404069,1527404070,1527404071,1527404072,1527404073,1527404074,1527404075,1527404076,1527404077,1527404078,1527404079,1527404080,1527404081,1527404082,1527404083,1527404084,1527404085,1527404086,1527404087,1527404088,1527404089,1527404090,1527404091,1527404092,1527404093,1527404094,1527404095,1527404096,1527404097,1527404098,1527404099,1527404100,1527404101,1527404102,1527404103,1527404104,1527404105,1527404106,1527404107,1527404108,1527404109,1527404110,1527404111,1527404112,1527404113,1527404114,1527404115,1527404116,1527404117,1527404118,1527404119,1527404120,1527404121,1527404122,1527404123,1527404124,1527404125,1527404126,1527404127,1527404128,1527404129,1527404316,1527404317,1527404318,1527404319,1527404320,1527404321,1527404322,1527404323,1527404324,1527404325,1527404326,1527404327,1527404328,1527404329,1527404330,1527404331,1527404332,1527404333,1527404334,1527404335,1527404336,1527404337,1527404338,1527404339,1527404340,1527404341,1527404342,1527404343,1527404344,1527404345,1527404346,1527404347,1527404348,1527404349,1527404350,1527404351,1527404352,1527404353,1527404354,1527404355,1527404356,1527404357,1527404358,1527404359,1527404360,1527404361,1527404362,1527404363,1527404364,1527404365,1527404366,1527404367,1527404368,1527404369,1527404370,1527404371,1527404372,1527404373,1527404374,1527404375,1527404376,1527404377,1527404378,1527404379,1527404380,1527404381,1527404382,1527404383,1527404384,1527404385,1527404572,1527404573,1527404574,1527404575,1527404576,1527404577,1527404578,1527404579,1527404580,1527404581,1527404582,1527404583,1527404584,1527404585,1527404586,1527404587,1527404588,1527404589,1527404590,1527404591,1527404592,1527404593,1527404594,1527404595,1527404596,1527404597,1527404598,1527404599,1527404600,1527404601,1527404602,1527404603,1527404604,1527404605,1527404606,1527404607,1527404608,1527404609,1527404610,1527404611,1527404612,1527404613,1527404614,1527404615,1527404616,1527404617,1527404618,1527404619,1527404620,1527404621,1527404622,1527404623,1527404624,1527404625,1527404626,1527404627,1527404628,1527404629,1527404630,1527404631,1527404632,1527404633,1527404634,1527404635,1527404636,1527404637,1527404638,1527404639,1527404640,1527404641,1527404828,1527404829,1527404830,1527404831,1527404832,1527404833,1527404834,1527404835,1527404836,1527404837,1527404838,1527404839,1527404840,1527404841,1527404842,1527404843,1527404844,1527404845,1527404846,1527404847,1527404848,1527404849,1527404850,1527404851,1527404852,1527404853,1527404863,1527404864,1527404865,1527404866,1527404867,1527404868,1527404869,1527404870,1527404871,1527404872,1527404873,1527404874,1527404875,1527404876,1527404877,1527404878,1527404879,1527404880,1527404881,1527404882,1527404883,1527404884,1527404885,1527404886,1527404887,1527404888,1527404889,1527404890,1527404891,1527404892,1527404893,1527404894,1527404895,1527404896,1527404897,1527405083,1527405084,1527405085,1527405086,1527405087,1527405088,1527405089,1527405090,1527405091,1527405092,1527405093,1527405094,1527405095,1527405096,1527405097,1527405098,1527405099,1527405100,1527405101,1527405102,1527405103,1527405104,1527405105,1527405106,1527405107,1527405108,1527405120,1527405121,1527405122,1527405123,1527405124,1527405125,1527405126,1527405127,1527405128,1527405129,1527405130,1527405131,1527405132,1527405133,1527405134,1527405135,1527405136,1527405137,1527405138,1527405139,1527405140,1527405141,1527405142,1527405143,1527405144,1527405145,1527405146,1527405147,1527405148,1527405149,1527405150,1527405151,1527405152,1527405153,1366777881,1366777880,1366777879,1366777878,1359633175,1359633176,1359633177,1359633178,1527405339,1527405340,1527405341,1527405342,1527405343,1527405344,1527405345,1527405346,1527405347,1527405348,1527405349,1527405350,1527405351,1527405352,1527405353,1527405354,1527405355,1527405356,1527405357,1527405358,1527405359,1527405360,1527405361,1527405362,1527405363,1527405364,1527405376,1527405377,1527405378,1527405379,1527405380,1527405381,1527405382,1527405383,1527405384,1527405385,1527405386,1527405387,1527405388,1527405389,1527405390,1527405391,1527405392,1527405393,1527405394,1527405395,1527405396,1527405397,1527405398,1527405399,1527405400,1527405401,1527405402,1527405403,1527405404,1527405405,1527405406,1527405407,1527405408,1527405409,1366777877,1366777876,1366777875,1534549857,1359633431,1359633432,1359633433,1359633434,1527405595,1527405596,1527405597,1527405598,1527405599,1527405600,1527405601,1527405602,1527405603,1527405604,1527405605,1527405606,1527405607,1527405608,1527405609,1527405610,1527405611,1527405612,1527405613,1527405614,1527405615,1527405616,1527405617,1527405618,1527405619,1527405620,1527405632,1527405633,1527405634,1527405635,1527405636,1527405637,1527405638,1527405639,1527405640,1527405641,1527405642,1527405643,1527405644,1527405645,1527405646,1527405647,1527405648,1527405649,1527405650,1527405651,1527405652,1527405653,1527405654,1527405655,1527405656,1527405657,1527405658,1527405659,1527405660,1527405661,1527405662,1527405663,1527405664,1527405665,1534549856,1534549855,1534549854,1534549853,1359633687,1359633688,1359633689,1359633690,1527405851,1527405852,1527405853,1527405854,1527405855,1527405856,1527405857,1527405858,1527405859,1527405860,1527405861,1527405862,1527405863,1527405864,1527405865,1527405866,1527405867,1527405868,1527405869,1527405870,1527405871,1527405872,1527405873,1527405874,1527405875,1527405876,1527405888,1527405889,1527405890,1527405891,1527405892,1527405893,1527405894,1527405895,1527405896,1527405897,1527405898,1527405899,1527405900,1527405901,1527405902,1527405903,1527405904,1527405905,1527405906,1527405907,1527405908,1527405909,1527405910,1527405911,1527405912,1527405913,1527405914,1527405915,1527405916,1527405917,1527405918,1527405919,1527405920,1527405921,1534549852,1534549851,1534549850,1366777689,1359633943,1359633944,1359633945,1359633946,1527406107,1527406108,1527406109,1527406110,1527406111,1527406112,1527406113,1527406114,1527406115,1527406116,1527406117,1527406118,1527406119,1527406120,1527406121,1527406122,1527406123,1527406124,1527406125,1527406126,1527406127,1527406128,1527406129,1527406130,1527406131,1527406132,1527406144,1527406145,1527406146,1527406147,1527406148,1527406149,1527406150,1527406151,1527406152,1527406153,1527406154,1527406155,1527406156,1527406157,1527406158,1527406159,1527406160,1527406161,1527406162,1527406163,1527406164,1527406165,1527406166,1527406167,1527406168,1527406169,1527406170,1527406171,1527406172,1527406173,1527406174,1527406175,1527406176,1527406177,1366777688,1366777687,1366777686,1366777685,1359634199,1359634200,1359634201,1359634202,1527406363,1527406364,1527406365,1527406366,1527406367,1527406368,1527406369,1527406370,1527406371,1527406372,1527406373,1527406374,1527406375,1527406376,1527406377,1527406378,1527406379,1527406380,1527406381,1527406382,1527406383,1527406384,1527406385,1527406386,1527406387,1527406388,1527406400,1527406401,1527406402,1527406403,1527406404,1527406405,1527406406,1527406407,1527406408,1527406409,1527406410,1527406411,1527406412,1527406413,1527406414,1527406415,1527406416,1527406417,1527406418,1527406419,1527406420,1527406421,1527406422,1527406423,1527406424,1527406425,1527406426,1527406427,1527406428,1527406429,1527406430,1527406431,1527406432,1527406433,1366777684,1366777683,1366777682,1366777681,1359634455,1359634456,1359634457,1359634458,1527406619,1527406620,1527406621,1527406622,1527406623,1527406624,1527406625,1527406626,1527406627,1527406628,1527406629,1527406630,1527406631,1527406632,1527406633,1527406634,1527406635,1527406636,1527406637,1527406638,1527406639,1527406640,1527406641,1527406642,1527406643,1527406644,1527406656,1527406657,1527406658,1527406659,1527406660,1527406661,1527406662,1527406663,1527406664,1527406665,1527406666,1527406667,1527406668,1527406669,1527406670,1527406671,1527406672,1527406673,1527406674,1527406675,1527406676,1527406677,1527406678,1527406679,1527406680,1527406681,1527406682,1527406683,1527406684,1527406685,1527406686,1527406687,1527406688,1527406689,1366777680,1366777679,1366777678,1366777677,1359634711,1359634712,1359634713,1359634714,1527406875,1527406876,1527406877,1527406878,1527406879,1527406880,1527406881,1527406882,1527406883,1527406884,1527406885,1527406886,1527406887,1527406888,1527406889,1527406890,1527406891,1527406892,1527406893,1527406894,1527406895,1527406896,1527406897,1527406898,1527406899,1527406900,1527406912,1527406913,1527406914,1527406915,1527406916,1527406917,1527406918,1527406919,1527406920,1527406921,1527406922,1527406923,1527406924,1527406925,1527406926,1527406927,1527406928,1527406929,1527406930,1527406931,1527406932,1527406933,1527406934,1527406935,1527406936,1527406937,1527406938,1527406939,1527406940,1527406941,1527406942,1527406943,1527406944,1527406945,1359680347,1359680348,1359680349,1359680350,1359680351,1359680352,1359680353,1359680603,1359680604,1359680605,1359680606,1359680607,1359680608,1359680609,1359680859,1359680860,1359680861,1359680862,1359680863,1359680864,1359680865,1359681115,1359681116,1359681117,1359681118,1359681119,1359681120,1359681121,1359681371,1359681372,1359681373,1359681374,1359681375,1359681376,1359681377,1359681627,1359681628,1359681629,1359681630,1359681631,1359681632,1359681633,1359681883,1359681884,1359681885,1359681886,1359681887,1359681888,1359681889,1359682139,1359682140,1359682141,1359682142,1359682143,1359682144,1359682145,1527454554,1527454555,1527454556,1527454557,1527454558,1527454559,1527454560,1527454561,1527454782,1527454783,1527454800,1527454801,1527454802,1527454803,1527454804,1527454805,1527454806,1527454807,1527454808,1527454809,1527454810,1527454811,1527454812,1527454813,1527454814,1527454815,1527454816,1527454817,1527455039,1527455056,1527455057,1527455058,1527455059,1527455060,1527455061,1527455062,1527455063,1527455064,1527455065,1527455066,1527455067,1527455068,1527455069,1527455070,1527455071,1527455072,1527455073,1527455295,1527455312,1527455313,1527455314,1527455315,1527455316,1527455317,1527455318,1527455319,1527455320,1527455321,1527455322,1527455323,1527455324,1527455325,1527455326,1527455327,1527455328,1527455329,1527455551,1527455568,1527455569,1527455570,1527455571,1527455572,1527455573,1527455574,1527455575,1527455576,1527455577,1527455578,1527455579,1527455580,1527455581,1527455582,1527455583,1527455584,1527455585,1527455807,1527455824,1527455825,1527455826,1527455827,1527455828,1527455829,1527455830,1527455831,1527455832,1527455833,1527455834,1527455835,1527455836,1527455837,1527455838,1527455839,1527455840,1527455841,1527456063,1527456080,1527456081,1527456082,1527456083,1527456084,1527456085,1527456086,1527456087,1527456088,1527456089,1527456090,1527456091,1527456092,1527456093,1527456094,1527456095,1527456096,1527456097,1527456319,1527456336,1527456337,1527456338,1527456339,1527456340,1527456341,1527456342,1527456343,1527456344,1527456345,1527456346,1527456347,1527456348,1527456349,1527456350,1527456351,1527456352,1527456353,1527456602,1527456603,1527456604,1527456605,1527456606,1527456607,1527456608,1527456609,1527456859,1527456860,1527456861,1527456862,1527456863,1527456864,1527456865,1527457115,1527457116,1527457117,1527457118,1527457119,1527457120,1527457121,1527457371,1527457372,1527457373,1527457374,1527457375,1527457376,1527457377,1527457564,1527457565,1527457566,1527457567,1527457568,1527457569,1527457570,1527457627,1527457628,1527457629,1527457630,1527457631,1527457632,1527457633,1527457820,1527457821,1527457822,1527457823,1527457824,1527457825,1527457826,1527457883,1527457884,1527457885,1527457886,1527457887,1527457888,1527457889,1527458076,1527458077,1527458078,1527458079,1527458080,1527458081,1527458082,1527458139,1527458140,1527458141,1527458142,1527458143,1527458144,1527458145,1527458332,1527458333,1527458334,1527458335,1527458336,1527458337,1527458338,1527458395,1527458396,1527458397,1527458398,1527458399,1527458400,1527458401,1527458588,1527458589,1527458590,1527458591,1527458592,1527458593,1527458594,1527458651,1527458652,1527458653,1527458654,1527458655,1527458656,1527458657,1527458844,1527458845,1527458846,1527458847,1527458848,1527458849,1527458850,1527458871,1527458872,1527458873,1527458874,1527458875,1527458876,1527458877,1527458907,1527458908,1527458909,1527458910,1527458911,1527458912,1527458913,1527459100,1527459101,1527459102,1527459103,1527459104,1527459105,1527459106,1527459127,1527459128,1527459129,1527459130,1527459131,1527459132,1527459133,1527459162,1527459163,1527459164,1527459165,1527459166,1527459167,1527459168,1527459169,1527459356,1527459357,1527459358,1527459359,1527459360,1527459361,1527459362,1527459383,1527459384,1527459385,1527459386,1527459387,1527459388,1527459389,1527459401,1527459402,1527459403,1527459404,1527459405,1527459406,1527459407,1527459408,1527459409,1527459410,1527459411,1527459412,1527459413,1527459414,1527459415,1527459416,1527459417,1527459418,1527459419,1527459420,1527459421,1527459422,1527459423,1527459424,1527459425,1527459612,1527459613,1527459614,1527459615,1527459616,1527459617,1527459618,1527459639,1527459640,1527459641,1527459642,1527459643,1527459644,1527459645,1527459657,1527459658,1527459659,1527459660,1527459661,1527459662,1527459663,1527459664,1527459665,1527459666,1527459667,1527459668,1527459669,1527459670,1527459671,1527459672,1527459673,1527459674,1527459675,1527459676,1527459677,1527459678,1527459679,1527459680,1527459681,1527459868,1527459869,1527459870,1527459871,1527459872,1527459873,1527459874,1527459895,1527459896,1527459897,1527459898,1527459899,1527459900,1527459901,1527459913,1527459914,1527459915,1527459916,1527459917,1527459918,1527459919,1527459920,1527459921,1527459922,1527459923,1527459924,1527459925,1527459926,1527459927,1527459928,1527459929,1527459930,1527459931,1527459932,1527459933,1527459934,1527459935,1527459936,1527459937,1527460124,1527460125,1527460126,1527460127,1527460128,1527460129,1527460130,1527460151,1527460152,1527460153,1527460154,1527460155,1527460156,1527460157,1527460169,1527460170,1527460171,1527460172,1527460173,1527460174,1527460175,1527460176,1527460177,1527460178,1527460179,1527460180,1527460181,1527460182,1527460183,1527460184,1527460185,1527460186,1527460187,1527460188,1527460189,1527460190,1527460191,1527460192,1527460193,1527460380,1527460381,1527460382,1527460383,1527460384,1527460385,1527460386,1527460407,1527460408,1527460409,1527460410,1527460411,1527460412,1527460413,1527460425,1527460426,1527460427,1527460428,1527460429,1527460430,1527460431,1527460432,1527460433,1527460434,1527460435,1527460436,1527460437,1527460438,1527460439,1527460440,1527460441,1527460442,1527460443,1527460444,1527460445,1527460446,1527460447,1527460448,1527460449,1527460636,1527460637,1527460638,1527460639,1527460640,1527460641,1527460642,1527460663,1527460664,1527460665,1527460666,1527460667,1527460668,1527460669,1527460681,1527460682,1527460683,1527460684,1527460685,1527460686,1527460687,1527460688,1527460689,1527460690,1527460691,1527460692,1527460693,1527460694,1527460695,1527460696,1527460697,1527460698,1527460699,1527460700,1527460701,1527460702,1527460703,1527460704,1527460705,1527460892,1527460893,1527460894,1527460895,1527460896,1527460897,1527460898,1527460919,1527460920,1527460921,1527460922,1527460923,1527460924,1527460925,1527460937,1527460938,1527460939,1527460940,1527460941,1527460942,1527460943,1527460944,1527460945,1527460946,1527460947,1527460948,1527460949,1527460950,1527460951,1527460952,1527460953,1527460954,1527460955,1527460956,1527460957,1527460958,1527460959,1527460960,1527460961,1527461148,1527461149,1527461150,1527461151,1527461152,1527461153,1527461154,1527461175,1527461176,1527461177,1527461178,1527461179,1527461180,1527461181,1527461193,1527461194,1527461195,1527461196,1527461197,1527461198,1527461199,1527461200,1527461210,1527461211,1527461212,1527461213,1527461214,1527461215,1527461216,1527461217,1527461404,1527461405,1527461406,1527461407,1527461408,1527461409,1527461410,1527461431,1527461432,1527461433,1527461434,1527461435,1527461436,1527461437,1527461449,1527461450,1527461451,1527461452,1527461453,1527461454,1527461455,1527461467,1527461468,1527461469,1527461470,1527461471,1527461472,1527461473,1527461660,1527461661,1527461662,1527461663,1527461664,1527461665,1527461666,1527461687,1527461688,1527461689,1527461690,1527461691,1527461692,1527461693,1527461723,1527461724,1527461725,1527461726,1527461727,1527461728,1527461729,1527461916,1527461917,1527461918,1527461919,1527461920,1527461921,1527461922,1527461943,1527461944,1527461945,1527461946,1527461947,1527461948,1527461949,1527461979,1527461980,1527461981,1527461982,1527461983,1527461984,1527461985,1527462172,1527462173,1527462174,1527462175,1527462176,1527462177,1527462178,1527462199,1527462200,1527462201,1527462202,1527462203,1527462204,1527462205,1527462235,1527462236,1527462237,1527462238,1527462239,1527462240,1527462241,1527462428,1527462429,1527462430,1527462431,1527462432,1527462433,1527462434,1527462455,1527462456,1527462457,1527462458,1527462459,1527462460,1527462461,1527462491,1527462492,1527462493,1527462494,1527462495,1527462496,1527462497,1527462684,1527462685,1527462686,1527462687,1527462688,1527462689,1527462690,1527462711,1527462712,1527462713,1527462714,1527462715,1527462716,1527462717,1527462747,1527462748,1527462749,1527462750,1527462751,1527462752,1527462753,1527462940,1527462941,1527462942,1527462943,1527462944,1527462945,1527462946,1527462967,1527462968,1527462969,1527462970,1527462971,1527462972,1527462973,1527463003,1527463004,1527463005,1527463006,1527463007,1527463008,1527463009,1527463196,1527463197,1527463198,1527463199,1527463200,1527463201,1527463202,1527463223,1527463224,1527463225,1527463226,1527463227,1527463228,1527463229,1527463259,1527463260,1527463261,1527463262,1527463263,1527463264,1527463265,1527463452,1527463453,1527463454,1527463455,1527463456,1527463457,1527463458,1527463515,1527463516,1527463517,1527463518,1527463519,1527463520,1527463521,1527463708,1527463709,1527463710,1527463711,1527463712,1527463713,1527463714,1527463770,1527463771,1527463772,1527463773,1527463774,1527463775,1527463776,1527463777,1527463964,1527463965,1527463966,1527463967,1527463968,1527463969,1527463970,1527464018,1527464019,1527464020,1527464021,1527464022,1527464023,1527464024,1527464025,1527464026,1527464027,1527464028,1527464029,1527464030,1527464031,1527464032,1527464033,1527464220,1527464221,1527464222,1527464223,1527464224,1527464225,1527464226,1527464274,1527464275,1527464276,1527464277,1527464278,1527464279,1527464280,1527464281,1527464282,1527464283,1527464284,1527464285,1527464286,1527464287,1527464288,1527464289,1527464476,1527464477,1527464478,1527464479,1527464480,1527464481,1527464482,1527464530,1527464531,1527464532,1527464533,1527464534,1527464535,1527464536,1527464537,1527464538,1527464539,1527464540,1527464541,1527464542,1527464543,1527464544,1527464545,1527464732,1527464733,1527464734,1527464735,1527464736,1527464737,1527464738,1527464786,1527464787,1527464788,1527464789,1527464790,1527464791,1527464792,1527464793,1527464794,1527464795,1527464796,1527464797,1527464798,1527464799,1527464800,1527464801,1527464988,1527464989,1527464990,1527464991,1527464992,1527464993,1527464994,1527465042,1527465043,1527465044,1527465045,1527465046,1527465047,1527465048,1527465049,1527465050,1527465051,1527465052,1527465053,1527465054,1527465055,1527465056,1527465057,1527465244,1527465245,1527465246,1527465247,1527465248,1527465249,1527465250,1527465298,1527465299,1527465300,1527465301,1527465302,1527465303,1527465304,1527465305,1527465306,1527465307,1527465308,1527465309,1527465310,1527465311,1527465312,1527465313,1527465500,1527465501,1527465502,1527465503,1527465504,1527465505,1527465506,1527465553,1527465554,1527465555,1527465556,1527465557,1527465558,1527465559,1527465560,1527465561,1527465562,1527465563,1527465564,1527465565,1527465566,1527465567,1527465568,1527465569,1527465756,1527465757,1527465758,1527465759,1527465760,1527465761,1527465762,1527465801,1527465802,1527465803,1527465804,1527465805,1527465806,1527465807,1527465808,1527465809,1527465810,1527465811,1527465812,1527465813,1527465814,1527465815,1527465816,1527465817,1527465818,1527465819,1527465820,1527465821,1527465822,1527465823,1527465824,1527465825,1527466012,1527466013,1527466014,1527466015,1527466016,1527466017,1527466018,1527466019,1527466056,1527466057,1527466058,1527466059,1527466060,1527466061,1527466062,1527466063,1527466064,1527466065,1527466066,1527466067,1527466068,1527466069,1527466070,1527466071,1527466072,1527466073,1527466074,1527466075,1527466076,1527466077,1527466078,1527466079,1527466080,1527466081,1527466268,1527466269,1527466270,1527466271,1527466272,1527466273,1527466274,1527466275,1527466276,1527466293,1527466294,1527466311,1527466312,1527466313,1527466314,1527466315,1527466316,1527466317,1527466318,1527466319,1527466320,1527466321,1527466322,1527466323,1527466324,1527466325,1527466326,1527466327,1527466328,1527466329,1527466330,1527466331,1527466332,1527466333,1527466334,1527466335,1527466336,1527466337,1527466524,1527466525,1527466526,1527466527,1527466528,1527466529,1527466530,1527466531,1527466532,1527466549,1527466550,1527466567,1527466568,1527466569,1527466570,1527466571,1527466572,1527466573,1527466574,1527466575,1527466576,1527466577,1527466578,1527466579,1527466580,1527466581,1527466582,1527466583,1527466584,1527466585,1527466586,1527466587,1527466588,1527466589,1527466590,1527466591,1527466592,1527466593,1527466780,1527466781,1527466782,1527466783,1527466784,1527466785,1527466786,1527466787,1527466788,1527466805,1527466806,1527466823,1527466824,1527466825,1527466826,1527466827,1527466828,1527466829,1527466830,1527466831,1527466832,1527466833,1527466834,1527466835,1527466836,1527466837,1527466838,1527466839,1527466840,1527466841,1527466842,1527466843,1527466844,1527466845,1527466846,1527466847,1527466848,1527466849,1527467036,1527467037,1527467038,1527467039,1527467040,1527467041,1527467042,1527467043,1527467044,1527467061,1527467062,1527467079,1527467080,1527467081,1527467082,1527467083,1527467084,1527467085,1527467086,1527467087,1527467088,1527467089,1527467090,1527467091,1527467092,1527467093,1527467094,1527467095,1527467096,1527467097,1527467098,1527467099,1527467100,1527467101,1527467102,1527467103,1527467104,1527467105,1527467292,1527467293,1527467294,1527467295,1527467296,1527467297,1527467298,1527467299,1527467300,1527467317,1527467318,1527467335,1527467336,1527467337,1527467338,1527467339,1527467340,1527467341,1527467342,1527467343,1527467344,1527467345,1527467346,1527467347,1527467348,1527467349,1527467350,1527467351,1527467352,1527467353,1527467354,1527467355,1527467356,1527467357,1527467358,1527467359,1527467360,1527467361,1527467548,1527467549,1527467550,1527467551,1527467552,1527467553,1527467554,1527467555,1527467556,1527467573,1527467574,1527467591,1527467592,1527467593,1527467594,1527467595,1527467596,1527467597,1527467598,1527467599,1527467600,1527467601,1527467602,1527467603,1527467604,1527467605,1527467606,1527467607,1527467608,1527467609,1527467610,1527467611,1527467612,1527467613,1527467614,1527467615,1527467616,1527467617,1527467804,1527467805,1527467806,1527467807,1527467808,1527467809,1527467810,1527467811,1527467812,1527467829,1527467830,1527467847,1527467848,1527467849,1527467850,1527467851,1527467852,1527467853,1527467854,1527467855,1527467856,1527467857,1527467858,1527467859,1527467860,1527467861,1527467862,1527467863,1527467864,1527467865,1527467866,1527467867,1527467868,1527467869,1527467870,1527467871,1527467872,1527467873,1527468060,1527468061,1527468062,1527468063,1527468064,1527468065,1527468066,1527468067,1527468068,1527468085,1527468086,1527468103,1527468104,1527468105,1527468106,1527468107,1527468108,1527468109,1527468110,1527468111,1527468112,1527468113,1527468114,1527468115,1527468116,1527468117,1527468118,1527468119,1527468120,1527468121,1527468122,1527468123,1527468124,1527468125,1527468126,1527468127,1527468128,1527468129,1527468316,1527468317,1527468318,1527468319,1527468320,1527468321,1527468322,1527468323,1527468324,1527468325,1527468340,1527468341,1527468342,1527468343,1527468358,1527468359,1527468360,1527468361,1527468362,1527468363,1527468364,1527468365,1527468366,1527468367,1527468368,1527468369,1527468370,1527468371,1527468372,1527468373,1527468374,1527468375,1527468376,1527468377,1527468378,1527468379,1527468380,1527468381,1527468382,1527468383,1527468384,1527468385,1527468572,1527468573,1527468574,1527468575,1527468576,1527468577,1527468578,1527468579,1527468580,1527468581,1527468582,1527468583,1527468584,1527468585,1527468586,1527468587,1527468588,1527468589,1527468590,1527468591,1527468592,1527468593,1527468594,1527468595,1527468596,1527468597,1527468598,1527468599,1527468600,1527468601,1527468602,1527468603,1527468604,1527468605,1527468606,1527468607,1527468608,1527468609,1527468610,1527468611,1527468612,1527468613,1527468614,1527468615,1527468616,1527468617,1527468618,1527468619,1527468620,1527468621,1527468622,1527468623,1527468624,1527468625,1527468626,1527468627,1527468628,1527468629,1527468630,1527468631,1527468632,1527468633,1527468634,1527468635,1527468636,1527468637,1527468638,1527468639,1527468640,1527468641,1527468828,1527468829,1527468830,1527468831,1527468832,1527468833,1527468834,1527468835,1527468836,1527468837,1527468838,1527468839,1527468840,1527468841,1527468842,1527468843,1527468844,1527468845,1527468846,1527468847,1527468848,1527468849,1527468850,1527468851,1527468852,1527468853,1527468854,1527468855,1527468856,1527468857,1527468858,1527468859,1527468860,1527468861,1527468862,1527468863,1527468864,1527468865,1527468866,1527468867,1527468868,1527468869,1527468870,1527468871,1527468872,1527468873,1527468874,1527468875,1527468876,1527468877,1527468878,1527468879,1527468880,1527468881,1527468882,1527468883,1527468884,1527468885,1527468886,1527468887,1527468888,1527468889,1527468890,1527468891,1527468892,1527468893,1527468894,1527468895,1527468896,1527468897,1527469084,1527469085,1527469086,1527469087,1527469088,1527469089,1527469090,1527469091,1527469092,1527469093,1527469094,1527469095,1527469096,1527469097,1527469098,1527469099,1527469100,1527469101,1527469102,1527469103,1527469104,1527469105,1527469106,1527469107,1527469108,1527469109,1527469110,1527469111,1527469112,1527469113,1527469114,1527469115,1527469116,1527469117,1527469118,1527469119,1527469120,1527469121,1527469122,1527469123,1527469124,1527469125,1527469126,1527469127,1527469128,1527469129,1527469130,1527469131,1527469132,1527469133,1527469134,1527469135,1527469136,1527469137,1527469138,1527469139,1527469140,1527469141,1527469142,1527469143,1527469144,1527469145,1527469146,1527469147,1527469148,1527469149,1527469150,1527469151,1527469152,1527469153,1527469340,1527469341,1527469342,1527469343,1527469344,1527469345,1527469346,1527469347,1527469348,1527469349,1527469350,1527469351,1527469352,1527469353,1527469354,1527469355,1527469356,1527469357,1527469358,1527469359,1527469360,1527469361,1527469362,1527469363,1527469364,1527469365,1527469366,1527469367,1527469368,1527469369,1527469370,1527469371,1527469372,1527469373,1527469374,1527469375,1527469376,1527469377,1527469378,1527469379,1527469380,1527469381,1527469382,1527469383,1527469384,1527469385,1527469386,1527469387,1527469388,1527469389,1527469390,1527469391,1527469392,1527469393,1527469394,1527469395,1527469396,1527469397,1527469398,1527469399,1527469400,1527469401,1527469402,1527469403,1527469404,1527469405,1527469406,1527469407,1527469408,1527469409,1527469596,1527469597,1527469598,1527469599,1527469600,1527469601,1527469602,1527469603,1527469604,1527469605,1527469606,1527469607,1527469608,1527469609,1527469610,1527469611,1527469612,1527469613,1527469614,1527469615,1527469616,1527469617,1527469618,1527469619,1527469620,1527469621,1527469622,1527469623,1527469624,1527469625,1527469626,1527469627,1527469628,1527469629,1527469630,1527469631,1527469632,1527469633,1527469634,1527469635,1527469636,1527469637,1527469638,1527469639,1527469640,1527469641,1527469642,1527469643,1527469644,1527469645,1527469646,1527469647,1527469648,1527469649,1527469650,1527469651,1527469652,1527469653,1527469654,1527469655,1527469656,1527469657,1527469658,1527469659,1527469660,1527469661,1527469662,1527469663,1527469664,1527469665,1527469852,1527469853,1527469854,1527469855,1527469856,1527469857,1527469858,1527469859,1527469860,1527469861,1527469862,1527469863,1527469864,1527469865,1527469866,1527469867,1527469868,1527469869,1527469870,1527469871,1527469872,1527469873,1527469874,1527469875,1527469876,1527469877,1527469878,1527469879,1527469880,1527469881,1527469882,1527469883,1527469884,1527469885,1527469886,1527469887,1527469888,1527469889,1527469890,1527469891,1527469892,1527469893,1527469894,1527469895,1527469896,1527469897,1527469898,1527469899,1527469900,1527469901,1527469902,1527469903,1527469904,1527469905,1527469906,1527469907,1527469908,1527469909,1527469910,1527469911,1527469912,1527469913,1527469914,1527469915,1527469916,1527469917,1527469918,1527469919,1527469920,1527469921,1527470108,1527470109,1527470110,1527470111,1527470112,1527470113,1527470114,1527470115,1527470116,1527470117,1527470118,1527470119,1527470120,1527470121,1527470122,1527470123,1527470124,1527470125,1527470126,1527470127,1527470128,1527470129,1527470130,1527470131,1527470132,1527470133,1527470134,1527470135,1527470136,1527470137,1527470138,1527470139,1527470140,1527470141,1527470142,1527470143,1527470144,1527470145,1527470146,1527470147,1527470148,1527470149,1527470150,1527470151,1527470152,1527470153,1527470154,1527470155,1527470156,1527470157,1527470158,1527470159,1527470160,1527470161,1527470162,1527470163,1527470164,1527470165,1527470166,1527470167,1527470168,1527470169,1527470170,1527470171,1527470172,1527470173,1527470174,1527470175,1527470176,1527470177,1527470364,1527470365,1527470366,1527470367,1527470368,1527470369,1527470370,1527470371,1527470372,1527470373,1527470374,1527470375,1527470376,1527470377,1527470378,1527470379,1527470380,1527470381,1527470382,1527470383,1527470384,1527470385,1527470386,1527470387,1527470388,1527470389,1527470399,1527470400,1527470401,1527470402,1527470403,1527470404,1527470405,1527470406,1527470407,1527470408,1527470409,1527470410,1527470411,1527470412,1527470413,1527470414,1527470415,1527470416,1527470417,1527470418,1527470419,1527470420,1527470421,1527470422,1527470423,1527470424,1527470425,1527470426,1527470427,1527470428,1527470429,1527470430,1527470431,1527470432,1527470433,1527470619,1527470620,1527470621,1527470622,1527470623,1527470624,1527470625,1527470626,1527470627,1527470628,1527470629,1527470630,1527470631,1527470632,1527470633,1527470634,1527470635,1527470636,1527470637,1527470638,1527470639,1527470640,1527470641,1527470642,1527470643,1527470644,1527470656,1527470657,1527470658,1527470659,1527470660,1527470661,1527470662,1527470663,1527470664,1527470665,1527470666,1527470667,1527470668,1527470669,1527470670,1527470671,1527470672,1527470673,1527470674,1527470675,1527470676,1527470677,1527470678,1527470679,1527470680,1527470681,1527470682,1527470683,1527470684,1527470685,1527470686,1527470687,1527470688,1527470689,1366777676,1366777675,1366777674,1366777673,1359698711,1359698712,1359698713,1359698714,1527470875,1527470876,1527470877,1527470878,1527470879,1527470880,1527470881,1527470882,1527470883,1527470884,1527470885,1527470886,1527470887,1527470888,1527470889,1527470890,1527470891,1527470892,1527470893,1527470894,1527470895,1527470896,1527470897,1527470898,1527470899,1527470900,1527470912,1527470913,1527470914,1527470915,1527470916,1527470917,1527470918,1527470919,1527470920,1527470921,1527470922,1527470923,1527470924,1527470925,1527470926,1527470927,1527470928,1527470929,1527470930,1527470931,1527470932,1527470933,1527470934,1527470935,1527470936,1527470937,1527470938,1527470939,1527470940,1527470941,1527470942,1527470943,1527470944,1527470945,1366777672,1366777671,1366777670,1366777669,1359698967,1359698968,1359698969,1359698970,1527471131,1527471132,1527471133,1527471134,1527471135,1527471136,1527471137,1527471138,1527471139,1527471140,1527471141,1527471142,1527471143,1527471144,1527471145,1527471146,1527471147,1527471148,1527471149,1527471150,1527471151,1527471152,1527471153,1527471154,1527471155,1527471156,1527471168,1527471169,1527471170,1527471171,1527471172,1527471173,1527471174,1527471175,1527471176,1527471177,1527471178,1527471179,1527471180,1527471181,1527471182,1527471183,1527471184,1527471185,1527471186,1527471187,1527471188,1527471189,1527471190,1527471191,1527471192,1527471193,1527471194,1527471195,1527471196,1527471197,1527471198,1527471199,1527471200,1527471201,1366777668,1366777667,1366777666,1366777665,1359699223,1359699224,1359699225,1359699226,1527471387,1527471388,1527471389,1527471390,1527471391,1527471392,1527471393,1527471394,1527471395,1527471396,1527471397,1527471398,1527471399,1527471400,1527471401,1527471402,1527471403,1527471404,1527471405,1527471406,1527471407,1527471408,1527471409,1527471410,1527471411,1527471412,1527471424,1527471425,1527471426,1527471427,1527471428,1527471429,1527471430,1527471431,1527471432,1527471433,1527471434,1527471435,1527471436,1527471437,1527471438,1527471439,1527471440,1527471441,1527471442,1527471443,1527471444,1527471445,1527471446,1527471447,1527471448,1527471449,1527471450,1527471451,1527471452,1527471453,1527471454,1527471455,1527471456,1527471457,1366777664,1366777663,1366777662,1366777661,1359699479,1359699480,1359699481,1359699482,1527471643,1527471644,1527471645,1527471646,1527471647,1527471648,1527471649,1527471650,1527471651,1527471652,1527471653,1527471654,1527471655,1527471656,1527471657,1527471658,1527471659,1527471660,1527471661,1527471662,1527471663,1527471664,1527471665,1527471666,1527471667,1527471668,1527471680,1527471681,1527471682,1527471683,1527471684,1527471685,1527471686,1527471687,1527471688,1527471689,1527471690,1527471691,1527471692,1527471693,1527471694,1527471695,1527471696,1527471697,1527471698,1527471699,1527471700,1527471701,1527471702,1527471703,1527471704,1527471705,1527471706,1527471707,1527471708,1527471709,1527471710,1527471711,1527471712,1527471713,1366777660,1366777659,1366777658,1366777657,1359699735,1359699736,1359699737,1359699738,1527471899,1527471900,1527471901,1527471902,1527471903,1527471904,1527471905,1527471906,1527471907,1527471908,1527471909,1527471910,1527471911,1527471912,1527471913,1527471914,1527471915,1527471916,1527471917,1527471918,1527471919,1527471920,1527471921,1527471922,1527471923,1527471924,1527471936,1527471937,1527471938,1527471939,1527471940,1527471941,1527471942,1527471943,1527471944,1527471945,1527471946,1527471947,1527471948,1527471949,1527471950,1527471951,1527471952,1527471953,1527471954,1527471955,1527471956,1527471957,1527471958,1527471959,1527471960,1527471961,1527471962,1527471963,1527471964,1527471965,1527471966,1527471967,1527471968,1527471969,1366777656,1366777655,1366777654,1366777653,1359699991,1359699992,1359699993,1359699994,1527472155,1527472156,1527472157,1527472158,1527472159,1527472160,1527472161,1527472162,1527472163,1527472164,1527472165,1527472166,1527472167,1527472168,1527472169,1527472170,1527472171,1527472172,1527472173,1527472174,1527472175,1527472176,1527472177,1527472178,1527472179,1527472180,1527472192,1527472193,1527472194,1527472195,1527472196,1527472197,1527472198,1527472199,1527472200,1527472201,1527472202,1527472203,1527472204,1527472205,1527472206,1527472207,1527472208,1527472209,1527472210,1527472211,1527472212,1527472213,1527472214,1527472215,1527472216,1527472217,1527472218,1527472219,1527472220,1527472221,1527472222,1527472223,1527472224,1527472225,1366777652,1366777651,1366777650,1366777649,1359700247,1359700248,1359700249,1359700250,1527472411,1527472412,1527472413,1527472414,1527472415,1527472416,1527472417,1527472418,1527472419,1527472420,1527472421,1527472422,1527472423,1527472424,1527472425,1527472426,1527472427,1527472428,1527472429,1527472430,1527472431,1527472432,1527472433,1527472434,1527472435,1527472436,1527472448,1527472449,1527472450,1527472451,1527472452,1527472453,1527472454,1527472455,1527472456,1527472457,1527472458,1527472459,1527472460,1527472461,1527472462,1527472463,1527472464,1527472465,1527472466,1527472467,1527472468,1527472469,1527472470,1527472471,1527472472,1527472473,1527472474,1527472475,1527472476,1527472477,1527472478,1527472479,1527472480,1527472481,1359745883,1359745884,1359745885,1359745886,1359745887,1359745888,1359745889,1359746139,1359746140,1359746141,1359746142,1359746143,1359746144,1359746145,1359746395,1359746396,1359746397,1359746398,1359746399,1359746400,1359746401,1359746651,1359746652,1359746653,1359746654,1359746655,1359746656,1359746657,1359746907,1359746908,1359746909,1359746910,1359746911,1359746912,1359746913,1359747163,1359747164,1359747165,1359747166,1359747167,1359747168,1359747169,1359747419,1359747420,1359747421,1359747422,1359747423,1359747424,1359747425,1359747675,1359747676,1359747677,1359747678,1359747679,1359747680,1359747681,1527520090,1527520091,1527520092,1527520093,1527520094,1527520095,1527520096,1527520097,1527520318,1527520319,1527520336,1527520337,1527520338,1527520339,1527520340,1527520341,1527520342,1527520343,1527520344,1527520345,1527520346,1527520347,1527520348,1527520349,1527520350,1527520351,1527520352,1527520353,1527520575,1527520592,1527520593,1527520594,1527520595,1527520596,1527520597,1527520598,1527520599,1527520600,1527520601,1527520602,1527520603,1527520604,1527520605,1527520606,1527520607,1527520608,1527520609,1527520831,1527520848,1527520849,1527520850,1527520851,1527520852,1527520853,1527520854,1527520855,1527520856,1527520857,1527520858,1527520859,1527520860,1527520861,1527520862,1527520863,1527520864,1527520865,1527521087,1527521104,1527521105,1527521106,1527521107,1527521108,1527521109,1527521110,1527521111,1527521112,1527521113,1527521114,1527521115,1527521116,1527521117,1527521118,1527521119,1527521120,1527521121,1527521343,1527521360,1527521361,1527521362,1527521363,1527521364,1527521365,1527521366,1527521367,1527521368,1527521369,1527521370,1527521371,1527521372,1527521373,1527521374,1527521375,1527521376,1527521377,1527521599,1527521616,1527521617,1527521618,1527521619,1527521620,1527521621,1527521622,1527521623,1527521624,1527521625,1527521626,1527521627,1527521628,1527521629,1527521630,1527521631,1527521632,1527521633,1527521855,1527521872,1527521873,1527521874,1527521875,1527521876,1527521877,1527521878,1527521879,1527521880,1527521881,1527521882,1527521883,1527521884,1527521885,1527521886,1527521887,1527521888,1527521889,1527522138,1527522139,1527522140,1527522141,1527522142,1527522143,1527522144,1527522145,1527522395,1527522396,1527522397,1527522398,1527522399,1527522400,1527522401,1527522651,1527522652,1527522653,1527522654,1527522655,1527522656,1527522657,1527522907,1527522908,1527522909,1527522910,1527522911,1527522912,1527522913,1527523163,1527523164,1527523165,1527523166,1527523167,1527523168,1527523169,1527523356,1527523357,1527523358,1527523359,1527523360,1527523361,1527523362,1527523419,1527523420,1527523421,1527523422,1527523423,1527523424,1527523425,1527523612,1527523613,1527523614,1527523615,1527523616,1527523617,1527523618,1527523675,1527523676,1527523677,1527523678,1527523679,1527523680,1527523681,1527523868,1527523869,1527523870,1527523871,1527523872,1527523873,1527523874,1527523931,1527523932,1527523933,1527523934,1527523935,1527523936,1527523937,1527524124,1527524125,1527524126,1527524127,1527524128,1527524129,1527524130,1527524187,1527524188,1527524189,1527524190,1527524191,1527524192,1527524193,1527524380,1527524381,1527524382,1527524383,1527524384,1527524385,1527524386,1527524407,1527524408,1527524409,1527524410,1527524411,1527524412,1527524413,1527524443,1527524444,1527524445,1527524446,1527524447,1527524448,1527524449,1527524636,1527524637,1527524638,1527524639,1527524640,1527524641,1527524642,1527524663,1527524664,1527524665,1527524666,1527524667,1527524668,1527524669,1527524698,1527524699,1527524700,1527524701,1527524702,1527524703,1527524704,1527524705,1527524892,1527524893,1527524894,1527524895,1527524896,1527524897,1527524898,1527524919,1527524920,1527524921,1527524922,1527524923,1527524924,1527524925,1527524937,1527524938,1527524939,1527524940,1527524941,1527524942,1527524943,1527524944,1527524945,1527524946,1527524947,1527524948,1527524949,1527524950,1527524951,1527524952,1527524953,1527524954,1527524955,1527524956,1527524957,1527524958,1527524959,1527524960,1527524961,1527525148,1527525149,1527525150,1527525151,1527525152,1527525153,1527525154,1527525175,1527525176,1527525177,1527525178,1527525179,1527525180,1527525181,1527525193,1527525194,1527525195,1527525196,1527525197,1527525198,1527525199,1527525200,1527525201,1527525202,1527525203,1527525204,1527525205,1527525206,1527525207,1527525208,1527525209,1527525210,1527525211,1527525212,1527525213,1527525214,1527525215,1527525216,1527525217,1527525404,1527525405,1527525406,1527525407,1527525408,1527525409,1527525410,1527525431,1527525432,1527525433,1527525434,1527525435,1527525436,1527525437,1527525449,1527525450,1527525451,1527525452,1527525453,1527525454,1527525455,1527525456,1527525457,1527525458,1527525459,1527525460,1527525461,1527525462,1527525463,1527525464,1527525465,1527525466,1527525467,1527525468,1527525469,1527525470,1527525471,1527525472,1527525473,1527525660,1527525661,1527525662,1527525663,1527525664,1527525665,1527525666,1527525687,1527525688,1527525689,1527525690,1527525691,1527525692,1527525693,1527525705,1527525706,1527525707,1527525708,1527525709,1527525710,1527525711,1527525712,1527525713,1527525714,1527525715,1527525716,1527525717,1527525718,1527525719,1527525720,1527525721,1527525722,1527525723,1527525724,1527525725,1527525726,1527525727,1527525728,1527525729,1527525916,1527525917,1527525918,1527525919,1527525920,1527525921,1527525922,1527525943,1527525944,1527525945,1527525946,1527525947,1527525948,1527525949,1527525961,1527525962,1527525963,1527525964,1527525965,1527525966,1527525967,1527525968,1527525969,1527525970,1527525971,1527525972,1527525973,1527525974,1527525975,1527525976,1527525977,1527525978,1527525979,1527525980,1527525981,1527525982,1527525983,1527525984,1527525985,1527526172,1527526173,1527526174,1527526175,1527526176,1527526177,1527526178,1527526199,1527526200,1527526201,1527526202,1527526203,1527526204,1527526205,1527526217,1527526218,1527526219,1527526220,1527526221,1527526222,1527526223,1527526224,1527526225,1527526226,1527526227,1527526228,1527526229,1527526230,1527526231,1527526232,1527526233,1527526234,1527526235,1527526236,1527526237,1527526238,1527526239,1527526240,1527526241,1527526428,1527526429,1527526430,1527526431,1527526432,1527526433,1527526434,1527526455,1527526456,1527526457,1527526458,1527526459,1527526460,1527526461,1527526473,1527526474,1527526475,1527526476,1527526477,1527526478,1527526479,1527526480,1527526481,1527526482,1527526483,1527526484,1527526485,1527526486,1527526487,1527526488,1527526489,1527526490,1527526491,1527526492,1527526493,1527526494,1527526495,1527526496,1527526497,1527526684,1527526685,1527526686,1527526687,1527526688,1527526689,1527526690,1527526711,1527526712,1527526713,1527526714,1527526715,1527526716,1527526717,1527526729,1527526730,1527526731,1527526732,1527526733,1527526734,1527526735,1527526736,1527526746,1527526747,1527526748,1527526749,1527526750,1527526751,1527526752,1527526753,1527526940,1527526941,1527526942,1527526943,1527526944,1527526945,1527526946,1527526967,1527526968,1527526969,1527526970,1527526971,1527526972,1527526973,1527526985,1527526986,1527526987,1527526988,1527526989,1527526990,1527526991,1527527003,1527527004,1527527005,1527527006,1527527007,1527527008,1527527009,1527527196,1527527197,1527527198,1527527199,1527527200,1527527201,1527527202,1527527223,1527527224,1527527225,1527527226,1527527227,1527527228,1527527229,1527527259,1527527260,1527527261,1527527262,1527527263,1527527264,1527527265,1527527452,1527527453,1527527454,1527527455,1527527456,1527527457,1527527458,1527527479,1527527480,1527527481,1527527482,1527527483,1527527484,1527527485,1527527515,1527527516,1527527517,1527527518,1527527519,1527527520,1527527521,1527527708,1527527709,1527527710,1527527711,1527527712,1527527713,1527527714,1527527735,1527527736,1527527737,1527527738,1527527739,1527527740,1527527741,1527527771,1527527772,1527527773,1527527774,1527527775,1527527776,1527527777,1527527964,1527527965,1527527966,1527527967,1527527968,1527527969,1527527970,1527527991,1527527992,1527527993,1527527994,1527527995,1527527996,1527527997,1527528027,1527528028,1527528029,1527528030,1527528031,1527528032,1527528033,1527528220,1527528221,1527528222,1527528223,1527528224,1527528225,1527528226,1527528247,1527528248,1527528249,1527528250,1527528251,1527528252,1527528253,1527528283,1527528284,1527528285,1527528286,1527528287,1527528288,1527528289,1527528476,1527528477,1527528478,1527528479,1527528480,1527528481,1527528482,1527528503,1527528504,1527528505,1527528506,1527528507,1527528508,1527528509,1527528539,1527528540,1527528541,1527528542,1527528543,1527528544,1527528545,1527528732,1527528733,1527528734,1527528735,1527528736,1527528737,1527528738,1527528759,1527528760,1527528761,1527528762,1527528763,1527528764,1527528765,1527528795,1527528796,1527528797,1527528798,1527528799,1527528800,1527528801,1527528988,1527528989,1527528990,1527528991,1527528992,1527528993,1527528994,1527529051,1527529052,1527529053,1527529054,1527529055,1527529056,1527529057,1527529244,1527529245,1527529246,1527529247,1527529248,1527529249,1527529250,1527529306,1527529307,1527529308,1527529309,1527529310,1527529311,1527529312,1527529313,1527529500,1527529501,1527529502,1527529503,1527529504,1527529505,1527529506,1527529554,1527529555,1527529556,1527529557,1527529558,1527529559,1527529560,1527529561,1527529562,1527529563,1527529564,1527529565,1527529566,1527529567,1527529568,1527529569,1527529756,1527529757,1527529758,1527529759,1527529760,1527529761,1527529762,1527529810,1527529811,1527529812,1527529813,1527529814,1527529815,1527529816,1527529817,1527529818,1527529819,1527529820,1527529821,1527529822,1527529823,1527529824,1527529825,1527530012,1527530013,1527530014,1527530015,1527530016,1527530017,1527530018,1527530066,1527530067,1527530068,1527530069,1527530070,1527530071,1527530072,1527530073,1527530074,1527530075,1527530076,1527530077,1527530078,1527530079,1527530080,1527530081,1527530268,1527530269,1527530270,1527530271,1527530272,1527530273,1527530274,1527530322,1527530323,1527530324,1527530325,1527530326,1527530327,1527530328,1527530329,1527530330,1527530331,1527530332,1527530333,1527530334,1527530335,1527530336,1527530337,1527530524,1527530525,1527530526,1527530527,1527530528,1527530529,1527530530,1527530578,1527530579,1527530580,1527530581,1527530582,1527530583,1527530584,1527530585,1527530586,1527530587,1527530588,1527530589,1527530590,1527530591,1527530592,1527530593,1527530780,1527530781,1527530782,1527530783,1527530784,1527530785,1527530786,1527530834,1527530835,1527530836,1527530837,1527530838,1527530839,1527530840,1527530841,1527530842,1527530843,1527530844,1527530845,1527530846,1527530847,1527530848,1527530849,1527531036,1527531037,1527531038,1527531039,1527531040,1527531041,1527531042,1527531089,1527531090,1527531091,1527531092,1527531093,1527531094,1527531095,1527531096,1527531097,1527531098,1527531099,1527531100,1527531101,1527531102,1527531103,1527531104,1527531105,1527531292,1527531293,1527531294,1527531295,1527531296,1527531297,1527531298,1527531337,1527531338,1527531339,1527531340,1527531341,1527531342,1527531343,1527531344,1527531345,1527531346,1527531347,1527531348,1527531349,1527531350,1527531351,1527531352,1527531353,1527531354,1527531355,1527531356,1527531357,1527531358,1527531359,1527531360,1527531361,1527531548,1527531549,1527531550,1527531551,1527531552,1527531553,1527531554,1527531555,1527531592,1527531593,1527531594,1527531595,1527531596,1527531597,1527531598,1527531599,1527531600,1527531601,1527531602,1527531603,1527531604,1527531605,1527531606,1527531607,1527531608,1527531609,1527531610,1527531611,1527531612,1527531613,1527531614,1527531615,1527531616,1527531617,1527531804,1527531805,1527531806,1527531807,1527531808,1527531809,1527531810,1527531811,1527531812,1527531829,1527531830,1527531847,1527531848,1527531849,1527531850,1527531851,1527531852,1527531853,1527531854,1527531855,1527531856,1527531857,1527531858,1527531859,1527531860,1527531861,1527531862,1527531863,1527531864,1527531865,1527531866,1527531867,1527531868,1527531869,1527531870,1527531871,1527531872,1527531873,1527532060,1527532061,1527532062,1527532063,1527532064,1527532065,1527532066,1527532067,1527532068,1527532085,1527532086,1527532103,1527532104,1527532105,1527532106,1527532107,1527532108,1527532109,1527532110,1527532111,1527532112,1527532113,1527532114,1527532115,1527532116,1527532117,1527532118,1527532119,1527532120,1527532121,1527532122,1527532123,1527532124,1527532125,1527532126,1527532127,1527532128,1527532129,1527532316,1527532317,1527532318,1527532319,1527532320,1527532321,1527532322,1527532323,1527532324,1527532341,1527532342,1527532359,1527532360,1527532361,1527532362,1527532363,1527532364,1527532365,1527532366,1527532367,1527532368,1527532369,1527532370,1527532371,1527532372,1527532373,1527532374,1527532375,1527532376,1527532377,1527532378,1527532379,1527532380,1527532381,1527532382,1527532383,1527532384,1527532385,1527532572,1527532573,1527532574,1527532575,1527532576,1527532577,1527532578,1527532579,1527532580,1527532597,1527532598,1527532615,1527532616,1527532617,1527532618,1527532619,1527532620,1527532621,1527532622,1527532623,1527532624,1527532625,1527532626,1527532627,1527532628,1527532629,1527532630,1527532631,1527532632,1527532633,1527532634,1527532635,1527532636,1527532637,1527532638,1527532639,1527532640,1527532641,1527532828,1527532829,1527532830,1527532831,1527532832,1527532833,1527532834,1527532835,1527532836,1527532853,1527532854,1527532871,1527532872,1527532873,1527532874,1527532875,1527532876,1527532877,1527532878,1527532879,1527532880,1527532881,1527532882,1527532883,1527532884,1527532885,1527532886,1527532887,1527532888,1527532889,1527532890,1527532891,1527532892,1527532893,1527532894,1527532895,1527532896,1527532897,1527533084,1527533085,1527533086,1527533087,1527533088,1527533089,1527533090,1527533091,1527533092,1527533109,1527533110,1527533127,1527533128,1527533129,1527533130,1527533131,1527533132,1527533133,1527533134,1527533135,1527533136,1527533137,1527533138,1527533139,1527533140,1527533141,1527533142,1527533143,1527533144,1527533145,1527533146,1527533147,1527533148,1527533149,1527533150,1527533151,1527533152,1527533153,1527533340,1527533341,1527533342,1527533343,1527533344,1527533345,1527533346,1527533347,1527533348,1527533365,1527533366,1527533383,1527533384,1527533385,1527533386,1527533387,1527533388,1527533389,1527533390,1527533391,1527533392,1527533393,1527533394,1527533395,1527533396,1527533397,1527533398,1527533399,1527533400,1527533401,1527533402,1527533403,1527533404,1527533405,1527533406,1527533407,1527533408,1527533409,1527533596,1527533597,1527533598,1527533599,1527533600,1527533601,1527533602,1527533603,1527533604,1527533621,1527533622,1527533639,1527533640,1527533641,1527533642,1527533643,1527533644,1527533645,1527533646,1527533647,1527533648,1527533649,1527533650,1527533651,1527533652,1527533653,1527533654,1527533655,1527533656,1527533657,1527533658,1527533659,1527533660,1527533661,1527533662,1527533663,1527533664,1527533665,1527533852,1527533853,1527533854,1527533855,1527533856,1527533857,1527533858,1527533859,1527533860,1527533861,1527533876,1527533877,1527533878,1527533879,1527533894,1527533895,1527533896,1527533897,1527533898,1527533899,1527533900,1527533901,1527533902,1527533903,1527533904,1527533905,1527533906,1527533907,1527533908,1527533909,1527533910,1527533911,1527533912,1527533913,1527533914,1527533915,1527533916,1527533917,1527533918,1527533919,1527533920,1527533921,1527534108,1527534109,1527534110,1527534111,1527534112,1527534113,1527534114,1527534115,1527534116,1527534117,1527534118,1527534119,1527534120,1527534121,1527534122,1527534123,1527534124,1527534125,1527534126,1527534127,1527534128,1527534129,1527534130,1527534131,1527534132,1527534133,1527534134,1527534135,1527534136,1527534137,1527534138,1527534139,1527534140,1527534141,1527534142,1527534143,1527534144,1527534145,1527534146,1527534147,1527534148,1527534149,1527534150,1527534151,1527534152,1527534153,1527534154,1527534155,1527534156,1527534157,1527534158,1527534159,1527534160,1527534161,1527534162,1527534163,1527534164,1527534165,1527534166,1527534167,1527534168,1527534169,1527534170,1527534171,1527534172,1527534173,1527534174,1527534175,1527534176,1527534177,1527534364,1527534365,1527534366,1527534367,1527534368,1527534369,1527534370,1527534371,1527534372,1527534373,1527534374,1527534375,1527534376,1527534377,1527534378,1527534379,1527534380,1527534381,1527534382,1527534383,1527534384,1527534385,1527534386,1527534387,1527534388,1527534389,1527534390,1527534391,1527534392,1527534393,1527534394,1527534395,1527534396,1527534397,1527534398,1527534399,1527534400,1527534401,1527534402,1527534403,1527534404,1527534405,1527534406,1527534407,1527534408,1527534409,1527534410,1527534411,1527534412,1527534413,1527534414,1527534415,1527534416,1527534417,1527534418,1527534419,1527534420,1527534421,1527534422,1527534423,1527534424,1527534425,1527534426,1527534427,1527534428,1527534429,1527534430,1527534431,1527534432,1527534433,1527534620,1527534621,1527534622,1527534623,1527534624,1527534625,1527534626,1527534627,1527534628,1527534629,1527534630,1527534631,1527534632,1527534633,1527534634,1527534635,1527534636,1527534637,1527534638,1527534639,1527534640,1527534641,1527534642,1527534643,1527534644,1527534645,1527534646,1527534647,1527534648,1527534649,1527534650,1527534651,1527534652,1527534653,1527534654,1527534655,1527534656,1527534657,1527534658,1527534659,1527534660,1527534661,1527534662,1527534663,1527534664,1527534665,1527534666,1527534667,1527534668,1527534669,1527534670,1527534671,1527534672,1527534673,1527534674,1527534675,1527534676,1527534677,1527534678,1527534679,1527534680,1527534681,1527534682,1527534683,1527534684,1527534685,1527534686,1527534687,1527534688,1527534689,1527534876,1527534877,1527534878,1527534879,1527534880,1527534881,1527534882,1527534883,1527534884,1527534885,1527534886,1527534887,1527534888,1527534889,1527534890,1527534891,1527534892,1527534893,1527534894,1527534895,1527534896,1527534897,1527534898,1527534899,1527534900,1527534901,1527534902,1527534903,1527534904,1527534905,1527534906,1527534907,1527534908,1527534909,1527534910,1527534911,1527534912,1527534913,1527534914,1527534915,1527534916,1527534917,1527534918,1527534919,1527534920,1527534921,1527534922,1527534923,1527534924,1527534925,1527534926,1527534927,1527534928,1527534929,1527534930,1527534931,1527534932,1527534933,1527534934,1527534935,1527534936,1527534937,1527534938,1527534939,1527534940,1527534941,1527534942,1527534943,1527534944,1527534945,1527535132,1527535133,1527535134,1527535135,1527535136,1527535137,1527535138,1527535139,1527535140,1527535141,1527535142,1527535143,1527535144,1527535145,1527535146,1527535147,1527535148,1527535149,1527535150,1527535151,1527535152,1527535153,1527535154,1527535155,1527535156,1527535157,1527535158,1527535159,1527535160,1527535161,1527535162,1527535163,1527535164,1527535165,1527535166,1527535167,1527535168,1527535169,1527535170,1527535171,1527535172,1527535173,1527535174,1527535175,1527535176,1527535177,1527535178,1527535179,1527535180,1527535181,1527535182,1527535183,1527535184,1527535185,1527535186,1527535187,1527535188,1527535189,1527535190,1527535191,1527535192,1527535193,1527535194,1527535195,1527535196,1527535197,1527535198,1527535199,1527535200,1527535201,1527535388,1527535389,1527535390,1527535391,1527535392,1527535393,1527535394,1527535395,1527535396,1527535397,1527535398,1527535399,1527535400,1527535401,1527535402,1527535403,1527535404,1527535405,1527535406,1527535407,1527535408,1527535409,1527535410,1527535411,1527535412,1527535413,1527535414,1527535415,1527535416,1527535417,1527535418,1527535419,1527535420,1527535421,1527535422,1527535423,1527535424,1527535425,1527535426,1527535427,1527535428,1527535429,1527535430,1527535431,1527535432,1527535433,1527535434,1527535435,1527535436,1527535437,1527535438,1527535439,1527535440,1527535441,1527535442,1527535443,1527535444,1527535445,1527535446,1527535447,1527535448,1527535449,1527535450,1527535451,1527535452,1527535453,1527535454,1527535455,1527535456,1527535457,1527535644,1527535645,1527535646,1527535647,1527535648,1527535649,1527535650,1527535651,1527535652,1527535653,1527535654,1527535655,1527535656,1527535657,1527535658,1527535659,1527535660,1527535661,1527535662,1527535663,1527535664,1527535665,1527535666,1527535667,1527535668,1527535669,1527535670,1527535671,1527535672,1527535673,1527535674,1527535675,1527535676,1527535677,1527535678,1527535679,1527535680,1527535681,1527535682,1527535683,1527535684,1527535685,1527535686,1527535687,1527535688,1527535689,1527535690,1527535691,1527535692,1527535693,1527535694,1527535695,1527535696,1527535697,1527535698,1527535699,1527535700,1527535701,1527535702,1527535703,1527535704,1527535705,1527535706,1527535707,1527535708,1527535709,1527535710,1527535711,1527535712,1527535713,1527535900,1527535901,1527535902,1527535903,1527535904,1527535905,1527535906,1527535907,1527535908,1527535909,1527535910,1527535911,1527535912,1527535913,1527535914,1527535915,1527535916,1527535917,1527535918,1527535919,1527535920,1527535921,1527535922,1527535923,1527535924,1527535925,1527535935,1527535936,1527535937,1527535938,1527535939,1527535940,1527535941,1527535942,1527535943,1527535944,1527535945,1527535946,1527535947,1527535948,1527535949,1527535950,1527535951,1527535952,1527535953,1527535954,1527535955,1527535956,1527535957,1527535958,1527535959,1527535960,1527535961,1527535962,1527535963,1527535964,1527535965,1527535966,1527535967,1527535968,1527535969,1527536155,1527536156,1527536157,1527536158,1527536159,1527536160,1527536161,1527536162,1527536163,1527536164,1527536165,1527536166,1527536167,1527536168,1527536169,1527536170,1527536171,1527536172,1527536173,1527536174,1527536175,1527536176,1527536177,1527536178,1527536179,1527536180,1527536192,1527536193,1527536194,1527536195,1527536196,1527536197,1527536198,1527536199,1527536200,1527536201,1527536202,1527536203,1527536204,1527536205,1527536206,1527536207,1527536208,1527536209,1527536210,1527536211,1527536212,1527536213,1527536214,1527536215,1527536216,1527536217,1527536218,1527536219,1527536220,1527536221,1527536222,1527536223,1527536224,1527536225,1366777648,1366777647,1366777646,1366777645,1359764247,1359764248,1359764249,1359764250,1527536411,1527536412,1527536413,1527536414,1527536415,1527536416,1527536417,1527536418,1527536419,1527536420,1527536421,1527536422,1527536423,1527536424,1527536425,1527536426,1527536427,1527536428,1527536429,1527536430,1527536431,1527536432,1527536433,1527536434,1527536435,1527536436,1527536448,1527536449,1527536450,1527536451,1527536452,1527536453,1527536454,1527536455,1527536456,1527536457,1527536458,1527536459,1527536460,1527536461,1527536462,1527536463,1527536464,1527536465,1527536466,1527536467,1527536468,1527536469,1527536470,1527536471,1527536472,1527536473,1527536474,1527536475,1527536476,1527536477,1527536478,1527536479,1527536480,1527536481,1366777644,1366777643,1366777642,1366777641,1359764503,1359764504,1359764505,1359764506,1527536667,1527536668,1527536669,1527536670,1527536671,1527536672,1527536673,1527536674,1527536675,1527536676,1527536677,1527536678,1527536679,1527536680,1527536681,1527536682,1527536683,1527536684,1527536685,1527536686,1527536687,1527536688,1527536689,1527536690,1527536691,1527536692,1527536704,1527536705,1527536706,1527536707,1527536708,1527536709,1527536710,1527536711,1527536712,1527536713,1527536714,1527536715,1527536716,1527536717,1527536718,1527536719,1527536720,1527536721,1527536722,1527536723,1527536724,1527536725,1527536726,1527536727,1527536728,1527536729,1527536730,1527536731,1527536732,1527536733,1527536734,1527536735,1527536736,1527536737,1366777640,1366777639,1366777638,1366777637,1359764759,1359764760,1359764761,1359764762,1527536923,1527536924,1527536925,1527536926,1527536927,1527536928,1527536929,1527536930,1527536931,1527536932,1527536933,1527536934,1527536935,1527536936,1527536937,1527536938,1527536939,1527536940,1527536941,1527536942,1527536943,1527536944,1527536945,1527536946,1527536947,1527536948,1527536960,1527536961,1527536962,1527536963,1527536964,1527536965,1527536966,1527536967,1527536968,1527536969,1527536970,1527536971,1527536972,1527536973,1527536974,1527536975,1527536976,1527536977,1527536978,1527536979,1527536980,1527536981,1527536982,1527536983,1527536984,1527536985,1527536986,1527536987,1527536988,1527536989,1527536990,1527536991,1527536992,1527536993,1366777636,1366777635,1366777634,1366777633,1359765015,1359765016,1359765017,1359765018,1527537179,1527537180,1527537181,1527537182,1527537183,1527537184,1527537185,1527537186,1527537187,1527537188,1527537189,1527537190,1527537191,1527537192,1527537193,1527537194,1527537195,1527537196,1527537197,1527537198,1527537199,1527537200,1527537201,1527537202,1527537203,1527537204,1527537216,1527537217,1527537218,1527537219,1527537220,1527537221,1527537222,1527537223,1527537224,1527537225,1527537226,1527537227,1527537228,1527537229,1527537230,1527537231,1527537232,1527537233,1527537234,1527537235,1527537236,1527537237,1527537238,1527537239,1527537240,1527537241,1527537242,1527537243,1527537244,1527537245,1527537246,1527537247,1527537248,1527537249,1366777632,1366777631,1366777630,1366777629,1359765271,1359765272,1359765273,1359765274,1527537435,1527537436,1527537437,1527537438,1527537439,1527537440,1527537441,1527537442,1527537443,1527537444,1527537445,1527537446,1527537447,1527537448,1527537449,1527537450,1527537451,1527537452,1527537453,1527537454,1527537455,1527537456,1527537457,1527537458,1527537459,1527537460,1527537472,1527537473,1527537474,1527537475,1527537476,1527537477,1527537478,1527537479,1527537480,1527537481,1527537482,1527537483,1527537484,1527537485,1527537486,1527537487,1527537488,1527537489,1527537490,1527537491,1527537492,1527537493,1527537494,1527537495,1527537496,1527537497,1527537498,1527537499,1527537500,1527537501,1527537502,1527537503,1527537504,1527537505,1366777628,1366777627,1366777626,1366777625,1359765527,1359765528,1359765529,1359765530,1527537691,1527537692,1527537693,1527537694,1527537695,1527537696,1527537697,1527537698,1527537699,1527537700,1527537701,1527537702,1527537703,1527537704,1527537705,1527537706,1527537707,1527537708,1527537709,1527537710,1527537711,1527537712,1527537713,1527537714,1527537715,1527537716,1527537728,1527537729,1527537730,1527537731,1527537732,1527537733,1527537734,1527537735,1527537736,1527537737,1527537738,1527537739,1527537740,1527537741,1527537742,1527537743,1527537744,1527537745,1527537746,1527537747,1527537748,1527537749,1527537750,1527537751,1527537752,1527537753,1527537754,1527537755,1527537756,1527537757,1527537758,1527537759,1527537760,1527537761,1366777624,1366777623,1366777622,1366777621,1359765783,1359765784,1359765785,1359765786,1527537947,1527537948,1527537949,1527537950,1527537951,1527537952,1527537953,1527537954,1527537955,1527537956,1527537957,1527537958,1527537959,1527537960,1527537961,1527537962,1527537963,1527537964,1527537965,1527537966,1527537967,1527537968,1527537969,1527537970,1527537971,1527537972,1527537984,1527537985,1527537986,1527537987,1527537988,1527537989,1527537990,1527537991,1527537992,1527537993,1527537994,1527537995,1527537996,1527537997,1527537998,1527537999,1527538000,1527538001,1527538002,1527538003,1527538004,1527538005,1527538006,1527538007,1527538008,1527538009,1527538010,1527538011,1527538012,1527538013,1527538014,1527538015,1527538016,1527538017,1359811419,1359811420,1359811421,1359811422,1359811423,1359811424,1359811425,1359811675,1359811676,1359811677,1359811678,1359811679,1359811680,1359811681,1359811931,1359811932,1359811933,1359811934,1359811935,1359811936,1359811937,1359812187,1359812188,1359812189,1359812190,1359812191,1359812192,1359812193,1359812443,1359812444,1359812445,1359812446,1359812447,1359812448,1359812449,1359812699,1359812700,1359812701,1359812702,1359812703,1359812704,1359812705,1359812955,1359812956,1359812957,1359812958,1359812959,1359812960,1359812961,1359813211,1359813212,1359813213,1359813214,1359813215,1359813216,1359813217,1527585626,1527585627,1527585628,1527585629,1527585630,1527585631,1527585632,1527585633,1527585847,1527585848,1527585849,1527585850,1527585851,1527585852,1527585853,1527585854,1527585855,1527585856,1527585871,1527585872,1527585873,1527585874,1527585875,1527585876,1527585877,1527585878,1527585879,1527585880,1527585881,1527585882,1527585883,1527585884,1527585885,1527585886,1527585887,1527585888,1527585889,1527586110,1527586111,1527586112,1527586127,1527586128,1527586129,1527586130,1527586131,1527586132,1527586133,1527586134,1527586135,1527586136,1527586137,1527586138,1527586139,1527586140,1527586141,1527586142,1527586143,1527586144,1527586145,1527586366,1527586367,1527586368,1527586383,1527586384,1527586385,1527586386,1527586387,1527586388,1527586389,1527586390,1527586391,1527586392,1527586393,1527586394,1527586395,1527586396,1527586397,1527586398,1527586399,1527586400,1527586401,1527586622,1527586623,1527586624,1527586639,1527586640,1527586641,1527586642,1527586643,1527586644,1527586645,1527586646,1527586647,1527586648,1527586649,1527586650,1527586651,1527586652,1527586653,1527586654,1527586655,1527586656,1527586657,1527586878,1527586879,1527586880,1527586895,1527586896,1527586897,1527586898,1527586899,1527586900,1527586901,1527586902,1527586903,1527586904,1527586905,1527586906,1527586907,1527586908,1527586909,1527586910,1527586911,1527586912,1527586913,1527587134,1527587135,1527587136,1527587151,1527587152,1527587153,1527587154,1527587155,1527587156,1527587157,1527587158,1527587159,1527587160,1527587161,1527587162,1527587163,1527587164,1527587165,1527587166,1527587167,1527587168,1527587169,1527587390,1527587391,1527587392,1527587407,1527587408,1527587409,1527587410,1527587411,1527587412,1527587413,1527587414,1527587415,1527587416,1527587417,1527587418,1527587419,1527587420,1527587421,1527587422,1527587423,1527587424,1527587425,1527587674,1527587675,1527587676,1527587677,1527587678,1527587679,1527587680,1527587681,1527587931,1527587932,1527587933,1527587934,1527587935,1527587936,1527587937,1527588187,1527588188,1527588189,1527588190,1527588191,1527588192,1527588193,1527588443,1527588444,1527588445,1527588446,1527588447,1527588448,1527588449,1527588699,1527588700,1527588701,1527588702,1527588703,1527588704,1527588705,1527588955,1527588956,1527588957,1527588958,1527588959,1527588960,1527588961,1527589148,1527589149,1527589150,1527589151,1527589152,1527589153,1527589154,1527589211,1527589212,1527589213,1527589214,1527589215,1527589216,1527589217,1527589404,1527589405,1527589406,1527589407,1527589408,1527589409,1527589410,1527589467,1527589468,1527589469,1527589470,1527589471,1527589472,1527589473,1527589660,1527589661,1527589662,1527589663,1527589664,1527589665,1527589666,1527589687,1527589688,1527589689,1527589690,1527589691,1527589692,1527589693,1527589723,1527589724,1527589725,1527589726,1527589727,1527589728,1527589729,1527589916,1527589917,1527589918,1527589919,1527589920,1527589921,1527589922,1527589943,1527589944,1527589945,1527589946,1527589947,1527589948,1527589949,1527589979,1527589980,1527589981,1527589982,1527589983,1527589984,1527589985,1527590172,1527590173,1527590174,1527590175,1527590176,1527590177,1527590178,1527590199,1527590200,1527590201,1527590202,1527590203,1527590204,1527590205,1527590234,1527590235,1527590236,1527590237,1527590238,1527590239,1527590240,1527590241,1527590428,1527590429,1527590430,1527590431,1527590432,1527590433,1527590434,1527590455,1527590456,1527590457,1527590458,1527590459,1527590460,1527590461,1527590473,1527590474,1527590475,1527590476,1527590477,1527590478,1527590479,1527590480,1527590481,1527590482,1527590483,1527590484,1527590485,1527590486,1527590487,1527590488,1527590489,1527590490,1527590491,1527590492,1527590493,1527590494,1527590495,1527590496,1527590497,1527590684,1527590685,1527590686,1527590687,1527590688,1527590689,1527590690,1527590711,1527590712,1527590713,1527590714,1527590715,1527590716,1527590717,1527590729,1527590730,1527590731,1527590732,1527590733,1527590734,1527590735,1527590736,1527590737,1527590738,1527590739,1527590740,1527590741,1527590742,1527590743,1527590744,1527590745,1527590746,1527590747,1527590748,1527590749,1527590750,1527590751,1527590752,1527590753,1527590940,1527590941,1527590942,1527590943,1527590944,1527590945,1527590946,1527590967,1527590968,1527590969,1527590970,1527590971,1527590972,1527590973,1527590985,1527590986,1527590987,1527590988,1527590989,1527590990,1527590991,1527590992,1527590993,1527590994,1527590995,1527590996,1527590997,1527590998,1527590999,1527591000,1527591001,1527591002,1527591003,1527591004,1527591005,1527591006,1527591007,1527591008,1527591009,1527591196,1527591197,1527591198,1527591199,1527591200,1527591201,1527591202,1527591223,1527591224,1527591225,1527591226,1527591227,1527591228,1527591229,1527591241,1527591242,1527591243,1527591244,1527591245,1527591246,1527591247,1527591248,1527591249,1527591250,1527591251,1527591252,1527591253,1527591254,1527591255,1527591256,1527591257,1527591258,1527591259,1527591260,1527591261,1527591262,1527591263,1527591264,1527591265,1527591452,1527591453,1527591454,1527591455,1527591456,1527591457,1527591458,1527591479,1527591480,1527591481,1527591482,1527591483,1527591484,1527591485,1527591497,1527591498,1527591499,1527591500,1527591501,1527591502,1527591503,1527591504,1527591505,1527591506,1527591507,1527591508,1527591509,1527591510,1527591511,1527591512,1527591513,1527591514,1527591515,1527591516,1527591517,1527591518,1527591519,1527591520,1527591521,1527591708,1527591709,1527591710,1527591711,1527591712,1527591713,1527591714,1527591735,1527591736,1527591737,1527591738,1527591739,1527591740,1527591741,1527591753,1527591754,1527591755,1527591756,1527591757,1527591758,1527591759,1527591760,1527591761,1527591762,1527591763,1527591764,1527591765,1527591766,1527591767,1527591768,1527591769,1527591770,1527591771,1527591772,1527591773,1527591774,1527591775,1527591776,1527591777,1527591964,1527591965,1527591966,1527591967,1527591968,1527591969,1527591970,1527591991,1527591992,1527591993,1527591994,1527591995,1527591996,1527591997,1527592009,1527592010,1527592011,1527592012,1527592013,1527592014,1527592015,1527592016,1527592017,1527592018,1527592019,1527592020,1527592021,1527592022,1527592023,1527592024,1527592025,1527592026,1527592027,1527592028,1527592029,1527592030,1527592031,1527592032,1527592033,1527592220,1527592221,1527592222,1527592223,1527592224,1527592225,1527592226,1527592247,1527592248,1527592249,1527592250,1527592251,1527592252,1527592253,1527592265,1527592266,1527592267,1527592268,1527592269,1527592270,1527592271,1527592272,1527592282,1527592283,1527592284,1527592285,1527592286,1527592287,1527592288,1527592289,1527592476,1527592477,1527592478,1527592479,1527592480,1527592481,1527592482,1527592503,1527592504,1527592505,1527592506,1527592507,1527592508,1527592509,1527592521,1527592522,1527592523,1527592524,1527592525,1527592526,1527592527,1527592539,1527592540,1527592541,1527592542,1527592543,1527592544,1527592545,1527592732,1527592733,1527592734,1527592735,1527592736,1527592737,1527592738,1527592759,1527592760,1527592761,1527592762,1527592763,1527592764,1527592765,1527592777,1527592778,1527592779,1527592780,1527592781,1527592782,1527592783,1527592795,1527592796,1527592797,1527592798,1527592799,1527592800,1527592801,1527592988,1527592989,1527592990,1527592991,1527592992,1527592993,1527592994,1527593015,1527593016,1527593017,1527593018,1527593019,1527593020,1527593021,1527593051,1527593052,1527593053,1527593054,1527593055,1527593056,1527593057,1527593244,1527593245,1527593246,1527593247,1527593248,1527593249,1527593250,1527593271,1527593272,1527593273,1527593274,1527593275,1527593276,1527593277,1527593307,1527593308,1527593309,1527593310,1527593311,1527593312,1527593313,1527593500,1527593501,1527593502,1527593503,1527593504,1527593505,1527593506,1527593527,1527593528,1527593529,1527593530,1527593531,1527593532,1527593533,1527593563,1527593564,1527593565,1527593566,1527593567,1527593568,1527593569,1527593756,1527593757,1527593758,1527593759,1527593760,1527593761,1527593762,1527593783,1527593784,1527593785,1527593786,1527593787,1527593788,1527593789,1527593819,1527593820,1527593821,1527593822,1527593823,1527593824,1527593825,1527594012,1527594013,1527594014,1527594015,1527594016,1527594017,1527594018,1527594039,1527594040,1527594041,1527594042,1527594043,1527594044,1527594045,1527594075,1527594076,1527594077,1527594078,1527594079,1527594080,1527594081,1527594268,1527594269,1527594270,1527594271,1527594272,1527594273,1527594274,1527594295,1527594296,1527594297,1527594298,1527594299,1527594300,1527594301,1527594331,1527594332,1527594333,1527594334,1527594335,1527594336,1527594337,1527594524,1527594525,1527594526,1527594527,1527594528,1527594529,1527594530,1527594587,1527594588,1527594589,1527594590,1527594591,1527594592,1527594593,1527594780,1527594781,1527594782,1527594783,1527594784,1527594785,1527594786,1527594842,1527594843,1527594844,1527594845,1527594846,1527594847,1527594848,1527594849,1527595036,1527595037,1527595038,1527595039,1527595040,1527595041,1527595042,1527595090,1527595091,1527595092,1527595093,1527595094,1527595095,1527595096,1527595097,1527595098,1527595099,1527595100,1527595101,1527595102,1527595103,1527595104,1527595105,1527595292,1527595293,1527595294,1527595295,1527595296,1527595297,1527595298,1527595346,1527595347,1527595348,1527595349,1527595350,1527595351,1527595352,1527595353,1527595354,1527595355,1527595356,1527595357,1527595358,1527595359,1527595360,1527595361,1527595548,1527595549,1527595550,1527595551,1527595552,1527595553,1527595554,1527595602,1527595603,1527595604,1527595605,1527595606,1527595607,1527595608,1527595609,1527595610,1527595611,1527595612,1527595613,1527595614,1527595615,1527595616,1527595617,1527595804,1527595805,1527595806,1527595807,1527595808,1527595809,1527595810,1527595858,1527595859,1527595860,1527595861,1527595862,1527595863,1527595864,1527595865,1527595866,1527595867,1527595868,1527595869,1527595870,1527595871,1527595872,1527595873,1527596060,1527596061,1527596062,1527596063,1527596064,1527596065,1527596066,1527596114,1527596115,1527596116,1527596117,1527596118,1527596119,1527596120,1527596121,1527596122,1527596123,1527596124,1527596125,1527596126,1527596127,1527596128,1527596129,1527596316,1527596317,1527596318,1527596319,1527596320,1527596321,1527596322,1527596369,1527596370,1527596371,1527596372,1527596373,1527596374,1527596375,1527596376,1527596377,1527596378,1527596379,1527596380,1527596381,1527596382,1527596383,1527596384,1527596385,1527596572,1527596573,1527596574,1527596575,1527596576,1527596577,1527596578,1527596617,1527596618,1527596619,1527596620,1527596621,1527596622,1527596623,1527596624,1527596625,1527596626,1527596627,1527596628,1527596629,1527596630,1527596631,1527596632,1527596633,1527596634,1527596635,1527596636,1527596637,1527596638,1527596639,1527596640,1527596641,1527596828,1527596829,1527596830,1527596831,1527596832,1527596833,1527596834,1527596873,1527596874,1527596875,1527596876,1527596877,1527596878,1527596879,1527596880,1527596881,1527596882,1527596883,1527596884,1527596885,1527596886,1527596887,1527596888,1527596889,1527596890,1527596891,1527596892,1527596893,1527596894,1527596895,1527596896,1527596897,1527597084,1527597085,1527597086,1527597087,1527597088,1527597089,1527597090,1527597091,1527597128,1527597129,1527597130,1527597131,1527597132,1527597133,1527597134,1527597135,1527597136,1527597137,1527597138,1527597139,1527597140,1527597141,1527597142,1527597143,1527597144,1527597145,1527597146,1527597147,1527597148,1527597149,1527597150,1527597151,1527597152,1527597153,1527597340,1527597341,1527597342,1527597343,1527597344,1527597345,1527597346,1527597347,1527597348,1527597349,1527597364,1527597365,1527597366,1527597367,1527597382,1527597383,1527597384,1527597385,1527597386,1527597387,1527597388,1527597389,1527597390,1527597391,1527597392,1527597393,1527597394,1527597395,1527597396,1527597397,1527597398,1527597399,1527597400,1527597401,1527597402,1527597403,1527597404,1527597405,1527597406,1527597407,1527597408,1527597409,1527597596,1527597597,1527597598,1527597599,1527597600,1527597601,1527597602,1527597603,1527597604,1527597605,1527597620,1527597621,1527597622,1527597623,1527597638,1527597639,1527597640,1527597641,1527597642,1527597643,1527597644,1527597645,1527597646,1527597647,1527597648,1527597649,1527597650,1527597651,1527597652,1527597653,1527597654,1527597655,1527597656,1527597657,1527597658,1527597659,1527597660,1527597661,1527597662,1527597663,1527597664,1527597665,1527597852,1527597853,1527597854,1527597855,1527597856,1527597857,1527597858,1527597859,1527597860,1527597861,1527597876,1527597877,1527597878,1527597879,1527597894,1527597895,1527597896,1527597897,1527597898,1527597899,1527597900,1527597901,1527597902,1527597903,1527597904,1527597905,1527597906,1527597907,1527597908,1527597909,1527597910,1527597911,1527597912,1527597913,1527597914,1527597915,1527597916,1527597917,1527597918,1527597919,1527597920,1527597921,1527598108,1527598109,1527598110,1527598111,1527598112,1527598113,1527598114,1527598115,1527598116,1527598117,1527598132,1527598133,1527598134,1527598135,1527598150,1527598151,1527598152,1527598153,1527598154,1527598155,1527598156,1527598157,1527598158,1527598159,1527598160,1527598161,1527598162,1527598163,1527598164,1527598165,1527598166,1527598167,1527598168,1527598169,1527598170,1527598171,1527598172,1527598173,1527598174,1527598175,1527598176,1527598177,1527598364,1527598365,1527598366,1527598367,1527598368,1527598369,1527598370,1527598371,1527598372,1527598373,1527598388,1527598389,1527598390,1527598391,1527598406,1527598407,1527598408,1527598409,1527598410,1527598411,1527598412,1527598413,1527598414,1527598415,1527598416,1527598417,1527598418,1527598419,1527598420,1527598421,1527598422,1527598423,1527598424,1527598425,1527598426,1527598427,1527598428,1527598429,1527598430,1527598431,1527598432,1527598433,1527598620,1527598621,1527598622,1527598623,1527598624,1527598625,1527598626,1527598627,1527598628,1527598629,1527598644,1527598645,1527598646,1527598647,1527598662,1527598663,1527598664,1527598665,1527598666,1527598667,1527598668,1527598669,1527598670,1527598671,1527598672,1527598673,1527598674,1527598675,1527598676,1527598677,1527598678,1527598679,1527598680,1527598681,1527598682,1527598683,1527598684,1527598685,1527598686,1527598687,1527598688,1527598689,1527598876,1527598877,1527598878,1527598879,1527598880,1527598881,1527598882,1527598883,1527598884,1527598885,1527598900,1527598901,1527598902,1527598903,1527598918,1527598919,1527598920,1527598921,1527598922,1527598923,1527598924,1527598925,1527598926,1527598927,1527598928,1527598929,1527598930,1527598931,1527598932,1527598933,1527598934,1527598935,1527598936,1527598937,1527598938,1527598939,1527598940,1527598941,1527598942,1527598943,1527598944,1527598945,1527599132,1527599133,1527599134,1527599135,1527599136,1527599137,1527599138,1527599139,1527599140,1527599141,1527599156,1527599157,1527599158,1527599159,1527599174,1527599175,1527599176,1527599177,1527599178,1527599179,1527599180,1527599181,1527599182,1527599183,1527599184,1527599185,1527599186,1527599187,1527599188,1527599189,1527599190,1527599191,1527599192,1527599193,1527599194,1527599195,1527599196,1527599197,1527599198,1527599199,1527599200,1527599201,1527599388,1527599389,1527599390,1527599391,1527599392,1527599393,1527599394,1527599395,1527599396,1527599397,1527599398,1527599411,1527599412,1527599413,1527599414,1527599415,1527599416,1527599429,1527599430,1527599431,1527599432,1527599433,1527599434,1527599435,1527599436,1527599437,1527599438,1527599439,1527599440,1527599441,1527599442,1527599443,1527599444,1527599445,1527599446,1527599447,1527599448,1527599449,1527599450,1527599451,1527599452,1527599453,1527599454,1527599455,1527599456,1527599457,1527599644,1527599645,1527599646,1527599647,1527599648,1527599649,1527599650,1527599651,1527599652,1527599653,1527599654,1527599655,1527599656,1527599657,1527599658,1527599659,1527599660,1527599661,1527599662,1527599663,1527599664,1527599665,1527599666,1527599667,1527599668,1527599669,1527599670,1527599671,1527599672,1527599673,1527599674,1527599675,1527599676,1527599677,1527599678,1527599679,1527599680,1527599681,1527599682,1527599683,1527599684,1527599685,1527599686,1527599687,1527599688,1527599689,1527599690,1527599691,1527599692,1527599693,1527599694,1527599695,1527599696,1527599697,1527599698,1527599699,1527599700,1527599701,1527599702,1527599703,1527599704,1527599705,1527599706,1527599707,1527599708,1527599709,1527599710,1527599711,1527599712,1527599713,1527599900,1527599901,1527599902,1527599903,1527599904,1527599905,1527599906,1527599907,1527599908,1527599909,1527599910,1527599911,1527599912,1527599913,1527599914,1527599915,1527599916,1527599917,1527599918,1527599919,1527599920,1527599921,1527599922,1527599923,1527599924,1527599925,1527599926,1527599927,1527599928,1527599929,1527599930,1527599931,1527599932,1527599933,1527599934,1527599935,1527599936,1527599937,1527599938,1527599939,1527599940,1527599941,1527599942,1527599943,1527599944,1527599945,1527599946,1527599947,1527599948,1527599949,1527599950,1527599951,1527599952,1527599953,1527599954,1527599955,1527599956,1527599957,1527599958,1527599959,1527599960,1527599961,1527599962,1527599963,1527599964,1527599965,1527599966,1527599967,1527599968,1527599969,1527600156,1527600157,1527600158,1527600159,1527600160,1527600161,1527600162,1527600163,1527600164,1527600165,1527600166,1527600167,1527600168,1527600169,1527600170,1527600171,1527600172,1527600173,1527600174,1527600175,1527600176,1527600177,1527600178,1527600179,1527600180,1527600181,1527600182,1527600183,1527600184,1527600185,1527600186,1527600187,1527600188,1527600189,1527600190,1527600191,1527600192,1527600193,1527600194,1527600195,1527600196,1527600197,1527600198,1527600199,1527600200,1527600201,1527600202,1527600203,1527600204,1527600205,1527600206,1527600207,1527600208,1527600209,1527600210,1527600211,1527600212,1527600213,1527600214,1527600215,1527600216,1527600217,1527600218,1527600219,1527600220,1527600221,1527600222,1527600223,1527600224,1527600225,1527600412,1527600413,1527600414,1527600415,1527600416,1527600417,1527600418,1527600419,1527600420,1527600421,1527600422,1527600423,1527600424,1527600425,1527600426,1527600427,1527600428,1527600429,1527600430,1527600431,1527600432,1527600433,1527600434,1527600435,1527600436,1527600437,1527600438,1527600439,1527600440,1527600441,1527600442,1527600443,1527600444,1527600445,1527600446,1527600447,1527600448,1527600449,1527600450,1527600451,1527600452,1527600453,1527600454,1527600455,1527600456,1527600457,1527600458,1527600459,1527600460,1527600461,1527600462,1527600463,1527600464,1527600465,1527600466,1527600467,1527600468,1527600469,1527600470,1527600471,1527600472,1527600473,1527600474,1527600475,1527600476,1527600477,1527600478,1527600479,1527600480,1527600481,1527600668,1527600669,1527600670,1527600671,1527600672,1527600673,1527600674,1527600675,1527600676,1527600677,1527600678,1527600679,1527600680,1527600681,1527600682,1527600683,1527600684,1527600685,1527600686,1527600687,1527600688,1527600689,1527600690,1527600691,1527600692,1527600693,1527600694,1527600695,1527600696,1527600697,1527600698,1527600699,1527600700,1527600701,1527600702,1527600703,1527600704,1527600705,1527600706,1527600707,1527600708,1527600709,1527600710,1527600711,1527600712,1527600713,1527600714,1527600715,1527600716,1527600717,1527600718,1527600719,1527600720,1527600721,1527600722,1527600723,1527600724,1527600725,1527600726,1527600727,1527600728,1527600729,1527600730,1527600731,1527600732,1527600733,1527600734,1527600735,1527600736,1527600737,1527600924,1527600925,1527600926,1527600927,1527600928,1527600929,1527600930,1527600931,1527600932,1527600933,1527600934,1527600935,1527600936,1527600937,1527600938,1527600939,1527600940,1527600941,1527600942,1527600943,1527600944,1527600945,1527600946,1527600947,1527600948,1527600949,1527600950,1527600951,1527600952,1527600953,1527600954,1527600955,1527600956,1527600957,1527600958,1527600959,1527600960,1527600961,1527600962,1527600963,1527600964,1527600965,1527600966,1527600967,1527600968,1527600969,1527600970,1527600971,1527600972,1527600973,1527600974,1527600975,1527600976,1527600977,1527600978,1527600979,1527600980,1527600981,1527600982,1527600983,1527600984,1527600985,1527600986,1527600987,1527600988,1527600989,1527600990,1527600991,1527600992,1527600993,1527601180,1527601181,1527601182,1527601183,1527601184,1527601185,1527601186,1527601187,1527601188,1527601189,1527601190,1527601191,1527601192,1527601193,1527601194,1527601195,1527601196,1527601197,1527601198,1527601199,1527601200,1527601201,1527601202,1527601203,1527601204,1527601205,1527601206,1527601207,1527601208,1527601209,1527601210,1527601211,1527601212,1527601213,1527601214,1527601215,1527601216,1527601217,1527601218,1527601219,1527601220,1527601221,1527601222,1527601223,1527601224,1527601225,1527601226,1527601227,1527601228,1527601229,1527601230,1527601231,1527601232,1527601233,1527601234,1527601235,1527601236,1527601237,1527601238,1527601239,1527601240,1527601241,1527601242,1527601243,1527601244,1527601245,1527601246,1527601247,1527601248,1527601249,1527601436,1527601437,1527601438,1527601439,1527601440,1527601441,1527601442,1527601443,1527601444,1527601445,1527601446,1527601447,1527601448,1527601449,1527601450,1527601451,1527601452,1527601453,1527601454,1527601455,1527601456,1527601457,1527601458,1527601459,1527601460,1527601461,1527601471,1527601472,1527601473,1527601474,1527601475,1527601476,1527601477,1527601478,1527601479,1527601480,1527601481,1527601482,1527601483,1527601484,1527601485,1527601486,1527601487,1527601488,1527601489,1527601490,1527601491,1527601492,1527601493,1527601494,1527601495,1527601496,1527601497,1527601498,1527601499,1527601500,1527601501,1527601502,1527601503,1527601504,1527601505,1527601691,1527601692,1527601693,1527601694,1527601695,1527601696,1527601697,1527601698,1527601699,1527601700,1527601701,1527601702,1527601703,1527601704,1527601705,1527601706,1527601707,1527601708,1527601709,1527601710,1527601711,1527601712,1527601713,1527601714,1527601715,1527601716,1527601728,1527601729,1527601730,1527601731,1527601732,1527601733,1527601734,1527601735,1527601736,1527601737,1527601738,1527601739,1527601740,1527601741,1527601742,1527601743,1527601744,1527601745,1527601746,1527601747,1527601748,1527601749,1527601750,1527601751,1527601752,1527601753,1527601754,1527601755,1527601756,1527601757,1527601758,1527601759,1527601760,1527601761,1366777620,1366777619,1534549601,1534549600,1359829783,1359829784,1359829785,1359829786,1527601947,1527601948,1527601949,1527601950,1527601951,1527601952,1527601953,1527601954,1527601955,1527601956,1527601957,1527601958,1527601959,1527601960,1527601961,1527601962,1527601963,1527601964,1527601965,1527601966,1527601967,1527601968,1527601969,1527601970,1527601971,1527601972,1527601984,1527601985,1527601986,1527601987,1527601988,1527601989,1527601990,1527601991,1527601992,1527601993,1527601994,1527601995,1527601996,1527601997,1527601998,1527601999,1527602000,1527602001,1527602002,1527602003,1527602004,1527602005,1527602006,1527602007,1527602008,1527602009,1527602010,1527602011,1527602012,1527602013,1527602014,1527602015,1527602016,1527602017,1534549599,1534549598,1534549597,1534549596,1359830039,1359830040,1359830041,1359830042,1527602203,1527602204,1527602205,1527602206,1527602207,1527602208,1527602209,1527602210,1527602211,1527602212,1527602213,1527602214,1527602215,1527602216,1527602217,1527602218,1527602219,1527602220,1527602221,1527602222,1527602223,1527602224,1527602225,1527602226,1527602227,1527602228,1527602240,1527602241,1527602242,1527602243,1527602244,1527602245,1527602246,1527602247,1527602248,1527602249,1527602250,1527602251,1527602252,1527602253,1527602254,1527602255,1527602256,1527602257,1527602258,1527602259,1527602260,1527602261,1527602262,1527602263,1527602264,1527602265,1527602266,1527602267,1527602268,1527602269,1527602270,1527602271,1527602272,1527602273,1534549595,1534549594,1366777433,1366777432,1359830295,1359830296,1359830297,1359830298,1527602459,1527602460,1527602461,1527602462,1527602463,1527602464,1527602465,1527602466,1527602467,1527602468,1527602469,1527602470,1527602471,1527602472,1527602473,1527602474,1527602475,1527602476,1527602477,1527602478,1527602479,1527602480,1527602481,1527602482,1527602483,1527602484,1527602496,1527602497,1527602498,1527602499,1527602500,1527602501,1527602502,1527602503,1527602504,1527602505,1527602506,1527602507,1527602508,1527602509,1527602510,1527602511,1527602512,1527602513,1527602514,1527602515,1527602516,1527602517,1527602518,1527602519,1527602520,1527602521,1527602522,1527602523,1527602524,1527602525,1527602526,1527602527,1527602528,1527602529,1366777431,1366777430,1366777429,1366777428,1359830551,1359830552,1359830553,1359830554,1527602715,1527602716,1527602717,1527602718,1527602719,1527602720,1527602721,1527602722,1527602723,1527602724,1527602725,1527602726,1527602727,1527602728,1527602729,1527602730,1527602731,1527602732,1527602733,1527602734,1527602735,1527602736,1527602737,1527602738,1527602739,1527602740,1527602752,1527602753,1527602754,1527602755,1527602756,1527602757,1527602758,1527602759,1527602760,1527602761,1527602762,1527602763,1527602764,1527602765,1527602766,1527602767,1527602768,1527602769,1527602770,1527602771,1527602772,1527602773,1527602774,1527602775,1527602776,1527602777,1527602778,1527602779,1527602780,1527602781,1527602782,1527602783,1527602784,1527602785,1366777427,1366777426,1366777425,1366777424,1359830807,1359830808,1359830809,1359830810,1527602971,1527602972,1527602973,1527602974,1527602975,1527602976,1527602977,1527602978,1527602979,1527602980,1527602981,1527602982,1527602983,1527602984,1527602985,1527602986,1527602987,1527602988,1527602989,1527602990,1527602991,1527602992,1527602993,1527602994,1527602995,1527602996,1527603008,1527603009,1527603010,1527603011,1527603012,1527603013,1527603014,1527603015,1527603016,1527603017,1527603018,1527603019,1527603020,1527603021,1527603022,1527603023,1527603024,1527603025,1527603026,1527603027,1527603028,1527603029,1527603030,1527603031,1527603032,1527603033,1527603034,1527603035,1527603036,1527603037,1527603038,1527603039,1527603040,1527603041,1366777423,1366777422,1366777421,1366777420,1359831063,1359831064,1359831065,1359831066,1527603227,1527603228,1527603229,1527603230,1527603231,1527603232,1527603233,1527603234,1527603235,1527603236,1527603237,1527603238,1527603239,1527603240,1527603241,1527603242,1527603243,1527603244,1527603245,1527603246,1527603247,1527603248,1527603249,1527603250,1527603251,1527603252,1527603264,1527603265,1527603266,1527603267,1527603268,1527603269,1527603270,1527603271,1527603272,1527603273,1527603274,1527603275,1527603276,1527603277,1527603278,1527603279,1527603280,1527603281,1527603282,1527603283,1527603284,1527603285,1527603286,1527603287,1527603288,1527603289,1527603290,1527603291,1527603292,1527603293,1527603294,1527603295,1527603296,1527603297,1366777419,1366777418,1366777417,1366777416,1359831319,1359831320,1359831321,1359831322,1527603483,1527603484,1527603485,1527603486,1527603487,1527603488,1527603489,1527603490,1527603491,1527603492,1527603493,1527603494,1527603495,1527603496,1527603497,1527603498,1527603499,1527603500,1527603501,1527603502,1527603503,1527603504,1527603505,1527603506,1527603507,1527603508,1527603520,1527603521,1527603522,1527603523,1527603524,1527603525,1527603526,1527603527,1527603528,1527603529,1527603530,1527603531,1527603532,1527603533,1527603534,1527603535,1527603536,1527603537,1527603538,1527603539,1527603540,1527603541,1527603542,1527603543,1527603544,1527603545,1527603546,1527603547,1527603548,1527603549,1527603550,1527603551,1527603552,1527603553,1359876955,1359876956,1359876957,1359876958,1359876959,1359876960,1359876961,1359877211,1359877212,1359877213,1359877214,1359877215,1359877216,1359877217,1359877467,1359877468,1359877469,1359877470,1359877471,1359877472,1359877473,1359877723,1359877724,1359877725,1359877726,1359877727,1359877728,1359877729,1359877979,1359877980,1359877981,1359877982,1359877983,1359877984,1359877985,1359878235,1359878236,1359878237,1359878238,1359878239,1359878240,1359878241,1359878491,1359878492,1359878493,1359878494,1359878495,1359878496,1359878497,1359878747,1359878748,1359878749,1359878750,1359878751,1359878752,1359878753,1527651162,1527651163,1527651164,1527651165,1527651166,1527651167,1527651168,1527651169,1527651383,1527651384,1527651385,1527651386,1527651387,1527651388,1527651389,1527651390,1527651391,1527651392,1527651393,1527651406,1527651407,1527651408,1527651409,1527651410,1527651411,1527651412,1527651413,1527651414,1527651415,1527651416,1527651417,1527651418,1527651419,1527651420,1527651421,1527651422,1527651423,1527651424,1527651425,1527651639,1527651640,1527651641,1527651642,1527651643,1527651644,1527651645,1527651646,1527651647,1527651648,1527651649,1527651662,1527651663,1527651664,1527651665,1527651666,1527651667,1527651668,1527651669,1527651670,1527651671,1527651672,1527651673,1527651674,1527651675,1527651676,1527651677,1527651678,1527651679,1527651680,1527651681,1527651901,1527651902,1527651903,1527651904,1527651905,1527651918,1527651919,1527651920,1527651921,1527651922,1527651923,1527651924,1527651925,1527651926,1527651927,1527651928,1527651929,1527651930,1527651931,1527651932,1527651933,1527651934,1527651935,1527651936,1527651937,1527652157,1527652158,1527652159,1527652160,1527652161,1527652174,1527652175,1527652176,1527652177,1527652178,1527652179,1527652180,1527652181,1527652182,1527652183,1527652184,1527652185,1527652186,1527652187,1527652188,1527652189,1527652190,1527652191,1527652192,1527652193,1527652413,1527652414,1527652415,1527652416,1527652417,1527652430,1527652431,1527652432,1527652433,1527652434,1527652435,1527652436,1527652437,1527652438,1527652439,1527652440,1527652441,1527652442,1527652443,1527652444,1527652445,1527652446,1527652447,1527652448,1527652449,1527652669,1527652670,1527652671,1527652672,1527652673,1527652686,1527652687,1527652688,1527652689,1527652690,1527652691,1527652692,1527652693,1527652694,1527652695,1527652696,1527652697,1527652698,1527652699,1527652700,1527652701,1527652702,1527652703,1527652704,1527652705,1527652925,1527652926,1527652927,1527652928,1527652929,1527652942,1527652943,1527652944,1527652945,1527652946,1527652947,1527652948,1527652949,1527652950,1527652951,1527652952,1527652953,1527652954,1527652955,1527652956,1527652957,1527652958,1527652959,1527652960,1527652961,1527653181,1527653182,1527653210,1527653211,1527653212,1527653213,1527653214,1527653215,1527653216,1527653217,1527653467,1527653468,1527653469,1527653470,1527653471,1527653472,1527653473,1527653723,1527653724,1527653725,1527653726,1527653727,1527653728,1527653729,1527653979,1527653980,1527653981,1527653982,1527653983,1527653984,1527653985,1527654235,1527654236,1527654237,1527654238,1527654239,1527654240,1527654241,1527654491,1527654492,1527654493,1527654494,1527654495,1527654496,1527654497,1527654747,1527654748,1527654749,1527654750,1527654751,1527654752,1527654753,1527654940,1527654941,1527654942,1527654943,1527654944,1527654945,1527654946,1527654967,1527654968,1527654969,1527654970,1527654971,1527654972,1527654973,1527655003,1527655004,1527655005,1527655006,1527655007,1527655008,1527655009,1527655196,1527655197,1527655198,1527655199,1527655200,1527655201,1527655202,1527655223,1527655224,1527655225,1527655226,1527655227,1527655228,1527655229,1527655259,1527655260,1527655261,1527655262,1527655263,1527655264,1527655265,1527655452,1527655453,1527655454,1527655455,1527655456,1527655457,1527655458,1527655479,1527655480,1527655481,1527655482,1527655483,1527655484,1527655485,1527655515,1527655516,1527655517,1527655518,1527655519,1527655520,1527655521,1527655708,1527655709,1527655710,1527655711,1527655712,1527655713,1527655714,1527655735,1527655736,1527655737,1527655738,1527655739,1527655740,1527655741,1527655770,1527655771,1527655772,1527655773,1527655774,1527655775,1527655776,1527655777,1527655964,1527655965,1527655966,1527655967,1527655968,1527655969,1527655970,1527655991,1527655992,1527655993,1527655994,1527655995,1527655996,1527655997,1527656009,1527656010,1527656011,1527656012,1527656013,1527656014,1527656015,1527656016,1527656017,1527656018,1527656019,1527656020,1527656021,1527656022,1527656023,1527656024,1527656025,1527656026,1527656027,1527656028,1527656029,1527656030,1527656031,1527656032,1527656033,1527656220,1527656221,1527656222,1527656223,1527656224,1527656225,1527656226,1527656247,1527656248,1527656249,1527656250,1527656251,1527656252,1527656253,1527656265,1527656266,1527656267,1527656268,1527656269,1527656270,1527656271,1527656272,1527656273,1527656274,1527656275,1527656276,1527656277,1527656278,1527656279,1527656280,1527656281,1527656282,1527656283,1527656284,1527656285,1527656286,1527656287,1527656288,1527656289,1527656476,1527656477,1527656478,1527656479,1527656480,1527656481,1527656482,1527656503,1527656504,1527656505,1527656506,1527656507,1527656508,1527656509,1527656521,1527656522,1527656523,1527656524,1527656525,1527656526,1527656527,1527656528,1527656529,1527656530,1527656531,1527656532,1527656533,1527656534,1527656535,1527656536,1527656537,1527656538,1527656539,1527656540,1527656541,1527656542,1527656543,1527656544,1527656545,1527656732,1527656733,1527656734,1527656735,1527656736,1527656737,1527656738,1527656759,1527656760,1527656761,1527656762,1527656763,1527656764,1527656765,1527656777,1527656778,1527656779,1527656780,1527656781,1527656782,1527656783,1527656784,1527656785,1527656786,1527656787,1527656788,1527656789,1527656790,1527656791,1527656792,1527656793,1527656794,1527656795,1527656796,1527656797,1527656798,1527656799,1527656800,1527656801,1527656988,1527656989,1527656990,1527656991,1527656992,1527656993,1527656994,1527657015,1527657016,1527657017,1527657018,1527657019,1527657020,1527657021,1527657033,1527657034,1527657035,1527657036,1527657037,1527657038,1527657039,1527657040,1527657041,1527657042,1527657043,1527657044,1527657045,1527657046,1527657047,1527657048,1527657049,1527657050,1527657051,1527657052,1527657053,1527657054,1527657055,1527657056,1527657057,1527657244,1527657245,1527657246,1527657247,1527657248,1527657249,1527657250,1527657271,1527657272,1527657273,1527657274,1527657275,1527657276,1527657277,1527657289,1527657290,1527657291,1527657292,1527657293,1527657294,1527657295,1527657296,1527657297,1527657298,1527657299,1527657300,1527657301,1527657302,1527657303,1527657304,1527657305,1527657306,1527657307,1527657308,1527657309,1527657310,1527657311,1527657312,1527657313,1527657500,1527657501,1527657502,1527657503,1527657504,1527657505,1527657506,1527657527,1527657528,1527657529,1527657530,1527657531,1527657532,1527657533,1527657545,1527657546,1527657547,1527657548,1527657549,1527657550,1527657551,1527657552,1527657553,1527657554,1527657555,1527657556,1527657557,1527657558,1527657559,1527657560,1527657561,1527657562,1527657563,1527657564,1527657565,1527657566,1527657567,1527657568,1527657569,1527657756,1527657757,1527657758,1527657759,1527657760,1527657761,1527657762,1527657783,1527657784,1527657785,1527657786,1527657787,1527657788,1527657789,1527657801,1527657802,1527657803,1527657804,1527657805,1527657806,1527657807,1527657808,1527657818,1527657819,1527657820,1527657821,1527657822,1527657823,1527657824,1527657825,1527658012,1527658013,1527658014,1527658015,1527658016,1527658017,1527658018,1527658039,1527658040,1527658041,1527658042,1527658043,1527658044,1527658045,1527658057,1527658058,1527658059,1527658060,1527658061,1527658062,1527658063,1527658075,1527658076,1527658077,1527658078,1527658079,1527658080,1527658081,1527658268,1527658269,1527658270,1527658271,1527658272,1527658273,1527658274,1527658295,1527658296,1527658297,1527658298,1527658299,1527658300,1527658301,1527658313,1527658314,1527658315,1527658316,1527658317,1527658318,1527658319,1527658331,1527658332,1527658333,1527658334,1527658335,1527658336,1527658337,1527658524,1527658525,1527658526,1527658527,1527658528,1527658529,1527658530,1527658551,1527658552,1527658553,1527658554,1527658555,1527658556,1527658557,1527658569,1527658570,1527658571,1527658572,1527658573,1527658574,1527658575,1527658587,1527658588,1527658589,1527658590,1527658591,1527658592,1527658593,1527658780,1527658781,1527658782,1527658783,1527658784,1527658785,1527658786,1527658807,1527658808,1527658809,1527658810,1527658811,1527658812,1527658813,1527658843,1527658844,1527658845,1527658846,1527658847,1527658848,1527658849,1527659036,1527659037,1527659038,1527659039,1527659040,1527659041,1527659042,1527659063,1527659064,1527659065,1527659066,1527659067,1527659068,1527659069,1527659099,1527659100,1527659101,1527659102,1527659103,1527659104,1527659105,1527659292,1527659293,1527659294,1527659295,1527659296,1527659297,1527659298,1527659319,1527659320,1527659321,1527659322,1527659323,1527659324,1527659325,1527659355,1527659356,1527659357,1527659358,1527659359,1527659360,1527659361,1527659548,1527659549,1527659550,1527659551,1527659552,1527659553,1527659554,1527659575,1527659576,1527659577,1527659578,1527659579,1527659580,1527659581,1527659611,1527659612,1527659613,1527659614,1527659615,1527659616,1527659617,1527659804,1527659805,1527659806,1527659807,1527659808,1527659809,1527659810,1527659831,1527659832,1527659833,1527659834,1527659835,1527659836,1527659837,1527659867,1527659868,1527659869,1527659870,1527659871,1527659872,1527659873,1527660060,1527660061,1527660062,1527660063,1527660064,1527660065,1527660066,1527660123,1527660124,1527660125,1527660126,1527660127,1527660128,1527660129,1527660316,1527660317,1527660318,1527660319,1527660320,1527660321,1527660322,1527660378,1527660379,1527660380,1527660381,1527660382,1527660383,1527660384,1527660385,1527660572,1527660573,1527660574,1527660575,1527660576,1527660577,1527660578,1527660625,1527660626,1527660627,1527660628,1527660629,1527660630,1527660631,1527660632,1527660633,1527660634,1527660635,1527660636,1527660637,1527660638,1527660639,1527660640,1527660641,1527660828,1527660829,1527660830,1527660831,1527660832,1527660833,1527660834,1527660881,1527660882,1527660883,1527660884,1527660885,1527660886,1527660887,1527660888,1527660889,1527660890,1527660891,1527660892,1527660893,1527660894,1527660895,1527660896,1527660897,1527661084,1527661085,1527661086,1527661087,1527661088,1527661089,1527661090,1527661137,1527661138,1527661139,1527661140,1527661141,1527661142,1527661143,1527661144,1527661145,1527661146,1527661147,1527661148,1527661149,1527661150,1527661151,1527661152,1527661153,1527661340,1527661341,1527661342,1527661343,1527661344,1527661345,1527661346,1527661393,1527661394,1527661395,1527661396,1527661397,1527661398,1527661399,1527661400,1527661401,1527661402,1527661403,1527661404,1527661405,1527661406,1527661407,1527661408,1527661409,1527661596,1527661597,1527661598,1527661599,1527661600,1527661601,1527661602,1527661649,1527661650,1527661651,1527661652,1527661653,1527661654,1527661655,1527661656,1527661657,1527661658,1527661659,1527661660,1527661661,1527661662,1527661663,1527661664,1527661665,1527661852,1527661853,1527661854,1527661855,1527661856,1527661857,1527661858,1527661897,1527661898,1527661899,1527661900,1527661901,1527661902,1527661903,1527661904,1527661905,1527661906,1527661907,1527661908,1527661909,1527661910,1527661911,1527661912,1527661913,1527661914,1527661915,1527661916,1527661917,1527661918,1527661919,1527661920,1527661921,1527662108,1527662109,1527662110,1527662111,1527662112,1527662113,1527662114,1527662153,1527662154,1527662155,1527662156,1527662157,1527662158,1527662159,1527662160,1527662161,1527662162,1527662163,1527662164,1527662165,1527662166,1527662167,1527662168,1527662169,1527662170,1527662171,1527662172,1527662173,1527662174,1527662175,1527662176,1527662177,1527662364,1527662365,1527662366,1527662367,1527662368,1527662369,1527662370,1527662409,1527662410,1527662411,1527662412,1527662413,1527662414,1527662415,1527662416,1527662417,1527662418,1527662419,1527662420,1527662421,1527662422,1527662423,1527662424,1527662425,1527662426,1527662427,1527662428,1527662429,1527662430,1527662431,1527662432,1527662433,1527662620,1527662621,1527662622,1527662623,1527662624,1527662625,1527662626,1527662627,1527662664,1527662665,1527662666,1527662667,1527662668,1527662669,1527662670,1527662671,1527662672,1527662673,1527662674,1527662675,1527662676,1527662677,1527662678,1527662679,1527662680,1527662681,1527662682,1527662683,1527662684,1527662685,1527662686,1527662687,1527662688,1527662689,1527662876,1527662877,1527662878,1527662879,1527662880,1527662881,1527662882,1527662883,1527662884,1527662885,1527662886,1527662899,1527662900,1527662901,1527662902,1527662903,1527662904,1527662917,1527662918,1527662919,1527662920,1527662921,1527662922,1527662923,1527662924,1527662925,1527662926,1527662927,1527662928,1527662929,1527662930,1527662931,1527662932,1527662933,1527662934,1527662935,1527662936,1527662937,1527662938,1527662939,1527662940,1527662941,1527662942,1527662943,1527662944,1527662945,1527663132,1527663133,1527663134,1527663135,1527663136,1527663137,1527663138,1527663139,1527663140,1527663141,1527663142,1527663155,1527663156,1527663157,1527663158,1527663159,1527663160,1527663173,1527663174,1527663175,1527663176,1527663177,1527663178,1527663179,1527663180,1527663181,1527663182,1527663183,1527663184,1527663185,1527663186,1527663187,1527663188,1527663189,1527663190,1527663191,1527663192,1527663193,1527663194,1527663195,1527663196,1527663197,1527663198,1527663199,1527663200,1527663201,1527663388,1527663389,1527663390,1527663391,1527663392,1527663393,1527663394,1527663395,1527663396,1527663397,1527663398,1527663411,1527663412,1527663413,1527663414,1527663415,1527663416,1527663429,1527663430,1527663431,1527663432,1527663433,1527663434,1527663435,1527663436,1527663437,1527663438,1527663439,1527663440,1527663441,1527663442,1527663443,1527663444,1527663445,1527663446,1527663447,1527663448,1527663449,1527663450,1527663451,1527663452,1527663453,1527663454,1527663455,1527663456,1527663457,1527663644,1527663645,1527663646,1527663647,1527663648,1527663649,1527663650,1527663651,1527663652,1527663653,1527663654,1527663667,1527663668,1527663669,1527663670,1527663671,1527663672,1527663685,1527663686,1527663687,1527663688,1527663689,1527663690,1527663691,1527663692,1527663693,1527663694,1527663695,1527663696,1527663697,1527663698,1527663699,1527663700,1527663701,1527663702,1527663703,1527663704,1527663705,1527663706,1527663707,1527663708,1527663709,1527663710,1527663711,1527663712,1527663713,1527663900,1527663901,1527663902,1527663903,1527663904,1527663905,1527663906,1527663907,1527663908,1527663909,1527663910,1527663923,1527663924,1527663925,1527663926,1527663927,1527663928,1527663941,1527663942,1527663943,1527663944,1527663945,1527663946,1527663947,1527663948,1527663949,1527663950,1527663951,1527663952,1527663953,1527663954,1527663955,1527663956,1527663957,1527663958,1527663959,1527663960,1527663961,1527663962,1527663963,1527663964,1527663965,1527663966,1527663967,1527663968,1527663969,1527664156,1527664157,1527664158,1527664159,1527664160,1527664161,1527664162,1527664163,1527664164,1527664165,1527664166,1527664179,1527664180,1527664181,1527664182,1527664183,1527664184,1527664197,1527664198,1527664199,1527664200,1527664201,1527664202,1527664203,1527664204,1527664205,1527664206,1527664207,1527664208,1527664209,1527664210,1527664211,1527664212,1527664213,1527664214,1527664215,1527664216,1527664217,1527664218,1527664219,1527664220,1527664221,1527664222,1527664223,1527664224,1527664225,1527664412,1527664413,1527664414,1527664415,1527664416,1527664417,1527664418,1527664419,1527664420,1527664421,1527664422,1527664435,1527664436,1527664437,1527664438,1527664439,1527664440,1527664453,1527664454,1527664455,1527664456,1527664457,1527664458,1527664459,1527664460,1527664461,1527664462,1527664463,1527664464,1527664465,1527664466,1527664467,1527664468,1527664469,1527664470,1527664471,1527664472,1527664473,1527664474,1527664475,1527664476,1527664477,1527664478,1527664479,1527664480,1527664481,1527664668,1527664669,1527664670,1527664671,1527664672,1527664673,1527664674,1527664675,1527664676,1527664677,1527664678,1527664691,1527664692,1527664693,1527664694,1527664695,1527664696,1527664709,1527664710,1527664711,1527664712,1527664713,1527664714,1527664715,1527664716,1527664717,1527664718,1527664719,1527664720,1527664721,1527664722,1527664723,1527664724,1527664725,1527664726,1527664727,1527664728,1527664729,1527664730,1527664731,1527664732,1527664733,1527664734,1527664735,1527664736,1527664737,1527664924,1527664925,1527664926,1527664927,1527664928,1527664929,1527664930,1527664931,1527664932,1527664933,1527664934,1527664935,1527664936,1527664937,1527664938,1527664939,1527664940,1527664941,1527664942,1527664943,1527664944,1527664945,1527664946,1527664947,1527664948,1527664949,1527664950,1527664951,1527664952,1527664953,1527664954,1527664955,1527664956,1527664957,1527664958,1527664959,1527664960,1527664961,1527664962,1527664963,1527664964,1527664965,1527664966,1527664967,1527664968,1527664969,1527664970,1527664971,1527664972,1527664973,1527664974,1527664975,1527664976,1527664977,1527664978,1527664979,1527664980,1527664981,1527664982,1527664983,1527664984,1527664985,1527664986,1527664987,1527664988,1527664989,1527664990,1527664991,1527664992,1527664993,1527665180,1527665181,1527665182,1527665183,1527665184,1527665185,1527665186,1527665187,1527665188,1527665189,1527665190,1527665191,1527665192,1527665193,1527665194,1527665195,1527665196,1527665197,1527665198,1527665199,1527665200,1527665201,1527665202,1527665203,1527665204,1527665205,1527665206,1527665207,1527665208,1527665209,1527665210,1527665211,1527665212,1527665213,1527665214,1527665215,1527665216,1527665217,1527665218,1527665219,1527665220,1527665221,1527665222,1527665223,1527665224,1527665225,1527665226,1527665227,1527665228,1527665229,1527665230,1527665231,1527665232,1527665233,1527665234,1527665235,1527665236,1527665237,1527665238,1527665239,1527665240,1527665241,1527665242,1527665243,1527665244,1527665245,1527665246,1527665247,1527665248,1527665249,1527665436,1527665437,1527665438,1527665439,1527665440,1527665441,1527665442,1527665443,1527665444,1527665445,1527665446,1527665447,1527665448,1527665449,1527665450,1527665451,1527665452,1527665453,1527665454,1527665455,1527665456,1527665457,1527665458,1527665459,1527665460,1527665461,1527665462,1527665463,1527665464,1527665465,1527665466,1527665467,1527665468,1527665469,1527665470,1527665471,1527665472,1527665473,1527665474,1527665475,1527665476,1527665477,1527665478,1527665479,1527665480,1527665481,1527665482,1527665483,1527665484,1527665485,1527665486,1527665487,1527665488,1527665489,1527665490,1527665491,1527665492,1527665493,1527665494,1527665495,1527665496,1527665497,1527665498,1527665499,1527665500,1527665501,1527665502,1527665503,1527665504,1527665505,1527665692,1527665693,1527665694,1527665695,1527665696,1527665697,1527665698,1527665699,1527665700,1527665701,1527665702,1527665703,1527665704,1527665705,1527665706,1527665707,1527665708,1527665709,1527665710,1527665711,1527665712,1527665713,1527665714,1527665715,1527665716,1527665717,1527665718,1527665719,1527665720,1527665721,1527665722,1527665723,1527665724,1527665725,1527665726,1527665727,1527665728,1527665729,1527665730,1527665731,1527665732,1527665733,1527665734,1527665735,1527665736,1527665737,1527665738,1527665739,1527665740,1527665741,1527665742,1527665743,1527665744,1527665745,1527665746,1527665747,1527665748,1527665749,1527665750,1527665751,1527665752,1527665753,1527665754,1527665755,1527665756,1527665757,1527665758,1527665759,1527665760,1527665761,1527665948,1527665949,1527665950,1527665951,1527665952,1527665953,1527665954,1527665955,1527665956,1527665957,1527665958,1527665959,1527665960,1527665961,1527665962,1527665963,1527665964,1527665965,1527665966,1527665967,1527665968,1527665969,1527665970,1527665971,1527665972,1527665973,1527665974,1527665975,1527665976,1527665977,1527665978,1527665979,1527665980,1527665981,1527665982,1527665983,1527665984,1527665985,1527665986,1527665987,1527665988,1527665989,1527665990,1527665991,1527665992,1527665993,1527665994,1527665995,1527665996,1527665997,1527665998,1527665999,1527666000,1527666001,1527666002,1527666003,1527666004,1527666005,1527666006,1527666007,1527666008,1527666009,1527666010,1527666011,1527666012,1527666013,1527666014,1527666015,1527666016,1527666017,1527666204,1527666205,1527666206,1527666207,1527666208,1527666209,1527666210,1527666211,1527666212,1527666213,1527666214,1527666215,1527666216,1527666217,1527666218,1527666219,1527666220,1527666221,1527666222,1527666223,1527666224,1527666225,1527666226,1527666227,1527666228,1527666229,1527666230,1527666231,1527666232,1527666233,1527666234,1527666235,1527666236,1527666237,1527666238,1527666239,1527666240,1527666241,1527666242,1527666243,1527666244,1527666245,1527666246,1527666247,1527666248,1527666249,1527666250,1527666251,1527666252,1527666253,1527666254,1527666255,1527666256,1527666257,1527666258,1527666259,1527666260,1527666261,1527666262,1527666263,1527666264,1527666265,1527666266,1527666267,1527666268,1527666269,1527666270,1527666271,1527666272,1527666273,1527666460,1527666461,1527666462,1527666463,1527666464,1527666465,1527666466,1527666467,1527666468,1527666469,1527666470,1527666471,1527666472,1527666473,1527666474,1527666475,1527666476,1527666477,1527666478,1527666479,1527666480,1527666481,1527666482,1527666483,1527666484,1527666485,1527666486,1527666487,1527666488,1527666489,1527666490,1527666491,1527666492,1527666493,1527666494,1527666495,1527666496,1527666497,1527666498,1527666499,1527666500,1527666501,1527666502,1527666503,1527666504,1527666505,1527666506,1527666507,1527666508,1527666509,1527666510,1527666511,1527666512,1527666513,1527666514,1527666515,1527666516,1527666517,1527666518,1527666519,1527666520,1527666521,1527666522,1527666523,1527666524,1527666525,1527666526,1527666527,1527666528,1527666529,1527666716,1527666717,1527666718,1527666719,1527666720,1527666721,1527666722,1527666723,1527666724,1527666725,1527666726,1527666727,1527666728,1527666729,1527666730,1527666731,1527666732,1527666733,1527666734,1527666735,1527666736,1527666737,1527666738,1527666739,1527666740,1527666741,1527666742,1527666743,1527666744,1527666745,1527666746,1527666747,1527666748,1527666749,1527666750,1527666751,1527666752,1527666753,1527666754,1527666755,1527666756,1527666757,1527666758,1527666759,1527666760,1527666761,1527666762,1527666763,1527666764,1527666765,1527666766,1527666767,1527666768,1527666769,1527666770,1527666771,1527666772,1527666773,1527666774,1527666775,1527666776,1527666777,1527666778,1527666779,1527666780,1527666781,1527666782,1527666783,1527666784,1527666785,1527666972,1527666973,1527666974,1527666975,1527666976,1527666977,1527666978,1527666979,1527666980,1527666981,1527666982,1527666983,1527666984,1527666985,1527666986,1527666987,1527666988,1527666989,1527666990,1527666991,1527666992,1527666993,1527666994,1527666995,1527666996,1527666997,1527667007,1527667008,1527667009,1527667010,1527667011,1527667012,1527667013,1527667014,1527667015,1527667016,1527667017,1527667018,1527667019,1527667020,1527667021,1527667022,1527667023,1527667024,1527667025,1527667026,1527667027,1527667028,1527667029,1527667030,1527667031,1527667032,1527667033,1527667034,1527667035,1527667036,1527667037,1527667038,1527667039,1527667040,1527667041,1527667227,1527667228,1527667229,1527667230,1527667231,1527667232,1527667233,1527667234,1527667235,1527667236,1527667237,1527667238,1527667239,1527667240,1527667241,1527667242,1527667243,1527667244,1527667245,1527667246,1527667247,1527667248,1527667249,1527667250,1527667251,1527667252,1527667264,1527667265,1527667266,1527667267,1527667268,1527667269,1527667270,1527667271,1527667272,1527667273,1527667274,1527667275,1527667276,1527667277,1527667278,1527667279,1527667280,1527667281,1527667282,1527667283,1527667284,1527667285,1527667286,1527667287,1527667288,1527667289,1527667290,1527667291,1527667292,1527667293,1527667294,1527667295,1527667296,1527667297,1366777415,1366777414,1366777413,1366777412,1359895319,1359895320,1359895321,1359895322,1527667483,1527667484,1527667485,1527667486,1527667487,1527667488,1527667489,1527667490,1527667491,1527667492,1527667493,1527667494,1527667495,1527667496,1527667497,1527667498,1527667499,1527667500,1527667501,1527667502,1527667503,1527667504,1527667505,1527667506,1527667507,1527667508,1527667520,1527667521,1527667522,1527667523,1527667524,1527667525,1527667526,1527667527,1527667528,1527667529,1527667530,1527667531,1527667532,1527667533,1527667534,1527667535,1527667536,1527667537,1527667538,1527667539,1527667540,1527667541,1527667542,1527667543,1527667544,1527667545,1527667546,1527667547,1527667548,1527667549,1527667550,1527667551,1527667552,1527667553,1366777411,1366777410,1366777409,1366777408,1359895575,1359895576,1359895577,1359895578,1527667739,1527667740,1527667741,1527667742,1527667743,1527667744,1527667745,1527667746,1527667747,1527667748,1527667749,1527667750,1527667751,1527667752,1527667753,1527667754,1527667755,1527667756,1527667757,1527667758,1527667759,1527667760,1527667761,1527667762,1527667763,1527667764,1527667776,1527667777,1527667778,1527667779,1527667780,1527667781,1527667782,1527667783,1527667784,1527667785,1527667786,1527667787,1527667788,1527667789,1527667790,1527667791,1527667792,1527667793,1527667794,1527667795,1527667796,1527667797,1527667798,1527667799,1527667800,1527667801,1527667802,1527667803,1527667804,1527667805,1527667806,1527667807,1527667808,1527667809,1366777407,1366777406,1366777405,1366777404,1359895831,1359895832,1359895833,1359895834,1527667995,1527667996,1527667997,1527667998,1527667999,1527668000,1527668001,1527668002,1527668003,1527668004,1527668005,1527668006,1527668007,1527668008,1527668009,1527668010,1527668011,1527668012,1527668013,1527668014,1527668015,1527668016,1527668017,1527668018,1527668019,1527668020,1527668032,1527668033,1527668034,1527668035,1527668036,1527668037,1527668038,1527668039,1527668040,1527668041,1527668042,1527668043,1527668044,1527668045,1527668046,1527668047,1527668048,1527668049,1527668050,1527668051,1527668052,1527668053,1527668054,1527668055,1527668056,1527668057,1527668058,1527668059,1527668060,1527668061,1527668062,1527668063,1527668064,1527668065,1366777403,1366777402,1366777401,1366777400,1359896087,1359896088,1359896089,1359896090,1527668251,1527668252,1527668253,1527668254,1527668255,1527668256,1527668257,1527668258,1527668259,1527668260,1527668261,1527668262,1527668263,1527668264,1527668265,1527668266,1527668267,1527668268,1527668269,1527668270,1527668271,1527668272,1527668273,1527668274,1527668275,1527668276,1527668288,1527668289,1527668290,1527668291,1527668292,1527668293,1527668294,1527668295,1527668296,1527668297,1527668298,1527668299,1527668300,1527668301,1527668302,1527668303,1527668304,1527668305,1527668306,1527668307,1527668308,1527668309,1527668310,1527668311,1527668312,1527668313,1527668314,1527668315,1527668316,1527668317,1527668318,1527668319,1527668320,1527668321,1366777399,1366777398,1366777397,1366777396,1359896343,1359896344,1359896345,1359896346,1527668507,1527668508,1527668509,1527668510,1527668511,1527668512,1527668513,1527668514,1527668515,1527668516,1527668517,1527668518,1527668519,1527668520,1527668521,1527668522,1527668523,1527668524,1527668525,1527668526,1527668527,1527668528,1527668529,1527668530,1527668531,1527668532,1527668544,1527668545,1527668546,1527668547,1527668548,1527668549,1527668550,1527668551,1527668552,1527668553,1527668554,1527668555,1527668556,1527668557,1527668558,1527668559,1527668560,1527668561,1527668562,1527668563,1527668564,1527668565,1527668566,1527668567,1527668568,1527668569,1527668570,1527668571,1527668572,1527668573,1527668574,1527668575,1527668576,1527668577,1366777395,1366777394,1366777393,1366777392,1359896599,1359896600,1359896601,1359896602,1527668763,1527668764,1527668765,1527668766,1527668767,1527668768,1527668769,1527668770,1527668771,1527668772,1527668773,1527668774,1527668775,1527668776,1527668777,1527668778,1527668779,1527668780,1527668781,1527668782,1527668783,1527668784,1527668785,1527668786,1527668787,1527668788,1527668800,1527668801,1527668802,1527668803,1527668804,1527668805,1527668806,1527668807,1527668808,1527668809,1527668810,1527668811,1527668812,1527668813,1527668814,1527668815,1527668816,1527668817,1527668818,1527668819,1527668820,1527668821,1527668822,1527668823,1527668824,1527668825,1527668826,1527668827,1527668828,1527668829,1527668830,1527668831,1527668832,1527668833,1366777391,1366777390,1366777389,1366777388,1359896855,1359896856,1359896857,1359896858,1527669019,1527669020,1527669021,1527669022,1527669023,1527669024,1527669025,1527669026,1527669027,1527669028,1527669029,1527669030,1527669031,1527669032,1527669033,1527669034,1527669035,1527669036,1527669037,1527669038,1527669039,1527669040,1527669041,1527669042,1527669043,1527669044,1527669056,1527669057,1527669058,1527669059,1527669060,1527669061,1527669062,1527669063,1527669064,1527669065,1527669066,1527669067,1527669068,1527669069,1527669070,1527669071,1527669072,1527669073,1527669074,1527669075,1527669076,1527669077,1527669078,1527669079,1527669080,1527669081,1527669082,1527669083,1527669084,1527669085,1527669086,1527669087,1527669088,1527669089,1359942491,1359942492,1359942493,1359942494,1359942495,1359942496,1359942497,1359942747,1359942748,1359942749,1359942750,1359942751,1359942752,1359942753,1359943003,1359943004,1359943005,1359943006,1359943007,1359943008,1359943009,1359943259,1359943260,1359943261,1359943262,1359943263,1359943264,1359943265,1359943515,1359943516,1359943517,1359943518,1359943519,1359943520,1359943521,1359943771,1359943772,1359943773,1359943774,1359943775,1359943776,1359943777,1359944027,1359944028,1359944029,1359944030,1359944031,1359944032,1359944033,1359944283,1359944284,1359944285,1359944286,1359944287,1359944288,1359944289,1527716698,1527716699,1527716700,1527716701,1527716702,1527716703,1527716704,1527716705,1527716919,1527716920,1527716921,1527716922,1527716923,1527716924,1527716925,1527716926,1527716927,1527716928,1527716929,1527716930,1527716931,1527716932,1527716933,1527716934,1527716935,1527716936,1527716937,1527716938,1527716939,1527716940,1527716941,1527716942,1527716943,1527716944,1527716945,1527716946,1527716947,1527716948,1527716949,1527716950,1527716951,1527716952,1527716953,1527716954,1527716955,1527716956,1527716957,1527716958,1527716959,1527716960,1527716961,1527717175,1527717176,1527717177,1527717178,1527717179,1527717180,1527717181,1527717182,1527717183,1527717184,1527717185,1527717186,1527717187,1527717188,1527717189,1527717190,1527717191,1527717192,1527717193,1527717194,1527717195,1527717196,1527717197,1527717198,1527717199,1527717200,1527717201,1527717202,1527717203,1527717204,1527717205,1527717206,1527717207,1527717208,1527717209,1527717210,1527717211,1527717212,1527717213,1527717214,1527717215,1527717216,1527717217,1527717431,1527717432,1527717433,1527717434,1527717435,1527717436,1527717437,1527717438,1527717439,1527717440,1527717441,1527717442,1527717443,1527717444,1527717445,1527717446,1527717447,1527717448,1527717449,1527717450,1527717451,1527717452,1527717453,1527717454,1527717455,1527717456,1527717457,1527717458,1527717459,1527717460,1527717461,1527717462,1527717463,1527717464,1527717465,1527717466,1527717467,1527717468,1527717469,1527717470,1527717471,1527717472,1527717473,1527717687,1527717688,1527717689,1527717690,1527717691,1527717692,1527717693,1527717694,1527717695,1527717696,1527717697,1527717698,1527717699,1527717700,1527717701,1527717702,1527717703,1527717704,1527717705,1527717706,1527717707,1527717708,1527717709,1527717710,1527717711,1527717712,1527717713,1527717714,1527717715,1527717716,1527717717,1527717718,1527717719,1527717720,1527717721,1527717722,1527717723,1527717724,1527717725,1527717726,1527717727,1527717728,1527717729,1527717943,1527717944,1527717945,1527717946,1527717947,1527717948,1527717949,1527717950,1527717951,1527717952,1527717953,1527717954,1527717955,1527717956,1527717957,1527717958,1527717959,1527717960,1527717961,1527717962,1527717963,1527717964,1527717965,1527717966,1527717967,1527717968,1527717969,1527717970,1527717971,1527717972,1527717973,1527717974,1527717975,1527717976,1527717977,1527717978,1527717979,1527717980,1527717981,1527717982,1527717983,1527717984,1527717985,1527718199,1527718200,1527718201,1527718202,1527718203,1527718204,1527718205,1527718206,1527718207,1527718208,1527718209,1527718210,1527718211,1527718212,1527718213,1527718214,1527718215,1527718216,1527718217,1527718218,1527718219,1527718220,1527718221,1527718222,1527718223,1527718224,1527718225,1527718226,1527718227,1527718228,1527718229,1527718230,1527718231,1527718232,1527718233,1527718234,1527718235,1527718236,1527718237,1527718238,1527718239,1527718240,1527718241,1527718455,1527718456,1527718457,1527718458,1527718459,1527718460,1527718461,1527718462,1527718463,1527718464,1527718465,1527718466,1527718467,1527718468,1527718469,1527718470,1527718471,1527718472,1527718473,1527718474,1527718475,1527718476,1527718477,1527718478,1527718479,1527718480,1527718481,1527718482,1527718483,1527718484,1527718485,1527718486,1527718487,1527718488,1527718489,1527718490,1527718491,1527718492,1527718493,1527718494,1527718495,1527718496,1527718497,1527718711,1527718712,1527718713,1527718714,1527718715,1527718716,1527718717,1527718718,1527718746,1527718747,1527718748,1527718749,1527718750,1527718751,1527718752,1527718753,1527718967,1527718968,1527718969,1527718970,1527718971,1527718972,1527718973,1527719003,1527719004,1527719005,1527719006,1527719007,1527719008,1527719009,1527719223,1527719224,1527719225,1527719226,1527719227,1527719228,1527719229,1527719259,1527719260,1527719261,1527719262,1527719263,1527719264,1527719265,1527719479,1527719480,1527719481,1527719482,1527719483,1527719484,1527719485,1527719515,1527719516,1527719517,1527719518,1527719519,1527719520,1527719521,1527719735,1527719736,1527719737,1527719738,1527719739,1527719740,1527719741,1527719771,1527719772,1527719773,1527719774,1527719775,1527719776,1527719777,1527719991,1527719992,1527719993,1527719994,1527719995,1527719996,1527719997,1527720027,1527720028,1527720029,1527720030,1527720031,1527720032,1527720033,1527720247,1527720248,1527720249,1527720250,1527720251,1527720252,1527720253,1527720283,1527720284,1527720285,1527720286,1527720287,1527720288,1527720289,1527720503,1527720504,1527720505,1527720506,1527720507,1527720508,1527720509,1527720539,1527720540,1527720541,1527720542,1527720543,1527720544,1527720545,1527720732,1527720733,1527720734,1527720735,1527720736,1527720737,1527720738,1527720759,1527720760,1527720761,1527720762,1527720763,1527720764,1527720765,1527720795,1527720796,1527720797,1527720798,1527720799,1527720800,1527720801,1527720988,1527720989,1527720990,1527720991,1527720992,1527720993,1527720994,1527721015,1527721016,1527721017,1527721018,1527721019,1527721020,1527721021,1527721051,1527721052,1527721053,1527721054,1527721055,1527721056,1527721057,1527721244,1527721245,1527721246,1527721247,1527721248,1527721249,1527721250,1527721271,1527721272,1527721273,1527721274,1527721275,1527721276,1527721277,1527721306,1527721307,1527721308,1527721309,1527721310,1527721311,1527721312,1527721313,1527721500,1527721501,1527721502,1527721503,1527721504,1527721505,1527721506,1527721527,1527721528,1527721529,1527721530,1527721531,1527721532,1527721533,1527721545,1527721546,1527721547,1527721548,1527721549,1527721550,1527721551,1527721552,1527721553,1527721554,1527721555,1527721556,1527721557,1527721558,1527721559,1527721560,1527721561,1527721562,1527721563,1527721564,1527721565,1527721566,1527721567,1527721568,1527721569,1527721756,1527721757,1527721758,1527721759,1527721760,1527721761,1527721762,1527721783,1527721784,1527721785,1527721786,1527721787,1527721788,1527721789,1527721801,1527721802,1527721803,1527721804,1527721805,1527721806,1527721807,1527721808,1527721809,1527721810,1527721811,1527721812,1527721813,1527721814,1527721815,1527721816,1527721817,1527721818,1527721819,1527721820,1527721821,1527721822,1527721823,1527721824,1527721825,1527722012,1527722013,1527722014,1527722015,1527722016,1527722017,1527722018,1527722039,1527722040,1527722041,1527722042,1527722043,1527722044,1527722045,1527722057,1527722058,1527722059,1527722060,1527722061,1527722062,1527722063,1527722064,1527722065,1527722066,1527722067,1527722068,1527722069,1527722070,1527722071,1527722072,1527722073,1527722074,1527722075,1527722076,1527722077,1527722078,1527722079,1527722080,1527722081,1527722268,1527722269,1527722270,1527722271,1527722272,1527722273,1527722274,1527722295,1527722296,1527722297,1527722298,1527722299,1527722300,1527722301,1527722313,1527722314,1527722315,1527722316,1527722317,1527722318,1527722319,1527722320,1527722321,1527722322,1527722323,1527722324,1527722325,1527722326,1527722327,1527722328,1527722329,1527722330,1527722331,1527722332,1527722333,1527722334,1527722335,1527722336,1527722337,1527722524,1527722525,1527722526,1527722527,1527722528,1527722529,1527722530,1527722551,1527722552,1527722553,1527722554,1527722555,1527722556,1527722557,1527722569,1527722570,1527722571,1527722572,1527722573,1527722574,1527722575,1527722576,1527722577,1527722578,1527722579,1527722580,1527722581,1527722582,1527722583,1527722584,1527722585,1527722586,1527722587,1527722588,1527722589,1527722590,1527722591,1527722592,1527722593,1527722780,1527722781,1527722782,1527722783,1527722784,1527722785,1527722786,1527722807,1527722808,1527722809,1527722810,1527722811,1527722812,1527722813,1527722825,1527722826,1527722827,1527722828,1527722829,1527722830,1527722831,1527722832,1527722833,1527722834,1527722835,1527722836,1527722837,1527722838,1527722839,1527722840,1527722841,1527722842,1527722843,1527722844,1527722845,1527722846,1527722847,1527722848,1527722849,1527723036,1527723037,1527723038,1527723039,1527723040,1527723041,1527723042,1527723063,1527723064,1527723065,1527723066,1527723067,1527723068,1527723069,1527723081,1527723082,1527723083,1527723084,1527723085,1527723086,1527723087,1527723088,1527723089,1527723090,1527723091,1527723092,1527723093,1527723094,1527723095,1527723096,1527723097,1527723098,1527723099,1527723100,1527723101,1527723102,1527723103,1527723104,1527723105,1527723292,1527723293,1527723294,1527723295,1527723296,1527723297,1527723298,1527723319,1527723320,1527723321,1527723322,1527723323,1527723324,1527723325,1527723337,1527723338,1527723339,1527723340,1527723341,1527723342,1527723343,1527723344,1527723354,1527723355,1527723356,1527723357,1527723358,1527723359,1527723360,1527723361,1527723548,1527723549,1527723550,1527723551,1527723552,1527723553,1527723554,1527723575,1527723576,1527723577,1527723578,1527723579,1527723580,1527723581,1527723593,1527723594,1527723595,1527723596,1527723597,1527723598,1527723599,1527723611,1527723612,1527723613,1527723614,1527723615,1527723616,1527723617,1527723804,1527723805,1527723806,1527723807,1527723808,1527723809,1527723810,1527723831,1527723832,1527723833,1527723834,1527723835,1527723836,1527723837,1527723849,1527723850,1527723851,1527723852,1527723853,1527723854,1527723855,1527723867,1527723868,1527723869,1527723870,1527723871,1527723872,1527723873,1527724060,1527724061,1527724062,1527724063,1527724064,1527724065,1527724066,1527724087,1527724088,1527724089,1527724090,1527724091,1527724092,1527724093,1527724105,1527724106,1527724107,1527724108,1527724109,1527724110,1527724111,1527724123,1527724124,1527724125,1527724126,1527724127,1527724128,1527724129,1527724316,1527724317,1527724318,1527724319,1527724320,1527724321,1527724322,1527724343,1527724344,1527724345,1527724346,1527724347,1527724348,1527724349,1527724361,1527724362,1527724363,1527724364,1527724365,1527724366,1527724367,1527724379,1527724380,1527724381,1527724382,1527724383,1527724384,1527724385,1527724572,1527724573,1527724574,1527724575,1527724576,1527724577,1527724578,1527724599,1527724600,1527724601,1527724602,1527724603,1527724604,1527724605,1527724617,1527724618,1527724619,1527724620,1527724621,1527724622,1527724623,1527724635,1527724636,1527724637,1527724638,1527724639,1527724640,1527724641,1527724828,1527724829,1527724830,1527724831,1527724832,1527724833,1527724834,1527724855,1527724856,1527724857,1527724858,1527724859,1527724860,1527724861,1527724873,1527724874,1527724875,1527724876,1527724877,1527724878,1527724879,1527724891,1527724892,1527724893,1527724894,1527724895,1527724896,1527724897,1527725084,1527725085,1527725086,1527725087,1527725088,1527725089,1527725090,1527725111,1527725112,1527725113,1527725114,1527725115,1527725116,1527725117,1527725129,1527725130,1527725131,1527725132,1527725133,1527725134,1527725135,1527725147,1527725148,1527725149,1527725150,1527725151,1527725152,1527725153,1527725340,1527725341,1527725342,1527725343,1527725344,1527725345,1527725346,1527725367,1527725368,1527725369,1527725370,1527725371,1527725372,1527725373,1527725385,1527725386,1527725387,1527725388,1527725389,1527725390,1527725391,1527725403,1527725404,1527725405,1527725406,1527725407,1527725408,1527725409,1527725596,1527725597,1527725598,1527725599,1527725600,1527725601,1527725602,1527725641,1527725642,1527725643,1527725644,1527725645,1527725646,1527725647,1527725659,1527725660,1527725661,1527725662,1527725663,1527725664,1527725665,1527725852,1527725853,1527725854,1527725855,1527725856,1527725857,1527725858,1527725897,1527725898,1527725899,1527725900,1527725901,1527725902,1527725903,1527725904,1527725914,1527725915,1527725916,1527725917,1527725918,1527725919,1527725920,1527725921,1527726108,1527726109,1527726110,1527726111,1527726112,1527726113,1527726114,1527726153,1527726154,1527726155,1527726156,1527726157,1527726158,1527726159,1527726160,1527726161,1527726162,1527726163,1527726164,1527726165,1527726166,1527726167,1527726168,1527726169,1527726170,1527726171,1527726172,1527726173,1527726174,1527726175,1527726176,1527726177,1527726364,1527726365,1527726366,1527726367,1527726368,1527726369,1527726370,1527726409,1527726410,1527726411,1527726412,1527726413,1527726414,1527726415,1527726416,1527726417,1527726418,1527726419,1527726420,1527726421,1527726422,1527726423,1527726424,1527726425,1527726426,1527726427,1527726428,1527726429,1527726430,1527726431,1527726432,1527726433,1527726620,1527726621,1527726622,1527726623,1527726624,1527726625,1527726626,1527726665,1527726666,1527726667,1527726668,1527726669,1527726670,1527726671,1527726672,1527726673,1527726674,1527726675,1527726676,1527726677,1527726678,1527726679,1527726680,1527726681,1527726682,1527726683,1527726684,1527726685,1527726686,1527726687,1527726688,1527726689,1527726876,1527726877,1527726878,1527726879,1527726880,1527726881,1527726882,1527726921,1527726922,1527726923,1527726924,1527726925,1527726926,1527726927,1527726928,1527726929,1527726930,1527726931,1527726932,1527726933,1527726934,1527726935,1527726936,1527726937,1527726938,1527726939,1527726940,1527726941,1527726942,1527726943,1527726944,1527726945,1527727132,1527727133,1527727134,1527727135,1527727136,1527727137,1527727138,1527727177,1527727178,1527727179,1527727180,1527727181,1527727182,1527727183,1527727184,1527727185,1527727186,1527727187,1527727188,1527727189,1527727190,1527727191,1527727192,1527727193,1527727194,1527727195,1527727196,1527727197,1527727198,1527727199,1527727200,1527727201,1527727388,1527727389,1527727390,1527727391,1527727392,1527727393,1527727394,1527727433,1527727434,1527727435,1527727436,1527727437,1527727438,1527727439,1527727440,1527727441,1527727442,1527727443,1527727444,1527727445,1527727446,1527727447,1527727448,1527727449,1527727450,1527727451,1527727452,1527727453,1527727454,1527727455,1527727456,1527727457,1527727644,1527727645,1527727646,1527727647,1527727648,1527727649,1527727650,1527727689,1527727690,1527727691,1527727692,1527727693,1527727694,1527727695,1527727696,1527727697,1527727698,1527727699,1527727700,1527727701,1527727702,1527727703,1527727704,1527727705,1527727706,1527727707,1527727708,1527727709,1527727710,1527727711,1527727712,1527727713,1527727900,1527727901,1527727902,1527727903,1527727904,1527727905,1527727906,1527727945,1527727946,1527727947,1527727948,1527727949,1527727950,1527727951,1527727952,1527727953,1527727954,1527727955,1527727956,1527727957,1527727958,1527727959,1527727960,1527727961,1527727962,1527727963,1527727964,1527727965,1527727966,1527727967,1527727968,1527727969,1527728156,1527728157,1527728158,1527728159,1527728160,1527728161,1527728162,1527728163,1527728200,1527728201,1527728202,1527728203,1527728204,1527728205,1527728206,1527728207,1527728208,1527728209,1527728210,1527728211,1527728212,1527728213,1527728214,1527728215,1527728216,1527728217,1527728218,1527728219,1527728220,1527728221,1527728222,1527728223,1527728224,1527728225,1527728412,1527728413,1527728414,1527728415,1527728416,1527728417,1527728418,1527728419,1527728420,1527728421,1527728422,1527728423,1527728424,1527728425,1527728426,1527728427,1527728428,1527728429,1527728430,1527728431,1527728432,1527728433,1527728434,1527728435,1527728436,1527728437,1527728438,1527728439,1527728440,1527728441,1527728442,1527728443,1527728444,1527728445,1527728446,1527728447,1527728448,1527728449,1527728450,1527728451,1527728452,1527728453,1527728454,1527728455,1527728456,1527728457,1527728458,1527728459,1527728460,1527728461,1527728462,1527728463,1527728464,1527728465,1527728466,1527728467,1527728468,1527728469,1527728470,1527728471,1527728472,1527728473,1527728474,1527728475,1527728476,1527728477,1527728478,1527728479,1527728480,1527728481,1527728668,1527728669,1527728670,1527728671,1527728672,1527728673,1527728674,1527728675,1527728676,1527728677,1527728678,1527728679,1527728680,1527728681,1527728682,1527728683,1527728684,1527728685,1527728686,1527728687,1527728688,1527728689,1527728690,1527728691,1527728692,1527728693,1527728694,1527728695,1527728696,1527728697,1527728698,1527728699,1527728700,1527728701,1527728702,1527728703,1527728704,1527728705,1527728706,1527728707,1527728708,1527728709,1527728710,1527728711,1527728712,1527728713,1527728714,1527728715,1527728716,1527728717,1527728718,1527728719,1527728720,1527728721,1527728722,1527728723,1527728724,1527728725,1527728726,1527728727,1527728728,1527728729,1527728730,1527728731,1527728732,1527728733,1527728734,1527728735,1527728736,1527728737,1527728924,1527728925,1527728926,1527728927,1527728928,1527728929,1527728930,1527728931,1527728932,1527728933,1527728934,1527728935,1527728936,1527728937,1527728938,1527728939,1527728940,1527728941,1527728942,1527728943,1527728944,1527728945,1527728946,1527728947,1527728948,1527728949,1527728950,1527728951,1527728952,1527728953,1527728954,1527728955,1527728956,1527728957,1527728958,1527728959,1527728960,1527728961,1527728962,1527728963,1527728964,1527728965,1527728966,1527728967,1527728968,1527728969,1527728970,1527728971,1527728972,1527728973,1527728974,1527728975,1527728976,1527728977,1527728978,1527728979,1527728980,1527728981,1527728982,1527728983,1527728984,1527728985,1527728986,1527728987,1527728988,1527728989,1527728990,1527728991,1527728992,1527728993,1527729180,1527729181,1527729182,1527729183,1527729184,1527729185,1527729186,1527729187,1527729188,1527729189,1527729190,1527729191,1527729192,1527729193,1527729194,1527729195,1527729196,1527729197,1527729198,1527729199,1527729200,1527729201,1527729202,1527729203,1527729204,1527729205,1527729206,1527729207,1527729208,1527729209,1527729210,1527729211,1527729212,1527729213,1527729214,1527729215,1527729216,1527729217,1527729218,1527729219,1527729220,1527729221,1527729222,1527729223,1527729224,1527729225,1527729226,1527729227,1527729228,1527729229,1527729230,1527729231,1527729232,1527729233,1527729234,1527729235,1527729236,1527729237,1527729238,1527729239,1527729240,1527729241,1527729242,1527729243,1527729244,1527729245,1527729246,1527729247,1527729248,1527729249,1527729436,1527729437,1527729438,1527729439,1527729440,1527729441,1527729442,1527729443,1527729444,1527729445,1527729446,1527729447,1527729448,1527729449,1527729450,1527729451,1527729452,1527729453,1527729454,1527729455,1527729456,1527729457,1527729458,1527729459,1527729460,1527729461,1527729462,1527729463,1527729464,1527729465,1527729466,1527729467,1527729468,1527729469,1527729470,1527729471,1527729472,1527729473,1527729474,1527729475,1527729476,1527729477,1527729478,1527729479,1527729480,1527729481,1527729482,1527729483,1527729484,1527729485,1527729486,1527729487,1527729488,1527729489,1527729490,1527729491,1527729492,1527729493,1527729494,1527729495,1527729496,1527729497,1527729498,1527729499,1527729500,1527729501,1527729502,1527729503,1527729504,1527729505,1527729692,1527729693,1527729694,1527729695,1527729696,1527729697,1527729698,1527729699,1527729700,1527729701,1527729702,1527729703,1527729704,1527729705,1527729706,1527729707,1527729708,1527729709,1527729710,1527729711,1527729712,1527729713,1527729714,1527729715,1527729716,1527729717,1527729718,1527729719,1527729720,1527729721,1527729722,1527729723,1527729724,1527729725,1527729726,1527729727,1527729728,1527729729,1527729730,1527729731,1527729732,1527729733,1527729734,1527729735,1527729736,1527729737,1527729738,1527729739,1527729740,1527729741,1527729742,1527729743,1527729744,1527729745,1527729746,1527729747,1527729748,1527729749,1527729750,1527729751,1527729752,1527729753,1527729754,1527729755,1527729756,1527729757,1527729758,1527729759,1527729760,1527729761,1527729948,1527729949,1527729950,1527729951,1527729952,1527729953,1527729954,1527729955,1527729956,1527729957,1527729958,1527729959,1527729960,1527729961,1527729962,1527729963,1527729964,1527729965,1527729966,1527729967,1527729968,1527729969,1527729970,1527729971,1527729972,1527729973,1527729974,1527729975,1527729976,1527729977,1527729978,1527729979,1527729980,1527729981,1527729982,1527729983,1527729984,1527729985,1527729986,1527729987,1527729988,1527729989,1527729990,1527729991,1527729992,1527729993,1527729994,1527729995,1527729996,1527729997,1527729998,1527729999,1527730000,1527730001,1527730002,1527730003,1527730004,1527730005,1527730006,1527730007,1527730008,1527730009,1527730010,1527730011,1527730012,1527730013,1527730014,1527730015,1527730016,1527730017,1527730204,1527730205,1527730206,1527730207,1527730208,1527730209,1527730210,1527730211,1527730212,1527730213,1527730214,1527730215,1527730216,1527730217,1527730218,1527730219,1527730220,1527730221,1527730222,1527730223,1527730224,1527730225,1527730226,1527730227,1527730228,1527730229,1527730230,1527730231,1527730232,1527730233,1527730234,1527730235,1527730236,1527730237,1527730238,1527730239,1527730240,1527730241,1527730242,1527730243,1527730244,1527730245,1527730246,1527730247,1527730248,1527730249,1527730250,1527730251,1527730252,1527730253,1527730254,1527730255,1527730256,1527730257,1527730258,1527730259,1527730260,1527730261,1527730262,1527730263,1527730264,1527730265,1527730266,1527730267,1527730268,1527730269,1527730270,1527730271,1527730272,1527730273,1527730460,1527730461,1527730462,1527730463,1527730464,1527730465,1527730466,1527730467,1527730468,1527730469,1527730470,1527730471,1527730472,1527730473,1527730474,1527730475,1527730476,1527730477,1527730478,1527730479,1527730480,1527730481,1527730482,1527730483,1527730484,1527730485,1527730486,1527730487,1527730488,1527730489,1527730490,1527730491,1527730492,1527730493,1527730494,1527730495,1527730496,1527730497,1527730498,1527730499,1527730500,1527730501,1527730502,1527730503,1527730504,1527730505,1527730506,1527730507,1527730508,1527730509,1527730510,1527730511,1527730512,1527730513,1527730514,1527730515,1527730516,1527730517,1527730518,1527730519,1527730520,1527730521,1527730522,1527730523,1527730524,1527730525,1527730526,1527730527,1527730528,1527730529,1527730716,1527730717,1527730718,1527730719,1527730720,1527730721,1527730722,1527730723,1527730724,1527730725,1527730726,1527730727,1527730728,1527730729,1527730730,1527730731,1527730732,1527730733,1527730734,1527730735,1527730736,1527730737,1527730738,1527730739,1527730740,1527730741,1527730742,1527730743,1527730744,1527730745,1527730746,1527730747,1527730748,1527730749,1527730750,1527730751,1527730752,1527730753,1527730754,1527730755,1527730756,1527730757,1527730758,1527730759,1527730760,1527730761,1527730762,1527730763,1527730764,1527730765,1527730766,1527730767,1527730768,1527730769,1527730770,1527730771,1527730772,1527730773,1527730774,1527730775,1527730776,1527730777,1527730778,1527730779,1527730780,1527730781,1527730782,1527730783,1527730784,1527730785,1527730972,1527730973,1527730974,1527730975,1527730976,1527730977,1527730978,1527730979,1527730980,1527730981,1527730982,1527730983,1527730984,1527730985,1527730986,1527730987,1527730988,1527730989,1527730990,1527730991,1527730992,1527730993,1527730994,1527730995,1527730996,1527730997,1527730998,1527730999,1527731000,1527731001,1527731002,1527731003,1527731004,1527731005,1527731006,1527731007,1527731008,1527731009,1527731010,1527731011,1527731012,1527731013,1527731014,1527731015,1527731016,1527731017,1527731018,1527731019,1527731020,1527731021,1527731022,1527731023,1527731024,1527731025,1527731026,1527731027,1527731028,1527731029,1527731030,1527731031,1527731032,1527731033,1527731034,1527731035,1527731036,1527731037,1527731038,1527731039,1527731040,1527731041,1527731228,1527731229,1527731230,1527731231,1527731232,1527731233,1527731234,1527731235,1527731236,1527731237,1527731238,1527731239,1527731240,1527731241,1527731242,1527731243,1527731244,1527731245,1527731246,1527731247,1527731248,1527731249,1527731250,1527731251,1527731252,1527731253,1527731254,1527731255,1527731256,1527731257,1527731258,1527731259,1527731260,1527731261,1527731262,1527731263,1527731264,1527731265,1527731266,1527731267,1527731268,1527731269,1527731270,1527731271,1527731272,1527731273,1527731274,1527731275,1527731276,1527731277,1527731278,1527731279,1527731280,1527731281,1527731282,1527731283,1527731284,1527731285,1527731286,1527731287,1527731288,1527731289,1527731290,1527731291,1527731292,1527731293,1527731294,1527731295,1527731296,1527731297,1527731484,1527731485,1527731486,1527731487,1527731488,1527731489,1527731490,1527731491,1527731492,1527731493,1527731494,1527731495,1527731496,1527731497,1527731498,1527731499,1527731500,1527731501,1527731502,1527731503,1527731504,1527731505,1527731506,1527731507,1527731508,1527731509,1527731510,1527731511,1527731512,1527731513,1527731514,1527731515,1527731516,1527731517,1527731518,1527731519,1527731520,1527731521,1527731522,1527731523,1527731524,1527731525,1527731526,1527731527,1527731528,1527731529,1527731530,1527731531,1527731532,1527731533,1527731534,1527731535,1527731536,1527731537,1527731538,1527731539,1527731540,1527731541,1527731542,1527731543,1527731544,1527731545,1527731546,1527731547,1527731548,1527731549,1527731550,1527731551,1527731552,1527731553,1527731740,1527731741,1527731742,1527731743,1527731744,1527731745,1527731746,1527731747,1527731748,1527731749,1527731750,1527731751,1527731752,1527731753,1527731754,1527731755,1527731756,1527731757,1527731758,1527731759,1527731760,1527731761,1527731762,1527731763,1527731764,1527731765,1527731766,1527731767,1527731768,1527731769,1527731770,1527731771,1527731772,1527731773,1527731774,1527731775,1527731776,1527731777,1527731778,1527731779,1527731780,1527731781,1527731782,1527731783,1527731784,1527731785,1527731786,1527731787,1527731788,1527731789,1527731790,1527731791,1527731792,1527731793,1527731794,1527731795,1527731796,1527731797,1527731798,1527731799,1527731800,1527731801,1527731802,1527731803,1527731804,1527731805,1527731806,1527731807,1527731808,1527731809,1527731996,1527731997,1527731998,1527731999,1527732000,1527732001,1527732002,1527732003,1527732004,1527732005,1527732006,1527732007,1527732008,1527732009,1527732010,1527732011,1527732012,1527732013,1527732014,1527732015,1527732016,1527732017,1527732018,1527732019,1527732020,1527732021,1527732022,1527732023,1527732024,1527732025,1527732026,1527732027,1527732028,1527732029,1527732030,1527732031,1527732032,1527732033,1527732034,1527732035,1527732036,1527732037,1527732038,1527732039,1527732040,1527732041,1527732042,1527732043,1527732044,1527732045,1527732046,1527732047,1527732048,1527732049,1527732050,1527732051,1527732052,1527732053,1527732054,1527732055,1527732056,1527732057,1527732058,1527732059,1527732060,1527732061,1527732062,1527732063,1527732064,1527732065,1527732252,1527732253,1527732254,1527732255,1527732256,1527732257,1527732258,1527732259,1527732260,1527732261,1527732262,1527732263,1527732264,1527732265,1527732266,1527732267,1527732268,1527732269,1527732270,1527732271,1527732272,1527732273,1527732274,1527732275,1527732276,1527732277,1527732278,1527732279,1527732280,1527732281,1527732282,1527732283,1527732284,1527732285,1527732286,1527732287,1527732288,1527732289,1527732290,1527732291,1527732292,1527732293,1527732294,1527732295,1527732296,1527732297,1527732298,1527732299,1527732300,1527732301,1527732302,1527732303,1527732304,1527732305,1527732306,1527732307,1527732308,1527732309,1527732310,1527732311,1527732312,1527732313,1527732314,1527732315,1527732316,1527732317,1527732318,1527732319,1527732320,1527732321,1527732508,1527732509,1527732510,1527732511,1527732512,1527732513,1527732514,1527732515,1527732516,1527732517,1527732518,1527732519,1527732520,1527732521,1527732522,1527732523,1527732524,1527732525,1527732526,1527732527,1527732528,1527732529,1527732530,1527732531,1527732532,1527732533,1527732543,1527732544,1527732545,1527732546,1527732547,1527732548,1527732549,1527732550,1527732551,1527732552,1527732553,1527732554,1527732555,1527732556,1527732557,1527732558,1527732559,1527732560,1527732561,1527732562,1527732563,1527732564,1527732565,1527732566,1527732567,1527732568,1527732569,1527732570,1527732571,1527732572,1527732573,1527732574,1527732575,1527732576,1527732577,1527732763,1527732764,1527732765,1527732766,1527732767,1527732768,1527732769,1527732770,1527732771,1527732772,1527732773,1527732774,1527732775,1527732776,1527732777,1527732778,1527732779,1527732780,1527732781,1527732782,1527732783,1527732784,1527732785,1527732786,1527732787,1527732788,1527732800,1527732801,1527732802,1527732803,1527732804,1527732805,1527732806,1527732807,1527732808,1527732809,1527732810,1527732811,1527732812,1527732813,1527732814,1527732815,1527732816,1527732817,1527732818,1527732819,1527732820,1527732821,1527732822,1527732823,1527732824,1527732825,1527732826,1527732827,1527732828,1527732829,1527732830,1527732831,1527732832,1527732833,1366777387,1366777386,1366777385,1366777384,1359960855,1359960856,1359960857,1359960858,1527733019,1527733020,1527733021,1527733022,1527733023,1527733024,1527733025,1527733026,1527733027,1527733028,1527733029,1527733030,1527733031,1527733032,1527733033,1527733034,1527733035,1527733036,1527733037,1527733038,1527733039,1527733040,1527733041,1527733042,1527733043,1527733044,1527733056,1527733057,1527733058,1527733059,1527733060,1527733061,1527733062,1527733063,1527733064,1527733065,1527733066,1527733067,1527733068,1527733069,1527733070,1527733071,1527733072,1527733073,1527733074,1527733075,1527733076,1527733077,1527733078,1527733079,1527733080,1527733081,1527733082,1527733083,1527733084,1527733085,1527733086,1527733087,1527733088,1527733089,1366777383,1366777382,1366777381,1366777380,1359961111,1359961112,1359961113,1359961114,1527733275,1527733276,1527733277,1527733278,1527733279,1527733280,1527733281,1527733282,1527733283,1527733284,1527733285,1527733286,1527733287,1527733288,1527733289,1527733290,1527733291,1527733292,1527733293,1527733294,1527733295,1527733296,1527733297,1527733298,1527733299,1527733300,1527733312,1527733313,1527733314,1527733315,1527733316,1527733317,1527733318,1527733319,1527733320,1527733321,1527733322,1527733323,1527733324,1527733325,1527733326,1527733327,1527733328,1527733329,1527733330,1527733331,1527733332,1527733333,1527733334,1527733335,1527733336,1527733337,1527733338,1527733339,1527733340,1527733341,1527733342,1527733343,1527733344,1527733345,1366777379,1366777378,1366777377,1366777376,1359961367,1359961368,1359961369,1359961370,1527733531,1527733532,1527733533,1527733534,1527733535,1527733536,1527733537,1527733538,1527733539,1527733540,1527733541,1527733542,1527733543,1527733544,1527733545,1527733546,1527733547,1527733548,1527733549,1527733550,1527733551,1527733552,1527733553,1527733554,1527733555,1527733556,1527733568,1527733569,1527733570,1527733571,1527733572,1527733573,1527733574,1527733575,1527733576,1527733577,1527733578,1527733579,1527733580,1527733581,1527733582,1527733583,1527733584,1527733585,1527733586,1527733587,1527733588,1527733589,1527733590,1527733591,1527733592,1527733593,1527733594,1527733595,1527733596,1527733597,1527733598,1527733599,1527733600,1527733601,1366777375,1366777374,1366777373,1366777372,1359961623,1359961624,1359961625,1359961626,1527733787,1527733788,1527733789,1527733790,1527733791,1527733792,1527733793,1527733794,1527733795,1527733796,1527733797,1527733798,1527733799,1527733800,1527733801,1527733802,1527733803,1527733804,1527733805,1527733806,1527733807,1527733808,1527733809,1527733810,1527733811,1527733812,1527733824,1527733825,1527733826,1527733827,1527733828,1527733829,1527733830,1527733831,1527733832,1527733833,1527733834,1527733835,1527733836,1527733837,1527733838,1527733839,1527733840,1527733841,1527733842,1527733843,1527733844,1527733845,1527733846,1527733847,1527733848,1527733849,1527733850,1527733851,1527733852,1527733853,1527733854,1527733855,1527733856,1527733857,1366777371,1366777370,1366777369,1366777368,1359961879,1359961880,1359961881,1359961882,1527734043,1527734044,1527734045,1527734046,1527734047,1527734048,1527734049,1527734050,1527734051,1527734052,1527734053,1527734054,1527734055,1527734056,1527734057,1527734058,1527734059,1527734060,1527734061,1527734062,1527734063,1527734064,1527734065,1527734066,1527734067,1527734068,1527734080,1527734081,1527734082,1527734083,1527734084,1527734085,1527734086,1527734087,1527734088,1527734089,1527734090,1527734091,1527734092,1527734093,1527734094,1527734095,1527734096,1527734097,1527734098,1527734099,1527734100,1527734101,1527734102,1527734103,1527734104,1527734105,1527734106,1527734107,1527734108,1527734109,1527734110,1527734111,1527734112,1527734113,1366777367,1366777366,1366777365,1366777364,1359962135,1359962136,1359962137,1359962138,1527734299,1527734300,1527734301,1527734302,1527734303,1527734304,1527734305,1527734306,1527734307,1527734308,1527734309,1527734310,1527734311,1527734312,1527734313,1527734314,1527734315,1527734316,1527734317,1527734318,1527734319,1527734320,1527734321,1527734322,1527734323,1527734324,1527734336,1527734337,1527734338,1527734339,1527734340,1527734341,1527734342,1527734343,1527734344,1527734345,1527734346,1527734347,1527734348,1527734349,1527734350,1527734351,1527734352,1527734353,1527734354,1527734355,1527734356,1527734357,1527734358,1527734359,1527734360,1527734361,1527734362,1527734363,1527734364,1527734365,1527734366,1527734367,1527734368,1527734369,1366777363,1534549345,1534549344,1534549343,1359962391,1359962392,1359962393,1359962394,1527734555,1527734556,1527734557,1527734558,1527734559,1527734560,1527734561,1527734562,1527734563,1527734564,1527734565,1527734566,1527734567,1527734568,1527734569,1527734570,1527734571,1527734572,1527734573,1527734574,1527734575,1527734576,1527734577,1527734578,1527734579,1527734580,1527734592,1527734593,1527734594,1527734595,1527734596,1527734597,1527734598,1527734599,1527734600,1527734601,1527734602,1527734603,1527734604,1527734605,1527734606,1527734607,1527734608,1527734609,1527734610,1527734611,1527734612,1527734613,1527734614,1527734615,1527734616,1527734617,1527734618,1527734619,1527734620,1527734621,1527734622,1527734623,1527734624,1527734625,1360008027,1360008028,1360008029,1360008030,1360008031,1360008032,1360008033,1360008283,1360008284,1360008285,1360008286,1360008287,1360008288,1360008289,1360008539,1360008540,1360008541,1360008542,1360008543,1360008544,1360008545,1360008795,1360008796,1360008797,1360008798,1360008799,1360008800,1360008801,1360009051,1360009052,1360009053,1360009054,1360009055,1360009056,1360009057,1360009307,1360009308,1360009309,1360009310,1360009311,1360009312,1360009313,1360009563,1360009564,1360009565,1360009566,1360009567,1360009568,1360009569,1360009819,1360009820,1360009821,1360009822,1360009823,1360009824,1360009825,1527782234,1527782235,1527782236,1527782237,1527782238,1527782239,1527782240,1527782241,1527782455,1527782456,1527782457,1527782458,1527782459,1527782460,1527782461,1527782462,1527782463,1527782464,1527782465,1527782466,1527782467,1527782468,1527782469,1527782470,1527782471,1527782472,1527782473,1527782474,1527782475,1527782476,1527782477,1527782478,1527782479,1527782480,1527782481,1527782482,1527782483,1527782484,1527782485,1527782486,1527782487,1527782488,1527782489,1527782490,1527782491,1527782492,1527782493,1527782494,1527782495,1527782496,1527782497,1527782711,1527782712,1527782713,1527782714,1527782715,1527782716,1527782717,1527782718,1527782719,1527782720,1527782721,1527782722,1527782723,1527782724,1527782725,1527782726,1527782727,1527782728,1527782729,1527782730,1527782731,1527782732,1527782733,1527782734,1527782735,1527782736,1527782737,1527782738,1527782739,1527782740,1527782741,1527782742,1527782743,1527782744,1527782745,1527782746,1527782747,1527782748,1527782749,1527782750,1527782751,1527782752,1527782753,1527782967,1527782968,1527782969,1527782970,1527782971,1527782972,1527782973,1527782974,1527782975,1527782976,1527782977,1527782978,1527782979,1527782980,1527782981,1527782982,1527782983,1527782984,1527782985,1527782986,1527782987,1527782988,1527782989,1527782990,1527782991,1527782992,1527782993,1527782994,1527782995,1527782996,1527782997,1527782998,1527782999,1527783000,1527783001,1527783002,1527783003,1527783004,1527783005,1527783006,1527783007,1527783008,1527783009,1527783223,1527783224,1527783225,1527783226,1527783227,1527783228,1527783229,1527783230,1527783231,1527783232,1527783233,1527783234,1527783235,1527783236,1527783237,1527783238,1527783239,1527783240,1527783241,1527783242,1527783243,1527783244,1527783245,1527783246,1527783247,1527783248,1527783249,1527783250,1527783251,1527783252,1527783253,1527783254,1527783255,1527783256,1527783257,1527783258,1527783259,1527783260,1527783261,1527783262,1527783263,1527783264,1527783265,1527783479,1527783480,1527783481,1527783482,1527783483,1527783484,1527783485,1527783486,1527783487,1527783488,1527783489,1527783490,1527783491,1527783492,1527783493,1527783494,1527783495,1527783496,1527783497,1527783498,1527783499,1527783500,1527783501,1527783502,1527783503,1527783504,1527783505,1527783506,1527783507,1527783508,1527783509,1527783510,1527783511,1527783512,1527783513,1527783514,1527783515,1527783516,1527783517,1527783518,1527783519,1527783520,1527783521,1527783735,1527783736,1527783737,1527783738,1527783739,1527783740,1527783741,1527783742,1527783743,1527783744,1527783745,1527783746,1527783747,1527783748,1527783749,1527783750,1527783751,1527783752,1527783753,1527783754,1527783755,1527783756,1527783757,1527783758,1527783759,1527783760,1527783761,1527783762,1527783763,1527783764,1527783765,1527783766,1527783767,1527783768,1527783769,1527783770,1527783771,1527783772,1527783773,1527783774,1527783775,1527783776,1527783777,1527783991,1527783992,1527783993,1527783994,1527783995,1527783996,1527783997,1527783998,1527783999,1527784000,1527784001,1527784002,1527784003,1527784004,1527784005,1527784006,1527784007,1527784008,1527784009,1527784010,1527784011,1527784012,1527784013,1527784014,1527784015,1527784016,1527784017,1527784018,1527784019,1527784020,1527784021,1527784022,1527784023,1527784024,1527784025,1527784026,1527784027,1527784028,1527784029,1527784030,1527784031,1527784032,1527784033,1527784247,1527784248,1527784249,1527784250,1527784251,1527784252,1527784253,1527784254,1527784282,1527784283,1527784284,1527784285,1527784286,1527784287,1527784288,1527784289,1527784503,1527784504,1527784505,1527784506,1527784507,1527784508,1527784509,1527784539,1527784540,1527784541,1527784542,1527784543,1527784544,1527784545,1527784759,1527784760,1527784761,1527784762,1527784763,1527784764,1527784765,1527784795,1527784796,1527784797,1527784798,1527784799,1527784800,1527784801,1527785015,1527785016,1527785017,1527785018,1527785019,1527785020,1527785021,1527785051,1527785052,1527785053,1527785054,1527785055,1527785056,1527785057,1527785271,1527785272,1527785273,1527785274,1527785275,1527785276,1527785277,1527785307,1527785308,1527785309,1527785310,1527785311,1527785312,1527785313,1527785527,1527785528,1527785529,1527785530,1527785531,1527785532,1527785533,1527785563,1527785564,1527785565,1527785566,1527785567,1527785568,1527785569,1527785783,1527785784,1527785785,1527785786,1527785787,1527785788,1527785789,1527785819,1527785820,1527785821,1527785822,1527785823,1527785824,1527785825,1527786039,1527786040,1527786041,1527786042,1527786043,1527786044,1527786045,1527786075,1527786076,1527786077,1527786078,1527786079,1527786080,1527786081,1527786295,1527786296,1527786297,1527786298,1527786299,1527786300,1527786301,1527786331,1527786332,1527786333,1527786334,1527786335,1527786336,1527786337,1527786524,1527786525,1527786526,1527786527,1527786528,1527786529,1527786530,1527786551,1527786552,1527786553,1527786554,1527786555,1527786556,1527786557,1527786587,1527786588,1527786589,1527786590,1527786591,1527786592,1527786593,1527786780,1527786781,1527786782,1527786783,1527786784,1527786785,1527786786,1527786807,1527786808,1527786809,1527786810,1527786811,1527786812,1527786813,1527786842,1527786843,1527786844,1527786845,1527786846,1527786847,1527786848,1527786849,1527787036,1527787037,1527787038,1527787039,1527787040,1527787041,1527787042,1527787063,1527787064,1527787065,1527787066,1527787067,1527787068,1527787069,1527787081,1527787082,1527787083,1527787084,1527787085,1527787086,1527787087,1527787088,1527787089,1527787090,1527787091,1527787092,1527787093,1527787094,1527787095,1527787096,1527787097,1527787098,1527787099,1527787100,1527787101,1527787102,1527787103,1527787104,1527787105,1527787292,1527787293,1527787294,1527787295,1527787296,1527787297,1527787298,1527787319,1527787320,1527787321,1527787322,1527787323,1527787324,1527787325,1527787337,1527787338,1527787339,1527787340,1527787341,1527787342,1527787343,1527787344,1527787345,1527787346,1527787347,1527787348,1527787349,1527787350,1527787351,1527787352,1527787353,1527787354,1527787355,1527787356,1527787357,1527787358,1527787359,1527787360,1527787361,1527787548,1527787549,1527787550,1527787551,1527787552,1527787553,1527787554,1527787575,1527787576,1527787577,1527787578,1527787579,1527787580,1527787581,1527787593,1527787594,1527787595,1527787596,1527787597,1527787598,1527787599,1527787600,1527787601,1527787602,1527787603,1527787604,1527787605,1527787606,1527787607,1527787608,1527787609,1527787610,1527787611,1527787612,1527787613,1527787614,1527787615,1527787616,1527787617,1527787804,1527787805,1527787806,1527787807,1527787808,1527787809,1527787810,1527787831,1527787832,1527787833,1527787834,1527787835,1527787836,1527787837,1527787849,1527787850,1527787851,1527787852,1527787853,1527787854,1527787855,1527787856,1527787857,1527787858,1527787859,1527787860,1527787861,1527787862,1527787863,1527787864,1527787865,1527787866,1527787867,1527787868,1527787869,1527787870,1527787871,1527787872,1527787873,1527788060,1527788061,1527788062,1527788063,1527788064,1527788065,1527788066,1527788087,1527788088,1527788089,1527788090,1527788091,1527788092,1527788093,1527788105,1527788106,1527788107,1527788108,1527788109,1527788110,1527788111,1527788112,1527788113,1527788114,1527788115,1527788116,1527788117,1527788118,1527788119,1527788120,1527788121,1527788122,1527788123,1527788124,1527788125,1527788126,1527788127,1527788128,1527788129,1527788316,1527788317,1527788318,1527788319,1527788320,1527788321,1527788322,1527788343,1527788344,1527788345,1527788346,1527788347,1527788348,1527788349,1527788361,1527788362,1527788363,1527788364,1527788365,1527788366,1527788367,1527788368,1527788369,1527788370,1527788371,1527788372,1527788373,1527788374,1527788375,1527788376,1527788377,1527788378,1527788379,1527788380,1527788381,1527788382,1527788383,1527788384,1527788385,1527788572,1527788573,1527788574,1527788575,1527788576,1527788577,1527788578,1527788599,1527788600,1527788601,1527788602,1527788603,1527788604,1527788605,1527788617,1527788618,1527788619,1527788620,1527788621,1527788622,1527788623,1527788624,1527788625,1527788626,1527788627,1527788628,1527788629,1527788630,1527788631,1527788632,1527788633,1527788634,1527788635,1527788636,1527788637,1527788638,1527788639,1527788640,1527788641,1527788828,1527788829,1527788830,1527788831,1527788832,1527788833,1527788834,1527788855,1527788856,1527788857,1527788858,1527788859,1527788860,1527788861,1527788873,1527788874,1527788875,1527788876,1527788877,1527788878,1527788879,1527788880,1527788890,1527788891,1527788892,1527788893,1527788894,1527788895,1527788896,1527788897,1527789084,1527789085,1527789086,1527789087,1527789088,1527789089,1527789090,1527789111,1527789112,1527789113,1527789114,1527789115,1527789116,1527789117,1527789129,1527789130,1527789131,1527789132,1527789133,1527789134,1527789135,1527789147,1527789148,1527789149,1527789150,1527789151,1527789152,1527789153,1527789340,1527789341,1527789342,1527789343,1527789344,1527789345,1527789346,1527789367,1527789368,1527789369,1527789370,1527789371,1527789372,1527789373,1527789385,1527789386,1527789387,1527789388,1527789389,1527789390,1527789391,1527789403,1527789404,1527789405,1527789406,1527789407,1527789408,1527789409,1527789596,1527789597,1527789598,1527789599,1527789600,1527789601,1527789602,1527789623,1527789624,1527789625,1527789626,1527789627,1527789628,1527789629,1527789641,1527789642,1527789643,1527789644,1527789645,1527789646,1527789647,1527789659,1527789660,1527789661,1527789662,1527789663,1527789664,1527789665,1527789852,1527789853,1527789854,1527789855,1527789856,1527789857,1527789858,1527789879,1527789880,1527789881,1527789882,1527789883,1527789884,1527789885,1527789897,1527789898,1527789899,1527789900,1527789901,1527789902,1527789903,1527789915,1527789916,1527789917,1527789918,1527789919,1527789920,1527789921,1527790108,1527790109,1527790110,1527790111,1527790112,1527790113,1527790114,1527790135,1527790136,1527790137,1527790138,1527790139,1527790140,1527790141,1527790153,1527790154,1527790155,1527790156,1527790157,1527790158,1527790159,1527790171,1527790172,1527790173,1527790174,1527790175,1527790176,1527790177,1527790364,1527790365,1527790366,1527790367,1527790368,1527790369,1527790370,1527790391,1527790392,1527790393,1527790394,1527790395,1527790396,1527790397,1527790409,1527790410,1527790411,1527790412,1527790413,1527790414,1527790415,1527790427,1527790428,1527790429,1527790430,1527790431,1527790432,1527790433,1527790620,1527790621,1527790622,1527790623,1527790624,1527790625,1527790626,1527790647,1527790648,1527790649,1527790650,1527790651,1527790652,1527790653,1527790665,1527790666,1527790667,1527790668,1527790669,1527790670,1527790671,1527790683,1527790684,1527790685,1527790686,1527790687,1527790688,1527790689,1527790876,1527790877,1527790878,1527790879,1527790880,1527790881,1527790882,1527790903,1527790904,1527790905,1527790906,1527790907,1527790908,1527790909,1527790921,1527790922,1527790923,1527790924,1527790925,1527790926,1527790927,1527790939,1527790940,1527790941,1527790942,1527790943,1527790944,1527790945,1527791132,1527791133,1527791134,1527791135,1527791136,1527791137,1527791138,1527791177,1527791178,1527791179,1527791180,1527791181,1527791182,1527791183,1527791195,1527791196,1527791197,1527791198,1527791199,1527791200,1527791201,1527791388,1527791389,1527791390,1527791391,1527791392,1527791393,1527791394,1527791433,1527791434,1527791435,1527791436,1527791437,1527791438,1527791439,1527791440,1527791450,1527791451,1527791452,1527791453,1527791454,1527791455,1527791456,1527791457,1527791644,1527791645,1527791646,1527791647,1527791648,1527791649,1527791650,1527791689,1527791690,1527791691,1527791692,1527791693,1527791694,1527791695,1527791696,1527791697,1527791698,1527791699,1527791700,1527791701,1527791702,1527791703,1527791704,1527791705,1527791706,1527791707,1527791708,1527791709,1527791710,1527791711,1527791712,1527791713,1527791900,1527791901,1527791902,1527791903,1527791904,1527791905,1527791906,1527791945,1527791946,1527791947,1527791948,1527791949,1527791950,1527791951,1527791952,1527791953,1527791954,1527791955,1527791956,1527791957,1527791958,1527791959,1527791960,1527791961,1527791962,1527791963,1527791964,1527791965,1527791966,1527791967,1527791968,1527791969,1527792156,1527792157,1527792158,1527792159,1527792160,1527792161,1527792162,1527792201,1527792202,1527792203,1527792204,1527792205,1527792206,1527792207,1527792208,1527792209,1527792210,1527792211,1527792212,1527792213,1527792214,1527792215,1527792216,1527792217,1527792218,1527792219,1527792220,1527792221,1527792222,1527792223,1527792224,1527792225,1527792412,1527792413,1527792414,1527792415,1527792416,1527792417,1527792418,1527792457,1527792458,1527792459,1527792460,1527792461,1527792462,1527792463,1527792464,1527792465,1527792466,1527792467,1527792468,1527792469,1527792470,1527792471,1527792472,1527792473,1527792474,1527792475,1527792476,1527792477,1527792478,1527792479,1527792480,1527792481,1527792668,1527792669,1527792670,1527792671,1527792672,1527792673,1527792674,1527792713,1527792714,1527792715,1527792716,1527792717,1527792718,1527792719,1527792720,1527792721,1527792722,1527792723,1527792724,1527792725,1527792726,1527792727,1527792728,1527792729,1527792730,1527792731,1527792732,1527792733,1527792734,1527792735,1527792736,1527792737,1527792924,1527792925,1527792926,1527792927,1527792928,1527792929,1527792930,1527792969,1527792970,1527792971,1527792972,1527792973,1527792974,1527792975,1527792976,1527792977,1527792978,1527792979,1527792980,1527792981,1527792982,1527792983,1527792984,1527792985,1527792986,1527792987,1527792988,1527792989,1527792990,1527792991,1527792992,1527792993,1527793180,1527793181,1527793182,1527793183,1527793184,1527793185,1527793186,1527793225,1527793226,1527793227,1527793228,1527793229,1527793230,1527793231,1527793232,1527793233,1527793234,1527793235,1527793236,1527793237,1527793238,1527793239,1527793240,1527793241,1527793242,1527793243,1527793244,1527793245,1527793246,1527793247,1527793248,1527793249,1527793436,1527793437,1527793438,1527793439,1527793440,1527793441,1527793442,1527793481,1527793482,1527793483,1527793484,1527793485,1527793486,1527793487,1527793488,1527793489,1527793490,1527793491,1527793492,1527793493,1527793494,1527793495,1527793496,1527793497,1527793498,1527793499,1527793500,1527793501,1527793502,1527793503,1527793504,1527793505,1527793692,1527793693,1527793694,1527793695,1527793696,1527793697,1527793698,1527793699,1527793736,1527793737,1527793738,1527793739,1527793740,1527793741,1527793742,1527793743,1527793744,1527793745,1527793746,1527793747,1527793748,1527793749,1527793750,1527793751,1527793752,1527793753,1527793754,1527793755,1527793756,1527793757,1527793758,1527793759,1527793760,1527793761,1527793948,1527793949,1527793950,1527793951,1527793952,1527793953,1527793954,1527793955,1527793956,1527793957,1527793958,1527793959,1527793960,1527793961,1527793962,1527793963,1527793964,1527793965,1527793966,1527793967,1527793968,1527793969,1527793970,1527793971,1527793972,1527793973,1527793974,1527793975,1527793976,1527793977,1527793978,1527793979,1527793980,1527793981,1527793982,1527793983,1527793984,1527793985,1527793986,1527793987,1527793988,1527793989,1527793990,1527793991,1527793992,1527793993,1527793994,1527793995,1527793996,1527793997,1527793998,1527793999,1527794000,1527794001,1527794002,1527794003,1527794004,1527794005,1527794006,1527794007,1527794008,1527794009,1527794010,1527794011,1527794012,1527794013,1527794014,1527794015,1527794016,1527794017,1527794204,1527794205,1527794206,1527794207,1527794208,1527794209,1527794210,1527794211,1527794212,1527794213,1527794214,1527794215,1527794216,1527794217,1527794218,1527794219,1527794220,1527794221,1527794222,1527794223,1527794224,1527794225,1527794226,1527794227,1527794228,1527794229,1527794230,1527794231,1527794232,1527794233,1527794234,1527794235,1527794236,1527794237,1527794238,1527794239,1527794240,1527794241,1527794242,1527794243,1527794244,1527794245,1527794246,1527794247,1527794248,1527794249,1527794250,1527794251,1527794252,1527794253,1527794254,1527794255,1527794256,1527794257,1527794258,1527794259,1527794260,1527794261,1527794262,1527794263,1527794264,1527794265,1527794266,1527794267,1527794268,1527794269,1527794270,1527794271,1527794272,1527794273,1527794460,1527794461,1527794462,1527794463,1527794464,1527794465,1527794466,1527794467,1527794468,1527794469,1527794470,1527794471,1527794472,1527794473,1527794474,1527794475,1527794476,1527794477,1527794478,1527794479,1527794480,1527794481,1527794482,1527794483,1527794484,1527794485,1527794486,1527794487,1527794488,1527794489,1527794490,1527794491,1527794492,1527794493,1527794494,1527794495,1527794496,1527794497,1527794498,1527794499,1527794500,1527794501,1527794502,1527794503,1527794504,1527794505,1527794506,1527794507,1527794508,1527794509,1527794510,1527794511,1527794512,1527794513,1527794514,1527794515,1527794516,1527794517,1527794518,1527794519,1527794520,1527794521,1527794522,1527794523,1527794524,1527794525,1527794526,1527794527,1527794528,1527794529,1527794716,1527794717,1527794718,1527794719,1527794720,1527794721,1527794722,1527794723,1527794724,1527794725,1527794726,1527794727,1527794728,1527794729,1527794730,1527794731,1527794732,1527794733,1527794734,1527794735,1527794736,1527794737,1527794738,1527794739,1527794740,1527794741,1527794742,1527794743,1527794744,1527794745,1527794746,1527794747,1527794748,1527794749,1527794750,1527794751,1527794752,1527794753,1527794754,1527794755,1527794756,1527794757,1527794758,1527794759,1527794760,1527794761,1527794762,1527794763,1527794764,1527794765,1527794766,1527794767,1527794768,1527794769,1527794770,1527794771,1527794772,1527794773,1527794774,1527794775,1527794776,1527794777,1527794778,1527794779,1527794780,1527794781,1527794782,1527794783,1527794784,1527794785,1527794972,1527794973,1527794974,1527794975,1527794976,1527794977,1527794978,1527794979,1527794980,1527794981,1527794982,1527794983,1527794984,1527794985,1527794986,1527794987,1527794988,1527794989,1527794990,1527794991,1527794992,1527794993,1527794994,1527794995,1527794996,1527794997,1527794998,1527794999,1527795000,1527795001,1527795002,1527795003,1527795004,1527795005,1527795006,1527795007,1527795008,1527795009,1527795010,1527795011,1527795012,1527795013,1527795014,1527795015,1527795016,1527795017,1527795018,1527795019,1527795020,1527795021,1527795022,1527795023,1527795024,1527795025,1527795026,1527795027,1527795028,1527795029,1527795030,1527795031,1527795032,1527795033,1527795034,1527795035,1527795036,1527795037,1527795038,1527795039,1527795040,1527795041,1527795228,1527795229,1527795230,1527795231,1527795232,1527795233,1527795234,1527795235,1527795236,1527795237,1527795238,1527795239,1527795240,1527795241,1527795242,1527795243,1527795244,1527795245,1527795246,1527795247,1527795248,1527795249,1527795250,1527795251,1527795252,1527795253,1527795254,1527795255,1527795256,1527795257,1527795258,1527795259,1527795260,1527795261,1527795262,1527795263,1527795264,1527795265,1527795266,1527795267,1527795268,1527795269,1527795270,1527795271,1527795272,1527795273,1527795274,1527795275,1527795276,1527795277,1527795278,1527795279,1527795280,1527795281,1527795282,1527795283,1527795284,1527795285,1527795286,1527795287,1527795288,1527795289,1527795290,1527795291,1527795292,1527795293,1527795294,1527795295,1527795296,1527795297,1527795484,1527795485,1527795486,1527795487,1527795488,1527795489,1527795490,1527795491,1527795492,1527795493,1527795494,1527795495,1527795496,1527795497,1527795498,1527795499,1527795500,1527795501,1527795502,1527795503,1527795504,1527795505,1527795506,1527795507,1527795508,1527795509,1527795510,1527795511,1527795512,1527795513,1527795514,1527795515,1527795516,1527795517,1527795518,1527795519,1527795520,1527795521,1527795522,1527795523,1527795524,1527795525,1527795526,1527795527,1527795528,1527795529,1527795530,1527795531,1527795532,1527795533,1527795534,1527795535,1527795536,1527795537,1527795538,1527795539,1527795540,1527795541,1527795542,1527795543,1527795544,1527795545,1527795546,1527795547,1527795548,1527795549,1527795550,1527795551,1527795552,1527795553,1527795740,1527795741,1527795742,1527795743,1527795744,1527795745,1527795746,1527795747,1527795748,1527795749,1527795750,1527795751,1527795752,1527795753,1527795754,1527795755,1527795756,1527795757,1527795758,1527795759,1527795760,1527795761,1527795762,1527795763,1527795764,1527795765,1527795766,1527795767,1527795768,1527795769,1527795770,1527795771,1527795772,1527795773,1527795774,1527795775,1527795776,1527795777,1527795778,1527795779,1527795780,1527795781,1527795782,1527795783,1527795784,1527795785,1527795786,1527795787,1527795788,1527795789,1527795790,1527795791,1527795792,1527795793,1527795794,1527795795,1527795796,1527795797,1527795798,1527795799,1527795800,1527795801,1527795802,1527795803,1527795804,1527795805,1527795806,1527795807,1527795808,1527795809,1527795996,1527795997,1527795998,1527795999,1527796000,1527796001,1527796002,1527796003,1527796004,1527796005,1527796006,1527796007,1527796008,1527796009,1527796010,1527796011,1527796012,1527796013,1527796014,1527796015,1527796016,1527796017,1527796018,1527796019,1527796020,1527796021,1527796022,1527796023,1527796024,1527796025,1527796026,1527796027,1527796028,1527796029,1527796030,1527796031,1527796032,1527796033,1527796034,1527796035,1527796036,1527796037,1527796038,1527796039,1527796040,1527796041,1527796042,1527796043,1527796044,1527796045,1527796046,1527796047,1527796048,1527796049,1527796050,1527796051,1527796052,1527796053,1527796054,1527796055,1527796056,1527796057,1527796058,1527796059,1527796060,1527796061,1527796062,1527796063,1527796064,1527796065,1527796252,1527796253,1527796254,1527796255,1527796256,1527796257,1527796258,1527796259,1527796260,1527796261,1527796262,1527796263,1527796264,1527796265,1527796266,1527796267,1527796268,1527796269,1527796270,1527796271,1527796272,1527796273,1527796274,1527796275,1527796276,1527796277,1527796278,1527796279,1527796280,1527796281,1527796282,1527796283,1527796284,1527796285,1527796286,1527796287,1527796288,1527796289,1527796290,1527796291,1527796292,1527796293,1527796294,1527796295,1527796296,1527796297,1527796298,1527796299,1527796300,1527796301,1527796302,1527796303,1527796304,1527796305,1527796306,1527796307,1527796308,1527796309,1527796310,1527796311,1527796312,1527796313,1527796314,1527796315,1527796316,1527796317,1527796318,1527796319,1527796320,1527796321,1527796508,1527796509,1527796510,1527796511,1527796512,1527796513,1527796514,1527796515,1527796516,1527796517,1527796518,1527796519,1527796520,1527796521,1527796522,1527796523,1527796524,1527796525,1527796526,1527796527,1527796528,1527796529,1527796530,1527796531,1527796532,1527796533,1527796534,1527796535,1527796536,1527796537,1527796538,1527796539,1527796540,1527796541,1527796542,1527796543,1527796544,1527796545,1527796546,1527796547,1527796548,1527796549,1527796550,1527796551,1527796552,1527796553,1527796554,1527796555,1527796556,1527796557,1527796558,1527796559,1527796560,1527796561,1527796562,1527796563,1527796564,1527796565,1527796566,1527796567,1527796568,1527796569,1527796570,1527796571,1527796572,1527796573,1527796574,1527796575,1527796576,1527796577,1527796764,1527796765,1527796766,1527796767,1527796768,1527796769,1527796770,1527796771,1527796772,1527796773,1527796774,1527796775,1527796776,1527796777,1527796778,1527796779,1527796780,1527796781,1527796782,1527796783,1527796784,1527796785,1527796786,1527796787,1527796788,1527796789,1527796790,1527796791,1527796792,1527796793,1527796794,1527796795,1527796796,1527796797,1527796798,1527796799,1527796800,1527796801,1527796802,1527796803,1527796804,1527796805,1527796806,1527796807,1527796808,1527796809,1527796810,1527796811,1527796812,1527796813,1527796814,1527796815,1527796816,1527796817,1527796818,1527796819,1527796820,1527796821,1527796822,1527796823,1527796824,1527796825,1527796826,1527796827,1527796828,1527796829,1527796830,1527796831,1527796832,1527796833,1527797020,1527797021,1527797022,1527797023,1527797024,1527797025,1527797026,1527797027,1527797028,1527797029,1527797030,1527797031,1527797032,1527797033,1527797034,1527797035,1527797036,1527797037,1527797038,1527797039,1527797040,1527797041,1527797042,1527797043,1527797044,1527797045,1527797046,1527797047,1527797048,1527797049,1527797050,1527797051,1527797052,1527797053,1527797054,1527797055,1527797056,1527797057,1527797058,1527797059,1527797060,1527797061,1527797062,1527797063,1527797064,1527797065,1527797066,1527797067,1527797068,1527797069,1527797070,1527797071,1527797072,1527797073,1527797074,1527797075,1527797076,1527797077,1527797078,1527797079,1527797080,1527797081,1527797082,1527797083,1527797084,1527797085,1527797086,1527797087,1527797088,1527797089,1527797276,1527797277,1527797278,1527797279,1527797280,1527797281,1527797282,1527797283,1527797284,1527797285,1527797286,1527797287,1527797288,1527797289,1527797290,1527797291,1527797292,1527797293,1527797294,1527797295,1527797296,1527797297,1527797298,1527797299,1527797300,1527797301,1527797302,1527797303,1527797304,1527797305,1527797306,1527797307,1527797308,1527797309,1527797310,1527797311,1527797312,1527797313,1527797314,1527797315,1527797316,1527797317,1527797318,1527797319,1527797320,1527797321,1527797322,1527797323,1527797324,1527797325,1527797326,1527797327,1527797328,1527797329,1527797330,1527797331,1527797332,1527797333,1527797334,1527797335,1527797336,1527797337,1527797338,1527797339,1527797340,1527797341,1527797342,1527797343,1527797344,1527797345,1527797532,1527797533,1527797534,1527797535,1527797536,1527797537,1527797538,1527797539,1527797540,1527797541,1527797542,1527797543,1527797544,1527797545,1527797546,1527797547,1527797548,1527797549,1527797550,1527797551,1527797552,1527797553,1527797554,1527797555,1527797556,1527797557,1527797558,1527797559,1527797560,1527797561,1527797562,1527797563,1527797564,1527797565,1527797566,1527797567,1527797568,1527797569,1527797570,1527797571,1527797572,1527797573,1527797574,1527797575,1527797576,1527797577,1527797578,1527797579,1527797580,1527797581,1527797582,1527797583,1527797584,1527797585,1527797586,1527797587,1527797588,1527797589,1527797590,1527797591,1527797592,1527797593,1527797594,1527797595,1527797596,1527797597,1527797598,1527797599,1527797600,1527797601,1527797788,1527797789,1527797790,1527797791,1527797792,1527797793,1527797794,1527797795,1527797796,1527797797,1527797798,1527797799,1527797800,1527797801,1527797802,1527797803,1527797804,1527797805,1527797806,1527797807,1527797808,1527797809,1527797810,1527797811,1527797812,1527797813,1527797814,1527797815,1527797816,1527797817,1527797818,1527797819,1527797820,1527797821,1527797822,1527797823,1527797824,1527797825,1527797826,1527797827,1527797828,1527797829,1527797830,1527797831,1527797832,1527797833,1527797834,1527797835,1527797836,1527797837,1527797838,1527797839,1527797840,1527797841,1527797842,1527797843,1527797844,1527797845,1527797846,1527797847,1527797848,1527797849,1527797850,1527797851,1527797852,1527797853,1527797854,1527797855,1527797856,1527797857,1527798044,1527798045,1527798046,1527798047,1527798048,1527798049,1527798050,1527798051,1527798052,1527798053,1527798054,1527798055,1527798056,1527798057,1527798058,1527798059,1527798060,1527798061,1527798062,1527798063,1527798064,1527798065,1527798066,1527798067,1527798068,1527798069,1527798079,1527798080,1527798081,1527798082,1527798083,1527798084,1527798085,1527798086,1527798087,1527798088,1527798089,1527798090,1527798091,1527798092,1527798093,1527798094,1527798095,1527798096,1527798097,1527798098,1527798099,1527798100,1527798101,1527798102,1527798103,1527798104,1527798105,1527798106,1527798107,1527798108,1527798109,1527798110,1527798111,1527798112,1527798113,1527798299,1527798300,1527798301,1527798302,1527798303,1527798304,1527798305,1527798306,1527798307,1527798308,1527798309,1527798310,1527798311,1527798312,1527798313,1527798314,1527798315,1527798316,1527798317,1527798318,1527798319,1527798320,1527798321,1527798322,1527798323,1527798324,1527798336,1527798337,1527798338,1527798339,1527798340,1527798341,1527798342,1527798343,1527798344,1527798345,1527798346,1527798347,1527798348,1527798349,1527798350,1527798351,1527798352,1527798353,1527798354,1527798355,1527798356,1527798357,1527798358,1527798359,1527798360,1527798361,1527798362,1527798363,1527798364,1527798365,1527798366,1527798367,1527798368,1527798369,1534549342,1534549341,1534549340,1534549339,1360026391,1360026392,1360026393,1360026394,1527798555,1527798556,1527798557,1527798558,1527798559,1527798560,1527798561,1527798562,1527798563,1527798564,1527798565,1527798566,1527798567,1527798568,1527798569,1527798570,1527798571,1527798572,1527798573,1527798574,1527798575,1527798576,1527798577,1527798578,1527798579,1527798580,1527798592,1527798593,1527798594,1527798595,1527798596,1527798597,1527798598,1527798599,1527798600,1527798601,1527798602,1527798603,1527798604,1527798605,1527798606,1527798607,1527798608,1527798609,1527798610,1527798611,1527798612,1527798613,1527798614,1527798615,1527798616,1527798617,1527798618,1527798619,1527798620,1527798621,1527798622,1527798623,1527798624,1527798625,1534549338,1366777177,1366777176,1366777175,1360026647,1360026648,1360026649,1360026650,1527798811,1527798812,1527798813,1527798814,1527798815,1527798816,1527798817,1527798818,1527798819,1527798820,1527798821,1527798822,1527798823,1527798824,1527798825,1527798826,1527798827,1527798828,1527798829,1527798830,1527798831,1527798832,1527798833,1527798834,1527798835,1527798836,1527798848,1527798849,1527798850,1527798851,1527798852,1527798853,1527798854,1527798855,1527798856,1527798857,1527798858,1527798859,1527798860,1527798861,1527798862,1527798863,1527798864,1527798865,1527798866,1527798867,1527798868,1527798869,1527798870,1527798871,1527798872,1527798873,1527798874,1527798875,1527798876,1527798877,1527798878,1527798879,1527798880,1527798881,1366777174,1366777173,1366777172,1366777171,1360026903,1360026904,1360026905,1360026906,1527799067,1527799068,1527799069,1527799070,1527799071,1527799072,1527799073,1527799074,1527799075,1527799076,1527799077,1527799078,1527799079,1527799080,1527799081,1527799082,1527799083,1527799084,1527799085,1527799086,1527799087,1527799088,1527799089,1527799090,1527799091,1527799092,1527799104,1527799105,1527799106,1527799107,1527799108,1527799109,1527799110,1527799111,1527799112,1527799113,1527799114,1527799115,1527799116,1527799117,1527799118,1527799119,1527799120,1527799121,1527799122,1527799123,1527799124,1527799125,1527799126,1527799127,1527799128,1527799129,1527799130,1527799131,1527799132,1527799133,1527799134,1527799135,1527799136,1527799137,1366777170,1366777169,1366777168,1366777167,1360027159,1360027160,1360027161,1360027162,1527799323,1527799324,1527799325,1527799326,1527799327,1527799328,1527799329,1527799330,1527799331,1527799332,1527799333,1527799334,1527799335,1527799336,1527799337,1527799338,1527799339,1527799340,1527799341,1527799342,1527799343,1527799344,1527799345,1527799346,1527799347,1527799348,1527799360,1527799361,1527799362,1527799363,1527799364,1527799365,1527799366,1527799367,1527799368,1527799369,1527799370,1527799371,1527799372,1527799373,1527799374,1527799375,1527799376,1527799377,1527799378,1527799379,1527799380,1527799381,1527799382,1527799383,1527799384,1527799385,1527799386,1527799387,1527799388,1527799389,1527799390,1527799391,1527799392,1527799393,1366777166,1366777165,1366777164,1366777163,1360027415,1360027416,1360027417,1360027418,1527799579,1527799580,1527799581,1527799582,1527799583,1527799584,1527799585,1527799586,1527799587,1527799588,1527799589,1527799590,1527799591,1527799592,1527799593,1527799594,1527799595,1527799596,1527799597,1527799598,1527799599,1527799600,1527799601,1527799602,1527799603,1527799604,1527799616,1527799617,1527799618,1527799619,1527799620,1527799621,1527799622,1527799623,1527799624,1527799625,1527799626,1527799627,1527799628,1527799629,1527799630,1527799631,1527799632,1527799633,1527799634,1527799635,1527799636,1527799637,1527799638,1527799639,1527799640,1527799641,1527799642,1527799643,1527799644,1527799645,1527799646,1527799647,1527799648,1527799649,1366777162,1366777161,1366777160,1366777159,1360027671,1360027672,1360027673,1360027674,1527799835,1527799836,1527799837,1527799838,1527799839,1527799840,1527799841,1527799842,1527799843,1527799844,1527799845,1527799846,1527799847,1527799848,1527799849,1527799850,1527799851,1527799852,1527799853,1527799854,1527799855,1527799856,1527799857,1527799858,1527799859,1527799860,1527799872,1527799873,1527799874,1527799875,1527799876,1527799877,1527799878,1527799879,1527799880,1527799881,1527799882,1527799883,1527799884,1527799885,1527799886,1527799887,1527799888,1527799889,1527799890,1527799891,1527799892,1527799893,1527799894,1527799895,1527799896,1527799897,1527799898,1527799899,1527799900,1527799901,1527799902,1527799903,1527799904,1527799905,1366777158,1366777157,1366777156,1366777155,1360027927,1360027928,1360027929,1360027930,1527800091,1527800092,1527800093,1527800094,1527800095,1527800096,1527800097,1527800098,1527800099,1527800100,1527800101,1527800102,1527800103,1527800104,1527800105,1527800106,1527800107,1527800108,1527800109,1527800110,1527800111,1527800112,1527800113,1527800114,1527800115,1527800116,1527800128,1527800129,1527800130,1527800131,1527800132,1527800133,1527800134,1527800135,1527800136,1527800137,1527800138,1527800139,1527800140,1527800141,1527800142,1527800143,1527800144,1527800145,1527800146,1527800147,1527800148,1527800149,1527800150,1527800151,1527800152,1527800153,1527800154,1527800155,1527800156,1527800157,1527800158,1527800159,1527800160,1527800161,1360073563,1360073564,1360073565,1360073566,1360073567,1360073568,1360073569,1360073819,1360073820,1360073821,1360073822,1360073823,1360073824,1360073825,1360074075,1360074076,1360074077,1360074078,1360074079,1360074080,1360074081,1360074331,1360074332,1360074333,1360074334,1360074335,1360074336,1360074337,1360074587,1360074588,1360074589,1360074590,1360074591,1360074592,1360074593,1360074843,1360074844,1360074845,1360074846,1360074847,1360074848,1360074849,1360075099,1360075100,1360075101,1360075102,1360075103,1360075104,1360075105,1360075355,1360075356,1360075357,1360075358,1360075359,1360075360,1360075361,1527847770,1527847771,1527847772,1527847773,1527847774,1527847775,1527847776,1527847777,1527848026,1527848027,1527848028,1527848029,1527848030,1527848031,1527848032,1527848033,1527848282,1527848283,1527848284,1527848285,1527848286,1527848287,1527848288,1527848289,1527848538,1527848539,1527848540,1527848541,1527848542,1527848543,1527848544,1527848545,1527848794,1527848795,1527848796,1527848797,1527848798,1527848799,1527848800,1527848801,1527849050,1527849051,1527849052,1527849053,1527849054,1527849055,1527849056,1527849057,1527849306,1527849307,1527849308,1527849309,1527849310,1527849311,1527849312,1527849313,1527849562,1527849563,1527849564,1527849565,1527849566,1527849567,1527849568,1527849569,1527849818,1527849819,1527849820,1527849821,1527849822,1527849823,1527849824,1527849825,1527850075,1527850076,1527850077,1527850078,1527850079,1527850080,1527850081,1527850331,1527850332,1527850333,1527850334,1527850335,1527850336,1527850337,1527850587,1527850588,1527850589,1527850590,1527850591,1527850592,1527850593,1527850843,1527850844,1527850845,1527850846,1527850847,1527850848,1527850849,1527851099,1527851100,1527851101,1527851102,1527851103,1527851104,1527851105,1527851355,1527851356,1527851357,1527851358,1527851359,1527851360,1527851361,1527851611,1527851612,1527851613,1527851614,1527851615,1527851616,1527851617,1527851867,1527851868,1527851869,1527851870,1527851871,1527851872,1527851873,1527852123,1527852124,1527852125,1527852126,1527852127,1527852128,1527852129,1527852378,1527852379,1527852380,1527852381,1527852382,1527852383,1527852384,1527852385,1527852634,1527852635,1527852636,1527852637,1527852638,1527852639,1527852640,1527852641,1527852890,1527852891,1527852892,1527852893,1527852894,1527852895,1527852896,1527852897,1527853146,1527853147,1527853148,1527853149,1527853150,1527853151,1527853152,1527853153,1527853402,1527853403,1527853404,1527853405,1527853406,1527853407,1527853408,1527853409,1527853658,1527853659,1527853660,1527853661,1527853662,1527853663,1527853664,1527853665,1527853914,1527853915,1527853916,1527853917,1527853918,1527853919,1527853920,1527853921,1527854170,1527854171,1527854172,1527854173,1527854174,1527854175,1527854176,1527854177,1527854426,1527854427,1527854428,1527854429,1527854430,1527854431,1527854432,1527854433,1527854665,1527854666,1527854667,1527854668,1527854669,1527854670,1527854671,1527854683,1527854684,1527854685,1527854686,1527854687,1527854688,1527854689,1527854921,1527854922,1527854923,1527854924,1527854925,1527854926,1527854927,1527854939,1527854940,1527854941,1527854942,1527854943,1527854944,1527854945,1527855177,1527855178,1527855179,1527855180,1527855181,1527855182,1527855183,1527855195,1527855196,1527855197,1527855198,1527855199,1527855200,1527855201,1527855433,1527855434,1527855435,1527855436,1527855437,1527855438,1527855439,1527855451,1527855452,1527855453,1527855454,1527855455,1527855456,1527855457,1527855689,1527855690,1527855691,1527855692,1527855693,1527855694,1527855695,1527855707,1527855708,1527855709,1527855710,1527855711,1527855712,1527855713,1527855945,1527855946,1527855947,1527855948,1527855949,1527855950,1527855951,1527855963,1527855964,1527855965,1527855966,1527855967,1527855968,1527855969,1527856201,1527856202,1527856203,1527856204,1527856205,1527856206,1527856207,1527856219,1527856220,1527856221,1527856222,1527856223,1527856224,1527856225,1527856457,1527856458,1527856459,1527856460,1527856461,1527856462,1527856463,1527856475,1527856476,1527856477,1527856478,1527856479,1527856480,1527856481,1527856713,1527856714,1527856715,1527856716,1527856717,1527856718,1527856719,1527856731,1527856732,1527856733,1527856734,1527856735,1527856736,1527856737,1527856969,1527856970,1527856971,1527856972,1527856973,1527856974,1527856975,1527856976,1527856986,1527856987,1527856988,1527856989,1527856990,1527856991,1527856992,1527856993,1527857225,1527857226,1527857227,1527857228,1527857229,1527857230,1527857231,1527857232,1527857233,1527857234,1527857235,1527857236,1527857237,1527857238,1527857239,1527857240,1527857241,1527857242,1527857243,1527857244,1527857245,1527857246,1527857247,1527857248,1527857249,1527857481,1527857482,1527857483,1527857484,1527857485,1527857486,1527857487,1527857488,1527857489,1527857490,1527857491,1527857492,1527857493,1527857494,1527857495,1527857496,1527857497,1527857498,1527857499,1527857500,1527857501,1527857502,1527857503,1527857504,1527857505,1527857737,1527857738,1527857739,1527857740,1527857741,1527857742,1527857743,1527857744,1527857745,1527857746,1527857747,1527857748,1527857749,1527857750,1527857751,1527857752,1527857753,1527857754,1527857755,1527857756,1527857757,1527857758,1527857759,1527857760,1527857761,1527857993,1527857994,1527857995,1527857996,1527857997,1527857998,1527857999,1527858000,1527858001,1527858002,1527858003,1527858004,1527858005,1527858006,1527858007,1527858008,1527858009,1527858010,1527858011,1527858012,1527858013,1527858014,1527858015,1527858016,1527858017,1527858249,1527858250,1527858251,1527858252,1527858253,1527858254,1527858255,1527858256,1527858257,1527858258,1527858259,1527858260,1527858261,1527858262,1527858263,1527858264,1527858265,1527858266,1527858267,1527858268,1527858269,1527858270,1527858271,1527858272,1527858273,1527858505,1527858506,1527858507,1527858508,1527858509,1527858510,1527858511,1527858512,1527858513,1527858514,1527858515,1527858516,1527858517,1527858518,1527858519,1527858520,1527858521,1527858522,1527858523,1527858524,1527858525,1527858526,1527858527,1527858528,1527858529,1527858761,1527858762,1527858763,1527858764,1527858765,1527858766,1527858767,1527858768,1527858769,1527858770,1527858771,1527858772,1527858773,1527858774,1527858775,1527858776,1527858777,1527858778,1527858779,1527858780,1527858781,1527858782,1527858783,1527858784,1527858785,1527859017,1527859018,1527859019,1527859020,1527859021,1527859022,1527859023,1527859024,1527859025,1527859026,1527859027,1527859028,1527859029,1527859030,1527859031,1527859032,1527859033,1527859034,1527859035,1527859036,1527859037,1527859038,1527859039,1527859040,1527859041,1527859272,1527859273,1527859274,1527859275,1527859276,1527859277,1527859278,1527859279,1527859280,1527859281,1527859282,1527859283,1527859284,1527859285,1527859286,1527859287,1527859288,1527859289,1527859290,1527859291,1527859292,1527859293,1527859294,1527859295,1527859296,1527859297,1527859529,1527859530,1527859531,1527859532,1527859533,1527859534,1527859535,1527859536,1527859537,1527859538,1527859539,1527859540,1527859541,1527859542,1527859543,1527859544,1527859545,1527859546,1527859547,1527859548,1527859549,1527859550,1527859551,1527859552,1527859553,1527859785,1527859786,1527859787,1527859788,1527859789,1527859790,1527859791,1527859792,1527859793,1527859794,1527859795,1527859796,1527859797,1527859798,1527859799,1527859800,1527859801,1527859802,1527859803,1527859804,1527859805,1527859806,1527859807,1527859808,1527859809,1527860041,1527860042,1527860043,1527860044,1527860045,1527860046,1527860047,1527860048,1527860049,1527860050,1527860051,1527860052,1527860053,1527860054,1527860055,1527860056,1527860057,1527860058,1527860059,1527860060,1527860061,1527860062,1527860063,1527860064,1527860065,1527860297,1527860298,1527860299,1527860300,1527860301,1527860302,1527860303,1527860304,1527860305,1527860306,1527860307,1527860308,1527860309,1527860310,1527860311,1527860312,1527860313,1527860314,1527860315,1527860316,1527860317,1527860318,1527860319,1527860320,1527860321,1527860553,1527860554,1527860555,1527860556,1527860557,1527860558,1527860559,1527860560,1527860561,1527860562,1527860563,1527860564,1527860565,1527860566,1527860567,1527860568,1527860569,1527860570,1527860571,1527860572,1527860573,1527860574,1527860575,1527860576,1527860577,1527860809,1527860810,1527860811,1527860812,1527860813,1527860814,1527860815,1527860816,1527860817,1527860818,1527860819,1527860820,1527860821,1527860822,1527860823,1527860824,1527860825,1527860826,1527860827,1527860828,1527860829,1527860830,1527860831,1527860832,1527860833,1527861065,1527861066,1527861067,1527861068,1527861069,1527861070,1527861071,1527861072,1527861073,1527861074,1527861075,1527861076,1527861077,1527861078,1527861079,1527861080,1527861081,1527861082,1527861083,1527861084,1527861085,1527861086,1527861087,1527861088,1527861089,1527861320,1527861321,1527861322,1527861323,1527861324,1527861325,1527861326,1527861327,1527861328,1527861329,1527861330,1527861331,1527861332,1527861333,1527861334,1527861335,1527861336,1527861337,1527861338,1527861339,1527861340,1527861341,1527861342,1527861343,1527861344,1527861345,1527861532,1527861533,1527861534,1527861535,1527861536,1527861537,1527861538,1527861539,1527861540,1527861541,1527861542,1527861543,1527861544,1527861545,1527861546,1527861547,1527861548,1527861549,1527861550,1527861551,1527861552,1527861553,1527861554,1527861555,1527861556,1527861557,1527861558,1527861559,1527861560,1527861561,1527861562,1527861563,1527861564,1527861565,1527861566,1527861567,1527861568,1527861569,1527861570,1527861571,1527861572,1527861573,1527861574,1527861575,1527861576,1527861577,1527861578,1527861579,1527861580,1527861581,1527861582,1527861583,1527861584,1527861585,1527861586,1527861587,1527861588,1527861589,1527861590,1527861591,1527861592,1527861593,1527861594,1527861595,1527861596,1527861597,1527861598,1527861599,1527861600,1527861601,1527861788,1527861789,1527861790,1527861791,1527861792,1527861793,1527861794,1527861795,1527861796,1527861797,1527861798,1527861799,1527861800,1527861801,1527861802,1527861803,1527861804,1527861805,1527861806,1527861807,1527861808,1527861809,1527861810,1527861811,1527861812,1527861813,1527861814,1527861815,1527861816,1527861817,1527861818,1527861819,1527861820,1527861821,1527861822,1527861823,1527861824,1527861825,1527861826,1527861827,1527861828,1527861829,1527861830,1527861831,1527861832,1527861833,1527861834,1527861835,1527861836,1527861837,1527861838,1527861839,1527861840,1527861841,1527861842,1527861843,1527861844,1527861845,1527861846,1527861847,1527861848,1527861849,1527861850,1527861851,1527861852,1527861853,1527861854,1527861855,1527861856,1527861857,1527862044,1527862045,1527862046,1527862047,1527862048,1527862049,1527862050,1527862051,1527862052,1527862053,1527862054,1527862055,1527862056,1527862057,1527862058,1527862059,1527862060,1527862061,1527862062,1527862063,1527862064,1527862065,1527862066,1527862067,1527862068,1527862069,1527862070,1527862071,1527862072,1527862073,1527862074,1527862075,1527862076,1527862077,1527862078,1527862079,1527862080,1527862081,1527862082,1527862083,1527862084,1527862085,1527862086,1527862087,1527862088,1527862089,1527862090,1527862091,1527862092,1527862093,1527862094,1527862095,1527862096,1527862097,1527862098,1527862099,1527862100,1527862101,1527862102,1527862103,1527862104,1527862105,1527862106,1527862107,1527862108,1527862109,1527862110,1527862111,1527862112,1527862113,1527862300,1527862301,1527862302,1527862303,1527862304,1527862305,1527862306,1527862307,1527862308,1527862309,1527862310,1527862311,1527862312,1527862313,1527862314,1527862315,1527862316,1527862317,1527862318,1527862319,1527862320,1527862321,1527862322,1527862323,1527862324,1527862325,1527862326,1527862327,1527862328,1527862329,1527862330,1527862331,1527862332,1527862333,1527862334,1527862335,1527862336,1527862337,1527862338,1527862339,1527862340,1527862341,1527862342,1527862343,1527862344,1527862345,1527862346,1527862347,1527862348,1527862349,1527862350,1527862351,1527862352,1527862353,1527862354,1527862355,1527862356,1527862357,1527862358,1527862359,1527862360,1527862361,1527862362,1527862363,1527862364,1527862365,1527862366,1527862367,1527862368,1527862369,1527862556,1527862557,1527862558,1527862559,1527862560,1527862561,1527862562,1527862563,1527862564,1527862565,1527862566,1527862567,1527862568,1527862569,1527862570,1527862571,1527862572,1527862573,1527862574,1527862575,1527862576,1527862577,1527862578,1527862579,1527862580,1527862581,1527862582,1527862583,1527862584,1527862585,1527862586,1527862587,1527862588,1527862589,1527862590,1527862591,1527862592,1527862593,1527862594,1527862595,1527862596,1527862597,1527862598,1527862599,1527862600,1527862601,1527862602,1527862603,1527862604,1527862605,1527862606,1527862607,1527862608,1527862609,1527862610,1527862611,1527862612,1527862613,1527862614,1527862615,1527862616,1527862617,1527862618,1527862619,1527862620,1527862621,1527862622,1527862623,1527862624,1527862625,1527862812,1527862813,1527862814,1527862815,1527862816,1527862817,1527862818,1527862819,1527862820,1527862821,1527862822,1527862823,1527862824,1527862825,1527862826,1527862827,1527862828,1527862829,1527862830,1527862831,1527862832,1527862833,1527862834,1527862835,1527862836,1527862837,1527862838,1527862839,1527862840,1527862841,1527862842,1527862843,1527862844,1527862845,1527862846,1527862847,1527862848,1527862849,1527862850,1527862851,1527862852,1527862853,1527862854,1527862855,1527862856,1527862857,1527862858,1527862859,1527862860,1527862861,1527862862,1527862863,1527862864,1527862865,1527862866,1527862867,1527862868,1527862869,1527862870,1527862871,1527862872,1527862873,1527862874,1527862875,1527862876,1527862877,1527862878,1527862879,1527862880,1527862881,1527863068,1527863069,1527863070,1527863071,1527863072,1527863073,1527863074,1527863075,1527863076,1527863077,1527863078,1527863079,1527863080,1527863081,1527863082,1527863083,1527863084,1527863085,1527863086,1527863087,1527863088,1527863089,1527863090,1527863091,1527863092,1527863093,1527863094,1527863095,1527863096,1527863097,1527863098,1527863099,1527863100,1527863101,1527863102,1527863103,1527863104,1527863105,1527863106,1527863107,1527863108,1527863109,1527863110,1527863111,1527863112,1527863113,1527863114,1527863115,1527863116,1527863117,1527863118,1527863119,1527863120,1527863121,1527863122,1527863123,1527863124,1527863125,1527863126,1527863127,1527863128,1527863129,1527863130,1527863131,1527863132,1527863133,1527863134,1527863135,1527863136,1527863137,1527863324,1527863325,1527863326,1527863327,1527863328,1527863329,1527863330,1527863331,1527863332,1527863333,1527863334,1527863335,1527863336,1527863337,1527863338,1527863339,1527863340,1527863341,1527863342,1527863343,1527863344,1527863345,1527863346,1527863347,1527863348,1527863349,1527863350,1527863351,1527863352,1527863353,1527863354,1527863355,1527863356,1527863357,1527863358,1527863359,1527863360,1527863361,1527863362,1527863363,1527863364,1527863365,1527863366,1527863367,1527863368,1527863369,1527863370,1527863371,1527863372,1527863373,1527863374,1527863375,1527863376,1527863377,1527863378,1527863379,1527863380,1527863381,1527863382,1527863383,1527863384,1527863385,1527863386,1527863387,1527863388,1527863389,1527863390,1527863391,1527863392,1527863393,1527863580,1527863581,1527863582,1527863583,1527863584,1527863585,1527863586,1527863587,1527863588,1527863589,1527863590,1527863591,1527863592,1527863593,1527863594,1527863595,1527863596,1527863597,1527863598,1527863599,1527863600,1527863601,1527863602,1527863603,1527863604,1527863605,1527863615,1527863616,1527863617,1527863618,1527863619,1527863620,1527863621,1527863622,1527863623,1527863624,1527863625,1527863626,1527863627,1527863628,1527863629,1527863630,1527863631,1527863632,1527863633,1527863634,1527863635,1527863636,1527863637,1527863638,1527863639,1527863640,1527863641,1527863642,1527863643,1527863644,1527863645,1527863646,1527863647,1527863648,1527863649,1527863835,1527863836,1527863837,1527863838,1527863839,1527863840,1527863841,1527863842,1527863843,1527863844,1527863845,1527863846,1527863847,1527863848,1527863849,1527863850,1527863851,1527863852,1527863853,1527863854,1527863855,1527863856,1527863857,1527863858,1527863859,1527863860,1527863872,1527863873,1527863874,1527863875,1527863876,1527863877,1527863878,1527863879,1527863880,1527863881,1527863882,1527863883,1527863884,1527863885,1527863886,1527863887,1527863888,1527863889,1527863890,1527863891,1527863892,1527863893,1527863894,1527863895,1527863896,1527863897,1527863898,1527863899,1527863900,1527863901,1527863902,1527863903,1527863904,1527863905,1366777154,1366777153,1366777152,1366777151,1360091927,1360091928,1360091929,1360091930,1527864091,1527864092,1527864093,1527864094,1527864095,1527864096,1527864097,1527864098,1527864099,1527864100,1527864101,1527864102,1527864103,1527864104,1527864105,1527864106,1527864107,1527864108,1527864109,1527864110,1527864111,1527864112,1527864113,1527864114,1527864115,1527864116,1527864128,1527864129,1527864130,1527864131,1527864132,1527864133,1527864134,1527864135,1527864136,1527864137,1527864138,1527864139,1527864140,1527864141,1527864142,1527864143,1527864144,1527864145,1527864146,1527864147,1527864148,1527864149,1527864150,1527864151,1527864152,1527864153,1527864154,1527864155,1527864156,1527864157,1527864158,1527864159,1527864160,1527864161,1366777150,1366777149,1366777148,1366777147,1360092183,1360092184,1360092185,1360092186,1527864347,1527864348,1527864349,1527864350,1527864351,1527864352,1527864353,1527864354,1527864355,1527864356,1527864357,1527864358,1527864359,1527864360,1527864361,1527864362,1527864363,1527864364,1527864365,1527864366,1527864367,1527864368,1527864369,1527864370,1527864371,1527864372,1527864384,1527864385,1527864386,1527864387,1527864388,1527864389,1527864390,1527864391,1527864392,1527864393,1527864394,1527864395,1527864396,1527864397,1527864398,1527864399,1527864400,1527864401,1527864402,1527864403,1527864404,1527864405,1527864406,1527864407,1527864408,1527864409,1527864410,1527864411,1527864412,1527864413,1527864414,1527864415,1527864416,1527864417,1366777146,1366777145,1366777144,1366777143,1360092439,1360092440,1360092441,1360092442,1527864603,1527864604,1527864605,1527864606,1527864607,1527864608,1527864609,1527864610,1527864611,1527864612,1527864613,1527864614,1527864615,1527864616,1527864617,1527864618,1527864619,1527864620,1527864621,1527864622,1527864623,1527864624,1527864625,1527864626,1527864627,1527864628,1527864640,1527864641,1527864642,1527864643,1527864644,1527864645,1527864646,1527864647,1527864648,1527864649,1527864650,1527864651,1527864652,1527864653,1527864654,1527864655,1527864656,1527864657,1527864658,1527864659,1527864660,1527864661,1527864662,1527864663,1527864664,1527864665,1527864666,1527864667,1527864668,1527864669,1527864670,1527864671,1527864672,1527864673,1366777142,1366777141,1366777140,1366777139,1360092695,1360092696,1360092697,1360092698,1527864859,1527864860,1527864861,1527864862,1527864863,1527864864,1527864865,1527864866,1527864867,1527864868,1527864869,1527864870,1527864871,1527864872,1527864873,1527864874,1527864875,1527864876,1527864877,1527864878,1527864879,1527864880,1527864881,1527864882,1527864883,1527864884,1527864896,1527864897,1527864898,1527864899,1527864900,1527864901,1527864902,1527864903,1527864904,1527864905,1527864906,1527864907,1527864908,1527864909,1527864910,1527864911,1527864912,1527864913,1527864914,1527864915,1527864916,1527864917,1527864918,1527864919,1527864920,1527864921,1527864922,1527864923,1527864924,1527864925,1527864926,1527864927,1527864928,1527864929,1366777138,1366777137,1366777136,1366777135,1360092951,1360092952,1360092953,1360092954,1527865115,1527865116,1527865117,1527865118,1527865119,1527865120,1527865121,1527865122,1527865123,1527865124,1527865125,1527865126,1527865127,1527865128,1527865129,1527865130,1527865131,1527865132,1527865133,1527865134,1527865135,1527865136,1527865137,1527865138,1527865139,1527865140,1527865152,1527865153,1527865154,1527865155,1527865156,1527865157,1527865158,1527865159,1527865160,1527865161,1527865162,1527865163,1527865164,1527865165,1527865166,1527865167,1527865168,1527865169,1527865170,1527865171,1527865172,1527865173,1527865174,1527865175,1527865176,1527865177,1527865178,1527865179,1527865180,1527865181,1527865182,1527865183,1527865184,1527865185,1366777134,1366777133,1366777132,1366777131,1360093207,1360093208,1360093209,1360093210,1527865371,1527865372,1527865373,1527865374,1527865375,1527865376,1527865377,1527865378,1527865379,1527865380,1527865381,1527865382,1527865383,1527865384,1527865385,1527865386,1527865387,1527865388,1527865389,1527865390,1527865391,1527865392,1527865393,1527865394,1527865395,1527865396,1527865408,1527865409,1527865410,1527865411,1527865412,1527865413,1527865414,1527865415,1527865416,1527865417,1527865418,1527865419,1527865420,1527865421,1527865422,1527865423,1527865424,1527865425,1527865426,1527865427,1527865428,1527865429,1527865430,1527865431,1527865432,1527865433,1527865434,1527865435,1527865436,1527865437,1527865438,1527865439,1527865440,1527865441,1366777130,1366777129,1366777128,1366777127,1360093463,1360093464,1360093465,1360093466,1527865627,1527865628,1527865629,1527865630,1527865631,1527865632,1527865633,1527865634,1527865635,1527865636,1527865637,1527865638,1527865639,1527865640,1527865641,1527865642,1527865643,1527865644,1527865645,1527865646,1527865647,1527865648,1527865649,1527865650,1527865651,1527865652,1527865664,1527865665,1527865666,1527865667,1527865668,1527865669,1527865670,1527865671,1527865672,1527865673,1527865674,1527865675,1527865676,1527865677,1527865678,1527865679,1527865680,1527865681,1527865682,1527865683,1527865684,1527865685,1527865686,1527865687,1527865688,1527865689,1527865690,1527865691,1527865692,1527865693,1527865694,1527865695,1527865696,1527865697,1360139099,1360139100,1360139101,1360139102,1360139103,1360139104,1360139105,1360139355,1360139356,1360139357,1360139358,1360139359,1360139360,1360139361,1360139611,1360139612,1360139613,1360139614,1360139615,1360139616,1360139617,1360139867,1360139868,1360139869,1360139870,1360139871,1360139872,1360139873,1360140123,1360140124,1360140125,1360140126,1360140127,1360140128,1360140129,1360140379,1360140380,1360140381,1360140382,1360140383,1360140384,1360140385,1360140635,1360140636,1360140637,1360140638,1360140639,1360140640,1360140641,1360140891,1360140892,1360140893,1360140894,1360140895,1360140896,1360140897,1527913306,1527913307,1527913308,1527913309,1527913310,1527913311,1527913312,1527913313,1527913563,1527913564,1527913565,1527913566,1527913567,1527913568,1527913569,1527913819,1527913820,1527913821,1527913822,1527913823,1527913824,1527913825,1527914075,1527914076,1527914077,1527914078,1527914079,1527914080,1527914081,1527914331,1527914332,1527914333,1527914334,1527914335,1527914336,1527914337,1527914587,1527914588,1527914589,1527914590,1527914591,1527914592,1527914593,1527914843,1527914844,1527914845,1527914846,1527914847,1527914848,1527914849,1527915099,1527915100,1527915101,1527915102,1527915103,1527915104,1527915105,1527915355,1527915356,1527915357,1527915358,1527915359,1527915360,1527915361,1527915611,1527915612,1527915613,1527915614,1527915615,1527915616,1527915617,1527915867,1527915868,1527915869,1527915870,1527915871,1527915872,1527915873,1527916123,1527916124,1527916125,1527916126,1527916127,1527916128,1527916129,1527916379,1527916380,1527916381,1527916382,1527916383,1527916384,1527916385,1527916635,1527916636,1527916637,1527916638,1527916639,1527916640,1527916641,1527916891,1527916892,1527916893,1527916894,1527916895,1527916896,1527916897,1527917147,1527917148,1527917149,1527917150,1527917151,1527917152,1527917153,1527917403,1527917404,1527917405,1527917406,1527917407,1527917408,1527917409,1527917659,1527917660,1527917661,1527917662,1527917663,1527917664,1527917665,1527917915,1527917916,1527917917,1527917918,1527917919,1527917920,1527917921,1527918171,1527918172,1527918173,1527918174,1527918175,1527918176,1527918177,1527918427,1527918428,1527918429,1527918430,1527918431,1527918432,1527918433,1527918683,1527918684,1527918685,1527918686,1527918687,1527918688,1527918689,1527918939,1527918940,1527918941,1527918942,1527918943,1527918944,1527918945,1527919195,1527919196,1527919197,1527919198,1527919199,1527919200,1527919201,1527919451,1527919452,1527919453,1527919454,1527919455,1527919456,1527919457,1527919707,1527919708,1527919709,1527919710,1527919711,1527919712,1527919713,1527919963,1527919964,1527919965,1527919966,1527919967,1527919968,1527919969,1527920219,1527920220,1527920221,1527920222,1527920223,1527920224,1527920225,1527920457,1527920458,1527920459,1527920460,1527920461,1527920462,1527920463,1527920475,1527920476,1527920477,1527920478,1527920479,1527920480,1527920481,1527920713,1527920714,1527920715,1527920716,1527920717,1527920718,1527920719,1527920731,1527920732,1527920733,1527920734,1527920735,1527920736,1527920737,1527920969,1527920970,1527920971,1527920972,1527920973,1527920974,1527920975,1527920987,1527920988,1527920989,1527920990,1527920991,1527920992,1527920993,1527921225,1527921226,1527921227,1527921228,1527921229,1527921230,1527921231,1527921243,1527921244,1527921245,1527921246,1527921247,1527921248,1527921249,1527921481,1527921482,1527921483,1527921484,1527921485,1527921486,1527921487,1527921499,1527921500,1527921501,1527921502,1527921503,1527921504,1527921505,1527921737,1527921738,1527921739,1527921740,1527921741,1527921742,1527921743,1527921755,1527921756,1527921757,1527921758,1527921759,1527921760,1527921761,1527921993,1527921994,1527921995,1527921996,1527921997,1527921998,1527921999,1527922011,1527922012,1527922013,1527922014,1527922015,1527922016,1527922017,1527922249,1527922250,1527922251,1527922252,1527922253,1527922254,1527922255,1527922267,1527922268,1527922269,1527922270,1527922271,1527922272,1527922273,1527922505,1527922506,1527922507,1527922508,1527922509,1527922510,1527922511,1527922512,1527922522,1527922523,1527922524,1527922525,1527922526,1527922527,1527922528,1527922529,1527922761,1527922762,1527922763,1527922764,1527922765,1527922766,1527922767,1527922768,1527922769,1527922770,1527922771,1527922772,1527922773,1527922774,1527922775,1527922776,1527922777,1527922778,1527922779,1527922780,1527922781,1527922782,1527922783,1527922784,1527922785,1527923017,1527923018,1527923019,1527923020,1527923021,1527923022,1527923023,1527923024,1527923025,1527923026,1527923027,1527923028,1527923029,1527923030,1527923031,1527923032,1527923033,1527923034,1527923035,1527923036,1527923037,1527923038,1527923039,1527923040,1527923041,1527923273,1527923274,1527923275,1527923276,1527923277,1527923278,1527923279,1527923280,1527923281,1527923282,1527923283,1527923284,1527923285,1527923286,1527923287,1527923288,1527923289,1527923290,1527923291,1527923292,1527923293,1527923294,1527923295,1527923296,1527923297,1527923529,1527923530,1527923531,1527923532,1527923533,1527923534,1527923535,1527923536,1527923537,1527923538,1527923539,1527923540,1527923541,1527923542,1527923543,1527923544,1527923545,1527923546,1527923547,1527923548,1527923549,1527923550,1527923551,1527923552,1527923553,1527923785,1527923786,1527923787,1527923788,1527923789,1527923790,1527923791,1527923792,1527923793,1527923794,1527923795,1527923796,1527923797,1527923798,1527923799,1527923800,1527923801,1527923802,1527923803,1527923804,1527923805,1527923806,1527923807,1527923808,1527923809,1527924041,1527924042,1527924043,1527924044,1527924045,1527924046,1527924047,1527924048,1527924049,1527924050,1527924051,1527924052,1527924053,1527924054,1527924055,1527924056,1527924057,1527924058,1527924059,1527924060,1527924061,1527924062,1527924063,1527924064,1527924065,1527924297,1527924298,1527924299,1527924300,1527924301,1527924302,1527924303,1527924304,1527924305,1527924306,1527924307,1527924308,1527924309,1527924310,1527924311,1527924312,1527924313,1527924314,1527924315,1527924316,1527924317,1527924318,1527924319,1527924320,1527924321,1527924553,1527924554,1527924555,1527924556,1527924557,1527924558,1527924559,1527924560,1527924561,1527924562,1527924563,1527924564,1527924565,1527924566,1527924567,1527924568,1527924569,1527924570,1527924571,1527924572,1527924573,1527924574,1527924575,1527924576,1527924577,1527924809,1527924810,1527924811,1527924812,1527924813,1527924814,1527924815,1527924816,1527924817,1527924818,1527924819,1527924820,1527924821,1527924822,1527924823,1527924824,1527924825,1527924826,1527924827,1527924828,1527924829,1527924830,1527924831,1527924832,1527924833,1527925066,1527925067,1527925068,1527925069,1527925070,1527925071,1527925072,1527925073,1527925074,1527925075,1527925076,1527925077,1527925078,1527925079,1527925080,1527925081,1527925082,1527925083,1527925084,1527925085,1527925086,1527925087,1527925088,1527925089,1527925322,1527925323,1527925324,1527925325,1527925326,1527925327,1527925328,1527925329,1527925330,1527925331,1527925332,1527925333,1527925334,1527925335,1527925336,1527925337,1527925338,1527925339,1527925340,1527925341,1527925342,1527925343,1527925344,1527925345,1527925578,1527925579,1527925580,1527925581,1527925582,1527925583,1527925584,1527925585,1527925586,1527925587,1527925588,1527925589,1527925590,1527925591,1527925592,1527925593,1527925594,1527925595,1527925596,1527925597,1527925598,1527925599,1527925600,1527925601,1527925834,1527925835,1527925836,1527925837,1527925838,1527925839,1527925840,1527925841,1527925842,1527925843,1527925844,1527925845,1527925846,1527925847,1527925848,1527925849,1527925850,1527925851,1527925852,1527925853,1527925854,1527925855,1527925856,1527925857,1527926090,1527926091,1527926092,1527926093,1527926094,1527926095,1527926096,1527926097,1527926098,1527926099,1527926100,1527926101,1527926102,1527926103,1527926104,1527926105,1527926106,1527926107,1527926108,1527926109,1527926110,1527926111,1527926112,1527926113,1527926346,1527926347,1527926348,1527926349,1527926350,1527926351,1527926352,1527926353,1527926354,1527926355,1527926356,1527926357,1527926358,1527926359,1527926360,1527926361,1527926362,1527926363,1527926364,1527926365,1527926366,1527926367,1527926368,1527926369,1527926602,1527926603,1527926604,1527926605,1527926606,1527926607,1527926608,1527926609,1527926610,1527926611,1527926612,1527926613,1527926614,1527926615,1527926616,1527926617,1527926618,1527926619,1527926620,1527926621,1527926622,1527926623,1527926624,1527926625,1527926857,1527926858,1527926859,1527926860,1527926861,1527926862,1527926863,1527926864,1527926865,1527926866,1527926867,1527926868,1527926869,1527926870,1527926871,1527926872,1527926873,1527926874,1527926875,1527926876,1527926877,1527926878,1527926879,1527926880,1527926881,1527927112,1527927113,1527927114,1527927115,1527927116,1527927117,1527927118,1527927119,1527927120,1527927121,1527927122,1527927123,1527927124,1527927125,1527927126,1527927127,1527927128,1527927129,1527927130,1527927131,1527927132,1527927133,1527927134,1527927135,1527927136,1527927137,1527927324,1527927325,1527927326,1527927327,1527927328,1527927329,1527927330,1527927331,1527927332,1527927333,1527927334,1527927335,1527927336,1527927337,1527927338,1527927339,1527927340,1527927341,1527927342,1527927343,1527927344,1527927345,1527927346,1527927347,1527927348,1527927349,1527927350,1527927351,1527927352,1527927353,1527927354,1527927355,1527927356,1527927357,1527927358,1527927359,1527927360,1527927361,1527927362,1527927363,1527927364,1527927365,1527927366,1527927367,1527927368,1527927369,1527927370,1527927371,1527927372,1527927373,1527927374,1527927375,1527927376,1527927377,1527927378,1527927379,1527927380,1527927381,1527927382,1527927383,1527927384,1527927385,1527927386,1527927387,1527927388,1527927389,1527927390,1527927391,1527927392,1527927393,1527927580,1527927581,1527927582,1527927583,1527927584,1527927585,1527927586,1527927587,1527927588,1527927589,1527927590,1527927591,1527927592,1527927593,1527927594,1527927595,1527927596,1527927597,1527927598,1527927599,1527927600,1527927601,1527927602,1527927603,1527927604,1527927605,1527927606,1527927607,1527927608,1527927609,1527927610,1527927611,1527927612,1527927613,1527927614,1527927615,1527927616,1527927617,1527927618,1527927619,1527927620,1527927621,1527927622,1527927623,1527927624,1527927625,1527927626,1527927627,1527927628,1527927629,1527927630,1527927631,1527927632,1527927633,1527927634,1527927635,1527927636,1527927637,1527927638,1527927639,1527927640,1527927641,1527927642,1527927643,1527927644,1527927645,1527927646,1527927647,1527927648,1527927649,1527927836,1527927837,1527927838,1527927839,1527927840,1527927841,1527927842,1527927843,1527927844,1527927845,1527927846,1527927847,1527927848,1527927849,1527927850,1527927851,1527927852,1527927853,1527927854,1527927855,1527927856,1527927857,1527927858,1527927859,1527927860,1527927861,1527927862,1527927863,1527927864,1527927865,1527927866,1527927867,1527927868,1527927869,1527927870,1527927871,1527927872,1527927873,1527927874,1527927875,1527927876,1527927877,1527927878,1527927879,1527927880,1527927881,1527927882,1527927883,1527927884,1527927885,1527927886,1527927887,1527927888,1527927889,1527927890,1527927891,1527927892,1527927893,1527927894,1527927895,1527927896,1527927897,1527927898,1527927899,1527927900,1527927901,1527927902,1527927903,1527927904,1527927905,1527928092,1527928093,1527928094,1527928095,1527928096,1527928097,1527928098,1527928099,1527928100,1527928101,1527928102,1527928103,1527928104,1527928105,1527928106,1527928107,1527928108,1527928109,1527928110,1527928111,1527928112,1527928113,1527928114,1527928115,1527928116,1527928117,1527928118,1527928119,1527928120,1527928121,1527928122,1527928123,1527928124,1527928125,1527928126,1527928127,1527928128,1527928129,1527928130,1527928131,1527928132,1527928133,1527928134,1527928135,1527928136,1527928137,1527928138,1527928139,1527928140,1527928141,1527928142,1527928143,1527928144,1527928145,1527928146,1527928147,1527928148,1527928149,1527928150,1527928151,1527928152,1527928153,1527928154,1527928155,1527928156,1527928157,1527928158,1527928159,1527928160,1527928161,1527928348,1527928349,1527928350,1527928351,1527928352,1527928353,1527928354,1527928355,1527928356,1527928357,1527928358,1527928359,1527928360,1527928361,1527928362,1527928363,1527928364,1527928365,1527928366,1527928367,1527928368,1527928369,1527928370,1527928371,1527928372,1527928373,1527928374,1527928375,1527928376,1527928377,1527928378,1527928379,1527928380,1527928381,1527928382,1527928383,1527928384,1527928385,1527928386,1527928387,1527928388,1527928389,1527928390,1527928391,1527928392,1527928393,1527928394,1527928395,1527928396,1527928397,1527928398,1527928399,1527928400,1527928401,1527928402,1527928403,1527928404,1527928405,1527928406,1527928407,1527928408,1527928409,1527928410,1527928411,1527928412,1527928413,1527928414,1527928415,1527928416,1527928417,1527928604,1527928605,1527928606,1527928607,1527928608,1527928609,1527928610,1527928611,1527928612,1527928613,1527928614,1527928615,1527928616,1527928617,1527928618,1527928619,1527928620,1527928621,1527928622,1527928623,1527928624,1527928625,1527928626,1527928627,1527928628,1527928629,1527928630,1527928631,1527928632,1527928633,1527928634,1527928635,1527928636,1527928637,1527928638,1527928639,1527928640,1527928641,1527928642,1527928643,1527928644,1527928645,1527928646,1527928647,1527928648,1527928649,1527928650,1527928651,1527928652,1527928653,1527928654,1527928655,1527928656,1527928657,1527928658,1527928659,1527928660,1527928661,1527928662,1527928663,1527928664,1527928665,1527928666,1527928667,1527928668,1527928669,1527928670,1527928671,1527928672,1527928673,1527928860,1527928861,1527928862,1527928863,1527928864,1527928865,1527928866,1527928867,1527928868,1527928869,1527928870,1527928871,1527928872,1527928873,1527928874,1527928875,1527928876,1527928877,1527928878,1527928879,1527928880,1527928881,1527928882,1527928883,1527928884,1527928885,1527928886,1527928887,1527928888,1527928889,1527928890,1527928891,1527928892,1527928893,1527928894,1527928895,1527928896,1527928897,1527928898,1527928899,1527928900,1527928901,1527928902,1527928903,1527928904,1527928905,1527928906,1527928907,1527928908,1527928909,1527928910,1527928911,1527928912,1527928913,1527928914,1527928915,1527928916,1527928917,1527928918,1527928919,1527928920,1527928921,1527928922,1527928923,1527928924,1527928925,1527928926,1527928927,1527928928,1527928929,1527929116,1527929117,1527929118,1527929119,1527929120,1527929121,1527929122,1527929123,1527929124,1527929125,1527929126,1527929127,1527929128,1527929129,1527929130,1527929131,1527929132,1527929133,1527929134,1527929135,1527929136,1527929137,1527929138,1527929139,1527929140,1527929141,1527929151,1527929152,1527929153,1527929154,1527929155,1527929156,1527929157,1527929158,1527929159,1527929160,1527929161,1527929162,1527929163,1527929164,1527929165,1527929166,1527929167,1527929168,1527929169,1527929170,1527929171,1527929172,1527929173,1527929174,1527929175,1527929176,1527929177,1527929178,1527929179,1527929180,1527929181,1527929182,1527929183,1527929184,1527929185,1527929371,1527929372,1527929373,1527929374,1527929375,1527929376,1527929377,1527929378,1527929379,1527929380,1527929381,1527929382,1527929383,1527929384,1527929385,1527929386,1527929387,1527929388,1527929389,1527929390,1527929391,1527929392,1527929393,1527929394,1527929395,1527929396,1527929408,1527929409,1527929410,1527929411,1527929412,1527929413,1527929414,1527929415,1527929416,1527929417,1527929418,1527929419,1527929420,1527929421,1527929422,1527929423,1527929424,1527929425,1527929426,1527929427,1527929428,1527929429,1527929430,1527929431,1527929432,1527929433,1527929434,1527929435,1527929436,1527929437,1527929438,1527929439,1527929440,1527929441,1366777126,1366777125,1366777124,1366777123,1360157463,1360157464,1360157465,1360157466,1527929627,1527929628,1527929629,1527929630,1527929631,1527929632,1527929633,1527929634,1527929635,1527929636,1527929637,1527929638,1527929639,1527929640,1527929641,1527929642,1527929643,1527929644,1527929645,1527929646,1527929647,1527929648,1527929649,1527929650,1527929651,1527929652,1527929664,1527929665,1527929666,1527929667,1527929668,1527929669,1527929670,1527929671,1527929672,1527929673,1527929674,1527929675,1527929676,1527929677,1527929678,1527929679,1527929680,1527929681,1527929682,1527929683,1527929684,1527929685,1527929686,1527929687,1527929688,1527929689,1527929690,1527929691,1527929692,1527929693,1527929694,1527929695,1527929696,1527929697,1366777122,1366777121,1366777120,1366777119,1360157719,1360157720,1360157721,1360157722,1527929883,1527929884,1527929885,1527929886,1527929887,1527929888,1527929889,1527929890,1527929891,1527929892,1527929893,1527929894,1527929895,1527929896,1527929897,1527929898,1527929899,1527929900,1527929901,1527929902,1527929903,1527929904,1527929905,1527929906,1527929907,1527929908,1527929920,1527929921,1527929922,1527929923,1527929924,1527929925,1527929926,1527929927,1527929928,1527929929,1527929930,1527929931,1527929932,1527929933,1527929934,1527929935,1527929936,1527929937,1527929938,1527929939,1527929940,1527929941,1527929942,1527929943,1527929944,1527929945,1527929946,1527929947,1527929948,1527929949,1527929950,1527929951,1527929952,1527929953,1366777118,1366777117,1366777116,1366777115,1360157975,1360157976,1360157977,1360157978,1527930139,1527930140,1527930141,1527930142,1527930143,1527930144,1527930145,1527930146,1527930147,1527930148,1527930149,1527930150,1527930151,1527930152,1527930153,1527930154,1527930155,1527930156,1527930157,1527930158,1527930159,1527930160,1527930161,1527930162,1527930163,1527930164,1527930176,1527930177,1527930178,1527930179,1527930180,1527930181,1527930182,1527930183,1527930184,1527930185,1527930186,1527930187,1527930188,1527930189,1527930190,1527930191,1527930192,1527930193,1527930194,1527930195,1527930196,1527930197,1527930198,1527930199,1527930200,1527930201,1527930202,1527930203,1527930204,1527930205,1527930206,1527930207,1527930208,1527930209,1366777114,1366777113,1366777112,1366777111,1360158231,1360158232,1360158233,1360158234,1527930395,1527930396,1527930397,1527930398,1527930399,1527930400,1527930401,1527930402,1527930403,1527930404,1527930405,1527930406,1527930407,1527930408,1527930409,1527930410,1527930411,1527930412,1527930413,1527930414,1527930415,1527930416,1527930417,1527930418,1527930419,1527930420,1527930432,1527930433,1527930434,1527930435,1527930436,1527930437,1527930438,1527930439,1527930440,1527930441,1527930442,1527930443,1527930444,1527930445,1527930446,1527930447,1527930448,1527930449,1527930450,1527930451,1527930452,1527930453,1527930454,1527930455,1527930456,1527930457,1527930458,1527930459,1527930460,1527930461,1527930462,1527930463,1527930464,1527930465,1366777110,1366777109,1366777108,1366777107,1360158487,1360158488,1360158489,1360158490,1527930651,1527930652,1527930653,1527930654,1527930655,1527930656,1527930657,1527930658,1527930659,1527930660,1527930661,1527930662,1527930663,1527930664,1527930665,1527930666,1527930667,1527930668,1527930669,1527930670,1527930671,1527930672,1527930673,1527930674,1527930675,1527930676,1527930688,1527930689,1527930690,1527930691,1527930692,1527930693,1527930694,1527930695,1527930696,1527930697,1527930698,1527930699,1527930700,1527930701,1527930702,1527930703,1527930704,1527930705,1527930706,1527930707,1527930708,1527930709,1527930710,1527930711,1527930712,1527930713,1527930714,1527930715,1527930716,1527930717,1527930718,1527930719,1527930720,1527930721,1534549089,1534549088,1534549087,1534549086,1360158743,1360158744,1360158745,1360158746,1527930907,1527930908,1527930909,1527930910,1527930911,1527930912,1527930913,1527930914,1527930915,1527930916,1527930917,1527930918,1527930919,1527930920,1527930921,1527930922,1527930923,1527930924,1527930925,1527930926,1527930927,1527930928,1527930929,1527930930,1527930931,1527930932,1527930944,1527930945,1527930946,1527930947,1527930948,1527930949,1527930950,1527930951,1527930952,1527930953,1527930954,1527930955,1527930956,1527930957,1527930958,1527930959,1527930960,1527930961,1527930962,1527930963,1527930964,1527930965,1527930966,1527930967,1527930968,1527930969,1527930970,1527930971,1527930972,1527930973,1527930974,1527930975,1527930976,1527930977,1534549085,1534549084,1534549083,1534549082,1360158999,1360159000,1360159001,1360159002,1527931163,1527931164,1527931165,1527931166,1527931167,1527931168,1527931169,1527931170,1527931171,1527931172,1527931173,1527931174,1527931175,1527931176,1527931177,1527931178,1527931179,1527931180,1527931181,1527931182,1527931183,1527931184,1527931185,1527931186,1527931187,1527931188,1527931200,1527931201,1527931202,1527931203,1527931204,1527931205,1527931206,1527931207,1527931208,1527931209,1527931210,1527931211,1527931212,1527931213,1527931214,1527931215,1527931216,1527931217,1527931218,1527931219,1527931220,1527931221,1527931222,1527931223,1527931224,1527931225,1527931226,1527931227,1527931228,1527931229,1527931230,1527931231,1527931232,1527931233,1360204635,1360204636,1360204637,1360204638,1360204639,1360204640,1360204641,1360204891,1360204892,1360204893,1360204894,1360204895,1360204896,1360204897,1360205147,1360205148,1360205149,1360205150,1360205151,1360205152,1360205153,1360205403,1360205404,1360205405,1360205406,1360205407,1360205408,1360205409,1360205659,1360205660,1360205661,1360205662,1360205663,1360205664,1360205665,1360205915,1360205916,1360205917,1360205918,1360205919,1360205920,1360205921,1360206171,1360206172,1360206173,1360206174,1360206175,1360206176,1360206177,1360206427,1360206428,1360206429,1360206430,1360206431,1360206432,1360206433,1527978842,1527978843,1527978844,1527978845,1527978846,1527978847,1527978848,1527978849,1527979099,1527979100,1527979101,1527979102,1527979103,1527979104,1527979105,1527979356,1527979357,1527979358,1527979359,1527979360,1527979361,1527979612,1527979613,1527979614,1527979615,1527979616,1527979617,1527979868,1527979869,1527979870,1527979871,1527979872,1527979873,1527980124,1527980125,1527980126,1527980127,1527980128,1527980129,1527980380,1527980381,1527980382,1527980383,1527980384,1527980385,1527980635,1527980636,1527980637,1527980638,1527980639,1527980640,1527980641,1527980891,1527980892,1527980893,1527980894,1527980895,1527980896,1527980897,1527981147,1527981148,1527981149,1527981150,1527981151,1527981152,1527981153,1527981403,1527981404,1527981405,1527981406,1527981407,1527981408,1527981409,1527981659,1527981660,1527981661,1527981662,1527981663,1527981664,1527981665,1527981915,1527981916,1527981917,1527981918,1527981919,1527981920,1527981921,1527982171,1527982172,1527982173,1527982174,1527982175,1527982176,1527982177,1527982427,1527982428,1527982429,1527982430,1527982431,1527982432,1527982433,1527982683,1527982684,1527982685,1527982686,1527982687,1527982688,1527982689,1527982939,1527982940,1527982941,1527982942,1527982943,1527982944,1527982945,1527983195,1527983196,1527983197,1527983198,1527983199,1527983200,1527983201,1527983451,1527983452,1527983453,1527983454,1527983455,1527983456,1527983457,1527983707,1527983708,1527983709,1527983710,1527983711,1527983712,1527983713,1527983963,1527983964,1527983965,1527983966,1527983967,1527983968,1527983969,1527984219,1527984220,1527984221,1527984222,1527984223,1527984224,1527984225,1527984475,1527984476,1527984477,1527984478,1527984479,1527984480,1527984481,1527984731,1527984732,1527984733,1527984734,1527984735,1527984736,1527984737,1527984987,1527984988,1527984989,1527984990,1527984991,1527984992,1527984993,1527985243,1527985244,1527985245,1527985246,1527985247,1527985248,1527985249,1527985499,1527985500,1527985501,1527985502,1527985503,1527985504,1527985505,1527985755,1527985756,1527985757,1527985758,1527985759,1527985760,1527985761,1527985993,1527985994,1527985995,1527985996,1527985997,1527985998,1527985999,1527986011,1527986012,1527986013,1527986014,1527986015,1527986016,1527986017,1527986249,1527986250,1527986251,1527986252,1527986253,1527986254,1527986255,1527986267,1527986268,1527986269,1527986270,1527986271,1527986272,1527986273,1527986505,1527986506,1527986507,1527986508,1527986509,1527986510,1527986511,1527986523,1527986524,1527986525,1527986526,1527986527,1527986528,1527986529,1527986761,1527986762,1527986763,1527986764,1527986765,1527986766,1527986767,1527986779,1527986780,1527986781,1527986782,1527986783,1527986784,1527986785,1527987017,1527987018,1527987019,1527987020,1527987021,1527987022,1527987023,1527987035,1527987036,1527987037,1527987038,1527987039,1527987040,1527987041,1527987273,1527987274,1527987275,1527987276,1527987277,1527987278,1527987279,1527987291,1527987292,1527987293,1527987294,1527987295,1527987296,1527987297,1527987529,1527987530,1527987531,1527987532,1527987533,1527987534,1527987535,1527987547,1527987548,1527987549,1527987550,1527987551,1527987552,1527987553,1527987785,1527987786,1527987787,1527987788,1527987789,1527987790,1527987791,1527987803,1527987804,1527987805,1527987806,1527987807,1527987808,1527987809,1527988041,1527988042,1527988043,1527988044,1527988045,1527988046,1527988047,1527988048,1527988058,1527988059,1527988060,1527988061,1527988062,1527988063,1527988064,1527988065,1527988297,1527988298,1527988299,1527988300,1527988301,1527988302,1527988303,1527988304,1527988305,1527988306,1527988307,1527988308,1527988309,1527988310,1527988311,1527988312,1527988313,1527988314,1527988315,1527988316,1527988317,1527988318,1527988319,1527988320,1527988321,1527988553,1527988554,1527988555,1527988556,1527988557,1527988558,1527988559,1527988560,1527988561,1527988562,1527988563,1527988564,1527988565,1527988566,1527988567,1527988568,1527988569,1527988570,1527988571,1527988572,1527988573,1527988574,1527988575,1527988576,1527988577,1527988809,1527988810,1527988811,1527988812,1527988813,1527988814,1527988815,1527988816,1527988817,1527988818,1527988819,1527988820,1527988821,1527988822,1527988823,1527988824,1527988825,1527988826,1527988827,1527988828,1527988829,1527988830,1527988831,1527988832,1527988833,1527989065,1527989066,1527989067,1527989068,1527989069,1527989070,1527989071,1527989072,1527989073,1527989074,1527989075,1527989076,1527989077,1527989078,1527989079,1527989080,1527989081,1527989082,1527989083,1527989084,1527989085,1527989086,1527989087,1527989088,1527989089,1527989321,1527989322,1527989323,1527989324,1527989325,1527989326,1527989327,1527989328,1527989329,1527989330,1527989331,1527989332,1527989333,1527989334,1527989335,1527989336,1527989337,1527989338,1527989339,1527989340,1527989341,1527989342,1527989343,1527989344,1527989345,1527989577,1527989578,1527989579,1527989580,1527989581,1527989582,1527989583,1527989584,1527989585,1527989586,1527989587,1527989588,1527989589,1527989590,1527989591,1527989592,1527989593,1527989594,1527989595,1527989596,1527989597,1527989598,1527989599,1527989600,1527989601,1527989833,1527989834,1527989835,1527989836,1527989837,1527989838,1527989839,1527989840,1527989841,1527989842,1527989843,1527989844,1527989845,1527989846,1527989847,1527989848,1527989849,1527989850,1527989851,1527989852,1527989853,1527989854,1527989855,1527989856,1527989857,1527990089,1527990090,1527990091,1527990092,1527990093,1527990094,1527990095,1527990096,1527990097,1527990098,1527990099,1527990100,1527990101,1527990102,1527990103,1527990104,1527990105,1527990106,1527990107,1527990108,1527990109,1527990110,1527990111,1527990112,1527990113,1527990345,1527990346,1527990347,1527990348,1527990349,1527990350,1527990351,1527990352,1527990353,1527990354,1527990355,1527990356,1527990357,1527990358,1527990359,1527990360,1527990361,1527990362,1527990363,1527990364,1527990365,1527990366,1527990367,1527990368,1527990369,1527990602,1527990603,1527990604,1527990605,1527990606,1527990607,1527990608,1527990609,1527990610,1527990611,1527990612,1527990613,1527990614,1527990615,1527990616,1527990617,1527990618,1527990619,1527990620,1527990621,1527990622,1527990623,1527990624,1527990625,1527990858,1527990859,1527990860,1527990861,1527990862,1527990863,1527990864,1527990865,1527990866,1527990867,1527990868,1527990869,1527990870,1527990871,1527990872,1527990873,1527990874,1527990875,1527990876,1527990877,1527990878,1527990879,1527990880,1527990881,1527991114,1527991115,1527991116,1527991117,1527991118,1527991119,1527991120,1527991121,1527991122,1527991123,1527991124,1527991125,1527991126,1527991127,1527991128,1527991129,1527991130,1527991131,1527991132,1527991133,1527991134,1527991135,1527991136,1527991137,1527991370,1527991371,1527991372,1527991373,1527991374,1527991375,1527991376,1527991377,1527991378,1527991379,1527991380,1527991381,1527991382,1527991383,1527991384,1527991385,1527991386,1527991387,1527991388,1527991389,1527991390,1527991391,1527991392,1527991393,1527991626,1527991627,1527991628,1527991629,1527991630,1527991631,1527991632,1527991633,1527991634,1527991635,1527991636,1527991637,1527991638,1527991639,1527991640,1527991641,1527991642,1527991643,1527991644,1527991645,1527991646,1527991647,1527991648,1527991649,1527991882,1527991883,1527991884,1527991885,1527991886,1527991887,1527991888,1527991889,1527991890,1527991891,1527991892,1527991893,1527991894,1527991895,1527991896,1527991897,1527991898,1527991899,1527991900,1527991901,1527991902,1527991903,1527991904,1527991905,1527992138,1527992139,1527992140,1527992141,1527992142,1527992143,1527992144,1527992145,1527992146,1527992147,1527992148,1527992149,1527992150,1527992151,1527992152,1527992153,1527992154,1527992155,1527992156,1527992157,1527992158,1527992159,1527992160,1527992161,1527992393,1527992394,1527992395,1527992396,1527992397,1527992398,1527992399,1527992400,1527992401,1527992402,1527992403,1527992404,1527992405,1527992406,1527992407,1527992408,1527992409,1527992410,1527992411,1527992412,1527992413,1527992414,1527992415,1527992416,1527992417,1527992648,1527992649,1527992650,1527992651,1527992652,1527992653,1527992654,1527992655,1527992656,1527992657,1527992658,1527992659,1527992660,1527992661,1527992662,1527992663,1527992664,1527992665,1527992666,1527992667,1527992668,1527992669,1527992670,1527992671,1527992672,1527992673,1527992860,1527992861,1527992862,1527992863,1527992864,1527992865,1527992866,1527992867,1527992868,1527992869,1527992870,1527992871,1527992872,1527992873,1527992874,1527992875,1527992876,1527992877,1527992878,1527992879,1527992880,1527992881,1527992882,1527992883,1527992884,1527992885,1527992886,1527992887,1527992888,1527992889,1527992890,1527992891,1527992892,1527992893,1527992894,1527992895,1527992896,1527992897,1527992898,1527992899,1527992900,1527992901,1527992902,1527992903,1527992904,1527992905,1527992906,1527992907,1527992908,1527992909,1527992910,1527992911,1527992912,1527992913,1527992914,1527992915,1527992916,1527992917,1527992918,1527992919,1527992920,1527992921,1527992922,1527992923,1527992924,1527992925,1527992926,1527992927,1527992928,1527992929,1527993116,1527993117,1527993118,1527993119,1527993120,1527993121,1527993122,1527993123,1527993124,1527993125,1527993126,1527993127,1527993128,1527993129,1527993130,1527993131,1527993132,1527993133,1527993134,1527993135,1527993136,1527993137,1527993138,1527993139,1527993140,1527993141,1527993142,1527993143,1527993144,1527993145,1527993146,1527993147,1527993148,1527993149,1527993150,1527993151,1527993152,1527993153,1527993154,1527993155,1527993156,1527993157,1527993158,1527993159,1527993160,1527993161,1527993162,1527993163,1527993164,1527993165,1527993166,1527993167,1527993168,1527993169,1527993170,1527993171,1527993172,1527993173,1527993174,1527993175,1527993176,1527993177,1527993178,1527993179,1527993180,1527993181,1527993182,1527993183,1527993184,1527993185,1527993372,1527993373,1527993374,1527993375,1527993376,1527993377,1527993378,1527993379,1527993380,1527993381,1527993382,1527993383,1527993384,1527993385,1527993386,1527993387,1527993388,1527993389,1527993390,1527993391,1527993392,1527993393,1527993394,1527993395,1527993396,1527993397,1527993398,1527993399,1527993400,1527993401,1527993402,1527993403,1527993404,1527993405,1527993406,1527993407,1527993408,1527993409,1527993410,1527993411,1527993412,1527993413,1527993414,1527993415,1527993416,1527993417,1527993418,1527993419,1527993420,1527993421,1527993422,1527993423,1527993424,1527993425,1527993426,1527993427,1527993428,1527993429,1527993430,1527993431,1527993432,1527993433,1527993434,1527993435,1527993436,1527993437,1527993438,1527993439,1527993440,1527993441,1527993628,1527993629,1527993630,1527993631,1527993632,1527993633,1527993634,1527993635,1527993636,1527993637,1527993638,1527993639,1527993640,1527993641,1527993642,1527993643,1527993644,1527993645,1527993646,1527993647,1527993648,1527993649,1527993650,1527993651,1527993652,1527993653,1527993654,1527993655,1527993656,1527993657,1527993658,1527993659,1527993660,1527993661,1527993662,1527993663,1527993664,1527993665,1527993666,1527993667,1527993668,1527993669,1527993670,1527993671,1527993672,1527993673,1527993674,1527993675,1527993676,1527993677,1527993678,1527993679,1527993680,1527993681,1527993682,1527993683,1527993684,1527993685,1527993686,1527993687,1527993688,1527993689,1527993690,1527993691,1527993692,1527993693,1527993694,1527993695,1527993696,1527993697,1527993884,1527993885,1527993886,1527993887,1527993888,1527993889,1527993890,1527993891,1527993892,1527993893,1527993894,1527993895,1527993896,1527993897,1527993898,1527993899,1527993900,1527993901,1527993902,1527993903,1527993904,1527993905,1527993906,1527993907,1527993908,1527993909,1527993910,1527993911,1527993912,1527993913,1527993914,1527993915,1527993916,1527993917,1527993918,1527993919,1527993920,1527993921,1527993922,1527993923,1527993924,1527993925,1527993926,1527993927,1527993928,1527993929,1527993930,1527993931,1527993932,1527993933,1527993934,1527993935,1527993936,1527993937,1527993938,1527993939,1527993940,1527993941,1527993942,1527993943,1527993944,1527993945,1527993946,1527993947,1527993948,1527993949,1527993950,1527993951,1527993952,1527993953,1527994140,1527994141,1527994142,1527994143,1527994144,1527994145,1527994146,1527994147,1527994148,1527994149,1527994150,1527994151,1527994152,1527994153,1527994154,1527994155,1527994156,1527994157,1527994158,1527994159,1527994160,1527994161,1527994162,1527994163,1527994164,1527994165,1527994166,1527994167,1527994168,1527994169,1527994170,1527994171,1527994172,1527994173,1527994174,1527994175,1527994176,1527994177,1527994178,1527994179,1527994180,1527994181,1527994182,1527994183,1527994184,1527994185,1527994186,1527994187,1527994188,1527994189,1527994190,1527994191,1527994192,1527994193,1527994194,1527994195,1527994196,1527994197,1527994198,1527994199,1527994200,1527994201,1527994202,1527994203,1527994204,1527994205,1527994206,1527994207,1527994208,1527994209,1527994396,1527994397,1527994398,1527994399,1527994400,1527994401,1527994402,1527994403,1527994404,1527994405,1527994406,1527994407,1527994408,1527994409,1527994410,1527994411,1527994412,1527994413,1527994414,1527994415,1527994416,1527994417,1527994418,1527994419,1527994420,1527994421,1527994422,1527994423,1527994424,1527994425,1527994426,1527994427,1527994428,1527994429,1527994430,1527994431,1527994432,1527994433,1527994434,1527994435,1527994436,1527994437,1527994438,1527994439,1527994440,1527994441,1527994442,1527994443,1527994444,1527994445,1527994446,1527994447,1527994448,1527994449,1527994450,1527994451,1527994452,1527994453,1527994454,1527994455,1527994456,1527994457,1527994458,1527994459,1527994460,1527994461,1527994462,1527994463,1527994464,1527994465,1527994652,1527994653,1527994654,1527994655,1527994656,1527994657,1527994658,1527994659,1527994660,1527994661,1527994662,1527994663,1527994664,1527994665,1527994666,1527994667,1527994668,1527994669,1527994670,1527994671,1527994672,1527994673,1527994674,1527994675,1527994676,1527994677,1527994687,1527994688,1527994689,1527994690,1527994691,1527994692,1527994693,1527994694,1527994695,1527994696,1527994697,1527994698,1527994699,1527994700,1527994701,1527994702,1527994703,1527994704,1527994705,1527994706,1527994707,1527994708,1527994709,1527994710,1527994711,1527994712,1527994713,1527994714,1527994715,1527994716,1527994717,1527994718,1527994719,1527994720,1527994721,1527994907,1527994908,1527994909,1527994910,1527994911,1527994912,1527994913,1527994914,1527994915,1527994916,1527994917,1527994918,1527994919,1527994920,1527994921,1527994922,1527994923,1527994924,1527994925,1527994926,1527994927,1527994928,1527994929,1527994930,1527994931,1527994932,1527994944,1527994945,1527994946,1527994947,1527994948,1527994949,1527994950,1527994951,1527994952,1527994953,1527994954,1527994955,1527994956,1527994957,1527994958,1527994959,1527994960,1527994961,1527994962,1527994963,1527994964,1527994965,1527994966,1527994967,1527994968,1527994969,1527994970,1527994971,1527994972,1527994973,1527994974,1527994975,1527994976,1527994977,1366776921,1366776920,1366776919,1366776918,1360222999,1360223000,1360223001,1360223002,1527995163,1527995164,1527995165,1527995166,1527995167,1527995168,1527995169,1527995170,1527995171,1527995172,1527995173,1527995174,1527995175,1527995176,1527995177,1527995178,1527995179,1527995180,1527995181,1527995182,1527995183,1527995184,1527995185,1527995186,1527995187,1527995188,1527995200,1527995201,1527995202,1527995203,1527995204,1527995205,1527995206,1527995207,1527995208,1527995209,1527995210,1527995211,1527995212,1527995213,1527995214,1527995215,1527995216,1527995217,1527995218,1527995219,1527995220,1527995221,1527995222,1527995223,1527995224,1527995225,1527995226,1527995227,1527995228,1527995229,1527995230,1527995231,1527995232,1527995233,1366776917,1366776916,1366776915,1366776914,1360223255,1360223256,1360223257,1360223258,1527995419,1527995420,1527995421,1527995422,1527995423,1527995424,1527995425,1527995426,1527995427,1527995428,1527995429,1527995430,1527995431,1527995432,1527995433,1527995434,1527995435,1527995436,1527995437,1527995438,1527995439,1527995440,1527995441,1527995442,1527995443,1527995444,1527995456,1527995457,1527995458,1527995459,1527995460,1527995461,1527995462,1527995463,1527995464,1527995465,1527995466,1527995467,1527995468,1527995469,1527995470,1527995471,1527995472,1527995473,1527995474,1527995475,1527995476,1527995477,1527995478,1527995479,1527995480,1527995481,1527995482,1527995483,1527995484,1527995485,1527995486,1527995487,1527995488,1527995489,1366776913,1366776912,1366776911,1366776910,1360223511,1360223512,1360223513,1360223514,1527995675,1527995676,1527995677,1527995678,1527995679,1527995680,1527995681,1527995682,1527995683,1527995684,1527995685,1527995686,1527995687,1527995688,1527995689,1527995690,1527995691,1527995692,1527995693,1527995694,1527995695,1527995696,1527995697,1527995698,1527995699,1527995700,1527995712,1527995713,1527995714,1527995715,1527995716,1527995717,1527995718,1527995719,1527995720,1527995721,1527995722,1527995723,1527995724,1527995725,1527995726,1527995727,1527995728,1527995729,1527995730,1527995731,1527995732,1527995733,1527995734,1527995735,1527995736,1527995737,1527995738,1527995739,1527995740,1527995741,1527995742,1527995743,1527995744,1527995745,1366776909,1366776908,1366776907,1366776906,1360223767,1360223768,1360223769,1360223770,1527995931,1527995932,1527995933,1527995934,1527995935,1527995936,1527995937,1527995938,1527995939,1527995940,1527995941,1527995942,1527995943,1527995944,1527995945,1527995946,1527995947,1527995948,1527995949,1527995950,1527995951,1527995952,1527995953,1527995954,1527995955,1527995956,1527995968,1527995969,1527995970,1527995971,1527995972,1527995973,1527995974,1527995975,1527995976,1527995977,1527995978,1527995979,1527995980,1527995981,1527995982,1527995983,1527995984,1527995985,1527995986,1527995987,1527995988,1527995989,1527995990,1527995991,1527995992,1527995993,1527995994,1527995995,1527995996,1527995997,1527995998,1527995999,1527996000,1527996001,1366776905,1366776904,1366776903,1366776902,1360224023,1360224024,1360224025,1360224026,1527996187,1527996188,1527996189,1527996190,1527996191,1527996192,1527996193,1527996194,1527996195,1527996196,1527996197,1527996198,1527996199,1527996200,1527996201,1527996202,1527996203,1527996204,1527996205,1527996206,1527996207,1527996208,1527996209,1527996210,1527996211,1527996212,1527996224,1527996225,1527996226,1527996227,1527996228,1527996229,1527996230,1527996231,1527996232,1527996233,1527996234,1527996235,1527996236,1527996237,1527996238,1527996239,1527996240,1527996241,1527996242,1527996243,1527996244,1527996245,1527996246,1527996247,1527996248,1527996249,1527996250,1527996251,1527996252,1527996253,1527996254,1527996255,1527996256,1527996257,1366776901,1366776900,1366776899,1366776898,1360224279,1360224280,1360224281,1360224282,1527996443,1527996444,1527996445,1527996446,1527996447,1527996448,1527996449,1527996450,1527996451,1527996452,1527996453,1527996454,1527996455,1527996456,1527996457,1527996458,1527996459,1527996460,1527996461,1527996462,1527996463,1527996464,1527996465,1527996466,1527996467,1527996468,1527996480,1527996481,1527996482,1527996483,1527996484,1527996485,1527996486,1527996487,1527996488,1527996489,1527996490,1527996491,1527996492,1527996493,1527996494,1527996495,1527996496,1527996497,1527996498,1527996499,1527996500,1527996501,1527996502,1527996503,1527996504,1527996505,1527996506,1527996507,1527996508,1527996509,1527996510,1527996511,1527996512,1527996513,1366776897,1366776896,1366776895,1366776894,1360224535,1360224536,1360224537,1360224538,1527996699,1527996700,1527996701,1527996702,1527996703,1527996704,1527996705,1527996706,1527996707,1527996708,1527996709,1527996710,1527996711,1527996712,1527996713,1527996714,1527996715,1527996716,1527996717,1527996718,1527996719,1527996720,1527996721,1527996722,1527996723,1527996724,1527996736,1527996737,1527996738,1527996739,1527996740,1527996741,1527996742,1527996743,1527996744,1527996745,1527996746,1527996747,1527996748,1527996749,1527996750,1527996751,1527996752,1527996753,1527996754,1527996755,1527996756,1527996757,1527996758,1527996759,1527996760,1527996761,1527996762,1527996763,1527996764,1527996765,1527996766,1527996767,1527996768,1527996769,1360270171,1360270172,1360270173,1360270174,1360270175,1360270176,1360270177,1360270427,1360270428,1360270429,1360270430,1360270431,1360270432,1360270433,1360270683,1360270684,1360270685,1360270686,1360270687,1360270688,1360270689,1360270939,1360270940,1360270941,1360270942,1360270943,1360270944,1360270945,1360271195,1360271196,1360271197,1360271198,1360271199,1360271200,1360271201,1360271451,1360271452,1360271453,1360271454,1360271455,1360271456,1360271457,1360271707,1360271708,1360271709,1360271710,1360271711,1360271712,1360271713,1360271963,1360271964,1360271965,1360271966,1360271967,1360271968,1360271969,1528044379,1528044380,1528044381,1528044382,1528044383,1528044384,1528044385,1528044635,1528044636,1528044637,1528044638,1528044639,1528044640,1528044641,1528044891,1528044892,1528044893,1528044894,1528044895,1528044896,1528044897,1528045147,1528045148,1528045149,1528045150,1528045151,1528045152,1528045153,1528045403,1528045404,1528045405,1528045406,1528045407,1528045408,1528045409,1528045659,1528045660,1528045661,1528045662,1528045663,1528045664,1528045665,1528045915,1528045916,1528045917,1528045918,1528045919,1528045920,1528045921,1528046171,1528046172,1528046173,1528046174,1528046175,1528046176,1528046177,1528046427,1528046428,1528046429,1528046430,1528046431,1528046432,1528046433,1528046683,1528046684,1528046685,1528046686,1528046687,1528046688,1528046689,1528046939,1528046940,1528046941,1528046942,1528046943,1528046944,1528046945,1528047195,1528047196,1528047197,1528047198,1528047199,1528047200,1528047201,1528047451,1528047452,1528047453,1528047454,1528047455,1528047456,1528047457,1528047707,1528047708,1528047709,1528047710,1528047711,1528047712,1528047713,1528047963,1528047964,1528047965,1528047966,1528047967,1528047968,1528047969,1528048219,1528048220,1528048221,1528048222,1528048223,1528048224,1528048225,1528048475,1528048476,1528048477,1528048478,1528048479,1528048480,1528048481,1528048731,1528048732,1528048733,1528048734,1528048735,1528048736,1528048737,1528048987,1528048988,1528048989,1528048990,1528048991,1528048992,1528048993,1528049243,1528049244,1528049245,1528049246,1528049247,1528049248,1528049249,1528049499,1528049500,1528049501,1528049502,1528049503,1528049504,1528049505,1528049755,1528049756,1528049757,1528049758,1528049759,1528049760,1528049761,1528050011,1528050012,1528050013,1528050014,1528050015,1528050016,1528050017,1528050267,1528050268,1528050269,1528050270,1528050271,1528050272,1528050273,1528050523,1528050524,1528050525,1528050526,1528050527,1528050528,1528050529,1528050779,1528050780,1528050781,1528050782,1528050783,1528050784,1528050785,1528051035,1528051036,1528051037,1528051038,1528051039,1528051040,1528051041,1528051291,1528051292,1528051293,1528051294,1528051295,1528051296,1528051297,1528051529,1528051530,1528051531,1528051532,1528051533,1528051534,1528051535,1528051547,1528051548,1528051549,1528051550,1528051551,1528051552,1528051553,1528051785,1528051786,1528051787,1528051788,1528051789,1528051790,1528051791,1528051803,1528051804,1528051805,1528051806,1528051807,1528051808,1528051809,1528052041,1528052042,1528052043,1528052044,1528052045,1528052046,1528052047,1528052059,1528052060,1528052061,1528052062,1528052063,1528052064,1528052065,1528052297,1528052298,1528052299,1528052300,1528052301,1528052302,1528052303,1528052315,1528052316,1528052317,1528052318,1528052319,1528052320,1528052321,1528052553,1528052554,1528052555,1528052556,1528052557,1528052558,1528052559,1528052571,1528052572,1528052573,1528052574,1528052575,1528052576,1528052577,1528052809,1528052810,1528052811,1528052812,1528052813,1528052814,1528052815,1528052827,1528052828,1528052829,1528052830,1528052831,1528052832,1528052833,1528053065,1528053066,1528053067,1528053068,1528053069,1528053070,1528053071,1528053083,1528053084,1528053085,1528053086,1528053087,1528053088,1528053089,1528053321,1528053322,1528053323,1528053324,1528053325,1528053326,1528053327,1528053339,1528053340,1528053341,1528053342,1528053343,1528053344,1528053345,1528053577,1528053578,1528053579,1528053580,1528053581,1528053582,1528053583,1528053584,1528053594,1528053595,1528053596,1528053597,1528053598,1528053599,1528053600,1528053601,1528053833,1528053834,1528053835,1528053836,1528053837,1528053838,1528053839,1528053840,1528053841,1528053842,1528053843,1528053844,1528053845,1528053846,1528053847,1528053848,1528053849,1528053850,1528053851,1528053852,1528053853,1528053854,1528053855,1528053856,1528053857,1528054089,1528054090,1528054091,1528054092,1528054093,1528054094,1528054095,1528054096,1528054097,1528054098,1528054099,1528054100,1528054101,1528054102,1528054103,1528054104,1528054105,1528054106,1528054107,1528054108,1528054109,1528054110,1528054111,1528054112,1528054113,1528054345,1528054346,1528054347,1528054348,1528054349,1528054350,1528054351,1528054352,1528054353,1528054354,1528054355,1528054356,1528054357,1528054358,1528054359,1528054360,1528054361,1528054362,1528054363,1528054364,1528054365,1528054366,1528054367,1528054368,1528054369,1528054601,1528054602,1528054603,1528054604,1528054605,1528054606,1528054607,1528054608,1528054609,1528054610,1528054611,1528054612,1528054613,1528054614,1528054615,1528054616,1528054617,1528054618,1528054619,1528054620,1528054621,1528054622,1528054623,1528054624,1528054625,1528054857,1528054858,1528054859,1528054860,1528054861,1528054862,1528054863,1528054864,1528054865,1528054866,1528054867,1528054868,1528054869,1528054870,1528054871,1528054872,1528054873,1528054874,1528054875,1528054876,1528054877,1528054878,1528054879,1528054880,1528054881,1528055113,1528055114,1528055115,1528055116,1528055117,1528055118,1528055119,1528055120,1528055121,1528055122,1528055123,1528055124,1528055125,1528055126,1528055127,1528055128,1528055129,1528055130,1528055131,1528055132,1528055133,1528055134,1528055135,1528055136,1528055137,1528055369,1528055370,1528055371,1528055372,1528055373,1528055374,1528055375,1528055376,1528055377,1528055378,1528055379,1528055380,1528055381,1528055382,1528055383,1528055384,1528055385,1528055386,1528055387,1528055388,1528055389,1528055390,1528055391,1528055392,1528055393,1528055625,1528055626,1528055627,1528055628,1528055629,1528055630,1528055631,1528055632,1528055633,1528055634,1528055635,1528055636,1528055637,1528055638,1528055639,1528055640,1528055641,1528055642,1528055643,1528055644,1528055645,1528055646,1528055647,1528055648,1528055649,1528055881,1528055882,1528055883,1528055884,1528055885,1528055886,1528055887,1528055888,1528055889,1528055890,1528055891,1528055892,1528055893,1528055894,1528055895,1528055896,1528055897,1528055898,1528055899,1528055900,1528055901,1528055902,1528055903,1528055904,1528055905,1528056138,1528056139,1528056140,1528056141,1528056142,1528056143,1528056144,1528056145,1528056146,1528056147,1528056148,1528056149,1528056150,1528056151,1528056152,1528056153,1528056154,1528056155,1528056156,1528056157,1528056158,1528056159,1528056160,1528056161,1528056394,1528056395,1528056396,1528056397,1528056398,1528056399,1528056400,1528056401,1528056402,1528056403,1528056404,1528056405,1528056406,1528056407,1528056408,1528056409,1528056410,1528056411,1528056412,1528056413,1528056414,1528056415,1528056416,1528056417,1528056650,1528056651,1528056652,1528056653,1528056654,1528056655,1528056656,1528056657,1528056658,1528056659,1528056660,1528056661,1528056662,1528056663,1528056664,1528056665,1528056666,1528056667,1528056668,1528056669,1528056670,1528056671,1528056672,1528056673,1528056906,1528056907,1528056908,1528056909,1528056910,1528056911,1528056912,1528056913,1528056914,1528056915,1528056916,1528056917,1528056918,1528056919,1528056920,1528056921,1528056922,1528056923,1528056924,1528056925,1528056926,1528056927,1528056928,1528056929,1528057162,1528057163,1528057164,1528057165,1528057166,1528057167,1528057168,1528057169,1528057170,1528057171,1528057172,1528057173,1528057174,1528057175,1528057176,1528057177,1528057178,1528057179,1528057180,1528057181,1528057182,1528057183,1528057184,1528057185,1528057418,1528057419,1528057420,1528057421,1528057422,1528057423,1528057424,1528057425,1528057426,1528057427,1528057428,1528057429,1528057430,1528057431,1528057432,1528057433,1528057434,1528057435,1528057436,1528057437,1528057438,1528057439,1528057440,1528057441,1528057674,1528057675,1528057676,1528057677,1528057678,1528057679,1528057680,1528057681,1528057682,1528057683,1528057684,1528057685,1528057686,1528057687,1528057688,1528057689,1528057690,1528057691,1528057692,1528057693,1528057694,1528057695,1528057696,1528057697,1528057929,1528057930,1528057931,1528057932,1528057933,1528057934,1528057935,1528057936,1528057937,1528057938,1528057939,1528057940,1528057941,1528057942,1528057943,1528057944,1528057945,1528057946,1528057947,1528057948,1528057949,1528057950,1528057951,1528057952,1528057953,1528058184,1528058185,1528058186,1528058187,1528058188,1528058189,1528058190,1528058191,1528058192,1528058193,1528058194,1528058195,1528058196,1528058197,1528058198,1528058199,1528058200,1528058201,1528058202,1528058203,1528058204,1528058205,1528058206,1528058207,1528058208,1528058209,1528058396,1528058397,1528058398,1528058399,1528058400,1528058401,1528058402,1528058403,1528058404,1528058405,1528058406,1528058407,1528058408,1528058409,1528058410,1528058411,1528058412,1528058413,1528058414,1528058415,1528058416,1528058417,1528058418,1528058419,1528058420,1528058421,1528058422,1528058423,1528058424,1528058425,1528058426,1528058427,1528058428,1528058429,1528058430,1528058431,1528058432,1528058433,1528058434,1528058435,1528058436,1528058437,1528058438,1528058439,1528058440,1528058441,1528058442,1528058443,1528058444,1528058445,1528058446,1528058447,1528058448,1528058449,1528058450,1528058451,1528058452,1528058453,1528058454,1528058455,1528058456,1528058457,1528058458,1528058459,1528058460,1528058461,1528058462,1528058463,1528058464,1528058465,1528058652,1528058653,1528058654,1528058655,1528058656,1528058657,1528058658,1528058659,1528058660,1528058661,1528058662,1528058663,1528058664,1528058665,1528058666,1528058667,1528058668,1528058669,1528058670,1528058671,1528058672,1528058673,1528058674,1528058675,1528058676,1528058677,1528058678,1528058679,1528058680,1528058681,1528058682,1528058683,1528058684,1528058685,1528058686,1528058687,1528058688,1528058689,1528058690,1528058691,1528058692,1528058693,1528058694,1528058695,1528058696,1528058697,1528058698,1528058699,1528058700,1528058701,1528058702,1528058703,1528058704,1528058705,1528058706,1528058707,1528058708,1528058709,1528058710,1528058711,1528058712,1528058713,1528058714,1528058715,1528058716,1528058717,1528058718,1528058719,1528058720,1528058721,1528058908,1528058909,1528058910,1528058911,1528058912,1528058913,1528058914,1528058915,1528058916,1528058917,1528058918,1528058919,1528058920,1528058921,1528058922,1528058923,1528058924,1528058925,1528058926,1528058927,1528058928,1528058929,1528058930,1528058931,1528058932,1528058933,1528058934,1528058935,1528058936,1528058937,1528058938,1528058939,1528058940,1528058941,1528058942,1528058943,1528058944,1528058945,1528058946,1528058947,1528058948,1528058949,1528058950,1528058951,1528058952,1528058953,1528058954,1528058955,1528058956,1528058957,1528058958,1528058959,1528058960,1528058961,1528058962,1528058963,1528058964,1528058965,1528058966,1528058967,1528058968,1528058969,1528058970,1528058971,1528058972,1528058973,1528058974,1528058975,1528058976,1528058977,1528059164,1528059165,1528059166,1528059167,1528059168,1528059169,1528059170,1528059171,1528059172,1528059173,1528059174,1528059175,1528059176,1528059177,1528059178,1528059179,1528059180,1528059181,1528059182,1528059183,1528059184,1528059185,1528059186,1528059187,1528059188,1528059189,1528059190,1528059191,1528059192,1528059193,1528059194,1528059195,1528059196,1528059197,1528059198,1528059199,1528059200,1528059201,1528059202,1528059203,1528059204,1528059205,1528059206,1528059207,1528059208,1528059209,1528059210,1528059211,1528059212,1528059213,1528059214,1528059215,1528059216,1528059217,1528059218,1528059219,1528059220,1528059221,1528059222,1528059223,1528059224,1528059225,1528059226,1528059227,1528059228,1528059229,1528059230,1528059231,1528059232,1528059233,1528059420,1528059421,1528059422,1528059423,1528059424,1528059425,1528059426,1528059427,1528059428,1528059429,1528059430,1528059431,1528059432,1528059433,1528059434,1528059435,1528059436,1528059437,1528059438,1528059439,1528059440,1528059441,1528059442,1528059443,1528059444,1528059445,1528059446,1528059447,1528059448,1528059449,1528059450,1528059451,1528059452,1528059453,1528059454,1528059455,1528059456,1528059457,1528059458,1528059459,1528059460,1528059461,1528059462,1528059463,1528059464,1528059465,1528059466,1528059467,1528059468,1528059469,1528059470,1528059471,1528059472,1528059473,1528059474,1528059475,1528059476,1528059477,1528059478,1528059479,1528059480,1528059481,1528059482,1528059483,1528059484,1528059485,1528059486,1528059487,1528059488,1528059489,1528059676,1528059677,1528059678,1528059679,1528059680,1528059681,1528059682,1528059683,1528059684,1528059685,1528059686,1528059687,1528059688,1528059689,1528059690,1528059691,1528059692,1528059693,1528059694,1528059695,1528059696,1528059697,1528059698,1528059699,1528059700,1528059701,1528059702,1528059703,1528059704,1528059705,1528059706,1528059707,1528059708,1528059709,1528059710,1528059711,1528059712,1528059713,1528059714,1528059715,1528059716,1528059717,1528059718,1528059719,1528059720,1528059721,1528059722,1528059723,1528059724,1528059725,1528059726,1528059727,1528059728,1528059729,1528059730,1528059731,1528059732,1528059733,1528059734,1528059735,1528059736,1528059737,1528059738,1528059739,1528059740,1528059741,1528059742,1528059743,1528059744,1528059745,1528059932,1528059933,1528059934,1528059935,1528059936,1528059937,1528059938,1528059939,1528059940,1528059941,1528059942,1528059943,1528059944,1528059945,1528059946,1528059947,1528059948,1528059949,1528059950,1528059951,1528059952,1528059953,1528059954,1528059955,1528059956,1528059957,1528059958,1528059959,1528059960,1528059961,1528059962,1528059963,1528059964,1528059965,1528059966,1528059967,1528059968,1528059969,1528059970,1528059971,1528059972,1528059973,1528059974,1528059975,1528059976,1528059977,1528059978,1528059979,1528059980,1528059981,1528059982,1528059983,1528059984,1528059985,1528059986,1528059987,1528059988,1528059989,1528059990,1528059991,1528059992,1528059993,1528059994,1528059995,1528059996,1528059997,1528059998,1528059999,1528060000,1528060001,1528060188,1528060189,1528060190,1528060191,1528060192,1528060193,1528060194,1528060195,1528060196,1528060197,1528060198,1528060199,1528060200,1528060201,1528060202,1528060203,1528060204,1528060205,1528060206,1528060207,1528060208,1528060209,1528060210,1528060211,1528060212,1528060213,1528060223,1528060224,1528060225,1528060226,1528060227,1528060228,1528060229,1528060230,1528060231,1528060232,1528060233,1528060234,1528060235,1528060236,1528060237,1528060238,1528060239,1528060240,1528060241,1528060242,1528060243,1528060244,1528060245,1528060246,1528060247,1528060248,1528060249,1528060250,1528060251,1528060252,1528060253,1528060254,1528060255,1528060256,1528060257,1528060443,1528060444,1528060445,1528060446,1528060447,1528060448,1528060449,1528060450,1528060451,1528060452,1528060453,1528060454,1528060455,1528060456,1528060457,1528060458,1528060459,1528060460,1528060461,1528060462,1528060463,1528060464,1528060465,1528060466,1528060467,1528060468,1528060480,1528060481,1528060482,1528060483,1528060484,1528060485,1528060486,1528060487,1528060488,1528060489,1528060490,1528060491,1528060492,1528060493,1528060494,1528060495,1528060496,1528060497,1528060498,1528060499,1528060500,1528060501,1528060502,1528060503,1528060504,1528060505,1528060506,1528060507,1528060508,1528060509,1528060510,1528060511,1528060512,1528060513,1366776893,1366776892,1366776891,1366776890,1360288535,1360288536,1360288537,1360288538,1528060699,1528060700,1528060701,1528060702,1528060703,1528060704,1528060705,1528060706,1528060707,1528060708,1528060709,1528060710,1528060711,1528060712,1528060713,1528060714,1528060715,1528060716,1528060717,1528060718,1528060719,1528060720,1528060721,1528060722,1528060723,1528060724,1528060736,1528060737,1528060738,1528060739,1528060740,1528060741,1528060742,1528060743,1528060744,1528060745,1528060746,1528060747,1528060748,1528060749,1528060750,1528060751,1528060752,1528060753,1528060754,1528060755,1528060756,1528060757,1528060758,1528060759,1528060760,1528060761,1528060762,1528060763,1528060764,1528060765,1528060766,1528060767,1528060768,1528060769,1366776889,1366776888,1366776887,1366776886,1360288791,1360288792,1360288793,1360288794,1528060955,1528060956,1528060957,1528060958,1528060959,1528060960,1528060961,1528060962,1528060963,1528060964,1528060965,1528060966,1528060967,1528060968,1528060969,1528060970,1528060971,1528060972,1528060973,1528060974,1528060975,1528060976,1528060977,1528060978,1528060979,1528060980,1528060992,1528060993,1528060994,1528060995,1528060996,1528060997,1528060998,1528060999,1528061000,1528061001,1528061002,1528061003,1528061004,1528061005,1528061006,1528061007,1528061008,1528061009,1528061010,1528061011,1528061012,1528061013,1528061014,1528061015,1528061016,1528061017,1528061018,1528061019,1528061020,1528061021,1528061022,1528061023,1528061024,1528061025,1366776885,1366776884,1366776883,1366776882,1360289047,1360289048,1360289049,1360289050,1528061211,1528061212,1528061213,1528061214,1528061215,1528061216,1528061217,1528061218,1528061219,1528061220,1528061221,1528061222,1528061223,1528061224,1528061225,1528061226,1528061227,1528061228,1528061229,1528061230,1528061231,1528061232,1528061233,1528061234,1528061235,1528061236,1528061248,1528061249,1528061250,1528061251,1528061252,1528061253,1528061254,1528061255,1528061256,1528061257,1528061258,1528061259,1528061260,1528061261,1528061262,1528061263,1528061264,1528061265,1528061266,1528061267,1528061268,1528061269,1528061270,1528061271,1528061272,1528061273,1528061274,1528061275,1528061276,1528061277,1528061278,1528061279,1528061280,1528061281,1366776881,1366776880,1366776879,1366776878,1360289303,1360289304,1360289305,1360289306,1528061467,1528061468,1528061469,1528061470,1528061471,1528061472,1528061473,1528061474,1528061475,1528061476,1528061477,1528061478,1528061479,1528061480,1528061481,1528061482,1528061483,1528061484,1528061485,1528061486,1528061487,1528061488,1528061489,1528061490,1528061491,1528061492,1528061504,1528061505,1528061506,1528061507,1528061508,1528061509,1528061510,1528061511,1528061512,1528061513,1528061514,1528061515,1528061516,1528061517,1528061518,1528061519,1528061520,1528061521,1528061522,1528061523,1528061524,1528061525,1528061526,1528061527,1528061528,1528061529,1528061530,1528061531,1528061532,1528061533,1528061534,1528061535,1528061536,1528061537,1366776877,1366776876,1366776875,1366776874,1360289559,1360289560,1360289561,1360289562,1528061723,1528061724,1528061725,1528061726,1528061727,1528061728,1528061729,1528061730,1528061731,1528061732,1528061733,1528061734,1528061735,1528061736,1528061737,1528061738,1528061739,1528061740,1528061741,1528061742,1528061743,1528061744,1528061745,1528061746,1528061747,1528061748,1528061760,1528061761,1528061762,1528061763,1528061764,1528061765,1528061766,1528061767,1528061768,1528061769,1528061770,1528061771,1528061772,1528061773,1528061774,1528061775,1528061776,1528061777,1528061778,1528061779,1528061780,1528061781,1528061782,1528061783,1528061784,1528061785,1528061786,1528061787,1528061788,1528061789,1528061790,1528061791,1528061792,1528061793,1366776873,1366776872,1366776871,1366776870,1360289815,1360289816,1360289817,1360289818,1528061979,1528061980,1528061981,1528061982,1528061983,1528061984,1528061985,1528061986,1528061987,1528061988,1528061989,1528061990,1528061991,1528061992,1528061993,1528061994,1528061995,1528061996,1528061997,1528061998,1528061999,1528062000,1528062001,1528062002,1528062003,1528062004,1528062016,1528062017,1528062018,1528062019,1528062020,1528062021,1528062022,1528062023,1528062024,1528062025,1528062026,1528062027,1528062028,1528062029,1528062030,1528062031,1528062032,1528062033,1528062034,1528062035,1528062036,1528062037,1528062038,1528062039,1528062040,1528062041,1528062042,1528062043,1528062044,1528062045,1528062046,1528062047,1528062048,1528062049,1366776869,1366776868,1366776867,1366776866,1360290071,1360290072,1360290073,1360290074,1528062235,1528062236,1528062237,1528062238,1528062239,1528062240,1528062241,1528062242,1528062243,1528062244,1528062245,1528062246,1528062247,1528062248,1528062249,1528062250,1528062251,1528062252,1528062253,1528062254,1528062255,1528062256,1528062257,1528062258,1528062259,1528062260,1528062272,1528062273,1528062274,1528062275,1528062276,1528062277,1528062278,1528062279,1528062280,1528062281,1528062282,1528062283,1528062284,1528062285,1528062286,1528062287,1528062288,1528062289,1528062290,1528062291,1528062292,1528062293,1528062294,1528062295,1528062296,1528062297,1528062298,1528062299,1528062300,1528062301,1528062302,1528062303,1528062304,1528062305,1360335707,1360335708,1360335709,1360335710,1360335711,1360335712,1360335713,1360335963,1360335964,1360335965,1360335966,1360335967,1360335968,1360335969,1360336219,1360336220,1360336221,1360336222,1360336223,1360336224,1360336225,1360336475,1360336476,1360336477,1360336478,1360336479,1360336480,1360336481,1360336731,1360336732,1360336733,1360336734,1360336735,1360336736,1360336737,1360336987,1360336988,1360336989,1360336990,1360336991,1360336992,1360336993,1360337243,1360337244,1360337245,1360337246,1360337247,1360337248,1360337249,1360337499,1360337500,1360337501,1360337502,1360337503,1360337504,1360337505,1528109915,1528109916,1528109917,1528109918,1528109919,1528109920,1528109921,1528110171,1528110172,1528110173,1528110174,1528110175,1528110176,1528110177,1528110428,1528110429,1528110430,1528110431,1528110432,1528110433,1528110684,1528110685,1528110686,1528110687,1528110688,1528110689,1528110940,1528110941,1528110942,1528110943,1528110944,1528110945,1528111196,1528111197,1528111198,1528111199,1528111200,1528111201,1528111452,1528111453,1528111454,1528111455,1528111456,1528111457,1528111707,1528111708,1528111709,1528111710,1528111711,1528111712,1528111713,1528111963,1528111964,1528111965,1528111966,1528111967,1528111968,1528111969,1528112219,1528112220,1528112221,1528112222,1528112223,1528112224,1528112225,1528112475,1528112476,1528112477,1528112478,1528112479,1528112480,1528112481,1528112731,1528112732,1528112733,1528112734,1528112735,1528112736,1528112737,1528112987,1528112988,1528112989,1528112990,1528112991,1528112992,1528112993,1528113243,1528113244,1528113245,1528113246,1528113247,1528113248,1528113249,1528113499,1528113500,1528113501,1528113502,1528113503,1528113504,1528113505,1528113755,1528113756,1528113757,1528113758,1528113759,1528113760,1528113761,1528114011,1528114012,1528114013,1528114014,1528114015,1528114016,1528114017,1528114267,1528114268,1528114269,1528114270,1528114271,1528114272,1528114273,1528114523,1528114524,1528114525,1528114526,1528114527,1528114528,1528114529,1528114779,1528114780,1528114781,1528114782,1528114783,1528114784,1528114785,1528115035,1528115036,1528115037,1528115038,1528115039,1528115040,1528115041,1528115291,1528115292,1528115293,1528115294,1528115295,1528115296,1528115297,1528115547,1528115548,1528115549,1528115550,1528115551,1528115552,1528115553,1528115803,1528115804,1528115805,1528115806,1528115807,1528115808,1528115809,1528116059,1528116060,1528116061,1528116062,1528116063,1528116064,1528116065,1528116315,1528116316,1528116317,1528116318,1528116319,1528116320,1528116321,1528116571,1528116572,1528116573,1528116574,1528116575,1528116576,1528116577,1528116827,1528116828,1528116829,1528116830,1528116831,1528116832,1528116833,1528117065,1528117066,1528117067,1528117068,1528117069,1528117070,1528117071,1528117083,1528117084,1528117085,1528117086,1528117087,1528117088,1528117089,1528117321,1528117322,1528117323,1528117324,1528117325,1528117326,1528117327,1528117339,1528117340,1528117341,1528117342,1528117343,1528117344,1528117345,1528117577,1528117578,1528117579,1528117580,1528117581,1528117582,1528117583,1528117595,1528117596,1528117597,1528117598,1528117599,1528117600,1528117601,1528117833,1528117834,1528117835,1528117836,1528117837,1528117838,1528117839,1528117851,1528117852,1528117853,1528117854,1528117855,1528117856,1528117857,1528118089,1528118090,1528118091,1528118092,1528118093,1528118094,1528118095,1528118107,1528118108,1528118109,1528118110,1528118111,1528118112,1528118113,1528118345,1528118346,1528118347,1528118348,1528118349,1528118350,1528118351,1528118363,1528118364,1528118365,1528118366,1528118367,1528118368,1528118369,1528118601,1528118602,1528118603,1528118604,1528118605,1528118606,1528118607,1528118619,1528118620,1528118621,1528118622,1528118623,1528118624,1528118625,1528118857,1528118858,1528118859,1528118860,1528118861,1528118862,1528118863,1528118875,1528118876,1528118877,1528118878,1528118879,1528118880,1528118881,1528119113,1528119114,1528119115,1528119116,1528119117,1528119118,1528119119,1528119120,1528119130,1528119131,1528119132,1528119133,1528119134,1528119135,1528119136,1528119137,1528119369,1528119370,1528119371,1528119372,1528119373,1528119374,1528119375,1528119376,1528119377,1528119378,1528119379,1528119380,1528119381,1528119382,1528119383,1528119384,1528119385,1528119386,1528119387,1528119388,1528119389,1528119390,1528119391,1528119392,1528119393,1528119625,1528119626,1528119627,1528119628,1528119629,1528119630,1528119631,1528119632,1528119633,1528119634,1528119635,1528119636,1528119637,1528119638,1528119639,1528119640,1528119641,1528119642,1528119643,1528119644,1528119645,1528119646,1528119647,1528119648,1528119649,1528119881,1528119882,1528119883,1528119884,1528119885,1528119886,1528119887,1528119888,1528119889,1528119890,1528119891,1528119892,1528119893,1528119894,1528119895,1528119896,1528119897,1528119898,1528119899,1528119900,1528119901,1528119902,1528119903,1528119904,1528119905,1528120137,1528120138,1528120139,1528120140,1528120141,1528120142,1528120143,1528120144,1528120145,1528120146,1528120147,1528120148,1528120149,1528120150,1528120151,1528120152,1528120153,1528120154,1528120155,1528120156,1528120157,1528120158,1528120159,1528120160,1528120161,1528120393,1528120394,1528120395,1528120396,1528120397,1528120398,1528120399,1528120400,1528120401,1528120402,1528120403,1528120404,1528120405,1528120406,1528120407,1528120408,1528120409,1528120410,1528120411,1528120412,1528120413,1528120414,1528120415,1528120416,1528120417,1528120649,1528120650,1528120651,1528120652,1528120653,1528120654,1528120655,1528120656,1528120657,1528120658,1528120659,1528120660,1528120661,1528120662,1528120663,1528120664,1528120665,1528120666,1528120667,1528120668,1528120669,1528120670,1528120671,1528120672,1528120673,1528120905,1528120906,1528120907,1528120908,1528120909,1528120910,1528120911,1528120912,1528120913,1528120914,1528120915,1528120916,1528120917,1528120918,1528120919,1528120920,1528120921,1528120922,1528120923,1528120924,1528120925,1528120926,1528120927,1528120928,1528120929,1528121161,1528121162,1528121163,1528121164,1528121165,1528121166,1528121167,1528121168,1528121169,1528121170,1528121171,1528121172,1528121173,1528121174,1528121175,1528121176,1528121177,1528121178,1528121179,1528121180,1528121181,1528121182,1528121183,1528121184,1528121185,1528121417,1528121418,1528121419,1528121420,1528121421,1528121422,1528121423,1528121424,1528121425,1528121426,1528121427,1528121428,1528121429,1528121430,1528121431,1528121432,1528121433,1528121434,1528121435,1528121436,1528121437,1528121438,1528121439,1528121440,1528121441,1528121674,1528121675,1528121676,1528121677,1528121678,1528121679,1528121680,1528121681,1528121682,1528121683,1528121684,1528121685,1528121686,1528121687,1528121688,1528121689,1528121690,1528121691,1528121692,1528121693,1528121694,1528121695,1528121696,1528121697,1528121930,1528121931,1528121932,1528121933,1528121934,1528121935,1528121936,1528121937,1528121938,1528121939,1528121940,1528121941,1528121942,1528121943,1528121944,1528121945,1528121946,1528121947,1528121948,1528121949,1528121950,1528121951,1528121952,1528121953,1528122186,1528122187,1528122188,1528122189,1528122190,1528122191,1528122192,1528122193,1528122194,1528122195,1528122196,1528122197,1528122198,1528122199,1528122200,1528122201,1528122202,1528122203,1528122204,1528122205,1528122206,1528122207,1528122208,1528122209,1528122442,1528122443,1528122444,1528122445,1528122446,1528122447,1528122448,1528122449,1528122450,1528122451,1528122452,1528122453,1528122454,1528122455,1528122456,1528122457,1528122458,1528122459,1528122460,1528122461,1528122462,1528122463,1528122464,1528122465,1528122698,1528122699,1528122700,1528122701,1528122702,1528122703,1528122704,1528122705,1528122706,1528122707,1528122708,1528122709,1528122710,1528122711,1528122712,1528122713,1528122714,1528122715,1528122716,1528122717,1528122718,1528122719,1528122720,1528122721,1528122954,1528122955,1528122956,1528122957,1528122958,1528122959,1528122960,1528122961,1528122962,1528122963,1528122964,1528122965,1528122966,1528122967,1528122968,1528122969,1528122970,1528122971,1528122972,1528122973,1528122974,1528122975,1528122976,1528122977,1528123210,1528123211,1528123212,1528123213,1528123214,1528123215,1528123216,1528123217,1528123218,1528123219,1528123220,1528123221,1528123222,1528123223,1528123224,1528123225,1528123226,1528123227,1528123228,1528123229,1528123230,1528123231,1528123232,1528123233,1528123465,1528123466,1528123467,1528123468,1528123469,1528123470,1528123471,1528123472,1528123473,1528123474,1528123475,1528123476,1528123477,1528123478,1528123479,1528123480,1528123481,1528123482,1528123483,1528123484,1528123485,1528123486,1528123487,1528123488,1528123489,1528123720,1528123721,1528123722,1528123723,1528123724,1528123725,1528123726,1528123727,1528123728,1528123729,1528123730,1528123731,1528123732,1528123733,1528123734,1528123735,1528123736,1528123737,1528123738,1528123739,1528123740,1528123741,1528123742,1528123743,1528123744,1528123745,1528123932,1528123933,1528123937,1528123938,1528123939,1528123940,1528123941,1528123942,1528123946,1528123947,1528123948,1528123949,1528123950,1528123951,1528123955,1528123956,1528123957,1528123958,1528123959,1528123960,1528123961,1528123962,1528123963,1528123964,1528123965,1528123966,1528123967,1528123968,1528123969,1528123970,1528123971,1528123972,1528123973,1528123974,1528123975,1528123976,1528123977,1528123978,1528123979,1528123980,1528123981,1528123982,1528123983,1528123984,1528123985,1528123986,1528123987,1528123988,1528123989,1528123990,1528123991,1528123992,1528123993,1528123994,1528123995,1528123996,1528123997,1528123998,1528123999,1528124000,1528124001,1528124188,1528124189,1528124193,1528124194,1528124195,1528124196,1528124197,1528124198,1528124202,1528124203,1528124204,1528124205,1528124206,1528124207,1528124211,1528124212,1528124213,1528124214,1528124215,1528124216,1528124217,1528124218,1528124219,1528124220,1528124221,1528124222,1528124223,1528124224,1528124225,1528124226,1528124227,1528124228,1528124229,1528124230,1528124231,1528124232,1528124233,1528124234,1528124235,1528124236,1528124237,1528124238,1528124239,1528124240,1528124241,1528124242,1528124243,1528124244,1528124245,1528124246,1528124247,1528124248,1528124249,1528124250,1528124251,1528124252,1528124253,1528124254,1528124255,1528124256,1528124257,1528124444,1528124445,1528124449,1528124450,1528124451,1528124452,1528124453,1528124454,1528124458,1528124459,1528124460,1528124461,1528124462,1528124463,1528124467,1528124468,1528124469,1528124470,1528124471,1528124472,1528124473,1528124474,1528124475,1528124476,1528124477,1528124478,1528124479,1528124480,1528124481,1528124482,1528124483,1528124484,1528124485,1528124486,1528124487,1528124488,1528124489,1528124490,1528124491,1528124492,1528124493,1528124494,1528124495,1528124496,1528124497,1528124498,1528124499,1528124500,1528124501,1528124502,1528124503,1528124504,1528124505,1528124506,1528124507,1528124508,1528124509,1528124510,1528124511,1528124512,1528124513,1528124700,1528124701,1528124702,1528124703,1528124704,1528124705,1528124706,1528124707,1528124708,1528124709,1528124710,1528124711,1528124712,1528124713,1528124714,1528124715,1528124716,1528124717,1528124718,1528124719,1528124720,1528124721,1528124722,1528124723,1528124724,1528124725,1528124726,1528124727,1528124728,1528124729,1528124730,1528124731,1528124732,1528124733,1528124734,1528124735,1528124736,1528124737,1528124738,1528124739,1528124740,1528124741,1528124742,1528124743,1528124744,1528124745,1528124746,1528124747,1528124748,1528124749,1528124750,1528124751,1528124752,1528124753,1528124754,1528124755,1528124756,1528124757,1528124758,1528124759,1528124760,1528124761,1528124762,1528124763,1528124764,1528124765,1528124766,1528124767,1528124768,1528124769,1528124956,1528124957,1528124958,1528124959,1528124960,1528124961,1528124962,1528124963,1528124964,1528124965,1528124966,1528124967,1528124968,1528124969,1528124970,1528124971,1528124972,1528124973,1528124974,1528124975,1528124976,1528124977,1528124978,1528124979,1528124980,1528124981,1528124982,1528124983,1528124984,1528124985,1528124986,1528124987,1528124988,1528124989,1528124990,1528124991,1528124992,1528124993,1528124994,1528124995,1528124996,1528124997,1528124998,1528124999,1528125000,1528125001,1528125002,1528125003,1528125004,1528125005,1528125006,1528125007,1528125008,1528125009,1528125010,1528125011,1528125012,1528125013,1528125014,1528125015,1528125016,1528125017,1528125018,1528125019,1528125020,1528125021,1528125022,1528125023,1528125024,1528125025,1528125212,1528125213,1528125214,1528125215,1528125216,1528125217,1528125218,1528125219,1528125220,1528125221,1528125222,1528125223,1528125224,1528125225,1528125226,1528125227,1528125228,1528125229,1528125230,1528125231,1528125232,1528125233,1528125234,1528125235,1528125236,1528125237,1528125238,1528125239,1528125240,1528125241,1528125242,1528125243,1528125244,1528125245,1528125246,1528125247,1528125248,1528125249,1528125250,1528125251,1528125252,1528125253,1528125254,1528125255,1528125256,1528125257,1528125258,1528125259,1528125260,1528125261,1528125262,1528125263,1528125264,1528125265,1528125266,1528125267,1528125268,1528125269,1528125270,1528125271,1528125272,1528125273,1528125274,1528125275,1528125276,1528125277,1528125278,1528125279,1528125280,1528125281,1528125468,1528125469,1528125470,1528125471,1528125472,1528125473,1528125474,1528125475,1528125476,1528125477,1528125478,1528125479,1528125480,1528125481,1528125482,1528125483,1528125484,1528125485,1528125486,1528125487,1528125488,1528125489,1528125490,1528125491,1528125492,1528125493,1528125494,1528125495,1528125496,1528125497,1528125498,1528125499,1528125500,1528125501,1528125502,1528125503,1528125504,1528125505,1528125506,1528125507,1528125508,1528125509,1528125510,1528125511,1528125512,1528125513,1528125514,1528125515,1528125516,1528125517,1528125518,1528125519,1528125520,1528125521,1528125522,1528125523,1528125524,1528125525,1528125526,1528125527,1528125528,1528125529,1528125530,1528125531,1528125532,1528125533,1528125534,1528125535,1528125536,1528125537,1528125724,1528125725,1528125726,1528125727,1528125728,1528125729,1528125730,1528125731,1528125732,1528125733,1528125734,1528125735,1528125736,1528125737,1528125738,1528125739,1528125740,1528125741,1528125742,1528125743,1528125744,1528125745,1528125746,1528125747,1528125748,1528125749,1528125759,1528125760,1528125761,1528125762,1528125763,1528125764,1528125765,1528125766,1528125767,1528125768,1528125769,1528125770,1528125771,1528125772,1528125773,1528125774,1528125775,1528125776,1528125777,1528125778,1528125779,1528125780,1528125781,1528125782,1528125783,1528125784,1528125785,1528125786,1528125787,1528125788,1528125789,1528125790,1528125791,1528125792,1528125793,1528125979,1528125980,1528125981,1528125982,1528125983,1528125984,1528125985,1528125986,1528125987,1528125988,1528125989,1528125990,1528125991,1528125992,1528125993,1528125994,1528125995,1528125996,1528125997,1528125998,1528125999,1528126000,1528126001,1528126002,1528126003,1528126004,1528126016,1528126017,1528126018,1528126019,1528126020,1528126021,1528126022,1528126023,1528126024,1528126025,1528126026,1528126027,1528126028,1528126029,1528126030,1528126031,1528126032,1528126033,1528126034,1528126035,1528126036,1528126037,1528126038,1528126039,1528126040,1528126041,1528126042,1528126043,1528126044,1528126045,1528126046,1528126047,1528126048,1528126049,1366776865,1366776864,1366776863,1366776862,1360354071,1360354072,1360354073,1360354074,1528126235,1528126236,1528126237,1528126238,1528126239,1528126240,1528126241,1528126242,1528126243,1528126244,1528126245,1528126246,1528126247,1528126248,1528126249,1528126250,1528126251,1528126252,1528126253,1528126254,1528126255,1528126256,1528126257,1528126258,1528126259,1528126260,1528126272,1528126273,1528126274,1528126275,1528126276,1528126277,1528126278,1528126279,1528126280,1528126281,1528126282,1528126283,1528126284,1528126285,1528126286,1528126287,1528126288,1528126289,1528126290,1528126291,1528126292,1528126293,1528126294,1528126295,1528126296,1528126297,1528126298,1528126299,1528126300,1528126301,1528126302,1528126303,1528126304,1528126305,1366776861,1366776860,1366776859,1366776858,1360354327,1360354328,1360354329,1360354330,1528126491,1528126492,1528126493,1528126494,1528126495,1528126496,1528126497,1528126498,1528126499,1528126500,1528126501,1528126502,1528126503,1528126504,1528126505,1528126506,1528126507,1528126508,1528126509,1528126510,1528126511,1528126512,1528126513,1528126514,1528126515,1528126516,1528126528,1528126529,1528126530,1528126531,1528126532,1528126533,1528126534,1528126535,1528126536,1528126537,1528126538,1528126539,1528126540,1528126541,1528126542,1528126543,1528126544,1528126545,1528126546,1528126547,1528126548,1528126549,1528126550,1528126551,1528126552,1528126553,1528126554,1528126555,1528126556,1528126557,1528126558,1528126559,1528126560,1528126561,1366776857,1366776856,1366776855,1366776854,1360354583,1360354584,1360354585,1360354586,1528126747,1528126748,1528126749,1528126750,1528126751,1528126752,1528126753,1528126754,1528126755,1528126756,1528126757,1528126758,1528126759,1528126760,1528126761,1528126762,1528126763,1528126764,1528126765,1528126766,1528126767,1528126768,1528126769,1528126770,1528126771,1528126772,1528126784,1528126785,1528126786,1528126787,1528126788,1528126789,1528126790,1528126791,1528126792,1528126793,1528126794,1528126795,1528126796,1528126797,1528126798,1528126799,1528126800,1528126801,1528126802,1528126803,1528126804,1528126805,1528126806,1528126807,1528126808,1528126809,1528126810,1528126811,1528126812,1528126813,1528126814,1528126815,1528126816,1528126817,1366776853,1366776852,1366776851,1534548833,1360354839,1360354840,1360354841,1360354842,1528127003,1528127004,1528127005,1528127006,1528127007,1528127008,1528127009,1528127010,1528127011,1528127012,1528127013,1528127014,1528127015,1528127016,1528127017,1528127018,1528127019,1528127020,1528127021,1528127022,1528127023,1528127024,1528127025,1528127026,1528127027,1528127028,1528127040,1528127041,1528127042,1528127043,1528127044,1528127045,1528127046,1528127047,1528127048,1528127049,1528127050,1528127051,1528127052,1528127053,1528127054,1528127055,1528127056,1528127057,1528127058,1528127059,1528127060,1528127061,1528127062,1528127063,1528127064,1528127065,1528127066,1528127067,1528127068,1528127069,1528127070,1528127071,1528127072,1528127073,1534548832,1534548831,1534548830,1534548829,1360355095,1360355096,1360355097,1360355098,1528127259,1528127260,1528127261,1528127262,1528127263,1528127264,1528127265,1528127266,1528127267,1528127268,1528127269,1528127270,1528127271,1528127272,1528127273,1528127274,1528127275,1528127276,1528127277,1528127278,1528127279,1528127280,1528127281,1528127282,1528127283,1528127284,1528127296,1528127297,1528127298,1528127299,1528127300,1528127301,1528127302,1528127303,1528127304,1528127305,1528127306,1528127307,1528127308,1528127309,1528127310,1528127311,1528127312,1528127313,1528127314,1528127315,1528127316,1528127317,1528127318,1528127319,1528127320,1528127321,1528127322,1528127323,1528127324,1528127325,1528127326,1528127327,1528127328,1528127329,1534548828,1534548827,1534548826,1366776665,1360355351,1360355352,1360355353,1360355354,1528127515,1528127516,1528127517,1528127518,1528127519,1528127520,1528127521,1528127522,1528127523,1528127524,1528127525,1528127526,1528127527,1528127528,1528127529,1528127530,1528127531,1528127532,1528127533,1528127534,1528127535,1528127536,1528127537,1528127538,1528127539,1528127540,1528127552,1528127553,1528127554,1528127555,1528127556,1528127557,1528127558,1528127559,1528127560,1528127561,1528127562,1528127563,1528127564,1528127565,1528127566,1528127567,1528127568,1528127569,1528127570,1528127571,1528127572,1528127573,1528127574,1528127575,1528127576,1528127577,1528127578,1528127579,1528127580,1528127581,1528127582,1528127583,1528127584,1528127585,1366776664,1366776663,1366776662,1366776661,1360355607,1360355608,1360355609,1360355610,1528127771,1528127772,1528127773,1528127774,1528127775,1528127776,1528127777,1528127778,1528127779,1528127780,1528127781,1528127782,1528127783,1528127784,1528127785,1528127786,1528127787,1528127788,1528127789,1528127790,1528127791,1528127792,1528127793,1528127794,1528127795,1528127796,1528127808,1528127809,1528127810,1528127811,1528127812,1528127813,1528127814,1528127815,1528127816,1528127817,1528127818,1528127819,1528127820,1528127821,1528127822,1528127823,1528127824,1528127825,1528127826,1528127827,1528127828,1528127829,1528127830,1528127831,1528127832,1528127833,1528127834,1528127835,1528127836,1528127837,1528127838,1528127839,1528127840,1528127841,1360401243,1360401244,1360401245,1360401246,1360401247,1360401248,1360401249,1360401499,1360401500,1360401501,1360401502,1360401503,1360401504,1360401505,1360401755,1360401756,1360401757,1360401758,1360401759,1360401760,1360401761,1360402011,1360402012,1360402013,1360402014,1360402015,1360402016,1360402017,1360402267,1360402268,1360402269,1360402270,1360402271,1360402272,1360402273,1360402523,1360402524,1360402525,1360402526,1360402527,1360402528,1360402529,1360402779,1360402780,1360402781,1360402782,1360402783,1360402784,1360402785,1360403035,1360403036,1360403037,1360403038,1360403039,1360403040,1360403041,1528175451,1528175452,1528175453,1528175454,1528175455,1528175456,1528175457,1528175707,1528175708,1528175709,1528175710,1528175711,1528175712,1528175713,1528175963,1528175964,1528175965,1528175966,1528175967,1528175968,1528175969,1528176219,1528176220,1528176221,1528176222,1528176223,1528176224,1528176225,1528176475,1528176476,1528176477,1528176478,1528176479,1528176480,1528176481,1528176731,1528176732,1528176733,1528176734,1528176735,1528176736,1528176737,1528176987,1528176988,1528176989,1528176990,1528176991,1528176992,1528176993,1528177243,1528177244,1528177245,1528177246,1528177247,1528177248,1528177249,1528177499,1528177500,1528177501,1528177502,1528177503,1528177504,1528177505,1528177755,1528177756,1528177757,1528177758,1528177759,1528177760,1528177761,1528178011,1528178012,1528178013,1528178014,1528178015,1528178016,1528178017,1528178267,1528178268,1528178269,1528178270,1528178271,1528178272,1528178273,1528178523,1528178524,1528178525,1528178526,1528178527,1528178528,1528178529,1528178779,1528178780,1528178781,1528178782,1528178783,1528178784,1528178785,1528179035,1528179036,1528179037,1528179038,1528179039,1528179040,1528179041,1528179291,1528179292,1528179293,1528179294,1528179295,1528179296,1528179297,1528179547,1528179548,1528179549,1528179550,1528179551,1528179552,1528179553,1528179803,1528179804,1528179805,1528179806,1528179807,1528179808,1528179809,1528180059,1528180060,1528180061,1528180062,1528180063,1528180064,1528180065,1528180315,1528180316,1528180317,1528180318,1528180319,1528180320,1528180321,1528180571,1528180572,1528180573,1528180574,1528180575,1528180576,1528180577,1528180827,1528180828,1528180829,1528180830,1528180831,1528180832,1528180833,1528181083,1528181084,1528181085,1528181086,1528181087,1528181088,1528181089,1528181339,1528181340,1528181341,1528181342,1528181343,1528181344,1528181345,1528181595,1528181596,1528181597,1528181598,1528181599,1528181600,1528181601,1528181851,1528181852,1528181853,1528181854,1528181855,1528181856,1528181857,1528182107,1528182108,1528182109,1528182110,1528182111,1528182112,1528182113,1528182363,1528182364,1528182365,1528182366,1528182367,1528182368,1528182369,1528182601,1528182602,1528182603,1528182604,1528182605,1528182606,1528182607,1528182619,1528182620,1528182621,1528182622,1528182623,1528182624,1528182625,1528182857,1528182858,1528182859,1528182860,1528182861,1528182862,1528182863,1528182875,1528182876,1528182877,1528182878,1528182879,1528182880,1528182881,1528183113,1528183114,1528183115,1528183116,1528183117,1528183118,1528183119,1528183131,1528183132,1528183133,1528183134,1528183135,1528183136,1528183137,1528183369,1528183370,1528183371,1528183372,1528183373,1528183374,1528183375,1528183387,1528183388,1528183389,1528183390,1528183391,1528183392,1528183393,1528183625,1528183626,1528183627,1528183628,1528183629,1528183630,1528183631,1528183643,1528183644,1528183645,1528183646,1528183647,1528183648,1528183649,1528183881,1528183882,1528183883,1528183884,1528183885,1528183886,1528183887,1528183899,1528183900,1528183901,1528183902,1528183903,1528183904,1528183905,1528184137,1528184138,1528184139,1528184140,1528184141,1528184142,1528184143,1528184155,1528184156,1528184157,1528184158,1528184159,1528184160,1528184161,1528184393,1528184394,1528184395,1528184396,1528184397,1528184398,1528184399,1528184411,1528184412,1528184413,1528184414,1528184415,1528184416,1528184417,1528184649,1528184650,1528184651,1528184652,1528184653,1528184654,1528184655,1528184656,1528184666,1528184667,1528184668,1528184669,1528184670,1528184671,1528184672,1528184673,1528184905,1528184906,1528184907,1528184908,1528184909,1528184910,1528184911,1528184912,1528184913,1528184914,1528184915,1528184916,1528184917,1528184918,1528184919,1528184920,1528184921,1528184922,1528184923,1528184924,1528184925,1528184926,1528184927,1528184928,1528184929,1528185161,1528185162,1528185163,1528185164,1528185165,1528185166,1528185167,1528185168,1528185169,1528185170,1528185171,1528185172,1528185173,1528185174,1528185175,1528185176,1528185177,1528185178,1528185179,1528185180,1528185181,1528185182,1528185183,1528185184,1528185185,1528185417,1528185418,1528185419,1528185420,1528185421,1528185422,1528185423,1528185424,1528185425,1528185426,1528185427,1528185428,1528185429,1528185430,1528185431,1528185432,1528185433,1528185434,1528185435,1528185436,1528185437,1528185438,1528185439,1528185440,1528185441,1528185673,1528185674,1528185675,1528185676,1528185677,1528185678,1528185679,1528185680,1528185681,1528185682,1528185683,1528185684,1528185685,1528185686,1528185687,1528185688,1528185689,1528185690,1528185691,1528185692,1528185693,1528185694,1528185695,1528185696,1528185697,1528185929,1528185930,1528185931,1528185932,1528185933,1528185934,1528185935,1528185936,1528185937,1528185938,1528185939,1528185940,1528185941,1528185942,1528185943,1528185944,1528185945,1528185946,1528185947,1528185948,1528185949,1528185950,1528185951,1528185952,1528185953,1528186185,1528186186,1528186187,1528186188,1528186189,1528186190,1528186191,1528186192,1528186193,1528186194,1528186195,1528186196,1528186197,1528186198,1528186199,1528186200,1528186201,1528186202,1528186203,1528186204,1528186205,1528186206,1528186207,1528186208,1528186209,1528186441,1528186442,1528186443,1528186444,1528186445,1528186446,1528186447,1528186448,1528186449,1528186450,1528186451,1528186452,1528186453,1528186454,1528186455,1528186456,1528186457,1528186458,1528186459,1528186460,1528186461,1528186462,1528186463,1528186464,1528186465,1528186697,1528186698,1528186699,1528186700,1528186701,1528186702,1528186703,1528186704,1528186705,1528186706,1528186707,1528186708,1528186709,1528186710,1528186711,1528186712,1528186713,1528186714,1528186715,1528186716,1528186717,1528186718,1528186719,1528186720,1528186721,1528186953,1528186954,1528186955,1528186956,1528186957,1528186958,1528186959,1528186960,1528186961,1528186962,1528186963,1528186964,1528186965,1528186966,1528186967,1528186968,1528186969,1528186970,1528186971,1528186972,1528186973,1528186974,1528186975,1528186976,1528186977,1528187210,1528187211,1528187212,1528187213,1528187214,1528187215,1528187216,1528187217,1528187218,1528187219,1528187220,1528187221,1528187222,1528187223,1528187224,1528187225,1528187226,1528187227,1528187228,1528187229,1528187230,1528187231,1528187232,1528187233,1528187466,1528187467,1528187468,1528187469,1528187470,1528187471,1528187472,1528187473,1528187474,1528187475,1528187476,1528187477,1528187478,1528187479,1528187480,1528187481,1528187482,1528187483,1528187484,1528187485,1528187486,1528187487,1528187488,1528187489,1528187722,1528187723,1528187724,1528187725,1528187726,1528187727,1528187728,1528187729,1528187730,1528187731,1528187732,1528187733,1528187734,1528187735,1528187736,1528187737,1528187738,1528187739,1528187740,1528187741,1528187742,1528187743,1528187744,1528187745,1528187978,1528187979,1528187980,1528187981,1528187982,1528187983,1528187984,1528187985,1528187986,1528187987,1528187988,1528187989,1528187990,1528187991,1528187992,1528187993,1528187994,1528187995,1528187996,1528187997,1528187998,1528187999,1528188000,1528188001,1528188234,1528188235,1528188236,1528188237,1528188238,1528188239,1528188240,1528188241,1528188242,1528188243,1528188244,1528188245,1528188246,1528188247,1528188248,1528188249,1528188250,1528188251,1528188252,1528188253,1528188254,1528188255,1528188256,1528188257,1528188490,1528188491,1528188492,1528188493,1528188494,1528188495,1528188496,1528188497,1528188498,1528188499,1528188500,1528188501,1528188502,1528188503,1528188504,1528188505,1528188506,1528188507,1528188508,1528188509,1528188510,1528188511,1528188512,1528188513,1528188746,1528188747,1528188748,1528188749,1528188750,1528188751,1528188752,1528188753,1528188754,1528188755,1528188756,1528188757,1528188758,1528188759,1528188760,1528188761,1528188762,1528188763,1528188764,1528188765,1528188766,1528188767,1528188768,1528188769,1528189001,1528189002,1528189003,1528189004,1528189005,1528189006,1528189007,1528189008,1528189009,1528189010,1528189011,1528189012,1528189013,1528189014,1528189015,1528189016,1528189017,1528189018,1528189019,1528189020,1528189021,1528189022,1528189023,1528189024,1528189025,1528189256,1528189257,1528189258,1528189259,1528189260,1528189261,1528189262,1528189263,1528189264,1528189265,1528189266,1528189267,1528189268,1528189269,1528189270,1528189271,1528189272,1528189273,1528189274,1528189275,1528189276,1528189277,1528189278,1528189279,1528189280,1528189281,1528189468,1528189474,1528189475,1528189476,1528189477,1528189483,1528189484,1528189485,1528189486,1528189492,1528189493,1528189494,1528189495,1528189496,1528189497,1528189498,1528189499,1528189500,1528189501,1528189502,1528189503,1528189504,1528189505,1528189506,1528189507,1528189508,1528189509,1528189510,1528189511,1528189512,1528189513,1528189514,1528189515,1528189516,1528189517,1528189518,1528189519,1528189520,1528189521,1528189522,1528189523,1528189524,1528189525,1528189526,1528189527,1528189528,1528189529,1528189530,1528189531,1528189532,1528189533,1528189534,1528189535,1528189536,1528189537,1528189724,1528189730,1528189731,1528189732,1528189733,1528189739,1528189740,1528189741,1528189742,1528189748,1528189749,1528189750,1528189751,1528189752,1528189753,1528189754,1528189755,1528189756,1528189757,1528189758,1528189759,1528189760,1528189761,1528189762,1528189763,1528189764,1528189765,1528189766,1528189767,1528189768,1528189769,1528189770,1528189771,1528189772,1528189773,1528189774,1528189775,1528189776,1528189777,1528189778,1528189779,1528189780,1528189781,1528189782,1528189783,1528189784,1528189785,1528189786,1528189787,1528189788,1528189789,1528189790,1528189791,1528189792,1528189793,1528189980,1528189986,1528189987,1528189988,1528189989,1528189995,1528189996,1528189997,1528189998,1528190004,1528190005,1528190006,1528190007,1528190008,1528190009,1528190010,1528190011,1528190012,1528190013,1528190014,1528190015,1528190016,1528190017,1528190018,1528190019,1528190020,1528190021,1528190022,1528190023,1528190024,1528190025,1528190026,1528190027,1528190028,1528190029,1528190030,1528190031,1528190032,1528190033,1528190034,1528190035,1528190036,1528190037,1528190038,1528190039,1528190040,1528190041,1528190042,1528190043,1528190044,1528190045,1528190046,1528190047,1528190048,1528190049,1528190236,1528190237,1528190241,1528190242,1528190243,1528190244,1528190245,1528190246,1528190250,1528190251,1528190252,1528190253,1528190254,1528190255,1528190259,1528190260,1528190261,1528190262,1528190263,1528190264,1528190265,1528190266,1528190267,1528190268,1528190269,1528190270,1528190271,1528190272,1528190273,1528190274,1528190275,1528190276,1528190277,1528190278,1528190279,1528190280,1528190281,1528190282,1528190283,1528190284,1528190285,1528190286,1528190287,1528190288,1528190289,1528190290,1528190291,1528190292,1528190293,1528190294,1528190295,1528190296,1528190297,1528190298,1528190299,1528190300,1528190301,1528190302,1528190303,1528190304,1528190305,1528190492,1528190493,1528190494,1528190495,1528190496,1528190497,1528190498,1528190499,1528190500,1528190501,1528190502,1528190503,1528190504,1528190505,1528190506,1528190507,1528190508,1528190509,1528190510,1528190511,1528190512,1528190513,1528190514,1528190515,1528190516,1528190517,1528190518,1528190519,1528190520,1528190521,1528190522,1528190523,1528190524,1528190525,1528190526,1528190527,1528190528,1528190529,1528190530,1528190531,1528190532,1528190533,1528190534,1528190535,1528190536,1528190537,1528190538,1528190539,1528190540,1528190541,1528190542,1528190543,1528190544,1528190545,1528190546,1528190547,1528190548,1528190549,1528190550,1528190551,1528190552,1528190553,1528190554,1528190555,1528190556,1528190557,1528190558,1528190559,1528190560,1528190561,1528190748,1528190749,1528190750,1528190751,1528190752,1528190753,1528190754,1528190755,1528190756,1528190757,1528190758,1528190759,1528190760,1528190761,1528190762,1528190763,1528190764,1528190765,1528190766,1528190767,1528190768,1528190769,1528190770,1528190771,1528190772,1528190773,1528190774,1528190775,1528190776,1528190777,1528190778,1528190779,1528190780,1528190781,1528190782,1528190783,1528190784,1528190785,1528190786,1528190787,1528190788,1528190789,1528190790,1528190791,1528190792,1528190793,1528190794,1528190795,1528190796,1528190797,1528190798,1528190799,1528190800,1528190801,1528190802,1528190803,1528190804,1528190805,1528190806,1528190807,1528190808,1528190809,1528190810,1528190811,1528190812,1528190813,1528190814,1528190815,1528190816,1528190817,1528191004,1528191005,1528191006,1528191007,1528191008,1528191009,1528191010,1528191011,1528191012,1528191013,1528191014,1528191015,1528191016,1528191017,1528191018,1528191019,1528191020,1528191021,1528191022,1528191023,1528191024,1528191025,1528191026,1528191027,1528191028,1528191029,1528191030,1528191031,1528191032,1528191033,1528191034,1528191035,1528191036,1528191037,1528191038,1528191039,1528191040,1528191041,1528191042,1528191043,1528191044,1528191045,1528191046,1528191047,1528191048,1528191049,1528191050,1528191051,1528191052,1528191053,1528191054,1528191055,1528191056,1528191057,1528191058,1528191059,1528191060,1528191061,1528191062,1528191063,1528191064,1528191065,1528191066,1528191067,1528191068,1528191069,1528191070,1528191071,1528191072,1528191073,1528191260,1528191261,1528191262,1528191263,1528191264,1528191265,1528191266,1528191267,1528191268,1528191269,1528191270,1528191271,1528191272,1528191273,1528191274,1528191275,1528191276,1528191277,1528191278,1528191279,1528191280,1528191281,1528191282,1528191283,1528191284,1528191285,1528191295,1528191296,1528191297,1528191298,1528191299,1528191300,1528191301,1528191302,1528191303,1528191304,1528191305,1528191306,1528191307,1528191308,1528191309,1528191310,1528191311,1528191312,1528191313,1528191314,1528191315,1528191316,1528191317,1528191318,1528191319,1528191320,1528191321,1528191322,1528191323,1528191324,1528191325,1528191326,1528191327,1528191328,1528191329,1528191515,1528191516,1528191517,1528191518,1528191519,1528191520,1528191521,1528191522,1528191523,1528191524,1528191525,1528191526,1528191527,1528191528,1528191529,1528191530,1528191531,1528191532,1528191533,1528191534,1528191535,1528191536,1528191537,1528191538,1528191539,1528191540,1528191552,1528191553,1528191554,1528191555,1528191556,1528191557,1528191558,1528191559,1528191560,1528191561,1528191562,1528191563,1528191564,1528191565,1528191566,1528191567,1528191568,1528191569,1528191570,1528191571,1528191572,1528191573,1528191574,1528191575,1528191576,1528191577,1528191578,1528191579,1528191580,1528191581,1528191582,1528191583,1528191584,1528191585,1366776660,1366776659,1366776658,1366776657,1360419607,1360419608,1360419609,1360419610,1528191771,1528191772,1528191773,1528191774,1528191775,1528191776,1528191777,1528191778,1528191779,1528191780,1528191781,1528191782,1528191783,1528191784,1528191785,1528191786,1528191787,1528191788,1528191789,1528191790,1528191791,1528191792,1528191793,1528191794,1528191795,1528191796,1528191808,1528191809,1528191810,1528191811,1528191812,1528191813,1528191814,1528191815,1528191816,1528191817,1528191818,1528191819,1528191820,1528191821,1528191822,1528191823,1528191824,1528191825,1528191826,1528191827,1528191828,1528191829,1528191830,1528191831,1528191832,1528191833,1528191834,1528191835,1528191836,1528191837,1528191838,1528191839,1528191840,1528191841,1366776656,1366776655,1366776654,1366776653,1360419863,1360419864,1360419865,1360419866,1528192027,1528192028,1528192029,1528192030,1528192031,1528192032,1528192033,1528192034,1528192035,1528192036,1528192037,1528192038,1528192039,1528192040,1528192041,1528192042,1528192043,1528192044,1528192045,1528192046,1528192047,1528192048,1528192049,1528192050,1528192051,1528192052,1528192064,1528192065,1528192066,1528192067,1528192068,1528192069,1528192070,1528192071,1528192072,1528192073,1528192074,1528192075,1528192076,1528192077,1528192078,1528192079,1528192080,1528192081,1528192082,1528192083,1528192084,1528192085,1528192086,1528192087,1528192088,1528192089,1528192090,1528192091,1528192092,1528192093,1528192094,1528192095,1528192096,1528192097,1366776652,1366776651,1366776650,1366776649,1360420119,1360420120,1360420121,1360420122,1528192283,1528192284,1528192285,1528192286,1528192287,1528192288,1528192289,1528192290,1528192291,1528192292,1528192293,1528192294,1528192295,1528192296,1528192297,1528192298,1528192299,1528192300,1528192301,1528192302,1528192303,1528192304,1528192305,1528192306,1528192307,1528192308,1528192320,1528192321,1528192322,1528192323,1528192324,1528192325,1528192326,1528192327,1528192328,1528192329,1528192330,1528192331,1528192332,1528192333,1528192334,1528192335,1528192336,1528192337,1528192338,1528192339,1528192340,1528192341,1528192342,1528192343,1528192344,1528192345,1528192346,1528192347,1528192348,1528192349,1528192350,1528192351,1528192352,1528192353,1366776648,1366776647,1366776646,1366776645,1360420375,1360420376,1360420377,1360420378,1528192539,1528192540,1528192541,1528192542,1528192543,1528192544,1528192545,1528192546,1528192547,1528192548,1528192549,1528192550,1528192551,1528192552,1528192553,1528192554,1528192555,1528192556,1528192557,1528192558,1528192559,1528192560,1528192561,1528192562,1528192563,1528192564,1528192576,1528192577,1528192578,1528192579,1528192580,1528192581,1528192582,1528192583,1528192584,1528192585,1528192586,1528192587,1528192588,1528192589,1528192590,1528192591,1528192592,1528192593,1528192594,1528192595,1528192596,1528192597,1528192598,1528192599,1528192600,1528192601,1528192602,1528192603,1528192604,1528192605,1528192606,1528192607,1528192608,1528192609,1366776644,1366776643,1366776642,1366776641,1360420631,1360420632,1360420633,1360420634,1528192795,1528192796,1528192797,1528192798,1528192799,1528192800,1528192801,1528192802,1528192803,1528192804,1528192805,1528192806,1528192807,1528192808,1528192809,1528192810,1528192811,1528192812,1528192813,1528192814,1528192815,1528192816,1528192817,1528192818,1528192819,1528192820,1528192832,1528192833,1528192834,1528192835,1528192836,1528192837,1528192838,1528192839,1528192840,1528192841,1528192842,1528192843,1528192844,1528192845,1528192846,1528192847,1528192848,1528192849,1528192850,1528192851,1528192852,1528192853,1528192854,1528192855,1528192856,1528192857,1528192858,1528192859,1528192860,1528192861,1528192862,1528192863,1528192864,1528192865,1366776640,1366776639,1366776638,1366776637,1360420887,1360420888,1360420889,1360420890,1528193051,1528193052,1528193053,1528193054,1528193055,1528193056,1528193057,1528193058,1528193059,1528193060,1528193061,1528193062,1528193063,1528193064,1528193065,1528193066,1528193067,1528193068,1528193069,1528193070,1528193071,1528193072,1528193073,1528193074,1528193075,1528193076,1528193088,1528193089,1528193090,1528193091,1528193092,1528193093,1528193094,1528193095,1528193096,1528193097,1528193098,1528193099,1528193100,1528193101,1528193102,1528193103,1528193104,1528193105,1528193106,1528193107,1528193108,1528193109,1528193110,1528193111,1528193112,1528193113,1528193114,1528193115,1528193116,1528193117,1528193118,1528193119,1528193120,1528193121,1366776636,1366776635,1366776634,1366776633,1360421143,1360421144,1360421145,1360421146,1528193307,1528193308,1528193309,1528193310,1528193311,1528193312,1528193313,1528193314,1528193315,1528193316,1528193317,1528193318,1528193319,1528193320,1528193321,1528193322,1528193323,1528193324,1528193325,1528193326,1528193327,1528193328,1528193329,1528193330,1528193331,1528193332,1528193344,1528193345,1528193346,1528193347,1528193348,1528193349,1528193350,1528193351,1528193352,1528193353,1528193354,1528193355,1528193356,1528193357,1528193358,1528193359,1528193360,1528193361,1528193362,1528193363,1528193364,1528193365,1528193366,1528193367,1528193368,1528193369,1528193370,1528193371,1528193372,1528193373,1528193374,1528193375,1528193376,1528193377,1360466779,1360466780,1360466781,1360466782,1360466783,1360466784,1360466785,1360467035,1360467036,1360467037,1360467038,1360467039,1360467040,1360467041,1360467291,1360467292,1360467293,1360467294,1360467295,1360467296,1360467297,1360467547,1360467548,1360467549,1360467550,1360467551,1360467552,1360467553,1360467803,1360467804,1360467805,1360467806,1360467807,1360467808,1360467809,1360468059,1360468060,1360468061,1360468062,1360468063,1360468064,1360468065,1360468315,1360468316,1360468317,1360468318,1360468319,1360468320,1360468321,1360468571,1360468572,1360468573,1360468574,1360468575,1360468576,1360468577,1528240987,1528240988,1528240989,1528240990,1528240991,1528240992,1528240993,1528241243,1528241244,1528241245,1528241246,1528241247,1528241248,1528241249,1528241500,1528241501,1528241502,1528241503,1528241504,1528241505,1528241756,1528241757,1528241758,1528241759,1528241760,1528241761,1528242012,1528242013,1528242014,1528242015,1528242016,1528242017,1528242268,1528242269,1528242270,1528242271,1528242272,1528242273,1528242524,1528242525,1528242526,1528242527,1528242528,1528242529,1528242779,1528242780,1528242781,1528242782,1528242783,1528242784,1528242785,1528243035,1528243036,1528243037,1528243038,1528243039,1528243040,1528243041,1528243291,1528243292,1528243293,1528243294,1528243295,1528243296,1528243297,1528243547,1528243548,1528243549,1528243550,1528243551,1528243552,1528243553,1528243803,1528243804,1528243805,1528243806,1528243807,1528243808,1528243809,1528244059,1528244060,1528244061,1528244062,1528244063,1528244064,1528244065,1528244315,1528244316,1528244317,1528244318,1528244319,1528244320,1528244321,1528244571,1528244572,1528244573,1528244574,1528244575,1528244576,1528244577,1528244827,1528244828,1528244829,1528244830,1528244831,1528244832,1528244833,1528245083,1528245084,1528245085,1528245086,1528245087,1528245088,1528245089,1528245339,1528245340,1528245341,1528245342,1528245343,1528245344,1528245345,1528245595,1528245596,1528245597,1528245598,1528245599,1528245600,1528245601,1528245851,1528245852,1528245853,1528245854,1528245855,1528245856,1528245857,1528246107,1528246108,1528246109,1528246110,1528246111,1528246112,1528246113,1528246363,1528246364,1528246365,1528246366,1528246367,1528246368,1528246369,1528246619,1528246620,1528246621,1528246622,1528246623,1528246624,1528246625,1528246875,1528246876,1528246877,1528246878,1528246879,1528246880,1528246881,1528247131,1528247132,1528247133,1528247134,1528247135,1528247136,1528247137,1528247387,1528247388,1528247389,1528247390,1528247391,1528247392,1528247393,1528247643,1528247644,1528247645,1528247646,1528247647,1528247648,1528247649,1528247899,1528247900,1528247901,1528247902,1528247903,1528247904,1528247905,1528248137,1528248138,1528248139,1528248140,1528248141,1528248142,1528248143,1528248155,1528248156,1528248157,1528248158,1528248159,1528248160,1528248161,1528248393,1528248394,1528248395,1528248396,1528248397,1528248398,1528248399,1528248411,1528248412,1528248413,1528248414,1528248415,1528248416,1528248417,1528248649,1528248650,1528248651,1528248652,1528248653,1528248654,1528248655,1528248667,1528248668,1528248669,1528248670,1528248671,1528248672,1528248673,1528248905,1528248906,1528248907,1528248908,1528248909,1528248910,1528248911,1528248923,1528248924,1528248925,1528248926,1528248927,1528248928,1528248929,1528249161,1528249162,1528249163,1528249164,1528249165,1528249166,1528249167,1528249179,1528249180,1528249181,1528249182,1528249183,1528249184,1528249185,1528249417,1528249418,1528249419,1528249420,1528249421,1528249422,1528249423,1528249435,1528249436,1528249437,1528249438,1528249439,1528249440,1528249441,1528249673,1528249674,1528249675,1528249676,1528249677,1528249678,1528249679,1528249691,1528249692,1528249693,1528249694,1528249695,1528249696,1528249697,1528249929,1528249930,1528249931,1528249932,1528249933,1528249934,1528249935,1528249947,1528249948,1528249949,1528249950,1528249951,1528249952,1528249953,1528250185,1528250186,1528250187,1528250188,1528250189,1528250190,1528250191,1528250192,1528250202,1528250203,1528250204,1528250205,1528250206,1528250207,1528250208,1528250209,1528250441,1528250442,1528250443,1528250444,1528250445,1528250446,1528250447,1528250448,1528250449,1528250450,1528250451,1528250452,1528250453,1528250454,1528250455,1528250456,1528250457,1528250458,1528250459,1528250460,1528250461,1528250462,1528250463,1528250464,1528250465,1528250697,1528250698,1528250699,1528250700,1528250701,1528250702,1528250703,1528250704,1528250705,1528250706,1528250707,1528250708,1528250709,1528250710,1528250711,1528250712,1528250713,1528250714,1528250715,1528250716,1528250717,1528250718,1528250719,1528250720,1528250721,1528250953,1528250954,1528250955,1528250956,1528250957,1528250958,1528250959,1528250960,1528250961,1528250962,1528250963,1528250964,1528250965,1528250966,1528250967,1528250968,1528250969,1528250970,1528250971,1528250972,1528250973,1528250974,1528250975,1528250976,1528250977,1528251209,1528251210,1528251211,1528251212,1528251213,1528251214,1528251215,1528251216,1528251217,1528251218,1528251219,1528251220,1528251221,1528251222,1528251223,1528251224,1528251225,1528251226,1528251227,1528251228,1528251229,1528251230,1528251231,1528251232,1528251233,1528251465,1528251466,1528251467,1528251468,1528251469,1528251470,1528251471,1528251472,1528251473,1528251474,1528251475,1528251476,1528251477,1528251478,1528251479,1528251480,1528251481,1528251482,1528251483,1528251484,1528251485,1528251486,1528251487,1528251488,1528251489,1528251721,1528251722,1528251723,1528251724,1528251725,1528251726,1528251727,1528251728,1528251729,1528251730,1528251731,1528251732,1528251733,1528251734,1528251735,1528251736,1528251737,1528251738,1528251739,1528251740,1528251741,1528251742,1528251743,1528251744,1528251745,1528251977,1528251978,1528251979,1528251980,1528251981,1528251982,1528251983,1528251984,1528251985,1528251986,1528251987,1528251988,1528251989,1528251990,1528251991,1528251992,1528251993,1528251994,1528251995,1528251996,1528251997,1528251998,1528251999,1528252000,1528252001,1528252233,1528252234,1528252235,1528252236,1528252237,1528252238,1528252239,1528252240,1528252241,1528252242,1528252243,1528252244,1528252245,1528252246,1528252247,1528252248,1528252249,1528252250,1528252251,1528252252,1528252253,1528252254,1528252255,1528252256,1528252257,1528252489,1528252490,1528252491,1528252492,1528252493,1528252494,1528252495,1528252496,1528252497,1528252498,1528252499,1528252500,1528252501,1528252502,1528252503,1528252504,1528252505,1528252506,1528252507,1528252508,1528252509,1528252510,1528252511,1528252512,1528252513,1528252746,1528252747,1528252748,1528252749,1528252750,1528252751,1528252752,1528252753,1528252754,1528252755,1528252756,1528252757,1528252758,1528252759,1528252760,1528252761,1528252762,1528252763,1528252764,1528252765,1528252766,1528252767,1528252768,1528252769,1528253002,1528253003,1528253004,1528253005,1528253006,1528253007,1528253008,1528253009,1528253010,1528253011,1528253012,1528253013,1528253014,1528253015,1528253016,1528253017,1528253018,1528253019,1528253020,1528253021,1528253022,1528253023,1528253024,1528253025,1528253258,1528253259,1528253260,1528253261,1528253262,1528253263,1528253264,1528253265,1528253266,1528253267,1528253268,1528253269,1528253270,1528253271,1528253272,1528253273,1528253274,1528253275,1528253276,1528253277,1528253278,1528253279,1528253280,1528253281,1528253514,1528253515,1528253516,1528253517,1528253518,1528253519,1528253520,1528253521,1528253522,1528253523,1528253524,1528253525,1528253526,1528253527,1528253528,1528253529,1528253530,1528253531,1528253532,1528253533,1528253534,1528253535,1528253536,1528253537,1528253770,1528253771,1528253772,1528253773,1528253774,1528253775,1528253776,1528253777,1528253778,1528253779,1528253780,1528253781,1528253782,1528253783,1528253784,1528253785,1528253786,1528253787,1528253788,1528253789,1528253790,1528253791,1528253792,1528253793,1528254026,1528254027,1528254028,1528254029,1528254030,1528254031,1528254032,1528254033,1528254034,1528254035,1528254036,1528254037,1528254038,1528254039,1528254040,1528254041,1528254042,1528254043,1528254044,1528254045,1528254046,1528254047,1528254048,1528254049,1528254282,1528254283,1528254284,1528254285,1528254286,1528254287,1528254288,1528254289,1528254290,1528254291,1528254292,1528254293,1528254294,1528254295,1528254296,1528254297,1528254298,1528254299,1528254300,1528254301,1528254302,1528254303,1528254304,1528254305,1528254537,1528254538,1528254539,1528254540,1528254541,1528254542,1528254543,1528254544,1528254545,1528254546,1528254547,1528254548,1528254549,1528254550,1528254551,1528254552,1528254553,1528254554,1528254555,1528254556,1528254557,1528254558,1528254559,1528254560,1528254561,1528254792,1528254793,1528254794,1528254795,1528254796,1528254797,1528254798,1528254799,1528254800,1528254801,1528254802,1528254803,1528254804,1528254805,1528254806,1528254807,1528254808,1528254809,1528254810,1528254811,1528254812,1528254813,1528254814,1528254815,1528254816,1528254817,1528255004,1528255010,1528255011,1528255012,1528255013,1528255019,1528255020,1528255021,1528255022,1528255028,1528255029,1528255030,1528255031,1528255032,1528255033,1528255034,1528255035,1528255036,1528255037,1528255038,1528255039,1528255040,1528255041,1528255042,1528255043,1528255044,1528255045,1528255046,1528255047,1528255048,1528255049,1528255050,1528255051,1528255052,1528255053,1528255054,1528255055,1528255056,1528255057,1528255058,1528255059,1528255060,1528255061,1528255062,1528255063,1528255064,1528255065,1528255066,1528255067,1528255068,1528255069,1528255070,1528255071,1528255072,1528255073,1528255260,1528255266,1528255267,1528255268,1528255269,1528255275,1528255276,1528255277,1528255278,1528255284,1528255285,1528255286,1528255287,1528255288,1528255289,1528255290,1528255291,1528255292,1528255293,1528255294,1528255295,1528255296,1528255297,1528255298,1528255299,1528255300,1528255301,1528255302,1528255303,1528255304,1528255305,1528255306,1528255307,1528255308,1528255309,1528255310,1528255311,1528255312,1528255313,1528255314,1528255315,1528255316,1528255317,1528255318,1528255319,1528255320,1528255321,1528255322,1528255323,1528255324,1528255325,1528255326,1528255327,1528255328,1528255329,1528255516,1528255522,1528255523,1528255524,1528255525,1528255531,1528255532,1528255533,1528255534,1528255540,1528255541,1528255542,1528255543,1528255544,1528255545,1528255546,1528255547,1528255548,1528255549,1528255550,1528255551,1528255552,1528255553,1528255554,1528255555,1528255556,1528255557,1528255558,1528255559,1528255560,1528255561,1528255562,1528255563,1528255564,1528255565,1528255566,1528255567,1528255568,1528255569,1528255570,1528255571,1528255572,1528255573,1528255574,1528255575,1528255576,1528255577,1528255578,1528255579,1528255580,1528255581,1528255582,1528255583,1528255584,1528255585,1528255772,1528255773,1528255777,1528255778,1528255779,1528255780,1528255781,1528255782,1528255786,1528255787,1528255788,1528255789,1528255790,1528255791,1528255795,1528255796,1528255797,1528255798,1528255799,1528255800,1528255801,1528255802,1528255803,1528255804,1528255805,1528255806,1528255807,1528255808,1528255809,1528255810,1528255811,1528255812,1528255813,1528255814,1528255815,1528255816,1528255817,1528255818,1528255819,1528255820,1528255821,1528255822,1528255823,1528255824,1528255825,1528255826,1528255827,1528255828,1528255829,1528255830,1528255831,1528255832,1528255833,1528255834,1528255835,1528255836,1528255837,1528255838,1528255839,1528255840,1528255841,1528256028,1528256029,1528256030,1528256031,1528256032,1528256033,1528256034,1528256035,1528256036,1528256037,1528256038,1528256039,1528256040,1528256041,1528256042,1528256043,1528256044,1528256045,1528256046,1528256047,1528256048,1528256049,1528256050,1528256051,1528256052,1528256053,1528256054,1528256055,1528256056,1528256057,1528256058,1528256059,1528256060,1528256061,1528256062,1528256063,1528256064,1528256065,1528256066,1528256067,1528256068,1528256069,1528256070,1528256071,1528256072,1528256073,1528256074,1528256075,1528256076,1528256077,1528256078,1528256079,1528256080,1528256081,1528256082,1528256083,1528256084,1528256085,1528256086,1528256087,1528256088,1528256089,1528256090,1528256091,1528256092,1528256093,1528256094,1528256095,1528256096,1528256097,1528256284,1528256285,1528256286,1528256287,1528256288,1528256289,1528256290,1528256291,1528256292,1528256293,1528256294,1528256295,1528256296,1528256297,1528256298,1528256299,1528256300,1528256301,1528256302,1528256303,1528256304,1528256305,1528256306,1528256307,1528256308,1528256309,1528256310,1528256311,1528256312,1528256313,1528256314,1528256315,1528256316,1528256317,1528256318,1528256319,1528256320,1528256321,1528256322,1528256323,1528256324,1528256325,1528256326,1528256327,1528256328,1528256329,1528256330,1528256331,1528256332,1528256333,1528256334,1528256335,1528256336,1528256337,1528256338,1528256339,1528256340,1528256341,1528256342,1528256343,1528256344,1528256345,1528256346,1528256347,1528256348,1528256349,1528256350,1528256351,1528256352,1528256353,1528256540,1528256541,1528256542,1528256543,1528256544,1528256545,1528256546,1528256547,1528256548,1528256549,1528256550,1528256551,1528256552,1528256553,1528256554,1528256555,1528256556,1528256557,1528256558,1528256559,1528256560,1528256561,1528256562,1528256563,1528256564,1528256565,1528256566,1528256567,1528256568,1528256569,1528256570,1528256571,1528256572,1528256573,1528256574,1528256575,1528256576,1528256577,1528256578,1528256579,1528256580,1528256581,1528256582,1528256583,1528256584,1528256585,1528256586,1528256587,1528256588,1528256589,1528256590,1528256591,1528256592,1528256593,1528256594,1528256595,1528256596,1528256597,1528256598,1528256599,1528256600,1528256601,1528256602,1528256603,1528256604,1528256605,1528256606,1528256607,1528256608,1528256609,1528256796,1528256797,1528256798,1528256799,1528256800,1528256801,1528256802,1528256803,1528256804,1528256805,1528256806,1528256807,1528256808,1528256809,1528256810,1528256811,1528256812,1528256813,1528256814,1528256815,1528256816,1528256817,1528256818,1528256819,1528256820,1528256821,1528256831,1528256832,1528256833,1528256834,1528256835,1528256836,1528256837,1528256838,1528256839,1528256840,1528256841,1528256842,1528256843,1528256844,1528256845,1528256846,1528256847,1528256848,1528256849,1528256850,1528256851,1528256852,1528256853,1528256854,1528256855,1528256856,1528256857,1528256858,1528256859,1528256860,1528256861,1528256862,1528256863,1528256864,1528256865,1528257051,1528257052,1528257053,1528257054,1528257055,1528257056,1528257057,1528257058,1528257059,1528257060,1528257061,1528257062,1528257063,1528257064,1528257065,1528257066,1528257067,1528257068,1528257069,1528257070,1528257071,1528257072,1528257073,1528257074,1528257075,1528257076,1528257088,1528257089,1528257090,1528257091,1528257092,1528257093,1528257094,1528257095,1528257096,1528257097,1528257098,1528257099,1528257100,1528257101,1528257102,1528257103,1528257104,1528257105,1528257106,1528257107,1528257108,1528257109,1528257110,1528257111,1528257112,1528257113,1528257114,1528257115,1528257116,1528257117,1528257118,1528257119,1528257120,1528257121,1366776632,1366776631,1366776630,1366776629,1360485143,1360485144,1360485145,1360485146,1528257307,1528257308,1528257309,1528257310,1528257311,1528257312,1528257313,1528257314,1528257315,1528257316,1528257317,1528257318,1528257319,1528257320,1528257321,1528257322,1528257323,1528257324,1528257325,1528257326,1528257327,1528257328,1528257329,1528257330,1528257331,1528257332,1528257344,1528257345,1528257346,1528257347,1528257348,1528257349,1528257350,1528257351,1528257352,1528257353,1528257354,1528257355,1528257356,1528257357,1528257358,1528257359,1528257360,1528257361,1528257362,1528257363,1528257364,1528257365,1528257366,1528257367,1528257368,1528257369,1528257370,1528257371,1528257372,1528257373,1528257374,1528257375,1528257376,1528257377,1366776628,1366776627,1366776626,1366776625,1360485399,1360485400,1360485401,1360485402,1528257563,1528257564,1528257565,1528257566,1528257567,1528257568,1528257569,1528257570,1528257571,1528257572,1528257573,1528257574,1528257575,1528257576,1528257577,1528257578,1528257579,1528257580,1528257581,1528257582,1528257583,1528257584,1528257585,1528257586,1528257587,1528257588,1528257600,1528257601,1528257602,1528257603,1528257604,1528257605,1528257606,1528257607,1528257608,1528257609,1528257610,1528257611,1528257612,1528257613,1528257614,1528257615,1528257616,1528257617,1528257618,1528257619,1528257620,1528257621,1528257622,1528257623,1528257624,1528257625,1528257626,1528257627,1528257628,1528257629,1528257630,1528257631,1528257632,1528257633,1366776624,1366776623,1366776622,1366776621,1360485655,1360485656,1360485657,1360485658,1528257819,1528257820,1528257821,1528257822,1528257823,1528257824,1528257825,1528257826,1528257827,1528257828,1528257829,1528257830,1528257831,1528257832,1528257833,1528257834,1528257835,1528257836,1528257837,1528257838,1528257839,1528257840,1528257841,1528257842,1528257843,1528257844,1528257856,1528257857,1528257858,1528257859,1528257860,1528257861,1528257862,1528257863,1528257864,1528257865,1528257866,1528257867,1528257868,1528257869,1528257870,1528257871,1528257872,1528257873,1528257874,1528257875,1528257876,1528257877,1528257878,1528257879,1528257880,1528257881,1528257882,1528257883,1528257884,1528257885,1528257886,1528257887,1528257888,1528257889,1366776620,1366776619,1366776618,1366776617,1360485911,1360485912,1360485913,1360485914,1528258075,1528258076,1528258077,1528258078,1528258079,1528258080,1528258081,1528258082,1528258083,1528258084,1528258085,1528258086,1528258087,1528258088,1528258089,1528258090,1528258091,1528258092,1528258093,1528258094,1528258095,1528258096,1528258097,1528258098,1528258099,1528258100,1528258112,1528258113,1528258114,1528258115,1528258116,1528258117,1528258118,1528258119,1528258120,1528258121,1528258122,1528258123,1528258124,1528258125,1528258126,1528258127,1528258128,1528258129,1528258130,1528258131,1528258132,1528258133,1528258134,1528258135,1528258136,1528258137,1528258138,1528258139,1528258140,1528258141,1528258142,1528258143,1528258144,1528258145,1366776616,1366776615,1366776614,1366776613,1360486167,1360486168,1360486169,1360486170,1528258331,1528258332,1528258333,1528258334,1528258335,1528258336,1528258337,1528258338,1528258339,1528258340,1528258341,1528258342,1528258343,1528258344,1528258345,1528258346,1528258347,1528258348,1528258349,1528258350,1528258351,1528258352,1528258353,1528258354,1528258355,1528258356,1528258368,1528258369,1528258370,1528258371,1528258372,1528258373,1528258374,1528258375,1528258376,1528258377,1528258378,1528258379,1528258380,1528258381,1528258382,1528258383,1528258384,1528258385,1528258386,1528258387,1528258388,1528258389,1528258390,1528258391,1528258392,1528258393,1528258394,1528258395,1528258396,1528258397,1528258398,1528258399,1528258400,1528258401,1366776612,1366776611,1366776610,1366776609,1360486423,1360486424,1360486425,1360486426,1528258587,1528258588,1528258589,1528258590,1528258591,1528258592,1528258593,1528258594,1528258595,1528258596,1528258597,1528258598,1528258599,1528258600,1528258601,1528258602,1528258603,1528258604,1528258605,1528258606,1528258607,1528258608,1528258609,1528258610,1528258611,1528258612,1528258624,1528258625,1528258626,1528258627,1528258628,1528258629,1528258630,1528258631,1528258632,1528258633,1528258634,1528258635,1528258636,1528258637,1528258638,1528258639,1528258640,1528258641,1528258642,1528258643,1528258644,1528258645,1528258646,1528258647,1528258648,1528258649,1528258650,1528258651,1528258652,1528258653,1528258654,1528258655,1528258656,1528258657,1366776608,1366776607,1366776606,1366776605,1360486679,1360486680,1360486681,1360486682,1528258843,1528258844,1528258845,1528258846,1528258847,1528258848,1528258849,1528258850,1528258851,1528258852,1528258853,1528258854,1528258855,1528258856,1528258857,1528258858,1528258859,1528258860,1528258861,1528258862,1528258863,1528258864,1528258865,1528258866,1528258867,1528258868,1528258880,1528258881,1528258882,1528258883,1528258884,1528258885,1528258886,1528258887,1528258888,1528258889,1528258890,1528258891,1528258892,1528258893,1528258894,1528258895,1528258896,1528258897,1528258898,1528258899,1528258900,1528258901,1528258902,1528258903,1528258904,1528258905,1528258906,1528258907,1528258908,1528258909,1528258910,1528258911,1528258912,1528258913,1360532315,1360532316,1360532317,1360532318,1360532319,1360532320,1360532321,1360532571,1360532572,1360532573,1360532574,1360532575,1360532576,1360532577,1360532827,1360532828,1360532829,1360532830,1360532831,1360532832,1360532833,1360533083,1360533084,1360533085,1360533086,1360533087,1360533088,1360533089,1360533339,1360533340,1360533341,1360533342,1360533343,1360533344,1360533345,1360533595,1360533596,1360533597,1360533598,1360533599,1360533600,1360533601,1360533851,1360533852,1360533853,1360533854,1360533855,1360533856,1360533857,1360534107,1360534108,1360534109,1360534110,1360534111,1360534112,1360534113,1528306523,1528306524,1528306525,1528306526,1528306527,1528306528,1528306529,1528306779,1528306780,1528306781,1528306782,1528306783,1528306784,1528306785,1528307035,1528307036,1528307037,1528307038,1528307039,1528307040,1528307041,1528307291,1528307292,1528307293,1528307294,1528307295,1528307296,1528307297,1528307547,1528307548,1528307549,1528307550,1528307551,1528307552,1528307553,1528307803,1528307804,1528307805,1528307806,1528307807,1528307808,1528307809,1528308059,1528308060,1528308061,1528308062,1528308063,1528308064,1528308065,1528308315,1528308316,1528308317,1528308318,1528308319,1528308320,1528308321,1528308571,1528308572,1528308573,1528308574,1528308575,1528308576,1528308577,1528308827,1528308828,1528308829,1528308830,1528308831,1528308832,1528308833,1528309083,1528309084,1528309085,1528309086,1528309087,1528309088,1528309089,1528309339,1528309340,1528309341,1528309342,1528309343,1528309344,1528309345,1528309595,1528309596,1528309597,1528309598,1528309599,1528309600,1528309601,1528309851,1528309852,1528309853,1528309854,1528309855,1528309856,1528309857,1528310107,1528310108,1528310109,1528310110,1528310111,1528310112,1528310113,1528310363,1528310364,1528310365,1528310366,1528310367,1528310368,1528310369,1528310619,1528310620,1528310621,1528310622,1528310623,1528310624,1528310625,1528310875,1528310876,1528310877,1528310878,1528310879,1528310880,1528310881,1528311131,1528311132,1528311133,1528311134,1528311135,1528311136,1528311137,1528311387,1528311388,1528311389,1528311390,1528311391,1528311392,1528311393,1528311643,1528311644,1528311645,1528311646,1528311647,1528311648,1528311649,1528311899,1528311900,1528311901,1528311902,1528311903,1528311904,1528311905,1528312155,1528312156,1528312157,1528312158,1528312159,1528312160,1528312161,1528312411,1528312412,1528312413,1528312414,1528312415,1528312416,1528312417,1528312667,1528312668,1528312669,1528312670,1528312671,1528312672,1528312673,1528312923,1528312924,1528312925,1528312926,1528312927,1528312928,1528312929,1528313179,1528313180,1528313181,1528313182,1528313183,1528313184,1528313185,1528313435,1528313436,1528313437,1528313438,1528313439,1528313440,1528313441,1528313673,1528313674,1528313675,1528313676,1528313677,1528313678,1528313679,1528313691,1528313692,1528313693,1528313694,1528313695,1528313696,1528313697,1528313929,1528313930,1528313931,1528313932,1528313933,1528313934,1528313935,1528313947,1528313948,1528313949,1528313950,1528313951,1528313952,1528313953,1528314185,1528314186,1528314187,1528314188,1528314189,1528314190,1528314191,1528314203,1528314204,1528314205,1528314206,1528314207,1528314208,1528314209,1528314441,1528314442,1528314443,1528314444,1528314445,1528314446,1528314447,1528314459,1528314460,1528314461,1528314462,1528314463,1528314464,1528314465,1528314697,1528314698,1528314699,1528314700,1528314701,1528314702,1528314703,1528314715,1528314716,1528314717,1528314718,1528314719,1528314720,1528314721,1528314953,1528314954,1528314955,1528314956,1528314957,1528314958,1528314959,1528314971,1528314972,1528314973,1528314974,1528314975,1528314976,1528314977,1528315209,1528315210,1528315211,1528315212,1528315213,1528315214,1528315215,1528315227,1528315228,1528315229,1528315230,1528315231,1528315232,1528315233,1528315465,1528315466,1528315467,1528315468,1528315469,1528315470,1528315471,1528315483,1528315484,1528315485,1528315486,1528315487,1528315488,1528315489,1528315721,1528315722,1528315723,1528315724,1528315725,1528315726,1528315727,1528315728,1528315738,1528315739,1528315740,1528315741,1528315742,1528315743,1528315744,1528315745,1528315977,1528315978,1528315979,1528315980,1528315981,1528315982,1528315983,1528315984,1528315985,1528315986,1528315987,1528315988,1528315989,1528315990,1528315991,1528315992,1528315993,1528315994,1528315995,1528315996,1528315997,1528315998,1528315999,1528316000,1528316001,1528316233,1528316234,1528316235,1528316236,1528316237,1528316238,1528316239,1528316240,1528316241,1528316242,1528316243,1528316244,1528316245,1528316246,1528316247,1528316248,1528316249,1528316250,1528316251,1528316252,1528316253,1528316254,1528316255,1528316256,1528316257,1528316489,1528316490,1528316491,1528316492,1528316493,1528316494,1528316495,1528316496,1528316497,1528316498,1528316499,1528316500,1528316501,1528316502,1528316503,1528316504,1528316505,1528316506,1528316507,1528316508,1528316509,1528316510,1528316511,1528316512,1528316513,1528316745,1528316746,1528316747,1528316748,1528316749,1528316750,1528316751,1528316752,1528316753,1528316754,1528316755,1528316756,1528316757,1528316758,1528316759,1528316760,1528316761,1528316762,1528316763,1528316764,1528316765,1528316766,1528316767,1528316768,1528316769,1528317001,1528317002,1528317003,1528317004,1528317005,1528317006,1528317007,1528317008,1528317009,1528317010,1528317011,1528317012,1528317013,1528317014,1528317015,1528317016,1528317017,1528317018,1528317019,1528317020,1528317021,1528317022,1528317023,1528317024,1528317025,1528317257,1528317258,1528317259,1528317260,1528317261,1528317262,1528317263,1528317264,1528317265,1528317266,1528317267,1528317268,1528317269,1528317270,1528317271,1528317272,1528317273,1528317274,1528317275,1528317276,1528317277,1528317278,1528317279,1528317280,1528317281,1528317513,1528317514,1528317515,1528317516,1528317517,1528317518,1528317519,1528317520,1528317521,1528317522,1528317523,1528317524,1528317525,1528317526,1528317527,1528317528,1528317529,1528317530,1528317531,1528317532,1528317533,1528317534,1528317535,1528317536,1528317537,1528317769,1528317770,1528317771,1528317772,1528317773,1528317774,1528317775,1528317776,1528317777,1528317778,1528317779,1528317780,1528317781,1528317782,1528317783,1528317784,1528317785,1528317786,1528317787,1528317788,1528317789,1528317790,1528317791,1528317792,1528317793,1528318025,1528318026,1528318027,1528318028,1528318029,1528318030,1528318031,1528318032,1528318033,1528318034,1528318035,1528318036,1528318037,1528318038,1528318039,1528318040,1528318041,1528318042,1528318043,1528318044,1528318045,1528318046,1528318047,1528318048,1528318049,1528318282,1528318283,1528318284,1528318285,1528318286,1528318287,1528318288,1528318289,1528318290,1528318291,1528318292,1528318293,1528318294,1528318295,1528318296,1528318297,1528318298,1528318299,1528318300,1528318301,1528318302,1528318303,1528318304,1528318305,1528318538,1528318539,1528318540,1528318541,1528318542,1528318543,1528318544,1528318545,1528318546,1528318547,1528318548,1528318549,1528318550,1528318551,1528318552,1528318553,1528318554,1528318555,1528318556,1528318557,1528318558,1528318559,1528318560,1528318561,1528318794,1528318795,1528318796,1528318797,1528318798,1528318799,1528318800,1528318801,1528318802,1528318803,1528318804,1528318805,1528318806,1528318807,1528318808,1528318809,1528318810,1528318811,1528318812,1528318813,1528318814,1528318815,1528318816,1528318817,1528319050,1528319051,1528319052,1528319053,1528319054,1528319055,1528319056,1528319057,1528319058,1528319059,1528319060,1528319061,1528319062,1528319063,1528319064,1528319065,1528319066,1528319067,1528319068,1528319069,1528319070,1528319071,1528319072,1528319073,1528319306,1528319307,1528319308,1528319309,1528319310,1528319311,1528319312,1528319313,1528319314,1528319315,1528319316,1528319317,1528319318,1528319319,1528319320,1528319321,1528319322,1528319323,1528319324,1528319325,1528319326,1528319327,1528319328,1528319329,1528319562,1528319563,1528319564,1528319565,1528319566,1528319567,1528319568,1528319569,1528319570,1528319571,1528319572,1528319573,1528319574,1528319575,1528319576,1528319577,1528319578,1528319579,1528319580,1528319581,1528319582,1528319583,1528319584,1528319585,1528319818,1528319819,1528319820,1528319821,1528319822,1528319823,1528319824,1528319825,1528319826,1528319827,1528319828,1528319829,1528319830,1528319831,1528319832,1528319833,1528319834,1528319835,1528319836,1528319837,1528319838,1528319839,1528319840,1528319841,1528320073,1528320074,1528320075,1528320076,1528320077,1528320078,1528320079,1528320080,1528320081,1528320082,1528320083,1528320084,1528320085,1528320086,1528320087,1528320088,1528320089,1528320090,1528320091,1528320092,1528320093,1528320094,1528320095,1528320096,1528320097,1528320328,1528320329,1528320330,1528320331,1528320332,1528320333,1528320334,1528320335,1528320336,1528320337,1528320338,1528320339,1528320340,1528320341,1528320342,1528320343,1528320344,1528320345,1528320346,1528320347,1528320348,1528320349,1528320350,1528320351,1528320352,1528320353,1528320540,1528320546,1528320547,1528320548,1528320549,1528320555,1528320556,1528320557,1528320558,1528320564,1528320565,1528320566,1528320567,1528320568,1528320569,1528320570,1528320571,1528320572,1528320573,1528320574,1528320575,1528320576,1528320577,1528320578,1528320579,1528320580,1528320581,1528320582,1528320583,1528320584,1528320585,1528320586,1528320587,1528320588,1528320589,1528320590,1528320591,1528320592,1528320593,1528320594,1528320595,1528320596,1528320597,1528320598,1528320599,1528320600,1528320601,1528320602,1528320603,1528320604,1528320605,1528320606,1528320607,1528320608,1528320609,1528320796,1528320802,1528320803,1528320804,1528320805,1528320811,1528320812,1528320813,1528320814,1528320820,1528320821,1528320822,1528320823,1528320824,1528320825,1528320826,1528320827,1528320828,1528320829,1528320830,1528320831,1528320832,1528320833,1528320834,1528320835,1528320836,1528320837,1528320838,1528320839,1528320840,1528320841,1528320842,1528320843,1528320844,1528320845,1528320846,1528320847,1528320848,1528320849,1528320850,1528320851,1528320852,1528320853,1528320854,1528320855,1528320856,1528320857,1528320858,1528320859,1528320860,1528320861,1528320862,1528320863,1528320864,1528320865,1528321052,1528321058,1528321059,1528321060,1528321061,1528321067,1528321068,1528321069,1528321070,1528321076,1528321077,1528321078,1528321079,1528321080,1528321081,1528321082,1528321083,1528321084,1528321085,1528321086,1528321087,1528321088,1528321089,1528321090,1528321091,1528321092,1528321093,1528321094,1528321095,1528321096,1528321097,1528321098,1528321099,1528321100,1528321101,1528321102,1528321103,1528321104,1528321105,1528321106,1528321107,1528321108,1528321109,1528321110,1528321111,1528321112,1528321113,1528321114,1528321115,1528321116,1528321117,1528321118,1528321119,1528321120,1528321121,1528321308,1528321309,1528321313,1528321314,1528321315,1528321316,1528321317,1528321318,1528321322,1528321323,1528321324,1528321325,1528321326,1528321327,1528321331,1528321332,1528321333,1528321334,1528321335,1528321336,1528321337,1528321338,1528321339,1528321340,1528321341,1528321342,1528321343,1528321344,1528321345,1528321346,1528321347,1528321348,1528321349,1528321350,1528321351,1528321352,1528321353,1528321354,1528321355,1528321356,1528321357,1528321358,1528321359,1528321360,1528321361,1528321362,1528321363,1528321364,1528321365,1528321366,1528321367,1528321368,1528321369,1528321370,1528321371,1528321372,1528321373,1528321374,1528321375,1528321376,1528321377,1528321564,1528321565,1528321566,1528321567,1528321568,1528321569,1528321570,1528321571,1528321572,1528321573,1528321574,1528321575,1528321576,1528321577,1528321578,1528321579,1528321580,1528321581,1528321582,1528321583,1528321584,1528321585,1528321586,1528321587,1528321588,1528321589,1528321590,1528321591,1528321592,1528321593,1528321594,1528321595,1528321596,1528321597,1528321598,1528321599,1528321600,1528321601,1528321602,1528321603,1528321604,1528321605,1528321606,1528321607,1528321608,1528321609,1528321610,1528321611,1528321612,1528321613,1528321614,1528321615,1528321616,1528321617,1528321618,1528321619,1528321620,1528321621,1528321622,1528321623,1528321624,1528321625,1528321626,1528321627,1528321628,1528321629,1528321630,1528321631,1528321632,1528321633,1528321820,1528321821,1528321822,1528321823,1528321824,1528321825,1528321826,1528321827,1528321828,1528321829,1528321830,1528321831,1528321832,1528321833,1528321834,1528321835,1528321836,1528321837,1528321838,1528321839,1528321840,1528321841,1528321842,1528321843,1528321844,1528321845,1528321846,1528321847,1528321848,1528321849,1528321850,1528321851,1528321852,1528321853,1528321854,1528321855,1528321856,1528321857,1528321858,1528321859,1528321860,1528321861,1528321862,1528321863,1528321864,1528321865,1528321866,1528321867,1528321868,1528321869,1528321870,1528321871,1528321872,1528321873,1528321874,1528321875,1528321876,1528321877,1528321878,1528321879,1528321880,1528321881,1528321882,1528321883,1528321884,1528321885,1528321886,1528321887,1528321888,1528321889,1528322076,1528322077,1528322078,1528322079,1528322080,1528322081,1528322082,1528322083,1528322084,1528322085,1528322086,1528322087,1528322088,1528322089,1528322090,1528322091,1528322092,1528322093,1528322094,1528322095,1528322096,1528322097,1528322098,1528322099,1528322100,1528322101,1528322102,1528322103,1528322104,1528322105,1528322106,1528322107,1528322108,1528322109,1528322110,1528322111,1528322112,1528322113,1528322114,1528322115,1528322116,1528322117,1528322118,1528322119,1528322120,1528322121,1528322122,1528322123,1528322124,1528322125,1528322126,1528322127,1528322128,1528322129,1528322130,1528322131,1528322132,1528322133,1528322134,1528322135,1528322136,1528322137,1528322138,1528322139,1528322140,1528322141,1528322142,1528322143,1528322144,1528322145,1528322332,1528322333,1528322334,1528322335,1528322336,1528322337,1528322338,1528322339,1528322340,1528322341,1528322342,1528322343,1528322344,1528322345,1528322346,1528322347,1528322348,1528322349,1528322350,1528322351,1528322352,1528322353,1528322354,1528322355,1528322356,1528322357,1528322367,1528322368,1528322369,1528322370,1528322371,1528322372,1528322373,1528322374,1528322375,1528322376,1528322377,1528322378,1528322379,1528322380,1528322381,1528322382,1528322383,1528322384,1528322385,1528322386,1528322387,1528322388,1528322389,1528322390,1528322391,1528322392,1528322393,1528322394,1528322395,1528322396,1528322397,1528322398,1528322399,1528322400,1528322401,1528322587,1528322588,1528322589,1528322590,1528322591,1528322592,1528322593,1528322594,1528322595,1528322596,1528322597,1528322598,1528322599,1528322600,1528322601,1528322602,1528322603,1528322604,1528322605,1528322606,1528322607,1528322608,1528322609,1528322610,1528322611,1528322612,1528322624,1528322625,1528322626,1528322627,1528322628,1528322629,1528322630,1528322631,1528322632,1528322633,1528322634,1528322635,1528322636,1528322637,1528322638,1528322639,1528322640,1528322641,1528322642,1528322643,1528322644,1528322645,1528322646,1528322647,1528322648,1528322649,1528322650,1528322651,1528322652,1528322653,1528322654,1528322655,1528322656,1528322657,1366776604,1366776603,1366776602,1366776601,1360550679,1360550680,1360550681,1360550682,1528322843,1528322844,1528322845,1528322846,1528322847,1528322848,1528322849,1528322850,1528322851,1528322852,1528322853,1528322854,1528322855,1528322856,1528322857,1528322858,1528322859,1528322860,1528322861,1528322862,1528322863,1528322864,1528322865,1528322866,1528322867,1528322868,1528322880,1528322881,1528322882,1528322883,1528322884,1528322885,1528322886,1528322887,1528322888,1528322889,1528322890,1528322891,1528322892,1528322893,1528322894,1528322895,1528322896,1528322897,1528322898,1528322899,1528322900,1528322901,1528322902,1528322903,1528322904,1528322905,1528322906,1528322907,1528322908,1528322909,1528322910,1528322911,1528322912,1528322913,1366776600,1366776599,1366776598,1366776597,1360550935,1360550936,1360550937,1360550938,1528323099,1528323100,1528323101,1528323102,1528323103,1528323104,1528323105,1528323106,1528323107,1528323108,1528323109,1528323110,1528323111,1528323112,1528323113,1528323114,1528323115,1528323116,1528323117,1528323118,1528323119,1528323120,1528323121,1528323122,1528323123,1528323124,1528323136,1528323137,1528323138,1528323139,1528323140,1528323141,1528323142,1528323143,1528323144,1528323145,1528323146,1528323147,1528323148,1528323149,1528323150,1528323151,1528323152,1528323153,1528323154,1528323155,1528323156,1528323157,1528323158,1528323159,1528323160,1528323161,1528323162,1528323163,1528323164,1528323165,1528323166,1528323167,1528323168,1528323169,1366776596,1366776595,1534548577,1534548576,1360551191,1360551192,1360551193,1360551194,1528323355,1528323356,1528323357,1528323358,1528323359,1528323360,1528323361,1528323362,1528323363,1528323364,1528323365,1528323366,1528323367,1528323368,1528323369,1528323370,1528323371,1528323372,1528323373,1528323374,1528323375,1528323376,1528323377,1528323378,1528323379,1528323380,1528323392,1528323393,1528323394,1528323395,1528323396,1528323397,1528323398,1528323399,1528323400,1528323401,1528323402,1528323403,1528323404,1528323405,1528323406,1528323407,1528323408,1528323409,1528323410,1528323411,1528323412,1528323413,1528323414,1528323415,1528323416,1528323417,1528323418,1528323419,1528323420,1528323421,1528323422,1528323423,1528323424,1528323425,1534548575,1534548574,1534548573,1534548572,1360551447,1360551448,1360551449,1360551450,1528323611,1528323612,1528323613,1528323614,1528323615,1528323616,1528323617,1528323618,1528323619,1528323620,1528323621,1528323622,1528323623,1528323624,1528323625,1528323626,1528323627,1528323628,1528323629,1528323630,1528323631,1528323632,1528323633,1528323634,1528323635,1528323636,1528323648,1528323649,1528323650,1528323651,1528323652,1528323653,1528323654,1528323655,1528323656,1528323657,1528323658,1528323659,1528323660,1528323661,1528323662,1528323663,1528323664,1528323665,1528323666,1528323667,1528323668,1528323669,1528323670,1528323671,1528323672,1528323673,1528323674,1528323675,1528323676,1528323677,1528323678,1528323679,1528323680,1528323681,1534548571,1534548570,1366776161,1366776160,1360551703,1360551704,1360551705,1360551706,1528323867,1528323868,1528323869,1528323870,1528323871,1528323872,1528323873,1528323874,1528323875,1528323876,1528323877,1528323878,1528323879,1528323880,1528323881,1528323882,1528323883,1528323884,1528323885,1528323886,1528323887,1528323888,1528323889,1528323890,1528323891,1528323892,1528323904,1528323905,1528323906,1528323907,1528323908,1528323909,1528323910,1528323911,1528323912,1528323913,1528323914,1528323915,1528323916,1528323917,1528323918,1528323919,1528323920,1528323921,1528323922,1528323923,1528323924,1528323925,1528323926,1528323927,1528323928,1528323929,1528323930,1528323931,1528323932,1528323933,1528323934,1528323935,1528323936,1528323937,1366776159,1366776158,1366776157,1366776156,1360551959,1360551960,1360551961,1360551962,1528324123,1528324124,1528324125,1528324126,1528324127,1528324128,1528324129,1528324130,1528324131,1528324132,1528324133,1528324134,1528324135,1528324136,1528324137,1528324138,1528324139,1528324140,1528324141,1528324142,1528324143,1528324144,1528324145,1528324146,1528324147,1528324148,1528324160,1528324161,1528324162,1528324163,1528324164,1528324165,1528324166,1528324167,1528324168,1528324169,1528324170,1528324171,1528324172,1528324173,1528324174,1528324175,1528324176,1528324177,1528324178,1528324179,1528324180,1528324181,1528324182,1528324183,1528324184,1528324185,1528324186,1528324187,1528324188,1528324189,1528324190,1528324191,1528324192,1528324193,1366776155,1366775905,1366775904,1366775903,1360552215,1360552216,1360552217,1360552218,1528324379,1528324380,1528324381,1528324382,1528324383,1528324384,1528324385,1528324386,1528324387,1528324388,1528324389,1528324390,1528324391,1528324392,1528324393,1528324394,1528324395,1528324396,1528324397,1528324398,1528324399,1528324400,1528324401,1528324402,1528324403,1528324404,1528324416,1528324417,1528324418,1528324419,1528324420,1528324421,1528324422,1528324423,1528324424,1528324425,1528324426,1528324427,1528324428,1528324429,1528324430,1528324431,1528324432,1528324433,1528324434,1528324435,1528324436,1528324437,1528324438,1528324439,1528324440,1528324441,1528324442,1528324443,1528324444,1528324445,1528324446,1528324447,1528324448,1528324449,1360597851,1360597852,1360597853,1360597854,1360597855,1360597856,1360597857,1360598107,1360598108,1360598109,1360598110,1360598111,1360598112,1360598113,1360598363,1360598364,1360598365,1360598366,1360598367,1360598368,1360598369,1360598619,1360598620,1360598621,1360598622,1360598623,1360598624,1360598625,1360598875,1360598876,1360598877,1360598878,1360598879,1360598880,1360598881,1360599131,1360599132,1360599133,1360599134,1360599135,1360599136,1360599137,1360599387,1360599388,1360599389,1360599390,1360599391,1360599392,1360599393,1360599643,1360599644,1360599645,1360599646,1360599647,1360599648,1360599649,1528372059,1528372060,1528372061,1528372062,1528372063,1528372064,1528372065,1528372315,1528372316,1528372317,1528372318,1528372319,1528372320,1528372321,1528372572,1528372573,1528372574,1528372575,1528372576,1528372577,1528372828,1528372829,1528372830,1528372831,1528372832,1528372833,1528373084,1528373085,1528373086,1528373087,1528373088,1528373089,1528373340,1528373341,1528373342,1528373343,1528373344,1528373345,1528373596,1528373597,1528373598,1528373599,1528373600,1528373601,1528373851,1528373852,1528373853,1528373854,1528373855,1528373856,1528373857,1528374107,1528374108,1528374109,1528374110,1528374111,1528374112,1528374113,1528374363,1528374364,1528374365,1528374366,1528374367,1528374368,1528374369,1528374619,1528374620,1528374621,1528374622,1528374623,1528374624,1528374625,1528374875,1528374876,1528374877,1528374878,1528374879,1528374880,1528374881,1528375131,1528375132,1528375133,1528375134,1528375135,1528375136,1528375137,1528375387,1528375388,1528375389,1528375390,1528375391,1528375392,1528375393,1528375643,1528375644,1528375645,1528375646,1528375647,1528375648,1528375649,1528375899,1528375900,1528375901,1528375902,1528375903,1528375904,1528375905,1528376155,1528376156,1528376157,1528376158,1528376159,1528376160,1528376161,1528376411,1528376412,1528376413,1528376414,1528376415,1528376416,1528376417,1528376667,1528376668,1528376669,1528376670,1528376671,1528376672,1528376673,1528376923,1528376924,1528376925,1528376926,1528376927,1528376928,1528376929,1528377179,1528377180,1528377181,1528377182,1528377183,1528377184,1528377185,1528377435,1528377436,1528377437,1528377438,1528377439,1528377440,1528377441,1528377691,1528377692,1528377693,1528377694,1528377695,1528377696,1528377697,1528377947,1528377948,1528377949,1528377950,1528377951,1528377952,1528377953,1528378203,1528378204,1528378205,1528378206,1528378207,1528378208,1528378209,1528378459,1528378460,1528378461,1528378462,1528378463,1528378464,1528378465,1528378715,1528378716,1528378717,1528378718,1528378719,1528378720,1528378721,1528378971,1528378972,1528378973,1528378974,1528378975,1528378976,1528378977,1528379209,1528379210,1528379211,1528379212,1528379213,1528379214,1528379215,1528379227,1528379228,1528379229,1528379230,1528379231,1528379232,1528379233,1528379465,1528379466,1528379467,1528379468,1528379469,1528379470,1528379471,1528379483,1528379484,1528379485,1528379486,1528379487,1528379488,1528379489,1528379721,1528379722,1528379723,1528379724,1528379725,1528379726,1528379727,1528379739,1528379740,1528379741,1528379742,1528379743,1528379744,1528379745,1528379977,1528379978,1528379979,1528379980,1528379981,1528379982,1528379983,1528379995,1528379996,1528379997,1528379998,1528379999,1528380000,1528380001,1528380233,1528380234,1528380235,1528380236,1528380237,1528380238,1528380239,1528380251,1528380252,1528380253,1528380254,1528380255,1528380256,1528380257,1528380489,1528380490,1528380491,1528380492,1528380493,1528380494,1528380495,1528380507,1528380508,1528380509,1528380510,1528380511,1528380512,1528380513,1528380745,1528380746,1528380747,1528380748,1528380749,1528380750,1528380751,1528380763,1528380764,1528380765,1528380766,1528380767,1528380768,1528380769,1528381001,1528381002,1528381003,1528381004,1528381005,1528381006,1528381007,1528381019,1528381020,1528381021,1528381022,1528381023,1528381024,1528381025,1528381257,1528381258,1528381259,1528381260,1528381261,1528381262,1528381263,1528381264,1528381274,1528381275,1528381276,1528381277,1528381278,1528381279,1528381280,1528381281,1528381513,1528381514,1528381515,1528381516,1528381517,1528381518,1528381519,1528381520,1528381521,1528381522,1528381523,1528381524,1528381525,1528381526,1528381527,1528381528,1528381529,1528381530,1528381531,1528381532,1528381533,1528381534,1528381535,1528381536,1528381537,1528381769,1528381770,1528381771,1528381772,1528381773,1528381774,1528381775,1528381776,1528381777,1528381778,1528381779,1528381780,1528381781,1528381782,1528381783,1528381784,1528381785,1528381786,1528381787,1528381788,1528381789,1528381790,1528381791,1528381792,1528381793,1528382025,1528382026,1528382027,1528382028,1528382029,1528382030,1528382031,1528382032,1528382033,1528382034,1528382035,1528382036,1528382037,1528382038,1528382039,1528382040,1528382041,1528382042,1528382043,1528382044,1528382045,1528382046,1528382047,1528382048,1528382049,1528382281,1528382282,1528382283,1528382284,1528382285,1528382286,1528382287,1528382288,1528382289,1528382290,1528382291,1528382292,1528382293,1528382294,1528382295,1528382296,1528382297,1528382298,1528382299,1528382300,1528382301,1528382302,1528382303,1528382304,1528382305,1528382537,1528382538,1528382539,1528382540,1528382541,1528382542,1528382543,1528382544,1528382545,1528382546,1528382547,1528382548,1528382549,1528382550,1528382551,1528382552,1528382553,1528382554,1528382555,1528382556,1528382557,1528382558,1528382559,1528382560,1528382561,1528382793,1528382794,1528382795,1528382796,1528382797,1528382798,1528382799,1528382800,1528382801,1528382802,1528382803,1528382804,1528382805,1528382806,1528382807,1528382808,1528382809,1528382810,1528382811,1528382812,1528382813,1528382814,1528382815,1528382816,1528382817,1528383049,1528383050,1528383051,1528383052,1528383053,1528383054,1528383055,1528383056,1528383057,1528383058,1528383059,1528383060,1528383061,1528383062,1528383063,1528383064,1528383065,1528383066,1528383067,1528383068,1528383069,1528383070,1528383071,1528383072,1528383073,1528383305,1528383306,1528383307,1528383308,1528383309,1528383310,1528383311,1528383312,1528383313,1528383314,1528383315,1528383316,1528383317,1528383318,1528383319,1528383320,1528383321,1528383322,1528383323,1528383324,1528383325,1528383326,1528383327,1528383328,1528383329,1528383561,1528383562,1528383563,1528383564,1528383565,1528383566,1528383567,1528383568,1528383569,1528383570,1528383571,1528383572,1528383573,1528383574,1528383575,1528383576,1528383577,1528383578,1528383579,1528383580,1528383581,1528383582,1528383583,1528383584,1528383585,1528383818,1528383819,1528383820,1528383821,1528383822,1528383823,1528383824,1528383825,1528383826,1528383827,1528383828,1528383829,1528383830,1528383831,1528383832,1528383833,1528383834,1528383835,1528383836,1528383837,1528383838,1528383839,1528383840,1528383841,1528384074,1528384075,1528384076,1528384077,1528384078,1528384079,1528384080,1528384081,1528384082,1528384083,1528384084,1528384085,1528384086,1528384087,1528384088,1528384089,1528384090,1528384091,1528384092,1528384093,1528384094,1528384095,1528384096,1528384097,1528384330,1528384331,1528384332,1528384333,1528384334,1528384335,1528384336,1528384337,1528384338,1528384339,1528384340,1528384341,1528384342,1528384343,1528384344,1528384345,1528384346,1528384347,1528384348,1528384349,1528384350,1528384351,1528384352,1528384353,1528384586,1528384587,1528384588,1528384589,1528384590,1528384591,1528384592,1528384593,1528384594,1528384595,1528384596,1528384597,1528384598,1528384599,1528384600,1528384601,1528384602,1528384603,1528384604,1528384605,1528384606,1528384607,1528384608,1528384609,1528384842,1528384843,1528384844,1528384845,1528384846,1528384847,1528384848,1528384849,1528384850,1528384851,1528384852,1528384853,1528384854,1528384855,1528384856,1528384857,1528384858,1528384859,1528384860,1528384861,1528384862,1528384863,1528384864,1528384865,1528385098,1528385099,1528385100,1528385101,1528385102,1528385103,1528385104,1528385105,1528385106,1528385107,1528385108,1528385109,1528385110,1528385111,1528385112,1528385113,1528385114,1528385115,1528385116,1528385117,1528385118,1528385119,1528385120,1528385121,1528385354,1528385355,1528385356,1528385357,1528385358,1528385359,1528385360,1528385361,1528385362,1528385363,1528385364,1528385365,1528385366,1528385367,1528385368,1528385369,1528385370,1528385371,1528385372,1528385373,1528385374,1528385375,1528385376,1528385377,1528385609,1528385610,1528385611,1528385612,1528385613,1528385614,1528385615,1528385616,1528385617,1528385618,1528385619,1528385620,1528385621,1528385622,1528385623,1528385624,1528385625,1528385626,1528385627,1528385628,1528385629,1528385630,1528385631,1528385632,1528385633,1528385864,1528385865,1528385866,1528385867,1528385868,1528385869,1528385870,1528385871,1528385872,1528385873,1528385874,1528385875,1528385876,1528385877,1528385878,1528385879,1528385880,1528385881,1528385882,1528385883,1528385884,1528385885,1528385886,1528385887,1528385888,1528385889,1528386076,1528386082,1528386083,1528386084,1528386085,1528386091,1528386092,1528386093,1528386094,1528386100,1528386101,1528386102,1528386103,1528386104,1528386105,1528386106,1528386107,1528386108,1528386109,1528386110,1528386111,1528386112,1528386113,1528386114,1528386115,1528386116,1528386117,1528386118,1528386119,1528386120,1528386121,1528386122,1528386123,1528386124,1528386125,1528386126,1528386127,1528386128,1528386129,1528386130,1528386131,1528386132,1528386133,1528386134,1528386135,1528386136,1528386137,1528386138,1528386139,1528386140,1528386141,1528386142,1528386143,1528386144,1528386145,1528386332,1528386338,1528386339,1528386340,1528386341,1528386347,1528386348,1528386349,1528386350,1528386356,1528386357,1528386358,1528386359,1528386360,1528386361,1528386362,1528386363,1528386364,1528386365,1528386366,1528386367,1528386368,1528386369,1528386370,1528386371,1528386372,1528386373,1528386374,1528386375,1528386376,1528386377,1528386378,1528386379,1528386380,1528386381,1528386382,1528386383,1528386384,1528386385,1528386386,1528386387,1528386388,1528386389,1528386390,1528386391,1528386392,1528386393,1528386394,1528386395,1528386396,1528386397,1528386398,1528386399,1528386400,1528386401,1528386588,1528386594,1528386595,1528386596,1528386597,1528386603,1528386604,1528386605,1528386606,1528386612,1528386613,1528386614,1528386615,1528386616,1528386617,1528386618,1528386619,1528386620,1528386621,1528386622,1528386623,1528386624,1528386625,1528386626,1528386627,1528386628,1528386629,1528386630,1528386631,1528386632,1528386633,1528386634,1528386635,1528386636,1528386637,1528386638,1528386639,1528386640,1528386641,1528386642,1528386643,1528386644,1528386645,1528386646,1528386647,1528386648,1528386649,1528386650,1528386651,1528386652,1528386653,1528386654,1528386655,1528386656,1528386657,1528386844,1528386845,1528386849,1528386850,1528386851,1528386852,1528386853,1528386854,1528386858,1528386859,1528386860,1528386861,1528386862,1528386863,1528386867,1528386868,1528386869,1528386870,1528386871,1528386872,1528386873,1528386874,1528386875,1528386876,1528386877,1528386878,1528386879,1528386880,1528386881,1528386882,1528386883,1528386884,1528386885,1528386886,1528386887,1528386888,1528386889,1528386890,1528386891,1528386892,1528386893,1528386894,1528386895,1528386896,1528386897,1528386898,1528386899,1528386900,1528386901,1528386902,1528386903,1528386904,1528386905,1528386906,1528386907,1528386908,1528386909,1528386910,1528386911,1528386912,1528386913,1528387100,1528387101,1528387102,1528387103,1528387104,1528387105,1528387106,1528387107,1528387108,1528387109,1528387110,1528387111,1528387112,1528387113,1528387114,1528387115,1528387116,1528387117,1528387118,1528387119,1528387120,1528387121,1528387122,1528387123,1528387124,1528387125,1528387126,1528387127,1528387128,1528387129,1528387130,1528387131,1528387132,1528387133,1528387134,1528387135,1528387136,1528387137,1528387138,1528387139,1528387140,1528387141,1528387142,1528387143,1528387144,1528387145,1528387146,1528387147,1528387148,1528387149,1528387150,1528387151,1528387152,1528387153,1528387154,1528387155,1528387156,1528387157,1528387158,1528387159,1528387160,1528387161,1528387162,1528387163,1528387164,1528387165,1528387166,1528387167,1528387168,1528387169,1528387356,1528387357,1528387358,1528387359,1528387360,1528387361,1528387362,1528387363,1528387364,1528387365,1528387366,1528387367,1528387368,1528387369,1528387370,1528387371,1528387372,1528387373,1528387374,1528387375,1528387376,1528387377,1528387378,1528387379,1528387380,1528387381,1528387382,1528387383,1528387384,1528387385,1528387386,1528387387,1528387388,1528387389,1528387390,1528387391,1528387392,1528387393,1528387394,1528387395,1528387396,1528387397,1528387398,1528387399,1528387400,1528387401,1528387402,1528387403,1528387404,1528387405,1528387406,1528387407,1528387408,1528387409,1528387410,1528387411,1528387412,1528387413,1528387414,1528387415,1528387416,1528387417,1528387418,1528387419,1528387420,1528387421,1528387422,1528387423,1528387424,1528387425,1528387612,1528387613,1528387614,1528387615,1528387616,1528387617,1528387618,1528387619,1528387620,1528387621,1528387622,1528387623,1528387624,1528387625,1528387626,1528387627,1528387628,1528387629,1528387630,1528387631,1528387632,1528387633,1528387634,1528387635,1528387636,1528387637,1528387638,1528387639,1528387640,1528387641,1528387642,1528387643,1528387644,1528387645,1528387646,1528387647,1528387648,1528387649,1528387650,1528387651,1528387652,1528387653,1528387654,1528387655,1528387656,1528387657,1528387658,1528387659,1528387660,1528387661,1528387662,1528387663,1528387664,1528387665,1528387666,1528387667,1528387668,1528387669,1528387670,1528387671,1528387672,1528387673,1528387674,1528387675,1528387676,1528387677,1528387678,1528387679,1528387680,1528387681,1528387868,1528387869,1528387870,1528387871,1528387872,1528387873,1528387874,1528387875,1528387876,1528387877,1528387878,1528387879,1528387880,1528387881,1528387882,1528387883,1528387884,1528387885,1528387886,1528387887,1528387888,1528387889,1528387890,1528387891,1528387892,1528387893,1528387903,1528387904,1528387905,1528387906,1528387907,1528387908,1528387909,1528387910,1528387911,1528387912,1528387913,1528387914,1528387915,1528387916,1528387917,1528387918,1528387919,1528387920,1528387921,1528387922,1528387923,1528387924,1528387925,1528387926,1528387927,1528387928,1528387929,1528387930,1528387931,1528387932,1528387933,1528387934,1528387935,1528387936,1528387937,1528388123,1528388124,1528388125,1528388126,1528388127,1528388128,1528388129,1528388130,1528388131,1528388132,1528388133,1528388134,1528388135,1528388136,1528388137,1528388138,1528388139,1528388140,1528388141,1528388142,1528388143,1528388144,1528388145,1528388146,1528388147,1528388148,1528388160,1528388161,1528388162,1528388163,1528388164,1528388165,1528388166,1528388167,1528388168,1528388169,1528388170,1528388171,1528388172,1528388173,1528388174,1528388175,1528388176,1528388177,1528388178,1528388179,1528388180,1528388181,1528388182,1528388183,1528388184,1528388185,1528388186,1528388187,1528388188,1528388189,1528388190,1528388191,1528388192,1528388193,1366775902,1366775901,1366775900,1366775899,1360616215,1360616216,1360616217,1360616218,1528388379,1528388380,1528388381,1528388382,1528388383,1528388384,1528388385,1528388386,1528388387,1528388388,1528388389,1528388390,1528388391,1528388392,1528388393,1528388394,1528388395,1528388396,1528388397,1528388398,1528388399,1528388400,1528388401,1528388402,1528388403,1528388404,1528388416,1528388417,1528388418,1528388419,1528388420,1528388421,1528388422,1528388423,1528388424,1528388425,1528388426,1528388427,1528388428,1528388429,1528388430,1528388431,1528388432,1528388433,1528388434,1528388435,1528388436,1528388437,1528388438,1528388439,1528388440,1528388441,1528388442,1528388443,1528388444,1528388445,1528388446,1528388447,1528388448,1528388449,1366775649,1366775648,1366775647,1366775646,1360616471,1360616472,1360616473,1360616474,1528388635,1528388636,1528388637,1528388638,1528388639,1528388640,1528388641,1528388642,1528388643,1528388644,1528388645,1528388646,1528388647,1528388648,1528388649,1528388650,1528388651,1528388652,1528388653,1528388654,1528388655,1528388656,1528388657,1528388658,1528388659,1528388660,1528388672,1528388673,1528388674,1528388675,1528388676,1528388677,1528388678,1528388679,1528388680,1528388681,1528388682,1528388683,1528388684,1528388685,1528388686,1528388687,1528388688,1528388689,1528388690,1528388691,1528388692,1528388693,1528388694,1528388695,1528388696,1528388697,1528388698,1528388699,1528388700,1528388701,1528388702,1528388703,1528388704,1528388705,1366775645,1366775644,1366775643,1366775393,1360616727,1360616728,1360616729,1360616730,1528388891,1528388892,1528388893,1528388894,1528388895,1528388896,1528388897,1528388898,1528388899,1528388900,1528388901,1528388902,1528388903,1528388904,1528388905,1528388906,1528388907,1528388908,1528388909,1528388910,1528388911,1528388912,1528388913,1528388914,1528388915,1528388916,1528388928,1528388929,1528388930,1528388931,1528388932,1528388933,1528388934,1528388935,1528388936,1528388937,1528388938,1528388939,1528388940,1528388941,1528388942,1528388943,1528388944,1528388945,1528388946,1528388947,1528388948,1528388949,1528388950,1528388951,1528388952,1528388953,1528388954,1528388955,1528388956,1528388957,1528388958,1528388959,1528388960,1528388961,1366775392,1366775391,1366775390,1366775389,1360616983,1360616984,1360616985,1360616986,1528389147,1528389148,1528389149,1528389150,1528389151,1528389152,1528389153,1528389154,1528389155,1528389156,1528389157,1528389158,1528389159,1528389160,1528389161,1528389162,1528389163,1528389164,1528389165,1528389166,1528389167,1528389168,1528389169,1528389170,1528389171,1528389172,1528389184,1528389185,1528389186,1528389187,1528389188,1528389189,1528389190,1528389191,1528389192,1528389193,1528389194,1528389195,1528389196,1528389197,1528389198,1528389199,1528389200,1528389201,1528389202,1528389203,1528389204,1528389205,1528389206,1528389207,1528389208,1528389209,1528389210,1528389211,1528389212,1528389213,1528389214,1528389215,1528389216,1528389217,1366775388,1366775387,1366775137,1366775136,1360617239,1360617240,1360617241,1360617242,1528389403,1528389404,1528389405,1528389406,1528389407,1528389408,1528389409,1528389410,1528389411,1528389412,1528389413,1528389414,1528389415,1528389416,1528389417,1528389418,1528389419,1528389420,1528389421,1528389422,1528389423,1528389424,1528389425,1528389426,1528389427,1528389428,1528389440,1528389441,1528389442,1528389443,1528389444,1528389445,1528389446,1528389447,1528389448,1528389449,1528389450,1528389451,1528389452,1528389453,1528389454,1528389455,1528389456,1528389457,1528389458,1528389459,1528389460,1528389461,1528389462,1528389463,1528389464,1528389465,1528389466,1528389467,1528389468,1528389469,1528389470,1528389471,1528389472,1528389473,1366775135,1366775134,1366775133,1366775132,1360617495,1360617496,1360617497,1360617498,1528389659,1528389660,1528389661,1528389662,1528389663,1528389664,1528389665,1528389666,1528389667,1528389668,1528389669,1528389670,1528389671,1528389672,1528389673,1528389674,1528389675,1528389676,1528389677,1528389678,1528389679,1528389680,1528389681,1528389682,1528389683,1528389684,1528389696,1528389697,1528389698,1528389699,1528389700,1528389701,1528389702,1528389703,1528389704,1528389705,1528389706,1528389707,1528389708,1528389709,1528389710,1528389711,1528389712,1528389713,1528389714,1528389715,1528389716,1528389717,1528389718,1528389719,1528389720,1528389721,1528389722,1528389723,1528389724,1528389725,1528389726,1528389727,1528389728,1528389729,1366775131,1366774881,1366774880,1366774879,1360617751,1360617752,1360617753,1360617754,1528389915,1528389916,1528389917,1528389918,1528389919,1528389920,1528389921,1528389922,1528389923,1528389924,1528389925,1528389926,1528389927,1528389928,1528389929,1528389930,1528389931,1528389932,1528389933,1528389934,1528389935,1528389936,1528389937,1528389938,1528389939,1528389940,1528389952,1528389953,1528389954,1528389955,1528389956,1528389957,1528389958,1528389959,1528389960,1528389961,1528389962,1528389963,1528389964,1528389965,1528389966,1528389967,1528389968,1528389969,1528389970,1528389971,1528389972,1528389973,1528389974,1528389975,1528389976,1528389977,1528389978,1528389979,1528389980,1528389981,1528389982,1528389983,1528389984,1528389985,1360663387,1360663388,1360663389,1360663390,1360663391,1360663392,1360663393,1360663643,1360663644,1360663645,1360663646,1360663647,1360663648,1360663649,1360663899,1360663900,1360663901,1360663902,1360663903,1360663904,1360663905,1360664155,1360664156,1360664157,1360664158,1360664159,1360664160,1360664161,1360664411,1360664412,1360664413,1360664414,1360664415,1360664416,1360664417,1360664667,1360664668,1360664669,1360664670,1360664671,1360664672,1360664673,1360664923,1360664924,1360664925,1360664926,1360664927,1360664928,1360664929,1360665179,1360665180,1360665181,1360665182,1360665183,1360665184,1360665185,1528437595,1528437596,1528437597,1528437598,1528437599,1528437600,1528437601,1528437851,1528437852,1528437853,1528437854,1528437855,1528437856,1528437857,1528438107,1528438108,1528438109,1528438110,1528438111,1528438112,1528438113,1528438363,1528438364,1528438365,1528438366,1528438367,1528438368,1528438369,1528438619,1528438620,1528438621,1528438622,1528438623,1528438624,1528438625,1528438875,1528438876,1528438877,1528438878,1528438879,1528438880,1528438881,1528439131,1528439132,1528439133,1528439134,1528439135,1528439136,1528439137,1528439387,1528439388,1528439389,1528439390,1528439391,1528439392,1528439393,1528439643,1528439644,1528439645,1528439646,1528439647,1528439648,1528439649,1528439899,1528439900,1528439901,1528439902,1528439903,1528439904,1528439905,1528440155,1528440156,1528440157,1528440158,1528440159,1528440160,1528440161,1528440411,1528440412,1528440413,1528440414,1528440415,1528440416,1528440417,1528440667,1528440668,1528440669,1528440670,1528440671,1528440672,1528440673,1528440923,1528440924,1528440925,1528440926,1528440927,1528440928,1528440929,1528441179,1528441180,1528441181,1528441182,1528441183,1528441184,1528441185,1528441435,1528441436,1528441437,1528441438,1528441439,1528441440,1528441441,1528441691,1528441692,1528441693,1528441694,1528441695,1528441696,1528441697,1528441947,1528441948,1528441949,1528441950,1528441951,1528441952,1528441953,1528442203,1528442204,1528442205,1528442206,1528442207,1528442208,1528442209,1528442459,1528442460,1528442461,1528442462,1528442463,1528442464,1528442465,1528442715,1528442716,1528442717,1528442718,1528442719,1528442720,1528442721,1528442971,1528442972,1528442973,1528442974,1528442975,1528442976,1528442977,1528443227,1528443228,1528443229,1528443230,1528443231,1528443232,1528443233,1528443483,1528443484,1528443485,1528443486,1528443487,1528443488,1528443489,1528443739,1528443740,1528443741,1528443742,1528443743,1528443744,1528443745,1528443995,1528443996,1528443997,1528443998,1528443999,1528444000,1528444001,1528444251,1528444252,1528444253,1528444254,1528444255,1528444256,1528444257,1528444507,1528444508,1528444509,1528444510,1528444511,1528444512,1528444513,1528444745,1528444746,1528444747,1528444748,1528444749,1528444750,1528444751,1528444763,1528444764,1528444765,1528444766,1528444767,1528444768,1528444769,1528445001,1528445002,1528445003,1528445004,1528445005,1528445006,1528445007,1528445019,1528445020,1528445021,1528445022,1528445023,1528445024,1528445025,1528445257,1528445258,1528445259,1528445260,1528445261,1528445262,1528445263,1528445275,1528445276,1528445277,1528445278,1528445279,1528445280,1528445281,1528445513,1528445514,1528445515,1528445516,1528445517,1528445518,1528445519,1528445531,1528445532,1528445533,1528445534,1528445535,1528445536,1528445537,1528445769,1528445770,1528445771,1528445772,1528445773,1528445774,1528445775,1528445787,1528445788,1528445789,1528445790,1528445791,1528445792,1528445793,1528446025,1528446026,1528446027,1528446028,1528446029,1528446030,1528446031,1528446043,1528446044,1528446045,1528446046,1528446047,1528446048,1528446049,1528446281,1528446282,1528446283,1528446284,1528446285,1528446286,1528446287,1528446299,1528446300,1528446301,1528446302,1528446303,1528446304,1528446305,1528446537,1528446538,1528446539,1528446540,1528446541,1528446542,1528446543,1528446555,1528446556,1528446557,1528446558,1528446559,1528446560,1528446561,1528446793,1528446794,1528446795,1528446796,1528446797,1528446798,1528446799,1528446800,1528446810,1528446811,1528446812,1528446813,1528446814,1528446815,1528446816,1528446817,1528447049,1528447050,1528447051,1528447052,1528447053,1528447054,1528447055,1528447056,1528447057,1528447058,1528447059,1528447060,1528447061,1528447062,1528447063,1528447064,1528447065,1528447066,1528447067,1528447068,1528447069,1528447070,1528447071,1528447072,1528447073,1528447305,1528447306,1528447307,1528447308,1528447309,1528447310,1528447311,1528447312,1528447313,1528447314,1528447315,1528447316,1528447317,1528447318,1528447319,1528447320,1528447321,1528447322,1528447323,1528447324,1528447325,1528447326,1528447327,1528447328,1528447329,1528447561,1528447562,1528447563,1528447564,1528447565,1528447566,1528447567,1528447568,1528447569,1528447570,1528447571,1528447572,1528447573,1528447574,1528447575,1528447576,1528447577,1528447578,1528447579,1528447580,1528447581,1528447582,1528447583,1528447584,1528447585,1528447817,1528447818,1528447819,1528447820,1528447821,1528447822,1528447823,1528447824,1528447825,1528447826,1528447827,1528447828,1528447829,1528447830,1528447831,1528447832,1528447833,1528447834,1528447835,1528447836,1528447837,1528447838,1528447839,1528447840,1528447841,1528448073,1528448074,1528448075,1528448076,1528448077,1528448078,1528448079,1528448080,1528448081,1528448082,1528448083,1528448084,1528448085,1528448086,1528448087,1528448088,1528448089,1528448090,1528448091,1528448092,1528448093,1528448094,1528448095,1528448096,1528448097,1528448329,1528448330,1528448331,1528448332,1528448333,1528448334,1528448335,1528448336,1528448337,1528448338,1528448339,1528448340,1528448341,1528448342,1528448343,1528448344,1528448345,1528448346,1528448347,1528448348,1528448349,1528448350,1528448351,1528448352,1528448353,1528448585,1528448586,1528448587,1528448588,1528448589,1528448590,1528448591,1528448592,1528448593,1528448594,1528448595,1528448596,1528448597,1528448598,1528448599,1528448600,1528448601,1528448602,1528448603,1528448604,1528448605,1528448606,1528448607,1528448608,1528448609,1528448841,1528448842,1528448843,1528448844,1528448845,1528448846,1528448847,1528448848,1528448849,1528448850,1528448851,1528448852,1528448853,1528448854,1528448855,1528448856,1528448857,1528448858,1528448859,1528448860,1528448861,1528448862,1528448863,1528448864,1528448865,1528449097,1528449098,1528449099,1528449100,1528449101,1528449102,1528449103,1528449104,1528449105,1528449106,1528449107,1528449108,1528449109,1528449110,1528449111,1528449112,1528449113,1528449114,1528449115,1528449116,1528449117,1528449118,1528449119,1528449120,1528449121,1528449354,1528449355,1528449356,1528449357,1528449358,1528449359,1528449360,1528449361,1528449362,1528449363,1528449364,1528449365,1528449366,1528449367,1528449368,1528449369,1528449370,1528449371,1528449372,1528449373,1528449374,1528449375,1528449376,1528449377,1528449610,1528449611,1528449612,1528449613,1528449614,1528449615,1528449616,1528449617,1528449618,1528449619,1528449620,1528449621,1528449622,1528449623,1528449624,1528449625,1528449626,1528449627,1528449628,1528449629,1528449630,1528449631,1528449632,1528449633,1528449866,1528449867,1528449868,1528449869,1528449870,1528449871,1528449872,1528449873,1528449874,1528449875,1528449876,1528449877,1528449878,1528449879,1528449880,1528449881,1528449882,1528449883,1528449884,1528449885,1528449886,1528449887,1528449888,1528449889,1528450122,1528450123,1528450124,1528450125,1528450126,1528450127,1528450128,1528450129,1528450130,1528450131,1528450132,1528450133,1528450134,1528450135,1528450136,1528450137,1528450138,1528450139,1528450140,1528450141,1528450142,1528450143,1528450144,1528450145,1528450378,1528450379,1528450380,1528450381,1528450382,1528450383,1528450384,1528450385,1528450386,1528450387,1528450388,1528450389,1528450390,1528450391,1528450392,1528450393,1528450394,1528450395,1528450396,1528450397,1528450398,1528450399,1528450400,1528450401,1528450634,1528450635,1528450636,1528450637,1528450638,1528450639,1528450640,1528450641,1528450642,1528450643,1528450644,1528450645,1528450646,1528450647,1528450648,1528450649,1528450650,1528450651,1528450652,1528450653,1528450654,1528450655,1528450656,1528450657,1528450890,1528450891,1528450892,1528450893,1528450894,1528450895,1528450896,1528450897,1528450898,1528450899,1528450900,1528450901,1528450902,1528450903,1528450904,1528450905,1528450906,1528450907,1528450908,1528450909,1528450910,1528450911,1528450912,1528450913,1528451145,1528451146,1528451147,1528451148,1528451149,1528451150,1528451151,1528451152,1528451153,1528451154,1528451155,1528451156,1528451157,1528451158,1528451159,1528451160,1528451161,1528451162,1528451163,1528451164,1528451165,1528451166,1528451167,1528451168,1528451169,1528451400,1528451401,1528451402,1528451403,1528451404,1528451405,1528451406,1528451407,1528451408,1528451409,1528451410,1528451411,1528451412,1528451413,1528451414,1528451415,1528451416,1528451417,1528451418,1528451419,1528451420,1528451421,1528451422,1528451423,1528451424,1528451425,1528451612,1528451618,1528451619,1528451620,1528451621,1528451627,1528451628,1528451629,1528451630,1528451636,1528451637,1528451638,1528451639,1528451640,1528451641,1528451642,1528451643,1528451644,1528451645,1528451646,1528451647,1528451648,1528451649,1528451650,1528451651,1528451652,1528451653,1528451654,1528451655,1528451656,1528451657,1528451658,1528451659,1528451660,1528451661,1528451662,1528451663,1528451664,1528451665,1528451666,1528451667,1528451668,1528451669,1528451670,1528451671,1528451672,1528451673,1528451674,1528451675,1528451676,1528451677,1528451678,1528451679,1528451680,1528451681,1528451868,1528451874,1528451875,1528451876,1528451877,1528451883,1528451884,1528451885,1528451886,1528451892,1528451893,1528451894,1528451895,1528451896,1528451897,1528451898,1528451899,1528451900,1528451901,1528451902,1528451903,1528451904,1528451905,1528451906,1528451907,1528451908,1528451909,1528451910,1528451911,1528451912,1528451913,1528451914,1528451915,1528451916,1528451917,1528451918,1528451919,1528451920,1528451921,1528451922,1528451923,1528451924,1528451925,1528451926,1528451927,1528451928,1528451929,1528451930,1528451931,1528451932,1528451933,1528451934,1528451935,1528451936,1528451937,1528452124,1528452130,1528452131,1528452132,1528452133,1528452139,1528452140,1528452141,1528452142,1528452148,1528452149,1528452150,1528452151,1528452152,1528452153,1528452154,1528452155,1528452156,1528452157,1528452158,1528452159,1528452160,1528452161,1528452162,1528452163,1528452164,1528452165,1528452166,1528452167,1528452168,1528452169,1528452170,1528452171,1528452172,1528452173,1528452174,1528452175,1528452176,1528452177,1528452178,1528452179,1528452180,1528452181,1528452182,1528452183,1528452184,1528452185,1528452186,1528452187,1528452188,1528452189,1528452190,1528452191,1528452192,1528452193,1528452380,1528452381,1528452385,1528452386,1528452387,1528452388,1528452389,1528452390,1528452394,1528452395,1528452396,1528452397,1528452398,1528452399,1528452403,1528452404,1528452405,1528452406,1528452407,1528452408,1528452409,1528452410,1528452411,1528452412,1528452413,1528452414,1528452415,1528452416,1528452417,1528452418,1528452419,1528452420,1528452421,1528452422,1528452423,1528452424,1528452425,1528452426,1528452427,1528452428,1528452429,1528452430,1528452431,1528452432,1528452433,1528452434,1528452435,1528452436,1528452437,1528452438,1528452439,1528452440,1528452441,1528452442,1528452443,1528452444,1528452445,1528452446,1528452447,1528452448,1528452449,1528452636,1528452637,1528452638,1528452639,1528452640,1528452641,1528452642,1528452643,1528452644,1528452645,1528452646,1528452647,1528452648,1528452649,1528452650,1528452651,1528452652,1528452653,1528452654,1528452655,1528452656,1528452657,1528452658,1528452659,1528452660,1528452661,1528452662,1528452663,1528452664,1528452665,1528452666,1528452667,1528452668,1528452669,1528452670,1528452671,1528452672,1528452673,1528452674,1528452675,1528452676,1528452677,1528452678,1528452679,1528452680,1528452681,1528452682,1528452683,1528452684,1528452685,1528452686,1528452687,1528452688,1528452689,1528452690,1528452691,1528452692,1528452693,1528452694,1528452695,1528452696,1528452697,1528452698,1528452699,1528452700,1528452701,1528452702,1528452703,1528452704,1528452705,1528452892,1528452893,1528452894,1528452895,1528452896,1528452897,1528452898,1528452899,1528452900,1528452901,1528452902,1528452903,1528452904,1528452905,1528452906,1528452907,1528452908,1528452909,1528452910,1528452911,1528452912,1528452913,1528452914,1528452915,1528452916,1528452917,1528452918,1528452919,1528452920,1528452921,1528452922,1528452923,1528452924,1528452925,1528452926,1528452927,1528452928,1528452929,1528452930,1528452931,1528452932,1528452933,1528452934,1528452935,1528452936,1528452937,1528452938,1528452939,1528452940,1528452941,1528452942,1528452943,1528452944,1528452945,1528452946,1528452947,1528452948,1528452949,1528452950,1528452951,1528452952,1528452953,1528452954,1528452955,1528452956,1528452957,1528452958,1528452959,1528452960,1528452961,1528453148,1528453149,1528453150,1528453151,1528453152,1528453153,1528453154,1528453155,1528453156,1528453157,1528453158,1528453159,1528453160,1528453161,1528453162,1528453163,1528453164,1528453165,1528453166,1528453167,1528453168,1528453169,1528453170,1528453171,1528453172,1528453173,1528453174,1528453175,1528453176,1528453177,1528453178,1528453179,1528453180,1528453181,1528453182,1528453183,1528453184,1528453185,1528453186,1528453187,1528453188,1528453189,1528453190,1528453191,1528453192,1528453193,1528453194,1528453195,1528453196,1528453197,1528453198,1528453199,1528453200,1528453201,1528453202,1528453203,1528453204,1528453205,1528453206,1528453207,1528453208,1528453209,1528453210,1528453211,1528453212,1528453213,1528453214,1528453215,1528453216,1528453217,1528453404,1528453405,1528453406,1528453407,1528453408,1528453409,1528453410,1528453411,1528453412,1528453413,1528453414,1528453415,1528453416,1528453417,1528453418,1528453419,1528453420,1528453421,1528453422,1528453423,1528453424,1528453425,1528453426,1528453427,1528453428,1528453429,1528453439,1528453440,1528453441,1528453442,1528453443,1528453444,1528453445,1528453446,1528453447,1528453448,1528453449,1528453450,1528453451,1528453452,1528453453,1528453454,1528453455,1528453456,1528453457,1528453458,1528453459,1528453460,1528453461,1528453462,1528453463,1528453464,1528453465,1528453466,1528453467,1528453468,1528453469,1528453470,1528453471,1528453472,1528453473,1528453659,1528453660,1528453661,1528453662,1528453663,1528453664,1528453665,1528453666,1528453667,1528453668,1528453669,1528453670,1528453671,1528453672,1528453673,1528453674,1528453675,1528453676,1528453677,1528453678,1528453679,1528453680,1528453681,1528453682,1528453683,1528453684,1528453696,1528453697,1528453698,1528453699,1528453700,1528453701,1528453702,1528453703,1528453704,1528453705,1528453706,1528453707,1528453708,1528453709,1528453710,1528453711,1528453712,1528453713,1528453714,1528453715,1528453716,1528453717,1528453718,1528453719,1528453720,1528453721,1528453722,1528453723,1528453724,1528453725,1528453726,1528453727,1528453728,1528453729,1366774878,1366774877,1366774876,1366774875,1360681751,1360681752,1360681753,1360681754,1528453915,1528453916,1528453917,1528453918,1528453919,1528453920,1528453921,1528453922,1528453923,1528453924,1528453925,1528453926,1528453927,1528453928,1528453929,1528453930,1528453931,1528453932,1528453933,1528453934,1528453935,1528453936,1528453937,1528453938,1528453939,1528453940,1528453952,1528453953,1528453954,1528453955,1528453956,1528453957,1528453958,1528453959,1528453960,1528453961,1528453962,1528453963,1528453964,1528453965,1528453966,1528453967,1528453968,1528453969,1528453970,1528453971,1528453972,1528453973,1528453974,1528453975,1528453976,1528453977,1528453978,1528453979,1528453980,1528453981,1528453982,1528453983,1528453984,1528453985,1366774625,1366774624,1366774623,1366774622,1360682007,1360682008,1360682009,1360682010,1528454171,1528454172,1528454173,1528454174,1528454175,1528454176,1528454177,1528454178,1528454179,1528454180,1528454181,1528454182,1528454183,1528454184,1528454185,1528454186,1528454187,1528454188,1528454189,1528454190,1528454191,1528454192,1528454193,1528454194,1528454195,1528454196,1528454208,1528454209,1528454210,1528454211,1528454212,1528454213,1528454214,1528454215,1528454216,1528454217,1528454218,1528454219,1528454220,1528454221,1528454222,1528454223,1528454224,1528454225,1528454226,1528454227,1528454228,1528454229,1528454230,1528454231,1528454232,1528454233,1528454234,1528454235,1528454236,1528454237,1528454238,1528454239,1528454240,1528454241,1366774621,1366774620,1366774619,1366774369,1360682263,1360682264,1360682265,1360682266,1528454427,1528454428,1528454429,1528454430,1528454431,1528454432,1528454433,1528454434,1528454435,1528454436,1528454437,1528454438,1528454439,1528454440,1528454441,1528454442,1528454443,1528454444,1528454445,1528454446,1528454447,1528454448,1528454449,1528454450,1528454451,1528454452,1528454464,1528454465,1528454466,1528454467,1528454468,1528454469,1528454470,1528454471,1528454472,1528454473,1528454474,1528454475,1528454476,1528454477,1528454478,1528454479,1528454480,1528454481,1528454482,1528454483,1528454484,1528454485,1528454486,1528454487,1528454488,1528454489,1528454490,1528454491,1528454492,1528454493,1528454494,1528454495,1528454496,1528454497,1366774368,1366774367,1366774366,1366774365,1360682519,1360682520,1360682521,1360682522,1528454683,1528454684,1528454685,1528454686,1528454687,1528454688,1528454689,1528454690,1528454691,1528454692,1528454693,1528454694,1528454695,1528454696,1528454697,1528454698,1528454699,1528454700,1528454701,1528454702,1528454703,1528454704,1528454705,1528454706,1528454707,1528454708,1528454720,1528454721,1528454722,1528454723,1528454724,1528454725,1528454726,1528454727,1528454728,1528454729,1528454730,1528454731,1528454732,1528454733,1528454734,1528454735,1528454736,1528454737,1528454738,1528454739,1528454740,1528454741,1528454742,1528454743,1528454744,1528454745,1528454746,1528454747,1528454748,1528454749,1528454750,1528454751,1528454752,1528454753,1366774364,1366774363,1366774113,1366774112,1360682775,1360682776,1360682777,1360682778,1528454939,1528454940,1528454941,1528454942,1528454943,1528454944,1528454945,1528454946,1528454947,1528454948,1528454949,1528454950,1528454951,1528454952,1528454953,1528454954,1528454955,1528454956,1528454957,1528454958,1528454959,1528454960,1528454961,1528454962,1528454963,1528454964,1528454976,1528454977,1528454978,1528454979,1528454980,1528454981,1528454982,1528454983,1528454984,1528454985,1528454986,1528454987,1528454988,1528454989,1528454990,1528454991,1528454992,1528454993,1528454994,1528454995,1528454996,1528454997,1528454998,1528454999,1528455000,1528455001,1528455002,1528455003,1528455004,1528455005,1528455006,1528455007,1528455008,1528455009,1366774111,1366774110,1366774109,1366774108,1360683031,1360683032,1360683033,1360683034,1528455195,1528455196,1528455197,1528455198,1528455199,1528455200,1528455201,1528455202,1528455203,1528455204,1528455205,1528455206,1528455207,1528455208,1528455209,1528455210,1528455211,1528455212,1528455213,1528455214,1528455215,1528455216,1528455217,1528455218,1528455219,1528455220,1528455232,1528455233,1528455234,1528455235,1528455236,1528455237,1528455238,1528455239,1528455240,1528455241,1528455242,1528455243,1528455244,1528455245,1528455246,1528455247,1528455248,1528455249,1528455250,1528455251,1528455252,1528455253,1528455254,1528455255,1528455256,1528455257,1528455258,1528455259,1528455260,1528455261,1528455262,1528455263,1528455264,1528455265,1366774107,1366773857,1366773856,1366773855,1360683287,1360683288,1360683289,1360683290,1528455451,1528455452,1528455453,1528455454,1528455455,1528455456,1528455457,1528455458,1528455459,1528455460,1528455461,1528455462,1528455463,1528455464,1528455465,1528455466,1528455467,1528455468,1528455469,1528455470,1528455471,1528455472,1528455473,1528455474,1528455475,1528455476,1528455488,1528455489,1528455490,1528455491,1528455492,1528455493,1528455494,1528455495,1528455496,1528455497,1528455498,1528455499,1528455500,1528455501,1528455502,1528455503,1528455504,1528455505,1528455506,1528455507,1528455508,1528455509,1528455510,1528455511,1528455512,1528455513,1528455514,1528455515,1528455516,1528455517,1528455518,1528455519,1528455520,1528455521,1360728923,1360728924,1360728925,1360728926,1360728927,1360728928,1360728929,1360729179,1360729180,1360729181,1360729182,1360729183,1360729184,1360729185,1360729435,1360729436,1360729437,1360729438,1360729439,1360729440,1360729441,1360729691,1360729692,1360729693,1360729694,1360729695,1360729696,1360729697,1360729947,1360729948,1360729949,1360729950,1360729951,1360729952,1360729953,1360730203,1360730204,1360730205,1360730206,1360730207,1360730208,1360730209,1360730459,1360730460,1360730461,1360730462,1360730463,1360730464,1360730465,1360730715,1360730716,1360730717,1360730718,1360730719,1360730720,1360730721,1528503131,1528503132,1528503133,1528503134,1528503135,1528503136,1528503137,1528503387,1528503388,1528503389,1528503390,1528503391,1528503392,1528503393,1528503644,1528503645,1528503646,1528503647,1528503648,1528503649,1528503900,1528503901,1528503902,1528503903,1528503904,1528503905,1528504156,1528504157,1528504158,1528504159,1528504160,1528504161,1528504412,1528504413,1528504414,1528504415,1528504416,1528504417,1528504668,1528504669,1528504670,1528504671,1528504672,1528504673,1528504923,1528504924,1528504925,1528504926,1528504927,1528504928,1528504929,1528505179,1528505180,1528505181,1528505182,1528505183,1528505184,1528505185,1528505435,1528505436,1528505437,1528505438,1528505439,1528505440,1528505441,1528505691,1528505692,1528505693,1528505694,1528505695,1528505696,1528505697,1528505947,1528505948,1528505949,1528505950,1528505951,1528505952,1528505953,1528506203,1528506204,1528506205,1528506206,1528506207,1528506208,1528506209,1528506459,1528506460,1528506461,1528506462,1528506463,1528506464,1528506465,1528506715,1528506716,1528506717,1528506718,1528506719,1528506720,1528506721,1528506971,1528506972,1528506973,1528506974,1528506975,1528506976,1528506977,1528507227,1528507228,1528507229,1528507230,1528507231,1528507232,1528507233,1528507483,1528507484,1528507485,1528507486,1528507487,1528507488,1528507489,1528507739,1528507740,1528507741,1528507742,1528507743,1528507744,1528507745,1528507995,1528507996,1528507997,1528507998,1528507999,1528508000,1528508001,1528508251,1528508252,1528508253,1528508254,1528508255,1528508256,1528508257,1528508507,1528508508,1528508509,1528508510,1528508511,1528508512,1528508513,1528508763,1528508764,1528508765,1528508766,1528508767,1528508768,1528508769,1528509019,1528509020,1528509021,1528509022,1528509023,1528509024,1528509025,1528509275,1528509276,1528509277,1528509278,1528509279,1528509280,1528509281,1528509531,1528509532,1528509533,1528509534,1528509535,1528509536,1528509537,1528509787,1528509788,1528509789,1528509790,1528509791,1528509792,1528509793,1528510043,1528510044,1528510045,1528510046,1528510047,1528510048,1528510049,1528510281,1528510282,1528510283,1528510284,1528510285,1528510286,1528510287,1528510299,1528510300,1528510301,1528510302,1528510303,1528510304,1528510305,1528510537,1528510538,1528510539,1528510540,1528510541,1528510542,1528510543,1528510555,1528510556,1528510557,1528510558,1528510559,1528510560,1528510561,1528510793,1528510794,1528510795,1528510796,1528510797,1528510798,1528510799,1528510811,1528510812,1528510813,1528510814,1528510815,1528510816,1528510817,1528511049,1528511050,1528511051,1528511052,1528511053,1528511054,1528511055,1528511067,1528511068,1528511069,1528511070,1528511071,1528511072,1528511073,1528511305,1528511306,1528511307,1528511308,1528511309,1528511310,1528511311,1528511323,1528511324,1528511325,1528511326,1528511327,1528511328,1528511329,1528511561,1528511562,1528511563,1528511564,1528511565,1528511566,1528511567,1528511579,1528511580,1528511581,1528511582,1528511583,1528511584,1528511585,1528511817,1528511818,1528511819,1528511820,1528511821,1528511822,1528511823,1528511835,1528511836,1528511837,1528511838,1528511839,1528511840,1528511841,1528512073,1528512074,1528512075,1528512076,1528512077,1528512078,1528512079,1528512091,1528512092,1528512093,1528512094,1528512095,1528512096,1528512097,1528512329,1528512330,1528512331,1528512332,1528512333,1528512334,1528512335,1528512336,1528512346,1528512347,1528512348,1528512349,1528512350,1528512351,1528512352,1528512353,1528512585,1528512586,1528512587,1528512588,1528512589,1528512590,1528512591,1528512592,1528512593,1528512594,1528512595,1528512596,1528512597,1528512598,1528512599,1528512600,1528512601,1528512602,1528512603,1528512604,1528512605,1528512606,1528512607,1528512608,1528512609,1528512841,1528512842,1528512843,1528512844,1528512845,1528512846,1528512847,1528512848,1528512849,1528512850,1528512851,1528512852,1528512853,1528512854,1528512855,1528512856,1528512857,1528512858,1528512859,1528512860,1528512861,1528512862,1528512863,1528512864,1528512865,1528513097,1528513098,1528513099,1528513100,1528513101,1528513102,1528513103,1528513104,1528513105,1528513106,1528513107,1528513108,1528513109,1528513110,1528513111,1528513112,1528513113,1528513114,1528513115,1528513116,1528513117,1528513118,1528513119,1528513120,1528513121,1528513353,1528513354,1528513355,1528513356,1528513357,1528513358,1528513359,1528513360,1528513361,1528513362,1528513363,1528513364,1528513365,1528513366,1528513367,1528513368,1528513369,1528513370,1528513371,1528513372,1528513373,1528513374,1528513375,1528513376,1528513377,1528513609,1528513610,1528513611,1528513612,1528513613,1528513614,1528513615,1528513616,1528513617,1528513618,1528513619,1528513620,1528513621,1528513622,1528513623,1528513624,1528513625,1528513626,1528513627,1528513628,1528513629,1528513630,1528513631,1528513632,1528513633,1528513865,1528513866,1528513867,1528513868,1528513869,1528513870,1528513871,1528513872,1528513873,1528513874,1528513875,1528513876,1528513877,1528513878,1528513879,1528513880,1528513881,1528513882,1528513883,1528513884,1528513885,1528513886,1528513887,1528513888,1528513889,1528514121,1528514122,1528514123,1528514124,1528514125,1528514126,1528514127,1528514128,1528514129,1528514130,1528514131,1528514132,1528514133,1528514134,1528514135,1528514136,1528514137,1528514138,1528514139,1528514140,1528514141,1528514142,1528514143,1528514144,1528514145,1528514377,1528514378,1528514379,1528514380,1528514381,1528514382,1528514383,1528514384,1528514385,1528514386,1528514387,1528514388,1528514389,1528514390,1528514391,1528514392,1528514393,1528514394,1528514395,1528514396,1528514397,1528514398,1528514399,1528514400,1528514401,1528514633,1528514634,1528514635,1528514636,1528514637,1528514638,1528514639,1528514640,1528514641,1528514642,1528514643,1528514644,1528514645,1528514646,1528514647,1528514648,1528514649,1528514650,1528514651,1528514652,1528514653,1528514654,1528514655,1528514656,1528514657,1528514890,1528514891,1528514892,1528514893,1528514894,1528514895,1528514896,1528514897,1528514898,1528514899,1528514900,1528514901,1528514902,1528514903,1528514904,1528514905,1528514906,1528514907,1528514908,1528514909,1528514910,1528514911,1528514912,1528514913,1528515146,1528515147,1528515148,1528515149,1528515150,1528515151,1528515152,1528515153,1528515154,1528515155,1528515156,1528515157,1528515158,1528515159,1528515160,1528515161,1528515162,1528515163,1528515164,1528515165,1528515166,1528515167,1528515168,1528515169,1528515402,1528515403,1528515404,1528515405,1528515406,1528515407,1528515408,1528515409,1528515410,1528515411,1528515412,1528515413,1528515414,1528515415,1528515416,1528515417,1528515418,1528515419,1528515420,1528515421,1528515422,1528515423,1528515424,1528515425,1528515658,1528515659,1528515660,1528515661,1528515662,1528515663,1528515664,1528515665,1528515666,1528515667,1528515668,1528515669,1528515670,1528515671,1528515672,1528515673,1528515674,1528515675,1528515676,1528515677,1528515678,1528515679,1528515680,1528515681,1528515914,1528515915,1528515916,1528515917,1528515918,1528515919,1528515920,1528515921,1528515922,1528515923,1528515924,1528515925,1528515926,1528515927,1528515928,1528515929,1528515930,1528515931,1528515932,1528515933,1528515934,1528515935,1528515936,1528515937,1528516170,1528516171,1528516172,1528516173,1528516174,1528516175,1528516176,1528516177,1528516178,1528516179,1528516180,1528516181,1528516182,1528516183,1528516184,1528516185,1528516186,1528516187,1528516188,1528516189,1528516190,1528516191,1528516192,1528516193,1528516426,1528516427,1528516428,1528516429,1528516430,1528516431,1528516432,1528516433,1528516434,1528516435,1528516436,1528516437,1528516438,1528516439,1528516440,1528516441,1528516442,1528516443,1528516444,1528516445,1528516446,1528516447,1528516448,1528516449,1528516681,1528516682,1528516683,1528516684,1528516685,1528516686,1528516687,1528516688,1528516689,1528516690,1528516691,1528516692,1528516693,1528516694,1528516695,1528516696,1528516697,1528516698,1528516699,1528516700,1528516701,1528516702,1528516703,1528516704,1528516705,1528516936,1528516937,1528516938,1528516939,1528516940,1528516941,1528516942,1528516943,1528516944,1528516945,1528516946,1528516947,1528516948,1528516949,1528516950,1528516951,1528516952,1528516953,1528516954,1528516955,1528516956,1528516957,1528516958,1528516959,1528516960,1528516961,1528517148,1528517154,1528517155,1528517156,1528517157,1528517163,1528517164,1528517165,1528517166,1528517172,1528517173,1528517174,1528517175,1528517176,1528517177,1528517178,1528517179,1528517180,1528517181,1528517182,1528517183,1528517184,1528517185,1528517186,1528517187,1528517188,1528517189,1528517190,1528517191,1528517192,1528517193,1528517194,1528517195,1528517196,1528517197,1528517198,1528517199,1528517200,1528517201,1528517202,1528517203,1528517204,1528517205,1528517206,1528517207,1528517208,1528517209,1528517210,1528517211,1528517212,1528517213,1528517214,1528517215,1528517216,1528517217,1528517404,1528517410,1528517411,1528517412,1528517413,1528517419,1528517420,1528517421,1528517422,1528517428,1528517429,1528517430,1528517431,1528517432,1528517433,1528517434,1528517435,1528517436,1528517437,1528517438,1528517439,1528517440,1528517441,1528517442,1528517443,1528517444,1528517445,1528517446,1528517447,1528517448,1528517449,1528517450,1528517451,1528517452,1528517453,1528517454,1528517455,1528517456,1528517457,1528517458,1528517459,1528517460,1528517461,1528517462,1528517463,1528517464,1528517465,1528517466,1528517467,1528517468,1528517469,1528517470,1528517471,1528517472,1528517473,1528517660,1528517666,1528517667,1528517668,1528517669,1528517675,1528517676,1528517677,1528517678,1528517684,1528517685,1528517686,1528517687,1528517688,1528517689,1528517690,1528517691,1528517692,1528517693,1528517694,1528517695,1528517696,1528517697,1528517698,1528517699,1528517700,1528517701,1528517702,1528517703,1528517704,1528517705,1528517706,1528517707,1528517708,1528517709,1528517710,1528517711,1528517712,1528517713,1528517714,1528517715,1528517716,1528517717,1528517718,1528517719,1528517720,1528517721,1528517722,1528517723,1528517724,1528517725,1528517726,1528517727,1528517728,1528517729,1528517916,1528517917,1528517921,1528517922,1528517923,1528517924,1528517925,1528517926,1528517930,1528517931,1528517932,1528517933,1528517934,1528517935,1528517939,1528517940,1528517941,1528517942,1528517943,1528517944,1528517945,1528517946,1528517947,1528517948,1528517949,1528517950,1528517951,1528517952,1528517953,1528517954,1528517955,1528517956,1528517957,1528517958,1528517959,1528517960,1528517961,1528517962,1528517963,1528517964,1528517965,1528517966,1528517967,1528517968,1528517969,1528517970,1528517971,1528517972,1528517973,1528517974,1528517975,1528517976,1528517977,1528517978,1528517979,1528517980,1528517981,1528517982,1528517983,1528517984,1528517985,1528518172,1528518173,1528518174,1528518175,1528518176,1528518177,1528518178,1528518179,1528518180,1528518181,1528518182,1528518183,1528518184,1528518185,1528518186,1528518187,1528518188,1528518189,1528518190,1528518191,1528518192,1528518193,1528518194,1528518195,1528518196,1528518197,1528518198,1528518199,1528518200,1528518201,1528518202,1528518203,1528518204,1528518205,1528518206,1528518207,1528518208,1528518209,1528518210,1528518211,1528518212,1528518213,1528518214,1528518215,1528518216,1528518217,1528518218,1528518219,1528518220,1528518221,1528518222,1528518223,1528518224,1528518225,1528518226,1528518227,1528518228,1528518229,1528518230,1528518231,1528518232,1528518233,1528518234,1528518235,1528518236,1528518237,1528518238,1528518239,1528518240,1528518241,1528518428,1528518429,1528518430,1528518431,1528518432,1528518433,1528518434,1528518435,1528518436,1528518437,1528518438,1528518439,1528518440,1528518441,1528518442,1528518443,1528518444,1528518445,1528518446,1528518447,1528518448,1528518449,1528518450,1528518451,1528518452,1528518453,1528518454,1528518455,1528518456,1528518457,1528518458,1528518459,1528518460,1528518461,1528518462,1528518463,1528518464,1528518465,1528518466,1528518467,1528518468,1528518469,1528518470,1528518471,1528518472,1528518473,1528518474,1528518475,1528518476,1528518477,1528518478,1528518479,1528518480,1528518481,1528518482,1528518483,1528518484,1528518485,1528518486,1528518487,1528518488,1528518489,1528518490,1528518491,1528518492,1528518493,1528518494,1528518495,1528518496,1528518497,1528518684,1528518685,1528518686,1528518687,1528518688,1528518689,1528518690,1528518691,1528518692,1528518693,1528518694,1528518695,1528518696,1528518697,1528518698,1528518699,1528518700,1528518701,1528518702,1528518703,1528518704,1528518705,1528518706,1528518707,1528518708,1528518709,1528518710,1528518711,1528518712,1528518713,1528518714,1528518715,1528518716,1528518717,1528518718,1528518719,1528518720,1528518721,1528518722,1528518723,1528518724,1528518725,1528518726,1528518727,1528518728,1528518729,1528518730,1528518731,1528518732,1528518733,1528518734,1528518735,1528518736,1528518737,1528518738,1528518739,1528518740,1528518741,1528518742,1528518743,1528518744,1528518745,1528518746,1528518747,1528518748,1528518749,1528518750,1528518751,1528518752,1528518753,1528518940,1528518941,1528518942,1528518943,1528518944,1528518945,1528518946,1528518947,1528518948,1528518949,1528518950,1528518951,1528518952,1528518953,1528518954,1528518955,1528518956,1528518957,1528518958,1528518959,1528518960,1528518961,1528518962,1528518963,1528518964,1528518965,1528518975,1528518976,1528518977,1528518978,1528518979,1528518980,1528518981,1528518982,1528518983,1528518984,1528518985,1528518986,1528518987,1528518988,1528518989,1528518990,1528518991,1528518992,1528518993,1528518994,1528518995,1528518996,1528518997,1528518998,1528518999,1528519000,1528519001,1528519002,1528519003,1528519004,1528519005,1528519006,1528519007,1528519008,1528519009,1528519195,1528519196,1528519197,1528519198,1528519199,1528519200,1528519201,1528519202,1528519203,1528519204,1528519205,1528519206,1528519207,1528519208,1528519209,1528519210,1528519211,1528519212,1528519213,1528519214,1528519215,1528519216,1528519217,1528519218,1528519219,1528519220,1528519232,1528519233,1528519234,1528519235,1528519236,1528519237,1528519238,1528519239,1528519240,1528519241,1528519242,1528519243,1528519244,1528519245,1528519246,1528519247,1528519248,1528519249,1528519250,1528519251,1528519252,1528519253,1528519254,1528519255,1528519256,1528519257,1528519258,1528519259,1528519260,1528519261,1528519262,1528519263,1528519264,1528519265,1366773854,1366773853,1366773852,1366773851,1360747287,1360747288,1360747289,1360747290,1528519451,1528519452,1528519453,1528519454,1528519455,1528519456,1528519457,1528519458,1528519459,1528519460,1528519461,1528519462,1528519463,1528519464,1528519465,1528519466,1528519467,1528519468,1528519469,1528519470,1528519471,1528519472,1528519473,1528519474,1528519475,1528519476,1528519488,1528519489,1528519490,1528519491,1528519492,1528519493,1528519494,1528519495,1528519496,1528519497,1528519498,1528519499,1528519500,1528519501,1528519502,1528519503,1528519504,1528519505,1528519506,1528519507,1528519508,1528519509,1528519510,1528519511,1528519512,1528519513,1528519514,1528519515,1528519516,1528519517,1528519518,1528519519,1528519520,1528519521,1366773601,1366773600,1366773599,1366773598,1360747543,1360747544,1360747545,1360747546,1528519707,1528519708,1528519709,1528519710,1528519711,1528519712,1528519713,1528519714,1528519715,1528519716,1528519717,1528519718,1528519719,1528519720,1528519721,1528519722,1528519723,1528519724,1528519725,1528519726,1528519727,1528519728,1528519729,1528519730,1528519731,1528519732,1528519744,1528519745,1528519746,1528519747,1528519748,1528519749,1528519750,1528519751,1528519752,1528519753,1528519754,1528519755,1528519756,1528519757,1528519758,1528519759,1528519760,1528519761,1528519762,1528519763,1528519764,1528519765,1528519766,1528519767,1528519768,1528519769,1528519770,1528519771,1528519772,1528519773,1528519774,1528519775,1528519776,1528519777,1366773597,1366773596,1366773595,1366773345,1360747799,1360747800,1360747801,1360747802,1528519963,1528519964,1528519965,1528519966,1528519967,1528519968,1528519969,1528519970,1528519971,1528519972,1528519973,1528519974,1528519975,1528519976,1528519977,1528519978,1528519979,1528519980,1528519981,1528519982,1528519983,1528519984,1528519985,1528519986,1528519987,1528519988,1528520000,1528520001,1528520002,1528520003,1528520004,1528520005,1528520006,1528520007,1528520008,1528520009,1528520010,1528520011,1528520012,1528520013,1528520014,1528520015,1528520016,1528520017,1528520018,1528520019,1528520020,1528520021,1528520022,1528520023,1528520024,1528520025,1528520026,1528520027,1528520028,1528520029,1528520030,1528520031,1528520032,1528520033,1366773344,1366773343,1366773342,1366773341,1360748055,1360748056,1360748057,1360748058,1528520219,1528520220,1528520221,1528520222,1528520223,1528520224,1528520225,1528520226,1528520227,1528520228,1528520229,1528520230,1528520231,1528520232,1528520233,1528520234,1528520235,1528520236,1528520237,1528520238,1528520239,1528520240,1528520241,1528520242,1528520243,1528520244,1528520256,1528520257,1528520258,1528520259,1528520260,1528520261,1528520262,1528520263,1528520264,1528520265,1528520266,1528520267,1528520268,1528520269,1528520270,1528520271,1528520272,1528520273,1528520274,1528520275,1528520276,1528520277,1528520278,1528520279,1528520280,1528520281,1528520282,1528520283,1528520284,1528520285,1528520286,1528520287,1528520288,1528520289,1366773340,1366773339,1366773089,1366773088,1360748311,1360748312,1360748313,1360748314,1528520475,1528520476,1528520477,1528520478,1528520479,1528520480,1528520481,1528520482,1528520483,1528520484,1528520485,1528520486,1528520487,1528520488,1528520489,1528520490,1528520491,1528520492,1528520493,1528520494,1528520495,1528520496,1528520497,1528520498,1528520499,1528520500,1528520512,1528520513,1528520514,1528520515,1528520516,1528520517,1528520518,1528520519,1528520520,1528520521,1528520522,1528520523,1528520524,1528520525,1528520526,1528520527,1528520528,1528520529,1528520530,1528520531,1528520532,1528520533,1528520534,1528520535,1528520536,1528520537,1528520538,1528520539,1528520540,1528520541,1528520542,1528520543,1528520544,1528520545,1366773087,1366773086,1366773085,1366773084,1360748567,1360748568,1360748569,1360748570,1528520731,1528520732,1528520733,1528520734,1528520735,1528520736,1528520737,1528520738,1528520739,1528520740,1528520741,1528520742,1528520743,1528520744,1528520745,1528520746,1528520747,1528520748,1528520749,1528520750,1528520751,1528520752,1528520753,1528520754,1528520755,1528520756,1528520768,1528520769,1528520770,1528520771,1528520772,1528520773,1528520774,1528520775,1528520776,1528520777,1528520778,1528520779,1528520780,1528520781,1528520782,1528520783,1528520784,1528520785,1528520786,1528520787,1528520788,1528520789,1528520790,1528520791,1528520792,1528520793,1528520794,1528520795,1528520796,1528520797,1528520798,1528520799,1528520800,1528520801,1366773083,1366772833,1366772832,1366772831,1360748823,1360748824,1360748825,1360748826,1528520987,1528520988,1528520989,1528520990,1528520991,1528520992,1528520993,1528520994,1528520995,1528520996,1528520997,1528520998,1528520999,1528521000,1528521001,1528521002,1528521003,1528521004,1528521005,1528521006,1528521007,1528521008,1528521009,1528521010,1528521011,1528521012,1528521024,1528521025,1528521026,1528521027,1528521028,1528521029,1528521030,1528521031,1528521032,1528521033,1528521034,1528521035,1528521036,1528521037,1528521038,1528521039,1528521040,1528521041,1528521042,1528521043,1528521044,1528521045,1528521046,1528521047,1528521048,1528521049,1528521050,1528521051,1528521052,1528521053,1528521054,1528521055,1528521056,1528521057,1360794459,1360794460,1360794461,1360794462,1360794463,1360794464,1360794465,1360794715,1360794716,1360794717,1360794718,1360794719,1360794720,1360794721,1360794971,1360794972,1360794973,1360794974,1360794975,1360794976,1360794977,1360795227,1360795228,1360795229,1360795230,1360795231,1360795232,1360795233,1360795483,1360795484,1360795485,1360795486,1360795487,1360795488,1360795489,1360795739,1360795740,1360795741,1360795742,1360795743,1360795744,1360795745,1360795995,1360795996,1360795997,1360795998,1360795999,1360796000,1360796001,1360796251,1360796252,1360796253,1360796254,1360796255,1360796256,1360796257,1528568667,1528568668,1528568669,1528568670,1528568671,1528568672,1528568673,1528568923,1528568924,1528568925,1528568926,1528568927,1528568928,1528568929,1528569179,1528569180,1528569181,1528569182,1528569183,1528569184,1528569185,1528569435,1528569436,1528569437,1528569438,1528569439,1528569440,1528569441,1528569691,1528569692,1528569693,1528569694,1528569695,1528569696,1528569697,1528569947,1528569948,1528569949,1528569950,1528569951,1528569952,1528569953,1528570203,1528570204,1528570205,1528570206,1528570207,1528570208,1528570209,1528570459,1528570460,1528570461,1528570462,1528570463,1528570464,1528570465,1528570715,1528570716,1528570717,1528570718,1528570719,1528570720,1528570721,1528570971,1528570972,1528570973,1528570974,1528570975,1528570976,1528570977,1528571227,1528571228,1528571229,1528571230,1528571231,1528571232,1528571233,1528571483,1528571484,1528571485,1528571486,1528571487,1528571488,1528571489,1528571739,1528571740,1528571741,1528571742,1528571743,1528571744,1528571745,1528571995,1528571996,1528571997,1528571998,1528571999,1528572000,1528572001,1528572251,1528572252,1528572253,1528572254,1528572255,1528572256,1528572257,1528572507,1528572508,1528572509,1528572510,1528572511,1528572512,1528572513,1528572763,1528572764,1528572765,1528572766,1528572767,1528572768,1528572769,1528573019,1528573020,1528573021,1528573022,1528573023,1528573024,1528573025,1528573275,1528573276,1528573277,1528573278,1528573279,1528573280,1528573281,1528573530,1528573531,1528573532,1528573533,1528573534,1528573535,1528573536,1528573537,1528573786,1528573787,1528573788,1528573789,1528573790,1528573791,1528573792,1528573793,1528574042,1528574043,1528574044,1528574045,1528574046,1528574047,1528574048,1528574049,1528574298,1528574299,1528574300,1528574301,1528574302,1528574303,1528574304,1528574305,1528574554,1528574555,1528574556,1528574557,1528574558,1528574559,1528574560,1528574561,1528574810,1528574811,1528574812,1528574813,1528574814,1528574815,1528574816,1528574817,1528575066,1528575067,1528575068,1528575069,1528575070,1528575071,1528575072,1528575073,1528575323,1528575324,1528575325,1528575326,1528575327,1528575328,1528575329,1528575579,1528575580,1528575581,1528575582,1528575583,1528575584,1528575585,1528575835,1528575836,1528575837,1528575838,1528575839,1528575840,1528575841,1528576073,1528576074,1528576075,1528576076,1528576077,1528576078,1528576079,1528576091,1528576092,1528576093,1528576094,1528576095,1528576096,1528576097,1528576329,1528576330,1528576331,1528576332,1528576333,1528576334,1528576335,1528576347,1528576348,1528576349,1528576350,1528576351,1528576352,1528576353,1528576585,1528576586,1528576587,1528576588,1528576589,1528576590,1528576591,1528576603,1528576604,1528576605,1528576606,1528576607,1528576608,1528576609,1528576841,1528576842,1528576843,1528576844,1528576845,1528576846,1528576847,1528576859,1528576860,1528576861,1528576862,1528576863,1528576864,1528576865,1528577097,1528577098,1528577099,1528577100,1528577101,1528577102,1528577103,1528577115,1528577116,1528577117,1528577118,1528577119,1528577120,1528577121,1528577353,1528577354,1528577355,1528577356,1528577357,1528577358,1528577359,1528577371,1528577372,1528577373,1528577374,1528577375,1528577376,1528577377,1528577609,1528577610,1528577611,1528577612,1528577613,1528577614,1528577615,1528577627,1528577628,1528577629,1528577630,1528577631,1528577632,1528577633,1528577865,1528577866,1528577867,1528577868,1528577869,1528577870,1528577871,1528577872,1528577882,1528577883,1528577884,1528577885,1528577886,1528577887,1528577888,1528577889,1528578121,1528578122,1528578123,1528578124,1528578125,1528578126,1528578127,1528578128,1528578129,1528578130,1528578131,1528578132,1528578133,1528578134,1528578135,1528578136,1528578137,1528578138,1528578139,1528578140,1528578141,1528578142,1528578143,1528578144,1528578145,1528578377,1528578378,1528578379,1528578380,1528578381,1528578382,1528578383,1528578384,1528578385,1528578386,1528578387,1528578388,1528578389,1528578390,1528578391,1528578392,1528578393,1528578394,1528578395,1528578396,1528578397,1528578398,1528578399,1528578400,1528578401,1528578633,1528578634,1528578635,1528578636,1528578637,1528578638,1528578639,1528578640,1528578641,1528578642,1528578643,1528578644,1528578645,1528578646,1528578647,1528578648,1528578649,1528578650,1528578651,1528578652,1528578653,1528578654,1528578655,1528578656,1528578657,1528578889,1528578890,1528578891,1528578892,1528578893,1528578894,1528578895,1528578896,1528578897,1528578898,1528578899,1528578900,1528578901,1528578902,1528578903,1528578904,1528578905,1528578906,1528578907,1528578908,1528578909,1528578910,1528578911,1528578912,1528578913,1528579145,1528579146,1528579147,1528579148,1528579149,1528579150,1528579151,1528579152,1528579153,1528579154,1528579155,1528579156,1528579157,1528579158,1528579159,1528579160,1528579161,1528579162,1528579163,1528579164,1528579165,1528579166,1528579167,1528579168,1528579169,1528579401,1528579402,1528579403,1528579404,1528579405,1528579406,1528579407,1528579408,1528579409,1528579410,1528579411,1528579412,1528579413,1528579414,1528579415,1528579416,1528579417,1528579418,1528579419,1528579420,1528579421,1528579422,1528579423,1528579424,1528579425,1528579657,1528579658,1528579659,1528579660,1528579661,1528579662,1528579663,1528579664,1528579665,1528579666,1528579667,1528579668,1528579669,1528579670,1528579671,1528579672,1528579673,1528579674,1528579675,1528579676,1528579677,1528579678,1528579679,1528579680,1528579681,1528579913,1528579914,1528579915,1528579916,1528579917,1528579918,1528579919,1528579920,1528579921,1528579922,1528579923,1528579924,1528579925,1528579926,1528579927,1528579928,1528579929,1528579930,1528579931,1528579932,1528579933,1528579934,1528579935,1528579936,1528579937,1528580169,1528580170,1528580171,1528580172,1528580173,1528580174,1528580175,1528580176,1528580177,1528580178,1528580179,1528580180,1528580181,1528580182,1528580183,1528580184,1528580185,1528580186,1528580187,1528580188,1528580189,1528580190,1528580191,1528580192,1528580193,1528580426,1528580427,1528580428,1528580429,1528580430,1528580431,1528580432,1528580433,1528580434,1528580435,1528580436,1528580437,1528580438,1528580439,1528580440,1528580441,1528580442,1528580443,1528580444,1528580445,1528580446,1528580447,1528580448,1528580449,1528580682,1528580683,1528580684,1528580685,1528580686,1528580687,1528580688,1528580689,1528580690,1528580691,1528580692,1528580693,1528580694,1528580695,1528580696,1528580697,1528580698,1528580699,1528580700,1528580701,1528580702,1528580703,1528580704,1528580705,1528580938,1528580939,1528580940,1528580941,1528580942,1528580943,1528580944,1528580945,1528580946,1528580947,1528580948,1528580949,1528580950,1528580951,1528580952,1528580953,1528580954,1528580955,1528580956,1528580957,1528580958,1528580959,1528580960,1528580961,1528581194,1528581195,1528581196,1528581197,1528581198,1528581199,1528581200,1528581201,1528581202,1528581203,1528581204,1528581205,1528581206,1528581207,1528581208,1528581209,1528581210,1528581211,1528581212,1528581213,1528581214,1528581215,1528581216,1528581217,1528581450,1528581451,1528581452,1528581453,1528581454,1528581455,1528581456,1528581457,1528581458,1528581459,1528581460,1528581461,1528581462,1528581463,1528581464,1528581465,1528581466,1528581467,1528581468,1528581469,1528581470,1528581471,1528581472,1528581473,1528581706,1528581707,1528581708,1528581709,1528581710,1528581711,1528581712,1528581713,1528581714,1528581715,1528581716,1528581717,1528581718,1528581719,1528581720,1528581721,1528581722,1528581723,1528581724,1528581725,1528581726,1528581727,1528581728,1528581729,1528581962,1528581963,1528581964,1528581965,1528581966,1528581967,1528581968,1528581969,1528581970,1528581971,1528581972,1528581973,1528581974,1528581975,1528581976,1528581977,1528581978,1528581979,1528581980,1528581981,1528581982,1528581983,1528581984,1528581985,1528582217,1528582218,1528582219,1528582220,1528582221,1528582222,1528582223,1528582224,1528582225,1528582226,1528582227,1528582228,1528582229,1528582230,1528582231,1528582232,1528582233,1528582234,1528582235,1528582236,1528582237,1528582238,1528582239,1528582240,1528582241,1528582472,1528582473,1528582474,1528582475,1528582476,1528582477,1528582478,1528582479,1528582480,1528582481,1528582482,1528582483,1528582484,1528582485,1528582486,1528582487,1528582488,1528582489,1528582490,1528582491,1528582492,1528582493,1528582494,1528582495,1528582496,1528582497,1528582684,1528582690,1528582691,1528582692,1528582693,1528582699,1528582700,1528582701,1528582702,1528582708,1528582709,1528582710,1528582711,1528582712,1528582713,1528582714,1528582715,1528582716,1528582717,1528582718,1528582719,1528582720,1528582721,1528582722,1528582723,1528582724,1528582725,1528582726,1528582727,1528582728,1528582729,1528582730,1528582731,1528582732,1528582733,1528582734,1528582735,1528582736,1528582737,1528582738,1528582739,1528582740,1528582741,1528582742,1528582743,1528582744,1528582745,1528582746,1528582747,1528582748,1528582749,1528582750,1528582751,1528582752,1528582753,1528582940,1528582946,1528582947,1528582948,1528582949,1528582955,1528582956,1528582957,1528582958,1528582964,1528582965,1528582966,1528582967,1528582968,1528582969,1528582970,1528582971,1528582972,1528582973,1528582974,1528582975,1528582976,1528582977,1528582978,1528582979,1528582980,1528582981,1528582982,1528582983,1528582984,1528582985,1528582986,1528582987,1528582988,1528582989,1528582990,1528582991,1528582992,1528582993,1528582994,1528582995,1528582996,1528582997,1528582998,1528582999,1528583000,1528583001,1528583002,1528583003,1528583004,1528583005,1528583006,1528583007,1528583008,1528583009,1528583196,1528583202,1528583203,1528583204,1528583205,1528583211,1528583212,1528583213,1528583214,1528583220,1528583221,1528583222,1528583223,1528583224,1528583225,1528583226,1528583227,1528583228,1528583229,1528583230,1528583231,1528583232,1528583233,1528583234,1528583235,1528583236,1528583237,1528583238,1528583239,1528583240,1528583241,1528583242,1528583243,1528583244,1528583245,1528583246,1528583247,1528583248,1528583249,1528583250,1528583251,1528583252,1528583253,1528583254,1528583255,1528583256,1528583257,1528583258,1528583259,1528583260,1528583261,1528583262,1528583263,1528583264,1528583265,1528583452,1528583453,1528583457,1528583458,1528583459,1528583460,1528583461,1528583462,1528583466,1528583467,1528583468,1528583469,1528583470,1528583471,1528583475,1528583476,1528583477,1528583478,1528583479,1528583480,1528583481,1528583482,1528583483,1528583484,1528583485,1528583486,1528583487,1528583488,1528583489,1528583490,1528583491,1528583492,1528583493,1528583494,1528583495,1528583496,1528583497,1528583498,1528583499,1528583500,1528583501,1528583502,1528583503,1528583504,1528583505,1528583506,1528583507,1528583508,1528583509,1528583510,1528583511,1528583512,1528583513,1528583514,1528583515,1528583516,1528583517,1528583518,1528583519,1528583520,1528583521,1528583708,1528583709,1528583710,1528583711,1528583712,1528583713,1528583714,1528583715,1528583716,1528583717,1528583718,1528583719,1528583720,1528583721,1528583722,1528583723,1528583724,1528583725,1528583726,1528583727,1528583728,1528583729,1528583730,1528583731,1528583732,1528583733,1528583734,1528583735,1528583736,1528583737,1528583738,1528583739,1528583740,1528583741,1528583742,1528583743,1528583744,1528583745,1528583746,1528583747,1528583748,1528583749,1528583750,1528583751,1528583752,1528583753,1528583754,1528583755,1528583756,1528583757,1528583758,1528583759,1528583760,1528583761,1528583762,1528583763,1528583764,1528583765,1528583766,1528583767,1528583768,1528583769,1528583770,1528583771,1528583772,1528583773,1528583774,1528583775,1528583776,1528583777,1528583964,1528583965,1528583966,1528583967,1528583968,1528583969,1528583970,1528583971,1528583972,1528583973,1528583974,1528583975,1528583976,1528583977,1528583978,1528583979,1528583980,1528583981,1528583982,1528583983,1528583984,1528583985,1528583986,1528583987,1528583988,1528583989,1528583990,1528583991,1528583992,1528583993,1528583994,1528583995,1528583996,1528583997,1528583998,1528583999,1528584000,1528584001,1528584002,1528584003,1528584004,1528584005,1528584006,1528584007,1528584008,1528584009,1528584010,1528584011,1528584012,1528584013,1528584014,1528584015,1528584016,1528584017,1528584018,1528584019,1528584020,1528584021,1528584022,1528584023,1528584024,1528584025,1528584026,1528584027,1528584028,1528584029,1528584030,1528584031,1528584032,1528584033,1528584220,1528584221,1528584222,1528584223,1528584224,1528584225,1528584226,1528584227,1528584228,1528584229,1528584230,1528584231,1528584232,1528584233,1528584234,1528584235,1528584236,1528584237,1528584238,1528584239,1528584240,1528584241,1528584242,1528584243,1528584244,1528584245,1528584246,1528584247,1528584248,1528584249,1528584250,1528584251,1528584252,1528584253,1528584254,1528584255,1528584256,1528584257,1528584258,1528584259,1528584260,1528584261,1528584262,1528584263,1528584264,1528584265,1528584266,1528584267,1528584268,1528584269,1528584270,1528584271,1528584272,1528584273,1528584274,1528584275,1528584276,1528584277,1528584278,1528584279,1528584280,1528584281,1528584282,1528584283,1528584284,1528584285,1528584286,1528584287,1528584288,1528584289,1528584476,1528584477,1528584478,1528584479,1528584480,1528584481,1528584482,1528584483,1528584484,1528584485,1528584486,1528584487,1528584488,1528584489,1528584490,1528584491,1528584492,1528584493,1528584494,1528584495,1528584496,1528584497,1528584498,1528584499,1528584500,1528584501,1528584511,1528584512,1528584513,1528584514,1528584515,1528584516,1528584517,1528584518,1528584519,1528584520,1528584521,1528584522,1528584523,1528584524,1528584525,1528584526,1528584527,1528584528,1528584529,1528584530,1528584531,1528584532,1528584533,1528584534,1528584535,1528584536,1528584537,1528584538,1528584539,1528584540,1528584541,1528584542,1528584543,1528584544,1528584545,1528584731,1528584732,1528584733,1528584734,1528584735,1528584736,1528584737,1528584738,1528584739,1528584740,1528584741,1528584742,1528584743,1528584744,1528584745,1528584746,1528584747,1528584748,1528584749,1528584750,1528584751,1528584752,1528584753,1528584754,1528584755,1528584756,1528584768,1528584769,1528584770,1528584771,1528584772,1528584773,1528584774,1528584775,1528584776,1528584777,1528584778,1528584779,1528584780,1528584781,1528584782,1528584783,1528584784,1528584785,1528584786,1528584787,1528584788,1528584789,1528584790,1528584791,1528584792,1528584793,1528584794,1528584795,1528584796,1528584797,1528584798,1528584799,1528584800,1528584801,1366772830,1366772829,1366772828,1366772827,1360812823,1360812824,1360812825,1360812826,1528584987,1528584988,1528584989,1528584990,1528584991,1528584992,1528584993,1528584994,1528584995,1528584996,1528584997,1528584998,1528584999,1528585000,1528585001,1528585002,1528585003,1528585004,1528585005,1528585006,1528585007,1528585008,1528585009,1528585010,1528585011,1528585012,1528585024,1528585025,1528585026,1528585027,1528585028,1528585029,1528585030,1528585031,1528585032,1528585033,1528585034,1528585035,1528585036,1528585037,1528585038,1528585039,1528585040,1528585041,1528585042,1528585043,1528585044,1528585045,1528585046,1528585047,1528585048,1528585049,1528585050,1528585051,1528585052,1528585053,1528585054,1528585055,1528585056,1528585057,1366772577,1366772576,1366772575,1366772574,1360813079,1360813080,1360813081,1360813082,1528585243,1528585244,1528585245,1528585246,1528585247,1528585248,1528585249,1528585250,1528585251,1528585252,1528585253,1528585254,1528585255,1528585256,1528585257,1528585258,1528585259,1528585260,1528585261,1528585262,1528585263,1528585264,1528585265,1528585266,1528585267,1528585268,1528585280,1528585281,1528585282,1528585283,1528585284,1528585285,1528585286,1528585287,1528585288,1528585289,1528585290,1528585291,1528585292,1528585293,1528585294,1528585295,1528585296,1528585297,1528585298,1528585299,1528585300,1528585301,1528585302,1528585303,1528585304,1528585305,1528585306,1528585307,1528585308,1528585309,1528585310,1528585311,1528585312,1528585313,1366772573,1366772572,1366772571,1366772321,1360813335,1360813336,1360813337,1360813338,1528585499,1528585500,1528585501,1528585502,1528585503,1528585504,1528585505,1528585506,1528585507,1528585508,1528585509,1528585510,1528585511,1528585512,1528585513,1528585514,1528585515,1528585516,1528585517,1528585518,1528585519,1528585520,1528585521,1528585522,1528585523,1528585524,1528585536,1528585537,1528585538,1528585539,1528585540,1528585541,1528585542,1528585543,1528585544,1528585545,1528585546,1528585547,1528585548,1528585549,1528585550,1528585551,1528585552,1528585553,1528585554,1528585555,1528585556,1528585557,1528585558,1528585559,1528585560,1528585561,1528585562,1528585563,1528585564,1528585565,1528585566,1528585567,1528585568,1528585569,1366772320,1366772319,1366772318,1366772317,1360813591,1360813592,1360813593,1360813594,1528585755,1528585756,1528585757,1528585758,1528585759,1528585760,1528585761,1528585762,1528585763,1528585764,1528585765,1528585766,1528585767,1528585768,1528585769,1528585770,1528585771,1528585772,1528585773,1528585774,1528585775,1528585776,1528585777,1528585778,1528585779,1528585780,1528585792,1528585793,1528585794,1528585795,1528585796,1528585797,1528585798,1528585799,1528585800,1528585801,1528585802,1528585803,1528585804,1528585805,1528585806,1528585807,1528585808,1528585809,1528585810,1528585811,1528585812,1528585813,1528585814,1528585815,1528585816,1528585817,1528585818,1528585819,1528585820,1528585821,1528585822,1528585823,1528585824,1528585825,1366772316,1366772315,1366772065,1366772064,1360813847,1360813848,1360813849,1360813850,1528586011,1528586012,1528586013,1528586014,1528586015,1528586016,1528586017,1528586018,1528586019,1528586020,1528586021,1528586022,1528586023,1528586024,1528586025,1528586026,1528586027,1528586028,1528586029,1528586030,1528586031,1528586032,1528586033,1528586034,1528586035,1528586036,1528586048,1528586049,1528586050,1528586051,1528586052,1528586053,1528586054,1528586055,1528586056,1528586057,1528586058,1528586059,1528586060,1528586061,1528586062,1528586063,1528586064,1528586065,1528586066,1528586067,1528586068,1528586069,1528586070,1528586071,1528586072,1528586073,1528586074,1528586075,1528586076,1528586077,1528586078,1528586079,1528586080,1528586081,1366772063,1366772062,1366772061,1366772060,1360814103,1360814104,1360814105,1360814106,1528586267,1528586268,1528586269,1528586270,1528586271,1528586272,1528586273,1528586274,1528586275,1528586276,1528586277,1528586278,1528586279,1528586280,1528586281,1528586282,1528586283,1528586284,1528586285,1528586286,1528586287,1528586288,1528586289,1528586290,1528586291,1528586292,1528586304,1528586305,1528586306,1528586307,1528586308,1528586309,1528586310,1528586311,1528586312,1528586313,1528586314,1528586315,1528586316,1528586317,1528586318,1528586319,1528586320,1528586321,1528586322,1528586323,1528586324,1528586325,1528586326,1528586327,1528586328,1528586329,1528586330,1528586331,1528586332,1528586333,1528586334,1528586335,1528586336,1528586337,1366772059,1366771809,1366771808,1366771807,1360814359,1360814360,1360814361,1360814362,1528586523,1528586524,1528586525,1528586526,1528586527,1528586528,1528586529,1528586530,1528586531,1528586532,1528586533,1528586534,1528586535,1528586536,1528586537,1528586538,1528586539,1528586540,1528586541,1528586542,1528586543,1528586544,1528586545,1528586546,1528586547,1528586548,1528586560,1528586561,1528586562,1528586563,1528586564,1528586565,1528586566,1528586567,1528586568,1528586569,1528586570,1528586571,1528586572,1528586573,1528586574,1528586575,1528586576,1528586577,1528586578,1528586579,1528586580,1528586581,1528586582,1528586583,1528586584,1528586585,1528586586,1528586587,1528586588,1528586589,1528586590,1528586591,1528586592,1528586593,1360859995,1360859996,1360859997,1360859998,1360859999,1360860000,1360860001,1360860251,1360860252,1360860253,1360860254,1360860255,1360860256,1360860257,1360860507,1360860508,1360860509,1360860510,1360860511,1360860512,1360860513,1360860763,1360860764,1360860765,1360860766,1360860767,1360860768,1360860769,1360861019,1360861020,1360861021,1360861022,1360861023,1360861024,1360861025,1360861275,1360861276,1360861277,1360861278,1360861279,1360861280,1360861281,1360861531,1360861532,1360861533,1360861534,1360861535,1360861536,1360861537,1360861787,1360861788,1360861789,1360861790,1360861791,1360861792,1360861793,1528634203,1528634204,1528634205,1528634206,1528634207,1528634208,1528634209,1528634459,1528634460,1528634461,1528634462,1528634463,1528634464,1528634465,1528634716,1528634717,1528634718,1528634719,1528634720,1528634721,1528634972,1528634973,1528634974,1528634975,1528634976,1528634977,1528635228,1528635229,1528635230,1528635231,1528635232,1528635233,1528635484,1528635485,1528635486,1528635487,1528635488,1528635489,1528635740,1528635741,1528635742,1528635743,1528635744,1528635745,1528635995,1528635996,1528635997,1528635998,1528635999,1528636000,1528636001,1528636251,1528636252,1528636253,1528636254,1528636255,1528636256,1528636257,1528636507,1528636508,1528636509,1528636510,1528636511,1528636512,1528636513,1528636763,1528636764,1528636765,1528636766,1528636767,1528636768,1528636769,1528637019,1528637020,1528637021,1528637022,1528637023,1528637024,1528637025,1528637275,1528637276,1528637277,1528637278,1528637279,1528637280,1528637281,1528637531,1528637532,1528637533,1528637534,1528637535,1528637536,1528637537,1528637787,1528637788,1528637789,1528637790,1528637791,1528637792,1528637793,1528638043,1528638044,1528638045,1528638046,1528638047,1528638048,1528638049,1528638299,1528638300,1528638301,1528638302,1528638303,1528638304,1528638305,1528638555,1528638556,1528638557,1528638558,1528638559,1528638560,1528638561,1528638811,1528638812,1528638813,1528638814,1528638815,1528638816,1528638817,1528639066,1528639067,1528639068,1528639069,1528639070,1528639071,1528639072,1528639073,1528639322,1528639323,1528639324,1528639325,1528639326,1528639327,1528639328,1528639329,1528639578,1528639579,1528639580,1528639581,1528639582,1528639583,1528639584,1528639585,1528639834,1528639835,1528639836,1528639837,1528639838,1528639839,1528639840,1528639841,1528640090,1528640091,1528640092,1528640093,1528640094,1528640095,1528640096,1528640097,1528640346,1528640347,1528640348,1528640349,1528640350,1528640351,1528640352,1528640353,1528640602,1528640603,1528640604,1528640605,1528640606,1528640607,1528640608,1528640609,1528640859,1528640860,1528640861,1528640862,1528640863,1528640864,1528640865,1528641115,1528641116,1528641117,1528641118,1528641119,1528641120,1528641121,1528641371,1528641372,1528641373,1528641374,1528641375,1528641376,1528641377,1528641627,1528641628,1528641629,1528641630,1528641631,1528641632,1528641633,1528641865,1528641866,1528641867,1528641868,1528641869,1528641870,1528641871,1528641883,1528641884,1528641885,1528641886,1528641887,1528641888,1528641889,1528642121,1528642122,1528642123,1528642124,1528642125,1528642126,1528642127,1528642139,1528642140,1528642141,1528642142,1528642143,1528642144,1528642145,1528642377,1528642378,1528642379,1528642380,1528642381,1528642382,1528642383,1528642395,1528642396,1528642397,1528642398,1528642399,1528642400,1528642401,1528642633,1528642634,1528642635,1528642636,1528642637,1528642638,1528642639,1528642651,1528642652,1528642653,1528642654,1528642655,1528642656,1528642657,1528642889,1528642890,1528642891,1528642892,1528642893,1528642894,1528642895,1528642907,1528642908,1528642909,1528642910,1528642911,1528642912,1528642913,1528643145,1528643146,1528643147,1528643148,1528643149,1528643150,1528643151,1528643163,1528643164,1528643165,1528643166,1528643167,1528643168,1528643169,1528643401,1528643402,1528643403,1528643404,1528643405,1528643406,1528643407,1528643408,1528643418,1528643419,1528643420,1528643421,1528643422,1528643423,1528643424,1528643425,1528643657,1528643658,1528643659,1528643660,1528643661,1528643662,1528643663,1528643664,1528643665,1528643666,1528643667,1528643668,1528643669,1528643670,1528643671,1528643672,1528643673,1528643674,1528643675,1528643676,1528643677,1528643678,1528643679,1528643680,1528643681,1528643913,1528643914,1528643915,1528643916,1528643917,1528643918,1528643919,1528643920,1528643921,1528643922,1528643923,1528643924,1528643925,1528643926,1528643927,1528643928,1528643929,1528643930,1528643931,1528643932,1528643933,1528643934,1528643935,1528643936,1528643937,1528644169,1528644170,1528644171,1528644172,1528644173,1528644174,1528644175,1528644176,1528644177,1528644178,1528644179,1528644180,1528644181,1528644182,1528644183,1528644184,1528644185,1528644186,1528644187,1528644188,1528644189,1528644190,1528644191,1528644192,1528644193,1528644425,1528644426,1528644427,1528644428,1528644429,1528644430,1528644431,1528644432,1528644433,1528644434,1528644435,1528644436,1528644437,1528644438,1528644439,1528644440,1528644441,1528644442,1528644443,1528644444,1528644445,1528644446,1528644447,1528644448,1528644449,1528644681,1528644682,1528644683,1528644684,1528644685,1528644686,1528644687,1528644688,1528644689,1528644690,1528644691,1528644692,1528644693,1528644694,1528644695,1528644696,1528644697,1528644698,1528644699,1528644700,1528644701,1528644702,1528644703,1528644704,1528644705,1528644937,1528644938,1528644939,1528644940,1528644941,1528644942,1528644943,1528644944,1528644945,1528644946,1528644947,1528644948,1528644949,1528644950,1528644951,1528644952,1528644953,1528644954,1528644955,1528644956,1528644957,1528644958,1528644959,1528644960,1528644961,1528645193,1528645194,1528645195,1528645196,1528645197,1528645198,1528645199,1528645200,1528645201,1528645202,1528645203,1528645204,1528645205,1528645206,1528645207,1528645208,1528645209,1528645210,1528645211,1528645212,1528645213,1528645214,1528645215,1528645216,1528645217,1528645449,1528645450,1528645451,1528645452,1528645453,1528645454,1528645455,1528645456,1528645457,1528645458,1528645459,1528645460,1528645461,1528645462,1528645463,1528645464,1528645465,1528645466,1528645467,1528645468,1528645469,1528645470,1528645471,1528645472,1528645473,1528645705,1528645706,1528645707,1528645708,1528645709,1528645710,1528645711,1528645712,1528645713,1528645714,1528645715,1528645716,1528645717,1528645718,1528645719,1528645720,1528645721,1528645722,1528645723,1528645724,1528645725,1528645726,1528645727,1528645728,1528645729,1528645962,1528645963,1528645964,1528645965,1528645966,1528645967,1528645968,1528645969,1528645970,1528645971,1528645972,1528645973,1528645974,1528645975,1528645976,1528645977,1528645978,1528645979,1528645980,1528645981,1528645982,1528645983,1528645984,1528645985,1528646218,1528646219,1528646220,1528646221,1528646222,1528646223,1528646224,1528646225,1528646226,1528646227,1528646228,1528646229,1528646230,1528646231,1528646232,1528646233,1528646234,1528646235,1528646236,1528646237,1528646238,1528646239,1528646240,1528646241,1528646474,1528646475,1528646476,1528646477,1528646478,1528646479,1528646480,1528646481,1528646482,1528646483,1528646484,1528646485,1528646486,1528646487,1528646488,1528646489,1528646490,1528646491,1528646492,1528646493,1528646494,1528646495,1528646496,1528646497,1528646730,1528646731,1528646732,1528646733,1528646734,1528646735,1528646736,1528646737,1528646738,1528646739,1528646740,1528646741,1528646742,1528646743,1528646744,1528646745,1528646746,1528646747,1528646748,1528646749,1528646750,1528646751,1528646752,1528646753,1528646986,1528646987,1528646988,1528646989,1528646990,1528646991,1528646992,1528646993,1528646994,1528646995,1528646996,1528646997,1528646998,1528646999,1528647000,1528647001,1528647002,1528647003,1528647004,1528647005,1528647006,1528647007,1528647008,1528647009,1528647242,1528647243,1528647244,1528647245,1528647246,1528647247,1528647248,1528647249,1528647250,1528647251,1528647252,1528647253,1528647254,1528647255,1528647256,1528647257,1528647258,1528647259,1528647260,1528647261,1528647262,1528647263,1528647264,1528647265,1528647498,1528647499,1528647500,1528647501,1528647502,1528647503,1528647504,1528647505,1528647506,1528647507,1528647508,1528647509,1528647510,1528647511,1528647512,1528647513,1528647514,1528647515,1528647516,1528647517,1528647518,1528647519,1528647520,1528647521,1528647753,1528647754,1528647755,1528647756,1528647757,1528647758,1528647759,1528647760,1528647761,1528647762,1528647763,1528647764,1528647765,1528647766,1528647767,1528647768,1528647769,1528647770,1528647771,1528647772,1528647773,1528647774,1528647775,1528647776,1528647777,1528648008,1528648009,1528648010,1528648011,1528648012,1528648013,1528648014,1528648015,1528648016,1528648017,1528648018,1528648019,1528648020,1528648021,1528648022,1528648023,1528648024,1528648025,1528648026,1528648027,1528648028,1528648029,1528648030,1528648031,1528648032,1528648033,1528648220,1528648226,1528648227,1528648228,1528648229,1528648235,1528648236,1528648237,1528648238,1528648244,1528648245,1528648246,1528648247,1528648248,1528648249,1528648250,1528648251,1528648252,1528648253,1528648254,1528648255,1528648256,1528648257,1528648258,1528648259,1528648260,1528648261,1528648262,1528648263,1528648264,1528648265,1528648266,1528648267,1528648268,1528648269,1528648270,1528648271,1528648272,1528648273,1528648274,1528648275,1528648276,1528648277,1528648278,1528648279,1528648280,1528648281,1528648282,1528648283,1528648284,1528648285,1528648286,1528648287,1528648288,1528648289,1528648476,1528648482,1528648483,1528648484,1528648485,1528648491,1528648492,1528648493,1528648494,1528648500,1528648501,1528648502,1528648503,1528648504,1528648505,1528648506,1528648507,1528648508,1528648509,1528648510,1528648511,1528648512,1528648513,1528648514,1528648515,1528648516,1528648517,1528648518,1528648519,1528648520,1528648521,1528648522,1528648523,1528648524,1528648525,1528648526,1528648527,1528648528,1528648529,1528648530,1528648531,1528648532,1528648533,1528648534,1528648535,1528648536,1528648537,1528648538,1528648539,1528648540,1528648541,1528648542,1528648543,1528648544,1528648545,1528648732,1528648738,1528648739,1528648740,1528648741,1528648747,1528648748,1528648749,1528648750,1528648756,1528648757,1528648758,1528648759,1528648760,1528648761,1528648762,1528648763,1528648764,1528648765,1528648766,1528648767,1528648768,1528648769,1528648770,1528648771,1528648772,1528648773,1528648774,1528648775,1528648776,1528648777,1528648778,1528648779,1528648780,1528648781,1528648782,1528648783,1528648784,1528648785,1528648786,1528648787,1528648788,1528648789,1528648790,1528648791,1528648792,1528648793,1528648794,1528648795,1528648796,1528648797,1528648798,1528648799,1528648800,1528648801,1528648988,1528648989,1528648993,1528648994,1528648995,1528648996,1528648997,1528648998,1528649002,1528649003,1528649004,1528649005,1528649006,1528649007,1528649011,1528649012,1528649013,1528649014,1528649015,1528649016,1528649017,1528649018,1528649019,1528649020,1528649021,1528649022,1528649023,1528649024,1528649025,1528649026,1528649027,1528649028,1528649029,1528649030,1528649031,1528649032,1528649033,1528649034,1528649035,1528649036,1528649037,1528649038,1528649039,1528649040,1528649041,1528649042,1528649043,1528649044,1528649045,1528649046,1528649047,1528649048,1528649049,1528649050,1528649051,1528649052,1528649053,1528649054,1528649055,1528649056,1528649057,1528649244,1528649245,1528649246,1528649247,1528649248,1528649249,1528649250,1528649251,1528649252,1528649253,1528649254,1528649255,1528649256,1528649257,1528649258,1528649259,1528649260,1528649261,1528649262,1528649263,1528649264,1528649265,1528649266,1528649267,1528649268,1528649269,1528649270,1528649271,1528649272,1528649273,1528649274,1528649275,1528649276,1528649277,1528649278,1528649279,1528649280,1528649281,1528649282,1528649283,1528649284,1528649285,1528649286,1528649287,1528649288,1528649289,1528649290,1528649291,1528649292,1528649293,1528649294,1528649295,1528649296,1528649297,1528649298,1528649299,1528649300,1528649301,1528649302,1528649303,1528649304,1528649305,1528649306,1528649307,1528649308,1528649309,1528649310,1528649311,1528649312,1528649313,1528649500,1528649501,1528649502,1528649503,1528649504,1528649505,1528649506,1528649507,1528649508,1528649509,1528649510,1528649511,1528649512,1528649513,1528649514,1528649515,1528649516,1528649517,1528649518,1528649519,1528649520,1528649521,1528649522,1528649523,1528649524,1528649525,1528649526,1528649527,1528649528,1528649529,1528649530,1528649531,1528649532,1528649533,1528649534,1528649535,1528649536,1528649537,1528649538,1528649539,1528649540,1528649541,1528649542,1528649543,1528649544,1528649545,1528649546,1528649547,1528649548,1528649549,1528649550,1528649551,1528649552,1528649553,1528649554,1528649555,1528649556,1528649557,1528649558,1528649559,1528649560,1528649561,1528649562,1528649563,1528649564,1528649565,1528649566,1528649567,1528649568,1528649569,1528649756,1528649757,1528649758,1528649759,1528649760,1528649761,1528649762,1528649763,1528649764,1528649765,1528649766,1528649767,1528649768,1528649769,1528649770,1528649771,1528649772,1528649773,1528649774,1528649775,1528649776,1528649777,1528649778,1528649779,1528649780,1528649781,1528649782,1528649783,1528649784,1528649785,1528649786,1528649787,1528649788,1528649789,1528649790,1528649791,1528649792,1528649793,1528649794,1528649795,1528649796,1528649797,1528649798,1528649799,1528649800,1528649801,1528649802,1528649803,1528649804,1528649805,1528649806,1528649807,1528649808,1528649809,1528649810,1528649811,1528649812,1528649813,1528649814,1528649815,1528649816,1528649817,1528649818,1528649819,1528649820,1528649821,1528649822,1528649823,1528649824,1528649825,1528650012,1528650013,1528650014,1528650015,1528650016,1528650017,1528650018,1528650019,1528650020,1528650021,1528650022,1528650023,1528650024,1528650025,1528650026,1528650027,1528650028,1528650029,1528650030,1528650031,1528650032,1528650033,1528650034,1528650035,1528650036,1528650037,1528650047,1528650048,1528650049,1528650050,1528650051,1528650052,1528650053,1528650054,1528650055,1528650056,1528650057,1528650058,1528650059,1528650060,1528650061,1528650062,1528650063,1528650064,1528650065,1528650066,1528650067,1528650068,1528650069,1528650070,1528650071,1528650072,1528650073,1528650074,1528650075,1528650076,1528650077,1528650078,1528650079,1528650080,1528650081,1528650267,1528650268,1528650269,1528650270,1528650271,1528650272,1528650273,1528650274,1528650275,1528650276,1528650277,1528650278,1528650279,1528650280,1528650281,1528650282,1528650283,1528650284,1528650285,1528650286,1528650287,1528650288,1528650289,1528650290,1528650291,1528650292,1528650304,1528650305,1528650306,1528650307,1528650308,1528650309,1528650310,1528650311,1528650312,1528650313,1528650314,1528650315,1528650316,1528650317,1528650318,1528650319,1528650320,1528650321,1528650322,1528650323,1528650324,1528650325,1528650326,1528650327,1528650328,1528650329,1528650330,1528650331,1528650332,1528650333,1528650334,1528650335,1528650336,1528650337,1366771806,1366771805,1366771804,1366771803,1360878359,1360878360,1360878361,1360878362,1528650523,1528650524,1528650525,1528650526,1528650527,1528650528,1528650529,1528650530,1528650531,1528650532,1528650533,1528650534,1528650535,1528650536,1528650537,1528650538,1528650539,1528650540,1528650541,1528650542,1528650543,1528650544,1528650545,1528650546,1528650547,1528650548,1528650560,1528650561,1528650562,1528650563,1528650564,1528650565,1528650566,1528650567,1528650568,1528650569,1528650570,1528650571,1528650572,1528650573,1528650574,1528650575,1528650576,1528650577,1528650578,1528650579,1528650580,1528650581,1528650582,1528650583,1528650584,1528650585,1528650586,1528650587,1528650588,1528650589,1528650590,1528650591,1528650592,1528650593,1366771553,1366771552,1366771551,1366771550,1360878615,1360878616,1360878617,1360878618,1528650779,1528650780,1528650781,1528650782,1528650783,1528650784,1528650785,1528650786,1528650787,1528650788,1528650789,1528650790,1528650791,1528650792,1528650793,1528650794,1528650795,1528650796,1528650797,1528650798,1528650799,1528650800,1528650801,1528650802,1528650803,1528650804,1528650816,1528650817,1528650818,1528650819,1528650820,1528650821,1528650822,1528650823,1528650824,1528650825,1528650826,1528650827,1528650828,1528650829,1528650830,1528650831,1528650832,1528650833,1528650834,1528650835,1528650836,1528650837,1528650838,1528650839,1528650840,1528650841,1528650842,1528650843,1528650844,1528650845,1528650846,1528650847,1528650848,1528650849,1366771549,1366771548,1366771547,1366771297,1360878871,1360878872,1360878873,1360878874,1528651035,1528651036,1528651037,1528651038,1528651039,1528651040,1528651041,1528651042,1528651043,1528651044,1528651045,1528651046,1528651047,1528651048,1528651049,1528651050,1528651051,1528651052,1528651053,1528651054,1528651055,1528651056,1528651057,1528651058,1528651059,1528651060,1528651072,1528651073,1528651074,1528651075,1528651076,1528651077,1528651078,1528651079,1528651080,1528651081,1528651082,1528651083,1528651084,1528651085,1528651086,1528651087,1528651088,1528651089,1528651090,1528651091,1528651092,1528651093,1528651094,1528651095,1528651096,1528651097,1528651098,1528651099,1528651100,1528651101,1528651102,1528651103,1528651104,1528651105,1366771296,1366771295,1366771294,1366771293,1360879127,1360879128,1360879129,1360879130,1528651291,1528651292,1528651293,1528651294,1528651295,1528651296,1528651297,1528651298,1528651299,1528651300,1528651301,1528651302,1528651303,1528651304,1528651305,1528651306,1528651307,1528651308,1528651309,1528651310,1528651311,1528651312,1528651313,1528651314,1528651315,1528651316,1528651328,1528651329,1528651330,1528651331,1528651332,1528651333,1528651334,1528651335,1528651336,1528651337,1528651338,1528651339,1528651340,1528651341,1528651342,1528651343,1528651344,1528651345,1528651346,1528651347,1528651348,1528651349,1528651350,1528651351,1528651352,1528651353,1528651354,1528651355,1528651356,1528651357,1528651358,1528651359,1528651360,1528651361,1366771292,1366771291,1366771041,1366771040,1360879383,1360879384,1360879385,1360879386,1528651547,1528651548,1528651549,1528651550,1528651551,1528651552,1528651553,1528651554,1528651555,1528651556,1528651557,1528651558,1528651559,1528651560,1528651561,1528651562,1528651563,1528651564,1528651565,1528651566,1528651567,1528651568,1528651569,1528651570,1528651571,1528651572,1528651584,1528651585,1528651586,1528651587,1528651588,1528651589,1528651590,1528651591,1528651592,1528651593,1528651594,1528651595,1528651596,1528651597,1528651598,1528651599,1528651600,1528651601,1528651602,1528651603,1528651604,1528651605,1528651606,1528651607,1528651608,1528651609,1528651610,1528651611,1528651612,1528651613,1528651614,1528651615,1528651616,1528651617,1366771039,1366771038,1366771037,1366771036,1360879639,1360879640,1360879641,1360879642,1528651803,1528651804,1528651805,1528651806,1528651807,1528651808,1528651809,1528651810,1528651811,1528651812,1528651813,1528651814,1528651815,1528651816,1528651817,1528651818,1528651819,1528651820,1528651821,1528651822,1528651823,1528651824,1528651825,1528651826,1528651827,1528651828,1528651840,1528651841,1528651842,1528651843,1528651844,1528651845,1528651846,1528651847,1528651848,1528651849,1528651850,1528651851,1528651852,1528651853,1528651854,1528651855,1528651856,1528651857,1528651858,1528651859,1528651860,1528651861,1528651862,1528651863,1528651864,1528651865,1528651866,1528651867,1528651868,1528651869,1528651870,1528651871,1528651872,1528651873,1366771035,1366770785,1366770784,1366770783,1360879895,1360879896,1360879897,1360879898,1528652059,1528652060,1528652061,1528652062,1528652063,1528652064,1528652065,1528652066,1528652067,1528652068,1528652069,1528652070,1528652071,1528652072,1528652073,1528652074,1528652075,1528652076,1528652077,1528652078,1528652079,1528652080,1528652081,1528652082,1528652083,1528652084,1528652096,1528652097,1528652098,1528652099,1528652100,1528652101,1528652102,1528652103,1528652104,1528652105,1528652106,1528652107,1528652108,1528652109,1528652110,1528652111,1528652112,1528652113,1528652114,1528652115,1528652116,1528652117,1528652118,1528652119,1528652120,1528652121,1528652122,1528652123,1528652124,1528652125,1528652126,1528652127,1528652128,1528652129,1360925531,1360925532,1360925533,1360925534,1360925535,1360925536,1360925537,1360925787,1360925788,1360925789,1360925790,1360925791,1360925792,1360925793,1360926043,1360926044,1360926045,1360926046,1360926047,1360926048,1360926049,1360926299,1360926300,1360926301,1360926302,1360926303,1360926304,1360926305,1360926555,1360926556,1360926557,1360926558,1360926559,1360926560,1360926561,1360926811,1360926812,1360926813,1360926814,1360926815,1360926816,1360926817,1360927067,1360927068,1360927069,1360927070,1360927071,1360927072,1360927073,1360927323,1360927324,1360927325,1360927326,1360927327,1360927328,1360927329,1528699739,1528699740,1528699741,1528699742,1528699743,1528699744,1528699745,1528699995,1528699996,1528699997,1528699998,1528699999,1528700000,1528700001,1528700251,1528700252,1528700253,1528700254,1528700255,1528700256,1528700257,1528700507,1528700508,1528700509,1528700510,1528700511,1528700512,1528700513,1528700763,1528700764,1528700765,1528700766,1528700767,1528700768,1528700769,1528701019,1528701020,1528701021,1528701022,1528701023,1528701024,1528701025,1528701275,1528701276,1528701277,1528701278,1528701279,1528701280,1528701281,1528701531,1528701532,1528701533,1528701534,1528701535,1528701536,1528701537,1528701787,1528701788,1528701789,1528701790,1528701791,1528701792,1528701793,1528702043,1528702044,1528702045,1528702046,1528702047,1528702048,1528702049,1528702299,1528702300,1528702301,1528702302,1528702303,1528702304,1528702305,1528702555,1528702556,1528702557,1528702558,1528702559,1528702560,1528702561,1528702811,1528702812,1528702813,1528702814,1528702815,1528702816,1528702817,1528703067,1528703068,1528703069,1528703070,1528703071,1528703072,1528703073,1528703323,1528703324,1528703325,1528703326,1528703327,1528703328,1528703329,1528703579,1528703580,1528703581,1528703582,1528703583,1528703584,1528703585,1528703835,1528703836,1528703837,1528703838,1528703839,1528703840,1528703841,1528704091,1528704092,1528704093,1528704094,1528704095,1528704096,1528704097,1528704347,1528704348,1528704349,1528704350,1528704351,1528704352,1528704353,1528704602,1528704603,1528704604,1528704605,1528704606,1528704607,1528704608,1528704609,1528704858,1528704859,1528704860,1528704861,1528704862,1528704863,1528704864,1528704865,1528705114,1528705115,1528705116,1528705117,1528705118,1528705119,1528705120,1528705121,1528705370,1528705371,1528705372,1528705373,1528705374,1528705375,1528705376,1528705377,1528705626,1528705627,1528705628,1528705629,1528705630,1528705631,1528705632,1528705633,1528705882,1528705883,1528705884,1528705885,1528705886,1528705887,1528705888,1528705889,1528706138,1528706139,1528706140,1528706141,1528706142,1528706143,1528706144,1528706145,1528706395,1528706396,1528706397,1528706398,1528706399,1528706400,1528706401,1528706651,1528706652,1528706653,1528706654,1528706655,1528706656,1528706657,1528706907,1528706908,1528706909,1528706910,1528706911,1528706912,1528706913,1528707163,1528707164,1528707165,1528707166,1528707167,1528707168,1528707169,1528707419,1528707420,1528707421,1528707422,1528707423,1528707424,1528707425,1528707657,1528707658,1528707659,1528707660,1528707661,1528707662,1528707663,1528707675,1528707676,1528707677,1528707678,1528707679,1528707680,1528707681,1528707913,1528707914,1528707915,1528707916,1528707917,1528707918,1528707919,1528707931,1528707932,1528707933,1528707934,1528707935,1528707936,1528707937,1528708169,1528708170,1528708171,1528708172,1528708173,1528708174,1528708175,1528708187,1528708188,1528708189,1528708190,1528708191,1528708192,1528708193,1528708425,1528708426,1528708427,1528708428,1528708429,1528708430,1528708431,1528708443,1528708444,1528708445,1528708446,1528708447,1528708448,1528708449,1528708681,1528708682,1528708683,1528708684,1528708685,1528708686,1528708687,1528708699,1528708700,1528708701,1528708702,1528708703,1528708704,1528708705,1528708937,1528708938,1528708939,1528708940,1528708941,1528708942,1528708943,1528708944,1528708954,1528708955,1528708956,1528708957,1528708958,1528708959,1528708960,1528708961,1528709193,1528709194,1528709195,1528709196,1528709197,1528709198,1528709199,1528709200,1528709201,1528709202,1528709203,1528709204,1528709205,1528709206,1528709207,1528709208,1528709209,1528709210,1528709211,1528709212,1528709213,1528709214,1528709215,1528709216,1528709217,1528709449,1528709450,1528709451,1528709452,1528709453,1528709454,1528709455,1528709456,1528709457,1528709458,1528709459,1528709460,1528709461,1528709462,1528709463,1528709464,1528709465,1528709466,1528709467,1528709468,1528709469,1528709470,1528709471,1528709472,1528709473,1528709705,1528709706,1528709707,1528709708,1528709709,1528709710,1528709711,1528709712,1528709713,1528709714,1528709715,1528709716,1528709717,1528709718,1528709719,1528709720,1528709721,1528709722,1528709723,1528709724,1528709725,1528709726,1528709727,1528709728,1528709729,1528709961,1528709962,1528709963,1528709964,1528709965,1528709966,1528709967,1528709968,1528709969,1528709970,1528709971,1528709972,1528709973,1528709974,1528709975,1528709976,1528709977,1528709978,1528709979,1528709980,1528709981,1528709982,1528709983,1528709984,1528709985,1528710217,1528710218,1528710219,1528710220,1528710221,1528710222,1528710223,1528710224,1528710225,1528710226,1528710227,1528710228,1528710229,1528710230,1528710231,1528710232,1528710233,1528710234,1528710235,1528710236,1528710237,1528710238,1528710239,1528710240,1528710241,1528710473,1528710474,1528710475,1528710476,1528710477,1528710478,1528710479,1528710480,1528710481,1528710482,1528710483,1528710484,1528710485,1528710486,1528710487,1528710488,1528710489,1528710490,1528710491,1528710492,1528710493,1528710494,1528710495,1528710496,1528710497,1528710729,1528710730,1528710731,1528710732,1528710733,1528710734,1528710735,1528710736,1528710737,1528710738,1528710739,1528710740,1528710741,1528710742,1528710743,1528710744,1528710745,1528710746,1528710747,1528710748,1528710749,1528710750,1528710751,1528710752,1528710753,1528710985,1528710986,1528710987,1528710988,1528710989,1528710990,1528710991,1528710992,1528710993,1528710994,1528710995,1528710996,1528710997,1528710998,1528710999,1528711000,1528711001,1528711002,1528711003,1528711004,1528711005,1528711006,1528711007,1528711008,1528711009,1528711241,1528711242,1528711243,1528711244,1528711245,1528711246,1528711247,1528711248,1528711249,1528711250,1528711251,1528711252,1528711253,1528711254,1528711255,1528711256,1528711257,1528711258,1528711259,1528711260,1528711261,1528711262,1528711263,1528711264,1528711265,1528711498,1528711499,1528711500,1528711501,1528711502,1528711503,1528711504,1528711505,1528711506,1528711507,1528711508,1528711509,1528711510,1528711511,1528711512,1528711513,1528711514,1528711515,1528711516,1528711517,1528711518,1528711519,1528711520,1528711521,1528711754,1528711755,1528711756,1528711757,1528711758,1528711759,1528711760,1528711761,1528711762,1528711763,1528711764,1528711765,1528711766,1528711767,1528711768,1528711769,1528711770,1528711771,1528711772,1528711773,1528711774,1528711775,1528711776,1528711777,1528712010,1528712011,1528712012,1528712013,1528712014,1528712015,1528712016,1528712017,1528712018,1528712019,1528712020,1528712021,1528712022,1528712023,1528712024,1528712025,1528712026,1528712027,1528712028,1528712029,1528712030,1528712031,1528712032,1528712033,1528712266,1528712267,1528712268,1528712269,1528712270,1528712271,1528712272,1528712273,1528712274,1528712275,1528712276,1528712277,1528712278,1528712279,1528712280,1528712281,1528712282,1528712283,1528712284,1528712285,1528712286,1528712287,1528712288,1528712289,1528712522,1528712523,1528712524,1528712525,1528712526,1528712527,1528712528,1528712529,1528712530,1528712531,1528712532,1528712533,1528712534,1528712535,1528712536,1528712537,1528712538,1528712539,1528712540,1528712541,1528712542,1528712543,1528712544,1528712545,1528712778,1528712779,1528712780,1528712781,1528712782,1528712783,1528712784,1528712785,1528712786,1528712787,1528712788,1528712789,1528712790,1528712791,1528712792,1528712793,1528712794,1528712795,1528712796,1528712797,1528712798,1528712799,1528712800,1528712801,1528713034,1528713035,1528713036,1528713037,1528713038,1528713039,1528713040,1528713041,1528713042,1528713043,1528713044,1528713045,1528713046,1528713047,1528713048,1528713049,1528713050,1528713051,1528713052,1528713053,1528713054,1528713055,1528713056,1528713057,1528713289,1528713290,1528713291,1528713292,1528713293,1528713294,1528713295,1528713296,1528713297,1528713298,1528713299,1528713300,1528713301,1528713302,1528713303,1528713304,1528713305,1528713306,1528713307,1528713308,1528713309,1528713310,1528713311,1528713312,1528713313,1528713544,1528713545,1528713546,1528713547,1528713548,1528713549,1528713550,1528713551,1528713552,1528713553,1528713554,1528713555,1528713556,1528713557,1528713558,1528713559,1528713560,1528713561,1528713562,1528713563,1528713564,1528713565,1528713566,1528713567,1528713568,1528713569,1528713756,1528713762,1528713763,1528713764,1528713765,1528713771,1528713772,1528713773,1528713774,1528713780,1528713781,1528713782,1528713783,1528713784,1528713785,1528713786,1528713787,1528713788,1528713789,1528713790,1528713791,1528713792,1528713793,1528713794,1528713795,1528713796,1528713797,1528713798,1528713799,1528713800,1528713801,1528713802,1528713803,1528713804,1528713805,1528713806,1528713807,1528713808,1528713809,1528713810,1528713811,1528713812,1528713813,1528713814,1528713815,1528713816,1528713817,1528713818,1528713819,1528713820,1528713821,1528713822,1528713823,1528713824,1528713825,1528714012,1528714018,1528714019,1528714020,1528714021,1528714027,1528714028,1528714029,1528714030,1528714036,1528714037,1528714038,1528714039,1528714040,1528714041,1528714042,1528714043,1528714044,1528714045,1528714046,1528714047,1528714048,1528714049,1528714050,1528714051,1528714052,1528714053,1528714054,1528714055,1528714056,1528714057,1528714058,1528714059,1528714060,1528714061,1528714062,1528714063,1528714064,1528714065,1528714066,1528714067,1528714068,1528714069,1528714070,1528714071,1528714072,1528714073,1528714074,1528714075,1528714076,1528714077,1528714078,1528714079,1528714080,1528714081,1528714268,1528714274,1528714275,1528714276,1528714277,1528714283,1528714284,1528714285,1528714286,1528714292,1528714293,1528714294,1528714295,1528714296,1528714297,1528714298,1528714299,1528714300,1528714301,1528714302,1528714303,1528714304,1528714305,1528714306,1528714307,1528714308,1528714309,1528714310,1528714311,1528714312,1528714313,1528714314,1528714315,1528714316,1528714317,1528714318,1528714319,1528714320,1528714321,1528714322,1528714323,1528714324,1528714325,1528714326,1528714327,1528714328,1528714329,1528714330,1528714331,1528714332,1528714333,1528714334,1528714335,1528714336,1528714337,1528714524,1528714525,1528714529,1528714530,1528714531,1528714532,1528714533,1528714534,1528714538,1528714539,1528714540,1528714541,1528714542,1528714543,1528714547,1528714548,1528714549,1528714550,1528714551,1528714552,1528714553,1528714554,1528714555,1528714556,1528714557,1528714558,1528714559,1528714560,1528714561,1528714562,1528714563,1528714564,1528714565,1528714566,1528714567,1528714568,1528714569,1528714570,1528714571,1528714572,1528714573,1528714574,1528714575,1528714576,1528714577,1528714578,1528714579,1528714580,1528714581,1528714582,1528714583,1528714584,1528714585,1528714586,1528714587,1528714588,1528714589,1528714590,1528714591,1528714592,1528714593,1528714780,1528714781,1528714782,1528714783,1528714784,1528714785,1528714786,1528714787,1528714788,1528714789,1528714790,1528714791,1528714792,1528714793,1528714794,1528714795,1528714796,1528714797,1528714798,1528714799,1528714800,1528714801,1528714802,1528714803,1528714804,1528714805,1528714806,1528714807,1528714808,1528714809,1528714810,1528714811,1528714812,1528714813,1528714814,1528714815,1528714816,1528714817,1528714818,1528714819,1528714820,1528714821,1528714822,1528714823,1528714824,1528714825,1528714826,1528714827,1528714828,1528714829,1528714830,1528714831,1528714832,1528714833,1528714834,1528714835,1528714836,1528714837,1528714838,1528714839,1528714840,1528714841,1528714842,1528714843,1528714844,1528714845,1528714846,1528714847,1528714848,1528714849,1528715036,1528715037,1528715038,1528715039,1528715040,1528715041,1528715042,1528715043,1528715044,1528715045,1528715046,1528715047,1528715048,1528715049,1528715050,1528715051,1528715052,1528715053,1528715054,1528715055,1528715056,1528715057,1528715058,1528715059,1528715060,1528715061,1528715062,1528715063,1528715064,1528715065,1528715066,1528715067,1528715068,1528715069,1528715070,1528715071,1528715072,1528715073,1528715074,1528715075,1528715076,1528715077,1528715078,1528715079,1528715080,1528715081,1528715082,1528715083,1528715084,1528715085,1528715086,1528715087,1528715088,1528715089,1528715090,1528715091,1528715092,1528715093,1528715094,1528715095,1528715096,1528715097,1528715098,1528715099,1528715100,1528715101,1528715102,1528715103,1528715104,1528715105,1528715292,1528715293,1528715294,1528715295,1528715296,1528715297,1528715298,1528715299,1528715300,1528715301,1528715302,1528715303,1528715304,1528715305,1528715306,1528715307,1528715308,1528715309,1528715310,1528715311,1528715312,1528715313,1528715314,1528715315,1528715316,1528715317,1528715318,1528715319,1528715320,1528715321,1528715322,1528715323,1528715324,1528715325,1528715326,1528715327,1528715328,1528715329,1528715330,1528715331,1528715332,1528715333,1528715334,1528715335,1528715336,1528715337,1528715338,1528715339,1528715340,1528715341,1528715342,1528715343,1528715344,1528715345,1528715346,1528715347,1528715348,1528715349,1528715350,1528715351,1528715352,1528715353,1528715354,1528715355,1528715356,1528715357,1528715358,1528715359,1528715360,1528715361,1528715548,1528715549,1528715550,1528715551,1528715552,1528715553,1528715554,1528715555,1528715556,1528715557,1528715558,1528715559,1528715560,1528715561,1528715562,1528715563,1528715564,1528715565,1528715566,1528715567,1528715568,1528715569,1528715570,1528715571,1528715572,1528715573,1528715583,1528715584,1528715585,1528715586,1528715587,1528715588,1528715589,1528715590,1528715591,1528715592,1528715593,1528715594,1528715595,1528715596,1528715597,1528715598,1528715599,1528715600,1528715601,1528715602,1528715603,1528715604,1528715605,1528715606,1528715607,1528715608,1528715609,1528715610,1528715611,1528715612,1528715613,1528715614,1528715615,1528715616,1528715617,1528715803,1528715804,1528715805,1528715806,1528715807,1528715808,1528715809,1528715810,1528715811,1528715812,1528715813,1528715814,1528715815,1528715816,1528715817,1528715818,1528715819,1528715820,1528715821,1528715822,1528715823,1528715824,1528715825,1528715826,1528715827,1528715828,1528715840,1528715841,1528715842,1528715843,1528715844,1528715845,1528715846,1528715847,1528715848,1528715849,1528715850,1528715851,1528715852,1528715853,1528715854,1528715855,1528715856,1528715857,1528715858,1528715859,1528715860,1528715861,1528715862,1528715863,1528715864,1528715865,1528715866,1528715867,1528715868,1528715869,1528715870,1528715871,1528715872,1528715873,1366770782,1366770781,1366770780,1366770779,1360943895,1360943896,1360943897,1360943898,1528716059,1528716060,1528716061,1528716062,1528716063,1528716064,1528716065,1528716066,1528716067,1528716068,1528716069,1528716070,1528716071,1528716072,1528716073,1528716074,1528716075,1528716076,1528716077,1528716078,1528716079,1528716080,1528716081,1528716082,1528716083,1528716084,1528716096,1528716097,1528716098,1528716099,1528716100,1528716101,1528716102,1528716103,1528716104,1528716105,1528716106,1528716107,1528716108,1528716109,1528716110,1528716111,1528716112,1528716113,1528716114,1528716115,1528716116,1528716117,1528716118,1528716119,1528716120,1528716121,1528716122,1528716123,1528716124,1528716125,1528716126,1528716127,1528716128,1528716129,1366770529,1366770528,1366770527,1366770526,1360944151,1360944152,1360944153,1360944154,1528716315,1528716316,1528716317,1528716318,1528716319,1528716320,1528716321,1528716322,1528716323,1528716324,1528716325,1528716326,1528716327,1528716328,1528716329,1528716330,1528716331,1528716332,1528716333,1528716334,1528716335,1528716336,1528716337,1528716338,1528716339,1528716340,1528716352,1528716353,1528716354,1528716355,1528716356,1528716357,1528716358,1528716359,1528716360,1528716361,1528716362,1528716363,1528716364,1528716365,1528716366,1528716367,1528716368,1528716369,1528716370,1528716371,1528716372,1528716373,1528716374,1528716375,1528716376,1528716377,1528716378,1528716379,1528716380,1528716381,1528716382,1528716383,1528716384,1528716385,1366770525,1366770524,1366770523,1366770273,1360944407,1360944408,1360944409,1360944410,1528716571,1528716572,1528716573,1528716574,1528716575,1528716576,1528716577,1528716578,1528716579,1528716580,1528716581,1528716582,1528716583,1528716584,1528716585,1528716586,1528716587,1528716588,1528716589,1528716590,1528716591,1528716592,1528716593,1528716594,1528716595,1528716596,1528716608,1528716609,1528716610,1528716611,1528716612,1528716613,1528716614,1528716615,1528716616,1528716617,1528716618,1528716619,1528716620,1528716621,1528716622,1528716623,1528716624,1528716625,1528716626,1528716627,1528716628,1528716629,1528716630,1528716631,1528716632,1528716633,1528716634,1528716635,1528716636,1528716637,1528716638,1528716639,1528716640,1528716641,1366770272,1366770271,1366770270,1366770269,1360944663,1360944664,1360944665,1360944666,1528716827,1528716828,1528716829,1528716830,1528716831,1528716832,1528716833,1528716834,1528716835,1528716836,1528716837,1528716838,1528716839,1528716840,1528716841,1528716842,1528716843,1528716844,1528716845,1528716846,1528716847,1528716848,1528716849,1528716850,1528716851,1528716852,1528716864,1528716865,1528716866,1528716867,1528716868,1528716869,1528716870,1528716871,1528716872,1528716873,1528716874,1528716875,1528716876,1528716877,1528716878,1528716879,1528716880,1528716881,1528716882,1528716883,1528716884,1528716885,1528716886,1528716887,1528716888,1528716889,1528716890,1528716891,1528716892,1528716893,1528716894,1528716895,1528716896,1528716897,1366770268,1366770267,1366770017,1366770016,1360944919,1360944920,1360944921,1360944922,1528717083,1528717084,1528717085,1528717086,1528717087,1528717088,1528717089,1528717090,1528717091,1528717092,1528717093,1528717094,1528717095,1528717096,1528717097,1528717098,1528717099,1528717100,1528717101,1528717102,1528717103,1528717104,1528717105,1528717106,1528717107,1528717108,1528717120,1528717121,1528717122,1528717123,1528717124,1528717125,1528717126,1528717127,1528717128,1528717129,1528717130,1528717131,1528717132,1528717133,1528717134,1528717135,1528717136,1528717137,1528717138,1528717139,1528717140,1528717141,1528717142,1528717143,1528717144,1528717145,1528717146,1528717147,1528717148,1528717149,1528717150,1528717151,1528717152,1528717153,1366770015,1366770014,1366770013,1366770012,1360945175,1360945176,1360945177,1360945178,1528717339,1528717340,1528717341,1528717342,1528717343,1528717344,1528717345,1528717346,1528717347,1528717348,1528717349,1528717350,1528717351,1528717352,1528717353,1528717354,1528717355,1528717356,1528717357,1528717358,1528717359,1528717360,1528717361,1528717362,1528717363,1528717364,1528717376,1528717377,1528717378,1528717379,1528717380,1528717381,1528717382,1528717383,1528717384,1528717385,1528717386,1528717387,1528717388,1528717389,1528717390,1528717391,1528717392,1528717393,1528717394,1528717395,1528717396,1528717397,1528717398,1528717399,1528717400,1528717401,1528717402,1528717403,1528717404,1528717405,1528717406,1528717407,1528717408,1528717409,1366770011,1366769761,1366769760,1366769759,1360945431,1360945432,1360945433,1360945434,1528717595,1528717596,1528717597,1528717598,1528717599,1528717600,1528717601,1528717602,1528717603,1528717604,1528717605,1528717606,1528717607,1528717608,1528717609,1528717610,1528717611,1528717612,1528717613,1528717614,1528717615,1528717616,1528717617,1528717618,1528717619,1528717620,1528717632,1528717633,1528717634,1528717635,1528717636,1528717637,1528717638,1528717639,1528717640,1528717641,1528717642,1528717643,1528717644,1528717645,1528717646,1528717647,1528717648,1528717649,1528717650,1528717651,1528717652,1528717653,1528717654,1528717655,1528717656,1528717657,1528717658,1528717659,1528717660,1528717661,1528717662,1528717663,1528717664,1528717665,1360991067,1360991068,1360991069,1360991070,1360991071,1360991072,1360991073,1360991323,1360991324,1360991325,1360991326,1360991327,1360991328,1360991329,1360991579,1360991580,1360991581,1360991582,1360991583,1360991584,1360991585,1360991835,1360991836,1360991837,1360991838,1360991839,1360991840,1360991841,1360992091,1360992092,1360992093,1360992094,1360992095,1360992096,1360992097,1360992347,1360992348,1360992349,1360992350,1360992351,1360992352,1360992353,1360992603,1360992604,1360992605,1360992606,1360992607,1360992608,1360992609,1360992859,1360992860,1360992861,1360992862,1360992863,1360992864,1360992865,1528765275,1528765276,1528765277,1528765278,1528765279,1528765280,1528765281,1528765531,1528765532,1528765533,1528765534,1528765535,1528765536,1528765537,1528765788,1528765789,1528765790,1528765791,1528765792,1528765793,1528766044,1528766045,1528766046,1528766047,1528766048,1528766049,1528766300,1528766301,1528766302,1528766303,1528766304,1528766305,1528766556,1528766557,1528766558,1528766559,1528766560,1528766561,1528766812,1528766813,1528766814,1528766815,1528766816,1528766817,1528767067,1528767068,1528767069,1528767070,1528767071,1528767072,1528767073,1528767323,1528767324,1528767325,1528767326,1528767327,1528767328,1528767329,1528767579,1528767580,1528767581,1528767582,1528767583,1528767584,1528767585,1528767835,1528767836,1528767837,1528767838,1528767839,1528767840,1528767841,1528768091,1528768092,1528768093,1528768094,1528768095,1528768096,1528768097,1528768347,1528768348,1528768349,1528768350,1528768351,1528768352,1528768353,1528768603,1528768604,1528768605,1528768606,1528768607,1528768608,1528768609,1528768859,1528768860,1528768861,1528768862,1528768863,1528768864,1528768865,1528769115,1528769116,1528769117,1528769118,1528769119,1528769120,1528769121,1528769371,1528769372,1528769373,1528769374,1528769375,1528769376,1528769377,1528769627,1528769628,1528769629,1528769630,1528769631,1528769632,1528769633,1528769883,1528769884,1528769885,1528769886,1528769887,1528769888,1528769889,1528770138,1528770139,1528770140,1528770141,1528770142,1528770143,1528770144,1528770145,1528770394,1528770395,1528770396,1528770397,1528770398,1528770399,1528770400,1528770401,1528770650,1528770651,1528770652,1528770653,1528770654,1528770655,1528770656,1528770657,1528770906,1528770907,1528770908,1528770909,1528770910,1528770911,1528770912,1528770913,1528771162,1528771163,1528771164,1528771165,1528771166,1528771167,1528771168,1528771169,1528771418,1528771419,1528771420,1528771421,1528771422,1528771423,1528771424,1528771425,1528771674,1528771675,1528771676,1528771677,1528771678,1528771679,1528771680,1528771681,1528771931,1528771932,1528771933,1528771934,1528771935,1528771936,1528771937,1528772187,1528772188,1528772189,1528772190,1528772191,1528772192,1528772193,1528772443,1528772444,1528772445,1528772446,1528772447,1528772448,1528772449,1528772699,1528772700,1528772701,1528772702,1528772703,1528772704,1528772705,1528772955,1528772956,1528772957,1528772958,1528772959,1528772960,1528772961,1528773211,1528773212,1528773213,1528773214,1528773215,1528773216,1528773217,1528773449,1528773450,1528773451,1528773452,1528773453,1528773454,1528773455,1528773467,1528773468,1528773469,1528773470,1528773471,1528773472,1528773473,1528773705,1528773706,1528773707,1528773708,1528773709,1528773710,1528773711,1528773723,1528773724,1528773725,1528773726,1528773727,1528773728,1528773729,1528773961,1528773962,1528773963,1528773964,1528773965,1528773966,1528773967,1528773979,1528773980,1528773981,1528773982,1528773983,1528773984,1528773985,1528774217,1528774218,1528774219,1528774220,1528774221,1528774222,1528774223,1528774235,1528774236,1528774237,1528774238,1528774239,1528774240,1528774241,1528774473,1528774474,1528774475,1528774476,1528774477,1528774478,1528774479,1528774480,1528774490,1528774491,1528774492,1528774493,1528774494,1528774495,1528774496,1528774497,1528774729,1528774730,1528774731,1528774732,1528774733,1528774734,1528774735,1528774736,1528774737,1528774738,1528774739,1528774740,1528774741,1528774742,1528774743,1528774744,1528774745,1528774746,1528774747,1528774748,1528774749,1528774750,1528774751,1528774752,1528774753,1528774985,1528774986,1528774987,1528774988,1528774989,1528774990,1528774991,1528774992,1528774993,1528774994,1528774995,1528774996,1528774997,1528774998,1528774999,1528775000,1528775001,1528775002,1528775003,1528775004,1528775005,1528775006,1528775007,1528775008,1528775009,1528775241,1528775242,1528775243,1528775244,1528775245,1528775246,1528775247,1528775248,1528775249,1528775250,1528775251,1528775252,1528775253,1528775254,1528775255,1528775256,1528775257,1528775258,1528775259,1528775260,1528775261,1528775262,1528775263,1528775264,1528775265,1528775497,1528775498,1528775499,1528775500,1528775501,1528775502,1528775503,1528775504,1528775505,1528775506,1528775507,1528775508,1528775509,1528775510,1528775511,1528775512,1528775513,1528775514,1528775515,1528775516,1528775517,1528775518,1528775519,1528775520,1528775521,1528775753,1528775754,1528775755,1528775756,1528775757,1528775758,1528775759,1528775760,1528775761,1528775762,1528775763,1528775764,1528775765,1528775766,1528775767,1528775768,1528775769,1528775770,1528775771,1528775772,1528775773,1528775774,1528775775,1528775776,1528775777,1528776009,1528776010,1528776011,1528776012,1528776013,1528776014,1528776015,1528776016,1528776017,1528776018,1528776019,1528776020,1528776021,1528776022,1528776023,1528776024,1528776025,1528776026,1528776027,1528776028,1528776029,1528776030,1528776031,1528776032,1528776033,1528776265,1528776266,1528776267,1528776268,1528776269,1528776270,1528776271,1528776272,1528776273,1528776274,1528776275,1528776276,1528776277,1528776278,1528776279,1528776280,1528776281,1528776282,1528776283,1528776284,1528776285,1528776286,1528776287,1528776288,1528776289,1528776521,1528776522,1528776523,1528776524,1528776525,1528776526,1528776527,1528776528,1528776529,1528776530,1528776531,1528776532,1528776533,1528776534,1528776535,1528776536,1528776537,1528776538,1528776539,1528776540,1528776541,1528776542,1528776543,1528776544,1528776545,1528776777,1528776778,1528776779,1528776780,1528776781,1528776782,1528776783,1528776784,1528776785,1528776786,1528776787,1528776788,1528776789,1528776790,1528776791,1528776792,1528776793,1528776794,1528776795,1528776796,1528776797,1528776798,1528776799,1528776800,1528776801,1528777034,1528777035,1528777036,1528777037,1528777038,1528777039,1528777040,1528777041,1528777042,1528777043,1528777044,1528777045,1528777046,1528777047,1528777048,1528777049,1528777050,1528777051,1528777052,1528777053,1528777054,1528777055,1528777056,1528777057,1528777290,1528777291,1528777292,1528777293,1528777294,1528777295,1528777296,1528777297,1528777298,1528777299,1528777300,1528777301,1528777302,1528777303,1528777304,1528777305,1528777306,1528777307,1528777308,1528777309,1528777310,1528777311,1528777312,1528777313,1528777546,1528777547,1528777548,1528777549,1528777550,1528777551,1528777552,1528777553,1528777554,1528777555,1528777556,1528777557,1528777558,1528777559,1528777560,1528777561,1528777562,1528777563,1528777564,1528777565,1528777566,1528777567,1528777568,1528777569,1528777802,1528777803,1528777804,1528777805,1528777806,1528777807,1528777808,1528777809,1528777810,1528777811,1528777812,1528777813,1528777814,1528777815,1528777816,1528777817,1528777818,1528777819,1528777820,1528777821,1528777822,1528777823,1528777824,1528777825,1528778058,1528778059,1528778060,1528778061,1528778062,1528778063,1528778064,1528778065,1528778066,1528778067,1528778068,1528778069,1528778070,1528778071,1528778072,1528778073,1528778074,1528778075,1528778076,1528778077,1528778078,1528778079,1528778080,1528778081,1528778314,1528778315,1528778316,1528778317,1528778318,1528778319,1528778320,1528778321,1528778322,1528778323,1528778324,1528778325,1528778326,1528778327,1528778328,1528778329,1528778330,1528778331,1528778332,1528778333,1528778334,1528778335,1528778336,1528778337,1528778570,1528778571,1528778572,1528778573,1528778574,1528778575,1528778576,1528778577,1528778578,1528778579,1528778580,1528778581,1528778582,1528778583,1528778584,1528778585,1528778586,1528778587,1528778588,1528778589,1528778590,1528778591,1528778592,1528778593,1528778825,1528778826,1528778827,1528778828,1528778829,1528778830,1528778831,1528778832,1528778833,1528778834,1528778835,1528778836,1528778837,1528778838,1528778839,1528778840,1528778841,1528778842,1528778843,1528778844,1528778845,1528778846,1528778847,1528778848,1528778849,1528779080,1528779081,1528779082,1528779083,1528779084,1528779085,1528779086,1528779087,1528779088,1528779089,1528779090,1528779091,1528779092,1528779093,1528779094,1528779095,1528779096,1528779097,1528779098,1528779099,1528779100,1528779101,1528779102,1528779103,1528779104,1528779105,1528779292,1528779293,1528779297,1528779298,1528779299,1528779300,1528779301,1528779302,1528779306,1528779307,1528779308,1528779309,1528779310,1528779311,1528779315,1528779316,1528779317,1528779318,1528779319,1528779320,1528779321,1528779322,1528779323,1528779324,1528779325,1528779326,1528779327,1528779328,1528779329,1528779330,1528779331,1528779332,1528779333,1528779334,1528779335,1528779336,1528779337,1528779338,1528779339,1528779340,1528779341,1528779342,1528779343,1528779344,1528779345,1528779346,1528779347,1528779348,1528779349,1528779350,1528779351,1528779352,1528779353,1528779354,1528779355,1528779356,1528779357,1528779358,1528779359,1528779360,1528779361,1528779548,1528779549,1528779553,1528779554,1528779555,1528779556,1528779557,1528779558,1528779562,1528779563,1528779564,1528779565,1528779566,1528779567,1528779571,1528779572,1528779573,1528779574,1528779575,1528779576,1528779577,1528779578,1528779579,1528779580,1528779581,1528779582,1528779583,1528779584,1528779585,1528779586,1528779587,1528779588,1528779589,1528779590,1528779591,1528779592,1528779593,1528779594,1528779595,1528779596,1528779597,1528779598,1528779599,1528779600,1528779601,1528779602,1528779603,1528779604,1528779605,1528779606,1528779607,1528779608,1528779609,1528779610,1528779611,1528779612,1528779613,1528779614,1528779615,1528779616,1528779617,1528779804,1528779805,1528779809,1528779810,1528779811,1528779812,1528779813,1528779814,1528779818,1528779819,1528779820,1528779821,1528779822,1528779823,1528779827,1528779828,1528779829,1528779830,1528779831,1528779832,1528779833,1528779834,1528779835,1528779836,1528779837,1528779838,1528779839,1528779840,1528779841,1528779842,1528779843,1528779844,1528779845,1528779846,1528779847,1528779848,1528779849,1528779850,1528779851,1528779852,1528779853,1528779854,1528779855,1528779856,1528779857,1528779858,1528779859,1528779860,1528779861,1528779862,1528779863,1528779864,1528779865,1528779866,1528779867,1528779868,1528779869,1528779870,1528779871,1528779872,1528779873,1528780060,1528780061,1528780062,1528780064,1528780065,1528780066,1528780067,1528780068,1528780069,1528780070,1528780071,1528780073,1528780074,1528780075,1528780076,1528780077,1528780078,1528780079,1528780080,1528780082,1528780083,1528780084,1528780085,1528780086,1528780087,1528780088,1528780089,1528780090,1528780091,1528780092,1528780093,1528780094,1528780095,1528780096,1528780097,1528780098,1528780099,1528780100,1528780101,1528780102,1528780103,1528780104,1528780105,1528780106,1528780107,1528780108,1528780109,1528780110,1528780111,1528780112,1528780113,1528780114,1528780115,1528780116,1528780117,1528780118,1528780119,1528780120,1528780121,1528780122,1528780123,1528780124,1528780125,1528780126,1528780127,1528780128,1528780129,1528780316,1528780317,1528780318,1528780319,1528780320,1528780321,1528780322,1528780323,1528780324,1528780325,1528780326,1528780327,1528780328,1528780329,1528780330,1528780331,1528780332,1528780333,1528780334,1528780335,1528780336,1528780337,1528780338,1528780339,1528780340,1528780341,1528780342,1528780343,1528780344,1528780345,1528780346,1528780347,1528780348,1528780349,1528780350,1528780351,1528780352,1528780353,1528780354,1528780355,1528780356,1528780357,1528780358,1528780359,1528780360,1528780361,1528780362,1528780363,1528780364,1528780365,1528780366,1528780367,1528780368,1528780369,1528780370,1528780371,1528780372,1528780373,1528780374,1528780375,1528780376,1528780377,1528780378,1528780379,1528780380,1528780381,1528780382,1528780383,1528780384,1528780385,1528780572,1528780573,1528780574,1528780575,1528780576,1528780577,1528780578,1528780579,1528780580,1528780581,1528780582,1528780583,1528780584,1528780585,1528780586,1528780587,1528780588,1528780589,1528780590,1528780591,1528780592,1528780593,1528780594,1528780595,1528780596,1528780597,1528780598,1528780599,1528780600,1528780601,1528780602,1528780603,1528780604,1528780605,1528780606,1528780607,1528780608,1528780609,1528780610,1528780611,1528780612,1528780613,1528780614,1528780615,1528780616,1528780617,1528780618,1528780619,1528780620,1528780621,1528780622,1528780623,1528780624,1528780625,1528780626,1528780627,1528780628,1528780629,1528780630,1528780631,1528780632,1528780633,1528780634,1528780635,1528780636,1528780637,1528780638,1528780639,1528780640,1528780641,1528780828,1528780829,1528780830,1528780831,1528780832,1528780833,1528780834,1528780835,1528780836,1528780837,1528780838,1528780839,1528780840,1528780841,1528780842,1528780843,1528780844,1528780845,1528780846,1528780847,1528780848,1528780849,1528780850,1528780851,1528780852,1528780853,1528780854,1528780855,1528780856,1528780857,1528780858,1528780859,1528780860,1528780861,1528780862,1528780863,1528780864,1528780865,1528780866,1528780867,1528780868,1528780869,1528780870,1528780871,1528780872,1528780873,1528780874,1528780875,1528780876,1528780877,1528780878,1528780879,1528780880,1528780881,1528780882,1528780883,1528780884,1528780885,1528780886,1528780887,1528780888,1528780889,1528780890,1528780891,1528780892,1528780893,1528780894,1528780895,1528780896,1528780897,1528781084,1528781085,1528781086,1528781087,1528781088,1528781089,1528781090,1528781091,1528781092,1528781093,1528781094,1528781095,1528781096,1528781097,1528781098,1528781099,1528781100,1528781101,1528781102,1528781103,1528781104,1528781105,1528781106,1528781107,1528781108,1528781109,1528781119,1528781120,1528781121,1528781122,1528781123,1528781124,1528781125,1528781126,1528781127,1528781128,1528781129,1528781130,1528781131,1528781132,1528781133,1528781134,1528781135,1528781136,1528781137,1528781138,1528781139,1528781140,1528781141,1528781142,1528781143,1528781144,1528781145,1528781146,1528781147,1528781148,1528781149,1528781150,1528781151,1528781152,1528781153,1528781339,1528781340,1528781341,1528781342,1528781343,1528781344,1528781345,1528781346,1528781347,1528781348,1528781349,1528781350,1528781351,1528781352,1528781353,1528781354,1528781355,1528781356,1528781357,1528781358,1528781359,1528781360,1528781361,1528781362,1528781363,1528781364,1528781376,1528781377,1528781378,1528781379,1528781380,1528781381,1528781382,1528781383,1528781384,1528781385,1528781386,1528781387,1528781388,1528781389,1528781390,1528781391,1528781392,1528781393,1528781394,1528781395,1528781396,1528781397,1528781398,1528781399,1528781400,1528781401,1528781402,1528781403,1528781404,1528781405,1528781406,1528781407,1528781408,1528781409,1366769758,1366769757,1366769756,1366769755,1361009431,1361009432,1361009433,1361009434,1528781595,1528781596,1528781597,1528781598,1528781599,1528781600,1528781601,1528781602,1528781603,1528781604,1528781605,1528781606,1528781607,1528781608,1528781609,1528781610,1528781611,1528781612,1528781613,1528781614,1528781615,1528781616,1528781617,1528781618,1528781619,1528781620,1528781632,1528781633,1528781634,1528781635,1528781636,1528781637,1528781638,1528781639,1528781640,1528781641,1528781642,1528781643,1528781644,1528781645,1528781646,1528781647,1528781648,1528781649,1528781650,1528781651,1528781652,1528781653,1528781654,1528781655,1528781656,1528781657,1528781658,1528781659,1528781660,1528781661,1528781662,1528781663,1528781664,1528781665,1366769505,1366769504,1366769503,1366769502,1361009687,1361009688,1361009689,1361009690,1528781851,1528781852,1528781853,1528781854,1528781855,1528781856,1528781857,1528781858,1528781859,1528781860,1528781861,1528781862,1528781863,1528781864,1528781865,1528781866,1528781867,1528781868,1528781869,1528781870,1528781871,1528781872,1528781873,1528781874,1528781875,1528781876,1528781888,1528781889,1528781890,1528781891,1528781892,1528781893,1528781894,1528781895,1528781896,1528781897,1528781898,1528781899,1528781900,1528781901,1528781902,1528781903,1528781904,1528781905,1528781906,1528781907,1528781908,1528781909,1528781910,1528781911,1528781912,1528781913,1528781914,1528781915,1528781916,1528781917,1528781918,1528781919,1528781920,1528781921,1366769501,1366769500,1366769499,1366769249,1361009943,1361009944,1361009945,1361009946,1528782107,1528782108,1528782109,1528782110,1528782111,1528782112,1528782113,1528782114,1528782115,1528782116,1528782117,1528782118,1528782119,1528782120,1528782121,1528782122,1528782123,1528782124,1528782125,1528782126,1528782127,1528782128,1528782129,1528782130,1528782131,1528782132,1528782144,1528782145,1528782146,1528782147,1528782148,1528782149,1528782150,1528782151,1528782152,1528782153,1528782154,1528782155,1528782156,1528782157,1528782158,1528782159,1528782160,1528782161,1528782162,1528782163,1528782164,1528782165,1528782166,1528782167,1528782168,1528782169,1528782170,1528782171,1528782172,1528782173,1528782174,1528782175,1528782176,1528782177,1366769248,1366769247,1366769246,1366769245,1361010199,1361010200,1361010201,1361010202,1528782363,1528782364,1528782365,1528782366,1528782367,1528782368,1528782369,1528782370,1528782371,1528782372,1528782373,1528782374,1528782375,1528782376,1528782377,1528782378,1528782379,1528782380,1528782381,1528782382,1528782383,1528782384,1528782385,1528782386,1528782387,1528782388,1528782400,1528782401,1528782402,1528782403,1528782404,1528782405,1528782406,1528782407,1528782408,1528782409,1528782410,1528782411,1528782412,1528782413,1528782414,1528782415,1528782416,1528782417,1528782418,1528782419,1528782420,1528782421,1528782422,1528782423,1528782424,1528782425,1528782426,1528782427,1528782428,1528782429,1528782430,1528782431,1528782432,1528782433,1366769244,1366769243,1366768993,1366768992,1361010455,1361010456,1361010457,1361010458,1528782619,1528782620,1528782621,1528782622,1528782623,1528782624,1528782625,1528782626,1528782627,1528782628,1528782629,1528782630,1528782631,1528782632,1528782633,1528782634,1528782635,1528782636,1528782637,1528782638,1528782639,1528782640,1528782641,1528782642,1528782643,1528782644,1528782656,1528782657,1528782658,1528782659,1528782660,1528782661,1528782662,1528782663,1528782664,1528782665,1528782666,1528782667,1528782668,1528782669,1528782670,1528782671,1528782672,1528782673,1528782674,1528782675,1528782676,1528782677,1528782678,1528782679,1528782680,1528782681,1528782682,1528782683,1528782684,1528782685,1528782686,1528782687,1528782688,1528782689,1366768991,1366768990,1366768989,1366768988,1361010711,1361010712,1361010713,1361010714,1528782875,1528782876,1528782877,1528782878,1528782879,1528782880,1528782881,1528782882,1528782883,1528782884,1528782885,1528782886,1528782887,1528782888,1528782889,1528782890,1528782891,1528782892,1528782893,1528782894,1528782895,1528782896,1528782897,1528782898,1528782899,1528782900,1528782912,1528782913,1528782914,1528782915,1528782916,1528782917,1528782918,1528782919,1528782920,1528782921,1528782922,1528782923,1528782924,1528782925,1528782926,1528782927,1528782928,1528782929,1528782930,1528782931,1528782932,1528782933,1528782934,1528782935,1528782936,1528782937,1528782938,1528782939,1528782940,1528782941,1528782942,1528782943,1528782944,1528782945,1366768987,1366768737,1366768736,1366768735,1361010967,1361010968,1361010969,1361010970,1528783131,1528783132,1528783133,1528783134,1528783135,1528783136,1528783137,1528783138,1528783139,1528783140,1528783141,1528783142,1528783143,1528783144,1528783145,1528783146,1528783147,1528783148,1528783149,1528783150,1528783151,1528783152,1528783153,1528783154,1528783155,1528783156,1528783168,1528783169,1528783170,1528783171,1528783172,1528783173,1528783174,1528783175,1528783176,1528783177,1528783178,1528783179,1528783180,1528783181,1528783182,1528783183,1528783184,1528783185,1528783186,1528783187,1528783188,1528783189,1528783190,1528783191,1528783192,1528783193,1528783194,1528783195,1528783196,1528783197,1528783198,1528783199,1528783200,1528783201,1361056603,1361056604,1361056605,1361056606,1361056607,1361056608,1361056609,1361056859,1361056860,1361056861,1361056862,1361056863,1361056864,1361056865,1361057115,1361057116,1361057117,1361057118,1361057119,1361057120,1361057121,1361057371,1361057372,1361057373,1361057374,1361057375,1361057376,1361057377,1361057627,1361057628,1361057629,1361057630,1361057631,1361057632,1361057633,1361057883,1361057884,1361057885,1361057886,1361057887,1361057888,1361057889,1361058139,1361058140,1361058141,1361058142,1361058143,1361058144,1361058145,1361058395,1361058396,1361058397,1361058398,1361058399,1361058400,1361058401,1528830811,1528830812,1528830813,1528830814,1528830815,1528830816,1528830817,1528831067,1528831068,1528831069,1528831070,1528831071,1528831072,1528831073,1528831323,1528831324,1528831325,1528831326,1528831327,1528831328,1528831329,1528831579,1528831580,1528831581,1528831582,1528831583,1528831584,1528831585,1528831835,1528831836,1528831837,1528831838,1528831839,1528831840,1528831841,1528832091,1528832092,1528832093,1528832094,1528832095,1528832096,1528832097,1528832347,1528832348,1528832349,1528832350,1528832351,1528832352,1528832353,1528832603,1528832604,1528832605,1528832606,1528832607,1528832608,1528832609,1528832859,1528832860,1528832861,1528832862,1528832863,1528832864,1528832865,1528833115,1528833116,1528833117,1528833118,1528833119,1528833120,1528833121,1528833371,1528833372,1528833373,1528833374,1528833375,1528833376,1528833377,1528833627,1528833628,1528833629,1528833630,1528833631,1528833632,1528833633,1528833883,1528833884,1528833885,1528833886,1528833887,1528833888,1528833889,1528834139,1528834140,1528834141,1528834142,1528834143,1528834144,1528834145,1528834395,1528834396,1528834397,1528834398,1528834399,1528834400,1528834401,1528834651,1528834652,1528834653,1528834654,1528834655,1528834656,1528834657,1528834907,1528834908,1528834909,1528834910,1528834911,1528834912,1528834913,1528835163,1528835164,1528835165,1528835166,1528835167,1528835168,1528835169,1528835419,1528835420,1528835421,1528835422,1528835423,1528835424,1528835425,1528835674,1528835675,1528835676,1528835677,1528835678,1528835679,1528835680,1528835681,1528835930,1528835931,1528835932,1528835933,1528835934,1528835935,1528835936,1528835937,1528836186,1528836187,1528836188,1528836189,1528836190,1528836191,1528836192,1528836193,1528836442,1528836443,1528836444,1528836445,1528836446,1528836447,1528836448,1528836449,1528836698,1528836699,1528836700,1528836701,1528836702,1528836703,1528836704,1528836705,1528836954,1528836955,1528836956,1528836957,1528836958,1528836959,1528836960,1528836961,1528837210,1528837211,1528837212,1528837213,1528837214,1528837215,1528837216,1528837217,1528837467,1528837468,1528837469,1528837470,1528837471,1528837472,1528837473,1528837723,1528837724,1528837725,1528837726,1528837727,1528837728,1528837729,1528837979,1528837980,1528837981,1528837982,1528837983,1528837984,1528837985,1528838235,1528838236,1528838237,1528838238,1528838239,1528838240,1528838241,1528838491,1528838492,1528838493,1528838494,1528838495,1528838496,1528838497,1528838747,1528838748,1528838749,1528838750,1528838751,1528838752,1528838753,1528839003,1528839004,1528839005,1528839006,1528839007,1528839008,1528839009,1528839241,1528839242,1528839243,1528839244,1528839245,1528839246,1528839247,1528839259,1528839260,1528839261,1528839262,1528839263,1528839264,1528839265,1528839497,1528839498,1528839499,1528839500,1528839501,1528839502,1528839503,1528839515,1528839516,1528839517,1528839518,1528839519,1528839520,1528839521,1528839753,1528839754,1528839755,1528839756,1528839757,1528839758,1528839759,1528839771,1528839772,1528839773,1528839774,1528839775,1528839776,1528839777,1528840009,1528840010,1528840011,1528840012,1528840013,1528840014,1528840015,1528840016,1528840026,1528840027,1528840028,1528840029,1528840030,1528840031,1528840032,1528840033,1528840265,1528840266,1528840267,1528840268,1528840269,1528840270,1528840271,1528840272,1528840273,1528840274,1528840275,1528840276,1528840277,1528840278,1528840279,1528840280,1528840281,1528840282,1528840283,1528840284,1528840285,1528840286,1528840287,1528840288,1528840289,1528840521,1528840522,1528840523,1528840524,1528840525,1528840526,1528840527,1528840528,1528840529,1528840530,1528840531,1528840532,1528840533,1528840534,1528840535,1528840536,1528840537,1528840538,1528840539,1528840540,1528840541,1528840542,1528840543,1528840544,1528840545,1528840777,1528840778,1528840779,1528840780,1528840781,1528840782,1528840783,1528840784,1528840785,1528840786,1528840787,1528840788,1528840789,1528840790,1528840791,1528840792,1528840793,1528840794,1528840795,1528840796,1528840797,1528840798,1528840799,1528840800,1528840801,1528841033,1528841034,1528841035,1528841036,1528841037,1528841038,1528841039,1528841040,1528841041,1528841042,1528841043,1528841044,1528841045,1528841046,1528841047,1528841048,1528841049,1528841050,1528841051,1528841052,1528841053,1528841054,1528841055,1528841056,1528841057,1528841289,1528841290,1528841291,1528841292,1528841293,1528841294,1528841295,1528841296,1528841297,1528841298,1528841299,1528841300,1528841301,1528841302,1528841303,1528841304,1528841305,1528841306,1528841307,1528841308,1528841309,1528841310,1528841311,1528841312,1528841313,1528841545,1528841546,1528841547,1528841548,1528841549,1528841550,1528841551,1528841552,1528841553,1528841554,1528841555,1528841556,1528841557,1528841558,1528841559,1528841560,1528841561,1528841562,1528841563,1528841564,1528841565,1528841566,1528841567,1528841568,1528841569,1528841801,1528841802,1528841803,1528841804,1528841805,1528841806,1528841807,1528841808,1528841809,1528841810,1528841811,1528841812,1528841813,1528841814,1528841815,1528841816,1528841817,1528841818,1528841819,1528841820,1528841821,1528841822,1528841823,1528841824,1528841825,1528842057,1528842058,1528842059,1528842060,1528842061,1528842062,1528842063,1528842064,1528842065,1528842066,1528842067,1528842068,1528842069,1528842070,1528842071,1528842072,1528842073,1528842074,1528842075,1528842076,1528842077,1528842078,1528842079,1528842080,1528842081,1528842313,1528842314,1528842315,1528842316,1528842317,1528842318,1528842319,1528842320,1528842321,1528842322,1528842323,1528842324,1528842325,1528842326,1528842327,1528842328,1528842329,1528842330,1528842331,1528842332,1528842333,1528842334,1528842335,1528842336,1528842337,1528842570,1528842571,1528842572,1528842573,1528842574,1528842575,1528842576,1528842577,1528842578,1528842579,1528842580,1528842581,1528842582,1528842583,1528842584,1528842585,1528842586,1528842587,1528842588,1528842589,1528842590,1528842591,1528842592,1528842593,1528842826,1528842827,1528842828,1528842829,1528842830,1528842831,1528842832,1528842833,1528842834,1528842835,1528842836,1528842837,1528842838,1528842839,1528842840,1528842841,1528842842,1528842843,1528842844,1528842845,1528842846,1528842847,1528842848,1528842849,1528843082,1528843083,1528843084,1528843085,1528843086,1528843087,1528843088,1528843089,1528843090,1528843091,1528843092,1528843093,1528843094,1528843095,1528843096,1528843097,1528843098,1528843099,1528843100,1528843101,1528843102,1528843103,1528843104,1528843105,1528843338,1528843339,1528843340,1528843341,1528843342,1528843343,1528843344,1528843345,1528843346,1528843347,1528843348,1528843349,1528843350,1528843351,1528843352,1528843353,1528843354,1528843355,1528843356,1528843357,1528843358,1528843359,1528843360,1528843361,1528843594,1528843595,1528843596,1528843597,1528843598,1528843599,1528843600,1528843601,1528843602,1528843603,1528843604,1528843605,1528843606,1528843607,1528843608,1528843609,1528843610,1528843611,1528843612,1528843613,1528843614,1528843615,1528843616,1528843617,1528843850,1528843851,1528843852,1528843853,1528843854,1528843855,1528843856,1528843857,1528843858,1528843859,1528843860,1528843861,1528843862,1528843863,1528843864,1528843865,1528843866,1528843867,1528843868,1528843869,1528843870,1528843871,1528843872,1528843873,1528844106,1528844107,1528844108,1528844109,1528844110,1528844111,1528844112,1528844113,1528844114,1528844115,1528844116,1528844117,1528844118,1528844119,1528844120,1528844121,1528844122,1528844123,1528844124,1528844125,1528844126,1528844127,1528844128,1528844129,1528844361,1528844362,1528844363,1528844364,1528844365,1528844366,1528844367,1528844368,1528844369,1528844370,1528844371,1528844372,1528844373,1528844374,1528844375,1528844376,1528844377,1528844378,1528844379,1528844380,1528844381,1528844382,1528844383,1528844384,1528844385,1528844616,1528844617,1528844618,1528844619,1528844620,1528844621,1528844622,1528844623,1528844624,1528844625,1528844626,1528844627,1528844628,1528844629,1528844630,1528844631,1528844632,1528844633,1528844634,1528844635,1528844636,1528844637,1528844638,1528844639,1528844640,1528844641,1528844828,1528844829,1528844830,1528844832,1528844833,1528844834,1528844835,1528844836,1528844837,1528844838,1528844839,1528844841,1528844842,1528844843,1528844844,1528844845,1528844846,1528844847,1528844848,1528844850,1528844851,1528844852,1528844853,1528844854,1528844855,1528844856,1528844857,1528844858,1528844859,1528844860,1528844861,1528844862,1528844863,1528844864,1528844865,1528844866,1528844867,1528844868,1528844869,1528844870,1528844871,1528844872,1528844873,1528844874,1528844875,1528844876,1528844877,1528844878,1528844879,1528844880,1528844881,1528844882,1528844883,1528844884,1528844885,1528844886,1528844887,1528844888,1528844889,1528844890,1528844891,1528844892,1528844893,1528844894,1528844895,1528844896,1528844897,1528845084,1528845085,1528845086,1528845088,1528845089,1528845090,1528845091,1528845092,1528845093,1528845094,1528845095,1528845097,1528845098,1528845099,1528845100,1528845101,1528845102,1528845103,1528845104,1528845106,1528845107,1528845108,1528845109,1528845110,1528845111,1528845112,1528845113,1528845114,1528845115,1528845116,1528845117,1528845118,1528845119,1528845120,1528845121,1528845122,1528845123,1528845124,1528845125,1528845126,1528845127,1528845128,1528845129,1528845130,1528845131,1528845132,1528845133,1528845134,1528845135,1528845136,1528845137,1528845138,1528845139,1528845140,1528845141,1528845142,1528845143,1528845144,1528845145,1528845146,1528845147,1528845148,1528845149,1528845150,1528845151,1528845152,1528845153,1528845340,1528845341,1528845342,1528845344,1528845345,1528845346,1528845347,1528845348,1528845349,1528845350,1528845351,1528845353,1528845354,1528845355,1528845356,1528845357,1528845358,1528845359,1528845360,1528845362,1528845363,1528845364,1528845365,1528845366,1528845367,1528845368,1528845369,1528845370,1528845371,1528845372,1528845373,1528845374,1528845375,1528845376,1528845377,1528845378,1528845379,1528845380,1528845381,1528845382,1528845383,1528845384,1528845385,1528845386,1528845387,1528845388,1528845389,1528845390,1528845391,1528845392,1528845393,1528845394,1528845395,1528845396,1528845397,1528845398,1528845399,1528845400,1528845401,1528845402,1528845403,1528845404,1528845405,1528845406,1528845407,1528845408,1528845409,1528845596,1528845597,1528845598,1528845599,1528845600,1528845601,1528845602,1528845603,1528845604,1528845605,1528845606,1528845607,1528845608,1528845609,1528845610,1528845611,1528845612,1528845613,1528845614,1528845615,1528845616,1528845617,1528845618,1528845619,1528845620,1528845621,1528845622,1528845623,1528845624,1528845625,1528845626,1528845627,1528845628,1528845629,1528845630,1528845631,1528845632,1528845633,1528845634,1528845635,1528845636,1528845637,1528845638,1528845639,1528845640,1528845641,1528845642,1528845643,1528845644,1528845645,1528845646,1528845647,1528845648,1528845649,1528845650,1528845651,1528845652,1528845653,1528845654,1528845655,1528845656,1528845657,1528845658,1528845659,1528845660,1528845661,1528845662,1528845663,1528845664,1528845665,1528845852,1528845853,1528845854,1528845855,1528845856,1528845857,1528845858,1528845859,1528845860,1528845861,1528845862,1528845863,1528845864,1528845865,1528845866,1528845867,1528845868,1528845869,1528845870,1528845871,1528845872,1528845873,1528845874,1528845875,1528845876,1528845877,1528845878,1528845879,1528845880,1528845881,1528845882,1528845883,1528845884,1528845885,1528845886,1528845887,1528845888,1528845889,1528845890,1528845891,1528845892,1528845893,1528845894,1528845895,1528845896,1528845897,1528845898,1528845899,1528845900,1528845901,1528845902,1528845903,1528845904,1528845905,1528845906,1528845907,1528845908,1528845909,1528845910,1528845911,1528845912,1528845913,1528845914,1528845915,1528845916,1528845917,1528845918,1528845919,1528845920,1528845921,1528846108,1528846109,1528846110,1528846111,1528846112,1528846113,1528846114,1528846115,1528846116,1528846117,1528846118,1528846119,1528846120,1528846121,1528846122,1528846123,1528846124,1528846125,1528846126,1528846127,1528846128,1528846129,1528846130,1528846131,1528846132,1528846133,1528846134,1528846135,1528846136,1528846137,1528846138,1528846139,1528846140,1528846141,1528846142,1528846143,1528846144,1528846145,1528846146,1528846147,1528846148,1528846149,1528846150,1528846151,1528846152,1528846153,1528846154,1528846155,1528846156,1528846157,1528846158,1528846159,1528846160,1528846161,1528846162,1528846163,1528846164,1528846165,1528846166,1528846167,1528846168,1528846169,1528846170,1528846171,1528846172,1528846173,1528846174,1528846175,1528846176,1528846177,1528846364,1528846365,1528846366,1528846367,1528846368,1528846369,1528846370,1528846371,1528846372,1528846373,1528846374,1528846375,1528846376,1528846377,1528846378,1528846379,1528846380,1528846381,1528846382,1528846383,1528846384,1528846385,1528846386,1528846387,1528846388,1528846389,1528846390,1528846391,1528846392,1528846393,1528846394,1528846395,1528846396,1528846397,1528846398,1528846399,1528846400,1528846401,1528846402,1528846403,1528846404,1528846405,1528846406,1528846407,1528846408,1528846409,1528846410,1528846411,1528846412,1528846413,1528846414,1528846415,1528846416,1528846417,1528846418,1528846419,1528846420,1528846421,1528846422,1528846423,1528846424,1528846425,1528846426,1528846427,1528846428,1528846429,1528846430,1528846431,1528846432,1528846433,1528846620,1528846621,1528846622,1528846623,1528846624,1528846625,1528846626,1528846627,1528846628,1528846629,1528846630,1528846631,1528846632,1528846633,1528846634,1528846635,1528846636,1528846637,1528846638,1528846639,1528846640,1528846641,1528846642,1528846643,1528846644,1528846645,1528846655,1528846656,1528846657,1528846658,1528846659,1528846660,1528846661,1528846662,1528846663,1528846664,1528846665,1528846666,1528846667,1528846668,1528846669,1528846670,1528846671,1528846672,1528846673,1528846674,1528846675,1528846676,1528846677,1528846678,1528846679,1528846680,1528846681,1528846682,1528846683,1528846684,1528846685,1528846686,1528846687,1528846688,1528846689,1528846875,1528846876,1528846877,1528846878,1528846879,1528846880,1528846881,1528846882,1528846883,1528846884,1528846885,1528846886,1528846887,1528846888,1528846889,1528846890,1528846891,1528846892,1528846893,1528846894,1528846895,1528846896,1528846897,1528846898,1528846899,1528846900,1528846912,1528846913,1528846914,1528846915,1528846916,1528846917,1528846918,1528846919,1528846920,1528846921,1528846922,1528846923,1528846924,1528846925,1528846926,1528846927,1528846928,1528846929,1528846930,1528846931,1528846932,1528846933,1528846934,1528846935,1528846936,1528846937,1528846938,1528846939,1528846940,1528846941,1528846942,1528846943,1528846944,1528846945,1366768734,1366768733,1366768732,1366768731,1361074967,1361074968,1361074969,1361074970,1528847131,1528847132,1528847133,1528847134,1528847135,1528847136,1528847137,1528847138,1528847139,1528847140,1528847141,1528847142,1528847143,1528847144,1528847145,1528847146,1528847147,1528847148,1528847149,1528847150,1528847151,1528847152,1528847153,1528847154,1528847155,1528847156,1528847168,1528847169,1528847170,1528847171,1528847172,1528847173,1528847174,1528847175,1528847176,1528847177,1528847178,1528847179,1528847180,1528847181,1528847182,1528847183,1528847184,1528847185,1528847186,1528847187,1528847188,1528847189,1528847190,1528847191,1528847192,1528847193,1528847194,1528847195,1528847196,1528847197,1528847198,1528847199,1528847200,1528847201,1366768481,1366768480,1366768479,1366768478,1361075223,1361075224,1361075225,1361075226,1528847387,1528847388,1528847389,1528847390,1528847391,1528847392,1528847393,1528847394,1528847395,1528847396,1528847397,1528847398,1528847399,1528847400,1528847401,1528847402,1528847403,1528847404,1528847405,1528847406,1528847407,1528847408,1528847409,1528847410,1528847411,1528847412,1528847424,1528847425,1528847426,1528847427,1528847428,1528847429,1528847430,1528847431,1528847432,1528847433,1528847434,1528847435,1528847436,1528847437,1528847438,1528847439,1528847440,1528847441,1528847442,1528847443,1528847444,1528847445,1528847446,1528847447,1528847448,1528847449,1528847450,1528847451,1528847452,1528847453,1528847454,1528847455,1528847456,1528847457,1366768477,1366768476,1366768475,1366768225,1361075479,1361075480,1361075481,1361075482,1528847643,1528847644,1528847645,1528847646,1528847647,1528847648,1528847649,1528847650,1528847651,1528847652,1528847653,1528847654,1528847655,1528847656,1528847657,1528847658,1528847659,1528847660,1528847661,1528847662,1528847663,1528847664,1528847665,1528847666,1528847667,1528847668,1528847680,1528847681,1528847682,1528847683,1528847684,1528847685,1528847686,1528847687,1528847688,1528847689,1528847690,1528847691,1528847692,1528847693,1528847694,1528847695,1528847696,1528847697,1528847698,1528847699,1528847700,1528847701,1528847702,1528847703,1528847704,1528847705,1528847706,1528847707,1528847708,1528847709,1528847710,1528847711,1528847712,1528847713,1366768224,1366768223,1366768222,1366768221,1361075735,1361075736,1361075737,1361075738,1528847899,1528847900,1528847901,1528847902,1528847903,1528847904,1528847905,1528847906,1528847907,1528847908,1528847909,1528847910,1528847911,1528847912,1528847913,1528847914,1528847915,1528847916,1528847917,1528847918,1528847919,1528847920,1528847921,1528847922,1528847923,1528847924,1528847936,1528847937,1528847938,1528847939,1528847940,1528847941,1528847942,1528847943,1528847944,1528847945,1528847946,1528847947,1528847948,1528847949,1528847950,1528847951,1528847952,1528847953,1528847954,1528847955,1528847956,1528847957,1528847958,1528847959,1528847960,1528847961,1528847962,1528847963,1528847964,1528847965,1528847966,1528847967,1528847968,1528847969,1366768220,1366768219,1366767969,1366767968,1361075991,1361075992,1361075993,1361075994,1528848155,1528848156,1528848157,1528848158,1528848159,1528848160,1528848161,1528848162,1528848163,1528848164,1528848165,1528848166,1528848167,1528848168,1528848169,1528848170,1528848171,1528848172,1528848173,1528848174,1528848175,1528848176,1528848177,1528848178,1528848179,1528848180,1528848192,1528848193,1528848194,1528848195,1528848196,1528848197,1528848198,1528848199,1528848200,1528848201,1528848202,1528848203,1528848204,1528848205,1528848206,1528848207,1528848208,1528848209,1528848210,1528848211,1528848212,1528848213,1528848214,1528848215,1528848216,1528848217,1528848218,1528848219,1528848220,1528848221,1528848222,1528848223,1528848224,1528848225,1366767967,1366767966,1366767965,1366767964,1361076247,1361076248,1361076249,1361076250,1528848411,1528848412,1528848413,1528848414,1528848415,1528848416,1528848417,1528848418,1528848419,1528848420,1528848421,1528848422,1528848423,1528848424,1528848425,1528848426,1528848427,1528848428,1528848429,1528848430,1528848431,1528848432,1528848433,1528848434,1528848435,1528848436,1528848448,1528848449,1528848450,1528848451,1528848452,1528848453,1528848454,1528848455,1528848456,1528848457,1528848458,1528848459,1528848460,1528848461,1528848462,1528848463,1528848464,1528848465,1528848466,1528848467,1528848468,1528848469,1528848470,1528848471,1528848472,1528848473,1528848474,1528848475,1528848476,1528848477,1528848478,1528848479,1528848480,1528848481,1366767963,1366767713,1366767712,1366767711,1361076503,1361076504,1361076505,1361076506,1528848667,1528848668,1528848669,1528848670,1528848671,1528848672,1528848673,1528848674,1528848675,1528848676,1528848677,1528848678,1528848679,1528848680,1528848681,1528848682,1528848683,1528848684,1528848685,1528848686,1528848687,1528848688,1528848689,1528848690,1528848691,1528848692,1528848704,1528848705,1528848706,1528848707,1528848708,1528848709,1528848710,1528848711,1528848712,1528848713,1528848714,1528848715,1528848716,1528848717,1528848718,1528848719,1528848720,1528848721,1528848722,1528848723,1528848724,1528848725,1528848726,1528848727,1528848728,1528848729,1528848730,1528848731,1528848732,1528848733,1528848734,1528848735,1528848736,1528848737,1361122139,1361122140,1361122141,1361122142,1361122143,1361122144,1361122145,1361122395,1361122396,1361122397,1361122398,1361122399,1361122400,1361122401,1361122651,1361122652,1361122653,1361122654,1361122655,1361122656,1361122657,1361122907,1361122908,1361122909,1361122910,1361122911,1361122912,1361122913,1361123163,1361123164,1361123165,1361123166,1361123167,1361123168,1361123169,1361123419,1361123420,1361123421,1361123422,1361123423,1361123424,1361123425,1361123675,1361123676,1361123677,1361123678,1361123679,1361123680,1361123681,1361123931,1361123932,1361123933,1361123934,1361123935,1361123936,1361123937,1528896347,1528896348,1528896349,1528896350,1528896351,1528896352,1528896353,1528896603,1528896604,1528896605,1528896606,1528896607,1528896608,1528896609,1528896860,1528896861,1528896862,1528896863,1528896864,1528896865,1528897116,1528897117,1528897118,1528897119,1528897120,1528897121,1528897372,1528897373,1528897374,1528897375,1528897376,1528897377,1528897628,1528897629,1528897630,1528897631,1528897632,1528897633,1528897884,1528897885,1528897886,1528897887,1528897888,1528897889,1528898139,1528898140,1528898141,1528898142,1528898143,1528898144,1528898145,1528898395,1528898396,1528898397,1528898398,1528898399,1528898400,1528898401,1528898651,1528898652,1528898653,1528898654,1528898655,1528898656,1528898657,1528898907,1528898908,1528898909,1528898910,1528898911,1528898912,1528898913,1528899163,1528899164,1528899165,1528899166,1528899167,1528899168,1528899169,1528899419,1528899420,1528899421,1528899422,1528899423,1528899424,1528899425,1528899675,1528899676,1528899677,1528899678,1528899679,1528899680,1528899681,1528899931,1528899932,1528899933,1528899934,1528899935,1528899936,1528899937,1528900187,1528900188,1528900189,1528900190,1528900191,1528900192,1528900193,1528900443,1528900444,1528900445,1528900446,1528900447,1528900448,1528900449,1528900699,1528900700,1528900701,1528900702,1528900703,1528900704,1528900705,1528900955,1528900956,1528900957,1528900958,1528900959,1528900960,1528900961,1528901210,1528901211,1528901212,1528901213,1528901214,1528901215,1528901216,1528901217,1528901466,1528901467,1528901468,1528901469,1528901470,1528901471,1528901472,1528901473,1528901722,1528901723,1528901724,1528901725,1528901726,1528901727,1528901728,1528901729,1528901978,1528901979,1528901980,1528901981,1528901982,1528901983,1528901984,1528901985,1528902234,1528902235,1528902236,1528902237,1528902238,1528902239,1528902240,1528902241,1528902490,1528902491,1528902492,1528902493,1528902494,1528902495,1528902496,1528902497,1528902746,1528902747,1528902748,1528902749,1528902750,1528902751,1528902752,1528902753,1528903003,1528903004,1528903005,1528903006,1528903007,1528903008,1528903009,1528903259,1528903260,1528903261,1528903262,1528903263,1528903264,1528903265,1528903515,1528903516,1528903517,1528903518,1528903519,1528903520,1528903521,1528903771,1528903772,1528903773,1528903774,1528903775,1528903776,1528903777,1528904027,1528904028,1528904029,1528904030,1528904031,1528904032,1528904033,1528904283,1528904284,1528904285,1528904286,1528904287,1528904288,1528904289,1528904539,1528904540,1528904541,1528904542,1528904543,1528904544,1528904545,1528904795,1528904796,1528904797,1528904798,1528904799,1528904800,1528904801,1528905033,1528905034,1528905035,1528905036,1528905037,1528905038,1528905039,1528905051,1528905052,1528905053,1528905054,1528905055,1528905056,1528905057,1528905289,1528905290,1528905291,1528905292,1528905293,1528905294,1528905295,1528905307,1528905308,1528905309,1528905310,1528905311,1528905312,1528905313,1528905545,1528905546,1528905547,1528905548,1528905549,1528905550,1528905551,1528905552,1528905562,1528905563,1528905564,1528905565,1528905566,1528905567,1528905568,1528905569,1528905801,1528905802,1528905803,1528905804,1528905805,1528905806,1528905807,1528905808,1528905809,1528905810,1528905811,1528905812,1528905813,1528905814,1528905815,1528905816,1528905817,1528905818,1528905819,1528905820,1528905821,1528905822,1528905823,1528905824,1528905825,1528906057,1528906058,1528906059,1528906060,1528906061,1528906062,1528906063,1528906064,1528906065,1528906066,1528906067,1528906068,1528906069,1528906070,1528906071,1528906072,1528906073,1528906074,1528906075,1528906076,1528906077,1528906078,1528906079,1528906080,1528906081,1528906313,1528906314,1528906315,1528906316,1528906317,1528906318,1528906319,1528906320,1528906321,1528906322,1528906323,1528906324,1528906325,1528906326,1528906327,1528906328,1528906329,1528906330,1528906331,1528906332,1528906333,1528906334,1528906335,1528906336,1528906337,1528906569,1528906570,1528906571,1528906572,1528906573,1528906574,1528906575,1528906576,1528906577,1528906578,1528906579,1528906580,1528906581,1528906582,1528906583,1528906584,1528906585,1528906586,1528906587,1528906588,1528906589,1528906590,1528906591,1528906592,1528906593,1528906825,1528906826,1528906827,1528906828,1528906829,1528906830,1528906831,1528906832,1528906833,1528906834,1528906835,1528906836,1528906837,1528906838,1528906839,1528906840,1528906841,1528906842,1528906843,1528906844,1528906845,1528906846,1528906847,1528906848,1528906849,1528907081,1528907082,1528907083,1528907084,1528907085,1528907086,1528907087,1528907088,1528907089,1528907090,1528907091,1528907092,1528907093,1528907094,1528907095,1528907096,1528907097,1528907098,1528907099,1528907100,1528907101,1528907102,1528907103,1528907104,1528907105,1528907337,1528907338,1528907339,1528907340,1528907341,1528907342,1528907343,1528907344,1528907345,1528907346,1528907347,1528907348,1528907349,1528907350,1528907351,1528907352,1528907353,1528907354,1528907355,1528907356,1528907357,1528907358,1528907359,1528907360,1528907361,1528907593,1528907594,1528907595,1528907596,1528907597,1528907598,1528907599,1528907600,1528907601,1528907602,1528907603,1528907604,1528907605,1528907606,1528907607,1528907608,1528907609,1528907610,1528907611,1528907612,1528907613,1528907614,1528907615,1528907616,1528907617,1528907849,1528907850,1528907851,1528907852,1528907853,1528907854,1528907855,1528907856,1528907857,1528907858,1528907859,1528907860,1528907861,1528907862,1528907863,1528907864,1528907865,1528907866,1528907867,1528907868,1528907869,1528907870,1528907871,1528907872,1528907873,1528908105,1528908106,1528908107,1528908108,1528908109,1528908110,1528908111,1528908112,1528908113,1528908114,1528908115,1528908116,1528908117,1528908118,1528908119,1528908120,1528908121,1528908122,1528908123,1528908124,1528908125,1528908126,1528908127,1528908128,1528908129,1528908362,1528908363,1528908364,1528908365,1528908366,1528908367,1528908368,1528908369,1528908370,1528908371,1528908372,1528908373,1528908374,1528908375,1528908376,1528908377,1528908378,1528908379,1528908380,1528908381,1528908382,1528908383,1528908384,1528908385,1528908618,1528908619,1528908620,1528908621,1528908622,1528908623,1528908624,1528908625,1528908626,1528908627,1528908628,1528908629,1528908630,1528908631,1528908632,1528908633,1528908634,1528908635,1528908636,1528908637,1528908638,1528908639,1528908640,1528908641,1528908874,1528908875,1528908876,1528908877,1528908878,1528908879,1528908880,1528908881,1528908882,1528908883,1528908884,1528908885,1528908886,1528908887,1528908888,1528908889,1528908890,1528908891,1528908892,1528908893,1528908894,1528908895,1528908896,1528908897,1528909130,1528909131,1528909132,1528909133,1528909134,1528909135,1528909136,1528909137,1528909138,1528909139,1528909140,1528909141,1528909142,1528909143,1528909144,1528909145,1528909146,1528909147,1528909148,1528909149,1528909150,1528909151,1528909152,1528909153,1528909386,1528909387,1528909388,1528909389,1528909390,1528909391,1528909392,1528909393,1528909394,1528909395,1528909396,1528909397,1528909398,1528909399,1528909400,1528909401,1528909402,1528909403,1528909404,1528909405,1528909406,1528909407,1528909408,1528909409,1528909641,1528909642,1528909643,1528909644,1528909645,1528909646,1528909647,1528909648,1528909649,1528909650,1528909651,1528909652,1528909653,1528909654,1528909655,1528909656,1528909657,1528909658,1528909659,1528909660,1528909661,1528909662,1528909663,1528909664,1528909665,1528909897,1528909898,1528909899,1528909900,1528909901,1528909902,1528909903,1528909904,1528909905,1528909906,1528909907,1528909908,1528909909,1528909910,1528909911,1528909912,1528909913,1528909914,1528909915,1528909916,1528909917,1528909918,1528909919,1528909920,1528909921,1528910152,1528910153,1528910154,1528910155,1528910156,1528910157,1528910158,1528910159,1528910160,1528910161,1528910162,1528910163,1528910164,1528910165,1528910166,1528910167,1528910168,1528910169,1528910170,1528910171,1528910172,1528910173,1528910174,1528910175,1528910176,1528910177,1528910364,1528910365,1528910366,1528910367,1528910368,1528910369,1528910370,1528910371,1528910372,1528910373,1528910374,1528910375,1528910376,1528910377,1528910378,1528910379,1528910380,1528910381,1528910382,1528910383,1528910384,1528910385,1528910386,1528910387,1528910388,1528910389,1528910390,1528910391,1528910392,1528910393,1528910394,1528910395,1528910396,1528910397,1528910398,1528910399,1528910400,1528910401,1528910402,1528910403,1528910404,1528910405,1528910406,1528910407,1528910408,1528910409,1528910410,1528910411,1528910412,1528910413,1528910414,1528910415,1528910416,1528910417,1528910418,1528910419,1528910420,1528910421,1528910422,1528910423,1528910424,1528910425,1528910426,1528910427,1528910428,1528910429,1528910430,1528910431,1528910432,1528910433,1528910620,1528910621,1528910622,1528910623,1528910624,1528910625,1528910626,1528910627,1528910628,1528910629,1528910630,1528910631,1528910632,1528910633,1528910634,1528910635,1528910636,1528910637,1528910638,1528910639,1528910640,1528910641,1528910642,1528910643,1528910644,1528910645,1528910646,1528910647,1528910648,1528910649,1528910650,1528910651,1528910652,1528910653,1528910654,1528910655,1528910656,1528910657,1528910658,1528910659,1528910660,1528910661,1528910662,1528910663,1528910664,1528910665,1528910666,1528910667,1528910668,1528910669,1528910670,1528910671,1528910672,1528910673,1528910674,1528910675,1528910676,1528910677,1528910678,1528910679,1528910680,1528910681,1528910682,1528910683,1528910684,1528910685,1528910686,1528910687,1528910688,1528910689,1528910876,1528910877,1528910878,1528910879,1528910880,1528910881,1528910882,1528910883,1528910884,1528910885,1528910886,1528910887,1528910888,1528910889,1528910890,1528910891,1528910892,1528910893,1528910894,1528910895,1528910896,1528910897,1528910898,1528910899,1528910900,1528910901,1528910902,1528910903,1528910904,1528910905,1528910906,1528910907,1528910908,1528910909,1528910910,1528910911,1528910912,1528910913,1528910914,1528910915,1528910916,1528910917,1528910918,1528910919,1528910920,1528910921,1528910922,1528910923,1528910924,1528910925,1528910926,1528910927,1528910928,1528910929,1528910930,1528910931,1528910932,1528910933,1528910934,1528910935,1528910936,1528910937,1528910938,1528910939,1528910940,1528910941,1528910942,1528910943,1528910944,1528910945,1528911132,1528911133,1528911134,1528911135,1528911136,1528911137,1528911138,1528911139,1528911140,1528911141,1528911142,1528911143,1528911144,1528911145,1528911146,1528911147,1528911148,1528911149,1528911150,1528911151,1528911152,1528911153,1528911154,1528911155,1528911156,1528911157,1528911158,1528911159,1528911160,1528911161,1528911162,1528911163,1528911164,1528911165,1528911166,1528911167,1528911168,1528911169,1528911170,1528911171,1528911172,1528911173,1528911174,1528911175,1528911176,1528911177,1528911178,1528911179,1528911180,1528911181,1528911182,1528911183,1528911184,1528911185,1528911186,1528911187,1528911188,1528911189,1528911190,1528911191,1528911192,1528911193,1528911194,1528911195,1528911196,1528911197,1528911198,1528911199,1528911200,1528911201,1528911388,1528911389,1528911390,1528911391,1528911392,1528911393,1528911394,1528911395,1528911396,1528911397,1528911398,1528911399,1528911400,1528911401,1528911402,1528911403,1528911404,1528911405,1528911406,1528911407,1528911408,1528911409,1528911410,1528911411,1528911412,1528911413,1528911414,1528911415,1528911416,1528911417,1528911418,1528911419,1528911420,1528911421,1528911422,1528911423,1528911424,1528911425,1528911426,1528911427,1528911428,1528911429,1528911430,1528911431,1528911432,1528911433,1528911434,1528911435,1528911436,1528911437,1528911438,1528911439,1528911440,1528911441,1528911442,1528911443,1528911444,1528911445,1528911446,1528911447,1528911448,1528911449,1528911450,1528911451,1528911452,1528911453,1528911454,1528911455,1528911456,1528911457,1528911644,1528911645,1528911646,1528911647,1528911648,1528911649,1528911650,1528911651,1528911652,1528911653,1528911654,1528911655,1528911656,1528911657,1528911658,1528911659,1528911660,1528911661,1528911662,1528911663,1528911664,1528911665,1528911666,1528911667,1528911668,1528911669,1528911670,1528911671,1528911672,1528911673,1528911674,1528911675,1528911676,1528911677,1528911678,1528911679,1528911680,1528911681,1528911682,1528911683,1528911684,1528911685,1528911686,1528911687,1528911688,1528911689,1528911690,1528911691,1528911692,1528911693,1528911694,1528911695,1528911696,1528911697,1528911698,1528911699,1528911700,1528911701,1528911702,1528911703,1528911704,1528911705,1528911706,1528911707,1528911708,1528911709,1528911710,1528911711,1528911712,1528911713,1528911900,1528911901,1528911902,1528911903,1528911904,1528911905,1528911906,1528911907,1528911908,1528911909,1528911910,1528911911,1528911912,1528911913,1528911914,1528911915,1528911916,1528911917,1528911918,1528911919,1528911920,1528911921,1528911922,1528911923,1528911924,1528911925,1528911926,1528911927,1528911928,1528911929,1528911930,1528911931,1528911932,1528911933,1528911934,1528911935,1528911936,1528911937,1528911938,1528911939,1528911940,1528911941,1528911942,1528911943,1528911944,1528911945,1528911946,1528911947,1528911948,1528911949,1528911950,1528911951,1528911952,1528911953,1528911954,1528911955,1528911956,1528911957,1528911958,1528911959,1528911960,1528911961,1528911962,1528911963,1528911964,1528911965,1528911966,1528911967,1528911968,1528911969,1528912156,1528912157,1528912158,1528912159,1528912160,1528912161,1528912162,1528912163,1528912164,1528912165,1528912166,1528912167,1528912168,1528912169,1528912170,1528912171,1528912172,1528912173,1528912174,1528912175,1528912176,1528912177,1528912178,1528912179,1528912180,1528912181,1528912191,1528912192,1528912193,1528912194,1528912195,1528912196,1528912197,1528912198,1528912199,1528912200,1528912201,1528912202,1528912203,1528912204,1528912205,1528912206,1528912207,1528912208,1528912209,1528912210,1528912211,1528912212,1528912213,1528912214,1528912215,1528912216,1528912217,1528912218,1528912219,1528912220,1528912221,1528912222,1528912223,1528912224,1528912225,1528912411,1528912412,1528912413,1528912414,1528912415,1528912416,1528912417,1528912418,1528912419,1528912420,1528912421,1528912422,1528912423,1528912424,1528912425,1528912426,1528912427,1528912428,1528912429,1528912430,1528912431,1528912432,1528912433,1528912434,1528912435,1528912436,1528912448,1528912449,1528912450,1528912451,1528912452,1528912453,1528912454,1528912455,1528912456,1528912457,1528912458,1528912459,1528912460,1528912461,1528912462,1528912463,1528912464,1528912465,1528912466,1528912467,1528912468,1528912469,1528912470,1528912471,1528912472,1528912473,1528912474,1528912475,1528912476,1528912477,1528912478,1528912479,1528912480,1528912481,1366767710,1366767709,1366767708,1366767707,1361140503,1361140504,1361140505,1361140506,1528912667,1528912668,1528912669,1528912670,1528912671,1528912672,1528912673,1528912674,1528912675,1528912676,1528912677,1528912678,1528912679,1528912680,1528912681,1528912682,1528912683,1528912684,1528912685,1528912686,1528912687,1528912688,1528912689,1528912690,1528912691,1528912692,1528912704,1528912705,1528912706,1528912707,1528912708,1528912709,1528912710,1528912711,1528912712,1528912713,1528912714,1528912715,1528912716,1528912717,1528912718,1528912719,1528912720,1528912721,1528912722,1528912723,1528912724,1528912725,1528912726,1528912727,1528912728,1528912729,1528912730,1528912731,1528912732,1528912733,1528912734,1528912735,1528912736,1528912737,1366767457,1366767456,1366767455,1366767454,1361140759,1361140760,1361140761,1361140762,1528912923,1528912924,1528912925,1528912926,1528912927,1528912928,1528912929,1528912930,1528912931,1528912932,1528912933,1528912934,1528912935,1528912936,1528912937,1528912938,1528912939,1528912940,1528912941,1528912942,1528912943,1528912944,1528912945,1528912946,1528912947,1528912948,1528912960,1528912961,1528912962,1528912963,1528912964,1528912965,1528912966,1528912967,1528912968,1528912969,1528912970,1528912971,1528912972,1528912973,1528912974,1528912975,1528912976,1528912977,1528912978,1528912979,1528912980,1528912981,1528912982,1528912983,1528912984,1528912985,1528912986,1528912987,1528912988,1528912989,1528912990,1528912991,1528912992,1528912993,1366767453,1366767452,1366767451,1366767201,1361141015,1361141016,1361141017,1361141018,1528913179,1528913180,1528913181,1528913182,1528913183,1528913184,1528913185,1528913186,1528913187,1528913188,1528913189,1528913190,1528913191,1528913192,1528913193,1528913194,1528913195,1528913196,1528913197,1528913198,1528913199,1528913200,1528913201,1528913202,1528913203,1528913204,1528913216,1528913217,1528913218,1528913219,1528913220,1528913221,1528913222,1528913223,1528913224,1528913225,1528913226,1528913227,1528913228,1528913229,1528913230,1528913231,1528913232,1528913233,1528913234,1528913235,1528913236,1528913237,1528913238,1528913239,1528913240,1528913241,1528913242,1528913243,1528913244,1528913245,1528913246,1528913247,1528913248,1528913249,1366767200,1366767199,1366767198,1366767197,1361141271,1361141272,1361141273,1361141274,1528913435,1528913436,1528913437,1528913438,1528913439,1528913440,1528913441,1528913442,1528913443,1528913444,1528913445,1528913446,1528913447,1528913448,1528913449,1528913450,1528913451,1528913452,1528913453,1528913454,1528913455,1528913456,1528913457,1528913458,1528913459,1528913460,1528913472,1528913473,1528913474,1528913475,1528913476,1528913477,1528913478,1528913479,1528913480,1528913481,1528913482,1528913483,1528913484,1528913485,1528913486,1528913487,1528913488,1528913489,1528913490,1528913491,1528913492,1528913493,1528913494,1528913495,1528913496,1528913497,1528913498,1528913499,1528913500,1528913501,1528913502,1528913503,1528913504,1528913505,1366767196,1366767195,1366766945,1366766944,1361141527,1361141528,1361141529,1361141530,1528913691,1528913692,1528913693,1528913694,1528913695,1528913696,1528913697,1528913698,1528913699,1528913700,1528913701,1528913702,1528913703,1528913704,1528913705,1528913706,1528913707,1528913708,1528913709,1528913710,1528913711,1528913712,1528913713,1528913714,1528913715,1528913716,1528913728,1528913729,1528913730,1528913731,1528913732,1528913733,1528913734,1528913735,1528913736,1528913737,1528913738,1528913739,1528913740,1528913741,1528913742,1528913743,1528913744,1528913745,1528913746,1528913747,1528913748,1528913749,1528913750,1528913751,1528913752,1528913753,1528913754,1528913755,1528913756,1528913757,1528913758,1528913759,1528913760,1528913761,1366766943,1366766942,1366766941,1366766940,1361141783,1361141784,1361141785,1361141786,1528913947,1528913948,1528913949,1528913950,1528913951,1528913952,1528913953,1528913954,1528913955,1528913956,1528913957,1528913958,1528913959,1528913960,1528913961,1528913962,1528913963,1528913964,1528913965,1528913966,1528913967,1528913968,1528913969,1528913970,1528913971,1528913972,1528913984,1528913985,1528913986,1528913987,1528913988,1528913989,1528913990,1528913991,1528913992,1528913993,1528913994,1528913995,1528913996,1528913997,1528913998,1528913999,1528914000,1528914001,1528914002,1528914003,1528914004,1528914005,1528914006,1528914007,1528914008,1528914009,1528914010,1528914011,1528914012,1528914013,1528914014,1528914015,1528914016,1528914017,1366766939,1366766689,1366766688,1366766687,1361142039,1361142040,1361142041,1361142042,1528914203,1528914204,1528914205,1528914206,1528914207,1528914208,1528914209,1528914210,1528914211,1528914212,1528914213,1528914214,1528914215,1528914216,1528914217,1528914218,1528914219,1528914220,1528914221,1528914222,1528914223,1528914224,1528914225,1528914226,1528914227,1528914228,1528914240,1528914241,1528914242,1528914243,1528914244,1528914245,1528914246,1528914247,1528914248,1528914249,1528914250,1528914251,1528914252,1528914253,1528914254,1528914255,1528914256,1528914257,1528914258,1528914259,1528914260,1528914261,1528914262,1528914263,1528914264,1528914265,1528914266,1528914267,1528914268,1528914269,1528914270,1528914271,1528914272,1528914273,1361187675,1361187676,1361187677,1361187678,1361187679,1361187680,1361187681,1361187931,1361187932,1361187933,1361187934,1361187935,1361187936,1361187937,1361188187,1361188188,1361188189,1361188190,1361188191,1361188192,1361188193,1361188443,1361188444,1361188445,1361188446,1361188447,1361188448,1361188449,1361188699,1361188700,1361188701,1361188702,1361188703,1361188704,1361188705,1361188955,1361188956,1361188957,1361188958,1361188959,1361188960,1361188961,1361189211,1361189212,1361189213,1361189214,1361189215,1361189216,1361189217,1361189467,1361189468,1361189469,1361189470,1361189471,1361189472,1361189473,1528961883,1528961884,1528961885,1528961886,1528961887,1528961888,1528961889,1528962139,1528962140,1528962141,1528962142,1528962143,1528962144,1528962145,1528962395,1528962396,1528962397,1528962398,1528962399,1528962400,1528962401,1528962651,1528962652,1528962653,1528962654,1528962655,1528962656,1528962657,1528962907,1528962908,1528962909,1528962910,1528962911,1528962912,1528962913,1528963163,1528963164,1528963165,1528963166,1528963167,1528963168,1528963169,1528963419,1528963420,1528963421,1528963422,1528963423,1528963424,1528963425,1528963675,1528963676,1528963677,1528963678,1528963679,1528963680,1528963681,1528963931,1528963932,1528963933,1528963934,1528963935,1528963936,1528963937,1528964187,1528964188,1528964189,1528964190,1528964191,1528964192,1528964193,1528964443,1528964444,1528964445,1528964446,1528964447,1528964448,1528964449,1528964699,1528964700,1528964701,1528964702,1528964703,1528964704,1528964705,1528964955,1528964956,1528964957,1528964958,1528964959,1528964960,1528964961,1528965211,1528965212,1528965213,1528965214,1528965215,1528965216,1528965217,1528965467,1528965468,1528965469,1528965470,1528965471,1528965472,1528965473,1528965723,1528965724,1528965725,1528965726,1528965727,1528965728,1528965729,1528965979,1528965980,1528965981,1528965982,1528965983,1528965984,1528965985,1528966235,1528966236,1528966237,1528966238,1528966239,1528966240,1528966241,1528966491,1528966492,1528966493,1528966494,1528966495,1528966496,1528966497,1528966746,1528966747,1528966748,1528966749,1528966750,1528966751,1528966752,1528966753,1528967002,1528967003,1528967004,1528967005,1528967006,1528967007,1528967008,1528967009,1528967258,1528967259,1528967260,1528967261,1528967262,1528967263,1528967264,1528967265,1528967514,1528967515,1528967516,1528967517,1528967518,1528967519,1528967520,1528967521,1528967770,1528967771,1528967772,1528967773,1528967774,1528967775,1528967776,1528967777,1528968026,1528968027,1528968028,1528968029,1528968030,1528968031,1528968032,1528968033,1528968282,1528968283,1528968284,1528968285,1528968286,1528968287,1528968288,1528968289,1528968539,1528968540,1528968541,1528968542,1528968543,1528968544,1528968545,1528968795,1528968796,1528968797,1528968798,1528968799,1528968800,1528968801,1528969051,1528969052,1528969053,1528969054,1528969055,1528969056,1528969057,1528969307,1528969308,1528969309,1528969310,1528969311,1528969312,1528969313,1528969563,1528969564,1528969565,1528969566,1528969567,1528969568,1528969569,1528969819,1528969820,1528969821,1528969822,1528969823,1528969824,1528969825,1528970075,1528970076,1528970077,1528970078,1528970079,1528970080,1528970081,1528970331,1528970332,1528970333,1528970334,1528970335,1528970336,1528970337,1528970587,1528970588,1528970589,1528970590,1528970591,1528970592,1528970593,1528970825,1528970826,1528970827,1528970828,1528970829,1528970830,1528970831,1528970843,1528970844,1528970845,1528970846,1528970847,1528970848,1528970849,1528971081,1528971082,1528971083,1528971084,1528971085,1528971086,1528971087,1528971088,1528971098,1528971099,1528971100,1528971101,1528971102,1528971103,1528971104,1528971105,1528971337,1528971338,1528971339,1528971340,1528971341,1528971342,1528971343,1528971344,1528971345,1528971346,1528971347,1528971348,1528971349,1528971350,1528971351,1528971352,1528971353,1528971354,1528971355,1528971356,1528971357,1528971358,1528971359,1528971360,1528971361,1528971593,1528971594,1528971595,1528971596,1528971597,1528971598,1528971599,1528971600,1528971601,1528971602,1528971603,1528971604,1528971605,1528971606,1528971607,1528971608,1528971609,1528971610,1528971611,1528971612,1528971613,1528971614,1528971615,1528971616,1528971617,1528971849,1528971850,1528971851,1528971852,1528971853,1528971854,1528971855,1528971856,1528971857,1528971858,1528971859,1528971860,1528971861,1528971862,1528971863,1528971864,1528971865,1528971866,1528971867,1528971868,1528971869,1528971870,1528971871,1528971872,1528971873,1528972105,1528972106,1528972107,1528972108,1528972109,1528972110,1528972111,1528972112,1528972113,1528972114,1528972115,1528972116,1528972117,1528972118,1528972119,1528972120,1528972121,1528972122,1528972123,1528972124,1528972125,1528972126,1528972127,1528972128,1528972129,1528972361,1528972362,1528972363,1528972364,1528972365,1528972366,1528972367,1528972368,1528972369,1528972370,1528972371,1528972372,1528972373,1528972374,1528972375,1528972376,1528972377,1528972378,1528972379,1528972380,1528972381,1528972382,1528972383,1528972384,1528972385,1528972617,1528972618,1528972619,1528972620,1528972621,1528972622,1528972623,1528972624,1528972625,1528972626,1528972627,1528972628,1528972629,1528972630,1528972631,1528972632,1528972633,1528972634,1528972635,1528972636,1528972637,1528972638,1528972639,1528972640,1528972641,1528972873,1528972874,1528972875,1528972876,1528972877,1528972878,1528972879,1528972880,1528972881,1528972882,1528972883,1528972884,1528972885,1528972886,1528972887,1528972888,1528972889,1528972890,1528972891,1528972892,1528972893,1528972894,1528972895,1528972896,1528972897,1528973129,1528973130,1528973131,1528973132,1528973133,1528973134,1528973135,1528973136,1528973137,1528973138,1528973139,1528973140,1528973141,1528973142,1528973143,1528973144,1528973145,1528973146,1528973147,1528973148,1528973149,1528973150,1528973151,1528973152,1528973153,1528973385,1528973386,1528973387,1528973388,1528973389,1528973390,1528973391,1528973392,1528973393,1528973394,1528973395,1528973396,1528973397,1528973398,1528973399,1528973400,1528973401,1528973402,1528973403,1528973404,1528973405,1528973406,1528973407,1528973408,1528973409,1528973641,1528973642,1528973643,1528973644,1528973645,1528973646,1528973647,1528973648,1528973649,1528973650,1528973651,1528973652,1528973653,1528973654,1528973655,1528973656,1528973657,1528973658,1528973659,1528973660,1528973661,1528973662,1528973663,1528973664,1528973665,1528973897,1528973898,1528973899,1528973900,1528973901,1528973902,1528973903,1528973904,1528973905,1528973906,1528973907,1528973908,1528973909,1528973910,1528973911,1528973912,1528973913,1528973914,1528973915,1528973916,1528973917,1528973918,1528973919,1528973920,1528973921,1528974153,1528974154,1528974155,1528974156,1528974157,1528974158,1528974159,1528974160,1528974161,1528974162,1528974163,1528974164,1528974165,1528974166,1528974167,1528974168,1528974169,1528974170,1528974171,1528974172,1528974173,1528974174,1528974175,1528974176,1528974177,1528974409,1528974410,1528974411,1528974412,1528974413,1528974414,1528974415,1528974416,1528974417,1528974418,1528974419,1528974420,1528974421,1528974422,1528974423,1528974424,1528974425,1528974426,1528974427,1528974428,1528974429,1528974430,1528974431,1528974432,1528974433,1528974665,1528974666,1528974667,1528974668,1528974669,1528974670,1528974671,1528974672,1528974673,1528974674,1528974675,1528974676,1528974677,1528974678,1528974679,1528974680,1528974681,1528974682,1528974683,1528974684,1528974685,1528974686,1528974687,1528974688,1528974689,1528974921,1528974922,1528974923,1528974924,1528974925,1528974926,1528974927,1528974928,1528974929,1528974930,1528974931,1528974932,1528974933,1528974934,1528974935,1528974936,1528974937,1528974938,1528974939,1528974940,1528974941,1528974942,1528974943,1528974944,1528974945,1528975177,1528975178,1528975179,1528975180,1528975181,1528975182,1528975183,1528975184,1528975185,1528975186,1528975187,1528975188,1528975189,1528975190,1528975191,1528975192,1528975193,1528975194,1528975195,1528975196,1528975197,1528975198,1528975199,1528975200,1528975201,1528975433,1528975434,1528975435,1528975436,1528975437,1528975438,1528975439,1528975440,1528975441,1528975442,1528975443,1528975444,1528975445,1528975446,1528975447,1528975448,1528975449,1528975450,1528975451,1528975452,1528975453,1528975454,1528975455,1528975456,1528975457,1528975688,1528975689,1528975690,1528975691,1528975692,1528975693,1528975694,1528975695,1528975696,1528975697,1528975698,1528975699,1528975700,1528975701,1528975702,1528975703,1528975704,1528975705,1528975706,1528975707,1528975708,1528975709,1528975710,1528975711,1528975712,1528975713,1528975900,1528975901,1528975902,1528975903,1528975904,1528975905,1528975906,1528975907,1528975908,1528975909,1528975910,1528975911,1528975912,1528975913,1528975914,1528975915,1528975916,1528975917,1528975918,1528975919,1528975920,1528975921,1528975922,1528975923,1528975924,1528975925,1528975926,1528975927,1528975928,1528975929,1528975930,1528975931,1528975932,1528975933,1528975934,1528975935,1528975936,1528975937,1528975938,1528975939,1528975940,1528975941,1528975942,1528975943,1528975944,1528975945,1528975946,1528975947,1528975948,1528975949,1528975950,1528975951,1528975952,1528975953,1528975954,1528975955,1528975956,1528975957,1528975958,1528975959,1528975960,1528975961,1528975962,1528975963,1528975964,1528975965,1528975966,1528975967,1528975968,1528975969,1528976156,1528976157,1528976158,1528976159,1528976160,1528976161,1528976162,1528976163,1528976164,1528976165,1528976166,1528976167,1528976168,1528976169,1528976170,1528976171,1528976172,1528976173,1528976174,1528976175,1528976176,1528976177,1528976178,1528976179,1528976180,1528976181,1528976182,1528976183,1528976184,1528976185,1528976186,1528976187,1528976188,1528976189,1528976190,1528976191,1528976192,1528976193,1528976194,1528976195,1528976196,1528976197,1528976198,1528976199,1528976200,1528976201,1528976202,1528976203,1528976204,1528976205,1528976206,1528976207,1528976208,1528976209,1528976210,1528976211,1528976212,1528976213,1528976214,1528976215,1528976216,1528976217,1528976218,1528976219,1528976220,1528976221,1528976222,1528976223,1528976224,1528976225,1528976412,1528976413,1528976414,1528976415,1528976416,1528976417,1528976418,1528976419,1528976420,1528976421,1528976422,1528976423,1528976424,1528976425,1528976426,1528976427,1528976428,1528976429,1528976430,1528976431,1528976432,1528976433,1528976434,1528976435,1528976436,1528976437,1528976438,1528976439,1528976440,1528976441,1528976442,1528976443,1528976444,1528976445,1528976446,1528976447,1528976448,1528976449,1528976450,1528976451,1528976452,1528976453,1528976454,1528976455,1528976456,1528976457,1528976458,1528976459,1528976460,1528976461,1528976462,1528976463,1528976464,1528976465,1528976466,1528976467,1528976468,1528976469,1528976470,1528976471,1528976472,1528976473,1528976474,1528976475,1528976476,1528976477,1528976478,1528976479,1528976480,1528976481,1528976668,1528976669,1528976670,1528976671,1528976672,1528976673,1528976674,1528976675,1528976676,1528976677,1528976678,1528976679,1528976680,1528976681,1528976682,1528976683,1528976684,1528976685,1528976686,1528976687,1528976688,1528976689,1528976690,1528976691,1528976692,1528976693,1528976694,1528976695,1528976696,1528976697,1528976698,1528976699,1528976700,1528976701,1528976702,1528976703,1528976704,1528976705,1528976706,1528976707,1528976708,1528976709,1528976710,1528976711,1528976712,1528976713,1528976714,1528976715,1528976716,1528976717,1528976718,1528976719,1528976720,1528976721,1528976722,1528976723,1528976724,1528976725,1528976726,1528976727,1528976728,1528976729,1528976730,1528976731,1528976732,1528976733,1528976734,1528976735,1528976736,1528976737,1528976924,1528976925,1528976926,1528976927,1528976928,1528976929,1528976930,1528976931,1528976932,1528976933,1528976934,1528976935,1528976936,1528976937,1528976938,1528976939,1528976940,1528976941,1528976942,1528976943,1528976944,1528976945,1528976946,1528976947,1528976948,1528976949,1528976950,1528976951,1528976952,1528976953,1528976954,1528976955,1528976956,1528976957,1528976958,1528976959,1528976960,1528976961,1528976962,1528976963,1528976964,1528976965,1528976966,1528976967,1528976968,1528976969,1528976970,1528976971,1528976972,1528976973,1528976974,1528976975,1528976976,1528976977,1528976978,1528976979,1528976980,1528976981,1528976982,1528976983,1528976984,1528976985,1528976986,1528976987,1528976988,1528976989,1528976990,1528976991,1528976992,1528976993,1528977180,1528977181,1528977182,1528977183,1528977184,1528977185,1528977186,1528977187,1528977188,1528977189,1528977190,1528977191,1528977192,1528977193,1528977194,1528977195,1528977196,1528977197,1528977198,1528977199,1528977200,1528977201,1528977202,1528977203,1528977204,1528977205,1528977206,1528977207,1528977208,1528977209,1528977210,1528977211,1528977212,1528977213,1528977214,1528977215,1528977216,1528977217,1528977218,1528977219,1528977220,1528977221,1528977222,1528977223,1528977224,1528977225,1528977226,1528977227,1528977228,1528977229,1528977230,1528977231,1528977232,1528977233,1528977234,1528977235,1528977236,1528977237,1528977238,1528977239,1528977240,1528977241,1528977242,1528977243,1528977244,1528977245,1528977246,1528977247,1528977248,1528977249,1528977436,1528977437,1528977438,1528977439,1528977440,1528977441,1528977442,1528977443,1528977444,1528977445,1528977446,1528977447,1528977448,1528977449,1528977450,1528977451,1528977452,1528977453,1528977454,1528977455,1528977456,1528977457,1528977458,1528977459,1528977460,1528977461,1528977462,1528977463,1528977464,1528977465,1528977466,1528977467,1528977468,1528977469,1528977470,1528977471,1528977472,1528977473,1528977474,1528977475,1528977476,1528977477,1528977478,1528977479,1528977480,1528977481,1528977482,1528977483,1528977484,1528977485,1528977486,1528977487,1528977488,1528977489,1528977490,1528977491,1528977492,1528977493,1528977494,1528977495,1528977496,1528977497,1528977498,1528977499,1528977500,1528977501,1528977502,1528977503,1528977504,1528977505,1528977692,1528977693,1528977694,1528977695,1528977696,1528977697,1528977698,1528977699,1528977700,1528977701,1528977702,1528977703,1528977704,1528977705,1528977706,1528977707,1528977708,1528977709,1528977710,1528977711,1528977712,1528977713,1528977714,1528977715,1528977716,1528977717,1528977727,1528977728,1528977729,1528977730,1528977731,1528977732,1528977733,1528977734,1528977735,1528977736,1528977737,1528977738,1528977739,1528977740,1528977741,1528977742,1528977743,1528977744,1528977745,1528977746,1528977747,1528977748,1528977749,1528977750,1528977751,1528977752,1528977753,1528977754,1528977755,1528977756,1528977757,1528977758,1528977759,1528977760,1528977761,1528977947,1528977948,1528977949,1528977950,1528977951,1528977952,1528977953,1528977954,1528977955,1528977956,1528977957,1528977958,1528977959,1528977960,1528977961,1528977962,1528977963,1528977964,1528977965,1528977966,1528977967,1528977968,1528977969,1528977970,1528977971,1528977972,1528977984,1528977985,1528977986,1528977987,1528977988,1528977989,1528977990,1528977991,1528977992,1528977993,1528977994,1528977995,1528977996,1528977997,1528977998,1528977999,1528978000,1528978001,1528978002,1528978003,1528978004,1528978005,1528978006,1528978007,1528978008,1528978009,1528978010,1528978011,1528978012,1528978013,1528978014,1528978015,1528978016,1528978017,1366766686,1366766685,1366766684,1366766683,1361206039,1361206040,1361206041,1361206042,1528978203,1528978204,1528978205,1528978206,1528978207,1528978208,1528978209,1528978210,1528978211,1528978212,1528978213,1528978214,1528978215,1528978216,1528978217,1528978218,1528978219,1528978220,1528978221,1528978222,1528978223,1528978224,1528978225,1528978226,1528978227,1528978228,1528978240,1528978241,1528978242,1528978243,1528978244,1528978245,1528978246,1528978247,1528978248,1528978249,1528978250,1528978251,1528978252,1528978253,1528978254,1528978255,1528978256,1528978257,1528978258,1528978259,1528978260,1528978261,1528978262,1528978263,1528978264,1528978265,1528978266,1528978267,1528978268,1528978269,1528978270,1528978271,1528978272,1528978273,1366766433,1366766432,1366766431,1366766430,1361206295,1361206296,1361206297,1361206298,1528978459,1528978460,1528978461,1528978462,1528978463,1528978464,1528978465,1528978466,1528978467,1528978468,1528978469,1528978470,1528978471,1528978472,1528978473,1528978474,1528978475,1528978476,1528978477,1528978478,1528978479,1528978480,1528978481,1528978482,1528978483,1528978484,1528978496,1528978497,1528978498,1528978499,1528978500,1528978501,1528978502,1528978503,1528978504,1528978505,1528978506,1528978507,1528978508,1528978509,1528978510,1528978511,1528978512,1528978513,1528978514,1528978515,1528978516,1528978517,1528978518,1528978519,1528978520,1528978521,1528978522,1528978523,1528978524,1528978525,1528978526,1528978527,1528978528,1528978529,1366766429,1366766428,1366766427,1366766177,1361206551,1361206552,1361206553,1361206554,1528978715,1528978716,1528978717,1528978718,1528978719,1528978720,1528978721,1528978722,1528978723,1528978724,1528978725,1528978726,1528978727,1528978728,1528978729,1528978730,1528978731,1528978732,1528978733,1528978734,1528978735,1528978736,1528978737,1528978738,1528978739,1528978740,1528978752,1528978753,1528978754,1528978755,1528978756,1528978757,1528978758,1528978759,1528978760,1528978761,1528978762,1528978763,1528978764,1528978765,1528978766,1528978767,1528978768,1528978769,1528978770,1528978771,1528978772,1528978773,1528978774,1528978775,1528978776,1528978777,1528978778,1528978779,1528978780,1528978781,1528978782,1528978783,1528978784,1528978785,1366766176,1366766175,1366766174,1366766173,1361206807,1361206808,1361206809,1361206810,1528978971,1528978972,1528978973,1528978974,1528978975,1528978976,1528978977,1528978978,1528978979,1528978980,1528978981,1528978982,1528978983,1528978984,1528978985,1528978986,1528978987,1528978988,1528978989,1528978990,1528978991,1528978992,1528978993,1528978994,1528978995,1528978996,1528979008,1528979009,1528979010,1528979011,1528979012,1528979013,1528979014,1528979015,1528979016,1528979017,1528979018,1528979019,1528979020,1528979021,1528979022,1528979023,1528979024,1528979025,1528979026,1528979027,1528979028,1528979029,1528979030,1528979031,1528979032,1528979033,1528979034,1528979035,1528979036,1528979037,1528979038,1528979039,1528979040,1528979041,1366766172,1366766171,1366765921,1366765920,1361207063,1361207064,1361207065,1361207066,1528979227,1528979228,1528979229,1528979230,1528979231,1528979232,1528979233,1528979234,1528979235,1528979236,1528979237,1528979238,1528979239,1528979240,1528979241,1528979242,1528979243,1528979244,1528979245,1528979246,1528979247,1528979248,1528979249,1528979250,1528979251,1528979252,1528979264,1528979265,1528979266,1528979267,1528979268,1528979269,1528979270,1528979271,1528979272,1528979273,1528979274,1528979275,1528979276,1528979277,1528979278,1528979279,1528979280,1528979281,1528979282,1528979283,1528979284,1528979285,1528979286,1528979287,1528979288,1528979289,1528979290,1528979291,1528979292,1528979293,1528979294,1528979295,1528979296,1528979297,1366765919,1366765918,1366765917,1366765916,1361207319,1361207320,1361207321,1361207322,1528979483,1528979484,1528979485,1528979486,1528979487,1528979488,1528979489,1528979490,1528979491,1528979492,1528979493,1528979494,1528979495,1528979496,1528979497,1528979498,1528979499,1528979500,1528979501,1528979502,1528979503,1528979504,1528979505,1528979506,1528979507,1528979508,1528979520,1528979521,1528979522,1528979523,1528979524,1528979525,1528979526,1528979527,1528979528,1528979529,1528979530,1528979531,1528979532,1528979533,1528979534,1528979535,1528979536,1528979537,1528979538,1528979539,1528979540,1528979541,1528979542,1528979543,1528979544,1528979545,1528979546,1528979547,1528979548,1528979549,1528979550,1528979551,1528979552,1528979553,1366765915,1366765665,1366765664,1366765663,1361207575,1361207576,1361207577,1361207578,1528979739,1528979740,1528979741,1528979742,1528979743,1528979744,1528979745,1528979746,1528979747,1528979748,1528979749,1528979750,1528979751,1528979752,1528979753,1528979754,1528979755,1528979756,1528979757,1528979758,1528979759,1528979760,1528979761,1528979762,1528979763,1528979764,1528979776,1528979777,1528979778,1528979779,1528979780,1528979781,1528979782,1528979783,1528979784,1528979785,1528979786,1528979787,1528979788,1528979789,1528979790,1528979791,1528979792,1528979793,1528979794,1528979795,1528979796,1528979797,1528979798,1528979799,1528979800,1528979801,1528979802,1528979803,1528979804,1528979805,1528979806,1528979807,1528979808,1528979809,1361253211,1361253212,1361253213,1361253214,1361253215,1361253216,1361253217,1361253467,1361253468,1361253469,1361253470,1361253471,1361253472,1361253473,1361253723,1361253724,1361253725,1361253726,1361253727,1361253728,1361253729,1361253979,1361253980,1361253981,1361253982,1361253983,1361253984,1361253985,1361254235,1361254236,1361254237,1361254238,1361254239,1361254240,1361254241,1361254491,1361254492,1361254493,1361254494,1361254495,1361254496,1361254497,1361254747,1361254748,1361254749,1361254750,1361254751,1361254752,1361254753,1361255003,1361255004,1361255005,1361255006,1361255007,1361255008,1361255009,1529027419,1529027420,1529027421,1529027422,1529027423,1529027424,1529027425,1529027675,1529027676,1529027677,1529027678,1529027679,1529027680,1529027681,1529027932,1529027933,1529027934,1529027935,1529027936,1529027937,1529028188,1529028189,1529028190,1529028191,1529028192,1529028193,1529028444,1529028445,1529028446,1529028447,1529028448,1529028449,1529028700,1529028701,1529028702,1529028703,1529028704,1529028705,1529028956,1529028957,1529028958,1529028959,1529028960,1529028961,1529029211,1529029212,1529029213,1529029214,1529029215,1529029216,1529029217,1529029467,1529029468,1529029469,1529029470,1529029471,1529029472,1529029473,1529029723,1529029724,1529029725,1529029726,1529029727,1529029728,1529029729,1529029979,1529029980,1529029981,1529029982,1529029983,1529029984,1529029985,1529030235,1529030236,1529030237,1529030238,1529030239,1529030240,1529030241,1529030491,1529030492,1529030493,1529030494,1529030495,1529030496,1529030497,1529030747,1529030748,1529030749,1529030750,1529030751,1529030752,1529030753,1529031003,1529031004,1529031005,1529031006,1529031007,1529031008,1529031009,1529031259,1529031260,1529031261,1529031262,1529031263,1529031264,1529031265,1529031515,1529031516,1529031517,1529031518,1529031519,1529031520,1529031521,1529031771,1529031772,1529031773,1529031774,1529031775,1529031776,1529031777,1529032027,1529032028,1529032029,1529032030,1529032031,1529032032,1529032033,1529032283,1529032284,1529032285,1529032286,1529032287,1529032288,1529032289,1529032539,1529032540,1529032541,1529032542,1529032543,1529032544,1529032545,1529032795,1529032796,1529032797,1529032798,1529032799,1529032800,1529032801,1529033051,1529033052,1529033053,1529033054,1529033055,1529033056,1529033057,1529033307,1529033308,1529033309,1529033310,1529033311,1529033312,1529033313,1529033563,1529033564,1529033565,1529033566,1529033567,1529033568,1529033569,1529033819,1529033820,1529033821,1529033822,1529033823,1529033824,1529033825,1529034075,1529034076,1529034077,1529034078,1529034079,1529034080,1529034081,1529034331,1529034332,1529034333,1529034334,1529034335,1529034336,1529034337,1529034587,1529034588,1529034589,1529034590,1529034591,1529034592,1529034593,1529034843,1529034844,1529034845,1529034846,1529034847,1529034848,1529034849,1529035099,1529035100,1529035101,1529035102,1529035103,1529035104,1529035105,1529035355,1529035356,1529035357,1529035358,1529035359,1529035360,1529035361,1529035611,1529035612,1529035613,1529035614,1529035615,1529035616,1529035617,1529035867,1529035868,1529035869,1529035870,1529035871,1529035872,1529035873,1529036123,1529036124,1529036125,1529036126,1529036127,1529036128,1529036129,1529036379,1529036380,1529036381,1529036382,1529036383,1529036384,1529036385,1529038921,1529038922,1529038923,1529038924,1529038925,1529038926,1529038927,1529038928,1529038929,1529038930,1529038931,1529038932,1529038933,1529038934,1529038935,1529038936,1529038937,1529039177,1529039178,1529039179,1529039180,1529039181,1529039182,1529039183,1529039184,1529039185,1529039186,1529039187,1529039188,1529039189,1529039190,1529039191,1529039192,1529039193,1529039433,1529039434,1529039435,1529039436,1529039437,1529039438,1529039439,1529039440,1529039441,1529039442,1529039443,1529039444,1529039445,1529039446,1529039447,1529039448,1529039449,1529039689,1529039690,1529039691,1529039692,1529039693,1529039694,1529039695,1529039696,1529039697,1529039698,1529039699,1529039700,1529039701,1529039702,1529039703,1529039704,1529039705,1529039945,1529039946,1529039947,1529039948,1529039949,1529039950,1529039951,1529039952,1529039953,1529039954,1529039955,1529039956,1529039957,1529039958,1529039959,1529039960,1529039961,1529040201,1529040202,1529040203,1529040204,1529040205,1529040206,1529040207,1529040208,1529040209,1529040210,1529040211,1529040212,1529040213,1529040214,1529040215,1529040216,1529040217,1529040457,1529040458,1529040459,1529040460,1529040461,1529040462,1529040463,1529040464,1529040465,1529040466,1529040467,1529040468,1529040469,1529040470,1529040471,1529040472,1529040473,1529040713,1529040714,1529040715,1529040716,1529040717,1529040718,1529040719,1529040720,1529040721,1529040722,1529040723,1529040724,1529040725,1529040726,1529040727,1529040728,1529040729,1529040969,1529040970,1529040971,1529040972,1529040973,1529040974,1529040975,1529040976,1529040977,1529040978,1529040979,1529040980,1529040981,1529040982,1529040983,1529040984,1529040985,1529041224,1529041225,1529041226,1529041227,1529041228,1529041229,1529041230,1529041231,1529041232,1529041233,1529041234,1529041235,1529041236,1529041237,1529041238,1529041239,1529041240,1529041241,1529041462,1529041463,1529041464,1529041465,1529041466,1529041467,1529041468,1529041469,1529041470,1529041471,1529041472,1529041473,1529041474,1529041475,1529041476,1529041477,1529041478,1529041479,1529041480,1529041481,1529041482,1529041483,1529041484,1529041485,1529041486,1529041487,1529041488,1529041489,1529041490,1529041491,1529041492,1529041493,1529041494,1529041495,1529041496,1529041497,1529041718,1529041719,1529041720,1529041721,1529041722,1529041723,1529041724,1529041725,1529041726,1529041727,1529041728,1529041729,1529041730,1529041731,1529041732,1529041733,1529041734,1529041735,1529041736,1529041737,1529041738,1529041739,1529041740,1529041741,1529041742,1529041743,1529041744,1529041745,1529041746,1529041747,1529041748,1529041749,1529041750,1529041751,1529041752,1529041753,1529041974,1529041975,1529041976,1529041977,1529041978,1529041979,1529041980,1529041981,1529041982,1529041983,1529041984,1529041985,1529041986,1529041987,1529041988,1529041989,1529041990,1529041991,1529041992,1529041993,1529041994,1529041995,1529041996,1529041997,1529041998,1529041999,1529042000,1529042001,1529042002,1529042003,1529042004,1529042005,1529042006,1529042007,1529042008,1529042009,1529042230,1529042231,1529042232,1529042233,1529042234,1529042235,1529042236,1529042237,1529042238,1529042239,1529042240,1529042241,1529042242,1529042243,1529042244,1529042245,1529042246,1529042247,1529042248,1529042249,1529042250,1529042251,1529042252,1529042253,1529042254,1529042255,1529042256,1529042257,1529042258,1529042259,1529042260,1529042261,1529042262,1529042263,1529042264,1529042265,1529042486,1529042487,1529042488,1529042489,1529042490,1529042491,1529042492,1529042493,1529042494,1529042495,1529042496,1529042497,1529042498,1529042499,1529042500,1529042501,1529042502,1529042503,1529042504,1529042505,1529042506,1529042507,1529042508,1529042509,1529042510,1529042511,1529042512,1529042513,1529042514,1529042515,1529042516,1529042517,1529042518,1529042519,1529042520,1529042521,1529042742,1529042743,1529042744,1529042745,1529042746,1529042747,1529042748,1529042749,1529042750,1529042751,1529042752,1529042753,1529042754,1529042755,1529042756,1529042757,1529042758,1529042759,1529042760,1529042761,1529042762,1529042763,1529042764,1529042765,1529042766,1529042767,1529042768,1529042769,1529042770,1529042771,1529042772,1529042773,1529042774,1529042775,1529042776,1529042777,1529042998,1529042999,1529043000,1529043001,1529043002,1529043003,1529043004,1529043005,1529043006,1529043007,1529043008,1529043009,1529043010,1529043011,1529043012,1529043013,1529043014,1529043015,1529043016,1529043017,1529043018,1529043019,1529043020,1529043021,1529043022,1529043023,1529043024,1529043025,1529043026,1529043027,1529043028,1529043029,1529043030,1529043031,1529043032,1529043033,1529043263,1529043264,1529043265,1529043266,1529043267,1529043268,1529043269,1529043270,1529043271,1529043272,1529043273,1529043274,1529043275,1529043276,1529043277,1529043278,1529043279,1529043280,1529043281,1529043282,1529043283,1529043284,1529043285,1529043286,1529043287,1529043288,1529043289,1529043483,1529043484,1529043490,1529043491,1529043492,1529043493,1529043494,1529043495,1529043496,1529043497,1529043498,1529043499,1529043500,1529043520,1529043521,1529043522,1529043523,1529043524,1529043525,1529043526,1529043527,1529043528,1529043529,1529043530,1529043531,1529043532,1529043533,1529043534,1529043535,1529043536,1529043537,1529043538,1529043539,1529043540,1529043541,1529043542,1529043543,1529043544,1529043545,1366765662,1366765661,1366765660,1366765659,1361271575,1361271576,1361271577,1361271578,1529043739,1529043740,1529043741,1529043742,1529043743,1529043744,1529043745,1529043746,1529043747,1529043748,1529043749,1529043750,1529043751,1529043752,1529043753,1529043754,1529043755,1529043756,1529043776,1529043777,1529043778,1529043779,1529043780,1529043781,1529043782,1529043783,1529043784,1529043785,1529043786,1529043787,1529043788,1529043789,1529043790,1529043791,1529043792,1529043793,1529043794,1529043795,1529043796,1529043797,1529043798,1529043799,1529043800,1529043801,1366765409,1366765408,1366765407,1366765406,1361271831,1361271832,1361271833,1361271834,1529043995,1529043996,1529043997,1529043998,1529043999,1529044000,1529044001,1529044002,1529044003,1529044004,1529044005,1529044006,1529044007,1529044008,1529044009,1529044010,1529044011,1529044012,1529044032,1529044033,1529044034,1529044035,1529044036,1529044037,1529044038,1529044039,1529044040,1529044041,1529044042,1529044043,1529044044,1529044045,1529044046,1529044047,1529044048,1529044049,1529044050,1529044051,1529044052,1529044053,1529044054,1529044055,1529044056,1529044057,1366765405,1366765404,1366765403,1366765153,1361272087,1361272088,1361272089,1361272090,1529044251,1529044252,1529044253,1529044254,1529044255,1529044256,1529044257,1529044258,1529044259,1529044260,1529044261,1529044262,1529044263,1529044264,1529044265,1529044266,1529044267,1529044268,1529044288,1529044289,1529044290,1529044291,1529044292,1529044293,1529044294,1529044295,1529044296,1529044297,1529044298,1529044299,1529044300,1529044301,1529044302,1529044303,1529044304,1529044305,1529044306,1529044307,1529044308,1529044309,1529044310,1529044311,1529044312,1529044313,1366765152,1366765151,1366765150,1366765149,1361272343,1361272344,1361272345,1361272346,1529044507,1529044508,1529044509,1529044510,1529044511,1529044512,1529044513,1529044514,1529044515,1529044516,1529044517,1529044518,1529044519,1529044520,1529044521,1529044522,1529044523,1529044524,1529044544,1529044545,1529044546,1529044547,1529044548,1529044549,1529044550,1529044551,1529044552,1529044553,1529044554,1529044555,1529044556,1529044557,1529044558,1529044559,1529044560,1529044561,1529044562,1529044563,1529044564,1529044565,1529044566,1529044567,1529044568,1529044569,1366765148,1366765147,1366764897,1366764896,1361272599,1361272600,1361272601,1361272602,1529044763,1529044764,1529044765,1529044766,1529044767,1529044768,1529044769,1529044770,1529044771,1529044772,1529044773,1529044774,1529044775,1529044776,1529044777,1529044778,1529044779,1529044780,1529044800,1529044801,1529044802,1529044803,1529044804,1529044805,1529044806,1529044807,1529044808,1529044809,1529044810,1529044811,1529044812,1529044813,1529044814,1529044815,1529044816,1529044817,1529044818,1529044819,1529044820,1529044821,1529044822,1529044823,1529044824,1529044825,1366764895,1366764894,1366764893,1366764892,1361272855,1361272856,1361272857,1361272858,1529045019,1529045020,1529045021,1529045022,1529045023,1529045024,1529045025,1529045026,1529045027,1529045028,1529045029,1529045030,1529045031,1529045032,1529045033,1529045034,1529045035,1529045036,1529045056,1529045057,1529045058,1529045059,1529045060,1529045061,1529045062,1529045063,1529045064,1529045065,1529045066,1529045067,1529045068,1529045069,1529045070,1529045071,1529045072,1529045073,1529045074,1529045075,1529045076,1529045077,1529045078,1529045079,1529045080,1529045081,1366764891,1366764641,1366764640,1366764639,1361273111,1361273112,1361273113,1361273114,1529045275,1529045276,1529045277,1529045278,1529045279,1529045280,1529045281,1529045282,1529045283,1529045284,1529045285,1529045286,1529045287,1529045288,1529045289,1529045290,1529045291,1529045292,1529045312,1529045313,1529045314,1529045315,1529045316,1529045317,1529045318,1529045319,1529045320,1529045321,1529045322,1529045323,1529045324,1529045325,1529045326,1529045327,1529045328,1529045329,1529045330,1529045331,1529045332,1529045333,1529045334,1529045335,1529045336,1529045337,1361318747,1361318748,1361318749,1361318750,1361318751,1361318752,1361318753,1361319003,1361319004,1361319005,1361319006,1361319007,1361319008,1361319009,1361319259,1361319260,1361319261,1361319262,1361319263,1361319264,1361319265,1361319515,1361319516,1361319517,1361319518,1361319519,1361319520,1361319521,1361319771,1361319772,1361319773,1361319774,1361319775,1361319776,1361319777,1361320027,1361320028,1361320029,1361320030,1361320031,1361320032,1361320033,1361320283,1361320284,1361320285,1361320286,1361320287,1361320288,1361320289,1361320539,1361320540,1361320541,1361320542,1361320543,1361320544,1361320545,1529092955,1529092956,1529092957,1529092958,1529092959,1529092960,1529092961,1529093211,1529093212,1529093213,1529093214,1529093215,1529093216,1529093217,1529093467,1529093468,1529093469,1529093470,1529093471,1529093472,1529093473,1529093723,1529093724,1529093725,1529093726,1529093727,1529093728,1529093729,1529093979,1529093980,1529093981,1529093982,1529093983,1529093984,1529093985,1529094235,1529094236,1529094237,1529094238,1529094239,1529094240,1529094241,1529094491,1529094492,1529094493,1529094494,1529094495,1529094496,1529094497,1529094747,1529094748,1529094749,1529094750,1529094751,1529094752,1529094753,1529095003,1529095004,1529095005,1529095006,1529095007,1529095008,1529095009,1529095259,1529095260,1529095261,1529095262,1529095263,1529095264,1529095265,1529095515,1529095516,1529095517,1529095518,1529095519,1529095520,1529095521,1529095771,1529095772,1529095773,1529095774,1529095775,1529095776,1529095777,1529096027,1529096028,1529096029,1529096030,1529096031,1529096032,1529096033,1529096283,1529096284,1529096285,1529096286,1529096287,1529096288,1529096289,1529096539,1529096540,1529096541,1529096542,1529096543,1529096544,1529096545,1529096795,1529096796,1529096797,1529096798,1529096799,1529096800,1529096801,1529097051,1529097052,1529097053,1529097054,1529097055,1529097056,1529097057,1529097307,1529097308,1529097309,1529097310,1529097311,1529097312,1529097313,1529097563,1529097564,1529097565,1529097566,1529097567,1529097568,1529097569,1529097819,1529097820,1529097821,1529097822,1529097823,1529097824,1529097825,1529098075,1529098076,1529098077,1529098078,1529098079,1529098080,1529098081,1529098331,1529098332,1529098333,1529098334,1529098335,1529098336,1529098337,1529098587,1529098588,1529098589,1529098590,1529098591,1529098592,1529098593,1529098843,1529098844,1529098845,1529098846,1529098847,1529098848,1529098849,1529099099,1529099100,1529099101,1529099102,1529099103,1529099104,1529099105,1529099355,1529099356,1529099357,1529099358,1529099359,1529099360,1529099361,1529099611,1529099612,1529099613,1529099614,1529099615,1529099616,1529099617,1529099867,1529099868,1529099869,1529099870,1529099871,1529099872,1529099873,1529100123,1529100124,1529100125,1529100126,1529100127,1529100128,1529100129,1529100379,1529100380,1529100381,1529100382,1529100383,1529100384,1529100385,1529100635,1529100636,1529100637,1529100638,1529100639,1529100640,1529100641,1529100891,1529100892,1529100893,1529100894,1529100895,1529100896,1529100897,1529101147,1529101148,1529101149,1529101150,1529101151,1529101152,1529101153,1529101403,1529101404,1529101405,1529101406,1529101407,1529101408,1529101409,1529101659,1529101660,1529101661,1529101662,1529101663,1529101664,1529101665,1529104713,1529104714,1529104715,1529104716,1529104717,1529104718,1529104719,1529104720,1529104721,1529104722,1529104723,1529104724,1529104725,1529104726,1529104727,1529104728,1529104969,1529104970,1529104971,1529104972,1529104973,1529104974,1529104975,1529104976,1529104977,1529104978,1529104979,1529104980,1529104981,1529104982,1529104983,1529104984,1529105225,1529105226,1529105227,1529105228,1529105229,1529105230,1529105231,1529105232,1529105233,1529105234,1529105235,1529105236,1529105237,1529105238,1529105239,1529105240,1529105481,1529105482,1529105483,1529105484,1529105485,1529105486,1529105487,1529105488,1529105489,1529105490,1529105491,1529105492,1529105493,1529105494,1529105495,1529105496,1529105737,1529105738,1529105739,1529105740,1529105741,1529105742,1529105743,1529105744,1529105745,1529105746,1529105747,1529105748,1529105749,1529105750,1529105751,1529105752,1529105993,1529105994,1529105995,1529105996,1529105997,1529105998,1529105999,1529106000,1529106001,1529106002,1529106003,1529106004,1529106005,1529106006,1529106007,1529106008,1529106249,1529106250,1529106251,1529106252,1529106253,1529106254,1529106255,1529106256,1529106257,1529106258,1529106259,1529106260,1529106261,1529106262,1529106263,1529106264,1529106505,1529106506,1529106507,1529106508,1529106509,1529106510,1529106511,1529106512,1529106513,1529106514,1529106515,1529106516,1529106517,1529106518,1529106519,1529106520,1529106760,1529106761,1529106762,1529106763,1529106764,1529106765,1529106766,1529106767,1529106768,1529106769,1529106770,1529106771,1529106772,1529106773,1529106774,1529106775,1529106776,1529106999,1529107000,1529107001,1529107002,1529107003,1529107004,1529107005,1529107006,1529107007,1529107008,1529107009,1529107010,1529107011,1529107012,1529107013,1529107014,1529107015,1529107016,1529107017,1529107018,1529107019,1529107020,1529107021,1529107022,1529107023,1529107024,1529107025,1529107026,1529107027,1529107028,1529107029,1529107030,1529107031,1529107032,1529107255,1529107256,1529107257,1529107258,1529107259,1529107260,1529107261,1529107262,1529107263,1529107264,1529107265,1529107266,1529107267,1529107268,1529107269,1529107270,1529107271,1529107272,1529107273,1529107274,1529107275,1529107276,1529107277,1529107278,1529107279,1529107280,1529107281,1529107282,1529107283,1529107284,1529107285,1529107286,1529107287,1529107288,1529107511,1529107512,1529107513,1529107514,1529107515,1529107516,1529107517,1529107518,1529107519,1529107520,1529107521,1529107522,1529107523,1529107524,1529107525,1529107526,1529107527,1529107528,1529107529,1529107530,1529107531,1529107532,1529107533,1529107534,1529107535,1529107536,1529107537,1529107538,1529107539,1529107540,1529107541,1529107542,1529107543,1529107544,1529107767,1529107768,1529107769,1529107770,1529107771,1529107772,1529107773,1529107774,1529107775,1529107776,1529107777,1529107778,1529107779,1529107780,1529107781,1529107782,1529107783,1529107784,1529107785,1529107786,1529107787,1529107788,1529107789,1529107790,1529107791,1529107792,1529107793,1529107794,1529107795,1529107796,1529107797,1529107798,1529107799,1529107800,1529108023,1529108024,1529108025,1529108026,1529108027,1529108028,1529108029,1529108030,1529108031,1529108032,1529108033,1529108034,1529108035,1529108036,1529108037,1529108038,1529108039,1529108040,1529108041,1529108042,1529108043,1529108044,1529108045,1529108046,1529108047,1529108048,1529108049,1529108050,1529108051,1529108052,1529108053,1529108054,1529108055,1529108056,1529108279,1529108280,1529108281,1529108282,1529108283,1529108284,1529108285,1529108286,1529108287,1529108288,1529108289,1529108290,1529108291,1529108292,1529108293,1529108294,1529108295,1529108296,1529108297,1529108298,1529108299,1529108300,1529108301,1529108302,1529108303,1529108304,1529108305,1529108306,1529108307,1529108308,1529108309,1529108310,1529108311,1529108312,1529108535,1529108536,1529108537,1529108538,1529108539,1529108540,1529108541,1529108542,1529108543,1529108544,1529108545,1529108546,1529108547,1529108548,1529108549,1529108550,1529108551,1529108552,1529108553,1529108554,1529108555,1529108556,1529108557,1529108558,1529108559,1529108560,1529108561,1529108562,1529108563,1529108564,1529108565,1529108566,1529108567,1529108568,1529108799,1529108800,1529108801,1529108802,1529108803,1529108804,1529108805,1529108806,1529108807,1529108808,1529108809,1529108810,1529108811,1529108812,1529108813,1529108814,1529108815,1529108816,1529108817,1529108818,1529108819,1529108820,1529108821,1529108822,1529108823,1529108824,1529109019,1529109056,1529109057,1529109058,1529109059,1529109060,1529109061,1529109062,1529109063,1529109064,1529109065,1529109066,1529109067,1529109068,1529109069,1529109070,1529109071,1529109072,1529109073,1529109074,1529109075,1529109076,1529109077,1529109078,1529109079,1529109080,1366764638,1366764637,1366764636,1366764635,1361337111,1361337112,1361337113,1361337114,1529109275,1529109276,1529109282,1529109283,1529109284,1529109285,1529109286,1529109287,1529109288,1529109289,1529109290,1529109291,1529109312,1529109313,1529109314,1529109315,1529109316,1529109317,1529109318,1529109319,1529109320,1529109321,1529109322,1529109323,1529109324,1529109325,1529109326,1529109327,1529109328,1529109329,1529109330,1529109331,1529109332,1529109333,1529109334,1529109335,1529109336,1366764385,1366764384,1366764383,1366764382,1361337367,1361337368,1361337369,1361337370,1529109531,1529109532,1529109533,1529109534,1529109535,1529109536,1529109537,1529109538,1529109539,1529109540,1529109541,1529109542,1529109543,1529109544,1529109545,1529109546,1529109547,1529109568,1529109569,1529109570,1529109571,1529109572,1529109573,1529109574,1529109575,1529109576,1529109577,1529109578,1529109579,1529109580,1529109581,1529109582,1529109583,1529109584,1529109585,1529109586,1529109587,1529109588,1529109589,1529109590,1529109591,1529109592,1366764381,1366764380,1366764379,1366764129,1361337623,1361337624,1361337625,1361337626,1529109787,1529109788,1529109789,1529109790,1529109791,1529109792,1529109793,1529109794,1529109795,1529109796,1529109797,1529109798,1529109799,1529109800,1529109801,1529109802,1529109803,1529109824,1529109825,1529109826,1529109827,1529109828,1529109829,1529109830,1529109831,1529109832,1529109833,1529109834,1529109835,1529109836,1529109837,1529109838,1529109839,1529109840,1529109841,1529109842,1529109843,1529109844,1529109845,1529109846,1529109847,1529109848,1366764128,1366764127,1366764126,1366764125,1361337879,1361337880,1361337881,1361337882,1529110043,1529110044,1529110045,1529110046,1529110047,1529110048,1529110049,1529110050,1529110051,1529110052,1529110053,1529110054,1529110055,1529110056,1529110057,1529110058,1529110059,1529110080,1529110081,1529110082,1529110083,1529110084,1529110085,1529110086,1529110087,1529110088,1529110089,1529110090,1529110091,1529110092,1529110093,1529110094,1529110095,1529110096,1529110097,1529110098,1529110099,1529110100,1529110101,1529110102,1529110103,1529110104,1366764124,1366764123,1366763873,1366763872,1361338135,1361338136,1361338137,1361338138,1529110299,1529110300,1529110301,1529110302,1529110303,1529110304,1529110305,1529110306,1529110307,1529110308,1529110309,1529110310,1529110311,1529110312,1529110313,1529110314,1529110315,1529110336,1529110337,1529110338,1529110339,1529110340,1529110341,1529110342,1529110343,1529110344,1529110345,1529110346,1529110347,1529110348,1529110349,1529110350,1529110351,1529110352,1529110353,1529110354,1529110355,1529110356,1529110357,1529110358,1529110359,1529110360,1366763871,1366763870,1366763869,1366763868,1361338391,1361338392,1361338393,1361338394,1529110555,1529110556,1529110557,1529110558,1529110559,1529110560,1529110561,1529110562,1529110563,1529110564,1529110565,1529110566,1529110567,1529110568,1529110569,1529110570,1529110571,1529110592,1529110593,1529110594,1529110595,1529110596,1529110597,1529110598,1529110599,1529110600,1529110601,1529110602,1529110603,1529110604,1529110605,1529110606,1529110607,1529110608,1529110609,1529110610,1529110611,1529110612,1529110613,1529110614,1529110615,1529110616,1366763867,1366763617,1366763616,1366763615,1361338647,1361338648,1361338649,1361338650,1529110811,1529110812,1529110813,1529110814,1529110815,1529110816,1529110817,1529110818,1529110819,1529110820,1529110821,1529110822,1529110823,1529110824,1529110825,1529110826,1529110827,1529110848,1529110849,1529110850,1529110851,1529110852,1529110853,1529110854,1529110855,1529110856,1529110857,1529110858,1529110859,1529110860,1529110861,1529110862,1529110863,1529110864,1529110865,1529110866,1529110867,1529110868,1529110869,1529110870,1529110871,1529110872,1361384283,1361384284,1361384285,1361384286,1361384287,1361384288,1361384289,1361384539,1361384540,1361384541,1361384542,1361384543,1361384544,1361384545,1361384795,1361384796,1361384797,1361384798,1361384799,1361384800,1361384801,1361385051,1361385052,1361385053,1361385054,1361385055,1361385056,1361385057,1361385307,1361385308,1361385309,1361385310,1361385311,1361385312,1361385313,1361385563,1361385564,1361385565,1361385566,1361385567,1361385568,1361385569,1361385819,1361385820,1361385821,1361385822,1361385823,1361385824,1361385825,1361386075,1361386076,1361386077,1361386078,1361386079,1361386080,1361386081,1529158491,1529158492,1529158493,1529158494,1529158495,1529158496,1529158497,1529158747,1529158748,1529158749,1529158750,1529158751,1529158752,1529158753,1529159004,1529159005,1529159006,1529159007,1529159008,1529159009,1529159260,1529159261,1529159262,1529159263,1529159264,1529159265,1529159516,1529159517,1529159518,1529159519,1529159520,1529159521,1529159772,1529159773,1529159774,1529159775,1529159776,1529159777,1529160028,1529160029,1529160030,1529160031,1529160032,1529160033,1529160283,1529160284,1529160285,1529160286,1529160287,1529160288,1529160289,1529160539,1529160540,1529160541,1529160542,1529160543,1529160544,1529160545,1529160795,1529160796,1529160797,1529160798,1529160799,1529160800,1529160801,1529161051,1529161052,1529161053,1529161054,1529161055,1529161056,1529161057,1529161307,1529161308,1529161309,1529161310,1529161311,1529161312,1529161313,1529161563,1529161564,1529161565,1529161566,1529161567,1529161568,1529161569,1529161819,1529161820,1529161821,1529161822,1529161823,1529161824,1529161825,1529162075,1529162076,1529162077,1529162078,1529162079,1529162080,1529162081,1529162331,1529162332,1529162333,1529162334,1529162335,1529162336,1529162337,1529162587,1529162588,1529162589,1529162590,1529162591,1529162592,1529162593,1529162843,1529162844,1529162845,1529162846,1529162847,1529162848,1529162849,1529163099,1529163100,1529163101,1529163102,1529163103,1529163104,1529163105,1529163355,1529163356,1529163357,1529163358,1529163359,1529163360,1529163361,1529163611,1529163612,1529163613,1529163614,1529163615,1529163616,1529163617,1529163867,1529163868,1529163869,1529163870,1529163871,1529163872,1529163873,1529164123,1529164124,1529164125,1529164126,1529164127,1529164128,1529164129,1529164379,1529164380,1529164381,1529164382,1529164383,1529164384,1529164385,1529164635,1529164636,1529164637,1529164638,1529164639,1529164640,1529164641,1529164891,1529164892,1529164893,1529164894,1529164895,1529164896,1529164897,1529165147,1529165148,1529165149,1529165150,1529165151,1529165152,1529165153,1529165403,1529165404,1529165405,1529165406,1529165407,1529165408,1529165409,1529165659,1529165660,1529165661,1529165662,1529165663,1529165664,1529165665,1529165915,1529165916,1529165917,1529165918,1529165919,1529165920,1529165921,1529166171,1529166172,1529166173,1529166174,1529166175,1529166176,1529166177,1529166427,1529166428,1529166429,1529166430,1529166431,1529166432,1529166433,1529166683,1529166684,1529166685,1529166686,1529166687,1529166688,1529166689,1529166939,1529166940,1529166941,1529166942,1529166943,1529166944,1529166945,1529167195,1529167196,1529167197,1529167198,1529167199,1529167200,1529167201,1529170249,1529170250,1529170251,1529170252,1529170253,1529170254,1529170255,1529170256,1529170257,1529170258,1529170259,1529170260,1529170261,1529170262,1529170263,1529170264,1529170505,1529170506,1529170507,1529170508,1529170509,1529170510,1529170511,1529170512,1529170513,1529170514,1529170515,1529170516,1529170517,1529170518,1529170519,1529170520,1529170761,1529170762,1529170763,1529170764,1529170765,1529170766,1529170767,1529170768,1529170769,1529170770,1529170771,1529170772,1529170773,1529170774,1529170775,1529170776,1529171017,1529171018,1529171019,1529171020,1529171021,1529171022,1529171023,1529171024,1529171025,1529171026,1529171027,1529171028,1529171029,1529171030,1529171031,1529171032,1529171273,1529171274,1529171275,1529171276,1529171277,1529171278,1529171279,1529171280,1529171281,1529171282,1529171283,1529171284,1529171285,1529171286,1529171287,1529171288,1529171529,1529171530,1529171531,1529171532,1529171533,1529171534,1529171535,1529171536,1529171537,1529171538,1529171539,1529171540,1529171541,1529171542,1529171543,1529171544,1529171785,1529171786,1529171787,1529171788,1529171789,1529171790,1529171791,1529171792,1529171793,1529171794,1529171795,1529171796,1529171797,1529171798,1529171799,1529171800,1529172041,1529172042,1529172043,1529172044,1529172045,1529172046,1529172047,1529172048,1529172049,1529172050,1529172051,1529172052,1529172053,1529172054,1529172055,1529172056,1529172296,1529172297,1529172298,1529172299,1529172300,1529172301,1529172302,1529172303,1529172304,1529172305,1529172306,1529172307,1529172308,1529172309,1529172310,1529172311,1529172312,1529172535,1529172536,1529172537,1529172538,1529172539,1529172540,1529172541,1529172542,1529172543,1529172544,1529172545,1529172546,1529172547,1529172548,1529172549,1529172550,1529172551,1529172552,1529172553,1529172554,1529172555,1529172556,1529172557,1529172558,1529172559,1529172560,1529172561,1529172562,1529172563,1529172564,1529172565,1529172566,1529172567,1529172568,1529172791,1529172792,1529172793,1529172794,1529172795,1529172796,1529172797,1529172798,1529172799,1529172800,1529172801,1529172802,1529172803,1529172804,1529172805,1529172806,1529172807,1529172808,1529172809,1529172810,1529172811,1529172812,1529172813,1529172814,1529172815,1529172816,1529172817,1529172818,1529172819,1529172820,1529172821,1529172822,1529172823,1529172824,1529173047,1529173048,1529173049,1529173050,1529173051,1529173052,1529173053,1529173054,1529173055,1529173056,1529173057,1529173058,1529173059,1529173060,1529173061,1529173062,1529173063,1529173064,1529173065,1529173066,1529173067,1529173068,1529173069,1529173070,1529173071,1529173072,1529173073,1529173074,1529173075,1529173076,1529173077,1529173078,1529173079,1529173080,1529173303,1529173304,1529173305,1529173306,1529173307,1529173308,1529173309,1529173310,1529173311,1529173312,1529173313,1529173314,1529173315,1529173316,1529173317,1529173318,1529173319,1529173320,1529173321,1529173322,1529173323,1529173324,1529173325,1529173326,1529173327,1529173328,1529173329,1529173330,1529173331,1529173332,1529173333,1529173334,1529173335,1529173336,1529173559,1529173560,1529173561,1529173562,1529173563,1529173564,1529173565,1529173566,1529173567,1529173568,1529173569,1529173570,1529173571,1529173572,1529173573,1529173574,1529173575,1529173576,1529173577,1529173578,1529173579,1529173580,1529173581,1529173582,1529173583,1529173584,1529173585,1529173586,1529173587,1529173588,1529173589,1529173590,1529173591,1529173592,1529173815,1529173816,1529173817,1529173818,1529173819,1529173820,1529173821,1529173822,1529173823,1529173824,1529173825,1529173826,1529173827,1529173828,1529173829,1529173830,1529173831,1529173832,1529173833,1529173834,1529173835,1529173836,1529173837,1529173838,1529173839,1529173840,1529173841,1529173842,1529173843,1529173844,1529173845,1529173846,1529173847,1529173848,1529174071,1529174072,1529174073,1529174074,1529174075,1529174076,1529174077,1529174078,1529174079,1529174080,1529174081,1529174082,1529174083,1529174084,1529174085,1529174086,1529174087,1529174088,1529174089,1529174090,1529174091,1529174092,1529174093,1529174094,1529174095,1529174096,1529174097,1529174098,1529174099,1529174100,1529174101,1529174102,1529174103,1529174104,1529174335,1529174336,1529174337,1529174338,1529174339,1529174340,1529174341,1529174342,1529174343,1529174344,1529174345,1529174346,1529174347,1529174348,1529174349,1529174350,1529174351,1529174352,1529174353,1529174354,1529174355,1529174356,1529174357,1529174358,1529174359,1529174360,1529174555,1529174592,1529174593,1529174594,1529174595,1529174596,1529174597,1529174598,1529174599,1529174600,1529174601,1529174602,1529174603,1529174604,1529174605,1529174606,1529174607,1529174608,1529174609,1529174610,1529174611,1529174612,1529174613,1529174614,1529174615,1529174616,1366763614,1366763613,1366763612,1366763611,1361402647,1361402648,1361402649,1361402650,1529174811,1529174812,1529174813,1529174814,1529174815,1529174816,1529174817,1529174818,1529174819,1529174820,1529174821,1529174822,1529174823,1529174824,1529174825,1529174826,1529174827,1529174848,1529174849,1529174850,1529174851,1529174852,1529174853,1529174854,1529174855,1529174856,1529174857,1529174858,1529174859,1529174860,1529174861,1529174862,1529174863,1529174864,1529174865,1529174866,1529174867,1529174868,1529174869,1529174870,1529174871,1529174872,1366763361,1366763360,1366763359,1366763358,1361402903,1361402904,1361402905,1361402906,1529175067,1529175068,1529175069,1529175070,1529175071,1529175072,1529175073,1529175074,1529175075,1529175076,1529175077,1529175078,1529175079,1529175080,1529175081,1529175082,1529175083,1529175104,1529175105,1529175106,1529175107,1529175108,1529175109,1529175110,1529175111,1529175112,1529175113,1529175114,1529175115,1529175116,1529175117,1529175118,1529175119,1529175120,1529175121,1529175122,1529175123,1529175124,1529175125,1529175126,1529175127,1529175128,1366763357,1366763356,1366763355,1366763105,1361403159,1361403160,1361403161,1361403162,1529175323,1529175324,1529175325,1529175326,1529175327,1529175328,1529175329,1529175330,1529175331,1529175332,1529175333,1529175334,1529175335,1529175336,1529175337,1529175338,1529175339,1529175360,1529175361,1529175362,1529175363,1529175364,1529175365,1529175366,1529175367,1529175368,1529175369,1529175370,1529175371,1529175372,1529175373,1529175374,1529175375,1529175376,1529175377,1529175378,1529175379,1529175380,1529175381,1529175382,1529175383,1529175384,1366763104,1366763103,1366763102,1366763101,1361403415,1361403416,1361403417,1361403418,1529175579,1529175580,1529175581,1529175582,1529175583,1529175584,1529175585,1529175586,1529175587,1529175588,1529175589,1529175590,1529175591,1529175592,1529175593,1529175594,1529175595,1529175616,1529175617,1529175618,1529175619,1529175620,1529175621,1529175622,1529175623,1529175624,1529175625,1529175626,1529175627,1529175628,1529175629,1529175630,1529175631,1529175632,1529175633,1529175634,1529175635,1529175636,1529175637,1529175638,1529175639,1529175640,1366763100,1366763099,1366762849,1366762848,1361403671,1361403672,1361403673,1361403674,1529175835,1529175836,1529175837,1529175838,1529175839,1529175840,1529175841,1529175842,1529175843,1529175844,1529175845,1529175846,1529175847,1529175848,1529175849,1529175850,1529175851,1529175872,1529175873,1529175874,1529175875,1529175876,1529175877,1529175878,1529175879,1529175880,1529175881,1529175882,1529175883,1529175884,1529175885,1529175886,1529175887,1529175888,1529175889,1529175890,1529175891,1529175892,1529175893,1529175894,1529175895,1529175896,1366762847,1366762846,1366762845,1366762844,1361403927,1361403928,1361403929,1361403930,1529176091,1529176092,1529176093,1529176094,1529176095,1529176096,1529176097,1529176098,1529176099,1529176100,1529176101,1529176102,1529176103,1529176104,1529176105,1529176106,1529176107,1529176128,1529176129,1529176130,1529176131,1529176132,1529176133,1529176134,1529176135,1529176136,1529176137,1529176138,1529176139,1529176140,1529176141,1529176142,1529176143,1529176144,1529176145,1529176146,1529176147,1529176148,1529176149,1529176150,1529176151,1529176152,1366762843,1366762593,1366762592,1366762591,1361404183,1361404184,1361404185,1361404186,1529176347,1529176348,1529176349,1529176350,1529176351,1529176352,1529176353,1529176354,1529176355,1529176356,1529176357,1529176358,1529176359,1529176360,1529176361,1529176362,1529176363,1529176384,1529176385,1529176386,1529176387,1529176388,1529176389,1529176390,1529176391,1529176392,1529176393,1529176394,1529176395,1529176396,1529176397,1529176398,1529176399,1529176400,1529176401,1529176402,1529176403,1529176404,1529176405,1529176406,1529176407,1529176408,1361449819,1361449820,1361449821,1361449822,1361449823,1361449824,1361449825,1361450075,1361450076,1361450077,1361450078,1361450079,1361450080,1361450081,1361450331,1361450332,1361450333,1361450334,1361450335,1361450336,1361450337,1361450587,1361450588,1361450589,1361450590,1361450591,1361450592,1361450593,1361450843,1361450844,1361450845,1361450846,1361450847,1361450848,1361450849,1361451099,1361451100,1361451101,1361451102,1361451103,1361451104,1361451105,1361451355,1361451356,1361451357,1361451358,1361451359,1361451360,1361451361,1361451611,1361451612,1361451613,1361451614,1361451615,1361451616,1361451617,1529224027,1529224028,1529224029,1529224030,1529224031,1529224032,1529224033,1529224283,1529224284,1529224285,1529224286,1529224287,1529224288,1529224289,1529224539,1529224540,1529224541,1529224542,1529224543,1529224544,1529224545,1529224795,1529224796,1529224797,1529224798,1529224799,1529224800,1529224801,1529225051,1529225052,1529225053,1529225054,1529225055,1529225056,1529225057,1529225307,1529225308,1529225309,1529225310,1529225311,1529225312,1529225313,1529225563,1529225564,1529225565,1529225566,1529225567,1529225568,1529225569,1529225819,1529225820,1529225821,1529225822,1529225823,1529225824,1529225825,1529226075,1529226076,1529226077,1529226078,1529226079,1529226080,1529226081,1529226331,1529226332,1529226333,1529226334,1529226335,1529226336,1529226337,1529226587,1529226588,1529226589,1529226590,1529226591,1529226592,1529226593,1529226843,1529226844,1529226845,1529226846,1529226847,1529226848,1529226849,1529227099,1529227100,1529227101,1529227102,1529227103,1529227104,1529227105,1529227355,1529227356,1529227357,1529227358,1529227359,1529227360,1529227361,1529227611,1529227612,1529227613,1529227614,1529227615,1529227616,1529227617,1529227867,1529227868,1529227869,1529227870,1529227871,1529227872,1529227873,1529228123,1529228124,1529228125,1529228126,1529228127,1529228128,1529228129,1529228379,1529228380,1529228381,1529228382,1529228383,1529228384,1529228385,1529228635,1529228636,1529228637,1529228638,1529228639,1529228640,1529228641,1529228891,1529228892,1529228893,1529228894,1529228895,1529228896,1529228897,1529229147,1529229148,1529229149,1529229150,1529229151,1529229152,1529229153,1529229403,1529229404,1529229405,1529229406,1529229407,1529229408,1529229409,1529229659,1529229660,1529229661,1529229662,1529229663,1529229664,1529229665,1529229915,1529229916,1529229917,1529229918,1529229919,1529229920,1529229921,1529230171,1529230172,1529230173,1529230174,1529230175,1529230176,1529230177,1529230427,1529230428,1529230429,1529230430,1529230431,1529230432,1529230433,1529230683,1529230684,1529230685,1529230686,1529230687,1529230688,1529230689,1529230939,1529230940,1529230941,1529230942,1529230943,1529230944,1529230945,1529231195,1529231196,1529231197,1529231198,1529231199,1529231200,1529231201,1529231451,1529231452,1529231453,1529231454,1529231455,1529231456,1529231457,1529231707,1529231708,1529231709,1529231710,1529231711,1529231712,1529231713,1529231963,1529231964,1529231965,1529231966,1529231967,1529231968,1529231969,1529232219,1529232220,1529232221,1529232222,1529232223,1529232224,1529232225,1529232475,1529232476,1529232477,1529232478,1529232479,1529232480,1529232481,1529232731,1529232732,1529232733,1529232734,1529232735,1529232736,1529232737,1529235785,1529235786,1529235787,1529235788,1529235789,1529235790,1529235791,1529235792,1529235793,1529235794,1529235795,1529235796,1529235797,1529235798,1529235799,1529235800,1529236041,1529236042,1529236043,1529236044,1529236045,1529236046,1529236047,1529236048,1529236049,1529236050,1529236051,1529236052,1529236053,1529236054,1529236055,1529236056,1529236297,1529236298,1529236299,1529236300,1529236301,1529236302,1529236303,1529236304,1529236305,1529236306,1529236307,1529236308,1529236309,1529236310,1529236311,1529236312,1529236553,1529236554,1529236555,1529236556,1529236557,1529236558,1529236559,1529236560,1529236561,1529236562,1529236563,1529236564,1529236565,1529236566,1529236567,1529236568,1529236809,1529236810,1529236811,1529236812,1529236813,1529236814,1529236815,1529236816,1529236817,1529236818,1529236819,1529236820,1529236821,1529236822,1529236823,1529236824,1529237065,1529237066,1529237067,1529237068,1529237069,1529237070,1529237071,1529237072,1529237073,1529237074,1529237075,1529237076,1529237077,1529237078,1529237079,1529237080,1529237321,1529237322,1529237323,1529237324,1529237325,1529237326,1529237327,1529237328,1529237329,1529237330,1529237331,1529237332,1529237333,1529237334,1529237335,1529237336,1529237577,1529237578,1529237579,1529237580,1529237581,1529237582,1529237583,1529237584,1529237585,1529237586,1529237587,1529237588,1529237589,1529237590,1529237591,1529237592,1529237832,1529237833,1529237834,1529237835,1529237836,1529237837,1529237838,1529237839,1529237840,1529237841,1529237842,1529237843,1529237844,1529237845,1529237846,1529237847,1529237848,1529238071,1529238072,1529238073,1529238074,1529238075,1529238076,1529238077,1529238078,1529238079,1529238080,1529238081,1529238082,1529238083,1529238084,1529238085,1529238086,1529238087,1529238088,1529238089,1529238090,1529238091,1529238092,1529238093,1529238094,1529238095,1529238096,1529238097,1529238098,1529238099,1529238100,1529238101,1529238102,1529238103,1529238104,1529238327,1529238328,1529238329,1529238330,1529238331,1529238332,1529238333,1529238334,1529238335,1529238336,1529238337,1529238338,1529238339,1529238340,1529238341,1529238342,1529238343,1529238344,1529238345,1529238346,1529238347,1529238348,1529238349,1529238350,1529238351,1529238352,1529238353,1529238354,1529238355,1529238356,1529238357,1529238358,1529238359,1529238360,1529238583,1529238584,1529238585,1529238586,1529238587,1529238588,1529238589,1529238590,1529238591,1529238592,1529238593,1529238594,1529238595,1529238596,1529238597,1529238598,1529238599,1529238600,1529238601,1529238602,1529238603,1529238604,1529238605,1529238606,1529238607,1529238608,1529238609,1529238610,1529238611,1529238612,1529238613,1529238614,1529238615,1529238616,1529238839,1529238840,1529238841,1529238842,1529238843,1529238844,1529238845,1529238846,1529238847,1529238848,1529238849,1529238850,1529238851,1529238852,1529238853,1529238854,1529238855,1529238856,1529238857,1529238858,1529238859,1529238860,1529238861,1529238862,1529238863,1529238864,1529238865,1529238866,1529238867,1529238868,1529238869,1529238870,1529238871,1529238872,1529239095,1529239096,1529239097,1529239098,1529239099,1529239100,1529239101,1529239102,1529239103,1529239104,1529239105,1529239106,1529239107,1529239108,1529239109,1529239110,1529239111,1529239112,1529239113,1529239114,1529239115,1529239116,1529239117,1529239118,1529239119,1529239120,1529239121,1529239122,1529239123,1529239124,1529239125,1529239126,1529239127,1529239128,1529239351,1529239352,1529239353,1529239354,1529239355,1529239356,1529239357,1529239358,1529239359,1529239360,1529239361,1529239362,1529239363,1529239364,1529239365,1529239366,1529239367,1529239368,1529239369,1529239370,1529239371,1529239372,1529239373,1529239374,1529239375,1529239376,1529239377,1529239378,1529239379,1529239380,1529239381,1529239382,1529239383,1529239384,1529239607,1529239608,1529239609,1529239610,1529239611,1529239612,1529239613,1529239614,1529239615,1529239616,1529239617,1529239618,1529239619,1529239620,1529239621,1529239622,1529239623,1529239624,1529239625,1529239626,1529239627,1529239628,1529239629,1529239630,1529239631,1529239632,1529239633,1529239634,1529239635,1529239636,1529239637,1529239638,1529239639,1529239640,1529239871,1529239872,1529239873,1529239874,1529239875,1529239876,1529239877,1529239878,1529239879,1529239880,1529239881,1529239882,1529239883,1529239884,1529239885,1529239886,1529239887,1529239888,1529239889,1529239890,1529239891,1529239892,1529239893,1529239894,1529239895,1529239896,1529240128,1529240129,1529240130,1529240131,1529240132,1529240133,1529240134,1529240135,1529240136,1529240137,1529240138,1529240139,1529240140,1529240141,1529240142,1529240143,1529240144,1529240145,1529240146,1529240147,1529240148,1529240149,1529240150,1529240151,1529240152,1366762590,1366762589,1366762588,1366762587,1361468183,1361468184,1361468185,1361468186,1529240347,1529240348,1529240354,1529240355,1529240356,1529240357,1529240358,1529240359,1529240360,1529240361,1529240362,1529240363,1529240384,1529240385,1529240386,1529240387,1529240388,1529240389,1529240390,1529240391,1529240392,1529240393,1529240394,1529240395,1529240396,1529240397,1529240398,1529240399,1529240400,1529240401,1529240402,1529240403,1529240404,1529240405,1529240406,1529240407,1529240408,1366762337,1366762336,1366762335,1366762334,1361468439,1361468440,1361468441,1361468442,1529240603,1529240604,1529240605,1529240606,1529240607,1529240608,1529240609,1529240610,1529240611,1529240612,1529240613,1529240614,1529240615,1529240616,1529240617,1529240618,1529240619,1529240640,1529240641,1529240642,1529240643,1529240644,1529240645,1529240646,1529240647,1529240648,1529240649,1529240650,1529240651,1529240652,1529240653,1529240654,1529240655,1529240656,1529240657,1529240658,1529240659,1529240660,1529240661,1529240662,1529240663,1529240664,1366762333,1366762332,1366762331,1366762081,1361468695,1361468696,1361468697,1361468698,1529240859,1529240860,1529240861,1529240862,1529240863,1529240864,1529240865,1529240866,1529240867,1529240868,1529240869,1529240870,1529240871,1529240872,1529240873,1529240874,1529240875,1529240896,1529240897,1529240898,1529240899,1529240900,1529240901,1529240902,1529240903,1529240904,1529240905,1529240906,1529240907,1529240908,1529240909,1529240910,1529240911,1529240912,1529240913,1529240914,1529240915,1529240916,1529240917,1529240918,1529240919,1529240920,1366762080,1366762079,1366762078,1366762077,1361468951,1361468952,1361468953,1361468954,1529241115,1529241116,1529241117,1529241118,1529241119,1529241120,1529241121,1529241122,1529241123,1529241124,1529241125,1529241126,1529241127,1529241128,1529241129,1529241130,1529241131,1529241152,1529241153,1529241154,1529241155,1529241156,1529241157,1529241158,1529241159,1529241160,1529241161,1529241162,1529241163,1529241164,1529241165,1529241166,1529241167,1529241168,1529241169,1529241170,1529241171,1529241172,1529241173,1529241174,1529241175,1529241176,1366762076,1366762075,1366761825,1366761824,1361469207,1361469208,1361469209,1361469210,1529241371,1529241372,1529241373,1529241374,1529241375,1529241376,1529241377,1529241378,1529241379,1529241380,1529241381,1529241382,1529241383,1529241384,1529241385,1529241386,1529241387,1529241408,1529241409,1529241410,1529241411,1529241412,1529241413,1529241414,1529241415,1529241416,1529241417,1529241418,1529241419,1529241420,1529241421,1529241422,1529241423,1529241424,1529241425,1529241426,1529241427,1529241428,1529241429,1529241430,1529241431,1529241432,1366761823,1366761822,1366761821,1366761820,1361469463,1361469464,1361469465,1361469466,1529241627,1529241628,1529241629,1529241630,1529241631,1529241632,1529241633,1529241634,1529241635,1529241636,1529241637,1529241638,1529241639,1529241640,1529241641,1529241642,1529241643,1529241664,1529241665,1529241666,1529241667,1529241668,1529241669,1529241670,1529241671,1529241672,1529241673,1529241674,1529241675,1529241676,1529241677,1529241678,1529241679,1529241680,1529241681,1529241682,1529241683,1529241684,1529241685,1529241686,1529241687,1529241688,1366761819,1366761569,1366761568,1366761567,1361469719,1361469720,1361469721,1361469722,1529241883,1529241884,1529241885,1529241886,1529241887,1529241888,1529241889,1529241890,1529241891,1529241892,1529241893,1529241894,1529241895,1529241896,1529241897,1529241898,1529241899,1529241920,1529241921,1529241922,1529241923,1529241924,1529241925,1529241926,1529241927,1529241928,1529241929,1529241930,1529241931,1529241932,1529241933,1529241934,1529241935,1529241936,1529241937,1529241938,1529241939,1529241940,1529241941,1529241942,1529241943,1529241944,1361515355,1361515356,1361515357,1361515358,1361515359,1361515360,1361515361,1361515611,1361515612,1361515613,1361515614,1361515615,1361515616,1361515617,1361515867,1361515868,1361515869,1361515870,1361515871,1361515872,1361515873,1361516123,1361516124,1361516125,1361516126,1361516127,1361516128,1361516129,1361516379,1361516380,1361516381,1361516382,1361516383,1361516384,1361516385,1361516635,1361516636,1361516637,1361516638,1361516639,1361516640,1361516641,1361516891,1361516892,1361516893,1361516894,1361516895,1361516896,1361516897,1361517147,1361517148,1361517149,1361517150,1361517151,1361517152,1361517153,1529289563,1529289564,1529289565,1529289566,1529289567,1529289568,1529289569,1529289819,1529289820,1529289821,1529289822,1529289823,1529289824,1529289825,1529290076,1529290077,1529290078,1529290079,1529290080,1529290081,1529290332,1529290333,1529290334,1529290335,1529290336,1529290337,1529290588,1529290589,1529290590,1529290591,1529290592,1529290593,1529290844,1529290845,1529290846,1529290847,1529290848,1529290849,1529291100,1529291101,1529291102,1529291103,1529291104,1529291105,1529291355,1529291356,1529291357,1529291358,1529291359,1529291360,1529291361,1529291611,1529291612,1529291613,1529291614,1529291615,1529291616,1529291617,1529291867,1529291868,1529291869,1529291870,1529291871,1529291872,1529291873,1529292123,1529292124,1529292125,1529292126,1529292127,1529292128,1529292129,1529292379,1529292380,1529292381,1529292382,1529292383,1529292384,1529292385,1529292635,1529292636,1529292637,1529292638,1529292639,1529292640,1529292641,1529292891,1529292892,1529292893,1529292894,1529292895,1529292896,1529292897,1529293147,1529293148,1529293149,1529293150,1529293151,1529293152,1529293153,1529293403,1529293404,1529293405,1529293406,1529293407,1529293408,1529293409,1529293659,1529293660,1529293661,1529293662,1529293663,1529293664,1529293665,1529293915,1529293916,1529293917,1529293918,1529293919,1529293920,1529293921,1529294171,1529294172,1529294173,1529294174,1529294175,1529294176,1529294177,1529294427,1529294428,1529294429,1529294430,1529294431,1529294432,1529294433,1529294683,1529294684,1529294685,1529294686,1529294687,1529294688,1529294689,1529294939,1529294940,1529294941,1529294942,1529294943,1529294944,1529294945,1529295195,1529295196,1529295197,1529295198,1529295199,1529295200,1529295201,1529295451,1529295452,1529295453,1529295454,1529295455,1529295456,1529295457,1529295707,1529295708,1529295709,1529295710,1529295711,1529295712,1529295713,1529295963,1529295964,1529295965,1529295966,1529295967,1529295968,1529295969,1529296219,1529296220,1529296221,1529296222,1529296223,1529296224,1529296225,1529296475,1529296476,1529296477,1529296478,1529296479,1529296480,1529296481,1529296731,1529296732,1529296733,1529296734,1529296735,1529296736,1529296737,1529296987,1529296988,1529296989,1529296990,1529296991,1529296992,1529296993,1529297243,1529297244,1529297245,1529297246,1529297247,1529297248,1529297249,1529297499,1529297500,1529297501,1529297502,1529297503,1529297504,1529297505,1529297755,1529297756,1529297757,1529297758,1529297759,1529297760,1529297761,1529298011,1529298012,1529298013,1529298014,1529298015,1529298016,1529298017,1529298267,1529298268,1529298269,1529298270,1529298271,1529298272,1529298273,1529301321,1529301322,1529301326,1529301327,1529301328,1529301329,1529301330,1529301331,1529301332,1529301333,1529301334,1529301335,1529301336,1529301577,1529301578,1529301582,1529301583,1529301584,1529301585,1529301586,1529301587,1529301588,1529301589,1529301590,1529301591,1529301592,1529301838,1529301839,1529301840,1529301841,1529301842,1529301843,1529301844,1529301845,1529301846,1529301847,1529301848,1529302094,1529302095,1529302096,1529302097,1529302098,1529302099,1529302100,1529302101,1529302102,1529302103,1529302104,1529302350,1529302351,1529302352,1529302353,1529302354,1529302355,1529302356,1529302357,1529302358,1529302359,1529302360,1529302601,1529302602,1529302603,1529302604,1529302605,1529302606,1529302607,1529302608,1529302609,1529302610,1529302611,1529302612,1529302613,1529302614,1529302615,1529302616,1529302857,1529302858,1529302859,1529302860,1529302861,1529302862,1529302863,1529302864,1529302865,1529302866,1529302867,1529302868,1529302869,1529302870,1529302871,1529302872,1529303113,1529303114,1529303115,1529303116,1529303117,1529303118,1529303119,1529303120,1529303121,1529303122,1529303123,1529303124,1529303125,1529303126,1529303127,1529303128,1529303368,1529303369,1529303370,1529303371,1529303372,1529303373,1529303374,1529303375,1529303376,1529303377,1529303378,1529303379,1529303380,1529303381,1529303382,1529303383,1529303384,1529303607,1529303608,1529303609,1529303610,1529303611,1529303612,1529303613,1529303614,1529303615,1529303616,1529303617,1529303618,1529303619,1529303620,1529303621,1529303622,1529303623,1529303624,1529303625,1529303626,1529303627,1529303628,1529303629,1529303630,1529303631,1529303632,1529303633,1529303634,1529303635,1529303636,1529303637,1529303638,1529303639,1529303640,1529303863,1529303864,1529303865,1529303866,1529303867,1529303868,1529303869,1529303870,1529303871,1529303872,1529303873,1529303874,1529303875,1529303876,1529303877,1529303878,1529303879,1529303880,1529303881,1529303882,1529303883,1529303884,1529303885,1529303886,1529303887,1529303888,1529303889,1529303890,1529303891,1529303892,1529303893,1529303894,1529303895,1529303896,1529304119,1529304120,1529304121,1529304122,1529304123,1529304124,1529304125,1529304126,1529304127,1529304128,1529304129,1529304130,1529304131,1529304132,1529304133,1529304134,1529304135,1529304136,1529304137,1529304138,1529304139,1529304140,1529304141,1529304142,1529304143,1529304144,1529304145,1529304146,1529304147,1529304148,1529304149,1529304150,1529304151,1529304152,1529304375,1529304376,1529304377,1529304378,1529304379,1529304380,1529304381,1529304382,1529304383,1529304384,1529304385,1529304386,1529304387,1529304388,1529304389,1529304390,1529304391,1529304392,1529304393,1529304394,1529304395,1529304396,1529304397,1529304398,1529304399,1529304400,1529304401,1529304402,1529304403,1529304404,1529304405,1529304406,1529304407,1529304408,1529304631,1529304632,1529304633,1529304634,1529304635,1529304636,1529304637,1529304638,1529304639,1529304640,1529304641,1529304642,1529304643,1529304644,1529304645,1529304646,1529304647,1529304648,1529304649,1529304650,1529304651,1529304652,1529304653,1529304654,1529304655,1529304656,1529304657,1529304658,1529304659,1529304660,1529304661,1529304662,1529304663,1529304664,1529304887,1529304888,1529304889,1529304890,1529304891,1529304892,1529304893,1529304894,1529304895,1529304896,1529304897,1529304898,1529304899,1529304900,1529304901,1529304902,1529304903,1529304904,1529304905,1529304906,1529304907,1529304908,1529304909,1529304910,1529304911,1529304912,1529304913,1529304914,1529304915,1529304916,1529304917,1529304918,1529304919,1529304920,1529305143,1529305144,1529305145,1529305146,1529305147,1529305148,1529305149,1529305150,1529305151,1529305152,1529305153,1529305154,1529305155,1529305156,1529305157,1529305158,1529305159,1529305160,1529305161,1529305162,1529305163,1529305164,1529305165,1529305166,1529305167,1529305168,1529305169,1529305170,1529305171,1529305172,1529305173,1529305174,1529305175,1529305176,1529305407,1529305408,1529305409,1529305410,1529305411,1529305412,1529305413,1529305414,1529305415,1529305416,1529305417,1529305418,1529305419,1529305420,1529305421,1529305422,1529305423,1529305424,1529305425,1529305426,1529305427,1529305428,1529305429,1529305430,1529305431,1529305432,1529305664,1529305665,1529305666,1529305667,1529305668,1529305669,1529305670,1529305671,1529305672,1529305673,1529305674,1529305675,1529305676,1529305677,1529305678,1529305679,1529305680,1529305681,1529305682,1529305683,1529305684,1529305685,1529305686,1529305687,1529305688,1366761566,1366761565,1366761564,1366761563,1361533719,1361533720,1361533721,1361533722,1529305883,1529305884,1529305885,1529305886,1529305887,1529305888,1529305889,1529305890,1529305891,1529305892,1529305893,1529305894,1529305895,1529305896,1529305897,1529305898,1529305899,1529305920,1529305921,1529305922,1529305923,1529305924,1529305925,1529305926,1529305927,1529305928,1529305929,1529305930,1529305931,1529305932,1529305933,1529305934,1529305935,1529305936,1529305937,1529305938,1529305939,1529305940,1529305941,1529305942,1529305943,1529305944,1366761313,1366761312,1366761311,1366761310,1361533975,1361533976,1361533977,1361533978,1529306139,1529306140,1529306141,1529306142,1529306143,1529306144,1529306145,1529306146,1529306147,1529306148,1529306149,1529306150,1529306151,1529306152,1529306153,1529306154,1529306155,1529306176,1529306177,1529306178,1529306179,1529306180,1529306181,1529306182,1529306183,1529306184,1529306185,1529306186,1529306187,1529306188,1529306189,1529306190,1529306191,1529306192,1529306193,1529306194,1529306195,1529306196,1529306197,1529306198,1529306199,1529306200,1366761309,1366761308,1366761307,1366761057,1361534231,1361534232,1361534233,1361534234,1529306395,1529306396,1529306397,1529306398,1529306399,1529306400,1529306401,1529306402,1529306403,1529306404,1529306405,1529306406,1529306407,1529306408,1529306409,1529306410,1529306411,1529306432,1529306433,1529306434,1529306435,1529306436,1529306437,1529306438,1529306439,1529306440,1529306441,1529306442,1529306443,1529306444,1529306445,1529306446,1529306447,1529306448,1529306449,1529306450,1529306451,1529306452,1529306453,1529306454,1529306455,1529306456,1366761056,1366761055,1366761054,1366761053,1361534487,1361534488,1361534489,1361534490,1529306651,1529306652,1529306653,1529306654,1529306655,1529306656,1529306657,1529306658,1529306659,1529306660,1529306661,1529306662,1529306663,1529306664,1529306665,1529306666,1529306667,1529306688,1529306689,1529306690,1529306691,1529306692,1529306693,1529306694,1529306695,1529306696,1529306697,1529306698,1529306699,1529306700,1529306701,1529306702,1529306703,1529306704,1529306705,1529306706,1529306707,1529306708,1529306709,1529306710,1529306711,1529306712,1366761052,1366761051,1366760801,1366760800,1361534743,1361534744,1361534745,1361534746,1529306907,1529306908,1529306909,1529306910,1529306911,1529306912,1529306913,1529306914,1529306915,1529306916,1529306917,1529306918,1529306919,1529306920,1529306921,1529306922,1529306923,1529306944,1529306945,1529306946,1529306947,1529306948,1529306949,1529306950,1529306951,1529306952,1529306953,1529306954,1529306955,1529306956,1529306957,1529306958,1529306959,1529306960,1529306961,1529306962,1529306963,1529306964,1529306965,1529306966,1529306967,1529306968,1366760799,1366760798,1366760797,1366760796,1361534999,1361535000,1361535001,1361535002,1529307163,1529307164,1529307165,1529307166,1529307167,1529307168,1529307169,1529307170,1529307171,1529307172,1529307173,1529307174,1529307175,1529307176,1529307177,1529307178,1529307179,1529307200,1529307201,1529307202,1529307203,1529307204,1529307205,1529307206,1529307207,1529307208,1529307209,1529307210,1529307211,1529307212,1529307213,1529307214,1529307215,1529307216,1529307217,1529307218,1529307219,1529307220,1529307221,1529307222,1529307223,1529307224,1366760795,1366760545,1366760544,1366760543,1361535255,1361535256,1361535257,1361535258,1529307419,1529307420,1529307421,1529307422,1529307423,1529307424,1529307425,1529307426,1529307427,1529307428,1529307429,1529307430,1529307431,1529307432,1529307433,1529307434,1529307435,1529307456,1529307457,1529307458,1529307459,1529307460,1529307461,1529307462,1529307463,1529307464,1529307465,1529307466,1529307467,1529307468,1529307469,1529307470,1529307471,1529307472,1529307473,1529307474,1529307475,1529307476,1529307477,1529307478,1529307479,1529307480,1361580891,1361580892,1361580893,1361580894,1361580895,1361580896,1361580897,1361581147,1361581148,1361581149,1361581150,1361581151,1361581152,1361581153,1361581403,1361581404,1361581405,1361581406,1361581407,1361581408,1361581409,1361581659,1361581660,1361581661,1361581662,1361581663,1361581664,1361581665,1361581915,1361581916,1361581917,1361581918,1361581919,1361581920,1361581921,1361582171,1361582172,1361582173,1361582174,1361582175,1361582176,1361582177,1361582427,1361582428,1361582429,1361582430,1361582431,1361582432,1361582433,1361582683,1361582684,1361582685,1361582686,1361582687,1361582688,1361582689,1529355099,1529355100,1529355101,1529355102,1529355103,1529355104,1529355105,1529355355,1529355356,1529355357,1529355358,1529355359,1529355360,1529355361,1529355611,1529355612,1529355613,1529355614,1529355615,1529355616,1529355617,1529355867,1529355868,1529355869,1529355870,1529355871,1529355872,1529355873,1529356123,1529356124,1529356125,1529356126,1529356127,1529356128,1529356129,1529356379,1529356380,1529356381,1529356382,1529356383,1529356384,1529356385,1529356635,1529356636,1529356637,1529356638,1529356639,1529356640,1529356641,1529356891,1529356892,1529356893,1529356894,1529356895,1529356896,1529356897,1529357147,1529357148,1529357149,1529357150,1529357151,1529357152,1529357153,1529357403,1529357404,1529357405,1529357406,1529357407,1529357408,1529357409,1529357659,1529357660,1529357661,1529357662,1529357663,1529357664,1529357665,1529357915,1529357916,1529357917,1529357918,1529357919,1529357920,1529357921,1529358171,1529358172,1529358173,1529358174,1529358175,1529358176,1529358177,1529358427,1529358428,1529358429,1529358430,1529358431,1529358432,1529358433,1529358683,1529358684,1529358685,1529358686,1529358687,1529358688,1529358689,1529358939,1529358940,1529358941,1529358942,1529358943,1529358944,1529358945,1529359195,1529359196,1529359197,1529359198,1529359199,1529359200,1529359201,1529359451,1529359452,1529359453,1529359454,1529359455,1529359456,1529359457,1529359707,1529359708,1529359709,1529359710,1529359711,1529359712,1529359713,1529359963,1529359964,1529359965,1529359966,1529359967,1529359968,1529359969,1529360219,1529360220,1529360221,1529360222,1529360223,1529360224,1529360225,1529360475,1529360476,1529360477,1529360478,1529360479,1529360480,1529360481,1529360731,1529360732,1529360733,1529360734,1529360735,1529360736,1529360737,1529360987,1529360988,1529360989,1529360990,1529360991,1529360992,1529360993,1529361243,1529361244,1529361245,1529361246,1529361247,1529361248,1529361249,1529361499,1529361500,1529361501,1529361502,1529361503,1529361504,1529361505,1529361755,1529361756,1529361757,1529361758,1529361759,1529361760,1529361761,1529362011,1529362012,1529362013,1529362014,1529362015,1529362016,1529362017,1529362267,1529362268,1529362269,1529362270,1529362271,1529362272,1529362273,1529362523,1529362524,1529362525,1529362526,1529362527,1529362528,1529362529,1529362779,1529362780,1529362781,1529362782,1529362783,1529362784,1529362785,1529363035,1529363036,1529363037,1529363038,1529363039,1529363040,1529363041,1529363291,1529363292,1529363293,1529363294,1529363295,1529363296,1529363297,1529363547,1529363548,1529363549,1529363550,1529363551,1529363552,1529363553,1529363803,1529363804,1529363805,1529363806,1529363807,1529363808,1529363809,1529366857,1529366863,1529366864,1529366865,1529366866,1529366867,1529366868,1529366869,1529366870,1529366871,1529366872,1529367119,1529367120,1529367121,1529367122,1529367123,1529367124,1529367125,1529367126,1529367127,1529367128,1529367375,1529367376,1529367377,1529367378,1529367379,1529367380,1529367381,1529367382,1529367383,1529367384,1529367631,1529367632,1529367633,1529367634,1529367635,1529367636,1529367637,1529367638,1529367639,1529367640,1529367887,1529367888,1529367889,1529367890,1529367891,1529367892,1529367893,1529367894,1529367895,1529367896,1529368142,1529368143,1529368144,1529368145,1529368146,1529368147,1529368148,1529368149,1529368150,1529368151,1529368152,1529368393,1529368394,1529368395,1529368396,1529368397,1529368398,1529368399,1529368400,1529368401,1529368402,1529368403,1529368404,1529368405,1529368406,1529368407,1529368408,1529368649,1529368650,1529368651,1529368652,1529368653,1529368654,1529368655,1529368656,1529368657,1529368658,1529368659,1529368660,1529368661,1529368662,1529368663,1529368664,1529368904,1529368905,1529368906,1529368907,1529368908,1529368909,1529368910,1529368911,1529368912,1529368913,1529368914,1529368915,1529368916,1529368917,1529368918,1529368919,1529368920,1529369143,1529369144,1529369145,1529369146,1529369147,1529369148,1529369149,1529369150,1529369151,1529369152,1529369153,1529369154,1529369155,1529369156,1529369157,1529369158,1529369159,1529369160,1529369161,1529369162,1529369163,1529369164,1529369165,1529369166,1529369167,1529369168,1529369169,1529369170,1529369171,1529369172,1529369173,1529369174,1529369175,1529369176,1529369399,1529369400,1529369401,1529369402,1529369403,1529369404,1529369405,1529369406,1529369407,1529369408,1529369409,1529369410,1529369411,1529369412,1529369413,1529369414,1529369415,1529369416,1529369417,1529369418,1529369419,1529369420,1529369421,1529369422,1529369423,1529369424,1529369425,1529369426,1529369427,1529369428,1529369429,1529369430,1529369431,1529369432,1529369655,1529369656,1529369657,1529369658,1529369659,1529369660,1529369661,1529369662,1529369663,1529369664,1529369665,1529369666,1529369667,1529369668,1529369669,1529369670,1529369671,1529369672,1529369673,1529369674,1529369675,1529369676,1529369677,1529369678,1529369679,1529369680,1529369681,1529369682,1529369683,1529369684,1529369685,1529369686,1529369687,1529369688,1529369911,1529369912,1529369913,1529369914,1529369915,1529369916,1529369917,1529369918,1529369919,1529369920,1529369921,1529369922,1529369923,1529369924,1529369925,1529369926,1529369927,1529369928,1529369929,1529369930,1529369931,1529369932,1529369933,1529369934,1529369935,1529369936,1529369937,1529369938,1529369939,1529369940,1529369941,1529369942,1529369943,1529369944,1529370167,1529370168,1529370169,1529370170,1529370171,1529370172,1529370173,1529370174,1529370175,1529370176,1529370177,1529370178,1529370179,1529370180,1529370181,1529370182,1529370183,1529370184,1529370185,1529370186,1529370187,1529370188,1529370189,1529370190,1529370191,1529370192,1529370193,1529370194,1529370195,1529370196,1529370197,1529370198,1529370199,1529370200,1529370423,1529370424,1529370425,1529370426,1529370427,1529370428,1529370429,1529370430,1529370431,1529370432,1529370433,1529370434,1529370435,1529370436,1529370437,1529370438,1529370439,1529370440,1529370441,1529370442,1529370443,1529370444,1529370445,1529370446,1529370447,1529370448,1529370449,1529370450,1529370451,1529370452,1529370453,1529370454,1529370455,1529370456,1529370679,1529370680,1529370681,1529370682,1529370683,1529370684,1529370685,1529370686,1529370687,1529370688,1529370689,1529370690,1529370691,1529370692,1529370693,1529370694,1529370695,1529370696,1529370697,1529370698,1529370699,1529370700,1529370701,1529370702,1529370703,1529370704,1529370705,1529370706,1529370707,1529370708,1529370709,1529370710,1529370711,1529370712,1529370943,1529370944,1529370945,1529370946,1529370947,1529370948,1529370949,1529370950,1529370951,1529370952,1529370953,1529370954,1529370955,1529370956,1529370957,1529370958,1529370959,1529370960,1529370961,1529370962,1529370963,1529370964,1529370965,1529370966,1529370967,1529370968,1529371200,1529371201,1529371202,1529371203,1529371204,1529371205,1529371206,1529371207,1529371208,1529371209,1529371210,1529371211,1529371212,1529371213,1529371214,1529371215,1529371216,1529371217,1529371218,1529371219,1529371220,1529371221,1529371222,1529371223,1529371224,1366760542,1366760541,1366760540,1366760539,1361599255,1361599256,1361599257,1361599258,1529371419,1529371420,1529371426,1529371427,1529371428,1529371429,1529371430,1529371431,1529371432,1529371433,1529371434,1529371435,1529371456,1529371457,1529371458,1529371459,1529371460,1529371461,1529371462,1529371463,1529371464,1529371465,1529371466,1529371467,1529371468,1529371469,1529371470,1529371471,1529371472,1529371473,1529371474,1529371475,1529371476,1529371477,1529371478,1529371479,1529371480,1366760289,1366760288,1366760287,1366760286,1361599511,1361599512,1361599513,1361599514,1529371675,1529371676,1529371677,1529371678,1529371679,1529371680,1529371681,1529371682,1529371683,1529371684,1529371685,1529371686,1529371687,1529371688,1529371689,1529371690,1529371691,1529371712,1529371713,1529371714,1529371715,1529371716,1529371717,1529371718,1529371719,1529371720,1529371721,1529371722,1529371723,1529371724,1529371725,1529371726,1529371727,1529371728,1529371729,1529371730,1529371731,1529371732,1529371733,1529371734,1529371735,1529371736,1366760285,1366760284,1366760283,1366760033,1361599767,1361599768,1361599769,1361599770,1529371931,1529371932,1529371933,1529371934,1529371935,1529371936,1529371937,1529371938,1529371939,1529371940,1529371941,1529371942,1529371943,1529371944,1529371945,1529371946,1529371947,1529371968,1529371969,1529371970,1529371971,1529371972,1529371973,1529371974,1529371975,1529371976,1529371977,1529371978,1529371979,1529371980,1529371981,1529371982,1529371983,1529371984,1529371985,1529371986,1529371987,1529371988,1529371989,1529371990,1529371991,1529371992,1366760032,1366760031,1366760030,1366760029,1361600023,1361600024,1361600025,1361600026,1529372187,1529372188,1529372189,1529372190,1529372191,1529372192,1529372193,1529372194,1529372195,1529372196,1529372197,1529372198,1529372199,1529372200,1529372201,1529372202,1529372203,1529372224,1529372225,1529372226,1529372227,1529372228,1529372229,1529372230,1529372231,1529372232,1529372233,1529372234,1529372235,1529372236,1529372237,1529372238,1529372239,1529372240,1529372241,1529372242,1529372243,1529372244,1529372245,1529372246,1529372247,1529372248,1366760028,1366760027,1366759777,1366759776,1361600279,1361600280,1361600281,1361600282,1529372443,1529372444,1529372445,1529372446,1529372447,1529372448,1529372449,1529372450,1529372451,1529372452,1529372453,1529372454,1529372455,1529372456,1529372457,1529372458,1529372459,1529372480,1529372481,1529372482,1529372483,1529372484,1529372485,1529372486,1529372487,1529372488,1529372489,1529372490,1529372491,1529372492,1529372493,1529372494,1529372495,1529372496,1529372497,1529372498,1529372499,1529372500,1529372501,1529372502,1529372503,1529372504,1366759775,1366759774,1366759773,1366759772,1361600535,1361600536,1361600537,1361600538,1529372699,1529372700,1529372701,1529372702,1529372703,1529372704,1529372705,1529372706,1529372707,1529372708,1529372709,1529372710,1529372711,1529372712,1529372713,1529372714,1529372715,1529372736,1529372737,1529372738,1529372739,1529372740,1529372741,1529372742,1529372743,1529372744,1529372745,1529372746,1529372747,1529372748,1529372749,1529372750,1529372751,1529372752,1529372753,1529372754,1529372755,1529372756,1529372757,1529372758,1529372759,1529372760,1366759771,1366759521,1366759520,1366759519,1361600791,1361600792,1361600793,1361600794,1529372955,1529372956,1529372957,1529372958,1529372959,1529372960,1529372961,1529372962,1529372963,1529372964,1529372965,1529372966,1529372967,1529372968,1529372969,1529372970,1529372971,1529372992,1529372993,1529372994,1529372995,1529372996,1529372997,1529372998,1529372999,1529373000,1529373001,1529373002,1529373003,1529373004,1529373005,1529373006,1529373007,1529373008,1529373009,1529373010,1529373011,1529373012,1529373013,1529373014,1529373015,1529373016,1361646427,1361646428,1361646429,1361646430,1361646431,1361646432,1361646433,1361646683,1361646684,1361646685,1361646686,1361646687,1361646688,1361646689,1361646939,1361646940,1361646941,1361646942,1361646943,1361646944,1361646945,1361647195,1361647196,1361647197,1361647198,1361647199,1361647200,1361647201,1361647451,1361647452,1361647453,1361647454,1361647455,1361647456,1361647457,1361647707,1361647708,1361647709,1361647710,1361647711,1361647712,1361647713,1361647963,1361647964,1361647965,1361647966,1361647967,1361647968,1361647969,1361648219,1361648220,1361648221,1361648222,1361648223,1361648224,1361648225,1529420635,1529420636,1529420637,1529420638,1529420639,1529420640,1529420641,1529420891,1529420892,1529420893,1529420894,1529420895,1529420896,1529420897,1529421148,1529421149,1529421150,1529421151,1529421152,1529421153,1529421404,1529421405,1529421406,1529421407,1529421408,1529421409,1529421660,1529421661,1529421662,1529421663,1529421664,1529421665,1529421916,1529421917,1529421918,1529421919,1529421920,1529421921,1529422172,1529422173,1529422174,1529422175,1529422176,1529422177,1529422427,1529422428,1529422429,1529422430,1529422431,1529422432,1529422433,1529422683,1529422684,1529422685,1529422686,1529422687,1529422688,1529422689,1529422939,1529422940,1529422941,1529422942,1529422943,1529422944,1529422945,1529423195,1529423196,1529423197,1529423198,1529423199,1529423200,1529423201,1529423451,1529423452,1529423453,1529423454,1529423455,1529423456,1529423457,1529423707,1529423708,1529423709,1529423710,1529423711,1529423712,1529423713,1529423963,1529423964,1529423965,1529423966,1529423967,1529423968,1529423969,1529424219,1529424220,1529424221,1529424222,1529424223,1529424224,1529424225,1529424475,1529424476,1529424477,1529424478,1529424479,1529424480,1529424481,1529424731,1529424732,1529424733,1529424734,1529424735,1529424736,1529424737,1529424987,1529424988,1529424989,1529424990,1529424991,1529424992,1529424993,1529425243,1529425244,1529425245,1529425246,1529425247,1529425248,1529425249,1529425499,1529425500,1529425501,1529425502,1529425503,1529425504,1529425505,1529425755,1529425756,1529425757,1529425758,1529425759,1529425760,1529425761,1529426011,1529426012,1529426013,1529426014,1529426015,1529426016,1529426017,1529426267,1529426268,1529426269,1529426270,1529426271,1529426272,1529426273,1529426523,1529426524,1529426525,1529426526,1529426527,1529426528,1529426529,1529426779,1529426780,1529426781,1529426782,1529426783,1529426784,1529426785,1529427035,1529427036,1529427037,1529427038,1529427039,1529427040,1529427041,1529427291,1529427292,1529427293,1529427294,1529427295,1529427296,1529427297,1529427547,1529427548,1529427549,1529427550,1529427551,1529427552,1529427553,1529427803,1529427804,1529427805,1529427806,1529427807,1529427808,1529427809,1529428059,1529428060,1529428061,1529428062,1529428063,1529428064,1529428065,1529428315,1529428316,1529428317,1529428318,1529428319,1529428320,1529428321,1529428571,1529428572,1529428573,1529428574,1529428575,1529428576,1529428577,1529428827,1529428828,1529428829,1529428830,1529428831,1529428832,1529428833,1529429083,1529429084,1529429085,1529429086,1529429087,1529429088,1529429089,1529429339,1529429340,1529429341,1529429342,1529429343,1529429344,1529429345,1529432393,1529432399,1529432400,1529432401,1529432402,1529432403,1529432404,1529432405,1529432406,1529432407,1529432408,1529432655,1529432656,1529432657,1529432658,1529432659,1529432660,1529432661,1529432662,1529432663,1529432664,1529432911,1529432912,1529432913,1529432914,1529432915,1529432916,1529432917,1529432918,1529432919,1529432920,1529433167,1529433168,1529433169,1529433170,1529433171,1529433172,1529433173,1529433174,1529433175,1529433176,1529433423,1529433424,1529433425,1529433426,1529433427,1529433428,1529433429,1529433430,1529433431,1529433432,1529433678,1529433679,1529433680,1529433681,1529433682,1529433683,1529433684,1529433685,1529433686,1529433687,1529433688,1529433929,1529433930,1529433931,1529433932,1529433933,1529433934,1529433935,1529433936,1529433937,1529433938,1529433939,1529433940,1529433941,1529433942,1529433943,1529433944,1529434185,1529434186,1529434187,1529434188,1529434189,1529434190,1529434191,1529434192,1529434193,1529434194,1529434195,1529434196,1529434197,1529434198,1529434199,1529434200,1529434440,1529434441,1529434442,1529434443,1529434444,1529434445,1529434446,1529434447,1529434448,1529434449,1529434450,1529434451,1529434452,1529434453,1529434454,1529434455,1529434456,1529434679,1529434680,1529434681,1529434682,1529434683,1529434684,1529434685,1529434686,1529434687,1529434688,1529434689,1529434690,1529434691,1529434692,1529434693,1529434694,1529434695,1529434696,1529434697,1529434698,1529434699,1529434700,1529434701,1529434702,1529434703,1529434704,1529434705,1529434706,1529434707,1529434708,1529434709,1529434710,1529434711,1529434712,1529434935,1529434936,1529434937,1529434938,1529434939,1529434940,1529434941,1529434942,1529434943,1529434944,1529434945,1529434946,1529434947,1529434948,1529434949,1529434950,1529434951,1529434952,1529434953,1529434954,1529434955,1529434956,1529434957,1529434958,1529434959,1529434960,1529434961,1529434962,1529434963,1529434964,1529434965,1529434966,1529434967,1529434968,1529435191,1529435192,1529435193,1529435194,1529435195,1529435196,1529435197,1529435198,1529435199,1529435200,1529435201,1529435202,1529435203,1529435204,1529435205,1529435206,1529435207,1529435208,1529435209,1529435210,1529435211,1529435212,1529435213,1529435214,1529435215,1529435216,1529435217,1529435218,1529435219,1529435220,1529435221,1529435222,1529435223,1529435224,1529435447,1529435448,1529435449,1529435450,1529435451,1529435452,1529435453,1529435454,1529435455,1529435456,1529435457,1529435458,1529435459,1529435460,1529435461,1529435462,1529435463,1529435464,1529435465,1529435466,1529435467,1529435468,1529435469,1529435470,1529435471,1529435472,1529435473,1529435474,1529435475,1529435476,1529435477,1529435478,1529435479,1529435480,1529435703,1529435704,1529435705,1529435706,1529435707,1529435708,1529435709,1529435710,1529435711,1529435712,1529435713,1529435714,1529435715,1529435716,1529435717,1529435718,1529435719,1529435720,1529435721,1529435722,1529435723,1529435724,1529435725,1529435726,1529435727,1529435728,1529435729,1529435730,1529435731,1529435732,1529435733,1529435734,1529435735,1529435736,1529435959,1529435960,1529435961,1529435962,1529435963,1529435964,1529435965,1529435966,1529435967,1529435968,1529435969,1529435970,1529435971,1529435972,1529435973,1529435974,1529435975,1529435976,1529435977,1529435978,1529435979,1529435980,1529435981,1529435982,1529435983,1529435984,1529435985,1529435986,1529435987,1529435988,1529435989,1529435990,1529435991,1529435992,1529436215,1529436216,1529436217,1529436218,1529436219,1529436220,1529436221,1529436222,1529436223,1529436224,1529436225,1529436226,1529436227,1529436228,1529436229,1529436230,1529436231,1529436232,1529436233,1529436234,1529436235,1529436236,1529436237,1529436238,1529436239,1529436240,1529436241,1529436242,1529436243,1529436244,1529436245,1529436246,1529436247,1529436248,1529436479,1529436480,1529436481,1529436482,1529436483,1529436484,1529436485,1529436486,1529436487,1529436488,1529436489,1529436490,1529436491,1529436492,1529436493,1529436494,1529436495,1529436496,1529436497,1529436498,1529436499,1529436500,1529436501,1529436502,1529436503,1529436504,1529436736,1529436737,1529436738,1529436739,1529436740,1529436741,1529436742,1529436743,1529436744,1529436745,1529436746,1529436747,1529436748,1529436749,1529436750,1529436751,1529436752,1529436753,1529436754,1529436755,1529436756,1529436757,1529436758,1529436759,1529436760,1366759518,1366759517,1366759516,1366759515,1361664791,1361664792,1361664793,1361664794,1529436955,1529436956,1529436957,1529436958,1529436959,1529436960,1529436961,1529436962,1529436963,1529436964,1529436965,1529436966,1529436967,1529436968,1529436969,1529436970,1529436971,1529436992,1529436993,1529436994,1529436995,1529436996,1529436997,1529436998,1529436999,1529437000,1529437001,1529437002,1529437003,1529437004,1529437005,1529437006,1529437007,1529437008,1529437009,1529437010,1529437011,1529437012,1529437013,1529437014,1529437015,1529437016,1366759265,1366759264,1366759263,1366759262,1361665047,1361665048,1361665049,1361665050,1529437211,1529437212,1529437213,1529437214,1529437215,1529437216,1529437217,1529437218,1529437219,1529437220,1529437221,1529437222,1529437223,1529437224,1529437225,1529437226,1529437227,1529437248,1529437249,1529437250,1529437251,1529437252,1529437253,1529437254,1529437255,1529437256,1529437257,1529437258,1529437259,1529437260,1529437261,1529437262,1529437263,1529437264,1529437265,1529437266,1529437267,1529437268,1529437269,1529437270,1529437271,1529437272,1366759261,1366759260,1366759259,1366759009,1361665303,1361665304,1361665305,1361665306,1529437467,1529437468,1529437469,1529437470,1529437471,1529437472,1529437473,1529437474,1529437475,1529437476,1529437477,1529437478,1529437479,1529437480,1529437481,1529437482,1529437483,1529437504,1529437505,1529437506,1529437507,1529437508,1529437509,1529437510,1529437511,1529437512,1529437513,1529437514,1529437515,1529437516,1529437517,1529437518,1529437519,1529437520,1529437521,1529437522,1529437523,1529437524,1529437525,1529437526,1529437527,1529437528,1366759008,1366759007,1366759006,1366759005,1361665559,1361665560,1361665561,1361665562,1529437723,1529437724,1529437725,1529437726,1529437727,1529437728,1529437729,1529437730,1529437731,1529437732,1529437733,1529437734,1529437735,1529437736,1529437737,1529437738,1529437739,1529437760,1529437761,1529437762,1529437763,1529437764,1529437765,1529437766,1529437767,1529437768,1529437769,1529437770,1529437771,1529437772,1529437773,1529437774,1529437775,1529437776,1529437777,1529437778,1529437779,1529437780,1529437781,1529437782,1529437783,1529437784,1366759004,1366759003,1366758753,1366758752,1361665815,1361665816,1361665817,1361665818,1529437979,1529437980,1529437981,1529437982,1529437983,1529437984,1529437985,1529437986,1529437987,1529437988,1529437989,1529437990,1529437991,1529437992,1529437993,1529437994,1529437995,1529438016,1529438017,1529438018,1529438019,1529438020,1529438021,1529438022,1529438023,1529438024,1529438025,1529438026,1529438027,1529438028,1529438029,1529438030,1529438031,1529438032,1529438033,1529438034,1529438035,1529438036,1529438037,1529438038,1529438039,1529438040,1366758751,1366758750,1366758749,1366758748,1361666071,1361666072,1361666073,1361666074,1529438235,1529438236,1529438237,1529438238,1529438239,1529438240,1529438241,1529438242,1529438243,1529438244,1529438245,1529438246,1529438247,1529438248,1529438249,1529438250,1529438251,1529438272,1529438273,1529438274,1529438275,1529438276,1529438277,1529438278,1529438279,1529438280,1529438281,1529438282,1529438283,1529438284,1529438285,1529438286,1529438287,1529438288,1529438289,1529438290,1529438291,1529438292,1529438293,1529438294,1529438295,1529438296,1366758747,1366758497,1366758496,1366758495,1361666327,1361666328,1361666329,1361666330,1529438491,1529438492,1529438493,1529438494,1529438495,1529438496,1529438497,1529438498,1529438499,1529438500,1529438501,1529438502,1529438503,1529438504,1529438505,1529438506,1529438507,1529438528,1529438529,1529438530,1529438531,1529438532,1529438533,1529438534,1529438535,1529438536,1529438537,1529438538,1529438539,1529438540,1529438541,1529438542,1529438543,1529438544,1529438545,1529438546,1529438547,1529438548,1529438549,1529438550,1529438551,1529438552,1361711963,1361711964,1361711965,1361711966,1361711967,1361711968,1361711969,1361712219,1361712220,1361712221,1361712222,1361712223,1361712224,1361712225,1361712475,1361712476,1361712477,1361712478,1361712479,1361712480,1361712481,1361712731,1361712732,1361712733,1361712734,1361712735,1361712736,1361712737,1361712987,1361712988,1361712989,1361712990,1361712991,1361712992,1361712993,1361713243,1361713244,1361713245,1361713246,1361713247,1361713248,1361713249,1361713499,1361713500,1361713501,1361713502,1361713503,1361713504,1361713505,1361713755,1361713756,1361713757,1361713758,1361713759,1361713760,1361713761,1529486171,1529486172,1529486173,1529486174,1529486175,1529486176,1529486177,1529486427,1529486428,1529486429,1529486430,1529486431,1529486432,1529486433,1529486683,1529486684,1529486685,1529486686,1529486687,1529486688,1529486689,1529486939,1529486940,1529486941,1529486942,1529486943,1529486944,1529486945,1529487195,1529487196,1529487197,1529487198,1529487199,1529487200,1529487201,1529487451,1529487452,1529487453,1529487454,1529487455,1529487456,1529487457,1529487707,1529487708,1529487709,1529487710,1529487711,1529487712,1529487713,1529487963,1529487964,1529487965,1529487966,1529487967,1529487968,1529487969,1529488219,1529488220,1529488221,1529488222,1529488223,1529488224,1529488225,1529488475,1529488476,1529488477,1529488478,1529488479,1529488480,1529488481,1529488731,1529488732,1529488733,1529488734,1529488735,1529488736,1529488737,1529488987,1529488988,1529488989,1529488990,1529488991,1529488992,1529488993,1529489243,1529489244,1529489245,1529489246,1529489247,1529489248,1529489249,1529489499,1529489500,1529489501,1529489502,1529489503,1529489504,1529489505,1529489755,1529489756,1529489757,1529489758,1529489759,1529489760,1529489761,1529490011,1529490012,1529490013,1529490014,1529490015,1529490016,1529490017,1529490267,1529490268,1529490269,1529490270,1529490271,1529490272,1529490273,1529490523,1529490524,1529490525,1529490526,1529490527,1529490528,1529490529,1529490779,1529490780,1529490781,1529490782,1529490783,1529490784,1529490785,1529491035,1529491036,1529491037,1529491038,1529491039,1529491040,1529491041,1529491291,1529491292,1529491293,1529491294,1529491295,1529491296,1529491297,1529491547,1529491548,1529491549,1529491550,1529491551,1529491552,1529491553,1529491803,1529491804,1529491805,1529491806,1529491807,1529491808,1529491809,1529492059,1529492060,1529492061,1529492062,1529492063,1529492064,1529492065,1529492315,1529492316,1529492317,1529492318,1529492319,1529492320,1529492321,1529492571,1529492572,1529492573,1529492574,1529492575,1529492576,1529492577,1529492827,1529492828,1529492829,1529492830,1529492831,1529492832,1529492833,1529493083,1529493084,1529493085,1529493086,1529493087,1529493088,1529493089,1529493339,1529493340,1529493341,1529493342,1529493343,1529493344,1529493345,1529493595,1529493596,1529493597,1529493598,1529493599,1529493600,1529493601,1529493851,1529493852,1529493853,1529493854,1529493855,1529493856,1529493857,1529494107,1529494108,1529494109,1529494110,1529494111,1529494112,1529494113,1529494363,1529494364,1529494365,1529494366,1529494367,1529494368,1529494369,1529494619,1529494620,1529494621,1529494622,1529494623,1529494624,1529494625,1529494875,1529494876,1529494877,1529494878,1529494879,1529494880,1529494881,1529497929,1529497935,1529497936,1529497937,1529497938,1529497939,1529497940,1529497941,1529497942,1529497943,1529497944,1529498191,1529498192,1529498193,1529498194,1529498195,1529498196,1529498197,1529498198,1529498199,1529498200,1529498447,1529498448,1529498449,1529498450,1529498451,1529498452,1529498453,1529498454,1529498455,1529498456,1529498703,1529498704,1529498705,1529498706,1529498707,1529498708,1529498709,1529498710,1529498711,1529498712,1529498959,1529498960,1529498961,1529498962,1529498963,1529498964,1529498965,1529498966,1529498967,1529498968,1529499214,1529499215,1529499216,1529499217,1529499218,1529499219,1529499220,1529499221,1529499222,1529499223,1529499224,1529499465,1529499466,1529499467,1529499468,1529499469,1529499470,1529499471,1529499472,1529499473,1529499474,1529499475,1529499476,1529499477,1529499478,1529499479,1529499480,1529499721,1529499722,1529499723,1529499724,1529499725,1529499726,1529499727,1529499728,1529499729,1529499730,1529499731,1529499732,1529499733,1529499734,1529499735,1529499736,1529499976,1529499977,1529499978,1529499979,1529499980,1529499981,1529499982,1529499983,1529499984,1529499985,1529499986,1529499987,1529499988,1529499989,1529499990,1529499991,1529499992,1529500215,1529500216,1529500217,1529500218,1529500219,1529500220,1529500221,1529500222,1529500223,1529500224,1529500225,1529500226,1529500227,1529500228,1529500229,1529500230,1529500231,1529500232,1529500233,1529500234,1529500235,1529500236,1529500237,1529500238,1529500239,1529500240,1529500241,1529500242,1529500243,1529500244,1529500245,1529500246,1529500247,1529500248,1529500471,1529500472,1529500473,1529500474,1529500475,1529500476,1529500477,1529500478,1529500479,1529500480,1529500481,1529500482,1529500483,1529500484,1529500485,1529500486,1529500487,1529500488,1529500489,1529500490,1529500491,1529500492,1529500493,1529500494,1529500495,1529500496,1529500497,1529500498,1529500499,1529500500,1529500501,1529500502,1529500503,1529500504,1529500727,1529500728,1529500729,1529500730,1529500731,1529500732,1529500733,1529500734,1529500735,1529500736,1529500737,1529500738,1529500739,1529500740,1529500741,1529500742,1529500743,1529500744,1529500745,1529500746,1529500747,1529500748,1529500749,1529500750,1529500751,1529500752,1529500753,1529500754,1529500755,1529500756,1529500757,1529500758,1529500759,1529500760,1529500983,1529500984,1529500985,1529500986,1529500987,1529500988,1529500989,1529500990,1529500991,1529500992,1529500993,1529500994,1529500995,1529500996,1529500997,1529500998,1529500999,1529501000,1529501001,1529501002,1529501003,1529501004,1529501005,1529501006,1529501007,1529501008,1529501009,1529501010,1529501011,1529501012,1529501013,1529501014,1529501015,1529501016,1529501239,1529501240,1529501241,1529501242,1529501243,1529501244,1529501245,1529501246,1529501247,1529501248,1529501249,1529501250,1529501251,1529501252,1529501253,1529501254,1529501255,1529501256,1529501257,1529501258,1529501259,1529501260,1529501261,1529501262,1529501263,1529501264,1529501265,1529501266,1529501267,1529501268,1529501269,1529501270,1529501271,1529501272,1529501495,1529501496,1529501497,1529501498,1529501499,1529501500,1529501501,1529501502,1529501503,1529501504,1529501505,1529501506,1529501507,1529501508,1529501509,1529501510,1529501511,1529501512,1529501513,1529501514,1529501515,1529501516,1529501517,1529501518,1529501519,1529501520,1529501521,1529501522,1529501523,1529501524,1529501525,1529501526,1529501527,1529501528,1529501751,1529501752,1529501753,1529501754,1529501755,1529501756,1529501757,1529501758,1529501759,1529501760,1529501761,1529501762,1529501763,1529501764,1529501765,1529501766,1529501767,1529501768,1529501769,1529501770,1529501771,1529501772,1529501773,1529501774,1529501775,1529501776,1529501777,1529501778,1529501779,1529501780,1529501781,1529501782,1529501783,1529501784,1529502015,1529502016,1529502017,1529502018,1529502019,1529502020,1529502021,1529502022,1529502023,1529502024,1529502025,1529502026,1529502027,1529502028,1529502029,1529502030,1529502031,1529502032,1529502033,1529502034,1529502035,1529502036,1529502037,1529502038,1529502039,1529502040,1529502272,1529502273,1529502274,1529502275,1529502276,1529502277,1529502278,1529502279,1529502280,1529502281,1529502282,1529502283,1529502284,1529502285,1529502286,1529502287,1529502288,1529502289,1529502290,1529502291,1529502292,1529502293,1529502294,1529502295,1529502296,1366758494,1366758493,1366758492,1366758491,1361730327,1361730328,1361730329,1361730330,1529502491,1529502492,1529502498,1529502499,1529502500,1529502501,1529502502,1529502503,1529502504,1529502505,1529502506,1529502507,1529502528,1529502529,1529502530,1529502531,1529502532,1529502533,1529502534,1529502535,1529502536,1529502537,1529502538,1529502539,1529502540,1529502541,1529502542,1529502543,1529502544,1529502545,1529502546,1529502547,1529502548,1529502549,1529502550,1529502551,1529502552,1366758241,1366758240,1366758239,1366758238,1361730583,1361730584,1361730585,1361730586,1529502747,1529502748,1529502749,1529502750,1529502751,1529502752,1529502753,1529502754,1529502755,1529502756,1529502757,1529502758,1529502759,1529502760,1529502761,1529502762,1529502763,1529502784,1529502785,1529502786,1529502787,1529502788,1529502789,1529502790,1529502791,1529502792,1529502793,1529502794,1529502795,1529502796,1529502797,1529502798,1529502799,1529502800,1529502801,1529502802,1529502803,1529502804,1529502805,1529502806,1529502807,1529502808,1366758237,1366758236,1366758235,1534484833,1361730839,1361730840,1361730841,1361730842,1529503003,1529503004,1529503005,1529503006,1529503007,1529503008,1529503009,1529503010,1529503011,1529503012,1529503013,1529503014,1529503015,1529503016,1529503017,1529503018,1529503019,1529503040,1529503041,1529503042,1529503043,1529503044,1529503045,1529503046,1529503047,1529503048,1529503049,1529503050,1529503051,1529503052,1529503053,1529503054,1529503055,1529503056,1529503057,1529503058,1529503059,1529503060,1529503061,1529503062,1529503063,1529503064,1534484832,1534484831,1534484830,1534484829,1361731095,1361731096,1361731097,1361731098,1529503259,1529503260,1529503261,1529503262,1529503263,1529503264,1529503265,1529503266,1529503267,1529503268,1529503269,1529503270,1529503271,1529503272,1529503273,1529503274,1529503275,1529503296,1529503297,1529503298,1529503299,1529503300,1529503301,1529503302,1529503303,1529503304,1529503305,1529503306,1529503307,1529503308,1529503309,1529503310,1529503311,1529503312,1529503313,1529503314,1529503315,1529503316,1529503317,1529503318,1529503319,1529503320,1534484828,1534484827,1534484826,1366712665,1361731351,1361731352,1361731353,1361731354,1529503515,1529503516,1529503517,1529503518,1529503519,1529503520,1529503521,1529503522,1529503523,1529503524,1529503525,1529503526,1529503527,1529503528,1529503529,1529503530,1529503531,1529503552,1529503553,1529503554,1529503555,1529503556,1529503557,1529503558,1529503559,1529503560,1529503561,1529503562,1529503563,1529503564,1529503565,1529503566,1529503567,1529503568,1529503569,1529503570,1529503571,1529503572,1529503573,1529503574,1529503575,1529503576,1366712664,1366712663,1366712662,1366712661,1361731607,1361731608,1361731609,1361731610,1529503771,1529503772,1529503773,1529503774,1529503775,1529503776,1529503777,1529503778,1529503779,1529503780,1529503781,1529503782,1529503783,1529503784,1529503785,1529503786,1529503787,1529503808,1529503809,1529503810,1529503811,1529503812,1529503813,1529503814,1529503815,1529503816,1529503817,1529503818,1529503819,1529503820,1529503821,1529503822,1529503823,1529503824,1529503825,1529503826,1529503827,1529503828,1529503829,1529503830,1529503831,1529503832,1366712660,1366712659,1366712658,1366712657,1361731863,1361731864,1361731865,1361731866,1529504027,1529504028,1529504029,1529504030,1529504031,1529504032,1529504033,1529504034,1529504035,1529504036,1529504037,1529504038,1529504039,1529504040,1529504041,1529504042,1529504043,1529504064,1529504065,1529504066,1529504067,1529504068,1529504069,1529504070,1529504071,1529504072,1529504073,1529504074,1529504075,1529504076,1529504077,1529504078,1529504079,1529504080,1529504081,1529504082,1529504083,1529504084,1529504085,1529504086,1529504087,1529504088,1361777499,1361777500,1361777501,1361777502,1361777503,1361777504,1361777505,1361777755,1361777756,1361777757,1361777758,1361777759,1361777760,1361777761,1361778011,1361778012,1361778013,1361778014,1361778015,1361778016,1361778017,1361778267,1361778268,1361778269,1361778270,1361778271,1361778272,1361778273,1361778523,1361778524,1361778525,1361778526,1361778527,1361778528,1361778529,1361778779,1361778780,1361778781,1361778782,1361778783,1361778784,1361778785,1361779035,1361779036,1361779037,1361779038,1361779039,1361779040,1361779041,1361779291,1361779292,1361779293,1361779294,1361779295,1361779296,1361779297,1529551707,1529551708,1529551709,1529551710,1529551711,1529551712,1529551713,1529551963,1529551964,1529551965,1529551966,1529551967,1529551968,1529551969,1529552220,1529552221,1529552222,1529552223,1529552224,1529552225,1529552476,1529552477,1529552478,1529552479,1529552480,1529552481,1529552732,1529552733,1529552734,1529552735,1529552736,1529552737,1529552988,1529552989,1529552990,1529552991,1529552992,1529552993,1529553244,1529553245,1529553246,1529553247,1529553248,1529553249,1529553499,1529553500,1529553501,1529553502,1529553503,1529553504,1529553505,1529553755,1529553756,1529553757,1529553758,1529553759,1529553760,1529553761,1529554011,1529554012,1529554013,1529554014,1529554015,1529554016,1529554017,1529554267,1529554268,1529554269,1529554270,1529554271,1529554272,1529554273,1529554523,1529554524,1529554525,1529554526,1529554527,1529554528,1529554529,1529554779,1529554780,1529554781,1529554782,1529554783,1529554784,1529554785,1529555035,1529555036,1529555037,1529555038,1529555039,1529555040,1529555041,1529555291,1529555292,1529555293,1529555294,1529555295,1529555296,1529555297,1529555547,1529555548,1529555549,1529555550,1529555551,1529555552,1529555553,1529555803,1529555804,1529555805,1529555806,1529555807,1529555808,1529555809,1529556059,1529556060,1529556061,1529556062,1529556063,1529556064,1529556065,1529556315,1529556316,1529556317,1529556318,1529556319,1529556320,1529556321,1529556571,1529556572,1529556573,1529556574,1529556575,1529556576,1529556577,1529556827,1529556828,1529556829,1529556830,1529556831,1529556832,1529556833,1529557083,1529557084,1529557085,1529557086,1529557087,1529557088,1529557089,1529557339,1529557340,1529557341,1529557342,1529557343,1529557344,1529557345,1529557595,1529557596,1529557597,1529557598,1529557599,1529557600,1529557601,1529557851,1529557852,1529557853,1529557854,1529557855,1529557856,1529557857,1529558107,1529558108,1529558109,1529558110,1529558111,1529558112,1529558113,1529558363,1529558364,1529558365,1529558366,1529558367,1529558368,1529558369,1529558619,1529558620,1529558621,1529558622,1529558623,1529558624,1529558625,1529558875,1529558876,1529558877,1529558878,1529558879,1529558880,1529558881,1529559131,1529559132,1529559133,1529559134,1529559135,1529559136,1529559137,1529559387,1529559388,1529559389,1529559390,1529559391,1529559392,1529559393,1529559643,1529559644,1529559645,1529559646,1529559647,1529559648,1529559649,1529559899,1529559900,1529559901,1529559902,1529559903,1529559904,1529559905,1529560155,1529560156,1529560157,1529560158,1529560159,1529560160,1529560161,1529560411,1529560412,1529560413,1529560414,1529560415,1529560416,1529560417,1529563465,1529563471,1529563472,1529563473,1529563474,1529563475,1529563476,1529563477,1529563478,1529563479,1529563480,1529563727,1529563728,1529563729,1529563730,1529563731,1529563732,1529563733,1529563734,1529563735,1529563736,1529563983,1529563984,1529563985,1529563986,1529563987,1529563988,1529563989,1529563990,1529563991,1529563992,1529564239,1529564240,1529564241,1529564242,1529564243,1529564244,1529564245,1529564246,1529564247,1529564248,1529564495,1529564496,1529564497,1529564498,1529564499,1529564500,1529564501,1529564502,1529564503,1529564504,1529564750,1529564751,1529564752,1529564753,1529564754,1529564755,1529564756,1529564757,1529564758,1529564759,1529564760,1529565001,1529565002,1529565003,1529565004,1529565005,1529565006,1529565007,1529565008,1529565009,1529565010,1529565011,1529565012,1529565013,1529565014,1529565015,1529565016,1529565257,1529565258,1529565259,1529565260,1529565261,1529565262,1529565263,1529565264,1529565265,1529565266,1529565267,1529565268,1529565269,1529565270,1529565271,1529565272,1529565512,1529565513,1529565514,1529565515,1529565516,1529565517,1529565518,1529565519,1529565520,1529565521,1529565522,1529565523,1529565524,1529565525,1529565526,1529565527,1529565528,1529565751,1529565752,1529565753,1529565754,1529565755,1529565756,1529565757,1529565758,1529565759,1529565760,1529565761,1529565762,1529565763,1529565764,1529565765,1529565766,1529565767,1529565768,1529565769,1529565770,1529565771,1529565772,1529565773,1529565774,1529565775,1529565776,1529565777,1529565778,1529565779,1529565780,1529565781,1529565782,1529565783,1529565784,1529566007,1529566008,1529566009,1529566010,1529566011,1529566012,1529566013,1529566014,1529566015,1529566016,1529566017,1529566018,1529566019,1529566020,1529566021,1529566022,1529566023,1529566024,1529566025,1529566026,1529566027,1529566028,1529566029,1529566030,1529566031,1529566032,1529566033,1529566034,1529566035,1529566036,1529566037,1529566038,1529566039,1529566040,1529566263,1529566264,1529566265,1529566266,1529566267,1529566268,1529566269,1529566270,1529566271,1529566272,1529566273,1529566274,1529566275,1529566276,1529566277,1529566278,1529566279,1529566280,1529566281,1529566282,1529566283,1529566284,1529566285,1529566286,1529566287,1529566288,1529566289,1529566290,1529566291,1529566292,1529566293,1529566294,1529566295,1529566296,1529566519,1529566520,1529566521,1529566522,1529566523,1529566524,1529566525,1529566526,1529566527,1529566528,1529566529,1529566530,1529566531,1529566532,1529566533,1529566534,1529566535,1529566536,1529566537,1529566538,1529566539,1529566540,1529566541,1529566542,1529566543,1529566544,1529566545,1529566546,1529566547,1529566548,1529566549,1529566550,1529566551,1529566552,1529566775,1529566776,1529566777,1529566778,1529566779,1529566780,1529566781,1529566782,1529566783,1529566784,1529566785,1529566786,1529566787,1529566788,1529566789,1529566790,1529566791,1529566792,1529566793,1529566794,1529566795,1529566796,1529566797,1529566798,1529566799,1529566800,1529566801,1529566802,1529566803,1529566804,1529566805,1529566806,1529566807,1529566808,1529567031,1529567032,1529567033,1529567034,1529567035,1529567036,1529567037,1529567038,1529567039,1529567040,1529567041,1529567042,1529567043,1529567044,1529567045,1529567046,1529567047,1529567048,1529567049,1529567050,1529567051,1529567052,1529567053,1529567054,1529567055,1529567056,1529567057,1529567058,1529567059,1529567060,1529567061,1529567062,1529567063,1529567064,1529567287,1529567288,1529567289,1529567290,1529567291,1529567292,1529567293,1529567294,1529567295,1529567296,1529567297,1529567298,1529567299,1529567300,1529567301,1529567302,1529567303,1529567304,1529567305,1529567306,1529567307,1529567308,1529567309,1529567310,1529567311,1529567312,1529567313,1529567314,1529567315,1529567316,1529567317,1529567318,1529567319,1529567320,1529567551,1529567552,1529567553,1529567554,1529567555,1529567556,1529567557,1529567558,1529567559,1529567560,1529567561,1529567562,1529567563,1529567564,1529567565,1529567566,1529567567,1529567568,1529567569,1529567570,1529567571,1529567572,1529567573,1529567574,1529567575,1529567576,1529567808,1529567809,1529567810,1529567811,1529567812,1529567813,1529567814,1529567815,1529567816,1529567817,1529567818,1529567819,1529567820,1529567821,1529567822,1529567823,1529567824,1529567825,1529567826,1529567827,1529567828,1529567829,1529567830,1529567831,1529567832,1366712656,1366712655,1366712654,1366712653,1361795863,1361795864,1361795865,1361795866,1529568027,1529568028,1529568029,1529568030,1529568031,1529568032,1529568033,1529568034,1529568035,1529568036,1529568037,1529568038,1529568039,1529568040,1529568041,1529568042,1529568043,1529568064,1529568065,1529568066,1529568067,1529568068,1529568069,1529568070,1529568071,1529568072,1529568073,1529568074,1529568075,1529568076,1529568077,1529568078,1529568079,1529568080,1529568081,1529568082,1529568083,1529568084,1529568085,1529568086,1529568087,1529568088,1366712652,1366712651,1366712650,1366712649,1361796119,1361796120,1361796121,1361796122,1529568283,1529568284,1529568285,1529568286,1529568287,1529568288,1529568289,1529568290,1529568291,1529568292,1529568293,1529568294,1529568295,1529568296,1529568297,1529568298,1529568299,1529568320,1529568321,1529568322,1529568323,1529568324,1529568325,1529568326,1529568327,1529568328,1529568329,1529568330,1529568331,1529568332,1529568333,1529568334,1529568335,1529568336,1529568337,1529568338,1529568339,1529568340,1529568341,1529568342,1529568343,1529568344,1366712648,1366712647,1366712646,1366712645,1361796375,1361796376,1361796377,1361796378,1529568539,1529568540,1529568541,1529568542,1529568543,1529568544,1529568545,1529568546,1529568547,1529568548,1529568549,1529568550,1529568551,1529568552,1529568553,1529568554,1529568555,1529568576,1529568577,1529568578,1529568579,1529568580,1529568581,1529568582,1529568583,1529568584,1529568585,1529568586,1529568587,1529568588,1529568589,1529568590,1529568591,1529568592,1529568593,1529568594,1529568595,1529568596,1529568597,1529568598,1529568599,1529568600,1366712644,1366712643,1366712642,1366712641,1361796631,1361796632,1361796633,1361796634,1529568795,1529568796,1529568797,1529568798,1529568799,1529568800,1529568801,1529568802,1529568803,1529568804,1529568805,1529568806,1529568807,1529568808,1529568809,1529568810,1529568811,1529568832,1529568833,1529568834,1529568835,1529568836,1529568837,1529568838,1529568839,1529568840,1529568841,1529568842,1529568843,1529568844,1529568845,1529568846,1529568847,1529568848,1529568849,1529568850,1529568851,1529568852,1529568853,1529568854,1529568855,1529568856,1366712640,1366712639,1366712638,1366712637,1361796887,1361796888,1361796889,1361796890,1529569051,1529569052,1529569053,1529569054,1529569055,1529569056,1529569057,1529569058,1529569059,1529569060,1529569061,1529569062,1529569063,1529569064,1529569065,1529569066,1529569067,1529569088,1529569089,1529569090,1529569091,1529569092,1529569093,1529569094,1529569095,1529569096,1529569097,1529569098,1529569099,1529569100,1529569101,1529569102,1529569103,1529569104,1529569105,1529569106,1529569107,1529569108,1529569109,1529569110,1529569111,1529569112,1366712636,1366712635,1366712634,1366712633,1361797143,1361797144,1361797145,1361797146,1529569307,1529569308,1529569309,1529569310,1529569311,1529569312,1529569313,1529569314,1529569315,1529569316,1529569317,1529569318,1529569319,1529569320,1529569321,1529569322,1529569323,1529569344,1529569345,1529569346,1529569347,1529569348,1529569349,1529569350,1529569351,1529569352,1529569353,1529569354,1529569355,1529569356,1529569357,1529569358,1529569359,1529569360,1529569361,1529569362,1529569363,1529569364,1529569365,1529569366,1529569367,1529569368,1366712632,1366712631,1366712630,1366712629,1361797399,1361797400,1361797401,1361797402,1529569563,1529569564,1529569565,1529569566,1529569567,1529569568,1529569569,1529569570,1529569571,1529569572,1529569573,1529569574,1529569575,1529569576,1529569577,1529569578,1529569579,1529569600,1529569601,1529569602,1529569603,1529569604,1529569605,1529569606,1529569607,1529569608,1529569609,1529569610,1529569611,1529569612,1529569613,1529569614,1529569615,1529569616,1529569617,1529569618,1529569619,1529569620,1529569621,1529569622,1529569623,1529569624,1361843035,1361843036,1361843037,1361843038,1361843039,1361843040,1361843041,1361843291,1361843292,1361843293,1361843294,1361843295,1361843296,1361843297,1361843547,1361843548,1361843549,1361843550,1361843551,1361843552,1361843553,1361843803,1361843804,1361843805,1361843806,1361843807,1361843808,1361843809,1361844059,1361844060,1361844061,1361844062,1361844063,1361844064,1361844065,1361844315,1361844316,1361844317,1361844318,1361844319,1361844320,1361844321,1361844571,1361844572,1361844573,1361844574,1361844575,1361844576,1361844577,1361844827,1361844828,1361844829,1361844830,1361844831,1361844832,1361844833,1529617243,1529617244,1529617245,1529617246,1529617247,1529617248,1529617249,1529617499,1529617500,1529617501,1529617502,1529617503,1529617504,1529617505,1529617755,1529617756,1529617757,1529617758,1529617759,1529617760,1529617761,1529618011,1529618012,1529618013,1529618014,1529618015,1529618016,1529618017,1529618267,1529618268,1529618269,1529618270,1529618271,1529618272,1529618273,1529618523,1529618524,1529618525,1529618526,1529618527,1529618528,1529618529,1529618779,1529618780,1529618781,1529618782,1529618783,1529618784,1529618785,1529619035,1529619036,1529619037,1529619038,1529619039,1529619040,1529619041,1529619291,1529619292,1529619293,1529619294,1529619295,1529619296,1529619297,1529619547,1529619548,1529619549,1529619550,1529619551,1529619552,1529619553,1529619803,1529619804,1529619805,1529619806,1529619807,1529619808,1529619809,1529620059,1529620060,1529620061,1529620062,1529620063,1529620064,1529620065,1529620315,1529620316,1529620317,1529620318,1529620319,1529620320,1529620321,1529620571,1529620572,1529620573,1529620574,1529620575,1529620576,1529620577,1529620827,1529620828,1529620829,1529620830,1529620831,1529620832,1529620833,1529621083,1529621084,1529621085,1529621086,1529621087,1529621088,1529621089,1529621339,1529621340,1529621341,1529621342,1529621343,1529621344,1529621345,1529621595,1529621596,1529621597,1529621598,1529621599,1529621600,1529621601,1529621851,1529621852,1529621853,1529621854,1529621855,1529621856,1529621857,1529622107,1529622108,1529622109,1529622110,1529622111,1529622112,1529622113,1529622363,1529622364,1529622365,1529622366,1529622367,1529622368,1529622369,1529622619,1529622620,1529622621,1529622622,1529622623,1529622624,1529622625,1529622875,1529622876,1529622877,1529622878,1529622879,1529622880,1529622881,1529623131,1529623132,1529623133,1529623134,1529623135,1529623136,1529623137,1529623387,1529623388,1529623389,1529623390,1529623391,1529623392,1529623393,1529623643,1529623644,1529623645,1529623646,1529623647,1529623648,1529623649,1529623899,1529623900,1529623901,1529623902,1529623903,1529623904,1529623905,1529624155,1529624156,1529624157,1529624158,1529624159,1529624160,1529624161,1529624411,1529624412,1529624413,1529624414,1529624415,1529624416,1529624417,1529624667,1529624668,1529624669,1529624670,1529624671,1529624672,1529624673,1529624923,1529624924,1529624925,1529624926,1529624927,1529624928,1529624929,1529625179,1529625180,1529625181,1529625182,1529625183,1529625184,1529625185,1529625435,1529625436,1529625437,1529625438,1529625439,1529625440,1529625441,1529625691,1529625692,1529625693,1529625694,1529625695,1529625696,1529625697,1529625947,1529625948,1529625949,1529625950,1529625951,1529625952,1529625953,1529629001,1529629007,1529629008,1529629009,1529629010,1529629011,1529629012,1529629013,1529629014,1529629015,1529629016,1529629263,1529629264,1529629265,1529629266,1529629267,1529629268,1529629269,1529629270,1529629271,1529629272,1529629519,1529629520,1529629521,1529629522,1529629523,1529629524,1529629525,1529629526,1529629527,1529629528,1529629775,1529629776,1529629777,1529629778,1529629779,1529629780,1529629781,1529629782,1529629783,1529629784,1529630031,1529630032,1529630033,1529630034,1529630035,1529630036,1529630037,1529630038,1529630039,1529630040,1529630286,1529630287,1529630288,1529630289,1529630290,1529630291,1529630292,1529630293,1529630294,1529630295,1529630296,1529630537,1529630538,1529630539,1529630540,1529630541,1529630542,1529630543,1529630544,1529630545,1529630546,1529630547,1529630548,1529630549,1529630550,1529630551,1529630552,1529630793,1529630794,1529630795,1529630796,1529630797,1529630798,1529630799,1529630800,1529630801,1529630802,1529630803,1529630804,1529630805,1529630806,1529630807,1529630808,1529631048,1529631049,1529631050,1529631051,1529631052,1529631053,1529631054,1529631055,1529631056,1529631057,1529631058,1529631059,1529631060,1529631061,1529631062,1529631063,1529631064,1529631287,1529631288,1529631289,1529631290,1529631291,1529631292,1529631293,1529631294,1529631295,1529631296,1529631297,1529631298,1529631299,1529631300,1529631301,1529631302,1529631303,1529631304,1529631305,1529631306,1529631307,1529631308,1529631309,1529631310,1529631311,1529631312,1529631313,1529631314,1529631315,1529631316,1529631317,1529631318,1529631319,1529631320,1529631543,1529631544,1529631545,1529631546,1529631547,1529631548,1529631549,1529631550,1529631551,1529631552,1529631553,1529631554,1529631555,1529631556,1529631557,1529631558,1529631559,1529631560,1529631561,1529631562,1529631563,1529631564,1529631565,1529631566,1529631567,1529631568,1529631569,1529631570,1529631571,1529631572,1529631573,1529631574,1529631575,1529631576,1529631799,1529631800,1529631801,1529631802,1529631803,1529631804,1529631805,1529631806,1529631807,1529631808,1529631809,1529631810,1529631811,1529631812,1529631813,1529631814,1529631815,1529631816,1529631817,1529631818,1529631819,1529631820,1529631821,1529631822,1529631823,1529631824,1529631825,1529631826,1529631827,1529631828,1529631829,1529631830,1529631831,1529631832,1529632055,1529632056,1529632057,1529632058,1529632059,1529632060,1529632061,1529632062,1529632063,1529632064,1529632065,1529632066,1529632067,1529632068,1529632069,1529632070,1529632071,1529632072,1529632073,1529632074,1529632075,1529632076,1529632077,1529632078,1529632079,1529632080,1529632081,1529632082,1529632083,1529632084,1529632085,1529632086,1529632087,1529632088,1529632311,1529632312,1529632313,1529632314,1529632315,1529632316,1529632317,1529632318,1529632319,1529632320,1529632321,1529632322,1529632323,1529632324,1529632325,1529632326,1529632327,1529632328,1529632329,1529632330,1529632331,1529632332,1529632333,1529632334,1529632335,1529632336,1529632337,1529632338,1529632339,1529632340,1529632341,1529632342,1529632343,1529632344,1529632567,1529632568,1529632569,1529632570,1529632571,1529632572,1529632573,1529632574,1529632575,1529632576,1529632577,1529632578,1529632579,1529632580,1529632581,1529632582,1529632583,1529632584,1529632585,1529632586,1529632587,1529632588,1529632589,1529632590,1529632591,1529632592,1529632593,1529632594,1529632595,1529632596,1529632597,1529632598,1529632599,1529632600,1529632823,1529632824,1529632825,1529632826,1529632827,1529632828,1529632829,1529632830,1529632831,1529632832,1529632833,1529632834,1529632835,1529632836,1529632837,1529632838,1529632839,1529632840,1529632841,1529632842,1529632843,1529632844,1529632845,1529632846,1529632847,1529632848,1529632849,1529632850,1529632851,1529632852,1529632853,1529632854,1529632855,1529632856,1529633087,1529633088,1529633089,1529633090,1529633091,1529633092,1529633093,1529633094,1529633095,1529633096,1529633097,1529633098,1529633099,1529633100,1529633101,1529633102,1529633103,1529633104,1529633105,1529633106,1529633107,1529633108,1529633109,1529633110,1529633111,1529633112,1529633344,1529633345,1529633346,1529633347,1529633348,1529633349,1529633350,1529633351,1529633352,1529633353,1529633354,1529633355,1529633356,1529633357,1529633358,1529633359,1529633360,1529633361,1529633362,1529633363,1529633364,1529633365,1529633366,1529633367,1529633368,1366712628,1366712627,1366712626,1366712625,1361861399,1361861400,1361861401,1361861402,1529633563,1529633564,1529633570,1529633571,1529633572,1529633573,1529633574,1529633575,1529633576,1529633577,1529633578,1529633579,1529633600,1529633601,1529633602,1529633603,1529633604,1529633605,1529633606,1529633607,1529633608,1529633609,1529633610,1529633611,1529633612,1529633613,1529633614,1529633615,1529633616,1529633617,1529633618,1529633619,1529633620,1529633621,1529633622,1529633623,1529633624,1366712624,1366712623,1366712622,1366712621,1361861655,1361861656,1361861657,1361861658,1529633819,1529633820,1529633821,1529633822,1529633823,1529633824,1529633825,1529633826,1529633827,1529633828,1529633829,1529633830,1529633831,1529633832,1529633833,1529633834,1529633835,1529633856,1529633857,1529633858,1529633859,1529633860,1529633861,1529633862,1529633863,1529633864,1529633865,1529633866,1529633867,1529633868,1529633869,1529633870,1529633871,1529633872,1529633873,1529633874,1529633875,1529633876,1529633877,1529633878,1529633879,1529633880,1366712620,1366712619,1366712618,1366712617,1361861911,1361861912,1361861913,1361861914,1529634075,1529634076,1529634077,1529634078,1529634079,1529634080,1529634081,1529634082,1529634083,1529634084,1529634085,1529634086,1529634087,1529634088,1529634089,1529634090,1529634091,1529634112,1529634113,1529634114,1529634115,1529634116,1529634117,1529634118,1529634119,1529634120,1529634121,1529634122,1529634123,1529634124,1529634125,1529634126,1529634127,1529634128,1529634129,1529634130,1529634131,1529634132,1529634133,1529634134,1529634135,1529634136,1366712616,1366712615,1366712614,1366712613,1361862167,1361862168,1361862169,1361862170,1529634331,1529634332,1529634333,1529634334,1529634335,1529634336,1529634337,1529634338,1529634339,1529634340,1529634341,1529634342,1529634343,1529634344,1529634345,1529634346,1529634347,1529634368,1529634369,1529634370,1529634371,1529634372,1529634373,1529634374,1529634375,1529634376,1529634377,1529634378,1529634379,1529634380,1529634381,1529634382,1529634383,1529634384,1529634385,1529634386,1529634387,1529634388,1529634389,1529634390,1529634391,1529634392,1366712612,1366712611,1366712610,1366712609,1361862423,1361862424,1361862425,1361862426,1529634587,1529634588,1529634589,1529634590,1529634591,1529634592,1529634593,1529634594,1529634595,1529634596,1529634597,1529634598,1529634599,1529634600,1529634601,1529634602,1529634603,1529634624,1529634625,1529634626,1529634627,1529634628,1529634629,1529634630,1529634631,1529634632,1529634633,1529634634,1529634635,1529634636,1529634637,1529634638,1529634639,1529634640,1529634641,1529634642,1529634643,1529634644,1529634645,1529634646,1529634647,1529634648,1366712608,1366712607,1366712606,1366712605,1361862679,1361862680,1361862681,1361862682,1529634843,1529634844,1529634845,1529634846,1529634847,1529634848,1529634849,1529634850,1529634851,1529634852,1529634853,1529634854,1529634855,1529634856,1529634857,1529634858,1529634859,1529634880,1529634881,1529634882,1529634883,1529634884,1529634885,1529634886,1529634887,1529634888,1529634889,1529634890,1529634891,1529634892,1529634893,1529634894,1529634895,1529634896,1529634897,1529634898,1529634899,1529634900,1529634901,1529634902,1529634903,1529634904,1366712604,1366712603,1366712602,1366712601,1361862935,1361862936,1361862937,1361862938,1529635099,1529635100,1529635101,1529635102,1529635103,1529635104,1529635105,1529635106,1529635107,1529635108,1529635109,1529635110,1529635111,1529635112,1529635113,1529635114,1529635115,1529635136,1529635137,1529635138,1529635139,1529635140,1529635141,1529635142,1529635143,1529635144,1529635145,1529635146,1529635147,1529635148,1529635149,1529635150,1529635151,1529635152,1529635153,1529635154,1529635155,1529635156,1529635157,1529635158,1529635159,1529635160,1361908571,1361908572,1361908573,1361908574,1361908575,1361908576,1361908577,1361908827,1361908828,1361908829,1361908830,1361908831,1361908832,1361908833,1361909083,1361909084,1361909085,1361909086,1361909087,1361909088,1361909089,1361909339,1361909340,1361909341,1361909342,1361909343,1361909344,1361909345,1361909595,1361909596,1361909597,1361909598,1361909599,1361909600,1361909601,1361909851,1361909852,1361909853,1361909854,1361909855,1361909856,1361909857,1361910107,1361910108,1361910109,1361910110,1361910111,1361910112,1361910113,1361910363,1361910364,1361910365,1361910366,1361910367,1361910368,1361910369,1529682779,1529682780,1529682781,1529682782,1529682783,1529682784,1529682785,1529683035,1529683036,1529683037,1529683038,1529683039,1529683040,1529683041,1529683292,1529683293,1529683294,1529683295,1529683296,1529683297,1529683548,1529683549,1529683550,1529683551,1529683552,1529683553,1529683804,1529683805,1529683806,1529683807,1529683808,1529683809,1529684060,1529684061,1529684062,1529684063,1529684064,1529684065,1529684316,1529684317,1529684318,1529684319,1529684320,1529684321,1529684571,1529684572,1529684573,1529684574,1529684575,1529684576,1529684577,1529684827,1529684828,1529684829,1529684830,1529684831,1529684832,1529684833,1529685083,1529685084,1529685085,1529685086,1529685087,1529685088,1529685089,1529685339,1529685340,1529685341,1529685342,1529685343,1529685344,1529685345,1529685595,1529685596,1529685597,1529685598,1529685599,1529685600,1529685601,1529685851,1529685852,1529685853,1529685854,1529685855,1529685856,1529685857,1529686107,1529686108,1529686109,1529686110,1529686111,1529686112,1529686113,1529686363,1529686364,1529686365,1529686366,1529686367,1529686368,1529686369,1529686619,1529686620,1529686621,1529686622,1529686623,1529686624,1529686625,1529686875,1529686876,1529686877,1529686878,1529686879,1529686880,1529686881,1529687131,1529687132,1529687133,1529687134,1529687135,1529687136,1529687137,1529687387,1529687388,1529687389,1529687390,1529687391,1529687392,1529687393,1529687643,1529687644,1529687645,1529687646,1529687647,1529687648,1529687649,1529687899,1529687900,1529687901,1529687902,1529687903,1529687904,1529687905,1529688155,1529688156,1529688157,1529688158,1529688159,1529688160,1529688161,1529688411,1529688412,1529688413,1529688414,1529688415,1529688416,1529688417,1529688667,1529688668,1529688669,1529688670,1529688671,1529688672,1529688673,1529688923,1529688924,1529688925,1529688926,1529688927,1529688928,1529688929,1529689179,1529689180,1529689181,1529689182,1529689183,1529689184,1529689185,1529689435,1529689436,1529689437,1529689438,1529689439,1529689440,1529689441,1529689691,1529689692,1529689693,1529689694,1529689695,1529689696,1529689697,1529689947,1529689948,1529689949,1529689950,1529689951,1529689952,1529689953,1529690203,1529690204,1529690205,1529690206,1529690207,1529690208,1529690209,1529690459,1529690460,1529690461,1529690462,1529690463,1529690464,1529690465,1529690715,1529690716,1529690717,1529690718,1529690719,1529690720,1529690721,1529690971,1529690972,1529690973,1529690974,1529690975,1529690976,1529690977,1529691227,1529691228,1529691229,1529691230,1529691231,1529691232,1529691233,1529691483,1529691484,1529691485,1529691486,1529691487,1529691488,1529691489,1529694537,1529694543,1529694544,1529694545,1529694546,1529694547,1529694548,1529694549,1529694550,1529694551,1529694552,1529694553,1529694799,1529694800,1529694801,1529694802,1529694803,1529694804,1529694805,1529694806,1529694807,1529694808,1529694809,1529695055,1529695056,1529695057,1529695058,1529695059,1529695060,1529695061,1529695062,1529695063,1529695064,1529695065,1529695311,1529695312,1529695313,1529695314,1529695315,1529695316,1529695317,1529695318,1529695319,1529695320,1529695321,1529695567,1529695568,1529695569,1529695570,1529695571,1529695572,1529695573,1529695574,1529695575,1529695576,1529695577,1529695822,1529695823,1529695824,1529695825,1529695826,1529695827,1529695828,1529695829,1529695830,1529695831,1529695832,1529695833,1529696073,1529696074,1529696075,1529696076,1529696077,1529696078,1529696079,1529696080,1529696081,1529696082,1529696083,1529696084,1529696085,1529696086,1529696087,1529696088,1529696089,1529696329,1529696330,1529696331,1529696332,1529696333,1529696334,1529696335,1529696336,1529696337,1529696338,1529696339,1529696340,1529696341,1529696342,1529696343,1529696344,1529696345,1529696584,1529696585,1529696586,1529696587,1529696588,1529696589,1529696590,1529696591,1529696592,1529696593,1529696594,1529696595,1529696596,1529696597,1529696598,1529696599,1529696600,1529696601,1529696823,1529696824,1529696825,1529696826,1529696827,1529696828,1529696829,1529696830,1529696831,1529696832,1529696833,1529696834,1529696835,1529696836,1529696837,1529696838,1529696839,1529696840,1529696841,1529696842,1529696843,1529696844,1529696845,1529696846,1529696847,1529696848,1529696849,1529696850,1529696851,1529696852,1529696853,1529696854,1529696855,1529696856,1529696857,1529697079,1529697080,1529697081,1529697082,1529697083,1529697084,1529697085,1529697086,1529697087,1529697088,1529697089,1529697090,1529697091,1529697092,1529697093,1529697094,1529697095,1529697096,1529697097,1529697098,1529697099,1529697100,1529697101,1529697102,1529697103,1529697104,1529697105,1529697106,1529697107,1529697108,1529697109,1529697110,1529697111,1529697112,1529697113,1529697335,1529697336,1529697337,1529697338,1529697339,1529697340,1529697341,1529697342,1529697343,1529697344,1529697345,1529697346,1529697347,1529697348,1529697349,1529697350,1529697351,1529697352,1529697353,1529697354,1529697355,1529697356,1529697357,1529697358,1529697359,1529697360,1529697361,1529697362,1529697363,1529697364,1529697365,1529697366,1529697367,1529697368,1529697369,1529697591,1529697592,1529697593,1529697594,1529697595,1529697596,1529697597,1529697598,1529697599,1529697600,1529697601,1529697602,1529697603,1529697604,1529697605,1529697606,1529697607,1529697608,1529697609,1529697610,1529697611,1529697612,1529697613,1529697614,1529697615,1529697616,1529697617,1529697618,1529697619,1529697620,1529697621,1529697622,1529697623,1529697624,1529697625,1529697847,1529697848,1529697849,1529697850,1529697851,1529697852,1529697853,1529697854,1529697855,1529697856,1529697857,1529697858,1529697859,1529697860,1529697861,1529697862,1529697863,1529697864,1529697865,1529697866,1529697867,1529697868,1529697869,1529697870,1529697871,1529697872,1529697873,1529697874,1529697875,1529697876,1529697877,1529697878,1529697879,1529697880,1529697881,1529698103,1529698104,1529698105,1529698106,1529698107,1529698108,1529698109,1529698110,1529698111,1529698112,1529698113,1529698114,1529698115,1529698116,1529698117,1529698118,1529698119,1529698120,1529698121,1529698122,1529698123,1529698124,1529698125,1529698126,1529698127,1529698128,1529698129,1529698130,1529698131,1529698132,1529698133,1529698134,1529698135,1529698136,1529698137,1529698359,1529698360,1529698361,1529698362,1529698363,1529698364,1529698365,1529698366,1529698367,1529698368,1529698369,1529698370,1529698371,1529698372,1529698373,1529698374,1529698375,1529698376,1529698377,1529698378,1529698379,1529698380,1529698381,1529698382,1529698383,1529698384,1529698385,1529698386,1529698387,1529698388,1529698389,1529698390,1529698391,1529698392,1529698393,1529698615,1529698616,1529698617,1529698618,1529698619,1529698620,1529698621,1529698622,1529698623,1529698624,1529698625,1529698626,1529698627,1529698628,1529698629,1529698630,1529698631,1529698632,1529698633,1529698634,1529698635,1529698636,1529698637,1529698638,1529698639,1529698640,1529698641,1529698642,1529698643,1529698644,1529698645,1529698646,1529698647,1529698648,1529698649,1529698879,1529698880,1529698881,1529698882,1529698883,1529698884,1529698885,1529698886,1529698887,1529698888,1529698889,1529698890,1529698891,1529698892,1529698893,1529698894,1529698895,1529698896,1529698897,1529698898,1529698899,1529698900,1529698901,1529698902,1529698903,1529698904,1529698905,1366712600,1366712599,1366712598,1366712597,1361926935,1361926936,1361926937,1361926938,1529699099,1529699100,1529699101,1529699102,1529699103,1529699104,1529699105,1529699106,1529699107,1529699108,1529699109,1529699110,1529699111,1529699112,1529699113,1529699114,1529699115,1529699136,1529699137,1529699138,1529699139,1529699140,1529699141,1529699142,1529699143,1529699144,1529699145,1529699146,1529699147,1529699148,1529699149,1529699150,1529699151,1529699152,1529699153,1529699154,1529699155,1529699156,1529699157,1529699158,1529699159,1529699160,1529699161,1366712596,1366712595,1534484577,1534484576,1361927191,1361927192,1361927193,1361927194,1529699355,1529699356,1529699357,1529699358,1529699359,1529699360,1529699361,1529699362,1529699363,1529699364,1529699365,1529699366,1529699367,1529699368,1529699369,1529699370,1529699371,1529699392,1529699393,1529699394,1529699395,1529699396,1529699397,1529699398,1529699399,1529699400,1529699401,1529699402,1529699403,1529699404,1529699405,1529699406,1529699407,1529699408,1529699409,1529699410,1529699411,1529699412,1529699413,1529699414,1529699415,1529699416,1529699417,1534484575,1534484574,1534484573,1534484572,1361927447,1361927448,1361927449,1361927450,1529699611,1529699612,1529699613,1529699614,1529699615,1529699616,1529699617,1529699618,1529699619,1529699620,1529699621,1529699622,1529699623,1529699624,1529699625,1529699626,1529699627,1529699648,1529699649,1529699650,1529699651,1529699652,1529699653,1529699654,1529699655,1529699656,1529699657,1529699658,1529699659,1529699660,1529699661,1529699662,1529699663,1529699664,1529699665,1529699666,1529699667,1529699668,1529699669,1529699670,1529699671,1529699672,1529699673,1534484571,1534484570,1366712409,1366712408,1361927703,1361927704,1361927705,1361927706,1529699867,1529699868,1529699869,1529699870,1529699871,1529699872,1529699873,1529699874,1529699875,1529699876,1529699877,1529699878,1529699879,1529699880,1529699881,1529699882,1529699883,1529699904,1529699905,1529699906,1529699907,1529699908,1529699909,1529699910,1529699911,1529699912,1529699913,1529699914,1529699915,1529699916,1529699917,1529699918,1529699919,1529699920,1529699921,1529699922,1529699923,1529699924,1529699925,1529699926,1529699927,1529699928,1529699929,1366712407,1366712406,1366712405,1366712404,1361927959,1361927960,1361927961,1361927962,1529700123,1529700124,1529700125,1529700126,1529700127,1529700128,1529700129,1529700130,1529700131,1529700132,1529700133,1529700134,1529700135,1529700136,1529700137,1529700138,1529700139,1529700160,1529700161,1529700162,1529700163,1529700164,1529700165,1529700166,1529700167,1529700168,1529700169,1529700170,1529700171,1529700172,1529700173,1529700174,1529700175,1529700176,1529700177,1529700178,1529700179,1529700180,1529700181,1529700182,1529700183,1529700184,1529700185,1366712403,1366712402,1366712401,1366712400,1361928215,1361928216,1361928217,1361928218,1529700379,1529700380,1529700381,1529700382,1529700383,1529700384,1529700385,1529700386,1529700387,1529700388,1529700389,1529700390,1529700391,1529700392,1529700393,1529700394,1529700395,1529700416,1529700417,1529700418,1529700419,1529700420,1529700421,1529700422,1529700423,1529700424,1529700425,1529700426,1529700427,1529700428,1529700429,1529700430,1529700431,1529700432,1529700433,1529700434,1529700435,1529700436,1529700437,1529700438,1529700439,1529700440,1529700441,1366712399,1366712398,1366712397,1366712396,1361928471,1361928472,1361928473,1361928474,1529700635,1529700636,1529700637,1529700638,1529700639,1529700640,1529700641,1529700642,1529700643,1529700644,1529700645,1529700646,1529700647,1529700648,1529700649,1529700650,1529700651,1529700672,1529700673,1529700674,1529700675,1529700676,1529700677,1529700678,1529700679,1529700680,1529700681,1529700682,1529700683,1529700684,1529700685,1529700686,1529700687,1529700688,1529700689,1529700690,1529700691,1529700692,1529700693,1529700694,1529700695,1529700696,1529700697,1361974107,1361974108,1361974109,1361974110,1361974111,1361974112,1361974113,1361974363,1361974364,1361974365,1361974366,1361974367,1361974368,1361974369,1361974619,1361974620,1361974621,1361974622,1361974623,1361974624,1361974625,1361974875,1361974876,1361974877,1361974878,1361974879,1361974880,1361974881,1361975131,1361975132,1361975133,1361975134,1361975135,1361975136,1361975137,1361975387,1361975388,1361975389,1361975390,1361975391,1361975392,1361975393,1361975643,1361975644,1361975645,1361975646,1361975647,1361975648,1361975649,1361975899,1361975900,1361975901,1361975902,1361975903,1361975904,1361975905,1529748315,1529748316,1529748317,1529748318,1529748319,1529748320,1529748321,1529748571,1529748572,1529748573,1529748574,1529748575,1529748576,1529748577,1529748827,1529748828,1529748829,1529748830,1529748831,1529748832,1529748833,1529749083,1529749084,1529749085,1529749086,1529749087,1529749088,1529749089,1529749339,1529749340,1529749341,1529749342,1529749343,1529749344,1529749345,1529749595,1529749596,1529749597,1529749598,1529749599,1529749600,1529749601,1529749851,1529749852,1529749853,1529749854,1529749855,1529749856,1529749857,1529750107,1529750108,1529750109,1529750110,1529750111,1529750112,1529750113,1529750363,1529750364,1529750365,1529750366,1529750367,1529750368,1529750369,1529750619,1529750620,1529750621,1529750622,1529750623,1529750624,1529750625,1529750875,1529750876,1529750877,1529750878,1529750879,1529750880,1529750881,1529751131,1529751132,1529751133,1529751134,1529751135,1529751136,1529751137,1529751387,1529751388,1529751389,1529751390,1529751391,1529751392,1529751393,1529751643,1529751644,1529751645,1529751646,1529751647,1529751648,1529751649,1529751899,1529751900,1529751901,1529751902,1529751903,1529751904,1529751905,1529752155,1529752156,1529752157,1529752158,1529752159,1529752160,1529752161,1529752411,1529752412,1529752413,1529752414,1529752415,1529752416,1529752417,1529752667,1529752668,1529752669,1529752670,1529752671,1529752672,1529752673,1529752923,1529752924,1529752925,1529752926,1529752927,1529752928,1529752929,1529753179,1529753180,1529753181,1529753182,1529753183,1529753184,1529753185,1529753435,1529753436,1529753437,1529753438,1529753439,1529753440,1529753441,1529753691,1529753692,1529753693,1529753694,1529753695,1529753696,1529753697,1529753947,1529753948,1529753949,1529753950,1529753951,1529753952,1529753953,1529754203,1529754204,1529754205,1529754206,1529754207,1529754208,1529754209,1529754459,1529754460,1529754461,1529754462,1529754463,1529754464,1529754465,1529754715,1529754716,1529754717,1529754718,1529754719,1529754720,1529754721,1529754971,1529754972,1529754973,1529754974,1529754975,1529754976,1529754977,1529755227,1529755228,1529755229,1529755230,1529755231,1529755232,1529755233,1529755483,1529755484,1529755485,1529755486,1529755487,1529755488,1529755489,1529755739,1529755740,1529755741,1529755742,1529755743,1529755744,1529755745,1529755995,1529755996,1529755997,1529755998,1529755999,1529756000,1529756001,1529756251,1529756252,1529756253,1529756254,1529756255,1529756256,1529756257,1529756507,1529756508,1529756509,1529756510,1529756511,1529756512,1529756513,1529756763,1529756764,1529756765,1529756766,1529756767,1529756768,1529756769,1529757019,1529757020,1529757021,1529757022,1529757023,1529757024,1529757025,1529760073,1529760079,1529760080,1529760081,1529760082,1529760083,1529760084,1529760085,1529760086,1529760087,1529760088,1529760089,1529760090,1529760335,1529760336,1529760337,1529760338,1529760339,1529760340,1529760341,1529760342,1529760343,1529760344,1529760345,1529760346,1529760591,1529760592,1529760593,1529760594,1529760595,1529760596,1529760597,1529760598,1529760599,1529760600,1529760601,1529760602,1529760847,1529760848,1529760849,1529760850,1529760851,1529760852,1529760853,1529760854,1529760855,1529760856,1529760857,1529760858,1529761103,1529761104,1529761105,1529761106,1529761107,1529761108,1529761109,1529761110,1529761111,1529761112,1529761113,1529761114,1529761358,1529761359,1529761360,1529761361,1529761362,1529761363,1529761364,1529761365,1529761366,1529761367,1529761368,1529761369,1529761370,1529761609,1529761610,1529761611,1529761612,1529761613,1529761614,1529761615,1529761616,1529761617,1529761618,1529761619,1529761620,1529761621,1529761622,1529761623,1529761624,1529761625,1529761626,1529761865,1529761866,1529761867,1529761868,1529761869,1529761870,1529761871,1529761872,1529761873,1529761874,1529761875,1529761876,1529761877,1529761878,1529761879,1529761880,1529761881,1529761882,1529762120,1529762121,1529762122,1529762123,1529762124,1529762125,1529762126,1529762127,1529762128,1529762129,1529762130,1529762131,1529762132,1529762133,1529762134,1529762135,1529762136,1529762137,1529762138,1529762139,1529762359,1529762360,1529762361,1529762362,1529762363,1529762364,1529762365,1529762366,1529762367,1529762368,1529762369,1529762370,1529762371,1529762372,1529762373,1529762374,1529762375,1529762376,1529762377,1529762378,1529762379,1529762380,1529762381,1529762382,1529762383,1529762384,1529762385,1529762386,1529762387,1529762388,1529762389,1529762390,1529762391,1529762392,1529762393,1529762394,1529762395,1529762396,1529762397,1529762398,1529762399,1529762400,1529762401,1529762615,1529762616,1529762617,1529762618,1529762619,1529762620,1529762621,1529762622,1529762623,1529762624,1529762625,1529762626,1529762627,1529762628,1529762629,1529762630,1529762631,1529762632,1529762633,1529762634,1529762635,1529762636,1529762637,1529762638,1529762639,1529762640,1529762641,1529762642,1529762643,1529762644,1529762645,1529762646,1529762647,1529762648,1529762649,1529762650,1529762651,1529762652,1529762653,1529762654,1529762655,1529762656,1529762657,1529762871,1529762872,1529762873,1529762874,1529762875,1529762876,1529762877,1529762878,1529762879,1529762880,1529762881,1529762882,1529762883,1529762884,1529762885,1529762886,1529762887,1529762888,1529762889,1529762890,1529762891,1529762892,1529762893,1529762894,1529762895,1529762896,1529762897,1529762898,1529762899,1529762900,1529762901,1529762902,1529762903,1529762904,1529762905,1529762906,1529762907,1529762908,1529762909,1529762910,1529762911,1529762912,1529762913,1529763127,1529763128,1529763129,1529763130,1529763131,1529763132,1529763133,1529763134,1529763135,1529763136,1529763137,1529763138,1529763139,1529763140,1529763141,1529763142,1529763143,1529763144,1529763145,1529763146,1529763147,1529763148,1529763149,1529763150,1529763151,1529763152,1529763153,1529763154,1529763155,1529763156,1529763157,1529763158,1529763159,1529763160,1529763161,1529763162,1529763163,1529763164,1529763165,1529763166,1529763167,1529763168,1529763169,1529763383,1529763384,1529763385,1529763386,1529763387,1529763388,1529763389,1529763390,1529763391,1529763392,1529763393,1529763394,1529763395,1529763396,1529763397,1529763398,1529763399,1529763400,1529763401,1529763402,1529763403,1529763404,1529763405,1529763406,1529763407,1529763408,1529763409,1529763410,1529763411,1529763412,1529763413,1529763414,1529763415,1529763416,1529763417,1529763418,1529763419,1529763420,1529763421,1529763422,1529763423,1529763424,1529763425,1529763639,1529763640,1529763641,1529763642,1529763643,1529763644,1529763645,1529763646,1529763647,1529763648,1529763649,1529763650,1529763651,1529763652,1529763653,1529763654,1529763655,1529763656,1529763657,1529763658,1529763659,1529763660,1529763661,1529763662,1529763663,1529763664,1529763665,1529763666,1529763667,1529763668,1529763669,1529763670,1529763671,1529763672,1529763673,1529763674,1529763675,1529763676,1529763677,1529763678,1529763679,1529763680,1529763681,1529763895,1529763896,1529763897,1529763898,1529763899,1529763900,1529763901,1529763902,1529763903,1529763904,1529763905,1529763906,1529763907,1529763908,1529763909,1529763910,1529763911,1529763912,1529763913,1529763914,1529763915,1529763916,1529763917,1529763918,1529763919,1529763920,1529763921,1529763922,1529763923,1529763924,1529763925,1529763926,1529763927,1529763928,1529763929,1529763930,1529763931,1529763932,1529763933,1529763934,1529763935,1529763936,1529763937,1529764151,1529764152,1529764153,1529764154,1529764155,1529764156,1529764157,1529764158,1529764159,1529764160,1529764161,1529764162,1529764163,1529764164,1529764165,1529764166,1529764167,1529764168,1529764169,1529764170,1529764171,1529764172,1529764173,1529764174,1529764175,1529764176,1529764177,1529764178,1529764179,1529764180,1529764181,1529764182,1529764183,1529764184,1529764185,1529764186,1529764187,1529764188,1529764189,1529764190,1529764191,1529764192,1529764193,1529764407,1529764408,1529764409,1529764410,1529764411,1529764412,1529764413,1529764414,1529764415,1529764416,1529764417,1529764418,1529764419,1529764420,1529764421,1529764422,1529764423,1529764424,1529764425,1529764426,1529764427,1529764428,1529764429,1529764430,1529764431,1529764432,1529764433,1529764434,1529764435,1529764436,1529764437,1529764438,1529764439,1529764440,1529764441,1529764442,1529764443,1529764444,1529764445,1529764446,1529764447,1529764448,1529764449,1366712395,1366712394,1366712393,1366712392,1361992471,1361992472,1361992473,1361992474,1529764635,1529764636,1529764642,1529764643,1529764644,1529764645,1529764646,1529764647,1529764648,1529764649,1529764650,1529764651,1529764671,1529764672,1529764673,1529764674,1529764675,1529764676,1529764677,1529764678,1529764679,1529764680,1529764681,1529764682,1529764683,1529764684,1529764685,1529764686,1529764687,1529764688,1529764689,1529764690,1529764691,1529764692,1529764693,1529764694,1529764695,1529764696,1529764697,1529764698,1529764699,1529764700,1529764701,1529764702,1529764703,1529764704,1529764705,1366712391,1366712390,1366712389,1366712388,1361992727,1361992728,1361992729,1361992730,1529764891,1529764892,1529764893,1529764894,1529764895,1529764896,1529764897,1529764898,1529764899,1529764900,1529764901,1529764902,1529764903,1529764904,1529764905,1529764906,1529764907,1529764928,1529764929,1529764930,1529764931,1529764932,1529764933,1529764934,1529764935,1529764936,1529764937,1529764938,1529764939,1529764940,1529764941,1529764942,1529764943,1529764944,1529764945,1529764946,1529764947,1529764948,1529764949,1529764950,1529764951,1529764952,1529764953,1529764954,1529764955,1529764956,1529764957,1529764958,1529764959,1529764960,1529764961,1366712387,1366712386,1366712385,1366712384,1361992983,1361992984,1361992985,1361992986,1529765147,1529765148,1529765149,1529765150,1529765151,1529765152,1529765153,1529765154,1529765155,1529765156,1529765157,1529765158,1529765159,1529765160,1529765161,1529765162,1529765163,1529765184,1529765185,1529765186,1529765187,1529765188,1529765189,1529765190,1529765191,1529765192,1529765193,1529765194,1529765195,1529765196,1529765197,1529765198,1529765199,1529765200,1529765201,1529765202,1529765203,1529765204,1529765205,1529765206,1529765207,1529765208,1529765209,1529765210,1529765211,1529765212,1529765213,1529765214,1529765215,1529765216,1529765217,1366712383,1366712382,1366712381,1366712380,1361993239,1361993240,1361993241,1361993242,1529765403,1529765404,1529765405,1529765406,1529765407,1529765408,1529765409,1529765410,1529765411,1529765412,1529765413,1529765414,1529765415,1529765416,1529765417,1529765418,1529765419,1529765440,1529765441,1529765442,1529765443,1529765444,1529765445,1529765446,1529765447,1529765448,1529765449,1529765450,1529765451,1529765452,1529765453,1529765454,1529765455,1529765456,1529765457,1529765458,1529765459,1529765460,1529765461,1529765462,1529765463,1529765464,1529765465,1529765466,1529765467,1529765468,1529765469,1529765470,1529765471,1529765472,1529765473,1366712379,1366712378,1366712377,1366712376,1361993495,1361993496,1361993497,1361993498,1529765659,1529765660,1529765661,1529765662,1529765663,1529765664,1529765665,1529765666,1529765667,1529765668,1529765669,1529765670,1529765671,1529765672,1529765673,1529765674,1529765675,1529765696,1529765697,1529765698,1529765699,1529765700,1529765701,1529765702,1529765703,1529765704,1529765705,1529765706,1529765707,1529765708,1529765709,1529765710,1529765711,1529765712,1529765713,1529765714,1529765715,1529765716,1529765717,1529765718,1529765719,1529765720,1529765721,1529765722,1529765723,1529765724,1529765725,1529765726,1529765727,1529765728,1529765729,1366712375,1366712374,1366712373,1366712372,1361993751,1361993752,1361993753,1361993754,1529765915,1529765916,1529765917,1529765918,1529765919,1529765920,1529765921,1529765922,1529765923,1529765924,1529765925,1529765926,1529765927,1529765928,1529765929,1529765930,1529765931,1529765952,1529765953,1529765954,1529765955,1529765956,1529765957,1529765958,1529765959,1529765960,1529765961,1529765962,1529765963,1529765964,1529765965,1529765966,1529765967,1529765968,1529765969,1529765970,1529765971,1529765972,1529765973,1529765974,1529765975,1529765976,1529765977,1529765978,1529765979,1529765980,1529765981,1529765982,1529765983,1529765984,1529765985,1366712371,1366712370,1366712369,1366712368,1361994007,1361994008,1361994009,1361994010,1529766171,1529766172,1529766173,1529766174,1529766175,1529766176,1529766177,1529766178,1529766179,1529766180,1529766181,1529766182,1529766183,1529766184,1529766185,1529766186,1529766187,1529766208,1529766209,1529766210,1529766211,1529766212,1529766213,1529766214,1529766215,1529766216,1529766217,1529766218,1529766219,1529766220,1529766221,1529766222,1529766223,1529766224,1529766225,1529766226,1529766227,1529766228,1529766229,1529766230,1529766231,1529766232,1529766233,1529766234,1529766235,1529766236,1529766237,1529766238,1529766239,1529766240,1529766241,1362039643,1362039644,1362039645,1362039646,1362039647,1362039648,1362039649,1362039899,1362039900,1362039901,1362039902,1362039903,1362039904,1362039905,1362040155,1362040156,1362040157,1362040158,1362040159,1362040160,1362040161,1362040411,1362040412,1362040413,1362040414,1362040415,1362040416,1362040417,1362040667,1362040668,1362040669,1362040670,1362040671,1362040672,1362040673,1362040923,1362040924,1362040925,1362040926,1362040927,1362040928,1362040929,1362041179,1362041180,1362041181,1362041182,1362041183,1362041184,1362041185,1362041435,1362041436,1362041437,1362041438,1362041439,1362041440,1362041441,1529813851,1529813852,1529813853,1529813854,1529813855,1529813856,1529813857,1529814107,1529814108,1529814109,1529814110,1529814111,1529814112,1529814113,1529814364,1529814365,1529814366,1529814367,1529814368,1529814369,1529814620,1529814621,1529814622,1529814623,1529814624,1529814625,1529814876,1529814877,1529814878,1529814879,1529814880,1529814881,1529815132,1529815133,1529815134,1529815135,1529815136,1529815137,1529815388,1529815389,1529815390,1529815391,1529815392,1529815393,1529815643,1529815644,1529815645,1529815646,1529815647,1529815648,1529815649,1529815899,1529815900,1529815901,1529815902,1529815903,1529815904,1529815905,1529816155,1529816156,1529816157,1529816158,1529816159,1529816160,1529816161,1529816411,1529816412,1529816413,1529816414,1529816415,1529816416,1529816417,1529816667,1529816668,1529816669,1529816670,1529816671,1529816672,1529816673,1529816923,1529816924,1529816925,1529816926,1529816927,1529816928,1529816929,1529817179,1529817180,1529817181,1529817182,1529817183,1529817184,1529817185,1529817435,1529817436,1529817437,1529817438,1529817439,1529817440,1529817441,1529817691,1529817692,1529817693,1529817694,1529817695,1529817696,1529817697,1529817947,1529817948,1529817949,1529817950,1529817951,1529817952,1529817953,1529818203,1529818204,1529818205,1529818206,1529818207,1529818208,1529818209,1529818459,1529818460,1529818461,1529818462,1529818463,1529818464,1529818465,1529818715,1529818716,1529818717,1529818718,1529818719,1529818720,1529818721,1529818971,1529818972,1529818973,1529818974,1529818975,1529818976,1529818977,1529819227,1529819228,1529819229,1529819230,1529819231,1529819232,1529819233,1529819483,1529819484,1529819485,1529819486,1529819487,1529819488,1529819489,1529819739,1529819740,1529819741,1529819742,1529819743,1529819744,1529819745,1529819995,1529819996,1529819997,1529819998,1529819999,1529820000,1529820001,1529820251,1529820252,1529820253,1529820254,1529820255,1529820256,1529820257,1529820507,1529820508,1529820509,1529820510,1529820511,1529820512,1529820513,1529820763,1529820764,1529820765,1529820766,1529820767,1529820768,1529820769,1529821019,1529821020,1529821021,1529821022,1529821023,1529821024,1529821025,1529821275,1529821276,1529821277,1529821278,1529821279,1529821280,1529821281,1529821531,1529821532,1529821533,1529821534,1529821535,1529821536,1529821537,1529821787,1529821788,1529821789,1529821790,1529821791,1529821792,1529821793,1529822043,1529822044,1529822045,1529822046,1529822047,1529822048,1529822049,1529822299,1529822300,1529822301,1529822302,1529822303,1529822304,1529822305,1529822555,1529822556,1529822557,1529822558,1529822559,1529822560,1529822561,1529825609,1529825615,1529825616,1529825617,1529825618,1529825619,1529825620,1529825621,1529825622,1529825623,1529825624,1529825625,1529825626,1529825627,1529825871,1529825872,1529825873,1529825874,1529825875,1529825876,1529825877,1529825878,1529825879,1529825880,1529825881,1529825882,1529825883,1529826127,1529826128,1529826129,1529826130,1529826131,1529826132,1529826133,1529826134,1529826135,1529826136,1529826137,1529826138,1529826139,1529826383,1529826384,1529826385,1529826386,1529826387,1529826388,1529826389,1529826390,1529826391,1529826392,1529826393,1529826394,1529826395,1529826639,1529826640,1529826641,1529826642,1529826643,1529826644,1529826645,1529826646,1529826647,1529826648,1529826649,1529826650,1529826651,1529826894,1529826895,1529826896,1529826897,1529826898,1529826899,1529826900,1529826901,1529826902,1529826903,1529826904,1529826905,1529826906,1529826907,1529827145,1529827146,1529827147,1529827148,1529827149,1529827150,1529827151,1529827152,1529827153,1529827154,1529827155,1529827156,1529827157,1529827158,1529827159,1529827160,1529827161,1529827162,1529827163,1529827401,1529827402,1529827403,1529827404,1529827405,1529827406,1529827407,1529827408,1529827409,1529827410,1529827411,1529827412,1529827413,1529827414,1529827415,1529827416,1529827417,1529827418,1529827419,1529827656,1529827657,1529827658,1529827659,1529827660,1529827661,1529827662,1529827663,1529827664,1529827665,1529827666,1529827667,1529827668,1529827669,1529827670,1529827671,1529827672,1529827673,1529827674,1529827675,1529827676,1529827895,1529827896,1529827897,1529827898,1529827899,1529827900,1529827901,1529827902,1529827903,1529827904,1529827905,1529827906,1529827907,1529827908,1529827909,1529827910,1529827911,1529827912,1529827913,1529827914,1529827915,1529827916,1529827917,1529827918,1529827919,1529827920,1529827921,1529827922,1529827923,1529827924,1529827925,1529827926,1529827927,1529827928,1529827929,1529827930,1529827931,1529827932,1529827933,1529827934,1529827935,1529827936,1529827937,1529828151,1529828152,1529828153,1529828154,1529828155,1529828156,1529828157,1529828158,1529828159,1529828160,1529828161,1529828162,1529828163,1529828164,1529828165,1529828166,1529828167,1529828168,1529828169,1529828170,1529828171,1529828172,1529828173,1529828174,1529828175,1529828176,1529828177,1529828178,1529828179,1529828180,1529828181,1529828182,1529828183,1529828184,1529828185,1529828186,1529828187,1529828188,1529828189,1529828190,1529828191,1529828192,1529828193,1529828407,1529828408,1529828409,1529828410,1529828411,1529828412,1529828413,1529828414,1529828415,1529828416,1529828417,1529828418,1529828419,1529828420,1529828421,1529828422,1529828423,1529828424,1529828425,1529828426,1529828427,1529828428,1529828429,1529828430,1529828431,1529828432,1529828433,1529828434,1529828435,1529828436,1529828437,1529828438,1529828439,1529828440,1529828441,1529828442,1529828443,1529828444,1529828445,1529828446,1529828447,1529828448,1529828449,1529828663,1529828664,1529828665,1529828666,1529828667,1529828668,1529828669,1529828670,1529828671,1529828672,1529828673,1529828674,1529828675,1529828676,1529828677,1529828678,1529828679,1529828680,1529828681,1529828682,1529828683,1529828684,1529828685,1529828686,1529828687,1529828688,1529828689,1529828690,1529828691,1529828692,1529828693,1529828694,1529828695,1529828696,1529828697,1529828698,1529828699,1529828700,1529828701,1529828702,1529828703,1529828704,1529828705,1529828919,1529828920,1529828921,1529828922,1529828923,1529828924,1529828925,1529828926,1529828927,1529828928,1529828929,1529828930,1529828931,1529828932,1529828933,1529828934,1529828935,1529828936,1529828937,1529828938,1529828939,1529828940,1529828941,1529828942,1529828943,1529828944,1529828945,1529828946,1529828947,1529828948,1529828949,1529828950,1529828951,1529828952,1529828953,1529828954,1529828955,1529828956,1529828957,1529828958,1529828959,1529828960,1529828961,1529829175,1529829176,1529829177,1529829178,1529829179,1529829180,1529829181,1529829182,1529829183,1529829184,1529829185,1529829186,1529829187,1529829188,1529829189,1529829190,1529829191,1529829192,1529829193,1529829194,1529829195,1529829196,1529829197,1529829198,1529829199,1529829200,1529829201,1529829202,1529829203,1529829204,1529829205,1529829206,1529829207,1529829208,1529829209,1529829210,1529829211,1529829212,1529829213,1529829214,1529829215,1529829216,1529829217,1529829431,1529829432,1529829433,1529829434,1529829435,1529829436,1529829437,1529829438,1529829439,1529829440,1529829441,1529829442,1529829443,1529829444,1529829445,1529829446,1529829447,1529829448,1529829449,1529829450,1529829451,1529829452,1529829453,1529829454,1529829455,1529829456,1529829457,1529829458,1529829459,1529829460,1529829461,1529829462,1529829463,1529829464,1529829465,1529829466,1529829467,1529829468,1529829469,1529829470,1529829471,1529829472,1529829473,1529829687,1529829688,1529829689,1529829690,1529829691,1529829692,1529829693,1529829694,1529829695,1529829696,1529829697,1529829698,1529829699,1529829700,1529829701,1529829702,1529829703,1529829704,1529829705,1529829706,1529829707,1529829708,1529829709,1529829710,1529829711,1529829712,1529829713,1529829714,1529829715,1529829716,1529829717,1529829718,1529829719,1529829720,1529829721,1529829722,1529829723,1529829724,1529829725,1529829726,1529829727,1529829728,1529829729,1529829943,1529829944,1529829945,1529829946,1529829947,1529829948,1529829949,1529829950,1529829951,1529829952,1529829953,1529829954,1529829955,1529829956,1529829957,1529829958,1529829959,1529829960,1529829961,1529829962,1529829963,1529829964,1529829965,1529829966,1529829967,1529829968,1529829969,1529829970,1529829971,1529829972,1529829973,1529829974,1529829975,1529829976,1529829977,1529829978,1529829979,1529829980,1529829981,1529829982,1529829983,1529829984,1529829985,1366712367,1366712366,1366712365,1366712364,1362058007,1362058008,1362058009,1362058010,1529830171,1529830172,1529830173,1529830174,1529830175,1529830176,1529830177,1529830178,1529830179,1529830180,1529830181,1529830182,1529830183,1529830184,1529830185,1529830186,1529830187,1529830199,1529830200,1529830201,1529830202,1529830203,1529830204,1529830205,1529830206,1529830207,1529830208,1529830209,1529830210,1529830211,1529830212,1529830213,1529830214,1529830215,1529830216,1529830217,1529830218,1529830219,1529830220,1529830221,1529830222,1529830223,1529830224,1529830225,1529830226,1529830227,1529830228,1529830229,1529830230,1529830231,1529830232,1529830233,1529830234,1529830235,1529830236,1529830237,1529830238,1529830239,1529830240,1529830241,1366712363,1366712362,1366712361,1366712360,1362058263,1362058264,1362058265,1362058266,1529830427,1529830428,1529830429,1529830430,1529830431,1529830432,1529830433,1529830434,1529830435,1529830436,1529830437,1529830438,1529830439,1529830440,1529830441,1529830442,1529830443,1529830463,1529830464,1529830465,1529830466,1529830467,1529830468,1529830469,1529830470,1529830471,1529830472,1529830473,1529830474,1529830475,1529830476,1529830477,1529830478,1529830479,1529830480,1529830481,1529830482,1529830483,1529830484,1529830485,1529830486,1529830487,1529830488,1529830489,1529830490,1529830491,1529830492,1529830493,1529830494,1529830495,1529830496,1529830497,1366712359,1366712358,1366712357,1366712356,1362058519,1362058520,1362058521,1362058522,1529830683,1529830684,1529830685,1529830686,1529830687,1529830688,1529830689,1529830690,1529830691,1529830692,1529830693,1529830694,1529830695,1529830696,1529830697,1529830698,1529830699,1529830720,1529830721,1529830722,1529830723,1529830724,1529830725,1529830726,1529830727,1529830728,1529830729,1529830730,1529830731,1529830732,1529830733,1529830734,1529830735,1529830736,1529830737,1529830738,1529830739,1529830740,1529830741,1529830742,1529830743,1529830744,1529830745,1529830746,1529830747,1529830748,1529830749,1529830750,1529830751,1529830752,1529830753,1366712355,1366712354,1366712353,1366712352,1362058775,1362058776,1362058777,1362058778,1529830939,1529830940,1529830941,1529830942,1529830943,1529830944,1529830945,1529830946,1529830947,1529830948,1529830949,1529830950,1529830951,1529830952,1529830953,1529830954,1529830955,1529830976,1529830977,1529830978,1529830979,1529830980,1529830981,1529830982,1529830983,1529830984,1529830985,1529830986,1529830987,1529830988,1529830989,1529830990,1529830991,1529830992,1529830993,1529830994,1529830995,1529830996,1529830997,1529830998,1529830999,1529831000,1529831001,1529831002,1529831003,1529831004,1529831005,1529831006,1529831007,1529831008,1529831009,1366712351,1366712350,1366712349,1366712348,1362059031,1362059032,1362059033,1362059034,1529831195,1529831196,1529831197,1529831198,1529831199,1529831200,1529831201,1529831202,1529831203,1529831204,1529831205,1529831206,1529831207,1529831208,1529831209,1529831210,1529831211,1529831232,1529831233,1529831234,1529831235,1529831236,1529831237,1529831238,1529831239,1529831240,1529831241,1529831242,1529831243,1529831244,1529831245,1529831246,1529831247,1529831248,1529831249,1529831250,1529831251,1529831252,1529831253,1529831254,1529831255,1529831256,1529831257,1529831258,1529831259,1529831260,1529831261,1529831262,1529831263,1529831264,1529831265,1366712347,1366712346,1366712345,1366712344,1362059287,1362059288,1362059289,1362059290,1529831451,1529831452,1529831453,1529831454,1529831455,1529831456,1529831457,1529831458,1529831459,1529831460,1529831461,1529831462,1529831463,1529831464,1529831465,1529831466,1529831467,1529831488,1529831489,1529831490,1529831491,1529831492,1529831493,1529831494,1529831495,1529831496,1529831497,1529831498,1529831499,1529831500,1529831501,1529831502,1529831503,1529831504,1529831505,1529831506,1529831507,1529831508,1529831509,1529831510,1529831511,1529831512,1529831513,1529831514,1529831515,1529831516,1529831517,1529831518,1529831519,1529831520,1529831521,1366712343,1366712342,1366712341,1366712340,1362059543,1362059544,1362059545,1362059546,1529831707,1529831708,1529831709,1529831710,1529831711,1529831712,1529831713,1529831714,1529831715,1529831716,1529831717,1529831718,1529831719,1529831720,1529831721,1529831722,1529831723,1529831744,1529831745,1529831746,1529831747,1529831748,1529831749,1529831750,1529831751,1529831752,1529831753,1529831754,1529831755,1529831756,1529831757,1529831758,1529831759,1529831760,1529831761,1529831762,1529831763,1529831764,1529831765,1529831766,1529831767,1529831768,1529831769,1529831770,1529831771,1529831772,1529831773,1529831774,1529831775,1529831776,1529831777,1362105179,1362105180,1362105181,1362105182,1362105183,1362105184,1362105185,1362105435,1362105436,1362105437,1362105438,1362105439,1362105440,1362105441,1362105691,1362105692,1362105693,1362105694,1362105695,1362105696,1362105697,1362105947,1362105948,1362105949,1362105950,1362105951,1362105952,1362105953,1362106203,1362106204,1362106205,1362106206,1362106207,1362106208,1362106209,1362106459,1362106460,1362106461,1362106462,1362106463,1362106464,1362106465,1362106715,1362106716,1362106717,1362106718,1362106719,1362106720,1362106721,1362106971,1362106972,1362106973,1362106974,1362106975,1362106976,1362106977,1529879387,1529879388,1529879389,1529879390,1529879391,1529879392,1529879393,1529879643,1529879644,1529879645,1529879646,1529879647,1529879648,1529879649,1529879899,1529879900,1529879901,1529879902,1529879903,1529879904,1529879905,1529880155,1529880156,1529880157,1529880158,1529880159,1529880160,1529880161,1529880411,1529880412,1529880413,1529880414,1529880415,1529880416,1529880417,1529880667,1529880668,1529880669,1529880670,1529880671,1529880672,1529880673,1529880923,1529880924,1529880925,1529880926,1529880927,1529880928,1529880929,1529881179,1529881180,1529881181,1529881182,1529881183,1529881184,1529881185,1529881435,1529881436,1529881437,1529881438,1529881439,1529881440,1529881441,1529881691,1529881692,1529881693,1529881694,1529881695,1529881696,1529881697,1529881947,1529881948,1529881949,1529881950,1529881951,1529881952,1529881953,1529882203,1529882204,1529882205,1529882206,1529882207,1529882208,1529882209,1529882459,1529882460,1529882461,1529882462,1529882463,1529882464,1529882465,1529882715,1529882716,1529882717,1529882718,1529882719,1529882720,1529882721,1529882971,1529882972,1529882973,1529882974,1529882975,1529882976,1529882977,1529883227,1529883228,1529883229,1529883230,1529883231,1529883232,1529883233,1529883483,1529883484,1529883485,1529883486,1529883487,1529883488,1529883489,1529883739,1529883740,1529883741,1529883742,1529883743,1529883744,1529883745,1529883995,1529883996,1529883997,1529883998,1529883999,1529884000,1529884001,1529884251,1529884252,1529884253,1529884254,1529884255,1529884256,1529884257,1529884507,1529884508,1529884509,1529884510,1529884511,1529884512,1529884513,1529884763,1529884764,1529884765,1529884766,1529884767,1529884768,1529884769,1529885019,1529885020,1529885021,1529885022,1529885023,1529885024,1529885025,1529885275,1529885276,1529885277,1529885278,1529885279,1529885280,1529885281,1529885531,1529885532,1529885533,1529885534,1529885535,1529885536,1529885537,1529885787,1529885788,1529885789,1529885790,1529885791,1529885792,1529885793,1529886043,1529886044,1529886045,1529886046,1529886047,1529886048,1529886049,1529886299,1529886300,1529886301,1529886302,1529886303,1529886304,1529886305,1529886555,1529886556,1529886557,1529886558,1529886559,1529886560,1529886561,1529886811,1529886812,1529886813,1529886814,1529886815,1529886816,1529886817,1529887067,1529887068,1529887069,1529887070,1529887071,1529887072,1529887073,1529887323,1529887324,1529887325,1529887326,1529887327,1529887328,1529887329,1529887579,1529887580,1529887581,1529887582,1529887583,1529887584,1529887585,1529887835,1529887836,1529887837,1529887838,1529887839,1529887840,1529887841,1529888091,1529888092,1529888093,1529888094,1529888095,1529888096,1529888097,1529891145,1529891151,1529891152,1529891153,1529891154,1529891155,1529891156,1529891157,1529891158,1529891159,1529891160,1529891161,1529891162,1529891163,1529891164,1529891407,1529891408,1529891409,1529891410,1529891411,1529891412,1529891413,1529891414,1529891415,1529891416,1529891417,1529891418,1529891419,1529891420,1529891663,1529891664,1529891665,1529891666,1529891667,1529891668,1529891669,1529891670,1529891671,1529891672,1529891673,1529891674,1529891675,1529891676,1529891919,1529891920,1529891921,1529891922,1529891923,1529891924,1529891925,1529891926,1529891927,1529891928,1529891929,1529891930,1529891931,1529891932,1529892175,1529892176,1529892177,1529892178,1529892179,1529892180,1529892181,1529892182,1529892183,1529892184,1529892185,1529892186,1529892187,1529892188,1529892430,1529892431,1529892432,1529892433,1529892434,1529892435,1529892436,1529892437,1529892438,1529892439,1529892440,1529892441,1529892442,1529892443,1529892444,1529892681,1529892682,1529892683,1529892684,1529892685,1529892686,1529892687,1529892688,1529892689,1529892690,1529892691,1529892692,1529892693,1529892694,1529892695,1529892696,1529892697,1529892698,1529892699,1529892700,1529892937,1529892938,1529892939,1529892940,1529892941,1529892942,1529892943,1529892944,1529892945,1529892946,1529892947,1529892948,1529892949,1529892950,1529892951,1529892952,1529892953,1529892954,1529892955,1529892956,1529893192,1529893193,1529893194,1529893195,1529893196,1529893197,1529893198,1529893199,1529893200,1529893201,1529893202,1529893203,1529893204,1529893205,1529893206,1529893207,1529893208,1529893209,1529893210,1529893211,1529893212,1529893213,1529893431,1529893432,1529893433,1529893434,1529893435,1529893436,1529893437,1529893438,1529893439,1529893440,1529893441,1529893442,1529893443,1529893444,1529893445,1529893446,1529893447,1529893448,1529893449,1529893450,1529893451,1529893452,1529893453,1529893454,1529893455,1529893456,1529893457,1529893458,1529893459,1529893460,1529893461,1529893462,1529893463,1529893464,1529893465,1529893466,1529893467,1529893468,1529893469,1529893470,1529893471,1529893472,1529893473,1529893687,1529893688,1529893689,1529893690,1529893691,1529893692,1529893693,1529893694,1529893695,1529893696,1529893697,1529893698,1529893699,1529893700,1529893701,1529893702,1529893703,1529893704,1529893705,1529893706,1529893707,1529893708,1529893709,1529893710,1529893711,1529893712,1529893713,1529893714,1529893715,1529893716,1529893717,1529893718,1529893719,1529893720,1529893721,1529893722,1529893723,1529893724,1529893725,1529893726,1529893727,1529893728,1529893729,1529893943,1529893944,1529893945,1529893946,1529893947,1529893948,1529893949,1529893950,1529893951,1529893952,1529893953,1529893954,1529893955,1529893956,1529893957,1529893958,1529893959,1529893960,1529893961,1529893962,1529893963,1529893964,1529893965,1529893966,1529893967,1529893968,1529893969,1529893970,1529893971,1529893972,1529893973,1529893974,1529893975,1529893976,1529893977,1529893978,1529893979,1529893980,1529893981,1529893982,1529893983,1529893984,1529893985,1529894199,1529894200,1529894201,1529894202,1529894203,1529894204,1529894205,1529894206,1529894207,1529894208,1529894209,1529894210,1529894211,1529894212,1529894213,1529894214,1529894215,1529894216,1529894217,1529894218,1529894219,1529894220,1529894221,1529894222,1529894223,1529894224,1529894225,1529894226,1529894227,1529894228,1529894229,1529894230,1529894231,1529894232,1529894233,1529894234,1529894235,1529894236,1529894237,1529894238,1529894239,1529894240,1529894241,1529894455,1529894456,1529894457,1529894458,1529894459,1529894460,1529894461,1529894462,1529894463,1529894464,1529894465,1529894466,1529894467,1529894468,1529894469,1529894470,1529894471,1529894472,1529894473,1529894474,1529894475,1529894476,1529894477,1529894478,1529894479,1529894480,1529894481,1529894482,1529894483,1529894484,1529894485,1529894486,1529894487,1529894488,1529894489,1529894490,1529894491,1529894492,1529894493,1529894494,1529894495,1529894496,1529894497,1529894711,1529894712,1529894713,1529894714,1529894715,1529894716,1529894717,1529894718,1529894719,1529894720,1529894721,1529894722,1529894723,1529894724,1529894725,1529894726,1529894727,1529894728,1529894729,1529894730,1529894731,1529894732,1529894733,1529894734,1529894735,1529894736,1529894737,1529894738,1529894739,1529894740,1529894741,1529894742,1529894743,1529894744,1529894745,1529894746,1529894747,1529894748,1529894749,1529894750,1529894751,1529894752,1529894753,1529894967,1529894968,1529894969,1529894970,1529894971,1529894972,1529894973,1529894974,1529894975,1529894976,1529894977,1529894978,1529894979,1529894980,1529894981,1529894982,1529894983,1529894984,1529894985,1529894986,1529894987,1529894988,1529894989,1529894990,1529894991,1529894992,1529894993,1529894994,1529894995,1529894996,1529894997,1529894998,1529894999,1529895000,1529895001,1529895002,1529895003,1529895004,1529895005,1529895006,1529895007,1529895008,1529895009,1529895223,1529895224,1529895225,1529895226,1529895227,1529895228,1529895229,1529895230,1529895231,1529895232,1529895233,1529895234,1529895235,1529895236,1529895237,1529895238,1529895239,1529895240,1529895241,1529895242,1529895243,1529895244,1529895245,1529895246,1529895247,1529895248,1529895249,1529895250,1529895251,1529895252,1529895253,1529895254,1529895255,1529895256,1529895257,1529895258,1529895259,1529895260,1529895261,1529895262,1529895263,1529895264,1529895265,1529895479,1529895480,1529895481,1529895482,1529895483,1529895484,1529895485,1529895486,1529895487,1529895488,1529895489,1529895490,1529895491,1529895492,1529895493,1529895494,1529895495,1529895496,1529895497,1529895498,1529895499,1529895500,1529895501,1529895502,1529895503,1529895504,1529895505,1529895506,1529895507,1529895508,1529895509,1529895510,1529895511,1529895512,1529895513,1529895514,1529895515,1529895516,1529895517,1529895518,1529895519,1529895520,1529895521,1366712339,1534484321,1534484320,1534484319,1362123543,1362123544,1362123545,1362123546,1529895707,1529895708,1529895714,1529895715,1529895716,1529895717,1529895718,1529895719,1529895720,1529895721,1529895722,1529895723,1529895735,1529895736,1529895737,1529895738,1529895739,1529895740,1529895741,1529895742,1529895743,1529895744,1529895745,1529895746,1529895747,1529895748,1529895749,1529895750,1529895751,1529895752,1529895753,1529895754,1529895755,1529895756,1529895757,1529895758,1529895759,1529895760,1529895761,1529895762,1529895763,1529895764,1529895765,1529895766,1529895767,1529895768,1529895769,1529895770,1529895771,1529895772,1529895773,1529895774,1529895775,1529895776,1529895777,1534484318,1534484317,1534484316,1534484315,1362123799,1362123800,1362123801,1362123802,1529895963,1529895964,1529895965,1529895966,1529895967,1529895968,1529895969,1529895970,1529895971,1529895972,1529895973,1529895974,1529895975,1529895976,1529895977,1529895978,1529895979,1529895991,1529895992,1529895993,1529895994,1529895995,1529895996,1529895997,1529895998,1529895999,1529896000,1529896001,1529896002,1529896003,1529896004,1529896005,1529896006,1529896007,1529896008,1529896009,1529896010,1529896011,1529896012,1529896013,1529896014,1529896015,1529896016,1529896017,1529896018,1529896019,1529896020,1529896021,1529896022,1529896023,1529896024,1529896025,1529896026,1529896027,1529896028,1529896029,1529896030,1529896031,1529896032,1529896033,1534484314,1366712153,1366712152,1366712151,1362124055,1362124056,1362124057,1362124058,1529896219,1529896220,1529896221,1529896222,1529896223,1529896224,1529896225,1529896226,1529896227,1529896228,1529896229,1529896230,1529896231,1529896232,1529896233,1529896234,1529896235,1529896255,1529896256,1529896257,1529896258,1529896259,1529896260,1529896261,1529896262,1529896263,1529896264,1529896265,1529896266,1529896267,1529896268,1529896269,1529896270,1529896271,1529896272,1529896273,1529896274,1529896275,1529896276,1529896277,1529896278,1529896279,1529896280,1529896281,1529896282,1529896283,1529896284,1529896285,1529896286,1529896287,1529896288,1529896289,1366712150,1366712149,1366712148,1366712147,1362124311,1362124312,1362124313,1362124314,1529896475,1529896476,1529896477,1529896478,1529896479,1529896480,1529896481,1529896482,1529896483,1529896484,1529896485,1529896486,1529896487,1529896488,1529896489,1529896490,1529896491,1529896512,1529896513,1529896514,1529896515,1529896516,1529896517,1529896518,1529896519,1529896520,1529896521,1529896522,1529896523,1529896524,1529896525,1529896526,1529896527,1529896528,1529896529,1529896530,1529896531,1529896532,1529896533,1529896534,1529896535,1529896536,1529896537,1529896538,1529896539,1529896540,1529896541,1529896542,1529896543,1529896544,1529896545,1366712146,1366712145,1366712144,1366712143,1362124567,1362124568,1362124569,1362124570,1529896731,1529896732,1529896733,1529896734,1529896735,1529896736,1529896737,1529896738,1529896739,1529896740,1529896741,1529896742,1529896743,1529896744,1529896745,1529896746,1529896747,1529896768,1529896769,1529896770,1529896771,1529896772,1529896773,1529896774,1529896775,1529896776,1529896777,1529896778,1529896779,1529896780,1529896781,1529896782,1529896783,1529896784,1529896785,1529896786,1529896787,1529896788,1529896789,1529896790,1529896791,1529896792,1529896793,1529896794,1529896795,1529896796,1529896797,1529896798,1529896799,1529896800,1529896801,1366712142,1366712141,1366712140,1366712139,1362124823,1362124824,1362124825,1362124826,1529896987,1529896988,1529896989,1529896990,1529896991,1529896992,1529896993,1529896994,1529896995,1529896996,1529896997,1529896998,1529896999,1529897000,1529897001,1529897002,1529897003,1529897024,1529897025,1529897026,1529897027,1529897028,1529897029,1529897030,1529897031,1529897032,1529897033,1529897034,1529897035,1529897036,1529897037,1529897038,1529897039,1529897040,1529897041,1529897042,1529897043,1529897044,1529897045,1529897046,1529897047,1529897048,1529897049,1529897050,1529897051,1529897052,1529897053,1529897054,1529897055,1529897056,1529897057,1366712138,1366712137,1366712136,1366712135,1362125079,1362125080,1362125081,1362125082,1529897243,1529897244,1529897245,1529897246,1529897247,1529897248,1529897249,1529897250,1529897251,1529897252,1529897253,1529897254,1529897255,1529897256,1529897257,1529897258,1529897259,1529897280,1529897281,1529897282,1529897283,1529897284,1529897285,1529897286,1529897287,1529897288,1529897289,1529897290,1529897291,1529897292,1529897293,1529897294,1529897295,1529897296,1529897297,1529897298,1529897299,1529897300,1529897301,1529897302,1529897303,1529897304,1529897305,1529897306,1529897307,1529897308,1529897309,1529897310,1529897311,1529897312,1529897313,1362170715,1362170716,1362170717,1362170718,1362170719,1362170720,1362170721,1362170971,1362170972,1362170973,1362170974,1362170975,1362170976,1362170977,1362171227,1362171228,1362171229,1362171230,1362171231,1362171232,1362171233,1362171483,1362171484,1362171485,1362171486,1362171487,1362171488,1362171489,1362171739,1362171740,1362171741,1362171742,1362171743,1362171744,1362171745,1362171995,1362171996,1362171997,1362171998,1362171999,1362172000,1362172001,1362172251,1362172252,1362172253,1362172254,1362172255,1362172256,1362172257,1362172507,1362172508,1362172509,1362172510,1362172511,1362172512,1362172513,1529944923,1529944924,1529944925,1529944926,1529944927,1529944928,1529944929,1529945179,1529945180,1529945181,1529945182,1529945183,1529945184,1529945185,1529945436,1529945437,1529945438,1529945439,1529945440,1529945441,1529945692,1529945693,1529945694,1529945695,1529945696,1529945697,1529945948,1529945949,1529945950,1529945951,1529945952,1529945953,1529946204,1529946205,1529946206,1529946207,1529946208,1529946209,1529946460,1529946461,1529946462,1529946463,1529946464,1529946465,1529946715,1529946716,1529946717,1529946718,1529946719,1529946720,1529946721,1529946971,1529946972,1529946973,1529946974,1529946975,1529946976,1529946977,1529947227,1529947228,1529947229,1529947230,1529947231,1529947232,1529947233,1529947483,1529947484,1529947485,1529947486,1529947487,1529947488,1529947489,1529947739,1529947740,1529947741,1529947742,1529947743,1529947744,1529947745,1529947995,1529947996,1529947997,1529947998,1529947999,1529948000,1529948001,1529948251,1529948252,1529948253,1529948254,1529948255,1529948256,1529948257,1529948507,1529948508,1529948509,1529948510,1529948511,1529948512,1529948513,1529948763,1529948764,1529948765,1529948766,1529948767,1529948768,1529948769,1529949019,1529949020,1529949021,1529949022,1529949023,1529949024,1529949025,1529949275,1529949276,1529949277,1529949278,1529949279,1529949280,1529949281,1529949531,1529949532,1529949533,1529949534,1529949535,1529949536,1529949537,1529949787,1529949788,1529949789,1529949790,1529949791,1529949792,1529949793,1529950043,1529950044,1529950045,1529950046,1529950047,1529950048,1529950049,1529950299,1529950300,1529950301,1529950302,1529950303,1529950304,1529950305,1529950555,1529950556,1529950557,1529950558,1529950559,1529950560,1529950561,1529950811,1529950812,1529950813,1529950814,1529950815,1529950816,1529950817,1529951067,1529951068,1529951069,1529951070,1529951071,1529951072,1529951073,1529951323,1529951324,1529951325,1529951326,1529951327,1529951328,1529951329,1529951579,1529951580,1529951581,1529951582,1529951583,1529951584,1529951585,1529951835,1529951836,1529951837,1529951838,1529951839,1529951840,1529951841,1529952091,1529952092,1529952093,1529952094,1529952095,1529952096,1529952097,1529952347,1529952348,1529952349,1529952350,1529952351,1529952352,1529952353,1529952603,1529952604,1529952605,1529952606,1529952607,1529952608,1529952609,1529952859,1529952860,1529952861,1529952862,1529952863,1529952864,1529952865,1529953115,1529953116,1529953117,1529953118,1529953119,1529953120,1529953121,1529953371,1529953372,1529953373,1529953374,1529953375,1529953376,1529953377,1529953627,1529953628,1529953629,1529953630,1529953631,1529953632,1529953633,1529956681,1529956682,1529956686,1529956687,1529956688,1529956689,1529956690,1529956691,1529956692,1529956693,1529956694,1529956695,1529956696,1529956697,1529956698,1529956699,1529956700,1529956701,1529956937,1529956938,1529956942,1529956943,1529956944,1529956945,1529956946,1529956947,1529956948,1529956949,1529956950,1529956951,1529956952,1529956953,1529956954,1529956955,1529956956,1529956957,1529957198,1529957199,1529957200,1529957201,1529957202,1529957203,1529957204,1529957205,1529957206,1529957207,1529957208,1529957209,1529957210,1529957211,1529957212,1529957213,1529957454,1529957455,1529957456,1529957457,1529957458,1529957459,1529957460,1529957461,1529957462,1529957463,1529957464,1529957465,1529957466,1529957467,1529957468,1529957469,1529957710,1529957711,1529957712,1529957713,1529957714,1529957715,1529957716,1529957717,1529957718,1529957719,1529957720,1529957721,1529957722,1529957723,1529957724,1529957725,1529957961,1529957962,1529957963,1529957964,1529957965,1529957966,1529957967,1529957968,1529957969,1529957970,1529957971,1529957972,1529957973,1529957974,1529957975,1529957976,1529957977,1529957978,1529957979,1529957980,1529957981,1529958217,1529958218,1529958219,1529958220,1529958221,1529958222,1529958223,1529958224,1529958225,1529958226,1529958227,1529958228,1529958229,1529958230,1529958231,1529958232,1529958233,1529958234,1529958235,1529958236,1529958237,1529958473,1529958474,1529958475,1529958476,1529958477,1529958478,1529958479,1529958480,1529958481,1529958482,1529958483,1529958484,1529958485,1529958486,1529958487,1529958488,1529958489,1529958490,1529958491,1529958492,1529958493,1529958728,1529958729,1529958730,1529958731,1529958732,1529958733,1529958734,1529958735,1529958736,1529958737,1529958738,1529958739,1529958740,1529958741,1529958742,1529958743,1529958744,1529958745,1529958746,1529958747,1529958748,1529958749,1529958750,1529958967,1529958968,1529958969,1529958970,1529958971,1529958972,1529958973,1529958974,1529958975,1529958976,1529958977,1529958978,1529958979,1529958980,1529958981,1529958982,1529958983,1529958984,1529958985,1529958986,1529958987,1529958988,1529958989,1529958990,1529958991,1529958992,1529958993,1529958994,1529958995,1529958996,1529958997,1529958998,1529958999,1529959000,1529959001,1529959002,1529959003,1529959004,1529959005,1529959006,1529959007,1529959008,1529959009,1529959223,1529959224,1529959225,1529959226,1529959227,1529959228,1529959229,1529959230,1529959231,1529959232,1529959233,1529959234,1529959235,1529959236,1529959237,1529959238,1529959239,1529959240,1529959241,1529959242,1529959243,1529959244,1529959245,1529959246,1529959247,1529959248,1529959249,1529959250,1529959251,1529959252,1529959253,1529959254,1529959255,1529959256,1529959257,1529959258,1529959259,1529959260,1529959261,1529959262,1529959263,1529959264,1529959265,1529959479,1529959480,1529959481,1529959482,1529959483,1529959484,1529959485,1529959486,1529959487,1529959488,1529959489,1529959490,1529959491,1529959492,1529959493,1529959494,1529959495,1529959496,1529959497,1529959498,1529959499,1529959500,1529959501,1529959502,1529959503,1529959504,1529959505,1529959506,1529959507,1529959508,1529959509,1529959510,1529959511,1529959512,1529959513,1529959514,1529959515,1529959516,1529959517,1529959518,1529959519,1529959520,1529959521,1529959735,1529959736,1529959737,1529959738,1529959739,1529959740,1529959741,1529959742,1529959743,1529959744,1529959745,1529959746,1529959747,1529959748,1529959749,1529959750,1529959751,1529959752,1529959753,1529959754,1529959755,1529959756,1529959757,1529959758,1529959759,1529959760,1529959761,1529959762,1529959763,1529959764,1529959765,1529959766,1529959767,1529959768,1529959769,1529959770,1529959771,1529959772,1529959773,1529959774,1529959775,1529959776,1529959777,1529959991,1529959992,1529959993,1529959994,1529959995,1529959996,1529959997,1529959998,1529959999,1529960000,1529960001,1529960002,1529960003,1529960004,1529960005,1529960006,1529960007,1529960008,1529960009,1529960010,1529960011,1529960012,1529960013,1529960014,1529960015,1529960016,1529960017,1529960018,1529960019,1529960020,1529960021,1529960022,1529960023,1529960024,1529960025,1529960026,1529960027,1529960028,1529960029,1529960030,1529960031,1529960032,1529960033,1529960247,1529960248,1529960249,1529960250,1529960251,1529960252,1529960253,1529960254,1529960255,1529960256,1529960257,1529960258,1529960259,1529960260,1529960261,1529960262,1529960263,1529960264,1529960265,1529960266,1529960267,1529960268,1529960269,1529960270,1529960271,1529960272,1529960273,1529960274,1529960275,1529960276,1529960277,1529960278,1529960279,1529960280,1529960281,1529960282,1529960283,1529960284,1529960285,1529960286,1529960287,1529960288,1529960289,1529960503,1529960504,1529960505,1529960506,1529960507,1529960508,1529960509,1529960510,1529960511,1529960512,1529960513,1529960514,1529960515,1529960516,1529960517,1529960518,1529960519,1529960520,1529960521,1529960522,1529960523,1529960524,1529960525,1529960526,1529960527,1529960528,1529960529,1529960530,1529960531,1529960532,1529960533,1529960534,1529960535,1529960536,1529960537,1529960538,1529960539,1529960540,1529960541,1529960542,1529960543,1529960544,1529960545,1529960759,1529960760,1529960761,1529960762,1529960763,1529960764,1529960765,1529960766,1529960767,1529960768,1529960769,1529960770,1529960771,1529960772,1529960773,1529960774,1529960775,1529960776,1529960777,1529960778,1529960779,1529960780,1529960781,1529960782,1529960783,1529960784,1529960785,1529960786,1529960787,1529960788,1529960789,1529960790,1529960791,1529960792,1529960793,1529960794,1529960795,1529960796,1529960797,1529960798,1529960799,1529960800,1529960801,1529961015,1529961016,1529961017,1529961018,1529961019,1529961020,1529961021,1529961022,1529961023,1529961024,1529961025,1529961026,1529961027,1529961028,1529961029,1529961030,1529961031,1529961032,1529961033,1529961034,1529961035,1529961036,1529961037,1529961038,1529961039,1529961040,1529961041,1529961042,1529961043,1529961044,1529961045,1529961046,1529961047,1529961048,1529961049,1529961050,1529961051,1529961052,1529961053,1529961054,1529961055,1529961056,1529961057,1366712134,1366712133,1366712132,1366712131,1362189079,1362189080,1362189081,1362189082,1529961243,1529961244,1529961245,1529961246,1529961247,1529961248,1529961249,1529961250,1529961251,1529961252,1529961253,1529961254,1529961255,1529961256,1529961257,1529961258,1529961259,1529961271,1529961272,1529961273,1529961274,1529961275,1529961276,1529961277,1529961278,1529961279,1529961280,1529961281,1529961282,1529961283,1529961284,1529961285,1529961286,1529961287,1529961288,1529961289,1529961290,1529961291,1529961292,1529961293,1529961294,1529961295,1529961296,1529961297,1529961298,1529961299,1529961300,1529961301,1529961302,1529961303,1529961304,1529961305,1529961306,1529961307,1529961308,1529961309,1529961310,1529961311,1529961312,1529961313,1366712130,1366712129,1366712128,1366712127,1362189335,1362189336,1362189337,1362189338,1529961499,1529961500,1529961501,1529961502,1529961503,1529961504,1529961505,1529961506,1529961507,1529961508,1529961509,1529961510,1529961511,1529961512,1529961513,1529961514,1529961515,1529961527,1529961528,1529961529,1529961530,1529961531,1529961532,1529961533,1529961534,1529961535,1529961536,1529961537,1529961538,1529961539,1529961540,1529961541,1529961542,1529961543,1529961544,1529961545,1529961546,1529961547,1529961548,1529961549,1529961550,1529961551,1529961552,1529961553,1529961554,1529961555,1529961556,1529961557,1529961558,1529961559,1529961560,1529961561,1529961562,1529961563,1529961564,1529961565,1529961566,1529961567,1529961568,1529961569,1366712126,1366712125,1366712124,1366712123,1362189591,1362189592,1362189593,1362189594,1529961755,1529961756,1529961757,1529961758,1529961759,1529961760,1529961761,1529961762,1529961763,1529961764,1529961765,1529961766,1529961767,1529961768,1529961769,1529961770,1529961771,1529961783,1529961784,1529961785,1529961786,1529961787,1529961788,1529961789,1529961790,1529961791,1529961792,1529961793,1529961794,1529961795,1529961796,1529961797,1529961798,1529961799,1529961800,1529961801,1529961802,1529961803,1529961804,1529961805,1529961806,1529961807,1529961808,1529961809,1529961810,1529961811,1529961812,1529961813,1529961814,1529961815,1529961816,1529961817,1529961818,1529961819,1529961820,1529961821,1529961822,1529961823,1529961824,1529961825,1366712122,1366712121,1366712120,1366712119,1362189847,1362189848,1362189849,1362189850,1529962011,1529962012,1529962013,1529962014,1529962015,1529962016,1529962017,1529962018,1529962019,1529962020,1529962021,1529962022,1529962023,1529962024,1529962025,1529962026,1529962027,1529962047,1529962048,1529962049,1529962050,1529962051,1529962052,1529962053,1529962054,1529962055,1529962056,1529962057,1529962058,1529962059,1529962060,1529962061,1529962062,1529962063,1529962064,1529962065,1529962066,1529962067,1529962068,1529962069,1529962070,1529962071,1529962072,1529962073,1529962074,1529962075,1529962076,1529962077,1529962078,1529962079,1529962080,1529962081,1366712118,1366712117,1366712116,1366712115,1362190103,1362190104,1362190105,1362190106,1529962267,1529962268,1529962269,1529962270,1529962271,1529962272,1529962273,1529962274,1529962275,1529962276,1529962277,1529962278,1529962279,1529962280,1529962281,1529962282,1529962283,1529962304,1529962305,1529962306,1529962307,1529962308,1529962309,1529962310,1529962311,1529962312,1529962313,1529962314,1529962315,1529962316,1529962317,1529962318,1529962319,1529962320,1529962321,1529962322,1529962323,1529962324,1529962325,1529962326,1529962327,1529962328,1529962329,1529962330,1529962331,1529962332,1529962333,1529962334,1529962335,1529962336,1529962337,1366712114,1366712113,1366712112,1366712111,1362190359,1362190360,1362190361,1362190362,1529962523,1529962524,1529962525,1529962526,1529962527,1529962528,1529962529,1529962530,1529962531,1529962532,1529962533,1529962534,1529962535,1529962536,1529962537,1529962538,1529962539,1529962560,1529962561,1529962562,1529962563,1529962564,1529962565,1529962566,1529962567,1529962568,1529962569,1529962570,1529962571,1529962572,1529962573,1529962574,1529962575,1529962576,1529962577,1529962578,1529962579,1529962580,1529962581,1529962582,1529962583,1529962584,1529962585,1529962586,1529962587,1529962588,1529962589,1529962590,1529962591,1529962592,1529962593,1366712110,1366712109,1366712108,1366712107,1362190615,1362190616,1362190617,1362190618,1529962779,1529962780,1529962781,1529962782,1529962783,1529962784,1529962785,1529962786,1529962787,1529962788,1529962789,1529962790,1529962791,1529962792,1529962793,1529962794,1529962795,1529962816,1529962817,1529962818,1529962819,1529962820,1529962821,1529962822,1529962823,1529962824,1529962825,1529962826,1529962827,1529962828,1529962829,1529962830,1529962831,1529962832,1529962833,1529962834,1529962835,1529962836,1529962837,1529962838,1529962839,1529962840,1529962841,1529962842,1529962843,1529962844,1529962845,1529962846,1529962847,1529962848,1529962849,1362236251,1362236252,1362236253,1362236254,1362236255,1362236256,1362236257,1362236507,1362236508,1362236509,1362236510,1362236511,1362236512,1362236513,1362236763,1362236764,1362236765,1362236766,1362236767,1362236768,1362236769,1362237019,1362237020,1362237021,1362237022,1362237023,1362237024,1362237025,1362237275,1362237276,1362237277,1362237278,1362237279,1362237280,1362237281,1362237531,1362237532,1362237533,1362237534,1362237535,1362237536,1362237537,1362237787,1362237788,1362237789,1362237790,1362237791,1362237792,1362237793,1362238043,1362238044,1362238045,1362238046,1362238047,1362238048,1362238049,1530010459,1530010460,1530010461,1530010462,1530010463,1530010464,1530010465,1530010715,1530010716,1530010717,1530010718,1530010719,1530010720,1530010721,1530010971,1530010972,1530010973,1530010974,1530010975,1530010976,1530010977,1530011227,1530011228,1530011229,1530011230,1530011231,1530011232,1530011233,1530011483,1530011484,1530011485,1530011486,1530011487,1530011488,1530011489,1530011739,1530011740,1530011741,1530011742,1530011743,1530011744,1530011745,1530011995,1530011996,1530011997,1530011998,1530011999,1530012000,1530012001,1530012251,1530012252,1530012253,1530012254,1530012255,1530012256,1530012257,1530012507,1530012508,1530012509,1530012510,1530012511,1530012512,1530012513,1530012763,1530012764,1530012765,1530012766,1530012767,1530012768,1530012769,1530013019,1530013020,1530013021,1530013022,1530013023,1530013024,1530013025,1530013275,1530013276,1530013277,1530013278,1530013279,1530013280,1530013281,1530013531,1530013532,1530013533,1530013534,1530013535,1530013536,1530013537,1530013787,1530013788,1530013789,1530013790,1530013791,1530013792,1530013793,1530014043,1530014044,1530014045,1530014046,1530014047,1530014048,1530014049,1530014299,1530014300,1530014301,1530014302,1530014303,1530014304,1530014305,1530014555,1530014556,1530014557,1530014558,1530014559,1530014560,1530014561,1530014811,1530014812,1530014813,1530014814,1530014815,1530014816,1530014817,1530015067,1530015068,1530015069,1530015070,1530015071,1530015072,1530015073,1530015323,1530015324,1530015325,1530015326,1530015327,1530015328,1530015329,1530015579,1530015580,1530015581,1530015582,1530015583,1530015584,1530015585,1530015835,1530015836,1530015837,1530015838,1530015839,1530015840,1530015841,1530016091,1530016092,1530016093,1530016094,1530016095,1530016096,1530016097,1530016347,1530016348,1530016349,1530016350,1530016351,1530016352,1530016353,1530016603,1530016604,1530016605,1530016606,1530016607,1530016608,1530016609,1530016859,1530016860,1530016861,1530016862,1530016863,1530016864,1530016865,1530017115,1530017116,1530017117,1530017118,1530017119,1530017120,1530017121,1530017371,1530017372,1530017373,1530017374,1530017375,1530017376,1530017377,1530017627,1530017628,1530017629,1530017630,1530017631,1530017632,1530017633,1530017883,1530017884,1530017885,1530017886,1530017887,1530017888,1530017889,1530018139,1530018140,1530018141,1530018142,1530018143,1530018144,1530018145,1530018395,1530018396,1530018397,1530018398,1530018399,1530018400,1530018401,1530018651,1530018652,1530018653,1530018654,1530018655,1530018656,1530018657,1530018907,1530018908,1530018909,1530018910,1530018911,1530018912,1530018913,1530019163,1530019164,1530019165,1530019166,1530019167,1530019168,1530019169,1530022217,1530022218,1530022219,1530022221,1530022222,1530022223,1530022224,1530022225,1530022226,1530022227,1530022228,1530022229,1530022230,1530022231,1530022232,1530022233,1530022234,1530022235,1530022236,1530022237,1530022238,1530022473,1530022474,1530022475,1530022477,1530022478,1530022479,1530022480,1530022481,1530022482,1530022483,1530022484,1530022485,1530022486,1530022487,1530022488,1530022489,1530022490,1530022491,1530022492,1530022493,1530022494,1530022729,1530022730,1530022731,1530022733,1530022734,1530022735,1530022736,1530022737,1530022738,1530022739,1530022740,1530022741,1530022742,1530022743,1530022744,1530022745,1530022746,1530022747,1530022748,1530022749,1530022750,1530022989,1530022990,1530022991,1530022992,1530022993,1530022994,1530022995,1530022996,1530022997,1530022998,1530022999,1530023000,1530023001,1530023002,1530023003,1530023004,1530023005,1530023006,1530023241,1530023242,1530023243,1530023244,1530023245,1530023246,1530023247,1530023248,1530023249,1530023250,1530023251,1530023252,1530023253,1530023254,1530023255,1530023256,1530023257,1530023258,1530023259,1530023260,1530023261,1530023262,1530023497,1530023498,1530023499,1530023500,1530023501,1530023502,1530023503,1530023504,1530023505,1530023506,1530023507,1530023508,1530023509,1530023510,1530023511,1530023512,1530023513,1530023514,1530023515,1530023516,1530023517,1530023518,1530023753,1530023754,1530023755,1530023756,1530023757,1530023758,1530023759,1530023760,1530023761,1530023762,1530023763,1530023764,1530023765,1530023766,1530023767,1530023768,1530023769,1530023770,1530023771,1530023772,1530023773,1530023774,1530024009,1530024010,1530024011,1530024012,1530024013,1530024014,1530024015,1530024016,1530024017,1530024018,1530024019,1530024020,1530024021,1530024022,1530024023,1530024024,1530024025,1530024026,1530024027,1530024028,1530024029,1530024030,1530024264,1530024265,1530024266,1530024267,1530024268,1530024269,1530024270,1530024271,1530024272,1530024273,1530024274,1530024275,1530024276,1530024277,1530024278,1530024279,1530024280,1530024281,1530024282,1530024283,1530024284,1530024285,1530024286,1530024287,1530024503,1530024504,1530024505,1530024506,1530024507,1530024508,1530024509,1530024510,1530024511,1530024512,1530024513,1530024514,1530024515,1530024516,1530024517,1530024518,1530024519,1530024520,1530024521,1530024522,1530024523,1530024524,1530024525,1530024526,1530024527,1530024528,1530024529,1530024530,1530024531,1530024532,1530024533,1530024534,1530024535,1530024536,1530024537,1530024538,1530024539,1530024540,1530024541,1530024542,1530024543,1530024544,1530024545,1530024759,1530024760,1530024761,1530024762,1530024763,1530024764,1530024765,1530024766,1530024767,1530024768,1530024769,1530024770,1530024771,1530024772,1530024773,1530024774,1530024775,1530024776,1530024777,1530024778,1530024779,1530024780,1530024781,1530024782,1530024783,1530024784,1530024785,1530024786,1530024787,1530024788,1530024789,1530024790,1530024791,1530024792,1530024793,1530024794,1530024795,1530024796,1530024797,1530024798,1530024799,1530024800,1530024801,1530025015,1530025016,1530025017,1530025018,1530025019,1530025020,1530025021,1530025022,1530025023,1530025024,1530025025,1530025026,1530025027,1530025028,1530025029,1530025030,1530025031,1530025032,1530025033,1530025034,1530025035,1530025036,1530025037,1530025038,1530025039,1530025040,1530025041,1530025042,1530025043,1530025044,1530025045,1530025046,1530025047,1530025048,1530025049,1530025050,1530025051,1530025052,1530025053,1530025054,1530025055,1530025056,1530025057,1530025271,1530025272,1530025273,1530025274,1530025275,1530025276,1530025277,1530025278,1530025279,1530025280,1530025281,1530025282,1530025283,1530025284,1530025285,1530025286,1530025287,1530025288,1530025289,1530025290,1530025291,1530025292,1530025293,1530025294,1530025295,1530025296,1530025297,1530025298,1530025299,1530025300,1530025301,1530025302,1530025303,1530025304,1530025305,1530025306,1530025307,1530025308,1530025309,1530025310,1530025311,1530025312,1530025313,1530025527,1530025528,1530025529,1530025530,1530025531,1530025532,1530025533,1530025534,1530025535,1530025536,1530025537,1530025538,1530025539,1530025540,1530025541,1530025542,1530025543,1530025544,1530025545,1530025546,1530025547,1530025548,1530025549,1530025550,1530025551,1530025552,1530025553,1530025554,1530025555,1530025556,1530025557,1530025558,1530025559,1530025560,1530025561,1530025562,1530025563,1530025564,1530025565,1530025566,1530025567,1530025568,1530025569,1530025783,1530025784,1530025785,1530025786,1530025787,1530025788,1530025789,1530025790,1530025791,1530025792,1530025793,1530025794,1530025795,1530025796,1530025797,1530025798,1530025799,1530025800,1530025801,1530025802,1530025803,1530025804,1530025805,1530025806,1530025807,1530025808,1530025809,1530025810,1530025811,1530025812,1530025813,1530025814,1530025815,1530025816,1530025817,1530025818,1530025819,1530025820,1530025821,1530025822,1530025823,1530025824,1530025825,1530026039,1530026040,1530026041,1530026042,1530026043,1530026044,1530026045,1530026046,1530026047,1530026048,1530026049,1530026050,1530026051,1530026052,1530026053,1530026054,1530026055,1530026056,1530026057,1530026058,1530026059,1530026060,1530026061,1530026062,1530026063,1530026064,1530026065,1530026066,1530026067,1530026068,1530026069,1530026070,1530026071,1530026072,1530026073,1530026074,1530026075,1530026076,1530026077,1530026078,1530026079,1530026080,1530026081,1530026295,1530026296,1530026297,1530026298,1530026299,1530026300,1530026301,1530026302,1530026303,1530026304,1530026305,1530026306,1530026307,1530026308,1530026309,1530026310,1530026311,1530026312,1530026313,1530026314,1530026315,1530026316,1530026317,1530026318,1530026319,1530026320,1530026321,1530026322,1530026323,1530026324,1530026325,1530026326,1530026327,1530026328,1530026329,1530026330,1530026331,1530026332,1530026333,1530026334,1530026335,1530026336,1530026337,1530026551,1530026552,1530026553,1530026554,1530026555,1530026556,1530026557,1530026558,1530026559,1530026560,1530026561,1530026562,1530026563,1530026564,1530026565,1530026566,1530026567,1530026568,1530026569,1530026570,1530026571,1530026572,1530026573,1530026574,1530026575,1530026576,1530026577,1530026578,1530026579,1530026580,1530026581,1530026582,1530026583,1530026584,1530026585,1530026586,1530026587,1530026588,1530026589,1530026590,1530026591,1530026592,1530026593,1366712106,1366712105,1366712104,1366712103,1362254615,1362254616,1362254617,1362254618,1530026779,1530026780,1530026786,1530026787,1530026788,1530026789,1530026790,1530026791,1530026792,1530026793,1530026794,1530026795,1530026807,1530026808,1530026809,1530026810,1530026811,1530026812,1530026813,1530026814,1530026815,1530026816,1530026817,1530026818,1530026819,1530026820,1530026821,1530026822,1530026823,1530026824,1530026825,1530026826,1530026827,1530026828,1530026829,1530026830,1530026831,1530026832,1530026833,1530026834,1530026835,1530026836,1530026837,1530026838,1530026839,1530026840,1530026841,1530026842,1530026843,1530026844,1530026845,1530026846,1530026847,1530026848,1530026849,1366712102,1366712101,1366712100,1366712099,1362254871,1362254872,1362254873,1362254874,1530027035,1530027036,1530027037,1530027038,1530027039,1530027040,1530027041,1530027042,1530027043,1530027044,1530027045,1530027046,1530027047,1530027048,1530027049,1530027050,1530027051,1530027063,1530027064,1530027065,1530027066,1530027067,1530027068,1530027069,1530027070,1530027071,1530027072,1530027073,1530027074,1530027075,1530027076,1530027077,1530027078,1530027079,1530027080,1530027081,1530027082,1530027083,1530027084,1530027085,1530027086,1530027087,1530027088,1530027089,1530027090,1530027091,1530027092,1530027093,1530027094,1530027095,1530027096,1530027097,1530027098,1530027099,1530027100,1530027101,1530027102,1530027103,1530027104,1530027105,1366712098,1366712097,1366712096,1366712095,1362255127,1362255128,1362255129,1362255130,1530027291,1530027292,1530027293,1530027294,1530027295,1530027296,1530027297,1530027298,1530027299,1530027300,1530027301,1530027302,1530027303,1530027304,1530027305,1530027306,1530027307,1530027319,1530027320,1530027321,1530027322,1530027323,1530027324,1530027325,1530027326,1530027327,1530027328,1530027329,1530027330,1530027331,1530027332,1530027333,1530027334,1530027335,1530027336,1530027337,1530027338,1530027339,1530027340,1530027341,1530027342,1530027343,1530027344,1530027345,1530027346,1530027347,1530027348,1530027349,1530027350,1530027351,1530027352,1530027353,1530027354,1530027355,1530027356,1530027357,1530027358,1530027359,1530027360,1530027361,1366712094,1366712093,1366712092,1366712091,1362255383,1362255384,1362255385,1362255386,1530027547,1530027548,1530027549,1530027550,1530027551,1530027552,1530027553,1530027554,1530027555,1530027556,1530027557,1530027558,1530027559,1530027560,1530027561,1530027562,1530027563,1530027575,1530027576,1530027577,1530027578,1530027579,1530027580,1530027581,1530027582,1530027583,1530027584,1530027585,1530027586,1530027587,1530027588,1530027589,1530027590,1530027591,1530027592,1530027593,1530027594,1530027595,1530027596,1530027597,1530027598,1530027599,1530027600,1530027601,1530027602,1530027603,1530027604,1530027605,1530027606,1530027607,1530027608,1530027609,1530027610,1530027611,1530027612,1530027613,1530027614,1530027615,1530027616,1530027617,1366712090,1366712089,1366712088,1366712087,1362255639,1362255640,1362255641,1362255642,1530027803,1530027804,1530027805,1530027806,1530027807,1530027808,1530027809,1530027810,1530027811,1530027812,1530027813,1530027814,1530027815,1530027816,1530027817,1530027818,1530027819,1530027839,1530027840,1530027841,1530027842,1530027843,1530027844,1530027845,1530027846,1530027847,1530027848,1530027849,1530027850,1530027851,1530027852,1530027853,1530027854,1530027855,1530027856,1530027857,1530027858,1530027859,1530027860,1530027861,1530027862,1530027863,1530027864,1530027865,1530027866,1530027867,1530027868,1530027869,1530027870,1530027871,1530027872,1530027873,1366712086,1366712085,1366712084,1366712083,1362255895,1362255896,1362255897,1362255898,1530028059,1530028060,1530028061,1530028062,1530028063,1530028064,1530028065,1530028066,1530028067,1530028068,1530028069,1530028070,1530028071,1530028072,1530028073,1530028074,1530028075,1530028096,1530028097,1530028098,1530028099,1530028100,1530028101,1530028102,1530028103,1530028104,1530028105,1530028106,1530028107,1530028108,1530028109,1530028110,1530028111,1530028112,1530028113,1530028114,1530028115,1530028116,1530028117,1530028118,1530028119,1530028120,1530028121,1530028122,1530028123,1530028124,1530028125,1530028126,1530028127,1530028128,1530028129,1534484065,1534484064,1534484063,1534484062,1362256151,1362256152,1362256153,1362256154,1530028315,1530028316,1530028317,1530028318,1530028319,1530028320,1530028321,1530028322,1530028323,1530028324,1530028325,1530028326,1530028327,1530028328,1530028329,1530028330,1530028331,1530028352,1530028353,1530028354,1530028355,1530028356,1530028357,1530028358,1530028359,1530028360,1530028361,1530028362,1530028363,1530028364,1530028365,1530028366,1530028367,1530028368,1530028369,1530028370,1530028371,1530028372,1530028373,1530028374,1530028375,1530028376,1530028377,1530028378,1530028379,1530028380,1530028381,1530028382,1530028383,1530028384,1530028385,1362301787,1362301788,1362301789,1362301790,1362301791,1362301792,1362301793,1362302043,1362302044,1362302045,1362302046,1362302047,1362302048,1362302049,1362302299,1362302300,1362302301,1362302302,1362302303,1362302304,1362302305,1362302555,1362302556,1362302557,1362302558,1362302559,1362302560,1362302561,1362302811,1362302812,1362302813,1362302814,1362302815,1362302816,1362302817,1362303067,1362303068,1362303069,1362303070,1362303071,1362303072,1362303073,1362303323,1362303324,1362303325,1362303326,1362303327,1362303328,1362303329,1362303579,1362303580,1362303581,1362303582,1362303583,1362303584,1362303585,1530075995,1530075996,1530075997,1530075998,1530075999,1530076000,1530076001,1530076251,1530076252,1530076253,1530076254,1530076255,1530076256,1530076257,1530076508,1530076509,1530076510,1530076511,1530076512,1530076513,1530076764,1530076765,1530076766,1530076767,1530076768,1530076769,1530077020,1530077021,1530077022,1530077023,1530077024,1530077025,1530077276,1530077277,1530077278,1530077279,1530077280,1530077281,1530077532,1530077533,1530077534,1530077535,1530077536,1530077537,1530077787,1530077788,1530077789,1530077790,1530077791,1530077792,1530077793,1530078043,1530078044,1530078045,1530078046,1530078047,1530078048,1530078049,1530078299,1530078300,1530078301,1530078302,1530078303,1530078304,1530078305,1530078555,1530078556,1530078557,1530078558,1530078559,1530078560,1530078561,1530078811,1530078812,1530078813,1530078814,1530078815,1530078816,1530078817,1530079067,1530079068,1530079069,1530079070,1530079071,1530079072,1530079073,1530079323,1530079324,1530079325,1530079326,1530079327,1530079328,1530079329,1530079579,1530079580,1530079581,1530079582,1530079583,1530079584,1530079585,1530079835,1530079836,1530079837,1530079838,1530079839,1530079840,1530079841,1530080091,1530080092,1530080093,1530080094,1530080095,1530080096,1530080097,1530080347,1530080348,1530080349,1530080350,1530080351,1530080352,1530080353,1530080603,1530080604,1530080605,1530080606,1530080607,1530080608,1530080609,1530080859,1530080860,1530080861,1530080862,1530080863,1530080864,1530080865,1530081115,1530081116,1530081117,1530081118,1530081119,1530081120,1530081121,1530081371,1530081372,1530081373,1530081374,1530081375,1530081376,1530081377,1530081627,1530081628,1530081629,1530081630,1530081631,1530081632,1530081633,1530081883,1530081884,1530081885,1530081886,1530081887,1530081888,1530081889,1530082139,1530082140,1530082141,1530082142,1530082143,1530082144,1530082145,1530082395,1530082396,1530082397,1530082398,1530082399,1530082400,1530082401,1530082651,1530082652,1530082653,1530082654,1530082655,1530082656,1530082657,1530082907,1530082908,1530082909,1530082910,1530082911,1530082912,1530082913,1530083163,1530083164,1530083165,1530083166,1530083167,1530083168,1530083169,1530083419,1530083420,1530083421,1530083422,1530083423,1530083424,1530083425,1530083675,1530083676,1530083677,1530083678,1530083679,1530083680,1530083681,1530083931,1530083932,1530083933,1530083934,1530083935,1530083936,1530083937,1530084187,1530084188,1530084189,1530084190,1530084191,1530084192,1530084193,1530084443,1530084444,1530084445,1530084446,1530084447,1530084448,1530084449,1530084699,1530084700,1530084701,1530084702,1530084703,1530084704,1530084705,1530087753,1530087754,1530087755,1530087756,1530087757,1530087758,1530087759,1530087760,1530087761,1530087762,1530087763,1530087764,1530087765,1530087766,1530087767,1530087768,1530087769,1530087770,1530087771,1530087772,1530087773,1530087774,1530087775,1530088009,1530088010,1530088011,1530088012,1530088013,1530088014,1530088015,1530088016,1530088017,1530088018,1530088019,1530088020,1530088021,1530088022,1530088023,1530088024,1530088025,1530088026,1530088027,1530088028,1530088029,1530088030,1530088031,1530088265,1530088266,1530088267,1530088268,1530088269,1530088270,1530088271,1530088272,1530088273,1530088274,1530088275,1530088276,1530088277,1530088278,1530088279,1530088280,1530088281,1530088282,1530088283,1530088284,1530088285,1530088286,1530088287,1530088521,1530088522,1530088523,1530088524,1530088525,1530088526,1530088527,1530088528,1530088529,1530088530,1530088531,1530088532,1530088533,1530088534,1530088535,1530088536,1530088537,1530088538,1530088539,1530088540,1530088541,1530088542,1530088543,1530088777,1530088778,1530088779,1530088780,1530088781,1530088782,1530088783,1530088784,1530088785,1530088786,1530088787,1530088788,1530088789,1530088790,1530088791,1530088792,1530088793,1530088794,1530088795,1530088796,1530088797,1530088798,1530088799,1530089033,1530089034,1530089035,1530089036,1530089037,1530089038,1530089039,1530089040,1530089041,1530089042,1530089043,1530089044,1530089045,1530089046,1530089047,1530089048,1530089049,1530089050,1530089051,1530089052,1530089053,1530089054,1530089055,1530089289,1530089290,1530089291,1530089292,1530089293,1530089294,1530089295,1530089296,1530089297,1530089298,1530089299,1530089300,1530089301,1530089302,1530089303,1530089304,1530089305,1530089306,1530089307,1530089308,1530089309,1530089310,1530089311,1530089545,1530089546,1530089547,1530089548,1530089549,1530089550,1530089551,1530089552,1530089553,1530089554,1530089555,1530089556,1530089557,1530089558,1530089559,1530089560,1530089561,1530089562,1530089563,1530089564,1530089565,1530089566,1530089567,1530089800,1530089801,1530089802,1530089803,1530089804,1530089805,1530089806,1530089807,1530089808,1530089809,1530089810,1530089811,1530089812,1530089813,1530089814,1530089815,1530089816,1530089817,1530089818,1530089819,1530089820,1530089821,1530089822,1530089823,1530089824,1530090039,1530090040,1530090041,1530090042,1530090043,1530090044,1530090045,1530090046,1530090047,1530090048,1530090049,1530090050,1530090051,1530090052,1530090053,1530090054,1530090055,1530090056,1530090057,1530090058,1530090059,1530090060,1530090061,1530090062,1530090063,1530090064,1530090065,1530090066,1530090067,1530090068,1530090069,1530090070,1530090071,1530090072,1530090073,1530090074,1530090075,1530090076,1530090077,1530090078,1530090079,1530090080,1530090081,1530090295,1530090296,1530090297,1530090298,1530090299,1530090300,1530090301,1530090302,1530090303,1530090304,1530090305,1530090306,1530090307,1530090308,1530090309,1530090310,1530090311,1530090312,1530090313,1530090314,1530090315,1530090316,1530090317,1530090318,1530090319,1530090320,1530090321,1530090322,1530090323,1530090324,1530090325,1530090326,1530090327,1530090328,1530090329,1530090330,1530090331,1530090332,1530090333,1530090334,1530090335,1530090336,1530090337,1530090551,1530090552,1530090553,1530090554,1530090555,1530090556,1530090557,1530090558,1530090559,1530090560,1530090561,1530090562,1530090563,1530090564,1530090565,1530090566,1530090567,1530090568,1530090569,1530090570,1530090571,1530090572,1530090573,1530090574,1530090575,1530090576,1530090577,1530090578,1530090579,1530090580,1530090581,1530090582,1530090583,1530090584,1530090585,1530090586,1530090587,1530090588,1530090589,1530090590,1530090591,1530090592,1530090593,1530090807,1530090808,1530090809,1530090810,1530090811,1530090812,1530090813,1530090814,1530090815,1530090816,1530090817,1530090818,1530090819,1530090820,1530090821,1530090822,1530090823,1530090824,1530090825,1530090826,1530090827,1530090828,1530090829,1530090830,1530090831,1530090832,1530090833,1530090834,1530090835,1530090836,1530090837,1530090838,1530090839,1530090840,1530090841,1530090842,1530090843,1530090844,1530090845,1530090846,1530090847,1530090848,1530090849,1530091063,1530091064,1530091065,1530091066,1530091067,1530091068,1530091069,1530091070,1530091071,1530091072,1530091073,1530091074,1530091075,1530091076,1530091077,1530091078,1530091079,1530091080,1530091081,1530091082,1530091083,1530091084,1530091085,1530091086,1530091087,1530091088,1530091089,1530091090,1530091091,1530091092,1530091093,1530091094,1530091095,1530091096,1530091097,1530091098,1530091099,1530091100,1530091101,1530091102,1530091103,1530091104,1530091105,1530091319,1530091320,1530091321,1530091322,1530091323,1530091324,1530091325,1530091326,1530091327,1530091328,1530091329,1530091330,1530091331,1530091332,1530091333,1530091334,1530091335,1530091336,1530091337,1530091338,1530091339,1530091340,1530091341,1530091342,1530091343,1530091344,1530091345,1530091346,1530091347,1530091348,1530091349,1530091350,1530091351,1530091352,1530091353,1530091354,1530091355,1530091356,1530091357,1530091358,1530091359,1530091360,1530091361,1530091575,1530091576,1530091577,1530091578,1530091579,1530091580,1530091581,1530091582,1530091583,1530091584,1530091585,1530091586,1530091587,1530091588,1530091589,1530091590,1530091591,1530091592,1530091593,1530091594,1530091595,1530091596,1530091597,1530091598,1530091599,1530091600,1530091601,1530091602,1530091603,1530091604,1530091605,1530091606,1530091607,1530091608,1530091609,1530091610,1530091611,1530091612,1530091613,1530091614,1530091615,1530091616,1530091617,1530091831,1530091832,1530091833,1530091834,1530091835,1530091836,1530091837,1530091838,1530091839,1530091840,1530091841,1530091842,1530091843,1530091844,1530091845,1530091846,1530091847,1530091848,1530091849,1530091850,1530091851,1530091852,1530091853,1530091854,1530091855,1530091856,1530091857,1530091858,1530091859,1530091860,1530091861,1530091862,1530091863,1530091864,1530091865,1530091866,1530091867,1530091868,1530091869,1530091870,1530091871,1530091872,1530091873,1530092087,1530092088,1530092089,1530092090,1530092091,1530092092,1530092093,1530092094,1530092095,1530092096,1530092097,1530092098,1530092099,1530092100,1530092101,1530092102,1530092103,1530092104,1530092105,1530092106,1530092107,1530092108,1530092109,1530092110,1530092111,1530092112,1530092113,1530092114,1530092115,1530092116,1530092117,1530092118,1530092119,1530092120,1530092121,1530092122,1530092123,1530092124,1530092125,1530092126,1530092127,1530092128,1530092129,1534484061,1534484060,1534484059,1534484058,1362320151,1362320152,1362320153,1362320154,1530092315,1530092316,1530092317,1530092318,1530092319,1530092320,1530092321,1530092322,1530092323,1530092324,1530092325,1530092326,1530092327,1530092328,1530092329,1530092330,1530092331,1530092343,1530092344,1530092345,1530092346,1530092347,1530092348,1530092349,1530092350,1530092351,1530092352,1530092353,1530092354,1530092355,1530092356,1530092357,1530092358,1530092359,1530092360,1530092361,1530092362,1530092363,1530092364,1530092365,1530092366,1530092367,1530092368,1530092369,1530092370,1530092371,1530092372,1530092373,1530092374,1530092375,1530092376,1530092377,1530092378,1530092379,1530092380,1530092381,1530092382,1530092383,1530092384,1530092385,1366711897,1366711896,1366711895,1366711894,1362320407,1362320408,1362320409,1362320410,1530092571,1530092572,1530092573,1530092574,1530092575,1530092576,1530092577,1530092578,1530092579,1530092580,1530092581,1530092582,1530092583,1530092584,1530092585,1530092586,1530092587,1530092599,1530092600,1530092601,1530092602,1530092603,1530092604,1530092605,1530092606,1530092607,1530092608,1530092609,1530092610,1530092611,1530092612,1530092613,1530092614,1530092615,1530092616,1530092617,1530092618,1530092619,1530092620,1530092621,1530092622,1530092623,1530092624,1530092625,1530092626,1530092627,1530092628,1530092629,1530092630,1530092631,1530092632,1530092633,1530092634,1530092635,1530092636,1530092637,1530092638,1530092639,1530092640,1530092641,1366711893,1366711892,1366711891,1366711890,1362320663,1362320664,1362320665,1362320666,1530092827,1530092828,1530092829,1530092830,1530092831,1530092832,1530092833,1530092834,1530092835,1530092836,1530092837,1530092838,1530092839,1530092840,1530092841,1530092842,1530092843,1530092855,1530092856,1530092857,1530092858,1530092859,1530092860,1530092861,1530092862,1530092863,1530092864,1530092865,1530092866,1530092867,1530092868,1530092869,1530092870,1530092871,1530092872,1530092873,1530092874,1530092875,1530092876,1530092877,1530092878,1530092879,1530092880,1530092881,1530092882,1530092883,1530092884,1530092885,1530092886,1530092887,1530092888,1530092889,1530092890,1530092891,1530092892,1530092893,1530092894,1530092895,1530092896,1530092897,1366711889,1366711888,1366711887,1366711886,1362320919,1362320920,1362320921,1362320922,1530093083,1530093084,1530093085,1530093086,1530093087,1530093088,1530093089,1530093090,1530093091,1530093092,1530093093,1530093094,1530093095,1530093096,1530093097,1530093098,1530093099,1530093111,1530093112,1530093113,1530093114,1530093115,1530093116,1530093117,1530093118,1530093119,1530093120,1530093121,1530093122,1530093123,1530093124,1530093125,1530093126,1530093127,1530093128,1530093129,1530093130,1530093131,1530093132,1530093133,1530093134,1530093135,1530093136,1530093137,1530093138,1530093139,1530093140,1530093141,1530093142,1530093143,1530093144,1530093145,1530093146,1530093147,1530093148,1530093149,1530093150,1530093151,1530093152,1530093153,1366711885,1366711884,1366711883,1366711882,1362321175,1362321176,1362321177,1362321178,1530093339,1530093340,1530093341,1530093342,1530093343,1530093344,1530093345,1530093346,1530093347,1530093348,1530093349,1530093350,1530093351,1530093352,1530093353,1530093354,1530093355,1530093367,1530093368,1530093369,1530093370,1530093371,1530093372,1530093373,1530093374,1530093375,1530093376,1530093377,1530093378,1530093379,1530093380,1530093381,1530093382,1530093383,1530093384,1530093385,1530093386,1530093387,1530093388,1530093389,1530093390,1530093391,1530093392,1530093393,1530093394,1530093395,1530093396,1530093397,1530093398,1530093399,1530093400,1530093401,1530093402,1530093403,1530093404,1530093405,1530093406,1530093407,1530093408,1530093409,1366711881,1366711880,1366711879,1366711878,1362321431,1362321432,1362321433,1362321434,1530093595,1530093596,1530093597,1530093598,1530093599,1530093600,1530093601,1530093602,1530093603,1530093604,1530093605,1530093606,1530093607,1530093608,1530093609,1530093610,1530093611,1530093631,1530093632,1530093633,1530093634,1530093635,1530093636,1530093637,1530093638,1530093639,1530093640,1530093641,1530093642,1530093643,1530093644,1530093645,1530093646,1530093647,1530093648,1530093649,1530093650,1530093651,1530093652,1530093653,1530093654,1530093655,1530093656,1530093657,1530093658,1530093659,1530093660,1530093661,1530093662,1530093663,1530093664,1530093665,1366711877,1366711876,1366711875,1366711874,1362321687,1362321688,1362321689,1362321690,1530093851,1530093852,1530093853,1530093854,1530093855,1530093856,1530093857,1530093858,1530093859,1530093860,1530093861,1530093862,1530093863,1530093864,1530093865,1530093866,1530093867,1530093888,1530093889,1530093890,1530093891,1530093892,1530093893,1530093894,1530093895,1530093896,1530093897,1530093898,1530093899,1530093900,1530093901,1530093902,1530093903,1530093904,1530093905,1530093906,1530093907,1530093908,1530093909,1530093910,1530093911,1530093912,1530093913,1530093914,1530093915,1530093916,1530093917,1530093918,1530093919,1530093920,1530093921,1362367323,1362367324,1362367325,1362367326,1362367327,1362367328,1362367329,1362367579,1362367580,1362367581,1362367582,1362367583,1362367584,1362367585,1362367835,1362367836,1362367837,1362367838,1362367839,1362367840,1362367841,1362368091,1362368092,1362368093,1362368094,1362368095,1362368096,1362368097,1362368347,1362368348,1362368349,1362368350,1362368351,1362368352,1362368353,1362368603,1362368604,1362368605,1362368606,1362368607,1362368608,1362368609,1362368859,1362368860,1362368861,1362368862,1362368863,1362368864,1362368865,1362369115,1362369116,1362369117,1362369118,1362369119,1362369120,1362369121,1530141531,1530141532,1530141533,1530141534,1530141535,1530141536,1530141537,1530141787,1530141788,1530141789,1530141790,1530141791,1530141792,1530141793,1530142043,1530142044,1530142045,1530142046,1530142047,1530142048,1530142049,1530142299,1530142300,1530142301,1530142302,1530142303,1530142304,1530142305,1530142555,1530142556,1530142557,1530142558,1530142559,1530142560,1530142561,1530142811,1530142812,1530142813,1530142814,1530142815,1530142816,1530142817,1530143067,1530143068,1530143069,1530143070,1530143071,1530143072,1530143073,1530143323,1530143324,1530143325,1530143326,1530143327,1530143328,1530143329,1530143579,1530143580,1530143581,1530143582,1530143583,1530143584,1530143585,1530143835,1530143836,1530143837,1530143838,1530143839,1530143840,1530143841,1530144091,1530144092,1530144093,1530144094,1530144095,1530144096,1530144097,1530144347,1530144348,1530144349,1530144350,1530144351,1530144352,1530144353,1530144603,1530144604,1530144605,1530144606,1530144607,1530144608,1530144609,1530144859,1530144860,1530144861,1530144862,1530144863,1530144864,1530144865,1530145115,1530145116,1530145117,1530145118,1530145119,1530145120,1530145121,1530145371,1530145372,1530145373,1530145374,1530145375,1530145376,1530145377,1530145627,1530145628,1530145629,1530145630,1530145631,1530145632,1530145633,1530145883,1530145884,1530145885,1530145886,1530145887,1530145888,1530145889,1530146139,1530146140,1530146141,1530146142,1530146143,1530146144,1530146145,1530146395,1530146396,1530146397,1530146398,1530146399,1530146400,1530146401,1530146651,1530146652,1530146653,1530146654,1530146655,1530146656,1530146657,1530146907,1530146908,1530146909,1530146910,1530146911,1530146912,1530146913,1530147163,1530147164,1530147165,1530147166,1530147167,1530147168,1530147169,1530147419,1530147420,1530147421,1530147422,1530147423,1530147424,1530147425,1530147675,1530147676,1530147677,1530147678,1530147679,1530147680,1530147681,1530147931,1530147932,1530147933,1530147934,1530147935,1530147936,1530147937,1530148187,1530148188,1530148189,1530148190,1530148191,1530148192,1530148193,1530148443,1530148444,1530148445,1530148446,1530148447,1530148448,1530148449,1530148699,1530148700,1530148701,1530148702,1530148703,1530148704,1530148705,1530148955,1530148956,1530148957,1530148958,1530148959,1530148960,1530148961,1530149211,1530149212,1530149213,1530149214,1530149215,1530149216,1530149217,1530149467,1530149468,1530149469,1530149470,1530149471,1530149472,1530149473,1530149723,1530149724,1530149725,1530149726,1530149727,1530149728,1530149729,1530149979,1530149980,1530149981,1530149982,1530149983,1530149984,1530149985,1530150235,1530150236,1530150237,1530150238,1530150239,1530150240,1530150241,1530153289,1530153290,1530153291,1530153292,1530153293,1530153294,1530153295,1530153296,1530153297,1530153298,1530153299,1530153300,1530153301,1530153302,1530153303,1530153304,1530153305,1530153306,1530153307,1530153308,1530153309,1530153310,1530153311,1530153312,1530153545,1530153546,1530153547,1530153548,1530153549,1530153550,1530153551,1530153552,1530153553,1530153554,1530153555,1530153556,1530153557,1530153558,1530153559,1530153560,1530153561,1530153562,1530153563,1530153564,1530153565,1530153566,1530153567,1530153568,1530153801,1530153802,1530153803,1530153804,1530153805,1530153806,1530153807,1530153808,1530153809,1530153810,1530153811,1530153812,1530153813,1530153814,1530153815,1530153816,1530153817,1530153818,1530153819,1530153820,1530153821,1530153822,1530153823,1530153824,1530154057,1530154058,1530154059,1530154060,1530154061,1530154062,1530154063,1530154064,1530154065,1530154066,1530154067,1530154068,1530154069,1530154070,1530154071,1530154072,1530154073,1530154074,1530154075,1530154076,1530154077,1530154078,1530154079,1530154080,1530154313,1530154314,1530154315,1530154316,1530154317,1530154318,1530154319,1530154320,1530154321,1530154322,1530154323,1530154324,1530154325,1530154326,1530154327,1530154328,1530154329,1530154330,1530154331,1530154332,1530154333,1530154334,1530154335,1530154336,1530154569,1530154570,1530154571,1530154572,1530154573,1530154574,1530154575,1530154576,1530154577,1530154578,1530154579,1530154580,1530154581,1530154582,1530154583,1530154584,1530154585,1530154586,1530154587,1530154588,1530154589,1530154590,1530154591,1530154592,1530154825,1530154826,1530154827,1530154828,1530154829,1530154830,1530154831,1530154832,1530154833,1530154834,1530154835,1530154836,1530154837,1530154838,1530154839,1530154840,1530154841,1530154842,1530154843,1530154844,1530154845,1530154846,1530154847,1530154848,1530155081,1530155082,1530155083,1530155084,1530155085,1530155086,1530155087,1530155088,1530155089,1530155090,1530155091,1530155092,1530155093,1530155094,1530155095,1530155096,1530155097,1530155098,1530155099,1530155100,1530155101,1530155102,1530155103,1530155104,1530155336,1530155337,1530155338,1530155339,1530155340,1530155341,1530155342,1530155343,1530155344,1530155345,1530155346,1530155347,1530155348,1530155349,1530155350,1530155351,1530155352,1530155353,1530155354,1530155355,1530155356,1530155357,1530155358,1530155359,1530155360,1530155361,1530155575,1530155576,1530155577,1530155578,1530155579,1530155580,1530155581,1530155582,1530155583,1530155584,1530155585,1530155586,1530155587,1530155588,1530155589,1530155590,1530155591,1530155592,1530155593,1530155594,1530155595,1530155596,1530155597,1530155598,1530155599,1530155600,1530155601,1530155602,1530155603,1530155604,1530155605,1530155606,1530155607,1530155608,1530155609,1530155610,1530155611,1530155612,1530155613,1530155614,1530155615,1530155616,1530155617,1530155831,1530155832,1530155833,1530155834,1530155835,1530155836,1530155837,1530155838,1530155839,1530155840,1530155841,1530155842,1530155843,1530155844,1530155845,1530155846,1530155847,1530155848,1530155849,1530155850,1530155851,1530155852,1530155853,1530155854,1530155855,1530155856,1530155857,1530155858,1530155859,1530155860,1530155861,1530155862,1530155863,1530155864,1530155865,1530155866,1530155867,1530155868,1530155869,1530155870,1530155871,1530155872,1530155873,1530156087,1530156088,1530156089,1530156090,1530156091,1530156092,1530156093,1530156094,1530156095,1530156096,1530156097,1530156098,1530156099,1530156100,1530156101,1530156102,1530156103,1530156104,1530156105,1530156106,1530156107,1530156108,1530156109,1530156110,1530156111,1530156112,1530156113,1530156114,1530156115,1530156116,1530156117,1530156118,1530156119,1530156120,1530156121,1530156122,1530156123,1530156124,1530156125,1530156126,1530156127,1530156128,1530156129,1530156343,1530156344,1530156345,1530156346,1530156347,1530156348,1530156349,1530156350,1530156351,1530156352,1530156353,1530156354,1530156355,1530156356,1530156357,1530156358,1530156359,1530156360,1530156361,1530156362,1530156363,1530156364,1530156365,1530156366,1530156367,1530156368,1530156369,1530156370,1530156371,1530156372,1530156373,1530156374,1530156375,1530156376,1530156377,1530156378,1530156379,1530156380,1530156381,1530156382,1530156383,1530156384,1530156385,1530156599,1530156600,1530156601,1530156602,1530156603,1530156604,1530156605,1530156606,1530156607,1530156608,1530156609,1530156610,1530156611,1530156612,1530156613,1530156614,1530156615,1530156616,1530156617,1530156618,1530156619,1530156620,1530156621,1530156622,1530156623,1530156624,1530156625,1530156626,1530156627,1530156628,1530156629,1530156630,1530156631,1530156632,1530156633,1530156634,1530156635,1530156636,1530156637,1530156638,1530156639,1530156640,1530156641,1530156855,1530156856,1530156857,1530156858,1530156859,1530156860,1530156861,1530156862,1530156863,1530156864,1530156865,1530156866,1530156867,1530156868,1530156869,1530156870,1530156871,1530156872,1530156873,1530156874,1530156875,1530156876,1530156877,1530156878,1530156879,1530156880,1530156881,1530156882,1530156883,1530156884,1530156885,1530156886,1530156887,1530156888,1530156889,1530156890,1530156891,1530156892,1530156893,1530156894,1530156895,1530156896,1530156897,1530157111,1530157112,1530157113,1530157114,1530157115,1530157116,1530157117,1530157118,1530157119,1530157120,1530157121,1530157122,1530157123,1530157124,1530157125,1530157126,1530157127,1530157128,1530157129,1530157130,1530157131,1530157132,1530157133,1530157134,1530157135,1530157136,1530157137,1530157138,1530157139,1530157140,1530157141,1530157142,1530157143,1530157144,1530157145,1530157146,1530157147,1530157148,1530157149,1530157150,1530157151,1530157152,1530157153,1530157367,1530157368,1530157369,1530157370,1530157371,1530157372,1530157373,1530157374,1530157375,1530157376,1530157377,1530157378,1530157379,1530157380,1530157381,1530157382,1530157383,1530157384,1530157385,1530157386,1530157387,1530157388,1530157389,1530157390,1530157391,1530157392,1530157393,1530157394,1530157395,1530157396,1530157397,1530157398,1530157399,1530157400,1530157401,1530157402,1530157403,1530157404,1530157405,1530157406,1530157407,1530157408,1530157409,1530157623,1530157624,1530157625,1530157626,1530157627,1530157628,1530157629,1530157630,1530157631,1530157632,1530157633,1530157634,1530157635,1530157636,1530157637,1530157638,1530157639,1530157640,1530157641,1530157642,1530157643,1530157644,1530157645,1530157646,1530157647,1530157648,1530157649,1530157650,1530157651,1530157652,1530157653,1530157654,1530157655,1530157656,1530157657,1530157658,1530157659,1530157660,1530157661,1530157662,1530157663,1530157664,1530157665,1366711873,1366711872,1366711871,1366711870,1362385687,1362385688,1362385689,1362385690,1530157851,1530157852,1530157858,1530157859,1530157860,1530157861,1530157862,1530157863,1530157864,1530157865,1530157866,1530157867,1530157879,1530157880,1530157881,1530157882,1530157883,1530157884,1530157885,1530157886,1530157887,1530157888,1530157889,1530157890,1530157891,1530157892,1530157893,1530157894,1530157895,1530157896,1530157897,1530157898,1530157899,1530157900,1530157901,1530157902,1530157903,1530157904,1530157905,1530157906,1530157907,1530157908,1530157909,1530157910,1530157911,1530157912,1530157913,1530157914,1530157915,1530157916,1530157917,1530157918,1530157919,1530157920,1530157921,1366711869,1366711868,1366711867,1366711866,1362385943,1362385944,1362385945,1362385946,1530158107,1530158108,1530158109,1530158110,1530158111,1530158112,1530158113,1530158114,1530158115,1530158116,1530158117,1530158118,1530158119,1530158120,1530158121,1530158122,1530158123,1530158135,1530158136,1530158137,1530158138,1530158139,1530158140,1530158141,1530158142,1530158143,1530158144,1530158145,1530158146,1530158147,1530158148,1530158149,1530158150,1530158151,1530158152,1530158153,1530158154,1530158155,1530158156,1530158157,1530158158,1530158159,1530158160,1530158161,1530158162,1530158163,1530158164,1530158165,1530158166,1530158167,1530158168,1530158169,1530158170,1530158171,1530158172,1530158173,1530158174,1530158175,1530158176,1530158177,1366711865,1366711864,1366711863,1366711862,1362386199,1362386200,1362386201,1362386202,1530158363,1530158364,1530158365,1530158366,1530158367,1530158368,1530158369,1530158370,1530158371,1530158372,1530158373,1530158374,1530158375,1530158376,1530158377,1530158378,1530158379,1530158391,1530158392,1530158393,1530158394,1530158395,1530158396,1530158397,1530158398,1530158399,1530158400,1530158401,1530158402,1530158403,1530158404,1530158405,1530158406,1530158407,1530158408,1530158409,1530158410,1530158411,1530158412,1530158413,1530158414,1530158415,1530158416,1530158417,1530158418,1530158419,1530158420,1530158421,1530158422,1530158423,1530158424,1530158425,1530158426,1530158427,1530158428,1530158429,1530158430,1530158431,1530158432,1530158433,1366711861,1366711860,1366711859,1366711858,1362386455,1362386456,1362386457,1362386458,1530158619,1530158620,1530158621,1530158622,1530158623,1530158624,1530158625,1530158626,1530158627,1530158628,1530158629,1530158630,1530158631,1530158632,1530158633,1530158634,1530158635,1530158647,1530158648,1530158649,1530158650,1530158651,1530158652,1530158653,1530158654,1530158655,1530158656,1530158657,1530158658,1530158659,1530158660,1530158661,1530158662,1530158663,1530158664,1530158665,1530158666,1530158667,1530158668,1530158669,1530158670,1530158671,1530158672,1530158673,1530158674,1530158675,1530158676,1530158677,1530158678,1530158679,1530158680,1530158681,1530158682,1530158683,1530158684,1530158685,1530158686,1530158687,1530158688,1530158689,1366711857,1366711856,1366711855,1366711854,1362386711,1362386712,1362386713,1362386714,1530158875,1530158876,1530158877,1530158878,1530158879,1530158880,1530158881,1530158882,1530158883,1530158884,1530158885,1530158886,1530158887,1530158888,1530158889,1530158890,1530158891,1530158903,1530158904,1530158905,1530158906,1530158907,1530158908,1530158909,1530158910,1530158911,1530158912,1530158913,1530158914,1530158915,1530158916,1530158917,1530158918,1530158919,1530158920,1530158921,1530158922,1530158923,1530158924,1530158925,1530158926,1530158927,1530158928,1530158929,1530158930,1530158931,1530158932,1530158933,1530158934,1530158935,1530158936,1530158937,1530158938,1530158939,1530158940,1530158941,1530158942,1530158943,1530158944,1530158945,1366711853,1366711852,1366711851,1366711850,1362386967,1362386968,1362386969,1362386970,1530159131,1530159132,1530159133,1530159134,1530159135,1530159136,1530159137,1530159138,1530159139,1530159140,1530159141,1530159142,1530159143,1530159144,1530159145,1530159146,1530159147,1530159159,1530159160,1530159161,1530159162,1530159163,1530159164,1530159165,1530159166,1530159167,1530159168,1530159169,1530159170,1530159171,1530159172,1530159173,1530159174,1530159175,1530159176,1530159177,1530159178,1530159179,1530159180,1530159181,1530159182,1530159183,1530159184,1530159185,1530159186,1530159187,1530159188,1530159189,1530159190,1530159191,1530159192,1530159193,1530159194,1530159195,1530159196,1530159197,1530159198,1530159199,1530159200,1530159201,1366711849,1366711848,1366711847,1366711846,1362387223,1362387224,1362387225,1362387226,1530159387,1530159388,1530159389,1530159390,1530159391,1530159392,1530159393,1530159394,1530159395,1530159396,1530159397,1530159398,1530159399,1530159400,1530159401,1530159402,1530159403,1530159423,1530159424,1530159425,1530159426,1530159427,1530159428,1530159429,1530159430,1530159431,1530159432,1530159433,1530159434,1530159435,1530159436,1530159437,1530159438,1530159439,1530159440,1530159441,1530159442,1530159443,1530159444,1530159445,1530159446,1530159447,1530159448,1530159449,1530159450,1530159451,1530159452,1530159453,1530159454,1530159455,1530159456,1530159457,1362432859,1362432860,1362432861,1362432862,1362432863,1362432864,1362432865,1362433115,1362433116,1362433117,1362433118,1362433119,1362433120,1362433121,1362433371,1362433372,1362433373,1362433374,1362433375,1362433376,1362433377,1362433627,1362433628,1362433629,1362433630,1362433631,1362433632,1362433633,1362433883,1362433884,1362433885,1362433886,1362433887,1362433888,1362433889,1362434139,1362434140,1362434141,1362434142,1362434143,1362434144,1362434145,1362434395,1362434396,1362434397,1362434398,1362434399,1362434400,1362434401,1362434651,1362434652,1362434653,1362434654,1362434655,1362434656,1362434657,1530207067,1530207068,1530207069,1530207070,1530207071,1530207072,1530207073,1530207323,1530207324,1530207325,1530207326,1530207327,1530207328,1530207329,1530207580,1530207581,1530207582,1530207583,1530207584,1530207585,1530207836,1530207837,1530207838,1530207839,1530207840,1530207841,1530208092,1530208093,1530208094,1530208095,1530208096,1530208097,1530208348,1530208349,1530208350,1530208351,1530208352,1530208353,1530208604,1530208605,1530208606,1530208607,1530208608,1530208609,1530208859,1530208860,1530208861,1530208862,1530208863,1530208864,1530208865,1530209115,1530209116,1530209117,1530209118,1530209119,1530209120,1530209121,1530209371,1530209372,1530209373,1530209374,1530209375,1530209376,1530209377,1530209627,1530209628,1530209629,1530209630,1530209631,1530209632,1530209633,1530209883,1530209884,1530209885,1530209886,1530209887,1530209888,1530209889,1530210139,1530210140,1530210141,1530210142,1530210143,1530210144,1530210145,1530210395,1530210396,1530210397,1530210398,1530210399,1530210400,1530210401,1530210651,1530210652,1530210653,1530210654,1530210655,1530210656,1530210657,1530210907,1530210908,1530210909,1530210910,1530210911,1530210912,1530210913,1530211163,1530211164,1530211165,1530211166,1530211167,1530211168,1530211169,1530211419,1530211420,1530211421,1530211422,1530211423,1530211424,1530211425,1530211675,1530211676,1530211677,1530211678,1530211679,1530211680,1530211681,1530211931,1530211932,1530211933,1530211934,1530211935,1530211936,1530211937,1530212187,1530212188,1530212189,1530212190,1530212191,1530212192,1530212193,1530212443,1530212444,1530212445,1530212446,1530212447,1530212448,1530212449,1530212699,1530212700,1530212701,1530212702,1530212703,1530212704,1530212705,1530212955,1530212956,1530212957,1530212958,1530212959,1530212960,1530212961,1530213211,1530213212,1530213213,1530213214,1530213215,1530213216,1530213217,1530213467,1530213468,1530213469,1530213470,1530213471,1530213472,1530213473,1530213723,1530213724,1530213725,1530213726,1530213727,1530213728,1530213729,1530213979,1530213980,1530213981,1530213982,1530213983,1530213984,1530213985,1530214235,1530214236,1530214237,1530214238,1530214239,1530214240,1530214241,1530214491,1530214492,1530214493,1530214494,1530214495,1530214496,1530214497,1530214747,1530214748,1530214749,1530214750,1530214751,1530214752,1530214753,1530215003,1530215004,1530215005,1530215006,1530215007,1530215008,1530215009,1530215259,1530215260,1530215261,1530215262,1530215263,1530215264,1530215265,1530215515,1530215516,1530215517,1530215518,1530215519,1530215520,1530215521,1530215771,1530215772,1530215773,1530215774,1530215775,1530215776,1530215777,1530218825,1530218826,1530218827,1530218828,1530218829,1530218830,1530218831,1530218842,1530218843,1530218844,1530218845,1530218846,1530218847,1530218848,1530218849,1530219081,1530219082,1530219083,1530219084,1530219085,1530219086,1530219087,1530219098,1530219099,1530219100,1530219101,1530219102,1530219103,1530219104,1530219105,1530219337,1530219338,1530219339,1530219340,1530219341,1530219342,1530219343,1530219354,1530219355,1530219356,1530219357,1530219358,1530219359,1530219360,1530219361,1530219593,1530219594,1530219595,1530219596,1530219597,1530219598,1530219599,1530219610,1530219611,1530219612,1530219613,1530219614,1530219615,1530219616,1530219617,1530219849,1530219850,1530219851,1530219852,1530219853,1530219854,1530219855,1530219866,1530219867,1530219868,1530219869,1530219870,1530219871,1530219872,1530219873,1530220105,1530220106,1530220107,1530220108,1530220109,1530220110,1530220111,1530220122,1530220123,1530220124,1530220125,1530220126,1530220127,1530220128,1530220129,1530220361,1530220362,1530220363,1530220364,1530220365,1530220366,1530220367,1530220378,1530220379,1530220380,1530220381,1530220382,1530220383,1530220384,1530220385,1530220634,1530220635,1530220636,1530220637,1530220638,1530220639,1530220640,1530220641,1530220890,1530220891,1530220892,1530220893,1530220894,1530220895,1530220896,1530220897,1530221146,1530221147,1530221148,1530221149,1530221150,1530221151,1530221152,1530221153,1530221402,1530221403,1530221404,1530221405,1530221406,1530221407,1530221408,1530221409,1530221658,1530221659,1530221660,1530221661,1530221662,1530221663,1530221664,1530221665,1530221914,1530221915,1530221916,1530221917,1530221918,1530221919,1530221920,1530221921,1530222170,1530222171,1530222172,1530222173,1530222174,1530222175,1530222176,1530222177,1530222426,1530222427,1530222428,1530222429,1530222430,1530222431,1530222432,1530222433,1530222682,1530222683,1530222684,1530222685,1530222686,1530222687,1530222688,1530222689,1530222938,1530222939,1530222940,1530222941,1530222942,1530222943,1530222944,1530222945,1530223159,1530223160,1530223161,1530223162,1530223163,1530223164,1530223165,1530223166,1530223194,1530223195,1530223196,1530223197,1530223198,1530223199,1530223200,1530223201,1366711845,1366711844,1366711843,1366711842,1362451223,1362451224,1362451225,1362451226,1530223387,1530223388,1530223389,1530223390,1530223391,1530223392,1530223393,1530223394,1530223395,1530223396,1530223397,1530223398,1530223399,1530223400,1530223401,1530223402,1530223403,1530223415,1530223416,1530223417,1530223418,1530223419,1530223420,1530223421,1530223422,1530223450,1530223451,1530223452,1530223453,1530223454,1530223455,1530223456,1530223457,1366711841,1366711840,1366711839,1366711838,1362451479,1362451480,1362451481,1362451482,1530223643,1530223644,1530223645,1530223646,1530223647,1530223648,1530223649,1530223650,1530223651,1530223652,1530223653,1530223654,1530223655,1530223656,1530223657,1530223658,1530223659,1530223671,1530223672,1530223673,1530223674,1530223675,1530223676,1530223677,1530223678,1530223706,1530223707,1530223708,1530223709,1530223710,1530223711,1530223712,1530223713,1366711837,1366711836,1366711835,1366711834,1362451735,1362451736,1362451737,1362451738,1530223899,1530223900,1530223901,1530223902,1530223903,1530223904,1530223905,1530223906,1530223907,1530223908,1530223909,1530223910,1530223911,1530223912,1530223913,1530223914,1530223915,1530223927,1530223928,1530223929,1530223930,1530223931,1530223932,1530223933,1530223934,1530223962,1530223963,1530223964,1530223965,1530223966,1530223967,1530223968,1530223969,1366711833,1366711832,1366711831,1366711830,1362451991,1362451992,1362451993,1362451994,1530224155,1530224156,1530224157,1530224158,1530224159,1530224160,1530224161,1530224162,1530224163,1530224164,1530224165,1530224166,1530224167,1530224168,1530224169,1530224170,1530224171,1530224183,1530224184,1530224185,1530224186,1530224187,1530224188,1530224189,1530224190,1530224218,1530224219,1530224220,1530224221,1530224222,1530224223,1530224224,1530224225,1366711829,1366711828,1366711827,1534483809,1362452247,1362452248,1362452249,1362452250,1530224411,1530224412,1530224413,1530224414,1530224415,1530224416,1530224417,1530224418,1530224419,1530224420,1530224421,1530224422,1530224423,1530224424,1530224425,1530224426,1530224427,1530224439,1530224440,1530224441,1530224442,1530224443,1530224444,1530224445,1530224446,1530224474,1530224475,1530224476,1530224477,1530224478,1530224479,1530224480,1530224481,1534483808,1534483807,1534483806,1534483805,1362452503,1362452504,1362452505,1362452506,1530224667,1530224668,1530224669,1530224670,1530224671,1530224672,1530224673,1530224674,1530224675,1530224676,1530224677,1530224678,1530224679,1530224680,1530224681,1530224682,1530224683,1530224695,1530224696,1530224697,1530224698,1530224699,1530224700,1530224701,1530224702,1530224730,1530224731,1530224732,1530224733,1530224734,1530224735,1530224736,1530224737,1534483804,1534483803,1534483802,1366711641,1362452759,1362452760,1362452761,1362452762,1530224923,1530224924,1530224925,1530224926,1530224927,1530224928,1530224929,1530224930,1530224931,1530224932,1530224933,1530224934,1530224935,1530224936,1530224937,1530224938,1530224939,1530224951,1530224952,1530224953,1530224954,1530224955,1530224956,1530224957,1530224958,1530224986,1530224987,1530224988,1530224989,1530224990,1530224991,1530224992,1530224993,1362498395,1362498396,1362498397,1362498398,1362498399,1362498400,1362498401,1362498651,1362498652,1362498653,1362498654,1362498655,1362498656,1362498657,1362498907,1362498908,1362498909,1362498910,1362498911,1362498912,1362498913,1362499163,1362499164,1362499165,1362499166,1362499167,1362499168,1362499169,1362499419,1362499420,1362499421,1362499422,1362499423,1362499424,1362499425,1362499675,1362499676,1362499677,1362499678,1362499679,1362499680,1362499681,1362499931,1362499932,1362499933,1362499934,1362499935,1362499936,1362499937,1362500187,1362500188,1362500189,1362500190,1362500191,1362500192,1362500193,1530272603,1530272604,1530272605,1530272606,1530272607,1530272608,1530272609,1530272859,1530272860,1530272861,1530272862,1530272863,1530272864,1530272865,1530273115,1530273116,1530273117,1530273118,1530273119,1530273120,1530273121,1530273371,1530273372,1530273373,1530273374,1530273375,1530273376,1530273377,1530273627,1530273628,1530273629,1530273630,1530273631,1530273632,1530273633,1530273883,1530273884,1530273885,1530273886,1530273887,1530273888,1530273889,1530274139,1530274140,1530274141,1530274142,1530274143,1530274144,1530274145,1530274395,1530274396,1530274397,1530274398,1530274399,1530274400,1530274401,1530274651,1530274652,1530274653,1530274654,1530274655,1530274656,1530274657,1530274907,1530274908,1530274909,1530274910,1530274911,1530274912,1530274913,1530275163,1530275164,1530275165,1530275166,1530275167,1530275168,1530275169,1530275419,1530275420,1530275421,1530275422,1530275423,1530275424,1530275425,1530275675,1530275676,1530275677,1530275678,1530275679,1530275680,1530275681,1530275931,1530275932,1530275933,1530275934,1530275935,1530275936,1530275937,1530276187,1530276188,1530276189,1530276190,1530276191,1530276192,1530276193,1530276443,1530276444,1530276445,1530276446,1530276447,1530276448,1530276449,1530276699,1530276700,1530276701,1530276702,1530276703,1530276704,1530276705,1530276955,1530276956,1530276957,1530276958,1530276959,1530276960,1530276961,1530277211,1530277212,1530277213,1530277214,1530277215,1530277216,1530277217,1530277467,1530277468,1530277469,1530277470,1530277471,1530277472,1530277473,1530277723,1530277724,1530277725,1530277726,1530277727,1530277728,1530277729,1530277979,1530277980,1530277981,1530277982,1530277983,1530277984,1530277985,1530278235,1530278236,1530278237,1530278238,1530278239,1530278240,1530278241,1530278491,1530278492,1530278493,1530278494,1530278495,1530278496,1530278497,1530278747,1530278748,1530278749,1530278750,1530278751,1530278752,1530278753,1530279003,1530279004,1530279005,1530279006,1530279007,1530279008,1530279009,1530279259,1530279260,1530279261,1530279262,1530279263,1530279264,1530279265,1530279515,1530279516,1530279517,1530279518,1530279519,1530279520,1530279521,1530279771,1530279772,1530279773,1530279774,1530279775,1530279776,1530279777,1530280027,1530280028,1530280029,1530280030,1530280031,1530280032,1530280033,1530280283,1530280284,1530280285,1530280286,1530280287,1530280288,1530280289,1530280539,1530280540,1530280541,1530280542,1530280543,1530280544,1530280545,1530280795,1530280796,1530280797,1530280798,1530280799,1530280800,1530280801,1530281051,1530281052,1530281053,1530281054,1530281055,1530281056,1530281057,1530281307,1530281308,1530281309,1530281310,1530281311,1530281312,1530281313,1530284379,1530284380,1530284381,1530284382,1530284383,1530284384,1530284385,1530284618,1530284619,1530284620,1530284621,1530284622,1530284635,1530284636,1530284637,1530284638,1530284639,1530284640,1530284641,1530284874,1530284875,1530284876,1530284877,1530284878,1530284891,1530284892,1530284893,1530284894,1530284895,1530284896,1530284897,1530285130,1530285131,1530285132,1530285133,1530285134,1530285147,1530285148,1530285149,1530285150,1530285151,1530285152,1530285153,1530285386,1530285387,1530285388,1530285389,1530285390,1530285403,1530285404,1530285405,1530285406,1530285407,1530285408,1530285409,1530285642,1530285643,1530285644,1530285645,1530285646,1530285659,1530285660,1530285661,1530285662,1530285663,1530285664,1530285665,1530285915,1530285916,1530285917,1530285918,1530285919,1530285920,1530285921,1530286171,1530286172,1530286173,1530286174,1530286175,1530286176,1530286177,1530286427,1530286428,1530286429,1530286430,1530286431,1530286432,1530286433,1530286683,1530286684,1530286685,1530286686,1530286687,1530286688,1530286689,1530286939,1530286940,1530286941,1530286942,1530286943,1530286944,1530286945,1530287195,1530287196,1530287197,1530287198,1530287199,1530287200,1530287201,1530287451,1530287452,1530287453,1530287454,1530287455,1530287456,1530287457,1530287707,1530287708,1530287709,1530287710,1530287711,1530287712,1530287713,1530287963,1530287964,1530287965,1530287966,1530287967,1530287968,1530287969,1530288219,1530288220,1530288221,1530288222,1530288223,1530288224,1530288225,1530288475,1530288476,1530288477,1530288478,1530288479,1530288480,1530288481,1530288731,1530288732,1530288733,1530288734,1530288735,1530288736,1530288737,1366711640,1366711639,1366711638,1366711637,1362516759,1362516760,1362516761,1362516762,1530288923,1530288924,1530288930,1530288931,1530288932,1530288933,1530288934,1530288935,1530288936,1530288937,1530288938,1530288939,1530288951,1530288952,1530288953,1530288954,1530288955,1530288956,1530288957,1530288987,1530288988,1530288989,1530288990,1530288991,1530288992,1530288993,1366711636,1366711635,1366711634,1366711633,1362517015,1362517016,1362517017,1362517018,1530289179,1530289180,1530289181,1530289182,1530289183,1530289184,1530289185,1530289186,1530289187,1530289188,1530289189,1530289190,1530289191,1530289192,1530289193,1530289194,1530289195,1530289207,1530289208,1530289209,1530289210,1530289211,1530289212,1530289213,1530289243,1530289244,1530289245,1530289246,1530289247,1530289248,1530289249,1366711632,1366711631,1366711630,1366711629,1362517271,1362517272,1362517273,1362517274,1530289435,1530289436,1530289437,1530289438,1530289439,1530289440,1530289441,1530289442,1530289443,1530289444,1530289445,1530289446,1530289447,1530289448,1530289449,1530289450,1530289451,1530289463,1530289464,1530289465,1530289466,1530289467,1530289468,1530289469,1530289499,1530289500,1530289501,1530289502,1530289503,1530289504,1530289505,1366711628,1366711627,1366711626,1366711625,1362517527,1362517528,1362517529,1362517530,1530289691,1530289692,1530289693,1530289694,1530289695,1530289696,1530289697,1530289698,1530289699,1530289700,1530289701,1530289702,1530289703,1530289704,1530289705,1530289706,1530289707,1530289719,1530289720,1530289721,1530289722,1530289723,1530289724,1530289725,1530289755,1530289756,1530289757,1530289758,1530289759,1530289760,1530289761,1366711624,1366711623,1366711622,1366711621,1362517783,1362517784,1362517785,1362517786,1530289947,1530289948,1530289949,1530289950,1530289951,1530289952,1530289953,1530289954,1530289955,1530289956,1530289957,1530289958,1530289959,1530289960,1530289961,1530289962,1530289963,1530289975,1530289976,1530289977,1530289978,1530289979,1530289980,1530289981,1530290011,1530290012,1530290013,1530290014,1530290015,1530290016,1530290017,1366711620,1366711619,1366711618,1366711617,1362518039,1362518040,1362518041,1362518042,1530290203,1530290204,1530290205,1530290206,1530290207,1530290208,1530290209,1530290210,1530290211,1530290212,1530290213,1530290214,1530290215,1530290216,1530290217,1530290218,1530290219,1530290231,1530290232,1530290233,1530290234,1530290235,1530290236,1530290237,1530290267,1530290268,1530290269,1530290270,1530290271,1530290272,1530290273,1366711616,1366711615,1366711614,1366711613,1362518295,1362518296,1362518297,1362518298,1530290459,1530290460,1530290461,1530290462,1530290463,1530290464,1530290465,1530290466,1530290467,1530290468,1530290469,1530290470,1530290471,1530290472,1530290473,1530290474,1530290475,1530290487,1530290488,1530290489,1530290490,1530290491,1530290492,1530290493,1530290523,1530290524,1530290525,1530290526,1530290527,1530290528,1530290529,1362563931,1362563932,1362563933,1362563934,1362563935,1362563936,1362563937,1362564187,1362564188,1362564189,1362564190,1362564191,1362564192,1362564193,1362564443,1362564444,1362564445,1362564446,1362564447,1362564448,1362564449,1362564699,1362564700,1362564701,1362564702,1362564703,1362564704,1362564705,1362564955,1362564956,1362564957,1362564958,1362564959,1362564960,1362564961,1362565211,1362565212,1362565213,1362565214,1362565215,1362565216,1362565217,1362565467,1362565468,1362565469,1362565470,1362565471,1362565472,1362565473,1362565723,1362565724,1362565725,1362565726,1362565727,1362565728,1362565729,1530338139,1530338140,1530338141,1530338142,1530338143,1530338144,1530338145,1530338395,1530338396,1530338397,1530338398,1530338399,1530338400,1530338401,1530338652,1530338653,1530338654,1530338655,1530338656,1530338657,1530338908,1530338909,1530338910,1530338911,1530338912,1530338913,1530339164,1530339165,1530339166,1530339167,1530339168,1530339169,1530339420,1530339421,1530339422,1530339423,1530339424,1530339425,1530339676,1530339677,1530339678,1530339679,1530339680,1530339681,1530339931,1530339932,1530339933,1530339934,1530339935,1530339936,1530339937,1530340187,1530340188,1530340189,1530340190,1530340191,1530340192,1530340193,1530340443,1530340444,1530340445,1530340446,1530340447,1530340448,1530340449,1530340699,1530340700,1530340701,1530340702,1530340703,1530340704,1530340705,1530340955,1530340956,1530340957,1530340958,1530340959,1530340960,1530340961,1530341211,1530341212,1530341213,1530341214,1530341215,1530341216,1530341217,1530341467,1530341468,1530341469,1530341470,1530341471,1530341472,1530341473,1530341723,1530341724,1530341725,1530341726,1530341727,1530341728,1530341729,1530341979,1530341980,1530341981,1530341982,1530341983,1530341984,1530341985,1530342235,1530342236,1530342237,1530342238,1530342239,1530342240,1530342241,1530342491,1530342492,1530342493,1530342494,1530342495,1530342496,1530342497,1530342747,1530342748,1530342749,1530342750,1530342751,1530342752,1530342753,1530343003,1530343004,1530343005,1530343006,1530343007,1530343008,1530343009,1530343259,1530343260,1530343261,1530343262,1530343263,1530343264,1530343265,1530343515,1530343516,1530343517,1530343518,1530343519,1530343520,1530343521,1530343771,1530343772,1530343773,1530343774,1530343775,1530343776,1530343777,1530344027,1530344028,1530344029,1530344030,1530344031,1530344032,1530344033,1530344283,1530344284,1530344285,1530344286,1530344287,1530344288,1530344289,1530344539,1530344540,1530344541,1530344542,1530344543,1530344544,1530344545,1530344795,1530344796,1530344797,1530344798,1530344799,1530344800,1530344801,1530345051,1530345052,1530345053,1530345054,1530345055,1530345056,1530345057,1530345307,1530345308,1530345309,1530345310,1530345311,1530345312,1530345313,1530345563,1530345564,1530345565,1530345566,1530345567,1530345568,1530345569,1530345819,1530345820,1530345821,1530345822,1530345823,1530345824,1530345825,1530346075,1530346076,1530346077,1530346078,1530346079,1530346080,1530346081,1530346331,1530346332,1530346333,1530346334,1530346335,1530346336,1530346337,1530346587,1530346588,1530346589,1530346590,1530346591,1530346592,1530346593,1530346843,1530346844,1530346845,1530346846,1530346847,1530346848,1530346849,1530349897,1530349898,1530349899,1530349900,1530349901,1530349902,1530349903,1530349915,1530349916,1530349917,1530349918,1530349919,1530349920,1530349921,1530350153,1530350154,1530350155,1530350156,1530350157,1530350158,1530350159,1530350171,1530350172,1530350173,1530350174,1530350175,1530350176,1530350177,1530350409,1530350410,1530350411,1530350412,1530350413,1530350414,1530350415,1530350427,1530350428,1530350429,1530350430,1530350431,1530350432,1530350433,1530350665,1530350666,1530350667,1530350668,1530350669,1530350670,1530350671,1530350683,1530350684,1530350685,1530350686,1530350687,1530350688,1530350689,1530350921,1530350922,1530350923,1530350924,1530350925,1530350926,1530350927,1530350939,1530350940,1530350941,1530350942,1530350943,1530350944,1530350945,1530351177,1530351178,1530351179,1530351180,1530351181,1530351182,1530351183,1530351195,1530351196,1530351197,1530351198,1530351199,1530351200,1530351201,1530351433,1530351434,1530351435,1530351436,1530351437,1530351438,1530351439,1530351451,1530351452,1530351453,1530351454,1530351455,1530351456,1530351457,1530351707,1530351708,1530351709,1530351710,1530351711,1530351712,1530351713,1530351963,1530351964,1530351965,1530351966,1530351967,1530351968,1530351969,1530352219,1530352220,1530352221,1530352222,1530352223,1530352224,1530352225,1530352475,1530352476,1530352477,1530352478,1530352479,1530352480,1530352481,1530352731,1530352732,1530352733,1530352734,1530352735,1530352736,1530352737,1530352987,1530352988,1530352989,1530352990,1530352991,1530352992,1530352993,1530353243,1530353244,1530353245,1530353246,1530353247,1530353248,1530353249,1530353499,1530353500,1530353501,1530353502,1530353503,1530353504,1530353505,1530353755,1530353756,1530353757,1530353758,1530353759,1530353760,1530353761,1530354011,1530354012,1530354013,1530354014,1530354015,1530354016,1530354017,1530354267,1530354268,1530354269,1530354270,1530354271,1530354272,1530354273,1366711612,1366711611,1366711610,1366711609,1362582295,1362582296,1362582297,1362582298,1530354459,1530354460,1530354461,1530354462,1530354463,1530354464,1530354465,1530354466,1530354467,1530354468,1530354469,1530354470,1530354471,1530354472,1530354473,1530354474,1530354475,1530354487,1530354488,1530354489,1530354490,1530354491,1530354492,1530354493,1530354523,1530354524,1530354525,1530354526,1530354527,1530354528,1530354529,1366711608,1366711607,1366711606,1366711605,1362582551,1362582552,1362582553,1362582554,1530354715,1530354716,1530354717,1530354718,1530354719,1530354720,1530354721,1530354722,1530354723,1530354724,1530354725,1530354726,1530354727,1530354728,1530354729,1530354730,1530354731,1530354743,1530354744,1530354745,1530354746,1530354747,1530354748,1530354749,1530354779,1530354780,1530354781,1530354782,1530354783,1530354784,1530354785,1366711604,1366711603,1366711602,1366711601,1362582807,1362582808,1362582809,1362582810,1530354971,1530354972,1530354973,1530354974,1530354975,1530354976,1530354977,1530354978,1530354979,1530354980,1530354981,1530354982,1530354983,1530354984,1530354985,1530354986,1530354987,1530354999,1530355000,1530355001,1530355002,1530355003,1530355004,1530355005,1530355035,1530355036,1530355037,1530355038,1530355039,1530355040,1530355041,1366711600,1366711599,1366711598,1366711597,1362583063,1362583064,1362583065,1362583066,1530355227,1530355228,1530355229,1530355230,1530355231,1530355232,1530355233,1530355234,1530355235,1530355236,1530355237,1530355238,1530355239,1530355240,1530355241,1530355242,1530355243,1530355255,1530355256,1530355257,1530355258,1530355259,1530355260,1530355261,1530355291,1530355292,1530355293,1530355294,1530355295,1530355296,1530355297,1366711596,1366711595,1366711594,1366711593,1362583319,1362583320,1362583321,1362583322,1530355483,1530355484,1530355485,1530355486,1530355487,1530355488,1530355489,1530355490,1530355491,1530355492,1530355493,1530355494,1530355495,1530355496,1530355497,1530355498,1530355499,1530355511,1530355512,1530355513,1530355514,1530355515,1530355516,1530355517,1530355547,1530355548,1530355549,1530355550,1530355551,1530355552,1530355553,1366711592,1366711591,1366711590,1366711589,1362583575,1362583576,1362583577,1362583578,1530355739,1530355740,1530355741,1530355742,1530355743,1530355744,1530355745,1530355746,1530355747,1530355748,1530355749,1530355750,1530355751,1530355752,1530355753,1530355754,1530355755,1530355767,1530355768,1530355769,1530355770,1530355771,1530355772,1530355773,1530355803,1530355804,1530355805,1530355806,1530355807,1530355808,1530355809,1366711588,1366711587,1366711586,1366711585,1362583831,1362583832,1362583833,1362583834,1530355995,1530355996,1530355997,1530355998,1530355999,1530356000,1530356001,1530356002,1530356003,1530356004,1530356005,1530356006,1530356007,1530356008,1530356009,1530356010,1530356011,1530356023,1530356024,1530356025,1530356026,1530356027,1530356028,1530356029,1530356059,1530356060,1530356061,1530356062,1530356063,1530356064,1530356065,1362629467,1362629468,1362629469,1362629470,1362629471,1362629472,1362629473,1362629723,1362629724,1362629725,1362629726,1362629727,1362629728,1362629729,1362629979,1362629980,1362629981,1362629982,1362629983,1362629984,1362629985,1362630235,1362630236,1362630237,1362630238,1362630239,1362630240,1362630241,1362630491,1362630492,1362630493,1362630494,1362630495,1362630496,1362630497,1362630747,1362630748,1362630749,1362630750,1362630751,1362630752,1362630753,1362631003,1362631004,1362631005,1362631006,1362631007,1362631008,1362631009,1362631259,1362631260,1362631261,1362631262,1362631263,1362631264,1362631265,1530403675,1530403676,1530403677,1530403678,1530403679,1530403680,1530403681,1530403931,1530403932,1530403933,1530403934,1530403935,1530403936,1530403937,1530404187,1530404188,1530404189,1530404190,1530404191,1530404192,1530404193,1530404443,1530404444,1530404445,1530404446,1530404447,1530404448,1530404449,1530404699,1530404700,1530404701,1530404702,1530404703,1530404704,1530404705,1530404955,1530404956,1530404957,1530404958,1530404959,1530404960,1530404961,1530405211,1530405212,1530405213,1530405214,1530405215,1530405216,1530405217,1530405467,1530405468,1530405469,1530405470,1530405471,1530405472,1530405473,1530405723,1530405724,1530405725,1530405726,1530405727,1530405728,1530405729,1530405979,1530405980,1530405981,1530405982,1530405983,1530405984,1530405985,1530406235,1530406236,1530406237,1530406238,1530406239,1530406240,1530406241,1530406491,1530406492,1530406493,1530406494,1530406495,1530406496,1530406497,1530406747,1530406748,1530406749,1530406750,1530406751,1530406752,1530406753,1530407003,1530407004,1530407005,1530407006,1530407007,1530407008,1530407009,1530407259,1530407260,1530407261,1530407262,1530407263,1530407264,1530407265,1530407515,1530407516,1530407517,1530407518,1530407519,1530407520,1530407521,1530407771,1530407772,1530407773,1530407774,1530407775,1530407776,1530407777,1530408027,1530408028,1530408029,1530408030,1530408031,1530408032,1530408033,1530408283,1530408284,1530408285,1530408286,1530408287,1530408288,1530408289,1530408539,1530408540,1530408541,1530408542,1530408543,1530408544,1530408545,1530408795,1530408796,1530408797,1530408798,1530408799,1530408800,1530408801,1530409051,1530409052,1530409053,1530409054,1530409055,1530409056,1530409057,1530409307,1530409308,1530409309,1530409310,1530409311,1530409312,1530409313,1530409563,1530409564,1530409565,1530409566,1530409567,1530409568,1530409569,1530409819,1530409820,1530409821,1530409822,1530409823,1530409824,1530409825,1530410075,1530410076,1530410077,1530410078,1530410079,1530410080,1530410081,1530410331,1530410332,1530410333,1530410334,1530410335,1530410336,1530410337,1530410587,1530410588,1530410589,1530410590,1530410591,1530410592,1530410593,1530410843,1530410844,1530410845,1530410846,1530410847,1530410848,1530410849,1530411099,1530411100,1530411101,1530411102,1530411103,1530411104,1530411105,1530411355,1530411356,1530411357,1530411358,1530411359,1530411360,1530411361,1530411611,1530411612,1530411613,1530411614,1530411615,1530411616,1530411617,1530411867,1530411868,1530411869,1530411870,1530411871,1530411872,1530411873,1530412123,1530412124,1530412125,1530412126,1530412127,1530412128,1530412129,1530412379,1530412380,1530412381,1530412382,1530412383,1530412384,1530412385,1530415451,1530415452,1530415453,1530415454,1530415455,1530415456,1530415457,1530415690,1530415691,1530415692,1530415693,1530415694,1530415707,1530415708,1530415709,1530415710,1530415711,1530415712,1530415713,1530415946,1530415947,1530415948,1530415949,1530415950,1530415963,1530415964,1530415965,1530415966,1530415967,1530415968,1530415969,1530416202,1530416203,1530416204,1530416205,1530416206,1530416219,1530416220,1530416221,1530416222,1530416223,1530416224,1530416225,1530416458,1530416459,1530416460,1530416461,1530416462,1530416475,1530416476,1530416477,1530416478,1530416479,1530416480,1530416481,1530416714,1530416715,1530416716,1530416717,1530416718,1530416731,1530416732,1530416733,1530416734,1530416735,1530416736,1530416737,1530416987,1530416988,1530416989,1530416990,1530416991,1530416992,1530416993,1530417243,1530417244,1530417245,1530417246,1530417247,1530417248,1530417249,1530417499,1530417500,1530417501,1530417502,1530417503,1530417504,1530417505,1530417755,1530417756,1530417757,1530417758,1530417759,1530417760,1530417761,1530418011,1530418012,1530418013,1530418014,1530418015,1530418016,1530418017,1530418267,1530418268,1530418269,1530418270,1530418271,1530418272,1530418273,1530418523,1530418524,1530418525,1530418526,1530418527,1530418528,1530418529,1530418779,1530418780,1530418781,1530418782,1530418783,1530418784,1530418785,1530419035,1530419036,1530419037,1530419038,1530419039,1530419040,1530419041,1530419291,1530419292,1530419293,1530419294,1530419295,1530419296,1530419297,1530419547,1530419548,1530419549,1530419550,1530419551,1530419552,1530419553,1530419803,1530419804,1530419805,1530419806,1530419807,1530419808,1530419809,1366711584,1366711583,1366711582,1366711581,1362647831,1362647832,1362647833,1362647834,1530419995,1530419996,1530420002,1530420003,1530420004,1530420005,1530420006,1530420007,1530420008,1530420009,1530420010,1530420011,1530420023,1530420024,1530420025,1530420026,1530420027,1530420028,1530420029,1530420059,1530420060,1530420061,1530420062,1530420063,1530420064,1530420065,1366711580,1366711579,1366711578,1366711577,1362648087,1362648088,1362648089,1362648090,1530420251,1530420252,1530420253,1530420254,1530420255,1530420256,1530420257,1530420258,1530420259,1530420260,1530420261,1530420262,1530420263,1530420264,1530420265,1530420266,1530420267,1530420279,1530420280,1530420281,1530420282,1530420283,1530420284,1530420285,1530420315,1530420316,1530420317,1530420318,1530420319,1530420320,1530420321,1366711576,1366711575,1366711574,1366711573,1362648343,1362648344,1362648345,1362648346,1530420507,1530420508,1530420509,1530420510,1530420511,1530420512,1530420513,1530420514,1530420515,1530420516,1530420517,1530420518,1530420519,1530420520,1530420521,1530420522,1530420523,1530420535,1530420536,1530420537,1530420538,1530420539,1530420540,1530420541,1530420571,1530420572,1530420573,1530420574,1530420575,1530420576,1530420577,1366711572,1366711571,1534483553,1534483552,1362648599,1362648600,1362648601,1362648602,1530420763,1530420764,1530420765,1530420766,1530420767,1530420768,1530420769,1530420770,1530420771,1530420772,1530420773,1530420774,1530420775,1530420776,1530420777,1530420778,1530420779,1530420791,1530420792,1530420793,1530420794,1530420795,1530420796,1530420797,1530420827,1530420828,1530420829,1530420830,1530420831,1530420832,1530420833,1534483551,1534483550,1534483549,1534483548,1362648855,1362648856,1362648857,1362648858,1530421019,1530421020,1530421021,1530421022,1530421023,1530421024,1530421025,1530421026,1530421027,1530421028,1530421029,1530421030,1530421031,1530421032,1530421033,1530421034,1530421035,1530421047,1530421048,1530421049,1530421050,1530421051,1530421052,1530421053,1530421083,1530421084,1530421085,1530421086,1530421087,1530421088,1530421089,1534483547,1534483546,1366711385,1366711384,1362649111,1362649112,1362649113,1362649114,1530421275,1530421276,1530421277,1530421278,1530421279,1530421280,1530421281,1530421282,1530421283,1530421284,1530421285,1530421286,1530421287,1530421288,1530421289,1530421290,1530421291,1530421303,1530421304,1530421305,1530421306,1530421307,1530421308,1530421309,1530421339,1530421340,1530421341,1530421342,1530421343,1530421344,1530421345,1366711383,1366711382,1366711381,1366711380,1362649367,1362649368,1362649369,1362649370,1530421531,1530421532,1530421533,1530421534,1530421535,1530421536,1530421537,1530421538,1530421539,1530421540,1530421541,1530421542,1530421543,1530421544,1530421545,1530421546,1530421547,1530421559,1530421560,1530421561,1530421562,1530421563,1530421564,1530421565,1530421595,1530421596,1530421597,1530421598,1530421599,1530421600,1530421601,1362695003,1362695004,1362695005,1362695006,1362695007,1362695008,1362695009,1362695259,1362695260,1362695261,1362695262,1362695263,1362695264,1362695265,1362695515,1362695516,1362695517,1362695518,1362695519,1362695520,1362695521,1362695771,1362695772,1362695773,1362695774,1362695775,1362695776,1362695777,1362696027,1362696028,1362696029,1362696030,1362696031,1362696032,1362696033,1362696283,1362696284,1362696285,1362696286,1362696287,1362696288,1362696289,1362696539,1362696540,1362696541,1362696542,1362696543,1362696544,1362696545,1362696795,1362696796,1362696797,1362696798,1362696799,1362696800,1362696801,1530469211,1530469212,1530469213,1530469214,1530469215,1530469216,1530469217,1530469467,1530469468,1530469469,1530469470,1530469471,1530469472,1530469473,1530469724,1530469725,1530469726,1530469727,1530469728,1530469729,1530469980,1530469981,1530469982,1530469983,1530469984,1530469985,1530470236,1530470237,1530470238,1530470239,1530470240,1530470241,1530470492,1530470493,1530470494,1530470495,1530470496,1530470497,1530470748,1530470749,1530470750,1530470751,1530470752,1530470753,1530471003,1530471004,1530471005,1530471006,1530471007,1530471008,1530471009,1530471259,1530471260,1530471261,1530471262,1530471263,1530471264,1530471265,1530471515,1530471516,1530471517,1530471518,1530471519,1530471520,1530471521,1530471771,1530471772,1530471773,1530471774,1530471775,1530471776,1530471777,1530472027,1530472028,1530472029,1530472030,1530472031,1530472032,1530472033,1530472283,1530472284,1530472285,1530472286,1530472287,1530472288,1530472289,1530472539,1530472540,1530472541,1530472542,1530472543,1530472544,1530472545,1530472795,1530472796,1530472797,1530472798,1530472799,1530472800,1530472801,1530473051,1530473052,1530473053,1530473054,1530473055,1530473056,1530473057,1530473307,1530473308,1530473309,1530473310,1530473311,1530473312,1530473313,1530473563,1530473564,1530473565,1530473566,1530473567,1530473568,1530473569,1530473819,1530473820,1530473821,1530473822,1530473823,1530473824,1530473825,1530474075,1530474076,1530474077,1530474078,1530474079,1530474080,1530474081,1530474331,1530474332,1530474333,1530474334,1530474335,1530474336,1530474337,1530474587,1530474588,1530474589,1530474590,1530474591,1530474592,1530474593,1530474843,1530474844,1530474845,1530474846,1530474847,1530474848,1530474849,1530475099,1530475100,1530475101,1530475102,1530475103,1530475104,1530475105,1530475355,1530475356,1530475357,1530475358,1530475359,1530475360,1530475361,1530475611,1530475612,1530475613,1530475614,1530475615,1530475616,1530475617,1530475867,1530475868,1530475869,1530475870,1530475871,1530475872,1530475873,1530476123,1530476124,1530476125,1530476126,1530476127,1530476128,1530476129,1530476379,1530476380,1530476381,1530476382,1530476383,1530476384,1530476385,1530476635,1530476636,1530476637,1530476638,1530476639,1530476640,1530476641,1530476891,1530476892,1530476893,1530476894,1530476895,1530476896,1530476897,1530477147,1530477148,1530477149,1530477150,1530477151,1530477152,1530477153,1530477403,1530477404,1530477405,1530477406,1530477407,1530477408,1530477409,1530477659,1530477660,1530477661,1530477662,1530477663,1530477664,1530477665,1530477915,1530477916,1530477917,1530477918,1530477919,1530477920,1530477921,1530480987,1530480988,1530480989,1530480990,1530480991,1530480992,1530480993,1530481243,1530481244,1530481245,1530481246,1530481247,1530481248,1530481249,1530481483,1530481484,1530481485,1530481499,1530481500,1530481501,1530481502,1530481503,1530481504,1530481505,1530481739,1530481740,1530481741,1530481755,1530481756,1530481757,1530481758,1530481759,1530481760,1530481761,1530481995,1530481996,1530481997,1530482011,1530482012,1530482013,1530482014,1530482015,1530482016,1530482017,1530482267,1530482268,1530482269,1530482270,1530482271,1530482272,1530482273,1530482523,1530482524,1530482525,1530482526,1530482527,1530482528,1530482529,1530482779,1530482780,1530482781,1530482782,1530482783,1530482784,1530482785,1530483035,1530483036,1530483037,1530483038,1530483039,1530483040,1530483041,1530483291,1530483292,1530483293,1530483294,1530483295,1530483296,1530483297,1530483547,1530483548,1530483549,1530483550,1530483551,1530483552,1530483553,1530483806,1530483807,1530483808,1530483809,1530484062,1530484063,1530484064,1530484065,1530484318,1530484319,1530484320,1530484321,1530484571,1530484572,1530484573,1530484574,1530484575,1530484576,1530484577,1530484827,1530484828,1530484829,1530484830,1530484831,1530484832,1530484833,1530485083,1530485084,1530485085,1530485086,1530485087,1530485088,1530485089,1530485339,1530485340,1530485341,1530485342,1530485343,1530485344,1530485345,1366711379,1366711378,1366711377,1366711376,1362713367,1362713368,1362713369,1362713370,1530485531,1530485532,1530485533,1530485534,1530485535,1530485536,1530485537,1530485538,1530485539,1530485540,1530485541,1530485542,1530485543,1530485544,1530485545,1530485546,1530485547,1530485559,1530485560,1530485561,1530485562,1530485563,1530485564,1530485565,1530485595,1530485596,1530485597,1530485598,1530485599,1530485600,1530485601,1366711375,1366711374,1366711373,1366711372,1362713623,1362713624,1362713625,1362713626,1530485787,1530485788,1530485789,1530485790,1530485791,1530485792,1530485793,1530485794,1530485795,1530485796,1530485797,1530485798,1530485799,1530485800,1530485801,1530485802,1530485803,1530485815,1530485816,1530485817,1530485818,1530485819,1530485820,1530485821,1530485851,1530485852,1530485853,1530485854,1530485855,1530485856,1530485857,1366711371,1366711370,1366711369,1366711368,1362713879,1362713880,1362713881,1362713882,1530486043,1530486044,1530486045,1530486046,1530486047,1530486048,1530486049,1530486050,1530486051,1530486052,1530486053,1530486054,1530486055,1530486056,1530486057,1530486058,1530486059,1530486071,1530486072,1530486073,1530486074,1530486075,1530486076,1530486077,1530486107,1530486108,1530486109,1530486110,1530486111,1530486112,1530486113,1366711367,1366711366,1366711365,1366711364,1362714135,1362714136,1362714137,1362714138,1530486299,1530486300,1530486301,1530486302,1530486303,1530486304,1530486305,1530486306,1530486307,1530486308,1530486309,1530486310,1530486311,1530486312,1530486313,1530486314,1530486315,1530486327,1530486328,1530486329,1530486330,1530486331,1530486332,1530486333,1530486363,1530486364,1530486365,1530486366,1530486367,1530486368,1530486369,1366711363,1366711362,1366711361,1366711360,1362714391,1362714392,1362714393,1362714394,1530486555,1530486556,1530486557,1530486558,1530486559,1530486560,1530486561,1530486562,1530486563,1530486564,1530486565,1530486566,1530486567,1530486568,1530486569,1530486570,1530486571,1530486583,1530486584,1530486585,1530486586,1530486587,1530486588,1530486589,1530486619,1530486620,1530486621,1530486622,1530486623,1530486624,1530486625,1366711359,1366711358,1366711357,1366711356,1362714647,1362714648,1362714649,1362714650,1530486811,1530486812,1530486813,1530486814,1530486815,1530486816,1530486817,1530486818,1530486819,1530486820,1530486821,1530486822,1530486823,1530486824,1530486825,1530486826,1530486827,1530486839,1530486840,1530486841,1530486842,1530486843,1530486844,1530486845,1530486875,1530486876,1530486877,1530486878,1530486879,1530486880,1530486881,1366711355,1366711354,1366711353,1366711352,1362714903,1362714904,1362714905,1362714906,1530487067,1530487068,1530487069,1530487070,1530487071,1530487072,1530487073,1530487074,1530487075,1530487076,1530487077,1530487078,1530487079,1530487080,1530487081,1530487082,1530487083,1530487095,1530487096,1530487097,1530487098,1530487099,1530487100,1530487101,1530487131,1530487132,1530487133,1530487134,1530487135,1530487136,1530487137,1362760539,1362760540,1362760541,1362760542,1362760543,1362760544,1362760545,1362760795,1362760796,1362760797,1362760798,1362760799,1362760800,1362760801,1362761051,1362761052,1362761053,1362761054,1362761055,1362761056,1362761057,1362761307,1362761308,1362761309,1362761310,1362761311,1362761312,1362761313,1362761563,1362761564,1362761565,1362761566,1362761567,1362761568,1362761569,1362761819,1362761820,1362761821,1362761822,1362761823,1362761824,1362761825,1362762075,1362762076,1362762077,1362762078,1362762079,1362762080,1362762081,1362762331,1362762332,1362762333,1362762334,1362762335,1362762336,1362762337,1530534747,1530534748,1530534749,1530534750,1530534751,1530534752,1530534753,1530535003,1530535004,1530535005,1530535006,1530535007,1530535008,1530535009,1530535259,1530535260,1530535261,1530535262,1530535263,1530535264,1530535265,1530535515,1530535516,1530535517,1530535518,1530535519,1530535520,1530535521,1530535771,1530535772,1530535773,1530535774,1530535775,1530535776,1530535777,1530536027,1530536028,1530536029,1530536030,1530536031,1530536032,1530536033,1530536283,1530536284,1530536285,1530536286,1530536287,1530536288,1530536289,1530536539,1530536540,1530536541,1530536542,1530536543,1530536544,1530536545,1530536795,1530536796,1530536797,1530536798,1530536799,1530536800,1530536801,1530537051,1530537052,1530537053,1530537054,1530537055,1530537056,1530537057,1530537307,1530537308,1530537309,1530537310,1530537311,1530537312,1530537313,1530537563,1530537564,1530537565,1530537566,1530537567,1530537568,1530537569,1530537819,1530537820,1530537821,1530537822,1530537823,1530537824,1530537825,1530538075,1530538076,1530538077,1530538078,1530538079,1530538080,1530538081,1530538331,1530538332,1530538333,1530538334,1530538335,1530538336,1530538337,1530538587,1530538588,1530538589,1530538590,1530538591,1530538592,1530538593,1530538843,1530538844,1530538845,1530538846,1530538847,1530538848,1530538849,1530539099,1530539100,1530539101,1530539102,1530539103,1530539104,1530539105,1530539355,1530539356,1530539357,1530539358,1530539359,1530539360,1530539361,1530539611,1530539612,1530539613,1530539614,1530539615,1530539616,1530539617,1530539867,1530539868,1530539869,1530539870,1530539871,1530539872,1530539873,1530540123,1530540124,1530540125,1530540126,1530540127,1530540128,1530540129,1530540379,1530540380,1530540381,1530540382,1530540383,1530540384,1530540385,1530540635,1530540636,1530540637,1530540638,1530540639,1530540640,1530540641,1530540891,1530540892,1530540893,1530540894,1530540895,1530540896,1530540897,1530541147,1530541148,1530541149,1530541150,1530541151,1530541152,1530541153,1530541403,1530541404,1530541405,1530541406,1530541407,1530541408,1530541409,1530541659,1530541660,1530541661,1530541662,1530541663,1530541664,1530541665,1530541915,1530541916,1530541917,1530541918,1530541919,1530541920,1530541921,1530542171,1530542172,1530542173,1530542174,1530542175,1530542176,1530542177,1530542427,1530542428,1530542429,1530542430,1530542431,1530542432,1530542433,1530542683,1530542684,1530542685,1530542686,1530542687,1530542688,1530542689,1530542939,1530542940,1530542941,1530542942,1530542943,1530542944,1530542945,1530543195,1530543196,1530543197,1530543198,1530543199,1530543200,1530543201,1530543451,1530543452,1530543453,1530543454,1530543455,1530543456,1530543457,1530546523,1530546524,1530546525,1530546526,1530546527,1530546528,1530546529,1530546779,1530546780,1530546781,1530546782,1530546783,1530546784,1530546785,1530547035,1530547036,1530547037,1530547038,1530547039,1530547040,1530547041,1530547276,1530547291,1530547292,1530547293,1530547294,1530547295,1530547296,1530547297,1530547547,1530547548,1530547549,1530547550,1530547551,1530547552,1530547553,1530547803,1530547804,1530547805,1530547806,1530547807,1530547808,1530547809,1530548059,1530548060,1530548061,1530548062,1530548063,1530548064,1530548065,1530548315,1530548316,1530548317,1530548318,1530548319,1530548320,1530548321,1530548571,1530548572,1530548573,1530548574,1530548575,1530548576,1530548577,1530548827,1530548828,1530548829,1530548830,1530548831,1530548832,1530548833,1530549086,1530549087,1530549088,1530549089,1530549343,1530549344,1530549345,1530549599,1530549600,1530549601,1530549855,1530549856,1530549857,1530550110,1530550111,1530550112,1530550113,1530550363,1530550364,1530550365,1530550366,1530550367,1530550368,1530550369,1530550619,1530550620,1530550621,1530550622,1530550623,1530550624,1530550625,1530550875,1530550876,1530550877,1530550878,1530550879,1530550880,1530550881,1366711351,1366711350,1366711349,1366711348,1362778903,1362778904,1362778905,1362778906,1530551067,1530551068,1530551074,1530551075,1530551076,1530551077,1530551078,1530551079,1530551080,1530551081,1530551082,1530551083,1530551095,1530551096,1530551097,1530551098,1530551099,1530551100,1530551101,1530551131,1530551132,1530551133,1530551134,1530551135,1530551136,1530551137,1366711347,1366711346,1366711345,1366711344,1362779159,1362779160,1362779161,1362779162,1530551323,1530551324,1530551325,1530551326,1530551327,1530551328,1530551329,1530551330,1530551331,1530551332,1530551333,1530551334,1530551335,1530551336,1530551337,1530551338,1530551339,1530551351,1530551352,1530551353,1530551354,1530551355,1530551356,1530551357,1530551387,1530551388,1530551389,1530551390,1530551391,1530551392,1530551393,1366711343,1366711342,1366711341,1366711340,1362779415,1362779416,1362779417,1362779418,1530551579,1530551580,1530551581,1530551582,1530551583,1530551584,1530551585,1530551586,1530551587,1530551588,1530551589,1530551590,1530551591,1530551592,1530551593,1530551594,1530551595,1530551607,1530551608,1530551609,1530551610,1530551611,1530551612,1530551613,1530551643,1530551644,1530551645,1530551646,1530551647,1530551648,1530551649,1366711339,1366711338,1366711337,1366711336,1362779671,1362779672,1362779673,1362779674,1530551835,1530551836,1530551837,1530551838,1530551839,1530551840,1530551841,1530551842,1530551843,1530551844,1530551845,1530551846,1530551847,1530551848,1530551849,1530551850,1530551851,1530551863,1530551864,1530551865,1530551866,1530551867,1530551868,1530551869,1530551899,1530551900,1530551901,1530551902,1530551903,1530551904,1530551905,1366711335,1366711334,1366711333,1366711332,1362779927,1362779928,1362779929,1362779930,1530552091,1530552092,1530552093,1530552094,1530552095,1530552096,1530552097,1530552098,1530552099,1530552100,1530552101,1530552102,1530552103,1530552104,1530552105,1530552106,1530552107,1530552119,1530552120,1530552121,1530552122,1530552123,1530552124,1530552125,1530552155,1530552156,1530552157,1530552158,1530552159,1530552160,1530552161,1366711331,1366711330,1366711329,1366711328,1362780183,1362780184,1362780185,1362780186,1530552347,1530552348,1530552349,1530552350,1530552351,1530552352,1530552353,1530552354,1530552355,1530552356,1530552357,1530552358,1530552359,1530552360,1530552361,1530552362,1530552363,1530552375,1530552376,1530552377,1530552378,1530552379,1530552380,1530552381,1530552411,1530552412,1530552413,1530552414,1530552415,1530552416,1530552417,1366711327,1366711326,1366711325,1366711324,1362780439,1362780440,1362780441,1362780442,1530552603,1530552604,1530552605,1530552606,1530552607,1530552608,1530552609,1530552610,1530552611,1530552612,1530552613,1530552614,1530552615,1530552616,1530552617,1530552618,1530552619,1530552631,1530552632,1530552633,1530552634,1530552635,1530552636,1530552637,1530552667,1530552668,1530552669,1530552670,1530552671,1530552672,1530552673,1362826075,1362826076,1362826077,1362826078,1362826079,1362826080,1362826081,1362826331,1362826332,1362826333,1362826334,1362826335,1362826336,1362826337,1362826587,1362826588,1362826589,1362826590,1362826591,1362826592,1362826593,1362826843,1362826844,1362826845,1362826846,1362826847,1362826848,1362826849,1362827099,1362827100,1362827101,1362827102,1362827103,1362827104,1362827105,1362827355,1362827356,1362827357,1362827358,1362827359,1362827360,1362827361,1362827611,1362827612,1362827613,1362827614,1362827615,1362827616,1362827617,1362827867,1362827868,1362827869,1362827870,1362827871,1362827872,1362827873,1530600283,1530600284,1530600285,1530600286,1530600287,1530600288,1530600289,1530600539,1530600540,1530600541,1530600542,1530600543,1530600544,1530600545,1530600796,1530600797,1530600798,1530600799,1530600800,1530600801,1530601052,1530601053,1530601054,1530601055,1530601056,1530601057,1530601308,1530601309,1530601310,1530601311,1530601312,1530601313,1530601564,1530601565,1530601566,1530601567,1530601568,1530601569,1530601820,1530601821,1530601822,1530601823,1530601824,1530601825,1530602075,1530602076,1530602077,1530602078,1530602079,1530602080,1530602081,1530602331,1530602332,1530602333,1530602334,1530602335,1530602336,1530602337,1530602587,1530602588,1530602589,1530602590,1530602591,1530602592,1530602593,1530602843,1530602844,1530602845,1530602846,1530602847,1530602848,1530602849,1530603099,1530603100,1530603101,1530603102,1530603103,1530603104,1530603105,1530603355,1530603356,1530603357,1530603358,1530603359,1530603360,1530603361,1530603611,1530603612,1530603613,1530603614,1530603615,1530603616,1530603617,1530603867,1530603868,1530603869,1530603870,1530603871,1530603872,1530603873,1530604123,1530604124,1530604125,1530604126,1530604127,1530604128,1530604129,1530604379,1530604380,1530604381,1530604382,1530604383,1530604384,1530604385,1530604635,1530604636,1530604637,1530604638,1530604639,1530604640,1530604641,1530604891,1530604892,1530604893,1530604894,1530604895,1530604896,1530604897,1530605147,1530605148,1530605149,1530605150,1530605151,1530605152,1530605153,1530605403,1530605404,1530605405,1530605406,1530605407,1530605408,1530605409,1530605659,1530605660,1530605661,1530605662,1530605663,1530605664,1530605665,1530605915,1530605916,1530605917,1530605918,1530605919,1530605920,1530605921,1530606171,1530606172,1530606173,1530606174,1530606175,1530606176,1530606177,1530606427,1530606428,1530606429,1530606430,1530606431,1530606432,1530606433,1530606683,1530606684,1530606685,1530606686,1530606687,1530606688,1530606689,1530606939,1530606940,1530606941,1530606942,1530606943,1530606944,1530606945,1530607195,1530607196,1530607197,1530607198,1530607199,1530607200,1530607201,1530607451,1530607452,1530607453,1530607454,1530607455,1530607456,1530607457,1530607707,1530607708,1530607709,1530607710,1530607711,1530607712,1530607713,1530607963,1530607964,1530607965,1530607966,1530607967,1530607968,1530607969,1530608219,1530608220,1530608221,1530608222,1530608223,1530608224,1530608225,1530608475,1530608476,1530608477,1530608478,1530608479,1530608480,1530608481,1530608731,1530608732,1530608733,1530608734,1530608735,1530608736,1530608737,1530608987,1530608988,1530608989,1530608990,1530608991,1530608992,1530608993,1530612059,1530612060,1530612061,1530612062,1530612063,1530612064,1530612065,1530612315,1530612316,1530612317,1530612318,1530612319,1530612320,1530612321,1530612571,1530612572,1530612573,1530612574,1530612575,1530612576,1530612577,1530612827,1530612828,1530612829,1530612830,1530612831,1530612832,1530612833,1530613083,1530613084,1530613085,1530613086,1530613087,1530613088,1530613089,1530613339,1530613340,1530613341,1530613342,1530613343,1530613344,1530613345,1530613595,1530613596,1530613597,1530613598,1530613599,1530613600,1530613601,1530613851,1530613852,1530613853,1530613854,1530613855,1530613856,1530613857,1530614107,1530614108,1530614109,1530614110,1530614111,1530614112,1530614113,1530614363,1530614364,1530614365,1530614366,1530614367,1530614368,1530614369,1530614622,1530614623,1530614624,1530614625,1530614879,1530614880,1530614881,1530615135,1530615136,1530615137,1530615391,1530615392,1530615393,1530615646,1530615647,1530615648,1530615649,1530615899,1530615900,1530615901,1530615902,1530615903,1530615904,1530615905,1530616155,1530616156,1530616157,1530616158,1530616159,1530616160,1530616161,1530616411,1530616412,1530616413,1530616414,1530616415,1530616416,1530616417,1366711323,1366711322,1366711321,1366711320,1362844439,1362844440,1362844441,1362844442,1530616603,1530616604,1530616605,1530616606,1530616607,1530616608,1530616609,1530616610,1530616611,1530616612,1530616613,1530616614,1530616615,1530616616,1530616617,1530616618,1530616619,1530616631,1530616632,1530616633,1530616634,1530616635,1530616636,1530616637,1530616667,1530616668,1530616669,1530616670,1530616671,1530616672,1530616673,1366711319,1366711318,1366711317,1366711316,1362844695,1362844696,1362844697,1362844698,1530616859,1530616860,1530616861,1530616862,1530616863,1530616864,1530616865,1530616866,1530616867,1530616868,1530616869,1530616870,1530616871,1530616872,1530616873,1530616874,1530616875,1530616887,1530616888,1530616889,1530616890,1530616891,1530616892,1530616893,1530616923,1530616924,1530616925,1530616926,1530616927,1530616928,1530616929,1366711315,1534483297,1534483296,1534483295,1362844951,1362844952,1362844953,1362844954,1530617115,1530617116,1530617117,1530617118,1530617119,1530617120,1530617121,1530617122,1530617123,1530617124,1530617125,1530617126,1530617127,1530617128,1530617129,1530617130,1530617131,1530617143,1530617144,1530617145,1530617146,1530617147,1530617148,1530617149,1530617179,1530617180,1530617181,1530617182,1530617183,1530617184,1530617185,1534483294,1534483293,1534483292,1534483291,1362845207,1362845208,1362845209,1362845210,1530617371,1530617372,1530617373,1530617374,1530617375,1530617376,1530617377,1530617378,1530617379,1530617380,1530617381,1530617382,1530617383,1530617384,1530617385,1530617386,1530617387,1530617399,1530617400,1530617401,1530617402,1530617403,1530617404,1530617405,1530617435,1530617436,1530617437,1530617438,1530617439,1530617440,1530617441,1534483290,1366711129,1366711128,1366711127,1362845463,1362845464,1362845465,1362845466,1530617627,1530617628,1530617629,1530617630,1530617631,1530617632,1530617633,1530617634,1530617635,1530617636,1530617637,1530617638,1530617639,1530617640,1530617641,1530617642,1530617643,1530617655,1530617656,1530617657,1530617658,1530617659,1530617660,1530617661,1530617691,1530617692,1530617693,1530617694,1530617695,1530617696,1530617697,1366711126,1366711125,1366711124,1366711123,1362845719,1362845720,1362845721,1362845722,1530617883,1530617884,1530617885,1530617886,1530617887,1530617888,1530617889,1530617890,1530617891,1530617892,1530617893,1530617894,1530617895,1530617896,1530617897,1530617898,1530617899,1530617911,1530617912,1530617913,1530617914,1530617915,1530617916,1530617917,1530617947,1530617948,1530617949,1530617950,1530617951,1530617952,1530617953,1366711122,1366711121,1366711120,1366711119,1362845975,1362845976,1362845977,1362845978,1530618139,1530618140,1530618141,1530618142,1530618143,1530618144,1530618145,1530618146,1530618147,1530618148,1530618149,1530618150,1530618151,1530618152,1530618153,1530618154,1530618155,1530618167,1530618168,1530618169,1530618170,1530618171,1530618172,1530618173,1530618203,1530618204,1530618205,1530618206,1530618207,1530618208,1530618209,1362891611,1362891612,1362891613,1362891614,1362891615,1362891616,1362891617,1362891867,1362891868,1362891869,1362891870,1362891871,1362891872,1362891873,1362892123,1362892124,1362892125,1362892126,1362892127,1362892128,1362892129,1362892379,1362892380,1362892381,1362892382,1362892383,1362892384,1362892385,1362892635,1362892636,1362892637,1362892638,1362892639,1362892640,1362892641,1362892891,1362892892,1362892893,1362892894,1362892895,1362892896,1362892897,1362893147,1362893148,1362893149,1362893150,1362893151,1362893152,1362893153,1362893403,1362893404,1362893405,1362893406,1362893407,1362893408,1362893409,1530665819,1530665820,1530665821,1530665822,1530665823,1530665824,1530665825,1530666075,1530666076,1530666077,1530666078,1530666079,1530666080,1530666081,1530666331,1530666332,1530666333,1530666334,1530666335,1530666336,1530666337,1530666587,1530666588,1530666589,1530666590,1530666591,1530666592,1530666593,1530666843,1530666844,1530666845,1530666846,1530666847,1530666848,1530666849,1530667099,1530667100,1530667101,1530667102,1530667103,1530667104,1530667105,1530667355,1530667356,1530667357,1530667358,1530667359,1530667360,1530667361,1530667611,1530667612,1530667613,1530667614,1530667615,1530667616,1530667617,1530667867,1530667868,1530667869,1530667870,1530667871,1530667872,1530667873,1530668123,1530668124,1530668125,1530668126,1530668127,1530668128,1530668129,1530668379,1530668380,1530668381,1530668382,1530668383,1530668384,1530668385,1530668635,1530668636,1530668637,1530668638,1530668639,1530668640,1530668641,1530668891,1530668892,1530668893,1530668894,1530668895,1530668896,1530668897,1530669147,1530669148,1530669149,1530669150,1530669151,1530669152,1530669153,1530669403,1530669404,1530669405,1530669406,1530669407,1530669408,1530669409,1530669659,1530669660,1530669661,1530669662,1530669663,1530669664,1530669665,1530669915,1530669916,1530669917,1530669918,1530669919,1530669920,1530669921,1530670171,1530670172,1530670173,1530670174,1530670175,1530670176,1530670177,1530670427,1530670428,1530670429,1530670430,1530670431,1530670432,1530670433,1530670683,1530670684,1530670685,1530670686,1530670687,1530670688,1530670689,1530670939,1530670940,1530670941,1530670942,1530670943,1530670944,1530670945,1530671195,1530671196,1530671197,1530671198,1530671199,1530671200,1530671201,1530671451,1530671452,1530671453,1530671454,1530671455,1530671456,1530671457,1530671707,1530671708,1530671709,1530671710,1530671711,1530671712,1530671713,1530671963,1530671964,1530671965,1530671966,1530671967,1530671968,1530671969,1530672219,1530672220,1530672221,1530672222,1530672223,1530672224,1530672225,1530672475,1530672476,1530672477,1530672478,1530672479,1530672480,1530672481,1530672731,1530672732,1530672733,1530672734,1530672735,1530672736,1530672737,1530672987,1530672988,1530672989,1530672990,1530672991,1530672992,1530672993,1530673243,1530673244,1530673245,1530673246,1530673247,1530673248,1530673249,1530673499,1530673500,1530673501,1530673502,1530673503,1530673504,1530673505,1530673755,1530673756,1530673757,1530673758,1530673759,1530673760,1530673761,1530674011,1530674012,1530674013,1530674014,1530674015,1530674016,1530674017,1530674267,1530674268,1530674269,1530674270,1530674271,1530674272,1530674273,1530674523,1530674524,1530674525,1530674526,1530674527,1530674528,1530674529,1530677595,1530677596,1530677597,1530677598,1530677599,1530677600,1530677601,1530677851,1530677852,1530677853,1530677854,1530677855,1530677856,1530677857,1530678107,1530678108,1530678109,1530678110,1530678111,1530678112,1530678113,1530678363,1530678364,1530678365,1530678366,1530678367,1530678368,1530678369,1530678619,1530678620,1530678621,1530678622,1530678623,1530678624,1530678625,1530678875,1530678876,1530678877,1530678878,1530678879,1530678880,1530678881,1530679131,1530679132,1530679133,1530679134,1530679135,1530679136,1530679137,1530679387,1530679388,1530679389,1530679390,1530679391,1530679392,1530679393,1530679643,1530679644,1530679645,1530679646,1530679647,1530679648,1530679649,1530679899,1530679900,1530679901,1530679902,1530679903,1530679904,1530679905,1530680158,1530680159,1530680160,1530680161,1530680415,1530680416,1530680417,1530680671,1530680672,1530680673,1530680927,1530680928,1530680929,1530681182,1530681183,1530681184,1530681185,1530681435,1530681436,1530681437,1530681438,1530681439,1530681440,1530681441,1530681691,1530681692,1530681693,1530681694,1530681695,1530681696,1530681697,1530681947,1530681948,1530681949,1530681950,1530681951,1530681952,1530681953,1366711118,1366711117,1366711116,1366711115,1362909975,1362909976,1362909977,1362909978,1530682139,1530682140,1530682146,1530682147,1530682148,1530682149,1530682150,1530682151,1530682152,1530682153,1530682154,1530682155,1530682167,1530682168,1530682169,1530682170,1530682171,1530682172,1530682173,1530682203,1530682204,1530682205,1530682206,1530682207,1530682208,1530682209,1366711114,1366711113,1366711112,1366711111,1362910231,1362910232,1362910233,1362910234,1530682395,1530682396,1530682397,1530682398,1530682399,1530682400,1530682401,1530682402,1530682403,1530682404,1530682405,1530682406,1530682407,1530682408,1530682409,1530682410,1530682411,1530682423,1530682424,1530682425,1530682426,1530682427,1530682428,1530682429,1530682459,1530682460,1530682461,1530682462,1530682463,1530682464,1530682465,1366711110,1366711109,1366711108,1366711107,1362910487,1362910488,1362910489,1362910490,1530682651,1530682652,1530682653,1530682654,1530682655,1530682656,1530682657,1530682658,1530682659,1530682660,1530682661,1530682662,1530682663,1530682664,1530682665,1530682666,1530682667,1530682679,1530682680,1530682681,1530682682,1530682683,1530682684,1530682685,1530682715,1530682716,1530682717,1530682718,1530682719,1530682720,1530682721,1366711106,1366711105,1366711104,1366711103,1362910743,1362910744,1362910745,1362910746,1530682907,1530682908,1530682909,1530682910,1530682911,1530682912,1530682913,1530682914,1530682915,1530682916,1530682917,1530682918,1530682919,1530682920,1530682921,1530682922,1530682923,1530682935,1530682936,1530682937,1530682938,1530682939,1530682940,1530682941,1530682971,1530682972,1530682973,1530682974,1530682975,1530682976,1530682977,1366711102,1366711101,1366711100,1366711099,1362910999,1362911000,1362911001,1362911002,1530683163,1530683164,1530683165,1530683166,1530683167,1530683168,1530683169,1530683170,1530683171,1530683172,1530683173,1530683174,1530683175,1530683176,1530683177,1530683178,1530683179,1530683191,1530683192,1530683193,1530683194,1530683195,1530683196,1530683197,1530683227,1530683228,1530683229,1530683230,1530683231,1530683232,1530683233,1366711098,1366711097,1366711096,1366711095,1362911255,1362911256,1362911257,1362911258,1530683419,1530683420,1530683421,1530683422,1530683423,1530683424,1530683425,1530683426,1530683427,1530683428,1530683429,1530683430,1530683431,1530683432,1530683433,1530683434,1530683435,1530683447,1530683448,1530683449,1530683450,1530683451,1530683452,1530683453,1530683483,1530683484,1530683485,1530683486,1530683487,1530683488,1530683489,1366711094,1366711093,1366711092,1366711091,1362911511,1362911512,1362911513,1362911514,1530683675,1530683676,1530683677,1530683678,1530683679,1530683680,1530683681,1530683682,1530683683,1530683684,1530683685,1530683686,1530683687,1530683688,1530683689,1530683690,1530683691,1530683703,1530683704,1530683705,1530683706,1530683707,1530683708,1530683709,1530683739,1530683740,1530683741,1530683742,1530683743,1530683744,1530683745,1362957147,1362957148,1362957149,1362957150,1362957151,1362957152,1362957153,1362957403,1362957404,1362957405,1362957406,1362957407,1362957408,1362957409,1362957659,1362957660,1362957661,1362957662,1362957663,1362957664,1362957665,1362957915,1362957916,1362957917,1362957918,1362957919,1362957920,1362957921,1362958171,1362958172,1362958173,1362958174,1362958175,1362958176,1362958177,1362958427,1362958428,1362958429,1362958430,1362958431,1362958432,1362958433,1362958683,1362958684,1362958685,1362958686,1362958687,1362958688,1362958689,1362958939,1362958940,1362958941,1362958942,1362958943,1362958944,1362958945,1530731355,1530731356,1530731357,1530731358,1530731359,1530731360,1530731361,1530731611,1530731612,1530731613,1530731614,1530731615,1530731616,1530731617,1530731868,1530731869,1530731870,1530731871,1530731872,1530731873,1530732124,1530732125,1530732126,1530732127,1530732128,1530732129,1530732380,1530732381,1530732382,1530732383,1530732384,1530732385,1530732636,1530732637,1530732638,1530732639,1530732640,1530732641,1530732892,1530732893,1530732894,1530732895,1530732896,1530732897,1530733147,1530733148,1530733149,1530733150,1530733151,1530733152,1530733153,1530733403,1530733404,1530733405,1530733406,1530733407,1530733408,1530733409,1530733659,1530733660,1530733661,1530733662,1530733663,1530733664,1530733665,1530733915,1530733916,1530733917,1530733918,1530733919,1530733920,1530733921,1530734171,1530734172,1530734173,1530734174,1530734175,1530734176,1530734177,1530734427,1530734428,1530734429,1530734430,1530734431,1530734432,1530734433,1530734683,1530734684,1530734685,1530734686,1530734687,1530734688,1530734689,1530734939,1530734940,1530734941,1530734942,1530734943,1530734944,1530734945,1530735195,1530735196,1530735197,1530735198,1530735199,1530735200,1530735201,1530735451,1530735452,1530735453,1530735454,1530735455,1530735456,1530735457,1530735707,1530735708,1530735709,1530735710,1530735711,1530735712,1530735713,1530735963,1530735964,1530735965,1530735966,1530735967,1530735968,1530735969,1530736219,1530736220,1530736221,1530736222,1530736223,1530736224,1530736225,1530736475,1530736476,1530736477,1530736478,1530736479,1530736480,1530736481,1530736731,1530736732,1530736733,1530736734,1530736735,1530736736,1530736737,1530736987,1530736988,1530736989,1530736990,1530736991,1530736992,1530736993,1530737243,1530737244,1530737245,1530737246,1530737247,1530737248,1530737249,1530737499,1530737500,1530737501,1530737502,1530737503,1530737504,1530737505,1530737755,1530737756,1530737757,1530737758,1530737759,1530737760,1530737761,1530738011,1530738012,1530738013,1530738014,1530738015,1530738016,1530738017,1530738267,1530738268,1530738269,1530738270,1530738271,1530738272,1530738273,1530738523,1530738524,1530738525,1530738526,1530738527,1530738528,1530738529,1530738779,1530738780,1530738781,1530738782,1530738783,1530738784,1530738785,1530739035,1530739036,1530739037,1530739038,1530739039,1530739040,1530739041,1530739291,1530739292,1530739293,1530739294,1530739295,1530739296,1530739297,1530739547,1530739548,1530739549,1530739550,1530739551,1530739552,1530739553,1530739803,1530739804,1530739805,1530739806,1530739807,1530739808,1530739809,1530740059,1530740060,1530740061,1530740062,1530740063,1530740064,1530740065,1530743131,1530743132,1530743133,1530743134,1530743135,1530743136,1530743137,1530743387,1530743388,1530743389,1530743390,1530743391,1530743392,1530743393,1530743643,1530743644,1530743645,1530743646,1530743647,1530743648,1530743649,1530743899,1530743900,1530743901,1530743902,1530743903,1530743904,1530743905,1530744155,1530744156,1530744157,1530744158,1530744159,1530744160,1530744161,1530744411,1530744412,1530744413,1530744414,1530744415,1530744416,1530744417,1530744667,1530744668,1530744669,1530744670,1530744671,1530744672,1530744673,1530744923,1530744924,1530744925,1530744926,1530744927,1530744928,1530744929,1530745179,1530745180,1530745181,1530745182,1530745183,1530745184,1530745185,1530745435,1530745436,1530745437,1530745438,1530745439,1530745440,1530745441,1530745694,1530745695,1530745696,1530745697,1530745951,1530745952,1530745953,1530746207,1530746208,1530746209,1530746463,1530746464,1530746465,1530746718,1530746719,1530746720,1530746721,1530746971,1530746972,1530746973,1530746974,1530746975,1530746976,1530746977,1530747227,1530747228,1530747229,1530747230,1530747231,1530747232,1530747233,1530747483,1530747484,1530747485,1530747486,1530747487,1530747488,1530747489,1366711090,1366711089,1366711088,1366711087,1362975511,1362975512,1362975513,1362975514,1530747675,1530747676,1530747677,1530747678,1530747679,1530747680,1530747681,1530747682,1530747683,1530747684,1530747685,1530747686,1530747687,1530747688,1530747689,1530747690,1530747691,1530747703,1530747704,1530747705,1530747706,1530747707,1530747708,1530747709,1530747739,1530747740,1530747741,1530747742,1530747743,1530747744,1530747745,1366711086,1366711085,1366711084,1366711083,1362975767,1362975768,1362975769,1362975770,1530747931,1530747932,1530747933,1530747934,1530747935,1530747936,1530747937,1530747938,1530747939,1530747940,1530747941,1530747942,1530747943,1530747944,1530747945,1530747946,1530747947,1530747959,1530747960,1530747961,1530747962,1530747963,1530747964,1530747965,1530747995,1530747996,1530747997,1530747998,1530747999,1530748000,1530748001,1366711082,1366711081,1366711080,1366711079,1362976023,1362976024,1362976025,1362976026,1530748187,1530748188,1530748189,1530748190,1530748191,1530748192,1530748193,1530748194,1530748195,1530748196,1530748197,1530748198,1530748199,1530748200,1530748201,1530748202,1530748203,1530748215,1530748216,1530748217,1530748218,1530748219,1530748220,1530748221,1530748251,1530748252,1530748253,1530748254,1530748255,1530748256,1530748257,1366711078,1366711077,1366711076,1366711075,1362976279,1362976280,1362976281,1362976282,1530748443,1530748444,1530748445,1530748446,1530748447,1530748448,1530748449,1530748450,1530748451,1530748452,1530748453,1530748454,1530748455,1530748456,1530748457,1530748458,1530748459,1530748471,1530748472,1530748473,1530748474,1530748475,1530748476,1530748477,1530748507,1530748508,1530748509,1530748510,1530748511,1530748512,1530748513,1366711074,1366711073,1366711072,1366711071,1362976535,1362976536,1362976537,1362976538,1530748699,1530748700,1530748701,1530748702,1530748703,1530748704,1530748705,1530748706,1530748707,1530748708,1530748709,1530748710,1530748711,1530748712,1530748713,1530748714,1530748715,1530748727,1530748728,1530748729,1530748730,1530748731,1530748732,1530748733,1530748763,1530748764,1530748765,1530748766,1530748767,1530748768,1530748769,1366711070,1366711069,1366711068,1366711067,1362976791,1362976792,1362976793,1362976794,1530748955,1530748956,1530748957,1530748958,1530748959,1530748960,1530748961,1530748962,1530748963,1530748964,1530748965,1530748966,1530748967,1530748968,1530748969,1530748970,1530748971,1530748983,1530748984,1530748985,1530748986,1530748987,1530748988,1530748989,1530749019,1530749020,1530749021,1530749022,1530749023,1530749024,1530749025,1366711066,1366711065,1366711064,1366711063,1362977047,1362977048,1362977049,1362977050,1530749211,1530749212,1530749213,1530749214,1530749215,1530749216,1530749217,1530749218,1530749219,1530749220,1530749221,1530749222,1530749223,1530749224,1530749225,1530749226,1530749227,1530749239,1530749240,1530749241,1530749242,1530749243,1530749244,1530749245,1530749275,1530749276,1530749277,1530749278,1530749279,1530749280,1530749281,1363022683,1363022684,1363022685,1363022686,1363022687,1363022688,1363022689,1363022939,1363022940,1363022941,1363022942,1363022943,1363022944,1363022945,1363023195,1363023196,1363023197,1363023198,1363023199,1363023200,1363023201,1363023451,1363023452,1363023453,1363023454,1363023455,1363023456,1363023457,1363023707,1363023708,1363023709,1363023710,1363023711,1363023712,1363023713,1363023963,1363023964,1363023965,1363023966,1363023967,1363023968,1363023969,1363024219,1363024220,1363024221,1363024222,1363024223,1363024224,1363024225,1363024475,1363024476,1363024477,1363024478,1363024479,1363024480,1363024481,1530801755,1530801756,1530801757,1530801758,1530801759,1530801760,1530801761,1530802011,1530802012,1530802013,1530802014,1530802015,1530802016,1530802017,1530802267,1530802268,1530802269,1530802270,1530802271,1530802272,1530802273,1530802523,1530802524,1530802525,1530802526,1530802527,1530802528,1530802529,1530802779,1530802780,1530802781,1530802782,1530802783,1530802784,1530802785,1530803035,1530803036,1530803037,1530803038,1530803039,1530803040,1530803041,1530803291,1530803292,1530803293,1530803294,1530803295,1530803296,1530803297,1530803803,1530803804,1530803805,1530803806,1530803807,1530803808,1530803809,1530804059,1530804060,1530804061,1530804062,1530804063,1530804064,1530804065,1530804315,1530804316,1530804317,1530804318,1530804319,1530804320,1530804321,1530804571,1530804572,1530804573,1530804574,1530804575,1530804576,1530804577,1530804827,1530804828,1530804829,1530804830,1530804831,1530804832,1530804833,1530805083,1530805084,1530805085,1530805086,1530805087,1530805088,1530805089,1530805339,1530805340,1530805341,1530805342,1530805343,1530805344,1530805345,1530805595,1530805596,1530805597,1530805598,1530805599,1530805600,1530805601,1530808667,1530808668,1530808669,1530808670,1530808671,1530808672,1530808673,1530808923,1530808924,1530808925,1530808926,1530808927,1530808928,1530808929,1530809179,1530809180,1530809181,1530809182,1530809183,1530809184,1530809185,1530809435,1530809436,1530809437,1530809438,1530809439,1530809440,1530809441,1530809691,1530809692,1530809693,1530809694,1530809695,1530809696,1530809697,1530809947,1530809948,1530809949,1530809950,1530809951,1530809952,1530809953,1530810203,1530810204,1530810205,1530810206,1530810207,1530810208,1530810209,1530810459,1530810460,1530810461,1530810462,1530810463,1530810464,1530810465,1530810715,1530810716,1530810717,1530810718,1530810719,1530810720,1530810721,1530810971,1530810972,1530810973,1530810974,1530810975,1530810976,1530810977,1530811230,1530811231,1530811232,1530811233,1530811487,1530811488,1530811489,1530811743,1530811744,1530811745,1530811999,1530812000,1530812001,1530812254,1530812255,1530812256,1530812257,1530812507,1530812508,1530812509,1530812510,1530812511,1530812512,1530812513,1530812763,1530812764,1530812765,1530812766,1530812767,1530812768,1530812769,1530813019,1530813020,1530813021,1530813022,1530813023,1530813024,1530813025,1366711062,1366711061,1366711060,1366711059,1363041047,1363041048,1363041049,1363041050,1530813211,1530813212,1530813218,1530813219,1530813220,1530813221,1530813222,1530813223,1530813224,1530813225,1530813226,1530813227,1530813239,1530813240,1530813241,1530813242,1530813243,1530813244,1530813245,1530813275,1530813276,1530813277,1530813278,1530813279,1530813280,1530813281,1534483041,1534483040,1534483039,1534483038,1363041303,1363041304,1363041305,1363041306,1530813467,1530813468,1530813469,1530813470,1530813471,1530813472,1530813473,1530813474,1530813475,1530813476,1530813477,1530813478,1530813479,1530813480,1530813481,1530813482,1530813483,1530813495,1530813496,1530813497,1530813498,1530813499,1530813500,1530813501,1530813531,1530813532,1530813533,1530813534,1530813535,1530813536,1530813537,1534483037,1534483036,1534483035,1534483034,1363041559,1363041560,1363041561,1363041562,1530813723,1530813724,1530813725,1530813726,1530813727,1530813728,1530813729,1530813730,1530813731,1530813732,1530813733,1530813734,1530813735,1530813736,1530813737,1530813738,1530813739,1530813751,1530813752,1530813753,1530813754,1530813755,1530813756,1530813757,1530813787,1530813788,1530813789,1530813790,1530813791,1530813792,1530813793,1366710625,1366710624,1366710623,1366710622,1363041815,1363041816,1363041817,1363041818,1530813979,1530813980,1530813981,1530813982,1530813983,1530813984,1530813985,1530813986,1530813987,1530813988,1530813989,1530813990,1530813991,1530813992,1530813993,1530813994,1530813995,1530814007,1530814008,1530814009,1530814010,1530814011,1530814012,1530814013,1530814043,1530814044,1530814045,1530814046,1530814047,1530814048,1530814049,1366710621,1366710620,1366710619,1366710369,1363042071,1363042072,1363042073,1363042074,1530814235,1530814236,1530814237,1530814238,1530814239,1530814240,1530814241,1530814242,1530814243,1530814244,1530814245,1530814246,1530814247,1530814248,1530814249,1530814250,1530814251,1530814263,1530814264,1530814265,1530814266,1530814267,1530814268,1530814269,1530814299,1530814300,1530814301,1530814302,1530814303,1530814304,1530814305,1366710368,1366710367,1366710366,1366710365,1363042327,1363042328,1363042329,1363042330,1530814491,1530814492,1530814493,1530814494,1530814495,1530814496,1530814497,1530814498,1530814499,1530814500,1530814501,1530814502,1530814503,1530814504,1530814505,1530814506,1530814507,1530814519,1530814520,1530814521,1530814522,1530814523,1530814524,1530814525,1530814555,1530814556,1530814557,1530814558,1530814559,1530814560,1530814561,1366710364,1366710363,1366710113,1366710112,1363042583,1363042584,1363042585,1363042586,1530814747,1530814748,1530814749,1530814750,1530814751,1530814752,1530814753,1530814754,1530814755,1530814756,1530814757,1530814758,1530814759,1530814760,1530814761,1530814762,1530814763,1530814775,1530814776,1530814777,1530814778,1530814779,1530814780,1530814781,1530814811,1530814812,1530814813,1530814814,1530814815,1530814816,1530814817,1363088219,1363088220,1363088221,1363088222,1363088223,1363088224,1363088225,1363088475,1363088476,1363088477,1363088478,1363088479,1363088480,1363088481,1363088731,1363088732,1363088733,1363088734,1363088735,1363088736,1363088737,1363088987,1363088988,1363088989,1363088990,1363088991,1363088992,1363088993,1363089243,1363089244,1363089245,1363089246,1363089247,1363089248,1363089249,1363089499,1363089500,1363089501,1363089502,1363089503,1363089504,1363089505,1363089755,1363089756,1363089757,1363089758,1363089759,1363089760,1363089761,1530869595,1530869596,1530869597,1530869598,1530869599,1530869600,1530869601,1530869851,1530869852,1530869853,1530869854,1530869855,1530869856,1530869857,1530870107,1530870108,1530870109,1530870110,1530870111,1530870112,1530870113,1530870363,1530870364,1530870365,1530870366,1530870367,1530870368,1530870369,1530870619,1530870620,1530870621,1530870622,1530870623,1530870624,1530870625,1530870875,1530870876,1530870877,1530870878,1530870879,1530870880,1530870881,1530871131,1530871132,1530871133,1530871134,1530871135,1530871136,1530871137,1530871387,1530871388,1530871389,1530871390,1530871391,1530871392,1530871393,1530874203,1530874204,1530874205,1530874206,1530874207,1530874208,1530874209,1530874459,1530874460,1530874461,1530874462,1530874463,1530874464,1530874465,1530874715,1530874716,1530874717,1530874718,1530874719,1530874720,1530874721,1530874971,1530874972,1530874973,1530874974,1530874975,1530874976,1530874977,1530875227,1530875228,1530875229,1530875230,1530875231,1530875232,1530875233,1530875483,1530875484,1530875485,1530875486,1530875487,1530875488,1530875489,1530875739,1530875740,1530875741,1530875742,1530875743,1530875744,1530875745,1530875995,1530875996,1530875997,1530875998,1530875999,1530876000,1530876001,1530876251,1530876252,1530876253,1530876254,1530876255,1530876256,1530876257,1530876507,1530876508,1530876509,1530876510,1530876511,1530876512,1530876513,1530876766,1530876767,1530876768,1530876769,1530877023,1530877024,1530877025,1530877279,1530877280,1530877281,1530877535,1530877536,1530877537,1530877790,1530877791,1530877792,1530877793,1530878043,1530878044,1530878045,1530878046,1530878047,1530878048,1530878049,1530878299,1530878300,1530878301,1530878302,1530878303,1530878304,1530878305,1530878555,1530878556,1530878557,1530878558,1530878559,1530878560,1530878561,1366710111,1366710110,1366710109,1366710108,1363106583,1363106584,1363106585,1363106586,1530878747,1530878748,1530878749,1530878750,1530878751,1530878752,1530878753,1530878754,1530878755,1530878756,1530878757,1530878758,1530878759,1530878760,1530878761,1530878762,1530878763,1530878764,1530878775,1530878776,1530878777,1530878778,1530878779,1530878780,1530878781,1530878811,1530878812,1530878813,1530878814,1530878815,1530878816,1530878817,1366710107,1366709857,1366709856,1366709855,1363106839,1363106840,1363106841,1363106842,1530879003,1530879004,1530879005,1530879006,1530879007,1530879008,1530879009,1530879010,1530879011,1530879012,1530879013,1530879014,1530879015,1530879016,1530879017,1530879018,1530879019,1530879020,1530879031,1530879032,1530879033,1530879034,1530879035,1530879036,1530879037,1530879067,1530879068,1530879069,1530879070,1530879071,1530879072,1530879073,1366709854,1366709853,1366709852,1366709851,1363107095,1363107096,1363107097,1363107098,1530879259,1530879260,1530879261,1530879262,1530879263,1530879264,1530879265,1530879266,1530879267,1530879268,1530879269,1530879270,1530879271,1530879272,1530879273,1530879274,1530879275,1530879276,1530879287,1530879288,1530879289,1530879290,1530879291,1530879292,1530879293,1530879323,1530879324,1530879325,1530879326,1530879327,1530879328,1530879329,1366709601,1366709600,1366709599,1366709598,1363107351,1363107352,1363107353,1363107354,1530879515,1530879516,1530879517,1530879518,1530879519,1530879520,1530879521,1530879522,1530879523,1530879524,1530879525,1530879526,1530879527,1530879528,1530879529,1530879530,1530879531,1530879532,1530879543,1530879544,1530879545,1530879546,1530879547,1530879548,1530879549,1530879579,1530879580,1530879581,1530879582,1530879583,1530879584,1530879585,1366709597,1366709596,1366709595,1366709345,1363107607,1363107608,1363107609,1363107610,1530879771,1530879772,1530879773,1530879774,1530879775,1530879776,1530879777,1530879778,1530879779,1530879780,1530879781,1530879782,1530879783,1530879784,1530879785,1530879786,1530879787,1530879788,1530879799,1530879800,1530879801,1530879802,1530879803,1530879804,1530879805,1530879835,1530879836,1530879837,1530879838,1530879839,1530879840,1530879841,1366709344,1366709343,1366709342,1366709341,1363107863,1363107864,1363107865,1363107866,1530880027,1530880028,1530880029,1530880030,1530880031,1530880032,1530880033,1530880034,1530880035,1530880036,1530880037,1530880038,1530880039,1530880040,1530880041,1530880042,1530880043,1530880044,1530880055,1530880056,1530880057,1530880058,1530880059,1530880060,1530880061,1530880091,1530880092,1530880093,1530880094,1530880095,1530880096,1530880097,1366709340,1366709339,1366709089,1366709088,1363108119,1363108120,1363108121,1363108122,1530880283,1530880284,1530880285,1530880286,1530880287,1530880288,1530880289,1530880290,1530880291,1530880292,1530880293,1530880294,1530880295,1530880296,1530880297,1530880298,1530880299,1530880300,1530880311,1530880312,1530880313,1530880314,1530880315,1530880316,1530880317,1530880347,1530880348,1530880349,1530880350,1530880351,1530880352,1530880353,1363153755,1363153756,1363153757,1363153758,1363153759,1363153760,1363153761,1363154011,1363154012,1363154013,1363154014,1363154015,1363154016,1363154017,1363154267,1363154268,1363154269,1363154270,1363154271,1363154272,1363154273,1363154523,1363154524,1363154525,1363154526,1363154527,1363154528,1363154529,1363154779,1363154780,1363154781,1363154782,1363154783,1363154784,1363154785,1363155035,1363155036,1363155037,1363155038,1363155039,1363155040,1363155041,1363155291,1363155292,1363155293,1363155294,1363155295,1363155296,1363155297,1530935387,1530935388,1530935389,1530935390,1530935391,1530935392,1530935393,1530935643,1530935644,1530935645,1530935646,1530935647,1530935648,1530935649,1530935899,1530935900,1530935901,1530935902,1530935903,1530935904,1530935905,1530936155,1530936156,1530936157,1530936158,1530936159,1530936160,1530936161,1530936411,1530936412,1530936413,1530936414,1530936415,1530936416,1530936417,1530936667,1530936668,1530936669,1530936670,1530936671,1530936672,1530936673,1530936923,1530936924,1530936925,1530936926,1530936927,1530936928,1530936929,1530937179,1530937180,1530937181,1530937182,1530937183,1530937184,1530937185,1530939739,1530939740,1530939741,1530939742,1530939743,1530939744,1530939745,1530939995,1530939996,1530939997,1530939998,1530939999,1530940000,1530940001,1530940251,1530940252,1530940253,1530940254,1530940255,1530940256,1530940257,1530940507,1530940508,1530940509,1530940510,1530940511,1530940512,1530940513,1530940763,1530940764,1530940765,1530940766,1530940767,1530940768,1530940769,1530941019,1530941020,1530941021,1530941022,1530941023,1530941024,1530941025,1530941275,1530941276,1530941277,1530941278,1530941279,1530941280,1530941281,1530941531,1530941532,1530941533,1530941534,1530941535,1530941536,1530941537,1530941787,1530941788,1530941789,1530941790,1530941791,1530941792,1530941793,1530942043,1530942044,1530942045,1530942046,1530942047,1530942048,1530942049,1530942302,1530942303,1530942304,1530942305,1530942559,1530942560,1530942561,1530942815,1530942816,1530942817,1530943071,1530943072,1530943073,1530943326,1530943327,1530943328,1530943329,1530943579,1530943580,1530943581,1530943582,1530943583,1530943584,1530943585,1530943835,1530943836,1530943837,1530943838,1530943839,1530943840,1530943841,1530944091,1530944092,1530944093,1530944094,1530944095,1530944096,1530944097,1366709087,1366709086,1366709085,1366709084,1363172119,1363172120,1363172121,1363172122,1530944283,1530944284,1530944290,1530944291,1530944292,1530944293,1530944294,1530944295,1530944296,1530944297,1530944298,1530944299,1530944300,1530944301,1530944311,1530944312,1530944313,1530944314,1530944315,1530944316,1530944317,1530944347,1530944348,1530944349,1530944350,1530944351,1530944352,1530944353,1366709083,1366708833,1366708832,1366708831,1363172375,1363172376,1363172377,1363172378,1530944539,1530944540,1530944541,1530944542,1530944543,1530944544,1530944545,1530944546,1530944547,1530944548,1530944549,1530944550,1530944551,1530944552,1530944553,1530944554,1530944555,1530944556,1530944557,1530944567,1530944568,1530944569,1530944570,1530944571,1530944572,1530944573,1530944603,1530944604,1530944605,1530944606,1530944607,1530944608,1530944609,1366708830,1366708829,1366708828,1366708827,1363172631,1363172632,1363172633,1363172634,1530944795,1530944796,1530944797,1530944798,1530944799,1530944800,1530944801,1530944802,1530944803,1530944804,1530944805,1530944806,1530944807,1530944808,1530944809,1530944810,1530944811,1530944812,1530944813,1530944823,1530944824,1530944825,1530944826,1530944827,1530944828,1530944829,1530944859,1530944860,1530944861,1530944862,1530944863,1530944864,1530944865,1366708577,1366708576,1366708575,1366708574,1363172887,1363172888,1363172889,1363172890,1530945051,1530945052,1530945053,1530945054,1530945055,1530945056,1530945057,1530945058,1530945059,1530945060,1530945061,1530945062,1530945063,1530945064,1530945065,1530945066,1530945067,1530945068,1530945069,1530945079,1530945080,1530945081,1530945082,1530945083,1530945084,1530945085,1530945115,1530945116,1530945117,1530945118,1530945119,1530945120,1530945121,1366708573,1366708572,1366708571,1366708321,1363173143,1363173144,1363173145,1363173146,1530945307,1530945308,1530945309,1530945310,1530945311,1530945312,1530945313,1530945314,1530945315,1530945316,1530945317,1530945318,1530945319,1530945320,1530945321,1530945322,1530945323,1530945324,1530945325,1530945335,1530945336,1530945337,1530945338,1530945339,1530945340,1530945341,1530945371,1530945372,1530945373,1530945374,1530945375,1530945376,1530945377,1366708320,1366708319,1366708318,1366708317,1363173399,1363173400,1363173401,1363173402,1530945563,1530945564,1530945565,1530945566,1530945567,1530945568,1530945569,1530945570,1530945571,1530945572,1530945573,1530945574,1530945575,1530945576,1530945577,1530945578,1530945579,1530945580,1530945581,1530945591,1530945592,1530945593,1530945594,1530945595,1530945596,1530945597,1530945627,1530945628,1530945629,1530945630,1530945631,1530945632,1530945633,1366708316,1366708315,1366708065,1366708064,1363173655,1363173656,1363173657,1363173658,1530945819,1530945820,1530945821,1530945822,1530945823,1530945824,1530945825,1530945826,1530945827,1530945828,1530945829,1530945830,1530945831,1530945832,1530945833,1530945834,1530945835,1530945836,1530945837,1530945847,1530945848,1530945849,1530945850,1530945851,1530945852,1530945853,1530945883,1530945884,1530945885,1530945886,1530945887,1530945888,1530945889,1363219291,1363219292,1363219293,1363219294,1363219295,1363219296,1363219297,1363219547,1363219548,1363219549,1363219550,1363219551,1363219552,1363219553,1363219803,1363219804,1363219805,1363219806,1363219807,1363219808,1363219809,1363220059,1363220060,1363220061,1363220062,1363220063,1363220064,1363220065,1363220315,1363220316,1363220317,1363220318,1363220319,1363220320,1363220321,1363220571,1363220572,1363220573,1363220574,1363220575,1363220576,1363220577,1363220827,1363220828,1363220829,1363220830,1363220831,1363220832,1363220833,1531001179,1531001180,1531001181,1531001182,1531001183,1531001184,1531001185,1531001435,1531001436,1531001437,1531001438,1531001439,1531001440,1531001441,1531001691,1531001692,1531001693,1531001694,1531001695,1531001696,1531001697,1531001947,1531001948,1531001949,1531001950,1531001951,1531001952,1531001953,1531002203,1531002204,1531002205,1531002206,1531002207,1531002208,1531002209,1531002459,1531002460,1531002461,1531002462,1531002463,1531002464,1531002465,1531002715,1531002716,1531002717,1531002718,1531002719,1531002720,1531002721,1531002971,1531002972,1531002973,1531002974,1531002975,1531002976,1531002977,1531005275,1531005276,1531005277,1531005278,1531005279,1531005280,1531005281,1531005531,1531005532,1531005533,1531005534,1531005535,1531005536,1531005537,1531005787,1531005788,1531005789,1531005790,1531005791,1531005792,1531005793,1531006043,1531006044,1531006045,1531006046,1531006047,1531006048,1531006049,1531006299,1531006300,1531006301,1531006302,1531006303,1531006304,1531006305,1531006555,1531006556,1531006557,1531006558,1531006559,1531006560,1531006561,1531006811,1531006812,1531006813,1531006814,1531006815,1531006816,1531006817,1531007067,1531007068,1531007069,1531007070,1531007071,1531007072,1531007073,1531007323,1531007324,1531007325,1531007326,1531007327,1531007328,1531007329,1531007579,1531007580,1531007581,1531007582,1531007583,1531007584,1531007585,1531007838,1531007839,1531007840,1531007841,1531008095,1531008096,1531008097,1531008351,1531008352,1531008353,1531008607,1531008608,1531008609,1531008862,1531008863,1531008864,1531008865,1531009115,1531009116,1531009117,1531009118,1531009119,1531009120,1531009121,1531009371,1531009372,1531009373,1531009374,1531009375,1531009376,1531009377,1531009627,1531009628,1531009629,1531009630,1531009631,1531009632,1531009633,1366708063,1366708062,1366708061,1366708060,1363237655,1363237656,1363237657,1363237658,1531009819,1531009820,1531009821,1531009822,1531009823,1531009824,1531009825,1531009826,1531009827,1531009828,1531009829,1531009830,1531009831,1531009832,1531009833,1531009834,1531009835,1531009836,1531009837,1531009838,1531009847,1531009848,1531009849,1531009850,1531009851,1531009852,1531009853,1531009883,1531009884,1531009885,1531009886,1531009887,1531009888,1531009889,1366708059,1366707809,1366707808,1366707807,1363237911,1363237912,1363237913,1363237914,1531010075,1531010076,1531010077,1531010078,1531010079,1531010080,1531010081,1531010082,1531010083,1531010084,1531010085,1531010086,1531010087,1531010088,1531010089,1531010090,1531010091,1531010092,1531010093,1531010094,1531010103,1531010104,1531010105,1531010106,1531010107,1531010108,1531010109,1531010139,1531010140,1531010141,1531010142,1531010143,1531010144,1531010145,1366707806,1366707805,1366707804,1366707803,1363238167,1363238168,1363238169,1363238170,1531010331,1531010332,1531010333,1531010334,1531010335,1531010336,1531010337,1531010338,1531010339,1531010340,1531010341,1531010342,1531010343,1531010344,1531010345,1531010346,1531010347,1531010348,1531010349,1531010350,1531010359,1531010360,1531010361,1531010362,1531010363,1531010364,1531010365,1531010395,1531010396,1531010397,1531010398,1531010399,1531010400,1531010401,1366707553,1366707552,1366707551,1366707550,1363238423,1363238424,1363238425,1363238426,1531010587,1531010588,1531010589,1531010590,1531010591,1531010592,1531010593,1531010594,1531010595,1531010596,1531010597,1531010598,1531010599,1531010600,1531010601,1531010602,1531010603,1531010604,1531010605,1531010606,1531010615,1531010616,1531010617,1531010618,1531010619,1531010620,1531010621,1531010651,1531010652,1531010653,1531010654,1531010655,1531010656,1531010657,1366707549,1366707548,1366707547,1366707297,1363238679,1363238680,1363238681,1363238682,1531010843,1531010844,1531010845,1531010846,1531010847,1531010848,1531010849,1531010850,1531010851,1531010852,1531010853,1531010854,1531010855,1531010856,1531010857,1531010858,1531010859,1531010860,1531010861,1531010862,1531010871,1531010872,1531010873,1531010874,1531010875,1531010876,1531010877,1531010907,1531010908,1531010909,1531010910,1531010911,1531010912,1531010913,1366707296,1366707295,1366707294,1366707293,1363238935,1363238936,1363238937,1363238938,1531011099,1531011100,1531011101,1531011102,1531011103,1531011104,1531011105,1531011106,1531011107,1531011108,1531011109,1531011110,1531011111,1531011112,1531011113,1531011114,1531011115,1531011116,1531011117,1531011118,1531011127,1531011128,1531011129,1531011130,1531011131,1531011132,1531011133,1531011163,1531011164,1531011165,1531011166,1531011167,1531011168,1531011169,1366707292,1366707291,1366707041,1366707040,1363239191,1363239192,1363239193,1363239194,1531011355,1531011356,1531011357,1531011358,1531011359,1531011360,1531011361,1531011362,1531011363,1531011364,1531011365,1531011366,1531011367,1531011368,1531011369,1531011370,1531011371,1531011372,1531011373,1531011374,1531011383,1531011384,1531011385,1531011386,1531011387,1531011388,1531011389,1531011419,1531011420,1531011421,1531011422,1531011423,1531011424,1531011425,1363284827,1363284828,1363284829,1363284830,1363284831,1363284832,1363284833,1363285083,1363285084,1363285085,1363285086,1363285087,1363285088,1363285089,1363285339,1363285340,1363285341,1363285342,1363285343,1363285344,1363285345,1363285595,1363285596,1363285597,1363285598,1363285599,1363285600,1363285601,1363285851,1363285852,1363285853,1363285854,1363285855,1363285856,1363285857,1363286107,1363286108,1363286109,1363286110,1363286111,1363286112,1363286113,1363286363,1363286364,1363286365,1363286366,1363286367,1363286368,1363286369,1531066971,1531066972,1531066973,1531066974,1531066975,1531066976,1531066977,1531067227,1531067228,1531067229,1531067230,1531067231,1531067232,1531067233,1531067483,1531067484,1531067485,1531067486,1531067487,1531067488,1531067489,1531067739,1531067740,1531067741,1531067742,1531067743,1531067744,1531067745,1531067995,1531067996,1531067997,1531067998,1531067999,1531068000,1531068001,1531068251,1531068252,1531068253,1531068254,1531068255,1531068256,1531068257,1531068507,1531068508,1531068509,1531068510,1531068511,1531068512,1531068513,1531068763,1531068764,1531068765,1531068766,1531068767,1531068768,1531068769,1531070811,1531070812,1531070813,1531070814,1531070815,1531070816,1531070817,1531071067,1531071068,1531071069,1531071070,1531071071,1531071072,1531071073,1531071323,1531071324,1531071325,1531071326,1531071327,1531071328,1531071329,1531071579,1531071580,1531071581,1531071582,1531071583,1531071584,1531071585,1531071835,1531071836,1531071837,1531071838,1531071839,1531071840,1531071841,1531072091,1531072092,1531072093,1531072094,1531072095,1531072096,1531072097,1531072347,1531072348,1531072349,1531072350,1531072351,1531072352,1531072353,1531072603,1531072604,1531072605,1531072606,1531072607,1531072608,1531072609,1531072859,1531072860,1531072861,1531072862,1531072863,1531072864,1531072865,1531073115,1531073116,1531073117,1531073118,1531073119,1531073120,1531073121,1531073374,1531073375,1531073376,1531073377,1531073631,1531073632,1531073633,1531073887,1531073888,1531073889,1531074143,1531074144,1531074145,1531074398,1531074399,1531074400,1531074401,1531074651,1531074652,1531074653,1531074654,1531074655,1531074656,1531074657,1531074907,1531074908,1531074909,1531074910,1531074911,1531074912,1531074913,1531075163,1531075164,1531075165,1531075166,1531075167,1531075168,1531075169,1366707039,1366707038,1366707037,1366707036,1363303191,1363303192,1363303193,1363303194,1531075355,1531075356,1531075362,1531075363,1531075364,1531075365,1531075366,1531075367,1531075368,1531075369,1531075370,1531075371,1531075372,1531075373,1531075374,1531075375,1531075383,1531075384,1531075385,1531075386,1531075387,1531075388,1531075389,1531075419,1531075420,1531075421,1531075422,1531075423,1531075424,1531075425,1366707035,1366706785,1366706784,1366706783,1363303447,1363303448,1363303449,1363303450,1531075611,1531075612,1531075613,1531075614,1531075615,1531075616,1531075617,1531075618,1531075619,1531075620,1531075621,1531075622,1531075623,1531075624,1531075625,1531075626,1531075627,1531075628,1531075629,1531075630,1531075631,1531075639,1531075640,1531075641,1531075642,1531075643,1531075644,1531075645,1531075675,1531075676,1531075677,1531075678,1531075679,1531075680,1531075681,1366706782,1366706781,1366706780,1366706779,1363303703,1363303704,1363303705,1363303706,1531075867,1531075868,1531075869,1531075870,1531075871,1531075872,1531075873,1531075874,1531075875,1531075876,1531075877,1531075878,1531075879,1531075880,1531075881,1531075882,1531075883,1531075884,1531075885,1531075886,1531075887,1531075895,1531075896,1531075897,1531075898,1531075899,1531075900,1531075901,1531075931,1531075932,1531075933,1531075934,1531075935,1531075936,1531075937,1366706529,1366706528,1366706527,1366706526,1363303959,1363303960,1363303961,1363303962,1531076123,1531076124,1531076125,1531076126,1531076127,1531076128,1531076129,1531076130,1531076131,1531076132,1531076133,1531076134,1531076135,1531076136,1531076137,1531076138,1531076139,1531076140,1531076141,1531076142,1531076143,1531076151,1531076152,1531076153,1531076154,1531076155,1531076156,1531076157,1531076187,1531076188,1531076189,1531076190,1531076191,1531076192,1531076193,1366706525,1366706524,1366706523,1366706273,1363304215,1363304216,1363304217,1363304218,1531076379,1531076380,1531076381,1531076382,1531076383,1531076384,1531076385,1531076386,1531076387,1531076388,1531076389,1531076390,1531076391,1531076392,1531076393,1531076394,1531076395,1531076396,1531076397,1531076398,1531076399,1531076407,1531076408,1531076409,1531076410,1531076411,1531076412,1531076413,1531076443,1531076444,1531076445,1531076446,1531076447,1531076448,1531076449,1366706272,1366706271,1366706270,1366706269,1363304471,1363304472,1363304473,1363304474,1531076635,1531076636,1531076637,1531076638,1531076639,1531076640,1531076641,1531076642,1531076643,1531076644,1531076645,1531076646,1531076647,1531076648,1531076649,1531076650,1531076651,1531076652,1531076653,1531076654,1531076655,1531076663,1531076664,1531076665,1531076666,1531076667,1531076668,1531076669,1531076699,1531076700,1531076701,1531076702,1531076703,1531076704,1531076705,1366706268,1366706267,1366706017,1366706016,1363304727,1363304728,1363304729,1363304730,1531076891,1531076892,1531076893,1531076894,1531076895,1531076896,1531076897,1531076898,1531076899,1531076900,1531076901,1531076902,1531076903,1531076904,1531076905,1531076906,1531076907,1531076908,1531076909,1531076910,1531076911,1531076919,1531076920,1531076921,1531076922,1531076923,1531076924,1531076925,1531076955,1531076956,1531076957,1531076958,1531076959,1531076960,1531076961,1363350363,1363350364,1363350365,1363350366,1363350367,1363350368,1363350369,1363350619,1363350620,1363350621,1363350622,1363350623,1363350624,1363350625,1363350875,1363350876,1363350877,1363350878,1363350879,1363350880,1363350881,1363351131,1363351132,1363351133,1363351134,1363351135,1363351136,1363351137,1363351387,1363351388,1363351389,1363351390,1363351391,1363351392,1363351393,1363351643,1363351644,1363351645,1363351646,1363351647,1363351648,1363351649,1363351899,1363351900,1363351901,1363351902,1363351903,1363351904,1363351905,1531132763,1531132764,1531132765,1531132766,1531132767,1531132768,1531132769,1531133019,1531133020,1531133021,1531133022,1531133023,1531133024,1531133025,1531133275,1531133276,1531133277,1531133278,1531133279,1531133280,1531133281,1531133531,1531133532,1531133533,1531133534,1531133535,1531133536,1531133537,1531133787,1531133788,1531133789,1531133790,1531133791,1531133792,1531133793,1531134043,1531134044,1531134045,1531134046,1531134047,1531134048,1531134049,1531134299,1531134300,1531134301,1531134302,1531134303,1531134304,1531134305,1531134555,1531134556,1531134557,1531134558,1531134559,1531134560,1531134561,1531136347,1531136348,1531136349,1531136350,1531136351,1531136352,1531136353,1531136603,1531136604,1531136605,1531136606,1531136607,1531136608,1531136609,1531136859,1531136860,1531136861,1531136862,1531136863,1531136864,1531136865,1531137115,1531137116,1531137117,1531137118,1531137119,1531137120,1531137121,1531137371,1531137372,1531137373,1531137374,1531137375,1531137376,1531137377,1531137627,1531137628,1531137629,1531137630,1531137631,1531137632,1531137633,1531137883,1531137884,1531137885,1531137886,1531137887,1531137888,1531137889,1531138139,1531138140,1531138141,1531138142,1531138143,1531138144,1531138145,1531138395,1531138396,1531138397,1531138398,1531138399,1531138400,1531138401,1531138651,1531138652,1531138653,1531138654,1531138655,1531138656,1531138657,1531138907,1531138908,1531138909,1531138910,1531138911,1531138912,1531138913,1531139166,1531139167,1531139168,1531139169,1531139423,1531139424,1531139425,1531139678,1531139679,1531139680,1531139681,1531139931,1531139932,1531139933,1531139934,1531139935,1531139936,1531139937,1531140187,1531140188,1531140189,1531140190,1531140191,1531140192,1531140193,1531140443,1531140444,1531140445,1531140446,1531140447,1531140448,1531140449,1531140699,1531140700,1531140701,1531140702,1531140703,1531140704,1531140705,1366706015,1366706014,1366706013,1366706012,1363368727,1363368728,1363368729,1363368730,1531140891,1531140892,1531140893,1531140894,1531140895,1531140896,1531140897,1531140898,1531140899,1531140900,1531140901,1531140902,1531140903,1531140904,1531140905,1531140906,1531140907,1531140908,1531140909,1531140910,1531140911,1531140912,1531140919,1531140920,1531140921,1531140922,1531140923,1531140924,1531140925,1531140955,1531140956,1531140957,1531140958,1531140959,1531140960,1531140961,1366706011,1366705761,1366705760,1366705759,1363368983,1363368984,1363368985,1363368986,1531141147,1531141148,1531141149,1531141150,1531141151,1531141152,1531141153,1531141154,1531141155,1531141156,1531141157,1531141158,1531141159,1531141160,1531141161,1531141162,1531141163,1531141164,1531141165,1531141166,1531141167,1531141168,1531141175,1531141176,1531141177,1531141178,1531141179,1531141180,1531141181,1531141211,1531141212,1531141213,1531141214,1531141215,1531141216,1531141217,1366705758,1366705757,1366705756,1366705755,1363369239,1363369240,1363369241,1363369242,1531141403,1531141404,1531141405,1531141406,1531141407,1531141408,1531141409,1531141410,1531141411,1531141412,1531141413,1531141414,1531141415,1531141416,1531141417,1531141418,1531141419,1531141420,1531141421,1531141422,1531141423,1531141424,1531141431,1531141432,1531141433,1531141434,1531141435,1531141436,1531141437,1531141467,1531141468,1531141469,1531141470,1531141471,1531141472,1531141473,1366705505,1366705504,1366705503,1366705502,1363369495,1363369496,1363369497,1363369498,1531141659,1531141660,1531141661,1531141662,1531141663,1531141664,1531141665,1531141666,1531141667,1531141668,1531141669,1531141670,1531141671,1531141672,1531141673,1531141674,1531141675,1531141676,1531141677,1531141678,1531141679,1531141680,1531141687,1531141688,1531141689,1531141690,1531141691,1531141692,1531141693,1531141723,1531141724,1531141725,1531141726,1531141727,1531141728,1531141729,1366705501,1366705500,1366705499,1366705249,1363369751,1363369752,1363369753,1363369754,1531141915,1531141916,1531141917,1531141918,1531141919,1531141920,1531141921,1531141922,1531141923,1531141924,1531141925,1531141926,1531141927,1531141928,1531141929,1531141930,1531141931,1531141932,1531141933,1531141934,1531141935,1531141936,1531141943,1531141944,1531141945,1531141946,1531141947,1531141948,1531141949,1531141979,1531141980,1531141981,1531141982,1531141983,1531141984,1531141985,1366705248,1366705247,1366705246,1366705245,1363370007,1363370008,1363370009,1363370010,1531142171,1531142172,1531142173,1531142174,1531142175,1531142176,1531142177,1531142178,1531142179,1531142180,1531142181,1531142182,1531142183,1531142184,1531142185,1531142186,1531142187,1531142188,1531142189,1531142190,1531142191,1531142192,1531142199,1531142200,1531142201,1531142202,1531142203,1531142204,1531142205,1531142235,1531142236,1531142237,1531142238,1531142239,1531142240,1531142241,1366705244,1366705243,1366704993,1366704992,1363370263,1363370264,1363370265,1363370266,1531142427,1531142428,1531142429,1531142430,1531142431,1531142432,1531142433,1531142434,1531142435,1531142436,1531142437,1531142438,1531142439,1531142440,1531142441,1531142442,1531142443,1531142444,1531142445,1531142446,1531142447,1531142448,1531142455,1531142456,1531142457,1531142458,1531142459,1531142460,1531142461,1531142491,1531142492,1531142493,1531142494,1531142495,1531142496,1531142497,1363415899,1363415900,1363415901,1363415902,1363415903,1363415904,1363415905,1363416155,1363416156,1363416157,1363416158,1363416159,1363416160,1363416161,1363416411,1363416412,1363416413,1363416414,1363416415,1363416416,1363416417,1363416667,1363416668,1363416669,1363416670,1363416671,1363416672,1363416673,1363416923,1363416924,1363416925,1363416926,1363416927,1363416928,1363416929,1363417179,1363417180,1363417181,1363417182,1363417183,1363417184,1363417185,1363417435,1363417436,1363417437,1363417438,1363417439,1363417440,1363417441,1531198555,1531198556,1531198557,1531198558,1531198559,1531198560,1531198561,1531198811,1531198812,1531198813,1531198814,1531198815,1531198816,1531198817,1531199067,1531199068,1531199069,1531199070,1531199071,1531199072,1531199073,1531199323,1531199324,1531199325,1531199326,1531199327,1531199328,1531199329,1531199579,1531199580,1531199581,1531199582,1531199583,1531199584,1531199585,1531199835,1531199836,1531199837,1531199838,1531199839,1531199840,1531199841,1531200091,1531200092,1531200093,1531200094,1531200095,1531200096,1531200097,1531200347,1531200348,1531200349,1531200350,1531200351,1531200352,1531200353,1531201883,1531201884,1531201885,1531201886,1531201887,1531201888,1531201889,1531202139,1531202140,1531202141,1531202142,1531202143,1531202144,1531202145,1531202395,1531202396,1531202397,1531202398,1531202399,1531202400,1531202401,1531202651,1531202652,1531202653,1531202654,1531202655,1531202656,1531202657,1531202907,1531202908,1531202909,1531202910,1531202911,1531202912,1531202913,1531203163,1531203164,1531203165,1531203166,1531203167,1531203168,1531203169,1531203419,1531203420,1531203421,1531203422,1531203423,1531203424,1531203425,1531203675,1531203676,1531203677,1531203678,1531203679,1531203680,1531203681,1531203931,1531203932,1531203933,1531203934,1531203935,1531203936,1531203937,1531204187,1531204188,1531204189,1531204190,1531204191,1531204192,1531204193,1531204443,1531204444,1531204445,1531204446,1531204447,1531204448,1531204449,1531204699,1531204700,1531204701,1531204702,1531204703,1531204704,1531204705,1531204958,1531204959,1531204960,1531204961,1531205211,1531205212,1531205213,1531205214,1531205215,1531205216,1531205217,1531205467,1531205468,1531205469,1531205470,1531205471,1531205472,1531205473,1531205723,1531205724,1531205725,1531205726,1531205727,1531205728,1531205729,1531205979,1531205980,1531205981,1531205982,1531205983,1531205984,1531205985,1531206235,1531206236,1531206237,1531206238,1531206239,1531206240,1531206241,1366704991,1366704990,1366704989,1366704988,1363434263,1363434264,1363434265,1363434266,1531206427,1531206428,1531206434,1531206435,1531206436,1531206437,1531206438,1531206439,1531206440,1531206441,1531206442,1531206443,1531206444,1531206445,1531206446,1531206447,1531206448,1531206449,1531206455,1531206456,1531206457,1531206458,1531206459,1531206460,1531206461,1531206491,1531206492,1531206493,1531206494,1531206495,1531206496,1531206497,1366704987,1366704737,1366704736,1366704735,1363434519,1363434520,1363434521,1363434522,1531206683,1531206684,1531206685,1531206686,1531206687,1531206688,1531206689,1531206690,1531206691,1531206692,1531206693,1531206694,1531206695,1531206696,1531206697,1531206698,1531206699,1531206700,1531206701,1531206702,1531206703,1531206704,1531206705,1531206711,1531206712,1531206713,1531206714,1531206715,1531206716,1531206717,1531206747,1531206748,1531206749,1531206750,1531206751,1531206752,1531206753,1366704734,1366704733,1366704732,1366704731,1363434775,1363434776,1363434777,1363434778,1531206939,1531206940,1531206941,1531206942,1531206943,1531206944,1531206945,1531206946,1531206947,1531206948,1531206949,1531206950,1531206951,1531206952,1531206953,1531206954,1531206955,1531206956,1531206957,1531206958,1531206959,1531206960,1531206961,1531206967,1531206968,1531206969,1531206970,1531206971,1531206972,1531206973,1531207003,1531207004,1531207005,1531207006,1531207007,1531207008,1531207009,1366704481,1366704480,1366704479,1366704478,1363435031,1363435032,1363435033,1363435034,1531207195,1531207196,1531207197,1531207198,1531207199,1531207200,1531207201,1531207202,1531207203,1531207204,1531207205,1531207206,1531207207,1531207208,1531207209,1531207210,1531207211,1531207212,1531207213,1531207214,1531207215,1531207216,1531207217,1531207223,1531207224,1531207225,1531207226,1531207227,1531207228,1531207229,1531207259,1531207260,1531207261,1531207262,1531207263,1531207264,1531207265,1366704477,1366704476,1366704475,1366704225,1363435287,1363435288,1363435289,1363435290,1531207451,1531207452,1531207453,1531207454,1531207455,1531207456,1531207457,1531207458,1531207459,1531207460,1531207461,1531207462,1531207463,1531207464,1531207465,1531207466,1531207467,1531207468,1531207469,1531207470,1531207471,1531207472,1531207473,1531207479,1531207480,1531207481,1531207482,1531207483,1531207484,1531207485,1531207515,1531207516,1531207517,1531207518,1531207519,1531207520,1531207521,1366704224,1366704223,1366704222,1366704221,1363435543,1363435544,1363435545,1363435546,1531207707,1531207708,1531207709,1531207710,1531207711,1531207712,1531207713,1531207714,1531207715,1531207716,1531207717,1531207718,1531207719,1531207720,1531207721,1531207722,1531207723,1531207724,1531207725,1531207726,1531207727,1531207728,1531207729,1531207735,1531207736,1531207737,1531207738,1531207739,1531207740,1531207741,1531207771,1531207772,1531207773,1531207774,1531207775,1531207776,1531207777,1366704220,1366704219,1366703969,1366703968,1363435799,1363435800,1363435801,1363435802,1531207963,1531207964,1531207965,1531207966,1531207967,1531207968,1531207969,1531207970,1531207971,1531207972,1531207973,1531207974,1531207975,1531207976,1531207977,1531207978,1531207979,1531207980,1531207981,1531207982,1531207983,1531207984,1531207985,1531207991,1531207992,1531207993,1531207994,1531207995,1531207996,1531207997,1531208027,1531208028,1531208029,1531208030,1531208031,1531208032,1531208033,1363481435,1363481436,1363481437,1363481438,1363481439,1363481440,1363481441,1363481691,1363481692,1363481693,1363481694,1363481695,1363481696,1363481697,1363481947,1363481948,1363481949,1363481950,1363481951,1363481952,1363481953,1363482203,1363482204,1363482205,1363482206,1363482207,1363482208,1363482209,1363482459,1363482460,1363482461,1363482462,1363482463,1363482464,1363482465,1363482715,1363482716,1363482717,1363482718,1363482719,1363482720,1363482721,1363482971,1363482972,1363482973,1363482974,1363482975,1363482976,1363482977,1531264347,1531264348,1531264349,1531264350,1531264351,1531264352,1531264353,1531264603,1531264604,1531264605,1531264606,1531264607,1531264608,1531264609,1531264859,1531264860,1531264861,1531264862,1531264863,1531264864,1531264865,1531265115,1531265116,1531265117,1531265118,1531265119,1531265120,1531265121,1531265371,1531265372,1531265373,1531265374,1531265375,1531265376,1531265377,1531265627,1531265628,1531265629,1531265630,1531265631,1531265632,1531265633,1531265883,1531265884,1531265885,1531265886,1531265887,1531265888,1531265889,1531266139,1531266140,1531266141,1531266142,1531266143,1531266144,1531266145,1531267419,1531267420,1531267421,1531267422,1531267423,1531267424,1531267425,1531267675,1531267676,1531267677,1531267678,1531267679,1531267680,1531267681,1531267931,1531267932,1531267933,1531267934,1531267935,1531267936,1531267937,1531268187,1531268188,1531268189,1531268190,1531268191,1531268192,1531268193,1531268443,1531268444,1531268445,1531268446,1531268447,1531268448,1531268449,1531268699,1531268700,1531268701,1531268702,1531268703,1531268704,1531268705,1531268955,1531268956,1531268957,1531268958,1531268959,1531268960,1531268961,1531269211,1531269212,1531269213,1531269214,1531269215,1531269216,1531269217,1531269467,1531269468,1531269469,1531269470,1531269471,1531269472,1531269473,1531269723,1531269724,1531269725,1531269726,1531269727,1531269728,1531269729,1531269979,1531269980,1531269981,1531269982,1531269983,1531269984,1531269985,1531270235,1531270236,1531270237,1531270238,1531270239,1531270240,1531270241,1531270491,1531270492,1531270493,1531270494,1531270495,1531270496,1531270497,1531270747,1531270748,1531270749,1531270750,1531270751,1531270752,1531270753,1531271003,1531271004,1531271005,1531271006,1531271007,1531271008,1531271009,1531271259,1531271260,1531271261,1531271262,1531271263,1531271264,1531271265,1531271515,1531271516,1531271517,1531271518,1531271519,1531271520,1531271521,1531271771,1531271772,1531271773,1531271774,1531271775,1531271776,1531271777,1366703967,1366703966,1366703965,1366703964,1363499799,1363499800,1363499801,1363499802,1531271963,1531271964,1531271965,1531271966,1531271967,1531271968,1531271969,1531271970,1531271971,1531271972,1531271973,1531271974,1531271975,1531271976,1531271977,1531271978,1531271979,1531271980,1531271981,1531271982,1531271983,1531271984,1531271985,1531271986,1531271991,1531271992,1531271993,1531271994,1531271995,1531271996,1531271997,1531272027,1531272028,1531272029,1531272030,1531272031,1531272032,1531272033,1366703963,1366703713,1366703712,1366703711,1363500055,1363500056,1363500057,1363500058,1531272219,1531272220,1531272221,1531272222,1531272223,1531272224,1531272225,1531272226,1531272227,1531272228,1531272229,1531272230,1531272231,1531272232,1531272233,1531272234,1531272235,1531272236,1531272237,1531272238,1531272239,1531272240,1531272241,1531272242,1531272247,1531272248,1531272249,1531272250,1531272251,1531272252,1531272253,1531272283,1531272284,1531272285,1531272286,1531272287,1531272288,1531272289,1366703710,1366703709,1366703708,1366703707,1363500311,1363500312,1363500313,1363500314,1531272475,1531272476,1531272477,1531272478,1531272479,1531272480,1531272481,1531272482,1531272483,1531272484,1531272485,1531272486,1531272487,1531272488,1531272489,1531272490,1531272491,1531272492,1531272493,1531272494,1531272495,1531272496,1531272497,1531272498,1531272503,1531272504,1531272505,1531272506,1531272507,1531272508,1531272509,1531272539,1531272540,1531272541,1531272542,1531272543,1531272544,1531272545,1366703457,1366703456,1366703455,1366703454,1363500567,1363500568,1363500569,1363500570,1531272731,1531272732,1531272733,1531272734,1531272735,1531272736,1531272737,1531272738,1531272739,1531272740,1531272741,1531272742,1531272743,1531272744,1531272745,1531272746,1531272747,1531272748,1531272749,1531272750,1531272751,1531272752,1531272753,1531272754,1531272759,1531272760,1531272761,1531272762,1531272763,1531272764,1531272765,1531272795,1531272796,1531272797,1531272798,1531272799,1531272800,1531272801,1366703453,1366703452,1366703451,1366703201,1363500823,1363500824,1363500825,1363500826,1531272987,1531272988,1531272989,1531272990,1531272991,1531272992,1531272993,1531272994,1531272995,1531272996,1531272997,1531272998,1531272999,1531273000,1531273001,1531273002,1531273003,1531273004,1531273005,1531273006,1531273007,1531273008,1531273009,1531273010,1531273015,1531273016,1531273017,1531273018,1531273019,1531273020,1531273021,1531273051,1531273052,1531273053,1531273054,1531273055,1531273056,1531273057,1366703200,1366703199,1366703198,1366703197,1363501079,1363501080,1363501081,1363501082,1531273243,1531273244,1531273245,1531273246,1531273247,1531273248,1531273249,1531273250,1531273251,1531273252,1531273253,1531273254,1531273255,1531273256,1531273257,1531273258,1531273259,1531273260,1531273261,1531273262,1531273263,1531273264,1531273265,1531273266,1531273271,1531273272,1531273273,1531273274,1531273275,1531273276,1531273277,1531273307,1531273308,1531273309,1531273310,1531273311,1531273312,1531273313,1366703196,1366703195,1366702945,1366702944,1363501335,1363501336,1363501337,1363501338,1531273499,1531273500,1531273501,1531273502,1531273503,1531273504,1531273505,1531273506,1531273507,1531273508,1531273509,1531273510,1531273511,1531273512,1531273513,1531273514,1531273515,1531273516,1531273517,1531273518,1531273519,1531273520,1531273521,1531273522,1531273527,1531273528,1531273529,1531273530,1531273531,1531273532,1531273533,1531273563,1531273564,1531273565,1531273566,1531273567,1531273568,1531273569,1363546971,1363546972,1363546973,1363546974,1363546975,1363546976,1363546977,1363547227,1363547228,1363547229,1363547230,1363547231,1363547232,1363547233,1363547483,1363547484,1363547485,1363547486,1363547487,1363547488,1363547489,1363547739,1363547740,1363547741,1363547742,1363547743,1363547744,1363547745,1363547995,1363547996,1363547997,1363547998,1363547999,1363548000,1363548001,1363548251,1363548252,1363548253,1363548254,1363548255,1363548256,1363548257,1363548507,1363548508,1363548509,1363548510,1363548511,1363548512,1363548513,1531330139,1531330140,1531330141,1531330142,1531330143,1531330144,1531330145,1531330395,1531330396,1531330397,1531330398,1531330399,1531330400,1531330401,1531330651,1531330652,1531330653,1531330654,1531330655,1531330656,1531330657,1531330907,1531330908,1531330909,1531330910,1531330911,1531330912,1531330913,1531331163,1531331164,1531331165,1531331166,1531331167,1531331168,1531331169,1531331419,1531331420,1531331421,1531331422,1531331423,1531331424,1531331425,1531331675,1531331676,1531331677,1531331678,1531331679,1531331680,1531331681,1531331931,1531331932,1531331933,1531331934,1531331935,1531331936,1531331937,1531332955,1531332956,1531332957,1531332958,1531332959,1531332960,1531332961,1531333211,1531333212,1531333213,1531333214,1531333215,1531333216,1531333217,1531333467,1531333468,1531333469,1531333470,1531333471,1531333472,1531333473,1531333723,1531333724,1531333725,1531333726,1531333727,1531333728,1531333729,1531333979,1531333980,1531333981,1531333982,1531333983,1531333984,1531333985,1531334235,1531334236,1531334237,1531334238,1531334239,1531334240,1531334241,1531334491,1531334492,1531334493,1531334494,1531334495,1531334496,1531334497,1531334747,1531334748,1531334749,1531334750,1531334751,1531334752,1531334753,1531335003,1531335004,1531335005,1531335006,1531335007,1531335008,1531335009,1531335259,1531335260,1531335261,1531335262,1531335263,1531335264,1531335265,1531335515,1531335516,1531335517,1531335518,1531335519,1531335520,1531335521,1531335771,1531335772,1531335773,1531335774,1531335775,1531335776,1531335777,1531336027,1531336028,1531336029,1531336030,1531336031,1531336032,1531336033,1531336283,1531336284,1531336285,1531336286,1531336287,1531336288,1531336289,1531336539,1531336540,1531336541,1531336542,1531336543,1531336544,1531336545,1531336795,1531336796,1531336797,1531336798,1531336799,1531336800,1531336801,1531337051,1531337052,1531337053,1531337054,1531337055,1531337056,1531337057,1531337307,1531337308,1531337309,1531337310,1531337311,1531337312,1531337313,1366702943,1366702942,1366702941,1366702940,1363565335,1363565336,1363565337,1363565338,1531337499,1531337500,1531337506,1531337507,1531337508,1531337509,1531337510,1531337511,1531337512,1531337513,1531337514,1531337515,1531337516,1531337517,1531337518,1531337519,1531337520,1531337521,1531337522,1531337523,1531337527,1531337528,1531337529,1531337530,1531337531,1531337532,1531337533,1531337563,1531337564,1531337565,1531337566,1531337567,1531337568,1531337569,1366702939,1366702689,1366702688,1366702687,1363565591,1363565592,1363565593,1363565594,1531337755,1531337756,1531337757,1531337758,1531337759,1531337760,1531337761,1531337762,1531337763,1531337764,1531337765,1531337766,1531337767,1531337768,1531337769,1531337770,1531337771,1531337772,1531337773,1531337774,1531337775,1531337776,1531337777,1531337778,1531337779,1531337783,1531337784,1531337785,1531337786,1531337787,1531337788,1531337789,1531337819,1531337820,1531337821,1531337822,1531337823,1531337824,1531337825,1366702686,1366702685,1366702684,1366702683,1363565847,1363565848,1363565849,1363565850,1531338011,1531338012,1531338013,1531338014,1531338015,1531338016,1531338017,1531338018,1531338019,1531338020,1531338021,1531338022,1531338023,1531338024,1531338025,1531338026,1531338027,1531338028,1531338029,1531338030,1531338031,1531338032,1531338033,1531338034,1531338035,1531338039,1531338040,1531338041,1531338042,1531338043,1531338044,1531338045,1531338075,1531338076,1531338077,1531338078,1531338079,1531338080,1531338081,1366702433,1366702432,1366702431,1366702430,1363566103,1363566104,1363566105,1363566106,1531338267,1531338268,1531338269,1531338270,1531338271,1531338272,1531338273,1531338274,1531338275,1531338276,1531338277,1531338278,1531338279,1531338280,1531338281,1531338282,1531338283,1531338284,1531338285,1531338286,1531338287,1531338288,1531338289,1531338290,1531338291,1531338295,1531338296,1531338297,1531338298,1531338299,1531338300,1531338301,1531338331,1531338332,1531338333,1531338334,1531338335,1531338336,1531338337,1366702429,1366702428,1366702427,1366702177,1363566359,1363566360,1363566361,1363566362,1531338523,1531338524,1531338525,1531338526,1531338527,1531338528,1531338529,1531338530,1531338531,1531338532,1531338533,1531338534,1531338535,1531338536,1531338537,1531338538,1531338539,1531338540,1531338541,1531338542,1531338543,1531338544,1531338545,1531338546,1531338547,1531338551,1531338552,1531338553,1531338554,1531338555,1531338556,1531338557,1531338587,1531338588,1531338589,1531338590,1531338591,1531338592,1531338593,1366702176,1366702175,1366702174,1366702173,1363566615,1363566616,1363566617,1363566618,1531338779,1531338780,1531338781,1531338782,1531338783,1531338784,1531338785,1531338786,1531338787,1531338788,1531338789,1531338790,1531338791,1531338792,1531338793,1531338794,1531338795,1531338796,1531338797,1531338798,1531338799,1531338800,1531338801,1531338802,1531338803,1531338807,1531338808,1531338809,1531338810,1531338811,1531338812,1531338813,1531338843,1531338844,1531338845,1531338846,1531338847,1531338848,1531338849,1366702172,1366702171,1366701921,1366701920,1363566871,1363566872,1363566873,1363566874,1531339035,1531339036,1531339037,1531339038,1531339039,1531339040,1531339041,1531339042,1531339043,1531339044,1531339045,1531339046,1531339047,1531339048,1531339049,1531339050,1531339051,1531339052,1531339053,1531339054,1531339055,1531339056,1531339057,1531339058,1531339059,1531339063,1531339064,1531339065,1531339066,1531339067,1531339068,1531339069,1531339099,1531339100,1531339101,1531339102,1531339103,1531339104,1531339105,1363612507,1363612508,1363612509,1363612510,1363612511,1363612512,1363612513,1363612763,1363612764,1363612765,1363612766,1363612767,1363612768,1363612769,1363613019,1363613020,1363613021,1363613022,1363613023,1363613024,1363613025,1363613275,1363613276,1363613277,1363613278,1363613279,1363613280,1363613281,1363613531,1363613532,1363613533,1363613534,1363613535,1363613536,1363613537,1363613787,1363613788,1363613789,1363613790,1363613791,1363613792,1363613793,1363614043,1363614044,1363614045,1363614046,1363614047,1363614048,1363614049,1531395931,1531395932,1531395933,1531395934,1531395935,1531395936,1531395937,1531396187,1531396188,1531396189,1531396190,1531396191,1531396192,1531396193,1531396443,1531396444,1531396445,1531396446,1531396447,1531396448,1531396449,1531396699,1531396700,1531396701,1531396702,1531396703,1531396704,1531396705,1531396955,1531396956,1531396957,1531396958,1531396959,1531396960,1531396961,1531397211,1531397212,1531397213,1531397214,1531397215,1531397216,1531397217,1531397467,1531397468,1531397469,1531397470,1531397471,1531397472,1531397473,1531397723,1531397724,1531397725,1531397726,1531397727,1531397728,1531397729,1531398235,1531398236,1531398237,1531398238,1531398239,1531398240,1531398241,1531398491,1531398492,1531398493,1531398494,1531398495,1531398496,1531398497,1531398747,1531398748,1531398749,1531398750,1531398751,1531398752,1531398753,1531399003,1531399004,1531399005,1531399006,1531399007,1531399008,1531399009,1531399259,1531399260,1531399261,1531399262,1531399263,1531399264,1531399265,1531399515,1531399516,1531399517,1531399518,1531399519,1531399520,1531399521,1531399771,1531399772,1531399773,1531399774,1531399775,1531399776,1531399777,1531400027,1531400028,1531400029,1531400030,1531400031,1531400032,1531400033,1531400283,1531400284,1531400285,1531400286,1531400287,1531400288,1531400289,1531400539,1531400540,1531400541,1531400542,1531400543,1531400544,1531400545,1531400795,1531400796,1531400797,1531400798,1531400799,1531400800,1531400801,1531401051,1531401052,1531401053,1531401054,1531401055,1531401056,1531401057,1531401307,1531401308,1531401309,1531401310,1531401311,1531401312,1531401313,1531401563,1531401564,1531401565,1531401566,1531401567,1531401568,1531401569,1531401819,1531401820,1531401821,1531401822,1531401823,1531401824,1531401825,1531402075,1531402076,1531402077,1531402078,1531402079,1531402080,1531402081,1531402331,1531402332,1531402333,1531402334,1531402335,1531402336,1531402337,1531402587,1531402588,1531402589,1531402590,1531402591,1531402592,1531402593,1531402843,1531402844,1531402845,1531402846,1531402847,1531402848,1531402849,1366701919,1366701918,1366701917,1366701916,1363630871,1363630872,1363630873,1363630874,1531403053,1531403054,1531403055,1531403056,1531403057,1531403058,1531403059,1531403060,1531403062,1531403063,1531403064,1531403065,1531403066,1531403067,1531403068,1531403069,1531403099,1531403100,1531403101,1531403102,1531403103,1531403104,1531403105,1366701915,1366701665,1366701664,1366701663,1363631127,1363631128,1363631129,1363631130,1531403309,1531403310,1531403311,1531403312,1531403313,1531403314,1531403315,1531403316,1531403318,1531403319,1531403320,1531403321,1531403322,1531403323,1531403324,1531403325,1531403355,1531403356,1531403357,1531403358,1531403359,1531403360,1531403361,1366701662,1366701661,1366701660,1366701659,1363631383,1363631384,1363631385,1363631386,1531403565,1531403566,1531403567,1531403568,1531403569,1531403570,1531403571,1531403572,1531403574,1531403575,1531403576,1531403577,1531403578,1531403579,1531403580,1531403581,1531403611,1531403612,1531403613,1531403614,1531403615,1531403616,1531403617,1366701409,1366701408,1366701407,1366701406,1363631639,1363631640,1363631641,1363631642,1531403821,1531403822,1531403823,1531403824,1531403825,1531403826,1531403827,1531403828,1531403830,1531403831,1531403832,1531403833,1531403834,1531403835,1531403836,1531403837,1531403867,1531403868,1531403869,1531403870,1531403871,1531403872,1531403873,1366701405,1366701404,1366701403,1366701153,1363631895,1363631896,1363631897,1363631898,1531404077,1531404078,1531404079,1531404080,1531404081,1531404082,1531404083,1531404084,1531404086,1531404087,1531404088,1531404089,1531404090,1531404091,1531404092,1531404093,1531404123,1531404124,1531404125,1531404126,1531404127,1531404128,1531404129,1366701152,1366701151,1366701150,1366701149,1363632151,1363632152,1363632153,1363632154,1531404333,1531404334,1531404335,1531404336,1531404337,1531404338,1531404339,1531404340,1531404342,1531404343,1531404344,1531404345,1531404346,1531404347,1531404348,1531404349,1531404379,1531404380,1531404381,1531404382,1531404383,1531404384,1531404385,1366701148,1366701147,1366700897,1366700896,1363632407,1363632408,1363632409,1363632410,1531404589,1531404590,1531404591,1531404592,1531404593,1531404594,1531404595,1531404596,1531404598,1531404599,1531404600,1531404601,1531404602,1531404603,1531404604,1531404605,1531404635,1531404636,1531404637,1531404638,1531404639,1531404640,1531404641,1363678043,1363678044,1363678045,1363678046,1363678047,1363678048,1363678049,1363678299,1363678300,1363678301,1363678302,1363678303,1363678304,1363678305,1363678555,1363678556,1363678557,1363678558,1363678559,1363678560,1363678561,1363678811,1363678812,1363678813,1363678814,1363678815,1363678816,1363678817,1363679067,1363679068,1363679069,1363679070,1363679071,1363679072,1363679073,1363679323,1363679324,1363679325,1363679326,1363679327,1363679328,1363679329,1363679579,1363679580,1363679581,1363679582,1363679583,1363679584,1363679585,1531461723,1531461724,1531461725,1531461726,1531461727,1531461728,1531461729,1531461979,1531461980,1531461981,1531461982,1531461983,1531461984,1531461985,1531462235,1531462236,1531462237,1531462238,1531462239,1531462240,1531462241,1531462491,1531462492,1531462493,1531462494,1531462495,1531462496,1531462497,1531462747,1531462748,1531462749,1531462750,1531462751,1531462752,1531462753,1531463003,1531463004,1531463005,1531463006,1531463007,1531463008,1531463009,1531463259,1531463260,1531463261,1531463262,1531463263,1531463264,1531463265,1531463515,1531463516,1531463517,1531463518,1531463519,1531463520,1531463521,1531463771,1531463772,1531463773,1531463774,1531463775,1531463776,1531463777,1531464027,1531464028,1531464029,1531464030,1531464031,1531464032,1531464033,1531464283,1531464284,1531464285,1531464286,1531464287,1531464288,1531464289,1531464539,1531464540,1531464541,1531464542,1531464543,1531464544,1531464545,1531464795,1531464796,1531464797,1531464798,1531464799,1531464800,1531464801,1531465051,1531465052,1531465053,1531465054,1531465055,1531465056,1531465057,1531465307,1531465308,1531465309,1531465310,1531465311,1531465312,1531465313,1531465563,1531465564,1531465565,1531465566,1531465567,1531465568,1531465569,1531465819,1531465820,1531465821,1531465822,1531465823,1531465824,1531465825,1531466075,1531466076,1531466077,1531466078,1531466079,1531466080,1531466081,1531466331,1531466332,1531466333,1531466334,1531466335,1531466336,1531466337,1531466587,1531466588,1531466589,1531466590,1531466591,1531466592,1531466593,1531466843,1531466844,1531466845,1531466846,1531466847,1531466848,1531466849,1531467099,1531467100,1531467101,1531467102,1531467103,1531467104,1531467105,1531467355,1531467356,1531467357,1531467358,1531467359,1531467360,1531467361,1531467611,1531467612,1531467613,1531467614,1531467615,1531467616,1531467617,1531467867,1531467868,1531467869,1531467870,1531467871,1531467872,1531467873,1531468123,1531468124,1531468125,1531468126,1531468127,1531468128,1531468129,1531468379,1531468380,1531468381,1531468382,1531468383,1531468384,1531468385,1366700895,1366700894,1366700893,1366700892,1363696407,1363696408,1363696409,1531468590,1531468591,1531468592,1531468593,1531468594,1531468595,1531468596,1531468597,1531468598,1531468599,1531468600,1531468601,1531468602,1531468603,1531468604,1531468605,1531468635,1531468636,1531468637,1531468638,1531468639,1531468640,1531468641,1366700891,1366700641,1366700640,1366700639,1363696663,1363696664,1363696665,1531468846,1531468847,1531468848,1531468849,1531468850,1531468851,1531468852,1531468853,1531468854,1531468855,1531468856,1531468857,1531468858,1531468859,1531468860,1531468861,1531468891,1531468892,1531468893,1531468894,1531468895,1531468896,1531468897,1366700638,1366700637,1366700636,1366700635,1363696919,1363696920,1363696921,1531469102,1531469103,1531469104,1531469105,1531469106,1531469107,1531469108,1531469109,1531469110,1531469111,1531469112,1531469113,1531469114,1531469115,1531469116,1531469117,1531469147,1531469148,1531469149,1531469150,1531469151,1531469152,1531469153,1366700385,1366700384,1366700383,1366700382,1363697175,1363697176,1363697177,1531469358,1531469359,1531469360,1531469361,1531469362,1531469363,1531469364,1531469365,1531469366,1531469367,1531469368,1531469369,1531469370,1531469371,1531469372,1531469373,1531469403,1531469404,1531469405,1531469406,1531469407,1531469408,1531469409,1366700381,1366700380,1366700379,1366700129,1363697431,1363697432,1363697433,1531469614,1531469615,1531469616,1531469617,1531469618,1531469619,1531469620,1531469621,1531469622,1531469623,1531469624,1531469625,1531469626,1531469627,1531469628,1531469629,1531469659,1531469660,1531469661,1531469662,1531469663,1531469664,1531469665,1366700128,1366700127,1366700126,1366700125,1363697687,1363697688,1363697689,1531469870,1531469871,1531469872,1531469873,1531469874,1531469875,1531469876,1531469877,1531469878,1531469879,1531469880,1531469881,1531469882,1531469883,1531469884,1531469885,1531469915,1531469916,1531469917,1531469918,1531469919,1531469920,1531469921,1366700124,1366700123,1366699873,1366699872,1363697943,1363697944,1363697945,1531470126,1531470127,1531470128,1531470129,1531470130,1531470131,1531470132,1531470133,1531470134,1531470135,1531470136,1531470137,1531470138,1531470139,1531470140,1531470141,1531470171,1531470172,1531470173,1531470174,1531470175,1531470176,1531470177,1363743579,1363743580,1363743581,1363743582,1363743583,1363743584,1363743585,1363743835,1363743836,1363743837,1363743838,1363743839,1363743840,1363743841,1363744091,1363744092,1363744093,1363744094,1363744095,1363744096,1363744097,1363744347,1363744348,1363744349,1363744350,1363744351,1363744352,1363744353,1363744603,1363744604,1363744605,1363744606,1363744607,1363744608,1363744609,1363744859,1363744860,1363744861,1363744862,1363744863,1363744864,1363744865,1363745115,1363745116,1363745117,1363745118,1363745119,1363745120,1363745121,1531527515,1531527516,1531527517,1531527518,1531527519,1531527520,1531527521,1531527771,1531527772,1531527773,1531527774,1531527775,1531527776,1531527777,1531528027,1531528028,1531528029,1531528030,1531528031,1531528032,1531528033,1531528283,1531528284,1531528285,1531528286,1531528287,1531528288,1531528289,1531528539,1531528540,1531528541,1531528542,1531528543,1531528544,1531528545,1531528795,1531528796,1531528797,1531528798,1531528799,1531528800,1531528801,1531529051,1531529052,1531529053,1531529054,1531529055,1531529056,1531529057,1531529307,1531529308,1531529309,1531529310,1531529311,1531529312,1531529313,1531529563,1531529564,1531529565,1531529566,1531529567,1531529568,1531529569,1531529819,1531529820,1531529821,1531529822,1531529823,1531529824,1531529825,1531530075,1531530076,1531530077,1531530078,1531530079,1531530080,1531530081,1531530331,1531530332,1531530333,1531530334,1531530335,1531530336,1531530337,1531530587,1531530588,1531530589,1531530590,1531530591,1531530592,1531530593,1531530843,1531530844,1531530845,1531530846,1531530847,1531530848,1531530849,1531531099,1531531100,1531531101,1531531102,1531531103,1531531104,1531531105,1531531355,1531531356,1531531357,1531531358,1531531359,1531531360,1531531361,1531531611,1531531612,1531531613,1531531614,1531531615,1531531616,1531531617,1531531867,1531531868,1531531869,1531531870,1531531871,1531531872,1531531873,1531532123,1531532124,1531532125,1531532126,1531532127,1531532128,1531532129,1531532379,1531532380,1531532381,1531532382,1531532383,1531532384,1531532385,1531532635,1531532636,1531532637,1531532638,1531532639,1531532640,1531532641,1531532891,1531532892,1531532893,1531532894,1531532895,1531532896,1531532897,1531533147,1531533148,1531533149,1531533150,1531533151,1531533152,1531533153,1531533403,1531533404,1531533405,1531533406,1531533407,1531533408,1531533409,1531533659,1531533660,1531533661,1531533662,1531533663,1531533664,1531533665,1531533915,1531533916,1531533917,1531533918,1531533919,1531533920,1531533921,1366699871,1366699870,1366699869,1366699868,1363761943,1363761944,1363761945,1531534127,1531534128,1531534129,1531534130,1531534131,1531534132,1531534133,1531534134,1531534135,1531534136,1531534137,1531534138,1531534139,1531534140,1531534141,1531534171,1531534172,1531534173,1531534174,1531534175,1531534176,1531534177,1366699867,1366699617,1366699616,1366699615,1363762199,1363762200,1363762201,1531534383,1531534384,1531534385,1531534386,1531534387,1531534388,1531534389,1531534390,1531534391,1531534392,1531534393,1531534394,1531534395,1531534396,1531534397,1531534427,1531534428,1531534429,1531534430,1531534431,1531534432,1531534433,1366699614,1366699613,1366699612,1366699611,1363762455,1363762456,1363762457,1531534639,1531534640,1531534641,1531534642,1531534643,1531534644,1531534645,1531534646,1531534647,1531534648,1531534649,1531534650,1531534651,1531534652,1531534653,1531534683,1531534684,1531534685,1531534686,1531534687,1531534688,1531534689,1366699361,1366699360,1366699359,1366699358,1363762711,1363762712,1363762713,1531534895,1531534896,1531534897,1531534898,1531534899,1531534900,1531534901,1531534902,1531534903,1531534904,1531534905,1531534906,1531534907,1531534908,1531534909,1531534939,1531534940,1531534941,1531534942,1531534943,1531534944,1531534945,1366699357,1366699356,1366699355,1366699105,1363762967,1363762968,1363762969,1531535151,1531535152,1531535153,1531535154,1531535155,1531535156,1531535157,1531535158,1531535159,1531535160,1531535161,1531535162,1531535163,1531535164,1531535165,1531535195,1531535196,1531535197,1531535198,1531535199,1531535200,1531535201,1366699104,1366699103,1366699102,1366699101,1363763223,1363763224,1363763225,1531535407,1531535408,1531535409,1531535410,1531535411,1531535412,1531535413,1531535414,1531535415,1531535416,1531535417,1531535418,1531535419,1531535420,1531535421,1531535451,1531535452,1531535453,1531535454,1531535455,1531535456,1531535457,1366699100,1366699099,1366698849,1366698848,1363763479,1363763480,1363763481,1531535663,1531535664,1531535665,1531535666,1531535667,1531535668,1531535669,1531535670,1531535671,1531535672,1531535673,1531535674,1531535675,1531535676,1531535677,1531535707,1531535708,1531535709,1531535710,1531535711,1531535712,1531535713,1363809115,1363809116,1363809117,1363809118,1363809119,1363809120,1363809121,1363809371,1363809372,1363809373,1363809374,1363809375,1363809376,1363809377,1363809627,1363809628,1363809629,1363809630,1363809631,1363809632,1363809633,1363809883,1363809884,1363809885,1363809886,1363809887,1363809888,1363809889,1363810139,1363810140,1363810141,1363810142,1363810143,1363810144,1363810145,1363810395,1363810396,1363810397,1363810398,1363810399,1363810400,1363810401,1363810651,1363810652,1363810653,1363810654,1363810655,1363810656,1363810657,1531593307,1531593308,1531593309,1531593310,1531593311,1531593312,1531593313,1531593563,1531593564,1531593565,1531593566,1531593567,1531593568,1531593569,1531593819,1531593820,1531593821,1531593822,1531593823,1531593824,1531593825,1531594075,1531594076,1531594077,1531594078,1531594079,1531594080,1531594081,1531594331,1531594332,1531594333,1531594334,1531594335,1531594336,1531594337,1531594587,1531594588,1531594589,1531594590,1531594591,1531594592,1531594593,1531594843,1531594844,1531594845,1531594846,1531594847,1531594848,1531594849,1531595099,1531595100,1531595101,1531595102,1531595103,1531595104,1531595105,1531595355,1531595356,1531595357,1531595358,1531595359,1531595360,1531595361,1531595611,1531595612,1531595613,1531595614,1531595615,1531595616,1531595617,1531595867,1531595868,1531595869,1531595870,1531595871,1531595872,1531595873,1531596123,1531596124,1531596125,1531596126,1531596127,1531596128,1531596129,1531596379,1531596380,1531596381,1531596382,1531596383,1531596384,1531596385,1531596635,1531596636,1531596637,1531596638,1531596639,1531596640,1531596641,1531596891,1531596892,1531596893,1531596894,1531596895,1531596896,1531596897,1531597147,1531597148,1531597149,1531597150,1531597151,1531597152,1531597153,1531597403,1531597404,1531597405,1531597406,1531597407,1531597408,1531597409,1531597659,1531597660,1531597661,1531597662,1531597663,1531597664,1531597665,1531597915,1531597916,1531597917,1531597918,1531597919,1531597920,1531597921,1531598171,1531598172,1531598173,1531598174,1531598175,1531598176,1531598177,1531598427,1531598428,1531598429,1531598430,1531598431,1531598432,1531598433,1531598683,1531598684,1531598685,1531598686,1531598687,1531598688,1531598689,1531598939,1531598940,1531598941,1531598942,1531598943,1531598944,1531598945,1531599195,1531599196,1531599197,1531599198,1531599199,1531599200,1531599201,1531599451,1531599452,1531599453,1531599454,1531599455,1531599456,1531599457,1366698847,1366698846,1366698845,1366698844,1363827479,1363827480,1363827481,1531599664,1531599665,1531599666,1531599667,1531599668,1531599669,1531599670,1531599671,1531599672,1531599673,1531599674,1531599675,1531599676,1531599677,1531599707,1531599708,1531599709,1531599710,1531599711,1531599712,1531599713,1366698843,1366698593,1366698592,1366698591,1363827735,1363827736,1363827737,1531599920,1531599921,1531599922,1531599923,1531599924,1531599925,1531599926,1531599927,1531599928,1531599929,1531599930,1531599931,1531599932,1531599933,1531599963,1531599964,1531599965,1531599966,1531599967,1531599968,1531599969,1366698590,1366698589,1366698588,1366698587,1363827991,1363827992,1363827993,1531600176,1531600177,1531600178,1531600179,1531600180,1531600181,1531600182,1531600183,1531600184,1531600185,1531600186,1531600187,1531600188,1531600189,1531600219,1531600220,1531600221,1531600222,1531600223,1531600224,1531600225,1366698337,1366698336,1366698335,1366698334,1363828247,1363828248,1363828249,1531600432,1531600433,1531600434,1531600435,1531600436,1531600437,1531600438,1531600439,1531600440,1531600441,1531600442,1531600443,1531600444,1531600445,1531600475,1531600476,1531600477,1531600478,1531600479,1531600480,1531600481,1366698333,1366698332,1366698331,1366698081,1363828503,1363828504,1363828505,1531600688,1531600689,1531600690,1531600691,1531600692,1531600693,1531600694,1531600695,1531600696,1531600697,1531600698,1531600699,1531600700,1531600701,1531600731,1531600732,1531600733,1531600734,1531600735,1531600736,1531600737,1366698080,1366698079,1366698078,1366698077,1363828759,1363828760,1363828761,1531600944,1531600945,1531600946,1531600947,1531600948,1531600949,1531600950,1531600951,1531600952,1531600953,1531600954,1531600955,1531600956,1531600957,1531600987,1531600988,1531600989,1531600990,1531600991,1531600992,1531600993,1366698076,1366698075,1366697825,1366697824,1363829015,1363829016,1363829017,1531601200,1531601201,1531601202,1531601203,1531601204,1531601205,1531601206,1531601207,1531601208,1531601209,1531601210,1531601211,1531601212,1531601213,1531601243,1531601244,1531601245,1531601246,1531601247,1531601248,1531601249,1363874651,1363874652,1363874653,1363874654,1363874655,1363874656,1363874657,1363874907,1363874908,1363874909,1363874910,1363874911,1363874912,1363874913,1363875163,1363875164,1363875165,1363875166,1363875167,1363875168,1363875169,1363875419,1363875420,1363875421,1363875422,1363875423,1363875424,1363875425,1363875675,1363875676,1363875677,1363875678,1363875679,1363875680,1363875681,1363875931,1363875932,1363875933,1363875934,1363875935,1363875936,1363875937,1363876187,1363876188,1363876189,1363876190,1363876191,1363876192,1363876193,1531659099,1531659100,1531659101,1531659102,1531659103,1531659104,1531659105,1531659355,1531659356,1531659357,1531659358,1531659359,1531659360,1531659361,1531659611,1531659612,1531659613,1531659614,1531659615,1531659616,1531659617,1531659867,1531659868,1531659869,1531659870,1531659871,1531659872,1531659873,1531660123,1531660124,1531660125,1531660126,1531660127,1531660128,1531660129,1531660379,1531660380,1531660381,1531660382,1531660383,1531660384,1531660385,1531660635,1531660636,1531660637,1531660638,1531660639,1531660640,1531660641,1531660891,1531660892,1531660893,1531660894,1531660895,1531660896,1531660897,1531661147,1531661148,1531661149,1531661150,1531661151,1531661152,1531661153,1531661403,1531661404,1531661405,1531661406,1531661407,1531661408,1531661409,1531661659,1531661660,1531661661,1531661662,1531661663,1531661664,1531661665,1531661915,1531661916,1531661917,1531661918,1531661919,1531661920,1531661921,1531662171,1531662172,1531662173,1531662174,1531662175,1531662176,1531662177,1531662427,1531662428,1531662429,1531662430,1531662431,1531662432,1531662433,1531662683,1531662684,1531662685,1531662686,1531662687,1531662688,1531662689,1531662939,1531662940,1531662941,1531662942,1531662943,1531662944,1531662945,1531663195,1531663196,1531663197,1531663198,1531663199,1531663200,1531663201,1531663451,1531663452,1531663453,1531663454,1531663455,1531663456,1531663457,1531663707,1531663708,1531663709,1531663710,1531663711,1531663712,1531663713,1531663963,1531663964,1531663965,1531663966,1531663967,1531663968,1531663969,1531664219,1531664220,1531664221,1531664222,1531664223,1531664224,1531664225,1531664475,1531664476,1531664477,1531664478,1531664479,1531664480,1531664481,1531664731,1531664732,1531664733,1531664734,1531664735,1531664736,1531664737,1531664987,1531664988,1531664989,1531664990,1531664991,1531664992,1531664993,1366697823,1366697822,1366697821,1366697820,1363893015,1363893016,1363893017,1531665201,1531665202,1531665203,1531665204,1531665205,1531665206,1531665207,1531665208,1531665209,1531665210,1531665211,1531665212,1531665213,1531665243,1531665244,1531665245,1531665246,1531665247,1531665248,1531665249,1366697819,1366697569,1366697568,1366697567,1363893271,1363893272,1363893273,1531665457,1531665458,1531665459,1531665460,1531665461,1531665462,1531665463,1531665464,1531665465,1531665466,1531665467,1531665468,1531665469,1531665499,1531665500,1531665501,1531665502,1531665503,1531665504,1531665505,1366697566,1366697565,1366697564,1366697563,1363893527,1363893528,1363893529,1531665713,1531665714,1531665715,1531665716,1531665717,1531665718,1531665719,1531665720,1531665721,1531665722,1531665723,1531665724,1531665725,1531665755,1531665756,1531665757,1531665758,1531665759,1531665760,1531665761,1366697313,1366697312,1366697311,1366697310,1363893783,1363893784,1363893785,1531665969,1531665970,1531665971,1531665972,1531665973,1531665974,1531665975,1531665976,1531665977,1531665978,1531665979,1531665980,1531665981,1531666011,1531666012,1531666013,1531666014,1531666015,1531666016,1531666017,1366697309,1366697308,1366697307,1366697057,1363894039,1363894040,1363894041,1531666225,1531666226,1531666227,1531666228,1531666229,1531666230,1531666231,1531666232,1531666233,1531666234,1531666235,1531666236,1531666237,1531666267,1531666268,1531666269,1531666270,1531666271,1531666272,1531666273,1366697056,1366697055,1366697054,1366697053,1363894295,1363894296,1363894297,1531666481,1531666482,1531666483,1531666484,1531666485,1531666486,1531666487,1531666488,1531666489,1531666490,1531666491,1531666492,1531666493,1531666523,1531666524,1531666525,1531666526,1531666527,1531666528,1531666529,1366697052,1366697051,1366696801,1366696800,1363894551,1363894552,1363894553,1531666737,1531666738,1531666739,1531666740,1531666741,1531666742,1531666743,1531666744,1531666745,1531666746,1531666747,1531666748,1531666749,1531666779,1531666780,1531666781,1531666782,1531666783,1531666784,1531666785,1363940187,1363940188,1363940189,1363940190,1363940191,1363940192,1363940193,1363940443,1363940444,1363940445,1363940446,1363940447,1363940448,1363940449,1363940699,1363940700,1363940701,1363940702,1363940703,1363940704,1363940705,1363940955,1363940956,1363940957,1363940958,1363940959,1363940960,1363940961,1363941211,1363941212,1363941213,1363941214,1363941215,1363941216,1363941217,1363941467,1363941468,1363941469,1363941470,1363941471,1363941472,1363941473,1363941723,1363941724,1363941725,1363941726,1363941727,1363941728,1363941729,1531724891,1531724892,1531724893,1531724894,1531724895,1531724896,1531724897,1531725147,1531725148,1531725149,1531725150,1531725151,1531725152,1531725153,1531725403,1531725404,1531725405,1531725406,1531725407,1531725408,1531725409,1531725659,1531725660,1531725661,1531725662,1531725663,1531725664,1531725665,1531725915,1531725916,1531725917,1531725918,1531725919,1531725920,1531725921,1531726171,1531726172,1531726173,1531726174,1531726175,1531726176,1531726177,1531726427,1531726428,1531726429,1531726430,1531726431,1531726432,1531726433,1531726683,1531726684,1531726685,1531726686,1531726687,1531726688,1531726689,1531726939,1531726940,1531726941,1531726942,1531726943,1531726944,1531726945,1531727195,1531727196,1531727197,1531727198,1531727199,1531727200,1531727201,1531727451,1531727452,1531727453,1531727454,1531727455,1531727456,1531727457,1531727707,1531727708,1531727709,1531727710,1531727711,1531727712,1531727713,1531727963,1531727964,1531727965,1531727966,1531727967,1531727968,1531727969,1531728219,1531728220,1531728221,1531728222,1531728223,1531728224,1531728225,1531728475,1531728476,1531728477,1531728478,1531728479,1531728480,1531728481,1531728731,1531728732,1531728733,1531728734,1531728735,1531728736,1531728737,1531728987,1531728988,1531728989,1531728990,1531728991,1531728992,1531728993,1531729243,1531729244,1531729245,1531729246,1531729247,1531729248,1531729249,1531729499,1531729500,1531729501,1531729502,1531729503,1531729504,1531729505,1531729755,1531729756,1531729757,1531729758,1531729759,1531729760,1531729761,1531730011,1531730012,1531730013,1531730014,1531730015,1531730016,1531730017,1531730267,1531730268,1531730269,1531730270,1531730271,1531730272,1531730273,1531730523,1531730524,1531730525,1531730526,1531730527,1531730528,1531730529,1366696799,1366696798,1366696797,1366696796,1363958551,1363958552,1363958553,1531730738,1531730739,1531730740,1531730741,1531730742,1531730743,1531730744,1531730745,1531730746,1531730747,1531730748,1531730749,1531730779,1531730780,1531730781,1531730782,1531730783,1531730784,1531730785,1366696795,1366696545,1366696544,1366696543,1363958807,1363958808,1363958809,1531730994,1531730995,1531730996,1531730997,1531730998,1531730999,1531731000,1531731001,1531731002,1531731003,1531731004,1531731005,1531731035,1531731036,1531731037,1531731038,1531731039,1531731040,1531731041,1366696542,1366696541,1366696540,1366696539,1363959063,1363959064,1363959065,1531731250,1531731251,1531731252,1531731253,1531731254,1531731255,1531731256,1531731257,1531731258,1531731259,1531731260,1531731261,1531731291,1531731292,1531731293,1531731294,1531731295,1531731296,1531731297,1366696289,1366696288,1366696287,1366696286,1363959319,1363959320,1363959321,1531731506,1531731507,1531731508,1531731509,1531731510,1531731511,1531731512,1531731513,1531731514,1531731515,1531731516,1531731517,1531731547,1531731548,1531731549,1531731550,1531731551,1531731552,1531731553,1366696285,1366696284,1366696283,1366696033,1363959575,1363959576,1363959577,1531731762,1531731763,1531731764,1531731765,1531731766,1531731767,1531731768,1531731769,1531731770,1531731771,1531731772,1531731773,1531731803,1531731804,1531731805,1531731806,1531731807,1531731808,1531731809,1366696032,1366696031,1366696030,1366696029,1363959831,1363959832,1363959833,1531732018,1531732019,1531732020,1531732021,1531732022,1531732023,1531732024,1531732025,1531732026,1531732027,1531732028,1531732029,1531732059,1531732060,1531732061,1531732062,1531732063,1531732064,1531732065,1366696028,1366696027,1366695777,1366695776,1363960087,1363960088,1363960089,1531732274,1531732275,1531732276,1531732277,1531732278,1531732279,1531732280,1531732281,1531732282,1531732283,1531732284,1531732285,1531732315,1531732316,1531732317,1531732318,1531732319,1531732320,1531732321,1364005723,1364005724,1364005725,1364005726,1364005727,1364005728,1364005729,1364005979,1364005980,1364005981,1364005982,1364005983,1364005984,1364005985,1364006235,1364006236,1364006237,1364006238,1364006239,1364006240,1364006241,1364006491,1364006492,1364006493,1364006494,1364006495,1364006496,1364006497,1364006747,1364006748,1364006749,1364006750,1364006751,1364006752,1364006753,1364007003,1364007004,1364007005,1364007006,1364007007,1364007008,1364007009,1364007259,1364007260,1364007261,1364007262,1364007263,1364007264,1364007265,1531790683,1531790684,1531790685,1531790686,1531790687,1531790688,1531790689,1531790939,1531790940,1531790941,1531790942,1531790943,1531790944,1531790945,1531791195,1531791196,1531791197,1531791198,1531791199,1531791200,1531791201,1531791451,1531791452,1531791453,1531791454,1531791455,1531791456,1531791457,1531791707,1531791708,1531791709,1531791710,1531791711,1531791712,1531791713,1531791963,1531791964,1531791965,1531791966,1531791967,1531791968,1531791969,1531792219,1531792220,1531792221,1531792222,1531792223,1531792224,1531792225,1531792475,1531792476,1531792477,1531792478,1531792479,1531792480,1531792481,1531792731,1531792732,1531792733,1531792734,1531792735,1531792736,1531792737,1531792987,1531792988,1531792989,1531792990,1531792991,1531792992,1531792993,1531793243,1531793244,1531793245,1531793246,1531793247,1531793248,1531793249,1531793499,1531793500,1531793501,1531793502,1531793503,1531793504,1531793505,1531793755,1531793756,1531793757,1531793758,1531793759,1531793760,1531793761,1531794011,1531794012,1531794013,1531794014,1531794015,1531794016,1531794017,1531794267,1531794268,1531794269,1531794270,1531794271,1531794272,1531794273,1531794523,1531794524,1531794525,1531794526,1531794527,1531794528,1531794529,1531794779,1531794780,1531794781,1531794782,1531794783,1531794784,1531794785,1531795035,1531795036,1531795037,1531795038,1531795039,1531795040,1531795041,1531795291,1531795292,1531795293,1531795294,1531795295,1531795296,1531795297,1531795547,1531795548,1531795549,1531795550,1531795551,1531795552,1531795553,1531795803,1531795804,1531795805,1531795806,1531795807,1531795808,1531795809,1531796059,1531796060,1531796061,1531796062,1531796063,1531796064,1531796065,1366695775,1366695774,1366695773,1366695772,1364024087,1364024088,1364024089,1531796275,1531796276,1531796277,1531796278,1531796279,1531796280,1531796281,1531796282,1531796283,1531796284,1531796285,1531796315,1531796316,1531796317,1531796318,1531796319,1531796320,1531796321,1366695771,1366695521,1366695520,1366695519,1364024343,1364024344,1364024345,1531796531,1531796532,1531796533,1531796534,1531796535,1531796536,1531796537,1531796538,1531796539,1531796540,1531796541,1531796571,1531796572,1531796573,1531796574,1531796575,1531796576,1531796577,1366695518,1366695517,1366695516,1366695515,1364024599,1364024600,1364024601,1531796787,1531796788,1531796789,1531796790,1531796791,1531796792,1531796793,1531796794,1531796795,1531796796,1531796797,1531796827,1531796828,1531796829,1531796830,1531796831,1531796832,1531796833,1366695265,1366695264,1366695263,1366695262,1364024855,1364024856,1364024857,1531797043,1531797044,1531797045,1531797046,1531797047,1531797048,1531797049,1531797050,1531797051,1531797052,1531797053,1531797083,1531797084,1531797085,1531797086,1531797087,1531797088,1531797089,1366695261,1366695260,1366695259,1366695009,1364025111,1364025112,1364025113,1531797299,1531797300,1531797301,1531797302,1531797303,1531797304,1531797305,1531797306,1531797307,1531797308,1531797309,1531797339,1531797340,1531797341,1531797342,1531797343,1531797344,1531797345,1366695008,1366695007,1366695006,1366695005,1364025367,1364025368,1364025369,1531797555,1531797556,1531797557,1531797558,1531797559,1531797560,1531797561,1531797562,1531797563,1531797564,1531797565,1531797595,1531797596,1531797597,1531797598,1531797599,1531797600,1531797601,1366695004,1366695003,1366694753,1366694752,1364025623,1364025624,1364025625,1531797811,1531797812,1531797813,1531797814,1531797815,1531797816,1531797817,1531797818,1531797819,1531797820,1531797821,1531797851,1531797852,1531797853,1531797854,1531797855,1531797856,1531797857,1364071259,1364071260,1364071261,1364071262,1364071263,1364071264,1364071265,1364071515,1364071516,1364071517,1364071518,1364071519,1364071520,1364071521,1364071771,1364071772,1364071773,1364071774,1364071775,1364071776,1364071777,1364072027,1364072028,1364072029,1364072030,1364072031,1364072032,1364072033,1364072283,1364072284,1364072285,1364072286,1364072287,1364072288,1364072289,1364072539,1364072540,1364072541,1364072542,1364072543,1364072544,1364072545,1364072795,1364072796,1364072797,1364072798,1364072799,1364072800,1364072801,1531856475,1531856476,1531856477,1531856478,1531856479,1531856480,1531856481,1531856731,1531856732,1531856733,1531856734,1531856735,1531856736,1531856737,1531856987,1531856988,1531856989,1531856990,1531856991,1531856992,1531856993,1531857243,1531857244,1531857245,1531857246,1531857247,1531857248,1531857249,1531857499,1531857500,1531857501,1531857502,1531857503,1531857504,1531857505,1531857755,1531857756,1531857757,1531857758,1531857759,1531857760,1531857761,1531858011,1531858012,1531858013,1531858014,1531858015,1531858016,1531858017,1531858267,1531858268,1531858269,1531858270,1531858271,1531858272,1531858273,1531858523,1531858524,1531858525,1531858526,1531858527,1531858528,1531858529,1531858779,1531858780,1531858781,1531858782,1531858783,1531858784,1531858785,1531859035,1531859036,1531859037,1531859038,1531859039,1531859040,1531859041,1531859291,1531859292,1531859293,1531859294,1531859295,1531859296,1531859297,1531859547,1531859548,1531859549,1531859550,1531859551,1531859552,1531859553,1531859803,1531859804,1531859805,1531859806,1531859807,1531859808,1531859809,1531860059,1531860060,1531860061,1531860062,1531860063,1531860064,1531860065,1531860315,1531860316,1531860317,1531860318,1531860319,1531860320,1531860321,1531860571,1531860572,1531860573,1531860574,1531860575,1531860576,1531860577,1531860827,1531860828,1531860829,1531860830,1531860831,1531860832,1531860833,1531861083,1531861084,1531861085,1531861086,1531861087,1531861088,1531861089,1531861339,1531861340,1531861341,1531861342,1531861343,1531861344,1531861345,1531861595,1531861596,1531861597,1531861598,1531861599,1531861600,1531861601,1366694751,1366694750,1366694749,1366694748,1364089623,1364089624,1364089625,1531861812,1531861813,1531861814,1531861815,1531861816,1531861817,1531861818,1531861819,1531861820,1531861821,1531861851,1531861852,1531861853,1531861854,1531861855,1531861856,1531861857,1366694747,1366694497,1366694496,1366694495,1364089879,1364089880,1364089881,1531862068,1531862069,1531862070,1531862071,1531862072,1531862073,1531862074,1531862075,1531862076,1531862077,1531862107,1531862108,1531862109,1531862110,1531862111,1531862112,1531862113,1366694494,1366694493,1366694492,1366694491,1364090135,1364090136,1364090137,1531862324,1531862325,1531862326,1531862327,1531862328,1531862329,1531862330,1531862331,1531862332,1531862333,1531862363,1531862364,1531862365,1531862366,1531862367,1531862368,1531862369,1366694241,1366694240,1366694239,1366694238,1364090391,1364090392,1364090393,1531862580,1531862581,1531862582,1531862583,1531862584,1531862585,1531862586,1531862587,1531862588,1531862589,1531862619,1531862620,1531862621,1531862622,1531862623,1531862624,1531862625,1366694237,1366694236,1366694235,1366693985,1364090647,1364090648,1364090649,1531862836,1531862837,1531862838,1531862839,1531862840,1531862841,1531862842,1531862843,1531862844,1531862845,1531862875,1531862876,1531862877,1531862878,1531862879,1531862880,1531862881,1366693984,1366693983,1366693982,1366693981,1364090903,1364090904,1364090905,1531863092,1531863093,1531863094,1531863095,1531863096,1531863097,1531863098,1531863099,1531863100,1531863101,1531863131,1531863132,1531863133,1531863134,1531863135,1531863136,1531863137,1366693980,1366693979,1366693729,1366693728,1364091159,1364091160,1364091161,1531863348,1531863349,1531863350,1531863351,1531863352,1531863353,1531863354,1531863355,1531863356,1531863357,1531863387,1531863388,1531863389,1531863390,1531863391,1531863392,1531863393,1364136795,1364136796,1364136797,1364136798,1364136799,1364136800,1364136801,1364137051,1364137052,1364137053,1364137054,1364137055,1364137056,1364137057,1364137307,1364137308,1364137309,1364137310,1364137311,1364137312,1364137313,1364137563,1364137564,1364137565,1364137566,1364137567,1364137568,1364137569,1364137819,1364137820,1364137821,1364137822,1364137823,1364137824,1364137825,1364138075,1364138076,1364138077,1364138078,1364138079,1364138080,1364138081,1364138331,1364138332,1364138333,1364138334,1364138335,1364138336,1364138337,1531922267,1531922268,1531922269,1531922270,1531922271,1531922272,1531922273,1531922523,1531922524,1531922525,1531922526,1531922527,1531922528,1531922529,1531922779,1531922780,1531922781,1531922782,1531922783,1531922784,1531922785,1531923035,1531923036,1531923037,1531923038,1531923039,1531923040,1531923041,1531923291,1531923292,1531923293,1531923294,1531923295,1531923296,1531923297,1531923547,1531923548,1531923549,1531923550,1531923551,1531923552,1531923553,1531923803,1531923804,1531923805,1531923806,1531923807,1531923808,1531923809,1531924059,1531924060,1531924061,1531924062,1531924063,1531924064,1531924065,1531924315,1531924316,1531924317,1531924318,1531924319,1531924320,1531924321,1531924571,1531924572,1531924573,1531924574,1531924575,1531924576,1531924577,1531924827,1531924828,1531924829,1531924830,1531924831,1531924832,1531924833,1531925083,1531925084,1531925085,1531925086,1531925087,1531925088,1531925089,1531925339,1531925340,1531925341,1531925342,1531925343,1531925344,1531925345,1531925595,1531925596,1531925597,1531925598,1531925599,1531925600,1531925601,1531925851,1531925852,1531925853,1531925854,1531925855,1531925856,1531925857,1531926107,1531926108,1531926109,1531926110,1531926111,1531926112,1531926113,1531926363,1531926364,1531926365,1531926366,1531926367,1531926368,1531926369,1531926619,1531926620,1531926621,1531926622,1531926623,1531926624,1531926625,1531926875,1531926876,1531926877,1531926878,1531926879,1531926880,1531926881,1531927131,1531927132,1531927133,1531927134,1531927135,1531927136,1531927137,1366693727,1366693726,1366693725,1366693724,1364155159,1364155160,1364155161,1531927349,1531927350,1531927351,1531927352,1531927353,1531927354,1531927355,1531927356,1531927357,1531927387,1531927388,1531927389,1531927390,1531927391,1531927392,1531927393,1366693723,1366693473,1366693472,1366693471,1364155415,1364155416,1364155417,1531927605,1531927606,1531927607,1531927608,1531927609,1531927610,1531927611,1531927612,1531927613,1531927643,1531927644,1531927645,1531927646,1531927647,1531927648,1531927649,1366693470,1366693469,1366693468,1366693467,1364155671,1364155672,1364155673,1531927861,1531927862,1531927863,1531927864,1531927865,1531927866,1531927867,1531927868,1531927869,1531927899,1531927900,1531927901,1531927902,1531927903,1531927904,1531927905,1366693217,1366693216,1366693215,1366693214,1364155927,1364155928,1364155929,1531928117,1531928118,1531928119,1531928120,1531928121,1531928122,1531928123,1531928124,1531928125,1531928155,1531928156,1531928157,1531928158,1531928159,1531928160,1531928161,1366693213,1366693212,1366693211,1366692961,1364156183,1364156184,1364156185,1531928373,1531928374,1531928375,1531928376,1531928377,1531928378,1531928379,1531928380,1531928381,1531928411,1531928412,1531928413,1531928414,1531928415,1531928416,1531928417,1366692960,1366692959,1366692958,1366692957,1364156439,1364156440,1364156441,1531928629,1531928630,1531928631,1531928632,1531928633,1531928634,1531928635,1531928636,1531928637,1531928667,1531928668,1531928669,1531928670,1531928671,1531928672,1531928673,1366692956,1366692955,1366692705,1366692704,1364156695,1364156696,1364156697,1531928885,1531928886,1531928887,1531928888,1531928889,1531928890,1531928891,1531928892,1531928893,1531928923,1531928924,1531928925,1531928926,1531928927,1531928928,1531928929,1364202331,1364202332,1364202333,1364202334,1364202335,1364202336,1364202337,1364202587,1364202588,1364202589,1364202590,1364202591,1364202592,1364202593,1364202843,1364202844,1364202845,1364202846,1364202847,1364202848,1364202849,1364203099,1364203100,1364203101,1364203102,1364203103,1364203104,1364203105,1364203355,1364203356,1364203357,1364203358,1364203359,1364203360,1364203361,1364203611,1364203612,1364203613,1364203614,1364203615,1364203616,1364203617,1364203867,1364203868,1364203869,1364203870,1364203871,1364203872,1364203873,1366692703,1366692702,1366692701,1366692700,1364220695,1364220696,1364220697,1366692699,1366647066,1366647065,1366647064,1364220951,1364220952,1364220953,1366647063,1366647062,1366647061,1366647060,1364221207,1364221208,1364221209,1366647059,1366646810,1366646809,1366646808,1364221463,1364221464,1364221465,1366646807,1366646806,1366646805,1366646804,1364221719,1364221720,1364221721,1366646803,1366646554,1366646553,1366646552,1364221975,1364221976,1364221977,1366646551,1366646550,1366646549,1366646548,1364222231,1364222232,1364222233,1364267867,1364267868,1364267869,1364267870,1364267871,1364267872,1364267873,1364268123,1364268124,1364268125,1364268126,1364268127,1364268128,1364268129,1364268379,1364268380,1364268381,1364268382,1364268383,1364268384,1364268385,1364268635,1364268636,1364268637,1364268638,1364268639,1364268640,1364268641,1364268891,1364268892,1364268893,1364268894,1364268895,1364268896,1364268897,1364269147,1364269148,1364269149,1364269150,1364269151,1364269152,1364269153,1364269403,1364269404,1364269405,1364269406,1364269407,1364269408,1364269409,1366646547,1366646298,1366646297,1366646296,1364286231,1364286232,1364286233,1366646295,1366646294,1366646293,1366646292,1364286487,1364286488,1364286489,1366646291,1366646042,1366646041,1366646040,1364286743,1364286744,1364286745,1366646039,1366646038,1366646037,1366646036,1364286999,1364287000,1364287001,1366646035,1366645786,1366645785,1366645784,1364287255,1364287256,1364287257,1366645783,1366645782,1366645781,1366645780,1364287511,1364287512,1364287513,1366645779,1366645530,1366645529,1366645528,1364287767,1364287768,1364287769,1364333403,1364333404,1364333405,1364333406,1364333407,1364333408,1364333409,1364333659,1364333660,1364333661,1364333662,1364333663,1364333664,1364333665,1364333915,1364333916,1364333917,1364333918,1364333919,1364333920,1364333921,1364334171,1364334172,1364334173,1364334174,1364334175,1364334176,1364334177,1364334427,1364334428,1364334429,1364334430,1364334431,1364334432,1364334433,1364334683,1364334684,1364334685,1364334686,1364334687,1364334688,1364334689,1364334939,1364334940,1364334941,1364334942,1364334943,1364334944,1364334945,1366645527,1366645526,1366645525,1366645524,1364351767,1364351768,1364351769,1366645523,1366628961,1366628960,1366628959,1364352023,1364352024,1364352025,1366628958,1366628957,1366628956,1366628955,1364352279,1364352280,1364352281,1366628705,1366628704,1366628703,1366628702,1364352535,1364352536,1364352537,1366628701,1366628700,1366628699,1366628449,1364352791,1364352792,1364352793,1366628448,1366628447,1366628446,1366628445,1364353047,1364353048,1364353049,1366628444,1366628443,1366628193,1366628192,1364353303,1364353304,1364353305,1364398939,1364398940,1364398941,1364398942,1364398943,1364398944,1364398945,1364399195,1364399196,1364399197,1364399198,1364399199,1364399200,1364399201,1364399451,1364399452,1364399453,1364399454,1364399455,1364399456,1364399457,1364399707,1364399708,1364399709,1364399710,1364399711,1364399712,1364399713,1364399963,1364399964,1364399965,1364399966,1364399967,1364399968,1364399969,1364400219,1364400220,1364400221,1364400222,1364400223,1364400224,1364400225,1364400475,1364400476,1364400477,1364400478,1364400479,1364400480,1364400481,1366628191,1366628190,1366628189,1366628188,1364417303,1364417304,1364417305,1366628187,1366627937,1366627936,1366627935,1364417559,1364417560,1364417561,1366627934,1366627933,1366627932,1366627931,1364417815,1364417816,1364417817,1366627681,1366627680,1366627679,1366627678,1364418071,1364418072,1364418073,1366627677,1366627676,1366627675,1366627425,1364418327,1364418328,1364418329,1366627424,1366627423,1366627422,1366627421,1364418583,1364418584,1364418585,1366627420,1366627419,1366627169,1366627168,1364418839,1364418840,1364418841,1364464475,1364464476,1364464477,1364464478,1364464479,1364464480,1364464481,1364464731,1364464732,1364464733,1364464734,1364464735,1364464736,1364464737,1364464987,1364464988,1364464989,1364464990,1364464991,1364464992,1364464993,1364465243,1364465244,1364465245,1364465246,1364465247,1364465248,1364465249,1364465499,1364465500,1364465501,1364465502,1364465503,1364465504,1364465505,1364465755,1364465756,1364465757,1364465758,1364465759,1364465760,1364465761,1364466011,1364466012,1364466013,1364466014,1364466015,1364466016,1364466017,1366627167,1366627166,1366627165,1366627164,1364482839,1364482840,1364482841,1366627163,1366581529,1366581528,1366581527,1364483095,1364483096,1364483097,1366581526,1366581525,1366581524,1366581523,1364483351,1364483352,1364483353,1366581273,1366581272,1366581271,1366581270,1364483607,1364483608,1364483609,1366581269,1366581268,1366581267,1366581017,1364483863,1364483864,1364483865,1366581016,1366581015,1366581014,1366581013,1364484119,1364484120,1364484121,1366581012,1366581011,1366580761,1366580760,1364484375,1364484376,1364484377,1364530011,1364530012,1364530013,1364530014,1364530015,1364530016,1364530017,1364530267,1364530268,1364530269,1364530270,1364530271,1364530272,1364530273,1364530523,1364530524,1364530525,1364530526,1364530527,1364530528,1364530529,1364530779,1364530780,1364530781,1364530782,1364530783,1364530784,1364530785,1364531035,1364531036,1364531037,1364531038,1364531039,1364531040,1364531041,1364531291,1364531292,1364531293,1364531294,1364531295,1364531296,1364531297,1364531547,1364531548,1364531549,1364531550,1364531551,1364531552,1364531553,1366580759,1366580758,1366580757,1366580756,1364548375,1364548376,1364548377,1366580755,1366580505,1366580504,1366580503,1364548631,1364548632,1364548633,1366580502,1366580501,1366580500,1366580499,1364548887,1364548888,1364548889,1366580249,1366580248,1366580247,1366580246,1364549143,1364549144,1364549145,1366580245,1366580244,1366580243,1366579993,1364549399,1364549400,1364549401,1366579992,1366579991,1366579990,1366579989,1364549655,1364549656,1364549657,1366579988,1366579987,1366563169,1366563168,1364549911,1364549912,1364549913,1364595547,1364595548,1364595549,1364595550,1364595551,1364595552,1364595553,1364595803,1364595804,1364595805,1364595806,1364595807,1364595808,1364595809,1364596059,1364596060,1364596061,1364596062,1364596063,1364596064,1364596065,1364596315,1364596316,1364596317,1364596318,1364596319,1364596320,1364596321,1364596571,1364596572,1364596573,1364596574,1364596575,1364596576,1364596577,1364596827,1364596828,1364596829,1364596830,1364596831,1364596832,1364596833,1364597083,1364597084,1364597085,1364597086,1364597087,1364597088,1364597089,1366563167,1366563166,1366563165,1366563164,1364613911,1364613912,1364613913,1366563163,1366562913,1366562912,1366562911,1364614167,1364614168,1364614169,1366562910,1366562909,1366562908,1366562907,1364614423,1364614424,1364614425,1366562657,1366562656,1366562655,1366562654,1364614679,1364614680,1364614681,1366562653,1366562652,1366562651,1366562401,1364614935,1364614936,1364614937,1366562400,1366562399,1366562398,1366562397,1364615191,1364615192,1364615193,1366562396,1366562395,1366562145,1366562144,1364615447,1364615448,1364615449,1364661083,1364661084,1364661085,1364661086,1364661087,1364661088,1364661089,1364661339,1364661340,1364661341,1364661342,1364661343,1364661344,1364661345,1364661595,1364661596,1364661597,1364661598,1364661599,1364661600,1364661601,1364661851,1364661852,1364661853,1364661854,1364661855,1364661856,1364661857,1364662107,1364662108,1364662109,1364662110,1364662111,1364662112,1364662113,1364662363,1364662364,1364662365,1364662366,1364662367,1364662368,1364662369,1364662619,1364662620,1364662621,1364662622,1364662623,1364662624,1364662625,1366562143,1366562142,1366562141,1366562140,1364679447,1364679448,1364679449,1366562139,1366561889,1366561888,1366561887,1364679703,1364679704,1364679705,1366561886,1366561885,1366561884,1366561883,1364679959,1364679960,1364679961,1366561633,1366561632,1366561631,1366561630,1364680215,1364680216,1364680217,1366561629,1366561628,1366561627,1366515993,1364680471,1364680472,1364680473,1366515992,1366515991,1366515990,1366515989,1364680727,1364680728,1364680729,1366515988,1366515987,1366515737,1366515736,1364680983,1364680984,1364680985,1364726619,1364726620,1364726621,1364726622,1364726623,1364726624,1364726625,1364726875,1364726876,1364726877,1364726878,1364726879,1364726880,1364726881,1364727131,1364727132,1364727133,1364727134,1364727135,1364727136,1364727137,1364727387,1364727388,1364727389,1364727390,1364727391,1364727392,1364727393,1364727643,1364727644,1364727645,1364727646,1364727647,1364727648,1364727649,1364727899,1364727900,1364727901,1364727902,1364727903,1364727904,1364727905,1364728155,1364728156,1364728157,1364728158,1364728159,1364728160,1364728161,1366515735,1366515734,1366515733,1366515732,1364744983,1364744984,1364744985,1366515731,1366515481,1366515480,1366515479,1364745239,1364745240,1364745241,1366515478,1366515477,1366515476,1366515475,1364745495,1364745496,1364745497,1366515225,1366515224,1366515223,1366515222,1364745751,1364745752,1364745753,1366515221,1366515220,1366515219,1366514969,1364746007,1364746008,1364746009,1366514968,1366514967,1366514966,1366514965,1364746263,1364746264,1364746265,1366514964,1366514963,1366514713,1366514712,1364746519,1364746520,1364746521,1364792155,1364792156,1364792157,1364792158,1364792159,1364792160,1364792161,1364792411,1364792412,1364792413,1364792414,1364792415,1364792416,1364792417,1364792667,1364792668,1364792669,1364792670,1364792671,1364792672,1364792673,1364792923,1364792924,1364792925,1364792926,1364792927,1364792928,1364792929,1364793179,1364793180,1364793181,1364793182,1364793183,1364793184,1364793185,1364793435,1364793436,1364793437,1364793438,1364793439,1364793440,1364793441,1364793691,1364793692,1364793693,1364793694,1364793695,1364793696,1364793697,1366514711,1366514710,1366514709,1366514708,1364810519,1364810520,1364810521,1366514707,1366514457,1366514456,1366514455,1364810775,1364810776,1364810777,1366514454,1366514453,1366514452,1366514451,1364811031,1364811032,1364811033,1366497633,1366497632,1366497631,1366497630,1364811287,1364811288,1364811289,1366497629,1366497628,1366497627,1366497377,1364811543,1364811544,1364811545,1366497376,1366497375,1366497374,1366497373,1364811799,1364811800,1364811801,1366497372,1366497371,1366497121,1366497120,1364812055,1364812056,1364812057,1364857691,1364857692,1364857693,1364857694,1364857695,1364857696,1364857697,1364857947,1364857948,1364857949,1364857950,1364857951,1364857952,1364857953,1364858203,1364858204,1364858205,1364858206,1364858207,1364858208,1364858209,1364858459,1364858460,1364858461,1364858462,1364858463,1364858464,1364858465,1364858715,1364858716,1364858717,1364858718,1364858719,1364858720,1364858721,1364858971,1364858972,1364858973,1364858974,1364858975,1364858976,1364858977,1364859227,1364859228,1364859229,1364859230,1364859231,1364859232,1364859233,1366497119,1366497118,1366497117,1366497116,1364876055,1364876056,1364876057,1366497115,1366496865,1366496864,1366496863,1364876311,1364876312,1364876313,1366496862,1366496861,1366496860,1366496859,1364876567,1364876568,1364876569,1366496609,1366496608,1366496607,1366496606,1364876823,1364876824,1364876825,1366496605,1366496604,1366496603,1366496353,1364877079,1364877080,1364877081,1366496352,1366496351,1366496350,1366496349,1364877335,1364877336,1364877337,1366496348,1366496347,1366496097,1366496096,1364877591,1364877592,1364877593,1364923227,1364923228,1364923229,1364923230,1364923231,1364923232,1364923233,1364923483,1364923484,1364923485,1364923486,1364923487,1364923488,1364923489,1364923739,1364923740,1364923741,1364923742,1364923743,1364923744,1364923745,1364923995,1364923996,1364923997,1364923998,1364923999,1364924000,1364924001,1364924251,1364924252,1364924253,1364924254,1364924255,1364924256,1364924257,1364924507,1364924508,1364924509,1364924510,1364924511,1364924512,1364924513,1364924763,1364924764,1364924765,1364924766,1364924767,1364924768,1364924769,1366496095,1366496094,1366496093,1366496092,1364941591,1364941592,1364941593,1366496091,1366450457,1366450456,1366450455,1364941847,1364941848,1364941849,1366450454,1366450453,1366450452,1366450451,1364942103,1364942104,1364942105,1366450201,1366450200,1366450199,1366450198,1364942359,1364942360,1364942361,1366450197,1366450196,1366450195,1366449945,1364942615,1364942616,1364942617,1366449944,1366449943,1366449942,1366449941,1364942871,1364942872,1364942873,1366449940,1366449939,1366449689,1366449688,1364943127,1364943128,1364943129,1364988763,1364988764,1364988765,1364988766,1364988767,1364988768,1364988769,1364989019,1364989020,1364989021,1364989022,1364989023,1364989024,1364989025,1364989275,1364989276,1364989277,1364989278,1364989279,1364989280,1364989281,1364989531,1364989532,1364989533,1364989534,1364989535,1364989536,1364989537,1364989787,1364989788,1364989789,1364989790,1364989791,1364989792,1364989793,1364990043,1364990044,1364990045,1364990046,1364990047,1364990048,1364990049,1364990299,1364990300,1364990301,1364990302,1364990303,1364990304,1364990305,1366449687,1366449686,1366449685,1366449684,1365007127,1365007128,1365007129,1366449683,1366449433,1366449432,1366449431,1365007383,1365007384,1365007385,1366449430,1366449429,1366449428,1366449427,1365007639,1365007640,1365007641,1366449177,1366449176,1366449175,1366449174,1365007895,1365007896,1365007897,1366449173,1366449172,1366449171,1366448921,1365008151,1365008152,1365008153,1366448920,1366448919,1366448918,1366448917,1365008407,1365008408,1365008409,1366448916,1366448915,1366432097,1366432096,1365008663,1365008664,1365008665,1365054299,1365054300,1365054301,1365054302,1365054303,1365054304,1365054305,1365054555,1365054556,1365054557,1365054558,1365054559,1365054560,1365054561,1365054811,1365054812,1365054813,1365054814,1365054815,1365054816,1365054817,1365055067,1365055068,1365055069,1365055070,1365055071,1365055072,1365055073,1365055323,1365055324,1365055325,1365055326,1365055327,1365055328,1365055329,1365055579,1365055580,1365055581,1365055582,1365055583,1365055584,1365055585,1365055835,1365055836,1365055837,1365055838,1365055839,1365055840,1365055841,1366432095,1366432094,1366432093,1366432092,1365072663,1365072664,1365072665,1366432091,1366431841,1366431840,1366431839,1365072919,1365072920,1365072921,1366431838,1366431837,1366431836,1366431835,1365073175,1365073176,1365073177,1366431585,1366431584,1366431583,1366431582,1365073431,1365073432,1365073433,1366431581,1366431580,1366431579,1366431329,1365073687,1365073688,1365073689,1366431328,1366431327,1366431326,1366431325,1365073943,1365073944,1365073945,1366431324,1366431323,1366431073,1366431072,1365074199,1365074200,1365074201,1365119835,1365119836,1365119837,1365119838,1365119839,1365119840,1365119841,1365120091,1365120092,1365120093,1365120094,1365120095,1365120096,1365120097,1365120347,1365120348,1365120349,1365120350,1365120351,1365120352,1365120353,1365120603,1365120604,1365120605,1365120606,1365120607,1365120608,1365120609,1365120859,1365120860,1365120861,1365120862,1365120863,1365120864,1365120865,1365121115,1365121116,1365121117,1365121118,1365121119,1365121120,1365121121,1365121371,1365121372,1365121373,1365121374,1365121375,1365121376,1365121377,1366431071,1366431070,1366431069,1366431068,1365138199,1365138200,1365138201,1366431067,1366430817,1366430816,1366430815,1365138455,1365138456,1365138457,1366430814,1366430813,1366430812,1366430811,1365138711,1365138712,1365138713,1366430561,1366430560,1366430559,1366430558,1365138967,1365138968,1365138969,1366430557,1366430556,1366430555,1366384921,1365139223,1365139224,1365139225,1366384920,1366384919,1366384918,1366384917,1365139479,1365139480,1365139481,1366384916,1366384915,1366384665,1366384664,1365139735,1365139736,1365139737,1365185371,1365185372,1365185373,1365185374,1365185375,1365185376,1365185377,1365185627,1365185628,1365185629,1365185630,1365185631,1365185632,1365185633,1365185883,1365185884,1365185885,1365185886,1365185887,1365185888,1365185889,1365186139,1365186140,1365186141,1365186142,1365186143,1365186144,1365186145,1365186395,1365186396,1365186397,1365186398,1365186399,1365186400,1365186401,1365186651,1365186652,1365186653,1365186654,1365186655,1365186656,1365186657,1365186907,1365186908,1365186909,1365186910,1365186911,1365186912,1365186913,1366384663,1366384662,1366384661,1366384660,1365203735,1365203736,1365203737,1366384659,1366384409,1366384408,1366384407,1365203991,1365203992,1365203993,1366384406,1366384405,1366384404,1366384403,1365204247,1365204248,1365204249,1366384153,1366384152,1366384151,1366384150,1365204503,1365204504,1365204505,1366384149,1366384148,1366384147,1366383897,1365204759,1365204760,1365204761,1366383896,1366383895,1366383894,1366383893,1365205015,1365205016,1365205017,1366383892,1366383891,1366383641,1366383640,1365205271,1365205272,1365205273,1365250907,1365250908,1365250909,1365250910,1365250911,1365250912,1365250913,1365251163,1365251164,1365251165,1365251166,1365251167,1365251168,1365251169,1365251419,1365251420,1365251421,1365251422,1365251423,1365251424,1365251425,1365251675,1365251676,1365251677,1365251678,1365251679,1365251680,1365251681,1365251931,1365251932,1365251933,1365251934,1365251935,1365251936,1365251937,1365252187,1365252188,1365252189,1365252190,1365252191,1365252192,1365252193,1365252443,1365252444,1365252445,1365252446,1365252447,1365252448,1365252449,1366383639,1366383638,1366383637,1366383636,1365269271,1365269272,1365269273,1366383635,1366383385,1366383384,1366383383,1365269527,1365269528,1365269529,1366383382,1366383381,1366383380,1366383379,1365269783,1365269784,1365269785,1366366561,1366366560,1366366559,1366366558,1365270039,1365270040,1365270041,1366366557,1366366556,1366366555,1366366305,1365270295,1365270296,1365270297,1366366304,1366366303,1366366302,1366366301,1365270551,1365270552,1365270553,1366366300,1366366299,1366366049,1366366048,1365270807,1365270808,1365270809,1365316443,1365316444,1365316445,1365316446,1365316447,1365316448,1365316449,1365316699,1365316700,1365316701,1365316702,1365316703,1365316704,1365316705,1365316955,1365316956,1365316957,1365316958,1365316959,1365316960,1365316961,1365317211,1365317212,1365317213,1365317214,1365317215,1365317216,1365317217,1365317467,1365317468,1365317469,1365317470,1365317471,1365317472,1365317473,1365317723,1365317724,1365317725,1365317726,1365317727,1365317728,1365317729,1365317979,1365317980,1365317981,1365317982,1365317983,1365317984,1365317985,1366366047,1366366046,1366366045,1366366044,1365334807,1365334808,1365334809,1366366043,1366365793,1366365792,1366365791,1365335063,1365335064,1365335065,1366365790,1366365789,1366365788,1366365787,1365335319,1365335320,1365335321,1366365537,1366365536,1366365535,1366365534,1365335575,1365335576,1365335577,1366365533,1366365532,1366365531,1366365281,1365335831,1365335832,1365335833,1366365280,1366365279,1366365278,1366365277,1365336087,1365336088,1365336089,1366365276,1366365275,1366365025,1366365024,1365336343,1365336344,1365336345,1365381979,1365381980,1365381981,1365381982,1365381983,1365381984,1365381985,1365382235,1365382236,1365382237,1365382238,1365382239,1365382240,1365382241,1365382491,1365382492,1365382493,1365382494,1365382495,1365382496,1365382497,1365382747,1365382748,1365382749,1365382750,1365382751,1365382752,1365382753,1365383003,1365383004,1365383005,1365383006,1365383007,1365383008,1365383009,1365383259,1365383260,1365383261,1365383262,1365383263,1365383264,1365383265,1365383515,1365383516,1365383517,1365383518,1365383519,1365383520,1365383521,1366365023,1366365022,1366365021,1366365020,1365400343,1365400344,1365400345,1366365019,1366319385,1366319384,1366319383,1365400599,1365400600,1365400601,1366319129,1366319128,1366319127,1366318873,1365400855,1365400856,1365400857,1366318872,1366318871,1366318617,1366318616,1365401111,1365401112,1365401113,1366318615,1366318361,1366318360,1366318359,1365401367,1365401368,1365401369,1366318105,1366318104,1366318103,1366317849,1365401623,1365401624,1365401625,1366317848,1366317847,1366301025,1366301024,1365401879,1365401880,1365401881,1365447515,1365447516,1365447517,1365447518,1365447519,1365447520,1365447521,1365447771,1365447772,1365447773,1365447774,1365447775,1365447776,1365447777,1365448027,1365448028,1365448029,1365448030,1365448031,1365448032,1365448033,1365448283,1365448284,1365448285,1365448286,1365448287,1365448288,1365448289,1365448539,1365448540,1365448541,1365448542,1365448543,1365448544,1365448545,1365448795,1365448796,1365448797,1365448798,1365448799,1365448800,1365448801,1365449051,1365449052,1365449053,1365449054,1365449055,1365449056,1365449057,1366301023,1366301022,1366301021,1366301020,1365465879,1365465880,1365465881,1366301019,1366300769,1366300768,1366300767,1365466135,1365466136,1365466137,1366300766,1366300765,1366300764,1366300763,1365466391,1365466392,1365466393,1366300513,1366300512,1366300511,1366300510,1365466647,1365466648,1365466649,1366300509,1366300508,1366300507,1366300257,1365466903,1365466904,1365466905,1366300256,1366300255,1366300254,1366300253,1365467159,1365467160,1365467161,1366300252,1366300251,1366300001,1366300000,1365467415,1365467416,1365467417,1365513051,1365513052,1365513053,1365513054,1365513055,1365513056,1365513057,1365513307,1365513308,1365513309,1365513310,1365513311,1365513312,1365513313,1365513563,1365513564,1365513565,1365513566,1365513567,1365513568,1365513569,1365513819,1365513820,1365513821,1365513822,1365513823,1365513824,1365513825,1365514075,1365514076,1365514077,1365514078,1365514079,1365514080,1365514081,1365514331,1365514332,1365514333,1365514334,1365514335,1365514336,1365514337,1365514587,1365514588,1365514589,1365514590,1365514591,1365514592,1365514593,1366299999,1366299998,1366299997,1366299996,1365531415,1365531416,1365531417,1366299995,1366299745,1366299744,1366299743,1365531671,1365531672,1365531673,1366299742,1366299741,1366299740,1366299739,1365531927,1365531928,1365531929,1366299489,1366299488,1366299487,1366299486,1365532183,1365532184,1365532185,1366299485,1366299484,1366299483,1366253849,1365532439,1365532440,1365532441,1366253848,1366253847,1366253593,1366253592,1365532695,1365532696,1365532697,1366253591,1366253337,1366253336,1366253335,1365532951,1365532952,1365532953,1365578587,1365578588,1365578589,1365578590,1365578591,1365578592,1365578593,1365578843,1365578844,1365578845,1365578846,1365578847,1365578848,1365578849,1365579099,1365579100,1365579101,1365579102,1365579103,1365579104,1365579105,1365579355,1365579356,1365579357,1365579358,1365579359,1365579360,1365579361,1365579611,1365579612,1365579613,1365579614,1365579615,1365579616,1365579617,1365579867,1365579868,1365579869,1365579870,1365579871,1365579872,1365579873,1365580123,1365580124,1365580125,1365580126,1365580127,1365580128,1365580129,1366253081,1366253080,1366253079,1366252825,1365596951,1365596952,1365596953,1366252824,1366252823,1366252569,1366252568,1365597207,1365597208,1365597209,1366252567,1366252313,1366252312,1366252311,1365597463,1365597464,1365597465,1366235489,1366235488,1366235487,1366235486,1365597719,1365597720,1365597721,1366235485,1366235484,1366235483,1366235233,1365597975,1365597976,1365597977,1366235232,1366235231,1366235230,1366235229,1365598231,1365598232,1365598233,1366235228,1366235227,1366234977,1366234976,1365598487,1365598488,1365598489,1365644123,1365644124,1365644125,1365644126,1365644127,1365644128,1365644129,1365644379,1365644380,1365644381,1365644382,1365644383,1365644384,1365644385,1365644635,1365644636,1365644637,1365644638,1365644639,1365644640,1365644641,1365644891,1365644892,1365644893,1365644894,1365644895,1365644896,1365644897,1365645147,1365645148,1365645149,1365645150,1365645151,1365645152,1365645153,1365645403,1365645404,1365645405,1365645406,1365645407,1365645408,1365645409,1365645659,1365645660,1365645661,1365645662,1365645663,1365645664,1365645665,1366234975,1366234974,1366234973,1366234972,1365662487,1365662488,1365662489,1366234971,1366234721,1366234720,1366234719,1365662743,1365662744,1365662745,1366234718,1366234717,1366234716,1366234715,1365662999,1365663000,1365663001,1366234465,1366234464,1366234463,1366234462,1365663255,1365663256,1365663257,1366234461,1366234460,1366234459,1366234209,1365663511,1365663512,1365663513,1366234208,1366234207,1366234206,1366234205,1365663767,1365663768,1365663769,1366234204,1366234203,1366233953,1366233952,1365664023,1365664024,1365664025,1365709659,1365709660,1365709661,1365709662,1365709663,1365709664,1365709665,1365709915,1365709916,1365709917,1365709918,1365709919,1365709920,1365709921,1365710171,1365710172,1365710173,1365710174,1365710175,1365710176,1365710177,1365710427,1365710428,1365710429,1365710430,1365710431,1365710432,1365710433,1365710683,1365710684,1365710685,1365710686,1365710687,1365710688,1365710689,1365710939,1365710940,1365710941,1365710942,1365710943,1365710944,1365710945,1365711195,1365711196,1365711197,1365711198,1365711199,1365711200,1365711201,1366233951,1366233950,1366233949,1366233948,1365728023,1365728024,1365728025,1366233947,1366188313,1366188312,1366188311,1365728279,1365728280,1365728281,1366188057,1366188056,1366188055,1366187801,1365728535,1365728536,1365728537,1366187800,1366187799,1366187545,1366187544,1365728791,1365728792,1365728793,1366187543,1366187289,1366187288,1366187287,1365729047,1365729048,1365729049,1366187033,1366187032,1366187031,1366186777,1365729303,1365729304,1365729305,1366186776,1366186775,1366169953,1366169952,1365729559,1365729560,1365729561,1365775195,1365775196,1365775197,1365775198,1365775199,1365775200,1365775201,1365775451,1365775452,1365775453,1365775454,1365775455,1365775456,1365775457,1365775707,1365775708,1365775709,1365775710,1365775711,1365775712,1365775713,1365775963,1365775964,1365775965,1365775966,1365775967,1365775968,1365775969,1365776219,1365776220,1365776221,1365776222,1365776223,1365776224,1365776225,1365776475,1365776476,1365776477,1365776478,1365776479,1365776480,1365776481,1365776731,1365776732,1365776733,1365776734,1365776735,1365776736,1365776737,1366169951,1366169950,1366169949,1366169948,1365793559,1365793560,1365793561,1366169947,1366169697,1366169696,1366169695,1365793815,1365793816,1365793817,1366169694,1366169693,1366169692,1366169691,1365794071,1365794072,1365794073,1366169441,1366169440,1366169439,1366169438,1365794327,1365794328,1365794329,1366169437,1366169436,1366169435,1366169185,1365794583,1365794584,1365794585,1366169184,1366169183,1366169182,1366169181,1365794839,1365794840,1365794841,1366169180,1366169179,1366168929,1366168928,1365795095,1365795096,1365795097,1365840731,1365840732,1365840733,1365840734,1365840735,1365840736,1365840737,1365840987,1365840988,1365840989,1365840990,1365840991,1365840992,1365840993,1365841243,1365841244,1365841245,1365841246,1365841247,1365841248,1365841249,1365841499,1365841500,1365841501,1365841502,1365841503,1365841504,1365841505,1365841755,1365841756,1365841757,1365841758,1365841759,1365841760,1365841761,1365842011,1365842012,1365842013,1365842014,1365842015,1365842016,1365842017,1365842267,1365842268,1365842269,1365842270,1365842271,1365842272,1365842273,1366168927,1366168926,1366168925,1366168924,1365859095,1365859096,1365859097,1366168923,1366168673,1366168672,1366168671,1365859351,1365859352,1365859353,1366168670,1366168669,1366168668,1366168667,1365859607,1365859608,1365859609,1366168417,1366168416,1366168415,1366168414,1365859863,1365859864,1365859865,1366168413,1366168412,1366168411,1366122777,1365860119,1365860120,1365860121,1366122776,1366122775,1366122521,1366122520,1365860375,1365860376,1365860377,1366122519,1366122265,1366122264,1366122263,1365860631,1365860632,1365860633,1365906267,1365906268,1365906269,1365906270,1365906271,1365906272,1365906273,1365906523,1365906524,1365906525,1365906526,1365906527,1365906528,1365906529,1365906779,1365906780,1365906781,1365906782,1365906783,1365906784,1365906785,1365907035,1365907036,1365907037,1365907038,1365907039,1365907040,1365907041,1365907291,1365907292,1365907293,1365907294,1365907295,1365907296,1365907297,1365907547,1365907548,1365907549,1365907550,1365907551,1365907552,1365907553,1365907803,1365907804,1365907805,1365907806,1365907807,1365907808,1365907809,1366122009,1366122008,1366122007,1366121753,1365924631,1365924632,1365924633,1366121752,1366121751,1366121497,1366121496,1365924887,1365924888,1365924889,1366121495,1366121241,1366121240,1366121239,1365925143,1365925144,1365925145,1366104417,1366104416,1366104415,1366104414,1365925399,1365925400,1365925401,1366104413,1366104412,1366104411,1366104161,1365925655,1365925656,1365925657,1366104160,1366104159,1366104158,1366104157,1365925911,1365925912,1365925913,1366104156,1366104155,1366103905,1366103904,1365926167,1365926168,1365926169,1365971803,1365971804,1365971805,1365971806,1365971807,1365971808,1365971809,1365972059,1365972060,1365972061,1365972062,1365972063,1365972064,1365972065,1365972315,1365972316,1365972317,1365972318,1365972319,1365972320,1365972321,1365972571,1365972572,1365972573,1365972574,1365972575,1365972576,1365972577,1365972827,1365972828,1365972829,1365972830,1365972831,1365972832,1365972833,1365973083,1365973084,1365973085,1365973086,1365973087,1365973088,1365973089,1365973339,1365973340,1365973341,1365973342,1365973343,1365973344,1365973345,1366103903,1366103902,1366103901,1366103900,1365990167,1365990168,1365990169,1366103899,1366103649,1366103648,1366103647,1365990423,1365990424,1365990425,1366103646,1366103645,1366103644,1366103643,1365990679,1365990680,1365990681,1366103393,1366103392,1366103391,1366103390,1365990935,1365990936,1365990937,1366103389,1366103388,1366103387,1366103137,1365991191,1365991192,1365991193,1366103136,1366103135,1366103134,1366103133,1365991447,1365991448,1365991449,1366103132,1366103131,1366102881,1366102880,1365991703,1365991704,1365991705,1366037339,1366037340,1366037341,1366037342,1366037343,1366037344,1366037345,1366037595,1366037596,1366037597,1366037598,1366037599,1366037600,1366037601,1366037851,1366037852,1366037853,1366037854,1366037855,1366037856,1366037857,1366038107,1366038108,1366038109,1366038110,1366038111,1366038112,1366038113,1366038363,1366038364,1366038365,1366038366,1366038367,1366038368,1366038369,1366038619,1366038620,1366038621,1366038622,1366038623,1366038624,1366038625,1366038875,1366038876,1366038877,1366038878,1366038879,1366038880,1366038881,1366102879,1366102878,1366102877,1366102876,1366055703,1366055704,1366055705,1366102875,1366057241,1366057240,1366057239,1366055959,1366055960,1366055961,1366056985,1366056984,1366056983,1366056729,1366056215,1366056216,1366056217,1366056728,1366056727,1366056473,1366056472,1366056471,1358959122,1358959123,1358959124,1358959125,1358959126,1358959378,1358959379,1358959380,1358959381,1358959382,1358959634,1358959635,1358959636,1358959637,1358959638,1358959890,1358959891,1358959892,1358959893,1358959894,1358960146,1358960147,1358960148,1358960149,1358960150,1358960402,1358960403,1358960404,1358960405,1358960406,1358960658,1358960659,1358960660,1358960661,1358960662,1358960914,1358960915,1358960916,1358960917,1358960918,1358961170,1358961171,1358961172,1358961173,1358961174,1358961426,1358961427,1358961428,1358961429,1358961430,1358961682,1358961683,1358961684,1358961685,1358961686,1358961938,1358961939,1358961940,1358961941,1358961942,1358962194,1358962195,1358962196,1358962197,1358962198,1358962450,1358962451,1358962452,1358962453,1358962454,1358962706,1358962707,1358962708,1358962709,1358962710,1358962962,1358962963,1358962964,1358962965,1358962966,1358963218,1358963219,1358963220,1358963221,1358963222,1358963474,1358963475,1358963476,1358963477,1358963478,1358963730,1358963731,1358963732,1358963733,1358963734,1358963986,1358963987,1358963988,1358963989,1358963990,1358964242,1358964243,1358964244,1358964245,1358964246,1358964498,1358964499,1358964500,1358964501,1358964502,1358964754,1358964755,1358964756,1358964757,1358964758,1358965010,1358965011,1358965012,1358965013,1358965014,1358965266,1358965267,1358965268,1358965269,1358965270,1358965522,1358965523,1358965524,1358965525,1358965526,1358965778,1358965779,1358965780,1358965781,1358965782,1358966034,1358966035,1358966036,1358966037,1358966038,1358966290,1358966291,1358966292,1358966293,1358966294,1358966546,1358966547,1358966548,1358966549,1358966550,1358966802,1358966803,1358966804,1358966805,1358966806,1358967058,1358967059,1358967060,1358967061,1358967062,1358967314,1358967315,1358967316,1358967317,1358967318,1358967570,1358967571,1358967572,1358967573,1358967574,1358967826,1358967827,1358967828,1358967829,1358967830,1358968082,1358968083,1358968084,1358968085,1358968086,1358968338,1358968339,1358968340,1358968341,1358968342,1358968594,1358968595,1358968596,1358968597,1358968598,1358968850,1358968851,1358968852,1358968853,1358968854,1358969106,1358969107,1358969108,1358969109,1358969110,1358969362,1358969363,1358969364,1358969365,1358969366,1358969618,1358969619,1358969620,1358969621,1358969622,1358969874,1358969875,1358969876,1358969877,1358969878,1358970130,1358970131,1358970132,1358970133,1358970134,1358970386,1358970387,1358970388,1358970389,1358970390,1358970642,1358970643,1358970644,1358970645,1358970646,1358970898,1358970899,1358970900,1358970901,1358970902,1358971154,1358971155,1358971156,1358971157,1358971158,1358971410,1358971411,1358971412,1358971413,1358971414,1358971666,1358971667,1358971668,1358971669,1358971670,1358971922,1358971923,1358971924,1358971925,1358971926,1358972178,1358972179,1358972180,1358972181,1358972182,1358972434,1358972435,1358972436,1358972437,1358972438,1358972690,1358972691,1358972692,1358972693,1358972694,1358972946,1358972947,1358972948,1358972949,1358972950,1358973202,1358973203,1358973204,1358973205,1358973206,1358973458,1358973459,1358973460,1358973461,1358973462,1358973714,1358973715,1358973716,1358973717,1358973718,1358973970,1358973971,1358973972,1358973973,1358973974,1358974226,1358974227,1358974228,1358974229,1358974230,1358974482,1358974483,1358974484,1358974485,1358974486,1358974738,1358974739,1358974740,1358974741,1358974742,1358974994,1358974995,1358974996,1358974997,1358974998,1358975250,1358975251,1358975252,1358975253,1358975254,1358975506,1358975507,1358975508,1358975509,1358975510,1358975762,1358975763,1358975764,1358975765,1358975766,1358976018,1358976019,1358976020,1358976021,1358976022,1358976274,1358976275,1358976276,1358976277,1358976278,1358976530,1358976531,1358976532,1358976533,1358976534,1358976786,1358976787,1358976788,1358976789,1358976790,1358977042,1358977043,1358977044,1358977045,1358977046,1358977298,1358977299,1358977300,1358977301,1358977302,1358977554,1358977555,1358977556,1358977557,1358977558,1358977810,1358977811,1358977812,1358977813,1358977814,1358978066,1358978067,1358978068,1358978069,1358978070,1358978322,1358978323,1358978324,1358978325,1358978326,1358978578,1358978579,1358978580,1358978581,1358978582,1358978834,1358978835,1358978836,1358978837,1358978838,1358979090,1358979091,1358979092,1358979093,1358979094,1358979346,1358979347,1358979348,1358979349,1358979350,1358979602,1358979603,1358979604,1358979605,1358979606,1359024658,1359024659,1359024660,1359024661,1359024662,1359024914,1526797075,1526797076,1526797077,1526797078,1359025170,1526797331,1526797332,1526797333,1526797334,1359025426,1526797587,1526797588,1526797589,1526797590,1359025682,1526797843,1526797844,1526797845,1526797846,1359025938,1526798099,1526798100,1526798101,1526798102,1359026194,1526798355,1526798356,1526798357,1526798358,1359026450,1526798611,1526798612,1526798613,1526798614,1359026706,1526798867,1526798868,1526798869,1526798870,1359026962,1526799123,1526799124,1526799125,1526799126,1359027218,1526799379,1526799380,1526799381,1526799382,1359027474,1526799635,1526799636,1526799637,1526799638,1359027730,1526799891,1526799892,1526799893,1526799894,1359027986,1526800147,1526800148,1526800149,1526800150,1359028242,1526800403,1526800404,1526800405,1526800406,1359028498,1526800659,1526800660,1526800661,1526800662,1359028754,1526800915,1526800916,1526800917,1526800918,1359029010,1526801171,1526801172,1526801173,1526801174,1359029266,1526801427,1526801428,1526801429,1526801430,1359029522,1526801683,1526801684,1526801685,1526801686,1359029778,1526801939,1526801940,1526801941,1526801942,1359030034,1526802195,1526802196,1526802197,1526802198,1359030290,1526802451,1526802452,1526802453,1526802454,1359030546,1526802707,1526802708,1526802709,1526802710,1359030802,1526802963,1526802964,1526802965,1526802966,1359031058,1526803219,1526803220,1526803221,1526803222,1359031314,1526803475,1526803476,1526803477,1526803478,1359031570,1526803731,1526803732,1526803733,1526803734,1359031826,1526803987,1526803988,1526803989,1526803990,1359032082,1526804243,1526804244,1526804245,1526804246,1359032338,1526804499,1526804500,1526804501,1526804502,1359032594,1526804755,1526804756,1526804757,1526804758,1359032850,1526805011,1526805012,1526805013,1526805014,1359033106,1526805267,1526805268,1526805269,1526805270,1359033362,1526805523,1526805524,1526805525,1526805526,1359033618,1526805779,1526805780,1526805781,1526805782,1359033874,1526806035,1526806036,1526806037,1526806038,1359034130,1526806291,1526806292,1526806293,1526806294,1359034386,1526806547,1526806548,1526806549,1526806550,1359034642,1526806803,1526806804,1526806805,1526806806,1359034898,1526807059,1526807060,1526807061,1526807062,1359035154,1526807315,1526807316,1526807317,1526807318,1359035410,1526807571,1526807572,1526807573,1526807574,1359035666,1526807827,1526807828,1526807829,1526807830,1359035922,1526808083,1526808084,1526808085,1526808086,1359036178,1526808339,1526808340,1526808341,1526808342,1359036434,1526808595,1526808596,1526808597,1526808598,1359036690,1526808851,1526808852,1526808853,1526808854,1359036946,1526809107,1526809108,1526809109,1526809110,1359037202,1526809363,1526809364,1526809365,1526809366,1359037458,1526809619,1526809620,1526809621,1526809622,1359037714,1526809875,1526809876,1526809877,1526809878,1359037970,1526810131,1526810132,1526810133,1526810134,1359038226,1526810387,1526810388,1526810389,1526810390,1359038482,1526810643,1526810644,1526810645,1526810646,1359038738,1526810899,1526810900,1526810901,1526810902,1359038994,1526811155,1526811156,1526811157,1526811158,1359039250,1526811411,1526811412,1526811413,1526811414,1359039506,1526811667,1526811668,1526811669,1526811670,1359039762,1526811923,1526811924,1526811925,1526811926,1359040018,1526812179,1526812180,1526812181,1526812182,1359040274,1526812435,1526812436,1526812437,1526812438,1359040530,1526812691,1526812692,1526812693,1526812694,1359040786,1526812947,1526812948,1526812949,1526812950,1359041042,1526813203,1526813204,1526813205,1526813206,1359041298,1526813459,1526813460,1526813461,1526813462,1359041554,1526813715,1526813716,1526813717,1526813718,1359041810,1526813971,1526813972,1526813973,1526813974,1359042066,1526814227,1526814228,1526814229,1526814230,1359042322,1526814483,1526814484,1526814485,1526814486,1359042578,1526814739,1526814740,1526814741,1526814742,1359042834,1526814995,1526814996,1526814997,1526814998,1359043090,1526815251,1526815252,1526815253,1526815254,1359043346,1526815507,1526815508,1526815509,1526815510,1359043602,1526815763,1526815764,1526815765,1526815766,1359043858,1526816019,1526816020,1526816021,1526816022,1359044114,1526816275,1526816276,1526816277,1526816278,1359044370,1526816531,1526816532,1526816533,1526816534,1359044626,1526816787,1526816788,1526816789,1526816790,1359044882,1526817043,1526817044,1526817045,1526817046,1359045138,1359045139,1359045140,1359045141,1359045142,1359090194,1359090195,1359090196,1359090197,1359090198,1359090450,1526862611,1526862612,1526862613,1526862614,1359090706,1526862867,1526862868,1526862869,1526862870,1359090962,1526863123,1526863124,1526863125,1526863126,1359091218,1526863379,1526863380,1526863381,1526863382,1359091474,1526863635,1526863636,1526863637,1526863638,1359091730,1526863891,1526863892,1526863893,1526863894,1359091986,1526864147,1526864148,1526864149,1526864150,1359092242,1526864403,1526864404,1526864405,1526864406,1359092498,1526864659,1526864660,1526864661,1526864662,1359092754,1526864915,1526864916,1526864917,1526864918,1359093010,1526865171,1526865172,1526865173,1526865174,1359093266,1526865427,1526865428,1526865429,1526865430,1359093522,1526865683,1526865684,1526865685,1526865686,1359093778,1526865939,1526865940,1526865941,1526865942,1359094034,1526866195,1526866196,1526866197,1526866198,1359094290,1526866451,1526866452,1526866453,1526866454,1359094546,1526866707,1526866708,1526866709,1526866710,1359094802,1526866963,1526866964,1526866965,1526866966,1359095058,1526867219,1526867220,1526867221,1526867222,1359095314,1526867475,1526867476,1526867477,1526867478,1359095570,1526867731,1526867732,1526867733,1526867734,1359095826,1526867987,1526867988,1526867989,1526867990,1359096082,1526868243,1526868244,1526868245,1526868246,1359096338,1526868499,1526868500,1526868501,1526868502,1359096594,1526868755,1526868756,1526868757,1526868758,1359096850,1526869011,1526869012,1526869013,1526869014,1359097106,1526869267,1526869268,1526869269,1526869270,1359097362,1526869523,1526869524,1526869525,1526869526,1526869778,1526869779,1526869780,1526869781,1526869782,1526870034,1526870035,1526870036,1526870037,1526870038,1526870290,1526870291,1526870292,1526870293,1526870294,1526870546,1526870547,1526870548,1526870549,1526870550,1526870802,1526870803,1526870804,1526870805,1526870806,1359098898,1526871059,1526871060,1526871061,1526871062,1359099154,1526871315,1526871316,1526871317,1526871318,1359099410,1526871571,1526871572,1526871573,1526871574,1359099666,1526871827,1526871828,1526871829,1526871830,1526872082,1526872083,1526872084,1526872085,1526872086,1526872338,1526872339,1526872340,1526872341,1526872342,1526872594,1526872595,1526872596,1526872597,1526872598,1526872850,1526872851,1526872852,1526872853,1526872854,1526873106,1526873107,1526873108,1526873109,1526873110,1359101202,1526873363,1526873364,1526873365,1526873366,1359101458,1526873619,1526873620,1526873621,1526873622,1359101714,1526873875,1526873876,1526873877,1526873878,1359101970,1526874131,1526874132,1526874133,1526874134,1526874386,1526874387,1526874388,1526874389,1526874390,1526874642,1526874643,1526874644,1526874645,1526874646,1526874898,1526874899,1526874900,1526874901,1526874902,1526875154,1526875155,1526875156,1526875157,1526875158,1526875410,1526875411,1526875412,1526875413,1526875414,1359103506,1526875667,1526875668,1526875669,1526875670,1359103762,1526875923,1526875924,1526875925,1526875926,1359104018,1526876179,1526876180,1526876181,1526876182,1359104274,1526876435,1526876436,1526876437,1526876438,1359104530,1526876691,1526876692,1526876693,1526876694,1359104786,1526876947,1526876948,1526876949,1526876950,1359105042,1526877203,1526877204,1526877205,1526877206,1359105298,1526877459,1526877460,1526877461,1526877462,1359105554,1526877715,1526877716,1526877717,1526877718,1359105810,1526877971,1526877972,1526877973,1526877974,1359106066,1526878227,1526878228,1526878229,1526878230,1359106322,1526878483,1526878484,1526878485,1526878486,1359106578,1526878739,1526878740,1526878741,1526878742,1359106834,1526878995,1526878996,1526878997,1526878998,1359107090,1526879251,1526879252,1526879253,1526879254,1359107346,1526879507,1526879508,1526879509,1526879510,1359107602,1526879763,1526879764,1526879765,1526879766,1359107858,1526880019,1526880020,1526880021,1526880022,1359108114,1526880275,1526880276,1526880277,1526880278,1359108370,1526880531,1526880532,1526880533,1526880534,1359108626,1526880787,1526880788,1526880789,1526880790,1359108882,1526881043,1526881044,1526881045,1526881046,1359109138,1526881299,1526881300,1526881301,1526881302,1359109394,1526881555,1526881556,1526881557,1526881558,1359109650,1526881811,1526881812,1526881813,1526881814,1359109906,1526882067,1526882068,1526882069,1526882070,1359110162,1526882323,1526882324,1526882325,1526882326,1359110418,1526882579,1526882580,1526882581,1526882582,1359110674,1359110675,1359110676,1359110677,1359110678,1359155730,1359155731,1359155732,1359155733,1359155734,1359155986,1526928147,1526928148,1526928149,1526928150,1359156242,1526928403,1526928404,1526928405,1526928406,1359156498,1526928659,1526928660,1526928661,1526928662,1359156754,1526928915,1526928916,1526928917,1526928918,1359157010,1526929171,1526929172,1526929173,1526929174,1359157266,1526929427,1526929428,1526929429,1526929430,1359157522,1526929683,1526929684,1526929685,1526929686,1359157778,1526929939,1526929940,1526929941,1526929942,1359158034,1526930195,1526930196,1526930197,1526930198,1359158290,1526930451,1526930452,1526930453,1526930454,1359158546,1526930707,1526930708,1526930709,1526930710,1359158802,1526930963,1526930964,1526930965,1526930966,1359159058,1526931219,1526931220,1526931221,1526931222,1359159314,1526931475,1526931476,1526931477,1526931478,1359159570,1526931731,1526931732,1526931733,1526931734,1359159826,1526931987,1526931988,1526931989,1526931990,1359160082,1526932243,1526932244,1526932245,1526932246,1359160338,1526932499,1526932500,1526932501,1526932502,1359160594,1526932755,1526932756,1526932757,1526932758,1359160850,1526933011,1526933012,1526933013,1526933014,1359161106,1526933267,1526933268,1526933269,1526933270,1359161362,1526933523,1526933524,1526933525,1526933526,1359161618,1526933779,1526933780,1526933781,1526933782,1359161874,1526934035,1526934036,1526934037,1526934038,1359162130,1526934291,1526934292,1526934293,1526934294,1359162386,1526934547,1526934548,1526934549,1526934550,1359162642,1526934803,1526934804,1526934805,1526934806,1359162898,1526935059,1526935060,1526935061,1526935062,1526935314,1526935315,1526935316,1526935317,1526935318,1459826706,1526935571,1526935572,1526935573,1526935574,1459826962,1526935827,1526935828,1526935829,1526935830,1459827218,1526936083,1526936084,1526936085,1526936086,1526936338,1526936339,1526936340,1526936341,1526936342,1359164434,1526936595,1526936596,1526936597,1526936598,1359164690,1526936851,1526936852,1526936853,1526936854,1359164946,1526937107,1526937108,1526937109,1526937110,1359165202,1526937363,1526937364,1526937365,1526937366,1526937618,1526937619,1526937620,1526937621,1526937622,1459829010,1526937875,1526937876,1526937877,1526937878,1459829266,1526938131,1526938132,1526938133,1526938134,1459829522,1526938387,1526938388,1526938389,1526938390,1526938642,1526938643,1526938644,1526938645,1526938646,1359166738,1526938899,1526938900,1526938901,1526938902,1359166994,1526939155,1526939156,1526939157,1526939158,1359167250,1526939411,1526939412,1526939413,1526939414,1359167506,1526939667,1526939668,1526939669,1526939670,1526939922,1526939923,1526939924,1526939925,1526939926,1459831314,1526940179,1526940180,1526940181,1526940182,1459831570,1526940435,1526940436,1526940437,1526940438,1459831826,1526940691,1526940692,1526940693,1526940694,1526940946,1526940947,1526940948,1526940949,1526940950,1359169042,1526941203,1526941204,1526941205,1526941206,1359169298,1526941459,1526941460,1526941461,1526941462,1359169554,1526941715,1526941716,1526941717,1526941718,1359169810,1526941971,1526941972,1526941973,1526941974,1359170066,1526942227,1526942228,1526942229,1526942230,1359170322,1526942483,1526942484,1526942485,1526942486,1359170578,1526942739,1526942740,1526942741,1526942742,1359170834,1526942995,1526942996,1526942997,1526942998,1359171090,1526943251,1526943252,1526943253,1526943254,1359171346,1526943507,1526943508,1526943509,1526943510,1359171602,1526943763,1526943764,1526943765,1526943766,1359171858,1526944019,1526944020,1526944021,1526944022,1359172114,1526944275,1526944276,1526944277,1526944278,1359172370,1526944531,1526944532,1526944533,1526944534,1359172626,1526944787,1526944788,1526944789,1526944790,1359172882,1526945043,1526945044,1526945045,1526945046,1359173138,1526945299,1526945300,1526945301,1526945302,1359173394,1526945555,1526945556,1526945557,1526945558,1359173650,1526945811,1526945812,1526945813,1526945814,1359173906,1526946067,1526946068,1526946069,1526946070,1359174162,1526946323,1526946324,1526946325,1526946326,1359174418,1526946579,1526946580,1526946581,1526946582,1359174674,1526946835,1526946836,1526946837,1526946838,1359174930,1526947091,1526947092,1526947093,1526947094,1359175186,1526947347,1526947348,1526947349,1526947350,1359175442,1526947603,1526947604,1526947605,1526947606,1359175698,1526947859,1526947860,1526947861,1526947862,1359175954,1526948115,1526948116,1526948117,1526948118,1359176210,1359176211,1359176212,1359176213,1359176214,1359221266,1359221267,1359221268,1359221269,1359221270,1359221522,1526993683,1526993684,1526993685,1526993686,1359221778,1526993939,1526993940,1526993941,1526993942,1359222034,1526994195,1526994196,1526994197,1526994198,1359222290,1526994451,1526994452,1526994453,1526994454,1359222546,1526994707,1526994708,1526994709,1526994710,1359222802,1526994963,1526994964,1526994965,1526994966,1359223058,1526995219,1526995220,1526995221,1526995222,1359223314,1526995475,1526995476,1526995477,1526995478,1359223570,1526995731,1526995732,1526995733,1526995734,1359223826,1526995987,1526995988,1526995989,1526995990,1359224082,1526996243,1526996244,1526996245,1526996246,1359224338,1526996499,1526996500,1526996501,1526996502,1359224594,1526996755,1526996756,1526996757,1526996758,1359224850,1526997011,1526997012,1526997013,1526997014,1359225106,1526997267,1526997268,1526997269,1526997270,1359225362,1526997523,1526997524,1526997525,1526997526,1359225618,1526997779,1526997780,1526997781,1526997782,1359225874,1526998035,1526998036,1526998037,1526998038,1359226130,1526998291,1526998292,1526998293,1526998294,1359226386,1526998547,1526998548,1526998549,1526998550,1359226642,1526998803,1526998804,1526998805,1526998806,1359226898,1526999059,1526999060,1526999061,1526999062,1359227154,1526999315,1526999316,1526999317,1526999318,1359227410,1526999571,1526999572,1526999573,1526999574,1359227666,1526999827,1526999828,1526999829,1526999830,1359227922,1527000083,1527000084,1527000085,1527000086,1359228178,1527000339,1527000340,1527000341,1527000342,1359228434,1527000595,1527000596,1527000597,1527000598,1527000850,1527000851,1527000852,1527000853,1527000854,1459892242,1527001107,1527001108,1527001109,1527001110,1459892498,1527001363,1527001364,1527001365,1527001366,1459892754,1527001619,1527001620,1527001621,1527001622,1527001874,1527001875,1527001876,1527001877,1527001878,1359229970,1527002131,1527002132,1527002133,1527002134,1359230226,1527002387,1527002388,1527002389,1527002390,1359230482,1527002643,1527002644,1527002645,1527002646,1359230738,1527002899,1527002900,1527002901,1527002902,1527003154,1527003155,1527003156,1527003157,1527003158,1459894546,1527003411,1527003412,1527003413,1527003414,1459894802,1527003667,1527003668,1527003669,1527003670,1459895058,1527003923,1527003924,1527003925,1527003926,1527004178,1527004179,1527004180,1527004181,1527004182,1359232274,1527004435,1527004436,1527004437,1527004438,1359232530,1527004691,1527004692,1527004693,1527004694,1359232786,1527004947,1527004948,1527004949,1527004950,1359233042,1527005203,1527005204,1527005205,1527005206,1527005458,1527005459,1527005460,1527005461,1527005462,1459896850,1527005715,1527005716,1527005717,1527005718,1459897106,1527005971,1527005972,1527005973,1527005974,1459897362,1527006227,1527006228,1527006229,1527006230,1527006482,1527006483,1527006484,1527006485,1527006486,1359234578,1527006739,1527006740,1527006741,1527006742,1359234834,1527006995,1527006996,1527006997,1527006998,1359235090,1527007251,1527007252,1527007253,1527007254,1359235346,1527007507,1527007508,1527007509,1527007510,1359235602,1527007763,1527007764,1527007765,1527007766,1359235858,1527008019,1527008020,1527008021,1527008022,1359236114,1527008275,1527008276,1527008277,1527008278,1359236370,1527008531,1527008532,1527008533,1527008534,1359236626,1527008787,1527008788,1527008789,1527008790,1359236882,1527009043,1527009044,1527009045,1527009046,1359237138,1527009299,1527009300,1527009301,1527009302,1359237394,1527009555,1527009556,1527009557,1527009558,1359237650,1527009811,1527009812,1527009813,1527009814,1359237906,1527010067,1527010068,1527010069,1527010070,1359238162,1527010323,1527010324,1527010325,1527010326,1359238418,1527010579,1527010580,1527010581,1527010582,1359238674,1527010835,1527010836,1527010837,1527010838,1359238930,1527011091,1527011092,1527011093,1527011094,1359239186,1527011347,1527011348,1527011349,1527011350,1359239442,1527011603,1527011604,1527011605,1527011606,1359239698,1527011859,1527011860,1527011861,1527011862,1359239954,1527012115,1527012116,1527012117,1527012118,1359240210,1527012371,1527012372,1527012373,1527012374,1359240466,1527012627,1527012628,1527012629,1527012630,1359240722,1527012883,1527012884,1527012885,1527012886,1359240978,1527013139,1527013140,1527013141,1527013142,1359241234,1527013395,1527013396,1527013397,1527013398,1359241490,1527013651,1527013652,1527013653,1527013654,1359241746,1359241747,1359241748,1359241749,1359241750,1359286802,1359286803,1359286804,1359286805,1359286806,1359287058,1527059219,1527059220,1527059221,1527059222,1359287314,1527059475,1527059476,1527059477,1527059478,1359287570,1527059731,1527059732,1527059733,1527059734,1359287826,1527059987,1527059988,1527059989,1527059990,1359288082,1527060243,1527060244,1527060245,1527060246,1359288338,1527060499,1527060500,1527060501,1527060502,1359288594,1527060755,1527060756,1527060757,1527060758,1359288850,1527061011,1527061012,1527061013,1527061014,1359289106,1527061267,1527061268,1527061269,1527061270,1359289362,1527061523,1527061524,1527061525,1527061526,1359289618,1527061779,1527061780,1527061781,1527061782,1359289874,1527062035,1527062036,1527062037,1527062038,1359290130,1527062291,1527062292,1527062293,1527062294,1359290386,1527062547,1527062548,1527062549,1527062550,1359290642,1527062803,1527062804,1527062805,1527062806,1359290898,1527063059,1527063060,1527063061,1527063062,1359291154,1527063315,1527063316,1527063317,1527063318,1359291410,1527063571,1527063572,1527063573,1527063574,1359291666,1527063827,1527063828,1527063829,1527063830,1359291922,1527064083,1527064084,1527064085,1527064086,1359292178,1527064339,1527064340,1527064341,1527064342,1359292434,1527064595,1527064596,1527064597,1527064598,1359292690,1527064851,1527064852,1527064853,1527064854,1359292946,1527065107,1527065108,1527065109,1527065110,1359293202,1527065363,1527065364,1527065365,1527065366,1359293458,1527065619,1527065620,1527065621,1527065622,1359293714,1527065875,1527065876,1527065877,1527065878,1359293970,1527066131,1527066132,1527066133,1527066134,1527066386,1527066387,1527066388,1527066389,1527066390,1459957778,1527066643,1527066644,1527066645,1527066646,1459958034,1527066899,1527066900,1527066901,1527066902,1459958290,1527067155,1527067156,1527067157,1527067158,1527067410,1527067411,1527067412,1527067413,1527067414,1359295506,1527067667,1527067668,1527067669,1527067670,1359295762,1527067923,1527067924,1527067925,1527067926,1359296018,1527068179,1527068180,1527068181,1527068182,1359296274,1527068435,1527068436,1527068437,1527068438,1527068690,1527068691,1527068692,1527068693,1527068694,1459960082,1527068947,1527068948,1527068949,1527068950,1459960338,1527069203,1527069204,1527069205,1527069206,1459960594,1527069459,1527069460,1527069461,1527069462,1527069714,1527069715,1527069716,1527069717,1527069718,1359297810,1527069971,1527069972,1527069973,1527069974,1359298066,1527070227,1527070228,1527070229,1527070230,1359298322,1527070483,1527070484,1527070485,1527070486,1359298578,1527070739,1527070740,1527070741,1527070742,1527070994,1527070995,1527070996,1527070997,1527070998,1459962386,1527071251,1527071252,1527071253,1527071254,1459962642,1527071507,1527071508,1527071509,1527071510,1459962898,1527071763,1527071764,1527071765,1527071766,1527072018,1527072019,1527072020,1527072021,1527072022,1359300114,1527072275,1527072276,1527072277,1527072278,1359300370,1527072531,1527072532,1527072533,1527072534,1359300626,1527072787,1527072788,1527072789,1527072790,1359300882,1527073043,1527073044,1527073045,1527073046,1359301138,1527073299,1527073300,1527073301,1527073302,1359301394,1527073555,1527073556,1527073557,1527073558,1359301650,1527073811,1527073812,1527073813,1527073814,1359301906,1527074067,1527074068,1527074069,1527074070,1359302162,1527074323,1527074324,1527074325,1527074326,1359302418,1527074579,1527074580,1527074581,1527074582,1359302674,1527074835,1527074836,1527074837,1527074838,1359302930,1527075091,1527075092,1527075093,1527075094,1359303186,1527075347,1527075348,1527075349,1527075350,1359303442,1527075603,1527075604,1527075605,1527075606,1359303698,1527075859,1527075860,1527075861,1527075862,1359303954,1527076115,1527076116,1527076117,1527076118,1359304210,1527076371,1527076372,1527076373,1527076374,1359304466,1527076627,1527076628,1527076629,1527076630,1359304722,1527076883,1527076884,1527076885,1527076886,1359304978,1527077139,1527077140,1527077141,1527077142,1359305234,1527077395,1527077396,1527077397,1527077398,1359305490,1527077651,1527077652,1527077653,1527077654,1359305746,1527077907,1527077908,1527077909,1527077910,1359306002,1527078163,1527078164,1527078165,1527078166,1359306258,1527078419,1527078420,1527078421,1527078422,1359306514,1527078675,1527078676,1527078677,1527078678,1359306770,1527078931,1527078932,1527078933,1527078934,1359307026,1527079187,1527079188,1527079189,1527079190,1359307282,1359307283,1359307284,1359307285,1359307286,1359352338,1359352339,1359352340,1359352341,1359352342,1359352594,1527124755,1527124756,1527124757,1527124758,1359352850,1527125011,1527125012,1527125013,1527125014,1359353106,1527125267,1527125268,1527125269,1527125270,1359353362,1527125523,1527125524,1527125525,1527125526,1359353618,1527125779,1527125780,1527125781,1527125782,1359353874,1527126035,1527126036,1527126037,1527126038,1359354130,1527126291,1527126292,1527126293,1527126294,1359354386,1527126547,1527126548,1527126549,1527126550,1359354642,1527126803,1527126804,1527126805,1527126806,1359354898,1527127059,1527127060,1527127061,1527127062,1359355154,1527127315,1527127316,1527127317,1527127318,1359355410,1527127571,1527127572,1527127573,1527127574,1359355666,1527127827,1527127828,1527127829,1527127830,1359355922,1527128083,1527128084,1527128085,1527128086,1359356178,1527128339,1527128340,1527128341,1527128342,1359356434,1527128595,1527128596,1527128597,1527128598,1359356690,1527128851,1527128852,1527128853,1527128854,1359356946,1527129107,1527129108,1527129109,1527129110,1359357202,1527129363,1527129364,1527129365,1527129366,1359357458,1527129619,1527129620,1527129621,1527129622,1359357714,1527129875,1527129876,1527129877,1527129878,1359357970,1527130131,1527130132,1527130133,1527130134,1359358226,1527130387,1527130388,1527130389,1527130390,1359358482,1527130643,1527130644,1527130645,1527130646,1359358738,1527130899,1527130900,1527130901,1527130902,1359358994,1527131155,1527131156,1527131157,1527131158,1359359250,1527131411,1527131412,1527131413,1527131414,1359359506,1527131667,1527131668,1527131669,1527131670,1527131922,1527131923,1527131924,1527131925,1527131926,1527132178,1527132179,1527132180,1527132181,1527132182,1527132434,1527132435,1527132436,1527132437,1527132438,1527132690,1527132691,1527132692,1527132693,1527132694,1527132946,1527132947,1527132948,1527132949,1527132950,1359361042,1527133203,1527133204,1527133205,1527133206,1359361298,1527133459,1527133460,1527133461,1527133462,1359361554,1527133715,1527133716,1527133717,1527133718,1359361810,1527133971,1527133972,1527133973,1527133974,1527134226,1527134227,1527134228,1527134229,1527134230,1527134482,1527134483,1527134484,1527134485,1527134486,1527134738,1527134739,1527134740,1527134741,1527134742,1527134994,1527134995,1527134996,1527134997,1527134998,1527135250,1527135251,1527135252,1527135253,1527135254,1359363346,1527135507,1527135508,1527135509,1527135510,1359363602,1527135763,1527135764,1527135765,1527135766,1359363858,1527136019,1527136020,1527136021,1527136022,1359364114,1527136275,1527136276,1527136277,1527136278,1527136530,1527136531,1527136532,1527136533,1527136534,1527136786,1527136787,1527136788,1527136789,1527136790,1527137042,1527137043,1527137044,1527137045,1527137046,1527137298,1527137299,1527137300,1527137301,1527137302,1527137554,1527137555,1527137556,1527137557,1527137558,1359365650,1527137811,1527137812,1527137813,1527137814,1359365906,1527138067,1527138068,1527138069,1527138070,1359366162,1527138323,1527138324,1527138325,1527138326,1359366418,1527138579,1527138580,1527138581,1527138582,1359366674,1527138835,1527138836,1527138837,1527138838,1359366930,1527139091,1527139092,1527139093,1527139094,1359367186,1527139347,1527139348,1527139349,1527139350,1359367442,1527139603,1527139604,1527139605,1527139606,1359367698,1527139859,1527139860,1527139861,1527139862,1359367954,1527140115,1527140116,1527140117,1527140118,1359368210,1527140371,1527140372,1527140373,1527140374,1359368466,1527140627,1527140628,1527140629,1527140630,1359368722,1527140883,1527140884,1527140885,1527140886,1359368978,1527141139,1527141140,1527141141,1527141142,1359369234,1527141395,1527141396,1527141397,1527141398,1359369490,1527141651,1527141652,1527141653,1527141654,1359369746,1527141907,1527141908,1527141909,1527141910,1359370002,1527142163,1527142164,1527142165,1527142166,1359370258,1527142419,1527142420,1527142421,1527142422,1359370514,1527142675,1527142676,1527142677,1527142678,1359370770,1527142931,1527142932,1527142933,1527142934,1359371026,1527143187,1527143188,1527143189,1527143190,1359371282,1527143443,1527143444,1527143445,1527143446,1359371538,1527143699,1527143700,1527143701,1527143702,1359371794,1527143955,1527143956,1527143957,1527143958,1359372050,1527144211,1527144212,1527144213,1527144214,1359372306,1527144467,1527144468,1527144469,1527144470,1359372562,1527144723,1527144724,1527144725,1527144726,1359372818,1359372819,1359372820,1359372821,1359372822,1359417874,1359417875,1359417876,1359417877,1359417878,1359418130,1527190291,1527190292,1527190293,1527190294,1359418386,1527190547,1527190548,1527190549,1527190550,1359418642,1527190803,1527190804,1527190805,1527190806,1359418898,1527191059,1527191060,1527191061,1527191062,1359419154,1527191315,1527191316,1527191317,1527191318,1359419410,1527191571,1527191572,1527191573,1527191574,1359419666,1527191827,1527191828,1527191829,1527191830,1359419922,1527192083,1527192084,1527192085,1527192086,1359420178,1527192339,1527192340,1527192341,1527192342,1359420434,1527192595,1527192596,1527192597,1527192598,1359420690,1527192851,1527192852,1527192853,1527192854,1359420946,1527193107,1527193108,1527193109,1527193110,1359421202,1527193363,1527193364,1527193365,1527193366,1359421458,1527193619,1527193620,1527193621,1527193622,1359421714,1527193875,1527193876,1527193877,1527193878,1359421970,1527194131,1527194132,1527194133,1527194134,1359422226,1527194387,1527194388,1527194389,1527194390,1359422482,1527194643,1527194644,1527194645,1527194646,1359422738,1527194899,1527194900,1527194901,1527194902,1359422994,1527195155,1527195156,1527195157,1527195158,1359423250,1527195411,1527195412,1527195413,1527195414,1359423506,1527195667,1527195668,1527195669,1527195670,1359423762,1527195923,1527195924,1527195925,1527195926,1359424018,1527196179,1527196180,1527196181,1527196182,1359424274,1527196435,1527196436,1527196437,1527196438,1359424530,1527196691,1527196692,1527196693,1527196694,1359424786,1527196947,1527196948,1527196949,1527196950,1359425042,1527197203,1527197204,1527197205,1527197206,1359425298,1527197459,1527197460,1527197461,1527197462,1359425554,1527197715,1527197716,1527197717,1527197718,1359425810,1527197971,1527197972,1527197973,1527197974,1359426066,1527198227,1527198228,1527198229,1527198230,1359426322,1527198483,1527198484,1527198485,1527198486,1359426578,1527198739,1527198740,1527198741,1527198742,1359426834,1527198995,1527198996,1527198997,1527198998,1359427090,1527199251,1527199252,1527199253,1527199254,1359427346,1527199507,1527199508,1527199509,1527199510,1359427602,1527199763,1527199764,1527199765,1527199766,1359427858,1527200019,1527200020,1527200021,1527200022,1359428114,1527200275,1527200276,1527200277,1527200278,1359428370,1527200531,1527200532,1527200533,1527200534,1359428626,1527200787,1527200788,1527200789,1527200790,1359428882,1527201043,1527201044,1527201045,1527201046,1359429138,1527201299,1527201300,1527201301,1527201302,1359429394,1527201555,1527201556,1527201557,1527201558,1359429650,1527201811,1527201812,1527201813,1527201814,1359429906,1527202067,1527202068,1527202069,1527202070,1359430162,1527202323,1527202324,1527202325,1527202326,1359430418,1527202579,1527202580,1527202581,1527202582,1359430674,1527202835,1527202836,1527202837,1527202838,1359430930,1527203091,1527203092,1527203093,1527203094,1359431186,1527203347,1527203348,1527203349,1527203350,1359431442,1527203603,1527203604,1527203605,1527203606,1359431698,1527203859,1527203860,1527203861,1527203862,1359431954,1527204115,1527204116,1527204117,1527204118,1359432210,1527204371,1527204372,1527204373,1527204374,1359432466,1527204627,1527204628,1527204629,1527204630,1359432722,1527204883,1527204884,1527204885,1527204886,1359432978,1527205139,1527205140,1527205141,1527205142,1359433234,1527205395,1527205396,1527205397,1527205398,1359433490,1527205651,1527205652,1527205653,1527205654,1359433746,1527205907,1527205908,1527205909,1527205910,1359434002,1527206163,1527206164,1527206165,1527206166,1359434258,1527206419,1527206420,1527206421,1527206422,1359434514,1527206675,1527206676,1527206677,1527206678,1359434770,1527206931,1527206932,1527206933,1527206934,1359435026,1527207187,1527207188,1527207189,1527207190,1359435282,1527207443,1527207444,1527207445,1527207446,1359435538,1527207699,1527207700,1527207701,1527207702,1359435794,1527207955,1527207956,1527207957,1527207958,1359436050,1527208211,1527208212,1527208213,1527208214,1359436306,1527208467,1527208468,1527208469,1527208470,1359436562,1527208723,1527208724,1527208725,1527208726,1359436818,1527208979,1527208980,1527208981,1527208982,1359437074,1527209235,1527209236,1527209237,1527209238,1359437330,1527209491,1527209492,1527209493,1527209494,1359437586,1527209747,1527209748,1527209749,1527209750,1359437842,1527210003,1527210004,1527210005,1527210006,1359438098,1527210259,1527210260,1527210261,1527210262,1359438354,1359438355,1359438356,1359438357,1359438358,1627918866,1627918867,1627918868,1627918869,1627918870,1627919122,1493701395,1493701396,1493701397,1627919126,1627919378,1493701651,1627919380,1493701653,1627919382,1627919634,1493701907,1493701908,1493701909,1493701910,1627919890,1627919891,1627919892,1493702165,1627919894,1627920146,1493702419,1493702420,1493702421,1493702422,1627920402,1493702675,1627920404,1493702677,1627920406,1627920658,1493702931,1627920660,1493702933,1493702934,1627920914,1493703187,1627920916,1627920917,1627920918,1627921170,1493703443,1627921172,1493703445,1493703446,1627921426,1493703699,1627921428,1493703701,1627921430,1627921682,1493703955,1627921684,1493703957,1493703958,1627921938,1493704211,1627921940,1627921941,1627921942,1627922194,1493704467,1627922196,1627922197,1493704470,1627922450,1493704723,1627922452,1627922453,1627922454,1627922706,1493704979,1627922708,1627922709,1493704982,1627922962,1493705235,1627922964,1493705237,1627922966,1627923218,1493705491,1627923220,1627923221,1493705494,1627923474,1493705747,1627923476,1627923477,1627923478,1627923730,1493706003,1627923732,1627923733,1493706006,1627923986,1493706259,1627923988,1627923989,1627923990,1627924242,1493706515,1627924244,1493706517,1493706518,1627924498,1493706771,1627924500,1493706773,1627924502,1627924754,1493707027,1627924756,1493707029,1493707030,1627925010,1493707283,1627925012,1627925013,1627925014,1627925266,1493707539,1627925268,1627925269,1493707542,1627925522,1493707795,1627925524,1627925525,1627925526,1627925778,1493708051,1627925780,1627925781,1493708054,1627926034,1493708307,1627926036,1493708309,1627926038,1627926290,1493708563,1627926292,1627926293,1493708566,1627926546,1493708819,1627926548,1627926549,1627926550,1627926802,1493709075,1627926804,1627926805,1493709078,1627927058,1493709331,1627927060,1627927061,1627927062,1627927314,1493709587,1627927316,1493709589,1493709590,1627927570,1493709843,1627927572,1493709845,1627927574,1627927826,1493710099,1627927828,1493710101,1493710102,1627928082,1493710355,1627928084,1627928085,1627928086,1627928338,1493710611,1627928340,1627928341,1493710614,1627928594,1493710867,1627928596,1627928597,1627928598,1627928850,1493711123,1627928852,1627928853,1493711126,1627929106,1493711379,1627929108,1493711381,1627929110,1627929362,1493711635,1627929364,1627929365,1493711638,1627929618,1493711891,1627929620,1627929621,1627929622,1627929874,1493712147,1627929876,1627929877,1493712150,1627930130,1493712403,1627930132,1627930133,1627930134,1627930386,1493712659,1627930388,1493712661,1493712662,1627930642,1493712915,1627930644,1493712917,1627930646,1627930898,1493713171,1627930900,1493713173,1493713174,1627931154,1493713427,1627931156,1627931157,1627931158,1627931410,1493713683,1627931412,1627931413,1493713686,1627931666,1493713939,1627931668,1627931669,1627931670,1627931922,1493714195,1627931924,1627931925,1493714198,1627932178,1493714451,1627932180,1493714453,1627932182,1627932434,1493714707,1627932436,1627932437,1493714710,1627932690,1493714963,1627932692,1627932693,1627932694,1627932946,1493715219,1627932948,1627932949,1493715222,1627933202,1493715475,1627933204,1627933205,1627933206,1627933458,1493715731,1627933460,1493715733,1493715734,1627933714,1493715987,1627933716,1493715989,1627933718,1627933970,1493716243,1627933972,1493716245,1493716246,1627934226,1493716499,1627934228,1627934229,1627934230,1627934482,1493716755,1627934484,1627934485,1493716758,1627934738,1493717011,1627934740,1627934741,1627934742,1627934994,1493717267,1627934996,1627934997,1493717270,1627935250,1493717523,1627935252,1493717525,1627935254,1627935506,1493717779,1627935508,1627935509,1493717782,1627935762,1493718035,1627935764,1627935765,1627935766,1627936018,1493718291,1627936020,1627936021,1493718294,1627936274,1493718547,1627936276,1627936277,1627936278,1627936530,1493718803,1627936532,1493718805,1493718806,1627936786,1493719059,1627936788,1493719061,1627936790,1627937042,1493719315,1627937044,1493719317,1493719318,1359501842,1527274003,1527274004,1527274005,1527274006,1359502098,1527274259,1527274260,1527274261,1527274262,1359502354,1527274515,1527274516,1527274517,1527274518,1359502610,1527274771,1527274772,1527274773,1527274774,1359502866,1527275027,1527275028,1527275029,1527275030,1359503122,1527275283,1527275284,1527275285,1527275286,1359503378,1527275539,1527275540,1527275541,1527275542,1359503634,1527275795,1527275796,1527275797,1527275798,1359503890,1359503891,1359503892,1359503893,1359503894,1359567378,1359567379,1359567380,1359567381,1359567382,1359567634,1359567635,1359567636,1359567637,1359567638,1359567890,1359567891,1359567892,1359567893,1359567894,1359568146,1359568147,1359568148,1359568149,1359568150,1359568402,1359568403,1359568404,1359568405,1359568406,1359568658,1359568659,1359568660,1359568661,1359568662,1359568914,1359568915,1359568916,1359568917,1359568918,1359569170,1359569171,1359569172,1359569173,1359569174,1359569426,1359569427,1359569428,1359569429,1359569430,1359632914,1359632915,1359632916,1359632917,1359632918,1359633170,1359633171,1359633172,1359633173,1359633174,1359633426,1359633427,1359633428,1359633429,1359633430,1359633682,1359633683,1359633684,1359633685,1359633686,1359633938,1359633939,1359633940,1359633941,1359633942,1359634194,1359634195,1359634196,1359634197,1359634198,1359634450,1359634451,1359634452,1359634453,1359634454,1359634706,1359634707,1359634708,1359634709,1359634710,1359634962,1359634963,1359634964,1359634965,1359634966,1359698450,1359698451,1359698452,1359698453,1359698454,1359698706,1359698707,1359698708,1359698709,1359698710,1359698962,1359698963,1359698964,1359698965,1359698966,1359699218,1359699219,1359699220,1359699221,1359699222,1359699474,1359699475,1359699476,1359699477,1359699478,1359699730,1359699731,1359699732,1359699733,1359699734,1359699986,1359699987,1359699988,1359699989,1359699990,1359700242,1359700243,1359700244,1359700245,1359700246,1359700498,1359700499,1359700500,1359700501,1359700502,1359763986,1359763987,1359763988,1359763989,1359763990,1359764242,1359764243,1359764244,1359764245,1359764246,1359764498,1359764499,1359764500,1359764501,1359764502,1359764754,1359764755,1359764756,1359764757,1359764758,1359765010,1359765011,1359765012,1359765013,1359765014,1359765266,1359765267,1359765268,1359765269,1359765270,1359765522,1359765523,1359765524,1359765525,1359765526,1359765778,1359765779,1359765780,1359765781,1359765782,1359766034,1359766035,1359766036,1359766037,1359766038,1359829522,1359829523,1359829524,1359829525,1359829526,1359829778,1359829779,1359829780,1359829781,1359829782,1359830034,1359830035,1359830036,1359830037,1359830038,1359830290,1359830291,1359830292,1359830293,1359830294,1359830546,1359830547,1359830548,1359830549,1359830550,1359830802,1359830803,1359830804,1359830805,1359830806,1359831058,1359831059,1359831060,1359831061,1359831062,1359831314,1359831315,1359831316,1359831317,1359831318,1359831570,1359831571,1359831572,1359831573,1359831574,1359895058,1359895059,1359895060,1359895061,1359895062,1359895314,1359895315,1359895316,1359895317,1359895318,1359895570,1359895571,1359895572,1359895573,1359895574,1359895826,1359895827,1359895828,1359895829,1359895830,1359896082,1359896083,1359896084,1359896085,1359896086,1359896338,1359896339,1359896340,1359896341,1359896342,1359896594,1359896595,1359896596,1359896597,1359896598,1359896850,1359896851,1359896852,1359896853,1359896854,1359897106,1359897107,1359897108,1359897109,1359897110,1359960594,1359960595,1359960596,1359960597,1359960598,1359960850,1359960851,1359960852,1359960853,1359960854,1359961106,1359961107,1359961108,1359961109,1359961110,1359961362,1359961363,1359961364,1359961365,1359961366,1359961618,1359961619,1359961620,1359961621,1359961622,1359961874,1359961875,1359961876,1359961877,1359961878,1359962130,1359962131,1359962132,1359962133,1359962134,1359962386,1359962387,1359962388,1359962389,1359962390,1359962642,1359962643,1359962644,1359962645,1359962646,1360026130,1360026131,1360026132,1360026133,1360026134,1360026386,1360026387,1360026388,1360026389,1360026390,1360026642,1360026643,1360026644,1360026645,1360026646,1360026898,1360026899,1360026900,1360026901,1360026902,1360027154,1360027155,1360027156,1360027157,1360027158,1360027410,1360027411,1360027412,1360027413,1360027414,1360027666,1360027667,1360027668,1360027669,1360027670,1360027922,1360027923,1360027924,1360027925,1360027926,1360028178,1360028179,1360028180,1360028181,1360028182,1360091666,1360091667,1360091668,1360091669,1360091670,1360091922,1360091923,1360091924,1360091925,1360091926,1360092178,1360092179,1360092180,1360092181,1360092182,1360092434,1360092435,1360092436,1360092437,1360092438,1360092690,1360092691,1360092692,1360092693,1360092694,1360092946,1360092947,1360092948,1360092949,1360092950,1360093202,1360093203,1360093204,1360093205,1360093206,1360093458,1360093459,1360093460,1360093461,1360093462,1360093714,1360093715,1360093716,1360093717,1360093718,1360157202,1360157203,1360157204,1360157205,1360157206,1360157458,1360157459,1360157460,1360157461,1360157462,1360157714,1360157715,1360157716,1360157717,1360157718,1360157970,1360157971,1360157972,1360157973,1360157974,1360158226,1360158227,1360158228,1360158229,1360158230,1360158482,1360158483,1360158484,1360158485,1360158486,1360158738,1360158739,1360158740,1360158741,1360158742,1360158994,1360158995,1360158996,1360158997,1360158998,1360159250,1360159251,1360159252,1360159253,1360159254,1360222738,1360222739,1360222740,1360222741,1360222742,1360222994,1360222995,1360222996,1360222997,1360222998,1360223250,1360223251,1360223252,1360223253,1360223254,1360223506,1360223507,1360223508,1360223509,1360223510,1360223762,1360223763,1360223764,1360223765,1360223766,1360224018,1360224019,1360224020,1360224021,1360224022,1360224274,1360224275,1360224276,1360224277,1360224278,1360224530,1360224531,1360224532,1360224533,1360224534,1360224786,1360224787,1360224788,1360224789,1360224790,1360288274,1360288275,1360288276,1360288277,1360288278,1360288530,1360288531,1360288532,1360288533,1360288534,1360288786,1360288787,1360288788,1360288789,1360288790,1360289042,1360289043,1360289044,1360289045,1360289046,1360289298,1360289299,1360289300,1360289301,1360289302,1360289554,1360289555,1360289556,1360289557,1360289558,1360289810,1360289811,1360289812,1360289813,1360289814,1360290066,1360290067,1360290068,1360290069,1360290070,1360290322,1360290323,1360290324,1360290325,1360290326,1360353810,1360353811,1360353812,1360353813,1360353814,1360354066,1360354067,1360354068,1360354069,1360354070,1360354322,1360354323,1360354324,1360354325,1360354326,1360354578,1360354579,1360354580,1360354581,1360354582,1360354834,1360354835,1360354836,1360354837,1360354838,1360355090,1360355091,1360355092,1360355093,1360355094,1360355346,1360355347,1360355348,1360355349,1360355350,1360355602,1360355603,1360355604,1360355605,1360355606,1360355858,1360355859,1360355860,1360355861,1360355862,1360419346,1360419347,1360419348,1360419349,1360419350,1360419602,1360419603,1360419604,1360419605,1360419606,1360419858,1360419859,1360419860,1360419861,1360419862,1360420114,1360420115,1360420116,1360420117,1360420118,1360420370,1360420371,1360420372,1360420373,1360420374,1360420626,1360420627,1360420628,1360420629,1360420630,1360420882,1360420883,1360420884,1360420885,1360420886,1360421138,1360421139,1360421140,1360421141,1360421142,1360421394,1360421395,1360421396,1360421397,1360421398,1360484882,1360484883,1360484884,1360484885,1360484886,1360485138,1360485139,1360485140,1360485141,1360485142,1360485394,1360485395,1360485396,1360485397,1360485398,1360485650,1360485651,1360485652,1360485653,1360485654,1360485906,1360485907,1360485908,1360485909,1360485910,1360486162,1360486163,1360486164,1360486165,1360486166,1360486418,1360486419,1360486420,1360486421,1360486422,1360486674,1360486675,1360486676,1360486677,1360486678,1360486930,1360486931,1360486932,1360486933,1360486934,1360550418,1360550419,1360550420,1360550421,1360550422,1360550674,1360550675,1360550676,1360550677,1360550678,1360550930,1360550931,1360550932,1360550933,1360550934,1360551186,1360551187,1360551188,1360551189,1360551190,1360551442,1360551443,1360551444,1360551445,1360551446,1360551698,1360551699,1360551700,1360551701,1360551702,1360551954,1360551955,1360551956,1360551957,1360551958,1360552210,1360552211,1360552212,1360552213,1360552214,1360552466,1360552467,1360552468,1360552469,1360552470,1360615954,1360615955,1360615956,1360615957,1360615958,1360616210,1360616211,1360616212,1360616213,1360616214,1360616466,1360616467,1360616468,1360616469,1360616470,1360616722,1360616723,1360616724,1360616725,1360616726,1360616978,1360616979,1360616980,1360616981,1360616982,1360617234,1360617235,1360617236,1360617237,1360617238,1360617490,1360617491,1360617492,1360617493,1360617494,1360617746,1360617747,1360617748,1360617749,1360617750,1360618002,1360618003,1360618004,1360618005,1360618006,1360681490,1360681491,1360681492,1360681493,1360681494,1360681746,1360681747,1360681748,1360681749,1360681750,1360682002,1360682003,1360682004,1360682005,1360682006,1360682258,1360682259,1360682260,1360682261,1360682262,1360682514,1360682515,1360682516,1360682517,1360682518,1360682770,1360682771,1360682772,1360682773,1360682774,1360683026,1360683027,1360683028,1360683029,1360683030,1360683282,1360683283,1360683284,1360683285,1360683286,1360683538,1360683539,1360683540,1360683541,1360683542,1360747026,1360747027,1360747028,1360747029,1360747030,1360747282,1360747283,1360747284,1360747285,1360747286,1360747538,1360747539,1360747540,1360747541,1360747542,1360747794,1360747795,1360747796,1360747797,1360747798,1360748050,1360748051,1360748052,1360748053,1360748054,1360748306,1360748307,1360748308,1360748309,1360748310,1360748562,1360748563,1360748564,1360748565,1360748566,1360748818,1360748819,1360748820,1360748821,1360748822,1360749074,1360749075,1360749076,1360749077,1360749078,1360812562,1360812563,1360812564,1360812565,1360812566,1360812818,1360812819,1360812820,1360812821,1360812822,1360813074,1360813075,1360813076,1360813077,1360813078,1360813330,1360813331,1360813332,1360813333,1360813334,1360813586,1360813587,1360813588,1360813589,1360813590,1360813842,1360813843,1360813844,1360813845,1360813846,1360814098,1360814099,1360814100,1360814101,1360814102,1360814354,1360814355,1360814356,1360814357,1360814358,1360814610,1360814611,1360814612,1360814613,1360814614,1360878098,1360878099,1360878100,1360878101,1360878102,1360878354,1360878355,1360878356,1360878357,1360878358,1360878610,1360878611,1360878612,1360878613,1360878614,1360878866,1360878867,1360878868,1360878869,1360878870,1360879122,1360879123,1360879124,1360879125,1360879126,1360879378,1360879379,1360879380,1360879381,1360879382,1360879634,1360879635,1360879636,1360879637,1360879638,1360879890,1360879891,1360879892,1360879893,1360879894,1360880146,1360880147,1360880148,1360880149,1360880150,1360943634,1360943635,1360943636,1360943637,1360943638,1360943890,1360943891,1360943892,1360943893,1360943894,1360944146,1360944147,1360944148,1360944149,1360944150,1360944402,1360944403,1360944404,1360944405,1360944406,1360944658,1360944659,1360944660,1360944661,1360944662,1360944914,1360944915,1360944916,1360944917,1360944918,1360945170,1360945171,1360945172,1360945173,1360945174,1360945426,1360945427,1360945428,1360945429,1360945430,1360945682,1360945683,1360945684,1360945685,1360945686,1361009170,1361009171,1361009172,1361009173,1361009174,1361009426,1361009427,1361009428,1361009429,1361009430,1361009682,1361009683,1361009684,1361009685,1361009686,1361009938,1361009939,1361009940,1361009941,1361009942,1361010194,1361010195,1361010196,1361010197,1361010198,1361010450,1361010451,1361010452,1361010453,1361010454,1361010706,1361010707,1361010708,1361010709,1361010710,1361010962,1361010963,1361010964,1361010965,1361010966,1361011218,1361011219,1361011220,1361011221,1361011222,1361074706,1361074707,1361074708,1361074709,1361074710,1361074962,1361074963,1361074964,1361074965,1361074966,1361075218,1361075219,1361075220,1361075221,1361075222,1361075474,1361075475,1361075476,1361075477,1361075478,1361075730,1361075731,1361075732,1361075733,1361075734,1361075986,1361075987,1361075988,1361075989,1361075990,1361076242,1361076243,1361076244,1361076245,1361076246,1361076498,1361076499,1361076500,1361076501,1361076502,1361076754,1361076755,1361076756,1361076757,1361076758,1361140242,1361140243,1361140244,1361140245,1361140246,1361140498,1361140499,1361140500,1361140501,1361140502,1361140754,1361140755,1361140756,1361140757,1361140758,1361141010,1361141011,1361141012,1361141013,1361141014,1361141266,1361141267,1361141268,1361141269,1361141270,1361141522,1361141523,1361141524,1361141525,1361141526,1361141778,1361141779,1361141780,1361141781,1361141782,1361142034,1361142035,1361142036,1361142037,1361142038,1361142290,1361142291,1361142292,1361142293,1361142294,1361205778,1361205779,1361205780,1361205781,1361205782,1361206034,1361206035,1361206036,1361206037,1361206038,1361206290,1361206291,1361206292,1361206293,1361206294,1361206546,1361206547,1361206548,1361206549,1361206550,1361206802,1361206803,1361206804,1361206805,1361206806,1361207058,1361207059,1361207060,1361207061,1361207062,1361207314,1361207315,1361207316,1361207317,1361207318,1361207570,1361207571,1361207572,1361207573,1361207574,1361207826,1361207827,1361207828,1361207829,1361207830,1361271314,1361271315,1361271316,1361271317,1361271318,1361271570,1361271571,1361271572,1361271573,1361271574,1361271826,1361271827,1361271828,1361271829,1361271830,1361272082,1361272083,1361272084,1361272085,1361272086,1361272338,1361272339,1361272340,1361272341,1361272342,1361272594,1361272595,1361272596,1361272597,1361272598,1361272850,1361272851,1361272852,1361272853,1361272854,1361273106,1361273107,1361273108,1361273109,1361273110,1361273362,1361273363,1361273364,1361273365,1361273366,1361336850,1361336851,1361336852,1361336853,1361336854,1361337106,1361337107,1361337108,1361337109,1361337110,1361337362,1361337363,1361337364,1361337365,1361337366,1361337618,1361337619,1361337620,1361337621,1361337622,1361337874,1361337875,1361337876,1361337877,1361337878,1361338130,1361338131,1361338132,1361338133,1361338134,1361338386,1361338387,1361338388,1361338389,1361338390,1361338642,1361338643,1361338644,1361338645,1361338646,1361338898,1361338899,1361338900,1361338901,1361338902,1361402386,1361402387,1361402388,1361402389,1361402390,1361402642,1361402643,1361402644,1361402645,1361402646,1361402898,1361402899,1361402900,1361402901,1361402902,1361403154,1361403155,1361403156,1361403157,1361403158,1361403410,1361403411,1361403412,1361403413,1361403414,1361403666,1361403667,1361403668,1361403669,1361403670,1361403922,1361403923,1361403924,1361403925,1361403926,1361404178,1361404179,1361404180,1361404181,1361404182,1361404434,1361404435,1361404436,1361404437,1361404438,1361467922,1361467923,1361467924,1361467925,1361467926,1361468178,1361468179,1361468180,1361468181,1361468182,1361468434,1361468435,1361468436,1361468437,1361468438,1361468690,1361468691,1361468692,1361468693,1361468694,1361468946,1361468947,1361468948,1361468949,1361468950,1361469202,1361469203,1361469204,1361469205,1361469206,1361469458,1361469459,1361469460,1361469461,1361469462,1361469714,1361469715,1361469716,1361469717,1361469718,1361469970,1361469971,1361469972,1361469973,1361469974,1361533458,1361533459,1361533460,1361533461,1361533462,1361533714,1361533715,1361533716,1361533717,1361533718,1361533970,1361533971,1361533972,1361533973,1361533974,1361534226,1361534227,1361534228,1361534229,1361534230,1361534482,1361534483,1361534484,1361534485,1361534486,1361534738,1361534739,1361534740,1361534741,1361534742,1361534994,1361534995,1361534996,1361534997,1361534998,1361535250,1361535251,1361535252,1361535253,1361535254,1361535506,1361535507,1361535508,1361535509,1361535510,1361598994,1361598995,1361598996,1361598997,1361598998,1361599250,1361599251,1361599252,1361599253,1361599254,1361599506,1361599507,1361599508,1361599509,1361599510,1361599762,1361599763,1361599764,1361599765,1361599766,1361600018,1361600019,1361600020,1361600021,1361600022,1361600274,1361600275,1361600276,1361600277,1361600278,1361600530,1361600531,1361600532,1361600533,1361600534,1361600786,1361600787,1361600788,1361600789,1361600790,1361601042,1361601043,1361601044,1361601045,1361601046,1361664530,1361664531,1361664532,1361664533,1361664534,1361664786,1361664787,1361664788,1361664789,1361664790,1361665042,1361665043,1361665044,1361665045,1361665046,1361665298,1361665299,1361665300,1361665301,1361665302,1361665554,1361665555,1361665556,1361665557,1361665558,1361665810,1361665811,1361665812,1361665813,1361665814,1361666066,1361666067,1361666068,1361666069,1361666070,1361666322,1361666323,1361666324,1361666325,1361666326,1361666578,1361666579,1361666580,1361666581,1361666582,1361730066,1361730067,1361730068,1361730069,1361730070,1361730322,1361730323,1361730324,1361730325,1361730326,1361730578,1361730579,1361730580,1361730581,1361730582,1361730834,1361730835,1361730836,1361730837,1361730838,1361731090,1361731091,1361731092,1361731093,1361731094,1361731346,1361731347,1361731348,1361731349,1361731350,1361731602,1361731603,1361731604,1361731605,1361731606,1361731858,1361731859,1361731860,1361731861,1361731862,1361732114,1361732115,1361732116,1361732117,1361732118,1361795602,1361795603,1361795604,1361795605,1361795606,1361795858,1361795859,1361795860,1361795861,1361795862,1361796114,1361796115,1361796116,1361796117,1361796118,1361796370,1361796371,1361796372,1361796373,1361796374,1361796626,1361796627,1361796628,1361796629,1361796630,1361796882,1361796883,1361796884,1361796885,1361796886,1361797138,1361797139,1361797140,1361797141,1361797142,1361797394,1361797395,1361797396,1361797397,1361797398,1361797650,1361797651,1361797652,1361797653,1361797654,1361861138,1361861139,1361861140,1361861141,1361861142,1361861394,1361861395,1361861396,1361861397,1361861398,1361861650,1361861651,1361861652,1361861653,1361861654,1361861906,1361861907,1361861908,1361861909,1361861910,1361862162,1361862163,1361862164,1361862165,1361862166,1361862418,1361862419,1361862420,1361862421,1361862422,1361862674,1361862675,1361862676,1361862677,1361862678,1361862930,1361862931,1361862932,1361862933,1361862934,1361863186,1361863187,1361863188,1361863189,1361863190,1361926674,1361926675,1361926676,1361926677,1361926678,1361926930,1361926931,1361926932,1361926933,1361926934,1361927186,1361927187,1361927188,1361927189,1361927190,1361927442,1361927443,1361927444,1361927445,1361927446,1361927698,1361927699,1361927700,1361927701,1361927702,1361927954,1361927955,1361927956,1361927957,1361927958,1361928210,1361928211,1361928212,1361928213,1361928214,1361928466,1361928467,1361928468,1361928469,1361928470,1361928722,1361928723,1361928724,1361928725,1361928726,1361992210,1361992211,1361992212,1361992213,1361992214,1361992466,1361992467,1361992468,1361992469,1361992470,1361992722,1361992723,1361992724,1361992725,1361992726,1361992978,1361992979,1361992980,1361992981,1361992982,1361993234,1361993235,1361993236,1361993237,1361993238,1361993490,1361993491,1361993492,1361993493,1361993494,1361993746,1361993747,1361993748,1361993749,1361993750,1361994002,1361994003,1361994004,1361994005,1361994006,1361994258,1361994259,1361994260,1361994261,1361994262,1362057746,1362057747,1362057748,1362057749,1362057750,1362058002,1362058003,1362058004,1362058005,1362058006,1362058258,1362058259,1362058260,1362058261,1362058262,1362058514,1362058515,1362058516,1362058517,1362058518,1362058770,1362058771,1362058772,1362058773,1362058774,1362059026,1362059027,1362059028,1362059029,1362059030,1362059282,1362059283,1362059284,1362059285,1362059286,1362059538,1362059539,1362059540,1362059541,1362059542,1362059794,1362059795,1362059796,1362059797,1362059798,1362123282,1362123283,1362123284,1362123285,1362123286,1362123538,1362123539,1362123540,1362123541,1362123542,1362123794,1362123795,1362123796,1362123797,1362123798,1362124050,1362124051,1362124052,1362124053,1362124054,1362124306,1362124307,1362124308,1362124309,1362124310,1362124562,1362124563,1362124564,1362124565,1362124566,1362124818,1362124819,1362124820,1362124821,1362124822,1362125074,1362125075,1362125076,1362125077,1362125078,1362125330,1362125331,1362125332,1362125333,1362125334,1362188818,1362188819,1362188820,1362188821,1362188822,1362189074,1362189075,1362189076,1362189077,1362189078,1362189330,1362189331,1362189332,1362189333,1362189334,1362189586,1362189587,1362189588,1362189589,1362189590,1362189842,1362189843,1362189844,1362189845,1362189846,1362190098,1362190099,1362190100,1362190101,1362190102,1362190354,1362190355,1362190356,1362190357,1362190358,1362190610,1362190611,1362190612,1362190613,1362190614,1362190866,1362190867,1362190868,1362190869,1362190870,1362254354,1362254355,1362254356,1362254357,1362254358,1362254610,1362254611,1362254612,1362254613,1362254614,1362254866,1362254867,1362254868,1362254869,1362254870,1362255122,1362255123,1362255124,1362255125,1362255126,1362255378,1362255379,1362255380,1362255381,1362255382,1362255634,1362255635,1362255636,1362255637,1362255638,1362255890,1362255891,1362255892,1362255893,1362255894,1362256146,1362256147,1362256148,1362256149,1362256150,1362256402,1362256403,1362256404,1362256405,1362256406,1362319890,1362319891,1362319892,1362319893,1362319894,1362320146,1362320147,1362320148,1362320149,1362320150,1362320402,1362320403,1362320404,1362320405,1362320406,1362320658,1362320659,1362320660,1362320661,1362320662,1362320914,1362320915,1362320916,1362320917,1362320918,1362321170,1362321171,1362321172,1362321173,1362321174,1362321426,1362321427,1362321428,1362321429,1362321430,1362321682,1362321683,1362321684,1362321685,1362321686,1362321938,1362321939,1362321940,1362321941,1362321942,1362385426,1362385427,1362385428,1362385429,1362385430,1362385682,1362385683,1362385684,1362385685,1362385686,1362385938,1362385939,1362385940,1362385941,1362385942,1362386194,1362386195,1362386196,1362386197,1362386198,1362386450,1362386451,1362386452,1362386453,1362386454,1362386706,1362386707,1362386708,1362386709,1362386710,1362386962,1362386963,1362386964,1362386965,1362386966,1362387218,1362387219,1362387220,1362387221,1362387222,1362387474,1362387475,1362387476,1362387477,1362387478,1362450962,1362450963,1362450964,1362450965,1362450966,1362451218,1362451219,1362451220,1362451221,1362451222,1362451474,1362451475,1362451476,1362451477,1362451478,1362451730,1362451731,1362451732,1362451733,1362451734,1362451986,1362451987,1362451988,1362451989,1362451990,1362452242,1362452243,1362452244,1362452245,1362452246,1362452498,1362452499,1362452500,1362452501,1362452502,1362452754,1362452755,1362452756,1362452757,1362452758,1362453010,1362453011,1362453012,1362453013,1362453014,1362516498,1362516499,1362516500,1362516501,1362516502,1362516754,1362516755,1362516756,1362516757,1362516758,1362517010,1362517011,1362517012,1362517013,1362517014,1362517266,1362517267,1362517268,1362517269,1362517270,1362517522,1362517523,1362517524,1362517525,1362517526,1362517778,1362517779,1362517780,1362517781,1362517782,1362518034,1362518035,1362518036,1362518037,1362518038,1362518290,1362518291,1362518292,1362518293,1362518294,1362518546,1362518547,1362518548,1362518549,1362518550,1362582034,1362582035,1362582036,1362582037,1362582038,1362582290,1362582291,1362582292,1362582293,1362582294,1362582546,1362582547,1362582548,1362582549,1362582550,1362582802,1362582803,1362582804,1362582805,1362582806,1362583058,1362583059,1362583060,1362583061,1362583062,1362583314,1362583315,1362583316,1362583317,1362583318,1362583570,1362583571,1362583572,1362583573,1362583574,1362583826,1362583827,1362583828,1362583829,1362583830,1362584082,1362584083,1362584084,1362584085,1362584086,1362647570,1362647571,1362647572,1362647573,1362647574,1362647826,1362647827,1362647828,1362647829,1362647830,1362648082,1362648083,1362648084,1362648085,1362648086,1362648338,1362648339,1362648340,1362648341,1362648342,1362648594,1362648595,1362648596,1362648597,1362648598,1362648850,1362648851,1362648852,1362648853,1362648854,1362649106,1362649107,1362649108,1362649109,1362649110,1362649362,1362649363,1362649364,1362649365,1362649366,1362649618,1362649619,1362649620,1362649621,1362649622,1362713106,1362713107,1362713108,1362713109,1362713110,1362713362,1362713363,1362713364,1362713365,1362713366,1362713618,1362713619,1362713620,1362713621,1362713622,1362713874,1362713875,1362713876,1362713877,1362713878,1362714130,1362714131,1362714132,1362714133,1362714134,1362714386,1362714387,1362714388,1362714389,1362714390,1362714642,1362714643,1362714644,1362714645,1362714646,1362714898,1362714899,1362714900,1362714901,1362714902,1362715154,1362715155,1362715156,1362715157,1362715158,1362778642,1362778643,1362778644,1362778645,1362778646,1362778898,1362778899,1362778900,1362778901,1362778902,1362779154,1362779155,1362779156,1362779157,1362779158,1362779410,1362779411,1362779412,1362779413,1362779414,1362779666,1362779667,1362779668,1362779669,1362779670,1362779922,1362779923,1362779924,1362779925,1362779926,1362780178,1362780179,1362780180,1362780181,1362780182,1362780434,1362780435,1362780436,1362780437,1362780438,1362780690,1362780691,1362780692,1362780693,1362780694,1362844178,1362844179,1362844180,1362844181,1362844182,1362844434,1362844435,1362844436,1362844437,1362844438,1362844690,1362844691,1362844692,1362844693,1362844694,1362844946,1362844947,1362844948,1362844949,1362844950,1362845202,1362845203,1362845204,1362845205,1362845206,1362845458,1362845459,1362845460,1362845461,1362845462,1362845714,1362845715,1362845716,1362845717,1362845718,1362845970,1362845971,1362845972,1362845973,1362845974,1362846226,1362846227,1362846228,1362846229,1362846230,1362909714,1362909715,1362909716,1362909717,1362909718,1362909970,1362909971,1362909972,1362909973,1362909974,1362910226,1362910227,1362910228,1362910229,1362910230,1362910482,1362910483,1362910484,1362910485,1362910486,1362910738,1362910739,1362910740,1362910741,1362910742,1362910994,1362910995,1362910996,1362910997,1362910998,1362911250,1362911251,1362911252,1362911253,1362911254,1362911506,1362911507,1362911508,1362911509,1362911510,1362911762,1362911763,1362911764,1362911765,1362911766,1362975250,1362975251,1362975252,1362975253,1362975254,1362975506,1362975507,1362975508,1362975509,1362975510,1362975762,1362975763,1362975764,1362975765,1362975766,1362976018,1362976019,1362976020,1362976021,1362976022,1362976274,1362976275,1362976276,1362976277,1362976278,1362976530,1362976531,1362976532,1362976533,1362976534,1362976786,1362976787,1362976788,1362976789,1362976790,1362977042,1362977043,1362977044,1362977045,1362977046,1362977298,1362977299,1362977300,1362977301,1362977302,1363040786,1363040787,1363040788,1363040789,1363040790,1363041042,1363041043,1363041044,1363041045,1363041046,1363041298,1363041299,1363041300,1363041301,1363041302,1363041554,1363041555,1363041556,1363041557,1363041558,1363041810,1363041811,1363041812,1363041813,1363041814,1363042066,1363042067,1363042068,1363042069,1363042070,1363042322,1363042323,1363042324,1363042325,1363042326,1363042578,1363042579,1363042580,1363042581,1363042582,1363042834,1363042835,1363042836,1363042837,1363042838,1363106322,1363106323,1363106324,1363106325,1363106326,1363106578,1363106579,1363106580,1363106581,1363106582,1363106834,1363106835,1363106836,1363106837,1363106838,1363107090,1363107091,1363107092,1363107093,1363107094,1363107346,1363107347,1363107348,1363107349,1363107350,1363107602,1363107603,1363107604,1363107605,1363107606,1363107858,1363107859,1363107860,1363107861,1363107862,1363108114,1363108115,1363108116,1363108117,1363108118,1363108370,1363108371,1363108372,1363108373,1363108374,1363171858,1363171859,1363171860,1363171861,1363171862,1363172114,1363172115,1363172116,1363172117,1363172118,1363172370,1363172371,1363172372,1363172373,1363172374,1363172626,1363172627,1363172628,1363172629,1363172630,1363172882,1363172883,1363172884,1363172885,1363172886,1363173138,1363173139,1363173140,1363173141,1363173142,1363173394,1363173395,1363173396,1363173397,1363173398,1363173650,1363173651,1363173652,1363173653,1363173654,1363173906,1363173907,1363173908,1363173909,1363173910,1363237394,1363237395,1363237396,1363237397,1363237398,1363237650,1363237651,1363237652,1363237653,1363237654,1363237906,1363237907,1363237908,1363237909,1363237910,1363238162,1363238163,1363238164,1363238165,1363238166,1363238418,1363238419,1363238420,1363238421,1363238422,1363238674,1363238675,1363238676,1363238677,1363238678,1363238930,1363238931,1363238932,1363238933,1363238934,1363239186,1363239187,1363239188,1363239189,1363239190,1363239442,1363239443,1363239444,1363239445,1363239446,1363302930,1363302931,1363302932,1363302933,1363302934,1363303186,1363303187,1363303188,1363303189,1363303190,1363303442,1363303443,1363303444,1363303445,1363303446,1363303698,1363303699,1363303700,1363303701,1363303702,1363303954,1363303955,1363303956,1363303957,1363303958,1363304210,1363304211,1363304212,1363304213,1363304214,1363304466,1363304467,1363304468,1363304469,1363304470,1363304722,1363304723,1363304724,1363304725,1363304726,1363304978,1363304979,1363304980,1363304981,1363304982,1363368466,1363368467,1363368468,1363368469,1363368470,1363368722,1363368723,1363368724,1363368725,1363368726,1363368978,1363368979,1363368980,1363368981,1363368982,1363369234,1363369235,1363369236,1363369237,1363369238,1363369490,1363369491,1363369492,1363369493,1363369494,1363369746,1363369747,1363369748,1363369749,1363369750,1363370002,1363370003,1363370004,1363370005,1363370006,1363370258,1363370259,1363370260,1363370261,1363370262,1363370514,1363370515,1363370516,1363370517,1363370518,1363434002,1363434003,1363434004,1363434005,1363434006,1363434258,1363434259,1363434260,1363434261,1363434262,1363434514,1363434515,1363434516,1363434517,1363434518,1363434770,1363434771,1363434772,1363434773,1363434774,1363435026,1363435027,1363435028,1363435029,1363435030,1363435282,1363435283,1363435284,1363435285,1363435286,1363435538,1363435539,1363435540,1363435541,1363435542,1363435794,1363435795,1363435796,1363435797,1363435798,1363436050,1363436051,1363436052,1363436053,1363436054,1363499538,1363499539,1363499540,1363499541,1363499542,1363499794,1363499795,1363499796,1363499797,1363499798,1363500050,1363500051,1363500052,1363500053,1363500054,1363500306,1363500307,1363500308,1363500309,1363500310,1363500562,1363500563,1363500564,1363500565,1363500566,1363500818,1363500819,1363500820,1363500821,1363500822,1363501074,1363501075,1363501076,1363501077,1363501078,1363501330,1363501331,1363501332,1363501333,1363501334,1363501586,1363501587,1363501588,1363501589,1363501590,1363565074,1363565075,1363565076,1363565077,1363565078,1363565330,1363565331,1363565332,1363565333,1363565334,1363565586,1363565587,1363565588,1363565589,1363565590,1363565842,1363565843,1363565844,1363565845,1363565846,1363566098,1363566099,1363566100,1363566101,1363566102,1363566354,1363566355,1363566356,1363566357,1363566358,1363566610,1363566611,1363566612,1363566613,1363566614,1363566866,1363566867,1363566868,1363566869,1363566870,1363567122,1363567123,1363567124,1363567125,1363567126,1363630610,1363630611,1363630612,1363630613,1363630614,1363630866,1363630867,1363630868,1363630869,1363630870,1363631122,1363631123,1363631124,1363631125,1363631126,1363631378,1363631379,1363631380,1363631381,1363631382,1363631634,1363631635,1363631636,1363631637,1363631638,1363631890,1363631891,1363631892,1363631893,1363631894,1363632146,1363632147,1363632148,1363632149,1363632150,1363632402,1363632403,1363632404,1363632405,1363632406,1363632658,1363632659,1363632660,1363632661,1363632662,1363696146,1363696147,1363696148,1363696149,1363696150,1363696402,1363696403,1363696404,1363696405,1363696406,1363696658,1363696659,1363696660,1363696661,1363696662,1363696914,1363696915,1363696916,1363696917,1363696918,1363697170,1363697171,1363697172,1363697173,1363697174,1363697426,1363697427,1363697428,1363697429,1363697430,1363697682,1363697683,1363697684,1363697685,1363697686,1363697938,1363697939,1363697940,1363697941,1363697942,1363698194,1363698195,1363698196,1363698197,1363698198,1363761682,1363761683,1363761684,1363761685,1363761686,1363761938,1363761939,1363761940,1363761941,1363761942,1363762194,1363762195,1363762196,1363762197,1363762198,1363762450,1363762451,1363762452,1363762453,1363762454,1363762706,1363762707,1363762708,1363762709,1363762710,1363762962,1363762963,1363762964,1363762965,1363762966,1363763218,1363763219,1363763220,1363763221,1363763222,1363763474,1363763475,1363763476,1363763477,1363763478,1363763730,1363763731,1363763732,1363763733,1363763734,1363827218,1363827219,1363827220,1363827221,1363827222,1363827474,1363827475,1363827476,1363827477,1363827478,1363827730,1363827731,1363827732,1363827733,1363827734,1363827986,1363827987,1363827988,1363827989,1363827990,1363828242,1363828243,1363828244,1363828245,1363828246,1363828498,1363828499,1363828500,1363828501,1363828502,1363828754,1363828755,1363828756,1363828757,1363828758,1363829010,1363829011,1363829012,1363829013,1363829014,1363829266,1363829267,1363829268,1363829269,1363829270,1363892754,1363892755,1363892756,1363892757,1363892758,1363893010,1363893011,1363893012,1363893013,1363893014,1363893266,1363893267,1363893268,1363893269,1363893270,1363893522,1363893523,1363893524,1363893525,1363893526,1363893778,1363893779,1363893780,1363893781,1363893782,1363894034,1363894035,1363894036,1363894037,1363894038,1363894290,1363894291,1363894292,1363894293,1363894294,1363894546,1363894547,1363894548,1363894549,1363894550,1363894802,1363894803,1363894804,1363894805,1363894806,1363958290,1363958291,1363958292,1363958293,1363958294,1363958546,1363958547,1363958548,1363958549,1363958550,1363958802,1363958803,1363958804,1363958805,1363958806,1363959058,1363959059,1363959060,1363959061,1363959062,1363959314,1363959315,1363959316,1363959317,1363959318,1363959570,1363959571,1363959572,1363959573,1363959574,1363959826,1363959827,1363959828,1363959829,1363959830,1363960082,1363960083,1363960084,1363960085,1363960086,1363960338,1363960339,1363960340,1363960341,1363960342,1364023826,1364023827,1364023828,1364023829,1364023830,1364024082,1364024083,1364024084,1364024085,1364024086,1364024338,1364024339,1364024340,1364024341,1364024342,1364024594,1364024595,1364024596,1364024597,1364024598,1364024850,1364024851,1364024852,1364024853,1364024854,1364025106,1364025107,1364025108,1364025109,1364025110,1364025362,1364025363,1364025364,1364025365,1364025366,1364025618,1364025619,1364025620,1364025621,1364025622,1364025874,1364025875,1364025876,1364025877,1364025878,1364089362,1364089363,1364089364,1364089365,1364089366,1364089618,1364089619,1364089620,1364089621,1364089622,1364089874,1364089875,1364089876,1364089877,1364089878,1364090130,1364090131,1364090132,1364090133,1364090134,1364090386,1364090387,1364090388,1364090389,1364090390,1364090642,1364090643,1364090644,1364090645,1364090646,1364090898,1364090899,1364090900,1364090901,1364090902,1364091154,1364091155,1364091156,1364091157,1364091158,1364091410,1364091411,1364091412,1364091413,1364091414,1364154898,1364154899,1364154900,1364154901,1364154902,1364155154,1364155155,1364155156,1364155157,1364155158,1364155410,1364155411,1364155412,1364155413,1364155414,1364155666,1364155667,1364155668,1364155669,1364155670,1364155922,1364155923,1364155924,1364155925,1364155926,1364156178,1364156179,1364156180,1364156181,1364156182,1364156434,1364156435,1364156436,1364156437,1364156438,1364156690,1364156691,1364156692,1364156693,1364156694,1364156946,1364156947,1364156948,1364156949,1364156950,1364220434,1364220435,1364220436,1364220437,1364220438,1364220690,1364220691,1364220692,1364220693,1364220694,1364220946,1364220947,1364220948,1364220949,1364220950,1364221202,1364221203,1364221204,1364221205,1364221206,1364221458,1364221459,1364221460,1364221461,1364221462,1364221714,1364221715,1364221716,1364221717,1364221718,1364221970,1364221971,1364221972,1364221973,1364221974,1364222226,1364222227,1364222228,1364222229,1364222230,1364222482,1364222483,1364222484,1364222485,1364222486,1364285970,1364285971,1364285972,1364285973,1364285974,1364286226,1364286227,1364286228,1364286229,1364286230,1364286482,1364286483,1364286484,1364286485,1364286486,1364286738,1364286739,1364286740,1364286741,1364286742,1364286994,1364286995,1364286996,1364286997,1364286998,1364287250,1364287251,1364287252,1364287253,1364287254,1364287506,1364287507,1364287508,1364287509,1364287510,1364287762,1364287763,1364287764,1364287765,1364287766,1364288018,1364288019,1364288020,1364288021,1364288022,1364351506,1364351507,1364351508,1364351509,1364351510,1364351762,1364351763,1364351764,1364351765,1364351766,1364352018,1364352019,1364352020,1364352021,1364352022,1364352274,1364352275,1364352276,1364352277,1364352278,1364352530,1364352531,1364352532,1364352533,1364352534,1364352786,1364352787,1364352788,1364352789,1364352790,1364353042,1364353043,1364353044,1364353045,1364353046,1364353298,1364353299,1364353300,1364353301,1364353302,1364353554,1364353555,1364353556,1364353557,1364353558,1364417042,1364417043,1364417044,1364417045,1364417046,1364417298,1364417299,1364417300,1364417301,1364417302,1364417554,1364417555,1364417556,1364417557,1364417558,1364417810,1364417811,1364417812,1364417813,1364417814,1364418066,1364418067,1364418068,1364418069,1364418070,1364418322,1364418323,1364418324,1364418325,1364418326,1364418578,1364418579,1364418580,1364418581,1364418582,1364418834,1364418835,1364418836,1364418837,1364418838,1364419090,1364419091,1364419092,1364419093,1364419094,1364482578,1364482579,1364482580,1364482581,1364482582,1364482834,1364482835,1364482836,1364482837,1364482838,1364483090,1364483091,1364483092,1364483093,1364483094,1364483346,1364483347,1364483348,1364483349,1364483350,1364483602,1364483603,1364483604,1364483605,1364483606,1364483858,1364483859,1364483860,1364483861,1364483862,1364484114,1364484115,1364484116,1364484117,1364484118,1364484370,1364484371,1364484372,1364484373,1364484374,1364484626,1364484627,1364484628,1364484629,1364484630,1364548114,1364548115,1364548116,1364548117,1364548118,1364548370,1364548371,1364548372,1364548373,1364548374,1364548626,1364548627,1364548628,1364548629,1364548630,1364548882,1364548883,1364548884,1364548885,1364548886,1364549138,1364549139,1364549140,1364549141,1364549142,1364549394,1364549395,1364549396,1364549397,1364549398,1364549650,1364549651,1364549652,1364549653,1364549654,1364549906,1364549907,1364549908,1364549909,1364549910,1364550162,1364550163,1364550164,1364550165,1364550166,1364613650,1364613651,1364613652,1364613653,1364613654,1364613906,1364613907,1364613908,1364613909,1364613910,1364614162,1364614163,1364614164,1364614165,1364614166,1364614418,1364614419,1364614420,1364614421,1364614422,1364614674,1364614675,1364614676,1364614677,1364614678,1364614930,1364614931,1364614932,1364614933,1364614934,1364615186,1364615187,1364615188,1364615189,1364615190,1364615442,1364615443,1364615444,1364615445,1364615446,1364615698,1364615699,1364615700,1364615701,1364615702,1364679186,1364679187,1364679188,1364679189,1364679190,1364679442,1364679443,1364679444,1364679445,1364679446,1364679698,1364679699,1364679700,1364679701,1364679702,1364679954,1364679955,1364679956,1364679957,1364679958,1364680210,1364680211,1364680212,1364680213,1364680214,1364680466,1364680467,1364680468,1364680469,1364680470,1364680722,1364680723,1364680724,1364680725,1364680726,1364680978,1364680979,1364680980,1364680981,1364680982,1364681234,1364681235,1364681236,1364681237,1364681238,1364744722,1364744723,1364744724,1364744725,1364744726,1364744978,1364744979,1364744980,1364744981,1364744982,1364745234,1364745235,1364745236,1364745237,1364745238,1364745490,1364745491,1364745492,1364745493,1364745494,1364745746,1364745747,1364745748,1364745749,1364745750,1364746002,1364746003,1364746004,1364746005,1364746006,1364746258,1364746259,1364746260,1364746261,1364746262,1364746514,1364746515,1364746516,1364746517,1364746518,1364746770,1364746771,1364746772,1364746773,1364746774,1364810258,1364810259,1364810260,1364810261,1364810262,1364810514,1364810515,1364810516,1364810517,1364810518,1364810770,1364810771,1364810772,1364810773,1364810774,1364811026,1364811027,1364811028,1364811029,1364811030,1364811282,1364811283,1364811284,1364811285,1364811286,1364811538,1364811539,1364811540,1364811541,1364811542,1364811794,1364811795,1364811796,1364811797,1364811798,1364812050,1364812051,1364812052,1364812053,1364812054,1364812306,1364812307,1364812308,1364812309,1364812310,1364875794,1364875795,1364875796,1364875797,1364875798,1364876050,1364876051,1364876052,1364876053,1364876054,1364876306,1364876307,1364876308,1364876309,1364876310,1364876562,1364876563,1364876564,1364876565,1364876566,1364876818,1364876819,1364876820,1364876821,1364876822,1364877074,1364877075,1364877076,1364877077,1364877078,1364877330,1364877331,1364877332,1364877333,1364877334,1364877586,1364877587,1364877588,1364877589,1364877590,1364877842,1364877843,1364877844,1364877845,1364877846,1364941330,1364941331,1364941332,1364941333,1364941334,1364941586,1364941587,1364941588,1364941589,1364941590,1364941842,1364941843,1364941844,1364941845,1364941846,1364942098,1364942099,1364942100,1364942101,1364942102,1364942354,1364942355,1364942356,1364942357,1364942358,1364942610,1364942611,1364942612,1364942613,1364942614,1364942866,1364942867,1364942868,1364942869,1364942870,1364943122,1364943123,1364943124,1364943125,1364943126,1364943378,1364943379,1364943380,1364943381,1364943382,1365006866,1365006867,1365006868,1365006869,1365006870,1365007122,1365007123,1365007124,1365007125,1365007126,1365007378,1365007379,1365007380,1365007381,1365007382,1365007634,1365007635,1365007636,1365007637,1365007638,1365007890,1365007891,1365007892,1365007893,1365007894,1365008146,1365008147,1365008148,1365008149,1365008150,1365008402,1365008403,1365008404,1365008405,1365008406,1365008658,1365008659,1365008660,1365008661,1365008662,1365008914,1365008915,1365008916,1365008917,1365008918,1365072402,1365072403,1365072404,1365072405,1365072406,1365072658,1365072659,1365072660,1365072661,1365072662,1365072914,1365072915,1365072916,1365072917,1365072918,1365073170,1365073171,1365073172,1365073173,1365073174,1365073426,1365073427,1365073428,1365073429,1365073430,1365073682,1365073683,1365073684,1365073685,1365073686,1365073938,1365073939,1365073940,1365073941,1365073942,1365074194,1365074195,1365074196,1365074197,1365074198,1365074450,1365074451,1365074452,1365074453,1365074454,1365137938,1365137939,1365137940,1365137941,1365137942,1365138194,1365138195,1365138196,1365138197,1365138198,1365138450,1365138451,1365138452,1365138453,1365138454,1365138706,1365138707,1365138708,1365138709,1365138710,1365138962,1365138963,1365138964,1365138965,1365138966,1365139218,1365139219,1365139220,1365139221,1365139222,1365139474,1365139475,1365139476,1365139477,1365139478,1365139730,1365139731,1365139732,1365139733,1365139734,1365139986,1365139987,1365139988,1365139989,1365139990,1365203474,1365203475,1365203476,1365203477,1365203478,1365203730,1365203731,1365203732,1365203733,1365203734,1365203986,1365203987,1365203988,1365203989,1365203990,1365204242,1365204243,1365204244,1365204245,1365204246,1365204498,1365204499,1365204500,1365204501,1365204502,1365204754,1365204755,1365204756,1365204757,1365204758,1365205010,1365205011,1365205012,1365205013,1365205014,1365205266,1365205267,1365205268,1365205269,1365205270,1365205522,1365205523,1365205524,1365205525,1365205526,1365269010,1365269011,1365269012,1365269013,1365269014,1365269266,1365269267,1365269268,1365269269,1365269270,1365269522,1365269523,1365269524,1365269525,1365269526,1365269778,1365269779,1365269780,1365269781,1365269782,1365270034,1365270035,1365270036,1365270037,1365270038,1365270290,1365270291,1365270292,1365270293,1365270294,1365270546,1365270547,1365270548,1365270549,1365270550,1365270802,1365270803,1365270804,1365270805,1365270806,1365271058,1365271059,1365271060,1365271061,1365271062,1365334546,1365334547,1365334548,1365334549,1365334550,1365334802,1365334803,1365334804,1365334805,1365334806,1365335058,1365335059,1365335060,1365335061,1365335062,1365335314,1365335315,1365335316,1365335317,1365335318,1365335570,1365335571,1365335572,1365335573,1365335574,1365335826,1365335827,1365335828,1365335829,1365335830,1365336082,1365336083,1365336084,1365336085,1365336086,1365336338,1365336339,1365336340,1365336341,1365336342,1365336594,1365336595,1365336596,1365336597,1365336598,1365400082,1365400083,1365400084,1365400085,1365400086,1365400338,1365400339,1365400340,1365400341,1365400342,1365400594,1365400595,1365400596,1365400597,1365400598,1365400850,1365400851,1365400852,1365400853,1365400854,1365401106,1365401107,1365401108,1365401109,1365401110,1365401362,1365401363,1365401364,1365401365,1365401366,1365401618,1365401619,1365401620,1365401621,1365401622,1365401874,1365401875,1365401876,1365401877,1365401878,1365402130,1365402131,1365402132,1365402133,1365402134,1365465618,1365465619,1365465620,1365465621,1365465622,1365465874,1365465875,1365465876,1365465877,1365465878,1365466130,1365466131,1365466132,1365466133,1365466134,1365466386,1365466387,1365466388,1365466389,1365466390,1365466642,1365466643,1365466644,1365466645,1365466646,1365466898,1365466899,1365466900,1365466901,1365466902,1365467154,1365467155,1365467156,1365467157,1365467158,1365467410,1365467411,1365467412,1365467413,1365467414,1365467666,1365467667,1365467668,1365467669,1365467670,1365531154,1365531155,1365531156,1365531157,1365531158,1365531410,1365531411,1365531412,1365531413,1365531414,1365531666,1365531667,1365531668,1365531669,1365531670,1365531922,1365531923,1365531924,1365531925,1365531926,1365532178,1365532179,1365532180,1365532181,1365532182,1365532434,1365532435,1365532436,1365532437,1365532438,1365532690,1365532691,1365532692,1365532693,1365532694,1365532946,1365532947,1365532948,1365532949,1365532950,1365533202,1365533203,1365533204,1365533205,1365533206,1365596690,1365596691,1365596692,1365596693,1365596694,1365596946,1365596947,1365596948,1365596949,1365596950,1365597202,1365597203,1365597204,1365597205,1365597206,1365597458,1365597459,1365597460,1365597461,1365597462,1365597714,1365597715,1365597716,1365597717,1365597718,1365597970,1365597971,1365597972,1365597973,1365597974,1365598226,1365598227,1365598228,1365598229,1365598230,1365598482,1365598483,1365598484,1365598485,1365598486,1365598738,1365598739,1365598740,1365598741,1365598742,1365662226,1365662227,1365662228,1365662229,1365662230,1365662482,1365662483,1365662484,1365662485,1365662486,1365662738,1365662739,1365662740,1365662741,1365662742,1365662994,1365662995,1365662996,1365662997,1365662998,1365663250,1365663251,1365663252,1365663253,1365663254,1365663506,1365663507,1365663508,1365663509,1365663510,1365663762,1365663763,1365663764,1365663765,1365663766,1365664018,1365664019,1365664020,1365664021,1365664022,1365664274,1365664275,1365664276,1365664277,1365664278,1365727762,1365727763,1365727764,1365727765,1365727766,1365728018,1365728019,1365728020,1365728021,1365728022,1365728274,1365728275,1365728276,1365728277,1365728278,1365728530,1365728531,1365728532,1365728533,1365728534,1365728786,1365728787,1365728788,1365728789,1365728790,1365729042,1365729043,1365729044,1365729045,1365729046,1365729298,1365729299,1365729300,1365729301,1365729302,1365729554,1365729555,1365729556,1365729557,1365729558,1365729810,1365729811,1365729812,1365729813,1365729814,1365793298,1365793299,1365793300,1365793301,1365793302,1365793554,1365793555,1365793556,1365793557,1365793558,1365793810,1365793811,1365793812,1365793813,1365793814,1365794066,1365794067,1365794068,1365794069,1365794070,1365794322,1365794323,1365794324,1365794325,1365794326,1365794578,1365794579,1365794580,1365794581,1365794582,1365794834,1365794835,1365794836,1365794837,1365794838,1365795090,1365795091,1365795092,1365795093,1365795094,1365795346,1365795347,1365795348,1365795349,1365795350,1365858834,1365858835,1365858836,1365858837,1365858838,1365859090,1365859091,1365859092,1365859093,1365859094,1365859346,1365859347,1365859348,1365859349,1365859350,1365859602,1365859603,1365859604,1365859605,1365859606,1365859858,1365859859,1365859860,1365859861,1365859862,1365860114,1365860115,1365860116,1365860117,1365860118,1365860370,1365860371,1365860372,1365860373,1365860374,1365860626,1365860627,1365860628,1365860629,1365860630,1365860882,1365860883,1365860884,1365860885,1365860886,1365924370,1365924371,1365924372,1365924373,1365924374,1365924626,1365924627,1365924628,1365924629,1365924630,1365924882,1365924883,1365924884,1365924885,1365924886,1365925138,1365925139,1365925140,1365925141,1365925142,1365925394,1365925395,1365925396,1365925397,1365925398,1365925650,1365925651,1365925652,1365925653,1365925654,1365925906,1365925907,1365925908,1365925909,1365925910,1365926162,1365926163,1365926164,1365926165,1365926166,1365926418,1365926419,1365926420,1365926421,1365926422,1365989906,1365989907,1365989908,1365989909,1365989910,1365990162,1365990163,1365990164,1365990165,1365990166,1365990418,1365990419,1365990420,1365990421,1365990422,1365990674,1365990675,1365990676,1365990677,1365990678,1365990930,1365990931,1365990932,1365990933,1365990934,1365991186,1365991187,1365991188,1365991189,1365991190,1365991442,1365991443,1365991444,1365991445,1365991446,1365991698,1365991699,1365991700,1365991701,1365991702,1365991954,1365991955,1365991956,1365991957,1365991958,1366055442,1366055443,1366055444,1366055445,1366055446,1366055698,1366055699,1366055700,1366055701,1366055702,1366055954,1366055955,1366055956,1366055957,1366055958,1366056210,1366056211,1366056212,1366056213,1366056214,1366056466,1366056467,1366056468,1366056469,1366056470,1366056722,1366056723,1366056724,1366056725,1366056726,1366056978,1366056979,1366056980,1366056981,1366056982,1366057234,1366057235,1366057236,1366057237,1366057238,1366057490,1366057491,1366057492,1366057493,1366057494,1366120978,1366120979,1366120980,1366120981,1366120982,1366121234,1366121235,1366121236,1366121237,1366121238,1366121490,1366121491,1366121492,1366121493,1366121494,1366121746,1366121747,1366121748,1366121749,1366121750,1366122002,1366122003,1366122004,1366122005,1366122006,1366122258,1366122259,1366122260,1366122261,1366122262,1366122514,1366122515,1366122516,1366122517,1366122518,1366122770,1366122771,1366122772,1366122773,1366122774,1366123026,1366123027,1366123028,1366123029,1366123030,1366186514,1366186515,1366186516,1366186517,1366186518,1366186770,1366186771,1366186772,1366186773,1366186774,1366187026,1366187027,1366187028,1366187029,1366187030,1366187282,1366187283,1366187284,1366187285,1366187286,1366187538,1366187539,1366187540,1366187541,1366187542,1366187794,1366187795,1366187796,1366187797,1366187798,1366188050,1366188051,1366188052,1366188053,1366188054,1366188306,1366188307,1366188308,1366188309,1366188310,1366188562,1366188563,1366188564,1366188565,1366188566,1366252050,1366252051,1366252052,1366252053,1366252054,1366252306,1366252307,1366252308,1366252309,1366252310,1366252562,1366252563,1366252564,1366252565,1366252566,1366252818,1366252819,1366252820,1366252821,1366252822,1366253074,1366253075,1366253076,1366253077,1366253078,1366253330,1366253331,1366253332,1366253333,1366253334,1366253586,1366253587,1366253588,1366253589,1366253590,1366253842,1366253843,1366253844,1366253845,1366253846,1366254098,1366254099,1366254100,1366254101,1366254102,1366317586,1366317587,1366317588,1366317589,1366317590,1366317842,1366317843,1366317844,1366317845,1366317846,1366318098,1366318099,1366318100,1366318101,1366318102,1366318354,1366318355,1366318356,1366318357,1366318358,1366318610,1366318611,1366318612,1366318613,1366318614,1366318866,1366318867,1366318868,1366318869,1366318870,1366319122,1366319123,1366319124,1366319125,1366319126,1366319378,1366319379,1366319380,1366319381,1366319382,1366319634,1366319635,1366319636,1366319637,1366319638],\"palette\":[-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-6117761,-11842741,-5783094,-11842741,-10171190,-11842741,-11842741,-11842741,-7038586,-11842741,-13927717,-11842741,-9076146,-11842741,-10592674,-11842741,-3287090,-11842741,-4070678,-11842741,-6641306,-11842741,-1,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741,-11842741]}"
  },
  {
    "path": "data/monu9.json",
    "content": "{\n\t\"voxels\": [957296688, 692738134, 990206000, 957561389, 990655313, 991048022, 990129939, 991178065, 692672048, 990787159, 993678663, 990917206, 991179097, 990654539, 957429037, 957493796, 754995718, 993670742, 993678915, 957626675, 990654037, 990656598, 692738604, 689315911, 993472085, 990916430, 957624624, 993406549, 692868401, 957691953, 990655830, 993744729, 692868694, 990983257, 993668692, 692738393, 990591576, 990130955, 993678911, 990917717, 692672855, 692672597, 692672601, 692671573, 692672600, 993679179, 957362737, 990720855, 990654803, 993673302, 990654038, 990074927, 957427747, 993155117, 993672537, 990337072, 993407062, 993677400, 991844656, 993679443, 990263087, 993407061, 692934744, 993275737, 991189038, 957301551, 957624610, 692803884, 957361447, 990400819, 993744473, 989997320, 990785109, 993679160, 692868181, 991179340, 957496109, 957496621, 990915928, 990719798, 991244107, 993678936, 991843120, 993013849, 990393689, 990400049, 990140206, 990006061, 990008622, 990457108, 990982732, 990785102, 991254064, 991180888, 754988597, 993341273, 992751444, 992816686, 692738348, 957495087, 993078873, 990916687, 692934743, 993676117, 992751705, 754978077, 692934963, 993669961, 993674585, 993679448, 990655057, 993670743, 993210197, 990916181, 520293703, 991243796, 993675861, 993537624, 990719570, 692737327, 957497139, 692989526, 957561134, 990979397, 993472853, 754978121, 991244368, 692869166, 957690670, 692868436, 993483055, 990723160, 1058415429, 991843375, 990589203, 692924502, 990981462, 990065171, 957296690, 957627698, 993209941, 957493033, 957561906, 991178581, 957692466, 957627699, 692999218, 993678423, 754986295, 957364014, 990130197, 991243798, 993673048, 993669198, 993679175, 957428784, 957300014, 991048272, 993668689, 993678928, 990129933, 990917721, 754995971, 993676119, 957498157, 990989615, 993144663, 990589778, 957428521, 989935403, 991044426, 990532142, 992565551, 993079125, 991048023, 993613615, 990662702, 990327052, 754995484, 989932818, 993678653, 957493543, 993673557, 754996015, 692999768, 993677654, 991046997, 957364528, 991244369, 990269998, 692803121, 792417368, 990139440, 993679436, 957496877, 990654215, 520310055, 989929225, 991243598, 422393136, 990060554, 993673304, 957495600, 990786649, 692868951, 993671510, 992816723, 957559347, 991384880, 993670488, 990721066, 792417367, 957627439, 993668951, 692989527, 990129683, 990465071, 990074160, 957427496, 990400050, 692606803, 993677871, 993482799, 992761903, 992816468, 990916428, 754994992, 990456388, 957691437, 693000240, 990009136, 991048015, 957624871, 991048793, 1058414408, 990524236, 957624366, 957493544, 692737328, 991179533, 990785039, 692990040, 993670998, 991245133, 991249966, 692672557, 990261268, 993407321, 993678659, 990916175, 992882265, 993669721, 993472598, 993669711, 957560883, 989929481, 957497650, 993678661, 990789465, 957365550, 989944110, 989994761, 993670231, 990195477, 993679430, 991048019, 990984025, 992303406, 990656084, 993668942, 993669719, 991048792, 993674581, 692803926, 993603161, 993678932, 990984535, 957493039, 957623849, 692737588, 993407317, 692924758, 990719819, 992686640, 991244372, 990919508, 990588423, 992752174, 692869425, 990981465, 991047765, 957495088, 991051862, 692934957, 993144406, 993022765, 990918229, 993472341, 993677905, 990721368, 692934741, 991179350, 991385392, 957559593, 692738352, 692869204, 991049811, 957559601, 991179600, 993744985, 957625127, 692868911, 991049815, 692989528, 692672560, 957428014, 692924247, 990073904, 993678657, 990523400, 993676889, 990984787, 692802866, 990259503, 993672533, 993548335, 957426985, 692924505, 990199635, 990205488, 993669717, 993210710, 990389064, 520181268, 993678425, 991178827, 990261011, 991180376, 993799507, 994400601, 993668697, 754995968, 993677914, 692671532, 991516719, 692737073, 993679178, 957623593, 957363760, 990729263, 993679181, 990589271, 991243795, 992695856, 990721369, 692803160, 957495603, 692672044, 993679420, 957428009, 957559855, 993275477, 990400045, 993351983, 993024045, 692737070, 990859309, 993537878, 993407065, 990587440, 993679434, 993679188, 991516207, 992434221, 1058414921, 991646512, 993668688, 993144920, 957428265, 993679958, 992686130, 993219632, 692923990, 990008111, 990394159, 991049812, 956511024, 990588471, 957689376, 993341782, 993669459, 957297965, 993669461, 692531796, 993537881, 991582509, 990523212, 692672562, 990784774, 990126603, 990663727, 990260998, 990981707, 990587187, 692924755, 692869206, 993472343, 990064144, 993674328, 990982663, 993275479, 991319856, 692934446, 993675568, 991179343, 993079381, 990334511, 692934958, 990655573, 990128681, 754996487, 991516206, 957296681, 990523724, 993679429, 989932808, 990786648, 993603673, 991180627, 990523989, 990722646, 692737068, 990006318, 990456906, 991047254, 692671794, 957689651, 993341528, 692738356, 993668683, 692530772, 692737836, 991120686, 422391853, 992424241, 991244117, 993679703, 993678656, 990196499, 990916429, 993669207, 989941549, 990915924, 993678654, 990466608, 991712048, 957690408, 692933936, 692934487, 692934742, 990139952, 754995759, 692738094, 992554803, 990068567, 989930058, 990064142, 993673046, 957298991, 990657622, 993275481, 990720334, 957365554, 992751921, 957362477, 992039984, 957689378, 991178828, 991187759, 990656083, 991179346, 957694514, 692672596, 991048534, 993669208, 692802608, 993674069, 692672049, 990654036, 989929737, 957690153, 992948313, 990330966, 993669197, 957690157, 993674584, 993677658, 993668940, 692868143, 990982229, 993285935, 990265685, 990656086, 993275736, 989995017, 693000278, 993679425, 993670741, 993669456, 992433967, 991122221, 990921048, 993679679, 692672857, 991047510, 992696623, 957558567, 993275478, 990925615, 692737110, 957629487, 957366317, 692869165, 990271279, 990467378, 990915922, 990851671, 990917452, 991186990, 520492104, 990327606, 993285678, 993679707, 520164670, 692923736, 990983256, 992827183, 957493792, 993014105, 993079638, 991121710, 990979146, 993679695, 990992173, 692737074, 990654029, 990456392, 692990291, 957296425, 990060297, 993079641, 991048528, 991050323, 957430067, 989995526, 957363506, 957497138, 990788179, 993678916, 957494323, 989943341, 991121455, 957623590, 990585158, 990466607, 990531887, 991123760, 957492783, 993672278, 990915929, 993679191, 989942831, 991581998, 991581743, 994400595, 692923733, 957431088, 957493539, 991048276, 692673069, 957492787, 993677401, 993210198, 991048277, 692868398, 993669718, 692803379, 692803887, 991178829, 957297189, 993210455, 993276249, 993537621, 990271024, 957426982, 990663726, 692803412, 692802901, 692738096, 993276245, 993668684, 692803124, 993678421, 991049046, 991046999, 990399790, 990524247, 991244370, 993679174, 692737071, 993679171, 957691187, 993669960, 991180373, 957625128, 990851921, 991179351, 990917460, 692673068, 991048280, 990789461, 692869424, 957363507, 990657111, 994203993, 990981387, 989933074, 692671533, 957626929, 993079383, 993679176, 991843374, 990851338, 692934230, 990920024, 754997769, 991244108, 957362729, 993669464, 990006831, 754978583, 991047187, 990460760, 991057710, 692737324, 993876307, 993678907, 990525523, 692934229, 692737584, 692802644, 993679438, 990531119, 991180116, 993679180, 993679422, 957493285, 957428000, 957362994, 991179088, 957361968, 990455108, 957562162, 993672535, 692738092, 990009135, 993679437, 992817711, 754986033, 991048788, 692803889, 957694768, 754983944, 993678926, 990457161, 992367663, 993671766, 992883029, 993679417, 692868402, 692924761, 990006829, 990785625, 993674325, 957627695, 991047499, 692737837, 957560367, 991046933, 990522896, 692803375, 992620081, 957558052, 993014356, 957625129, 990064403, 992752467, 993603416, 993674838, 692924246, 990981394, 692868949, 993669705, 990719316, 991450926, 990531118, 993417519, 692868437, 692737838, 991179094, 957690665, 692934191, 991178066, 692924249, 692804143, 993079639, 990917196, 957432624, 1058415430, 990060294, 993678424, 989999379, 692737367, 993275734, 957625905, 990008112, 990851409, 990916176, 692672302, 990522700, 993678427, 957361446, 990861614, 957428258, 990918995, 990981652, 991180375, 957692463, 990785038, 990982219, 692804142, 990662701, 957623600, 991243602, 990719574, 990786135, 993680219, 993275993, 990722899, 993678171, 990591571, 991240777, 990915917, 990784854, 991516973, 692673071, 993669703, 990140207, 957689641, 993941849, 692738136, 993679167, 692606547, 990982487, 957562157, 957496624, 692934449, 992817497, 692868695, 993145173, 991179090, 993678422, 957690409, 692868656, 957299246, 993678922, 990785614, 990599215, 991048024, 989941806, 692923735, 956510513, 993275989, 991122734, 991047757, 993210199, 692737839, 692867889, 991450160, 957690151, 957493281, 692868948, 990719565, 693000280, 993679956, 692737365, 692868142, 692737841, 990270509, 991243861, 957295911, 993671511, 992957742, 957429808, 993678679, 991112537, 990523214, 992498990, 957558816, 993676373, 991048279, 990917384, 993341784, 993679684, 957689133, 993677398, 692934445, 990918742, 692540209, 993275480, 692923993, 993673045, 990720593, 993673815, 520161066, 990719824, 692531033, 992817454, 692868144, 692868397, 989929993, 957624361, 991049813, 990719312, 692868696, 990656089, 990916117, 993678170, 991178062, 692803414, 992630575, 991180628, 991180889, 957230384, 992433713, 692672813, 991178063, 692672558, 990523478, 957431086, 990131241, 692738349, 990063888, 992751153, 990727471, 993679962, 990918741, 957362216, 692923734, 991181139, 957298223, 692738605, 957627443, 990326026, 422393648, 422392624, 993669455, 692802604, 692737877, 990656851, 691754325, 957625393, 993537625, 692804144, 422391859, 990656601, 993668686, 692672050, 957558312, 991178068, 991049303, 993745241, 957559072, 991178572, 692803417, 692737585, 957362473, 957295913, 993679421, 957166127, 993276246, 957563951, 992949076, 993679450, 957364019, 989932039, 990522966, 990785286, 990137901, 992367407, 693000531, 993678662, 692802610, 957430320, 990524248, 993672791, 956969008, 993678167, 754996526, 990458376, 993679184, 992817241, 991178326, 991178321, 754994947, 990390832, 993079382, 990458380, 993679439, 692673074, 990258695, 957295915, 993679186, 957362213, 957493550, 692737880, 957627697, 692868180, 957625133, 990326790, 991178839, 957299247, 993671257, 991244115, 957492529, 957427751, 692672818, 692869208, 957624614, 993350958, 990195497, 989995273, 692738608, 957623857, 990256904, 957365551, 993538133, 957624097, 990519620, 990722392, 692738609, 993671767, 990727727, 992696622, 990656852, 692672856, 991777583, 990061640, 692803671, 957495599, 957493541, 957623584, 992948530, 993679697, 990454855, 957099571, 990587959, 991179596, 990655052, 692802903, 993669451, 993406805, 990060553, 991646767, 991178319, 993678938, 992816729, 990523472, 692737582, 957361704, 993679687, 991178328, 993677910, 990720847, 993669714, 991174726, 990257226, 991181657, 957492785, 692924500, 990979144, 957627693, 993673561, 993679435, 990981716, 991181396, 990655051, 692802905, 991908655, 990785621, 993678934, 991581487, 990720345, 989996361, 993668691, 990654551, 692802095, 992423984, 993537879, 990917195, 692541745, 993537880, 692802609, 993669463, 991121709, 993079128, 991175754, 754996226, 990125833, 991320367, 957692975, 993679193, 990523737, 990786131, 990920019, 990523221, 993669977, 990917208, 990989103, 993668695, 993672025, 990268462, 991047762, 990981712, 957296933, 993678668, 990138671, 692672306, 957558834, 990916171, 993669720, 991178577, 991505709, 990653772, 957690145, 993285424, 692868910, 993678896, 993676377, 991243862, 993678666, 957297713, 993679954, 991180117, 957362989, 990327095, 991249714, 991049047, 991120943, 990129426, 990465843, 993680209, 993679190, 993144921, 957365043, 990917202, 990916683, 990399535, 992957998, 692738351, 990072621, 993675606, 993680213, 991049557, 990654291, 957430831, 991450927, 993275733, 957365549, 957300017, 991181398, 990915920, 991178578, 754988329, 991057199, 957689894, 991450671, 957561905, 957623846, 990785100, 692802864, 990192198, 991178317, 991179599, 993210201, 993537623, 957362977, 993675095, 993679680, 990007600, 990728495, 990851853, 993679689, 990203951, 991647023, 990850320, 957624354, 692672300, 990656047, 991049302, 992816687, 993678919, 692868439, 990916946, 993670233, 692672046, 993673301, 957560110, 990462295, 993678667, 993547055, 957364529, 993678655, 990271534, 993669200, 957429549, 990785045, 993678675, 993672536, 990916696, 990588760, 990326313, 692671791, 993678935, 993275735, 957428526, 957428264, 692541741, 692868146, 991178064, 957430830, 991244365, 692804141, 692738389, 957694770, 993679672, 957561903, 990789975, 956968751, 993671769, 993744217, 692803634, 957629489, 993679423, 990786128, 992564270, 957495854, 993672280, 520293192, 990401072, 991177996, 993669460, 993672792, 989935151, 993674582, 991048529, 957691182, 957299762, 990793007, 993538134, 993679673, 990982739, 990785112, 991178575, 991647279, 993472345, 990860846, 991244364, 990653776, 990860335, 993678674, 692803890, 990982233, 957496366, 993079129, 990916688, 991050067, 991048281, 991178071, 991244882, 990459433, 991244880, 990330455, 989930249, 692738093, 991178329, 990326287, 993678677, 992882003, 520358983, 993678670, 990526038, 692803158, 989995529, 992685616, 993679685, 993341013, 957493798, 993678648, 957297711, 993679698, 957365552, 692802650, 993679442, 692934192, 993679165, 692672559, 990522712, 990654286, 692868141, 957695021, 993472856, 990457159, 957428005, 990854742, 991243595, 991047257, 520230464, 692802607, 993537877, 692803668, 991712047, 994333529, 991244619, 993669204, 990457158, 692738137, 993276248, 990203693, 990850324, 990981713, 993679192, 993144665, 991450416, 957496368, 990982993, 990458388, 692933933, 993675862, 754997253, 992685874, 993677145, 993678680, 993538393, 991250223, 990654799, 991175492, 991450157, 989931270, 957367088, 990916942, 990468146, 990060809, 692934701, 990655307, 692671790, 993679185, 692671536, 993677142, 993678651, 957165869, 957297453, 692933937, 957561392, 990981646, 993677655, 993678166, 993678672, 989996550, 693000279, 990264919, 957492519, 422391088, 957689905, 990395736, 692737881, 993603157, 990458711, 957296168, 990336560, 957496625, 692868693, 989942575, 990525270, 990205487, 957626927, 993678649, 991179342, 993679690, 692738392, 990456136, 692803669, 990522708, 990455366, 692804140, 692671792, 993671255, 991049301, 990917203, 957298993, 692802861, 692933935, 422390064, 957563952, 993406553, 422393392, 990074928, 992751152, 993679187, 692934190, 993679446, 990587181, 957690661, 990785288, 991515952, 957298736, 993673817, 692934189, 993603927, 991254575, 957495857, 992629806, 993341781, 957559592, 993679674, 990524761, 692869170, 993406809, 692924248, 993677399, 990916113, 692803416, 692934227, 754998021, 993677144, 993679189, 993671253, 957100335, 992696366, 993669976, 993669962, 991243851, 956509491, 991320112, 520179486, 991048278, 993678652, 957494057, 993669206, 993472342, 990392664, 990195463, 990589775, 993678671, 957694255, 754990675, 957362735, 993275992, 692803119, 957301811, 993673814, 993679166, 520360775, 993677913, 957296675, 990655053, 990925613, 422390832, 990126599, 956640815, 993679702, 991975472, 692738391, 991058223, 993275990, 990003285, 991179605, 990007599, 990523689, 993612847, 990989357, 993679692, 993547565, 754977039, 990719504, 957431087, 692802606, 993351982, 957365555, 991179083, 993673559, 692737112, 990526039, 993672022, 991244366, 692671793, 991244111, 990337069, 991179859, 991180631, 692933683, 692737879, 990720787, 991049561, 992751666, 957627696, 957428518, 692802348, 991181652, 990991661, 993079127, 991450928, 993472600, 692868440, 993679445, 990457102, 990074415, 993679424, 993088302, 993669975, 957432881, 957497905, 990271533, 957624626, 993013337, 990982226, 990467629, 990139183, 992751700, 692802863, 993145175, 992695854, 957496626, 993677906, 993668948, 993675350, 993275991, 993538135, 990401584, 957299758, 993670232, 991712559, 692934488, 754994945, 990655273, 957296420, 992817712, 957624873, 990787158, 990337328, 993672789, 993673303, 993341526, 991181143, 957559074, 754997038, 692737107, 990455109, 991047512, 990915916, 957297448, 990655576, 692737325, 991243601, 957495601, 957498414, 990781514, 993677912, 692802904, 991048533, 692736557, 957689640, 957693230, 993024046, 993672277, 957427497, 990916440, 692672304, 957558822, 991384624, 957431089, 692933681, 993013076, 692803380, 993680210, 957300013, 993679419, 957301807, 957362983, 422390320, 957297200, 993406807, 692923988, 991245135, 993155376, 993406551, 991181399, 993672793, 692803886, 692933974, 990393165, 957427749, 993603926, 993672281, 990257928, 991254319, 957493809, 991245136, 990458456, 993678909, 991243859, 990126089, 993674073, 957690407, 957560114, 991243790, 991179093, 991047693, 993144409, 993669959, 754995504, 692803885, 991178258, 692924501, 957628717, 692672854, 990127111, 991179601, 990003033, 692802092, 990072622, 990655317, 993210713, 990523726, 991048017, 993472855, 991180119, 957627437, 990916183, 754996742, 993603928, 957364781, 692923987, 991178580, 990006319, 520310033, 990191369, 993679701, 993671256, 991178841, 754997771, 993679177, 990926383, 991048525, 990850643, 992106544, 991047506, 990916684, 992947801, 990127172, 957367090, 990203183, 991245063, 990788437, 993079384, 957623586, 993078872, 692868654, 957493030, 991180630, 990127173, 957624616, 993669457, 754985517, 991056175, 990992174, 991451440, 991178060, 993679682, 957430063, 991249712, 993013075, 990204976, 989932083, 993674839, 692924760, 989995014, 692923732, 692737583, 692934703, 520229952, 994269529, 990720810, 993678939, 957361961, 957298227, 990654295, 957493811, 692672083, 991048791, 990663982, 754984456, 990982743, 754998031, 991179864, 990456389, 957559341, 692934193, 993406806, 993669453, 990918996, 692737366, 957690674, 692868657, 991254318, 692738100, 990191626, 990523982, 957164850, 991179597, 754994990, 993677909, 990008367, 993678673, 957431085, 991254320, 993676629, 692924757, 993678933, 991181653, 991116886, 993669209, 992620845, 993675863, 993668694, 990457177, 692868950, 520229958, 957560368, 990916427, 990194958, 993079640, 993210457, 993678931, 990456649, 990263085, 991179604, 957624113, 957298226, 993674072, 993679431, 992555821, 692869169, 692803120, 993679694, 991178315, 990651463, 692868913, 990787927, 957428787, 991047511, 991581999, 957367085, 993668949, 993679447, 993679427, 992620851, 990655309, 991181395, 993603160, 991974959, 993675605, 957429551, 993679182, 993673816, 993672024, 991180120, 693000024, 991843118, 754999308, 993677869, 957558574, 993679428, 990522702, 957296680, 956443951, 990793262, 957558569, 991180632, 990271791, 993676631, 957361955, 991243855, 990913349, 990984024, 957562160, 993679173, 692935000, 957498159, 993079637, 990129941, 692803632, 993669710, 993668952, 990271536, 991179019, 993407063, 692802096, 993669203, 993679172, 990399281, 956903985, 993023792, 957692973, 990063111, 957494053, 993678917, 957300016, 990787926, 989942064, 692933975, 991249710, 520163912, 692671534, 993210456, 993678923, 957427503, 993678918, 991049816, 991048018, 992105264, 990657365, 992948821, 993145177, 692803631, 520426560, 990982735, 991251247, 990271280, 957561645, 991516463, 692934447, 991050068, 990456132, 990654293, 957495090, 957694771, 993538392, 422391860, 991252270, 990918485, 989997356, 692989780, 990590508, 957558835, 990655828, 990720083, 993675352, 993210453, 990785105, 957562161, 990261779, 957496622, 993668685, 692737329, 993538390, 754982485, 993341785, 993668696, 957495344, 957689124, 990855257, 990588753, 993669452, 990847044, 993014100, 990719822, 692804148, 990728751, 991047255, 692869167, 993673558, 990915921, 990008624, 992685615, 957367344, 692672339, 692803373, 991180884, 991178834, 993678382, 957296177, 957563181, 990851404, 990588239, 994335065, 991244875, 991254576, 692737622, 993679168, 957494050, 991179084, 991245134, 991179352, 990455882, 993675094, 957431091, 990850325, 692990036, 993603158, 991123504, 990064147, 991449904, 992685657, 957296942, 990720087, 993675865, 992303407, 993679693, 993341271, 990918744, 957493296, 991779119, 990588491, 990205744, 993668946, 957558057, 990915925, 993144664, 993078871, 692737587, 991243597, 990926893, 990656855, 993670485, 993285934, 957296175, 957301293, 993024304, 989930505, 990655063, 990597679, 990982918, 692672045, 990983766, 990663471, 990199896, 520360774, 990851151, 992424240, 692868145, 993677656, 991178579, 990532399, 990461269, 991178837, 957296679, 990328621, 692933425, 991243852, 993671000, 991179606, 957492779, 990720086, 991179349, 989943088, 990522422, 993679953, 993472086, 993670999, 993674329, 991243863, 957492520, 993668690, 992947540, 989995785, 990786645, 692934960, 991181400, 692802611, 993154606, 957558318, 957628977, 992817713, 990796079, 993671768, 957362984, 990139696, 991975215, 993668693, 692934707, 692738354, 993144405, 993603415, 991179092, 993678658, 990525781, 990919254, 990654027, 692803415, 993674070, 993679681, 991243853, 993669196, 991243799, 692802865, 692924759, 957693229, 957493801, 990656088, 957692721, 991178072, 692738606, 993678660, 692737840, 991178061, 993472088, 957430575, 993679170, 957361953, 957492521, 993144917, 993745237, 692999726, 692802860, 992488754, 957624114, 957563439, 993088560, 991056431, 990981453, 993675096, 990205232, 957493298, 957430578, 993676375, 991254832, 957362985, 692923992, 993675608, 990916941, 993209945, 792417364, 990655056, 993675607, 990652976, 993679696, 990523985, 993679677, 692672305, 990787417, 990193419, 991178320, 692803376, 957427759, 957493289, 692738353, 989996806, 993676121, 990794799, 991179865, 754988854, 991049045, 992958000, 990785041, 991180885, 957624352, 990917197, 957559334, 991243600, 990195766, 957624110, 957432625, 993285168, 990526296, 992816689, 991048532, 957432883, 692803929, 993679440, 991112721, 957299501, 990073648, 692738390, 993678925, 990720080, 991055406, 692738095, 992106543, 990061065, 689315910, 957626158, 692802100, 990126345, 990268974, 991055407, 692803673, 692738135, 991057454, 993538391, 990912836, 989930824, 993679426, 957427757, 692671535, 993679699, 754986799, 990191625, 957496112, 990917719, 991516720, 989934355, 993679961, 992564269, 692934959, 692924504, 990525233, 990719319, 991243605, 993669465, 957493040, 993676374, 989942320, 957689390, 993341783, 692802862, 957427233, 693000239, 957497648, 692737330, 993351469, 957362208, 990074416, 692672303, 990787411, 692934705, 957297442, 993679449, 992948274, 993672279, 991183190, 991844398, 991777840, 692868655, 993671765, 991047505, 957429297, 692803629, 993680216, 990457430, 692934961, 957624878, 692738607, 991051347, 990729007, 692672340, 692671577, 692672853, 993679451, 692671828, 991050069, 957100336, 993210709, 990140720, 957365553, 992948569, 992629551, 957361705, 993341525, 956444208, 957492531, 992620594, 991777839, 957689382, 993678168, 991046993, 990654028, 993674071, 692803888, 993678910, 991244627, 990590770, 957493545, 692868952, 422391851, 957296435, 990256905, 991178327, 993676080, 692869422, 990726962, 989930761, 692737620, 991049560, 957493032, 993407319, 994072921, 991244878, 957625903, 993668941, 990391364, 990334766, 990326825, 990519365, 991833389, 993014101, 993669709, 957692208, 991581744, 692671538, 993678920, 990654807, 993603671, 990261267, 990653771, 990588752, 993407320, 990326286, 990918484, 990133592, 991181654, 990786127, 692673072, 692869463, 990587435, 957297449, 957428272, 692737326, 991048527, 993219888, 991179095, 989996041, 992301872, 993675054, 991180115, 993674837, 991581232, 993538389, 993678165, 990916172, 957364273, 990522704, 990525271, 993679686, 692868182, 990061321, 990126601, 991374637, 754996737, 991964461, 993672021, 956641330, 990458636, 993669462, 993801043, 990721365, 990064917, 994138457, 991047763, 990060806, 990393105, 993210712, 957693231, 991180118, 692737621, 991180377, 692803630, 993679700, 957690403, 993675864, 957297714, 991243854, 990720531, 957558307, 990064394, 990457171, 991178840, 993210454, 957362728, 692606771, 990195216, 692738097, 993674327, 692738132, 993678904, 993547309, 990722131, 991243857, 957296676, 989930503, 990191881, 992171566, 992761646, 992302126, 991178004, 957692464, 692738610, 991712814, 990073901, 692802605, 993676888, 991179085, 990455625, 957690404, 990126854, 993672023, 990655064, 992751193, 957623844, 957629233, 692671572, 993669458, 957496367, 990859823, 990656857, 754986250, 990785108, 990653993, 991245137, 990455111, 957558051, 990785612, 991049814, 990268975, 692737363, 957430574, 990716234, 993679161, 990729519, 992162349, 993676120, 993678678, 957362726, 16924477, 990715975, 692738387, 993022766, 992761902, 990257161, 993014612, 993671254, 993679676, 992629550, 957558829, 957430322, 991179863, 990259511, 991048020, 990717001, 990326292, 991047001, 957693233, 957689645, 990391881, 993671513, 993472089, 957366831, 957558309, 993341017, 692989779, 692737069, 520162121, 993144662, 993677659, 957561391, 957690159, 692999982, 990202931, 990654476, 692803116, 692803377, 991189296, 957691697, 993341270, 990257222, 992751961, 993679194, 956444721, 991188783, 990525785, 990391572, 990722648, 993680217, 957558830, 993678912, 692869464, 991179608, 692934485, 993078869, 692868658, 990915915, 991244881, 990785042, 990008880, 990524757, 957627182, 991572787, 993341016, 990465582, 993675093, 692923991, 957559330, 993678905, 957362214, 422391852, 991049048, 990655061, 957297193, 692803927, 957560627, 993669202, 990781767, 993679678, 754995760, 957365042, 992302384, 990917975, 991244363, 957624101, 993677649, 957429299, 692804145, 957428519, 989999368, 991048016, 692802353, 993673047, 993670744, 993679408, 692672817, 993668944, 993679432, 989931017, 692737624, 993669708, 990721620, 990981965, 991181401, 989996808, 957430829, 957562158, 993613102, 991181397, 993673813, 993669713, 993472857, 957300019, 990465329, 993472087, 991178582, 990982222, 692672561, 993669201, 991047766, 692803633, 993668945, 990139184, 692672852, 993876313, 991049559, 993676885, 990008879, 992947759, 991244623, 993809197, 692737109, 991244620, 692934232, 991186735, 991047508, 692869423, 993669973, 993668687, 990655059, 993677141, 991180886, 990720844, 990983763, 956903470, 957367091, 957364271, 957296165, 993406552, 754986257, 990525012, 957692722, 990720596, 989996297, 990979399, 991244109, 991178831, 990925870, 990992431, 520178729, 957689636, 991179096, 992171056, 991647280, 989995594, 993670486, 991244626, 991046996, 692803117, 993603417, 992170800, 692737072, 957690928, 990917456, 990850639, 993679675, 991243604, 957558305, 990916948, 990456117, 992817710, 692868184, 993678927, 692802900, 991178583, 991047513, 990392914, 957432366, 990655574, 993679691, 991179339, 993145174, 990265427, 992237872, 993676630, 993472599, 991778863, 991178833, 990720276, 692803118, 993676632, 692672812, 990718250, 990653773, 957689896, 990915918, 993472601, 991179348, 993341527, 692606291, 957625645, 989930502, 991109191, 993670489, 993276247, 957626673, 692934231, 957689381, 993013332, 990526295, 993669974, 993678937, 993679441, 990916614, 692803156, 692868653, 991048025, 990195214, 993603672, 956576560, 990388805, 957296169, 993341272, 991048011, 992752176, 957625395, 994138451, 990721879, 957492777, 957624358, 993672534, 692803378, 957493288, 990983253, 692804146, 992817491, 692672815, 990718761, 993679960, 992368687, 991179862, 993679416, 692803122, 991120175, 993679418, 993671509, 993680215, 993678929, 992882777, 991121199, 957624105, 993472854, 990852441, 993341015, 993679169, 520179729, 991049043, 993672790, 991180372, 754987285, 993678127, 993538136, 991451439, 957628464, 957427505, 990916685, 993678681, 991181142, 692989784, 990989102, 990982225, 692934486, 993472597, 990654284, 16930856, 993674583, 993678921, 990919507, 993668950, 990522962, 994267993, 692803161, 993209942, 992762157, 990860079, 957627181, 991047000, 754986758, 991179086, 989936729, 993481520, 957496114, 990981650, 990336559, 957494061, 993679164, 990061577, 991050580, 991244879, 957493026, 990126857, 991243596, 957296683, 993676886, 994335059, 957295914, 991182937, 957624360, 957492513, 993677653, 692673070, 692868399, 993603925, 957689384, 992947762, 692924244, 957624883, 957629235, 993537622, 993679683, 990654798, 990984019, 692672556, 991179345, 991179089, 957494321, 993603929, 957300015, 692924499, 990653774, 957563694, 990192137, 692868909, 692868438, 692738355, 991048274, 990786900, 990257417, 991047256, 692869426, 754999045, 990323013, 990916182, 990850637, 692737111, 990335790, 957427241, 993603414, 692737586, 692671571, 993144661, 991712557, 990656339, 990850897, 990661935, 991647024, 990981720, 990785367, 990982736, 993675609, 991050070, 990916949, 692540464, 991049300, 990204207, 957365295, 957625123, 990457157, 992368942, 991245132, 993669706, 993209944, 993677397, 993674840, 993023280, 993671512, 990531631, 993678913, 957430573, 957690660, 692671788, 692923989, 990916944, 957627694, 993406808, 991178324, 693000238, 990784789, 993676633, 692737623, 692933934, 991243860, 993341529, 990858799, 993679183, 957299251, 993341014, 989935152, 993678676, 992882994, 993678650, 692803372, 520163140, 990917209, 990917718, 991244112, 990654540, 993407064, 692672047, 957427753, 692738133, 957295905, 993668939, 993677911, 993669454, 692869168, 992171054, 692737842, 991055919, 993341269, 993680214, 990073392, 989998091, 993220653, 991253039, 692737878, 692933973, 991181140, 993668943, 990917972, 990654797, 990270768, 991898925, 990722902, 957560622, 993155374, 691754327, 990916173, 990392330, 520292649, 990457097, 990461785, 957301810, 993407318, 991318831, 993678669, 990859567, 692869205, 957427752, 990129718, 754998276, 993144407, 993472344, 990727470, 989932043, 990916439, 990653967, 991179087, 957494830, 993678924, 990785618, 991974958, 993678664, 993675351, 990654297, 991113222, 692737580, 957494575, 520226602, 993676376, 692803925, 957362727, 993670229, 957432113, 957361702, 957624099, 692672301, 957693232, 992817237, 993679163, 957431090, 990522699, 993679705, 991110470, 957627183, 990261773, 993679704, 990525529, 993679444, 993670745, 991178325, 993673560, 992686386, 957624617, 422392880, 990982669, 993417008, 692802350, 990658137, 992302127, 989931273, 993603669, 990456644, 993670997, 993675097, 754994946, 957496370, 991049299, 993670230, 989996553, 692738098, 692802899, 990860845, 692868692, 991123758, 993145176, 993671001, 692737364, 993669707, 993673305, 957428006, 957623589, 990523475, 692868914, 990654285, 991047509, 991178576, 692934448, 990654283, 993674326, 993678906, 990257931, 993078870, 993673049, 993144919, 692673073, 990533166, 993678930, 957689123, 422391861, 990786124, 957689385, 792417365, 991123247, 991174985, 692867886, 692803157, 991244113, 991179341, 957427748, 990588238, 990654031, 990062088, 957560877, 990786067, 990721107, 990061833, 990721878, 993669712, 990786389, 957495346, 990195217, 692737113, 990728237, 991179595, 990127113, 990720332, 990205230, 989933072, 990919000, 957428018, 991181144, 990335279, 692672816, 990850382, 993677657, 692803928, 754995248, 754988074, 991049044, 993678169, 990530863, 992761904, 16931368, 992751449, 993668953, 991048789, 993669205, 957692976, 692802649, 991047182, 993676887, 990527576, 993679433, 992883033, 993678914, 990458702, 957558055, 692868912, 992490029, 692803159, 957626930, 990981455, 993209943, 993678665, 993669199, 990590291, 993603670, 957297445, 993079126, 991179602, 990064915, 990523988, 993676118, 991047503, 990794287, 990522897, 990074670, 692738350, 989937239, 957626414, 692934704, 990130951, 990654739, 991049305, 990455621, 692869207, 692869421, 991189294, 993670487, 993406550, 991253293, 993603159, 692671789, 990719320, 422390576, 991320368, 989934342, 692803374, 991843631, 991181656, 957362217, 957559089, 993548080, 692802645, 991244114, 993679162, 993678908, 692933976, 692998961, 993144408, 957627441, 991713582, 692868400, 993144918, 990195754, 990653966, 993669704, 993674841, 957559080, 692737581, 957694512, 992368686, 990261290, 990654040, 692868183, 991244116, 991047245, 993023536, 957363502, 993210711, 692737332, 692671537, 993210200, 957628978, 957692718, 990991406, 991180374, 692924503, 692934702, 957428530, 990130694, 993675349, 957558561, 990523411, 991180629, 993679688, 990860847, 692803628, 993675353, 990523479, 990457929, 993351471, 991048535, 792417620, 957362466, 992236847, 991179091, 989997358, 993669195, 990785615, 692924245, 990978372, 692802648, 991120431, 990918232, 993079385, 991048275, 993603413, 692923737, 990192393, 990982997, 990466864, 991178318, 957561647, 990724435, 993538137, 957625121, 990794285, 993677143, 990270767, 993668947, 991049049, 692672814, 990984534, 991243599, 957496623, 957296170, 990257673, 990662703, 991712303, 989999414, 989933622, 990401839, 990977860, 754998282, 990191684, 991243845, 991244869, 992565294, 990847047, 989932075, 520557639, 990259500, 990262570, 990328630, 989932810, 990202927, 992106030, 989929798, 990585673, 991120173, 754997763, 520440873, 754985262, 991243542, 991244357, 991244613, 957099312, 990333741, 989999110, 520230208, 754987021, 957558066, 989931529, 990912842, 957035053, 520230207, 990388039, 956706353, 990394162, 754985520, 990523157, 990461782, 990195981, 990719246, 989930313, 990060810, 991174980, 993482285, 990199124, 991175236, 991243589, 989996809, 990062089, 990060617, 520164416, 990192196, 956771887, 991174471, 990129705, 990127369, 992630574, 992555314, 754987270, 990064183, 520573470, 956904243, 520226600, 956837937, 990130742, 990850323, 754998025, 989997865, 990262327, 990861357, 754984714, 16910412, 990260746, 990192649, 990257929, 989931785, 990789972, 989997065, 990519109, 990193160, 990592341, 990656048, 520178978, 990062345, 990261517, 990130963, 754987796, 990394164, 754996996, 16915797, 990263093, 991110468, 991243528, 992555311, 692923731, 990132023, 990926637, 990589702, 990858797, 989934633, 990459442, 754987821, 990782021, 990127625, 993285423, 990128429, 990524458, 990192905, 990392327, 520312596, 990391876, 990723159, 991974447, 754984199, 990393385, 754994222, 990334000, 990060874, 754990169, 990128695, 754982980, 990064682, 990390346, 989940531, 990522631, 990258185, 993024303, 991451181, 990003284, 989932041, 989998390, 990527317, 956838701, 520491591, 992039727, 990792751, 956576048, 990327338, 990655798, 991174730, 990391883, 16912175, 990531117, 956510511, 990392138, 989997321, 992500015, 520361280, 990592857, 990257221, 990590514, 990069081, 990063156, 754983180, 991240261, 992564013, 990718505, 990854743, 991243846, 989932854, 992892463, 520361023, 991248470, 990459987, 991843629, 991515694, 992619822, 16910384, 990270253, 990457417, 990464813, 991182165, 990326548, 16927248, 990599470, 992827184, 991175241, 990716487, 990981391, 990785043, 991182680, 990786314, 956903729, 989932820, 989942318, 520309799, 990393143, 990588436, 992752178, 991580974, 990524166, 990263094, 990456111, 692532056, 990921043, 990524976, 990457679, 520507420, 990981383, 956772909, 520244751, 990199380, 991182675, 990458700, 990457142, 991182676, 990073902, 990008110, 990789207, 754995215, 992686384, 992039726, 957165101, 990658392, 520180253, 992161331, 991182681, 989934093, 956445485, 754997012, 990789977, 754982726, 989999892, 990916360, 990723411, 990071855, 991187502, 991909166, 990792499, 990992686, 956968237, 990393902, 991244358, 992686127, 957100595, 994202457, 990592088, 991248216, 990921047, 990786058, 991110474, 992893232, 520441884, 991713327, 520491846, 991713581, 956968753, 990062601, 990458410, 956706863, 991248725, 520247316, 990854741, 992695598, 991252525, 993674797, 956707633, 991974446, 991183188, 990860589, 990127881, 990658644, 990653964, 990527573, 990326280, 990786325, 990523156, 990130183, 991843887, 990724182, 989937753, 990193161, 992760878, 990134358, 754991189, 990126346, 692802867, 990978633, 990202930, 990258441, 991245065, 991051860, 990200147, 990459989, 990589706, 990393429, 991243529, 957231664, 990789976, 992891693, 990467630, 989932297, 989997577, 990658899, 956969261, 990260748, 992892466, 990262834, 990391370, 991244806, 990133335, 991248723, 990259722, 990457386, 990134611, 991244040, 989937235, 16916052, 990656054, 754983242, 990062857, 990401328, 957231923, 990128137, 990193417, 990068823, 990460502, 991113738, 990196534, 957099311, 990257989, 957034546, 992565039, 989930569, 991243539, 990727217, 754985778, 990458448, 992499759, 992686642, 990264921, 754998273, 990271021, 990193674, 990596398, 990258697, 991247955, 990848072, 993089327, 993154093, 992686638, 990924334, 990068310, 754987573, 1057431306, 754985266, 754986029, 754985769, 991244359, 990587446, 991247956, 991450925, 990265687, 990663214, 990191883, 990592087, 991116883, 754995969, 990199385, 990467633, 990457167, 990662190, 989999381, 990727469, 990330198, 990716996, 993024047, 990991662, 956837427, 990393399, 991243847, 754980415, 990522641, 990130451, 989933067, 990271277, 991241032, 990458197, 990588435, 990325802, 991247960, 990456361, 990199379, 990002264, 990459441, 991048205, 990461017, 991515437, 990392333, 990391566, 993284911, 991244103, 754995501, 520376337, 991245128, 992161074, 754991446, 990130707, 991116889, 754983211, 754993971, 989996358, 990978373, 991244809, 990390854, 991179529, 990390340, 956575794, 754983238, 990729006, 991243785, 990073389, 990985812, 956837423, 989933609, 989929736, 990521654, 956837171, 990391819, 990926382, 990202672, 992565038, 990467886, 990126600, 754997504, 990847306, 16911918, 520166745, 990063882, 989932553, 991777582, 990391559, 990393906, 990072878, 989997833, 993285165, 692989270, 754994223, 957100078, 990459700, 989935411, 990063113, 990195725, 990125832, 990590515, 991043911, 990392850, 990204462, 990128393, 989933832, 990912837, 992826927, 520312340, 990193673, 991778606, 990322503, 990720778, 990257476, 990258953, 990271278, 754985775, 520295742, 991043653, 990524975, 990854484, 991450413, 990391880, 754985270, 990328371, 692989271, 990717257, 991319854, 991244553, 992957485, 990596143, 991179273, 990138670, 990522630, 990325297, 754987315, 990126148, 754987055, 991384621, 956445487, 992434478, 989932074, 991113993, 990794797, 520226601, 989996103, 754997294, 989934345, 993416749, 990524974, 957034547, 991241290, 520375849, 991898931, 990782790, 990336045, 990200151, 754994728, 991244041, 991767859, 990393904, 989932080, 990390569, 956837933, 956378413, 990263091, 990724180, 990654227, 990194986, 956445235, 991244873, 991178249, 990000182, 992368174, 991048199, 990393910, 990393905, 957034029, 993219630, 990657623, 990587434, 16931390, 990390831, 990782020, 992302638, 693000534, 990000944, 990520134, 991245129, 990327850, 956772403, 992030003, 990334253, 990465074, 990979142, 991046930, 991243848, 754983467, 990193972, 990662189, 957165107, 990000946, 990388298, 990259757, 990257992, 957035055, 990260534, 989937496, 754987826, 991964467, 990327593, 990456370, 990522642, 990588691, 754985514, 990850318, 991109704, 754986773, 990718256, 989930506, 990654518, 990461016, 990466096, 990720520, 992040495, 993154095, 990126602, 990652979, 990523148, 992893230, 990982923, 990197559, 957230899, 990718258, 990391879, 990462038, 990459699, 990192964, 990458707, 990719031, 992105775, 956902960, 956969266, 957230895, 993219374, 990064916, 520376861, 993023534, 992106798, 754984010, 754982924, 989934135, 754986800, 990657619, 990195213, 990392618, 520507934, 520179487, 992106799, 990391558, 990464817, 754988339, 990461780, 990466354, 990723671, 957165361, 990064653, 754985257, 990458438, 991112457, 990588714, 991189037, 990457106, 990259507, 990063371, 990590509, 989932809, 992630062, 956575790, 990847813, 520181267, 990521902, 990913606, 990719242, 990920025, 990394165, 990002516, 990199129, 992695342, 956510770, 991048198, 990392080, 957034803, 956509743, 754997516, 990392596, 990721843, 990723926, 990461015, 989997063, 989996042, 990127367, 16916053, 520178728, 993675823, 990402867, 993675311, 990063154, 989998600, 989932555, 990392137, 992106797, 754977064, 990652721, 990061639, 989998355, 990130439, 520244750, 992958511, 520375593, 991251502, 989996104, 990393158, 990785799, 990327558, 520298331, 993675055, 991182163, 992040494, 990194486, 990588424, 991243783, 993219375, 991120942, 990720264, 990850823, 520245277, 957231406, 991647022, 989943086, 990653960, 520361030, 754996998, 956641583, 990392920, 991187245, 990060550, 754987605, 754998281, 990467891, 993674799, 991112455, 754986795, 993675567, 991241287, 990257414, 989996551, 990719764, 992893231, 990916102, 991516462, 990008878, 957100334, 990194695, 990389576, 990325298, 989998089, 1058414917, 991241542, 991113480, 990062086, 754987609, 989933318, 990654982, 990654733, 989998598, 990060296, 754995975, 990258183, 989995782, 754989145, 990652715, 754989400, 991178003, 754988376, 754987608, 989934169, 990336046, 990071858, 991505715, 754988119, 754989913, 754989397, 754989399, 754989654, 754989141, 989934165, 990269230, 991243849, 754987607, 754988885, 754983178, 992031539, 754987865, 754988118, 754988629, 989934168, 991581742, 991244874, 754989912, 754989143, 990455364, 990203438, 991243540, 754989655, 754987862, 990457425, 991186222, 754988377, 754988374, 754988375, 754987861, 989934166, 754987606, 754989656, 754988630, 754989911, 754988889, 989936473, 992958001, 990457414, 754987864, 754988631, 993023021, 991243593, 754989653, 754989144, 991188270, 990137646, 754988120, 754988633, 754989909, 989934425, 754989910, 754987863, 754989142, 754988887, 754989657, 754988888, 990063369, 991244618, 754988117, 754987029, 754988632, 754988373, 991122990, 992236333, 754989401, 754989398, 754988121, 754988886, 990128430, 989935404, 990391593, 990325303, 990000941, 990456368, 990661424, 990785295, 990128649, 992554545, 992554546, 990915860, 990193929, 990391632, 990523669, 990912581, 990459703, 990197545, 990260492, 990392900, 989933062, 993154863, 991055918, 991186478, 991120174, 990401586, 754995487, 990395479, 989997617, 991186733, 989929222, 990329944, 989931820, 990396756, 754999042, 754983494, 989999145, 692803635, 990326805, 990257419, 990259209, 992302894, 991243538, 991244297, 992555570, 991179017, 991113737, 989934089, 991122222, 992826159, 990196491, 991181907, 990785554, 990458698, 990393108, 990658645, 991252782, 989995272, 990523150, 991113995, 990982161, 992433712, 992696365, 990260755, 991047955, 991244555, 692530521, 991048457, 692474413, 991247448, 989999881, 992423219, 990588946, 990651462, 991244102, 993220143, 990719760, 991251757, 991178505, 993089583, 754983237, 990781258, 991112713, 520492103, 956510512, 990336301, 989933065, 991910191, 990458643, 956379442, 991975471, 992760879, 520163656, 990391350, 992172335, 990459690, 991244614, 990781770, 754982982, 990133333, 754994449, 990065172, 990068308, 990392595, 520557382, 990140718, 754988599, 990912584, 990061576, 989937237, 991057966, 990467889, 990062343, 990191687, 992303149, 989998345, 990199382, 754995741, 990335278, 990260744, 990458423, 990323273, 991121198, 990325558, 957165875, 990193928, 991243590, 991910190, 994269485, 990257482, 990533678, 990719507, 990258952, 754994472, 990784783, 991451438, 990065193, 991248214, 990074926, 520167258, 990519623, 991175496, 692802135, 990656305, 990259206, 992433199, 990719498, 991248212, 990850566, 991113991, 990391641, 16910129, 990456118, 990071603, 990589194, 990000169, 956576046, 990133849, 754996746, 990459438, 990138413, 990521904, 520375337, 990401581, 991179277, 990986327, 990454599, 993154607, 990723672, 957100592, 990982411, 989998869, 990003287, 989930504, 990063625, 991778607, 754994217, 520311068, 992826158, 990193159, 990457943, 990858290, 990128905, 990194185, 990467118, 990260266, 990259465, 991178761, 990391822, 990855252, 990653750, 991122733, 990466605, 990794798, 956444466, 990854233, 990590771, 990855510, 989934343, 991240265, 990461528, 990860078, 990530609, 990715719, 990064149, 990390858, 991176010, 990859054, 991057709, 990194951, 990000689, 991113481, 992760877, 991844141, 991243591, 989933833, 990130730, 990465840, 520245008, 990598446, 990133848, 990191622, 992367919, 989941294, 990199128, 990656042, 990260495, 990782538, 990920531, 990592340, 992161075, 990727982, 990592601, 990467374, 990925358, 991243541, 990326326, 990265171, 992958767, 754990168, 990197294, 990192395, 989933878, 991240005, 990392874, 956575023, 992761901, 754983240, 990522899, 990323271, 990008877, 990392143, 956772141, 990194743, 992882738, 991648046, 990585926, 990131762, 990205486, 991713326, 520441886, 990394710, 990007086, 990259754, 754985525, 990394456, 990861102, 991048201, 956576302, 990394200, 989999625, 990982921, 956509490, 990259766, 990323015, 991254574, 520310286, 990851334, 990664238, 990782533, 990851082, 990130954, 520167002, 990065417, 990390579, 754999311, 990337070, 989995018, 990584904, 991112969, 989935145, 956509489, 991648045, 989997355, 990061895, 956837934, 993154350, 989933321, 956575791, 989995848, 990525227, 957033779, 993284910, 991047177, 990587439, 957100081, 992892720, 989998601, 520179740, 990328361, 992367918, 990402094, 754986030, 989999629, 989933588, 992891696, 990262828, 754981934, 992499758, 990394201, 956902702, 520556870, 992236334, 990981385, 754987018, 754984004, 991244104, 990063881, 990585416, 990327849, 991243592, 991833395, 993481517, 990128428, 754998532, 991175494, 990129161, 990261545, 956575027, 990652716, 990194441, 520245535, 990985811, 990718260, 990259721, 992957232, 990000438, 991244301, 991113225, 992760623, 520164415, 956576305, 990726961, 991975214, 956903981, 990193163, 990587182, 990719501, 956378929, 990785290, 692736820, 992695343, 991047949, 520573468, 520507164, 990130698, 989933577, 993023791, 990129450, 956641581, 520167001, 991044681, 990261303, 989998349, 993088814, 992172079, 990720567, 990064397, 990065419, 993154094, 990400302, 991113741, 989932330, 990522893, 992432942, 754988587, 990002009, 989999957, 989999701, 991178005, 990720019, 991047945, 990194182, 989999369, 989934423, 989936216, 989934680, 989935961, 989934937, 989936214, 989934678, 989935957, 989934933, 989936215, 989934679, 989935960, 989934936, 989935705, 989935193, 989935958, 989934934, 989935701, 989935189, 989935959, 989934935, 989935704, 989935192, 989935449, 991385902, 688332809, 956378414, 989935703, 989935191, 989935448, 990001494, 990000729, 990982665, 990001493, 990000985, 990001241, 990000214, 990000728, 990001239, 990127174, 990065161, 990002007, 990000981, 990000472, 990001750, 990001240, 990000213, 990000726, 990592852, 990000984, 992619823, 990917385, 990001496, 990000473, 990000471, 990001749, 990001238, 990328624, 989999704, 990000215, 990001497, 990001495, 989999958, 990130953, 990000216, 990000725, 990002006, 991178253, 990000217, 990199127, 990530862, 990596654, 993088558, 990924590, 990981894, 991121454, 989929288, 990073134, 754983432, 992434222, 754985268, 990991918, 990990894, 993481775, 990989870, 754994734, 990715721, 990003032, 990327306, 990205742, 993416495, 993351215, 990063623, 990007342, 990913351, 991047433, 992367662, 989998857, 990793006, 990531886, 991450670, 989933834, 990000982, 990195731, 991057198, 991320110, 990981641, 991056174, 990719494, 990064137, 989941550, 990717256, 990002008, 990139950, 989999703, 990002262, 990458445, 990000983, 990000727, 754987787, 956706611, 992958002, 990468141, 990129417, 990194697, 990002776, 990259977, 992564014, 991310643, 991047689, 989999113, 990982409, 990850322, 991309101, 990064905, 990917129, 990130697, 990458123, 990851849, 990719251, 991244612, 990464816, 991974191, 990196489, 990981897, 991310637, 993809241, 990981390, 992826414, 991908911, 989935447, 989935446, 989999705, 989935190, 989999702, 989935702, 989999961, 989935445, 990002005, 989934421, 989936469, 989934167, 989936470, 989934681, 989936472, 989934422, 989934424, 989936213, 989936217, 989934677, 991112466, 989936471, 991245130, 989932815, 520178960, 992097075, 991440179, 990064393, 990322758, 990785555, 991374643, 990916105, 990392839, 692671028, 990129673, 990850313, 990194953, 520358985, 990260233, 990982153, 990064649, 990454084, 990860334, 991250478, 990720533, 991188526, 991182166, 993350959, 990524726, 990916873, 992489006, 991319086, 993416239, 991646765, 993285679, 993220399, 990729262, 993155119, 991384878, 990794030, 990525239, 990653962, 990795054, 990130441, 990256965, 990257672, 992171311, 990194217, 991515438, 990129961, 956378675, 990336302, 520298330, 956969521, 991844655, 990794029, 990270510, 989943342, 990206254, 990192709, 956575277, 990001753, 990001752, 990001751, 990001237, 989937241, 990061064, 990926638, 990532910, 990257675, 990454345, 992565550, 990851593, 990455880, 754999055, 990196233, 990796078, 991055150, 992630831, 957164848, 989999959, 990985558, 989999960, 990784786, 990598702, 990000469, 992891694, 990654485, 992761135, 990000470, 992891952, 956510253, 990072110, 993614127, 991121966, 990597166, 520312595, 990066487, 992499503, 990522643, 990139438, 993679663, 991243544, 990457673, 993677359, 990599214, 990073646, 957034035, 991581997, 991054638, 991056686, 990662958, 520572957, 991713071, 992434223, 990989358, 989932550, 993677103, 989943855, 990458194, 991248468, 990264407, 990847301, 754994705, 991769395, 990924078, 990990382, 754993969, 990532398, 990003543, 992892975, 990925102, 990455620, 991450158, 990524180, 990588178, 992170799, 992827695, 991243594, 992695087, 754997011, 990665006, 990859822, 993676847, 990388293, 990323528, 993088559, 993679407, 990262036, 990927150, 990590763, 991647791, 992237103, 993153839, 754997039, 992827439, 990064404, 990062900, 990924845, 754988073, 993023278, 991385390, 991244356, 991245124, 990521644, 990786313, 990262025, 990916361, 991843630, 956838448, 990129929, 991253806, 16848728, 991109447, 991909423, 990850569, 992301870, 991778862, 991844143, 992564015, 957558060, 990195209, 990468144, 991182164, 993153838, 990068568, 991647278, 991908910, 754987053, 992106031, 990457423, 992040750, 754997551, 990260489, 754986759, 990650436, 754985483, 992957744, 992432943, 991182168, 989930820, 990916617, 991844142, 991712558, 990595891, 991244868, 989934134, 991178503, 991243588, 991110213, 989932073, 957230642, 992958768, 990457104, 991116632, 991109960, 957035310, 754986542, 990393940, 992236591, 992171310, 990390581, 990394154, 992433455, 992498734, 992039725, 956379437, 754988333, 992237614, 992302895, 993745236, 993745235, 993743704, 993743703, 993743702, 993743701, 993743700, 993744979, 993744723, 993744467, 993745239, 993743699, 792418391, 792418389, 792418136, 691754838, 792418132, 691754583, 691754581, 792417624, 992750931, 992752211, 992818003, 992751187, 992816467, 992751955, 992817747, 993014611, 993744211, 993743955, 993745240, 993745238, 792418392, 792418390, 792418388, 691754839, 691754837, 792417880, 792417878, 792417876, 993865043, 994389331, 994127187, 993996115, 993930579, 994061651, 994258259, 994323795, 994192723, 993733971, 993679955, 692802647, 692802646, 992883539, 691754326, 692803672, 692803670, 692737369, 692737368, 692738388, 993679957, 992751699, 992751443, 692802902, 692803924, 692803413, 692737108, 993680211, 692737625, 692737876, 993735507, 994063187, 994194259, 994325331, 994390867, 994259795, 994128723, 993997651, 993932115, 993866579, 957558825, 957297194, 957361450, 957690666, 957361706, 957296682, 957428266, 957625130, 957494058, 957361962, 957689897, 957559337, 957558313, 957559081, 957297450, 957362986, 957296938, 957428522, 957689130, 957362474, 957035058, 990206255, 956903219, 991451183, 990130185, 957497391, 993547566, 957296179, 990852437, 990850645, 990205999, 990008623, 989943087, 990199640, 956379187, 990392150, 754996271, 990140463, 990260498, 957492524, 692475181, 692475182, 692475183, 692475184, 692475185, 692475437, 692475438, 692475439, 692475440, 692475441, 692475693, 692475694, 692475695, 692475696, 692475697, 692475949, 692475950, 692475951, 692475952, 692475953, 692476205, 692476206, 692476207, 692476208, 692476209, 692475221, 692475222, 692475223, 692475224, 692475225, 692475477, 692475478, 692475479, 692475480, 692475481, 692475733, 692475734, 692475735, 692475736, 692475737, 692475989, 692475990, 692475991, 692475992, 692475993, 692476245, 692476246, 692476247, 692476248, 692476249, 692464981, 692464982, 692464983, 692464984, 692464985, 692465237, 692465238, 692465239, 692465240, 692465241, 692465493, 692465494, 692465495, 692465496, 692465497, 692465749, 692465750, 692465751, 692465752, 692465753, 692466005, 692466006, 692466007, 692466008, 692466009, 692540974, 692540975, 692540976, 692541230, 692541231, 692541232, 692541486, 692541487, 692541488, 692530774, 692530775, 692530776, 692531030, 692531031, 692531032, 692531286, 692531287, 692531288, 692541014, 692541015, 692541016, 692541270, 692541271, 692541272, 692541526, 692541527, 692541528, 692606767, 692606766, 692606768, 692606511, 692607023, 692606510, 692607022, 692606512, 692607024, 692606807, 692606806, 692606808, 692606551, 692607063, 692606550, 692607062, 692606552, 692607064, 692596824, 692596823, 692596568, 692596822, 692596567, 692596312, 692596566, 692596311, 692596310, 692606549, 692606805, 692607061, 692607317, 692607318, 692607319, 692607320, 692606553, 692606809, 692607065, 692607321, 692606293, 692606294, 692606295, 692606296, 692606297, 993680218, 993680212, 993679195, 993677650, 993679963, 993743705, 993678426, 792417366, 993679706, 993678683, 993678682, 692607060, 692606804, 692607316, 692606548, 993743961, 692606292, 692606038, 692606037, 692606039, 692606036, 692606040, 692606041, 993679959, 692606509, 692606765, 692607021, 692607277, 692607278, 692607279, 692607280, 692606513, 692606769, 692607025, 692607281, 692606253, 692606254, 692606255, 692606256, 692606257, 692606258, 692606514, 692606770, 692607026, 692607282, 692607533, 692607534, 692607535, 692607536, 692607537, 692607538, 692606252, 692606508, 692606764, 692607020, 692607276, 692607532, 692605997, 692605996, 692605998, 692605999, 692606000, 692606001, 692606002, 692596054, 692596055, 692596056, 692595798, 692595799, 692595800, 692596053, 692596309, 692596565, 692596821, 692595797, 692595796, 692596052, 692596308, 692596564, 692596820, 692595801, 692596057, 692596313, 692596569, 692596825, 692595802, 692596058, 692596314, 692596570, 692596826, 692597076, 692597077, 692597078, 692597079, 692597080, 692597081, 692597082, 692597332, 692597333, 692597334, 692597335, 692597336, 692597337, 692597338, 692475692, 692475436, 692475948, 692475180, 692476204, 692474928, 692474927, 692474929, 692474926, 692474925, 692474924, 692476462, 692476461, 692476463, 692476460, 692476464, 692476465, 692475954, 692475698, 692476210, 692475442, 692476466, 692475186, 692474930, 992883283, 992816979, 993014355, 993013331, 992882259, 992817235, 993014099, 992883027, 992948819, 993013587, 992949075, 692475476, 692475220, 692475732, 692475988, 692476244, 992882515, 692474967, 692474966, 692474968, 692474965, 692474969, 692474964, 992947539, 692464728, 692464727, 692464729, 692464726, 692464725, 692465748, 692465492, 692466004, 692465236, 692464980, 692464724, 692465498, 692465242, 692465754, 692464986, 692466010, 692464730, 692466263, 692466262, 692466264, 692466261, 692466265, 692466260, 692466266, 692662103, 692662102, 692662104, 692661847, 692662359, 692662101, 692661846, 692662358, 692662105, 692661848, 692662360, 692661591, 692662615, 692662100, 692661845, 692662357, 692661590, 692662614, 692662106, 692661849, 692662361, 692661592, 692662616, 692661335, 692662871, 692661844, 692662356, 692661589, 692662613, 692661334, 692662870, 692661850, 692662362, 692661593, 692662617, 692661336, 692662872, 692661588, 692662612, 692661333, 692662869, 692661594, 692662618, 692661337, 692662873, 692661332, 692662868, 692661338, 692662874, 692728151, 692728150, 692728152, 692727895, 692728407, 692728149, 692727894, 692728406, 692728153, 692727896, 692728408, 692727639, 692728148, 692727893, 692728405, 692727638, 692728154, 692727897, 692728409, 692727640, 692727383, 692727892, 692728404, 692727637, 692727382, 692727898, 692728410, 692727641, 692727384, 692727127, 692727636, 692727381, 692727126, 692727642, 692727385, 692727128, 692726871, 692727380, 692727125, 692726870, 692727386, 692727129, 692726872, 692727124, 692726869, 692727130, 692726873, 692726868, 692726874, 692793431, 692793430, 692793432, 692793175, 692793687, 692793429, 692793174, 692793686, 692793433, 692793176, 692793688, 692792919, 692793943, 692793428, 692793173, 692793685, 692792918, 692793942, 692793434, 692793177, 692793689, 692792920, 692793944, 692792663, 692793172, 692793684, 692792917, 692793941, 692792662, 692793178, 692793690, 692792921, 692793945, 692792664, 692792407, 692792916, 692793940, 692792661, 692792406, 692792922, 692793946, 692792665, 692792408, 692792660, 692792405, 692792666, 692792409, 692792404, 692792410, 692858967, 692858966, 692858968, 692858711, 692859223, 692858965, 692858710, 692859222, 692858969, 692858712, 692859224, 692858455, 992564784, 692736564, 692858709, 692859221, 692858454, 992630576, 992564786, 692858713, 692859225, 692858456, 992498992, 692858199, 692737076, 692736562, 692858453, 992630320, 692858198, 992629808, 992368177, 692858457, 992367920, 692858200, 992630318, 692737331, 992367664, 692858197, 992499246, 992434224, 992433200, 692858201, 992368175, 692736816, 992630319, 992498736, 992564783, 992433710, 992564528, 692672087, 692672086, 692672088, 692671831, 692672343, 692672085, 692671830, 692672342, 692672089, 692671832, 692672344, 692671575, 692672599, 692672084, 692671829, 692672341, 692671574, 692672598, 993677915, 692671833, 692672345, 692671576, 990850393, 993013845, 992882517, 990917199, 990917454, 990784857, 957561650, 957299761, 993078615, 990654032, 990653782, 990917716, 992947545, 957558056, 957493031, 957299763, 957496111, 992882009, 993144151, 993078614, 993078616, 990655308, 993013081, 992817202, 957627185, 957493287, 957623847, 992816473, 993209687, 993144150, 993144152, 993078613, 993078617, 992751154, 992751410, 992685400, 957627438, 992750937, 993275223, 993209686, 993209688, 993144149, 993144153, 991244118, 992882226, 992619864, 992882482, 992685401, 993340759, 993275222, 993275224, 993209685, 993209689, 991245131, 991244373, 991243606, 992817458, 992619865, 993406295, 993340758, 993340760, 993275221, 993275225, 991244629, 991243864, 991245138, 991244628, 992554329, 993471831, 993406294, 993406296, 993340757, 993340761, 991244375, 991244884, 991244374, 991243607, 992488793, 993537367, 993471830, 993471832, 993406293, 993406297, 991244376, 991244630, 991244120, 991243865, 992423257, 993602903, 993537366, 993537368, 993471829, 993471833, 991244377, 991244631, 991244121, 991244885, 992357721, 993668439, 993602902, 993602904, 993537365, 993537369, 991245395, 991244632, 991245396, 991244886, 992292185, 993668438, 993668440, 993602901, 993602905, 991245398, 991245652, 991245397, 991244887, 992226649, 993668437, 993668441, 991245144, 991245653, 991245143, 991244633, 992161113, 993801049, 993668436, 993733977, 991246164, 991245399, 991244889, 991245651, 992095577, 993735513, 993668435, 993799513, 991246163, 991245400, 991245907, 991245654, 992030041, 994128729, 993668434, 993865049, 991246166, 991246420, 991246165, 991245655, 991964505, 993866585, 993668433, 993930585, 991245912, 991246421, 991245911, 991245401, 991898969, 994259801, 993668432, 993996121, 991246932, 991246167, 991245657, 991246419, 991833433, 994194265, 993668431, 994061657, 991246933, 991245913, 991246675, 991246422, 991767897, 994063193, 993668430, 994127193, 991246679, 991246931, 991246678, 991246168, 991702361, 994325337, 993668429, 994192729, 991246680, 991246934, 991246424, 991247188, 991636825, 993997657, 993668428, 994258265, 991247191, 991246935, 991246425, 991247189, 991571289, 993932121, 993668427, 994323801, 992170798, 991246937, 991246936, 991247190, 991505753, 994390873, 994389337, 990652725, 992105518, 991582510, 991247192, 991440217, 989943854, 754994973, 992564526, 992948053, 991374681, 993023022, 990009646, 991712046, 992882773, 991309145, 992171822, 990060870, 990063114, 992947797, 991243609, 754996014, 520178722, 990519366, 993013589, 991178073, 990851337, 991647790, 990323274, 990721836, 990402865, 990715716, 990198872, 991178251, 990258248, 990197547, 956837424, 956575793, 990322760, 990595888, 990128651, 754995459, 990064906, 754990421, 990467120, 990650953, 754987541, 956509745, 991117140, 754983434, 956641325, 989997365, 990584905, 956772657, 990392332, 957689647, 990785293, 957432621, 957689649, 957362221, 692476499, 692858963, 992620338, 957301555, 957563696, 957623855, 993089326, 990526041, 990912839, 990788435, 957628973, 957558322, 993220654, 990269487, 990525779, 993350960, 957628979, 990991151, 956902958, 991252527, 957296686, 692868147, 957629231, 957493038, 957558833, 990457680, 989999626, 990788182, 957367086, 957695025, 957493042, 990128907, 990525526, 992620337, 990787414, 957301554, 957558319, 992958766, 990526040, 990524503, 990654997, 957694510, 990991663, 993154864, 990334767, 957624368, 991243802, 957498418, 957624370, 957493555, 990129679, 990851846, 990786904, 957563695, 957498416, 957558576, 692671027, 990523993, 990787672, 990785881, 957563698, 957427501, 990192650, 990525016, 990524244, 992620082, 957432627, 990526294, 992554291, 990462036, 957362481, 990260752, 957432879, 957689903, 957428016, 692540978, 992293167, 990786643, 957432877, 754984967, 957689901, 989998609, 990523734, 990787668, 990785622, 957367347, 957624111, 989998607, 990524755, 990523476, 990788436, 957629229, 990525780, 993154352, 990525784, 957362479, 990592343, 956902963, 957296944, 957297197, 990129682, 991248469, 990784855, 957563950, 991843117, 957493294, 692540462, 990522709, 990786390, 990784852, 957367342, 957427761, 992554800, 990523224, 990524237, 990787413, 957695027, 990524502, 990788181, 990525525, 957690418, 991047183, 956968494, 957559085, 957690414, 990330967, 990457427, 990786383, 990785546, 991048271, 957559091, 990457869, 990523727, 990786386, 990785870, 957498415, 957558832, 990260751, 990524240, 990196501, 990785880, 957563954, 990522969, 990786903, 990523992, 957493805, 990457175, 991047761, 957428274, 957428531, 991112720, 991178259, 990785360, 991249715, 991047758, 957624622, 991112719, 990523723, 990785873, 993416752, 990260777, 957690161, 990523447, 990523217, 990598959, 990785876, 990130442, 990523730, 990786644, 990523733, 957297457, 990719502, 991047248, 957428270, 957625137, 991243797, 754984204, 993482288, 991047251, 990269997, 957362733, 991178257, 990523211, 990784850, 993612848, 991249713, 957493552, 991178256, 990523469, 990533167, 990785363, 957099568, 990524235, 990785366, 990523220, 957690672, 990850576, 991240009, 957625139, 957363251, 990588432, 992816944, 993678384, 990456109, 990129193, 957559345, 990334002, 991253295, 990785611, 993286448, 991048270, 957297198, 991243794, 990522957, 991057967, 990786123, 991249711, 990522959, 990786382, 990523981, 957690931, 990850578, 990392654, 957494065, 957363246, 990457611, 957361952, 993351984, 990261000, 990792755, 957494067, 990066484, 990007087, 993677616, 989999123, 990459437, 957624880, 990588431, 990912586, 990270255, 990785357, 991047760, 754994735, 990785869, 990007343, 957559858, 957427232, 990590774, 957363250, 957494319, 990916115, 957558304, 992751406, 991910192, 991240778, 957428528, 991047189, 991253551, 993417520, 990722903, 992236336, 957362993, 692738386, 993285933, 990468398, 990785099, 991048012, 990195977, 990784847, 991253807, 957297971, 957493280, 989936984, 957625389, 957429041, 957492512, 957428257, 990722393, 991779120, 990984790, 957297709, 990719506, 990064648, 993675056, 990722134, 993483053, 957362991, 991112724, 990533423, 520491847, 993548336, 991047500, 990926895, 990784845, 990458704, 957363504, 957494049, 990984280, 957297970, 957560112, 957558560, 957559329, 990721624, 754985523, 990983512, 957690926, 957690144, 992892717, 990722647, 990720601, 990519369, 957690930, 992620077, 520361024, 990656041, 993678640, 754987306, 989998086, 993677104, 990664751, 957625647, 957493025, 990984276, 957297967, 957691441, 957689377, 957296674, 990721363, 990985044, 990983251, 957429043, 957297441, 991178760, 990722388, 990720342, 990913354, 957494317, 957624864, 520162631, 991909165, 990722137, 990199892, 957230640, 993613360, 990262029, 957494834, 957690402, 990982998, 957560111, 957494832, 957624353, 957427746, 990719832, 990984021, 990981463, 957625649, 957623585, 754999313, 990721110, 990719317, 990984789, 957297969, 957297185, 990656298, 754984262, 990722133, 990066217, 990655239, 990722901, 990396755, 957429295, 957493538, 990982994, 957429293, 957298478, 957625122, 957361699, 990720848, 990982488, 990982991, 957363763, 957559073, 989934346, 990719577, 990720335, 990983511, 957691184, 957362209, 991908909, 990268461, 990720600, 990984279, 994203987, 990721623, 990328619, 957626162, 957426979, 990982481, 957560366, 957626160, 957624098, 957492771, 990719825, 990982484, 990981968, 957363758, 957361954, 692737075, 990720338, 990720331, 990983252, 957691443, 957558817, 990979398, 990793261, 990720341, 990984020, 520298075, 990721364, 990192391, 957691695, 957689891, 990981458, 957691693, 957429810, 957362467, 957362724, 990720077, 990981971, 992302896, 957494831, 957558306, 991385391, 990720843, 990793775, 990981974, 957560370, 957427234, 990920023, 991245066, 990719828, 990982742, 957034033, 990719831, 991176009, 957364269, 957428516, 990131242, 957495086, 957495341, 957624611, 957624868, 990719820, 990982731, 991182678, 957429553, 957428259, 990400816, 990719567, 990195720, 990982990, 957298483, 957493282, 990326057, 754998790, 990720589, 990981719, 991320111, 990719573, 990127627, 957429806, 957559588, 990261255, 957298734, 957692211, 957361700, 957558820, 990859055, 990982220, 990981451, 957560624, 957559331, 990000690, 990719310, 990859311, 990982477, 957364016, 957494051, 991123503, 990130453, 990596655, 990982480, 990073903, 990720079, 990589197, 957364530, 957295909, 990981452, 957560881, 957430061, 957427492, 957625125, 990728239, 754984203, 990454857, 957626418, 957426980, 990336815, 990402863, 992424497, 990981710, 957626159, 957493027, 991384879, 990324042, 990786057, 990981967, 990204975, 990329940, 991189295, 957364526, 957361957, 692736563, 957298989, 957692207, 957362981, 957689893, 990261769, 992106288, 754982235, 957626416, 957492772, 16912174, 990064659, 990657112, 990060295, 957691949, 957362468, 991450159, 990720007, 990719307, 990392077, 991254831, 692869462, 754994991, 957495598, 957624613, 990978120, 957561138, 957626931, 957427237, 957296166, 990657366, 990260232, 990919255, 957692210, 957361445, 520424265, 990793519, 990656344, 754983435, 957691951, 957689892, 990522901, 754997251, 990924335, 990981708, 990139695, 990719308, 990337327, 957495859, 957296934, 990918745, 957561136, 957364782, 957559333, 957361958, 990657108, 990127114, 990919252, 957626669, 957492517, 520245006, 990656856, 990656596, 992237616, 957430066, 957362725, 520361278, 990916618, 990720777, 16931133, 989934390, 990523910, 991385135, 957561394, 957427238, 990918997, 957364785, 957626926, 957690662, 957558054, 990656341, 990919509, 990918483, 957626671, 957493029, 956968497, 990656853, 990655829, 992237360, 957692206, 957690149, 520427071, 989931783, 990657363, 692540759, 754996225, 990454089, 991047437, 957495856, 957427750, 990918230, 957626925, 957430579, 957492518, 957297447, 990655319, 990918487, 990917973, 957299248, 957296422, 994005849, 990655831, 990655062, 990918999, 957561135, 957624357, 990979400, 520557638, 990656343, 990595885, 957231405, 990657110, 990718774, 957299505, 957297191, 990917463, 957430319, 957627186, 957493542, 957426983, 990654552, 990917720, 990917461, 957692462, 957690150, 990326570, 990654809, 990654550, 990917977, 957561395, 957689126, 990522887, 989941037, 990656340, 990918489, 989930758, 990655833, 520181778, 957692717, 957362471, 990916951, 957627187, 957692720, 957296167, 957362215, 990653783, 990916953, 990917204, 957561390, 957624102, 754979096, 990655316, 990655058, 990918227, 957495853, 957624870, 991777581, 990456116, 990655571, 990918739, 754977551, 990656085, 754979087, 957496113, 957428007, 990916694, 957430577, 957692719, 957428263, 957689895, 990654548, 990916441, 990915926, 957496115, 957296935, 990523654, 990655314, 990653780, 990917715, 957495855, 957558310, 990125834, 520229702, 990654806, 990917974, 990981640, 990655318, 990585930, 957496110, 957624615, 990917457, 957430576, 957365299, 957493799, 957559079, 990655311, 990915927, 990917201, 957365040, 957494055, 754998029, 990653781, 990654800, 990917205, 957365041, 957690663, 990390599, 520360262, 990654804, 990917462, 16924989, 990654296, 990258951, 957692979, 957558823, 990916691, 957561648, 957496371, 957559335, 957296936, 990654290, 990916947, 990916690, 957365039, 957689639, 990992685, 990654801, 990654034, 990917458, 957299503, 957689383, 991247444, 754994432, 990655312, 990916695, 991178759, 990654294, 990061318, 992564271, 993153837, 992040239, 991909678, 990003542, 754994477, 990394161, 992424749, 991909679, 991244813, 990327561, 992490032, 990850319, 990916106, 991244551, 990850825, 754977040, 990719321, 992750932, 991638323, 991252269, 754986544, 990195465, 992948565, 692672851, 990785033, 990260745, 991112467, 990458701, 993612589, 990719241, 994071347, 991647789, 990061834, 990192139, 754985480, 990326025, 990654505, 990074414, 990859566, 990795566, 990851081, 990653785, 992948563, 990195721, 991507251, 990204206, 990785801, 992948309, 692607315, 990651209, 990009389, 991767853, 992031533, 754986261, 992892207, 520310289, 990794286, 990192969, 992029997, 991253294, 990261513, 992762159, 990915856, 992236846, 990336814, 754988855, 990588249, 992947795, 993088303, 992629807, 990457641, 990728493, 992752470, 692736853, 990720521, 990256902, 990257415, 990260496, 520245021, 991179272, 990457163, 990327305, 990326034, 754994216, 990655241, 990326278, 990793518, 991112463, 990728494, 990850837, 993548079, 990522713, 992882771, 991243536, 993678895, 990785289, 993678383, 992750934, 692531543, 993547567, 956379949, 990719249, 991440173, 990129671, 990261001, 990458200, 990991150, 990458375, 991112469, 990719497, 990326281, 991178002, 992097069, 990327594, 992762158, 990468147, 990982152, 992752468, 991703859, 692531284, 990195475, 520426312, 992752214, 692803923, 992761647, 990785545, 957164849, 991778095, 990270766, 993417263, 956772400, 990271790, 992106542, 990260499, 990729774, 990261257, 992171823, 990457608, 992892462, 991186989, 990720265, 990723667, 992751188, 990650440, 990588947, 990138414, 754983724, 992818006, 692541525, 990326616, 990326615, 990326617, 990326360, 990326872, 990326614, 990326359, 990326871, 990326361, 990326873, 990326104, 990327128, 990326613, 990326358, 990326870, 990326103, 990327127, 990326105, 990327129, 990326357, 990326869, 990326102, 990327126, 990326101, 990327125, 990261080, 990261079, 990261081, 990260824, 990261336, 990261078, 990260823, 990261335, 990260825, 990261337, 990260568, 990261592, 990261077, 990260822, 990261334, 990260567, 990261591, 990260569, 990261593, 990260821, 990261333, 990260566, 990261590, 990260565, 990261589, 990195544, 990195543, 990195545, 990195288, 990195800, 990195542, 990195287, 990195799, 990195289, 990195801, 990195032, 990196056, 990195541, 990195286, 990195798, 990195031, 990196055, 990195033, 990196057, 990195285, 990195797, 990195030, 990196054, 990195029, 990196053, 990130008, 990130007, 990130009, 990129752, 990130264, 990130006, 990129751, 990130263, 990129753, 990130265, 990129496, 990130520, 990130005, 990129750, 990130262, 990129495, 990130519, 990129497, 990130521, 990129749, 990130261, 990129494, 990130518, 990129493, 990130517, 990064472, 990064471, 990064473, 990064216, 990064728, 990064470, 990064215, 990064727, 990064217, 990064729, 990063960, 990064984, 990064469, 990064214, 990064726, 990063959, 990064983, 990063961, 990064985, 990064213, 990064725, 990063958, 990064982, 990063957, 990064981, 989998936, 989998935, 989998937, 989998680, 989999192, 989998934, 989998679, 989999191, 989998681, 989999193, 989998424, 989999448, 989998933, 989998678, 989999190, 989998423, 989999447, 989998425, 989999449, 989998677, 989999189, 989998422, 989999446, 989998421, 989999445, 989933400, 989933399, 989933401, 989933144, 989933656, 989933398, 989933143, 989933655, 989933145, 989933657, 989932888, 989933912, 989933397, 989933142, 989933654, 989932887, 989933911, 989932889, 989933913, 989933141, 989933653, 989932886, 989933910, 989932885, 989933909, 754986840, 754986839, 754986841, 754986584, 754987096, 754986838, 754986583, 754987095, 754986585, 754987097, 754986328, 754987352, 754986837, 754986582, 754987094, 754986327, 754987351, 754986329, 754987353, 754986581, 754987093, 754986326, 754987350, 754986325, 754987349, 990718506, 989997575, 520179998, 990986585, 990719030, 989995016, 990981638, 990261256, 990982664, 989995270, 990000949, 990129415, 990851336, 957099315, 989933576, 990718512, 989996040, 990458440, 990523142, 991112712, 754996754, 990258698, 989933064, 990720519, 989930760, 990720008, 990654761, 520426566, 990522665, 956444464, 520376606, 990652978, 990400557, 990458449, 990458708, 956968752, 957035056, 990462291, 957230641, 991112714, 990653481, 990465584, 990588170, 990458692, 990458968, 990917133, 990459693, 990466353, 990459737, 990130474, 956444467, 956837683, 990522167, 956509487, 990259497, 956642093, 956838445, 754985225, 754986251, 990524457, 991044682, 956444206, 990459435, 990071854, 992433965, 990979141, 990981901, 991044678, 990323268, 956640562, 956510254, 956903726, 754984971, 956575282, 956576049, 956444720, 990197293, 990064695, 754986503, 989999882, 990065450, 990262833, 990326792, 990195498, 990587447, 990456631, 990465585, 989932086, 989935157, 956903727, 990854486, 990719543, 990259502, 754986764, 957100339, 990066229, 990195510, 990919763, 754986765, 990521645, 754982985, 990131754, 754987818, 16926736, 990257478, 990193930, 990192907, 990131761, 990065706, 989934391, 754987827, 990913098, 990388040, 990587178, 956902705, 990391896, 990133588, 990396502, 990920536, 991241284, 990262826, 754987568, 990389320, 754986028, 990396245, 990858035, 1058414406, 990587438, 991247700, 992172333, 990719018, 990523191, 754986547, 992171309, 754985527, 990588726, 990724436, 990130438, 992041261, 754999040, 956378669, 990327565, 990785030, 989936723, 990256968, 990925869, 957166128, 990197289, 520492607, 990393942, 990462037, 990847560, 993154861, 956642097, 990326284, 990719239, 754988342, 989937747, 990653495, 956837421, 990588970, 991048202, 990195210, 991051353, 989940784, 990586180, 692859219, 991051092, 990858033, 990192202, 754988085, 990590505, 754999059, 754994729, 754988848, 989937238, 990588680, 990919766, 990727219, 990260022, 956837165, 990068312, 990129194, 991109700, 520376335, 990061897, 990199383, 989998868, 520245534, 689316424, 991051604, 990068057, 990782022, 990202928, 990718263, 754986249, 990588935, 754980121, 990392153, 989929735, 692540760, 990587441, 991117651, 990065414, 990467117, 990258245, 990327046, 990527571, 956509998, 990330965, 990593363, 956707117, 990789715, 520244494, 990401071, 991516717, 991116631, 991051863, 956838193, 990789721, 993677101, 989931530, 991248471, 990331223, 754991448, 990391368, 990718515, 990592595, 991051607, 520244265, 990394964, 990126920, 990268466, 990652719, 993089581, 990658136, 993548589, 990459697, 990719752, 990920280, 990457687, 990134099, 991581485, 692736813, 990330200, 990331221, 990661677, 990858287, 990654996, 990593368, 754987784, 990652972, 990785812, 990590249, 991121965, 990462294, 957230639, 990390600, 991113226, 990002261, 956641069, 992302637, 990265176, 991241541, 990068564, 956575280, 990727725, 990192394, 990718516, 693000020, 754995742, 990523660, 990131756, 990785044, 990191428, 991109188, 990322500, 520375566, 990391890, 991174468, 754988853, 990977865, 990588458, 990854229, 990265428, 992432941, 990654506, 754988087, 990459731, 990977866, 990719496, 754988846, 754987318, 520244775, 956837680, 520247059, 990523945, 754999310, 754988079, 990265689, 754986286, 990459692, 754979654, 990328370, 754993968, 956772915, 754987063, 990191942, 754988084, 754987317, 991116630, 990259501, 956640561, 990912838, 990920021, 990393939, 991384877, 990847304, 990065962, 990782281, 520441630, 754986285, 990131510, 990261047, 994267955, 990719287, 990066482, 990192457, 989929545, 990257991, 990128425, 989998902, 989932077, 990390572, 991113227, 993416237, 989999373, 991909933, 956903469, 992499248, 990328627, 990985817, 957230382, 989929796, 990467632, 990063414, 990585415, 991244298, 990664493, 991240774, 990456362, 990720532, 520310545, 990395221, 990788694, 990393176, 956444975, 991516461, 754979143, 990063155, 990259767, 754987061, 990391821, 990259758, 990650692, 990200150, 990394155, 956445231, 990323524, 990394167, 754986031, 520442399, 990393166, 990132022, 990392132, 990325045, 990456119, 990522679, 990259759, 990066222, 754987831, 989998377, 990466349, 990391081, 754979902, 990466867, 989930248, 990847046, 754982986, 957231152, 754987785, 989997619, 754998794, 520359240, 990133590, 990395219, 990000693, 989995332, 990458385, 992302381, 993876269, 990851341, 990855256, 692933678, 990071597, 754998534, 520229704, 754998275, 991244038, 990654474, 990064646, 991051350, 990782793, 16910157, 990065159, 991109961, 989931271, 990261258, 990913607, 16859197, 990723924, 956771890, 754997037, 994136877, 990786054, 990654740, 957690415, 991047250, 990785359, 991188527, 994007347, 957624882, 990327049, 990785872, 990523471, 991243793, 957428015, 956444977, 990785111, 990522965, 991112718, 957493554, 989935405, 990786134, 990523223, 990129681, 957624367, 957629485, 990787412, 990524756, 990522968, 990523984, 990524501, 990785624, 990522961, 990786130, 990524505, 990787157, 990986579, 990785362, 754979904, 990787161, 957695022, 957428013, 992620115, 957559086, 957301805, 957558831, 991178255, 957690413, 994072883, 957296687, 992554544, 990522895, 692858708, 990523991, 990523987, 990525267, 990786647, 990523474, 990786388, 990525528, 990787923, 957498413, 990785620, 990062891, 990788441, 957695026, 957362483, 990390835, 957362478, 957432622, 957624369, 990396505, 957493551, 991243792, 957689907, 692540207, 990522894, 692858964, 990525269, 990523736, 990526292, 990787925, 990523732, 990786392, 991121967, 990788185, 957498419, 990786133, 957432880, 993415984, 957563697, 957624365, 991110472, 957296946, 957367089, 957362226, 693000499, 957296943, 990466862, 957689646, 692671284, 994138419, 990261511, 990526035, 990525014, 990795823, 990788439, 990523481, 990787670, 991252783, 993350704, 957563693, 990786137, 957432882, 990585418, 957301552, 957296689, 957432878, 957689904, 957694511, 957493037, 990064143, 957690163, 990195215, 957689650, 990658135, 992695085, 692671578, 990926127, 990526037, 990598447, 992620591, 990524759, 990788184, 990269231, 992621105, 957301550, 990787415, 957629232, 993284912, 957497902, 957427504, 957367345, 957296685, 957497906, 957427506, 992554288, 957689902, 989998608, 957623856, 993023789, 990129680, 993220142, 990729775, 993089325, 990588235, 993220144, 990525782, 993154608, 989934357, 993088816, 957432367, 990787929, 957563699, 990850638, 957432365, 957361969, 957629230, 957427502, 957366835, 957689391, 990130186, 957624371, 992423214, 957689389, 993089582, 989933073, 993286190, 991122479, 990137647, 990925871, 990850635, 990457939, 992620847, 989933575, 993416496, 957366832, 990585159, 957563440, 990850385, 957694515, 957492784, 957629234, 957361965, 957497645, 957427249, 993024302, 957361967, 956640818, 957361715, 993547054, 692671539, 993483054, 990456367, 990588236, 990589004, 992620593, 991056687, 990850636, 990589261, 992620850, 957432371, 993024048, 957366830, 990851152, 957432110, 957427245, 957563438, 957492782, 957301040, 957689395, 993481774, 957296432, 993350446, 957492525, 993548078, 956445486, 992882224, 990588749, 990064391, 990588751, 993089840, 992957997, 993220400, 990589264, 990850642, 957366575, 990850381, 957366834, 990851665, 957563187, 957427251, 957301295, 957361712, 957497390, 957426990, 993482798, 957427247, 993416494, 957426994, 990322761, 993285166, 992226610, 990588496, 990588494, 990588754, 990851915, 990861103, 990851403, 990589522, 990851155, 957628722, 990392078, 957563185, 990851668, 957562928, 957361455, 957301297, 957361714, 957431857, 957361453, 991243535, 957361710, 993417518, 957427244, 990850573, 993351214, 754999303, 990588499, 990588241, 990589012, 990850900, 991247443, 990851916, 990589780, 990851158, 957562926, 990657875, 957694257, 990851417, 957366320, 957295920, 957493023, 990654985, 957300787, 957296172, 692476501, 990723929, 990716490, 957427756, 692606290, 989932814, 992292656, 990589008, 957428252, 990589521, 990851664, 692466775, 692466770, 990588505, 990851667, 957301043, 990588692, 989999926, 990851416, 957628461, 957689137, 990654983, 754986506, 957300785, 957426988, 990389321, 990859821, 990917383, 957361964, 990589715, 990134355, 520426054, 991240775, 992293165, 990589263, 957558559, 692466773, 692597589, 990588502, 990851919, 692933721, 692466772, 989938004, 990850648, 957562927, 692925015, 957296160, 989931272, 957562930, 957623602, 520312850, 992293425, 990590250, 990651460, 754986258, 990723927, 990786323, 957558812, 692466776, 990523154, 991384365, 957427743, 692466777, 990589773, 990202925, 991385901, 957559071, 990192136, 990850388, 754987060, 692925268, 692540466, 990855255, 957628463, 990457354, 992423471, 989999657, 990589703, 957295918, 990523406, 991047699, 520226856, 992357677, 692990806, 692858451, 692990807, 692858707, 990191434, 957296925, 692990809, 692661586, 692661331, 989996357, 991244559, 992293423, 692990808, 692466518, 989999658, 991047698, 991244558, 692858452, 692531027, 692858196, 957428253, 991244302, 692858195, 990916879, 692597846, 692531283, 990458383, 692661842, 990066479, 754985991, 754984969, 692867926, 989931018, 754999053, 957165872, 692794197, 692728662, 520295239, 992292659, 990193961, 692869459, 692999001, 990716998, 990060807, 692532052, 692794195, 692859477, 754977552, 990657620, 990327304, 956706098, 992292399, 992358707, 991116375, 992423469, 692859479, 692597845, 692934233, 990065462, 520311326, 992293679, 992555310, 992490033, 692727891, 692736600, 991248472, 990657876, 956968496, 990191940, 692532051, 692934999, 692466517, 991048200, 692859478, 992357939, 991178512, 990392840, 990457676, 991116377, 991047695, 992488755, 692934995, 990785296, 990457422, 991178510, 990132020, 991109701, 991112979, 992751920, 989995015, 990264409, 990065173, 692999251, 990457433, 990457610, 990917130, 990785301, 990982421, 992489521, 991113236, 991047444, 991047957, 990325047, 957558300, 754998788, 990457429, 990654479, 991178515, 990785809, 956576563, 990457618, 991047953, 991179022, 990654736, 989995078, 990457351, 989935153, 990785810, 990720298, 957624861, 990720273, 990456874, 990981904, 990457413, 991244057, 989929290, 957623580, 991244050, 990457173, 990457172, 990197290, 990060298, 692540211, 990457352, 991244568, 990465581, 991244563, 990389577, 991244313, 754982727, 989940525, 990128686, 991244565, 990060552, 990457355, 991240007, 754988076, 991043398, 754994221, 992358193, 991244304, 990789204, 692474931, 754986772, 991244560, 991244569, 991244306, 990457672, 692925267, 692999219, 957689372, 991244058, 991244570, 991113493, 991113487, 991244046, 990720016, 692933462, 990271789, 692607570, 990394711, 956510257, 990719759, 991244566, 991047438, 992162606, 957625116, 990203437, 956706862, 990268463, 957296924, 991047441, 991178768, 990592854, 990065426, 991047442, 991113490, 990457428, 989995275, 520426056, 990650696, 991243803, 990260487, 990393909, 692466259, 991179028, 990392649, 692728661, 957690141, 989997834, 990262313, 990126408, 957362974, 957492511, 991974445, 990197292, 992686128, 957297180, 957492767, 989996299, 956445234, 991244052, 990063366, 957558303, 692597593, 990457357, 991244307, 990461779, 990650954, 957690143, 991244567, 990719762, 991249965, 991244053, 754986804, 957559582, 991113234, 990457617, 754987308, 991244564, 990982677, 990523410, 992358701, 993415981, 990982165, 692868659, 692541744, 990258439, 991110215, 957362720, 991048212, 692999475, 692663129, 991108938, 692794198, 957492508, 692794199, 990781511, 990457612, 990917139, 992105773, 990457363, 991048211, 956444463, 990061323, 990785551, 992228142, 990916878, 991188781, 990457621, 990917138, 991244315, 991179284, 991179285, 754994446, 990457174, 990457412, 990851603, 990982920, 990982674, 991048210, 991244821, 991113748, 991113747, 990654481, 990982673, 520295486, 990851602, 990196230, 992226606, 520360519, 991244820, 991244822, 989930762, 990391573, 991113746, 990457415, 990851342, 990519114, 990457176, 990982672, 990457420, 991179283, 990194226, 990917137, 992226861, 991048209, 992227885, 990982418, 990786066, 992685872, 990917136, 993613101, 990592599, 990916369, 991244823, 991179282, 990457170, 990916370, 692597588, 991048208, 992686383, 990916625, 990851601, 754986036, 992357680, 992357938, 991113745, 991244819, 990204973, 520179472, 990982671, 990916371, 990916372, 991713325, 692530773, 991318829, 992358705, 990061130, 990851600, 990063152, 991113744, 991112977, 990786065, 991244818, 990916626, 992621101, 990401074, 990916882, 990982670, 990916881, 990456646, 991048207, 991179281, 991244824, 990720529, 990719761, 990917135, 990654994, 990978376, 990326282, 520572959, 991244825, 754985735, 990917134, 990392845, 956969006, 520310544, 990916628, 991179280, 992555056, 990916366, 993678381, 692661330, 990916367, 990654993, 990720528, 992751408, 991113743, 957690652, 991179029, 990589458, 692868179, 990979143, 754986807, 991778605, 16931111, 991113742, 990336557, 990140205, 520245263, 990916368, 992882734, 990262582, 989936979, 520424775, 990589457, 990654992, 991244816, 990523922, 992752177, 990786062, 990457616, 990197301, 990524978, 991240262, 990390087, 991244826, 990720527, 754977066, 754996736, 754987562, 990002521, 520226858, 991179278, 754986508, 990523911, 990916880, 990459191, 992359217, 990589456, 990128390, 990720526, 956772399, 992621358, 990461014, 754998535, 990523921, 990395475, 990128431, 692868441, 990654991, 990330201, 991109705, 990652722, 956641587, 990391568, 957689628, 990195476, 991179025, 990132011, 990523920, 991244051, 956378417, 990465328, 990520137, 990465586, 520309794, 16931113, 990654990, 692990803, 957035059, 990589455, 16910155, 990916883, 990851086, 990392594, 991178770, 990194230, 990192392, 991451437, 989932076, 754996231, 990137390, 990327314, 16912186, 520310288, 990589447, 692999000, 991244311, 520442396, 692999257, 990261778, 990916624, 692990804, 990327313, 957362460, 990653972, 990589454, 990523919, 990530351, 990789463, 520245790, 990523655, 990458632, 754998278, 990392913, 990196242, 990982150, 692738642, 754986509, 692474415, 692475443, 990717258, 990261777, 692597331, 990068054, 990196241, 692990805, 991117398, 990261776, 992892461, 990390597, 16928594, 990327312, 692540722, 990130706, 990391886, 990327311, 957100848, 990061894, 989932084, 990327310, 991109957, 990457944, 990920532, 990065170, 992685873, 692474416, 990261774, 990457685, 692540210, 692540973, 990196239, 989999633, 990130705, 989999634, 990065168, 989934098, 754987538, 692541746, 692540718, 990457936, 990065169, 990392073, 990061128, 754995712, 992489519, 990720266, 956575279, 754983492, 692671065, 754998287, 990062889, 992423217, 990526808, 990858032, 991247449, 990457926, 692933461, 692804178, 692998998, 692605529, 692934483, 692999513, 990393169, 990524981, 989995081, 692605523, 990388037, 991047943, 520557383, 991114001, 754986793, 992292911, 990389828, 990982933, 990851858, 990457609, 990457613, 990917396, 991114005, 754998539, 990982928, 990457360, 991245075, 991112462, 991048463, 991114000, 991179023, 991048464, 991245074, 990325044, 990917393, 991244042, 990129158, 754985228, 692990551, 990131766, 991047176, 990131765, 990850834, 990393094, 991112978, 990589712, 990063149, 991245081, 990850832, 990851090, 990060362, 991245064, 990792498, 990788949, 990063671, 692737618, 956509997, 990655247, 991245082, 992358963, 956837939, 990917386, 754995201, 692474668, 990978628, 990065425, 990389318, 692802093, 990130960, 520297817, 991244048, 990327566, 990457945, 692541491, 692540467, 990130959, 991244562, 990196495, 990196494, 990065424, 989999888, 989999890, 990457931, 992555059, 990262030, 990457875, 692540208, 990457166, 754998544, 990457682, 989934352, 990851088, 990457362, 692465747, 692540503, 990130958, 992489267, 990785550, 692933463, 989999632, 692802349, 990456618, 992228147, 992358706, 990196238, 990457868, 990720782, 991179537, 990069076, 990457876, 990061642, 990785298, 692999763, 990917391, 692530771, 990065422, 990327570, 990850833, 989934096, 692466519, 992358703, 990851856, 992357682, 754987792, 692605746, 692990553, 990134357, 520245278, 990130702, 957100594, 990129677, 990457927, 990457863, 992489775, 692540206, 990982926, 520178984, 692868697, 991113998, 990720786, 989999886, 990721334, 990851345, 754987536, 692596563, 992293427, 991179535, 991245077, 754998020, 692606772, 990589710, 990850831, 520232281, 990065166, 990658390, 692999253, 992555571, 990457684, 992948784, 692606003, 990399278, 989938003, 692466003, 754984008, 989997574, 989934350, 990258184, 990467635, 989931784, 692530515, 992423215, 991113235, 990786321, 990652981, 692671795, 990134356, 692737874, 990197558, 989999630, 990788953, 990985304, 992489265, 992555822, 992554541, 692605486, 990657625, 990850835, 16928339, 991245079, 992358962, 754987790, 957361948, 520507932, 991110217, 754999049, 754984713, 992293682, 991245072, 990127178, 692474455, 990457350, 990524175, 990721078, 989934094, 692792915, 991240772, 992488753, 992489522, 992424237, 692671796, 990457162, 692934998, 956511021, 990655249, 990916623, 956837936, 990785552, 990258247, 956576559, 692662098, 956969773, 990589714, 992292912, 520425799, 692476504, 990326569, 992489009, 990650184, 754987534, 754985993, 993675309, 992554286, 992489776, 992423730, 692474453, 990720784, 990654222, 692597587, 990330196, 990785807, 754997517, 990330969, 992358448, 956706610, 692597848, 692663127, 520442397, 990723157, 990394198, 692672602, 520244519, 990715974, 990457424, 992433711, 520492096, 991176008, 992424494, 992555313, 992489523, 692474970, 990589192, 692475444, 991179528, 956902703, 990786319, 1058415177, 692998960, 991244309, 956706866, 990982931, 991174724, 990457160, 991051349, 990133843, 692673111, 990525232, 990720270, 992882480, 990523917, 990268207, 692662867, 991247961, 992423470, 692607575, 692803162, 992226867, 692474669, 991048466, 990655248, 991245070, 16912173, 520310814, 754998530, 990596145, 991179539, 692597849, 990589713, 990851854, 992489007, 692607573, 692531797, 991178772, 692671314, 990456887, 990982930, 692662354, 692606802, 992424242, 990065975, 692738648, 990720783, 992621361, 991114004, 990786318, 992226605, 992488751, 990785806, 692475699, 992489779, 991048469, 990917395, 990982162, 990459701, 990199126, 692802386, 990196496, 992621107, 990655799, 990131764, 991048465, 692859731, 990265175, 992490030, 992489262, 692673114, 692663382, 990003541, 990392873, 1057431304, 692728666, 990194998, 990526809, 990000425, 957295904, 990460244, 990260230, 990395988, 991047697, 990062890, 16865576, 692595794, 754999050, 957100849, 990265683, 990592598, 692532057, 990392659, 692989269, 692728664, 692671322, 990140461, 990781253, 692540723, 692794201, 991178511, 957559324, 990257481, 692475955, 990916622, 692663128, 692597847, 692794202, 992227891, 992357933, 692606810, 990789205, 990327568, 692728663, 692673108, 692663130, 754995973, 990654730, 990392405, 692728665, 692475482, 991047944, 692474670, 991647533, 692728659, 990860077, 692738650, 990527828, 990262033, 990851847, 990389831, 692663124, 754987284, 692466516, 754985269, 692476505, 692663379, 994400563, 992423987, 692738646, 692794200, 692532053, 692727378, 990781508, 692597594, 692474457, 754993965, 990196498, 990066485, 990716741, 956707120, 692738647, 990330452, 990524174, 990523149, 692597592, 990257224, 991047700, 990720785, 754990681, 692474454, 520245265, 990262034, 754990937, 692737882, 990129975, 990391826, 991047951, 956837425, 956641075, 692672051, 990917390, 990526804, 991109959, 991179534, 990655250, 692737370, 990131498, 692738612, 754985773, 989937495, 956772659, 991245071, 991245078, 990590768, 692671280, 990851861, 520441385, 956379440, 692475226, 692596307, 989998134, 990782024, 754983686, 992554801, 692607028, 520161320, 990457358, 992292654, 990851855, 990584648, 692476503, 990062346, 990851091, 754987535, 692466521, 956706867, 990786320, 991244059, 692738611, 692607027, 990327569, 692736596, 520310543, 692474456, 692727123, 956510765, 956510255, 990328625, 692736602, 692605745, 754987319, 990847048, 992293166, 990457364, 992490031, 692671021, 990850310, 520376863, 989934095, 692466520, 990782280, 990457168, 991179536, 754987791, 692605748, 692475956, 990589711, 990460501, 692671025, 989930759, 990068313, 990456114, 520232283, 992489263, 692803636, 957298479, 957560623, 957298482, 957689379, 990981970, 957429809, 957624355, 990981457, 957625901, 957558562, 990982738, 990719569, 957495342, 957428260, 990453572, 991054895, 957363762, 957492514, 990982232, 990720592, 990006320, 957364525, 957624612, 754987309, 957035311, 520228169, 957494577, 957295906, 990983765, 990719576, 990325046, 957495597, 957428517, 992171824, 990589705, 991123759, 957625651, 957428001, 990983769, 990721109, 990125897, 957364787, 957624869, 754988845, 992695600, 989942319, 957428782, 957296161, 991909936, 990721113, 520376860, 957692465, 957559077, 990919513, 990458452, 990924589, 957428786, 957559584, 990653751, 990722391, 754998540, 957430318, 957296678, 990919251, 990656600, 990453573, 957559597, 990850579, 991046987, 993677360, 520293407, 957299507, 957559590, 990918486, 990656595, 754998541, 957297456, 990653969, 991046990, 989998867, 754987819, 957299504, 957493286, 990917464, 990655575, 520375825, 990850575, 991047502, 993612592, 991122735, 957296423, 990916952, 990654808, 692673076, 993482032, 991319087, 990654041, 990194952, 990599471, 754995713, 990061383, 990128435, 990982989, 957364275, 990720076, 990985557, 957364272, 754997770, 990982228, 957626161, 990662447, 957559075, 990524470, 16863059, 957560880, 990793263, 957494052, 990205231, 990982996, 957429555, 990720082, 957623587, 990203181, 992172080, 957298990, 990858543, 957559332, 991319855, 990983255, 957691438, 990720595, 957297443, 990068565, 990919257, 957430062, 990719753, 957361701, 991319599, 990984531, 957298221, 990720599, 957690146, 993482541, 990918998, 957692467, 990657364, 957559589, 990060811, 990985048, 957429040, 990721875, 957362978, 990665005, 990917976, 957495858, 990656342, 957558821, 990847817, 992040752, 957494579, 990721881, 957493793, 520162632, 990918228, 957561393, 990655065, 957690406, 520167259, 991046988, 957559857, 993676848, 957296929, 754997000, 957299506, 990655572, 957427494, 754979095, 990130957, 957363245, 990326537, 957427488, 991048455, 957558566, 990653702, 991046992, 957625134, 993678128, 992882735, 990138415, 991048524, 957559603, 993547568, 992816945, 990533679, 957493806, 990784849, 990981649, 990204463, 992358189, 990653961, 992302640, 990193671, 990982475, 957298735, 990719563, 990130709, 957626415, 990923570, 990982479, 957691955, 990719566, 957689380, 991515951, 990393174, 957626674, 692737362, 957493028, 990394966, 990981461, 957691696, 990720588, 957558819, 990522886, 990919256, 957561137, 990657369, 957426981, 990271023, 990982486, 957298481, 990719572, 957362211, 992827181, 990918488, 957364786, 990657109, 957427493, 991241034, 990982745, 957494829, 990720085, 957297187, 520292136, 990918740, 957430317, 990655832, 957295910, 520244495, 990984278, 957691442, 990720089, 957624866, 990193158, 957626928, 990655827, 957625126, 991188269, 990985047, 957363503, 990721622, 957361442, 990262022, 957492774, 993023277, 990328366, 957363505, 990722643, 957689633, 990785802, 990069077, 957625392, 990399280, 957690657, 990654986, 990979402, 957297710, 990194694, 957492768, 990467885, 990199894, 957494064, 993677872, 992948782, 990665007, 991048014, 957690673, 993613104, 990785040, 990072879, 992621139, 957559344, 993351472, 991047186, 991057711, 957428273, 990786381, 991177997, 990523468, 989995528, 990138927, 990982476, 990981963, 990982224, 957429811, 990719311, 990325042, 957560882, 990719564, 990981718, 957691694, 990720333, 957297444, 990191689, 990916621, 957495343, 990662191, 957427236, 991047174, 990982231, 957298477, 990720846, 957690147, 990205743, 989995531, 957692209, 990596399, 957558308, 990139439, 990983764, 957429296, 990719830, 957362979, 990916359, 990919001, 957561133, 990657368, 957296677, 990588169, 990984023, 957494835, 990721108, 957493794, 990071598, 990918233, 957299249, 990656854, 957623845, 990138669, 990984792, 957560113, 990721367, 957296930, 990333999, 957364784, 990655577, 957297190, 994138413, 992040240, 957363501, 990722645, 957427489, 990399282, 957494054, 520232794, 992236592, 957625390, 993548592, 957428513, 520426559, 990785034, 957559859, 993482800, 957558048, 990259723, 992106032, 957494062, 520226857, 991044937, 991188015, 991047759, 957690669, 520179484, 990850577, 990269999, 992620121, 957559342, 992695855, 991112725, 990522955, 991109193, 957428269, 990786126, 990850574, 990523213, 957559087, 990785365, 990326290, 990523979, 990720311, 990523219, 957428003, 957295908, 957296163, 957495089, 957623588, 957364274, 957559586, 957626163, 990981969, 957624356, 957626417, 990982221, 957362722, 957429294, 990982992, 990720078, 957362469, 957560879, 990981964, 990989871, 957623841, 957429298, 990981976, 990720591, 990533935, 957492773, 957692205, 990588437, 990719309, 991319343, 957296417, 957560109, 990983507, 990719318, 520295998, 957362982, 957626672, 990459990, 692531545, 990074159, 957689888, 957297968, 990983768, 990720853, 754998016, 957299245, 992041264, 990720009, 990073391, 992162354, 957690927, 990984537, 990721112, 754999309, 990919510, 990657113, 991515439, 990916114, 957625394, 990391606, 990722390, 520294728, 990656599, 992565549, 991112723, 957428527, 520293704, 989934099, 990458634, 990917382, 990916111, 957494066, 991909680, 992423472, 992237101, 990927149, 957624879, 754982923, 993483056, 990978886, 754996013, 957362736, 991047504, 990785355, 991122991, 692474673, 957297203, 1059928368, 990785867, 990522956, 957559090, 991183192, 990785871, 990522958, 956706094, 990784853, 990523980, 990785878, 990522964, 990523477, 957361443, 957624867, 957689634, 957691698, 957297188, 957495085, 957690658, 957363759, 990982737, 957492516, 957298737, 990981714, 957492769, 957363761, 990981464, 990720336, 957493284, 957626413, 990981966, 990719823, 957361697, 957625648, 990983509, 990719575, 990196232, 957690405, 957298995, 990981709, 990257416, 957034545, 957427744, 957297966, 990983513, 990720598, 520573213, 957558053, 957495602, 990781257, 991055151, 991515695, 992292915, 957494320, 990985046, 990721876, 990138157, 957626670, 989933845, 692531540, 990327303, 990981653, 957690929, 990527319, 990722135, 990850311, 989998613, 992424498, 692933423, 991178260, 957559600, 956379698, 993679664, 990061574, 990657367, 989942063, 990981648, 957428529, 990524172, 993613616, 520179742, 993745197, 990468142, 957493807, 692933677, 993675824, 990256970, 990326289, 957362734, 991047249, 990785356, 990326793, 692541489, 957362739, 992685618, 990785868, 990522701, 991178254, 957624625, 990197546, 990785616, 990522703, 957428019, 990393428, 990785110, 990523725, 957367343, 990785623, 990524238, 990787156, 990523222, 990524500, 990983254, 990981721, 990984532, 957363757, 990720343, 990982482, 957560369, 990720849, 990984791, 957625646, 990721619, 957428514, 990661422, 990982987, 957495091, 990720081, 957427490, 990199638, 992105776, 957560115, 990721880, 957558049, 956510766, 990981711, 957429552, 990719568, 957296931, 989940528, 991974960, 957494318, 993676336, 957689121, 990129674, 990981454, 957298733, 990454086, 957493795, 991254063, 992368688, 957690925, 993675312, 957624608, 990199639, 991056685, 957691952, 990326032, 957362980, 989941807, 991047755, 957559598, 993679152, 957362464, 754994479, 992172336, 957364531, 990924079, 957362212, 992882736, 991046994, 957428525, 990785101, 990981651, 990072367, 957430065, 990989359, 957559076, 991449903, 992751922, 957559343, 990785613, 990719503, 990727214, 957428261, 990007855, 993679405, 957297199, 990785361, 990457674, 989941551, 692933422, 957297202, 990786384, 16862234, 990523470, 957563953, 957624621, 990785368, 990260754, 990523983, 957367341, 957362482, 990786899, 990396760, 990522710, 957493297, 990787160, 991243801, 990524245, 990064145, 990524504, 992228141, 754982745, 992489264, 990720274, 991245073, 692671540, 692671060, 990524176, 989999631, 692465491, 989932079, 990850830, 990851857, 989934351, 692540461, 990653482, 692990552, 520227113, 692605741, 990658389, 990656043, 754983948, 754987794, 992555565, 692540463, 990392338, 520162334, 992292146, 991048462, 990786322, 692605487, 989930057, 692802138, 990065167, 692934489, 990061830, 991113999, 991179541, 989999887, 692998963, 990655246, 990851089, 754987537, 692605491, 990855511, 754986540, 754987793, 989999889, 990457864, 990457688, 990457620, 991112975, 992358450, 990982927, 991245076, 692605747, 990390825, 990458639, 990130703, 692868691, 754997256, 990917392, 990456393, 990065423, 989934354, 990925101, 990524177, 989934097, 692540720, 990589495, 692671062, 989934353, 692803891, 990457942, 990130704, 992423726, 520244514, 990847559, 692662866, 990720018, 990658900, 990327050, 956641586, 992489266, 692934739, 692464979, 991116627, 754987530, 990126087, 990522639, 754978585, 991179024, 692868953, 992423727, 692728919, 991047696, 957428511, 990982419, 992555058, 990981909, 692867923, 993810739, 990394712, 957297183, 692804185, 692474418, 991047445, 956771633, 992424493, 692925013, 990785297, 692531539, 991113232, 692465490, 992292910, 990527827, 991178517, 990651466, 990981906, 957559583, 991047954, 957361439, 754994225, 990137395, 991112974, 990795565, 957427740, 993876275, 957558814, 990456138, 990981903, 957689374, 991178514, 991646509, 692868185, 989996555, 990652718, 991112976, 990520136, 991178769, 990392136, 991178516, 957690399, 990063657, 990393099, 991047443, 990195733, 990916884, 992554542, 990457678, 993940269, 957296156, 956444718, 957690396, 990720014, 990655031, 991113486, 990457418, 990721589, 992817457, 990466351, 990392911, 990457614, 990457426, 520441383, 754986516, 990064426, 957559068, 992826157, 692933465, 990717252, 990917126, 992620083, 957624607, 991047950, 992359216, 990192965, 692605524, 692934996, 520162633, 991113997, 992292145, 990068566, 990658132, 990003288, 989932855, 754982666, 692606546, 990393157, 754997267, 992293426, 992292655, 992817455, 990851087, 989932296, 990003289, 692531028, 990392392, 990851594, 991047440, 754986260, 990724441, 990131767, 692933715, 990715717, 992423728, 992293683, 692671064, 754994471, 990200148, 990986070, 992751665, 994072877, 692867891, 692466778, 990258440, 990125830, 991178773, 990720272, 754985994, 989941805, 692466515, 990202929, 957559580, 990457669, 990261266, 990261010, 990261522, 990195730, 990326802, 754984972, 990195474, 990326546, 990195986, 990327058, 990130194, 990392118, 990789203, 992629805, 990129938, 990130450, 990064658, 991112981, 990720017, 957297436, 990064402, 990064914, 992686639, 957428508, 990654482, 990261265, 990261009, 990261521, 990195729, 990326801, 990526550, 990195473, 990326545, 990195985, 990327057, 990130193, 990654735, 957689116, 990193971, 990129937, 990130449, 990064657, 990455626, 992293171, 957623836, 990064401, 990064913, 692999731, 957493276, 991112980, 990261264, 990261008, 990261520, 990195728, 990326800, 957689884, 990195472, 990326544, 990195984, 990327056, 990130192, 957362972, 957558044, 990592083, 990129936, 990130448, 990064656, 992162610, 957361692, 957362204, 990064400, 990064912, 692475187, 957690397, 692475700, 990261007, 957295900, 990261263, 990195471, 990326543, 990654225, 957427996, 957624604, 990261519, 990195727, 990326799, 990129935, 990981907, 990654737, 957297181, 990195983, 990327055, 990130191, 990064399, 16861456, 957624605, 990130447, 990064655, 692476468, 990064911, 990130190, 990129934, 990130446, 990064654, 990195726, 990129678, 990064398, 990195470, 990064910, 990195982, 990261262, 957558061, 957427997, 957625117, 990261006, 990261518, 990326798, 990588686, 692475188, 990260750, 990326542, 990327054, 990196488, 957624092, 990654226, 692605488, 990519110, 692606260, 957362461, 957492764, 992686641, 692476212, 692606259, 692607540, 692540205, 692671022, 990002259, 692605490, 692607284, 692868915, 692672308, 957427741, 990654478, 692607283, 692802094, 692672307, 692475986, 692671279, 692475218, 692474452, 692672563, 692672564, 692671278, 692474706, 692671283, 990464814, 957558045, 957493789, 692671024, 692475730, 692607539, 692606515, 990588688, 992621357, 692606516, 692474451, 692605740, 692605744, 692541229, 754997507, 957362973, 692605492, 692802355, 990981905, 692541485, 692605489, 692605743, 692606004, 692605484, 692933427, 957689117, 692671282, 693000243, 692605485, 692933426, 692671023, 990519624, 957493533, 957559325, 692671277, 692672052, 692474962, 990588687, 992424752, 957426973, 692476242, 692475474, 990847302, 957297182, 990256969, 990519882, 990587702, 989933578, 989997363, 991109190, 990585414, 990527061, 989930053, 990658391, 990323016, 956444973, 990982410, 990197549, 990061125, 990913610, 990065207, 990325293, 989935154, 692990292, 989930310, 990325814, 1058414665, 990197553, 990396246, 990650949, 692998995, 520163911, 989994823, 693000025, 992883250, 692597591, 992619826, 990261802, 990718261, 692597075, 754998285, 692597590, 989999122, 992883247, 692531798, 957624860, 990392072, 692934997, 990127430, 990986068, 990458455, 989999121, 989998866, 989999378, 957362716, 992882737, 957362976, 990523666, 992489520, 991048467, 754982971, 989999120, 989998865, 989999377, 957296412, 990654224, 692793427, 957690656, 957558558, 990721588, 990068820, 989999119, 989998864, 989999376, 957297437, 991047701, 692793939, 692726867, 692474417, 992619827, 992817200, 989999118, 989998863, 989999375, 957296669, 991245083, 692793683, 692531795, 992359219, 957689120, 692727122, 692475994, 989998862, 989999374, 957559069, 991244827, 990655240, 990062090, 990127434, 990392842, 990257225, 692476250, 692672090, 692474714, 989998606, 990916358, 990982158, 692596819, 957493790, 990785543, 692663126, 692476506, 692671834, 692475738, 692606554, 990729005, 692727890, 692541747, 992292909, 992489774, 991113491, 989929801, 692672346, 692474458, 692737626, 990128688, 990392661, 990264403, 990524977, 957296928, 990720269, 990389578, 754986796, 957361694, 990650694, 990392586, 692663383, 989934090, 754985258, 989934634, 990653494, 989995079, 692728914, 990130962, 992489777, 990000170, 957427486, 957231408, 692933938, 992292657, 754987527, 957493022, 692532055, 989997576, 990389317, 990588215, 990457925, 991240776, 990523664, 957623582, 990457941, 520180998, 990125896, 990585924, 692869209, 989999159, 992292403, 989933586, 990457935, 992555315, 957493788, 991047439, 692662099, 990789208, 990131497, 990323272, 989933585, 989933330, 989933842, 957558556, 692998958, 992292398, 991043914, 957558301, 990593366, 957493279, 989933584, 989933329, 989933841, 957690653, 990851344, 520295240, 992292144, 692933971, 990523662, 990724438, 989933583, 989933328, 989933840, 957689885, 990589198, 990724181, 991112711, 957623838, 692466258, 991047431, 989933582, 989933327, 989933839, 957362205, 990588942, 520557384, 990458125, 520424264, 692869203, 991178248, 692672858, 989933326, 989933838, 957558813, 990588943, 992358702, 992357934, 754987574, 990130189, 693000019, 692607066, 692803418, 692606042, 957493277, 990588944, 991179021, 992358958, 990730029, 990716488, 992424238, 692738138, 692605786, 692737114, 957295902, 990981908, 692728402, 992357935, 692989273, 957559070, 692794196, 991109962, 692736858, 692802906, 957296414, 990982420, 754988591, 692465234, 990991405, 692466522, 992292147, 990460505, 990854739, 957494046, 990457356, 990391082, 991240517, 990402351, 989994825, 990066481, 990846788, 991178766, 957493535, 692663384, 992358449, 990847557, 990982932, 990390826, 520162335, 992424239, 520245791, 990000686, 991043400, 520179215, 957624606, 520507421, 992555567, 990847562, 692726866, 992883246, 992817199, 992357681, 990402611, 692859480, 990523665, 990654480, 957689630, 754987026, 992555054, 990654729, 957361436, 692859734, 692663125, 989995846, 990920790, 520229703, 754987025, 754986770, 754987282, 957427484, 990982164, 992958509, 957361695, 957296415, 990523663, 990325043, 754987024, 754986769, 754987281, 957428509, 990458409, 990466352, 990916103, 692607577, 692465746, 520163910, 754987023, 754986768, 754987280, 957624349, 990719758, 990523153, 692661587, 992489517, 520179743, 991047952, 754987022, 754986767, 754987279, 957361949, 957034285, 990388548, 692540465, 992359213, 989933623, 692466771, 692804184, 754986766, 754987278, 957427485, 991179027, 990523151, 992816942, 990003283, 990794541, 990391365, 692738645, 692607574, 692673110, 754986510, 990588945, 692663378, 692540717, 990526807, 990457359, 692532054, 692738649, 692607576, 692673112, 692673113, 991043913, 992500013, 957427999, 993417005, 990654223, 990194229, 990325300, 692673109, 692804182, 692804181, 990196493, 990468403, 692597850, 991254061, 957296672, 957296668, 990588426, 991174981, 957624862, 990192903, 692792402, 990985300, 992358192, 991046924, 692727635, 754982919, 990323014, 692728915, 992358957, 990654738, 957361696, 992424755, 990453832, 992292402, 692925017, 990521641, 692804183, 990392082, 990585670, 990459446, 990458439, 992751407, 990391884, 692999769, 957428255, 990127623, 992490286, 992555823, 957623839, 991114003, 957296158, 692595795, 989998087, 992488750, 992555057, 957427228, 520164423, 957361951, 992292653, 957559326, 957297184, 990532397, 990007853, 991252013, 957559581, 991179026, 957362207, 692541742, 990392644, 990456108, 990327308, 990530352, 16916309, 990137139, 957296413, 990589199, 993089069, 692728146, 992357683, 990392909, 957493534, 990328118, 989932813, 520294727, 957624093, 990589200, 990654734, 991248473, 754997266, 989998634, 754997258, 990530610, 993547053, 990981896, 957558557, 990589201, 957624095, 992423981, 16931112, 991244305, 993088557, 692607578, 520310056, 991241033, 957297438, 992162611, 692868403, 990978119, 754987276, 990258500, 957427230, 692673107, 692607571, 692804186, 957428510, 990982416, 957559327, 990392145, 992554547, 991178767, 957231661, 692804179, 692672082, 692738643, 957625118, 991047694, 692728658, 692663385, 992293169, 990916109, 990393159, 754977865, 692671826, 692607572, 957427998, 990982417, 990395480, 991113230, 990658643, 989933098, 990459223, 956903987, 754985222, 957689886, 989994824, 991245062, 989996298, 990459190, 692859735, 990650952, 754986025, 992686129, 990258694, 990325545, 957494047, 692792403, 989931821, 991241029, 692728917, 989998090, 754997249, 989995019, 692661843, 989934378, 692531289, 992489010, 992490289, 754982730, 990257670, 990391571, 992619821, 990978121, 992554290, 990262032, 692934745, 754988843, 520244496, 520181524, 992489261, 992554543, 957362717, 520310556, 957689118, 956509488, 991109706, 991044167, 754991193, 989997612, 991113739, 957689629, 754984966, 957297439, 692869461, 990389572, 990199123, 992423982, 520310799, 990589709, 520179997, 957296157, 991113489, 990390834, 957426976, 990525238, 957558815, 991113492, 957099314, 16909900, 520179727, 957361693, 991113233, 956641841, 989929226, 754977295, 992358451, 956575535, 990466611, 991112461, 990126859, 957492765, 991112966, 957624863, 993941811, 754998545, 992424496, 957362463, 692607058, 989933066, 990459219, 957690654, 692474412, 992490287, 992358959, 957690655, 990126342, 990066220, 692738130, 692605778, 692737106, 989930251, 990261780, 990716228, 692474419, 754986805, 692998962, 990656055, 692803410, 692736850, 692802898, 692673106, 990392401, 992423985, 990453576, 991116371, 692925016, 956575537, 990720809, 692802642, 692672850, 692607314, 989994820, 992292914, 692663380, 957624094, 957625119, 992423986, 989929546, 990390602, 957493278, 692802612, 754996228, 990326029, 957296671, 957624351, 990848069, 957166387, 990721582, 990978375, 990000942, 990061320, 957689631, 957362719, 754985260, 520426558, 992555569, 990785808, 990785800, 990389319, 990458967, 957361440, 957296416, 990457871, 990458198, 693000281, 990259719, 992554289, 992554287, 990457870, 992490290, 991250221, 990061385, 692663123, 956378671, 992555055, 992555825, 957494045, 692990297, 693000533, 991244571, 990848328, 991244561, 956510515, 990393171, 956575533, 957689373, 991178771, 991244312, 991112715, 754996224, 994400557, 992423729, 990192453, 990656304, 989937492, 957623837, 990720015, 990325294, 990456390, 957689887, 990137392, 692933459, 990458637, 956837682, 990196490, 957492509, 992621363, 990126150, 957493020, 992555568, 990917140, 990658388, 754983177, 754985995, 990257733, 957362718, 990588690, 992423216, 990457353, 990391570, 991048213, 990982675, 692671063, 957166385, 990194227, 957428254, 992358960, 991244310, 990655238, 990519876, 991244054, 991113749, 692605525, 692802134, 692605526, 957690142, 991047956, 692663122, 991244308, 991177991, 990007597, 991244055, 692605527, 692736597, 692736598, 957558046, 990982163, 957426974, 692663386, 992358191, 989996039, 990851347, 990395737, 692736599, 692671061, 957624350, 692541233, 520295744, 520292138, 992358447, 990062896, 991244314, 990399789, 990128937, 957296159, 991243547, 992292142, 692728920, 990986073, 692859732, 957034542, 754990164, 990523408, 692727634, 989933366, 990391635, 692925011, 990131255, 990392119, 692728918, 990726958, 692859736, 520229960, 992554802, 957427487, 990262830, 990457615, 990458121, 992490285, 992620592, 989932806, 992555309, 990458122, 992489518, 992488749, 990131511, 692465235, 992948786, 754986247, 992555824, 992555566, 957295901, 992490291, 957427231, 754977041, 520179726, 520441127, 956378419, 956642095, 990131758, 957361437, 992686385, 990851343, 990982160, 957624348, 692464723, 957361950, 991108933, 990326536, 957034290, 957493021, 992751409, 990982676, 692803154, 990133336, 991113231, 990982414, 990130473, 989998646, 956771631, 957296926, 990588689, 991244303, 754987570, 692934450, 990913865, 692466774, 989932329, 990062899, 957034291, 957690398, 957493532, 991113488, 992423725, 957427742, 991048468, 991245080, 692736601, 956903725, 990323017, 957362206, 990467119, 990913093, 692804180, 990063913, 989998903, 990524178, 692671058, 692605522, 692802132, 992498989, 692541234, 992357936, 990584645, 990457877, 991114002, 992226611, 692671066, 692605530, 692802136, 692802137, 990065165, 990585671, 992293680, 990258501, 692662610, 990982415, 990131763, 692802131, 692736595, 692736594, 990128436, 990723668, 692663381, 693000275, 692596051, 957690140, 990066226, 990064951, 957426975, 990262825, 992424751, 992236589, 990523152, 992293678, 692859737, 990066219, 990262836, 692672594, 692662355, 754987305, 692727379, 754997010, 754977864, 957231918, 957623583, 957558047, 990920789, 957034802, 957231151, 991240010, 692933977, 992423218, 992554797, 992357679, 957296670, 992424499, 992423475, 992423213, 990720020, 692803892, 990982159, 957295903, 990393104, 992424750, 992424754, 957623581, 991240006, 990919767, 957494044, 692464978, 692728403, 957166381, 990715722, 1057432328, 957427229, 990589202, 990327567, 957493791, 989997830, 990785294, 990394166, 990260265, 989935150, 990391569, 957361438, 992751664, 754987019, 692792659, 16924733, 991244049, 692728660, 990392908, 990912585, 754985770, 957362462, 692474420, 990466861, 956969263, 692803922, 957428512, 990588940, 990392587, 956641837, 989935159, 957492510, 692540977, 990130961, 990457862, 957426972, 520161577, 990589481, 692998999, 990390342, 990792495, 957492766, 990978116, 990196497, 990006323, 991051352, 992358194, 989937240, 692933460, 692867924, 692867925, 957558302, 956707119, 956706609, 992424495, 990981902, 956838190, 692728147, 692933464, 692867928, 692867927, 957362975, 990523407, 957297440, 692728916, 692466002, 990205997, 990333746, 990912328, 692998996, 692998997, 957689119, 990391862, 992293421, 991113237, 990521643, 990263089, 692868947, 990328364, 754987014, 957689375, 990523409, 692464722, 957296927, 990457432, 956969523, 692859481, 990585413, 692474932, 520163654, 692728922, 990785031, 692925014, 520557127, 754987307, 692728921, 990394457, 692859733, 993941805, 692925012, 520232538, 990461526, 956772398, 991243527, 520360520, 520442143, 990850829, 990061384, 991043909, 754985227, 990393109, 692925271, 692925270, 692925269, 990390578, 692794454, 692794453, 692794452, 956378415, 692793170, 692792914, 692792658, 990388042, 692596562, 692596306, 692596050, 989934903, 692925272, 692540757, 692794455, 692925273, 990064950, 754997760, 520178723, 692793426, 692794456, 754986281, 692990547, 991047942, 692596818, 692793682, 957035312, 692794457, 990000695, 956443955, 692597074, 990337325, 692793938, 990393654, 692597330, 990194231, 956968239, 692990548, 990653737, 692794458, 692990549, 990782277, 990327560, 991046919, 692794194, 692859475, 956379954, 692990550, 991055405, 692597586, 692794450, 956772145, 692859476, 990000950, 990392588, 692597842, 520311069, 692794451, 990388550, 692597843, 754994447, 990399283, 990133591, 692736558, 990393683, 990585672, 990264917, 956903986, 692999725, 754980159, 990066231, 990585412, 990261781, 754985261, 956575792, 520163141, 990323526, 991240518, 990847558, 990390571, 990395225, 754985484, 956707123, 990000439, 990000943, 989995850, 990060618, 990066475, 989997613, 990130743, 990392905, 990391095, 692999214, 754984712, 990331220, 990330709, 990263092, 989929479, 520376349, 990065705, 520492352, 990391877, 990128690, 990323525, 990391110, 520161322, 956771629, 990392152, 991175240, 989930247, 754986027, 991051095, 990650951, 990584900, 990193965, 990191430, 754985990, 993677613, 990393945, 990527062, 956510769, 991185709, 754983688, 990394157, 754979655, 16931135, 754977553, 754986287, 993286189, 990063927, 1057431559, 957165359, 990065719, 956707634, 990920793, 956640816, 990393431, 992630064, 956575539, 754995245, 990193973, 520376092, 754997510, 990131757, 990720010, 990459443, 991186221, 990073133, 990330710, 990327862, 990061898, 990663469, 991248729, 989995588, 754982725, 957034031, 991051861, 990259504, 990063658, 957099569, 991109702, 991047432, 990530861, 990323012, 754986798, 990065974, 990129422, 754998797, 990391636, 990389061, 990457655, 956706355, 990325302, 754987016, 956838194, 990137136, 520426311, 990126405, 754995461, 990257220, 990396243, 754986543, 990458709, 990328631, 989940529, 754986537, 754996755, 991243789, 520507933, 989935407, 990129719, 990388294, 990204461, 990657877, 990788950, 990394713, 990724440, 990592597, 990130230, 990520133, 520359239, 993678637, 990133331, 990128694, 990326826, 990522153, 754976808, 994007341, 990456373, 520229951, 990257993, 754991192, 990847812, 754994202, 990194218, 1057432331, 990259765, 994007379, 520442140, 957099821, 956706861, 990781252, 990257732, 990257737, 520311070, 992499247, 991244296, 990065421, 990000937, 990261302, 990527065, 991240522, 990391828, 754982984, 754997765, 990525229, 990590510, 990193926, 754987567, 990391626, 754985781, 754988341, 990782789, 990200152, 990393432, 990392582, 754986762, 990325039, 990392912, 991175752, 957230638, 991044168, 754983236, 990523703, 990390853, 990066224, 990129962, 990130999, 990525226, 520162375, 688333320, 990392907, 990589238, 990661678, 990064439, 989998343, 754986289, 992434477, 989998122, 989935413, 990258244, 990393175, 991043908, 957166125, 989999671, 754997255, 520167257, 990194729, 989997354, 990394707, 956379183, 990457910, 990194219, 754988585, 754978840, 956378930, 990655543, 957165873, 990590518, 990063147, 990847818, 990390574, 990982154, 989929224, 991117145, 990721847, 990979401, 990195722, 990395733, 957099824, 991179015, 754997002, 990851093, 990392337, 990395987, 990392916, 991043397, 990655030, 990193414, 1058414661, 990652717, 990392592, 956444461, 991241285, 990847050, 989931527, 990132013, 990520388, 990459734, 991449901, 957230894, 957231663, 990063956, 990064212, 990064468, 990064724, 990064980, 990129492, 990129748, 990130004, 990130260, 990130516, 990195028, 990195284, 990195540, 990195796, 990196052, 990260564, 990260820, 990261076, 990261332, 990261588, 990326100, 990326356, 990326612, 990326868, 990327124, 990195283, 990195027, 990195539, 990129747, 990260819, 990129491, 990260563, 990195795, 990130003, 990261075, 990064211, 990326355, 990063955, 990326099, 990196051, 990130259, 990261331, 990064467, 990326611, 990130515, 990261587, 990064723, 990326867, 990064979, 990327123, 990195538, 990195282, 990195794, 990130002, 990261074, 990195026, 990129746, 990260818, 990196050, 990130258, 990261330, 990064466, 990326610, 990129490, 990260562, 990064210, 990326354, 990130514, 990261586, 990064722, 990326866, 990063954, 990326098, 990064978, 990327122, 990195281, 990195025, 990195537, 990129745, 990260817, 990129489, 990260561, 990195793, 990130001, 990261073, 990064209, 990326353, 990063953, 990326097, 990196049, 990130257, 990261329, 990064465, 990326609, 990130513, 990261585, 990064721, 990326865, 990064977, 990327121, 990195280, 990195024, 990195536, 990129744, 990260816, 990129488, 990260560, 990195792, 990130000, 990261072, 990064208, 990326352, 990063952, 990326096, 990196048, 990130256, 990261328, 990064464, 990326608, 990130512, 990261584, 990064720, 990326864, 990064976, 990327120, 990195279, 990195023, 990195535, 990129743, 990260815, 990129487, 990260559, 990195791, 990129999, 990261071, 990064207, 990326351, 990063951, 990326095, 990196047, 990130255, 990261327, 990064463, 990326607, 990130511, 990261583, 990064719, 990326863, 990064975, 990327119, 990195534, 990195278, 990195790, 990129998, 990261070, 990195022, 990129742, 990260814, 990196046, 990130254, 990261326, 990064462, 990326606, 990129486, 990260558, 990064206, 990326350, 990130510, 990261582, 990064718, 990326862, 990063950, 990326094, 990064974, 990327118, 990195533, 990195277, 990195789, 990129997, 990261069, 990195021, 990129741, 990260813, 990196045, 990130253, 990261325, 990064461, 990326605, 990129485, 990260557, 990064205, 990326349, 990130509, 990261581, 990064717, 990326861, 990063949, 990326093, 990064973, 990327117, 990195788, 990195532, 990196044, 990130252, 990261324, 990195276, 990129996, 990261068, 990130508, 990261580, 990064716, 990326860, 990195020, 990129740, 990260812, 990064460, 990326604, 990064972, 990327116, 990129484, 990260556, 990064204, 990326348, 990063948, 990326092, 990065237, 990065238, 990065239, 990065240, 990065241, 990130773, 990130774, 990130775, 990130776, 990130777, 990196309, 990196310, 990196311, 990196312, 990196313, 990261845, 990261846, 990261847, 990261848, 990261849, 990327381, 990327382, 990327383, 990327384, 990327385, 990196567, 990131031, 990262103, 990196566, 990196568, 990065495, 990131030, 990131032, 990327639, 990262102, 990262104, 990196565, 990196569, 990065494, 990065496, 990131029, 990131033, 990327638, 990327640, 990262101, 990262105, 990065493, 990065497, 990327637, 990327641, 990196824, 990131288, 990262360, 990196823, 990196825, 990065752, 990131287, 990131289, 990327896, 990262359, 990262361, 990196822, 990065751, 990065753, 990131286, 990327895, 990327897, 990262358, 990196821, 990065750, 990131285, 990327894, 990262357, 990065749, 990327893, 990197079, 990131543, 990262615, 990197078, 990197080, 990066007, 990131542, 990131544, 990328151, 990262614, 990262616, 990197077, 990197081, 990066006, 990066008, 990131541, 990131545, 990328150, 990328152, 990262613, 990262617, 990066005, 990066009, 990328149, 990328153, 990197335, 990131799, 990262871, 990197334, 990197336, 990066263, 990131798, 990131800, 990328407, 990262870, 990262872, 990197333, 990197337, 990066262, 990066264, 990131797, 990131801, 990328406, 990328408, 990262869, 990262873, 990066261, 990066265, 990328405, 990328409, 990132055, 990066519, 990197591, 990132054, 990132056, 990066518, 990066520, 990263127, 990197590, 990197592, 990132053, 990132057, 990066517, 990066521, 990328663, 990263126, 990263128, 990197589, 990197593, 990328662, 990328664, 990263125, 990263129, 990328661, 990328665, 990132311, 990066775, 990197847, 990132310, 990132312, 990066774, 990066776, 990263383, 990197846, 990197848, 990132309, 990132313, 990066773, 990066777, 990328919, 990263382, 990263384, 990197845, 990197849, 990328918, 990328920, 990263381, 990263385, 990328917, 990328921, 990198103, 990132567, 990263639, 990198102, 990198104, 990067031, 990132566, 990132568, 990329175, 990263638, 990263640, 990198101, 990198105, 990067030, 990067032, 990132565, 990132569, 990329174, 990329176, 990263637, 990263641, 990067029, 990067033, 990329173, 990329177, 990198359, 990132823, 990263895, 990198358, 990198360, 990067287, 990132822, 990132824, 990329431, 990263894, 990263896, 990198357, 990198361, 990067286, 990067288, 990132821, 990132825, 990329430, 990329432, 990263893, 990263897, 990067285, 990067289, 990329429, 990329433, 990195531, 990195275, 990195787, 990129995, 990261067, 990195019, 990129739, 990260811, 990196043, 990130251, 990261323, 990064459, 990326603, 990129483, 990260555, 990064203, 990326347, 990130507, 990261579, 990064715, 990326859, 990063947, 990326091, 990064971, 990327115, 990264151, 990198615, 990329687, 990264150, 990264152, 990133079, 990198614, 990198616, 990329686, 990329688, 990264149, 990264153, 990067543, 990133078, 990133080, 990198613, 990198617, 990329685, 990329689, 990067542, 990067544, 990133077, 990133081, 990067541, 990067545, 957562159, 957362730, 990455877, 991186479, 991385903, 957300275, 957296426, 992882991, 991120687, 989995527, 990128689, 957365811, 990663215, 957426986, 993613870, 957300274, 957690410, 990599469, 992423473, 692934195, 993668938, 993668682, 993669194, 993668426, 993669450, 993668937, 993668681, 993669193, 993668425, 993669449, 993668936, 993668680, 993669192, 993668424, 993669448, 993668935, 993668679, 993669191, 993668423, 993669447, 520361536, 990721841, 990527829, 990261775, 692476467, 990982929, 992424753, 520292394, 957165871, 692476211, 992292401, 990196240, 692474414, 990134103, 991179540, 990917394, 692606034, 990462041, 990527831, 990457619, 991244047, 990523918, 991249709, 990851346, 990260501, 990388553, 991179538, 990851859, 991244815, 990260486, 992359218, 990335021, 520298074, 991178513, 992882479, 692671059, 692867888, 692793171, 1058414407, 520310798, 991244814, 991244056, 692540979, 990262031, 990851599, 990851598, 991179279, 990916362, 692999987, 990785553, 990786064, 991244817, 990786063, 990391338, 990916627, 692597844, 990720271, 991048206, 990720530, 990457164, 993614128, 993676592, 990784843, 990658387, 990072623, 990721625, 990656050, 991109450, 990784846, 991975216, 991384367, 957494322, 990721621, 990984536, 990990893, 957428783, 990785358, 991047756, 990269743, 957625135, 957690400, 990720088, 990984275, 991113478, 957625650, 957493536, 990785106, 990460500, 990335535, 957362992, 991047188, 990720594, 990982999, 990196231, 957691183, 957426977, 990786129, 992948018, 990523215, 957297459, 990653968, 990719826, 990982740, 990065416, 957298224, 957689889, 990784856, 520310313, 990523728, 957559346, 991047185, 990719313, 990982227, 990656311, 957560365, 957296418, 990786901, 754998024, 990522967, 957690419, 754986252, 990792494, 990982988, 991450415, 957429554, 957623842, 990786905, 957563949, 990523990, 957690160, 990400813, 991250479, 990981456, 990337071, 957429550, 957362723, 990788438, 957301808, 990525268, 957296945, 990596909, 990269485, 754986248, 991384623, 957626419, 957559587, 957694767, 990525527, 957493293, 991243791, 990588181, 754995503, 957691950, 957296164, 957689906, 989998610, 957298994, 957690148, 754986514, 957558564, 990454602, 993547824, 990785544, 991047243, 990138159, 990722905, 991248215, 990336047, 990785103, 991047501, 990270511, 957494063, 990722644, 992105520, 754985515, 957428785, 990786379, 991048267, 990336303, 957362990, 990719505, 990721366, 990984281, 16914265, 957559856, 957428256, 990785874, 992621145, 990522960, 957362995, 990588433, 990719833, 990984277, 993285677, 957691185, 957559328, 990785113, 990075181, 990523473, 957624881, 990457421, 990720339, 990982744, 990848073, 957494576, 957296673, 990786646, 990392083, 990524241, 957428275, 990916110, 990719571, 990982485, 957231150, 957298222, 957427745, 990787924, 957629488, 990523735, 957690158, 692869460, 990924591, 990981972, 520309800, 957625904, 957361698, 990788183, 957301806, 990525011, 957296941, 990326288, 990589449, 990982733, 990257735, 957364017, 957492770, 992620336, 957498160, 990525272, 957427760, 692474675, 990923569, 990788693, 991176007, 957364015, 957690659, 957694769, 990335023, 957493299, 992883249, 992041008, 991580975, 957691954, 957689635, 957558577, 992489005, 957495345, 957361444, 692474450, 957428004, 957297458, 957297455, 957624877, 991112722, 991048268, 957559599, 990522898, 991047246, 957362738, 990981647, 991047252, 990784848, 957428781, 990653970, 991047244, 993547312, 957493553, 957231154, 990062342, 990786380, 990074157, 957559854, 957625120, 992040496, 990784844, 992303405, 957624627, 990260753, 956509744, 990785619, 990522705, 957691181, 957624096, 990455110, 990588166, 990204719, 957427758, 692541235, 957629486, 990786132, 990523218, 957494574, 957362465, 990985043, 990722904, 990927151, 957427762, 992555312, 957563955, 990786391, 990523986, 957560371, 957624609, 990984022, 990722387, 754996745, 957558573, 992490288, 957498158, 990787667, 990523480, 957625902, 957689122, 990982489, 990721111, 16928026, 957296430, 989933071, 957694765, 990787928, 990525013, 957364013, 957558050, 990982230, 990720852, 990720518, 990395220, 957628975, 990595889, 990525017, 957560625, 957428515, 990981460, 990720084, 989929478, 956379693, 991187247, 957495347, 957427491, 990982478, 990720845, 990259976, 692802097, 957296932, 991975728, 993351725, 990271535, 990923823, 520310051, 754995247, 990524169, 990847556, 990786125, 991048013, 990654217, 992695857, 991046991, 990992687, 990785364, 991048526, 990073135, 957690675, 993482544, 991046989, 990861615, 957559602, 990785877, 990197047, 990522963, 957690416, 991178261, 990722649, 990850317, 989941039, 957297715, 992817456, 990786136, 990391369, 990523731, 957297201, 991047184, 990722389, 990657881, 990192714, 957363248, 992293168, 990787669, 957695023, 990523225, 957493549, 990392408, 990720856, 990985045, 993154349, 957625391, 957494048, 990787673, 957629490, 990524758, 957690162, 990195218, 990720597, 990983767, 993743661, 957494578, 957493024, 992554285, 957432623, 990526036, 957362223, 692540719, 990719829, 990983508, 520376081, 957429039, 957690401, 993219376, 957498162, 990526297, 957362225, 989940785, 990720590, 990981975, 520361535, 957625906, 957493537, 993547056, 957497903, 990203695, 957624112, 991047946, 992564782, 990981717, 993677357, 957691439, 957426978, 957563442, 990915846, 957558579, 754986512, 990982223, 520161064, 957298480, 957689890, 957558320, 992423731, 957560621, 957296419, 993219886, 957623843, 990392585, 990265177, 990325041, 990392902, 990460246, 990785300, 990917387, 754988592, 990257930, 990391889, 990261002, 956771885, 991123757, 990526549, 754988588, 990257162, 754979144, 990921049, 991244808, 990199897, 990259498, 956771630, 754998531, 990265430, 990977864, 990592089, 993219629, 989929738, 990457399, 990067798, 990130964, 991052120, 990393911, 956575021, 990196521, 990467375, 956576561, 989936982, 990462292, 956509486, 754983689, 520245276, 990328365, 990855253, 956379952, 990326797, 520310559, 754987311, 990458640, 990326582, 991113224, 990981645, 990848329, 990392074, 990458705, 989930054, 990719273, 520179214, 990259975, 990519626, 754987092, 990854483, 754983433, 990125893, 990920537, 956837166, 754986836, 956509746, 754987348, 754980158, 989933652, 956444979, 990978631, 754997254, 754986580, 956444717, 989933396, 989935406, 989933908, 956379438, 989999188, 990000947, 754986324, 754986538, 989933140, 990191433, 989998932, 989933354, 989999444, 990127371, 991044170, 989932884, 991241540, 989998676, 754984968, 992040493, 956903984, 989998420, 991975725, 990062854, 992826669, 754987058, 990786324, 754976810, 991113735, 993416493, 990265433, 990465326, 956445488, 990846793, 991113482, 989929797, 990920020, 754997773, 990125892, 990589196, 990655242, 990194474, 990060869, 990063415, 990259508, 990456112, 989940782, 990127429, 754985779, 990730541, 990197554, 990792753, 754983469, 990658131, 956838191, 989999371, 956771889, 956838451, 989930823, 990985556, 990782279, 990258246, 990062893, 989999367, 956772656, 990982151, 754985226, 990133334, 754982662, 990128903, 957034543, 992893229, 957100333, 989932841, 990327048, 991051096, 754983687, 754987313, 990458966, 989996294, 990335533, 992696109, 990262829, 956773170, 754987091, 754988841, 957164847, 754985780, 956640557, 520178983, 754986835, 990587444, 754987347, 990392361, 989933651, 956903474, 990854999, 991044169, 754986579, 990066227, 989933395, 991043910, 989933907, 990393684, 989999187, 990197302, 754986323, 990854740, 989933139, 1057431815, 989998931, 990325038, 989999443, 991121453, 990390833, 989932883, 990062903, 989998675, 990588941, 520292650, 754987052, 989998419, 991051348, 990195976, 520292648, 990199641, 990521647, 991908653, 991051093, 990394452, 990261004, 754994226, 991182934, 520181523, 991052121, 990391897, 991248728, 990652982, 989931787, 990527316, 990194954, 754980696, 754978078, 991247957, 990064170, 992695597, 991183187, 989938009, 990125898, 990133846, 989940787, 990068309, 754986541, 990522934, 990325292, 989998602, 990062855, 990985301, 520375847, 990592339, 520181780, 990519368, 990259509, 990394455, 754986504, 993874739, 990465837, 990256966, 990458381, 1057432329, 990587184, 990650438, 520310813, 990520132, 990129930, 990589204, 990524713, 990128437, 956444207, 754986026, 990464818, 990395224, 990652714, 990392660, 990259211, 754985776, 754983943, 990456364, 956445230, 957100850, 990399534, 990132017, 990400559, 990392656, 754987090, 990061381, 990720013, 990193966, 990259764, 956706605, 754986834, 990522423, 754987346, 989929990, 989933650, 994333491, 754998028, 990392374, 754986578, 520164168, 989933394, 991241544, 989933906, 989999186, 990068307, 754986322, 991113229, 989933138, 989998930, 989999442, 990654214, 989932882, 989998674, 989998418, 990527833, 990654220, 990391114, 990330197, 754988077, 990331224, 989929739, 754996741, 754997513, 990592856, 956969517, 990067795, 520293705, 956378931, 990454600, 990259762, 990133332, 990466865, 989999146, 991181913, 754995204, 990854487, 754990423, 990264665, 990718514, 990258249, 990458389, 957558062, 956706099, 990716485, 990127110, 990393897, 520311071, 990592600, 991248724, 989995333, 990257160, 990392645, 990392393, 990392852, 989931819, 989997367, 754984459, 991109192, 754987015, 754987057, 989995592, 990392910, 990590762, 990060358, 990328367, 990325299, 990193927, 991181912, 520573471, 990322756, 754982724, 990197555, 990194223, 990655786, 990650437, 520164928, 990466606, 754980416, 989997878, 990064438, 991046928, 956511023, 990393095, 990519881, 990128138, 990325034, 991178247, 1058414405, 990521901, 990456366, 990467890, 990394965, 990257418, 990128433, 956575534, 754986833, 956706096, 754997257, 754986577, 990063368, 990130985, 754987089, 989933393, 754986321, 989933137, 754987345, 989933649, 989998929, 989932881, 989998673, 989933905, 989999185, 989998417, 989999441, 990663213, 990854745, 989994822, 754990680, 754991191, 688333321, 989935410, 989937751, 754986254, 520310800, 990912324, 990521900, 990456374, 990199636, 990523916, 991178246, 990724184, 989997366, 520358727, 990716231, 520310031, 990326071, 991112973, 990458181, 990003539, 990982413, 754988850, 990395990, 754988337, 990326583, 754998792, 16926991, 990453574, 990788695, 993220909, 754978373, 990654263, 754985772, 754986292, 990847815, 990388552, 990786312, 990191941, 991247699, 990392849, 989999158, 754986549, 754976817, 956771891, 990913353, 990782282, 990465587, 754997506, 688333065, 991117143, 990197291, 990392918, 990392329, 990335789, 992565296, 957165870, 989932552, 990913604, 991582253, 990391820, 990197033, 990851335, 989933325, 956576303, 990458450, 520310801, 990650442, 956444722, 754996994, 991109449, 990784781, 990721838, 520376079, 520556871, 754984198, 989999883, 990063622, 754986576, 754986320, 990587443, 990655286, 754986832, 989933136, 989932880, 990851079, 754987088, 989933392, 989998672, 989998416, 754987344, 989933648, 989998928, 989933904, 989999184, 989999440, 990199381, 990596397, 754986039, 990392079, 990330454, 991050840, 991051603, 990194438, 16911674, 990527321, 990858029, 990390852, 991179274, 990721845, 990454085, 957231666, 990985814, 990396500, 990260749, 990060614, 990459992, 991048459, 990334001, 990391637, 754996482, 990858541, 990921046, 754994944, 956838450, 990192458, 990268467, 990061067, 990532909, 754995460, 990589738, 754991443, 990257990, 991241028, 990458969, 990000948, 754985739, 992302125, 990789209, 990060612, 990006066, 990393170, 990326036, 989932082, 990334765, 990065418, 989934889, 990195767, 520310287, 991240520, 990727216, 990128683, 990064135, 993940275, 989934122, 990395993, 990192134, 990259466, 989940530, 993219373, 754994974, 754985738, 990263090, 956837167, 990204205, 990393106, 990196010, 990258506, 990587703, 990720522, 956837426, 989933322, 990719757, 990063885, 990064647, 990786061, 990458441, 990656045, 754986575, 754986319, 991179018, 990654216, 754986831, 989933135, 989932879, 520375592, 754987087, 989933391, 989998671, 989998415, 754987343, 989933647, 989998927, 989933903, 989999183, 989999439, 754998536, 957230386, 754988083, 990262071, 989999380, 990264659, 520228421, 989997062, 990720788, 990391815, 990782788, 990855508, 990658647, 990854228, 990391620, 990388808, 990588172, 520311327, 990782792, 956903216, 754991445, 990130729, 990718762, 991182169, 990587946, 990261558, 990330708, 990391113, 520232539, 754982664, 990453577, 990978629, 754995214, 754997505, 990391564, 991044679, 754978606, 754979142, 990982922, 754978628, 990002777, 754977607, 990390570, 990130217, 990977861, 754986246, 990261512, 990720054, 991182677, 990263086, 990195978, 990205485, 754999054, 990328628, 992630322, 990719542, 990392921, 989935402, 990322505, 754995456, 754999307, 754997768, 990130445, 989935415, 990323786, 520244753, 989934121, 956444723, 990061386, 956837170, 990461781, 956838705, 991175751, 990588429, 990000945, 990330456, 989931019, 957100082, 990191624, 990718254, 520245009, 990523402, 990261254, 754986830, 990654470, 754986574, 990590773, 754987086, 989933390, 754986318, 989933134, 754987342, 989933646, 989998926, 989932878, 989998670, 989933902, 989999182, 989998414, 989999438, 990064660, 990727213, 754979912, 956837681, 957033778, 991113736, 754982729, 990727218, 754977567, 754982922, 990257736, 990781765, 990071600, 992498477, 990068051, 990126410, 754982491, 990985299, 990399793, 990126151, 992826925, 991174986, 990327302, 990585157, 990393100, 990913350, 989937491, 990268465, 990129163, 990394163, 754998283, 990000939, 990461013, 520376350, 990523690, 754985526, 990265173, 990127624, 1057431563, 754978120, 990325801, 957035309, 754987062, 990323270, 990855507, 990388554, 990392657, 991051606, 990524971, 990461011, 990991149, 990657879, 956837678, 990396248, 991043658, 990530353, 754987564, 990394453, 990458454, 520245279, 754999052, 990061129, 990990125, 990596146, 991974701, 991047688, 990524167, 956379441, 990981389, 990193975, 990392326, 956378674, 956838446, 990589482, 990589751, 990400301, 990651204, 990458963, 990060808, 990589737, 990194440, 990653994, 754999315, 754986829, 990587183, 754986573, 990262024, 754987085, 989933389, 754986317, 989933133, 754987341, 989933645, 989998925, 989932877, 989998669, 989933901, 989999181, 989998413, 989999437, 990590507, 990264661, 956444978, 989999878, 990128647, 990388041, 989999124, 692541269, 989937749, 990134101, 990723925, 990789974, 991244554, 990457385, 991116888, 990328372, 989931826, 989995337, 16930878, 956379185, 990195989, 990260278, 992892973, 990392336, 990327572, 990129207, 990588685, 957165103, 990584906, 990265429, 520179996, 956902706, 992171821, 991051094, 990391563, 956969779, 991051864, 990394967, 990651721, 956772401, 990846791, 990203949, 956575536, 520292137, 520375567, 990588936, 754988595, 990784784, 990590767, 990789973, 990392844, 992499760, 957231155, 754999302, 989930566, 990194985, 956509741, 991048454, 989931818, 990390837, 990465330, 754997549, 520247315, 991112710, 991117653, 990720263, 956837938, 989930564, 990785287, 990390856, 520310815, 989932811, 990524202, 990458710, 990392851, 990262835, 990590511, 991179527, 990458630, 754987788, 990652973, 520310057, 754986572, 754986316, 990587189, 990260231, 754986828, 989933132, 989932876, 520311324, 754987084, 989933388, 989998668, 989998412, 754987340, 989933644, 989998924, 989933900, 989999180, 989999436, 990327562, 991116884, 990330453, 991109446, 990716746, 991176006, 990658393, 991181909, 692737843, 990328626, 754979910, 990588470, 990262070, 991183189, 957035313, 754987566, 990064169, 990519621, 990265432, 754987817, 520312594, 956968493, 990920275, 990596144, 990458712, 990391624, 989938006, 989999927, 990920534, 754983212, 990391631, 991109703, 956904238, 990391108, 754995458, 990788692, 990393164, 754987272, 989929287, 990132010, 990781254, 990128682, 990459733, 990262569, 754983754, 754985516, 957166386, 990526547, 990258442, 520179217, 990392901, 520227913, 990392590, 956379953, 754994211, 990392075, 990654228, 956379439, 990584903, 754986794, 990126660, 990519622, 990457398, 990393130, 990392906, 990847814, 956968749, 990782532, 992040237, 991174983, 990979145, 520361032, 989932554, 990786317, 990522409, 754984201, 956641329, 990396757, 520507678, 991178762, 990589993, 990524168, 754986571, 754986315, 990458644, 990521648, 754986827, 989933131, 989932875, 991319853, 754987083, 989933387, 989998667, 989998411, 754987339, 989933643, 989998923, 989933899, 989999179, 989999435, 991647535, 989943599, 991582255, 990009391, 991516975, 991113485, 520426815, 990588175, 990194698, 990850822, 990719250, 990653715, 990392403, 990850321, 990915858, 991769389, 991703853, 991638317, 991572781, 991507245, 990589459, 754999296, 990523923, 990847300, 990792493, 990194950, 990588425, 520179241, 990468399, 990654473, 520424776, 990589193, 992826926, 990531885, 754983493, 991056941, 990523913, 990588681, 754996483, 990522889, 990588937, 990715720, 990523657, 990523145, 990523401, 992891950, 992826670, 990861613, 992621102, 956640817, 992368430, 991244810, 992303150, 991975469, 992237870, 992041006, 990322501, 991975726, 956706350, 991177998, 990524980, 992105262, 990390345, 992039982, 990197548, 991582254, 990009390, 991516974, 990075182, 994136921, 990466093, 754995758, 991646510, 989942574, 991581230, 990127176, 991123502, 990074669, 991058222, 990533934, 990203950, 990269742, 991253038, 990335534, 991187758, 992368176, 991046926, 990720823, 990268718, 991252014, 992489008, 990196243, 991250990, 957558059, 991185710, 990915854, 990063887, 990784782, 990653710, 992760624, 993286447, 993612591, 993547311, 993482031, 993416751, 692999470, 992957231, 992891951, 992826671, 692531541, 754998288, 956969518, 992368431, 990256964, 992303151, 992106287, 991181911, 992041007, 990652970, 991975727, 990068819, 990268210, 520375569, 992105263, 993810771, 990204974, 990522638, 991247703, 991384622, 991319342, 991778094, 520293449, 992958256, 990597934, 990730542, 990915857, 990139182, 993678408, 993678407, 993678409, 993678406, 993678410, 993678405, 993678411, 993678404, 993678412, 993678403, 993678413, 993678402, 993678414, 993678401, 993678415, 993678400, 993678416, 993678399, 993678417, 993678398, 993678418, 993678397, 993678419, 993678396, 993678420, 993678395, 993678394, 993678393, 993678392, 754997295, 992696367, 754995246, 992621360, 990006574, 957689139, 993678155, 993678154, 993678156, 993678153, 993678157, 993678152, 993678158, 993678151, 993678159, 993678150, 993678160, 993678149, 993678161, 993678148, 993678162, 993678147, 993678163, 993678146, 993678164, 993678145, 993678144, 993678143, 993678142, 993678141, 993678140, 993678139, 993678138, 993678137, 993678136, 992957488, 990990126, 991051608, 991250222, 991909934, 957558571, 993676628, 993676372, 993676884, 993676116, 993677140, 993675860, 993677396, 993675604, 993677652, 993675348, 993677908, 993675092, 993674836, 993674580, 993674324, 993674068, 993673812, 993673556, 993673300, 993673044, 993672788, 993672532, 993672276, 993672020, 993671764, 993671508, 993671252, 993670996, 993670740, 993670484, 993670228, 993669972, 993669716, 993676883, 993676627, 993677139, 993676371, 993677395, 993676115, 993677651, 993675859, 993677907, 993675603, 993675347, 993675091, 993674835, 993674579, 993674323, 993674067, 993673811, 993673555, 993673299, 993673043, 993672787, 993672531, 993672275, 993672019, 993671763, 993671507, 993671251, 993670995, 993670739, 993670483, 993670227, 993669971, 993669715, 992816943, 957563441, 990590036, 990589267, 993220398, 692476498, 957492526, 990850386, 990392106, 990655251, 692803930, 957497646, 990851663, 993676334, 993481776, 957427250, 957301041, 992882481, 990591060, 993809203, 990525273, 957623851, 993155120, 957562413, 990589262, 990591065, 990853717, 957493803, 957562414, 993350448, 957690412, 989932821, 957366062, 957431602, 992751918, 990589005, 991240263, 992883248, 990591315, 957689387, 957300272, 957693742, 990853971, 990590295, 990527577, 993612846, 990456135, 957628206, 957627950, 957296939, 990923571, 692998957, 993675310, 990852951, 990388807, 990591577, 990588247, 990788440, 957300781, 957431853, 990532143, 754978629, 957693486, 957361457, 990850390, 990589772, 991251503, 993677614, 993285936, 990588244, 993675566, 957562418, 989998647, 990454598, 990194228, 990723416, 957296428, 957426989, 957492522, 990257480, 957693490, 957689131, 990261510, 957562669, 957296171, 990851920, 993679406, 957366067, 989998352, 992490035, 990589014, 990389065, 956445490, 990591062, 957301298, 990851411, 990851922, 990590035, 990794543, 990395991, 754985524, 992762160, 957559082, 992817201, 990129926, 957628465, 990851925, 990861359, 692999474, 957623594, 957690154, 957693998, 957693491, 990851412, 990662959, 990390839, 692802130, 990064405, 990589268, 957562419, 990591320, 990852436, 754994975, 957497136, 957694000, 993482542, 992162605, 990589265, 990788948, 990853209, 957559084, 990589518, 957689642, 990068056, 990925359, 957295923, 990589266, 990456133, 990990383, 957497395, 956576047, 957300269, 990395734, 957558827, 957366066, 990991407, 993675053, 957694509, 957297451, 992228146, 957562416, 991187503, 957427243, 990459689, 990589527, 957366576, 754982747, 990851160, 990590547, 990590804, 990851673, 957431601, 991243545, 957366323, 990591319, 990591321, 990197300, 990589260, 957426995, 957428523, 957301037, 990591828, 957627953, 957426991, 990853720, 993612590, 957492528, 990923821, 957497649, 990590552, 990852435, 754994466, 993613614, 957295921, 957497392, 957694258, 957297195, 993679662, 957624363, 990590294, 990139437, 990589007, 990589525, 957427248, 990851660, 990852947, 990128692, 990588747, 957694001, 989998859, 990852182, 957426992, 957563182, 990326803, 993155118, 957428524, 957628974, 957497137, 990853207, 957493035, 993023024, 992620335, 990661427, 990852181, 957628209, 957492527, 957625132, 990327571, 957623596, 990584646, 990851150, 990590296, 990853974, 754998787, 957427499, 990129423, 957628207, 957361709, 957432114, 957496878, 957690155, 990326291, 957623599, 957300528, 990591064, 990852953, 990589015, 957361713, 993676590, 990588497, 990851156, 993220656, 990590806, 957300527, 991121711, 957628719, 957690156, 520427072, 957562931, 990598191, 957558323, 957497904, 957497134, 957493292, 957432111, 990851666, 990589523, 957624876, 990781255, 990597935, 957300525, 957366065, 957624107, 956903471, 990588501, 990588248, 990590293, 957628976, 520161065, 957689648, 990588761, 992162355, 957624618, 992948783, 990851917, 957558063, 957689900, 957362475, 990391366, 957496879, 957431856, 990589003, 957300270, 957694256, 957301294, 990851405, 990656044, 990590551, 957361456, 991516205, 990597167, 957426993, 990589771, 993677870, 957628462, 990853977, 990589781, 692474672, 990591574, 957690668, 957558314, 990852696, 990591832, 990133593, 957361711, 957689136, 957562415, 990588495, 957624108, 957300784, 990393398, 957493041, 692541743, 957694259, 692671276, 990852693, 957624620, 957296427, 990664495, 957628721, 990851414, 990853462, 957366064, 992685871, 990591317, 990589009, 957693488, 957300530, 957361451, 990850640, 993547310, 957623852, 957296176, 990588240, 991252271, 957493804, 990589517, 957623595, 990326547, 990590550, 991109444, 692474671, 993678894, 990852695, 990268717, 957301296, 990588246, 957628211, 990402095, 990589520, 957492523, 990850647, 992620848, 957689898, 754987312, 991051097, 990851410, 957300786, 993351470, 990589516, 993676846, 993612845, 957361707, 990590297, 957427246, 957493290, 993220910, 957496882, 990850899, 993351726, 957690667, 957297196, 990394197, 990853459, 957624115, 990853208, 957432626, 992555827, 990532911, 957623601, 992555053, 990591573, 990853460, 990588504, 957300271, 990194963, 990925103, 957562673, 990982155, 957297452, 957431342, 957362220, 993220912, 990589777, 990589783, 990588493, 993677102, 990850898, 990730031, 993676078, 990786069, 957623850, 990850391, 957693741, 990197296, 990590808, 990850904, 990589270, 990850893, 990589273, 990523398, 957301299, 990912583, 990853715, 990850389, 957558315, 957431599, 991046918, 990466094, 990591831, 990853973, 990523413, 957562417, 990916615, 957493546, 754996738, 992948785, 957296940, 957693744, 957428012, 992489773, 957694003, 990068053, 990589784, 990326031, 990853205, 957301039, 992227890, 990589526, 990391824, 957693746, 957361963, 990589269, 990591829, 957492530, 990588498, 692998959, 989997362, 957497647, 990588500, 990588682, 990589013, 990589524, 990590807, 957689132, 990401582, 990522410, 957624106, 990852948, 990456113, 993548334, 990851157, 990590805, 957624109, 990588173, 520178961, 957562925, 957295919, 990851924, 957366578, 754998793, 990851928, 990789459, 957427500, 957300531, 957362219, 990597423, 957562675, 957366322, 957432369, 993679150, 990913609, 957366061, 957562929, 957300529, 990852952, 990591827, 957301038, 990262037, 990590803, 990596911, 990591833, 957492781, 957693745, 957559338, 957035314, 957563186, 957562672, 957559595, 990465841, 957295922, 990852183, 957497393, 520293193, 990589272, 957362987, 957301042, 990850905, 957300273, 957559594, 990850383, 957432109, 957493291, 990588755, 990392388, 990853463, 990853204, 957627952, 990852439, 989999891, 993614126, 957431345, 692607322, 957494059, 957431341, 957497133, 957361459, 990523412, 957689644, 990063883, 990589017, 957426987, 990456391, 957296684, 990853206, 957628467, 990130218, 993417006, 957627954, 990853464, 990063891, 990850896, 957431343, 957558826, 993482286, 957366319, 957623597, 957559339, 990328106, 957563184, 957365808, 957427763, 957493802, 991055663, 754985737, 990851407, 990850644, 990590809, 990851659, 957431858, 956771635, 990531375, 692868435, 990590040, 957558570, 990333998, 957559596, 990524179, 990851154, 957428010, 990591575, 957366063, 692531799, 990853976, 990589782, 957296178, 957627951, 993675822, 957366321, 957362732, 990132018, 990519625, 990591316, 990593113, 957627949, 990853461, 957689135, 993154862, 957558828, 957427498, 957624875, 754986259, 990990639, 990194961, 990591572, 957492778, 990853719, 990589011, 990389322, 957628723, 990851669, 990850649, 957496881, 992621106, 957628208, 993089838, 957624362, 990326037, 957559340, 990590553, 990589259, 990851918, 990851413, 990590006, 990924847, 990912327, 990458120, 993022768, 990852691, 957365809, 957558572, 990852185, 957693489, 990063401, 957628210, 991249967, 990064651, 991251759, 990851161, 990850902, 990069078, 520295496, 990591830, 957493043, 754983750, 993548590, 957427755, 990852184, 957627955, 957431346, 993674798, 990588759, 957367087, 990852180, 991186223, 990591318, 957624874, 957493548, 957625131, 990065415, 957431597, 990590292, 993285422, 957361452, 957427242, 991185967, 990917128, 957558058, 991646766, 989940526, 990455876, 990916875, 989999366, 754990166, 990334510, 754984711, 989936725, 990075183, 990986067, 990589717, 991385646, 993089070, 990007598, 991778350, 989996295, 990258438, 991582511, 990130443, 754983431, 990587177, 990729773, 992041262, 992498478, 992039983, 990723923, 990259505, 990860590, 991240516, 990851595, 990524970, 990002260, 990661680, 990392617, 990196235, 990196777, 990786315, 990262027, 990389060, 992958254, 992620078, 990981643, 990064139, 754997544, 990392407, 992957486, 990915855, 990129419, 990458694, 992631086, 990456648, 754996999, 992696110, 990194699, 991974702, 990259979, 993482029, 990981899, 990061063, 990064395, 991966003, 990652977, 991244872, 990916619, 990257738, 991244362, 991702323, 991965997, 990785299, 991245127, 688333064, 990130187, 990851339, 990258699, 754993967, 990794542, 956378928, 990195979, 991244101, 991046931, 993676335, 990598190, 993154351, 990192906, 991055662, 692989525, 692803674, 957165358, 990981397, 990925614, 754985996, 990859310, 754997550, 990454088, 992817198, 990656303, 754987828, 992236590, 989932817, 989929541, 991648047, 991975470, 992498735, 993285167, 754988590, 990786059, 992172334, 990261771, 991186734, 990720789, 754999057, 992040751, 992827182, 991122478, 991909167, 992433453, 990264405, 989933831, 754996740, 992498991, 990720779, 990327563, 990916107, 993286191, 989933063, 991376179, 990129675, 991244361, 991108934, 990850315, 957231411, 754986255, 990989614, 990194955, 990063627, 991450669, 991245126, 993350703, 692671570, 692540721, 754996270, 990269486, 957230383, 992751919, 990531374, 990325295, 990926126, 990455369, 990457606, 990992430, 990138158, 991777838, 991449902, 991046929, 989995530, 992041263, 990069079, 990391887, 990260235, 993482543, 990916363, 991581486, 520293447, 990129931, 991713070, 990851083, 990390857, 990195723, 992619824, 990785803, 990261515, 992302893, 990126664, 991844654, 990916365, 990784787, 990720523, 990327307, 990655243, 991974703, 992095533, 957035315, 991244105, 990654984, 992957230, 957558316, 990192710, 957693999, 754996783, 989934347, 957431598, 991047435, 990325036, 990850571, 990458196, 754995229, 990589016, 957362476, 990588177, 990852440, 993153840, 957432112, 993350702, 990195211, 990589528, 957628466, 957366318, 990590039, 990593108, 990851153, 957295917, 957498163, 957296429, 990851926, 990072111, 990390085, 957694513, 957623858, 957428268, 990851662, 956378927, 957492780, 990653713, 991834925, 991243850, 993677358, 990589774, 957558317, 991244615, 991571251, 957694254, 991571245, 990260491, 990850827, 990195467, 957497135, 990785547, 990261259, 990456617, 990060555, 990458199, 754987532, 990720267, 992695086, 992892464, 990261768, 991909422, 990327051, 992957999, 990393107, 990782025, 990654987, 957034289, 989943598, 991909935, 992302383, 990588503, 991112465, 989929991, 992760622, 754998272, 957230385, 990663725, 990850895, 990589707, 990268206, 990074158, 990327317, 992957487, 991056430, 990467377, 990063890, 990850392, 754986256, 990530349, 990461783, 990664750, 990795310, 993089071, 993676591, 993416750, 990589515, 991244360, 992621359, 990785035, 993351727, 990130182, 992498479, 754994478, 990525234, 957558321, 957563183, 989932298, 990260747, 990000683, 992958003, 990261546, 990727726, 991185966, 991244106, 991636781, 957689388, 990850380, 990589529, 989933323, 754999312, 992958510, 990455365, 990526805, 991250734, 990663470, 990457419, 990457872, 993678638, 992490034, 957431859, 990394199, 990719243, 16914264, 991320366, 989999624, 754995502, 990326027, 990457169, 990860333, 990785291, 990852179, 520244520, 990664239, 990590548, 991834931, 990393900, 991778351, 990400561, 992958255, 990532654, 991636787, 990261003, 990720011, 990326795, 990852949, 990851672, 990663983, 990654731, 991046932, 754997250, 990850580, 991188782, 990063145, 990204718, 990719248, 992892467, 991712815, 957099827, 992367406, 990590549, 990590038, 990850901, 990588757, 990588245, 990720275, 990589451, 992237102, 990000183, 993548591, 990334254, 992892976, 990202671, 990009647, 991647534, 991515950, 990853465, 957563443, 957497651, 990851147, 957624364, 754998284, 992630830, 990455623, 993220911, 992237359, 991385134, 990523667, 990062091, 990401327, 992958512, 990455370, 990455624, 957300782, 990853203, 957562671, 990853972, 957563437, 990852692, 990268973, 990652726, 754987314, 990068563, 990524171, 990326035, 992619825, 991844399, 990719499, 992500014, 991120430, 956772912, 990588242, 957361970, 957296174, 957300526, 989933070, 520440871, 989996043, 992621362, 754988078, 990392409, 990326283, 991253550, 990522640, 990194443, 990134614, 992237615, 992826415, 990072366, 992695599, 957362988, 957034801, 993285680, 990598703, 990588758, 957300783, 957366577, 990719755, 990326539, 990592086, 754978079, 990203182, 990981395, 990654475, 992171567, 992433454, 992565295, 993155375, 990729518, 991843886, 957492786, 989998353, 991309107, 990457865, 520179728, 991778349, 990129429, 990589195, 990127626, 520230462, 992301871, 989929995, 993415983, 992423474, 990200153, 990195208, 990590041, 957628205, 990523915, 520361534, 992631085, 992433198, 990924846, 990063670, 990523155, 992237871, 993023790, 989929483, 990009134, 991254830, 990861358, 990720262, 990851148, 990588174, 992161325, 990653963, 991713583, 990140462, 991187246, 990981396, 992957229, 990588171, 990262326, 992434479, 991384366, 991712302, 991243543, 754984457, 957689138, 991244870, 992957741, 990521908, 992171055, 990193962, 991112468, 990654219, 993548077, 990125895, 990131753, 990588939, 990533422, 990990638, 991244617, 991441715, 990985555, 990719763, 990270765, 990134616, 992892719, 990195987, 991244616, 990523659, 992892974, 990000684, 993023535, 989942062, 991441709, 990653714, 990588427, 991112464, 990458193, 754996743, 989933319, 992105774, 991516718, 991376173, 16924732, 990588683, 956772658, 992620333, 991451182, 990203694, 754985267, 991243844, 990915859, 992161070, 992826672, 990523403, 520426814, 990271022, 990195219, 990457671, 990522891, 990854997, 992957743, 993613871, 989941038, 993023533, 990719247, 990654483, 992817714, 520227112, 956969778, 990062602, 956837679, 993481519, 994203955, 990523147, 990459221, 990396504, 993678639, 991319598, 990270254, 990981392, 689316166, 990400303, 990653971, 1058415432, 992827694, 989944111, 993613359, 991112454, 991900467, 990066228, 990653709, 990859053, 990129425, 990455622, 990981393, 989929228, 990400305, 992826928, 992696111, 991974190, 990337326, 990588179, 689315912, 989929484, 992040238, 989942830, 991188014, 991056942, 990785811, 992172078, 991241288, 990728238, 692466514, 992892206, 990851592, 993547823, 990061636, 991251758, 990654995, 989933837, 990460757, 991900461, 990064903, 989994764, 993022767, 990455368, 520491335, 520228168, 990858542, 990730286, 992826929, 956772144, 990912841, 990205998, 990596910, 991123246, 957100593, 990129159, 990465839, 990400051, 991908654, 990073390, 992106285, 989934344, 689316422, 989998357, 990062599, 754994972, 990926894, 991244100, 990002518, 989997578, 993417007, 990262035, 989929740, 989930570, 991779118, 990336558, 990197303, 992827438, 989929482, 990129672, 990260778, 992105519, 993342039, 993276503, 993407575, 993342038, 993342040, 993210967, 993276502, 993276504, 993473111, 993407574, 993407576, 993342037, 993342041, 993145431, 993210966, 993210968, 993276501, 993276505, 993538647, 993473110, 993473112, 993407573, 993407577, 993079895, 993145430, 993145432, 993210965, 993210969, 993604183, 993538646, 993538648, 993473109, 993473113, 993079894, 993079896, 993145429, 993145433, 993604182, 993604184, 993538645, 993538649, 957427754, 993079893, 989995020, 993079897, 993604181, 993604185, 990653784, 990060300, 990654544, 993014361, 990917198, 990653778, 990916184, 992948825, 957365037, 990916943, 957627184, 992883289, 957296424, 957299757, 957428520, 992817753, 992685617, 957689127, 957361959, 992948270, 992752217, 992882222, 992685614, 992751150, 992751151, 992686681, 991113816, 992816688, 992882223, 991114069, 991047507, 991114836, 991114070, 991113815, 991113305, 991047253, 991114837, 991113561, 991114580, 991114325, 991048273, 991114838, 991114579, 991114581, 991114071, 991047764, 991115094, 991114582, 991114327, 991113817, 991046998, 991115603, 991114583, 991114328, 991114835, 991048530, 991115352, 991114839, 991114584, 991115348, 991048021, 991115864, 991115605, 991115350, 991114840, 991047767, 991777584, 991115097, 991116116, 991115861, 991047768, 754996272, 991115609, 991116118, 991115608, 991047769, 989943344, 956772913, 989999402, 991516464, 991048787, 990206256, 991385904, 754996016, 991646768, 991048790, 990140208, 991385648, 991582000, 990455112, 991048536, 989942832, 990718253, 692999986, 991116119, 991049556, 990455113, 989932081, 991712304, 991115607, 991049555, 990074672, 991116121, 991116120, 991115860, 991049558, 991115353, 991116115, 991116117, 991115349, 991049304, 991115606, 991115351, 991115096, 991115093, 991050324, 991114585, 991115604, 991050325, 692737619, 992883028, 692737875, 992817236, 692803155, 992882260, 692671827, 992816980, 692738131, 992883284, 692803411, 992817492, 692530519, 992882004, 692802643, 992816724, 692531542, 992883540, 692672595, 992817748, 692606035, 992818004, 692607059, 992948307, 692802389, 993013843, 692541268, 992948051, 692530517, 992752212, 692803667, 992751956, 993342294, 993276758, 993407830, 993342293, 993342295, 993211222, 993276757, 993276759, 993473366, 993407829, 993407831, 993342296, 993145686, 993211221, 993211223, 993276760, 993538902, 993473365, 993473367, 993407832, 993342297, 993080150, 993145685, 993145687, 993211224, 993276761, 993604438, 993538901, 993538903, 993473368, 993407833, 991243800, 993080149, 993080151, 993145688, 993211225, 993604437, 993604439, 993538904, 993473369, 990654549, 992761395, 993080152, 993145689, 993604440, 993538905, 990917455, 990654805, 957296947, 993080153, 993604441, 957365038, 990916179, 990990895, 993014617, 957427239, 957299760, 990917207, 992949081, 992947760, 957558311, 957623591, 957365293, 992883545, 992816946, 992882225, 992947758, 957297192, 992818009, 991112783, 992816690, 992947761, 992686936, 992752473, 990654477, 16846394, 991244550, 992621400, 992686937, 991113039, 991112528, 991844144, 991112782, 992621401, 991778864, 991113547, 991113548, 991113292, 992555865, 991114060, 991112784, 991112529, 990256906, 992490329, 991113042, 991113803, 991113804, 991113038, 992424793, 991114063, 991113805, 991113550, 990075184, 992359257, 991113045, 991112787, 991114061, 991113294, 992293721, 991113811, 991113808, 991113553, 991113040, 992228185, 991113048, 991112533, 991112790, 991113551, 992162649, 991113304, 991113556, 991113301, 991113043, 992097113, 991113814, 991112536, 991112793, 991113809, 992031577, 991113559, 991113049, 991114068, 991112534, 991966041, 991113813, 991113558, 991113303, 991113557, 991900505, 991113302, 991113047, 991112535, 991114066, 991834969, 991112791, 991114065, 991113810, 991113300, 991769433, 991113554, 991113299, 991113044, 991112789, 991703897, 991112788, 991114062, 991113807, 991113297, 991638361, 991113296, 991113041, 991114059, 991572825, 992750933, 991112530, 991507289, 992948308, 991441753, 992948564, 991376217, 993013844, 991310681, 992882516, 991245145, 992948820, 991179609, 993013588, 991114073, 992947796, 991048537, 992882772, 990983001, 992948052, 990917465, 992752469, 990851929, 992752213, 990786393, 992818005, 990720857, 992751189, 990655321, 992816469, 990589785, 992751957, 990524249, 990850824, 520376095, 991178835, 991181651, 991178059, 991178836, 991179344, 991244110, 991181655, 991180633, 991115092, 990271792, 991048458, 991179347, 991179598, 991245142, 991244367, 990454856, 990007856, 991180887, 991113549, 991114329, 991114072, 990456369, 991112971, 991178584, 991178323, 991244888, 991245141, 991243858, 991243856, 991319600, 991181141, 991113295, 990126090, 991115095, 991114326, 991178571, 990460243, 991179860, 991178832, 991245908, 991245140, 991244622, 991385136, 989934087, 991180121, 991113806, 991113293, 991115859, 991114323, 991178573, 991581488, 991179607, 991178322, 991245909, 991243608, 991244621, 990720055, 991112717, 991180883, 991113298, 991516976, 991115863, 991113560, 991178574, 990986584, 991180371, 1059926072, 991245910, 991244119, 991244877, 991580976, 989941808, 422391863, 991114064, 991113291, 991451184, 991114324, 991178830, 422391849, 991179353, 422391850, 991245656, 991244883, 991244876, 992948526, 991188784, 1059926056, 991113046, 991113037, 990400046, 992882990, 989942576, 422391862, 991179861, 957559078, 991246676, 992619860, 991244371, 992948014, 991515696, 957427240, 991113812, 992621396, 990140464, 992882478, 754996528, 957362472, 991178585, 957430834, 991246677, 992685396, 991244625, 957624872, 991189040, 991112792, 992686932, 991115865, 957361703, 991712560, 957430833, 991178838, 990916438, 991246423, 990916950, 991244624, 957496365, 990336816, 991113555, 957690664, 991115862, 957692977, 991112459, 990916435, 991178070, 990654545, 991246169, 957295912, 991319344, 957365298, 991515440, 991112532, 957561651, 991114841, 990917971, 991178316, 990655055, 991178069, 990654547, 991247187, 957365297, 990008368, 990916180, 991181145, 991113552, 990916436, 991115347, 990654541, 991516208, 754996269, 993079380, 991246681, 990916697, 991450672, 990654039, 991112786, 990654292, 991115091, 990852438, 692802388, 993079636, 993079124, 993144916, 991247193, 990653777, 993078868, 991112785, 990401069, 692540756, 993079892, 692671317, 993145172, 993144660, 993210452, 992751702, 993078612, 993144404, 992816981, 993080148, 692802390, 993145428, 692736854, 993210708, 993210196, 993275988, 993013078, 993144148, 993209940, 992883285, 993145684, 692736852, 993210964, 692530777, 993276244, 993275732, 993341524, 992751446, 993209684, 993275476, 992817493, 993211220, 692540501, 993276500, 692802391, 993341780, 993341268, 993407060, 993014614, 993275220, 993341012, 992882005, 993276756, 692802387, 993342036, 692671316, 993407316, 993406804, 993472596, 992751958, 993340756, 993406548, 992816725, 993342292, 692605781, 993407572, 692736851, 993472852, 993472340, 993538132, 992751190, 993406292, 993472084, 992883541, 993407828, 692671318, 993473108, 692541524, 993538388, 993537876, 993603668, 992816470, 993471828, 993537620, 992817749, 993473364, 692736855, 993538644, 692802392, 993603924, 993603412, 992817750, 993537364, 993603156, 993014613, 993538900, 692540504, 993604180, 692671315, 992883542, 993602900, 992751445, 993604436, 692605780, 692802393, 992816726, 993013077, 692736856, 692736857, 992882006, 992751701, 692605783, 692671321, 992817494, 993014357, 692605784, 692540502, 993014358, 992949077, 692671320, 692605779, 992883286, 993013333, 692531285, 692671319, 992949078, 992882261, 692605782, 992816982, 992947541, 990327380, 990327636, 990261844, 990327892, 990262100, 990196308, 990328148, 990262356, 990196564, 990130772, 990328404, 990262612, 990196820, 990131028, 990065236, 990328660, 990262868, 990197076, 990131284, 990065492, 989999700, 990328916, 990263124, 990197332, 990131540, 990065748, 989999956, 989934164, 990329172, 990263380, 990197588, 990131796, 990066004, 990000212, 989934420, 754987604, 990329428, 990263636, 990197844, 990132052, 990066260, 990000468, 989934676, 754987860, 990400047, 990329684, 990263892, 990198100, 990132308, 990066516, 990000724, 989934932, 754988116, 990655274, 754983436, 990264148, 990198356, 990132564, 990066772, 990000980, 989935188, 754988372, 989998344, 990654519, 956443952, 990198612, 990132820, 990067028, 990001236, 989935444, 754988628, 990989613, 992761389, 990323527, 957165105, 990133076, 990067284, 990001492, 989935700, 754988884, 990061638, 990721321, 990589704, 990196278, 957166130, 990067540, 990001748, 989935956, 754989140, 990719509, 956706093, 990388549, 991175242, 992695341, 956641840, 990002004, 989936212, 754989396, 989995786, 520572701, 754983945, 990468402, 990650439, 990653226, 989931526, 989936468, 754989652, 990260521, 990587437, 990131760, 989996811, 754979656, 754978839, 754987829, 520232793, 754989908, 990786055, 991177999, 957100080, 990716740, 990132019, 990330199, 990527063, 990719754, 754987028, 990982408, 956969262, 991110216, 990716489, 990392084, 754996486, 754976790, 990130452, 956968243, 990392646, 990461271, 990456115, 956379186, 989998605, 990391634, 989998856, 990718510, 754997252, 990459436, 754988849, 956706351, 990064681, 990126406, 990720021, 754982665, 990265172, 520312851, 990658902, 520294983, 990846789, 990456107, 990588727, 990789717, 520426055, 991182419, 520572956, 754995740, 520162376, 990592596, 520297819, 990522666, 990721586, 990260743, 990458665, 754998802, 990129421, 989930507, 16931134, 990133847, 990858289, 989997610, 990194473, 990066473, 991183193, 990326028, 990060615, 990392133, 754977609, 990913861, 990129206, 990456134, 990855000, 990458374, 990796077, 990715977, 990650186, 956837677, 990393161, 754984263, 991319341, 990395481, 990653239, 990459735, 990522888, 991043652, 957100851, 754990165, 956642094, 754986797, 990061319, 990986325, 754987786, 990785805, 990261801, 990391878, 957034798, 989931822, 990326314, 990065718, 989997621, 991110469, 754990678, 990191686, 990392362, 520179999, 956903730, 990127115, 520229446, 990257163, 990393177, 990130986, 957165874, 991110218, 990913862, 990392395, 990650185, 990260279, 990128426, 989935408, 990855254, 990068311, 990002774, 990262837, 989935414, 520245789, 990262831, 990393687, 754987275, 990662445, 956773166, 990585161, 990260488, 993089837, 990654728, 990530354, 991908912, 990454854, 688332808, 990260500, 989929996, 754997040, 991908656, 957165357, 990921044, 990454858, 991843888, 991712816, 990009648, 992161107, 991713584, 990129463, 989995334, 990196522, 992162643, 520310312, 991713072, 16928595, 991909168, 990331222, 989998347, 992095571, 992226643, 990061127, 989995276, 990521909, 990129706, 992097107, 992228179, 754996784, 990923568, 991778608, 991974192, 991974704, 989944112, 992030035, 992292179, 956706354, 754984202, 991112524, 991778352, 992031571, 992293715, 991647792, 990718249, 991647536, 991120685, 990986326, 991050584, 991964499, 992357715, 1057432330, 991648048, 989943856, 991050585, 991966035, 992359251, 754997552, 990788947, 991843632, 991050329, 991843376, 991050582, 991898963, 992423251, 520424263, 754987822, 989932551, 991050073, 991900499, 992424787, 991112523, 991050583, 992039728, 991050327, 991112780, 991050581, 991833427, 992488787, 989943600, 991050328, 991112779, 991050579, 991834963, 992490323, 990457365, 991050072, 991112525, 991050326, 754984265, 1059926073, 991767891, 992554323, 754998785, 991049817, 990394454, 1059924016, 991769427, 992555859, 957034034, 991050071, 991713328, 1059926055, 991909424, 957624359, 991702355, 992619859, 957165618, 992685651, 991112526, 957623592, 991703891, 992621395, 991582512, 992686675, 991582256, 957559591, 754997296, 957299759, 991636819, 992685395, 991112781, 957493800, 989942317, 991638355, 992686931, 956969522, 957492775, 991113035, 957692723, 990009392, 990917200, 991571283, 990654543, 991974448, 957430832, 990064907, 991572819, 957624103, 991113036, 957430835, 990454852, 990917451, 990916437, 991505747, 957427495, 991112527, 957561649, 991507283, 957299502, 991778096, 990916185, 692474711, 990654553, 990654802, 991440211, 957561646, 990916692, 991441747, 990917453, 692605785, 990654035, 692474712, 990655054, 993079379, 991374675, 990916693, 990655310, 991376211, 990655060, 692474710, 991843119, 692474713, 993079635, 993079123, 993144915, 991309139, 990654546, 993078867, 991310675, 990588982, 692474709, 993079891, 692475731, 993145171, 993144659, 993210451, 991243603, 993078611, 993144403, 991245139, 993080147, 692474708, 993145427, 692475987, 993210707, 993210195, 993275987, 991178067, 993144147, 993209939, 991179603, 993145683, 692475475, 993210963, 692476243, 993276243, 993275731, 993341523, 991112531, 993209683, 993275475, 991114067, 993211219, 692475219, 993276499, 692474707, 993341779, 993341267, 993407059, 991046995, 993275219, 993341011, 991048531, 993276755, 692474963, 993342035, 692933972, 993407315, 993406803, 993472595, 990981459, 993340755, 993406547, 990982995, 993342291, 692934228, 993407571, 692934740, 993472851, 993472339, 993538131, 990915923, 993406291, 993472083, 990917459, 993407827, 692934484, 993473107, 692933718, 993538387, 993537875, 993603667, 990850387, 993471827, 993537619, 990851923, 993473363, 692924243, 993538643, 692933719, 993603923, 993603411, 990784851, 993537363, 993603155, 990786387, 993538899, 692933717, 993604179, 692933720, 990719315, 993602899, 990720851, 993604435, 692933716, 693000535, 990653779, 990655315, 994007385, 693000277, 990588243, 990589779, 693000536, 692869465, 990522707, 990524243, 692935001, 693000537, 993679661, 990851080, 692999512, 754977296, 990460504, 990327379, 990327635, 990261843, 990327891, 990262099, 990196307, 990328147, 990262355, 990196563, 990130771, 990328403, 990262611, 990196819, 990131027, 990065235, 990328659, 990262867, 990197075, 990131283, 990065491, 989999699, 990328915, 990263123, 990197331, 990131539, 990065747, 989999955, 989934163, 990329171, 990263379, 990197587, 990131795, 990066003, 990000211, 989934419, 754987603, 990329427, 990263635, 990197843, 990132051, 990066259, 990000467, 989934675, 754987859, 520311325, 990329683, 990263891, 990198099, 990132307, 990066515, 990000723, 989934931, 754988115, 692999730, 990461268, 990264147, 990198355, 990132563, 990066771, 990000979, 989935187, 754988371, 989931014, 956444205, 956510258, 990198611, 990132819, 990067027, 990001235, 989935443, 754988627, 990191367, 990458666, 990466350, 16844849, 990133075, 990067283, 990001491, 989935699, 754988883, 754977863, 990653965, 754984005, 990795053, 991179270, 990067539, 990001747, 989935955, 754989139, 993874733, 990260493, 990261814, 990392151, 991175238, 957034541, 990002003, 989936211, 754989395, 991179271, 990458437, 990393641, 990587185, 956838449, 754987056, 754995217, 989936467, 754989651, 754998030, 990460249, 990132014, 990193418, 993417517, 956511025, 991044938, 990065206, 754989907, 991050836, 989933069, 991175748, 989933111, 990333997, 990465325, 990062600, 991182423, 990590512, 989943853, 990655245, 990855251, 989996100, 990978118, 990128434, 990126663, 994399027, 991052118, 989998612, 990192454, 990459177, 990197557, 990650693, 957230637, 991123245, 990392630, 990329941, 990661683, 990134100, 957166384, 957165616, 989998854, 990265688, 520179240, 754982981, 991117397, 990065194, 991245067, 754990931, 754986763, 991240260, 990519111, 990326796, 990917127, 989938007, 990593367, 990588180, 990064694, 754987316, 990392144, 990392652, 754990163, 991116885, 990589494, 990658904, 956641070, 990729261, 956772654, 754983468, 754983497, 990854488, 989930250, 990134361, 956903475, 754995231, 990390838, 990131254, 990521646, 956378418, 990858031, 990134613, 989997359, 990651465, 990524201, 991240008, 956772397, 754987271, 990388036, 990126922, 990527318, 990259462, 956641072, 990130196, 990328622, 990326549, 990716484, 990920788, 990390583, 992237613, 989999401, 990454343, 990726963, 754994703, 754986545, 990392919, 956575022, 992499757, 989999623, 989942061, 990526553, 754988844, 956445491, 990068824, 754999043, 991043655, 990127879, 990784775, 990000691, 993676845, 990126091, 991241030, 990268205, 956575795, 990327094, 520228167, 956445232, 956903218, 990129462, 957165619, 989935412, 990393103, 990262583, 990921045, 990527059, 989997879, 990391850, 956642099, 990391638, 754998786, 990393097, 956772655, 990395222, 956969011, 991250989, 990654030, 991185711, 990990127, 990916939, 991646511, 990654795, 990916686, 991385647, 991250991, 992303152, 990074671, 957561904, 991122223, 990654542, 990916432, 990328373, 957561901, 990073645, 990003545, 990916174, 990060556, 957300018, 754985481, 957559336, 992302382, 990654288, 990916433, 991581231, 957692974, 957693747, 957623848, 754996782, 992303408, 754984716, 957693234, 957366574, 957558568, 990992429, 992489778, 990916689, 754978584, 957365296, 957493034, 957690152, 990125836, 957562163, 990591061, 957361449, 520312339, 990851406, 990137903, 520358984, 957561907, 990399791, 957494056, 992892208, 957689129, 992237358, 993154096, 16844620, 990850384, 957693485, 957689128, 993676333, 957558578, 754999304, 990851415, 957497394, 993415982, 992892465, 990853975, 990269741, 990721577, 992489011, 990852694, 957366579, 993669963, 990260742, 957558065, 992751663, 990263081, 957366833, 990655320, 993669964, 991047175, 990853718, 990400814, 990129449, 957362227, 990656597, 990918231, 990258182, 993669965, 990326033, 989930252, 993613358, 990656345, 990919253, 754997774, 957364783, 989999125, 993669966, 991702317, 991054639, 990919512, 754998533, 957692461, 990202926, 957689638, 990335022, 990194962, 992237104, 956510767, 957299250, 957689899, 957362470, 989999637, 990794031, 992106800, 990073647, 957430064, 994269491, 957558565, 990858798, 990727983, 990071859, 990195469, 957298992, 957295916, 957493797, 990191943, 990720075, 992236848, 990782791, 957429807, 957496880, 957296421, 956510000, 990719314, 990456647, 520492095, 957429805, 957431347, 957493540, 990912840, 990720337, 990981715, 990326791, 957298739, 956641073, 957625124, 990651208, 990720850, 990982483, 990989869, 957560626, 754986511, 957493283, 992761134, 990720854, 990981977, 990850312, 957691699, 957365805, 957427235, 992106286, 990722132, 990983510, 990196790, 957691440, 957496883, 957558818, 989995532, 990722136, 990984788, 16910641, 957298225, 990851670, 957362210, 992554799, 993674800, 990985049, 989933574, 957494573, 990588756, 957297186, 990060812, 993351728, 991844400, 520296000, 957691186, 957431603, 957624865, 990597422, 990468397, 989999117, 989941295, 957363247, 957693743, 957361441, 993219887, 990126092, 956772143, 990730543, 957363249, 520295743, 957689632, 990007854, 990785104, 991047247, 990992175, 957625136, 990850641, 990916116, 990191372, 990785617, 991048523, 990006575, 957297454, 957431855, 990588434, 990064902, 990786385, 1059923760, 990523216, 957493808, 957361458, 990916112, 990191432, 990785879, 992367917, 990524239, 957690417, 990197551, 956838447, 990399536, 990787155, 990191685, 990522711, 957559088, 990327315, 990588430, 992433966, 990787416, 957695024, 990524499, 957428017, 993351981, 990064134, 989930508, 992620590, 957301809, 990524760, 957493295, 993482030, 990457165, 992095539, 993089328, 957498161, 990526293, 957362222, 990589006, 990064146, 989995788, 993088304, 957301549, 991056943, 957296691, 993286446, 990006065, 990851927, 990850892, 957432368, 990203439, 957296431, 991252015, 520227871, 957559083, 990850894, 957432370, 990588237, 957296434, 990591059, 992424243, 990850903, 990851661, 957628718, 990268719, 957689392, 990853716, 692672338, 990795311, 990851149, 957694253, 990926639, 957623859, 957296433, 993416238, 957493036, 990850891, 957628720, 990991919, 990061068, 957366573, 993417262, 692738644, 992620339, 957497907, 990588492, 957296173, 957431600, 990392070, 990850379, 956576051, 957497901, 990795567, 957623853, 993286192, 993547822, 957428011, 993089072, 957301553, 754982920, 957361971, 991186991, 993481518, 957562674, 990787671, 957694766, 990526291, 957361966, 957623603, 692738394, 990730287, 957367346, 990525015, 957558575, 957428267, 992554798, 993089584, 957362224, 957562670, 754986513, 957689134, 990466095, 990850646, 754997001, 989943343, 990981386, 990654796, 957365806, 990268208, 990654287, 956969774, 754996527, 990126348, 990852697, 990916177, 990191628, 990127880, 990654033, 993416240, 990916178, 992892718, 754985740, 990653775, 990589519, 990916431, 990008366, 957496369, 990793517, 990654289, 957624619, 990916434, 990459696, 957365294, 990140719, 692531801, 993351216, 990916940, 990261012, 957627440, 957428008, 692990041, 957366829, 990325815, 990916945, 990256908, 957627442, 957361960, 990795055, 957361454, 989933077, 989930764, 957561902, 957492776, 754997515, 990588748, 990589776, 990852950, 989996044, 957692978, 957426984, 990915919, 991254062, 957693235, 957624104, 692990296, 990851159, 957497389, 990457930, 957427507, 957361448, 957496627, 957558824, 520310050, 692672819, 957432115, 990588176, 957623598, 692476500, 957296937, 754977821, 990062898, 990860591, 990061324, 957689394, 993678126, 990523399, 993669967, 957365807, 990126604, 992488752, 990327059, 990458154, 990656087, 992620849, 993669968, 990795822, 957431854, 957494060, 990719751, 990657107, 990390575, 990918743, 990139694, 993669969, 990598958, 520426568, 520492350, 957694002, 990919511, 990521910, 957430321, 993669970, 991189039, 991250735, 990978632, 990592084, 754997566, 957430323, 957428262, 990981382, 990401842, 957365810, 992171568, 990127175, 957364527, 957297446, 990139951, 990065427, 957689386, 992302128, 990067800, 957561139, 957689637, 992630573, 990719821, 990334255, 990392843, 991043657, 957560878, 957689125, 990595890, 990720587, 957689643, 754983498, 990202670, 957364270, 957624100, 520424519, 990719827, 990588693, 990982734, 956576307, 957298738, 957361956, 990596141, 990720340, 957362218, 990981973, 990191884, 957626157, 957558563, 991043396, 990720344, 990590037, 990982741, 992161069, 957364018, 957492515, 990137133, 990721877, 957361708, 990983000, 991244871, 957494833, 957295907, 990782536, 990722900, 957362731, 990984533, 991243537, 957625907, 957428002, 991188271, 993613872, 957493547, 990984793, 990130195, 957429038, 957296162, 991057455, 993417264, 990853721, 957230893, 990006830, 957429042, 957559585, 990335791, 990256903, 957689393, 990454853, 990396761, 957559853, 957362721, 990523467, 989998611, 957693487, 992171312, 990061578, 957297712, 957623840, 990522706, 989999635, 957431344, 990658905, 992631087, 957690671, 992882992, 990523729, 990785107, 990851408, 991048269, 992499502, 957625138, 992882993, 990524242, 990785875, 990588750, 1059928112, 990259753, 957428271, 990457607, 990524246, 990785369, 990589010, 990728749, 754998026, 957493810, 990721583, 990525524, 990786902, 957623854, 990261034, 990257164, 957624623, 990065163, 990525783, 990788180, 990591063, 957498417, 991245125, 957362480, 692474674, 990532655, 992555826, 957690411, 957629491, 957693997, 992948057, 992882521, 993013593, 992816985, 992948312, 992948056, 992948568, 992882776, 993013848, 992947800, 992882520, 993013592, 992948824, 992883032, 993014104, 992817240, 992947544, 992882264, 993013336, 992816984, 992949080, 992883288, 993014360, 992817496, 992751704, 992882008, 993013080, 992816728, 992751448, 992883544, 993014616, 992817752, 992751960, 992816472, 992751192, 992818008, 992752216, 992750936, 992752472, 992948311, 992948055, 992948567, 992882775, 993013847, 992947799, 992882519, 993013591, 992948823, 992883031, 993014103, 992817239, 992947543, 992882263, 993013335, 992816983, 992949079, 992883287, 993014359, 992817495, 992751703, 992882007, 993013079, 992816727, 992751447, 992883543, 993014615, 992817751, 992751959, 992816471, 992751191, 992818007, 992752215, 992750935, 992752471, 992948310, 992948054, 992948566, 992882774, 993013846, 992947798, 992882518, 993013590, 992948822, 992883030, 993014102, 992817238, 992947542, 992882262, 993013334, 990587689, 990520138, 990458635, 990196487, 990191371, 990060357, 990393386, 990459444, 754991165, 16910385, 989930567, 990137391, 956969005, 990465842, 956640814, 990912329, 990391623, 520179216, 754987597, 520245020, 992630321, 989931274, 990458201, 989999114, 991844653, 990264664, 990652980, 990589225, 989933110, 990394969, 989934157, 754987596, 754987598, 990129416, 993547821, 956444976, 956903213, 990265174, 990651207, 990392149, 991174469, 990390601, 990066230, 990457130, 989999693, 989934156, 989934158, 754987595, 754987599, 990128902, 990720310, 989997357, 990130998, 957100589, 991182931, 754988593, 957231922, 990391109, 989994821, 956379695, 990065229, 989999692, 989999694, 989934155, 989934159, 754987600, 956902704, 990654262, 16928596, 957230898, 989931016, 990585927, 520162377, 957230896, 990782026, 990457642, 990130765, 990065228, 990065230, 989999691, 989999695, 989934160, 754987601, 990782537, 520492102, 990062347, 990458934, 991909677, 990653959, 990333745, 990584647, 990656046, 990196301, 990130764, 990130766, 990065227, 990065231, 989999696, 989934161, 754987602, 989931828, 956969775, 990063370, 991178763, 990071856, 990585160, 754990935, 956706349, 990261837, 990196300, 990196302, 990130763, 990130767, 990065232, 989999697, 989934162, 990650441, 990322502, 990392653, 990467887, 990074413, 990525228, 989935409, 990401841, 990327373, 990261836, 990261838, 990196299, 990196303, 990130768, 990065233, 989999698, 754995715, 990394451, 992040749, 990985302, 754988334, 754990933, 990727215, 991177995, 990327372, 990327374, 990261835, 990261839, 990196304, 990130769, 990065234, 990859565, 956707631, 754994733, 956509485, 990782023, 993675565, 991247446, 989937494, 990327371, 990327375, 990261840, 990196305, 990130770, 754987782, 990721065, 689316167, 956443953, 990721835, 754987820, 990456371, 990522166, 990327376, 990261841, 990196306, 754995216, 990459447, 990526806, 957100337, 990391849, 754987531, 989931817, 990389832, 990327377, 990261842, 520295494, 990391888, 990394709, 990395735, 989930052, 692934194, 990393688, 990327378, 993220141, 990195468, 989935148, 990390089, 956641326, 754994224, 957099826, 754987561, 990196009, 990392146, 520360264, 990521906, 990913605, 990721837, 990523946, 990192452, 990392848, 990982662, 990326070, 989996552, 520375335, 957230381, 991058221, 990590772, 990456363, 989936985, 990457677, 990258954, 754983174, 754987854, 990915847, 993350701, 990524969, 990654774, 1058415173, 990191627, 754987054, 990261770, 990523177, 1057431307, 990392662, 991712813, 990257994, 989934414, 754987853, 754987855, 992368685, 990127366, 991047690, 990458922, 990399792, 754996229, 754994960, 990726957, 990062858, 990589226, 990067801, 688332810, 957099310, 989999950, 989934413, 989934415, 754987852, 754987856, 990523446, 989931528, 990524714, 990521911, 990523434, 990002517, 992958253, 990851860, 990858291, 991175498, 990920276, 990065486, 989999949, 989999951, 989934412, 989934416, 754987851, 754987857, 991244039, 990260490, 991843885, 990789718, 754985734, 990062892, 991243784, 957165106, 991248217, 990131022, 990065485, 990065487, 989999948, 989999952, 989934411, 989934417, 754987858, 990657624, 990527064, 957230643, 520246804, 990656297, 520425800, 990924077, 990389574, 990196558, 990131021, 990131023, 990065484, 990065488, 989999947, 989999953, 989934418, 994072915, 990139949, 991056173, 990006322, 991182679, 990060871, 754994473, 990457416, 990262094, 990196557, 990196559, 990131020, 990131024, 990065483, 990065489, 989999954, 990391629, 754986038, 990459440, 991116376, 991178758, 990523661, 990655529, 990003544, 990327630, 990262093, 990262095, 990196556, 990196560, 990131019, 990131025, 990065490, 990260023, 989998350, 990521898, 520179741, 990330968, 990128392, 991247958, 990593110, 990327629, 990327631, 990262092, 990262096, 990196555, 990196561, 990131026, 990062901, 956902701, 990193964, 990194225, 990389575, 990134102, 991178765, 990592855, 990327628, 990327632, 990262091, 990262097, 990196562, 990195753, 754994961, 956968754, 754986282, 990584901, 990393686, 991174470, 990391882, 990327627, 990327633, 990262098, 990126598, 956968750, 754988335, 990063159, 992368941, 989932343, 956379181, 990191368, 990327634, 990719245, 990198871, 990062902, 990590506, 990064182, 754984715, 754985224, 990730285, 990848326, 990126407, 990194224, 956576304, 520164672, 990392339, 956641585, 990524173, 990401840, 990455367, 989929734, 991054894, 993350447, 989931020, 956968240, 993089839, 993676079, 990793774, 993219631, 990531630, 990195511, 990662446, 993220655, 990455114, 990064937, 993679151, 990261523, 993088815, 1057431303, 990658648, 990720006, 957165615, 990597678, 992891695, 990137902, 991046923, 993677615, 990661934, 993023279, 990460503, 992630063, 990730030, 992302639, 994005811, 990334509, 990664494, 990006317, 992433968, 754986293, 993613103, 991179531, 993023023, 990728750, 992368943, 991252526, 990258505, 991318830, 992236335, 991450414, 990585417, 990138926, 989999111, 990457129, 991116887, 993482287, 990923822, 990259761, 991251246, 992564527, 993678135, 993678391, 993678647, 993678903, 993679159, 993679415, 993679671, 993678134, 993678390, 993678646, 993678902, 993679158, 993679414, 993679670, 993678133, 993678389, 993678645, 993678901, 993679157, 993679413, 993679669, 993678132, 993678388, 993678644, 993678900, 993679156, 993679412, 993679668, 989934100, 956838704, 990459479, 992292913, 993744474, 520507677, 991247445, 989996300, 754997248, 991244045, 990460758, 990721834, 990061580, 992293424, 990128906, 990126860, 990651716, 990192140, 990458180, 992826416, 990453575, 990257420, 991245068, 692671281, 989931276, 990130699, 989996556, 991182936, 990061836, 520232537, 990127116, 990793011, 990458132, 990458184, 990192396, 992761136, 990257676, 991244812, 992293170, 991179532, 990194960, 989931532, 990789464, 989996812, 692605528, 990062092, 990793267, 990727475, 990858547, 990458130, 990923827, 990127372, 990989107, 990192652, 990257932, 692476502, 991244556, 991183191, 991179276, 991044422, 991113996, 990264920, 991243532, 990793523, 990727731, 990858803, 990661939, 990924083, 990458128, 990989363, 989931788, 991054643, 989997068, 990062348, 992292658, 990402349, 956902962, 990127628, 692999507, 990192908, 692531800, 990453829, 990793779, 990727987, 990859059, 990662195, 990924339, 990596403, 990989619, 990458126, 991054899, 990258188, 991120179, 991244300, 990401075, 957231410, 991250739, 992292143, 992826930, 990060356, 990453578, 990129427, 991250483, 990794035, 990728243, 990859315, 990662451, 990924595, 990596659, 990989875, 990530867, 991055155, 990327061, 991120435, 991179020, 991185715, 991113740, 991250995, 689316168, 990858288, 520292392, 990655530, 991250227, 990721833, 990794291, 990728499, 990859571, 990662707, 990924851, 990596915, 990990131, 990531123, 991055411, 520295999, 991120691, 990457867, 991185971, 991048460, 991251251, 991243788, 754994215, 990264662, 991249971, 990326030, 992292400, 990794547, 990728755, 990859827, 990662963, 990925107, 990597171, 990990387, 990531379, 991055667, 520179471, 991120947, 990064148, 991186227, 990457874, 991251507, 991178000, 989932044, 991240004, 990794803, 990729011, 990860083, 990663219, 990925363, 990597427, 990990643, 990531635, 991055923, 989999879, 991121203, 990061892, 991186483, 990334259, 991251763, 990457924, 989997324, 991057965, 990795059, 990729267, 990860339, 990663475, 990925619, 990597683, 990990899, 990531891, 991056179, 520424777, 991121459, 990652720, 991186739, 990334515, 991252019, 990268723, 990457873, 991050841, 989999112, 990795315, 990729523, 990860595, 990663731, 990925875, 990597939, 990991155, 990532147, 991056435, 990392081, 991121715, 990062344, 991186995, 990334771, 991252275, 990268979, 990203187, 990457866, 989995274, 990655017, 990795571, 990729779, 990860851, 990663987, 990926131, 990598195, 990991411, 990532403, 991056691, 991240264, 991121971, 990923565, 991187251, 990335027, 991252531, 990269235, 990203443, 990137651, 990457686, 754985479, 992827440, 990795827, 990730035, 990861107, 990664243, 990926387, 990598451, 990991667, 990532659, 991056947, 990192456, 991122227, 520376336, 991187507, 990335283, 991252787, 990269491, 990203699, 990137907, 990072115, 990458119, 990062604, 990127884, 990796083, 990730291, 990861363, 990664499, 990926643, 990598707, 990991923, 990532915, 991057203, 990926381, 991122483, 520507165, 991187763, 990335539, 991253043, 990269747, 990203955, 990138163, 990072371, 990006579, 990458191, 990193164, 990258444, 990730547, 990861619, 990664755, 990926899, 990598963, 990992179, 990533171, 991057459, 754991444, 991122739, 990401073, 991188019, 990335795, 991253299, 990270003, 990204211, 990138419, 990072627, 990006835, 989941043, 990458124, 991244044, 991178764, 990665011, 990927155, 990599219, 990992435, 990533427, 991057715, 957231917, 991122995, 754998274, 991188275, 990336051, 991253555, 990270259, 991318835, 990204467, 990138675, 990072883, 990007091, 989941299, 754994483, 990458118, 991113484, 991048204, 990599475, 990992691, 990533683, 991057971, 520295495, 991123251, 990520393, 991188531, 990336307, 991253811, 990270515, 991319091, 990204723, 991384371, 990138931, 990073139, 990007347, 989941555, 754994739, 991175239, 990457938, 989933579, 990328374, 990533939, 991058227, 990981642, 991123507, 990326279, 991188787, 990336563, 991254067, 990270771, 991319347, 990204979, 991384627, 990139187, 991449907, 990073395, 990007603, 989941811, 754994995, 994267949, 991243530, 990457932, 957034032, 990193931, 990721839, 991123763, 991178502, 991189043, 990336819, 991254323, 990271027, 991319603, 990205235, 991384883, 990139443, 991450163, 990073651, 991515443, 990007859, 989942067, 754995251, 990074925, 990587186, 1058415431, 990457928, 520244259, 520244263, 16914520, 991189299, 990337075, 991254579, 990271283, 991319859, 990205491, 991385139, 990139699, 991450419, 990073907, 991515699, 990008115, 991580979, 989942323, 754995507, 754987824, 991178506, 990400048, 989935156, 993744466, 990913097, 990718255, 990337331, 991254835, 990271539, 991320115, 990205747, 991385395, 990139955, 991450675, 990074163, 991515955, 990008371, 991581235, 989942579, 991646515, 754995763, 990585929, 956642096, 990851850, 520245532, 990394195, 990458185, 956707374, 992041005, 990271795, 991320371, 990206003, 991385651, 990140211, 991450931, 990074419, 991516211, 990008627, 991581491, 989942835, 991646771, 754996019, 991712051, 692933680, 990061893, 956969519, 990323782, 990392142, 990391892, 990458182, 990982924, 989934348, 990206259, 991385907, 990140467, 991451187, 990074675, 991516467, 990008883, 991581747, 989943091, 991647027, 754996275, 991712307, 520232795, 991777587, 989931275, 754985482, 956379955, 990458195, 990785542, 991044424, 990458133, 991178252, 991112460, 990140723, 991451443, 990074931, 991516723, 990009139, 991582003, 989943347, 991647283, 754996531, 991712563, 692999255, 991777843, 956576050, 991843123, 990719286, 956378672, 990533421, 990127112, 990133589, 990264916, 990458131, 989932300, 989997580, 990075187, 991516979, 990009395, 991582259, 989943603, 991647539, 754996787, 991712819, 990191623, 991778099, 991178509, 991843379, 990466355, 991908659, 520376334, 754988331, 990392583, 991047686, 990326540, 991117401, 990458129, 990062860, 989934088, 990009651, 991582515, 989943859, 991647795, 754997043, 991713075, 520245022, 991778355, 990194487, 991843635, 990258955, 991908915, 990782278, 991974195, 990913094, 990595886, 692989524, 992827437, 754982234, 991182933, 990458127, 992826931, 692540758, 989944115, 991648051, 754997299, 991713331, 990523656, 991778611, 990721844, 991843891, 990917131, 991909171, 990067799, 991974451, 957166131, 992039731, 990401837, 990458378, 990258186, 990467634, 990128139, 994202419, 957558064, 990655287, 754993966, 754997555, 991713587, 520162885, 991778867, 989995784, 991844147, 754986253, 991909427, 990978889, 991974707, 990782535, 992039987, 990195220, 992105267, 991116372, 990263095, 754978119, 990596147, 989936724, 989996296, 520180999, 990715972, 990128140, 754997259, 991779123, 990458642, 991844403, 990193670, 991909683, 990066477, 991974963, 990399539, 992040243, 991116629, 992105523, 990592345, 992170803, 754990679, 991113994, 991056429, 990978884, 520358728, 990720277, 993743446, 990913608, 990193420, 991243531, 991844659, 956509999, 991909939, 990130696, 991975219, 956444210, 992040499, 990723156, 992105779, 990402605, 992171059, 989934356, 992236339, 754984007, 956969776, 990721590, 990060361, 992696621, 990125831, 990458192, 990258700, 990195732, 990462035, 991910195, 990459445, 991975475, 990650183, 992040755, 992433456, 992106035, 990919764, 992171315, 991189293, 992236595, 991052117, 992301875, 991110212, 956511027, 990069080, 754986034, 989934902, 990194222, 990458188, 991178508, 991175749, 991975731, 989929544, 992041011, 956707377, 992106291, 692989267, 992171571, 990524471, 992236851, 520247314, 992302131, 520178985, 992367411, 990002772, 989999670, 990071599, 989930568, 956772914, 989995591, 990458190, 990848327, 992041267, 990721578, 992106547, 990854485, 992171827, 990721581, 992237107, 956379950, 992302387, 956443950, 992367667, 989996102, 992432947, 990462039, 520376094, 990850568, 989998391, 990392887, 991245069, 991247705, 992106803, 990854489, 992172083, 989999627, 992237363, 990197297, 992302643, 990858034, 992367923, 520441631, 992433203, 990391622, 992498483, 990393944, 989995849, 989996356, 990519364, 990127433, 990199895, 992172339, 990060872, 992237619, 990718251, 992302899, 989932585, 990061896, 990854995, 992433459, 990652723, 992498739, 520246803, 992564019, 990392647, 990192970, 990128687, 754977297, 754984261, 992237875, 990724179, 992303155, 990661679, 992368435, 990457431, 990719765, 990261260, 992498995, 990978377, 992564275, 990592085, 992629555, 520310558, 990458921, 990978374, 754986517, 992303411, 957100083, 992368691, 990522921, 992433971, 990651206, 990920533, 754977608, 992564531, 990262023, 992629811, 990065449, 992695091, 754988075, 991244294, 990199384, 992368947, 990458641, 992434227, 956904242, 992499507, 956771634, 990456394, 991240773, 992630067, 990063148, 992695347, 956904241, 992760627, 990323783, 991778093, 992434483, 990525237, 992499763, 754997260, 992565043, 990920792, 990523925, 990916104, 992695603, 990323781, 992760883, 989996359, 992826163, 956838707, 992500019, 990330451, 992565299, 990585669, 992630579, 990000940, 992751662, 990126661, 992761139, 989999885, 992826419, 992891699, 990060613, 992565555, 989998889, 992630835, 991120941, 992696115, 520310032, 992686382, 990066218, 992826675, 992891955, 992957235, 754996992, 992631091, 990391628, 992696371, 990792752, 992761651, 990130965, 992685870, 992892211, 992957491, 993022771, 990126153, 992696627, 990393655, 992761907, 990460755, 992827187, 992686126, 992957747, 993023027, 993088307, 990588167, 992762163, 994335021, 992827443, 992892723, 992752175, 993023283, 993088563, 993153843, 991047430, 992827699, 992892979, 992958259, 993023539, 993088819, 993154099, 993219379, 992893235, 992958515, 993023795, 993089075, 993154355, 993219635, 993284915, 992958771, 993024051, 993089331, 993154611, 993219891, 993285171, 993350451, 993024307, 993089587, 993154867, 993220147, 993285427, 993350707, 993415987, 993089843, 993155123, 993220403, 993285683, 993350963, 993416243, 993481523, 993155379, 993220659, 993285939, 993351219, 993416499, 993481779, 993547059, 993220915, 993286195, 993351475, 993416755, 993482035, 993547315, 993612595, 993286451, 993351731, 993417011, 993482291, 993547571, 993612851, 993678131, 993351987, 993417267, 993482547, 993547827, 993613107, 993678387, 993677875, 993417523, 993482803, 993548083, 993613363, 993678643, 993677619, 993483059, 993548339, 993613619, 993678899, 993677363, 993548595, 993613875, 993679155, 993677107, 993614131, 993679411, 993676851, 993679667, 993676595, 993676339, 993676083, 993675827, 993675571, 993675315, 993675059, 993674803, 991047434, 991046925, 520375824, 989998356, 991113228, 16911931, 990260497, 991047948, 990982668, 990191366, 754995200, 992293422, 990126086, 692867887, 992826413, 989934092, 994005805, 520246802, 993745494, 990917388, 989999884, 993678893, 990458379, 990920791, 991112716, 990982667, 990458447, 990402099, 991046927, 989932816, 990061835, 990793010, 990917141, 990458186, 990721591, 992761648, 990064136, 989932556, 520491590, 989997836, 754983942, 992826160, 992293681, 16926993, 992293677, 520507167, 990793266, 990727474, 990858546, 990063893, 990923826, 520557640, 990989106, 990465075, 990063116, 990392328, 990128396, 990129162, 990260494, 990200149, 990654741, 990128427, 990193676, 990793522, 990727730, 990858802, 990661938, 990924082, 991188013, 990989362, 990456105, 991054642, 992827696, 990258956, 990334003, 990402353, 990328362, 989932040, 692541490, 990063880, 992358446, 990453831, 990793778, 990727986, 990859058, 990662194, 990924338, 990596402, 990989618, 990916885, 991054898, 520228420, 991120178, 991112972, 990401326, 990264660, 991250738, 692530516, 991047692, 990527320, 990453828, 990063886, 991250482, 990794034, 990728242, 990859314, 990662450, 990924594, 990596658, 990989874, 990530866, 991055154, 990851605, 991120434, 990391825, 991185714, 990982412, 991250994, 990391814, 957165104, 990194183, 992292141, 991250226, 989929543, 990794290, 990728498, 990859570, 990662706, 990924850, 990596914, 990990130, 990531122, 991055410, 990134615, 991120690, 990589461, 991185970, 990193416, 991251250, 989933836, 990389833, 990261767, 991249970, 956510768, 990650182, 990794546, 990728754, 990859826, 990662962, 990925106, 990597170, 990990386, 990531378, 991055666, 989932295, 991120946, 990126856, 991186226, 990457933, 991251506, 989995271, 990917132, 992292397, 990794802, 990729010, 990860082, 990663218, 990925362, 990597426, 990990642, 990531634, 991055922, 692989523, 991121202, 989931531, 991186482, 990334258, 991251762, 990858030, 990065158, 989999628, 990795058, 990729266, 990860338, 990663474, 990925618, 990597682, 990990898, 990531890, 991056178, 754996230, 991121458, 754996739, 991186738, 990334514, 991252018, 990268722, 754997268, 990326534, 990851852, 990795314, 990729522, 990860594, 990663730, 990925874, 990597938, 990991154, 990532146, 991056434, 520164424, 991121714, 990521653, 991186994, 990334770, 991252274, 990268978, 990203186, 989934101, 990457898, 990065420, 990795570, 990729778, 990860850, 990663986, 990926130, 990598194, 990991410, 990532402, 991056690, 990653703, 991121970, 990269229, 991187250, 990335026, 991252530, 990269234, 990203442, 990137650, 990065429, 991712301, 991047180, 990795826, 990730034, 990861106, 990664242, 990926386, 990598450, 990991666, 990532658, 991056946, 754988596, 991122226, 520164926, 991187506, 990335282, 991252786, 990269490, 990203698, 990137906, 990072114, 990458638, 990792496, 992760621, 990796082, 990730290, 990861362, 990664498, 990926642, 990598706, 990991922, 990532914, 991057202, 989930822, 991122482, 990590007, 991187762, 990335538, 991253042, 990269746, 990203954, 990138162, 990072370, 990006578, 989933333, 754983947, 990390829, 990730546, 990861618, 990664754, 990926898, 990598962, 990992178, 990533170, 991057458, 990788952, 991122738, 991108936, 991188018, 990335794, 991253298, 990270002, 990204210, 990138418, 990072626, 990006834, 989941042, 990458189, 990130440, 990007085, 990665010, 990927154, 990599218, 990992434, 990533426, 991057714, 993088301, 991122994, 991055149, 991188274, 990336050, 991253554, 990270258, 991318834, 990204466, 990138674, 990072882, 990007090, 989941298, 754994482, 990261269, 990327559, 990265684, 990599474, 990992690, 990533682, 991057970, 754983241, 991123250, 990394160, 991188530, 990336306, 991253810, 990270514, 991319090, 990204722, 991384370, 990138930, 990073138, 990007346, 989941554, 754994738, 989995335, 990129685, 990719253, 992564272, 990533938, 991058226, 692738099, 991123506, 990913860, 991188786, 990336562, 991254066, 990270770, 991319346, 990204978, 991384626, 990139186, 991449906, 990073394, 990007602, 989941810, 754994994, 992105517, 956640563, 990851349, 990719750, 692999764, 520556872, 991123762, 990652969, 991189042, 990336818, 991254322, 990271026, 991319602, 990205234, 991384882, 990139442, 991450162, 990073650, 991515442, 990007858, 989942066, 754995250, 990129928, 990719017, 990458695, 990916373, 990061062, 692934451, 992368432, 991189298, 990337074, 991254578, 990271282, 991319858, 990205490, 991385138, 990139698, 991450418, 990073906, 991515698, 990008114, 991580978, 989942322, 754995506, 520164414, 990720525, 990194187, 993220397, 990326293, 990981388, 989932812, 990337330, 991254834, 990271538, 991320114, 990205746, 991385394, 990139954, 991450674, 990074162, 991515954, 990008370, 991581234, 989942578, 991646514, 754995762, 990392400, 990525231, 956576301, 754982921, 990392886, 990588949, 989998092, 990063372, 990271794, 991320370, 990206002, 991385650, 990140210, 991450930, 990074418, 991516210, 990008626, 991581490, 989942834, 991646770, 754996018, 991712050, 992630832, 990400306, 990658649, 989935147, 990197034, 956903731, 990401838, 520507422, 990128904, 990206258, 991385906, 990140466, 991451186, 990074674, 991516466, 990008882, 991581746, 989943090, 991647026, 754996274, 991712306, 991581229, 991777586, 990466097, 989997322, 990521907, 520376607, 990392391, 990784788, 990402608, 990587690, 956772146, 990140722, 991451442, 990074930, 991516722, 990009138, 991582002, 989943346, 991647282, 754996530, 991712562, 754996227, 991777842, 989929227, 991843122, 990465073, 956837935, 990395992, 754986037, 991110473, 956641843, 990402350, 990128652, 990916877, 990075186, 991516978, 990009394, 991582258, 989943602, 991647538, 754996786, 991712818, 990718513, 991778098, 957166382, 991843378, 754998542, 991908658, 990392841, 956641331, 520442141, 990724439, 990392665, 754999305, 990402864, 520507423, 990193932, 990009650, 991582514, 989943858, 991647794, 754997042, 991713074, 520162120, 991778354, 990654775, 991843634, 991244043, 991908914, 991175495, 991974194, 990391094, 754988589, 754998280, 520181779, 990457937, 990333747, 990402098, 990259212, 991047436, 989944114, 991648050, 754997298, 991713330, 990848074, 991778610, 754995202, 991843890, 990461267, 991909170, 754985478, 991974450, 754980414, 992039730, 520375822, 956575283, 989937497, 990191882, 990981898, 990134105, 990402862, 990982156, 989933580, 754997554, 991713586, 990978887, 991778866, 990192902, 991844146, 989932842, 991909426, 956443949, 991974706, 991048461, 992039986, 991117400, 992105266, 990388806, 990389066, 990718257, 992761645, 754990936, 990458696, 990454341, 990916876, 989999372, 989996101, 991779122, 990465838, 991844402, 990521655, 991909682, 990328620, 991974962, 754986803, 992040242, 520229191, 992105522, 990598445, 992170802, 989933879, 990134359, 990192968, 991779117, 990390086, 754988080, 990851596, 990065164, 990063878, 990459988, 991844658, 991044677, 991909938, 956837169, 991975218, 990392847, 992040498, 990391640, 992105778, 990986072, 992171058, 754991447, 992236338, 990003286, 990653708, 990259718, 991050838, 990719500, 754996997, 990785813, 992761390, 991174474, 990850570, 991910194, 990064425, 991975474, 990258696, 992040754, 989929289, 992106034, 990919768, 992171314, 990456873, 992236594, 956968241, 992301874, 989997622, 957034030, 990268209, 754995485, 990461524, 990461270, 990915861, 990328375, 990259506, 991975730, 991712045, 992041010, 990654727, 992106290, 520294726, 992171570, 990467631, 992236850, 990926125, 992302130, 991052115, 992367410, 754995970, 990325290, 956707376, 956903214, 754985265, 990064909, 990655253, 754986806, 992041266, 754976278, 992106546, 990719530, 992171826, 990064138, 992237106, 991112458, 992302386, 990400558, 992367666, 990854744, 992432946, 520245533, 990388292, 956902707, 990396249, 989931829, 989998088, 990133845, 992106802, 990985561, 992172082, 990978634, 992237362, 990855509, 992302642, 990458387, 992367922, 990589460, 992433202, 989998861, 992498482, 754993424, 989997623, 754995203, 754976279, 754994689, 990718508, 992172338, 990593369, 992237618, 990590262, 992302898, 990006321, 990653717, 990654249, 992433458, 990985560, 992498738, 990327316, 992564018, 520425798, 990781768, 990000687, 992367661, 990133337, 992237874, 989938008, 992303154, 692803123, 992368434, 754988852, 990456137, 520492351, 992498994, 1057431305, 992564274, 991055661, 992629554, 956904237, 989998890, 990128135, 989929992, 992303410, 990524972, 992368690, 754982728, 992433970, 991843373, 991247701, 990393101, 992564530, 990391817, 992629810, 990328105, 992695090, 990394196, 990139181, 989996038, 992368946, 990330195, 992434226, 990392406, 992499506, 990132021, 990261013, 990197298, 992630066, 989935146, 992695346, 990065463, 992760626, 990720774, 990589446, 992434482, 990854232, 992499762, 990198869, 992565042, 990261815, 990850581, 991109194, 992695602, 990393142, 992760882, 956969265, 992826162, 991252781, 992500018, 990000951, 992565298, 990391594, 992630578, 990978630, 990454346, 990066486, 992761138, 992106541, 992826418, 992891698, 956510510, 992565554, 990128395, 992630834, 520572700, 992696114, 754976280, 992621104, 990720776, 992826674, 992891954, 992957234, 990519879, 992631090, 990196023, 992696370, 990130950, 992761650, 692736818, 992620334, 992892210, 992957490, 993022770, 990327082, 992696626, 990395477, 992761906, 990061575, 992827186, 992620080, 992957746, 993023026, 993088306, 990000685, 992762162, 520245264, 992827442, 992892722, 992620589, 993023282, 993088562, 993153842, 991057453, 992827698, 992892978, 992958258, 993023538, 993088818, 993154098, 993219378, 992893234, 992958514, 993023794, 993089074, 993154354, 993219634, 993284914, 992958770, 993024050, 993089330, 993154610, 993219890, 993285170, 993350450, 993024306, 993089586, 993154866, 993220146, 993285426, 993350706, 993415986, 993089842, 993155122, 993220402, 993285682, 993350962, 993416242, 993481522, 993155378, 993220658, 993285938, 993351218, 993416498, 993481778, 993547058, 993220914, 993286194, 993351474, 993416754, 993482034, 993547314, 993612594, 993286450, 993351730, 993417010, 993482290, 993547570, 993612850, 993678130, 993351986, 993417266, 993482546, 993547826, 993613106, 993678386, 993677874, 993417522, 993482802, 993548082, 993613362, 993678642, 993677618, 993483058, 993548338, 993613618, 993678898, 993677362, 993548594, 993613874, 993679154, 993677106, 993614130, 993679410, 993676850, 993679666, 993676594, 993676338, 993676082, 993675826, 993675570, 993675314, 993675058, 993674802, 989931831, 991044932, 990786316, 990066476, 990192713, 990260535, 692605742, 957035054, 990458713, 990130956, 990981644, 990585674, 992761391, 692802394, 994335027, 990589191, 992358704, 990458693, 957165613, 990061380, 990533677, 989999893, 989933068, 992358190, 990656049, 990519370, 990597165, 956903472, 990008621, 692803666, 990656051, 990793009, 990653973, 990785557, 990851590, 992761394, 990784785, 989998348, 754978117, 990063628, 693000532, 990128908, 990848068, 754988586, 990129424, 990194188, 990793265, 990727473, 990858545, 992695088, 990923825, 990126855, 990989105, 990259468, 990981900, 991243546, 989933324, 754984970, 990400817, 956707378, 990916620, 520232282, 989999116, 990793521, 990727729, 990858801, 990661937, 990924081, 992696624, 990989361, 991241545, 991054641, 990851340, 990064908, 990720566, 990402606, 992358961, 990003029, 754984454, 991254573, 990194959, 990453834, 990793777, 990727985, 990859057, 990662193, 990924337, 990596401, 990989617, 992695859, 991054897, 991054637, 991120177, 991112968, 990401330, 992358445, 991250737, 990723417, 990137135, 990396501, 990453830, 692662611, 991250481, 990794033, 990728241, 990859313, 990662449, 990924593, 990596657, 990989873, 990530865, 991055153, 992696368, 991120433, 990718518, 991185713, 990524181, 991250993, 990464819, 990460248, 990786060, 754978362, 991250225, 990259978, 990794289, 990728497, 990859569, 990662705, 990924849, 990596913, 990990129, 990531121, 991055409, 520292393, 991120689, 992695344, 991185969, 957166126, 991251249, 993286445, 990465069, 990721335, 991249969, 692867929, 990986069, 990794545, 990728753, 990859825, 990662961, 990925105, 990597169, 990990385, 990531377, 991055665, 990717002, 991120945, 16914263, 991186225, 992695858, 991251505, 992761392, 754996489, 989998354, 990794801, 990729009, 990860081, 990663217, 990925361, 990597425, 990990641, 990531633, 991055921, 991581741, 991121201, 990130184, 991186481, 990334257, 991251761, 992696112, 990130700, 956903983, 990795057, 990729265, 990860337, 990663473, 990925617, 990597681, 990990897, 990531889, 991056177, 956444719, 991121457, 754998796, 991186737, 990334513, 991252017, 990268721, 990454601, 990720780, 692540500, 990795313, 990729521, 990860593, 990663729, 990925873, 990597937, 990991153, 990532145, 991056433, 990009133, 991121713, 692933679, 991186993, 990334769, 991252273, 990268977, 990203185, 990402352, 990196492, 957100845, 990795569, 990729777, 990860849, 990663985, 990926129, 990598193, 990991409, 990532401, 991056689, 990460759, 991121969, 990126919, 991187249, 990335025, 991252529, 990269233, 990203441, 990137649, 990402609, 990916108, 520227912, 990795825, 990730033, 990861105, 990664241, 990926385, 990598449, 990991665, 990532657, 991056945, 990006064, 991122225, 754998018, 991187505, 990335281, 991252785, 990269489, 990203697, 990137905, 990072113, 990402866, 16850517, 991244295, 990796081, 990730289, 990861361, 990664497, 990926641, 990598705, 990991921, 990532913, 991057201, 990257223, 991122481, 990982407, 991187761, 990335537, 991253041, 990269745, 990203953, 990138161, 990072369, 990006577, 990402355, 990912580, 754999051, 990730545, 990861617, 990664753, 990926897, 990598961, 990992177, 990533169, 991057457, 990127622, 991122737, 990333742, 991188017, 990335793, 991253297, 990270001, 990204209, 990138417, 990072625, 990006833, 989941041, 990402861, 990388551, 754981908, 990665009, 990927153, 990599217, 990992433, 990533425, 991057713, 990981639, 991122993, 520178959, 991188273, 990336049, 991253553, 990270257, 991318833, 990204465, 990138673, 990072881, 990007089, 989941297, 754994481, 990454090, 992761393, 989998604, 990599473, 990992689, 990533681, 991057969, 692999256, 991123249, 754987563, 991188529, 990336305, 991253809, 990270513, 991319089, 990204721, 991384369, 990138929, 990073137, 990007345, 989941553, 754994737, 990795821, 990458187, 990850316, 990063884, 990533937, 991058225, 990719495, 991123505, 991112970, 991188785, 990336561, 991254065, 990270769, 991319345, 990204977, 991384625, 990139185, 991449905, 990073393, 990007601, 989941809, 754994993, 990064390, 520244776, 1057432075, 990129164, 990916629, 992630829, 991123761, 990459698, 991189041, 990336817, 991254321, 990271025, 991319601, 990205233, 991384881, 990139441, 991450161, 990073649, 991515441, 990007857, 989942065, 754995249, 989933830, 990718517, 990456372, 990390090, 990194444, 990259724, 520492606, 991189297, 990337073, 991254577, 990271281, 991319857, 990205489, 991385137, 990139697, 991450417, 990073905, 991515697, 990008113, 991580977, 989942321, 754995505, 754993970, 957100077, 520310542, 990522922, 956641842, 990916364, 992891949, 990337329, 991254833, 990271537, 991320113, 990205745, 991385393, 990139953, 991450673, 990074161, 991515953, 990008369, 991581233, 989942577, 991646513, 754995761, 754999306, 990718507, 990521642, 990459691, 956772142, 990982925, 990460499, 991320109, 990271793, 991320369, 990206001, 991385649, 990140209, 991450929, 990074417, 991516209, 990008625, 991581489, 989942833, 991646769, 754996017, 991712049, 990661426, 754998784, 754976809, 957100591, 990262314, 990786311, 520180255, 990923566, 990191688, 990206257, 991385905, 990140465, 991451185, 990074673, 991516465, 990008881, 991581745, 989943089, 991647025, 754996273, 991712305, 990531373, 991777585, 520507679, 989934091, 991179526, 990327060, 990789460, 990394968, 957033774, 754983179, 990715978, 990140721, 991451441, 990074929, 991516721, 990009137, 991582001, 989943345, 991647281, 754996529, 991712561, 991974189, 991777841, 990194442, 991843121, 990325559, 956378670, 990393160, 991186477, 990265431, 990323529, 990402096, 991116628, 990067796, 990075185, 991516977, 990009393, 991582257, 989943601, 991647537, 754996785, 991712817, 991177990, 991778097, 990128394, 991843377, 990458679, 991908657, 956379699, 990134104, 990584644, 990457911, 990257927, 989937750, 989998860, 991515949, 754996488, 990009649, 991582513, 989943857, 991647793, 754997041, 991713073, 991250733, 991778353, 989933835, 991843633, 990521649, 991908913, 989931827, 991974193, 957033773, 990788951, 990003031, 754995743, 992630061, 520507166, 990851084, 994136883, 990128646, 989944113, 991648049, 754997297, 991713329, 754997508, 991778609, 990061066, 991843889, 754983430, 991909169, 956707118, 991974449, 990126152, 992039729, 989933332, 754998022, 989933076, 990851085, 990133844, 990328623, 990401583, 991243787, 520244777, 754997553, 991713585, 990137389, 991778865, 989997323, 991844145, 956707630, 991909425, 990193967, 991974705, 990723928, 992039985, 754999041, 992105265, 990068825, 990260999, 990335277, 991248467, 1057431819, 520161578, 990401587, 520441887, 991713069, 520164166, 991779121, 991047181, 991844401, 957034797, 991909681, 990197552, 991974961, 990651461, 992040241, 990264408, 992105521, 520227911, 992170801, 990590761, 990793773, 990588948, 754988340, 990654726, 990650697, 990402097, 990524170, 990064652, 990654989, 991844657, 990654006, 991909937, 991241286, 991975217, 990847305, 992040497, 990854230, 992105777, 520424520, 992171057, 991043399, 992236337, 990126404, 990522644, 990793005, 991043402, 990263084, 990393167, 990402607, 990785804, 990456645, 956379182, 991910193, 990656053, 991975473, 990527060, 992040753, 990788691, 992106033, 957231920, 992171313, 990719756, 992236593, 990664749, 992301873, 991182932, 990127370, 990846794, 992565293, 989998633, 990262839, 990457107, 990130444, 990062859, 991975729, 990390596, 992041009, 990654250, 992106289, 754988086, 992171569, 16927770, 992236849, 990656300, 992302129, 990527574, 992367409, 754990419, 993679149, 990392390, 520572702, 990390580, 990458703, 990454342, 990325291, 992041265, 991181908, 992106545, 990525235, 992171825, 990129428, 992237105, 754982490, 992302385, 990458153, 992367665, 520244258, 992432945, 990650181, 991174982, 520294982, 754987572, 754979097, 990192647, 991117657, 992106801, 991116633, 992172081, 754990422, 992237361, 754991188, 992302641, 990991917, 992367921, 754990676, 992433201, 990458697, 992498481, 990716230, 754982918, 990330457, 990393907, 754982668, 520573469, 992172337, 990263083, 992237617, 990982666, 992302897, 520229959, 990260757, 990125894, 992433457, 989929284, 992498737, 990137134, 992564017, 754985521, 754986032, 990063157, 990391367, 989936980, 992237873, 990724185, 992303153, 990661681, 992368433, 956379696, 990455879, 990392396, 992498993, 990530607, 992564273, 754983752, 992629553, 990191946, 990392076, 990795309, 754985518, 992303409, 754994702, 992368689, 990390084, 992433969, 990260756, 990588457, 990396503, 992564529, 754984006, 992629809, 990061641, 992695089, 990263088, 993285421, 990985816, 992368945, 754999056, 992434225, 754999299, 992499505, 990198867, 990457940, 956576557, 992630065, 990066223, 992695345, 520360263, 992760625, 990393433, 991179014, 992434481, 754987051, 992499761, 990195206, 992565041, 990066480, 990196245, 754987017, 992695601, 990391351, 992760881, 990191879, 992826161, 990326804, 992500017, 989933589, 992565297, 990913092, 992630577, 520310557, 990522645, 989997615, 992761137, 989932038, 992826417, 992891697, 990328617, 992565553, 989995844, 992630833, 990261559, 992696113, 956838195, 992620079, 692933424, 992826673, 992891953, 992957233, 990392650, 992631089, 520492608, 992696369, 990006062, 992761649, 992498733, 992620595, 992892209, 992957489, 993022769, 990261289, 992696625, 956838706, 992761905, 692802868, 992827185, 992620846, 992957745, 993023025, 993088305, 990650948, 992762161, 692999254, 992827441, 992892721, 992621103, 993023281, 993088561, 993153841, 990462293, 992827697, 992892977, 992958257, 993023537, 993088817, 993154097, 993219377, 992893233, 992958513, 993023793, 993089073, 993154353, 993219633, 993284913, 992958769, 993024049, 993089329, 993154609, 993219889, 993285169, 993350449, 993024305, 993089585, 993154865, 993220145, 993285425, 993350705, 993415985, 993089841, 993155121, 993220401, 993285681, 993350961, 993416241, 993481521, 993155377, 993220657, 993285937, 993351217, 993416497, 993481777, 993547057, 993220913, 993286193, 993351473, 993416753, 993482033, 993547313, 993612593, 993286449, 993351729, 993417009, 993482289, 993547569, 993612849, 993678129, 993351985, 993417265, 993482545, 993547825, 993613105, 993678385, 993677873, 993417521, 993482801, 993548081, 993613361, 993678641, 993677617, 993483057, 993548337, 993613617, 993678897, 692867885, 993677361, 993548593, 993613873, 993679153, 692802098, 993677105, 993614129, 993679409, 993743667, 993676849, 993679665, 993745203, 993676593, 693000497, 692999213, 993676337, 693000237, 693000494, 993676081, 693000496, 692802099, 993675825, 692802356, 693000495, 993675569, 693000498, 692802354, 993675313, 692804147, 693000493, 993675057, 693000242, 692869171, 993674801, 692999981, 692933939, 692802351, 693000241, 992357937, 992358195, 990259207, 990324036, 989994759, 990460245, 692802133, 754998800, 990720524, 990196236, 990064904, 990792749, 990655244, 990458457, 990126154, 990257158, 991844397, 990262028, 990457109, 990850572, 990651464, 692736556, 754984266, 990063889, 992039981, 990656052, 990064140, 992359215, 957165614, 992359214, 990064661, 990793008, 990457101, 990457100, 990653712, 992760880, 989929540, 990129420, 990592853, 990194700, 991243534, 520164671, 754987027, 990259980, 692671020, 990392394, 990793264, 990727472, 990858544, 990457156, 990923824, 990850828, 990989104, 990396758, 990064396, 692671026, 990785548, 990060359, 990130188, 754987795, 990259208, 992357678, 990720268, 990793520, 990727728, 990858800, 990661936, 990924080, 990457103, 990989360, 990195980, 991054640, 990651722, 990654988, 989933075, 990402610, 989932819, 990261772, 990401843, 990395476, 990258443, 990454087, 990793776, 990727984, 990859056, 990662192, 990924336, 990596400, 990989616, 990457105, 991054896, 990589708, 991120176, 991244807, 990401585, 754987539, 991250736, 993548333, 990327564, 989998351, 990453833, 992423983, 991250480, 990794032, 990728240, 990859312, 990662448, 990924592, 990596656, 990989872, 990530864, 991055152, 990456650, 991120432, 990785036, 991185712, 990785549, 991250992, 754986771, 989933843, 520180254, 989933587, 991250224, 754987283, 990794288, 990728496, 990859568, 990662704, 990924848, 990596912, 990990128, 990531120, 991055408, 520161576, 991120688, 990456900, 991185968, 990129676, 991251248, 990258250, 992433714, 989933331, 991249968, 692474676, 754986515, 990794544, 990728752, 990859824, 990662960, 990925104, 990597168, 990990384, 990531376, 991055664, 989936727, 991120944, 520295487, 991186224, 990456903, 991251504, 990719244, 989996106, 692606298, 990794800, 990729008, 990860080, 990663216, 990925360, 990597424, 990990640, 990531632, 991055920, 693000276, 991121200, 990520389, 991186480, 990334256, 991251760, 990457094, 990193415, 991250477, 990795056, 990729264, 990860336, 990663472, 990925616, 990597680, 990990896, 990531888, 991056176, 989998599, 991121456, 520244752, 991186736, 990334512, 991252016, 990268720, 990457096, 754977566, 989930246, 990795312, 990729520, 990860592, 990663728, 990925872, 990597936, 990991152, 990532144, 991056432, 754990424, 991121712, 990523144, 991186992, 990334768, 991252272, 990268976, 990203184, 990456905, 991178001, 990923567, 990795568, 990729776, 990860848, 990663984, 990926128, 990598192, 990991408, 990532400, 991056688, 990720041, 991121968, 990719786, 991187248, 990335024, 991252528, 990269232, 990203440, 990137648, 990456902, 989994760, 990194956, 990795824, 990730032, 990861104, 990664240, 990926384, 990598448, 990991664, 990532656, 991056944, 990066478, 991122224, 990062894, 991187504, 990335280, 991252784, 990269488, 990203696, 990137904, 990072112, 990456901, 990260236, 990785292, 990796080, 990730288, 990861360, 990664496, 990926640, 990598704, 990991920, 990532912, 991057200, 990982406, 991122480, 990523912, 991187760, 990335536, 991253040, 990269744, 990203952, 990138160, 990072368, 990006576, 990456904, 990129932, 990720012, 990730544, 990861616, 990664752, 990926896, 990598960, 990992176, 990533168, 991057456, 990587190, 991122736, 754984455, 991188016, 990335792, 991253296, 990270000, 990204208, 990138416, 990072624, 990006832, 989941040, 990457095, 990195724, 990654732, 990665008, 990927152, 990599216, 990992432, 990533424, 991057712, 990393156, 991122992, 993613869, 991188272, 990336048, 991253552, 990270256, 991318832, 990204464, 990138672, 990072880, 990007088, 989941296, 754994480, 990457098, 990261516, 520293191, 990599472, 990992688, 990533680, 991057968, 990861101, 991123248, 990327573, 991188528, 990336304, 991253808, 990270512, 991319088, 990204720, 991384368, 990138928, 990073136, 990007344, 989941552, 754994736, 990399279, 990457099, 990195462, 991121197, 990533936, 991058224, 990718262, 990126662, 990654229, 990458964, 990523210, 990400818, 990719799, 990522954, 520162119, 990461525, 990523466, 990326602, 990588746, 990727981, 990522698, 990326346, 990588490, 957100590, 989999880, 990523722, 990326858, 990589002, 990261066, 990654282, 990326090, 990588234, 990260810, 990654026, 754996744, 991188525, 990523978, 990327114, 990589258, 990261322, 990654538, 990195530, 990719818, 990260554, 990653770, 990195274, 990719562, 991253037, 990524234, 990327370, 990589514, 990261578, 990654794, 990195786, 990720074, 990129994, 990785354, 990195018, 990719306, 990129738, 990785098, 990327626, 990589770, 990261834, 990655050, 990196042, 990720330, 990130250, 990785610, 990064458, 990850890, 990129482, 990784842, 990064202, 990850634, 990262090, 990655306, 990196298, 990720586, 990130506, 990785866, 990064714, 990851146, 989998922, 990916426, 990063946, 990850378, 989998666, 990916170, 990196554, 990720842, 990130762, 990786122, 990064970, 990851402, 989999178, 990916682, 989933386, 990981962, 989998410, 990915914, 989933130, 990981706, 990131018, 990786378, 990065226, 990851658, 989999434, 990916938, 989933642, 990982218, 754986826, 991047498, 989932874, 990981450, 754986570, 991047242, 990065482, 990851914, 989999690, 990917194, 989933898, 990982474, 754987082, 991047754, 990192651, 991113034, 754986314, 991046986, 990126344, 991112778, 989999946, 990917450, 989934154, 990982730, 754987338, 991048010, 990063624, 991113290, 990652727, 991178570, 754996485, 991112522, 990128685, 991178314, 989934410, 990982986, 754987594, 991048266, 990655252, 991113546, 990126347, 991178826, 956509747, 990130695, 991178058, 990456375, 754987850, 991048522, 990400815, 991113802, 990325301, 991179082, 990651210, 990204717, 990456886, 990062895, 990656307, 991114058, 754995972, 991179338, 990466610, 990395223, 754985774, 990595887, 990850826, 990721579, 991179594, 957164851, 754999314, 991174729, 990391823, 990982919, 990781256, 754999058, 956379951, 990128950, 990788697, 990202673, 520293448, 754988343, 956772910, 990130487, 994071385, 990657880, 990137393, 990327607, 991051609, 989931824, 754998789, 990653716, 956575026, 754985513, 990521897, 991175753, 990519108, 991181910, 990718252, 990855513, 990985813, 989996105, 990523404, 990657621, 990458965, 991117396, 990391567, 990723155, 956707375, 990522900, 990526551, 990326022, 990723413, 990401070, 990661933, 990526552, 990392397, 989937752, 989996554, 956968242, 989929286, 990000688, 754986801, 990192712, 990653707, 754976588, 990195207, 990394158, 990390343, 520376078, 520361022, 956773167, 991110471, 990584649, 990327350, 520491334, 956379443, 520361279, 990457668, 990846792, 990262832, 990461527, 990000692, 989997618, 994071341, 989932342, 989997064, 990391607, 957165617, 992433197, 957231665, 520230463, 754983748, 990328369, 990396244, 754980160, 754984458, 990459477, 990598701, 990587188, 957099567, 989997831, 991515693, 990532141, 991320365, 994203949, 754998795, 990523209, 754997767, 754988336, 990522953, 520360518, 989940781, 990523465, 990326601, 990588745, 990459480, 990522697, 990326345, 990588489, 991251245, 989994763, 990523721, 990326857, 990589001, 990261065, 990654281, 990326089, 990588233, 990260809, 990654025, 520375823, 520361031, 990523977, 990327113, 990589257, 990261321, 990654537, 990195529, 990719817, 990260553, 990653769, 990195273, 990719561, 990002773, 990524233, 990327369, 990589513, 990261577, 990654793, 990195785, 990720073, 990129993, 990785353, 990195017, 990719305, 990129737, 990785097, 990327625, 990589769, 990261833, 990655049, 990196041, 990720329, 990130249, 990785609, 990064457, 990850889, 990129481, 990784841, 990064201, 990850633, 990262089, 990655305, 990196297, 990720585, 990130505, 990785865, 990064713, 990851145, 989998921, 990916425, 990063945, 990850377, 989998665, 990916169, 990196553, 990720841, 990130761, 990786121, 990064969, 990851401, 989999177, 990916681, 989933385, 990981961, 989998409, 990915913, 989933129, 990981705, 990131017, 990786377, 990065225, 990851657, 989999433, 990916937, 989933641, 990982217, 754986825, 991047497, 989932873, 990981449, 754986569, 991047241, 990065481, 990851913, 989999689, 990917193, 989933897, 990982473, 754987081, 991047753, 692736815, 991113033, 754986313, 991046985, 990588678, 991112777, 989999945, 990917449, 989934153, 990982729, 754987337, 991048009, 990718519, 991113289, 957034286, 991178569, 990129160, 991112521, 754982667, 991178313, 989934409, 990982985, 754987593, 991048265, 990458453, 991113545, 990194186, 991178825, 754994690, 990465331, 991178057, 956773171, 754987849, 991048521, 991319085, 991113801, 991244557, 991179081, 990656310, 990978122, 956379184, 992367405, 754977065, 991114057, 990590263, 991179337, 990325546, 956641839, 990912582, 520376351, 990128134, 990588983, 991179593, 989930311, 990325033, 957034288, 990131759, 990392915, 990206253, 956706095, 990919765, 990264918, 989995082, 990261766, 993613357, 754990425, 990195254, 990325035, 991050835, 754996995, 990462296, 992301869, 520298329, 989932085, 990720822, 991248726, 754983691, 754983692, 990126666, 520442398, 993676077, 520491336, 989997609, 990466866, 990388810, 990068821, 990261514, 990457897, 754997766, 991117399, 991051351, 990129684, 990457670, 990329939, 990063926, 991117652, 754995230, 520573212, 990134612, 520440872, 754997511, 990259510, 990979396, 993613613, 990196279, 956706865, 990393943, 990468401, 754994958, 990392655, 990328363, 990060868, 990197295, 990716233, 990392085, 990392648, 520572958, 990781769, 990393163, 990000681, 754983749, 990393162, 990195719, 520162884, 990072109, 990716745, 991240519, 990394153, 956641327, 990392903, 989997616, 991778861, 990327863, 990137645, 990978117, 990925357, 990392375, 990326839, 990395732, 16865598, 16910386, 754987020, 957164846, 990460247, 990323018, 520227657, 990464815, 692989272, 990720775, 990257926, 990194957, 990523208, 990457681, 990916616, 990522952, 992629549, 990399533, 990523464, 990326600, 990588744, 989934086, 990522696, 990326344, 990588488, 992564525, 990006573, 990523720, 990326856, 990589000, 990261064, 990654280, 990326088, 990588232, 990260808, 990654024, 990598189, 989941293, 990523976, 990327112, 990589256, 990261320, 990654536, 990195528, 990719816, 990260552, 990653768, 990195272, 990719560, 990391112, 990524232, 990327368, 990589512, 990261576, 990654792, 990195784, 990720072, 990129992, 990785352, 990195016, 990719304, 990129736, 990785096, 990327624, 990589768, 990261832, 990655048, 990196040, 990720328, 990130248, 990785608, 990064456, 990850888, 990129480, 990784840, 990064200, 990850632, 990262088, 990655304, 990196296, 990720584, 990130504, 990785864, 990064712, 990851144, 989998920, 990916424, 990063944, 990850376, 989998664, 990916168, 990196552, 990720840, 990130760, 990786120, 990064968, 990851400, 989999176, 990916680, 989933384, 990981960, 989998408, 990915912, 989933128, 990981704, 990131016, 990786376, 990065224, 990851656, 989999432, 990916936, 989933640, 990982216, 754986824, 991047496, 989932872, 990981448, 754986568, 991047240, 990065480, 990851912, 989999688, 990917192, 989933896, 990982472, 754987080, 991047752, 990003027, 991113032, 754986312, 991046984, 520245788, 991112776, 989999944, 990917448, 989934152, 990982728, 754987336, 991048008, 989943597, 991113288, 990458444, 991178568, 990792497, 991112520, 990656301, 991178312, 989934408, 990982984, 754987592, 991048264, 990202674, 991113544, 990590766, 991178824, 990060873, 989931823, 991178056, 991248727, 754987848, 991048520, 990523433, 991113800, 990462297, 991179080, 990327081, 989935155, 990858285, 990063150, 990333743, 991114056, 16926992, 991179336, 990458699, 990396247, 990322504, 990519880, 990068055, 990590775, 991179592, 989933097, 990524215, 16927769, 754988851, 990064141, 990850314, 990522890, 754986507, 990716232, 754986548, 957099565, 989929285, 990392658, 991043654, 990333744, 957034287, 990330713, 990723673, 990191429, 990330712, 990390088, 991117144, 990919769, 990720553, 990265686, 754985736, 990524979, 990920535, 990072877, 990401331, 989937748, 990065428, 990457143, 520426310, 956969010, 692736819, 990134360, 956903982, 990715973, 990328629, 692933682, 957558067, 991108935, 989935401, 520229447, 990196791, 991050839, 520247060, 990527575, 990789716, 520441628, 754994467, 990588713, 990128432, 990990381, 520244264, 991117142, 990854231, 990392404, 990393908, 990066225, 990390828, 990726960, 956640813, 989997620, 989934890, 956707121, 990197299, 990262026, 989994758, 990063914, 990194742, 990851078, 956773165, 990393098, 990467888, 754997761, 754987310, 990260790, 754987540, 754999301, 990390341, 990326327, 754978116, 956902959, 989930056, 992892205, 16912430, 16927771, 990126916, 990458183, 754987526, 990137138, 520227655, 990461784, 990661421, 990917397, 754978841, 990523207, 990458633, 990062856, 990522951, 990195975, 993351213, 990523463, 990326599, 990588743, 992564785, 990522695, 990326343, 990588487, 990191878, 992499504, 990523719, 990326855, 990588999, 990261063, 990654279, 990326087, 990588231, 990260807, 990654023, 520166747, 993417261, 990523975, 990327111, 990589255, 990261319, 990654535, 990195527, 990719815, 990260551, 990653767, 990195271, 990719559, 520295238, 990524231, 990327367, 990589511, 990261575, 990654791, 990195783, 990720071, 990129991, 990785351, 990195015, 990719303, 990129735, 990785095, 990327623, 990589767, 990261831, 990655047, 990196039, 990720327, 990130247, 990785607, 990064455, 990850887, 990129479, 990784839, 990064199, 990850631, 990262087, 990655303, 990196295, 990720583, 990130503, 990785863, 990064711, 990851143, 989998919, 990916423, 990063943, 990850375, 989998663, 990916167, 990196551, 990720839, 990130759, 990786119, 990064967, 990851399, 989999175, 990916679, 989933383, 990981959, 989998407, 990915911, 989933127, 990981703, 990131015, 990786375, 990065223, 990851655, 989999431, 990916935, 989933639, 990982215, 754986823, 991047495, 989932871, 990981447, 754986567, 991047239, 990065479, 990851911, 989999687, 990917191, 989933895, 990982471, 754987079, 991047751, 992171565, 991113031, 754986311, 991046983, 989944109, 991112775, 989999943, 990917447, 989934151, 990982727, 754987335, 991048007, 520178958, 991113287, 990458382, 991178567, 990323784, 991112519, 991048203, 991178311, 989934407, 990982983, 754987591, 991048263, 990327047, 991113543, 990522637, 991178823, 956707632, 990589750, 991178055, 990524727, 754987847, 991048519, 990588422, 991113799, 991243533, 991179079, 956379697, 990328368, 990524973, 990326058, 692736561, 991114055, 990327053, 991179335, 990326794, 990978888, 754986505, 754998538, 989995783, 990327309, 991179591, 956838703, 990322759, 754987049, 754988338, 520164167, 692999216, 956968499, 990257734, 990195242, 990191431, 990195988, 991044676, 990456110, 754977823, 990256967, 990391893, 990260234, 956575278, 956773168, 990328119, 990916871, 990392402, 754995717, 990920281, 990530350, 990259467, 754991190, 990913863, 989936726, 990854998, 991047179, 990723669, 754988594, 754994227, 520376093, 990003030, 990330963, 956444211, 957231149, 990789206, 990525225, 990392589, 754999300, 990002771, 990792754, 990193974, 990391639, 990191370, 990590513, 956444462, 990063626, 991110214, 993481773, 990259499, 754987273, 992236845, 990006067, 990198870, 990197046, 990459481, 990392917, 990392139, 990199891, 754986551, 990847049, 957231409, 990196266, 989997866, 990460756, 990848070, 990322762, 956707379, 754985992, 990263082, 989999415, 754983239, 990259464, 956902957, 956773169, 990328618, 990596653, 991044164, 692672820, 990061126, 990193968, 754983751, 754999298, 754984460, 754985522, 990391827, 956640558, 989997611, 520179239, 991909421, 754987797, 990003540, 992171053, 989934349, 990523206, 989931782, 990327351, 990522950, 990392341, 990456365, 990523462, 990326598, 990588742, 520427070, 990522694, 990326342, 990588486, 989943085, 991113479, 990523718, 990326854, 990588998, 990261062, 990654278, 990326086, 990588230, 990260806, 990654022, 692530518, 754999046, 990523974, 990327110, 990589254, 990261318, 990654534, 990195526, 990719814, 990260550, 990653766, 990195270, 990719558, 692924756, 990524230, 990327366, 990589510, 990261574, 990654790, 990195782, 990720070, 990129990, 990785350, 990195014, 990719302, 990129734, 990785094, 990327622, 990589766, 990261830, 990655046, 990196038, 990720326, 990130246, 990785606, 990064454, 990850886, 990129478, 990784838, 990064198, 990850630, 990262086, 990655302, 990196294, 990720582, 990130502, 990785862, 990064710, 990851142, 989998918, 990916422, 990063942, 990850374, 989998662, 990916166, 990196550, 990720838, 990130758, 990786118, 990064966, 990851398, 989999174, 990916678, 989933382, 990981958, 989998406, 990915910, 989933126, 990981702, 990131014, 990786374, 990065222, 990851654, 989999430, 990916934, 989933638, 990982214, 754986822, 991047494, 989932870, 990981446, 754986566, 991047238, 990065478, 990851910, 989999686, 990917190, 989933894, 990982470, 754987078, 991047750, 754986546, 991113030, 754986310, 991046982, 990071853, 991112774, 989999942, 990917446, 989934150, 990982726, 754987334, 991048006, 990523143, 991113286, 990465070, 991178566, 989930565, 991112518, 990462040, 991178310, 989934406, 990982982, 754987590, 991048262, 990663981, 991113542, 990459222, 991178822, 990847816, 990261005, 991178054, 990326024, 754987846, 991048518, 990259463, 991113798, 989997319, 991179078, 754995974, 754987783, 520442142, 990127882, 991113990, 991114054, 990523190, 991179334, 990523702, 990655785, 754986539, 990066474, 990261033, 990261261, 991179590, 990851851, 990716744, 990584902, 990393899, 956706864, 956641582, 990656306, 956772653, 990195466, 989940527, 990587442, 990916870, 990133587, 754994959, 990389063, 990786068, 991182424, 754995714, 754988847, 990530606, 989935158, 520229448, 990593109, 991182421, 989998603, 990985815, 754986283, 754990677, 991182420, 990520394, 989995593, 520167003, 990262058, 990717000, 991247704, 990587445, 990915852, 990060360, 990068569, 990585928, 990526548, 990068052, 990718509, 520492094, 990391565, 990392071, 956510002, 991120429, 989938005, 956968498, 990061124, 754976791, 990912325, 956576306, 688333322, 990920277, 754999047, 990399277, 990264404, 956772911, 990194999, 990326838, 990134617, 990592342, 990063151, 990458166, 990587180, 990002265, 990393096, 992105261, 990128136, 990847561, 956443954, 990257674, 990390577, 754983723, 990585162, 991044166, 956968238, 990390830, 991113223, 990257988, 990589190, 754983496, 990392399, 990193969, 990128648, 991112456, 990519877, 956445489, 991044423, 990392593, 992237357, 991179016, 692934962, 990399795, 992172077, 990729517, 990523205, 989942829, 990520390, 990522949, 990205229, 991122477, 990523461, 990326597, 990588741, 990194964, 990522693, 990326341, 990588485, 990651717, 991051091, 990523717, 990326853, 990588997, 990261061, 990654277, 990326085, 990588229, 990260805, 990654021, 990786310, 990193162, 990523973, 990327109, 990589253, 990261317, 990654533, 990195525, 990719813, 990260549, 990653765, 990195269, 990719557, 692531544, 990524229, 990327365, 990589509, 990261573, 990654789, 990195781, 990720069, 990129989, 990785349, 990195013, 990719301, 990129733, 990785093, 990327621, 990589765, 990261829, 990655045, 990196037, 990720325, 990130245, 990785605, 990064453, 990850885, 990129477, 990784837, 990064197, 990850629, 990262085, 990655301, 990196293, 990720581, 990130501, 990785861, 990064709, 990851141, 989998917, 990916421, 990063941, 990850373, 989998661, 990916165, 990196549, 990720837, 990130757, 990786117, 990064965, 990851397, 989999173, 990916677, 989933381, 990981957, 989998405, 990915909, 989933125, 990981701, 990131013, 990786373, 990065221, 990851653, 989999429, 990916933, 989933637, 990982213, 754986821, 991047493, 989932869, 990981445, 754986565, 991047237, 990065477, 990851909, 989999685, 990917189, 989933893, 990982469, 754987077, 991047749, 956510001, 991113029, 754986309, 991046981, 520376604, 991112773, 989999941, 990917445, 989934149, 990982725, 754987333, 991048005, 990323780, 991113285, 990466609, 991178565, 990401329, 991112517, 990459225, 991178309, 989934405, 990982981, 754987589, 991048261, 754979903, 991113541, 990460761, 991178821, 990196486, 990917389, 991178053, 990196234, 754987845, 991048517, 990392904, 991113797, 989997067, 991179077, 520179485, 991044425, 956444465, 989995338, 956510514, 991114053, 990521905, 991179333, 990585668, 989994762, 990519367, 990985303, 989997318, 990465327, 991179589, 990331219, 990467376, 991174984, 956771886, 991043401, 990389834, 956378673, 956641071, 990781513, 754987823, 989998342, 754999297, 990789719, 990454597, 990260009, 990986580, 990723415, 990394963, 990127878, 990920278, 990129927, 989942573, 990530611, 754995486, 692736559, 990127177, 990458384, 990392334, 520244515, 520312338, 754994727, 990593112, 991182935, 990658134, 989999636, 991051605, 991051865, 754991449, 990137394, 990009645, 993614125, 754998277, 754997293, 990331225, 990785556, 990599213, 993155373, 16846638, 990653225, 520247058, 990395731, 520179473, 990585156, 520557126, 994202413, 688333066, 990329945, 956576045, 990325037, 990132016, 990191944, 990192648, 990459439, 990003028, 956969264, 991109956, 956772402, 754985259, 990390576, 990259720, 989929802, 990389062, 754979400, 990259760, 754987274, 990393427, 956444209, 754990420, 990128650, 990063146, 990718259, 990192197, 990726959, 991174473, 754985264, 990061382, 990459694, 990257159, 990851348, 990064938, 520178979, 990981384, 990138925, 990461529, 991251501, 754998027, 990597421, 692867890, 990523716, 990848330, 990002519, 990523460, 990597933, 993675821, 990523972, 990327108, 990589252, 990459178, 990395478, 990523204, 990326852, 990588996, 990399794, 990524228, 990327364, 990589508, 990261572, 990654788, 991319597, 990256907, 990522948, 990326596, 990588740, 990261316, 990654532, 990327620, 990589764, 990261828, 990655044, 990196036, 990720324, 990782794, 990522692, 990326340, 990588484, 990261060, 990654276, 990195780, 990720068, 990262084, 990655300, 990196292, 990720580, 990130500, 990785860, 990326084, 990588228, 990260804, 990654020, 990195524, 990719812, 990130244, 990785604, 990196548, 990720836, 990130756, 990786116, 990064964, 990851396, 990260548, 990653764, 990195268, 990719556, 990129988, 990785348, 990064708, 990851140, 990131012, 990786372, 990065220, 990851652, 989999428, 990916932, 990195012, 990719300, 990129732, 990785092, 990064452, 990850884, 989999172, 990916676, 990065476, 990851908, 989999684, 990917188, 989933892, 990982468, 990129476, 990784836, 990064196, 990850628, 989998916, 990916420, 989933636, 990982212, 989999940, 990917444, 989934148, 990982724, 754987332, 991048004, 990063940, 990850372, 989998660, 990916164, 989933380, 990981956, 754987076, 991047748, 989934404, 990982980, 754987588, 991048260, 989929994, 991113540, 989998404, 990915908, 989933124, 990981700, 754986820, 991047492, 990326285, 991113284, 754987844, 991048516, 520163655, 991113796, 957100847, 991179076, 989932868, 990981444, 754986564, 991047236, 990587436, 991113028, 990913866, 991178820, 754997764, 991114052, 990523146, 991179332, 990521650, 754986308, 991046980, 991385645, 991112772, 990915853, 991178564, 990461273, 990718775, 991179588, 989932042, 990394156, 990458446, 991112516, 990458935, 991178308, 754983213, 992565040, 990916874, 990197550, 754988332, 990461272, 991178052, 956903217, 990199637, 956641838, 990716742, 990262057, 991109189, 956510003, 990719252, 990457654, 991178250, 754988330, 754979911, 990455878, 956706097, 990650180, 956510509, 990589205, 990523924, 990986582, 990664237, 990132009, 754986291, 990524982, 990457689, 956707635, 957034800, 990986581, 990199125, 990264915, 990457361, 990401325, 990986323, 991051859, 754986761, 990522636, 990523405, 990524983, 520375848, 990064650, 989997066, 990723161, 990654218, 990454340, 990390598, 990520391, 990391818, 989996807, 990597677, 990915851, 991044421, 989940783, 990522154, 990394708, 990590519, 990128684, 990391891, 991050837, 989997353, 692673075, 754986294, 990128438, 754995027, 990986583, 989996362, 754979398, 990196265, 990781509, 754984009, 990459434, 520229192, 990191945, 754983690, 990781512, 754978372, 990781766, 990259756, 990519112, 991108937, 990393898, 957099822, 990986329, 990391627, 990468145, 990393172, 990525236, 990402093, 754996480, 990721322, 754998799, 990194220, 990990637, 994399021, 991253805, 990391337, 990981895, 754999316, 991243332, 991243333, 991243334, 991243335, 991243336, 991243337, 991243338, 990258950, 992368429, 990467379, 754985271, 990061637, 16928851, 520181266, 990065961, 989932586, 989936981, 989929542, 990393102, 520441384, 991241031, 990390827, 990128938, 990788696, 990196535, 990590764, 989930055, 991043912, 990392651, 990388038, 991109958, 754985771, 754976554, 992761133, 990848071, 754988842, 956969777, 990198873, 990396499, 990126149, 990719508, 754986288, 990388809, 990257479, 520295488, 754986802, 990459478, 990392340, 990586186, 991910189, 991647021, 990202675, 991243526, 990459695, 990653738, 956641074, 990588969, 990721587, 991117139, 754995228, 990396759, 990723670, 991182422, 990782534, 754997762, 990715976, 990986324, 990717253, 990458377, 990522635, 991248211, 754976553, 990393129, 754990934, 956902961, 990598957, 957099566, 990196500, 990195718, 990854227, 990792750, 754994448, 990920279, 957166129, 990390344, 991044935, 754987571, 990071601, 990392140, 692530520, 990655542, 991043656, 754998801, 990912330, 990130486, 990060616, 990395989, 754987050, 989930312, 990325040, 990400304, 754984200, 989929223, 520491848, 990982157, 989933866, 990330711, 990651205, 990197556, 957033775, 989936983, 990002520, 990458422, 990459475, 956575789, 956707373, 957100846, 956640559, 754986760, 754984260, 990199893, 520229190, 990129670, 989998855, 990202669, 990459732, 754986052, 754986053, 754986054, 754986055, 754986056, 754986057, 754986058, 989932612, 989932613, 989932614, 989932615, 989932616, 989932617, 989932618, 989998148, 989998149, 989998150, 989998151, 989998152, 989998153, 989998154, 990063684, 990063685, 990063686, 990063687, 990063688, 990063689, 990063690, 990129220, 990129221, 990129222, 990129223, 990129224, 990129225, 990129226, 990194756, 990194757, 990194758, 990194759, 990194760, 990194761, 990194762, 990260292, 990260293, 990260294, 990260295, 990260296, 990260297, 990260298, 990325828, 990325829, 990325830, 990325831, 990325832, 990325833, 990325834, 990717254, 754999048, 956575024, 520426567, 990530605, 990652975, 989997614, 989996810, 990850567, 754994688, 990400560, 956707122, 520227656, 692802352, 990522436, 990522437, 990522438, 990522439, 990522440, 990522441, 990522442, 990587972, 990587973, 990587974, 990587975, 990587976, 990587977, 990587978, 990653508, 990653509, 990653510, 990653511, 990653512, 990653513, 990653514, 990719044, 990719045, 990719046, 990719047, 990719048, 990719049, 990719050, 990784580, 990784581, 990784582, 990784583, 990784584, 990784585, 990784586, 990850116, 990850117, 990850118, 990850119, 990850120, 990850121, 990850122, 990915652, 990915653, 990915654, 990915655, 990915656, 990915657, 990915658, 990981188, 990981189, 990981190, 990981191, 990981192, 990981193, 990981194, 991046724, 991046725, 991046726, 991046727, 991046728, 991046729, 991046730, 991112260, 991112261, 991112262, 991112263, 991112264, 991112265, 991112266, 991177796, 991177797, 991177798, 991177799, 991177800, 991177801, 991177802, 990260040, 990194504, 990325576, 990260039, 990260041, 990128968, 990194503, 990194505, 993941843, 990325575, 990325577, 990260038, 990260042, 990063432, 990128967, 990128969, 990194502, 990194506, 991112967, 990063367, 520161321, 990325574, 990325578, 990260037, 989997896, 990063431, 990063433, 990128966, 990128970, 990194501, 990522184, 16914008, 692859220, 754998798, 990658133, 990325573, 990260036, 989932360, 989997895, 989997897, 990063430, 990063434, 990128965, 990194500, 990587720, 990522183, 990522185, 754997003, 692989529, 991113992, 990325572, 754985800, 989932359, 989932361, 989997894, 989997898, 990063429, 990128964, 990653256, 990587719, 990587721, 990522182, 990522186, 989937236, 520557128, 520309795, 754985799, 754985801, 989932358, 989932362, 989997893, 990063428, 990718792, 990653255, 990653257, 990587718, 990587722, 990522181, 990468143, 16910156, 991176004, 993088813, 754985798, 754985802, 989932357, 989997892, 990784328, 990718791, 990718793, 990653254, 990653258, 990587717, 990522180, 991240521, 990655018, 990656309, 993024301, 990851848, 754985797, 989932356, 990849864, 990784327, 990784329, 990718790, 990718794, 990653253, 990587716, 990259755, 990723412, 990458167, 520178727, 990459224, 990063158, 754985796, 990915400, 990849863, 990849865, 990784326, 990784330, 990718789, 990653252, 990781510, 990000938, 990456106, 754976552, 990458436, 956706608, 520166746, 990980936, 990915399, 990915401, 990849862, 990849866, 990784325, 990718788, 956969267, 520424521, 520230206, 956771632, 956445233, 956575281, 990467122, 991046472, 990980935, 990980937, 990915398, 990915402, 990849861, 990784324, 754996232, 956904239, 956576562, 754986290, 754983989, 990650950, 990392853, 991112008, 991046471, 991046473, 990980934, 990980938, 990915397, 990849860, 990977862, 990654484, 990587179, 754985782, 990391894, 989995080, 956641328, 991177544, 991112007, 991112009, 991046470, 991046474, 990980933, 990915396, 692736814, 990002515, 991176005, 990721079, 990589716, 990458386, 990129974, 991243080, 991177543, 991177545, 991112006, 991112010, 991046469, 990980932, 990467123, 991117656, 990061579, 990458443, 990522892, 991182167, 991047687, 991243079, 991243081, 991177542, 991177546, 991112005, 991046468, 990067797, 520441629, 990268464, 990588938, 990458706, 990392591, 990661425, 991243078, 991243082, 991177541, 991112004, 991174728, 990392846, 990533933, 991241543, 990661682, 990593111, 990588168, 991243077, 991177540, 692541013, 990721585, 754986502, 956838702, 520441885, 990126665, 990724183, 991243076, 990193970, 990721846, 990716229, 16927514, 957230387, 990985559, 957099309, 956642098, 956771888, 989997364, 990392141, 990130708, 992958765, 990589452, 956837168, 990392147, 990654007, 990652724, 957100338, 990653238, 754987569, 990000682, 957231667, 990721840, 990392148, 990323530, 989995845, 956510259, 991647277, 520358729, 989999914, 989995590, 956904240, 989995589, 990257671, 990072365, 990261046, 990062897, 754998017, 956575538, 754979399, 990259783, 990194247, 990325319, 990259782, 990259784, 990128711, 990194246, 990194248, 989932598, 990325318, 990325320, 990259781, 990259785, 990063175, 990128710, 990128712, 990194245, 990194249, 990589450, 990989101, 520244521, 990325317, 990325321, 990259780, 990259786, 989997639, 990063174, 990063176, 990128709, 990128713, 990194244, 990194250, 990521927, 990196244, 990126343, 754998537, 990785798, 990325316, 990325322, 989932103, 989997638, 989997640, 990063173, 990063177, 990128708, 990128714, 990587463, 990521926, 990521928, 990195255, 994333485, 520573215, 993676589, 754985543, 989932102, 989932104, 989997637, 989997641, 990063172, 990063178, 990652999, 990587462, 990587464, 990521925, 990521929, 990391630, 989937493, 990194439, 754985542, 754985544, 989932101, 989932105, 989997636, 989997642, 990718535, 990652998, 990653000, 990587461, 990587465, 990521924, 990521930, 754996993, 957231919, 990720297, 754985541, 754985545, 989932100, 989932106, 990784071, 990718534, 990718536, 990652997, 990653001, 990587460, 990587466, 990066221, 990465583, 520507935, 992565037, 990400563, 754985540, 754985546, 990849607, 990784070, 990784072, 990718533, 990718537, 990652996, 990653002, 990913095, 692531029, 990192138, 990588202, 990720781, 990459220, 754998286, 990915143, 990849606, 990849608, 990784069, 990784073, 990718532, 990718538, 754996756, 990259763, 754983946, 989934377, 991047178, 991047947, 990458631, 990980679, 990915142, 990915144, 990849605, 990849609, 990784068, 990784074, 990523658, 989933581, 990392398, 990913352, 989930308, 991044680, 990719274, 991046215, 990980678, 990980680, 990915141, 990915145, 990849604, 990849610, 989934646, 992237869, 990719529, 754987059, 990126409, 990325289, 990192200, 991111751, 991046214, 991046216, 990980677, 990980681, 990915140, 990915146, 990466099, 990066483, 990858286, 990521903, 957033776, 990391625, 990192966, 991177287, 991111750, 991111752, 991046213, 991046217, 990980676, 990980682, 990399537, 989930821, 990523668, 990585925, 991241546, 692736817, 990322506, 991242823, 991177286, 991177288, 991111749, 991111753, 991046212, 991046218, 990071857, 990658901, 990784780, 754983753, 990002775, 990851604, 956444974, 991242822, 991242824, 991177285, 991177289, 991111748, 991111754, 990457675, 990458442, 990522935, 989995787, 990724437, 991117654, 990590769, 991242821, 991242825, 991177284, 991177290, 754988081, 989936728, 754987575, 520312852, 990068822, 990593364, 991178507, 991242820, 991242826, 957231407, 990392134, 990721580, 754985783, 991244552, 16911929, 990654762, 989933865, 754990167, 990196237, 990389830, 990720554, 989931015, 754987830, 990846790, 990978890, 991044420, 990191690, 990391885, 990584650, 990468400, 990392838, 993154605, 989932078, 956706606, 990978378, 990653711, 990129414, 520164422, 990127432, 990393685, 992499250, 990063402, 692737844, 520179470, 992106029, 990063110, 991044165, 991243782, 957230897, 754987528, 990526803, 990194184, 990326541, 990192455, 992170797, 989997579, 990259527, 990193991, 990325063, 990259526, 990259528, 990128455, 990193990, 990193992, 990126918, 990325062, 990325064, 990259525, 990259529, 990062919, 990128454, 990128456, 990193989, 990193993, 520164927, 991187757, 992499501, 990325061, 990325065, 990259524, 990259530, 989997383, 990062918, 990062920, 990128453, 990128457, 990193988, 990193994, 990521671, 990851591, 990457683, 990008365, 990259974, 990325060, 990325066, 989931847, 989997382, 989997384, 990062917, 990062921, 990128452, 990128458, 990587207, 990521670, 990521672, 989997832, 990588934, 754977565, 754994989, 754985287, 989931846, 989931848, 989997381, 989997385, 990062916, 990062922, 990652743, 990587206, 990587208, 990521669, 990521673, 990916872, 520227114, 990531629, 754985286, 754985288, 989931845, 989931849, 989997380, 989997386, 990718279, 990652742, 990652744, 990587205, 990587209, 990521668, 990521674, 990326538, 990193672, 989932294, 754985285, 754985289, 989931844, 989931850, 990783815, 990718278, 990718280, 990652741, 990652745, 990587204, 990587210, 754983176, 1058415433, 990587433, 990924333, 990719238, 754985284, 754985290, 990849351, 990783814, 990783816, 990718277, 990718281, 990652740, 990652746, 990063153, 989931830, 956378416, 957231921, 990523959, 990785037, 990785032, 990914887, 990849350, 990849352, 990783813, 990783817, 990718276, 990718282, 990392597, 754987825, 990519878, 990716743, 957166383, 990588201, 956968495, 990980423, 990914886, 990914888, 990849349, 990849353, 990783812, 990783818, 990454344, 520310812, 957165362, 990392105, 990390836, 990126921, 990128691, 991045959, 990980422, 990980424, 990914885, 990914889, 990849348, 990849354, 990140717, 520441128, 991247959, 990260010, 990061832, 989997835, 754998528, 991111495, 991045958, 991045960, 990980421, 990980425, 990914884, 990914890, 989995336, 754988598, 990589994, 989930314, 992827693, 990262838, 990391895, 991177031, 991111494, 991111496, 991045957, 991045961, 990980420, 990980426, 991117141, 520426816, 990588679, 990062087, 990848325, 990139693, 956641584, 991242567, 991177030, 991177032, 991111493, 991111497, 991045956, 991045962, 520572703, 990986328, 990458678, 990131755, 991179530, 991187501, 991122989, 991242566, 991242568, 991177029, 991177033, 991111492, 991111498, 989933844, 990721842, 990913864, 754995757, 754991187, 956640819, 992695853, 991242565, 991242569, 991177028, 991177034, 990388297, 990461523, 990789462, 990786056, 993219885, 990521899, 989930825, 991242564, 991242570, 754976792, 990389573, 993810733, 520309801, 990716997, 990323785, 990391816, 957099825, 754986550, 989934647, 990392335, 990392389, 956903215, 990129418, 990658646, 957034799, 991174725, 990132012, 990530355, 991174472, 754985777, 754986035, 956772147, 956968755, 520244497, 957165363, 989933320, 990456630, 990653958, 957100079, 990390582, 520376862, 990459702, 754983175, 956511026, 991109448, 520441129, 990130231, 990523178, 991175750, 754987529, 989999622, 990458451, 989935149, 989998121, 990006063, 990065162, 990128199, 990062663, 990193735, 990128198, 990128200, 989997127, 990062662, 990062664, 990259271, 990193734, 990193736, 990128197, 990128201, 989931591, 989997126, 989997128, 990062661, 990062665, 990324807, 990259270, 990259272, 990193733, 990193737, 990128196, 990128202, 754985031, 989931590, 989931592, 989997125, 989997129, 990062660, 990062666, 754997514, 990324806, 990324808, 990259269, 990259273, 990193732, 990193738, 692999217, 754985030, 754985032, 989931589, 989931593, 989997124, 989997130, 754982663, 991385389, 520573214, 990324805, 990324809, 990259268, 990259274, 990652974, 692736812, 692736560, 754985029, 754985033, 989931588, 989931594, 990521415, 990523914, 991185965, 990654471, 990589448, 990324804, 990324810, 956575025, 989999370, 957099570, 692999469, 692999215, 754985028, 754985034, 990586951, 990521414, 990521416, 989996360, 754977822, 990065160, 692999508, 990913348, 957034544, 990392331, 990127883, 956378926, 990071602, 692933421, 990652487, 990586950, 990586952, 990521413, 990521417, 990137137, 754998791, 990325296, 754987789, 956707629, 754997509, 956837422, 991178504, 989932299, 990718023, 990652486, 990652488, 990586949, 990586953, 990521412, 990521418, 990977863, 990393173, 990391621, 989999115, 16911930, 990260522, 956509742, 990783559, 990718022, 990718024, 990652485, 990652489, 990586948, 990586954, 990527315, 990393903, 520491592, 989995077, 1057432327, 520228676, 991057197, 990849095, 990783558, 990783560, 990718021, 990718025, 990652484, 990652490, 520229950, 754987565, 991777837, 990912326, 989994826, 990002263, 990590516, 990914631, 990849094, 990849096, 990783557, 990783561, 990718020, 990718026, 991113734, 990523958, 990264406, 990455881, 990716999, 991240266, 754996484, 990980167, 990914630, 990914632, 990849093, 990849097, 990783556, 990783562, 990063892, 990920787, 991052119, 989933367, 990459993, 754998543, 990193963, 991045703, 990980166, 990980168, 990914629, 990914633, 990849092, 990849098, 956379694, 956838189, 990125835, 990069075, 990326535, 990588684, 990129940, 991111239, 991045702, 991045704, 990980165, 990980169, 990914628, 990914634, 990652971, 990062603, 991247702, 520375336, 990784779, 990789971, 990588428, 991176775, 991111238, 991111240, 991045701, 991045705, 990980164, 990980170, 990262827, 520180252, 520298073, 754994704, 990590517, 990391111, 990388804, 991242311, 991176774, 991176776, 991111237, 991111241, 991045700, 991045706, 990650695, 990128439, 956838192, 957033777, 990393168, 520375591, 990532653, 991242310, 991242312, 991176773, 991176777, 991111236, 991111242, 990782276, 989999913, 989997360, 989930763, 990650698, 993350445, 990329942, 991242309, 991242313, 991176772, 991176778, 989995847, 754996481, 991175237, 989932087, 990521652, 989933610, 990466863, 991242308, 991242314, 990126088, 990391633, 990323269, 989998135, 754998019, 754987533, 990327337, 990192135, 990060299, 990195241, 993678125, 990393901, 520297818, 689316423, 990719240, 754999044, 754995457, 990847045, 990127368, 990193478, 990127942, 990259014, 990193477, 990193479, 990062406, 990127941, 990127943, 990324550, 990259013, 990259015, 990193476, 990193480, 989996870, 990062405, 990062407, 990127940, 990127944, 692541012, 990324549, 990324551, 990259012, 990259016, 990193481, 989931334, 989996869, 989996871, 990062404, 990062408, 990127945, 754997512, 990587945, 990656308, 990324548, 990324552, 990259017, 990193482, 754984774, 989931333, 989931335, 989996868, 989996872, 990062409, 990127946, 990521158, 991123501, 990132015, 520360776, 520228677, 990324553, 990259018, 993810777, 754984773, 754984775, 989931332, 989931336, 989996873, 990062410, 990586694, 990521157, 990521159, 990465072, 991048456, 989931825, 990324554, 990522678, 993940313, 994269523, 754984772, 754984776, 989931337, 989996874, 990652230, 990586693, 990586695, 990521156, 990521160, 692869427, 754998023, 991044933, 990459476, 990400307, 692990035, 993874777, 754984777, 989931338, 990717766, 990652229, 990652231, 990586692, 990586696, 990521161, 991580973, 754998529, 957231153, 990520392, 990461012, 957035057, 692934706, 754984778, 990783302, 990717765, 990717767, 990652228, 990652232, 990586697, 990521162, 754976534, 957165102, 990192201, 520359241, 991243786, 990193675, 994399065, 990848838, 990783301, 990783303, 990717764, 990717768, 990652233, 990586698, 989940786, 991054893, 956576558, 991241289, 990000694, 990466098, 754976535, 990914374, 990848837, 990848839, 990783300, 990783304, 990717769, 990652234, 990723414, 990854996, 990392663, 956969007, 957099823, 990192199, 956510771, 990979910, 990914373, 990914375, 990848836, 990848840, 990783305, 990717770, 990128951, 991116373, 990458645, 991248213, 991385133, 990459991, 956640560, 991045446, 990979909, 990979911, 990914372, 990914376, 990848841, 990783306, 990850836, 990454596, 754985223, 990657878, 991254829, 754988082, 990389316, 991110982, 991045445, 991045447, 990979908, 990979912, 990914377, 990848842, 991047691, 991117655, 520181522, 990261525, 991113483, 16916054, 754996525, 991176518, 991110981, 991110983, 991045444, 991045448, 990979913, 990914378, 990592344, 990322757, 957099313, 990467373, 990467121, 754997772, 990654221, 991242054, 991176517, 991176519, 991110980, 991110984, 991045449, 990979914, 990985305, 520375568, 754982983, 990126858, 990527572, 991175493, 754995716, 991242053, 991242055, 991176516, 991176520, 991110985, 991045450, 990392631, 990205741, 957231662, 754976536, 990268211, 990192708, 990063115, 991242052, 991242056, 991176521, 991110986, 990661423, 990061831, 956378925, 990596142, 956969520, 991975213, 990264663, 991242057, 991176522, 990393642, 990392584, 990000426, 990851597, 990257477, 990851092, 754985263, 991242058, 956706607, 990920022, 990978885, 991247447, 991175497, 990128693, 990390855, 990064392, 990194221, 990063112, 990389829, 991109445, 754982233, 989933353, 990063879, 990721584, 990196022, 990590765, 989997361, 754994210, 754984264, 989929800, 1057432071, 956706352, 990662957, 989929799, 990330707, 990193223, 990127687, 990258759, 990193222, 990193224, 990062151, 990127686, 990127688, 990324295, 990258758, 990258760, 990193221, 990193225, 989996615, 990062150, 990062152, 990127685, 990127689, 692989785, 990324294, 990324296, 990258757, 990258761, 990193220, 990193226, 989931079, 989996614, 989996616, 990062149, 990062153, 990127684, 990127690, 520245007, 990656302, 990192646, 990324293, 990324297, 990258756, 990258762, 754984519, 989931078, 989931080, 989996613, 989996617, 990062148, 990062154, 990520903, 992368178, 990195464, 990195212, 991254317, 990324292, 990324298, 990979140, 754984518, 754984520, 989931077, 989931081, 989996612, 989996618, 990586439, 990520902, 990520904, 990399538, 520376080, 990195974, 990192904, 991179275, 990195221, 957164845, 754984517, 754984521, 989931076, 989931082, 990651975, 990586438, 990586440, 990520901, 990520905, 990130952, 990336813, 989998858, 1058414409, 990720042, 520310311, 991253549, 754984516, 754984522, 990717511, 990651974, 990651976, 990586437, 990586441, 990520900, 990520906, 956903473, 990194965, 990062598, 990587958, 990652983, 956510256, 520310030, 990783047, 990717510, 990717512, 990651973, 990651977, 990586436, 990586442, 989929480, 990986071, 754990932, 956511022, 754984710, 520376605, 990588214, 990848583, 990783046, 990783048, 990717509, 990717513, 990651972, 990651978, 990391829, 956969009, 754983495, 990656299, 989930309, 991244811, 754983725, 990914119, 990848582, 990848584, 990783045, 990783049, 990717508, 990717514, 990848324, 990198868, 990393430, 989932599, 956903728, 990194730, 990258187, 990979655, 990914118, 990914120, 990848581, 990848585, 990783044, 990783050, 990260791, 990130701, 990718511, 990060551, 993350957, 990194696, 989995076, 991045191, 990979654, 990979656, 990914117, 990914121, 990848580, 990848586, 754982746, 957165360, 520245262, 754996781, 991116374, 990007341, 990127428, 991110727, 991045190, 991045192, 990979653, 990979657, 990914116, 990914122, 754986284, 990593365, 990527832, 990593107, 990061322, 990652713, 993284909, 991176263, 991110726, 991110728, 991045189, 991045193, 990979652, 990979658, 990592851, 990847303, 990530608, 990789720, 990259210, 991182425, 754987277, 991241799, 991176262, 991176264, 991110725, 991110729, 991045188, 991045194, 991108932, 989931786, 990533165, 990459736, 989930826, 989998346, 990527830, 991241798, 991241800, 991176261, 991176265, 991110724, 991110730, 692989268, 520507676, 990723158, 990329943, 990519113, 991044936, 991044934, 991241797, 991241801, 991176260, 991176266, 990716486, 990457934, 990855001, 990400562, 990388295, 991117395, 990715718, 991241796, 991241802, 990390573, 991174727, 990330964, 990521651, 990388296, 990587191, 990392135, 990196778, 990913096, 989932807, 990524214, 991244299, 990261524, 990781764, 990654472, 989998378, 990520135, 991055917, 754985519, 990589239, 990126917, 990128391, 991974957, 692999252, 956445229, 990393941, 990658903, 520245023, 990855512, 991052116, 990391863, 520294984, 992499249, 990525230, 754982489, 990520647, 990719785, 990402354, 990324039, 990192711, 520376348, 990586183, 990520646, 990520648, 16924734, 990008109, 990258503, 990324038, 990324040, 990191880, 990589453, 990651719, 990586182, 990586184, 990520645, 990520649, 993482797, 990326023, 990192967, 990258502, 990258504, 990324037, 990324041, 754998279, 990192390, 990717255, 990651718, 990651720, 990586181, 990586185, 990520644, 990520650, 990127431, 754983742, 754983741, 754983743, 754983486, 754983998, 754983740, 754983485, 754983997, 754983744, 754983487, 754983999, 754983230, 754984254, 754983739, 754983484, 754983996, 754983229, 754984253, 754983745, 754983488, 754984000, 754983231, 754984255, 754982974, 754984510, 754983738, 754983483, 754983995, 754983228, 754984252, 754982973, 754984509, 754983746, 754983489, 754984001, 754983232, 754984256, 754982975, 754984511, 754982718, 754984766, 754983737, 754983482, 754983994, 754983227, 754984251, 754982972, 754984508, 754982717, 754984765, 754983747, 754983490, 754984002, 754983233, 754984257, 754982976, 754984512, 754982719, 754984767, 754982462, 754985022, 754983736, 754983481, 754983993, 754983226, 754984250, 754984507, 754982716, 754984764, 754982461, 754985021, 754983491, 754984003, 754983234, 754984258, 754982977, 754984513, 754982720, 754984768, 754982463, 754985023, 754982206, 754985278, 754983735, 754983480, 754983992, 754983225, 754984249, 754982970, 754984506, 754984763, 754982715, 754982460, 754985020, 754982205, 754985277, 754983235, 754984259, 754982978, 754984514, 754982721, 754984769, 754982464, 754985024, 754982207, 754985279, 754981950, 754985534, 754983734, 754983479, 754983991, 754983224, 754984248, 754982969, 754984505, 754982714, 754984762, 754985019, 754982459, 754982204, 754985276, 754981949, 754985533, 754982979, 754984515, 754982722, 754984770, 754982465, 754985025, 754982208, 754985280, 754981951, 754985535, 754981694, 754985790, 754983733, 754983478, 754983990, 754983223, 754984247, 754982968, 754984504, 754982713, 754984761, 754982458, 754985018, 754985275, 754982203, 754981948, 754985532, 754981693, 754985789, 754982723, 754984771, 754982466, 754985026, 754982209, 754985281, 754981952, 754985536, 754981695, 754985791, 754981438, 754986046, 754983732, 754983477, 754983222, 754984246, 754982967, 754984503, 754982712, 754984760, 754982457, 754985017, 754982202, 754985274, 754985531, 754981947, 754981692, 754985788, 754981437, 754986045, 754982467, 754985027, 754982210, 754985282, 754981953, 754985537, 754981696, 754985792, 754981439, 754986047, 754981182, 754986302, 754983731, 754983476, 754983988, 754983221, 754982966, 754984245, 754984502, 754982711, 754984759, 754982456, 754985016, 754982201, 754985273, 754981946, 754985530, 754985787, 754981691, 754981436, 754986044, 754981181, 754986301, 754982468, 754982211, 754985283, 754981954, 754985538, 754981697, 754985793, 754981440, 754986048, 754981183, 754986303, 754980926, 754986558, 754983730, 754983475, 754983987, 754983220, 754984244, 754982965, 754982710, 754984501, 754984758, 754982455, 754985015, 754982200, 754985272, 754981945, 754985529, 754981690, 754985786, 754986043, 754981435, 754981180, 754986300, 754980925, 754986557, 754982469, 754982212, 754981955, 754985539, 754981698, 754985794, 754981441, 754986049, 754981184, 754986304, 754980927, 754986559, 754980670, 754986814, 754983729, 754983474, 754983986, 754983219, 754984243, 754982964, 754984500, 754982709, 754982454, 754984757, 754985014, 754982199, 754981944, 754985528, 754981689, 754985785, 754981434, 754986042, 754986299, 754981179, 754980924, 754986556, 754980669, 754986813, 754982470, 754982213, 754981956, 754981699, 754985795, 754981442, 754986050, 754981185, 754986305, 754980928, 754986560, 754980671, 754986815, 754987070, 754983728, 754983473, 754983985, 754983218, 754984242, 754982963, 754984499, 754982708, 754984756, 754982453, 754982198, 754985013, 754981943, 754981688, 754985784, 754981433, 754986041, 754981178, 754986298, 754986555, 754980923, 754980668, 754986812, 754980413, 754987069, 754982471, 754982214, 754981957, 754981700, 754981443, 754986051, 754981186, 754986306, 754980929, 754986561, 754980672, 754986816, 754987071, 754987326, 754983727, 754983472, 754983984, 754983217, 754984241, 754982962, 754984498, 754982707, 754984755, 754982452, 754985012, 754982197, 754981942, 754981687, 754981432, 754986040, 754981177, 754986297, 754980922, 754986554, 754986811, 754980667, 754980412, 754987068, 754980157, 754987325, 754982472, 754982215, 754981958, 754981701, 754981444, 754981187, 754986307, 754980930, 754986562, 754980673, 754986817, 754987072, 754987327, 754987582, 754983726, 754983471, 754983983, 754983216, 754984240, 754982961, 754984497, 754982706, 754984754, 754982451, 754985011, 754982196, 754981941, 754981686, 754981431, 754981176, 754986296, 754980921, 754986553, 754980666, 754986810, 754987067, 754980411, 754980156, 754987324, 754979901, 754987581, 754982473, 754982216, 754981959, 754981702, 754981445, 754981188, 754980931, 754986563, 754980674, 754986818, 754980417, 754987073, 754987328, 754987583, 754987838, 754983470, 754983982, 754983215, 754984239, 754982960, 754984496, 754982705, 754984753, 754982450, 754985010, 754982195, 754981940, 754981685, 754981430, 754981175, 754980920, 754986552, 754980665, 754986809, 754980410, 754987066, 754987323, 754980155, 754979900, 754987580, 754979645, 754987837, 754982474, 754982217, 754981960, 754981703, 754981446, 754981189, 754980932, 754980675, 754986819, 754980418, 754987074, 754980161, 754987329, 754987584, 754987839, 754988094, 754983214, 754983981, 754984238, 754982959, 754984495, 754982704, 754984752, 754982449, 754985009, 754982194, 754981939, 754981684, 754981429, 754981174, 754980919, 754980664, 754986808, 754980409, 754987065, 754980154, 754987322, 754987579, 754979899, 754979644, 754987836, 754979646, 754979389, 754988093, 754982475, 754982218, 754981961, 754981704, 754981447, 754981190, 754980933, 754980676, 754980419, 754987075, 754980162, 754987330, 754979905, 754987585, 754987840, 754988095, 754988350, 754982958, 754983980, 754984237, 754984494, 754982703, 754984751, 754982448, 754985008, 754982193, 754981938, 754981683, 754981428, 754981173, 754980918, 754980663, 754980408, 754987064, 754980153, 754987321, 754979898, 754987578, 754987835, 754979643, 754979388, 754988092, 754979647, 754979390, 754979133, 754988349, 754982476, 754982219, 754982731, 754981962, 754981705, 754981448, 754981191, 754980934, 754980677, 754980420, 754980163, 754987331, 754979906, 754987586, 754979649, 754987841, 754988096, 754988351, 754988606, 754982957, 754982702, 754983979, 754984236, 754984493, 754984750, 754982447, 754985007, 754982192, 754981937, 754981682, 754981427, 754981172, 754980917, 754980662, 754980407, 754980152, 754987320, 754979897, 754987577, 754979642, 754987834, 754988091, 754979387, 754979132, 754988348, 754979648, 754979391, 754979134, 754978877, 754988605, 754982477, 754982220, 754982732, 754981963, 754982987, 754981706, 754981449, 754981192, 754980935, 754980678, 754980421, 754980164, 754979907, 754987587, 754979650, 754987842, 754979393, 754988097, 754988352, 754988607, 754988862, 754982956, 754982701, 754982446, 754983978, 754984235, 754984492, 754984749, 754985006, 754982191, 754981936, 754981681, 754981426, 754981171, 754980916, 754980661, 754980406, 754980151, 754979896, 754987576, 754979641, 754987833, 754979386, 754988090, 754988347, 754979131, 754978876, 754988604, 754979392, 754979135, 754978878, 754978621, 754988861, 754982478, 754982221, 754982733, 754981964, 754982988, 754981707, 754983243, 754981450, 754981193, 754980936, 754980679, 754980422, 754980165, 754979908, 754979651, 754987843, 754979394, 754988098, 754979137, 754988353, 754988608, 754988863, 754989118, 754982955, 754982700, 754982445, 754982190, 754983977, 754983722, 754984234, 754984491, 754984748, 754985005, 754981935, 754981680, 754981425, 754981170, 754980915, 754980660, 754980405, 754980150, 754979895, 754979640, 754987832, 754979385, 754988089, 754979130, 754988346, 754988603, 754978875, 754978620, 754988860, 754979136, 754978879, 754978622, 754978365, 754989117, 754982479, 754982222, 754982734, 754981965, 754982989, 754981708, 754983244, 754981451, 754983499, 754981194, 754980937, 754980680, 754980423, 754980166, 754979909, 754979652, 754979395, 754988099, 754979138, 754988354, 754978881, 754988609, 754988864, 754989119, 754989374, 754982954, 754982699, 754982444, 754982189, 754983976, 754983721, 754984233, 754983466, 754984490, 754984747, 754985004, 754981679, 754981424, 754981169, 754980914, 754980659, 754980404, 754980149, 754979894, 754979639, 754979384, 754988088, 754979129, 754988345, 754978874, 754988602, 754988859, 754978619, 754978364, 754989116, 754978880, 754978623, 754978366, 754978109, 754989373, 754982480, 754982223, 754982735, 754981966, 754982990, 754981709, 754983245, 754981452, 754983500, 754981195, 754983755, 754980938, 754980681, 754980424, 754980167, 754979653, 754979396, 754979139, 754988100, 754988355, 754978882, 754988610, 754978625, 754988865, 754989120, 754989375, 754989630, 754982953, 754982698, 754983210, 754982443, 754982188, 754981933, 754983975, 754983720, 754984232, 754983465, 754984489, 754984746, 754985003, 754981678, 754981423, 754981168, 754980913, 754980658, 754980403, 754980148, 754979893, 754979638, 754979383, 754979128, 754988344, 754978873, 754988601, 754978618, 754988858, 754989115, 754978363, 754978108, 754989372, 754978624, 754978367, 754978110, 754977853, 754989629, 754982481, 754982224, 754982736, 754981967, 754982991, 754981710, 754983246, 754981453, 754983501, 754981196, 754983756, 754980939, 754984011, 754980682, 754980425, 754980168, 754979397, 754979140, 754978883, 754988101, 754988356, 754988611, 754978626, 754988866, 754978369, 754989121, 754989376, 754989631, 754989886, 754982952, 754982697, 754983209, 754982442, 754982187, 754981932, 754981677, 754983974, 754983719, 754984231, 754983464, 754984488, 754984745, 754985002, 754981422, 754981167, 754980912, 754980657, 754980402, 754980147, 754979892, 754979637, 754979382, 754979127, 754978872, 754988600, 754978617, 754988857, 754989114, 754989371, 754978107, 754977852, 754989628, 754978368, 754978111, 754977854, 754977597, 754989885, 754982482, 754982225, 754982737, 754981968, 754982992, 754981711, 754983247, 754981454, 754983502, 754981197, 754983757, 754980940, 754984012, 754980683, 754984267, 754980426, 754980169, 754979141, 754978884, 754978627, 754988102, 754988357, 754988612, 754988867, 754978370, 754989122, 754978113, 754989377, 754989632, 754989887, 754990142, 754982951, 754982696, 754983208, 754982441, 754982186, 754981931, 754981676, 754981421, 754983973, 754983718, 754984230, 754983463, 754984487, 754984744, 754985001, 754981166, 754980911, 754980656, 754980401, 754980146, 754979891, 754979636, 754979381, 754979126, 754978871, 754978616, 754988856, 754978361, 754989113, 754989370, 754989627, 754978106, 754977851, 754977596, 754989884, 754978112, 754977855, 754977598, 754977341, 754990141, 754982483, 754982226, 754982738, 754981969, 754982993, 754981712, 754983248, 754981455, 754983503, 754981198, 754983758, 754980941, 754984013, 754980684, 754984268, 754980427, 754984523, 754980170, 754979913, 754978885, 754978371, 754988103, 754988358, 754988613, 754988868, 754989123, 754978114, 754989378, 754977857, 754989633, 754989888, 754990143, 754990398, 754982950, 754982695, 754983207, 754982440, 754982185, 754981930, 754981675, 754981420, 754981165, 754983972, 754983717, 754984229, 754983462, 754984486, 754984743, 754985000, 754980910, 754980655, 754980400, 754980145, 754979890, 754979635, 754979380, 754979125, 754978870, 754978615, 754978360, 754989112, 754978105, 754989369, 754989626, 754989883, 754977850, 754977595, 754977340, 754990140, 754977856, 754977599, 754977342, 754977085, 754990397, 754982484, 754982227, 754982739, 754981970, 754982994, 754981713, 754983249, 754981456, 754983504, 754981199, 754983759, 754980942, 754984014, 754980685, 754984269, 754980428, 754984524, 754980171, 754984779, 754979914, 754979657, 754978886, 754978115, 754988104, 754988359, 754988614, 754988869, 754989124, 754989379, 754977858, 754989634, 754977601, 754989889, 754990144, 754990399, 754990654, 754982949, 754982694, 754983206, 754982439, 754982184, 754981929, 754981674, 754981419, 754981164, 754980909, 754983971, 754983716, 754984228, 754983461, 754984485, 754984742, 754984999, 754985256, 754980654, 754980399, 754980144, 754979889, 754979634, 754979379, 754979124, 754978869, 754978614, 754978359, 754978104, 754989111, 754989368, 754977849, 754989625, 754989882, 754990139, 754977594, 754977339, 754977084, 754990396, 754977600, 754977343, 754977086, 754976829, 754990653, 754982228, 754982740, 754981971, 754982995, 754981714, 754983250, 754981457, 754983505, 754981200, 754983760, 754980943, 754984015, 754980686, 754984270, 754980429, 754984525, 754980172, 754984780, 754979915, 754985035, 754979658, 754979401, 754978887, 754978630, 754977859, 754988105, 754988360, 754988615, 754988870, 754989125, 754989380, 754989635, 754977602, 754989890, 754977345, 754990145, 754990400, 754990655, 754990910, 754982948, 754982693, 754983205, 754982438, 754982183, 754981928, 754981673, 754981418, 754981163, 754980908, 754980653, 754983970, 754983715, 754984227, 754983460, 754984484, 754984741, 754984998, 754985255, 754985512, 754980398, 754980143, 754979888, 754979633, 754979378, 754979123, 754978868, 754978613, 754978358, 754978103, 754977848, 754989110, 754989367, 754989624, 754977593, 754989881, 754990138, 754990395, 754977338, 754977083, 754976828, 754990652, 754977344, 754977087, 754976830, 754976573, 754990909, 754982229, 754981972, 754982741, 754982996, 754981715, 754983251, 754981458, 754983506, 754981201, 754983761, 754980944, 754984016, 754980687, 754984271, 754980430, 754984526, 754980173, 754984781, 754979916, 754985036, 754979659, 754985291, 754979402, 754979145, 754978888, 754978631, 754978374, 754977860, 754977603, 754988106, 754988361, 754988616, 754988871, 754989126, 754989381, 754989636, 754989891, 754977346, 754990146, 754977089, 754990401, 754990656, 754990911, 754991166, 754982947, 754982692, 754983204, 754982437, 754982182, 754981927, 754981672, 754981417, 754981162, 754980907, 754980652, 754980397, 754983969, 754983714, 754984226, 754983459, 754984483, 754984740, 754984997, 754985254, 754985511, 754985768, 754980142, 754979887, 754979632, 754979377, 754979122, 754978867, 754978612, 754978357, 754978102, 754977847, 754977592, 754989109, 754989366, 754989623, 754989880, 754977337, 754990137, 754990394, 754990651, 754977082, 754976827, 754976572, 754990908, 754977088, 754976831, 754976574, 754976317, 754982230, 754981973, 754981716, 754982742, 754982997, 754983252, 754981459, 754983507, 754981202, 754983762, 754980945, 754984017, 754980688, 754984272, 754980431, 754984527, 754980174, 754984782, 754979917, 754985037, 754979660, 754985292, 754979403, 754985547, 754979146, 754978889, 754978632, 754978375, 754978118, 754977861, 754977604, 754977347, 754988107, 754988362, 754988617, 754988872, 754989127, 754989382, 754989637, 754989892, 754990147, 754977090, 754990402, 754976833, 754990657, 754990912, 754991167, 754991422, 754982946, 754982691, 754983203, 754982436, 754982181, 754981926, 754981671, 754981416, 754981161, 754980906, 754980651, 754980396, 754980141, 754983968, 754983713, 754984225, 754983458, 754984482, 754984739, 754984996, 754985253, 754985510, 754985767, 754986024, 754979886, 754979631, 754979376, 754979121, 754978866, 754978611, 754978356, 754978101, 754977846, 754977591, 754977336, 754989108, 754989365, 754989622, 754989879, 754990136, 754977081, 754990393, 754990650, 754990907, 754976826, 754976571, 754976316, 754991164, 754976832, 754976575, 754976318, 754976061, 754982231, 754981974, 754982486, 754981717, 754981460, 754982743, 754982998, 754983253, 754983508, 754981203, 754983763, 754980946, 754984018, 754980689, 754984273, 754980432, 754984528, 754980175, 754984783, 754979918, 754985038, 754979661, 754985293, 754979404, 754985548, 754979147, 754985803, 754978890, 754978633, 754978376, 754977862, 754977605, 754977348, 754977091, 754988108, 754988363, 754988618, 754988873, 754989128, 754989383, 754989638, 754989893, 754990148, 754990403, 754976834, 754990658, 754976577, 754990913, 754991168, 754991423, 754991421, 754991678, 754982945, 754982690, 754983202, 754982435, 754982180, 754981925, 754981670, 754981415, 754981160, 754980905, 754980650, 754980395, 754980140, 754979885, 754983967, 754983712, 754984224, 754983457, 754984481, 754984738, 754984995, 754985252, 754985509, 754985766, 754986023, 754986280, 754979630, 754979375, 754979120, 754978865, 754978610, 754978355, 754978100, 754977845, 754977590, 754977335, 754977080, 754989107, 754989364, 754989621, 754989878, 754990135, 754990392, 754976825, 754990649, 754990906, 754991163, 754976570, 754976315, 754976060, 754991420, 754976576, 754976319, 754976062, 754975805, 754982232, 754981975, 754982487, 754981718, 754981461, 754981204, 754982744, 754982999, 754983254, 754983509, 754983764, 754980947, 754984019, 754980690, 754984274, 754980433, 754984529, 754980176, 754984784, 754979919, 754985039, 754979662, 754985294, 754979405, 754985549, 754979148, 754985804, 754978891, 754986059, 754978634, 754978377, 754977606, 754977349, 754977092, 754976835, 754988109, 754988364, 754988619, 754988874, 754989129, 754989384, 754989639, 754989894, 754990149, 754990404, 754990659, 754976578, 754990914, 754976321, 754991169, 754991424, 754991679, 754991677, 754991934, 754982944, 754982689, 754983201, 754982434, 754982179, 754981924, 754981669, 754981414, 754981159, 754980904, 754980649, 754980394, 754980139, 754979884, 754979629, 754983966, 754983711, 754984223, 754983456, 754984480, 754984737, 754984994, 754985251, 754985508, 754985765, 754986022, 754986279, 754986536, 754979374, 754979119, 754978864, 754978609, 754978354, 754978099, 754977844, 754977589, 754977334, 754977079, 754976824, 754989106, 754989363, 754989620, 754989877, 754990134, 754990391, 754990648, 754976569, 754990905, 754991162, 754991419, 754976314, 754976059, 754975804, 754991676, 754976320, 754976063, 754975806, 754975549, 754981976, 754982488, 754981719, 754981462, 754981205, 754980948, 754983000, 754983255, 754983510, 754983765, 754984020, 754980691, 754984275, 754980434, 754984530, 754980177, 754984785, 754979920, 754985040, 754979663, 754985295, 754979406, 754985550, 754979149, 754985805, 754978892, 754986060, 754978635, 754978378, 754977350, 754977093, 754976836, 754976579, 754988110, 754988365, 754988620, 754988875, 754989130, 754989385, 754989640, 754989895, 754990150, 754990405, 754990660, 754990915, 754976322, 754991170, 754976065, 754991425, 754991680, 754991935, 754991933, 754992190, 754982943, 754982688, 754983200, 754982433, 754982178, 754981923, 754981668, 754981413, 754981158, 754980903, 754980648, 754980393, 754980138, 754979883, 754979628, 754979373, 754983965, 754983710, 754984222, 754983455, 754984479, 754984736, 754984993, 754985250, 754985507, 754985764, 754986021, 754986278, 754986535, 754986792, 754979118, 754978863, 754978608, 754978353, 754978098, 754977843, 754977588, 754977333, 754977078, 754976823, 754976568, 754989105, 754989362, 754989619, 754989876, 754990133, 754990390, 754990647, 754990904, 754976313, 754991161, 754991418, 754991675, 754976058, 754975803, 754975548, 754991932, 754976064, 754975807, 754975550, 754975293, 754981977, 754981720, 754981463, 754981206, 754980949, 754980692, 754983001, 754983256, 754983511, 754983766, 754984021, 754984276, 754980435, 754984531, 754980178, 754984786, 754979921, 754985041, 754979664, 754985296, 754979407, 754985551, 754979150, 754985806, 754978893, 754986061, 754978636, 754978379, 754978122, 754977351, 754977094, 754976837, 754976580, 754976323, 754988111, 754988366, 754988621, 754988876, 754989131, 754989386, 754989641, 754989896, 754990151, 754990406, 754990661, 754990916, 754991171, 754976066, 754991426, 754975809, 754991681, 754991936, 754992191, 754992189, 754992446, 754982942, 754982687, 754983199, 754982432, 754982177, 754981922, 754981667, 754981412, 754981157, 754980902, 754980647, 754980392, 754980137, 754979882, 754979627, 754979372, 754979117, 754983964, 754983709, 754984221, 754983454, 754984478, 754984735, 754984992, 754985249, 754985506, 754985763, 754986020, 754986277, 754986534, 754986791, 754987048, 754978862, 754978607, 754978352, 754978097, 754977842, 754977587, 754977332, 754977077, 754976822, 754976567, 754976312, 754989104, 754989361, 754989618, 754989875, 754990132, 754990389, 754990646, 754990903, 754991160, 754976057, 754991417, 754991674, 754991931, 754975802, 754975547, 754975292, 754992188, 754975808, 754975551, 754975294, 754975037, 754981978, 754981721, 754981464, 754981207, 754980950, 754980693, 754980436, 754983002, 754983257, 754983512, 754983767, 754984022, 754984277, 754984532, 754980179, 754984787, 754979922, 754985042, 754979665, 754985297, 754979408, 754985552, 754979151, 754985807, 754978894, 754986062, 754978637, 754978380, 754978123, 754977866, 754977352, 754977095, 754976838, 754976581, 754976324, 754976067, 754988112, 754988367, 754988622, 754988877, 754989132, 754989387, 754989642, 754989897, 754990152, 754990407, 754990662, 754990917, 754991172, 754991427, 754975810, 754991682, 754975553, 754991937, 754992192, 754992447, 754992445, 754992702, 754982941, 754982686, 754983198, 754982431, 754982176, 754981921, 754981666, 754981411, 754981156, 754980901, 754980646, 754980391, 754980136, 754979881, 754979626, 754979371, 754979116, 754978861, 754983963, 754983708, 754984220, 754983453, 754984477, 754984734, 754984991, 754985248, 754985505, 754985762, 754986019, 754986276, 754986533, 754986790, 754987047, 754987304, 754978351, 754978096, 754977841, 754977586, 754977331, 754977076, 754976821, 754976566, 754976311, 754976056, 754989103, 754989360, 754989617, 754989874, 754990131, 754990388, 754990645, 754990902, 754991159, 754991416, 754975801, 754991673, 754991930, 754992187, 754975546, 754975291, 754975036, 754992444, 754975552, 754975295, 754975038, 754974781, 754981979, 754981722, 754981465, 754981208, 754980951, 754980694, 754980437, 754980180, 754983003, 754983258, 754983513, 754983768, 754984023, 754984278, 754984533, 754984788, 754979923, 754985043, 754979666, 754985298, 754979409, 754985553, 754979152, 754985808, 754978895, 754986063, 754978638, 754978381, 754978124, 754977867, 754977610, 754977353, 754977096, 754976839, 754976582, 754976325, 754976068, 754975811, 754988113, 754988368, 754988623, 754988878, 754989133, 754989388, 754989643, 754989898, 754990153, 754990408, 754990663, 754990918, 754991173, 754991428, 754991683, 754975554, 754991938, 754975297, 754992193, 754992448, 754992703, 754992701, 754992958, 754982940, 754982685, 754983197, 754982430, 754982175, 754981920, 754981665, 754981410, 754981155, 754980900, 754980645, 754980390, 754980135, 754979880, 754979625, 754979370, 754979115, 754978860, 754978605, 754983962, 754983707, 754984219, 754983452, 754984476, 754984733, 754984990, 754985247, 754985504, 754985761, 754986018, 754986275, 754986532, 754986789, 754987046, 754987303, 754987560, 754978350, 754978095, 754977840, 754977585, 754977330, 754977075, 754976820, 754976565, 754976310, 754976055, 754975800, 754989102, 754989359, 754989616, 754989873, 754990130, 754990387, 754990644, 754990901, 754991158, 754991415, 754991672, 754975545, 754991929, 754992186, 754992443, 754975290, 754975035, 754974780, 754992700, 754975296, 754975039, 754974782, 754981980, 754981723, 754981466, 754981209, 754980952, 754980695, 754980438, 754980181, 754979924, 754983004, 754983259, 754983514, 754983769, 754984024, 754984279, 754984534, 754984789, 754985044, 754979667, 754985299, 754979410, 754985554, 754979153, 754985809, 754978896, 754986064, 754978639, 754978382, 754978125, 754977868, 754977611, 754977354, 754977097, 754976840, 754976583, 754976326, 754976069, 754975812, 754975555, 754988114, 754988369, 754988624, 754988879, 754989134, 754989389, 754989644, 754989899, 754990154, 754990409, 754990664, 754990919, 754991174, 754991429, 754991684, 754991939, 754975298, 754992194, 754975041, 754992449, 754992704, 754992959, 754992957, 754993214, 754982939, 754982684, 754983196, 754982429, 754982174, 754981919, 754981664, 754981409, 754981154, 754980899, 754980644, 754980389, 754980134, 754979879, 754979624, 754979369, 754979114, 754978859, 754978604, 754978349, 754983961, 754983706, 754984218, 754983451, 754984475, 754984732, 754984989, 754985246, 754985503, 754985760, 754986017, 754986274, 754986531, 754986788, 754987045, 754987302, 754987559, 754987816, 754978094, 754977839, 754977584, 754977329, 754977074, 754976819, 754976564, 754976309, 754976054, 754975799, 754975544, 754989101, 754989358, 754989615, 754989872, 754990129, 754990386, 754990643, 754990900, 754991157, 754991414, 754991671, 754991928, 754975289, 754992185, 754992442, 754992699, 754975034, 754974779, 754992956, 754975040, 754974783, 754981981, 754981724, 754982236, 754981467, 754981210, 754980953, 754980439, 754980182, 754979925, 754979668, 754983005, 754982748, 754983260, 754983515, 754983770, 754984025, 754984280, 754984535, 754984790, 754985045, 754985300, 754979411, 754985555, 754979154, 754985810, 754978897, 754986065, 754978640, 754978383, 754978126, 754977869, 754977612, 754977355, 754977098, 754976841, 754976584, 754976327, 754976070, 754975813, 754975556, 754975299, 754988370, 754988625, 754988880, 754989135, 754989390, 754989645, 754989900, 754990155, 754990410, 754990665, 754990920, 754991175, 754991430, 754991685, 754991940, 754992195, 754975042, 754992450, 754974785, 754992705, 754992960, 754993215, 754993213, 754993470, 754982938, 754982683, 754983195, 754982428, 754982173, 754981918, 754981663, 754981408, 754981153, 754980898, 754980643, 754980388, 754980133, 754979878, 754979623, 754979368, 754979113, 754978858, 754978603, 754978348, 754978093, 754983960, 754983705, 754984217, 754983450, 754984474, 754984731, 754984988, 754985245, 754985502, 754985759, 754986016, 754986273, 754986530, 754986787, 754987044, 754987301, 754987558, 754987815, 754988072, 754977838, 754977583, 754977328, 754977073, 754976818, 754976563, 754976308, 754976053, 754975798, 754975543, 754975288, 754989100, 754989357, 754989614, 754989871, 754990128, 754990385, 754990642, 754990899, 754991156, 754991413, 754991670, 754991927, 754992184, 754975033, 754992441, 754992698, 754992955, 754974778, 754993212, 754974784, 754981982, 754981725, 754982237, 754981468, 754982492, 754981211, 754980954, 754980697, 754980440, 754980183, 754979926, 754979669, 754979412, 754983006, 754982749, 754983261, 754983516, 754983771, 754984026, 754984281, 754984536, 754984791, 754985046, 754985301, 754985556, 754979155, 754985811, 754978898, 754986066, 754978641, 754978384, 754978127, 754977870, 754977613, 754977356, 754977099, 754976842, 754976585, 754976328, 754976071, 754975814, 754975557, 754975300, 754975043, 754988626, 754988881, 754989136, 754989391, 754989646, 754989901, 754990156, 754990411, 754990666, 754990921, 754991176, 754991431, 754991686, 754991941, 754992196, 754992451, 754974786, 754992706, 754992961, 754993216, 754993471, 754993469, 754993726, 754982937, 754982682, 754983194, 754982427, 754982172, 754981917, 754981662, 754981407, 754981152, 754980897, 754980642, 754980387, 754980132, 754979877, 754979622, 754979367, 754979112, 754978857, 754978602, 754978347, 754978092, 754977837, 754983959, 754983704, 754984216, 754983449, 754984473, 754984730, 754984987, 754985244, 754985501, 754985758, 754986015, 754986272, 754986529, 754986786, 754987043, 754987300, 754987557, 754987814, 754988071, 754988328, 754977582, 754977327, 754977072, 754976562, 754976307, 754976052, 754975797, 754975542, 754975287, 754975032, 754989099, 754989356, 754989613, 754989870, 754990127, 754990384, 754990641, 754990898, 754991155, 754991412, 754991669, 754991926, 754992183, 754992440, 754974777, 754992697, 754992954, 754993211, 754993468, 754981983, 754981726, 754982238, 754981469, 754982493, 754981212, 754980955, 754980698, 754980441, 754980184, 754979927, 754979670, 754979413, 754979156, 754983007, 754982750, 754983262, 754983517, 754983772, 754984027, 754984282, 754984537, 754984792, 754985047, 754985302, 754985557, 754985812, 754978899, 754986067, 754978642, 754978385, 754978128, 754977871, 754977614, 754977357, 754977100, 754976843, 754976586, 754976329, 754976072, 754975815, 754975558, 754975301, 754975044, 754974787, 754988882, 754989137, 754989392, 754989647, 754989902, 754990157, 754990412, 754990667, 754990922, 754991177, 754991432, 754991687, 754991942, 754992197, 754992452, 754992707, 754992962, 754993217, 754993472, 754993727, 754993725, 754993982, 754982936, 754982681, 754983193, 754982426, 754982171, 754981916, 754981661, 754981406, 754981151, 754980896, 754980641, 754980386, 754980131, 754979876, 754979621, 754979366, 754979111, 754978856, 754978601, 754978346, 754978091, 754977836, 754977581, 754983958, 754983703, 754984215, 754983448, 754984472, 754984729, 754984986, 754985243, 754985500, 754985757, 754986014, 754986271, 754986528, 754986785, 754987042, 754987299, 754987556, 754987813, 754988070, 754988327, 754988584, 754977326, 754977071, 754976816, 754976561, 754976306, 754976051, 754975796, 754975541, 754975286, 754975031, 754974776, 754989098, 754989355, 754989612, 754989869, 754990126, 754990383, 754990640, 754990897, 754991154, 754991411, 754991668, 754991925, 754992182, 754992439, 754992696, 754992953, 754993210, 754993467, 754993724, 754981984, 754981727, 754982239, 754981470, 754982494, 754981213, 754980956, 754980699, 754980442, 754980185, 754979928, 754979671, 754979414, 754979157, 754978900, 754983008, 754982751, 754983263, 754983518, 754983773, 754984028, 754984283, 754984538, 754984793, 754985048, 754985303, 754985558, 754985813, 754986068, 754978643, 754978386, 754978129, 754977872, 754977615, 754977358, 754977101, 754976844, 754976587, 754976330, 754976073, 754975816, 754975559, 754975302, 754975045, 754974788, 754989138, 754989393, 754989648, 754989903, 754990158, 754990413, 754990668, 754990923, 754991178, 754991433, 754991688, 754991943, 754992198, 754992453, 754992708, 754992963, 754993218, 754993473, 754993728, 754993983, 754993981, 754994238, 754982935, 754982680, 754983192, 754982425, 754982170, 754981915, 754981660, 754981405, 754981150, 754980895, 754980640, 754980385, 754980130, 754979875, 754979620, 754979365, 754979110, 754978855, 754978600, 754978345, 754978090, 754977835, 754977580, 754977325, 754983957, 754983702, 754984214, 754983447, 754984471, 754984728, 754984985, 754985242, 754985499, 754985756, 754986013, 754986270, 754986527, 754986784, 754987041, 754987298, 754987555, 754987812, 754988069, 754988326, 754988583, 754988840, 754977070, 754976815, 754976560, 754976305, 754976050, 754975795, 754975540, 754975285, 754975030, 754974775, 754989097, 754989354, 754989611, 754989868, 754990125, 754990382, 754990639, 754990896, 754991153, 754991410, 754991667, 754991924, 754992181, 754992438, 754992695, 754992952, 754993209, 754993466, 754993723, 754993980, 754981728, 754982240, 754981471, 754982495, 754981214, 754980957, 754980700, 754980443, 754980186, 754979929, 754979672, 754979415, 754979158, 754978901, 754978644, 754982752, 754983264, 754983519, 754983774, 754984029, 754984284, 754984539, 754984794, 754985049, 754985304, 754985559, 754985814, 754986069, 754978387, 754978130, 754977873, 754977616, 754977359, 754977102, 754976845, 754976331, 754976074, 754975817, 754975560, 754975303, 754975046, 754974789, 754989394, 754989649, 754989904, 754990159, 754990414, 754990669, 754990924, 754991179, 754991434, 754991689, 754991944, 754992199, 754992454, 754992709, 754992964, 754993219, 754993474, 754993729, 754993984, 754994239, 754994237, 754994494, 754982934, 754982679, 754983191, 754982424, 754982169, 754981914, 754981659, 754981404, 754981149, 754980894, 754980639, 754980384, 754980129, 754979874, 754979619, 754979364, 754979109, 754978854, 754978599, 754978344, 754978089, 754977834, 754977579, 754977324, 754977069, 754983956, 754983701, 754984213, 754983446, 754984470, 754984727, 754984984, 754985241, 754985498, 754985755, 754986012, 754986269, 754986526, 754986783, 754987040, 754987297, 754987554, 754987811, 754988068, 754988325, 754988582, 754988839, 754989096, 754976814, 754976559, 754976304, 754976049, 754975794, 754975539, 754975284, 754975029, 754974774, 754989353, 754989610, 754989867, 754990124, 754990381, 754990638, 754990895, 754991152, 754991409, 754991666, 754991923, 754992180, 754992437, 754992694, 754992951, 754993208, 754993465, 754993722, 754993979, 754994236, 754981472, 754982496, 754981215, 754980958, 754980701, 754980444, 754980187, 754979930, 754979673, 754979416, 754979159, 754978902, 754978645, 754978388, 754983520, 754983775, 754984030, 754984285, 754984540, 754984795, 754985050, 754985305, 754985560, 754985815, 754986070, 754978131, 754977874, 754977617, 754977360, 754977103, 754976846, 754976589, 754976332, 754976075, 754975818, 754975561, 754975304, 754975047, 754974790, 754989650, 754989905, 754990160, 754990415, 754990670, 754990925, 754991180, 754991435, 754991690, 754991945, 754992200, 754992455, 754992710, 754992965, 754993220, 754993475, 754993730, 754993985, 754994240, 754994495, 754994493, 754994750, 754982933, 754982678, 754983190, 754982423, 754982168, 754981913, 754981658, 754981403, 754981148, 754980893, 754980638, 754980383, 754980128, 754979873, 754979618, 754979363, 754979108, 754978853, 754978598, 754978343, 754978088, 754977833, 754977578, 754977323, 754977068, 754976813, 754983955, 754983700, 754984212, 754983445, 754984469, 754984726, 754984983, 754985240, 754985497, 754985754, 754986011, 754986268, 754986525, 754986782, 754987039, 754987296, 754987553, 754987810, 754988067, 754988324, 754988581, 754988838, 754989095, 754989352, 754976558, 754976303, 754976048, 754975793, 754975538, 754975283, 754975028, 754974773, 754989609, 754989866, 754990123, 754990380, 754990637, 754990894, 754991151, 754991408, 754991665, 754991922, 754992179, 754992436, 754992693, 754992950, 754993207, 754993464, 754993721, 754993978, 754994235, 754994492, 754981216, 754980959, 754980702, 754980445, 754980188, 754979931, 754979674, 754979417, 754979160, 754978903, 754978646, 754978389, 754978132, 754983776, 754984031, 754984286, 754984541, 754984796, 754985051, 754985306, 754985561, 754985816, 754986071, 754977875, 754977618, 754977361, 754977104, 754976847, 754976590, 754976333, 754976076, 754975819, 754975562, 754975305, 754975048, 754974791, 754989906, 754990161, 754990416, 754990671, 754990926, 754991181, 754991436, 754991691, 754991946, 754992201, 754992456, 754992711, 754992966, 754993221, 754993476, 754993731, 754993986, 754994241, 754994496, 754994751, 754994749, 754995006, 754982932, 754982677, 754983189, 754982422, 754982167, 754981912, 754981657, 754981402, 754981147, 754980892, 754980637, 754980382, 754980127, 754979872, 754979617, 754979362, 754979107, 754978852, 754978597, 754978342, 754978087, 754977832, 754977577, 754977322, 754977067, 754976812, 754976557, 754983954, 754983699, 754984211, 754983444, 754984468, 754984725, 754984982, 754985239, 754985496, 754985753, 754986010, 754986267, 754986524, 754986781, 754987038, 754987295, 754987552, 754987809, 754988066, 754988323, 754988580, 754988837, 754989094, 754989351, 754989608, 754976302, 754976047, 754975792, 754975537, 754975282, 754975027, 754974772, 754989865, 754990122, 754990379, 754990636, 754990893, 754991150, 754991407, 754991664, 754991921, 754992178, 754992435, 754992692, 754992949, 754993206, 754993463, 754993720, 754993977, 754994234, 754994491, 754994748, 754980960, 754980703, 754980446, 754980189, 754979932, 754979675, 754979418, 754979161, 754978904, 754978647, 754978390, 754978133, 754977876, 754984032, 754984287, 754984542, 754984797, 754985052, 754985307, 754985562, 754985817, 754986072, 754977619, 754977362, 754977105, 754976848, 754976591, 754976334, 754976077, 754975820, 754975563, 754975306, 754975049, 754974792, 754990162, 754990417, 754990672, 754990927, 754991182, 754991437, 754991692, 754991947, 754992202, 754992457, 754992712, 754992967, 754993222, 754993477, 754993732, 754993987, 754994242, 754994497, 754994752, 754995007, 754995005, 754995262, 754982931, 754982676, 754983188, 754982421, 754982166, 754981911, 754981656, 754981401, 754981146, 754980891, 754980636, 754980381, 754980126, 754979871, 754979616, 754979361, 754979106, 754978851, 754978596, 754978341, 754978086, 754977831, 754977576, 754977321, 754976811, 754976556, 754976301, 754983953, 754983698, 754984210, 754983443, 754984467, 754984724, 754984981, 754985238, 754985495, 754985752, 754986009, 754986266, 754986523, 754986780, 754987037, 754987294, 754987551, 754987808, 754988065, 754988322, 754988579, 754988836, 754989093, 754989350, 754989607, 754989864, 754976046, 754975791, 754975536, 754975281, 754975026, 754974771, 754990121, 754990378, 754990635, 754990892, 754991149, 754991406, 754991663, 754991920, 754992177, 754992434, 754992691, 754992948, 754993205, 754993462, 754993719, 754993976, 754994233, 754994490, 754994747, 754995004, 754980704, 754980447, 754980190, 754979933, 754979676, 754979419, 754979162, 754978905, 754978648, 754978391, 754978134, 754977877, 754977620, 754984288, 754984543, 754984798, 754985053, 754985308, 754985563, 754985818, 754986073, 754977363, 754977106, 754976849, 754976592, 754976335, 754976078, 754975821, 754975564, 754975307, 754975050, 754974793, 754990418, 754990673, 754990928, 754991183, 754991438, 754991693, 754991948, 754992203, 754992458, 754992713, 754992968, 754993223, 754993478, 754993733, 754993988, 754994243, 754994498, 754994753, 754995008, 754995263, 754995261, 754995518, 754982930, 754982675, 754983187, 754982420, 754982165, 754981910, 754981655, 754981400, 754981145, 754980890, 754980635, 754980380, 754980125, 754979870, 754979615, 754979360, 754979105, 754978850, 754978595, 754978340, 754978085, 754977830, 754977575, 754977320, 754976555, 754976300, 754976045, 754983952, 754983697, 754984209, 754983442, 754984466, 754984723, 754984980, 754985237, 754985494, 754985751, 754986008, 754986265, 754986522, 754986779, 754987036, 754987293, 754987550, 754987807, 754988064, 754988321, 754988578, 754988835, 754989092, 754989349, 754989606, 754989863, 754990120, 754975790, 754975535, 754975280, 754975025, 754974770, 754990377, 754990634, 754990891, 754991148, 754991405, 754991662, 754991919, 754992176, 754992433, 754992690, 754992947, 754993204, 754993461, 754993718, 754993975, 754994232, 754994489, 754994746, 754995003, 754995260, 754980448, 754980191, 754979934, 754979677, 754979420, 754979163, 754978906, 754978649, 754978392, 754978135, 754977878, 754977621, 754977364, 754984544, 754984799, 754985054, 754985309, 754985564, 754985819, 754986074, 754977107, 754976850, 754976593, 754976336, 754976079, 754975822, 754975565, 754975308, 754975051, 754974794, 754990674, 754990929, 754991184, 754991439, 754991694, 754991949, 754992204, 754992459, 754992714, 754992969, 754993224, 754993479, 754993734, 754993989, 754994244, 754994499, 754994754, 754995009, 754995264, 754995519, 754995517, 754995774, 754982929, 754982674, 754983186, 754982419, 754982164, 754981909, 754981654, 754981399, 754981144, 754980889, 754980634, 754980379, 754980124, 754979869, 754979614, 754979359, 754979104, 754978849, 754978594, 754978339, 754978084, 754977829, 754977574, 754977319, 754976299, 754976044, 754975789, 754983951, 754983696, 754984208, 754983441, 754984465, 754984722, 754984979, 754985236, 754985493, 754985750, 754986007, 754986264, 754986521, 754986778, 754987035, 754987292, 754987549, 754987806, 754988063, 754988320, 754988577, 754988834, 754989091, 754989348, 754989605, 754989862, 754990119, 754990376, 754975534, 754975279, 754975024, 754974769, 754990633, 754990890, 754991147, 754991404, 754991661, 754991918, 754992175, 754992432, 754992689, 754992946, 754993203, 754993460, 754993717, 754993974, 754994231, 754994488, 754994745, 754995002, 754995259, 754995516, 754980192, 754979935, 754979678, 754979421, 754979164, 754978907, 754978650, 754978393, 754978136, 754977879, 754977622, 754977365, 754977108, 754984800, 754985055, 754985310, 754985565, 754985820, 754986075, 754986330, 754976851, 754976594, 754976337, 754976080, 754975823, 754975566, 754975309, 754975052, 754974795, 754990930, 754991185, 754991440, 754991695, 754991950, 754992205, 754992460, 754992715, 754992970, 754993225, 754993480, 754993735, 754993990, 754994245, 754994500, 754994755, 754995010, 754995265, 754995520, 754995775, 754995773, 754996030, 754982928, 754982673, 754983185, 754982418, 754982163, 754981653, 754981398, 754981143, 754980888, 754980633, 754980378, 754980123, 754979868, 754979613, 754979358, 754979103, 754978848, 754978593, 754978338, 754978083, 754977828, 754977573, 754977318, 754977063, 754976298, 754976043, 754975788, 754975533, 754983950, 754983695, 754984207, 754983440, 754984464, 754984721, 754984978, 754985235, 754985492, 754985749, 754986006, 754986263, 754986520, 754986777, 754987034, 754987291, 754987548, 754987805, 754988062, 754988319, 754988576, 754988833, 754989090, 754989347, 754989604, 754989861, 754990118, 754990375, 754990632, 754975278, 754975023, 754974768, 754990889, 754991146, 754991403, 754991660, 754991917, 754992174, 754992431, 754992688, 754992945, 754993202, 754993459, 754993716, 754993973, 754994230, 754994487, 754994744, 754995001, 754995258, 754995515, 754995772, 754979936, 754979679, 754979422, 754979165, 754978908, 754978651, 754978394, 754978137, 754977880, 754977623, 754977366, 754977109, 754976852, 754985056, 754985311, 754985566, 754985821, 754986076, 754986331, 754986586, 754976595, 754976338, 754976081, 754975824, 754975567, 754975310, 754975053, 754974796, 754991186, 754991441, 754991696, 754991951, 754992206, 754992461, 754992716, 754992971, 754993226, 754993481, 754993736, 754993991, 754994246, 754994501, 754994756, 754995011, 754995266, 754995521, 754995776, 754996031, 754996029, 754996286, 754982927, 754982672, 754983184, 754982417, 754982162, 754981907, 754981652, 754981397, 754981142, 754980887, 754980632, 754980377, 754980122, 754979867, 754979612, 754979357, 754979102, 754978847, 754978592, 754978337, 754978082, 754977827, 754977572, 754977317, 754977062, 754976807, 754976297, 754976042, 754975787, 754975532, 754975277, 754983949, 754983694, 754984206, 754983439, 754984463, 754984720, 754984977, 754985234, 754985491, 754985748, 754986005, 754986262, 754986519, 754986776, 754987033, 754987290, 754987547, 754987804, 754988061, 754988318, 754988575, 754988832, 754989089, 754989346, 754989603, 754989860, 754990117, 754990374, 754990631, 754990888, 754975022, 754974767, 754991145, 754991402, 754991659, 754991916, 754992173, 754992430, 754992687, 754992944, 754993201, 754993458, 754993715, 754993972, 754994229, 754994486, 754994743, 754995000, 754995257, 754995514, 754995771, 754996028, 754979680, 754979423, 754979166, 754978909, 754978652, 754978395, 754978138, 754977881, 754977624, 754977367, 754977110, 754976853, 754976596, 754985312, 754985567, 754985822, 754986077, 754986332, 754986587, 754986842, 754976339, 754976082, 754975825, 754975568, 754975311, 754975054, 754974797, 754991442, 754991697, 754991952, 754992207, 754992462, 754992717, 754992972, 754993227, 754993482, 754993737, 754993992, 754994247, 754994502, 754994757, 754995012, 754995267, 754995522, 754995777, 754996032, 754996287, 754996285, 754996542, 754982926, 754982671, 754983183, 754982416, 754982161, 754981906, 754981651, 754981396, 754981141, 754980886, 754980631, 754980376, 754979866, 754979611, 754979356, 754979101, 754978846, 754978591, 754978336, 754978081, 754977826, 754977571, 754977316, 754977061, 754976806, 754976551, 754976296, 754976041, 754975786, 754975531, 754975276, 754975021, 754983693, 754984205, 754983438, 754984462, 754984719, 754984976, 754985233, 754985490, 754985747, 754986004, 754986518, 754986775, 754987032, 754987289, 754987546, 754987803, 754988060, 754988317, 754988574, 754988831, 754989088, 754989345, 754989602, 754989859, 754990116, 754990373, 754990630, 754990887, 754991144, 754974766, 754991401, 754991658, 754991915, 754992172, 754992429, 754992686, 754992943, 754993200, 754993457, 754993714, 754994228, 754994485, 754994742, 754994999, 754995256, 754995513, 754995770, 754996027, 754996284, 754979424, 754979167, 754978910, 754978653, 754978396, 754978139, 754977882, 754977625, 754977368, 754977111, 754976854, 754976597, 754976340, 754985568, 754985823, 754986078, 754986333, 754986588, 754986843, 754987098, 754976083, 754975826, 754975569, 754975312, 754975055, 754974798, 754991698, 754991953, 754992208, 754992463, 754992718, 754992973, 754993228, 754993483, 754993738, 754993993, 754994248, 754994503, 754994758, 754995013, 754995268, 754995523, 754995778, 754996033, 754996288, 754996543, 754996541, 754996798, 754982925, 754982670, 754983182, 754982415, 754982160, 754981905, 754981650, 754981395, 754981140, 754980885, 754980630, 754980375, 754980120, 754979865, 754979610, 754979355, 754979100, 754978845, 754978590, 754978335, 754978080, 754977825, 754977570, 754977315, 754977060, 754976805, 754976550, 754976295, 754976040, 754975785, 754975530, 754975275, 754975020, 754974765, 754983437, 754984461, 754984718, 754984975, 754985232, 754985489, 754985746, 754986003, 754986774, 754987031, 754987288, 754987545, 754987802, 754988059, 754988316, 754988573, 754988830, 754989087, 754989344, 754989601, 754989858, 754990115, 754990372, 754990629, 754990886, 754991143, 754991400, 754991657, 754991914, 754992171, 754992428, 754992685, 754992942, 754993199, 754993456, 754993713, 754994484, 754994741, 754994998, 754995255, 754995512, 754995769, 754996026, 754996283, 754996540, 754979168, 754978911, 754978654, 754978397, 754978140, 754977883, 754977626, 754977369, 754977112, 754976855, 754976598, 754976341, 754976084, 754985824, 754986079, 754986334, 754986589, 754986844, 754987099, 754987354, 754975827, 754975570, 754975313, 754975056, 754974799, 754991699, 754991954, 754992209, 754992464, 754992719, 754992974, 754993229, 754993484, 754993739, 754993994, 754994249, 754994504, 754994759, 754995014, 754995269, 754995524, 754995779, 754996034, 754996289, 754996544, 754996799, 754996797, 754997054, 754982669, 754983181, 754982414, 754982159, 754981904, 754981649, 754981394, 754981139, 754980884, 754980629, 754980374, 754980119, 754979864, 754979609, 754979354, 754979099, 754978844, 754978589, 754978334, 754977824, 754977569, 754977314, 754977059, 754976804, 754976549, 754976294, 754976039, 754975784, 754975529, 754975274, 754975019, 754974764, 754984717, 754984974, 754985231, 754985488, 754985745, 754986002, 754987030, 754987287, 754987544, 754987801, 754988058, 754988315, 754988572, 754988829, 754989086, 754989343, 754989600, 754989857, 754990114, 754990371, 754990628, 754990885, 754991142, 754991399, 754991656, 754991913, 754992170, 754992427, 754992684, 754992941, 754993198, 754993455, 754993712, 754994740, 754994997, 754995254, 754995511, 754995768, 754996025, 754996282, 754996539, 754996796, 754978912, 754978655, 754978398, 754978141, 754977884, 754977627, 754977370, 754977113, 754976856, 754976599, 754976342, 754976085, 754975828, 754986080, 754986335, 754986590, 754986845, 754987100, 754987355, 754987610, 754975571, 754975314, 754975057, 754974800, 754991700, 754991955, 754992210, 754992465, 754992720, 754992975, 754993230, 754993485, 754993740, 754993995, 754994250, 754994505, 754994760, 754995015, 754995270, 754995525, 754995780, 754996035, 754996290, 754996545, 754996800, 754997055, 754997053, 754997310, 754982413, 754982158, 754981903, 754981648, 754981393, 754981138, 754980883, 754980628, 754980373, 754980118, 754979863, 754979608, 754979353, 754979098, 754978843, 754978588, 754978333, 754977568, 754977313, 754977058, 754976803, 754976548, 754976293, 754976038, 754975783, 754975528, 754975273, 754975018, 754974763, 754984973, 754985230, 754985487, 754985744, 754986001, 754987286, 754987543, 754987800, 754988057, 754988314, 754988571, 754988828, 754989085, 754989342, 754989599, 754989856, 754990113, 754990370, 754990627, 754990884, 754991141, 754991398, 754991655, 754991912, 754992169, 754992426, 754992683, 754992940, 754993197, 754993454, 754993711, 754994996, 754995253, 754995510, 754995767, 754996024, 754996281, 754996538, 754996795, 754997052, 754978656, 754978399, 754978142, 754977885, 754977628, 754977371, 754977114, 754976857, 754976600, 754976343, 754976086, 754975829, 754975572, 754986336, 754986591, 754986846, 754987101, 754987356, 754987611, 754987866, 754975315, 754975058, 754974801, 754991701, 754991956, 754992211, 754992466, 754992721, 754992976, 754993231, 754993486, 754993741, 754993996, 754994251, 754994506, 754994761, 754995016, 754995271, 754995526, 754995781, 754996036, 754996291, 754996546, 754996801, 754997056, 754997311, 754997309, 754982412, 754982157, 754981902, 754981647, 754981392, 754981137, 754980882, 754980627, 754980372, 754980117, 754979862, 754979607, 754979352, 754978842, 754978587, 754978332, 754977312, 754977057, 754976802, 754976547, 754976292, 754976037, 754975782, 754975527, 754975272, 754975017, 754974762, 754985229, 754985486, 754985743, 754986000, 754987542, 754987799, 754988056, 754988313, 754988570, 754988827, 754989084, 754989341, 754989598, 754989855, 754990112, 754990369, 754990626, 754990883, 754991140, 754991397, 754991654, 754991911, 754992168, 754992425, 754992682, 754992939, 754993196, 754993453, 754993710, 754995252, 754995509, 754995766, 754996023, 754996280, 754996537, 754996794, 754997051, 754997308, 754978400, 754978143, 754977886, 754977629, 754977372, 754977115, 754976858, 754976601, 754976344, 754976087, 754975830, 754975573, 754975316, 754986592, 754986847, 754987102, 754987357, 754987612, 754987867, 754988122, 754975059, 754974802, 754991702, 754991957, 754992212, 754992467, 754992722, 754992977, 754993232, 754993487, 754993742, 754993997, 754994252, 754994507, 754994762, 754995017, 754995272, 754995527, 754995782, 754996037, 754996292, 754996547, 754996802, 754997057, 754997312, 754997567, 754997565, 754982411, 754982156, 754981901, 754981646, 754981391, 754981136, 754980881, 754980626, 754980371, 754980116, 754979861, 754979606, 754979351, 754978586, 754978331, 754978076, 754977311, 754977056, 754976801, 754976546, 754976291, 754976036, 754975781, 754975526, 754975271, 754975016, 754974761, 754985485, 754985742, 754985999, 754987798, 754988055, 754988312, 754988569, 754988826, 754989083, 754989340, 754989597, 754989854, 754990111, 754990368, 754990625, 754990882, 754991139, 754991396, 754991653, 754991910, 754992167, 754992424, 754992681, 754992938, 754993195, 754993452, 754993709, 754995508, 754995765, 754996022, 754996279, 754996536, 754996793, 754997050, 754997307, 754997564, 754978144, 754977887, 754977630, 754977373, 754977116, 754976859, 754976602, 754976345, 754976088, 754975831, 754975574, 754975317, 754975060, 754986848, 754987103, 754987358, 754987613, 754987868, 754988123, 754988378, 754974803, 754991703, 754991958, 754992213, 754992468, 754992723, 754992978, 754993233, 754993488, 754993743, 754993998, 754994253, 754994508, 754994763, 754995018, 754995273, 754995528, 754995783, 754996038, 754996293, 754996548, 754996803, 754997058, 754997313, 754997568, 754997823, 754997821, 754982410, 754982155, 754981900, 754981645, 754981390, 754981135, 754980880, 754980625, 754980370, 754980115, 754979860, 754979605, 754979350, 754978330, 754978075, 754977820, 754977310, 754977055, 754976800, 754976545, 754976290, 754976035, 754975780, 754975525, 754975270, 754975015, 754974760, 754985741, 754985998, 754988054, 754988311, 754988568, 754988825, 754989082, 754989339, 754989596, 754989853, 754990110, 754990367, 754990624, 754990881, 754991138, 754991395, 754991652, 754991909, 754992166, 754992423, 754992680, 754992937, 754993194, 754993451, 754993708, 754995764, 754996021, 754996278, 754996535, 754996792, 754997049, 754997306, 754997563, 754997820, 754977888, 754977631, 754977374, 754977117, 754976860, 754976603, 754976346, 754976089, 754975832, 754975575, 754975318, 754975061, 754974804, 754987104, 754987359, 754987614, 754987869, 754988124, 754988379, 754988634, 754991704, 754991959, 754992214, 754992469, 754992724, 754992979, 754993234, 754993489, 754993744, 754993999, 754994254, 754994509, 754994764, 754995019, 754995274, 754995529, 754995784, 754996039, 754996294, 754996549, 754996804, 754997059, 754997314, 754997569, 754997824, 754997822, 754998079, 754998077, 754982409, 754982154, 754981899, 754981644, 754981389, 754981134, 754980879, 754980624, 754980369, 754980114, 754979859, 754979604, 754979349, 754979094, 754978329, 754978074, 754977819, 754977564, 754977309, 754977054, 754976799, 754976544, 754976289, 754976034, 754975779, 754975524, 754975269, 754975014, 754974759, 754985997, 754988053, 754988310, 754988567, 754988824, 754989081, 754989338, 754989595, 754989852, 754990109, 754990366, 754990623, 754990880, 754991137, 754991394, 754991651, 754991908, 754992165, 754992422, 754992679, 754992936, 754993193, 754993450, 754993707, 754993964, 754996020, 754996277, 754996534, 754996791, 754997048, 754997305, 754997562, 754997819, 754998076, 754977632, 754977375, 754977118, 754976861, 754976604, 754976347, 754976090, 754975833, 754975576, 754975319, 754975062, 754974805, 754987360, 754987615, 754987870, 754988125, 754988380, 754988635, 754988890, 754991705, 754991960, 754992215, 754992470, 754992725, 754992980, 754993235, 754993490, 754993745, 754994000, 754994255, 754994510, 754994765, 754995020, 754995275, 754995530, 754995785, 754996040, 754996295, 754996550, 754996805, 754997060, 754997315, 754997570, 754997825, 754998080, 754998078, 754998335, 754998333, 754982408, 754982153, 754981898, 754981643, 754981388, 754981133, 754980878, 754980623, 754980368, 754980113, 754979858, 754979603, 754979348, 754979093, 754978838, 754978328, 754978073, 754977818, 754977563, 754977308, 754977053, 754976798, 754976543, 754976288, 754976033, 754975778, 754975523, 754975268, 754975013, 754974758, 754988052, 754988309, 754988566, 754988823, 754989080, 754989337, 754989594, 754989851, 754990108, 754990365, 754990622, 754990879, 754991136, 754991393, 754991650, 754991907, 754992164, 754992421, 754992678, 754992935, 754993192, 754993449, 754993706, 754993963, 754994220, 754996276, 754996533, 754996790, 754997047, 754997304, 754997561, 754997818, 754998075, 754998332, 754977376, 754977119, 754976862, 754976605, 754976348, 754976091, 754975834, 754975577, 754975320, 754975063, 754974806, 754987616, 754987871, 754988126, 754988381, 754988636, 754988891, 754989146, 754991706, 754991961, 754992216, 754992471, 754992726, 754992981, 754993236, 754993491, 754993746, 754994001, 754994256, 754994511, 754994766, 754995021, 754995276, 754995531, 754995786, 754996041, 754996296, 754996551, 754996806, 754997061, 754997316, 754997571, 754997826, 754998081, 754998336, 754998334, 754998591, 754998589, 754982407, 754982152, 754981897, 754981642, 754981387, 754981132, 754980877, 754980622, 754980367, 754980112, 754979857, 754979602, 754979347, 754979092, 754978837, 754978582, 754978327, 754978072, 754977817, 754977562, 754977307, 754977052, 754976797, 754976542, 754976287, 754976032, 754975777, 754975522, 754975267, 754975012, 754974757, 754988051, 754988308, 754988565, 754988822, 754989079, 754989336, 754989593, 754989850, 754990107, 754990364, 754990621, 754990878, 754991135, 754991392, 754991649, 754991906, 754992163, 754992420, 754992677, 754992934, 754993191, 754993448, 754993705, 754993962, 754994219, 754994476, 754996532, 754996789, 754997046, 754997303, 754997560, 754997817, 754998074, 754998331, 754998588, 754977120, 754976863, 754976606, 754976349, 754976092, 754975835, 754975578, 754975321, 754975064, 754974807, 754987872, 754988127, 754988382, 754988637, 754988892, 754989147, 754989402, 754991707, 754991450, 754991962, 754992217, 754992472, 754992727, 754992982, 754993237, 754993492, 754993747, 754994002, 754994257, 754994512, 754994767, 754995022, 754995277, 754995532, 754995787, 754996042, 754996297, 754996552, 754996807, 754997062, 754997317, 754997572, 754997827, 754998082, 754998337, 754998592, 754998590, 754998847, 754998845, 754982406, 754982151, 754981896, 754981641, 754981386, 754981131, 754980876, 754980621, 754980366, 754980111, 754979856, 754979601, 754979346, 754979091, 754978836, 754978581, 754978326, 754978071, 754977816, 754977561, 754977306, 754977051, 754976796, 754976541, 754976286, 754976031, 754975776, 754975521, 754975266, 754975011, 754974756, 754988050, 754988307, 754988564, 754988821, 754989078, 754989335, 754989592, 754989849, 754990106, 754990363, 754990620, 754990877, 754991134, 754991391, 754991648, 754991905, 754992162, 754992419, 754992676, 754992933, 754993190, 754993447, 754993704, 754993961, 754994218, 754994475, 754994732, 754996788, 754997045, 754997302, 754997559, 754997816, 754998073, 754998330, 754998587, 754998844, 754976864, 754976607, 754976350, 754976093, 754975836, 754975579, 754975322, 754975065, 754974808, 754988128, 754988383, 754988638, 754988893, 754989148, 754989403, 754989658, 754991708, 754991451, 754991963, 754991194, 754992218, 754992473, 754992728, 754992983, 754993238, 754993493, 754993748, 754994003, 754994258, 754994513, 754994768, 754995023, 754995278, 754995533, 754995788, 754996043, 754996298, 754996553, 754996808, 754997063, 754997318, 754997573, 754997828, 754998083, 754998338, 754998593, 754998848, 754998846, 754999103, 754999101, 754982405, 754982150, 754981895, 754981640, 754981385, 754981130, 754980875, 754980620, 754980365, 754980110, 754979855, 754979600, 754979345, 754979090, 754978835, 754978580, 754978325, 754978070, 754977815, 754977560, 754977305, 754977050, 754976795, 754976540, 754976285, 754976030, 754975775, 754975520, 754975265, 754975010, 754974755, 754988049, 754988306, 754988563, 754988820, 754989077, 754989334, 754989591, 754989848, 754990105, 754990362, 754990619, 754990876, 754991133, 754991390, 754991647, 754991904, 754992161, 754992418, 754992675, 754992932, 754993189, 754993446, 754993703, 754993960, 754994474, 754994731, 754994988, 754997044, 754997301, 754997558, 754997815, 754998072, 754998329, 754998586, 754998843, 754999100, 754976608, 754976351, 754976094, 754975837, 754975580, 754975323, 754975066, 754974809, 754988384, 754988639, 754988894, 754989149, 754989404, 754989659, 754989914, 754991709, 754991452, 754991964, 754991195, 754992219, 754990938, 754992474, 754992729, 754992984, 754993239, 754993494, 754993749, 754994004, 754994259, 754994514, 754994769, 754995024, 754995279, 754995534, 754995789, 754996044, 754996299, 754996554, 754996809, 754997064, 754997319, 754997574, 754997829, 754998084, 754998339, 754998594, 754998849, 754999104, 754999102, 754999359, 754999357, 754982404, 754982149, 754982661, 754981894, 754981639, 754981384, 754981129, 754980874, 754980619, 754980364, 754980109, 754979854, 754979599, 754979344, 754979089, 754978834, 754978579, 754978324, 754978069, 754977814, 754977559, 754977304, 754977049, 754976794, 754976539, 754976284, 754976029, 754975774, 754975519, 754975264, 754975009, 754974754, 754988048, 754988305, 754988562, 754988819, 754989076, 754989333, 754989590, 754989847, 754990104, 754990361, 754990618, 754990875, 754991132, 754991389, 754991646, 754991903, 754992160, 754992417, 754992674, 754992931, 754993188, 754993445, 754993702, 754993959, 754994730, 754994987, 754995244, 754997300, 754997557, 754997814, 754998071, 754998328, 754998585, 754998842, 754999099, 754999356, 754976352, 754976095, 754975838, 754975581, 754975324, 754975067, 754974810, 754988640, 754988895, 754989150, 754989405, 754989660, 754989915, 754990170, 754991710, 754991453, 754991965, 754991196, 754992220, 754990939, 754992475, 754990682, 754992730, 754992985, 754993240, 754993495, 754993750, 754994005, 754994260, 754994515, 754994770, 754995025, 754995280, 754995535, 754995790, 754996045, 754996300, 754996555, 754996810, 754997065, 754997320, 754997575, 754997830, 754998085, 754998340, 754998595, 754998850, 754999105, 754999360, 754999358, 754982403, 754982148, 754982660, 754981893, 754982917, 754981638, 754981383, 754981128, 754980873, 754980618, 754980363, 754980108, 754979853, 754979598, 754979343, 754979088, 754978833, 754978578, 754978323, 754978068, 754977813, 754977558, 754977303, 754977048, 754976793, 754976538, 754976283, 754976028, 754975773, 754975518, 754975263, 754975008, 754974753, 754988047, 754988304, 754988561, 754988818, 754989075, 754989332, 754989589, 754989846, 754990103, 754990360, 754990617, 754990874, 754991131, 754991388, 754991645, 754991902, 754992159, 754992416, 754992673, 754992930, 754993187, 754993444, 754993701, 754993958, 754994986, 754995243, 754995500, 754997556, 754997813, 754998070, 754998327, 754998584, 754998841, 754999098, 754999355, 754976096, 754975839, 754975582, 754975325, 754975068, 754974811, 754988896, 754989151, 754989406, 754989661, 754989916, 754990171, 754990426, 754991711, 754991454, 754991966, 754991197, 754992221, 754990940, 754992476, 754990683, 754992731, 754992986, 754993241, 754993496, 754993751, 754994006, 754994261, 754994516, 754994771, 754995026, 754995281, 754995536, 754995791, 754996046, 754996301, 754996556, 754996811, 754997066, 754997321, 754997576, 754997831, 754998086, 754998341, 754998596, 754998851, 754999106, 754999361, 754982402, 754982147, 754982659, 754981892, 754982916, 754981637, 754983173, 754981382, 754981127, 754980872, 754980617, 754980362, 754980107, 754979852, 754979597, 754979342, 754978832, 754978577, 754978322, 754978067, 754977812, 754977557, 754977302, 754977047, 754976537, 754976282, 754976027, 754975772, 754975517, 754975262, 754975007, 754974752, 754988046, 754988303, 754988560, 754988817, 754989074, 754989331, 754989588, 754989845, 754990102, 754990359, 754990616, 754990873, 754991130, 754991387, 754991644, 754991901, 754992158, 754992415, 754992672, 754992929, 754993186, 754993443, 754993700, 754993957, 754994214, 754994985, 754995242, 754995499, 754995756, 754997812, 754998069, 754998326, 754998583, 754998840, 754999097, 754999354, 754975840, 754975583, 754975326, 754975069, 754974812, 754989152, 754989407, 754989662, 754989917, 754990172, 754990427, 754991712, 754991455, 754991967, 754991198, 754992222, 754990941, 754992477, 754990684, 754992732, 754992987, 754993242, 754993497, 754993752, 754994007, 754994262, 754994517, 754994772, 754995282, 754995537, 754995792, 754996047, 754996302, 754996557, 754996812, 754997067, 754997322, 754997577, 754997832, 754998087, 754998342, 754998597, 754998852, 754999107, 754999362, 754982401, 754982146, 754982658, 754981891, 754982915, 754981636, 754983172, 754981381, 754983429, 754981126, 754980871, 754980616, 754980361, 754980106, 754979851, 754979596, 754979341, 754979086, 754978831, 754978576, 754978321, 754978066, 754977811, 754977556, 754977301, 754977046, 754976281, 754976026, 754975771, 754975516, 754975261, 754975006, 754974751, 754988045, 754988302, 754988559, 754988816, 754989073, 754989330, 754989587, 754989844, 754990101, 754990358, 754990615, 754990872, 754991129, 754991386, 754991643, 754991900, 754992157, 754992414, 754992671, 754992928, 754993185, 754993442, 754993699, 754993956, 754994213, 754994470, 754994984, 754995241, 754995498, 754995755, 754996012, 754997811, 754998068, 754998325, 754998582, 754998839, 754999096, 754999353, 754975584, 754975327, 754975070, 754974813, 754989408, 754989663, 754989918, 754990173, 754990428, 754991456, 754991968, 754991199, 754992223, 754990942, 754992478, 754990685, 754992733, 754992988, 754993243, 754993498, 754993753, 754994008, 754994263, 754994518, 754994773, 754995028, 754995283, 754995538, 754995793, 754996048, 754996303, 754996558, 754996813, 754997068, 754997323, 754997578, 754997833, 754998088, 754998343, 754998598, 754998853, 754999108, 754999363, 754982400, 754982145, 754982657, 754981890, 754982914, 754981635, 754983171, 754981380, 754983428, 754981125, 754983685, 754980870, 754980615, 754980360, 754980105, 754979850, 754979595, 754979340, 754979085, 754978830, 754978575, 754978320, 754978065, 754977810, 754977555, 754977300, 754977045, 754976025, 754975770, 754975515, 754975260, 754975005, 754974750, 754988044, 754988301, 754988558, 754988815, 754989072, 754989329, 754989586, 754989843, 754990100, 754990357, 754990614, 754990871, 754991128, 754991385, 754991642, 754991899, 754992156, 754992413, 754992670, 754992927, 754993184, 754993441, 754993698, 754993955, 754994212, 754994469, 754994726, 754994983, 754995240, 754995497, 754995754, 754996011, 754996268, 754997810, 754998067, 754998324, 754998581, 754998838, 754999095, 754999352, 754975328, 754975071, 754974814, 754989664, 754989919, 754990174, 754990429, 754991200, 754992224, 754990943, 754992479, 754990686, 754992734, 754992989, 754993244, 754993499, 754993754, 754994009, 754994264, 754994519, 754994774, 754995029, 754995284, 754995539, 754995794, 754996049, 754996304, 754996559, 754996814, 754997069, 754997324, 754997579, 754997834, 754998089, 754998344, 754998599, 754998854, 754999109, 754999364, 754982144, 754982656, 754981889, 754982913, 754981634, 754983170, 754981379, 754983427, 754981124, 754983684, 754980869, 754983941, 754980614, 754980359, 754980104, 754979849, 754979594, 754979339, 754979084, 754978829, 754978574, 754978319, 754978064, 754977809, 754977554, 754977299, 754977044, 754976789, 754976024, 754975769, 754975514, 754975259, 754975004, 754974749, 754988043, 754988300, 754988557, 754988814, 754989071, 754989328, 754989585, 754989842, 754990099, 754990356, 754990613, 754990870, 754991127, 754991384, 754991641, 754991898, 754992155, 754992412, 754992669, 754992926, 754993183, 754993440, 754993697, 754993954, 754994468, 754994725, 754994982, 754995239, 754995496, 754995753, 754996010, 754996267, 754996524, 754997809, 754998066, 754998323, 754998580, 754998837, 754999094, 754999351, 754975072, 754974815, 754989920, 754990175, 754990430, 754990944, 754992480, 754990687, 754992735, 754992990, 754993245, 754993500, 754993755, 754994010, 754994265, 754994520, 754994775, 754995030, 754995285, 754995540, 754995795, 754996050, 754996305, 754996560, 754996815, 754997070, 754997325, 754997580, 754997835, 754998090, 754998345, 754998600, 754998855, 754999110, 754999365, 754981888, 754982912, 754981633, 754983169, 754981378, 754983426, 754981123, 754983683, 754980868, 754983940, 754980613, 754984197, 754980358, 754980103, 754979848, 754979593, 754979338, 754979083, 754978828, 754978573, 754978318, 754978063, 754977808, 754977298, 754977043, 754976788, 754976533, 754976023, 754975768, 754975513, 754975258, 754975003, 754974748, 754988042, 754988299, 754988556, 754988813, 754989070, 754989327, 754989584, 754989841, 754990098, 754990355, 754990612, 754990869, 754991126, 754991383, 754991640, 754991897, 754992154, 754992411, 754992668, 754992925, 754993182, 754993439, 754993696, 754993953, 754994724, 754994981, 754995238, 754995495, 754995752, 754996009, 754996266, 754996523, 754996780, 754997808, 754998065, 754998322, 754998579, 754998836, 754999093, 754999350, 754974816, 754990176, 754990431, 754990688, 754992736, 754992991, 754993246, 754993501, 754993756, 754994011, 754994266, 754994521, 754994776, 754995031, 754995286, 754995541, 754995796, 754996051, 754996306, 754996561, 754996816, 754997071, 754997326, 754997581, 754997836, 754998091, 754998346, 754998601, 754998856, 754999111, 754999366, 754981632, 754983168, 754981377, 754983425, 754981122, 754983682, 754980867, 754983939, 754980612, 754984196, 754980357, 754984453, 754980102, 754979847, 754979592, 754979337, 754979082, 754978827, 754978572, 754978317, 754978062, 754977807, 754977042, 754976787, 754976532, 754976277, 754976022, 754975767, 754975512, 754975257, 754975002, 754974747, 754988041, 754988298, 754988555, 754988812, 754989069, 754989326, 754989583, 754989840, 754990097, 754990354, 754990611, 754990868, 754991125, 754991382, 754991639, 754991896, 754992153, 754992410, 754992667, 754992924, 754993181, 754993438, 754993695, 754993952, 754994209, 754994723, 754994980, 754995237, 754995494, 754995751, 754996008, 754996265, 754996522, 754996779, 754997036, 754997807, 754998064, 754998321, 754998578, 754998835, 754999092, 754999349, 754990432, 754992992, 754993247, 754993502, 754993757, 754994012, 754994267, 754994522, 754994777, 754995032, 754995287, 754995542, 754995797, 754996052, 754996307, 754996562, 754996817, 754997072, 754997327, 754997582, 754997837, 754998092, 754998347, 754998602, 754998857, 754999112, 754999367, 754981376, 754983424, 754981121, 754983681, 754980866, 754983938, 754980611, 754984195, 754980356, 754984452, 754980101, 754984709, 754979846, 754979591, 754979336, 754979081, 754978826, 754978571, 754978316, 754978061, 754977806, 754976786, 754976531, 754976276, 754976021, 754975766, 754975511, 754975256, 754975001, 754974746, 754988040, 754988297, 754988554, 754988811, 754989068, 754989325, 754989582, 754989839, 754990096, 754990353, 754990610, 754990867, 754991124, 754991381, 754991638, 754991895, 754992152, 754992409, 754992666, 754992923, 754993180, 754993437, 754993694, 754993951, 754994208, 754994465, 754994722, 754994979, 754995236, 754995493, 754995750, 754996007, 754996264, 754996521, 754996778, 754997035, 754997292, 754997806, 754998063, 754998320, 754998577, 754998834, 754999091, 754999348, 754993248, 754993503, 754993758, 754994013, 754994268, 754994523, 754994778, 754995033, 754995288, 754995543, 754995798, 754996053, 754996308, 754996563, 754996818, 754997073, 754997328, 754997583, 754997838, 754998093, 754998348, 754998603, 754998858, 754999113, 754999368, 754981120, 754983680, 754980865, 754983937, 754980610, 754984194, 754980355, 754984451, 754980100, 754984708, 754979845, 754984965, 754979590, 754979335, 754979080, 754978825, 754978570, 754978315, 754978060, 754977805, 754977550, 754976785, 754976530, 754976275, 754976020, 754975765, 754975510, 754975255, 754975000, 754974745, 754988039, 754988296, 754988553, 754988810, 754989067, 754989324, 754989581, 754989838, 754990095, 754990352, 754990609, 754990866, 754991123, 754991380, 754991637, 754991894, 754992151, 754992408, 754992665, 754992922, 754993179, 754993436, 754993693, 754993950, 754994207, 754994464, 754994721, 754994978, 754995235, 754995492, 754995749, 754996006, 754996263, 754996520, 754996777, 754997034, 754997291, 754997548, 754997805, 754998062, 754998319, 754998576, 754998833, 754999090, 754999347, 754993504, 754993759, 754994014, 754994269, 754994524, 754994779, 754995034, 754995289, 754995544, 754995799, 754996054, 754996309, 754996564, 754996819, 754997074, 754997329, 754997584, 754997839, 754998094, 754998349, 754998604, 754998859, 754999114, 754999369, 754980864, 754983936, 754980609, 754984193, 754980354, 754984450, 754980099, 754984707, 754979844, 754984964, 754979589, 754985221, 754979334, 754979079, 754978824, 754978569, 754978314, 754978059, 754977804, 754977549, 754977294, 754976784, 754976529, 754976274, 754976019, 754975764, 754975509, 754975254, 754974999, 754974744, 754988038, 754988295, 754988552, 754988809, 754989066, 754989323, 754989580, 754989837, 754990094, 754990351, 754990608, 754990865, 754991122, 754991379, 754991636, 754991893, 754992150, 754992407, 754992664, 754992921, 754993178, 754993435, 754993692, 754993949, 754994206, 754994463, 754994720, 754994977, 754995234, 754995491, 754995748, 754996005, 754996262, 754996519, 754996776, 754997033, 754997290, 754997547, 754997804, 754998061, 754998318, 754998575, 754998832, 754999089, 754999346, 754993760, 754994015, 754994270, 754994525, 754994780, 754995035, 754995290, 754995545, 754995800, 754996055, 754996310, 754996565, 754996820, 754997075, 754997330, 754997585, 754997840, 754998095, 754998350, 754998605, 754998860, 754999115, 754999370, 754980608, 754984192, 754980353, 754984449, 754980098, 754984706, 754979843, 754984963, 754979588, 754985220, 754979333, 754985477, 754979078, 754978823, 754978568, 754978313, 754978058, 754977803, 754977548, 754977293, 754977038, 754976783, 754976528, 754976273, 754976018, 754975763, 754975508, 754975253, 754974998, 754974743, 754988037, 754988294, 754988551, 754988808, 754989065, 754989322, 754989579, 754989836, 754990093, 754990350, 754990607, 754990864, 754991121, 754991378, 754991635, 754991892, 754992149, 754992406, 754992663, 754992920, 754993177, 754993434, 754993691, 754993948, 754994205, 754994462, 754994719, 754994976, 754995233, 754995490, 754995747, 754996004, 754996261, 754996518, 754996775, 754997032, 754997289, 754997546, 754997803, 754998060, 754998317, 754998574, 754998831, 754999088, 754999345, 754994016, 754994271, 754994526, 754994781, 754995036, 754995291, 754995546, 754995801, 754996056, 754996311, 754996566, 754996821, 754997076, 754997331, 754997586, 754997841, 754998096, 754998351, 754998606, 754998861, 754999116, 754999371, 754980352, 754984448, 754980097, 754984705, 754979842, 754984962, 754979587, 754985219, 754979332, 754985476, 754979077, 754985733, 754978822, 754978567, 754978312, 754978057, 754977802, 754977547, 754977292, 754977037, 754976782, 754976527, 754976272, 754976017, 754975762, 754975507, 754975252, 754974997, 754974742, 754988036, 754987781, 754988293, 754988550, 754988807, 754989064, 754989321, 754989578, 754989835, 754990092, 754990349, 754990606, 754990863, 754991120, 754991377, 754991634, 754991891, 754992148, 754992405, 754992662, 754992919, 754993176, 754993433, 754993690, 754993947, 754994204, 754994461, 754994718, 754995232, 754995489, 754995746, 754996003, 754996260, 754996517, 754996774, 754997031, 754997288, 754997545, 754997802, 754998059, 754998316, 754998573, 754998830, 754999087, 754999344, 754994272, 754994527, 754994782, 754995037, 754995292, 754995547, 754995802, 754996057, 754996312, 754996567, 754996822, 754997077, 754997332, 754997587, 754997842, 754998097, 754998352, 754998607, 754998862, 754999117, 754999372, 754980096, 754984704, 754979841, 754984961, 754979586, 754985218, 754979331, 754985475, 754979076, 754985732, 754978821, 754985989, 754978566, 754978311, 754978056, 754977801, 754977546, 754977291, 754977036, 754976781, 754976526, 754976271, 754976016, 754975761, 754975506, 754975251, 754974996, 754974741, 754988035, 754987780, 754988292, 754987525, 754988549, 754988806, 754989063, 754989320, 754989577, 754989834, 754990091, 754990348, 754990605, 754990862, 754991119, 754991376, 754991633, 754991890, 754992147, 754992404, 754992661, 754992918, 754993175, 754993432, 754993689, 754993946, 754994203, 754994460, 754994717, 754995488, 754995745, 754996002, 754996259, 754996516, 754996773, 754997030, 754997287, 754997801, 754998058, 754998315, 754998572, 754998829, 754999086, 754999343, 754994528, 754994783, 754995038, 754995293, 754995548, 754995803, 754996058, 754996313, 754996568, 754996823, 754997078, 754997333, 754997588, 754997843, 754998098, 754998353, 754998608, 754998863, 754999118, 754999373, 754979840, 754984960, 754979585, 754985217, 754979330, 754985474, 754979075, 754985731, 754978820, 754985988, 754978565, 754986245, 754978310, 754978055, 754977800, 754977545, 754977290, 754977035, 754976780, 754976525, 754976270, 754976015, 754975760, 754975505, 754975250, 754974995, 754974740, 754988034, 754987779, 754988291, 754987524, 754988548, 754987269, 754988805, 754989062, 754989319, 754989576, 754989833, 754990090, 754990347, 754990604, 754990861, 754991118, 754991375, 754991632, 754991889, 754992146, 754992403, 754992660, 754992917, 754993174, 754993431, 754993688, 754993945, 754994459, 754994716, 754995744, 754996001, 754996258, 754996515, 754996772, 754997029, 754997286, 754997543, 754997800, 754998057, 754998314, 754998571, 754998828, 754999085, 754999342, 754994784, 754995039, 754995294, 754995549, 754995804, 754996059, 754996314, 754996569, 754996824, 754997079, 754997334, 754997589, 754997844, 754998099, 754998354, 754998609, 754998864, 754999119, 754999374, 754979584, 754985216, 754979329, 754985473, 754979074, 754985730, 754978819, 754985987, 754978564, 754986244, 754978309, 754986501, 754978054, 754977799, 754977544, 754977289, 754977034, 754976779, 754976524, 754976269, 754976014, 754975759, 754975504, 754975249, 754974994, 754974739, 754988033, 754987778, 754988290, 754987523, 754988547, 754987268, 754988804, 754987013, 754989061, 754989318, 754989575, 754989832, 754990089, 754990346, 754990603, 754990860, 754991117, 754991374, 754991631, 754991888, 754992145, 754992402, 754992659, 754992916, 754993173, 754993430, 754993687, 754993944, 754994201, 754994458, 754994715, 754996000, 754996257, 754996514, 754996771, 754997028, 754997285, 754997542, 754997799, 754998056, 754998313, 754998570, 754998827, 754999084, 754999341, 754995040, 754995295, 754995550, 754995805, 754996060, 754996315, 754996570, 754996825, 754997080, 754997335, 754997590, 754997845, 754998100, 754998355, 754998610, 754998865, 754999120, 754999375, 754979328, 754985472, 754979073, 754985729, 754978818, 754985986, 754978563, 754986243, 754978308, 754986500, 754978053, 754986757, 754977798, 754977543, 754977288, 754977033, 754976778, 754976523, 754976268, 754976013, 754975758, 754975503, 754975248, 754974993, 754974738, 754988032, 754987777, 754988289, 754987522, 754988546, 754987267, 754988803, 754987012, 754989060, 754989317, 754989574, 754989831, 754990088, 754990345, 754990602, 754990859, 754991116, 754991373, 754991630, 754991887, 754992144, 754992401, 754992658, 754992915, 754993172, 754993429, 754993686, 754993943, 754994200, 754994457, 754994714, 754994971, 754995999, 754996256, 754996513, 754996770, 754997027, 754997284, 754997541, 754997798, 754998055, 754998312, 754998569, 754998826, 754999083, 754999340, 754995296, 754995551, 754995806, 754996061, 754996316, 754996571, 754996826, 754997081, 754997336, 754997591, 754997846, 754998101, 754998356, 754998611, 754998866, 754999121, 754999376, 754979072, 754985728, 754978817, 754985985, 754978562, 754986242, 754978307, 754986499, 754978052, 754986756, 754977797, 754977542, 754977287, 754977032, 754976777, 754976522, 754976267, 754976012, 754975757, 754975502, 754975247, 754974992, 754974737, 754987776, 754988288, 754987521, 754988545, 754987266, 754988802, 754987011, 754989059, 754989316, 754989573, 754989830, 754990087, 754990344, 754990601, 754990858, 754991115, 754991372, 754991629, 754991886, 754992143, 754992400, 754992657, 754992914, 754993171, 754993428, 754993685, 754993942, 754994199, 754994456, 754994713, 754994970, 754995227, 754995998, 754996255, 754996512, 754996769, 754997026, 754997283, 754997540, 754997797, 754998054, 754998311, 754998568, 754998825, 754999082, 754999339, 754995552, 754995807, 754996062, 754996317, 754996572, 754996827, 754997082, 754997337, 754997592, 754997847, 754998102, 754998357, 754998612, 754998867, 754999122, 754999377, 754978816, 754985984, 754978561, 754986241, 754978306, 754986498, 754978051, 754986755, 754977796, 754977541, 754977286, 754977031, 754976776, 754976521, 754976266, 754976011, 754975756, 754975501, 754975246, 754974991, 754974736, 754987520, 754988544, 754987265, 754988801, 754987010, 754989058, 754989315, 754989572, 754989829, 754990086, 754990343, 754990600, 754990857, 754991114, 754991371, 754991628, 754991885, 754992142, 754992399, 754992656, 754992913, 754993170, 754993427, 754993684, 754993941, 754994198, 754994455, 754994712, 754994969, 754995226, 754995483, 754995997, 754996254, 754996511, 754996768, 754997025, 754997282, 754997539, 754997796, 754998053, 754998310, 754998567, 754998824, 754999081, 754999338, 754995808, 754996063, 754996318, 754996573, 754996828, 754997083, 754997338, 754997593, 754997848, 754998103, 754998358, 754998613, 754998868, 754999123, 754999378, 754978560, 754986240, 754978305, 754986497, 754978050, 754986754, 754977795, 754977540, 754977285, 754977030, 754976775, 754976520, 754976265, 754976010, 754975755, 754975500, 754975245, 754974990, 754974735, 754987264, 754988800, 754987009, 754989057, 754989314, 754989571, 754989828, 754990085, 754990342, 754990599, 754990856, 754991113, 754991370, 754991627, 754991884, 754992141, 754992398, 754992655, 754992912, 754993169, 754993426, 754993683, 754993940, 754994197, 754994454, 754994711, 754994968, 754995225, 754995482, 754995739, 754995996, 754996253, 754996510, 754996767, 754997024, 754997281, 754997538, 754997795, 754998052, 754998309, 754998566, 754998823, 754999080, 754999337, 754996064, 754996319, 754996574, 754996829, 754997084, 754997339, 754997594, 754997849, 754998104, 754998359, 754998614, 754998869, 754999124, 754999379, 754978304, 754986496, 754978049, 754986753, 754977794, 754977539, 754977284, 754977029, 754976774, 754976519, 754976264, 754976009, 754975754, 754975499, 754975244, 754974989, 754974734, 754987008, 754989056, 754989313, 754989570, 754989827, 754990084, 754990341, 754990598, 754990855, 754991112, 754991369, 754991626, 754991883, 754992140, 754992397, 754992654, 754992911, 754993168, 754993425, 754993682, 754993939, 754994196, 754994453, 754994710, 754994967, 754995224, 754995481, 754995738, 754995995, 754996252, 754996509, 754996766, 754997023, 754997280, 754997537, 754997794, 754998051, 754998308, 754998565, 754998822, 754999079, 754999336, 754996320, 754996575, 754996830, 754997085, 754997340, 754997595, 754997850, 754998105, 754998360, 754998615, 754998870, 754999125, 754999380, 754978048, 754986752, 754977793, 754977538, 754977283, 754977028, 754976773, 754976518, 754976263, 754976008, 754975753, 754975498, 754975243, 754974988, 754974733, 754989312, 754989569, 754989826, 754990083, 754990340, 754990597, 754990854, 754991111, 754991368, 754991625, 754991882, 754992139, 754992396, 754992653, 754992910, 754993167, 754993681, 754993938, 754994195, 754994452, 754994709, 754994966, 754995223, 754995480, 754995737, 754995994, 754996251, 754996508, 754996765, 754997022, 754997279, 754997536, 754997793, 754998050, 754998307, 754998564, 754998821, 754999078, 754999335, 754996576, 754996831, 754997086, 754997341, 754997596, 754997851, 754998106, 754998361, 754998616, 754998871, 754999126, 754999381, 754977792, 754977537, 754977282, 754977027, 754976772, 754976517, 754976262, 754976007, 754975752, 754975497, 754975242, 754974987, 754974732, 754989568, 754989825, 754990082, 754990339, 754990596, 754990853, 754991110, 754991367, 754991624, 754991881, 754992138, 754992395, 754992652, 754992909, 754993166, 754993423, 754993680, 754993937, 754994194, 754994451, 754994708, 754994965, 754995222, 754995479, 754995736, 754995993, 754996250, 754996507, 754996764, 754997021, 754997278, 754997535, 754997792, 754998049, 754998306, 754998563, 754998820, 754999077, 754999334, 754996832, 754997087, 754997342, 754997597, 754997852, 754998107, 754998362, 754998617, 754998872, 754999127, 754999382, 754977536, 754977281, 754977026, 754976771, 754976516, 754976261, 754976006, 754975751, 754975496, 754975241, 754974986, 754974731, 754989824, 754990081, 754990338, 754990595, 754990852, 754991109, 754991366, 754991623, 754991880, 754992137, 754992394, 754992651, 754992908, 754993165, 754993422, 754993679, 754993936, 754994193, 754994450, 754994707, 754994964, 754995221, 754995478, 754995735, 754995992, 754996249, 754996506, 754996763, 754997020, 754997277, 754997534, 754997791, 754998048, 754998305, 754998562, 754998819, 754999076, 754999333, 754997088, 754997343, 754997598, 754997853, 754998108, 754998363, 754998618, 754998873, 754999128, 754999383, 754977280, 754977025, 754976770, 754976515, 754976260, 754976005, 754975750, 754975495, 754975240, 754974985, 754974730, 754990080, 754990337, 754990594, 754990851, 754991108, 754991365, 754991622, 754991879, 754992136, 754992393, 754992650, 754992907, 754993164, 754993421, 754993678, 754993935, 754994192, 754994706, 754994963, 754995220, 754995477, 754995734, 754995991, 754996248, 754996505, 754996762, 754997019, 754997276, 754997533, 754997790, 754998047, 754998304, 754998561, 754998818, 754999075, 754999332, 754997344, 754997599, 754997854, 754998109, 754998364, 754998619, 754998874, 754999129, 754999384, 754977024, 754976769, 754976514, 754976259, 754976004, 754975749, 754975494, 754975239, 754974984, 754974729, 754990336, 754990593, 754990850, 754991107, 754991364, 754991621, 754991878, 754992135, 754992392, 754992649, 754992906, 754993163, 754993420, 754993677, 754993934, 754994191, 754994962, 754995219, 754995476, 754995733, 754995990, 754996247, 754996504, 754996761, 754997018, 754997275, 754997532, 754997789, 754998046, 754998303, 754998560, 754998817, 754999074, 754999331, 754997600, 754997855, 754998110, 754998365, 754998620, 754998875, 754999130, 754999385, 754976768, 754976513, 754976258, 754976003, 754975748, 754975493, 754975238, 754974983, 754974728, 754990592, 754990849, 754991106, 754991363, 754991620, 754991877, 754992134, 754992391, 754992648, 754992905, 754993162, 754993419, 754993676, 754993933, 754994190, 754995218, 754995475, 754995732, 754995989, 754996246, 754996503, 754996760, 754997017, 754997274, 754997531, 754997788, 754998045, 754998302, 754998559, 754998816, 754999073, 754999330, 754997856, 754998111, 754998366, 754998621, 754998876, 754999131, 754999386, 754976512, 754976257, 754976002, 754975747, 754975492, 754975237, 754974982, 754974727, 754990848, 754991105, 754991362, 754991619, 754991876, 754992133, 754992390, 754992647, 754992904, 754993161, 754993418, 754993675, 754993932, 754994189, 754995474, 754995731, 754995988, 754996245, 754996502, 754996759, 754997016, 754997273, 754997530, 754997787, 754998044, 754998301, 754998558, 754998815, 754999072, 754999329, 754998112, 754998367, 754998622, 754998877, 754999132, 754999387, 754976256, 754976001, 754975746, 754975491, 754975236, 754974981, 754974726, 754991104, 754991361, 754991618, 754991875, 754992132, 754992389, 754992646, 754992903, 754993160, 754993417, 754993674, 754993931, 754994188, 754994445, 754995473, 754995730, 754995987, 754996244, 754996501, 754996758, 754997015, 754997272, 754997529, 754997786, 754998043, 754998300, 754998557, 754998814, 754999071, 754999328, 754998368, 754998623, 754998878, 754999133, 754999388, 754976000, 754975745, 754975490, 754975235, 754974980, 754974725, 754991360, 754991617, 754991874, 754992131, 754992388, 754992645, 754992902, 754993159, 754993416, 754993673, 754993930, 754994187, 754994444, 754994701, 754995472, 754995729, 754995986, 754996243, 754996500, 754996757, 754997014, 754997271, 754997528, 754997785, 754998042, 754998299, 754998556, 754998813, 754999070, 754999327, 754998624, 754998879, 754999134, 754999389, 754975744, 754975489, 754975234, 754974979, 754974724, 754991616, 754991873, 754992130, 754992387, 754992644, 754992901, 754993158, 754993415, 754993672, 754993929, 754994186, 754994443, 754994700, 754994957, 754995471, 754995728, 754995985, 754996242, 754996499, 754997013, 754997270, 754997527, 754997784, 754998041, 754998298, 754998555, 754998812, 754999069, 754999326, 754998880, 754999135, 754999390, 754975488, 754975233, 754974978, 754974723, 754991872, 754992129, 754992386, 754992643, 754992900, 754993157, 754993414, 754993671, 754993928, 754994185, 754994442, 754994699, 754994956, 754995213, 754995470, 754995727, 754995984, 754996241, 754996498, 754997269, 754997526, 754997783, 754998040, 754998297, 754998554, 754998811, 754999068, 754999325, 754999136, 754999391, 754975232, 754974977, 754974722, 754992128, 754992385, 754992642, 754992899, 754993156, 754993413, 754993670, 754993927, 754994184, 754994441, 754994698, 754994955, 754995212, 754995469, 754995726, 754995983, 754996240, 754996497, 754997525, 754997782, 754998039, 754998296, 754998553, 754998810, 754999067, 754999324, 754999392, 754974976, 754974721, 754992384, 754992641, 754992898, 754993155, 754993412, 754993669, 754993926, 754994183, 754994440, 754994697, 754994954, 754995211, 754995468, 754995725, 754995982, 754996239, 754996496, 754996753, 754997524, 754997781, 754998038, 754998295, 754998552, 754998809, 754999066, 754999323, 754974720, 754992640, 754992897, 754993154, 754993411, 754993668, 754993925, 754994182, 754994439, 754994696, 754994953, 754995210, 754995467, 754995724, 754995981, 754996238, 754996495, 754996752, 754997009, 754997523, 754997780, 754998037, 754998294, 754998551, 754998808, 754999065, 754999322, 754992896, 754993153, 754993410, 754993667, 754993924, 754994181, 754994438, 754994695, 754994952, 754995209, 754995466, 754995723, 754995980, 754996237, 754996494, 754996751, 754997008, 754997265, 754997522, 754997779, 754998036, 754998293, 754998550, 754998807, 754999064, 754999321, 754993152, 754993409, 754993666, 754993923, 754994180, 754994437, 754994694, 754994951, 754995208, 754995465, 754995722, 754995979, 754996236, 754996493, 754996750, 754997007, 754997264, 754997521, 754997778, 754998035, 754998292, 754998549, 754998806, 754999063, 754999320, 754993408, 754993665, 754993922, 754994179, 754994436, 754994693, 754994950, 754995207, 754995464, 754995721, 754995978, 754996235, 754996492, 754996749, 754997006, 754997263, 754997520, 754997777, 754998034, 754998291, 754998548, 754998805, 754999062, 754999319, 754993664, 754993921, 754994178, 754994435, 754994692, 754994949, 754995206, 754995463, 754995720, 754995977, 754996234, 754996491, 754996748, 754997005, 754997262, 754997519, 754997776, 754998033, 754998290, 754998547, 754998804, 754999061, 754999318, 754993920, 754994177, 754994434, 754994691, 754994948, 754995205, 754995462, 754995719, 754995976, 754996233, 754996490, 754996747, 754997004, 754997261, 754997518, 754997775, 754998032, 754998289, 754998546, 754998803, 754999060, 754999317, 754994176, 754994433, 16912911, 16912655, 16847119, 16912654, 16912656, 16912399, 16848153, 520358686, 520162078, 520162079, 520358687, 520227615, 520293151, 16913688, 16913689, 16913690, 16913433, 16913945, 520228126, 520162590, 520293662, 520228127, 520162591, 520359198, 520293663, 520359199, 520292881, 520293137, 520227345, 16844827, 520227601, 520293149, 520161809, 16909604, 520162065, 16910364, 520162077, 16910107, 520293136, 16910362, 520292880, 16909348, 520227600, 520227344, 520162064, 520161808, 16909347, 16909092, 16910619, 520358685, 520292879, 520293135, 520227343, 520227599, 520161807, 520162063, 520292624, 520227088, 520227614, 520292623, 520292625, 520161552, 520227087, 520227089, 16843812, 520293150, 520227613, 520161551, 520161553, 16909349, 16910363, 520293661, 520228125, 520359197, 520162589, 520358941, 520293405, 520358942, 520227869, 520293406, 520358943, 520162333, 520227870, 520490325, 520160344, 520422744, 520160600, 520291929, 520359255, 520357463, 520358743, 520291671, 520162646, 520359254, 520162645, 520226135, 520160601, 520226393, 520291927, 520225880, 520357208, 520226391, 520422488, 520160345, 520162391, 520423001, 520160599, 520422745, 520423000, 520357465, 520356953, 520357209, 520291673, 520356952, 520489815, 520291417, 520291415, 520490069, 520422487, 520293461, 520228181, 520227927, 520162647, 520293719, 520291928, 520226392, 520424533, 520228182, 520160855, 520358742, 520226137, 520160343, 520357207, 520293717, 520227669, 520422999, 520422489, 520356951, 520226136, 520225881, 520489813, 520291416, 520291672, 520358998, 520490071, 520225879, 520228183, 520424279, 520424278, 520424277, 520227670, 520293718, 520293463, 520359253, 520293462, 520490326, 520490327, 520424791, 520293207, 520357464, 520160856, 520358999, 520424535, 520160857, 520227926, 520227925, 520489814, 520422743, 520358997, 520358741, 520227671, 520293205, 520162133, 520162134, 520162135, 520490070, 520424789, 520424790, 520424534, 520293206, 520162389, 520162390, 520246792, 520246791, 520181255, 520377351, 520246279, 520312327, 520312072, 520377862, 520312071, 520246790, 520312326, 520181000, 520311816, 520312070, 520246278, 520377608, 520181254, 520377352, 520246535, 520246534, 520312328, 520377864, 520377606, 520377350, 520246280, 520311814, 520180742, 520180743, 520180744, 520246536, 520377863, 520377607, 520181256, 520311815, 993668934, 993668678, 993669190, 993668422, 993669446, 993669702, 993669958, 990649928, 990584392, 990715464, 990649927, 990649929, 990518856, 990584391, 990584393, 990781000, 990715463, 990715465, 990649926, 990649930, 990453320, 990518855, 990518857, 990584390, 990584394, 990846536, 990780999, 990781001, 990715462, 990715466, 990649925, 990387784, 990453319, 990453321, 990518854, 990518858, 990584389, 990912072, 990846535, 990846537, 990780998, 990781002, 990715461, 990649924, 990322248, 990387783, 990387785, 990453318, 990453322, 990518853, 990584388, 990977608, 990912071, 990912073, 990846534, 990846538, 990780997, 990715460, 990256712, 990322247, 990322249, 990387782, 990387786, 990453317, 990518852, 991043144, 990977607, 990977609, 990912070, 990912074, 990846533, 990780996, 990191176, 990256711, 990256713, 990322246, 990322250, 990387781, 990453316, 991108680, 991043143, 991043145, 990977606, 990977610, 990912069, 990846532, 990125640, 990191175, 990191177, 990256710, 990256714, 990322245, 990387780, 991174216, 991108679, 991108681, 991043142, 991043146, 990977605, 990912068, 990060104, 990125639, 990125641, 990191174, 990191178, 990256709, 990322244, 991239752, 991174215, 991174217, 991108678, 991108682, 991043141, 990977604, 989994568, 990060103, 990060105, 990125638, 990125642, 990191173, 990256708, 991239751, 991239753, 991174214, 991174218, 991108677, 991043140, 989929032, 989994567, 989994569, 990060102, 990060106, 990125637, 990191172, 991239750, 991239754, 991174213, 991108676, 989929031, 989929033, 989994566, 989994570, 990060101, 990125636, 991239749, 991174212, 989929030, 989929034, 989994565, 990060100, 991239748, 989929029, 989994564, 989929028, 990125577, 990060041, 990191113, 990125576, 990125578, 989994505, 990060040, 990060042, 990256649, 990191112, 990191114, 990125575, 990125579, 989928969, 989994504, 989994506, 990060039, 990060043, 990256648, 990256650, 990191111, 990191115, 990125574, 990125580, 989928968, 989928970, 989994503, 989994507, 990060038, 990060044, 990256647, 990256651, 990191110, 990191116, 989928967, 989928971, 989994502, 989994508, 990256646, 990256652, 989928966, 989928972],\n\t\"palette\": [-1, -1, -65794, -131587, -197380, -263173, -328966, -394759, -460552, -526345, -592138, -657931, -723724, -789517, -855310, -921103, -986896, -1052689, -1118482, -1184275, -1250068, -1315861, -1381654, -1447447, -1513240, -4347633, -1644826, -1710619, -1776412, -1842205, -1907998, -10981017, -2039584, -2105377, -2171170, -2236963, -2302756, -2368549, -2434342, -2500135, -2565928, -13391624, -2697514, -4347633, -2829100, -11287118, -2960686, -11042177, -3092272, -3158065, -3223858, -3289651, -3355444, -3421237, -3487030, -3552823, -3618616, -8805721, -3750202, -6634809, -3881788, -5982786, -4013374, -13212071, -4144960, -4210753, -4276546, -4342339, -4408132, -4473925, -4539718, -4605511, -4671304, -4737097, -4802890, -4868683, -4934476, -5000269, -5066062, -5131855, -5197648, -5263441, -5329234, -5395027, -5460820, -5526613, -5592406, -5658199, -5723992, -5789785, -5855578, -5921371, -5987164, -6052957, -6118750, -6184543, -6250336, -6316129, -6381922, -6447715, -6513508, -6579301, -6645094, -6710887, -6776680, -6842473, -6908266, -6974059, -7039852, -7105645, -7171438, -7237231, -7303024, -7368817, -7434610, -7500403, -7566196, -7631989, -7697782, -7763575, -7829368, -7895161, -7960954, -8026747, -8092540, -8158333, -8224126, -8289919, -8355712, -8421505, -8487298, -8553091, -8618884, -8684677, -8750470, -8816263, -8882056, -8947849, -9013642, -9079435, -9145228, -9211021, -9276814, -9342607, -9408400, -9474193, -9539986, -9605779, -9671572, -9737365, -9803158, -9868951, -9934744, -10000537, -10066330, -10132123, -10197916, -10263709, -10329502, -10395295, -10461088, -10526881, -10592674, -10658467, -10724260, -10790053, -10855846, -10921639, -10987432, -11053225, -11119018, -11184811, -11250604, -11316397, -11382190, -11447983, -11513776, -11579569, -11645362, -11711155, -11776948, -11842741, -11908534, -11974327, -12040120, -12105913, -12171706, -12237499, -12303292, -12369085, -12434878, -12500671, -12566464, -12632257, -12698050, -12763843, -12829636, -12895429, -12961222, -13027015, -13092808, -13158601, -13224394, -13290187, -13355980, -13421773, -13487566, -13553359, -13619152, -13684945, -13750738, -13816531, -13882324, -13948117, -14013910, -14079703, -14145496, -14211289, -14277082, -14342875, -14408668, -14474461, -14540254, -14606047, -14671840, -14737633, -14803426, -14869219, -14935012, -15000805, -15066598, -15132391, -15198184, -15263977, -15329770, -15395563, -15461356, -15527149, -15592942, -15658735, -15724528, -15790321, -15856114, -15921907, -15987700, -16053493, -16119286, -16185079, -16250872, -16316665, -16382458, -16448251, -16514044, -16579837, -16645630, -16711423]\n}"
  },
  {
    "path": "data/shadow.json",
    "content": "{\"voxels\":[1325401091,1325466627,1325532163,1325532678,1325401089,1325400833,1325401345,1325401088,1325401090,1325400577,1325400832,1325400834,1325401601,1325401344,1325401346,1325400321,1325400576,1325400578,1325400835,1325401857,1325401600,1325401602,1325401347,1325400065,1325400320,1325400322,1325400579,1325400836,1325401856,1325401858,1325401603,1325401348,1325400064,1325400066,1325400323,1325400580,1325401092,1325400837,1325401859,1325401604,1325401349,1325400067,1325400324,1325400581,1325401093,1325400838,1325401860,1325401605,1325401350,1325400068,1325400325,1325400582,1325401094,1325400839,1325401861,1325401606,1325401351,1325400069,1325400326,1325400583,1325401095,1325401862,1325401607,1325400070,1325400327,1325401863,1325400071,1325466630,1325466886,1325467142,1325467398,1325467137,1325465607,1325465600,1325531136,1325596672,1325662208,1325727744,1325793280,1325858816,1325467136,1325466881,1325466625,1325466369,1325466113,1325465857,1325465858,1325466114,1325465859,1325465860,1325465604,1325531396,1325596932,1325662468,1325466368,1325531904,1325467140],\"palette\":[-1,-1,-3342337,-6684673,-10027009,-13369345,-16711681,-13057,-3355393,-6697729,-10040065,-13382401,-16724737,-26113,-3368449,-6710785,-10053121,-13395457,-16737793,-39169,-3381505,-6723841,-10066177,-13408513,-16750849,-52225,-3394561,-6736897,-10079233,-13421569,-16763905,-65281,-3407617,-6749953,-10092289,-13434625,-16776961,-52,-3342388,-6684724,-10027060,-13369396,-16711732,-13108,-3355444,-6697780,-10040116,-13382452,-16724788,-26164,-3368500,-6710836,-10053172,-13395508,-16737844,-39220,-3381556,-6723892,-10066228,-13408564,-16750900,-52276,-3394612,-6736948,-10079284,-13421620,-16763956,-65332,-3407668,-6750004,-10092340,-13434676,-16777012,-103,-3342439,-6684775,-10027111,-13369447,-16711783,-13159,-3355495,-6697831,-10040167,-13382503,-16724839,-26215,-3368551,-6710887,-10053223,-13395559,-16737895,-39271,-3381607,-6723943,-10066279,-13408615,-16750951,-52327,-3394663,-6736999,-10079335,-13421671,-16764007,-65383,-3407719,-6750055,-10092391,-13434727,-16777063,-154,-3342490,-6684826,-10027162,-13369498,-16711834,-13210,-3355546,-6697882,-10040218,-13382554,-16724890,-26266,-3368602,-6710938,-10053274,-13395610,-16737946,-39322,-3381658,-6723994,-10066330,-13408666,-16751002,-52378,-3394714,-6737050,-10079386,-13421722,-16764058,-65434,-3407770,-6750106,-10092442,-13434778,-16777114,-205,-3342541,-6684877,-10027213,-13369549,-16711885,-13261,-3355597,-6697933,-10040269,-13382605,-16724941,-26317,-3368653,-6710989,-10053325,-13395661,-16737997,-39373,-3381709,-6724045,-10066381,-13408717,-16751053,-52429,-3394765,-6737101,-10079437,-13421773,-16764109,-65485,-3407821,-6750157,-10092493,-13434829,-16777165,-256,-3342592,-6684928,-10027264,-13369600,-16711936,-13312,-3355648,-6697984,-10040320,-13382656,-16724992,-26368,-3368704,-6711040,-10053376,-13395712,-16738048,-39424,-3381760,-6724096,-10066432,-13408768,-16751104,-52480,-3394816,-6737152,-10079488,-13421824,-16764160,-65536,-3407872,-6750208,-10092544,-13434880,-16776978,-16776995,-16777029,-16777046,-16777080,-16777097,-16777131,-16777148,-16777182,-16777199,-16716288,-16720640,-16729344,-16733696,-16742400,-16746752,-16755456,-16759808,-16768512,-16772864,-1179648,-2293760,-4521984,-5636096,-7864320,-8978432,-11206656,-12320768,-14548992,-15663104,-1118482,-2236963,-4473925,-5592406,-7829368,-8947849,-11184811,-12303292,-14540254,-15658735]}"
  },
  {
    "path": "dist/bundle.js",
    "content": "/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 2);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = React;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst config_1 = __webpack_require__(5);\nclass State {\n    static sendServiceEvent(label) {\n        var evt = document.createEvent('CustomEvent');\n        evt.initCustomEvent('serviceevent', false, false, { 'category': 'Service', 'action': 'send', 'label': label });\n        window.dispatchEvent(evt);\n    }\n    static sendAppEvent(action, label) {\n        var evt = document.createEvent('CustomEvent');\n        evt.initCustomEvent('serviceevent', false, false, { 'category': 'App', 'action': action, 'label': label });\n        window.dispatchEvent(evt);\n    }\n    static sendRequest(command, cb) {\n        var self = this;\n        var xhr = new XMLHttpRequest();\n        xhr.addEventListener(\"load\", function () {\n            cb.call(this);\n        });\n        xhr.open(\"POST\", config_1.WasmFiddleConfig.serviceURL, true);\n        xhr.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");\n        xhr.send(command);\n    }\n    static getOutput(response) {\n        if (/^\\{.*\\}$/.test(response)) {\n            try {\n                const obj = JSON.parse(response);\n                if (obj.success) {\n                    return '';\n                }\n                else {\n                    return (!obj.tasks ? '' :\n                        obj.tasks.map((t) => '===== ' + t.name + '\\n' + t.console)\n                            .join('\\n') + '\\n') + 'ERROR: ' + obj.message;\n                }\n            }\n            catch (e) {\n                // Ignore invalid JSON\n            }\n            // Fall through\n        }\n        if (response.indexOf(\"(module\") !== 0 &&\n            response.indexOf(\"AGFzbQE\") !== 0) {\n            return response;\n        }\n        else {\n            return '';\n        }\n    }\n    static getAnnotations(response) {\n        var output = State.getOutput(response);\n        // Parse and annotate errors if compilation fails.\n        var annotations = [];\n        if (!output) {\n            return annotations;\n        }\n        var re = /^.*?:(\\d+?):(\\d+?):(.*)$/gm;\n        var m;\n        while ((m = re.exec(output)) !== null) {\n            if (m.index === re.lastIndex) {\n                re.lastIndex++;\n            }\n            var line = parseInt(m[1]) - 1;\n            var column = parseInt(m[2]) - 1;\n            var message = m[3];\n            annotations.push({\n                row: line,\n                column: column,\n                text: message,\n                type: message.indexOf(\"error\") >= 0 ? \"error\" : \"warning\" // also warning and information\n            });\n        }\n        return annotations;\n    }\n    static getResultBinary(response) {\n        if (/^\\{.*\\}$/.test(response)) {\n            try {\n                const obj = JSON.parse(response);\n                if (!obj.success) {\n                    return null;\n                }\n                response = obj.output;\n            }\n            catch (e) {\n                // Ignore invalid JSON\n            }\n            // Fall through\n        }\n        var buffer = atob(response);\n        var data = new Uint8Array(buffer.length);\n        for (var i = 0; i < buffer.length; i++) {\n            data[i] = buffer.charCodeAt(i);\n        }\n        return data;\n    }\n}\nState.fiddleURI = \"\";\nexports.State = State;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst React = __webpack_require__(0);\nconst ReactDOM = __webpack_require__(3);\nconst App_1 = __webpack_require__(4);\nif ('WebAssembly' in window) {\n    ReactDOM.render(React.createElement(App_1.AppComponent, null), document.getElementById(\"app\"));\n}\nelse {\n    ReactDOM.render(React.createElement(\"div\", { className: \"notSupported\" }, \"WebAssembly is not yet available in your browser. Please use the latest version of Firefox or Chrome.\"), document.getElementById(\"app\"));\n}\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\nmodule.exports = ReactDOM;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst React = __webpack_require__(0);\nconst State_1 = __webpack_require__(1);\nconst Editor_1 = __webpack_require__(6);\nconst CompilerOptions_1 = __webpack_require__(7);\nconst lib_1 = __webpack_require__(8);\nconst syscall_1 = __webpack_require__(9);\nconst iframesandbox_1 = __webpack_require__(10);\nlet { demangle } = __webpack_require__(11);\nfunction lazyLoad(s, cb) {\n    var self = this;\n    var d = window.document;\n    var b = d.body;\n    var e = d.createElement(\"script\");\n    e.async = true;\n    e.src = s;\n    b.appendChild(e);\n    e.onload = function () {\n        cb.call(this);\n    };\n}\nfunction toAddress(n) {\n    var s = n.toString(16);\n    while (s.length < 6) {\n        s = \"0\" + s;\n    }\n    return \"0x\" + s;\n}\nfunction padRight(s, n, c) {\n    s = String(s);\n    while (s.length < n) {\n        s = s + c;\n    }\n    return s;\n}\nfunction padLeft(s, n, c) {\n    s = String(s);\n    while (s.length < n) {\n        s = c + s;\n    }\n    return s;\n}\nvar x86JumpInstructions = [\n    \"jmp\", \"ja\", \"jae\", \"jb\", \"jbe\", \"jc\", \"je\", \"jg\", \"jge\", \"jl\", \"jle\", \"jna\", \"jnae\",\n    \"jnb\", \"jnbe\", \"jnc\", \"jne\", \"jng\", \"jnge\", \"jnl\", \"jnle\", \"jno\", \"jnp\", \"jns\", \"jnz\",\n    \"jo\", \"jp\", \"jpe\", \"jpo\", \"js\", \"jz\"\n];\nfunction isBranch(instr) {\n    return x86JumpInstructions.indexOf(instr.mnemonic) >= 0;\n}\nvar base64DecodeMap = [\n    62, 0, 0, 0, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,\n    0, 0, 0, 0, 0, 0, 0,\n    0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,\n    19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0,\n    26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,\n    44, 45, 46, 47, 48, 49, 50, 51\n];\nvar base64DecodeMapOffset = 0x2B;\nvar base64EOF = 0x3D;\nfunction decodeRestrictedBase64ToBytes(encoded) {\n    var ch;\n    var code;\n    var code2;\n    var len = encoded.length;\n    var padding = encoded.charAt(len - 2) === '=' ? 2 : encoded.charAt(len - 1) === '=' ? 1 : 0;\n    var decoded = new Uint8Array((encoded.length >> 2) * 3 - padding);\n    for (var i = 0, j = 0; i < encoded.length;) {\n        ch = encoded.charCodeAt(i++);\n        code = base64DecodeMap[ch - base64DecodeMapOffset];\n        ch = encoded.charCodeAt(i++);\n        code2 = base64DecodeMap[ch - base64DecodeMapOffset];\n        decoded[j++] = (code << 2) | ((code2 & 0x30) >> 4);\n        ch = encoded.charCodeAt(i++);\n        if (ch == base64EOF) {\n            return decoded;\n        }\n        code = base64DecodeMap[ch - base64DecodeMapOffset];\n        decoded[j++] = ((code2 & 0x0f) << 4) | ((code & 0x3c) >> 2);\n        ch = encoded.charCodeAt(i++);\n        if (ch == base64EOF) {\n            return decoded;\n        }\n        code2 = base64DecodeMap[ch - base64DecodeMapOffset];\n        decoded[j++] = ((code & 0x03) << 6) | code2;\n    }\n    return decoded;\n}\nconst defaultHarnessText = `var wasmModule = new WebAssembly.Module(wasmCode);\\n` +\n    `var wasmInstance = new WebAssembly.Instance(wasmModule, wasmImports);\\n` +\n    `log(wasmInstance.exports.main());\\n`;\nclass AppComponent extends React.Component {\n    constructor(props) {\n        super(props);\n        this.mainEditor = null;\n        this.viewEditor = null;\n        this.wasmEditor = null;\n        this.outputEditor = null;\n        this.harnessEditor = null;\n        this.wasmCode = null;\n        this.wast = \"\";\n        this.wastAssembly = {};\n        this.downloadLink = null;\n        this.installKeyboardShortcuts();\n        State_1.State.app = this;\n        this.state = {\n            compilerOptions: \"-O3 -std=C99\",\n            compilerVersion: 1,\n            isCompiling: false,\n            isC: true,\n            view: \"wast\",\n            showCanvas: false,\n            showSettings: false,\n            showHelp: false\n        };\n    }\n    installKeyboardShortcuts() {\n        Mousetrap.bind(['ctrl+shift+enter'], (e) => {\n            this.build();\n            e.preventDefault();\n        });\n        Mousetrap.bind(['ctrl+shift+k'], (e) => {\n            this.clear();\n            e.preventDefault();\n        });\n        Mousetrap.bind(['ctrl+enter'], (e) => {\n            this.runHarness();\n            e.preventDefault();\n        });\n        Mousetrap.bind(['command+s'], (e) => {\n            this.saveFiddleStateToURI();\n            e.preventDefault();\n        });\n    }\n    componentDidMount() {\n        this.init();\n    }\n    compilerOptionsChanged(options, compilerVersion) {\n        let isC = options.indexOf(\"C++\") < 0;\n        this.setState({ compilerOptions: options, compilerVersion, isC });\n    }\n    onResize() {\n        // State.resize();\n        this.mainEditor.editor.resize();\n    }\n    download(what) {\n        var url = \"\";\n        var name = \"\";\n        if (what == \"wasm\") {\n            url = URL.createObjectURL(new Blob([this.wasmCode], { type: 'application/wasm' }));\n            name = \"program.wasm\";\n        }\n        else if (what == \"wast\") {\n            url = URL.createObjectURL(new Blob([this.viewEditor.editor.getValue()], { type: 'text/wat' }));\n            name = \"program.wat\";\n        }\n        else {\n            return;\n        }\n        State_1.State.sendAppEvent(\"download\", what);\n        this.downloadLink.href = url;\n        this.downloadLink.download = name;\n        if (this.downloadLink.href != document.location) {\n            this.downloadLink.click();\n        }\n    }\n    assemble() {\n    }\n    loadFiddledStateFromURI(fiddleURI) {\n        State_1.State.fiddleURI = fiddleURI;\n        var xhr = new XMLHttpRequest();\n        let self = this;\n        xhr.addEventListener(\"load\", function () {\n            self.loadFiddledState(JSON.parse(this.response));\n            history.replaceState({}, fiddleURI, '?' + State_1.State.fiddleURI);\n        });\n        let url = \"https://api.myjson.com/bins/\" + fiddleURI;\n        xhr.open(\"GET\", url, true);\n        xhr.setRequestHeader(\"Content-type\", \"application/json; charset=utf-8\");\n        xhr.send();\n    }\n    saveFiddleStateToURI() {\n        var xhr = new XMLHttpRequest();\n        xhr.addEventListener(\"load\", function () {\n            let uri = JSON.parse(this.response).uri;\n            uri = uri.substring(uri.lastIndexOf(\"/\") + 1);\n            State_1.State.fiddleURI = uri;\n            State_1.State.app.forceUpdate();\n            history.replaceState({}, State_1.State.fiddleURI, '?' + State_1.State.fiddleURI);\n        });\n        xhr.open(\"POST\", \"//api.myjson.com/bins\", true);\n        xhr.setRequestHeader(\"Content-type\", \"application/json; charset=utf-8\");\n        xhr.send(JSON.stringify(this.saveFiddleState()));\n    }\n    init() {\n        let uri = window.location.search.substring(1);\n        if (uri) {\n            let i = uri.indexOf(\"/\");\n            if (i > 0) {\n                uri = uri.substring(0, i);\n            }\n            this.loadFiddledStateFromURI(uri);\n            this.forceUpdate();\n        }\n        else {\n            this.loadFiddledState({\n                editors: {\n                    \"main\": \"int main() { \\n  return 42;\\n}\",\n                    \"harness\": defaultHarnessText\n                }\n            });\n        }\n    }\n    saveFiddleState() {\n        return {\n            editors: {\n                main: this.mainEditor.editor.getValue(),\n                harness: this.harnessEditor.editor.getValue()\n            },\n            compilerOptions: this.state.compilerOptions,\n            compilerVersion: this.state.compilerVersion\n        };\n    }\n    loadFiddledState(fiddleState) {\n        // For backwards compatibility.\n        if (fiddleState.editors[\"main.c\"]) {\n            fiddleState.editors.main = fiddleState.editors[\"main.c\"];\n        }\n        if (fiddleState.editors[\"harness.js\"]) {\n            fiddleState.editors.harness = fiddleState.editors[\"harness.js\"];\n        }\n        this.mainEditor.editor.setValue(fiddleState.editors.main, -1);\n        this.harnessEditor.editor.setValue(fiddleState.editors.harness, -1);\n        if (fiddleState.compilerOptions) {\n            let isC = fiddleState.compilerOptions.indexOf(\"C++\") < 0;\n            this.setState({\n                compilerOptions: fiddleState.compilerOptions,\n                compilerVersion: fiddleState.compilerVersion,\n                isC\n            });\n        }\n    }\n    build() {\n        let self = this;\n        let main = this.mainEditor;\n        let options = this.state.compilerOptions;\n        let compilerVersion = this.state.compilerVersion;\n        const complete = (result, wast, annotations) => {\n            main.editor.getSession().clearAnnotations();\n            if (annotations.length) {\n                main.editor.getSession().setAnnotations(annotations);\n                this.appendOutput(String(result));\n                return;\n            }\n            self.wasmCode = result;\n            self.wastAssembly = {};\n            this.forceUpdate();\n        };\n        if (compilerVersion == 2) {\n            this.compileToWasmV2(main.editor.getValue(), options, complete);\n        }\n        else {\n            this.compileToWasm(main.editor.getValue(), options, complete);\n        }\n    }\n    disassemble(json) {\n        let self = this;\n        if (typeof capstone === \"undefined\") {\n            lazyLoad(\"lib/capstone.x86.min.js\", go);\n        }\n        else {\n            go();\n        }\n        function toBytes(a) {\n            return a.map(function (x) { return padLeft(Number(x).toString(16), 2, \"0\"); }).join(\" \");\n        }\n        function go() {\n            let s = \"\";\n            var cs = new capstone.Cs(capstone.ARCH_X86, capstone.MODE_64);\n            var annotations = [];\n            var assemblyInstructionsByAddress = Object.create(null);\n            for (var i = 0; i < json.regions.length; i++) {\n                var region = json.regions[i];\n                s += region.name + \":\\n\";\n                var csBuffer = decodeRestrictedBase64ToBytes(region.bytes);\n                var instructions = cs.disasm(csBuffer, region.entry);\n                var basicBlocks = {};\n                instructions.forEach(function (instr, i) {\n                    assemblyInstructionsByAddress[instr.address] = instr;\n                    if (isBranch(instr)) {\n                        var targetAddress = parseInt(instr.op_str);\n                        if (!basicBlocks[targetAddress]) {\n                            basicBlocks[targetAddress] = [];\n                        }\n                        basicBlocks[targetAddress].push(instr.address);\n                        if (i + 1 < instructions.length) {\n                            basicBlocks[instructions[i + 1].address] = [];\n                        }\n                    }\n                });\n                instructions.forEach(function (instr) {\n                    if (basicBlocks[instr.address]) {\n                        s += \" \" + padRight(toAddress(instr.address) + \":\", 39, \" \");\n                        if (basicBlocks[instr.address].length > 0) {\n                            s += \"; \" + toAddress(instr.address) + \" from: [\" + basicBlocks[instr.address].map(toAddress).join(\", \") + \"]\";\n                        }\n                        s += \"\\n\";\n                    }\n                    s += \"  \" + padRight(instr.mnemonic + \" \" + instr.op_str, 38, \" \");\n                    s += \"; \" + toAddress(instr.address) + \" \" + toBytes(instr.bytes) + \"\\n\";\n                });\n                s += \"\\n\";\n            }\n            self.viewEditor.editor.getSession().setValue(s, 1);\n            self.viewEditor.editor.getSession().setMode(\"ace/mode/assembly_x86\");\n        }\n    }\n    runHarness() {\n        State_1.State.sendAppEvent(\"run\", \"Harness\");\n        if (!this.wasmCode) {\n            this.appendOutput(\"Build a WebAssembly module first.\");\n            return;\n        }\n        // |buffer| is needed for backward compatibility\n        let self = this;\n        let func = new iframesandbox_1.IFrameSandbox(\"wasmCode\", \"buffer\", \"wasmImports\", \"lib\", \"log\", \"canvas\", this.harnessEditor.editor.getValue());\n        if (self.func)\n            self.func.destroy();\n        self.func = func;\n        lib_1.lib.log = function (x) {\n            self.appendOutput(String(x));\n        };\n        lib_1.lib.showCanvas = function (x = true) {\n            self.setState({ showCanvas: x });\n        };\n        lib_1.lib.currentInstance = null;\n        lib_1.lib.syscall = syscall_1.syscall;\n        func.onerror = (x) => {\n            self.appendOutput(x);\n            State_1.State.sendAppEvent(\"error\", \"Run Harness\");\n        };\n        func.call(this.wasmCode, this.wasmCode, this.createWasmImports(false), lib_1.lib, lib_1.lib.log, State_1.State.app.canvas);\n    }\n    createWasmImports(string) {\n        let wasmImports = {};\n        if (!this.wasmCode || !WebAssembly.Module.imports) {\n            return wasmImports;\n        }\n        WebAssembly.Module.imports(new WebAssembly.Module(this.wasmCode)).forEach((i) => {\n            if (!wasmImports[i.module]) {\n                wasmImports[i.module] = {};\n            }\n            if (/^__syscall\\d+$/.test(i.name) && i.kind === \"function\") {\n                let num = +i.name.substring(\"__syscall\".length);\n                if (string) {\n                    let args = [];\n                    for (let j = 0; j < num; j++)\n                        args.push(', ', String.fromCharCode(97 + j));\n                    wasmImports[i.module][i.name] =\n                        `    // ${name}\\n` +\n                            `    ${i.name}: function ${i.name} (n${args.join('')}) {\\n` +\n                            `      return lib.syscall(wasmInstance, n${args.join('')});\\n` +\n                            `    }`;\n                }\n                else {\n                    wasmImports[i.module][i.name] = function () {\n                        if (!lib_1.lib.currentInstance) {\n                            throw new Error(`${i.name}: lib.currentInstance must be specified`);\n                        }\n                        return lib_1.lib.syscall(lib_1.lib.currentInstance, ...arguments);\n                    };\n                }\n                return;\n            }\n            if (i.kind === \"function\") {\n                let name = demangle(\"_\" + i.name);\n                if (string) {\n                    wasmImports[i.module][i.name] =\n                        `    // ${name}\\n` +\n                            `    ${i.name}: function ${i.name} () {\\n` +\n                            `      // ...\\n` +\n                            `    }`;\n                }\n                else {\n                    wasmImports[i.module][i.name] = function () {\n                        lib_1.lib.log(`NYI: ${i.name} ${name}`);\n                    };\n                }\n            }\n        });\n        if (string) {\n            let keys = Object.keys(wasmImports);\n            let str = \"var wasmImports = {\\n\";\n            str += keys.map(key => {\n                let fun = Object.keys(wasmImports[key]).map(name => {\n                    return wasmImports[key][name];\n                }).join(\",\\n\");\n                return \"  \" + key + \": {\\n\" + fun + \"\\n  }\";\n            }).join(\",\");\n            str += \"\\n};\";\n            return str;\n        }\n        return wasmImports;\n    }\n    compileToWasm(src, options, cb) {\n        State_1.State.sendAppEvent(\"compile\", \"To Wasm\");\n        let self = this;\n        src = encodeURIComponent(src).replace('%20', '+');\n        let action = this.state.isC ? \"c2wast\" : \"cpp2wast\";\n        let compilerVersion = this.state.compilerVersion;\n        options = encodeURIComponent(options);\n        self.setState({ isCompiling: true });\n        State_1.State.sendRequest(\"input=\" + src + \"&action=\" + action + \"&version=\" + compilerVersion + \"&options=\" + options, function () {\n            self.setState({ isCompiling: false });\n            if (!this.responseText) {\n                self.appendOutput(\"Something went wrong while compiling \" + action + \".\");\n                State_1.State.sendAppEvent(\"error\", \"Compile to Wasm\");\n                return;\n            }\n            let annotations = State_1.State.getAnnotations(this.responseText);\n            if (annotations.length) {\n                cb(this.responseText, null, annotations);\n                State_1.State.sendAppEvent(\"error\", \"Compile to Wasm (Error or Warnings)\");\n                return;\n            }\n            self.wast = this.responseText;\n            let wast = encodeURIComponent(this.responseText).replace('%20', '+');\n            self.setState({ isCompiling: true });\n            State_1.State.sendRequest(\"input=\" + wast + \"&action=\" + \"wast2wasm\" + \"&options=\" + options, function () {\n                self.setState({ isCompiling: false });\n                var buffer = atob(this.responseText.split('\\n', 2)[1]);\n                var data = new Uint8Array(buffer.length);\n                for (var i = 0; i < buffer.length; i++) {\n                    data[i] = buffer.charCodeAt(i);\n                }\n                cb(data, self.wast, []);\n            });\n        });\n    }\n    compileToWasmV2(src, options, cb) {\n        State_1.State.sendAppEvent(\"compile\", \"To Wasm\");\n        let self = this;\n        let fileType = this.state.isC ? \"c\" : \"cpp\";\n        var project = {\n            output: \"wasm\",\n            files: [\n                {\n                    type: fileType,\n                    name: \"file.\" + fileType,\n                    options: options,\n                    src: src\n                }\n            ]\n        };\n        let input = encodeURIComponent(JSON.stringify(project)).replace('%20', '+');\n        self.setState({ isCompiling: true });\n        State_1.State.sendRequest(\"input=\" + input + \"&action=build\", function () {\n            self.setState({ isCompiling: false });\n            if (!this.responseText) {\n                self.appendOutput(\"Something went wrong while compiling.\");\n                State_1.State.sendAppEvent(\"error\", \"Compile to Wasm\");\n                return;\n            }\n            let annotations = State_1.State.getAnnotations(this.responseText);\n            if (annotations.length) {\n                cb(State_1.State.getOutput(this.responseText), null, annotations);\n                State_1.State.sendAppEvent(\"error\", \"Compile to Wasm (Error or Warnings)\");\n                return;\n            }\n            const data = State_1.State.getResultBinary(this.responseText);\n            const wasmBase64 = btoa(Array.prototype.map.call(data, (ch) => String.fromCharCode(ch)).join(''));\n            self.setState({ isCompiling: true });\n            State_1.State.sendRequest(\"input=\" + encodeURIComponent(wasmBase64) + \"&action=\" + \"wasm2wast\" + \"&options=\" + options, function () {\n                self.setState({ isCompiling: false });\n                self.wast = this.responseText;\n                cb(data, self.wast, []);\n            });\n        });\n    }\n    appendOutput(s) {\n        this.outputEditor.editor.insert(s + \"\\n\");\n        this.outputEditor.editor.gotoLine(Infinity);\n    }\n    share() {\n        this.saveFiddleStateToURI();\n        State_1.State.sendAppEvent(\"save\", \"Fiddle state to URI\");\n    }\n    toggleCanvas() {\n        this.setState({ showCanvas: !this.state.showCanvas });\n    }\n    toggleSettings() {\n        this.setState({ showSettings: !this.state.showSettings });\n    }\n    toggleHelp() {\n        this.setState({ showHelp: !this.state.showHelp });\n    }\n    clear() {\n        this.outputEditor.editor.setValue(\"\");\n    }\n    onViewChanged(e) {\n        this.setState({ view: e.target.value });\n    }\n    render() {\n        if (this.viewEditor) {\n            if (this.state.view === \"wast\") {\n                this.viewEditor.editor.getSession().setMode(\"ace/mode/text\");\n                this.viewEditor.editor.setValue(this.wast, -1);\n            }\n            else if (this.state.view === \"wasm\") {\n                this.viewEditor.editor.getSession().setMode(\"ace/mode/javascript\");\n                this.viewEditor.editor.setValue(\"var wasmCode = new Uint8Array([\" + String(this.wasmCode) + \"]);\", -1);\n            }\n            else if (this.state.view == \"imports\") {\n                this.viewEditor.editor.getSession().setMode(\"ace/mode/javascript\");\n                this.viewEditor.editor.setValue(this.createWasmImports(true), -1);\n            }\n            else if (this.state.view.indexOf(\"x86\") == 0) {\n                this.viewEditor.editor.setValue(\"\");\n                if (this.wast) {\n                    let type = this.state.view;\n                    let self = this;\n                    let options = type == \"x86-baseline\" ? \"--wasm-always-baseline\" : \"\";\n                    if (this.wastAssembly[type]) {\n                        self.disassemble(self.wastAssembly[type]);\n                    }\n                    else {\n                        let wast = encodeURIComponent(this.wast).replace('%20', '+');\n                        State_1.State.sendRequest(\"input=\" + wast + \"&action=wast2assembly&options=\" + options, function () {\n                            self.wastAssembly[type] = JSON.parse(this.responseText);\n                            self.disassemble(self.wastAssembly[type]);\n                        });\n                    }\n                }\n            }\n        }\n        return React.createElement(\"div\", { className: \"gAppContainer\" },\n            React.createElement(\"a\", { style: { display: \"none\" }, ref: (self) => this.downloadLink = self }),\n            React.createElement(\"div\", { className: \"gHeader\" },\n                React.createElement(\"div\", null,\n                    React.createElement(\"div\", { className: \"canvasOverlay\", style: { display: this.state.showCanvas ? \"\" : \"none\" } },\n                        React.createElement(\"div\", { className: \"editorHeader\" },\n                            React.createElement(\"span\", { className: \"editorHeaderTitle\" }, \"Canvas\"),\n                            React.createElement(\"div\", { className: \"editorHeaderButtons\" },\n                                React.createElement(\"a\", { title: \"Toggle Canvas\", onClick: this.toggleCanvas.bind(this) },\n                                    \"Hide \",\n                                    React.createElement(\"i\", { className: \"fa fa-window-close fa-lg\", \"aria-hidden\": \"true\" })))),\n                        React.createElement(\"canvas\", { className: \"outputCanvas\", ref: (self) => this.canvas = self, width: 1200, height: 1200 })),\n                    React.createElement(\"div\", { className: \"settingsOverlay\", style: { display: this.state.showSettings ? \"\" : \"none\" } },\n                        React.createElement(\"span\", { className: \"editorHeaderTitle\" }, \"Settings\"),\n                        React.createElement(\"div\", { className: \"editorHeader\" },\n                            React.createElement(\"div\", { className: \"editorHeaderButtons\" },\n                                React.createElement(\"a\", { title: \"Toggle Settings\", onClick: this.toggleSettings.bind(this) },\n                                    \"Hide \",\n                                    React.createElement(\"i\", { className: \"fa fa-window-close fa-lg\", \"aria-hidden\": \"true\" })))),\n                        React.createElement(\"div\", { className: \"settingSectionHeader\" }, \"Compiler Options\"),\n                        React.createElement(\"div\", { className: \"settingSection\" },\n                            React.createElement(CompilerOptions_1.CompilerOptionsComponent, { options: this.state.compilerOptions, compilerVersion: this.state.compilerVersion, onChange: this.compilerOptionsChanged.bind(this) }),\n                            ' ')),\n                    React.createElement(\"div\", { className: \"helpOverlay\", style: { display: this.state.showHelp ? \"\" : \"none\" } },\n                        React.createElement(\"div\", { className: \"editorHeader\" },\n                            React.createElement(\"span\", { className: \"editorHeaderTitle\" }, \"Help\"),\n                            React.createElement(\"div\", { className: \"editorHeaderButtons\" },\n                                React.createElement(\"a\", { title: \"Toggle Settings\", onClick: this.toggleHelp.bind(this) },\n                                    \"Hide \",\n                                    React.createElement(\"i\", { className: \"fa fa-window-close fa-lg\", \"aria-hidden\": \"true\" })))),\n                        React.createElement(\"div\", { className: \"settingSection\" }, \"WasmFiddle lets you compile C/C++ code to WebAssembly and run it in the browser. The JavaScript harness on the right has several global variables and helper functions.\"),\n                        React.createElement(\"div\", { className: \"settingSectionHeader\" }, \"wasmCode: Uint8Array\"),\n                        React.createElement(\"div\", { className: \"settingSection\" }, \"The compiled WebAssembly buffer.\"),\n                        React.createElement(\"div\", { className: \"settingSectionHeader\" },\n                            \"wasmImports: \",\n                            \"{ ... }\"),\n                        React.createElement(\"div\", { className: \"settingSection\" }, \"This object is automatically generated by WasmFiddle for your convenience. It's a template containing function stubs for each imported WebAssembly function.\"),\n                        React.createElement(\"div\", { className: \"settingSectionHeader\" }, \"canvas: HTMLCanvasElement\"),\n                        React.createElement(\"div\", { className: \"settingSection\" },\n                            \"WasmFiddle creates a 1200x1200 canvas element that you can draw into. You can display the canvas programmatically using \",\n                            React.createElement(\"span\", { className: \"codeSpan\" }, \"lib.showCanvas()\"),\n                            \".\"),\n                        React.createElement(\"div\", { className: \"settingSectionHeader\" }, \"log()\"),\n                        React.createElement(\"div\", { className: \"settingSection\" },\n                            \"A simple logging function whose output is shown on the bottom right. You may also use the browser's \",\n                            React.createElement(\"span\", { className: \"codeSpan\" }, \"console\"),\n                            \" object but you'll need to open up the developer tools to see the output.\"),\n                        React.createElement(\"div\", { className: \"settingSectionHeader\" }, \"lib.UTF8ArrayToString(heap: Uint8Array, ptr: number)\"),\n                        React.createElement(\"div\", { className: \"settingSection\" }, \"Converts a C string into a JavaScript string.\"),\n                        React.createElement(\"div\", { className: \"settingSectionHeader\" }, \"lib.dumpMemory(heap: Uint8Array, ptr: number, len: number)\"),\n                        React.createElement(\"div\", { className: \"settingSection\" }, \"Prints memory contents.\"),\n                        React.createElement(\"div\", { className: \"settingSectionHeader\" }, \"lib.setStackPtr(heap: Uint8Array, ptr: number)\"),\n                        React.createElement(\"div\", { className: \"settingSection\" }, \"Sets the default stack pointer address.\")),\n                    React.createElement(\"img\", { src: \"img/web-assembly-icon-white-64px.png\", className: \"waIcon\" })),\n                React.createElement(\"div\", { className: \"gShareURI\" }, window.location.origin + window.location.pathname + '?' + State_1.State.fiddleURI),\n                React.createElement(\"div\", { className: \"gShareButton\" },\n                    React.createElement(\"a\", { title: \"Build: CTRL + Shift + Return\", onClick: this.build.bind(this) },\n                        React.createElement(\"i\", { className: \"fa fa-cog \" + (this.state.isCompiling ? \"fa-spin\" : \"\") + \" fa-lg\", \"aria-hidden\": \"true\" })),\n                    ' ',\n                    React.createElement(\"a\", { className: this.wasmCode ? \"\" : \"disabled-link\", title: \"Run: CTRL + Return\", onClick: this.runHarness.bind(this) },\n                        React.createElement(\"i\", { className: \"fa fa-play-circle fa-lg\", \"aria-hidden\": \"true\" })),\n                    ' ',\n                    React.createElement(\"a\", { title: \"Toggle Settings\", onClick: this.toggleSettings.bind(this) },\n                        React.createElement(\"i\", { className: \"fa fa-wrench fa-lg\", \"aria-hidden\": \"true\" })),\n                    ' ',\n                    React.createElement(\"a\", { title: \"Toggle Help\", onClick: this.toggleHelp.bind(this) },\n                        React.createElement(\"i\", { className: \"fa fa-book fa-lg\", \"aria-hidden\": \"true\" })),\n                    ' ',\n                    React.createElement(\"i\", { title: \"Share\", onClick: this.share.bind(this), className: \"fa fa-cloud-upload fa-lg\", \"aria-hidden\": \"true\" }))),\n            React.createElement(\"div\", null,\n                React.createElement(\"div\", { className: \"gV2\" },\n                    React.createElement(\"div\", null,\n                        React.createElement(\"div\", { className: \"editorHeader\" },\n                            React.createElement(\"span\", { className: \"editorHeaderTitle\" }, this.state.isC ? \"C\" : \"C++\"),\n                            React.createElement(\"div\", { className: \"editorHeaderButtons\" },\n                                React.createElement(\"a\", { title: \"Build: CTRL + Shift + Return\", onClick: this.build.bind(this) },\n                                    \"Build \",\n                                    React.createElement(\"i\", { className: \"fa fa-cog \" + (this.state.isCompiling ? \"fa-spin\" : \"\") + \" fa-lg\", \"aria-hidden\": \"true\" })),\n                                ' ',\n                                React.createElement(\"a\", { className: this.wasmCode ? \"\" : \"disabled-link\", title: \"Run: CTRL + Return\", onClick: this.runHarness.bind(this) },\n                                    \"Run \",\n                                    React.createElement(\"i\", { className: \"fa fa-play-circle fa-lg\", \"aria-hidden\": \"true\" })))),\n                        React.createElement(Editor_1.EditorComponent, { ref: (self) => this.mainEditor = self, name: \"main\", mode: \"ace/mode/c_cpp\", showGutter: true, showLineNumbers: true })),\n                    React.createElement(\"div\", null,\n                        React.createElement(\"div\", { className: \"editorHeader\" },\n                            React.createElement(\"span\", { className: \"editorHeaderTitle\" }, \"JS\"),\n                            React.createElement(\"div\", { className: \"editorHeaderButtons\" })),\n                        React.createElement(Editor_1.EditorComponent, { ref: (self) => this.harnessEditor = self, name: \"harness\", mode: \"ace/mode/javascript\", showGutter: true, showLineNumbers: true })))),\n            React.createElement(\"div\", null,\n                React.createElement(\"div\", { className: \"gV2\" },\n                    React.createElement(\"div\", null,\n                        React.createElement(\"div\", { className: \"editorHeader\" },\n                            React.createElement(\"select\", { title: \"Optimization Level\", value: this.state.view, onChange: this.onViewChanged.bind(this) },\n                                React.createElement(\"option\", { value: \"wast\" }, \"Text Format\"),\n                                React.createElement(\"option\", { value: \"wasm\" }, \"Code Buffer\"),\n                                React.createElement(\"option\", { value: \"imports\" }, \"Imports Template\"),\n                                React.createElement(\"option\", { value: \"x86\" }, \"Firefox x86\"),\n                                React.createElement(\"option\", { value: \"x86-baseline\" }, \"Firefox x86 Baseline\")),\n                            React.createElement(\"div\", { className: \"editorHeaderButtons\" },\n                                React.createElement(\"a\", { className: this.wasmCode ? \"\" : \"disabled-link\", title: \"Download WebAssembly Text\", onClick: this.download.bind(this, \"wast\") },\n                                    \"Wat \",\n                                    React.createElement(\"i\", { className: \"fa fa-download fa-lg\", \"aria-hidden\": \"true\" })),\n                                ' ',\n                                React.createElement(\"a\", { className: this.wasmCode ? \"\" : \"disabled-link\", title: \"Download WebAssembly Binary\", onClick: this.download.bind(this, \"wasm\") },\n                                    \"Wasm \",\n                                    React.createElement(\"i\", { className: \"fa fa-download fa-lg\", \"aria-hidden\": \"true\" })))),\n                        React.createElement(Editor_1.EditorComponent, { ref: (self) => this.viewEditor = self, name: \"view\", save: false, readOnly: true, fontSize: 10 })),\n                    React.createElement(\"div\", null,\n                        React.createElement(\"div\", { className: \"editorHeader\" },\n                            React.createElement(\"span\", { className: \"editorHeaderTitle\" }, \"Output\"),\n                            React.createElement(\"div\", { className: \"editorHeaderButtons\" },\n                                React.createElement(\"a\", { title: \"Toggle Canvas\", onClick: this.toggleCanvas.bind(this) },\n                                    \"Canvas \",\n                                    React.createElement(\"i\", { className: \"fa fa-picture-o fa-lg\", \"aria-hidden\": \"true\" })),\n                                ' ',\n                                React.createElement(\"a\", { title: \"Clear Output: CTRL + Shift + K\", onClick: this.clear.bind(this) },\n                                    \"Clear \",\n                                    React.createElement(\"i\", { className: \"fa fa-close fa-lg\", \"aria-hidden\": \"true\" })))),\n                        React.createElement(Editor_1.EditorComponent, { ref: (self) => this.outputEditor = self, name: \"output\", save: false, readOnly: true, fontSize: 10 })))));\n    }\n}\nexports.AppComponent = AppComponent;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WasmFiddleConfig = {\n    version: \"2.2\",\n    serviceURL: \"//wasmexplorer-service.herokuapp.com/service.php\",\n};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst React = __webpack_require__(0);\nconst State_1 = __webpack_require__(1);\nclass EditorComponent extends React.Component {\n    componentDidMount() {\n        let editor = this.editor = ace.edit(this.container);\n        var theme = true ? \"ace/theme/monokai\" : \"ace/theme/github\";\n        // editor.setValue(this.props.source, -1);\n        editor.setReadOnly(this.props.readOnly);\n        editor.setTheme(theme);\n        editor.setFontSize(this.props.fontSize);\n        editor.getSession().setUseSoftTabs(true);\n        editor.getSession().setTabSize(2);\n        editor.setShowPrintMargin(false);\n        editor.setOptions({\n            wrap: true,\n            enableBasicAutocompletion: true,\n            // enableSnippets: true,\n            // enableLiveAutocompletion: true,\n            showLineNumbers: this.props.showLineNumbers,\n            showGutter: this.props.showGutter\n        });\n        editor.$blockScrolling = Infinity;\n        editor.renderer.setScrollMargin(10, 10);\n        editor.getSession().setMode(this.props.mode);\n        let action = this.props.action;\n        let self = this;\n        editor.commands.addCommands([{\n                bindKey: { win: \"Ctrl-S\", mac: \"Command-S\" }, exec: function () {\n                    State_1.State.app.share();\n                }\n            },\n            {\n                bindKey: { win: \"Ctrl-Shift-Return\", mac: \"Ctrl-Shift-Return\" }, exec: function () {\n                    State_1.State.app.build();\n                }\n            },\n            {\n                bindKey: { win: \"Ctrl-Shift-K\", mac: \"Ctrl-Shift-K\" }, exec: function () {\n                    State_1.State.app.clear();\n                }\n            },\n            {\n                bindKey: { win: \"Ctrl-Return\", mac: \"Ctrl-Return\" }, exec: function () {\n                    State_1.State.app.runHarness();\n                }\n            }\n        ]);\n    }\n    onChange() {\n    }\n    render() {\n        return React.createElement(\"div\", { style: this.props.style, ref: (self) => this.container = self, className: \"editorBody\" });\n    }\n}\nEditorComponent.defaultProps = {\n    // source: \"\",\n    mode: \"\",\n    action: \"\",\n    save: true,\n    readOnly: false,\n    showGutter: false,\n    showLineNumbers: false,\n    fontSize: 12,\n    style: null\n};\nexports.EditorComponent = EditorComponent;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst React = __webpack_require__(0);\nclass CompilerOptionsComponent extends React.Component {\n    constructor(props) {\n        super(props);\n        this.dialects = [\"-std=C89\", \"-std=C99\", \"-std=C++98\", \"-std=C++11\", \"-std=C++14\", \"-std=C++1z\"];\n        this.optimizationLevels = [\"-O0\", \"-O1\", \"-O2\", \"-O3\", \"-O4\", \"-Os\"];\n        this.state = {\n            dialect: \"-std=C99\",\n            optimizationLevel: \"-O3\",\n            compilerVersion: 1\n        };\n    }\n    componentDidMount() {\n        if (this.props.options) {\n            this.loadState(this.props.options, this.props.compilerVersion || 1);\n        }\n    }\n    componentWillReceiveProps(props) {\n        if (props.options) {\n            this.loadState(props.options, props.compilerVersion);\n        }\n    }\n    optimizationLevelChanged(e) {\n        this.setState({ optimizationLevel: e.target.value }, () => {\n            this.onChange();\n        });\n    }\n    newCompilerChanged(e) {\n        this.setState({ compilerVersion: e.target.checked ? 2 : 1 }, () => {\n            this.onChange();\n        });\n    }\n    dialectChanged(e) {\n        this.setState({ dialect: e.target.value }, () => {\n            this.onChange();\n        });\n    }\n    loadState(options, compilerVersion) {\n        let s = {};\n        options.split(\" \").forEach(o => {\n            if (o.indexOf(\"-O\") == 0) {\n                s.optimizationLevel = o;\n            }\n            else if (o.indexOf(\"-std=\") == 0) {\n                s.dialect = o;\n            }\n        });\n        s.compilerVersion = compilerVersion;\n        this.setState(s);\n    }\n    saveState() {\n        return [this.state.optimizationLevel, this.state.dialect].join(\" \");\n    }\n    onChange() {\n        if (this.props.onChange) {\n            this.props.onChange(this.saveState(), this.state.compilerVersion);\n        }\n    }\n    render() {\n        return React.createElement(\"div\", null,\n            React.createElement(\"span\", null,\n                React.createElement(\"select\", { title: \"Optimization Level\", value: this.state.optimizationLevel, onChange: this.optimizationLevelChanged.bind(this) }, this.optimizationLevels.map(x => React.createElement(\"option\", { key: x }, x))),\n                ' ',\n                React.createElement(\"select\", { title: \"Dialect\", value: this.state.dialect, onChange: this.dialectChanged.bind(this) }, this.dialects.map(x => React.createElement(\"option\", { key: x }, x)))),\n            React.createElement(\"br\", null),\n            React.createElement(\"span\", null,\n                React.createElement(\"label\", null,\n                    \"New compiler:\",\n                    React.createElement(\"input\", { type: \"checkbox\", checked: this.state.compilerVersion == 2, onChange: this.newCompilerChanged.bind(this) }))));\n    }\n}\nexports.CompilerOptionsComponent = CompilerOptionsComponent;\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction UTF8ArrayToString(u8Array, idx) {\n    var endPtr = idx;\n    while (u8Array[endPtr])\n        ++endPtr;\n    if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) {\n        return UTF8Decoder.decode(u8Array.subarray(idx, endPtr));\n    }\n    else {\n        var u0 = 0, u1 = 0, u2 = 0, u3 = 0, u4 = 0, u5 = 0;\n        var str = \"\";\n        while (1) {\n            u0 = u8Array[idx++];\n            if (!u0)\n                return str;\n            if (!(u0 & 128)) {\n                str += String.fromCharCode(u0);\n                continue;\n            }\n            u1 = u8Array[idx++] & 63;\n            if ((u0 & 224) == 192) {\n                str += String.fromCharCode((u0 & 31) << 6 | u1);\n                continue;\n            }\n            u2 = u8Array[idx++] & 63;\n            if ((u0 & 240) == 224) {\n                u0 = (u0 & 15) << 12 | u1 << 6 | u2;\n            }\n            else {\n                u3 = u8Array[idx++] & 63;\n                if ((u0 & 248) == 240) {\n                    u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | u3;\n                }\n                else {\n                    u4 = u8Array[idx++] & 63;\n                    if ((u0 & 252) == 248) {\n                        u0 = (u0 & 3) << 24 | u1 << 18 | u2 << 12 | u3 << 6 | u4;\n                    }\n                    else {\n                        u5 = u8Array[idx++] & 63;\n                        u0 = (u0 & 1) << 30 | u1 << 24 | u2 << 18 | u3 << 12 | u4 << 6 | u5;\n                    }\n                }\n            }\n            if (u0 < 65536) {\n                str += String.fromCharCode(u0);\n            }\n            else {\n                var ch = u0 - 65536;\n                str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);\n            }\n        }\n    }\n}\nfunction setStackPtr(memory, ptr) {\n    var buffer = memory.buffer || memory;\n    new Int32Array(buffer)[1] = ptr;\n}\nfunction dumpMemory(memory, ptr, len) {\n    let m = new Uint8Array(memory.buffer || memory);\n    function padAddress(s) {\n        while (s.length < 8)\n            s = \"0\" + s;\n        return s;\n    }\n    function padByte(s) {\n        while (s.length < 2)\n            s = \"0\" + s;\n        return s;\n    }\n    function ascii(i) {\n        if (i < 32) {\n            return \".\";\n        }\n        return String.fromCharCode(i);\n    }\n    let str = \"\";\n    for (let i = ptr; i < ptr + len; i += 16) {\n        str += padAddress(i.toString(16).toUpperCase());\n        str += \" \";\n        for (let j = i; j < i + 16; j++) {\n            str += padByte(m[j].toString(16).toUpperCase());\n        }\n        str += \" \";\n        for (let j = i; j < i + 16; j++) {\n            str += ascii(m[j]);\n        }\n        str += \"\\n\";\n    }\n    exports.lib.log(str);\n}\nexports.lib = {\n    log: null,\n    showCanvas: null,\n    currentInstance: null,\n    syscall: null,\n    UTF8ArrayToString: UTF8ArrayToString,\n    setStackPtr: setStackPtr,\n    dumpMemory: dumpMemory\n};\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nlet memoryStates = new WeakMap();\nfunction syscall(wasmInstance, n, ...args) {\n    switch (n) {\n        default:\n            console.error(\"NYI syscall\", arguments);\n            throw new Error(\"NYI syscall\");\n        case 45:\n            return 0;\n        case 192:\n            const memory = wasmInstance.exports.memory;\n            let memoryState = memoryStates.get(wasmInstance);\n            const requested = args[1];\n            if (!memoryState) {\n                memoryState = {\n                    object: memory,\n                    currentPosition: memory.buffer.byteLength,\n                };\n                memoryStates.set(wasmInstance, memoryState);\n            }\n            let cur = memoryState.currentPosition;\n            if (cur + requested > memory.buffer.byteLength) {\n                const need = Math.ceil((cur + requested - memory.buffer.byteLength) / 65536);\n                memory.grow(need);\n            }\n            memoryState.currentPosition += requested;\n            return cur;\n    }\n}\nexports.syscall = syscall;\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass IFrameSandbox {\n    constructor(...args) {\n        var body = args.pop();\n        var iframe = document.createElement('iframe');\n        iframe.className = 'hidden';\n        const BodyAtLine = 6;\n        iframe.src = URL.createObjectURL(new Blob([`<!DOCTYPE html>\n  <html>\n  <head><meta charset='utf-8'></head>\n  <body>\n    <script>\n  function run() {\n  ${body}\n  }\n  frameElement.onready();\n    </script>\n  </body></html>`], { type: 'text/html' }));\n        document.body.appendChild(iframe);\n        this._iframe = iframe;\n        var onerror = (e, url, line) => {\n            if (line)\n                this.onerror(`line ${line - BodyAtLine}: ${e}`);\n            else\n                this.onerror(e);\n        };\n        var ready = new Promise((resolve) => {\n            var iframe_ = iframe;\n            iframe_.onready = () => {\n                resolve(iframe.contentWindow);\n            };\n        });\n        this.call = function (...values) {\n            ready.then((w) => {\n                w.onerror = onerror;\n                for (var i = 0; i < values.length; i++)\n                    w[args[i]] = values[i];\n                w.setTimeout(w.run, 4);\n            });\n        };\n    }\n    destroy() {\n        this._iframe.remove();\n    }\n}\nexports.IFrameSandbox = IFrameSandbox;\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports.demangle = __webpack_require__(12);\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process, __dirname) {var require;/**\n * Exposes a function that demangles function names.\n * Can be found at: https://github.com/kripken/cxx_demangle\n */\nvar demangle = (function() {\n  // In Firefox CommonJS environment, the module boilerplate thinks it's node,\n  // but `process` does not exist.\n  if (typeof process !== \"object\" && typeof window !== \"object\" && \"function\" === \"function\") {\n    // null out `require` since no filesystem is necessary in this module, and this\n    // way the boilerplate thinks its in a shell.\n    require = null;\n    // The `print` function only exists in scope when in a node environment,\n    // and there doesn't seem to account for when in a shell environment and NOT node.js,\n    // so just stub out the print function.\n    var print = function(){}\n  }\n\nvar Module = function(Module) {\n  Module = Module || {};\n\nvar Module;if(!Module)Module=(typeof Module!==\"undefined\"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=typeof window===\"object\";var ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";var ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof require===\"function\"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){if(!Module[\"print\"])Module[\"print\"]=function print(x){process[\"stdout\"].write(x+\"\\n\")};if(!Module[\"printErr\"])Module[\"printErr\"]=function printErr(x){process[\"stderr\"].write(x+\"\\n\")};var nodeFS=require(\"fs\");var nodePath=require(\"path\");Module[\"read\"]=function read(filename,binary){filename=nodePath[\"normalize\"](filename);var ret=nodeFS[\"readFileSync\"](filename);if(!ret&&filename!=nodePath[\"resolve\"](filename)){filename=path.join(__dirname,\"..\",\"src\",filename);ret=nodeFS[\"readFileSync\"](filename)}if(ret&&!binary)ret=ret.toString();return ret};Module[\"readBinary\"]=function readBinary(filename){var ret=Module[\"read\"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module[\"load\"]=function load(f){globalEval(read(f))};if(!Module[\"thisProgram\"]){if(process[\"argv\"].length>1){Module[\"thisProgram\"]=process[\"argv\"][1].replace(/\\\\/g,\"/\")}else{Module[\"thisProgram\"]=\"unknown-program\"}}Module[\"arguments\"]=process[\"argv\"].slice(2);if(true){module[\"exports\"]=Module}process[\"on\"](\"uncaughtException\",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module[\"inspect\"]=(function(){return\"[Emscripten Module object]\"})}else if(ENVIRONMENT_IS_SHELL){if(!Module[\"print\"])Module[\"print\"]=print;if(typeof printErr!=\"undefined\")Module[\"printErr\"]=printErr;if(typeof read!=\"undefined\"){Module[\"read\"]=read}else{Module[\"read\"]=function read(){throw\"no read() available (jsc?)\"}}Module[\"readBinary\"]=function readBinary(f){if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}var data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){Module[\"arguments\"]=scriptArgs}else if(typeof arguments!=\"undefined\"){Module[\"arguments\"]=arguments}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module[\"read\"]=function read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(typeof arguments!=\"undefined\"){Module[\"arguments\"]=arguments}if(typeof console!==\"undefined\"){if(!Module[\"print\"])Module[\"print\"]=function print(x){console.log(x)};if(!Module[\"printErr\"])Module[\"printErr\"]=function printErr(x){console.log(x)}}else{var TRY_USE_DUMP=false;if(!Module[\"print\"])Module[\"print\"]=TRY_USE_DUMP&&typeof dump!==\"undefined\"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module[\"load\"]=importScripts}if(typeof Module[\"setWindowTitle\"]===\"undefined\"){Module[\"setWindowTitle\"]=(function(title){document.title=title})}}else{throw\"Unknown runtime environment. Where are we?\"}function globalEval(x){eval.call(null,x)}if(!Module[\"load\"]&&Module[\"read\"]){Module[\"load\"]=function load(f){globalEval(Module[\"read\"](f))}}if(!Module[\"print\"]){Module[\"print\"]=(function(){})}if(!Module[\"printErr\"]){Module[\"printErr\"]=Module[\"print\"]}if(!Module[\"arguments\"]){Module[\"arguments\"]=[]}if(!Module[\"thisProgram\"]){Module[\"thisProgram\"]=\"./this.program\"}Module.print=Module[\"print\"];Module.printErr=Module[\"printErr\"];Module[\"preRun\"]=[];Module[\"postRun\"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}var Runtime={setTempRet0:(function(value){tempRet0=value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case\"i1\":case\"i8\":return 1;case\"i16\":return 2;case\"i32\":return 4;case\"i64\":return 8;case\"float\":return 4;case\"double\":return 8;default:{if(type[type.length-1]===\"*\"){return Runtime.QUANTUM_SIZE}else if(type[0]===\"i\"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type===\"double\"||type===\"i64\"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type==\"i64\"||type==\"double\"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module[\"dynCall_\"+sig].apply(null,args)}else{return Module[\"dynCall_\"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i<Runtime.functionPointers.length;i++){if(!Runtime.functionPointers[i]){Runtime.functionPointers[i]=func;return 2*(1+i)}}throw\"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.\"}),removeFunction:(function(index){Runtime.functionPointers[(index-2)/2]=null}),warnOnce:(function(text){if(!Runtime.warnOnce.shown)Runtime.warnOnce.shown={};if(!Runtime.warnOnce.shown[text]){Runtime.warnOnce.shown[text]=1;Module.printErr(text)}}),funcWrappers:{},getFuncWrapper:(function(func,sig){assert(sig);if(!Runtime.funcWrappers[sig]){Runtime.funcWrappers[sig]={}}var sigCache=Runtime.funcWrappers[sig];if(!sigCache[func]){sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func,arguments)}}return sigCache[func]}),getCompilerSetting:(function(name){throw\"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work\"}),stackAlloc:(function(size){var ret=STACKTOP;STACKTOP=STACKTOP+size|0;STACKTOP=STACKTOP+15&-16;return ret}),staticAlloc:(function(size){var ret=STATICTOP;STATICTOP=STATICTOP+size|0;STATICTOP=STATICTOP+15&-16;return ret}),dynamicAlloc:(function(size){var ret=DYNAMICTOP;DYNAMICTOP=DYNAMICTOP+size|0;DYNAMICTOP=DYNAMICTOP+15&-16;if(DYNAMICTOP>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0;var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}var globalScope=this;function getCFunc(ident){var func=Module[\"_\"+ident];if(!func){try{func=eval(\"_\"+ident)}catch(e){}}assert(func,\"Cannot call unknown function \"+ident+\" (perhaps LLVM optimizations or closure removed it?)\");return func}var cwrap,ccall;((function(){var JSfuncs={\"stackSave\":(function(){Runtime.stackSave()}),\"stackRestore\":(function(){Runtime.stackRestore()}),\"arrayToC\":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),\"stringToC\":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret})};var toC={\"string\":JSfuncs[\"stringToC\"],\"array\":JSfuncs[\"arrayToC\"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=Runtime.stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);if(returnType===\"string\")ret=Pointer_stringify(ret);if(stack!==0){if(opts&&opts.async){EmterpreterAsync.asyncFinalizers.push((function(){Runtime.stackRestore(stack)}));return}Runtime.stackRestore(stack)}return ret};var sourceRegex=/^function\\s*\\(([^)]*)\\)\\s*{\\s*([^*]*?)[\\s;]*(?:return\\s*(.*?)[;\\s]*)?}$/;function parseJSFunc(jsfunc){var parsed=jsfunc.toString().match(sourceRegex).slice(1);return{arguments:parsed[0],body:parsed[1],returnValue:parsed[2]}}var JSsource={};for(var fun in JSfuncs){if(JSfuncs.hasOwnProperty(fun)){JSsource[fun]=parseJSFunc(JSfuncs[fun])}}cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident);var numericArgs=argTypes.every((function(type){return type===\"number\"}));var numericRet=returnType!==\"string\";if(numericRet&&numericArgs){return cfunc}var argNames=argTypes.map((function(x,i){return\"$\"+i}));var funcstr=\"(function(\"+argNames.join(\",\")+\") {\";var nargs=argTypes.length;if(!numericArgs){funcstr+=\"var stack = \"+JSsource[\"stackSave\"].body+\";\";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if(type===\"number\")continue;var convertCode=JSsource[type+\"ToC\"];funcstr+=\"var \"+convertCode.arguments+\" = \"+arg+\";\";funcstr+=convertCode.body+\";\";funcstr+=arg+\"=(\"+convertCode.returnValue+\");\"}}var cfuncname=parseJSFunc((function(){return cfunc})).returnValue;funcstr+=\"var ret = \"+cfuncname+\"(\"+argNames.join(\",\")+\");\";if(!numericRet){var strgfy=parseJSFunc((function(){return Pointer_stringify})).returnValue;funcstr+=\"ret = \"+strgfy+\"(ret);\"}if(!numericArgs){funcstr+=JSsource[\"stackRestore\"].body.replace(\"()\",\"(stack)\")+\";\"}funcstr+=\"return ret})\";return eval(funcstr)}}))();function setValue(ptr,value,type,noSafe){type=type||\"i8\";if(type.charAt(type.length-1)===\"*\")type=\"i32\";switch(type){case\"i1\":HEAP8[ptr>>0]=value;break;case\"i8\":HEAP8[ptr>>0]=value;break;case\"i16\":HEAP16[ptr>>1]=value;break;case\"i32\":HEAP32[ptr>>2]=value;break;case\"i64\":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case\"float\":HEAPF32[ptr>>2]=value;break;case\"double\":HEAPF64[ptr>>3]=value;break;default:abort(\"invalid type for setValue: \"+type)}}function getValue(ptr,type,noSafe){type=type||\"i8\";if(type.charAt(type.length-1)===\"*\")type=\"i32\";switch(type){case\"i1\":return HEAP8[ptr>>0];case\"i8\":return HEAP8[ptr>>0];case\"i16\":return HEAP16[ptr>>1];case\"i32\":return HEAP32[ptr>>2];case\"i64\":return HEAP32[ptr>>2];case\"float\":return HEAPF32[ptr>>2];case\"double\":return HEAPF64[ptr>>3];default:abort(\"invalid type for setValue: \"+type)}return null}var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab===\"number\"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types===\"string\"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[typeof _malloc===\"function\"?_malloc:null,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr<stop;ptr+=4){HEAP32[ptr>>2]=0}stop=ret+size;while(ptr<stop){HEAP8[ptr++>>0]=0}return ret}if(singleType===\"i8\"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i<size){var curr=slab[i];if(typeof curr===\"function\"){curr=Runtime.getFunctionIndex(curr)}type=singleType||types[i];if(type===0){i++;continue}if(type==\"i64\")type=\"i32\";setValue(ret+i,curr,type);if(previousType!==type){typeSize=Runtime.getNativeTypeSize(type);previousType=type}i+=typeSize}return ret}function getMemory(size){if(!staticSealed)return Runtime.staticAlloc(size);if(typeof _sbrk!==\"undefined\"&&!_sbrk.called||!runtimeInitialized)return Runtime.dynamicAlloc(size);return _malloc(size)}function Pointer_stringify(ptr,length){if(length===0||!ptr)return\"\";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret=\"\";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module[\"UTF8ToString\"](ptr)}Module[\"Pointer_stringify\"]=Pointer_stringify;function AsciiToString(ptr){var str=\"\";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}function UTF8ArrayToString(u8Array,idx){var u0,u1,u2,u3,u4,u5;var str=\"\";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}function UTF16ToString(ptr){var i=0;var str=\"\";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr){var i=0;var str=\"\";while(1){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)return str;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343)++i;len+=4}return len}function demangle(func){var hasLibcxxabi=!!Module[\"___cxa_demangle\"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module[\"___cxa_demangle\"](buf,0,0,status);if(getValue(status,\"i32\")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}var i=3;var basicTypes={\"v\":\"void\",\"b\":\"bool\",\"c\":\"char\",\"s\":\"short\",\"i\":\"int\",\"l\":\"long\",\"f\":\"float\",\"d\":\"double\",\"w\":\"wchar_t\",\"a\":\"signed char\",\"h\":\"unsigned char\",\"t\":\"unsigned short\",\"j\":\"unsigned int\",\"m\":\"unsigned long\",\"x\":\"long long\",\"y\":\"unsigned long long\",\"z\":\"...\"};var subs=[];var first=true;function dump(x){if(x)Module.print(x);Module.print(func);var pre=\"\";for(var a=0;a<i;a++)pre+=\" \";Module.print(pre+\"^\")}function parseNested(){i++;if(func[i]===\"K\")i++;var parts=[];while(func[i]!==\"E\"){if(func[i]===\"S\"){i++;var next=func.indexOf(\"_\",i);var num=func.substring(i,next)||0;parts.push(subs[num]||\"?\");i=next+1;continue}if(func[i]===\"C\"){parts.push(parts[parts.length-1]);i+=2;continue}var size=parseInt(func.substr(i));var pre=size.toString().length;if(!size||!pre){i--;break}var curr=func.substr(i+pre,size);parts.push(curr);subs.push(curr);i+=pre+size}i++;return parts}function parse(rawList,limit,allowVoid){limit=limit||Infinity;var ret=\"\",list=[];function flushList(){return\"(\"+list.join(\", \")+\")\"}var name;if(func[i]===\"N\"){name=parseNested().join(\"::\");limit--;if(limit===0)return rawList?[name]:name}else{if(func[i]===\"K\"||first&&func[i]===\"L\")i++;var size=parseInt(func.substr(i));if(size){var pre=size.toString().length;name=func.substr(i+pre,size);i+=pre+size}}first=false;if(func[i]===\"I\"){i++;var iList=parse(true);var iRet=parse(true,1,true);ret+=iRet[0]+\" \"+name+\"<\"+iList.join(\", \")+\">\"}else{ret=name}paramLoop:while(i<func.length&&limit-->0){var c=func[i++];if(c in basicTypes){list.push(basicTypes[c])}else{switch(c){case\"P\":list.push(parse(true,1,true)[0]+\"*\");break;case\"R\":list.push(parse(true,1,true)[0]+\"&\");break;case\"L\":{i++;var end=func.indexOf(\"E\",i);var size=end-i;list.push(func.substr(i,size));i+=size+2;break};case\"A\":{var size=parseInt(func.substr(i));i+=size.toString().length;if(func[i]!==\"_\")throw\"?\";i++;list.push(parse(true,1,true)[0]+\" [\"+size+\"]\");break};case\"E\":break paramLoop;default:ret+=\"?\"+c;break paramLoop}}}if(!allowVoid&&list.length===1&&list[0]===\"void\")list=[];if(rawList){if(ret){list.push(ret+\"?\")}return list}else{return ret+flushList()}}var parsed=func;try{if(func==\"Object._main\"||func==\"_main\"){return\"main()\"}if(typeof func===\"number\")func=Pointer_stringify(func);if(func[0]!==\"_\")return func;if(func[1]!==\"_\")return func;if(func[2]!==\"Z\")return func;switch(func[3]){case\"n\":return\"operator new()\";case\"d\":return\"operator delete()\"}parsed=parse()}catch(e){parsed+=\"?\"}if(parsed.indexOf(\"?\")>=0&&!hasLibcxxabi){Runtime.warnOnce(\"warning: a problem occurred in builtin C++ name demangling; build with  -s DEMANGLE_SUPPORT=1  to link in libcxxabi demangling\")}return parsed}function demangleAll(text){return text.replace(/__Z[\\w\\d_]+/g,(function(x){var y=demangle(x);return x===y?x:x+\" [\"+y+\"]\"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return\"(no stack trace available)\"}}return err.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var buffer;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module[\"buffer\"]=buffer=buf}function updateGlobalBufferViews(){Module[\"HEAP8\"]=HEAP8=new Int8Array(buffer);Module[\"HEAP16\"]=HEAP16=new Int16Array(buffer);Module[\"HEAP32\"]=HEAP32=new Int32Array(buffer);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buffer);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buffer);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buffer);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buffer);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function abortOnCannotGrowMemory(){abort(\"Cannot enlarge memory arrays. Either (1) compile with  -s TOTAL_MEMORY=X  with X higher than the current value \"+TOTAL_MEMORY+\", (2) compile with  -s ALLOW_MEMORY_GROWTH=1  which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with  -s ABORTING_MALLOC=0 \")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module[\"TOTAL_STACK\"]||65536;var TOTAL_MEMORY=Module[\"TOTAL_MEMORY\"]||1048576;var totalMemory=64*1024;while(totalMemory<TOTAL_MEMORY||totalMemory<2*TOTAL_STACK){if(totalMemory<16*1024*1024){totalMemory*=2}else{totalMemory+=16*1024*1024}}if(totalMemory!==TOTAL_MEMORY){TOTAL_MEMORY=totalMemory}assert(typeof Int32Array!==\"undefined\"&&typeof Float64Array!==\"undefined\"&&!!(new Int32Array(1))[\"subarray\"]&&!!(new Int32Array(1))[\"set\"],\"JS engine does not provide full typed array support\");if(Module[\"buffer\"]){buffer=Module[\"buffer\"];assert(buffer.byteLength===TOTAL_MEMORY,\"provided buffer should be \"+TOTAL_MEMORY+\" bytes, but it is \"+buffer.byteLength)}else{buffer=new ArrayBuffer(TOTAL_MEMORY)}updateGlobalBufferViews();HEAP32[0]=255;assert(HEAPU8[0]===255&&HEAPU8[3]===0,\"Typed arrays 2 must be run on a little-endian system\");Module[\"HEAP\"]=HEAP;Module[\"buffer\"]=buffer;Module[\"HEAP8\"]=HEAP8;Module[\"HEAP16\"]=HEAP16;Module[\"HEAP32\"]=HEAP32;Module[\"HEAPU8\"]=HEAPU8;Module[\"HEAPU16\"]=HEAPU16;Module[\"HEAPU32\"]=HEAPU32;Module[\"HEAPF32\"]=HEAPF32;Module[\"HEAPF64\"]=HEAPF64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback();continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Runtime.dynCall(\"v\",func)}else{Runtime.dynCall(\"vi\",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPreMain(cb){__ATMAIN__.unshift(cb)}function addOnExit(cb){__ATEXIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join(\"\")}function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i<array.length){var chr=array[i];HEAP8[buffer+i>>0]=chr;i=i+1}}Module[\"writeStringToMemory\"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i<array.length;i++){HEAP8[buffer++>>0]=array[i]}}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function unSign(value,bits,ignore){if(value>=0){return value}return bits<=32?2*Math.abs(1<<bits-1)+value:Math.pow(2,bits)+value}function reSign(value,bits,ignore){if(value<=0){return value}var half=bits<=32?Math.abs(1<<bits-1):Math.pow(2,bits-1);if(value>=half&&(bits<=32||value>half)){value=-2*half+value}return value}if(!Math[\"imul\"]||Math[\"imul\"](4294967295,5)!==-5)Math[\"imul\"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math[\"imul\"];if(!Math[\"clz32\"])Math[\"clz32\"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math[\"clz32\"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};var memoryInitializer=null;var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+5360;__ATINIT__.push();allocate([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,34,118,101,99,116,111,114,32,108,101,110,103,116,104,95,101,114,114,111,114,34,0,47,109,101,100,105,97,47,97,108,111,110,47,100,54,57,100,100,57,98,50,45,52,55,57,49,45,52,98,56,101,45,97,101,98,51,45,102,54,51,53,51,98,52,53,100,55,49,48,47,104,111,109,101,47,97,108,111,110,47,68,101,118,47,101,109,115,99,114,105,112,116,101,110,47,115,121,115,116,101,109,47,105,110,99,108,117,100,101,47,108,105,98,99,120,120,47,118,101,99,116,111,114,0,95,95,116,104,114,111,119,95,108,101,110,103,116,104,95,101,114,114,111,114,0,32,99,111,110,115,116,0,33,34,98,97,115,105,99,95,115,116,114,105,110,103,32,111,117,116,95,111,102,95,114,97,110,103,101,34,0,47,109,101,100,105,97,47,97,108,111,110,47,100,54,57,100,100,57,98,50,45,52,55,57,49,45,52,98,56,101,45,97,101,98,51,45,102,54,51,53,51,98,52,53,100,55,49,48,47,104,111,109,101,47,97,108,111,110,47,68,101,118,47,101,109,115,99,114,105,112,116,101,110,47,115,121,115,116,101,109,47,105,110,99,108,117,100,101,47,108,105,98,99,120,120,47,115,116,114,105,110,103,0,95,95,116,104,114,111,119,95,111,117,116,95,111,102,95,114,97,110,103,101,0,33,34,98,97,115,105,99,95,115,116,114,105,110,103,32,108,101,110,103,116,104,95,101,114,114,111,114,34,0,32,118,111,108,97,116,105,108,101,0,32,114,101,115,116,114,105,99,116,0,118,111,105,100,0,119,99,104,97,114,95,116,0,98,111,111,108,0,99,104,97,114,0,115,105,103,110,101,100,32,99,104,97,114,0,117,110,115,105,103,110,101,100,32,99,104,97,114,0,115,104,111,114,116,0,117,110,115,105,103,110,101,100,32,115,104,111,114,116,0,105,110,116,0,117,110,115,105,103,110,101,100,32,105,110,116,0,108,111,110,103,0,117,110,115,105,103,110,101,100,32,108,111,110,103,0,108,111,110,103,32,108,111,110,103,0,117,110,115,105,103,110,101,100,32,108,111,110,103,32,108,111,110,103,0,95,95,105,110,116,49,50,56,0,117,110,115,105,103,110,101,100,32,95,95,105,110,116,49,50,56,0,102,108,111,97,116,0,100,111,117,98,108,101,0,108,111,110,103,32,100,111,117,98,108,101,0,95,95,102,108,111,97,116,49,50,56,0,46,46,46,0,95,71,76,79,66,65,76,95,95,78,0,40,97,110,111,110,121,109,111,117,115,32,110,97,109,101,115,112,97,99,101,41,0,100,101,99,105,109,97,108,54,52,0,100,101,99,105,109,97,108,49,50,56,0,100,101,99,105,109,97,108,51,50,0,100,101,99,105,109,97,108,49,54,0,99,104,97,114,51,50,95,116,0,99,104,97,114,49,54,95,116,0,97,117,116,111,0,115,116,100,58,58,110,117,108,108,112,116,114,95,116,0,32,91,0,32,91,93,0,40,0,41,0,102,97,108,115,101,0,116,114,117,101,0,117,0,108,0,117,108,0,108,108,0,117,108,108,0,37,97,102,0,37,97,0,37,76,97,76,0,102,112,0,38,38,0,62,0,41,32,0,32,40,0,38,0,38,61,0,61,0,97,108,105,103,110,111,102,32,40,0,99,111,110,115,116,95,99,97,115,116,60,0,62,40,0,44,0,126,0,41,40,0,58,58,0,100,101,108,101,116,101,91,93,32,0,100,121,110,97,109,105,99,95,99,97,115,116,60,0,100,101,108,101,116,101,32,0,111,112,101,114,97,116,111,114,38,38,0,111,112,101,114,97,116,111,114,38,0,111,112,101,114,97,116,111,114,38,61,0,111,112,101,114,97,116,111,114,61,0,111,112,101,114,97,116,111,114,40,41,0,111,112,101,114,97,116,111,114,44,0,111,112,101,114,97,116,111,114,126,0,111,112,101,114,97,116,111,114,32,0,111,112,101,114,97,116,111,114,32,100,101,108,101,116,101,91,93,0,111,112,101,114,97,116,111,114,42,0,111,112,101,114,97,116,111,114,32,100,101,108,101,116,101,0,111,112,101,114,97,116,111,114,47,0,111,112,101,114,97,116,111,114,47,61,0,111,112,101,114,97,116,111,114,94,0,111,112,101,114,97,116,111,114,94,61,0,111,112,101,114,97,116,111,114,61,61,0,111,112,101,114,97,116,111,114,62,61,0,111,112,101,114,97,116,111,114,62,0,111,112,101,114,97,116,111,114,91,93,0,111,112,101,114,97,116,111,114,60,61,0,111,112,101,114,97,116,111,114,34,34,32,0,111,112,101,114,97,116,111,114,60,60,0,111,112,101,114,97,116,111,114,60,60,61,0,111,112,101,114,97,116,111,114,60,0,111,112,101,114,97,116,111,114,45,0,111,112,101,114,97,116,111,114,45,61,0,111,112,101,114,97,116,111,114,42,61,0,111,112,101,114,97,116,111,114,45,45,0,111,112,101,114,97,116,111,114,32,110,101,119,91,93,0,111,112,101,114,97,116,111,114,33,61,0,111,112,101,114,97,116,111,114,33,0,111,112,101,114,97,116,111,114,32,110,101,119,0,111,112,101,114,97,116,111,114,124,124,0,111,112,101,114,97,116,111,114,124,0,111,112,101,114,97,116,111,114,124,61,0,111,112,101,114,97,116,111,114,45,62,42,0,111,112,101,114,97,116,111,114,43,0,111,112,101,114,97,116,111,114,43,61,0,111,112,101,114,97,116,111,114,43,43,0,111,112,101,114,97,116,111,114,45,62,0,111,112,101,114,97,116,111,114,63,0,111,112,101,114,97,116,111,114,37,0,111,112,101,114,97,116,111,114,37,61,0,111,112,101,114,97,116,111,114,62,62,0,111,112,101,114,97,116,111,114,62,62,61,0,60,0,44,32,0,32,62,0,100,101,99,108,116,121,112,101,40,0,115,116,100,58,58,97,108,108,111,99,97,116,111,114,0,115,116,100,58,58,98,97,115,105,99,95,115,116,114,105,110,103,0,115,116,100,58,58,115,116,114,105,110,103,0,115,116,100,58,58,105,115,116,114,101,97,109,0,115,116,100,58,58,111,115,116,114,101,97,109,0,115,116,100,58,58,105,111,115,116,114,101,97,109,0,115,116,100,58,58,98,97,115,105,99,95,115,116,114,105,110,103,60,99,104,97,114,44,32,115,116,100,58,58,99,104,97,114,95,116,114,97,105,116,115,60,99,104,97,114,62,44,32,115,116,100,58,58,97,108,108,111,99,97,116,111,114,60,99,104,97,114,62,32,62,0,98,97,115,105,99,95,115,116,114,105,110,103,0,115,116,100,58,58,98,97,115,105,99,95,105,115,116,114,101,97,109,60,99,104,97,114,44,32,115,116,100,58,58,99,104,97,114,95,116,114,97,105,116,115,60,99,104,97,114,62,32,62,0,98,97,115,105,99,95,105,115,116,114,101,97,109,0,115,116,100,58,58,98,97,115,105,99,95,111,115,116,114,101,97,109,60,99,104,97,114,44,32,115,116,100,58,58,99,104,97,114,95,116,114,97,105,116,115,60,99,104,97,114,62,32,62,0,98,97,115,105,99,95,111,115,116,114,101,97,109,0,115,116,100,58,58,98,97,115,105,99,95,105,111,115,116,114,101,97,109,60,99,104,97,114,44,32,115,116,100,58,58,99,104,97,114,95,116,114,97,105,116,115,60,99,104,97,114,62,32,62,0,98,97,115,105,99,95,105,111,115,116,114,101,97,109,0,39,117,110,110,97,109,101,100,0,39,108,97,109,98,100,97,39,40,0,115,116,100,58,58,0,46,42,0,47,61,0,94,0,94,61,0,61,61,0,62,61,0,41,91,0,60,61,0,60,60,0,60,60,61,0,45,0,45,61,0,42,61,0,45,45,0,41,45,45,0,91,93,32,0,32,0,33,61,0,33,0,110,111,101,120,99,101,112,116,32,40,0,124,124,0,124,0,124,61,0,45,62,42,0,43,0,43,61,0,43,43,0,41,43,43,0,45,62,0,41,32,63,32,40,0,41,32,58,32,40,0,114,101,105,110,116,101,114,112,114,101,116,95,99,97,115,116,60,0,37,0,37,61,0,62,62,0,62,62,61,0,115,116,97,116,105,99,95,99,97,115,116,60,0,115,105,122,101,111,102,32,40,0,115,105,122,101,111,102,46,46,46,40,0,116,121,112,101,105,100,40,0,116,104,114,111,119,0,116,104,114,111,119,32,0,32,99,111,109,112,108,101,120,0,32,38,0,32,38,38,0,32,105,109,97,103,105,110,97,114,121,0,58,58,42,0,111,98,106,99,95,111,98,106,101,99,116,60,0,105,100,0,111,98,106,99,112,114,111,116,111,0,115,116,100,0,58,58,115,116,114,105,110,103,32,108,105,116,101,114,97,108,0,32,118,101,99,116,111,114,91,0,112,105,120,101,108,32,118,101,99,116,111,114,91,0,118,116,97,98,108,101,32,102,111,114,32,0,86,84,84,32,102,111,114,32,0,116,121,112,101,105,110,102,111,32,102,111,114,32,0,116,121,112,101,105,110,102,111,32,110,97,109,101,32,102,111,114,32,0,99,111,118,97,114,105,97,110,116,32,114,101,116,117,114,110,32,116,104,117,110,107,32,116,111,32,0,99,111,110,115,116,114,117,99,116,105,111,110,32,118,116,97,98,108,101,32,102,111,114,32,0,45,105,110,45,0,118,105,114,116,117,97,108,32,116,104,117,110,107,32,116,111,32,0,110,111,110,45,118,105,114,116,117,97,108,32,116,104,117,110,107,32,116,111,32,0,103,117,97,114,100,32,118,97,114,105,97,98,108,101,32,102,111,114,32,0,114,101,102,101,114,101,110,99,101,32,116,101,109,112,111,114,97,114,121,32,102,111,114,32,0,95,98,108,111,99,107,95,105,110,118,111,107,101,0,105,110,118,111,99,97,116,105,111,110,32,102,117,110,99,116,105,111,110,32,102,111,114,32,98,108,111,99,107,32,105,110,32,0,47,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,42,0,93,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,46,0],\"i8\",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=Runtime.alignMemory(allocate(12,\"i8\",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);function copyTempFloat(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3]}function copyTempDouble(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3];HEAP8[tempDoublePtr+4]=HEAP8[ptr+4];HEAP8[tempDoublePtr+5]=HEAP8[ptr+5];HEAP8[tempDoublePtr+6]=HEAP8[ptr+6];HEAP8[tempDoublePtr+7]=HEAP8[ptr+7]}Module[\"_memset\"]=_memset;Module[\"_i64Subtract\"]=_i64Subtract;function ___setErrNo(value){if(Module[\"___errno_location\"])HEAP32[Module[\"___errno_location\"]()>>2]=value;return value}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}var _BDtoIHigh=true;var _BDtoILow=true;Module[\"_bitshift64Lshr\"]=_bitshift64Lshr;var _BItoD=true;Module[\"_bitshift64Shl\"]=_bitshift64Shl;function _abort(){Module[\"abort\"]()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module[\"_memcpy\"]=_memcpy;Module[\"_i64Add\"]=_i64Add;function ___assert_fail(condition,filename,line,func){ABORT=true;throw\"Assertion failed: \"+Pointer_stringify(condition)+\", at: \"+[filename?Pointer_stringify(filename):\"unknown filename\",line,func?Pointer_stringify(func):\"unknown function\"]+\" at \"+stackTrace()}function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=(function(){abort(\"cannot dynamically allocate, sbrk now has control\")})}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}Module[\"_memmove\"]=_memmove;function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:(function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var ptr in EXCEPTIONS.infos){var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr}}return adjusted}),addRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++}),decRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0){if(info.destructor){Runtime.dynCall(\"vi\",info.destructor,[ptr])}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(ptr));throw ptr+\" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.\"}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(asm[\"setTempRet0\"](0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(asm[\"setTempRet0\"](0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module[\"___cxa_is_pointer_type\"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i<typeArray.length;i++){if(typeArray[i]&&Module[\"___cxa_can_catch\"](typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted=thrown;return(asm[\"setTempRet0\"](typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(asm[\"setTempRet0\"](throwntype),thrown)|0}function ___gxx_personality_v0(){}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function _pthread_self(){return 0}STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);staticSealed=true;STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);assert(DYNAMIC_BASE<TOTAL_MEMORY,\"TOTAL_MEMORY not big enough for stack\");var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],\"i8\",ALLOC_DYNAMIC);function invoke_iiii(index,a1,a2,a3){try{return Module[\"dynCall_iiii\"](index,a1,a2,a3)}catch(e){if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;asm[\"setThrew\"](1,0)}}Module.asmGlobalArg={\"Math\":Math,\"Int8Array\":Int8Array,\"Int16Array\":Int16Array,\"Int32Array\":Int32Array,\"Uint8Array\":Uint8Array,\"Uint16Array\":Uint16Array,\"Uint32Array\":Uint32Array,\"Float32Array\":Float32Array,\"Float64Array\":Float64Array,\"NaN\":NaN,\"Infinity\":Infinity};Module.asmLibraryArg={\"abort\":abort,\"assert\":assert,\"invoke_iiii\":invoke_iiii,\"_sysconf\":_sysconf,\"_pthread_self\":_pthread_self,\"_abort\":_abort,\"___setErrNo\":___setErrNo,\"_sbrk\":_sbrk,\"_time\":_time,\"_emscripten_memcpy_big\":_emscripten_memcpy_big,\"___gxx_personality_v0\":___gxx_personality_v0,\"___resumeException\":___resumeException,\"__ZSt18uncaught_exceptionv\":__ZSt18uncaught_exceptionv,\"___assert_fail\":___assert_fail,\"___cxa_find_matching_catch\":___cxa_find_matching_catch,\"STACKTOP\":STACKTOP,\"STACK_MAX\":STACK_MAX,\"tempDoublePtr\":tempDoublePtr,\"ABORT\":ABORT,\"cttz_i8\":cttz_i8};// EMSCRIPTEN_START_ASM\nvar asm=(function(global,env,buffer) {\n\"use asm\";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=env.cttz_i8|0;var n=0;var o=0;var p=0;var q=0;var r=global.NaN,s=global.Infinity;var t=0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0.0;var C=0;var D=0;var E=0;var F=0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=0;var M=global.Math.floor;var N=global.Math.abs;var O=global.Math.sqrt;var P=global.Math.pow;var Q=global.Math.cos;var R=global.Math.sin;var S=global.Math.tan;var T=global.Math.acos;var U=global.Math.asin;var V=global.Math.atan;var W=global.Math.atan2;var X=global.Math.exp;var Y=global.Math.log;var Z=global.Math.ceil;var _=global.Math.imul;var $=global.Math.min;var aa=global.Math.clz32;var ba=env.abort;var ca=env.assert;var da=env.invoke_iiii;var ea=env._sysconf;var fa=env._pthread_self;var ga=env._abort;var ha=env.___setErrNo;var ia=env._sbrk;var ja=env._time;var ka=env._emscripten_memcpy_big;var la=env.___gxx_personality_v0;var ma=env.___resumeException;var na=env.__ZSt18uncaught_exceptionv;var oa=env.___assert_fail;var pa=env.___cxa_find_matching_catch;var qa=0.0;\n// EMSCRIPTEN_START_FUNCS\nfunction ub(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ka=0,La=0,Ma=0,Oa=0,Qa=0,Ra=0,Sa=0,Ua=0,Va=0,Wa=0,Xa=0,_a=0,eb=0,fb=0,gb=0,hb=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,sb=0,tb=0,wb=0,yb=0,zb=0,Ab=0,Bb=0,Ib=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0;fc=i;i=i+1104|0;dc=fc+1072|0;ec=fc+1048|0;cc=fc+1032|0;bc=fc+1020|0;$b=fc+1008|0;_b=fc+984|0;ac=fc+972|0;Sb=fc+596|0;Tb=fc+572|0;Xb=fc+548|0;Wb=fc+524|0;Yb=fc+488|0;Zb=fc+460|0;f=fc+960|0;k=fc+948|0;n=fc+936|0;r=fc+924|0;u=fc+912|0;w=fc+900|0;x=fc+888|0;Ib=fc+876|0;Kb=fc+864|0;Lb=fc+852|0;Mb=fc+840|0;y=fc+828|0;Nb=fc+816|0;Ob=fc+804|0;Pb=fc+792|0;Qb=fc+780|0;B=fc+768|0;C=fc+756|0;D=fc+744|0;F=fc+732|0;G=fc+720|0;H=fc+708|0;I=fc+696|0;fb=fc+672|0;gb=fc+656|0;hb=fc+644|0;jb=fc+632|0;kb=fc+620|0;J=fc+608|0;K=fc+584|0;L=fc+560|0;M=fc+536|0;N=fc+512|0;O=fc+472|0;P=fc+448|0;Q=fc+436|0;na=fc+424|0;Ga=fc+400|0;Ha=fc+384|0;Ka=fc+372|0;La=fc+360|0;R=fc+348|0;S=fc+336|0;T=fc+324|0;U=fc+312|0;V=fc+300|0;W=fc+288|0;X=fc+276|0;_=fc+264|0;$=fc+252|0;oa=fc+240|0;Ma=fc+216|0;Oa=fc+204|0;Qa=fc+192|0;Ra=fc+180|0;aa=fc+168|0;sb=fc+144|0;tb=fc+132|0;wb=fc+120|0;yb=fc+108|0;zb=fc+96|0;Ab=fc+84|0;Bb=fc+72|0;da=fc+60|0;fa=fc+48|0;ha=fc+36|0;ia=fc+24|0;Sa=fc;lb=d;ja=lb-b|0;a:do if((ja|0)>1){ka=(ja|0)>3;if(ka?(a[b>>0]|0)==103:0){la=(a[b+1>>0]|0)==115;Ua=la;la=la?b+2|0:b}else{Ua=0;la=b}do switch(a[la>>0]|0){case 76:{b=vb(b,d,e)|0;break a}case 84:{b=Eb(b,d,e)|0;break a}case 102:{b=Fb(b,d,e)|0;break a}case 97:switch(a[la+1>>0]|0){case 97:{dc=b+2|0;$a(f,841,2);ec=Gb(dc,d,f,e)|0;Ja(f);b=(ec|0)==(dc|0)?b:ec;break a}case 100:{dc=b+2|0;$a(k,852,1);ec=Hb(dc,d,k,e)|0;Ja(k);b=(ec|0)==(dc|0)?b:ec;break a}case 110:{dc=b+2|0;$a(n,852,1);ec=Gb(dc,d,n,e)|0;Ja(n);b=(ec|0)==(dc|0)?b:ec;break a}case 78:{dc=b+2|0;$a(r,854,2);ec=Gb(dc,d,r,e)|0;Ja(r);b=(ec|0)==(dc|0)?b:ec;break a}case 83:{dc=b+2|0;$a(u,857,1);ec=Gb(dc,d,u,e)|0;Ja(u);b=(ec|0)==(dc|0)?b:ec;break a}case 116:{if(((((ja|0)>2?(a[b>>0]|0)==97:0)?(a[b+1>>0]|0)==116:0)?(bc=b+2|0,nb=Na(bc,d,e)|0,(nb|0)!=(bc|0)):0)?(Da=c[e+4>>2]|0,(c[e>>2]|0)!=(Da|0)):0){o=Da+-24|0;Cb(cc,o);b=Ta(cc,0,859)|0;c[ec>>2]=c[b>>2];c[ec+4>>2]=c[b+4>>2];c[ec+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=Ya(ec,799)|0;c[dc>>2]=c[b>>2];c[dc+4>>2]=c[b+4>>2];c[dc+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}do if(a[o>>0]&1){n=Da+-16|0;a[c[n>>2]>>0]=0;k=Da+-20|0;c[k>>2]=0;b=a[o>>0]|0;if(!(b&1))j=10;else{j=c[o>>2]|0;b=j&255;j=(j&-2)+-1|0}if(!(b&1)){f=(b&255)>>>1;if((b&255)<22){h=10;m=1;l=f}else{h=(f+16&240)+-1|0;m=1;l=f}}else{h=10;m=0;l=0}if((h|0)!=(j|0)){if((h|0)==10){g=o+1|0;f=c[n>>2]|0;if(m){Fc(g|0,f|0,((b&255)>>>1)+1|0)|0;wc(f)}else{a[g>>0]=a[f>>0]|0;wc(f)}a[o>>0]=l<<1;break}f=h+1|0;g=vc(f)|0;if(!(h>>>0<=j>>>0&(g|0)==0)){if(m)Fc(g|0,o+1|0,((b&255)>>>1)+1|0)|0;else{bc=c[n>>2]|0;a[g>>0]=a[bc>>0]|0;wc(bc)}c[o>>2]=f|1;c[k>>2]=l;c[n>>2]=g}}}else{a[o+1>>0]=0;a[o>>0]=0}while(0);c[o>>2]=c[dc>>2];c[o+4>>2]=c[dc+4>>2];c[o+8>>2]=c[dc+8>>2];b=0;while(1){if((b|0)==3)break;c[dc+(b<<2)>>2]=0;b=b+1|0}Ja(dc);Ja(ec);Ja(cc);b=nb}break a}case 122:{if(((((ja|0)>2?(a[b>>0]|0)==97:0)?(a[b+1>>0]|0)==122:0)?(bc=b+2|0,ob=ub(bc,d,e)|0,(ob|0)!=(bc|0)):0)?(Ea=c[e+4>>2]|0,(c[e>>2]|0)!=(Ea|0)):0){o=Ea+-24|0;Cb(cc,o);b=Ta(cc,0,859)|0;c[ec>>2]=c[b>>2];c[ec+4>>2]=c[b+4>>2];c[ec+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=Ya(ec,799)|0;c[dc>>2]=c[b>>2];c[dc+4>>2]=c[b+4>>2];c[dc+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}do if(a[o>>0]&1){n=Ea+-16|0;a[c[n>>2]>>0]=0;k=Ea+-20|0;c[k>>2]=0;b=a[o>>0]|0;if(!(b&1))j=10;else{j=c[o>>2]|0;b=j&255;j=(j&-2)+-1|0}if(!(b&1)){f=(b&255)>>>1;if((b&255)<22){m=1;h=10;l=f}else{m=1;h=(f+16&240)+-1|0;l=f}}else{m=0;h=10;l=0}if((h|0)!=(j|0)){if((h|0)==10){g=o+1|0;f=c[n>>2]|0;if(m){Fc(g|0,f|0,((b&255)>>>1)+1|0)|0;wc(f)}else{a[g>>0]=a[f>>0]|0;wc(f)}a[o>>0]=l<<1;break}f=h+1|0;g=vc(f)|0;if(!(h>>>0<=j>>>0&(g|0)==0)){if(m)Fc(g|0,o+1|0,((b&255)>>>1)+1|0)|0;else{bc=c[n>>2]|0;a[g>>0]=a[bc>>0]|0;wc(bc)}c[o>>2]=f|1;c[k>>2]=l;c[n>>2]=g}}}else{a[o+1>>0]=0;a[o>>0]=0}while(0);c[o>>2]=c[dc>>2];c[o+4>>2]=c[dc+4>>2];c[o+8>>2]=c[dc+8>>2];b=0;while(1){if((b|0)==3)break;c[dc+(b<<2)>>2]=0;b=b+1|0}Ja(dc);Ja(ec);Ja(cc);b=ob}break a}default:break a}case 99:switch(a[la+1>>0]|0){case 99:{if((((((ja|0)>2?(a[b>>0]|0)==99:0)?(a[b+1>>0]|0)==99:0)?(Zb=b+2|0,z=Na(Zb,d,e)|0,(z|0)!=(Zb|0)):0)?(Xa=ub(z,d,e)|0,(Xa|0)!=(z|0)):0)?(ua=e+4|0,A=c[ua>>2]|0,((A-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){Cb(dc,A+-24|0);b=c[ua>>2]|0;f=b+-24|0;g=b;while(1){if((g|0)==(f|0))break;e=g+-24|0;c[ua>>2]=e;Ia(e);g=c[ua>>2]|0}g=b+-48|0;Cb(ac,g);b=Ta(ac,0,869)|0;c[_b>>2]=c[b>>2];c[_b+4>>2]=c[b+4>>2];c[_b+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=Ya(_b,881)|0;c[$b>>2]=c[b>>2];c[$b+4>>2]=c[b+4>>2];c[$b+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=a[dc>>0]|0;f=(b&1)==0;b=Za($b,f?dc+1|0:c[dc+8>>2]|0,f?(b&255)>>>1:c[dc+4>>2]|0)|0;c[bc>>2]=c[b>>2];c[bc+4>>2]=c[b+4>>2];c[bc+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=Ya(bc,799)|0;c[cc>>2]=c[b>>2];c[cc+4>>2]=c[b+4>>2];c[cc+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}rb(ec,cc);Db(g,ec);Ia(ec);Ja(cc);Ja(bc);Ja($b);Ja(_b);Ja(ac);Ja(dc);b=Xa}break a}case 108:{b:do if((((ka?(a[b>>0]|0)==99:0)?(a[b+1>>0]|0)==108:0)?(cc=b+2|0,pb=ub(cc,d,e)|0,!((pb|0)==(cc|0)|(pb|0)==(d|0))):0)?(Rb=e+4|0,E=c[Rb>>2]|0,(c[e>>2]|0)!=(E|0)):0){cc=E+-12|0;g=a[cc>>0]|0;f=(g&1)==0;Za(E+-24|0,f?cc+1|0:c[E+-4>>2]|0,f?(g&255)>>>1:c[E+-8>>2]|0)|0;g=c[Rb>>2]|0;f=0;while(1){if((f|0)==3)break;c[dc+(f<<2)>>2]=0;f=f+1|0}p=g+-12|0;do if(a[p>>0]&1){o=g+-4|0;a[c[o>>2]>>0]=0;l=g+-8|0;c[l>>2]=0;f=a[p>>0]|0;if(!(f&1))k=10;else{k=c[p>>2]|0;f=k&255;k=(k&-2)+-1|0}if(!(f&1)){g=(f&255)>>>1;if((f&255)<22){n=1;j=10;m=g}else{n=1;j=(g+16&240)+-1|0;m=g}}else{n=0;j=10;m=0}if((j|0)!=(k|0)){if((j|0)==10){h=p+1|0;g=c[o>>2]|0;if(n){Fc(h|0,g|0,((f&255)>>>1)+1|0)|0;wc(g)}else{a[h>>0]=a[g>>0]|0;wc(g)}a[p>>0]=m<<1;break}g=j+1|0;h=vc(g)|0;if(!(j>>>0<=k>>>0&(h|0)==0)){if(n)Fc(h|0,p+1|0,((f&255)>>>1)+1|0)|0;else{cc=c[o>>2]|0;a[h>>0]=a[cc>>0]|0;wc(cc)}c[p>>2]=g|1;c[l>>2]=m;c[o>>2]=h}}}else{a[p+1>>0]=0;a[p>>0]=0}while(0);c[p>>2]=c[dc>>2];c[p+4>>2]=c[dc+4>>2];c[p+8>>2]=c[dc+8>>2];f=0;while(1){if((f|0)==3)break;c[dc+(f<<2)>>2]=0;f=f+1|0}Ja(dc);Ya((c[Rb>>2]|0)+-24|0,797)|0;l=ec+4|0;m=ec+8|0;n=ec+1|0;g=pb;while(1){if((a[g>>0]|0)==69)break;k=ub(g,d,e)|0;if((k|0)==(g|0)|(k|0)==(d|0))break b;f=c[Rb>>2]|0;if((c[e>>2]|0)==(f|0))break b;Cb(ec,f+-24|0);h=c[Rb>>2]|0;j=h+-24|0;f=h;while(1){if((f|0)==(j|0))break;dc=f+-24|0;c[Rb>>2]=dc;Ia(dc);f=c[Rb>>2]|0}g=a[ec>>0]|0;f=(g&1)==0;g=f?(g&255)>>>1:c[l>>2]|0;if(g){if((c[e>>2]|0)==(j|0)){Vb=147;break}Za(h+-48|0,f?n:c[m>>2]|0,g)|0}Ja(ec);g=k}if((Vb|0)==147){Ja(ec);break}f=c[Rb>>2]|0;if((c[e>>2]|0)!=(f|0)){Ya(f+-24|0,799)|0;b=g+1|0}}while(0);break a}case 109:{dc=b+2|0;$a(w,884,1);ec=Gb(dc,d,w,e)|0;Ja(w);b=(ec|0)==(dc|0)?b:ec;break a}case 111:{dc=b+2|0;$a(x,886,1);ec=Hb(dc,d,x,e)|0;Ja(x);b=(ec|0)==(dc|0)?b:ec;break a}case 118:{c:do if((((ja|0)>2?(a[b>>0]|0)==99:0)?(a[b+1>>0]|0)==118:0)?(Yb=e+63|0,Xb=a[Yb>>0]|0,a[Yb>>0]=0,Zb=b+2|0,ma=Na(Zb,d,e)|0,a[Yb>>0]=Xb,!((ma|0)==(Zb|0)|(ma|0)==(d|0))):0){if((a[ma>>0]|0)!=95){f=ub(ma,d,e)|0;if((f|0)==(ma|0))break}else{f=ma+1|0;if((f|0)==(d|0))break;g=a[f>>0]|0;d:do if(g<<24>>24==69){j=e+4|0;h=c[j>>2]|0;Zb=c[e+8>>2]|0;k=Zb;if(h>>>0<Zb>>>0){c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}g=h+12|0;h=0;while(1){if((h|0)==3)break;c[g+(h<<2)>>2]=0;h=h+1|0}c[j>>2]=(c[j>>2]|0)+24;break}g=c[e>>2]|0;Zb=h-g|0;j=(Zb|0)/24|0;h=j+1|0;if((Zb|0)<-24)Pa();g=(k-g|0)/24|0;if(g>>>0<1073741823){g=g<<1;g=g>>>0<h>>>0?h:g}else g=2147483647;ab(dc,g,j,e+12|0);j=dc+8|0;k=c[j>>2]|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;c[k+20>>2]=0;g=0;while(1){if((g|0)==3)break;c[k+(g<<2)>>2]=0;g=g+1|0}g=k+12|0;h=0;while(1){if((h|0)==3)break;c[g+(h<<2)>>2]=0;h=h+1|0}c[j>>2]=k+24;cb(e,dc);bb(dc)}else while(1){if(g<<24>>24==69)break d;h=ub(f,d,e)|0;if((h|0)==(f|0)|(h|0)==(d|0))break c;g=a[h>>0]|0;f=h}while(0);f=f+1|0}j=e+4|0;g=c[j>>2]|0;if(((g-(c[e>>2]|0)|0)/24|0)>>>0>=2){Cb(dc,g+-24|0);b=c[j>>2]|0;g=b+-24|0;h=b;while(1){if((h|0)==(g|0))break;e=h+-24|0;c[j>>2]=e;Ia(e);h=c[j>>2]|0}h=b+-48|0;Cb(ac,h);b=Ta(ac,0,797)|0;c[_b>>2]=c[b>>2];c[_b+4>>2]=c[b+4>>2];c[_b+8>>2]=c[b+8>>2];g=0;while(1){if((g|0)==3)break;c[b+(g<<2)>>2]=0;g=g+1|0}b=Ya(_b,888)|0;c[$b>>2]=c[b>>2];c[$b+4>>2]=c[b+4>>2];c[$b+8>>2]=c[b+8>>2];g=0;while(1){if((g|0)==3)break;c[b+(g<<2)>>2]=0;g=g+1|0}b=a[dc>>0]|0;g=(b&1)==0;b=Za($b,g?dc+1|0:c[dc+8>>2]|0,g?(b&255)>>>1:c[dc+4>>2]|0)|0;c[bc>>2]=c[b>>2];c[bc+4>>2]=c[b+4>>2];c[bc+8>>2]=c[b+8>>2];g=0;while(1){if((g|0)==3)break;c[b+(g<<2)>>2]=0;g=g+1|0}b=Ya(bc,799)|0;c[cc>>2]=c[b>>2];c[cc+4>>2]=c[b+4>>2];c[cc+8>>2]=c[b+8>>2];g=0;while(1){if((g|0)==3)break;c[b+(g<<2)>>2]=0;g=g+1|0}rb(ec,cc);Db(h,ec);Ia(ec);Ja(cc);Ja(bc);Ja($b);Ja(_b);Ja(ac);Ja(dc);b=f}}while(0);break a}default:break a}case 100:switch(a[la+1>>0]|0){case 97:{ec=la+2|0;p=ub(ec,d,e)|0;if((p|0)==(ec|0))break a;g=e+4|0;h=c[g>>2]|0;if((c[e>>2]|0)==(h|0))break a;o=h+-24|0;e:do if(Ua)$a(Lb,891,2);else{b=0;while(1){if((b|0)==3)break e;c[Lb+(b<<2)>>2]=0;b=b+1|0}}while(0);b=Ya(Lb,894)|0;c[Kb>>2]=c[b>>2];c[Kb+4>>2]=c[b+4>>2];c[Kb+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}Cb(Mb,(c[g>>2]|0)+-24|0);b=a[Mb>>0]|0;f=(b&1)==0;b=Za(Kb,f?Mb+1|0:c[Mb+8>>2]|0,f?(b&255)>>>1:c[Mb+4>>2]|0)|0;c[Ib>>2]=c[b>>2];c[Ib+4>>2]=c[b+4>>2];c[Ib+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}do if(a[o>>0]&1){n=h+-16|0;a[c[n>>2]>>0]=0;k=h+-20|0;c[k>>2]=0;b=a[o>>0]|0;if(!(b&1))j=10;else{j=c[o>>2]|0;b=j&255;j=(j&-2)+-1|0}if(!(b&1)){f=(b&255)>>>1;if((b&255)<22){m=1;h=10;l=f}else{m=1;h=(f+16&240)+-1|0;l=f}}else{m=0;h=10;l=0}if((h|0)!=(j|0)){if((h|0)==10){g=o+1|0;f=c[n>>2]|0;if(m){Fc(g|0,f|0,((b&255)>>>1)+1|0)|0;wc(f)}else{a[g>>0]=a[f>>0]|0;wc(f)}a[o>>0]=l<<1;break}f=h+1|0;g=vc(f)|0;if(!(h>>>0<=j>>>0&(g|0)==0)){if(m)Fc(g|0,o+1|0,((b&255)>>>1)+1|0)|0;else{ec=c[n>>2]|0;a[g>>0]=a[ec>>0]|0;wc(ec)}c[o>>2]=f|1;c[k>>2]=l;c[n>>2]=g}}}else{a[o+1>>0]=0;a[o>>0]=0}while(0);c[o>>2]=c[Ib>>2];c[o+4>>2]=c[Ib+4>>2];c[o+8>>2]=c[Ib+8>>2];b=0;while(1){if((b|0)==3)break;c[Ib+(b<<2)>>2]=0;b=b+1|0}Ja(Ib);Ja(Mb);Ja(Kb);Ja(Lb);b=p;break a}case 99:{if((((((ja|0)>2?(a[b>>0]|0)==100:0)?(a[b+1>>0]|0)==99:0)?(Zb=b+2|0,Y=Na(Zb,d,e)|0,(Y|0)!=(Zb|0)):0)?(_a=ub(Y,d,e)|0,(_a|0)!=(Y|0)):0)?(va=e+4|0,Z=c[va>>2]|0,((Z-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){Cb(dc,Z+-24|0);b=c[va>>2]|0;f=b+-24|0;g=b;while(1){if((g|0)==(f|0))break;e=g+-24|0;c[va>>2]=e;Ia(e);g=c[va>>2]|0}g=b+-48|0;Cb(ac,g);b=Ta(ac,0,904)|0;c[_b>>2]=c[b>>2];c[_b+4>>2]=c[b+4>>2];c[_b+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=Ya(_b,881)|0;c[$b>>2]=c[b>>2];c[$b+4>>2]=c[b+4>>2];c[$b+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=a[dc>>0]|0;f=(b&1)==0;b=Za($b,f?dc+1|0:c[dc+8>>2]|0,f?(b&255)>>>1:c[dc+4>>2]|0)|0;c[bc>>2]=c[b>>2];c[bc+4>>2]=c[b+4>>2];c[bc+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=Ya(bc,799)|0;c[cc>>2]=c[b>>2];c[cc+4>>2]=c[b+4>>2];c[cc+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}rb(ec,cc);Db(g,ec);Ia(ec);Ja(cc);Ja(bc);Ja($b);Ja(_b);Ja(ac);Ja(dc);b=_a}break a}case 101:{dc=b+2|0;$a(y,4262,1);ec=Hb(dc,d,y,e)|0;Ja(y);b=(ec|0)==(dc|0)?b:ec;break a}case 108:{ec=la+2|0;p=ub(ec,d,e)|0;if((p|0)==(ec|0))break a;g=e+4|0;h=c[g>>2]|0;if((c[e>>2]|0)==(h|0))break a;o=h+-24|0;f:do if(Ua)$a(Pb,891,2);else{b=0;while(1){if((b|0)==3)break f;c[Pb+(b<<2)>>2]=0;b=b+1|0}}while(0);b=Ya(Pb,918)|0;c[Ob>>2]=c[b>>2];c[Ob+4>>2]=c[b+4>>2];c[Ob+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}Cb(Qb,(c[g>>2]|0)+-24|0);b=a[Qb>>0]|0;f=(b&1)==0;b=Za(Ob,f?Qb+1|0:c[Qb+8>>2]|0,f?(b&255)>>>1:c[Qb+4>>2]|0)|0;c[Nb>>2]=c[b>>2];c[Nb+4>>2]=c[b+4>>2];c[Nb+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}do if(a[o>>0]&1){n=h+-16|0;a[c[n>>2]>>0]=0;k=h+-20|0;c[k>>2]=0;b=a[o>>0]|0;if(!(b&1))j=10;else{j=c[o>>2]|0;b=j&255;j=(j&-2)+-1|0}if(!(b&1)){f=(b&255)>>>1;if((b&255)<22){m=1;h=10;l=f}else{m=1;h=(f+16&240)+-1|0;l=f}}else{m=0;h=10;l=0}if((h|0)!=(j|0)){if((h|0)==10){g=o+1|0;f=c[n>>2]|0;if(m){Fc(g|0,f|0,((b&255)>>>1)+1|0)|0;wc(f)}else{a[g>>0]=a[f>>0]|0;wc(f)}a[o>>0]=l<<1;break}f=h+1|0;g=vc(f)|0;if(!(h>>>0<=j>>>0&(g|0)==0)){if(m)Fc(g|0,o+1|0,((b&255)>>>1)+1|0)|0;else{ec=c[n>>2]|0;a[g>>0]=a[ec>>0]|0;wc(ec)}c[o>>2]=f|1;c[k>>2]=l;c[n>>2]=g}}}else{a[o+1>>0]=0;a[o>>0]=0}while(0);c[o>>2]=c[Nb>>2];c[o+4>>2]=c[Nb+4>>2];c[o+8>>2]=c[Nb+8>>2];b=0;while(1){if((b|0)==3)break;c[Nb+(b<<2)>>2]=0;b=b+1|0}Ja(Nb);Ja(Qb);Ja(Ob);Ja(Pb);b=p;break a}case 110:{b=Jb(b,d,e)|0;break a}case 115:{if((((((ja|0)>2?(a[b>>0]|0)==100:0)?(a[b+1>>0]|0)==115:0)?(cc=b+2|0,ba=ub(cc,d,e)|0,(ba|0)!=(cc|0)):0)?(wa=ub(ba,d,e)|0,(wa|0)!=(ba|0)):0)?(xa=e+4|0,ca=c[xa>>2]|0,((ca-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){Cb(dc,ca+-24|0);b=c[xa>>2]|0;f=b+-24|0;g=b;while(1){if((g|0)==(f|0))break;cc=g+-24|0;c[xa>>2]=cc;Ia(cc);g=c[xa>>2]|0}xb(ec,1833,dc);cc=a[ec>>0]|0;bc=(cc&1)==0;Za(b+-48|0,bc?ec+1|0:c[ec+8>>2]|0,bc?(cc&255)>>>1:c[ec+4>>2]|0)|0;Ja(ec);Ja(dc);b=wa}break a}case 116:{if((((((ja|0)>2?(a[b>>0]|0)==100:0)?(a[b+1>>0]|0)==116:0)?(cc=b+2|0,ea=ub(cc,d,e)|0,(ea|0)!=(cc|0)):0)?(ya=Jb(ea,d,e)|0,(ya|0)!=(ea|0)):0)?(za=e+4|0,ga=c[za>>2]|0,((ga-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){Cb(dc,ga+-24|0);b=c[za>>2]|0;f=b+-24|0;g=b;while(1){if((g|0)==(f|0))break;cc=g+-24|0;c[za>>2]=cc;Ia(cc);g=c[za>>2]|0}xb(ec,4798,dc);cc=a[ec>>0]|0;bc=(cc&1)==0;Za(b+-48|0,bc?ec+1|0:c[ec+8>>2]|0,bc?(cc&255)>>>1:c[ec+4>>2]|0)|0;Ja(ec);Ja(dc);b=ya}break a}case 118:{dc=b+2|0;$a(B,2368,1);ec=Gb(dc,d,B,e)|0;Ja(B);b=(ec|0)==(dc|0)?b:ec;break a}case 86:{dc=b+2|0;$a(C,1836,2);ec=Gb(dc,d,C,e)|0;Ja(C);b=(ec|0)==(dc|0)?b:ec;break a}default:break a}case 101:switch(a[la+1>>0]|0){case 111:{dc=b+2|0;$a(D,1839,1);ec=Gb(dc,d,D,e)|0;Ja(D);b=(ec|0)==(dc|0)?b:ec;break a}case 79:{dc=b+2|0;$a(F,1841,2);ec=Gb(dc,d,F,e)|0;Ja(F);b=(ec|0)==(dc|0)?b:ec;break a}case 113:{dc=b+2|0;$a(G,1844,2);ec=Gb(dc,d,G,e)|0;Ja(G);b=(ec|0)==(dc|0)?b:ec;break a}default:break a}case 103:switch(a[la+1>>0]|0){case 101:{dc=b+2|0;$a(H,1847,2);ec=Gb(dc,d,H,e)|0;Ja(H);b=(ec|0)==(dc|0)?b:ec;break a}case 116:{dc=b+2|0;$a(I,844,1);ec=Gb(dc,d,I,e)|0;Ja(I);b=(ec|0)==(dc|0)?b:ec;break a}default:break a}case 105:{if((a[la+1>>0]|0)!=120)break a;cc=b+2|0;f=ub(cc,d,e)|0;if((f|0)==(cc|0))break a;j=ub(f,d,e)|0;h=e+4|0;if((j|0)==(f|0)){g=c[h>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0))break a;ec=g+-24|0;c[h>>2]=ec;Ia(ec);g=c[h>>2]|0}}f=c[h>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)break a;Cb(dc,f+-24|0);b=c[h>>2]|0;f=b+-24|0;g=b;while(1){if((g|0)==(f|0))break;cc=g+-24|0;c[h>>2]=cc;Ia(cc);g=c[h>>2]|0}Cb(ec,b+-48|0);g=(c[h>>2]|0)+-24|0;xb(kb,797,ec);b=Ya(kb,1850)|0;c[jb>>2]=c[b>>2];c[jb+4>>2]=c[b+4>>2];c[jb+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=a[dc>>0]|0;f=(b&1)==0;b=Za(jb,f?dc+1|0:c[dc+8>>2]|0,f?(b&255)>>>1:c[dc+4>>2]|0)|0;c[hb>>2]=c[b>>2];c[hb+4>>2]=c[b+4>>2];c[hb+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=Ya(hb,4264)|0;c[gb>>2]=c[b>>2];c[gb+4>>2]=c[b+4>>2];c[gb+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}rb(fb,gb);Db(g,fb);Ia(fb);Ja(gb);Ja(hb);Ja(jb);Ja(kb);Ja(ec);Ja(dc);b=j;break a}case 108:switch(a[la+1>>0]|0){case 101:{dc=b+2|0;$a(J,1853,2);ec=Gb(dc,d,J,e)|0;Ja(J);b=(ec|0)==(dc|0)?b:ec;break a}case 115:{dc=b+2|0;$a(K,1856,2);ec=Gb(dc,d,K,e)|0;Ja(K);b=(ec|0)==(dc|0)?b:ec;break a}case 83:{dc=b+2|0;$a(L,1859,3);ec=Gb(dc,d,L,e)|0;Ja(L);b=(ec|0)==(dc|0)?b:ec;break a}case 116:{dc=b+2|0;$a(M,1427,1);ec=Gb(dc,d,M,e)|0;Ja(M);b=(ec|0)==(dc|0)?b:ec;break a}default:break a}case 109:switch(a[la+1>>0]|0){case 105:{dc=b+2|0;$a(N,1863,1);ec=Gb(dc,d,N,e)|0;Ja(N);b=(ec|0)==(dc|0)?b:ec;break a}case 73:{dc=b+2|0;$a(O,1865,2);ec=Gb(dc,d,O,e)|0;Ja(O);b=(ec|0)==(dc|0)?b:ec;break a}case 108:{dc=b+2|0;$a(P,4262,1);ec=Gb(dc,d,P,e)|0;Ja(P);b=(ec|0)==(dc|0)?b:ec;break a}case 76:{dc=b+2|0;$a(Q,1868,2);ec=Gb(dc,d,Q,e)|0;Ja(Q);b=(ec|0)==(dc|0)?b:ec;break a}case 109:{f=b+2|0;if((f|0)!=(d|0)?(a[f>>0]|0)==95:0){dc=b+3|0;$a(na,1871,2);ec=Hb(dc,d,na,e)|0;Ja(na);b=(ec|0)==(dc|0)?b:ec;break a}h=ub(f,d,e)|0;if((h|0)==(f|0))break a;f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0))break a;g=f+-24|0;Cb(La,g);b=Ta(La,0,797)|0;c[Ka>>2]=c[b>>2];c[Ka+4>>2]=c[b+4>>2];c[Ka+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=Ya(Ka,1874)|0;c[Ha>>2]=c[b>>2];c[Ha+4>>2]=c[b+4>>2];c[Ha+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}rb(Ga,Ha);Db(g,Ga);Ia(Ga);Ja(Ha);Ja(Ka);Ja(La);b=h;break a}default:break a}case 110:switch(a[la+1>>0]|0){case 119:case 97:{g:do if(ka){f=a[b>>0]|0;if(f<<24>>24==103){s=(a[b+1>>0]|0)==115;g=s?b+2|0:b;f=a[g>>0]|0}else{s=0;g=b}if(f<<24>>24==110){f=a[g+1>>0]|0;switch(f<<24>>24){case 97:case 119:break;default:break g}q=f<<24>>24==97;f=g+2|0;h:do if((f|0)!=(d|0)){p=0;while(1){if((a[f>>0]|0)==95)break;h=ub(f,d,e)|0;f=(h|0)==(f|0);g=(h|0)==(d|0);if(f|g)break h;else{p=p|(f|g)^1;f=h}}Rb=f+1|0;g=Na(Rb,d,e)|0;if(!((g|0)==(Rb|0)|(g|0)==(d|0))){f=a[g>>0]|0;i:do if(!((lb-g|0)>2&f<<24>>24==112))if(f<<24>>24==69){o=0;r=g}else break h;else{if((a[g+1>>0]|0)!=105)break h;f=g+2|0;while(1){if((a[f>>0]|0)==69){o=1;r=f;break i}Rb=f;f=ub(f,d,e)|0;if((f|0)==(Rb|0)|(f|0)==(d|0))break h}}while(0);f=0;while(1){if((f|0)==3)break;c[ec+(f<<2)>>2]=0;f=f+1|0}j:do if(o){n=e+4|0;f=c[n>>2]|0;if((c[e>>2]|0)==(f|0)){g=b;f=1}else{Cb(cc,f+-24|0);k:do if(!(a[ec>>0]&1)){a[ec+1>>0]=0;a[ec>>0]=0}else{k=ec+8|0;g=c[k>>2]|0;a[g>>0]=0;l=ec+4|0;c[l>>2]=0;f=c[ec>>2]|0;m=(f&-2)+-1|0;h=f&255;do if(!(h&1)){f=f>>>1&127;if((h&255)<22){Fc(ec+1|0,g|0,f+1|0)|0;wc(g);break}g=f+16&240;j=g+-1|0;if((j|0)==(m|0))break k;h=vc(g)|0;if(j>>>0<=m>>>0&(h|0)==0)break k;Fc(h|0,ec+1|0,f+1|0)|0;c[ec>>2]=g|1;c[l>>2]=f;c[k>>2]=h;break k}else{a[ec+1>>0]=0;wc(g);f=0}while(0);a[ec>>0]=f<<1}while(0);c[ec>>2]=c[cc>>2];c[ec+4>>2]=c[cc+4>>2];c[ec+8>>2]=c[cc+8>>2];f=0;while(1){if((f|0)==3)break;c[cc+(f<<2)>>2]=0;f=f+1|0}Ja(cc);f=c[n>>2]|0;g=f+-24|0;while(1){if((f|0)==(g|0)){j=e;f=g;Vb=409;break j}cc=f+-24|0;c[n>>2]=cc;Ia(cc);f=c[n>>2]|0}}}else{f=e+4|0;n=f;j=e;f=c[f>>2]|0;Vb=409}while(0);if((Vb|0)==409)if((c[j>>2]|0)==(f|0)){g=b;f=1}else{Cb(bc,f+-24|0);g=c[n>>2]|0;h=g+-24|0;f=g;while(1){if((f|0)==(h|0))break;cc=f+-24|0;c[n>>2]=cc;Ia(cc);f=c[n>>2]|0}f=0;while(1){if((f|0)==3)break;c[$b+(f<<2)>>2]=0;f=f+1|0}l:do if(p)if((c[j>>2]|0)==(h|0)){g=b;f=1}else{Cb(_b,g+-48|0);m:do if(!(a[$b>>0]&1)){a[$b+1>>0]=0;a[$b>>0]=0}else{k=$b+8|0;g=c[k>>2]|0;a[g>>0]=0;l=$b+4|0;c[l>>2]=0;f=c[$b>>2]|0;m=(f&-2)+-1|0;h=f&255;do if(!(h&1)){f=f>>>1&127;if((h&255)<22){Fc($b+1|0,g|0,f+1|0)|0;wc(g);break}g=f+16&240;j=g+-1|0;if((j|0)==(m|0))break m;h=vc(g)|0;if(j>>>0<=m>>>0&(h|0)==0)break m;Fc(h|0,$b+1|0,f+1|0)|0;c[$b>>2]=g|1;c[l>>2]=f;c[k>>2]=h;break m}else{a[$b+1>>0]=0;wc(g);f=0}while(0);a[$b>>0]=f<<1}while(0);c[$b>>2]=c[_b>>2];c[$b+4>>2]=c[_b+4>>2];c[$b+8>>2]=c[_b+8>>2];f=0;while(1){if((f|0)==3)break;c[_b+(f<<2)>>2]=0;f=f+1|0}Ja(_b);g=c[n>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0)){Vb=434;break l}cc=g+-24|0;c[n>>2]=cc;Ia(cc);g=c[n>>2]|0}}else Vb=434;while(0);if((Vb|0)==434){f=0;while(1){if((f|0)==3)break;c[ac+(f<<2)>>2]=0;f=f+1|0}if(s)Ub(ac,891,2);if(q)Ya(ac,1878)|0;else Ya(ac,1882)|0;if(p){xb(Tb,797,$b);f=Ya(Tb,846)|0;c[Sb>>2]=c[f>>2];c[Sb+4>>2]=c[f+4>>2];c[Sb+8>>2]=c[f+8>>2];g=0;while(1){if((g|0)==3)break;c[f+(g<<2)>>2]=0;g=g+1|0}cc=a[Sb>>0]|0;_b=(cc&1)==0;Za(ac,_b?Sb+1|0:c[Sb+8>>2]|0,_b?(cc&255)>>>1:c[Sb+4>>2]|0)|0;Ja(Sb);Ja(Tb)}cc=a[bc>>0]|0;_b=(cc&1)==0;Za(ac,_b?bc+1|0:c[bc+8>>2]|0,_b?(cc&255)>>>1:c[bc+4>>2]|0)|0;if(o){xb(Wb,849,ec);f=Ya(Wb,799)|0;c[Xb>>2]=c[f>>2];c[Xb+4>>2]=c[f+4>>2];c[Xb+8>>2]=c[f+8>>2];g=0;while(1){if((g|0)==3)break;c[f+(g<<2)>>2]=0;g=g+1|0}cc=a[Xb>>0]|0;_b=(cc&1)==0;Za(ac,_b?Xb+1|0:c[Xb+8>>2]|0,_b?(cc&255)>>>1:c[Xb+4>>2]|0)|0;Ja(Xb);Ja(Wb)};c[Zb>>2]=c[ac>>2];c[Zb+4>>2]=c[ac+4>>2];c[Zb+8>>2]=c[ac+8>>2];f=0;while(1){if((f|0)==3)break;c[ac+(f<<2)>>2]=0;f=f+1|0}rb(Yb,Zb);f=c[n>>2]|0;cc=c[e+8>>2]|0;j=cc;if(f>>>0<cc>>>0){db(f,Yb);c[n>>2]=(c[n>>2]|0)+24}else{g=c[e>>2]|0;cc=f-g|0;k=(cc|0)/24|0;h=k+1|0;if((cc|0)<-24)Pa();f=(j-g|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<h>>>0?h:f}else f=2147483647;ab(dc,f,k,e+12|0);cc=dc+8|0;_b=c[cc>>2]|0;db(_b,Yb);c[cc>>2]=_b+24;cb(e,dc);bb(dc)}Ia(Yb);Ja(Zb);Ja(ac);g=r+1|0;f=0}Ja($b);Ja(bc)}Ja(ec);if(!f){b=g;break g}}}while(0)}}while(0);break a}case 101:{dc=b+2|0;$a(R,1884,2);ec=Gb(dc,d,R,e)|0;Ja(R);b=(ec|0)==(dc|0)?b:ec;break a}case 103:{dc=b+2|0;$a(S,1863,1);ec=Hb(dc,d,S,e)|0;Ja(S);b=(ec|0)==(dc|0)?b:ec;break a}case 116:{dc=b+2|0;$a(T,1887,1);ec=Hb(dc,d,T,e)|0;Ja(T);b=(ec|0)==(dc|0)?b:ec;break a}case 120:{r=b+2|0;f=ub(r,d,e)|0;if((f|0)!=(r|0)?(Fa=c[e+4>>2]|0,(c[e>>2]|0)!=(Fa|0)):0){q=Fa+-24|0;Cb(cc,q);g=Ta(cc,0,1889)|0;c[ec>>2]=c[g>>2];c[ec+4>>2]=c[g+4>>2];c[ec+8>>2]=c[g+8>>2];h=0;while(1){if((h|0)==3)break;c[g+(h<<2)>>2]=0;h=h+1|0}g=Ya(ec,799)|0;c[dc>>2]=c[g>>2];c[dc+4>>2]=c[g+4>>2];c[dc+8>>2]=c[g+8>>2];h=0;while(1){if((h|0)==3)break;c[g+(h<<2)>>2]=0;h=h+1|0}do if(a[q>>0]&1){p=Fa+-16|0;a[c[p>>2]>>0]=0;m=Fa+-20|0;c[m>>2]=0;g=a[q>>0]|0;if(!(g&1))l=10;else{l=c[q>>2]|0;g=l&255;l=(l&-2)+-1|0}if(!(g&1)){h=(g&255)>>>1;if((g&255)<22){k=10;n=h;o=1}else{k=(h+16&240)+-1|0;n=h;o=1}}else{k=10;n=0;o=0}if((k|0)!=(l|0)){if((k|0)==10){j=q+1|0;h=c[p>>2]|0;if(o){Fc(j|0,h|0,((g&255)>>>1)+1|0)|0;wc(h)}else{a[j>>0]=a[h>>0]|0;wc(h)}a[q>>0]=n<<1;break}h=k+1|0;j=vc(h)|0;if(!(k>>>0<=l>>>0&(j|0)==0)){if(o)Fc(j|0,q+1|0,((g&255)>>>1)+1|0)|0;else{bc=c[p>>2]|0;a[j>>0]=a[bc>>0]|0;wc(bc)}c[q>>2]=h|1;c[m>>2]=n;c[p>>2]=j}}}else{a[q+1>>0]=0;a[q>>0]=0}while(0);c[q>>2]=c[dc>>2];c[q+4>>2]=c[dc+4>>2];c[q+8>>2]=c[dc+8>>2];g=0;while(1){if((g|0)==3)break;c[dc+(g<<2)>>2]=0;g=g+1|0}Ja(dc);Ja(ec);Ja(cc)}else f=r;b=(f|0)==(r|0)?b:f;break a}default:break a}case 111:switch(a[la+1>>0]|0){case 110:{b=Jb(b,d,e)|0;break a}case 111:{dc=b+2|0;$a(U,1900,2);ec=Gb(dc,d,U,e)|0;Ja(U);b=(ec|0)==(dc|0)?b:ec;break a}case 114:{dc=b+2|0;$a(V,1903,1);ec=Gb(dc,d,V,e)|0;Ja(V);b=(ec|0)==(dc|0)?b:ec;break a}case 82:{dc=b+2|0;$a(W,1905,2);ec=Gb(dc,d,W,e)|0;Ja(W);b=(ec|0)==(dc|0)?b:ec;break a}default:break a}case 112:switch(a[la+1>>0]|0){case 109:{dc=b+2|0;$a(X,1908,3);ec=Gb(dc,d,X,e)|0;Ja(X);b=(ec|0)==(dc|0)?b:ec;break a}case 108:{dc=b+2|0;$a(_,1912,1);ec=Gb(dc,d,_,e)|0;Ja(_);b=(ec|0)==(dc|0)?b:ec;break a}case 76:{dc=b+2|0;$a($,1914,2);ec=Gb(dc,d,$,e)|0;Ja($);b=(ec|0)==(dc|0)?b:ec;break a}case 112:{f=b+2|0;if((f|0)!=(d|0)?(a[f>>0]|0)==95:0){dc=b+3|0;$a(oa,1917,2);ec=Hb(dc,d,oa,e)|0;Ja(oa);b=(ec|0)==(dc|0)?b:ec;break a}h=ub(f,d,e)|0;if((h|0)==(f|0))break a;f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0))break a;g=f+-24|0;Cb(Ra,g);b=Ta(Ra,0,797)|0;c[Qa>>2]=c[b>>2];c[Qa+4>>2]=c[b+4>>2];c[Qa+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=Ya(Qa,1920)|0;c[Oa>>2]=c[b>>2];c[Oa+4>>2]=c[b+4>>2];c[Oa+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}rb(Ma,Oa);Db(g,Ma);Ia(Ma);Ja(Oa);Ja(Qa);Ja(Ra);b=h;break a}case 115:{dc=b+2|0;$a(aa,1912,1);ec=Hb(dc,d,aa,e)|0;Ja(aa);b=(ec|0)==(dc|0)?b:ec;break a}case 116:{if((ja|0)<=2)break a;if((a[b>>0]|0)!=112)break a;if((a[b+1>>0]|0)!=116)break a;ec=b+2|0;f=ub(ec,d,e)|0;if((f|0)==(ec|0))break a;j=ub(f,d,e)|0;if((j|0)==(f|0))break a;h=e+4|0;f=c[h>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)break a;Cb(dc,f+-24|0);b=c[h>>2]|0;f=b+-24|0;g=b;while(1){if((g|0)==(f|0))break;ec=g+-24|0;c[h>>2]=ec;Ia(ec);g=c[h>>2]|0}Ya(b+-48|0,1924)|0;b=a[dc>>0]|0;ec=(b&1)==0;Za((c[h>>2]|0)+-24|0,ec?dc+1|0:c[dc+8>>2]|0,ec?(b&255)>>>1:c[dc+4>>2]|0)|0;Ja(dc);b=j;break a}default:break a}case 113:{if((a[la+1>>0]|0)!=117)break a;bc=b+2|0;f=ub(bc,d,e)|0;if((f|0)==(bc|0))break a;g=ub(f,d,e)|0;if((g|0)==(f|0)){f=e+4|0;h=c[f>>2]|0;g=h+-24|0;while(1){if((h|0)==(g|0))break a;ec=h+-24|0;c[f>>2]=ec;Ia(ec);h=c[f>>2]|0}}h=ub(g,d,e)|0;j=e+4|0;if((h|0)==(g|0)){g=c[j>>2]|0;f=g+-24|0;h=g;while(1){if((h|0)==(f|0))break;ec=h+-24|0;c[j>>2]=ec;Ia(ec);h=c[j>>2]|0}g=g+-48|0;while(1){if((f|0)==(g|0))break a;ec=f+-24|0;c[j>>2]=ec;Ia(ec);f=c[j>>2]|0}}f=c[j>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<3)break a;Cb(dc,f+-24|0);b=c[j>>2]|0;f=b+-24|0;g=b;while(1){if((g|0)==(f|0))break;bc=g+-24|0;c[j>>2]=bc;Ia(bc);g=c[j>>2]|0}Cb(ec,b+-48|0);b=c[j>>2]|0;f=b+-24|0;g=b;while(1){if((g|0)==(f|0))break;bc=g+-24|0;c[j>>2]=bc;Ia(bc);g=c[j>>2]|0}Cb(cc,b+-48|0);g=(c[j>>2]|0)+-24|0;xb(Bb,797,cc);b=Ya(Bb,1927)|0;c[Ab>>2]=c[b>>2];c[Ab+4>>2]=c[b+4>>2];c[Ab+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=a[ec>>0]|0;f=(b&1)==0;b=Za(Ab,f?ec+1|0:c[ec+8>>2]|0,f?(b&255)>>>1:c[ec+4>>2]|0)|0;c[zb>>2]=c[b>>2];c[zb+4>>2]=c[b+4>>2];c[zb+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=Ya(zb,1933)|0;c[yb>>2]=c[b>>2];c[yb+4>>2]=c[b+4>>2];c[yb+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=a[dc>>0]|0;f=(b&1)==0;b=Za(yb,f?dc+1|0:c[dc+8>>2]|0,f?(b&255)>>>1:c[dc+4>>2]|0)|0;c[wb>>2]=c[b>>2];c[wb+4>>2]=c[b+4>>2];c[wb+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=Ya(wb,799)|0;c[tb>>2]=c[b>>2];c[tb+4>>2]=c[b+4>>2];c[tb+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}rb(sb,tb);Db(g,sb);Ia(sb);Ja(tb);Ja(wb);Ja(yb);Ja(zb);Ja(Ab);Ja(Bb);Ja(cc);Ja(ec);Ja(dc);b=h;break a}case 114:switch(a[la+1>>0]|0){case 99:{if((((((ja|0)>2?(a[b>>0]|0)==114:0)?(a[b+1>>0]|0)==99:0)?(Zb=b+2|0,h=Na(Zb,d,e)|0,(h|0)!=(Zb|0)):0)?(Va=ub(h,d,e)|0,(Va|0)!=(h|0)):0)?(pa=e+4|0,j=c[pa>>2]|0,((j-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){Cb(dc,j+-24|0);b=c[pa>>2]|0;f=b+-24|0;g=b;while(1){if((g|0)==(f|0))break;e=g+-24|0;c[pa>>2]=e;Ia(e);g=c[pa>>2]|0}g=b+-48|0;Cb(ac,g);b=Ta(ac,0,1939)|0;c[_b>>2]=c[b>>2];c[_b+4>>2]=c[b+4>>2];c[_b+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=Ya(_b,881)|0;c[$b>>2]=c[b>>2];c[$b+4>>2]=c[b+4>>2];c[$b+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=a[dc>>0]|0;f=(b&1)==0;b=Za($b,f?dc+1|0:c[dc+8>>2]|0,f?(b&255)>>>1:c[dc+4>>2]|0)|0;c[bc>>2]=c[b>>2];c[bc+4>>2]=c[b+4>>2];c[bc+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=Ya(bc,799)|0;c[cc>>2]=c[b>>2];c[cc+4>>2]=c[b+4>>2];c[cc+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}rb(ec,cc);Db(g,ec);Ia(ec);Ja(cc);Ja(bc);Ja($b);Ja(_b);Ja(ac);Ja(dc);b=Va}break a}case 109:{dc=b+2|0;$a(da,1957,1);ec=Gb(dc,d,da,e)|0;Ja(da);b=(ec|0)==(dc|0)?b:ec;break a}case 77:{dc=b+2|0;$a(fa,1959,2);ec=Gb(dc,d,fa,e)|0;Ja(fa);b=(ec|0)==(dc|0)?b:ec;break a}case 115:{dc=b+2|0;$a(ha,1962,2);ec=Gb(dc,d,ha,e)|0;Ja(ha);b=(ec|0)==(dc|0)?b:ec;break a}case 83:{dc=b+2|0;$a(ia,1965,3);ec=Gb(dc,d,ia,e)|0;Ja(ia);b=(ec|0)==(dc|0)?b:ec;break a}default:break a}case 115:switch(a[la+1>>0]|0){case 99:{if((((((ja|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==99:0)?(Zb=b+2|0,l=Na(Zb,d,e)|0,(l|0)!=(Zb|0)):0)?(Wa=ub(l,d,e)|0,(Wa|0)!=(l|0)):0)?(qa=e+4|0,m=c[qa>>2]|0,((m-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){Cb(dc,m+-24|0);b=c[qa>>2]|0;f=b+-24|0;g=b;while(1){if((g|0)==(f|0))break;e=g+-24|0;c[qa>>2]=e;Ia(e);g=c[qa>>2]|0}g=b+-48|0;Cb(ac,g);b=Ta(ac,0,1969)|0;c[_b>>2]=c[b>>2];c[_b+4>>2]=c[b+4>>2];c[_b+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=Ya(_b,881)|0;c[$b>>2]=c[b>>2];c[$b+4>>2]=c[b+4>>2];c[$b+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=a[dc>>0]|0;f=(b&1)==0;b=Za($b,f?dc+1|0:c[dc+8>>2]|0,f?(b&255)>>>1:c[dc+4>>2]|0)|0;c[bc>>2]=c[b>>2];c[bc+4>>2]=c[b+4>>2];c[bc+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=Ya(bc,799)|0;c[cc>>2]=c[b>>2];c[cc+4>>2]=c[b+4>>2];c[cc+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}rb(ec,cc);Db(g,ec);Ia(ec);Ja(cc);Ja(bc);Ja($b);Ja(_b);Ja(ac);Ja(dc);b=Wa}break a}case 112:{if((ja|0)<=2)break a;if((a[b>>0]|0)!=115)break a;if((a[b+1>>0]|0)!=112)break a;dc=b+2|0;ec=ub(dc,d,e)|0;b=(ec|0)==(dc|0)?b:ec;break a}case 114:{b=Jb(b,d,e)|0;break a}case 116:{if(((((ja|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==116:0)?(ac=b+2|0,Aa=Na(ac,d,e)|0,(Aa|0)!=(ac|0)):0)?(o=c[e+4>>2]|0,(c[e>>2]|0)!=(o|0)):0){g=o+-24|0;Cb(bc,g);b=Ta(bc,0,1982)|0;c[cc>>2]=c[b>>2];c[cc+4>>2]=c[b+4>>2];c[cc+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=Ya(cc,799)|0;c[ec>>2]=c[b>>2];c[ec+4>>2]=c[b+4>>2];c[ec+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}rb(dc,ec);Db(g,dc);Ia(dc);Ja(ec);Ja(cc);Ja(bc);b=Aa}break a}case 122:{if(((((ja|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==122:0)?(ac=b+2|0,Ba=ub(ac,d,e)|0,(Ba|0)!=(ac|0)):0)?(p=c[e+4>>2]|0,(c[e>>2]|0)!=(p|0)):0){g=p+-24|0;Cb(bc,g);b=Ta(bc,0,1982)|0;c[cc>>2]=c[b>>2];c[cc+4>>2]=c[b+4>>2];c[cc+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=Ya(cc,799)|0;c[ec>>2]=c[b>>2];c[ec+4>>2]=c[b+4>>2];c[ec+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}rb(dc,ec);Db(g,dc);Ia(dc);Ja(ec);Ja(cc);Ja(bc);b=Ba}break a}case 90:{if((lb-la|0)<=2)break a;switch(a[la+2>>0]|0){case 84:break;case 102:{if((((((ja|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==90:0)?(s=b+2|0,(a[s>>0]|0)==102):0)?(Ca=Fb(s,d,e)|0,(Ca|0)!=(s|0)):0)?(t=c[e+4>>2]|0,(c[e>>2]|0)!=(t|0)):0){g=t+-24|0;Cb(bc,g);b=Ta(bc,0,1991)|0;c[cc>>2]=c[b>>2];c[cc+4>>2]=c[b+4>>2];c[cc+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=Ya(cc,799)|0;c[ec>>2]=c[b>>2];c[ec+4>>2]=c[b+4>>2];c[ec+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}rb(dc,ec);Db(g,dc);Ia(dc);Ja(ec);Ja(cc);Ja(bc);b=Ca}break a}default:break a}if(((((ja|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==90:0)?(q=b+2|0,(a[q>>0]|0)==84):0)?(mb=e+4|0,eb=((c[mb>>2]|0)-(c[e>>2]|0)|0)/24|0,qb=Eb(q,d,e)|0,ra=c[e>>2]|0,g=((c[mb>>2]|0)-ra|0)/24|0,ra,(qb|0)!=(q|0)):0){a[ec>>0]=20;b=ec+1|0;f=1991;h=b+10|0;do{a[b>>0]=a[f>>0]|0;b=b+1|0;f=f+1|0}while((b|0)<(h|0));a[ec+11>>0]=0;n:do if((eb|0)!=(g|0)){Cb(cc,ra+(eb*24|0)|0);j=a[cc>>0]|0;k=(j&1)==0;Za(ec,k?cc+1|0:c[cc+8>>2]|0,k?(j&255)>>>1:c[cc+4>>2]|0)|0;Ja(cc);j=bc+8|0;k=bc+1|0;l=bc+4|0;b=eb;while(1){b=b+1|0;if((b|0)==(g|0))break n;Cb($b,(c[e>>2]|0)+(b*24|0)|0);f=Ta($b,0,1429)|0;c[bc>>2]=c[f>>2];c[bc+4>>2]=c[f+4>>2];c[bc+8>>2]=c[f+8>>2];h=0;while(1){if((h|0)==3)break;c[f+(h<<2)>>2]=0;h=h+1|0}cc=a[bc>>0]|0;Zb=(cc&1)==0;Za(ec,Zb?k:c[j>>2]|0,Zb?(cc&255)>>>1:c[l>>2]|0)|0;Ja(bc);Ja($b)}}while(0);Ya(ec,799)|0;while(1){if((g|0)==(eb|0))break;f=c[mb>>2]|0;b=f+-24|0;while(1){if((f|0)==(b|0))break;cc=f+-24|0;c[mb>>2]=cc;Ia(cc);f=c[mb>>2]|0}g=g+-1|0}c[ac>>2]=c[ec>>2];c[ac+4>>2]=c[ec+4>>2];c[ac+8>>2]=c[ec+8>>2];b=0;while(1){if((b|0)==3)break;c[ec+(b<<2)>>2]=0;b=b+1|0}rb(_b,ac);b=c[mb>>2]|0;cc=c[e+8>>2]|0;h=cc;if(b>>>0<cc>>>0){db(b,_b);c[mb>>2]=(c[mb>>2]|0)+24}else{f=c[e>>2]|0;cc=b-f|0;j=(cc|0)/24|0;g=j+1|0;if((cc|0)<-24)Pa();b=(h-f|0)/24|0;if(b>>>0<1073741823){b=b<<1;b=b>>>0<g>>>0?g:b}else b=2147483647;ab(dc,b,j,e+12|0);cc=dc+8|0;bc=c[cc>>2]|0;db(bc,_b);c[cc>>2]=bc+24;cb(e,dc);bb(dc)}Ia(_b);Ja(ac);Ja(ec);b=qb}break a}default:break a}case 116:switch(a[la+1>>0]|0){case 105:case 101:{o:do if((ja|0)>2?(a[b>>0]|0)==116:0){f=a[b+1>>0]|0;switch(f<<24>>24){case 105:case 101:break;default:break o}g=b+2|0;if(f<<24>>24==101)h=ub(g,d,e)|0;else h=Na(g,d,e)|0;if((h|0)!=(g|0)?(sa=c[e+4>>2]|0,(c[e>>2]|0)!=(sa|0)):0){g=sa+-24|0;Cb(bc,g);b=Ta(bc,0,2002)|0;c[cc>>2]=c[b>>2];c[cc+4>>2]=c[b+4>>2];c[cc+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=Ya(cc,799)|0;c[ec>>2]=c[b>>2];c[ec+4>>2]=c[b+4>>2];c[ec+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}rb(dc,ec);Db(g,dc);Ia(dc);Ja(ec);Ja(cc);Ja(bc);b=h}}while(0);break a}case 114:{ib(Sa,2010);f=e+4|0;g=c[f>>2]|0;ec=c[e+8>>2]|0;h=ec;if(g>>>0<ec>>>0){db(g,Sa);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;ec=g-f|0;j=(ec|0)/24|0;g=j+1|0;if((ec|0)<-24)Pa();f=(h-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<g>>>0?g:f}else f=2147483647;ab(dc,f,j,e+12|0);ec=dc+8|0;cc=c[ec>>2]|0;db(cc,Sa);c[ec>>2]=cc+24;cb(e,dc);bb(dc)}Ia(Sa);b=b+2|0;break a}case 119:{if(((((ja|0)>2?(a[b>>0]|0)==116:0)?(a[b+1>>0]|0)==119:0)?(bc=b+2|0,ta=ub(bc,d,e)|0,(ta|0)!=(bc|0)):0)?(v=c[e+4>>2]|0,(c[e>>2]|0)!=(v|0)):0){b=v+-24|0;Cb(cc,b);f=Ta(cc,0,2016)|0;c[ec>>2]=c[f>>2];c[ec+4>>2]=c[f+4>>2];c[ec+8>>2]=c[f+8>>2];g=0;while(1){if((g|0)==3)break;c[f+(g<<2)>>2]=0;g=g+1|0}rb(dc,ec);Db(b,dc);Ia(dc);Ja(ec);Ja(cc);b=ta}break a}default:break a}case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:{b=Jb(b,d,e)|0;break a}default:break a}while(0)}while(0);i=fc;return b|0}function vb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;O=i;i=i+480|0;J=O+72|0;I=O+48|0;H=O+24|0;L=O;K=O+432|0;M=O+408|0;N=O+384|0;r=O+396|0;y=O+360|0;z=O+336|0;s=O+320|0;t=O+308|0;u=O+296|0;v=O+284|0;f=O+272|0;j=O+260|0;k=O+248|0;l=O+236|0;m=O+224|0;n=O+212|0;o=O+200|0;p=O+188|0;q=O+176|0;A=O+152|0;B=O+140|0;C=O+128|0;D=O+116|0;E=O+104|0;F=O+92|0;x=d;a:do if((x-b|0)>3?(a[b>>0]|0)==76:0){w=b+1|0;do switch(a[w>>0]|0){case 84:break a;case 119:{N=b+2|0;$a(r,481,7);e=wb(N,d,r,e)|0;Ja(r);b=(e|0)==(N|0)?b:e;break a}case 98:{if((a[b+3>>0]|0)!=69)break a;switch(a[b+2>>0]|0){case 48:{ib(y,801);f=e+4|0;j=c[f>>2]|0;N=c[e+8>>2]|0;k=N;if(j>>>0<N>>>0){db(j,y);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;N=j-f|0;l=(N|0)/24|0;j=l+1|0;if((N|0)<-24)Pa();f=(k-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<j>>>0?j:f}else f=2147483647;ab(L,f,l,e+12|0);N=L+8|0;M=c[N>>2]|0;db(M,y);c[N>>2]=M+24;cb(e,L);bb(L)}Ia(y);b=b+4|0;break a}case 49:{fb(z,807);f=e+4|0;j=c[f>>2]|0;N=c[e+8>>2]|0;k=N;if(j>>>0<N>>>0){db(j,z);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;N=j-f|0;l=(N|0)/24|0;j=l+1|0;if((N|0)<-24)Pa();f=(k-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<j>>>0?j:f}else f=2147483647;ab(L,f,l,e+12|0);N=L+8|0;M=c[N>>2]|0;db(M,z);c[N>>2]=M+24;cb(e,L);bb(L)}Ia(z);b=b+4|0;break a}default:break a}}case 99:{N=b+2|0;$a(s,494,4);e=wb(N,d,s,e)|0;Ja(s);b=(e|0)==(N|0)?b:e;break a}case 97:{N=b+2|0;$a(t,499,11);e=wb(N,d,t,e)|0;Ja(t);b=(e|0)==(N|0)?b:e;break a}case 104:{N=b+2|0;$a(u,511,13);e=wb(N,d,u,e)|0;Ja(u);b=(e|0)==(N|0)?b:e;break a}case 115:{N=b+2|0;$a(v,525,5);e=wb(N,d,v,e)|0;Ja(v);b=(e|0)==(N|0)?b:e;break a}case 116:{N=b+2|0;$a(f,531,14);e=wb(N,d,f,e)|0;Ja(f);b=(e|0)==(N|0)?b:e;break a}case 105:{N=b+2|0;$a(j,5344,0);e=wb(N,d,j,e)|0;Ja(j);b=(e|0)==(N|0)?b:e;break a}case 106:{N=b+2|0;$a(k,812,1);e=wb(N,d,k,e)|0;Ja(k);b=(e|0)==(N|0)?b:e;break a}case 108:{N=b+2|0;$a(l,814,1);e=wb(N,d,l,e)|0;Ja(l);b=(e|0)==(N|0)?b:e;break a}case 109:{N=b+2|0;$a(m,816,2);e=wb(N,d,m,e)|0;Ja(m);b=(e|0)==(N|0)?b:e;break a}case 120:{N=b+2|0;$a(n,819,2);e=wb(N,d,n,e)|0;Ja(n);b=(e|0)==(N|0)?b:e;break a}case 121:{N=b+2|0;$a(o,822,3);e=wb(N,d,o,e)|0;Ja(o);b=(e|0)==(N|0)?b:e;break a}case 110:{N=b+2|0;$a(p,611,8);e=wb(N,d,p,e)|0;Ja(p);b=(e|0)==(N|0)?b:e;break a}case 111:{N=b+2|0;$a(q,620,17);e=wb(N,d,q,e)|0;Ja(q);b=(e|0)==(N|0)?b:e;break a}case 102:{m=b+2|0;b:do if((x-m|0)>>>0>8){k=b+10|0;f=L;l=m;while(1){j=a[l>>0]|0;if((l|0)==(k|0)){G=41;break}j=j<<24>>24;if(!(fc(j)|0))break;J=a[l+1>>0]|0;a[f>>0]=(((J<<24>>24)+-48|0)>>>0<10?208:169)+(J&255)+(((j+-48|0)>>>0<10?0:9)+j<<4);f=f+1|0;l=l+2|0}do if((G|0)==41){if(j<<24>>24==69){c:do if((L|0)!=(f|0)){j=L;while(1){f=f+-1|0;if(j>>>0>=f>>>0)break c;J=a[j>>0]|0;a[j>>0]=a[f>>0]|0;a[f>>0]=J;j=j+1|0}}while(0);f=K;j=f+24|0;do{a[f>>0]=0;f=f+1|0}while((f|0)<(j|0));h[H>>3]=+g[L>>2];f=jc(K,24,826,H)|0;if(f>>>0>23)break;$a(N,K,f);rb(M,N);f=e+4|0;j=c[f>>2]|0;L=c[e+8>>2]|0;k=L;if(j>>>0<L>>>0){db(j,M);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=j-f|0;l=(L|0)/24|0;j=l+1|0;if((L|0)<-24)Pa();f=(k-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<j>>>0?j:f}else f=2147483647;ab(H,f,l,e+12|0);L=H+8|0;K=c[L>>2]|0;db(K,M);c[L>>2]=K+24;cb(e,H);bb(H)}Ia(M);Ja(N);f=b+11|0}else f=m;break b}while(0);f=m}else f=m;while(0);b=(f|0)==(m|0)?b:f;break a}case 100:{m=b+2|0;d:do if((x-m|0)>>>0>16){k=b+18|0;f=L;l=m;while(1){j=a[l>>0]|0;if((l|0)==(k|0)){G=63;break}j=j<<24>>24;if(!(fc(j)|0))break;J=a[l+1>>0]|0;a[f>>0]=(((J<<24>>24)+-48|0)>>>0<10?208:169)+(J&255)+(((j+-48|0)>>>0<10?0:9)+j<<4);f=f+1|0;l=l+2|0}do if((G|0)==63){if(j<<24>>24==69){e:do if((L|0)!=(f|0)){j=L;while(1){f=f+-1|0;if(j>>>0>=f>>>0)break e;J=a[j>>0]|0;a[j>>0]=a[f>>0]|0;a[f>>0]=J;j=j+1|0}}while(0);f=K;j=f+32|0;do{a[f>>0]=0;f=f+1|0}while((f|0)<(j|0));h[I>>3]=+h[L>>3];f=jc(K,32,830,I)|0;if(f>>>0>31)break;$a(N,K,f);rb(M,N);f=e+4|0;j=c[f>>2]|0;L=c[e+8>>2]|0;k=L;if(j>>>0<L>>>0){db(j,M);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=j-f|0;l=(L|0)/24|0;j=l+1|0;if((L|0)<-24)Pa();f=(k-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<j>>>0?j:f}else f=2147483647;ab(I,f,l,e+12|0);L=I+8|0;K=c[L>>2]|0;db(K,M);c[L>>2]=K+24;cb(e,I);bb(I)}Ia(M);Ja(N);f=b+19|0}else f=m;break d}while(0);f=m}else f=m;while(0);b=(f|0)==(m|0)?b:f;break a}case 101:{m=b+2|0;f:do if((x-m|0)>>>0>20){k=b+22|0;f=L;l=m;while(1){j=a[l>>0]|0;if((l|0)==(k|0)){G=85;break}j=j<<24>>24;if(!(fc(j)|0))break;I=a[l+1>>0]|0;a[f>>0]=(((I<<24>>24)+-48|0)>>>0<10?208:169)+(I&255)+(((j+-48|0)>>>0<10?0:9)+j<<4);f=f+1|0;l=l+2|0}do if((G|0)==85){if(j<<24>>24==69){g:do if((L|0)!=(f|0)){j=L;while(1){f=f+-1|0;if(j>>>0>=f>>>0)break g;I=a[j>>0]|0;a[j>>0]=a[f>>0]|0;a[f>>0]=I;j=j+1|0}}while(0);f=K;j=f+40|0;do{a[f>>0]=0;f=f+1|0}while((f|0)<(j|0));h[J>>3]=+h[L>>3];f=jc(K,40,833,J)|0;if(f>>>0>39)break;$a(N,K,f);rb(M,N);f=e+4|0;j=c[f>>2]|0;L=c[e+8>>2]|0;k=L;if(j>>>0<L>>>0){db(j,M);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=j-f|0;l=(L|0)/24|0;j=l+1|0;if((L|0)<-24)Pa();f=(k-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<j>>>0?j:f}else f=2147483647;ab(J,f,l,e+12|0);L=J+8|0;K=c[L>>2]|0;db(K,M);c[L>>2]=K+24;cb(e,J);bb(J)}Ia(M);Ja(N);f=b+23|0}else f=m;break f}while(0);f=m}else f=m;while(0);b=(f|0)==(m|0)?b:f;break a}case 95:{if((a[b+2>>0]|0)!=90)break a;N=b+3|0;f=Ma(N,d,e)|0;if((f|0)==(N|0)|(f|0)==(d|0))break a;b=(a[f>>0]|0)==69?f+1|0:b;break a}default:{m=Na(w,d,e)|0;if((m|0)==(w|0)|(m|0)==(d|0))break a;if((a[m>>0]|0)==69){b=m+1|0;break a}else n=m;while(1){if((n|0)==(d|0))break a;f=a[n>>0]|0;if(((f<<24>>24)+-48|0)>>>0>=10)break;n=n+1|0}if(!((n|0)!=(m|0)&f<<24>>24==69))break a;f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0))break a;l=f+-24|0;Cb(E,l);b=Ta(E,0,797)|0;c[D>>2]=c[b>>2];c[D+4>>2]=c[b+4>>2];c[D+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=Ya(D,799)|0;c[C>>2]=c[b>>2];c[C+4>>2]=c[b+4>>2];c[C+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}j=n-m|0;if(j>>>0>4294967279)Xa();if(j>>>0<11){a[F>>0]=j<<1;k=F+1|0}else{e=j+16&-16;k=vc(e)|0;c[F+8>>2]=k;c[F>>2]=e|1;c[F+4>>2]=j}b=m;f=k;while(1){if((b|0)==(n|0))break;a[f>>0]=a[b>>0]|0;b=b+1|0;f=f+1|0}a[k+j>>0]=0;b=a[F>>0]|0;f=(b&1)==0;b=Za(C,f?F+1|0:c[F+8>>2]|0,f?(b&255)>>>1:c[F+4>>2]|0)|0;c[B>>2]=c[b>>2];c[B+4>>2]=c[b+4>>2];c[B+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}rb(A,B);Db(l,A);Ia(A);Ja(B);Ja(F);Ja(C);Ja(D);Ja(E);b=n+1|0;break a}}while(0)}while(0);i=O;return b|0}function wb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+80|0;p=s+48|0;m=s+24|0;n=s+12|0;o=s;r=tb(b,d)|0;if(!((r|0)==(b|0)|(r|0)==(d|0))?(a[r>>0]|0)==69:0){l=a[e>>0]|0;q=e+4|0;do if(((l&1)==0?(l&255)>>>1:c[q>>2]|0)>>>0>3){xb(o,797,e);d=Ya(o,799)|0;c[n>>2]=c[d>>2];c[n+4>>2]=c[d+4>>2];c[n+8>>2]=c[d+8>>2];g=0;while(1){if((g|0)==3)break;c[d+(g<<2)>>2]=0;g=g+1|0}rb(m,n);g=f+4|0;d=c[g>>2]|0;l=c[f+8>>2]|0;h=l;if(d>>>0<l>>>0){db(d,m);c[g>>2]=(c[g>>2]|0)+24}else{j=c[f>>2]|0;d=d-j|0;l=(d|0)/24|0;k=l+1|0;if((d|0)<-24)Pa();d=(h-j|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<k>>>0?k:d}else d=2147483647;ab(p,d,l,f+12|0);l=p+8|0;k=c[l>>2]|0;db(k,m);c[l>>2]=k+24;cb(f,p);bb(p)}Ia(m);Ja(n);Ja(o)}else{k=f+4|0;g=c[k>>2]|0;o=c[f+8>>2]|0;d=o;if(g>>>0<o>>>0){c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;d=0;while(1){if((d|0)==3)break;c[g+(d<<2)>>2]=0;d=d+1|0}d=g+12|0;g=0;while(1){if((g|0)==3)break;c[d+(g<<2)>>2]=0;g=g+1|0}c[k>>2]=(c[k>>2]|0)+24;g=k;break}h=c[f>>2]|0;o=g-h|0;j=(o|0)/24|0;g=j+1|0;if((o|0)<-24)Pa();d=(d-h|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<g>>>0?g:d}else d=2147483647;ab(p,d,j,f+12|0);h=p+8|0;j=c[h>>2]|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;c[j+20>>2]=0;d=0;while(1){if((d|0)==3)break;c[j+(d<<2)>>2]=0;d=d+1|0}d=j+12|0;g=0;while(1){if((g|0)==3)break;c[d+(g<<2)>>2]=0;g=g+1|0}c[h>>2]=j+24;cb(f,p);bb(p);g=k}while(0);if((a[b>>0]|0)==110){zb((c[g>>2]|0)+-24|0,45);b=b+1|0}Bb((c[g>>2]|0)+-24|0,b,r);b=a[e>>0]|0;d=(b&1)==0;b=d?(b&255)>>>1:c[q>>2]|0;if(b>>>0<4)Za((c[g>>2]|0)+-24|0,d?e+1|0:c[e+8>>2]|0,b)|0;b=r+1|0}i=s;return b|0}function xb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}g=bc(d)|0;f=a[e>>0]|0;f=(f&1)==0?(f&255)>>>1:c[e+4>>2]|0;yb(b,d,g,f+g|0);Za(b,(a[e>>0]&1)==0?e+1|0:c[e+8>>2]|0,f)|0;return}function yb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;if(f>>>0>4294967279)Xa();if(f>>>0<11){a[b>>0]=e<<1;f=b+1|0}else{g=f+16&-16;f=vc(g)|0;c[b+8>>2]=f;c[b>>2]=g|1;c[b+4>>2]=e}Fc(f|0,d|0,e|0)|0;a[f+e>>0]=0;return}function zb(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=a[b>>0]|0;f=(e&1)!=0;if(f){g=(c[b>>2]&-2)+-1|0;h=c[b+4>>2]|0}else{g=10;h=(e&255)>>>1}if((h|0)==(g|0)){Ab(b,g,1,g,g,0);if(!(a[b>>0]&1))f=7;else f=8}else if(f)f=8;else f=7;if((f|0)==7){a[b>>0]=(h<<1)+2;e=b+1|0}else if((f|0)==8){e=c[b+8>>2]|0;c[b+4>>2]=h+1}b=e+h|0;a[b>>0]=d;a[b+1>>0]=0;return}function Ab(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0;if((-17-d|0)>>>0<e>>>0)Xa();if(!(a[b>>0]&1))j=b+1|0;else j=c[b+8>>2]|0;if(d>>>0<2147483623){e=e+d|0;i=d<<1;e=e>>>0<i>>>0?i:e;e=e>>>0<11?11:e+16&-16}else e=-17;i=vc(e)|0;if(g)Fc(i|0,j|0,g|0)|0;if((f|0)!=(g|0))Fc(i+g+h|0,j+g|0,f-g|0)|0;if((d|0)!=10)wc(j);c[b+8>>2]=i;c[b>>2]=e|1;return}function Bb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;h=d;f=a[b>>0]|0;if(!(f&1)){k=(f&255)>>>1;g=10}else{f=c[b>>2]|0;k=c[b+4>>2]|0;g=(f&-2)+-1|0;f=f&255}j=e-h|0;do if((e|0)!=(d|0)){if((g-k|0)>>>0<j>>>0){Ab(b,g,k+j-g|0,k,k,0);f=a[b>>0]|0}if(!(f&1))i=b+1|0;else i=c[b+8>>2]|0;h=e+(k-h)|0;f=d;g=i+k|0;while(1){if((f|0)==(e|0))break;a[g>>0]=a[f>>0]|0;f=f+1|0;g=g+1|0}a[i+h>>0]=0;f=k+j|0;if(!(a[b>>0]&1)){a[b>>0]=f<<1;break}else{c[b+4>>2]=f;break}}while(0);return}function Cb(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=d+12|0;e=a[g>>0]|0;f=(e&1)==0;e=Za(d,f?g+1|0:c[d+20>>2]|0,f?(e&255)>>>1:c[d+16>>2]|0)|0;c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];d=0;while(1){if((d|0)==3)break;c[e+(d<<2)>>2]=0;d=d+1|0}return}function Db(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;do if(a[b>>0]&1){m=b+8|0;a[c[m>>2]>>0]=0;k=b+4|0;c[k>>2]=0;e=a[b>>0]|0;if(!(e&1))i=10;else{i=c[b>>2]|0;e=i&255;i=(i&-2)+-1|0}if(!(e&1)){f=(e&255)>>>1;if((e&255)<22){h=10;j=f;l=1}else{h=(f+16&240)+-1|0;j=f;l=1}}else{h=10;j=0;l=0}if((h|0)!=(i|0)){if((h|0)==10){g=b+1|0;f=c[m>>2]|0;if(l){Fc(g|0,f|0,((e&255)>>>1)+1|0)|0;wc(f)}else{a[g>>0]=a[f>>0]|0;wc(f)}a[b>>0]=j<<1;break}f=h+1|0;g=vc(f)|0;if(!(h>>>0<=i>>>0&(g|0)==0)){if(l)Fc(g|0,b+1|0,((e&255)>>>1)+1|0)|0;else{n=c[m>>2]|0;a[g>>0]=a[n>>0]|0;wc(n)}c[b>>2]=f|1;c[k>>2]=j;c[m>>2]=g}}}else{a[b+1>>0]=0;a[b>>0]=0}while(0);c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];e=0;while(1){if((e|0)==3)break;c[d+(e<<2)>>2]=0;e=e+1|0}n=b+12|0;d=d+12|0;do if(a[n>>0]&1){m=b+20|0;a[c[m>>2]>>0]=0;j=b+16|0;c[j>>2]=0;e=a[n>>0]|0;if(!(e&1))i=10;else{i=c[n>>2]|0;e=i&255;i=(i&-2)+-1|0}if(!(e&1)){f=(e&255)>>>1;if((e&255)<22){h=10;k=f;l=1}else{h=(f+16&240)+-1|0;k=f;l=1}}else{h=10;k=0;l=0}if((h|0)!=(i|0)){if((h|0)==10){g=n+1|0;f=c[m>>2]|0;if(l){Fc(g|0,f|0,((e&255)>>>1)+1|0)|0;wc(f)}else{a[g>>0]=a[f>>0]|0;wc(f)}a[n>>0]=k<<1;break}f=h+1|0;g=vc(f)|0;if(!(h>>>0<=i>>>0&(g|0)==0)){if(l)Fc(g|0,n+1|0,((e&255)>>>1)+1|0)|0;else{b=c[m>>2]|0;a[g>>0]=a[b>>0]|0;wc(b)}c[n>>2]=f|1;c[j>>2]=k;c[m>>2]=g}}}else{a[n+1>>0]=0;a[n>>0]=0}while(0);c[n>>2]=c[d>>2];c[n+4>>2]=c[d+4>>2];c[n+8>>2]=c[d+8>>2];e=0;while(1){if((e|0)==3)break;c[d+(e<<2)>>2]=0;e=e+1|0}return}function Eb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+96|0;w=x+64|0;k=x+40|0;u=x+16|0;v=x;t=b;a:do if((d-t|0)>1?(a[b>>0]|0)==84:0){r=a[b+1>>0]|0;if(r<<24>>24==95){f=c[e+36>>2]|0;if((c[e+32>>2]|0)==(f|0)){f=b;break}g=c[f+-16>>2]|0;if((g|0)!=(c[f+-12>>2]|0)){m=c[g+4>>2]|0;n=e+4|0;o=e+8|0;p=e+12|0;q=w+8|0;l=c[g>>2]|0;while(1){if((l|0)==(m|0)){f=8;break}f=c[n>>2]|0;k=c[o>>2]|0;g=k;if((f|0)==(k|0)){h=c[e>>2]|0;f=f-h|0;k=(f|0)/24|0;j=k+1|0;if((f|0)<-24){f=12;break}f=(g-h|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<j>>>0?j:f}else f=2147483647;ab(w,f,k,p);k=c[q>>2]|0;_a(k,l);_a(k+12|0,l+12|0);c[q>>2]=k+24;cb(e,w);bb(w)}else{_a(f,l);_a(f+12|0,l+12|0);c[n>>2]=(c[n>>2]|0)+24}l=l+24|0}if((f|0)==8){f=b+2|0;break}else if((f|0)==12)Pa()}else{a[k>>0]=4;f=k+1|0;a[f>>0]=84;a[f+1>>0]=95;a[k+3>>0]=0;f=k+12|0;g=0;while(1){if((g|0)==3)break;c[f+(g<<2)>>2]=0;g=g+1|0}f=e+4|0;g=c[f>>2]|0;v=c[e+8>>2]|0;h=v;if(g>>>0<v>>>0){db(g,k);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;v=g-f|0;j=(v|0)/24|0;g=j+1|0;if((v|0)<-24)Pa();f=(h-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<g>>>0?g:f}else f=2147483647;ab(w,f,j,e+12|0);v=w+8|0;u=c[v>>2]|0;db(u,k);c[v>>2]=u+24;cb(e,w);bb(w)}Ia(k);a[e+62>>0]=1;f=b+2|0;break}}f=(r<<24>>24)+-48|0;if(f>>>0<10){r=b+2|0;while(1){if((r|0)==(d|0)){f=b;break a}g=a[r>>0]|0;h=(g<<24>>24)+-48|0;if(h>>>0>=10)break;f=h+(f*10|0)|0;r=r+1|0}if(g<<24>>24==95?(s=c[e+36>>2]|0,(c[e+32>>2]|0)!=(s|0)):0){f=f+1|0;d=c[s+-16>>2]|0;g=d;if(f>>>0<(c[s+-12>>2]|0)-d>>4>>>0){m=c[g+(f<<4)+4>>2]|0;n=e+4|0;o=e+8|0;p=e+12|0;q=w+8|0;l=c[g+(f<<4)>>2]|0;while(1){if((l|0)==(m|0)){f=38;break}f=c[n>>2]|0;s=c[o>>2]|0;g=s;if((f|0)==(s|0)){h=c[e>>2]|0;s=f-h|0;k=(s|0)/24|0;j=k+1|0;if((s|0)<-24){f=42;break}f=(g-h|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<j>>>0?j:f}else f=2147483647;ab(w,f,k,p);s=c[q>>2]|0;_a(s,l);_a(s+12|0,l+12|0);c[q>>2]=s+24;cb(e,w);bb(w)}else{_a(f,l);_a(f+12|0,l+12|0);c[n>>2]=(c[n>>2]|0)+24}l=l+24|0}if((f|0)==38){f=r+1|0;break}else if((f|0)==42)Pa()}f=r+1|0;j=f-t|0;if(j>>>0>4294967279)Xa();if(j>>>0<11){a[v>>0]=j<<1;k=v+1|0}else{t=j+16&-16;k=vc(t)|0;c[v+8>>2]=k;c[v>>2]=t|1;c[v+4>>2]=j}g=b;h=k;while(1){if((g|0)==(f|0))break;a[h>>0]=a[g>>0]|0;g=g+1|0;h=h+1|0}a[k+j>>0]=0;rb(u,v);g=e+4|0;h=c[g>>2]|0;b=c[e+8>>2]|0;j=b;if(h>>>0<b>>>0){db(h,u);c[g>>2]=(c[g>>2]|0)+24}else{g=c[e>>2]|0;b=h-g|0;k=(b|0)/24|0;h=k+1|0;if((b|0)<-24)Pa();g=(j-g|0)/24|0;if(g>>>0<1073741823){g=g<<1;g=g>>>0<h>>>0?h:g}else g=2147483647;ab(w,g,k,e+12|0);b=w+8|0;t=c[b>>2]|0;db(t,u);c[b>>2]=t+24;cb(e,w);bb(w)}Ia(u);Ja(v);a[e+62>>0]=1}else f=b}else f=b}else f=b;while(0);i=x;return f|0}function Fb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+128|0;q=r+104|0;g=r+72|0;n=r+80|0;o=r+60|0;p=r+48|0;j=r+24|0;k=r+12|0;l=r;a:do if((d-b|0)>2?(a[b>>0]|0)==102:0){switch(a[b+1>>0]|0){case 112:{f=Oa(b+2|0,d,g)|0;h=tb(f,d)|0;if((h|0)!=(d|0)?(a[h>>0]|0)==95:0){g=h-f|0;if(g>>>0>4294967279)Xa();if(g>>>0<11){a[p>>0]=g<<1;d=p+1|0}else{m=g+16&-16;d=vc(m)|0;c[p+8>>2]=d;c[p>>2]=m|1;c[p+4>>2]=g}b=f;f=d;while(1){if((b|0)==(h|0))break;a[f>>0]=a[b>>0]|0;b=b+1|0;f=f+1|0}a[d+g>>0]=0;b=Ta(p,0,838)|0;c[o>>2]=c[b>>2];c[o+4>>2]=c[b+4>>2];c[o+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}rb(n,o);b=e+4|0;f=c[b>>2]|0;m=c[e+8>>2]|0;g=m;if(f>>>0<m>>>0){db(f,n);c[b>>2]=(c[b>>2]|0)+24}else{b=c[e>>2]|0;m=f-b|0;d=(m|0)/24|0;f=d+1|0;if((m|0)<-24)Pa();b=(g-b|0)/24|0;if(b>>>0<1073741823){b=b<<1;b=b>>>0<f>>>0?f:b}else b=2147483647;ab(q,b,d,e+12|0);m=q+8|0;l=c[m>>2]|0;db(l,n);c[m>>2]=l+24;cb(e,q);bb(q)}Ia(n);Ja(o);Ja(p);b=h+1|0}break a}case 76:break;default:break a}f=tb(b+2|0,d)|0;if((((f|0)!=(d|0)?(a[f>>0]|0)==112:0)?(h=Oa(f+1|0,d,g)|0,m=tb(h,d)|0,(m|0)!=(d|0)):0)?(a[m>>0]|0)==95:0){g=m-h|0;if(g>>>0>4294967279)Xa();if(g>>>0<11){a[l>>0]=g<<1;d=l+1|0}else{p=g+16&-16;d=vc(p)|0;c[l+8>>2]=d;c[l>>2]=p|1;c[l+4>>2]=g}b=h;f=d;while(1){if((b|0)==(m|0))break;a[f>>0]=a[b>>0]|0;b=b+1|0;f=f+1|0}a[d+g>>0]=0;b=Ta(l,0,838)|0;c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}rb(j,k);b=e+4|0;f=c[b>>2]|0;p=c[e+8>>2]|0;g=p;if(f>>>0<p>>>0){db(f,j);c[b>>2]=(c[b>>2]|0)+24}else{b=c[e>>2]|0;p=f-b|0;d=(p|0)/24|0;f=d+1|0;if((p|0)<-24)Pa();b=(g-b|0)/24|0;if(b>>>0<1073741823){b=b<<1;b=b>>>0<f>>>0?f:b}else b=2147483647;ab(q,b,d,e+12|0);p=q+8|0;o=c[p>>2]|0;db(o,j);c[p>>2]=o+24;cb(e,q);bb(q)}Ia(j);Ja(k);Ja(l);b=m+1|0}}while(0);i=r;return b|0}function Gb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=i;i=i+96|0;s=t+84|0;r=t+72|0;l=t+60|0;m=t+48|0;n=t+36|0;o=t+24|0;p=t+12|0;q=t;g=ub(b,d,f)|0;a:do if((g|0)!=(b|0)){d=ub(g,d,f)|0;h=f+4|0;if((d|0)==(g|0)){g=c[h>>2]|0;d=g+-24|0;while(1){if((g|0)==(d|0)){d=b;break a}s=g+-24|0;c[h>>2]=s;Ia(s);g=c[h>>2]|0}}g=c[h>>2]|0;if(((g-(c[f>>2]|0)|0)/24|0)>>>0>=2){Cb(s,g+-24|0);g=c[h>>2]|0;f=g+-24|0;b=g;while(1){if((b|0)==(f|0))break;k=b+-24|0;c[h>>2]=k;Ia(k);b=c[h>>2]|0}Cb(r,g+-48|0);g=c[h>>2]|0;k=g+-24|0;if(!(a[k>>0]&1)){a[k+1>>0]=0;a[k>>0]=0}else{a[c[g+-16>>2]>>0]=0;c[g+-20>>2]=0}u=a[e>>0]|0;f=(u&1)==0;b=e+4|0;u=f?(u&255)>>>1:c[b>>2]|0;h=e+8|0;j=e+1|0;g=u>>>0>1;f=ac(f?j:c[h>>2]|0,844,g?1:u)|0;if(!(((f|0)==0?((u|0)==0?-1:g&1):f)|0))zb(k,40);xb(q,797,r);g=Ya(q,846)|0;c[p>>2]=c[g>>2];c[p+4>>2]=c[g+4>>2];c[p+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}g=a[e>>0]|0;f=(g&1)==0;g=Za(p,f?j:c[h>>2]|0,f?(g&255)>>>1:c[b>>2]|0)|0;c[o>>2]=c[g>>2];c[o+4>>2]=c[g+4>>2];c[o+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}g=Ya(o,849)|0;c[n>>2]=c[g>>2];c[n+4>>2]=c[g+4>>2];c[n+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}g=a[s>>0]|0;f=(g&1)==0;g=Za(n,f?s+1|0:c[s+8>>2]|0,f?(g&255)>>>1:c[s+4>>2]|0)|0;c[m>>2]=c[g>>2];c[m+4>>2]=c[g+4>>2];c[m+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}g=Ya(m,799)|0;c[l>>2]=c[g>>2];c[l+4>>2]=c[g+4>>2];c[l+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}u=a[l>>0]|0;f=(u&1)==0;Za(k,f?l+1|0:c[l+8>>2]|0,f?(u&255)>>>1:c[l+4>>2]|0)|0;Ja(l);Ja(m);Ja(n);Ja(o);Ja(p);Ja(q);q=a[e>>0]|0;u=(q&1)==0;q=u?(q&255)>>>1:c[b>>2]|0;e=q>>>0>1;u=ac(u?j:c[h>>2]|0,844,e?1:q)|0;if(!(((u|0)==0?((q|0)==0?-1:e&1):u)|0))zb(k,41);Ja(r);Ja(s)}else d=b}else d=b;while(0);i=t;return d|0}function Hb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+48|0;o=s+36|0;p=s+24|0;q=s+12|0;r=s;d=ub(b,d,f)|0;if((d|0)!=(b|0)?(g=f+4|0,h=c[g>>2]|0,(c[f>>2]|0)!=(h|0)):0){n=h+-24|0;Ib(q,e,797);Cb(r,(c[g>>2]|0)+-24|0);f=a[r>>0]|0;b=(f&1)==0;f=Za(q,b?r+1|0:c[r+8>>2]|0,b?(f&255)>>>1:c[r+4>>2]|0)|0;c[p>>2]=c[f>>2];c[p+4>>2]=c[f+4>>2];c[p+8>>2]=c[f+8>>2];b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}f=Ya(p,799)|0;c[o>>2]=c[f>>2];c[o+4>>2]=c[f+4>>2];c[o+8>>2]=c[f+8>>2];b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}do if(a[n>>0]&1){m=h+-16|0;a[c[m>>2]>>0]=0;j=h+-20|0;c[j>>2]=0;f=a[n>>0]|0;if(!(f&1))h=10;else{h=c[n>>2]|0;f=h&255;h=(h&-2)+-1|0}if(!(f&1)){b=(f&255)>>>1;if((f&255)<22){e=10;k=b;l=1}else{e=(b+16&240)+-1|0;k=b;l=1}}else{e=10;k=0;l=0}if((e|0)!=(h|0)){if((e|0)==10){g=n+1|0;b=c[m>>2]|0;if(l){Fc(g|0,b|0,((f&255)>>>1)+1|0)|0;wc(b)}else{a[g>>0]=a[b>>0]|0;wc(b)}a[n>>0]=k<<1;break}b=e+1|0;g=vc(b)|0;if(!(e>>>0<=h>>>0&(g|0)==0)){if(l)Fc(g|0,n+1|0,((f&255)>>>1)+1|0)|0;else{l=c[m>>2]|0;a[g>>0]=a[l>>0]|0;wc(l)}c[n>>2]=b|1;c[j>>2]=k;c[m>>2]=g}}}else{a[n+1>>0]=0;a[n>>0]=0}while(0);c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];f=0;while(1){if((f|0)==3)break;c[o+(f<<2)>>2]=0;f=f+1|0}Ja(o);Ja(p);Ja(r);Ja(q)}else d=b;i=s;return d|0}function Ib(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}g=a[d>>0]|0;h=(g&1)==0;g=h?(g&255)>>>1:c[d+4>>2]|0;f=bc(e)|0;yb(b,h?d+1|0:c[d+8>>2]|0,g,g+f|0);Za(b,e,f)|0;return}function Jb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+80|0;s=t+60|0;p=t+48|0;r=t+36|0;l=t+24|0;o=t+12|0;q=t;g=d;a:do if((g-b|0)>2){if((a[b>>0]|0)==103){h=(a[b+1>>0]|0)==115;j=h;h=h?b+2|0:b}else{j=0;h=b}f=Kb(h,d,e)|0;if((f|0)!=(h|0)){if(!j)break;g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break}Ta(g+-24|0,0,891)|0;break}if(((g-h|0)>2?(a[h>>0]|0)==115:0)?(a[h+1>>0]|0)==114:0){f=h+2|0;if((a[f>>0]|0)==78){q=h+3|0;f=Ob(q,d,e)|0;if((f|0)==(q|0)|(f|0)==(d|0)){f=b;break}j=Mb(f,d,e)|0;o=e+4|0;do if((j|0)==(f|0))n=e;else{f=c[o>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2){f=b;break a}Cb(s,f+-24|0);f=c[o>>2]|0;g=f+-24|0;h=f;while(1){if((h|0)==(g|0))break;q=h+-24|0;c[o>>2]=q;Ia(q);h=c[o>>2]|0}q=a[s>>0]|0;n=(q&1)==0;Za(f+-48|0,n?s+1|0:c[s+8>>2]|0,n?(q&255)>>>1:c[s+4>>2]|0)|0;if((j|0)!=(d|0)){Ja(s);n=e;f=j;break}g=c[o>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0))break;e=g+-24|0;c[o>>2]=e;Ia(e);g=c[o>>2]|0}Ja(s);f=b;break a}while(0);k=p+8|0;l=p+1|0;m=p+4|0;while(1){if((a[f>>0]|0)==69)break;j=Vb(f,d,e)|0;if((j|0)==(f|0)|(j|0)==(d|0)){f=b;break a}f=c[o>>2]|0;if(((f-(c[n>>2]|0)|0)/24|0)>>>0<2){f=b;break a}Cb(s,f+-24|0);h=c[o>>2]|0;f=h+-24|0;g=h;while(1){if((g|0)==(f|0))break;q=g+-24|0;c[o>>2]=q;Ia(q);g=c[o>>2]|0}f=Ta(s,0,891)|0;c[p>>2]=c[f>>2];c[p+4>>2]=c[f+4>>2];c[p+8>>2]=c[f+8>>2];g=0;while(1){if((g|0)==3)break;c[f+(g<<2)>>2]=0;g=g+1|0}f=a[p>>0]|0;q=(f&1)==0;Za(h+-48|0,q?l:c[k>>2]|0,q?(f&255)>>>1:c[m>>2]|0)|0;Ja(p);Ja(s);f=j}q=f+1|0;f=Kb(q,d,e)|0;if((f|0)==(q|0)){f=c[o>>2]|0;if((c[e>>2]|0)==(f|0)){f=b;break}g=f+-24|0;while(1){if((f|0)==(g|0)){f=b;break a}s=f+-24|0;c[o>>2]=s;Ia(s);f=c[o>>2]|0}}g=c[o>>2]|0;if(((g-(c[n>>2]|0)|0)/24|0)>>>0<2){f=b;break}Cb(s,g+-24|0);j=c[o>>2]|0;g=j+-24|0;h=j;while(1){if((h|0)==(g|0))break;b=h+-24|0;c[o>>2]=b;Ia(b);h=c[o>>2]|0}g=Ta(s,0,891)|0;c[r>>2]=c[g>>2];c[r+4>>2]=c[g+4>>2];c[r+8>>2]=c[g+8>>2];h=0;while(1){if((h|0)==3)break;c[g+(h<<2)>>2]=0;h=h+1|0}b=a[r>>0]|0;e=(b&1)==0;Za(j+-48|0,e?r+1|0:c[r+8>>2]|0,e?(b&255)>>>1:c[r+4>>2]|0)|0;Ja(r);Ja(s);break}g=Ob(f,d,e)|0;if((g|0)!=(f|0)){k=Mb(g,d,e)|0;if((k|0)!=(g|0)){j=e+4|0;f=c[j>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2){f=b;break}Cb(s,f+-24|0);f=c[j>>2]|0;g=f+-24|0;h=f;while(1){if((h|0)==(g|0))break;r=h+-24|0;c[j>>2]=r;Ia(r);h=c[j>>2]|0}g=a[s>>0]|0;r=(g&1)==0;Za(f+-48|0,r?s+1|0:c[s+8>>2]|0,r?(g&255)>>>1:c[s+4>>2]|0)|0;Ja(s);g=k}f=Kb(g,d,e)|0;if((f|0)==(g|0)){h=e+4|0;f=c[h>>2]|0;if((c[e>>2]|0)==(f|0)){f=b;break}g=f+-24|0;while(1){if((f|0)==(g|0)){f=b;break a}s=f+-24|0;c[h>>2]=s;Ia(s);f=c[h>>2]|0}}k=e+4|0;g=c[k>>2]|0;if(((g-(c[e>>2]|0)|0)/24|0)>>>0<2){f=b;break}Cb(s,g+-24|0);j=c[k>>2]|0;g=j+-24|0;h=j;while(1){if((h|0)==(g|0))break;b=h+-24|0;c[k>>2]=b;Ia(b);h=c[k>>2]|0}g=Ta(s,0,891)|0;c[l>>2]=c[g>>2];c[l+4>>2]=c[g+4>>2];c[l+8>>2]=c[g+8>>2];h=0;while(1){if((h|0)==3)break;c[g+(h<<2)>>2]=0;h=h+1|0}b=a[l>>0]|0;e=(b&1)==0;Za(j+-48|0,e?l+1|0:c[l+8>>2]|0,e?(b&255)>>>1:c[l+4>>2]|0)|0;Ja(l);Ja(s);break}h=Vb(f,d,e)|0;if(!((h|0)==(f|0)|(h|0)==(d|0))){if(j){f=e+4|0;g=c[f>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break}Ta(g+-24|0,0,891)|0;n=f}else n=e+4|0;k=o+8|0;l=o+1|0;m=o+4|0;f=h;while(1){if((a[f>>0]|0)==69)break;j=Vb(f,d,e)|0;if((j|0)==(f|0)|(j|0)==(d|0)){f=b;break a}f=c[n>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2){f=b;break a}Cb(s,f+-24|0);h=c[n>>2]|0;f=h+-24|0;g=h;while(1){if((g|0)==(f|0))break;r=g+-24|0;c[n>>2]=r;Ia(r);g=c[n>>2]|0}f=Ta(s,0,891)|0;c[o>>2]=c[f>>2];c[o+4>>2]=c[f+4>>2];c[o+8>>2]=c[f+8>>2];g=0;while(1){if((g|0)==3)break;c[f+(g<<2)>>2]=0;g=g+1|0}f=a[o>>0]|0;r=(f&1)==0;Za(h+-48|0,r?l:c[k>>2]|0,r?(f&255)>>>1:c[m>>2]|0)|0;Ja(o);Ja(s);f=j}r=f+1|0;f=Kb(r,d,e)|0;if((f|0)==(r|0)){f=c[n>>2]|0;if((c[e>>2]|0)==(f|0)){f=b;break}g=f+-24|0;while(1){if((f|0)==(g|0)){f=b;break a}s=f+-24|0;c[n>>2]=s;Ia(s);f=c[n>>2]|0}}g=c[n>>2]|0;if(((g-(c[e>>2]|0)|0)/24|0)>>>0>=2){Cb(s,g+-24|0);j=c[n>>2]|0;g=j+-24|0;h=j;while(1){if((h|0)==(g|0))break;b=h+-24|0;c[n>>2]=b;Ia(b);h=c[n>>2]|0}g=Ta(s,0,891)|0;c[q>>2]=c[g>>2];c[q+4>>2]=c[g+4>>2];c[q+8>>2]=c[g+8>>2];h=0;while(1){if((h|0)==3)break;c[g+(h<<2)>>2]=0;h=h+1|0}b=a[q>>0]|0;e=(b&1)==0;Za(j+-48|0,e?q+1|0:c[q+8>>2]|0,e?(b&255)>>>1:c[q+4>>2]|0)|0;Ja(q);Ja(s)}else f=b}else f=b}else f=b}else f=b;while(0);i=t;return f|0}function Kb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;j=k;a:do if((d-b|0)>1){f=a[b>>0]|0;switch(f<<24>>24){case 100:case 111:{if((a[b+1>>0]|0)==110){h=b+2|0;if(f<<24>>24==111){f=Lb(h,d,e)|0;if((f|0)==(h|0)){f=b;break a}b=Mb(f,d,e)|0;if((b|0)==(f|0))break a;d=e+4|0;f=c[d>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2){f=b;break a}Cb(j,f+-24|0);f=c[d>>2]|0;g=f+-24|0;h=f;while(1){if((h|0)==(g|0))break;e=h+-24|0;c[d>>2]=e;Ia(e);h=c[d>>2]|0}e=a[j>>0]|0;d=(e&1)==0;Za(f+-48|0,d?j+1|0:c[j+8>>2]|0,d?(e&255)>>>1:c[j+4>>2]|0)|0;Ja(j);f=b;break a}else{if((h|0)!=(d|0)){f=Ob(h,d,e)|0;if((f|0)==(h|0))f=Vb(h,d,e)|0;if((f|0)!=(h|0)?(g=c[e+4>>2]|0,(c[e>>2]|0)!=(g|0)):0)Ta(g+-24|0,0,886)|0;else f=h}else f=d;f=(f|0)==(h|0)?b:f;break a}}break}default:{}}f=Vb(b,d,e)|0;if((f|0)==(b|0)){f=Lb(b,d,e)|0;if((f|0)!=(b|0)){b=Mb(f,d,e)|0;if((b|0)!=(f|0)){d=e+4|0;f=c[d>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)f=b;else{Cb(j,f+-24|0);f=c[d>>2]|0;g=f+-24|0;h=f;while(1){if((h|0)==(g|0))break;e=h+-24|0;c[d>>2]=e;Ia(e);h=c[d>>2]|0}e=a[j>>0]|0;d=(e&1)==0;Za(f+-48|0,d?j+1|0:c[j+8>>2]|0,d?(e&255)>>>1:c[j+4>>2]|0)|0;Ja(j);f=b}}}else f=b}}else f=b;while(0);i=k;return f|0}function Lb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;ca=i;i=i+1136|0;ba=ca+1104|0;j=ca+1080|0;k=ca+1056|0;v=ca+1032|0;G=ca+1008|0;R=ca+984|0;Y=ca+960|0;Z=ca+936|0;_=ca+912|0;$=ca+888|0;aa=ca+864|0;l=ca+840|0;m=ca+816|0;n=ca+792|0;o=ca+768|0;p=ca+744|0;q=ca+720|0;r=ca+696|0;s=ca+672|0;t=ca+648|0;u=ca+624|0;w=ca+600|0;x=ca+576|0;y=ca+552|0;z=ca+528|0;A=ca+504|0;B=ca+480|0;C=ca+456|0;D=ca+432|0;E=ca+408|0;F=ca+384|0;H=ca+360|0;I=ca+336|0;J=ca+312|0;K=ca+288|0;L=ca+264|0;M=ca+240|0;N=ca+216|0;O=ca+192|0;P=ca+168|0;Q=ca+144|0;S=ca+120|0;T=ca+96|0;U=ca+72|0;V=ca+48|0;W=ca+24|0;X=ca;a:do if((d-b|0)>1)do switch(a[b>>0]|0){case 97:switch(a[b+1>>0]|0){case 97:{pb(j,926);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,j);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,j);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(j);d=b+2|0;break a}case 110:case 100:{mb(k,937);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,k);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,k);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(k);d=b+2|0;break a}case 78:{pb(v,947);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,v);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,v);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(v);d=b+2|0;break a}case 83:{mb(G,958);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,G);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,G);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(G);d=b+2|0;break a}default:{d=b;break a}}case 99:switch(a[b+1>>0]|0){case 108:{pb(R,968);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,R);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,R);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(R);d=b+2|0;break a}case 109:{mb(Y,979);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,Y);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,Y);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(Y);d=b+2|0;break a}case 111:{mb(Z,989);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,Z);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,Z);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(Z);d=b+2|0;break a}case 118:{aa=e+63|0;$=a[aa>>0]|0;a[aa>>0]=0;ba=b+2|0;d=Na(ba,d,e)|0;a[aa>>0]=$;if((d|0)==(ba|0)){d=b;break a}f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0)){d=b;break a}Ta(f+-24|0,0,999)|0;a[e+60>>0]=1;break a}default:{d=b;break a}}case 100:switch(a[b+1>>0]|0){case 97:{ob(_,1009);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,_);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,_);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(_);d=b+2|0;break a}case 101:{mb($,1027);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,$);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;_=c[aa>>2]|0;db(_,$);c[aa>>2]=_+24;cb(e,ba);bb(ba)}Ia($);d=b+2|0;break a}case 108:{d=vc(16)|0;c[aa+8>>2]=d;c[aa>>2]=17;c[aa+4>>2]=15;f=d;g=1037;h=f+15|0;do{a[f>>0]=a[g>>0]|0;f=f+1|0;g=g+1|0}while((f|0)<(h|0));a[d+15>>0]=0;d=aa+12|0;f=0;while(1){if((f|0)==3)break;c[d+(f<<2)>>2]=0;f=f+1|0}d=e+4|0;f=c[d>>2]|0;$=c[e+8>>2]|0;g=$;if(f>>>0<$>>>0){db(f,aa);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;$=f-d|0;h=($|0)/24|0;f=h+1|0;if(($|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);$=ba+8|0;_=c[$>>2]|0;db(_,aa);c[$>>2]=_+24;cb(e,ba);bb(ba)}Ia(aa);d=b+2|0;break a}case 118:{mb(l,1053);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,l);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,l);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(l);d=b+2|0;break a}case 86:{pb(m,1063);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,m);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,m);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(m);d=b+2|0;break a}default:{d=b;break a}}case 101:switch(a[b+1>>0]|0){case 111:{mb(n,1074);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,n);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,n);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(n);d=b+2|0;break a}case 79:{pb(o,1084);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,o);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,o);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(o);d=b+2|0;break a}case 113:{pb(p,1095);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,p);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,p);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(p);d=b+2|0;break a}default:{d=b;break a}}case 103:switch(a[b+1>>0]|0){case 101:{pb(q,1106);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,q);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,q);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(q);d=b+2|0;break a}case 116:{mb(r,1117);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,r);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,r);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(r);d=b+2|0;break a}default:{d=b;break a}}case 105:{if((a[b+1>>0]|0)!=120){d=b;break a}pb(s,1127);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,s);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,s);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(s);d=b+2|0;break a}case 108:switch(a[b+1>>0]|0){case 101:{pb(t,1138);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,t);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,t);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(t);d=b+2|0;break a}case 105:{ba=b+2|0;d=qb(ba,d,e)|0;if((d|0)==(ba|0)){d=b;break a}f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0)){d=b;break a}Ta(f+-24|0,0,1149)|0;break a}case 115:{pb(u,1161);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,u);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,u);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(u);d=b+2|0;break a}case 83:{gb(w,1172);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,w);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,w);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(w);d=b+2|0;break a}case 116:{mb(x,1184);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,x);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,x);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(x);d=b+2|0;break a}default:{d=b;break a}}case 109:switch(a[b+1>>0]|0){case 105:{mb(y,1194);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,y);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,y);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(y);d=b+2|0;break a}case 73:{pb(z,1204);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,z);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,z);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(z);d=b+2|0;break a}case 108:{mb(A,1027);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,A);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,A);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(A);d=b+2|0;break a}case 76:{pb(B,1215);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,B);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,B);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(B);d=b+2|0;break a}case 109:{pb(C,1226);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,C);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,C);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(C);d=b+2|0;break a}default:{d=b;break a}}case 110:switch(a[b+1>>0]|0){case 97:{jb(D,1237);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,D);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,D);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(D);d=b+2|0;break a}case 101:{pb(E,1252);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,E);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,E);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(E);d=b+2|0;break a}case 103:{mb(F,1194);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,F);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,F);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(F);d=b+2|0;break a}case 116:{mb(H,1263);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,H);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,H);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(H);d=b+2|0;break a}case 119:{lb(I,1273);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,I);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,I);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(I);d=b+2|0;break a}default:{d=b;break a}}case 111:switch(a[b+1>>0]|0){case 111:{pb(J,1286);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,J);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,J);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(J);d=b+2|0;break a}case 114:{mb(K,1297);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,K);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,K);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(K);d=b+2|0;break a}case 82:{pb(L,1307);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,L);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,L);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(L);d=b+2|0;break a}default:{d=b;break a}}case 112:switch(a[b+1>>0]|0){case 109:{gb(M,1318);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,M);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,M);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(M);d=b+2|0;break a}case 108:{mb(N,1330);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,N);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,N);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(N);d=b+2|0;break a}case 76:{pb(O,1340);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,O);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,O);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(O);d=b+2|0;break a}case 112:{pb(P,1351);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,P);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,P);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(P);d=b+2|0;break a}case 115:{mb(Q,1330);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,Q);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,Q);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(Q);d=b+2|0;break a}case 116:{pb(S,1362);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,S);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,S);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(S);d=b+2|0;break a}default:{d=b;break a}}case 113:{if((a[b+1>>0]|0)!=117){d=b;break a}mb(T,1373);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,T);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,T);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(T);d=b+2|0;break a}case 114:switch(a[b+1>>0]|0){case 109:{mb(U,1383);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,U);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,U);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(U);d=b+2|0;break a}case 77:{pb(V,1393);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,V);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,V);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(V);d=b+2|0;break a}case 115:{pb(W,1404);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,W);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,W);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(W);d=b+2|0;break a}case 83:{gb(X,1415);d=e+4|0;f=c[d>>2]|0;aa=c[e+8>>2]|0;g=aa;if(f>>>0<aa>>>0){db(f,X);c[d>>2]=(c[d>>2]|0)+24}else{d=c[e>>2]|0;aa=f-d|0;h=(aa|0)/24|0;f=h+1|0;if((aa|0)<-24)Pa();d=(g-d|0)/24|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0<f>>>0?f:d}else d=2147483647;ab(ba,d,h,e+12|0);aa=ba+8|0;$=c[aa>>2]|0;db($,X);c[aa>>2]=$+24;cb(e,ba);bb(ba)}Ia(X);d=b+2|0;break a}default:{d=b;break a}}case 118:{if(((a[b+1>>0]|0)+-48|0)>>>0>=10){d=b;break a}ba=b+2|0;d=qb(ba,d,e)|0;if((d|0)==(ba|0)){d=b;break a}f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0)){d=b;break a}Ta(f+-24|0,0,999)|0;break a}default:{d=b;break a}}while(0);else d=b;while(0);i=ca;return d|0}function Mb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;M=i;i=i+80|0;K=M+60|0;L=M;F=M+48|0;I=M+24|0;J=M+12|0;do if((d-b|0)>1?(a[b>>0]|0)==73:0){G=e+61|0;E=e+36|0;a:do if(a[G>>0]|0){g=c[E>>2]|0;f=c[g+-16>>2]|0;g=g+-12|0;while(1){h=c[g>>2]|0;if((h|0)==(f|0))break a;H=h+-16|0;c[g>>2]=H;Ha(H)}}while(0);$a(L,1427,1);H=e+4|0;t=e+12|0;u=K+8|0;v=K+8|0;D=L+4|0;w=F+8|0;x=F+1|0;y=F+4|0;z=e+32|0;A=e+40|0;B=e+44|0;C=K+8|0;n=b+1|0;b:while(1){if((a[n>>0]|0)==69){f=48;break}do if(a[G>>0]|0){m=c[t>>2]|0;f=c[E>>2]|0;g=c[A>>2]|0;if(f>>>0<g>>>0){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=m;c[E>>2]=(c[E>>2]|0)+16;break}h=c[z>>2]|0;s=f-h|0;k=s>>4;j=k+1|0;if((s|0)<-16){f=13;break b}f=g-h|0;if(f>>4>>>0<1073741823){f=f>>3;f=f>>>0<j>>>0?j:f}else f=2147483647;Ca(K,f,k,B);s=c[C>>2]|0;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=m;c[C>>2]=s+16;Ea(z,K);Fa(K)}while(0);r=((c[H>>2]|0)-(c[e>>2]|0)|0)/24|0;s=Nb(n,d,e)|0;h=((c[H>>2]|0)-(c[e>>2]|0)|0)/24|0;c:do if(a[G>>0]|0){g=c[E>>2]|0;f=g+-16|0;while(1){if((g|0)==(f|0))break c;q=g+-16|0;c[E>>2]=q;Ga(q);g=c[E>>2]|0}}while(0);if((s|0)==(n|0)|(s|0)==(d|0)){f=62;break}d:do if(!(a[G>>0]|0))f=r;else{m=c[E>>2]|0;n=m+-16|0;o=c[t>>2]|0;f=m+-12|0;g=c[f>>2]|0;q=c[m+-8>>2]|0;k=q;if(g>>>0<q>>>0){c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=o;c[f>>2]=(c[f>>2]|0)+16;q=r}else{f=c[n>>2]|0;q=g-f|0;j=q>>4;g=j+1|0;if((q|0)<-16){f=26;break b}f=k-f|0;if(f>>4>>>0<1073741823){f=f>>3;f=f>>>0<g>>>0?g:f}else f=2147483647;Qa(K,f,j,m+-4|0);q=c[u>>2]|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=o;c[u>>2]=q+16;Ra(n,K);Sa(K);q=r}while(1){if(q>>>0>=h>>>0){f=r;break d}m=c[(c[E>>2]|0)+-12>>2]|0;n=m+-16|0;o=c[e>>2]|0;p=o+(q*24|0)|0;f=m+-12|0;g=c[f>>2]|0;k=c[m+-8>>2]|0;j=k;if((g|0)==(k|0)){f=c[n>>2]|0;N=g-f|0;k=(N|0)/24|0;g=k+1|0;if((N|0)<-24){f=34;break b}f=(j-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<g>>>0?g:f}else f=2147483647;ab(K,f,k,m+-4|0);N=c[v>>2]|0;_a(N,p);_a(N+12|0,o+(q*24|0)+12|0);c[v>>2]=N+24;cb(n,K);bb(K)}else{_a(g,p);_a(g+12|0,o+(q*24|0)+12|0);c[f>>2]=(c[f>>2]|0)+24}q=q+1|0}}while(0);while(1){if(f>>>0>=h>>>0)break;N=a[L>>0]|0;if(((N&1)==0?(N&255)>>>1:c[D>>2]|0)>>>0>1)Ya(L,1429)|0;Cb(F,(c[e>>2]|0)+(f*24|0)|0);N=a[F>>0]|0;q=(N&1)==0;Za(L,q?x:c[w>>2]|0,q?(N&255)>>>1:c[y>>2]|0)|0;Ja(F);f=f+1|0}while(1){if((h|0)==(r|0)){n=s;continue b}g=c[H>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0))break;N=g+-24|0;c[H>>2]=N;Ia(N);g=c[H>>2]|0}h=h+-1|0}}if((f|0)==13)Pa();else if((f|0)==26)Pa();else if((f|0)==34)Pa();else if((f|0)==48){l=n+1|0;N=a[L>>0]|0;b=(N&1)==0;if((a[(b?L+1|0:c[L+8>>2]|0)+(b?(N&255)>>>1:c[D>>2]|0)+-1>>0]|0)==62)Ya(L,1432)|0;else Ya(L,844)|0;c[J>>2]=c[L>>2];c[J+4>>2]=c[L+4>>2];c[J+8>>2]=c[L+8>>2];f=0;while(1){if((f|0)==3)break;c[L+(f<<2)>>2]=0;f=f+1|0}rb(I,J);f=c[H>>2]|0;N=c[e+8>>2]|0;j=N;if(f>>>0<N>>>0){db(f,I);c[H>>2]=(c[H>>2]|0)+24}else{g=c[e>>2]|0;N=f-g|0;k=(N|0)/24|0;h=k+1|0;if((N|0)<-24)Pa();f=(j-g|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<h>>>0?h:f}else f=2147483647;ab(K,f,k,e+12|0);N=K+8|0;H=c[N>>2]|0;db(H,I);c[N>>2]=H+24;cb(e,K);bb(K)}Ia(I);Ja(J);Ja(L);break}else if((f|0)==62){Ja(L);l=b;break}}else l=b;while(0);i=M;return l|0}function Nb(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if((b|0)!=(c|0))switch(a[b>>0]|0){case 88:{f=b+1|0;e=ub(f,c,d)|0;if((e|0)==(f|0)|(e|0)==(c|0))break a;b=(a[e>>0]|0)==69?e+1|0:b;break a}case 74:{e=b+1|0;if((e|0)==(c|0))break a;while(1){if((a[e>>0]|0)==69)break;f=Nb(e,c,d)|0;if((f|0)==(e|0))break a;else e=f}b=e+1|0;break a}case 76:{f=b+1|0;if((f|0)!=(c|0)?(a[f>>0]|0)==90:0){f=b+2|0;e=Ma(f,c,d)|0;if((e|0)==(f|0)|(e|0)==(c|0))break a;b=(a[e>>0]|0)==69?e+1|0:b;break a}b=vb(b,c,d)|0;break a}default:{b=Na(b,c,d)|0;break a}}while(0);return b|0}function Ob(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+96|0;o=p+72|0;n=p+56|0;k=p+48|0;l=p+32|0;g=p+24|0;m=p+8|0;h=p;a:do if((b|0)==(d|0))f=b;else switch(a[b>>0]|0){case 84:{j=e+4|0;h=((c[j>>2]|0)-(c[e>>2]|0)|0)/24|0;f=Eb(b,d,e)|0;d=c[j>>2]|0;g=(d-(c[e>>2]|0)|0)/24|0;if(!((f|0)!=(b|0)&(g|0)==(h+1|0))){f=d;while(1){if((g|0)==(h|0)){f=b;break a}d=f+-24|0;while(1){if((f|0)==(d|0))break;e=f+-24|0;c[j>>2]=e;Ia(e);f=c[j>>2]|0}f=d;g=g+-1|0}}b=e+16|0;c[k>>2]=c[e+12>>2];Pb(n,d+-24|0,k);d=e+20|0;g=c[d>>2]|0;m=c[e+24>>2]|0;h=m;if(g>>>0<m>>>0){c[g+12>>2]=c[n+12>>2];c[g>>2]=c[n>>2];e=n+4|0;c[g+4>>2]=c[e>>2];o=n+8|0;c[g+8>>2]=c[o>>2];c[o>>2]=0;c[e>>2]=0;c[n>>2]=0;c[d>>2]=(c[d>>2]|0)+16}else{d=c[b>>2]|0;m=g-d|0;j=m>>4;g=j+1|0;if((m|0)<-16)Pa();d=h-d|0;if(d>>4>>>0<1073741823){d=d>>3;d=d>>>0<g>>>0?g:d}else d=2147483647;Qa(o,d,j,e+28|0);e=o+8|0;m=c[e>>2]|0;c[m+12>>2]=c[n+12>>2];c[m>>2]=c[n>>2];l=n+4|0;c[m+4>>2]=c[l>>2];k=n+8|0;c[m+8>>2]=c[k>>2];c[k>>2]=0;c[l>>2]=0;c[n>>2]=0;c[e>>2]=m+16;Ra(b,o);Sa(o)}Ha(n);break a}case 68:{f=Qb(b,d,e)|0;if((f|0)==(b|0)){f=b;break a}d=c[e+4>>2]|0;if((c[e>>2]|0)==(d|0)){f=b;break a}b=e+16|0;c[g>>2]=c[e+12>>2];Pb(l,d+-24|0,g);d=e+20|0;g=c[d>>2]|0;n=c[e+24>>2]|0;j=n;if(g>>>0<n>>>0){c[g+12>>2]=c[l+12>>2];c[g>>2]=c[l>>2];e=l+4|0;c[g+4>>2]=c[e>>2];o=l+8|0;c[g+8>>2]=c[o>>2];c[o>>2]=0;c[e>>2]=0;c[l>>2]=0;c[d>>2]=(c[d>>2]|0)+16}else{d=c[b>>2]|0;n=g-d|0;h=n>>4;g=h+1|0;if((n|0)<-16)Pa();d=j-d|0;if(d>>4>>>0<1073741823){d=d>>3;d=d>>>0<g>>>0?g:d}else d=2147483647;Qa(o,d,h,e+28|0);e=o+8|0;n=c[e>>2]|0;c[n+12>>2]=c[l+12>>2];c[n>>2]=c[l>>2];m=l+4|0;c[n+4>>2]=c[m>>2];k=l+8|0;c[n+8>>2]=c[k>>2];c[k>>2]=0;c[m>>2]=0;c[l>>2]=0;c[e>>2]=n+16;Ra(b,o);Sa(o)}Ha(l);break a}case 83:{f=Rb(b,d,e)|0;if((f|0)!=(b|0))break a;if((d-b|0)<=2){f=b;break a}if((a[b+1>>0]|0)!=116){f=b;break a}n=b+2|0;f=Sb(n,d,e)|0;if((f|0)==(n|0)){f=b;break a}g=e+4|0;d=c[g>>2]|0;if((c[e>>2]|0)==(d|0)){f=b;break a}Ta(d+-24|0,0,1827)|0;b=e+16|0;d=(c[g>>2]|0)+-24|0;c[h>>2]=c[e+12>>2];Pb(m,d,h);d=e+20|0;g=c[d>>2]|0;n=c[e+24>>2]|0;h=n;if(g>>>0<n>>>0){c[g+12>>2]=c[m+12>>2];c[g>>2]=c[m>>2];e=m+4|0;c[g+4>>2]=c[e>>2];o=m+8|0;c[g+8>>2]=c[o>>2];c[o>>2]=0;c[e>>2]=0;c[m>>2]=0;c[d>>2]=(c[d>>2]|0)+16}else{d=c[b>>2]|0;n=g-d|0;j=n>>4;g=j+1|0;if((n|0)<-16)Pa();d=h-d|0;if(d>>4>>>0<1073741823){d=d>>3;d=d>>>0<g>>>0?g:d}else d=2147483647;Qa(o,d,j,e+28|0);e=o+8|0;n=c[e>>2]|0;c[n+12>>2]=c[m+12>>2];c[n>>2]=c[m>>2];l=m+4|0;c[n+4>>2]=c[l>>2];k=m+8|0;c[n+8>>2]=c[k>>2];c[k>>2]=0;c[l>>2]=0;c[m>>2]=0;c[e>>2]=n+16;Ra(b,o);Sa(o)}Ha(m);break a}default:{f=b;break a}}while(0);i=p;return f|0}function Pb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;c[a>>2]=0;e=a+4|0;c[e>>2]=0;d=c[d>>2]|0;c[a+8>>2]=0;c[a+12>>2]=d;d=Da(d,24)|0;c[e>>2]=d;c[a>>2]=d;c[a+8>>2]=d+24;_a(d,b);_a(d+12|0,b+12|0);c[e>>2]=(c[e>>2]|0)+24;return}function Qb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+64|0;g=m+40|0;h=m+24|0;k=m+12|0;l=m;a:do if((d-b|0)>3?(a[b>>0]|0)==68:0){switch(a[b+1>>0]|0){case 84:case 116:break;default:break a}n=b+2|0;j=ub(n,d,e)|0;if((!((j|0)==(n|0)|(j|0)==(d|0))?(a[j>>0]|0)==69:0)?(f=c[e+4>>2]|0,(c[e>>2]|0)!=(f|0)):0){e=f+-24|0;Cb(l,e);b=Ta(l,0,1435)|0;c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=Ya(k,799)|0;c[h>>2]=c[b>>2];c[h+4>>2]=c[b+4>>2];c[h+8>>2]=c[b+8>>2];f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}rb(g,h);Db(e,g);Ia(g);Ja(h);Ja(k);Ja(l);b=j+1|0}}while(0);i=m;return b|0}function Rb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+176|0;s=t+144|0;k=t+120|0;l=t+96|0;m=t+72|0;n=t+48|0;o=t+24|0;p=t;a:do if((d-b|0)>1?(a[b>>0]|0)==83:0){h=a[b+1>>0]|0;switch(h|0){case 97:{jb(k,1445);f=e+4|0;g=c[f>>2]|0;r=c[e+8>>2]|0;h=r;if(g>>>0<r>>>0){db(g,k);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;r=g-f|0;j=(r|0)/24|0;g=j+1|0;if((r|0)<-24)Pa();f=(h-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<g>>>0?g:f}else f=2147483647;ab(s,f,j,e+12|0);r=s+8|0;q=c[r>>2]|0;db(q,k);c[r>>2]=q+24;cb(e,s);bb(s)}Ia(k);r=b+2|0;break a}case 98:{ob(l,1460);f=e+4|0;g=c[f>>2]|0;r=c[e+8>>2]|0;h=r;if(g>>>0<r>>>0){db(g,l);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;r=g-f|0;j=(r|0)/24|0;g=j+1|0;if((r|0)<-24)Pa();f=(h-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<g>>>0?g:f}else f=2147483647;ab(s,f,j,e+12|0);r=s+8|0;q=c[r>>2]|0;db(q,l);c[r>>2]=q+24;cb(e,s);bb(s)}Ia(l);r=b+2|0;break a}case 115:{gb(m,1478);f=e+4|0;g=c[f>>2]|0;r=c[e+8>>2]|0;h=r;if(g>>>0<r>>>0){db(g,m);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;r=g-f|0;j=(r|0)/24|0;g=j+1|0;if((r|0)<-24)Pa();f=(h-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<g>>>0?g:f}else f=2147483647;ab(s,f,j,e+12|0);r=s+8|0;q=c[r>>2]|0;db(q,m);c[r>>2]=q+24;cb(e,s);bb(s)}Ia(m);r=b+2|0;break a}case 105:{lb(n,1490);f=e+4|0;g=c[f>>2]|0;r=c[e+8>>2]|0;j=r;if(g>>>0<r>>>0){db(g,n);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;r=g-f|0;h=(r|0)/24|0;g=h+1|0;if((r|0)<-24)Pa();f=(j-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<g>>>0?g:f}else f=2147483647;ab(s,f,h,e+12|0);r=s+8|0;q=c[r>>2]|0;db(q,n);c[r>>2]=q+24;cb(e,s);bb(s)}Ia(n);r=b+2|0;break a}case 111:{lb(o,1503);f=e+4|0;g=c[f>>2]|0;r=c[e+8>>2]|0;h=r;if(g>>>0<r>>>0){db(g,o);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;r=g-f|0;j=(r|0)/24|0;g=j+1|0;if((r|0)<-24)Pa();f=(h-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<g>>>0?g:f}else f=2147483647;ab(s,f,j,e+12|0);r=s+8|0;q=c[r>>2]|0;db(q,o);c[r>>2]=q+24;cb(e,s);bb(s)}Ia(o);r=b+2|0;break a}case 100:{hb(p,1516);f=e+4|0;g=c[f>>2]|0;r=c[e+8>>2]|0;h=r;if(g>>>0<r>>>0){db(g,p);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;r=g-f|0;j=(r|0)/24|0;g=j+1|0;if((r|0)<-24)Pa();f=(h-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<g>>>0?g:f}else f=2147483647;ab(s,f,j,e+12|0);r=s+8|0;q=c[r>>2]|0;db(q,p);c[r>>2]=q+24;cb(e,s);bb(s)}Ia(p);r=b+2|0;break a}case 95:{f=c[e+16>>2]|0;if((f|0)==(c[e+20>>2]|0)){r=b;break a}m=c[f+4>>2]|0;n=e+4|0;o=e+8|0;p=e+12|0;d=s+8|0;l=c[f>>2]|0;while(1){if((l|0)==(m|0)){f=55;break}f=c[n>>2]|0;q=c[o>>2]|0;g=q;if((f|0)==(q|0)){h=c[e>>2]|0;q=f-h|0;k=(q|0)/24|0;j=k+1|0;if((q|0)<-24){f=59;break}f=(g-h|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<j>>>0?j:f}else f=2147483647;ab(s,f,k,p);q=c[d>>2]|0;_a(q,l);_a(q+12|0,l+12|0);c[d>>2]=q+24;cb(e,s);bb(s)}else{_a(f,l);_a(f+12|0,l+12|0);c[n>>2]=(c[n>>2]|0)+24}l=l+24|0}if((f|0)==55){r=b+2|0;break a}else if((f|0)==59)Pa();break}default:{g=h+-48|0;f=g>>>0<10;if(!f?(gc(h)|0)==0:0){r=b;break a}k=f?g:h+-55|0;q=b+2|0;while(1){if((q|0)==(d|0)){r=b;break a}f=a[q>>0]|0;g=f<<24>>24;j=g+-48|0;h=j>>>0<10;if(!h?(gc(g)|0)==0:0)break;k=(h?j:g+-55|0)+(k*36|0)|0;q=q+1|0}if(f<<24>>24!=95){r=b;break a}f=k+1|0;d=c[e+16>>2]|0;g=d;if(f>>>0>=(c[e+20>>2]|0)-d>>4>>>0){r=b;break a}m=c[g+(f<<4)+4>>2]|0;n=e+4|0;o=e+8|0;p=e+12|0;d=s+8|0;l=c[g+(f<<4)>>2]|0;while(1){if((l|0)==(m|0)){f=75;break}f=c[n>>2]|0;b=c[o>>2]|0;g=b;if((f|0)==(b|0)){h=c[e>>2]|0;b=f-h|0;k=(b|0)/24|0;j=k+1|0;if((b|0)<-24){f=79;break}f=(g-h|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<j>>>0?j:f}else f=2147483647;ab(s,f,k,p);b=c[d>>2]|0;_a(b,l);_a(b+12|0,l+12|0);c[d>>2]=b+24;cb(e,s);bb(s)}else{_a(f,l);_a(f+12|0,l+12|0);c[n>>2]=(c[n>>2]|0)+24}l=l+24|0}if((f|0)==75){r=q+1|0;break a}else if((f|0)==79)Pa()}}}else r=b;while(0);i=t;return r|0}\nfunction sa(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function ta(){return i|0}function ua(a){a=a|0;i=a}function va(a,b){a=a|0;b=b|0;i=a;j=b}function wa(a,b){a=a|0;b=b|0;if(!n){n=a;o=b}}function xa(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function ya(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function za(a){a=a|0;C=a}function Aa(){return C|0}function Ba(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+4208|0;t=v+4176|0;h=v;u=v+4112|0;if((b|0)!=0?(g=(d|0)!=0,s=(e|0)==0,!(g&s)):0){if(g)q=c[e>>2]|0;else q=0;c[h+4096>>2]=h;g=h;c[u>>2]=0;r=u+4|0;c[r>>2]=0;c[u+8>>2]=0;c[u+12>>2]=g;l=u+16|0;c[l>>2]=0;m=u+20|0;c[m>>2]=0;c[u+24>>2]=0;c[u+28>>2]=g;c[u+32>>2]=0;h=u+36|0;c[h>>2]=0;c[u+40>>2]=0;n=u+44|0;c[n>>2]=g;k=u+48|0;j=u+61|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;a[k+12>>0]=0;a[j>>0]=1;k=u+32|0;Ca(t,1,0,n);n=t+8|0;o=c[n>>2]|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=g;c[n>>2]=o+16;Ea(k,t);Fa(t);n=u+62|0;a[n>>0]=0;a[u+63>>0]=1;c[t>>2]=0;o=b+(bc(b)|0)|0;La(b,o,u,t);g=c[t>>2]|0;do if(!((g|0)!=0|(a[n>>0]|0)==0)){k=c[k>>2]|0;if((k|0)!=(c[h>>2]|0)?(c[k>>2]|0)!=(c[k+4>>2]|0):0){a[n>>0]=0;a[j>>0]=0;g=c[u>>2]|0;while(1){h=c[r>>2]|0;if((h|0)==(g|0))break;k=h+-24|0;c[r>>2]=k;Ia(k)}g=c[l>>2]|0;while(1){h=c[m>>2]|0;if((h|0)==(g|0))break;l=h+-16|0;c[m>>2]=l;Ha(l)}La(b,o,u,t);if(!(a[n>>0]|0)){g=c[t>>2]|0;p=19;break}else{c[t>>2]=-2;d=0;g=-2;break}}else p=20}else p=19;while(0);if((p|0)==19)if(!g)p=20;else d=0;do if((p|0)==20){h=c[r>>2]|0;g=a[h+-24>>0]|0;if(!(g&1))j=(g&255)>>>1;else j=c[h+-20>>2]|0;g=a[h+-12>>0]|0;if(!(g&1))g=(g&255)>>>1;else g=c[h+-8>>2]|0;j=g+j|0;g=j+1|0;if(g>>>0>q>>>0){d=xc(d,g)|0;if(!d){c[t>>2]=-1;d=0;g=-1;break}if(!s)c[e>>2]=g}else if(!d){d=0;g=0;break}g=c[r>>2]|0;t=g+-12|0;h=a[t>>0]|0;e=(h&1)==0;Za(g+-24|0,e?t+1|0:c[g+-4>>2]|0,e?(h&255)>>>1:c[g+-8>>2]|0)|0;g=c[r>>2]|0;h=g+-24|0;if(!(a[h>>0]&1))g=h+1|0;else g=c[g+-16>>2]|0;Fc(d|0,g|0,j|0)|0;a[d+j>>0]=0;g=0}while(0);if(f)c[f>>2]=g;_b(u)}else if(!f)d=0;else{c[f>>2]=-3;d=0}i=v;return d|0}function Ca(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=Da(c[e>>2]|0,b<<4)|0;c[a>>2]=e;d=e+(d<<4)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[a+12>>2]=e+(b<<4);return}function Da(a,b){a=a|0;b=b|0;var d=0,e=0;d=b+15&-16;e=a+4096|0;b=c[e>>2]|0;if((a+4096-b|0)>>>0<d>>>0)b=vc(d)|0;else c[e>>2]=b+d;return b|0}function Ea(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;k=c[g>>2]|0;i=k+-16|0;h=d+-16|0;c[i>>2]=0;j=k+-12|0;c[j>>2]=0;l=c[d+-4>>2]|0;c[k+-8>>2]=0;c[k+-4>>2]=l;c[i>>2]=c[h>>2];i=d+-12|0;c[j>>2]=c[i>>2];j=d+-8|0;c[k+-8>>2]=c[j>>2];c[j>>2]=0;c[i>>2]=0;c[h>>2]=0;c[g>>2]=(c[g>>2]|0)+-16;d=h}j=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=j;j=b+8|0;l=c[f>>2]|0;c[f>>2]=c[j>>2];c[j>>2]=l;j=a+8|0;l=b+12|0;k=c[j>>2]|0;c[j>>2]=c[l>>2];c[l>>2]=k;c[b>>2]=c[g>>2];return}function Fa(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-16|0;c[d>>2]=e;Ga(e)}b=c[a>>2]|0;if(b)Ka(c[c[a+16>>2]>>2]|0,b,(c[a+12>>2]|0)-b|0);return}function Ga(a){a=a|0;var b=0,d=0,e=0;b=c[a>>2]|0;if(b){d=a+4|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-16|0;c[d>>2]=e;Ha(e)}e=c[a>>2]|0;Ka(c[a+12>>2]|0,e,(c[a+8>>2]|0)-e|0)}return}function Ha(a){a=a|0;var b=0,d=0,e=0;b=c[a>>2]|0;if(b){d=a+4|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-24|0;c[d>>2]=e;Ia(e)}e=c[a>>2]|0;Ka(c[a+12>>2]|0,e,(c[a+8>>2]|0)-e|0)}return}function Ia(a){a=a|0;Ja(a+12|0);Ja(a);return}function Ja(b){b=b|0;if(a[b>>0]&1)wc(c[b+8>>2]|0);return}function Ka(a,b,d){a=a|0;b=b|0;d=d|0;if(a>>>0<=b>>>0&(a+4096|0)>>>0>=b>>>0){a=a+4096|0;if((b+(d+15&-16)|0)==(c[a>>2]|0))c[a>>2]=b}else wc(b);return}function La(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+48|0;l=o+24|0;m=o+12|0;n=o;a:do if(b>>>0<d>>>0){b:do if((a[b>>0]|0)!=95){if((Na(b,d,e)|0)!=(d|0)){c[f>>2]=-2;break a}}else{h=d;if((h-b|0)<=3){c[f>>2]=-2;break a}switch(a[b+1>>0]|0){case 90:{k=b+2|0;b=Ma(k,d,e)|0;if(!((b|0)==(k|0)|(b|0)==(d|0))?(a[b>>0]|0)==46:0){g=c[e+4>>2]|0;if((c[e>>2]|0)!=(g|0)){k=g+-24|0;h=h-b|0;if(h>>>0>4294967279)Xa();if(h>>>0<11){a[n>>0]=h<<1;j=n+1|0}else{g=h+16&-16;j=vc(g)|0;c[n+8>>2]=j;c[n>>2]=g|1;c[n+4>>2]=h}g=j;while(1){if((b|0)==(d|0))break;a[g>>0]=a[b>>0]|0;b=b+1|0;g=g+1|0}a[j+h>>0]=0;b=Ta(n,0,849)|0;c[m>>2]=c[b>>2];c[m+4>>2]=c[b+4>>2];c[m+8>>2]=c[b+8>>2];g=0;while(1){if((g|0)==3)break;c[b+(g<<2)>>2]=0;g=g+1|0}b=Ya(m,799)|0;c[l>>2]=c[b>>2];c[l+4>>2]=c[b+4>>2];c[l+8>>2]=c[b+8>>2];g=0;while(1){if((g|0)==3)break;c[b+(g<<2)>>2]=0;g=g+1|0}b=a[l>>0]|0;j=(b&1)==0;Za(k,j?l+1|0:c[l+8>>2]|0,j?(b&255)>>>1:c[l+4>>2]|0)|0;Ja(l);Ja(m);Ja(n);b=d}}if((b|0)==(d|0))break b;c[f>>2]=-2;break a}case 95:{if((a[b+2>>0]|0)==95?(a[b+3>>0]|0)==90:0){n=b+4|0;b=Ma(n,d,e)|0;if((b|0)==(n|0)|(b|0)==(d|0)){c[f>>2]=-2;break a}c:do if((h-b|0)>12){h=0;g=b;while(1){if((h|0)>=13)break;if((a[g>>0]|0)!=(a[2320+h>>0]|0))break c;h=h+1|0;g=g+1|0}d:do if((g|0)==(d|0))g=d;else{if((a[g>>0]|0)==95){h=g+1|0;if((h|0)==(d|0))break c;if(((a[h>>0]|0)+-48|0)>>>0>=10)break c;g=g+2|0}while(1){if((g|0)==(d|0)){g=d;break d}if(((a[g>>0]|0)+-48|0)>>>0>=10)break d;g=g+1|0}}while(0);h=c[e+4>>2]|0;if((c[e>>2]|0)!=(h|0)){Ta(h+-24|0,0,2334)|0;b=g}}while(0);if((b|0)==(d|0))break b;c[f>>2]=-2;break a}break}default:{}}c[f>>2]=-2;break a}while(0);if((c[f>>2]|0)==0?(c[e>>2]|0)==(c[e+4>>2]|0):0)c[f>>2]=-2}else c[f>>2]=-2;while(0);i=o;return}function Ma(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+80|0;z=E+60|0;y=E+48|0;r=E+36|0;s=E+24|0;t=E+12|0;w=E;a:do if((b|0)==(d|0))f=b;else{B=e+56|0;C=c[B>>2]|0;x=C+1|0;c[B>>2]=x;D=e+61|0;A=a[D>>0]|0;if(x>>>0>1)a[D>>0]=1;f=a[b>>0]|0;b:do switch(f|0){case 84:case 71:{c:do if((d-b|0)>2){switch(f|0){case 84:break;case 71:switch(a[b+1>>0]|0){case 86:{z=b+2|0;f=Wb(z,d,e)|0;if((f|0)==(z|0)){f=b;break c}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break c}Ta(g+-24|0,0,2275)|0;break c}case 82:{z=b+2|0;f=Wb(z,d,e)|0;if((f|0)==(z|0)){f=b;break c}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break c}Ta(g+-24|0,0,2295)|0;break c}default:{f=b;break c}}default:{f=b;break c}}f=b+1|0;switch(a[f>>0]|0){case 86:{z=b+2|0;f=Na(z,d,e)|0;if((f|0)==(z|0)){f=b;break c}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break c}Ta(g+-24|0,0,2124)|0;break c}case 84:{z=b+2|0;f=Na(z,d,e)|0;if((f|0)==(z|0)){f=b;break c}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break c}Ta(g+-24|0,0,2136)|0;break c}case 73:{z=b+2|0;f=Na(z,d,e)|0;if((f|0)==(z|0)){f=b;break c}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break c}Ta(g+-24|0,0,2145)|0;break c}case 83:{z=b+2|0;f=Na(z,d,e)|0;if((f|0)==(z|0)){f=b;break c}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break c}Ta(g+-24|0,0,2159)|0;break c}case 99:{z=b+2|0;f=Zb(z,d)|0;if((f|0)==(z|0)){f=b;break c}g=Zb(f,d)|0;if((g|0)==(f|0)){f=b;break c}f=Ma(g,d,e)|0;if((f|0)==(g|0)){f=b;break c}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break c}Ta(g+-24|0,0,2178)|0;break c}case 67:{x=b+2|0;f=Na(x,d,e)|0;if((f|0)==(x|0)){f=b;break c}g=tb(f,d)|0;if((g|0)==(f|0)|(g|0)==(d|0)){f=b;break c}if((a[g>>0]|0)!=95){f=b;break c}x=g+1|0;f=Na(x,d,e)|0;if((f|0)==(x|0)){f=b;break c}j=e+4|0;g=c[j>>2]|0;if(((g-(c[e>>2]|0)|0)/24|0)>>>0<2){f=b;break c}Cb(z,g+-24|0);k=c[j>>2]|0;g=k+-24|0;h=k;while(1){if((h|0)==(g|0))break;b=h+-24|0;c[j>>2]=b;Ia(b);h=c[j>>2]|0}q=k+-48|0;g=Ta(z,0,2205)|0;c[s>>2]=c[g>>2];c[s+4>>2]=c[g+4>>2];c[s+8>>2]=c[g+8>>2];h=0;while(1){if((h|0)==3)break;c[g+(h<<2)>>2]=0;h=h+1|0}g=Ya(s,2230)|0;c[r>>2]=c[g>>2];c[r+4>>2]=c[g+4>>2];c[r+8>>2]=c[g+8>>2];h=0;while(1){if((h|0)==3)break;c[g+(h<<2)>>2]=0;h=h+1|0}Cb(t,(c[j>>2]|0)+-24|0);g=a[t>>0]|0;h=(g&1)==0;g=Za(r,h?t+1|0:c[t+8>>2]|0,h?(g&255)>>>1:c[t+4>>2]|0)|0;c[y>>2]=c[g>>2];c[y+4>>2]=c[g+4>>2];c[y+8>>2]=c[g+8>>2];h=0;while(1){if((h|0)==3)break;c[g+(h<<2)>>2]=0;h=h+1|0}do if(a[q>>0]&1){p=k+-40|0;a[c[p>>2]>>0]=0;m=k+-44|0;c[m>>2]=0;g=a[q>>0]|0;if(!(g&1))l=10;else{l=c[q>>2]|0;g=l&255;l=(l&-2)+-1|0}if(!(g&1)){h=(g&255)>>>1;if((g&255)<22){k=10;n=h;o=1}else{k=(h+16&240)+-1|0;n=h;o=1}}else{k=10;n=0;o=0}if((k|0)!=(l|0)){if((k|0)==10){j=q+1|0;h=c[p>>2]|0;if(o){Fc(j|0,h|0,((g&255)>>>1)+1|0)|0;wc(h)}else{a[j>>0]=a[h>>0]|0;wc(h)}a[q>>0]=n<<1;break}h=k+1|0;j=vc(h)|0;if(!(k>>>0<=l>>>0&(j|0)==0)){if(o)Fc(j|0,q+1|0,((g&255)>>>1)+1|0)|0;else{b=c[p>>2]|0;a[j>>0]=a[b>>0]|0;wc(b)}c[q>>2]=h|1;c[m>>2]=n;c[p>>2]=j}}}else{a[q+1>>0]=0;a[q>>0]=0}while(0);c[q>>2]=c[y>>2];c[q+4>>2]=c[y+4>>2];c[q+8>>2]=c[y+8>>2];g=0;while(1){if((g|0)==3)break;c[y+(g<<2)>>2]=0;g=g+1|0}Ja(y);Ja(t);Ja(r);Ja(s);Ja(z);break c}default:{g=Zb(f,d)|0;if((g|0)==(f|0)){f=b;break c}f=Ma(g,d,e)|0;if((f|0)==(g|0)){f=b;break c}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break c}g=g+-24|0;if((a[b+2>>0]|0)==118){Ta(g,0,2235)|0;break c}else{Ta(g,0,2253)|0;break c}}}}else f=b;while(0);break}default:{f=Wb(b,d,e)|0;u=c[e+48>>2]|0;v=c[e+52>>2]|0;if((f|0)!=(b|0))if((f|0)!=(d|0)){switch(a[f>>0]|0){case 46:case 69:break b;default:{}}x=a[D>>0]|0;a[D>>0]=0;g=0;while(1){if((g|0)==3)break;c[z+(g<<2)>>2]=0;g=g+1|0}t=e+4|0;m=c[t>>2]|0;d:do if((c[e>>2]|0)!=(m|0)){l=m+-24|0;j=a[l>>0]|0;k=(j&1)==0;if(k)g=(j&255)>>>1;else g=c[m+-20>>2]|0;if(g){if(!(a[e+60>>0]|0)){if(k){g=l+1|0;h=(j&255)>>>1}else{g=c[m+-16>>2]|0;h=c[m+-20>>2]|0}if((a[g+h+-1>>0]|0)==62){if(k){g=(j&255)>>>1;h=l+1|0}else{g=c[m+-20>>2]|0;h=c[m+-16>>2]|0}if((a[h+(g+-2)>>0]|0)!=45){if(k){h=(j&255)>>>1;g=l+1|0}else{h=c[m+-20>>2]|0;g=c[m+-16>>2]|0}if((a[g+(h+-2)>>0]|0)!=62){o=Na(f,d,e)|0;if((o|0)==(f|0)){f=b;g=0;break}s=c[t>>2]|0;f=s;if(((s-(c[e>>2]|0)|0)/24|0)>>>0<2){f=b;g=0;break}g=f+-24|0;c[y>>2]=c[g>>2];c[y+4>>2]=c[g+4>>2];c[y+8>>2]=c[g+8>>2];h=0;while(1){if((h|0)==3)break;c[g+(h<<2)>>2]=0;h=h+1|0}n=f+-12|0;e:do if(!(a[z>>0]&1)){a[z+1>>0]=0;a[z>>0]=0}else{k=z+8|0;g=c[k>>2]|0;a[g>>0]=0;l=z+4|0;c[l>>2]=0;f=c[z>>2]|0;m=(f&-2)+-1|0;h=f&255;do if(!(h&1)){f=f>>>1&127;if((h&255)<22){Fc(z+1|0,g|0,f+1|0)|0;wc(g);break}g=f+16&240;j=g+-1|0;if((j|0)==(m|0))break e;h=vc(g)|0;if(j>>>0<=m>>>0&(h|0)==0)break e;Fc(h|0,z+1|0,f+1|0)|0;c[z>>2]=g|1;c[l>>2]=f;c[k>>2]=h;break e}else{a[z+1>>0]=0;wc(g);f=0}while(0);a[z>>0]=f<<1}while(0);c[z>>2]=c[n>>2];c[z+4>>2]=c[n+4>>2];c[z+8>>2]=c[n+8>>2];f=0;while(1){if((f|0)==3)break;c[n+(f<<2)>>2]=0;f=f+1|0}s=a[z>>0]|0;if(!(((s&1)==0?(s&255)>>>1:c[z+4>>2]|0)|0))zb(y,32);f=c[t>>2]|0;g=f+-24|0;h=f;while(1){if((h|0)==(g|0))break;s=h+-24|0;c[t>>2]=s;Ia(s);h=c[t>>2]|0}g=a[y>>0]|0;s=(g&1)==0;Ua(f+-48|0,0,s?y+1|0:c[y+8>>2]|0,s?(g&255)>>>1:c[y+4>>2]|0)|0;Ja(y);g=c[t>>2]|0;f=o}else g=m}else g=m}else g=m}else g=m;zb(g+-24|0,40);if((f|0)!=(d|0)?(a[f>>0]|0)==118:0){h=c[e>>2]|0;g=c[t>>2]|0;f=f+1|0}else p=128;do if((p|0)==128){n=y+4|0;o=w+8|0;p=w+1|0;q=w+4|0;r=y+8|0;s=y+1|0;l=1;f:while(1){h=c[e>>2]|0;g=c[t>>2]|0;while(1){j=(g-h|0)/24|0;m=Na(f,d,e)|0;g=c[t>>2]|0;h=c[e>>2]|0;k=(g-h|0)/24|0;if((m|0)==(f|0)){p=151;break f}if(k>>>0>j>>>0)break;else f=m}f=0;while(1){if((f|0)==3){f=j;break}c[y+(f<<2)>>2]=0;f=f+1|0}while(1){if(f>>>0>=k>>>0){h=j;break}h=a[y>>0]|0;if(((h&1)==0?(h&255)>>>1:c[n>>2]|0)|0)Ya(y,1429)|0;Cb(w,(c[e>>2]|0)+(f*24|0)|0);h=a[w>>0]|0;g=(h&1)==0;Za(y,g?p:c[o>>2]|0,g?(h&255)>>>1:c[q>>2]|0)|0;Ja(w);f=f+1|0}while(1){if(h>>>0>=k>>>0)break;g=c[t>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0))break;j=g+-24|0;c[t>>2]=j;Ia(j);g=c[t>>2]|0}h=h+1|0}h=a[y>>0]|0;f=c[n>>2]|0;if(!(((h&1)==0?(h&255)>>>1:f)|0))f=l;else{g=c[t>>2]|0;if((c[e>>2]|0)==(g|0)){p=163;break}if(!l){Ya(g+-24|0,1429)|0;g=c[t>>2]|0;h=a[y>>0]|0;f=c[n>>2]|0}l=(h&1)==0;Za(g+-24|0,l?s:c[r>>2]|0,l?(h&255)>>>1:f)|0;f=0}Ja(y);l=f;f=m}if((p|0)==151)break;else if((p|0)==163){Ja(y);f=b;g=0;break d}}while(0);if((h|0)!=(g|0)){zb(g+-24|0,41);if(u&1)Ya((c[t>>2]|0)+-24|0,267)|0;if(u&2)Ya((c[t>>2]|0)+-24|0,456)|0;if(u&4)Ya((c[t>>2]|0)+-24|0,466)|0;switch(v|0){case 1:{Ya((c[t>>2]|0)+-24|0,2032)|0;break}case 2:{Ya((c[t>>2]|0)+-24|0,2035)|0;break}default:{}}g=a[z>>0]|0;y=(g&1)==0;Za((c[t>>2]|0)+-24|0,y?z+1|0:c[z+8>>2]|0,y?(g&255)>>>1:c[z+4>>2]|0)|0;g=1}else{f=b;g=0}}else{f=b;g=0}}else{f=b;g=0}while(0);Ja(z);a[D>>0]=x;if(!g){a[D>>0]=A;c[B>>2]=C;f=b;break a}}else f=d;else f=b}}while(0);a[D>>0]=A;c[B>>2]=C}while(0);i=E;return f|0}function Na(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0;za=i;i=i+736|0;ya=za+704|0;xa=za+680|0;la=za+668|0;ca=za+656|0;fa=za+632|0;pa=za+608|0;sa=za+584|0;ia=za+572|0;oa=za+560|0;qa=za+548|0;ra=za+536|0;$=za+384|0;ja=za+520|0;ha=za+512|0;A=za+496|0;o=za+488|0;S=za+472|0;O=za+464|0;B=za+448|0;p=za+440|0;na=za+424|0;ma=za+420|0;T=za+408|0;da=za+396|0;ea=za+372|0;U=za+360|0;X=za+344|0;V=za+340|0;t=za+328|0;v=za+304|0;w=za+288|0;x=za+276|0;y=za+264|0;E=za+240|0;F=za+228|0;G=za+216|0;H=za+204|0;I=za+192|0;L=za+168|0;M=za+156|0;N=za+144|0;W=za+128|0;R=za+120|0;z=za+104|0;n=za+96|0;D=za+80|0;s=za+72|0;C=za+56|0;r=za+48|0;ga=za+32|0;ba=za+24|0;wa=za+8|0;va=za;a:do if((d|0)!=(e|0)){switch(a[d>>0]|0){case 75:case 86:case 114:{c[xa>>2]=0;h=Oa(d,e,xa)|0;b:do if((h|0)!=(d|0)?(j=a[h>>0]|0,Z=f+4|0,q=((c[Z>>2]|0)-(c[f>>2]|0)|0)/24|0,Y=Na(h,e,f)|0,Z=((c[Z>>2]|0)-(c[f>>2]|0)|0)/24|0,(Y|0)!=(h|0)):0){v=j<<24>>24==70;w=f+20|0;h=c[w>>2]|0;c:do if(v){j=h+-16|0;while(1){if((h|0)==(j|0)){h=j;break c}d=h+-16|0;c[w>>2]=d;Ha(d);h=c[w>>2]|0}}while(0);n=f+16|0;o=c[f+12>>2]|0;d=c[f+24>>2]|0;j=d;if(h>>>0<d>>>0){c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=o;c[w>>2]=(c[w>>2]|0)+16}else{k=c[n>>2]|0;d=h-k|0;m=d>>4;l=m+1|0;if((d|0)<-16)Pa();h=j-k|0;if(h>>4>>>0<1073741823){h=h>>3;h=h>>>0<l>>>0?l:h}else h=2147483647;Qa(ya,h,m,f+28|0);d=ya+8|0;e=c[d>>2]|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=o;c[d>>2]=e+16;Ra(n,ya);Sa(ya)}t=c[xa>>2]|0;r=(t&1|0)==0;s=(t&2|0)==0;t=(t&4|0)==0;u=ya+8|0;while(1){if(q>>>0>=Z>>>0){g=Y;break b}if(v){k=c[f>>2]|0;o=k+(q*24|0)+12|0;l=a[o>>0]|0;h=(l&1)==0;if(h){m=(l&255)>>>1;j=o+1|0}else{m=c[k+(q*24|0)+16>>2]|0;j=c[k+(q*24|0)+20>>2]|0}n=m+-2|0;if((a[j+n>>0]|0)==38)h=m+-3|0;else{if(h){j=o+1|0;h=(l&255)>>>1}else{j=c[k+(q*24|0)+20>>2]|0;h=c[k+(q*24|0)+16>>2]|0}h=(a[j+h+-1>>0]|0)==38?n:m}if(!r){Ta(o,h,267)|0;h=h+6|0}if(!s){Ta((c[f>>2]|0)+(q*24|0)+12|0,h,456)|0;h=h+9|0}if(!t)Ta((c[f>>2]|0)+(q*24|0)+12|0,h,466)|0}else{if(!r)Ya((c[f>>2]|0)+(q*24|0)|0,267)|0;if(!s)Ya((c[f>>2]|0)+(q*24|0)|0,456)|0;if(!t)Ya((c[f>>2]|0)+(q*24|0)|0,466)|0}m=c[w>>2]|0;n=m+-16|0;o=c[f>>2]|0;p=o+(q*24|0)|0;h=m+-12|0;j=c[h>>2]|0;d=c[m+-8>>2]|0;k=d;if((j|0)==(d|0)){h=c[n>>2]|0;d=j-h|0;l=(d|0)/24|0;j=l+1|0;if((d|0)<-24)break;h=(k-h|0)/24|0;if(h>>>0<1073741823){h=h<<1;h=h>>>0<j>>>0?j:h}else h=2147483647;ab(ya,h,l,m+-4|0);d=c[u>>2]|0;_a(d,p);_a(d+12|0,o+(q*24|0)+12|0);c[u>>2]=d+24;cb(n,ya);bb(ya)}else{_a(j,p);_a(j+12|0,o+(q*24|0)+12|0);c[h>>2]=(c[h>>2]|0)+24}q=q+1|0}Pa()}else g=d;while(0);break a}default:{}}g=eb(d,e,f)|0;if((g|0)==(d|0)){h=a[d>>0]|0;d:do switch(h<<24>>24|0){case 65:{do if(h<<24>>24==65?(u=d+1|0,(u|0)!=(e|0)):0){g=a[u>>0]|0;if(g<<24>>24==95){xa=d+2|0;g=Na(xa,e,f)|0;if((g|0)==(xa|0)){g=d;break}h=f+4|0;j=c[h>>2]|0;if((c[f>>2]|0)==(j|0)){g=d;break}e=j+-12|0;wa=a[e>>0]|0;xa=(wa&1)==0;wa=xa?(wa&255)>>>1:c[j+-8>>2]|0;$a(ya,xa?e+1|0:c[j+-4>>2]|0,wa>>>0<2?wa:2);wa=a[ya>>0]|0;e=(wa&1)==0;wa=e?(wa&255)>>>1:c[ya+4>>2]|0;xa=wa>>>0>2;e=ac(e?ya+1|0:c[ya+8>>2]|0,790,xa?2:wa)|0;Ja(ya);if(!(((e|0)==0?(wa>>>0<2?-1:xa&1):e)|0))sb((c[h>>2]|0)+-12|0);Ta((c[h>>2]|0)+-12|0,0,793)|0;break}if((g+-49&255)<9){m=tb(u,e)|0;if((m|0)==(e|0)){g=d;break}if((a[m>>0]|0)!=95){g=d;break}wa=m+1|0;g=Na(wa,e,f)|0;if((g|0)==(wa|0)){g=d;break}h=f+4|0;j=c[h>>2]|0;if((c[f>>2]|0)==(j|0)){g=d;break}e=j+-12|0;va=a[e>>0]|0;wa=(va&1)==0;va=wa?(va&255)>>>1:c[j+-8>>2]|0;$a(xa,wa?e+1|0:c[j+-4>>2]|0,va>>>0<2?va:2);va=a[xa>>0]|0;e=(va&1)==0;va=e?(va&255)>>>1:c[xa+4>>2]|0;wa=va>>>0>2;e=ac(e?xa+1|0:c[xa+8>>2]|0,790,wa?2:va)|0;Ja(xa);if(!(((e|0)==0?(va>>>0<2?-1:wa&1):e)|0))sb((c[h>>2]|0)+-12|0);n=(c[h>>2]|0)+-12|0;k=m-u|0;if(k>>>0>4294967279)Xa();if(k>>>0<11){a[fa>>0]=k<<1;l=fa+1|0}else{e=k+16&-16;l=vc(e)|0;c[fa+8>>2]=l;c[fa>>2]=e|1;c[fa+4>>2]=k}h=u;j=l;while(1){if((h|0)==(m|0))break;a[j>>0]=a[h>>0]|0;h=h+1|0;j=j+1|0}a[l+k>>0]=0;h=Ta(fa,0,790)|0;c[ca>>2]=c[h>>2];c[ca+4>>2]=c[h+4>>2];c[ca+8>>2]=c[h+8>>2];j=0;while(1){if((j|0)==3)break;c[h+(j<<2)>>2]=0;j=j+1|0}h=Ya(ca,4264)|0;c[la>>2]=c[h>>2];c[la+4>>2]=c[h+4>>2];c[la+8>>2]=c[h+8>>2];j=0;while(1){if((j|0)==3)break;c[h+(j<<2)>>2]=0;j=j+1|0}e=a[la>>0]|0;xa=(e&1)==0;Ua(n,0,xa?la+1|0:c[la+8>>2]|0,xa?(e&255)>>>1:c[la+4>>2]|0)|0;Ja(la);Ja(ca);Ja(fa);break}g=ub(u,e,f)|0;if(((!((g|0)==(u|0)|(g|0)==(e|0))?(a[g>>0]|0)==95:0)?(xa=g+1|0,aa=Na(xa,e,f)|0,(aa|0)!=(xa|0)):0)?(P=f+4|0,m=c[P>>2]|0,((m-(c[f>>2]|0)|0)/24|0)>>>0>=2):0){db(pa,m+-24|0);g=c[P>>2]|0;h=g+-24|0;j=g;while(1){if((j|0)==(h|0))break;e=j+-24|0;c[P>>2]=e;Ia(e);j=c[P>>2]|0}db(sa,g+-48|0);g=c[P>>2]|0;q=g+-24|0;do if(a[q>>0]&1){p=g+-16|0;a[c[p>>2]>>0]=0;m=g+-20|0;c[m>>2]=0;g=a[q>>0]|0;if(!(g&1))l=10;else{l=c[q>>2]|0;g=l&255;l=(l&-2)+-1|0}if(!(g&1)){h=(g&255)>>>1;if((g&255)<22){o=1;k=10;n=h}else{o=1;k=(h+16&240)+-1|0;n=h}}else{o=0;k=10;n=0}if((k|0)!=(l|0)){if((k|0)==10){j=q+1|0;h=c[p>>2]|0;if(o){Fc(j|0,h|0,((g&255)>>>1)+1|0)|0;wc(h)}else{a[j>>0]=a[h>>0]|0;wc(h)}a[q>>0]=n<<1;break}h=k+1|0;j=vc(h)|0;if(!(k>>>0<=l>>>0&(j|0)==0)){if(o)Fc(j|0,q+1|0,((g&255)>>>1)+1|0)|0;else{e=c[p>>2]|0;a[j>>0]=a[e>>0]|0;wc(e)}c[q>>2]=h|1;c[m>>2]=n;c[p>>2]=j}}}else{a[q+1>>0]=0;a[q>>0]=0}while(0);c[q>>2]=c[pa>>2];c[q+4>>2]=c[pa+4>>2];c[q+8>>2]=c[pa+8>>2];g=0;while(1){if((g|0)==3)break;c[pa+(g<<2)>>2]=0;g=g+1|0}j=pa+12|0;wa=a[j>>0]|0;e=(wa&1)==0;k=pa+16|0;wa=e?(wa&255)>>>1:c[k>>2]|0;l=pa+20|0;m=j+1|0;$a(ia,e?m:c[l>>2]|0,wa>>>0<2?wa:2);wa=a[ia>>0]|0;e=(wa&1)==0;wa=e?(wa&255)>>>1:c[ia+4>>2]|0;xa=wa>>>0>2;e=ac(e?ia+1|0:c[ia+8>>2]|0,790,xa?2:wa)|0;Ja(ia);if(!(((e|0)==0?(wa>>>0<2?-1:xa&1):e)|0))sb(j);n=c[P>>2]|0;q=n+-12|0;Cb($,sa);g=Ta($,0,790)|0;c[ra>>2]=c[g>>2];c[ra+4>>2]=c[g+4>>2];c[ra+8>>2]=c[g+8>>2];h=0;while(1){if((h|0)==3)break;c[g+(h<<2)>>2]=0;h=h+1|0}g=Ya(ra,4264)|0;c[qa>>2]=c[g>>2];c[qa+4>>2]=c[g+4>>2];c[qa+8>>2]=c[g+8>>2];h=0;while(1){if((h|0)==3)break;c[g+(h<<2)>>2]=0;h=h+1|0}g=a[j>>0]|0;h=(g&1)==0;g=Za(qa,h?m:c[l>>2]|0,h?(g&255)>>>1:c[k>>2]|0)|0;c[oa>>2]=c[g>>2];c[oa+4>>2]=c[g+4>>2];c[oa+8>>2]=c[g+8>>2];h=0;while(1){if((h|0)==3)break;c[g+(h<<2)>>2]=0;h=h+1|0}do if(a[q>>0]&1){p=n+-4|0;a[c[p>>2]>>0]=0;m=n+-8|0;c[m>>2]=0;g=a[q>>0]|0;if(!(g&1))l=10;else{l=c[q>>2]|0;g=l&255;l=(l&-2)+-1|0}do if(!(g&1)){h=(g&255)>>>1;if((g&255)<22){o=1;k=10;n=h;break}o=1;k=(h+16&240)+-1|0;n=h}else{o=0;k=10;n=0}while(0);if((k|0)!=(l|0)){if((k|0)==10){j=q+1|0;h=c[p>>2]|0;if(o){Fc(j|0,h|0,((g&255)>>>1)+1|0)|0;wc(h)}else{a[j>>0]=a[h>>0]|0;wc(h)}a[q>>0]=n<<1;break}h=k+1|0;j=vc(h)|0;if(k>>>0<=l>>>0&(j|0)==0)break;if(o)Fc(j|0,q+1|0,((g&255)>>>1)+1|0)|0;else{e=c[p>>2]|0;a[j>>0]=a[e>>0]|0;wc(e)}c[q>>2]=h|1;c[m>>2]=n;c[p>>2]=j}}else{a[q+1>>0]=0;a[q>>0]=0}while(0);c[q>>2]=c[oa>>2];c[q+4>>2]=c[oa+4>>2];c[q+8>>2]=c[oa+8>>2];g=0;while(1){if((g|0)==3)break;c[oa+(g<<2)>>2]=0;g=g+1|0}Ja(oa);Ja(qa);Ja(ra);Ja($);Ia(sa);Ia(pa);g=aa}else g=d}else g=d;while(0);if((g|0)==(d|0)){g=d;break a}h=c[f+4>>2]|0;if((c[f>>2]|0)==(h|0)){g=d;break a}m=f+16|0;c[ha>>2]=c[f+12>>2];Pb(ja,h+-24|0,ha);h=f+20|0;j=c[h>>2]|0;d=c[f+24>>2]|0;k=d;if(j>>>0<d>>>0){c[j+12>>2]=c[ja+12>>2];c[j>>2]=c[ja>>2];ya=ja+4|0;c[j+4>>2]=c[ya>>2];f=ja+8|0;c[j+8>>2]=c[f>>2];c[f>>2]=0;c[ya>>2]=0;c[ja>>2]=0;c[h>>2]=(c[h>>2]|0)+16}else{h=c[m>>2]|0;d=j-h|0;l=d>>4;j=l+1|0;if((d|0)<-16)Pa();h=k-h|0;if(h>>4>>>0<1073741823){h=h>>3;h=h>>>0<j>>>0?j:h}else h=2147483647;Qa(ya,h,l,f+28|0);f=ya+8|0;d=c[f>>2]|0;c[d+12>>2]=c[ja+12>>2];c[d>>2]=c[ja>>2];e=ja+4|0;c[d+4>>2]=c[e>>2];xa=ja+8|0;c[d+8>>2]=c[xa>>2];c[xa>>2]=0;c[e>>2]=0;c[ja>>2]=0;c[f>>2]=d+16;Ra(m,ya);Sa(ya)}Ha(ja);break a}case 67:{xa=d+1|0;g=Na(xa,e,f)|0;if((g|0)==(xa|0)){g=d;break a}j=f+4|0;h=c[j>>2]|0;if((c[f>>2]|0)==(h|0)){g=d;break a}Ya(h+-24|0,2023)|0;m=f+16|0;h=(c[j>>2]|0)+-24|0;c[o>>2]=c[f+12>>2];Pb(A,h,o);h=f+20|0;j=c[h>>2]|0;d=c[f+24>>2]|0;k=d;if(j>>>0<d>>>0){c[j+12>>2]=c[A+12>>2];c[j>>2]=c[A>>2];ya=A+4|0;c[j+4>>2]=c[ya>>2];f=A+8|0;c[j+8>>2]=c[f>>2];c[f>>2]=0;c[ya>>2]=0;c[A>>2]=0;c[h>>2]=(c[h>>2]|0)+16}else{h=c[m>>2]|0;d=j-h|0;l=d>>4;j=l+1|0;if((d|0)<-16)Pa();h=k-h|0;if(h>>4>>>0<1073741823){h=h>>3;h=h>>>0<j>>>0?j:h}else h=2147483647;Qa(ya,h,l,f+28|0);f=ya+8|0;d=c[f>>2]|0;c[d+12>>2]=c[A+12>>2];c[d>>2]=c[A>>2];e=A+4|0;c[d+4>>2]=c[e>>2];xa=A+8|0;c[d+8>>2]=c[xa>>2];c[xa>>2]=0;c[e>>2]=0;c[A>>2]=0;c[f>>2]=d+16;Ra(m,ya);Sa(ya)}Ha(A);break a}case 70:{do if(h<<24>>24==70){g=d+1|0;if((g|0)!=(e|0)){if((a[g>>0]|0)==89){g=d+2|0;if((g|0)==(e|0))break}h=Na(g,e,f)|0;if((h|0)!=(g|0)){$a(ya,797,1);r=f+4|0;q=ya+4|0;m=xa+8|0;n=xa+1|0;o=xa+4|0;p=0;g=h;e:while(1){j=g;f:while(1){if((j|0)==(e|0)){ta=170;break e}switch(a[j>>0]|0){case 69:{ta=174;break e}case 118:{j=j+1|0;continue f}case 82:{g=j+1|0;if((g|0)!=(e|0)?(a[g>>0]|0)==69:0){p=1;continue e}break}case 79:{g=j+1|0;if((g|0)!=(e|0)?(a[g>>0]|0)==69:0){p=2;continue e}break}default:{}}h=((c[r>>2]|0)-(c[f>>2]|0)|0)/24|0;k=Na(j,e,f)|0;l=((c[r>>2]|0)-(c[f>>2]|0)|0)/24|0;if((k|0)==(j|0)|(k|0)==(e|0))break e;else g=h;while(1){if(g>>>0>=l>>>0)break;wa=a[ya>>0]|0;if(((wa&1)==0?(wa&255)>>>1:c[q>>2]|0)>>>0>1)Ya(ya,1429)|0;Cb(xa,(c[f>>2]|0)+(g*24|0)|0);wa=a[xa>>0]|0;va=(wa&1)==0;Za(ya,va?n:c[m>>2]|0,va?(wa&255)>>>1:c[o>>2]|0)|0;Ja(xa);g=g+1|0}while(1){if(h>>>0>=l>>>0){j=k;continue f}j=c[r>>2]|0;g=j+-24|0;while(1){if((j|0)==(g|0))break;wa=j+-24|0;c[r>>2]=wa;Ia(wa);j=c[r>>2]|0}h=h+1|0}}}g:do if((ta|0)==170){h=c[r>>2]|0;g=h+-24|0;while(1){if((h|0)==(g|0))break g;f=h+-24|0;c[r>>2]=f;Ia(f);h=c[r>>2]|0}}else if((ta|0)==174){g=j+1|0;Ya(ya,799)|0;switch(p|0){case 1:{Ya(ya,2032)|0;break}case 2:{Ya(ya,2035)|0;break}default:{}}h=c[r>>2]|0;if((c[f>>2]|0)!=(h|0)){Ya(h+-24|0,1882)|0;e=a[ya>>0]|0;xa=(e&1)==0;Ua((c[r>>2]|0)+-12|0,0,xa?ya+1|0:c[ya+8>>2]|0,xa?(e&255)>>>1:c[q>>2]|0)|0;Ja(ya);if((g|0)==(d|0)){g=d;break a}h=c[r>>2]|0;if((c[f>>2]|0)==(h|0)){g=d;break a}m=f+16|0;c[O>>2]=c[f+12>>2];Pb(S,h+-24|0,O);h=f+20|0;j=c[h>>2]|0;d=c[f+24>>2]|0;k=d;if(j>>>0<d>>>0){c[j+12>>2]=c[S+12>>2];c[j>>2]=c[S>>2];ya=S+4|0;c[j+4>>2]=c[ya>>2];f=S+8|0;c[j+8>>2]=c[f>>2];c[f>>2]=0;c[ya>>2]=0;c[S>>2]=0;c[h>>2]=(c[h>>2]|0)+16}else{h=c[m>>2]|0;d=j-h|0;l=d>>4;j=l+1|0;if((d|0)<-16)Pa();h=k-h|0;if(h>>4>>>0<1073741823){h=h>>3;h=h>>>0<j>>>0?j:h}else h=2147483647;Qa(ya,h,l,f+28|0);f=ya+8|0;d=c[f>>2]|0;c[d+12>>2]=c[S+12>>2];c[d>>2]=c[S>>2];e=S+4|0;c[d+4>>2]=c[e>>2];xa=S+8|0;c[d+8>>2]=c[xa>>2];c[xa>>2]=0;c[e>>2]=0;c[S>>2]=0;c[f>>2]=d+16;Ra(m,ya);Sa(ya)}Ha(S);break a}}while(0);Ja(ya);break}}g=d;break a}while(0);g=d;break a}case 71:{xa=d+1|0;g=Na(xa,e,f)|0;if((g|0)==(xa|0)){g=d;break a}j=f+4|0;h=c[j>>2]|0;if((c[f>>2]|0)==(h|0)){g=d;break a}Ya(h+-24|0,2039)|0;m=f+16|0;h=(c[j>>2]|0)+-24|0;c[p>>2]=c[f+12>>2];Pb(B,h,p);h=f+20|0;j=c[h>>2]|0;d=c[f+24>>2]|0;k=d;if(j>>>0<d>>>0){c[j+12>>2]=c[B+12>>2];c[j>>2]=c[B>>2];ya=B+4|0;c[j+4>>2]=c[ya>>2];f=B+8|0;c[j+8>>2]=c[f>>2];c[f>>2]=0;c[ya>>2]=0;c[B>>2]=0;c[h>>2]=(c[h>>2]|0)+16}else{h=c[m>>2]|0;d=j-h|0;l=d>>4;j=l+1|0;if((d|0)<-16)Pa();h=k-h|0;if(h>>4>>>0<1073741823){h=h>>3;h=h>>>0<j>>>0?j:h}else h=2147483647;Qa(ya,h,l,f+28|0);f=ya+8|0;d=c[f>>2]|0;c[d+12>>2]=c[B+12>>2];c[d>>2]=c[B>>2];e=B+4|0;c[d+4>>2]=c[e>>2];xa=B+8|0;c[d+8>>2]=c[xa>>2];c[xa>>2]=0;c[e>>2]=0;c[B>>2]=0;c[f>>2]=d+16;Ra(m,ya);Sa(ya)}Ha(B);break a}case 77:{if(((h<<24>>24==77?(wa=d+1|0,k=Na(wa,e,f)|0,(k|0)!=(wa|0)):0)?(ka=Na(k,e,f)|0,(ka|0)!=(k|0)):0)?(_=f+4|0,l=c[_>>2]|0,((l-(c[f>>2]|0)|0)/24|0)>>>0>=2):0){db(ya,l+-24|0);g=c[_>>2]|0;h=g+-24|0;j=g;while(1){if((j|0)==(h|0))break;e=j+-24|0;c[_>>2]=e;Ia(e);j=c[_>>2]|0}db(xa,g+-48|0);r=ya+12|0;j=c[_>>2]|0;q=j+-24|0;h:do if((a[((a[r>>0]&1)==0?r+1|0:c[ya+20>>2]|0)>>0]|0)==40){g=Ya(ya,797)|0;c[fa>>2]=c[g>>2];c[fa+4>>2]=c[g+4>>2];c[fa+8>>2]=c[g+8>>2];h=0;while(1){if((h|0)==3)break;c[g+(h<<2)>>2]=0;h=h+1|0}Cb(pa,xa);g=a[pa>>0]|0;h=(g&1)==0;g=Za(fa,h?pa+1|0:c[pa+8>>2]|0,h?(g&255)>>>1:c[pa+4>>2]|0)|0;c[ca>>2]=c[g>>2];c[ca+4>>2]=c[g+4>>2];c[ca+8>>2]=c[g+8>>2];h=0;while(1){if((h|0)==3)break;c[g+(h<<2)>>2]=0;h=h+1|0}g=Ya(ca,2050)|0;c[la>>2]=c[g>>2];c[la+4>>2]=c[g+4>>2];c[la+8>>2]=c[g+8>>2];h=0;while(1){if((h|0)==3)break;c[g+(h<<2)>>2]=0;h=h+1|0}do if(a[q>>0]&1){p=j+-16|0;a[c[p>>2]>>0]=0;m=j+-20|0;c[m>>2]=0;g=a[q>>0]|0;if(!(g&1))l=10;else{l=c[q>>2]|0;g=l&255;l=(l&-2)+-1|0}if(!(g&1)){h=(g&255)>>>1;if((g&255)<22){o=1;k=10;n=h}else{o=1;k=(h+16&240)+-1|0;n=h}}else{o=0;k=10;n=0}if((k|0)!=(l|0)){if((k|0)==10){j=q+1|0;h=c[p>>2]|0;if(o){Fc(j|0,h|0,((g&255)>>>1)+1|0)|0;wc(h)}else{a[j>>0]=a[h>>0]|0;wc(h)}a[q>>0]=n<<1;break}h=k+1|0;j=vc(h)|0;if(!(k>>>0<=l>>>0&(j|0)==0)){if(o)Fc(j|0,q+1|0,((g&255)>>>1)+1|0)|0;else{e=c[p>>2]|0;a[j>>0]=a[e>>0]|0;wc(e)}c[q>>2]=h|1;c[m>>2]=n;c[p>>2]=j}}}else{a[q+1>>0]=0;a[q>>0]=0}while(0);c[q>>2]=c[la>>2];c[q+4>>2]=c[la+4>>2];c[q+8>>2]=c[la+8>>2];g=0;while(1){if((g|0)==3)break;c[la+(g<<2)>>2]=0;g=g+1|0}Ja(la);Ja(ca);Ja(pa);Ja(fa);j=c[_>>2]|0;g=Ta(r,0,799)|0;c[sa>>2]=c[g>>2];c[sa+4>>2]=c[g+4>>2];c[sa+8>>2]=c[g+8>>2];h=0;while(1){if((h|0)==3)break;c[g+(h<<2)>>2]=0;h=h+1|0}q=j+-12|0;do if(a[q>>0]&1){p=j+-4|0;a[c[p>>2]>>0]=0;m=j+-8|0;c[m>>2]=0;g=a[q>>0]|0;if(!(g&1))l=10;else{l=c[q>>2]|0;g=l&255;l=(l&-2)+-1|0}if(!(g&1)){h=(g&255)>>>1;if((g&255)<22){o=1;k=10;n=h}else{o=1;k=(h+16&240)+-1|0;n=h}}else{o=0;k=10;n=0}if((k|0)!=(l|0)){if((k|0)==10){j=q+1|0;h=c[p>>2]|0;if(o){Fc(j|0,h|0,((g&255)>>>1)+1|0)|0;wc(h)}else{a[j>>0]=a[h>>0]|0;wc(h)}a[q>>0]=n<<1;break}h=k+1|0;j=vc(h)|0;if(!(k>>>0<=l>>>0&(j|0)==0)){if(o)Fc(j|0,q+1|0,((g&255)>>>1)+1|0)|0;else{e=c[p>>2]|0;a[j>>0]=a[e>>0]|0;wc(e)}c[q>>2]=h|1;c[m>>2]=n;c[p>>2]=j}}}else{a[q+1>>0]=0;a[q>>0]=0}while(0);c[q>>2]=c[sa>>2];c[q+4>>2]=c[sa+4>>2];c[q+8>>2]=c[sa+8>>2];g=0;while(1){if((g|0)==3)break;c[sa+(g<<2)>>2]=0;g=g+1|0}Ja(sa)}else{g=Ya(ya,1882)|0;c[qa>>2]=c[g>>2];c[qa+4>>2]=c[g+4>>2];c[qa+8>>2]=c[g+8>>2];h=0;while(1){if((h|0)==3)break;c[g+(h<<2)>>2]=0;h=h+1|0}Cb(ra,xa);g=a[ra>>0]|0;h=(g&1)==0;g=Za(qa,h?ra+1|0:c[ra+8>>2]|0,h?(g&255)>>>1:c[ra+4>>2]|0)|0;c[oa>>2]=c[g>>2];c[oa+4>>2]=c[g+4>>2];c[oa+8>>2]=c[g+8>>2];h=0;while(1){if((h|0)==3)break;c[g+(h<<2)>>2]=0;h=h+1|0}g=Ya(oa,2050)|0;c[ia>>2]=c[g>>2];c[ia+4>>2]=c[g+4>>2];c[ia+8>>2]=c[g+8>>2];h=0;while(1){if((h|0)==3)break;c[g+(h<<2)>>2]=0;h=h+1|0}do if(a[q>>0]&1){p=j+-16|0;a[c[p>>2]>>0]=0;m=j+-20|0;c[m>>2]=0;g=a[q>>0]|0;if(!(g&1))l=10;else{g=c[q>>2]|0;l=(g&-2)+-1|0;g=g&255}if(!(g&1)){h=(g&255)>>>1;if((g&255)<22){n=h;o=1;k=10}else{n=h;o=1;k=(h+16&240)+-1|0}}else{n=0;o=0;k=10}if((k|0)!=(l|0)){if((k|0)==10){j=q+1|0;h=c[p>>2]|0;if(o){Fc(j|0,h|0,((g&255)>>>1)+1|0)|0;wc(h)}else{a[j>>0]=a[h>>0]|0;wc(h)}a[q>>0]=n<<1;break}h=k+1|0;j=vc(h)|0;if(!(k>>>0<=l>>>0&(j|0)==0)){if(o)Fc(j|0,q+1|0,((g&255)>>>1)+1|0)|0;else{e=c[p>>2]|0;a[j>>0]=a[e>>0]|0;wc(e)}c[q>>2]=h|1;c[m>>2]=n;c[p>>2]=j}}}else{a[q+1>>0]=0;a[q>>0]=0}while(0);c[q>>2]=c[ia>>2];c[q+4>>2]=c[ia+4>>2];c[q+8>>2]=c[ia+8>>2];g=0;while(1){if((g|0)==3)break;c[ia+(g<<2)>>2]=0;g=g+1|0}Ja(ia);Ja(oa);Ja(ra);Ja(qa);g=c[_>>2]|0;q=g+-12|0;do if(a[q>>0]&1){p=g+-4|0;a[c[p>>2]>>0]=0;m=g+-8|0;c[m>>2]=0;g=a[q>>0]|0;if(!(g&1))l=10;else{l=c[q>>2]|0;g=l&255;l=(l&-2)+-1|0}if(!(g&1)){h=(g&255)>>>1;if((g&255)<22){k=10;n=h;o=1}else{k=(h+16&240)+-1|0;n=h;o=1}}else{k=10;n=0;o=0}if((k|0)!=(l|0)){if((k|0)==10){j=q+1|0;h=c[p>>2]|0;if(o){Fc(j|0,h|0,((g&255)>>>1)+1|0)|0;wc(h)}else{a[j>>0]=a[h>>0]|0;wc(h)}a[q>>0]=n<<1;break}h=k+1|0;j=vc(h)|0;if(!(k>>>0<=l>>>0&(j|0)==0)){if(o)Fc(j|0,q+1|0,((g&255)>>>1)+1|0)|0;else{e=c[p>>2]|0;a[j>>0]=a[e>>0]|0;wc(e)}c[q>>2]=h|1;c[m>>2]=n;c[p>>2]=j}}}else{a[q+1>>0]=0;a[q>>0]=0}while(0);c[q>>2]=c[r>>2];c[q+4>>2]=c[r+4>>2];c[q+8>>2]=c[r+8>>2];g=0;while(1){if((g|0)==3)break h;c[r+(g<<2)>>2]=0;g=g+1|0}}while(0);Ia(xa);Ia(ya);g=ka}else g=d;if((g|0)==(d|0)){g=d;break a}h=c[f+4>>2]|0;if((c[f>>2]|0)==(h|0)){g=d;break a}m=f+16|0;c[ma>>2]=c[f+12>>2];Pb(na,h+-24|0,ma);h=f+20|0;j=c[h>>2]|0;d=c[f+24>>2]|0;k=d;if(j>>>0<d>>>0){c[j+12>>2]=c[na+12>>2];c[j>>2]=c[na>>2];ya=na+4|0;c[j+4>>2]=c[ya>>2];f=na+8|0;c[j+8>>2]=c[f>>2];c[f>>2]=0;c[ya>>2]=0;c[na>>2]=0;c[h>>2]=(c[h>>2]|0)+16}else{h=c[m>>2]|0;d=j-h|0;l=d>>4;j=l+1|0;if((d|0)<-16)Pa();h=k-h|0;if(h>>4>>>0<1073741823){h=h>>3;h=h>>>0<j>>>0?j:h}else h=2147483647;Qa(ya,h,l,f+28|0);f=ya+8|0;d=c[f>>2]|0;c[d+12>>2]=c[na+12>>2];c[d>>2]=c[na>>2];e=na+4|0;c[d+4>>2]=c[e>>2];xa=na+8|0;c[d+8>>2]=c[xa>>2];c[xa>>2]=0;c[e>>2]=0;c[na>>2]=0;c[f>>2]=d+16;Ra(m,ya);Sa(ya)}Ha(na);break a}case 79:{v=f+4|0;p=((c[v>>2]|0)-(c[f>>2]|0)|0)/24|0;xa=d+1|0;g=Na(xa,e,f)|0;v=((c[v>>2]|0)-(c[f>>2]|0)|0)/24|0;if((g|0)==(xa|0)){g=d;break a}n=f+16|0;o=c[f+12>>2]|0;w=f+20|0;h=c[w>>2]|0;xa=c[f+24>>2]|0;j=xa;if(h>>>0<xa>>>0){c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=o;c[w>>2]=(c[w>>2]|0)+16}else{k=c[n>>2]|0;xa=h-k|0;m=xa>>4;l=m+1|0;if((xa|0)<-16)Pa();h=j-k|0;if(h>>4>>>0<1073741823){h=h>>3;h=h>>>0<l>>>0?l:h}else h=2147483647;Qa(ya,h,m,f+28|0);xa=ya+8|0;ta=c[xa>>2]|0;c[ta>>2]=0;c[ta+4>>2]=0;c[ta+8>>2]=0;c[ta+12>>2]=o;c[xa>>2]=ta+16;Ra(n,ya);Sa(ya)}r=T+4|0;s=T+8|0;t=T+1|0;u=ya+8|0;while(1){if(p>>>0>=v>>>0)break a;xa=c[f>>2]|0;ta=xa+(p*24|0)+12|0;sa=a[ta>>0]|0;j=(sa&1)==0;sa=j?(sa&255)>>>1:c[xa+(p*24|0)+16>>2]|0;$a(T,j?ta+1|0:c[xa+(p*24|0)+20>>2]|0,sa>>>0<2?sa:2);sa=a[T>>0]|0;xa=(sa&1)==0;sa=xa?(sa&255)>>>1:c[r>>2]|0;ta=sa>>>0>2;xa=ac(xa?t:c[s>>2]|0,790,ta?2:sa)|0;Ja(T);j=c[f>>2]|0;if(((xa|0)==0?(sa>>>0<2?-1:ta&1):xa)|0){h=b[j+(p*24|0)+12>>1]|0;if(!(h&1))h=(h&65535)>>>8&255;else h=a[c[j+(p*24|0)+20>>2]>>0]|0;if(h<<24>>24==40){Ya(j+(p*24|0)|0,797)|0;Ta((c[f>>2]|0)+(p*24|0)+12|0,0,799)|0}}else{Ya(j+(p*24|0)|0,849)|0;Ta((c[f>>2]|0)+(p*24|0)+12|0,0,799)|0}Ya((c[f>>2]|0)+(p*24|0)|0,841)|0;m=c[w>>2]|0;n=m+-16|0;o=c[f>>2]|0;q=o+(p*24|0)|0;h=m+-12|0;j=c[h>>2]|0;xa=c[m+-8>>2]|0;k=xa;if((j|0)==(xa|0)){h=c[n>>2]|0;xa=j-h|0;l=(xa|0)/24|0;j=l+1|0;if((xa|0)<-24)break;h=(k-h|0)/24|0;if(h>>>0<1073741823){h=h<<1;h=h>>>0<j>>>0?j:h}else h=2147483647;ab(ya,h,l,m+-4|0);xa=c[u>>2]|0;_a(xa,q);_a(xa+12|0,o+(p*24|0)+12|0);c[u>>2]=xa+24;cb(n,ya);bb(ya)}else{_a(j,q);_a(j+12|0,o+(p*24|0)+12|0);c[h>>2]=(c[h>>2]|0)+24}p=p+1|0}Pa();break}case 80:{B=f+4|0;p=((c[B>>2]|0)-(c[f>>2]|0)|0)/24|0;A=d+1|0;g=Na(A,e,f)|0;B=((c[B>>2]|0)-(c[f>>2]|0)|0)/24|0;if((g|0)==(A|0)){g=d;break a}n=f+16|0;o=c[f+12>>2]|0;C=f+20|0;h=c[C>>2]|0;xa=c[f+24>>2]|0;j=xa;if(h>>>0<xa>>>0){c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=o;c[C>>2]=(c[C>>2]|0)+16}else{k=c[n>>2]|0;xa=h-k|0;m=xa>>4;l=m+1|0;if((xa|0)<-16)Pa();h=j-k|0;if(h>>4>>>0<1073741823){h=h>>3;h=h>>>0<l>>>0?l:h}else h=2147483647;Qa(ya,h,m,f+28|0);xa=ya+8|0;sa=c[xa>>2]|0;c[sa>>2]=0;c[sa+4>>2]=0;c[sa+8>>2]=0;c[sa+12>>2]=o;c[xa>>2]=sa+16;Ra(n,ya);Sa(ya)}t=da+4|0;u=da+8|0;v=da+1|0;w=ea+4|0;x=ea+8|0;y=ea+1|0;z=ya+8|0;while(1){if(p>>>0>=B>>>0)break a;xa=c[f>>2]|0;sa=xa+(p*24|0)+12|0;ra=a[sa>>0]|0;j=(ra&1)==0;ra=j?(ra&255)>>>1:c[xa+(p*24|0)+16>>2]|0;$a(da,j?sa+1|0:c[xa+(p*24|0)+20>>2]|0,ra>>>0<2?ra:2);ra=a[da>>0]|0;xa=(ra&1)==0;ra=xa?(ra&255)>>>1:c[t>>2]|0;sa=ra>>>0>2;xa=ac(xa?v:c[u>>2]|0,790,sa?2:ra)|0;Ja(da);j=c[f>>2]|0;if(((xa|0)==0?(ra>>>0<2?-1:sa&1):xa)|0){h=b[j+(p*24|0)+12>>1]|0;if(!(h&1))h=(h&65535)>>>8&255;else h=a[c[j+(p*24|0)+20>>2]>>0]|0;if(h<<24>>24==40){Ya(j+(p*24|0)|0,797)|0;Ta((c[f>>2]|0)+(p*24|0)+12|0,0,799)|0}}else{Ya(j+(p*24|0)|0,849)|0;Ta((c[f>>2]|0)+(p*24|0)+12|0,0,799)|0}j=c[f>>2]|0;h=j+(p*24|0)|0;do if((a[A>>0]|0)==85){ra=a[h>>0]|0;xa=(ra&1)==0;ra=xa?(ra&255)>>>1:c[j+(p*24|0)+4>>2]|0;$a(ea,xa?h+1|0:c[j+(p*24|0)+8>>2]|0,ra>>>0<12?ra:12);ra=a[ea>>0]|0;xa=(ra&1)==0;ra=xa?(ra&255)>>>1:c[w>>2]|0;sa=ra>>>0>12;xa=ac(xa?y:c[x>>2]|0,2054,sa?12:ra)|0;Ja(ea);s=c[f>>2]|0;h=s+(p*24|0)|0;if(!(((xa|0)==0?(ra>>>0<12?-1:sa&1):xa)|0)){j=a[h>>0]|0;if(!(j&1)){o=(j&255)>>>1;r=o;o=o>>>0<11?o:11;k=10}else{o=c[s+(p*24|0)+4>>2]|0;j=c[h>>2]|0;r=o;o=o>>>0<11?o:11;k=(j&-2)+-1|0;j=j&255}if((o-r+k|0)>>>0<2){Wa(h,k,2-o+r-k|0,r,0,o,2,2067);break}if(!(j&1))q=h+1|0;else q=c[s+(p*24|0)+8>>2]|0;do if((o|0)!=2){n=r-o|0;if((r|0)==(o|0)){k=o;m=0;l=2067;j=2;ta=402}else{if(o>>>0>2){a[q>>0]=105;a[q+1>>0]=100;Hc(q+2|0,q+o|0,n|0)|0;k=o;j=2;break}do if(q>>>0<2067>>>0&(q+r|0)>>>0>2067>>>0)if((q+o|0)>>>0>2067>>>0){Fc(q|0,2067,o|0)|0;m=o;l=2069;k=0;j=2-o|0;break}else{m=0;l=2067+(2-o)|0;k=o;j=2;break}else{m=0;l=2067;k=o;j=2}while(0);ta=q+m|0;Hc(ta+j|0,ta+k|0,n|0)|0;ta=402}}else{k=2;m=0;l=2067;j=2;ta=402}while(0);if((ta|0)==402){ta=0;Hc(q+m|0,l|0,j|0)|0}j=j-k+r|0;if(!(a[h>>0]&1))a[h>>0]=j<<1;else c[s+(p*24|0)+4>>2]=j;a[q+j>>0]=0}else ta=385}else ta=385;while(0);if((ta|0)==385){ta=0;Ya(h,4262)|0}m=c[C>>2]|0;n=m+-16|0;o=c[f>>2]|0;q=o+(p*24|0)|0;h=m+-12|0;j=c[h>>2]|0;xa=c[m+-8>>2]|0;k=xa;if((j|0)==(xa|0)){h=c[n>>2]|0;xa=j-h|0;l=(xa|0)/24|0;j=l+1|0;if((xa|0)<-24)break;h=(k-h|0)/24|0;if(h>>>0<1073741823){h=h<<1;h=h>>>0<j>>>0?j:h}else h=2147483647;ab(ya,h,l,m+-4|0);xa=c[z>>2]|0;_a(xa,q);_a(xa+12|0,o+(p*24|0)+12|0);c[z>>2]=xa+24;cb(n,ya);bb(ya)}else{_a(j,q);_a(j+12|0,o+(p*24|0)+12|0);c[h>>2]=(c[h>>2]|0)+24}p=p+1|0}Pa();break}case 82:{v=f+4|0;p=((c[v>>2]|0)-(c[f>>2]|0)|0)/24|0;xa=d+1|0;g=Na(xa,e,f)|0;v=((c[v>>2]|0)-(c[f>>2]|0)|0)/24|0;if((g|0)==(xa|0)){g=d;break a}n=f+16|0;o=c[f+12>>2]|0;w=f+20|0;h=c[w>>2]|0;xa=c[f+24>>2]|0;j=xa;if(h>>>0<xa>>>0){c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=o;c[w>>2]=(c[w>>2]|0)+16}else{k=c[n>>2]|0;xa=h-k|0;m=xa>>4;l=m+1|0;if((xa|0)<-16)Pa();h=j-k|0;if(h>>4>>>0<1073741823){h=h>>3;h=h>>>0<l>>>0?l:h}else h=2147483647;Qa(ya,h,m,f+28|0);xa=ya+8|0;ta=c[xa>>2]|0;c[ta>>2]=0;c[ta+4>>2]=0;c[ta+8>>2]=0;c[ta+12>>2]=o;c[xa>>2]=ta+16;Ra(n,ya);Sa(ya)}r=U+4|0;s=U+8|0;t=U+1|0;u=ya+8|0;while(1){if(p>>>0>=v>>>0)break a;xa=c[f>>2]|0;ta=xa+(p*24|0)+12|0;sa=a[ta>>0]|0;j=(sa&1)==0;sa=j?(sa&255)>>>1:c[xa+(p*24|0)+16>>2]|0;$a(U,j?ta+1|0:c[xa+(p*24|0)+20>>2]|0,sa>>>0<2?sa:2);sa=a[U>>0]|0;xa=(sa&1)==0;sa=xa?(sa&255)>>>1:c[r>>2]|0;ta=sa>>>0>2;xa=ac(xa?t:c[s>>2]|0,790,ta?2:sa)|0;Ja(U);j=c[f>>2]|0;if(((xa|0)==0?(sa>>>0<2?-1:ta&1):xa)|0){h=b[j+(p*24|0)+12>>1]|0;if(!(h&1))h=(h&65535)>>>8&255;else h=a[c[j+(p*24|0)+20>>2]>>0]|0;if(h<<24>>24==40){Ya(j+(p*24|0)|0,797)|0;Ta((c[f>>2]|0)+(p*24|0)+12|0,0,799)|0}}else{Ya(j+(p*24|0)|0,849)|0;Ta((c[f>>2]|0)+(p*24|0)+12|0,0,799)|0}Ya((c[f>>2]|0)+(p*24|0)|0,852)|0;m=c[w>>2]|0;n=m+-16|0;o=c[f>>2]|0;q=o+(p*24|0)|0;h=m+-12|0;j=c[h>>2]|0;xa=c[m+-8>>2]|0;k=xa;if((j|0)==(xa|0)){h=c[n>>2]|0;xa=j-h|0;l=(xa|0)/24|0;j=l+1|0;if((xa|0)<-24)break;h=(k-h|0)/24|0;if(h>>>0<1073741823){h=h<<1;h=h>>>0<j>>>0?j:h}else h=2147483647;ab(ya,h,l,m+-4|0);xa=c[u>>2]|0;_a(xa,q);_a(xa+12|0,o+(p*24|0)+12|0);c[u>>2]=xa+24;cb(n,ya);bb(ya)}else{_a(j,q);_a(j+12|0,o+(p*24|0)+12|0);c[h>>2]=(c[h>>2]|0)+24}p=p+1|0}Pa();break}case 84:{v=f+4|0;s=((c[v>>2]|0)-(c[f>>2]|0)|0)/24|0;g=Eb(d,e,f)|0;t=((c[v>>2]|0)-(c[f>>2]|0)|0)/24|0;if((g|0)==(d|0)){g=d;break a}y=f+16|0;u=f+12|0;n=c[u>>2]|0;x=f+20|0;h=c[x>>2]|0;w=f+24|0;d=c[w>>2]|0;j=d;if(h>>>0<d>>>0){c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=n;c[x>>2]=(c[x>>2]|0)+16}else{k=c[y>>2]|0;d=h-k|0;m=d>>4;l=m+1|0;if((d|0)<-16)Pa();h=j-k|0;if(h>>4>>>0<1073741823){h=h>>3;h=h>>>0<l>>>0?l:h}else h=2147483647;Qa(ya,h,m,f+28|0);d=ya+8|0;wa=c[d>>2]|0;c[wa>>2]=0;c[wa+4>>2]=0;c[wa+8>>2]=0;c[wa+12>>2]=n;c[d>>2]=wa+16;Ra(y,ya);Sa(ya)}m=ya+8|0;r=s;while(1){if(r>>>0>=t>>>0)break;n=c[x>>2]|0;o=n+-16|0;p=c[f>>2]|0;q=p+(r*24|0)|0;h=n+-12|0;j=c[h>>2]|0;d=c[n+-8>>2]|0;k=d;if((j|0)==(d|0)){h=c[o>>2]|0;d=j-h|0;l=(d|0)/24|0;j=l+1|0;if((d|0)<-24){ta=455;break}h=(k-h|0)/24|0;if(h>>>0<1073741823){h=h<<1;h=h>>>0<j>>>0?j:h}else h=2147483647;ab(ya,h,l,n+-4|0);d=c[m>>2]|0;_a(d,q);_a(d+12|0,p+(r*24|0)+12|0);c[m>>2]=d+24;cb(o,ya);bb(ya)}else{_a(j,q);_a(j+12|0,p+(r*24|0)+12|0);c[h>>2]=(c[h>>2]|0)+24}r=r+1|0}if((ta|0)==455)Pa();if(!((t|0)==(s+1|0)&(a[f+63>>0]|0)!=0))break a;m=Mb(g,e,f)|0;if((m|0)==(g|0))break a;Cb(xa,(c[v>>2]|0)+-24|0);g=c[v>>2]|0;h=g+-24|0;j=g;while(1){if((j|0)==(h|0))break;d=j+-24|0;c[v>>2]=d;Ia(d);j=c[v>>2]|0}d=a[xa>>0]|0;k=(d&1)==0;Za(g+-48|0,k?xa+1|0:c[xa+8>>2]|0,k?(d&255)>>>1:c[xa+4>>2]|0)|0;g=(c[v>>2]|0)+-24|0;c[V>>2]=c[u>>2];Pb(X,g,V);g=c[x>>2]|0;d=c[w>>2]|0;k=d;if(g>>>0<d>>>0){c[g+12>>2]=c[X+12>>2];c[g>>2]=c[X>>2];ya=X+4|0;c[g+4>>2]=c[ya>>2];f=X+8|0;c[g+8>>2]=c[f>>2];c[f>>2]=0;c[ya>>2]=0;c[X>>2]=0;c[x>>2]=(c[x>>2]|0)+16}else{h=c[y>>2]|0;d=g-h|0;l=d>>4;j=l+1|0;if((d|0)<-16)Pa();g=k-h|0;if(g>>4>>>0<1073741823){g=g>>3;g=g>>>0<j>>>0?j:g}else g=2147483647;Qa(ya,g,l,f+28|0);f=ya+8|0;d=c[f>>2]|0;c[d+12>>2]=c[X+12>>2];c[d>>2]=c[X>>2];e=X+4|0;c[d+4>>2]=c[e>>2];wa=X+8|0;c[d+8>>2]=c[wa>>2];c[wa>>2]=0;c[e>>2]=0;c[X>>2]=0;c[f>>2]=d+16;Ra(y,ya);Sa(ya)}Ha(X);Ja(xa);g=m;break a}case 85:{g=d+1|0;if((g|0)==(e|0)){g=d;break a}h=qb(g,e,f)|0;if((h|0)==(g|0)){g=d;break a}g=Na(h,e,f)|0;if((g|0)==(h|0)){g=d;break a}n=f+4|0;h=c[n>>2]|0;if(((h-(c[f>>2]|0)|0)/24|0)>>>0<2){g=d;break a}Cb(xa,h+-24|0);h=c[n>>2]|0;j=h+-24|0;k=h;while(1){if((k|0)==(j|0))break;d=k+-24|0;c[n>>2]=d;Ia(d);k=c[n>>2]|0}d=h+-48|0;wa=a[d>>0]|0;e=(wa&1)==0;wa=e?(wa&255)>>>1:c[h+-44>>2]|0;$a(t,e?d+1|0:c[h+-40>>2]|0,wa>>>0<9?wa:9);wa=a[t>>0]|0;d=(wa&1)==0;wa=d?(wa&255)>>>1:c[t+4>>2]|0;e=wa>>>0>9;d=ac(d?t+1|0:c[t+8>>2]|0,2070,e?9:wa)|0;Ja(t);if(!(((d|0)==0?(wa>>>0<9?-1:e&1):d)|0)){Cb(la,(c[n>>2]|0)+-24|0);j=c[n>>2]|0;h=j+-24|0;while(1){if((j|0)==(h|0))break;d=j+-24|0;c[n>>2]=d;Ia(d);j=c[n>>2]|0}d=a[la>>0]|0;e=(d&1)==0;h=la+8|0;j=la+1|0;wa=e?j:c[h>>2]|0;k=la+4|0;d=qb(wa+9|0,wa+(e?(d&255)>>>1:c[k>>2]|0)|0,f)|0;if((d|0)==(((a[la>>0]&1)==0?j:c[h>>2]|0)+9|0)){Ib(N,xa,1882);d=a[la>>0]|0;e=(d&1)==0;h=Za(N,e?j:c[h>>2]|0,e?(d&255)>>>1:c[k>>2]|0)|0;c[M>>2]=c[h>>2];c[M+4>>2]=c[h+4>>2];c[M+8>>2]=c[h+8>>2];j=0;while(1){if((j|0)==3)break;c[h+(j<<2)>>2]=0;j=j+1|0}rb(L,M);h=c[n>>2]|0;d=c[f+8>>2]|0;j=d;if(h>>>0<d>>>0){db(h,L);c[n>>2]=(c[n>>2]|0)+24}else{k=c[f>>2]|0;d=h-k|0;m=(d|0)/24|0;l=m+1|0;if((d|0)<-24)Pa();h=(j-k|0)/24|0;if(h>>>0<1073741823){h=h<<1;h=h>>>0<l>>>0?l:h}else h=2147483647;ab(ya,h,m,f+12|0);d=ya+8|0;e=c[d>>2]|0;db(e,L);c[d>>2]=e+24;cb(f,ya);bb(ya)}Ia(L);Ja(M);Ja(N)}else{k=(c[n>>2]|0)+-24|0;Ib(H,xa,1427);Cb(I,(c[n>>2]|0)+-24|0);h=a[I>>0]|0;j=(h&1)==0;h=Za(H,j?I+1|0:c[I+8>>2]|0,j?(h&255)>>>1:c[I+4>>2]|0)|0;c[G>>2]=c[h>>2];c[G+4>>2]=c[h+4>>2];c[G+8>>2]=c[h+8>>2];j=0;while(1){if((j|0)==3)break;c[h+(j<<2)>>2]=0;j=j+1|0}h=Ya(G,844)|0;c[F>>2]=c[h>>2];c[F+4>>2]=c[h+4>>2];c[F+8>>2]=c[h+8>>2];j=0;while(1){if((j|0)==3)break;c[h+(j<<2)>>2]=0;j=j+1|0}rb(E,F);Db(k,E);Ia(E);Ja(F);Ja(G);Ja(I);Ja(H)}Ja(la)}else{h=(c[n>>2]|0)+-24|0;Ib(x,xa,1882);Cb(y,(c[n>>2]|0)+-24|0);j=a[y>>0]|0;k=(j&1)==0;j=Za(x,k?y+1|0:c[y+8>>2]|0,k?(j&255)>>>1:c[y+4>>2]|0)|0;c[w>>2]=c[j>>2];c[w+4>>2]=c[j+4>>2];c[w+8>>2]=c[j+8>>2];k=0;while(1){if((k|0)==3)break;c[j+(k<<2)>>2]=0;k=k+1|0}rb(v,w);Db(h,v);Ia(v);Ja(w);Ja(y);Ja(x)}m=(c[n>>2]|0)+-24|0;c[R>>2]=c[f+12>>2];Pb(W,m,R);m=f+16|0;h=f+20|0;j=c[h>>2]|0;d=c[f+24>>2]|0;k=d;if(j>>>0<d>>>0){c[j+12>>2]=c[W+12>>2];c[j>>2]=c[W>>2];ya=W+4|0;c[j+4>>2]=c[ya>>2];f=W+8|0;c[j+8>>2]=c[f>>2];c[f>>2]=0;c[ya>>2]=0;c[W>>2]=0;c[h>>2]=(c[h>>2]|0)+16}else{h=c[m>>2]|0;d=j-h|0;l=d>>4;j=l+1|0;if((d|0)<-16)Pa();h=k-h|0;if(h>>4>>>0<1073741823){h=h>>3;h=h>>>0<j>>>0?j:h}else h=2147483647;Qa(ya,h,l,f+28|0);f=ya+8|0;d=c[f>>2]|0;c[d+12>>2]=c[W+12>>2];c[d>>2]=c[W>>2];e=W+4|0;c[d+4>>2]=c[e>>2];wa=W+8|0;c[d+8>>2]=c[wa>>2];c[wa>>2]=0;c[e>>2]=0;c[W>>2]=0;c[f>>2]=d+16;Ra(m,ya);Sa(ya)}Ha(W);Ja(xa);break a}case 83:{wa=d+1|0;if((wa|0)!=(e|0)?(a[wa>>0]|0)==116:0){g=Wb(d,e,f)|0;if((g|0)==(d|0)){g=d;break a}h=c[f+4>>2]|0;if((c[f>>2]|0)==(h|0)){g=d;break a}m=f+16|0;c[n>>2]=c[f+12>>2];Pb(z,h+-24|0,n);h=f+20|0;j=c[h>>2]|0;d=c[f+24>>2]|0;k=d;if(j>>>0<d>>>0){c[j+12>>2]=c[z+12>>2];c[j>>2]=c[z>>2];ya=z+4|0;c[j+4>>2]=c[ya>>2];f=z+8|0;c[j+8>>2]=c[f>>2];c[f>>2]=0;c[ya>>2]=0;c[z>>2]=0;c[h>>2]=(c[h>>2]|0)+16}else{h=c[m>>2]|0;d=j-h|0;l=d>>4;j=l+1|0;if((d|0)<-16)Pa();h=k-h|0;if(h>>4>>>0<1073741823){h=h>>3;h=h>>>0<j>>>0?j:h}else h=2147483647;Qa(ya,h,l,f+28|0);f=ya+8|0;d=c[f>>2]|0;c[d+12>>2]=c[z+12>>2];c[d>>2]=c[z>>2];e=z+4|0;c[d+4>>2]=c[e>>2];xa=z+8|0;c[d+8>>2]=c[xa>>2];c[xa>>2]=0;c[e>>2]=0;c[z>>2]=0;c[f>>2]=d+16;Ra(m,ya);Sa(ya)}Ha(z);break a}g=Rb(d,e,f)|0;if((g|0)==(d|0)){g=d;break a}m=Mb(g,e,f)|0;if((m|0)==(g|0))break a;k=f+4|0;h=c[k>>2]|0;if(((h-(c[f>>2]|0)|0)/24|0)>>>0<2)break a;Cb(xa,h+-24|0);g=c[k>>2]|0;h=g+-24|0;j=g;while(1){if((j|0)==(h|0))break;d=j+-24|0;c[k>>2]=d;Ia(d);j=c[k>>2]|0}l=a[xa>>0]|0;h=(l&1)==0;Za(g+-48|0,h?xa+1|0:c[xa+8>>2]|0,h?(l&255)>>>1:c[xa+4>>2]|0)|0;l=(c[k>>2]|0)+-24|0;c[s>>2]=c[f+12>>2];Pb(D,l,s);l=f+16|0;g=f+20|0;h=c[g>>2]|0;d=c[f+24>>2]|0;j=d;if(h>>>0<d>>>0){c[h+12>>2]=c[D+12>>2];c[h>>2]=c[D>>2];ya=D+4|0;c[h+4>>2]=c[ya>>2];f=D+8|0;c[h+8>>2]=c[f>>2];c[f>>2]=0;c[ya>>2]=0;c[D>>2]=0;c[g>>2]=(c[g>>2]|0)+16}else{g=c[l>>2]|0;d=h-g|0;k=d>>4;h=k+1|0;if((d|0)<-16)Pa();g=j-g|0;if(g>>4>>>0<1073741823){g=g>>3;g=g>>>0<h>>>0?h:g}else g=2147483647;Qa(ya,g,k,f+28|0);f=ya+8|0;d=c[f>>2]|0;c[d+12>>2]=c[D+12>>2];c[d>>2]=c[D>>2];e=D+4|0;c[d+4>>2]=c[e>>2];wa=D+8|0;c[d+8>>2]=c[wa>>2];c[wa>>2]=0;c[e>>2]=0;c[D>>2]=0;c[f>>2]=d+16;Ra(l,ya);Sa(ya)}Ha(D);Ja(xa);g=m;break a}case 68:{g=d+1|0;if((g|0)!=(e|0)){g=a[g>>0]|0;switch(g<<24>>24|0){case 112:{s=f+4|0;p=((c[s>>2]|0)-(c[f>>2]|0)|0)/24|0;xa=d+2|0;g=Na(xa,e,f)|0;s=((c[s>>2]|0)-(c[f>>2]|0)|0)/24|0;if((g|0)==(xa|0))break d;n=f+16|0;o=c[f+12>>2]|0;t=f+20|0;h=c[t>>2]|0;xa=c[f+24>>2]|0;j=xa;if(h>>>0<xa>>>0){c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=o;c[t>>2]=(c[t>>2]|0)+16}else{k=c[n>>2]|0;xa=h-k|0;m=xa>>4;l=m+1|0;if((xa|0)<-16)Pa();h=j-k|0;if(h>>4>>>0<1073741823){h=h>>3;h=h>>>0<l>>>0?l:h}else h=2147483647;Qa(ya,h,m,f+28|0);xa=ya+8|0;ta=c[xa>>2]|0;c[ta>>2]=0;c[ta+4>>2]=0;c[ta+8>>2]=0;c[ta+12>>2]=o;c[xa>>2]=ta+16;Ra(n,ya);Sa(ya)}r=ya+8|0;while(1){if(p>>>0>=s>>>0)break a;m=c[t>>2]|0;n=m+-16|0;o=c[f>>2]|0;q=o+(p*24|0)|0;h=m+-12|0;j=c[h>>2]|0;xa=c[m+-8>>2]|0;k=xa;if((j|0)==(xa|0)){h=c[n>>2]|0;xa=j-h|0;l=(xa|0)/24|0;j=l+1|0;if((xa|0)<-24)break;h=(k-h|0)/24|0;if(h>>>0<1073741823){h=h<<1;h=h>>>0<j>>>0?j:h}else h=2147483647;ab(ya,h,l,m+-4|0);xa=c[r>>2]|0;_a(xa,q);_a(xa+12|0,o+(p*24|0)+12|0);c[r>>2]=xa+24;cb(n,ya);bb(ya)}else{_a(j,q);_a(j+12|0,o+(p*24|0)+12|0);c[h>>2]=(c[h>>2]|0)+24}p=p+1|0}Pa();break}case 84:case 116:{g=Qb(d,e,f)|0;if((g|0)==(d|0))break d;h=c[f+4>>2]|0;if((c[f>>2]|0)==(h|0)){g=d;break a}m=f+16|0;c[r>>2]=c[f+12>>2];Pb(C,h+-24|0,r);h=f+20|0;j=c[h>>2]|0;d=c[f+24>>2]|0;k=d;if(j>>>0<d>>>0){c[j+12>>2]=c[C+12>>2];c[j>>2]=c[C>>2];ya=C+4|0;c[j+4>>2]=c[ya>>2];f=C+8|0;c[j+8>>2]=c[f>>2];c[f>>2]=0;c[ya>>2]=0;c[C>>2]=0;c[h>>2]=(c[h>>2]|0)+16}else{h=c[m>>2]|0;d=j-h|0;l=d>>4;j=l+1|0;if((d|0)<-16)Pa();h=k-h|0;if(h>>4>>>0<1073741823){h=h>>3;h=h>>>0<j>>>0?j:h}else h=2147483647;Qa(ya,h,l,f+28|0);f=ya+8|0;d=c[f>>2]|0;c[d+12>>2]=c[C+12>>2];c[d>>2]=c[C>>2];e=C+4|0;c[d+4>>2]=c[e>>2];xa=C+8|0;c[d+8>>2]=c[xa>>2];c[xa>>2]=0;c[e>>2]=0;c[C>>2]=0;c[f>>2]=d+16;Ra(m,ya);Sa(ya)}Ha(C);break a}case 118:{i:do if((e-d|0)>3&h<<24>>24==68&g<<24>>24==118){l=d+2|0;h=a[l>>0]|0;if((h+-49&255)<9){g=tb(l,e)|0;if((g|0)==(e|0)){g=d;break}if((a[g>>0]|0)!=95){g=d;break}j=g-l|0;h=g+1|0;if((h|0)==(e|0)){g=d;break}if((a[h>>0]|0)!=112){g=Na(h,e,f)|0;if((g|0)==(h|0)){g=d;break}h=c[f+4>>2]|0;if((c[f>>2]|0)==(h|0)){g=d;break}k=h+-24|0;$a(ca,l,j);h=Ta(ca,0,2101)|0;c[la>>2]=c[h>>2];c[la+4>>2]=c[h+4>>2];c[la+8>>2]=c[h+8>>2];j=0;while(1){if((j|0)==3)break;c[h+(j<<2)>>2]=0;j=j+1|0}h=Ya(la,4264)|0;c[xa>>2]=c[h>>2];c[xa+4>>2]=c[h+4>>2];c[xa+8>>2]=c[h+8>>2];j=0;while(1){if((j|0)==3)break;c[h+(j<<2)>>2]=0;j=j+1|0}ta=a[xa>>0]|0;sa=(ta&1)==0;Za(k,sa?xa+1|0:c[xa+8>>2]|0,sa?(ta&255)>>>1:c[xa+4>>2]|0)|0;Ja(xa);Ja(la);Ja(ca);break}g=g+2|0;$a(ia,l,j);h=Ta(ia,0,2110)|0;c[sa>>2]=c[h>>2];c[sa+4>>2]=c[h+4>>2];c[sa+8>>2]=c[h+8>>2];j=0;while(1){if((j|0)==3)break;c[h+(j<<2)>>2]=0;j=j+1|0}h=Ya(sa,4264)|0;c[pa>>2]=c[h>>2];c[pa+4>>2]=c[h+4>>2];c[pa+8>>2]=c[h+8>>2];j=0;while(1){if((j|0)==3)break;c[h+(j<<2)>>2]=0;j=j+1|0}rb(fa,pa);h=f+4|0;j=c[h>>2]|0;xa=c[f+8>>2]|0;k=xa;if(j>>>0<xa>>>0){db(j,fa);c[h>>2]=(c[h>>2]|0)+24}else{h=c[f>>2]|0;xa=j-h|0;l=(xa|0)/24|0;j=l+1|0;if((xa|0)<-24)Pa();h=(k-h|0)/24|0;if(h>>>0<1073741823){h=h<<1;h=h>>>0<j>>>0?j:h}else h=2147483647;ab(ya,h,l,f+12|0);xa=ya+8|0;ta=c[xa>>2]|0;db(ta,fa);c[xa>>2]=ta+24;cb(f,ya);bb(ya)}Ia(fa);Ja(pa);Ja(sa);Ja(ia);break}g=0;while(1){if((g|0)==3)break;c[ya+(g<<2)>>2]=0;g=g+1|0}j:do if(h<<24>>24!=95?(J=ub(l,e,f)|0,(J|0)!=(l|0)):0){o=f+4|0;g=c[o>>2]|0;if((c[f>>2]|0)!=(g|0)){Cb(oa,g+-24|0);k:do if(!(a[ya>>0]&1)){a[ya+1>>0]=0;a[ya>>0]=0}else{l=ya+8|0;h=c[l>>2]|0;a[h>>0]=0;m=ya+4|0;c[m>>2]=0;g=c[ya>>2]|0;n=(g&-2)+-1|0;j=g&255;do if(!(j&1)){g=g>>>1&127;if((j&255)<22){Fc(ya+1|0,h|0,g+1|0)|0;wc(h);break}h=g+16&240;k=h+-1|0;if((k|0)==(n|0))break k;j=vc(h)|0;if(k>>>0<=n>>>0&(j|0)==0)break k;Fc(j|0,ya+1|0,g+1|0)|0;c[ya>>2]=h|1;c[m>>2]=g;c[l>>2]=j;break k}else{a[ya+1>>0]=0;wc(h);g=0}while(0);a[ya>>0]=g<<1}while(0);c[ya>>2]=c[oa>>2];c[ya+4>>2]=c[oa+4>>2];c[ya+8>>2]=c[oa+8>>2];g=0;while(1){if((g|0)==3)break;c[oa+(g<<2)>>2]=0;g=g+1|0}Ja(oa);h=c[o>>2]|0;g=h+-24|0;while(1){if((h|0)==(g|0)){g=J;ta=622;break j}xa=h+-24|0;c[o>>2]=xa;Ia(xa);h=c[o>>2]|0}}}else{g=l;ta=622}while(0);do if((ta|0)==622){if((((g|0)!=(e|0)?(a[g>>0]|0)==95:0)?(K=g+1|0,(K|0)!=(e|0)):0)?(Q=Na(K,e,f)|0,(Q|0)!=(K|0)):0){g=c[f+4>>2]|0;if((c[f>>2]|0)==(g|0))break;g=g+-24|0;xb(ra,2101,ya);h=Ya(ra,4264)|0;c[qa>>2]=c[h>>2];c[qa+4>>2]=c[h+4>>2];c[qa+8>>2]=c[h+8>>2];j=0;while(1){if((j|0)==3)break;c[h+(j<<2)>>2]=0;j=j+1|0}xa=a[qa>>0]|0;ta=(xa&1)==0;Za(g,ta?qa+1|0:c[qa+8>>2]|0,ta?(xa&255)>>>1:c[qa+4>>2]|0)|0;Ja(qa);Ja(ra);g=Q}else g=d;Ja(ya);break i}while(0);Ja(ya);g=d}else g=d;while(0);if((g|0)==(d|0))break d;h=c[f+4>>2]|0;if((c[f>>2]|0)==(h|0)){g=d;break a}m=f+16|0;c[ba>>2]=c[f+12>>2];Pb(ga,h+-24|0,ba);h=f+20|0;j=c[h>>2]|0;d=c[f+24>>2]|0;k=d;if(j>>>0<d>>>0){c[j+12>>2]=c[ga+12>>2];c[j>>2]=c[ga>>2];ya=ga+4|0;c[j+4>>2]=c[ya>>2];f=ga+8|0;c[j+8>>2]=c[f>>2];c[f>>2]=0;c[ya>>2]=0;c[ga>>2]=0;c[h>>2]=(c[h>>2]|0)+16}else{h=c[m>>2]|0;d=j-h|0;l=d>>4;j=l+1|0;if((d|0)<-16)Pa();h=k-h|0;if(h>>4>>>0<1073741823){h=h>>3;h=h>>>0<j>>>0?j:h}else h=2147483647;Qa(ya,h,l,f+28|0);f=ya+8|0;d=c[f>>2]|0;c[d+12>>2]=c[ga+12>>2];c[d>>2]=c[ga>>2];e=ga+4|0;c[d+4>>2]=c[e>>2];xa=ga+8|0;c[d+8>>2]=c[xa>>2];c[xa>>2]=0;c[e>>2]=0;c[ga>>2]=0;c[f>>2]=d+16;Ra(m,ya);Sa(ya)}Ha(ga);break a}default:break d}}break}default:{}}while(0);g=eb(d,e,f)|0;if((g|0)==(d|0)){g=Wb(d,e,f)|0;if((g|0)!=(d|0)?(ua=c[f+4>>2]|0,(c[f>>2]|0)!=(ua|0)):0){m=f+16|0;c[va>>2]=c[f+12>>2];Pb(wa,ua+-24|0,va);h=f+20|0;j=c[h>>2]|0;d=c[f+24>>2]|0;k=d;if(j>>>0<d>>>0){c[j+12>>2]=c[wa+12>>2];c[j>>2]=c[wa>>2];ya=wa+4|0;c[j+4>>2]=c[ya>>2];f=wa+8|0;c[j+8>>2]=c[f>>2];c[f>>2]=0;c[ya>>2]=0;c[wa>>2]=0;c[h>>2]=(c[h>>2]|0)+16}else{h=c[m>>2]|0;d=j-h|0;l=d>>4;j=l+1|0;if((d|0)<-16)Pa();h=k-h|0;if(h>>4>>>0<1073741823){h=h>>3;h=h>>>0<j>>>0?j:h}else h=2147483647;Qa(ya,h,l,f+28|0);f=ya+8|0;d=c[f>>2]|0;c[d+12>>2]=c[wa+12>>2];c[d>>2]=c[wa>>2];e=wa+4|0;c[d+4>>2]=c[e>>2];xa=wa+8|0;c[d+8>>2]=c[xa>>2];c[xa>>2]=0;c[e>>2]=0;c[wa>>2]=0;c[f>>2]=d+16;Ra(m,ya);Sa(ya)}Ha(wa)}else g=d}}}else g=d;while(0);i=za;return g|0}function Oa(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;c[e>>2]=0;if((b|0)!=(d|0)){d=a[b>>0]|0;if(d<<24>>24==114){c[e>>2]=4;d=b+1|0;b=d;d=a[d>>0]|0;f=4}else f=0;if(d<<24>>24==86){f=f|2;c[e>>2]=f;d=b+1|0;b=d;d=a[d>>0]|0}if(d<<24>>24==75){c[e>>2]=f|1;b=b+1|0}}return b|0}function Pa(){oa(120,143,303,246)}function Qa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=Da(c[e>>2]|0,b<<4)|0;c[a>>2]=e;d=e+(d<<4)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[a+12>>2]=e+(b<<4);return}function Ra(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;k=c[g>>2]|0;i=k+-16|0;h=d+-16|0;c[i>>2]=0;j=k+-12|0;c[j>>2]=0;l=c[d+-4>>2]|0;c[k+-8>>2]=0;c[k+-4>>2]=l;c[i>>2]=c[h>>2];i=d+-12|0;c[j>>2]=c[i>>2];j=d+-8|0;c[k+-8>>2]=c[j>>2];c[j>>2]=0;c[i>>2]=0;c[h>>2]=0;c[g>>2]=(c[g>>2]|0)+-16;d=h}j=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=j;j=b+8|0;l=c[f>>2]|0;c[f>>2]=c[j>>2];c[j>>2]=l;j=a+8|0;l=b+12|0;k=c[j>>2]|0;c[j>>2]=c[l>>2];c[l>>2]=k;c[b>>2]=c[g>>2];return}function Sa(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-16|0;c[d>>2]=e;Ha(e)}b=c[a>>2]|0;if(b)Ka(c[c[a+16>>2]>>2]|0,b,(c[a+12>>2]|0)-b|0);return}function Ta(a,b,c){a=a|0;b=b|0;c=c|0;return Ua(a,b,c,bc(c)|0)|0}function Ua(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=a[b>>0]|0;h=(g&1)==0;if(h)i=(g&255)>>>1;else i=c[b+4>>2]|0;if(i>>>0<d>>>0)Va();if(h)h=10;else{g=c[b>>2]|0;h=(g&-2)+-1|0;g=g&255}if((h-i|0)>>>0>=f>>>0){if(f){if(!(g&1))h=b+1|0;else h=c[b+8>>2]|0;if((i|0)==(d|0))g=h+d|0;else{g=h+d|0;Hc(g+f|0,g|0,i-d|0)|0;e=g>>>0<=e>>>0&(h+i|0)>>>0>e>>>0?e+f|0:e}Hc(g|0,e|0,f|0)|0;g=i+f|0;if(!(a[b>>0]&1))a[b>>0]=g<<1;else c[b+4>>2]=g;a[h+g>>0]=0}}else Wa(b,h,i+f-h|0,i,d,0,f,e);return b|0}function Va(){oa(274,303,1175,406)}function Wa(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0;if((-18-d|0)>>>0<e>>>0)Xa();if(!(a[b>>0]&1))m=b+1|0;else m=c[b+8>>2]|0;if(d>>>0<2147483623){k=e+d|0;l=d<<1;k=k>>>0<l>>>0?l:k;k=k>>>0<11?11:k+16&-16}else k=-17;l=vc(k)|0;if(g)Fc(l|0,m|0,g|0)|0;if(i)Fc(l+g|0,j|0,i|0)|0;e=f-h|0;if((e|0)!=(g|0))Fc(l+g+i|0,m+g+h|0,e-g|0)|0;if((d|0)!=10)wc(m);c[b+8>>2]=l;c[b>>2]=k|1;d=e+i|0;c[b+4>>2]=d;a[l+d>>0]=0;return}function Xa(){oa(427,303,1164,246)}function Ya(a,b){a=a|0;b=b|0;return Za(a,b,bc(b)|0)|0}function Za(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=a[b>>0]|0;if(!(f&1))h=10;else{f=c[b>>2]|0;h=(f&-2)+-1|0;f=f&255}g=(f&1)==0;if(g)f=(f&255)>>>1;else f=c[b+4>>2]|0;if((h-f|0)>>>0>=e>>>0){if(e){if(g)g=b+1|0;else g=c[b+8>>2]|0;Fc(g+f|0,d|0,e|0)|0;f=f+e|0;if(!(a[b>>0]&1))a[b>>0]=f<<1;else c[b+4>>2]=f;a[g+f>>0]=0}}else Wa(b,h,e-h+f|0,f,f,0,e,d);return b|0}function _a(b,d){b=b|0;d=d|0;if(!(a[d>>0]&1)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2]}else $a(b,c[d+8>>2]|0,c[d+4>>2]|0);return}function $a(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if(e>>>0>4294967279)Xa();if(e>>>0<11){a[b>>0]=e<<1;b=b+1|0}else{g=e+16&-16;f=vc(g)|0;c[b+8>>2]=f;c[b>>2]=g|1;c[b+4>>2]=e;b=f}Fc(b|0,d|0,e|0)|0;a[b+e>>0]=0;return}function ab(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=Da(c[e>>2]|0,b*24|0)|0;c[a>>2]=e;d=e+(d*24|0)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[a+12>>2]=e+(b*24|0);return}function bb(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-24|0;c[d>>2]=e;Ia(e)}b=c[a>>2]|0;if(b)Ka(c[c[a+16>>2]>>2]|0,b,(c[a+12>>2]|0)-b|0);return}function cb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;h=d+-24|0;db((c[g>>2]|0)+-24|0,h);c[g>>2]=(c[g>>2]|0)+-24;d=h}h=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=h;h=b+8|0;e=c[f>>2]|0;c[f>>2]=c[h>>2];c[h>>2]=e;f=a+8|0;h=b+12|0;a=c[f>>2]|0;c[f>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[g>>2];return}function db(a,b){a=a|0;b=b|0;var d=0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];d=0;while(1){if((d|0)==3)break;c[b+(d<<2)>>2]=0;d=d+1|0}d=a+12|0;b=b+12|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];d=0;while(1){if((d|0)==3)break;c[b+(d<<2)>>2]=0;d=d+1|0}return}function eb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;N=i;i=i+720|0;M=N+696|0;j=N+672|0;J=N+648|0;s=N+624|0;u=N+600|0;v=N+576|0;w=N+552|0;x=N+528|0;y=N+504|0;z=N+480|0;A=N+456|0;k=N+432|0;l=N+408|0;m=N+384|0;L=N+360|0;n=N+336|0;o=N+312|0;p=N+288|0;K=N+264|0;q=N+240|0;r=N+216|0;t=N+192|0;B=N+168|0;C=N+144|0;D=N+120|0;E=N+96|0;F=N+72|0;G=N+48|0;H=N+24|0;I=N;a:do if((b|0)!=(d|0))do switch(a[b>>0]|0){case 118:{fb(j,476);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,j);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,j);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(j);b=b+1|0;break a}case 119:{a[J>>0]=14;f=J+1|0;a[f>>0]=a[481]|0;a[f+1>>0]=a[482]|0;a[f+2>>0]=a[483]|0;a[f+3>>0]=a[484]|0;a[f+4>>0]=a[485]|0;a[f+5>>0]=a[486]|0;a[f+6>>0]=a[487]|0;a[J+8>>0]=0;f=J+12|0;d=0;while(1){if((d|0)==3)break;c[f+(d<<2)>>2]=0;d=d+1|0}f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,J);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,J);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(J);b=b+1|0;break a}case 98:{fb(s,489);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,s);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,s);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(s);b=b+1|0;break a}case 99:{fb(u,494);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,u);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,u);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(u);b=b+1|0;break a}case 97:{gb(v,499);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,v);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,v);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(v);b=b+1|0;break a}case 104:{hb(w,511);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,w);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,w);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(w);b=b+1|0;break a}case 115:{ib(x,525);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,x);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,x);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(x);b=b+1|0;break a}case 116:{jb(y,531);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,y);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,y);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(y);b=b+1|0;break a}case 105:{kb(z,546);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,z);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,z);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(z);b=b+1|0;break a}case 106:{lb(A,550);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,A);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,A);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(A);b=b+1|0;break a}case 108:{fb(k,563);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,k);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,k);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(k);b=b+1|0;break a}case 109:{hb(l,568);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,l);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,l);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(l);b=b+1|0;break a}case 120:{mb(m,582);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,m);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,m);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(m);b=b+1|0;break a}case 121:{f=vc(32)|0;c[L+8>>2]=f;c[L>>2]=33;c[L+4>>2]=18;d=f;g=592;h=d+18|0;do{a[d>>0]=a[g>>0]|0;d=d+1|0;g=g+1|0}while((d|0)<(h|0));a[f+18>>0]=0;f=L+12|0;d=0;while(1){if((d|0)==3)break;c[f+(d<<2)>>2]=0;d=d+1|0}f=e+4|0;d=c[f>>2]|0;K=c[e+8>>2]|0;g=K;if(d>>>0<K>>>0){db(d,L);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;K=d-f|0;h=(K|0)/24|0;d=h+1|0;if((K|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);K=M+8|0;J=c[K>>2]|0;db(J,L);c[K>>2]=J+24;cb(e,M);bb(M)}Ia(L);b=b+1|0;break a}case 110:{nb(n,611);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,n);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,n);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(n);b=b+1|0;break a}case 111:{ob(o,620);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,o);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,o);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(o);b=b+1|0;break a}case 102:{ib(p,638);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,p);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,p);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(p);b=b+1|0;break a}case 100:{a[K>>0]=12;f=K+1|0;a[f>>0]=a[644]|0;a[f+1>>0]=a[645]|0;a[f+2>>0]=a[646]|0;a[f+3>>0]=a[647]|0;a[f+4>>0]=a[648]|0;a[f+5>>0]=a[649]|0;a[K+7>>0]=0;f=K+12|0;d=0;while(1){if((d|0)==3)break;c[f+(d<<2)>>2]=0;d=d+1|0}f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,K);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;J=c[L>>2]|0;db(J,K);c[L>>2]=J+24;cb(e,M);bb(M)}Ia(K);b=b+1|0;break a}case 101:{gb(q,651);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,q);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,q);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(q);b=b+1|0;break a}case 103:{pb(r,663);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,r);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,r);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(r);b=b+1|0;break a}case 122:{kb(t,674);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,t);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,t);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(t);b=b+1|0;break a}case 117:{M=b+1|0;e=qb(M,d,e)|0;b=(e|0)==(M|0)?b:e;break a}case 68:{f=b+1|0;if((f|0)==(d|0))break a;switch(a[f>>0]|0){case 100:{mb(B,711);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,B);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,B);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(B);b=b+2|0;break a}case 101:{pb(C,721);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,C);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,C);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(C);b=b+2|0;break a}case 102:{mb(D,732);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,D);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,D);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(D);b=b+2|0;break a}case 104:{mb(E,742);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,E);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,E);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(E);b=b+2|0;break a}case 105:{nb(F,752);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,F);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,F);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(F);b=b+2|0;break a}case 115:{nb(G,761);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,G);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,G);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(G);b=b+2|0;break a}case 97:{fb(H,770);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,H);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,H);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(H);b=b+2|0;break a}case 110:{jb(I,775);f=e+4|0;d=c[f>>2]|0;L=c[e+8>>2]|0;g=L;if(d>>>0<L>>>0){db(d,I);c[f>>2]=(c[f>>2]|0)+24}else{f=c[e>>2]|0;L=d-f|0;h=(L|0)/24|0;d=h+1|0;if((L|0)<-24)Pa();f=(g-f|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<d>>>0?d:f}else f=2147483647;ab(M,f,h,e+12|0);L=M+8|0;K=c[L>>2]|0;db(K,I);c[L>>2]=K+24;cb(e,M);bb(M)}Ia(I);b=b+2|0;break a}default:break a}}default:break a}while(0);while(0);i=N;return b|0}function fb(b,e){b=b|0;e=e|0;var f=0;a[b>>0]=8;f=b+1|0;e=d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24;a[f>>0]=e;a[f+1>>0]=e>>8;a[f+2>>0]=e>>16;a[f+3>>0]=e>>24;a[b+5>>0]=0;e=b+12|0;b=0;while(1){if((b|0)==3)break;c[e+(b<<2)>>2]=0;b=b+1|0}return}function gb(a,b){a=a|0;b=b|0;$a(a,b,11);b=a+12|0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function hb(a,b){a=a|0;b=b|0;$a(a,b,13);b=a+12|0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function ib(b,d){b=b|0;d=d|0;var e=0;a[b>>0]=10;e=b+1|0;a[e>>0]=a[d>>0]|0;a[e+1>>0]=a[d+1>>0]|0;a[e+2>>0]=a[d+2>>0]|0;a[e+3>>0]=a[d+3>>0]|0;a[e+4>>0]=a[d+4>>0]|0;a[b+6>>0]=0;d=b+12|0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}return}function jb(a,b){a=a|0;b=b|0;$a(a,b,14);b=a+12|0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function kb(b,d){b=b|0;d=d|0;var e=0;a[b>>0]=6;e=b+1|0;a[e>>0]=a[d>>0]|0;a[e+1>>0]=a[d+1>>0]|0;a[e+2>>0]=a[d+2>>0]|0;a[b+4>>0]=0;d=b+12|0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}return}function lb(a,b){a=a|0;b=b|0;$a(a,b,12);b=a+12|0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function mb(b,d){b=b|0;d=d|0;var e=0,f=0;a[b>>0]=18;f=b+1|0;e=f+9|0;do{a[f>>0]=a[d>>0]|0;f=f+1|0;d=d+1|0}while((f|0)<(e|0));a[b+10>>0]=0;d=b+12|0;e=0;while(1){if((e|0)==3)break;c[d+(e<<2)>>2]=0;e=e+1|0}return}function nb(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;a[b>>0]=16;f=e;h=f;h=d[h>>0]|d[h+1>>0]<<8|d[h+2>>0]<<16|d[h+3>>0]<<24;f=f+4|0;f=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;e=b+1|0;g=e;a[g>>0]=h;a[g+1>>0]=h>>8;a[g+2>>0]=h>>16;a[g+3>>0]=h>>24;e=e+4|0;a[e>>0]=f;a[e+1>>0]=f>>8;a[e+2>>0]=f>>16;a[e+3>>0]=f>>24;a[b+9>>0]=0;e=b+12|0;b=0;while(1){if((b|0)==3)break;c[e+(b<<2)>>2]=0;b=b+1|0}return}function ob(a,b){a=a|0;b=b|0;$a(a,b,17);b=a+12|0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function pb(b,d){b=b|0;d=d|0;var e=0,f=0;a[b>>0]=20;f=b+1|0;e=f+10|0;do{a[f>>0]=a[d>>0]|0;f=f+1|0;d=d+1|0}while((f|0)<(e|0));a[b+11>>0]=0;d=b+12|0;e=0;while(1){if((e|0)==3)break;c[d+(e<<2)>>2]=0;e=e+1|0}return}function qb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+112|0;o=q+88|0;p=q+64|0;h=q+76|0;l=q+40|0;j=q+16|0;k=q;a:do if(((b|0)!=(d|0)?(g=(a[b>>0]|0)+-48|0,g>>>0<10):0)?(f=b+1|0,(f|0)!=(d|0)):0){m=f;n=g;while(1){g=(a[m>>0]|0)+-48|0;if(g>>>0>=10)break;f=m+1|0;if((f|0)==(d|0))break a;m=f;n=g+(n*10|0)|0}if((d-m|0)>>>0>=n>>>0){$a(p,m,n);f=a[p>>0]|0;d=(f&1)==0;f=d?(f&255)>>>1:c[p+4>>2]|0;$a(h,d?p+1|0:c[p+8>>2]|0,f>>>0<10?f:10);f=a[h>>0]|0;d=(f&1)==0;f=d?(f&255)>>>1:c[h+4>>2]|0;g=f>>>0>10;d=ac(d?h+1|0:c[h+8>>2]|0,678,g?10:f)|0;Ja(h);if(!(((d|0)==0?(f>>>0<10?-1:g&1):d)|0)){b=vc(32)|0;c[l+8>>2]=b;c[l>>2]=33;c[l+4>>2]=21;f=b;g=689;h=f+21|0;do{a[f>>0]=a[g>>0]|0;f=f+1|0;g=g+1|0}while((f|0)<(h|0));a[b+21>>0]=0;b=l+12|0;f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}b=e+4|0;f=c[b>>2]|0;k=c[e+8>>2]|0;g=k;if(f>>>0<k>>>0){db(f,l);c[b>>2]=(c[b>>2]|0)+24}else{b=c[e>>2]|0;k=f-b|0;h=(k|0)/24|0;f=h+1|0;if((k|0)<-24)Pa();b=(g-b|0)/24|0;if(b>>>0<1073741823){b=b<<1;b=b>>>0<f>>>0?f:b}else b=2147483647;ab(o,b,h,e+12|0);k=o+8|0;j=c[k>>2]|0;db(j,l);c[k>>2]=j+24;cb(e,o);bb(o)}Ia(l)}else{c[k>>2]=c[p>>2];c[k+4>>2]=c[p+4>>2];c[k+8>>2]=c[p+8>>2];b=0;while(1){if((b|0)==3)break;c[p+(b<<2)>>2]=0;b=b+1|0}rb(j,k);b=e+4|0;f=c[b>>2]|0;l=c[e+8>>2]|0;g=l;if(f>>>0<l>>>0){db(f,j);c[b>>2]=(c[b>>2]|0)+24}else{b=c[e>>2]|0;l=f-b|0;h=(l|0)/24|0;f=h+1|0;if((l|0)<-24)Pa();b=(g-b|0)/24|0;if(b>>>0<1073741823){b=b<<1;b=b>>>0<f>>>0?f:b}else b=2147483647;ab(o,b,h,e+12|0);l=o+8|0;d=c[l>>2]|0;db(d,j);c[l>>2]=d+24;cb(e,o);bb(o)}Ia(j);Ja(k)}Ja(p);b=m+n|0}}while(0);i=q;return b|0}function rb(a,b){a=a|0;b=b|0;var d=0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];d=0;while(1){if((d|0)==3)break;c[b+(d<<2)>>2]=0;d=d+1|0}d=a+12|0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}return}function sb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=a[b>>0]|0;if(!(d&1)){e=(d&255)>>>1;h=b+1|0}else{e=c[b+4>>2]|0;h=c[b+8>>2]|0}f=(e|0)!=0&1;g=e-f|0;if((e|0)!=(f|0)){Hc(h|0,h+f|0,g|0)|0;d=a[b>>0]|0}if(!(d&1))a[b>>0]=g<<1;else c[b+4>>2]=g;a[h+g>>0]=0;return}function tb(b,c){b=b|0;c=c|0;var d=0,e=0;a:do if((b|0)!=(c|0)?(d=(a[b>>0]|0)==110?b+1|0:b,(d|0)!=(c|0)):0){e=a[d>>0]|0;if(e<<24>>24==48){d=d+1|0;break}if((e+-49&255)<9)do{d=d+1|0;if((d|0)==(c|0)){d=c;break a}}while(((a[d>>0]|0)+-48|0)>>>0<10);else d=b}else d=b;while(0);return d|0}\nfunction Sb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+112|0;r=s+88|0;m=s+64|0;n=s+48|0;l=s+24|0;o=s+12|0;p=s;a:do if((b|0)!=(d|0)){g=a[b>>0]|0;h=g<<24>>24;switch(h|0){case 68:case 67:{b:do if((d-b|0)>1?(k=e+4|0,f=c[k>>2]|0,(c[e>>2]|0)!=(f|0)):0){switch(h|0){case 67:{switch(a[b+1>>0]|0){case 53:case 51:case 50:case 49:break;default:break b}Tb(n,f+-24|0);rb(m,n);f=c[k>>2]|0;d=c[e+8>>2]|0;j=d;if(f>>>0<d>>>0){db(f,m);c[k>>2]=(c[k>>2]|0)+24}else{g=c[e>>2]|0;d=f-g|0;k=(d|0)/24|0;h=k+1|0;if((d|0)<-24)Pa();f=(j-g|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<h>>>0?h:f}else f=2147483647;ab(r,f,k,e+12|0);d=r+8|0;q=c[d>>2]|0;db(q,m);c[d>>2]=q+24;cb(e,r);bb(r)}Ia(m);Ja(n);a[e+60>>0]=1;b=b+2|0;break b}case 68:break;default:break b}switch(a[b+1>>0]|0){case 53:case 50:case 49:case 48:break;default:break b}Tb(p,f+-24|0);f=Ta(p,0,886)|0;c[o>>2]=c[f>>2];c[o+4>>2]=c[f+4>>2];c[o+8>>2]=c[f+8>>2];g=0;while(1){if((g|0)==3)break;c[f+(g<<2)>>2]=0;g=g+1|0}rb(l,o);f=c[k>>2]|0;d=c[e+8>>2]|0;j=d;if(f>>>0<d>>>0){db(f,l);c[k>>2]=(c[k>>2]|0)+24}else{g=c[e>>2]|0;d=f-g|0;k=(d|0)/24|0;h=k+1|0;if((d|0)<-24)Pa();f=(j-g|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<h>>>0?h:f}else f=2147483647;ab(r,f,k,e+12|0);d=r+8|0;q=c[d>>2]|0;db(q,l);c[d>>2]=q+24;cb(e,r);bb(r)}Ia(l);Ja(o);Ja(p);a[e+60>>0]=1;b=b+2|0}while(0);break a}case 85:{c:do if((d-b|0)>2&g<<24>>24==85){switch(a[b+1>>0]|0){case 116:{$a(n,1808,8);rb(m,n);l=e+4|0;f=c[l>>2]|0;q=c[e+8>>2]|0;g=q;if(f>>>0<q>>>0){db(f,m);c[l>>2]=(c[l>>2]|0)+24}else{h=c[e>>2]|0;q=f-h|0;k=(q|0)/24|0;j=k+1|0;if((q|0)<-24)Pa();f=(g-h|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<j>>>0?j:f}else f=2147483647;ab(r,f,k,e+12|0);q=r+8|0;p=c[q>>2]|0;db(p,m);c[q>>2]=p+24;cb(e,r);bb(r)}Ia(m);Ja(n);f=b+2|0;if((f|0)==(d|0)){g=c[l>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0))break c;d=g+-24|0;c[l>>2]=d;Ia(d);g=c[l>>2]|0}}if(((a[f>>0]|0)+-48|0)>>>0<10){g=b+3|0;while(1){if((g|0)==(d|0)){g=d;break}if(((a[g>>0]|0)+-48|0)>>>0>=10)break;g=g+1|0}Bb((c[l>>2]|0)+-24|0,f,g);f=g}zb((c[l>>2]|0)+-24|0,39);if((f|0)!=(d|0)?(a[f>>0]|0)==95:0){b=f+1|0;break c}g=c[l>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0))break c;d=g+-24|0;c[l>>2]=d;Ia(d);g=c[l>>2]|0}}case 108:break;default:break c}$a(o,1817,9);rb(l,o);q=e+4|0;f=c[q>>2]|0;n=c[e+8>>2]|0;g=n;if(f>>>0<n>>>0){db(f,l);c[q>>2]=(c[q>>2]|0)+24}else{h=c[e>>2]|0;n=f-h|0;k=(n|0)/24|0;j=k+1|0;if((n|0)<-24)Pa();f=(g-h|0)/24|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0<j>>>0?j:f}else f=2147483647;ab(r,f,k,e+12|0);n=r+8|0;m=c[n>>2]|0;db(m,l);c[n>>2]=m+24;cb(e,r);bb(r)}Ia(l);Ja(o);f=b+2|0;do if((a[f>>0]|0)!=118){g=Na(f,d,e)|0;if((g|0)==(f|0)){g=c[q>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0))break c;d=g+-24|0;c[q>>2]=d;Ia(d);g=c[q>>2]|0}}f=c[q>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)break c;Cb(r,f+-24|0);j=c[q>>2]|0;f=j+-24|0;h=j;while(1){if((h|0)==(f|0))break;o=h+-24|0;c[q>>2]=o;Ia(o);h=c[q>>2]|0}h=a[r>>0]|0;l=(h&1)==0;m=r+8|0;n=r+1|0;o=r+4|0;Za(j+-48|0,l?n:c[m>>2]|0,l?(h&255)>>>1:c[o>>2]|0)|0;while(1){l=Na(g,d,e)|0;if((l|0)==(g|0)){f=91;break}f=c[q>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2){f=129;break}Cb(p,f+-24|0);d:do if(!(h&1)){a[n>>0]=0;a[r>>0]=0}else{g=c[m>>2]|0;a[g>>0]=0;c[o>>2]=0;f=c[r>>2]|0;k=(f&-2)+-1|0;h=f&255;do if(!(h&1)){f=f>>>1&127;if((h&255)<22){Fc(n|0,g|0,f+1|0)|0;wc(g);break}g=f+16&240;j=g+-1|0;if((j|0)==(k|0))break d;h=vc(g)|0;if(j>>>0<=k>>>0&(h|0)==0)break d;Fc(h|0,n|0,f+1|0)|0;c[r>>2]=g|1;c[o>>2]=f;c[m>>2]=h;break d}else{a[n>>0]=0;wc(g);f=0}while(0);a[r>>0]=f<<1}while(0);c[r>>2]=c[p>>2];c[r+4>>2]=c[p+4>>2];c[r+8>>2]=c[p+8>>2];f=0;while(1){if((f|0)==3)break;c[p+(f<<2)>>2]=0;f=f+1|0}Ja(p);j=c[q>>2]|0;f=j+-24|0;g=j;while(1){if((g|0)==(f|0))break;k=g+-24|0;c[q>>2]=k;Ia(k);g=c[q>>2]|0}h=a[r>>0]|0;f=(h&1)==0;g=f?(h&255)>>>1:c[o>>2]|0;if(!g){g=l;continue}Ya(j+-48|0,1429)|0;Za((c[q>>2]|0)+-24|0,f?n:c[m>>2]|0,g)|0;g=l}if((f|0)==91){Ya((c[q>>2]|0)+-24|0,799)|0;Ja(r);break}else if((f|0)==129){Ja(r);break c}}else{zb((c[q>>2]|0)+-24|0,41);g=b+3|0}while(0);if((g|0)!=(d|0)?(a[g>>0]|0)==69:0){f=g+1|0;if((f|0)==(d|0)){g=c[q>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0))break c;d=g+-24|0;c[q>>2]=d;Ia(d);g=c[q>>2]|0}}e:do if(((a[f>>0]|0)+-48|0)>>>0<10){g=g+2|0;while(1){if((g|0)==(d|0)){g=d;break}if(((a[g>>0]|0)+-48|0)>>>0>=10)break;g=g+1|0}p=c[q>>2]|0;e=p+-24|0;h=a[e>>0]|0;l=p+-16|0;if(!(h&1)){j=l;k=e+1|0;o=(h&255)>>>1;m=10}else{k=c[l>>2]|0;h=c[e>>2]|0;j=k+7|0;o=c[p+-20>>2]|0;m=(h&-2)+-1|0;h=h&255}n=j-k|0;k=g-f|0;if((g|0)!=(f|0)){if((m-o|0)>>>0>=k>>>0){if(!(h&1))h=e+1|0;else h=c[l>>2]|0;if((o|0)==(n|0))j=h;else{j=h+n|0;Hc(j+k|0,j|0,o-n|0)|0;j=h}}else{Ab(e,m,o+k-m|0,o,n,k);j=c[l>>2]|0}h=o+k|0;if(!(a[e>>0]&1))a[e>>0]=h<<1;else c[p+-20>>2]=h;a[j+h>>0]=0;h=j+n|0;while(1){if((f|0)==(g|0)){f=g;break e}a[h>>0]=a[f>>0]|0;f=f+1|0;h=h+1|0}}}while(0);if((f|0)!=(d|0)?(a[f>>0]|0)==95:0){b=f+1|0;break}g=c[q>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0))break c;d=g+-24|0;c[q>>2]=d;Ia(d);g=c[q>>2]|0}}g=c[q>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0))break c;d=g+-24|0;c[q>>2]=d;Ia(d);g=c[q>>2]|0}}while(0);break a}case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:{b=qb(b,d,e)|0;break a}default:{d=Lb(b,d,e)|0;i=s;return d|0}}}while(0);i=s;return b|0}function Tb(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=a[d>>0]|0;e=(h&1)==0;h=e?(h&255)>>>1:c[d+4>>2]|0;a:do if(!h)_a(b,d);else{f=e?d+1|0:c[d+8>>2]|0;e=h>>>0>11;g=ac(f,1478,e?11:h)|0;if(!(((g|0)==0?(h>>>0<11?-1:e&1):g)|0)){Ub(d,1530,70);$a(b,1601,12);break}e=h>>>0>12;g=e?12:h;i=ac(f,1490,g)|0;e=h>>>0<12?-1:e&1;if(!(((i|0)==0?e:i)|0)){Ub(d,1614,49);$a(b,1664,13);break}i=ac(f,1503,g)|0;if(!(((i|0)==0?e:i)|0)){Ub(d,1678,49);$a(b,1728,13);break}g=h>>>0>13;i=ac(f,1516,g?13:h)|0;if(!(((i|0)==0?(h>>>0<13?-1:g&1):i)|0)){Ub(d,1742,50);$a(b,1793,14);break}e=f+h|0;b:do if((a[e+-1>>0]|0)==62){g=1;c:while(1){h=e;d:while(1){e=h+-1|0;if((e|0)==(f|0))break c;h=h+-2|0;switch(a[h>>0]|0){case 60:{d=18;break d}case 62:{d=19;break d}default:h=e}}if((d|0)==18){g=g+-1|0;if(!g){e=h;break b}else continue}else if((d|0)==19){g=g+1|0;continue}}e=0;while(1){if((e|0)==3)break a;c[b+(e<<2)>>2]=0;e=e+1|0}}while(0);h=e;while(1){g=h+-1|0;if((g|0)==(f|0))break;if((a[g>>0]|0)==58){f=h;break}else h=g}d=e-f|0;if(d>>>0>4294967279)Xa();if(d>>>0<11){a[b>>0]=d<<1;h=b+1|0}else{i=d+16&-16;h=vc(i)|0;c[b+8>>2]=h;c[b>>2]=i|1;c[b+4>>2]=d}g=h;while(1){if((f|0)==(e|0))break;a[g>>0]=a[f>>0]|0;f=f+1|0;g=g+1|0}a[h+d>>0]=0}while(0);return}function Ub(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=a[b>>0]|0;if(!(f&1))h=10;else{f=c[b>>2]|0;h=(f&-2)+-1|0;f=f&255}g=(f&1)==0;do if(h>>>0>=e>>>0){if(g)f=b+1|0;else f=c[b+8>>2]|0;Hc(f|0,d|0,e|0)|0;a[f+e>>0]=0;if(!(a[b>>0]&1)){a[b>>0]=e<<1;break}else{c[b+4>>2]=e;break}}else{if(g)f=(f&255)>>>1;else f=c[b+4>>2]|0;Wa(b,h,e-h|0,f,0,f,e,d)}while(0);return}function Vb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;j=k;if((b|0)!=(d|0)?(f=qb(b,d,e)|0,(f|0)!=(b|0)):0){h=Mb(f,d,e)|0;if((h|0)!=(f|0)){g=e+4|0;f=c[g>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)f=b;else{Cb(j,f+-24|0);f=c[g>>2]|0;d=f+-24|0;e=f;while(1){if((e|0)==(d|0))break;b=e+-24|0;c[g>>2]=b;Ia(b);e=c[g>>2]|0}g=a[j>>0]|0;b=(g&1)==0;Za(f+-48|0,b?j+1|0:c[j+8>>2]|0,b?(g&255)>>>1:c[j+4>>2]|0)|0;Ja(j);f=h}}}else f=b;i=k;return f|0}function Wb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0;ua=i;i=i+208|0;ta=ua+188|0;ra=ua+184|0;pa=ua+172|0;ba=ua+160|0;ca=ua+144|0;ha=ua+140|0;ia=ua+128|0;ja=ua+112|0;ka=ua+108|0;la=ua+96|0;ma=ua+64|0;na=ua+56|0;oa=ua+40|0;da=ua+36|0;ea=ua+24|0;fa=ua+8|0;ga=ua;n=ua+80|0;k=ua+60|0;m=d;a:do if((m-b|0)>1){sa=(a[b>>0]|0)==76?b+1|0:b;f=a[sa>>0]|0;switch(f<<24>>24|0){case 78:{b:do if((sa|0)!=(d|0))if(f<<24>>24==78){f=Oa(sa+1|0,d,ra)|0;c:do if((f|0)!=(d|0)){h=e+52|0;c[h>>2]=0;switch(a[f>>0]|0){case 82:{c[h>>2]=1;f=f+1|0;break}case 79:{c[h>>2]=2;f=f+1|0;break}default:{}}aa=e+4|0;j=c[aa>>2]|0;$=c[e+8>>2]|0;h=$;if(j>>>0<$>>>0){c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;c[j+20>>2]=0;h=0;while(1){if((h|0)==3)break;c[j+(h<<2)>>2]=0;h=h+1|0}h=j+12|0;j=0;while(1){if((j|0)==3)break;c[h+(j<<2)>>2]=0;j=j+1|0}c[aa>>2]=(c[aa>>2]|0)+24}else{k=c[e>>2]|0;$=j-k|0;l=($|0)/24|0;j=l+1|0;if(($|0)<-24)Pa();h=(h-k|0)/24|0;if(h>>>0<1073741823){h=h<<1;h=h>>>0<j>>>0?j:h}else h=2147483647;ab(ta,h,l,e+12|0);k=ta+8|0;l=c[k>>2]|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[l+20>>2]=0;h=0;while(1){if((h|0)==3)break;c[l+(h<<2)>>2]=0;h=h+1|0}h=l+12|0;j=0;while(1){if((j|0)==3)break;c[h+(j<<2)>>2]=0;j=j+1|0}c[k>>2]=l+24;cb(e,ta);bb(ta)}if(((m-f|0)>1?(a[f>>0]|0)==83:0)?(a[f+1>>0]|0)==116:0){Ub((c[aa>>2]|0)+-24|0,2080,3);f=f+2|0}if((f|0)==(d|0)){g=c[aa>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0))break c;ta=g+-24|0;c[aa>>2]=ta;Ia(ta);g=c[aa>>2]|0}}I=pa+8|0;J=pa+1|0;K=pa+4|0;L=e+12|0;M=e+16|0;$=e+20|0;N=e+24|0;O=oa+12|0;P=oa+4|0;Q=oa+8|0;R=e+28|0;S=ta+8|0;T=fa+12|0;U=fa+4|0;V=fa+8|0;W=ta+8|0;X=ea+8|0;Y=ea+1|0;Z=ea+4|0;_=ba+8|0;o=ba+1|0;p=ba+4|0;q=ca+12|0;r=ca+4|0;s=ca+8|0;t=ta+8|0;u=ja+12|0;v=ja+4|0;w=ja+8|0;x=ta+8|0;y=ia+8|0;z=ia+1|0;A=ia+4|0;B=ma+12|0;C=ma+4|0;D=ma+8|0;E=ta+8|0;F=la+8|0;G=la+1|0;H=la+4|0;n=0;d:while(1){h=f;e:while(1){f=a[h>>0]|0;if(f<<24>>24==69){qa=129;break d}switch(f<<24>>24|0){case 83:{qa=39;break e}case 84:{qa=59;break e}case 68:{qa=77;break e}case 73:break;case 76:{f=h+1|0;if((f|0)==(d|0))break c;else{h=f;continue e}}default:break e}m=Mb(h,d,e)|0;if((m|0)==(h|0)|(m|0)==(d|0))break c;Cb(pa,(c[aa>>2]|0)+-24|0);f=c[aa>>2]|0;h=f+-24|0;j=f;while(1){if((j|0)==(h|0))break;l=j+-24|0;c[aa>>2]=l;Ia(l);j=c[aa>>2]|0}l=a[pa>>0]|0;h=(l&1)==0;Za(f+-48|0,h?J:c[I>>2]|0,h?(l&255)>>>1:c[K>>2]|0)|0;f=(c[aa>>2]|0)+-24|0;c[da>>2]=c[L>>2];Pb(oa,f,da);f=c[$>>2]|0;l=c[N>>2]|0;h=l;if(f>>>0<l>>>0){c[f+12>>2]=c[O>>2];c[f>>2]=c[oa>>2];c[f+4>>2]=c[P>>2];c[f+8>>2]=c[Q>>2];c[Q>>2]=0;c[P>>2]=0;c[oa>>2]=0;c[$>>2]=(c[$>>2]|0)+16}else{j=c[M>>2]|0;f=f-j|0;l=f>>4;k=l+1|0;if((f|0)<-16){qa=104;break d}f=h-j|0;if(f>>4>>>0<1073741823){f=f>>3;f=f>>>0<k>>>0?k:f}else f=2147483647;Qa(ta,f,l,R);l=c[S>>2]|0;c[l+12>>2]=c[O>>2];c[l>>2]=c[oa>>2];c[l+4>>2]=c[P>>2];c[l+8>>2]=c[Q>>2];c[Q>>2]=0;c[P>>2]=0;c[oa>>2]=0;c[S>>2]=l+16;Ra(M,ta);Sa(ta)}Ha(oa);Ja(pa);h=m}f:do if((qa|0)==39){qa=0;n=h+1|0;if((n|0)!=(d|0)?(a[n>>0]|0)==116:0)break;f=Rb(h,d,e)|0;if((f|0)==(h|0)|(f|0)==(d|0))break c;Cb(pa,(c[aa>>2]|0)+-24|0);k=c[aa>>2]|0;h=k+-24|0;j=k;while(1){if((j|0)==(h|0))break;n=j+-24|0;c[aa>>2]=n;Ia(n);j=c[aa>>2]|0}j=k+-48|0;h=a[j>>0]|0;if(!(h&1))h=(h&255)>>>1;else h=c[k+-44>>2]|0;if(!h)Xb(j,pa);else{xb(ba,891,pa);h=a[ba>>0]|0;n=(h&1)==0;Za(j,n?o:c[_>>2]|0,n?(h&255)>>>1:c[p>>2]|0)|0;Ja(ba);h=(c[aa>>2]|0)+-24|0;c[ha>>2]=c[L>>2];Pb(ca,h,ha);h=c[$>>2]|0;n=c[N>>2]|0;j=n;if(h>>>0<n>>>0){c[h+12>>2]=c[q>>2];c[h>>2]=c[ca>>2];c[h+4>>2]=c[r>>2];c[h+8>>2]=c[s>>2];c[s>>2]=0;c[r>>2]=0;c[ca>>2]=0;c[$>>2]=(c[$>>2]|0)+16}else{k=c[M>>2]|0;n=h-k|0;m=n>>4;l=m+1|0;if((n|0)<-16){qa=52;break d}h=j-k|0;if(h>>4>>>0<1073741823){h=h>>3;h=h>>>0<l>>>0?l:h}else h=2147483647;Qa(ta,h,m,R);n=c[t>>2]|0;c[n+12>>2]=c[q>>2];c[n>>2]=c[ca>>2];c[n+4>>2]=c[r>>2];c[n+8>>2]=c[s>>2];c[s>>2]=0;c[r>>2]=0;c[ca>>2]=0;c[t>>2]=n+16;Ra(M,ta);Sa(ta)}Ha(ca)}Ja(pa);n=1;continue d}else if((qa|0)==59){qa=0;f=Eb(h,d,e)|0;if((f|0)==(h|0)|(f|0)==(d|0))break c;Cb(pa,(c[aa>>2]|0)+-24|0);k=c[aa>>2]|0;h=k+-24|0;j=k;while(1){if((j|0)==(h|0))break;n=j+-24|0;c[aa>>2]=n;Ia(n);j=c[aa>>2]|0}j=k+-48|0;h=a[j>>0]|0;if(!(h&1))h=(h&255)>>>1;else h=c[k+-44>>2]|0;if(!h)Xb(j,pa);else{xb(ia,891,pa);n=a[ia>>0]|0;m=(n&1)==0;Za(j,m?z:c[y>>2]|0,m?(n&255)>>>1:c[A>>2]|0)|0;Ja(ia)}h=(c[aa>>2]|0)+-24|0;c[ka>>2]=c[L>>2];Pb(ja,h,ka);h=c[$>>2]|0;n=c[N>>2]|0;j=n;if(h>>>0<n>>>0){c[h+12>>2]=c[u>>2];c[h>>2]=c[ja>>2];c[h+4>>2]=c[v>>2];c[h+8>>2]=c[w>>2];c[w>>2]=0;c[v>>2]=0;c[ja>>2]=0;c[$>>2]=(c[$>>2]|0)+16}else{k=c[M>>2]|0;n=h-k|0;m=n>>4;l=m+1|0;if((n|0)<-16){qa=72;break d}h=j-k|0;if(h>>4>>>0<1073741823){h=h>>3;h=h>>>0<l>>>0?l:h}else h=2147483647;Qa(ta,h,m,R);n=c[x>>2]|0;c[n+12>>2]=c[u>>2];c[n>>2]=c[ja>>2];c[n+4>>2]=c[v>>2];c[n+8>>2]=c[w>>2];c[w>>2]=0;c[v>>2]=0;c[ja>>2]=0;c[x>>2]=n+16;Ra(M,ta);Sa(ta)}Ha(ja);Ja(pa);n=1;continue d}else if((qa|0)==77){qa=0;f=h+1|0;if((f|0)!=(d|0))switch(a[f>>0]|0){case 84:case 116:break;default:break f}f=Qb(h,d,e)|0;if((f|0)==(h|0)|(f|0)==(d|0))break c;Cb(pa,(c[aa>>2]|0)+-24|0);k=c[aa>>2]|0;h=k+-24|0;j=k;while(1){if((j|0)==(h|0))break;n=j+-24|0;c[aa>>2]=n;Ia(n);j=c[aa>>2]|0}j=k+-48|0;h=a[j>>0]|0;if(!(h&1))h=(h&255)>>>1;else h=c[k+-44>>2]|0;if(!h)Xb(j,pa);else{xb(la,891,pa);n=a[la>>0]|0;m=(n&1)==0;Za(j,m?G:c[F>>2]|0,m?(n&255)>>>1:c[H>>2]|0)|0;Ja(la)}h=(c[aa>>2]|0)+-24|0;c[na>>2]=c[L>>2];Pb(ma,h,na);h=c[$>>2]|0;n=c[N>>2]|0;j=n;if(h>>>0<n>>>0){c[h+12>>2]=c[B>>2];c[h>>2]=c[ma>>2];c[h+4>>2]=c[C>>2];c[h+8>>2]=c[D>>2];c[D>>2]=0;c[C>>2]=0;c[ma>>2]=0;c[$>>2]=(c[$>>2]|0)+16}else{k=c[M>>2]|0;n=h-k|0;m=n>>4;l=m+1|0;if((n|0)<-16){qa=92;break d}h=j-k|0;if(h>>4>>>0<1073741823){h=h>>3;h=h>>>0<l>>>0?l:h}else h=2147483647;Qa(ta,h,m,R);n=c[E>>2]|0;c[n+12>>2]=c[B>>2];c[n>>2]=c[ma>>2];c[n+4>>2]=c[C>>2];c[n+8>>2]=c[D>>2];c[D>>2]=0;c[C>>2]=0;c[ma>>2]=0;c[E>>2]=n+16;Ra(M,ta);Sa(ta)}Ha(ma);Ja(pa);n=1;continue d}while(0);f=Sb(h,d,e)|0;if((f|0)==(h|0)|(f|0)==(d|0))break c;Cb(pa,(c[aa>>2]|0)+-24|0);k=c[aa>>2]|0;h=k+-24|0;j=k;while(1){if((j|0)==(h|0))break;n=j+-24|0;c[aa>>2]=n;Ia(n);j=c[aa>>2]|0}j=k+-48|0;h=a[j>>0]|0;if(!(h&1))h=(h&255)>>>1;else h=c[k+-44>>2]|0;if(!h)Xb(j,pa);else{xb(ea,891,pa);n=a[ea>>0]|0;m=(n&1)==0;Za(j,m?Y:c[X>>2]|0,m?(n&255)>>>1:c[Z>>2]|0)|0;Ja(ea)}h=(c[aa>>2]|0)+-24|0;c[ga>>2]=c[L>>2];Pb(fa,h,ga);h=c[$>>2]|0;n=c[N>>2]|0;j=n;if(h>>>0<n>>>0){c[h+12>>2]=c[T>>2];c[h>>2]=c[fa>>2];c[h+4>>2]=c[U>>2];c[h+8>>2]=c[V>>2];c[V>>2]=0;c[U>>2]=0;c[fa>>2]=0;c[$>>2]=(c[$>>2]|0)+16}else{k=c[M>>2]|0;n=h-k|0;m=n>>4;l=m+1|0;if((n|0)<-16){qa=123;break}h=j-k|0;if(h>>4>>>0<1073741823){h=h>>3;h=h>>>0<l>>>0?l:h}else h=2147483647;Qa(ta,h,m,R);n=c[W>>2]|0;c[n+12>>2]=c[T>>2];c[n>>2]=c[fa>>2];c[n+4>>2]=c[U>>2];c[n+8>>2]=c[V>>2];c[V>>2]=0;c[U>>2]=0;c[fa>>2]=0;c[W>>2]=n+16;Ra(M,ta);Sa(ta)}Ha(fa);Ja(pa);n=1}if((qa|0)==52)Pa();else if((qa|0)==72)Pa();else if((qa|0)==92)Pa();else if((qa|0)==104)Pa();else if((qa|0)==123)Pa();else if((qa|0)==129){f=h+1|0;c[e+48>>2]=c[ra>>2];g:do if(n?(g=c[$>>2]|0,(c[e+16>>2]|0)!=(g|0)):0){h=g+-16|0;while(1){if((g|0)==(h|0))break g;ta=g+-16|0;c[$>>2]=ta;Ha(ta);g=c[$>>2]|0}}while(0);break b}}while(0);f=sa}else f=sa;else f=d;while(0);f=(f|0)==(sa|0)?b:f;break a}case 90:{h:do if(((f<<24>>24==90&(sa|0)!=(d|0)?(ra=sa+1|0,h=Ma(ra,d,e)|0,!((h|0)==(ra|0)|(h|0)==(d|0))):0)?(a[h>>0]|0)==69:0)?(j=h+1|0,(j|0)!=(d|0)):0)switch(a[j>>0]|0){case 115:{f=Yb(h+2|0,d)|0;g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0))break h;Ya(g+-24|0,2084)|0;break h}case 100:{f=h+2|0;if((f|0)==(d|0)){f=sa;break h}f=tb(f,d)|0;if((f|0)==(d|0)){f=sa;break h}if((a[f>>0]|0)!=95){f=sa;break h}ra=f+1|0;f=Wb(ra,d,e)|0;k=e+4|0;if((f|0)==(ra|0)){g=c[k>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0)){f=sa;break h}ta=g+-24|0;c[k>>2]=ta;Ia(ta);g=c[k>>2]|0}}g=c[k>>2]|0;if(((g-(c[e>>2]|0)|0)/24|0)>>>0<2){f=sa;break h}Cb(ta,g+-24|0);g=c[k>>2]|0;h=g+-24|0;j=g;while(1){if((j|0)==(h|0))break;e=j+-24|0;c[k>>2]=e;Ia(e);j=c[k>>2]|0}Ya(g+-48|0,891)|0;e=a[ta>>0]|0;d=(e&1)==0;Za((c[k>>2]|0)+-24|0,d?ta+1|0:c[ta+8>>2]|0,d?(e&255)>>>1:c[ta+4>>2]|0)|0;Ja(ta);break h}default:{f=Wb(j,d,e)|0;if((f|0)==(j|0)){f=e+4|0;h=c[f>>2]|0;g=h+-24|0;while(1){if((h|0)==(g|0)){f=sa;break h}ta=h+-24|0;c[f>>2]=ta;Ia(ta);h=c[f>>2]|0}}f=Yb(f,d)|0;k=e+4|0;g=c[k>>2]|0;if(((g-(c[e>>2]|0)|0)/24|0)>>>0<2)break h;Cb(ta,g+-24|0);g=c[k>>2]|0;h=g+-24|0;j=g;while(1){if((j|0)==(h|0))break;e=j+-24|0;c[k>>2]=e;Ia(e);j=c[k>>2]|0}Ya(g+-48|0,891)|0;e=a[ta>>0]|0;d=(e&1)==0;Za((c[k>>2]|0)+-24|0,d?ta+1|0:c[ta+8>>2]|0,d?(e&255)>>>1:c[ta+4>>2]|0)|0;Ja(ta);break h}}else f=sa;while(0);f=(f|0)==(sa|0)?b:f;break a}default:{do if((m-sa|0)>1){if(f<<24>>24==83?(a[sa+1>>0]|0)==116:0){f=sa+2|0;if((f|0)==(d|0)){h=0;g=d}else{h=0;g=(a[f>>0]|0)==76?sa+3|0:f}}else{h=1;g=sa}f=Sb(g,d,e)|0;g=(f|0)==(g|0);if(h|g)f=g?sa:f;else{g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0))break;Ta(g+-24|0,0,1827)|0}if((f|0)!=(sa|0)){if((f|0)==(d|0)){f=d;break a}if((a[f>>0]|0)!=73)break a;m=e+4|0;g=c[m>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break a}l=e+16|0;c[k>>2]=c[e+12>>2];Pb(n,g+-24|0,k);g=e+20|0;h=c[g>>2]|0;sa=c[e+24>>2]|0;j=sa;if(h>>>0<sa>>>0){c[h+12>>2]=c[n+12>>2];c[h>>2]=c[n>>2];sa=n+4|0;c[h+4>>2]=c[sa>>2];ra=n+8|0;c[h+8>>2]=c[ra>>2];c[ra>>2]=0;c[sa>>2]=0;c[n>>2]=0;c[g>>2]=(c[g>>2]|0)+16}else{g=c[l>>2]|0;sa=h-g|0;k=sa>>4;h=k+1|0;if((sa|0)<-16)Pa();g=j-g|0;if(g>>4>>>0<1073741823){g=g>>3;g=g>>>0<h>>>0?h:g}else g=2147483647;Qa(ta,g,k,e+28|0);sa=ta+8|0;ra=c[sa>>2]|0;c[ra+12>>2]=c[n+12>>2];c[ra>>2]=c[n>>2];qa=n+4|0;c[ra+4>>2]=c[qa>>2];pa=n+8|0;c[ra+8>>2]=c[pa>>2];c[pa>>2]=0;c[qa>>2]=0;c[n>>2]=0;c[sa>>2]=ra+16;Ra(l,ta);Sa(ta)}Ha(n);j=Mb(f,d,e)|0;if((j|0)==(f|0)){f=b;break a}f=c[m>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2){f=b;break a}Cb(ta,f+-24|0);f=c[m>>2]|0;g=f+-24|0;h=f;while(1){if((h|0)==(g|0))break;b=h+-24|0;c[m>>2]=b;Ia(b);h=c[m>>2]|0}b=a[ta>>0]|0;sa=(b&1)==0;Za(f+-48|0,sa?ta+1|0:c[ta+8>>2]|0,sa?(b&255)>>>1:c[ta+4>>2]|0)|0;Ja(ta);f=j;break a}}while(0);g=Rb(sa,d,e)|0;if((g|0)==(sa|0)|(g|0)==(d|0)){f=b;break a}if((a[g>>0]|0)!=73){f=b;break a}f=Mb(g,d,e)|0;if((f|0)==(g|0)){f=b;break a}k=e+4|0;g=c[k>>2]|0;if(((g-(c[e>>2]|0)|0)/24|0)>>>0<2){f=b;break a}Cb(ta,g+-24|0);g=c[k>>2]|0;h=g+-24|0;j=g;while(1){if((j|0)==(h|0))break;b=j+-24|0;c[k>>2]=b;Ia(b);j=c[k>>2]|0}b=a[ta>>0]|0;sa=(b&1)==0;Za(g+-48|0,sa?ta+1|0:c[ta+8>>2]|0,sa?(b&255)>>>1:c[ta+4>>2]|0)|0;Ja(ta);break a}}}else f=b;while(0);i=ua;return f|0}function Xb(b,d){b=b|0;d=d|0;var e=0,f=0;if((b|0)!=(d|0)){e=a[d>>0]|0;f=(e&1)==0;Ub(b,f?d+1|0:c[d+8>>2]|0,f?(e&255)>>>1:c[d+4>>2]|0)}return}function Yb(b,c){b=b|0;c=c|0;var d=0,e=0;a:do if((b|0)!=(c|0)){d=a[b>>0]|0;if(d<<24>>24!=95){if(((d<<24>>24)+-48|0)>>>0>=10)break;while(1){b=b+1|0;if((b|0)==(c|0)){b=c;break a}if(((a[b>>0]|0)+-48|0)>>>0>=10)break a}}d=b+1|0;if((d|0)!=(c|0)){d=a[d>>0]|0;if(((d<<24>>24)+-48|0)>>>0<10){b=b+2|0;break}if(d<<24>>24==95){e=b+2|0;while(1){if((e|0)==(c|0))break a;d=a[e>>0]|0;if(((d<<24>>24)+-48|0)>>>0>=10)break;e=e+1|0}return (d<<24>>24==95?e+1|0:b)|0}}}while(0);return b|0}function Zb(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;a:do if((b|0)!=(c|0)){switch(a[b>>0]|0){case 104:{e=b+1|0;d=tb(e,c)|0;if((d|0)==(e|0)|(d|0)==(c|0))break a;return ((a[d>>0]|0)==95?d+1|0:b)|0}case 118:break;default:break a}f=b+1|0;d=tb(f,c)|0;if((!((d|0)==(f|0)|(d|0)==(c|0))?(a[d>>0]|0)==95:0)?(f=d+1|0,e=tb(f,c)|0,!((e|0)==(f|0)|(e|0)==(c|0))):0)b=(a[e>>0]|0)==95?e+1|0:b}while(0);return b|0}function _b(a){a=a|0;$b(a+32|0);Ga(a+16|0);Ha(a);return}function $b(a){a=a|0;var b=0,d=0,e=0;b=c[a>>2]|0;if(b){d=a+4|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-16|0;c[d>>2]=e;Ga(e)}e=c[a>>2]|0;Ka(c[a+12>>2]|0,e,(c[a+8>>2]|0)-e|0)}return}function ac(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if(!d)d=0;else{while(1){e=a[b>>0]|0;f=a[c>>0]|0;if(e<<24>>24!=f<<24>>24)break;d=d+-1|0;if(!d){d=0;break a}else{b=b+1|0;c=c+1|0}}d=(e&255)-(f&255)|0}while(0);return d|0}function bc(b){b=b|0;var d=0,e=0,f=0;f=b;a:do if(!(f&3))e=4;else{d=b;b=f;while(1){if(!(a[d>>0]|0))break a;d=d+1|0;b=d;if(!(b&3)){b=d;e=4;break}}}while(0);if((e|0)==4){while(1){d=c[b>>2]|0;if(!((d&-2139062144^-2139062144)&d+-16843009))b=b+4|0;else break}if((d&255)<<24>>24)do b=b+1|0;while((a[b>>0]|0)!=0)}return b-f|0}function cc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=d&255;f=(e|0)!=0;a:do if(f&(b&3|0)!=0){g=d&255;while(1){if((a[b>>0]|0)==g<<24>>24)break a;b=b+1|0;e=e+-1|0;f=(e|0)!=0;if(!(f&(b&3|0)!=0)){i=5;break}}}else i=5;while(0);b:do if((i|0)==5)if(f){g=d&255;if((a[b>>0]|0)!=g<<24>>24){f=_(h,16843009)|0;c:do if(e>>>0>3)while(1){h=c[b>>2]^f;if((h&-2139062144^-2139062144)&h+-16843009)break;b=b+4|0;e=e+-4|0;if(e>>>0<=3){i=11;break c}}else i=11;while(0);if((i|0)==11)if(!e){e=0;break}while(1){if((a[b>>0]|0)==g<<24>>24)break b;b=b+1|0;e=e+-1|0;if(!e){e=0;break}}}}else e=0;while(0);return ((e|0)!=0?b:0)|0}function dc(b){b=b|0;var c=0,e=0;c=0;while(1){if((d[2370+c>>0]|0)==(b|0)){e=2;break}c=c+1|0;if((c|0)==87){c=87;b=2458;e=5;break}}if((e|0)==2)if(!c)c=2458;else{b=2458;e=5}if((e|0)==5)while(1){do{e=b;b=b+1|0}while((a[e>>0]|0)!=0);c=c+-1|0;if(!c){c=b;break}else e=5}return c|0}function ec(){var a=0;if(!(c[1200]|0))a=4844;else a=c[(fa()|0)+60>>2]|0;return a|0}function fc(a){a=a|0;if((a+-48|0)>>>0<10)a=1;else a=((a|32)+-97|0)>>>0<6;return a&1|0}function gc(a){a=a|0;return (a+-65|0)>>>0<26|0}function hc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+128|0;g=n+112|0;m=n;h=m;j=8;k=h+112|0;do{c[h>>2]=c[j>>2];h=h+4|0;j=j+4|0}while((h|0)<(k|0));if((d+-1|0)>>>0>2147483646)if(!d){d=1;l=4}else{c[(ec()|0)>>2]=75;d=-1}else{g=b;l=4}if((l|0)==4){l=-2-g|0;l=d>>>0>l>>>0?l:d;c[m+48>>2]=l;b=m+20|0;c[b>>2]=g;c[m+44>>2]=g;d=g+l|0;g=m+16|0;c[g>>2]=d;c[m+28>>2]=d;d=lc(m,e,f)|0;if(l){e=c[b>>2]|0;a[e+(((e|0)==(c[g>>2]|0))<<31>>31)>>0]=0}}i=n;return d|0}function ic(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(kc(e)|0)){g=c[f>>2]|0;h=5}else f=0;else h=5;a:do if((h|0)==5){i=e+20|0;f=c[i>>2]|0;h=f;if((g-f|0)>>>0<d>>>0){f=ra[c[e+36>>2]&1](e,b,d)|0;break}b:do if((a[e+75>>0]|0)>-1){f=d;while(1){if(!f){g=h;f=0;break b}g=f+-1|0;if((a[b+g>>0]|0)==10)break;else f=g}if((ra[c[e+36>>2]&1](e,b,f)|0)>>>0<f>>>0)break a;d=d-f|0;b=b+f|0;g=c[i>>2]|0}else{g=h;f=0}while(0);Fc(g|0,b|0,d|0)|0;c[i>>2]=(c[i>>2]|0)+d;f=f+d|0}while(0);return f|0}function jc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+16|0;g=f;c[g>>2]=e;e=hc(a,b,d,g)|0;i=f;return e|0}function kc(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=c[b>>2]|0;if(!(d&8)){c[b+8>>2]=0;c[b+4>>2]=0;d=c[b+44>>2]|0;c[b+28>>2]=d;c[b+20>>2]=d;c[b+16>>2]=d+(c[b+48>>2]|0);d=0}else{c[b>>2]=d|32;d=-1}return d|0}function lc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+224|0;n=r+120|0;q=r+80|0;p=r;o=r+136|0;f=q;g=f+40|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));c[n>>2]=c[e>>2];if((rc(0,d,n,p,q)|0)<0)e=-1;else{e=c[b>>2]|0;m=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;l=b+48|0;if(!(c[l>>2]|0)){f=b+44|0;g=c[f>>2]|0;c[f>>2]=o;h=b+28|0;c[h>>2]=o;j=b+20|0;c[j>>2]=o;c[l>>2]=80;k=b+16|0;c[k>>2]=o+80;e=rc(b,d,n,p,q)|0;if(g){ra[c[b+36>>2]&1](b,0,0)|0;e=(c[j>>2]|0)==0?-1:e;c[f>>2]=g;c[l>>2]=0;c[k>>2]=0;c[h>>2]=0;c[j>>2]=0}}else e=rc(b,d,n,p,q)|0;q=c[b>>2]|0;c[b>>2]=q|m;e=(q&32|0)==0?e:-1}i=r;return e|0}function mc(b,d){b=b|0;d=d|0;do if(b){if(d>>>0<128){a[b>>0]=d;b=1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;b=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;b=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;b=4;break}else{c[(ec()|0)>>2]=84;b=-1;break}}else b=1;while(0);return b|0}function nc(a,b){a=a|0;b=b|0;if(!a)a=0;else a=mc(a,b)|0;return a|0}function oc(a,b){a=+a;b=b|0;return +(+pc(a,b))}function pc(a,b){a=+a;b=b|0;var d=0,e=0,f=0;h[k>>3]=a;d=c[k>>2]|0;e=c[k+4>>2]|0;f=Dc(d|0,e|0,52)|0;f=f&2047;switch(f|0){case 0:{if(a!=0.0){a=+pc(a*18446744073709551616.0,b);d=(c[b>>2]|0)+-64|0}else d=0;c[b>>2]=d;break}case 2047:break;default:{c[b>>2]=f+-1022;c[k>>2]=d;c[k+4>>2]=e&-2146435073|1071644672;a=+h[k>>3]}}return +a}function qc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+16>>2]|0)-f|0;a=a>>>0>d>>>0?d:a;Fc(f|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return d|0}function rc(e,f,g,j,l){e=e|0;f=f|0;g=g|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0;ia=i;i=i+624|0;da=ia+24|0;fa=ia+16|0;ea=ia+588|0;aa=ia+576|0;ca=ia;W=ia+536|0;ha=ia+8|0;ga=ia+528|0;M=(e|0)!=0;N=W+40|0;V=N;W=W+39|0;X=ha+4|0;Y=ea;Z=0-Y|0;$=aa+12|0;aa=aa+11|0;ba=$;O=ba-Y|0;P=-2-Y|0;Q=ba+2|0;R=da+288|0;S=ea+9|0;T=S;U=ea+8|0;m=0;n=0;r=0;x=f;a:while(1){do if((m|0)>-1)if((n|0)>(2147483647-m|0)){c[(ec()|0)>>2]=75;m=-1;break}else{m=n+m|0;break}while(0);f=a[x>>0]|0;if(!(f<<24>>24)){L=244;break}else n=x;b:while(1){switch(f<<24>>24){case 37:{f=n;L=9;break b}case 0:{f=n;break b}default:{}}K=n+1|0;f=a[K>>0]|0;n=K}c:do if((L|0)==9)while(1){L=0;if((a[f+1>>0]|0)!=37)break c;n=n+1|0;f=f+2|0;if((a[f>>0]|0)==37)L=9;else break}while(0);v=n-x|0;if(M?(c[e>>2]&32|0)==0:0)ic(x,v,e)|0;if((n|0)!=(x|0)){n=v;x=f;continue}q=f+1|0;n=a[q>>0]|0;o=(n<<24>>24)+-48|0;if(o>>>0<10){K=(a[f+2>>0]|0)==36;q=K?f+3|0:q;n=a[q>>0]|0;t=K?o:-1;r=K?1:r}else t=-1;f=n<<24>>24;d:do if((f&-32|0)==32){o=0;do{if(!(1<<f+-32&75913))break d;o=1<<(n<<24>>24)+-32|o;q=q+1|0;n=a[q>>0]|0;f=n<<24>>24}while((f&-32|0)==32)}else o=0;while(0);do if(n<<24>>24==42){n=q+1|0;f=(a[n>>0]|0)+-48|0;if(f>>>0<10?(a[q+2>>0]|0)==36:0){c[l+(f<<2)>>2]=10;f=1;q=q+3|0;n=c[j+((a[n>>0]|0)+-48<<3)>>2]|0}else{if(r){m=-1;break a}if(!M){u=o;K=0;q=n;J=0;break}f=(c[g>>2]|0)+(4-1)&~(4-1);K=c[f>>2]|0;c[g>>2]=f+4;f=0;q=n;n=K}if((n|0)<0){u=o|8192;K=f;J=0-n|0}else{u=o;K=f;J=n}}else{f=(n<<24>>24)+-48|0;if(f>>>0<10){n=0;do{n=(n*10|0)+f|0;q=q+1|0;f=(a[q>>0]|0)+-48|0}while(f>>>0<10);if((n|0)<0){m=-1;break a}else{u=o;K=r;J=n}}else{u=o;K=r;J=0}}while(0);e:do if((a[q>>0]|0)==46){f=q+1|0;n=a[f>>0]|0;if(n<<24>>24!=42){o=(n<<24>>24)+-48|0;if(o>>>0<10)n=0;else{r=0;break}while(1){n=(n*10|0)+o|0;f=f+1|0;o=(a[f>>0]|0)+-48|0;if(o>>>0>=10){r=n;break e}}}f=q+2|0;n=(a[f>>0]|0)+-48|0;if(n>>>0<10?(a[q+3>>0]|0)==36:0){c[l+(n<<2)>>2]=10;r=c[j+((a[f>>0]|0)+-48<<3)>>2]|0;f=q+4|0;break}if(K){m=-1;break a}if(M){I=(c[g>>2]|0)+(4-1)&~(4-1);r=c[I>>2]|0;c[g>>2]=I+4}else r=0}else{r=-1;f=q}while(0);s=0;while(1){n=(a[f>>0]|0)+-65|0;if(n>>>0>57){m=-1;break a}I=f+1|0;n=a[4266+(s*58|0)+n>>0]|0;o=n&255;if((o+-1|0)>>>0<8){f=I;s=o}else break}if(!(n<<24>>24)){m=-1;break}q=(t|0)>-1;do if(n<<24>>24==19)if(q){m=-1;break a}else L=52;else{if(q){c[l+(t<<2)>>2]=o;G=j+(t<<3)|0;H=c[G+4>>2]|0;L=ca;c[L>>2]=c[G>>2];c[L+4>>2]=H;L=52;break}if(!M){m=0;break a}sc(ca,o,g)}while(0);if((L|0)==52?(L=0,!M):0){n=v;r=K;x=I;continue}t=a[f>>0]|0;t=(s|0)!=0&(t&15|0)==3?t&-33:t;o=u&-65537;H=(u&8192|0)==0?u:o;f:do switch(t|0){case 110:switch(s|0){case 0:{c[c[ca>>2]>>2]=m;n=v;r=K;x=I;continue a}case 1:{c[c[ca>>2]>>2]=m;n=v;r=K;x=I;continue a}case 2:{n=c[ca>>2]|0;c[n>>2]=m;c[n+4>>2]=((m|0)<0)<<31>>31;n=v;r=K;x=I;continue a}case 3:{b[c[ca>>2]>>1]=m;n=v;r=K;x=I;continue a}case 4:{a[c[ca>>2]>>0]=m;n=v;r=K;x=I;continue a}case 6:{c[c[ca>>2]>>2]=m;n=v;r=K;x=I;continue a}case 7:{n=c[ca>>2]|0;c[n>>2]=m;c[n+4>>2]=((m|0)<0)<<31>>31;n=v;r=K;x=I;continue a}default:{n=v;r=K;x=I;continue a}}case 112:{s=H|8;r=r>>>0>8?r:8;t=120;L=64;break}case 88:case 120:{s=H;L=64;break}case 111:{o=ca;n=c[o>>2]|0;o=c[o+4>>2]|0;if((n|0)==0&(o|0)==0)f=N;else{f=N;do{f=f+-1|0;a[f>>0]=n&7|48;n=Dc(n|0,o|0,3)|0;o=C}while(!((n|0)==0&(o|0)==0))}if(!(H&8)){n=H;s=0;q=4746;L=77}else{s=V-f|0;n=H;r=(r|0)>(s|0)?r:s+1|0;s=0;q=4746;L=77}break}case 105:case 100:{n=ca;f=c[n>>2]|0;n=c[n+4>>2]|0;if((n|0)<0){f=Cc(0,0,f|0,n|0)|0;n=C;o=ca;c[o>>2]=f;c[o+4>>2]=n;o=1;q=4746;L=76;break f}if(!(H&2048)){q=H&1;o=q;q=(q|0)==0?4746:4748;L=76}else{o=1;q=4747;L=76}break}case 117:{n=ca;f=c[n>>2]|0;n=c[n+4>>2]|0;o=0;q=4746;L=76;break}case 99:{a[W>>0]=c[ca>>2];f=W;t=1;v=0;u=4746;n=N;break}case 109:{n=dc(c[(ec()|0)>>2]|0)|0;L=82;break}case 115:{n=c[ca>>2]|0;n=(n|0)!=0?n:4756;L=82;break}case 67:{c[ha>>2]=c[ca>>2];c[X>>2]=0;c[ca>>2]=ha;f=ha;r=-1;L=86;break}case 83:{f=c[ca>>2]|0;if(!r){uc(e,32,J,0,H);f=0;L=97}else L=86;break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{p=+h[ca>>3];c[fa>>2]=0;h[k>>3]=p;if((c[k+4>>2]|0)>=0)if(!(H&2048)){G=H&1;F=G;G=(G|0)==0?4764:4769}else{F=1;G=4766}else{p=-p;F=1;G=4763}h[k>>3]=p;E=c[k+4>>2]&2146435072;do if(E>>>0<2146435072|(E|0)==2146435072&0<0){w=+oc(p,fa)*2.0;n=w!=0.0;if(n)c[fa>>2]=(c[fa>>2]|0)+-1;B=t|32;if((B|0)==97){u=t&32;x=(u|0)==0?G:G+9|0;v=F|2;f=12-r|0;do if(!(r>>>0>11|(f|0)==0)){p=8.0;do{f=f+-1|0;p=p*16.0}while((f|0)!=0);if((a[x>>0]|0)==45){p=-(p+(-w-p));break}else{p=w+p-p;break}}else p=w;while(0);n=c[fa>>2]|0;f=(n|0)<0?0-n|0:n;f=tc(f,((f|0)<0)<<31>>31,$)|0;if((f|0)==($|0)){a[aa>>0]=48;f=aa}a[f+-1>>0]=(n>>31&2)+43;s=f+-2|0;a[s>>0]=t+15;q=(r|0)<1;o=(H&8|0)==0;n=ea;while(1){G=~~p;f=n+1|0;a[n>>0]=d[4730+G>>0]|u;p=(p-+(G|0))*16.0;do if((f-Y|0)==1){if(o&(q&p==0.0))break;a[f>>0]=46;f=n+2|0}while(0);if(!(p!=0.0))break;else n=f}o=s;r=(r|0)!=0&(P+f|0)<(r|0)?Q+r-o|0:O-o+f|0;q=r+v|0;uc(e,32,J,q,H);if(!(c[e>>2]&32))ic(x,v,e)|0;uc(e,48,J,q,H^65536);n=f-Y|0;if(!(c[e>>2]&32))ic(ea,n,e)|0;f=ba-o|0;uc(e,48,r-(n+f)|0,0,0);if(!(c[e>>2]&32))ic(s,f,e)|0;uc(e,32,J,q,H^8192);f=(q|0)<(J|0)?J:q;break}f=(r|0)<0?6:r;if(n){n=(c[fa>>2]|0)+-28|0;c[fa>>2]=n;p=w*268435456.0}else{p=w;n=c[fa>>2]|0}E=(n|0)<0?da:R;D=E;o=E;do{A=~~p>>>0;c[o>>2]=A;o=o+4|0;p=(p-+(A>>>0))*1.0e9}while(p!=0.0);n=c[fa>>2]|0;if((n|0)>0){q=E;r=o;while(1){s=(n|0)>29?29:n;n=r+-4|0;do if(n>>>0>=q>>>0){o=0;do{z=Ec(c[n>>2]|0,0,s|0)|0;z=Gc(z|0,C|0,o|0,0)|0;A=C;y=Pc(z|0,A|0,1e9,0)|0;c[n>>2]=y;o=Oc(z|0,A|0,1e9,0)|0;n=n+-4|0}while(n>>>0>=q>>>0);if(!o)break;q=q+-4|0;c[q>>2]=o}while(0);o=r;while(1){if(o>>>0<=q>>>0)break;n=o+-4|0;if(!(c[n>>2]|0))o=n;else break}n=(c[fa>>2]|0)-s|0;c[fa>>2]=n;if((n|0)>0)r=o;else break}}else q=E;if((n|0)<0){x=((f+25|0)/9|0)+1|0;y=(B|0)==102;do{v=0-n|0;v=(v|0)>9?9:v;do if(q>>>0<o>>>0){n=(1<<v)+-1|0;r=1e9>>>v;u=0;s=q;do{A=c[s>>2]|0;c[s>>2]=(A>>>v)+u;u=_(A&n,r)|0;s=s+4|0}while(s>>>0<o>>>0);n=(c[q>>2]|0)==0?q+4|0:q;if(!u){q=n;n=o;break}c[o>>2]=u;q=n;n=o+4|0}else{q=(c[q>>2]|0)==0?q+4|0:q;n=o}while(0);o=y?E:q;o=(n-o>>2|0)>(x|0)?o+(x<<2)|0:n;n=(c[fa>>2]|0)+v|0;c[fa>>2]=n}while((n|0)<0);x=q;y=o}else{x=q;y=o}do if(x>>>0<y>>>0){n=(D-x>>2)*9|0;q=c[x>>2]|0;if(q>>>0<10)break;else o=10;do{o=o*10|0;n=n+1|0}while(q>>>0>=o>>>0)}else n=0;while(0);z=(B|0)==103;A=(f|0)!=0;o=f-((B|0)!=102?n:0)+((A&z)<<31>>31)|0;if((o|0)<(((y-D>>2)*9|0)+-9|0)){r=o+9216|0;o=E+4+(((r|0)/9|0)+-1024<<2)|0;r=((r|0)%9|0)+1|0;if((r|0)<9){q=10;do{q=q*10|0;r=r+1|0}while((r|0)!=9)}else q=10;u=c[o>>2]|0;v=(u>>>0)%(q>>>0)|0;r=(o+4|0)==(y|0);do if(r&(v|0)==0)q=x;else{w=(((u>>>0)/(q>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;s=(q|0)/2|0;if(v>>>0<s>>>0)p=.5;else p=r&(v|0)==(s|0)?1.0:1.5;do if(F){if((a[G>>0]|0)!=45)break;w=-w;p=-p}while(0);r=u-v|0;c[o>>2]=r;if(!(w+p!=w)){q=x;break}B=r+q|0;c[o>>2]=B;if(B>>>0>999999999){n=x;while(1){q=o+-4|0;c[o>>2]=0;if(q>>>0<n>>>0){n=n+-4|0;c[n>>2]=0}B=(c[q>>2]|0)+1|0;c[q>>2]=B;if(B>>>0>999999999)o=q;else{s=n;o=q;break}}}else s=x;n=(D-s>>2)*9|0;r=c[s>>2]|0;if(r>>>0<10){q=s;break}else q=10;do{q=q*10|0;n=n+1|0}while(r>>>0>=q>>>0);q=s}while(0);o=o+4|0;x=q;o=y>>>0>o>>>0?o:y}else o=y;v=0-n|0;B=o;while(1){if(B>>>0<=x>>>0){y=0;break}o=B+-4|0;if(!(c[o>>2]|0))B=o;else{y=1;break}}do if(z){f=(A&1^1)+f|0;if((f|0)>(n|0)&(n|0)>-5){t=t+-1|0;f=f+-1-n|0}else{t=t+-2|0;f=f+-1|0}o=H&8;if(o)break;do if(y){o=c[B+-4>>2]|0;if(!o){q=9;break}if(!((o>>>0)%10|0)){r=10;q=0}else{q=0;break}do{r=r*10|0;q=q+1|0}while(((o>>>0)%(r>>>0)|0|0)==0)}else q=9;while(0);o=((B-D>>2)*9|0)+-9|0;if((t|32|0)==102){o=o-q|0;o=(o|0)<0?0:o;f=(f|0)<(o|0)?f:o;o=0;break}else{o=o+n-q|0;o=(o|0)<0?0:o;f=(f|0)<(o|0)?f:o;o=0;break}}else o=H&8;while(0);u=f|o;r=(u|0)!=0&1;s=(t|32|0)==102;if(s){n=(n|0)>0?n:0;t=0}else{q=(n|0)<0?v:n;q=tc(q,((q|0)<0)<<31>>31,$)|0;if((ba-q|0)<2)do{q=q+-1|0;a[q>>0]=48}while((ba-q|0)<2);a[q+-1>>0]=(n>>31&2)+43;D=q+-2|0;a[D>>0]=t;n=ba-D|0;t=D}v=F+1+f+r+n|0;uc(e,32,J,v,H);if(!(c[e>>2]&32))ic(G,F,e)|0;uc(e,48,J,v,H^65536);do if(s){q=x>>>0>E>>>0?E:x;o=q;do{n=tc(c[o>>2]|0,0,S)|0;do if((o|0)==(q|0)){if((n|0)!=(S|0))break;a[U>>0]=48;n=U}else{if(n>>>0<=ea>>>0)break;Bc(ea|0,48,n-Y|0)|0;do n=n+-1|0;while(n>>>0>ea>>>0)}while(0);if(!(c[e>>2]&32))ic(n,T-n|0,e)|0;o=o+4|0}while(o>>>0<=E>>>0);do if(u){if(c[e>>2]&32)break;ic(4798,1,e)|0}while(0);if((f|0)>0&o>>>0<B>>>0)while(1){n=tc(c[o>>2]|0,0,S)|0;if(n>>>0>ea>>>0){Bc(ea|0,48,n-Y|0)|0;do n=n+-1|0;while(n>>>0>ea>>>0)}if(!(c[e>>2]&32))ic(n,(f|0)>9?9:f,e)|0;o=o+4|0;n=f+-9|0;if(!((f|0)>9&o>>>0<B>>>0)){f=n;break}else f=n}uc(e,48,f+9|0,9,0)}else{s=y?B:x+4|0;if((f|0)>-1){r=(o|0)==0;q=x;do{n=tc(c[q>>2]|0,0,S)|0;if((n|0)==(S|0)){a[U>>0]=48;n=U}do if((q|0)==(x|0)){o=n+1|0;if(!(c[e>>2]&32))ic(n,1,e)|0;if(r&(f|0)<1){n=o;break}if(c[e>>2]&32){n=o;break}ic(4798,1,e)|0;n=o}else{if(n>>>0<=ea>>>0)break;Bc(ea|0,48,n+Z|0)|0;do n=n+-1|0;while(n>>>0>ea>>>0)}while(0);o=T-n|0;if(!(c[e>>2]&32))ic(n,(f|0)>(o|0)?o:f,e)|0;f=f-o|0;q=q+4|0}while(q>>>0<s>>>0&(f|0)>-1)}uc(e,48,f+18|0,18,0);if(c[e>>2]&32)break;ic(t,ba-t|0,e)|0}while(0);uc(e,32,J,v,H^8192);f=(v|0)<(J|0)?J:v}else{s=(t&32|0)!=0;r=p!=p|0.0!=0.0;n=r?0:F;q=n+3|0;uc(e,32,J,q,o);f=c[e>>2]|0;if(!(f&32)){ic(G,n,e)|0;f=c[e>>2]|0}if(!(f&32))ic(r?(s?4790:4794):s?4782:4786,3,e)|0;uc(e,32,J,q,H^8192);f=(q|0)<(J|0)?J:q}while(0);n=f;r=K;x=I;continue a}default:{f=x;o=H;t=r;v=0;u=4746;n=N}}while(0);g:do if((L|0)==64){o=ca;n=c[o>>2]|0;o=c[o+4>>2]|0;q=t&32;if(!((n|0)==0&(o|0)==0)){f=N;do{f=f+-1|0;a[f>>0]=d[4730+(n&15)>>0]|q;n=Dc(n|0,o|0,4)|0;o=C}while(!((n|0)==0&(o|0)==0));L=ca;if((s&8|0)==0|(c[L>>2]|0)==0&(c[L+4>>2]|0)==0){n=s;s=0;q=4746;L=77}else{n=s;s=2;q=4746+(t>>4)|0;L=77}}else{f=N;n=s;s=0;q=4746;L=77}}else if((L|0)==76){f=tc(f,n,N)|0;n=H;s=o;L=77}else if((L|0)==82){L=0;H=cc(n,0,r)|0;G=(H|0)==0;f=n;t=G?r:H-n|0;v=0;u=4746;n=G?n+r|0:H}else if((L|0)==86){L=0;o=0;n=0;s=f;while(1){q=c[s>>2]|0;if(!q)break;n=nc(ga,q)|0;if((n|0)<0|n>>>0>(r-o|0)>>>0)break;o=n+o|0;if(r>>>0>o>>>0)s=s+4|0;else break}if((n|0)<0){m=-1;break a}uc(e,32,J,o,H);if(!o){f=0;L=97}else{q=0;while(1){n=c[f>>2]|0;if(!n){f=o;L=97;break g}n=nc(ga,n)|0;q=n+q|0;if((q|0)>(o|0)){f=o;L=97;break g}if(!(c[e>>2]&32))ic(ga,n,e)|0;if(q>>>0>=o>>>0){f=o;L=97;break}else f=f+4|0}}}while(0);if((L|0)==97){L=0;uc(e,32,J,f,H^8192);n=(J|0)>(f|0)?J:f;r=K;x=I;continue}if((L|0)==77){L=0;o=(r|0)>-1?n&-65537:n;n=ca;n=(c[n>>2]|0)!=0|(c[n+4>>2]|0)!=0;if((r|0)!=0|n){t=(n&1^1)+(V-f)|0;t=(r|0)>(t|0)?r:t;v=s;u=q;n=N}else{f=N;t=0;v=s;u=q;n=N}}s=n-f|0;q=(t|0)<(s|0)?s:t;r=v+q|0;n=(J|0)<(r|0)?r:J;uc(e,32,n,r,o);if(!(c[e>>2]&32))ic(u,v,e)|0;uc(e,48,n,r,o^65536);uc(e,48,q,s,0);if(!(c[e>>2]&32))ic(f,s,e)|0;uc(e,32,n,r,o^8192);r=K;x=I}h:do if((L|0)==244)if(!e)if(!r)m=0;else{m=1;while(1){f=c[l+(m<<2)>>2]|0;if(!f){f=0;break}sc(j+(m<<3)|0,f,g);m=m+1|0;if((m|0)>=10){m=1;break h}}while(1){m=m+1|0;if(f){m=-1;break h}if((m|0)>=10){m=1;break h}f=c[l+(m<<2)>>2]|0}}while(0);i=ia;return m|0}function sc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=b;break a}case 10:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=((b|0)<0)<<31>>31;break a}case 11:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=0;break a}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);b=e;f=c[b>>2]|0;b=c[b+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=f;c[e+4>>2]=b;break a}case 13:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&65535)<<16>>16;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 14:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e&65535;c[f+4>>2]=0;break a}case 15:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&255)<<24>>24;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 16:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e&255;c[f+4>>2]=0;break a}case 17:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}case 18:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}default:break a}while(0);while(0);return}function tc(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295)while(1){e=Pc(b|0,c|0,10,0)|0;d=d+-1|0;a[d>>0]=e|48;e=b;b=Oc(b|0,c|0,10,0)|0;if(!(c>>>0>9|(c|0)==9&e>>>0>4294967295))break;else c=C}if(b)while(1){d=d+-1|0;a[d>>0]=(b>>>0)%10|0|48;if(b>>>0<10)break;else b=(b>>>0)/10|0}return d|0}function uc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=i;i=i+256|0;g=h;do if((d|0)>(e|0)&(f&73728|0)==0){f=d-e|0;Bc(g|0,b|0,(f>>>0>256?256:f)|0)|0;e=c[a>>2]|0;d=(e&32|0)==0;if(f>>>0>255){b=f;do{if(d){ic(g,256,a)|0;e=c[a>>2]|0}b=b+-256|0;d=(e&32|0)==0}while(b>>>0>255);if(d)f=f&255;else break}else if(!d)break;ic(g,f,a)|0}while(0);i=h;return}function vc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;do if(a>>>0<245){o=a>>>0<11?16:a+11&-8;a=o>>>3;j=c[1212]|0;b=j>>>a;if(b&3){b=(b&1^1)+a|0;d=4888+(b<<1<<2)|0;e=d+8|0;f=c[e>>2]|0;g=f+8|0;h=c[g>>2]|0;do if((d|0)!=(h|0)){if(h>>>0<(c[1216]|0)>>>0)ga();a=h+12|0;if((c[a>>2]|0)==(f|0)){c[a>>2]=d;c[e>>2]=h;break}else ga()}else c[1212]=j&~(1<<b);while(0);G=b<<3;c[f+4>>2]=G|3;G=f+G+4|0;c[G>>2]=c[G>>2]|1;G=g;return G|0}h=c[1214]|0;if(o>>>0>h>>>0){if(b){d=2<<a;d=b<<a&(d|0-d);d=(d&0-d)+-1|0;i=d>>>12&16;d=d>>>i;f=d>>>5&8;d=d>>>f;g=d>>>2&4;d=d>>>g;e=d>>>1&2;d=d>>>e;b=d>>>1&1;b=(f|i|g|e|b)+(d>>>b)|0;d=4888+(b<<1<<2)|0;e=d+8|0;g=c[e>>2]|0;i=g+8|0;f=c[i>>2]|0;do if((d|0)!=(f|0)){if(f>>>0<(c[1216]|0)>>>0)ga();a=f+12|0;if((c[a>>2]|0)==(g|0)){c[a>>2]=d;c[e>>2]=f;k=c[1214]|0;break}else ga()}else{c[1212]=j&~(1<<b);k=h}while(0);h=(b<<3)-o|0;c[g+4>>2]=o|3;e=g+o|0;c[e+4>>2]=h|1;c[e+h>>2]=h;if(k){f=c[1217]|0;b=k>>>3;d=4888+(b<<1<<2)|0;a=c[1212]|0;b=1<<b;if(a&b){a=d+8|0;b=c[a>>2]|0;if(b>>>0<(c[1216]|0)>>>0)ga();else{l=a;m=b}}else{c[1212]=a|b;l=d+8|0;m=d}c[l>>2]=f;c[m+12>>2]=f;c[f+8>>2]=m;c[f+12>>2]=d}c[1214]=h;c[1217]=e;G=i;return G|0}a=c[1213]|0;if(a){i=(a&0-a)+-1|0;F=i>>>12&16;i=i>>>F;E=i>>>5&8;i=i>>>E;G=i>>>2&4;i=i>>>G;b=i>>>1&2;i=i>>>b;j=i>>>1&1;j=c[5152+((E|F|G|b|j)+(i>>>j)<<2)>>2]|0;i=(c[j+4>>2]&-8)-o|0;b=j;while(1){a=c[b+16>>2]|0;if(!a){a=c[b+20>>2]|0;if(!a)break}b=(c[a+4>>2]&-8)-o|0;G=b>>>0<i>>>0;i=G?b:i;b=a;j=G?a:j}f=c[1216]|0;if(j>>>0<f>>>0)ga();h=j+o|0;if(j>>>0>=h>>>0)ga();g=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){b=j+20|0;a=c[b>>2]|0;if(!a){b=j+16|0;a=c[b>>2]|0;if(!a){n=0;break}}while(1){d=a+20|0;e=c[d>>2]|0;if(e){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<f>>>0)ga();else{c[b>>2]=0;n=a;break}}else{e=c[j+8>>2]|0;if(e>>>0<f>>>0)ga();a=e+12|0;if((c[a>>2]|0)!=(j|0))ga();b=d+8|0;if((c[b>>2]|0)==(j|0)){c[a>>2]=d;c[b>>2]=e;n=d;break}else ga()}while(0);do if(g){a=c[j+28>>2]|0;b=5152+(a<<2)|0;if((j|0)==(c[b>>2]|0)){c[b>>2]=n;if(!n){c[1213]=c[1213]&~(1<<a);break}}else{if(g>>>0<(c[1216]|0)>>>0)ga();a=g+16|0;if((c[a>>2]|0)==(j|0))c[a>>2]=n;else c[g+20>>2]=n;if(!n)break}b=c[1216]|0;if(n>>>0<b>>>0)ga();c[n+24>>2]=g;a=c[j+16>>2]|0;do if(a)if(a>>>0<b>>>0)ga();else{c[n+16>>2]=a;c[a+24>>2]=n;break}while(0);a=c[j+20>>2]|0;if(a)if(a>>>0<(c[1216]|0)>>>0)ga();else{c[n+20>>2]=a;c[a+24>>2]=n;break}}while(0);if(i>>>0<16){G=i+o|0;c[j+4>>2]=G|3;G=j+G+4|0;c[G>>2]=c[G>>2]|1}else{c[j+4>>2]=o|3;c[h+4>>2]=i|1;c[h+i>>2]=i;a=c[1214]|0;if(a){e=c[1217]|0;b=a>>>3;d=4888+(b<<1<<2)|0;a=c[1212]|0;b=1<<b;if(a&b){a=d+8|0;b=c[a>>2]|0;if(b>>>0<(c[1216]|0)>>>0)ga();else{p=a;q=b}}else{c[1212]=a|b;p=d+8|0;q=d}c[p>>2]=e;c[q+12>>2]=e;c[e+8>>2]=q;c[e+12>>2]=d}c[1214]=i;c[1217]=h}G=j+8|0;return G|0}}}else if(a>>>0<=4294967231){a=a+11|0;o=a&-8;k=c[1213]|0;if(k){d=0-o|0;a=a>>>8;if(a)if(o>>>0>16777215)j=31;else{q=(a+1048320|0)>>>16&8;z=a<<q;p=(z+520192|0)>>>16&4;z=z<<p;j=(z+245760|0)>>>16&2;j=14-(p|q|j)+(z<<j>>>15)|0;j=o>>>(j+7|0)&1|j<<1}else j=0;b=c[5152+(j<<2)>>2]|0;a:do if(!b){a=0;b=0;z=86}else{f=d;a=0;h=o<<((j|0)==31?0:25-(j>>>1)|0);i=b;b=0;while(1){e=c[i+4>>2]&-8;d=e-o|0;if(d>>>0<f>>>0)if((e|0)==(o|0)){a=i;b=i;z=90;break a}else b=i;else d=f;e=c[i+20>>2]|0;i=c[i+16+(h>>>31<<2)>>2]|0;a=(e|0)==0|(e|0)==(i|0)?a:e;e=(i|0)==0;if(e){z=86;break}else{f=d;h=h<<(e&1^1)}}}while(0);if((z|0)==86){if((a|0)==0&(b|0)==0){a=2<<j;a=k&(a|0-a);if(!a)break;q=(a&0-a)+-1|0;m=q>>>12&16;q=q>>>m;l=q>>>5&8;q=q>>>l;n=q>>>2&4;q=q>>>n;p=q>>>1&2;q=q>>>p;a=q>>>1&1;a=c[5152+((l|m|n|p|a)+(q>>>a)<<2)>>2]|0}if(!a){i=d;j=b}else z=90}if((z|0)==90)while(1){z=0;q=(c[a+4>>2]&-8)-o|0;e=q>>>0<d>>>0;d=e?q:d;b=e?a:b;e=c[a+16>>2]|0;if(e){a=e;z=90;continue}a=c[a+20>>2]|0;if(!a){i=d;j=b;break}else z=90}if((j|0)!=0?i>>>0<((c[1214]|0)-o|0)>>>0:0){f=c[1216]|0;if(j>>>0<f>>>0)ga();h=j+o|0;if(j>>>0>=h>>>0)ga();g=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){b=j+20|0;a=c[b>>2]|0;if(!a){b=j+16|0;a=c[b>>2]|0;if(!a){s=0;break}}while(1){d=a+20|0;e=c[d>>2]|0;if(e){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<f>>>0)ga();else{c[b>>2]=0;s=a;break}}else{e=c[j+8>>2]|0;if(e>>>0<f>>>0)ga();a=e+12|0;if((c[a>>2]|0)!=(j|0))ga();b=d+8|0;if((c[b>>2]|0)==(j|0)){c[a>>2]=d;c[b>>2]=e;s=d;break}else ga()}while(0);do if(g){a=c[j+28>>2]|0;b=5152+(a<<2)|0;if((j|0)==(c[b>>2]|0)){c[b>>2]=s;if(!s){c[1213]=c[1213]&~(1<<a);break}}else{if(g>>>0<(c[1216]|0)>>>0)ga();a=g+16|0;if((c[a>>2]|0)==(j|0))c[a>>2]=s;else c[g+20>>2]=s;if(!s)break}b=c[1216]|0;if(s>>>0<b>>>0)ga();c[s+24>>2]=g;a=c[j+16>>2]|0;do if(a)if(a>>>0<b>>>0)ga();else{c[s+16>>2]=a;c[a+24>>2]=s;break}while(0);a=c[j+20>>2]|0;if(a)if(a>>>0<(c[1216]|0)>>>0)ga();else{c[s+20>>2]=a;c[a+24>>2]=s;break}}while(0);do if(i>>>0>=16){c[j+4>>2]=o|3;c[h+4>>2]=i|1;c[h+i>>2]=i;a=i>>>3;if(i>>>0<256){d=4888+(a<<1<<2)|0;b=c[1212]|0;a=1<<a;if(b&a){a=d+8|0;b=c[a>>2]|0;if(b>>>0<(c[1216]|0)>>>0)ga();else{t=a;v=b}}else{c[1212]=b|a;t=d+8|0;v=d}c[t>>2]=h;c[v+12>>2]=h;c[h+8>>2]=v;c[h+12>>2]=d;break}a=i>>>8;if(a)if(i>>>0>16777215)d=31;else{F=(a+1048320|0)>>>16&8;G=a<<F;E=(G+520192|0)>>>16&4;G=G<<E;d=(G+245760|0)>>>16&2;d=14-(E|F|d)+(G<<d>>>15)|0;d=i>>>(d+7|0)&1|d<<1}else d=0;e=5152+(d<<2)|0;c[h+28>>2]=d;a=h+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[1213]|0;b=1<<d;if(!(a&b)){c[1213]=a|b;c[e>>2]=h;c[h+24>>2]=e;c[h+12>>2]=h;c[h+8>>2]=h;break}d=i<<((d|0)==31?0:25-(d>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(i|0)){z=148;break}b=e+16+(d>>>31<<2)|0;a=c[b>>2]|0;if(!a){z=145;break}else{d=d<<1;e=a}}if((z|0)==145)if(b>>>0<(c[1216]|0)>>>0)ga();else{c[b>>2]=h;c[h+24>>2]=e;c[h+12>>2]=h;c[h+8>>2]=h;break}else if((z|0)==148){a=e+8|0;b=c[a>>2]|0;G=c[1216]|0;if(b>>>0>=G>>>0&e>>>0>=G>>>0){c[b+12>>2]=h;c[a>>2]=h;c[h+8>>2]=b;c[h+12>>2]=e;c[h+24>>2]=0;break}else ga()}}else{G=i+o|0;c[j+4>>2]=G|3;G=j+G+4|0;c[G>>2]=c[G>>2]|1}while(0);G=j+8|0;return G|0}}}else o=-1;while(0);d=c[1214]|0;if(d>>>0>=o>>>0){a=d-o|0;b=c[1217]|0;if(a>>>0>15){G=b+o|0;c[1217]=G;c[1214]=a;c[G+4>>2]=a|1;c[G+a>>2]=a;c[b+4>>2]=o|3}else{c[1214]=0;c[1217]=0;c[b+4>>2]=d|3;G=b+d+4|0;c[G>>2]=c[G>>2]|1}G=b+8|0;return G|0}a=c[1215]|0;if(a>>>0>o>>>0){E=a-o|0;c[1215]=E;G=c[1218]|0;F=G+o|0;c[1218]=F;c[F+4>>2]=E|1;c[G+4>>2]=o|3;G=G+8|0;return G|0}do if(!(c[1330]|0)){a=ea(30)|0;if(!(a+-1&a)){c[1332]=a;c[1331]=a;c[1333]=-1;c[1334]=-1;c[1335]=0;c[1323]=0;c[1330]=(ja(0)|0)&-16^1431655768;break}else ga()}while(0);h=o+48|0;e=c[1332]|0;i=o+47|0;d=e+i|0;e=0-e|0;j=d&e;if(j>>>0<=o>>>0){G=0;return G|0}a=c[1322]|0;if((a|0)!=0?(t=c[1320]|0,v=t+j|0,v>>>0<=t>>>0|v>>>0>a>>>0):0){G=0;return G|0}b:do if(!(c[1323]&4)){b=c[1218]|0;c:do if(b){f=5296;while(1){a=c[f>>2]|0;if(a>>>0<=b>>>0?(r=f+4|0,(a+(c[r>>2]|0)|0)>>>0>b>>>0):0)break;a=c[f+8>>2]|0;if(!a){z=173;break c}else f=a}a=d-(c[1215]|0)&e;if(a>>>0<2147483647){b=ia(a|0)|0;if((b|0)==((c[f>>2]|0)+(c[r>>2]|0)|0)){if((b|0)!=(-1|0)){h=b;g=a;z=193;break b}}else z=183}}else z=173;while(0);do if((z|0)==173?(u=ia(0)|0,(u|0)!=(-1|0)):0){a=u;b=c[1331]|0;d=b+-1|0;if(!(d&a))a=j;else a=j-a+(d+a&0-b)|0;b=c[1320]|0;d=b+a|0;if(a>>>0>o>>>0&a>>>0<2147483647){v=c[1322]|0;if((v|0)!=0?d>>>0<=b>>>0|d>>>0>v>>>0:0)break;b=ia(a|0)|0;if((b|0)==(u|0)){h=u;g=a;z=193;break b}else z=183}}while(0);d:do if((z|0)==183){d=0-a|0;do if(h>>>0>a>>>0&(a>>>0<2147483647&(b|0)!=(-1|0))?(w=c[1332]|0,w=i-a+w&0-w,w>>>0<2147483647):0)if((ia(w|0)|0)==(-1|0)){ia(d|0)|0;break d}else{a=w+a|0;break}while(0);if((b|0)!=(-1|0)){h=b;g=a;z=193;break b}}while(0);c[1323]=c[1323]|4;z=190}else z=190;while(0);if((((z|0)==190?j>>>0<2147483647:0)?(x=ia(j|0)|0,y=ia(0)|0,x>>>0<y>>>0&((x|0)!=(-1|0)&(y|0)!=(-1|0))):0)?(g=y-x|0,g>>>0>(o+40|0)>>>0):0){h=x;z=193}if((z|0)==193){a=(c[1320]|0)+g|0;c[1320]=a;if(a>>>0>(c[1321]|0)>>>0)c[1321]=a;k=c[1218]|0;do if(k){f=5296;while(1){a=c[f>>2]|0;b=f+4|0;d=c[b>>2]|0;if((h|0)==(a+d|0)){z=203;break}e=c[f+8>>2]|0;if(!e)break;else f=e}if(((z|0)==203?(c[f+12>>2]&8|0)==0:0)?k>>>0<h>>>0&k>>>0>=a>>>0:0){c[b>>2]=d+g;G=k+8|0;G=(G&7|0)==0?0:0-G&7;F=k+G|0;G=g-G+(c[1215]|0)|0;c[1218]=F;c[1215]=G;c[F+4>>2]=G|1;c[F+G+4>>2]=40;c[1219]=c[1334];break}a=c[1216]|0;if(h>>>0<a>>>0){c[1216]=h;i=h}else i=a;b=h+g|0;a=5296;while(1){if((c[a>>2]|0)==(b|0)){z=211;break}a=c[a+8>>2]|0;if(!a){b=5296;break}}if((z|0)==211)if(!(c[a+12>>2]&8)){c[a>>2]=h;m=a+4|0;c[m>>2]=(c[m>>2]|0)+g;m=h+8|0;m=h+((m&7|0)==0?0:0-m&7)|0;a=b+8|0;a=b+((a&7|0)==0?0:0-a&7)|0;l=m+o|0;j=a-m-o|0;c[m+4>>2]=o|3;do if((a|0)!=(k|0)){if((a|0)==(c[1217]|0)){G=(c[1214]|0)+j|0;c[1214]=G;c[1217]=l;c[l+4>>2]=G|1;c[l+G>>2]=G;break}b=c[a+4>>2]|0;if((b&3|0)==1){h=b&-8;f=b>>>3;e:do if(b>>>0>=256){g=c[a+24>>2]|0;e=c[a+12>>2]|0;do if((e|0)==(a|0)){e=a+16|0;d=e+4|0;b=c[d>>2]|0;if(!b){b=c[e>>2]|0;if(!b){E=0;break}else d=e}while(1){e=b+20|0;f=c[e>>2]|0;if(f){b=f;d=e;continue}e=b+16|0;f=c[e>>2]|0;if(!f)break;else{b=f;d=e}}if(d>>>0<i>>>0)ga();else{c[d>>2]=0;E=b;break}}else{f=c[a+8>>2]|0;if(f>>>0<i>>>0)ga();b=f+12|0;if((c[b>>2]|0)!=(a|0))ga();d=e+8|0;if((c[d>>2]|0)==(a|0)){c[b>>2]=e;c[d>>2]=f;E=e;break}else ga()}while(0);if(!g)break;b=c[a+28>>2]|0;d=5152+(b<<2)|0;do if((a|0)!=(c[d>>2]|0)){if(g>>>0<(c[1216]|0)>>>0)ga();b=g+16|0;if((c[b>>2]|0)==(a|0))c[b>>2]=E;else c[g+20>>2]=E;if(!E)break e}else{c[d>>2]=E;if(E)break;c[1213]=c[1213]&~(1<<b);break e}while(0);e=c[1216]|0;if(E>>>0<e>>>0)ga();c[E+24>>2]=g;b=a+16|0;d=c[b>>2]|0;do if(d)if(d>>>0<e>>>0)ga();else{c[E+16>>2]=d;c[d+24>>2]=E;break}while(0);b=c[b+4>>2]|0;if(!b)break;if(b>>>0<(c[1216]|0)>>>0)ga();else{c[E+20>>2]=b;c[b+24>>2]=E;break}}else{d=c[a+8>>2]|0;e=c[a+12>>2]|0;b=4888+(f<<1<<2)|0;do if((d|0)!=(b|0)){if(d>>>0<i>>>0)ga();if((c[d+12>>2]|0)==(a|0))break;ga()}while(0);if((e|0)==(d|0)){c[1212]=c[1212]&~(1<<f);break}do if((e|0)==(b|0))B=e+8|0;else{if(e>>>0<i>>>0)ga();b=e+8|0;if((c[b>>2]|0)==(a|0)){B=b;break}ga()}while(0);c[d+12>>2]=e;c[B>>2]=d}while(0);a=a+h|0;f=h+j|0}else f=j;a=a+4|0;c[a>>2]=c[a>>2]&-2;c[l+4>>2]=f|1;c[l+f>>2]=f;a=f>>>3;if(f>>>0<256){d=4888+(a<<1<<2)|0;b=c[1212]|0;a=1<<a;do if(!(b&a)){c[1212]=b|a;F=d+8|0;G=d}else{a=d+8|0;b=c[a>>2]|0;if(b>>>0>=(c[1216]|0)>>>0){F=a;G=b;break}ga()}while(0);c[F>>2]=l;c[G+12>>2]=l;c[l+8>>2]=G;c[l+12>>2]=d;break}a=f>>>8;do if(!a)d=0;else{if(f>>>0>16777215){d=31;break}F=(a+1048320|0)>>>16&8;G=a<<F;E=(G+520192|0)>>>16&4;G=G<<E;d=(G+245760|0)>>>16&2;d=14-(E|F|d)+(G<<d>>>15)|0;d=f>>>(d+7|0)&1|d<<1}while(0);e=5152+(d<<2)|0;c[l+28>>2]=d;a=l+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[1213]|0;b=1<<d;if(!(a&b)){c[1213]=a|b;c[e>>2]=l;c[l+24>>2]=e;c[l+12>>2]=l;c[l+8>>2]=l;break}d=f<<((d|0)==31?0:25-(d>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(f|0)){z=281;break}b=e+16+(d>>>31<<2)|0;a=c[b>>2]|0;if(!a){z=278;break}else{d=d<<1;e=a}}if((z|0)==278)if(b>>>0<(c[1216]|0)>>>0)ga();else{c[b>>2]=l;c[l+24>>2]=e;c[l+12>>2]=l;c[l+8>>2]=l;break}else if((z|0)==281){a=e+8|0;b=c[a>>2]|0;G=c[1216]|0;if(b>>>0>=G>>>0&e>>>0>=G>>>0){c[b+12>>2]=l;c[a>>2]=l;c[l+8>>2]=b;c[l+12>>2]=e;c[l+24>>2]=0;break}else ga()}}else{G=(c[1215]|0)+j|0;c[1215]=G;c[1218]=l;c[l+4>>2]=G|1}while(0);G=m+8|0;return G|0}else b=5296;while(1){a=c[b>>2]|0;if(a>>>0<=k>>>0?(A=a+(c[b+4>>2]|0)|0,A>>>0>k>>>0):0)break;b=c[b+8>>2]|0}f=A+-47|0;b=f+8|0;b=f+((b&7|0)==0?0:0-b&7)|0;f=k+16|0;b=b>>>0<f>>>0?k:b;a=b+8|0;d=h+8|0;d=(d&7|0)==0?0:0-d&7;G=h+d|0;d=g+-40-d|0;c[1218]=G;c[1215]=d;c[G+4>>2]=d|1;c[G+d+4>>2]=40;c[1219]=c[1334];d=b+4|0;c[d>>2]=27;c[a>>2]=c[1324];c[a+4>>2]=c[1325];c[a+8>>2]=c[1326];c[a+12>>2]=c[1327];c[1324]=h;c[1325]=g;c[1327]=0;c[1326]=a;a=b+24|0;do{a=a+4|0;c[a>>2]=7}while((a+4|0)>>>0<A>>>0);if((b|0)!=(k|0)){g=b-k|0;c[d>>2]=c[d>>2]&-2;c[k+4>>2]=g|1;c[b>>2]=g;a=g>>>3;if(g>>>0<256){d=4888+(a<<1<<2)|0;b=c[1212]|0;a=1<<a;if(b&a){a=d+8|0;b=c[a>>2]|0;if(b>>>0<(c[1216]|0)>>>0)ga();else{C=a;D=b}}else{c[1212]=b|a;C=d+8|0;D=d}c[C>>2]=k;c[D+12>>2]=k;c[k+8>>2]=D;c[k+12>>2]=d;break}a=g>>>8;if(a)if(g>>>0>16777215)d=31;else{F=(a+1048320|0)>>>16&8;G=a<<F;E=(G+520192|0)>>>16&4;G=G<<E;d=(G+245760|0)>>>16&2;d=14-(E|F|d)+(G<<d>>>15)|0;d=g>>>(d+7|0)&1|d<<1}else d=0;e=5152+(d<<2)|0;c[k+28>>2]=d;c[k+20>>2]=0;c[f>>2]=0;a=c[1213]|0;b=1<<d;if(!(a&b)){c[1213]=a|b;c[e>>2]=k;c[k+24>>2]=e;c[k+12>>2]=k;c[k+8>>2]=k;break}d=g<<((d|0)==31?0:25-(d>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(g|0)){z=307;break}b=e+16+(d>>>31<<2)|0;a=c[b>>2]|0;if(!a){z=304;break}else{d=d<<1;e=a}}if((z|0)==304)if(b>>>0<(c[1216]|0)>>>0)ga();else{c[b>>2]=k;c[k+24>>2]=e;c[k+12>>2]=k;c[k+8>>2]=k;break}else if((z|0)==307){a=e+8|0;b=c[a>>2]|0;G=c[1216]|0;if(b>>>0>=G>>>0&e>>>0>=G>>>0){c[b+12>>2]=k;c[a>>2]=k;c[k+8>>2]=b;c[k+12>>2]=e;c[k+24>>2]=0;break}else ga()}}}else{G=c[1216]|0;if((G|0)==0|h>>>0<G>>>0)c[1216]=h;c[1324]=h;c[1325]=g;c[1327]=0;c[1221]=c[1330];c[1220]=-1;a=0;do{G=4888+(a<<1<<2)|0;c[G+12>>2]=G;c[G+8>>2]=G;a=a+1|0}while((a|0)!=32);G=h+8|0;G=(G&7|0)==0?0:0-G&7;F=h+G|0;G=g+-40-G|0;c[1218]=F;c[1215]=G;c[F+4>>2]=G|1;c[F+G+4>>2]=40;c[1219]=c[1334]}while(0);a=c[1215]|0;if(a>>>0>o>>>0){E=a-o|0;c[1215]=E;G=c[1218]|0;F=G+o|0;c[1218]=F;c[F+4>>2]=E|1;c[G+4>>2]=o|3;G=G+8|0;return G|0}}c[(ec()|0)>>2]=12;G=0;return G|0}function wc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;if(!a)return;d=a+-8|0;h=c[1216]|0;if(d>>>0<h>>>0)ga();a=c[a+-4>>2]|0;b=a&3;if((b|0)==1)ga();e=a&-8;m=d+e|0;do if(!(a&1)){a=c[d>>2]|0;if(!b)return;k=d+(0-a)|0;j=a+e|0;if(k>>>0<h>>>0)ga();if((k|0)==(c[1217]|0)){a=m+4|0;b=c[a>>2]|0;if((b&3|0)!=3){q=k;f=j;break}c[1214]=j;c[a>>2]=b&-2;c[k+4>>2]=j|1;c[k+j>>2]=j;return}e=a>>>3;if(a>>>0<256){b=c[k+8>>2]|0;d=c[k+12>>2]|0;a=4888+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0<h>>>0)ga();if((c[b+12>>2]|0)!=(k|0))ga()}if((d|0)==(b|0)){c[1212]=c[1212]&~(1<<e);q=k;f=j;break}if((d|0)!=(a|0)){if(d>>>0<h>>>0)ga();a=d+8|0;if((c[a>>2]|0)==(k|0))g=a;else ga()}else g=d+8|0;c[b+12>>2]=d;c[g>>2]=b;q=k;f=j;break}g=c[k+24>>2]|0;d=c[k+12>>2]|0;do if((d|0)==(k|0)){d=k+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){i=0;break}else b=d}while(1){d=a+20|0;e=c[d>>2]|0;if(e){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<h>>>0)ga();else{c[b>>2]=0;i=a;break}}else{e=c[k+8>>2]|0;if(e>>>0<h>>>0)ga();a=e+12|0;if((c[a>>2]|0)!=(k|0))ga();b=d+8|0;if((c[b>>2]|0)==(k|0)){c[a>>2]=d;c[b>>2]=e;i=d;break}else ga()}while(0);if(g){a=c[k+28>>2]|0;b=5152+(a<<2)|0;if((k|0)==(c[b>>2]|0)){c[b>>2]=i;if(!i){c[1213]=c[1213]&~(1<<a);q=k;f=j;break}}else{if(g>>>0<(c[1216]|0)>>>0)ga();a=g+16|0;if((c[a>>2]|0)==(k|0))c[a>>2]=i;else c[g+20>>2]=i;if(!i){q=k;f=j;break}}d=c[1216]|0;if(i>>>0<d>>>0)ga();c[i+24>>2]=g;a=k+16|0;b=c[a>>2]|0;do if(b)if(b>>>0<d>>>0)ga();else{c[i+16>>2]=b;c[b+24>>2]=i;break}while(0);a=c[a+4>>2]|0;if(a)if(a>>>0<(c[1216]|0)>>>0)ga();else{c[i+20>>2]=a;c[a+24>>2]=i;q=k;f=j;break}else{q=k;f=j}}else{q=k;f=j}}else{q=d;f=e}while(0);if(q>>>0>=m>>>0)ga();a=m+4|0;b=c[a>>2]|0;if(!(b&1))ga();if(!(b&2)){if((m|0)==(c[1218]|0)){p=(c[1215]|0)+f|0;c[1215]=p;c[1218]=q;c[q+4>>2]=p|1;if((q|0)!=(c[1217]|0))return;c[1217]=0;c[1214]=0;return}if((m|0)==(c[1217]|0)){p=(c[1214]|0)+f|0;c[1214]=p;c[1217]=q;c[q+4>>2]=p|1;c[q+p>>2]=p;return}f=(b&-8)+f|0;e=b>>>3;do if(b>>>0>=256){g=c[m+24>>2]|0;a=c[m+12>>2]|0;do if((a|0)==(m|0)){d=m+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){n=0;break}else b=d}while(1){d=a+20|0;e=c[d>>2]|0;if(e){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<(c[1216]|0)>>>0)ga();else{c[b>>2]=0;n=a;break}}else{b=c[m+8>>2]|0;if(b>>>0<(c[1216]|0)>>>0)ga();d=b+12|0;if((c[d>>2]|0)!=(m|0))ga();e=a+8|0;if((c[e>>2]|0)==(m|0)){c[d>>2]=a;c[e>>2]=b;n=a;break}else ga()}while(0);if(g){a=c[m+28>>2]|0;b=5152+(a<<2)|0;if((m|0)==(c[b>>2]|0)){c[b>>2]=n;if(!n){c[1213]=c[1213]&~(1<<a);break}}else{if(g>>>0<(c[1216]|0)>>>0)ga();a=g+16|0;if((c[a>>2]|0)==(m|0))c[a>>2]=n;else c[g+20>>2]=n;if(!n)break}d=c[1216]|0;if(n>>>0<d>>>0)ga();c[n+24>>2]=g;a=m+16|0;b=c[a>>2]|0;do if(b)if(b>>>0<d>>>0)ga();else{c[n+16>>2]=b;c[b+24>>2]=n;break}while(0);a=c[a+4>>2]|0;if(a)if(a>>>0<(c[1216]|0)>>>0)ga();else{c[n+20>>2]=a;c[a+24>>2]=n;break}}}else{b=c[m+8>>2]|0;d=c[m+12>>2]|0;a=4888+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0<(c[1216]|0)>>>0)ga();if((c[b+12>>2]|0)!=(m|0))ga()}if((d|0)==(b|0)){c[1212]=c[1212]&~(1<<e);break}if((d|0)!=(a|0)){if(d>>>0<(c[1216]|0)>>>0)ga();a=d+8|0;if((c[a>>2]|0)==(m|0))l=a;else ga()}else l=d+8|0;c[b+12>>2]=d;c[l>>2]=b}while(0);c[q+4>>2]=f|1;c[q+f>>2]=f;if((q|0)==(c[1217]|0)){c[1214]=f;return}}else{c[a>>2]=b&-2;c[q+4>>2]=f|1;c[q+f>>2]=f}a=f>>>3;if(f>>>0<256){d=4888+(a<<1<<2)|0;b=c[1212]|0;a=1<<a;if(b&a){a=d+8|0;b=c[a>>2]|0;if(b>>>0<(c[1216]|0)>>>0)ga();else{o=a;p=b}}else{c[1212]=b|a;o=d+8|0;p=d}c[o>>2]=q;c[p+12>>2]=q;c[q+8>>2]=p;c[q+12>>2]=d;return}a=f>>>8;if(a)if(f>>>0>16777215)d=31;else{o=(a+1048320|0)>>>16&8;p=a<<o;n=(p+520192|0)>>>16&4;p=p<<n;d=(p+245760|0)>>>16&2;d=14-(n|o|d)+(p<<d>>>15)|0;d=f>>>(d+7|0)&1|d<<1}else d=0;e=5152+(d<<2)|0;c[q+28>>2]=d;c[q+20>>2]=0;c[q+16>>2]=0;a=c[1213]|0;b=1<<d;do if(a&b){d=f<<((d|0)==31?0:25-(d>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(f|0)){a=130;break}b=e+16+(d>>>31<<2)|0;a=c[b>>2]|0;if(!a){a=127;break}else{d=d<<1;e=a}}if((a|0)==127)if(b>>>0<(c[1216]|0)>>>0)ga();else{c[b>>2]=q;c[q+24>>2]=e;c[q+12>>2]=q;c[q+8>>2]=q;break}else if((a|0)==130){a=e+8|0;b=c[a>>2]|0;p=c[1216]|0;if(b>>>0>=p>>>0&e>>>0>=p>>>0){c[b+12>>2]=q;c[a>>2]=q;c[q+8>>2]=b;c[q+12>>2]=e;c[q+24>>2]=0;break}else ga()}}else{c[1213]=a|b;c[e>>2]=q;c[q+24>>2]=e;c[q+12>>2]=q;c[q+8>>2]=q}while(0);q=(c[1220]|0)+-1|0;c[1220]=q;if(!q)a=5304;else return;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[1220]=-1;return}function xc(a,b){a=a|0;b=b|0;var d=0,e=0;if(!a){a=vc(b)|0;return a|0}if(b>>>0>4294967231){c[(ec()|0)>>2]=12;a=0;return a|0}d=yc(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(d){a=d+8|0;return a|0}d=vc(b)|0;if(!d){a=0;return a|0}e=c[a+-4>>2]|0;e=(e&-8)-((e&3|0)==0?8:4)|0;Fc(d|0,a|0,(e>>>0<b>>>0?e:b)|0)|0;wc(a);a=d;return a|0}function yc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=a+4|0;o=c[n>>2]|0;d=o&-8;k=a+d|0;i=c[1216]|0;e=o&3;if(!((e|0)!=1&a>>>0>=i>>>0&a>>>0<k>>>0))ga();f=c[k+4>>2]|0;if(!(f&1))ga();if(!e){if(b>>>0<256){a=0;return a|0}if(d>>>0>=(b+4|0)>>>0?(d-b|0)>>>0<=c[1332]<<1>>>0:0)return a|0;a=0;return a|0}if(d>>>0>=b>>>0){d=d-b|0;if(d>>>0<=15)return a|0;m=a+b|0;c[n>>2]=o&1|b|2;c[m+4>>2]=d|3;b=m+d+4|0;c[b>>2]=c[b>>2]|1;zc(m,d);return a|0}if((k|0)==(c[1218]|0)){d=(c[1215]|0)+d|0;if(d>>>0<=b>>>0){a=0;return a|0}m=d-b|0;l=a+b|0;c[n>>2]=o&1|b|2;c[l+4>>2]=m|1;c[1218]=l;c[1215]=m;return a|0}if((k|0)==(c[1217]|0)){e=(c[1214]|0)+d|0;if(e>>>0<b>>>0){a=0;return a|0}d=e-b|0;if(d>>>0>15){e=a+b|0;m=e+d|0;c[n>>2]=o&1|b|2;c[e+4>>2]=d|1;c[m>>2]=d;b=m+4|0;c[b>>2]=c[b>>2]&-2}else{c[n>>2]=o&1|e|2;e=a+e+4|0;c[e>>2]=c[e>>2]|1;e=0;d=0}c[1214]=d;c[1217]=e;return a|0}if(f&2){a=0;return a|0}l=(f&-8)+d|0;if(l>>>0<b>>>0){a=0;return a|0}m=l-b|0;g=f>>>3;do if(f>>>0>=256){h=c[k+24>>2]|0;f=c[k+12>>2]|0;do if((f|0)==(k|0)){f=k+16|0;e=f+4|0;d=c[e>>2]|0;if(!d){d=c[f>>2]|0;if(!d){j=0;break}else e=f}while(1){f=d+20|0;g=c[f>>2]|0;if(g){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0<i>>>0)ga();else{c[e>>2]=0;j=d;break}}else{g=c[k+8>>2]|0;if(g>>>0<i>>>0)ga();d=g+12|0;if((c[d>>2]|0)!=(k|0))ga();e=f+8|0;if((c[e>>2]|0)==(k|0)){c[d>>2]=f;c[e>>2]=g;j=f;break}else ga()}while(0);if(h){d=c[k+28>>2]|0;e=5152+(d<<2)|0;if((k|0)==(c[e>>2]|0)){c[e>>2]=j;if(!j){c[1213]=c[1213]&~(1<<d);break}}else{if(h>>>0<(c[1216]|0)>>>0)ga();d=h+16|0;if((c[d>>2]|0)==(k|0))c[d>>2]=j;else c[h+20>>2]=j;if(!j)break}f=c[1216]|0;if(j>>>0<f>>>0)ga();c[j+24>>2]=h;d=k+16|0;e=c[d>>2]|0;do if(e)if(e>>>0<f>>>0)ga();else{c[j+16>>2]=e;c[e+24>>2]=j;break}while(0);d=c[d+4>>2]|0;if(d)if(d>>>0<(c[1216]|0)>>>0)ga();else{c[j+20>>2]=d;c[d+24>>2]=j;break}}}else{e=c[k+8>>2]|0;f=c[k+12>>2]|0;d=4888+(g<<1<<2)|0;if((e|0)!=(d|0)){if(e>>>0<i>>>0)ga();if((c[e+12>>2]|0)!=(k|0))ga()}if((f|0)==(e|0)){c[1212]=c[1212]&~(1<<g);break}if((f|0)!=(d|0)){if(f>>>0<i>>>0)ga();d=f+8|0;if((c[d>>2]|0)==(k|0))h=d;else ga()}else h=f+8|0;c[e+12>>2]=f;c[h>>2]=e}while(0);if(m>>>0<16){c[n>>2]=l|o&1|2;b=a+l+4|0;c[b>>2]=c[b>>2]|1;return a|0}else{l=a+b|0;c[n>>2]=o&1|b|2;c[l+4>>2]=m|3;b=l+m+4|0;c[b>>2]=c[b>>2]|1;zc(l,m);return a|0}return 0}function zc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;o=a+b|0;d=c[a+4>>2]|0;do if(!(d&1)){g=c[a>>2]|0;if(!(d&3))return;l=a+(0-g)|0;k=g+b|0;i=c[1216]|0;if(l>>>0<i>>>0)ga();if((l|0)==(c[1217]|0)){a=o+4|0;d=c[a>>2]|0;if((d&3|0)!=3){r=l;f=k;break}c[1214]=k;c[a>>2]=d&-2;c[l+4>>2]=k|1;c[l+k>>2]=k;return}e=g>>>3;if(g>>>0<256){a=c[l+8>>2]|0;b=c[l+12>>2]|0;d=4888+(e<<1<<2)|0;if((a|0)!=(d|0)){if(a>>>0<i>>>0)ga();if((c[a+12>>2]|0)!=(l|0))ga()}if((b|0)==(a|0)){c[1212]=c[1212]&~(1<<e);r=l;f=k;break}if((b|0)!=(d|0)){if(b>>>0<i>>>0)ga();d=b+8|0;if((c[d>>2]|0)==(l|0))h=d;else ga()}else h=b+8|0;c[a+12>>2]=b;c[h>>2]=a;r=l;f=k;break}g=c[l+24>>2]|0;b=c[l+12>>2]|0;do if((b|0)==(l|0)){b=l+16|0;a=b+4|0;d=c[a>>2]|0;if(!d){d=c[b>>2]|0;if(!d){j=0;break}else a=b}while(1){b=d+20|0;e=c[b>>2]|0;if(e){d=e;a=b;continue}b=d+16|0;e=c[b>>2]|0;if(!e)break;else{d=e;a=b}}if(a>>>0<i>>>0)ga();else{c[a>>2]=0;j=d;break}}else{e=c[l+8>>2]|0;if(e>>>0<i>>>0)ga();d=e+12|0;if((c[d>>2]|0)!=(l|0))ga();a=b+8|0;if((c[a>>2]|0)==(l|0)){c[d>>2]=b;c[a>>2]=e;j=b;break}else ga()}while(0);if(g){d=c[l+28>>2]|0;a=5152+(d<<2)|0;if((l|0)==(c[a>>2]|0)){c[a>>2]=j;if(!j){c[1213]=c[1213]&~(1<<d);r=l;f=k;break}}else{if(g>>>0<(c[1216]|0)>>>0)ga();d=g+16|0;if((c[d>>2]|0)==(l|0))c[d>>2]=j;else c[g+20>>2]=j;if(!j){r=l;f=k;break}}b=c[1216]|0;if(j>>>0<b>>>0)ga();c[j+24>>2]=g;d=l+16|0;a=c[d>>2]|0;do if(a)if(a>>>0<b>>>0)ga();else{c[j+16>>2]=a;c[a+24>>2]=j;break}while(0);d=c[d+4>>2]|0;if(d)if(d>>>0<(c[1216]|0)>>>0)ga();else{c[j+20>>2]=d;c[d+24>>2]=j;r=l;f=k;break}else{r=l;f=k}}else{r=l;f=k}}else{r=a;f=b}while(0);h=c[1216]|0;if(o>>>0<h>>>0)ga();d=o+4|0;a=c[d>>2]|0;if(!(a&2)){if((o|0)==(c[1218]|0)){q=(c[1215]|0)+f|0;c[1215]=q;c[1218]=r;c[r+4>>2]=q|1;if((r|0)!=(c[1217]|0))return;c[1217]=0;c[1214]=0;return}if((o|0)==(c[1217]|0)){q=(c[1214]|0)+f|0;c[1214]=q;c[1217]=r;c[r+4>>2]=q|1;c[r+q>>2]=q;return}f=(a&-8)+f|0;e=a>>>3;do if(a>>>0>=256){g=c[o+24>>2]|0;b=c[o+12>>2]|0;do if((b|0)==(o|0)){b=o+16|0;a=b+4|0;d=c[a>>2]|0;if(!d){d=c[b>>2]|0;if(!d){n=0;break}else a=b}while(1){b=d+20|0;e=c[b>>2]|0;if(e){d=e;a=b;continue}b=d+16|0;e=c[b>>2]|0;if(!e)break;else{d=e;a=b}}if(a>>>0<h>>>0)ga();else{c[a>>2]=0;n=d;break}}else{e=c[o+8>>2]|0;if(e>>>0<h>>>0)ga();d=e+12|0;if((c[d>>2]|0)!=(o|0))ga();a=b+8|0;if((c[a>>2]|0)==(o|0)){c[d>>2]=b;c[a>>2]=e;n=b;break}else ga()}while(0);if(g){d=c[o+28>>2]|0;a=5152+(d<<2)|0;if((o|0)==(c[a>>2]|0)){c[a>>2]=n;if(!n){c[1213]=c[1213]&~(1<<d);break}}else{if(g>>>0<(c[1216]|0)>>>0)ga();d=g+16|0;if((c[d>>2]|0)==(o|0))c[d>>2]=n;else c[g+20>>2]=n;if(!n)break}b=c[1216]|0;if(n>>>0<b>>>0)ga();c[n+24>>2]=g;d=o+16|0;a=c[d>>2]|0;do if(a)if(a>>>0<b>>>0)ga();else{c[n+16>>2]=a;c[a+24>>2]=n;break}while(0);d=c[d+4>>2]|0;if(d)if(d>>>0<(c[1216]|0)>>>0)ga();else{c[n+20>>2]=d;c[d+24>>2]=n;break}}}else{a=c[o+8>>2]|0;b=c[o+12>>2]|0;d=4888+(e<<1<<2)|0;if((a|0)!=(d|0)){if(a>>>0<h>>>0)ga();if((c[a+12>>2]|0)!=(o|0))ga()}if((b|0)==(a|0)){c[1212]=c[1212]&~(1<<e);break}if((b|0)!=(d|0)){if(b>>>0<h>>>0)ga();d=b+8|0;if((c[d>>2]|0)==(o|0))m=d;else ga()}else m=b+8|0;c[a+12>>2]=b;c[m>>2]=a}while(0);c[r+4>>2]=f|1;c[r+f>>2]=f;if((r|0)==(c[1217]|0)){c[1214]=f;return}}else{c[d>>2]=a&-2;c[r+4>>2]=f|1;c[r+f>>2]=f}d=f>>>3;if(f>>>0<256){b=4888+(d<<1<<2)|0;a=c[1212]|0;d=1<<d;if(a&d){d=b+8|0;a=c[d>>2]|0;if(a>>>0<(c[1216]|0)>>>0)ga();else{p=d;q=a}}else{c[1212]=a|d;p=b+8|0;q=b}c[p>>2]=r;c[q+12>>2]=r;c[r+8>>2]=q;c[r+12>>2]=b;return}d=f>>>8;if(d)if(f>>>0>16777215)b=31;else{p=(d+1048320|0)>>>16&8;q=d<<p;o=(q+520192|0)>>>16&4;q=q<<o;b=(q+245760|0)>>>16&2;b=14-(o|p|b)+(q<<b>>>15)|0;b=f>>>(b+7|0)&1|b<<1}else b=0;e=5152+(b<<2)|0;c[r+28>>2]=b;c[r+20>>2]=0;c[r+16>>2]=0;d=c[1213]|0;a=1<<b;if(!(d&a)){c[1213]=d|a;c[e>>2]=r;c[r+24>>2]=e;c[r+12>>2]=r;c[r+8>>2]=r;return}b=f<<((b|0)==31?0:25-(b>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(f|0)){d=127;break}a=e+16+(b>>>31<<2)|0;d=c[a>>2]|0;if(!d){d=124;break}else{b=b<<1;e=d}}if((d|0)==124){if(a>>>0<(c[1216]|0)>>>0)ga();c[a>>2]=r;c[r+24>>2]=e;c[r+12>>2]=r;c[r+8>>2]=r;return}else if((d|0)==127){d=e+8|0;a=c[d>>2]|0;q=c[1216]|0;if(!(a>>>0>=q>>>0&e>>>0>=q>>>0))ga();c[a+12>>2]=r;c[d>>2]=r;c[r+8>>2]=a;c[r+12>>2]=e;c[r+24>>2]=0;return}}function Ac(){}function Bc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;h=b&3;i=d|d<<8|d<<16|d<<24;g=f&~3;if(h){h=b+4-h|0;while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function Cc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (C=d,a-c>>>0|0)|0}function Dc(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}C=0;return b>>>c-32|0}function Ec(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}C=a<<c-32;return 0}function Fc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return ka(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function Gc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (C=b+d+(c>>>0<a>>>0|0)>>>0,c|0)|0}function Hc(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else Fc(b,c,d)|0;return b|0}function Ic(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>c;return a>>>c|(b&(1<<c)-1)<<32-c}C=(b|0)<0?-1:0;return b>>c-32|0}function Jc(b){b=b|0;var c=0;c=a[m+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (a[m+(b>>>24)>>0]|0)+24|0}function Kc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=_(e,f)|0;d=a>>>16;a=(c>>>16)+(_(e,d)|0)|0;e=b>>>16;b=_(e,f)|0;return (C=(a>>>16)+(_(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function Lc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=Cc(j^a,i^b,j,i)|0;g=C;a=f^j;b=e^i;return Cc((Qc(h,g,Cc(f^c,e^d,f,e)|0,C,0)|0)^a,C^b,a,b)|0}function Mc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;j=f|0;h=b>>31|((b|0)<0?-1:0)<<1;g=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;l=e>>31|((e|0)<0?-1:0)<<1;k=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;a=Cc(h^a,g^b,h,g)|0;b=C;Qc(a,b,Cc(l^d,k^e,l,k)|0,C,j)|0;e=Cc(c[j>>2]^h,c[j+4>>2]^g,h,g)|0;d=C;i=f;return (C=d,e)|0}function Nc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=Kc(e,f)|0;a=C;return (C=(_(b,f)|0)+(_(d,e)|0)+a|a&0,c|0|0)|0}function Oc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Qc(a,b,c,d,0)|0}function Pc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+16|0;f=g|0;Qc(a,b,d,e,f)|0;i=g;return (C=c[f+4>>2]|0,c[f>>2]|0)|0}function Qc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=a;j=b;k=j;h=d;n=e;i=n;if(!k){g=(f|0)!=0;if(!i){if(g){c[f>>2]=(l>>>0)%(h>>>0);c[f+4>>2]=0}n=0;f=(l>>>0)/(h>>>0)>>>0;return (C=n,f)|0}else{if(!g){n=0;f=0;return (C=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;f=0;return (C=n,f)|0}}g=(i|0)==0;do if(h){if(!g){g=(aa(i|0)|0)-(aa(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;b=g-31>>31;h=m;a=l>>>(m>>>0)&b|k<<i;b=k>>>(m>>>0)&b;g=0;i=l<<i;break}if(!f){n=0;f=0;return (C=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=j|b&0;n=0;f=0;return (C=n,f)|0}g=h-1|0;if(g&h){i=(aa(h|0)|0)+33-(aa(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;b=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<<m|l>>>(i>>>0))&b;b=b&k>>>(i>>>0);g=l<<p&j;i=(k<<p|l>>>(o>>>0))&j|l<<m&i-33>>31;break}if(f){c[f>>2]=g&l;c[f+4>>2]=0}if((h|0)==1){o=j|b&0;p=a|0|0;return (C=o,p)|0}else{p=Jc(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (C=o,p)|0}}else{if(g){if(f){c[f>>2]=(k>>>0)%(h>>>0);c[f+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (C=o,p)|0}if(!l){if(f){c[f>>2]=0;c[f+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (C=o,p)|0}g=i-1|0;if(!(g&i)){if(f){c[f>>2]=a|0;c[f+4>>2]=g&k|b&0}o=0;p=k>>>((Jc(i|0)|0)>>>0);return (C=o,p)|0}g=(aa(i|0)|0)-(aa(k|0)|0)|0;if(g>>>0<=30){b=g+1|0;i=31-g|0;h=b;a=k<<i|l>>>(b>>>0);b=k>>>(b>>>0);g=0;i=l<<i;break}if(!f){o=0;p=0;return (C=o,p)|0}c[f>>2]=a|0;c[f+4>>2]=j|b&0;o=0;p=0;return (C=o,p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=Gc(m|0,l|0,-1,-1)|0;d=C;j=i;i=0;do{e=j;j=g>>>31|j<<1;g=i|g<<1;e=a<<1|e>>>31|0;n=a>>>31|b<<1|0;Cc(k,d,e,n)|0;p=C;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=Cc(e,n,o&m,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l)|0;b=C;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(f){c[f>>2]=a;c[f+4>>2]=b}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (C=o,p)|0}function Rc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ra[a&1](b|0,c|0,d|0)|0}function Sc(a,b,c){a=a|0;b=b|0;c=c|0;ba(0);return 0}\n\n// EMSCRIPTEN_END_FUNCS\nvar ra=[Sc,qc];return{_malloc:vc,_i64Subtract:Cc,_free:wc,_i64Add:Gc,_memmove:Hc,_memset:Bc,___cxa_demangle:Ba,_memcpy:Fc,_bitshift64Lshr:Dc,_bitshift64Shl:Ec,runPostSets:Ac,stackAlloc:sa,stackSave:ta,stackRestore:ua,establishStackSpace:va,setThrew:wa,setTempRet0:za,getTempRet0:Aa,dynCall_iiii:Rc}})\n\n\n// EMSCRIPTEN_END_ASM\n(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var ___cxa_demangle=Module[\"___cxa_demangle\"]=asm[\"___cxa_demangle\"];var _i64Subtract=Module[\"_i64Subtract\"]=asm[\"_i64Subtract\"];var _free=Module[\"_free\"]=asm[\"_free\"];var runPostSets=Module[\"runPostSets\"]=asm[\"runPostSets\"];var _i64Add=Module[\"_i64Add\"]=asm[\"_i64Add\"];var _memmove=Module[\"_memmove\"]=asm[\"_memmove\"];var _memset=Module[\"_memset\"]=asm[\"_memset\"];var _malloc=Module[\"_malloc\"]=asm[\"_malloc\"];var _memcpy=Module[\"_memcpy\"]=asm[\"_memcpy\"];var _bitshift64Lshr=Module[\"_bitshift64Lshr\"]=asm[\"_bitshift64Lshr\"];var _bitshift64Shl=Module[\"_bitshift64Shl\"]=asm[\"_bitshift64Shl\"];var dynCall_iiii=Module[\"dynCall_iiii\"]=asm[\"dynCall_iiii\"];Runtime.stackAlloc=asm[\"stackAlloc\"];Runtime.stackSave=asm[\"stackSave\"];Runtime.stackRestore=asm[\"stackRestore\"];Runtime.establishStackSpace=asm[\"establishStackSpace\"];Runtime.setTempRet0=asm[\"setTempRet0\"];Runtime.getTempRet0=asm[\"getTempRet0\"];function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module[\"calledRun\"])run();if(!Module[\"calledRun\"])dependenciesFulfilled=runCaller};Module[\"callMain\"]=Module.callMain=function callMain(args){assert(runDependencies==0,\"cannot call main when async dependencies remain! (listen on __ATMAIN__)\");assert(__ATPRERUN__.length==0,\"cannot call main when preRun functions remain to be called\");args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module[\"thisProgram\"]),\"i8\",ALLOC_NORMAL)];pad();for(var i=0;i<argc-1;i=i+1){argv.push(allocate(intArrayFromString(args[i]),\"i8\",ALLOC_NORMAL));pad()}argv.push(0);argv=allocate(argv,\"i32\",ALLOC_NORMAL);try{var ret=Module[\"_main\"](argc,argv,0);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e==\"SimulateInfiniteLoop\"){Module[\"noExitRuntime\"]=true;return}else{if(e&&typeof e===\"object\"&&e.stack)Module.printErr(\"exception thrown: \"+[e,e.stack]);throw e}}finally{calledMain=true}};function run(args){args=args||Module[\"arguments\"];if(preloadStartTime===null)preloadStartTime=Date.now();if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module[\"calledRun\"])return;function doRun(){if(Module[\"calledRun\"])return;Module[\"calledRun\"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(Module[\"_main\"]&&shouldRunNow)Module[\"callMain\"](args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout((function(){setTimeout((function(){Module[\"setStatus\"](\"\")}),1);doRun()}),1)}else{doRun()}}Module[\"run\"]=Module.run=run;function exit(status,implicit){if(implicit&&Module[\"noExitRuntime\"]){return}if(Module[\"noExitRuntime\"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}if(ENVIRONMENT_IS_NODE){process[\"stdout\"][\"once\"](\"drain\",(function(){process[\"exit\"](status)}));console.log(\" \");setTimeout((function(){process[\"exit\"](status)}),500)}else if(ENVIRONMENT_IS_SHELL&&typeof quit===\"function\"){quit(status)}throw new ExitStatus(status)}Module[\"exit\"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=\"\"}ABORT=true;EXITSTATUS=1;var extra=\"\\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.\";var output=\"abort(\"+what+\") at \"+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module[\"abort\"]=Module.abort=abort;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"]){shouldRunNow=false}run()\n\n\n\n\n\n  return Module;\n};\n\n  var m = Module();\n  var status = m._malloc(4);\n  var buf = m._malloc(2048);\n\n  return function(func) {\n    if (func.length >= 2048) return null;\n    m.writeStringToMemory(func.substr(1), buf);\n    var ret = m['___cxa_demangle'](buf, 0, 0, status);\n    var result = null;\n    if (m.HEAP32[status >> 2] === 0 && ret) {\n      result = m.Pointer_stringify(ret);\n      m._free(ret);\n    }\n    return result;\n  };\n})();\n\n// The emscripten compiler exports the Module object; we just want\n// the demangle function\nif (typeof module === \"object\" && typeof module.exports === \"object\") {\n  module.exports = demangle;\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(13), \"/\"))\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n/***/ })\n/******/ ]);\n//# sourceMappingURL=bundle.js.map"
  },
  {
    "path": "dist/components/Editor.js",
    "content": "//# sourceMappingURL=Editor.js.map"
  },
  {
    "path": "dist/index.js",
    "content": "\"use strict\";\nvar React = require(\"react\");\nvar ReactDOM = require(\"react-dom\");\nvar App_1 = require(\"./App\");\nReactDOM.render(React.createElement(App_1.AppComponent, null), document.getElementById(\"app\"));\n//# sourceMappingURL=index.js.map"
  },
  {
    "path": "index.html",
    "content": "<!DOCTYPE html>\n<html>\n\n<head>\n    <meta charset=\"UTF-8\" />\n    <title>WasmFiddle</title>\n</head>\n\n<body>\n    <div id=\"app\" class=\"appWrapper\"></div>\n    <link type=\"text/css\" rel=\"stylesheet\" href=\"lib/app.css\" />\n    <!-- Dependencies -->\n    <script src=\"./lib/react.js\"></script>\n    <script src=\"./lib/react-dom.js\"></script>\n\n    <script src=\"lib/src-noconflict/ace.js\" type=\"text/javascript\" charset=\"utf-8\"></script>\n    <script src=\"lib/src-noconflict/ext-language_tools.js\"></script>\n    <script src=\"lib/mousetrap.min.js\"></script>\n    <script src=\"https://use.fontawesome.com/d0dc131437.js\"></script>\n\n    <!-- Main -->\n    <script src=\"./dist/bundle.js\"></script>\n    <script>\n        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),\n        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n        })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');\n        ga('create', 'UA-93230088-2', 'auto');\n        ga('send', 'pageview');\n        window.addEventListener('serviceevent', function (e) {\n          ga('send', 'event', e.detail.category, e.detail.action, e.detail.label);\n        });\n      </script>\n</body>\n\n</html>\n"
  },
  {
    "path": "lib/app.css",
    "content": "html, body {\n  height: 100%;\n  width: 100%;\n  margin: 0;\n  padding: 0;\n  background-color: #2F3129;\n}\n\n.appWrapper {\n  height: 100%;\n  width: 100%;\n}\n\n.gAppContainer {\n  height: 100%;\n  width: 100%;\n  display: grid;\n  grid-template-rows: 40px auto 288px;\n  grid-template-columns: 100%;\n}\n\n.gHeader {\n  display: grid;\n  background-color: #424242;\n  color: white;\n  height: 100%;\n  width: 100%;\n  grid-template-rows: 100%;\n  grid-template-columns: 40px auto 160px;\n}\n\n.gShareURI {\n  margin-left: 10px;\n  font-size: 16px;\n  font-family: Monaco, Menlo, \"Ubuntu Mono\", Consolas, source-code-pro, monospace;\n  align-self: center;\n}\n\n.gShareButton {\n  font-family: Monaco, Menlo, \"Ubuntu Mono\", Consolas, source-code-pro, monospace;\n  justify-self: center;\n  align-self: center;\n}\n\n.gV2 {\n  display: grid;\n  height: 100%;\n  width: 100%;\n  grid-template-rows: 100%;\n  grid-template-columns: 50% 50%;\n}\n\n.gV3 {\n  display: grid;\n  height: 100%;\n  width: 100%;\n  grid-template-rows: 100%;\n  grid-template-columns: 25% 25% auto;\n}\n\n.editorContainer {\n  background-color: #2F3129;\n  width: 100%;\n  height: 100%;\n}\n\n.editorHeader {\n  background: #202020;\n  color: white;\n  width: auto;\n  height: 32px;\n  line-height: 32px;\n  padding-left: 4px;\n  padding-right: 4px;\n}\n\n.editorBody {\n  width: 100%;\n  height: calc(100% - 32px);\n}\n\n.editorHeaderTitle {\n  color: #32a9e6;\n  font-size: 12px;\n  font-weight: bold;\n  font-family: Monaco, Menlo, \"Ubuntu Mono\", Consolas, source-code-pro, monospace;\n}\n\n.editorHeaderButtons {\n  float: right;\n  padding-right: 8px;\n  font-size: 11px;\n  font-family: Monaco, Menlo, \"Ubuntu Mono\", Consolas, source-code-pro, monospace;\n}\n\n.settingSectionHeader {\n  padding-top: 8px;\n  color: #32a9e6;\n  font-size: 11px;\n  font-family: Monaco, Menlo, \"Ubuntu Mono\", Consolas, source-code-pro, monospace;\n}\n\n.codeSpan {\n  padding-top: 8px;\n  color: #32a9e6;\n  font-size: 11px;\n  font-family: Monaco, Menlo, \"Ubuntu Mono\", Consolas, source-code-pro, monospace;\n}\n\n.settingSection, .helpSection {\n  padding-top: 4px;\n  font-size: 11px;\n  font-family: Monaco, Menlo, \"Ubuntu Mono\", Consolas, source-code-pro, monospace;\n}\n\n.header {\n  padding: 8px;\n  width: 100%;\n  height: 50px;\n  background-color: #2F3129;\n  color: #AAAAAA;\n}\n\n.headerTitle {\n  font-size: 16px;\n  line-height: 16px;\n  font-family: Monaco, Menlo, \"Ubuntu Mono\", Consolas, source-code-pro, monospace;\n}\n\n#side {\n  height: 100%;\n  background-color: #2F3129;\n  color: #AAAAAA;\n}\n\n.compilerOptions {\n  width: 128px;\n}\n\n.waIcon {\n  padding: 4px;\n  width: 32px;\n  height: 32px;\n}\n\n.fa-cloud-upload:hover {\n    color: #87ec8d;\n    cursor: pointer;\n}\n\na:hover {\n  color: #87ec8d;\n  cursor: pointer;\n}\n\n.outputCanvas {\n  background-color: white;\n  width: 600px;\n  height: 600px;\n}\n\n.settingsOverlay, .canvasOverlay, .helpOverlay {\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  margin-top: auto;\n  margin-bottom: auto;\n  margin-right: auto;\n  margin-left: auto;\n  width: 600px;\n  height: 632px;\n  position: fixed;\n  z-index: 20;\n  opacity: 1;\n  background-color: rgba(20, 20, 20, 0.9);\n  padding-left: 10px;\n  vertical-align: middle;\n  color: white;\n  padding: 10px;\n  font-size: 11px;\n  border-radius: 1em;\n}\n\n\n.notSupported {\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  margin-top: auto;\n  margin-bottom: auto;\n  margin-right: auto;\n  margin-left: auto;\n  width: 400px;\n  height: 256px;\n  position: fixed;\n  z-index: 20;\n  opacity: 1;\n  background-color: rgba(20, 20, 20, 0.9);\n  padding-left: 10px;\n  vertical-align: middle;\n  color: white;\n  padding: 10px;\n  border-radius: 1em;\n  font-size: 16px;\n  font-family: Monaco, Menlo, \"Ubuntu Mono\", Consolas, source-code-pro, monospace;\n  text-align: justify;\n}\n\n.hidden {\n  display: none;\n}\niframe.hidden {\n  position: fixed;\n  top: 0;\n  right: 0;\n  width: 10;\n  height: 10;\n  z-index: -1000;\n  visibility: hidden;\n}\n\n.disabled-link {\n  pointer-events: none;\n  color: #AAAAAA;\n}"
  },
  {
    "path": "lib/react-dom.js",
    "content": "/**\n * ReactDOM v15.3.1\n *\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n// Based off https://github.com/ForbesLindesay/umd/blob/master/template.js\n;(function(f) {\n  // CommonJS\n  if (typeof exports === \"object\" && typeof module !== \"undefined\") {\n    module.exports = f(require('react'));\n\n  // RequireJS\n  } else if (typeof define === \"function\" && define.amd) {\n    define(['react'], f);\n\n  // <script>\n  } else {\n    var g;\n    if (typeof window !== \"undefined\") {\n      g = window;\n    } else if (typeof global !== \"undefined\") {\n      g = global;\n    } else if (typeof self !== \"undefined\") {\n      g = self;\n    } else {\n      // works providing we're not in \"use strict\";\n      // needed for Java 8 Nashorn\n      // see https://github.com/facebook/react/issues/3037\n      g = this;\n    }\n    g.ReactDOM = f(g.React);\n  }\n\n})(function(React) {\n  return React.__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n});\n"
  },
  {
    "path": "lib/react.js",
    "content": " /**\n  * React v15.3.1\n  */\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.React = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule AutoFocusUtils\n */\n\n'use strict';\n\nvar ReactDOMComponentTree = _dereq_(42);\n\nvar focusNode = _dereq_(156);\n\nvar AutoFocusUtils = {\n  focusDOMComponent: function () {\n    focusNode(ReactDOMComponentTree.getNodeFromInstance(this));\n  }\n};\n\nmodule.exports = AutoFocusUtils;\n},{\"156\":156,\"42\":42}],2:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule BeforeInputEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = _dereq_(16);\nvar EventPropagators = _dereq_(20);\nvar ExecutionEnvironment = _dereq_(148);\nvar FallbackCompositionState = _dereq_(21);\nvar SyntheticCompositionEvent = _dereq_(103);\nvar SyntheticInputEvent = _dereq_(107);\n\nvar keyOf = _dereq_(166);\n\nvar END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space\nvar START_KEYCODE = 229;\n\nvar canUseCompositionEvent = ExecutionEnvironment.canUseDOM && 'CompositionEvent' in window;\n\nvar documentMode = null;\nif (ExecutionEnvironment.canUseDOM && 'documentMode' in document) {\n  documentMode = document.documentMode;\n}\n\n// Webkit offers a very useful `textInput` event that can be used to\n// directly represent `beforeInput`. The IE `textinput` event is not as\n// useful, so we don't use it.\nvar canUseTextInputEvent = ExecutionEnvironment.canUseDOM && 'TextEvent' in window && !documentMode && !isPresto();\n\n// In IE9+, we have access to composition events, but the data supplied\n// by the native compositionend event may be incorrect. Japanese ideographic\n// spaces, for instance (\\u3000) are not recorded correctly.\nvar useFallbackCompositionData = ExecutionEnvironment.canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11);\n\n/**\n * Opera <= 12 includes TextEvent in window, but does not fire\n * text input events. Rely on keypress instead.\n */\nfunction isPresto() {\n  var opera = window.opera;\n  return typeof opera === 'object' && typeof opera.version === 'function' && parseInt(opera.version(), 10) <= 12;\n}\n\nvar SPACEBAR_CODE = 32;\nvar SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\n// Events and their corresponding property names.\nvar eventTypes = {\n  beforeInput: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onBeforeInput: null }),\n      captured: keyOf({ onBeforeInputCapture: null })\n    },\n    dependencies: [topLevelTypes.topCompositionEnd, topLevelTypes.topKeyPress, topLevelTypes.topTextInput, topLevelTypes.topPaste]\n  },\n  compositionEnd: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCompositionEnd: null }),\n      captured: keyOf({ onCompositionEndCapture: null })\n    },\n    dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionEnd, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown]\n  },\n  compositionStart: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCompositionStart: null }),\n      captured: keyOf({ onCompositionStartCapture: null })\n    },\n    dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionStart, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown]\n  },\n  compositionUpdate: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCompositionUpdate: null }),\n      captured: keyOf({ onCompositionUpdateCapture: null })\n    },\n    dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionUpdate, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown]\n  }\n};\n\n// Track whether we've ever handled a keypress on the space key.\nvar hasSpaceKeypress = false;\n\n/**\n * Return whether a native keypress event is assumed to be a command.\n * This is required because Firefox fires `keypress` events for key commands\n * (cut, copy, select-all, etc.) even though no character is inserted.\n */\nfunction isKeypressCommand(nativeEvent) {\n  return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) &&\n  // ctrlKey && altKey is equivalent to AltGr, and is not a command.\n  !(nativeEvent.ctrlKey && nativeEvent.altKey);\n}\n\n/**\n * Translate native top level events into event types.\n *\n * @param {string} topLevelType\n * @return {object}\n */\nfunction getCompositionEventType(topLevelType) {\n  switch (topLevelType) {\n    case topLevelTypes.topCompositionStart:\n      return eventTypes.compositionStart;\n    case topLevelTypes.topCompositionEnd:\n      return eventTypes.compositionEnd;\n    case topLevelTypes.topCompositionUpdate:\n      return eventTypes.compositionUpdate;\n  }\n}\n\n/**\n * Does our fallback best-guess model think this event signifies that\n * composition has begun?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionStart(topLevelType, nativeEvent) {\n  return topLevelType === topLevelTypes.topKeyDown && nativeEvent.keyCode === START_KEYCODE;\n}\n\n/**\n * Does our fallback mode think that this event is the end of composition?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionEnd(topLevelType, nativeEvent) {\n  switch (topLevelType) {\n    case topLevelTypes.topKeyUp:\n      // Command keys insert or clear IME input.\n      return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;\n    case topLevelTypes.topKeyDown:\n      // Expect IME keyCode on each keydown. If we get any other\n      // code we must have exited earlier.\n      return nativeEvent.keyCode !== START_KEYCODE;\n    case topLevelTypes.topKeyPress:\n    case topLevelTypes.topMouseDown:\n    case topLevelTypes.topBlur:\n      // Events are not possible without cancelling IME.\n      return true;\n    default:\n      return false;\n  }\n}\n\n/**\n * Google Input Tools provides composition data via a CustomEvent,\n * with the `data` property populated in the `detail` object. If this\n * is available on the event object, use it. If not, this is a plain\n * composition event and we have nothing special to extract.\n *\n * @param {object} nativeEvent\n * @return {?string}\n */\nfunction getDataFromCustomEvent(nativeEvent) {\n  var detail = nativeEvent.detail;\n  if (typeof detail === 'object' && 'data' in detail) {\n    return detail.data;\n  }\n  return null;\n}\n\n// Track the current IME composition fallback object, if any.\nvar currentComposition = null;\n\n/**\n * @return {?object} A SyntheticCompositionEvent.\n */\nfunction extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n  var eventType;\n  var fallbackData;\n\n  if (canUseCompositionEvent) {\n    eventType = getCompositionEventType(topLevelType);\n  } else if (!currentComposition) {\n    if (isFallbackCompositionStart(topLevelType, nativeEvent)) {\n      eventType = eventTypes.compositionStart;\n    }\n  } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n    eventType = eventTypes.compositionEnd;\n  }\n\n  if (!eventType) {\n    return null;\n  }\n\n  if (useFallbackCompositionData) {\n    // The current composition is stored statically and must not be\n    // overwritten while composition continues.\n    if (!currentComposition && eventType === eventTypes.compositionStart) {\n      currentComposition = FallbackCompositionState.getPooled(nativeEventTarget);\n    } else if (eventType === eventTypes.compositionEnd) {\n      if (currentComposition) {\n        fallbackData = currentComposition.getData();\n      }\n    }\n  }\n\n  var event = SyntheticCompositionEvent.getPooled(eventType, targetInst, nativeEvent, nativeEventTarget);\n\n  if (fallbackData) {\n    // Inject data generated from fallback path into the synthetic event.\n    // This matches the property of native CompositionEventInterface.\n    event.data = fallbackData;\n  } else {\n    var customData = getDataFromCustomEvent(nativeEvent);\n    if (customData !== null) {\n      event.data = customData;\n    }\n  }\n\n  EventPropagators.accumulateTwoPhaseDispatches(event);\n  return event;\n}\n\n/**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The string corresponding to this `beforeInput` event.\n */\nfunction getNativeBeforeInputChars(topLevelType, nativeEvent) {\n  switch (topLevelType) {\n    case topLevelTypes.topCompositionEnd:\n      return getDataFromCustomEvent(nativeEvent);\n    case topLevelTypes.topKeyPress:\n      /**\n       * If native `textInput` events are available, our goal is to make\n       * use of them. However, there is a special case: the spacebar key.\n       * In Webkit, preventing default on a spacebar `textInput` event\n       * cancels character insertion, but it *also* causes the browser\n       * to fall back to its default spacebar behavior of scrolling the\n       * page.\n       *\n       * Tracking at:\n       * https://code.google.com/p/chromium/issues/detail?id=355103\n       *\n       * To avoid this issue, use the keypress event as if no `textInput`\n       * event is available.\n       */\n      var which = nativeEvent.which;\n      if (which !== SPACEBAR_CODE) {\n        return null;\n      }\n\n      hasSpaceKeypress = true;\n      return SPACEBAR_CHAR;\n\n    case topLevelTypes.topTextInput:\n      // Record the characters to be added to the DOM.\n      var chars = nativeEvent.data;\n\n      // If it's a spacebar character, assume that we have already handled\n      // it at the keypress level and bail immediately. Android Chrome\n      // doesn't give us keycodes, so we need to blacklist it.\n      if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {\n        return null;\n      }\n\n      return chars;\n\n    default:\n      // For other native event types, do nothing.\n      return null;\n  }\n}\n\n/**\n * For browsers that do not provide the `textInput` event, extract the\n * appropriate string to use for SyntheticInputEvent.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The fallback string for this `beforeInput` event.\n */\nfunction getFallbackBeforeInputChars(topLevelType, nativeEvent) {\n  // If we are currently composing (IME) and using a fallback to do so,\n  // try to extract the composed characters from the fallback object.\n  if (currentComposition) {\n    if (topLevelType === topLevelTypes.topCompositionEnd || isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n      var chars = currentComposition.getData();\n      FallbackCompositionState.release(currentComposition);\n      currentComposition = null;\n      return chars;\n    }\n    return null;\n  }\n\n  switch (topLevelType) {\n    case topLevelTypes.topPaste:\n      // If a paste event occurs after a keypress, throw out the input\n      // chars. Paste events should not lead to BeforeInput events.\n      return null;\n    case topLevelTypes.topKeyPress:\n      /**\n       * As of v27, Firefox may fire keypress events even when no character\n       * will be inserted. A few possibilities:\n       *\n       * - `which` is `0`. Arrow keys, Esc key, etc.\n       *\n       * - `which` is the pressed key code, but no char is available.\n       *   Ex: 'AltGr + d` in Polish. There is no modified character for\n       *   this key combination and no character is inserted into the\n       *   document, but FF fires the keypress for char code `100` anyway.\n       *   No `input` event will occur.\n       *\n       * - `which` is the pressed key code, but a command combination is\n       *   being used. Ex: `Cmd+C`. No character is inserted, and no\n       *   `input` event will occur.\n       */\n      if (nativeEvent.which && !isKeypressCommand(nativeEvent)) {\n        return String.fromCharCode(nativeEvent.which);\n      }\n      return null;\n    case topLevelTypes.topCompositionEnd:\n      return useFallbackCompositionData ? null : nativeEvent.data;\n    default:\n      return null;\n  }\n}\n\n/**\n * Extract a SyntheticInputEvent for `beforeInput`, based on either native\n * `textInput` or fallback behavior.\n *\n * @return {?object} A SyntheticInputEvent.\n */\nfunction extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n  var chars;\n\n  if (canUseTextInputEvent) {\n    chars = getNativeBeforeInputChars(topLevelType, nativeEvent);\n  } else {\n    chars = getFallbackBeforeInputChars(topLevelType, nativeEvent);\n  }\n\n  // If no characters are being inserted, no BeforeInput event should\n  // be fired.\n  if (!chars) {\n    return null;\n  }\n\n  var event = SyntheticInputEvent.getPooled(eventTypes.beforeInput, targetInst, nativeEvent, nativeEventTarget);\n\n  event.data = chars;\n  EventPropagators.accumulateTwoPhaseDispatches(event);\n  return event;\n}\n\n/**\n * Create an `onBeforeInput` event to match\n * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.\n *\n * This event plugin is based on the native `textInput` event\n * available in Chrome, Safari, Opera, and IE. This event fires after\n * `onKeyPress` and `onCompositionEnd`, but before `onInput`.\n *\n * `beforeInput` is spec'd but not implemented in any browsers, and\n * the `input` event does not provide any useful information about what has\n * actually been added, contrary to the spec. Thus, `textInput` is the best\n * available event to identify the characters that have actually been inserted\n * into the target node.\n *\n * This plugin is also responsible for emitting `composition` events, thus\n * allowing us to share composition fallback code for both `beforeInput` and\n * `composition` event types.\n */\nvar BeforeInputEventPlugin = {\n\n  eventTypes: eventTypes,\n\n  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n    return [extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget), extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget)];\n  }\n};\n\nmodule.exports = BeforeInputEventPlugin;\n},{\"103\":103,\"107\":107,\"148\":148,\"16\":16,\"166\":166,\"20\":20,\"21\":21}],3:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CSSProperty\n */\n\n'use strict';\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\n\nvar isUnitlessNumber = {\n  animationIterationCount: true,\n  borderImageOutset: true,\n  borderImageSlice: true,\n  borderImageWidth: true,\n  boxFlex: true,\n  boxFlexGroup: true,\n  boxOrdinalGroup: true,\n  columnCount: true,\n  flex: true,\n  flexGrow: true,\n  flexPositive: true,\n  flexShrink: true,\n  flexNegative: true,\n  flexOrder: true,\n  gridRow: true,\n  gridColumn: true,\n  fontWeight: true,\n  lineClamp: true,\n  lineHeight: true,\n  opacity: true,\n  order: true,\n  orphans: true,\n  tabSize: true,\n  widows: true,\n  zIndex: true,\n  zoom: true,\n\n  // SVG-related properties\n  fillOpacity: true,\n  floodOpacity: true,\n  stopOpacity: true,\n  strokeDasharray: true,\n  strokeDashoffset: true,\n  strokeMiterlimit: true,\n  strokeOpacity: true,\n  strokeWidth: true\n};\n\n/**\n * @param {string} prefix vendor-specific prefix, eg: Webkit\n * @param {string} key style name, eg: transitionDuration\n * @return {string} style name prefixed with `prefix`, properly camelCased, eg:\n * WebkitTransitionDuration\n */\nfunction prefixKey(prefix, key) {\n  return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n}\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\n\n// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an\n// infinite loop, because it iterates over the newly added props too.\nObject.keys(isUnitlessNumber).forEach(function (prop) {\n  prefixes.forEach(function (prefix) {\n    isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];\n  });\n});\n\n/**\n * Most style properties can be unset by doing .style[prop] = '' but IE8\n * doesn't like doing that with shorthand properties so for the properties that\n * IE8 breaks on, which are listed here, we instead unset each of the\n * individual properties. See http://bugs.jquery.com/ticket/12385.\n * The 4-value 'clock' properties like margin, padding, border-width seem to\n * behave without any problems. Curiously, list-style works too without any\n * special prodding.\n */\nvar shorthandPropertyExpansions = {\n  background: {\n    backgroundAttachment: true,\n    backgroundColor: true,\n    backgroundImage: true,\n    backgroundPositionX: true,\n    backgroundPositionY: true,\n    backgroundRepeat: true\n  },\n  backgroundPosition: {\n    backgroundPositionX: true,\n    backgroundPositionY: true\n  },\n  border: {\n    borderWidth: true,\n    borderStyle: true,\n    borderColor: true\n  },\n  borderBottom: {\n    borderBottomWidth: true,\n    borderBottomStyle: true,\n    borderBottomColor: true\n  },\n  borderLeft: {\n    borderLeftWidth: true,\n    borderLeftStyle: true,\n    borderLeftColor: true\n  },\n  borderRight: {\n    borderRightWidth: true,\n    borderRightStyle: true,\n    borderRightColor: true\n  },\n  borderTop: {\n    borderTopWidth: true,\n    borderTopStyle: true,\n    borderTopColor: true\n  },\n  font: {\n    fontStyle: true,\n    fontVariant: true,\n    fontWeight: true,\n    fontSize: true,\n    lineHeight: true,\n    fontFamily: true\n  },\n  outline: {\n    outlineWidth: true,\n    outlineStyle: true,\n    outlineColor: true\n  }\n};\n\nvar CSSProperty = {\n  isUnitlessNumber: isUnitlessNumber,\n  shorthandPropertyExpansions: shorthandPropertyExpansions\n};\n\nmodule.exports = CSSProperty;\n},{}],4:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CSSPropertyOperations\n */\n\n'use strict';\n\nvar CSSProperty = _dereq_(3);\nvar ExecutionEnvironment = _dereq_(148);\nvar ReactInstrumentation = _dereq_(73);\n\nvar camelizeStyleName = _dereq_(150);\nvar dangerousStyleValue = _dereq_(121);\nvar hyphenateStyleName = _dereq_(161);\nvar memoizeStringOnly = _dereq_(167);\nvar warning = _dereq_(171);\n\nvar processStyleName = memoizeStringOnly(function (styleName) {\n  return hyphenateStyleName(styleName);\n});\n\nvar hasShorthandPropertyBug = false;\nvar styleFloatAccessor = 'cssFloat';\nif (ExecutionEnvironment.canUseDOM) {\n  var tempStyle = document.createElement('div').style;\n  try {\n    // IE8 throws \"Invalid argument.\" if resetting shorthand style properties.\n    tempStyle.font = '';\n  } catch (e) {\n    hasShorthandPropertyBug = true;\n  }\n  // IE8 only supports accessing cssFloat (standard) as styleFloat\n  if (document.documentElement.style.cssFloat === undefined) {\n    styleFloatAccessor = 'styleFloat';\n  }\n}\n\nif (\"development\" !== 'production') {\n  // 'msTransform' is correct, but the other prefixes should be capitalized\n  var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;\n\n  // style values shouldn't contain a semicolon\n  var badStyleValueWithSemicolonPattern = /;\\s*$/;\n\n  var warnedStyleNames = {};\n  var warnedStyleValues = {};\n  var warnedForNaNValue = false;\n\n  var warnHyphenatedStyleName = function (name, owner) {\n    if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n      return;\n    }\n\n    warnedStyleNames[name] = true;\n    \"development\" !== 'production' ? warning(false, 'Unsupported style property %s. Did you mean %s?%s', name, camelizeStyleName(name), checkRenderMessage(owner)) : void 0;\n  };\n\n  var warnBadVendoredStyleName = function (name, owner) {\n    if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n      return;\n    }\n\n    warnedStyleNames[name] = true;\n    \"development\" !== 'production' ? warning(false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?%s', name, name.charAt(0).toUpperCase() + name.slice(1), checkRenderMessage(owner)) : void 0;\n  };\n\n  var warnStyleValueWithSemicolon = function (name, value, owner) {\n    if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {\n      return;\n    }\n\n    warnedStyleValues[value] = true;\n    \"development\" !== 'production' ? warning(false, 'Style property values shouldn\\'t contain a semicolon.%s ' + 'Try \"%s: %s\" instead.', checkRenderMessage(owner), name, value.replace(badStyleValueWithSemicolonPattern, '')) : void 0;\n  };\n\n  var warnStyleValueIsNaN = function (name, value, owner) {\n    if (warnedForNaNValue) {\n      return;\n    }\n\n    warnedForNaNValue = true;\n    \"development\" !== 'production' ? warning(false, '`NaN` is an invalid value for the `%s` css style property.%s', name, checkRenderMessage(owner)) : void 0;\n  };\n\n  var checkRenderMessage = function (owner) {\n    if (owner) {\n      var name = owner.getName();\n      if (name) {\n        return ' Check the render method of `' + name + '`.';\n      }\n    }\n    return '';\n  };\n\n  /**\n   * @param {string} name\n   * @param {*} value\n   * @param {ReactDOMComponent} component\n   */\n  var warnValidStyle = function (name, value, component) {\n    var owner;\n    if (component) {\n      owner = component._currentElement._owner;\n    }\n    if (name.indexOf('-') > -1) {\n      warnHyphenatedStyleName(name, owner);\n    } else if (badVendoredStyleNamePattern.test(name)) {\n      warnBadVendoredStyleName(name, owner);\n    } else if (badStyleValueWithSemicolonPattern.test(value)) {\n      warnStyleValueWithSemicolon(name, value, owner);\n    }\n\n    if (typeof value === 'number' && isNaN(value)) {\n      warnStyleValueIsNaN(name, value, owner);\n    }\n  };\n}\n\n/**\n * Operations for dealing with CSS properties.\n */\nvar CSSPropertyOperations = {\n\n  /**\n   * Serializes a mapping of style properties for use as inline styles:\n   *\n   *   > createMarkupForStyles({width: '200px', height: 0})\n   *   \"width:200px;height:0;\"\n   *\n   * Undefined values are ignored so that declarative programming is easier.\n   * The result should be HTML-escaped before insertion into the DOM.\n   *\n   * @param {object} styles\n   * @param {ReactDOMComponent} component\n   * @return {?string}\n   */\n  createMarkupForStyles: function (styles, component) {\n    var serialized = '';\n    for (var styleName in styles) {\n      if (!styles.hasOwnProperty(styleName)) {\n        continue;\n      }\n      var styleValue = styles[styleName];\n      if (\"development\" !== 'production') {\n        warnValidStyle(styleName, styleValue, component);\n      }\n      if (styleValue != null) {\n        serialized += processStyleName(styleName) + ':';\n        serialized += dangerousStyleValue(styleName, styleValue, component) + ';';\n      }\n    }\n    return serialized || null;\n  },\n\n  /**\n   * Sets the value for multiple styles on a node.  If a value is specified as\n   * '' (empty string), the corresponding style property will be unset.\n   *\n   * @param {DOMElement} node\n   * @param {object} styles\n   * @param {ReactDOMComponent} component\n   */\n  setValueForStyles: function (node, styles, component) {\n    if (\"development\" !== 'production') {\n      ReactInstrumentation.debugTool.onHostOperation(component._debugID, 'update styles', styles);\n    }\n\n    var style = node.style;\n    for (var styleName in styles) {\n      if (!styles.hasOwnProperty(styleName)) {\n        continue;\n      }\n      if (\"development\" !== 'production') {\n        warnValidStyle(styleName, styles[styleName], component);\n      }\n      var styleValue = dangerousStyleValue(styleName, styles[styleName], component);\n      if (styleName === 'float' || styleName === 'cssFloat') {\n        styleName = styleFloatAccessor;\n      }\n      if (styleValue) {\n        style[styleName] = styleValue;\n      } else {\n        var expansion = hasShorthandPropertyBug && CSSProperty.shorthandPropertyExpansions[styleName];\n        if (expansion) {\n          // Shorthand property that IE8 won't like unsetting, so unset each\n          // component to placate it\n          for (var individualStyleName in expansion) {\n            style[individualStyleName] = '';\n          }\n        } else {\n          style[styleName] = '';\n        }\n      }\n    }\n  }\n\n};\n\nmodule.exports = CSSPropertyOperations;\n},{\"121\":121,\"148\":148,\"150\":150,\"161\":161,\"167\":167,\"171\":171,\"3\":3,\"73\":73}],5:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CallbackQueue\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140),\n    _assign = _dereq_(172);\n\nvar PooledClass = _dereq_(25);\n\nvar invariant = _dereq_(162);\n\n/**\n * A specialized pseudo-event module to help keep track of components waiting to\n * be notified when their DOM representations are available for use.\n *\n * This implements `PooledClass`, so you should never need to instantiate this.\n * Instead, use `CallbackQueue.getPooled()`.\n *\n * @class ReactMountReady\n * @implements PooledClass\n * @internal\n */\nfunction CallbackQueue() {\n  this._callbacks = null;\n  this._contexts = null;\n}\n\n_assign(CallbackQueue.prototype, {\n\n  /**\n   * Enqueues a callback to be invoked when `notifyAll` is invoked.\n   *\n   * @param {function} callback Invoked when `notifyAll` is invoked.\n   * @param {?object} context Context to call `callback` with.\n   * @internal\n   */\n  enqueue: function (callback, context) {\n    this._callbacks = this._callbacks || [];\n    this._contexts = this._contexts || [];\n    this._callbacks.push(callback);\n    this._contexts.push(context);\n  },\n\n  /**\n   * Invokes all enqueued callbacks and clears the queue. This is invoked after\n   * the DOM representation of a component has been created or updated.\n   *\n   * @internal\n   */\n  notifyAll: function () {\n    var callbacks = this._callbacks;\n    var contexts = this._contexts;\n    if (callbacks) {\n      !(callbacks.length === contexts.length) ? \"development\" !== 'production' ? invariant(false, 'Mismatched list of contexts in callback queue') : _prodInvariant('24') : void 0;\n      this._callbacks = null;\n      this._contexts = null;\n      for (var i = 0; i < callbacks.length; i++) {\n        callbacks[i].call(contexts[i]);\n      }\n      callbacks.length = 0;\n      contexts.length = 0;\n    }\n  },\n\n  checkpoint: function () {\n    return this._callbacks ? this._callbacks.length : 0;\n  },\n\n  rollback: function (len) {\n    if (this._callbacks) {\n      this._callbacks.length = len;\n      this._contexts.length = len;\n    }\n  },\n\n  /**\n   * Resets the internal queue.\n   *\n   * @internal\n   */\n  reset: function () {\n    this._callbacks = null;\n    this._contexts = null;\n  },\n\n  /**\n   * `PooledClass` looks for this.\n   */\n  destructor: function () {\n    this.reset();\n  }\n\n});\n\nPooledClass.addPoolingTo(CallbackQueue);\n\nmodule.exports = CallbackQueue;\n},{\"140\":140,\"162\":162,\"172\":172,\"25\":25}],6:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ChangeEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = _dereq_(16);\nvar EventPluginHub = _dereq_(17);\nvar EventPropagators = _dereq_(20);\nvar ExecutionEnvironment = _dereq_(148);\nvar ReactDOMComponentTree = _dereq_(42);\nvar ReactUpdates = _dereq_(96);\nvar SyntheticEvent = _dereq_(105);\n\nvar getEventTarget = _dereq_(129);\nvar isEventSupported = _dereq_(136);\nvar isTextInputElement = _dereq_(137);\nvar keyOf = _dereq_(166);\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar eventTypes = {\n  change: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onChange: null }),\n      captured: keyOf({ onChangeCapture: null })\n    },\n    dependencies: [topLevelTypes.topBlur, topLevelTypes.topChange, topLevelTypes.topClick, topLevelTypes.topFocus, topLevelTypes.topInput, topLevelTypes.topKeyDown, topLevelTypes.topKeyUp, topLevelTypes.topSelectionChange]\n  }\n};\n\n/**\n * For IE shims\n */\nvar activeElement = null;\nvar activeElementInst = null;\nvar activeElementValue = null;\nvar activeElementValueProp = null;\n\n/**\n * SECTION: handle `change` event\n */\nfunction shouldUseChangeEvent(elem) {\n  var nodeName = elem.nodeName && elem.nodeName.toLowerCase();\n  return nodeName === 'select' || nodeName === 'input' && elem.type === 'file';\n}\n\nvar doesChangeEventBubble = false;\nif (ExecutionEnvironment.canUseDOM) {\n  // See `handleChange` comment below\n  doesChangeEventBubble = isEventSupported('change') && (!('documentMode' in document) || document.documentMode > 8);\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n  var event = SyntheticEvent.getPooled(eventTypes.change, activeElementInst, nativeEvent, getEventTarget(nativeEvent));\n  EventPropagators.accumulateTwoPhaseDispatches(event);\n\n  // If change and propertychange bubbled, we'd just bind to it like all the\n  // other events and have it go through ReactBrowserEventEmitter. Since it\n  // doesn't, we manually listen for the events and so we have to enqueue and\n  // process the abstract event manually.\n  //\n  // Batching is necessary here in order to ensure that all event handlers run\n  // before the next rerender (including event handlers attached to ancestor\n  // elements instead of directly on the input). Without this, controlled\n  // components don't work properly in conjunction with event bubbling because\n  // the component is rerendered and the value reverted before all the event\n  // handlers can run. See https://github.com/facebook/react/issues/708.\n  ReactUpdates.batchedUpdates(runEventInBatch, event);\n}\n\nfunction runEventInBatch(event) {\n  EventPluginHub.enqueueEvents(event);\n  EventPluginHub.processEventQueue(false);\n}\n\nfunction startWatchingForChangeEventIE8(target, targetInst) {\n  activeElement = target;\n  activeElementInst = targetInst;\n  activeElement.attachEvent('onchange', manualDispatchChangeEvent);\n}\n\nfunction stopWatchingForChangeEventIE8() {\n  if (!activeElement) {\n    return;\n  }\n  activeElement.detachEvent('onchange', manualDispatchChangeEvent);\n  activeElement = null;\n  activeElementInst = null;\n}\n\nfunction getTargetInstForChangeEvent(topLevelType, targetInst) {\n  if (topLevelType === topLevelTypes.topChange) {\n    return targetInst;\n  }\n}\nfunction handleEventsForChangeEventIE8(topLevelType, target, targetInst) {\n  if (topLevelType === topLevelTypes.topFocus) {\n    // stopWatching() should be a noop here but we call it just in case we\n    // missed a blur event somehow.\n    stopWatchingForChangeEventIE8();\n    startWatchingForChangeEventIE8(target, targetInst);\n  } else if (topLevelType === topLevelTypes.topBlur) {\n    stopWatchingForChangeEventIE8();\n  }\n}\n\n/**\n * SECTION: handle `input` event\n */\nvar isInputEventSupported = false;\nif (ExecutionEnvironment.canUseDOM) {\n  // IE9 claims to support the input event but fails to trigger it when\n  // deleting text, so we ignore its input events.\n  // IE10+ fire input events to often, such when a placeholder\n  // changes or when an input with a placeholder is focused.\n  isInputEventSupported = isEventSupported('input') && (!('documentMode' in document) || document.documentMode > 11);\n}\n\n/**\n * (For IE <=11) Replacement getter/setter for the `value` property that gets\n * set on the active element.\n */\nvar newValueProp = {\n  get: function () {\n    return activeElementValueProp.get.call(this);\n  },\n  set: function (val) {\n    // Cast to a string so we can do equality checks.\n    activeElementValue = '' + val;\n    activeElementValueProp.set.call(this, val);\n  }\n};\n\n/**\n * (For IE <=11) Starts tracking propertychange events on the passed-in element\n * and override the value property so that we can distinguish user events from\n * value changes in JS.\n */\nfunction startWatchingForValueChange(target, targetInst) {\n  activeElement = target;\n  activeElementInst = targetInst;\n  activeElementValue = target.value;\n  activeElementValueProp = Object.getOwnPropertyDescriptor(target.constructor.prototype, 'value');\n\n  // Not guarded in a canDefineProperty check: IE8 supports defineProperty only\n  // on DOM elements\n  Object.defineProperty(activeElement, 'value', newValueProp);\n  if (activeElement.attachEvent) {\n    activeElement.attachEvent('onpropertychange', handlePropertyChange);\n  } else {\n    activeElement.addEventListener('propertychange', handlePropertyChange, false);\n  }\n}\n\n/**\n * (For IE <=11) Removes the event listeners from the currently-tracked element,\n * if any exists.\n */\nfunction stopWatchingForValueChange() {\n  if (!activeElement) {\n    return;\n  }\n\n  // delete restores the original property definition\n  delete activeElement.value;\n\n  if (activeElement.detachEvent) {\n    activeElement.detachEvent('onpropertychange', handlePropertyChange);\n  } else {\n    activeElement.removeEventListener('propertychange', handlePropertyChange, false);\n  }\n\n  activeElement = null;\n  activeElementInst = null;\n  activeElementValue = null;\n  activeElementValueProp = null;\n}\n\n/**\n * (For IE <=11) Handles a propertychange event, sending a `change` event if\n * the value of the active element has changed.\n */\nfunction handlePropertyChange(nativeEvent) {\n  if (nativeEvent.propertyName !== 'value') {\n    return;\n  }\n  var value = nativeEvent.srcElement.value;\n  if (value === activeElementValue) {\n    return;\n  }\n  activeElementValue = value;\n\n  manualDispatchChangeEvent(nativeEvent);\n}\n\n/**\n * If a `change` event should be fired, returns the target's ID.\n */\nfunction getTargetInstForInputEvent(topLevelType, targetInst) {\n  if (topLevelType === topLevelTypes.topInput) {\n    // In modern browsers (i.e., not IE8 or IE9), the input event is exactly\n    // what we want so fall through here and trigger an abstract event\n    return targetInst;\n  }\n}\n\nfunction handleEventsForInputEventIE(topLevelType, target, targetInst) {\n  if (topLevelType === topLevelTypes.topFocus) {\n    // In IE8, we can capture almost all .value changes by adding a\n    // propertychange handler and looking for events with propertyName\n    // equal to 'value'\n    // In IE9-11, propertychange fires for most input events but is buggy and\n    // doesn't fire when text is deleted, but conveniently, selectionchange\n    // appears to fire in all of the remaining cases so we catch those and\n    // forward the event if the value has changed\n    // In either case, we don't want to call the event handler if the value\n    // is changed from JS so we redefine a setter for `.value` that updates\n    // our activeElementValue variable, allowing us to ignore those changes\n    //\n    // stopWatching() should be a noop here but we call it just in case we\n    // missed a blur event somehow.\n    stopWatchingForValueChange();\n    startWatchingForValueChange(target, targetInst);\n  } else if (topLevelType === topLevelTypes.topBlur) {\n    stopWatchingForValueChange();\n  }\n}\n\n// For IE8 and IE9.\nfunction getTargetInstForInputEventIE(topLevelType, targetInst) {\n  if (topLevelType === topLevelTypes.topSelectionChange || topLevelType === topLevelTypes.topKeyUp || topLevelType === topLevelTypes.topKeyDown) {\n    // On the selectionchange event, the target is just document which isn't\n    // helpful for us so just check activeElement instead.\n    //\n    // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire\n    // propertychange on the first input event after setting `value` from a\n    // script and fires only keydown, keypress, keyup. Catching keyup usually\n    // gets it and catching keydown lets us fire an event for the first\n    // keystroke if user does a key repeat (it'll be a little delayed: right\n    // before the second keystroke). Other input methods (e.g., paste) seem to\n    // fire selectionchange normally.\n    if (activeElement && activeElement.value !== activeElementValue) {\n      activeElementValue = activeElement.value;\n      return activeElementInst;\n    }\n  }\n}\n\n/**\n * SECTION: handle `click` event\n */\nfunction shouldUseClickEvent(elem) {\n  // Use the `click` event to detect changes to checkbox and radio inputs.\n  // This approach works across all browsers, whereas `change` does not fire\n  // until `blur` in IE8.\n  return elem.nodeName && elem.nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');\n}\n\nfunction getTargetInstForClickEvent(topLevelType, targetInst) {\n  if (topLevelType === topLevelTypes.topClick) {\n    return targetInst;\n  }\n}\n\n/**\n * This plugin creates an `onChange` event that normalizes change events\n * across form elements. This event fires at a time when it's possible to\n * change the element's value without seeing a flicker.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - select\n */\nvar ChangeEventPlugin = {\n\n  eventTypes: eventTypes,\n\n  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n    var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;\n\n    var getTargetInstFunc, handleEventFunc;\n    if (shouldUseChangeEvent(targetNode)) {\n      if (doesChangeEventBubble) {\n        getTargetInstFunc = getTargetInstForChangeEvent;\n      } else {\n        handleEventFunc = handleEventsForChangeEventIE8;\n      }\n    } else if (isTextInputElement(targetNode)) {\n      if (isInputEventSupported) {\n        getTargetInstFunc = getTargetInstForInputEvent;\n      } else {\n        getTargetInstFunc = getTargetInstForInputEventIE;\n        handleEventFunc = handleEventsForInputEventIE;\n      }\n    } else if (shouldUseClickEvent(targetNode)) {\n      getTargetInstFunc = getTargetInstForClickEvent;\n    }\n\n    if (getTargetInstFunc) {\n      var inst = getTargetInstFunc(topLevelType, targetInst);\n      if (inst) {\n        var event = SyntheticEvent.getPooled(eventTypes.change, inst, nativeEvent, nativeEventTarget);\n        event.type = 'change';\n        EventPropagators.accumulateTwoPhaseDispatches(event);\n        return event;\n      }\n    }\n\n    if (handleEventFunc) {\n      handleEventFunc(topLevelType, targetNode, targetInst);\n    }\n  }\n\n};\n\nmodule.exports = ChangeEventPlugin;\n},{\"105\":105,\"129\":129,\"136\":136,\"137\":137,\"148\":148,\"16\":16,\"166\":166,\"17\":17,\"20\":20,\"42\":42,\"96\":96}],7:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMChildrenOperations\n */\n\n'use strict';\n\nvar DOMLazyTree = _dereq_(8);\nvar Danger = _dereq_(12);\nvar ReactMultiChildUpdateTypes = _dereq_(78);\nvar ReactDOMComponentTree = _dereq_(42);\nvar ReactInstrumentation = _dereq_(73);\n\nvar createMicrosoftUnsafeLocalFunction = _dereq_(120);\nvar setInnerHTML = _dereq_(142);\nvar setTextContent = _dereq_(143);\n\nfunction getNodeAfter(parentNode, node) {\n  // Special case for text components, which return [open, close] comments\n  // from getHostNode.\n  if (Array.isArray(node)) {\n    node = node[1];\n  }\n  return node ? node.nextSibling : parentNode.firstChild;\n}\n\n/**\n * Inserts `childNode` as a child of `parentNode` at the `index`.\n *\n * @param {DOMElement} parentNode Parent node in which to insert.\n * @param {DOMElement} childNode Child node to insert.\n * @param {number} index Index at which to insert the child.\n * @internal\n */\nvar insertChildAt = createMicrosoftUnsafeLocalFunction(function (parentNode, childNode, referenceNode) {\n  // We rely exclusively on `insertBefore(node, null)` instead of also using\n  // `appendChild(node)`. (Using `undefined` is not allowed by all browsers so\n  // we are careful to use `null`.)\n  parentNode.insertBefore(childNode, referenceNode);\n});\n\nfunction insertLazyTreeChildAt(parentNode, childTree, referenceNode) {\n  DOMLazyTree.insertTreeBefore(parentNode, childTree, referenceNode);\n}\n\nfunction moveChild(parentNode, childNode, referenceNode) {\n  if (Array.isArray(childNode)) {\n    moveDelimitedText(parentNode, childNode[0], childNode[1], referenceNode);\n  } else {\n    insertChildAt(parentNode, childNode, referenceNode);\n  }\n}\n\nfunction removeChild(parentNode, childNode) {\n  if (Array.isArray(childNode)) {\n    var closingComment = childNode[1];\n    childNode = childNode[0];\n    removeDelimitedText(parentNode, childNode, closingComment);\n    parentNode.removeChild(closingComment);\n  }\n  parentNode.removeChild(childNode);\n}\n\nfunction moveDelimitedText(parentNode, openingComment, closingComment, referenceNode) {\n  var node = openingComment;\n  while (true) {\n    var nextNode = node.nextSibling;\n    insertChildAt(parentNode, node, referenceNode);\n    if (node === closingComment) {\n      break;\n    }\n    node = nextNode;\n  }\n}\n\nfunction removeDelimitedText(parentNode, startNode, closingComment) {\n  while (true) {\n    var node = startNode.nextSibling;\n    if (node === closingComment) {\n      // The closing comment is removed by ReactMultiChild.\n      break;\n    } else {\n      parentNode.removeChild(node);\n    }\n  }\n}\n\nfunction replaceDelimitedText(openingComment, closingComment, stringText) {\n  var parentNode = openingComment.parentNode;\n  var nodeAfterComment = openingComment.nextSibling;\n  if (nodeAfterComment === closingComment) {\n    // There are no text nodes between the opening and closing comments; insert\n    // a new one if stringText isn't empty.\n    if (stringText) {\n      insertChildAt(parentNode, document.createTextNode(stringText), nodeAfterComment);\n    }\n  } else {\n    if (stringText) {\n      // Set the text content of the first node after the opening comment, and\n      // remove all following nodes up until the closing comment.\n      setTextContent(nodeAfterComment, stringText);\n      removeDelimitedText(parentNode, nodeAfterComment, closingComment);\n    } else {\n      removeDelimitedText(parentNode, openingComment, closingComment);\n    }\n  }\n\n  if (\"development\" !== 'production') {\n    ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(openingComment)._debugID, 'replace text', stringText);\n  }\n}\n\nvar dangerouslyReplaceNodeWithMarkup = Danger.dangerouslyReplaceNodeWithMarkup;\nif (\"development\" !== 'production') {\n  dangerouslyReplaceNodeWithMarkup = function (oldChild, markup, prevInstance) {\n    Danger.dangerouslyReplaceNodeWithMarkup(oldChild, markup);\n    if (prevInstance._debugID !== 0) {\n      ReactInstrumentation.debugTool.onHostOperation(prevInstance._debugID, 'replace with', markup.toString());\n    } else {\n      var nextInstance = ReactDOMComponentTree.getInstanceFromNode(markup.node);\n      if (nextInstance._debugID !== 0) {\n        ReactInstrumentation.debugTool.onHostOperation(nextInstance._debugID, 'mount', markup.toString());\n      }\n    }\n  };\n}\n\n/**\n * Operations for updating with DOM children.\n */\nvar DOMChildrenOperations = {\n\n  dangerouslyReplaceNodeWithMarkup: dangerouslyReplaceNodeWithMarkup,\n\n  replaceDelimitedText: replaceDelimitedText,\n\n  /**\n   * Updates a component's children by processing a series of updates. The\n   * update configurations are each expected to have a `parentNode` property.\n   *\n   * @param {array<object>} updates List of update configurations.\n   * @internal\n   */\n  processUpdates: function (parentNode, updates) {\n    if (\"development\" !== 'production') {\n      var parentNodeDebugID = ReactDOMComponentTree.getInstanceFromNode(parentNode)._debugID;\n    }\n\n    for (var k = 0; k < updates.length; k++) {\n      var update = updates[k];\n      switch (update.type) {\n        case ReactMultiChildUpdateTypes.INSERT_MARKUP:\n          insertLazyTreeChildAt(parentNode, update.content, getNodeAfter(parentNode, update.afterNode));\n          if (\"development\" !== 'production') {\n            ReactInstrumentation.debugTool.onHostOperation(parentNodeDebugID, 'insert child', { toIndex: update.toIndex, content: update.content.toString() });\n          }\n          break;\n        case ReactMultiChildUpdateTypes.MOVE_EXISTING:\n          moveChild(parentNode, update.fromNode, getNodeAfter(parentNode, update.afterNode));\n          if (\"development\" !== 'production') {\n            ReactInstrumentation.debugTool.onHostOperation(parentNodeDebugID, 'move child', { fromIndex: update.fromIndex, toIndex: update.toIndex });\n          }\n          break;\n        case ReactMultiChildUpdateTypes.SET_MARKUP:\n          setInnerHTML(parentNode, update.content);\n          if (\"development\" !== 'production') {\n            ReactInstrumentation.debugTool.onHostOperation(parentNodeDebugID, 'replace children', update.content.toString());\n          }\n          break;\n        case ReactMultiChildUpdateTypes.TEXT_CONTENT:\n          setTextContent(parentNode, update.content);\n          if (\"development\" !== 'production') {\n            ReactInstrumentation.debugTool.onHostOperation(parentNodeDebugID, 'replace text', update.content.toString());\n          }\n          break;\n        case ReactMultiChildUpdateTypes.REMOVE_NODE:\n          removeChild(parentNode, update.fromNode);\n          if (\"development\" !== 'production') {\n            ReactInstrumentation.debugTool.onHostOperation(parentNodeDebugID, 'remove child', { fromIndex: update.fromIndex });\n          }\n          break;\n      }\n    }\n  }\n\n};\n\nmodule.exports = DOMChildrenOperations;\n},{\"12\":12,\"120\":120,\"142\":142,\"143\":143,\"42\":42,\"73\":73,\"78\":78,\"8\":8}],8:[function(_dereq_,module,exports){\n/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMLazyTree\n */\n\n'use strict';\n\nvar DOMNamespaces = _dereq_(9);\nvar setInnerHTML = _dereq_(142);\n\nvar createMicrosoftUnsafeLocalFunction = _dereq_(120);\nvar setTextContent = _dereq_(143);\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\n/**\n * In IE (8-11) and Edge, appending nodes with no children is dramatically\n * faster than appending a full subtree, so we essentially queue up the\n * .appendChild calls here and apply them so each node is added to its parent\n * before any children are added.\n *\n * In other browsers, doing so is slower or neutral compared to the other order\n * (in Firefox, twice as slow) so we only do this inversion in IE.\n *\n * See https://github.com/spicyj/innerhtml-vs-createelement-vs-clonenode.\n */\nvar enableLazy = typeof document !== 'undefined' && typeof document.documentMode === 'number' || typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && /\\bEdge\\/\\d/.test(navigator.userAgent);\n\nfunction insertTreeChildren(tree) {\n  if (!enableLazy) {\n    return;\n  }\n  var node = tree.node;\n  var children = tree.children;\n  if (children.length) {\n    for (var i = 0; i < children.length; i++) {\n      insertTreeBefore(node, children[i], null);\n    }\n  } else if (tree.html != null) {\n    setInnerHTML(node, tree.html);\n  } else if (tree.text != null) {\n    setTextContent(node, tree.text);\n  }\n}\n\nvar insertTreeBefore = createMicrosoftUnsafeLocalFunction(function (parentNode, tree, referenceNode) {\n  // DocumentFragments aren't actually part of the DOM after insertion so\n  // appending children won't update the DOM. We need to ensure the fragment\n  // is properly populated first, breaking out of our lazy approach for just\n  // this level. Also, some <object> plugins (like Flash Player) will read\n  // <param> nodes immediately upon insertion into the DOM, so <object>\n  // must also be populated prior to insertion into the DOM.\n  if (tree.node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE || tree.node.nodeType === ELEMENT_NODE_TYPE && tree.node.nodeName.toLowerCase() === 'object' && (tree.node.namespaceURI == null || tree.node.namespaceURI === DOMNamespaces.html)) {\n    insertTreeChildren(tree);\n    parentNode.insertBefore(tree.node, referenceNode);\n  } else {\n    parentNode.insertBefore(tree.node, referenceNode);\n    insertTreeChildren(tree);\n  }\n});\n\nfunction replaceChildWithTree(oldNode, newTree) {\n  oldNode.parentNode.replaceChild(newTree.node, oldNode);\n  insertTreeChildren(newTree);\n}\n\nfunction queueChild(parentTree, childTree) {\n  if (enableLazy) {\n    parentTree.children.push(childTree);\n  } else {\n    parentTree.node.appendChild(childTree.node);\n  }\n}\n\nfunction queueHTML(tree, html) {\n  if (enableLazy) {\n    tree.html = html;\n  } else {\n    setInnerHTML(tree.node, html);\n  }\n}\n\nfunction queueText(tree, text) {\n  if (enableLazy) {\n    tree.text = text;\n  } else {\n    setTextContent(tree.node, text);\n  }\n}\n\nfunction toString() {\n  return this.node.nodeName;\n}\n\nfunction DOMLazyTree(node) {\n  return {\n    node: node,\n    children: [],\n    html: null,\n    text: null,\n    toString: toString\n  };\n}\n\nDOMLazyTree.insertTreeBefore = insertTreeBefore;\nDOMLazyTree.replaceChildWithTree = replaceChildWithTree;\nDOMLazyTree.queueChild = queueChild;\nDOMLazyTree.queueHTML = queueHTML;\nDOMLazyTree.queueText = queueText;\n\nmodule.exports = DOMLazyTree;\n},{\"120\":120,\"142\":142,\"143\":143,\"9\":9}],9:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMNamespaces\n */\n\n'use strict';\n\nvar DOMNamespaces = {\n  html: 'http://www.w3.org/1999/xhtml',\n  mathml: 'http://www.w3.org/1998/Math/MathML',\n  svg: 'http://www.w3.org/2000/svg'\n};\n\nmodule.exports = DOMNamespaces;\n},{}],10:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMProperty\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar invariant = _dereq_(162);\n\nfunction checkMask(value, bitmask) {\n  return (value & bitmask) === bitmask;\n}\n\nvar DOMPropertyInjection = {\n  /**\n   * Mapping from normalized, camelcased property names to a configuration that\n   * specifies how the associated DOM property should be accessed or rendered.\n   */\n  MUST_USE_PROPERTY: 0x1,\n  HAS_BOOLEAN_VALUE: 0x4,\n  HAS_NUMERIC_VALUE: 0x8,\n  HAS_POSITIVE_NUMERIC_VALUE: 0x10 | 0x8,\n  HAS_OVERLOADED_BOOLEAN_VALUE: 0x20,\n\n  /**\n   * Inject some specialized knowledge about the DOM. This takes a config object\n   * with the following properties:\n   *\n   * isCustomAttribute: function that given an attribute name will return true\n   * if it can be inserted into the DOM verbatim. Useful for data-* or aria-*\n   * attributes where it's impossible to enumerate all of the possible\n   * attribute names,\n   *\n   * Properties: object mapping DOM property name to one of the\n   * DOMPropertyInjection constants or null. If your attribute isn't in here,\n   * it won't get written to the DOM.\n   *\n   * DOMAttributeNames: object mapping React attribute name to the DOM\n   * attribute name. Attribute names not specified use the **lowercase**\n   * normalized name.\n   *\n   * DOMAttributeNamespaces: object mapping React attribute name to the DOM\n   * attribute namespace URL. (Attribute names not specified use no namespace.)\n   *\n   * DOMPropertyNames: similar to DOMAttributeNames but for DOM properties.\n   * Property names not specified use the normalized name.\n   *\n   * DOMMutationMethods: Properties that require special mutation methods. If\n   * `value` is undefined, the mutation method should unset the property.\n   *\n   * @param {object} domPropertyConfig the config as described above.\n   */\n  injectDOMPropertyConfig: function (domPropertyConfig) {\n    var Injection = DOMPropertyInjection;\n    var Properties = domPropertyConfig.Properties || {};\n    var DOMAttributeNamespaces = domPropertyConfig.DOMAttributeNamespaces || {};\n    var DOMAttributeNames = domPropertyConfig.DOMAttributeNames || {};\n    var DOMPropertyNames = domPropertyConfig.DOMPropertyNames || {};\n    var DOMMutationMethods = domPropertyConfig.DOMMutationMethods || {};\n\n    if (domPropertyConfig.isCustomAttribute) {\n      DOMProperty._isCustomAttributeFunctions.push(domPropertyConfig.isCustomAttribute);\n    }\n\n    for (var propName in Properties) {\n      !!DOMProperty.properties.hasOwnProperty(propName) ? \"development\" !== 'production' ? invariant(false, 'injectDOMPropertyConfig(...): You\\'re trying to inject DOM property \\'%s\\' which has already been injected. You may be accidentally injecting the same DOM property config twice, or you may be injecting two configs that have conflicting property names.', propName) : _prodInvariant('48', propName) : void 0;\n\n      var lowerCased = propName.toLowerCase();\n      var propConfig = Properties[propName];\n\n      var propertyInfo = {\n        attributeName: lowerCased,\n        attributeNamespace: null,\n        propertyName: propName,\n        mutationMethod: null,\n\n        mustUseProperty: checkMask(propConfig, Injection.MUST_USE_PROPERTY),\n        hasBooleanValue: checkMask(propConfig, Injection.HAS_BOOLEAN_VALUE),\n        hasNumericValue: checkMask(propConfig, Injection.HAS_NUMERIC_VALUE),\n        hasPositiveNumericValue: checkMask(propConfig, Injection.HAS_POSITIVE_NUMERIC_VALUE),\n        hasOverloadedBooleanValue: checkMask(propConfig, Injection.HAS_OVERLOADED_BOOLEAN_VALUE)\n      };\n      !(propertyInfo.hasBooleanValue + propertyInfo.hasNumericValue + propertyInfo.hasOverloadedBooleanValue <= 1) ? \"development\" !== 'production' ? invariant(false, 'DOMProperty: Value can be one of boolean, overloaded boolean, or numeric value, but not a combination: %s', propName) : _prodInvariant('50', propName) : void 0;\n\n      if (\"development\" !== 'production') {\n        DOMProperty.getPossibleStandardName[lowerCased] = propName;\n      }\n\n      if (DOMAttributeNames.hasOwnProperty(propName)) {\n        var attributeName = DOMAttributeNames[propName];\n        propertyInfo.attributeName = attributeName;\n        if (\"development\" !== 'production') {\n          DOMProperty.getPossibleStandardName[attributeName] = propName;\n        }\n      }\n\n      if (DOMAttributeNamespaces.hasOwnProperty(propName)) {\n        propertyInfo.attributeNamespace = DOMAttributeNamespaces[propName];\n      }\n\n      if (DOMPropertyNames.hasOwnProperty(propName)) {\n        propertyInfo.propertyName = DOMPropertyNames[propName];\n      }\n\n      if (DOMMutationMethods.hasOwnProperty(propName)) {\n        propertyInfo.mutationMethod = DOMMutationMethods[propName];\n      }\n\n      DOMProperty.properties[propName] = propertyInfo;\n    }\n  }\n};\n\n/* eslint-disable max-len */\nvar ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\n/* eslint-enable max-len */\n\n/**\n * DOMProperty exports lookup objects that can be used like functions:\n *\n *   > DOMProperty.isValid['id']\n *   true\n *   > DOMProperty.isValid['foobar']\n *   undefined\n *\n * Although this may be confusing, it performs better in general.\n *\n * @see http://jsperf.com/key-exists\n * @see http://jsperf.com/key-missing\n */\nvar DOMProperty = {\n\n  ID_ATTRIBUTE_NAME: 'data-reactid',\n  ROOT_ATTRIBUTE_NAME: 'data-reactroot',\n\n  ATTRIBUTE_NAME_START_CHAR: ATTRIBUTE_NAME_START_CHAR,\n  ATTRIBUTE_NAME_CHAR: ATTRIBUTE_NAME_START_CHAR + '\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040',\n\n  /**\n   * Map from property \"standard name\" to an object with info about how to set\n   * the property in the DOM. Each object contains:\n   *\n   * attributeName:\n   *   Used when rendering markup or with `*Attribute()`.\n   * attributeNamespace\n   * propertyName:\n   *   Used on DOM node instances. (This includes properties that mutate due to\n   *   external factors.)\n   * mutationMethod:\n   *   If non-null, used instead of the property or `setAttribute()` after\n   *   initial render.\n   * mustUseProperty:\n   *   Whether the property must be accessed and mutated as an object property.\n   * hasBooleanValue:\n   *   Whether the property should be removed when set to a falsey value.\n   * hasNumericValue:\n   *   Whether the property must be numeric or parse as a numeric and should be\n   *   removed when set to a falsey value.\n   * hasPositiveNumericValue:\n   *   Whether the property must be positive numeric or parse as a positive\n   *   numeric and should be removed when set to a falsey value.\n   * hasOverloadedBooleanValue:\n   *   Whether the property can be used as a flag as well as with a value.\n   *   Removed when strictly equal to false; present without a value when\n   *   strictly equal to true; present with a value otherwise.\n   */\n  properties: {},\n\n  /**\n   * Mapping from lowercase property names to the properly cased version, used\n   * to warn in the case of missing properties. Available only in __DEV__.\n   * @type {Object}\n   */\n  getPossibleStandardName: \"development\" !== 'production' ? {} : null,\n\n  /**\n   * All of the isCustomAttribute() functions that have been injected.\n   */\n  _isCustomAttributeFunctions: [],\n\n  /**\n   * Checks whether a property name is a custom attribute.\n   * @method\n   */\n  isCustomAttribute: function (attributeName) {\n    for (var i = 0; i < DOMProperty._isCustomAttributeFunctions.length; i++) {\n      var isCustomAttributeFn = DOMProperty._isCustomAttributeFunctions[i];\n      if (isCustomAttributeFn(attributeName)) {\n        return true;\n      }\n    }\n    return false;\n  },\n\n  injection: DOMPropertyInjection\n};\n\nmodule.exports = DOMProperty;\n},{\"140\":140,\"162\":162}],11:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMPropertyOperations\n */\n\n'use strict';\n\nvar DOMProperty = _dereq_(10);\nvar ReactDOMComponentTree = _dereq_(42);\nvar ReactInstrumentation = _dereq_(73);\n\nvar quoteAttributeValueForBrowser = _dereq_(139);\nvar warning = _dereq_(171);\n\nvar VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + DOMProperty.ATTRIBUTE_NAME_START_CHAR + '][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$');\nvar illegalAttributeNameCache = {};\nvar validatedAttributeNameCache = {};\n\nfunction isAttributeNameSafe(attributeName) {\n  if (validatedAttributeNameCache.hasOwnProperty(attributeName)) {\n    return true;\n  }\n  if (illegalAttributeNameCache.hasOwnProperty(attributeName)) {\n    return false;\n  }\n  if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {\n    validatedAttributeNameCache[attributeName] = true;\n    return true;\n  }\n  illegalAttributeNameCache[attributeName] = true;\n  \"development\" !== 'production' ? warning(false, 'Invalid attribute name: `%s`', attributeName) : void 0;\n  return false;\n}\n\nfunction shouldIgnoreValue(propertyInfo, value) {\n  return value == null || propertyInfo.hasBooleanValue && !value || propertyInfo.hasNumericValue && isNaN(value) || propertyInfo.hasPositiveNumericValue && value < 1 || propertyInfo.hasOverloadedBooleanValue && value === false;\n}\n\n/**\n * Operations for dealing with DOM properties.\n */\nvar DOMPropertyOperations = {\n\n  /**\n   * Creates markup for the ID property.\n   *\n   * @param {string} id Unescaped ID.\n   * @return {string} Markup string.\n   */\n  createMarkupForID: function (id) {\n    return DOMProperty.ID_ATTRIBUTE_NAME + '=' + quoteAttributeValueForBrowser(id);\n  },\n\n  setAttributeForID: function (node, id) {\n    node.setAttribute(DOMProperty.ID_ATTRIBUTE_NAME, id);\n  },\n\n  createMarkupForRoot: function () {\n    return DOMProperty.ROOT_ATTRIBUTE_NAME + '=\"\"';\n  },\n\n  setAttributeForRoot: function (node) {\n    node.setAttribute(DOMProperty.ROOT_ATTRIBUTE_NAME, '');\n  },\n\n  /**\n   * Creates markup for a property.\n   *\n   * @param {string} name\n   * @param {*} value\n   * @return {?string} Markup string, or null if the property was invalid.\n   */\n  createMarkupForProperty: function (name, value) {\n    var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n    if (propertyInfo) {\n      if (shouldIgnoreValue(propertyInfo, value)) {\n        return '';\n      }\n      var attributeName = propertyInfo.attributeName;\n      if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {\n        return attributeName + '=\"\"';\n      }\n      return attributeName + '=' + quoteAttributeValueForBrowser(value);\n    } else if (DOMProperty.isCustomAttribute(name)) {\n      if (value == null) {\n        return '';\n      }\n      return name + '=' + quoteAttributeValueForBrowser(value);\n    }\n    return null;\n  },\n\n  /**\n   * Creates markup for a custom property.\n   *\n   * @param {string} name\n   * @param {*} value\n   * @return {string} Markup string, or empty string if the property was invalid.\n   */\n  createMarkupForCustomAttribute: function (name, value) {\n    if (!isAttributeNameSafe(name) || value == null) {\n      return '';\n    }\n    return name + '=' + quoteAttributeValueForBrowser(value);\n  },\n\n  /**\n   * Sets the value for a property on a node.\n   *\n   * @param {DOMElement} node\n   * @param {string} name\n   * @param {*} value\n   */\n  setValueForProperty: function (node, name, value) {\n    var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n    if (propertyInfo) {\n      var mutationMethod = propertyInfo.mutationMethod;\n      if (mutationMethod) {\n        mutationMethod(node, value);\n      } else if (shouldIgnoreValue(propertyInfo, value)) {\n        this.deleteValueForProperty(node, name);\n        return;\n      } else if (propertyInfo.mustUseProperty) {\n        // Contrary to `setAttribute`, object properties are properly\n        // `toString`ed by IE8/9.\n        node[propertyInfo.propertyName] = value;\n      } else {\n        var attributeName = propertyInfo.attributeName;\n        var namespace = propertyInfo.attributeNamespace;\n        // `setAttribute` with objects becomes only `[object]` in IE8/9,\n        // ('' + value) makes it output the correct toString()-value.\n        if (namespace) {\n          node.setAttributeNS(namespace, attributeName, '' + value);\n        } else if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {\n          node.setAttribute(attributeName, '');\n        } else {\n          node.setAttribute(attributeName, '' + value);\n        }\n      }\n    } else if (DOMProperty.isCustomAttribute(name)) {\n      DOMPropertyOperations.setValueForAttribute(node, name, value);\n      return;\n    }\n\n    if (\"development\" !== 'production') {\n      var payload = {};\n      payload[name] = value;\n      ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 'update attribute', payload);\n    }\n  },\n\n  setValueForAttribute: function (node, name, value) {\n    if (!isAttributeNameSafe(name)) {\n      return;\n    }\n    if (value == null) {\n      node.removeAttribute(name);\n    } else {\n      node.setAttribute(name, '' + value);\n    }\n\n    if (\"development\" !== 'production') {\n      var payload = {};\n      payload[name] = value;\n      ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 'update attribute', payload);\n    }\n  },\n\n  /**\n   * Deletes an attributes from a node.\n   *\n   * @param {DOMElement} node\n   * @param {string} name\n   */\n  deleteValueForAttribute: function (node, name) {\n    node.removeAttribute(name);\n    if (\"development\" !== 'production') {\n      ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 'remove attribute', name);\n    }\n  },\n\n  /**\n   * Deletes the value for a property on a node.\n   *\n   * @param {DOMElement} node\n   * @param {string} name\n   */\n  deleteValueForProperty: function (node, name) {\n    var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n    if (propertyInfo) {\n      var mutationMethod = propertyInfo.mutationMethod;\n      if (mutationMethod) {\n        mutationMethod(node, undefined);\n      } else if (propertyInfo.mustUseProperty) {\n        var propName = propertyInfo.propertyName;\n        if (propertyInfo.hasBooleanValue) {\n          node[propName] = false;\n        } else {\n          node[propName] = '';\n        }\n      } else {\n        node.removeAttribute(propertyInfo.attributeName);\n      }\n    } else if (DOMProperty.isCustomAttribute(name)) {\n      node.removeAttribute(name);\n    }\n\n    if (\"development\" !== 'production') {\n      ReactInstrumentation.debugTool.onHostOperation(ReactDOMComponentTree.getInstanceFromNode(node)._debugID, 'remove attribute', name);\n    }\n  }\n\n};\n\nmodule.exports = DOMPropertyOperations;\n},{\"10\":10,\"139\":139,\"171\":171,\"42\":42,\"73\":73}],12:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Danger\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar DOMLazyTree = _dereq_(8);\nvar ExecutionEnvironment = _dereq_(148);\n\nvar createNodesFromMarkup = _dereq_(153);\nvar emptyFunction = _dereq_(154);\nvar invariant = _dereq_(162);\n\nvar Danger = {\n\n  /**\n   * Replaces a node with a string of markup at its current position within its\n   * parent. The markup must render into a single root node.\n   *\n   * @param {DOMElement} oldChild Child node to replace.\n   * @param {string} markup Markup to render in place of the child node.\n   * @internal\n   */\n  dangerouslyReplaceNodeWithMarkup: function (oldChild, markup) {\n    !ExecutionEnvironment.canUseDOM ? \"development\" !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot render markup in a worker thread. Make sure `window` and `document` are available globally before requiring React when unit testing or use ReactDOMServer.renderToString() for server rendering.') : _prodInvariant('56') : void 0;\n    !markup ? \"development\" !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : _prodInvariant('57') : void 0;\n    !(oldChild.nodeName !== 'HTML') ? \"development\" !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot replace markup of the <html> node. This is because browser quirks make this unreliable and/or slow. If you want to render to the root you must use server rendering. See ReactDOMServer.renderToString().') : _prodInvariant('58') : void 0;\n\n    if (typeof markup === 'string') {\n      var newChild = createNodesFromMarkup(markup, emptyFunction)[0];\n      oldChild.parentNode.replaceChild(newChild, oldChild);\n    } else {\n      DOMLazyTree.replaceChildWithTree(oldChild, markup);\n    }\n  }\n\n};\n\nmodule.exports = Danger;\n},{\"140\":140,\"148\":148,\"153\":153,\"154\":154,\"162\":162,\"8\":8}],13:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DefaultEventPluginOrder\n */\n\n'use strict';\n\nvar keyOf = _dereq_(166);\n\n/**\n * Module that is injectable into `EventPluginHub`, that specifies a\n * deterministic ordering of `EventPlugin`s. A convenient way to reason about\n * plugins, without having to package every one of them. This is better than\n * having plugins be ordered in the same order that they are injected because\n * that ordering would be influenced by the packaging order.\n * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that\n * preventing default on events is convenient in `SimpleEventPlugin` handlers.\n */\nvar DefaultEventPluginOrder = [keyOf({ ResponderEventPlugin: null }), keyOf({ SimpleEventPlugin: null }), keyOf({ TapEventPlugin: null }), keyOf({ EnterLeaveEventPlugin: null }), keyOf({ ChangeEventPlugin: null }), keyOf({ SelectEventPlugin: null }), keyOf({ BeforeInputEventPlugin: null })];\n\nmodule.exports = DefaultEventPluginOrder;\n},{\"166\":166}],14:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DisabledInputUtils\n */\n\n'use strict';\n\nvar disableableMouseListenerNames = {\n  onClick: true,\n  onDoubleClick: true,\n  onMouseDown: true,\n  onMouseMove: true,\n  onMouseUp: true,\n\n  onClickCapture: true,\n  onDoubleClickCapture: true,\n  onMouseDownCapture: true,\n  onMouseMoveCapture: true,\n  onMouseUpCapture: true\n};\n\n/**\n * Implements a host component that does not receive mouse events\n * when `disabled` is set.\n */\nvar DisabledInputUtils = {\n  getHostProps: function (inst, props) {\n    if (!props.disabled) {\n      return props;\n    }\n\n    // Copy the props, except the mouse listeners\n    var hostProps = {};\n    for (var key in props) {\n      if (!disableableMouseListenerNames[key] && props.hasOwnProperty(key)) {\n        hostProps[key] = props[key];\n      }\n    }\n\n    return hostProps;\n  }\n};\n\nmodule.exports = DisabledInputUtils;\n},{}],15:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EnterLeaveEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = _dereq_(16);\nvar EventPropagators = _dereq_(20);\nvar ReactDOMComponentTree = _dereq_(42);\nvar SyntheticMouseEvent = _dereq_(109);\n\nvar keyOf = _dereq_(166);\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar eventTypes = {\n  mouseEnter: {\n    registrationName: keyOf({ onMouseEnter: null }),\n    dependencies: [topLevelTypes.topMouseOut, topLevelTypes.topMouseOver]\n  },\n  mouseLeave: {\n    registrationName: keyOf({ onMouseLeave: null }),\n    dependencies: [topLevelTypes.topMouseOut, topLevelTypes.topMouseOver]\n  }\n};\n\nvar EnterLeaveEventPlugin = {\n\n  eventTypes: eventTypes,\n\n  /**\n   * For almost every interaction we care about, there will be both a top-level\n   * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that\n   * we do not extract duplicate events. However, moving the mouse into the\n   * browser from outside will not fire a `mouseout` event. In this case, we use\n   * the `mouseover` top-level event.\n   */\n  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n    if (topLevelType === topLevelTypes.topMouseOver && (nativeEvent.relatedTarget || nativeEvent.fromElement)) {\n      return null;\n    }\n    if (topLevelType !== topLevelTypes.topMouseOut && topLevelType !== topLevelTypes.topMouseOver) {\n      // Must not be a mouse in or mouse out - ignoring.\n      return null;\n    }\n\n    var win;\n    if (nativeEventTarget.window === nativeEventTarget) {\n      // `nativeEventTarget` is probably a window object.\n      win = nativeEventTarget;\n    } else {\n      // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n      var doc = nativeEventTarget.ownerDocument;\n      if (doc) {\n        win = doc.defaultView || doc.parentWindow;\n      } else {\n        win = window;\n      }\n    }\n\n    var from;\n    var to;\n    if (topLevelType === topLevelTypes.topMouseOut) {\n      from = targetInst;\n      var related = nativeEvent.relatedTarget || nativeEvent.toElement;\n      to = related ? ReactDOMComponentTree.getClosestInstanceFromNode(related) : null;\n    } else {\n      // Moving to a node from outside the window.\n      from = null;\n      to = targetInst;\n    }\n\n    if (from === to) {\n      // Nothing pertains to our managed components.\n      return null;\n    }\n\n    var fromNode = from == null ? win : ReactDOMComponentTree.getNodeFromInstance(from);\n    var toNode = to == null ? win : ReactDOMComponentTree.getNodeFromInstance(to);\n\n    var leave = SyntheticMouseEvent.getPooled(eventTypes.mouseLeave, from, nativeEvent, nativeEventTarget);\n    leave.type = 'mouseleave';\n    leave.target = fromNode;\n    leave.relatedTarget = toNode;\n\n    var enter = SyntheticMouseEvent.getPooled(eventTypes.mouseEnter, to, nativeEvent, nativeEventTarget);\n    enter.type = 'mouseenter';\n    enter.target = toNode;\n    enter.relatedTarget = fromNode;\n\n    EventPropagators.accumulateEnterLeaveDispatches(leave, enter, from, to);\n\n    return [leave, enter];\n  }\n\n};\n\nmodule.exports = EnterLeaveEventPlugin;\n},{\"109\":109,\"16\":16,\"166\":166,\"20\":20,\"42\":42}],16:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventConstants\n */\n\n'use strict';\n\nvar keyMirror = _dereq_(165);\n\nvar PropagationPhases = keyMirror({ bubbled: null, captured: null });\n\n/**\n * Types of raw signals from the browser caught at the top level.\n */\nvar topLevelTypes = keyMirror({\n  topAbort: null,\n  topAnimationEnd: null,\n  topAnimationIteration: null,\n  topAnimationStart: null,\n  topBlur: null,\n  topCanPlay: null,\n  topCanPlayThrough: null,\n  topChange: null,\n  topClick: null,\n  topCompositionEnd: null,\n  topCompositionStart: null,\n  topCompositionUpdate: null,\n  topContextMenu: null,\n  topCopy: null,\n  topCut: null,\n  topDoubleClick: null,\n  topDrag: null,\n  topDragEnd: null,\n  topDragEnter: null,\n  topDragExit: null,\n  topDragLeave: null,\n  topDragOver: null,\n  topDragStart: null,\n  topDrop: null,\n  topDurationChange: null,\n  topEmptied: null,\n  topEncrypted: null,\n  topEnded: null,\n  topError: null,\n  topFocus: null,\n  topInput: null,\n  topInvalid: null,\n  topKeyDown: null,\n  topKeyPress: null,\n  topKeyUp: null,\n  topLoad: null,\n  topLoadedData: null,\n  topLoadedMetadata: null,\n  topLoadStart: null,\n  topMouseDown: null,\n  topMouseMove: null,\n  topMouseOut: null,\n  topMouseOver: null,\n  topMouseUp: null,\n  topPaste: null,\n  topPause: null,\n  topPlay: null,\n  topPlaying: null,\n  topProgress: null,\n  topRateChange: null,\n  topReset: null,\n  topScroll: null,\n  topSeeked: null,\n  topSeeking: null,\n  topSelectionChange: null,\n  topStalled: null,\n  topSubmit: null,\n  topSuspend: null,\n  topTextInput: null,\n  topTimeUpdate: null,\n  topTouchCancel: null,\n  topTouchEnd: null,\n  topTouchMove: null,\n  topTouchStart: null,\n  topTransitionEnd: null,\n  topVolumeChange: null,\n  topWaiting: null,\n  topWheel: null\n});\n\nvar EventConstants = {\n  topLevelTypes: topLevelTypes,\n  PropagationPhases: PropagationPhases\n};\n\nmodule.exports = EventConstants;\n},{\"165\":165}],17:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPluginHub\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar EventPluginRegistry = _dereq_(18);\nvar EventPluginUtils = _dereq_(19);\nvar ReactErrorUtils = _dereq_(64);\n\nvar accumulateInto = _dereq_(116);\nvar forEachAccumulated = _dereq_(125);\nvar invariant = _dereq_(162);\n\n/**\n * Internal store for event listeners\n */\nvar listenerBank = {};\n\n/**\n * Internal queue of events that have accumulated their dispatches and are\n * waiting to have their dispatches executed.\n */\nvar eventQueue = null;\n\n/**\n * Dispatches an event and releases it back into the pool, unless persistent.\n *\n * @param {?object} event Synthetic event to be dispatched.\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @private\n */\nvar executeDispatchesAndRelease = function (event, simulated) {\n  if (event) {\n    EventPluginUtils.executeDispatchesInOrder(event, simulated);\n\n    if (!event.isPersistent()) {\n      event.constructor.release(event);\n    }\n  }\n};\nvar executeDispatchesAndReleaseSimulated = function (e) {\n  return executeDispatchesAndRelease(e, true);\n};\nvar executeDispatchesAndReleaseTopLevel = function (e) {\n  return executeDispatchesAndRelease(e, false);\n};\n\nvar getDictionaryKey = function (inst) {\n  // Prevents V8 performance issue:\n  // https://github.com/facebook/react/pull/7232\n  return '.' + inst._rootNodeID;\n};\n\n/**\n * This is a unified interface for event plugins to be installed and configured.\n *\n * Event plugins can implement the following properties:\n *\n *   `extractEvents` {function(string, DOMEventTarget, string, object): *}\n *     Required. When a top-level event is fired, this method is expected to\n *     extract synthetic events that will in turn be queued and dispatched.\n *\n *   `eventTypes` {object}\n *     Optional, plugins that fire events must publish a mapping of registration\n *     names that are used to register listeners. Values of this mapping must\n *     be objects that contain `registrationName` or `phasedRegistrationNames`.\n *\n *   `executeDispatch` {function(object, function, string)}\n *     Optional, allows plugins to override how an event gets dispatched. By\n *     default, the listener is simply invoked.\n *\n * Each plugin that is injected into `EventsPluginHub` is immediately operable.\n *\n * @public\n */\nvar EventPluginHub = {\n\n  /**\n   * Methods for injecting dependencies.\n   */\n  injection: {\n\n    /**\n     * @param {array} InjectedEventPluginOrder\n     * @public\n     */\n    injectEventPluginOrder: EventPluginRegistry.injectEventPluginOrder,\n\n    /**\n     * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n     */\n    injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName\n\n  },\n\n  /**\n   * Stores `listener` at `listenerBank[registrationName][key]`. Is idempotent.\n   *\n   * @param {object} inst The instance, which is the source of events.\n   * @param {string} registrationName Name of listener (e.g. `onClick`).\n   * @param {function} listener The callback to store.\n   */\n  putListener: function (inst, registrationName, listener) {\n    !(typeof listener === 'function') ? \"development\" !== 'production' ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener) : _prodInvariant('94', registrationName, typeof listener) : void 0;\n\n    var key = getDictionaryKey(inst);\n    var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {});\n    bankForRegistrationName[key] = listener;\n\n    var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n    if (PluginModule && PluginModule.didPutListener) {\n      PluginModule.didPutListener(inst, registrationName, listener);\n    }\n  },\n\n  /**\n   * @param {object} inst The instance, which is the source of events.\n   * @param {string} registrationName Name of listener (e.g. `onClick`).\n   * @return {?function} The stored callback.\n   */\n  getListener: function (inst, registrationName) {\n    var bankForRegistrationName = listenerBank[registrationName];\n    var key = getDictionaryKey(inst);\n    return bankForRegistrationName && bankForRegistrationName[key];\n  },\n\n  /**\n   * Deletes a listener from the registration bank.\n   *\n   * @param {object} inst The instance, which is the source of events.\n   * @param {string} registrationName Name of listener (e.g. `onClick`).\n   */\n  deleteListener: function (inst, registrationName) {\n    var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n    if (PluginModule && PluginModule.willDeleteListener) {\n      PluginModule.willDeleteListener(inst, registrationName);\n    }\n\n    var bankForRegistrationName = listenerBank[registrationName];\n    // TODO: This should never be null -- when is it?\n    if (bankForRegistrationName) {\n      var key = getDictionaryKey(inst);\n      delete bankForRegistrationName[key];\n    }\n  },\n\n  /**\n   * Deletes all listeners for the DOM element with the supplied ID.\n   *\n   * @param {object} inst The instance, which is the source of events.\n   */\n  deleteAllListeners: function (inst) {\n    var key = getDictionaryKey(inst);\n    for (var registrationName in listenerBank) {\n      if (!listenerBank.hasOwnProperty(registrationName)) {\n        continue;\n      }\n\n      if (!listenerBank[registrationName][key]) {\n        continue;\n      }\n\n      var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n      if (PluginModule && PluginModule.willDeleteListener) {\n        PluginModule.willDeleteListener(inst, registrationName);\n      }\n\n      delete listenerBank[registrationName][key];\n    }\n  },\n\n  /**\n   * Allows registered plugins an opportunity to extract events from top-level\n   * native browser events.\n   *\n   * @return {*} An accumulation of synthetic events.\n   * @internal\n   */\n  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n    var events;\n    var plugins = EventPluginRegistry.plugins;\n    for (var i = 0; i < plugins.length; i++) {\n      // Not every plugin in the ordering may be loaded at runtime.\n      var possiblePlugin = plugins[i];\n      if (possiblePlugin) {\n        var extractedEvents = possiblePlugin.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n        if (extractedEvents) {\n          events = accumulateInto(events, extractedEvents);\n        }\n      }\n    }\n    return events;\n  },\n\n  /**\n   * Enqueues a synthetic event that should be dispatched when\n   * `processEventQueue` is invoked.\n   *\n   * @param {*} events An accumulation of synthetic events.\n   * @internal\n   */\n  enqueueEvents: function (events) {\n    if (events) {\n      eventQueue = accumulateInto(eventQueue, events);\n    }\n  },\n\n  /**\n   * Dispatches all synthetic events on the event queue.\n   *\n   * @internal\n   */\n  processEventQueue: function (simulated) {\n    // Set `eventQueue` to null before processing it so that we can tell if more\n    // events get enqueued while processing.\n    var processingEventQueue = eventQueue;\n    eventQueue = null;\n    if (simulated) {\n      forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseSimulated);\n    } else {\n      forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel);\n    }\n    !!eventQueue ? \"development\" !== 'production' ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.') : _prodInvariant('95') : void 0;\n    // This would be a good time to rethrow if any of the event handlers threw.\n    ReactErrorUtils.rethrowCaughtError();\n  },\n\n  /**\n   * These are needed for tests only. Do not use!\n   */\n  __purge: function () {\n    listenerBank = {};\n  },\n\n  __getListenerBank: function () {\n    return listenerBank;\n  }\n\n};\n\nmodule.exports = EventPluginHub;\n},{\"116\":116,\"125\":125,\"140\":140,\"162\":162,\"18\":18,\"19\":19,\"64\":64}],18:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPluginRegistry\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar invariant = _dereq_(162);\n\n/**\n * Injectable ordering of event plugins.\n */\nvar EventPluginOrder = null;\n\n/**\n * Injectable mapping from names to event plugin modules.\n */\nvar namesToPlugins = {};\n\n/**\n * Recomputes the plugin list using the injected plugins and plugin ordering.\n *\n * @private\n */\nfunction recomputePluginOrdering() {\n  if (!EventPluginOrder) {\n    // Wait until an `EventPluginOrder` is injected.\n    return;\n  }\n  for (var pluginName in namesToPlugins) {\n    var PluginModule = namesToPlugins[pluginName];\n    var pluginIndex = EventPluginOrder.indexOf(pluginName);\n    !(pluginIndex > -1) ? \"development\" !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.', pluginName) : _prodInvariant('96', pluginName) : void 0;\n    if (EventPluginRegistry.plugins[pluginIndex]) {\n      continue;\n    }\n    !PluginModule.extractEvents ? \"development\" !== 'production' ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.', pluginName) : _prodInvariant('97', pluginName) : void 0;\n    EventPluginRegistry.plugins[pluginIndex] = PluginModule;\n    var publishedEvents = PluginModule.eventTypes;\n    for (var eventName in publishedEvents) {\n      !publishEventForPlugin(publishedEvents[eventName], PluginModule, eventName) ? \"development\" !== 'production' ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : _prodInvariant('98', eventName, pluginName) : void 0;\n    }\n  }\n}\n\n/**\n * Publishes an event so that it can be dispatched by the supplied plugin.\n *\n * @param {object} dispatchConfig Dispatch configuration for the event.\n * @param {object} PluginModule Plugin publishing the event.\n * @return {boolean} True if the event was successfully published.\n * @private\n */\nfunction publishEventForPlugin(dispatchConfig, PluginModule, eventName) {\n  !!EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName) ? \"development\" !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.', eventName) : _prodInvariant('99', eventName) : void 0;\n  EventPluginRegistry.eventNameDispatchConfigs[eventName] = dispatchConfig;\n\n  var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n  if (phasedRegistrationNames) {\n    for (var phaseName in phasedRegistrationNames) {\n      if (phasedRegistrationNames.hasOwnProperty(phaseName)) {\n        var phasedRegistrationName = phasedRegistrationNames[phaseName];\n        publishRegistrationName(phasedRegistrationName, PluginModule, eventName);\n      }\n    }\n    return true;\n  } else if (dispatchConfig.registrationName) {\n    publishRegistrationName(dispatchConfig.registrationName, PluginModule, eventName);\n    return true;\n  }\n  return false;\n}\n\n/**\n * Publishes a registration name that is used to identify dispatched events and\n * can be used with `EventPluginHub.putListener` to register listeners.\n *\n * @param {string} registrationName Registration name to add.\n * @param {object} PluginModule Plugin publishing the event.\n * @private\n */\nfunction publishRegistrationName(registrationName, PluginModule, eventName) {\n  !!EventPluginRegistry.registrationNameModules[registrationName] ? \"development\" !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.', registrationName) : _prodInvariant('100', registrationName) : void 0;\n  EventPluginRegistry.registrationNameModules[registrationName] = PluginModule;\n  EventPluginRegistry.registrationNameDependencies[registrationName] = PluginModule.eventTypes[eventName].dependencies;\n\n  if (\"development\" !== 'production') {\n    var lowerCasedName = registrationName.toLowerCase();\n    EventPluginRegistry.possibleRegistrationNames[lowerCasedName] = registrationName;\n\n    if (registrationName === 'onDoubleClick') {\n      EventPluginRegistry.possibleRegistrationNames.ondblclick = registrationName;\n    }\n  }\n}\n\n/**\n * Registers plugins so that they can extract and dispatch events.\n *\n * @see {EventPluginHub}\n */\nvar EventPluginRegistry = {\n\n  /**\n   * Ordered list of injected plugins.\n   */\n  plugins: [],\n\n  /**\n   * Mapping from event name to dispatch config\n   */\n  eventNameDispatchConfigs: {},\n\n  /**\n   * Mapping from registration name to plugin module\n   */\n  registrationNameModules: {},\n\n  /**\n   * Mapping from registration name to event name\n   */\n  registrationNameDependencies: {},\n\n  /**\n   * Mapping from lowercase registration names to the properly cased version,\n   * used to warn in the case of missing event handlers. Available\n   * only in __DEV__.\n   * @type {Object}\n   */\n  possibleRegistrationNames: \"development\" !== 'production' ? {} : null,\n\n  /**\n   * Injects an ordering of plugins (by plugin name). This allows the ordering\n   * to be decoupled from injection of the actual plugins so that ordering is\n   * always deterministic regardless of packaging, on-the-fly injection, etc.\n   *\n   * @param {array} InjectedEventPluginOrder\n   * @internal\n   * @see {EventPluginHub.injection.injectEventPluginOrder}\n   */\n  injectEventPluginOrder: function (InjectedEventPluginOrder) {\n    !!EventPluginOrder ? \"development\" !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.') : _prodInvariant('101') : void 0;\n    // Clone the ordering so it cannot be dynamically mutated.\n    EventPluginOrder = Array.prototype.slice.call(InjectedEventPluginOrder);\n    recomputePluginOrdering();\n  },\n\n  /**\n   * Injects plugins to be used by `EventPluginHub`. The plugin names must be\n   * in the ordering injected by `injectEventPluginOrder`.\n   *\n   * Plugins can be injected as part of page initialization or on-the-fly.\n   *\n   * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n   * @internal\n   * @see {EventPluginHub.injection.injectEventPluginsByName}\n   */\n  injectEventPluginsByName: function (injectedNamesToPlugins) {\n    var isOrderingDirty = false;\n    for (var pluginName in injectedNamesToPlugins) {\n      if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) {\n        continue;\n      }\n      var PluginModule = injectedNamesToPlugins[pluginName];\n      if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== PluginModule) {\n        !!namesToPlugins[pluginName] ? \"development\" !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.', pluginName) : _prodInvariant('102', pluginName) : void 0;\n        namesToPlugins[pluginName] = PluginModule;\n        isOrderingDirty = true;\n      }\n    }\n    if (isOrderingDirty) {\n      recomputePluginOrdering();\n    }\n  },\n\n  /**\n   * Looks up the plugin for the supplied event.\n   *\n   * @param {object} event A synthetic event.\n   * @return {?object} The plugin that created the supplied event.\n   * @internal\n   */\n  getPluginModuleForEvent: function (event) {\n    var dispatchConfig = event.dispatchConfig;\n    if (dispatchConfig.registrationName) {\n      return EventPluginRegistry.registrationNameModules[dispatchConfig.registrationName] || null;\n    }\n    for (var phase in dispatchConfig.phasedRegistrationNames) {\n      if (!dispatchConfig.phasedRegistrationNames.hasOwnProperty(phase)) {\n        continue;\n      }\n      var PluginModule = EventPluginRegistry.registrationNameModules[dispatchConfig.phasedRegistrationNames[phase]];\n      if (PluginModule) {\n        return PluginModule;\n      }\n    }\n    return null;\n  },\n\n  /**\n   * Exposed for unit testing.\n   * @private\n   */\n  _resetEventPlugins: function () {\n    EventPluginOrder = null;\n    for (var pluginName in namesToPlugins) {\n      if (namesToPlugins.hasOwnProperty(pluginName)) {\n        delete namesToPlugins[pluginName];\n      }\n    }\n    EventPluginRegistry.plugins.length = 0;\n\n    var eventNameDispatchConfigs = EventPluginRegistry.eventNameDispatchConfigs;\n    for (var eventName in eventNameDispatchConfigs) {\n      if (eventNameDispatchConfigs.hasOwnProperty(eventName)) {\n        delete eventNameDispatchConfigs[eventName];\n      }\n    }\n\n    var registrationNameModules = EventPluginRegistry.registrationNameModules;\n    for (var registrationName in registrationNameModules) {\n      if (registrationNameModules.hasOwnProperty(registrationName)) {\n        delete registrationNameModules[registrationName];\n      }\n    }\n\n    if (\"development\" !== 'production') {\n      var possibleRegistrationNames = EventPluginRegistry.possibleRegistrationNames;\n      for (var lowerCasedName in possibleRegistrationNames) {\n        if (possibleRegistrationNames.hasOwnProperty(lowerCasedName)) {\n          delete possibleRegistrationNames[lowerCasedName];\n        }\n      }\n    }\n  }\n\n};\n\nmodule.exports = EventPluginRegistry;\n},{\"140\":140,\"162\":162}],19:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPluginUtils\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar EventConstants = _dereq_(16);\nvar ReactErrorUtils = _dereq_(64);\n\nvar invariant = _dereq_(162);\nvar warning = _dereq_(171);\n\n/**\n * Injected dependencies:\n */\n\n/**\n * - `ComponentTree`: [required] Module that can convert between React instances\n *   and actual node references.\n */\nvar ComponentTree;\nvar TreeTraversal;\nvar injection = {\n  injectComponentTree: function (Injected) {\n    ComponentTree = Injected;\n    if (\"development\" !== 'production') {\n      \"development\" !== 'production' ? warning(Injected && Injected.getNodeFromInstance && Injected.getInstanceFromNode, 'EventPluginUtils.injection.injectComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.') : void 0;\n    }\n  },\n  injectTreeTraversal: function (Injected) {\n    TreeTraversal = Injected;\n    if (\"development\" !== 'production') {\n      \"development\" !== 'production' ? warning(Injected && Injected.isAncestor && Injected.getLowestCommonAncestor, 'EventPluginUtils.injection.injectTreeTraversal(...): Injected ' + 'module is missing isAncestor or getLowestCommonAncestor.') : void 0;\n    }\n  }\n};\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nfunction isEndish(topLevelType) {\n  return topLevelType === topLevelTypes.topMouseUp || topLevelType === topLevelTypes.topTouchEnd || topLevelType === topLevelTypes.topTouchCancel;\n}\n\nfunction isMoveish(topLevelType) {\n  return topLevelType === topLevelTypes.topMouseMove || topLevelType === topLevelTypes.topTouchMove;\n}\nfunction isStartish(topLevelType) {\n  return topLevelType === topLevelTypes.topMouseDown || topLevelType === topLevelTypes.topTouchStart;\n}\n\nvar validateEventDispatches;\nif (\"development\" !== 'production') {\n  validateEventDispatches = function (event) {\n    var dispatchListeners = event._dispatchListeners;\n    var dispatchInstances = event._dispatchInstances;\n\n    var listenersIsArr = Array.isArray(dispatchListeners);\n    var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;\n\n    var instancesIsArr = Array.isArray(dispatchInstances);\n    var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0;\n\n    \"development\" !== 'production' ? warning(instancesIsArr === listenersIsArr && instancesLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : void 0;\n  };\n}\n\n/**\n * Dispatch the event to the listener.\n * @param {SyntheticEvent} event SyntheticEvent to handle\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @param {function} listener Application-level callback\n * @param {*} inst Internal component instance\n */\nfunction executeDispatch(event, simulated, listener, inst) {\n  var type = event.type || 'unknown-event';\n  event.currentTarget = EventPluginUtils.getNodeFromInstance(inst);\n  if (simulated) {\n    ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event);\n  } else {\n    ReactErrorUtils.invokeGuardedCallback(type, listener, event);\n  }\n  event.currentTarget = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches.\n */\nfunction executeDispatchesInOrder(event, simulated) {\n  var dispatchListeners = event._dispatchListeners;\n  var dispatchInstances = event._dispatchInstances;\n  if (\"development\" !== 'production') {\n    validateEventDispatches(event);\n  }\n  if (Array.isArray(dispatchListeners)) {\n    for (var i = 0; i < dispatchListeners.length; i++) {\n      if (event.isPropagationStopped()) {\n        break;\n      }\n      // Listeners and Instances are two parallel arrays that are always in sync.\n      executeDispatch(event, simulated, dispatchListeners[i], dispatchInstances[i]);\n    }\n  } else if (dispatchListeners) {\n    executeDispatch(event, simulated, dispatchListeners, dispatchInstances);\n  }\n  event._dispatchListeners = null;\n  event._dispatchInstances = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches, but stops\n * at the first dispatch execution returning true, and returns that id.\n *\n * @return {?string} id of the first dispatch execution who's listener returns\n * true, or null if no listener returned true.\n */\nfunction executeDispatchesInOrderStopAtTrueImpl(event) {\n  var dispatchListeners = event._dispatchListeners;\n  var dispatchInstances = event._dispatchInstances;\n  if (\"development\" !== 'production') {\n    validateEventDispatches(event);\n  }\n  if (Array.isArray(dispatchListeners)) {\n    for (var i = 0; i < dispatchListeners.length; i++) {\n      if (event.isPropagationStopped()) {\n        break;\n      }\n      // Listeners and Instances are two parallel arrays that are always in sync.\n      if (dispatchListeners[i](event, dispatchInstances[i])) {\n        return dispatchInstances[i];\n      }\n    }\n  } else if (dispatchListeners) {\n    if (dispatchListeners(event, dispatchInstances)) {\n      return dispatchInstances;\n    }\n  }\n  return null;\n}\n\n/**\n * @see executeDispatchesInOrderStopAtTrueImpl\n */\nfunction executeDispatchesInOrderStopAtTrue(event) {\n  var ret = executeDispatchesInOrderStopAtTrueImpl(event);\n  event._dispatchInstances = null;\n  event._dispatchListeners = null;\n  return ret;\n}\n\n/**\n * Execution of a \"direct\" dispatch - there must be at most one dispatch\n * accumulated on the event or it is considered an error. It doesn't really make\n * sense for an event with multiple dispatches (bubbled) to keep track of the\n * return values at each dispatch execution, but it does tend to make sense when\n * dealing with \"direct\" dispatches.\n *\n * @return {*} The return value of executing the single dispatch.\n */\nfunction executeDirectDispatch(event) {\n  if (\"development\" !== 'production') {\n    validateEventDispatches(event);\n  }\n  var dispatchListener = event._dispatchListeners;\n  var dispatchInstance = event._dispatchInstances;\n  !!Array.isArray(dispatchListener) ? \"development\" !== 'production' ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : _prodInvariant('103') : void 0;\n  event.currentTarget = dispatchListener ? EventPluginUtils.getNodeFromInstance(dispatchInstance) : null;\n  var res = dispatchListener ? dispatchListener(event) : null;\n  event.currentTarget = null;\n  event._dispatchListeners = null;\n  event._dispatchInstances = null;\n  return res;\n}\n\n/**\n * @param {SyntheticEvent} event\n * @return {boolean} True iff number of dispatches accumulated is greater than 0.\n */\nfunction hasDispatches(event) {\n  return !!event._dispatchListeners;\n}\n\n/**\n * General utilities that are useful in creating custom Event Plugins.\n */\nvar EventPluginUtils = {\n  isEndish: isEndish,\n  isMoveish: isMoveish,\n  isStartish: isStartish,\n\n  executeDirectDispatch: executeDirectDispatch,\n  executeDispatchesInOrder: executeDispatchesInOrder,\n  executeDispatchesInOrderStopAtTrue: executeDispatchesInOrderStopAtTrue,\n  hasDispatches: hasDispatches,\n\n  getInstanceFromNode: function (node) {\n    return ComponentTree.getInstanceFromNode(node);\n  },\n  getNodeFromInstance: function (node) {\n    return ComponentTree.getNodeFromInstance(node);\n  },\n  isAncestor: function (a, b) {\n    return TreeTraversal.isAncestor(a, b);\n  },\n  getLowestCommonAncestor: function (a, b) {\n    return TreeTraversal.getLowestCommonAncestor(a, b);\n  },\n  getParentInstance: function (inst) {\n    return TreeTraversal.getParentInstance(inst);\n  },\n  traverseTwoPhase: function (target, fn, arg) {\n    return TreeTraversal.traverseTwoPhase(target, fn, arg);\n  },\n  traverseEnterLeave: function (from, to, fn, argFrom, argTo) {\n    return TreeTraversal.traverseEnterLeave(from, to, fn, argFrom, argTo);\n  },\n\n  injection: injection\n};\n\nmodule.exports = EventPluginUtils;\n},{\"140\":140,\"16\":16,\"162\":162,\"171\":171,\"64\":64}],20:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPropagators\n */\n\n'use strict';\n\nvar EventConstants = _dereq_(16);\nvar EventPluginHub = _dereq_(17);\nvar EventPluginUtils = _dereq_(19);\n\nvar accumulateInto = _dereq_(116);\nvar forEachAccumulated = _dereq_(125);\nvar warning = _dereq_(171);\n\nvar PropagationPhases = EventConstants.PropagationPhases;\nvar getListener = EventPluginHub.getListener;\n\n/**\n * Some event types have a notion of different registration names for different\n * \"phases\" of propagation. This finds listeners by a given phase.\n */\nfunction listenerAtPhase(inst, event, propagationPhase) {\n  var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase];\n  return getListener(inst, registrationName);\n}\n\n/**\n * Tags a `SyntheticEvent` with dispatched listeners. Creating this function\n * here, allows us to not have to bind or create functions for each event.\n * Mutating the event's members allows us to not have to create a wrapping\n * \"dispatch\" object that pairs the event with the listener.\n */\nfunction accumulateDirectionalDispatches(inst, upwards, event) {\n  if (\"development\" !== 'production') {\n    \"development\" !== 'production' ? warning(inst, 'Dispatching inst must not be null') : void 0;\n  }\n  var phase = upwards ? PropagationPhases.bubbled : PropagationPhases.captured;\n  var listener = listenerAtPhase(inst, event, phase);\n  if (listener) {\n    event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n    event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\n  }\n}\n\n/**\n * Collect dispatches (must be entirely collected before dispatching - see unit\n * tests). Lazily allocate the array to conserve memory.  We must loop through\n * each event and perform the traversal for each one. We cannot perform a\n * single traversal for the entire collection of events because each event may\n * have a different target.\n */\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n  if (event && event.dispatchConfig.phasedRegistrationNames) {\n    EventPluginUtils.traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);\n  }\n}\n\n/**\n * Same as `accumulateTwoPhaseDispatchesSingle`, but skips over the targetID.\n */\nfunction accumulateTwoPhaseDispatchesSingleSkipTarget(event) {\n  if (event && event.dispatchConfig.phasedRegistrationNames) {\n    var targetInst = event._targetInst;\n    var parentInst = targetInst ? EventPluginUtils.getParentInstance(targetInst) : null;\n    EventPluginUtils.traverseTwoPhase(parentInst, accumulateDirectionalDispatches, event);\n  }\n}\n\n/**\n * Accumulates without regard to direction, does not look for phased\n * registration names. Same as `accumulateDirectDispatchesSingle` but without\n * requiring that the `dispatchMarker` be the same as the dispatched ID.\n */\nfunction accumulateDispatches(inst, ignoredDirection, event) {\n  if (event && event.dispatchConfig.registrationName) {\n    var registrationName = event.dispatchConfig.registrationName;\n    var listener = getListener(inst, registrationName);\n    if (listener) {\n      event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n      event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\n    }\n  }\n}\n\n/**\n * Accumulates dispatches on an `SyntheticEvent`, but only for the\n * `dispatchMarker`.\n * @param {SyntheticEvent} event\n */\nfunction accumulateDirectDispatchesSingle(event) {\n  if (event && event.dispatchConfig.registrationName) {\n    accumulateDispatches(event._targetInst, null, event);\n  }\n}\n\nfunction accumulateTwoPhaseDispatches(events) {\n  forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle);\n}\n\nfunction accumulateTwoPhaseDispatchesSkipTarget(events) {\n  forEachAccumulated(events, accumulateTwoPhaseDispatchesSingleSkipTarget);\n}\n\nfunction accumulateEnterLeaveDispatches(leave, enter, from, to) {\n  EventPluginUtils.traverseEnterLeave(from, to, accumulateDispatches, leave, enter);\n}\n\nfunction accumulateDirectDispatches(events) {\n  forEachAccumulated(events, accumulateDirectDispatchesSingle);\n}\n\n/**\n * A small set of propagation patterns, each of which will accept a small amount\n * of information, and generate a set of \"dispatch ready event objects\" - which\n * are sets of events that have already been annotated with a set of dispatched\n * listener functions/ids. The API is designed this way to discourage these\n * propagation strategies from actually executing the dispatches, since we\n * always want to collect the entire set of dispatches before executing event a\n * single one.\n *\n * @constructor EventPropagators\n */\nvar EventPropagators = {\n  accumulateTwoPhaseDispatches: accumulateTwoPhaseDispatches,\n  accumulateTwoPhaseDispatchesSkipTarget: accumulateTwoPhaseDispatchesSkipTarget,\n  accumulateDirectDispatches: accumulateDirectDispatches,\n  accumulateEnterLeaveDispatches: accumulateEnterLeaveDispatches\n};\n\nmodule.exports = EventPropagators;\n},{\"116\":116,\"125\":125,\"16\":16,\"17\":17,\"171\":171,\"19\":19}],21:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FallbackCompositionState\n */\n\n'use strict';\n\nvar _assign = _dereq_(172);\n\nvar PooledClass = _dereq_(25);\n\nvar getTextContentAccessor = _dereq_(133);\n\n/**\n * This helper class stores information about text content of a target node,\n * allowing comparison of content before and after a given event.\n *\n * Identify the node where selection currently begins, then observe\n * both its text content and its current position in the DOM. Since the\n * browser may natively replace the target node during composition, we can\n * use its position to find its replacement.\n *\n * @param {DOMEventTarget} root\n */\nfunction FallbackCompositionState(root) {\n  this._root = root;\n  this._startText = this.getText();\n  this._fallbackText = null;\n}\n\n_assign(FallbackCompositionState.prototype, {\n  destructor: function () {\n    this._root = null;\n    this._startText = null;\n    this._fallbackText = null;\n  },\n\n  /**\n   * Get current text of input.\n   *\n   * @return {string}\n   */\n  getText: function () {\n    if ('value' in this._root) {\n      return this._root.value;\n    }\n    return this._root[getTextContentAccessor()];\n  },\n\n  /**\n   * Determine the differing substring between the initially stored\n   * text content and the current content.\n   *\n   * @return {string}\n   */\n  getData: function () {\n    if (this._fallbackText) {\n      return this._fallbackText;\n    }\n\n    var start;\n    var startValue = this._startText;\n    var startLength = startValue.length;\n    var end;\n    var endValue = this.getText();\n    var endLength = endValue.length;\n\n    for (start = 0; start < startLength; start++) {\n      if (startValue[start] !== endValue[start]) {\n        break;\n      }\n    }\n\n    var minEnd = startLength - start;\n    for (end = 1; end <= minEnd; end++) {\n      if (startValue[startLength - end] !== endValue[endLength - end]) {\n        break;\n      }\n    }\n\n    var sliceTail = end > 1 ? 1 - end : undefined;\n    this._fallbackText = endValue.slice(start, sliceTail);\n    return this._fallbackText;\n  }\n});\n\nPooledClass.addPoolingTo(FallbackCompositionState);\n\nmodule.exports = FallbackCompositionState;\n},{\"133\":133,\"172\":172,\"25\":25}],22:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule HTMLDOMPropertyConfig\n */\n\n'use strict';\n\nvar DOMProperty = _dereq_(10);\n\nvar MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY;\nvar HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE;\nvar HAS_NUMERIC_VALUE = DOMProperty.injection.HAS_NUMERIC_VALUE;\nvar HAS_POSITIVE_NUMERIC_VALUE = DOMProperty.injection.HAS_POSITIVE_NUMERIC_VALUE;\nvar HAS_OVERLOADED_BOOLEAN_VALUE = DOMProperty.injection.HAS_OVERLOADED_BOOLEAN_VALUE;\n\nvar HTMLDOMPropertyConfig = {\n  isCustomAttribute: RegExp.prototype.test.bind(new RegExp('^(data|aria)-[' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$')),\n  Properties: {\n    /**\n     * Standard Properties\n     */\n    accept: 0,\n    acceptCharset: 0,\n    accessKey: 0,\n    action: 0,\n    allowFullScreen: HAS_BOOLEAN_VALUE,\n    allowTransparency: 0,\n    alt: 0,\n    async: HAS_BOOLEAN_VALUE,\n    autoComplete: 0,\n    // autoFocus is polyfilled/normalized by AutoFocusUtils\n    // autoFocus: HAS_BOOLEAN_VALUE,\n    autoPlay: HAS_BOOLEAN_VALUE,\n    capture: HAS_BOOLEAN_VALUE,\n    cellPadding: 0,\n    cellSpacing: 0,\n    charSet: 0,\n    challenge: 0,\n    checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    cite: 0,\n    classID: 0,\n    className: 0,\n    cols: HAS_POSITIVE_NUMERIC_VALUE,\n    colSpan: 0,\n    content: 0,\n    contentEditable: 0,\n    contextMenu: 0,\n    controls: HAS_BOOLEAN_VALUE,\n    coords: 0,\n    crossOrigin: 0,\n    data: 0, // For `<object />` acts as `src`.\n    dateTime: 0,\n    'default': HAS_BOOLEAN_VALUE,\n    defer: HAS_BOOLEAN_VALUE,\n    dir: 0,\n    disabled: HAS_BOOLEAN_VALUE,\n    download: HAS_OVERLOADED_BOOLEAN_VALUE,\n    draggable: 0,\n    encType: 0,\n    form: 0,\n    formAction: 0,\n    formEncType: 0,\n    formMethod: 0,\n    formNoValidate: HAS_BOOLEAN_VALUE,\n    formTarget: 0,\n    frameBorder: 0,\n    headers: 0,\n    height: 0,\n    hidden: HAS_BOOLEAN_VALUE,\n    high: 0,\n    href: 0,\n    hrefLang: 0,\n    htmlFor: 0,\n    httpEquiv: 0,\n    icon: 0,\n    id: 0,\n    inputMode: 0,\n    integrity: 0,\n    is: 0,\n    keyParams: 0,\n    keyType: 0,\n    kind: 0,\n    label: 0,\n    lang: 0,\n    list: 0,\n    loop: HAS_BOOLEAN_VALUE,\n    low: 0,\n    manifest: 0,\n    marginHeight: 0,\n    marginWidth: 0,\n    max: 0,\n    maxLength: 0,\n    media: 0,\n    mediaGroup: 0,\n    method: 0,\n    min: 0,\n    minLength: 0,\n    // Caution; `option.selected` is not updated if `select.multiple` is\n    // disabled with `removeAttribute`.\n    multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    name: 0,\n    nonce: 0,\n    noValidate: HAS_BOOLEAN_VALUE,\n    open: HAS_BOOLEAN_VALUE,\n    optimum: 0,\n    pattern: 0,\n    placeholder: 0,\n    poster: 0,\n    preload: 0,\n    profile: 0,\n    radioGroup: 0,\n    readOnly: HAS_BOOLEAN_VALUE,\n    referrerPolicy: 0,\n    rel: 0,\n    required: HAS_BOOLEAN_VALUE,\n    reversed: HAS_BOOLEAN_VALUE,\n    role: 0,\n    rows: HAS_POSITIVE_NUMERIC_VALUE,\n    rowSpan: HAS_NUMERIC_VALUE,\n    sandbox: 0,\n    scope: 0,\n    scoped: HAS_BOOLEAN_VALUE,\n    scrolling: 0,\n    seamless: HAS_BOOLEAN_VALUE,\n    selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    shape: 0,\n    size: HAS_POSITIVE_NUMERIC_VALUE,\n    sizes: 0,\n    span: HAS_POSITIVE_NUMERIC_VALUE,\n    spellCheck: 0,\n    src: 0,\n    srcDoc: 0,\n    srcLang: 0,\n    srcSet: 0,\n    start: HAS_NUMERIC_VALUE,\n    step: 0,\n    style: 0,\n    summary: 0,\n    tabIndex: 0,\n    target: 0,\n    title: 0,\n    // Setting .type throws on non-<input> tags\n    type: 0,\n    useMap: 0,\n    value: 0,\n    width: 0,\n    wmode: 0,\n    wrap: 0,\n\n    /**\n     * RDFa Properties\n     */\n    about: 0,\n    datatype: 0,\n    inlist: 0,\n    prefix: 0,\n    // property is also supported for OpenGraph in meta tags.\n    property: 0,\n    resource: 0,\n    'typeof': 0,\n    vocab: 0,\n\n    /**\n     * Non-standard Properties\n     */\n    // autoCapitalize and autoCorrect are supported in Mobile Safari for\n    // keyboard hints.\n    autoCapitalize: 0,\n    autoCorrect: 0,\n    // autoSave allows WebKit/Blink to persist values of input fields on page reloads\n    autoSave: 0,\n    // color is for Safari mask-icon link\n    color: 0,\n    // itemProp, itemScope, itemType are for\n    // Microdata support. See http://schema.org/docs/gs.html\n    itemProp: 0,\n    itemScope: HAS_BOOLEAN_VALUE,\n    itemType: 0,\n    // itemID and itemRef are for Microdata support as well but\n    // only specified in the WHATWG spec document. See\n    // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api\n    itemID: 0,\n    itemRef: 0,\n    // results show looking glass icon and recent searches on input\n    // search fields in WebKit/Blink\n    results: 0,\n    // IE-only attribute that specifies security restrictions on an iframe\n    // as an alternative to the sandbox attribute on IE<10\n    security: 0,\n    // IE-only attribute that controls focus behavior\n    unselectable: 0\n  },\n  DOMAttributeNames: {\n    acceptCharset: 'accept-charset',\n    className: 'class',\n    htmlFor: 'for',\n    httpEquiv: 'http-equiv'\n  },\n  DOMPropertyNames: {}\n};\n\nmodule.exports = HTMLDOMPropertyConfig;\n},{\"10\":10}],23:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule KeyEscapeUtils\n * \n */\n\n'use strict';\n\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n  var escapeRegex = /[=:]/g;\n  var escaperLookup = {\n    '=': '=0',\n    ':': '=2'\n  };\n  var escapedString = ('' + key).replace(escapeRegex, function (match) {\n    return escaperLookup[match];\n  });\n\n  return '$' + escapedString;\n}\n\n/**\n * Unescape and unwrap key for human-readable display\n *\n * @param {string} key to unescape.\n * @return {string} the unescaped key.\n */\nfunction unescape(key) {\n  var unescapeRegex = /(=0|=2)/g;\n  var unescaperLookup = {\n    '=0': '=',\n    '=2': ':'\n  };\n  var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1);\n\n  return ('' + keySubstring).replace(unescapeRegex, function (match) {\n    return unescaperLookup[match];\n  });\n}\n\nvar KeyEscapeUtils = {\n  escape: escape,\n  unescape: unescape\n};\n\nmodule.exports = KeyEscapeUtils;\n},{}],24:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule LinkedValueUtils\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar ReactPropTypes = _dereq_(84);\nvar ReactPropTypeLocations = _dereq_(83);\nvar ReactPropTypesSecret = _dereq_(85);\n\nvar invariant = _dereq_(162);\nvar warning = _dereq_(171);\n\nvar hasReadOnlyValue = {\n  'button': true,\n  'checkbox': true,\n  'image': true,\n  'hidden': true,\n  'radio': true,\n  'reset': true,\n  'submit': true\n};\n\nfunction _assertSingleLink(inputProps) {\n  !(inputProps.checkedLink == null || inputProps.valueLink == null) ? \"development\" !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a valueLink. If you want to use checkedLink, you probably don\\'t want to use valueLink and vice versa.') : _prodInvariant('87') : void 0;\n}\nfunction _assertValueLink(inputProps) {\n  _assertSingleLink(inputProps);\n  !(inputProps.value == null && inputProps.onChange == null) ? \"development\" !== 'production' ? invariant(false, 'Cannot provide a valueLink and a value or onChange event. If you want to use value or onChange, you probably don\\'t want to use valueLink.') : _prodInvariant('88') : void 0;\n}\n\nfunction _assertCheckedLink(inputProps) {\n  _assertSingleLink(inputProps);\n  !(inputProps.checked == null && inputProps.onChange == null) ? \"development\" !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a checked property or onChange event. If you want to use checked or onChange, you probably don\\'t want to use checkedLink') : _prodInvariant('89') : void 0;\n}\n\nvar propTypes = {\n  value: function (props, propName, componentName) {\n    if (!props[propName] || hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled) {\n      return null;\n    }\n    return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n  },\n  checked: function (props, propName, componentName) {\n    if (!props[propName] || props.onChange || props.readOnly || props.disabled) {\n      return null;\n    }\n    return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n  },\n  onChange: ReactPropTypes.func\n};\n\nvar loggedTypeFailures = {};\nfunction getDeclarationErrorAddendum(owner) {\n  if (owner) {\n    var name = owner.getName();\n    if (name) {\n      return ' Check the render method of `' + name + '`.';\n    }\n  }\n  return '';\n}\n\n/**\n * Provide a linked `value` attribute for controlled forms. You should not use\n * this outside of the ReactDOM controlled form components.\n */\nvar LinkedValueUtils = {\n  checkPropTypes: function (tagName, props, owner) {\n    for (var propName in propTypes) {\n      if (propTypes.hasOwnProperty(propName)) {\n        var error = propTypes[propName](props, propName, tagName, ReactPropTypeLocations.prop, null, ReactPropTypesSecret);\n      }\n      if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n        // Only monitor this failure once because there tends to be a lot of the\n        // same error.\n        loggedTypeFailures[error.message] = true;\n\n        var addendum = getDeclarationErrorAddendum(owner);\n        \"development\" !== 'production' ? warning(false, 'Failed form propType: %s%s', error.message, addendum) : void 0;\n      }\n    }\n  },\n\n  /**\n   * @param {object} inputProps Props for form component\n   * @return {*} current value of the input either from value prop or link.\n   */\n  getValue: function (inputProps) {\n    if (inputProps.valueLink) {\n      _assertValueLink(inputProps);\n      return inputProps.valueLink.value;\n    }\n    return inputProps.value;\n  },\n\n  /**\n   * @param {object} inputProps Props for form component\n   * @return {*} current checked status of the input either from checked prop\n   *             or link.\n   */\n  getChecked: function (inputProps) {\n    if (inputProps.checkedLink) {\n      _assertCheckedLink(inputProps);\n      return inputProps.checkedLink.value;\n    }\n    return inputProps.checked;\n  },\n\n  /**\n   * @param {object} inputProps Props for form component\n   * @param {SyntheticEvent} event change event to handle\n   */\n  executeOnChange: function (inputProps, event) {\n    if (inputProps.valueLink) {\n      _assertValueLink(inputProps);\n      return inputProps.valueLink.requestChange(event.target.value);\n    } else if (inputProps.checkedLink) {\n      _assertCheckedLink(inputProps);\n      return inputProps.checkedLink.requestChange(event.target.checked);\n    } else if (inputProps.onChange) {\n      return inputProps.onChange.call(undefined, event);\n    }\n  }\n};\n\nmodule.exports = LinkedValueUtils;\n},{\"140\":140,\"162\":162,\"171\":171,\"83\":83,\"84\":84,\"85\":85}],25:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule PooledClass\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar invariant = _dereq_(162);\n\n/**\n * Static poolers. Several custom versions for each potential number of\n * arguments. A completely generic pooler is easy to implement, but would\n * require accessing the `arguments` object. In each of these, `this` refers to\n * the Class itself, not an instance. If any others are needed, simply add them\n * here, or in their own files.\n */\nvar oneArgumentPooler = function (copyFieldsFrom) {\n  var Klass = this;\n  if (Klass.instancePool.length) {\n    var instance = Klass.instancePool.pop();\n    Klass.call(instance, copyFieldsFrom);\n    return instance;\n  } else {\n    return new Klass(copyFieldsFrom);\n  }\n};\n\nvar twoArgumentPooler = function (a1, a2) {\n  var Klass = this;\n  if (Klass.instancePool.length) {\n    var instance = Klass.instancePool.pop();\n    Klass.call(instance, a1, a2);\n    return instance;\n  } else {\n    return new Klass(a1, a2);\n  }\n};\n\nvar threeArgumentPooler = function (a1, a2, a3) {\n  var Klass = this;\n  if (Klass.instancePool.length) {\n    var instance = Klass.instancePool.pop();\n    Klass.call(instance, a1, a2, a3);\n    return instance;\n  } else {\n    return new Klass(a1, a2, a3);\n  }\n};\n\nvar fourArgumentPooler = function (a1, a2, a3, a4) {\n  var Klass = this;\n  if (Klass.instancePool.length) {\n    var instance = Klass.instancePool.pop();\n    Klass.call(instance, a1, a2, a3, a4);\n    return instance;\n  } else {\n    return new Klass(a1, a2, a3, a4);\n  }\n};\n\nvar fiveArgumentPooler = function (a1, a2, a3, a4, a5) {\n  var Klass = this;\n  if (Klass.instancePool.length) {\n    var instance = Klass.instancePool.pop();\n    Klass.call(instance, a1, a2, a3, a4, a5);\n    return instance;\n  } else {\n    return new Klass(a1, a2, a3, a4, a5);\n  }\n};\n\nvar standardReleaser = function (instance) {\n  var Klass = this;\n  !(instance instanceof Klass) ? \"development\" !== 'production' ? invariant(false, 'Trying to release an instance into a pool of a different type.') : _prodInvariant('25') : void 0;\n  instance.destructor();\n  if (Klass.instancePool.length < Klass.poolSize) {\n    Klass.instancePool.push(instance);\n  }\n};\n\nvar DEFAULT_POOL_SIZE = 10;\nvar DEFAULT_POOLER = oneArgumentPooler;\n\n/**\n * Augments `CopyConstructor` to be a poolable class, augmenting only the class\n * itself (statically) not adding any prototypical fields. Any CopyConstructor\n * you give this may have a `poolSize` property, and will look for a\n * prototypical `destructor` on instances.\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\nvar addPoolingTo = function (CopyConstructor, pooler) {\n  var NewKlass = CopyConstructor;\n  NewKlass.instancePool = [];\n  NewKlass.getPooled = pooler || DEFAULT_POOLER;\n  if (!NewKlass.poolSize) {\n    NewKlass.poolSize = DEFAULT_POOL_SIZE;\n  }\n  NewKlass.release = standardReleaser;\n  return NewKlass;\n};\n\nvar PooledClass = {\n  addPoolingTo: addPoolingTo,\n  oneArgumentPooler: oneArgumentPooler,\n  twoArgumentPooler: twoArgumentPooler,\n  threeArgumentPooler: threeArgumentPooler,\n  fourArgumentPooler: fourArgumentPooler,\n  fiveArgumentPooler: fiveArgumentPooler\n};\n\nmodule.exports = PooledClass;\n},{\"140\":140,\"162\":162}],26:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule React\n */\n\n'use strict';\n\nvar _assign = _dereq_(172);\n\nvar ReactChildren = _dereq_(29);\nvar ReactComponent = _dereq_(32);\nvar ReactPureComponent = _dereq_(86);\nvar ReactClass = _dereq_(31);\nvar ReactDOMFactories = _dereq_(45);\nvar ReactElement = _dereq_(61);\nvar ReactPropTypes = _dereq_(84);\nvar ReactVersion = _dereq_(97);\n\nvar onlyChild = _dereq_(138);\nvar warning = _dereq_(171);\n\nvar createElement = ReactElement.createElement;\nvar createFactory = ReactElement.createFactory;\nvar cloneElement = ReactElement.cloneElement;\n\nif (\"development\" !== 'production') {\n  var ReactElementValidator = _dereq_(62);\n  createElement = ReactElementValidator.createElement;\n  createFactory = ReactElementValidator.createFactory;\n  cloneElement = ReactElementValidator.cloneElement;\n}\n\nvar __spread = _assign;\n\nif (\"development\" !== 'production') {\n  var warned = false;\n  __spread = function () {\n    \"development\" !== 'production' ? warning(warned, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.') : void 0;\n    warned = true;\n    return _assign.apply(null, arguments);\n  };\n}\n\nvar React = {\n\n  // Modern\n\n  Children: {\n    map: ReactChildren.map,\n    forEach: ReactChildren.forEach,\n    count: ReactChildren.count,\n    toArray: ReactChildren.toArray,\n    only: onlyChild\n  },\n\n  Component: ReactComponent,\n  PureComponent: ReactPureComponent,\n\n  createElement: createElement,\n  cloneElement: cloneElement,\n  isValidElement: ReactElement.isValidElement,\n\n  // Classic\n\n  PropTypes: ReactPropTypes,\n  createClass: ReactClass.createClass,\n  createFactory: createFactory,\n  createMixin: function (mixin) {\n    // Currently a noop. Will be used to validate and trace mixins.\n    return mixin;\n  },\n\n  // This looks DOM specific but these are actually isomorphic helpers\n  // since they are just generating DOM strings.\n  DOM: ReactDOMFactories,\n\n  version: ReactVersion,\n\n  // Deprecated hook for JSX spread, don't use this for anything.\n  __spread: __spread\n};\n\nmodule.exports = React;\n},{\"138\":138,\"171\":171,\"172\":172,\"29\":29,\"31\":31,\"32\":32,\"45\":45,\"61\":61,\"62\":62,\"84\":84,\"86\":86,\"97\":97}],27:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactBrowserEventEmitter\n */\n\n'use strict';\n\nvar _assign = _dereq_(172);\n\nvar EventConstants = _dereq_(16);\nvar EventPluginRegistry = _dereq_(18);\nvar ReactEventEmitterMixin = _dereq_(65);\nvar ViewportMetrics = _dereq_(115);\n\nvar getVendorPrefixedEventName = _dereq_(134);\nvar isEventSupported = _dereq_(136);\n\n/**\n * Summary of `ReactBrowserEventEmitter` event handling:\n *\n *  - Top-level delegation is used to trap most native browser events. This\n *    may only occur in the main thread and is the responsibility of\n *    ReactEventListener, which is injected and can therefore support pluggable\n *    event sources. This is the only work that occurs in the main thread.\n *\n *  - We normalize and de-duplicate events to account for browser quirks. This\n *    may be done in the worker thread.\n *\n *  - Forward these native events (with the associated top-level type used to\n *    trap it) to `EventPluginHub`, which in turn will ask plugins if they want\n *    to extract any synthetic events.\n *\n *  - The `EventPluginHub` will then process each event by annotating them with\n *    \"dispatches\", a sequence of listeners and IDs that care about that event.\n *\n *  - The `EventPluginHub` then dispatches the events.\n *\n * Overview of React and the event system:\n *\n * +------------+    .\n * |    DOM     |    .\n * +------------+    .\n *       |           .\n *       v           .\n * +------------+    .\n * | ReactEvent |    .\n * |  Listener  |    .\n * +------------+    .                         +-----------+\n *       |           .               +--------+|SimpleEvent|\n *       |           .               |         |Plugin     |\n * +-----|------+    .               v         +-----------+\n * |     |      |    .    +--------------+                    +------------+\n * |     +-----------.--->|EventPluginHub|                    |    Event   |\n * |            |    .    |              |     +-----------+  | Propagators|\n * | ReactEvent |    .    |              |     |TapEvent   |  |------------|\n * |  Emitter   |    .    |              |<---+|Plugin     |  |other plugin|\n * |            |    .    |              |     +-----------+  |  utilities |\n * |     +-----------.--->|              |                    +------------+\n * |     |      |    .    +--------------+\n * +-----|------+    .                ^        +-----------+\n *       |           .                |        |Enter/Leave|\n *       +           .                +-------+|Plugin     |\n * +-------------+   .                         +-----------+\n * | application |   .\n * |-------------|   .\n * |             |   .\n * |             |   .\n * +-------------+   .\n *                   .\n *    React Core     .  General Purpose Event Plugin System\n */\n\nvar hasEventPageXY;\nvar alreadyListeningTo = {};\nvar isMonitoringScrollValue = false;\nvar reactTopListenersCounter = 0;\n\n// For events like 'submit' which don't consistently bubble (which we trap at a\n// lower node than `document`), binding at `document` would cause duplicate\n// events so we don't include them here\nvar topEventMapping = {\n  topAbort: 'abort',\n  topAnimationEnd: getVendorPrefixedEventName('animationend') || 'animationend',\n  topAnimationIteration: getVendorPrefixedEventName('animationiteration') || 'animationiteration',\n  topAnimationStart: getVendorPrefixedEventName('animationstart') || 'animationstart',\n  topBlur: 'blur',\n  topCanPlay: 'canplay',\n  topCanPlayThrough: 'canplaythrough',\n  topChange: 'change',\n  topClick: 'click',\n  topCompositionEnd: 'compositionend',\n  topCompositionStart: 'compositionstart',\n  topCompositionUpdate: 'compositionupdate',\n  topContextMenu: 'contextmenu',\n  topCopy: 'copy',\n  topCut: 'cut',\n  topDoubleClick: 'dblclick',\n  topDrag: 'drag',\n  topDragEnd: 'dragend',\n  topDragEnter: 'dragenter',\n  topDragExit: 'dragexit',\n  topDragLeave: 'dragleave',\n  topDragOver: 'dragover',\n  topDragStart: 'dragstart',\n  topDrop: 'drop',\n  topDurationChange: 'durationchange',\n  topEmptied: 'emptied',\n  topEncrypted: 'encrypted',\n  topEnded: 'ended',\n  topError: 'error',\n  topFocus: 'focus',\n  topInput: 'input',\n  topKeyDown: 'keydown',\n  topKeyPress: 'keypress',\n  topKeyUp: 'keyup',\n  topLoadedData: 'loadeddata',\n  topLoadedMetadata: 'loadedmetadata',\n  topLoadStart: 'loadstart',\n  topMouseDown: 'mousedown',\n  topMouseMove: 'mousemove',\n  topMouseOut: 'mouseout',\n  topMouseOver: 'mouseover',\n  topMouseUp: 'mouseup',\n  topPaste: 'paste',\n  topPause: 'pause',\n  topPlay: 'play',\n  topPlaying: 'playing',\n  topProgress: 'progress',\n  topRateChange: 'ratechange',\n  topScroll: 'scroll',\n  topSeeked: 'seeked',\n  topSeeking: 'seeking',\n  topSelectionChange: 'selectionchange',\n  topStalled: 'stalled',\n  topSuspend: 'suspend',\n  topTextInput: 'textInput',\n  topTimeUpdate: 'timeupdate',\n  topTouchCancel: 'touchcancel',\n  topTouchEnd: 'touchend',\n  topTouchMove: 'touchmove',\n  topTouchStart: 'touchstart',\n  topTransitionEnd: getVendorPrefixedEventName('transitionend') || 'transitionend',\n  topVolumeChange: 'volumechange',\n  topWaiting: 'waiting',\n  topWheel: 'wheel'\n};\n\n/**\n * To ensure no conflicts with other potential React instances on the page\n */\nvar topListenersIDKey = '_reactListenersID' + String(Math.random()).slice(2);\n\nfunction getListeningForDocument(mountAt) {\n  // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty`\n  // directly.\n  if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) {\n    mountAt[topListenersIDKey] = reactTopListenersCounter++;\n    alreadyListeningTo[mountAt[topListenersIDKey]] = {};\n  }\n  return alreadyListeningTo[mountAt[topListenersIDKey]];\n}\n\n/**\n * `ReactBrowserEventEmitter` is used to attach top-level event listeners. For\n * example:\n *\n *   EventPluginHub.putListener('myID', 'onClick', myFunction);\n *\n * This would allocate a \"registration\" of `('onClick', myFunction)` on 'myID'.\n *\n * @internal\n */\nvar ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, {\n\n  /**\n   * Injectable event backend\n   */\n  ReactEventListener: null,\n\n  injection: {\n    /**\n     * @param {object} ReactEventListener\n     */\n    injectReactEventListener: function (ReactEventListener) {\n      ReactEventListener.setHandleTopLevel(ReactBrowserEventEmitter.handleTopLevel);\n      ReactBrowserEventEmitter.ReactEventListener = ReactEventListener;\n    }\n  },\n\n  /**\n   * Sets whether or not any created callbacks should be enabled.\n   *\n   * @param {boolean} enabled True if callbacks should be enabled.\n   */\n  setEnabled: function (enabled) {\n    if (ReactBrowserEventEmitter.ReactEventListener) {\n      ReactBrowserEventEmitter.ReactEventListener.setEnabled(enabled);\n    }\n  },\n\n  /**\n   * @return {boolean} True if callbacks are enabled.\n   */\n  isEnabled: function () {\n    return !!(ReactBrowserEventEmitter.ReactEventListener && ReactBrowserEventEmitter.ReactEventListener.isEnabled());\n  },\n\n  /**\n   * We listen for bubbled touch events on the document object.\n   *\n   * Firefox v8.01 (and possibly others) exhibited strange behavior when\n   * mounting `onmousemove` events at some node that was not the document\n   * element. The symptoms were that if your mouse is not moving over something\n   * contained within that mount point (for example on the background) the\n   * top-level listeners for `onmousemove` won't be called. However, if you\n   * register the `mousemove` on the document object, then it will of course\n   * catch all `mousemove`s. This along with iOS quirks, justifies restricting\n   * top-level listeners to the document object only, at least for these\n   * movement types of events and possibly all events.\n   *\n   * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n   *\n   * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but\n   * they bubble to document.\n   *\n   * @param {string} registrationName Name of listener (e.g. `onClick`).\n   * @param {object} contentDocumentHandle Document which owns the container\n   */\n  listenTo: function (registrationName, contentDocumentHandle) {\n    var mountAt = contentDocumentHandle;\n    var isListening = getListeningForDocument(mountAt);\n    var dependencies = EventPluginRegistry.registrationNameDependencies[registrationName];\n\n    var topLevelTypes = EventConstants.topLevelTypes;\n    for (var i = 0; i < dependencies.length; i++) {\n      var dependency = dependencies[i];\n      if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {\n        if (dependency === topLevelTypes.topWheel) {\n          if (isEventSupported('wheel')) {\n            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'wheel', mountAt);\n          } else if (isEventSupported('mousewheel')) {\n            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'mousewheel', mountAt);\n          } else {\n            // Firefox needs to capture a different mouse scroll event.\n            // @see http://www.quirksmode.org/dom/events/tests/scroll.html\n            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'DOMMouseScroll', mountAt);\n          }\n        } else if (dependency === topLevelTypes.topScroll) {\n\n          if (isEventSupported('scroll', true)) {\n            ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topScroll, 'scroll', mountAt);\n          } else {\n            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topScroll, 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE);\n          }\n        } else if (dependency === topLevelTypes.topFocus || dependency === topLevelTypes.topBlur) {\n\n          if (isEventSupported('focus', true)) {\n            ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topFocus, 'focus', mountAt);\n            ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topBlur, 'blur', mountAt);\n          } else if (isEventSupported('focusin')) {\n            // IE has `focusin` and `focusout` events which bubble.\n            // @see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html\n            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topFocus, 'focusin', mountAt);\n            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topBlur, 'focusout', mountAt);\n          }\n\n          // to make sure blur and focus event listeners are only attached once\n          isListening[topLevelTypes.topBlur] = true;\n          isListening[topLevelTypes.topFocus] = true;\n        } else if (topEventMapping.hasOwnProperty(dependency)) {\n          ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(dependency, topEventMapping[dependency], mountAt);\n        }\n\n        isListening[dependency] = true;\n      }\n    }\n  },\n\n  trapBubbledEvent: function (topLevelType, handlerBaseName, handle) {\n    return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelType, handlerBaseName, handle);\n  },\n\n  trapCapturedEvent: function (topLevelType, handlerBaseName, handle) {\n    return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelType, handlerBaseName, handle);\n  },\n\n  /**\n   * Listens to window scroll and resize events. We cache scroll values so that\n   * application code can access them without triggering reflows.\n   *\n   * ViewportMetrics is only used by SyntheticMouse/TouchEvent and only when\n   * pageX/pageY isn't supported (legacy browsers).\n   *\n   * NOTE: Scroll events do not bubble.\n   *\n   * @see http://www.quirksmode.org/dom/events/scroll.html\n   */\n  ensureScrollValueMonitoring: function () {\n    if (hasEventPageXY === undefined) {\n      hasEventPageXY = document.createEvent && 'pageX' in document.createEvent('MouseEvent');\n    }\n    if (!hasEventPageXY && !isMonitoringScrollValue) {\n      var refresh = ViewportMetrics.refreshScrollValues;\n      ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh);\n      isMonitoringScrollValue = true;\n    }\n  }\n\n});\n\nmodule.exports = ReactBrowserEventEmitter;\n},{\"115\":115,\"134\":134,\"136\":136,\"16\":16,\"172\":172,\"18\":18,\"65\":65}],28:[function(_dereq_,module,exports){\n(function (process){\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactChildReconciler\n */\n\n'use strict';\n\nvar ReactReconciler = _dereq_(88);\n\nvar instantiateReactComponent = _dereq_(135);\nvar KeyEscapeUtils = _dereq_(23);\nvar shouldUpdateReactComponent = _dereq_(144);\nvar traverseAllChildren = _dereq_(145);\nvar warning = _dereq_(171);\n\nvar ReactComponentTreeHook;\n\nif (typeof process !== 'undefined' && process.env && \"development\" === 'test') {\n  // Temporary hack.\n  // Inline requires don't work well with Jest:\n  // https://github.com/facebook/react/issues/7240\n  // Remove the inline requires when we don't need them anymore:\n  // https://github.com/facebook/react/pull/7178\n  ReactComponentTreeHook = _dereq_(35);\n}\n\nfunction instantiateChild(childInstances, child, name, selfDebugID) {\n  // We found a component instance.\n  var keyUnique = childInstances[name] === undefined;\n  if (\"development\" !== 'production') {\n    if (!ReactComponentTreeHook) {\n      ReactComponentTreeHook = _dereq_(35);\n    }\n    if (!keyUnique) {\n      \"development\" !== 'production' ? warning(false, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0;\n    }\n  }\n  if (child != null && keyUnique) {\n    childInstances[name] = instantiateReactComponent(child, true);\n  }\n}\n\n/**\n * ReactChildReconciler provides helpers for initializing or updating a set of\n * children. Its output is suitable for passing it onto ReactMultiChild which\n * does diffed reordering and insertion.\n */\nvar ReactChildReconciler = {\n  /**\n   * Generates a \"mount image\" for each of the supplied children. In the case\n   * of `ReactDOMComponent`, a mount image is a string of markup.\n   *\n   * @param {?object} nestedChildNodes Nested child maps.\n   * @return {?object} A set of child instances.\n   * @internal\n   */\n  instantiateChildren: function (nestedChildNodes, transaction, context, selfDebugID // 0 in production and for roots\n  ) {\n    if (nestedChildNodes == null) {\n      return null;\n    }\n    var childInstances = {};\n\n    if (\"development\" !== 'production') {\n      traverseAllChildren(nestedChildNodes, function (childInsts, child, name) {\n        return instantiateChild(childInsts, child, name, selfDebugID);\n      }, childInstances);\n    } else {\n      traverseAllChildren(nestedChildNodes, instantiateChild, childInstances);\n    }\n    return childInstances;\n  },\n\n  /**\n   * Updates the rendered children and returns a new set of children.\n   *\n   * @param {?object} prevChildren Previously initialized set of children.\n   * @param {?object} nextChildren Flat child element maps.\n   * @param {ReactReconcileTransaction} transaction\n   * @param {object} context\n   * @return {?object} A new set of child instances.\n   * @internal\n   */\n  updateChildren: function (prevChildren, nextChildren, mountImages, removedNodes, transaction, hostParent, hostContainerInfo, context, selfDebugID // 0 in production and for roots\n  ) {\n    // We currently don't have a way to track moves here but if we use iterators\n    // instead of for..in we can zip the iterators and check if an item has\n    // moved.\n    // TODO: If nothing has changed, return the prevChildren object so that we\n    // can quickly bailout if nothing has changed.\n    if (!nextChildren && !prevChildren) {\n      return;\n    }\n    var name;\n    var prevChild;\n    for (name in nextChildren) {\n      if (!nextChildren.hasOwnProperty(name)) {\n        continue;\n      }\n      prevChild = prevChildren && prevChildren[name];\n      var prevElement = prevChild && prevChild._currentElement;\n      var nextElement = nextChildren[name];\n      if (prevChild != null && shouldUpdateReactComponent(prevElement, nextElement)) {\n        ReactReconciler.receiveComponent(prevChild, nextElement, transaction, context);\n        nextChildren[name] = prevChild;\n      } else {\n        if (prevChild) {\n          removedNodes[name] = ReactReconciler.getHostNode(prevChild);\n          ReactReconciler.unmountComponent(prevChild, false);\n        }\n        // The child must be instantiated before it's mounted.\n        var nextChildInstance = instantiateReactComponent(nextElement, true);\n        nextChildren[name] = nextChildInstance;\n        // Creating mount image now ensures refs are resolved in right order\n        // (see https://github.com/facebook/react/pull/7101 for explanation).\n        var nextChildMountImage = ReactReconciler.mountComponent(nextChildInstance, transaction, hostParent, hostContainerInfo, context, selfDebugID);\n        mountImages.push(nextChildMountImage);\n      }\n    }\n    // Unmount children that are no longer present.\n    for (name in prevChildren) {\n      if (prevChildren.hasOwnProperty(name) && !(nextChildren && nextChildren.hasOwnProperty(name))) {\n        prevChild = prevChildren[name];\n        removedNodes[name] = ReactReconciler.getHostNode(prevChild);\n        ReactReconciler.unmountComponent(prevChild, false);\n      }\n    }\n  },\n\n  /**\n   * Unmounts all rendered children. This should be used to clean up children\n   * when this component is unmounted.\n   *\n   * @param {?object} renderedChildren Previously initialized set of children.\n   * @internal\n   */\n  unmountChildren: function (renderedChildren, safely) {\n    for (var name in renderedChildren) {\n      if (renderedChildren.hasOwnProperty(name)) {\n        var renderedChild = renderedChildren[name];\n        ReactReconciler.unmountComponent(renderedChild, safely);\n      }\n    }\n  }\n\n};\n\nmodule.exports = ReactChildReconciler;\n}).call(this,undefined)\n},{\"135\":135,\"144\":144,\"145\":145,\"171\":171,\"23\":23,\"35\":35,\"88\":88}],29:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactChildren\n */\n\n'use strict';\n\nvar PooledClass = _dereq_(25);\nvar ReactElement = _dereq_(61);\n\nvar emptyFunction = _dereq_(154);\nvar traverseAllChildren = _dereq_(145);\n\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\nvar fourArgumentPooler = PooledClass.fourArgumentPooler;\n\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction escapeUserProvidedKey(text) {\n  return ('' + text).replace(userProvidedKeyEscapeRegex, '$&/');\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * traversal. Allows avoiding binding callbacks.\n *\n * @constructor ForEachBookKeeping\n * @param {!function} forEachFunction Function to perform traversal with.\n * @param {?*} forEachContext Context to perform context with.\n */\nfunction ForEachBookKeeping(forEachFunction, forEachContext) {\n  this.func = forEachFunction;\n  this.context = forEachContext;\n  this.count = 0;\n}\nForEachBookKeeping.prototype.destructor = function () {\n  this.func = null;\n  this.context = null;\n  this.count = 0;\n};\nPooledClass.addPoolingTo(ForEachBookKeeping, twoArgumentPooler);\n\nfunction forEachSingleChild(bookKeeping, child, name) {\n  var func = bookKeeping.func;\n  var context = bookKeeping.context;\n\n  func.call(context, child, bookKeeping.count++);\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.foreach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n  if (children == null) {\n    return children;\n  }\n  var traverseContext = ForEachBookKeeping.getPooled(forEachFunc, forEachContext);\n  traverseAllChildren(children, forEachSingleChild, traverseContext);\n  ForEachBookKeeping.release(traverseContext);\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * mapping. Allows avoiding binding callbacks.\n *\n * @constructor MapBookKeeping\n * @param {!*} mapResult Object containing the ordered map of results.\n * @param {!function} mapFunction Function to perform mapping with.\n * @param {?*} mapContext Context to perform mapping with.\n */\nfunction MapBookKeeping(mapResult, keyPrefix, mapFunction, mapContext) {\n  this.result = mapResult;\n  this.keyPrefix = keyPrefix;\n  this.func = mapFunction;\n  this.context = mapContext;\n  this.count = 0;\n}\nMapBookKeeping.prototype.destructor = function () {\n  this.result = null;\n  this.keyPrefix = null;\n  this.func = null;\n  this.context = null;\n  this.count = 0;\n};\nPooledClass.addPoolingTo(MapBookKeeping, fourArgumentPooler);\n\nfunction mapSingleChildIntoContext(bookKeeping, child, childKey) {\n  var result = bookKeeping.result;\n  var keyPrefix = bookKeeping.keyPrefix;\n  var func = bookKeeping.func;\n  var context = bookKeeping.context;\n\n\n  var mappedChild = func.call(context, child, bookKeeping.count++);\n  if (Array.isArray(mappedChild)) {\n    mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, emptyFunction.thatReturnsArgument);\n  } else if (mappedChild != null) {\n    if (ReactElement.isValidElement(mappedChild)) {\n      mappedChild = ReactElement.cloneAndReplaceKey(mappedChild,\n      // Keep both the (mapped) and old keys if they differ, just as\n      // traverseAllChildren used to do for objects as children\n      keyPrefix + (mappedChild.key && (!child || child.key !== mappedChild.key) ? escapeUserProvidedKey(mappedChild.key) + '/' : '') + childKey);\n    }\n    result.push(mappedChild);\n  }\n}\n\nfunction mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) {\n  var escapedPrefix = '';\n  if (prefix != null) {\n    escapedPrefix = escapeUserProvidedKey(prefix) + '/';\n  }\n  var traverseContext = MapBookKeeping.getPooled(array, escapedPrefix, func, context);\n  traverseAllChildren(children, mapSingleChildIntoContext, traverseContext);\n  MapBookKeeping.release(traverseContext);\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.map\n *\n * The provided mapFunction(child, key, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n  if (children == null) {\n    return children;\n  }\n  var result = [];\n  mapIntoWithKeyPrefixInternal(children, result, null, func, context);\n  return result;\n}\n\nfunction forEachSingleChildDummy(traverseContext, child, name) {\n  return null;\n}\n\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.count\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\nfunction countChildren(children, context) {\n  return traverseAllChildren(children, forEachSingleChildDummy, null);\n}\n\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.toarray\n */\nfunction toArray(children) {\n  var result = [];\n  mapIntoWithKeyPrefixInternal(children, result, null, emptyFunction.thatReturnsArgument);\n  return result;\n}\n\nvar ReactChildren = {\n  forEach: forEachChildren,\n  map: mapChildren,\n  mapIntoWithKeyPrefixInternal: mapIntoWithKeyPrefixInternal,\n  count: countChildren,\n  toArray: toArray\n};\n\nmodule.exports = ReactChildren;\n},{\"145\":145,\"154\":154,\"25\":25,\"61\":61}],30:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactChildrenMutationWarningHook\n */\n\n'use strict';\n\nvar ReactComponentTreeHook = _dereq_(35);\n\nvar warning = _dereq_(171);\n\nfunction handleElement(debugID, element) {\n  if (element == null) {\n    return;\n  }\n  if (element._shadowChildren === undefined) {\n    return;\n  }\n  if (element._shadowChildren === element.props.children) {\n    return;\n  }\n  var isMutated = false;\n  if (Array.isArray(element._shadowChildren)) {\n    if (element._shadowChildren.length === element.props.children.length) {\n      for (var i = 0; i < element._shadowChildren.length; i++) {\n        if (element._shadowChildren[i] !== element.props.children[i]) {\n          isMutated = true;\n        }\n      }\n    } else {\n      isMutated = true;\n    }\n  }\n  if (!Array.isArray(element._shadowChildren) || isMutated) {\n    \"development\" !== 'production' ? warning(false, 'Component\\'s children should not be mutated.%s', ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;\n  }\n}\n\nvar ReactChildrenMutationWarningHook = {\n  onMountComponent: function (debugID) {\n    handleElement(debugID, ReactComponentTreeHook.getElement(debugID));\n  },\n  onUpdateComponent: function (debugID) {\n    handleElement(debugID, ReactComponentTreeHook.getElement(debugID));\n  }\n};\n\nmodule.exports = ReactChildrenMutationWarningHook;\n},{\"171\":171,\"35\":35}],31:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactClass\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140),\n    _assign = _dereq_(172);\n\nvar ReactComponent = _dereq_(32);\nvar ReactElement = _dereq_(61);\nvar ReactPropTypeLocations = _dereq_(83);\nvar ReactPropTypeLocationNames = _dereq_(82);\nvar ReactNoopUpdateQueue = _dereq_(80);\n\nvar emptyObject = _dereq_(155);\nvar invariant = _dereq_(162);\nvar keyMirror = _dereq_(165);\nvar keyOf = _dereq_(166);\nvar warning = _dereq_(171);\n\nvar MIXINS_KEY = keyOf({ mixins: null });\n\n/**\n * Policies that describe methods in `ReactClassInterface`.\n */\nvar SpecPolicy = keyMirror({\n  /**\n   * These methods may be defined only once by the class specification or mixin.\n   */\n  DEFINE_ONCE: null,\n  /**\n   * These methods may be defined by both the class specification and mixins.\n   * Subsequent definitions will be chained. These methods must return void.\n   */\n  DEFINE_MANY: null,\n  /**\n   * These methods are overriding the base class.\n   */\n  OVERRIDE_BASE: null,\n  /**\n   * These methods are similar to DEFINE_MANY, except we assume they return\n   * objects. We try to merge the keys of the return values of all the mixed in\n   * functions. If there is a key conflict we throw.\n   */\n  DEFINE_MANY_MERGED: null\n});\n\nvar injectedMixins = [];\n\n/**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n *   var MyComponent = React.createClass({\n *     render: function() {\n *       return <div>Hello World</div>;\n *     }\n *   });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\nvar ReactClassInterface = {\n\n  /**\n   * An array of Mixin objects to include when defining your component.\n   *\n   * @type {array}\n   * @optional\n   */\n  mixins: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * An object containing properties and methods that should be defined on\n   * the component's constructor instead of its prototype (static methods).\n   *\n   * @type {object}\n   * @optional\n   */\n  statics: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Definition of prop types for this component.\n   *\n   * @type {object}\n   * @optional\n   */\n  propTypes: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Definition of context types for this component.\n   *\n   * @type {object}\n   * @optional\n   */\n  contextTypes: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Definition of context types this component sets for its children.\n   *\n   * @type {object}\n   * @optional\n   */\n  childContextTypes: SpecPolicy.DEFINE_MANY,\n\n  // ==== Definition methods ====\n\n  /**\n   * Invoked when the component is mounted. Values in the mapping will be set on\n   * `this.props` if that prop is not specified (i.e. using an `in` check).\n   *\n   * This method is invoked before `getInitialState` and therefore cannot rely\n   * on `this.state` or use `this.setState`.\n   *\n   * @return {object}\n   * @optional\n   */\n  getDefaultProps: SpecPolicy.DEFINE_MANY_MERGED,\n\n  /**\n   * Invoked once before the component is mounted. The return value will be used\n   * as the initial value of `this.state`.\n   *\n   *   getInitialState: function() {\n   *     return {\n   *       isOn: false,\n   *       fooBaz: new BazFoo()\n   *     }\n   *   }\n   *\n   * @return {object}\n   * @optional\n   */\n  getInitialState: SpecPolicy.DEFINE_MANY_MERGED,\n\n  /**\n   * @return {object}\n   * @optional\n   */\n  getChildContext: SpecPolicy.DEFINE_MANY_MERGED,\n\n  /**\n   * Uses props from `this.props` and state from `this.state` to render the\n   * structure of the component.\n   *\n   * No guarantees are made about when or how often this method is invoked, so\n   * it must not have side effects.\n   *\n   *   render: function() {\n   *     var name = this.props.name;\n   *     return <div>Hello, {name}!</div>;\n   *   }\n   *\n   * @return {ReactComponent}\n   * @nosideeffects\n   * @required\n   */\n  render: SpecPolicy.DEFINE_ONCE,\n\n  // ==== Delegate methods ====\n\n  /**\n   * Invoked when the component is initially created and about to be mounted.\n   * This may have side effects, but any external subscriptions or data created\n   * by this method must be cleaned up in `componentWillUnmount`.\n   *\n   * @optional\n   */\n  componentWillMount: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Invoked when the component has been mounted and has a DOM representation.\n   * However, there is no guarantee that the DOM node is in the document.\n   *\n   * Use this as an opportunity to operate on the DOM when the component has\n   * been mounted (initialized and rendered) for the first time.\n   *\n   * @param {DOMElement} rootNode DOM element representing the component.\n   * @optional\n   */\n  componentDidMount: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Invoked before the component receives new props.\n   *\n   * Use this as an opportunity to react to a prop transition by updating the\n   * state using `this.setState`. Current props are accessed via `this.props`.\n   *\n   *   componentWillReceiveProps: function(nextProps, nextContext) {\n   *     this.setState({\n   *       likesIncreasing: nextProps.likeCount > this.props.likeCount\n   *     });\n   *   }\n   *\n   * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n   * transition may cause a state change, but the opposite is not true. If you\n   * need it, you are probably looking for `componentWillUpdate`.\n   *\n   * @param {object} nextProps\n   * @optional\n   */\n  componentWillReceiveProps: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Invoked while deciding if the component should be updated as a result of\n   * receiving new props, state and/or context.\n   *\n   * Use this as an opportunity to `return false` when you're certain that the\n   * transition to the new props/state/context will not require a component\n   * update.\n   *\n   *   shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n   *     return !equal(nextProps, this.props) ||\n   *       !equal(nextState, this.state) ||\n   *       !equal(nextContext, this.context);\n   *   }\n   *\n   * @param {object} nextProps\n   * @param {?object} nextState\n   * @param {?object} nextContext\n   * @return {boolean} True if the component should update.\n   * @optional\n   */\n  shouldComponentUpdate: SpecPolicy.DEFINE_ONCE,\n\n  /**\n   * Invoked when the component is about to update due to a transition from\n   * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n   * and `nextContext`.\n   *\n   * Use this as an opportunity to perform preparation before an update occurs.\n   *\n   * NOTE: You **cannot** use `this.setState()` in this method.\n   *\n   * @param {object} nextProps\n   * @param {?object} nextState\n   * @param {?object} nextContext\n   * @param {ReactReconcileTransaction} transaction\n   * @optional\n   */\n  componentWillUpdate: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Invoked when the component's DOM representation has been updated.\n   *\n   * Use this as an opportunity to operate on the DOM when the component has\n   * been updated.\n   *\n   * @param {object} prevProps\n   * @param {?object} prevState\n   * @param {?object} prevContext\n   * @param {DOMElement} rootNode DOM element representing the component.\n   * @optional\n   */\n  componentDidUpdate: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Invoked when the component is about to be removed from its parent and have\n   * its DOM representation destroyed.\n   *\n   * Use this as an opportunity to deallocate any external resources.\n   *\n   * NOTE: There is no `componentDidUnmount` since your component will have been\n   * destroyed by that point.\n   *\n   * @optional\n   */\n  componentWillUnmount: SpecPolicy.DEFINE_MANY,\n\n  // ==== Advanced methods ====\n\n  /**\n   * Updates the component's currently mounted DOM representation.\n   *\n   * By default, this implements React's rendering and reconciliation algorithm.\n   * Sophisticated clients may wish to override this.\n   *\n   * @param {ReactReconcileTransaction} transaction\n   * @internal\n   * @overridable\n   */\n  updateComponent: SpecPolicy.OVERRIDE_BASE\n\n};\n\n/**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\nvar RESERVED_SPEC_KEYS = {\n  displayName: function (Constructor, displayName) {\n    Constructor.displayName = displayName;\n  },\n  mixins: function (Constructor, mixins) {\n    if (mixins) {\n      for (var i = 0; i < mixins.length; i++) {\n        mixSpecIntoComponent(Constructor, mixins[i]);\n      }\n    }\n  },\n  childContextTypes: function (Constructor, childContextTypes) {\n    if (\"development\" !== 'production') {\n      validateTypeDef(Constructor, childContextTypes, ReactPropTypeLocations.childContext);\n    }\n    Constructor.childContextTypes = _assign({}, Constructor.childContextTypes, childContextTypes);\n  },\n  contextTypes: function (Constructor, contextTypes) {\n    if (\"development\" !== 'production') {\n      validateTypeDef(Constructor, contextTypes, ReactPropTypeLocations.context);\n    }\n    Constructor.contextTypes = _assign({}, Constructor.contextTypes, contextTypes);\n  },\n  /**\n   * Special case getDefaultProps which should move into statics but requires\n   * automatic merging.\n   */\n  getDefaultProps: function (Constructor, getDefaultProps) {\n    if (Constructor.getDefaultProps) {\n      Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, getDefaultProps);\n    } else {\n      Constructor.getDefaultProps = getDefaultProps;\n    }\n  },\n  propTypes: function (Constructor, propTypes) {\n    if (\"development\" !== 'production') {\n      validateTypeDef(Constructor, propTypes, ReactPropTypeLocations.prop);\n    }\n    Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n  },\n  statics: function (Constructor, statics) {\n    mixStaticSpecIntoComponent(Constructor, statics);\n  },\n  autobind: function () {} };\n\n// noop\nfunction validateTypeDef(Constructor, typeDef, location) {\n  for (var propName in typeDef) {\n    if (typeDef.hasOwnProperty(propName)) {\n      // use a warning instead of an invariant so components\n      // don't show up in prod but only in __DEV__\n      \"development\" !== 'production' ? warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName) : void 0;\n    }\n  }\n}\n\nfunction validateMethodOverride(isAlreadyDefined, name) {\n  var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null;\n\n  // Disallow overriding of base class methods unless explicitly allowed.\n  if (ReactClassMixin.hasOwnProperty(name)) {\n    !(specPolicy === SpecPolicy.OVERRIDE_BASE) ? \"development\" !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.', name) : _prodInvariant('73', name) : void 0;\n  }\n\n  // Disallow defining methods more than once unless explicitly allowed.\n  if (isAlreadyDefined) {\n    !(specPolicy === SpecPolicy.DEFINE_MANY || specPolicy === SpecPolicy.DEFINE_MANY_MERGED) ? \"development\" !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', name) : _prodInvariant('74', name) : void 0;\n  }\n}\n\n/**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\nfunction mixSpecIntoComponent(Constructor, spec) {\n  if (!spec) {\n    if (\"development\" !== 'production') {\n      var typeofSpec = typeof spec;\n      var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n      \"development\" !== 'production' ? warning(isMixinValid, '%s: You\\'re attempting to include a mixin that is either null ' + 'or not an object. Check the mixins included by the component, ' + 'as well as any mixins they include themselves. ' + 'Expected object but got %s.', Constructor.displayName || 'ReactClass', spec === null ? null : typeofSpec) : void 0;\n    }\n\n    return;\n  }\n\n  !(typeof spec !== 'function') ? \"development\" !== 'production' ? invariant(false, 'ReactClass: You\\'re attempting to use a component class or function as a mixin. Instead, just use a regular object.') : _prodInvariant('75') : void 0;\n  !!ReactElement.isValidElement(spec) ? \"development\" !== 'production' ? invariant(false, 'ReactClass: You\\'re attempting to use a component as a mixin. Instead, just use a regular object.') : _prodInvariant('76') : void 0;\n\n  var proto = Constructor.prototype;\n  var autoBindPairs = proto.__reactAutoBindPairs;\n\n  // By handling mixins before any other properties, we ensure the same\n  // chaining order is applied to methods with DEFINE_MANY policy, whether\n  // mixins are listed before or after these methods in the spec.\n  if (spec.hasOwnProperty(MIXINS_KEY)) {\n    RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n  }\n\n  for (var name in spec) {\n    if (!spec.hasOwnProperty(name)) {\n      continue;\n    }\n\n    if (name === MIXINS_KEY) {\n      // We have already handled mixins in a special case above.\n      continue;\n    }\n\n    var property = spec[name];\n    var isAlreadyDefined = proto.hasOwnProperty(name);\n    validateMethodOverride(isAlreadyDefined, name);\n\n    if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n      RESERVED_SPEC_KEYS[name](Constructor, property);\n    } else {\n      // Setup methods on prototype:\n      // The following member methods should not be automatically bound:\n      // 1. Expected ReactClass methods (in the \"interface\").\n      // 2. Overridden methods (that were mixed in).\n      var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n      var isFunction = typeof property === 'function';\n      var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false;\n\n      if (shouldAutoBind) {\n        autoBindPairs.push(name, property);\n        proto[name] = property;\n      } else {\n        if (isAlreadyDefined) {\n          var specPolicy = ReactClassInterface[name];\n\n          // These cases should already be caught by validateMethodOverride.\n          !(isReactClassMethod && (specPolicy === SpecPolicy.DEFINE_MANY_MERGED || specPolicy === SpecPolicy.DEFINE_MANY)) ? \"development\" !== 'production' ? invariant(false, 'ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.', specPolicy, name) : _prodInvariant('77', specPolicy, name) : void 0;\n\n          // For methods which are defined more than once, call the existing\n          // methods before calling the new property, merging if appropriate.\n          if (specPolicy === SpecPolicy.DEFINE_MANY_MERGED) {\n            proto[name] = createMergedResultFunction(proto[name], property);\n          } else if (specPolicy === SpecPolicy.DEFINE_MANY) {\n            proto[name] = createChainedFunction(proto[name], property);\n          }\n        } else {\n          proto[name] = property;\n          if (\"development\" !== 'production') {\n            // Add verbose displayName to the function, which helps when looking\n            // at profiling tools.\n            if (typeof property === 'function' && spec.displayName) {\n              proto[name].displayName = spec.displayName + '_' + name;\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\nfunction mixStaticSpecIntoComponent(Constructor, statics) {\n  if (!statics) {\n    return;\n  }\n  for (var name in statics) {\n    var property = statics[name];\n    if (!statics.hasOwnProperty(name)) {\n      continue;\n    }\n\n    var isReserved = name in RESERVED_SPEC_KEYS;\n    !!isReserved ? \"development\" !== 'production' ? invariant(false, 'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it as an instance property instead; it will still be accessible on the constructor.', name) : _prodInvariant('78', name) : void 0;\n\n    var isInherited = name in Constructor;\n    !!isInherited ? \"development\" !== 'production' ? invariant(false, 'ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', name) : _prodInvariant('79', name) : void 0;\n    Constructor[name] = property;\n  }\n}\n\n/**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\nfunction mergeIntoWithNoDuplicateKeys(one, two) {\n  !(one && two && typeof one === 'object' && typeof two === 'object') ? \"development\" !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.') : _prodInvariant('80') : void 0;\n\n  for (var key in two) {\n    if (two.hasOwnProperty(key)) {\n      !(one[key] === undefined) ? \"development\" !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.', key) : _prodInvariant('81', key) : void 0;\n      one[key] = two[key];\n    }\n  }\n  return one;\n}\n\n/**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\nfunction createMergedResultFunction(one, two) {\n  return function mergedResult() {\n    var a = one.apply(this, arguments);\n    var b = two.apply(this, arguments);\n    if (a == null) {\n      return b;\n    } else if (b == null) {\n      return a;\n    }\n    var c = {};\n    mergeIntoWithNoDuplicateKeys(c, a);\n    mergeIntoWithNoDuplicateKeys(c, b);\n    return c;\n  };\n}\n\n/**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\nfunction createChainedFunction(one, two) {\n  return function chainedFunction() {\n    one.apply(this, arguments);\n    two.apply(this, arguments);\n  };\n}\n\n/**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\nfunction bindAutoBindMethod(component, method) {\n  var boundMethod = method.bind(component);\n  if (\"development\" !== 'production') {\n    boundMethod.__reactBoundContext = component;\n    boundMethod.__reactBoundMethod = method;\n    boundMethod.__reactBoundArguments = null;\n    var componentName = component.constructor.displayName;\n    var _bind = boundMethod.bind;\n    boundMethod.bind = function (newThis) {\n      for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      // User is trying to bind() an autobound method; we effectively will\n      // ignore the value of \"this\" that the user is trying to use, so\n      // let's warn.\n      if (newThis !== component && newThis !== null) {\n        \"development\" !== 'production' ? warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName) : void 0;\n      } else if (!args.length) {\n        \"development\" !== 'production' ? warning(false, 'bind(): You are binding a component method to the component. ' + 'React does this for you automatically in a high-performance ' + 'way, so you can safely remove this call. See %s', componentName) : void 0;\n        return boundMethod;\n      }\n      var reboundMethod = _bind.apply(boundMethod, arguments);\n      reboundMethod.__reactBoundContext = component;\n      reboundMethod.__reactBoundMethod = method;\n      reboundMethod.__reactBoundArguments = args;\n      return reboundMethod;\n    };\n  }\n  return boundMethod;\n}\n\n/**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\nfunction bindAutoBindMethods(component) {\n  var pairs = component.__reactAutoBindPairs;\n  for (var i = 0; i < pairs.length; i += 2) {\n    var autoBindKey = pairs[i];\n    var method = pairs[i + 1];\n    component[autoBindKey] = bindAutoBindMethod(component, method);\n  }\n}\n\n/**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\nvar ReactClassMixin = {\n\n  /**\n   * TODO: This will be deprecated because state should always keep a consistent\n   * type signature and the only use case for this, is to avoid that.\n   */\n  replaceState: function (newState, callback) {\n    this.updater.enqueueReplaceState(this, newState);\n    if (callback) {\n      this.updater.enqueueCallback(this, callback, 'replaceState');\n    }\n  },\n\n  /**\n   * Checks whether or not this composite component is mounted.\n   * @return {boolean} True if mounted, false otherwise.\n   * @protected\n   * @final\n   */\n  isMounted: function () {\n    return this.updater.isMounted(this);\n  }\n};\n\nvar ReactClassComponent = function () {};\n_assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin);\n\n/**\n * Module for creating composite components.\n *\n * @class ReactClass\n */\nvar ReactClass = {\n\n  /**\n   * Creates a composite component class given a class specification.\n   * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n   *\n   * @param {object} spec Class specification (which must define `render`).\n   * @return {function} Component constructor function.\n   * @public\n   */\n  createClass: function (spec) {\n    var Constructor = function (props, context, updater) {\n      // This constructor gets overridden by mocks. The argument is used\n      // by mocks to assert on what gets mounted.\n\n      if (\"development\" !== 'production') {\n        \"development\" !== 'production' ? warning(this instanceof Constructor, 'Something is calling a React component directly. Use a factory or ' + 'JSX instead. See: https://fb.me/react-legacyfactory') : void 0;\n      }\n\n      // Wire up auto-binding\n      if (this.__reactAutoBindPairs.length) {\n        bindAutoBindMethods(this);\n      }\n\n      this.props = props;\n      this.context = context;\n      this.refs = emptyObject;\n      this.updater = updater || ReactNoopUpdateQueue;\n\n      this.state = null;\n\n      // ReactClasses doesn't have constructors. Instead, they use the\n      // getInitialState and componentWillMount methods for initialization.\n\n      var initialState = this.getInitialState ? this.getInitialState() : null;\n      if (\"development\" !== 'production') {\n        // We allow auto-mocks to proceed as if they're returning null.\n        if (initialState === undefined && this.getInitialState._isMockFunction) {\n          // This is probably bad practice. Consider warning here and\n          // deprecating this convenience.\n          initialState = null;\n        }\n      }\n      !(typeof initialState === 'object' && !Array.isArray(initialState)) ? \"development\" !== 'production' ? invariant(false, '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent') : _prodInvariant('82', Constructor.displayName || 'ReactCompositeComponent') : void 0;\n\n      this.state = initialState;\n    };\n    Constructor.prototype = new ReactClassComponent();\n    Constructor.prototype.constructor = Constructor;\n    Constructor.prototype.__reactAutoBindPairs = [];\n\n    injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n    mixSpecIntoComponent(Constructor, spec);\n\n    // Initialize the defaultProps property after all mixins have been merged.\n    if (Constructor.getDefaultProps) {\n      Constructor.defaultProps = Constructor.getDefaultProps();\n    }\n\n    if (\"development\" !== 'production') {\n      // This is a tag to indicate that the use of these method names is ok,\n      // since it's used with createClass. If it's not, then it's likely a\n      // mistake so we'll warn you to use the static property, property\n      // initializer or constructor respectively.\n      if (Constructor.getDefaultProps) {\n        Constructor.getDefaultProps.isReactClassApproved = {};\n      }\n      if (Constructor.prototype.getInitialState) {\n        Constructor.prototype.getInitialState.isReactClassApproved = {};\n      }\n    }\n\n    !Constructor.prototype.render ? \"development\" !== 'production' ? invariant(false, 'createClass(...): Class specification must implement a `render` method.') : _prodInvariant('83') : void 0;\n\n    if (\"development\" !== 'production') {\n      \"development\" !== 'production' ? warning(!Constructor.prototype.componentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', spec.displayName || 'A component') : void 0;\n      \"development\" !== 'production' ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : void 0;\n    }\n\n    // Reduce time spent doing lookups by setting these on the prototype.\n    for (var methodName in ReactClassInterface) {\n      if (!Constructor.prototype[methodName]) {\n        Constructor.prototype[methodName] = null;\n      }\n    }\n\n    return Constructor;\n  },\n\n  injection: {\n    injectMixin: function (mixin) {\n      injectedMixins.push(mixin);\n    }\n  }\n\n};\n\nmodule.exports = ReactClass;\n},{\"140\":140,\"155\":155,\"162\":162,\"165\":165,\"166\":166,\"171\":171,\"172\":172,\"32\":32,\"61\":61,\"80\":80,\"82\":82,\"83\":83}],32:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponent\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar ReactNoopUpdateQueue = _dereq_(80);\n\nvar canDefineProperty = _dereq_(118);\nvar emptyObject = _dereq_(155);\nvar invariant = _dereq_(162);\nvar warning = _dereq_(171);\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction ReactComponent(props, context, updater) {\n  this.props = props;\n  this.context = context;\n  this.refs = emptyObject;\n  // We initialize the default updater but the real one gets injected by the\n  // renderer.\n  this.updater = updater || ReactNoopUpdateQueue;\n}\n\nReactComponent.prototype.isReactComponent = {};\n\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together.  You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n *        produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\nReactComponent.prototype.setState = function (partialState, callback) {\n  !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? \"development\" !== 'production' ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : _prodInvariant('85') : void 0;\n  this.updater.enqueueSetState(this, partialState);\n  if (callback) {\n    this.updater.enqueueCallback(this, callback, 'setState');\n  }\n};\n\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\nReactComponent.prototype.forceUpdate = function (callback) {\n  this.updater.enqueueForceUpdate(this);\n  if (callback) {\n    this.updater.enqueueCallback(this, callback, 'forceUpdate');\n  }\n};\n\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\nif (\"development\" !== 'production') {\n  var deprecatedAPIs = {\n    isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n    replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n  };\n  var defineDeprecationWarning = function (methodName, info) {\n    if (canDefineProperty) {\n      Object.defineProperty(ReactComponent.prototype, methodName, {\n        get: function () {\n          \"development\" !== 'production' ? warning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]) : void 0;\n          return undefined;\n        }\n      });\n    }\n  };\n  for (var fnName in deprecatedAPIs) {\n    if (deprecatedAPIs.hasOwnProperty(fnName)) {\n      defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n    }\n  }\n}\n\nmodule.exports = ReactComponent;\n},{\"118\":118,\"140\":140,\"155\":155,\"162\":162,\"171\":171,\"80\":80}],33:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponentBrowserEnvironment\n */\n\n'use strict';\n\nvar DOMChildrenOperations = _dereq_(7);\nvar ReactDOMIDOperations = _dereq_(47);\n\n/**\n * Abstracts away all functionality of the reconciler that requires knowledge of\n * the browser context. TODO: These callers should be refactored to avoid the\n * need for this injection.\n */\nvar ReactComponentBrowserEnvironment = {\n\n  processChildrenUpdates: ReactDOMIDOperations.dangerouslyProcessChildrenUpdates,\n\n  replaceNodeWithMarkup: DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup\n\n};\n\nmodule.exports = ReactComponentBrowserEnvironment;\n},{\"47\":47,\"7\":7}],34:[function(_dereq_,module,exports){\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponentEnvironment\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar invariant = _dereq_(162);\n\nvar injected = false;\n\nvar ReactComponentEnvironment = {\n\n  /**\n   * Optionally injectable hook for swapping out mount images in the middle of\n   * the tree.\n   */\n  replaceNodeWithMarkup: null,\n\n  /**\n   * Optionally injectable hook for processing a queue of child updates. Will\n   * later move into MultiChildComponents.\n   */\n  processChildrenUpdates: null,\n\n  injection: {\n    injectEnvironment: function (environment) {\n      !!injected ? \"development\" !== 'production' ? invariant(false, 'ReactCompositeComponent: injectEnvironment() can only be called once.') : _prodInvariant('104') : void 0;\n      ReactComponentEnvironment.replaceNodeWithMarkup = environment.replaceNodeWithMarkup;\n      ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates;\n      injected = true;\n    }\n  }\n\n};\n\nmodule.exports = ReactComponentEnvironment;\n},{\"140\":140,\"162\":162}],35:[function(_dereq_,module,exports){\n/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponentTreeHook\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar ReactCurrentOwner = _dereq_(37);\n\nvar invariant = _dereq_(162);\nvar warning = _dereq_(171);\n\nfunction isNative(fn) {\n  // Based on isNative() from Lodash\n  var funcToString = Function.prototype.toString;\n  var hasOwnProperty = Object.prototype.hasOwnProperty;\n  var reIsNative = RegExp('^' + funcToString\n  // Take an example native function source for comparison\n  .call(hasOwnProperty)\n  // Strip regex characters so we can use it for regex\n  .replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n  // Remove hasOwnProperty from the template to make it generic\n  .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n  try {\n    var source = funcToString.call(fn);\n    return reIsNative.test(source);\n  } catch (err) {\n    return false;\n  }\n}\n\nvar canUseCollections =\n// Array.from\ntypeof Array.from === 'function' &&\n// Map\ntypeof Map === 'function' && isNative(Map) &&\n// Map.prototype.keys\nMap.prototype != null && typeof Map.prototype.keys === 'function' && isNative(Map.prototype.keys) &&\n// Set\ntypeof Set === 'function' && isNative(Set) &&\n// Set.prototype.keys\nSet.prototype != null && typeof Set.prototype.keys === 'function' && isNative(Set.prototype.keys);\n\nvar itemMap;\nvar rootIDSet;\n\nvar itemByKey;\nvar rootByKey;\n\nif (canUseCollections) {\n  itemMap = new Map();\n  rootIDSet = new Set();\n} else {\n  itemByKey = {};\n  rootByKey = {};\n}\n\nvar unmountedIDs = [];\n\n// Use non-numeric keys to prevent V8 performance issues:\n// https://github.com/facebook/react/pull/7232\nfunction getKeyFromID(id) {\n  return '.' + id;\n}\nfunction getIDFromKey(key) {\n  return parseInt(key.substr(1), 10);\n}\n\nfunction get(id) {\n  if (canUseCollections) {\n    return itemMap.get(id);\n  } else {\n    var key = getKeyFromID(id);\n    return itemByKey[key];\n  }\n}\n\nfunction remove(id) {\n  if (canUseCollections) {\n    itemMap['delete'](id);\n  } else {\n    var key = getKeyFromID(id);\n    delete itemByKey[key];\n  }\n}\n\nfunction create(id, element, parentID) {\n  var item = {\n    element: element,\n    parentID: parentID,\n    text: null,\n    childIDs: [],\n    isMounted: false,\n    updateCount: 0\n  };\n\n  if (canUseCollections) {\n    itemMap.set(id, item);\n  } else {\n    var key = getKeyFromID(id);\n    itemByKey[key] = item;\n  }\n}\n\nfunction addRoot(id) {\n  if (canUseCollections) {\n    rootIDSet.add(id);\n  } else {\n    var key = getKeyFromID(id);\n    rootByKey[key] = true;\n  }\n}\n\nfunction removeRoot(id) {\n  if (canUseCollections) {\n    rootIDSet['delete'](id);\n  } else {\n    var key = getKeyFromID(id);\n    delete rootByKey[key];\n  }\n}\n\nfunction getRegisteredIDs() {\n  if (canUseCollections) {\n    return Array.from(itemMap.keys());\n  } else {\n    return Object.keys(itemByKey).map(getIDFromKey);\n  }\n}\n\nfunction getRootIDs() {\n  if (canUseCollections) {\n    return Array.from(rootIDSet.keys());\n  } else {\n    return Object.keys(rootByKey).map(getIDFromKey);\n  }\n}\n\nfunction purgeDeep(id) {\n  var item = get(id);\n  if (item) {\n    var childIDs = item.childIDs;\n\n    remove(id);\n    childIDs.forEach(purgeDeep);\n  }\n}\n\nfunction describeComponentFrame(name, source, ownerName) {\n  return '\\n    in ' + name + (source ? ' (at ' + source.fileName.replace(/^.*[\\\\\\/]/, '') + ':' + source.lineNumber + ')' : ownerName ? ' (created by ' + ownerName + ')' : '');\n}\n\nfunction getDisplayName(element) {\n  if (element == null) {\n    return '#empty';\n  } else if (typeof element === 'string' || typeof element === 'number') {\n    return '#text';\n  } else if (typeof element.type === 'string') {\n    return element.type;\n  } else {\n    return element.type.displayName || element.type.name || 'Unknown';\n  }\n}\n\nfunction describeID(id) {\n  var name = ReactComponentTreeHook.getDisplayName(id);\n  var element = ReactComponentTreeHook.getElement(id);\n  var ownerID = ReactComponentTreeHook.getOwnerID(id);\n  var ownerName;\n  if (ownerID) {\n    ownerName = ReactComponentTreeHook.getDisplayName(ownerID);\n  }\n  \"development\" !== 'production' ? warning(element, 'ReactComponentTreeHook: Missing React element for debugID %s when ' + 'building stack', id) : void 0;\n  return describeComponentFrame(name, element && element._source, ownerName);\n}\n\nvar ReactComponentTreeHook = {\n  onSetChildren: function (id, nextChildIDs) {\n    var item = get(id);\n    item.childIDs = nextChildIDs;\n\n    for (var i = 0; i < nextChildIDs.length; i++) {\n      var nextChildID = nextChildIDs[i];\n      var nextChild = get(nextChildID);\n      !nextChild ? \"development\" !== 'production' ? invariant(false, 'Expected hook events to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('140') : void 0;\n      !(nextChild.childIDs != null || typeof nextChild.element !== 'object' || nextChild.element == null) ? \"development\" !== 'production' ? invariant(false, 'Expected onSetChildren() to fire for a container child before its parent includes it in onSetChildren().') : _prodInvariant('141') : void 0;\n      !nextChild.isMounted ? \"development\" !== 'production' ? invariant(false, 'Expected onMountComponent() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('71') : void 0;\n      if (nextChild.parentID == null) {\n        nextChild.parentID = id;\n        // TODO: This shouldn't be necessary but mounting a new root during in\n        // componentWillMount currently causes not-yet-mounted components to\n        // be purged from our tree data so their parent ID is missing.\n      }\n      !(nextChild.parentID === id) ? \"development\" !== 'production' ? invariant(false, 'Expected onBeforeMountComponent() parent and onSetChildren() to be consistent (%s has parents %s and %s).', nextChildID, nextChild.parentID, id) : _prodInvariant('142', nextChildID, nextChild.parentID, id) : void 0;\n    }\n  },\n  onBeforeMountComponent: function (id, element, parentID) {\n    create(id, element, parentID);\n  },\n  onBeforeUpdateComponent: function (id, element) {\n    var item = get(id);\n    if (!item || !item.isMounted) {\n      // We may end up here as a result of setState() in componentWillUnmount().\n      // In this case, ignore the element.\n      return;\n    }\n    item.element = element;\n  },\n  onMountComponent: function (id) {\n    var item = get(id);\n    item.isMounted = true;\n    var isRoot = item.parentID === 0;\n    if (isRoot) {\n      addRoot(id);\n    }\n  },\n  onUpdateComponent: function (id) {\n    var item = get(id);\n    if (!item || !item.isMounted) {\n      // We may end up here as a result of setState() in componentWillUnmount().\n      // In this case, ignore the element.\n      return;\n    }\n    item.updateCount++;\n  },\n  onUnmountComponent: function (id) {\n    var item = get(id);\n    if (item) {\n      // We need to check if it exists.\n      // `item` might not exist if it is inside an error boundary, and a sibling\n      // error boundary child threw while mounting. Then this instance never\n      // got a chance to mount, but it still gets an unmounting event during\n      // the error boundary cleanup.\n      item.isMounted = false;\n      var isRoot = item.parentID === 0;\n      if (isRoot) {\n        removeRoot(id);\n      }\n    }\n    unmountedIDs.push(id);\n  },\n  purgeUnmountedComponents: function () {\n    if (ReactComponentTreeHook._preventPurging) {\n      // Should only be used for testing.\n      return;\n    }\n\n    for (var i = 0; i < unmountedIDs.length; i++) {\n      var id = unmountedIDs[i];\n      purgeDeep(id);\n    }\n    unmountedIDs.length = 0;\n  },\n  isMounted: function (id) {\n    var item = get(id);\n    return item ? item.isMounted : false;\n  },\n  getCurrentStackAddendum: function (topElement) {\n    var info = '';\n    if (topElement) {\n      var type = topElement.type;\n      var name = typeof type === 'function' ? type.displayName || type.name : type;\n      var owner = topElement._owner;\n      info += describeComponentFrame(name || 'Unknown', topElement._source, owner && owner.getName());\n    }\n\n    var currentOwner = ReactCurrentOwner.current;\n    var id = currentOwner && currentOwner._debugID;\n\n    info += ReactComponentTreeHook.getStackAddendumByID(id);\n    return info;\n  },\n  getStackAddendumByID: function (id) {\n    var info = '';\n    while (id) {\n      info += describeID(id);\n      id = ReactComponentTreeHook.getParentID(id);\n    }\n    return info;\n  },\n  getChildIDs: function (id) {\n    var item = get(id);\n    return item ? item.childIDs : [];\n  },\n  getDisplayName: function (id) {\n    var element = ReactComponentTreeHook.getElement(id);\n    if (!element) {\n      return null;\n    }\n    return getDisplayName(element);\n  },\n  getElement: function (id) {\n    var item = get(id);\n    return item ? item.element : null;\n  },\n  getOwnerID: function (id) {\n    var element = ReactComponentTreeHook.getElement(id);\n    if (!element || !element._owner) {\n      return null;\n    }\n    return element._owner._debugID;\n  },\n  getParentID: function (id) {\n    var item = get(id);\n    return item ? item.parentID : null;\n  },\n  getSource: function (id) {\n    var item = get(id);\n    var element = item ? item.element : null;\n    var source = element != null ? element._source : null;\n    return source;\n  },\n  getText: function (id) {\n    var element = ReactComponentTreeHook.getElement(id);\n    if (typeof element === 'string') {\n      return element;\n    } else if (typeof element === 'number') {\n      return '' + element;\n    } else {\n      return null;\n    }\n  },\n  getUpdateCount: function (id) {\n    var item = get(id);\n    return item ? item.updateCount : 0;\n  },\n\n\n  getRegisteredIDs: getRegisteredIDs,\n\n  getRootIDs: getRootIDs\n};\n\nmodule.exports = ReactComponentTreeHook;\n},{\"140\":140,\"162\":162,\"171\":171,\"37\":37}],36:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactCompositeComponent\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140),\n    _assign = _dereq_(172);\n\nvar ReactComponentEnvironment = _dereq_(34);\nvar ReactCurrentOwner = _dereq_(37);\nvar ReactElement = _dereq_(61);\nvar ReactErrorUtils = _dereq_(64);\nvar ReactInstanceMap = _dereq_(72);\nvar ReactInstrumentation = _dereq_(73);\nvar ReactNodeTypes = _dereq_(79);\nvar ReactPropTypeLocations = _dereq_(83);\nvar ReactReconciler = _dereq_(88);\n\nvar checkReactTypeSpec = _dereq_(119);\nvar emptyObject = _dereq_(155);\nvar invariant = _dereq_(162);\nvar shallowEqual = _dereq_(170);\nvar shouldUpdateReactComponent = _dereq_(144);\nvar warning = _dereq_(171);\n\nvar CompositeTypes = {\n  ImpureClass: 0,\n  PureClass: 1,\n  StatelessFunctional: 2\n};\n\nfunction StatelessComponent(Component) {}\nStatelessComponent.prototype.render = function () {\n  var Component = ReactInstanceMap.get(this)._currentElement.type;\n  var element = Component(this.props, this.context, this.updater);\n  warnIfInvalidElement(Component, element);\n  return element;\n};\n\nfunction warnIfInvalidElement(Component, element) {\n  if (\"development\" !== 'production') {\n    \"development\" !== 'production' ? warning(element === null || element === false || ReactElement.isValidElement(element), '%s(...): A valid React element (or null) must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : void 0;\n    \"development\" !== 'production' ? warning(!Component.childContextTypes, '%s(...): childContextTypes cannot be defined on a functional component.', Component.displayName || Component.name || 'Component') : void 0;\n  }\n}\n\nfunction invokeComponentDidMountWithTimer() {\n  var publicInstance = this._instance;\n  if (this._debugID !== 0) {\n    ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentDidMount');\n  }\n  publicInstance.componentDidMount();\n  if (this._debugID !== 0) {\n    ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentDidMount');\n  }\n}\n\nfunction invokeComponentDidUpdateWithTimer(prevProps, prevState, prevContext) {\n  var publicInstance = this._instance;\n  if (this._debugID !== 0) {\n    ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentDidUpdate');\n  }\n  publicInstance.componentDidUpdate(prevProps, prevState, prevContext);\n  if (this._debugID !== 0) {\n    ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentDidUpdate');\n  }\n}\n\nfunction shouldConstruct(Component) {\n  return !!(Component.prototype && Component.prototype.isReactComponent);\n}\n\nfunction isPureComponent(Component) {\n  return !!(Component.prototype && Component.prototype.isPureReactComponent);\n}\n\n/**\n * ------------------ The Life-Cycle of a Composite Component ------------------\n *\n * - constructor: Initialization of state. The instance is now retained.\n *   - componentWillMount\n *   - render\n *   - [children's constructors]\n *     - [children's componentWillMount and render]\n *     - [children's componentDidMount]\n *     - componentDidMount\n *\n *       Update Phases:\n *       - componentWillReceiveProps (only called if parent updated)\n *       - shouldComponentUpdate\n *         - componentWillUpdate\n *           - render\n *           - [children's constructors or receive props phases]\n *         - componentDidUpdate\n *\n *     - componentWillUnmount\n *     - [children's componentWillUnmount]\n *   - [children destroyed]\n * - (destroyed): The instance is now blank, released by React and ready for GC.\n *\n * -----------------------------------------------------------------------------\n */\n\n/**\n * An incrementing ID assigned to each component when it is mounted. This is\n * used to enforce the order in which `ReactUpdates` updates dirty components.\n *\n * @private\n */\nvar nextMountID = 1;\n\n/**\n * @lends {ReactCompositeComponent.prototype}\n */\nvar ReactCompositeComponentMixin = {\n\n  /**\n   * Base constructor for all composite component.\n   *\n   * @param {ReactElement} element\n   * @final\n   * @internal\n   */\n  construct: function (element) {\n    this._currentElement = element;\n    this._rootNodeID = 0;\n    this._compositeType = null;\n    this._instance = null;\n    this._hostParent = null;\n    this._hostContainerInfo = null;\n\n    // See ReactUpdateQueue\n    this._updateBatchNumber = null;\n    this._pendingElement = null;\n    this._pendingStateQueue = null;\n    this._pendingReplaceState = false;\n    this._pendingForceUpdate = false;\n\n    this._renderedNodeType = null;\n    this._renderedComponent = null;\n    this._context = null;\n    this._mountOrder = 0;\n    this._topLevelWrapper = null;\n\n    // See ReactUpdates and ReactUpdateQueue.\n    this._pendingCallbacks = null;\n\n    // ComponentWillUnmount shall only be called once\n    this._calledComponentWillUnmount = false;\n\n    if (\"development\" !== 'production') {\n      this._warnedAboutRefsInRender = false;\n    }\n  },\n\n  /**\n   * Initializes the component, renders markup, and registers event listeners.\n   *\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @param {?object} hostParent\n   * @param {?object} hostContainerInfo\n   * @param {?object} context\n   * @return {?string} Rendered markup to be inserted into the DOM.\n   * @final\n   * @internal\n   */\n  mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n    this._context = context;\n    this._mountOrder = nextMountID++;\n    this._hostParent = hostParent;\n    this._hostContainerInfo = hostContainerInfo;\n\n    var publicProps = this._currentElement.props;\n    var publicContext = this._processContext(context);\n\n    var Component = this._currentElement.type;\n\n    var updateQueue = transaction.getUpdateQueue();\n\n    // Initialize the public class\n    var doConstruct = shouldConstruct(Component);\n    var inst = this._constructComponent(doConstruct, publicProps, publicContext, updateQueue);\n    var renderedElement;\n\n    // Support functional components\n    if (!doConstruct && (inst == null || inst.render == null)) {\n      renderedElement = inst;\n      warnIfInvalidElement(Component, renderedElement);\n      !(inst === null || inst === false || ReactElement.isValidElement(inst)) ? \"development\" !== 'production' ? invariant(false, '%s(...): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : _prodInvariant('105', Component.displayName || Component.name || 'Component') : void 0;\n      inst = new StatelessComponent(Component);\n      this._compositeType = CompositeTypes.StatelessFunctional;\n    } else {\n      if (isPureComponent(Component)) {\n        this._compositeType = CompositeTypes.PureClass;\n      } else {\n        this._compositeType = CompositeTypes.ImpureClass;\n      }\n    }\n\n    if (\"development\" !== 'production') {\n      // This will throw later in _renderValidatedComponent, but add an early\n      // warning now to help debugging\n      if (inst.render == null) {\n        \"development\" !== 'production' ? warning(false, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', Component.displayName || Component.name || 'Component') : void 0;\n      }\n\n      var propsMutated = inst.props !== publicProps;\n      var componentName = Component.displayName || Component.name || 'Component';\n\n      \"development\" !== 'production' ? warning(inst.props === undefined || !propsMutated, '%s(...): When calling super() in `%s`, make sure to pass ' + 'up the same props that your component\\'s constructor was passed.', componentName, componentName) : void 0;\n    }\n\n    // These should be set up in the constructor, but as a convenience for\n    // simpler class abstractions, we set them up after the fact.\n    inst.props = publicProps;\n    inst.context = publicContext;\n    inst.refs = emptyObject;\n    inst.updater = updateQueue;\n\n    this._instance = inst;\n\n    // Store a reference from the instance back to the internal representation\n    ReactInstanceMap.set(inst, this);\n\n    if (\"development\" !== 'production') {\n      // Since plain JS classes are defined without any special initialization\n      // logic, we can not catch common errors early. Therefore, we have to\n      // catch them here, at initialization time, instead.\n      \"development\" !== 'production' ? warning(!inst.getInitialState || inst.getInitialState.isReactClassApproved, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', this.getName() || 'a component') : void 0;\n      \"development\" !== 'production' ? warning(!inst.getDefaultProps || inst.getDefaultProps.isReactClassApproved, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', this.getName() || 'a component') : void 0;\n      \"development\" !== 'production' ? warning(!inst.propTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', this.getName() || 'a component') : void 0;\n      \"development\" !== 'production' ? warning(!inst.contextTypes, 'contextTypes was defined as an instance property on %s. Use a ' + 'static property to define contextTypes instead.', this.getName() || 'a component') : void 0;\n      \"development\" !== 'production' ? warning(typeof inst.componentShouldUpdate !== 'function', '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', this.getName() || 'A component') : void 0;\n      \"development\" !== 'production' ? warning(typeof inst.componentDidUnmount !== 'function', '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', this.getName() || 'A component') : void 0;\n      \"development\" !== 'production' ? warning(typeof inst.componentWillRecieveProps !== 'function', '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', this.getName() || 'A component') : void 0;\n    }\n\n    var initialState = inst.state;\n    if (initialState === undefined) {\n      inst.state = initialState = null;\n    }\n    !(typeof initialState === 'object' && !Array.isArray(initialState)) ? \"development\" !== 'production' ? invariant(false, '%s.state: must be set to an object or null', this.getName() || 'ReactCompositeComponent') : _prodInvariant('106', this.getName() || 'ReactCompositeComponent') : void 0;\n\n    this._pendingStateQueue = null;\n    this._pendingReplaceState = false;\n    this._pendingForceUpdate = false;\n\n    var markup;\n    if (inst.unstable_handleError) {\n      markup = this.performInitialMountWithErrorHandling(renderedElement, hostParent, hostContainerInfo, transaction, context);\n    } else {\n      markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n    }\n\n    if (inst.componentDidMount) {\n      if (\"development\" !== 'production') {\n        transaction.getReactMountReady().enqueue(invokeComponentDidMountWithTimer, this);\n      } else {\n        transaction.getReactMountReady().enqueue(inst.componentDidMount, inst);\n      }\n    }\n\n    return markup;\n  },\n\n  _constructComponent: function (doConstruct, publicProps, publicContext, updateQueue) {\n    if (\"development\" !== 'production') {\n      ReactCurrentOwner.current = this;\n      try {\n        return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);\n      } finally {\n        ReactCurrentOwner.current = null;\n      }\n    } else {\n      return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);\n    }\n  },\n\n  _constructComponentWithoutOwner: function (doConstruct, publicProps, publicContext, updateQueue) {\n    var Component = this._currentElement.type;\n    var instanceOrElement;\n    if (doConstruct) {\n      if (\"development\" !== 'production') {\n        if (this._debugID !== 0) {\n          ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'ctor');\n        }\n      }\n      instanceOrElement = new Component(publicProps, publicContext, updateQueue);\n      if (\"development\" !== 'production') {\n        if (this._debugID !== 0) {\n          ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'ctor');\n        }\n      }\n    } else {\n      // This can still be an instance in case of factory components\n      // but we'll count this as time spent rendering as the more common case.\n      if (\"development\" !== 'production') {\n        if (this._debugID !== 0) {\n          ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'render');\n        }\n      }\n      instanceOrElement = Component(publicProps, publicContext, updateQueue);\n      if (\"development\" !== 'production') {\n        if (this._debugID !== 0) {\n          ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'render');\n        }\n      }\n    }\n    return instanceOrElement;\n  },\n\n  performInitialMountWithErrorHandling: function (renderedElement, hostParent, hostContainerInfo, transaction, context) {\n    var markup;\n    var checkpoint = transaction.checkpoint();\n    try {\n      markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n    } catch (e) {\n      if (\"development\" !== 'production') {\n        if (this._debugID !== 0) {\n          ReactInstrumentation.debugTool.onError();\n        }\n      }\n      // Roll back to checkpoint, handle error (which may add items to the transaction), and take a new checkpoint\n      transaction.rollback(checkpoint);\n      this._instance.unstable_handleError(e);\n      if (this._pendingStateQueue) {\n        this._instance.state = this._processPendingState(this._instance.props, this._instance.context);\n      }\n      checkpoint = transaction.checkpoint();\n\n      this._renderedComponent.unmountComponent(true);\n      transaction.rollback(checkpoint);\n\n      // Try again - we've informed the component about the error, so they can render an error message this time.\n      // If this throws again, the error will bubble up (and can be caught by a higher error boundary).\n      markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n    }\n    return markup;\n  },\n\n  performInitialMount: function (renderedElement, hostParent, hostContainerInfo, transaction, context) {\n    var inst = this._instance;\n    if (inst.componentWillMount) {\n      if (\"development\" !== 'production') {\n        if (this._debugID !== 0) {\n          ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentWillMount');\n        }\n      }\n      inst.componentWillMount();\n      if (\"development\" !== 'production') {\n        if (this._debugID !== 0) {\n          ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentWillMount');\n        }\n      }\n      // When mounting, calls to `setState` by `componentWillMount` will set\n      // `this._pendingStateQueue` without triggering a re-render.\n      if (this._pendingStateQueue) {\n        inst.state = this._processPendingState(inst.props, inst.context);\n      }\n    }\n\n    // If not a stateless component, we now render\n    if (renderedElement === undefined) {\n      renderedElement = this._renderValidatedComponent();\n    }\n\n    var nodeType = ReactNodeTypes.getType(renderedElement);\n    this._renderedNodeType = nodeType;\n    var child = this._instantiateReactComponent(renderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */\n    );\n    this._renderedComponent = child;\n\n    var selfDebugID = 0;\n    if (\"development\" !== 'production') {\n      selfDebugID = this._debugID;\n    }\n    var markup = ReactReconciler.mountComponent(child, transaction, hostParent, hostContainerInfo, this._processChildContext(context), selfDebugID);\n\n    if (\"development\" !== 'production') {\n      if (this._debugID !== 0) {\n        ReactInstrumentation.debugTool.onSetChildren(this._debugID, child._debugID !== 0 ? [child._debugID] : []);\n      }\n    }\n\n    return markup;\n  },\n\n  getHostNode: function () {\n    return ReactReconciler.getHostNode(this._renderedComponent);\n  },\n\n  /**\n   * Releases any resources allocated by `mountComponent`.\n   *\n   * @final\n   * @internal\n   */\n  unmountComponent: function (safely) {\n    if (!this._renderedComponent) {\n      return;\n    }\n    var inst = this._instance;\n\n    if (inst.componentWillUnmount && !inst._calledComponentWillUnmount) {\n      inst._calledComponentWillUnmount = true;\n      if (\"development\" !== 'production') {\n        if (this._debugID !== 0) {\n          ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentWillUnmount');\n        }\n      }\n      if (safely) {\n        var name = this.getName() + '.componentWillUnmount()';\n        ReactErrorUtils.invokeGuardedCallback(name, inst.componentWillUnmount.bind(inst));\n      } else {\n        inst.componentWillUnmount();\n      }\n      if (\"development\" !== 'production') {\n        if (this._debugID !== 0) {\n          ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentWillUnmount');\n        }\n      }\n    }\n\n    if (this._renderedComponent) {\n      ReactReconciler.unmountComponent(this._renderedComponent, safely);\n      this._renderedNodeType = null;\n      this._renderedComponent = null;\n      this._instance = null;\n    }\n\n    // Reset pending fields\n    // Even if this component is scheduled for another update in ReactUpdates,\n    // it would still be ignored because these fields are reset.\n    this._pendingStateQueue = null;\n    this._pendingReplaceState = false;\n    this._pendingForceUpdate = false;\n    this._pendingCallbacks = null;\n    this._pendingElement = null;\n\n    // These fields do not really need to be reset since this object is no\n    // longer accessible.\n    this._context = null;\n    this._rootNodeID = 0;\n    this._topLevelWrapper = null;\n\n    // Delete the reference from the instance to this internal representation\n    // which allow the internals to be properly cleaned up even if the user\n    // leaks a reference to the public instance.\n    ReactInstanceMap.remove(inst);\n\n    // Some existing components rely on inst.props even after they've been\n    // destroyed (in event handlers).\n    // TODO: inst.props = null;\n    // TODO: inst.state = null;\n    // TODO: inst.context = null;\n  },\n\n  /**\n   * Filters the context object to only contain keys specified in\n   * `contextTypes`\n   *\n   * @param {object} context\n   * @return {?object}\n   * @private\n   */\n  _maskContext: function (context) {\n    var Component = this._currentElement.type;\n    var contextTypes = Component.contextTypes;\n    if (!contextTypes) {\n      return emptyObject;\n    }\n    var maskedContext = {};\n    for (var contextName in contextTypes) {\n      maskedContext[contextName] = context[contextName];\n    }\n    return maskedContext;\n  },\n\n  /**\n   * Filters the context object to only contain keys specified in\n   * `contextTypes`, and asserts that they are valid.\n   *\n   * @param {object} context\n   * @return {?object}\n   * @private\n   */\n  _processContext: function (context) {\n    var maskedContext = this._maskContext(context);\n    if (\"development\" !== 'production') {\n      var Component = this._currentElement.type;\n      if (Component.contextTypes) {\n        this._checkContextTypes(Component.contextTypes, maskedContext, ReactPropTypeLocations.context);\n      }\n    }\n    return maskedContext;\n  },\n\n  /**\n   * @param {object} currentContext\n   * @return {object}\n   * @private\n   */\n  _processChildContext: function (currentContext) {\n    var Component = this._currentElement.type;\n    var inst = this._instance;\n    if (\"development\" !== 'production') {\n      ReactInstrumentation.debugTool.onBeginProcessingChildContext();\n    }\n    var childContext = inst.getChildContext && inst.getChildContext();\n    if (\"development\" !== 'production') {\n      ReactInstrumentation.debugTool.onEndProcessingChildContext();\n    }\n    if (childContext) {\n      !(typeof Component.childContextTypes === 'object') ? \"development\" !== 'production' ? invariant(false, '%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().', this.getName() || 'ReactCompositeComponent') : _prodInvariant('107', this.getName() || 'ReactCompositeComponent') : void 0;\n      if (\"development\" !== 'production') {\n        this._checkContextTypes(Component.childContextTypes, childContext, ReactPropTypeLocations.childContext);\n      }\n      for (var name in childContext) {\n        !(name in Component.childContextTypes) ? \"development\" !== 'production' ? invariant(false, '%s.getChildContext(): key \"%s\" is not defined in childContextTypes.', this.getName() || 'ReactCompositeComponent', name) : _prodInvariant('108', this.getName() || 'ReactCompositeComponent', name) : void 0;\n      }\n      return _assign({}, currentContext, childContext);\n    }\n    return currentContext;\n  },\n\n  /**\n   * Assert that the context types are valid\n   *\n   * @param {object} typeSpecs Map of context field to a ReactPropType\n   * @param {object} values Runtime values that need to be type-checked\n   * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n   * @private\n   */\n  _checkContextTypes: function (typeSpecs, values, location) {\n    checkReactTypeSpec(typeSpecs, values, location, this.getName(), null, this._debugID);\n  },\n\n  receiveComponent: function (nextElement, transaction, nextContext) {\n    var prevElement = this._currentElement;\n    var prevContext = this._context;\n\n    this._pendingElement = null;\n\n    this.updateComponent(transaction, prevElement, nextElement, prevContext, nextContext);\n  },\n\n  /**\n   * If any of `_pendingElement`, `_pendingStateQueue`, or `_pendingForceUpdate`\n   * is set, update the component.\n   *\n   * @param {ReactReconcileTransaction} transaction\n   * @internal\n   */\n  performUpdateIfNecessary: function (transaction) {\n    if (this._pendingElement != null) {\n      ReactReconciler.receiveComponent(this, this._pendingElement, transaction, this._context);\n    } else if (this._pendingStateQueue !== null || this._pendingForceUpdate) {\n      this.updateComponent(transaction, this._currentElement, this._currentElement, this._context, this._context);\n    } else {\n      this._updateBatchNumber = null;\n    }\n  },\n\n  /**\n   * Perform an update to a mounted component. The componentWillReceiveProps and\n   * shouldComponentUpdate methods are called, then (assuming the update isn't\n   * skipped) the remaining update lifecycle methods are called and the DOM\n   * representation is updated.\n   *\n   * By default, this implements React's rendering and reconciliation algorithm.\n   * Sophisticated clients may wish to override this.\n   *\n   * @param {ReactReconcileTransaction} transaction\n   * @param {ReactElement} prevParentElement\n   * @param {ReactElement} nextParentElement\n   * @internal\n   * @overridable\n   */\n  updateComponent: function (transaction, prevParentElement, nextParentElement, prevUnmaskedContext, nextUnmaskedContext) {\n    var inst = this._instance;\n    !(inst != null) ? \"development\" !== 'production' ? invariant(false, 'Attempted to update component `%s` that has already been unmounted (or failed to mount).', this.getName() || 'ReactCompositeComponent') : _prodInvariant('136', this.getName() || 'ReactCompositeComponent') : void 0;\n\n    var willReceive = false;\n    var nextContext;\n\n    // Determine if the context has changed or not\n    if (this._context === nextUnmaskedContext) {\n      nextContext = inst.context;\n    } else {\n      nextContext = this._processContext(nextUnmaskedContext);\n      willReceive = true;\n    }\n\n    var prevProps = prevParentElement.props;\n    var nextProps = nextParentElement.props;\n\n    // Not a simple state update but a props update\n    if (prevParentElement !== nextParentElement) {\n      willReceive = true;\n    }\n\n    // An update here will schedule an update but immediately set\n    // _pendingStateQueue which will ensure that any state updates gets\n    // immediately reconciled instead of waiting for the next batch.\n    if (willReceive && inst.componentWillReceiveProps) {\n      if (\"development\" !== 'production') {\n        if (this._debugID !== 0) {\n          ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentWillReceiveProps');\n        }\n      }\n      inst.componentWillReceiveProps(nextProps, nextContext);\n      if (\"development\" !== 'production') {\n        if (this._debugID !== 0) {\n          ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentWillReceiveProps');\n        }\n      }\n    }\n\n    var nextState = this._processPendingState(nextProps, nextContext);\n    var shouldUpdate = true;\n\n    if (!this._pendingForceUpdate) {\n      if (inst.shouldComponentUpdate) {\n        if (\"development\" !== 'production') {\n          if (this._debugID !== 0) {\n            ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'shouldComponentUpdate');\n          }\n        }\n        shouldUpdate = inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n        if (\"development\" !== 'production') {\n          if (this._debugID !== 0) {\n            ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'shouldComponentUpdate');\n          }\n        }\n      } else {\n        if (this._compositeType === CompositeTypes.PureClass) {\n          shouldUpdate = !shallowEqual(prevProps, nextProps) || !shallowEqual(inst.state, nextState);\n        }\n      }\n    }\n\n    if (\"development\" !== 'production') {\n      \"development\" !== 'production' ? warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent') : void 0;\n    }\n\n    this._updateBatchNumber = null;\n    if (shouldUpdate) {\n      this._pendingForceUpdate = false;\n      // Will set `this.props`, `this.state` and `this.context`.\n      this._performComponentUpdate(nextParentElement, nextProps, nextState, nextContext, transaction, nextUnmaskedContext);\n    } else {\n      // If it's determined that a component should not update, we still want\n      // to set props and state but we shortcut the rest of the update.\n      this._currentElement = nextParentElement;\n      this._context = nextUnmaskedContext;\n      inst.props = nextProps;\n      inst.state = nextState;\n      inst.context = nextContext;\n    }\n  },\n\n  _processPendingState: function (props, context) {\n    var inst = this._instance;\n    var queue = this._pendingStateQueue;\n    var replace = this._pendingReplaceState;\n    this._pendingReplaceState = false;\n    this._pendingStateQueue = null;\n\n    if (!queue) {\n      return inst.state;\n    }\n\n    if (replace && queue.length === 1) {\n      return queue[0];\n    }\n\n    var nextState = _assign({}, replace ? queue[0] : inst.state);\n    for (var i = replace ? 1 : 0; i < queue.length; i++) {\n      var partial = queue[i];\n      _assign(nextState, typeof partial === 'function' ? partial.call(inst, nextState, props, context) : partial);\n    }\n\n    return nextState;\n  },\n\n  /**\n   * Merges new props and state, notifies delegate methods of update and\n   * performs update.\n   *\n   * @param {ReactElement} nextElement Next element\n   * @param {object} nextProps Next public object to set as properties.\n   * @param {?object} nextState Next object to set as state.\n   * @param {?object} nextContext Next public object to set as context.\n   * @param {ReactReconcileTransaction} transaction\n   * @param {?object} unmaskedContext\n   * @private\n   */\n  _performComponentUpdate: function (nextElement, nextProps, nextState, nextContext, transaction, unmaskedContext) {\n    var inst = this._instance;\n\n    var hasComponentDidUpdate = Boolean(inst.componentDidUpdate);\n    var prevProps;\n    var prevState;\n    var prevContext;\n    if (hasComponentDidUpdate) {\n      prevProps = inst.props;\n      prevState = inst.state;\n      prevContext = inst.context;\n    }\n\n    if (inst.componentWillUpdate) {\n      if (\"development\" !== 'production') {\n        if (this._debugID !== 0) {\n          ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'componentWillUpdate');\n        }\n      }\n      inst.componentWillUpdate(nextProps, nextState, nextContext);\n      if (\"development\" !== 'production') {\n        if (this._debugID !== 0) {\n          ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'componentWillUpdate');\n        }\n      }\n    }\n\n    this._currentElement = nextElement;\n    this._context = unmaskedContext;\n    inst.props = nextProps;\n    inst.state = nextState;\n    inst.context = nextContext;\n\n    this._updateRenderedComponent(transaction, unmaskedContext);\n\n    if (hasComponentDidUpdate) {\n      if (\"development\" !== 'production') {\n        transaction.getReactMountReady().enqueue(invokeComponentDidUpdateWithTimer.bind(this, prevProps, prevState, prevContext), this);\n      } else {\n        transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst);\n      }\n    }\n  },\n\n  /**\n   * Call the component's `render` method and update the DOM accordingly.\n   *\n   * @param {ReactReconcileTransaction} transaction\n   * @internal\n   */\n  _updateRenderedComponent: function (transaction, context) {\n    var prevComponentInstance = this._renderedComponent;\n    var prevRenderedElement = prevComponentInstance._currentElement;\n    var nextRenderedElement = this._renderValidatedComponent();\n    if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) {\n      ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context));\n    } else {\n      var oldHostNode = ReactReconciler.getHostNode(prevComponentInstance);\n      ReactReconciler.unmountComponent(prevComponentInstance, false);\n\n      var nodeType = ReactNodeTypes.getType(nextRenderedElement);\n      this._renderedNodeType = nodeType;\n      var child = this._instantiateReactComponent(nextRenderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */\n      );\n      this._renderedComponent = child;\n\n      var selfDebugID = 0;\n      if (\"development\" !== 'production') {\n        selfDebugID = this._debugID;\n      }\n      var nextMarkup = ReactReconciler.mountComponent(child, transaction, this._hostParent, this._hostContainerInfo, this._processChildContext(context), selfDebugID);\n\n      if (\"development\" !== 'production') {\n        if (this._debugID !== 0) {\n          ReactInstrumentation.debugTool.onSetChildren(this._debugID, child._debugID !== 0 ? [child._debugID] : []);\n        }\n      }\n\n      this._replaceNodeWithMarkup(oldHostNode, nextMarkup, prevComponentInstance);\n    }\n  },\n\n  /**\n   * Overridden in shallow rendering.\n   *\n   * @protected\n   */\n  _replaceNodeWithMarkup: function (oldHostNode, nextMarkup, prevInstance) {\n    ReactComponentEnvironment.replaceNodeWithMarkup(oldHostNode, nextMarkup, prevInstance);\n  },\n\n  /**\n   * @protected\n   */\n  _renderValidatedComponentWithoutOwnerOrContext: function () {\n    var inst = this._instance;\n\n    if (\"development\" !== 'production') {\n      if (this._debugID !== 0) {\n        ReactInstrumentation.debugTool.onBeginLifeCycleTimer(this._debugID, 'render');\n      }\n    }\n    var renderedComponent = inst.render();\n    if (\"development\" !== 'production') {\n      if (this._debugID !== 0) {\n        ReactInstrumentation.debugTool.onEndLifeCycleTimer(this._debugID, 'render');\n      }\n    }\n\n    if (\"development\" !== 'production') {\n      // We allow auto-mocks to proceed as if they're returning null.\n      if (renderedComponent === undefined && inst.render._isMockFunction) {\n        // This is probably bad practice. Consider warning here and\n        // deprecating this convenience.\n        renderedComponent = null;\n      }\n    }\n\n    return renderedComponent;\n  },\n\n  /**\n   * @private\n   */\n  _renderValidatedComponent: function () {\n    var renderedComponent;\n    if (\"development\" !== 'production' || this._compositeType !== CompositeTypes.StatelessFunctional) {\n      ReactCurrentOwner.current = this;\n      try {\n        renderedComponent = this._renderValidatedComponentWithoutOwnerOrContext();\n      } finally {\n        ReactCurrentOwner.current = null;\n      }\n    } else {\n      renderedComponent = this._renderValidatedComponentWithoutOwnerOrContext();\n    }\n    !(\n    // TODO: An `isValidNode` function would probably be more appropriate\n    renderedComponent === null || renderedComponent === false || ReactElement.isValidElement(renderedComponent)) ? \"development\" !== 'production' ? invariant(false, '%s.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', this.getName() || 'ReactCompositeComponent') : _prodInvariant('109', this.getName() || 'ReactCompositeComponent') : void 0;\n\n    return renderedComponent;\n  },\n\n  /**\n   * Lazily allocates the refs object and stores `component` as `ref`.\n   *\n   * @param {string} ref Reference name.\n   * @param {component} component Component to store as `ref`.\n   * @final\n   * @private\n   */\n  attachRef: function (ref, component) {\n    var inst = this.getPublicInstance();\n    !(inst != null) ? \"development\" !== 'production' ? invariant(false, 'Stateless function components cannot have refs.') : _prodInvariant('110') : void 0;\n    var publicComponentInstance = component.getPublicInstance();\n    if (\"development\" !== 'production') {\n      var componentName = component && component.getName ? component.getName() : 'a component';\n      \"development\" !== 'production' ? warning(publicComponentInstance != null, 'Stateless function components cannot be given refs ' + '(See ref \"%s\" in %s created by %s). ' + 'Attempts to access this ref will fail.', ref, componentName, this.getName()) : void 0;\n    }\n    var refs = inst.refs === emptyObject ? inst.refs = {} : inst.refs;\n    refs[ref] = publicComponentInstance;\n  },\n\n  /**\n   * Detaches a reference name.\n   *\n   * @param {string} ref Name to dereference.\n   * @final\n   * @private\n   */\n  detachRef: function (ref) {\n    var refs = this.getPublicInstance().refs;\n    delete refs[ref];\n  },\n\n  /**\n   * Get a text description of the component that can be used to identify it\n   * in error messages.\n   * @return {string} The name or null.\n   * @internal\n   */\n  getName: function () {\n    var type = this._currentElement.type;\n    var constructor = this._instance && this._instance.constructor;\n    return type.displayName || constructor && constructor.displayName || type.name || constructor && constructor.name || null;\n  },\n\n  /**\n   * Get the publicly accessible representation of this component - i.e. what\n   * is exposed by refs and returned by render. Can be null for stateless\n   * components.\n   *\n   * @return {ReactComponent} the public component instance.\n   * @internal\n   */\n  getPublicInstance: function () {\n    var inst = this._instance;\n    if (this._compositeType === CompositeTypes.StatelessFunctional) {\n      return null;\n    }\n    return inst;\n  },\n\n  // Stub\n  _instantiateReactComponent: null\n\n};\n\nvar ReactCompositeComponent = {\n\n  Mixin: ReactCompositeComponentMixin\n\n};\n\nmodule.exports = ReactCompositeComponent;\n},{\"119\":119,\"140\":140,\"144\":144,\"155\":155,\"162\":162,\"170\":170,\"171\":171,\"172\":172,\"34\":34,\"37\":37,\"61\":61,\"64\":64,\"72\":72,\"73\":73,\"79\":79,\"83\":83,\"88\":88}],37:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactCurrentOwner\n */\n\n'use strict';\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\n\nvar ReactCurrentOwner = {\n\n  /**\n   * @internal\n   * @type {ReactComponent}\n   */\n  current: null\n\n};\n\nmodule.exports = ReactCurrentOwner;\n},{}],38:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOM\n */\n\n/* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/\n\n'use strict';\n\nvar ReactDOMComponentTree = _dereq_(42);\nvar ReactDefaultInjection = _dereq_(60);\nvar ReactMount = _dereq_(76);\nvar ReactReconciler = _dereq_(88);\nvar ReactUpdates = _dereq_(96);\nvar ReactVersion = _dereq_(97);\n\nvar findDOMNode = _dereq_(123);\nvar getHostComponentFromComposite = _dereq_(130);\nvar renderSubtreeIntoContainer = _dereq_(141);\nvar warning = _dereq_(171);\n\nReactDefaultInjection.inject();\n\nvar ReactDOM = {\n  findDOMNode: findDOMNode,\n  render: ReactMount.render,\n  unmountComponentAtNode: ReactMount.unmountComponentAtNode,\n  version: ReactVersion,\n\n  /* eslint-disable camelcase */\n  unstable_batchedUpdates: ReactUpdates.batchedUpdates,\n  unstable_renderSubtreeIntoContainer: renderSubtreeIntoContainer\n};\n\n// Inject the runtime into a devtools global hook regardless of browser.\n// Allows for debugging when the hook is injected on the page.\n/* eslint-enable camelcase */\nif (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') {\n  __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({\n    ComponentTree: {\n      getClosestInstanceFromNode: ReactDOMComponentTree.getClosestInstanceFromNode,\n      getNodeFromInstance: function (inst) {\n        // inst is an internal instance (but could be a composite)\n        if (inst._renderedComponent) {\n          inst = getHostComponentFromComposite(inst);\n        }\n        if (inst) {\n          return ReactDOMComponentTree.getNodeFromInstance(inst);\n        } else {\n          return null;\n        }\n      }\n    },\n    Mount: ReactMount,\n    Reconciler: ReactReconciler\n  });\n}\n\nif (\"development\" !== 'production') {\n  var ExecutionEnvironment = _dereq_(148);\n  if (ExecutionEnvironment.canUseDOM && window.top === window.self) {\n\n    // First check if devtools is not installed\n    if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n      // If we're in Chrome or Firefox, provide a download link if not installed.\n      if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) {\n        // Firefox does not have the issue with devtools loaded over file://\n        var showFileUrlMessage = window.location.protocol.indexOf('http') === -1 && navigator.userAgent.indexOf('Firefox') === -1;\n        console.debug('Download the React DevTools ' + (showFileUrlMessage ? 'and use an HTTP server (instead of a file: URL) ' : '') + 'for a better development experience: ' + 'https://fb.me/react-devtools');\n      }\n    }\n\n    var testFunc = function testFn() {};\n    \"development\" !== 'production' ? warning((testFunc.name || testFunc.toString()).indexOf('testFn') !== -1, 'It looks like you\\'re using a minified copy of the development build ' + 'of React. When deploying React apps to production, make sure to use ' + 'the production build which skips development warnings and is faster. ' + 'See https://fb.me/react-minification for more details.') : void 0;\n\n    // If we're in IE8, check to see if we are in compatibility mode and provide\n    // information on preventing compatibility mode\n    var ieCompatibilityMode = document.documentMode && document.documentMode < 8;\n\n    \"development\" !== 'production' ? warning(!ieCompatibilityMode, 'Internet Explorer is running in compatibility mode; please add the ' + 'following tag to your HTML to prevent this from happening: ' + '<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />') : void 0;\n\n    var expectedFeatures = [\n    // shims\n    Array.isArray, Array.prototype.every, Array.prototype.forEach, Array.prototype.indexOf, Array.prototype.map, Date.now, Function.prototype.bind, Object.keys, String.prototype.split, String.prototype.trim];\n\n    for (var i = 0; i < expectedFeatures.length; i++) {\n      if (!expectedFeatures[i]) {\n        \"development\" !== 'production' ? warning(false, 'One or more ES5 shims expected by React are not available: ' + 'https://fb.me/react-warning-polyfills') : void 0;\n        break;\n      }\n    }\n  }\n}\n\nif (\"development\" !== 'production') {\n  var ReactInstrumentation = _dereq_(73);\n  var ReactDOMUnknownPropertyHook = _dereq_(57);\n  var ReactDOMNullInputValuePropHook = _dereq_(49);\n\n  ReactInstrumentation.debugTool.addHook(ReactDOMUnknownPropertyHook);\n  ReactInstrumentation.debugTool.addHook(ReactDOMNullInputValuePropHook);\n}\n\nmodule.exports = ReactDOM;\n},{\"123\":123,\"130\":130,\"141\":141,\"148\":148,\"171\":171,\"42\":42,\"49\":49,\"57\":57,\"60\":60,\"73\":73,\"76\":76,\"88\":88,\"96\":96,\"97\":97}],39:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMButton\n */\n\n'use strict';\n\nvar DisabledInputUtils = _dereq_(14);\n\n/**\n * Implements a <button> host component that does not receive mouse events\n * when `disabled` is set.\n */\nvar ReactDOMButton = {\n  getHostProps: DisabledInputUtils.getHostProps\n};\n\nmodule.exports = ReactDOMButton;\n},{\"14\":14}],40:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMComponent\n */\n\n/* global hasOwnProperty:true */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140),\n    _assign = _dereq_(172);\n\nvar AutoFocusUtils = _dereq_(1);\nvar CSSPropertyOperations = _dereq_(4);\nvar DOMLazyTree = _dereq_(8);\nvar DOMNamespaces = _dereq_(9);\nvar DOMProperty = _dereq_(10);\nvar DOMPropertyOperations = _dereq_(11);\nvar EventConstants = _dereq_(16);\nvar EventPluginHub = _dereq_(17);\nvar EventPluginRegistry = _dereq_(18);\nvar ReactBrowserEventEmitter = _dereq_(27);\nvar ReactDOMButton = _dereq_(39);\nvar ReactDOMComponentFlags = _dereq_(41);\nvar ReactDOMComponentTree = _dereq_(42);\nvar ReactDOMInput = _dereq_(48);\nvar ReactDOMOption = _dereq_(50);\nvar ReactDOMSelect = _dereq_(51);\nvar ReactDOMTextarea = _dereq_(55);\nvar ReactInstrumentation = _dereq_(73);\nvar ReactMultiChild = _dereq_(77);\nvar ReactServerRenderingTransaction = _dereq_(92);\n\nvar emptyFunction = _dereq_(154);\nvar escapeTextContentForBrowser = _dereq_(122);\nvar invariant = _dereq_(162);\nvar isEventSupported = _dereq_(136);\nvar keyOf = _dereq_(166);\nvar shallowEqual = _dereq_(170);\nvar validateDOMNesting = _dereq_(146);\nvar warning = _dereq_(171);\n\nvar Flags = ReactDOMComponentFlags;\nvar deleteListener = EventPluginHub.deleteListener;\nvar getNode = ReactDOMComponentTree.getNodeFromInstance;\nvar listenTo = ReactBrowserEventEmitter.listenTo;\nvar registrationNameModules = EventPluginRegistry.registrationNameModules;\n\n// For quickly matching children type, to test if can be treated as content.\nvar CONTENT_TYPES = { 'string': true, 'number': true };\n\nvar STYLE = keyOf({ style: null });\nvar HTML = keyOf({ __html: null });\nvar RESERVED_PROPS = {\n  children: null,\n  dangerouslySetInnerHTML: null,\n  suppressContentEditableWarning: null\n};\n\n// Node type for document fragments (Node.DOCUMENT_FRAGMENT_NODE).\nvar DOC_FRAGMENT_TYPE = 11;\n\nfunction getDeclarationErrorAddendum(internalInstance) {\n  if (internalInstance) {\n    var owner = internalInstance._currentElement._owner || null;\n    if (owner) {\n      var name = owner.getName();\n      if (name) {\n        return ' This DOM node was rendered by `' + name + '`.';\n      }\n    }\n  }\n  return '';\n}\n\nfunction friendlyStringify(obj) {\n  if (typeof obj === 'object') {\n    if (Array.isArray(obj)) {\n      return '[' + obj.map(friendlyStringify).join(', ') + ']';\n    } else {\n      var pairs = [];\n      for (var key in obj) {\n        if (Object.prototype.hasOwnProperty.call(obj, key)) {\n          var keyEscaped = /^[a-z$_][\\w$_]*$/i.test(key) ? key : JSON.stringify(key);\n          pairs.push(keyEscaped + ': ' + friendlyStringify(obj[key]));\n        }\n      }\n      return '{' + pairs.join(', ') + '}';\n    }\n  } else if (typeof obj === 'string') {\n    return JSON.stringify(obj);\n  } else if (typeof obj === 'function') {\n    return '[function object]';\n  }\n  // Differs from JSON.stringify in that undefined because undefined and that\n  // inf and nan don't become null\n  return String(obj);\n}\n\nvar styleMutationWarning = {};\n\nfunction checkAndWarnForMutatedStyle(style1, style2, component) {\n  if (style1 == null || style2 == null) {\n    return;\n  }\n  if (shallowEqual(style1, style2)) {\n    return;\n  }\n\n  var componentName = component._tag;\n  var owner = component._currentElement._owner;\n  var ownerName;\n  if (owner) {\n    ownerName = owner.getName();\n  }\n\n  var hash = ownerName + '|' + componentName;\n\n  if (styleMutationWarning.hasOwnProperty(hash)) {\n    return;\n  }\n\n  styleMutationWarning[hash] = true;\n\n  \"development\" !== 'production' ? warning(false, '`%s` was passed a style object that has previously been mutated. ' + 'Mutating `style` is deprecated. Consider cloning it beforehand. Check ' + 'the `render` %s. Previous style: %s. Mutated style: %s.', componentName, owner ? 'of `' + ownerName + '`' : 'using <' + componentName + '>', friendlyStringify(style1), friendlyStringify(style2)) : void 0;\n}\n\n/**\n * @param {object} component\n * @param {?object} props\n */\nfunction assertValidProps(component, props) {\n  if (!props) {\n    return;\n  }\n  // Note the use of `==` which checks for null or undefined.\n  if (voidElementTags[component._tag]) {\n    !(props.children == null && props.dangerouslySetInnerHTML == null) ? \"development\" !== 'production' ? invariant(false, '%s is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.%s', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : _prodInvariant('137', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : void 0;\n  }\n  if (props.dangerouslySetInnerHTML != null) {\n    !(props.children == null) ? \"development\" !== 'production' ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : _prodInvariant('60') : void 0;\n    !(typeof props.dangerouslySetInnerHTML === 'object' && HTML in props.dangerouslySetInnerHTML) ? \"development\" !== 'production' ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information.') : _prodInvariant('61') : void 0;\n  }\n  if (\"development\" !== 'production') {\n    \"development\" !== 'production' ? warning(props.innerHTML == null, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.') : void 0;\n    \"development\" !== 'production' ? warning(props.suppressContentEditableWarning || !props.contentEditable || props.children == null, 'A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.') : void 0;\n    \"development\" !== 'production' ? warning(props.onFocusIn == null && props.onFocusOut == null, 'React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.') : void 0;\n  }\n  !(props.style == null || typeof props.style === 'object') ? \"development\" !== 'production' ? invariant(false, 'The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + \\'em\\'}} when using JSX.%s', getDeclarationErrorAddendum(component)) : _prodInvariant('62', getDeclarationErrorAddendum(component)) : void 0;\n}\n\nfunction enqueuePutListener(inst, registrationName, listener, transaction) {\n  if (transaction instanceof ReactServerRenderingTransaction) {\n    return;\n  }\n  if (\"development\" !== 'production') {\n    // IE8 has no API for event capturing and the `onScroll` event doesn't\n    // bubble.\n    \"development\" !== 'production' ? warning(registrationName !== 'onScroll' || isEventSupported('scroll', true), 'This browser doesn\\'t support the `onScroll` event') : void 0;\n  }\n  var containerInfo = inst._hostContainerInfo;\n  var isDocumentFragment = containerInfo._node && containerInfo._node.nodeType === DOC_FRAGMENT_TYPE;\n  var doc = isDocumentFragment ? containerInfo._node : containerInfo._ownerDocument;\n  listenTo(registrationName, doc);\n  transaction.getReactMountReady().enqueue(putListener, {\n    inst: inst,\n    registrationName: registrationName,\n    listener: listener\n  });\n}\n\nfunction putListener() {\n  var listenerToPut = this;\n  EventPluginHub.putListener(listenerToPut.inst, listenerToPut.registrationName, listenerToPut.listener);\n}\n\nfunction inputPostMount() {\n  var inst = this;\n  ReactDOMInput.postMountWrapper(inst);\n}\n\nfunction textareaPostMount() {\n  var inst = this;\n  ReactDOMTextarea.postMountWrapper(inst);\n}\n\nfunction optionPostMount() {\n  var inst = this;\n  ReactDOMOption.postMountWrapper(inst);\n}\n\nvar setContentChildForInstrumentation = emptyFunction;\nif (\"development\" !== 'production') {\n  setContentChildForInstrumentation = function (content) {\n    var hasExistingContent = this._contentDebugID != null;\n    var debugID = this._debugID;\n    // This ID represents the inlined child that has no backing instance:\n    var contentDebugID = -debugID;\n\n    if (content == null) {\n      if (hasExistingContent) {\n        ReactInstrumentation.debugTool.onUnmountComponent(this._contentDebugID);\n      }\n      this._contentDebugID = null;\n      return;\n    }\n\n    this._contentDebugID = contentDebugID;\n    if (hasExistingContent) {\n      ReactInstrumentation.debugTool.onBeforeUpdateComponent(contentDebugID, content);\n      ReactInstrumentation.debugTool.onUpdateComponent(contentDebugID);\n    } else {\n      ReactInstrumentation.debugTool.onBeforeMountComponent(contentDebugID, content, debugID);\n      ReactInstrumentation.debugTool.onMountComponent(contentDebugID);\n      ReactInstrumentation.debugTool.onSetChildren(debugID, [contentDebugID]);\n    }\n  };\n}\n\n// There are so many media events, it makes sense to just\n// maintain a list rather than create a `trapBubbledEvent` for each\nvar mediaEvents = {\n  topAbort: 'abort',\n  topCanPlay: 'canplay',\n  topCanPlayThrough: 'canplaythrough',\n  topDurationChange: 'durationchange',\n  topEmptied: 'emptied',\n  topEncrypted: 'encrypted',\n  topEnded: 'ended',\n  topError: 'error',\n  topLoadedData: 'loadeddata',\n  topLoadedMetadata: 'loadedmetadata',\n  topLoadStart: 'loadstart',\n  topPause: 'pause',\n  topPlay: 'play',\n  topPlaying: 'playing',\n  topProgress: 'progress',\n  topRateChange: 'ratechange',\n  topSeeked: 'seeked',\n  topSeeking: 'seeking',\n  topStalled: 'stalled',\n  topSuspend: 'suspend',\n  topTimeUpdate: 'timeupdate',\n  topVolumeChange: 'volumechange',\n  topWaiting: 'waiting'\n};\n\nfunction trapBubbledEventsLocal() {\n  var inst = this;\n  // If a component renders to null or if another component fatals and causes\n  // the state of the tree to be corrupted, `node` here can be null.\n  !inst._rootNodeID ? \"development\" !== 'production' ? invariant(false, 'Must be mounted to trap events') : _prodInvariant('63') : void 0;\n  var node = getNode(inst);\n  !node ? \"development\" !== 'production' ? invariant(false, 'trapBubbledEvent(...): Requires node to be rendered.') : _prodInvariant('64') : void 0;\n\n  switch (inst._tag) {\n    case 'iframe':\n    case 'object':\n      inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topLoad, 'load', node)];\n      break;\n    case 'video':\n    case 'audio':\n\n      inst._wrapperState.listeners = [];\n      // Create listener for each media event\n      for (var event in mediaEvents) {\n        if (mediaEvents.hasOwnProperty(event)) {\n          inst._wrapperState.listeners.push(ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes[event], mediaEvents[event], node));\n        }\n      }\n      break;\n    case 'source':\n      inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topError, 'error', node)];\n      break;\n    case 'img':\n      inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topError, 'error', node), ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topLoad, 'load', node)];\n      break;\n    case 'form':\n      inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topReset, 'reset', node), ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topSubmit, 'submit', node)];\n      break;\n    case 'input':\n    case 'select':\n    case 'textarea':\n      inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topInvalid, 'invalid', node)];\n      break;\n  }\n}\n\nfunction postUpdateSelectWrapper() {\n  ReactDOMSelect.postUpdateWrapper(this);\n}\n\n// For HTML, certain tags should omit their close tag. We keep a whitelist for\n// those special-case tags.\n\nvar omittedCloseTags = {\n  'area': true,\n  'base': true,\n  'br': true,\n  'col': true,\n  'embed': true,\n  'hr': true,\n  'img': true,\n  'input': true,\n  'keygen': true,\n  'link': true,\n  'meta': true,\n  'param': true,\n  'source': true,\n  'track': true,\n  'wbr': true\n};\n\n// NOTE: menuitem's close tag should be omitted, but that causes problems.\nvar newlineEatingTags = {\n  'listing': true,\n  'pre': true,\n  'textarea': true\n};\n\n// For HTML, certain tags cannot have children. This has the same purpose as\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = _assign({\n  'menuitem': true\n}, omittedCloseTags);\n\n// We accept any tag to be rendered but since this gets injected into arbitrary\n// HTML, we want to make sure that it's a safe tag.\n// http://www.w3.org/TR/REC-xml/#NT-Name\n\nvar VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/; // Simplified subset\nvar validatedTagCache = {};\nvar hasOwnProperty = {}.hasOwnProperty;\n\nfunction validateDangerousTag(tag) {\n  if (!hasOwnProperty.call(validatedTagCache, tag)) {\n    !VALID_TAG_REGEX.test(tag) ? \"development\" !== 'production' ? invariant(false, 'Invalid tag: %s', tag) : _prodInvariant('65', tag) : void 0;\n    validatedTagCache[tag] = true;\n  }\n}\n\nfunction isCustomComponent(tagName, props) {\n  return tagName.indexOf('-') >= 0 || props.is != null;\n}\n\nvar globalIdCounter = 1;\n\n/**\n * Creates a new React class that is idempotent and capable of containing other\n * React components. It accepts event listeners and DOM properties that are\n * valid according to `DOMProperty`.\n *\n *  - Event listeners: `onClick`, `onMouseDown`, etc.\n *  - DOM properties: `className`, `name`, `title`, etc.\n *\n * The `style` property functions differently from the DOM API. It accepts an\n * object mapping of style properties to values.\n *\n * @constructor ReactDOMComponent\n * @extends ReactMultiChild\n */\nfunction ReactDOMComponent(element) {\n  var tag = element.type;\n  validateDangerousTag(tag);\n  this._currentElement = element;\n  this._tag = tag.toLowerCase();\n  this._namespaceURI = null;\n  this._renderedChildren = null;\n  this._previousStyle = null;\n  this._previousStyleCopy = null;\n  this._hostNode = null;\n  this._hostParent = null;\n  this._rootNodeID = 0;\n  this._domID = 0;\n  this._hostContainerInfo = null;\n  this._wrapperState = null;\n  this._topLevelWrapper = null;\n  this._flags = 0;\n  if (\"development\" !== 'production') {\n    this._ancestorInfo = null;\n    setContentChildForInstrumentation.call(this, null);\n  }\n}\n\nReactDOMComponent.displayName = 'ReactDOMComponent';\n\nReactDOMComponent.Mixin = {\n\n  /**\n   * Generates root tag markup then recurses. This method has side effects and\n   * is not idempotent.\n   *\n   * @internal\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @param {?ReactDOMComponent} the parent component instance\n   * @param {?object} info about the host container\n   * @param {object} context\n   * @return {string} The computed markup.\n   */\n  mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n    this._rootNodeID = globalIdCounter++;\n    this._domID = hostContainerInfo._idCounter++;\n    this._hostParent = hostParent;\n    this._hostContainerInfo = hostContainerInfo;\n\n    var props = this._currentElement.props;\n\n    switch (this._tag) {\n      case 'audio':\n      case 'form':\n      case 'iframe':\n      case 'img':\n      case 'link':\n      case 'object':\n      case 'source':\n      case 'video':\n        this._wrapperState = {\n          listeners: null\n        };\n        transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n        break;\n      case 'button':\n        props = ReactDOMButton.getHostProps(this, props, hostParent);\n        break;\n      case 'input':\n        ReactDOMInput.mountWrapper(this, props, hostParent);\n        props = ReactDOMInput.getHostProps(this, props);\n        transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n        break;\n      case 'option':\n        ReactDOMOption.mountWrapper(this, props, hostParent);\n        props = ReactDOMOption.getHostProps(this, props);\n        break;\n      case 'select':\n        ReactDOMSelect.mountWrapper(this, props, hostParent);\n        props = ReactDOMSelect.getHostProps(this, props);\n        transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n        break;\n      case 'textarea':\n        ReactDOMTextarea.mountWrapper(this, props, hostParent);\n        props = ReactDOMTextarea.getHostProps(this, props);\n        transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n        break;\n    }\n\n    assertValidProps(this, props);\n\n    // We create tags in the namespace of their parent container, except HTML\n    // tags get no namespace.\n    var namespaceURI;\n    var parentTag;\n    if (hostParent != null) {\n      namespaceURI = hostParent._namespaceURI;\n      parentTag = hostParent._tag;\n    } else if (hostContainerInfo._tag) {\n      namespaceURI = hostContainerInfo._namespaceURI;\n      parentTag = hostContainerInfo._tag;\n    }\n    if (namespaceURI == null || namespaceURI === DOMNamespaces.svg && parentTag === 'foreignobject') {\n      namespaceURI = DOMNamespaces.html;\n    }\n    if (namespaceURI === DOMNamespaces.html) {\n      if (this._tag === 'svg') {\n        namespaceURI = DOMNamespaces.svg;\n      } else if (this._tag === 'math') {\n        namespaceURI = DOMNamespaces.mathml;\n      }\n    }\n    this._namespaceURI = namespaceURI;\n\n    if (\"development\" !== 'production') {\n      var parentInfo;\n      if (hostParent != null) {\n        parentInfo = hostParent._ancestorInfo;\n      } else if (hostContainerInfo._tag) {\n        parentInfo = hostContainerInfo._ancestorInfo;\n      }\n      if (parentInfo) {\n        // parentInfo should always be present except for the top-level\n        // component when server rendering\n        validateDOMNesting(this._tag, this, parentInfo);\n      }\n      this._ancestorInfo = validateDOMNesting.updatedAncestorInfo(parentInfo, this._tag, this);\n    }\n\n    var mountImage;\n    if (transaction.useCreateElement) {\n      var ownerDocument = hostContainerInfo._ownerDocument;\n      var el;\n      if (namespaceURI === DOMNamespaces.html) {\n        if (this._tag === 'script') {\n          // Create the script via .innerHTML so its \"parser-inserted\" flag is\n          // set to true and it does not execute\n          var div = ownerDocument.createElement('div');\n          var type = this._currentElement.type;\n          div.innerHTML = '<' + type + '></' + type + '>';\n          el = div.removeChild(div.firstChild);\n        } else if (props.is) {\n          el = ownerDocument.createElement(this._currentElement.type, props.is);\n        } else {\n          // Separate else branch instead of using `props.is || undefined` above becuase of a Firefox bug.\n          // See discussion in https://github.com/facebook/react/pull/6896\n          // and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240\n          el = ownerDocument.createElement(this._currentElement.type);\n        }\n      } else {\n        el = ownerDocument.createElementNS(namespaceURI, this._currentElement.type);\n      }\n      ReactDOMComponentTree.precacheNode(this, el);\n      this._flags |= Flags.hasCachedChildNodes;\n      if (!this._hostParent) {\n        DOMPropertyOperations.setAttributeForRoot(el);\n      }\n      this._updateDOMProperties(null, props, transaction);\n      var lazyTree = DOMLazyTree(el);\n      this._createInitialChildren(transaction, props, context, lazyTree);\n      mountImage = lazyTree;\n    } else {\n      var tagOpen = this._createOpenTagMarkupAndPutListeners(transaction, props);\n      var tagContent = this._createContentMarkup(transaction, props, context);\n      if (!tagContent && omittedCloseTags[this._tag]) {\n        mountImage = tagOpen + '/>';\n      } else {\n        mountImage = tagOpen + '>' + tagContent + '</' + this._currentElement.type + '>';\n      }\n    }\n\n    switch (this._tag) {\n      case 'input':\n        transaction.getReactMountReady().enqueue(inputPostMount, this);\n        if (props.autoFocus) {\n          transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n        }\n        break;\n      case 'textarea':\n        transaction.getReactMountReady().enqueue(textareaPostMount, this);\n        if (props.autoFocus) {\n          transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n        }\n        break;\n      case 'select':\n        if (props.autoFocus) {\n          transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n        }\n        break;\n      case 'button':\n        if (props.autoFocus) {\n          transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n        }\n        break;\n      case 'option':\n        transaction.getReactMountReady().enqueue(optionPostMount, this);\n        break;\n    }\n\n    return mountImage;\n  },\n\n  /**\n   * Creates markup for the open tag and all attributes.\n   *\n   * This method has side effects because events get registered.\n   *\n   * Iterating over object properties is faster than iterating over arrays.\n   * @see http://jsperf.com/obj-vs-arr-iteration\n   *\n   * @private\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @param {object} props\n   * @return {string} Markup of opening tag.\n   */\n  _createOpenTagMarkupAndPutListeners: function (transaction, props) {\n    var ret = '<' + this._currentElement.type;\n\n    for (var propKey in props) {\n      if (!props.hasOwnProperty(propKey)) {\n        continue;\n      }\n      var propValue = props[propKey];\n      if (propValue == null) {\n        continue;\n      }\n      if (registrationNameModules.hasOwnProperty(propKey)) {\n        if (propValue) {\n          enqueuePutListener(this, propKey, propValue, transaction);\n        }\n      } else {\n        if (propKey === STYLE) {\n          if (propValue) {\n            if (\"development\" !== 'production') {\n              // See `_updateDOMProperties`. style block\n              this._previousStyle = propValue;\n            }\n            propValue = this._previousStyleCopy = _assign({}, props.style);\n          }\n          propValue = CSSPropertyOperations.createMarkupForStyles(propValue, this);\n        }\n        var markup = null;\n        if (this._tag != null && isCustomComponent(this._tag, props)) {\n          if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n            markup = DOMPropertyOperations.createMarkupForCustomAttribute(propKey, propValue);\n          }\n        } else {\n          markup = DOMPropertyOperations.createMarkupForProperty(propKey, propValue);\n        }\n        if (markup) {\n          ret += ' ' + markup;\n        }\n      }\n    }\n\n    // For static pages, no need to put React ID and checksum. Saves lots of\n    // bytes.\n    if (transaction.renderToStaticMarkup) {\n      return ret;\n    }\n\n    if (!this._hostParent) {\n      ret += ' ' + DOMPropertyOperations.createMarkupForRoot();\n    }\n    ret += ' ' + DOMPropertyOperations.createMarkupForID(this._domID);\n    return ret;\n  },\n\n  /**\n   * Creates markup for the content between the tags.\n   *\n   * @private\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @param {object} props\n   * @param {object} context\n   * @return {string} Content markup.\n   */\n  _createContentMarkup: function (transaction, props, context) {\n    var ret = '';\n\n    // Intentional use of != to avoid catching zero/false.\n    var innerHTML = props.dangerouslySetInnerHTML;\n    if (innerHTML != null) {\n      if (innerHTML.__html != null) {\n        ret = innerHTML.__html;\n      }\n    } else {\n      var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null;\n      var childrenToUse = contentToUse != null ? null : props.children;\n      if (contentToUse != null) {\n        // TODO: Validate that text is allowed as a child of this node\n        ret = escapeTextContentForBrowser(contentToUse);\n        if (\"development\" !== 'production') {\n          setContentChildForInstrumentation.call(this, contentToUse);\n        }\n      } else if (childrenToUse != null) {\n        var mountImages = this.mountChildren(childrenToUse, transaction, context);\n        ret = mountImages.join('');\n      }\n    }\n    if (newlineEatingTags[this._tag] && ret.charAt(0) === '\\n') {\n      // text/html ignores the first character in these tags if it's a newline\n      // Prefer to break application/xml over text/html (for now) by adding\n      // a newline specifically to get eaten by the parser. (Alternately for\n      // textareas, replacing \"^\\n\" with \"\\r\\n\" doesn't get eaten, and the first\n      // \\r is normalized out by HTMLTextAreaElement#value.)\n      // See: <http://www.w3.org/TR/html-polyglot/#newlines-in-textarea-and-pre>\n      // See: <http://www.w3.org/TR/html5/syntax.html#element-restrictions>\n      // See: <http://www.w3.org/TR/html5/syntax.html#newlines>\n      // See: Parsing of \"textarea\" \"listing\" and \"pre\" elements\n      //  from <http://www.w3.org/TR/html5/syntax.html#parsing-main-inbody>\n      return '\\n' + ret;\n    } else {\n      return ret;\n    }\n  },\n\n  _createInitialChildren: function (transaction, props, context, lazyTree) {\n    // Intentional use of != to avoid catching zero/false.\n    var innerHTML = props.dangerouslySetInnerHTML;\n    if (innerHTML != null) {\n      if (innerHTML.__html != null) {\n        DOMLazyTree.queueHTML(lazyTree, innerHTML.__html);\n      }\n    } else {\n      var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null;\n      var childrenToUse = contentToUse != null ? null : props.children;\n      if (contentToUse != null) {\n        // TODO: Validate that text is allowed as a child of this node\n        if (\"development\" !== 'production') {\n          setContentChildForInstrumentation.call(this, contentToUse);\n        }\n        DOMLazyTree.queueText(lazyTree, contentToUse);\n      } else if (childrenToUse != null) {\n        var mountImages = this.mountChildren(childrenToUse, transaction, context);\n        for (var i = 0; i < mountImages.length; i++) {\n          DOMLazyTree.queueChild(lazyTree, mountImages[i]);\n        }\n      }\n    }\n  },\n\n  /**\n   * Receives a next element and updates the component.\n   *\n   * @internal\n   * @param {ReactElement} nextElement\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @param {object} context\n   */\n  receiveComponent: function (nextElement, transaction, context) {\n    var prevElement = this._currentElement;\n    this._currentElement = nextElement;\n    this.updateComponent(transaction, prevElement, nextElement, context);\n  },\n\n  /**\n   * Updates a DOM component after it has already been allocated and\n   * attached to the DOM. Reconciles the root DOM node, then recurses.\n   *\n   * @param {ReactReconcileTransaction} transaction\n   * @param {ReactElement} prevElement\n   * @param {ReactElement} nextElement\n   * @internal\n   * @overridable\n   */\n  updateComponent: function (transaction, prevElement, nextElement, context) {\n    var lastProps = prevElement.props;\n    var nextProps = this._currentElement.props;\n\n    switch (this._tag) {\n      case 'button':\n        lastProps = ReactDOMButton.getHostProps(this, lastProps);\n        nextProps = ReactDOMButton.getHostProps(this, nextProps);\n        break;\n      case 'input':\n        lastProps = ReactDOMInput.getHostProps(this, lastProps);\n        nextProps = ReactDOMInput.getHostProps(this, nextProps);\n        break;\n      case 'option':\n        lastProps = ReactDOMOption.getHostProps(this, lastProps);\n        nextProps = ReactDOMOption.getHostProps(this, nextProps);\n        break;\n      case 'select':\n        lastProps = ReactDOMSelect.getHostProps(this, lastProps);\n        nextProps = ReactDOMSelect.getHostProps(this, nextProps);\n        break;\n      case 'textarea':\n        lastProps = ReactDOMTextarea.getHostProps(this, lastProps);\n        nextProps = ReactDOMTextarea.getHostProps(this, nextProps);\n        break;\n    }\n\n    assertValidProps(this, nextProps);\n    this._updateDOMProperties(lastProps, nextProps, transaction);\n    this._updateDOMChildren(lastProps, nextProps, transaction, context);\n\n    switch (this._tag) {\n      case 'input':\n        // Update the wrapper around inputs *after* updating props. This has to\n        // happen after `_updateDOMProperties`. Otherwise HTML5 input validations\n        // raise warnings and prevent the new value from being assigned.\n        ReactDOMInput.updateWrapper(this);\n        break;\n      case 'textarea':\n        ReactDOMTextarea.updateWrapper(this);\n        break;\n      case 'select':\n        // <select> value update needs to occur after <option> children\n        // reconciliation\n        transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this);\n        break;\n    }\n  },\n\n  /**\n   * Reconciles the properties by detecting differences in property values and\n   * updating the DOM as necessary. This function is probably the single most\n   * critical path for performance optimization.\n   *\n   * TODO: Benchmark whether checking for changed values in memory actually\n   *       improves performance (especially statically positioned elements).\n   * TODO: Benchmark the effects of putting this at the top since 99% of props\n   *       do not change for a given reconciliation.\n   * TODO: Benchmark areas that can be improved with caching.\n   *\n   * @private\n   * @param {object} lastProps\n   * @param {object} nextProps\n   * @param {?DOMElement} node\n   */\n  _updateDOMProperties: function (lastProps, nextProps, transaction) {\n    var propKey;\n    var styleName;\n    var styleUpdates;\n    for (propKey in lastProps) {\n      if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) {\n        continue;\n      }\n      if (propKey === STYLE) {\n        var lastStyle = this._previousStyleCopy;\n        for (styleName in lastStyle) {\n          if (lastStyle.hasOwnProperty(styleName)) {\n            styleUpdates = styleUpdates || {};\n            styleUpdates[styleName] = '';\n          }\n        }\n        this._previousStyleCopy = null;\n      } else if (registrationNameModules.hasOwnProperty(propKey)) {\n        if (lastProps[propKey]) {\n          // Only call deleteListener if there was a listener previously or\n          // else willDeleteListener gets called when there wasn't actually a\n          // listener (e.g., onClick={null})\n          deleteListener(this, propKey);\n        }\n      } else if (isCustomComponent(this._tag, lastProps)) {\n        if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n          DOMPropertyOperations.deleteValueForAttribute(getNode(this), propKey);\n        }\n      } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n        DOMPropertyOperations.deleteValueForProperty(getNode(this), propKey);\n      }\n    }\n    for (propKey in nextProps) {\n      var nextProp = nextProps[propKey];\n      var lastProp = propKey === STYLE ? this._previousStyleCopy : lastProps != null ? lastProps[propKey] : undefined;\n      if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) {\n        continue;\n      }\n      if (propKey === STYLE) {\n        if (nextProp) {\n          if (\"development\" !== 'production') {\n            checkAndWarnForMutatedStyle(this._previousStyleCopy, this._previousStyle, this);\n            this._previousStyle = nextProp;\n          }\n          nextProp = this._previousStyleCopy = _assign({}, nextProp);\n        } else {\n          this._previousStyleCopy = null;\n        }\n        if (lastProp) {\n          // Unset styles on `lastProp` but not on `nextProp`.\n          for (styleName in lastProp) {\n            if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {\n              styleUpdates = styleUpdates || {};\n              styleUpdates[styleName] = '';\n            }\n          }\n          // Update styles that changed since `lastProp`.\n          for (styleName in nextProp) {\n            if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) {\n              styleUpdates = styleUpdates || {};\n              styleUpdates[styleName] = nextProp[styleName];\n            }\n          }\n        } else {\n          // Relies on `updateStylesByID` not mutating `styleUpdates`.\n          styleUpdates = nextProp;\n        }\n      } else if (registrationNameModules.hasOwnProperty(propKey)) {\n        if (nextProp) {\n          enqueuePutListener(this, propKey, nextProp, transaction);\n        } else if (lastProp) {\n          deleteListener(this, propKey);\n        }\n      } else if (isCustomComponent(this._tag, nextProps)) {\n        if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n          DOMPropertyOperations.setValueForAttribute(getNode(this), propKey, nextProp);\n        }\n      } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n        var node = getNode(this);\n        // If we're updating to null or undefined, we should remove the property\n        // from the DOM node instead of inadvertently setting to a string. This\n        // brings us in line with the same behavior we have on initial render.\n        if (nextProp != null) {\n          DOMPropertyOperations.setValueForProperty(node, propKey, nextProp);\n        } else {\n          DOMPropertyOperations.deleteValueForProperty(node, propKey);\n        }\n      }\n    }\n    if (styleUpdates) {\n      CSSPropertyOperations.setValueForStyles(getNode(this), styleUpdates, this);\n    }\n  },\n\n  /**\n   * Reconciles the children with the various properties that affect the\n   * children content.\n   *\n   * @param {object} lastProps\n   * @param {object} nextProps\n   * @param {ReactReconcileTransaction} transaction\n   * @param {object} context\n   */\n  _updateDOMChildren: function (lastProps, nextProps, transaction, context) {\n    var lastContent = CONTENT_TYPES[typeof lastProps.children] ? lastProps.children : null;\n    var nextContent = CONTENT_TYPES[typeof nextProps.children] ? nextProps.children : null;\n\n    var lastHtml = lastProps.dangerouslySetInnerHTML && lastProps.dangerouslySetInnerHTML.__html;\n    var nextHtml = nextProps.dangerouslySetInnerHTML && nextProps.dangerouslySetInnerHTML.__html;\n\n    // Note the use of `!=` which checks for null or undefined.\n    var lastChildren = lastContent != null ? null : lastProps.children;\n    var nextChildren = nextContent != null ? null : nextProps.children;\n\n    // If we're switching from children to content/html or vice versa, remove\n    // the old content\n    var lastHasContentOrHtml = lastContent != null || lastHtml != null;\n    var nextHasContentOrHtml = nextContent != null || nextHtml != null;\n    if (lastChildren != null && nextChildren == null) {\n      this.updateChildren(null, transaction, context);\n    } else if (lastHasContentOrHtml && !nextHasContentOrHtml) {\n      this.updateTextContent('');\n      if (\"development\" !== 'production') {\n        ReactInstrumentation.debugTool.onSetChildren(this._debugID, []);\n      }\n    }\n\n    if (nextContent != null) {\n      if (lastContent !== nextContent) {\n        this.updateTextContent('' + nextContent);\n        if (\"development\" !== 'production') {\n          setContentChildForInstrumentation.call(this, nextContent);\n        }\n      }\n    } else if (nextHtml != null) {\n      if (lastHtml !== nextHtml) {\n        this.updateMarkup('' + nextHtml);\n      }\n      if (\"development\" !== 'production') {\n        ReactInstrumentation.debugTool.onSetChildren(this._debugID, []);\n      }\n    } else if (nextChildren != null) {\n      if (\"development\" !== 'production') {\n        setContentChildForInstrumentation.call(this, null);\n      }\n\n      this.updateChildren(nextChildren, transaction, context);\n    }\n  },\n\n  getHostNode: function () {\n    return getNode(this);\n  },\n\n  /**\n   * Destroys all event registrations for this instance. Does not remove from\n   * the DOM. That must be done by the parent.\n   *\n   * @internal\n   */\n  unmountComponent: function (safely) {\n    switch (this._tag) {\n      case 'audio':\n      case 'form':\n      case 'iframe':\n      case 'img':\n      case 'link':\n      case 'object':\n      case 'source':\n      case 'video':\n        var listeners = this._wrapperState.listeners;\n        if (listeners) {\n          for (var i = 0; i < listeners.length; i++) {\n            listeners[i].remove();\n          }\n        }\n        break;\n      case 'html':\n      case 'head':\n      case 'body':\n        /**\n         * Components like <html> <head> and <body> can't be removed or added\n         * easily in a cross-browser way, however it's valuable to be able to\n         * take advantage of React's reconciliation for styling and <title>\n         * management. So we just document it and throw in dangerous cases.\n         */\n        !false ? \"development\" !== 'production' ? invariant(false, '<%s> tried to unmount. Because of cross-browser quirks it is impossible to unmount some top-level components (eg <html>, <head>, and <body>) reliably and efficiently. To fix this, have a single top-level component that never unmounts render these elements.', this._tag) : _prodInvariant('66', this._tag) : void 0;\n        break;\n    }\n\n    this.unmountChildren(safely);\n    ReactDOMComponentTree.uncacheNode(this);\n    EventPluginHub.deleteAllListeners(this);\n    this._rootNodeID = 0;\n    this._domID = 0;\n    this._wrapperState = null;\n\n    if (\"development\" !== 'production') {\n      setContentChildForInstrumentation.call(this, null);\n    }\n  },\n\n  getPublicInstance: function () {\n    return getNode(this);\n  }\n\n};\n\n_assign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mixin);\n\nmodule.exports = ReactDOMComponent;\n},{\"1\":1,\"10\":10,\"11\":11,\"122\":122,\"136\":136,\"140\":140,\"146\":146,\"154\":154,\"16\":16,\"162\":162,\"166\":166,\"17\":17,\"170\":170,\"171\":171,\"172\":172,\"18\":18,\"27\":27,\"39\":39,\"4\":4,\"41\":41,\"42\":42,\"48\":48,\"50\":50,\"51\":51,\"55\":55,\"73\":73,\"77\":77,\"8\":8,\"9\":9,\"92\":92}],41:[function(_dereq_,module,exports){\n/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMComponentFlags\n */\n\n'use strict';\n\nvar ReactDOMComponentFlags = {\n  hasCachedChildNodes: 1 << 0\n};\n\nmodule.exports = ReactDOMComponentFlags;\n},{}],42:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMComponentTree\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar DOMProperty = _dereq_(10);\nvar ReactDOMComponentFlags = _dereq_(41);\n\nvar invariant = _dereq_(162);\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar Flags = ReactDOMComponentFlags;\n\nvar internalInstanceKey = '__reactInternalInstance$' + Math.random().toString(36).slice(2);\n\n/**\n * Drill down (through composites and empty components) until we get a host or\n * host text component.\n *\n * This is pretty polymorphic but unavoidable with the current structure we have\n * for `_renderedChildren`.\n */\nfunction getRenderedHostOrTextFromComponent(component) {\n  var rendered;\n  while (rendered = component._renderedComponent) {\n    component = rendered;\n  }\n  return component;\n}\n\n/**\n * Populate `_hostNode` on the rendered host/text component with the given\n * DOM node. The passed `inst` can be a composite.\n */\nfunction precacheNode(inst, node) {\n  var hostInst = getRenderedHostOrTextFromComponent(inst);\n  hostInst._hostNode = node;\n  node[internalInstanceKey] = hostInst;\n}\n\nfunction uncacheNode(inst) {\n  var node = inst._hostNode;\n  if (node) {\n    delete node[internalInstanceKey];\n    inst._hostNode = null;\n  }\n}\n\n/**\n * Populate `_hostNode` on each child of `inst`, assuming that the children\n * match up with the DOM (element) children of `node`.\n *\n * We cache entire levels at once to avoid an n^2 problem where we access the\n * children of a node sequentially and have to walk from the start to our target\n * node every time.\n *\n * Since we update `_renderedChildren` and the actual DOM at (slightly)\n * different times, we could race here and see a newer `_renderedChildren` than\n * the DOM nodes we see. To avoid this, ReactMultiChild calls\n * `prepareToManageChildren` before we change `_renderedChildren`, at which\n * time the container's child nodes are always cached (until it unmounts).\n */\nfunction precacheChildNodes(inst, node) {\n  if (inst._flags & Flags.hasCachedChildNodes) {\n    return;\n  }\n  var children = inst._renderedChildren;\n  var childNode = node.firstChild;\n  outer: for (var name in children) {\n    if (!children.hasOwnProperty(name)) {\n      continue;\n    }\n    var childInst = children[name];\n    var childID = getRenderedHostOrTextFromComponent(childInst)._domID;\n    if (childID === 0) {\n      // We're currently unmounting this child in ReactMultiChild; skip it.\n      continue;\n    }\n    // We assume the child nodes are in the same order as the child instances.\n    for (; childNode !== null; childNode = childNode.nextSibling) {\n      if (childNode.nodeType === 1 && childNode.getAttribute(ATTR_NAME) === String(childID) || childNode.nodeType === 8 && childNode.nodeValue === ' react-text: ' + childID + ' ' || childNode.nodeType === 8 && childNode.nodeValue === ' react-empty: ' + childID + ' ') {\n        precacheNode(childInst, childNode);\n        continue outer;\n      }\n    }\n    // We reached the end of the DOM children without finding an ID match.\n    !false ? \"development\" !== 'production' ? invariant(false, 'Unable to find element with ID %s.', childID) : _prodInvariant('32', childID) : void 0;\n  }\n  inst._flags |= Flags.hasCachedChildNodes;\n}\n\n/**\n * Given a DOM node, return the closest ReactDOMComponent or\n * ReactDOMTextComponent instance ancestor.\n */\nfunction getClosestInstanceFromNode(node) {\n  if (node[internalInstanceKey]) {\n    return node[internalInstanceKey];\n  }\n\n  // Walk up the tree until we find an ancestor whose instance we have cached.\n  var parents = [];\n  while (!node[internalInstanceKey]) {\n    parents.push(node);\n    if (node.parentNode) {\n      node = node.parentNode;\n    } else {\n      // Top of the tree. This node must not be part of a React tree (or is\n      // unmounted, potentially).\n      return null;\n    }\n  }\n\n  var closest;\n  var inst;\n  for (; node && (inst = node[internalInstanceKey]); node = parents.pop()) {\n    closest = inst;\n    if (parents.length) {\n      precacheChildNodes(inst, node);\n    }\n  }\n\n  return closest;\n}\n\n/**\n * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent\n * instance, or null if the node was not rendered by this React.\n */\nfunction getInstanceFromNode(node) {\n  var inst = getClosestInstanceFromNode(node);\n  if (inst != null && inst._hostNode === node) {\n    return inst;\n  } else {\n    return null;\n  }\n}\n\n/**\n * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding\n * DOM node.\n */\nfunction getNodeFromInstance(inst) {\n  // Without this first invariant, passing a non-DOM-component triggers the next\n  // invariant for a missing parent, which is super confusing.\n  !(inst._hostNode !== undefined) ? \"development\" !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n\n  if (inst._hostNode) {\n    return inst._hostNode;\n  }\n\n  // Walk up the tree until we find an ancestor whose DOM node we have cached.\n  var parents = [];\n  while (!inst._hostNode) {\n    parents.push(inst);\n    !inst._hostParent ? \"development\" !== 'production' ? invariant(false, 'React DOM tree root should always have a node reference.') : _prodInvariant('34') : void 0;\n    inst = inst._hostParent;\n  }\n\n  // Now parents contains each ancestor that does *not* have a cached native\n  // node, and `inst` is the deepest ancestor that does.\n  for (; parents.length; inst = parents.pop()) {\n    precacheChildNodes(inst, inst._hostNode);\n  }\n\n  return inst._hostNode;\n}\n\nvar ReactDOMComponentTree = {\n  getClosestInstanceFromNode: getClosestInstanceFromNode,\n  getInstanceFromNode: getInstanceFromNode,\n  getNodeFromInstance: getNodeFromInstance,\n  precacheChildNodes: precacheChildNodes,\n  precacheNode: precacheNode,\n  uncacheNode: uncacheNode\n};\n\nmodule.exports = ReactDOMComponentTree;\n},{\"10\":10,\"140\":140,\"162\":162,\"41\":41}],43:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMContainerInfo\n */\n\n'use strict';\n\nvar validateDOMNesting = _dereq_(146);\n\nvar DOC_NODE_TYPE = 9;\n\nfunction ReactDOMContainerInfo(topLevelWrapper, node) {\n  var info = {\n    _topLevelWrapper: topLevelWrapper,\n    _idCounter: 1,\n    _ownerDocument: node ? node.nodeType === DOC_NODE_TYPE ? node : node.ownerDocument : null,\n    _node: node,\n    _tag: node ? node.nodeName.toLowerCase() : null,\n    _namespaceURI: node ? node.namespaceURI : null\n  };\n  if (\"development\" !== 'production') {\n    info._ancestorInfo = node ? validateDOMNesting.updatedAncestorInfo(null, info._tag, null) : null;\n  }\n  return info;\n}\n\nmodule.exports = ReactDOMContainerInfo;\n},{\"146\":146}],44:[function(_dereq_,module,exports){\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMEmptyComponent\n */\n\n'use strict';\n\nvar _assign = _dereq_(172);\n\nvar DOMLazyTree = _dereq_(8);\nvar ReactDOMComponentTree = _dereq_(42);\n\nvar ReactDOMEmptyComponent = function (instantiate) {\n  // ReactCompositeComponent uses this:\n  this._currentElement = null;\n  // ReactDOMComponentTree uses these:\n  this._hostNode = null;\n  this._hostParent = null;\n  this._hostContainerInfo = null;\n  this._domID = 0;\n};\n_assign(ReactDOMEmptyComponent.prototype, {\n  mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n    var domID = hostContainerInfo._idCounter++;\n    this._domID = domID;\n    this._hostParent = hostParent;\n    this._hostContainerInfo = hostContainerInfo;\n\n    var nodeValue = ' react-empty: ' + this._domID + ' ';\n    if (transaction.useCreateElement) {\n      var ownerDocument = hostContainerInfo._ownerDocument;\n      var node = ownerDocument.createComment(nodeValue);\n      ReactDOMComponentTree.precacheNode(this, node);\n      return DOMLazyTree(node);\n    } else {\n      if (transaction.renderToStaticMarkup) {\n        // Normally we'd insert a comment node, but since this is a situation\n        // where React won't take over (static pages), we can simply return\n        // nothing.\n        return '';\n      }\n      return '<!--' + nodeValue + '-->';\n    }\n  },\n  receiveComponent: function () {},\n  getHostNode: function () {\n    return ReactDOMComponentTree.getNodeFromInstance(this);\n  },\n  unmountComponent: function () {\n    ReactDOMComponentTree.uncacheNode(this);\n  }\n});\n\nmodule.exports = ReactDOMEmptyComponent;\n},{\"172\":172,\"42\":42,\"8\":8}],45:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMFactories\n */\n\n'use strict';\n\nvar ReactElement = _dereq_(61);\n\n/**\n * Create a factory that creates HTML tag elements.\n *\n * @private\n */\nvar createDOMFactory = ReactElement.createFactory;\nif (\"development\" !== 'production') {\n  var ReactElementValidator = _dereq_(62);\n  createDOMFactory = ReactElementValidator.createFactory;\n}\n\n/**\n * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes.\n * This is also accessible via `React.DOM`.\n *\n * @public\n */\nvar ReactDOMFactories = {\n  a: createDOMFactory('a'),\n  abbr: createDOMFactory('abbr'),\n  address: createDOMFactory('address'),\n  area: createDOMFactory('area'),\n  article: createDOMFactory('article'),\n  aside: createDOMFactory('aside'),\n  audio: createDOMFactory('audio'),\n  b: createDOMFactory('b'),\n  base: createDOMFactory('base'),\n  bdi: createDOMFactory('bdi'),\n  bdo: createDOMFactory('bdo'),\n  big: createDOMFactory('big'),\n  blockquote: createDOMFactory('blockquote'),\n  body: createDOMFactory('body'),\n  br: createDOMFactory('br'),\n  button: createDOMFactory('button'),\n  canvas: createDOMFactory('canvas'),\n  caption: createDOMFactory('caption'),\n  cite: createDOMFactory('cite'),\n  code: createDOMFactory('code'),\n  col: createDOMFactory('col'),\n  colgroup: createDOMFactory('colgroup'),\n  data: createDOMFactory('data'),\n  datalist: createDOMFactory('datalist'),\n  dd: createDOMFactory('dd'),\n  del: createDOMFactory('del'),\n  details: createDOMFactory('details'),\n  dfn: createDOMFactory('dfn'),\n  dialog: createDOMFactory('dialog'),\n  div: createDOMFactory('div'),\n  dl: createDOMFactory('dl'),\n  dt: createDOMFactory('dt'),\n  em: createDOMFactory('em'),\n  embed: createDOMFactory('embed'),\n  fieldset: createDOMFactory('fieldset'),\n  figcaption: createDOMFactory('figcaption'),\n  figure: createDOMFactory('figure'),\n  footer: createDOMFactory('footer'),\n  form: createDOMFactory('form'),\n  h1: createDOMFactory('h1'),\n  h2: createDOMFactory('h2'),\n  h3: createDOMFactory('h3'),\n  h4: createDOMFactory('h4'),\n  h5: createDOMFactory('h5'),\n  h6: createDOMFactory('h6'),\n  head: createDOMFactory('head'),\n  header: createDOMFactory('header'),\n  hgroup: createDOMFactory('hgroup'),\n  hr: createDOMFactory('hr'),\n  html: createDOMFactory('html'),\n  i: createDOMFactory('i'),\n  iframe: createDOMFactory('iframe'),\n  img: createDOMFactory('img'),\n  input: createDOMFactory('input'),\n  ins: createDOMFactory('ins'),\n  kbd: createDOMFactory('kbd'),\n  keygen: createDOMFactory('keygen'),\n  label: createDOMFactory('label'),\n  legend: createDOMFactory('legend'),\n  li: createDOMFactory('li'),\n  link: createDOMFactory('link'),\n  main: createDOMFactory('main'),\n  map: createDOMFactory('map'),\n  mark: createDOMFactory('mark'),\n  menu: createDOMFactory('menu'),\n  menuitem: createDOMFactory('menuitem'),\n  meta: createDOMFactory('meta'),\n  meter: createDOMFactory('meter'),\n  nav: createDOMFactory('nav'),\n  noscript: createDOMFactory('noscript'),\n  object: createDOMFactory('object'),\n  ol: createDOMFactory('ol'),\n  optgroup: createDOMFactory('optgroup'),\n  option: createDOMFactory('option'),\n  output: createDOMFactory('output'),\n  p: createDOMFactory('p'),\n  param: createDOMFactory('param'),\n  picture: createDOMFactory('picture'),\n  pre: createDOMFactory('pre'),\n  progress: createDOMFactory('progress'),\n  q: createDOMFactory('q'),\n  rp: createDOMFactory('rp'),\n  rt: createDOMFactory('rt'),\n  ruby: createDOMFactory('ruby'),\n  s: createDOMFactory('s'),\n  samp: createDOMFactory('samp'),\n  script: createDOMFactory('script'),\n  section: createDOMFactory('section'),\n  select: createDOMFactory('select'),\n  small: createDOMFactory('small'),\n  source: createDOMFactory('source'),\n  span: createDOMFactory('span'),\n  strong: createDOMFactory('strong'),\n  style: createDOMFactory('style'),\n  sub: createDOMFactory('sub'),\n  summary: createDOMFactory('summary'),\n  sup: createDOMFactory('sup'),\n  table: createDOMFactory('table'),\n  tbody: createDOMFactory('tbody'),\n  td: createDOMFactory('td'),\n  textarea: createDOMFactory('textarea'),\n  tfoot: createDOMFactory('tfoot'),\n  th: createDOMFactory('th'),\n  thead: createDOMFactory('thead'),\n  time: createDOMFactory('time'),\n  title: createDOMFactory('title'),\n  tr: createDOMFactory('tr'),\n  track: createDOMFactory('track'),\n  u: createDOMFactory('u'),\n  ul: createDOMFactory('ul'),\n  'var': createDOMFactory('var'),\n  video: createDOMFactory('video'),\n  wbr: createDOMFactory('wbr'),\n\n  // SVG\n  circle: createDOMFactory('circle'),\n  clipPath: createDOMFactory('clipPath'),\n  defs: createDOMFactory('defs'),\n  ellipse: createDOMFactory('ellipse'),\n  g: createDOMFactory('g'),\n  image: createDOMFactory('image'),\n  line: createDOMFactory('line'),\n  linearGradient: createDOMFactory('linearGradient'),\n  mask: createDOMFactory('mask'),\n  path: createDOMFactory('path'),\n  pattern: createDOMFactory('pattern'),\n  polygon: createDOMFactory('polygon'),\n  polyline: createDOMFactory('polyline'),\n  radialGradient: createDOMFactory('radialGradient'),\n  rect: createDOMFactory('rect'),\n  stop: createDOMFactory('stop'),\n  svg: createDOMFactory('svg'),\n  text: createDOMFactory('text'),\n  tspan: createDOMFactory('tspan')\n};\n\nmodule.exports = ReactDOMFactories;\n},{\"61\":61,\"62\":62}],46:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMFeatureFlags\n */\n\n'use strict';\n\nvar ReactDOMFeatureFlags = {\n  useCreateElement: true\n};\n\nmodule.exports = ReactDOMFeatureFlags;\n},{}],47:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMIDOperations\n */\n\n'use strict';\n\nvar DOMChildrenOperations = _dereq_(7);\nvar ReactDOMComponentTree = _dereq_(42);\n\n/**\n * Operations used to process updates to DOM nodes.\n */\nvar ReactDOMIDOperations = {\n\n  /**\n   * Updates a component's children by processing a series of updates.\n   *\n   * @param {array<object>} updates List of update configurations.\n   * @internal\n   */\n  dangerouslyProcessChildrenUpdates: function (parentInst, updates) {\n    var node = ReactDOMComponentTree.getNodeFromInstance(parentInst);\n    DOMChildrenOperations.processUpdates(node, updates);\n  }\n};\n\nmodule.exports = ReactDOMIDOperations;\n},{\"42\":42,\"7\":7}],48:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMInput\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140),\n    _assign = _dereq_(172);\n\nvar DisabledInputUtils = _dereq_(14);\nvar DOMPropertyOperations = _dereq_(11);\nvar LinkedValueUtils = _dereq_(24);\nvar ReactDOMComponentTree = _dereq_(42);\nvar ReactUpdates = _dereq_(96);\n\nvar invariant = _dereq_(162);\nvar warning = _dereq_(171);\n\nvar didWarnValueLink = false;\nvar didWarnCheckedLink = false;\nvar didWarnValueDefaultValue = false;\nvar didWarnCheckedDefaultChecked = false;\nvar didWarnControlledToUncontrolled = false;\nvar didWarnUncontrolledToControlled = false;\n\nfunction forceUpdateIfMounted() {\n  if (this._rootNodeID) {\n    // DOM component is still mounted; update\n    ReactDOMInput.updateWrapper(this);\n  }\n}\n\nfunction isControlled(props) {\n  var usesChecked = props.type === 'checkbox' || props.type === 'radio';\n  return usesChecked ? props.checked !== undefined : props.value !== undefined;\n}\n\n/**\n * Implements an <input> host component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * @see http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */\nvar ReactDOMInput = {\n  getHostProps: function (inst, props) {\n    var value = LinkedValueUtils.getValue(props);\n    var checked = LinkedValueUtils.getChecked(props);\n\n    var hostProps = _assign({\n      // Make sure we set .type before any other properties (setting .value\n      // before .type means .value is lost in IE11 and below)\n      type: undefined,\n      // Make sure we set .step before .value (setting .value before .step\n      // means .value is rounded on mount, based upon step precision)\n      step: undefined,\n      // Make sure we set .min & .max before .value (to ensure proper order\n      // in corner cases such as min or max deriving from value, e.g. Issue #7170)\n      min: undefined,\n      max: undefined\n    }, DisabledInputUtils.getHostProps(inst, props), {\n      defaultChecked: undefined,\n      defaultValue: undefined,\n      value: value != null ? value : inst._wrapperState.initialValue,\n      checked: checked != null ? checked : inst._wrapperState.initialChecked,\n      onChange: inst._wrapperState.onChange\n    });\n\n    return hostProps;\n  },\n\n  mountWrapper: function (inst, props) {\n    if (\"development\" !== 'production') {\n      LinkedValueUtils.checkPropTypes('input', props, inst._currentElement._owner);\n\n      var owner = inst._currentElement._owner;\n\n      if (props.valueLink !== undefined && !didWarnValueLink) {\n        \"development\" !== 'production' ? warning(false, '`valueLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;\n        didWarnValueLink = true;\n      }\n      if (props.checkedLink !== undefined && !didWarnCheckedLink) {\n        \"development\" !== 'production' ? warning(false, '`checkedLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;\n        didWarnCheckedLink = true;\n      }\n      if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {\n        \"development\" !== 'production' ? warning(false, '%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n        didWarnCheckedDefaultChecked = true;\n      }\n      if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n        \"development\" !== 'production' ? warning(false, '%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n        didWarnValueDefaultValue = true;\n      }\n    }\n\n    var defaultValue = props.defaultValue;\n    inst._wrapperState = {\n      initialChecked: props.checked != null ? props.checked : props.defaultChecked,\n      initialValue: props.value != null ? props.value : defaultValue,\n      listeners: null,\n      onChange: _handleChange.bind(inst)\n    };\n\n    if (\"development\" !== 'production') {\n      inst._wrapperState.controlled = isControlled(props);\n    }\n  },\n\n  updateWrapper: function (inst) {\n    var props = inst._currentElement.props;\n\n    if (\"development\" !== 'production') {\n      var controlled = isControlled(props);\n      var owner = inst._currentElement._owner;\n\n      if (!inst._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) {\n        \"development\" !== 'production' ? warning(false, '%s is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n        didWarnUncontrolledToControlled = true;\n      }\n      if (inst._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) {\n        \"development\" !== 'production' ? warning(false, '%s is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n        didWarnControlledToUncontrolled = true;\n      }\n    }\n\n    // TODO: Shouldn't this be getChecked(props)?\n    var checked = props.checked;\n    if (checked != null) {\n      DOMPropertyOperations.setValueForProperty(ReactDOMComponentTree.getNodeFromInstance(inst), 'checked', checked || false);\n    }\n\n    var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n    var value = LinkedValueUtils.getValue(props);\n    if (value != null) {\n\n      // Cast `value` to a string to ensure the value is set correctly. While\n      // browsers typically do this as necessary, jsdom doesn't.\n      var newValue = '' + value;\n\n      // To avoid side effects (such as losing text selection), only set value if changed\n      if (newValue !== node.value) {\n        node.value = newValue;\n      }\n    } else {\n      if (props.value == null && props.defaultValue != null) {\n        node.defaultValue = '' + props.defaultValue;\n      }\n      if (props.checked == null && props.defaultChecked != null) {\n        node.defaultChecked = !!props.defaultChecked;\n      }\n    }\n  },\n\n  postMountWrapper: function (inst) {\n    var props = inst._currentElement.props;\n\n    // This is in postMount because we need access to the DOM node, which is not\n    // available until after the component has mounted.\n    var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n\n    // Detach value from defaultValue. We won't do anything if we're working on\n    // submit or reset inputs as those values & defaultValues are linked. They\n    // are not resetable nodes so this operation doesn't matter and actually\n    // removes browser-default values (eg \"Submit Query\") when no value is\n    // provided.\n\n    switch (props.type) {\n      case 'submit':\n      case 'reset':\n        break;\n      case 'color':\n      case 'date':\n      case 'datetime':\n      case 'datetime-local':\n      case 'month':\n      case 'time':\n      case 'week':\n        // This fixes the no-show issue on iOS Safari and Android Chrome:\n        // https://github.com/facebook/react/issues/7233\n        node.value = '';\n        node.value = node.defaultValue;\n        break;\n      default:\n        node.value = node.value;\n        break;\n    }\n\n    // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug\n    // this is needed to work around a chrome bug where setting defaultChecked\n    // will sometimes influence the value of checked (even after detachment).\n    // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416\n    // We need to temporarily unset name to avoid disrupting radio button groups.\n    var name = node.name;\n    if (name !== '') {\n      node.name = '';\n    }\n    node.defaultChecked = !node.defaultChecked;\n    node.defaultChecked = !node.defaultChecked;\n    if (name !== '') {\n      node.name = name;\n    }\n  }\n};\n\nfunction _handleChange(event) {\n  var props = this._currentElement.props;\n\n  var returnValue = LinkedValueUtils.executeOnChange(props, event);\n\n  // Here we use asap to wait until all updates have propagated, which\n  // is important when using controlled components within layers:\n  // https://github.com/facebook/react/issues/1698\n  ReactUpdates.asap(forceUpdateIfMounted, this);\n\n  var name = props.name;\n  if (props.type === 'radio' && name != null) {\n    var rootNode = ReactDOMComponentTree.getNodeFromInstance(this);\n    var queryRoot = rootNode;\n\n    while (queryRoot.parentNode) {\n      queryRoot = queryRoot.parentNode;\n    }\n\n    // If `rootNode.form` was non-null, then we could try `form.elements`,\n    // but that sometimes behaves strangely in IE8. We could also try using\n    // `form.getElementsByName`, but that will only return direct children\n    // and won't include inputs that use the HTML5 `form=` attribute. Since\n    // the input might not even be in a form, let's just use the global\n    // `querySelectorAll` to ensure we don't miss anything.\n    var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type=\"radio\"]');\n\n    for (var i = 0; i < group.length; i++) {\n      var otherNode = group[i];\n      if (otherNode === rootNode || otherNode.form !== rootNode.form) {\n        continue;\n      }\n      // This will throw if radio buttons rendered by different copies of React\n      // and the same name are rendered into the same form (same as #1939).\n      // That's probably okay; we don't support it just as we don't support\n      // mixing React radio buttons with non-React ones.\n      var otherInstance = ReactDOMComponentTree.getInstanceFromNode(otherNode);\n      !otherInstance ? \"development\" !== 'production' ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.') : _prodInvariant('90') : void 0;\n      // If this is a controlled radio button group, forcing the input that\n      // was previously checked to update will cause it to be come re-checked\n      // as appropriate.\n      ReactUpdates.asap(forceUpdateIfMounted, otherInstance);\n    }\n  }\n\n  return returnValue;\n}\n\nmodule.exports = ReactDOMInput;\n},{\"11\":11,\"14\":14,\"140\":140,\"162\":162,\"171\":171,\"172\":172,\"24\":24,\"42\":42,\"96\":96}],49:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMNullInputValuePropHook\n */\n\n'use strict';\n\nvar ReactComponentTreeHook = _dereq_(35);\n\nvar warning = _dereq_(171);\n\nvar didWarnValueNull = false;\n\nfunction handleElement(debugID, element) {\n  if (element == null) {\n    return;\n  }\n  if (element.type !== 'input' && element.type !== 'textarea' && element.type !== 'select') {\n    return;\n  }\n  if (element.props != null && element.props.value === null && !didWarnValueNull) {\n    \"development\" !== 'production' ? warning(false, '`value` prop on `%s` should not be null. ' + 'Consider using the empty string to clear the component or `undefined` ' + 'for uncontrolled components.%s', element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;\n\n    didWarnValueNull = true;\n  }\n}\n\nvar ReactDOMNullInputValuePropHook = {\n  onBeforeMountComponent: function (debugID, element) {\n    handleElement(debugID, element);\n  },\n  onBeforeUpdateComponent: function (debugID, element) {\n    handleElement(debugID, element);\n  }\n};\n\nmodule.exports = ReactDOMNullInputValuePropHook;\n},{\"171\":171,\"35\":35}],50:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMOption\n */\n\n'use strict';\n\nvar _assign = _dereq_(172);\n\nvar ReactChildren = _dereq_(29);\nvar ReactDOMComponentTree = _dereq_(42);\nvar ReactDOMSelect = _dereq_(51);\n\nvar warning = _dereq_(171);\nvar didWarnInvalidOptionChildren = false;\n\nfunction flattenChildren(children) {\n  var content = '';\n\n  // Flatten children and warn if they aren't strings or numbers;\n  // invalid types are ignored.\n  ReactChildren.forEach(children, function (child) {\n    if (child == null) {\n      return;\n    }\n    if (typeof child === 'string' || typeof child === 'number') {\n      content += child;\n    } else if (!didWarnInvalidOptionChildren) {\n      didWarnInvalidOptionChildren = true;\n      \"development\" !== 'production' ? warning(false, 'Only strings and numbers are supported as <option> children.') : void 0;\n    }\n  });\n\n  return content;\n}\n\n/**\n * Implements an <option> host component that warns when `selected` is set.\n */\nvar ReactDOMOption = {\n  mountWrapper: function (inst, props, hostParent) {\n    // TODO (yungsters): Remove support for `selected` in <option>.\n    if (\"development\" !== 'production') {\n      \"development\" !== 'production' ? warning(props.selected == null, 'Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.') : void 0;\n    }\n\n    // Look up whether this option is 'selected'\n    var selectValue = null;\n    if (hostParent != null) {\n      var selectParent = hostParent;\n\n      if (selectParent._tag === 'optgroup') {\n        selectParent = selectParent._hostParent;\n      }\n\n      if (selectParent != null && selectParent._tag === 'select') {\n        selectValue = ReactDOMSelect.getSelectValueContext(selectParent);\n      }\n    }\n\n    // If the value is null (e.g., no specified value or after initial mount)\n    // or missing (e.g., for <datalist>), we don't change props.selected\n    var selected = null;\n    if (selectValue != null) {\n      var value;\n      if (props.value != null) {\n        value = props.value + '';\n      } else {\n        value = flattenChildren(props.children);\n      }\n      selected = false;\n      if (Array.isArray(selectValue)) {\n        // multiple\n        for (var i = 0; i < selectValue.length; i++) {\n          if ('' + selectValue[i] === value) {\n            selected = true;\n            break;\n          }\n        }\n      } else {\n        selected = '' + selectValue === value;\n      }\n    }\n\n    inst._wrapperState = { selected: selected };\n  },\n\n  postMountWrapper: function (inst) {\n    // value=\"\" should make a value attribute (#6219)\n    var props = inst._currentElement.props;\n    if (props.value != null) {\n      var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n      node.setAttribute('value', props.value);\n    }\n  },\n\n  getHostProps: function (inst, props) {\n    var hostProps = _assign({ selected: undefined, children: undefined }, props);\n\n    // Read state only from initial mount because <select> updates value\n    // manually; we need the initial state only for server rendering\n    if (inst._wrapperState.selected != null) {\n      hostProps.selected = inst._wrapperState.selected;\n    }\n\n    var content = flattenChildren(props.children);\n\n    if (content) {\n      hostProps.children = content;\n    }\n\n    return hostProps;\n  }\n\n};\n\nmodule.exports = ReactDOMOption;\n},{\"171\":171,\"172\":172,\"29\":29,\"42\":42,\"51\":51}],51:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMSelect\n */\n\n'use strict';\n\nvar _assign = _dereq_(172);\n\nvar DisabledInputUtils = _dereq_(14);\nvar LinkedValueUtils = _dereq_(24);\nvar ReactDOMComponentTree = _dereq_(42);\nvar ReactUpdates = _dereq_(96);\n\nvar warning = _dereq_(171);\n\nvar didWarnValueLink = false;\nvar didWarnValueDefaultValue = false;\n\nfunction updateOptionsIfPendingUpdateAndMounted() {\n  if (this._rootNodeID && this._wrapperState.pendingUpdate) {\n    this._wrapperState.pendingUpdate = false;\n\n    var props = this._currentElement.props;\n    var value = LinkedValueUtils.getValue(props);\n\n    if (value != null) {\n      updateOptions(this, Boolean(props.multiple), value);\n    }\n  }\n}\n\nfunction getDeclarationErrorAddendum(owner) {\n  if (owner) {\n    var name = owner.getName();\n    if (name) {\n      return ' Check the render method of `' + name + '`.';\n    }\n  }\n  return '';\n}\n\nvar valuePropNames = ['value', 'defaultValue'];\n\n/**\n * Validation function for `value` and `defaultValue`.\n * @private\n */\nfunction checkSelectPropTypes(inst, props) {\n  var owner = inst._currentElement._owner;\n  LinkedValueUtils.checkPropTypes('select', props, owner);\n\n  if (props.valueLink !== undefined && !didWarnValueLink) {\n    \"development\" !== 'production' ? warning(false, '`valueLink` prop on `select` is deprecated; set `value` and `onChange` instead.') : void 0;\n    didWarnValueLink = true;\n  }\n\n  for (var i = 0; i < valuePropNames.length; i++) {\n    var propName = valuePropNames[i];\n    if (props[propName] == null) {\n      continue;\n    }\n    var isArray = Array.isArray(props[propName]);\n    if (props.multiple && !isArray) {\n      \"development\" !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;\n    } else if (!props.multiple && isArray) {\n      \"development\" !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;\n    }\n  }\n}\n\n/**\n * @param {ReactDOMComponent} inst\n * @param {boolean} multiple\n * @param {*} propValue A stringable (with `multiple`, a list of stringables).\n * @private\n */\nfunction updateOptions(inst, multiple, propValue) {\n  var selectedValue, i;\n  var options = ReactDOMComponentTree.getNodeFromInstance(inst).options;\n\n  if (multiple) {\n    selectedValue = {};\n    for (i = 0; i < propValue.length; i++) {\n      selectedValue['' + propValue[i]] = true;\n    }\n    for (i = 0; i < options.length; i++) {\n      var selected = selectedValue.hasOwnProperty(options[i].value);\n      if (options[i].selected !== selected) {\n        options[i].selected = selected;\n      }\n    }\n  } else {\n    // Do not set `select.value` as exact behavior isn't consistent across all\n    // browsers for all cases.\n    selectedValue = '' + propValue;\n    for (i = 0; i < options.length; i++) {\n      if (options[i].value === selectedValue) {\n        options[i].selected = true;\n        return;\n      }\n    }\n    if (options.length) {\n      options[0].selected = true;\n    }\n  }\n}\n\n/**\n * Implements a <select> host component that allows optionally setting the\n * props `value` and `defaultValue`. If `multiple` is false, the prop must be a\n * stringable. If `multiple` is true, the prop must be an array of stringables.\n *\n * If `value` is not supplied (or null/undefined), user actions that change the\n * selected option will trigger updates to the rendered options.\n *\n * If it is supplied (and not null/undefined), the rendered options will not\n * update in response to user actions. Instead, the `value` prop must change in\n * order for the rendered options to update.\n *\n * If `defaultValue` is provided, any options with the supplied values will be\n * selected.\n */\nvar ReactDOMSelect = {\n  getHostProps: function (inst, props) {\n    return _assign({}, DisabledInputUtils.getHostProps(inst, props), {\n      onChange: inst._wrapperState.onChange,\n      value: undefined\n    });\n  },\n\n  mountWrapper: function (inst, props) {\n    if (\"development\" !== 'production') {\n      checkSelectPropTypes(inst, props);\n    }\n\n    var value = LinkedValueUtils.getValue(props);\n    inst._wrapperState = {\n      pendingUpdate: false,\n      initialValue: value != null ? value : props.defaultValue,\n      listeners: null,\n      onChange: _handleChange.bind(inst),\n      wasMultiple: Boolean(props.multiple)\n    };\n\n    if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n      \"development\" !== 'production' ? warning(false, 'Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0;\n      didWarnValueDefaultValue = true;\n    }\n  },\n\n  getSelectValueContext: function (inst) {\n    // ReactDOMOption looks at this initial value so the initial generated\n    // markup has correct `selected` attributes\n    return inst._wrapperState.initialValue;\n  },\n\n  postUpdateWrapper: function (inst) {\n    var props = inst._currentElement.props;\n\n    // After the initial mount, we control selected-ness manually so don't pass\n    // this value down\n    inst._wrapperState.initialValue = undefined;\n\n    var wasMultiple = inst._wrapperState.wasMultiple;\n    inst._wrapperState.wasMultiple = Boolean(props.multiple);\n\n    var value = LinkedValueUtils.getValue(props);\n    if (value != null) {\n      inst._wrapperState.pendingUpdate = false;\n      updateOptions(inst, Boolean(props.multiple), value);\n    } else if (wasMultiple !== Boolean(props.multiple)) {\n      // For simplicity, reapply `defaultValue` if `multiple` is toggled.\n      if (props.defaultValue != null) {\n        updateOptions(inst, Boolean(props.multiple), props.defaultValue);\n      } else {\n        // Revert the select back to its default unselected state.\n        updateOptions(inst, Boolean(props.multiple), props.multiple ? [] : '');\n      }\n    }\n  }\n};\n\nfunction _handleChange(event) {\n  var props = this._currentElement.props;\n  var returnValue = LinkedValueUtils.executeOnChange(props, event);\n\n  if (this._rootNodeID) {\n    this._wrapperState.pendingUpdate = true;\n  }\n  ReactUpdates.asap(updateOptionsIfPendingUpdateAndMounted, this);\n  return returnValue;\n}\n\nmodule.exports = ReactDOMSelect;\n},{\"14\":14,\"171\":171,\"172\":172,\"24\":24,\"42\":42,\"96\":96}],52:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMSelection\n */\n\n'use strict';\n\nvar ExecutionEnvironment = _dereq_(148);\n\nvar getNodeForCharacterOffset = _dereq_(132);\nvar getTextContentAccessor = _dereq_(133);\n\n/**\n * While `isCollapsed` is available on the Selection object and `collapsed`\n * is available on the Range object, IE11 sometimes gets them wrong.\n * If the anchor/focus nodes and offsets are the same, the range is collapsed.\n */\nfunction isCollapsed(anchorNode, anchorOffset, focusNode, focusOffset) {\n  return anchorNode === focusNode && anchorOffset === focusOffset;\n}\n\n/**\n * Get the appropriate anchor and focus node/offset pairs for IE.\n *\n * The catch here is that IE's selection API doesn't provide information\n * about whether the selection is forward or backward, so we have to\n * behave as though it's always forward.\n *\n * IE text differs from modern selection in that it behaves as though\n * block elements end with a new line. This means character offsets will\n * differ between the two APIs.\n *\n * @param {DOMElement} node\n * @return {object}\n */\nfunction getIEOffsets(node) {\n  var selection = document.selection;\n  var selectedRange = selection.createRange();\n  var selectedLength = selectedRange.text.length;\n\n  // Duplicate selection so we can move range without breaking user selection.\n  var fromStart = selectedRange.duplicate();\n  fromStart.moveToElementText(node);\n  fromStart.setEndPoint('EndToStart', selectedRange);\n\n  var startOffset = fromStart.text.length;\n  var endOffset = startOffset + selectedLength;\n\n  return {\n    start: startOffset,\n    end: endOffset\n  };\n}\n\n/**\n * @param {DOMElement} node\n * @return {?object}\n */\nfunction getModernOffsets(node) {\n  var selection = window.getSelection && window.getSelection();\n\n  if (!selection || selection.rangeCount === 0) {\n    return null;\n  }\n\n  var anchorNode = selection.anchorNode;\n  var anchorOffset = selection.anchorOffset;\n  var focusNode = selection.focusNode;\n  var focusOffset = selection.focusOffset;\n\n  var currentRange = selection.getRangeAt(0);\n\n  // In Firefox, range.startContainer and range.endContainer can be \"anonymous\n  // divs\", e.g. the up/down buttons on an <input type=\"number\">. Anonymous\n  // divs do not seem to expose properties, triggering a \"Permission denied\n  // error\" if any of its properties are accessed. The only seemingly possible\n  // way to avoid erroring is to access a property that typically works for\n  // non-anonymous divs and catch any error that may otherwise arise. See\n  // https://bugzilla.mozilla.org/show_bug.cgi?id=208427\n  try {\n    /* eslint-disable no-unused-expressions */\n    currentRange.startContainer.nodeType;\n    currentRange.endContainer.nodeType;\n    /* eslint-enable no-unused-expressions */\n  } catch (e) {\n    return null;\n  }\n\n  // If the node and offset values are the same, the selection is collapsed.\n  // `Selection.isCollapsed` is available natively, but IE sometimes gets\n  // this value wrong.\n  var isSelectionCollapsed = isCollapsed(selection.anchorNode, selection.anchorOffset, selection.focusNode, selection.focusOffset);\n\n  var rangeLength = isSelectionCollapsed ? 0 : currentRange.toString().length;\n\n  var tempRange = currentRange.cloneRange();\n  tempRange.selectNodeContents(node);\n  tempRange.setEnd(currentRange.startContainer, currentRange.startOffset);\n\n  var isTempRangeCollapsed = isCollapsed(tempRange.startContainer, tempRange.startOffset, tempRange.endContainer, tempRange.endOffset);\n\n  var start = isTempRangeCollapsed ? 0 : tempRange.toString().length;\n  var end = start + rangeLength;\n\n  // Detect whether the selection is backward.\n  var detectionRange = document.createRange();\n  detectionRange.setStart(anchorNode, anchorOffset);\n  detectionRange.setEnd(focusNode, focusOffset);\n  var isBackward = detectionRange.collapsed;\n\n  return {\n    start: isBackward ? end : start,\n    end: isBackward ? start : end\n  };\n}\n\n/**\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\nfunction setIEOffsets(node, offsets) {\n  var range = document.selection.createRange().duplicate();\n  var start, end;\n\n  if (offsets.end === undefined) {\n    start = offsets.start;\n    end = start;\n  } else if (offsets.start > offsets.end) {\n    start = offsets.end;\n    end = offsets.start;\n  } else {\n    start = offsets.start;\n    end = offsets.end;\n  }\n\n  range.moveToElementText(node);\n  range.moveStart('character', start);\n  range.setEndPoint('EndToStart', range);\n  range.moveEnd('character', end - start);\n  range.select();\n}\n\n/**\n * In modern non-IE browsers, we can support both forward and backward\n * selections.\n *\n * Note: IE10+ supports the Selection object, but it does not support\n * the `extend` method, which means that even in modern IE, it's not possible\n * to programmatically create a backward selection. Thus, for all IE\n * versions, we use the old IE API to create our selections.\n *\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\nfunction setModernOffsets(node, offsets) {\n  if (!window.getSelection) {\n    return;\n  }\n\n  var selection = window.getSelection();\n  var length = node[getTextContentAccessor()].length;\n  var start = Math.min(offsets.start, length);\n  var end = offsets.end === undefined ? start : Math.min(offsets.end, length);\n\n  // IE 11 uses modern selection, but doesn't support the extend method.\n  // Flip backward selections, so we can set with a single range.\n  if (!selection.extend && start > end) {\n    var temp = end;\n    end = start;\n    start = temp;\n  }\n\n  var startMarker = getNodeForCharacterOffset(node, start);\n  var endMarker = getNodeForCharacterOffset(node, end);\n\n  if (startMarker && endMarker) {\n    var range = document.createRange();\n    range.setStart(startMarker.node, startMarker.offset);\n    selection.removeAllRanges();\n\n    if (start > end) {\n      selection.addRange(range);\n      selection.extend(endMarker.node, endMarker.offset);\n    } else {\n      range.setEnd(endMarker.node, endMarker.offset);\n      selection.addRange(range);\n    }\n  }\n}\n\nvar useIEOffsets = ExecutionEnvironment.canUseDOM && 'selection' in document && !('getSelection' in window);\n\nvar ReactDOMSelection = {\n  /**\n   * @param {DOMElement} node\n   */\n  getOffsets: useIEOffsets ? getIEOffsets : getModernOffsets,\n\n  /**\n   * @param {DOMElement|DOMTextNode} node\n   * @param {object} offsets\n   */\n  setOffsets: useIEOffsets ? setIEOffsets : setModernOffsets\n};\n\nmodule.exports = ReactDOMSelection;\n},{\"132\":132,\"133\":133,\"148\":148}],53:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMServer\n */\n\n'use strict';\n\nvar ReactDefaultInjection = _dereq_(60);\nvar ReactServerRendering = _dereq_(91);\nvar ReactVersion = _dereq_(97);\n\nReactDefaultInjection.inject();\n\nvar ReactDOMServer = {\n  renderToString: ReactServerRendering.renderToString,\n  renderToStaticMarkup: ReactServerRendering.renderToStaticMarkup,\n  version: ReactVersion\n};\n\nmodule.exports = ReactDOMServer;\n},{\"60\":60,\"91\":91,\"97\":97}],54:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMTextComponent\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140),\n    _assign = _dereq_(172);\n\nvar DOMChildrenOperations = _dereq_(7);\nvar DOMLazyTree = _dereq_(8);\nvar ReactDOMComponentTree = _dereq_(42);\n\nvar escapeTextContentForBrowser = _dereq_(122);\nvar invariant = _dereq_(162);\nvar validateDOMNesting = _dereq_(146);\n\n/**\n * Text nodes violate a couple assumptions that React makes about components:\n *\n *  - When mounting text into the DOM, adjacent text nodes are merged.\n *  - Text nodes cannot be assigned a React root ID.\n *\n * This component is used to wrap strings between comment nodes so that they\n * can undergo the same reconciliation that is applied to elements.\n *\n * TODO: Investigate representing React components in the DOM with text nodes.\n *\n * @class ReactDOMTextComponent\n * @extends ReactComponent\n * @internal\n */\nvar ReactDOMTextComponent = function (text) {\n  // TODO: This is really a ReactText (ReactNode), not a ReactElement\n  this._currentElement = text;\n  this._stringText = '' + text;\n  // ReactDOMComponentTree uses these:\n  this._hostNode = null;\n  this._hostParent = null;\n\n  // Properties\n  this._domID = 0;\n  this._mountIndex = 0;\n  this._closingComment = null;\n  this._commentNodes = null;\n};\n\n_assign(ReactDOMTextComponent.prototype, {\n\n  /**\n   * Creates the markup for this text node. This node is not intended to have\n   * any features besides containing text content.\n   *\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @return {string} Markup for this text node.\n   * @internal\n   */\n  mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n    if (\"development\" !== 'production') {\n      var parentInfo;\n      if (hostParent != null) {\n        parentInfo = hostParent._ancestorInfo;\n      } else if (hostContainerInfo != null) {\n        parentInfo = hostContainerInfo._ancestorInfo;\n      }\n      if (parentInfo) {\n        // parentInfo should always be present except for the top-level\n        // component when server rendering\n        validateDOMNesting('#text', this, parentInfo);\n      }\n    }\n\n    var domID = hostContainerInfo._idCounter++;\n    var openingValue = ' react-text: ' + domID + ' ';\n    var closingValue = ' /react-text ';\n    this._domID = domID;\n    this._hostParent = hostParent;\n    if (transaction.useCreateElement) {\n      var ownerDocument = hostContainerInfo._ownerDocument;\n      var openingComment = ownerDocument.createComment(openingValue);\n      var closingComment = ownerDocument.createComment(closingValue);\n      var lazyTree = DOMLazyTree(ownerDocument.createDocumentFragment());\n      DOMLazyTree.queueChild(lazyTree, DOMLazyTree(openingComment));\n      if (this._stringText) {\n        DOMLazyTree.queueChild(lazyTree, DOMLazyTree(ownerDocument.createTextNode(this._stringText)));\n      }\n      DOMLazyTree.queueChild(lazyTree, DOMLazyTree(closingComment));\n      ReactDOMComponentTree.precacheNode(this, openingComment);\n      this._closingComment = closingComment;\n      return lazyTree;\n    } else {\n      var escapedText = escapeTextContentForBrowser(this._stringText);\n\n      if (transaction.renderToStaticMarkup) {\n        // Normally we'd wrap this between comment nodes for the reasons stated\n        // above, but since this is a situation where React won't take over\n        // (static pages), we can simply return the text as it is.\n        return escapedText;\n      }\n\n      return '<!--' + openingValue + '-->' + escapedText + '<!--' + closingValue + '-->';\n    }\n  },\n\n  /**\n   * Updates this component by updating the text content.\n   *\n   * @param {ReactText} nextText The next text content\n   * @param {ReactReconcileTransaction} transaction\n   * @internal\n   */\n  receiveComponent: function (nextText, transaction) {\n    if (nextText !== this._currentElement) {\n      this._currentElement = nextText;\n      var nextStringText = '' + nextText;\n      if (nextStringText !== this._stringText) {\n        // TODO: Save this as pending props and use performUpdateIfNecessary\n        // and/or updateComponent to do the actual update for consistency with\n        // other component types?\n        this._stringText = nextStringText;\n        var commentNodes = this.getHostNode();\n        DOMChildrenOperations.replaceDelimitedText(commentNodes[0], commentNodes[1], nextStringText);\n      }\n    }\n  },\n\n  getHostNode: function () {\n    var hostNode = this._commentNodes;\n    if (hostNode) {\n      return hostNode;\n    }\n    if (!this._closingComment) {\n      var openingComment = ReactDOMComponentTree.getNodeFromInstance(this);\n      var node = openingComment.nextSibling;\n      while (true) {\n        !(node != null) ? \"development\" !== 'production' ? invariant(false, 'Missing closing comment for text component %s', this._domID) : _prodInvariant('67', this._domID) : void 0;\n        if (node.nodeType === 8 && node.nodeValue === ' /react-text ') {\n          this._closingComment = node;\n          break;\n        }\n        node = node.nextSibling;\n      }\n    }\n    hostNode = [this._hostNode, this._closingComment];\n    this._commentNodes = hostNode;\n    return hostNode;\n  },\n\n  unmountComponent: function () {\n    this._closingComment = null;\n    this._commentNodes = null;\n    ReactDOMComponentTree.uncacheNode(this);\n  }\n\n});\n\nmodule.exports = ReactDOMTextComponent;\n},{\"122\":122,\"140\":140,\"146\":146,\"162\":162,\"172\":172,\"42\":42,\"7\":7,\"8\":8}],55:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMTextarea\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140),\n    _assign = _dereq_(172);\n\nvar DisabledInputUtils = _dereq_(14);\nvar LinkedValueUtils = _dereq_(24);\nvar ReactDOMComponentTree = _dereq_(42);\nvar ReactUpdates = _dereq_(96);\n\nvar invariant = _dereq_(162);\nvar warning = _dereq_(171);\n\nvar didWarnValueLink = false;\nvar didWarnValDefaultVal = false;\n\nfunction forceUpdateIfMounted() {\n  if (this._rootNodeID) {\n    // DOM component is still mounted; update\n    ReactDOMTextarea.updateWrapper(this);\n  }\n}\n\n/**\n * Implements a <textarea> host component that allows setting `value`, and\n * `defaultValue`. This differs from the traditional DOM API because value is\n * usually set as PCDATA children.\n *\n * If `value` is not supplied (or null/undefined), user actions that affect the\n * value will trigger updates to the element.\n *\n * If `value` is supplied (and not null/undefined), the rendered element will\n * not trigger updates to the element. Instead, the `value` prop must change in\n * order for the rendered element to be updated.\n *\n * The rendered element will be initialized with an empty value, the prop\n * `defaultValue` if specified, or the children content (deprecated).\n */\nvar ReactDOMTextarea = {\n  getHostProps: function (inst, props) {\n    !(props.dangerouslySetInnerHTML == null) ? \"development\" !== 'production' ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : _prodInvariant('91') : void 0;\n\n    // Always set children to the same thing. In IE9, the selection range will\n    // get reset if `textContent` is mutated.  We could add a check in setTextContent\n    // to only set the value if/when the value differs from the node value (which would\n    // completely solve this IE9 bug), but Sebastian+Ben seemed to like this solution.\n    // The value can be a boolean or object so that's why it's forced to be a string.\n    var hostProps = _assign({}, DisabledInputUtils.getHostProps(inst, props), {\n      value: undefined,\n      defaultValue: undefined,\n      children: '' + inst._wrapperState.initialValue,\n      onChange: inst._wrapperState.onChange\n    });\n\n    return hostProps;\n  },\n\n  mountWrapper: function (inst, props) {\n    if (\"development\" !== 'production') {\n      LinkedValueUtils.checkPropTypes('textarea', props, inst._currentElement._owner);\n      if (props.valueLink !== undefined && !didWarnValueLink) {\n        \"development\" !== 'production' ? warning(false, '`valueLink` prop on `textarea` is deprecated; set `value` and `onChange` instead.') : void 0;\n        didWarnValueLink = true;\n      }\n      if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) {\n        \"development\" !== 'production' ? warning(false, 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0;\n        didWarnValDefaultVal = true;\n      }\n    }\n\n    var value = LinkedValueUtils.getValue(props);\n    var initialValue = value;\n\n    // Only bother fetching default value if we're going to use it\n    if (value == null) {\n      var defaultValue = props.defaultValue;\n      // TODO (yungsters): Remove support for children content in <textarea>.\n      var children = props.children;\n      if (children != null) {\n        if (\"development\" !== 'production') {\n          \"development\" !== 'production' ? warning(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.') : void 0;\n        }\n        !(defaultValue == null) ? \"development\" !== 'production' ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : _prodInvariant('92') : void 0;\n        if (Array.isArray(children)) {\n          !(children.length <= 1) ? \"development\" !== 'production' ? invariant(false, '<textarea> can only have at most one child.') : _prodInvariant('93') : void 0;\n          children = children[0];\n        }\n\n        defaultValue = '' + children;\n      }\n      if (defaultValue == null) {\n        defaultValue = '';\n      }\n      initialValue = defaultValue;\n    }\n\n    inst._wrapperState = {\n      initialValue: '' + initialValue,\n      listeners: null,\n      onChange: _handleChange.bind(inst)\n    };\n  },\n\n  updateWrapper: function (inst) {\n    var props = inst._currentElement.props;\n\n    var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n    var value = LinkedValueUtils.getValue(props);\n    if (value != null) {\n      // Cast `value` to a string to ensure the value is set correctly. While\n      // browsers typically do this as necessary, jsdom doesn't.\n      var newValue = '' + value;\n\n      // To avoid side effects (such as losing text selection), only set value if changed\n      if (newValue !== node.value) {\n        node.value = newValue;\n      }\n      if (props.defaultValue == null) {\n        node.defaultValue = newValue;\n      }\n    }\n    if (props.defaultValue != null) {\n      node.defaultValue = props.defaultValue;\n    }\n  },\n\n  postMountWrapper: function (inst) {\n    // This is in postMount because we need access to the DOM node, which is not\n    // available until after the component has mounted.\n    var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n\n    // Warning: node.value may be the empty string at this point (IE11) if placeholder is set.\n    node.value = node.textContent; // Detach value from defaultValue\n  }\n};\n\nfunction _handleChange(event) {\n  var props = this._currentElement.props;\n  var returnValue = LinkedValueUtils.executeOnChange(props, event);\n  ReactUpdates.asap(forceUpdateIfMounted, this);\n  return returnValue;\n}\n\nmodule.exports = ReactDOMTextarea;\n},{\"14\":14,\"140\":140,\"162\":162,\"171\":171,\"172\":172,\"24\":24,\"42\":42,\"96\":96}],56:[function(_dereq_,module,exports){\n/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMTreeTraversal\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar invariant = _dereq_(162);\n\n/**\n * Return the lowest common ancestor of A and B, or null if they are in\n * different trees.\n */\nfunction getLowestCommonAncestor(instA, instB) {\n  !('_hostNode' in instA) ? \"development\" !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n  !('_hostNode' in instB) ? \"development\" !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n\n  var depthA = 0;\n  for (var tempA = instA; tempA; tempA = tempA._hostParent) {\n    depthA++;\n  }\n  var depthB = 0;\n  for (var tempB = instB; tempB; tempB = tempB._hostParent) {\n    depthB++;\n  }\n\n  // If A is deeper, crawl up.\n  while (depthA - depthB > 0) {\n    instA = instA._hostParent;\n    depthA--;\n  }\n\n  // If B is deeper, crawl up.\n  while (depthB - depthA > 0) {\n    instB = instB._hostParent;\n    depthB--;\n  }\n\n  // Walk in lockstep until we find a match.\n  var depth = depthA;\n  while (depth--) {\n    if (instA === instB) {\n      return instA;\n    }\n    instA = instA._hostParent;\n    instB = instB._hostParent;\n  }\n  return null;\n}\n\n/**\n * Return if A is an ancestor of B.\n */\nfunction isAncestor(instA, instB) {\n  !('_hostNode' in instA) ? \"development\" !== 'production' ? invariant(false, 'isAncestor: Invalid argument.') : _prodInvariant('35') : void 0;\n  !('_hostNode' in instB) ? \"development\" !== 'production' ? invariant(false, 'isAncestor: Invalid argument.') : _prodInvariant('35') : void 0;\n\n  while (instB) {\n    if (instB === instA) {\n      return true;\n    }\n    instB = instB._hostParent;\n  }\n  return false;\n}\n\n/**\n * Return the parent instance of the passed-in instance.\n */\nfunction getParentInstance(inst) {\n  !('_hostNode' in inst) ? \"development\" !== 'production' ? invariant(false, 'getParentInstance: Invalid argument.') : _prodInvariant('36') : void 0;\n\n  return inst._hostParent;\n}\n\n/**\n * Simulates the traversal of a two-phase, capture/bubble event dispatch.\n */\nfunction traverseTwoPhase(inst, fn, arg) {\n  var path = [];\n  while (inst) {\n    path.push(inst);\n    inst = inst._hostParent;\n  }\n  var i;\n  for (i = path.length; i-- > 0;) {\n    fn(path[i], false, arg);\n  }\n  for (i = 0; i < path.length; i++) {\n    fn(path[i], true, arg);\n  }\n}\n\n/**\n * Traverses the ID hierarchy and invokes the supplied `cb` on any IDs that\n * should would receive a `mouseEnter` or `mouseLeave` event.\n *\n * Does not invoke the callback on the nearest common ancestor because nothing\n * \"entered\" or \"left\" that element.\n */\nfunction traverseEnterLeave(from, to, fn, argFrom, argTo) {\n  var common = from && to ? getLowestCommonAncestor(from, to) : null;\n  var pathFrom = [];\n  while (from && from !== common) {\n    pathFrom.push(from);\n    from = from._hostParent;\n  }\n  var pathTo = [];\n  while (to && to !== common) {\n    pathTo.push(to);\n    to = to._hostParent;\n  }\n  var i;\n  for (i = 0; i < pathFrom.length; i++) {\n    fn(pathFrom[i], true, argFrom);\n  }\n  for (i = pathTo.length; i-- > 0;) {\n    fn(pathTo[i], false, argTo);\n  }\n}\n\nmodule.exports = {\n  isAncestor: isAncestor,\n  getLowestCommonAncestor: getLowestCommonAncestor,\n  getParentInstance: getParentInstance,\n  traverseTwoPhase: traverseTwoPhase,\n  traverseEnterLeave: traverseEnterLeave\n};\n},{\"140\":140,\"162\":162}],57:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMUnknownPropertyHook\n */\n\n'use strict';\n\nvar DOMProperty = _dereq_(10);\nvar EventPluginRegistry = _dereq_(18);\nvar ReactComponentTreeHook = _dereq_(35);\n\nvar warning = _dereq_(171);\n\nif (\"development\" !== 'production') {\n  var reactProps = {\n    children: true,\n    dangerouslySetInnerHTML: true,\n    key: true,\n    ref: true,\n\n    autoFocus: true,\n    defaultValue: true,\n    valueLink: true,\n    defaultChecked: true,\n    checkedLink: true,\n    innerHTML: true,\n    suppressContentEditableWarning: true,\n    onFocusIn: true,\n    onFocusOut: true\n  };\n  var warnedProperties = {};\n\n  var validateProperty = function (tagName, name, debugID) {\n    if (DOMProperty.properties.hasOwnProperty(name) || DOMProperty.isCustomAttribute(name)) {\n      return true;\n    }\n    if (reactProps.hasOwnProperty(name) && reactProps[name] || warnedProperties.hasOwnProperty(name) && warnedProperties[name]) {\n      return true;\n    }\n    if (EventPluginRegistry.registrationNameModules.hasOwnProperty(name)) {\n      return true;\n    }\n    warnedProperties[name] = true;\n    var lowerCasedName = name.toLowerCase();\n\n    // data-* attributes should be lowercase; suggest the lowercase version\n    var standardName = DOMProperty.isCustomAttribute(lowerCasedName) ? lowerCasedName : DOMProperty.getPossibleStandardName.hasOwnProperty(lowerCasedName) ? DOMProperty.getPossibleStandardName[lowerCasedName] : null;\n\n    var registrationName = EventPluginRegistry.possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? EventPluginRegistry.possibleRegistrationNames[lowerCasedName] : null;\n\n    if (standardName != null) {\n      \"development\" !== 'production' ? warning(false, 'Unknown DOM property %s. Did you mean %s?%s', name, standardName, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;\n      return true;\n    } else if (registrationName != null) {\n      \"development\" !== 'production' ? warning(false, 'Unknown event handler property %s. Did you mean `%s`?%s', name, registrationName, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;\n      return true;\n    } else {\n      // We were unable to guess which prop the user intended.\n      // It is likely that the user was just blindly spreading/forwarding props\n      // Components should be careful to only render valid props/attributes.\n      // Warning will be invoked in warnUnknownProperties to allow grouping.\n      return false;\n    }\n  };\n}\n\nvar warnUnknownProperties = function (debugID, element) {\n  var unknownProps = [];\n  for (var key in element.props) {\n    var isValid = validateProperty(element.type, key, debugID);\n    if (!isValid) {\n      unknownProps.push(key);\n    }\n  }\n\n  var unknownPropString = unknownProps.map(function (prop) {\n    return '`' + prop + '`';\n  }).join(', ');\n\n  if (unknownProps.length === 1) {\n    \"development\" !== 'production' ? warning(false, 'Unknown prop %s on <%s> tag. Remove this prop from the element. ' + 'For details, see https://fb.me/react-unknown-prop%s', unknownPropString, element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;\n  } else if (unknownProps.length > 1) {\n    \"development\" !== 'production' ? warning(false, 'Unknown props %s on <%s> tag. Remove these props from the element. ' + 'For details, see https://fb.me/react-unknown-prop%s', unknownPropString, element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;\n  }\n};\n\nfunction handleElement(debugID, element) {\n  if (element == null || typeof element.type !== 'string') {\n    return;\n  }\n  if (element.type.indexOf('-') >= 0 || element.props.is) {\n    return;\n  }\n  warnUnknownProperties(debugID, element);\n}\n\nvar ReactDOMUnknownPropertyHook = {\n  onBeforeMountComponent: function (debugID, element) {\n    handleElement(debugID, element);\n  },\n  onBeforeUpdateComponent: function (debugID, element) {\n    handleElement(debugID, element);\n  }\n};\n\nmodule.exports = ReactDOMUnknownPropertyHook;\n},{\"10\":10,\"171\":171,\"18\":18,\"35\":35}],58:[function(_dereq_,module,exports){\n/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDebugTool\n */\n\n'use strict';\n\nvar ReactInvalidSetStateWarningHook = _dereq_(74);\nvar ReactHostOperationHistoryHook = _dereq_(69);\nvar ReactComponentTreeHook = _dereq_(35);\nvar ReactChildrenMutationWarningHook = _dereq_(30);\nvar ExecutionEnvironment = _dereq_(148);\n\nvar performanceNow = _dereq_(169);\nvar warning = _dereq_(171);\n\nvar hooks = [];\nvar didHookThrowForEvent = {};\n\nfunction callHook(event, fn, context, arg1, arg2, arg3, arg4, arg5) {\n  try {\n    fn.call(context, arg1, arg2, arg3, arg4, arg5);\n  } catch (e) {\n    \"development\" !== 'production' ? warning(didHookThrowForEvent[event], 'Exception thrown by hook while handling %s: %s', event, e + '\\n' + e.stack) : void 0;\n    didHookThrowForEvent[event] = true;\n  }\n}\n\nfunction emitEvent(event, arg1, arg2, arg3, arg4, arg5) {\n  for (var i = 0; i < hooks.length; i++) {\n    var hook = hooks[i];\n    var fn = hook[event];\n    if (fn) {\n      callHook(event, fn, hook, arg1, arg2, arg3, arg4, arg5);\n    }\n  }\n}\n\nvar isProfiling = false;\nvar flushHistory = [];\nvar lifeCycleTimerStack = [];\nvar currentFlushNesting = 0;\nvar currentFlushMeasurements = null;\nvar currentFlushStartTime = null;\nvar currentTimerDebugID = null;\nvar currentTimerStartTime = null;\nvar currentTimerNestedFlushDuration = null;\nvar currentTimerType = null;\n\nvar lifeCycleTimerHasWarned = false;\n\nfunction clearHistory() {\n  ReactComponentTreeHook.purgeUnmountedComponents();\n  ReactHostOperationHistoryHook.clearHistory();\n}\n\nfunction getTreeSnapshot(registeredIDs) {\n  return registeredIDs.reduce(function (tree, id) {\n    var ownerID = ReactComponentTreeHook.getOwnerID(id);\n    var parentID = ReactComponentTreeHook.getParentID(id);\n    tree[id] = {\n      displayName: ReactComponentTreeHook.getDisplayName(id),\n      text: ReactComponentTreeHook.getText(id),\n      updateCount: ReactComponentTreeHook.getUpdateCount(id),\n      childIDs: ReactComponentTreeHook.getChildIDs(id),\n      // Text nodes don't have owners but this is close enough.\n      ownerID: ownerID || ReactComponentTreeHook.getOwnerID(parentID),\n      parentID: parentID\n    };\n    return tree;\n  }, {});\n}\n\nfunction resetMeasurements() {\n  var previousStartTime = currentFlushStartTime;\n  var previousMeasurements = currentFlushMeasurements || [];\n  var previousOperations = ReactHostOperationHistoryHook.getHistory();\n\n  if (currentFlushNesting === 0) {\n    currentFlushStartTime = null;\n    currentFlushMeasurements = null;\n    clearHistory();\n    return;\n  }\n\n  if (previousMeasurements.length || previousOperations.length) {\n    var registeredIDs = ReactComponentTreeHook.getRegisteredIDs();\n    flushHistory.push({\n      duration: performanceNow() - previousStartTime,\n      measurements: previousMeasurements || [],\n      operations: previousOperations || [],\n      treeSnapshot: getTreeSnapshot(registeredIDs)\n    });\n  }\n\n  clearHistory();\n  currentFlushStartTime = performanceNow();\n  currentFlushMeasurements = [];\n}\n\nfunction checkDebugID(debugID) {\n  var allowRoot = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];\n\n  if (allowRoot && debugID === 0) {\n    return;\n  }\n  if (!debugID) {\n    \"development\" !== 'production' ? warning(false, 'ReactDebugTool: debugID may not be empty.') : void 0;\n  }\n}\n\nfunction beginLifeCycleTimer(debugID, timerType) {\n  if (currentFlushNesting === 0) {\n    return;\n  }\n  if (currentTimerType && !lifeCycleTimerHasWarned) {\n    \"development\" !== 'production' ? warning(false, 'There is an internal error in the React performance measurement code. ' + 'Did not expect %s timer to start while %s timer is still in ' + 'progress for %s instance.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another') : void 0;\n    lifeCycleTimerHasWarned = true;\n  }\n  currentTimerStartTime = performanceNow();\n  currentTimerNestedFlushDuration = 0;\n  currentTimerDebugID = debugID;\n  currentTimerType = timerType;\n}\n\nfunction endLifeCycleTimer(debugID, timerType) {\n  if (currentFlushNesting === 0) {\n    return;\n  }\n  if (currentTimerType !== timerType && !lifeCycleTimerHasWarned) {\n    \"development\" !== 'production' ? warning(false, 'There is an internal error in the React performance measurement code. ' + 'We did not expect %s timer to stop while %s timer is still in ' + 'progress for %s instance. Please report this as a bug in React.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another') : void 0;\n    lifeCycleTimerHasWarned = true;\n  }\n  if (isProfiling) {\n    currentFlushMeasurements.push({\n      timerType: timerType,\n      instanceID: debugID,\n      duration: performanceNow() - currentTimerStartTime - currentTimerNestedFlushDuration\n    });\n  }\n  currentTimerStartTime = null;\n  currentTimerNestedFlushDuration = null;\n  currentTimerDebugID = null;\n  currentTimerType = null;\n}\n\nfunction pauseCurrentLifeCycleTimer() {\n  var currentTimer = {\n    startTime: currentTimerStartTime,\n    nestedFlushStartTime: performanceNow(),\n    debugID: currentTimerDebugID,\n    timerType: currentTimerType\n  };\n  lifeCycleTimerStack.push(currentTimer);\n  currentTimerStartTime = null;\n  currentTimerNestedFlushDuration = null;\n  currentTimerDebugID = null;\n  currentTimerType = null;\n}\n\nfunction resumeCurrentLifeCycleTimer() {\n  var _lifeCycleTimerStack$ = lifeCycleTimerStack.pop();\n\n  var startTime = _lifeCycleTimerStack$.startTime;\n  var nestedFlushStartTime = _lifeCycleTimerStack$.nestedFlushStartTime;\n  var debugID = _lifeCycleTimerStack$.debugID;\n  var timerType = _lifeCycleTimerStack$.timerType;\n\n  var nestedFlushDuration = performanceNow() - nestedFlushStartTime;\n  currentTimerStartTime = startTime;\n  currentTimerNestedFlushDuration += nestedFlushDuration;\n  currentTimerDebugID = debugID;\n  currentTimerType = timerType;\n}\n\nvar ReactDebugTool = {\n  addHook: function (hook) {\n    hooks.push(hook);\n  },\n  removeHook: function (hook) {\n    for (var i = 0; i < hooks.length; i++) {\n      if (hooks[i] === hook) {\n        hooks.splice(i, 1);\n        i--;\n      }\n    }\n  },\n  isProfiling: function () {\n    return isProfiling;\n  },\n  beginProfiling: function () {\n    if (isProfiling) {\n      return;\n    }\n\n    isProfiling = true;\n    flushHistory.length = 0;\n    resetMeasurements();\n    ReactDebugTool.addHook(ReactHostOperationHistoryHook);\n  },\n  endProfiling: function () {\n    if (!isProfiling) {\n      return;\n    }\n\n    isProfiling = false;\n    resetMeasurements();\n    ReactDebugTool.removeHook(ReactHostOperationHistoryHook);\n  },\n  getFlushHistory: function () {\n    return flushHistory;\n  },\n  onBeginFlush: function () {\n    currentFlushNesting++;\n    resetMeasurements();\n    pauseCurrentLifeCycleTimer();\n    emitEvent('onBeginFlush');\n  },\n  onEndFlush: function () {\n    resetMeasurements();\n    currentFlushNesting--;\n    resumeCurrentLifeCycleTimer();\n    emitEvent('onEndFlush');\n  },\n  onBeginLifeCycleTimer: function (debugID, timerType) {\n    checkDebugID(debugID);\n    emitEvent('onBeginLifeCycleTimer', debugID, timerType);\n    beginLifeCycleTimer(debugID, timerType);\n  },\n  onEndLifeCycleTimer: function (debugID, timerType) {\n    checkDebugID(debugID);\n    endLifeCycleTimer(debugID, timerType);\n    emitEvent('onEndLifeCycleTimer', debugID, timerType);\n  },\n  onError: function (debugID) {\n    if (currentTimerDebugID != null) {\n      endLifeCycleTimer(currentTimerDebugID, currentTimerType);\n    }\n    emitEvent('onError', debugID);\n  },\n  onBeginProcessingChildContext: function () {\n    emitEvent('onBeginProcessingChildContext');\n  },\n  onEndProcessingChildContext: function () {\n    emitEvent('onEndProcessingChildContext');\n  },\n  onHostOperation: function (debugID, type, payload) {\n    checkDebugID(debugID);\n    emitEvent('onHostOperation', debugID, type, payload);\n  },\n  onSetState: function () {\n    emitEvent('onSetState');\n  },\n  onSetChildren: function (debugID, childDebugIDs) {\n    checkDebugID(debugID);\n    childDebugIDs.forEach(checkDebugID);\n    emitEvent('onSetChildren', debugID, childDebugIDs);\n  },\n  onBeforeMountComponent: function (debugID, element, parentDebugID) {\n    checkDebugID(debugID);\n    checkDebugID(parentDebugID, true);\n    emitEvent('onBeforeMountComponent', debugID, element, parentDebugID);\n  },\n  onMountComponent: function (debugID) {\n    checkDebugID(debugID);\n    emitEvent('onMountComponent', debugID);\n  },\n  onBeforeUpdateComponent: function (debugID, element) {\n    checkDebugID(debugID);\n    emitEvent('onBeforeUpdateComponent', debugID, element);\n  },\n  onUpdateComponent: function (debugID) {\n    checkDebugID(debugID);\n    emitEvent('onUpdateComponent', debugID);\n  },\n  onBeforeUnmountComponent: function (debugID) {\n    checkDebugID(debugID);\n    emitEvent('onBeforeUnmountComponent', debugID);\n  },\n  onUnmountComponent: function (debugID) {\n    checkDebugID(debugID);\n    emitEvent('onUnmountComponent', debugID);\n  },\n  onTestEvent: function () {\n    emitEvent('onTestEvent');\n  }\n};\n\n// TODO remove these when RN/www gets updated\nReactDebugTool.addDevtool = ReactDebugTool.addHook;\nReactDebugTool.removeDevtool = ReactDebugTool.removeHook;\n\nReactDebugTool.addHook(ReactInvalidSetStateWarningHook);\nReactDebugTool.addHook(ReactComponentTreeHook);\nReactDebugTool.addHook(ReactChildrenMutationWarningHook);\nvar url = ExecutionEnvironment.canUseDOM && window.location.href || '';\nif (/[?&]react_perf\\b/.test(url)) {\n  ReactDebugTool.beginProfiling();\n}\n\nmodule.exports = ReactDebugTool;\n},{\"148\":148,\"169\":169,\"171\":171,\"30\":30,\"35\":35,\"69\":69,\"74\":74}],59:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultBatchingStrategy\n */\n\n'use strict';\n\nvar _assign = _dereq_(172);\n\nvar ReactUpdates = _dereq_(96);\nvar Transaction = _dereq_(114);\n\nvar emptyFunction = _dereq_(154);\n\nvar RESET_BATCHED_UPDATES = {\n  initialize: emptyFunction,\n  close: function () {\n    ReactDefaultBatchingStrategy.isBatchingUpdates = false;\n  }\n};\n\nvar FLUSH_BATCHED_UPDATES = {\n  initialize: emptyFunction,\n  close: ReactUpdates.flushBatchedUpdates.bind(ReactUpdates)\n};\n\nvar TRANSACTION_WRAPPERS = [FLUSH_BATCHED_UPDATES, RESET_BATCHED_UPDATES];\n\nfunction ReactDefaultBatchingStrategyTransaction() {\n  this.reinitializeTransaction();\n}\n\n_assign(ReactDefaultBatchingStrategyTransaction.prototype, Transaction.Mixin, {\n  getTransactionWrappers: function () {\n    return TRANSACTION_WRAPPERS;\n  }\n});\n\nvar transaction = new ReactDefaultBatchingStrategyTransaction();\n\nvar ReactDefaultBatchingStrategy = {\n  isBatchingUpdates: false,\n\n  /**\n   * Call the provided function in a context within which calls to `setState`\n   * and friends are batched such that components aren't updated unnecessarily.\n   */\n  batchedUpdates: function (callback, a, b, c, d, e) {\n    var alreadyBatchingUpdates = ReactDefaultBatchingStrategy.isBatchingUpdates;\n\n    ReactDefaultBatchingStrategy.isBatchingUpdates = true;\n\n    // The code is written this way to avoid extra allocations\n    if (alreadyBatchingUpdates) {\n      callback(a, b, c, d, e);\n    } else {\n      transaction.perform(callback, null, a, b, c, d, e);\n    }\n  }\n};\n\nmodule.exports = ReactDefaultBatchingStrategy;\n},{\"114\":114,\"154\":154,\"172\":172,\"96\":96}],60:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultInjection\n */\n\n'use strict';\n\nvar BeforeInputEventPlugin = _dereq_(2);\nvar ChangeEventPlugin = _dereq_(6);\nvar DefaultEventPluginOrder = _dereq_(13);\nvar EnterLeaveEventPlugin = _dereq_(15);\nvar HTMLDOMPropertyConfig = _dereq_(22);\nvar ReactComponentBrowserEnvironment = _dereq_(33);\nvar ReactDOMComponent = _dereq_(40);\nvar ReactDOMComponentTree = _dereq_(42);\nvar ReactDOMEmptyComponent = _dereq_(44);\nvar ReactDOMTreeTraversal = _dereq_(56);\nvar ReactDOMTextComponent = _dereq_(54);\nvar ReactDefaultBatchingStrategy = _dereq_(59);\nvar ReactEventListener = _dereq_(66);\nvar ReactInjection = _dereq_(70);\nvar ReactReconcileTransaction = _dereq_(87);\nvar SVGDOMPropertyConfig = _dereq_(98);\nvar SelectEventPlugin = _dereq_(99);\nvar SimpleEventPlugin = _dereq_(100);\n\nvar alreadyInjected = false;\n\nfunction inject() {\n  if (alreadyInjected) {\n    // TODO: This is currently true because these injections are shared between\n    // the client and the server package. They should be built independently\n    // and not share any injection state. Then this problem will be solved.\n    return;\n  }\n  alreadyInjected = true;\n\n  ReactInjection.EventEmitter.injectReactEventListener(ReactEventListener);\n\n  /**\n   * Inject modules for resolving DOM hierarchy and plugin ordering.\n   */\n  ReactInjection.EventPluginHub.injectEventPluginOrder(DefaultEventPluginOrder);\n  ReactInjection.EventPluginUtils.injectComponentTree(ReactDOMComponentTree);\n  ReactInjection.EventPluginUtils.injectTreeTraversal(ReactDOMTreeTraversal);\n\n  /**\n   * Some important event plugins included by default (without having to require\n   * them).\n   */\n  ReactInjection.EventPluginHub.injectEventPluginsByName({\n    SimpleEventPlugin: SimpleEventPlugin,\n    EnterLeaveEventPlugin: EnterLeaveEventPlugin,\n    ChangeEventPlugin: ChangeEventPlugin,\n    SelectEventPlugin: SelectEventPlugin,\n    BeforeInputEventPlugin: BeforeInputEventPlugin\n  });\n\n  ReactInjection.HostComponent.injectGenericComponentClass(ReactDOMComponent);\n\n  ReactInjection.HostComponent.injectTextComponentClass(ReactDOMTextComponent);\n\n  ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig);\n  ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig);\n\n  ReactInjection.EmptyComponent.injectEmptyComponentFactory(function (instantiate) {\n    return new ReactDOMEmptyComponent(instantiate);\n  });\n\n  ReactInjection.Updates.injectReconcileTransaction(ReactReconcileTransaction);\n  ReactInjection.Updates.injectBatchingStrategy(ReactDefaultBatchingStrategy);\n\n  ReactInjection.Component.injectEnvironment(ReactComponentBrowserEnvironment);\n}\n\nmodule.exports = {\n  inject: inject\n};\n},{\"100\":100,\"13\":13,\"15\":15,\"2\":2,\"22\":22,\"33\":33,\"40\":40,\"42\":42,\"44\":44,\"54\":54,\"56\":56,\"59\":59,\"6\":6,\"66\":66,\"70\":70,\"87\":87,\"98\":98,\"99\":99}],61:[function(_dereq_,module,exports){\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactElement\n */\n\n'use strict';\n\nvar _assign = _dereq_(172);\n\nvar ReactCurrentOwner = _dereq_(37);\n\nvar warning = _dereq_(171);\nvar canDefineProperty = _dereq_(118);\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n// The Symbol used to tag the ReactElement type. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;\n\nvar RESERVED_PROPS = {\n  key: true,\n  ref: true,\n  __self: true,\n  __source: true\n};\n\nvar specialPropKeyWarningShown, specialPropRefWarningShown;\n\nfunction hasValidRef(config) {\n  if (\"development\" !== 'production') {\n    if (hasOwnProperty.call(config, 'ref')) {\n      var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n      if (getter && getter.isReactWarning) {\n        return false;\n      }\n    }\n  }\n  return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n  if (\"development\" !== 'production') {\n    if (hasOwnProperty.call(config, 'key')) {\n      var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n      if (getter && getter.isReactWarning) {\n        return false;\n      }\n    }\n  }\n  return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n  var warnAboutAccessingKey = function () {\n    if (!specialPropKeyWarningShown) {\n      specialPropKeyWarningShown = true;\n      \"development\" !== 'production' ? warning(false, '%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0;\n    }\n  };\n  warnAboutAccessingKey.isReactWarning = true;\n  Object.defineProperty(props, 'key', {\n    get: warnAboutAccessingKey,\n    configurable: true\n  });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n  var warnAboutAccessingRef = function () {\n    if (!specialPropRefWarningShown) {\n      specialPropRefWarningShown = true;\n      \"development\" !== 'production' ? warning(false, '%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0;\n    }\n  };\n  warnAboutAccessingRef.isReactWarning = true;\n  Object.defineProperty(props, 'ref', {\n    get: warnAboutAccessingRef,\n    configurable: true\n  });\n}\n\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, no instanceof check\n * will work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} key\n * @param {string|object} ref\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @param {*} owner\n * @param {*} props\n * @internal\n */\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n  var element = {\n    // This tag allow us to uniquely identify this as a React Element\n    $$typeof: REACT_ELEMENT_TYPE,\n\n    // Built-in properties that belong on the element\n    type: type,\n    key: key,\n    ref: ref,\n    props: props,\n\n    // Record the component responsible for creating this element.\n    _owner: owner\n  };\n\n  if (\"development\" !== 'production') {\n    // The validation flag is currently mutative. We put it on\n    // an external backing store so that we can freeze the whole object.\n    // This can be replaced with a WeakMap once they are implemented in\n    // commonly used development environments.\n    element._store = {};\n    var shadowChildren = Array.isArray(props.children) ? props.children.slice(0) : props.children;\n\n    // To make comparing ReactElements easier for testing purposes, we make\n    // the validation flag non-enumerable (where possible, which should\n    // include every environment we run tests in), so the test framework\n    // ignores it.\n    if (canDefineProperty) {\n      Object.defineProperty(element._store, 'validated', {\n        configurable: false,\n        enumerable: false,\n        writable: true,\n        value: false\n      });\n      // self and source are DEV only properties.\n      Object.defineProperty(element, '_self', {\n        configurable: false,\n        enumerable: false,\n        writable: false,\n        value: self\n      });\n      Object.defineProperty(element, '_shadowChildren', {\n        configurable: false,\n        enumerable: false,\n        writable: false,\n        value: shadowChildren\n      });\n      // Two elements created in two different places should be considered\n      // equal for testing purposes and therefore we hide it from enumeration.\n      Object.defineProperty(element, '_source', {\n        configurable: false,\n        enumerable: false,\n        writable: false,\n        value: source\n      });\n    } else {\n      element._store.validated = false;\n      element._self = self;\n      element._shadowChildren = shadowChildren;\n      element._source = source;\n    }\n    if (Object.freeze) {\n      Object.freeze(element.props);\n      Object.freeze(element);\n    }\n  }\n\n  return element;\n};\n\n/**\n * Create and return a new ReactElement of the given type.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createelement\n */\nReactElement.createElement = function (type, config, children) {\n  var propName;\n\n  // Reserved names are extracted\n  var props = {};\n\n  var key = null;\n  var ref = null;\n  var self = null;\n  var source = null;\n\n  if (config != null) {\n    if (\"development\" !== 'production') {\n      \"development\" !== 'production' ? warning(\n      /* eslint-disable no-proto */\n      config.__proto__ == null || config.__proto__ === Object.prototype,\n      /* eslint-enable no-proto */\n      'React.createElement(...): Expected props argument to be a plain object. ' + 'Properties defined in its prototype chain will be ignored.') : void 0;\n    }\n\n    if (hasValidRef(config)) {\n      ref = config.ref;\n    }\n    if (hasValidKey(config)) {\n      key = '' + config.key;\n    }\n\n    self = config.__self === undefined ? null : config.__self;\n    source = config.__source === undefined ? null : config.__source;\n    // Remaining properties are added to a new props object\n    for (propName in config) {\n      if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        props[propName] = config[propName];\n      }\n    }\n  }\n\n  // Children can be more than one argument, and those are transferred onto\n  // the newly allocated props object.\n  var childrenLength = arguments.length - 2;\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 + 2];\n    }\n    props.children = childArray;\n  }\n\n  // Resolve default props\n  if (type && type.defaultProps) {\n    var defaultProps = type.defaultProps;\n    for (propName in defaultProps) {\n      if (props[propName] === undefined) {\n        props[propName] = defaultProps[propName];\n      }\n    }\n  }\n  if (\"development\" !== 'production') {\n    if (key || ref) {\n      if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) {\n        var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n        if (key) {\n          defineKeyPropWarningGetter(props, displayName);\n        }\n        if (ref) {\n          defineRefPropWarningGetter(props, displayName);\n        }\n      }\n    }\n  }\n  return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n};\n\n/**\n * Return a function that produces ReactElements of a given type.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createfactory\n */\nReactElement.createFactory = function (type) {\n  var factory = ReactElement.createElement.bind(null, type);\n  // Expose the type on the factory and the prototype so that it can be\n  // easily accessed on elements. E.g. `<Foo />.type === Foo`.\n  // This should not be named `constructor` since this may not be the function\n  // that created the element, and it may not even be a constructor.\n  // Legacy hook TODO: Warn if this is accessed\n  factory.type = type;\n  return factory;\n};\n\nReactElement.cloneAndReplaceKey = function (oldElement, newKey) {\n  var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n\n  return newElement;\n};\n\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.cloneelement\n */\nReactElement.cloneElement = function (element, config, children) {\n  var propName;\n\n  // Original props are copied\n  var props = _assign({}, element.props);\n\n  // Reserved names are extracted\n  var key = element.key;\n  var ref = element.ref;\n  // Self is preserved since the owner is preserved.\n  var self = element._self;\n  // Source is preserved since cloneElement is unlikely to be targeted by a\n  // transpiler, and the original source is probably a better indicator of the\n  // true owner.\n  var source = element._source;\n\n  // Owner will be preserved, unless ref is overridden\n  var owner = element._owner;\n\n  if (config != null) {\n    if (\"development\" !== 'production') {\n      \"development\" !== 'production' ? warning(\n      /* eslint-disable no-proto */\n      config.__proto__ == null || config.__proto__ === Object.prototype,\n      /* eslint-enable no-proto */\n      'React.cloneElement(...): Expected props argument to be a plain object. ' + 'Properties defined in its prototype chain will be ignored.') : void 0;\n    }\n\n    if (hasValidRef(config)) {\n      // Silently steal the ref from the parent.\n      ref = config.ref;\n      owner = ReactCurrentOwner.current;\n    }\n    if (hasValidKey(config)) {\n      key = '' + config.key;\n    }\n\n    // Remaining properties override existing props\n    var defaultProps;\n    if (element.type && element.type.defaultProps) {\n      defaultProps = element.type.defaultProps;\n    }\n    for (propName in config) {\n      if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        if (config[propName] === undefined && defaultProps !== undefined) {\n          // Resolve default props\n          props[propName] = defaultProps[propName];\n        } else {\n          props[propName] = config[propName];\n        }\n      }\n    }\n  }\n\n  // Children can be more than one argument, and those are transferred onto\n  // the newly allocated props object.\n  var childrenLength = arguments.length - 2;\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 + 2];\n    }\n    props.children = childArray;\n  }\n\n  return ReactElement(element.type, key, ref, self, source, owner, props);\n};\n\n/**\n * Verifies the object is a ReactElement.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a valid component.\n * @final\n */\nReactElement.isValidElement = function (object) {\n  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n};\n\nReactElement.REACT_ELEMENT_TYPE = REACT_ELEMENT_TYPE;\n\nmodule.exports = ReactElement;\n},{\"118\":118,\"171\":171,\"172\":172,\"37\":37}],62:[function(_dereq_,module,exports){\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactElementValidator\n */\n\n/**\n * ReactElementValidator provides a wrapper around a element factory\n * which validates the props passed to the element. This is intended to be\n * used only in DEV and could be replaced by a static type checker for languages\n * that support it.\n */\n\n'use strict';\n\nvar ReactCurrentOwner = _dereq_(37);\nvar ReactComponentTreeHook = _dereq_(35);\nvar ReactElement = _dereq_(61);\nvar ReactPropTypeLocations = _dereq_(83);\n\nvar checkReactTypeSpec = _dereq_(119);\n\nvar canDefineProperty = _dereq_(118);\nvar getIteratorFn = _dereq_(131);\nvar warning = _dereq_(171);\n\nfunction getDeclarationErrorAddendum() {\n  if (ReactCurrentOwner.current) {\n    var name = ReactCurrentOwner.current.getName();\n    if (name) {\n      return ' Check the render method of `' + name + '`.';\n    }\n  }\n  return '';\n}\n\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n  var info = getDeclarationErrorAddendum();\n\n  if (!info) {\n    var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n    if (parentName) {\n      info = ' Check the top-level render call using <' + parentName + '>.';\n    }\n  }\n  return info;\n}\n\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\nfunction validateExplicitKey(element, parentType) {\n  if (!element._store || element._store.validated || element.key != null) {\n    return;\n  }\n  element._store.validated = true;\n\n  var memoizer = ownerHasKeyUseWarning.uniqueKey || (ownerHasKeyUseWarning.uniqueKey = {});\n\n  var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n  if (memoizer[currentComponentErrorInfo]) {\n    return;\n  }\n  memoizer[currentComponentErrorInfo] = true;\n\n  // Usually the current owner is the offender, but if it accepts children as a\n  // property, it may be the creator of the child that's responsible for\n  // assigning it a key.\n  var childOwner = '';\n  if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n    // Give the component that originally created this child.\n    childOwner = ' It was passed a child from ' + element._owner.getName() + '.';\n  }\n\n  \"development\" !== 'production' ? warning(false, 'Each child in an array or iterator should have a unique \"key\" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.%s', currentComponentErrorInfo, childOwner, ReactComponentTreeHook.getCurrentStackAddendum(element)) : void 0;\n}\n\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\nfunction validateChildKeys(node, parentType) {\n  if (typeof node !== 'object') {\n    return;\n  }\n  if (Array.isArray(node)) {\n    for (var i = 0; i < node.length; i++) {\n      var child = node[i];\n      if (ReactElement.isValidElement(child)) {\n        validateExplicitKey(child, parentType);\n      }\n    }\n  } else if (ReactElement.isValidElement(node)) {\n    // This element was passed in a valid location.\n    if (node._store) {\n      node._store.validated = true;\n    }\n  } else if (node) {\n    var iteratorFn = getIteratorFn(node);\n    // Entry iterators provide implicit keys.\n    if (iteratorFn) {\n      if (iteratorFn !== node.entries) {\n        var iterator = iteratorFn.call(node);\n        var step;\n        while (!(step = iterator.next()).done) {\n          if (ReactElement.isValidElement(step.value)) {\n            validateExplicitKey(step.value, parentType);\n          }\n        }\n      }\n    }\n  }\n}\n\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\nfunction validatePropTypes(element) {\n  var componentClass = element.type;\n  if (typeof componentClass !== 'function') {\n    return;\n  }\n  var name = componentClass.displayName || componentClass.name;\n  if (componentClass.propTypes) {\n    checkReactTypeSpec(componentClass.propTypes, element.props, ReactPropTypeLocations.prop, name, element, null);\n  }\n  if (typeof componentClass.getDefaultProps === 'function') {\n    \"development\" !== 'production' ? warning(componentClass.getDefaultProps.isReactClassApproved, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : void 0;\n  }\n}\n\nvar ReactElementValidator = {\n\n  createElement: function (type, props, children) {\n    var validType = typeof type === 'string' || typeof type === 'function';\n    // We warn in this case but don't throw. We expect the element creation to\n    // succeed and there will likely be errors in render.\n    if (!validType) {\n      \"development\" !== 'production' ? warning(false, 'React.createElement: type should not be null, undefined, boolean, or ' + 'number. It should be a string (for DOM elements) or a ReactClass ' + '(for composite components).%s', getDeclarationErrorAddendum()) : void 0;\n    }\n\n    var element = ReactElement.createElement.apply(this, arguments);\n\n    // The result can be nullish if a mock or a custom function is used.\n    // TODO: Drop this when these are no longer allowed as the type argument.\n    if (element == null) {\n      return element;\n    }\n\n    // Skip key warning if the type isn't valid since our key validation logic\n    // doesn't expect a non-string/function type and can throw confusing errors.\n    // We don't want exception behavior to differ between dev and prod.\n    // (Rendering will throw with a helpful message and as soon as the type is\n    // fixed, the key warnings will appear.)\n    if (validType) {\n      for (var i = 2; i < arguments.length; i++) {\n        validateChildKeys(arguments[i], type);\n      }\n    }\n\n    validatePropTypes(element);\n\n    return element;\n  },\n\n  createFactory: function (type) {\n    var validatedFactory = ReactElementValidator.createElement.bind(null, type);\n    // Legacy hook TODO: Warn if this is accessed\n    validatedFactory.type = type;\n\n    if (\"development\" !== 'production') {\n      if (canDefineProperty) {\n        Object.defineProperty(validatedFactory, 'type', {\n          enumerable: false,\n          get: function () {\n            \"development\" !== 'production' ? warning(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.') : void 0;\n            Object.defineProperty(this, 'type', {\n              value: type\n            });\n            return type;\n          }\n        });\n      }\n    }\n\n    return validatedFactory;\n  },\n\n  cloneElement: function (element, props, children) {\n    var newElement = ReactElement.cloneElement.apply(this, arguments);\n    for (var i = 2; i < arguments.length; i++) {\n      validateChildKeys(arguments[i], newElement.type);\n    }\n    validatePropTypes(newElement);\n    return newElement;\n  }\n\n};\n\nmodule.exports = ReactElementValidator;\n},{\"118\":118,\"119\":119,\"131\":131,\"171\":171,\"35\":35,\"37\":37,\"61\":61,\"83\":83}],63:[function(_dereq_,module,exports){\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEmptyComponent\n */\n\n'use strict';\n\nvar emptyComponentFactory;\n\nvar ReactEmptyComponentInjection = {\n  injectEmptyComponentFactory: function (factory) {\n    emptyComponentFactory = factory;\n  }\n};\n\nvar ReactEmptyComponent = {\n  create: function (instantiate) {\n    return emptyComponentFactory(instantiate);\n  }\n};\n\nReactEmptyComponent.injection = ReactEmptyComponentInjection;\n\nmodule.exports = ReactEmptyComponent;\n},{}],64:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactErrorUtils\n */\n\n'use strict';\n\nvar caughtError = null;\n\n/**\n * Call a function while guarding against errors that happens within it.\n *\n * @param {?String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} a First argument\n * @param {*} b Second argument\n */\nfunction invokeGuardedCallback(name, func, a, b) {\n  try {\n    return func(a, b);\n  } catch (x) {\n    if (caughtError === null) {\n      caughtError = x;\n    }\n    return undefined;\n  }\n}\n\nvar ReactErrorUtils = {\n  invokeGuardedCallback: invokeGuardedCallback,\n\n  /**\n   * Invoked by ReactTestUtils.Simulate so that any errors thrown by the event\n   * handler are sure to be rethrown by rethrowCaughtError.\n   */\n  invokeGuardedCallbackWithCatch: invokeGuardedCallback,\n\n  /**\n   * During execution of guarded functions we will capture the first error which\n   * we will rethrow to be handled by the top level error handler.\n   */\n  rethrowCaughtError: function () {\n    if (caughtError) {\n      var error = caughtError;\n      caughtError = null;\n      throw error;\n    }\n  }\n};\n\nif (\"development\" !== 'production') {\n  /**\n   * To help development we can get better devtools integration by simulating a\n   * real browser event.\n   */\n  if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n    var fakeNode = document.createElement('react');\n    ReactErrorUtils.invokeGuardedCallback = function (name, func, a, b) {\n      var boundFunc = func.bind(null, a, b);\n      var evtType = 'react-' + name;\n      fakeNode.addEventListener(evtType, boundFunc, false);\n      var evt = document.createEvent('Event');\n      evt.initEvent(evtType, false, false);\n      fakeNode.dispatchEvent(evt);\n      fakeNode.removeEventListener(evtType, boundFunc, false);\n    };\n  }\n}\n\nmodule.exports = ReactErrorUtils;\n},{}],65:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEventEmitterMixin\n */\n\n'use strict';\n\nvar EventPluginHub = _dereq_(17);\n\nfunction runEventQueueInBatch(events) {\n  EventPluginHub.enqueueEvents(events);\n  EventPluginHub.processEventQueue(false);\n}\n\nvar ReactEventEmitterMixin = {\n\n  /**\n   * Streams a fired top-level event to `EventPluginHub` where plugins have the\n   * opportunity to create `ReactEvent`s to be dispatched.\n   */\n  handleTopLevel: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n    var events = EventPluginHub.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n    runEventQueueInBatch(events);\n  }\n};\n\nmodule.exports = ReactEventEmitterMixin;\n},{\"17\":17}],66:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEventListener\n */\n\n'use strict';\n\nvar _assign = _dereq_(172);\n\nvar EventListener = _dereq_(147);\nvar ExecutionEnvironment = _dereq_(148);\nvar PooledClass = _dereq_(25);\nvar ReactDOMComponentTree = _dereq_(42);\nvar ReactUpdates = _dereq_(96);\n\nvar getEventTarget = _dereq_(129);\nvar getUnboundedScrollPosition = _dereq_(159);\n\n/**\n * Find the deepest React component completely containing the root of the\n * passed-in instance (for use when entire React trees are nested within each\n * other). If React trees are not nested, returns null.\n */\nfunction findParent(inst) {\n  // TODO: It may be a good idea to cache this to prevent unnecessary DOM\n  // traversal, but caching is difficult to do correctly without using a\n  // mutation observer to listen for all DOM changes.\n  while (inst._hostParent) {\n    inst = inst._hostParent;\n  }\n  var rootNode = ReactDOMComponentTree.getNodeFromInstance(inst);\n  var container = rootNode.parentNode;\n  return ReactDOMComponentTree.getClosestInstanceFromNode(container);\n}\n\n// Used to store ancestor hierarchy in top level callback\nfunction TopLevelCallbackBookKeeping(topLevelType, nativeEvent) {\n  this.topLevelType = topLevelType;\n  this.nativeEvent = nativeEvent;\n  this.ancestors = [];\n}\n_assign(TopLevelCallbackBookKeeping.prototype, {\n  destructor: function () {\n    this.topLevelType = null;\n    this.nativeEvent = null;\n    this.ancestors.length = 0;\n  }\n});\nPooledClass.addPoolingTo(TopLevelCallbackBookKeeping, PooledClass.twoArgumentPooler);\n\nfunction handleTopLevelImpl(bookKeeping) {\n  var nativeEventTarget = getEventTarget(bookKeeping.nativeEvent);\n  var targetInst = ReactDOMComponentTree.getClosestInstanceFromNode(nativeEventTarget);\n\n  // Loop through the hierarchy, in case there's any nested components.\n  // It's important that we build the array of ancestors before calling any\n  // event handlers, because event handlers can modify the DOM, leading to\n  // inconsistencies with ReactMount's node cache. See #1105.\n  var ancestor = targetInst;\n  do {\n    bookKeeping.ancestors.push(ancestor);\n    ancestor = ancestor && findParent(ancestor);\n  } while (ancestor);\n\n  for (var i = 0; i < bookKeeping.ancestors.length; i++) {\n    targetInst = bookKeeping.ancestors[i];\n    ReactEventListener._handleTopLevel(bookKeeping.topLevelType, targetInst, bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent));\n  }\n}\n\nfunction scrollValueMonitor(cb) {\n  var scrollPosition = getUnboundedScrollPosition(window);\n  cb(scrollPosition);\n}\n\nvar ReactEventListener = {\n  _enabled: true,\n  _handleTopLevel: null,\n\n  WINDOW_HANDLE: ExecutionEnvironment.canUseDOM ? window : null,\n\n  setHandleTopLevel: function (handleTopLevel) {\n    ReactEventListener._handleTopLevel = handleTopLevel;\n  },\n\n  setEnabled: function (enabled) {\n    ReactEventListener._enabled = !!enabled;\n  },\n\n  isEnabled: function () {\n    return ReactEventListener._enabled;\n  },\n\n  /**\n   * Traps top-level events by using event bubbling.\n   *\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {string} handlerBaseName Event name (e.g. \"click\").\n   * @param {object} handle Element on which to attach listener.\n   * @return {?object} An object with a remove function which will forcefully\n   *                  remove the listener.\n   * @internal\n   */\n  trapBubbledEvent: function (topLevelType, handlerBaseName, handle) {\n    var element = handle;\n    if (!element) {\n      return null;\n    }\n    return EventListener.listen(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));\n  },\n\n  /**\n   * Traps a top-level event by using event capturing.\n   *\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {string} handlerBaseName Event name (e.g. \"click\").\n   * @param {object} handle Element on which to attach listener.\n   * @return {?object} An object with a remove function which will forcefully\n   *                  remove the listener.\n   * @internal\n   */\n  trapCapturedEvent: function (topLevelType, handlerBaseName, handle) {\n    var element = handle;\n    if (!element) {\n      return null;\n    }\n    return EventListener.capture(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));\n  },\n\n  monitorScrollValue: function (refresh) {\n    var callback = scrollValueMonitor.bind(null, refresh);\n    EventListener.listen(window, 'scroll', callback);\n  },\n\n  dispatchEvent: function (topLevelType, nativeEvent) {\n    if (!ReactEventListener._enabled) {\n      return;\n    }\n\n    var bookKeeping = TopLevelCallbackBookKeeping.getPooled(topLevelType, nativeEvent);\n    try {\n      // Event queue being processed in the same cycle allows\n      // `preventDefault`.\n      ReactUpdates.batchedUpdates(handleTopLevelImpl, bookKeeping);\n    } finally {\n      TopLevelCallbackBookKeeping.release(bookKeeping);\n    }\n  }\n};\n\nmodule.exports = ReactEventListener;\n},{\"129\":129,\"147\":147,\"148\":148,\"159\":159,\"172\":172,\"25\":25,\"42\":42,\"96\":96}],67:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactFeatureFlags\n * \n */\n\n'use strict';\n\nvar ReactFeatureFlags = {\n  // When true, call console.time() before and .timeEnd() after each top-level\n  // render (both initial renders and updates). Useful when looking at prod-mode\n  // timeline profiles in Chrome, for example.\n  logTopLevelRenders: false\n};\n\nmodule.exports = ReactFeatureFlags;\n},{}],68:[function(_dereq_,module,exports){\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactHostComponent\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140),\n    _assign = _dereq_(172);\n\nvar invariant = _dereq_(162);\n\nvar genericComponentClass = null;\n// This registry keeps track of wrapper classes around host tags.\nvar tagToComponentClass = {};\nvar textComponentClass = null;\n\nvar ReactHostComponentInjection = {\n  // This accepts a class that receives the tag string. This is a catch all\n  // that can render any kind of tag.\n  injectGenericComponentClass: function (componentClass) {\n    genericComponentClass = componentClass;\n  },\n  // This accepts a text component class that takes the text string to be\n  // rendered as props.\n  injectTextComponentClass: function (componentClass) {\n    textComponentClass = componentClass;\n  },\n  // This accepts a keyed object with classes as values. Each key represents a\n  // tag. That particular tag will use this class instead of the generic one.\n  injectComponentClasses: function (componentClasses) {\n    _assign(tagToComponentClass, componentClasses);\n  }\n};\n\n/**\n * Get a host internal component class for a specific tag.\n *\n * @param {ReactElement} element The element to create.\n * @return {function} The internal class constructor function.\n */\nfunction createInternalComponent(element) {\n  !genericComponentClass ? \"development\" !== 'production' ? invariant(false, 'There is no registered component for the tag %s', element.type) : _prodInvariant('111', element.type) : void 0;\n  return new genericComponentClass(element);\n}\n\n/**\n * @param {ReactText} text\n * @return {ReactComponent}\n */\nfunction createInstanceForText(text) {\n  return new textComponentClass(text);\n}\n\n/**\n * @param {ReactComponent} component\n * @return {boolean}\n */\nfunction isTextComponent(component) {\n  return component instanceof textComponentClass;\n}\n\nvar ReactHostComponent = {\n  createInternalComponent: createInternalComponent,\n  createInstanceForText: createInstanceForText,\n  isTextComponent: isTextComponent,\n  injection: ReactHostComponentInjection\n};\n\nmodule.exports = ReactHostComponent;\n},{\"140\":140,\"162\":162,\"172\":172}],69:[function(_dereq_,module,exports){\n/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactHostOperationHistoryHook\n */\n\n'use strict';\n\nvar history = [];\n\nvar ReactHostOperationHistoryHook = {\n  onHostOperation: function (debugID, type, payload) {\n    history.push({\n      instanceID: debugID,\n      type: type,\n      payload: payload\n    });\n  },\n  clearHistory: function () {\n    if (ReactHostOperationHistoryHook._preventClearing) {\n      // Should only be used for tests.\n      return;\n    }\n\n    history = [];\n  },\n  getHistory: function () {\n    return history;\n  }\n};\n\nmodule.exports = ReactHostOperationHistoryHook;\n},{}],70:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInjection\n */\n\n'use strict';\n\nvar DOMProperty = _dereq_(10);\nvar EventPluginHub = _dereq_(17);\nvar EventPluginUtils = _dereq_(19);\nvar ReactComponentEnvironment = _dereq_(34);\nvar ReactClass = _dereq_(31);\nvar ReactEmptyComponent = _dereq_(63);\nvar ReactBrowserEventEmitter = _dereq_(27);\nvar ReactHostComponent = _dereq_(68);\nvar ReactUpdates = _dereq_(96);\n\nvar ReactInjection = {\n  Component: ReactComponentEnvironment.injection,\n  Class: ReactClass.injection,\n  DOMProperty: DOMProperty.injection,\n  EmptyComponent: ReactEmptyComponent.injection,\n  EventPluginHub: EventPluginHub.injection,\n  EventPluginUtils: EventPluginUtils.injection,\n  EventEmitter: ReactBrowserEventEmitter.injection,\n  HostComponent: ReactHostComponent.injection,\n  Updates: ReactUpdates.injection\n};\n\nmodule.exports = ReactInjection;\n},{\"10\":10,\"17\":17,\"19\":19,\"27\":27,\"31\":31,\"34\":34,\"63\":63,\"68\":68,\"96\":96}],71:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInputSelection\n */\n\n'use strict';\n\nvar ReactDOMSelection = _dereq_(52);\n\nvar containsNode = _dereq_(151);\nvar focusNode = _dereq_(156);\nvar getActiveElement = _dereq_(157);\n\nfunction isInDocument(node) {\n  return containsNode(document.documentElement, node);\n}\n\n/**\n * @ReactInputSelection: React input selection module. Based on Selection.js,\n * but modified to be suitable for react and has a couple of bug fixes (doesn't\n * assume buttons have range selections allowed).\n * Input selection module for React.\n */\nvar ReactInputSelection = {\n\n  hasSelectionCapabilities: function (elem) {\n    var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n    return nodeName && (nodeName === 'input' && elem.type === 'text' || nodeName === 'textarea' || elem.contentEditable === 'true');\n  },\n\n  getSelectionInformation: function () {\n    var focusedElem = getActiveElement();\n    return {\n      focusedElem: focusedElem,\n      selectionRange: ReactInputSelection.hasSelectionCapabilities(focusedElem) ? ReactInputSelection.getSelection(focusedElem) : null\n    };\n  },\n\n  /**\n   * @restoreSelection: If any selection information was potentially lost,\n   * restore it. This is useful when performing operations that could remove dom\n   * nodes and place them back in, resulting in focus being lost.\n   */\n  restoreSelection: function (priorSelectionInformation) {\n    var curFocusedElem = getActiveElement();\n    var priorFocusedElem = priorSelectionInformation.focusedElem;\n    var priorSelectionRange = priorSelectionInformation.selectionRange;\n    if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) {\n      if (ReactInputSelection.hasSelectionCapabilities(priorFocusedElem)) {\n        ReactInputSelection.setSelection(priorFocusedElem, priorSelectionRange);\n      }\n      focusNode(priorFocusedElem);\n    }\n  },\n\n  /**\n   * @getSelection: Gets the selection bounds of a focused textarea, input or\n   * contentEditable node.\n   * -@input: Look up selection bounds of this input\n   * -@return {start: selectionStart, end: selectionEnd}\n   */\n  getSelection: function (input) {\n    var selection;\n\n    if ('selectionStart' in input) {\n      // Modern browser with input or textarea.\n      selection = {\n        start: input.selectionStart,\n        end: input.selectionEnd\n      };\n    } else if (document.selection && input.nodeName && input.nodeName.toLowerCase() === 'input') {\n      // IE8 input.\n      var range = document.selection.createRange();\n      // There can only be one selection per document in IE, so it must\n      // be in our element.\n      if (range.parentElement() === input) {\n        selection = {\n          start: -range.moveStart('character', -input.value.length),\n          end: -range.moveEnd('character', -input.value.length)\n        };\n      }\n    } else {\n      // Content editable or old IE textarea.\n      selection = ReactDOMSelection.getOffsets(input);\n    }\n\n    return selection || { start: 0, end: 0 };\n  },\n\n  /**\n   * @setSelection: Sets the selection bounds of a textarea or input and focuses\n   * the input.\n   * -@input     Set selection bounds of this input or textarea\n   * -@offsets   Object of same form that is returned from get*\n   */\n  setSelection: function (input, offsets) {\n    var start = offsets.start;\n    var end = offsets.end;\n    if (end === undefined) {\n      end = start;\n    }\n\n    if ('selectionStart' in input) {\n      input.selectionStart = start;\n      input.selectionEnd = Math.min(end, input.value.length);\n    } else if (document.selection && input.nodeName && input.nodeName.toLowerCase() === 'input') {\n      var range = input.createTextRange();\n      range.collapse(true);\n      range.moveStart('character', start);\n      range.moveEnd('character', end - start);\n      range.select();\n    } else {\n      ReactDOMSelection.setOffsets(input, offsets);\n    }\n  }\n};\n\nmodule.exports = ReactInputSelection;\n},{\"151\":151,\"156\":156,\"157\":157,\"52\":52}],72:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInstanceMap\n */\n\n'use strict';\n\n/**\n * `ReactInstanceMap` maintains a mapping from a public facing stateful\n * instance (key) and the internal representation (value). This allows public\n * methods to accept the user facing instance as an argument and map them back\n * to internal methods.\n */\n\n// TODO: Replace this with ES6: var ReactInstanceMap = new Map();\n\nvar ReactInstanceMap = {\n\n  /**\n   * This API should be called `delete` but we'd have to make sure to always\n   * transform these to strings for IE support. When this transform is fully\n   * supported we can rename it.\n   */\n  remove: function (key) {\n    key._reactInternalInstance = undefined;\n  },\n\n  get: function (key) {\n    return key._reactInternalInstance;\n  },\n\n  has: function (key) {\n    return key._reactInternalInstance !== undefined;\n  },\n\n  set: function (key, value) {\n    key._reactInternalInstance = value;\n  }\n\n};\n\nmodule.exports = ReactInstanceMap;\n},{}],73:[function(_dereq_,module,exports){\n/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInstrumentation\n */\n\n'use strict';\n\nvar debugTool = null;\n\nif (\"development\" !== 'production') {\n  var ReactDebugTool = _dereq_(58);\n  debugTool = ReactDebugTool;\n}\n\nmodule.exports = { debugTool: debugTool };\n},{\"58\":58}],74:[function(_dereq_,module,exports){\n/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInvalidSetStateWarningHook\n */\n\n'use strict';\n\nvar warning = _dereq_(171);\n\nif (\"development\" !== 'production') {\n  var processingChildContext = false;\n\n  var warnInvalidSetState = function () {\n    \"development\" !== 'production' ? warning(!processingChildContext, 'setState(...): Cannot call setState() inside getChildContext()') : void 0;\n  };\n}\n\nvar ReactInvalidSetStateWarningHook = {\n  onBeginProcessingChildContext: function () {\n    processingChildContext = true;\n  },\n  onEndProcessingChildContext: function () {\n    processingChildContext = false;\n  },\n  onSetState: function () {\n    warnInvalidSetState();\n  }\n};\n\nmodule.exports = ReactInvalidSetStateWarningHook;\n},{\"171\":171}],75:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMarkupChecksum\n */\n\n'use strict';\n\nvar adler32 = _dereq_(117);\n\nvar TAG_END = /\\/?>/;\nvar COMMENT_START = /^<\\!\\-\\-/;\n\nvar ReactMarkupChecksum = {\n  CHECKSUM_ATTR_NAME: 'data-react-checksum',\n\n  /**\n   * @param {string} markup Markup string\n   * @return {string} Markup string with checksum attribute attached\n   */\n  addChecksumToMarkup: function (markup) {\n    var checksum = adler32(markup);\n\n    // Add checksum (handle both parent tags, comments and self-closing tags)\n    if (COMMENT_START.test(markup)) {\n      return markup;\n    } else {\n      return markup.replace(TAG_END, ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '=\"' + checksum + '\"$&');\n    }\n  },\n\n  /**\n   * @param {string} markup to use\n   * @param {DOMElement} element root React element\n   * @returns {boolean} whether or not the markup is the same\n   */\n  canReuseMarkup: function (markup, element) {\n    var existingChecksum = element.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n    existingChecksum = existingChecksum && parseInt(existingChecksum, 10);\n    var markupChecksum = adler32(markup);\n    return markupChecksum === existingChecksum;\n  }\n};\n\nmodule.exports = ReactMarkupChecksum;\n},{\"117\":117}],76:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMount\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar DOMLazyTree = _dereq_(8);\nvar DOMProperty = _dereq_(10);\nvar ReactBrowserEventEmitter = _dereq_(27);\nvar ReactCurrentOwner = _dereq_(37);\nvar ReactDOMComponentTree = _dereq_(42);\nvar ReactDOMContainerInfo = _dereq_(43);\nvar ReactDOMFeatureFlags = _dereq_(46);\nvar ReactElement = _dereq_(61);\nvar ReactFeatureFlags = _dereq_(67);\nvar ReactInstanceMap = _dereq_(72);\nvar ReactInstrumentation = _dereq_(73);\nvar ReactMarkupChecksum = _dereq_(75);\nvar ReactReconciler = _dereq_(88);\nvar ReactUpdateQueue = _dereq_(95);\nvar ReactUpdates = _dereq_(96);\n\nvar emptyObject = _dereq_(155);\nvar instantiateReactComponent = _dereq_(135);\nvar invariant = _dereq_(162);\nvar setInnerHTML = _dereq_(142);\nvar shouldUpdateReactComponent = _dereq_(144);\nvar warning = _dereq_(171);\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar ROOT_ATTR_NAME = DOMProperty.ROOT_ATTRIBUTE_NAME;\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOC_NODE_TYPE = 9;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\nvar instancesByReactRootID = {};\n\n/**\n * Finds the index of the first character\n * that's not common between the two given strings.\n *\n * @return {number} the index of the character where the strings diverge\n */\nfunction firstDifferenceIndex(string1, string2) {\n  var minLen = Math.min(string1.length, string2.length);\n  for (var i = 0; i < minLen; i++) {\n    if (string1.charAt(i) !== string2.charAt(i)) {\n      return i;\n    }\n  }\n  return string1.length === string2.length ? -1 : minLen;\n}\n\n/**\n * @param {DOMElement|DOMDocument} container DOM element that may contain\n * a React component\n * @return {?*} DOM element that may have the reactRoot ID, or null.\n */\nfunction getReactRootElementInContainer(container) {\n  if (!container) {\n    return null;\n  }\n\n  if (container.nodeType === DOC_NODE_TYPE) {\n    return container.documentElement;\n  } else {\n    return container.firstChild;\n  }\n}\n\nfunction internalGetID(node) {\n  // If node is something like a window, document, or text node, none of\n  // which support attributes or a .getAttribute method, gracefully return\n  // the empty string, as if the attribute were missing.\n  return node.getAttribute && node.getAttribute(ATTR_NAME) || '';\n}\n\n/**\n * Mounts this component and inserts it into the DOM.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {DOMElement} container DOM element to mount into.\n * @param {ReactReconcileTransaction} transaction\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction mountComponentIntoNode(wrapperInstance, container, transaction, shouldReuseMarkup, context) {\n  var markerName;\n  if (ReactFeatureFlags.logTopLevelRenders) {\n    var wrappedElement = wrapperInstance._currentElement.props;\n    var type = wrappedElement.type;\n    markerName = 'React mount: ' + (typeof type === 'string' ? type : type.displayName || type.name);\n    console.time(markerName);\n  }\n\n  var markup = ReactReconciler.mountComponent(wrapperInstance, transaction, null, ReactDOMContainerInfo(wrapperInstance, container), context, 0 /* parentDebugID */\n  );\n\n  if (markerName) {\n    console.timeEnd(markerName);\n  }\n\n  wrapperInstance._renderedComponent._topLevelWrapper = wrapperInstance;\n  ReactMount._mountImageIntoNode(markup, container, wrapperInstance, shouldReuseMarkup, transaction);\n}\n\n/**\n * Batched mount.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {DOMElement} container DOM element to mount into.\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction batchedMountComponentIntoNode(componentInstance, container, shouldReuseMarkup, context) {\n  var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(\n  /* useCreateElement */\n  !shouldReuseMarkup && ReactDOMFeatureFlags.useCreateElement);\n  transaction.perform(mountComponentIntoNode, null, componentInstance, container, transaction, shouldReuseMarkup, context);\n  ReactUpdates.ReactReconcileTransaction.release(transaction);\n}\n\n/**\n * Unmounts a component and removes it from the DOM.\n *\n * @param {ReactComponent} instance React component instance.\n * @param {DOMElement} container DOM element to unmount from.\n * @final\n * @internal\n * @see {ReactMount.unmountComponentAtNode}\n */\nfunction unmountComponentFromNode(instance, container, safely) {\n  if (\"development\" !== 'production') {\n    ReactInstrumentation.debugTool.onBeginFlush();\n  }\n  ReactReconciler.unmountComponent(instance, safely);\n  if (\"development\" !== 'production') {\n    ReactInstrumentation.debugTool.onEndFlush();\n  }\n\n  if (container.nodeType === DOC_NODE_TYPE) {\n    container = container.documentElement;\n  }\n\n  // http://jsperf.com/emptying-a-node\n  while (container.lastChild) {\n    container.removeChild(container.lastChild);\n  }\n}\n\n/**\n * True if the supplied DOM node has a direct React-rendered child that is\n * not a React root element. Useful for warning in `render`,\n * `unmountComponentAtNode`, etc.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM element contains a direct child that was\n * rendered by React but is not a root element.\n * @internal\n */\nfunction hasNonRootReactChild(container) {\n  var rootEl = getReactRootElementInContainer(container);\n  if (rootEl) {\n    var inst = ReactDOMComponentTree.getInstanceFromNode(rootEl);\n    return !!(inst && inst._hostParent);\n  }\n}\n\n/**\n * True if the supplied DOM node is a React DOM element and\n * it has been rendered by another copy of React.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM has been rendered by another copy of React\n * @internal\n */\nfunction nodeIsRenderedByOtherInstance(container) {\n  var rootEl = getReactRootElementInContainer(container);\n  return !!(rootEl && isReactNode(rootEl) && !ReactDOMComponentTree.getInstanceFromNode(rootEl));\n}\n\n/**\n * True if the supplied DOM node is a valid node element.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM is a valid DOM node.\n * @internal\n */\nfunction isValidContainer(node) {\n  return !!(node && (node.nodeType === ELEMENT_NODE_TYPE || node.nodeType === DOC_NODE_TYPE || node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE));\n}\n\n/**\n * True if the supplied DOM node is a valid React node element.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM is a valid React DOM node.\n * @internal\n */\nfunction isReactNode(node) {\n  return isValidContainer(node) && (node.hasAttribute(ROOT_ATTR_NAME) || node.hasAttribute(ATTR_NAME));\n}\n\nfunction getHostRootInstanceInContainer(container) {\n  var rootEl = getReactRootElementInContainer(container);\n  var prevHostInstance = rootEl && ReactDOMComponentTree.getInstanceFromNode(rootEl);\n  return prevHostInstance && !prevHostInstance._hostParent ? prevHostInstance : null;\n}\n\nfunction getTopLevelWrapperInContainer(container) {\n  var root = getHostRootInstanceInContainer(container);\n  return root ? root._hostContainerInfo._topLevelWrapper : null;\n}\n\n/**\n * Temporary (?) hack so that we can store all top-level pending updates on\n * composites instead of having to worry about different types of components\n * here.\n */\nvar topLevelRootCounter = 1;\nvar TopLevelWrapper = function () {\n  this.rootID = topLevelRootCounter++;\n};\nTopLevelWrapper.prototype.isReactComponent = {};\nif (\"development\" !== 'production') {\n  TopLevelWrapper.displayName = 'TopLevelWrapper';\n}\nTopLevelWrapper.prototype.render = function () {\n  // this.props is actually a ReactElement\n  return this.props;\n};\n\n/**\n * Mounting is the process of initializing a React component by creating its\n * representative DOM elements and inserting them into a supplied `container`.\n * Any prior content inside `container` is destroyed in the process.\n *\n *   ReactMount.render(\n *     component,\n *     document.getElementById('container')\n *   );\n *\n *   <div id=\"container\">                   <-- Supplied `container`.\n *     <div data-reactid=\".3\">              <-- Rendered reactRoot of React\n *       // ...                                 component.\n *     </div>\n *   </div>\n *\n * Inside of `container`, the first element rendered is the \"reactRoot\".\n */\nvar ReactMount = {\n\n  TopLevelWrapper: TopLevelWrapper,\n\n  /**\n   * Used by devtools. The keys are not important.\n   */\n  _instancesByReactRootID: instancesByReactRootID,\n\n  /**\n   * This is a hook provided to support rendering React components while\n   * ensuring that the apparent scroll position of its `container` does not\n   * change.\n   *\n   * @param {DOMElement} container The `container` being rendered into.\n   * @param {function} renderCallback This must be called once to do the render.\n   */\n  scrollMonitor: function (container, renderCallback) {\n    renderCallback();\n  },\n\n  /**\n   * Take a component that's already mounted into the DOM and replace its props\n   * @param {ReactComponent} prevComponent component instance already in the DOM\n   * @param {ReactElement} nextElement component instance to render\n   * @param {DOMElement} container container to render into\n   * @param {?function} callback function triggered on completion\n   */\n  _updateRootComponent: function (prevComponent, nextElement, nextContext, container, callback) {\n    ReactMount.scrollMonitor(container, function () {\n      ReactUpdateQueue.enqueueElementInternal(prevComponent, nextElement, nextContext);\n      if (callback) {\n        ReactUpdateQueue.enqueueCallbackInternal(prevComponent, callback);\n      }\n    });\n\n    return prevComponent;\n  },\n\n  /**\n   * Render a new component into the DOM. Hooked by hooks!\n   *\n   * @param {ReactElement} nextElement element to render\n   * @param {DOMElement} container container to render into\n   * @param {boolean} shouldReuseMarkup if we should skip the markup insertion\n   * @return {ReactComponent} nextComponent\n   */\n  _renderNewRootComponent: function (nextElement, container, shouldReuseMarkup, context) {\n    // Various parts of our code (such as ReactCompositeComponent's\n    // _renderValidatedComponent) assume that calls to render aren't nested;\n    // verify that that's the case.\n    \"development\" !== 'production' ? warning(ReactCurrentOwner.current == null, '_renderNewRootComponent(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from ' + 'render is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0;\n\n    !isValidContainer(container) ? \"development\" !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : _prodInvariant('37') : void 0;\n\n    ReactBrowserEventEmitter.ensureScrollValueMonitoring();\n    var componentInstance = instantiateReactComponent(nextElement, false);\n\n    // The initial render is synchronous but any updates that happen during\n    // rendering, in componentWillMount or componentDidMount, will be batched\n    // according to the current batching strategy.\n\n    ReactUpdates.batchedUpdates(batchedMountComponentIntoNode, componentInstance, container, shouldReuseMarkup, context);\n\n    var wrapperID = componentInstance._instance.rootID;\n    instancesByReactRootID[wrapperID] = componentInstance;\n\n    return componentInstance;\n  },\n\n  /**\n   * Renders a React component into the DOM in the supplied `container`.\n   *\n   * If the React component was previously rendered into `container`, this will\n   * perform an update on it and only mutate the DOM as necessary to reflect the\n   * latest React component.\n   *\n   * @param {ReactComponent} parentComponent The conceptual parent of this render tree.\n   * @param {ReactElement} nextElement Component element to render.\n   * @param {DOMElement} container DOM element to render into.\n   * @param {?function} callback function triggered on completion\n   * @return {ReactComponent} Component instance rendered in `container`.\n   */\n  renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {\n    !(parentComponent != null && ReactInstanceMap.has(parentComponent)) ? \"development\" !== 'production' ? invariant(false, 'parentComponent must be a valid React Component') : _prodInvariant('38') : void 0;\n    return ReactMount._renderSubtreeIntoContainer(parentComponent, nextElement, container, callback);\n  },\n\n  _renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {\n    ReactUpdateQueue.validateCallback(callback, 'ReactDOM.render');\n    !ReactElement.isValidElement(nextElement) ? \"development\" !== 'production' ? invariant(false, 'ReactDOM.render(): Invalid component element.%s', typeof nextElement === 'string' ? ' Instead of passing a string like \\'div\\', pass ' + 'React.createElement(\\'div\\') or <div />.' : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' :\n    // Check if it quacks like an element\n    nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : _prodInvariant('39', typeof nextElement === 'string' ? ' Instead of passing a string like \\'div\\', pass ' + 'React.createElement(\\'div\\') or <div />.' : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' : nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : void 0;\n\n    \"development\" !== 'production' ? warning(!container || !container.tagName || container.tagName.toUpperCase() !== 'BODY', 'render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.') : void 0;\n\n    var nextWrappedElement = ReactElement(TopLevelWrapper, null, null, null, null, null, nextElement);\n\n    var nextContext;\n    if (parentComponent) {\n      var parentInst = ReactInstanceMap.get(parentComponent);\n      nextContext = parentInst._processChildContext(parentInst._context);\n    } else {\n      nextContext = emptyObject;\n    }\n\n    var prevComponent = getTopLevelWrapperInContainer(container);\n\n    if (prevComponent) {\n      var prevWrappedElement = prevComponent._currentElement;\n      var prevElement = prevWrappedElement.props;\n      if (shouldUpdateReactComponent(prevElement, nextElement)) {\n        var publicInst = prevComponent._renderedComponent.getPublicInstance();\n        var updatedCallback = callback && function () {\n          callback.call(publicInst);\n        };\n        ReactMount._updateRootComponent(prevComponent, nextWrappedElement, nextContext, container, updatedCallback);\n        return publicInst;\n      } else {\n        ReactMount.unmountComponentAtNode(container);\n      }\n    }\n\n    var reactRootElement = getReactRootElementInContainer(container);\n    var containerHasReactMarkup = reactRootElement && !!internalGetID(reactRootElement);\n    var containerHasNonRootReactChild = hasNonRootReactChild(container);\n\n    if (\"development\" !== 'production') {\n      \"development\" !== 'production' ? warning(!containerHasNonRootReactChild, 'render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.') : void 0;\n\n      if (!containerHasReactMarkup || reactRootElement.nextSibling) {\n        var rootElementSibling = reactRootElement;\n        while (rootElementSibling) {\n          if (internalGetID(rootElementSibling)) {\n            \"development\" !== 'production' ? warning(false, 'render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.') : void 0;\n            break;\n          }\n          rootElementSibling = rootElementSibling.nextSibling;\n        }\n      }\n    }\n\n    var shouldReuseMarkup = containerHasReactMarkup && !prevComponent && !containerHasNonRootReactChild;\n    var component = ReactMount._renderNewRootComponent(nextWrappedElement, container, shouldReuseMarkup, nextContext)._renderedComponent.getPublicInstance();\n    if (callback) {\n      callback.call(component);\n    }\n    return component;\n  },\n\n  /**\n   * Renders a React component into the DOM in the supplied `container`.\n   * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.render\n   *\n   * If the React component was previously rendered into `container`, this will\n   * perform an update on it and only mutate the DOM as necessary to reflect the\n   * latest React component.\n   *\n   * @param {ReactElement} nextElement Component element to render.\n   * @param {DOMElement} container DOM element to render into.\n   * @param {?function} callback function triggered on completion\n   * @return {ReactComponent} Component instance rendered in `container`.\n   */\n  render: function (nextElement, container, callback) {\n    return ReactMount._renderSubtreeIntoContainer(null, nextElement, container, callback);\n  },\n\n  /**\n   * Unmounts and destroys the React component rendered in the `container`.\n   * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.unmountcomponentatnode\n   *\n   * @param {DOMElement} container DOM element containing a React component.\n   * @return {boolean} True if a component was found in and unmounted from\n   *                   `container`\n   */\n  unmountComponentAtNode: function (container) {\n    // Various parts of our code (such as ReactCompositeComponent's\n    // _renderValidatedComponent) assume that calls to render aren't nested;\n    // verify that that's the case. (Strictly speaking, unmounting won't cause a\n    // render but we still don't expect to be in a render call here.)\n    \"development\" !== 'production' ? warning(ReactCurrentOwner.current == null, 'unmountComponentAtNode(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from render ' + 'is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0;\n\n    !isValidContainer(container) ? \"development\" !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : _prodInvariant('40') : void 0;\n\n    if (\"development\" !== 'production') {\n      \"development\" !== 'production' ? warning(!nodeIsRenderedByOtherInstance(container), 'unmountComponentAtNode(): The node you\\'re attempting to unmount ' + 'was rendered by another copy of React.') : void 0;\n    }\n\n    var prevComponent = getTopLevelWrapperInContainer(container);\n    if (!prevComponent) {\n      // Check if the node being unmounted was rendered by React, but isn't a\n      // root node.\n      var containerHasNonRootReactChild = hasNonRootReactChild(container);\n\n      // Check if the container itself is a React root node.\n      var isContainerReactRoot = container.nodeType === 1 && container.hasAttribute(ROOT_ATTR_NAME);\n\n      if (\"development\" !== 'production') {\n        \"development\" !== 'production' ? warning(!containerHasNonRootReactChild, 'unmountComponentAtNode(): The node you\\'re attempting to unmount ' + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.') : void 0;\n      }\n\n      return false;\n    }\n    delete instancesByReactRootID[prevComponent._instance.rootID];\n    ReactUpdates.batchedUpdates(unmountComponentFromNode, prevComponent, container, false);\n    return true;\n  },\n\n  _mountImageIntoNode: function (markup, container, instance, shouldReuseMarkup, transaction) {\n    !isValidContainer(container) ? \"development\" !== 'production' ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : _prodInvariant('41') : void 0;\n\n    if (shouldReuseMarkup) {\n      var rootElement = getReactRootElementInContainer(container);\n      if (ReactMarkupChecksum.canReuseMarkup(markup, rootElement)) {\n        ReactDOMComponentTree.precacheNode(instance, rootElement);\n        return;\n      } else {\n        var checksum = rootElement.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n        rootElement.removeAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n\n        var rootMarkup = rootElement.outerHTML;\n        rootElement.setAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME, checksum);\n\n        var normalizedMarkup = markup;\n        if (\"development\" !== 'production') {\n          // because rootMarkup is retrieved from the DOM, various normalizations\n          // will have occurred which will not be present in `markup`. Here,\n          // insert markup into a <div> or <iframe> depending on the container\n          // type to perform the same normalizations before comparing.\n          var normalizer;\n          if (container.nodeType === ELEMENT_NODE_TYPE) {\n            normalizer = document.createElement('div');\n            normalizer.innerHTML = markup;\n            normalizedMarkup = normalizer.innerHTML;\n          } else {\n            normalizer = document.createElement('iframe');\n            document.body.appendChild(normalizer);\n            normalizer.contentDocument.write(markup);\n            normalizedMarkup = normalizer.contentDocument.documentElement.outerHTML;\n            document.body.removeChild(normalizer);\n          }\n        }\n\n        var diffIndex = firstDifferenceIndex(normalizedMarkup, rootMarkup);\n        var difference = ' (client) ' + normalizedMarkup.substring(diffIndex - 20, diffIndex + 20) + '\\n (server) ' + rootMarkup.substring(diffIndex - 20, diffIndex + 20);\n\n        !(container.nodeType !== DOC_NODE_TYPE) ? \"development\" !== 'production' ? invariant(false, 'You\\'re trying to render a component to the document using server rendering but the checksum was invalid. This usually means you rendered a different component type or props on the client from the one on the server, or your render() methods are impure. React cannot handle this case due to cross-browser quirks by rendering at the document root. You should look for environment dependent code in your components and ensure the props are the same client and server side:\\n%s', difference) : _prodInvariant('42', difference) : void 0;\n\n        if (\"development\" !== 'production') {\n          \"development\" !== 'production' ? warning(false, 'React attempted to reuse markup in a container but the ' + 'checksum was invalid. This generally means that you are ' + 'using server rendering and the markup generated on the ' + 'server was not what the client was expecting. React injected ' + 'new markup to compensate which works but you have lost many ' + 'of the benefits of server rendering. Instead, figure out ' + 'why the markup being generated is different on the client ' + 'or server:\\n%s', difference) : void 0;\n        }\n      }\n    }\n\n    !(container.nodeType !== DOC_NODE_TYPE) ? \"development\" !== 'production' ? invariant(false, 'You\\'re trying to render a component to the document but you didn\\'t use server rendering. We can\\'t do this without using server rendering due to cross-browser quirks. See ReactDOMServer.renderToString() for server rendering.') : _prodInvariant('43') : void 0;\n\n    if (transaction.useCreateElement) {\n      while (container.lastChild) {\n        container.removeChild(container.lastChild);\n      }\n      DOMLazyTree.insertTreeBefore(container, markup, null);\n    } else {\n      setInnerHTML(container, markup);\n      ReactDOMComponentTree.precacheNode(instance, container.firstChild);\n    }\n\n    if (\"development\" !== 'production') {\n      var hostNode = ReactDOMComponentTree.getInstanceFromNode(container.firstChild);\n      if (hostNode._debugID !== 0) {\n        ReactInstrumentation.debugTool.onHostOperation(hostNode._debugID, 'mount', markup.toString());\n      }\n    }\n  }\n};\n\nmodule.exports = ReactMount;\n},{\"10\":10,\"135\":135,\"140\":140,\"142\":142,\"144\":144,\"155\":155,\"162\":162,\"171\":171,\"27\":27,\"37\":37,\"42\":42,\"43\":43,\"46\":46,\"61\":61,\"67\":67,\"72\":72,\"73\":73,\"75\":75,\"8\":8,\"88\":88,\"95\":95,\"96\":96}],77:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMultiChild\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar ReactComponentEnvironment = _dereq_(34);\nvar ReactInstanceMap = _dereq_(72);\nvar ReactInstrumentation = _dereq_(73);\nvar ReactMultiChildUpdateTypes = _dereq_(78);\n\nvar ReactCurrentOwner = _dereq_(37);\nvar ReactReconciler = _dereq_(88);\nvar ReactChildReconciler = _dereq_(28);\n\nvar emptyFunction = _dereq_(154);\nvar flattenChildren = _dereq_(124);\nvar invariant = _dereq_(162);\n\n/**\n * Make an update for markup to be rendered and inserted at a supplied index.\n *\n * @param {string} markup Markup that renders into an element.\n * @param {number} toIndex Destination index.\n * @private\n */\nfunction makeInsertMarkup(markup, afterNode, toIndex) {\n  // NOTE: Null values reduce hidden classes.\n  return {\n    type: ReactMultiChildUpdateTypes.INSERT_MARKUP,\n    content: markup,\n    fromIndex: null,\n    fromNode: null,\n    toIndex: toIndex,\n    afterNode: afterNode\n  };\n}\n\n/**\n * Make an update for moving an existing element to another index.\n *\n * @param {number} fromIndex Source index of the existing element.\n * @param {number} toIndex Destination index of the element.\n * @private\n */\nfunction makeMove(child, afterNode, toIndex) {\n  // NOTE: Null values reduce hidden classes.\n  return {\n    type: ReactMultiChildUpdateTypes.MOVE_EXISTING,\n    content: null,\n    fromIndex: child._mountIndex,\n    fromNode: ReactReconciler.getHostNode(child),\n    toIndex: toIndex,\n    afterNode: afterNode\n  };\n}\n\n/**\n * Make an update for removing an element at an index.\n *\n * @param {number} fromIndex Index of the element to remove.\n * @private\n */\nfunction makeRemove(child, node) {\n  // NOTE: Null values reduce hidden classes.\n  return {\n    type: ReactMultiChildUpdateTypes.REMOVE_NODE,\n    content: null,\n    fromIndex: child._mountIndex,\n    fromNode: node,\n    toIndex: null,\n    afterNode: null\n  };\n}\n\n/**\n * Make an update for setting the markup of a node.\n *\n * @param {string} markup Markup that renders into an element.\n * @private\n */\nfunction makeSetMarkup(markup) {\n  // NOTE: Null values reduce hidden classes.\n  return {\n    type: ReactMultiChildUpdateTypes.SET_MARKUP,\n    content: markup,\n    fromIndex: null,\n    fromNode: null,\n    toIndex: null,\n    afterNode: null\n  };\n}\n\n/**\n * Make an update for setting the text content.\n *\n * @param {string} textContent Text content to set.\n * @private\n */\nfunction makeTextContent(textContent) {\n  // NOTE: Null values reduce hidden classes.\n  return {\n    type: ReactMultiChildUpdateTypes.TEXT_CONTENT,\n    content: textContent,\n    fromIndex: null,\n    fromNode: null,\n    toIndex: null,\n    afterNode: null\n  };\n}\n\n/**\n * Push an update, if any, onto the queue. Creates a new queue if none is\n * passed and always returns the queue. Mutative.\n */\nfunction enqueue(queue, update) {\n  if (update) {\n    queue = queue || [];\n    queue.push(update);\n  }\n  return queue;\n}\n\n/**\n * Processes any enqueued updates.\n *\n * @private\n */\nfunction processQueue(inst, updateQueue) {\n  ReactComponentEnvironment.processChildrenUpdates(inst, updateQueue);\n}\n\nvar setChildrenForInstrumentation = emptyFunction;\nif (\"development\" !== 'production') {\n  var getDebugID = function (inst) {\n    if (!inst._debugID) {\n      // Check for ART-like instances. TODO: This is silly/gross.\n      var internal;\n      if (internal = ReactInstanceMap.get(inst)) {\n        inst = internal;\n      }\n    }\n    return inst._debugID;\n  };\n  setChildrenForInstrumentation = function (children) {\n    var debugID = getDebugID(this);\n    // TODO: React Native empty components are also multichild.\n    // This means they still get into this method but don't have _debugID.\n    if (debugID !== 0) {\n      ReactInstrumentation.debugTool.onSetChildren(debugID, children ? Object.keys(children).map(function (key) {\n        return children[key]._debugID;\n      }) : []);\n    }\n  };\n}\n\n/**\n * ReactMultiChild are capable of reconciling multiple children.\n *\n * @class ReactMultiChild\n * @internal\n */\nvar ReactMultiChild = {\n\n  /**\n   * Provides common functionality for components that must reconcile multiple\n   * children. This is used by `ReactDOMComponent` to mount, update, and\n   * unmount child components.\n   *\n   * @lends {ReactMultiChild.prototype}\n   */\n  Mixin: {\n\n    _reconcilerInstantiateChildren: function (nestedChildren, transaction, context) {\n      if (\"development\" !== 'production') {\n        var selfDebugID = getDebugID(this);\n        if (this._currentElement) {\n          try {\n            ReactCurrentOwner.current = this._currentElement._owner;\n            return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context, selfDebugID);\n          } finally {\n            ReactCurrentOwner.current = null;\n          }\n        }\n      }\n      return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context);\n    },\n\n    _reconcilerUpdateChildren: function (prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context) {\n      var nextChildren;\n      var selfDebugID = 0;\n      if (\"development\" !== 'production') {\n        selfDebugID = getDebugID(this);\n        if (this._currentElement) {\n          try {\n            ReactCurrentOwner.current = this._currentElement._owner;\n            nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);\n          } finally {\n            ReactCurrentOwner.current = null;\n          }\n          ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);\n          return nextChildren;\n        }\n      }\n      nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);\n      ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);\n      return nextChildren;\n    },\n\n    /**\n     * Generates a \"mount image\" for each of the supplied children. In the case\n     * of `ReactDOMComponent`, a mount image is a string of markup.\n     *\n     * @param {?object} nestedChildren Nested child maps.\n     * @return {array} An array of mounted representations.\n     * @internal\n     */\n    mountChildren: function (nestedChildren, transaction, context) {\n      var children = this._reconcilerInstantiateChildren(nestedChildren, transaction, context);\n      this._renderedChildren = children;\n\n      var mountImages = [];\n      var index = 0;\n      for (var name in children) {\n        if (children.hasOwnProperty(name)) {\n          var child = children[name];\n          var selfDebugID = 0;\n          if (\"development\" !== 'production') {\n            selfDebugID = getDebugID(this);\n          }\n          var mountImage = ReactReconciler.mountComponent(child, transaction, this, this._hostContainerInfo, context, selfDebugID);\n          child._mountIndex = index++;\n          mountImages.push(mountImage);\n        }\n      }\n\n      if (\"development\" !== 'production') {\n        setChildrenForInstrumentation.call(this, children);\n      }\n\n      return mountImages;\n    },\n\n    /**\n     * Replaces any rendered children with a text content string.\n     *\n     * @param {string} nextContent String of content.\n     * @internal\n     */\n    updateTextContent: function (nextContent) {\n      var prevChildren = this._renderedChildren;\n      // Remove any rendered children.\n      ReactChildReconciler.unmountChildren(prevChildren, false);\n      for (var name in prevChildren) {\n        if (prevChildren.hasOwnProperty(name)) {\n          !false ? \"development\" !== 'production' ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0;\n        }\n      }\n      // Set new text content.\n      var updates = [makeTextContent(nextContent)];\n      processQueue(this, updates);\n    },\n\n    /**\n     * Replaces any rendered children with a markup string.\n     *\n     * @param {string} nextMarkup String of markup.\n     * @internal\n     */\n    updateMarkup: function (nextMarkup) {\n      var prevChildren = this._renderedChildren;\n      // Remove any rendered children.\n      ReactChildReconciler.unmountChildren(prevChildren, false);\n      for (var name in prevChildren) {\n        if (prevChildren.hasOwnProperty(name)) {\n          !false ? \"development\" !== 'production' ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0;\n        }\n      }\n      var updates = [makeSetMarkup(nextMarkup)];\n      processQueue(this, updates);\n    },\n\n    /**\n     * Updates the rendered children with new children.\n     *\n     * @param {?object} nextNestedChildrenElements Nested child element maps.\n     * @param {ReactReconcileTransaction} transaction\n     * @internal\n     */\n    updateChildren: function (nextNestedChildrenElements, transaction, context) {\n      // Hook used by React ART\n      this._updateChildren(nextNestedChildrenElements, transaction, context);\n    },\n\n    /**\n     * @param {?object} nextNestedChildrenElements Nested child element maps.\n     * @param {ReactReconcileTransaction} transaction\n     * @final\n     * @protected\n     */\n    _updateChildren: function (nextNestedChildrenElements, transaction, context) {\n      var prevChildren = this._renderedChildren;\n      var removedNodes = {};\n      var mountImages = [];\n      var nextChildren = this._reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context);\n      if (!nextChildren && !prevChildren) {\n        return;\n      }\n      var updates = null;\n      var name;\n      // `nextIndex` will increment for each child in `nextChildren`, but\n      // `lastIndex` will be the last index visited in `prevChildren`.\n      var nextIndex = 0;\n      var lastIndex = 0;\n      // `nextMountIndex` will increment for each newly mounted child.\n      var nextMountIndex = 0;\n      var lastPlacedNode = null;\n      for (name in nextChildren) {\n        if (!nextChildren.hasOwnProperty(name)) {\n          continue;\n        }\n        var prevChild = prevChildren && prevChildren[name];\n        var nextChild = nextChildren[name];\n        if (prevChild === nextChild) {\n          updates = enqueue(updates, this.moveChild(prevChild, lastPlacedNode, nextIndex, lastIndex));\n          lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n          prevChild._mountIndex = nextIndex;\n        } else {\n          if (prevChild) {\n            // Update `lastIndex` before `_mountIndex` gets unset by unmounting.\n            lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n            // The `removedNodes` loop below will actually remove the child.\n          }\n          // The child must be instantiated before it's mounted.\n          updates = enqueue(updates, this._mountChildAtIndex(nextChild, mountImages[nextMountIndex], lastPlacedNode, nextIndex, transaction, context));\n          nextMountIndex++;\n        }\n        nextIndex++;\n        lastPlacedNode = ReactReconciler.getHostNode(nextChild);\n      }\n      // Remove children that are no longer present.\n      for (name in removedNodes) {\n        if (removedNodes.hasOwnProperty(name)) {\n          updates = enqueue(updates, this._unmountChild(prevChildren[name], removedNodes[name]));\n        }\n      }\n      if (updates) {\n        processQueue(this, updates);\n      }\n      this._renderedChildren = nextChildren;\n\n      if (\"development\" !== 'production') {\n        setChildrenForInstrumentation.call(this, nextChildren);\n      }\n    },\n\n    /**\n     * Unmounts all rendered children. This should be used to clean up children\n     * when this component is unmounted. It does not actually perform any\n     * backend operations.\n     *\n     * @internal\n     */\n    unmountChildren: function (safely) {\n      var renderedChildren = this._renderedChildren;\n      ReactChildReconciler.unmountChildren(renderedChildren, safely);\n      this._renderedChildren = null;\n    },\n\n    /**\n     * Moves a child component to the supplied index.\n     *\n     * @param {ReactComponent} child Component to move.\n     * @param {number} toIndex Destination index of the element.\n     * @param {number} lastIndex Last index visited of the siblings of `child`.\n     * @protected\n     */\n    moveChild: function (child, afterNode, toIndex, lastIndex) {\n      // If the index of `child` is less than `lastIndex`, then it needs to\n      // be moved. Otherwise, we do not need to move it because a child will be\n      // inserted or moved before `child`.\n      if (child._mountIndex < lastIndex) {\n        return makeMove(child, afterNode, toIndex);\n      }\n    },\n\n    /**\n     * Creates a child component.\n     *\n     * @param {ReactComponent} child Component to create.\n     * @param {string} mountImage Markup to insert.\n     * @protected\n     */\n    createChild: function (child, afterNode, mountImage) {\n      return makeInsertMarkup(mountImage, afterNode, child._mountIndex);\n    },\n\n    /**\n     * Removes a child component.\n     *\n     * @param {ReactComponent} child Child to remove.\n     * @protected\n     */\n    removeChild: function (child, node) {\n      return makeRemove(child, node);\n    },\n\n    /**\n     * Mounts a child with the supplied name.\n     *\n     * NOTE: This is part of `updateChildren` and is here for readability.\n     *\n     * @param {ReactComponent} child Component to mount.\n     * @param {string} name Name of the child.\n     * @param {number} index Index at which to insert the child.\n     * @param {ReactReconcileTransaction} transaction\n     * @private\n     */\n    _mountChildAtIndex: function (child, mountImage, afterNode, index, transaction, context) {\n      child._mountIndex = index;\n      return this.createChild(child, afterNode, mountImage);\n    },\n\n    /**\n     * Unmounts a rendered child.\n     *\n     * NOTE: This is part of `updateChildren` and is here for readability.\n     *\n     * @param {ReactComponent} child Component to unmount.\n     * @private\n     */\n    _unmountChild: function (child, node) {\n      var update = this.removeChild(child, node);\n      child._mountIndex = null;\n      return update;\n    }\n\n  }\n\n};\n\nmodule.exports = ReactMultiChild;\n},{\"124\":124,\"140\":140,\"154\":154,\"162\":162,\"28\":28,\"34\":34,\"37\":37,\"72\":72,\"73\":73,\"78\":78,\"88\":88}],78:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMultiChildUpdateTypes\n */\n\n'use strict';\n\nvar keyMirror = _dereq_(165);\n\n/**\n * When a component's children are updated, a series of update configuration\n * objects are created in order to batch and serialize the required changes.\n *\n * Enumerates all the possible types of update configurations.\n *\n * @internal\n */\nvar ReactMultiChildUpdateTypes = keyMirror({\n  INSERT_MARKUP: null,\n  MOVE_EXISTING: null,\n  REMOVE_NODE: null,\n  SET_MARKUP: null,\n  TEXT_CONTENT: null\n});\n\nmodule.exports = ReactMultiChildUpdateTypes;\n},{\"165\":165}],79:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactNodeTypes\n * \n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar ReactElement = _dereq_(61);\n\nvar invariant = _dereq_(162);\n\nvar ReactNodeTypes = {\n  HOST: 0,\n  COMPOSITE: 1,\n  EMPTY: 2,\n\n  getType: function (node) {\n    if (node === null || node === false) {\n      return ReactNodeTypes.EMPTY;\n    } else if (ReactElement.isValidElement(node)) {\n      if (typeof node.type === 'function') {\n        return ReactNodeTypes.COMPOSITE;\n      } else {\n        return ReactNodeTypes.HOST;\n      }\n    }\n    !false ? \"development\" !== 'production' ? invariant(false, 'Unexpected node: %s', node) : _prodInvariant('26', node) : void 0;\n  }\n};\n\nmodule.exports = ReactNodeTypes;\n},{\"140\":140,\"162\":162,\"61\":61}],80:[function(_dereq_,module,exports){\n/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactNoopUpdateQueue\n */\n\n'use strict';\n\nvar warning = _dereq_(171);\n\nfunction warnNoop(publicInstance, callerName) {\n  if (\"development\" !== 'production') {\n    var constructor = publicInstance.constructor;\n    \"development\" !== 'production' ? warning(false, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0;\n  }\n}\n\n/**\n * This is the abstract API for an update queue.\n */\nvar ReactNoopUpdateQueue = {\n\n  /**\n   * Checks whether or not this composite component is mounted.\n   * @param {ReactClass} publicInstance The instance we want to test.\n   * @return {boolean} True if mounted, false otherwise.\n   * @protected\n   * @final\n   */\n  isMounted: function (publicInstance) {\n    return false;\n  },\n\n  /**\n   * Enqueue a callback that will be executed after all the pending updates\n   * have processed.\n   *\n   * @param {ReactClass} publicInstance The instance to use as `this` context.\n   * @param {?function} callback Called after state is updated.\n   * @internal\n   */\n  enqueueCallback: function (publicInstance, callback) {},\n\n  /**\n   * Forces an update. This should only be invoked when it is known with\n   * certainty that we are **not** in a DOM transaction.\n   *\n   * You may want to call this when you know that some deeper aspect of the\n   * component's state has changed but `setState` was not called.\n   *\n   * This will not invoke `shouldComponentUpdate`, but it will invoke\n   * `componentWillUpdate` and `componentDidUpdate`.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @internal\n   */\n  enqueueForceUpdate: function (publicInstance) {\n    warnNoop(publicInstance, 'forceUpdate');\n  },\n\n  /**\n   * Replaces all of the state. Always use this or `setState` to mutate state.\n   * You should treat `this.state` as immutable.\n   *\n   * There is no guarantee that `this.state` will be immediately updated, so\n   * accessing `this.state` after calling this method may return the old value.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} completeState Next state.\n   * @internal\n   */\n  enqueueReplaceState: function (publicInstance, completeState) {\n    warnNoop(publicInstance, 'replaceState');\n  },\n\n  /**\n   * Sets a subset of the state. This only exists because _pendingState is\n   * internal. This provides a merging strategy that is not available to deep\n   * properties which is confusing. TODO: Expose pendingState or don't use it\n   * during the merge.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} partialState Next partial state to be merged with state.\n   * @internal\n   */\n  enqueueSetState: function (publicInstance, partialState) {\n    warnNoop(publicInstance, 'setState');\n  }\n};\n\nmodule.exports = ReactNoopUpdateQueue;\n},{\"171\":171}],81:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactOwner\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar invariant = _dereq_(162);\n\n/**\n * ReactOwners are capable of storing references to owned components.\n *\n * All components are capable of //being// referenced by owner components, but\n * only ReactOwner components are capable of //referencing// owned components.\n * The named reference is known as a \"ref\".\n *\n * Refs are available when mounted and updated during reconciliation.\n *\n *   var MyComponent = React.createClass({\n *     render: function() {\n *       return (\n *         <div onClick={this.handleClick}>\n *           <CustomComponent ref=\"custom\" />\n *         </div>\n *       );\n *     },\n *     handleClick: function() {\n *       this.refs.custom.handleClick();\n *     },\n *     componentDidMount: function() {\n *       this.refs.custom.initialize();\n *     }\n *   });\n *\n * Refs should rarely be used. When refs are used, they should only be done to\n * control data that is not handled by React's data flow.\n *\n * @class ReactOwner\n */\nvar ReactOwner = {\n\n  /**\n   * @param {?object} object\n   * @return {boolean} True if `object` is a valid owner.\n   * @final\n   */\n  isValidOwner: function (object) {\n    return !!(object && typeof object.attachRef === 'function' && typeof object.detachRef === 'function');\n  },\n\n  /**\n   * Adds a component by ref to an owner component.\n   *\n   * @param {ReactComponent} component Component to reference.\n   * @param {string} ref Name by which to refer to the component.\n   * @param {ReactOwner} owner Component on which to record the ref.\n   * @final\n   * @internal\n   */\n  addComponentAsRefTo: function (component, ref, owner) {\n    !ReactOwner.isValidOwner(owner) ? \"development\" !== 'production' ? invariant(false, 'addComponentAsRefTo(...): Only a ReactOwner can have refs. You might be adding a ref to a component that was not created inside a component\\'s `render` method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner).') : _prodInvariant('119') : void 0;\n    owner.attachRef(ref, component);\n  },\n\n  /**\n   * Removes a component by ref from an owner component.\n   *\n   * @param {ReactComponent} component Component to dereference.\n   * @param {string} ref Name of the ref to remove.\n   * @param {ReactOwner} owner Component on which the ref is recorded.\n   * @final\n   * @internal\n   */\n  removeComponentAsRefFrom: function (component, ref, owner) {\n    !ReactOwner.isValidOwner(owner) ? \"development\" !== 'production' ? invariant(false, 'removeComponentAsRefFrom(...): Only a ReactOwner can have refs. You might be removing a ref to a component that was not created inside a component\\'s `render` method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner).') : _prodInvariant('120') : void 0;\n    var ownerPublicInstance = owner.getPublicInstance();\n    // Check that `component`'s owner is still alive and that `component` is still the current ref\n    // because we do not want to detach the ref if another component stole it.\n    if (ownerPublicInstance && ownerPublicInstance.refs[ref] === component.getPublicInstance()) {\n      owner.detachRef(ref);\n    }\n  }\n\n};\n\nmodule.exports = ReactOwner;\n},{\"140\":140,\"162\":162}],82:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypeLocationNames\n */\n\n'use strict';\n\nvar ReactPropTypeLocationNames = {};\n\nif (\"development\" !== 'production') {\n  ReactPropTypeLocationNames = {\n    prop: 'prop',\n    context: 'context',\n    childContext: 'child context'\n  };\n}\n\nmodule.exports = ReactPropTypeLocationNames;\n},{}],83:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypeLocations\n */\n\n'use strict';\n\nvar keyMirror = _dereq_(165);\n\nvar ReactPropTypeLocations = keyMirror({\n  prop: null,\n  context: null,\n  childContext: null\n});\n\nmodule.exports = ReactPropTypeLocations;\n},{\"165\":165}],84:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypes\n */\n\n'use strict';\n\nvar ReactElement = _dereq_(61);\nvar ReactPropTypeLocationNames = _dereq_(82);\nvar ReactPropTypesSecret = _dereq_(85);\n\nvar emptyFunction = _dereq_(154);\nvar getIteratorFn = _dereq_(131);\nvar warning = _dereq_(171);\n\n/**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n *   var Props = require('ReactPropTypes');\n *   var MyArticle = React.createClass({\n *     propTypes: {\n *       // An optional string prop named \"description\".\n *       description: Props.string,\n *\n *       // A required enum prop named \"category\".\n *       category: Props.oneOf(['News','Photos']).isRequired,\n *\n *       // A prop named \"dialog\" that requires an instance of Dialog.\n *       dialog: Props.instanceOf(Dialog).isRequired\n *     },\n *     render: function() { ... }\n *   });\n *\n * A more formal specification of how these methods are used:\n *\n *   type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n *   decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n *  var MyLink = React.createClass({\n *    propTypes: {\n *      // An optional string or URI prop named \"href\".\n *      href: function(props, propName, componentName) {\n *        var propValue = props[propName];\n *        if (propValue != null && typeof propValue !== 'string' &&\n *            !(propValue instanceof URI)) {\n *          return new Error(\n *            'Expected a string or an URI for ' + propName + ' in ' +\n *            componentName\n *          );\n *        }\n *      }\n *    },\n *    render: function() {...}\n *  });\n *\n * @internal\n */\n\nvar ANONYMOUS = '<<anonymous>>';\n\nvar ReactPropTypes = {\n  array: createPrimitiveTypeChecker('array'),\n  bool: createPrimitiveTypeChecker('boolean'),\n  func: createPrimitiveTypeChecker('function'),\n  number: createPrimitiveTypeChecker('number'),\n  object: createPrimitiveTypeChecker('object'),\n  string: createPrimitiveTypeChecker('string'),\n  symbol: createPrimitiveTypeChecker('symbol'),\n\n  any: createAnyTypeChecker(),\n  arrayOf: createArrayOfTypeChecker,\n  element: createElementTypeChecker(),\n  instanceOf: createInstanceTypeChecker,\n  node: createNodeChecker(),\n  objectOf: createObjectOfTypeChecker,\n  oneOf: createEnumTypeChecker,\n  oneOfType: createUnionTypeChecker,\n  shape: createShapeTypeChecker\n};\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n/*eslint-disable no-self-compare*/\nfunction is(x, y) {\n  // SameValue algorithm\n  if (x === y) {\n    // Steps 1-5, 7-10\n    // Steps 6.b-6.e: +0 != -0\n    return x !== 0 || 1 / x === 1 / y;\n  } else {\n    // Step 6.a: NaN == NaN\n    return x !== x && y !== y;\n  }\n}\n/*eslint-enable no-self-compare*/\n\n/**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\nfunction PropTypeError(message) {\n  this.message = message;\n  this.stack = '';\n}\n// Make `instanceof Error` still work for returned errors.\nPropTypeError.prototype = Error.prototype;\n\nfunction createChainableTypeChecker(validate) {\n  if (\"development\" !== 'production') {\n    var manualPropTypeCallCache = {};\n  }\n  function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n    componentName = componentName || ANONYMOUS;\n    propFullName = propFullName || propName;\n    if (\"development\" !== 'production') {\n      if (secret !== ReactPropTypesSecret && typeof console !== 'undefined') {\n        var cacheKey = componentName + ':' + propName;\n        if (!manualPropTypeCallCache[cacheKey]) {\n          \"development\" !== 'production' ? warning(false, 'You are manually calling a React.PropTypes validation ' + 'function for the `%s` prop on `%s`. This is deprecated ' + 'and will not work in the next major version. You may be ' + 'seeing this warning due to a third-party PropTypes library. ' + 'See https://fb.me/react-warning-dont-call-proptypes for details.', propFullName, componentName) : void 0;\n          manualPropTypeCallCache[cacheKey] = true;\n        }\n      }\n    }\n    if (props[propName] == null) {\n      var locationName = ReactPropTypeLocationNames[location];\n      if (isRequired) {\n        return new PropTypeError('Required ' + locationName + ' `' + propFullName + '` was not specified in ' + ('`' + componentName + '`.'));\n      }\n      return null;\n    } else {\n      return validate(props, propName, componentName, location, propFullName);\n    }\n  }\n\n  var chainedCheckType = checkType.bind(null, false);\n  chainedCheckType.isRequired = checkType.bind(null, true);\n\n  return chainedCheckType;\n}\n\nfunction createPrimitiveTypeChecker(expectedType) {\n  function validate(props, propName, componentName, location, propFullName, secret) {\n    var propValue = props[propName];\n    var propType = getPropType(propValue);\n    if (propType !== expectedType) {\n      var locationName = ReactPropTypeLocationNames[location];\n      // `propValue` being instance of, say, date/regexp, pass the 'object'\n      // check, but we can offer a more precise error message here rather than\n      // 'of type `object`'.\n      var preciseType = getPreciseType(propValue);\n\n      return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createAnyTypeChecker() {\n  return createChainableTypeChecker(emptyFunction.thatReturns(null));\n}\n\nfunction createArrayOfTypeChecker(typeChecker) {\n  function validate(props, propName, componentName, location, propFullName) {\n    if (typeof typeChecker !== 'function') {\n      return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n    }\n    var propValue = props[propName];\n    if (!Array.isArray(propValue)) {\n      var locationName = ReactPropTypeLocationNames[location];\n      var propType = getPropType(propValue);\n      return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n    }\n    for (var i = 0; i < propValue.length; i++) {\n      var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n      if (error instanceof Error) {\n        return error;\n      }\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createElementTypeChecker() {\n  function validate(props, propName, componentName, location, propFullName) {\n    var propValue = props[propName];\n    if (!ReactElement.isValidElement(propValue)) {\n      var locationName = ReactPropTypeLocationNames[location];\n      var propType = getPropType(propValue);\n      return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createInstanceTypeChecker(expectedClass) {\n  function validate(props, propName, componentName, location, propFullName) {\n    if (!(props[propName] instanceof expectedClass)) {\n      var locationName = ReactPropTypeLocationNames[location];\n      var expectedClassName = expectedClass.name || ANONYMOUS;\n      var actualClassName = getClassName(props[propName]);\n      return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createEnumTypeChecker(expectedValues) {\n  if (!Array.isArray(expectedValues)) {\n    \"development\" !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n    return emptyFunction.thatReturnsNull;\n  }\n\n  function validate(props, propName, componentName, location, propFullName) {\n    var propValue = props[propName];\n    for (var i = 0; i < expectedValues.length; i++) {\n      if (is(propValue, expectedValues[i])) {\n        return null;\n      }\n    }\n\n    var locationName = ReactPropTypeLocationNames[location];\n    var valuesString = JSON.stringify(expectedValues);\n    return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createObjectOfTypeChecker(typeChecker) {\n  function validate(props, propName, componentName, location, propFullName) {\n    if (typeof typeChecker !== 'function') {\n      return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n    }\n    var propValue = props[propName];\n    var propType = getPropType(propValue);\n    if (propType !== 'object') {\n      var locationName = ReactPropTypeLocationNames[location];\n      return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n    }\n    for (var key in propValue) {\n      if (propValue.hasOwnProperty(key)) {\n        var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n        if (error instanceof Error) {\n          return error;\n        }\n      }\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createUnionTypeChecker(arrayOfTypeCheckers) {\n  if (!Array.isArray(arrayOfTypeCheckers)) {\n    \"development\" !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n    return emptyFunction.thatReturnsNull;\n  }\n\n  function validate(props, propName, componentName, location, propFullName) {\n    for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n      var checker = arrayOfTypeCheckers[i];\n      if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n        return null;\n      }\n    }\n\n    var locationName = ReactPropTypeLocationNames[location];\n    return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createNodeChecker() {\n  function validate(props, propName, componentName, location, propFullName) {\n    if (!isNode(props[propName])) {\n      var locationName = ReactPropTypeLocationNames[location];\n      return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createShapeTypeChecker(shapeTypes) {\n  function validate(props, propName, componentName, location, propFullName) {\n    var propValue = props[propName];\n    var propType = getPropType(propValue);\n    if (propType !== 'object') {\n      var locationName = ReactPropTypeLocationNames[location];\n      return new PropTypeError('Invalid ' + locationName + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n    }\n    for (var key in shapeTypes) {\n      var checker = shapeTypes[key];\n      if (!checker) {\n        continue;\n      }\n      var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n      if (error) {\n        return error;\n      }\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction isNode(propValue) {\n  switch (typeof propValue) {\n    case 'number':\n    case 'string':\n    case 'undefined':\n      return true;\n    case 'boolean':\n      return !propValue;\n    case 'object':\n      if (Array.isArray(propValue)) {\n        return propValue.every(isNode);\n      }\n      if (propValue === null || ReactElement.isValidElement(propValue)) {\n        return true;\n      }\n\n      var iteratorFn = getIteratorFn(propValue);\n      if (iteratorFn) {\n        var iterator = iteratorFn.call(propValue);\n        var step;\n        if (iteratorFn !== propValue.entries) {\n          while (!(step = iterator.next()).done) {\n            if (!isNode(step.value)) {\n              return false;\n            }\n          }\n        } else {\n          // Iterator will provide entry [k,v] tuples rather than values.\n          while (!(step = iterator.next()).done) {\n            var entry = step.value;\n            if (entry) {\n              if (!isNode(entry[1])) {\n                return false;\n              }\n            }\n          }\n        }\n      } else {\n        return false;\n      }\n\n      return true;\n    default:\n      return false;\n  }\n}\n\nfunction isSymbol(propType, propValue) {\n  // Native Symbol.\n  if (propType === 'symbol') {\n    return true;\n  }\n\n  // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n  if (propValue['@@toStringTag'] === 'Symbol') {\n    return true;\n  }\n\n  // Fallback for non-spec compliant Symbols which are polyfilled.\n  if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n    return true;\n  }\n\n  return false;\n}\n\n// Equivalent of `typeof` but with special handling for array and regexp.\nfunction getPropType(propValue) {\n  var propType = typeof propValue;\n  if (Array.isArray(propValue)) {\n    return 'array';\n  }\n  if (propValue instanceof RegExp) {\n    // Old webkits (at least until Android 4.0) return 'function' rather than\n    // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n    // passes PropTypes.object.\n    return 'object';\n  }\n  if (isSymbol(propType, propValue)) {\n    return 'symbol';\n  }\n  return propType;\n}\n\n// This handles more types than `getPropType`. Only used for error messages.\n// See `createPrimitiveTypeChecker`.\nfunction getPreciseType(propValue) {\n  var propType = getPropType(propValue);\n  if (propType === 'object') {\n    if (propValue instanceof Date) {\n      return 'date';\n    } else if (propValue instanceof RegExp) {\n      return 'regexp';\n    }\n  }\n  return propType;\n}\n\n// Returns class name of the object, if any.\nfunction getClassName(propValue) {\n  if (!propValue.constructor || !propValue.constructor.name) {\n    return ANONYMOUS;\n  }\n  return propValue.constructor.name;\n}\n\nmodule.exports = ReactPropTypes;\n},{\"131\":131,\"154\":154,\"171\":171,\"61\":61,\"82\":82,\"85\":85}],85:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypesSecret\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n},{}],86:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPureComponent\n */\n\n'use strict';\n\nvar _assign = _dereq_(172);\n\nvar ReactComponent = _dereq_(32);\nvar ReactNoopUpdateQueue = _dereq_(80);\n\nvar emptyObject = _dereq_(155);\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction ReactPureComponent(props, context, updater) {\n  // Duplicated from ReactComponent.\n  this.props = props;\n  this.context = context;\n  this.refs = emptyObject;\n  // We initialize the default updater but the real one gets injected by the\n  // renderer.\n  this.updater = updater || ReactNoopUpdateQueue;\n}\n\nfunction ComponentDummy() {}\nComponentDummy.prototype = ReactComponent.prototype;\nReactPureComponent.prototype = new ComponentDummy();\nReactPureComponent.prototype.constructor = ReactPureComponent;\n// Avoid an extra prototype jump for these methods.\n_assign(ReactPureComponent.prototype, ReactComponent.prototype);\nReactPureComponent.prototype.isPureReactComponent = true;\n\nmodule.exports = ReactPureComponent;\n},{\"155\":155,\"172\":172,\"32\":32,\"80\":80}],87:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactReconcileTransaction\n */\n\n'use strict';\n\nvar _assign = _dereq_(172);\n\nvar CallbackQueue = _dereq_(5);\nvar PooledClass = _dereq_(25);\nvar ReactBrowserEventEmitter = _dereq_(27);\nvar ReactInputSelection = _dereq_(71);\nvar ReactInstrumentation = _dereq_(73);\nvar Transaction = _dereq_(114);\nvar ReactUpdateQueue = _dereq_(95);\n\n/**\n * Ensures that, when possible, the selection range (currently selected text\n * input) is not disturbed by performing the transaction.\n */\nvar SELECTION_RESTORATION = {\n  /**\n   * @return {Selection} Selection information.\n   */\n  initialize: ReactInputSelection.getSelectionInformation,\n  /**\n   * @param {Selection} sel Selection information returned from `initialize`.\n   */\n  close: ReactInputSelection.restoreSelection\n};\n\n/**\n * Suppresses events (blur/focus) that could be inadvertently dispatched due to\n * high level DOM manipulations (like temporarily removing a text input from the\n * DOM).\n */\nvar EVENT_SUPPRESSION = {\n  /**\n   * @return {boolean} The enabled status of `ReactBrowserEventEmitter` before\n   * the reconciliation.\n   */\n  initialize: function () {\n    var currentlyEnabled = ReactBrowserEventEmitter.isEnabled();\n    ReactBrowserEventEmitter.setEnabled(false);\n    return currentlyEnabled;\n  },\n\n  /**\n   * @param {boolean} previouslyEnabled Enabled status of\n   *   `ReactBrowserEventEmitter` before the reconciliation occurred. `close`\n   *   restores the previous value.\n   */\n  close: function (previouslyEnabled) {\n    ReactBrowserEventEmitter.setEnabled(previouslyEnabled);\n  }\n};\n\n/**\n * Provides a queue for collecting `componentDidMount` and\n * `componentDidUpdate` callbacks during the transaction.\n */\nvar ON_DOM_READY_QUEUEING = {\n  /**\n   * Initializes the internal `onDOMReady` queue.\n   */\n  initialize: function () {\n    this.reactMountReady.reset();\n  },\n\n  /**\n   * After DOM is flushed, invoke all registered `onDOMReady` callbacks.\n   */\n  close: function () {\n    this.reactMountReady.notifyAll();\n  }\n};\n\n/**\n * Executed within the scope of the `Transaction` instance. Consider these as\n * being member methods, but with an implied ordering while being isolated from\n * each other.\n */\nvar TRANSACTION_WRAPPERS = [SELECTION_RESTORATION, EVENT_SUPPRESSION, ON_DOM_READY_QUEUEING];\n\nif (\"development\" !== 'production') {\n  TRANSACTION_WRAPPERS.push({\n    initialize: ReactInstrumentation.debugTool.onBeginFlush,\n    close: ReactInstrumentation.debugTool.onEndFlush\n  });\n}\n\n/**\n * Currently:\n * - The order that these are listed in the transaction is critical:\n * - Suppresses events.\n * - Restores selection range.\n *\n * Future:\n * - Restore document/overflow scroll positions that were unintentionally\n *   modified via DOM insertions above the top viewport boundary.\n * - Implement/integrate with customized constraint based layout system and keep\n *   track of which dimensions must be remeasured.\n *\n * @class ReactReconcileTransaction\n */\nfunction ReactReconcileTransaction(useCreateElement) {\n  this.reinitializeTransaction();\n  // Only server-side rendering really needs this option (see\n  // `ReactServerRendering`), but server-side uses\n  // `ReactServerRenderingTransaction` instead. This option is here so that it's\n  // accessible and defaults to false when `ReactDOMComponent` and\n  // `ReactDOMTextComponent` checks it in `mountComponent`.`\n  this.renderToStaticMarkup = false;\n  this.reactMountReady = CallbackQueue.getPooled(null);\n  this.useCreateElement = useCreateElement;\n}\n\nvar Mixin = {\n  /**\n   * @see Transaction\n   * @abstract\n   * @final\n   * @return {array<object>} List of operation wrap procedures.\n   *   TODO: convert to array<TransactionWrapper>\n   */\n  getTransactionWrappers: function () {\n    return TRANSACTION_WRAPPERS;\n  },\n\n  /**\n   * @return {object} The queue to collect `onDOMReady` callbacks with.\n   */\n  getReactMountReady: function () {\n    return this.reactMountReady;\n  },\n\n  /**\n   * @return {object} The queue to collect React async events.\n   */\n  getUpdateQueue: function () {\n    return ReactUpdateQueue;\n  },\n\n  /**\n   * Save current transaction state -- if the return value from this method is\n   * passed to `rollback`, the transaction will be reset to that state.\n   */\n  checkpoint: function () {\n    // reactMountReady is the our only stateful wrapper\n    return this.reactMountReady.checkpoint();\n  },\n\n  rollback: function (checkpoint) {\n    this.reactMountReady.rollback(checkpoint);\n  },\n\n  /**\n   * `PooledClass` looks for this, and will invoke this before allowing this\n   * instance to be reused.\n   */\n  destructor: function () {\n    CallbackQueue.release(this.reactMountReady);\n    this.reactMountReady = null;\n  }\n};\n\n_assign(ReactReconcileTransaction.prototype, Transaction.Mixin, Mixin);\n\nPooledClass.addPoolingTo(ReactReconcileTransaction);\n\nmodule.exports = ReactReconcileTransaction;\n},{\"114\":114,\"172\":172,\"25\":25,\"27\":27,\"5\":5,\"71\":71,\"73\":73,\"95\":95}],88:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactReconciler\n */\n\n'use strict';\n\nvar ReactRef = _dereq_(89);\nvar ReactInstrumentation = _dereq_(73);\n\nvar warning = _dereq_(171);\n\n/**\n * Helper to call ReactRef.attachRefs with this composite component, split out\n * to avoid allocations in the transaction mount-ready queue.\n */\nfunction attachRefs() {\n  ReactRef.attachRefs(this, this._currentElement);\n}\n\nvar ReactReconciler = {\n\n  /**\n   * Initializes the component, renders markup, and registers event listeners.\n   *\n   * @param {ReactComponent} internalInstance\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @param {?object} the containing host component instance\n   * @param {?object} info about the host container\n   * @return {?string} Rendered markup to be inserted into the DOM.\n   * @final\n   * @internal\n   */\n  mountComponent: function (internalInstance, transaction, hostParent, hostContainerInfo, context, parentDebugID // 0 in production and for roots\n  ) {\n    if (\"development\" !== 'production') {\n      if (internalInstance._debugID !== 0) {\n        ReactInstrumentation.debugTool.onBeforeMountComponent(internalInstance._debugID, internalInstance._currentElement, parentDebugID);\n      }\n    }\n    var markup = internalInstance.mountComponent(transaction, hostParent, hostContainerInfo, context, parentDebugID);\n    if (internalInstance._currentElement && internalInstance._currentElement.ref != null) {\n      transaction.getReactMountReady().enqueue(attachRefs, internalInstance);\n    }\n    if (\"development\" !== 'production') {\n      if (internalInstance._debugID !== 0) {\n        ReactInstrumentation.debugTool.onMountComponent(internalInstance._debugID);\n      }\n    }\n    return markup;\n  },\n\n  /**\n   * Returns a value that can be passed to\n   * ReactComponentEnvironment.replaceNodeWithMarkup.\n   */\n  getHostNode: function (internalInstance) {\n    return internalInstance.getHostNode();\n  },\n\n  /**\n   * Releases any resources allocated by `mountComponent`.\n   *\n   * @final\n   * @internal\n   */\n  unmountComponent: function (internalInstance, safely) {\n    if (\"development\" !== 'production') {\n      if (internalInstance._debugID !== 0) {\n        ReactInstrumentation.debugTool.onBeforeUnmountComponent(internalInstance._debugID);\n      }\n    }\n    ReactRef.detachRefs(internalInstance, internalInstance._currentElement);\n    internalInstance.unmountComponent(safely);\n    if (\"development\" !== 'production') {\n      if (internalInstance._debugID !== 0) {\n        ReactInstrumentation.debugTool.onUnmountComponent(internalInstance._debugID);\n      }\n    }\n  },\n\n  /**\n   * Update a component using a new element.\n   *\n   * @param {ReactComponent} internalInstance\n   * @param {ReactElement} nextElement\n   * @param {ReactReconcileTransaction} transaction\n   * @param {object} context\n   * @internal\n   */\n  receiveComponent: function (internalInstance, nextElement, transaction, context) {\n    var prevElement = internalInstance._currentElement;\n\n    if (nextElement === prevElement && context === internalInstance._context) {\n      // Since elements are immutable after the owner is rendered,\n      // we can do a cheap identity compare here to determine if this is a\n      // superfluous reconcile. It's possible for state to be mutable but such\n      // change should trigger an update of the owner which would recreate\n      // the element. We explicitly check for the existence of an owner since\n      // it's possible for an element created outside a composite to be\n      // deeply mutated and reused.\n\n      // TODO: Bailing out early is just a perf optimization right?\n      // TODO: Removing the return statement should affect correctness?\n      return;\n    }\n\n    if (\"development\" !== 'production') {\n      if (internalInstance._debugID !== 0) {\n        ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, nextElement);\n      }\n    }\n\n    var refsChanged = ReactRef.shouldUpdateRefs(prevElement, nextElement);\n\n    if (refsChanged) {\n      ReactRef.detachRefs(internalInstance, prevElement);\n    }\n\n    internalInstance.receiveComponent(nextElement, transaction, context);\n\n    if (refsChanged && internalInstance._currentElement && internalInstance._currentElement.ref != null) {\n      transaction.getReactMountReady().enqueue(attachRefs, internalInstance);\n    }\n\n    if (\"development\" !== 'production') {\n      if (internalInstance._debugID !== 0) {\n        ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID);\n      }\n    }\n  },\n\n  /**\n   * Flush any dirty changes in a component.\n   *\n   * @param {ReactComponent} internalInstance\n   * @param {ReactReconcileTransaction} transaction\n   * @internal\n   */\n  performUpdateIfNecessary: function (internalInstance, transaction, updateBatchNumber) {\n    if (internalInstance._updateBatchNumber !== updateBatchNumber) {\n      // The component's enqueued batch number should always be the current\n      // batch or the following one.\n      \"development\" !== 'production' ? warning(internalInstance._updateBatchNumber == null || internalInstance._updateBatchNumber === updateBatchNumber + 1, 'performUpdateIfNecessary: Unexpected batch number (current %s, ' + 'pending %s)', updateBatchNumber, internalInstance._updateBatchNumber) : void 0;\n      return;\n    }\n    if (\"development\" !== 'production') {\n      if (internalInstance._debugID !== 0) {\n        ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, internalInstance._currentElement);\n      }\n    }\n    internalInstance.performUpdateIfNecessary(transaction);\n    if (\"development\" !== 'production') {\n      if (internalInstance._debugID !== 0) {\n        ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID);\n      }\n    }\n  }\n\n};\n\nmodule.exports = ReactReconciler;\n},{\"171\":171,\"73\":73,\"89\":89}],89:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactRef\n */\n\n'use strict';\n\nvar ReactOwner = _dereq_(81);\n\nvar ReactRef = {};\n\nfunction attachRef(ref, component, owner) {\n  if (typeof ref === 'function') {\n    ref(component.getPublicInstance());\n  } else {\n    // Legacy ref\n    ReactOwner.addComponentAsRefTo(component, ref, owner);\n  }\n}\n\nfunction detachRef(ref, component, owner) {\n  if (typeof ref === 'function') {\n    ref(null);\n  } else {\n    // Legacy ref\n    ReactOwner.removeComponentAsRefFrom(component, ref, owner);\n  }\n}\n\nReactRef.attachRefs = function (instance, element) {\n  if (element === null || element === false) {\n    return;\n  }\n  var ref = element.ref;\n  if (ref != null) {\n    attachRef(ref, instance, element._owner);\n  }\n};\n\nReactRef.shouldUpdateRefs = function (prevElement, nextElement) {\n  // If either the owner or a `ref` has changed, make sure the newest owner\n  // has stored a reference to `this`, and the previous owner (if different)\n  // has forgotten the reference to `this`. We use the element instead\n  // of the public this.props because the post processing cannot determine\n  // a ref. The ref conceptually lives on the element.\n\n  // TODO: Should this even be possible? The owner cannot change because\n  // it's forbidden by shouldUpdateReactComponent. The ref can change\n  // if you swap the keys of but not the refs. Reconsider where this check\n  // is made. It probably belongs where the key checking and\n  // instantiateReactComponent is done.\n\n  var prevEmpty = prevElement === null || prevElement === false;\n  var nextEmpty = nextElement === null || nextElement === false;\n\n  return (\n    // This has a few false positives w/r/t empty components.\n    prevEmpty || nextEmpty || nextElement.ref !== prevElement.ref ||\n    // If owner changes but we have an unchanged function ref, don't update refs\n    typeof nextElement.ref === 'string' && nextElement._owner !== prevElement._owner\n  );\n};\n\nReactRef.detachRefs = function (instance, element) {\n  if (element === null || element === false) {\n    return;\n  }\n  var ref = element.ref;\n  if (ref != null) {\n    detachRef(ref, instance, element._owner);\n  }\n};\n\nmodule.exports = ReactRef;\n},{\"81\":81}],90:[function(_dereq_,module,exports){\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactServerBatchingStrategy\n */\n\n'use strict';\n\nvar ReactServerBatchingStrategy = {\n  isBatchingUpdates: false,\n  batchedUpdates: function (callback) {\n    // Don't do anything here. During the server rendering we don't want to\n    // schedule any updates. We will simply ignore them.\n  }\n};\n\nmodule.exports = ReactServerBatchingStrategy;\n},{}],91:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactServerRendering\n */\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar ReactDOMContainerInfo = _dereq_(43);\nvar ReactDefaultBatchingStrategy = _dereq_(59);\nvar ReactElement = _dereq_(61);\nvar ReactInstrumentation = _dereq_(73);\nvar ReactMarkupChecksum = _dereq_(75);\nvar ReactReconciler = _dereq_(88);\nvar ReactServerBatchingStrategy = _dereq_(90);\nvar ReactServerRenderingTransaction = _dereq_(92);\nvar ReactUpdates = _dereq_(96);\n\nvar emptyObject = _dereq_(155);\nvar instantiateReactComponent = _dereq_(135);\nvar invariant = _dereq_(162);\n\nvar pendingTransactions = 0;\n\n/**\n * @param {ReactElement} element\n * @return {string} the HTML markup\n */\nfunction renderToStringImpl(element, makeStaticMarkup) {\n  var transaction;\n  try {\n    ReactUpdates.injection.injectBatchingStrategy(ReactServerBatchingStrategy);\n\n    transaction = ReactServerRenderingTransaction.getPooled(makeStaticMarkup);\n\n    pendingTransactions++;\n\n    return transaction.perform(function () {\n      var componentInstance = instantiateReactComponent(element, true);\n      var markup = ReactReconciler.mountComponent(componentInstance, transaction, null, ReactDOMContainerInfo(), emptyObject, 0 /* parentDebugID */\n      );\n      if (\"development\" !== 'production') {\n        ReactInstrumentation.debugTool.onUnmountComponent(componentInstance._debugID);\n      }\n      if (!makeStaticMarkup) {\n        markup = ReactMarkupChecksum.addChecksumToMarkup(markup);\n      }\n      return markup;\n    }, null);\n  } finally {\n    pendingTransactions--;\n    ReactServerRenderingTransaction.release(transaction);\n    // Revert to the DOM batching strategy since these two renderers\n    // currently share these stateful modules.\n    if (!pendingTransactions) {\n      ReactUpdates.injection.injectBatchingStrategy(ReactDefaultBatchingStrategy);\n    }\n  }\n}\n\n/**\n * Render a ReactElement to its initial HTML. This should only be used on the\n * server.\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdomserver.rendertostring\n */\nfunction renderToString(element) {\n  !ReactElement.isValidElement(element) ? \"development\" !== 'production' ? invariant(false, 'renderToString(): You must pass a valid ReactElement.') : _prodInvariant('46') : void 0;\n  return renderToStringImpl(element, false);\n}\n\n/**\n * Similar to renderToString, except this doesn't create extra DOM attributes\n * such as data-react-id that React uses internally.\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdomserver.rendertostaticmarkup\n */\nfunction renderToStaticMarkup(element) {\n  !ReactElement.isValidElement(element) ? \"development\" !== 'production' ? invariant(false, 'renderToStaticMarkup(): You must pass a valid ReactElement.') : _prodInvariant('47') : void 0;\n  return renderToStringImpl(element, true);\n}\n\nmodule.exports = {\n  renderToString: renderToString,\n  renderToStaticMarkup: renderToStaticMarkup\n};\n},{\"135\":135,\"140\":140,\"155\":155,\"162\":162,\"43\":43,\"59\":59,\"61\":61,\"73\":73,\"75\":75,\"88\":88,\"90\":90,\"92\":92,\"96\":96}],92:[function(_dereq_,module,exports){\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactServerRenderingTransaction\n */\n\n'use strict';\n\nvar _assign = _dereq_(172);\n\nvar PooledClass = _dereq_(25);\nvar Transaction = _dereq_(114);\nvar ReactInstrumentation = _dereq_(73);\nvar ReactServerUpdateQueue = _dereq_(93);\n\n/**\n * Executed within the scope of the `Transaction` instance. Consider these as\n * being member methods, but with an implied ordering while being isolated from\n * each other.\n */\nvar TRANSACTION_WRAPPERS = [];\n\nif (\"development\" !== 'production') {\n  TRANSACTION_WRAPPERS.push({\n    initialize: ReactInstrumentation.debugTool.onBeginFlush,\n    close: ReactInstrumentation.debugTool.onEndFlush\n  });\n}\n\nvar noopCallbackQueue = {\n  enqueue: function () {}\n};\n\n/**\n * @class ReactServerRenderingTransaction\n * @param {boolean} renderToStaticMarkup\n */\nfunction ReactServerRenderingTransaction(renderToStaticMarkup) {\n  this.reinitializeTransaction();\n  this.renderToStaticMarkup = renderToStaticMarkup;\n  this.useCreateElement = false;\n  this.updateQueue = new ReactServerUpdateQueue(this);\n}\n\nvar Mixin = {\n  /**\n   * @see Transaction\n   * @abstract\n   * @final\n   * @return {array} Empty list of operation wrap procedures.\n   */\n  getTransactionWrappers: function () {\n    return TRANSACTION_WRAPPERS;\n  },\n\n  /**\n   * @return {object} The queue to collect `onDOMReady` callbacks with.\n   */\n  getReactMountReady: function () {\n    return noopCallbackQueue;\n  },\n\n  /**\n   * @return {object} The queue to collect React async events.\n   */\n  getUpdateQueue: function () {\n    return this.updateQueue;\n  },\n\n  /**\n   * `PooledClass` looks for this, and will invoke this before allowing this\n   * instance to be reused.\n   */\n  destructor: function () {},\n\n  checkpoint: function () {},\n\n  rollback: function () {}\n};\n\n_assign(ReactServerRenderingTransaction.prototype, Transaction.Mixin, Mixin);\n\nPooledClass.addPoolingTo(ReactServerRenderingTransaction);\n\nmodule.exports = ReactServerRenderingTransaction;\n},{\"114\":114,\"172\":172,\"25\":25,\"73\":73,\"93\":93}],93:[function(_dereq_,module,exports){\n/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactServerUpdateQueue\n * \n */\n\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ReactUpdateQueue = _dereq_(95);\nvar Transaction = _dereq_(114);\nvar warning = _dereq_(171);\n\nfunction warnNoop(publicInstance, callerName) {\n  if (\"development\" !== 'production') {\n    var constructor = publicInstance.constructor;\n    \"development\" !== 'production' ? warning(false, '%s(...): Can only update a mounting component. ' + 'This usually means you called %s() outside componentWillMount() on the server. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0;\n  }\n}\n\n/**\n * This is the update queue used for server rendering.\n * It delegates to ReactUpdateQueue while server rendering is in progress and\n * switches to ReactNoopUpdateQueue after the transaction has completed.\n * @class ReactServerUpdateQueue\n * @param {Transaction} transaction\n */\n\nvar ReactServerUpdateQueue = function () {\n  /* :: transaction: Transaction; */\n\n  function ReactServerUpdateQueue(transaction) {\n    _classCallCheck(this, ReactServerUpdateQueue);\n\n    this.transaction = transaction;\n  }\n\n  /**\n   * Checks whether or not this composite component is mounted.\n   * @param {ReactClass} publicInstance The instance we want to test.\n   * @return {boolean} True if mounted, false otherwise.\n   * @protected\n   * @final\n   */\n\n\n  ReactServerUpdateQueue.prototype.isMounted = function isMounted(publicInstance) {\n    return false;\n  };\n\n  /**\n   * Enqueue a callback that will be executed after all the pending updates\n   * have processed.\n   *\n   * @param {ReactClass} publicInstance The instance to use as `this` context.\n   * @param {?function} callback Called after state is updated.\n   * @internal\n   */\n\n\n  ReactServerUpdateQueue.prototype.enqueueCallback = function enqueueCallback(publicInstance, callback, callerName) {\n    if (this.transaction.isInTransaction()) {\n      ReactUpdateQueue.enqueueCallback(publicInstance, callback, callerName);\n    }\n  };\n\n  /**\n   * Forces an update. This should only be invoked when it is known with\n   * certainty that we are **not** in a DOM transaction.\n   *\n   * You may want to call this when you know that some deeper aspect of the\n   * component's state has changed but `setState` was not called.\n   *\n   * This will not invoke `shouldComponentUpdate`, but it will invoke\n   * `componentWillUpdate` and `componentDidUpdate`.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @internal\n   */\n\n\n  ReactServerUpdateQueue.prototype.enqueueForceUpdate = function enqueueForceUpdate(publicInstance) {\n    if (this.transaction.isInTransaction()) {\n      ReactUpdateQueue.enqueueForceUpdate(publicInstance);\n    } else {\n      warnNoop(publicInstance, 'forceUpdate');\n    }\n  };\n\n  /**\n   * Replaces all of the state. Always use this or `setState` to mutate state.\n   * You should treat `this.state` as immutable.\n   *\n   * There is no guarantee that `this.state` will be immediately updated, so\n   * accessing `this.state` after calling this method may return the old value.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object|function} completeState Next state.\n   * @internal\n   */\n\n\n  ReactServerUpdateQueue.prototype.enqueueReplaceState = function enqueueReplaceState(publicInstance, completeState) {\n    if (this.transaction.isInTransaction()) {\n      ReactUpdateQueue.enqueueReplaceState(publicInstance, completeState);\n    } else {\n      warnNoop(publicInstance, 'replaceState');\n    }\n  };\n\n  /**\n   * Sets a subset of the state. This only exists because _pendingState is\n   * internal. This provides a merging strategy that is not available to deep\n   * properties which is confusing. TODO: Expose pendingState or don't use it\n   * during the merge.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object|function} partialState Next partial state to be merged with state.\n   * @internal\n   */\n\n\n  ReactServerUpdateQueue.prototype.enqueueSetState = function enqueueSetState(publicInstance, partialState) {\n    if (this.transaction.isInTransaction()) {\n      ReactUpdateQueue.enqueueSetState(publicInstance, partialState);\n    } else {\n      warnNoop(publicInstance, 'setState');\n    }\n  };\n\n  return ReactServerUpdateQueue;\n}();\n\nmodule.exports = ReactServerUpdateQueue;\n},{\"114\":114,\"171\":171,\"95\":95}],94:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactUMDEntry\n */\n\n'use strict';\n\nvar _assign = _dereq_(172);\n\nvar ReactDOM = _dereq_(38);\nvar ReactDOMServer = _dereq_(53);\nvar React = _dereq_(26);\n\n// `version` will be added here by ReactIsomorphic.\nvar ReactUMDEntry = _assign({\n  __SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: ReactDOM,\n  __SECRET_DOM_SERVER_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: ReactDOMServer\n}, React);\n\nmodule.exports = ReactUMDEntry;\n},{\"172\":172,\"26\":26,\"38\":38,\"53\":53}],95:[function(_dereq_,module,exports){\n/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactUpdateQueue\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar ReactCurrentOwner = _dereq_(37);\nvar ReactInstanceMap = _dereq_(72);\nvar ReactInstrumentation = _dereq_(73);\nvar ReactUpdates = _dereq_(96);\n\nvar invariant = _dereq_(162);\nvar warning = _dereq_(171);\n\nfunction enqueueUpdate(internalInstance) {\n  ReactUpdates.enqueueUpdate(internalInstance);\n}\n\nfunction formatUnexpectedArgument(arg) {\n  var type = typeof arg;\n  if (type !== 'object') {\n    return type;\n  }\n  var displayName = arg.constructor && arg.constructor.name || type;\n  var keys = Object.keys(arg);\n  if (keys.length > 0 && keys.length < 20) {\n    return displayName + ' (keys: ' + keys.join(', ') + ')';\n  }\n  return displayName;\n}\n\nfunction getInternalInstanceReadyForUpdate(publicInstance, callerName) {\n  var internalInstance = ReactInstanceMap.get(publicInstance);\n  if (!internalInstance) {\n    if (\"development\" !== 'production') {\n      var ctor = publicInstance.constructor;\n      // Only warn when we have a callerName. Otherwise we should be silent.\n      // We're probably calling from enqueueCallback. We don't want to warn\n      // there because we already warned for the corresponding lifecycle method.\n      \"development\" !== 'production' ? warning(!callerName, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, ctor && (ctor.displayName || ctor.name) || 'ReactClass') : void 0;\n    }\n    return null;\n  }\n\n  if (\"development\" !== 'production') {\n    \"development\" !== 'production' ? warning(ReactCurrentOwner.current == null, '%s(...): Cannot update during an existing state transition (such as ' + 'within `render` or another component\\'s constructor). Render methods ' + 'should be a pure function of props and state; constructor ' + 'side-effects are an anti-pattern, but can be moved to ' + '`componentWillMount`.', callerName) : void 0;\n  }\n\n  return internalInstance;\n}\n\n/**\n * ReactUpdateQueue allows for state updates to be scheduled into a later\n * reconciliation step.\n */\nvar ReactUpdateQueue = {\n\n  /**\n   * Checks whether or not this composite component is mounted.\n   * @param {ReactClass} publicInstance The instance we want to test.\n   * @return {boolean} True if mounted, false otherwise.\n   * @protected\n   * @final\n   */\n  isMounted: function (publicInstance) {\n    if (\"development\" !== 'production') {\n      var owner = ReactCurrentOwner.current;\n      if (owner !== null) {\n        \"development\" !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : void 0;\n        owner._warnedAboutRefsInRender = true;\n      }\n    }\n    var internalInstance = ReactInstanceMap.get(publicInstance);\n    if (internalInstance) {\n      // During componentWillMount and render this will still be null but after\n      // that will always render to something. At least for now. So we can use\n      // this hack.\n      return !!internalInstance._renderedComponent;\n    } else {\n      return false;\n    }\n  },\n\n  /**\n   * Enqueue a callback that will be executed after all the pending updates\n   * have processed.\n   *\n   * @param {ReactClass} publicInstance The instance to use as `this` context.\n   * @param {?function} callback Called after state is updated.\n   * @param {string} callerName Name of the calling function in the public API.\n   * @internal\n   */\n  enqueueCallback: function (publicInstance, callback, callerName) {\n    ReactUpdateQueue.validateCallback(callback, callerName);\n    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance);\n\n    // Previously we would throw an error if we didn't have an internal\n    // instance. Since we want to make it a no-op instead, we mirror the same\n    // behavior we have in other enqueue* methods.\n    // We also need to ignore callbacks in componentWillMount. See\n    // enqueueUpdates.\n    if (!internalInstance) {\n      return null;\n    }\n\n    if (internalInstance._pendingCallbacks) {\n      internalInstance._pendingCallbacks.push(callback);\n    } else {\n      internalInstance._pendingCallbacks = [callback];\n    }\n    // TODO: The callback here is ignored when setState is called from\n    // componentWillMount. Either fix it or disallow doing so completely in\n    // favor of getInitialState. Alternatively, we can disallow\n    // componentWillMount during server-side rendering.\n    enqueueUpdate(internalInstance);\n  },\n\n  enqueueCallbackInternal: function (internalInstance, callback) {\n    if (internalInstance._pendingCallbacks) {\n      internalInstance._pendingCallbacks.push(callback);\n    } else {\n      internalInstance._pendingCallbacks = [callback];\n    }\n    enqueueUpdate(internalInstance);\n  },\n\n  /**\n   * Forces an update. This should only be invoked when it is known with\n   * certainty that we are **not** in a DOM transaction.\n   *\n   * You may want to call this when you know that some deeper aspect of the\n   * component's state has changed but `setState` was not called.\n   *\n   * This will not invoke `shouldComponentUpdate`, but it will invoke\n   * `componentWillUpdate` and `componentDidUpdate`.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @internal\n   */\n  enqueueForceUpdate: function (publicInstance) {\n    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'forceUpdate');\n\n    if (!internalInstance) {\n      return;\n    }\n\n    internalInstance._pendingForceUpdate = true;\n\n    enqueueUpdate(internalInstance);\n  },\n\n  /**\n   * Replaces all of the state. Always use this or `setState` to mutate state.\n   * You should treat `this.state` as immutable.\n   *\n   * There is no guarantee that `this.state` will be immediately updated, so\n   * accessing `this.state` after calling this method may return the old value.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} completeState Next state.\n   * @internal\n   */\n  enqueueReplaceState: function (publicInstance, completeState) {\n    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceState');\n\n    if (!internalInstance) {\n      return;\n    }\n\n    internalInstance._pendingStateQueue = [completeState];\n    internalInstance._pendingReplaceState = true;\n\n    enqueueUpdate(internalInstance);\n  },\n\n  /**\n   * Sets a subset of the state. This only exists because _pendingState is\n   * internal. This provides a merging strategy that is not available to deep\n   * properties which is confusing. TODO: Expose pendingState or don't use it\n   * during the merge.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} partialState Next partial state to be merged with state.\n   * @internal\n   */\n  enqueueSetState: function (publicInstance, partialState) {\n    if (\"development\" !== 'production') {\n      ReactInstrumentation.debugTool.onSetState();\n      \"development\" !== 'production' ? warning(partialState != null, 'setState(...): You passed an undefined or null state object; ' + 'instead, use forceUpdate().') : void 0;\n    }\n\n    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'setState');\n\n    if (!internalInstance) {\n      return;\n    }\n\n    var queue = internalInstance._pendingStateQueue || (internalInstance._pendingStateQueue = []);\n    queue.push(partialState);\n\n    enqueueUpdate(internalInstance);\n  },\n\n  enqueueElementInternal: function (internalInstance, nextElement, nextContext) {\n    internalInstance._pendingElement = nextElement;\n    // TODO: introduce _pendingContext instead of setting it directly.\n    internalInstance._context = nextContext;\n    enqueueUpdate(internalInstance);\n  },\n\n  validateCallback: function (callback, callerName) {\n    !(!callback || typeof callback === 'function') ? \"development\" !== 'production' ? invariant(false, '%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.', callerName, formatUnexpectedArgument(callback)) : _prodInvariant('122', callerName, formatUnexpectedArgument(callback)) : void 0;\n  }\n\n};\n\nmodule.exports = ReactUpdateQueue;\n},{\"140\":140,\"162\":162,\"171\":171,\"37\":37,\"72\":72,\"73\":73,\"96\":96}],96:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactUpdates\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140),\n    _assign = _dereq_(172);\n\nvar CallbackQueue = _dereq_(5);\nvar PooledClass = _dereq_(25);\nvar ReactFeatureFlags = _dereq_(67);\nvar ReactReconciler = _dereq_(88);\nvar Transaction = _dereq_(114);\n\nvar invariant = _dereq_(162);\n\nvar dirtyComponents = [];\nvar updateBatchNumber = 0;\nvar asapCallbackQueue = CallbackQueue.getPooled();\nvar asapEnqueued = false;\n\nvar batchingStrategy = null;\n\nfunction ensureInjected() {\n  !(ReactUpdates.ReactReconcileTransaction && batchingStrategy) ? \"development\" !== 'production' ? invariant(false, 'ReactUpdates: must inject a reconcile transaction class and batching strategy') : _prodInvariant('123') : void 0;\n}\n\nvar NESTED_UPDATES = {\n  initialize: function () {\n    this.dirtyComponentsLength = dirtyComponents.length;\n  },\n  close: function () {\n    if (this.dirtyComponentsLength !== dirtyComponents.length) {\n      // Additional updates were enqueued by componentDidUpdate handlers or\n      // similar; before our own UPDATE_QUEUEING wrapper closes, we want to run\n      // these new updates so that if A's componentDidUpdate calls setState on\n      // B, B will update before the callback A's updater provided when calling\n      // setState.\n      dirtyComponents.splice(0, this.dirtyComponentsLength);\n      flushBatchedUpdates();\n    } else {\n      dirtyComponents.length = 0;\n    }\n  }\n};\n\nvar UPDATE_QUEUEING = {\n  initialize: function () {\n    this.callbackQueue.reset();\n  },\n  close: function () {\n    this.callbackQueue.notifyAll();\n  }\n};\n\nvar TRANSACTION_WRAPPERS = [NESTED_UPDATES, UPDATE_QUEUEING];\n\nfunction ReactUpdatesFlushTransaction() {\n  this.reinitializeTransaction();\n  this.dirtyComponentsLength = null;\n  this.callbackQueue = CallbackQueue.getPooled();\n  this.reconcileTransaction = ReactUpdates.ReactReconcileTransaction.getPooled(\n  /* useCreateElement */true);\n}\n\n_assign(ReactUpdatesFlushTransaction.prototype, Transaction.Mixin, {\n  getTransactionWrappers: function () {\n    return TRANSACTION_WRAPPERS;\n  },\n\n  destructor: function () {\n    this.dirtyComponentsLength = null;\n    CallbackQueue.release(this.callbackQueue);\n    this.callbackQueue = null;\n    ReactUpdates.ReactReconcileTransaction.release(this.reconcileTransaction);\n    this.reconcileTransaction = null;\n  },\n\n  perform: function (method, scope, a) {\n    // Essentially calls `this.reconcileTransaction.perform(method, scope, a)`\n    // with this transaction's wrappers around it.\n    return Transaction.Mixin.perform.call(this, this.reconcileTransaction.perform, this.reconcileTransaction, method, scope, a);\n  }\n});\n\nPooledClass.addPoolingTo(ReactUpdatesFlushTransaction);\n\nfunction batchedUpdates(callback, a, b, c, d, e) {\n  ensureInjected();\n  batchingStrategy.batchedUpdates(callback, a, b, c, d, e);\n}\n\n/**\n * Array comparator for ReactComponents by mount ordering.\n *\n * @param {ReactComponent} c1 first component you're comparing\n * @param {ReactComponent} c2 second component you're comparing\n * @return {number} Return value usable by Array.prototype.sort().\n */\nfunction mountOrderComparator(c1, c2) {\n  return c1._mountOrder - c2._mountOrder;\n}\n\nfunction runBatchedUpdates(transaction) {\n  var len = transaction.dirtyComponentsLength;\n  !(len === dirtyComponents.length) ? \"development\" !== 'production' ? invariant(false, 'Expected flush transaction\\'s stored dirty-components length (%s) to match dirty-components array length (%s).', len, dirtyComponents.length) : _prodInvariant('124', len, dirtyComponents.length) : void 0;\n\n  // Since reconciling a component higher in the owner hierarchy usually (not\n  // always -- see shouldComponentUpdate()) will reconcile children, reconcile\n  // them before their children by sorting the array.\n  dirtyComponents.sort(mountOrderComparator);\n\n  // Any updates enqueued while reconciling must be performed after this entire\n  // batch. Otherwise, if dirtyComponents is [A, B] where A has children B and\n  // C, B could update twice in a single batch if C's render enqueues an update\n  // to B (since B would have already updated, we should skip it, and the only\n  // way we can know to do so is by checking the batch counter).\n  updateBatchNumber++;\n\n  for (var i = 0; i < len; i++) {\n    // If a component is unmounted before pending changes apply, it will still\n    // be here, but we assume that it has cleared its _pendingCallbacks and\n    // that performUpdateIfNecessary is a noop.\n    var component = dirtyComponents[i];\n\n    // If performUpdateIfNecessary happens to enqueue any new updates, we\n    // shouldn't execute the callbacks until the next render happens, so\n    // stash the callbacks first\n    var callbacks = component._pendingCallbacks;\n    component._pendingCallbacks = null;\n\n    var markerName;\n    if (ReactFeatureFlags.logTopLevelRenders) {\n      var namedComponent = component;\n      // Duck type TopLevelWrapper. This is probably always true.\n      if (component._currentElement.props === component._renderedComponent._currentElement) {\n        namedComponent = component._renderedComponent;\n      }\n      markerName = 'React update: ' + namedComponent.getName();\n      console.time(markerName);\n    }\n\n    ReactReconciler.performUpdateIfNecessary(component, transaction.reconcileTransaction, updateBatchNumber);\n\n    if (markerName) {\n      console.timeEnd(markerName);\n    }\n\n    if (callbacks) {\n      for (var j = 0; j < callbacks.length; j++) {\n        transaction.callbackQueue.enqueue(callbacks[j], component.getPublicInstance());\n      }\n    }\n  }\n}\n\nvar flushBatchedUpdates = function () {\n  // ReactUpdatesFlushTransaction's wrappers will clear the dirtyComponents\n  // array and perform any updates enqueued by mount-ready handlers (i.e.,\n  // componentDidUpdate) but we need to check here too in order to catch\n  // updates enqueued by setState callbacks and asap calls.\n  while (dirtyComponents.length || asapEnqueued) {\n    if (dirtyComponents.length) {\n      var transaction = ReactUpdatesFlushTransaction.getPooled();\n      transaction.perform(runBatchedUpdates, null, transaction);\n      ReactUpdatesFlushTransaction.release(transaction);\n    }\n\n    if (asapEnqueued) {\n      asapEnqueued = false;\n      var queue = asapCallbackQueue;\n      asapCallbackQueue = CallbackQueue.getPooled();\n      queue.notifyAll();\n      CallbackQueue.release(queue);\n    }\n  }\n};\n\n/**\n * Mark a component as needing a rerender, adding an optional callback to a\n * list of functions which will be executed once the rerender occurs.\n */\nfunction enqueueUpdate(component) {\n  ensureInjected();\n\n  // Various parts of our code (such as ReactCompositeComponent's\n  // _renderValidatedComponent) assume that calls to render aren't nested;\n  // verify that that's the case. (This is called by each top-level update\n  // function, like setState, forceUpdate, etc.; creation and\n  // destruction of top-level components is guarded in ReactMount.)\n\n  if (!batchingStrategy.isBatchingUpdates) {\n    batchingStrategy.batchedUpdates(enqueueUpdate, component);\n    return;\n  }\n\n  dirtyComponents.push(component);\n  if (component._updateBatchNumber == null) {\n    component._updateBatchNumber = updateBatchNumber + 1;\n  }\n}\n\n/**\n * Enqueue a callback to be run at the end of the current batching cycle. Throws\n * if no updates are currently being performed.\n */\nfunction asap(callback, context) {\n  !batchingStrategy.isBatchingUpdates ? \"development\" !== 'production' ? invariant(false, 'ReactUpdates.asap: Can\\'t enqueue an asap callback in a context whereupdates are not being batched.') : _prodInvariant('125') : void 0;\n  asapCallbackQueue.enqueue(callback, context);\n  asapEnqueued = true;\n}\n\nvar ReactUpdatesInjection = {\n  injectReconcileTransaction: function (ReconcileTransaction) {\n    !ReconcileTransaction ? \"development\" !== 'production' ? invariant(false, 'ReactUpdates: must provide a reconcile transaction class') : _prodInvariant('126') : void 0;\n    ReactUpdates.ReactReconcileTransaction = ReconcileTransaction;\n  },\n\n  injectBatchingStrategy: function (_batchingStrategy) {\n    !_batchingStrategy ? \"development\" !== 'production' ? invariant(false, 'ReactUpdates: must provide a batching strategy') : _prodInvariant('127') : void 0;\n    !(typeof _batchingStrategy.batchedUpdates === 'function') ? \"development\" !== 'production' ? invariant(false, 'ReactUpdates: must provide a batchedUpdates() function') : _prodInvariant('128') : void 0;\n    !(typeof _batchingStrategy.isBatchingUpdates === 'boolean') ? \"development\" !== 'production' ? invariant(false, 'ReactUpdates: must provide an isBatchingUpdates boolean attribute') : _prodInvariant('129') : void 0;\n    batchingStrategy = _batchingStrategy;\n  }\n};\n\nvar ReactUpdates = {\n  /**\n   * React references `ReactReconcileTransaction` using this property in order\n   * to allow dependency injection.\n   *\n   * @internal\n   */\n  ReactReconcileTransaction: null,\n\n  batchedUpdates: batchedUpdates,\n  enqueueUpdate: enqueueUpdate,\n  flushBatchedUpdates: flushBatchedUpdates,\n  injection: ReactUpdatesInjection,\n  asap: asap\n};\n\nmodule.exports = ReactUpdates;\n},{\"114\":114,\"140\":140,\"162\":162,\"172\":172,\"25\":25,\"5\":5,\"67\":67,\"88\":88}],97:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactVersion\n */\n\n'use strict';\n\nmodule.exports = '15.3.1';\n},{}],98:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SVGDOMPropertyConfig\n */\n\n'use strict';\n\nvar NS = {\n  xlink: 'http://www.w3.org/1999/xlink',\n  xml: 'http://www.w3.org/XML/1998/namespace'\n};\n\n// We use attributes for everything SVG so let's avoid some duplication and run\n// code instead.\n// The following are all specified in the HTML config already so we exclude here.\n// - class (as className)\n// - color\n// - height\n// - id\n// - lang\n// - max\n// - media\n// - method\n// - min\n// - name\n// - style\n// - target\n// - type\n// - width\nvar ATTRS = {\n  accentHeight: 'accent-height',\n  accumulate: 0,\n  additive: 0,\n  alignmentBaseline: 'alignment-baseline',\n  allowReorder: 'allowReorder',\n  alphabetic: 0,\n  amplitude: 0,\n  arabicForm: 'arabic-form',\n  ascent: 0,\n  attributeName: 'attributeName',\n  attributeType: 'attributeType',\n  autoReverse: 'autoReverse',\n  azimuth: 0,\n  baseFrequency: 'baseFrequency',\n  baseProfile: 'baseProfile',\n  baselineShift: 'baseline-shift',\n  bbox: 0,\n  begin: 0,\n  bias: 0,\n  by: 0,\n  calcMode: 'calcMode',\n  capHeight: 'cap-height',\n  clip: 0,\n  clipPath: 'clip-path',\n  clipRule: 'clip-rule',\n  clipPathUnits: 'clipPathUnits',\n  colorInterpolation: 'color-interpolation',\n  colorInterpolationFilters: 'color-interpolation-filters',\n  colorProfile: 'color-profile',\n  colorRendering: 'color-rendering',\n  contentScriptType: 'contentScriptType',\n  contentStyleType: 'contentStyleType',\n  cursor: 0,\n  cx: 0,\n  cy: 0,\n  d: 0,\n  decelerate: 0,\n  descent: 0,\n  diffuseConstant: 'diffuseConstant',\n  direction: 0,\n  display: 0,\n  divisor: 0,\n  dominantBaseline: 'dominant-baseline',\n  dur: 0,\n  dx: 0,\n  dy: 0,\n  edgeMode: 'edgeMode',\n  elevation: 0,\n  enableBackground: 'enable-background',\n  end: 0,\n  exponent: 0,\n  externalResourcesRequired: 'externalResourcesRequired',\n  fill: 0,\n  fillOpacity: 'fill-opacity',\n  fillRule: 'fill-rule',\n  filter: 0,\n  filterRes: 'filterRes',\n  filterUnits: 'filterUnits',\n  floodColor: 'flood-color',\n  floodOpacity: 'flood-opacity',\n  focusable: 0,\n  fontFamily: 'font-family',\n  fontSize: 'font-size',\n  fontSizeAdjust: 'font-size-adjust',\n  fontStretch: 'font-stretch',\n  fontStyle: 'font-style',\n  fontVariant: 'font-variant',\n  fontWeight: 'font-weight',\n  format: 0,\n  from: 0,\n  fx: 0,\n  fy: 0,\n  g1: 0,\n  g2: 0,\n  glyphName: 'glyph-name',\n  glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n  glyphOrientationVertical: 'glyph-orientation-vertical',\n  glyphRef: 'glyphRef',\n  gradientTransform: 'gradientTransform',\n  gradientUnits: 'gradientUnits',\n  hanging: 0,\n  horizAdvX: 'horiz-adv-x',\n  horizOriginX: 'horiz-origin-x',\n  ideographic: 0,\n  imageRendering: 'image-rendering',\n  'in': 0,\n  in2: 0,\n  intercept: 0,\n  k: 0,\n  k1: 0,\n  k2: 0,\n  k3: 0,\n  k4: 0,\n  kernelMatrix: 'kernelMatrix',\n  kernelUnitLength: 'kernelUnitLength',\n  kerning: 0,\n  keyPoints: 'keyPoints',\n  keySplines: 'keySplines',\n  keyTimes: 'keyTimes',\n  lengthAdjust: 'lengthAdjust',\n  letterSpacing: 'letter-spacing',\n  lightingColor: 'lighting-color',\n  limitingConeAngle: 'limitingConeAngle',\n  local: 0,\n  markerEnd: 'marker-end',\n  markerMid: 'marker-mid',\n  markerStart: 'marker-start',\n  markerHeight: 'markerHeight',\n  markerUnits: 'markerUnits',\n  markerWidth: 'markerWidth',\n  mask: 0,\n  maskContentUnits: 'maskContentUnits',\n  maskUnits: 'maskUnits',\n  mathematical: 0,\n  mode: 0,\n  numOctaves: 'numOctaves',\n  offset: 0,\n  opacity: 0,\n  operator: 0,\n  order: 0,\n  orient: 0,\n  orientation: 0,\n  origin: 0,\n  overflow: 0,\n  overlinePosition: 'overline-position',\n  overlineThickness: 'overline-thickness',\n  paintOrder: 'paint-order',\n  panose1: 'panose-1',\n  pathLength: 'pathLength',\n  patternContentUnits: 'patternContentUnits',\n  patternTransform: 'patternTransform',\n  patternUnits: 'patternUnits',\n  pointerEvents: 'pointer-events',\n  points: 0,\n  pointsAtX: 'pointsAtX',\n  pointsAtY: 'pointsAtY',\n  pointsAtZ: 'pointsAtZ',\n  preserveAlpha: 'preserveAlpha',\n  preserveAspectRatio: 'preserveAspectRatio',\n  primitiveUnits: 'primitiveUnits',\n  r: 0,\n  radius: 0,\n  refX: 'refX',\n  refY: 'refY',\n  renderingIntent: 'rendering-intent',\n  repeatCount: 'repeatCount',\n  repeatDur: 'repeatDur',\n  requiredExtensions: 'requiredExtensions',\n  requiredFeatures: 'requiredFeatures',\n  restart: 0,\n  result: 0,\n  rotate: 0,\n  rx: 0,\n  ry: 0,\n  scale: 0,\n  seed: 0,\n  shapeRendering: 'shape-rendering',\n  slope: 0,\n  spacing: 0,\n  specularConstant: 'specularConstant',\n  specularExponent: 'specularExponent',\n  speed: 0,\n  spreadMethod: 'spreadMethod',\n  startOffset: 'startOffset',\n  stdDeviation: 'stdDeviation',\n  stemh: 0,\n  stemv: 0,\n  stitchTiles: 'stitchTiles',\n  stopColor: 'stop-color',\n  stopOpacity: 'stop-opacity',\n  strikethroughPosition: 'strikethrough-position',\n  strikethroughThickness: 'strikethrough-thickness',\n  string: 0,\n  stroke: 0,\n  strokeDasharray: 'stroke-dasharray',\n  strokeDashoffset: 'stroke-dashoffset',\n  strokeLinecap: 'stroke-linecap',\n  strokeLinejoin: 'stroke-linejoin',\n  strokeMiterlimit: 'stroke-miterlimit',\n  strokeOpacity: 'stroke-opacity',\n  strokeWidth: 'stroke-width',\n  surfaceScale: 'surfaceScale',\n  systemLanguage: 'systemLanguage',\n  tableValues: 'tableValues',\n  targetX: 'targetX',\n  targetY: 'targetY',\n  textAnchor: 'text-anchor',\n  textDecoration: 'text-decoration',\n  textRendering: 'text-rendering',\n  textLength: 'textLength',\n  to: 0,\n  transform: 0,\n  u1: 0,\n  u2: 0,\n  underlinePosition: 'underline-position',\n  underlineThickness: 'underline-thickness',\n  unicode: 0,\n  unicodeBidi: 'unicode-bidi',\n  unicodeRange: 'unicode-range',\n  unitsPerEm: 'units-per-em',\n  vAlphabetic: 'v-alphabetic',\n  vHanging: 'v-hanging',\n  vIdeographic: 'v-ideographic',\n  vMathematical: 'v-mathematical',\n  values: 0,\n  vectorEffect: 'vector-effect',\n  version: 0,\n  vertAdvY: 'vert-adv-y',\n  vertOriginX: 'vert-origin-x',\n  vertOriginY: 'vert-origin-y',\n  viewBox: 'viewBox',\n  viewTarget: 'viewTarget',\n  visibility: 0,\n  widths: 0,\n  wordSpacing: 'word-spacing',\n  writingMode: 'writing-mode',\n  x: 0,\n  xHeight: 'x-height',\n  x1: 0,\n  x2: 0,\n  xChannelSelector: 'xChannelSelector',\n  xlinkActuate: 'xlink:actuate',\n  xlinkArcrole: 'xlink:arcrole',\n  xlinkHref: 'xlink:href',\n  xlinkRole: 'xlink:role',\n  xlinkShow: 'xlink:show',\n  xlinkTitle: 'xlink:title',\n  xlinkType: 'xlink:type',\n  xmlBase: 'xml:base',\n  xmlns: 0,\n  xmlnsXlink: 'xmlns:xlink',\n  xmlLang: 'xml:lang',\n  xmlSpace: 'xml:space',\n  y: 0,\n  y1: 0,\n  y2: 0,\n  yChannelSelector: 'yChannelSelector',\n  z: 0,\n  zoomAndPan: 'zoomAndPan'\n};\n\nvar SVGDOMPropertyConfig = {\n  Properties: {},\n  DOMAttributeNamespaces: {\n    xlinkActuate: NS.xlink,\n    xlinkArcrole: NS.xlink,\n    xlinkHref: NS.xlink,\n    xlinkRole: NS.xlink,\n    xlinkShow: NS.xlink,\n    xlinkTitle: NS.xlink,\n    xlinkType: NS.xlink,\n    xmlBase: NS.xml,\n    xmlLang: NS.xml,\n    xmlSpace: NS.xml\n  },\n  DOMAttributeNames: {}\n};\n\nObject.keys(ATTRS).forEach(function (key) {\n  SVGDOMPropertyConfig.Properties[key] = 0;\n  if (ATTRS[key]) {\n    SVGDOMPropertyConfig.DOMAttributeNames[key] = ATTRS[key];\n  }\n});\n\nmodule.exports = SVGDOMPropertyConfig;\n},{}],99:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SelectEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = _dereq_(16);\nvar EventPropagators = _dereq_(20);\nvar ExecutionEnvironment = _dereq_(148);\nvar ReactDOMComponentTree = _dereq_(42);\nvar ReactInputSelection = _dereq_(71);\nvar SyntheticEvent = _dereq_(105);\n\nvar getActiveElement = _dereq_(157);\nvar isTextInputElement = _dereq_(137);\nvar keyOf = _dereq_(166);\nvar shallowEqual = _dereq_(170);\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar skipSelectionChangeEvent = ExecutionEnvironment.canUseDOM && 'documentMode' in document && document.documentMode <= 11;\n\nvar eventTypes = {\n  select: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onSelect: null }),\n      captured: keyOf({ onSelectCapture: null })\n    },\n    dependencies: [topLevelTypes.topBlur, topLevelTypes.topContextMenu, topLevelTypes.topFocus, topLevelTypes.topKeyDown, topLevelTypes.topMouseDown, topLevelTypes.topMouseUp, topLevelTypes.topSelectionChange]\n  }\n};\n\nvar activeElement = null;\nvar activeElementInst = null;\nvar lastSelection = null;\nvar mouseDown = false;\n\n// Track whether a listener exists for this plugin. If none exist, we do\n// not extract events. See #3639.\nvar hasListener = false;\nvar ON_SELECT_KEY = keyOf({ onSelect: null });\n\n/**\n * Get an object which is a unique representation of the current selection.\n *\n * The return value will not be consistent across nodes or browsers, but\n * two identical selections on the same node will return identical objects.\n *\n * @param {DOMElement} node\n * @return {object}\n */\nfunction getSelection(node) {\n  if ('selectionStart' in node && ReactInputSelection.hasSelectionCapabilities(node)) {\n    return {\n      start: node.selectionStart,\n      end: node.selectionEnd\n    };\n  } else if (window.getSelection) {\n    var selection = window.getSelection();\n    return {\n      anchorNode: selection.anchorNode,\n      anchorOffset: selection.anchorOffset,\n      focusNode: selection.focusNode,\n      focusOffset: selection.focusOffset\n    };\n  } else if (document.selection) {\n    var range = document.selection.createRange();\n    return {\n      parentElement: range.parentElement(),\n      text: range.text,\n      top: range.boundingTop,\n      left: range.boundingLeft\n    };\n  }\n}\n\n/**\n * Poll selection to see whether it's changed.\n *\n * @param {object} nativeEvent\n * @return {?SyntheticEvent}\n */\nfunction constructSelectEvent(nativeEvent, nativeEventTarget) {\n  // Ensure we have the right element, and that the user is not dragging a\n  // selection (this matches native `select` event behavior). In HTML5, select\n  // fires only on input and textarea thus if there's no focused element we\n  // won't dispatch.\n  if (mouseDown || activeElement == null || activeElement !== getActiveElement()) {\n    return null;\n  }\n\n  // Only fire when selection has actually changed.\n  var currentSelection = getSelection(activeElement);\n  if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) {\n    lastSelection = currentSelection;\n\n    var syntheticEvent = SyntheticEvent.getPooled(eventTypes.select, activeElementInst, nativeEvent, nativeEventTarget);\n\n    syntheticEvent.type = 'select';\n    syntheticEvent.target = activeElement;\n\n    EventPropagators.accumulateTwoPhaseDispatches(syntheticEvent);\n\n    return syntheticEvent;\n  }\n\n  return null;\n}\n\n/**\n * This plugin creates an `onSelect` event that normalizes select events\n * across form elements.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - contentEditable\n *\n * This differs from native browser implementations in the following ways:\n * - Fires on contentEditable fields as well as inputs.\n * - Fires for collapsed selection.\n * - Fires after user input.\n */\nvar SelectEventPlugin = {\n\n  eventTypes: eventTypes,\n\n  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n    if (!hasListener) {\n      return null;\n    }\n\n    var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;\n\n    switch (topLevelType) {\n      // Track the input node that has focus.\n      case topLevelTypes.topFocus:\n        if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') {\n          activeElement = targetNode;\n          activeElementInst = targetInst;\n          lastSelection = null;\n        }\n        break;\n      case topLevelTypes.topBlur:\n        activeElement = null;\n        activeElementInst = null;\n        lastSelection = null;\n        break;\n\n      // Don't fire the event while the user is dragging. This matches the\n      // semantics of the native select event.\n      case topLevelTypes.topMouseDown:\n        mouseDown = true;\n        break;\n      case topLevelTypes.topContextMenu:\n      case topLevelTypes.topMouseUp:\n        mouseDown = false;\n        return constructSelectEvent(nativeEvent, nativeEventTarget);\n\n      // Chrome and IE fire non-standard event when selection is changed (and\n      // sometimes when it hasn't). IE's event fires out of order with respect\n      // to key and input events on deletion, so we discard it.\n      //\n      // Firefox doesn't support selectionchange, so check selection status\n      // after each key entry. The selection changes after keydown and before\n      // keyup, but we check on keydown as well in the case of holding down a\n      // key, when multiple keydown events are fired but only one keyup is.\n      // This is also our approach for IE handling, for the reason above.\n      case topLevelTypes.topSelectionChange:\n        if (skipSelectionChangeEvent) {\n          break;\n        }\n      // falls through\n      case topLevelTypes.topKeyDown:\n      case topLevelTypes.topKeyUp:\n        return constructSelectEvent(nativeEvent, nativeEventTarget);\n    }\n\n    return null;\n  },\n\n  didPutListener: function (inst, registrationName, listener) {\n    if (registrationName === ON_SELECT_KEY) {\n      hasListener = true;\n    }\n  }\n};\n\nmodule.exports = SelectEventPlugin;\n},{\"105\":105,\"137\":137,\"148\":148,\"157\":157,\"16\":16,\"166\":166,\"170\":170,\"20\":20,\"42\":42,\"71\":71}],100:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SimpleEventPlugin\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar EventConstants = _dereq_(16);\nvar EventListener = _dereq_(147);\nvar EventPropagators = _dereq_(20);\nvar ReactDOMComponentTree = _dereq_(42);\nvar SyntheticAnimationEvent = _dereq_(101);\nvar SyntheticClipboardEvent = _dereq_(102);\nvar SyntheticEvent = _dereq_(105);\nvar SyntheticFocusEvent = _dereq_(106);\nvar SyntheticKeyboardEvent = _dereq_(108);\nvar SyntheticMouseEvent = _dereq_(109);\nvar SyntheticDragEvent = _dereq_(104);\nvar SyntheticTouchEvent = _dereq_(110);\nvar SyntheticTransitionEvent = _dereq_(111);\nvar SyntheticUIEvent = _dereq_(112);\nvar SyntheticWheelEvent = _dereq_(113);\n\nvar emptyFunction = _dereq_(154);\nvar getEventCharCode = _dereq_(126);\nvar invariant = _dereq_(162);\nvar keyOf = _dereq_(166);\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar eventTypes = {\n  abort: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onAbort: true }),\n      captured: keyOf({ onAbortCapture: true })\n    }\n  },\n  animationEnd: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onAnimationEnd: true }),\n      captured: keyOf({ onAnimationEndCapture: true })\n    }\n  },\n  animationIteration: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onAnimationIteration: true }),\n      captured: keyOf({ onAnimationIterationCapture: true })\n    }\n  },\n  animationStart: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onAnimationStart: true }),\n      captured: keyOf({ onAnimationStartCapture: true })\n    }\n  },\n  blur: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onBlur: true }),\n      captured: keyOf({ onBlurCapture: true })\n    }\n  },\n  canPlay: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCanPlay: true }),\n      captured: keyOf({ onCanPlayCapture: true })\n    }\n  },\n  canPlayThrough: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCanPlayThrough: true }),\n      captured: keyOf({ onCanPlayThroughCapture: true })\n    }\n  },\n  click: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onClick: true }),\n      captured: keyOf({ onClickCapture: true })\n    }\n  },\n  contextMenu: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onContextMenu: true }),\n      captured: keyOf({ onContextMenuCapture: true })\n    }\n  },\n  copy: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCopy: true }),\n      captured: keyOf({ onCopyCapture: true })\n    }\n  },\n  cut: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCut: true }),\n      captured: keyOf({ onCutCapture: true })\n    }\n  },\n  doubleClick: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDoubleClick: true }),\n      captured: keyOf({ onDoubleClickCapture: true })\n    }\n  },\n  drag: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDrag: true }),\n      captured: keyOf({ onDragCapture: true })\n    }\n  },\n  dragEnd: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDragEnd: true }),\n      captured: keyOf({ onDragEndCapture: true })\n    }\n  },\n  dragEnter: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDragEnter: true }),\n      captured: keyOf({ onDragEnterCapture: true })\n    }\n  },\n  dragExit: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDragExit: true }),\n      captured: keyOf({ onDragExitCapture: true })\n    }\n  },\n  dragLeave: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDragLeave: true }),\n      captured: keyOf({ onDragLeaveCapture: true })\n    }\n  },\n  dragOver: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDragOver: true }),\n      captured: keyOf({ onDragOverCapture: true })\n    }\n  },\n  dragStart: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDragStart: true }),\n      captured: keyOf({ onDragStartCapture: true })\n    }\n  },\n  drop: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDrop: true }),\n      captured: keyOf({ onDropCapture: true })\n    }\n  },\n  durationChange: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDurationChange: true }),\n      captured: keyOf({ onDurationChangeCapture: true })\n    }\n  },\n  emptied: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onEmptied: true }),\n      captured: keyOf({ onEmptiedCapture: true })\n    }\n  },\n  encrypted: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onEncrypted: true }),\n      captured: keyOf({ onEncryptedCapture: true })\n    }\n  },\n  ended: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onEnded: true }),\n      captured: keyOf({ onEndedCapture: true })\n    }\n  },\n  error: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onError: true }),\n      captured: keyOf({ onErrorCapture: true })\n    }\n  },\n  focus: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onFocus: true }),\n      captured: keyOf({ onFocusCapture: true })\n    }\n  },\n  input: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onInput: true }),\n      captured: keyOf({ onInputCapture: true })\n    }\n  },\n  invalid: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onInvalid: true }),\n      captured: keyOf({ onInvalidCapture: true })\n    }\n  },\n  keyDown: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onKeyDown: true }),\n      captured: keyOf({ onKeyDownCapture: true })\n    }\n  },\n  keyPress: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onKeyPress: true }),\n      captured: keyOf({ onKeyPressCapture: true })\n    }\n  },\n  keyUp: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onKeyUp: true }),\n      captured: keyOf({ onKeyUpCapture: true })\n    }\n  },\n  load: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onLoad: true }),\n      captured: keyOf({ onLoadCapture: true })\n    }\n  },\n  loadedData: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onLoadedData: true }),\n      captured: keyOf({ onLoadedDataCapture: true })\n    }\n  },\n  loadedMetadata: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onLoadedMetadata: true }),\n      captured: keyOf({ onLoadedMetadataCapture: true })\n    }\n  },\n  loadStart: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onLoadStart: true }),\n      captured: keyOf({ onLoadStartCapture: true })\n    }\n  },\n  // Note: We do not allow listening to mouseOver events. Instead, use the\n  // onMouseEnter/onMouseLeave created by `EnterLeaveEventPlugin`.\n  mouseDown: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onMouseDown: true }),\n      captured: keyOf({ onMouseDownCapture: true })\n    }\n  },\n  mouseMove: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onMouseMove: true }),\n      captured: keyOf({ onMouseMoveCapture: true })\n    }\n  },\n  mouseOut: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onMouseOut: true }),\n      captured: keyOf({ onMouseOutCapture: true })\n    }\n  },\n  mouseOver: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onMouseOver: true }),\n      captured: keyOf({ onMouseOverCapture: true })\n    }\n  },\n  mouseUp: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onMouseUp: true }),\n      captured: keyOf({ onMouseUpCapture: true })\n    }\n  },\n  paste: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onPaste: true }),\n      captured: keyOf({ onPasteCapture: true })\n    }\n  },\n  pause: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onPause: true }),\n      captured: keyOf({ onPauseCapture: true })\n    }\n  },\n  play: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onPlay: true }),\n      captured: keyOf({ onPlayCapture: true })\n    }\n  },\n  playing: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onPlaying: true }),\n      captured: keyOf({ onPlayingCapture: true })\n    }\n  },\n  progress: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onProgress: true }),\n      captured: keyOf({ onProgressCapture: true })\n    }\n  },\n  rateChange: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onRateChange: true }),\n      captured: keyOf({ onRateChangeCapture: true })\n    }\n  },\n  reset: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onReset: true }),\n      captured: keyOf({ onResetCapture: true })\n    }\n  },\n  scroll: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onScroll: true }),\n      captured: keyOf({ onScrollCapture: true })\n    }\n  },\n  seeked: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onSeeked: true }),\n      captured: keyOf({ onSeekedCapture: true })\n    }\n  },\n  seeking: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onSeeking: true }),\n      captured: keyOf({ onSeekingCapture: true })\n    }\n  },\n  stalled: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onStalled: true }),\n      captured: keyOf({ onStalledCapture: true })\n    }\n  },\n  submit: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onSubmit: true }),\n      captured: keyOf({ onSubmitCapture: true })\n    }\n  },\n  suspend: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onSuspend: true }),\n      captured: keyOf({ onSuspendCapture: true })\n    }\n  },\n  timeUpdate: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onTimeUpdate: true }),\n      captured: keyOf({ onTimeUpdateCapture: true })\n    }\n  },\n  touchCancel: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onTouchCancel: true }),\n      captured: keyOf({ onTouchCancelCapture: true })\n    }\n  },\n  touchEnd: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onTouchEnd: true }),\n      captured: keyOf({ onTouchEndCapture: true })\n    }\n  },\n  touchMove: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onTouchMove: true }),\n      captured: keyOf({ onTouchMoveCapture: true })\n    }\n  },\n  touchStart: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onTouchStart: true }),\n      captured: keyOf({ onTouchStartCapture: true })\n    }\n  },\n  transitionEnd: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onTransitionEnd: true }),\n      captured: keyOf({ onTransitionEndCapture: true })\n    }\n  },\n  volumeChange: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onVolumeChange: true }),\n      captured: keyOf({ onVolumeChangeCapture: true })\n    }\n  },\n  waiting: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onWaiting: true }),\n      captured: keyOf({ onWaitingCapture: true })\n    }\n  },\n  wheel: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onWheel: true }),\n      captured: keyOf({ onWheelCapture: true })\n    }\n  }\n};\n\nvar topLevelEventsToDispatchConfig = {\n  topAbort: eventTypes.abort,\n  topAnimationEnd: eventTypes.animationEnd,\n  topAnimationIteration: eventTypes.animationIteration,\n  topAnimationStart: eventTypes.animationStart,\n  topBlur: eventTypes.blur,\n  topCanPlay: eventTypes.canPlay,\n  topCanPlayThrough: eventTypes.canPlayThrough,\n  topClick: eventTypes.click,\n  topContextMenu: eventTypes.contextMenu,\n  topCopy: eventTypes.copy,\n  topCut: eventTypes.cut,\n  topDoubleClick: eventTypes.doubleClick,\n  topDrag: eventTypes.drag,\n  topDragEnd: eventTypes.dragEnd,\n  topDragEnter: eventTypes.dragEnter,\n  topDragExit: eventTypes.dragExit,\n  topDragLeave: eventTypes.dragLeave,\n  topDragOver: eventTypes.dragOver,\n  topDragStart: eventTypes.dragStart,\n  topDrop: eventTypes.drop,\n  topDurationChange: eventTypes.durationChange,\n  topEmptied: eventTypes.emptied,\n  topEncrypted: eventTypes.encrypted,\n  topEnded: eventTypes.ended,\n  topError: eventTypes.error,\n  topFocus: eventTypes.focus,\n  topInput: eventTypes.input,\n  topInvalid: eventTypes.invalid,\n  topKeyDown: eventTypes.keyDown,\n  topKeyPress: eventTypes.keyPress,\n  topKeyUp: eventTypes.keyUp,\n  topLoad: eventTypes.load,\n  topLoadedData: eventTypes.loadedData,\n  topLoadedMetadata: eventTypes.loadedMetadata,\n  topLoadStart: eventTypes.loadStart,\n  topMouseDown: eventTypes.mouseDown,\n  topMouseMove: eventTypes.mouseMove,\n  topMouseOut: eventTypes.mouseOut,\n  topMouseOver: eventTypes.mouseOver,\n  topMouseUp: eventTypes.mouseUp,\n  topPaste: eventTypes.paste,\n  topPause: eventTypes.pause,\n  topPlay: eventTypes.play,\n  topPlaying: eventTypes.playing,\n  topProgress: eventTypes.progress,\n  topRateChange: eventTypes.rateChange,\n  topReset: eventTypes.reset,\n  topScroll: eventTypes.scroll,\n  topSeeked: eventTypes.seeked,\n  topSeeking: eventTypes.seeking,\n  topStalled: eventTypes.stalled,\n  topSubmit: eventTypes.submit,\n  topSuspend: eventTypes.suspend,\n  topTimeUpdate: eventTypes.timeUpdate,\n  topTouchCancel: eventTypes.touchCancel,\n  topTouchEnd: eventTypes.touchEnd,\n  topTouchMove: eventTypes.touchMove,\n  topTouchStart: eventTypes.touchStart,\n  topTransitionEnd: eventTypes.transitionEnd,\n  topVolumeChange: eventTypes.volumeChange,\n  topWaiting: eventTypes.waiting,\n  topWheel: eventTypes.wheel\n};\n\nfor (var type in topLevelEventsToDispatchConfig) {\n  topLevelEventsToDispatchConfig[type].dependencies = [type];\n}\n\nvar ON_CLICK_KEY = keyOf({ onClick: null });\nvar onClickListeners = {};\n\nfunction getDictionaryKey(inst) {\n  // Prevents V8 performance issue:\n  // https://github.com/facebook/react/pull/7232\n  return '.' + inst._rootNodeID;\n}\n\nvar SimpleEventPlugin = {\n\n  eventTypes: eventTypes,\n\n  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n    var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType];\n    if (!dispatchConfig) {\n      return null;\n    }\n    var EventConstructor;\n    switch (topLevelType) {\n      case topLevelTypes.topAbort:\n      case topLevelTypes.topCanPlay:\n      case topLevelTypes.topCanPlayThrough:\n      case topLevelTypes.topDurationChange:\n      case topLevelTypes.topEmptied:\n      case topLevelTypes.topEncrypted:\n      case topLevelTypes.topEnded:\n      case topLevelTypes.topError:\n      case topLevelTypes.topInput:\n      case topLevelTypes.topInvalid:\n      case topLevelTypes.topLoad:\n      case topLevelTypes.topLoadedData:\n      case topLevelTypes.topLoadedMetadata:\n      case topLevelTypes.topLoadStart:\n      case topLevelTypes.topPause:\n      case topLevelTypes.topPlay:\n      case topLevelTypes.topPlaying:\n      case topLevelTypes.topProgress:\n      case topLevelTypes.topRateChange:\n      case topLevelTypes.topReset:\n      case topLevelTypes.topSeeked:\n      case topLevelTypes.topSeeking:\n      case topLevelTypes.topStalled:\n      case topLevelTypes.topSubmit:\n      case topLevelTypes.topSuspend:\n      case topLevelTypes.topTimeUpdate:\n      case topLevelTypes.topVolumeChange:\n      case topLevelTypes.topWaiting:\n        // HTML Events\n        // @see http://www.w3.org/TR/html5/index.html#events-0\n        EventConstructor = SyntheticEvent;\n        break;\n      case topLevelTypes.topKeyPress:\n        // Firefox creates a keypress event for function keys too. This removes\n        // the unwanted keypress events. Enter is however both printable and\n        // non-printable. One would expect Tab to be as well (but it isn't).\n        if (getEventCharCode(nativeEvent) === 0) {\n          return null;\n        }\n      /* falls through */\n      case topLevelTypes.topKeyDown:\n      case topLevelTypes.topKeyUp:\n        EventConstructor = SyntheticKeyboardEvent;\n        break;\n      case topLevelTypes.topBlur:\n      case topLevelTypes.topFocus:\n        EventConstructor = SyntheticFocusEvent;\n        break;\n      case topLevelTypes.topClick:\n        // Firefox creates a click event on right mouse clicks. This removes the\n        // unwanted click events.\n        if (nativeEvent.button === 2) {\n          return null;\n        }\n      /* falls through */\n      case topLevelTypes.topContextMenu:\n      case topLevelTypes.topDoubleClick:\n      case topLevelTypes.topMouseDown:\n      case topLevelTypes.topMouseMove:\n      case topLevelTypes.topMouseOut:\n      case topLevelTypes.topMouseOver:\n      case topLevelTypes.topMouseUp:\n        EventConstructor = SyntheticMouseEvent;\n        break;\n      case topLevelTypes.topDrag:\n      case topLevelTypes.topDragEnd:\n      case topLevelTypes.topDragEnter:\n      case topLevelTypes.topDragExit:\n      case topLevelTypes.topDragLeave:\n      case topLevelTypes.topDragOver:\n      case topLevelTypes.topDragStart:\n      case topLevelTypes.topDrop:\n        EventConstructor = SyntheticDragEvent;\n        break;\n      case topLevelTypes.topTouchCancel:\n      case topLevelTypes.topTouchEnd:\n      case topLevelTypes.topTouchMove:\n      case topLevelTypes.topTouchStart:\n        EventConstructor = SyntheticTouchEvent;\n        break;\n      case topLevelTypes.topAnimationEnd:\n      case topLevelTypes.topAnimationIteration:\n      case topLevelTypes.topAnimationStart:\n        EventConstructor = SyntheticAnimationEvent;\n        break;\n      case topLevelTypes.topTransitionEnd:\n        EventConstructor = SyntheticTransitionEvent;\n        break;\n      case topLevelTypes.topScroll:\n        EventConstructor = SyntheticUIEvent;\n        break;\n      case topLevelTypes.topWheel:\n        EventConstructor = SyntheticWheelEvent;\n        break;\n      case topLevelTypes.topCopy:\n      case topLevelTypes.topCut:\n      case topLevelTypes.topPaste:\n        EventConstructor = SyntheticClipboardEvent;\n        break;\n    }\n    !EventConstructor ? \"development\" !== 'production' ? invariant(false, 'SimpleEventPlugin: Unhandled event type, `%s`.', topLevelType) : _prodInvariant('86', topLevelType) : void 0;\n    var event = EventConstructor.getPooled(dispatchConfig, targetInst, nativeEvent, nativeEventTarget);\n    EventPropagators.accumulateTwoPhaseDispatches(event);\n    return event;\n  },\n\n  didPutListener: function (inst, registrationName, listener) {\n    // Mobile Safari does not fire properly bubble click events on\n    // non-interactive elements, which means delegated click listeners do not\n    // fire. The workaround for this bug involves attaching an empty click\n    // listener on the target node.\n    if (registrationName === ON_CLICK_KEY) {\n      var key = getDictionaryKey(inst);\n      var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n      if (!onClickListeners[key]) {\n        onClickListeners[key] = EventListener.listen(node, 'click', emptyFunction);\n      }\n    }\n  },\n\n  willDeleteListener: function (inst, registrationName) {\n    if (registrationName === ON_CLICK_KEY) {\n      var key = getDictionaryKey(inst);\n      onClickListeners[key].remove();\n      delete onClickListeners[key];\n    }\n  }\n\n};\n\nmodule.exports = SimpleEventPlugin;\n},{\"101\":101,\"102\":102,\"104\":104,\"105\":105,\"106\":106,\"108\":108,\"109\":109,\"110\":110,\"111\":111,\"112\":112,\"113\":113,\"126\":126,\"140\":140,\"147\":147,\"154\":154,\"16\":16,\"162\":162,\"166\":166,\"20\":20,\"42\":42}],101:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticAnimationEvent\n */\n\n'use strict';\n\nvar SyntheticEvent = _dereq_(105);\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent\n */\nvar AnimationEventInterface = {\n  animationName: null,\n  elapsedTime: null,\n  pseudoElement: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticAnimationEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticAnimationEvent, AnimationEventInterface);\n\nmodule.exports = SyntheticAnimationEvent;\n},{\"105\":105}],102:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticClipboardEvent\n */\n\n'use strict';\n\nvar SyntheticEvent = _dereq_(105);\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/clipboard-apis/\n */\nvar ClipboardEventInterface = {\n  clipboardData: function (event) {\n    return 'clipboardData' in event ? event.clipboardData : window.clipboardData;\n  }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticClipboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface);\n\nmodule.exports = SyntheticClipboardEvent;\n},{\"105\":105}],103:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticCompositionEvent\n */\n\n'use strict';\n\nvar SyntheticEvent = _dereq_(105);\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents\n */\nvar CompositionEventInterface = {\n  data: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticCompositionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticCompositionEvent, CompositionEventInterface);\n\nmodule.exports = SyntheticCompositionEvent;\n},{\"105\":105}],104:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticDragEvent\n */\n\n'use strict';\n\nvar SyntheticMouseEvent = _dereq_(109);\n\n/**\n * @interface DragEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar DragEventInterface = {\n  dataTransfer: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticDragEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface);\n\nmodule.exports = SyntheticDragEvent;\n},{\"109\":109}],105:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticEvent\n */\n\n'use strict';\n\nvar _assign = _dereq_(172);\n\nvar PooledClass = _dereq_(25);\n\nvar emptyFunction = _dereq_(154);\nvar warning = _dereq_(171);\n\nvar didWarnForAddedNewProperty = false;\nvar isProxySupported = typeof Proxy === 'function';\n\nvar shouldBeReleasedProperties = ['dispatchConfig', '_targetInst', 'nativeEvent', 'isDefaultPrevented', 'isPropagationStopped', '_dispatchListeners', '_dispatchInstances'];\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar EventInterface = {\n  type: null,\n  target: null,\n  // currentTarget is set when dispatching; no use in copying it here\n  currentTarget: emptyFunction.thatReturnsNull,\n  eventPhase: null,\n  bubbles: null,\n  cancelable: null,\n  timeStamp: function (event) {\n    return event.timeStamp || Date.now();\n  },\n  defaultPrevented: null,\n  isTrusted: null\n};\n\n/**\n * Synthetic events are dispatched by event plugins, typically in response to a\n * top-level event delegation handler.\n *\n * These systems should generally use pooling to reduce the frequency of garbage\n * collection. The system should check `isPersistent` to determine whether the\n * event should be released into the pool after being dispatched. Users that\n * need a persisted event should invoke `persist`.\n *\n * Synthetic events (and subclasses) implement the DOM Level 3 Events API by\n * normalizing browser quirks. Subclasses do not necessarily have to implement a\n * DOM interface; custom application-specific events can also subclass this.\n *\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {*} targetInst Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @param {DOMEventTarget} nativeEventTarget Target node.\n */\nfunction SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarget) {\n  if (\"development\" !== 'production') {\n    // these have a getter/setter for warnings\n    delete this.nativeEvent;\n    delete this.preventDefault;\n    delete this.stopPropagation;\n  }\n\n  this.dispatchConfig = dispatchConfig;\n  this._targetInst = targetInst;\n  this.nativeEvent = nativeEvent;\n\n  var Interface = this.constructor.Interface;\n  for (var propName in Interface) {\n    if (!Interface.hasOwnProperty(propName)) {\n      continue;\n    }\n    if (\"development\" !== 'production') {\n      delete this[propName]; // this has a getter/setter for warnings\n    }\n    var normalize = Interface[propName];\n    if (normalize) {\n      this[propName] = normalize(nativeEvent);\n    } else {\n      if (propName === 'target') {\n        this.target = nativeEventTarget;\n      } else {\n        this[propName] = nativeEvent[propName];\n      }\n    }\n  }\n\n  var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false;\n  if (defaultPrevented) {\n    this.isDefaultPrevented = emptyFunction.thatReturnsTrue;\n  } else {\n    this.isDefaultPrevented = emptyFunction.thatReturnsFalse;\n  }\n  this.isPropagationStopped = emptyFunction.thatReturnsFalse;\n  return this;\n}\n\n_assign(SyntheticEvent.prototype, {\n\n  preventDefault: function () {\n    this.defaultPrevented = true;\n    var event = this.nativeEvent;\n    if (!event) {\n      return;\n    }\n\n    if (event.preventDefault) {\n      event.preventDefault();\n    } else {\n      event.returnValue = false;\n    }\n    this.isDefaultPrevented = emptyFunction.thatReturnsTrue;\n  },\n\n  stopPropagation: function () {\n    var event = this.nativeEvent;\n    if (!event) {\n      return;\n    }\n\n    if (event.stopPropagation) {\n      event.stopPropagation();\n    } else if (typeof event.cancelBubble !== 'unknown') {\n      // eslint-disable-line valid-typeof\n      // The ChangeEventPlugin registers a \"propertychange\" event for\n      // IE. This event does not support bubbling or cancelling, and\n      // any references to cancelBubble throw \"Member not found\".  A\n      // typeof check of \"unknown\" circumvents this issue (and is also\n      // IE specific).\n      event.cancelBubble = true;\n    }\n\n    this.isPropagationStopped = emptyFunction.thatReturnsTrue;\n  },\n\n  /**\n   * We release all dispatched `SyntheticEvent`s after each event loop, adding\n   * them back into the pool. This allows a way to hold onto a reference that\n   * won't be added back into the pool.\n   */\n  persist: function () {\n    this.isPersistent = emptyFunction.thatReturnsTrue;\n  },\n\n  /**\n   * Checks if this event should be released back into the pool.\n   *\n   * @return {boolean} True if this should not be released, false otherwise.\n   */\n  isPersistent: emptyFunction.thatReturnsFalse,\n\n  /**\n   * `PooledClass` looks for `destructor` on each instance it releases.\n   */\n  destructor: function () {\n    var Interface = this.constructor.Interface;\n    for (var propName in Interface) {\n      if (\"development\" !== 'production') {\n        Object.defineProperty(this, propName, getPooledWarningPropertyDefinition(propName, Interface[propName]));\n      } else {\n        this[propName] = null;\n      }\n    }\n    for (var i = 0; i < shouldBeReleasedProperties.length; i++) {\n      this[shouldBeReleasedProperties[i]] = null;\n    }\n    if (\"development\" !== 'production') {\n      Object.defineProperty(this, 'nativeEvent', getPooledWarningPropertyDefinition('nativeEvent', null));\n      Object.defineProperty(this, 'preventDefault', getPooledWarningPropertyDefinition('preventDefault', emptyFunction));\n      Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', emptyFunction));\n    }\n  }\n\n});\n\nSyntheticEvent.Interface = EventInterface;\n\nif (\"development\" !== 'production') {\n  if (isProxySupported) {\n    /*eslint-disable no-func-assign */\n    SyntheticEvent = new Proxy(SyntheticEvent, {\n      construct: function (target, args) {\n        return this.apply(target, Object.create(target.prototype), args);\n      },\n      apply: function (constructor, that, args) {\n        return new Proxy(constructor.apply(that, args), {\n          set: function (target, prop, value) {\n            if (prop !== 'isPersistent' && !target.constructor.Interface.hasOwnProperty(prop) && shouldBeReleasedProperties.indexOf(prop) === -1) {\n              \"development\" !== 'production' ? warning(didWarnForAddedNewProperty || target.isPersistent(), 'This synthetic event is reused for performance reasons. If you\\'re ' + 'seeing this, you\\'re adding a new property in the synthetic event object. ' + 'The property is never released. See ' + 'https://fb.me/react-event-pooling for more information.') : void 0;\n              didWarnForAddedNewProperty = true;\n            }\n            target[prop] = value;\n            return true;\n          }\n        });\n      }\n    });\n    /*eslint-enable no-func-assign */\n  }\n}\n/**\n * Helper to reduce boilerplate when creating subclasses.\n *\n * @param {function} Class\n * @param {?object} Interface\n */\nSyntheticEvent.augmentClass = function (Class, Interface) {\n  var Super = this;\n\n  var E = function () {};\n  E.prototype = Super.prototype;\n  var prototype = new E();\n\n  _assign(prototype, Class.prototype);\n  Class.prototype = prototype;\n  Class.prototype.constructor = Class;\n\n  Class.Interface = _assign({}, Super.Interface, Interface);\n  Class.augmentClass = Super.augmentClass;\n\n  PooledClass.addPoolingTo(Class, PooledClass.fourArgumentPooler);\n};\n\nPooledClass.addPoolingTo(SyntheticEvent, PooledClass.fourArgumentPooler);\n\nmodule.exports = SyntheticEvent;\n\n/**\n  * Helper to nullify syntheticEvent instance properties when destructing\n  *\n  * @param {object} SyntheticEvent\n  * @param {String} propName\n  * @return {object} defineProperty object\n  */\nfunction getPooledWarningPropertyDefinition(propName, getVal) {\n  var isFunction = typeof getVal === 'function';\n  return {\n    configurable: true,\n    set: set,\n    get: get\n  };\n\n  function set(val) {\n    var action = isFunction ? 'setting the method' : 'setting the property';\n    warn(action, 'This is effectively a no-op');\n    return val;\n  }\n\n  function get() {\n    var action = isFunction ? 'accessing the method' : 'accessing the property';\n    var result = isFunction ? 'This is a no-op function' : 'This is set to null';\n    warn(action, result);\n    return getVal;\n  }\n\n  function warn(action, result) {\n    var warningCondition = false;\n    \"development\" !== 'production' ? warning(warningCondition, 'This synthetic event is reused for performance reasons. If you\\'re seeing this, ' + 'you\\'re %s `%s` on a released/nullified synthetic event. %s. ' + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0;\n  }\n}\n},{\"154\":154,\"171\":171,\"172\":172,\"25\":25}],106:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticFocusEvent\n */\n\n'use strict';\n\nvar SyntheticUIEvent = _dereq_(112);\n\n/**\n * @interface FocusEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar FocusEventInterface = {\n  relatedTarget: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticFocusEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface);\n\nmodule.exports = SyntheticFocusEvent;\n},{\"112\":112}],107:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticInputEvent\n */\n\n'use strict';\n\nvar SyntheticEvent = _dereq_(105);\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105\n *      /#events-inputevents\n */\nvar InputEventInterface = {\n  data: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticInputEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticInputEvent, InputEventInterface);\n\nmodule.exports = SyntheticInputEvent;\n},{\"105\":105}],108:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticKeyboardEvent\n */\n\n'use strict';\n\nvar SyntheticUIEvent = _dereq_(112);\n\nvar getEventCharCode = _dereq_(126);\nvar getEventKey = _dereq_(127);\nvar getEventModifierState = _dereq_(128);\n\n/**\n * @interface KeyboardEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar KeyboardEventInterface = {\n  key: getEventKey,\n  location: null,\n  ctrlKey: null,\n  shiftKey: null,\n  altKey: null,\n  metaKey: null,\n  repeat: null,\n  locale: null,\n  getModifierState: getEventModifierState,\n  // Legacy Interface\n  charCode: function (event) {\n    // `charCode` is the result of a KeyPress event and represents the value of\n    // the actual printable character.\n\n    // KeyPress is deprecated, but its replacement is not yet final and not\n    // implemented in any major browser. Only KeyPress has charCode.\n    if (event.type === 'keypress') {\n      return getEventCharCode(event);\n    }\n    return 0;\n  },\n  keyCode: function (event) {\n    // `keyCode` is the result of a KeyDown/Up event and represents the value of\n    // physical keyboard key.\n\n    // The actual meaning of the value depends on the users' keyboard layout\n    // which cannot be detected. Assuming that it is a US keyboard layout\n    // provides a surprisingly accurate mapping for US and European users.\n    // Due to this, it is left to the user to implement at this time.\n    if (event.type === 'keydown' || event.type === 'keyup') {\n      return event.keyCode;\n    }\n    return 0;\n  },\n  which: function (event) {\n    // `which` is an alias for either `keyCode` or `charCode` depending on the\n    // type of the event.\n    if (event.type === 'keypress') {\n      return getEventCharCode(event);\n    }\n    if (event.type === 'keydown' || event.type === 'keyup') {\n      return event.keyCode;\n    }\n    return 0;\n  }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticKeyboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface);\n\nmodule.exports = SyntheticKeyboardEvent;\n},{\"112\":112,\"126\":126,\"127\":127,\"128\":128}],109:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticMouseEvent\n */\n\n'use strict';\n\nvar SyntheticUIEvent = _dereq_(112);\nvar ViewportMetrics = _dereq_(115);\n\nvar getEventModifierState = _dereq_(128);\n\n/**\n * @interface MouseEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar MouseEventInterface = {\n  screenX: null,\n  screenY: null,\n  clientX: null,\n  clientY: null,\n  ctrlKey: null,\n  shiftKey: null,\n  altKey: null,\n  metaKey: null,\n  getModifierState: getEventModifierState,\n  button: function (event) {\n    // Webkit, Firefox, IE9+\n    // which:  1 2 3\n    // button: 0 1 2 (standard)\n    var button = event.button;\n    if ('which' in event) {\n      return button;\n    }\n    // IE<9\n    // which:  undefined\n    // button: 0 0 0\n    // button: 1 4 2 (onmouseup)\n    return button === 2 ? 2 : button === 4 ? 1 : 0;\n  },\n  buttons: null,\n  relatedTarget: function (event) {\n    return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement);\n  },\n  // \"Proprietary\" Interface.\n  pageX: function (event) {\n    return 'pageX' in event ? event.pageX : event.clientX + ViewportMetrics.currentScrollLeft;\n  },\n  pageY: function (event) {\n    return 'pageY' in event ? event.pageY : event.clientY + ViewportMetrics.currentScrollTop;\n  }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface);\n\nmodule.exports = SyntheticMouseEvent;\n},{\"112\":112,\"115\":115,\"128\":128}],110:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticTouchEvent\n */\n\n'use strict';\n\nvar SyntheticUIEvent = _dereq_(112);\n\nvar getEventModifierState = _dereq_(128);\n\n/**\n * @interface TouchEvent\n * @see http://www.w3.org/TR/touch-events/\n */\nvar TouchEventInterface = {\n  touches: null,\n  targetTouches: null,\n  changedTouches: null,\n  altKey: null,\n  metaKey: null,\n  ctrlKey: null,\n  shiftKey: null,\n  getModifierState: getEventModifierState\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticTouchEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface);\n\nmodule.exports = SyntheticTouchEvent;\n},{\"112\":112,\"128\":128}],111:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticTransitionEvent\n */\n\n'use strict';\n\nvar SyntheticEvent = _dereq_(105);\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events-\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent\n */\nvar TransitionEventInterface = {\n  propertyName: null,\n  elapsedTime: null,\n  pseudoElement: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticTransitionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticTransitionEvent, TransitionEventInterface);\n\nmodule.exports = SyntheticTransitionEvent;\n},{\"105\":105}],112:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticUIEvent\n */\n\n'use strict';\n\nvar SyntheticEvent = _dereq_(105);\n\nvar getEventTarget = _dereq_(129);\n\n/**\n * @interface UIEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar UIEventInterface = {\n  view: function (event) {\n    if (event.view) {\n      return event.view;\n    }\n\n    var target = getEventTarget(event);\n    if (target.window === target) {\n      // target is a window object\n      return target;\n    }\n\n    var doc = target.ownerDocument;\n    // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n    if (doc) {\n      return doc.defaultView || doc.parentWindow;\n    } else {\n      return window;\n    }\n  },\n  detail: function (event) {\n    return event.detail || 0;\n  }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface);\n\nmodule.exports = SyntheticUIEvent;\n},{\"105\":105,\"129\":129}],113:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticWheelEvent\n */\n\n'use strict';\n\nvar SyntheticMouseEvent = _dereq_(109);\n\n/**\n * @interface WheelEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar WheelEventInterface = {\n  deltaX: function (event) {\n    return 'deltaX' in event ? event.deltaX :\n    // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).\n    'wheelDeltaX' in event ? -event.wheelDeltaX : 0;\n  },\n  deltaY: function (event) {\n    return 'deltaY' in event ? event.deltaY :\n    // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).\n    'wheelDeltaY' in event ? -event.wheelDeltaY :\n    // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).\n    'wheelDelta' in event ? -event.wheelDelta : 0;\n  },\n  deltaZ: null,\n\n  // Browsers without \"deltaMode\" is reporting in raw wheel delta where one\n  // notch on the scroll is always +/- 120, roughly equivalent to pixels.\n  // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or\n  // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.\n  deltaMode: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticMouseEvent}\n */\nfunction SyntheticWheelEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface);\n\nmodule.exports = SyntheticWheelEvent;\n},{\"109\":109}],114:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Transaction\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar invariant = _dereq_(162);\n\n/**\n * `Transaction` creates a black box that is able to wrap any method such that\n * certain invariants are maintained before and after the method is invoked\n * (Even if an exception is thrown while invoking the wrapped method). Whoever\n * instantiates a transaction can provide enforcers of the invariants at\n * creation time. The `Transaction` class itself will supply one additional\n * automatic invariant for you - the invariant that any transaction instance\n * should not be run while it is already being run. You would typically create a\n * single instance of a `Transaction` for reuse multiple times, that potentially\n * is used to wrap several different methods. Wrappers are extremely simple -\n * they only require implementing two methods.\n *\n * <pre>\n *                       wrappers (injected at creation time)\n *                                      +        +\n *                                      |        |\n *                    +-----------------|--------|--------------+\n *                    |                 v        |              |\n *                    |      +---------------+   |              |\n *                    |   +--|    wrapper1   |---|----+         |\n *                    |   |  +---------------+   v    |         |\n *                    |   |          +-------------+  |         |\n *                    |   |     +----|   wrapper2  |--------+   |\n *                    |   |     |    +-------------+  |     |   |\n *                    |   |     |                     |     |   |\n *                    |   v     v                     v     v   | wrapper\n *                    | +---+ +---+   +---------+   +---+ +---+ | invariants\n * perform(anyMethod) | |   | |   |   |         |   |   | |   | | maintained\n * +----------------->|-|---|-|---|-->|anyMethod|---|---|-|---|-|-------->\n *                    | |   | |   |   |         |   |   | |   | |\n *                    | |   | |   |   |         |   |   | |   | |\n *                    | |   | |   |   |         |   |   | |   | |\n *                    | +---+ +---+   +---------+   +---+ +---+ |\n *                    |  initialize                    close    |\n *                    +-----------------------------------------+\n * </pre>\n *\n * Use cases:\n * - Preserving the input selection ranges before/after reconciliation.\n *   Restoring selection even in the event of an unexpected error.\n * - Deactivating events while rearranging the DOM, preventing blurs/focuses,\n *   while guaranteeing that afterwards, the event system is reactivated.\n * - Flushing a queue of collected DOM mutations to the main UI thread after a\n *   reconciliation takes place in a worker thread.\n * - Invoking any collected `componentDidUpdate` callbacks after rendering new\n *   content.\n * - (Future use case): Wrapping particular flushes of the `ReactWorker` queue\n *   to preserve the `scrollTop` (an automatic scroll aware DOM).\n * - (Future use case): Layout calculations before and after DOM updates.\n *\n * Transactional plugin API:\n * - A module that has an `initialize` method that returns any precomputation.\n * - and a `close` method that accepts the precomputation. `close` is invoked\n *   when the wrapped process is completed, or has failed.\n *\n * @param {Array<TransactionalWrapper>} transactionWrapper Wrapper modules\n * that implement `initialize` and `close`.\n * @return {Transaction} Single transaction for reuse in thread.\n *\n * @class Transaction\n */\nvar Mixin = {\n  /**\n   * Sets up this instance so that it is prepared for collecting metrics. Does\n   * so such that this setup method may be used on an instance that is already\n   * initialized, in a way that does not consume additional memory upon reuse.\n   * That can be useful if you decide to make your subclass of this mixin a\n   * \"PooledClass\".\n   */\n  reinitializeTransaction: function () {\n    this.transactionWrappers = this.getTransactionWrappers();\n    if (this.wrapperInitData) {\n      this.wrapperInitData.length = 0;\n    } else {\n      this.wrapperInitData = [];\n    }\n    this._isInTransaction = false;\n  },\n\n  _isInTransaction: false,\n\n  /**\n   * @abstract\n   * @return {Array<TransactionWrapper>} Array of transaction wrappers.\n   */\n  getTransactionWrappers: null,\n\n  isInTransaction: function () {\n    return !!this._isInTransaction;\n  },\n\n  /**\n   * Executes the function within a safety window. Use this for the top level\n   * methods that result in large amounts of computation/mutations that would\n   * need to be safety checked. The optional arguments helps prevent the need\n   * to bind in many cases.\n   *\n   * @param {function} method Member of scope to call.\n   * @param {Object} scope Scope to invoke from.\n   * @param {Object?=} a Argument to pass to the method.\n   * @param {Object?=} b Argument to pass to the method.\n   * @param {Object?=} c Argument to pass to the method.\n   * @param {Object?=} d Argument to pass to the method.\n   * @param {Object?=} e Argument to pass to the method.\n   * @param {Object?=} f Argument to pass to the method.\n   *\n   * @return {*} Return value from `method`.\n   */\n  perform: function (method, scope, a, b, c, d, e, f) {\n    !!this.isInTransaction() ? \"development\" !== 'production' ? invariant(false, 'Transaction.perform(...): Cannot initialize a transaction when there is already an outstanding transaction.') : _prodInvariant('27') : void 0;\n    var errorThrown;\n    var ret;\n    try {\n      this._isInTransaction = true;\n      // Catching errors makes debugging more difficult, so we start with\n      // errorThrown set to true before setting it to false after calling\n      // close -- if it's still set to true in the finally block, it means\n      // one of these calls threw.\n      errorThrown = true;\n      this.initializeAll(0);\n      ret = method.call(scope, a, b, c, d, e, f);\n      errorThrown = false;\n    } finally {\n      try {\n        if (errorThrown) {\n          // If `method` throws, prefer to show that stack trace over any thrown\n          // by invoking `closeAll`.\n          try {\n            this.closeAll(0);\n          } catch (err) {}\n        } else {\n          // Since `method` didn't throw, we don't want to silence the exception\n          // here.\n          this.closeAll(0);\n        }\n      } finally {\n        this._isInTransaction = false;\n      }\n    }\n    return ret;\n  },\n\n  initializeAll: function (startIndex) {\n    var transactionWrappers = this.transactionWrappers;\n    for (var i = startIndex; i < transactionWrappers.length; i++) {\n      var wrapper = transactionWrappers[i];\n      try {\n        // Catching errors makes debugging more difficult, so we start with the\n        // OBSERVED_ERROR state before overwriting it with the real return value\n        // of initialize -- if it's still set to OBSERVED_ERROR in the finally\n        // block, it means wrapper.initialize threw.\n        this.wrapperInitData[i] = Transaction.OBSERVED_ERROR;\n        this.wrapperInitData[i] = wrapper.initialize ? wrapper.initialize.call(this) : null;\n      } finally {\n        if (this.wrapperInitData[i] === Transaction.OBSERVED_ERROR) {\n          // The initializer for wrapper i threw an error; initialize the\n          // remaining wrappers but silence any exceptions from them to ensure\n          // that the first error is the one to bubble up.\n          try {\n            this.initializeAll(i + 1);\n          } catch (err) {}\n        }\n      }\n    }\n  },\n\n  /**\n   * Invokes each of `this.transactionWrappers.close[i]` functions, passing into\n   * them the respective return values of `this.transactionWrappers.init[i]`\n   * (`close`rs that correspond to initializers that failed will not be\n   * invoked).\n   */\n  closeAll: function (startIndex) {\n    !this.isInTransaction() ? \"development\" !== 'production' ? invariant(false, 'Transaction.closeAll(): Cannot close transaction when none are open.') : _prodInvariant('28') : void 0;\n    var transactionWrappers = this.transactionWrappers;\n    for (var i = startIndex; i < transactionWrappers.length; i++) {\n      var wrapper = transactionWrappers[i];\n      var initData = this.wrapperInitData[i];\n      var errorThrown;\n      try {\n        // Catching errors makes debugging more difficult, so we start with\n        // errorThrown set to true before setting it to false after calling\n        // close -- if it's still set to true in the finally block, it means\n        // wrapper.close threw.\n        errorThrown = true;\n        if (initData !== Transaction.OBSERVED_ERROR && wrapper.close) {\n          wrapper.close.call(this, initData);\n        }\n        errorThrown = false;\n      } finally {\n        if (errorThrown) {\n          // The closer for wrapper i threw an error; close the remaining\n          // wrappers but silence any exceptions from them to ensure that the\n          // first error is the one to bubble up.\n          try {\n            this.closeAll(i + 1);\n          } catch (e) {}\n        }\n      }\n    }\n    this.wrapperInitData.length = 0;\n  }\n};\n\nvar Transaction = {\n\n  Mixin: Mixin,\n\n  /**\n   * Token to look for to determine if an error occurred.\n   */\n  OBSERVED_ERROR: {}\n\n};\n\nmodule.exports = Transaction;\n},{\"140\":140,\"162\":162}],115:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ViewportMetrics\n */\n\n'use strict';\n\nvar ViewportMetrics = {\n\n  currentScrollLeft: 0,\n\n  currentScrollTop: 0,\n\n  refreshScrollValues: function (scrollPosition) {\n    ViewportMetrics.currentScrollLeft = scrollPosition.x;\n    ViewportMetrics.currentScrollTop = scrollPosition.y;\n  }\n\n};\n\nmodule.exports = ViewportMetrics;\n},{}],116:[function(_dereq_,module,exports){\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule accumulateInto\n * \n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar invariant = _dereq_(162);\n\n/**\n * Accumulates items that must not be null or undefined into the first one. This\n * is used to conserve memory by avoiding array allocations, and thus sacrifices\n * API cleanness. Since `current` can be null before being passed in and not\n * null after this function, make sure to assign it back to `current`:\n *\n * `a = accumulateInto(a, b);`\n *\n * This API should be sparingly used. Try `accumulate` for something cleaner.\n *\n * @return {*|array<*>} An accumulation of items.\n */\n\nfunction accumulateInto(current, next) {\n  !(next != null) ? \"development\" !== 'production' ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : _prodInvariant('30') : void 0;\n\n  if (current == null) {\n    return next;\n  }\n\n  // Both are not empty. Warning: Never call x.concat(y) when you are not\n  // certain that x is an Array (x could be a string with concat method).\n  if (Array.isArray(current)) {\n    if (Array.isArray(next)) {\n      current.push.apply(current, next);\n      return current;\n    }\n    current.push(next);\n    return current;\n  }\n\n  if (Array.isArray(next)) {\n    // A bit too dangerous to mutate `next`.\n    return [current].concat(next);\n  }\n\n  return [current, next];\n}\n\nmodule.exports = accumulateInto;\n},{\"140\":140,\"162\":162}],117:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule adler32\n * \n */\n\n'use strict';\n\nvar MOD = 65521;\n\n// adler32 is not cryptographically strong, and is only used to sanity check that\n// markup generated on the server matches the markup generated on the client.\n// This implementation (a modified version of the SheetJS version) has been optimized\n// for our use case, at the expense of conforming to the adler32 specification\n// for non-ascii inputs.\nfunction adler32(data) {\n  var a = 1;\n  var b = 0;\n  var i = 0;\n  var l = data.length;\n  var m = l & ~0x3;\n  while (i < m) {\n    var n = Math.min(i + 4096, m);\n    for (; i < n; i += 4) {\n      b += (a += data.charCodeAt(i)) + (a += data.charCodeAt(i + 1)) + (a += data.charCodeAt(i + 2)) + (a += data.charCodeAt(i + 3));\n    }\n    a %= MOD;\n    b %= MOD;\n  }\n  for (; i < l; i++) {\n    b += a += data.charCodeAt(i);\n  }\n  a %= MOD;\n  b %= MOD;\n  return a | b << 16;\n}\n\nmodule.exports = adler32;\n},{}],118:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule canDefineProperty\n */\n\n'use strict';\n\nvar canDefineProperty = false;\nif (\"development\" !== 'production') {\n  try {\n    Object.defineProperty({}, 'x', { get: function () {} });\n    canDefineProperty = true;\n  } catch (x) {\n    // IE will fail on defineProperty\n  }\n}\n\nmodule.exports = canDefineProperty;\n},{}],119:[function(_dereq_,module,exports){\n(function (process){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule checkReactTypeSpec\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar ReactPropTypeLocationNames = _dereq_(82);\nvar ReactPropTypesSecret = _dereq_(85);\n\nvar invariant = _dereq_(162);\nvar warning = _dereq_(171);\n\nvar ReactComponentTreeHook;\n\nif (typeof process !== 'undefined' && process.env && \"development\" === 'test') {\n  // Temporary hack.\n  // Inline requires don't work well with Jest:\n  // https://github.com/facebook/react/issues/7240\n  // Remove the inline requires when we don't need them anymore:\n  // https://github.com/facebook/react/pull/7178\n  ReactComponentTreeHook = _dereq_(35);\n}\n\nvar loggedTypeFailures = {};\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?object} element The React element that is being type-checked\n * @param {?number} debugID The React component instance that is being type-checked\n * @private\n */\nfunction checkReactTypeSpec(typeSpecs, values, location, componentName, element, debugID) {\n  for (var typeSpecName in typeSpecs) {\n    if (typeSpecs.hasOwnProperty(typeSpecName)) {\n      var error;\n      // Prop type validation may throw. In case they do, we don't want to\n      // fail the render phase where it didn't fail before. So we log it.\n      // After these have been cleaned up, we'll let them throw.\n      try {\n        // This is intentionally an invariant that gets caught. It's the same\n        // behavior as without this statement except with a better message.\n        !(typeof typeSpecs[typeSpecName] === 'function') ? \"development\" !== 'production' ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : _prodInvariant('84', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : void 0;\n        error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n      } catch (ex) {\n        error = ex;\n      }\n      \"development\" !== 'production' ? warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName, typeof error) : void 0;\n      if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n        // Only monitor this failure once because there tends to be a lot of the\n        // same error.\n        loggedTypeFailures[error.message] = true;\n\n        var componentStackInfo = '';\n\n        if (\"development\" !== 'production') {\n          if (!ReactComponentTreeHook) {\n            ReactComponentTreeHook = _dereq_(35);\n          }\n          if (debugID !== null) {\n            componentStackInfo = ReactComponentTreeHook.getStackAddendumByID(debugID);\n          } else if (element !== null) {\n            componentStackInfo = ReactComponentTreeHook.getCurrentStackAddendum(element);\n          }\n        }\n\n        \"development\" !== 'production' ? warning(false, 'Failed %s type: %s%s', location, error.message, componentStackInfo) : void 0;\n      }\n    }\n  }\n}\n\nmodule.exports = checkReactTypeSpec;\n}).call(this,undefined)\n},{\"140\":140,\"162\":162,\"171\":171,\"35\":35,\"82\":82,\"85\":85}],120:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule createMicrosoftUnsafeLocalFunction\n */\n\n/* globals MSApp */\n\n'use strict';\n\n/**\n * Create a function which has 'unsafe' privileges (required by windows8 apps)\n */\n\nvar createMicrosoftUnsafeLocalFunction = function (func) {\n  if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {\n    return function (arg0, arg1, arg2, arg3) {\n      MSApp.execUnsafeLocalFunction(function () {\n        return func(arg0, arg1, arg2, arg3);\n      });\n    };\n  } else {\n    return func;\n  }\n};\n\nmodule.exports = createMicrosoftUnsafeLocalFunction;\n},{}],121:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule dangerousStyleValue\n */\n\n'use strict';\n\nvar CSSProperty = _dereq_(3);\nvar warning = _dereq_(171);\n\nvar isUnitlessNumber = CSSProperty.isUnitlessNumber;\nvar styleWarnings = {};\n\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @param {ReactDOMComponent} component\n * @return {string} Normalized style value with dimensions applied.\n */\nfunction dangerousStyleValue(name, value, component) {\n  // Note that we've removed escapeTextForBrowser() calls here since the\n  // whole string will be escaped when the attribute is injected into\n  // the markup. If you provide unsafe user data here they can inject\n  // arbitrary CSS which may be problematic (I couldn't repro this):\n  // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n  // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n  // This is not an XSS hole but instead a potential CSS injection issue\n  // which has lead to a greater discussion about how we're going to\n  // trust URLs moving forward. See #2115901\n\n  var isEmpty = value == null || typeof value === 'boolean' || value === '';\n  if (isEmpty) {\n    return '';\n  }\n\n  var isNonNumeric = isNaN(value);\n  if (isNonNumeric || value === 0 || isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name]) {\n    return '' + value; // cast to string\n  }\n\n  if (typeof value === 'string') {\n    if (\"development\" !== 'production') {\n      // Allow '0' to pass through without warning. 0 is already special and\n      // doesn't require units, so we don't need to warn about it.\n      if (component && value !== '0') {\n        var owner = component._currentElement._owner;\n        var ownerName = owner ? owner.getName() : null;\n        if (ownerName && !styleWarnings[ownerName]) {\n          styleWarnings[ownerName] = {};\n        }\n        var warned = false;\n        if (ownerName) {\n          var warnings = styleWarnings[ownerName];\n          warned = warnings[name];\n          if (!warned) {\n            warnings[name] = true;\n          }\n        }\n        if (!warned) {\n          \"development\" !== 'production' ? warning(false, 'a `%s` tag (owner: `%s`) was passed a numeric string value ' + 'for CSS property `%s` (value: `%s`) which will be treated ' + 'as a unitless number in a future version of React.', component._currentElement.type, ownerName || 'unknown', name, value) : void 0;\n        }\n      }\n    }\n    value = value.trim();\n  }\n  return value + 'px';\n}\n\nmodule.exports = dangerousStyleValue;\n},{\"171\":171,\"3\":3}],122:[function(_dereq_,module,exports){\n/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * Based on the escape-html library, which is used under the MIT License below:\n *\n * Copyright (c) 2012-2013 TJ Holowaychuk\n * Copyright (c) 2015 Andreas Lubbe\n * Copyright (c) 2015 Tiancheng \"Timothy\" Gu\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * 'Software'), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n *\n * @providesModule escapeTextContentForBrowser\n */\n\n'use strict';\n\n// code copied and modified from escape-html\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param  {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n  var str = '' + string;\n  var match = matchHtmlRegExp.exec(str);\n\n  if (!match) {\n    return str;\n  }\n\n  var escape;\n  var html = '';\n  var index = 0;\n  var lastIndex = 0;\n\n  for (index = match.index; index < str.length; index++) {\n    switch (str.charCodeAt(index)) {\n      case 34:\n        // \"\n        escape = '&quot;';\n        break;\n      case 38:\n        // &\n        escape = '&amp;';\n        break;\n      case 39:\n        // '\n        escape = '&#x27;'; // modified from escape-html; used to be '&#39'\n        break;\n      case 60:\n        // <\n        escape = '&lt;';\n        break;\n      case 62:\n        // >\n        escape = '&gt;';\n        break;\n      default:\n        continue;\n    }\n\n    if (lastIndex !== index) {\n      html += str.substring(lastIndex, index);\n    }\n\n    lastIndex = index + 1;\n    html += escape;\n  }\n\n  return lastIndex !== index ? html + str.substring(lastIndex, index) : html;\n}\n// end code copied and modified from escape-html\n\n\n/**\n * Escapes text to prevent scripting attacks.\n *\n * @param {*} text Text value to escape.\n * @return {string} An escaped string.\n */\nfunction escapeTextContentForBrowser(text) {\n  if (typeof text === 'boolean' || typeof text === 'number') {\n    // this shortcircuit helps perf for types that we know will never have\n    // special characters, especially given that this function is used often\n    // for numeric dom ids.\n    return '' + text;\n  }\n  return escapeHtml(text);\n}\n\nmodule.exports = escapeTextContentForBrowser;\n},{}],123:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule findDOMNode\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar ReactCurrentOwner = _dereq_(37);\nvar ReactDOMComponentTree = _dereq_(42);\nvar ReactInstanceMap = _dereq_(72);\n\nvar getHostComponentFromComposite = _dereq_(130);\nvar invariant = _dereq_(162);\nvar warning = _dereq_(171);\n\n/**\n * Returns the DOM node rendered by this element.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.finddomnode\n *\n * @param {ReactComponent|DOMElement} componentOrElement\n * @return {?DOMElement} The root node of this element.\n */\nfunction findDOMNode(componentOrElement) {\n  if (\"development\" !== 'production') {\n    var owner = ReactCurrentOwner.current;\n    if (owner !== null) {\n      \"development\" !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : void 0;\n      owner._warnedAboutRefsInRender = true;\n    }\n  }\n  if (componentOrElement == null) {\n    return null;\n  }\n  if (componentOrElement.nodeType === 1) {\n    return componentOrElement;\n  }\n\n  var inst = ReactInstanceMap.get(componentOrElement);\n  if (inst) {\n    inst = getHostComponentFromComposite(inst);\n    return inst ? ReactDOMComponentTree.getNodeFromInstance(inst) : null;\n  }\n\n  if (typeof componentOrElement.render === 'function') {\n    !false ? \"development\" !== 'production' ? invariant(false, 'findDOMNode was called on an unmounted component.') : _prodInvariant('44') : void 0;\n  } else {\n    !false ? \"development\" !== 'production' ? invariant(false, 'Element appears to be neither ReactComponent nor DOMNode (keys: %s)', Object.keys(componentOrElement)) : _prodInvariant('45', Object.keys(componentOrElement)) : void 0;\n  }\n}\n\nmodule.exports = findDOMNode;\n},{\"130\":130,\"140\":140,\"162\":162,\"171\":171,\"37\":37,\"42\":42,\"72\":72}],124:[function(_dereq_,module,exports){\n(function (process){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule flattenChildren\n * \n */\n\n'use strict';\n\nvar KeyEscapeUtils = _dereq_(23);\nvar traverseAllChildren = _dereq_(145);\nvar warning = _dereq_(171);\n\nvar ReactComponentTreeHook;\n\nif (typeof process !== 'undefined' && process.env && \"development\" === 'test') {\n  // Temporary hack.\n  // Inline requires don't work well with Jest:\n  // https://github.com/facebook/react/issues/7240\n  // Remove the inline requires when we don't need them anymore:\n  // https://github.com/facebook/react/pull/7178\n  ReactComponentTreeHook = _dereq_(35);\n}\n\n/**\n * @param {function} traverseContext Context passed through traversal.\n * @param {?ReactComponent} child React child component.\n * @param {!string} name String name of key path to child.\n * @param {number=} selfDebugID Optional debugID of the current internal instance.\n */\nfunction flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID) {\n  // We found a component instance.\n  if (traverseContext && typeof traverseContext === 'object') {\n    var result = traverseContext;\n    var keyUnique = result[name] === undefined;\n    if (\"development\" !== 'production') {\n      if (!ReactComponentTreeHook) {\n        ReactComponentTreeHook = _dereq_(35);\n      }\n      if (!keyUnique) {\n        \"development\" !== 'production' ? warning(false, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0;\n      }\n    }\n    if (keyUnique && child != null) {\n      result[name] = child;\n    }\n  }\n}\n\n/**\n * Flattens children that are typically specified as `props.children`. Any null\n * children will not be included in the resulting object.\n * @return {!object} flattened children keyed by name.\n */\nfunction flattenChildren(children, selfDebugID) {\n  if (children == null) {\n    return children;\n  }\n  var result = {};\n\n  if (\"development\" !== 'production') {\n    traverseAllChildren(children, function (traverseContext, child, name) {\n      return flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID);\n    }, result);\n  } else {\n    traverseAllChildren(children, flattenSingleChildIntoContext, result);\n  }\n  return result;\n}\n\nmodule.exports = flattenChildren;\n}).call(this,undefined)\n},{\"145\":145,\"171\":171,\"23\":23,\"35\":35}],125:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule forEachAccumulated\n * \n */\n\n'use strict';\n\n/**\n * @param {array} arr an \"accumulation\" of items which is either an Array or\n * a single item. Useful when paired with the `accumulate` module. This is a\n * simple utility that allows us to reason about a collection of items, but\n * handling the case when there is exactly one item (and we do not need to\n * allocate an array).\n */\n\nfunction forEachAccumulated(arr, cb, scope) {\n  if (Array.isArray(arr)) {\n    arr.forEach(cb, scope);\n  } else if (arr) {\n    cb.call(scope, arr);\n  }\n}\n\nmodule.exports = forEachAccumulated;\n},{}],126:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventCharCode\n */\n\n'use strict';\n\n/**\n * `charCode` represents the actual \"character code\" and is safe to use with\n * `String.fromCharCode`. As such, only keys that correspond to printable\n * characters produce a valid `charCode`, the only exception to this is Enter.\n * The Tab-key is considered non-printable and does not have a `charCode`,\n * presumably because it does not produce a tab-character in browsers.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {number} Normalized `charCode` property.\n */\n\nfunction getEventCharCode(nativeEvent) {\n  var charCode;\n  var keyCode = nativeEvent.keyCode;\n\n  if ('charCode' in nativeEvent) {\n    charCode = nativeEvent.charCode;\n\n    // FF does not set `charCode` for the Enter-key, check against `keyCode`.\n    if (charCode === 0 && keyCode === 13) {\n      charCode = 13;\n    }\n  } else {\n    // IE8 does not implement `charCode`, but `keyCode` has the correct value.\n    charCode = keyCode;\n  }\n\n  // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.\n  // Must not discard the (non-)printable Enter-key.\n  if (charCode >= 32 || charCode === 13) {\n    return charCode;\n  }\n\n  return 0;\n}\n\nmodule.exports = getEventCharCode;\n},{}],127:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventKey\n */\n\n'use strict';\n\nvar getEventCharCode = _dereq_(126);\n\n/**\n * Normalization of deprecated HTML5 `key` values\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar normalizeKey = {\n  'Esc': 'Escape',\n  'Spacebar': ' ',\n  'Left': 'ArrowLeft',\n  'Up': 'ArrowUp',\n  'Right': 'ArrowRight',\n  'Down': 'ArrowDown',\n  'Del': 'Delete',\n  'Win': 'OS',\n  'Menu': 'ContextMenu',\n  'Apps': 'ContextMenu',\n  'Scroll': 'ScrollLock',\n  'MozPrintableKey': 'Unidentified'\n};\n\n/**\n * Translation from legacy `keyCode` to HTML5 `key`\n * Only special keys supported, all others depend on keyboard layout or browser\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar translateToKey = {\n  8: 'Backspace',\n  9: 'Tab',\n  12: 'Clear',\n  13: 'Enter',\n  16: 'Shift',\n  17: 'Control',\n  18: 'Alt',\n  19: 'Pause',\n  20: 'CapsLock',\n  27: 'Escape',\n  32: ' ',\n  33: 'PageUp',\n  34: 'PageDown',\n  35: 'End',\n  36: 'Home',\n  37: 'ArrowLeft',\n  38: 'ArrowUp',\n  39: 'ArrowRight',\n  40: 'ArrowDown',\n  45: 'Insert',\n  46: 'Delete',\n  112: 'F1', 113: 'F2', 114: 'F3', 115: 'F4', 116: 'F5', 117: 'F6',\n  118: 'F7', 119: 'F8', 120: 'F9', 121: 'F10', 122: 'F11', 123: 'F12',\n  144: 'NumLock',\n  145: 'ScrollLock',\n  224: 'Meta'\n};\n\n/**\n * @param {object} nativeEvent Native browser event.\n * @return {string} Normalized `key` property.\n */\nfunction getEventKey(nativeEvent) {\n  if (nativeEvent.key) {\n    // Normalize inconsistent values reported by browsers due to\n    // implementations of a working draft specification.\n\n    // FireFox implements `key` but returns `MozPrintableKey` for all\n    // printable characters (normalized to `Unidentified`), ignore it.\n    var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n    if (key !== 'Unidentified') {\n      return key;\n    }\n  }\n\n  // Browser does not implement `key`, polyfill as much of it as we can.\n  if (nativeEvent.type === 'keypress') {\n    var charCode = getEventCharCode(nativeEvent);\n\n    // The enter-key is technically both printable and non-printable and can\n    // thus be captured by `keypress`, no other non-printable key should.\n    return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n  }\n  if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {\n    // While user keyboard layout determines the actual meaning of each\n    // `keyCode` value, almost all function keys have a universal value.\n    return translateToKey[nativeEvent.keyCode] || 'Unidentified';\n  }\n  return '';\n}\n\nmodule.exports = getEventKey;\n},{\"126\":126}],128:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventModifierState\n */\n\n'use strict';\n\n/**\n * Translation from modifier key to the associated property in the event.\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers\n */\n\nvar modifierKeyToProp = {\n  'Alt': 'altKey',\n  'Control': 'ctrlKey',\n  'Meta': 'metaKey',\n  'Shift': 'shiftKey'\n};\n\n// IE8 does not implement getModifierState so we simply map it to the only\n// modifier keys exposed by the event itself, does not support Lock-keys.\n// Currently, all major browsers except Chrome seems to support Lock-keys.\nfunction modifierStateGetter(keyArg) {\n  var syntheticEvent = this;\n  var nativeEvent = syntheticEvent.nativeEvent;\n  if (nativeEvent.getModifierState) {\n    return nativeEvent.getModifierState(keyArg);\n  }\n  var keyProp = modifierKeyToProp[keyArg];\n  return keyProp ? !!nativeEvent[keyProp] : false;\n}\n\nfunction getEventModifierState(nativeEvent) {\n  return modifierStateGetter;\n}\n\nmodule.exports = getEventModifierState;\n},{}],129:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventTarget\n */\n\n'use strict';\n\n/**\n * Gets the target node from a native browser event by accounting for\n * inconsistencies in browser DOM APIs.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {DOMEventTarget} Target node.\n */\n\nfunction getEventTarget(nativeEvent) {\n  var target = nativeEvent.target || nativeEvent.srcElement || window;\n\n  // Normalize SVG <use> element events #4963\n  if (target.correspondingUseElement) {\n    target = target.correspondingUseElement;\n  }\n\n  // Safari may fire events on text nodes (Node.TEXT_NODE is 3).\n  // @see http://www.quirksmode.org/js/events_properties.html\n  return target.nodeType === 3 ? target.parentNode : target;\n}\n\nmodule.exports = getEventTarget;\n},{}],130:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getHostComponentFromComposite\n */\n\n'use strict';\n\nvar ReactNodeTypes = _dereq_(79);\n\nfunction getHostComponentFromComposite(inst) {\n  var type;\n\n  while ((type = inst._renderedNodeType) === ReactNodeTypes.COMPOSITE) {\n    inst = inst._renderedComponent;\n  }\n\n  if (type === ReactNodeTypes.HOST) {\n    return inst._renderedComponent;\n  } else if (type === ReactNodeTypes.EMPTY) {\n    return null;\n  }\n}\n\nmodule.exports = getHostComponentFromComposite;\n},{\"79\":79}],131:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getIteratorFn\n * \n */\n\n'use strict';\n\n/* global Symbol */\n\nvar ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n/**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n *     var iteratorFn = getIteratorFn(myIterable);\n *     if (iteratorFn) {\n *       var iterator = iteratorFn.call(myIterable);\n *       ...\n *     }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\nfunction getIteratorFn(maybeIterable) {\n  var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n  if (typeof iteratorFn === 'function') {\n    return iteratorFn;\n  }\n}\n\nmodule.exports = getIteratorFn;\n},{}],132:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getNodeForCharacterOffset\n */\n\n'use strict';\n\n/**\n * Given any node return the first leaf node without children.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {DOMElement|DOMTextNode}\n */\n\nfunction getLeafNode(node) {\n  while (node && node.firstChild) {\n    node = node.firstChild;\n  }\n  return node;\n}\n\n/**\n * Get the next sibling within a container. This will walk up the\n * DOM if a node's siblings have been exhausted.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {?DOMElement|DOMTextNode}\n */\nfunction getSiblingNode(node) {\n  while (node) {\n    if (node.nextSibling) {\n      return node.nextSibling;\n    }\n    node = node.parentNode;\n  }\n}\n\n/**\n * Get object describing the nodes which contain characters at offset.\n *\n * @param {DOMElement|DOMTextNode} root\n * @param {number} offset\n * @return {?object}\n */\nfunction getNodeForCharacterOffset(root, offset) {\n  var node = getLeafNode(root);\n  var nodeStart = 0;\n  var nodeEnd = 0;\n\n  while (node) {\n    if (node.nodeType === 3) {\n      nodeEnd = nodeStart + node.textContent.length;\n\n      if (nodeStart <= offset && nodeEnd >= offset) {\n        return {\n          node: node,\n          offset: offset - nodeStart\n        };\n      }\n\n      nodeStart = nodeEnd;\n    }\n\n    node = getLeafNode(getSiblingNode(node));\n  }\n}\n\nmodule.exports = getNodeForCharacterOffset;\n},{}],133:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getTextContentAccessor\n */\n\n'use strict';\n\nvar ExecutionEnvironment = _dereq_(148);\n\nvar contentKey = null;\n\n/**\n * Gets the key used to access text content on a DOM node.\n *\n * @return {?string} Key used to access text content.\n * @internal\n */\nfunction getTextContentAccessor() {\n  if (!contentKey && ExecutionEnvironment.canUseDOM) {\n    // Prefer textContent to innerText because many browsers support both but\n    // SVG <text> elements don't support innerText even when <div> does.\n    contentKey = 'textContent' in document.documentElement ? 'textContent' : 'innerText';\n  }\n  return contentKey;\n}\n\nmodule.exports = getTextContentAccessor;\n},{\"148\":148}],134:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getVendorPrefixedEventName\n */\n\n'use strict';\n\nvar ExecutionEnvironment = _dereq_(148);\n\n/**\n * Generate a mapping of standard vendor prefixes using the defined style property and event name.\n *\n * @param {string} styleProp\n * @param {string} eventName\n * @returns {object}\n */\nfunction makePrefixMap(styleProp, eventName) {\n  var prefixes = {};\n\n  prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n  prefixes['Webkit' + styleProp] = 'webkit' + eventName;\n  prefixes['Moz' + styleProp] = 'moz' + eventName;\n  prefixes['ms' + styleProp] = 'MS' + eventName;\n  prefixes['O' + styleProp] = 'o' + eventName.toLowerCase();\n\n  return prefixes;\n}\n\n/**\n * A list of event names to a configurable list of vendor prefixes.\n */\nvar vendorPrefixes = {\n  animationend: makePrefixMap('Animation', 'AnimationEnd'),\n  animationiteration: makePrefixMap('Animation', 'AnimationIteration'),\n  animationstart: makePrefixMap('Animation', 'AnimationStart'),\n  transitionend: makePrefixMap('Transition', 'TransitionEnd')\n};\n\n/**\n * Event names that have already been detected and prefixed (if applicable).\n */\nvar prefixedEventNames = {};\n\n/**\n * Element to check for prefixes on.\n */\nvar style = {};\n\n/**\n * Bootstrap if a DOM exists.\n */\nif (ExecutionEnvironment.canUseDOM) {\n  style = document.createElement('div').style;\n\n  // On some platforms, in particular some releases of Android 4.x,\n  // the un-prefixed \"animation\" and \"transition\" properties are defined on the\n  // style object but the events that fire will still be prefixed, so we need\n  // to check if the un-prefixed events are usable, and if not remove them from the map.\n  if (!('AnimationEvent' in window)) {\n    delete vendorPrefixes.animationend.animation;\n    delete vendorPrefixes.animationiteration.animation;\n    delete vendorPrefixes.animationstart.animation;\n  }\n\n  // Same as above\n  if (!('TransitionEvent' in window)) {\n    delete vendorPrefixes.transitionend.transition;\n  }\n}\n\n/**\n * Attempts to determine the correct vendor prefixed event name.\n *\n * @param {string} eventName\n * @returns {string}\n */\nfunction getVendorPrefixedEventName(eventName) {\n  if (prefixedEventNames[eventName]) {\n    return prefixedEventNames[eventName];\n  } else if (!vendorPrefixes[eventName]) {\n    return eventName;\n  }\n\n  var prefixMap = vendorPrefixes[eventName];\n\n  for (var styleProp in prefixMap) {\n    if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) {\n      return prefixedEventNames[eventName] = prefixMap[styleProp];\n    }\n  }\n\n  return '';\n}\n\nmodule.exports = getVendorPrefixedEventName;\n},{\"148\":148}],135:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule instantiateReactComponent\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140),\n    _assign = _dereq_(172);\n\nvar ReactCompositeComponent = _dereq_(36);\nvar ReactEmptyComponent = _dereq_(63);\nvar ReactHostComponent = _dereq_(68);\n\nvar invariant = _dereq_(162);\nvar warning = _dereq_(171);\n\n// To avoid a cyclic dependency, we create the final class in this module\nvar ReactCompositeComponentWrapper = function (element) {\n  this.construct(element);\n};\n_assign(ReactCompositeComponentWrapper.prototype, ReactCompositeComponent.Mixin, {\n  _instantiateReactComponent: instantiateReactComponent\n});\n\nfunction getDeclarationErrorAddendum(owner) {\n  if (owner) {\n    var name = owner.getName();\n    if (name) {\n      return ' Check the render method of `' + name + '`.';\n    }\n  }\n  return '';\n}\n\n/**\n * Check if the type reference is a known internal type. I.e. not a user\n * provided composite type.\n *\n * @param {function} type\n * @return {boolean} Returns true if this is a valid internal type.\n */\nfunction isInternalComponentType(type) {\n  return typeof type === 'function' && typeof type.prototype !== 'undefined' && typeof type.prototype.mountComponent === 'function' && typeof type.prototype.receiveComponent === 'function';\n}\n\nvar nextDebugID = 1;\n\n/**\n * Given a ReactNode, create an instance that will actually be mounted.\n *\n * @param {ReactNode} node\n * @param {boolean} shouldHaveDebugID\n * @return {object} A new instance of the element's constructor.\n * @protected\n */\nfunction instantiateReactComponent(node, shouldHaveDebugID) {\n  var instance;\n\n  if (node === null || node === false) {\n    instance = ReactEmptyComponent.create(instantiateReactComponent);\n  } else if (typeof node === 'object') {\n    var element = node;\n    !(element && (typeof element.type === 'function' || typeof element.type === 'string')) ? \"development\" !== 'production' ? invariant(false, 'Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s', element.type == null ? element.type : typeof element.type, getDeclarationErrorAddendum(element._owner)) : _prodInvariant('130', element.type == null ? element.type : typeof element.type, getDeclarationErrorAddendum(element._owner)) : void 0;\n\n    // Special case string values\n    if (typeof element.type === 'string') {\n      instance = ReactHostComponent.createInternalComponent(element);\n    } else if (isInternalComponentType(element.type)) {\n      // This is temporarily available for custom components that are not string\n      // representations. I.e. ART. Once those are updated to use the string\n      // representation, we can drop this code path.\n      instance = new element.type(element);\n\n      // We renamed this. Allow the old name for compat. :(\n      if (!instance.getHostNode) {\n        instance.getHostNode = instance.getNativeNode;\n      }\n    } else {\n      instance = new ReactCompositeComponentWrapper(element);\n    }\n  } else if (typeof node === 'string' || typeof node === 'number') {\n    instance = ReactHostComponent.createInstanceForText(node);\n  } else {\n    !false ? \"development\" !== 'production' ? invariant(false, 'Encountered invalid React node of type %s', typeof node) : _prodInvariant('131', typeof node) : void 0;\n  }\n\n  if (\"development\" !== 'production') {\n    \"development\" !== 'production' ? warning(typeof instance.mountComponent === 'function' && typeof instance.receiveComponent === 'function' && typeof instance.getHostNode === 'function' && typeof instance.unmountComponent === 'function', 'Only React Components can be mounted.') : void 0;\n  }\n\n  // These two fields are used by the DOM and ART diffing algorithms\n  // respectively. Instead of using expandos on components, we should be\n  // storing the state needed by the diffing algorithms elsewhere.\n  instance._mountIndex = 0;\n  instance._mountImage = null;\n\n  if (\"development\" !== 'production') {\n    instance._debugID = shouldHaveDebugID ? nextDebugID++ : 0;\n  }\n\n  // Internal instances should fully constructed at this point, so they should\n  // not get any new fields added to them at this point.\n  if (\"development\" !== 'production') {\n    if (Object.preventExtensions) {\n      Object.preventExtensions(instance);\n    }\n  }\n\n  return instance;\n}\n\nmodule.exports = instantiateReactComponent;\n},{\"140\":140,\"162\":162,\"171\":171,\"172\":172,\"36\":36,\"63\":63,\"68\":68}],136:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isEventSupported\n */\n\n'use strict';\n\nvar ExecutionEnvironment = _dereq_(148);\n\nvar useHasFeature;\nif (ExecutionEnvironment.canUseDOM) {\n  useHasFeature = document.implementation && document.implementation.hasFeature &&\n  // always returns true in newer browsers as per the standard.\n  // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n  document.implementation.hasFeature('', '') !== true;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported(eventNameSuffix, capture) {\n  if (!ExecutionEnvironment.canUseDOM || capture && !('addEventListener' in document)) {\n    return false;\n  }\n\n  var eventName = 'on' + eventNameSuffix;\n  var isSupported = eventName in document;\n\n  if (!isSupported) {\n    var element = document.createElement('div');\n    element.setAttribute(eventName, 'return;');\n    isSupported = typeof element[eventName] === 'function';\n  }\n\n  if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n    // This is the only way to test support for the `wheel` event in IE9+.\n    isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n  }\n\n  return isSupported;\n}\n\nmodule.exports = isEventSupported;\n},{\"148\":148}],137:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isTextInputElement\n * \n */\n\n'use strict';\n\n/**\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary\n */\n\nvar supportedInputTypes = {\n  'color': true,\n  'date': true,\n  'datetime': true,\n  'datetime-local': true,\n  'email': true,\n  'month': true,\n  'number': true,\n  'password': true,\n  'range': true,\n  'search': true,\n  'tel': true,\n  'text': true,\n  'time': true,\n  'url': true,\n  'week': true\n};\n\nfunction isTextInputElement(elem) {\n  var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n\n  if (nodeName === 'input') {\n    return !!supportedInputTypes[elem.type];\n  }\n\n  if (nodeName === 'textarea') {\n    return true;\n  }\n\n  return false;\n}\n\nmodule.exports = isTextInputElement;\n},{}],138:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule onlyChild\n */\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar ReactElement = _dereq_(61);\n\nvar invariant = _dereq_(162);\n\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.only\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\nfunction onlyChild(children) {\n  !ReactElement.isValidElement(children) ? \"development\" !== 'production' ? invariant(false, 'React.Children.only expected to receive a single React element child.') : _prodInvariant('143') : void 0;\n  return children;\n}\n\nmodule.exports = onlyChild;\n},{\"140\":140,\"162\":162,\"61\":61}],139:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule quoteAttributeValueForBrowser\n */\n\n'use strict';\n\nvar escapeTextContentForBrowser = _dereq_(122);\n\n/**\n * Escapes attribute value to prevent scripting attacks.\n *\n * @param {*} value Value to escape.\n * @return {string} An escaped string.\n */\nfunction quoteAttributeValueForBrowser(value) {\n  return '\"' + escapeTextContentForBrowser(value) + '\"';\n}\n\nmodule.exports = quoteAttributeValueForBrowser;\n},{\"122\":122}],140:[function(_dereq_,module,exports){\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule reactProdInvariant\n * \n */\n'use strict';\n\n/**\n * WARNING: DO NOT manually require this module.\n * This is a replacement for `invariant(...)` used by the error code system\n * and will _only_ be required by the corresponding babel pass.\n * It always throws.\n */\n\nfunction reactProdInvariant(code) {\n  var argCount = arguments.length - 1;\n\n  var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;\n\n  for (var argIdx = 0; argIdx < argCount; argIdx++) {\n    message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);\n  }\n\n  message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';\n\n  var error = new Error(message);\n  error.name = 'Invariant Violation';\n  error.framesToPop = 1; // we don't care about reactProdInvariant's own frame\n\n  throw error;\n}\n\nmodule.exports = reactProdInvariant;\n},{}],141:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n* @providesModule renderSubtreeIntoContainer\n*/\n\n'use strict';\n\nvar ReactMount = _dereq_(76);\n\nmodule.exports = ReactMount.renderSubtreeIntoContainer;\n},{\"76\":76}],142:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule setInnerHTML\n */\n\n'use strict';\n\nvar ExecutionEnvironment = _dereq_(148);\nvar DOMNamespaces = _dereq_(9);\n\nvar WHITESPACE_TEST = /^[ \\r\\n\\t\\f]/;\nvar NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \\r\\n\\t\\f\\/>]/;\n\nvar createMicrosoftUnsafeLocalFunction = _dereq_(120);\n\n// SVG temp container for IE lacking innerHTML\nvar reusableSVGContainer;\n\n/**\n * Set the innerHTML property of a node, ensuring that whitespace is preserved\n * even in IE8.\n *\n * @param {DOMElement} node\n * @param {string} html\n * @internal\n */\nvar setInnerHTML = createMicrosoftUnsafeLocalFunction(function (node, html) {\n  // IE does not have innerHTML for SVG nodes, so instead we inject the\n  // new markup in a temp node and then move the child nodes across into\n  // the target node\n  if (node.namespaceURI === DOMNamespaces.svg && !('innerHTML' in node)) {\n    reusableSVGContainer = reusableSVGContainer || document.createElement('div');\n    reusableSVGContainer.innerHTML = '<svg>' + html + '</svg>';\n    var newNodes = reusableSVGContainer.firstChild.childNodes;\n    for (var i = 0; i < newNodes.length; i++) {\n      node.appendChild(newNodes[i]);\n    }\n  } else {\n    node.innerHTML = html;\n  }\n});\n\nif (ExecutionEnvironment.canUseDOM) {\n  // IE8: When updating a just created node with innerHTML only leading\n  // whitespace is removed. When updating an existing node with innerHTML\n  // whitespace in root TextNodes is also collapsed.\n  // @see quirksmode.org/bugreports/archives/2004/11/innerhtml_and_t.html\n\n  // Feature detection; only IE8 is known to behave improperly like this.\n  var testElement = document.createElement('div');\n  testElement.innerHTML = ' ';\n  if (testElement.innerHTML === '') {\n    setInnerHTML = function (node, html) {\n      // Magic theory: IE8 supposedly differentiates between added and updated\n      // nodes when processing innerHTML, innerHTML on updated nodes suffers\n      // from worse whitespace behavior. Re-adding a node like this triggers\n      // the initial and more favorable whitespace behavior.\n      // TODO: What to do on a detached node?\n      if (node.parentNode) {\n        node.parentNode.replaceChild(node, node);\n      }\n\n      // We also implement a workaround for non-visible tags disappearing into\n      // thin air on IE8, this only happens if there is no visible text\n      // in-front of the non-visible tags. Piggyback on the whitespace fix\n      // and simply check if any non-visible tags appear in the source.\n      if (WHITESPACE_TEST.test(html) || html[0] === '<' && NONVISIBLE_TEST.test(html)) {\n        // Recover leading whitespace by temporarily prepending any character.\n        // \\uFEFF has the potential advantage of being zero-width/invisible.\n        // UglifyJS drops U+FEFF chars when parsing, so use String.fromCharCode\n        // in hopes that this is preserved even if \"\\uFEFF\" is transformed to\n        // the actual Unicode character (by Babel, for example).\n        // https://github.com/mishoo/UglifyJS2/blob/v2.4.20/lib/parse.js#L216\n        node.innerHTML = String.fromCharCode(0xFEFF) + html;\n\n        // deleteData leaves an empty `TextNode` which offsets the index of all\n        // children. Definitely want to avoid this.\n        var textNode = node.firstChild;\n        if (textNode.data.length === 1) {\n          node.removeChild(textNode);\n        } else {\n          textNode.deleteData(0, 1);\n        }\n      } else {\n        node.innerHTML = html;\n      }\n    };\n  }\n  testElement = null;\n}\n\nmodule.exports = setInnerHTML;\n},{\"120\":120,\"148\":148,\"9\":9}],143:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule setTextContent\n */\n\n'use strict';\n\nvar ExecutionEnvironment = _dereq_(148);\nvar escapeTextContentForBrowser = _dereq_(122);\nvar setInnerHTML = _dereq_(142);\n\n/**\n * Set the textContent property of a node, ensuring that whitespace is preserved\n * even in IE8. innerText is a poor substitute for textContent and, among many\n * issues, inserts <br> instead of the literal newline chars. innerHTML behaves\n * as it should.\n *\n * @param {DOMElement} node\n * @param {string} text\n * @internal\n */\nvar setTextContent = function (node, text) {\n  if (text) {\n    var firstChild = node.firstChild;\n\n    if (firstChild && firstChild === node.lastChild && firstChild.nodeType === 3) {\n      firstChild.nodeValue = text;\n      return;\n    }\n  }\n  node.textContent = text;\n};\n\nif (ExecutionEnvironment.canUseDOM) {\n  if (!('textContent' in document.documentElement)) {\n    setTextContent = function (node, text) {\n      setInnerHTML(node, escapeTextContentForBrowser(text));\n    };\n  }\n}\n\nmodule.exports = setTextContent;\n},{\"122\":122,\"142\":142,\"148\":148}],144:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule shouldUpdateReactComponent\n */\n\n'use strict';\n\n/**\n * Given a `prevElement` and `nextElement`, determines if the existing\n * instance should be updated as opposed to being destroyed or replaced by a new\n * instance. Both arguments are elements. This ensures that this logic can\n * operate on stateless trees without any backing instance.\n *\n * @param {?object} prevElement\n * @param {?object} nextElement\n * @return {boolean} True if the existing instance should be updated.\n * @protected\n */\n\nfunction shouldUpdateReactComponent(prevElement, nextElement) {\n  var prevEmpty = prevElement === null || prevElement === false;\n  var nextEmpty = nextElement === null || nextElement === false;\n  if (prevEmpty || nextEmpty) {\n    return prevEmpty === nextEmpty;\n  }\n\n  var prevType = typeof prevElement;\n  var nextType = typeof nextElement;\n  if (prevType === 'string' || prevType === 'number') {\n    return nextType === 'string' || nextType === 'number';\n  } else {\n    return nextType === 'object' && prevElement.type === nextElement.type && prevElement.key === nextElement.key;\n  }\n}\n\nmodule.exports = shouldUpdateReactComponent;\n},{}],145:[function(_dereq_,module,exports){\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule traverseAllChildren\n */\n\n'use strict';\n\nvar _prodInvariant = _dereq_(140);\n\nvar ReactCurrentOwner = _dereq_(37);\nvar ReactElement = _dereq_(61);\n\nvar getIteratorFn = _dereq_(131);\nvar invariant = _dereq_(162);\nvar KeyEscapeUtils = _dereq_(23);\nvar warning = _dereq_(171);\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar didWarnAboutMaps = false;\n\n/**\n * Generate a key string that identifies a component within a set.\n *\n * @param {*} component A component that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\nfunction getComponentKey(component, index) {\n  // Do some typechecking here since we call this blindly. We want to ensure\n  // that we don't block potential future ES APIs.\n  if (component && typeof component === 'object' && component.key != null) {\n    // Explicit key\n    return KeyEscapeUtils.escape(component.key);\n  }\n  // Implicit key determined by the index in the set\n  return index.toString(36);\n}\n\n/**\n * @param {?*} children Children tree container.\n * @param {!string} nameSoFar Name of the key path so far.\n * @param {!function} callback Callback to invoke with each child found.\n * @param {?*} traverseContext Used to pass information throughout the traversal\n * process.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {\n  var type = typeof children;\n\n  if (type === 'undefined' || type === 'boolean') {\n    // All of the above are perceived as null.\n    children = null;\n  }\n\n  if (children === null || type === 'string' || type === 'number' || ReactElement.isValidElement(children)) {\n    callback(traverseContext, children,\n    // If it's the only child, treat the name as if it was wrapped in an array\n    // so that it's consistent if the number of children grows.\n    nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);\n    return 1;\n  }\n\n  var child;\n  var nextName;\n  var subtreeCount = 0; // Count of children found in the current subtree.\n  var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n  if (Array.isArray(children)) {\n    for (var i = 0; i < children.length; i++) {\n      child = children[i];\n      nextName = nextNamePrefix + getComponentKey(child, i);\n      subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n    }\n  } else {\n    var iteratorFn = getIteratorFn(children);\n    if (iteratorFn) {\n      var iterator = iteratorFn.call(children);\n      var step;\n      if (iteratorFn !== children.entries) {\n        var ii = 0;\n        while (!(step = iterator.next()).done) {\n          child = step.value;\n          nextName = nextNamePrefix + getComponentKey(child, ii++);\n          subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n        }\n      } else {\n        if (\"development\" !== 'production') {\n          var mapsAsChildrenAddendum = '';\n          if (ReactCurrentOwner.current) {\n            var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName();\n            if (mapsAsChildrenOwnerName) {\n              mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.';\n            }\n          }\n          \"development\" !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.%s', mapsAsChildrenAddendum) : void 0;\n          didWarnAboutMaps = true;\n        }\n        // Iterator will provide entry [k,v] tuples rather than values.\n        while (!(step = iterator.next()).done) {\n          var entry = step.value;\n          if (entry) {\n            child = entry[1];\n            nextName = nextNamePrefix + KeyEscapeUtils.escape(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0);\n            subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n          }\n        }\n      }\n    } else if (type === 'object') {\n      var addendum = '';\n      if (\"development\" !== 'production') {\n        addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.';\n        if (children._isReactElement) {\n          addendum = ' It looks like you\\'re using an element created by a different ' + 'version of React. Make sure to use only one copy of React.';\n        }\n        if (ReactCurrentOwner.current) {\n          var name = ReactCurrentOwner.current.getName();\n          if (name) {\n            addendum += ' Check the render method of `' + name + '`.';\n          }\n        }\n      }\n      var childrenString = String(children);\n      !false ? \"development\" !== 'production' ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0;\n    }\n  }\n\n  return subtreeCount;\n}\n\n/**\n * Traverses children that are typically specified as `props.children`, but\n * might also be specified through attributes:\n *\n * - `traverseAllChildren(this.props.children, ...)`\n * - `traverseAllChildren(this.props.leftPanelChildren, ...)`\n *\n * The `traverseContext` is an optional argument that is passed through the\n * entire traversal. It can be used to store accumulations or anything else that\n * the callback might find relevant.\n *\n * @param {?*} children Children tree object.\n * @param {!function} callback To invoke upon traversing each child.\n * @param {?*} traverseContext Context for traversal.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildren(children, callback, traverseContext) {\n  if (children == null) {\n    return 0;\n  }\n\n  return traverseAllChildrenImpl(children, '', callback, traverseContext);\n}\n\nmodule.exports = traverseAllChildren;\n},{\"131\":131,\"140\":140,\"162\":162,\"171\":171,\"23\":23,\"37\":37,\"61\":61}],146:[function(_dereq_,module,exports){\n/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule validateDOMNesting\n */\n\n'use strict';\n\nvar _assign = _dereq_(172);\n\nvar emptyFunction = _dereq_(154);\nvar warning = _dereq_(171);\n\nvar validateDOMNesting = emptyFunction;\n\nif (\"development\" !== 'production') {\n  // This validation code was written based on the HTML5 parsing spec:\n  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n  //\n  // Note: this does not catch all invalid nesting, nor does it try to (as it's\n  // not clear what practical benefit doing so provides); instead, we warn only\n  // for cases where the parser will give a parse tree differing from what React\n  // intended. For example, <b><div></div></b> is invalid but we don't warn\n  // because it still parses correctly; we do warn for other cases like nested\n  // <p> tags where the beginning of the second element implicitly closes the\n  // first, causing a confusing mess.\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#special\n  var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp'];\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n  var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template',\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point\n  // TODO: Distinguish by namespace here -- for <title>, including it here\n  // errs on the side of fewer warnings\n  'foreignObject', 'desc', 'title'];\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope\n  var buttonScopeTags = inScopeTags.concat(['button']);\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags\n  var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt'];\n\n  var emptyAncestorInfo = {\n    current: null,\n\n    formTag: null,\n    aTagInScope: null,\n    buttonTagInScope: null,\n    nobrTagInScope: null,\n    pTagInButtonScope: null,\n\n    listItemTagAutoclosing: null,\n    dlItemTagAutoclosing: null\n  };\n\n  var updatedAncestorInfo = function (oldInfo, tag, instance) {\n    var ancestorInfo = _assign({}, oldInfo || emptyAncestorInfo);\n    var info = { tag: tag, instance: instance };\n\n    if (inScopeTags.indexOf(tag) !== -1) {\n      ancestorInfo.aTagInScope = null;\n      ancestorInfo.buttonTagInScope = null;\n      ancestorInfo.nobrTagInScope = null;\n    }\n    if (buttonScopeTags.indexOf(tag) !== -1) {\n      ancestorInfo.pTagInButtonScope = null;\n    }\n\n    // See rules for 'li', 'dd', 'dt' start tags in\n    // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n    if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') {\n      ancestorInfo.listItemTagAutoclosing = null;\n      ancestorInfo.dlItemTagAutoclosing = null;\n    }\n\n    ancestorInfo.current = info;\n\n    if (tag === 'form') {\n      ancestorInfo.formTag = info;\n    }\n    if (tag === 'a') {\n      ancestorInfo.aTagInScope = info;\n    }\n    if (tag === 'button') {\n      ancestorInfo.buttonTagInScope = info;\n    }\n    if (tag === 'nobr') {\n      ancestorInfo.nobrTagInScope = info;\n    }\n    if (tag === 'p') {\n      ancestorInfo.pTagInButtonScope = info;\n    }\n    if (tag === 'li') {\n      ancestorInfo.listItemTagAutoclosing = info;\n    }\n    if (tag === 'dd' || tag === 'dt') {\n      ancestorInfo.dlItemTagAutoclosing = info;\n    }\n\n    return ancestorInfo;\n  };\n\n  /**\n   * Returns whether\n   */\n  var isTagValidWithParent = function (tag, parentTag) {\n    // First, let's check if we're in an unusual parsing mode...\n    switch (parentTag) {\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect\n      case 'select':\n        return tag === 'option' || tag === 'optgroup' || tag === '#text';\n      case 'optgroup':\n        return tag === 'option' || tag === '#text';\n      // Strictly speaking, seeing an <option> doesn't mean we're in a <select>\n      // but\n      case 'option':\n        return tag === '#text';\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption\n      // No special behavior since these rules fall back to \"in body\" mode for\n      // all except special table nodes which cause bad parsing behavior anyway.\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr\n      case 'tr':\n        return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template';\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody\n      case 'tbody':\n      case 'thead':\n      case 'tfoot':\n        return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template';\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup\n      case 'colgroup':\n        return tag === 'col' || tag === 'template';\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable\n      case 'table':\n        return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template';\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead\n      case 'head':\n        return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template';\n\n      // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element\n      case 'html':\n        return tag === 'head' || tag === 'body';\n      case '#document':\n        return tag === 'html';\n    }\n\n    // Probably in the \"in body\" parsing mode, so we outlaw only tag combos\n    // where the parsing rules cause implicit opens or closes to be added.\n    // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n    switch (tag) {\n      case 'h1':\n      case 'h2':\n      case 'h3':\n      case 'h4':\n      case 'h5':\n      case 'h6':\n        return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6';\n\n      case 'rp':\n      case 'rt':\n        return impliedEndTags.indexOf(parentTag) === -1;\n\n      case 'body':\n      case 'caption':\n      case 'col':\n      case 'colgroup':\n      case 'frame':\n      case 'head':\n      case 'html':\n      case 'tbody':\n      case 'td':\n      case 'tfoot':\n      case 'th':\n      case 'thead':\n      case 'tr':\n        // These tags are only valid with a few parents that have special child\n        // parsing rules -- if we're down here, then none of those matched and\n        // so we allow it only if we don't know what the parent is, as all other\n        // cases are invalid.\n        return parentTag == null;\n    }\n\n    return true;\n  };\n\n  /**\n   * Returns whether\n   */\n  var findInvalidAncestorForTag = function (tag, ancestorInfo) {\n    switch (tag) {\n      case 'address':\n      case 'article':\n      case 'aside':\n      case 'blockquote':\n      case 'center':\n      case 'details':\n      case 'dialog':\n      case 'dir':\n      case 'div':\n      case 'dl':\n      case 'fieldset':\n      case 'figcaption':\n      case 'figure':\n      case 'footer':\n      case 'header':\n      case 'hgroup':\n      case 'main':\n      case 'menu':\n      case 'nav':\n      case 'ol':\n      case 'p':\n      case 'section':\n      case 'summary':\n      case 'ul':\n\n      case 'pre':\n      case 'listing':\n\n      case 'table':\n\n      case 'hr':\n\n      case 'xmp':\n\n      case 'h1':\n      case 'h2':\n      case 'h3':\n      case 'h4':\n      case 'h5':\n      case 'h6':\n        return ancestorInfo.pTagInButtonScope;\n\n      case 'form':\n        return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;\n\n      case 'li':\n        return ancestorInfo.listItemTagAutoclosing;\n\n      case 'dd':\n      case 'dt':\n        return ancestorInfo.dlItemTagAutoclosing;\n\n      case 'button':\n        return ancestorInfo.buttonTagInScope;\n\n      case 'a':\n        // Spec says something about storing a list of markers, but it sounds\n        // equivalent to this check.\n        return ancestorInfo.aTagInScope;\n\n      case 'nobr':\n        return ancestorInfo.nobrTagInScope;\n    }\n\n    return null;\n  };\n\n  /**\n   * Given a ReactCompositeComponent instance, return a list of its recursive\n   * owners, starting at the root and ending with the instance itself.\n   */\n  var findOwnerStack = function (instance) {\n    if (!instance) {\n      return [];\n    }\n\n    var stack = [];\n    do {\n      stack.push(instance);\n    } while (instance = instance._currentElement._owner);\n    stack.reverse();\n    return stack;\n  };\n\n  var didWarn = {};\n\n  validateDOMNesting = function (childTag, childInstance, ancestorInfo) {\n    ancestorInfo = ancestorInfo || emptyAncestorInfo;\n    var parentInfo = ancestorInfo.current;\n    var parentTag = parentInfo && parentInfo.tag;\n\n    var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo;\n    var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);\n    var problematic = invalidParent || invalidAncestor;\n\n    if (problematic) {\n      var ancestorTag = problematic.tag;\n      var ancestorInstance = problematic.instance;\n\n      var childOwner = childInstance && childInstance._currentElement._owner;\n      var ancestorOwner = ancestorInstance && ancestorInstance._currentElement._owner;\n\n      var childOwners = findOwnerStack(childOwner);\n      var ancestorOwners = findOwnerStack(ancestorOwner);\n\n      var minStackLen = Math.min(childOwners.length, ancestorOwners.length);\n      var i;\n\n      var deepestCommon = -1;\n      for (i = 0; i < minStackLen; i++) {\n        if (childOwners[i] === ancestorOwners[i]) {\n          deepestCommon = i;\n        } else {\n          break;\n        }\n      }\n\n      var UNKNOWN = '(unknown)';\n      var childOwnerNames = childOwners.slice(deepestCommon + 1).map(function (inst) {\n        return inst.getName() || UNKNOWN;\n      });\n      var ancestorOwnerNames = ancestorOwners.slice(deepestCommon + 1).map(function (inst) {\n        return inst.getName() || UNKNOWN;\n      });\n      var ownerInfo = [].concat(\n      // If the parent and child instances have a common owner ancestor, start\n      // with that -- otherwise we just start with the parent's owners.\n      deepestCommon !== -1 ? childOwners[deepestCommon].getName() || UNKNOWN : [], ancestorOwnerNames, ancestorTag,\n      // If we're warning about an invalid (non-parent) ancestry, add '...'\n      invalidAncestor ? ['...'] : [], childOwnerNames, childTag).join(' > ');\n\n      var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag + '|' + ownerInfo;\n      if (didWarn[warnKey]) {\n        return;\n      }\n      didWarn[warnKey] = true;\n\n      var tagDisplayName = childTag;\n      if (childTag !== '#text') {\n        tagDisplayName = '<' + childTag + '>';\n      }\n\n      if (invalidParent) {\n        var info = '';\n        if (ancestorTag === 'table' && childTag === 'tr') {\n          info += ' Add a <tbody> to your code to match the DOM tree generated by ' + 'the browser.';\n        }\n        \"development\" !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a child of <%s>. ' + 'See %s.%s', tagDisplayName, ancestorTag, ownerInfo, info) : void 0;\n      } else {\n        \"development\" !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>. See %s.', tagDisplayName, ancestorTag, ownerInfo) : void 0;\n      }\n    }\n  };\n\n  validateDOMNesting.updatedAncestorInfo = updatedAncestorInfo;\n\n  // For testing\n  validateDOMNesting.isTagValidInContext = function (tag, ancestorInfo) {\n    ancestorInfo = ancestorInfo || emptyAncestorInfo;\n    var parentInfo = ancestorInfo.current;\n    var parentTag = parentInfo && parentInfo.tag;\n    return isTagValidWithParent(tag, parentTag) && !findInvalidAncestorForTag(tag, ancestorInfo);\n  };\n}\n\nmodule.exports = validateDOMNesting;\n},{\"154\":154,\"171\":171,\"172\":172}],147:[function(_dereq_,module,exports){\n'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @typechecks\n */\n\nvar emptyFunction = _dereq_(154);\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n  /**\n   * Listen to DOM events during the bubble phase.\n   *\n   * @param {DOMEventTarget} target DOM element to register listener on.\n   * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n   * @param {function} callback Callback function.\n   * @return {object} Object with a `remove` method.\n   */\n  listen: function listen(target, eventType, callback) {\n    if (target.addEventListener) {\n      target.addEventListener(eventType, callback, false);\n      return {\n        remove: function remove() {\n          target.removeEventListener(eventType, callback, false);\n        }\n      };\n    } else if (target.attachEvent) {\n      target.attachEvent('on' + eventType, callback);\n      return {\n        remove: function remove() {\n          target.detachEvent('on' + eventType, callback);\n        }\n      };\n    }\n  },\n\n  /**\n   * Listen to DOM events during the capture phase.\n   *\n   * @param {DOMEventTarget} target DOM element to register listener on.\n   * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n   * @param {function} callback Callback function.\n   * @return {object} Object with a `remove` method.\n   */\n  capture: function capture(target, eventType, callback) {\n    if (target.addEventListener) {\n      target.addEventListener(eventType, callback, true);\n      return {\n        remove: function remove() {\n          target.removeEventListener(eventType, callback, true);\n        }\n      };\n    } else {\n      if (\"development\" !== 'production') {\n        console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n      }\n      return {\n        remove: emptyFunction\n      };\n    }\n  },\n\n  registerDefault: function registerDefault() {}\n};\n\nmodule.exports = EventListener;\n},{\"154\":154}],148:[function(_dereq_,module,exports){\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n  canUseDOM: canUseDOM,\n\n  canUseWorkers: typeof Worker !== 'undefined',\n\n  canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n  canUseViewport: canUseDOM && !!window.screen,\n\n  isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n},{}],149:[function(_dereq_,module,exports){\n\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\nvar _hyphenPattern = /-(.)/g;\n\n/**\n * Camelcases a hyphenated string, for example:\n *\n *   > camelize('background-color')\n *   < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelize(string) {\n  return string.replace(_hyphenPattern, function (_, character) {\n    return character.toUpperCase();\n  });\n}\n\nmodule.exports = camelize;\n},{}],150:[function(_dereq_,module,exports){\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n'use strict';\n\nvar camelize = _dereq_(149);\n\nvar msPattern = /^-ms-/;\n\n/**\n * Camelcases a hyphenated CSS property name, for example:\n *\n *   > camelizeStyleName('background-color')\n *   < \"backgroundColor\"\n *   > camelizeStyleName('-moz-transition')\n *   < \"MozTransition\"\n *   > camelizeStyleName('-ms-transition')\n *   < \"msTransition\"\n *\n * As Andi Smith suggests\n * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n * is converted to lowercase `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelizeStyleName(string) {\n  return camelize(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = camelizeStyleName;\n},{\"149\":149}],151:[function(_dereq_,module,exports){\n'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nvar isTextNode = _dereq_(164);\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\nfunction containsNode(outerNode, innerNode) {\n  if (!outerNode || !innerNode) {\n    return false;\n  } else if (outerNode === innerNode) {\n    return true;\n  } else if (isTextNode(outerNode)) {\n    return false;\n  } else if (isTextNode(innerNode)) {\n    return containsNode(outerNode, innerNode.parentNode);\n  } else if ('contains' in outerNode) {\n    return outerNode.contains(innerNode);\n  } else if (outerNode.compareDocumentPosition) {\n    return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n  } else {\n    return false;\n  }\n}\n\nmodule.exports = containsNode;\n},{\"164\":164}],152:[function(_dereq_,module,exports){\n'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\nvar invariant = _dereq_(162);\n\n/**\n * Convert array-like objects to arrays.\n *\n * This API assumes the caller knows the contents of the data type. For less\n * well defined inputs use createArrayFromMixed.\n *\n * @param {object|function|filelist} obj\n * @return {array}\n */\nfunction toArray(obj) {\n  var length = obj.length;\n\n  // Some browsers builtin objects can report typeof 'function' (e.g. NodeList\n  // in old versions of Safari).\n  !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? \"development\" !== 'production' ? invariant(false, 'toArray: Array-like object expected') : invariant(false) : void 0;\n\n  !(typeof length === 'number') ? \"development\" !== 'production' ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : void 0;\n\n  !(length === 0 || length - 1 in obj) ? \"development\" !== 'production' ? invariant(false, 'toArray: Object should have keys for indices') : invariant(false) : void 0;\n\n  !(typeof obj.callee !== 'function') ? \"development\" !== 'production' ? invariant(false, 'toArray: Object can\\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : invariant(false) : void 0;\n\n  // Old IE doesn't give collections access to hasOwnProperty. Assume inputs\n  // without method will throw during the slice call and skip straight to the\n  // fallback.\n  if (obj.hasOwnProperty) {\n    try {\n      return Array.prototype.slice.call(obj);\n    } catch (e) {\n      // IE < 9 does not support Array#slice on collections objects\n    }\n  }\n\n  // Fall back to copying key by key. This assumes all keys have a value,\n  // so will not preserve sparsely populated inputs.\n  var ret = Array(length);\n  for (var ii = 0; ii < length; ii++) {\n    ret[ii] = obj[ii];\n  }\n  return ret;\n}\n\n/**\n * Perform a heuristic test to determine if an object is \"array-like\".\n *\n *   A monk asked Joshu, a Zen master, \"Has a dog Buddha nature?\"\n *   Joshu replied: \"Mu.\"\n *\n * This function determines if its argument has \"array nature\": it returns\n * true if the argument is an actual array, an `arguments' object, or an\n * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).\n *\n * It will return false for other array-like objects like Filelist.\n *\n * @param {*} obj\n * @return {boolean}\n */\nfunction hasArrayNature(obj) {\n  return (\n    // not null/false\n    !!obj && (\n    // arrays are objects, NodeLists are functions in Safari\n    typeof obj == 'object' || typeof obj == 'function') &&\n    // quacks like an array\n    'length' in obj &&\n    // not window\n    !('setInterval' in obj) &&\n    // no DOM node should be considered an array-like\n    // a 'select' element has 'length' and 'item' properties on IE8\n    typeof obj.nodeType != 'number' && (\n    // a real array\n    Array.isArray(obj) ||\n    // arguments\n    'callee' in obj ||\n    // HTMLCollection/NodeList\n    'item' in obj)\n  );\n}\n\n/**\n * Ensure that the argument is an array by wrapping it in an array if it is not.\n * Creates a copy of the argument if it is already an array.\n *\n * This is mostly useful idiomatically:\n *\n *   var createArrayFromMixed = require('createArrayFromMixed');\n *\n *   function takesOneOrMoreThings(things) {\n *     things = createArrayFromMixed(things);\n *     ...\n *   }\n *\n * This allows you to treat `things' as an array, but accept scalars in the API.\n *\n * If you need to convert an array-like object, like `arguments`, into an array\n * use toArray instead.\n *\n * @param {*} obj\n * @return {array}\n */\nfunction createArrayFromMixed(obj) {\n  if (!hasArrayNature(obj)) {\n    return [obj];\n  } else if (Array.isArray(obj)) {\n    return obj.slice();\n  } else {\n    return toArray(obj);\n  }\n}\n\nmodule.exports = createArrayFromMixed;\n},{\"162\":162}],153:[function(_dereq_,module,exports){\n'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n/*eslint-disable fb-www/unsafe-html*/\n\nvar ExecutionEnvironment = _dereq_(148);\n\nvar createArrayFromMixed = _dereq_(152);\nvar getMarkupWrap = _dereq_(158);\nvar invariant = _dereq_(162);\n\n/**\n * Dummy container used to render all markup.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Pattern used by `getNodeName`.\n */\nvar nodeNamePattern = /^\\s*<(\\w+)/;\n\n/**\n * Extracts the `nodeName` of the first element in a string of markup.\n *\n * @param {string} markup String of markup.\n * @return {?string} Node name of the supplied markup.\n */\nfunction getNodeName(markup) {\n  var nodeNameMatch = markup.match(nodeNamePattern);\n  return nodeNameMatch && nodeNameMatch[1].toLowerCase();\n}\n\n/**\n * Creates an array containing the nodes rendered from the supplied markup. The\n * optionally supplied `handleScript` function will be invoked once for each\n * <script> element that is rendered. If no `handleScript` function is supplied,\n * an exception is thrown if any <script> elements are rendered.\n *\n * @param {string} markup A string of valid HTML markup.\n * @param {?function} handleScript Invoked once for each rendered <script>.\n * @return {array<DOMElement|DOMTextNode>} An array of rendered nodes.\n */\nfunction createNodesFromMarkup(markup, handleScript) {\n  var node = dummyNode;\n  !!!dummyNode ? \"development\" !== 'production' ? invariant(false, 'createNodesFromMarkup dummy not initialized') : invariant(false) : void 0;\n  var nodeName = getNodeName(markup);\n\n  var wrap = nodeName && getMarkupWrap(nodeName);\n  if (wrap) {\n    node.innerHTML = wrap[1] + markup + wrap[2];\n\n    var wrapDepth = wrap[0];\n    while (wrapDepth--) {\n      node = node.lastChild;\n    }\n  } else {\n    node.innerHTML = markup;\n  }\n\n  var scripts = node.getElementsByTagName('script');\n  if (scripts.length) {\n    !handleScript ? \"development\" !== 'production' ? invariant(false, 'createNodesFromMarkup(...): Unexpected <script> element rendered.') : invariant(false) : void 0;\n    createArrayFromMixed(scripts).forEach(handleScript);\n  }\n\n  var nodes = Array.from(node.childNodes);\n  while (node.lastChild) {\n    node.removeChild(node.lastChild);\n  }\n  return nodes;\n}\n\nmodule.exports = createNodesFromMarkup;\n},{\"148\":148,\"152\":152,\"158\":158,\"162\":162}],154:[function(_dereq_,module,exports){\n\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n  return function () {\n    return arg;\n  };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n  return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n  return arg;\n};\n\nmodule.exports = emptyFunction;\n},{}],155:[function(_dereq_,module,exports){\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyObject = {};\n\nif (\"development\" !== 'production') {\n  Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;\n},{}],156:[function(_dereq_,module,exports){\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * @param {DOMElement} node input/textarea to focus\n */\n\nfunction focusNode(node) {\n  // IE8 can throw \"Can't move focus to the control because it is invisible,\n  // not enabled, or of a type that does not accept the focus.\" for all kinds of\n  // reasons that are too expensive and fragile to test.\n  try {\n    node.focus();\n  } catch (e) {}\n}\n\nmodule.exports = focusNode;\n},{}],157:[function(_dereq_,module,exports){\n'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n/* eslint-disable fb-www/typeof-undefined */\n\n/**\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\n * not safe to call document.activeElement if there is nothing focused.\n *\n * The activeElement will be null only if the document or document body is not\n * yet defined.\n */\nfunction getActiveElement() /*?DOMElement*/{\n  if (typeof document === 'undefined') {\n    return null;\n  }\n  try {\n    return document.activeElement || document.body;\n  } catch (e) {\n    return document.body;\n  }\n}\n\nmodule.exports = getActiveElement;\n},{}],158:[function(_dereq_,module,exports){\n'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/*eslint-disable fb-www/unsafe-html */\n\nvar ExecutionEnvironment = _dereq_(148);\n\nvar invariant = _dereq_(162);\n\n/**\n * Dummy container used to detect which wraps are necessary.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Some browsers cannot use `innerHTML` to render certain elements standalone,\n * so we wrap them, render the wrapped nodes, then extract the desired node.\n *\n * In IE8, certain elements cannot render alone, so wrap all elements ('*').\n */\n\nvar shouldWrap = {};\n\nvar selectWrap = [1, '<select multiple=\"true\">', '</select>'];\nvar tableWrap = [1, '<table>', '</table>'];\nvar trWrap = [3, '<table><tbody><tr>', '</tr></tbody></table>'];\n\nvar svgWrap = [1, '<svg xmlns=\"http://www.w3.org/2000/svg\">', '</svg>'];\n\nvar markupWrap = {\n  '*': [1, '?<div>', '</div>'],\n\n  'area': [1, '<map>', '</map>'],\n  'col': [2, '<table><tbody></tbody><colgroup>', '</colgroup></table>'],\n  'legend': [1, '<fieldset>', '</fieldset>'],\n  'param': [1, '<object>', '</object>'],\n  'tr': [2, '<table><tbody>', '</tbody></table>'],\n\n  'optgroup': selectWrap,\n  'option': selectWrap,\n\n  'caption': tableWrap,\n  'colgroup': tableWrap,\n  'tbody': tableWrap,\n  'tfoot': tableWrap,\n  'thead': tableWrap,\n\n  'td': trWrap,\n  'th': trWrap\n};\n\n// Initialize the SVG elements since we know they'll always need to be wrapped\n// consistently. If they are created inside a <div> they will be initialized in\n// the wrong namespace (and will not display).\nvar svgElements = ['circle', 'clipPath', 'defs', 'ellipse', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'text', 'tspan'];\nsvgElements.forEach(function (nodeName) {\n  markupWrap[nodeName] = svgWrap;\n  shouldWrap[nodeName] = true;\n});\n\n/**\n * Gets the markup wrap configuration for the supplied `nodeName`.\n *\n * NOTE: This lazily detects which wraps are necessary for the current browser.\n *\n * @param {string} nodeName Lowercase `nodeName`.\n * @return {?array} Markup wrap configuration, if applicable.\n */\nfunction getMarkupWrap(nodeName) {\n  !!!dummyNode ? \"development\" !== 'production' ? invariant(false, 'Markup wrapping node not initialized') : invariant(false) : void 0;\n  if (!markupWrap.hasOwnProperty(nodeName)) {\n    nodeName = '*';\n  }\n  if (!shouldWrap.hasOwnProperty(nodeName)) {\n    if (nodeName === '*') {\n      dummyNode.innerHTML = '<link />';\n    } else {\n      dummyNode.innerHTML = '<' + nodeName + '></' + nodeName + '>';\n    }\n    shouldWrap[nodeName] = !dummyNode.firstChild;\n  }\n  return shouldWrap[nodeName] ? markupWrap[nodeName] : null;\n}\n\nmodule.exports = getMarkupWrap;\n},{\"148\":148,\"162\":162}],159:[function(_dereq_,module,exports){\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n'use strict';\n\n/**\n * Gets the scroll position of the supplied element or window.\n *\n * The return values are unbounded, unlike `getScrollPosition`. This means they\n * may be negative or exceed the element boundaries (which is possible using\n * inertial scrolling).\n *\n * @param {DOMWindow|DOMElement} scrollable\n * @return {object} Map with `x` and `y` keys.\n */\n\nfunction getUnboundedScrollPosition(scrollable) {\n  if (scrollable === window) {\n    return {\n      x: window.pageXOffset || document.documentElement.scrollLeft,\n      y: window.pageYOffset || document.documentElement.scrollTop\n    };\n  }\n  return {\n    x: scrollable.scrollLeft,\n    y: scrollable.scrollTop\n  };\n}\n\nmodule.exports = getUnboundedScrollPosition;\n},{}],160:[function(_dereq_,module,exports){\n'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\nvar _uppercasePattern = /([A-Z])/g;\n\n/**\n * Hyphenates a camelcased string, for example:\n *\n *   > hyphenate('backgroundColor')\n *   < \"background-color\"\n *\n * For CSS style names, use `hyphenateStyleName` instead which works properly\n * with all vendor prefixes, including `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenate(string) {\n  return string.replace(_uppercasePattern, '-$1').toLowerCase();\n}\n\nmodule.exports = hyphenate;\n},{}],161:[function(_dereq_,module,exports){\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n'use strict';\n\nvar hyphenate = _dereq_(160);\n\nvar msPattern = /^ms-/;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n *   > hyphenateStyleName('backgroundColor')\n *   < \"background-color\"\n *   > hyphenateStyleName('MozTransition')\n *   < \"-moz-transition\"\n *   > hyphenateStyleName('msTransition')\n *   < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n  return hyphenate(string).replace(msPattern, '-ms-');\n}\n\nmodule.exports = hyphenateStyleName;\n},{\"160\":160}],162:[function(_dereq_,module,exports){\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n  if (\"development\" !== 'production') {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  }\n\n  if (!condition) {\n    var error;\n    if (format === undefined) {\n      error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(format.replace(/%s/g, function () {\n        return args[argIndex++];\n      }));\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n}\n\nmodule.exports = invariant;\n},{}],163:[function(_dereq_,module,exports){\n'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM node.\n */\nfunction isNode(object) {\n  return !!(object && (typeof Node === 'function' ? object instanceof Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));\n}\n\nmodule.exports = isNode;\n},{}],164:[function(_dereq_,module,exports){\n'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\nvar isNode = _dereq_(163);\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM text node.\n */\nfunction isTextNode(object) {\n  return isNode(object) && object.nodeType == 3;\n}\n\nmodule.exports = isTextNode;\n},{\"163\":163}],165:[function(_dereq_,module,exports){\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks static-only\n */\n\n'use strict';\n\nvar invariant = _dereq_(162);\n\n/**\n * Constructs an enumeration with keys equal to their value.\n *\n * For example:\n *\n *   var COLORS = keyMirror({blue: null, red: null});\n *   var myColor = COLORS.blue;\n *   var isColorValid = !!COLORS[myColor];\n *\n * The last line could not be performed if the values of the generated enum were\n * not equal to their keys.\n *\n *   Input:  {key1: val1, key2: val2}\n *   Output: {key1: key1, key2: key2}\n *\n * @param {object} obj\n * @return {object}\n */\nvar keyMirror = function keyMirror(obj) {\n  var ret = {};\n  var key;\n  !(obj instanceof Object && !Array.isArray(obj)) ? \"development\" !== 'production' ? invariant(false, 'keyMirror(...): Argument must be an object.') : invariant(false) : void 0;\n  for (key in obj) {\n    if (!obj.hasOwnProperty(key)) {\n      continue;\n    }\n    ret[key] = key;\n  }\n  return ret;\n};\n\nmodule.exports = keyMirror;\n},{\"162\":162}],166:[function(_dereq_,module,exports){\n\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/**\n * Allows extraction of a minified key. Let's the build system minify keys\n * without losing the ability to dynamically use key strings as values\n * themselves. Pass in an object with a single key/val pair and it will return\n * you the string key of that single record. Suppose you want to grab the\n * value for a key 'className' inside of an object. Key/val minification may\n * have aliased that key to be 'xa12'. keyOf({className: null}) will return\n * 'xa12' in that case. Resolve keys you want to use once at startup time, then\n * reuse those resolutions.\n */\nvar keyOf = function keyOf(oneKeyObj) {\n  var key;\n  for (key in oneKeyObj) {\n    if (!oneKeyObj.hasOwnProperty(key)) {\n      continue;\n    }\n    return key;\n  }\n  return null;\n};\n\nmodule.exports = keyOf;\n},{}],167:[function(_dereq_,module,exports){\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * Memoizes the return value of a function that accepts one string argument.\n */\n\nfunction memoizeStringOnly(callback) {\n  var cache = {};\n  return function (string) {\n    if (!cache.hasOwnProperty(string)) {\n      cache[string] = callback.call(this, string);\n    }\n    return cache[string];\n  };\n}\n\nmodule.exports = memoizeStringOnly;\n},{}],168:[function(_dereq_,module,exports){\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n'use strict';\n\nvar ExecutionEnvironment = _dereq_(148);\n\nvar performance;\n\nif (ExecutionEnvironment.canUseDOM) {\n  performance = window.performance || window.msPerformance || window.webkitPerformance;\n}\n\nmodule.exports = performance || {};\n},{\"148\":148}],169:[function(_dereq_,module,exports){\n'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\nvar performance = _dereq_(168);\n\nvar performanceNow;\n\n/**\n * Detect if we can use `window.performance.now()` and gracefully fallback to\n * `Date.now()` if it doesn't exist. We need to support Firefox < 15 for now\n * because of Facebook's testing infrastructure.\n */\nif (performance.now) {\n  performanceNow = function performanceNow() {\n    return performance.now();\n  };\n} else {\n  performanceNow = function performanceNow() {\n    return Date.now();\n  };\n}\n\nmodule.exports = performanceNow;\n},{\"168\":168}],170:[function(_dereq_,module,exports){\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n  // SameValue algorithm\n  if (x === y) {\n    // Steps 1-5, 7-10\n    // Steps 6.b-6.e: +0 != -0\n    return x !== 0 || 1 / x === 1 / y;\n  } else {\n    // Step 6.a: NaN == NaN\n    return x !== x && y !== y;\n  }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n  if (is(objA, objB)) {\n    return true;\n  }\n\n  if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n    return false;\n  }\n\n  var keysA = Object.keys(objA);\n  var keysB = Object.keys(objB);\n\n  if (keysA.length !== keysB.length) {\n    return false;\n  }\n\n  // Test for A's keys different from B.\n  for (var i = 0; i < keysA.length; i++) {\n    if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nmodule.exports = shallowEqual;\n},{}],171:[function(_dereq_,module,exports){\n/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = _dereq_(154);\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (\"development\" !== 'production') {\n  (function () {\n    var printWarning = function printWarning(format) {\n      for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      var argIndex = 0;\n      var message = 'Warning: ' + format.replace(/%s/g, function () {\n        return args[argIndex++];\n      });\n      if (typeof console !== 'undefined') {\n        console.error(message);\n      }\n      try {\n        // --- Welcome to debugging React ---\n        // This error was thrown as a convenience so that you can use this stack\n        // to find the callsite that caused this warning to fire.\n        throw new Error(message);\n      } catch (x) {}\n    };\n\n    warning = function warning(condition, format) {\n      if (format === undefined) {\n        throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n      }\n\n      if (format.indexOf('Failed Composite propType: ') === 0) {\n        return; // Ignore CompositeComponent proptype check.\n      }\n\n      if (!condition) {\n        for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n          args[_key2 - 2] = arguments[_key2];\n        }\n\n        printWarning.apply(undefined, [format].concat(args));\n      }\n    };\n  })();\n}\n\nmodule.exports = warning;\n},{\"154\":154}],172:[function(_dereq_,module,exports){\n'use strict';\n/* eslint-disable no-unused-vars */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc');  // eslint-disable-line\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (e) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (Object.getOwnPropertySymbols) {\n\t\t\tsymbols = Object.getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n},{}]},{},[94])(94)\n});"
  },
  {
    "path": "lib/src-min-noconflict/ace.js",
    "content": "(function(){function o(n){var i=e;n&&(e[n]||(e[n]={}),i=e[n]);if(!i.define||!i.define.packaged)t.original=i.define,i.define=t,i.define.packaged=!0;if(!i.require||!i.require.packaged)r.original=i.require,i.require=r,i.require.packaged=!0}var ACE_NAMESPACE = \"ace\",e=function(){return this}();!e&&typeof window!=\"undefined\"&&(e=window);if(!ACE_NAMESPACE&&typeof requirejs!=\"undefined\")return;var t=function(e,n,r){if(typeof e!=\"string\"){t.original?t.original.apply(this,arguments):(console.error(\"dropping module because define wasn't a string.\"),console.trace());return}arguments.length==2&&(r=n),t.modules[e]||(t.payloads[e]=r,t.modules[e]=null)};t.modules={},t.payloads={};var n=function(e,t,n){if(typeof t==\"string\"){var i=s(e,t);if(i!=undefined)return n&&n(),i}else if(Object.prototype.toString.call(t)===\"[object Array]\"){var o=[];for(var u=0,a=t.length;u<a;++u){var f=s(e,t[u]);if(f==undefined&&r.original)return;o.push(f)}return n&&n.apply(null,o)||!0}},r=function(e,t){var i=n(\"\",e,t);return i==undefined&&r.original?r.original.apply(this,arguments):i},i=function(e,t){if(t.indexOf(\"!\")!==-1){var n=t.split(\"!\");return i(e,n[0])+\"!\"+i(e,n[1])}if(t.charAt(0)==\".\"){var r=e.split(\"/\").slice(0,-1).join(\"/\");t=r+\"/\"+t;while(t.indexOf(\".\")!==-1&&s!=t){var s=t;t=t.replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return t},s=function(e,r){r=i(e,r);var s=t.modules[r];if(!s){s=t.payloads[r];if(typeof s==\"function\"){var o={},u={id:r,uri:\"\",exports:o,packaged:!0},a=function(e,t){return n(r,e,t)},f=s(a,o,u);o=f||u.exports,t.modules[r]=o,delete t.payloads[r]}s=t.modules[r]=o||s}return s};o(ACE_NAMESPACE)})(),ace.define(\"ace/lib/regexp\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function o(e){return(e.global?\"g\":\"\")+(e.ignoreCase?\"i\":\"\")+(e.multiline?\"m\":\"\")+(e.extended?\"x\":\"\")+(e.sticky?\"y\":\"\")}function u(e,t,n){if(Array.prototype.indexOf)return e.indexOf(t,n);for(var r=n||0;r<e.length;r++)if(e[r]===t)return r;return-1}var r={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},i=r.exec.call(/()??/,\"\")[1]===undefined,s=function(){var e=/^/g;return r.test.call(e,\"\"),!e.lastIndex}();if(s&&i)return;RegExp.prototype.exec=function(e){var t=r.exec.apply(this,arguments),n,a;if(typeof e==\"string\"&&t){!i&&t.length>1&&u(t,\"\")>-1&&(a=RegExp(this.source,r.replace.call(o(this),\"g\",\"\")),r.replace.call(e.slice(t.index),a,function(){for(var e=1;e<arguments.length-2;e++)arguments[e]===undefined&&(t[e]=undefined)}));if(this._xregexp&&this._xregexp.captureNames)for(var f=1;f<t.length;f++)n=this._xregexp.captureNames[f-1],n&&(t[n]=t[f]);!s&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--}return t},s||(RegExp.prototype.test=function(e){var t=r.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t})}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,\"sentinel\",{}),\"sentinel\"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t===\"undefined\"||t===\"boolean\"||t===\"number\"||t===\"string\"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n==\"function\"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r==\"function\"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!=\"function\")throw new TypeError(\"Function.prototype.bind called on incompatible \"+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,\"__defineGetter__\"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,\"XXX\"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)==\"[object Array]\"});var m=Object(\"a\"),g=m[0]!=\"a\"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduce of empty array with no initial value\");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError(\"reduce of empty array with no initial value\")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduceRight of empty array with no initial value\");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError(\"reduceRight of empty array with no initial value\")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!=\"object\")throw new TypeError(\"typeof prototype[\"+typeof t+\"] != 'object'\");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document==\"undefined\"||w(document.createElement(\"div\"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T=\"Property description must be an object: \",N=\"Object.defineProperty called on non-object: \",C=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(t,n,r){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(N+t);if(typeof r!=\"object\"&&typeof r!=\"function\"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,\"value\"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,\"get\")&&l(t,n,r.get),f(r,\"set\")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n==\"function\"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n=\"\";while(f(t,n))n+=\"?\";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!=\"object\"&&typeof e!=\"function\"||e===null)throw new TypeError(\"Object.keys called on a non-object\");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=\"\t\\n\u000b\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\";if(!String.prototype.trim||_.trim()){_=\"[\"+_+\"]\";var D=new RegExp(\"^\"+_+_+\"*\"),P=new RegExp(_+_+\"*$\");String.prototype.trim=function(){return String(this).replace(D,\"\").replace(P,\"\")}}var F=function(e){if(e==null)throw new TypeError(\"can't convert \"+e+\" to object\");return Object(e)}}),ace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/regexp\",\"ace/lib/es5-shim\"],function(e,t,n){\"use strict\";e(\"./regexp\"),e(\"./es5-shim\")}),ace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=\"http://www.w3.org/1999/xhtml\";t.getDocumentHead=function(e){return e||(e=document),e.head||e.getElementsByTagName(\"head\")[0]||e.documentElement},t.createElement=function(e,t){return document.createElementNS?document.createElementNS(t||r,e):document.createElement(e)},t.hasCssClass=function(e,t){var n=(e.className+\"\").split(/\\s+/g);return n.indexOf(t)!==-1},t.addCssClass=function(e,n){t.hasCssClass(e,n)||(e.className+=\" \"+n)},t.removeCssClass=function(e,t){var n=e.className.split(/\\s+/g);for(;;){var r=n.indexOf(t);if(r==-1)break;n.splice(r,1)}e.className=n.join(\" \")},t.toggleCssClass=function(e,t){var n=e.className.split(/\\s+/g),r=!0;for(;;){var i=n.indexOf(t);if(i==-1)break;r=!1,n.splice(i,1)}return r&&n.push(t),e.className=n.join(\" \"),r},t.setCssClass=function(e,n,r){r?t.addCssClass(e,n):t.removeCssClass(e,n)},t.hasCssString=function(e,t){var n=0,r;t=t||document;if(t.createStyleSheet&&(r=t.styleSheets)){while(n<r.length)if(r[n++].owningElement.id===e)return!0}else if(r=t.getElementsByTagName(\"style\"))while(n<r.length)if(r[n++].id===e)return!0;return!1},t.importCssString=function(n,r,i){i=i||document;if(r&&t.hasCssString(r,i))return null;var s;r&&(n+=\"\\n/*# sourceURL=ace/css/\"+r+\" */\"),i.createStyleSheet?(s=i.createStyleSheet(),s.cssText=n,r&&(s.owningElement.id=r)):(s=t.createElement(\"style\"),s.appendChild(i.createTextNode(n)),r&&(s.id=r),t.getDocumentHead(i).appendChild(s))},t.importCssStylsheet=function(e,n){if(n.createStyleSheet)n.createStyleSheet(e);else{var r=t.createElement(\"link\");r.rel=\"stylesheet\",r.href=e,t.getDocumentHead(n).appendChild(r)}},t.getInnerWidth=function(e){return parseInt(t.computedStyle(e,\"paddingLeft\"),10)+parseInt(t.computedStyle(e,\"paddingRight\"),10)+e.clientWidth},t.getInnerHeight=function(e){return parseInt(t.computedStyle(e,\"paddingTop\"),10)+parseInt(t.computedStyle(e,\"paddingBottom\"),10)+e.clientHeight},t.scrollbarWidth=function(e){var n=t.createElement(\"ace_inner\");n.style.width=\"100%\",n.style.minWidth=\"0px\",n.style.height=\"200px\",n.style.display=\"block\";var r=t.createElement(\"ace_outer\"),i=r.style;i.position=\"absolute\",i.left=\"-10000px\",i.overflow=\"hidden\",i.width=\"200px\",i.minWidth=\"0px\",i.height=\"150px\",i.display=\"block\",r.appendChild(n);var s=e.documentElement;s.appendChild(r);var o=n.offsetWidth;i.overflow=\"scroll\";var u=n.offsetWidth;return o==u&&(u=r.clientWidth),s.removeChild(r),o-u};if(typeof document==\"undefined\"){t.importCssString=function(){};return}window.pageYOffset!==undefined?(t.getPageScrollTop=function(){return window.pageYOffset},t.getPageScrollLeft=function(){return window.pageXOffset}):(t.getPageScrollTop=function(){return document.body.scrollTop},t.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?t.computedStyle=function(e,t){return t?(window.getComputedStyle(e,\"\")||{})[t]||\"\":window.getComputedStyle(e,\"\")||{}}:t.computedStyle=function(e,t){return t?e.currentStyle[t]:e.currentStyle},t.setInnerHtml=function(e,t){var n=e.cloneNode(!1);return n.innerHTML=t,e.parentNode.replaceChild(n,e),n},\"textContent\"in document.documentElement?(t.setInnerText=function(e,t){e.textContent=t},t.getInnerText=function(e){return e.textContent}):(t.setInnerText=function(e,t){e.innerText=t},t.getInnerText=function(e){return e.innerText}),t.getParentWindow=function(e){return e.defaultView||e.parentWindow}}),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\"],function(e,t,n){\"use strict\";e(\"./fixoldbrowsers\");var r=e(\"./oop\"),i=function(){var e={MODIFIER_KEYS:{16:\"Shift\",17:\"Ctrl\",18:\"Alt\",224:\"Meta\"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,\"super\":8,meta:8,command:8,cmd:8},FUNCTION_KEYS:{8:\"Backspace\",9:\"Tab\",13:\"Return\",19:\"Pause\",27:\"Esc\",32:\"Space\",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"Left\",38:\"Up\",39:\"Right\",40:\"Down\",44:\"Print\",45:\"Insert\",46:\"Delete\",96:\"Numpad0\",97:\"Numpad1\",98:\"Numpad2\",99:\"Numpad3\",100:\"Numpad4\",101:\"Numpad5\",102:\"Numpad6\",103:\"Numpad7\",104:\"Numpad8\",105:\"Numpad9\",\"-13\":\"NumpadEnter\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"Numlock\",145:\"Scrolllock\"},PRINTABLE_KEYS:{32:\" \",48:\"0\",49:\"1\",50:\"2\",51:\"3\",52:\"4\",53:\"5\",54:\"6\",55:\"7\",56:\"8\",57:\"9\",59:\";\",61:\"=\",65:\"a\",66:\"b\",67:\"c\",68:\"d\",69:\"e\",70:\"f\",71:\"g\",72:\"h\",73:\"i\",74:\"j\",75:\"k\",76:\"l\",77:\"m\",78:\"n\",79:\"o\",80:\"p\",81:\"q\",82:\"r\",83:\"s\",84:\"t\",85:\"u\",86:\"v\",87:\"w\",88:\"x\",89:\"y\",90:\"z\",107:\"+\",109:\"-\",110:\".\",186:\";\",187:\"=\",188:\",\",189:\"-\",190:\".\",191:\"/\",192:\"`\",219:\"[\",220:\"\\\\\",221:\"]\",222:\"'\",111:\"/\",106:\"*\"}},t,n;for(n in e.FUNCTION_KEYS)t=e.FUNCTION_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);for(n in e.PRINTABLE_KEYS)t=e.PRINTABLE_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);return r.mixin(e,e.MODIFIER_KEYS),r.mixin(e,e.PRINTABLE_KEYS),r.mixin(e,e.FUNCTION_KEYS),e.enter=e[\"return\"],e.escape=e.esc,e.del=e[\"delete\"],e[173]=\"-\",function(){var t=[\"cmd\",\"ctrl\",\"alt\",\"shift\"];for(var n=Math.pow(2,t.length);n--;)e.KEY_MODS[n]=t.filter(function(t){return n&e.KEY_MODS[t]}).join(\"-\")+\"-\"}(),e.KEY_MODS[0]=\"\",e.KEY_MODS[-1]=\"input-\",e}();r.mixin(t,i),t.keyCodeToString=function(e){var t=i[e];return typeof t!=\"string\"&&(t=String.fromCharCode(e)),t.toLowerCase()}}),ace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.OS={LINUX:\"LINUX\",MAC:\"MAC\",WINDOWS:\"WINDOWS\"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};if(typeof navigator!=\"object\")return;var r=(navigator.platform.match(/mac|win|linux/i)||[\"other\"])[0].toLowerCase(),i=navigator.userAgent;t.isWin=r==\"win\",t.isMac=r==\"mac\",t.isLinux=r==\"linux\",t.isIE=navigator.appName==\"Microsoft Internet Explorer\"||navigator.appName.indexOf(\"MSAppHost\")>=0?parseFloat((i.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1]):parseFloat((i.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&window.navigator.product===\"Gecko\",t.isOldGecko=t.isGecko&&parseInt((i.match(/rv:(\\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&Object.prototype.toString.call(window.opera)==\"[object Opera]\",t.isWebKit=parseFloat(i.split(\"WebKit/\")[1])||undefined,t.isChrome=parseFloat(i.split(\" Chrome/\")[1])||undefined,t.isAIR=i.indexOf(\"AdobeAIR\")>=0,t.isIPad=i.indexOf(\"iPad\")>=0,t.isTouchPad=i.indexOf(\"TouchPad\")>=0,t.isChromeOS=i.indexOf(\" CrOS \")>=0}),ace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"],function(e,t,n){\"use strict\";function a(e,t,n){var a=u(t);if(!i.isMac&&s){t.getModifierState&&(t.getModifierState(\"OS\")||t.getModifierState(\"Win\"))&&(a|=8);if(s.altGr){if((3&a)==3)return;s.altGr=0}if(n===18||n===17){var f=\"location\"in t?t.location:t.keyLocation;if(n===17&&f===1)s[n]==1&&(o=t.timeStamp);else if(n===18&&a===3&&f===2){var l=t.timeStamp-o;l<50&&(s.altGr=!0)}}}n in r.MODIFIER_KEYS&&(n=-1),a&8&&n>=91&&n<=93&&(n=-1);if(!a&&n===13){var f=\"location\"in t?t.location:t.keyLocation;if(f===3){e(t,a,-n);if(t.defaultPrevented)return}}if(i.isChromeOS&&a&8){e(t,a,n);if(t.defaultPrevented)return;a&=-9}return!!a||n in r.FUNCTION_KEYS||n in r.PRINTABLE_KEYS?e(t,a,n):!1}function f(){s=Object.create(null)}var r=e(\"./keys\"),i=e(\"./useragent\"),s=null,o=0;t.addListener=function(e,t,n){if(e.addEventListener)return e.addEventListener(t,n,!1);if(e.attachEvent){var r=function(){n.call(e,window.event)};n._wrapper=r,e.attachEvent(\"on\"+t,r)}},t.removeListener=function(e,t,n){if(e.removeEventListener)return e.removeEventListener(t,n,!1);e.detachEvent&&e.detachEvent(\"on\"+t,n._wrapper||n)},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return e.type==\"dblclick\"?0:e.type==\"contextmenu\"||i.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,n,r){function i(e){n&&n(e),r&&r(e),t.removeListener(document,\"mousemove\",n,!0),t.removeListener(document,\"mouseup\",i,!0),t.removeListener(document,\"dragstart\",i,!0)}return t.addListener(document,\"mousemove\",n,!0),t.addListener(document,\"mouseup\",i,!0),t.addListener(document,\"dragstart\",i,!0),i},t.addTouchMoveListener=function(e,n){if(\"ontouchmove\"in e){var r,i;t.addListener(e,\"touchstart\",function(e){var t=e.changedTouches[0];r=t.clientX,i=t.clientY}),t.addListener(e,\"touchmove\",function(e){var t=1,s=e.changedTouches[0];e.wheelX=-(s.clientX-r)/t,e.wheelY=-(s.clientY-i)/t,r=s.clientX,i=s.clientY,n(e)})}},t.addMouseWheelListener=function(e,n){\"onmousewheel\"in e?t.addListener(e,\"mousewheel\",function(e){var t=8;e.wheelDeltaX!==undefined?(e.wheelX=-e.wheelDeltaX/t,e.wheelY=-e.wheelDeltaY/t):(e.wheelX=0,e.wheelY=-e.wheelDelta/t),n(e)}):\"onwheel\"in e?t.addListener(e,\"wheel\",function(e){var t=.35;switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=e.deltaX*t||0,e.wheelY=e.deltaY*t||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=(e.deltaX||0)*5,e.wheelY=(e.deltaY||0)*5}n(e)}):t.addListener(e,\"DOMMouseScroll\",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=(e.detail||0)*5,e.wheelY=0):(e.wheelX=0,e.wheelY=(e.detail||0)*5),n(e)})},t.addMultiMouseDownListener=function(e,n,r,s){function c(e){t.getButton(e)!==0?o=0:e.detail>1?(o++,o>4&&(o=1)):o=1;if(i.isIE){var c=Math.abs(e.clientX-u)>5||Math.abs(e.clientY-a)>5;if(!f||c)o=1;f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),o==1&&(u=e.clientX,a=e.clientY)}e._clicks=o,r[s](\"mousedown\",e);if(o>4)o=0;else if(o>1)return r[s](l[o],e)}function h(e){o=2,f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),r[s](\"mousedown\",e),r[s](l[o],e)}var o=0,u,a,f,l={2:\"dblclick\",3:\"tripleclick\",4:\"quadclick\"};Array.isArray(e)||(e=[e]),e.forEach(function(e){t.addListener(e,\"mousedown\",c),i.isOldIE&&t.addListener(e,\"dblclick\",h)})};var u=!i.isMac||!i.isOpera||\"KeyboardEvent\"in window?function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}:function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)};t.getModifierString=function(e){return r.KEY_MODS[u(e)]},t.addCommandKeyListener=function(e,n){var r=t.addListener;if(i.isOldGecko||i.isOpera&&!(\"KeyboardEvent\"in window)){var o=null;r(e,\"keydown\",function(e){o=e.keyCode}),r(e,\"keypress\",function(e){return a(n,e,o)})}else{var u=null;r(e,\"keydown\",function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var t=a(n,e,e.keyCode);return u=e.defaultPrevented,t}),r(e,\"keypress\",function(e){u&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),u=null)}),r(e,\"keyup\",function(e){s[e.keyCode]=null}),s||(f(),r(window,\"focus\",f))}};if(typeof window==\"object\"&&window.postMessage&&!i.isOldIE){var l=1;t.nextTick=function(e,n){n=n||window;var r=\"zero-timeout-message-\"+l;t.addListener(n,\"message\",function i(s){s.data==r&&(t.stopPropagation(s),t.removeListener(n,\"message\",i),e())}),n.postMessage(r,\"*\")}}t.nextFrame=typeof window==\"object\"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split(\"\").reverse().join(\"\")},t.stringRepeat=function(e,t){var n=\"\";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\\s\\s*/,i=/\\s\\s*$/;t.stringTrimLeft=function(e){return e.replace(r,\"\")},t.stringTrimRight=function(e){return e.replace(i,\"\")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]==\"object\"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!=\"object\"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}if(Object.prototype.toString.call(e)!==\"[object Object]\")return e;t={};for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},t.escapeHTML=function(e){return e.replace(/&/g,\"&#38;\").replace(/\"/g,\"&#34;\").replace(/'/g,\"&#39;\").replace(/</g,\"&#60;\")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../lib/event\"),i=e(\"../lib/useragent\"),s=e(\"../lib/dom\"),o=e(\"../lib/lang\"),u=i.isChrome<18,a=i.isIE,f=function(e,t){function b(e){if(h)return;h=!0;if(k)t=0,r=e?0:n.value.length-1;else var t=e?2:1,r=2;try{n.setSelectionRange(t,r)}catch(i){}h=!1}function w(){if(h)return;n.value=f,i.isWebKit&&y.schedule()}function R(){clearTimeout(q),q=setTimeout(function(){p&&(n.style.cssText=p,p=\"\"),t.renderer.$keepTextAreaAtCursor==null&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())},i.isOldIE?200:0)}var n=s.createElement(\"textarea\");n.className=\"ace_text-input\",i.isTouchPad&&n.setAttribute(\"x-palm-disable-auto-cap\",!0),n.setAttribute(\"wrap\",\"off\"),n.setAttribute(\"autocorrect\",\"off\"),n.setAttribute(\"autocapitalize\",\"off\"),n.setAttribute(\"spellcheck\",!1),n.style.opacity=\"0\",i.isOldIE&&(n.style.top=\"-1000px\"),e.insertBefore(n,e.firstChild);var f=\"\u0001\u0001\",l=!1,c=!1,h=!1,p=\"\",d=!0;try{var v=document.activeElement===n}catch(m){}r.addListener(n,\"blur\",function(e){t.onBlur(e),v=!1}),r.addListener(n,\"focus\",function(e){v=!0,t.onFocus(e),b()}),this.focus=function(){if(p)return n.focus();var e=n.style.top;n.style.position=\"fixed\",n.style.top=\"0px\",n.focus(),setTimeout(function(){n.style.position=\"\",n.style.top==\"0px\"&&(n.style.top=e)},0)},this.blur=function(){n.blur()},this.isFocused=function(){return v};var g=o.delayedCall(function(){v&&b(d)}),y=o.delayedCall(function(){h||(n.value=f,v&&b())});i.isWebKit||t.addEventListener(\"changeSelection\",function(){t.selection.isEmpty()!=d&&(d=!d,g.schedule())}),w(),v&&t.onFocus();var E=function(e){return e.selectionStart===0&&e.selectionEnd===e.value.length};!n.setSelectionRange&&n.createTextRange&&(n.setSelectionRange=function(e,t){var n=this.createTextRange();n.collapse(!0),n.moveStart(\"character\",e),n.moveEnd(\"character\",t),n.select()},E=function(e){try{var t=e.ownerDocument.selection.createRange()}catch(n){}return!t||t.parentElement()!=e?!1:t.text==e.value});if(i.isOldIE){var S=!1,x=function(e){if(S)return;var t=n.value;if(h||!t||t==f)return;if(e&&t==f[0])return T.schedule();A(t),S=!0,w(),S=!1},T=o.delayedCall(x);r.addListener(n,\"propertychange\",x);var N={13:1,27:1};r.addListener(n,\"keyup\",function(e){h&&(!n.value||N[e.keyCode])&&setTimeout(F,0);if((n.value.charCodeAt(0)||0)<129)return T.call();h?j():B()}),r.addListener(n,\"keydown\",function(e){T.schedule(50)})}var C=function(e){l?l=!1:E(n)?(t.selectAll(),b()):k&&b(t.selection.isEmpty())},k=null;this.setInputHandler=function(e){k=e},this.getInputHandler=function(){return k};var L=!1,A=function(e){k&&(e=k(e),k=null),c?(b(),e&&t.onPaste(e),c=!1):e==f.charAt(0)?L?t.execCommand(\"del\",{source:\"ace\"}):t.execCommand(\"backspace\",{source:\"ace\"}):(e.substring(0,2)==f?e=e.substr(2):e.charAt(0)==f.charAt(0)?e=e.substr(1):e.charAt(e.length-1)==f.charAt(0)&&(e=e.slice(0,-1)),e.charAt(e.length-1)==f.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),L&&(L=!1)},O=function(e){if(h)return;var t=n.value;A(t),w()},M=function(e,t,n){var r=e.clipboardData||window.clipboardData;if(!r||u)return;var i=a||n?\"Text\":\"text/plain\";try{return t?r.setData(i,t)!==!1:r.getData(i)}catch(e){if(!n)return M(e,t,!0)}},_=function(e,i){var s=t.getCopyText();if(!s)return r.preventDefault(e);M(e,s)?(i?t.onCut():t.onCopy(),r.preventDefault(e)):(l=!0,n.value=s,n.select(),setTimeout(function(){l=!1,w(),b(),i?t.onCut():t.onCopy()}))},D=function(e){_(e,!0)},P=function(e){_(e,!1)},H=function(e){var s=M(e);typeof s==\"string\"?(s&&t.onPaste(s,e),i.isIE&&setTimeout(b),r.preventDefault(e)):(n.value=\"\",c=!0)};r.addCommandKeyListener(n,t.onCommandKey.bind(t)),r.addListener(n,\"select\",C),r.addListener(n,\"input\",O),r.addListener(n,\"cut\",D),r.addListener(n,\"copy\",P),r.addListener(n,\"paste\",H),(!(\"oncut\"in n)||!(\"oncopy\"in n)||!(\"onpaste\"in n))&&r.addListener(e,\"keydown\",function(e){if(i.isMac&&!e.metaKey||!e.ctrlKey)return;switch(e.keyCode){case 67:P(e);break;case 86:H(e);break;case 88:D(e)}});var B=function(e){if(h||!t.onCompositionStart||t.$readOnly)return;h={},h.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(j,0),t.on(\"mousedown\",F),h.canUndo&&!t.selection.isEmpty()&&(t.insert(\"\"),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup()},j=function(){if(!h||!t.onCompositionUpdate||t.$readOnly)return;var e=n.value.replace(/\\x01/g,\"\");if(h.lastValue===e)return;t.onCompositionUpdate(e),h.lastValue&&t.undo(),h.canUndo&&(h.lastValue=e);if(h.lastValue){var r=t.selection.getRange();t.insert(h.lastValue),t.session.markUndoGroup(),h.range=t.selection.getRange(),t.selection.setRange(r),t.selection.clearSelection()}},F=function(e){if(!t.onCompositionEnd||t.$readOnly)return;var r=h;h=!1;var s=setTimeout(function(){s=null;var e=n.value.replace(/\\x01/g,\"\");if(h)return;e==r.lastValue?w():!r.lastValue&&e&&(w(),A(e))});k=function(n){return s&&clearTimeout(s),n=n.replace(/\\x01/g,\"\"),n==r.lastValue?\"\":(r.lastValue&&s&&t.undo(),n)},t.onCompositionEnd(),t.removeListener(\"mousedown\",F),e.type==\"compositionend\"&&r.range&&t.selection.setRange(r.range),i.isChrome&&i.isChrome>=53&&O()},I=o.delayedCall(j,50);r.addListener(n,\"compositionstart\",B),i.isGecko?r.addListener(n,\"text\",function(){I.schedule()}):(r.addListener(n,\"keyup\",function(){I.schedule()}),r.addListener(n,\"keydown\",function(){I.schedule()})),r.addListener(n,\"compositionend\",F),this.getElement=function(){return n},this.setReadOnly=function(e){n.readOnly=e},this.onContextMenu=function(e){L=!0,b(t.selection.isEmpty()),t._emit(\"nativecontextmenu\",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,o){if(!o&&i.isOldIE)return;p||(p=n.style.cssText),n.style.cssText=(o?\"z-index:100000;\":\"\")+\"height:\"+n.style.height+\";\"+(i.isIE?\"opacity:0.1;\":\"\");var u=t.container.getBoundingClientRect(),a=s.computedStyle(t.container),f=u.top+(parseInt(a.borderTopWidth)||0),l=u.left+(parseInt(u.borderLeftWidth)||0),c=u.bottom-f-n.clientHeight-2,h=function(e){n.style.left=e.clientX-l-2+\"px\",n.style.top=Math.min(e.clientY-f-2,c)+\"px\"};h(e);if(e.type!=\"mousedown\")return;t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(q),i.isWin&&!i.isOldIE&&r.capture(t.container,h,R)},this.onContextMenuClose=R;var q,U=function(e){t.textInput.onContextMenu(e),R()};r.addListener(n,\"mouseup\",U),r.addListener(n,\"mousedown\",function(e){e.preventDefault(),R()}),r.addListener(t.renderer.scroller,\"contextmenu\",U),r.addListener(n,\"contextmenu\",U)};t.TextInput=f}),ace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"],function(e,t,n){\"use strict\";function u(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler(\"mousedown\",this.onMouseDown.bind(e)),t.setDefaultHandler(\"dblclick\",this.onDoubleClick.bind(e)),t.setDefaultHandler(\"tripleclick\",this.onTripleClick.bind(e)),t.setDefaultHandler(\"quadclick\",this.onQuadClick.bind(e)),t.setDefaultHandler(\"mousewheel\",this.onMouseWheel.bind(e)),t.setDefaultHandler(\"touchmove\",this.onTouchMove.bind(e));var n=[\"select\",\"startSelect\",\"selectEnd\",\"selectAllEnd\",\"selectByWordsEnd\",\"selectByLinesEnd\",\"dragWait\",\"dragWaitEnd\",\"focusWait\"];n.forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,\"getLineRange\"),e.selectByWords=this.extendSelectionBy.bind(e,\"getWordRange\")}function a(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}function f(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row==e.end.row-1&&!e.start.column&&!e.end.column)var n=t.column-4;else var n=2*t.row-e.start.row-e.end.row;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var r=e(\"../lib/dom\"),i=e(\"../lib/event\"),s=e(\"../lib/useragent\"),o=0;(function(){this.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var r=this.editor,i=e.getButton();if(i!==0){var s=r.getSelectionRange(),o=s.isEmpty();r.$blockScrolling++,(o||i==1)&&r.selection.moveToPosition(n),r.$blockScrolling--,i==2&&r.textInput.onContextMenu(e.domEvent);return}this.mousedownEvent.time=Date.now();if(t&&!r.isFocused()){r.focus();if(this.$focusTimout&&!this.$clickSelection&&!r.inMultiSelectMode){this.setState(\"focusWait\"),this.captureMouse(e);return}}return this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;n.$blockScrolling++,this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.renderer.scroller.setCapture&&n.renderer.scroller.setCapture(),n.setStyle(\"ace_selecting\"),this.setState(\"select\"),n.$blockScrolling--},this.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);t.$blockScrolling++;if(this.$clickSelection){var r=this.$clickSelection.comparePoint(n);if(r==-1)e=this.$clickSelection.end;else if(r==1)e=this.$clickSelection.start;else{var i=f(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.$blockScrolling--,t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,n=this.editor,r=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](r.row,r.column);n.$blockScrolling++;if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),o=this.$clickSelection.comparePoint(i.end);if(s==-1&&o<=0){t=this.$clickSelection.end;if(i.end.row!=r.row||i.end.column!=r.column)r=i.start}else if(o==1&&s>=0){t=this.$clickSelection.start;if(i.start.row!=r.row||i.start.column!=r.column)r=i.end}else if(s==-1&&o==1)r=i.end,t=i.start;else{var u=f(this.$clickSelection,r);r=u.cursor,t=u.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(r),n.$blockScrolling--,n.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle(\"ace_selecting\"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>o||t-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,r=n.session,i=r.getBracketRange(t);i?(i.isEmpty()&&(i.start.column--,i.end.column++),this.setState(\"select\")):(i=n.selection.getWordRange(t.row,t.column),this.setState(\"selectByWords\")),this.$clickSelection=i,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState(\"selectByLines\");var r=n.getSelectionRange();r.isMultiLine()&&r.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(r.start.row),this.$clickSelection.end=n.selection.getLineRange(r.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState(\"selectAll\")},this.onMouseWheel=function(e){if(e.getAccelKey())return;e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=e.domEvent.timeStamp,n=t-(this.$lastScrollTime||0),r=this.editor,i=r.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed);if(i||n<200)return this.$lastScrollTime=t,r.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()},this.onTouchMove=function(e){var t=e.domEvent.timeStamp,n=t-(this.$lastScrollTime||0),r=this.editor,i=r.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed);if(i||n<200)return this.$lastScrollTime=t,r.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()}}).call(u.prototype),t.DefaultHandlers=u}),ace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";function s(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var r=e(\"./lib/oop\"),i=e(\"./lib/dom\");(function(){this.$init=function(){return this.$element=i.createElement(\"div\"),this.$element.className=\"ace_tooltip\",this.$element.style.display=\"none\",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){i.setInnerText(this.getElement(),e)},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+\"px\",this.getElement().style.top=t+\"px\"},this.setClassName=function(e){i.addCssClass(this.getElement(),e)},this.show=function(e,t,n){e!=null&&this.setText(e),t!=null&&n!=null&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display=\"block\",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display=\"none\",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth}}).call(s.prototype),t.Tooltip=s}),ace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event\",\"ace/tooltip\"],function(e,t,n){\"use strict\";function u(e){function l(){var r=u.getDocumentPosition().row,s=n.$annotations[r];if(!s)return c();var o=t.session.getLength();if(r==o){var a=t.renderer.pixelToScreenCoordinates(0,u.y).row,l=u.$pos;if(a>t.session.documentToScreenRow(l.row,l.column))return c()}if(f==s)return;f=s.text.join(\"<br/>\"),i.setHtml(f),i.show(),t._signal(\"showGutterTooltip\",i),t.on(\"mousewheel\",c);if(e.$tooltipFollowsMouse)h(u);else{var p=u.domEvent.target,d=p.getBoundingClientRect(),v=i.getElement().style;v.left=d.right+\"px\",v.top=d.bottom+\"px\"}}function c(){o&&(o=clearTimeout(o)),f&&(i.hide(),f=null,t._signal(\"hideGutterTooltip\",i),t.removeEventListener(\"mousewheel\",c))}function h(e){i.setPosition(e.x,e.y)}var t=e.editor,n=t.renderer.$gutterLayer,i=new a(t.container);e.editor.setDefaultHandler(\"guttermousedown\",function(r){if(!t.isFocused()||r.getButton()!=0)return;var i=n.getRegion(r);if(i==\"foldWidgets\")return;var s=r.getDocumentPosition().row,o=t.session.selection;if(r.getShiftKey())o.selectTo(s,0);else{if(r.domEvent.detail==2)return t.selectAll(),r.preventDefault();e.$clickSelection=t.selection.getLineRange(s)}return e.setState(\"selectByLines\"),e.captureMouse(r),r.preventDefault()});var o,u,f;e.editor.setDefaultHandler(\"guttermousemove\",function(t){var n=t.domEvent.target||t.domEvent.srcElement;if(r.hasCssClass(n,\"ace_fold-widget\"))return c();f&&e.$tooltipFollowsMouse&&h(t),u=t;if(o)return;o=setTimeout(function(){o=null,u&&!e.isMousePressed?l():c()},50)}),s.addListener(t.renderer.$gutter,\"mouseout\",function(e){u=null;if(!f||o)return;o=setTimeout(function(){o=null,c()},50)}),t.on(\"changeSession\",c)}function a(e){o.call(this,e)}var r=e(\"../lib/dom\"),i=e(\"../lib/oop\"),s=e(\"../lib/event\"),o=e(\"../tooltip\").Tooltip;i.inherits(a,o),function(){this.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),s=this.getHeight();e+=15,t+=15,e+i>n&&(e-=e+i-n),t+s>r&&(t-=20+s),o.prototype.setPosition.call(this,e,t)}}.call(a.prototype),t.GutterHandler=u}),ace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/event\"),i=e(\"../lib/useragent\"),s=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){r.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){r.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(this.$inSelection!==null)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var n=this.getDocumentPosition();this.$inSelection=t.contains(n.row,n.column)}return this.$inSelection},this.getButton=function(){return r.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=i.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(s.prototype)}),ace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"],function(e,t,n){\"use strict\";function f(e){function T(e,n){var r=Date.now(),i=!n||e.row!=n.row,s=!n||e.column!=n.column;if(!S||i||s)t.$blockScrolling+=1,t.moveCursorToPosition(e),t.$blockScrolling-=1,S=r,x={x:p,y:d};else{var o=l(x.x,x.y,p,d);o>a?S=null:r-S>=u&&(t.renderer.scrollCursorIntoView(),S=null)}}function N(e,n){var r=Date.now(),i=t.renderer.layerConfig.lineHeight,s=t.renderer.layerConfig.characterWidth,u=t.renderer.scroller.getBoundingClientRect(),a={x:{left:p-u.left,right:u.right-p},y:{top:d-u.top,bottom:u.bottom-d}},f=Math.min(a.x.left,a.x.right),l=Math.min(a.y.top,a.y.bottom),c={row:e.row,column:e.column};f/s<=2&&(c.column+=a.x.left<a.x.right?-3:2),l/i<=1&&(c.row+=a.y.top<a.y.bottom?-1:1);var h=e.row!=c.row,v=e.column!=c.column,m=!n||e.row!=n.row;h||v&&!m?E?r-E>=o&&t.renderer.scrollCursorIntoView(c):E=r:E=null}function C(){var e=g;g=t.renderer.screenToTextCoordinates(p,d),T(g,e),N(g,e)}function k(){m=t.selection.toOrientedRange(),h=t.session.addMarker(m,\"ace_selection\",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(v),C(),v=setInterval(C,20),y=0,i.addListener(document,\"mousemove\",O)}function L(){clearInterval(v),t.session.removeMarker(h),h=null,t.$blockScrolling+=1,t.selection.fromOrientedRange(m),t.$blockScrolling-=1,t.isFocused()&&!w&&t.renderer.$cursorLayer.setBlinking(!t.getReadOnly()),m=null,g=null,y=0,E=null,S=null,i.removeListener(document,\"mousemove\",O)}function O(){A==null&&(A=setTimeout(function(){A!=null&&h&&L()},20))}function M(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return e==\"text/plain\"||e==\"Text\"})}function _(e){var t=[\"copy\",\"copymove\",\"all\",\"uninitialized\"],n=[\"move\",\"copymove\",\"linkmove\",\"all\",\"uninitialized\"],r=s.isMac?e.altKey:e.ctrlKey,i=\"uninitialized\";try{i=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o=\"none\";return r&&t.indexOf(i)>=0?o=\"copy\":n.indexOf(i)>=0?o=\"move\":t.indexOf(i)>=0&&(o=\"copy\"),o}var t=e.editor,n=r.createElement(\"img\");n.src=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\",s.isOpera&&(n.style.cssText=\"width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;\");var f=[\"dragWait\",\"dragWaitEnd\",\"startDrag\",\"dragReadyEnd\",\"onMouseDrag\"];f.forEach(function(t){e[t]=this[t]},this),t.addEventListener(\"mousedown\",this.onMouseDown.bind(e));var c=t.container,h,p,d,v,m,g,y=0,b,w,E,S,x;this.onDragStart=function(e){if(this.cancelDrag||!c.draggable){var r=this;return setTimeout(function(){r.startSelect(),r.captureMouse(e)},0),e.preventDefault()}m=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?\"copy\":\"copyMove\",s.isOpera&&(t.container.appendChild(n),n.scrollTop=0),i.setDragImage&&i.setDragImage(n,0,0),s.isOpera&&t.container.removeChild(n),i.clearData(),i.setData(\"Text\",t.session.getTextRange()),w=!0,this.setState(\"drag\")},this.onDragEnd=function(e){c.draggable=!1,w=!1,this.setState(null);if(!t.getReadOnly()){var n=e.dataTransfer.dropEffect;!b&&n==\"move\"&&t.session.remove(t.getSelectionRange()),t.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle(\"ace_dragging\"),this.editor.renderer.setCursorStyle(\"\")},this.onDragEnter=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||k(),y++,e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragOver=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||(k(),y++),A!==null&&(A=null),e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragLeave=function(e){y--;if(y<=0&&h)return L(),b=null,i.preventDefault(e)},this.onDrop=function(e){if(!g)return;var n=e.dataTransfer;if(w)switch(b){case\"move\":m.contains(g.row,g.column)?m={start:g,end:g}:m=t.moveText(m,g);break;case\"copy\":m=t.moveText(m,g,!0)}else{var r=n.getData(\"Text\");m={start:g,end:t.session.insert(g,r)},t.focus(),b=null}return L(),i.preventDefault(e)},i.addListener(c,\"dragstart\",this.onDragStart.bind(e)),i.addListener(c,\"dragend\",this.onDragEnd.bind(e)),i.addListener(c,\"dragenter\",this.onDragEnter.bind(e)),i.addListener(c,\"dragover\",this.onDragOver.bind(e)),i.addListener(c,\"dragleave\",this.onDragLeave.bind(e)),i.addListener(c,\"drop\",this.onDrop.bind(e));var A=null}function l(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}var r=e(\"../lib/dom\"),i=e(\"../lib/event\"),s=e(\"../lib/useragent\"),o=200,u=200,a=5;(function(){this.dragWait=function(){var e=Date.now()-this.mousedownEvent.time;e>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle(\"ace_dragging\"),this.editor.renderer.setCursorStyle(\"\"),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor,t=e.container;t.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle(\"ace_dragging\");var n=s.isWin?\"default\":\"move\";e.renderer.setCursorStyle(n),this.setState(\"dragReady\")},this.onMouseDrag=function(e){var t=this.editor.container;if(s.isIE&&this.state==\"dragReady\"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>3&&t.dragDrop()}if(this.state===\"dragWait\"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(!this.$dragEnabled)return;this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),r=e.getButton(),i=e.domEvent.detail||1;if(i===1&&r===0&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var o=e.domEvent.target||e.domEvent.srcElement;\"unselectable\"in o&&(o.unselectable=\"on\");if(t.getDragDelay()){if(s.isWebKit){this.cancelDrag=!0;var u=t.container;u.draggable=!0}this.setState(\"dragWait\")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}).call(f.prototype),t.DragdropHandler=f}),ace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";var r=e(\"./dom\");t.get=function(e,t){var n=new XMLHttpRequest;n.open(\"GET\",e,!0),n.onreadystatechange=function(){n.readyState===4&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=r.getDocumentHead(),i=document.createElement(\"script\");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){if(n||!i.readyState||i.readyState==\"loaded\"||i.readyState==\"complete\")i=i.onload=i.onreadystatechange=null,n||t()}},t.qualifyURL=function(e){var t=document.createElement(\"a\");return t.href=e,t.href}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!=\"object\"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?\"unshift\":\"push\"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define(\"ace/lib/app_config\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"no use strict\";function o(e){typeof console!=\"undefined\"&&console.warn&&console.warn.apply(console,arguments)}function u(e,t){var n=new Error(e);n.data=t,typeof console==\"object\"&&console.error&&console.error(n),setTimeout(function(){throw n})}var r=e(\"./oop\"),i=e(\"./event_emitter\").EventEmitter,s={setOptions:function(e){Object.keys(e).forEach(function(t){this.setOption(t,e[t])},this)},getOptions:function(e){var t={};return e?Array.isArray(e)||(t=e,e=Object.keys(t)):e=Object.keys(this.$options),e.forEach(function(e){t[e]=this.getOption(e)},this),t},setOption:function(e,t){if(this[\"$\"+e]===t)return;var n=this.$options[e];if(!n)return o('misspelled option \"'+e+'\"');if(n.forwardTo)return this[n.forwardTo]&&this[n.forwardTo].setOption(e,t);n.handlesSet||(this[\"$\"+e]=t),n&&n.set&&n.set.call(this,t)},getOption:function(e){var t=this.$options[e];return t?t.forwardTo?this[t.forwardTo]&&this[t.forwardTo].getOption(e):t&&t.get?t.get.call(this):this[\"$\"+e]:o('misspelled option \"'+e+'\"')}},a=function(){this.$defaultOptions={}};(function(){r.implement(this,i),this.defineOptions=function(e,t,n){return e.$options||(this.$defaultOptions[t]=e.$options={}),Object.keys(n).forEach(function(t){var r=n[t];typeof r==\"string\"&&(r={forwardTo:r}),r.name||(r.name=t),e.$options[r.name]=r,\"initialValue\"in r&&(e[\"$\"+r.name]=r.initialValue)}),r.implement(e,s),this},this.resetOptions=function(e){Object.keys(e.$options).forEach(function(t){var n=e.$options[t];\"value\"in n&&e.setOption(t,n.value)})},this.setDefaultValue=function(e,t,n){var r=this.$defaultOptions[e]||(this.$defaultOptions[e]={});r[t]&&(r.forwardTo?this.setDefaultValue(r.forwardTo,t,n):r[t].value=n)},this.setDefaultValues=function(e,t){Object.keys(t).forEach(function(n){this.setDefaultValue(e,n,t[n])},this)},this.warn=o,this.reportError=u}).call(a.prototype),t.AppConfig=a}),ace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/app_config\"],function(e,t,n){\"no use strict\";function f(r){if(!u||!u.document)return;a.packaged=r||e.packaged||n.packaged||u.define&&define.packaged;var i={},s=\"\",o=document.currentScript||document._currentScript,f=o&&o.ownerDocument||document,c=f.getElementsByTagName(\"script\");for(var h=0;h<c.length;h++){var p=c[h],d=p.src||p.getAttribute(\"src\");if(!d)continue;var v=p.attributes;for(var m=0,g=v.length;m<g;m++){var y=v[m];y.name.indexOf(\"data-ace-\")===0&&(i[l(y.name.replace(/^data-ace-/,\"\"))]=y.value)}var b=d.match(/^(.*)\\/ace(\\-\\w+)?\\.js(\\?|$)/);b&&(s=b[1])}s&&(i.base=i.base||s,i.packaged=!0),i.basePath=i.base,i.workerPath=i.workerPath||i.base,i.modePath=i.modePath||i.base,i.themePath=i.themePath||i.base,delete i.base;for(var w in i)typeof i[w]!=\"undefined\"&&t.set(w,i[w])}function l(e){return e.replace(/-(.)/g,function(e,t){return t.toUpperCase()})}var r=e(\"./lib/lang\"),i=e(\"./lib/oop\"),s=e(\"./lib/net\"),o=e(\"./lib/app_config\").AppConfig;n.exports=t=new o;var u=function(){return this||typeof window!=\"undefined\"&&window}(),a={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:\"\",suffix:\".js\",$moduleUrls:{}};t.get=function(e){if(!a.hasOwnProperty(e))throw new Error(\"Unknown config key: \"+e);return a[e]},t.set=function(e,t){if(!a.hasOwnProperty(e))throw new Error(\"Unknown config key: \"+e);a[e]=t},t.all=function(){return r.copyObject(a)},t.moduleUrl=function(e,t){if(a.$moduleUrls[e])return a.$moduleUrls[e];var n=e.split(\"/\");t=t||n[n.length-2]||\"\";var r=t==\"snippets\"?\"/\":\"-\",i=n[n.length-1];if(t==\"worker\"&&r==\"-\"){var s=new RegExp(\"^\"+t+\"[\\\\-_]|[\\\\-_]\"+t+\"$\",\"g\");i=i.replace(s,\"\")}(!i||i==t)&&n.length>1&&(i=n[n.length-2]);var o=a[t+\"Path\"];return o==null?o=a.basePath:r==\"/\"&&(t=r=\"\"),o&&o.slice(-1)!=\"/\"&&(o+=\"/\"),o+t+r+i+this.get(\"suffix\")},t.setModuleUrl=function(e,t){return a.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(n,r){var i,o;Array.isArray(n)&&(o=n[0],n=n[1]);try{i=e(n)}catch(u){}if(i&&!t.$loading[n])return r&&r(i);t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(r);if(t.$loading[n].length>1)return;var a=function(){e([n],function(e){t._emit(\"load.module\",{name:n,module:e});var r=t.$loading[n];t.$loading[n]=null,r.forEach(function(t){t&&t(e)})})};if(!t.get(\"packaged\"))return a();s.loadScript(t.moduleUrl(n,o),a)},t.init=f}),ace.define(\"ace/mouse/mouse_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/mouse/default_handlers\",\"ace/mouse/default_gutter_handler\",\"ace/mouse/mouse_event\",\"ace/mouse/dragdrop_handler\",\"ace/config\"],function(e,t,n){\"use strict\";var r=e(\"../lib/event\"),i=e(\"../lib/useragent\"),s=e(\"./default_handlers\").DefaultHandlers,o=e(\"./default_gutter_handler\").GutterHandler,u=e(\"./mouse_event\").MouseEvent,a=e(\"./dragdrop_handler\").DragdropHandler,f=e(\"../config\"),l=function(e){var t=this;this.editor=e,new s(this),new o(this),new a(this);var n=function(t){var n=!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement());n&&window.focus(),e.focus()},u=e.renderer.getMouseEventTarget();r.addListener(u,\"click\",this.onMouseEvent.bind(this,\"click\")),r.addListener(u,\"mousemove\",this.onMouseMove.bind(this,\"mousemove\")),r.addMultiMouseDownListener([u,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,\"onMouseEvent\"),r.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,\"mousewheel\")),r.addTouchMoveListener(e.container,this.onTouchMove.bind(this,\"touchmove\"));var f=e.renderer.$gutter;r.addListener(f,\"mousedown\",this.onMouseEvent.bind(this,\"guttermousedown\")),r.addListener(f,\"click\",this.onMouseEvent.bind(this,\"gutterclick\")),r.addListener(f,\"dblclick\",this.onMouseEvent.bind(this,\"gutterdblclick\")),r.addListener(f,\"mousemove\",this.onMouseEvent.bind(this,\"guttermousemove\")),r.addListener(u,\"mousedown\",n),r.addListener(f,\"mousedown\",n),i.isIE&&e.renderer.scrollBarV&&(r.addListener(e.renderer.scrollBarV.element,\"mousedown\",n),r.addListener(e.renderer.scrollBarH.element,\"mousedown\",n)),e.on(\"mousemove\",function(n){if(t.state||t.$dragDelay||!t.$dragEnabled)return;var r=e.renderer.screenToTextCoordinates(n.x,n.y),i=e.session.selection.getRange(),s=e.renderer;!i.isEmpty()&&i.insideStart(r.row,r.column)?s.setCursorStyle(\"default\"):s.setCursorStyle(\"\")})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new u(t,this.editor))},this.onMouseMove=function(e,t){var n=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;if(!n||!n.length)return;this.editor._emit(e,new u(t,this.editor))},this.onMouseWheel=function(e,t){var n=new u(t,this.editor);n.speed=this.$scrollSpeed*2,n.wheelX=t.wheelX,n.wheelY=t.wheelY,this.editor._emit(e,n)},this.onTouchMove=function(e,t){var n=new u(t,this.editor);n.speed=1,n.wheelX=t.wheelX,n.wheelY=t.wheelY,this.editor._emit(e,n)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var n=this.editor.renderer;n.$keepTextAreaAtCursor&&(n.$keepTextAreaAtCursor=null);var s=this,o=function(e){if(!e)return;if(i.isWebKit&&!e.which&&s.releaseMouse)return s.releaseMouse();s.x=e.clientX,s.y=e.clientY,t&&t(e),s.mouseEvent=new u(e,s.editor),s.$mouseMoved=!0},a=function(e){clearInterval(l),f(),s[s.state+\"End\"]&&s[s.state+\"End\"](e),s.state=\"\",n.$keepTextAreaAtCursor==null&&(n.$keepTextAreaAtCursor=!0,n.$moveTextAreaToCursor()),s.isMousePressed=!1,s.$onCaptureMouseMove=s.releaseMouse=null,e&&s.onMouseEvent(\"mouseup\",e)},f=function(){s[s.state]&&s[s.state](),s.$mouseMoved=!1};if(i.isOldIE&&e.domEvent.type==\"dblclick\")return setTimeout(function(){a(e)});s.$onCaptureMouseMove=o,s.releaseMouse=r.capture(this.editor.container,o,a);var l=setInterval(f,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){if(t&&t.domEvent&&t.domEvent.type!=\"contextmenu\")return;this.editor.off(\"nativecontextmenu\",e),t&&t.domEvent&&r.stopEvent(t.domEvent)}.bind(this);setTimeout(e,10),this.editor.on(\"nativecontextmenu\",e)}}).call(l.prototype),f.defineOptions(l.prototype,\"mouseHandler\",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:i.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=l}),ace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e){e.on(\"click\",function(t){var n=t.getDocumentPosition(),r=e.session,i=r.getFoldAt(n.row,n.column,1);i&&(t.getAccelKey()?r.removeFold(i):r.expandFold(i),t.stop())}),e.on(\"gutterclick\",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n==\"foldWidgets\"){var r=t.getDocumentPosition().row,i=e.session;i.foldWidgets&&i.foldWidgets[r]&&e.session.onFoldWidgetClick(r,t),e.isFocused()||e.focus(),t.stop()}}),e.on(\"gutterdblclick\",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n==\"foldWidgets\"){var r=t.getDocumentPosition().row,i=e.session,s=i.getParentFoldRangeData(r,!0),o=s.range||s.firstRange;if(o){r=o.start.row;var u=i.getFoldAt(r,i.getLine(r).length,1);u?i.removeFold(u):(i.addFold(\"...\",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}})}t.FoldHandler=r}),ace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"],function(e,t,n){\"use strict\";var r=e(\"../lib/keys\"),i=e(\"../lib/event\"),s=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]==e)return;while(t[t.length-1]&&t[t.length-1]!=this.$defaultHandler)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)},this.addKeyboardHandler=function(e,t){if(!e)return;typeof e==\"function\"&&!e.handleKeyboard&&(e.handleKeyboard=e);var n=this.$handlers.indexOf(e);n!=-1&&this.$handlers.splice(n,1),t==undefined?this.$handlers.push(e):this.$handlers.splice(t,0,e),n==-1&&e.attach&&e.attach(this.$editor)},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return t==-1?!1:(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map(function(n){return n.getStatusText&&n.getStatusText(t,e)||\"\"}).filter(Boolean).join(\" \")},this.$callKeyboardHandlers=function(e,t,n,r){var s,o=!1,u=this.$editor.commands;for(var a=this.$handlers.length;a--;){s=this.$handlers[a].handleKeyboard(this.$data,e,t,n,r);if(!s||!s.command)continue;s.command==\"null\"?o=!0:o=u.exec(s.command,this.$editor,s.args,r),o&&r&&e!=-1&&s.passEvent!=1&&s.command.passEvent!=1&&i.stopEvent(r);if(o)break}return!o&&e==-1&&(s={command:\"insertstring\"},o=u.exec(\"insertstring\",this.$editor,t)),o&&this.$editor._signal&&this.$editor._signal(\"keyboardActivity\",s),o},this.onCommandKey=function(e,t,n){var i=r.keyCodeToString(n);this.$callKeyboardHandlers(t,i,n,e)},this.onTextInput=function(e){this.$callKeyboardHandlers(-1,e)}}).call(s.prototype),t.KeyBinding=s}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e==\"object\"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e==\"object\"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/lang\"),s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=function(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.lead=this.selectionLead=this.doc.createAnchor(0,0),this.anchor=this.selectionAnchor=this.doc.createAnchor(0,0);var t=this;this.lead.on(\"change\",function(e){t._emit(\"changeCursor\"),t.$isEmpty||t._emit(\"changeSelection\"),!t.$keepDesiredColumnOnChange&&e.old.column!=e.value.column&&(t.$desiredColumn=null)}),this.selectionAnchor.on(\"change\",function(){t.$isEmpty||t._emit(\"changeSelection\")})};(function(){r.implement(this,s),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return this.isEmpty()?!1:this.getRange().isMultiLine()},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(e,t){this.anchor.setPosition(e,t),this.$isEmpty&&(this.$isEmpty=!1,this._emit(\"changeSelection\"))},this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},this.shiftSelection=function(e){if(this.$isEmpty){this.moveCursorTo(this.lead.row,this.lead.column+e);return}var t=this.getSelectionAnchor(),n=this.getSelectionLead(),r=this.isBackwards();(!r||t.column!==0)&&this.setSelectionAnchor(t.row,t.column+e),(r||n.column!==0)&&this.$moveSelection(function(){this.moveCursorTo(n.row,n.column+e)})},this.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.isEmpty()?o.fromPoints(t,t):this.isBackwards()?o.fromPoints(t,e):o.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit(\"changeSelection\"))},this.selectAll=function(){var e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(typeof t==\"undefined\"){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var n=typeof e==\"number\"?e:this.lead.row,r,i=this.session.getFoldLine(n);return i?(n=i.start.row,r=i.end.row):r=n,t===!0?new o(n,0,r,this.session.getLine(r).length):new o(n,0,r+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,-1))this.moveCursorTo(t.start.row,t.start.column);else if(e.column===0)e.row>0&&this.moveCursorTo(e.row-1,this.doc.getLine(e.row-1).length);else{var n=this.session.getTabSize();this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(e.column-n,e.column).split(\" \").length-1==n?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,1))this.moveCursorTo(t.end.row,t.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row<this.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var n=this.session.getTabSize(),e=this.lead;this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(e.column,e.column+n).split(\" \").length-1==n?this.moveCursorBy(0,n):this.moveCursorBy(0,1)}},this.moveCursorLineStart=function(){var e=this.lead.row,t=this.lead.column,n=this.session.documentToScreenRow(e,t),r=this.session.screenToDocumentPosition(n,0),i=this.session.getDisplayLine(e,null,r.row,r.column),s=i.match(/^\\s*/);s[0].length!=t&&!this.session.$useEmacsStyleLineStart&&(r.column+=s[0].length),this.moveCursorToPosition(r)},this.moveCursorLineEnd=function(){var e=this.lead,t=this.session.getDocumentLastRowColumnPosition(e.row,e.column);if(this.lead.column==t.column){var n=this.session.getLine(t.row);if(t.column==n.length){var r=n.search(/\\s+$/);r>0&&(t.column=r)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i;this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var s=this.session.getFoldAt(e,t,1);if(s){this.moveCursorTo(s.end.row,s.end.column);return}if(i=this.session.nonTokenRe.exec(r))t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,r=n.substring(t);if(t>=n.length){this.moveCursorTo(e,n.length),this.moveCursorRight(),e<this.doc.getLength()-1&&this.moveCursorWordRight();return}if(i=this.session.tokenRe.exec(r))t+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(e,t)},this.moveCursorLongWordLeft=function(){var e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1)){this.moveCursorTo(n.start.row,n.start.column);return}var r=this.session.getFoldStringAt(e,t,-1);r==null&&(r=this.doc.getLine(e).substring(0,t));var s=i.stringReverse(r),o;this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;if(o=this.session.nonTokenRe.exec(s))t-=this.session.nonTokenRe.lastIndex,s=s.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0;if(t<=0){this.moveCursorTo(e,0),this.moveCursorLeft(),e>0&&this.moveCursorWordLeft();return}if(o=this.session.tokenRe.exec(s))t-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(e,t)},this.$shortWordEndIndex=function(e){var t,n=0,r,i=/\\s/,s=this.session.tokenRe;s.lastIndex=0;if(t=this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{while((r=e[n])&&i.test(r))n++;if(n<1){s.lastIndex=0;while((r=e[n])&&!s.test(r)){s.lastIndex=0,n++;if(i.test(r)){if(n>2){n--;break}while((r=e[n])&&i.test(r))n++;if(n>2)break}}}}return s.lastIndex=0,n},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var s=this.doc.getLength();do e++,r=this.doc.getLine(e);while(e<s&&/^\\s*$/.test(r));/^\\s+/.test(r)||(r=\"\"),t=0}var o=this.$shortWordEndIndex(r);this.moveCursorTo(e,t+o)},this.moveCursorShortWordLeft=function(){var e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1))return this.moveCursorTo(n.start.row,n.start.column);var r=this.session.getLine(e).substring(0,t);if(t===0){do e--,r=this.doc.getLine(e);while(e>0&&/^\\s*$/.test(r));t=r.length,/\\s+$/.test(r)||(r=\"\")}var s=i.stringReverse(r),o=this.$shortWordEndIndex(s);return this.moveCursorTo(e,t-o)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var n=this.session.documentToScreenPosition(this.lead.row,this.lead.column);t===0&&(this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var r=this.session.screenToDocumentPosition(n.row+e,n.column);e!==0&&t===0&&r.row===this.lead.row&&r.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[r.row]&&(r.row>0||e>0)&&r.row++,this.moveCursorTo(r.row,r.column+t,t===0)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,n){var r=this.session.getFoldAt(e,t,1);r&&(e=r.start.row,t=r.start.column),this.$keepDesiredColumnOnChange=!0,this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,n){var r=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(r.row,r.column,n)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return o.fromPoints(t,n)}catch(r){return o.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(e.start==undefined){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=o.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(u.prototype),t.Selection=u}),ace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/config\"],function(e,t,n){\"use strict\";var r=e(\"./config\"),i=2e3,s=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){var n=this.states[t],r=[],i=0,s=this.matchMappings[t]={defaultToken:\"text\"},o=\"g\",u=[];for(var a=0;a<n.length;a++){var f=n[a];f.defaultToken&&(s.defaultToken=f.defaultToken),f.caseInsensitive&&(o=\"gi\");if(f.regex==null)continue;f.regex instanceof RegExp&&(f.regex=f.regex.toString().slice(1,-1));var l=f.regex,c=(new RegExp(\"(?:(\"+l+\")|(.))\")).exec(\"a\").length-2;Array.isArray(f.token)?f.token.length==1||c==1?f.token=f.token[0]:c-1!=f.token.length?(this.reportError(\"number of classes and regexp groups doesn't match\",{rule:f,groupCount:c-1}),f.token=f.token[0]):(f.tokenArray=f.token,f.token=null,f.onMatch=this.$arrayTokens):typeof f.token==\"function\"&&!f.onMatch&&(c>1?f.onMatch=this.$applyToken:f.onMatch=f.token),c>1&&(/\\\\\\d/.test(f.regex)?l=f.regex.replace(/\\\\([0-9]+)/g,function(e,t){return\"\\\\\"+(parseInt(t,10)+i+1)}):(c=1,l=this.removeCapturingGroups(f.regex)),!f.splitRegex&&typeof f.token!=\"string\"&&u.push(f)),s[i]=a,i+=c,r.push(l),f.onMatch||(f.onMatch=null)}r.length||(s[0]=0,r.push(\"$\")),u.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,o)},this),this.regExps[t]=new RegExp(\"(\"+r.join(\")|(\")+\")|($)\",o)}};(function(){this.$setMaxTokenCount=function(e){i=e|0},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if(typeof n==\"string\")return[{type:n,value:e}];var r=[];for(var i=0,s=n.length;i<s;i++)t[i]&&(r[r.length]={type:n[i],value:t[i]});return r},this.$arrayTokens=function(e){if(!e)return[];var t=this.splitRegex.exec(e);if(!t)return\"text\";var n=[],r=this.tokenArray;for(var i=0,s=r.length;i<s;i++)t[i+1]&&(n[n.length]={type:r[i],value:t[i+1]});return n},this.removeCapturingGroups=function(e){var t=e.replace(/\\[(?:\\\\.|[^\\]])*?\\]|\\\\.|\\(\\?[:=!]|(\\()/g,function(e,t){return t?\"(?:\":e});return t},this.createSplitterRegexp=function(e,t){if(e.indexOf(\"(?=\")!=-1){var n=0,r=!1,i={};e.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g,function(e,t,s,o,u,a){return r?r=u!=\"]\":u?r=!0:o?(n==i.stack&&(i.end=a+1,i.stack=-1),n--):s&&(n++,s.length!=1&&(i.stack=n,i.start=a)),e}),i.end!=null&&/^\\)*$/.test(e.substr(i.end))&&(e=e.substring(0,i.start)+e.substr(i.end))}return e.charAt(0)!=\"^\"&&(e=\"^\"+e),e.charAt(e.length-1)!=\"$\"&&(e+=\"$\"),new RegExp(e,(t||\"\").replace(\"g\",\"\"))},this.getLineTokens=function(e,t){if(t&&typeof t!=\"string\"){var n=t.slice(0);t=n[0],t===\"#tmp\"&&(n.shift(),t=n.shift())}else var n=[];var r=t||\"start\",s=this.states[r];s||(r=\"start\",s=this.states[r]);var o=this.matchMappings[r],u=this.regExps[r];u.lastIndex=0;var a,f=[],l=0,c=0,h={type:null,value:\"\"};while(a=u.exec(e)){var p=o.defaultToken,d=null,v=a[0],m=u.lastIndex;if(m-v.length>l){var g=e.substring(l,m-v.length);h.type==p?h.value+=g:(h.type&&f.push(h),h={type:p,value:g})}for(var y=0;y<a.length-2;y++){if(a[y+1]===undefined)continue;d=s[o[y]],d.onMatch?p=d.onMatch(v,r,n):p=d.token,d.next&&(typeof d.next==\"string\"?r=d.next:r=d.next(r,n),s=this.states[r],s||(this.reportError(\"state doesn't exist\",r),r=\"start\",s=this.states[r]),o=this.matchMappings[r],l=m,u=this.regExps[r],u.lastIndex=m);break}if(v)if(typeof p==\"string\")!!d&&d.merge===!1||h.type!==p?(h.type&&f.push(h),h={type:p,value:v}):h.value+=v;else if(p){h.type&&f.push(h),h={type:null,value:\"\"};for(var y=0;y<p.length;y++)f.push(p[y])}if(l==e.length)break;l=m;if(c++>i){c>2*e.length&&this.reportError(\"infinite loop with in ace tokenizer\",{startState:t,line:e});while(l<e.length)h.type&&f.push(h),h={value:e.substring(l,l+=2e3),type:\"overflow\"};r=\"start\",n=[];break}}return h.type&&f.push(h),n.length>1&&n[0]!==r&&n.unshift(\"#tmp\",r),{tokens:f,state:n.length?n:r}},this.reportError=r.reportError}).call(s.prototype),t.Tokenizer=s}),ace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../lib/lang\"),i=function(){this.$rules={start:[{token:\"empty_line\",regex:\"^$\"},{defaultToken:\"text\"}]}};(function(){this.addRules=function(e,t){if(!t){for(var n in e)this.$rules[n]=e[n];return}for(var n in e){var r=e[n];for(var i=0;i<r.length;i++){var s=r[i];if(s.next||s.onMatch)typeof s.next==\"string\"&&s.next.indexOf(t)!==0&&(s.next=t+s.next),s.nextState&&s.nextState.indexOf(t)!==0&&(s.nextState=t+s.nextState)}this.$rules[t+n]=r}},this.getRules=function(){return this.$rules},this.embedRules=function(e,t,n,i,s){var o=typeof e==\"function\"?(new e).getRules():e;if(i)for(var u=0;u<i.length;u++)i[u]=t+i[u];else{i=[];for(var a in o)i.push(t+a)}this.addRules(o,t);if(n){var f=Array.prototype[s?\"push\":\"unshift\"];for(var u=0;u<i.length;u++)f.apply(this.$rules[i[u]],r.deepCopy(n))}this.$embeds||(this.$embeds=[]),this.$embeds.push(t)},this.getEmbeds=function(){return this.$embeds};var e=function(e,t){return(e!=\"start\"||t.length)&&t.unshift(this.nextState,e),this.nextState},t=function(e,t){return t.shift(),t.shift()||\"start\"};this.normalizeRules=function(){function i(s){var o=r[s];o.processed=!0;for(var u=0;u<o.length;u++){var a=o[u],f=null;Array.isArray(a)&&(f=a,a={}),!a.regex&&a.start&&(a.regex=a.start,a.next||(a.next=[]),a.next.push({defaultToken:a.token},{token:a.token+\".end\",regex:a.end||a.start,next:\"pop\"}),a.token=a.token+\".start\",a.push=!0);var l=a.next||a.push;if(l&&Array.isArray(l)){var c=a.stateName;c||(c=a.token,typeof c!=\"string\"&&(c=c[0]||\"\"),r[c]&&(c+=n++)),r[c]=l,a.next=c,i(c)}else l==\"pop\"&&(a.next=t);a.push&&(a.nextState=a.next||a.push,a.next=e,delete a.push);if(a.rules)for(var h in a.rules)r[h]?r[h].push&&r[h].push.apply(r[h],a.rules[h]):r[h]=a.rules[h];var p=typeof a==\"string\"?a:typeof a.include==\"string\"?a.include:\"\";p&&(f=r[p]);if(f){var d=[u,1].concat(f);a.noEscape&&(d=d.filter(function(e){return!e.next})),o.splice.apply(o,d),u--}a.keywordMap&&(a.token=this.createKeywordMapper(a.keywordMap,a.defaultToken||\"text\",a.caseInsensitive),delete a.defaultToken)}}var n=0,r=this.$rules;Object.keys(r).forEach(i,this)},this.createKeywordMapper=function(e,t,n,r){var i=Object.create(null);return Object.keys(e).forEach(function(t){var s=e[t];n&&(s=s.toLowerCase());var o=s.split(r||\"|\");for(var u=o.length;u--;)i[o[u]]=t}),Object.getPrototypeOf(i)&&(i.__proto__=null),this.$keywordList=Object.keys(i),e=null,n?function(e){return i[e.toLowerCase()]||t}:function(e){return i[e]||t}},this.getKeywords=function(){return this.$keywords}}).call(i.prototype),t.TextHighlightRules=i}),ace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(){this.$behaviours={}};(function(){this.add=function(e,t,n){switch(undefined){case this.$behaviours:this.$behaviours={};case this.$behaviours[e]:this.$behaviours[e]={}}this.$behaviours[e][t]=n},this.addBehaviours=function(e){for(var t in e)for(var n in e[t])this.add(t,n,e[t][n])},this.remove=function(e){this.$behaviours&&this.$behaviours[e]&&delete this.$behaviours[e]},this.inherit=function(e,t){if(typeof e==\"function\")var n=(new e).getBehaviours(t);else var n=e.getBehaviours(t);this.addBehaviours(n)},this.getBehaviours=function(e){if(!e)return this.$behaviours;var t={};for(var n=0;n<e.length;n++)this.$behaviours[e[n]]&&(t[e[n]]=this.$behaviours[e[n]]);return t}}).call(r.prototype),t.Behaviour=r}),ace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(e,t,n){this.$session=e,this.$row=t,this.$rowTokens=e.getTokens(t);var r=e.getTokenAt(t,n);this.$tokenIndex=r?r.index:-1};(function(){this.stepBackward=function(){this.$tokenIndex-=1;while(this.$tokenIndex<0){this.$row-=1;if(this.$row<0)return this.$row=0,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]},this.stepForward=function(){this.$tokenIndex+=1;var e;while(this.$tokenIndex>=this.$rowTokens.length){this.$row+=1,e||(e=this.$session.getLength());if(this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(n!==undefined)return n;n=0;while(t>0)t-=1,n+=e[t].value.length;return n},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}}}).call(r.prototype),t.TokenIterator=r}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){if(this.lineCommentStart&&this.lineCommentStart.indexOf(i)!=-1)return;c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g,y&&/string\\.end/.test(v.type)&&(y=!1);else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e){var n=/\\w{4}/g;for(var r in e)t.packages[r]=e[r].replace(n,\"\\\\u$&\")}t.packages={},r({L:\"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",Ll:\"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A\",Lu:\"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A\",Lt:\"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC\",Lm:\"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F\",Lo:\"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",M:\"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26\",Mn:\"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26\",Mc:\"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC\",Me:\"0488048906DE20DD-20E020E2-20E4A670-A672\",N:\"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",Nd:\"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",Nl:\"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF\",No:\"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835\",P:\"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65\",Pd:\"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D\",Ps:\"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62\",Pe:\"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63\",Pi:\"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20\",Pf:\"00BB2019201D203A2E032E052E0A2E0D2E1D2E21\",Pc:\"005F203F20402054FE33FE34FE4D-FE4FFF3F\",Po:\"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65\",S:\"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD\",Sm:\"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC\",Sc:\"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6\",Sk:\"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3\",So:\"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD\",Z:\"002000A01680180E2000-200A20282029202F205F3000\",Zs:\"002000A01680180E2000-200A202F205F3000\",Zl:\"2028\",Zp:\"2029\",C:\"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF\",Cc:\"0000-001F007F-009F\",Cf:\"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB\",Co:\"E000-F8FF\",Cs:\"D800-DFFF\",Cn:\"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF\"})}),ace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../tokenizer\").Tokenizer,i=e(\"./text_highlight_rules\").TextHighlightRules,s=e(\"./behaviour/cstyle\").CstyleBehaviour,o=e(\"../unicode\"),u=e(\"../lib/lang\"),a=e(\"../token_iterator\").TokenIterator,f=e(\"../range\").Range,l=function(){this.HighlightRules=i};(function(){this.$defaultBehaviour=new s,this.tokenRe=new RegExp(\"^[\"+o.packages.L+o.packages.Mn+o.packages.Mc+o.packages.Nd+o.packages.Pc+\"\\\\$_]+\",\"g\"),this.nonTokenRe=new RegExp(\"^(?:[^\"+o.packages.L+o.packages.Mn+o.packages.Mc+o.packages.Nd+o.packages.Pc+\"\\\\$_]|\\\\s])+\",\"g\"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new r(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart=\"\",this.blockComment=\"\",this.toggleCommentLines=function(e,t,n,r){function w(e){for(var t=n;t<=r;t++)e(i.getLine(t),t)}var i=t.doc,s=!0,o=!0,a=Infinity,f=t.getTabSize(),l=!1;if(!this.lineCommentStart){if(!this.blockComment)return!1;var c=this.blockComment.start,h=this.blockComment.end,p=new RegExp(\"^(\\\\s*)(?:\"+u.escapeRegExp(c)+\")\"),d=new RegExp(\"(?:\"+u.escapeRegExp(h)+\")\\\\s*$\"),v=function(e,t){if(g(e,t))return;if(!s||/\\S/.test(e))i.insertInLine({row:t,column:e.length},h),i.insertInLine({row:t,column:a},c)},m=function(e,t){var n;(n=e.match(d))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(p))&&i.removeInLine(t,n[1].length,n[0].length)},g=function(e,n){if(p.test(e))return!0;var r=t.getTokens(n);for(var i=0;i<r.length;i++)if(r[i].type===\"comment\")return!0}}else{if(Array.isArray(this.lineCommentStart))var p=this.lineCommentStart.map(u.escapeRegExp).join(\"|\"),c=this.lineCommentStart[0];else var p=u.escapeRegExp(this.lineCommentStart),c=this.lineCommentStart;p=new RegExp(\"^(\\\\s*)(?:\"+p+\") ?\"),l=t.getUseSoftTabs();var m=function(e,t){var n=e.match(p);if(!n)return;var r=n[1].length,s=n[0].length;!b(e,r,s)&&n[0][s-1]==\" \"&&s--,i.removeInLine(t,r,s)},y=c+\" \",v=function(e,t){if(!s||/\\S/.test(e))b(e,a,a)?i.insertInLine({row:t,column:a},y):i.insertInLine({row:t,column:a},c)},g=function(e,t){return p.test(e)},b=function(e,t,n){var r=0;while(t--&&e.charAt(t)==\" \")r++;if(r%f!=0)return!1;var r=0;while(e.charAt(n++)==\" \")r++;return f>2?r%f!=f-1:r%f==0}}var E=Infinity;w(function(e,t){var n=e.search(/\\S/);n!==-1?(n<a&&(a=n),o&&!g(e,t)&&(o=!1)):E>e.length&&(E=e.length)}),a==Infinity&&(a=E,s=!1,o=!1),l&&a%f!=0&&(a=Math.floor(a/f)*f),w(o?m:v)},this.toggleBlockComment=function(e,t,n,r){var i=this.blockComment;if(!i)return;!i.start&&i[0]&&(i=i[0]);var s=new a(t,r.row,r.column),o=s.getCurrentToken(),u=t.selection,l=t.selection.toOrientedRange(),c,h;if(o&&/comment/.test(o.type)){var p,d;while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.start);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;p=new f(m,g,m,g+i.start.length);break}o=s.stepBackward()}var s=new a(t,r.row,r.column),o=s.getCurrentToken();while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.end);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;d=new f(m,g,m,g+i.end.length);break}o=s.stepForward()}d&&t.remove(d),p&&(t.remove(p),c=p.start.row,h=-i.start.length)}else h=i.start.length,c=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);l.start.row==c&&(l.start.column+=h),l.end.row==c&&(l.end.column+=h),t.selection.fromOrientedRange(l)},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);var n=[\"toggleBlockComment\",\"toggleCommentLines\",\"getNextLineIndent\",\"checkOutdent\",\"autoOutdent\",\"transformAction\",\"getCompletions\"];for(var t=0;t<n.length;t++)(function(e){var r=n[t],i=e[r];e[n[t]]=function(){return this.$delegator(r,arguments,i)}})(this)},this.$delegator=function(e,t,n){var r=t[0];typeof r!=\"string\"&&(r=r[0]);for(var i=0;i<this.$embeds.length;i++){if(!this.$modes[this.$embeds[i]])continue;var s=r.split(this.$embeds[i]);if(!s[0]&&s[1]){t[0]=s[1];var o=this.$modes[this.$embeds[i]];return o[e].apply(o,t)}}var u=n.apply(this,t);return n?u:undefined},this.transformAction=function(e,t,n,r,i){if(this.$behaviour){var s=this.$behaviour.getBehaviours();for(var o in s)if(s[o][t]){var u=s[o][t].apply(this,arguments);if(u)return u}}},this.getKeywords=function(e){if(!this.completionKeywords){var t=this.$tokenizer.rules,n=[];for(var r in t){var i=t[r];for(var s=0,o=i.length;s<o;s++)if(typeof i[s].token==\"string\")/keyword|support|storage/.test(i[s].token)&&n.push(i[s].regex);else if(typeof i[s].token==\"object\")for(var u=0,a=i[s].token.length;u<a;u++)if(/keyword|support|storage/.test(i[s].token[u])){var r=i[s].regex.match(/\\(.+?\\)/g)[u];n.push(r.substr(1,r.length-2))}}this.completionKeywords=n}return e?n.concat(this.$keywordList||[]):this.$keywordList},this.$createKeywordList=function(){return this.$highlightRules||this.getTokenizer(),this.$keywordList=this.$highlightRules.$keywordList||[]},this.getCompletions=function(e,t,n,r){var i=this.$keywordList||this.$createKeywordList();return i.map(function(e){return{name:e,value:e,score:0,meta:\"keyword\"}})},this.$id=\"ace/mode/text\"}).call(l.prototype),t.Mode=l}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e,t){throw console.log(\"Invalid Delta:\",e),\"Invalid Delta: \"+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!=\"insert\"&&t.action!=\"remove\"&&r(t,\"delta.action must be 'insert' or 'remove'\"),t.lines instanceof Array||r(t,\"delta.lines must be an Array\"),(!t.start||!t.end)&&r(t,\"delta.start/end must be an present\");var n=t.start;i(e,t.start)||r(t,\"delta.start must be contained in document\");var s=t.end;t.action==\"remove\"&&!i(e,s)&&r(t,\"delta.end must contained in document for 'remove' actions\");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,\"delta.range must match delta lines\")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||\"\";switch(t.action){case\"insert\":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case\"remove\":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n==\"undefined\"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action==\"insert\",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal(\"change\",{old:i,value:r})},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./apply_delta\").applyDelta,s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=function(e){this.$lines=[\"\"],e.length===0?this.$lines=[\"\"]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},\"aaa\".split(/a/).length===0?this.$split=function(e){return e.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:this.$split=function(e){return e.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=t?t[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal(\"changeNewLineMode\")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==\"\\r\\n\"||e==\"\\r\"||e==\"\\n\"},this.getLine=function(e){return this.$lines[e]||\"\"},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||\"\").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(e,[\"\",\"\"])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:\"insert\",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([\"\"]),n=0):(t=[\"\"].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:\"insert\",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:\"remove\",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:\"remove\",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:\"remove\",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action==\"insert\";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal(\"change\",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(\"\"),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action==\"insert\"?\"remove\":\"insert\",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),ace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=function(e,t){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=e;var n=this;this.$worker=function(){if(!n.running)return;var e=new Date,t=n.currentLine,r=-1,i=n.doc,s=t;while(n.lines[t])t++;var o=i.getLength(),u=0;n.running=!1;while(t<o){n.$tokenizeRow(t),r=t;do t++;while(n.lines[t]);u++;if(u%5===0&&new Date-e>20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,s<=r&&n.fireUpdateEvent(s,r)}};(function(){r.implement(this,i),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal(\"update\",{data:n})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.lines[t]=null;else if(e.action==\"remove\")this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.lines.splice.apply(this.lines,r),this.states.splice.apply(this.states,r)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||\"start\"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],r=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+\"\"!=r.state+\"\"?(this.states[e]=r.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=r.tokens}}).call(s.prototype),t.BackgroundTokenizer=s}),ace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"./lib/lang\"),i=e(\"./lib/oop\"),s=e(\"./range\").Range,o=function(e,t,n){this.setRegexp(e),this.clazz=t,this.type=n||\"text\"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){if(this.regExp+\"\"==e+\"\")return;this.regExp=e,this.cache=[]},this.update=function(e,t,n,i){if(!this.regExp)return;var o=i.firstRow,u=i.lastRow;for(var a=o;a<=u;a++){var f=this.cache[a];f==null&&(f=r.getMatchOffsets(n.getLine(a),this.regExp),f.length>this.MAX_RANGES&&(f=f.slice(0,this.MAX_RANGES)),f=f.map(function(e){return new s(a,e.offset,a,e.offset+e.length)}),this.cache[a]=f.length?f:\"\");for(var l=f.length;l--;)t.drawSingleLineMarker(e,f[l].toScreenRange(n),this.clazz,i)}}}).call(o.prototype),t.SearchHighlight=o}),ace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";function i(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var n=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,n.end.row,n.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var r=e(\"../range\").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.row<this.startRow||e.endRow>this.endRow)throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,n){var r=0,i=this.folds,s,o,u,a=!0;t==null&&(t=this.end.row,n=this.end.column);for(var f=0;f<i.length;f++){s=i[f],o=s.range.compareStart(t,n);if(o==-1){e(null,t,n,r,a);return}u=e(null,s.start.row,s.start.column,r,a),u=!u&&e(s.placeholder,s.start.row,s.start.column,r);if(u||o===0)return;a=!s.sameRow,r=s.end.column}e(null,t,n,r,a)},this.getNextFoldTo=function(e,t){var n,r;for(var i=0;i<this.folds.length;i++){n=this.folds[i],r=n.range.compareEnd(e,t);if(r==-1)return{fold:n,kind:\"after\"};if(r===0)return{fold:n,kind:\"inside\"}}return null},this.addRemoveChars=function(e,t,n){var r=this.getNextFoldTo(e,t),i,s;if(r){i=r.fold;if(r.kind==\"inside\"&&i.start.column!=t&&i.start.row!=e)window.console&&window.console.log(e,t,i);else if(i.start.row==e){s=this.folds;var o=s.indexOf(i);o===0&&(this.start.column+=n);for(o;o<s.length;o++){i=s[o],i.start.column+=n;if(!i.sameRow)return;i.end.column+=n}this.end.column+=n}}},this.split=function(e,t){var n=this.getNextFoldTo(e,t);if(!n||n.kind==\"inside\")return null;var r=n.fold,s=this.folds,o=this.foldData,u=s.indexOf(r),a=s[u-1];this.end.row=a.end.row,this.end.column=a.end.column,s=s.splice(u,s.length-u);var f=new i(o,s);return o.splice(o.indexOf(this)+1,0,f),f},this.merge=function(e){var t=e.folds;for(var n=0;n<t.length;n++)this.addFold(t[n]);var r=this.foldData;r.splice(r.indexOf(e),1)},this.toString=function(){var e=[this.range.toString()+\": [\"];return this.folds.forEach(function(t){e.push(\"  \"+t.toString())}),e.push(\"]\"),e.join(\"\\n\")},this.idxToPosition=function(e){var t=0;for(var n=0;n<this.folds.length;n++){var r=this.folds[n];e-=r.start.column-t;if(e<0)return{row:r.start.row,column:r.start.column+e};e-=r.placeholder.length;if(e<0)return r.start;t=r.end.column}return{row:this.end.row,column:this.end.column+e}}}).call(i.prototype),t.FoldLine=i}),ace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"./range\").Range,i=r.comparePoints,s=function(){this.ranges=[]};(function(){this.comparePoints=i,this.pointIndex=function(e,t,n){var r=this.ranges;for(var s=n||0;s<r.length;s++){var o=r[s],u=i(e,o.end);if(u>0)continue;var a=i(e,o.start);return u===0?t&&a!==0?-s-2:s:a>0||a===0&&!t?s:-s-1}return-s-1},this.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var r=this.pointIndex(e.end,t,n);return r<0?r=-r-1:r++,this.ranges.splice(n,r-n,e)},this.addList=function(e){var t=[];for(var n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return i(e.start,t.start)});var n=t[0],r;for(var s=1;s<t.length;s++){r=n,n=t[s];var o=i(r.end,n.start);if(o<0)continue;if(o==0&&!r.isEmpty()&&!n.isEmpty())continue;i(r.end,n.end)<0&&(r.end.row=n.end.row,r.end.column=n.end.column),t.splice(s,1),e.push(n),n=r,s--}return this.ranges=t,e},this.contains=function(e,t){return this.pointIndex({row:e,column:t})>=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row<e)return[];var r=this.pointIndex({row:e,column:0});r<0&&(r=-r-1);var i=this.pointIndex({row:t,column:0},r);i<0&&(i=-i-1);var s=[];for(var o=r;o<i;o++)s.push(n[o]);return s},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(e){this.session&&this.detach(),this.session=e,this.onChange=this.$onChange.bind(this),this.session.on(\"change\",this.onChange)},this.detach=function(){if(!this.session)return;this.session.removeListener(\"change\",this.onChange),this.session=null},this.$onChange=function(e){if(e.action==\"insert\")var t=e.start,n=e.end;else var n=e.start,t=e.end;var r=t.row,i=n.row,s=i-r,o=-t.column+n.column,u=this.ranges;for(var a=0,f=u.length;a<f;a++){var l=u[a];if(l.end.row<r)continue;if(l.start.row>r)break;l.start.row==r&&l.start.column>=t.column&&(l.start.column!=t.column||!this.$insertRight)&&(l.start.column+=o,l.start.row+=s);if(l.end.row==r&&l.end.column>=t.column){if(l.end.column==t.column&&this.$insertRight)continue;l.end.column==t.column&&o>0&&a<f-1&&l.end.column>l.start.column&&l.end.column==u[a+1].start.column&&(l.end.column-=o),l.end.column+=o,l.end.row+=s}}if(s!=0&&a<f)for(;a<f;a++){var l=u[a];l.start.row+=s,l.end.row+=s}}}).call(s.prototype),t.RangeList=s}),ace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/range_list\",\"ace/lib/oop\"],function(e,t,n){\"use strict\";function u(e,t){e.row-=t.row,e.row==0&&(e.column-=t.column)}function a(e,t){u(e.start,t),u(e.end,t)}function f(e,t){e.row==0&&(e.column+=t.column),e.row+=t.row}function l(e,t){f(e.start,t),f(e.end,t)}var r=e(\"../range\").Range,i=e(\"../range_list\").RangeList,s=e(\"../lib/oop\"),o=t.Fold=function(e,t){this.foldLine=null,this.placeholder=t,this.range=e,this.start=e.start,this.end=e.end,this.sameRow=e.start.row==e.end.row,this.subFolds=this.ranges=[]};s.inherits(o,i),function(){this.toString=function(){return'\"'+this.placeholder+'\" '+this.range.toString()},this.setFoldLine=function(e){this.foldLine=e,this.subFolds.forEach(function(t){t.setFoldLine(e)})},this.clone=function(){var e=this.range.clone(),t=new o(e,this.placeholder);return this.subFolds.forEach(function(e){t.subFolds.push(e.clone())}),t.collapseChildren=this.collapseChildren,t},this.addSubFold=function(e){if(this.range.isEqual(e))return;if(!this.range.containsRange(e))throw new Error(\"A fold can't intersect already existing fold\"+e.range+this.range);a(e,this.start);var t=e.start.row,n=e.start.column;for(var r=0,i=-1;r<this.subFolds.length;r++){i=this.subFolds[r].range.compare(t,n);if(i!=1)break}var s=this.subFolds[r];if(i==0)return s.addSubFold(e);var t=e.range.end.row,n=e.range.end.column;for(var o=r,i=-1;o<this.subFolds.length;o++){i=this.subFolds[o].range.compare(t,n);if(i!=1)break}var u=this.subFolds[o];if(i==0)throw new Error(\"A fold can't intersect already existing fold\"+e.range+this.range);var f=this.subFolds.splice(r,o-r,e);return e.setFoldLine(this.foldLine),e},this.restoreRange=function(e){return l(e,this.start)}}.call(o.prototype)}),ace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function u(){this.getFoldAt=function(e,t,n){var r=this.getFoldLine(e);if(!r)return null;var i=r.folds;for(var s=0;s<i.length;s++){var o=i[s];if(o.range.contains(e,t)){if(n==1&&o.range.isEnd(e,t))continue;if(n==-1&&o.range.isStart(e,t))continue;return o}}},this.getFoldsInRange=function(e){var t=e.start,n=e.end,r=this.$foldData,i=[];t.column+=1,n.column-=1;for(var s=0;s<r.length;s++){var o=r[s].range.compareRange(e);if(o==2)continue;if(o==-2)break;var u=r[s].folds;for(var a=0;a<u.length;a++){var f=u[a];o=f.range.compareRange(e);if(o==-2)break;if(o==2)continue;if(o==42)break;i.push(f)}}return t.column-=1,n.column+=1,i},this.getFoldsInRangeList=function(e){if(Array.isArray(e)){var t=[];e.forEach(function(e){t=t.concat(this.getFoldsInRange(e))},this)}else var t=this.getFoldsInRange(e);return t},this.getAllFolds=function(){var e=[],t=this.$foldData;for(var n=0;n<t.length;n++)for(var r=0;r<t[n].folds.length;r++)e.push(t[n].folds[r]);return e},this.getFoldStringAt=function(e,t,n,r){r=r||this.getFoldLine(e);if(!r)return null;var i={end:{column:0}},s,o;for(var u=0;u<r.folds.length;u++){o=r.folds[u];var a=o.range.compareEnd(e,t);if(a==-1){s=this.getLine(o.start.row).substring(i.end.column,o.start.column);break}if(a===0)return null;i=o}return s||(s=this.getLine(o.start.row).substring(i.end.column)),n==-1?s.substring(0,t-i.end.column):n==1?s.substring(t-i.end.column):s},this.getFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r<n.length;r++){var i=n[r];if(i.start.row<=e&&i.end.row>=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r<n.length;r++){var i=n[r];if(i.end.row>=e)return i}return null},this.getFoldedRowCount=function(e,t){var n=this.$foldData,r=t-e+1;for(var i=0;i<n.length;i++){var s=n[i],o=s.end.row,u=s.start.row;if(o>=t){u<t&&(u>=e?r-=t-u:r=0);break}o>=e&&(u>=e?r-=o-u:r-=o-e+1)}return r},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var n=this.$foldData,r=!1,o;e instanceof s?o=e:(o=new s(t,e),o.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(o.range);var u=o.start.row,a=o.start.column,f=o.end.row,l=o.end.column;if(u<f||u==f&&a<=l-2){var c=this.getFoldAt(u,a,1),h=this.getFoldAt(f,l,-1);if(c&&h==c)return c.addSubFold(o);c&&!c.range.isStart(u,a)&&this.removeFold(c),h&&!h.range.isEnd(f,l)&&this.removeFold(h);var p=this.getFoldsInRange(o.range);p.length>0&&(this.removeFolds(p),p.forEach(function(e){o.addSubFold(e)}));for(var d=0;d<n.length;d++){var v=n[d];if(f==v.start.row){v.addFold(o),r=!0;break}if(u==v.end.row){v.addFold(o),r=!0;if(!o.sameRow){var m=n[d+1];if(m&&m.start.row==f){v.merge(m);break}}break}if(f<=v.start.row)break}return r||(v=this.$addFoldLine(new i(this.$foldData,o))),this.$useWrapMode?this.$updateWrapData(v.start.row,v.start.row):this.$updateRowLengthCache(v.start.row,v.start.row),this.$modified=!0,this._signal(\"changeFold\",{data:o,action:\"add\"}),o}throw new Error(\"The range has to be at least 2 characters width\")},this.addFolds=function(e){e.forEach(function(e){this.addFold(e)},this)},this.removeFold=function(e){var t=e.foldLine,n=t.start.row,r=t.end.row,i=this.$foldData,s=t.folds;if(s.length==1)i.splice(i.indexOf(t),1);else if(t.range.isEnd(e.end.row,e.end.column))s.pop(),t.end.row=s[s.length-1].end.row,t.end.column=s[s.length-1].end.column;else if(t.range.isStart(e.start.row,e.start.column))s.shift(),t.start.row=s[0].start.row,t.start.column=s[0].start.column;else if(e.sameRow)s.splice(s.indexOf(e),1);else{var o=t.split(e.start.row,e.start.column);s=o.folds,s.shift(),o.start.row=s[0].start.row,o.start.column=s[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(n,r):this.$updateRowLengthCache(n,r)),this.$modified=!0,this._signal(\"changeFold\",{data:e,action:\"remove\"})},this.removeFolds=function(e){var t=[];for(var n=0;n<e.length;n++)t.push(e[n]);t.forEach(function(e){this.removeFold(e)},this),this.$modified=!0},this.expandFold=function(e){this.removeFold(e),e.subFolds.forEach(function(t){e.restoreRange(t),this.addFold(t)},this),e.collapseChildren>0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var n,i;e==null?(n=new r(0,0,this.getLength(),0),t=!0):typeof e==\"number\"?n=new r(e,0,e,this.getLine(e).length):\"row\"in e?n=r.fromPoints(e,e):n=e,i=this.getFoldsInRangeList(n);if(t)this.removeFolds(i);else{var s=i;while(s.length)this.expandFolds(s),s=this.getFoldsInRangeList(n)}if(i.length)return i},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,r,i){r==null&&(r=e.start.row),i==null&&(i=0),t==null&&(t=e.end.row),n==null&&(n=this.getLine(t).length);var s=this.doc,o=\"\";return e.walk(function(e,t,n,u){if(t<r)return;if(t==r){if(n<i)return;u=Math.max(i,u)}e!=null?o+=e:o+=s.getLine(t).substring(u,n)},t,n),o},this.getDisplayLine=function(e,t,n,r){var i=this.getFoldLine(e);if(!i){var s;return s=this.doc.getLine(e),s.substring(r||0,t||s.length)}return this.getFoldDisplayLine(i,e,t,n,r)},this.$cloneFoldData=function(){var e=[];return e=this.$foldData.map(function(t){var n=t.folds.map(function(e){return e.clone()});return new i(e,n)}),e},this.toggleFold=function(e){var t=this.selection,n=t.getRange(),r,i;if(n.isEmpty()){var s=n.start;r=this.getFoldAt(s.row,s.column);if(r){this.expandFold(r);return}(i=this.findMatchingBracket(s))?n.comparePoint(i)==1?n.end=i:(n.start=i,n.start.column++,n.end.column--):(i=this.findMatchingBracket({row:s.row,column:s.column+1}))?(n.comparePoint(i)==1?n.end=i:n.start=i,n.start.column++):n=this.getCommentFoldRange(s.row,s.column)||n}else{var o=this.getFoldsInRange(n);if(e&&o.length){this.expandFolds(o);return}o.length==1&&(r=o[0])}r||(r=this.getFoldAt(n.start.row,n.start.column));if(r&&r.range.toString()==n.toString()){this.expandFold(r);return}var u=\"...\";if(!n.isMultiLine()){u=this.getTextRange(n);if(u.length<4)return;u=u.trim().substring(0,2)+\"..\"}this.addFold(u,n)},this.getCommentFoldRange=function(e,t,n){var i=new o(this,e,t),s=i.getCurrentToken();if(s&&/^comment|string/.test(s.type)){var u=new r,a=new RegExp(s.type.replace(/\\..*/,\"\\\\.\"));if(n!=1){do s=i.stepBackward();while(s&&a.test(s.type));i.stepForward()}u.start.row=i.getCurrentTokenRow(),u.start.column=i.getCurrentTokenColumn()+2,i=new o(this,e,t);if(n!=-1){do s=i.stepForward();while(s&&a.test(s.type));s=i.stepBackward()}else s=i.getCurrentToken();return u.end.row=i.getCurrentTokenRow(),u.end.column=i.getCurrentTokenColumn()+s.value.length-2,u}},this.foldAll=function(e,t,n){n==undefined&&(n=1e5);var r=this.foldWidgets;if(!r)return;t=t||this.getLength(),e=e||0;for(var i=e;i<t;i++){r[i]==null&&(r[i]=this.getFoldWidget(i));if(r[i]!=\"start\")continue;var s=this.getFoldWidgetRange(i);if(s&&s.isMultiLine()&&s.end.row<=t&&s.start.row>=e){i=s.end.row;try{var o=this.addFold(\"...\",s);o&&(o.collapseChildren=n)}catch(u){}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle=\"markbegin\",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error(\"invalid fold style: \"+e+\"[\"+Object.keys(this.$foldStyles).join(\", \")+\"]\");if(this.$foldStyle==e)return;this.$foldStyle=e,e==\"manual\"&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)},this.$setFolding=function(e){if(this.$foldMode==e)return;this.$foldMode=e,this.off(\"change\",this.$updateFoldWidgets),this.off(\"tokenizerUpdate\",this.$tokenizerUpdateFoldWidgets),this._signal(\"changeAnnotation\");if(!e||this.$foldStyle==\"manual\"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on(\"change\",this.$updateFoldWidgets),this.on(\"tokenizerUpdate\",this.$tokenizerUpdateFoldWidgets)},this.getParentFoldRangeData=function(e,t){var n=this.foldWidgets;if(!n||t&&n[e])return{};var r=e-1,i;while(r>=0){var s=n[r];s==null&&(s=n[r]=this.getFoldWidget(r));if(s==\"start\"){var o=this.getFoldWidgetRange(r);i||(i=o);if(o&&o.end.row>=e)break}r--}return{range:r!==-1&&o,firstRange:i}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey},r=this.$toggleFoldWidget(e,n);if(!r){var i=t.target||t.srcElement;i&&/ace_fold-widget/.test(i.className)&&(i.className+=\" ace_invalid\")}},this.$toggleFoldWidget=function(e,t){if(!this.getFoldWidget)return;var n=this.getFoldWidget(e),r=this.getLine(e),i=n===\"end\"?-1:1,s=this.getFoldAt(e,i===-1?0:r.length,i);if(s)return t.children||t.all?this.removeFold(s):this.expandFold(s),s;var o=this.getFoldWidgetRange(e,!0);if(o&&!o.isMultiLine()){s=this.getFoldAt(o.start.row,o.start.column,1);if(s&&o.isEqual(s.range))return this.removeFold(s),s}if(t.siblings){var u=this.getParentFoldRangeData(e);if(u.range)var a=u.range.start.row+1,f=u.range.end.row;this.foldAll(a,f,t.all?1e4:0)}else t.children?(f=o?o.end.row:this.getLength(),this.foldAll(e+1,f,t.all?1e4:0)):o&&(t.all&&(o.collapseChildren=1e4),this.addFold(\"...\",o));return o},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(n)return;var r=this.getParentFoldRangeData(t,!0);n=r.range||r.firstRange;if(n){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold(\"...\",n)}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.foldWidgets[t]=null;else if(e.action==\"remove\")this.foldWidgets.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,r)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e(\"../range\").Range,i=e(\"./fold_line\").FoldLine,s=e(\"./fold\").Fold,o=e(\"../token_iterator\").TokenIterator;t.Folding=u}),ace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"],function(e,t,n){\"use strict\";function s(){this.findMatchingBracket=function(e,t){if(e.column==0)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(n==\"\")return null;var r=n.match(/([\\(\\[\\{])|([\\)\\]\\}])/);return r?r[1]?this.$findClosingBracket(r[1],e):this.$findOpeningBracket(r[2],e):null},this.getBracketRange=function(e){var t=this.getLine(e.row),n=!0,r,s=t.charAt(e.column-1),o=s&&s.match(/([\\(\\[\\{])|([\\)\\]\\}])/);o||(s=t.charAt(e.column),e={row:e.row,column:e.column+1},o=s&&s.match(/([\\(\\[\\{])|([\\)\\]\\}])/),n=!1);if(!o)return null;if(o[1]){var u=this.$findClosingBracket(o[1],e);if(!u)return null;r=i.fromPoints(e,u),n||(r.end.column++,r.start.column--),r.cursor=r.end}else{var u=this.$findOpeningBracket(o[2],e);if(!u)return null;r=i.fromPoints(u,e),n||(r.start.column++,r.end.column--),r.cursor=r.start}return r},this.$brackets={\")\":\"(\",\"(\":\")\",\"]\":\"[\",\"[\":\"]\",\"{\":\"}\",\"}\":\"{\"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp(\"(\\\\.?\"+u.type.replace(\".\",\"\\\\.\").replace(\"rparen\",\".paren\").replace(/\\b(?:end)\\b/,\"(?:start|begin|end)\")+\")+\"));var a=t.column-o.getCurrentTokenColumn()-2,f=u.value;for(;;){while(a>=0){var l=f.charAt(a);if(l==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else l==e&&(s+=1);a-=1}do u=o.stepBackward();while(u&&!n.test(u.type));if(u==null)break;f=u.value,a=f.length-1}return null},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp(\"(\\\\.?\"+u.type.replace(\".\",\"\\\\.\").replace(\"lparen\",\".paren\").replace(/\\b(?:start|begin)\\b/,\"(?:start|begin|end)\")+\")+\"));var a=t.column-o.getCurrentTokenColumn();for(;;){var f=u.value,l=f.length;while(a<l){var c=f.charAt(a);if(c==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else c==e&&(s+=1);a+=1}do u=o.stepForward();while(u&&!n.test(u.type));if(u==null)break;a=0}return null}}var r=e(\"../token_iterator\").TokenIterator,i=e(\"../range\").Range;t.BracketMatch=s}),ace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/lang\"),s=e(\"./config\"),o=e(\"./lib/event_emitter\").EventEmitter,u=e(\"./selection\").Selection,a=e(\"./mode/text\").Mode,f=e(\"./range\").Range,l=e(\"./document\").Document,c=e(\"./background_tokenizer\").BackgroundTokenizer,h=e(\"./search_highlight\").SearchHighlight,p=function(e,t){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.id=\"session\"+ ++p.$uid,this.$foldData.toString=function(){return this.join(\"\\n\")},this.on(\"changeFold\",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this);if(typeof e!=\"object\"||!e.getLine)e=new l(e);this.setDocument(e),this.selection=new u(this),s.resetOptions(this),this.setMode(t),s._signal(\"session\",this)};(function(){function m(e){return e<4352?!1:e>=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510}r.implement(this,o),this.setDocument=function(e){this.doc&&this.doc.removeListener(\"change\",this.$onChange),this.doc=e,e.on(\"change\",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e){this.$docRowCache=[],this.$screenRowCache=[];return}var t=this.$docRowCache.length,n=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>n&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},this.$getRowCacheIndex=function(e,t){var n=0,r=e.length-1;while(n<=r){var i=n+r>>1,s=e[i];if(t>s)n=i+1;else{if(!(t<s))return i;r=i-1}}return n-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.bgTokenizer&&this.bgTokenizer.start(0)},this.onChangeFold=function(e){var t=e.data;this.$resetRowCache(t.start.row)},this.onChange=function(e){this.$modified=!0,this.$resetRowCache(e.start.row);var t=this.$updateInternalDataOnChange(e);!this.$fromUndo&&this.$undoManager&&!e.ignore&&(this.$deltasDoc.push(e),t&&t.length!=0&&this.$deltasFold.push({action:\"removeFolds\",folds:t}),this.$informUndoManager.schedule()),this.bgTokenizer&&this.bgTokenizer.$updateOnChange(e),this._signal(\"change\",e)},this.setValue=function(e){this.doc.setValue(e),this.selection.moveTo(0,0),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.setUndoManager(this.$undoManager),this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(e){return this.bgTokenizer.getState(e)},this.getTokens=function(e){return this.bgTokenizer.getTokens(e)},this.getTokenAt=function(e,t){var n=this.bgTokenizer.getTokens(e),r,i=0;if(t==null)s=n.length-1,i=this.getLine(e).length;else for(var s=0;s<n.length;s++){i+=n[s].value.length;if(i>=t)break}return r=n[s],r?(r.index=s,r.start=i-r.value.length,r):null},this.setUndoManager=function(e){this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(e){var t=this;this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.$deltasFold.length&&(t.$deltas.push({group:\"fold\",deltas:t.$deltasFold}),t.$deltasFold=[]),t.$deltasDoc.length&&(t.$deltas.push({group:\"doc\",deltas:t.$deltasDoc}),t.$deltasDoc=[]),t.$deltas.length>0&&e.execute({action:\"aceupdate\",args:[t.$deltas,t],merge:t.mergeUndoDeltas}),t.mergeUndoDeltas=!1,t.$deltas=[]},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(\" \",this.getTabSize()):\"\t\"},this.setUseSoftTabs=function(e){this.setOption(\"useSoftTabs\",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption(\"tabSize\",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize===0},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption(\"overwrite\",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=\"\"),this.$decorations[e]+=\" \"+t,this._signal(\"changeBreakpoint\",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||\"\").replace(\" \"+t,\"\"),this._signal(\"changeBreakpoint\",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t<e.length;t++)this.$breakpoints[e[t]]=\"ace_breakpoint\";this._signal(\"changeBreakpoint\",{})},this.clearBreakpoints=function(){this.$breakpoints=[],this._signal(\"changeBreakpoint\",{})},this.setBreakpoint=function(e,t){t===undefined&&(t=\"ace_breakpoint\"),t?this.$breakpoints[e]=t:delete this.$breakpoints[e],this._signal(\"changeBreakpoint\",{})},this.clearBreakpoint=function(e){delete this.$breakpoints[e],this._signal(\"changeBreakpoint\",{})},this.addMarker=function(e,t,n,r){var i=this.$markerId++,s={range:e,type:n||\"line\",renderer:typeof n==\"function\"?n:null,clazz:t,inFront:!!r,id:i};return r?(this.$frontMarkers[i]=s,this._signal(\"changeFrontMarker\")):(this.$backMarkers[i]=s,this._signal(\"changeBackMarker\")),i},this.addDynamicMarker=function(e,t){if(!e.update)return;var n=this.$markerId++;return e.id=n,e.inFront=!!t,t?(this.$frontMarkers[n]=e,this._signal(\"changeFrontMarker\")):(this.$backMarkers[n]=e,this._signal(\"changeBackMarker\")),e},this.removeMarker=function(e){var t=this.$frontMarkers[e]||this.$backMarkers[e];if(!t)return;var n=t.inFront?this.$frontMarkers:this.$backMarkers;t&&(delete n[e],this._signal(t.inFront?\"changeFrontMarker\":\"changeBackMarker\"))},this.getMarkers=function(e){return e?this.$frontMarkers:this.$backMarkers},this.highlight=function(e){if(!this.$searchHighlight){var t=new h(null,\"ace_selected-word\",\"text\");this.$searchHighlight=this.addDynamicMarker(t)}this.$searchHighlight.setRegexp(e)},this.highlightLines=function(e,t,n,r){typeof t!=\"number\"&&(n=t,t=e),n||(n=\"ace_step\");var i=new f(e,0,t,Infinity);return i.id=this.addMarker(i,n,\"fullLine\",r),i},this.setAnnotations=function(e){this.$annotations=e,this._signal(\"changeAnnotation\",{})},this.getAnnotations=function(){return this.$annotations||[]},this.clearAnnotations=function(){this.setAnnotations([])},this.$detectNewLine=function(e){var t=e.match(/^.*?(\\r?\\n)/m);t?this.$autoNewLine=t[1]:this.$autoNewLine=\"\\n\"},this.getWordRange=function(e,t){var n=this.getLine(e),r=!1;t>0&&(r=!!n.charAt(t-1).match(this.tokenRe)),r||(r=!!n.charAt(t).match(this.tokenRe));if(r)var i=this.tokenRe;else if(/^\\s+$/.test(n.slice(t-1,t+1)))var i=/\\s/;else var i=this.nonTokenRe;var s=t;if(s>0){do s--;while(s>=0&&n.charAt(s).match(i));s++}var o=t;while(o<n.length&&n.charAt(o).match(i))o++;return new f(e,s,e,o)},this.getAWordRange=function(e,t){var n=this.getWordRange(e,t),r=this.getLine(n.end.row);while(r.charAt(n.end.column).match(/[ \\t]/))n.end.column+=1;return n},this.setNewLineMode=function(e){this.doc.setNewLineMode(e)},this.getNewLineMode=function(){return this.doc.getNewLineMode()},this.setUseWorker=function(e){this.setOption(\"useWorker\",e)},this.getUseWorker=function(){return this.$useWorker},this.onReloadTokenizer=function(e){var t=e.data;this.bgTokenizer.start(t.first),this._signal(\"tokenizerUpdate\",e)},this.$modes={},this.$mode=null,this.$modeId=null,this.setMode=function(e,t){if(e&&typeof e==\"object\"){if(e.getTokenizer)return this.$onChangeMode(e);var n=e,r=n.path}else r=e||\"ace/mode/text\";this.$modes[\"ace/mode/text\"]||(this.$modes[\"ace/mode/text\"]=new a);if(this.$modes[r]&&!n){this.$onChangeMode(this.$modes[r]),t&&t();return}this.$modeId=r,s.loadModule([\"mode\",r],function(e){if(this.$modeId!==r)return t&&t();this.$modes[r]&&!n?this.$onChangeMode(this.$modes[r]):e&&e.Mode&&(e=new e.Mode(n),n||(this.$modes[r]=e,e.$id=r),this.$onChangeMode(e)),t&&t()}.bind(this)),this.$mode||this.$onChangeMode(this.$modes[\"ace/mode/text\"],!0)},this.$onChangeMode=function(e,t){t||(this.$modeId=e.$id);if(this.$mode===e)return;this.$mode=e,this.$stopWorker(),this.$useWorker&&this.$startWorker();var n=e.getTokenizer();if(n.addEventListener!==undefined){var r=this.onReloadTokenizer.bind(this);n.addEventListener(\"update\",r)}if(!this.bgTokenizer){this.bgTokenizer=new c(n);var i=this;this.bgTokenizer.addEventListener(\"update\",function(e){i._signal(\"tokenizerUpdate\",e)})}else this.bgTokenizer.setTokenizer(n);this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=e.tokenRe,this.nonTokenRe=e.nonTokenRe,t||(e.attachToSession&&e.attachToSession(this),this.$options.wrapMethod.set.call(this,this.$wrapMethod),this.$setFolding(e.foldingRules),this.bgTokenizer.start(0),this._emit(\"changeMode\"))},this.$stopWorker=function(){this.$worker&&(this.$worker.terminate(),this.$worker=null)},this.$startWorker=function(){try{this.$worker=this.$mode.createWorker(this)}catch(e){s.warn(\"Could not load worker\",e),this.$worker=null}},this.getMode=function(){return this.$mode},this.$scrollTop=0,this.setScrollTop=function(e){if(this.$scrollTop===e||isNaN(e))return;this.$scrollTop=e,this._signal(\"changeScrollTop\",e)},this.getScrollTop=function(){return this.$scrollTop},this.$scrollLeft=0,this.setScrollLeft=function(e){if(this.$scrollLeft===e||isNaN(e))return;this.$scrollLeft=e,this._signal(\"changeScrollLeft\",e)},this.getScrollLeft=function(){return this.$scrollLeft},this.getScreenWidth=function(){return this.$computeWidth(),this.lineWidgets?Math.max(this.getLineWidgetMaxWidth(),this.screenWidth):this.screenWidth},this.getLineWidgetMaxWidth=function(){if(this.lineWidgetsWidth!=null)return this.lineWidgetsWidth;var e=0;return this.lineWidgets.forEach(function(t){t&&t.screenWidth>e&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){this.$modified=!1;if(this.$useWrapMode)return this.screenWidth=this.$wrapLimit;var t=this.doc.getAllLines(),n=this.$rowLengthCache,r=0,i=0,s=this.$foldData[i],o=s?s.start.row:Infinity,u=t.length;for(var a=0;a<u;a++){if(a>o){a=s.end.row+1;if(a>=u)break;s=this.$foldData[i++],o=s?s.start.row:Infinity}n[a]==null&&(n[a]=this.$getStringScreenWidth(t[a])[0]),n[a]>r&&(r=n[a])}this.screenWidth=r}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;var n=null;for(var r=e.length-1;r!=-1;r--){var i=e[r];i.group==\"doc\"?(this.doc.revertDeltas(i.deltas),n=this.$getUndoSelection(i.deltas,!0,n)):i.deltas.forEach(function(e){this.addFolds(e.folds)},this)}return this.$fromUndo=!1,n&&this.$undoSelect&&!t&&this.selection.setSelectionRange(n),n},this.redoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;var n=null;for(var r=0;r<e.length;r++){var i=e[r];i.group==\"doc\"&&(this.doc.applyDeltas(i.deltas),n=this.$getUndoSelection(i.deltas,!1,n))}return this.$fromUndo=!1,n&&this.$undoSelect&&!t&&this.selection.setSelectionRange(n),n},this.setUndoSelect=function(e){this.$undoSelect=e},this.$getUndoSelection=function(e,t,n){function r(e){return t?e.action!==\"insert\":e.action===\"insert\"}var i=e[0],s,o,u=!1;r(i)?(s=f.fromPoints(i.start,i.end),u=!0):(s=f.fromPoints(i.start,i.start),u=!1);for(var a=1;a<e.length;a++)i=e[a],r(i)?(o=i.start,s.compare(o.row,o.column)==-1&&s.setStart(o),o=i.end,s.compare(o.row,o.column)==1&&s.setEnd(o),u=!0):(o=i.start,s.compare(o.row,o.column)==-1&&(s=f.fromPoints(i.start,i.start)),u=!1);if(n!=null){f.comparePoints(n.start,s.start)===0&&(n.start.column+=s.end.column-s.start.column,n.end.column+=s.end.column-s.start.column);var l=n.compareRange(s);l==1?s.setStart(n.start):l==-1&&s.setEnd(n.end)}return s},this.replace=function(e,t){return this.doc.replace(e,t)},this.moveText=function(e,t,n){var r=this.getTextRange(e),i=this.getFoldsInRange(e),s=f.fromPoints(t,t);if(!n){this.remove(e);var o=e.start.row-e.end.row,u=o?-e.end.column:e.start.column-e.end.column;u&&(s.start.row==e.end.row&&s.start.column>e.end.column&&(s.start.column+=u),s.end.row==e.end.row&&s.end.column>e.end.column&&(s.end.column+=u)),o&&s.start.row>=e.end.row&&(s.start.row+=o,s.end.row+=o)}s.end=this.insert(s.start,r);if(i.length){var a=e.start,l=s.start,o=l.row-a.row,u=l.column-a.column;this.addFolds(i.map(function(e){return e=e.clone(),e.start.row==a.row&&(e.start.column+=u),e.end.row==a.row&&(e.end.column+=u),e.start.row+=o,e.end.row+=o,e}))}return s},this.indentRows=function(e,t,n){n=n.replace(/\\t/g,this.getTabString());for(var r=e;r<=t;r++)this.doc.insertInLine({row:r,column:0},n)},this.outdentRows=function(e){var t=e.collapseRows(),n=new f(0,0,0,0),r=this.getTabSize();for(var i=t.start.row;i<=t.end.row;++i){var s=this.getLine(i);n.start.row=i,n.end.row=i;for(var o=0;o<r;++o)if(s.charAt(o)!=\" \")break;o<r&&s.charAt(o)==\"\t\"?(n.start.column=o,n.end.column=o+1):(n.start.column=0,n.end.column=o),this.remove(n)}},this.$moveLines=function(e,t,n){e=this.getRowFoldStart(e),t=this.getRowFoldEnd(t);if(n<0){var r=this.getRowFoldStart(e+n);if(r<0)return 0;var i=r-e}else if(n>0){var r=this.getRowFoldEnd(t+n);if(r>this.doc.getLength()-1)return 0;var i=r-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var i=t-e+1}var s=new f(e,0,t,Number.MAX_VALUE),o=this.getFoldsInRange(s).map(function(e){return e=e.clone(),e.start.row+=i,e.end.row+=i,e}),u=n==0?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+i,u),o.length&&this.addFolds(o),i},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){t=Math.max(0,t);if(e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0);if(e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal(\"changeWrapMode\")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){if(this.$wrapLimitRange.min!==e||this.$wrapLimitRange.max!==t)this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$useWrapMode&&this._signal(\"changeWrapMode\")},this.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var r=this.$constrainWrapLimit(e,n.min,n.max);return r!=this.$wrapLimit&&r>1?(this.$wrapLimit=r,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal(\"changeWrapLimit\")),!0):!1},this.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,r=e.start,i=e.end,s=r.row,o=i.row,u=o-s,a=null;this.$updating=!0;if(u!=0)if(n===\"remove\"){this[t?\"$wrapData\":\"$rowLengthCache\"].splice(s,u);var f=this.$foldData;a=this.getFoldsInRange(e),this.removeFolds(a);var l=this.getFoldLine(i.row),c=0;if(l){l.addRemoveChars(i.row,i.column,r.column-i.column),l.shiftRow(-u);var h=this.getFoldLine(s);h&&h!==l&&(h.merge(l),l=h),c=f.indexOf(l)+1}for(c;c<f.length;c++){var l=f[c];l.start.row>=i.row&&l.shiftRow(-u)}o=s}else{var p=Array(u);p.unshift(s,0);var d=t?this.$wrapData:this.$rowLengthCache;d.splice.apply(d,p);var f=this.$foldData,l=this.getFoldLine(s),c=0;if(l){var v=l.range.compareInside(r.row,r.column);v==0?(l=l.split(r.row,r.column),l&&(l.shiftRow(u),l.addRemoveChars(o,0,i.column-r.column))):v==-1&&(l.addRemoveChars(s,0,i.column-r.column),l.shiftRow(u)),c=f.indexOf(l)+1}for(c;c<f.length;c++){var l=f[c];l.start.row>=s&&l.shiftRow(u)}}else{u=Math.abs(e.start.column-e.end.column),n===\"remove\"&&(a=this.getFoldsInRange(e),this.removeFolds(a),u=-u);var l=this.getFoldLine(s);l&&l.addRemoveChars(s,r.column,u)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error(\"doc.getLength() and $wrapData.length have to be the same!\"),this.$updating=!1,t?this.$updateWrapData(s,o):this.$updateRowLengthCache(s,o),a},this.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,t){var r=this.doc.getAllLines(),i=this.getTabSize(),s=this.$wrapData,o=this.$wrapLimit,a,f,l=e;t=Math.min(t,r.length-1);while(l<=t)f=this.getFoldLine(l,f),f?(a=[],f.walk(function(e,t,i,s){var o;if(e!=null){o=this.$getDisplayTokens(e,a.length),o[0]=n;for(var f=1;f<o.length;f++)o[f]=u}else o=this.$getDisplayTokens(r[t].substring(s,i),a.length);a=a.concat(o)}.bind(this),f.end.row,r[f.end.row].length+1),s[f.start.row]=this.$computeWrapSplits(a,o,i),l=f.end.row+1):(a=this.$getDisplayTokens(r[l]),s[l]=this.$computeWrapSplits(a,o,i),l++)};var e=1,t=2,n=3,u=4,l=9,p=10,d=11,v=12;this.$computeWrapSplits=function(e,r,i){function g(){var t=0;if(m===0)return t;if(h)for(var n=0;n<e.length;n++){var r=e[n];if(r==p)t+=1;else{if(r!=d){if(r==v)continue;break}t+=i}}return c&&h!==!1&&(t+=i),Math.min(t,m)}function y(t){var n=e.slice(a,t),r=n.length;n.join(\"\").replace(/12/g,function(){r-=1}).replace(/2/g,function(){r-=1}),s.length||(b=g(),s.indent=b),f+=r,s.push(f),a=t}if(e.length==0)return[];var s=[],o=e.length,a=0,f=0,c=this.$wrapAsCode,h=this.$indentedSoftWrap,m=r<=Math.max(2*i,8)||h===!1?0:Math.floor(r/2),b=0;while(o-a>r-b){var w=a+r-b;if(e[w-1]>=p&&e[w]>=p){y(w);continue}if(e[w]==n||e[w]==u){for(w;w!=a-1;w--)if(e[w]==n)break;if(w>a){y(w);continue}w=a+r;for(w;w<e.length;w++)if(e[w]!=u)break;if(w==e.length)break;y(w);continue}var E=Math.max(w-(r-(r>>2)),a-1);while(w>E&&e[w]<n)w--;if(c){while(w>E&&e[w]<n)w--;while(w>E&&e[w]==l)w--}else while(w>E&&e[w]<p)w--;if(w>E){y(++w);continue}w=a+r,e[w]==t&&w--,y(w-b)}return s},this.$getDisplayTokens=function(n,r){var i=[],s;r=r||0;for(var o=0;o<n.length;o++){var u=n.charCodeAt(o);if(u==9){s=this.getScreenTabSize(i.length+r),i.push(d);for(var a=1;a<s;a++)i.push(v)}else u==32?i.push(p):u>39&&u<48||u>57&&u<64?i.push(l):u>=4352&&m(u)?i.push(e,t):i.push(e)}return i},this.$getStringScreenWidth=function(e,t,n){if(t==0)return[0,0];t==null&&(t=Infinity),n=n||0;var r,i;for(i=0;i<e.length;i++){r=e.charCodeAt(i),r==9?n+=this.getScreenTabSize(n):r>=4352&&m(r)?n+=2:n+=1;if(n>t)break}return[n,i]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.getRowLineCount=function(e){return!this.$useWrapMode||!this.$wrapData[e]?1:this.$wrapData[e].length+1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]<t.column?n.indent:0}return 0},this.getScreenLastRowColumn=function(e){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE);return this.documentToScreenColumn(t.row,t.column)},this.getDocumentLastRowColumn=function(e,t){var n=this.documentToScreenRow(e,t);return this.getScreenLastRowColumn(n)},this.getDocumentLastRowColumnPosition=function(e,t){var n=this.documentToScreenRow(e,t);return this.screenToDocumentPosition(n,Number.MAX_VALUE/10)},this.getRowSplitData=function(e){return this.$useWrapMode?this.$wrapData[e]:undefined},this.getScreenTabSize=function(e){return this.$tabSize-e%this.$tabSize},this.screenToDocumentRow=function(e,t){return this.screenToDocumentPosition(e,t).row},this.screenToDocumentColumn=function(e,t){return this.screenToDocumentPosition(e,t).column},this.screenToDocumentPosition=function(e,t){if(e<0)return{row:0,column:0};var n,r=0,i=0,s,o=0,u=0,a=this.$screenRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var o=a[f],r=this.$docRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getLength()-1,p=this.getNextFoldLine(r),d=p?p.start.row:Infinity;while(o<=e){u=this.getRowLength(r);if(o+u>e||r>=h)break;o+=u,r++,r>d&&(r=p.end.row+1,p=this.getNextFoldLine(r,p),d=p?p.start.row:Infinity),c&&(this.$docRowCache.push(r),this.$screenRowCache.push(o))}if(p&&p.start.row<=r)n=this.getFoldDisplayLine(p),r=p.start.row;else{if(o+u<=e||r>h)return{row:h,column:this.getLine(h).length};n=this.getLine(r),p=null}var v=0;if(this.$useWrapMode){var m=this.$wrapData[r];if(m){var g=Math.floor(e-o);s=m[g],g>0&&m.length&&(v=m.indent,i=m[g-1]||m[m.length-1],n=n.substring(i))}}return i+=this.$getStringScreenWidth(n,t-v)[1],this.$useWrapMode&&i>=s&&(i=s-1),p?p.idxToPosition(i):{row:r,column:i}},this.documentToScreenPosition=function(e,t){if(typeof t==\"undefined\")var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var r=0,i=null,s=null;s=this.getFoldAt(e,t,1),s&&(e=s.start.row,t=s.start.column);var o,u=0,a=this.$docRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var u=a[f],r=this.$screenRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getNextFoldLine(u),p=h?h.start.row:Infinity;while(u<e){if(u>=p){o=h.end.row+1;if(o>e)break;h=this.getNextFoldLine(o,h),p=h?h.start.row:Infinity}else o=u+1;r+=this.getRowLength(u),u=o,c&&(this.$docRowCache.push(u),this.$screenRowCache.push(r))}var d=\"\";h&&u>=p?(d=this.getFoldDisplayLine(h,e,t),i=h.start.row):(d=this.getLine(e).substring(0,t),i=e);var v=0;if(this.$useWrapMode){var m=this.$wrapData[i];if(m){var g=0;while(d.length>=m[g])r++,g++;d=d.substring(m[g-1]||0,d.length),v=g>0?m.indent:0}}return{row:r,column:v+this.$getStringScreenWidth(d)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(!this.$useWrapMode){e=this.getLength();var n=this.$foldData;for(var r=0;r<n.length;r++)t=n[r],e-=t.end.row-t.start.row}else{var i=this.$wrapData.length,s=0,r=0,t=this.$foldData[r++],o=t?t.start.row:Infinity;while(s<i){var u=this.$wrapData[s];e+=u?u.length+1:1,s++,s>o&&(s=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:Infinity)}}return this.lineWidgets&&(e+=this.$getWidgetScreenLength()),e},this.$setFontMetrics=function(e){if(!this.$enableVarChar)return;this.$getStringScreenWidth=function(t,n,r){if(n===0)return[0,0];n||(n=Infinity),r=r||0;var i,s;for(s=0;s<t.length;s++){i=t.charAt(s),i===\"\t\"?r+=this.getScreenTabSize(r):r+=e.getCharacterWidth(i);if(r>n)break}return[r,s]}},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()}}).call(p.prototype),e(\"./edit_session/folding\").Folding.call(p.prototype),e(\"./edit_session/bracket_match\").BracketMatch.call(p.prototype),s.defineOptions(p.prototype,\"session\",{wrap:{set:function(e){!e||e==\"off\"?e=!1:e==\"free\"?e=!0:e==\"printMargin\"?e=-1:typeof e==\"string\"&&(e=parseInt(e,10)||!1);if(this.$wrap==e)return;this.$wrap=e;if(!e)this.setUseWrapMode(!1);else{var t=typeof e==\"number\"?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?\"printMargin\":this.getWrapLimitRange().min?this.$wrap:\"free\":\"off\"},handlesSet:!0},wrapMethod:{set:function(e){e=e==\"auto\"?this.$mode.type!=\"text\":e!=\"text\",e!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:\"auto\"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal(\"changeBreakpoint\")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){if(isNaN(e)||this.$tabSize===e)return;this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal(\"changeTabSize\")},initialValue:4,handlesSet:!0},overwrite:{set:function(e){this._signal(\"changeOverwrite\")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId}}}),t.EditSession=p}),ace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"],function(e,t,n){\"use strict\";function u(e,t){function n(e){return/\\w/.test(e)||t.regExp?\"\\\\b\":\"\"}return n(e[0])+e+n(e[e.length-1])}var r=e(\"./lib/lang\"),i=e(\"./lib/oop\"),s=e(\"./range\").Range,o=function(){this.$options={}};(function(){this.set=function(e){return i.mixin(this.$options,e),this},this.getOptions=function(){return r.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var r=null;return n.forEach(function(e,n,i){if(!e.start){var o=e.offset+(i||0);r=new s(n,o,n,o+e.length);if(!e.length&&t.start&&t.start.start&&t.skipCurrent!=0&&r.isEqual(t.start))return r=null,!1}else r=e;return!0}),r},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),o=[],u=t.re;if(t.$isMultiLine){var a=u.length,f=i.length-a,l;e:for(var c=u.offset||0;c<=f;c++){for(var h=0;h<a;h++)if(i[c+h].search(u[h])==-1)continue e;var p=i[c],d=i[c+a-1],v=p.length-p.match(u[0])[0].length,m=d.match(u[a-1])[0].length;if(l&&l.end.row===c&&l.end.column>v)continue;o.push(l=new s(c,v,c+a-1,m)),a>2&&(c=c+a-2)}}else for(var g=0;g<i.length;g++){var y=r.getMatchOffsets(i[g],u);for(var h=0;h<y.length;h++){var b=y[h];o.push(new s(g,b.offset,g,b.offset+b.length))}}if(n){var w=n.start.column,E=n.start.column,g=0,h=o.length-1;while(g<h&&o[g].start.column<w&&o[g].start.row==n.start.row)g++;while(g<h&&o[h].end.column>E&&o[h].end.row==n.end.row)h--;o=o.slice(g,h+1);for(g=0,h=o.length;g<h;g++)o[g].start.row+=n.start.row,o[g].end.row+=n.start.row}return o},this.replace=function(e,t){var n=this.$options,r=this.$assembleRegExp(n);if(n.$isMultiLine)return t;if(!r)return;var i=r.exec(e);if(!i||i[0].length!=e.length)return null;t=e.replace(r,t);if(n.preserveCase){t=t.split(\"\");for(var s=Math.min(e.length,e.length);s--;){var o=e[s];o&&o.toLowerCase()!=o?t[s]=t[s].toUpperCase():t[s]=t[s].toLowerCase()}t=t.join(\"\")}return t},this.$matchIterator=function(e,t){var n=this.$assembleRegExp(t);if(!n)return!1;var i;if(t.$isMultiLine)var o=n.length,u=function(t,r,u){var a=t.search(n[0]);if(a==-1)return;for(var f=1;f<o;f++){t=e.getLine(r+f);if(t.search(n[f])==-1)return}var l=t.match(n[o-1])[0].length,c=new s(r,a,r+o-1,l);n.offset==1?(c.start.row--,c.start.column=Number.MAX_VALUE):u&&(c.start.column+=u);if(i(c))return!0};else if(t.backwards)var u=function(e,t,s){var o=r.getMatchOffsets(e,n);for(var u=o.length-1;u>=0;u--)if(i(o[u],t,s))return!0};else var u=function(e,t,s){var o=r.getMatchOffsets(e,n);for(var u=0;u<o.length;u++)if(i(o[u],t,s))return!0};var a=this.$lineIterator(e,t);return{forEach:function(e){i=e,a.forEach(u)}}},this.$assembleRegExp=function(e,t){if(e.needle instanceof RegExp)return e.re=e.needle;var n=e.needle;if(!e.needle)return e.re=!1;e.regExp||(n=r.escapeRegExp(n)),e.wholeWord&&(n=u(n,e));var i=e.caseSensitive?\"gm\":\"gmi\";e.$isMultiLine=!t&&/[\\n\\r]/.test(n);if(e.$isMultiLine)return e.re=this.$assembleMultilineRegExp(n,i);try{var s=new RegExp(n,i)}catch(o){s=!1}return e.re=s},this.$assembleMultilineRegExp=function(e,t){var n=e.replace(/\\r\\n|\\r|\\n/g,\"$\\n^\").split(\"\\n\"),r=[];for(var i=0;i<n.length;i++)try{r.push(new RegExp(n[i],t))}catch(s){return!1}return n[0]==\"\"?(r.shift(),r.offset=1):r.offset=0,r},this.$lineIterator=function(e,t){var n=t.backwards==1,r=t.skipCurrent!=0,i=t.range,s=t.start;s||(s=i?i[n?\"end\":\"start\"]:e.selection.getRange()),s.start&&(s=s[r!=n?\"end\":\"start\"]);var o=i?i.start.row:0,u=i?i.end.row:e.getLength()-1,a=n?function(n){var r=s.row,i=e.getLine(r).substring(0,s.column);if(n(i,r))return;for(r--;r>=o;r--)if(n(e.getLine(r),r))return;if(t.wrap==0)return;for(r=u,o=s.row;r>=o;r--)if(n(e.getLine(r),r))return}:function(n){var r=s.row,i=e.getLine(r).substr(s.column);if(n(i,r,s.column))return;for(r+=1;r<=u;r++)if(n(e.getLine(r),r))return;if(t.wrap==0)return;for(r=o,u=s.row;r<=u;r++)if(n(e.getLine(r),r))return};return{forEach:a}}}).call(o.prototype),t.Search=o}),ace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"],function(e,t,n){\"use strict\";function o(e,t){this.platform=t||(i.isMac?\"mac\":\"win\"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function u(e,t){o.call(this,e,t),this.$singleCommand=!1}var r=e(\"../lib/keys\"),i=e(\"../lib/useragent\"),s=r.KEY_MODS;u.prototype=o.prototype,function(){function e(e){return typeof e==\"object\"&&e.bindKey&&e.bindKey.position||0}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var n=e&&(typeof e==\"string\"?e:e.name);e=this.commands[n],t||delete this.commands[n];var r=this.commandKeyBinding;for(var i in r){var s=r[i];if(s==e)delete r[i];else if(Array.isArray(s)){var o=s.indexOf(e);o!=-1&&(s.splice(o,1),s.length==1&&(r[i]=s[0]))}}},this.bindKey=function(e,t,n){typeof e==\"object\"&&e&&(n==undefined&&(n=e.position),e=e[this.platform]);if(!e)return;if(typeof t==\"function\")return this.addCommand({exec:t,bindKey:e,name:t.name||e});e.split(\"|\").forEach(function(e){var r=\"\";if(e.indexOf(\" \")!=-1){var i=e.split(/\\s+/);e=i.pop(),i.forEach(function(e){var t=this.parseKeys(e),n=s[t.hashId]+t.key;r+=(r?\" \":\"\")+n,this._addCommandToBinding(r,\"chainKeys\")},this),r+=\" \"}var o=this.parseKeys(e),u=s[o.hashId]+o.key;this._addCommandToBinding(r+u,t,n)},this)},this._addCommandToBinding=function(t,n,r){var i=this.commandKeyBinding,s;if(!n)delete i[t];else if(!i[t]||this.$singleCommand)i[t]=n;else{Array.isArray(i[t])?(s=i[t].indexOf(n))!=-1&&i[t].splice(s,1):i[t]=[i[t]],typeof r!=\"number\"&&(r||n.isDefault?r=-100:r=e(n));var o=i[t];for(s=0;s<o.length;s++){var u=o[s],a=e(u);if(a>r)break}o.splice(s,0,n)}},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var n=e[t];if(!n)return;if(typeof n==\"string\")return this.bindKey(n,t);typeof n==\"function\"&&(n={exec:n});if(typeof n!=\"object\")return;n.name||(n.name=t),this.addCommand(n)},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function(e){return e}),n=t.pop(),i=r[n];if(r.FUNCTION_KEYS[i])n=r.FUNCTION_KEYS[i].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(t.length==1&&t[0]==\"shift\")return{key:n.toUpperCase(),hashId:-1}}var s=0;for(var o=t.length;o--;){var u=r.KEY_MODS[t[o]];if(u==null)return typeof console!=\"undefined\"&&console.error(\"invalid modifier \"+t[o]+\" in \"+e),!1;s|=u}return{key:n,hashId:s}},this.findKeyCommand=function(t,n){var r=s[t]+n;return this.commandKeyBinding[r]},this.handleKeyboard=function(e,t,n,r){if(r<0)return;var i=s[t]+n,o=this.commandKeyBinding[i];e.$keyChain&&(e.$keyChain+=\" \"+i,o=this.commandKeyBinding[e.$keyChain]||o);if(o)if(o==\"chainKeys\"||o[o.length-1]==\"chainKeys\")return e.$keyChain=e.$keyChain||i,{command:\"null\"};if(e.$keyChain)if(!!t&&t!=4||n.length!=1){if(t==-1||r>0)e.$keyChain=\"\"}else e.$keyChain=e.$keyChain.slice(0,-i.length-1);return{command:o}},this.getStatusText=function(e,t){return t.$keyChain||\"\"}}.call(o.prototype),t.HashHandler=o,t.MultiHashHandler=u}),ace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../keyboard/hash_handler\").MultiHashHandler,s=e(\"../lib/event_emitter\").EventEmitter,o=function(e,t){i.call(this,t,e),this.byName=this.commands,this.setDefaultHandler(\"exec\",function(e){return e.command.exec(e.editor,e.args||{})})};r.inherits(o,i),function(){r.implement(this,s),this.exec=function(e,t,n){if(Array.isArray(e)){for(var r=e.length;r--;)if(this.exec(e[r],t,n))return!0;return!1}typeof e==\"string\"&&(e=this.commands[e]);if(!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit(\"exec\",i),this._signal(\"afterExec\",i),i.returnValue===!1?!1:!0},this.toggleRecording=function(e){if(this.$inReplay)return;return e&&e._emit(\"changeStatus\"),this.recording?(this.macro.pop(),this.removeEventListener(\"exec\",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on(\"exec\",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(this.$inReplay||!this.macro)return;if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t==\"string\"?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}},this.trimMacro=function(e){return e.map(function(e){return typeof e[0]!=\"string\"&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(o.prototype),t.CommandManager=o}),ace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"],function(e,t,n){\"use strict\";function o(e,t){return{win:e,mac:t}}var r=e(\"../lib/lang\"),i=e(\"../config\"),s=e(\"../range\").Range;t.commands=[{name:\"showSettingsMenu\",bindKey:o(\"Ctrl-,\",\"Command-,\"),exec:function(e){i.loadModule(\"ace/ext/settings_menu\",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:\"goToNextError\",bindKey:o(\"Alt-E\",\"F4\"),exec:function(e){i.loadModule(\"ace/ext/error_marker\",function(t){t.showErrorMarker(e,1)})},scrollIntoView:\"animate\",readOnly:!0},{name:\"goToPreviousError\",bindKey:o(\"Alt-Shift-E\",\"Shift-F4\"),exec:function(e){i.loadModule(\"ace/ext/error_marker\",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:\"animate\",readOnly:!0},{name:\"selectall\",bindKey:o(\"Ctrl-A\",\"Command-A\"),exec:function(e){e.selectAll()},readOnly:!0},{name:\"centerselection\",bindKey:o(null,\"Ctrl-L\"),exec:function(e){e.centerSelection()},readOnly:!0},{name:\"gotoline\",bindKey:o(\"Ctrl-L\",\"Command-L\"),exec:function(e){var t=parseInt(prompt(\"Enter line number:\"),10);isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:\"fold\",bindKey:o(\"Alt-L|Ctrl-F1\",\"Command-Alt-L|Command-F1\"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:\"forEach\",scrollIntoView:\"center\",readOnly:!0},{name:\"unfold\",bindKey:o(\"Alt-Shift-L|Ctrl-Shift-F1\",\"Command-Alt-Shift-L|Command-Shift-F1\"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:\"forEach\",scrollIntoView:\"center\",readOnly:!0},{name:\"toggleFoldWidget\",bindKey:o(\"F2\",\"F2\"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:\"forEach\",scrollIntoView:\"center\",readOnly:!0},{name:\"toggleParentFoldWidget\",bindKey:o(\"Alt-F2\",\"Alt-F2\"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:\"forEach\",scrollIntoView:\"center\",readOnly:!0},{name:\"foldall\",bindKey:o(null,\"Ctrl-Command-Option-0\"),exec:function(e){e.session.foldAll()},scrollIntoView:\"center\",readOnly:!0},{name:\"foldOther\",bindKey:o(\"Alt-0\",\"Command-Option-0\"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:\"center\",readOnly:!0},{name:\"unfoldall\",bindKey:o(\"Alt-Shift-0\",\"Command-Option-Shift-0\"),exec:function(e){e.session.unfold()},scrollIntoView:\"center\",readOnly:!0},{name:\"findnext\",bindKey:o(\"Ctrl-K\",\"Command-G\"),exec:function(e){e.findNext()},multiSelectAction:\"forEach\",scrollIntoView:\"center\",readOnly:!0},{name:\"findprevious\",bindKey:o(\"Ctrl-Shift-K\",\"Command-Shift-G\"),exec:function(e){e.findPrevious()},multiSelectAction:\"forEach\",scrollIntoView:\"center\",readOnly:!0},{name:\"selectOrFindNext\",bindKey:o(\"Alt-K\",\"Ctrl-G\"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:\"selectOrFindPrevious\",bindKey:o(\"Alt-Shift-K\",\"Ctrl-Shift-G\"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:\"find\",bindKey:o(\"Ctrl-F\",\"Command-F\"),exec:function(e){i.loadModule(\"ace/ext/searchbox\",function(t){t.Search(e)})},readOnly:!0},{name:\"overwrite\",bindKey:\"Insert\",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:\"selecttostart\",bindKey:o(\"Ctrl-Shift-Home\",\"Command-Shift-Home|Command-Shift-Up\"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:\"forEach\",readOnly:!0,scrollIntoView:\"animate\",aceCommandGroup:\"fileJump\"},{name:\"gotostart\",bindKey:o(\"Ctrl-Home\",\"Command-Home|Command-Up\"),exec:function(e){e.navigateFileStart()},multiSelectAction:\"forEach\",readOnly:!0,scrollIntoView:\"animate\",aceCommandGroup:\"fileJump\"},{name:\"selectup\",bindKey:o(\"Shift-Up\",\"Shift-Up|Ctrl-Shift-P\"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"golineup\",bindKey:o(\"Up\",\"Up|Ctrl-P\"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selecttoend\",bindKey:o(\"Ctrl-Shift-End\",\"Command-Shift-End|Command-Shift-Down\"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:\"forEach\",readOnly:!0,scrollIntoView:\"animate\",aceCommandGroup:\"fileJump\"},{name:\"gotoend\",bindKey:o(\"Ctrl-End\",\"Command-End|Command-Down\"),exec:function(e){e.navigateFileEnd()},multiSelectAction:\"forEach\",readOnly:!0,scrollIntoView:\"animate\",aceCommandGroup:\"fileJump\"},{name:\"selectdown\",bindKey:o(\"Shift-Down\",\"Shift-Down|Ctrl-Shift-N\"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"golinedown\",bindKey:o(\"Down\",\"Down|Ctrl-N\"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectwordleft\",bindKey:o(\"Ctrl-Shift-Left\",\"Option-Shift-Left\"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"gotowordleft\",bindKey:o(\"Ctrl-Left\",\"Option-Left\"),exec:function(e){e.navigateWordLeft()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selecttolinestart\",bindKey:o(\"Alt-Shift-Left\",\"Command-Shift-Left|Ctrl-Shift-A\"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"gotolinestart\",bindKey:o(\"Alt-Left|Home\",\"Command-Left|Home|Ctrl-A\"),exec:function(e){e.navigateLineStart()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectleft\",bindKey:o(\"Shift-Left\",\"Shift-Left|Ctrl-Shift-B\"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"gotoleft\",bindKey:o(\"Left\",\"Left|Ctrl-B\"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectwordright\",bindKey:o(\"Ctrl-Shift-Right\",\"Option-Shift-Right\"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"gotowordright\",bindKey:o(\"Ctrl-Right\",\"Option-Right\"),exec:function(e){e.navigateWordRight()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selecttolineend\",bindKey:o(\"Alt-Shift-Right\",\"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"gotolineend\",bindKey:o(\"Alt-Right|End\",\"Command-Right|End|Ctrl-E\"),exec:function(e){e.navigateLineEnd()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectright\",bindKey:o(\"Shift-Right\",\"Shift-Right\"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"gotoright\",bindKey:o(\"Right\",\"Right|Ctrl-F\"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectpagedown\",bindKey:\"Shift-PageDown\",exec:function(e){e.selectPageDown()},readOnly:!0},{name:\"pagedown\",bindKey:o(null,\"Option-PageDown\"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:\"gotopagedown\",bindKey:o(\"PageDown\",\"PageDown|Ctrl-V\"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:\"selectpageup\",bindKey:\"Shift-PageUp\",exec:function(e){e.selectPageUp()},readOnly:!0},{name:\"pageup\",bindKey:o(null,\"Option-PageUp\"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:\"gotopageup\",bindKey:\"PageUp\",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:\"scrollup\",bindKey:o(\"Ctrl-Up\",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:\"scrolldown\",bindKey:o(\"Ctrl-Down\",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:\"selectlinestart\",bindKey:\"Shift-Home\",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectlineend\",bindKey:\"Shift-End\",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"togglerecording\",bindKey:o(\"Ctrl-Alt-E\",\"Command-Option-E\"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:\"replaymacro\",bindKey:o(\"Ctrl-Shift-E\",\"Command-Shift-E\"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:\"jumptomatching\",bindKey:o(\"Ctrl-P\",\"Ctrl-P\"),exec:function(e){e.jumpToMatching()},multiSelectAction:\"forEach\",scrollIntoView:\"animate\",readOnly:!0},{name:\"selecttomatching\",bindKey:o(\"Ctrl-Shift-P\",\"Ctrl-Shift-P\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:\"forEach\",scrollIntoView:\"animate\",readOnly:!0},{name:\"expandToMatching\",bindKey:o(\"Ctrl-Shift-M\",\"Ctrl-Shift-M\"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:\"forEach\",scrollIntoView:\"animate\",readOnly:!0},{name:\"passKeysToBrowser\",bindKey:o(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:\"copy\",exec:function(e){},readOnly:!0},{name:\"cut\",exec:function(e){var t=e.getSelectionRange();e._emit(\"cut\",t),e.selection.isEmpty()||(e.session.remove(t),e.clearSelection())},scrollIntoView:\"cursor\",multiSelectAction:\"forEach\"},{name:\"paste\",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:\"cursor\"},{name:\"removeline\",bindKey:o(\"Ctrl-D\",\"Command-D\"),exec:function(e){e.removeLines()},scrollIntoView:\"cursor\",multiSelectAction:\"forEachLine\"},{name:\"duplicateSelection\",bindKey:o(\"Ctrl-Shift-D\",\"Command-Shift-D\"),exec:function(e){e.duplicateSelection()},scrollIntoView:\"cursor\",multiSelectAction:\"forEach\"},{name:\"sortlines\",bindKey:o(\"Ctrl-Alt-S\",\"Command-Alt-S\"),exec:function(e){e.sortLines()},scrollIntoView:\"selection\",multiSelectAction:\"forEachLine\"},{name:\"togglecomment\",bindKey:o(\"Ctrl-/\",\"Command-/\"),exec:function(e){e.toggleCommentLines()},multiSelectAction:\"forEachLine\",scrollIntoView:\"selectionPart\"},{name:\"toggleBlockComment\",bindKey:o(\"Ctrl-Shift-/\",\"Command-Shift-/\"),exec:function(e){e.toggleBlockComment()},multiSelectAction:\"forEach\",scrollIntoView:\"selectionPart\"},{name:\"modifyNumberUp\",bindKey:o(\"Ctrl-Shift-Up\",\"Alt-Shift-Up\"),exec:function(e){e.modifyNumber(1)},scrollIntoView:\"cursor\",multiSelectAction:\"forEach\"},{name:\"modifyNumberDown\",bindKey:o(\"Ctrl-Shift-Down\",\"Alt-Shift-Down\"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:\"cursor\",multiSelectAction:\"forEach\"},{name:\"replace\",bindKey:o(\"Ctrl-H\",\"Command-Option-F\"),exec:function(e){i.loadModule(\"ace/ext/searchbox\",function(t){t.Search(e,!0)})}},{name:\"undo\",bindKey:o(\"Ctrl-Z\",\"Command-Z\"),exec:function(e){e.undo()}},{name:\"redo\",bindKey:o(\"Ctrl-Shift-Z|Ctrl-Y\",\"Command-Shift-Z|Command-Y\"),exec:function(e){e.redo()}},{name:\"copylinesup\",bindKey:o(\"Alt-Shift-Up\",\"Command-Option-Up\"),exec:function(e){e.copyLinesUp()},scrollIntoView:\"cursor\"},{name:\"movelinesup\",bindKey:o(\"Alt-Up\",\"Option-Up\"),exec:function(e){e.moveLinesUp()},scrollIntoView:\"cursor\"},{name:\"copylinesdown\",bindKey:o(\"Alt-Shift-Down\",\"Command-Option-Down\"),exec:function(e){e.copyLinesDown()},scrollIntoView:\"cursor\"},{name:\"movelinesdown\",bindKey:o(\"Alt-Down\",\"Option-Down\"),exec:function(e){e.moveLinesDown()},scrollIntoView:\"cursor\"},{name:\"del\",bindKey:o(\"Delete\",\"Delete|Ctrl-D|Shift-Delete\"),exec:function(e){e.remove(\"right\")},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"backspace\",bindKey:o(\"Shift-Backspace|Backspace\",\"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"),exec:function(e){e.remove(\"left\")},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"cut_or_delete\",bindKey:o(\"Shift-Delete\",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove(\"left\")},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"removetolinestart\",bindKey:o(\"Alt-Backspace\",\"Command-Backspace\"),exec:function(e){e.removeToLineStart()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"removetolineend\",bindKey:o(\"Alt-Delete\",\"Ctrl-K\"),exec:function(e){e.removeToLineEnd()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"removewordleft\",bindKey:o(\"Ctrl-Backspace\",\"Alt-Backspace|Ctrl-Alt-Backspace\"),exec:function(e){e.removeWordLeft()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"removewordright\",bindKey:o(\"Ctrl-Delete\",\"Alt-Delete\"),exec:function(e){e.removeWordRight()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"outdent\",bindKey:o(\"Shift-Tab\",\"Shift-Tab\"),exec:function(e){e.blockOutdent()},multiSelectAction:\"forEach\",scrollIntoView:\"selectionPart\"},{name:\"indent\",bindKey:o(\"Tab\",\"Tab\"),exec:function(e){e.indent()},multiSelectAction:\"forEach\",scrollIntoView:\"selectionPart\"},{name:\"blockoutdent\",bindKey:o(\"Ctrl-[\",\"Ctrl-[\"),exec:function(e){e.blockOutdent()},multiSelectAction:\"forEachLine\",scrollIntoView:\"selectionPart\"},{name:\"blockindent\",bindKey:o(\"Ctrl-]\",\"Ctrl-]\"),exec:function(e){e.blockIndent()},multiSelectAction:\"forEachLine\",scrollIntoView:\"selectionPart\"},{name:\"insertstring\",exec:function(e,t){e.insert(t)},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"inserttext\",exec:function(e,t){e.insert(r.stringRepeat(t.text||\"\",t.times||1))},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"splitline\",bindKey:o(null,\"Ctrl-O\"),exec:function(e){e.splitLine()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"transposeletters\",bindKey:o(\"Ctrl-T\",\"Ctrl-T\"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:\"cursor\"},{name:\"touppercase\",bindKey:o(\"Ctrl-U\",\"Ctrl-U\"),exec:function(e){e.toUpperCase()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"tolowercase\",bindKey:o(\"Ctrl-Shift-U\",\"Ctrl-Shift-U\"),exec:function(e){e.toLowerCase()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"expandtoline\",bindKey:o(\"Ctrl-Shift-L\",\"Command-Shift-L\"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"joinlines\",bindKey:o(null,null),exec:function(e){var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(n.row).length,u=e.session.doc.getTextRange(e.selection.getRange()),a=u.replace(/\\n\\s*/,\" \").length,f=e.session.doc.getLine(n.row);for(var l=n.row+1;l<=i.row+1;l++){var c=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(l)));c.length!==0&&(c=\" \"+c),f+=c}i.row+1<e.session.doc.getLength()-1&&(f+=e.session.doc.getNewLineCharacter()),e.clearSelection(),e.session.doc.replace(new s(n.row,0,i.row+2,0),f),a>0?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(o=e.session.doc.getLine(n.row).length>o?o+1:o,e.selection.moveCursorTo(n.row,o))},multiSelectAction:\"forEach\",readOnly:!0},{name:\"invertSelection\",bindKey:o(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,r=e.selection.rangeList.ranges,i=[];r.length<1&&(r=[e.selection.getRange()]);for(var o=0;o<r.length;o++)o==r.length-1&&(r[o].end.row!==t||r[o].end.column!==n)&&i.push(new s(r[o].end.row,r[o].end.column,t,n)),o===0?(r[o].start.row!==0||r[o].start.column!==0)&&i.push(new s(0,0,r[o].start.row,r[o].start.column)):i.push(new s(r[o-1].end.row,r[o-1].end.column,r[o].start.row,r[o].start.column));e.exitMultiSelectMode(),e.clearSelection();for(var o=0;o<i.length;o++)e.selection.addRange(i[o],!1)},readOnly:!0,scrollIntoView:\"none\"}]}),ace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";e(\"./lib/fixoldbrowsers\");var r=e(\"./lib/oop\"),i=e(\"./lib/dom\"),s=e(\"./lib/lang\"),o=e(\"./lib/useragent\"),u=e(\"./keyboard/textinput\").TextInput,a=e(\"./mouse/mouse_handler\").MouseHandler,f=e(\"./mouse/fold_handler\").FoldHandler,l=e(\"./keyboard/keybinding\").KeyBinding,c=e(\"./edit_session\").EditSession,h=e(\"./search\").Search,p=e(\"./range\").Range,d=e(\"./lib/event_emitter\").EventEmitter,v=e(\"./commands/command_manager\").CommandManager,m=e(\"./commands/default_commands\").commands,g=e(\"./config\"),y=e(\"./token_iterator\").TokenIterator,b=function(e,t){var n=e.getContainerElement();this.container=n,this.renderer=e,this.commands=new v(o.isMac?\"mac\":\"win\",m),this.textInput=new u(e.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.keyBinding=new l(this),this.$mouseHandler=new a(this),new f(this),this.$blockScrolling=0,this.$search=(new h).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on(\"exec\",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal(\"input\",{}),this.session&&this.session.bgTokenizer&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on(\"change\",function(e,t){t._$emitInputEvent.schedule(31)}),this.setSession(t||new c(\"\")),g.resetOptions(this),g._signal(\"editor\",this)};(function(){r.implement(this,d),this.$initOperationListeners=function(){function e(e){return e[e.length-1]}this.selections=[],this.commands.on(\"exec\",this.startOperation.bind(this),!0),this.commands.on(\"afterExec\",this.endOperation.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this)),this.on(\"change\",function(){this.curOp||this.startOperation(),this.curOp.docChanged=!0}.bind(this),!0),this.on(\"changeSelection\",function(){this.curOp||this.startOperation(),this.curOp.selectionChanged=!0}.bind(this),!0)},this.curOp=null,this.prevOp={},this.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.command.name&&this.curOp.command.scrollIntoView!==undefined&&this.$blockScrolling++},this.endOperation=function(e){if(this.curOp){if(e&&e.returnValue===!1)return this.curOp=null;this._signal(\"beforeEndOperation\");var t=this.curOp.command;t.name&&this.$blockScrolling>0&&this.$blockScrolling--;var n=t&&t.scrollIntoView;if(n){switch(n){case\"center-animate\":n=\"animate\";case\"center\":this.renderer.scrollCursorIntoView(null,.5);break;case\"animate\":case\"cursor\":this.renderer.scrollCursorIntoView();break;case\"selectionPart\":var r=this.selection.getRange(),i=this.renderer.layerConfig;(r.start.row>=i.lastRow||r.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:}n==\"animate\"&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=[\"backspace\",\"del\",\"insertstring\"],this.$historyTracker=function(e){if(!this.$mergeUndoDeltas)return;var t=this.prevOp,n=this.$mergeableCommands,r=t.command&&e.command.name==t.command.name;if(e.command.name==\"insertstring\"){var i=e.args;this.mergeNextCommand===undefined&&(this.mergeNextCommand=!0),r=r&&this.mergeNextCommand&&(!/\\s/.test(i)||/\\s/.test(t.args)),this.mergeNextCommand=!0}else r=r&&n.indexOf(e.command.name)!==-1;this.$mergeUndoDeltas!=\"always\"&&Date.now()-this.sequenceStartTime>2e3&&(r=!1),r?this.session.mergeUndoDeltas=!0:n.indexOf(e.command.name)!==-1&&(this.sequenceStartTime=Date.now())},this.setKeyboardHandler=function(e,t){if(e&&typeof e==\"string\"){this.$keybindingId=e;var n=this;g.loadModule([\"keybinding\",e],function(r){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(r&&r.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session==e)return;this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off(\"change\",this.$onDocumentChange),this.session.off(\"changeMode\",this.$onChangeMode),this.session.off(\"tokenizerUpdate\",this.$onTokenizerUpdate),this.session.off(\"changeTabSize\",this.$onChangeTabSize),this.session.off(\"changeWrapLimit\",this.$onChangeWrapLimit),this.session.off(\"changeWrapMode\",this.$onChangeWrapMode),this.session.off(\"changeFold\",this.$onChangeFold),this.session.off(\"changeFrontMarker\",this.$onChangeFrontMarker),this.session.off(\"changeBackMarker\",this.$onChangeBackMarker),this.session.off(\"changeBreakpoint\",this.$onChangeBreakpoint),this.session.off(\"changeAnnotation\",this.$onChangeAnnotation),this.session.off(\"changeOverwrite\",this.$onCursorChange),this.session.off(\"changeScrollTop\",this.$onScrollTopChange),this.session.off(\"changeScrollLeft\",this.$onScrollLeftChange);var n=this.session.getSelection();n.off(\"changeCursor\",this.$onCursorChange),n.off(\"changeSelection\",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on(\"change\",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on(\"changeMode\",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on(\"tokenizerUpdate\",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on(\"changeTabSize\",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on(\"changeWrapLimit\",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on(\"changeWrapMode\",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on(\"changeFold\",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on(\"changeFrontMarker\",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on(\"changeBackMarker\",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on(\"changeBreakpoint\",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on(\"changeAnnotation\",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on(\"changeOverwrite\",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on(\"changeScrollTop\",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on(\"changeScrollLeft\",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on(\"changeCursor\",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on(\"changeSelection\",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal(\"changeSession\",{session:e,oldSession:t}),this.curOp=null,t&&t._signal(\"changeEditor\",{oldEditor:this}),e&&e._signal(\"changeEditor\",{editor:this})},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?t==1?this.navigateFileEnd():t==-1&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption(\"fontSize\")||i.computedStyle(this.container,\"fontSize\")},this.setFontSize=function(e){this.setOption(\"fontSize\",e)},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(this.$highlightPending)return;var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=t.findMatchingBracket(e.getCursorPosition());if(n)var r=new p(n.row,n.column,n.row,n.column+1);else if(t.$mode.getMatching)var r=t.$mode.getMatching(e.session);r&&(t.$bracketHighlight=t.addMarker(r,\"ace_bracket\",\"text\"))},50)},this.$highlightTags=function(){if(this.$highlightTagPending)return;var e=this;this.$highlightTagPending=!0,setTimeout(function(){e.$highlightTagPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=e.getCursorPosition(),r=new y(e.session,n.row,n.column),i=r.getCurrentToken();if(!i||!/\\b(?:tag-open|tag-name)/.test(i.type)){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}if(i.type.indexOf(\"tag-open\")!=-1){i=r.stepForward();if(!i)return}var s=i.value,o=0,u=r.stepBackward();if(u.value==\"<\"){do u=i,i=r.stepForward(),i&&i.value===s&&i.type.indexOf(\"tag-name\")!==-1&&(u.value===\"<\"?o++:u.value===\"</\"&&o--);while(i&&o>=0)}else{do i=u,u=r.stepBackward(),i&&i.value===s&&i.type.indexOf(\"tag-name\")!==-1&&(u.value===\"<\"?o++:u.value===\"</\"&&o--);while(u&&o<=0);r.stepForward()}if(!i){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}var a=r.getCurrentTokenRow(),f=r.getCurrentTokenColumn(),l=new p(a,f,a,f+i.value.length),c=t.$backMarkers[t.$tagHighlight];t.$tagHighlight&&c!=undefined&&l.compareRange(c.range)!==0&&(t.removeMarker(t.$tagHighlight),t.$tagHighlight=null),l&&!t.$tagHighlight&&(t.$tagHighlight=t.addMarker(l,\"ace_bracket\",\"text\"))},50)},this.focus=function(){var e=this;setTimeout(function(){e.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(e){if(this.$isFocused)return;this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit(\"focus\",e)},this.onBlur=function(e){if(!this.$isFocused)return;this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit(\"blur\",e)},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:Infinity;this.renderer.updateLines(e.start.row,n,t),this._signal(\"change\",e),this.$cursorChange(),this.$updateHighlightActiveLine()},this.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$blockScrolling||(g.warn(\"Automatically scrolling cursor into view after selection change\",\"this will be disabled in the next version\",\"set editor.$blockScrolling = Infinity to disable this message\"),this.renderer.scrollCursorIntoView()),this.$highlightBrackets(),this.$highlightTags(),this.$updateHighlightActiveLine(),this._signal(\"changeSelection\")},this.$updateHighlightActiveLine=function(){var e=this.getSession(),t;if(this.$highlightActiveLine){if(this.$selectionStyle!=\"line\"||!this.selection.isMultiLine())t=this.getCursorPosition();this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(t=!1)}if(e.$highlightLineMarker&&!t)e.removeMarker(e.$highlightLineMarker.id),e.$highlightLineMarker=null;else if(!e.$highlightLineMarker&&t){var n=new p(t.row,t.column,t.row,Infinity);n.id=e.addMarker(n,\"ace_active-line\",\"screenLine\"),e.$highlightLineMarker=n}else t&&(e.$highlightLineMarker.start.row=t.row,e.$highlightLineMarker.end.row=t.row,e.$highlightLineMarker.start.column=t.column,e._signal(\"changeBackMarker\"))},this.onSelectionChange=function(e){var t=this.session;t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null;if(!this.selection.isEmpty()){var n=this.selection.getRange(),r=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,\"ace_selection\",r)}else this.$updateHighlightActiveLine();var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal(\"changeSelection\")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(t.isEmpty()||t.isMultiLine())return;var n=t.start.column-1,r=t.end.column+1,i=e.getLine(t.start.row),s=i.length,o=i.substring(Math.max(n,0),Math.min(r,s));if(n>=0&&/^[\\w\\d]/.test(o)||r<=s&&/[\\w\\d]$/.test(o))return;o=i.substring(t.start.column,t.end.column);if(!/^[\\w\\d]+$/.test(o))return;var u=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:o});return u},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit(\"changeMode\",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText();return this._signal(\"copy\",e),e},this.onCopy=function(){this.commands.exec(\"copy\",this)},this.onCut=function(){this.commands.exec(\"cut\",this)},this.onPaste=function(e,t){var n={text:e,event:t};this.commands.exec(\"paste\",this,n)},this.$handlePaste=function(e){typeof e==\"string\"&&(e={text:e}),this._signal(\"paste\",e);var t=e.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(t);else{var n=t.split(/\\r\\n|\\r|\\n/),r=this.selection.rangeList.ranges;if(n.length>r.length||n.length<2||!n[1])return this.commands.exec(\"insertstring\",this,t);for(var i=r.length;i--;){var s=r[i];s.isEmpty()||this.session.remove(s),this.session.insert(s.start,n[i])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var n=this.session,r=n.getMode(),i=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var s=r.transformAction(n.getState(i.row),\"insertion\",this,n,e);s&&(e!==s.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=s.text)}e==\"\t\"&&(e=this.session.getTabString());if(!this.selection.isEmpty()){var o=this.getSelectionRange();i=this.session.remove(o),this.clearSelection()}else if(this.session.getOverwrite()){var o=new p.fromPoints(i,i);o.end.column+=e.length,this.session.remove(o)}if(e==\"\\n\"||e==\"\\r\\n\"){var u=n.getLine(i.row);if(i.column>u.search(/\\S|$/)){var a=u.substr(i.column).search(/\\S|$/);n.doc.removeInLine(i.row,i.column,i.column+a)}}this.clearSelection();var f=i.column,l=n.getState(i.row),u=n.getLine(i.row),c=r.checkOutdent(l,u,e),h=n.insert(i,e);s&&s.selection&&(s.selection.length==2?this.selection.setSelectionRange(new p(i.row,f+s.selection[0],i.row,f+s.selection[1])):this.selection.setSelectionRange(new p(i.row+s.selection[0],s.selection[1],i.row+s.selection[2],s.selection[3])));if(n.getDocument().isNewLine(e)){var d=r.getNextLineIndent(l,u.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},d)}c&&r.autoOutdent(l,n,i.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,n){this.keyBinding.onCommandKey(e,t,n)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption(\"scrollSpeed\",e)},this.getScrollSpeed=function(){return this.getOption(\"scrollSpeed\")},this.setDragDelay=function(e){this.setOption(\"dragDelay\",e)},this.getDragDelay=function(){return this.getOption(\"dragDelay\")},this.setSelectionStyle=function(e){this.setOption(\"selectionStyle\",e)},this.getSelectionStyle=function(){return this.getOption(\"selectionStyle\")},this.setHighlightActiveLine=function(e){this.setOption(\"highlightActiveLine\",e)},this.getHighlightActiveLine=function(){return this.getOption(\"highlightActiveLine\")},this.setHighlightGutterLine=function(e){this.setOption(\"highlightGutterLine\",e)},this.getHighlightGutterLine=function(){return this.getOption(\"highlightGutterLine\")},this.setHighlightSelectedWord=function(e){this.setOption(\"highlightSelectedWord\",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption(\"readOnly\",e)},this.getReadOnly=function(){return this.getOption(\"readOnly\")},this.setBehavioursEnabled=function(e){this.setOption(\"behavioursEnabled\",e)},this.getBehavioursEnabled=function(){return this.getOption(\"behavioursEnabled\")},this.setWrapBehavioursEnabled=function(e){this.setOption(\"wrapBehavioursEnabled\",e)},this.getWrapBehavioursEnabled=function(){return this.getOption(\"wrapBehavioursEnabled\")},this.setShowFoldWidgets=function(e){this.setOption(\"showFoldWidgets\",e)},this.getShowFoldWidgets=function(){return this.getOption(\"showFoldWidgets\")},this.setFadeFoldWidgets=function(e){this.setOption(\"fadeFoldWidgets\",e)},this.getFadeFoldWidgets=function(){return this.getOption(\"fadeFoldWidgets\")},this.remove=function(e){this.selection.isEmpty()&&(e==\"left\"?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,r=n.getState(t.start.row),i=n.getMode().transformAction(r,\"deletion\",this,n,t);if(t.end.column===0){var s=n.getTextRange(t);if(s[s.length-1]==\"\\n\"){var o=n.getLine(t.end.row);/^\\s+$/.test(o)&&(t.end.column=o.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert(\"\\n\"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(!this.selection.isEmpty())return;var e=this.getCursorPosition(),t=e.column;if(t===0)return;var n=this.session.getLine(e.row),r,i;t<n.length?(r=n.charAt(t)+n.charAt(t-1),i=new p(e.row,t-1,e.row,t+1)):(r=n.charAt(t-1)+n.charAt(t-2),i=new p(e.row,t-2,e.row,t)),this.session.replace(i,r)},this.toLowerCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toLowerCase()),this.selection.setSelectionRange(e)},this.toUpperCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toUpperCase()),this.selection.setSelectionRange(e)},this.indent=function(){var e=this.session,t=this.getSelectionRange();if(t.start.row<t.end.row){var n=this.$getSelectedRows();e.indentRows(n.first,n.last,\"\t\");return}if(t.start.column<t.end.column){var r=e.getTextRange(t);if(!/^\\s+$/.test(r)){var n=this.$getSelectedRows();e.indentRows(n.first,n.last,\"\t\");return}}var i=e.getLine(t.start.row),o=t.start,u=e.getTabSize(),a=e.documentToScreenColumn(o.row,o.column);if(this.session.getUseSoftTabs())var f=u-a%u,l=s.stringRepeat(\" \",f);else{var f=a%u;while(i[t.start.column-1]==\" \"&&f)t.start.column--,f--;this.selection.setSelectionRange(t),l=\"\t\"}return this.insert(l)},this.blockIndent=function(){var e=this.$getSelectedRows();this.session.indentRows(e.first,e.last,\"\t\")},this.blockOutdent=function(){var e=this.session.getSelection();this.session.outdentRows(e.getRange())},this.sortLines=function(){var e=this.$getSelectedRows(),t=this.session,n=[];for(i=e.first;i<=e.last;i++)n.push(t.getLine(i));n.sort(function(e,t){return e.toLowerCase()<t.toLowerCase()?-1:e.toLowerCase()>t.toLowerCase()?1:0});var r=new p(0,0,0,0);for(var i=e.first;i<=e.last;i++){var s=t.getLine(i);r.start.row=i,r.end.row=i,r.end.column=s.length,t.replace(r,n[i-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},this.getNumberAt=function(e,t){var n=/[\\-]?[0-9]+(?:\\.[0-9]+)?/g;n.lastIndex=0;var r=this.session.getLine(e);while(n.lastIndex<t){var i=n.exec(r);if(i.index<=t&&i.index+i[0].length>=t){var s={value:i[0],start:i.index,end:i.index+i[0].length};return s}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,r=new p(t,n-1,t,n),i=this.session.getTextRange(r);if(!isNaN(parseFloat(i))&&isFinite(i)){var s=this.getNumberAt(t,n);if(s){var o=s.value.indexOf(\".\")>=0?s.start+s.value.indexOf(\".\")+1:s.end,u=s.start+s.value.length-o,a=parseFloat(s.value);a*=Math.pow(10,u),o!==s.end&&n<o?e*=Math.pow(10,s.end-n-1):e*=Math.pow(10,s.end-n),a+=e,a/=Math.pow(10,u);var f=a.toFixed(u),l=new p(t,s.start,t,s.end);this.session.replace(l,f),this.moveCursorTo(t,Math.max(s.start+1,n+f.length-s.value.length))}}},this.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},this.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),r=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var s=r?n.start:n.end,o=t.insert(s,t.getTextRange(n),!1);n.start=s,n.end=o,e.setSelectionRange(n,r)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(e,t,n){return this.session.moveText(e,t,n)},this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(e,t){var n,r,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var s=i.toOrientedRange();n=this.$getSelectedRows(s),r=this.session.$moveLines(n.first,n.last,t?0:e),t&&e==-1&&(r=0),s.moveBy(r,0),i.fromOrientedRange(s)}else{var o=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;var u=0,a=0,f=o.length;for(var l=0;l<f;l++){var c=l;o[l].moveBy(u,0),n=this.$getSelectedRows(o[l]);var h=n.first,p=n.last;while(++l<f){a&&o[l].moveBy(a,0);var d=this.$getSelectedRows(o[l]);if(t&&d.first!=p)break;if(!t&&d.first>p+1)break;p=d.last}l--,u=this.session.$moveLines(h,p,t?0:e),t&&e==-1&&(c=l+1);while(c<=l)o[c].moveBy(u,0),c++;t||(u=0),a+=u}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var n=this.renderer,r=this.renderer.layerConfig,i=e*Math.floor(r.height/r.lineHeight);this.$blockScrolling++,t===!0?this.selection.$moveSelection(function(){this.moveCursorBy(i,0)}):t===!1&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection()),this.$blockScrolling--;var s=n.scrollTop;n.scrollBy(0,i*r.lineHeight),t!=null&&n.scrollCursorIntoView(null,.5),n.animateScrolling(s)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,n,r){this.renderer.scrollToLine(e,t,n,r)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var n=this.getCursorPosition(),r=new y(this.session,n.row,n.column),i=r.getCurrentToken(),s=i||r.stepForward();if(!s)return;var o,u=!1,a={},f=n.column-s.start,l,c={\")\":\"(\",\"(\":\"(\",\"]\":\"[\",\"[\":\"[\",\"{\":\"{\",\"}\":\"{\"};do{if(s.value.match(/[{}()\\[\\]]/g))for(;f<s.value.length&&!u;f++){if(!c[s.value[f]])continue;l=c[s.value[f]]+\".\"+s.type.replace(\"rparen\",\"lparen\"),isNaN(a[l])&&(a[l]=0);switch(s.value[f]){case\"(\":case\"[\":case\"{\":a[l]++;break;case\")\":case\"]\":case\"}\":a[l]--,a[l]===-1&&(o=\"bracket\",u=!0)}}else s&&s.type.indexOf(\"tag-name\")!==-1&&(isNaN(a[s.value])&&(a[s.value]=0),i.value===\"<\"?a[s.value]++:i.value===\"</\"&&a[s.value]--,a[s.value]===-1&&(o=\"tag\",u=!0));u||(i=s,s=r.stepForward(),f=0)}while(s&&!u);if(!o)return;var h,d;if(o===\"bracket\"){h=this.session.getBracketRange(n);if(!h){h=new p(r.getCurrentTokenRow(),r.getCurrentTokenColumn()+f-1,r.getCurrentTokenRow(),r.getCurrentTokenColumn()+f-1),d=h.start;if(t||d.row===n.row&&Math.abs(d.column-n.column)<2)h=this.session.getBracketRange(d)}}else if(o===\"tag\"){if(!s||s.type.indexOf(\"tag-name\")===-1)return;var v=s.value;h=new p(r.getCurrentTokenRow(),r.getCurrentTokenColumn()-2,r.getCurrentTokenRow(),r.getCurrentTokenColumn()-2);if(h.compare(n.row,n.column)===0){u=!1;do s=i,i=r.stepBackward(),i&&(i.type.indexOf(\"tag-close\")!==-1&&h.setEnd(r.getCurrentTokenRow(),r.getCurrentTokenColumn()+1),s.value===v&&s.type.indexOf(\"tag-name\")!==-1&&(i.value===\"<\"?a[v]++:i.value===\"</\"&&a[v]--,a[v]===0&&(u=!0)));while(i&&!u)}s&&s.type.indexOf(\"tag-name\")&&(d=h.start,d.row==n.row&&Math.abs(d.column-n.column)<2&&(d=h.end))}d=h&&h.cursor||d,d&&(e?h&&t?this.selection.setRange(h):h&&h.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(d.row,d.column):this.selection.moveTo(d.row,d.column))},this.gotoLine=function(e,t,n){this.selection.clearSelection(),this.session.unfold({row:e-1,column:t||0}),this.$blockScrolling+=1,this.exitMultiSelectMode&&this.exitMultiSelectMode(),this.moveCursorTo(e-1,t||0),this.$blockScrolling-=1,this.isRowFullyVisible(e-1)||this.scrollToLine(e-1,!0,n)},this.navigateTo=function(e,t){this.selection.moveTo(e,t)},this.navigateUp=function(e){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(-e||-1,0)},this.navigateDown=function(e){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(e||1,0)},this.navigateLeft=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().start;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().end;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(e,t){t&&this.$search.set(t);var n=this.$search.find(this.session),r=0;return n?(this.$tryReplace(n,e)&&(r=1),n!==null&&(this.selection.setSelectionRange(n),this.renderer.scrollSelectionIntoView(n.start,n.end)),r):r},this.replaceAll=function(e,t){t&&this.$search.set(t);var n=this.$search.findAll(this.session),r=0;if(!n.length)return r;this.$blockScrolling+=1;var i=this.getSelectionRange();this.selection.moveTo(0,0);for(var s=n.length-1;s>=0;--s)this.$tryReplace(n[s],e)&&r++;return this.selection.setSelectionRange(i),this.$blockScrolling-=1,r},this.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return t=this.$search.replace(n,t),t!==null?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,n){t||(t={}),typeof e==\"string\"||e instanceof RegExp?t.needle=e:typeof e==\"object\"&&r.mixin(t,e);var i=this.selection.getRange();t.needle==null&&(e=this.session.getTextRange(i)||this.$search.$options.needle,e||(i=this.session.getWordRange(i.start.row,i.start.column),e=this.session.getTextRange(i)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:i});var s=this.$search.find(this.session);if(t.preventScroll)return s;if(s)return this.revealRange(s,n),s;t.backwards?i.start=i.end:i.end=i.start,this.selection.setRange(i)},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.$blockScrolling+=1,this.session.unfold(e),this.selection.setSelectionRange(e),this.$blockScrolling-=1;var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),t!==!1&&this.renderer.animateScrolling(n)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal(\"destroy\",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(!e)return;var t,n=this,r=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement(\"div\"));var i=this.$scrollAnchor;i.style.cssText=\"position:absolute\",this.container.insertBefore(i,this.container.firstChild);var s=this.on(\"changeSelection\",function(){r=!0}),o=this.renderer.on(\"beforeRender\",function(){r&&(t=n.renderer.container.getBoundingClientRect())}),u=this.renderer.on(\"afterRender\",function(){if(r&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,s=e.$cursorLayer.$pixelPos,o=e.layerConfig,u=s.top-o.offset;s.top>=0&&u+t.top<0?r=!0:s.top<o.height&&s.top+t.top+o.lineHeight>window.innerHeight?r=!1:r=null,r!=null&&(i.style.top=u+\"px\",i.style.left=s.left+\"px\",i.style.height=o.lineHeight+\"px\",i.scrollIntoView(r)),r=t=null}});this.setAutoScrollEditorIntoView=function(e){if(e)return;delete this.setAutoScrollEditorIntoView,this.off(\"changeSelection\",s),this.renderer.off(\"afterRender\",u),this.renderer.off(\"beforeRender\",o)}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||\"ace\",t=this.renderer.$cursorLayer;if(!t)return;t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&e!=\"wide\",i.setCssClass(t.element,\"ace_slim-cursors\",/slim/.test(e))}}).call(b.prototype),g.defineOptions(b.prototype,\"editor\",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal(\"changeSelectionStyle\",{data:e})},initialValue:\"line\"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:[\"ace\",\"slim\",\"smooth\",\"wide\"],initialValue:\"ace\"},mergeUndoDeltas:{values:[!1,!0,\"always\"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.keybindingId},handlesSet:!0},hScrollBarAlwaysVisible:\"renderer\",vScrollBarAlwaysVisible:\"renderer\",highlightGutterLine:\"renderer\",animatedScroll:\"renderer\",showInvisibles:\"renderer\",showPrintMargin:\"renderer\",printMarginColumn:\"renderer\",printMargin:\"renderer\",fadeFoldWidgets:\"renderer\",showFoldWidgets:\"renderer\",showLineNumbers:\"renderer\",showGutter:\"renderer\",displayIndentGuides:\"renderer\",fontSize:\"renderer\",fontFamily:\"renderer\",maxLines:\"renderer\",minLines:\"renderer\",scrollPastEnd:\"renderer\",fixedWidthGutter:\"renderer\",theme:\"renderer\",scrollSpeed:\"$mouseHandler\",dragDelay:\"$mouseHandler\",dragEnabled:\"$mouseHandler\",focusTimout:\"$mouseHandler\",tooltipFollowsMouse:\"$mouseHandler\",firstLineNumber:\"session\",overwrite:\"session\",newLineMode:\"session\",useWorker:\"session\",useSoftTabs:\"session\",tabSize:\"session\",wrap:\"session\",indentedSoftWrap:\"session\",foldStyle:\"session\",mode:\"session\"}),t.Editor=b}),ace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(){this.reset()};(function(){function e(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines.length==1?null:e.lines,text:e.lines.length==1?e.lines[0]:null}}function t(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines||[e.text]}}function n(e,t){var n=new Array(e.length);for(var r=0;r<e.length;r++){var i=e[r],s={group:i.group,deltas:new Array(i.length)};for(var o=0;o<i.deltas.length;o++){var u=i.deltas[o];s.deltas[o]=t(u)}n[r]=s}return n}this.execute=function(e){var t=e.args[0];this.$doc=e.args[1],e.merge&&this.hasUndo()&&(this.dirtyCounter--,t=this.$undoStack.pop().concat(t)),this.$undoStack.push(t),this.$redoStack=[],this.dirtyCounter<0&&(this.dirtyCounter=NaN),this.dirtyCounter++},this.undo=function(e){var t=this.$undoStack.pop(),n=null;return t&&(n=this.$doc.undoChanges(t,e),this.$redoStack.push(t),this.dirtyCounter--),n},this.redo=function(e){var t=this.$redoStack.pop(),n=null;return t&&(n=this.$doc.redoChanges(this.$deserializeDeltas(t),e),this.$undoStack.push(t),this.dirtyCounter++),n},this.reset=function(){this.$undoStack=[],this.$redoStack=[],this.dirtyCounter=0},this.hasUndo=function(){return this.$undoStack.length>0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return this.dirtyCounter===0},this.$serializeDeltas=function(t){return n(t,e)},this.$deserializeDeltas=function(e){return n(e,t)}}).call(r.prototype),t.UndoManager=r}),ace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"../lib/dom\"),i=e(\"../lib/oop\"),s=e(\"../lib/lang\"),o=e(\"../lib/event_emitter\").EventEmitter,u=function(e){this.element=r.createElement(\"div\"),this.element.className=\"ace_layer ace_gutter-layer\",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){i.implement(this,o),this.setSession=function(e){this.session&&this.session.removeEventListener(\"change\",this.$updateAnnotations),this.session=e,e&&e.on(\"change\",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn(\"deprecated use session.addGutterDecoration\"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn(\"deprecated use session.removeGutterDecoration\"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;t<e.length;t++){var n=e[t],r=n.row,i=this.$annotations[r];i||(i=this.$annotations[r]={text:[]});var o=n.text;o=o?s.escapeHTML(o):n.html||\"\",i.text.indexOf(o)===-1&&i.text.push(o);var u=n.type;u==\"error\"?i.className=\" ace_error\":u==\"warning\"&&i.className!=\" ace_error\"?i.className=\" ace_warning\":u==\"info\"&&!i.className&&(i.className=\" ace_info\")}},this.$updateAnnotations=function(e){if(!this.$annotations.length)return;var t=e.start.row,n=e.end.row-t;if(n!==0)if(e.action==\"remove\")this.$annotations.splice(t,n+1,null);else{var r=new Array(n+1);r.unshift(t,1),this.$annotations.splice.apply(this.$annotations,r)}},this.update=function(e){var t=this.session,n=e.firstRow,i=Math.min(e.lastRow+e.gutterOffset,t.getLength()-1),s=t.getNextFoldLine(n),o=s?s.start.row:Infinity,u=this.$showFoldWidgets&&t.foldWidgets,a=t.$breakpoints,f=t.$decorations,l=t.$firstLineNumber,c=0,h=t.gutterRenderer||this.$renderer,p=null,d=-1,v=n;for(;;){v>o&&(v=s.end.row+1,s=t.getNextFoldLine(v,s),o=s?s.start.row:Infinity);if(v>i){while(this.$cells.length>d+1)p=this.$cells.pop(),this.element.removeChild(p.element);break}p=this.$cells[++d],p||(p={element:null,textNode:null,foldWidget:null},p.element=r.createElement(\"div\"),p.textNode=document.createTextNode(\"\"),p.element.appendChild(p.textNode),this.element.appendChild(p.element),this.$cells[d]=p);var m=\"ace_gutter-cell \";a[v]&&(m+=a[v]),f[v]&&(m+=f[v]),this.$annotations[v]&&(m+=this.$annotations[v].className),p.element.className!=m&&(p.element.className=m);var g=t.getRowLength(v)*e.lineHeight+\"px\";g!=p.element.style.height&&(p.element.style.height=g);if(u){var y=u[v];y==null&&(y=u[v]=t.getFoldWidget(v))}if(y){p.foldWidget||(p.foldWidget=r.createElement(\"span\"),p.element.appendChild(p.foldWidget));var m=\"ace_fold-widget ace_\"+y;y==\"start\"&&v==o&&v<s.end.row?m+=\" ace_closed\":m+=\" ace_open\",p.foldWidget.className!=m&&(p.foldWidget.className=m);var g=e.lineHeight+\"px\";p.foldWidget.style.height!=g&&(p.foldWidget.style.height=g)}else p.foldWidget&&(p.element.removeChild(p.foldWidget),p.foldWidget=null);var b=c=h?h.getText(t,v):v+l;b!=p.textNode.data&&(p.textNode.data=b),v++}this.element.style.height=e.minHeight+\"px\";if(this.$fixedWidth||t.$useWrapMode)c=t.getLength()+l;var w=h?h.getWidth(t,c,e):c.toString().length*e.characterWidth,E=this.$padding||this.$computePadding();w+=E.left+E.right,w!==this.gutterWidth&&!isNaN(w)&&(this.gutterWidth=w,this.element.style.width=Math.ceil(this.gutterWidth)+\"px\",this._emit(\"changeGutterWidth\",w))},this.$fixedWidth=!1,this.$showLineNumbers=!0,this.$renderer=\"\",this.setShowLineNumbers=function(e){this.$renderer=!e&&{getWidth:function(){return\"\"},getText:function(){return\"\"}}},this.getShowLineNumbers=function(){return this.$showLineNumbers},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(e){e?r.addCssClass(this.element,\"ace_folding-enabled\"):r.removeCssClass(this.element,\"ace_folding-enabled\"),this.$showFoldWidgets=e,this.$padding=null},this.getShowFoldWidgets=function(){return this.$showFoldWidgets},this.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var e=r.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=parseInt(e.paddingLeft)+1||0,this.$padding.right=parseInt(e.paddingRight)||0,this.$padding},this.getRegion=function(e){var t=this.$padding||this.$computePadding(),n=this.element.getBoundingClientRect();if(e.x<t.left+n.left)return\"markers\";if(this.$showFoldWidgets&&e.x>n.right-t.right)return\"foldWidgets\"}}).call(u.prototype),t.Gutter=u}),ace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=e(\"../lib/dom\"),s=function(e){this.element=i.createElement(\"div\"),this.element.className=\"ace_layer ace_marker-layer\",e.appendChild(this.element)};(function(){function e(e,t,n,r){return(e?1:0)|(t?2:0)|(n?4:0)|(r?8:0)}this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){var e=e||this.config;if(!e)return;this.config=e;var t=[];for(var n in this.markers){var r=this.markers[n];if(!r.range){r.update(t,this,this.session,e);continue}var i=r.range.clipRows(e.firstRow,e.lastRow);if(i.isEmpty())continue;i=i.toScreenRange(this.session);if(r.renderer){var s=this.$getTop(i.start.row,e),o=this.$padding+i.start.column*e.characterWidth;r.renderer(t,i,o,s,e)}else r.type==\"fullLine\"?this.drawFullLineMarker(t,i,r.clazz,e):r.type==\"screenLine\"?this.drawScreenLineMarker(t,i,r.clazz,e):i.isMultiLine()?r.type==\"text\"?this.drawTextMarker(t,i,r.clazz,e):this.drawMultiLineMarker(t,i,r.clazz,e):this.drawSingleLineMarker(t,i,r.clazz+\" ace_start\"+\" ace_br15\",e)}this.element.innerHTML=t.join(\"\")},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(t,n,i,s,o){var u=this.session,a=n.start.row,f=n.end.row,l=a,c=0,h=0,p=u.getScreenLastRowColumn(l),d=new r(l,n.start.column,l,h);for(;l<=f;l++)d.start.row=d.end.row=l,d.start.column=l==a?n.start.column:u.getRowWrapIndent(l),d.end.column=p,c=h,h=p,p=l+1<f?u.getScreenLastRowColumn(l+1):l==f?0:n.end.column,this.drawSingleLineMarker(t,d,i+(l==a?\" ace_start\":\"\")+\" ace_br\"+e(l==a||l==a+1&&n.start.column,c<h,h>p,l==f),s,l==f?0:1,o)},this.drawMultiLineMarker=function(e,t,n,r,i){var s=this.$padding,o=r.lineHeight,u=this.$getTop(t.start.row,r),a=s+t.start.column*r.characterWidth;i=i||\"\",e.push(\"<div class='\",n,\" ace_br1 ace_start' style='\",\"height:\",o,\"px;\",\"right:0;\",\"top:\",u,\"px;\",\"left:\",a,\"px;\",i,\"'></div>\"),u=this.$getTop(t.end.row,r);var f=t.end.column*r.characterWidth;e.push(\"<div class='\",n,\" ace_br12' style='\",\"height:\",o,\"px;\",\"width:\",f,\"px;\",\"top:\",u,\"px;\",\"left:\",s,\"px;\",i,\"'></div>\"),o=(t.end.row-t.start.row-1)*r.lineHeight;if(o<=0)return;u=this.$getTop(t.start.row+1,r);var l=(t.start.column?1:0)|(t.end.column?0:8);e.push(\"<div class='\",n,l?\" ace_br\"+l:\"\",\"' style='\",\"height:\",o,\"px;\",\"right:0;\",\"top:\",u,\"px;\",\"left:\",s,\"px;\",i,\"'></div>\")},this.drawSingleLineMarker=function(e,t,n,r,i,s){var o=r.lineHeight,u=(t.end.column+(i||0)-t.start.column)*r.characterWidth,a=this.$getTop(t.start.row,r),f=this.$padding+t.start.column*r.characterWidth;e.push(\"<div class='\",n,\"' style='\",\"height:\",o,\"px;\",\"width:\",u,\"px;\",\"top:\",a,\"px;\",\"left:\",f,\"px;\",s||\"\",\"'></div>\")},this.drawFullLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,r)-s),e.push(\"<div class='\",n,\"' style='\",\"height:\",o,\"px;\",\"top:\",s,\"px;\",\"left:0;right:0;\",i||\"\",\"'></div>\")},this.drawScreenLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;e.push(\"<div class='\",n,\"' style='\",\"height:\",o,\"px;\",\"top:\",s,\"px;\",\"left:0;right:0;\",i||\"\",\"'></div>\")}}).call(s.prototype),t.Marker=s}),ace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/dom\"),s=e(\"../lib/lang\"),o=e(\"../lib/useragent\"),u=e(\"../lib/event_emitter\").EventEmitter,a=function(e){this.element=i.createElement(\"div\"),this.element.className=\"ace_layer ace_text-layer\",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){r.implement(this,u),this.EOF_CHAR=\"\\u00b6\",this.EOL_CHAR_LF=\"\\u00ac\",this.EOL_CHAR_CRLF=\"\\u00a4\",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR=\"\\u2014\",this.SPACE_CHAR=\"\\u00b7\",this.$padding=0,this.$updateEolChar=function(){var e=this.session.doc.getNewLineCharacter()==\"\\n\"?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!0},this.setPadding=function(e){this.$padding=e,this.element.style.padding=\"0 \"+e+\"px\"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on(\"changeCharacterSize\",function(e){this._signal(\"changeCharacterSize\",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;var t=this.$tabStrings=[0];for(var n=1;n<e+1;n++)this.showInvisibles?t.push(\"<span class='ace_invisible ace_invisible_tab'>\"+s.stringRepeat(this.TAB_CHAR,n)+\"</span>\"):t.push(s.stringRepeat(\" \",n));if(this.displayIndentGuides){this.$indentGuideRe=/\\s\\S| \\t|\\t |\\s$/;var r=\"ace_indent-guide\",i=\"\",o=\"\";if(this.showInvisibles){r+=\" ace_invisible\",i=\" ace_invisible_space\",o=\" ace_invisible_tab\";var u=s.stringRepeat(this.SPACE_CHAR,this.tabSize),a=s.stringRepeat(this.TAB_CHAR,this.tabSize)}else var u=s.stringRepeat(\" \",this.tabSize),a=u;this.$tabStrings[\" \"]=\"<span class='\"+r+i+\"'>\"+u+\"</span>\",this.$tabStrings[\"\t\"]=\"<span class='\"+r+o+\"'>\"+a+\"</span>\"}},this.updateLines=function(e,t,n){(this.config.lastRow!=e.lastRow||this.config.firstRow!=e.firstRow)&&this.scrollLines(e),this.config=e;var r=Math.max(t,e.firstRow),i=Math.min(n,e.lastRow),s=this.element.childNodes,o=0;for(var u=e.firstRow;u<r;u++){var a=this.session.getFoldLine(u);if(a){if(a.containsRow(r)){r=a.start.row;break}u=a.end.row}o++}var u=r,a=this.session.getNextFoldLine(u),f=a?a.start.row:Infinity;for(;;){u>f&&(u=a.end.row+1,a=this.session.getNextFoldLine(u,a),f=a?a.start.row:Infinity);if(u>i)break;var l=s[o++];if(l){var c=[];this.$renderLine(c,u,!this.$useLineGroups(),u==f?a:!1),l.style.height=e.lineHeight*this.session.getRowLength(u)+\"px\",l.innerHTML=c.join(\"\")}u++}},this.scrollLines=function(e){var t=this.config;this.config=e;if(!t||t.lastRow<e.firstRow)return this.update(e);if(e.lastRow<t.firstRow)return this.update(e);var n=this.element;if(t.firstRow<e.firstRow)for(var r=this.session.getFoldedRowCount(t.firstRow,e.firstRow-1);r>0;r--)n.removeChild(n.firstChild);if(t.lastRow>e.lastRow)for(var r=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);r>0;r--)n.removeChild(n.lastChild);if(e.firstRow<t.firstRow){var i=this.$renderLinesFragment(e,e.firstRow,t.firstRow-1);n.firstChild?n.insertBefore(i,n.firstChild):n.appendChild(i)}if(e.lastRow>t.lastRow){var i=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);n.appendChild(i)}},this.$renderLinesFragment=function(e,t,n){var r=this.element.ownerDocument.createDocumentFragment(),s=t,o=this.session.getNextFoldLine(s),u=o?o.start.row:Infinity;for(;;){s>u&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),u=o?o.start.row:Infinity);if(s>n)break;var a=i.createElement(\"div\"),f=[];this.$renderLine(f,s,!1,s==u?o:!1),a.innerHTML=f.join(\"\");if(this.$useLineGroups())a.className=\"ace_line_group\",r.appendChild(a),a.style.height=e.lineHeight*this.session.getRowLength(s)+\"px\";else while(a.firstChild)r.appendChild(a.firstChild);s++}return r},this.update=function(e){this.config=e;var t=[],n=e.firstRow,r=e.lastRow,i=n,s=this.session.getNextFoldLine(i),o=s?s.start.row:Infinity;for(;;){i>o&&(i=s.end.row+1,s=this.session.getNextFoldLine(i,s),o=s?s.start.row:Infinity);if(i>r)break;this.$useLineGroups()&&t.push(\"<div class='ace_line_group' style='height:\",e.lineHeight*this.session.getRowLength(i),\"px'>\"),this.$renderLine(t,i,!1,i==o?s:!1),this.$useLineGroups()&&t.push(\"</div>\"),i++}this.element.innerHTML=t.join(\"\")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,n,r){var i=this,o=/\\t|&|<|>|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF\\uFFF9-\\uFFFC])|[\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3000-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]/g,u=function(e,n,r,o,u){if(n)return i.showInvisibles?\"<span class='ace_invisible ace_invisible_space'>\"+s.stringRepeat(i.SPACE_CHAR,e.length)+\"</span>\":e;if(e==\"&\")return\"&#38;\";if(e==\"<\")return\"&#60;\";if(e==\">\")return\"&#62;\";if(e==\"\t\"){var a=i.session.getScreenTabSize(t+o);return t+=a-1,i.$tabStrings[a]}if(e==\"\\u3000\"){var f=i.showInvisibles?\"ace_cjk ace_invisible ace_invisible_space\":\"ace_cjk\",l=i.showInvisibles?i.SPACE_CHAR:\"\";return t+=1,\"<span class='\"+f+\"' style='width:\"+i.config.characterWidth*2+\"px'>\"+l+\"</span>\"}return r?\"<span class='ace_invisible ace_invisible_space ace_invalid'>\"+i.SPACE_CHAR+\"</span>\":(t+=1,\"<span class='ace_cjk' style='width:\"+i.config.characterWidth*2+\"px'>\"+e+\"</span>\")},a=r.replace(o,u);if(!this.$textToken[n.type]){var f=\"ace_\"+n.type.replace(/\\./g,\" ace_\"),l=\"\";n.type==\"fold\"&&(l=\" style='width:\"+n.value.length*this.config.characterWidth+\"px;' \"),e.push(\"<span class='\",f,\"'\",l,\">\",a,\"</span>\")}else e.push(a);return t+r.length},this.renderIndentGuide=function(e,t,n){var r=t.search(this.$indentGuideRe);return r<=0||r>=n?t:t[0]==\" \"?(r-=r%this.tabSize,e.push(s.stringRepeat(this.$tabStrings[\" \"],r/this.tabSize)),t.substr(r)):t[0]==\"\t\"?(e.push(s.stringRepeat(this.$tabStrings[\"\t\"],r)),t.substr(r)):t},this.$renderWrappedLine=function(e,t,n,r){var i=0,o=0,u=n[0],a=0;for(var f=0;f<t.length;f++){var l=t[f],c=l.value;if(f==0&&this.displayIndentGuides){i=c.length,c=this.renderIndentGuide(e,c,u);if(!c)continue;i-=c.length}if(i+c.length<u)a=this.$renderToken(e,a,l,c),i+=c.length;else{while(i+c.length>=u)a=this.$renderToken(e,a,l,c.substring(0,u-i)),c=c.substring(u-i),i=u,r||e.push(\"</div>\",\"<div class='ace_line' style='height:\",this.config.lineHeight,\"px'>\"),e.push(s.stringRepeat(\"\\u00a0\",n.indent)),o++,a=0,u=n[o]||Number.MAX_VALUE;c.length!=0&&(i+=c.length,a=this.$renderToken(e,a,l,c))}}},this.$renderSimpleLine=function(e,t){var n=0,r=t[0],i=r.value;this.displayIndentGuides&&(i=this.renderIndentGuide(e,i)),i&&(n=this.$renderToken(e,n,r,i));for(var s=1;s<t.length;s++)r=t[s],i=r.value,n=this.$renderToken(e,n,r,i)},this.$renderLine=function(e,t,n,r){!r&&r!=0&&(r=this.session.getFoldLine(t));if(r)var i=this.$getFoldLineTokens(t,r);else var i=this.session.getTokens(t);n||e.push(\"<div class='ace_line' style='height:\",this.config.lineHeight*(this.$useLineGroups()?1:this.session.getRowLength(t)),\"px'>\");if(i.length){var s=this.session.getRowSplitData(t);s&&s.length?this.$renderWrappedLine(e,i,s,n):this.$renderSimpleLine(e,i)}this.showInvisibles&&(r&&(t=r.end.row),e.push(\"<span class='ace_invisible ace_invisible_eol'>\",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,\"</span>\")),n||e.push(\"</div>\")},this.$getFoldLineTokens=function(e,t){function i(e,t,n){var i=0,s=0;while(s+e[i].value.length<t){s+=e[i].value.length,i++;if(i==e.length)return}if(s!=t){var o=e[i].value.substring(t-s);o.length>n-t&&(o=o.substring(0,n-t)),r.push({type:e[i].type,value:o}),s=t+o.length,i+=1}while(s<n&&i<e.length){var o=e[i].value;o.length+s>n?r.push({type:e[i].type,value:o.substring(0,n-s)}):r.push(e[i]),s+=o.length,i+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,u,a){e!=null?r.push({type:\"fold\",value:e}):(a&&(s=n.getTokens(t)),s.length&&i(s,u,o))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(a.prototype),t.Text=a}),ace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";var r=e(\"../lib/dom\"),i,s=function(e){this.element=r.createElement(\"div\"),this.element.className=\"ace_layer ace_cursor-layer\",e.appendChild(this.element),i===undefined&&(i=!(\"opacity\"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,\"ace_hidden-cursors\"),this.$updateCursors=(i?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(e){var t=this.cursors;for(var n=t.length;n--;)t[n].style.visibility=e?\"\":\"hidden\"},this.$updateOpacity=function(e){var t=this.cursors;for(var n=t.length;n--;)t[n].style.opacity=e?\"\":\"0\"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e!=this.smoothBlinking&&!i&&(this.smoothBlinking=e,r.setCssClass(this.element,\"ace_smooth-blinking\",e),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement(\"div\");return e.className=\"ace_cursor\",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,\"ace_hidden-cursors\"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,\"ace_hidden-cursors\"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,\"ace_smooth-blinking\"),e(!0);if(!this.isBlinking||!this.blinkInterval||!this.isVisible)return;this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,\"ace_smooth-blinking\")}.bind(this));var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e),r=this.$padding+n.column*this.config.characterWidth,i=(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:r,top:i}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,n=0,r=0;if(t===undefined||t.length===0)t=[{cursor:null}];for(var n=0,i=t.length;n<i;n++){var s=this.getPixelPosition(t[n].cursor,!0);if((s.top>e.height+e.offset||s.top<0)&&n>1)continue;var o=(this.cursors[r++]||this.addCursor()).style;this.drawCursor?this.drawCursor(o,s,e,t[n],this.session):(o.left=s.left+\"px\",o.top=s.top+\"px\",o.width=e.characterWidth+\"px\",o.height=e.lineHeight+\"px\")}while(this.cursors.length>r)this.removeCursor();var u=this.session.getOverwrite();this.$setOverwrite(u),this.$pixelPos=s,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,\"ace_overwrite-cursors\"):r.removeCssClass(this.element,\"ace_overwrite-cursors\"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(s.prototype),t.Cursor=s}),ace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/dom\"),s=e(\"./lib/event\"),o=e(\"./lib/event_emitter\").EventEmitter,u=32768,a=function(e){this.element=i.createElement(\"div\"),this.element.className=\"ace_scrollbar ace_scrollbar\"+this.classSuffix,this.inner=i.createElement(\"div\"),this.inner.className=\"ace_scrollbar-inner\",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,s.addListener(this.element,\"scroll\",this.onScroll.bind(this)),s.addListener(this.element,\"mousedown\",s.preventDefault)};(function(){r.implement(this,o),this.setVisible=function(e){this.element.style.display=e?\"\":\"none\",this.isVisible=e,this.coeff=1}}).call(a.prototype);var f=function(e,t){a.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=i.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+\"px\"};r.inherits(f,a),function(){this.classSuffix=\"-v\",this.onScroll=function(){if(!this.skipEvent){this.scrollTop=this.element.scrollTop;if(this.coeff!=1){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit(\"scroll\",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return this.isVisible?this.width:0},this.setHeight=function(e){this.element.style.height=e+\"px\"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>u?(this.coeff=u/e,e=u):this.coeff!=1&&(this.coeff=1),this.inner.style.height=e+\"px\"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(f.prototype);var l=function(e,t){a.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+\"px\"};r.inherits(l,a),function(){this.classSuffix=\"-h\",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit(\"scroll\",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+\"px\"},this.setInnerWidth=function(e){this.inner.style.width=e+\"px\"},this.setScrollWidth=function(e){this.inner.style.width=e+\"px\"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(l.prototype),t.ScrollBar=f,t.ScrollBarV=f,t.ScrollBarH=l,t.VScrollBar=f,t.HScrollBar=l}),ace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"],function(e,t,n){\"use strict\";var r=e(\"./lib/event\"),i=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){this.changes=this.changes|e;if(!this.pending&&this.changes){this.pending=!0;var t=this;r.nextFrame(function(){t.pending=!1;var e;while(e=t.changes)t.changes=0,t.onRender(e)},this.window)}}}).call(i.prototype),t.RenderLoop=i}),ace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../lib/dom\"),s=e(\"../lib/lang\"),o=e(\"../lib/useragent\"),u=e(\"../lib/event_emitter\").EventEmitter,a=0,f=t.FontMetrics=function(e){this.el=i.createElement(\"div\"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement(\"div\"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement(\"div\"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),a||this.$testFractionalRect(),this.$measureNode.innerHTML=s.stringRepeat(\"X\",a),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){r.implement(this,u),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=i.createElement(\"div\");this.$setMeasureNodeStyles(e.style),e.style.width=\"0.2px\",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;t>0&&t<1?a=50:a=100,e.parentNode.removeChild(e)},this.$setMeasureNodeStyles=function(e,t){e.width=e.height=\"auto\",e.left=e.top=\"0px\",e.visibility=\"hidden\",e.position=\"absolute\",e.whiteSpace=\"pre\",o.isIE<8?e[\"font-family\"]=\"inherit\":e.font=\"inherit\",e.overflow=t?\"hidden\":\"visible\"},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight=\"bold\";var t=this.$measureSizes();this.$measureNode.style.fontWeight=\"\",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit(\"changeCharacterSize\",{data:e})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=setInterval(function(){e.checkForSizeChanges()},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(a===50){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(t){e={width:0,height:0}}var n={height:e.height,width:e.width/a}}else var n={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/a};return n.width===0||n.height===0?null:n},this.$measureCharWidth=function(e){this.$main.innerHTML=s.stringRepeat(e,a);var t=this.$main.getBoundingClientRect();return t.width/a},this.getCharacterWidth=function(e){var t=this.charSizes[e];return t===undefined&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(f.prototype)}),ace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/config\",\"ace/lib/useragent\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/dom\"),s=e(\"./config\"),o=e(\"./lib/useragent\"),u=e(\"./layer/gutter\").Gutter,a=e(\"./layer/marker\").Marker,f=e(\"./layer/text\").Text,l=e(\"./layer/cursor\").Cursor,c=e(\"./scrollbar\").HScrollBar,h=e(\"./scrollbar\").VScrollBar,p=e(\"./renderloop\").RenderLoop,d=e(\"./layer/font_metrics\").FontMetrics,v=e(\"./lib/event_emitter\").EventEmitter,m='.ace_editor {position: relative;overflow: hidden;font: 12px/normal \\'Monaco\\', \\'Menlo\\', \\'Ubuntu Mono\\', \\'Consolas\\', \\'source-code-pro\\', monospace;direction: ltr;text-align: left;}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;min-width: 100%;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \\'\\';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==\");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==\");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=\");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC\");}.ace_scrollbar {position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;text-indent: -1em;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;white-space: pre!important;}.ace_text-input.ace_composition {background: inherit;color: inherit;z-index: 1000;opacity: 1;text-indent: 0;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;}.ace_text-layer {font: inherit !important;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;border-left: 2px solid;transform: translatez(0);}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_smooth-blinking .ace_cursor {-webkit-transition: opacity 0.18s;transition: opacity 0.18s;}.ace_editor.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_line .ace_fold {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\"),url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\"),url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\");}.ace_tooltip {background-color: #FFF;background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block;   }.ace_fold-widget.ace_end {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\");}.ace_fold-widget.ace_closed {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}.ace_dark .ace_fold-widget {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\");}.ace_dark .ace_fold-widget.ace_end {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\");}.ace_dark .ace_fold-widget.ace_closed {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {-webkit-transition: opacity 0.4s ease 0.05s;transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {-webkit-transition: opacity 0.05s ease 0.05s;transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}.ace_br1 {border-top-left-radius    : 3px;}.ace_br2 {border-top-right-radius   : 3px;}.ace_br3 {border-top-left-radius    : 3px; border-top-right-radius:    3px;}.ace_br4 {border-bottom-right-radius: 3px;}.ace_br5 {border-top-left-radius    : 3px; border-bottom-right-radius: 3px;}.ace_br6 {border-top-right-radius   : 3px; border-bottom-right-radius: 3px;}.ace_br7 {border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-right-radius: 3px;}.ace_br8 {border-bottom-left-radius : 3px;}.ace_br9 {border-top-left-radius    : 3px; border-bottom-left-radius:  3px;}.ace_br10{border-top-right-radius   : 3px; border-bottom-left-radius:  3px;}.ace_br11{border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-left-radius:  3px;}.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}.ace_br13{border-top-left-radius    : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}.ace_br14{border-top-right-radius   : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}.ace_br15{border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}';i.importCssString(m,\"ace_editor.css\");var g=function(e,t){var n=this;this.container=e||i.createElement(\"div\"),this.$keepTextAreaAtCursor=!o.isOldIE,i.addCssClass(this.container,\"ace_editor\"),this.setTheme(t),this.$gutter=i.createElement(\"div\"),this.$gutter.className=\"ace_gutter\",this.container.appendChild(this.$gutter),this.scroller=i.createElement(\"div\"),this.scroller.className=\"ace_scroller\",this.container.appendChild(this.scroller),this.content=i.createElement(\"div\"),this.content.className=\"ace_content\",this.scroller.appendChild(this.content),this.$gutterLayer=new u(this.$gutter),this.$gutterLayer.on(\"changeGutterWidth\",this.onGutterResize.bind(this)),this.$markerBack=new a(this.content);var r=this.$textLayer=new f(this.content);this.canvas=r.element,this.$markerFront=new a(this.content),this.$cursorLayer=new l(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new h(this.container,this),this.scrollBarH=new c(this.container,this),this.scrollBarV.addEventListener(\"scroll\",function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)}),this.scrollBarH.addEventListener(\"scroll\",function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new d(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener(\"changeCharacterSize\",function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal(\"changeCharacterSize\",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$loop=new p(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),s.resetOptions(this),s._emit(\"renderer\",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,r.implement(this,v),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle(\"ace_nobold\",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session&&this.session.doc.off(\"changeNewLineMode\",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e);if(!e)return;this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on(\"changeNewLineMode\",this.onChangeNewLineMode)},this.updateLines=function(e,t,n){t===undefined&&(t=Infinity),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRow<t&&(this.$changedLines.lastRow=t)):this.$changedLines={firstRow:e,lastRow:t};if(this.$changedLines.lastRow<this.layerConfig.firstRow){if(!n)return;this.$changedLines.lastRow=this.layerConfig.lastRow}if(this.$changedLines.firstRow>this.layerConfig.lastRow)return;this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar()},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,n,r){if(this.resizing>2)return;this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;r||(r=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var s=this.$updateCachedSize(e,t,n,r);if(!this.$size.scrollerHeight||!n&&!r)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(s|this.$changes,!0):this.$loop.schedule(s|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null},this.$updateCachedSize=function(e,t,n,r){r-=this.$extraHeight||0;var i=0,s=this.$size,o={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};r&&(e||s.height!=r)&&(s.height=r,i|=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+\"px\",i|=this.CHANGE_SCROLL);if(n&&(e||s.width!=n)){i|=this.CHANGE_SIZE,s.width=n,t==null&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+\"px\",s.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+\"px\",this.scroller.style.bottom=this.scrollBarH.getHeight()+\"px\";if(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)i|=this.CHANGE_FULL}return s.$dirty=!n||!r,i&&this._signal(\"resize\",o),i},this.onGutterResize=function(){var e=this.$showGutter?this.$gutter.offsetWidth:0;e!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,e,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-this.$padding*2,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption(\"animatedScroll\",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption(\"showInvisibles\",e)},this.getShowInvisibles=function(){return this.getOption(\"showInvisibles\")},this.getDisplayIndentGuides=function(){return this.getOption(\"displayIndentGuides\")},this.setDisplayIndentGuides=function(e){this.setOption(\"displayIndentGuides\",e)},this.setShowPrintMargin=function(e){this.setOption(\"showPrintMargin\",e)},this.getShowPrintMargin=function(){return this.getOption(\"showPrintMargin\")},this.setPrintMarginColumn=function(e){this.setOption(\"printMarginColumn\",e)},this.getPrintMarginColumn=function(){return this.getOption(\"printMarginColumn\")},this.getShowGutter=function(){return this.getOption(\"showGutter\")},this.setShowGutter=function(e){return this.setOption(\"showGutter\",e)},this.getFadeFoldWidgets=function(){return this.getOption(\"fadeFoldWidgets\")},this.setFadeFoldWidgets=function(e){this.setOption(\"fadeFoldWidgets\",e)},this.setHighlightGutterLine=function(e){this.setOption(\"highlightGutterLine\",e)},this.getHighlightGutterLine=function(){return this.getOption(\"highlightGutterLine\")},this.$updateGutterLineHighlight=function(){var e=this.$cursorLayer.$pixelPos,t=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var n=this.session.selection.getCursor();n.column=0,e=this.$cursorLayer.getPixelPosition(n,!0),t*=this.session.getRowLength(n.row)}this.$gutterLineHighlight.style.top=e.top-this.layerConfig.offset+\"px\",this.$gutterLineHighlight.style.height=t+\"px\"},this.$updatePrintMargin=function(){if(!this.$showPrintMargin&&!this.$printMarginEl)return;if(!this.$printMarginEl){var e=i.createElement(\"div\");e.className=\"ace_layer ace_print-margin-layer\",this.$printMarginEl=i.createElement(\"div\"),this.$printMarginEl.className=\"ace_print-margin\",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=this.characterWidth*this.$printMarginColumn+this.$padding+\"px\",t.visibility=this.$showPrintMargin?\"visible\":\"hidden\",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(!this.$keepTextAreaAtCursor)return;var e=this.layerConfig,t=this.$cursorLayer.$pixelPos.top,n=this.$cursorLayer.$pixelPos.left;t-=e.offset;var r=this.textarea.style,i=this.lineHeight;if(t<0||t>e.height-i){r.top=r.left=\"0\";return}var s=this.characterWidth;if(this.$composition){var o=this.textarea.value.replace(/^\\x01+/,\"\");s*=this.session.$getStringScreenWidth(o)[0]+2,i+=2}n-=this.scrollLeft,n>this.$size.scrollerWidth-s&&(n=this.$size.scrollerWidth-s),n+=this.gutterWidth,r.height=i+\"px\",r.width=s+\"px\",r.left=Math.min(n,this.$size.scrollerWidth-s)+\"px\",r.top=Math.min(t,this.$size.height-i)+\"px\"},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow,n=this.session.documentToScreenRow(t,0)*e.lineHeight;return n-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,n,r){var i=this.scrollMargin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption(\"hScrollBarAlwaysVisible\",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption(\"vScrollBarAlwaysVisible\",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){this.$changes&&(e|=this.$changes,this.$changes=0);if(!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t){this.$changes|=e;return}if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal(\"beforeRender\");var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){e|=this.$computeLayerConfig();if(n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var r=this.scrollTop+(n.firstRow-this.layerConfig.firstRow)*this.lineHeight;r>0&&(this.scrollTop=r,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-n.offset+\"px\",this.content.style.marginTop=-n.offset+\"px\",this.content.style.width=n.width+2*this.$padding+\"px\",this.content.style.height=n.minHeight+\"px\"}e&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+\"px\",this.scroller.className=this.scrollLeft<=0?\"ace_scroller\":\"ace_scroller ace_scroll-left\");if(e&this.CHANGE_FULL){this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this._signal(\"afterRender\");return}if(e&this.CHANGE_SCROLL){e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),this._signal(\"afterRender\");return}e&this.CHANGE_TEXT?(this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(n),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal(\"afterRender\")},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var r=e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||r!=this.$vScroll){r!=this.$vScroll&&(this.$vScroll=r,this.scrollBarV.setVisible(r));var i=this.container.clientWidth;this.container.style.height=n+\"px\",this.$updateCachedSize(!0,this.$gutterWidth,i,n),this.desiredHeight=n,this._signal(\"autosize\")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,r=this.session.getScreenLength(),i=r*this.lineHeight,s=this.$getLongestLine(),o=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-s-2*this.$padding<0),u=this.$horizScroll!==o;u&&(this.$horizScroll=o,this.scrollBarH.setVisible(o));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var f=this.scrollTop%this.lineHeight,l=t.scrollerHeight+this.lineHeight,c=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;i+=c;var h=this.scrollMargin;this.session.setScrollTop(Math.max(-h.top,Math.min(this.scrollTop,i-t.scrollerHeight+h.bottom))),this.session.setScrollLeft(Math.max(-h.left,Math.min(this.scrollLeft,s+2*this.$padding-t.scrollerWidth+h.right)));var p=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-i+c<0||this.scrollTop>h.top),d=a!==p;d&&(this.$vScroll=p,this.scrollBarV.setVisible(p));var v=Math.ceil(l/this.lineHeight)-1,m=Math.max(0,Math.round((this.scrollTop-f)/this.lineHeight)),g=m+v,y,b,w=this.lineHeight;m=e.screenToDocumentRow(m,0);var E=e.getFoldLine(m);E&&(m=E.start.row),y=e.documentToScreenRow(m,0),b=e.getRowLength(m)*w,g=Math.min(e.screenToDocumentRow(g,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(g)*w+b,f=this.scrollTop-y*w;var S=0;this.layerConfig.width!=s&&(S=this.CHANGE_H_SCROLL);if(u||d)S=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal(\"scrollbarVisibilityChanged\"),d&&(s=this.$getLongestLine());return this.layerConfig={width:s,padding:this.$padding,firstRow:m,firstRowScreen:y,lastRow:g,lineHeight:w,characterWidth:this.characterWidth,minHeight:l,maxHeight:i,offset:f,gutterOffset:w?Math.max(0,Math.ceil((f+t.height-t.scrollerHeight)/w)):0,height:this.$size.scrollerHeight},S},this.$updateLines=function(){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(e>n.lastRow+1)return;if(t<n.firstRow)return;if(t===Infinity){this.$showGutter&&this.$gutterLayer.update(n),this.$textLayer.update(n);return}return this.$textLayer.updateLines(n,e,t),!0},this.$getLongestLine=function(){var e=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(e+=1),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},this.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},this.scrollCursorIntoView=function(e,t,n){if(this.$size.scrollerHeight===0)return;var r=this.$cursorLayer.getPixelPosition(e),i=r.left,s=r.top,o=n&&n.top||0,u=n&&n.bottom||0,a=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;a+o>s?(t&&a+o>s+this.lineHeight&&(s-=t*this.$size.scrollerHeight),s===0&&(s=-this.scrollMargin.top),this.session.setScrollTop(s)):a+this.$size.scrollerHeight-u<s+this.lineHeight&&(t&&a+this.$size.scrollerHeight-u<s-this.lineHeight&&(s+=t*this.$size.scrollerHeight),this.session.setScrollTop(s+this.lineHeight-this.$size.scrollerHeight));var f=this.scrollLeft;f>i?(i<this.$padding+2*this.layerConfig.characterWidth&&(i=-this.scrollMargin.left),this.session.setScrollLeft(i)):f+this.$size.scrollerWidth<i+this.characterWidth?this.session.setScrollLeft(Math.round(i+this.characterWidth-this.$size.scrollerWidth)):f<=this.$padding&&i-f<this.characterWidth&&this.session.setScrollLeft(0)},this.getScrollTop=function(){return this.session.getScrollTop()},this.getScrollLeft=function(){return this.session.getScrollLeft()},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(e){this.session.setScrollTop(e*this.lineHeight)},this.alignCursor=function(e,t){typeof e==\"number\"&&(e={row:e,column:0});var n=this.$cursorLayer.getPixelPosition(e),r=this.$size.scrollerHeight-this.lineHeight,i=n.top-r*(t||0);return this.session.setScrollTop(i),i},this.STEPS=8,this.$calcSteps=function(e,t){var n=0,r=this.STEPS,i=[],s=function(e,t,n){return n*(Math.pow(e-1,3)+1)+t};for(n=0;n<r;++n)i.push(s(n/this.STEPS,e,t-e));return i},this.scrollToLine=function(e,t,n,r){var i=this.$cursorLayer.getPixelPosition({row:e,column:0}),s=i.top;t&&(s-=this.$size.scrollerHeight/2);var o=this.scrollTop;this.session.setScrollTop(s),n!==!1&&this.animateScrolling(o,r)},this.animateScrolling=function(e,t){var n=this.scrollTop;if(!this.$animatedScroll)return;var r=this;if(e==n)return;if(this.$scrollAnimation){var i=this.$scrollAnimation.steps;if(i.length){e=i[0];if(e==n)return}}var s=r.$calcSteps(e,n);this.$scrollAnimation={from:e,to:n,steps:s},clearInterval(this.$timer),r.session.setScrollTop(s.shift()),r.session.$scrollTop=n,this.$timer=setInterval(function(){s.length?(r.session.setScrollTop(s.shift()),r.session.$scrollTop=n):n!=null?(r.session.$scrollTop=-1,r.session.setScrollTop(n),n=null):(r.$timer=clearInterval(r.$timer),r.$scrollAnimation=null,t&&t())},10)},this.scrollToY=function(e){this.scrollTop!==e&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=e)},this.scrollToX=function(e){this.scrollLeft!==e&&(this.scrollLeft=e),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollTo=function(e,t){this.session.setScrollTop(t),this.session.setScrollLeft(t)},this.scrollBy=function(e,t){t&&this.session.setScrollTop(this.session.getScrollTop()+t),e&&this.session.setScrollLeft(this.session.getScrollLeft()+e)},this.isScrollableBy=function(e,t){if(t<0&&this.session.getScrollTop()>=1-this.scrollMargin.top)return!0;if(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom)return!0;if(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left)return!0;if(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},this.pixelToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=(e+this.scrollLeft-n.left-this.$padding)/this.characterWidth,i=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),s=Math.round(r);return{row:i,column:s,side:r-s>0?1:-1}},this.screenToTextCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=Math.round((e+this.scrollLeft-n.left-this.$padding)/this.characterWidth),i=(t+this.scrollTop-n.top)/this.lineHeight;return this.session.screenToDocumentPosition(i,Math.max(r,0))},this.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=this.session.documentToScreenPosition(e,t),i=this.$padding+Math.round(r.column*this.characterWidth),s=r.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+s-this.scrollTop}},this.visualizeFocus=function(){i.addCssClass(this.container,\"ace_focus\")},this.visualizeBlur=function(){i.removeCssClass(this.container,\"ace_focus\")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,i.addCssClass(this.textarea,\"ace_composition\"),this.textarea.style.cssText=\"\",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){if(!this.$composition)return;i.removeCssClass(this.textarea,\"ace_composition\"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null},this.setTheme=function(e,t){function o(r){if(n.$themeId!=e)return t&&t();if(!r||!r.cssClass)throw new Error(\"couldn't load module \"+e+\" or it didn't call define\");i.importCssString(r.cssText,r.cssClass,n.container.ownerDocument),n.theme&&i.removeCssClass(n.container,n.theme.cssClass);var s=\"padding\"in r?r.padding:\"padding\"in(n.theme||{})?4:n.$padding;n.$padding&&s!=n.$padding&&n.setPadding(s),n.$theme=r.cssClass,n.theme=r,i.addCssClass(n.container,r.cssClass),i.setCssClass(n.container,\"ace_dark\",r.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent(\"themeLoaded\",{theme:r}),t&&t()}var n=this;this.$themeId=e,n._dispatchEvent(\"themeChange\",{theme:e});if(!e||typeof e==\"string\"){var r=e||this.$options.theme.initialValue;s.loadModule([\"theme\",r],o)}else o(e)},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){i.setCssClass(this.container,e,t!==!1)},this.unsetStyle=function(e){i.removeCssClass(this.container,e)},this.setCursorStyle=function(e){this.scroller.style.cursor!=e&&(this.scroller.style.cursor=e)},this.setMouseCursor=function(e){this.scroller.style.cursor=e},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(g.prototype),s.defineOptions(g.prototype,\"renderer\",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){typeof e==\"number\"&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?\"block\":\"none\",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,\"ace_fade-fold-widgets\",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e)},initialValue:!0},showLineNumbers:{set:function(e){this.$gutterLayer.setShowLineNumbers(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){if(!this.$gutterLineHighlight){this.$gutterLineHighlight=i.createElement(\"div\"),this.$gutterLineHighlight.className=\"ace_gutter-active-line\",this.$gutter.appendChild(this.$gutterLineHighlight);return}this.$gutterLineHighlight.style.display=e?\"\":\"none\",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(e){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){typeof e==\"number\"&&(e+=\"px\"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0;if(this.$scrollPastEnd==e)return;this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:\"./theme/textmate\",handlesSet:!0}}),t.VirtualRenderer=g}),ace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/net\"),s=e(\"../lib/event_emitter\").EventEmitter,o=e(\"../config\"),u=function(t,n,r,i){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl);if(o.get(\"packaged\")||!e.toUrl)i=i||o.moduleUrl(n,\"worker\");else{var s=this.$normalizePath;i=i||s(e.toUrl(\"ace/worker/worker.js\",null,\"_\"));var u={};t.forEach(function(t){u[t]=s(e.toUrl(t,null,\"_\").replace(/(\\.js)?(\\?.*)?$/,\"\"))})}try{this.$worker=new Worker(i)}catch(a){if(!(a instanceof window.DOMException))throw a;var f=this.$workerBlob(i),l=window.URL||window.webkitURL,c=l.createObjectURL(f);this.$worker=new Worker(c),l.revokeObjectURL(c)}this.$worker.postMessage({init:!0,tlns:u,module:n,classname:r}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){r.implement(this,s),this.onMessage=function(e){var t=e.data;switch(t.type){case\"event\":this._signal(t.name,{data:t.data});break;case\"call\":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case\"error\":this.reportError(t.data);break;case\"log\":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal(\"terminate\",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off(\"change\",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var r=this.callbackId++;this.callbacks[r]=n,t.push(r)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(n){console.error(n.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call(\"setValue\",[e.getValue()]),e.on(\"change\",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),e.action==\"insert\"?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;if(!e)return;this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call(\"setValue\",[this.$doc.getValue()]):this.emit(\"change\",{data:e})},this.$workerBlob=function(e){var t=\"importScripts('\"+i.qualifyURL(e)+\"');\";try{return new Blob([t],{type:\"application/javascript\"})}catch(n){var r=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,s=new r;return s.append(t),s.getBlob(\"application/javascript\")}}}).call(u.prototype);var a=function(e,t,n){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var r=null,i=!1,u=Object.create(s),a=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){a.messageBuffer.push(e),r&&(i?setTimeout(f):f())},this.setEmitSync=function(e){i=e};var f=function(){var e=a.messageBuffer.shift();e.command?r[e.command].apply(r,e.args):e.event&&u._signal(e.event,e.data)};u.postMessage=function(e){a.onMessage({data:e})},u.callback=function(e,t){this.postMessage({type:\"call\",id:t,data:e})},u.emit=function(e,t){this.postMessage({type:\"event\",name:e,data:t})},o.loadModule([\"worker\",t],function(e){r=new e[n](u);while(a.messageBuffer.length)f()})};a.prototype=u.prototype,t.UIWorkerClient=a,t.WorkerClient=u}),ace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"],function(e,t,n){\"use strict\";var r=e(\"./range\").Range,i=e(\"./lib/event_emitter\").EventEmitter,s=e(\"./lib/oop\"),o=function(e,t,n,r,i,s){var o=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on(\"change\",this.$onUpdate),this.$others=r,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=n;var u=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=u.length,this.setup(),e.selection.on(\"changeCursor\",this.$onCursorChange)};(function(){s.implement(this,i),this.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new r(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(n){var r=t.createAnchor(n.row,n.column);r.$insertRight=!0,r.detach(),e.others.push(r)}),n.setUndoSelect(!1)},this.showOtherMarkers=function(){if(this.othersActive)return;var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new r(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)})},this.hideOtherMarkers=function(){if(!this.othersActive)return;this.othersActive=!1;for(var e=0;e<this.others.length;e++)this.session.removeMarker(this.others[e].markerId)},this.onUpdate=function(e){if(this.$updating)return this.updateAnchors(e);var t=e;if(t.start.row!==t.end.row)return;if(t.start.row!==this.pos.row)return;this.$updating=!0;var n=e.action===\"insert\"?t.end.column-t.start.column:t.start.column-t.end.column,i=t.start.column>=this.pos.column&&t.start.column<=this.pos.column+this.length+1,s=t.start.column-this.pos.column;this.updateAnchors(e),i&&(this.length+=n);if(i&&!this.session.$fromUndo)if(e.action===\"insert\")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.insertMergedLines(a,e.lines)}else if(e.action===\"remove\")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.remove(new r(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(this.$updating)return;var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new r(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)},this.onCursorChange=function(e){if(this.$updating||!this.session)return;var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit(\"cursorEnter\",e)):(this.hideOtherMarkers(),this._emit(\"cursorLeave\",e))},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener(\"change\",this.$onUpdate),this.session.selection.removeEventListener(\"changeCursor\",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(this.$undoStackDepth===-1)return;var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth;for(var n=0;n<t;n++)e.undo(!0);this.selectionBefore&&this.session.selection.fromJSON(this.selectionBefore)}}).call(o.prototype),t.PlaceHolder=o}),ace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"],function(e,t,n){function s(e,t){return e.row==t.row&&e.column==t.column}function o(e){var t=e.domEvent,n=t.altKey,o=t.shiftKey,u=t.ctrlKey,a=e.getAccelKey(),f=e.getButton();u&&i.isMac&&(f=t.button);if(e.editor.inMultiSelectMode&&f==2){e.editor.textInput.onContextMenu(e.domEvent);return}if(!u&&!n&&!a){f===0&&e.editor.inMultiSelectMode&&e.editor.exitMultiSelectMode();return}if(f!==0)return;var l=e.editor,c=l.selection,h=l.inMultiSelectMode,p=e.getDocumentPosition(),d=c.getCursor(),v=e.inSelection()||c.isEmpty()&&s(p,d),m=e.x,g=e.y,y=function(e){m=e.clientX,g=e.clientY},b=l.session,w=l.renderer.pixelToScreenCoordinates(m,g),E=w,S;if(l.$mouseHandler.$enableJumpToDef)u&&n||a&&n?S=o?\"block\":\"add\":n&&l.$blockSelectEnabled&&(S=\"block\");else if(a&&!n){S=\"add\";if(!h&&o)return}else n&&l.$blockSelectEnabled&&(S=\"block\");S&&i.isMac&&t.ctrlKey&&l.$mouseHandler.cancelContextMenu();if(S==\"add\"){if(!h&&v)return;if(!h){var x=c.toOrientedRange();l.addSelectionMarker(x)}var T=c.rangeList.rangeAtPoint(p);l.$blockScrolling++,l.inVirtualSelectionMode=!0,o&&(T=null,x=c.ranges[0]||x,l.removeSelectionMarker(x)),l.once(\"mouseup\",function(){var e=c.toOrientedRange();T&&e.isEmpty()&&s(T.cursor,e.cursor)?c.substractPoint(e.cursor):(o?c.substractPoint(x.cursor):x&&(l.removeSelectionMarker(x),c.addRange(x)),c.addRange(e)),l.$blockScrolling--,l.inVirtualSelectionMode=!1})}else if(S==\"block\"){e.stop(),l.inVirtualSelectionMode=!0;var N,C=[],k=function(){var e=l.renderer.pixelToScreenCoordinates(m,g),t=b.screenToDocumentPosition(e.row,e.column);if(s(E,e)&&s(t,c.lead))return;E=e,l.$blockScrolling++,l.selection.moveToPosition(t),l.renderer.scrollCursorIntoView(),l.removeSelectionMarkers(C),C=c.rectangularRangeBlock(E,w),l.$mouseHandler.$clickSelection&&C.length==1&&C[0].isEmpty()&&(C[0]=l.$mouseHandler.$clickSelection.clone()),C.forEach(l.addSelectionMarker,l),l.updateSelectionMarkers(),l.$blockScrolling--};l.$blockScrolling++,h&&!a?c.toSingleRange():!h&&a&&(N=c.toOrientedRange(),l.addSelectionMarker(N)),o?w=b.documentToScreenPosition(c.lead):c.moveToPosition(p),l.$blockScrolling--,E={row:-1,column:-1};var L=function(e){clearInterval(O),l.removeSelectionMarkers(C),C.length||(C=[c.toOrientedRange()]),l.$blockScrolling++,N&&(l.removeSelectionMarker(N),c.toSingleRange(N));for(var t=0;t<C.length;t++)c.addRange(C[t]);l.inVirtualSelectionMode=!1,l.$mouseHandler.$clickSelection=null,l.$blockScrolling--},A=k;r.capture(l.container,y,L);var O=setInterval(function(){A()},20);return e.preventDefault()}}var r=e(\"../lib/event\"),i=e(\"../lib/useragent\");t.onMouseDown=o}),ace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"],function(e,t,n){t.defaultCommands=[{name:\"addCursorAbove\",exec:function(e){e.selectMoreLines(-1)},bindKey:{win:\"Ctrl-Alt-Up\",mac:\"Ctrl-Alt-Up\"},scrollIntoView:\"cursor\",readOnly:!0},{name:\"addCursorBelow\",exec:function(e){e.selectMoreLines(1)},bindKey:{win:\"Ctrl-Alt-Down\",mac:\"Ctrl-Alt-Down\"},scrollIntoView:\"cursor\",readOnly:!0},{name:\"addCursorAboveSkipCurrent\",exec:function(e){e.selectMoreLines(-1,!0)},bindKey:{win:\"Ctrl-Alt-Shift-Up\",mac:\"Ctrl-Alt-Shift-Up\"},scrollIntoView:\"cursor\",readOnly:!0},{name:\"addCursorBelowSkipCurrent\",exec:function(e){e.selectMoreLines(1,!0)},bindKey:{win:\"Ctrl-Alt-Shift-Down\",mac:\"Ctrl-Alt-Shift-Down\"},scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectMoreBefore\",exec:function(e){e.selectMore(-1)},bindKey:{win:\"Ctrl-Alt-Left\",mac:\"Ctrl-Alt-Left\"},scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectMoreAfter\",exec:function(e){e.selectMore(1)},bindKey:{win:\"Ctrl-Alt-Right\",mac:\"Ctrl-Alt-Right\"},scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectNextBefore\",exec:function(e){e.selectMore(-1,!0)},bindKey:{win:\"Ctrl-Alt-Shift-Left\",mac:\"Ctrl-Alt-Shift-Left\"},scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectNextAfter\",exec:function(e){e.selectMore(1,!0)},bindKey:{win:\"Ctrl-Alt-Shift-Right\",mac:\"Ctrl-Alt-Shift-Right\"},scrollIntoView:\"cursor\",readOnly:!0},{name:\"splitIntoLines\",exec:function(e){e.multiSelect.splitIntoLines()},bindKey:{win:\"Ctrl-Alt-L\",mac:\"Ctrl-Alt-L\"},readOnly:!0},{name:\"alignCursors\",exec:function(e){e.alignCursors()},bindKey:{win:\"Ctrl-Alt-A\",mac:\"Ctrl-Alt-A\"},scrollIntoView:\"cursor\"},{name:\"findAll\",exec:function(e){e.findAll()},bindKey:{win:\"Ctrl-Alt-K\",mac:\"Ctrl-Alt-G\"},scrollIntoView:\"cursor\",readOnly:!0}],t.multiSelectCommands=[{name:\"singleSelection\",bindKey:\"esc\",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:\"cursor\",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var r=e(\"../keyboard/hash_handler\").HashHandler;t.keyboardHandler=new r(t.multiSelectCommands)}),ace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"],function(e,t,n){function h(e,t,n){return c.$options.wrap=!0,c.$options.needle=t,c.$options.backwards=n==-1,c.find(e)}function v(e,t){return e.row==t.row&&e.column==t.column}function m(e){if(e.$multiselectOnSessionChange)return;e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on(\"changeSession\",e.$multiselectOnSessionChange),e.on(\"mousedown\",o),e.commands.addCommands(f.defaultCommands),g(e)}function g(e){function r(t){n&&(e.renderer.setMouseCursor(\"\"),n=!1)}var t=e.textInput.getElement(),n=!1;u.addListener(t,\"keydown\",function(t){var i=t.keyCode==18&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor(\"crosshair\"),n=!0):n&&r()}),u.addListener(t,\"keyup\",r),u.addListener(t,\"blur\",r)}var r=e(\"./range_list\").RangeList,i=e(\"./range\").Range,s=e(\"./selection\").Selection,o=e(\"./mouse/multi_select_handler\").onMouseDown,u=e(\"./lib/event\"),a=e(\"./lib/lang\"),f=e(\"./commands/multi_select_commands\");t.commands=f.defaultCommands.concat(f.multiSelectCommands);var l=e(\"./search\").Search,c=new l,p=e(\"./edit_session\").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(p.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(!e)return;if(!this.inMultiSelectMode&&this.rangeCount===0){var n=this.toOrientedRange();this.rangeList.add(n),this.rangeList.add(e);if(this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var r=this.rangeList.add(e);return this.$onAddRange(e),r.length&&this.$onRemoveRange(r),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal(\"multiSelect\"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal(\"addRange\",{range:e})},this.$onRemoveRange=function(e){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var r=this.ranges.indexOf(e[n]);this.ranges.splice(r,1)}this._signal(\"removeRange\",{ranges:e}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal(\"singleSelect\"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),t=t||this.ranges[0],t&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new r,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var n=this.getRange(),r=this.isBackwards(),s=n.start.row,o=n.end.row;if(s==o){if(r)var u=n.end,a=n.start;else var u=n.start,a=n.end;this.addRange(i.fromPoints(a,a)),this.addRange(i.fromPoints(u,u));return}var f=[],l=this.getLineRange(s,!0);l.start.column=n.start.column,f.push(l);for(var c=s+1;c<o;c++)f.push(this.getLineRange(c,!0));l=this.getLineRange(o,!0),l.end.column=n.end.column,f.push(l),f.forEach(this.addRange,this)}},this.toggleBlockSelection=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var r=this.session.documentToScreenPosition(this.selectionLead),s=this.session.documentToScreenPosition(this.selectionAnchor),o=this.rectangularRangeBlock(r,s);o.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var r=[],s=e.column<t.column;if(s)var o=e.column,u=t.column;else var o=t.column,u=e.column;var a=e.row<t.row;if(a)var f=e.row,l=t.row;else var f=t.row,l=e.row;o<0&&(o=0),f<0&&(f=0),f==l&&(n=!0);for(var c=f;c<=l;c++){var h=i.fromPoints(this.session.screenToDocumentPosition(c,o),this.session.screenToDocumentPosition(c,u));if(h.isEmpty()){if(p&&v(h.end,p))break;var p=h.end}h.cursor=s?h.start:h.end,r.push(h)}a&&r.reverse();if(!n){var d=r.length-1;while(r[d].isEmpty()&&d>0)d--;if(d>0){var m=0;while(r[m].isEmpty())m++}for(var g=d;g>=m;g--)r[g].isEmpty()&&r.splice(g,1)}return r}}.call(s.prototype);var d=e(\"./editor\").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,\"ace_selection\",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(!e.marker)return;this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);t!=-1&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(e){var t=this.session.$selectionMarkers;for(var n=e.length;n--;){var r=e[n];if(!r.marker)continue;this.session.removeMarker(r.marker);var i=t.indexOf(r);i!=-1&&t.splice(i,1)}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle(\"ace_multiselect\"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler(\"exec\",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(e){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle(\"ace_multiselect\"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler(\"exec\",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit(\"changeSelection\")},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(!n.multiSelect)return;if(!t.multiSelectAction){var r=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}else t.multiSelectAction==\"forEach\"?r=n.forEachSelection(t,e.args):t.multiSelectAction==\"forEachLine\"?r=n.forEachSelection(t,e.args,!0):t.multiSelectAction==\"single\"?(n.exitMultiSelectMode(),r=t.exec(n,e.args||{})):r=t.multiSelectAction(n,e.args||{});return r},this.forEachSelection=function(e,t,n){if(this.inVirtualSelectionMode)return;var r=n&&n.keepOrder,i=n==1||n&&n.$byLines,o=this.session,u=this.selection,a=u.rangeList,f=(r?u:a).ranges,l;if(!f.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var c=u._eventRegistry;u._eventRegistry={};var h=new s(o);this.inVirtualSelectionMode=!0;for(var p=f.length;p--;){if(i)while(p>0&&f[p].start.row==f[p-1].end.row)p--;h.fromOrientedRange(f[p]),h.index=p,this.selection=o.selection=h;var d=e.exec?e.exec(this,t||{}):e(this,t||{});!l&&d!==undefined&&(l=d),h.toOrientedRange(f[p])}h.detach(),this.selection=o.selection=u,this.inVirtualSelectionMode=!1,u._eventRegistry=c,u.mergeOverlappingRanges();var v=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),v&&v.from==v.to&&this.renderer.animateScrolling(v.from),l},this.exitMultiSelectMode=function(){if(!this.inMultiSelectMode||this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e=\"\";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var t=this.multiSelect.rangeList.ranges,n=[];for(var r=0;r<t.length;r++)n.push(this.session.getTextRange(t[r]));var i=this.session.getDocument().getNewLineCharacter();e=n.join(i),e.length==(n.length-1)*i.length&&(e=\"\")}else this.selection.isEmpty()||(e=this.session.getTextRange(this.getSelectionRange()));return e},this.$checkMultiselectChange=function(e,t){if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var n=this.multiSelect.ranges[0];if(this.multiSelect.isEmpty()&&t==this.multiSelect.anchor)return;var r=t==this.multiSelect.anchor?n.cursor==n.start?n.end:n.start:n.cursor;(r.row!=t.row||this.session.$clipPositionToDocument(r.row,r.column).column!=t.column)&&this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange())}},this.findAll=function(e,t,n){t=t||{},t.needle=e||t.needle;if(t.needle==undefined){var r=this.selection.isEmpty()?this.selection.getWordRange():this.selection.getRange();t.needle=this.session.getTextRange(r)}this.$search.set(t);var i=this.$search.findAll(this.session);if(!i.length)return 0;this.$blockScrolling+=1;var s=this.multiSelect;n||s.toSingleRange(i[0]);for(var o=i.length;o--;)s.addRange(i[o],!0);return r&&s.rangeList.rangeAtPoint(r.start)&&s.addRange(r,!0),this.$blockScrolling-=1,i.length},this.selectMoreLines=function(e,t){var n=this.selection.toOrientedRange(),r=n.cursor==n.end,s=this.session.documentToScreenPosition(n.cursor);this.selection.$desiredColumn&&(s.column=this.selection.$desiredColumn);var o=this.session.screenToDocumentPosition(s.row+e,s.column);if(!n.isEmpty())var u=this.session.documentToScreenPosition(r?n.end:n.start),a=this.session.screenToDocumentPosition(u.row+e,u.column);else var a=o;if(r){var f=i.fromPoints(o,a);f.cursor=f.start}else{var f=i.fromPoints(a,o);f.cursor=f.end}f.desiredColumn=s.column;if(!this.selection.inMultiSelectMode)this.selection.addRange(n);else if(t)var l=n.cursor;this.selection.addRange(f),l&&this.selection.substractPoint(l)},this.transposeSelections=function(e){var t=this.session,n=t.multiSelect,r=n.ranges;for(var i=r.length;i--;){var s=r[i];if(s.isEmpty()){var o=t.getWordRange(s.start.row,s.start.column);s.start.row=o.start.row,s.start.column=o.start.column,s.end.row=o.end.row,s.end.column=o.end.column}}n.mergeOverlappingRanges();var u=[];for(var i=r.length;i--;){var s=r[i];u.unshift(t.getTextRange(s))}e<0?u.unshift(u.pop()):u.push(u.shift());for(var i=r.length;i--;){var s=r[i],o=s.clone();t.replace(s,u[i]),s.start.row=o.start.row,s.start.column=o.start.column}},this.selectMore=function(e,t,n){var r=this.session,i=r.multiSelect,s=i.toOrientedRange();if(s.isEmpty()){s=r.getWordRange(s.start.row,s.start.column),s.cursor=e==-1?s.start:s.end,this.multiSelect.addRange(s);if(n)return}var o=r.getTextRange(s),u=h(r,o,e);u&&(u.cursor=e==-1?u.start:u.end,this.$blockScrolling+=1,this.session.unfold(u),this.multiSelect.addRange(u),this.$blockScrolling-=1,this.renderer.scrollCursorIntoView(null,.5)),t&&this.multiSelect.substractPoint(s.cursor)},this.alignCursors=function(){var e=this.session,t=e.multiSelect,n=t.ranges,r=-1,s=n.filter(function(e){if(e.cursor.row==r)return!0;r=e.cursor.row});if(!n.length||s.length==n.length-1){var o=this.selection.getRange(),u=o.start.row,f=o.end.row,l=u==f;if(l){var c=this.session.getLength(),h;do h=this.session.getLine(f);while(/[=:]/.test(h)&&++f<c);do h=this.session.getLine(u);while(/[=:]/.test(h)&&--u>0);u<0&&(u=0),f>=c&&(f=c-1)}var p=this.session.removeFullLines(u,f);p=this.$reAlignText(p,l),this.session.insert({row:u,column:0},p.join(\"\\n\")+\"\\n\"),l||(o.start.column=0,o.end.column=p[p.length-1].length),this.selection.setRange(o)}else{s.forEach(function(e){t.substractPoint(e.cursor)});var d=0,v=Infinity,m=n.map(function(t){var n=t.cursor,r=e.getLine(n.row),i=r.substr(n.column).search(/\\S/g);return i==-1&&(i=0),n.column>d&&(d=n.column),i<v&&(v=i),i});n.forEach(function(t,n){var r=t.cursor,s=d-r.column,o=m[n]-v;s>o?e.insert(r,a.stringRepeat(\" \",s-o)):e.remove(new i(r.row,r.column,r.row,r.column-s+o)),t.start.column=t.end.column=d,t.start.row=t.end.row=r.row,t.cursor=t.end}),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(e,t){function u(e){return a.stringRepeat(\" \",e)}function f(e){return e[2]?u(i)+e[2]+u(s-e[2].length+o)+e[4].replace(/^([=:])\\s+/,\"$1 \"):e[0]}function l(e){return e[2]?u(i+s-e[2].length)+e[2]+u(o,\" \")+e[4].replace(/^([=:])\\s+/,\"$1 \"):e[0]}function c(e){return e[2]?u(i)+e[2]+u(o)+e[4].replace(/^([=:])\\s+/,\"$1 \"):e[0]}var n=!0,r=!0,i,s,o;return e.map(function(e){var t=e.match(/(\\s*)(.*?)(\\s*)([=:].*)/);return t?i==null?(i=t[1].length,s=t[2].length,o=t[3].length,t):(i+s+o!=t[1].length+t[2].length+t[3].length&&(r=!1),i!=t[1].length&&(n=!1),i>t[1].length&&(i=t[1].length),s<t[2].length&&(s=t[2].length),o>t[3].length&&(o=t[3].length),t):[e]}).map(t?f:n?r?l:f:c)}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off(\"addRange\",this.$onAddRange),n.multiSelect.off(\"removeRange\",this.$onRemoveRange),n.multiSelect.off(\"multiSelect\",this.$onMultiSelect),n.multiSelect.off(\"singleSelect\",this.$onSingleSelect),n.multiSelect.lead.off(\"change\",this.$checkMultiselectChange),n.multiSelect.anchor.off(\"change\",this.$checkMultiselectChange)),t&&(t.multiSelect.on(\"addRange\",this.$onAddRange),t.multiSelect.on(\"removeRange\",this.$onRemoveRange),t.multiSelect.on(\"multiSelect\",this.$onMultiSelect),t.multiSelect.on(\"singleSelect\",this.$onSingleSelect),t.multiSelect.lead.on(\"change\",this.$checkMultiselectChange),t.multiSelect.anchor.on(\"change\",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=m,e(\"./config\").defineOptions(d.prototype,\"editor\",{enableMultiselect:{set:function(e){m(this),e?(this.on(\"changeSession\",this.$multiselectOnSessionChange),this.on(\"mousedown\",o)):(this.off(\"changeSession\",this.$multiselectOnSessionChange),this.off(\"mousedown\",o))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),ace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../range\").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?\"start\":t==\"markbeginend\"&&this.foldingStopMarker&&this.foldingStopMarker.test(r)?\"end\":\"\"},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\\S/,s=e.getLine(t),o=s.search(i);if(o==-1)return;var u=n||s.length,a=e.getLength(),f=t,l=t;while(++t<a){var c=e.getLine(t).search(i);if(c==-1)continue;if(c<=o)break;l=t}if(l>f){var h=e.getLine(l).length;return new r(f,u,l,h)}},this.openingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i+1},u=e.$findClosingBracket(t,o,s);if(!u)return;var a=e.foldWidgets[u.row];return a==null&&(a=e.getFoldWidget(u.row)),a==\"start\"&&u.row>o.row&&(u.row--,u.column=e.getLine(u.row).length),r.fromPoints(o,u)},this.closingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i},u=e.$findOpeningBracket(t,o);if(!u)return;return u.column++,o.column--,r.fromPoints(u,o)}}).call(i.prototype)}),ace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";t.isDark=!1,t.cssClass=\"ace-tm\",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;}';var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)}),ace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/range\"],function(e,t,n){\"use strict\";function o(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on(\"change\",this.updateOnChange),this.session.on(\"changeFold\",this.updateOnFold),this.session.on(\"changeEditor\",this.$onChangeEditor)}var r=e(\"./lib/oop\"),i=e(\"./lib/dom\"),s=e(\"./range\").Range;(function(){this.getRowLength=function(e){var t;return this.lineWidgets?t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:t=0,!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)}),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach();if(this.editor==e)return;this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on(\"beforeRender\",this.measureWidgets),e.renderer.on(\"afterRender\",this.renderWidgets))},this.detach=function(e){var t=this.editor;if(!t)return;this.editor=null,t.widgetManager=null,t.renderer.off(\"beforeRender\",this.measureWidgets),t.renderer.off(\"afterRender\",this.renderWidgets);var n=this.session.lineWidgets;n&&n.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})},this.updateOnFold=function(e,t){var n=t.lineWidgets;if(!n||!e.action)return;var r=e.data,i=r.start.row,s=r.end.row,o=e.action==\"add\";for(var u=i+1;u<s;u++)n[u]&&(n[u].hidden=o);n[s]&&(o?n[i]?n[s].hidden=o:n[i]=n[s]:(n[i]==n[s]&&(n[i]=undefined),n[s].hidden=o))},this.updateOnChange=function(e){var t=this.session.lineWidgets;if(!t)return;var n=e.start.row,r=e.end.row-n;if(r!==0)if(e.action==\"remove\"){var i=t.splice(n+1,r);i.forEach(function(e){e&&this.removeLineWidget(e)},this),this.$updateRows()}else{var s=new Array(r);s.unshift(n,0),t.splice.apply(t,s),this.$updateRows()}},this.$updateRows=function(){var e=this.session.lineWidgets;if(!e)return;var t=!0;e.forEach(function(e,n){if(e){t=!1,e.row=n;while(e.$oldWidget)e.$oldWidget.row=n,e=e.$oldWidget}}),t&&(this.session.lineWidgets=null)},this.addLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e.session=this.session;var n=this.editor.renderer;e.html&&!e.el&&(e.el=i.createElement(\"div\"),e.el.innerHTML=e.html),e.el&&(i.addCssClass(e.el,\"ace_lineWidgetContainer\"),e.el.style.position=\"absolute\",e.el.style.zIndex=5,n.container.appendChild(e.el),e._inDocument=!0),e.coverGutter||(e.el.style.zIndex=3),e.pixelHeight==null&&(e.pixelHeight=e.el.offsetHeight),e.rowCount==null&&(e.rowCount=e.pixelHeight/n.layerConfig.lineHeight);var r=this.session.getFoldAt(e.row,0);e.$fold=r;if(r){var s=this.session.lineWidgets;e.row==r.end.row&&!s[r.start.row]?s[r.start.row]=e:e.hidden=!0}return this.session._emit(\"changeFold\",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,n),this.onWidgetChanged(e),e},this.removeLineWidget=function(e){e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el);if(e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(t){}if(this.session.lineWidgets){var n=this.session.lineWidgets[e.row];if(n==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else while(n){if(n.$oldWidget==e){n.$oldWidget=e.$oldWidget;break}n=n.$oldWidget}}this.session._emit(\"changeFold\",{data:{start:{row:e.row}}}),this.$updateRows()},this.getWidgetsAtRow=function(e){var t=this.session.lineWidgets,n=t&&t[e],r=[];while(n)r.push(n),n=n.$oldWidget;return r},this.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(e,t){var n=this.session._changedWidgets,r=t.layerConfig;if(!n||!n.length)return;var i=Infinity;for(var s=0;s<n.length;s++){var o=n[s];if(!o||!o.el)continue;if(o.session!=this.session)continue;if(!o._inDocument){if(this.session.lineWidgets[o.row]!=o)continue;o._inDocument=!0,t.container.appendChild(o.el)}o.h=o.el.offsetHeight,o.fixedWidth||(o.w=o.el.offsetWidth,o.screenWidth=Math.ceil(o.w/r.characterWidth));var u=o.h/r.lineHeight;o.coverLine&&(u-=this.session.getRowLineCount(o.row),u<0&&(u=0)),o.rowCount!=u&&(o.rowCount=u,o.row<i&&(i=o.row))}i!=Infinity&&(this.session._emit(\"changeFold\",{data:{start:{row:i}}}),this.session.lineWidgetWidth=null),this.session._changedWidgets=[]},this.renderWidgets=function(e,t){var n=t.layerConfig,r=this.session.lineWidgets;if(!r)return;var i=Math.min(this.firstRow,n.firstRow),s=Math.max(this.lastRow,n.lastRow,r.length);while(i>0&&!r[i])i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var o=i;o<=s;o++){var u=r[o];if(!u||!u.el)continue;if(u.hidden){u.el.style.top=-100-(u.pixelHeight||0)+\"px\";continue}u._inDocument||(u._inDocument=!0,t.container.appendChild(u.el));var a=t.$cursorLayer.getPixelPosition({row:o,column:0},!0).top;u.coverLine||(a+=n.lineHeight*this.session.getRowLineCount(u.row)),u.el.style.top=a-n.offset+\"px\";var f=u.coverGutter?0:t.gutterWidth;u.fixedWidth||(f-=t.scrollLeft),u.el.style.left=f+\"px\",u.fullWidth&&u.screenWidth&&(u.el.style.minWidth=n.width+2*n.padding+\"px\"),u.fixedWidth?u.el.style.right=t.scrollBar.getWidth()+\"px\":u.el.style.right=\"\"}}}).call(o.prototype),t.LineWidgets=o}),ace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\"],function(e,t,n){\"use strict\";function o(e,t,n){var r=0,i=e.length-1;while(r<=i){var s=r+i>>1,o=n(t,e[s]);if(o>0)r=s+1;else{if(!(o<0))return s;i=s-1}}return-(r+1)}function u(e,t,n){var r=e.getAnnotations().sort(s.comparePoints);if(!r.length)return;var i=o(r,{row:t,column:-1},s.comparePoints);i<0&&(i=-i-1),i>=r.length?i=n>0?0:r.length-1:i===0&&n<0&&(i=r.length-1);var u=r[i];if(!u||!n)return;if(u.row===t){do u=r[i+=n];while(u&&u.row===t);if(!u)return r.slice()}var a=[];t=u.row;do a[n<0?\"unshift\":\"push\"](u),u=r[i+=n];while(u&&u.row==t);return a.length&&a}var r=e(\"../line_widgets\").LineWidgets,i=e(\"../lib/dom\"),s=e(\"../range\").Range;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new r(n),n.widgetManager.attach(e));var s=e.getCursorPosition(),o=s.row,a=n.widgetManager.getWidgetsAtRow(o).filter(function(e){return e.type==\"errorMarker\"})[0];a?a.destroy():o-=t;var f=u(n,o,t),l;if(f){var c=f[0];s.column=(c.pos&&typeof c.column!=\"number\"?c.pos.sc:c.column)||0,s.row=c.row,l=e.renderer.$gutterLayer.$annotations[s.row]}else{if(a)return;l={text:[\"Looks good!\"],className:\"ace_ok\"}}e.session.unfold(s.row),e.selection.moveToPosition(s);var h={row:s.row,fixedWidth:!0,coverGutter:!0,el:i.createElement(\"div\"),type:\"errorMarker\"},p=h.el.appendChild(i.createElement(\"div\")),d=h.el.appendChild(i.createElement(\"div\"));d.className=\"error_widget_arrow \"+l.className;var v=e.renderer.$cursorLayer.getPixelPosition(s).left;d.style.left=v+e.renderer.gutterWidth-5+\"px\",h.el.className=\"error_widget_wrapper\",p.className=\"error_widget \"+l.className,p.innerHTML=l.text.join(\"<br>\"),p.appendChild(i.createElement(\"div\"));var m=function(e,t,n){if(t===0&&(n===\"esc\"||n===\"return\"))return h.destroy(),{command:\"null\"}};h.destroy=function(){if(e.$mouseHandler.isMousePressed)return;e.keyBinding.removeKeyboardHandler(m),n.widgetManager.removeLineWidget(h),e.off(\"changeSelection\",h.destroy),e.off(\"changeSession\",h.destroy),e.off(\"mouseup\",h.destroy),e.off(\"change\",h.destroy)},e.keyBinding.addKeyboardHandler(m),e.on(\"changeSelection\",h.destroy),e.on(\"changeSession\",h.destroy),e.on(\"mouseup\",h.destroy),e.on(\"change\",h.destroy),e.session.widgetManager.addLineWidget(h),h.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:h.el.offsetHeight})},i.importCssString(\"    .error_widget_wrapper {        background: inherit;        color: inherit;        border:none    }    .error_widget {        border-top: solid 2px;        border-bottom: solid 2px;        margin: 5px 0;        padding: 10px 40px;        white-space: pre-wrap;    }    .error_widget.ace_error, .error_widget_arrow.ace_error{        border-color: #ff5a5a    }    .error_widget.ace_warning, .error_widget_arrow.ace_warning{        border-color: #F1D817    }    .error_widget.ace_info, .error_widget_arrow.ace_info{        border-color: #5a5a5a    }    .error_widget.ace_ok, .error_widget_arrow.ace_ok{        border-color: #5aaa5a    }    .error_widget_arrow {        position: absolute;        border: solid 5px;        border-top-color: transparent!important;        border-right-color: transparent!important;        border-left-color: transparent!important;        top: -5px;    }\",\"\")}),ace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\"],function(e,t,n){\"use strict\";e(\"./lib/fixoldbrowsers\");var r=e(\"./lib/dom\"),i=e(\"./lib/event\"),s=e(\"./editor\").Editor,o=e(\"./edit_session\").EditSession,u=e(\"./undomanager\").UndoManager,a=e(\"./virtual_renderer\").VirtualRenderer;e(\"./worker/worker_client\"),e(\"./keyboard/hash_handler\"),e(\"./placeholder\"),e(\"./multi_select\"),e(\"./mode/folding/fold_mode\"),e(\"./theme/textmate\"),e(\"./ext/error_marker\"),t.config=e(\"./config\"),t.require=e,typeof define==\"function\"&&(t.define=define),t.edit=function(e){if(typeof e==\"string\"){var n=e;e=document.getElementById(n);if(!e)throw new Error(\"ace.edit can't find div #\"+n)}if(e&&e.env&&e.env.editor instanceof s)return e.env.editor;var o=\"\";if(e&&/input|textarea/i.test(e.tagName)){var u=e;o=u.value,e=r.createElement(\"pre\"),u.parentNode.replaceChild(e,u)}else e&&(o=r.getInnerText(e),e.innerHTML=\"\");var f=t.createEditSession(o),l=new s(new a(e));l.setSession(f);var c={document:f,editor:l,onResize:l.resize.bind(l,null)};return u&&(c.textarea=u),i.addListener(window,\"resize\",c.onResize),l.on(\"destroy\",function(){i.removeListener(window,\"resize\",c.onResize),c.editor.container.env=null}),l.container.env=l.env=c,l},t.createEditSession=function(e,t){var n=new o(e,t);return n.setUndoManager(new u),n},t.EditSession=o,t.UndoManager=u,t.version=\"1.2.6\"});\n            (function() {\n                ace.require([\"ace/ace\"], function(a) {\n                    if (a) {\n                        a.config.init(true);\n                        a.define = ace.define;\n                    }\n                    if (!window.ace)\n                        window.ace = a;\n                    for (var key in a) if (a.hasOwnProperty(key))\n                        window.ace[key] = a[key];\n                });\n            })();\n        "
  },
  {
    "path": "lib/src-min-noconflict/ext-beautify.js",
    "content": "ace.define(\"ace/ext/beautify/php_rules\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"ace/token_iterator\").TokenIterator;t.newLines=[{type:\"support.php_tag\",value:\"<?php\"},{type:\"support.php_tag\",value:\"<?\"},{type:\"support.php_tag\",value:\"?>\"},{type:\"paren.lparen\",value:\"{\",indent:!0},{type:\"paren.rparen\",breakBefore:!0,value:\"}\",indent:!1},{type:\"paren.rparen\",breakBefore:!0,value:\"})\",indent:!1,dontBreak:!0},{type:\"comment\"},{type:\"text\",value:\";\"},{type:\"text\",value:\":\",context:\"php\"},{type:\"keyword\",value:\"case\",indent:!0,dontBreak:!0},{type:\"keyword\",value:\"default\",indent:!0,dontBreak:!0},{type:\"keyword\",value:\"break\",indent:!1,dontBreak:!0},{type:\"punctuation.doctype.end\",value:\">\"},{type:\"meta.tag.punctuation.end\",value:\">\"},{type:\"meta.tag.punctuation.begin\",value:\"<\",blockTag:!0,indent:!0,dontBreak:!0},{type:\"meta.tag.punctuation.begin\",value:\"</\",indent:!1,breakBefore:!0,dontBreak:!0},{type:\"punctuation.operator\",value:\";\"}],t.spaces=[{type:\"xml-pe\",prepend:!0},{type:\"entity.other.attribute-name\",prepend:!0},{type:\"storage.type\",value:\"var\",append:!0},{type:\"storage.type\",value:\"function\",append:!0},{type:\"keyword.operator\",value:\"=\"},{type:\"keyword\",value:\"as\",prepend:!0,append:!0},{type:\"keyword\",value:\"function\",append:!0},{type:\"support.function\",next:/[^\\(]/,append:!0},{type:\"keyword\",value:\"or\",append:!0,prepend:!0},{type:\"keyword\",value:\"and\",append:!0,prepend:!0},{type:\"keyword\",value:\"case\",append:!0},{type:\"keyword.operator\",value:\"||\",append:!0,prepend:!0},{type:\"keyword.operator\",value:\"&&\",append:!0,prepend:!0}],t.singleTags=[\"!doctype\",\"area\",\"base\",\"br\",\"hr\",\"input\",\"img\",\"link\",\"meta\"],t.transform=function(e,n,r){var i=e.getCurrentToken(),s=t.newLines,o=t.spaces,u=t.singleTags,a=\"\",f=0,l=!1,c,h,p={},d,v={},m=!1,g=\"\";while(i!==null){console.log(i);if(!i){i=e.stepForward();continue}i.type==\"support.php_tag\"&&i.value!=\"?>\"?r=\"php\":i.type==\"support.php_tag\"&&i.value==\"?>\"?r=\"html\":i.type==\"meta.tag.name.style\"&&r!=\"css\"?r=\"css\":i.type==\"meta.tag.name.style\"&&r==\"css\"?r=\"html\":i.type==\"meta.tag.name.script\"&&r!=\"js\"?r=\"js\":i.type==\"meta.tag.name.script\"&&r==\"js\"&&(r=\"html\"),v=e.stepForward(),v&&v.type.indexOf(\"meta.tag.name\")==0&&(d=v.value),p.type==\"support.php_tag\"&&p.value==\"<?=\"&&(l=!0),i.type==\"meta.tag.name\"&&(i.value=i.value.toLowerCase()),i.type==\"text\"&&(i.value=i.value.trim());if(!i.value){i=v;continue}g=i.value;for(var y in o)i.type==o[y].type&&(!o[y].value||i.value==o[y].value)&&v&&(!o[y].next||o[y].next.test(v.value))&&(o[y].prepend&&(g=\" \"+i.value),o[y].append&&(g+=\" \"));i.type.indexOf(\"meta.tag.name\")==0&&(c=i.value),m=!1;for(y in s)if(i.type==s[y].type&&(!s[y].value||i.value==s[y].value)&&(!s[y].blockTag||u.indexOf(d)===-1)&&(!s[y].context||s[y].context===r)){s[y].indent===!1&&f--;if(s[y].breakBefore&&(!s[y].prev||s[y].prev.test(p.value))){a+=\"\\n\",m=!0;for(y=0;y<f;y++)a+=\"\t\"}break}if(l===!1)for(y in s)if(p.type==s[y].type&&(!s[y].value||p.value==s[y].value)&&(!s[y].blockTag||u.indexOf(c)===-1)&&(!s[y].context||s[y].context===r)){s[y].indent===!0&&f++;if(!s[y].dontBreak&&!m){a+=\"\\n\";for(y=0;y<f;y++)a+=\"\t\"}break}a+=g,p.type==\"support.php_tag\"&&p.value==\"?>\"&&(l=!1),h=c,p=i,i=v;if(i===null)break}return a}}),ace.define(\"ace/ext/beautify\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/ext/beautify/php_rules\"],function(e,t,n){\"use strict\";var r=e(\"ace/token_iterator\").TokenIterator,i=e(\"./beautify/php_rules\").transform;t.beautify=function(e){var t=new r(e,0,0),n=t.getCurrentToken(),s=e.$modeId.split(\"/\").pop(),o=i(t,s);e.doc.setValue(o)},t.commands=[{name:\"beautify\",exec:function(e){t.beautify(e.session)},bindKey:\"Ctrl-Shift-B\"}]});\n                (function() {\n                    ace.require([\"ace/ext/beautify\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict/ext-chromevox.js",
    "content": "ace.define(\"ace/ext/chromevox\",[\"require\",\"exports\",\"module\",\"ace/editor\",\"ace/config\"],function(e,t,n){function gt(){return typeof cvox!=\"undefined\"&&cvox&&cvox.Api}function wt(e){if(gt())mt(e);else{yt++;if(yt>=bt)return;window.setTimeout(wt,500,e)}}var r={};r.SpeechProperty,r.Cursor,r.Token,r.Annotation;var i={rate:.8,pitch:.4,volume:.9},s={rate:1,pitch:.5,volume:.9},o={rate:.8,pitch:.8,volume:.9},u={rate:.8,pitch:.3,volume:.9},a={rate:.8,pitch:.7,volume:.9},f={rate:.8,pitch:.8,volume:.9},l={punctuationEcho:\"none\",relativePitch:-0.6},c=\"ALERT_NONMODAL\",h=\"ALERT_MODAL\",p=\"INVALID_KEYPRESS\",d=\"insertMode\",v=\"start\",m=[{substr:\";\",newSubstr:\" semicolon \"},{substr:\":\",newSubstr:\" colon \"}],g={SPEAK_ANNOT:\"annots\",SPEAK_ALL_ANNOTS:\"all_annots\",TOGGLE_LOCATION:\"toggle_location\",SPEAK_MODE:\"mode\",SPEAK_ROW_COL:\"row_col\",TOGGLE_DISPLACEMENT:\"toggle_displacement\",FOCUS_TEXT:\"focus_text\"},y=\"CONTROL + SHIFT \";r.editor=null;var b=null,w={},E=!1,S=!1,x=!1,T=null,N={},C={},k=function(e){return y+String.fromCharCode(e)},L=function(){var e=r.editor.keyBinding.getKeyboardHandler();return e.$id===\"ace/keyboard/vim\"},A=function(e){return r.editor.getSession().getTokenAt(e.row,e.column+1)},O=function(e){return r.editor.getSession().getLine(e.row)},M=function(e){w[e.row]&&cvox.Api.playEarcon(c),E?(cvox.Api.stop(),W(e),R(A(e)),I(e.row,1)):I(e.row,0)},_=function(e){var t=O(e),n=t.substr(e.column-1);e.column===0&&(n=\" \"+t);var r=/^\\W(\\w+)/,i=r.exec(n);return i!==null},D={constant:{prop:i},entity:{prop:o},keyword:{prop:u},storage:{prop:a},variable:{prop:f},meta:{prop:s,replace:[{substr:\"</\",newSubstr:\" closing tag \"},{substr:\"/>\",newSubstr:\" close tag \"},{substr:\"<\",newSubstr:\" tag start \"},{substr:\">\",newSubstr:\" tag end \"}]}},P={prop:P},H=function(e,t){var n=e;for(var r=0;r<t.length;r++){var i=t[r],s=new RegExp(i.substr,\"g\");n=n.replace(s,i.newSubstr)}return n},B=function(e,t,n){var r={};r.value=\"\",r.type=e[t].type;for(var i=t;i<n;i++)r.value+=e[i].value;return r},j=function(e){if(e.length<=1)return e;var t=[],n=0;for(var r=1;r<e.length;r++){var i=e[n],s=e[r];U(i)!==U(s)&&(t.push(B(e,n,r)),n=r)}return t.push(B(e,n,e.length)),t},F=function(e){var t=r.editor.getSession().getLine(e),n=/^\\s*$/;return n.exec(t)!==null},I=function(e,t){var n=r.editor.getSession().getTokens(e);if(n.length===0||F(e)){cvox.Api.playEarcon(\"EDITABLE_TEXT\");return}n=j(n);var i=n[0];n=n.filter(function(e){return e!==i}),z(i,t),n.forEach(R)},q=function(e){z(e,0)},R=function(e){z(e,1)},U=function(e){if(!e||!e.type)return;var t=e.type.split(\".\");if(t.length===0)return;var n=t[0],r=D[n];return r?r:P},z=function(e,t){var n=U(e),r=H(e.value,m);n.replace&&(r=H(r,n.replace)),cvox.Api.speak(r,t,n.prop)},W=function(e){var t=O(e);cvox.Api.speak(t[e.column],1)},X=function(e,t){var n=O(t),r=n.substring(e.column,t.column);r=r.replace(/ /g,\" space \"),cvox.Api.speak(r)},V=function(e,t){if(Math.abs(e.column-t.column)!==1){var n=O(t).length;if(t.column===0||t.column===n){I(t.row,0);return}if(_(t)){cvox.Api.stop(),R(A(t));return}}W(t)},$=function(e,t){r.editor.selection.isEmpty()?S?X(e,t):V(e,t):(X(e,t),cvox.Api.speak(\"selected\",1))},J=function(e){if(x){x=!1;return}var t=r.editor.selection.getCursor();t.row!==b.row?M(t):$(b,t),b=t},K=function(e){r.editor.selection.isEmpty()&&cvox.Api.speak(\"unselected\")},Q=function(e){switch(e.action){case\"remove\":cvox.Api.speak(e.text,0,l),x=!0;break;case\"insert\":cvox.Api.speak(e.text,0),x=!0}},G=function(e){var t=e.row,n=e.column;return!w[t]||!w[t][n]},Y=function(e){w={};for(var t=0;t<e.length;t++){var n=e[t],r=n.row,i=n.column;w[r]||(w[r]={}),w[r][i]=n}},Z=function(e){var t=r.editor.getSession().getAnnotations(),n=t.filter(G);n.length>0&&cvox.Api.playEarcon(c),Y(t)},et=function(e){var t=e.type+\" \"+e.text+\" on \"+nt(e.row,e.column);t=t.replace(\";\",\"semicolon\"),cvox.Api.speak(t,1)},tt=function(e){var t=w[e];for(var n in t)et(t[n])},nt=function(e,t){return\"row \"+(e+1)+\" column \"+(t+1)},rt=function(){cvox.Api.speak(nt(b.row,b.column))},it=function(){for(var e in w)tt(e)},st=function(){if(!L())return;switch(r.editor.keyBinding.$data.state){case d:cvox.Api.speak(\"Insert mode\");break;case v:cvox.Api.speak(\"Command mode\")}},ot=function(){E=!E,E?cvox.Api.speak(\"Speak location on row change enabled.\"):cvox.Api.speak(\"Speak location on row change disabled.\")},ut=function(){S=!S,S?cvox.Api.speak(\"Speak displacement on column changes.\"):cvox.Api.speak(\"Speak current character or word on column changes.\")},at=function(e){if(e.ctrlKey&&e.shiftKey){var t=N[e.keyCode];t&&t.func()}},ft=function(e,t){if(!L())return;var n=t.keyBinding.$data.state;if(n===T)return;switch(n){case d:cvox.Api.playEarcon(h),cvox.Api.setKeyEcho(!0);break;case v:cvox.Api.playEarcon(h),cvox.Api.setKeyEcho(!1)}T=n},lt=function(e){var t=e.detail.customCommand,n=C[t];n&&(n.func(),r.editor.focus())},ct=function(){var e=dt.map(function(e){return{desc:e.desc+k(e.keyCode),cmd:e.cmd}}),t=document.querySelector(\"body\");t.setAttribute(\"contextMenuActions\",JSON.stringify(e)),t.addEventListener(\"ATCustomEvent\",lt,!0)},ht=function(e){e.match?I(b.row,0):cvox.Api.playEarcon(p)},pt=function(){r.editor.focus()},dt=[{keyCode:49,func:function(){tt(b.row)},cmd:g.SPEAK_ANNOT,desc:\"Speak annotations on line\"},{keyCode:50,func:it,cmd:g.SPEAK_ALL_ANNOTS,desc:\"Speak all annotations\"},{keyCode:51,func:st,cmd:g.SPEAK_MODE,desc:\"Speak Vim mode\"},{keyCode:52,func:ot,cmd:g.TOGGLE_LOCATION,desc:\"Toggle speak row location\"},{keyCode:53,func:rt,cmd:g.SPEAK_ROW_COL,desc:\"Speak row and column\"},{keyCode:54,func:ut,cmd:g.TOGGLE_DISPLACEMENT,desc:\"Toggle speak displacement\"},{keyCode:55,func:pt,cmd:g.FOCUS_TEXT,desc:\"Focus text\"}],vt=function(e,t){r.editor=t,t.getSession().selection.on(\"changeCursor\",J),t.getSession().selection.on(\"changeSelection\",K),t.getSession().on(\"change\",Q),t.getSession().on(\"changeAnnotation\",Z),t.on(\"changeStatus\",ft),t.on(\"findSearchBox\",ht),t.container.addEventListener(\"keydown\",at),b=t.selection.getCursor()},mt=function(e){vt(null,e),dt.forEach(function(e){N[e.keyCode]=e,C[e.cmd]=e}),e.on(\"focus\",vt),L()&&cvox.Api.setKeyEcho(!1),ct()},yt=0,bt=15,Et=e(\"../editor\").Editor;e(\"../config\").defineOptions(Et.prototype,\"editor\",{enableChromevoxEnhancements:{set:function(e){e&&wt(this)},value:!0}})});\n                (function() {\n                    ace.require([\"ace/ext/chromevox\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict/ext-elastic_tabstops_lite.js",
    "content": "ace.define(\"ace/ext/elastic_tabstops_lite\",[\"require\",\"exports\",\"module\",\"ace/editor\",\"ace/config\"],function(e,t,n){\"use strict\";var r=function(e){this.$editor=e;var t=this,n=[],r=!1;this.onAfterExec=function(){r=!1,t.processRows(n),n=[]},this.onExec=function(){r=!0},this.onChange=function(e){r&&(n.indexOf(e.start.row)==-1&&n.push(e.start.row),e.end.row!=e.start.row&&n.push(e.end.row))}};(function(){this.processRows=function(e){this.$inChange=!0;var t=[];for(var n=0,r=e.length;n<r;n++){var i=e[n];if(t.indexOf(i)>-1)continue;var s=this.$findCellWidthsForBlock(i),o=this.$setBlockCellWidthsToMax(s.cellWidths),u=s.firstRow;for(var a=0,f=o.length;a<f;a++){var l=o[a];t.push(u),this.$adjustRow(u,l),u++}}this.$inChange=!1},this.$findCellWidthsForBlock=function(e){var t=[],n,r=e;while(r>=0){n=this.$cellWidthsForRow(r);if(n.length==0)break;t.unshift(n),r--}var i=r+1;r=e;var s=this.$editor.session.getLength();while(r<s-1){r++,n=this.$cellWidthsForRow(r);if(n.length==0)break;t.push(n)}return{cellWidths:t,firstRow:i}},this.$cellWidthsForRow=function(e){var t=this.$selectionColumnsForRow(e),n=[-1].concat(this.$tabsForRow(e)),r=n.map(function(e){return 0}).slice(1),i=this.$editor.session.getLine(e);for(var s=0,o=n.length-1;s<o;s++){var u=n[s]+1,a=n[s+1],f=this.$rightmostSelectionInCell(t,a),l=i.substring(u,a);r[s]=Math.max(l.replace(/\\s+$/g,\"\").length,f-u)}return r},this.$selectionColumnsForRow=function(e){var t=[],n=this.$editor.getCursorPosition();return this.$editor.session.getSelection().isEmpty()&&e==n.row&&t.push(n.column),t},this.$setBlockCellWidthsToMax=function(e){var t=!0,n,r,i,s=this.$izip_longest(e);for(var o=0,u=s.length;o<u;o++){var a=s[o];if(!a.push){console.error(a);continue}a.push(NaN);for(var f=0,l=a.length;f<l;f++){var c=a[f];t&&(n=f,i=0,t=!1);if(isNaN(c)){r=f;for(var h=n;h<r;h++)e[h][o]=i;t=!0}i=Math.max(i,c)}}return e},this.$rightmostSelectionInCell=function(e,t){var n=0;if(e.length){var r=[];for(var i=0,s=e.length;i<s;i++)e[i]<=t?r.push(i):r.push(0);n=Math.max.apply(Math,r)}return n},this.$tabsForRow=function(e){var t=[],n=this.$editor.session.getLine(e),r=/\\t/g,i;while((i=r.exec(n))!=null)t.push(i.index);return t},this.$adjustRow=function(e,t){var n=this.$tabsForRow(e);if(n.length==0)return;var r=0,i=-1,s=this.$izip(t,n);for(var o=0,u=s.length;o<u;o++){var a=s[o][0],f=s[o][1];i+=1+a,f+=r;var l=i-f;if(l==0)continue;var c=this.$editor.session.getLine(e).substr(0,f),h=c.replace(/\\s*$/g,\"\"),p=c.length-h.length;l>0&&(this.$editor.session.getDocument().insertInLine({row:e,column:f+1},Array(l+1).join(\" \")+\"\t\"),this.$editor.session.getDocument().removeInLine(e,f,f+1),r+=l),l<0&&p>=-l&&(this.$editor.session.getDocument().removeInLine(e,f+l,f),r+=l)}},this.$izip_longest=function(e){if(!e[0])return[];var t=e[0].length,n=e.length;for(var r=1;r<n;r++){var i=e[r].length;i>t&&(t=i)}var s=[];for(var o=0;o<t;o++){var u=[];for(var r=0;r<n;r++)e[r][o]===\"\"?u.push(NaN):u.push(e[r][o]);s.push(u)}return s},this.$izip=function(e,t){var n=e.length>=t.length?t.length:e.length,r=[];for(var i=0;i<n;i++){var s=[e[i],t[i]];r.push(s)}return r}}).call(r.prototype),t.ElasticTabstopsLite=r;var i=e(\"../editor\").Editor;e(\"../config\").defineOptions(i.prototype,\"editor\",{useElasticTabstops:{set:function(e){e?(this.elasticTabstops||(this.elasticTabstops=new r(this)),this.commands.on(\"afterExec\",this.elasticTabstops.onAfterExec),this.commands.on(\"exec\",this.elasticTabstops.onExec),this.on(\"change\",this.elasticTabstops.onChange)):this.elasticTabstops&&(this.commands.removeListener(\"afterExec\",this.elasticTabstops.onAfterExec),this.commands.removeListener(\"exec\",this.elasticTabstops.onExec),this.removeListener(\"change\",this.elasticTabstops.onChange))}}})});\n                (function() {\n                    ace.require([\"ace/ext/elastic_tabstops_lite\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict/ext-emmet.js",
    "content": "ace.define(\"ace/snippets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/lib/lang\",\"ace/range\",\"ace/anchor\",\"ace/keyboard/hash_handler\",\"ace/tokenizer\",\"ace/lib/dom\",\"ace/editor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=e(\"./lib/lang\"),o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=e(\"./keyboard/hash_handler\").HashHandler,f=e(\"./tokenizer\").Tokenizer,l=o.comparePoints,c=function(){this.snippetMap={},this.snippetNameMap={}};(function(){r.implement(this,i),this.getTokenizer=function(){function e(e,t,n){return e=e.substr(1),/^\\d+$/.test(e)&&!n.inFormatString?[{tabstopId:parseInt(e,10)}]:[{text:e}]}function t(e){return\"(?:[^\\\\\\\\\"+e+\"]|\\\\\\\\.)\"}return c.$tokenizer=new f({start:[{regex:/:/,onMatch:function(e,t,n){return n.length&&n[0].expectIf?(n[0].expectIf=!1,n[0].elseBranch=n[0],[n[0]]):\":\"}},{regex:/\\\\./,onMatch:function(e,t,n){var r=e[1];return r==\"}\"&&n.length?e=r:\"`$\\\\\".indexOf(r)!=-1?e=r:n.inFormatString&&(r==\"n\"?e=\"\\n\":r==\"t\"?e=\"\\n\":\"ulULE\".indexOf(r)!=-1&&(e={changeCase:r,local:r>\"a\"})),[e]}},{regex:/}/,onMatch:function(e,t,n){return[n.length?n.shift():e]}},{regex:/\\$(?:\\d+|\\w+)/,onMatch:e},{regex:/\\$\\{[\\dA-Z_a-z]+/,onMatch:function(t,n,r){var i=e(t.substr(1),n,r);return r.unshift(i[0]),i},next:\"snippetVar\"},{regex:/\\n/,token:\"newline\",merge:!1}],snippetVar:[{regex:\"\\\\|\"+t(\"\\\\|\")+\"*\\\\|\",onMatch:function(e,t,n){n[0].choices=e.slice(1,-1).split(\",\")},next:\"start\"},{regex:\"/(\"+t(\"/\")+\"+)/(?:(\"+t(\"/\")+\"*)/)(\\\\w*):?\",onMatch:function(e,t,n){var r=n[0];return r.fmtString=e,e=this.splitRegex.exec(e),r.guard=e[1],r.fmt=e[2],r.flag=e[3],\"\"},next:\"start\"},{regex:\"`\"+t(\"`\")+\"*`\",onMatch:function(e,t,n){return n[0].code=e.splice(1,-1),\"\"},next:\"start\"},{regex:\"\\\\?\",onMatch:function(e,t,n){n[0]&&(n[0].expectIf=!0)},next:\"start\"},{regex:\"([^:}\\\\\\\\]|\\\\\\\\.)*:?\",token:\"\",next:\"start\"}],formatString:[{regex:\"/(\"+t(\"/\")+\"+)/\",token:\"regex\"},{regex:\"\",onMatch:function(e,t,n){n.inFormatString=!0},next:\"start\"}]}),c.prototype.getTokenizer=function(){return c.$tokenizer},c.$tokenizer},this.tokenizeTmSnippet=function(e,t){return this.getTokenizer().getLineTokens(e,t).tokens.map(function(e){return e.value||e})},this.$getDefaultValue=function(e,t){if(/^[A-Z]\\d+$/.test(t)){var n=t.substr(1);return(this.variables[t[0]+\"__\"]||{})[n]}if(/^\\d+$/.test(t))return(this.variables.__||{})[t];t=t.replace(/^TM_/,\"\");if(!e)return;var r=e.session;switch(t){case\"CURRENT_WORD\":var i=r.getWordRange();case\"SELECTION\":case\"SELECTED_TEXT\":return r.getTextRange(i);case\"CURRENT_LINE\":return r.getLine(e.getCursorPosition().row);case\"PREV_LINE\":return r.getLine(e.getCursorPosition().row-1);case\"LINE_INDEX\":return e.getCursorPosition().column;case\"LINE_NUMBER\":return e.getCursorPosition().row+1;case\"SOFT_TABS\":return r.getUseSoftTabs()?\"YES\":\"NO\";case\"TAB_SIZE\":return r.getTabSize();case\"FILENAME\":case\"FILEPATH\":return\"\";case\"FULLNAME\":return\"Ace\"}},this.variables={},this.getVariableValue=function(e,t){return this.variables.hasOwnProperty(t)?this.variables[t](e,t)||\"\":this.$getDefaultValue(e,t)||\"\"},this.tmStrFormat=function(e,t,n){var r=t.flag||\"\",i=t.guard;i=new RegExp(i,r.replace(/[^gi]/,\"\"));var s=this.tokenizeTmSnippet(t.fmt,\"formatString\"),o=this,u=e.replace(i,function(){o.variables.__=arguments;var e=o.resolveVariables(s,n),t=\"E\";for(var r=0;r<e.length;r++){var i=e[r];if(typeof i==\"object\"){e[r]=\"\";if(i.changeCase&&i.local){var u=e[r+1];u&&typeof u==\"string\"&&(i.changeCase==\"u\"?e[r]=u[0].toUpperCase():e[r]=u[0].toLowerCase(),e[r+1]=u.substr(1))}else i.changeCase&&(t=i.changeCase)}else t==\"U\"?e[r]=i.toUpperCase():t==\"L\"&&(e[r]=i.toLowerCase())}return e.join(\"\")});return this.variables.__=null,u},this.resolveVariables=function(e,t){function o(t){var n=e.indexOf(t,r+1);n!=-1&&(r=n)}var n=[];for(var r=0;r<e.length;r++){var i=e[r];if(typeof i==\"string\")n.push(i);else{if(typeof i!=\"object\")continue;if(i.skip)o(i);else{if(i.processed<r)continue;if(i.text){var s=this.getVariableValue(t,i.text);s&&i.fmtString&&(s=this.tmStrFormat(s,i)),i.processed=r,i.expectIf==null?s&&(n.push(s),o(i)):s?i.skip=i.elseBranch:o(i)}else i.tabstopId!=null?n.push(i):i.changeCase!=null&&n.push(i)}}}return n},this.insertSnippetForSelection=function(e,t){function f(e){var t=[];for(var n=0;n<e.length;n++){var r=e[n];if(typeof r==\"object\"){if(a[r.tabstopId])continue;var i=e.lastIndexOf(r,n-1);r=t[i]||{tabstopId:r.tabstopId}}t[n]=r}return t}var n=e.getCursorPosition(),r=e.session.getLine(n.row),i=e.session.getTabString(),s=r.match(/^\\s*/)[0];n.column<s.length&&(s=s.slice(0,n.column)),t=t.replace(/\\r/g,\"\");var o=this.tokenizeTmSnippet(t);o=this.resolveVariables(o,e),o=o.map(function(e){return e==\"\\n\"?e+s:typeof e==\"string\"?e.replace(/\\t/g,i):e});var u=[];o.forEach(function(e,t){if(typeof e!=\"object\")return;var n=e.tabstopId,r=u[n];r||(r=u[n]=[],r.index=n,r.value=\"\");if(r.indexOf(e)!==-1)return;r.push(e);var i=o.indexOf(e,t+1);if(i===-1)return;var s=o.slice(t+1,i),a=s.some(function(e){return typeof e==\"object\"});a&&!r.value?r.value=s:s.length&&(!r.value||typeof r.value!=\"string\")&&(r.value=s.join(\"\"))}),u.forEach(function(e){e.length=0});var a={};for(var l=0;l<o.length;l++){var c=o[l];if(typeof c!=\"object\")continue;var p=c.tabstopId,d=o.indexOf(c,l+1);if(a[p]){a[p]===c&&(a[p]=null);continue}var v=u[p],m=typeof v.value==\"string\"?[v.value]:f(v.value);m.unshift(l+1,Math.max(0,d-l)),m.push(c),a[p]=c,o.splice.apply(o,m),v.indexOf(c)===-1&&v.push(c)}var g=0,y=0,b=\"\";o.forEach(function(e){if(typeof e==\"string\"){var t=e.split(\"\\n\");t.length>1?(y=t[t.length-1].length,g+=t.length-1):y+=e.length,b+=e}else e.start?e.end={row:g,column:y}:e.start={row:g,column:y}});var w=e.getSelectionRange(),E=e.session.replace(w,b),S=new h(e),x=e.inVirtualSelectionMode&&e.selection.index;S.addTabstops(u,w.start,E,x)},this.insertSnippet=function(e,t){var n=this;if(e.inVirtualSelectionMode)return n.insertSnippetForSelection(e,t);e.forEachSelection(function(){n.insertSnippetForSelection(e,t)},null,{keepOrder:!0}),e.tabstopManager&&e.tabstopManager.tabNext()},this.$getScope=function(e){var t=e.session.$mode.$id||\"\";t=t.split(\"/\").pop();if(t===\"html\"||t===\"php\"){t===\"php\"&&!e.session.$mode.inlinePhp&&(t=\"html\");var n=e.getCursorPosition(),r=e.session.getState(n.row);typeof r==\"object\"&&(r=r[0]),r.substring&&(r.substring(0,3)==\"js-\"?t=\"javascript\":r.substring(0,4)==\"css-\"?t=\"css\":r.substring(0,4)==\"php-\"&&(t=\"php\"))}return t},this.getActiveScopes=function(e){var t=this.$getScope(e),n=[t],r=this.snippetMap;return r[t]&&r[t].includeScopes&&n.push.apply(n,r[t].includeScopes),n.push(\"_\"),n},this.expandWithTab=function(e,t){var n=this,r=e.forEachSelection(function(){return n.expandSnippetForSelection(e,t)},null,{keepOrder:!0});return r&&e.tabstopManager&&e.tabstopManager.tabNext(),r},this.expandSnippetForSelection=function(e,t){var n=e.getCursorPosition(),r=e.session.getLine(n.row),i=r.substring(0,n.column),s=r.substr(n.column),o=this.snippetMap,u;return this.getActiveScopes(e).some(function(e){var t=o[e];return t&&(u=this.findMatchingSnippet(t,i,s)),!!u},this),u?t&&t.dryRun?!0:(e.session.doc.removeInLine(n.row,n.column-u.replaceBefore.length,n.column+u.replaceAfter.length),this.variables.M__=u.matchBefore,this.variables.T__=u.matchAfter,this.insertSnippetForSelection(e,u.content),this.variables.M__=this.variables.T__=null,!0):!1},this.findMatchingSnippet=function(e,t,n){for(var r=e.length;r--;){var i=e[r];if(i.startRe&&!i.startRe.test(t))continue;if(i.endRe&&!i.endRe.test(n))continue;if(!i.startRe&&!i.endRe)continue;return i.matchBefore=i.startRe?i.startRe.exec(t):[\"\"],i.matchAfter=i.endRe?i.endRe.exec(n):[\"\"],i.replaceBefore=i.triggerRe?i.triggerRe.exec(t)[0]:\"\",i.replaceAfter=i.endTriggerRe?i.endTriggerRe.exec(n)[0]:\"\",i}},this.snippetMap={},this.snippetNameMap={},this.register=function(e,t){function o(e){return e&&!/^\\^?\\(.*\\)\\$?$|^\\\\b$/.test(e)&&(e=\"(?:\"+e+\")\"),e||\"\"}function u(e,t,n){return e=o(e),t=o(t),n?(e=t+e,e&&e[e.length-1]!=\"$\"&&(e+=\"$\")):(e+=t,e&&e[0]!=\"^\"&&(e=\"^\"+e)),new RegExp(e)}function a(e){e.scope||(e.scope=t||\"_\"),t=e.scope,n[t]||(n[t]=[],r[t]={});var o=r[t];if(e.name){var a=o[e.name];a&&i.unregister(a),o[e.name]=e}n[t].push(e),e.tabTrigger&&!e.trigger&&(!e.guard&&/^\\w/.test(e.tabTrigger)&&(e.guard=\"\\\\b\"),e.trigger=s.escapeRegExp(e.tabTrigger));if(!e.trigger&&!e.guard&&!e.endTrigger&&!e.endGuard)return;e.startRe=u(e.trigger,e.guard,!0),e.triggerRe=new RegExp(e.trigger,\"\",!0),e.endRe=u(e.endTrigger,e.endGuard,!0),e.endTriggerRe=new RegExp(e.endTrigger,\"\",!0)}var n=this.snippetMap,r=this.snippetNameMap,i=this;e||(e=[]),e&&e.content?a(e):Array.isArray(e)&&e.forEach(a),this._signal(\"registerSnippets\",{scope:t})},this.unregister=function(e,t){function i(e){var i=r[e.scope||t];if(i&&i[e.name]){delete i[e.name];var s=n[e.scope||t],o=s&&s.indexOf(e);o>=0&&s.splice(o,1)}}var n=this.snippetMap,r=this.snippetNameMap;e.content?i(e):Array.isArray(e)&&e.forEach(i)},this.parseSnippetFile=function(e){e=e.replace(/\\r/g,\"\");var t=[],n={},r=/^#.*|^({[\\s\\S]*})\\s*$|^(\\S+) (.*)$|^((?:\\n*\\t.*)+)/gm,i;while(i=r.exec(e)){if(i[1])try{n=JSON.parse(i[1]),t.push(n)}catch(s){}if(i[4])n.content=i[4].replace(/^\\t/gm,\"\"),t.push(n),n={};else{var o=i[2],u=i[3];if(o==\"regex\"){var a=/\\/((?:[^\\/\\\\]|\\\\.)*)|$/g;n.guard=a.exec(u)[1],n.trigger=a.exec(u)[1],n.endTrigger=a.exec(u)[1],n.endGuard=a.exec(u)[1]}else o==\"snippet\"?(n.tabTrigger=u.match(/^\\S*/)[0],n.name||(n.name=u)):n[o]=u}}return t},this.getSnippetByName=function(e,t){var n=this.snippetNameMap,r;return this.getActiveScopes(t).some(function(t){var i=n[t];return i&&(r=i[e]),!!r},this),r}}).call(c.prototype);var h=function(e){if(e.tabstopManager)return e.tabstopManager;e.tabstopManager=this,this.$onChange=this.onChange.bind(this),this.$onChangeSelection=s.delayedCall(this.onChangeSelection.bind(this)).schedule,this.$onChangeSession=this.onChangeSession.bind(this),this.$onAfterExec=this.onAfterExec.bind(this),this.attach(e)};(function(){this.attach=function(e){this.index=0,this.ranges=[],this.tabstops=[],this.$openTabstops=null,this.selectedTabstop=null,this.editor=e,this.editor.on(\"change\",this.$onChange),this.editor.on(\"changeSelection\",this.$onChangeSelection),this.editor.on(\"changeSession\",this.$onChangeSession),this.editor.commands.on(\"afterExec\",this.$onAfterExec),this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},this.detach=function(){this.tabstops.forEach(this.removeTabstopMarkers,this),this.ranges=null,this.tabstops=null,this.selectedTabstop=null,this.editor.removeListener(\"change\",this.$onChange),this.editor.removeListener(\"changeSelection\",this.$onChangeSelection),this.editor.removeListener(\"changeSession\",this.$onChangeSession),this.editor.commands.removeListener(\"afterExec\",this.$onAfterExec),this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.tabstopManager=null,this.editor=null},this.onChange=function(e){var t=e,n=e.action[0]==\"r\",r=e.start,i=e.end,s=r.row,o=i.row,u=o-s,a=i.column-r.column;n&&(u=-u,a=-a);if(!this.$inChange&&n){var f=this.selectedTabstop,c=f&&!f.some(function(e){return l(e.start,r)<=0&&l(e.end,i)>=0});if(c)return this.detach()}var h=this.ranges;for(var p=0;p<h.length;p++){var d=h[p];if(d.end.row<r.row)continue;if(n&&l(r,d.start)<0&&l(i,d.end)>0){this.removeRange(d),p--;continue}d.start.row==s&&d.start.column>r.column&&(d.start.column+=a),d.end.row==s&&d.end.column>=r.column&&(d.end.column+=a),d.start.row>=s&&(d.start.row+=u),d.end.row>=s&&(d.end.row+=u),l(d.start,d.end)>0&&this.removeRange(d)}h.length||this.detach()},this.updateLinkedFields=function(){var e=this.selectedTabstop;if(!e||!e.hasLinkedRanges)return;this.$inChange=!0;var n=this.editor.session,r=n.getTextRange(e.firstNonLinked);for(var i=e.length;i--;){var s=e[i];if(!s.linked)continue;var o=t.snippetManager.tmStrFormat(r,s.original);n.replace(s,o)}this.$inChange=!1},this.onAfterExec=function(e){e.command&&!e.command.readOnly&&this.updateLinkedFields()},this.onChangeSelection=function(){if(!this.editor)return;var e=this.editor.selection.lead,t=this.editor.selection.anchor,n=this.editor.selection.isEmpty();for(var r=this.ranges.length;r--;){if(this.ranges[r].linked)continue;var i=this.ranges[r].contains(e.row,e.column),s=n||this.ranges[r].contains(t.row,t.column);if(i&&s)return}this.detach()},this.onChangeSession=function(){this.detach()},this.tabNext=function(e){var t=this.tabstops.length,n=this.index+(e||1);n=Math.min(Math.max(n,1),t),n==t&&(n=0),this.selectTabstop(n),n===0&&this.detach()},this.selectTabstop=function(e){this.$openTabstops=null;var t=this.tabstops[this.index];t&&this.addTabstopMarkers(t),this.index=e,t=this.tabstops[this.index];if(!t||!t.length)return;this.selectedTabstop=t;if(!this.editor.inVirtualSelectionMode){var n=this.editor.multiSelect;n.toSingleRange(t.firstNonLinked.clone());for(var r=t.length;r--;){if(t.hasLinkedRanges&&t[r].linked)continue;n.addRange(t[r].clone(),!0)}n.ranges[0]&&n.addRange(n.ranges[0].clone())}else this.editor.selection.setRange(t.firstNonLinked);this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},this.addTabstops=function(e,t,n){this.$openTabstops||(this.$openTabstops=[]);if(!e[0]){var r=o.fromPoints(n,n);v(r.start,t),v(r.end,t),e[0]=[r],e[0].index=0}var i=this.index,s=[i+1,0],u=this.ranges;e.forEach(function(e,n){var r=this.$openTabstops[n]||e;for(var i=e.length;i--;){var a=e[i],f=o.fromPoints(a.start,a.end||a.start);d(f.start,t),d(f.end,t),f.original=a,f.tabstop=r,u.push(f),r!=e?r.unshift(f):r[i]=f,a.fmtString?(f.linked=!0,r.hasLinkedRanges=!0):r.firstNonLinked||(r.firstNonLinked=f)}r.firstNonLinked||(r.hasLinkedRanges=!1),r===e&&(s.push(r),this.$openTabstops[n]=r),this.addTabstopMarkers(r)},this),s.length>2&&(this.tabstops.length&&s.push(s.splice(2,1)[0]),this.tabstops.splice.apply(this.tabstops,s))},this.addTabstopMarkers=function(e){var t=this.editor.session;e.forEach(function(e){e.markerId||(e.markerId=t.addMarker(e,\"ace_snippet-marker\",\"text\"))})},this.removeTabstopMarkers=function(e){var t=this.editor.session;e.forEach(function(e){t.removeMarker(e.markerId),e.markerId=null})},this.removeRange=function(e){var t=e.tabstop.indexOf(e);e.tabstop.splice(t,1),t=this.ranges.indexOf(e),this.ranges.splice(t,1),this.editor.session.removeMarker(e.markerId),e.tabstop.length||(t=this.tabstops.indexOf(e.tabstop),t!=-1&&this.tabstops.splice(t,1),this.tabstops.length||this.detach())},this.keyboardHandler=new a,this.keyboardHandler.bindKeys({Tab:function(e){if(t.snippetManager&&t.snippetManager.expandWithTab(e))return;e.tabstopManager.tabNext(1)},\"Shift-Tab\":function(e){e.tabstopManager.tabNext(-1)},Esc:function(e){e.tabstopManager.detach()},Return:function(e){return!1}})}).call(h.prototype);var p={};p.onChange=u.prototype.onChange,p.setPosition=function(e,t){this.pos.row=e,this.pos.column=t},p.update=function(e,t,n){this.$insertRight=n,this.pos=e,this.onChange(t)};var d=function(e,t){e.row==0&&(e.column+=t.column),e.row+=t.row},v=function(e,t){e.row==t.row&&(e.column-=t.column),e.row-=t.row};e(\"./lib/dom\").importCssString(\".ace_snippet-marker {    -moz-box-sizing: border-box;    box-sizing: border-box;    background: rgba(194, 193, 208, 0.09);    border: 1px dotted rgba(211, 208, 235, 0.62);    position: absolute;}\"),t.snippetManager=new c;var m=e(\"./editor\").Editor;(function(){this.insertSnippet=function(e,n){return t.snippetManager.insertSnippet(this,e,n)},this.expandSnippet=function(e){return t.snippetManager.expandWithTab(this,e)}}).call(m.prototype)}),ace.define(\"ace/ext/emmet\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\",\"ace/editor\",\"ace/snippets\",\"ace/range\",\"resources\",\"resources\",\"tabStops\",\"resources\",\"utils\",\"actions\",\"ace/config\",\"ace/config\"],function(e,t,n){\"use strict\";function f(){}var r=e(\"ace/keyboard/hash_handler\").HashHandler,i=e(\"ace/editor\").Editor,s=e(\"ace/snippets\").snippetManager,o=e(\"ace/range\").Range,u,a;f.prototype={setupContext:function(e){this.ace=e,this.indentation=e.session.getTabString(),u||(u=window.emmet);var t=u.resources||u.require(\"resources\");t.setVariable(\"indentation\",this.indentation),this.$syntax=null,this.$syntax=this.getSyntax()},getSelectionRange:function(){var e=this.ace.getSelectionRange(),t=this.ace.session.doc;return{start:t.positionToIndex(e.start),end:t.positionToIndex(e.end)}},createSelection:function(e,t){var n=this.ace.session.doc;this.ace.selection.setRange({start:n.indexToPosition(e),end:n.indexToPosition(t)})},getCurrentLineRange:function(){var e=this.ace,t=e.getCursorPosition().row,n=e.session.getLine(t).length,r=e.session.doc.positionToIndex({row:t,column:0});return{start:r,end:r+n}},getCaretPos:function(){var e=this.ace.getCursorPosition();return this.ace.session.doc.positionToIndex(e)},setCaretPos:function(e){var t=this.ace.session.doc.indexToPosition(e);this.ace.selection.moveToPosition(t)},getCurrentLine:function(){var e=this.ace.getCursorPosition().row;return this.ace.session.getLine(e)},replaceContent:function(e,t,n,r){n==null&&(n=t==null?this.getContent().length:t),t==null&&(t=0);var i=this.ace,u=i.session.doc,a=o.fromPoints(u.indexToPosition(t),u.indexToPosition(n));i.session.remove(a),a.end=a.start,e=this.$updateTabstops(e),s.insertSnippet(i,e)},getContent:function(){return this.ace.getValue()},getSyntax:function(){if(this.$syntax)return this.$syntax;var e=this.ace.session.$modeId.split(\"/\").pop();if(e==\"html\"||e==\"php\"){var t=this.ace.getCursorPosition(),n=this.ace.session.getState(t.row);typeof n!=\"string\"&&(n=n[0]),n&&(n=n.split(\"-\"),n.length>1?e=n[0]:e==\"php\"&&(e=\"html\"))}return e},getProfileName:function(){var e=u.resources||u.require(\"resources\");switch(this.getSyntax()){case\"css\":return\"css\";case\"xml\":case\"xsl\":return\"xml\";case\"html\":var t=e.getVariable(\"profile\");return t||(t=this.ace.session.getLines(0,2).join(\"\").search(/<!DOCTYPE[^>]+XHTML/i)!=-1?\"xhtml\":\"html\"),t;default:var n=this.ace.session.$mode;return n.emmetConfig&&n.emmetConfig.profile||\"xhtml\"}},prompt:function(e){return prompt(e)},getSelection:function(){return this.ace.session.getTextRange()},getFilePath:function(){return\"\"},$updateTabstops:function(e){var t=1e3,n=0,r=null,i=u.tabStops||u.require(\"tabStops\"),s=u.resources||u.require(\"resources\"),o=s.getVocabulary(\"user\"),a={tabstop:function(e){var s=parseInt(e.group,10),o=s===0;o?s=++n:s+=t;var u=e.placeholder;u&&(u=i.processText(u,a));var f=\"${\"+s+(u?\":\"+u:\"\")+\"}\";return o&&(r=[e.start,f]),f},escape:function(e){return e==\"$\"?\"\\\\$\":e==\"\\\\\"?\"\\\\\\\\\":e}};e=i.processText(e,a);if(o.variables.insert_final_tabstop&&!/\\$\\{0\\}$/.test(e))e+=\"${0}\";else if(r){var f=u.utils?u.utils.common:u.require(\"utils\");e=f.replaceSubstring(e,\"${0}\",r[0],r[1])}return e}};var l={expand_abbreviation:{mac:\"ctrl+alt+e\",win:\"alt+e\"},match_pair_outward:{mac:\"ctrl+d\",win:\"ctrl+,\"},match_pair_inward:{mac:\"ctrl+j\",win:\"ctrl+shift+0\"},matching_pair:{mac:\"ctrl+alt+j\",win:\"alt+j\"},next_edit_point:\"alt+right\",prev_edit_point:\"alt+left\",toggle_comment:{mac:\"command+/\",win:\"ctrl+/\"},split_join_tag:{mac:\"shift+command+'\",win:\"shift+ctrl+`\"},remove_tag:{mac:\"command+'\",win:\"shift+ctrl+;\"},evaluate_math_expression:{mac:\"shift+command+y\",win:\"shift+ctrl+y\"},increment_number_by_1:\"ctrl+up\",decrement_number_by_1:\"ctrl+down\",increment_number_by_01:\"alt+up\",decrement_number_by_01:\"alt+down\",increment_number_by_10:{mac:\"alt+command+up\",win:\"shift+alt+up\"},decrement_number_by_10:{mac:\"alt+command+down\",win:\"shift+alt+down\"},select_next_item:{mac:\"shift+command+.\",win:\"shift+ctrl+.\"},select_previous_item:{mac:\"shift+command+,\",win:\"shift+ctrl+,\"},reflect_css_value:{mac:\"shift+command+r\",win:\"shift+ctrl+r\"},encode_decode_data_url:{mac:\"shift+ctrl+d\",win:\"ctrl+'\"},expand_abbreviation_with_tab:\"Tab\",wrap_with_abbreviation:{mac:\"shift+ctrl+a\",win:\"shift+ctrl+a\"}},c=new f;t.commands=new r,t.runEmmetCommand=function v(e){try{c.setupContext(e);var t=u.actions||u.require(\"actions\");if(this.action==\"expand_abbreviation_with_tab\"){if(!e.selection.isEmpty())return!1;var n=e.selection.lead,r=e.session.getTokenAt(n.row,n.column);if(r&&/\\btag\\b/.test(r.type))return!1}if(this.action==\"wrap_with_abbreviation\")return setTimeout(function(){t.run(\"wrap_with_abbreviation\",c)},0);var i=t.run(this.action,c)}catch(s){if(!u)return d(v.bind(this,e)),!0;e._signal(\"changeStatus\",typeof s==\"string\"?s:s.message),console.log(s),i=!1}return i};for(var h in l)t.commands.addCommand({name:\"emmet:\"+h,action:h,bindKey:l[h],exec:t.runEmmetCommand,multiSelectAction:\"forEach\"});t.updateCommands=function(e,n){n?e.keyBinding.addKeyboardHandler(t.commands):e.keyBinding.removeKeyboardHandler(t.commands)},t.isSupportedMode=function(e){if(!e)return!1;if(e.emmetConfig)return!0;var t=e.$id||e;return/css|less|scss|sass|stylus|html|php|twig|ejs|handlebars/.test(t)},t.isAvailable=function(e,n){if(/(evaluate_math_expression|expand_abbreviation)$/.test(n))return!0;var r=e.session.$mode,i=t.isSupportedMode(r);if(i&&r.$modes)try{c.setupContext(e),/js|php/.test(c.getSyntax())&&(i=!1)}catch(s){}return i};var p=function(e,n){var r=n;if(!r)return;var i=t.isSupportedMode(r.session.$mode);e.enableEmmet===!1&&(i=!1),i&&d(),t.updateCommands(r,i)},d=function(t){typeof a==\"string\"&&e(\"ace/config\").loadModule(a,function(){a=null,t&&t()})};t.AceEmmetEditor=f,e(\"ace/config\").defineOptions(i.prototype,\"editor\",{enableEmmet:{set:function(e){this[e?\"on\":\"removeListener\"](\"changeMode\",p),p({enableEmmet:!!e},this)},value:!0}}),t.setCore=function(e){typeof e==\"string\"?a=e:u=e}});\n                (function() {\n                    ace.require([\"ace/ext/emmet\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict/ext-error_marker.js",
    "content": ";\n                (function() {\n                    ace.require([\"ace/ext/error_marker\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict/ext-keybinding_menu.js",
    "content": "ace.define(\"ace/ext/menu_tools/overlay_page\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/dom\"),i=\"#ace_settingsmenu, #kbshortcutmenu {background-color: #F7F7F7;color: black;box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);padding: 1em 0.5em 2em 1em;overflow: auto;position: absolute;margin: 0;bottom: 0;right: 0;top: 0;z-index: 9991;cursor: default;}.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);background-color: rgba(255, 255, 255, 0.6);color: black;}.ace_optionsMenuEntry:hover {background-color: rgba(100, 100, 100, 0.1);-webkit-transition: all 0.5s;transition: all 0.3s}.ace_closeButton {background: rgba(245, 146, 146, 0.5);border: 1px solid #F48A8A;border-radius: 50%;padding: 7px;position: absolute;right: -8px;top: -8px;z-index: 1000;}.ace_closeButton{background: rgba(245, 146, 146, 0.9);}.ace_optionsMenuKey {color: darkslateblue;font-weight: bold;}.ace_optionsMenuCommand {color: darkcyan;font-weight: normal;}\";r.importCssString(i),n.exports.overlayPage=function(t,n,i,s,o,u){function l(e){e.keyCode===27&&a.click()}i=i?\"top: \"+i+\";\":\"\",o=o?\"bottom: \"+o+\";\":\"\",s=s?\"right: \"+s+\";\":\"\",u=u?\"left: \"+u+\";\":\"\";var a=document.createElement(\"div\"),f=document.createElement(\"div\");a.style.cssText=\"margin: 0; padding: 0; position: fixed; top:0; bottom:0; left:0; right:0;z-index: 9990; background-color: rgba(0, 0, 0, 0.3);\",a.addEventListener(\"click\",function(){document.removeEventListener(\"keydown\",l),a.parentNode.removeChild(a),t.focus(),a=null}),document.addEventListener(\"keydown\",l),f.style.cssText=i+s+o+u,f.addEventListener(\"click\",function(e){e.stopPropagation()});var c=r.createElement(\"div\");c.style.position=\"relative\";var h=r.createElement(\"div\");h.className=\"ace_closeButton\",h.addEventListener(\"click\",function(){a.click()}),c.appendChild(h),f.appendChild(c),f.appendChild(n),a.appendChild(f),document.body.appendChild(a),t.blur()}}),ace.define(\"ace/ext/menu_tools/get_editor_keyboard_shortcuts\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/keys\");n.exports.getEditorKeybordShortcuts=function(e){var t=r.KEY_MODS,n=[],i={};return e.keyBinding.$handlers.forEach(function(e){var t=e.commandKeyBinding;for(var r in t){var s=r.replace(/(^|-)\\w/g,function(e){return e.toUpperCase()}),o=t[r];Array.isArray(o)||(o=[o]),o.forEach(function(e){typeof e!=\"string\"&&(e=e.name),i[e]?i[e].key+=\"|\"+s:(i[e]={key:s,command:e},n.push(i[e]))})}}),n}}),ace.define(\"ace/ext/keybinding_menu\",[\"require\",\"exports\",\"module\",\"ace/editor\",\"ace/ext/menu_tools/overlay_page\",\"ace/ext/menu_tools/get_editor_keyboard_shortcuts\"],function(e,t,n){\"use strict\";function i(t){if(!document.getElementById(\"kbshortcutmenu\")){var n=e(\"./menu_tools/overlay_page\").overlayPage,r=e(\"./menu_tools/get_editor_keyboard_shortcuts\").getEditorKeybordShortcuts,i=r(t),s=document.createElement(\"div\"),o=i.reduce(function(e,t){return e+'<div class=\"ace_optionsMenuEntry\"><span class=\"ace_optionsMenuCommand\">'+t.command+\"</span> : \"+'<span class=\"ace_optionsMenuKey\">'+t.key+\"</span></div>\"},\"\");s.id=\"kbshortcutmenu\",s.innerHTML=\"<h1>Keyboard Shortcuts</h1>\"+o+\"</div>\",n(t,s,\"0\",\"0\",\"0\",null)}}var r=e(\"ace/editor\").Editor;n.exports.init=function(e){r.prototype.showKeyboardShortcuts=function(){i(this)},e.commands.addCommands([{name:\"showKeyboardShortcuts\",bindKey:{win:\"Ctrl-Alt-h\",mac:\"Command-Alt-h\"},exec:function(e,t){e.showKeyboardShortcuts()}}])}});\n                (function() {\n                    ace.require([\"ace/ext/keybinding_menu\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict/ext-language_tools.js",
    "content": "ace.define(\"ace/snippets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/lib/lang\",\"ace/range\",\"ace/anchor\",\"ace/keyboard/hash_handler\",\"ace/tokenizer\",\"ace/lib/dom\",\"ace/editor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=e(\"./lib/lang\"),o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=e(\"./keyboard/hash_handler\").HashHandler,f=e(\"./tokenizer\").Tokenizer,l=o.comparePoints,c=function(){this.snippetMap={},this.snippetNameMap={}};(function(){r.implement(this,i),this.getTokenizer=function(){function e(e,t,n){return e=e.substr(1),/^\\d+$/.test(e)&&!n.inFormatString?[{tabstopId:parseInt(e,10)}]:[{text:e}]}function t(e){return\"(?:[^\\\\\\\\\"+e+\"]|\\\\\\\\.)\"}return c.$tokenizer=new f({start:[{regex:/:/,onMatch:function(e,t,n){return n.length&&n[0].expectIf?(n[0].expectIf=!1,n[0].elseBranch=n[0],[n[0]]):\":\"}},{regex:/\\\\./,onMatch:function(e,t,n){var r=e[1];return r==\"}\"&&n.length?e=r:\"`$\\\\\".indexOf(r)!=-1?e=r:n.inFormatString&&(r==\"n\"?e=\"\\n\":r==\"t\"?e=\"\\n\":\"ulULE\".indexOf(r)!=-1&&(e={changeCase:r,local:r>\"a\"})),[e]}},{regex:/}/,onMatch:function(e,t,n){return[n.length?n.shift():e]}},{regex:/\\$(?:\\d+|\\w+)/,onMatch:e},{regex:/\\$\\{[\\dA-Z_a-z]+/,onMatch:function(t,n,r){var i=e(t.substr(1),n,r);return r.unshift(i[0]),i},next:\"snippetVar\"},{regex:/\\n/,token:\"newline\",merge:!1}],snippetVar:[{regex:\"\\\\|\"+t(\"\\\\|\")+\"*\\\\|\",onMatch:function(e,t,n){n[0].choices=e.slice(1,-1).split(\",\")},next:\"start\"},{regex:\"/(\"+t(\"/\")+\"+)/(?:(\"+t(\"/\")+\"*)/)(\\\\w*):?\",onMatch:function(e,t,n){var r=n[0];return r.fmtString=e,e=this.splitRegex.exec(e),r.guard=e[1],r.fmt=e[2],r.flag=e[3],\"\"},next:\"start\"},{regex:\"`\"+t(\"`\")+\"*`\",onMatch:function(e,t,n){return n[0].code=e.splice(1,-1),\"\"},next:\"start\"},{regex:\"\\\\?\",onMatch:function(e,t,n){n[0]&&(n[0].expectIf=!0)},next:\"start\"},{regex:\"([^:}\\\\\\\\]|\\\\\\\\.)*:?\",token:\"\",next:\"start\"}],formatString:[{regex:\"/(\"+t(\"/\")+\"+)/\",token:\"regex\"},{regex:\"\",onMatch:function(e,t,n){n.inFormatString=!0},next:\"start\"}]}),c.prototype.getTokenizer=function(){return c.$tokenizer},c.$tokenizer},this.tokenizeTmSnippet=function(e,t){return this.getTokenizer().getLineTokens(e,t).tokens.map(function(e){return e.value||e})},this.$getDefaultValue=function(e,t){if(/^[A-Z]\\d+$/.test(t)){var n=t.substr(1);return(this.variables[t[0]+\"__\"]||{})[n]}if(/^\\d+$/.test(t))return(this.variables.__||{})[t];t=t.replace(/^TM_/,\"\");if(!e)return;var r=e.session;switch(t){case\"CURRENT_WORD\":var i=r.getWordRange();case\"SELECTION\":case\"SELECTED_TEXT\":return r.getTextRange(i);case\"CURRENT_LINE\":return r.getLine(e.getCursorPosition().row);case\"PREV_LINE\":return r.getLine(e.getCursorPosition().row-1);case\"LINE_INDEX\":return e.getCursorPosition().column;case\"LINE_NUMBER\":return e.getCursorPosition().row+1;case\"SOFT_TABS\":return r.getUseSoftTabs()?\"YES\":\"NO\";case\"TAB_SIZE\":return r.getTabSize();case\"FILENAME\":case\"FILEPATH\":return\"\";case\"FULLNAME\":return\"Ace\"}},this.variables={},this.getVariableValue=function(e,t){return this.variables.hasOwnProperty(t)?this.variables[t](e,t)||\"\":this.$getDefaultValue(e,t)||\"\"},this.tmStrFormat=function(e,t,n){var r=t.flag||\"\",i=t.guard;i=new RegExp(i,r.replace(/[^gi]/,\"\"));var s=this.tokenizeTmSnippet(t.fmt,\"formatString\"),o=this,u=e.replace(i,function(){o.variables.__=arguments;var e=o.resolveVariables(s,n),t=\"E\";for(var r=0;r<e.length;r++){var i=e[r];if(typeof i==\"object\"){e[r]=\"\";if(i.changeCase&&i.local){var u=e[r+1];u&&typeof u==\"string\"&&(i.changeCase==\"u\"?e[r]=u[0].toUpperCase():e[r]=u[0].toLowerCase(),e[r+1]=u.substr(1))}else i.changeCase&&(t=i.changeCase)}else t==\"U\"?e[r]=i.toUpperCase():t==\"L\"&&(e[r]=i.toLowerCase())}return e.join(\"\")});return this.variables.__=null,u},this.resolveVariables=function(e,t){function o(t){var n=e.indexOf(t,r+1);n!=-1&&(r=n)}var n=[];for(var r=0;r<e.length;r++){var i=e[r];if(typeof i==\"string\")n.push(i);else{if(typeof i!=\"object\")continue;if(i.skip)o(i);else{if(i.processed<r)continue;if(i.text){var s=this.getVariableValue(t,i.text);s&&i.fmtString&&(s=this.tmStrFormat(s,i)),i.processed=r,i.expectIf==null?s&&(n.push(s),o(i)):s?i.skip=i.elseBranch:o(i)}else i.tabstopId!=null?n.push(i):i.changeCase!=null&&n.push(i)}}}return n},this.insertSnippetForSelection=function(e,t){function f(e){var t=[];for(var n=0;n<e.length;n++){var r=e[n];if(typeof r==\"object\"){if(a[r.tabstopId])continue;var i=e.lastIndexOf(r,n-1);r=t[i]||{tabstopId:r.tabstopId}}t[n]=r}return t}var n=e.getCursorPosition(),r=e.session.getLine(n.row),i=e.session.getTabString(),s=r.match(/^\\s*/)[0];n.column<s.length&&(s=s.slice(0,n.column)),t=t.replace(/\\r/g,\"\");var o=this.tokenizeTmSnippet(t);o=this.resolveVariables(o,e),o=o.map(function(e){return e==\"\\n\"?e+s:typeof e==\"string\"?e.replace(/\\t/g,i):e});var u=[];o.forEach(function(e,t){if(typeof e!=\"object\")return;var n=e.tabstopId,r=u[n];r||(r=u[n]=[],r.index=n,r.value=\"\");if(r.indexOf(e)!==-1)return;r.push(e);var i=o.indexOf(e,t+1);if(i===-1)return;var s=o.slice(t+1,i),a=s.some(function(e){return typeof e==\"object\"});a&&!r.value?r.value=s:s.length&&(!r.value||typeof r.value!=\"string\")&&(r.value=s.join(\"\"))}),u.forEach(function(e){e.length=0});var a={};for(var l=0;l<o.length;l++){var c=o[l];if(typeof c!=\"object\")continue;var p=c.tabstopId,d=o.indexOf(c,l+1);if(a[p]){a[p]===c&&(a[p]=null);continue}var v=u[p],m=typeof v.value==\"string\"?[v.value]:f(v.value);m.unshift(l+1,Math.max(0,d-l)),m.push(c),a[p]=c,o.splice.apply(o,m),v.indexOf(c)===-1&&v.push(c)}var g=0,y=0,b=\"\";o.forEach(function(e){if(typeof e==\"string\"){var t=e.split(\"\\n\");t.length>1?(y=t[t.length-1].length,g+=t.length-1):y+=e.length,b+=e}else e.start?e.end={row:g,column:y}:e.start={row:g,column:y}});var w=e.getSelectionRange(),E=e.session.replace(w,b),S=new h(e),x=e.inVirtualSelectionMode&&e.selection.index;S.addTabstops(u,w.start,E,x)},this.insertSnippet=function(e,t){var n=this;if(e.inVirtualSelectionMode)return n.insertSnippetForSelection(e,t);e.forEachSelection(function(){n.insertSnippetForSelection(e,t)},null,{keepOrder:!0}),e.tabstopManager&&e.tabstopManager.tabNext()},this.$getScope=function(e){var t=e.session.$mode.$id||\"\";t=t.split(\"/\").pop();if(t===\"html\"||t===\"php\"){t===\"php\"&&!e.session.$mode.inlinePhp&&(t=\"html\");var n=e.getCursorPosition(),r=e.session.getState(n.row);typeof r==\"object\"&&(r=r[0]),r.substring&&(r.substring(0,3)==\"js-\"?t=\"javascript\":r.substring(0,4)==\"css-\"?t=\"css\":r.substring(0,4)==\"php-\"&&(t=\"php\"))}return t},this.getActiveScopes=function(e){var t=this.$getScope(e),n=[t],r=this.snippetMap;return r[t]&&r[t].includeScopes&&n.push.apply(n,r[t].includeScopes),n.push(\"_\"),n},this.expandWithTab=function(e,t){var n=this,r=e.forEachSelection(function(){return n.expandSnippetForSelection(e,t)},null,{keepOrder:!0});return r&&e.tabstopManager&&e.tabstopManager.tabNext(),r},this.expandSnippetForSelection=function(e,t){var n=e.getCursorPosition(),r=e.session.getLine(n.row),i=r.substring(0,n.column),s=r.substr(n.column),o=this.snippetMap,u;return this.getActiveScopes(e).some(function(e){var t=o[e];return t&&(u=this.findMatchingSnippet(t,i,s)),!!u},this),u?t&&t.dryRun?!0:(e.session.doc.removeInLine(n.row,n.column-u.replaceBefore.length,n.column+u.replaceAfter.length),this.variables.M__=u.matchBefore,this.variables.T__=u.matchAfter,this.insertSnippetForSelection(e,u.content),this.variables.M__=this.variables.T__=null,!0):!1},this.findMatchingSnippet=function(e,t,n){for(var r=e.length;r--;){var i=e[r];if(i.startRe&&!i.startRe.test(t))continue;if(i.endRe&&!i.endRe.test(n))continue;if(!i.startRe&&!i.endRe)continue;return i.matchBefore=i.startRe?i.startRe.exec(t):[\"\"],i.matchAfter=i.endRe?i.endRe.exec(n):[\"\"],i.replaceBefore=i.triggerRe?i.triggerRe.exec(t)[0]:\"\",i.replaceAfter=i.endTriggerRe?i.endTriggerRe.exec(n)[0]:\"\",i}},this.snippetMap={},this.snippetNameMap={},this.register=function(e,t){function o(e){return e&&!/^\\^?\\(.*\\)\\$?$|^\\\\b$/.test(e)&&(e=\"(?:\"+e+\")\"),e||\"\"}function u(e,t,n){return e=o(e),t=o(t),n?(e=t+e,e&&e[e.length-1]!=\"$\"&&(e+=\"$\")):(e+=t,e&&e[0]!=\"^\"&&(e=\"^\"+e)),new RegExp(e)}function a(e){e.scope||(e.scope=t||\"_\"),t=e.scope,n[t]||(n[t]=[],r[t]={});var o=r[t];if(e.name){var a=o[e.name];a&&i.unregister(a),o[e.name]=e}n[t].push(e),e.tabTrigger&&!e.trigger&&(!e.guard&&/^\\w/.test(e.tabTrigger)&&(e.guard=\"\\\\b\"),e.trigger=s.escapeRegExp(e.tabTrigger));if(!e.trigger&&!e.guard&&!e.endTrigger&&!e.endGuard)return;e.startRe=u(e.trigger,e.guard,!0),e.triggerRe=new RegExp(e.trigger,\"\",!0),e.endRe=u(e.endTrigger,e.endGuard,!0),e.endTriggerRe=new RegExp(e.endTrigger,\"\",!0)}var n=this.snippetMap,r=this.snippetNameMap,i=this;e||(e=[]),e&&e.content?a(e):Array.isArray(e)&&e.forEach(a),this._signal(\"registerSnippets\",{scope:t})},this.unregister=function(e,t){function i(e){var i=r[e.scope||t];if(i&&i[e.name]){delete i[e.name];var s=n[e.scope||t],o=s&&s.indexOf(e);o>=0&&s.splice(o,1)}}var n=this.snippetMap,r=this.snippetNameMap;e.content?i(e):Array.isArray(e)&&e.forEach(i)},this.parseSnippetFile=function(e){e=e.replace(/\\r/g,\"\");var t=[],n={},r=/^#.*|^({[\\s\\S]*})\\s*$|^(\\S+) (.*)$|^((?:\\n*\\t.*)+)/gm,i;while(i=r.exec(e)){if(i[1])try{n=JSON.parse(i[1]),t.push(n)}catch(s){}if(i[4])n.content=i[4].replace(/^\\t/gm,\"\"),t.push(n),n={};else{var o=i[2],u=i[3];if(o==\"regex\"){var a=/\\/((?:[^\\/\\\\]|\\\\.)*)|$/g;n.guard=a.exec(u)[1],n.trigger=a.exec(u)[1],n.endTrigger=a.exec(u)[1],n.endGuard=a.exec(u)[1]}else o==\"snippet\"?(n.tabTrigger=u.match(/^\\S*/)[0],n.name||(n.name=u)):n[o]=u}}return t},this.getSnippetByName=function(e,t){var n=this.snippetNameMap,r;return this.getActiveScopes(t).some(function(t){var i=n[t];return i&&(r=i[e]),!!r},this),r}}).call(c.prototype);var h=function(e){if(e.tabstopManager)return e.tabstopManager;e.tabstopManager=this,this.$onChange=this.onChange.bind(this),this.$onChangeSelection=s.delayedCall(this.onChangeSelection.bind(this)).schedule,this.$onChangeSession=this.onChangeSession.bind(this),this.$onAfterExec=this.onAfterExec.bind(this),this.attach(e)};(function(){this.attach=function(e){this.index=0,this.ranges=[],this.tabstops=[],this.$openTabstops=null,this.selectedTabstop=null,this.editor=e,this.editor.on(\"change\",this.$onChange),this.editor.on(\"changeSelection\",this.$onChangeSelection),this.editor.on(\"changeSession\",this.$onChangeSession),this.editor.commands.on(\"afterExec\",this.$onAfterExec),this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},this.detach=function(){this.tabstops.forEach(this.removeTabstopMarkers,this),this.ranges=null,this.tabstops=null,this.selectedTabstop=null,this.editor.removeListener(\"change\",this.$onChange),this.editor.removeListener(\"changeSelection\",this.$onChangeSelection),this.editor.removeListener(\"changeSession\",this.$onChangeSession),this.editor.commands.removeListener(\"afterExec\",this.$onAfterExec),this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.tabstopManager=null,this.editor=null},this.onChange=function(e){var t=e,n=e.action[0]==\"r\",r=e.start,i=e.end,s=r.row,o=i.row,u=o-s,a=i.column-r.column;n&&(u=-u,a=-a);if(!this.$inChange&&n){var f=this.selectedTabstop,c=f&&!f.some(function(e){return l(e.start,r)<=0&&l(e.end,i)>=0});if(c)return this.detach()}var h=this.ranges;for(var p=0;p<h.length;p++){var d=h[p];if(d.end.row<r.row)continue;if(n&&l(r,d.start)<0&&l(i,d.end)>0){this.removeRange(d),p--;continue}d.start.row==s&&d.start.column>r.column&&(d.start.column+=a),d.end.row==s&&d.end.column>=r.column&&(d.end.column+=a),d.start.row>=s&&(d.start.row+=u),d.end.row>=s&&(d.end.row+=u),l(d.start,d.end)>0&&this.removeRange(d)}h.length||this.detach()},this.updateLinkedFields=function(){var e=this.selectedTabstop;if(!e||!e.hasLinkedRanges)return;this.$inChange=!0;var n=this.editor.session,r=n.getTextRange(e.firstNonLinked);for(var i=e.length;i--;){var s=e[i];if(!s.linked)continue;var o=t.snippetManager.tmStrFormat(r,s.original);n.replace(s,o)}this.$inChange=!1},this.onAfterExec=function(e){e.command&&!e.command.readOnly&&this.updateLinkedFields()},this.onChangeSelection=function(){if(!this.editor)return;var e=this.editor.selection.lead,t=this.editor.selection.anchor,n=this.editor.selection.isEmpty();for(var r=this.ranges.length;r--;){if(this.ranges[r].linked)continue;var i=this.ranges[r].contains(e.row,e.column),s=n||this.ranges[r].contains(t.row,t.column);if(i&&s)return}this.detach()},this.onChangeSession=function(){this.detach()},this.tabNext=function(e){var t=this.tabstops.length,n=this.index+(e||1);n=Math.min(Math.max(n,1),t),n==t&&(n=0),this.selectTabstop(n),n===0&&this.detach()},this.selectTabstop=function(e){this.$openTabstops=null;var t=this.tabstops[this.index];t&&this.addTabstopMarkers(t),this.index=e,t=this.tabstops[this.index];if(!t||!t.length)return;this.selectedTabstop=t;if(!this.editor.inVirtualSelectionMode){var n=this.editor.multiSelect;n.toSingleRange(t.firstNonLinked.clone());for(var r=t.length;r--;){if(t.hasLinkedRanges&&t[r].linked)continue;n.addRange(t[r].clone(),!0)}n.ranges[0]&&n.addRange(n.ranges[0].clone())}else this.editor.selection.setRange(t.firstNonLinked);this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},this.addTabstops=function(e,t,n){this.$openTabstops||(this.$openTabstops=[]);if(!e[0]){var r=o.fromPoints(n,n);v(r.start,t),v(r.end,t),e[0]=[r],e[0].index=0}var i=this.index,s=[i+1,0],u=this.ranges;e.forEach(function(e,n){var r=this.$openTabstops[n]||e;for(var i=e.length;i--;){var a=e[i],f=o.fromPoints(a.start,a.end||a.start);d(f.start,t),d(f.end,t),f.original=a,f.tabstop=r,u.push(f),r!=e?r.unshift(f):r[i]=f,a.fmtString?(f.linked=!0,r.hasLinkedRanges=!0):r.firstNonLinked||(r.firstNonLinked=f)}r.firstNonLinked||(r.hasLinkedRanges=!1),r===e&&(s.push(r),this.$openTabstops[n]=r),this.addTabstopMarkers(r)},this),s.length>2&&(this.tabstops.length&&s.push(s.splice(2,1)[0]),this.tabstops.splice.apply(this.tabstops,s))},this.addTabstopMarkers=function(e){var t=this.editor.session;e.forEach(function(e){e.markerId||(e.markerId=t.addMarker(e,\"ace_snippet-marker\",\"text\"))})},this.removeTabstopMarkers=function(e){var t=this.editor.session;e.forEach(function(e){t.removeMarker(e.markerId),e.markerId=null})},this.removeRange=function(e){var t=e.tabstop.indexOf(e);e.tabstop.splice(t,1),t=this.ranges.indexOf(e),this.ranges.splice(t,1),this.editor.session.removeMarker(e.markerId),e.tabstop.length||(t=this.tabstops.indexOf(e.tabstop),t!=-1&&this.tabstops.splice(t,1),this.tabstops.length||this.detach())},this.keyboardHandler=new a,this.keyboardHandler.bindKeys({Tab:function(e){if(t.snippetManager&&t.snippetManager.expandWithTab(e))return;e.tabstopManager.tabNext(1)},\"Shift-Tab\":function(e){e.tabstopManager.tabNext(-1)},Esc:function(e){e.tabstopManager.detach()},Return:function(e){return!1}})}).call(h.prototype);var p={};p.onChange=u.prototype.onChange,p.setPosition=function(e,t){this.pos.row=e,this.pos.column=t},p.update=function(e,t,n){this.$insertRight=n,this.pos=e,this.onChange(t)};var d=function(e,t){e.row==0&&(e.column+=t.column),e.row+=t.row},v=function(e,t){e.row==t.row&&(e.column-=t.column),e.row-=t.row};e(\"./lib/dom\").importCssString(\".ace_snippet-marker {    -moz-box-sizing: border-box;    box-sizing: border-box;    background: rgba(194, 193, 208, 0.09);    border: 1px dotted rgba(211, 208, 235, 0.62);    position: absolute;}\"),t.snippetManager=new c;var m=e(\"./editor\").Editor;(function(){this.insertSnippet=function(e,n){return t.snippetManager.insertSnippet(this,e,n)},this.expandSnippet=function(e){return t.snippetManager.expandWithTab(this,e)}}).call(m.prototype)}),ace.define(\"ace/autocomplete/popup\",[\"require\",\"exports\",\"module\",\"ace/virtual_renderer\",\"ace/editor\",\"ace/range\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";var r=e(\"../virtual_renderer\").VirtualRenderer,i=e(\"../editor\").Editor,s=e(\"../range\").Range,o=e(\"../lib/event\"),u=e(\"../lib/lang\"),a=e(\"../lib/dom\"),f=function(e){var t=new r(e);t.$maxLines=4;var n=new i(t);return n.setHighlightActiveLine(!1),n.setShowPrintMargin(!1),n.renderer.setShowGutter(!1),n.renderer.setHighlightGutterLine(!1),n.$mouseHandler.$focusWaitTimout=0,n.$highlightTagPending=!0,n},l=function(e){var t=a.createElement(\"div\"),n=new f(t);e&&e.appendChild(t),t.style.display=\"none\",n.renderer.content.style.cursor=\"default\",n.renderer.setStyle(\"ace_autocomplete\"),n.setOption(\"displayIndentGuides\",!1),n.setOption(\"dragDelay\",150);var r=function(){};n.focus=r,n.$isFocused=!0,n.renderer.$cursorLayer.restartTimer=r,n.renderer.$cursorLayer.element.style.opacity=0,n.renderer.$maxLines=8,n.renderer.$keepTextAreaAtCursor=!1,n.setHighlightActiveLine(!1),n.session.highlight(\"\"),n.session.$searchHighlight.clazz=\"ace_highlight-marker\",n.on(\"mousedown\",function(e){var t=e.getDocumentPosition();n.selection.moveToPosition(t),c.start.row=c.end.row=t.row,e.stop()});var i,l=new s(-1,0,-1,Infinity),c=new s(-1,0,-1,Infinity);c.id=n.session.addMarker(c,\"ace_active-line\",\"fullLine\"),n.setSelectOnHover=function(e){e?l.id&&(n.session.removeMarker(l.id),l.id=null):l.id=n.session.addMarker(l,\"ace_line-hover\",\"fullLine\")},n.setSelectOnHover(!1),n.on(\"mousemove\",function(e){if(!i){i=e;return}if(i.x==e.x&&i.y==e.y)return;i=e,i.scrollTop=n.renderer.scrollTop;var t=i.getDocumentPosition().row;l.start.row!=t&&(l.id||n.setRow(t),p(t))}),n.renderer.on(\"beforeRender\",function(){if(i&&l.start.row!=-1){i.$pos=null;var e=i.getDocumentPosition().row;l.id||n.setRow(e),p(e,!0)}}),n.renderer.on(\"afterRender\",function(){var e=n.getRow(),t=n.renderer.$textLayer,r=t.element.childNodes[e-t.config.firstRow];if(r==t.selectedNode)return;t.selectedNode&&a.removeCssClass(t.selectedNode,\"ace_selected\"),t.selectedNode=r,r&&a.addCssClass(r,\"ace_selected\")});var h=function(){p(-1)},p=function(e,t){e!==l.start.row&&(l.start.row=l.end.row=e,t||n.session._emit(\"changeBackMarker\"),n._emit(\"changeHoverMarker\"))};n.getHoveredRow=function(){return l.start.row},o.addListener(n.container,\"mouseout\",h),n.on(\"hide\",h),n.on(\"changeSelection\",h),n.session.doc.getLength=function(){return n.data.length},n.session.doc.getLine=function(e){var t=n.data[e];return typeof t==\"string\"?t:t&&t.value||\"\"};var d=n.session.bgTokenizer;return d.$tokenizeRow=function(e){var t=n.data[e],r=[];if(!t)return r;typeof t==\"string\"&&(t={value:t}),t.caption||(t.caption=t.value||t.name);var i=-1,s,o;for(var u=0;u<t.caption.length;u++)o=t.caption[u],s=t.matchMask&1<<u?1:0,i!==s?(r.push({type:t.className||\"\"+(s?\"completion-highlight\":\"\"),value:o}),i=s):r[r.length-1].value+=o;if(t.meta){var a=n.renderer.$size.scrollerWidth/n.renderer.layerConfig.characterWidth,f=t.meta;f.length+t.caption.length>a-2&&(f=f.substr(0,a-t.caption.length-3)+\"\\u2026\"),r.push({type:\"rightAlignedText\",value:f})}return r},d.$updateOnChange=r,d.start=r,n.session.$computeWidth=function(){return this.screenWidth=0},n.$blockScrolling=Infinity,n.isOpen=!1,n.isTopdown=!1,n.data=[],n.setData=function(e){n.setValue(u.stringRepeat(\"\\n\",e.length),-1),n.data=e||[],n.setRow(0)},n.getData=function(e){return n.data[e]},n.getRow=function(){return c.start.row},n.setRow=function(e){e=Math.max(0,Math.min(this.data.length,e)),c.start.row!=e&&(n.selection.clearSelection(),c.start.row=c.end.row=e||0,n.session._emit(\"changeBackMarker\"),n.moveCursorTo(e||0,0),n.isOpen&&n._signal(\"select\"))},n.on(\"changeSelection\",function(){n.isOpen&&n.setRow(n.selection.lead.row),n.renderer.scrollCursorIntoView()}),n.hide=function(){this.container.style.display=\"none\",this._signal(\"hide\"),n.isOpen=!1},n.show=function(e,t,r){var s=this.container,o=window.innerHeight,u=window.innerWidth,a=this.renderer,f=a.$maxLines*t*1.4,l=e.top+this.$borderSize,c=l>o/2&&!r;c&&l+t+f>o?(a.$maxPixelHeight=l-2*this.$borderSize,s.style.top=\"\",s.style.bottom=o-l+\"px\",n.isTopdown=!1):(l+=t,a.$maxPixelHeight=o-l-.2*t,s.style.top=l+\"px\",s.style.bottom=\"\",n.isTopdown=!0),s.style.display=\"\",this.renderer.$textLayer.checkForSizeChanges();var h=e.left;h+s.offsetWidth>u&&(h=u-s.offsetWidth),s.style.left=h+\"px\",this._signal(\"show\"),i=null,n.isOpen=!0},n.getTextLeftOffset=function(){return this.$borderSize+this.renderer.$padding+this.$imageSize},n.$imageSize=0,n.$borderSize=1,n};a.importCssString(\".ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {    background-color: #CAD6FA;    z-index: 1;}.ace_editor.ace_autocomplete .ace_line-hover {    border: 1px solid #abbffe;    margin-top: -1px;    background: rgba(233,233,253,0.4);}.ace_editor.ace_autocomplete .ace_line-hover {    position: absolute;    z-index: 2;}.ace_editor.ace_autocomplete .ace_scroller {   background: none;   border: none;   box-shadow: none;}.ace_rightAlignedText {    color: gray;    display: inline-block;    position: absolute;    right: 4px;    text-align: right;    z-index: -1;}.ace_editor.ace_autocomplete .ace_completion-highlight{    color: #000;    text-shadow: 0 0 0.01em;}.ace_editor.ace_autocomplete {    width: 280px;    z-index: 200000;    background: #fbfbfb;    color: #444;    border: 1px lightgray solid;    position: fixed;    box-shadow: 2px 3px 5px rgba(0,0,0,.2);    line-height: 1.4;}\"),t.AcePopup=l}),ace.define(\"ace/autocomplete/util\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.parForEach=function(e,t,n){var r=0,i=e.length;i===0&&n();for(var s=0;s<i;s++)t(e[s],function(e,t){r++,r===i&&n(e,t)})};var r=/[a-zA-Z_0-9\\$\\-\\u00A2-\\uFFFF]/;t.retrievePrecedingIdentifier=function(e,t,n){n=n||r;var i=[];for(var s=t-1;s>=0;s--){if(!n.test(e[s]))break;i.push(e[s])}return i.reverse().join(\"\")},t.retrieveFollowingIdentifier=function(e,t,n){n=n||r;var i=[];for(var s=t;s<e.length;s++){if(!n.test(e[s]))break;i.push(e[s])}return i},t.getCompletionPrefix=function(e){var t=e.getCursorPosition(),n=e.session.getLine(t.row),r;return e.completers.forEach(function(e){e.identifierRegexps&&e.identifierRegexps.forEach(function(e){!r&&e&&(r=this.retrievePrecedingIdentifier(n,t.column,e))}.bind(this))}.bind(this)),r||this.retrievePrecedingIdentifier(n,t.column)}}),ace.define(\"ace/autocomplete\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\",\"ace/autocomplete/popup\",\"ace/autocomplete/util\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/lib/dom\",\"ace/snippets\"],function(e,t,n){\"use strict\";var r=e(\"./keyboard/hash_handler\").HashHandler,i=e(\"./autocomplete/popup\").AcePopup,s=e(\"./autocomplete/util\"),o=e(\"./lib/event\"),u=e(\"./lib/lang\"),a=e(\"./lib/dom\"),f=e(\"./snippets\").snippetManager,l=function(){this.autoInsert=!1,this.autoSelect=!0,this.exactMatch=!1,this.gatherCompletionsId=0,this.keyboardHandler=new r,this.keyboardHandler.bindKeys(this.commands),this.blurListener=this.blurListener.bind(this),this.changeListener=this.changeListener.bind(this),this.mousedownListener=this.mousedownListener.bind(this),this.mousewheelListener=this.mousewheelListener.bind(this),this.changeTimer=u.delayedCall(function(){this.updateCompletions(!0)}.bind(this)),this.tooltipTimer=u.delayedCall(this.updateDocTooltip.bind(this),50)};(function(){this.$init=function(){return this.popup=new i(document.body||document.documentElement),this.popup.on(\"click\",function(e){this.insertMatch(),e.stop()}.bind(this)),this.popup.focus=this.editor.focus.bind(this.editor),this.popup.on(\"show\",this.tooltipTimer.bind(null,null)),this.popup.on(\"select\",this.tooltipTimer.bind(null,null)),this.popup.on(\"changeHoverMarker\",this.tooltipTimer.bind(null,null)),this.popup},this.getPopup=function(){return this.popup||this.$init()},this.openPopup=function(e,t,n){this.popup||this.$init(),this.popup.setData(this.completions.filtered),e.keyBinding.addKeyboardHandler(this.keyboardHandler);var r=e.renderer;this.popup.setRow(this.autoSelect?0:-1);if(!n){this.popup.setTheme(e.getTheme()),this.popup.setFontSize(e.getFontSize());var i=r.layerConfig.lineHeight,s=r.$cursorLayer.getPixelPosition(this.base,!0);s.left-=this.popup.getTextLeftOffset();var o=e.container.getBoundingClientRect();s.top+=o.top-r.layerConfig.offset,s.left+=o.left-e.renderer.scrollLeft,s.left+=r.gutterWidth,this.popup.show(s,i)}else n&&!t&&this.detach()},this.detach=function(){this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.off(\"changeSelection\",this.changeListener),this.editor.off(\"blur\",this.blurListener),this.editor.off(\"mousedown\",this.mousedownListener),this.editor.off(\"mousewheel\",this.mousewheelListener),this.changeTimer.cancel(),this.hideDocTooltip(),this.gatherCompletionsId+=1,this.popup&&this.popup.isOpen&&this.popup.hide(),this.base&&this.base.detach(),this.activated=!1,this.completions=this.base=null},this.changeListener=function(e){var t=this.editor.selection.lead;(t.row!=this.base.row||t.column<this.base.column)&&this.detach(),this.activated?this.changeTimer.schedule():this.detach()},this.blurListener=function(e){e.relatedTarget&&e.relatedTarget.nodeName==\"A\"&&e.relatedTarget.href&&window.open(e.relatedTarget.href,\"_blank\");var t=document.activeElement,n=this.editor.textInput.getElement(),r=e.relatedTarget&&e.relatedTarget==this.tooltipNode,i=this.popup&&this.popup.container;t!=n&&t.parentNode!=i&&!r&&t!=this.tooltipNode&&e.relatedTarget!=n&&this.detach()},this.mousedownListener=function(e){this.detach()},this.mousewheelListener=function(e){this.detach()},this.goTo=function(e){var t=this.popup.getRow(),n=this.popup.session.getLength()-1;switch(e){case\"up\":t=t<=0?n:t-1;break;case\"down\":t=t>=n?-1:t+1;break;case\"start\":t=0;break;case\"end\":t=n}this.popup.setRow(t)},this.insertMatch=function(e,t){e||(e=this.popup.getData(this.popup.getRow()));if(!e)return!1;if(e.completer&&e.completer.insertMatch)e.completer.insertMatch(this.editor,e);else{if(this.completions.filterText){var n=this.editor.selection.getAllRanges();for(var r=0,i;i=n[r];r++)i.start.column-=this.completions.filterText.length,this.editor.session.remove(i)}e.snippet?f.insertSnippet(this.editor,e.snippet):this.editor.execCommand(\"insertstring\",e.value||e)}this.detach()},this.commands={Up:function(e){e.completer.goTo(\"up\")},Down:function(e){e.completer.goTo(\"down\")},\"Ctrl-Up|Ctrl-Home\":function(e){e.completer.goTo(\"start\")},\"Ctrl-Down|Ctrl-End\":function(e){e.completer.goTo(\"end\")},Esc:function(e){e.completer.detach()},Return:function(e){return e.completer.insertMatch()},\"Shift-Return\":function(e){e.completer.insertMatch(null,{deleteSuffix:!0})},Tab:function(e){var t=e.completer.insertMatch();if(!!t||!!e.tabstopManager)return t;e.completer.goTo(\"down\")},PageUp:function(e){e.completer.popup.gotoPageUp()},PageDown:function(e){e.completer.popup.gotoPageDown()}},this.gatherCompletions=function(e,t){var n=e.getSession(),r=e.getCursorPosition(),i=n.getLine(r.row),o=s.getCompletionPrefix(e);this.base=n.doc.createAnchor(r.row,r.column-o.length),this.base.$insertRight=!0;var u=[],a=e.completers.length;return e.completers.forEach(function(i,s){i.getCompletions(e,n,r,o,function(r,i){!r&&i&&(u=u.concat(i));var s=e.getCursorPosition(),f=n.getLine(s.row);t(null,{prefix:o,matches:u,finished:--a===0})})}),!0},this.showPopup=function(e){this.editor&&this.detach(),this.activated=!0,this.editor=e,e.completer!=this&&(e.completer&&e.completer.detach(),e.completer=this),e.on(\"changeSelection\",this.changeListener),e.on(\"blur\",this.blurListener),e.on(\"mousedown\",this.mousedownListener),e.on(\"mousewheel\",this.mousewheelListener),this.updateCompletions()},this.updateCompletions=function(e){if(e&&this.base&&this.completions){var t=this.editor.getCursorPosition(),n=this.editor.session.getTextRange({start:this.base,end:t});if(n==this.completions.filterText)return;this.completions.setFilter(n);if(!this.completions.filtered.length)return this.detach();if(this.completions.filtered.length==1&&this.completions.filtered[0].value==n&&!this.completions.filtered[0].snippet)return this.detach();this.openPopup(this.editor,n,e);return}var r=this.gatherCompletionsId;this.gatherCompletions(this.editor,function(t,n){var i=function(){if(!n.finished)return;return this.detach()}.bind(this),s=n.prefix,o=n&&n.matches;if(!o||!o.length)return i();if(s.indexOf(n.prefix)!==0||r!=this.gatherCompletionsId)return;this.completions=new c(o),this.exactMatch&&(this.completions.exactMatch=!0),this.completions.setFilter(s);var u=this.completions.filtered;if(!u.length)return i();if(u.length==1&&u[0].value==s&&!u[0].snippet)return i();if(this.autoInsert&&u.length==1&&n.finished)return this.insertMatch(u[0]);this.openPopup(this.editor,s,e)}.bind(this))},this.cancelContextMenu=function(){this.editor.$mouseHandler.cancelContextMenu()},this.updateDocTooltip=function(){var e=this.popup,t=e.data,n=t&&(t[e.getHoveredRow()]||t[e.getRow()]),r=null;if(!n||!this.editor||!this.popup.isOpen)return this.hideDocTooltip();this.editor.completers.some(function(e){return e.getDocTooltip&&(r=e.getDocTooltip(n)),r}),r||(r=n),typeof r==\"string\"&&(r={docText:r});if(!r||!r.docHTML&&!r.docText)return this.hideDocTooltip();this.showDocTooltip(r)},this.showDocTooltip=function(e){this.tooltipNode||(this.tooltipNode=a.createElement(\"div\"),this.tooltipNode.className=\"ace_tooltip ace_doc-tooltip\",this.tooltipNode.style.margin=0,this.tooltipNode.style.pointerEvents=\"auto\",this.tooltipNode.tabIndex=-1,this.tooltipNode.onblur=this.blurListener.bind(this));var t=this.tooltipNode;e.docHTML?t.innerHTML=e.docHTML:e.docText&&(t.textContent=e.docText),t.parentNode||document.body.appendChild(t);var n=this.popup,r=n.container.getBoundingClientRect();t.style.top=n.container.style.top,t.style.bottom=n.container.style.bottom,window.innerWidth-r.right<320?(t.style.right=window.innerWidth-r.left+\"px\",t.style.left=\"\"):(t.style.left=r.right+1+\"px\",t.style.right=\"\"),t.style.display=\"block\"},this.hideDocTooltip=function(){this.tooltipTimer.cancel();if(!this.tooltipNode)return;var e=this.tooltipNode;!this.editor.isFocused()&&document.activeElement==e&&this.editor.focus(),this.tooltipNode=null,e.parentNode&&e.parentNode.removeChild(e)}}).call(l.prototype),l.startCommand={name:\"startAutocomplete\",exec:function(e){e.completer||(e.completer=new l),e.completer.autoInsert=!1,e.completer.autoSelect=!0,e.completer.showPopup(e),e.completer.cancelContextMenu()},bindKey:\"Ctrl-Space|Ctrl-Shift-Space|Alt-Space\"};var c=function(e,t){this.all=e,this.filtered=e,this.filterText=t||\"\",this.exactMatch=!1};(function(){this.setFilter=function(e){if(e.length>this.filterText&&e.lastIndexOf(this.filterText,0)===0)var t=this.filtered;else var t=this.all;this.filterText=e,t=this.filterCompletions(t,this.filterText),t=t.sort(function(e,t){return t.exactMatch-e.exactMatch||t.score-e.score});var n=null;t=t.filter(function(e){var t=e.snippet||e.caption||e.value;return t===n?!1:(n=t,!0)}),this.filtered=t},this.filterCompletions=function(e,t){var n=[],r=t.toUpperCase(),i=t.toLowerCase();e:for(var s=0,o;o=e[s];s++){var u=o.value||o.caption||o.snippet;if(!u)continue;var a=-1,f=0,l=0,c,h;if(this.exactMatch){if(t!==u.substr(0,t.length))continue e}else for(var p=0;p<t.length;p++){var d=u.indexOf(i[p],a+1),v=u.indexOf(r[p],a+1);c=d>=0?v<0||d<v?d:v:v;if(c<0)continue e;h=c-a-1,h>0&&(a===-1&&(l+=10),l+=h),f|=1<<c,a=c}o.matchMask=f,o.exactMatch=l?0:1,o.score=(o.score||0)-l,n.push(o)}return n}}).call(c.prototype),t.Autocomplete=l,t.FilteredList=c}),ace.define(\"ace/autocomplete/text_completer\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){function s(e,t){var n=e.getTextRange(r.fromPoints({row:0,column:0},t));return n.split(i).length-1}function o(e,t){var n=s(e,t),r=e.getValue().split(i),o=Object.create(null),u=r[n];return r.forEach(function(e,t){if(!e||e===u)return;var i=Math.abs(n-t),s=r.length-i;o[e]?o[e]=Math.max(s,o[e]):o[e]=s}),o}var r=e(\"../range\").Range,i=/[^a-zA-Z_0-9\\$\\-\\u00C0-\\u1FFF\\u2C00-\\uD7FF\\w]+/;t.getCompletions=function(e,t,n,r,i){var s=o(t,n,r),u=Object.keys(s);i(null,u.map(function(e){return{caption:e,value:e,score:s[e],meta:\"local\"}}))}}),ace.define(\"ace/ext/language_tools\",[\"require\",\"exports\",\"module\",\"ace/snippets\",\"ace/autocomplete\",\"ace/config\",\"ace/lib/lang\",\"ace/autocomplete/util\",\"ace/autocomplete/text_completer\",\"ace/editor\",\"ace/config\"],function(e,t,n){\"use strict\";var r=e(\"../snippets\").snippetManager,i=e(\"../autocomplete\").Autocomplete,s=e(\"../config\"),o=e(\"../lib/lang\"),u=e(\"../autocomplete/util\"),a=e(\"../autocomplete/text_completer\"),f={getCompletions:function(e,t,n,r,i){if(t.$mode.completer)return t.$mode.completer.getCompletions(e,t,n,r,i);var s=e.session.getState(n.row),o=t.$mode.getCompletions(s,t,n,r);i(null,o)}},l={getCompletions:function(e,t,n,i,s){var o=r.snippetMap,u=[];r.getActiveScopes(e).forEach(function(e){var t=o[e]||[];for(var n=t.length;n--;){var r=t[n],i=r.name||r.tabTrigger;if(!i)continue;u.push({caption:i,snippet:r.content,meta:r.tabTrigger&&!r.name?r.tabTrigger+\"\\u21e5 \":\"snippet\",type:\"snippet\"})}},this),s(null,u)},getDocTooltip:function(e){e.type==\"snippet\"&&!e.docHTML&&(e.docHTML=[\"<b>\",o.escapeHTML(e.caption),\"</b>\",\"<hr></hr>\",o.escapeHTML(e.snippet)].join(\"\"))}},c=[l,a,f];t.setCompleters=function(e){c.length=0,e&&c.push.apply(c,e)},t.addCompleter=function(e){c.push(e)},t.textCompleter=a,t.keyWordCompleter=f,t.snippetCompleter=l;var h={name:\"expandSnippet\",exec:function(e){return r.expandWithTab(e)},bindKey:\"Tab\"},p=function(e,t){d(t.session.$mode)},d=function(e){var t=e.$id;r.files||(r.files={}),v(t),e.modes&&e.modes.forEach(d)},v=function(e){if(!e||r.files[e])return;var t=e.replace(\"mode\",\"snippets\");r.files[e]={},s.loadModule(t,function(t){t&&(r.files[e]=t,!t.snippets&&t.snippetText&&(t.snippets=r.parseSnippetFile(t.snippetText)),r.register(t.snippets||[],t.scope),t.includeScopes&&(r.snippetMap[t.scope].includeScopes=t.includeScopes,t.includeScopes.forEach(function(e){v(\"ace/mode/\"+e)})))})},m=function(e){var t=e.editor,n=t.completer&&t.completer.activated;if(e.command.name===\"backspace\")n&&!u.getCompletionPrefix(t)&&t.completer.detach();else if(e.command.name===\"insertstring\"){var r=u.getCompletionPrefix(t);r&&!n&&(t.completer||(t.completer=new i),t.completer.autoInsert=!1,t.completer.showPopup(t))}},g=e(\"../editor\").Editor;e(\"../config\").defineOptions(g.prototype,\"editor\",{enableBasicAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:c),this.commands.addCommand(i.startCommand)):this.commands.removeCommand(i.startCommand)},value:!1},enableLiveAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:c),this.commands.on(\"afterExec\",m)):this.commands.removeListener(\"afterExec\",m)},value:!1},enableSnippets:{set:function(e){e?(this.commands.addCommand(h),this.on(\"changeMode\",p),p(null,this)):(this.commands.removeCommand(h),this.off(\"changeMode\",p))},value:!1}})});\n                (function() {\n                    ace.require([\"ace/ext/language_tools\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict/ext-linking.js",
    "content": "ace.define(\"ace/ext/linking\",[\"require\",\"exports\",\"module\",\"ace/editor\",\"ace/config\"],function(e,t,n){function i(e){var t=e.editor,n=e.getAccelKey();if(n){var t=e.editor,r=e.getDocumentPosition(),i=t.session,s=i.getTokenAt(r.row,r.column);t._emit(\"linkHover\",{position:r,token:s})}}function s(e){var t=e.getAccelKey(),n=e.getButton();if(n==0&&t){var r=e.editor,i=e.getDocumentPosition(),s=r.session,o=s.getTokenAt(i.row,i.column);r._emit(\"linkClick\",{position:i,token:o})}}var r=e(\"ace/editor\").Editor;e(\"../config\").defineOptions(r.prototype,\"editor\",{enableLinking:{set:function(e){e?(this.on(\"click\",s),this.on(\"mousemove\",i)):(this.off(\"click\",s),this.off(\"mousemove\",i))},value:!1}})});\n                (function() {\n                    ace.require([\"ace/ext/linking\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict/ext-modelist.js",
    "content": "ace.define(\"ace/ext/modelist\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function i(e){var t=a.text,n=e.split(/[\\/\\\\]/).pop();for(var i=0;i<r.length;i++)if(r[i].supportsFile(n)){t=r[i];break}return t}var r=[],s=function(e,t,n){this.name=e,this.caption=t,this.mode=\"ace/mode/\"+e,this.extensions=n;var r;/\\^/.test(n)?r=n.replace(/\\|(\\^)?/g,function(e,t){return\"$|\"+(t?\"^\":\"^.*\\\\.\")})+\"$\":r=\"^.*\\\\.(\"+n+\")$\",this.extRe=new RegExp(r,\"gi\")};s.prototype.supportsFile=function(e){return e.match(this.extRe)};var o={ABAP:[\"abap\"],ABC:[\"abc\"],ActionScript:[\"as\"],ADA:[\"ada|adb\"],Apache_Conf:[\"^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd\"],AsciiDoc:[\"asciidoc|adoc\"],Assembly_x86:[\"asm|a\"],AutoHotKey:[\"ahk\"],BatchFile:[\"bat|cmd\"],Bro:[\"bro\"],C_Cpp:[\"cpp|c|cc|cxx|h|hh|hpp|ino\"],C9Search:[\"c9search_results\"],Cirru:[\"cirru|cr\"],Clojure:[\"clj|cljs\"],Cobol:[\"CBL|COB\"],coffee:[\"coffee|cf|cson|^Cakefile\"],ColdFusion:[\"cfm\"],CSharp:[\"cs\"],CSS:[\"css\"],Curly:[\"curly\"],D:[\"d|di\"],Dart:[\"dart\"],Diff:[\"diff|patch\"],Dockerfile:[\"^Dockerfile\"],Dot:[\"dot\"],Drools:[\"drl\"],Dummy:[\"dummy\"],DummySyntax:[\"dummy\"],Eiffel:[\"e|ge\"],EJS:[\"ejs\"],Elixir:[\"ex|exs\"],Elm:[\"elm\"],Erlang:[\"erl|hrl\"],Forth:[\"frt|fs|ldr|fth|4th\"],Fortran:[\"f|f90\"],FTL:[\"ftl\"],Gcode:[\"gcode\"],Gherkin:[\"feature\"],Gitignore:[\"^.gitignore\"],Glsl:[\"glsl|frag|vert\"],Gobstones:[\"gbs\"],golang:[\"go\"],Groovy:[\"groovy\"],HAML:[\"haml\"],Handlebars:[\"hbs|handlebars|tpl|mustache\"],Haskell:[\"hs\"],Haskell_Cabal:[\"cabal\"],haXe:[\"hx\"],Hjson:[\"hjson\"],HTML:[\"html|htm|xhtml\"],HTML_Elixir:[\"eex|html.eex\"],HTML_Ruby:[\"erb|rhtml|html.erb\"],INI:[\"ini|conf|cfg|prefs\"],Io:[\"io\"],Jack:[\"jack\"],Jade:[\"jade|pug\"],Java:[\"java\"],JavaScript:[\"js|jsm|jsx\"],JSON:[\"json\"],JSONiq:[\"jq\"],JSP:[\"jsp\"],JSX:[\"jsx\"],Julia:[\"jl\"],Kotlin:[\"kt|kts\"],LaTeX:[\"tex|latex|ltx|bib\"],LESS:[\"less\"],Liquid:[\"liquid\"],Lisp:[\"lisp\"],LiveScript:[\"ls\"],LogiQL:[\"logic|lql\"],LSL:[\"lsl\"],Lua:[\"lua\"],LuaPage:[\"lp\"],Lucene:[\"lucene\"],Makefile:[\"^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make\"],Markdown:[\"md|markdown\"],Mask:[\"mask\"],MATLAB:[\"matlab\"],Maze:[\"mz\"],MEL:[\"mel\"],MUSHCode:[\"mc|mush\"],MySQL:[\"mysql\"],Nix:[\"nix\"],NSIS:[\"nsi|nsh\"],ObjectiveC:[\"m|mm\"],OCaml:[\"ml|mli\"],Pascal:[\"pas|p\"],Perl:[\"pl|pm\"],pgSQL:[\"pgsql\"],PHP:[\"php|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module\"],Powershell:[\"ps1\"],Praat:[\"praat|praatscript|psc|proc\"],Prolog:[\"plg|prolog\"],Properties:[\"properties\"],Protobuf:[\"proto\"],Python:[\"py\"],R:[\"r\"],Razor:[\"cshtml|asp\"],RDoc:[\"Rd\"],RHTML:[\"Rhtml\"],RST:[\"rst\"],Ruby:[\"rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile\"],Rust:[\"rs\"],SASS:[\"sass\"],SCAD:[\"scad\"],Scala:[\"scala\"],Scheme:[\"scm|sm|rkt|oak|scheme\"],SCSS:[\"scss\"],SH:[\"sh|bash|^.bashrc\"],SJS:[\"sjs\"],Smarty:[\"smarty|tpl\"],snippets:[\"snippets\"],Soy_Template:[\"soy\"],Space:[\"space\"],SQL:[\"sql\"],SQLServer:[\"sqlserver\"],Stylus:[\"styl|stylus\"],SVG:[\"svg\"],Swift:[\"swift\"],Tcl:[\"tcl\"],Tex:[\"tex\"],Text:[\"txt\"],Textile:[\"textile\"],Toml:[\"toml\"],TSX:[\"tsx\"],Twig:[\"twig|swig\"],Typescript:[\"ts|typescript|str\"],Vala:[\"vala\"],VBScript:[\"vbs|vb\"],Velocity:[\"vm\"],Verilog:[\"v|vh|sv|svh\"],VHDL:[\"vhd|vhdl\"],Wollok:[\"wlk|wpgm|wtest\"],XML:[\"xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml\"],XQuery:[\"xq\"],YAML:[\"yaml|yml\"],Django:[\"html\"]},u={ObjectiveC:\"Objective-C\",CSharp:\"C#\",golang:\"Go\",C_Cpp:\"C and C++\",coffee:\"CoffeeScript\",HTML_Ruby:\"HTML (Ruby)\",HTML_Elixir:\"HTML (Elixir)\",FTL:\"FreeMarker\"},a={};for(var f in o){var l=o[f],c=(u[f]||f).replace(/_/g,\" \"),h=f.toLowerCase(),p=new s(h,c,l[0]);a[h]=p,r.push(p)}n.exports={getModeForPath:i,modes:r,modesByName:a}});\n                (function() {\n                    ace.require([\"ace/ext/modelist\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict/ext-old_ie.js",
    "content": "ace.define(\"ace/ext/searchbox\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\"],function(e,t,n){\"use strict\";var r=e(\"../lib/dom\"),i=e(\"../lib/lang\"),s=e(\"../lib/event\"),o=\".ace_search {background-color: #ddd;border: 1px solid #cbcbcb;border-top: 0 none;max-width: 325px;overflow: hidden;margin: 0;padding: 4px;padding-right: 6px;padding-bottom: 0;position: absolute;top: 0px;z-index: 99;white-space: normal;}.ace_search.left {border-left: 0 none;border-radius: 0px 0px 5px 0px;left: 0;}.ace_search.right {border-radius: 0px 0px 0px 5px;border-right: 0 none;right: 0;}.ace_search_form, .ace_replace_form {border-radius: 3px;border: 1px solid #cbcbcb;float: left;margin-bottom: 4px;overflow: hidden;}.ace_search_form.ace_nomatch {outline: 1px solid red;}.ace_search_field {background-color: white;color: black;border-right: 1px solid #cbcbcb;border: 0 none;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;float: left;height: 22px;outline: 0;padding: 0 7px;width: 214px;margin: 0;}.ace_searchbtn,.ace_replacebtn {background: #fff;border: 0 none;border-left: 1px solid #dcdcdc;cursor: pointer;float: left;height: 22px;margin: 0;position: relative;}.ace_searchbtn:last-child,.ace_replacebtn:last-child {border-top-right-radius: 3px;border-bottom-right-radius: 3px;}.ace_searchbtn:disabled {background: none;cursor: default;}.ace_searchbtn {background-position: 50% 50%;background-repeat: no-repeat;width: 27px;}.ace_searchbtn.prev {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiSU1NZUAC/6E0I0yACYskCpsJiySKIiY0SUZk40FyTEgCjGgKwTRAgAEAQJUIPCE+qfkAAAAASUVORK5CYII=);    }.ace_searchbtn.next {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiTE1NZQCC/0DMyIAKwGJMUAYDEo3M/s+EpvM/mkKwCQxYjIeLMaELoLMBAgwAU7UJObTKsvAAAAAASUVORK5CYII=);    }.ace_searchbtn_close {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;border-radius: 50%;border: 0 none;color: #656565;cursor: pointer;float: right;font: 16px/16px Arial;height: 14px;margin: 5px 1px 9px 5px;padding: 0;text-align: center;width: 14px;}.ace_searchbtn_close:hover {background-color: #656565;background-position: 50% 100%;color: white;}.ace_replacebtn.prev {width: 54px}.ace_replacebtn.next {width: 27px}.ace_button {margin-left: 2px;cursor: pointer;-webkit-user-select: none;-moz-user-select: none;-o-user-select: none;-ms-user-select: none;user-select: none;overflow: hidden;opacity: 0.7;border: 1px solid rgba(100,100,100,0.23);padding: 1px;-moz-box-sizing: border-box;box-sizing:    border-box;color: black;}.ace_button:hover {background-color: #eee;opacity:1;}.ace_button:active {background-color: #ddd;}.ace_button.checked {border-color: #3399ff;opacity:1;}.ace_search_options{margin-bottom: 3px;text-align: right;-webkit-user-select: none;-moz-user-select: none;-o-user-select: none;-ms-user-select: none;user-select: none;}\",u=e(\"../keyboard/hash_handler\").HashHandler,a=e(\"../lib/keys\");r.importCssString(o,\"ace_searchbox\");var f='<div class=\"ace_search right\">    <button type=\"button\" action=\"hide\" class=\"ace_searchbtn_close\"></button>    <div class=\"ace_search_form\">        <input class=\"ace_search_field\" placeholder=\"Search for\" spellcheck=\"false\"></input>        <button type=\"button\" action=\"findNext\" class=\"ace_searchbtn next\"></button>        <button type=\"button\" action=\"findPrev\" class=\"ace_searchbtn prev\"></button>        <button type=\"button\" action=\"findAll\" class=\"ace_searchbtn\" title=\"Alt-Enter\">All</button>    </div>    <div class=\"ace_replace_form\">        <input class=\"ace_search_field\" placeholder=\"Replace with\" spellcheck=\"false\"></input>        <button type=\"button\" action=\"replaceAndFindNext\" class=\"ace_replacebtn\">Replace</button>        <button type=\"button\" action=\"replaceAll\" class=\"ace_replacebtn\">All</button>    </div>    <div class=\"ace_search_options\">        <span action=\"toggleRegexpMode\" class=\"ace_button\" title=\"RegExp Search\">.*</span>        <span action=\"toggleCaseSensitive\" class=\"ace_button\" title=\"CaseSensitive Search\">Aa</span>        <span action=\"toggleWholeWords\" class=\"ace_button\" title=\"Whole Word Search\">\\\\b</span>    </div></div>'.replace(/>\\s+/g,\">\"),l=function(e,t,n){var i=r.createElement(\"div\");i.innerHTML=f,this.element=i.firstChild,this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.container.appendChild(this.element),this.editor=e},this.$initElements=function(e){this.searchBox=e.querySelector(\".ace_search_form\"),this.replaceBox=e.querySelector(\".ace_replace_form\"),this.searchOptions=e.querySelector(\".ace_search_options\"),this.regExpOption=e.querySelector(\"[action=toggleRegexpMode]\"),this.caseSensitiveOption=e.querySelector(\"[action=toggleCaseSensitive]\"),this.wholeWordOption=e.querySelector(\"[action=toggleWholeWords]\"),this.searchInput=this.searchBox.querySelector(\".ace_search_field\"),this.replaceInput=this.replaceBox.querySelector(\".ace_search_field\")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;s.addListener(e,\"mousedown\",function(e){setTimeout(function(){t.activeInput.focus()},0),s.stopPropagation(e)}),s.addListener(e,\"click\",function(e){var n=e.target||e.srcElement,r=n.getAttribute(\"action\");r&&t[r]?t[r]():t.$searchBarKb.commands[r]&&t.$searchBarKb.commands[r].exec(t),s.stopPropagation(e)}),s.addCommandKeyListener(e,function(e,n,r){var i=a.keyCodeToString(r),o=t.$searchBarKb.findKeyCommand(n,i);o&&o.exec&&(o.exec(t),s.stopEvent(e))}),this.$onChange=i.delayedCall(function(){t.find(!1,!1)}),s.addListener(this.searchInput,\"input\",function(){t.$onChange.schedule(20)}),s.addListener(this.searchInput,\"focus\",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),s.addListener(this.replaceInput,\"focus\",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new u([{bindKey:\"Esc\",name:\"closeSearchBar\",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new u,this.$searchBarKb.bindKeys({\"Ctrl-f|Command-f\":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?\"\":\"none\",e.searchInput.focus()},\"Ctrl-H|Command-Option-F\":function(e){e.replaceBox.style.display=\"\",e.replaceInput.focus()},\"Ctrl-G|Command-G\":function(e){e.findNext()},\"Ctrl-Shift-G|Command-Shift-G\":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},\"Shift-Return\":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},\"Alt-Return\":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:\"toggleRegexpMode\",bindKey:{win:\"Alt-R|Alt-/\",mac:\"Ctrl-Alt-R|Ctrl-Alt-/\"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:\"toggleCaseSensitive\",bindKey:{win:\"Alt-C|Alt-I\",mac:\"Ctrl-Alt-R|Ctrl-Alt-I\"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:\"toggleWholeWords\",bindKey:{win:\"Alt-B|Alt-W\",mac:\"Ctrl-Alt-B|Ctrl-Alt-W\"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}}]),this.$syncOptions=function(){r.setCssClass(this.regExpOption,\"checked\",this.regExpOption.checked),r.setCssClass(this.wholeWordOption,\"checked\",this.wholeWordOption.checked),r.setCssClass(this.caseSensitiveOption,\"checked\",this.caseSensitiveOption.checked),this.find(!1,!1)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t,n){var i=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n}),s=!i&&this.searchInput.value;r.setCssClass(this.searchBox,\"ace_nomatch\",s),this.editor._emit(\"findSearchBox\",{match:!s}),this.highlight()},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;r.setCssClass(this.searchBox,\"ace_nomatch\",t),this.editor._emit(\"findSearchBox\",{match:!t}),this.highlight(),this.hide()},this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.element.style.display=\"none\",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.element.style.display=\"\",this.replaceBox.style.display=t?\"\":\"none\",this.isReplace=t,e&&(this.searchInput.value=e),this.find(!1,!1,!0),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(l.prototype),t.SearchBox=l,t.Search=function(e,t){var n=e.searchBox||new l(e);n.show(e.session.getTextRange(),t)}}),ace.define(\"ace/ext/old_ie\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\",\"ace/tokenizer\",\"ace/ext/searchbox\",\"ace/mode/text\"],function(require,exports,module){\"use strict\";function patch(obj,name,regexp,replacement){eval(\"obj['\"+name+\"']=\"+obj[name].toString().replace(regexp,replacement))}var MAX_TOKEN_COUNT=1e3,useragent=require(\"../lib/useragent\"),TokenizerModule=require(\"../tokenizer\");useragent.isIE&&useragent.isIE<10&&window.top.document.compatMode===\"BackCompat\"&&(useragent.isOldIE=!0);if(typeof document!=\"undefined\"&&!document.documentElement.querySelector){useragent.isOldIE=!0;var qs=function(e,t){if(t.charAt(0)==\".\")var n=t.slice(1);else var r=t.match(/(\\w+)=(\\w+)/),i=r&&r[1],s=r&&r[2];for(var o=0;o<e.all.length;o++){var u=e.all[o];if(n){if(u.className.indexOf(n)!=-1)return u}else if(i&&u.getAttribute(i)==s)return u}},sb=require(\"./searchbox\").SearchBox.prototype;patch(sb,\"$initElements\",/([^\\s=]*).querySelector\\((\".*?\")\\)/g,\"qs($1, $2)\")}var compliantExecNpcg=/()??/.exec(\"\")[1]===undefined;if(compliantExecNpcg)return;var proto=TokenizerModule.Tokenizer.prototype;TokenizerModule.Tokenizer_orig=TokenizerModule.Tokenizer,proto.getLineTokens_orig=proto.getLineTokens,patch(TokenizerModule,\"Tokenizer\",\"ruleRegExps.push(adjustedregex);\\n\",function(e){return e+'        if (state[i].next && RegExp(adjustedregex).test(\"\"))\\n            rule._qre = RegExp(adjustedregex, \"g\");\\n        '}),TokenizerModule.Tokenizer.prototype=proto,patch(proto,\"getLineTokens\",/if \\(match\\[i \\+ 1\\] === undefined\\)\\s*continue;/,\"if (!match[i + 1]) {\\n        if (value)continue;\\n        var qre = state[mapping[i]]._qre;\\n        if (!qre) continue;\\n        qre.lastIndex = lastIndex;\\n        if (!qre.exec(line) || qre.lastIndex != lastIndex)\\n            continue;\\n    }\"),patch(require(\"../mode/text\").Mode.prototype,\"getTokenizer\",/Tokenizer/,\"TokenizerModule.Tokenizer\"),useragent.isOldIE=!0});\n                (function() {\n                    ace.require([\"ace/ext/old_ie\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict/ext-searchbox.js",
    "content": "ace.define(\"ace/ext/searchbox\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\"],function(e,t,n){\"use strict\";var r=e(\"../lib/dom\"),i=e(\"../lib/lang\"),s=e(\"../lib/event\"),o=\".ace_search {background-color: #ddd;border: 1px solid #cbcbcb;border-top: 0 none;max-width: 325px;overflow: hidden;margin: 0;padding: 4px;padding-right: 6px;padding-bottom: 0;position: absolute;top: 0px;z-index: 99;white-space: normal;}.ace_search.left {border-left: 0 none;border-radius: 0px 0px 5px 0px;left: 0;}.ace_search.right {border-radius: 0px 0px 0px 5px;border-right: 0 none;right: 0;}.ace_search_form, .ace_replace_form {border-radius: 3px;border: 1px solid #cbcbcb;float: left;margin-bottom: 4px;overflow: hidden;}.ace_search_form.ace_nomatch {outline: 1px solid red;}.ace_search_field {background-color: white;color: black;border-right: 1px solid #cbcbcb;border: 0 none;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;float: left;height: 22px;outline: 0;padding: 0 7px;width: 214px;margin: 0;}.ace_searchbtn,.ace_replacebtn {background: #fff;border: 0 none;border-left: 1px solid #dcdcdc;cursor: pointer;float: left;height: 22px;margin: 0;position: relative;}.ace_searchbtn:last-child,.ace_replacebtn:last-child {border-top-right-radius: 3px;border-bottom-right-radius: 3px;}.ace_searchbtn:disabled {background: none;cursor: default;}.ace_searchbtn {background-position: 50% 50%;background-repeat: no-repeat;width: 27px;}.ace_searchbtn.prev {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiSU1NZUAC/6E0I0yACYskCpsJiySKIiY0SUZk40FyTEgCjGgKwTRAgAEAQJUIPCE+qfkAAAAASUVORK5CYII=);    }.ace_searchbtn.next {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiTE1NZQCC/0DMyIAKwGJMUAYDEo3M/s+EpvM/mkKwCQxYjIeLMaELoLMBAgwAU7UJObTKsvAAAAAASUVORK5CYII=);    }.ace_searchbtn_close {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;border-radius: 50%;border: 0 none;color: #656565;cursor: pointer;float: right;font: 16px/16px Arial;height: 14px;margin: 5px 1px 9px 5px;padding: 0;text-align: center;width: 14px;}.ace_searchbtn_close:hover {background-color: #656565;background-position: 50% 100%;color: white;}.ace_replacebtn.prev {width: 54px}.ace_replacebtn.next {width: 27px}.ace_button {margin-left: 2px;cursor: pointer;-webkit-user-select: none;-moz-user-select: none;-o-user-select: none;-ms-user-select: none;user-select: none;overflow: hidden;opacity: 0.7;border: 1px solid rgba(100,100,100,0.23);padding: 1px;-moz-box-sizing: border-box;box-sizing:    border-box;color: black;}.ace_button:hover {background-color: #eee;opacity:1;}.ace_button:active {background-color: #ddd;}.ace_button.checked {border-color: #3399ff;opacity:1;}.ace_search_options{margin-bottom: 3px;text-align: right;-webkit-user-select: none;-moz-user-select: none;-o-user-select: none;-ms-user-select: none;user-select: none;}\",u=e(\"../keyboard/hash_handler\").HashHandler,a=e(\"../lib/keys\");r.importCssString(o,\"ace_searchbox\");var f='<div class=\"ace_search right\">    <button type=\"button\" action=\"hide\" class=\"ace_searchbtn_close\"></button>    <div class=\"ace_search_form\">        <input class=\"ace_search_field\" placeholder=\"Search for\" spellcheck=\"false\"></input>        <button type=\"button\" action=\"findNext\" class=\"ace_searchbtn next\"></button>        <button type=\"button\" action=\"findPrev\" class=\"ace_searchbtn prev\"></button>        <button type=\"button\" action=\"findAll\" class=\"ace_searchbtn\" title=\"Alt-Enter\">All</button>    </div>    <div class=\"ace_replace_form\">        <input class=\"ace_search_field\" placeholder=\"Replace with\" spellcheck=\"false\"></input>        <button type=\"button\" action=\"replaceAndFindNext\" class=\"ace_replacebtn\">Replace</button>        <button type=\"button\" action=\"replaceAll\" class=\"ace_replacebtn\">All</button>    </div>    <div class=\"ace_search_options\">        <span action=\"toggleRegexpMode\" class=\"ace_button\" title=\"RegExp Search\">.*</span>        <span action=\"toggleCaseSensitive\" class=\"ace_button\" title=\"CaseSensitive Search\">Aa</span>        <span action=\"toggleWholeWords\" class=\"ace_button\" title=\"Whole Word Search\">\\\\b</span>    </div></div>'.replace(/>\\s+/g,\">\"),l=function(e,t,n){var i=r.createElement(\"div\");i.innerHTML=f,this.element=i.firstChild,this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.container.appendChild(this.element),this.editor=e},this.$initElements=function(e){this.searchBox=e.querySelector(\".ace_search_form\"),this.replaceBox=e.querySelector(\".ace_replace_form\"),this.searchOptions=e.querySelector(\".ace_search_options\"),this.regExpOption=e.querySelector(\"[action=toggleRegexpMode]\"),this.caseSensitiveOption=e.querySelector(\"[action=toggleCaseSensitive]\"),this.wholeWordOption=e.querySelector(\"[action=toggleWholeWords]\"),this.searchInput=this.searchBox.querySelector(\".ace_search_field\"),this.replaceInput=this.replaceBox.querySelector(\".ace_search_field\")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;s.addListener(e,\"mousedown\",function(e){setTimeout(function(){t.activeInput.focus()},0),s.stopPropagation(e)}),s.addListener(e,\"click\",function(e){var n=e.target||e.srcElement,r=n.getAttribute(\"action\");r&&t[r]?t[r]():t.$searchBarKb.commands[r]&&t.$searchBarKb.commands[r].exec(t),s.stopPropagation(e)}),s.addCommandKeyListener(e,function(e,n,r){var i=a.keyCodeToString(r),o=t.$searchBarKb.findKeyCommand(n,i);o&&o.exec&&(o.exec(t),s.stopEvent(e))}),this.$onChange=i.delayedCall(function(){t.find(!1,!1)}),s.addListener(this.searchInput,\"input\",function(){t.$onChange.schedule(20)}),s.addListener(this.searchInput,\"focus\",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),s.addListener(this.replaceInput,\"focus\",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new u([{bindKey:\"Esc\",name:\"closeSearchBar\",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new u,this.$searchBarKb.bindKeys({\"Ctrl-f|Command-f\":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?\"\":\"none\",e.searchInput.focus()},\"Ctrl-H|Command-Option-F\":function(e){e.replaceBox.style.display=\"\",e.replaceInput.focus()},\"Ctrl-G|Command-G\":function(e){e.findNext()},\"Ctrl-Shift-G|Command-Shift-G\":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},\"Shift-Return\":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},\"Alt-Return\":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:\"toggleRegexpMode\",bindKey:{win:\"Alt-R|Alt-/\",mac:\"Ctrl-Alt-R|Ctrl-Alt-/\"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:\"toggleCaseSensitive\",bindKey:{win:\"Alt-C|Alt-I\",mac:\"Ctrl-Alt-R|Ctrl-Alt-I\"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:\"toggleWholeWords\",bindKey:{win:\"Alt-B|Alt-W\",mac:\"Ctrl-Alt-B|Ctrl-Alt-W\"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}}]),this.$syncOptions=function(){r.setCssClass(this.regExpOption,\"checked\",this.regExpOption.checked),r.setCssClass(this.wholeWordOption,\"checked\",this.wholeWordOption.checked),r.setCssClass(this.caseSensitiveOption,\"checked\",this.caseSensitiveOption.checked),this.find(!1,!1)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t,n){var i=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n}),s=!i&&this.searchInput.value;r.setCssClass(this.searchBox,\"ace_nomatch\",s),this.editor._emit(\"findSearchBox\",{match:!s}),this.highlight()},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;r.setCssClass(this.searchBox,\"ace_nomatch\",t),this.editor._emit(\"findSearchBox\",{match:!t}),this.highlight(),this.hide()},this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.element.style.display=\"none\",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.element.style.display=\"\",this.replaceBox.style.display=t?\"\":\"none\",this.isReplace=t,e&&(this.searchInput.value=e),this.find(!1,!1,!0),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(l.prototype),t.SearchBox=l,t.Search=function(e,t){var n=e.searchBox||new l(e);n.show(e.session.getTextRange(),t)}});\n                (function() {\n                    ace.require([\"ace/ext/searchbox\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict/ext-settings_menu.js",
    "content": "ace.define(\"ace/ext/menu_tools/element_generator\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";n.exports.createOption=function(t){var n,r=document.createElement(\"option\");for(n in t)t.hasOwnProperty(n)&&(n===\"selected\"?r.setAttribute(n,t[n]):r[n]=t[n]);return r},n.exports.createCheckbox=function(t,n,r){var i=document.createElement(\"input\");return i.setAttribute(\"type\",\"checkbox\"),i.setAttribute(\"id\",t),i.setAttribute(\"name\",t),i.setAttribute(\"value\",n),i.setAttribute(\"class\",r),n&&i.setAttribute(\"checked\",\"checked\"),i},n.exports.createInput=function(t,n,r){var i=document.createElement(\"input\");return i.setAttribute(\"type\",\"text\"),i.setAttribute(\"id\",t),i.setAttribute(\"name\",t),i.setAttribute(\"value\",n),i.setAttribute(\"class\",r),i},n.exports.createLabel=function(t,n){var r=document.createElement(\"label\");return r.setAttribute(\"for\",n),r.textContent=t,r},n.exports.createSelection=function(t,r,i){var s=document.createElement(\"select\");return s.setAttribute(\"id\",t),s.setAttribute(\"name\",t),s.setAttribute(\"class\",i),r.forEach(function(e){s.appendChild(n.exports.createOption(e))}),s}}),ace.define(\"ace/ext/modelist\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function i(e){var t=a.text,n=e.split(/[\\/\\\\]/).pop();for(var i=0;i<r.length;i++)if(r[i].supportsFile(n)){t=r[i];break}return t}var r=[],s=function(e,t,n){this.name=e,this.caption=t,this.mode=\"ace/mode/\"+e,this.extensions=n;var r;/\\^/.test(n)?r=n.replace(/\\|(\\^)?/g,function(e,t){return\"$|\"+(t?\"^\":\"^.*\\\\.\")})+\"$\":r=\"^.*\\\\.(\"+n+\")$\",this.extRe=new RegExp(r,\"gi\")};s.prototype.supportsFile=function(e){return e.match(this.extRe)};var o={ABAP:[\"abap\"],ABC:[\"abc\"],ActionScript:[\"as\"],ADA:[\"ada|adb\"],Apache_Conf:[\"^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd\"],AsciiDoc:[\"asciidoc|adoc\"],Assembly_x86:[\"asm|a\"],AutoHotKey:[\"ahk\"],BatchFile:[\"bat|cmd\"],Bro:[\"bro\"],C_Cpp:[\"cpp|c|cc|cxx|h|hh|hpp|ino\"],C9Search:[\"c9search_results\"],Cirru:[\"cirru|cr\"],Clojure:[\"clj|cljs\"],Cobol:[\"CBL|COB\"],coffee:[\"coffee|cf|cson|^Cakefile\"],ColdFusion:[\"cfm\"],CSharp:[\"cs\"],CSS:[\"css\"],Curly:[\"curly\"],D:[\"d|di\"],Dart:[\"dart\"],Diff:[\"diff|patch\"],Dockerfile:[\"^Dockerfile\"],Dot:[\"dot\"],Drools:[\"drl\"],Dummy:[\"dummy\"],DummySyntax:[\"dummy\"],Eiffel:[\"e|ge\"],EJS:[\"ejs\"],Elixir:[\"ex|exs\"],Elm:[\"elm\"],Erlang:[\"erl|hrl\"],Forth:[\"frt|fs|ldr|fth|4th\"],Fortran:[\"f|f90\"],FTL:[\"ftl\"],Gcode:[\"gcode\"],Gherkin:[\"feature\"],Gitignore:[\"^.gitignore\"],Glsl:[\"glsl|frag|vert\"],Gobstones:[\"gbs\"],golang:[\"go\"],Groovy:[\"groovy\"],HAML:[\"haml\"],Handlebars:[\"hbs|handlebars|tpl|mustache\"],Haskell:[\"hs\"],Haskell_Cabal:[\"cabal\"],haXe:[\"hx\"],Hjson:[\"hjson\"],HTML:[\"html|htm|xhtml\"],HTML_Elixir:[\"eex|html.eex\"],HTML_Ruby:[\"erb|rhtml|html.erb\"],INI:[\"ini|conf|cfg|prefs\"],Io:[\"io\"],Jack:[\"jack\"],Jade:[\"jade|pug\"],Java:[\"java\"],JavaScript:[\"js|jsm|jsx\"],JSON:[\"json\"],JSONiq:[\"jq\"],JSP:[\"jsp\"],JSX:[\"jsx\"],Julia:[\"jl\"],Kotlin:[\"kt|kts\"],LaTeX:[\"tex|latex|ltx|bib\"],LESS:[\"less\"],Liquid:[\"liquid\"],Lisp:[\"lisp\"],LiveScript:[\"ls\"],LogiQL:[\"logic|lql\"],LSL:[\"lsl\"],Lua:[\"lua\"],LuaPage:[\"lp\"],Lucene:[\"lucene\"],Makefile:[\"^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make\"],Markdown:[\"md|markdown\"],Mask:[\"mask\"],MATLAB:[\"matlab\"],Maze:[\"mz\"],MEL:[\"mel\"],MUSHCode:[\"mc|mush\"],MySQL:[\"mysql\"],Nix:[\"nix\"],NSIS:[\"nsi|nsh\"],ObjectiveC:[\"m|mm\"],OCaml:[\"ml|mli\"],Pascal:[\"pas|p\"],Perl:[\"pl|pm\"],pgSQL:[\"pgsql\"],PHP:[\"php|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module\"],Powershell:[\"ps1\"],Praat:[\"praat|praatscript|psc|proc\"],Prolog:[\"plg|prolog\"],Properties:[\"properties\"],Protobuf:[\"proto\"],Python:[\"py\"],R:[\"r\"],Razor:[\"cshtml|asp\"],RDoc:[\"Rd\"],RHTML:[\"Rhtml\"],RST:[\"rst\"],Ruby:[\"rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile\"],Rust:[\"rs\"],SASS:[\"sass\"],SCAD:[\"scad\"],Scala:[\"scala\"],Scheme:[\"scm|sm|rkt|oak|scheme\"],SCSS:[\"scss\"],SH:[\"sh|bash|^.bashrc\"],SJS:[\"sjs\"],Smarty:[\"smarty|tpl\"],snippets:[\"snippets\"],Soy_Template:[\"soy\"],Space:[\"space\"],SQL:[\"sql\"],SQLServer:[\"sqlserver\"],Stylus:[\"styl|stylus\"],SVG:[\"svg\"],Swift:[\"swift\"],Tcl:[\"tcl\"],Tex:[\"tex\"],Text:[\"txt\"],Textile:[\"textile\"],Toml:[\"toml\"],TSX:[\"tsx\"],Twig:[\"twig|swig\"],Typescript:[\"ts|typescript|str\"],Vala:[\"vala\"],VBScript:[\"vbs|vb\"],Velocity:[\"vm\"],Verilog:[\"v|vh|sv|svh\"],VHDL:[\"vhd|vhdl\"],Wollok:[\"wlk|wpgm|wtest\"],XML:[\"xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml\"],XQuery:[\"xq\"],YAML:[\"yaml|yml\"],Django:[\"html\"]},u={ObjectiveC:\"Objective-C\",CSharp:\"C#\",golang:\"Go\",C_Cpp:\"C and C++\",coffee:\"CoffeeScript\",HTML_Ruby:\"HTML (Ruby)\",HTML_Elixir:\"HTML (Elixir)\",FTL:\"FreeMarker\"},a={};for(var f in o){var l=o[f],c=(u[f]||f).replace(/_/g,\" \"),h=f.toLowerCase(),p=new s(h,c,l[0]);a[h]=p,r.push(p)}n.exports={getModeForPath:i,modes:r,modesByName:a}}),ace.define(\"ace/ext/themelist\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\"],function(e,t,n){\"use strict\";e(\"ace/lib/fixoldbrowsers\");var r=[[\"Chrome\"],[\"Clouds\"],[\"Crimson Editor\"],[\"Dawn\"],[\"Dreamweaver\"],[\"Eclipse\"],[\"GitHub\"],[\"IPlastic\"],[\"Solarized Light\"],[\"TextMate\"],[\"Tomorrow\"],[\"XCode\"],[\"Kuroir\"],[\"KatzenMilch\"],[\"SQL Server\",\"sqlserver\",\"light\"],[\"Ambiance\",\"ambiance\",\"dark\"],[\"Chaos\",\"chaos\",\"dark\"],[\"Clouds Midnight\",\"clouds_midnight\",\"dark\"],[\"Cobalt\",\"cobalt\",\"dark\"],[\"Gruvbox\",\"gruvbox\",\"dark\"],[\"idle Fingers\",\"idle_fingers\",\"dark\"],[\"krTheme\",\"kr_theme\",\"dark\"],[\"Merbivore\",\"merbivore\",\"dark\"],[\"Merbivore Soft\",\"merbivore_soft\",\"dark\"],[\"Mono Industrial\",\"mono_industrial\",\"dark\"],[\"Monokai\",\"monokai\",\"dark\"],[\"Pastel on dark\",\"pastel_on_dark\",\"dark\"],[\"Solarized Dark\",\"solarized_dark\",\"dark\"],[\"Terminal\",\"terminal\",\"dark\"],[\"Tomorrow Night\",\"tomorrow_night\",\"dark\"],[\"Tomorrow Night Blue\",\"tomorrow_night_blue\",\"dark\"],[\"Tomorrow Night Bright\",\"tomorrow_night_bright\",\"dark\"],[\"Tomorrow Night 80s\",\"tomorrow_night_eighties\",\"dark\"],[\"Twilight\",\"twilight\",\"dark\"],[\"Vibrant Ink\",\"vibrant_ink\",\"dark\"]];t.themesByName={},t.themes=r.map(function(e){var n=e[1]||e[0].replace(/ /g,\"_\").toLowerCase(),r={caption:e[0],theme:\"ace/theme/\"+n,isDark:e[2]==\"dark\",name:n};return t.themesByName[n]=r,r})}),ace.define(\"ace/ext/menu_tools/add_editor_menu_options\",[\"require\",\"exports\",\"module\",\"ace/ext/modelist\",\"ace/ext/themelist\"],function(e,t,n){\"use strict\";n.exports.addEditorMenuOptions=function(n){var r=e(\"../modelist\"),i=e(\"../themelist\");n.menuOptions={setNewLineMode:[{textContent:\"unix\",value:\"unix\"},{textContent:\"windows\",value:\"windows\"},{textContent:\"auto\",value:\"auto\"}],setTheme:[],setMode:[],setKeyboardHandler:[{textContent:\"ace\",value:\"\"},{textContent:\"vim\",value:\"ace/keyboard/vim\"},{textContent:\"emacs\",value:\"ace/keyboard/emacs\"},{textContent:\"textarea\",value:\"ace/keyboard/textarea\"},{textContent:\"sublime\",value:\"ace/keyboard/sublime\"}]},n.menuOptions.setTheme=i.themes.map(function(e){return{textContent:e.caption,value:e.theme}}),n.menuOptions.setMode=r.modes.map(function(e){return{textContent:e.name,value:e.mode}})}}),ace.define(\"ace/ext/menu_tools/get_set_functions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";n.exports.getSetFunctions=function(t){var n=[],r={editor:t,session:t.session,renderer:t.renderer},i=[],s=[\"setOption\",\"setUndoManager\",\"setDocument\",\"setValue\",\"setBreakpoints\",\"setScrollTop\",\"setScrollLeft\",\"setSelectionStyle\",\"setWrapLimitRange\"];return[\"renderer\",\"session\",\"editor\"].forEach(function(e){var t=r[e],o=e;for(var u in t)s.indexOf(u)===-1&&/^set/.test(u)&&i.indexOf(u)===-1&&(i.push(u),n.push({functionName:u,parentObj:t,parentName:o}))}),n}}),ace.define(\"ace/ext/menu_tools/generate_settings_menu\",[\"require\",\"exports\",\"module\",\"ace/ext/menu_tools/element_generator\",\"ace/ext/menu_tools/add_editor_menu_options\",\"ace/ext/menu_tools/get_set_functions\",\"ace/ace\"],function(e,t,n){\"use strict\";var r=e(\"./element_generator\"),i=e(\"./add_editor_menu_options\").addEditorMenuOptions,s=e(\"./get_set_functions\").getSetFunctions;n.exports.generateSettingsMenu=function(n){function u(){o.sort(function(e,t){var n=e.getAttribute(\"contains\"),r=t.getAttribute(\"contains\");return n.localeCompare(r)})}function a(){var t=document.createElement(\"div\");t.setAttribute(\"id\",\"ace_settingsmenu\"),o.forEach(function(e){t.appendChild(e)});var n=t.appendChild(document.createElement(\"div\")),r=e(\"../../ace\").version;return n.style.padding=\"1em\",n.textContent=\"Ace version \"+r,t}function f(e,t,i,s){var o,u=document.createElement(\"div\");return u.setAttribute(\"contains\",i),u.setAttribute(\"class\",\"ace_optionsMenuEntry\"),u.setAttribute(\"style\",\"clear: both;\"),u.appendChild(r.createLabel(i.replace(/^set/,\"\").replace(/([A-Z])/g,\" $1\").trim(),i)),Array.isArray(s)?(o=r.createSelection(i,s,t),o.addEventListener(\"change\",function(t){try{n.menuOptions[t.target.id].forEach(function(e){e.textContent!==t.target.textContent&&delete e.selected}),e[t.target.id](t.target.value)}catch(r){throw new Error(r)}})):typeof s==\"boolean\"?(o=r.createCheckbox(i,s,t),o.addEventListener(\"change\",function(t){try{e[t.target.id](!!t.target.checked)}catch(n){throw new Error(n)}})):(o=r.createInput(i,s,t),o.addEventListener(\"change\",function(t){try{t.target.value===\"true\"?e[t.target.id](!0):t.target.value===\"false\"?e[t.target.id](!1):e[t.target.id](t.target.value)}catch(n){throw new Error(n)}})),o.style.cssText=\"float:right;\",u.appendChild(o),u}function l(e,t,r,i){var s=n.menuOptions[e],o=t[i]();return typeof o==\"object\"&&(o=o.$id),s.forEach(function(e){e.value===o&&(e.selected=\"selected\")}),f(t,r,e,s)}function c(e){var t=e.functionName,r=e.parentObj,i=e.parentName,s,u=t.replace(/^set/,\"get\");if(n.menuOptions[t]!==undefined)o.push(l(t,r,i,u));else if(typeof r[u]==\"function\")try{s=r[u](),typeof s==\"object\"&&(s=s.$id),o.push(f(r,i,t,s))}catch(a){}}var o=[];return i(n),s(n).forEach(function(e){c(e)}),u(),a()}}),ace.define(\"ace/ext/menu_tools/overlay_page\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/dom\"),i=\"#ace_settingsmenu, #kbshortcutmenu {background-color: #F7F7F7;color: black;box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);padding: 1em 0.5em 2em 1em;overflow: auto;position: absolute;margin: 0;bottom: 0;right: 0;top: 0;z-index: 9991;cursor: default;}.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);background-color: rgba(255, 255, 255, 0.6);color: black;}.ace_optionsMenuEntry:hover {background-color: rgba(100, 100, 100, 0.1);-webkit-transition: all 0.5s;transition: all 0.3s}.ace_closeButton {background: rgba(245, 146, 146, 0.5);border: 1px solid #F48A8A;border-radius: 50%;padding: 7px;position: absolute;right: -8px;top: -8px;z-index: 1000;}.ace_closeButton{background: rgba(245, 146, 146, 0.9);}.ace_optionsMenuKey {color: darkslateblue;font-weight: bold;}.ace_optionsMenuCommand {color: darkcyan;font-weight: normal;}\";r.importCssString(i),n.exports.overlayPage=function(t,n,i,s,o,u){function l(e){e.keyCode===27&&a.click()}i=i?\"top: \"+i+\";\":\"\",o=o?\"bottom: \"+o+\";\":\"\",s=s?\"right: \"+s+\";\":\"\",u=u?\"left: \"+u+\";\":\"\";var a=document.createElement(\"div\"),f=document.createElement(\"div\");a.style.cssText=\"margin: 0; padding: 0; position: fixed; top:0; bottom:0; left:0; right:0;z-index: 9990; background-color: rgba(0, 0, 0, 0.3);\",a.addEventListener(\"click\",function(){document.removeEventListener(\"keydown\",l),a.parentNode.removeChild(a),t.focus(),a=null}),document.addEventListener(\"keydown\",l),f.style.cssText=i+s+o+u,f.addEventListener(\"click\",function(e){e.stopPropagation()});var c=r.createElement(\"div\");c.style.position=\"relative\";var h=r.createElement(\"div\");h.className=\"ace_closeButton\",h.addEventListener(\"click\",function(){a.click()}),c.appendChild(h),f.appendChild(c),f.appendChild(n),a.appendChild(f),document.body.appendChild(a),t.blur()}}),ace.define(\"ace/ext/settings_menu\",[\"require\",\"exports\",\"module\",\"ace/ext/menu_tools/generate_settings_menu\",\"ace/ext/menu_tools/overlay_page\",\"ace/editor\"],function(e,t,n){\"use strict\";function s(e){var t=document.getElementById(\"ace_settingsmenu\");t||i(e,r(e),\"0\",\"0\",\"0\")}var r=e(\"./menu_tools/generate_settings_menu\").generateSettingsMenu,i=e(\"./menu_tools/overlay_page\").overlayPage;n.exports.init=function(t){var n=e(\"ace/editor\").Editor;n.prototype.showSettingsMenu=function(){s(this)}}});\n                (function() {\n                    ace.require([\"ace/ext/settings_menu\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict/ext-spellcheck.js",
    "content": "ace.define(\"ace/ext/spellcheck\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/editor\",\"ace/config\"],function(e,t,n){\"use strict\";var r=e(\"../lib/event\");t.contextMenuHandler=function(e){var t=e.target,n=t.textInput.getElement();if(!t.selection.isEmpty())return;var i=t.getCursorPosition(),s=t.session.getWordRange(i.row,i.column),o=t.session.getTextRange(s);t.session.tokenRe.lastIndex=0;if(!t.session.tokenRe.test(o))return;var u=\"\u0001\u0001\",a=o+\" \"+u;n.value=a,n.setSelectionRange(o.length,o.length+1),n.setSelectionRange(0,0),n.setSelectionRange(0,o.length);var f=!1;r.addListener(n,\"keydown\",function l(){r.removeListener(n,\"keydown\",l),f=!0}),t.textInput.setInputHandler(function(e){console.log(e,a,n.selectionStart,n.selectionEnd);if(e==a)return\"\";if(e.lastIndexOf(a,0)===0)return e.slice(a.length);if(e.substr(n.selectionEnd)==a)return e.slice(0,-a.length);if(e.slice(-2)==u){var r=e.slice(0,-2);if(r.slice(-1)==\" \")return f?r.substring(0,n.selectionEnd):(r=r.slice(0,-1),t.session.replace(s,r),\"\")}return e})};var i=e(\"../editor\").Editor;e(\"../config\").defineOptions(i.prototype,\"editor\",{spellcheck:{set:function(e){var n=this.textInput.getElement();n.spellcheck=!!e,e?this.on(\"nativecontextmenu\",t.contextMenuHandler):this.removeListener(\"nativecontextmenu\",t.contextMenuHandler)},value:!0}})});\n                (function() {\n                    ace.require([\"ace/ext/spellcheck\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict/ext-split.js",
    "content": "ace.define(\"ace/split\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/editor\",\"ace/virtual_renderer\",\"ace/edit_session\"],function(e,t,n){\"use strict\";function l(e,t){this.$u=e,this.$doc=t}var r=e(\"./lib/oop\"),i=e(\"./lib/lang\"),s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./editor\").Editor,u=e(\"./virtual_renderer\").VirtualRenderer,a=e(\"./edit_session\").EditSession,f=function(e,t,n){this.BELOW=1,this.BESIDE=0,this.$container=e,this.$theme=t,this.$splits=0,this.$editorCSS=\"\",this.$editors=[],this.$orientation=this.BESIDE,this.setSplits(n||1),this.$cEditor=this.$editors[0],this.on(\"focus\",function(e){this.$cEditor=e}.bind(this))};(function(){r.implement(this,s),this.$createEditor=function(){var e=document.createElement(\"div\");e.className=this.$editorCSS,e.style.cssText=\"position: absolute; top:0px; bottom:0px\",this.$container.appendChild(e);var t=new o(new u(e,this.$theme));return t.on(\"focus\",function(){this._emit(\"focus\",t)}.bind(this)),this.$editors.push(t),t.setFontSize(this.$fontSize),t},this.setSplits=function(e){var t;if(e<1)throw\"The number of splits have to be > 0!\";if(e==this.$splits)return;if(e>this.$splits){while(this.$splits<this.$editors.length&&this.$splits<e)t=this.$editors[this.$splits],this.$container.appendChild(t.container),t.setFontSize(this.$fontSize),this.$splits++;while(this.$splits<e)this.$createEditor(),this.$splits++}else while(this.$splits>e)t=this.$editors[this.$splits-1],this.$container.removeChild(t.container),this.$splits--;this.resize()},this.getSplits=function(){return this.$splits},this.getEditor=function(e){return this.$editors[e]},this.getCurrentEditor=function(){return this.$cEditor},this.focus=function(){this.$cEditor.focus()},this.blur=function(){this.$cEditor.blur()},this.setTheme=function(e){this.$editors.forEach(function(t){t.setTheme(e)})},this.setKeyboardHandler=function(e){this.$editors.forEach(function(t){t.setKeyboardHandler(e)})},this.forEach=function(e,t){this.$editors.forEach(e,t)},this.$fontSize=\"\",this.setFontSize=function(e){this.$fontSize=e,this.forEach(function(t){t.setFontSize(e)})},this.$cloneSession=function(e){var t=new a(e.getDocument(),e.getMode()),n=e.getUndoManager();if(n){var r=new l(n,t);t.setUndoManager(r)}return t.$informUndoManager=i.delayedCall(function(){t.$deltas=[]}),t.setTabSize(e.getTabSize()),t.setUseSoftTabs(e.getUseSoftTabs()),t.setOverwrite(e.getOverwrite()),t.setBreakpoints(e.getBreakpoints()),t.setUseWrapMode(e.getUseWrapMode()),t.setUseWorker(e.getUseWorker()),t.setWrapLimitRange(e.$wrapLimitRange.min,e.$wrapLimitRange.max),t.$foldData=e.$cloneFoldData(),t},this.setSession=function(e,t){var n;t==null?n=this.$cEditor:n=this.$editors[t];var r=this.$editors.some(function(t){return t.session===e});return r&&(e=this.$cloneSession(e)),n.setSession(e),e},this.getOrientation=function(){return this.$orientation},this.setOrientation=function(e){if(this.$orientation==e)return;this.$orientation=e,this.resize()},this.resize=function(){var e=this.$container.clientWidth,t=this.$container.clientHeight,n;if(this.$orientation==this.BESIDE){var r=e/this.$splits;for(var i=0;i<this.$splits;i++)n=this.$editors[i],n.container.style.width=r+\"px\",n.container.style.top=\"0px\",n.container.style.left=i*r+\"px\",n.container.style.height=t+\"px\",n.resize()}else{var s=t/this.$splits;for(var i=0;i<this.$splits;i++)n=this.$editors[i],n.container.style.width=e+\"px\",n.container.style.top=i*s+\"px\",n.container.style.left=\"0px\",n.container.style.height=s+\"px\",n.resize()}}}).call(f.prototype),function(){this.execute=function(e){this.$u.execute(e)},this.undo=function(){var e=this.$u.undo(!0);e&&this.$doc.selection.setSelectionRange(e)},this.redo=function(){var e=this.$u.redo(!0);e&&this.$doc.selection.setSelectionRange(e)},this.reset=function(){this.$u.reset()},this.hasUndo=function(){return this.$u.hasUndo()},this.hasRedo=function(){return this.$u.hasRedo()}}.call(l.prototype),t.Split=f}),ace.define(\"ace/ext/split\",[\"require\",\"exports\",\"module\",\"ace/split\"],function(e,t,n){\"use strict\";n.exports=e(\"../split\")});\n                (function() {\n                    ace.require([\"ace/ext/split\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict/ext-static_highlight.js",
    "content": "ace.define(\"ace/ext/static_highlight\",[\"require\",\"exports\",\"module\",\"ace/edit_session\",\"ace/layer/text\",\"ace/config\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";var r=e(\"../edit_session\").EditSession,i=e(\"../layer/text\").Text,s=\".ace_static_highlight {font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', 'Droid Sans Mono', monospace;font-size: 12px;white-space: pre-wrap}.ace_static_highlight .ace_gutter {width: 2em;text-align: right;padding: 0 3px 0 0;margin-right: 3px;}.ace_static_highlight.ace_show_gutter .ace_line {padding-left: 2.6em;}.ace_static_highlight .ace_line { position: relative; }.ace_static_highlight .ace_gutter-cell {-moz-user-select: -moz-none;-khtml-user-select: none;-webkit-user-select: none;user-select: none;top: 0;bottom: 0;left: 0;position: absolute;}.ace_static_highlight .ace_gutter-cell:before {content: counter(ace_line, decimal);counter-increment: ace_line;}.ace_static_highlight {counter-reset: ace_line;}\",o=e(\"../config\"),u=e(\"../lib/dom\"),a=function(){this.config={}};a.prototype=i.prototype;var f=function(e,t,n){var r=e.className.match(/lang-(\\w+)/),i=t.mode||r&&\"ace/mode/\"+r[1];if(!i)return!1;var s=t.theme||\"ace/theme/textmate\",o=\"\",a=[];if(e.firstElementChild){var l=0;for(var c=0;c<e.childNodes.length;c++){var h=e.childNodes[c];h.nodeType==3?(l+=h.data.length,o+=h.data):a.push(l,h)}}else o=u.getInnerText(e),t.trim&&(o=o.trim());f.render(o,i,s,t.firstLineNumber,!t.showGutter,function(t){u.importCssString(t.css,\"ace_highlight\"),e.innerHTML=t.html;var r=e.firstChild.firstChild;for(var i=0;i<a.length;i+=2){var s=t.session.doc.indexToPosition(a[i]),o=a[i+1],f=r.children[s.row];f&&f.appendChild(o)}n&&n()})};f.render=function(e,t,n,i,s,u){function h(){var r=f.renderSync(e,t,n,i,s);return u?u(r):r}var a=1,l=r.prototype.$modes;typeof n==\"string\"&&(a++,o.loadModule([\"theme\",n],function(e){n=e,--a||h()}));var c;return t&&typeof t==\"object\"&&!t.getTokenizer&&(c=t,t=c.path),typeof t==\"string\"&&(a++,o.loadModule([\"mode\",t],function(e){if(!l[t]||c)l[t]=new e.Mode(c);t=l[t],--a||h()})),--a||h()},f.renderSync=function(e,t,n,i,o){i=parseInt(i||1,10);var u=new r(\"\");u.setUseWorker(!1),u.setMode(t);var f=new a;f.setSession(u),u.setValue(e);var l=[],c=u.getLength();for(var h=0;h<c;h++)l.push(\"<div class='ace_line'>\"),o||l.push(\"<span class='ace_gutter ace_gutter-cell' unselectable='on'></span>\"),f.$renderLine(l,h,!0,!1),l.push(\"\\n</div>\");var p=\"<div class='\"+n.cssClass+\"'>\"+\"<div class='ace_static_highlight\"+(o?\"\":\" ace_show_gutter\")+\"' style='counter-reset:ace_line \"+(i-1)+\"'>\"+l.join(\"\")+\"</div>\"+\"</div>\";return f.destroy(),{css:s+n.cssText,html:p,session:u}},n.exports=f,n.exports.highlight=f});\n                (function() {\n                    ace.require([\"ace/ext/static_highlight\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict/ext-statusbar.js",
    "content": "ace.define(\"ace/ext/statusbar\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"ace/lib/dom\"),i=e(\"ace/lib/lang\"),s=function(e,t){this.element=r.createElement(\"div\"),this.element.className=\"ace_status-indicator\",this.element.style.cssText=\"display: inline-block;\",t.appendChild(this.element);var n=i.delayedCall(function(){this.updateStatus(e)}.bind(this)).schedule.bind(null,100);e.on(\"changeStatus\",n),e.on(\"changeSelection\",n),e.on(\"keyboardActivity\",n)};(function(){this.updateStatus=function(e){function n(e,n){e&&t.push(e,n||\"|\")}var t=[];n(e.keyBinding.getStatusText(e)),e.commands.recording&&n(\"REC\");var r=e.selection,i=r.lead;if(!r.isEmpty()){var s=e.getSelectionRange();n(\"(\"+(s.end.row-s.start.row)+\":\"+(s.end.column-s.start.column)+\")\",\" \")}n(i.row+\":\"+i.column,\" \"),r.rangeCount&&n(\"[\"+r.rangeCount+\"]\",\" \"),t.pop(),this.element.textContent=t.join(\"\")}}).call(s.prototype),t.StatusBar=s});\n                (function() {\n                    ace.require([\"ace/ext/statusbar\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict/ext-textarea.js",
    "content": "ace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";t.isDark=!1,t.cssClass=\"ace-tm\",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;}';var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)}),ace.define(\"ace/ext/textarea\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/net\",\"ace/ace\",\"ace/theme/textmate\"],function(e,t,n){\"use strict\";function a(e,t){for(var n in t)e.style[n]=t[n]}function f(e,t){if(e.type!=\"textarea\")throw new Error(\"Textarea required!\");var n=e.parentNode,i=document.createElement(\"div\"),s=function(){var t=\"position:relative;\";[\"margin-top\",\"margin-left\",\"margin-right\",\"margin-bottom\"].forEach(function(n){t+=n+\":\"+u(e,i,n)+\";\"});var n=u(e,i,\"width\")||e.clientWidth+\"px\",r=u(e,i,\"height\")||e.clientHeight+\"px\";t+=\"height:\"+r+\";width:\"+n+\";\",t+=\"display:inline-block;\",i.setAttribute(\"style\",t)};r.addListener(window,\"resize\",s),s(),n.insertBefore(i,e.nextSibling);while(n!==document){if(n.tagName.toUpperCase()===\"FORM\"){var o=n.onsubmit;n.onsubmit=function(n){e.value=t(),o&&o.call(this,n)};break}n=n.parentNode}return i}function l(t,n,r){s.loadScript(t,function(){e([n],r)})}function c(e,t,n,r,i,s){function a(e){return e===\"true\"||e==1}var o=e.getSession(),u=e.renderer;return s=s||l,e.setDisplaySettings=function(t){t==null&&(t=n.style.display==\"none\"),t?(n.style.display=\"block\",n.hideButton.focus(),e.on(\"focus\",function r(){e.removeListener(\"focus\",r),n.style.display=\"none\"})):e.focus()},e.$setOption=e.setOption,e.$getOption=e.getOption,e.setOption=function(t,n){switch(t){case\"mode\":e.$setOption(\"mode\",\"ace/mode/\"+n);break;case\"theme\":e.$setOption(\"theme\",\"ace/theme/\"+n);break;case\"keybindings\":switch(n){case\"vim\":e.setKeyboardHandler(\"ace/keyboard/vim\");break;case\"emacs\":e.setKeyboardHandler(\"ace/keyboard/emacs\");break;default:e.setKeyboardHandler(null)}break;case\"softWrap\":case\"fontSize\":e.$setOption(t,n);break;default:e.$setOption(t,a(n))}},e.getOption=function(t){switch(t){case\"mode\":return e.$getOption(\"mode\").substr(\"ace/mode/\".length);case\"theme\":return e.$getOption(\"theme\").substr(\"ace/theme/\".length);case\"keybindings\":var n=e.getKeyboardHandler();switch(n&&n.$id){case\"ace/keyboard/vim\":return\"vim\";case\"ace/keyboard/emacs\":return\"emacs\";default:return\"ace\"}break;default:return e.$getOption(t)}},e.setOptions(i),e}function h(e,n,i){function f(e,t,n,r){if(!n){e.push(\"<input type='checkbox' title='\",t,\"' \",r+\"\"==\"true\"?\"checked='true'\":\"\",\"'></input>\");return}e.push(\"<select title='\"+t+\"'>\");for(var i in n)e.push(\"<option value='\"+i+\"' \"),r==i&&e.push(\" selected \"),e.push(\">\",n[i],\"</option>\");e.push(\"</select>\")}var s=null,o={mode:\"Mode:\",wrap:\"Soft Wrap:\",theme:\"Theme:\",fontSize:\"Font Size:\",showGutter:\"Display Gutter:\",keybindings:\"Keyboard\",showPrintMargin:\"Show Print Margin:\",useSoftTabs:\"Use Soft Tabs:\",showInvisibles:\"Show Invisibles\"},u={mode:{text:\"Plain\",javascript:\"JavaScript\",xml:\"XML\",html:\"HTML\",css:\"CSS\",scss:\"SCSS\",python:\"Python\",php:\"PHP\",java:\"Java\",ruby:\"Ruby\",c_cpp:\"C/C++\",coffee:\"CoffeeScript\",json:\"json\",perl:\"Perl\",clojure:\"Clojure\",ocaml:\"OCaml\",csharp:\"C#\",haxe:\"haXe\",svg:\"SVG\",textile:\"Textile\",groovy:\"Groovy\",liquid:\"Liquid\",Scala:\"Scala\"},theme:{clouds:\"Clouds\",clouds_midnight:\"Clouds Midnight\",cobalt:\"Cobalt\",crimson_editor:\"Crimson Editor\",dawn:\"Dawn\",eclipse:\"Eclipse\",idle_fingers:\"Idle Fingers\",kr_theme:\"Kr Theme\",merbivore:\"Merbivore\",merbivore_soft:\"Merbivore Soft\",mono_industrial:\"Mono Industrial\",monokai:\"Monokai\",pastel_on_dark:\"Pastel On Dark\",solarized_dark:\"Solarized Dark\",solarized_light:\"Solarized Light\",textmate:\"Textmate\",twilight:\"Twilight\",vibrant_ink:\"Vibrant Ink\"},showGutter:s,fontSize:{\"10px\":\"10px\",\"11px\":\"11px\",\"12px\":\"12px\",\"14px\":\"14px\",\"16px\":\"16px\"},wrap:{off:\"Off\",40:\"40\",80:\"80\",free:\"Free\"},keybindings:{ace:\"ace\",vim:\"vim\",emacs:\"emacs\"},showPrintMargin:s,useSoftTabs:s,showInvisibles:s},a=[];a.push(\"<table><tr><th>Setting</th><th>Value</th></tr>\");for(var l in t.defaultOptions)a.push(\"<tr><td>\",o[l],\"</td>\"),a.push(\"<td>\"),f(a,l,u[l],i.getOption(l)),a.push(\"</td></tr>\");a.push(\"</table>\"),e.innerHTML=a.join(\"\");var c=function(e){var t=e.currentTarget;i.setOption(t.title,t.value)},h=function(e){var t=e.currentTarget;i.setOption(t.title,t.checked)},p=e.getElementsByTagName(\"select\");for(var d=0;d<p.length;d++)p[d].onchange=c;var v=e.getElementsByTagName(\"input\");for(var d=0;d<v.length;d++)v[d].onclick=h;var m=document.createElement(\"input\");m.type=\"button\",m.value=\"Hide\",r.addListener(m,\"click\",function(){i.setDisplaySettings(!1)}),e.appendChild(m),e.hideButton=m}var r=e(\"../lib/event\"),i=e(\"../lib/useragent\"),s=e(\"../lib/net\"),o=e(\"../ace\");e(\"../theme/textmate\"),n.exports=t=o;var u=function(e,t,n){var r=e.style[n];r||(window.getComputedStyle?r=window.getComputedStyle(e,\"\").getPropertyValue(n):r=e.currentStyle[n]);if(!r||r==\"auto\"||r==\"intrinsic\")r=t.style[n];return r};t.transformTextarea=function(e,n){var s,u=f(e,function(){return s.getValue()});e.style.display=\"none\",u.style.background=\"white\";var p=document.createElement(\"div\");a(p,{top:\"0px\",left:\"0px\",right:\"0px\",bottom:\"0px\",border:\"1px solid gray\",position:\"absolute\"}),u.appendChild(p);var d=document.createElement(\"div\");a(d,{position:\"absolute\",right:\"0px\",bottom:\"0px\",background:\"red\",cursor:\"nw-resize\",borderStyle:\"solid\",borderWidth:\"9px 8px 10px 9px\",width:\"2px\",borderColor:\"lightblue gray gray lightblue\",zIndex:101});var v=document.createElement(\"div\"),m={top:\"0px\",left:\"20%\",right:\"0px\",bottom:\"0px\",position:\"absolute\",padding:\"5px\",zIndex:100,color:\"white\",display:\"none\",overflow:\"auto\",fontSize:\"14px\",boxShadow:\"-5px 2px 3px gray\"};i.isOldIE?m.backgroundColor=\"#333\":m.backgroundColor=\"rgba(0, 0, 0, 0.6)\",a(v,m),u.appendChild(v),n=n||t.defaultOptions;var g=o.edit(p);s=g.getSession(),s.setValue(e.value||e.innerHTML),g.focus(),u.appendChild(d),c(g,p,v,o,n,l),h(v,d,g);var y=\"\";return r.addListener(d,\"mousemove\",function(e){var t=this.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;n+r<(t.width+t.height)/2?(this.style.cursor=\"pointer\",y=\"toggle\"):(y=\"resize\",this.style.cursor=\"nw-resize\")}),r.addListener(d,\"mousedown\",function(e){if(y==\"toggle\"){g.setDisplaySettings();return}u.style.zIndex=1e5;var t=u.getBoundingClientRect(),n=t.width+t.left-e.clientX,i=t.height+t.top-e.clientY;r.capture(d,function(e){u.style.width=e.clientX-t.left+n+\"px\",u.style.height=e.clientY-t.top+i+\"px\",g.resize()},function(){})}),g},t.defaultOptions={mode:\"javascript\",theme:\"textmate\",wrap:\"off\",fontSize:\"12px\",showGutter:\"false\",keybindings:\"ace\",showPrintMargin:\"false\",useSoftTabs:\"true\",showInvisibles:\"false\"}});\n                (function() {\n                    ace.require([\"ace/ext/textarea\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict/ext-themelist.js",
    "content": "ace.define(\"ace/ext/themelist\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\"],function(e,t,n){\"use strict\";e(\"ace/lib/fixoldbrowsers\");var r=[[\"Chrome\"],[\"Clouds\"],[\"Crimson Editor\"],[\"Dawn\"],[\"Dreamweaver\"],[\"Eclipse\"],[\"GitHub\"],[\"IPlastic\"],[\"Solarized Light\"],[\"TextMate\"],[\"Tomorrow\"],[\"XCode\"],[\"Kuroir\"],[\"KatzenMilch\"],[\"SQL Server\",\"sqlserver\",\"light\"],[\"Ambiance\",\"ambiance\",\"dark\"],[\"Chaos\",\"chaos\",\"dark\"],[\"Clouds Midnight\",\"clouds_midnight\",\"dark\"],[\"Cobalt\",\"cobalt\",\"dark\"],[\"Gruvbox\",\"gruvbox\",\"dark\"],[\"idle Fingers\",\"idle_fingers\",\"dark\"],[\"krTheme\",\"kr_theme\",\"dark\"],[\"Merbivore\",\"merbivore\",\"dark\"],[\"Merbivore Soft\",\"merbivore_soft\",\"dark\"],[\"Mono Industrial\",\"mono_industrial\",\"dark\"],[\"Monokai\",\"monokai\",\"dark\"],[\"Pastel on dark\",\"pastel_on_dark\",\"dark\"],[\"Solarized Dark\",\"solarized_dark\",\"dark\"],[\"Terminal\",\"terminal\",\"dark\"],[\"Tomorrow Night\",\"tomorrow_night\",\"dark\"],[\"Tomorrow Night Blue\",\"tomorrow_night_blue\",\"dark\"],[\"Tomorrow Night Bright\",\"tomorrow_night_bright\",\"dark\"],[\"Tomorrow Night 80s\",\"tomorrow_night_eighties\",\"dark\"],[\"Twilight\",\"twilight\",\"dark\"],[\"Vibrant Ink\",\"vibrant_ink\",\"dark\"]];t.themesByName={},t.themes=r.map(function(e){var n=e[1]||e[0].replace(/ /g,\"_\").toLowerCase(),r={caption:e[0],theme:\"ace/theme/\"+n,isDark:e[2]==\"dark\",name:n};return t.themesByName[n]=r,r})});\n                (function() {\n                    ace.require([\"ace/ext/themelist\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict/ext-whitespace.js",
    "content": "ace.define(\"ace/ext/whitespace\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../lib/lang\");t.$detectIndentation=function(e,t){function c(e){var t=0;for(var r=e;r<n.length;r+=e)t+=n[r]||0;return t}var n=[],r=[],i=0,s=0,o=Math.min(e.length,1e3);for(var u=0;u<o;u++){var a=e[u];if(!/^\\s*[^*+\\-\\s]/.test(a))continue;if(a[0]==\"\t\")i++,s=-Number.MAX_VALUE;else{var f=a.match(/^ */)[0].length;if(f&&a[f]!=\"\t\"){var l=f-s;l>0&&!(s%l)&&!(f%l)&&(r[l]=(r[l]||0)+1),n[f]=(n[f]||0)+1}s=f}while(u<o&&a[a.length-1]==\"\\\\\")a=e[u++]}var h=r.reduce(function(e,t){return e+t},0),p={score:0,length:0},d=0;for(var u=1;u<12;u++){var v=c(u);u==1?(d=v,v=n[1]?.9:.8,n.length||(v=0)):v/=d,r[u]&&(v+=r[u]/h),v>p.score&&(p={score:v,length:u})}if(p.score&&p.score>1.4)var m=p.length;if(i>d+1){if(m==1||d<i/4||p.score<1.8)m=undefined;return{ch:\"\t\",length:m}}if(d>i+1)return{ch:\" \",length:m}},t.detectIndentation=function(e){var n=e.getLines(0,1e3),r=t.$detectIndentation(n)||{};return r.ch&&e.setUseSoftTabs(r.ch==\" \"),r.length&&e.setTabSize(r.length),r},t.trimTrailingSpace=function(e,t){var n=e.getDocument(),r=n.getAllLines(),i=t?-1:0;for(var s=0,o=r.length;s<o;s++){var u=r[s],a=u.search(/\\s+$/);a>i&&n.removeInLine(s,a,u.length)}},t.convertIndentation=function(e,t,n){var i=e.getTabString()[0],s=e.getTabSize();n||(n=s),t||(t=i);var o=t==\"\t\"?t:r.stringRepeat(t,n),u=e.doc,a=u.getAllLines(),f={},l={};for(var c=0,h=a.length;c<h;c++){var p=a[c],d=p.match(/^\\s*/)[0];if(d){var v=e.$getStringScreenWidth(d)[0],m=Math.floor(v/s),g=v%s,y=f[m]||(f[m]=r.stringRepeat(o,m));y+=l[g]||(l[g]=r.stringRepeat(\" \",g)),y!=d&&(u.removeInLine(c,0,d.length),u.insertInLine({row:c,column:0},y))}}e.setTabSize(n),e.setUseSoftTabs(t==\" \")},t.$parseStringArg=function(e){var t={};/t/.test(e)?t.ch=\"\t\":/s/.test(e)&&(t.ch=\" \");var n=e.match(/\\d+/);return n&&(t.length=parseInt(n[0],10)),t},t.$parseArg=function(e){return e?typeof e==\"string\"?t.$parseStringArg(e):typeof e.text==\"string\"?t.$parseStringArg(e.text):e:{}},t.commands=[{name:\"detectIndentation\",exec:function(e){t.detectIndentation(e.session)}},{name:\"trimTrailingSpace\",exec:function(e){t.trimTrailingSpace(e.session)}},{name:\"convertIndentation\",exec:function(e,n){var r=t.$parseArg(n);t.convertIndentation(e.session,r.ch,r.length)}},{name:\"setIndentation\",exec:function(e,n){var r=t.$parseArg(n);r.length&&e.session.setTabSize(r.length),r.ch&&e.session.setUseSoftTabs(r.ch==\" \")}}]});\n                (function() {\n                    ace.require([\"ace/ext/whitespace\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict/keybinding-emacs.js",
    "content": "ace.define(\"ace/occur\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/search\",\"ace/edit_session\",\"ace/search_highlight\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";function a(){}var r=e(\"./lib/oop\"),i=e(\"./range\").Range,s=e(\"./search\").Search,o=e(\"./edit_session\").EditSession,u=e(\"./search_highlight\").SearchHighlight;r.inherits(a,s),function(){this.enter=function(e,t){if(!t.needle)return!1;var n=e.getCursorPosition();this.displayOccurContent(e,t);var r=this.originalToOccurPosition(e.session,n);return e.moveCursorToPosition(r),!0},this.exit=function(e,t){var n=t.translatePosition&&e.getCursorPosition(),r=n&&this.occurToOriginalPosition(e.session,n);return this.displayOriginalContent(e),r&&e.moveCursorToPosition(r),!0},this.highlight=function(e,t){var n=e.$occurHighlight=e.$occurHighlight||e.addDynamicMarker(new u(null,\"ace_occur-highlight\",\"text\"));n.setRegexp(t),e._emit(\"changeBackMarker\")},this.displayOccurContent=function(e,t){this.$originalSession=e.session;var n=this.matchingLines(e.session,t),r=n.map(function(e){return e.content}),i=new o(r.join(\"\\n\"));i.$occur=this,i.$occurMatchingLines=n,e.setSession(i),this.$useEmacsStyleLineStart=this.$originalSession.$useEmacsStyleLineStart,i.$useEmacsStyleLineStart=this.$useEmacsStyleLineStart,this.highlight(i,t.re),i._emit(\"changeBackMarker\")},this.displayOriginalContent=function(e){e.setSession(this.$originalSession),this.$originalSession.$useEmacsStyleLineStart=this.$useEmacsStyleLineStart},this.originalToOccurPosition=function(e,t){var n=e.$occurMatchingLines,r={row:0,column:0};if(!n)return r;for(var i=0;i<n.length;i++)if(n[i].row===t.row)return{row:i,column:t.column};return r},this.occurToOriginalPosition=function(e,t){var n=e.$occurMatchingLines;return!n||!n[t.row]?t:{row:n[t.row].row,column:t.column}},this.matchingLines=function(e,t){t=r.mixin({},t);if(!e||!t.needle)return[];var n=new s;return n.set(t),n.findAll(e).reduce(function(t,n){var r=n.start.row,i=t[t.length-1];return i&&i.row===r?t:t.concat({row:r,content:e.getLine(r)})},[])}}.call(a.prototype);var f=e(\"./lib/dom\");f.importCssString(\".ace_occur-highlight {\\n    border-radius: 4px;\\n    background-color: rgba(87, 255, 8, 0.25);\\n    position: absolute;\\n    z-index: 4;\\n    -moz-box-sizing: border-box;\\n    -webkit-box-sizing: border-box;\\n    box-sizing: border-box;\\n    box-shadow: 0 0 4px rgb(91, 255, 50);\\n}\\n.ace_dark .ace_occur-highlight {\\n    background-color: rgb(80, 140, 85);\\n    box-shadow: 0 0 4px rgb(60, 120, 70);\\n}\\n\",\"incremental-occur-highlighting\"),t.Occur=a}),ace.define(\"ace/commands/occur_commands\",[\"require\",\"exports\",\"module\",\"ace/config\",\"ace/occur\",\"ace/keyboard/hash_handler\",\"ace/lib/oop\"],function(e,t,n){function f(){}var r=e(\"../config\"),i=e(\"../occur\").Occur,s={name:\"occur\",exec:function(e,t){var n=!!e.session.$occur,r=(new i).enter(e,t);r&&!n&&f.installIn(e)},readOnly:!0},o=[{name:\"occurexit\",bindKey:\"esc|Ctrl-G\",exec:function(e){var t=e.session.$occur;if(!t)return;t.exit(e,{}),e.session.$occur||f.uninstallFrom(e)},readOnly:!0},{name:\"occuraccept\",bindKey:\"enter\",exec:function(e){var t=e.session.$occur;if(!t)return;t.exit(e,{translatePosition:!0}),e.session.$occur||f.uninstallFrom(e)},readOnly:!0}],u=e(\"../keyboard/hash_handler\").HashHandler,a=e(\"../lib/oop\");a.inherits(f,u),function(){this.isOccurHandler=!0,this.attach=function(e){u.call(this,o,e.commands.platform),this.$editor=e};var e=this.handleKeyboard;this.handleKeyboard=function(t,n,r,i){var s=e.call(this,t,n,r,i);return s&&s.command?s:undefined}}.call(f.prototype),f.installIn=function(e){var t=new this;e.keyBinding.addKeyboardHandler(t),e.commands.addCommands(o)},f.uninstallFrom=function(e){e.commands.removeCommands(o);var t=e.getKeyboardHandler();t.isOccurHandler&&e.keyBinding.removeKeyboardHandler(t)},t.occurStartCommand=s}),ace.define(\"ace/commands/incremental_search_commands\",[\"require\",\"exports\",\"module\",\"ace/config\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/commands/occur_commands\"],function(e,t,n){function u(e){this.$iSearch=e}var r=e(\"../config\"),i=e(\"../lib/oop\"),s=e(\"../keyboard/hash_handler\").HashHandler,o=e(\"./occur_commands\").occurStartCommand;t.iSearchStartCommands=[{name:\"iSearch\",bindKey:{win:\"Ctrl-F\",mac:\"Command-F\"},exec:function(e,t){r.loadModule([\"core\",\"ace/incremental_search\"],function(n){var r=n.iSearch=n.iSearch||new n.IncrementalSearch;r.activate(e,t.backwards),t.jumpToFirstMatch&&r.next(t)})},readOnly:!0},{name:\"iSearchBackwards\",exec:function(e,t){e.execCommand(\"iSearch\",{backwards:!0})},readOnly:!0},{name:\"iSearchAndGo\",bindKey:{win:\"Ctrl-K\",mac:\"Command-G\"},exec:function(e,t){e.execCommand(\"iSearch\",{jumpToFirstMatch:!0,useCurrentOrPrevSearch:!0})},readOnly:!0},{name:\"iSearchBackwardsAndGo\",bindKey:{win:\"Ctrl-Shift-K\",mac:\"Command-Shift-G\"},exec:function(e){e.execCommand(\"iSearch\",{jumpToFirstMatch:!0,backwards:!0,useCurrentOrPrevSearch:!0})},readOnly:!0}],t.iSearchCommands=[{name:\"restartSearch\",bindKey:{win:\"Ctrl-F\",mac:\"Command-F\"},exec:function(e){e.cancelSearch(!0)}},{name:\"searchForward\",bindKey:{win:\"Ctrl-S|Ctrl-K\",mac:\"Ctrl-S|Command-G\"},exec:function(e,t){t.useCurrentOrPrevSearch=!0,e.next(t)}},{name:\"searchBackward\",bindKey:{win:\"Ctrl-R|Ctrl-Shift-K\",mac:\"Ctrl-R|Command-Shift-G\"},exec:function(e,t){t.useCurrentOrPrevSearch=!0,t.backwards=!0,e.next(t)}},{name:\"extendSearchTerm\",exec:function(e,t){e.addString(t)}},{name:\"extendSearchTermSpace\",bindKey:\"space\",exec:function(e){e.addString(\" \")}},{name:\"shrinkSearchTerm\",bindKey:\"backspace\",exec:function(e){e.removeChar()}},{name:\"confirmSearch\",bindKey:\"return\",exec:function(e){e.deactivate()}},{name:\"cancelSearch\",bindKey:\"esc|Ctrl-G\",exec:function(e){e.deactivate(!0)}},{name:\"occurisearch\",bindKey:\"Ctrl-O\",exec:function(e){var t=i.mixin({},e.$options);e.deactivate(),o.exec(e.$editor,t)}},{name:\"yankNextWord\",bindKey:\"Ctrl-w\",exec:function(e){var t=e.$editor,n=t.selection.getRangeOfMovements(function(e){e.moveCursorWordRight()}),r=t.session.getTextRange(n);e.addString(r)}},{name:\"yankNextChar\",bindKey:\"Ctrl-Alt-y\",exec:function(e){var t=e.$editor,n=t.selection.getRangeOfMovements(function(e){e.moveCursorRight()}),r=t.session.getTextRange(n);e.addString(r)}},{name:\"recenterTopBottom\",bindKey:\"Ctrl-l\",exec:function(e){e.$editor.execCommand(\"recenterTopBottom\")}},{name:\"selectAllMatches\",bindKey:\"Ctrl-space\",exec:function(e){var t=e.$editor,n=t.session.$isearchHighlight,r=n&&n.cache?n.cache.reduce(function(e,t){return e.concat(t?t:[])},[]):[];e.deactivate(!1),r.forEach(t.selection.addRange.bind(t.selection))}},{name:\"searchAsRegExp\",bindKey:\"Alt-r\",exec:function(e){e.convertNeedleToRegExp()}}].map(function(e){return e.readOnly=!0,e.isIncrementalSearchCommand=!0,e.scrollIntoView=\"animate-cursor\",e}),i.inherits(u,s),function(){this.attach=function(e){var n=this.$iSearch;s.call(this,t.iSearchCommands,e.commands.platform),this.$commandExecHandler=e.commands.addEventListener(\"exec\",function(t){if(!t.command.isIncrementalSearchCommand)return n.deactivate();t.stopPropagation(),t.preventDefault();var r=e.session.getScrollTop(),i=t.command.exec(n,t.args||{});return e.renderer.scrollCursorIntoView(null,.5),e.renderer.animateScrolling(r),i})},this.detach=function(e){if(!this.$commandExecHandler)return;e.commands.removeEventListener(\"exec\",this.$commandExecHandler),delete this.$commandExecHandler};var e=this.handleKeyboard;this.handleKeyboard=function(t,n,r,i){if((n===1||n===8)&&r===\"v\"||n===1&&r===\"y\")return null;var s=e.call(this,t,n,r,i);if(s.command)return s;if(n==-1){var o=this.commands.extendSearchTerm;if(o)return{command:o,args:r}}return!1}}.call(u.prototype),t.IncrementalSearchKeyboardHandler=u}),ace.define(\"ace/incremental_search\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/search\",\"ace/search_highlight\",\"ace/commands/incremental_search_commands\",\"ace/lib/dom\",\"ace/commands/command_manager\",\"ace/editor\",\"ace/config\"],function(e,t,n){\"use strict\";function f(){this.$options={wrap:!1,skipCurrent:!1},this.$keyboardHandler=new a(this)}function l(e){return e instanceof RegExp}function c(e){var t=String(e),n=t.indexOf(\"/\"),r=t.lastIndexOf(\"/\");return{expression:t.slice(n+1,r),flags:t.slice(r+1)}}function h(e,t){try{return new RegExp(e,t)}catch(n){return e}}function p(e){return h(e.expression,e.flags)}var r=e(\"./lib/oop\"),i=e(\"./range\").Range,s=e(\"./search\").Search,o=e(\"./search_highlight\").SearchHighlight,u=e(\"./commands/incremental_search_commands\"),a=u.IncrementalSearchKeyboardHandler;r.inherits(f,s),function(){this.activate=function(e,t){this.$editor=e,this.$startPos=this.$currentPos=e.getCursorPosition(),this.$options.needle=\"\",this.$options.backwards=t,e.keyBinding.addKeyboardHandler(this.$keyboardHandler),this.$originalEditorOnPaste=e.onPaste,e.onPaste=this.onPaste.bind(this),this.$mousedownHandler=e.addEventListener(\"mousedown\",this.onMouseDown.bind(this)),this.selectionFix(e),this.statusMessage(!0)},this.deactivate=function(e){this.cancelSearch(e);var t=this.$editor;t.keyBinding.removeKeyboardHandler(this.$keyboardHandler),this.$mousedownHandler&&(t.removeEventListener(\"mousedown\",this.$mousedownHandler),delete this.$mousedownHandler),t.onPaste=this.$originalEditorOnPaste,this.message(\"\")},this.selectionFix=function(e){e.selection.isEmpty()&&!e.session.$emacsMark&&e.clearSelection()},this.highlight=function(e){var t=this.$editor.session,n=t.$isearchHighlight=t.$isearchHighlight||t.addDynamicMarker(new o(null,\"ace_isearch-result\",\"text\"));n.setRegexp(e),t._emit(\"changeBackMarker\")},this.cancelSearch=function(e){var t=this.$editor;return this.$prevNeedle=this.$options.needle,this.$options.needle=\"\",e?(t.moveCursorToPosition(this.$startPos),this.$currentPos=this.$startPos):t.pushEmacsMark&&t.pushEmacsMark(this.$startPos,!1),this.highlight(null),i.fromPoints(this.$currentPos,this.$currentPos)},this.highlightAndFindWithNeedle=function(e,t){if(!this.$editor)return null;var n=this.$options;t&&(n.needle=t.call(this,n.needle||\"\")||\"\");if(n.needle.length===0)return this.statusMessage(!0),this.cancelSearch(!0);n.start=this.$currentPos;var r=this.$editor.session,s=this.find(r),o=this.$editor.emacsMark?!!this.$editor.emacsMark():!this.$editor.selection.isEmpty();return s&&(n.backwards&&(s=i.fromPoints(s.end,s.start)),this.$editor.selection.setRange(i.fromPoints(o?this.$startPos:s.end,s.end)),e&&(this.$currentPos=s.end),this.highlight(n.re)),this.statusMessage(s),s},this.addString=function(e){return this.highlightAndFindWithNeedle(!1,function(t){if(!l(t))return t+e;var n=c(t);return n.expression+=e,p(n)})},this.removeChar=function(e){return this.highlightAndFindWithNeedle(!1,function(e){if(!l(e))return e.substring(0,e.length-1);var t=c(e);return t.expression=t.expression.substring(0,t.expression.length-1),p(t)})},this.next=function(e){return e=e||{},this.$options.backwards=!!e.backwards,this.$currentPos=this.$editor.getCursorPosition(),this.highlightAndFindWithNeedle(!0,function(t){return e.useCurrentOrPrevSearch&&t.length===0?this.$prevNeedle||\"\":t})},this.onMouseDown=function(e){return this.deactivate(),!0},this.onPaste=function(e){this.addString(e)},this.convertNeedleToRegExp=function(){return this.highlightAndFindWithNeedle(!1,function(e){return l(e)?e:h(e,\"ig\")})},this.convertNeedleToString=function(){return this.highlightAndFindWithNeedle(!1,function(e){return l(e)?c(e).expression:e})},this.statusMessage=function(e){var t=this.$options,n=\"\";n+=t.backwards?\"reverse-\":\"\",n+=\"isearch: \"+t.needle,n+=e?\"\":\" (not found)\",this.message(n)},this.message=function(e){this.$editor.showCommandLine?(this.$editor.showCommandLine(e),this.$editor.focus()):console.log(e)}}.call(f.prototype),t.IncrementalSearch=f;var d=e(\"./lib/dom\");d.importCssString&&d.importCssString(\".ace_marker-layer .ace_isearch-result {  position: absolute;  z-index: 6;  -moz-box-sizing: border-box;  -webkit-box-sizing: border-box;  box-sizing: border-box;}div.ace_isearch-result {  border-radius: 4px;  background-color: rgba(255, 200, 0, 0.5);  box-shadow: 0 0 4px rgb(255, 200, 0);}.ace_dark div.ace_isearch-result {  background-color: rgb(100, 110, 160);  box-shadow: 0 0 4px rgb(80, 90, 140);}\",\"incremental-search-highlighting\");var v=e(\"./commands/command_manager\");(function(){this.setupIncrementalSearch=function(e,t){if(this.usesIncrementalSearch==t)return;this.usesIncrementalSearch=t;var n=u.iSearchStartCommands,r=t?\"addCommands\":\"removeCommands\";this[r](n)}}).call(v.CommandManager.prototype);var m=e(\"./editor\").Editor;e(\"./config\").defineOptions(m.prototype,\"editor\",{useIncrementalSearch:{set:function(e){this.keyBinding.$handlers.forEach(function(t){t.setupIncrementalSearch&&t.setupIncrementalSearch(this,e)}),this._emit(\"incrementalSearchSettingChanged\",{isEnabled:e})}}})}),ace.define(\"ace/keyboard/emacs\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/incremental_search\",\"ace/commands/incremental_search_commands\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\"],function(e,t,n){\"use strict\";var r=e(\"../lib/dom\");e(\"../incremental_search\");var i=e(\"../commands/incremental_search_commands\"),s=function(e,t){var n=this.scroller.getBoundingClientRect(),r=Math.floor((e+this.scrollLeft-n.left-this.$padding)/this.characterWidth),i=Math.floor((t+this.scrollTop-n.top)/this.lineHeight);return this.session.screenToDocumentPosition(i,r)},o=e(\"./hash_handler\").HashHandler;t.handler=new o,t.handler.isEmacs=!0,t.handler.$id=\"ace/keyboard/emacs\";var u=!1,a,f;t.handler.attach=function(e){u||(u=!0,r.importCssString(\"            .emacs-mode .ace_cursor{                border: 1px rgba(50,250,50,0.8) solid!important;                -moz-box-sizing: border-box!important;                -webkit-box-sizing: border-box!important;                box-sizing: border-box!important;                background-color: rgba(0,250,0,0.9);                opacity: 0.5;            }            .emacs-mode .ace_hidden-cursors .ace_cursor{                opacity: 1;                background-color: transparent;            }            .emacs-mode .ace_overwrite-cursors .ace_cursor {                opacity: 1;                background-color: transparent;                border-width: 0 0 2px 2px !important;            }            .emacs-mode .ace_text-layer {                z-index: 4            }            .emacs-mode .ace_cursor-layer {                z-index: 2            }\",\"emacsMode\")),a=e.session.$selectLongWords,e.session.$selectLongWords=!0,f=e.session.$useEmacsStyleLineStart,e.session.$useEmacsStyleLineStart=!0,e.session.$emacsMark=null,e.session.$emacsMarkRing=e.session.$emacsMarkRing||[],e.emacsMark=function(){return this.session.$emacsMark},e.setEmacsMark=function(e){this.session.$emacsMark=e},e.pushEmacsMark=function(e,t){var n=this.session.$emacsMark;n&&this.session.$emacsMarkRing.push(n),!e||t?this.setEmacsMark(e):this.session.$emacsMarkRing.push(e)},e.popEmacsMark=function(){var e=this.emacsMark();return e?(this.setEmacsMark(null),e):this.session.$emacsMarkRing.pop()},e.getLastEmacsMark=function(e){return this.session.$emacsMark||this.session.$emacsMarkRing.slice(-1)[0]},e.emacsMarkForSelection=function(e){var t=this.selection,n=this.multiSelect?this.multiSelect.getAllRanges().length:1,r=t.index||0,i=this.session.$emacsMarkRing,s=i.length-(n-r),o=i[s]||t.anchor;return e&&i.splice(s,1,\"row\"in e&&\"column\"in e?e:undefined),o},e.on(\"click\",c),e.on(\"changeSession\",l),e.renderer.screenToTextCoordinates=s,e.setStyle(\"emacs-mode\"),e.commands.addCommands(v),t.handler.platform=e.commands.platform,e.$emacsModeHandler=this,e.addEventListener(\"copy\",this.onCopy),e.addEventListener(\"paste\",this.onPaste)},t.handler.detach=function(e){delete e.renderer.screenToTextCoordinates,e.session.$selectLongWords=a,e.session.$useEmacsStyleLineStart=f,e.removeEventListener(\"click\",c),e.removeEventListener(\"changeSession\",l),e.unsetStyle(\"emacs-mode\"),e.commands.removeCommands(v),e.removeEventListener(\"copy\",this.onCopy),e.removeEventListener(\"paste\",this.onPaste),e.$emacsModeHandler=null};var l=function(e){e.oldSession&&(e.oldSession.$selectLongWords=a,e.oldSession.$useEmacsStyleLineStart=f),a=e.session.$selectLongWords,e.session.$selectLongWords=!0,f=e.session.$useEmacsStyleLineStart,e.session.$useEmacsStyleLineStart=!0,e.session.hasOwnProperty(\"$emacsMark\")||(e.session.$emacsMark=null),e.session.hasOwnProperty(\"$emacsMarkRing\")||(e.session.$emacsMarkRing=[])},c=function(e){e.editor.session.$emacsMark=null},h=e(\"../lib/keys\").KEY_MODS,p={C:\"ctrl\",S:\"shift\",M:\"alt\",CMD:\"command\"},d=[\"C-S-M-CMD\",\"S-M-CMD\",\"C-M-CMD\",\"C-S-CMD\",\"C-S-M\",\"M-CMD\",\"S-CMD\",\"S-M\",\"C-CMD\",\"C-M\",\"C-S\",\"CMD\",\"M\",\"S\",\"C\"];d.forEach(function(e){var t=0;e.split(\"-\").forEach(function(e){t|=h[p[e]]}),p[t]=e.toLowerCase()+\"-\"}),t.handler.onCopy=function(e,n){if(n.$handlesEmacsOnCopy)return;n.$handlesEmacsOnCopy=!0,t.handler.commands.killRingSave.exec(n),n.$handlesEmacsOnCopy=!1},t.handler.onPaste=function(e,t){t.pushEmacsMark(t.getCursorPosition())},t.handler.bindKey=function(e,t){typeof e==\"object\"&&(e=e[this.platform]);if(!e)return;var n=this.commandKeyBinding;e.split(\"|\").forEach(function(e){e=e.toLowerCase(),n[e]=t;var r=e.split(\" \").slice(0,-1);r.reduce(function(e,t,n){var r=e[n-1]?e[n-1]+\" \":\"\";return e.concat([r+t])},[]).forEach(function(e){n[e]||(n[e]=\"null\")})},this)},t.handler.getStatusText=function(e,t){var n=\"\";return t.count&&(n+=t.count),t.keyChain&&(n+=\" \"+t.keyChain),n},t.handler.handleKeyboard=function(e,t,n,r){if(r===-1)return undefined;var i=e.editor;i._signal(\"changeStatus\");if(t==-1){i.pushEmacsMark();if(e.count){var s=(new Array(e.count+1)).join(n);return e.count=null,{command:\"insertstring\",args:s}}}var o=p[t];if(o==\"c-\"||e.count){var u=parseInt(n[n.length-1]);if(typeof u==\"number\"&&!isNaN(u))return e.count=Math.max(e.count,0)||0,e.count=10*e.count+u,{command:\"null\"}}o&&(n=o+n),e.keyChain&&(n=e.keyChain+=\" \"+n);var a=this.commandKeyBinding[n];e.keyChain=a==\"null\"?n:\"\";if(!a)return undefined;if(a===\"null\")return{command:\"null\"};if(a===\"universalArgument\")return e.count=-4,{command:\"null\"};var f;typeof a!=\"string\"&&(f=a.args,a.command&&(a=a.command),a===\"goorselect\"&&(a=i.emacsMark()?f[1]:f[0],f=null));if(typeof a==\"string\"){(a===\"insertstring\"||a===\"splitline\"||a===\"togglecomment\")&&i.pushEmacsMark(),a=this.commands[a]||i.commands.commands[a];if(!a)return undefined}!a.readOnly&&!a.isYank&&(e.lastCommand=null),!a.readOnly&&i.emacsMark()&&i.setEmacsMark(null);if(e.count){var u=e.count;e.count=0;if(!a||!a.handlesCount)return{args:f,command:{exec:function(e,t){for(var n=0;n<u;n++)a.exec(e,t)},multiSelectAction:a.multiSelectAction}};f||(f={}),typeof f==\"object\"&&(f.count=u)}return{command:a,args:f}},t.emacsKeys={\"Up|C-p\":{command:\"goorselect\",args:[\"golineup\",\"selectup\"]},\"Down|C-n\":{command:\"goorselect\",args:[\"golinedown\",\"selectdown\"]},\"Left|C-b\":{command:\"goorselect\",args:[\"gotoleft\",\"selectleft\"]},\"Right|C-f\":{command:\"goorselect\",args:[\"gotoright\",\"selectright\"]},\"C-Left|M-b\":{command:\"goorselect\",args:[\"gotowordleft\",\"selectwordleft\"]},\"C-Right|M-f\":{command:\"goorselect\",args:[\"gotowordright\",\"selectwordright\"]},\"Home|C-a\":{command:\"goorselect\",args:[\"gotolinestart\",\"selecttolinestart\"]},\"End|C-e\":{command:\"goorselect\",args:[\"gotolineend\",\"selecttolineend\"]},\"C-Home|S-M-,\":{command:\"goorselect\",args:[\"gotostart\",\"selecttostart\"]},\"C-End|S-M-.\":{command:\"goorselect\",args:[\"gotoend\",\"selecttoend\"]},\"S-Up|S-C-p\":\"selectup\",\"S-Down|S-C-n\":\"selectdown\",\"S-Left|S-C-b\":\"selectleft\",\"S-Right|S-C-f\":\"selectright\",\"S-C-Left|S-M-b\":\"selectwordleft\",\"S-C-Right|S-M-f\":\"selectwordright\",\"S-Home|S-C-a\":\"selecttolinestart\",\"S-End|S-C-e\":\"selecttolineend\",\"S-C-Home\":\"selecttostart\",\"S-C-End\":\"selecttoend\",\"C-l\":\"recenterTopBottom\",\"M-s\":\"centerselection\",\"M-g\":\"gotoline\",\"C-x C-p\":\"selectall\",\"C-Down\":{command:\"goorselect\",args:[\"gotopagedown\",\"selectpagedown\"]},\"C-Up\":{command:\"goorselect\",args:[\"gotopageup\",\"selectpageup\"]},\"PageDown|C-v\":{command:\"goorselect\",args:[\"gotopagedown\",\"selectpagedown\"]},\"PageUp|M-v\":{command:\"goorselect\",args:[\"gotopageup\",\"selectpageup\"]},\"S-C-Down\":\"selectpagedown\",\"S-C-Up\":\"selectpageup\",\"C-s\":\"iSearch\",\"C-r\":\"iSearchBackwards\",\"M-C-s\":\"findnext\",\"M-C-r\":\"findprevious\",\"S-M-5\":\"replace\",Backspace:\"backspace\",\"Delete|C-d\":\"del\",\"Return|C-m\":{command:\"insertstring\",args:\"\\n\"},\"C-o\":\"splitline\",\"M-d|C-Delete\":{command:\"killWord\",args:\"right\"},\"C-Backspace|M-Backspace|M-Delete\":{command:\"killWord\",args:\"left\"},\"C-k\":\"killLine\",\"C-y|S-Delete\":\"yank\",\"M-y\":\"yankRotate\",\"C-g\":\"keyboardQuit\",\"C-w|C-S-W\":\"killRegion\",\"M-w\":\"killRingSave\",\"C-Space\":\"setMark\",\"C-x C-x\":\"exchangePointAndMark\",\"C-t\":\"transposeletters\",\"M-u\":\"touppercase\",\"M-l\":\"tolowercase\",\"M-/\":\"autocomplete\",\"C-u\":\"universalArgument\",\"M-;\":\"togglecomment\",\"C-/|C-x u|S-C--|C-z\":\"undo\",\"S-C-/|S-C-x u|C--|S-C-z\":\"redo\",\"C-x r\":\"selectRectangularRegion\",\"M-x\":{command:\"focusCommandLine\",args:\"M-x \"}},t.handler.bindKeys(t.emacsKeys),t.handler.addCommands({recenterTopBottom:function(e){var t=e.renderer,n=t.$cursorLayer.getPixelPosition(),r=t.$size.scrollerHeight-t.lineHeight,i=t.scrollTop;Math.abs(n.top-i)<2?i=n.top-r:Math.abs(n.top-i-r*.5)<2?i=n.top:i=n.top-r*.5,e.session.setScrollTop(i)},selectRectangularRegion:function(e){e.multiSelect.toggleBlockSelection()},setMark:{exec:function(e,t){function u(){var t=e.popEmacsMark();t&&e.moveCursorToPosition(t)}if(t&&t.count){e.inMultiSelectMode?e.forEachSelection(u):u(),u();return}var n=e.emacsMark(),r=e.selection.getAllRanges(),i=r.map(function(e){return{row:e.start.row,column:e.start.column}}),s=!0,o=r.every(function(e){return e.isEmpty()});if(s&&(n||!o)){e.inMultiSelectMode?e.forEachSelection({exec:e.clearSelection.bind(e)}):e.clearSelection(),n&&e.pushEmacsMark(null);return}if(!n){i.forEach(function(t){e.pushEmacsMark(t)}),e.setEmacsMark(i[i.length-1]);return}},readOnly:!0,handlesCount:!0},exchangePointAndMark:{exec:function(t,n){var r=t.selection;if(!n.count&&!r.isEmpty()){r.setSelectionRange(r.getRange(),!r.isBackwards());return}if(n.count){var i={row:r.lead.row,column:r.lead.column};r.clearSelection(),r.moveCursorToPosition(t.emacsMarkForSelection(i))}else r.selectToPosition(t.emacsMarkForSelection())},readOnly:!0,handlesCount:!0,multiSelectAction:\"forEach\"},killWord:{exec:function(e,n){e.clearSelection(),n==\"left\"?e.selection.selectWordLeft():e.selection.selectWordRight();var r=e.getSelectionRange(),i=e.session.getTextRange(r);t.killRing.add(i),e.session.remove(r),e.clearSelection()},multiSelectAction:\"forEach\"},killLine:function(e){e.pushEmacsMark(null),e.clearSelection();var n=e.getSelectionRange(),r=e.session.getLine(n.start.row);n.end.column=r.length,r=r.substr(n.start.column);var i=e.session.getFoldLine(n.start.row);i&&n.end.row!=i.end.row&&(n.end.row=i.end.row,r=\"x\"),/^\\s*$/.test(r)&&(n.end.row++,r=e.session.getLine(n.end.row),n.end.column=/^\\s*$/.test(r)?r.length:0);var s=e.session.getTextRange(n);e.prevOp.command==this?t.killRing.append(s):t.killRing.add(s),e.session.remove(n),e.clearSelection()},yank:function(e){e.onPaste(t.killRing.get()||\"\"),e.keyBinding.$data.lastCommand=\"yank\"},yankRotate:function(e){if(e.keyBinding.$data.lastCommand!=\"yank\")return;e.undo(),e.session.$emacsMarkRing.pop(),e.onPaste(t.killRing.rotate()),e.keyBinding.$data.lastCommand=\"yank\"},killRegion:{exec:function(e){t.killRing.add(e.getCopyText()),e.commands.byName.cut.exec(e),e.setEmacsMark(null)},readOnly:!0,multiSelectAction:\"forEach\"},killRingSave:{exec:function(e){e.$handlesEmacsOnCopy=!0;var n=e.session.$emacsMarkRing.slice(),r=[];t.killRing.add(e.getCopyText()),setTimeout(function(){function t(){var t=e.selection,n=t.getRange(),i=t.isBackwards()?n.end:n.start;r.push({row:i.row,column:i.column}),t.clearSelection()}e.$handlesEmacsOnCopy=!1,e.inMultiSelectMode?e.forEachSelection({exec:t}):t(),e.session.$emacsMarkRing=n.concat(r.reverse())},0)},readOnly:!0},keyboardQuit:function(e){e.selection.clearSelection(),e.setEmacsMark(null),e.keyBinding.$data.count=null},focusCommandLine:function(e,t){e.showCommandLine&&e.showCommandLine(t)}}),t.handler.addCommands(i.iSearchStartCommands);var v=t.handler.commands;v.yank.isYank=!0,v.yankRotate.isYank=!0,t.killRing={$data:[],add:function(e){e&&this.$data.push(e),this.$data.length>30&&this.$data.shift()},append:function(e){var t=this.$data.length-1,n=this.$data[t]||\"\";e&&(n+=e),n&&(this.$data[t]=n)},get:function(e){return e=e||1,this.$data.slice(this.$data.length-e,this.$data.length).reverse().join(\"\\n\")},pop:function(){return this.$data.length>1&&this.$data.pop(),this.get()},rotate:function(){return this.$data.unshift(this.$data.pop()),this.get()}}})"
  },
  {
    "path": "lib/src-min-noconflict/keybinding-vim.js",
    "content": "ace.define(\"ace/keyboard/vim\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/keys\",\"ace/lib/event\",\"ace/search\",\"ace/lib/useragent\",\"ace/search_highlight\",\"ace/commands/multi_select_commands\",\"ace/mode/text\",\"ace/multi_select\"],function(e,t,n){\"use strict\";function r(){function t(e){return typeof e!=\"object\"?e+\"\":\"line\"in e?e.line+\":\"+e.ch:\"anchor\"in e?t(e.anchor)+\"->\"+t(e.head):Array.isArray(e)?\"[\"+e.map(function(e){return t(e)})+\"]\":JSON.stringify(e)}var e=\"\";for(var n=0;n<arguments.length;n++){var r=arguments[n],i=t(r);e+=i+\"  \"}console.log(e)}function m(e){return{row:e.line,column:e.ch}}function g(e){return new E(e.row,e.column)}function x(e){e.setOption(\"disableInput\",!0),e.setOption(\"showCursorWhenSelecting\",!1),v.signal(e,\"vim-mode-change\",{mode:\"normal\"}),e.on(\"cursorActivity\",Jn),tt(e),v.on(e.getInputField(),\"paste\",M(e))}function T(e){e.setOption(\"disableInput\",!1),e.off(\"cursorActivity\",Jn),v.off(e.getInputField(),\"paste\",M(e)),e.state.vim=null}function N(e,t){this==v.keyMap.vim&&v.rmClass(e.getWrapperElement(),\"cm-fat-cursor\"),(!t||t.attach!=C)&&T(e,!1)}function C(e,t){this==v.keyMap.vim&&v.addClass(e.getWrapperElement(),\"cm-fat-cursor\"),(!t||t.attach!=C)&&x(e)}function k(e,t){if(!t)return undefined;var n=O(e);if(!n)return!1;var r=v.Vim.findKey(t,n);return typeof r==\"function\"&&v.signal(t,\"vim-keypress\",n),r}function O(e){if(e.charAt(0)==\"'\")return e.charAt(1);var t=e.split(/-(?!$)/),n=t[t.length-1];if(t.length==1&&t[0].length==1)return!1;if(t.length==2&&t[0]==\"Shift\"&&n.length==1)return!1;var r=!1;for(var i=0;i<t.length;i++){var s=t[i];s in L?t[i]=L[s]:r=!0,s in A&&(t[i]=A[s])}return r?(X(n)&&(t[t.length-1]=n.toLowerCase()),\"<\"+t.join(\"-\")+\">\"):!1}function M(e){var t=e.state.vim;return t.onPasteFn||(t.onPasteFn=function(){t.insertMode||(e.setCursor(St(e.getCursor(),0,1)),yt.enterInsertMode(e,{},t))}),t.onPasteFn}function H(e,t){var n=[];for(var r=e;r<e+t;r++)n.push(String.fromCharCode(r));return n}function R(e,t){return t>=e.firstLine()&&t<=e.lastLine()}function U(e){return/^[a-z]$/.test(e)}function z(e){return\"()[]{}\".indexOf(e)!=-1}function W(e){return _.test(e)}function X(e){return/^[A-Z]$/.test(e)}function V(e){return/^\\s*$/.test(e)}function $(e,t){for(var n=0;n<t.length;n++)if(t[n]==e)return!0;return!1}function K(e,t,n,r,i){if(t===undefined&&!i)throw Error(\"defaultValue is required unless callback is provided\");n||(n=\"string\"),J[e]={type:n,defaultValue:t,callback:i};if(r)for(var s=0;s<r.length;s++)J[r[s]]=J[e];t&&Q(e,t)}function Q(e,t,n,r){var i=J[e];r=r||{};var s=r.scope;if(!i)throw Error(\"Unknown option: \"+e);if(i.type==\"boolean\"){if(t&&t!==!0)throw Error(\"Invalid argument: \"+e+\"=\"+t);t!==!1&&(t=!0)}i.callback?(s!==\"local\"&&i.callback(t,undefined),s!==\"global\"&&n&&i.callback(t,n)):(s!==\"local\"&&(i.value=i.type==\"boolean\"?!!t:t),s!==\"global\"&&n&&(n.state.vim.options[e]={value:t}))}function G(e,t,n){var r=J[e];n=n||{};var i=n.scope;if(!r)throw Error(\"Unknown option: \"+e);if(r.callback){var s=t&&r.callback(undefined,t);if(i!==\"global\"&&s!==undefined)return s;if(i!==\"local\")return r.callback();return}var s=i!==\"global\"&&t&&t.state.vim.options[e];return(s||i!==\"local\"&&r||{}).value}function et(){this.latestRegister=undefined,this.isPlaying=!1,this.isRecording=!1,this.replaySearchQueries=[],this.onRecordingDone=undefined,this.lastInsertModeChanges=Z()}function tt(e){return e.state.vim||(e.state.vim={inputState:new ot,lastEditInputState:undefined,lastEditActionCommand:undefined,lastHPos:-1,lastHSPos:-1,lastMotion:null,marks:{},fakeCursor:null,insertMode:!1,insertModeRepeat:undefined,visualMode:!1,visualLine:!1,visualBlock:!1,lastSelection:null,lastPastedText:null,sel:{},options:{}}),e.state.vim}function rt(){nt={searchQuery:null,searchIsReversed:!1,lastSubstituteReplacePart:undefined,jumpList:Y(),macroModeState:new et,lastChararacterSearch:{increment:0,forward:!0,selectedCharacter:\"\"},registerController:new lt({}),searchHistoryController:new ct({}),exCommandHistoryController:new ct({})};for(var e in J){var t=J[e];t.value=t.defaultValue}}function ot(){this.prefixRepeat=[],this.motionRepeat=[],this.operator=null,this.operatorArgs=null,this.motion=null,this.motionArgs=null,this.keyBuffer=[],this.registerName=null}function ut(e,t){e.state.vim.inputState=new ot,v.signal(e,\"vim-command-done\",t)}function at(e,t,n){this.clear(),this.keyBuffer=[e||\"\"],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!!t,this.blockwise=!!n}function ft(e,t){var n=nt.registerController.registers[e];if(!e||e.length!=1)throw Error(\"Register name must be 1 character\");n[e]=t,q.push(e)}function lt(e){this.registers=e,this.unnamedRegister=e['\"']=new at,e[\".\"]=new at,e[\":\"]=new at,e[\"/\"]=new at}function ct(){this.historyBuffer=[],this.iterator,this.initialPrefix=null}function dt(e,t){pt[e]=t}function vt(e,t){var n=[];for(var r=0;r<t;r++)n.push(e);return n}function gt(e,t){mt[e]=t}function bt(e,t){yt[e]=t}function wt(e,t,n){var r=Math.min(Math.max(e.firstLine(),t.line),e.lastLine()),i=Pt(e,r)-1;i=n?i+1:i;var s=Math.min(Math.max(0,t.ch),i);return E(r,s)}function Et(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function St(e,t,n){return typeof t==\"object\"&&(n=t.ch,t=t.line),E(e.line+t,e.ch+n)}function xt(e,t){return{line:t.line-e.line,ch:t.line-e.line}}function Tt(e,t,n,r){var i,s=[],o=[];for(var u=0;u<t.length;u++){var a=t[u];if(n==\"insert\"&&a.context!=\"insert\"||a.context&&a.context!=n||r.operator&&a.type==\"action\"||!(i=Nt(e,a.keys)))continue;i==\"partial\"&&s.push(a),i==\"full\"&&o.push(a)}return{partial:s.length&&s,full:o.length&&o}}function Nt(e,t){if(t.slice(-11)==\"<character>\"){var n=t.length-11,r=e.slice(0,n),i=t.slice(0,n);return r==i&&e.length>n?\"full\":i.indexOf(r)==0?\"partial\":!1}return e==t?\"full\":t.indexOf(e)==0?\"partial\":!1}function Ct(e){var t=/^.*(<[\\w\\-]+>)$/.exec(e),n=t?t[1]:e.slice(-1);if(n.length>1)switch(n){case\"<CR>\":n=\"\\n\";break;case\"<Space>\":n=\" \";break;default:}return n}function kt(e,t,n){return function(){for(var r=0;r<n;r++)t(e)}}function Lt(e){return E(e.line,e.ch)}function At(e,t){return e.ch==t.ch&&e.line==t.line}function Ot(e,t){return e.line<t.line?!0:e.line==t.line&&e.ch<t.ch?!0:!1}function Mt(e,t){return arguments.length>2&&(t=Mt.apply(undefined,Array.prototype.slice.call(arguments,1))),Ot(e,t)?e:t}function _t(e,t){return arguments.length>2&&(t=_t.apply(undefined,Array.prototype.slice.call(arguments,1))),Ot(e,t)?t:e}function Dt(e,t,n){var r=Ot(e,t),i=Ot(t,n);return r&&i}function Pt(e,t){return e.getLine(t).length}function Ht(e){return e.trim?e.trim():e.replace(/^\\s+|\\s+$/g,\"\")}function Bt(e){return e.replace(/([.?*+$\\[\\]\\/\\\\(){}|\\-])/g,\"\\\\$1\")}function jt(e,t,n){var r=Pt(e,t),i=(new Array(n-r+1)).join(\" \");e.setCursor(E(t,r)),e.replaceRange(i,e.getCursor())}function Ft(e,t){var n=[],r=e.listSelections(),i=Lt(e.clipPos(t)),s=!At(t,i),o=e.getCursor(\"head\"),u=qt(r,o),a=At(r[u].head,r[u].anchor),f=r.length-1,l=f-u>u?f:0,c=r[l].anchor,h=Math.min(c.line,i.line),p=Math.max(c.line,i.line),d=c.ch,v=i.ch,m=r[l].head.ch-d,g=v-d;m>0&&g<=0?(d++,s||v--):m<0&&g>=0?(d--,a||v++):m<0&&g==-1&&(d--,v++);for(var y=h;y<=p;y++){var b={anchor:new E(y,d),head:new E(y,v)};n.push(b)}return u=i.line==p?n.length-1:0,e.setSelections(n),t.ch=v,c.ch=d,c}function It(e,t,n){var r=[];for(var i=0;i<n;i++){var s=St(t,i,0);r.push({anchor:s,head:s})}e.setSelections(r,0)}function qt(e,t,n){for(var r=0;r<e.length;r++){var i=n!=\"head\"&&At(e[r].anchor,t),s=n!=\"anchor\"&&At(e[r].head,t);if(i||s)return r}return-1}function Rt(e,t){var n=t.lastSelection,r=function(){var t=e.listSelections(),n=t[0],r=t[t.length-1],i=Ot(n.anchor,n.head)?n.anchor:n.head,s=Ot(r.anchor,r.head)?r.head:r.anchor;return[i,s]},i=function(){var t=e.getCursor(),r=e.getCursor(),i=n.visualBlock;if(i){var s=i.width,o=i.height;r=E(t.line+o,t.ch+s);var u=[];for(var a=t.line;a<r.line;a++){var f=E(a,t.ch),l=E(a,r.ch),c={anchor:f,head:l};u.push(c)}e.setSelections(u)}else{var h=n.anchorMark.find(),p=n.headMark.find(),d=p.line-h.line,v=p.ch-h.ch;r={line:r.line+d,ch:d?r.ch:v+r.ch},n.visualLine&&(t=E(t.line,0),r=E(r.line,Pt(e,r.line))),e.setSelection(t,r)}return[t,r]};return t.visualMode?r():i()}function Ut(e,t){var n=t.sel.anchor,r=t.sel.head;t.lastPastedText&&(r=e.posFromIndex(e.indexFromPos(n)+t.lastPastedText.length),t.lastPastedText=null),t.lastSelection={anchorMark:e.setBookmark(n),headMark:e.setBookmark(r),anchor:Lt(n),head:Lt(r),visualMode:t.visualMode,visualLine:t.visualLine,visualBlock:t.visualBlock}}function zt(e,t,n){var r=e.state.vim.sel,i=r.head,s=r.anchor,o;return Ot(n,t)&&(o=n,n=t,t=o),Ot(i,s)?(i=Mt(t,i),s=_t(s,n)):(s=Mt(t,s),i=_t(i,n),i=St(i,0,-1),i.ch==-1&&i.line!=e.firstLine()&&(i=E(i.line-1,Pt(e,i.line-1)))),[s,i]}function Wt(e,t,n){var r=e.state.vim;t=t||r.sel;var n=n||r.visualLine?\"line\":r.visualBlock?\"block\":\"char\",i=Xt(e,t,n);e.setSelections(i.ranges,i.primary),Kn(e)}function Xt(e,t,n,r){var i=Lt(t.head),s=Lt(t.anchor);if(n==\"char\"){var o=!r&&!Ot(t.head,t.anchor)?1:0,u=Ot(t.head,t.anchor)?1:0;return i=St(t.head,0,o),s=St(t.anchor,0,u),{ranges:[{anchor:s,head:i}],primary:0}}if(n==\"line\"){if(!Ot(t.head,t.anchor)){s.ch=0;var a=e.lastLine();i.line>a&&(i.line=a),i.ch=Pt(e,i.line)}else i.ch=0,s.ch=Pt(e,s.line);return{ranges:[{anchor:s,head:i}],primary:0}}if(n==\"block\"){var f=Math.min(s.line,i.line),l=Math.min(s.ch,i.ch),c=Math.max(s.line,i.line),h=Math.max(s.ch,i.ch)+1,p=c-f+1,d=i.line==f?0:p-1,v=[];for(var m=0;m<p;m++)v.push({anchor:E(f+m,l),head:E(f+m,h)});return{ranges:v,primary:d}}}function Vt(e){var t=e.getCursor(\"head\");return e.getSelection().length==1&&(t=Mt(t,e.getCursor(\"anchor\"))),t}function $t(e,t){var n=e.state.vim;t!==!1&&e.setCursor(wt(e,n.sel.head)),Ut(e,n),n.visualMode=!1,n.visualLine=!1,n.visualBlock=!1,v.signal(e,\"vim-mode-change\",{mode:\"normal\"}),n.fakeCursor&&n.fakeCursor.clear()}function Jt(e,t,n){var r=e.getRange(t,n);if(/\\n\\s*$/.test(r)){var i=r.split(\"\\n\");i.pop();var s;for(var s=i.pop();i.length>0&&s&&V(s);s=i.pop())n.line--,n.ch=0;s?(n.line--,n.ch=Pt(e,n.line)):n.ch=0}}function Kt(e,t,n){t.ch=0,n.ch=0,n.line++}function Qt(e){if(!e)return 0;var t=e.search(/\\S/);return t==-1?e.length:t}function Gt(e,t,n,r,i){var s=Vt(e),o=e.getLine(s.line),u=s.ch,a=i?D[0]:P[0];while(!a(o.charAt(u))){u++;if(u>=o.length)return null}r?a=P[0]:(a=D[0],a(o.charAt(u))||(a=D[1]));var f=u,l=u;while(a(o.charAt(f))&&f<o.length)f++;while(a(o.charAt(l))&&l>=0)l--;l++;if(t){var c=f;while(/\\s/.test(o.charAt(f))&&f<o.length)f++;if(c==f){var h=l;while(/\\s/.test(o.charAt(l-1))&&l>0)l--;l||(l=h)}}return{start:E(s.line,l),end:E(s.line,f)}}function Yt(e,t,n){At(t,n)||nt.jumpList.add(e,t,n)}function Zt(e,t){nt.lastChararacterSearch.increment=e,nt.lastChararacterSearch.forward=t.forward,nt.lastChararacterSearch.selectedCharacter=t.selectedCharacter}function nn(e,t,n,r){var i=Lt(e.getCursor()),s=n?1:-1,o=n?e.lineCount():-1,u=i.ch,a=i.line,f=e.getLine(a),l={lineText:f,nextCh:f.charAt(u),lastCh:null,index:u,symb:r,reverseSymb:(n?{\")\":\"(\",\"}\":\"{\"}:{\"(\":\")\",\"{\":\"}\"})[r],forward:n,depth:0,curMoveThrough:!1},c=en[r];if(!c)return i;var h=tn[c].init,p=tn[c].isComplete;h&&h(l);while(a!==o&&t){l.index+=s,l.nextCh=l.lineText.charAt(l.index);if(!l.nextCh){a+=s,l.lineText=e.getLine(a)||\"\";if(s>0)l.index=0;else{var d=l.lineText.length;l.index=d>0?d-1:0}l.nextCh=l.lineText.charAt(l.index)}p(l)&&(i.line=a,i.ch=l.index,t--)}return l.nextCh||l.curMoveThrough?E(a,l.index):i}function rn(e,t,n,r,i){var s=t.line,o=t.ch,u=e.getLine(s),a=n?1:-1,f=r?P:D;if(i&&u==\"\"){s+=a,u=e.getLine(s);if(!R(e,s))return null;o=n?0:u.length}for(;;){if(i&&u==\"\")return{from:0,to:0,line:s};var l=a>0?u.length:-1,c=l,h=l;while(o!=l){var p=!1;for(var d=0;d<f.length&&!p;++d)if(f[d](u.charAt(o))){c=o;while(o!=l&&f[d](u.charAt(o)))o+=a;h=o,p=c!=h;if(c==t.ch&&s==t.line&&h==c+a)continue;return{from:Math.min(c,h+1),to:Math.max(c,h),line:s}}p||(o+=a)}s+=a;if(!R(e,s))return null;u=e.getLine(s),o=a>0?0:u.length}throw new Error(\"The impossible happened.\")}function sn(e,t,n,r,i,s){var o=Lt(t),u=[];(r&&!i||!r&&i)&&n++;var a=!r||!i;for(var f=0;f<n;f++){var l=rn(e,t,r,s,a);if(!l){var c=Pt(e,e.lastLine());u.push(r?{line:e.lastLine(),from:c,to:c}:{line:0,from:0,to:0});break}u.push(l),t=E(l.line,r?l.to-1:l.from)}var h=u.length!=n,p=u[0],d=u.pop();return r&&!i?(!h&&(p.from!=o.ch||p.line!=o.line)&&(d=u.pop()),E(d.line,d.from)):r&&i?E(d.line,d.to-1):!r&&i?(!h&&(p.to!=o.ch||p.line!=o.line)&&(d=u.pop()),E(d.line,d.to)):E(d.line,d.from)}function on(e,t,n,r){var i=e.getCursor(),s=i.ch,o;for(var u=0;u<t;u++){var a=e.getLine(i.line);o=fn(s,a,r,n,!0);if(o==-1)return null;s=o}return E(e.getCursor().line,o)}function un(e,t){var n=e.getCursor().line;return wt(e,E(n,t-1))}function an(e,t,n,r){if(!$(n,I))return;t.marks[n]&&t.marks[n].clear(),t.marks[n]=e.setBookmark(r)}function fn(e,t,n,r,i){var s;return r?(s=t.indexOf(n,e+1),s!=-1&&!i&&(s-=1)):(s=t.lastIndexOf(n,e-1),s!=-1&&!i&&(s+=1)),s}function ln(e,t,n,r,i){function c(t){return!/\\S/.test(e.getLine(t))}function h(e,t,n){return n?c(e)!=c(e+t):!c(e)&&c(e+t)}function p(t){r=r>0?1:-1;var n=e.ace.session.getFoldLine(t);n&&t+r>n.start.row&&t+r<n.end.row&&(r=(r>0?n.end.row:n.start.row)-t)}var s=t.line,o=e.firstLine(),u=e.lastLine(),a,f,l=s;if(r){while(o<=l&&l<=u&&n>0)p(l),h(l,r)&&n--,l+=r;return new E(l,0)}var d=e.state.vim;if(d.visualLine&&h(s,1,!0)){var v=d.sel.anchor;h(v.line,-1,!0)&&(!i||v.line!=s)&&(s+=1)}var m=c(s);for(l=s;l<=u&&n;l++)h(l,1,!0)&&(!i||c(l)!=m)&&n--;f=new E(l,0),l>u&&!m?m=!0:i=!1;for(l=s;l>o;l--)if(!i||c(l)==m||l==s)if(h(l,-1,!0))break;return a=new E(l,0),{start:a,end:f}}function cn(e,t,n,r){var i=t,s,o,u={\"(\":/[()]/,\")\":/[()]/,\"[\":/[[\\]]/,\"]\":/[[\\]]/,\"{\":/[{}]/,\"}\":/[{}]/}[n],a={\"(\":\"(\",\")\":\"(\",\"[\":\"[\",\"]\":\"[\",\"{\":\"{\",\"}\":\"{\"}[n],f=e.getLine(i.line).charAt(i.ch),l=f===a?1:0;s=e.scanForBracket(E(i.line,i.ch+l),-1,null,{bracketRegex:u}),o=e.scanForBracket(E(i.line,i.ch+l),1,null,{bracketRegex:u});if(!s||!o)return{start:i,end:i};s=s.pos,o=o.pos;if(s.line==o.line&&s.ch>o.ch||s.line>o.line){var c=s;s=o,o=c}return r?o.ch+=1:s.ch+=1,{start:s,end:o}}function hn(e,t,n,r){var i=Lt(t),s=e.getLine(i.line),o=s.split(\"\"),u,a,f,l,c=o.indexOf(n);i.ch<c?i.ch=c:c<i.ch&&o[i.ch]==n&&(a=i.ch,--i.ch);if(o[i.ch]==n&&!a)u=i.ch+1;else for(f=i.ch;f>-1&&!u;f--)o[f]==n&&(u=f+1);if(u&&!a)for(f=u,l=o.length;f<l&&!a;f++)o[f]==n&&(a=f);return!u||!a?{start:i,end:i}:(r&&(--u,++a),{start:E(i.line,u),end:E(i.line,a)})}function pn(){}function dn(e){var t=e.state.vim;return t.searchState_||(t.searchState_=new pn)}function vn(e,t,n,r,i){e.openDialog?e.openDialog(t,r,{bottom:!0,value:i.value,onKeyDown:i.onKeyDown,onKeyUp:i.onKeyUp,selectValueOnOpen:!1}):r(prompt(n,\"\"))}function mn(e){var t=gn(e)||[];if(!t.length)return[];var n=[];if(t[0]!==0)return;for(var r=0;r<t.length;r++)typeof t[r]==\"number\"&&n.push(e.substring(t[r]+1,t[r+1]));return n}function gn(e){var t=!1,n=[];for(var r=0;r<e.length;r++){var i=e.charAt(r);!t&&i==\"/\"&&n.push(r),t=!t&&i==\"\\\\\"}return n}function yn(e){var t=\"|(){\",n=\"}\",r=!1,i=[];for(var s=-1;s<e.length;s++){var o=e.charAt(s)||\"\",u=e.charAt(s+1)||\"\",a=u&&t.indexOf(u)!=-1;r?((o!==\"\\\\\"||!a)&&i.push(o),r=!1):o===\"\\\\\"?(r=!0,u&&n.indexOf(u)!=-1&&(a=!0),(!a||u===\"\\\\\")&&i.push(o)):(i.push(o),a&&u!==\"\\\\\"&&i.push(\"\\\\\"))}return i.join(\"\")}function wn(e){var t=!1,n=[];for(var r=-1;r<e.length;r++){var i=e.charAt(r)||\"\",s=e.charAt(r+1)||\"\";bn[i+s]?(n.push(bn[i+s]),r++):t?(n.push(i),t=!1):i===\"\\\\\"?(t=!0,W(s)||s===\"$\"?n.push(\"$\"):s!==\"/\"&&s!==\"\\\\\"&&n.push(\"\\\\\")):(i===\"$\"&&n.push(\"$\"),n.push(i),s===\"/\"&&n.push(\"\\\\\"))}return n.join(\"\")}function Sn(e){var t=new v.StringStream(e),n=[];while(!t.eol()){while(t.peek()&&t.peek()!=\"\\\\\")n.push(t.next());var r=!1;for(var i in En)if(t.match(i,!0)){r=!0,n.push(En[i]);break}r||n.push(t.next())}return n.join(\"\")}function xn(e,t,n){var r=nt.registerController.getRegister(\"/\");r.setText(e);if(e instanceof RegExp)return e;var i=gn(e),s,o;if(!i.length)s=e;else{s=e.substring(0,i[0]);var u=e.substring(i[0]);o=u.indexOf(\"i\")!=-1}if(!s)return null;G(\"pcre\")||(s=yn(s)),n&&(t=/^[^A-Z]*$/.test(s));var a=new RegExp(s,t||o?\"i\":undefined);return a}function Tn(e,t){e.openNotification?e.openNotification('<span style=\"color: red\">'+t+\"</span>\",{bottom:!0,duration:5e3}):alert(t)}function Nn(e,t){var n=\"\";return e&&(n+='<span style=\"font-family: monospace\">'+e+\"</span>\"),n+='<input type=\"text\"/> <span style=\"color: #888\">',t&&(n+='<span style=\"color: #888\">',n+=t,n+=\"</span>\"),n}function kn(e,t){var n=(t.prefix||\"\")+\" \"+(t.desc||\"\"),r=Nn(t.prefix,t.desc);vn(e,r,n,t.onClose,t)}function Ln(e,t){if(e instanceof RegExp&&t instanceof RegExp){var n=[\"global\",\"multiline\",\"ignoreCase\",\"source\"];for(var r=0;r<n.length;r++){var i=n[r];if(e[i]!==t[i])return!1}return!0}return!1}function An(e,t,n,r){if(!t)return;var i=dn(e),s=xn(t,!!n,!!r);if(!s)return;return Mn(e,s),Ln(s,i.getQuery())?s:(i.setQuery(s),s)}function On(e){if(e.source.charAt(0)==\"^\")var t=!0;return{token:function(n){if(t&&!n.sol()){n.skipToEnd();return}var r=n.match(e,!1);if(r){if(r[0].length==0)return n.next(),\"searching\";if(!n.sol()){n.backUp(1);if(!e.exec(n.next()+r[0]))return n.next(),null}return n.match(e),\"searching\"}while(!n.eol()){n.next();if(n.match(e,!1))break}},query:e}}function Mn(e,t){var n=dn(e),r=n.getOverlay();if(!r||t!=r.query)r&&e.removeOverlay(r),r=On(t),e.addOverlay(r),e.showMatchesOnScrollbar&&(n.getScrollbarAnnotate()&&n.getScrollbarAnnotate().clear(),n.setScrollbarAnnotate(e.showMatchesOnScrollbar(t))),n.setOverlay(r)}function _n(e,t,n,r){return r===undefined&&(r=1),e.operation(function(){var i=e.getCursor(),s=e.getSearchCursor(n,i);for(var o=0;o<r;o++){var u=s.find(t);o==0&&u&&At(s.from(),i)&&(u=s.find(t));if(!u){s=e.getSearchCursor(n,t?E(e.lastLine()):E(e.firstLine(),0));if(!s.find(t))return}}return s.from()})}function Dn(e){var t=dn(e);e.removeOverlay(dn(e).getOverlay()),t.setOverlay(null),t.getScrollbarAnnotate()&&(t.getScrollbarAnnotate().clear(),t.setScrollbarAnnotate(null))}function Pn(e,t,n){return typeof e!=\"number\"&&(e=e.line),t instanceof Array?$(e,t):n?e>=t&&e<=n:e==t}function Hn(e){var t=e.ace.renderer;return{top:t.getFirstFullyVisibleRow(),bottom:t.getLastFullyVisibleRow()}}function In(e,t,n,r,i,s,o,u,a){function c(){e.operation(function(){while(!f)h(),p();d()})}function h(){var t=e.getRange(s.from(),s.to()),n=t.replace(o,u);s.replace(n)}function p(){while(s.findNext()&&Pn(s.from(),r,i)){if(!n&&l&&s.from().line==l.line)continue;e.scrollIntoView(s.from(),30),e.setSelection(s.from(),s.to()),l=s.from(),f=!1;return}f=!0}function d(t){t&&t(),e.focus();if(l){e.setCursor(l);var n=e.state.vim;n.exMode=!1,n.lastHPos=n.lastHSPos=l.ch}a&&a()}function m(t,n,r){v.e_stop(t);var i=v.keyName(t);switch(i){case\"Y\":h(),p();break;case\"N\":p();break;case\"A\":var s=a;a=undefined,e.operation(c),a=s;break;case\"L\":h();case\"Q\":case\"Esc\":case\"Ctrl-C\":case\"Ctrl-[\":d(r)}return f&&d(r),!0}e.state.vim.exMode=!0;var f=!1,l=s.from();p();if(f){Tn(e,\"No matches for \"+o.source);return}if(!t){c(),a&&a();return}kn(e,{prefix:\"replace with <strong>\"+u+\"</strong> (y/n/a/q/l)\",onKeyDown:m})}function qn(e){var t=e.state.vim,n=nt.macroModeState,r=nt.registerController.getRegister(\".\"),i=n.isPlaying,s=n.lastInsertModeChanges,o=[];if(!i){var u=s.inVisualBlock?t.lastSelection.visualBlock.height:1,a=s.changes,o=[],f=0;while(f<a.length)o.push(a[f]),a[f]instanceof Gn?f++:f+=u;s.changes=o,e.off(\"change\",$n),v.off(e.getInputField(),\"keydown\",Yn)}!i&&t.insertModeRepeat>1&&(Zn(e,t,t.insertModeRepeat-1,!0),t.lastEditInputState.repeatOverride=t.insertModeRepeat),delete t.insertModeRepeat,t.insertMode=!1,e.setCursor(e.getCursor().line,e.getCursor().ch-1),e.setOption(\"keyMap\",\"vim\"),e.setOption(\"disableInput\",!0),e.toggleOverwrite(!1),r.setText(s.changes.join(\"\")),v.signal(e,\"vim-mode-change\",{mode:\"normal\"}),n.isRecording&&Xn(n)}function Rn(e){b.unshift(e)}function Un(e,t,n,r,i){var s={keys:e,type:t};s[t]=n,s[t+\"Args\"]=r;for(var o in i)s[o]=i[o];Rn(s)}function zn(e,t,n,r){var i=nt.registerController.getRegister(r);if(r==\":\"){i.keyBuffer[0]&&Fn.processCommand(e,i.keyBuffer[0]),n.isPlaying=!1;return}var s=i.keyBuffer,o=0;n.isPlaying=!0,n.replaySearchQueries=i.searchQueries.slice(0);for(var u=0;u<s.length;u++){var a=s[u],f,l;while(a){f=/<\\w+-.+?>|<\\w+>|./.exec(a),l=f[0],a=a.substring(f.index+l.length),v.Vim.handleKey(e,l,\"macro\");if(t.insertMode){var c=i.insertModeChanges[o++].changes;nt.macroModeState.lastInsertModeChanges.changes=c,er(e,c,1),qn(e)}}}n.isPlaying=!1}function Wn(e,t){if(e.isPlaying)return;var n=e.latestRegister,r=nt.registerController.getRegister(n);r&&r.pushText(t)}function Xn(e){if(e.isPlaying)return;var t=e.latestRegister,n=nt.registerController.getRegister(t);n&&n.pushInsertModeChanges&&n.pushInsertModeChanges(e.lastInsertModeChanges)}function Vn(e,t){if(e.isPlaying)return;var n=e.latestRegister,r=nt.registerController.getRegister(n);r&&r.pushSearchQuery&&r.pushSearchQuery(t)}function $n(e,t){var n=nt.macroModeState,r=n.lastInsertModeChanges;if(!n.isPlaying)while(t){r.expectCursorActivityForChange=!0;if(t.origin==\"+input\"||t.origin==\"paste\"||t.origin===undefined){var i=t.text.join(\"\\n\");r.maybeReset&&(r.changes=[],r.maybeReset=!1),r.changes.push(i)}t=t.next}}function Jn(e){var t=e.state.vim;if(t.insertMode){var n=nt.macroModeState;if(n.isPlaying)return;var r=n.lastInsertModeChanges;r.expectCursorActivityForChange?r.expectCursorActivityForChange=!1:r.maybeReset=!0}else e.curOp.isVimOp||Qn(e,t);t.visualMode&&Kn(e)}function Kn(e){var t=e.state.vim,n=wt(e,Lt(t.sel.head)),r=St(n,0,1);t.fakeCursor&&t.fakeCursor.clear(),t.fakeCursor=e.markText(n,r,{className:\"cm-animate-fat-cursor\"})}function Qn(e,t){var n=e.getCursor(\"anchor\"),r=e.getCursor(\"head\");t.visualMode&&!e.somethingSelected()?$t(e,!1):!t.visualMode&&!t.insertMode&&e.somethingSelected()&&(t.visualMode=!0,t.visualLine=!1,v.signal(e,\"vim-mode-change\",{mode:\"visual\"}));if(t.visualMode){var i=Ot(r,n)?0:-1,s=Ot(r,n)?-1:0;r=St(r,0,i),n=St(n,0,s),t.sel={anchor:n,head:r},an(e,t,\"<\",Mt(r,n)),an(e,t,\">\",_t(r,n))}else t.insertMode||(t.lastHPos=e.getCursor().ch)}function Gn(e){this.keyName=e}function Yn(e){function i(){return n.maybeReset&&(n.changes=[],n.maybeReset=!1),n.changes.push(new Gn(r)),!0}var t=nt.macroModeState,n=t.lastInsertModeChanges,r=v.keyName(e);if(!r)return;(r.indexOf(\"Delete\")!=-1||r.indexOf(\"Backspace\")!=-1)&&v.lookupKey(r,\"vim-insert\",i)}function Zn(e,t,n,r){function u(){s?ht.processAction(e,t,t.lastEditActionCommand):ht.evalInput(e,t)}function a(n){if(i.lastInsertModeChanges.changes.length>0){n=t.lastEditActionCommand?n:1;var r=i.lastInsertModeChanges;er(e,r.changes,n)}}var i=nt.macroModeState;i.isPlaying=!0;var s=!!t.lastEditActionCommand,o=t.inputState;t.inputState=t.lastEditInputState;if(s&&t.lastEditActionCommand.interlaceInsertRepeat)for(var f=0;f<n;f++)u(),a(1);else r||u(),a(n);t.inputState=o,t.insertMode&&!r&&qn(e),i.isPlaying=!1}function er(e,t,n){function r(t){return typeof t==\"string\"?v.commands[t](e):t(e),!0}var i=e.getCursor(\"head\"),s=nt.macroModeState.lastInsertModeChanges.inVisualBlock;if(s){var o=e.state.vim,u=o.lastSelection,a=xt(u.anchor,u.head);It(e,i,a.line+1),n=e.listSelections().length,e.setCursor(i)}for(var f=0;f<n;f++){s&&e.setCursor(St(i,f,0));for(var l=0;l<t.length;l++){var c=t[l];if(c instanceof Gn)v.lookupKey(c.keyName,\"vim-insert\",r);else{var h=e.getCursor();e.replaceRange(c,h,h)}}}s&&e.setCursor(St(i,0,1))}function nr(e,t,n){t.length>1&&t[0]==\"n\"&&(t=t.replace(\"numpad\",\"\")),t=tr[t]||t;var r=\"\";return n.ctrlKey&&(r+=\"C-\"),n.altKey&&(r+=\"A-\"),n.shiftKey&&(r+=\"S-\"),r+=t,r.length>1&&(r=\"<\"+r+\">\"),r}function ir(e){var t=new e.constructor;return Object.keys(e).forEach(function(n){var r=e[n];Array.isArray(r)?r=r.slice():r&&typeof r==\"object\"&&r.constructor!=Object&&(r=ir(r)),t[n]=r}),e.sel&&(t.sel={head:e.sel.head&&Lt(e.sel.head),anchor:e.sel.anchor&&Lt(e.sel.anchor)}),t}function sr(e,t,n){var r=!1,i=S.maybeInitVimState_(e),s=i.visualBlock||i.wasInVisualBlock;i.wasInVisualBlock&&!e.ace.inMultiSelectMode?i.wasInVisualBlock=!1:e.ace.inMultiSelectMode&&i.visualBlock&&(i.wasInVisualBlock=!0);if(t==\"<Esc>\"&&!i.insertMode&&!i.visualMode&&e.ace.inMultiSelectMode)e.ace.exitMultiSelectMode();else if(s||!e.ace.inMultiSelectMode||e.ace.inVirtualSelectionMode)r=S.handleKey(e,t,n);else{var o=ir(i);e.operation(function(){e.ace.forEachSelection(function(){var i=e.ace.selection;e.state.vim.lastHPos=i.$desiredColumn==null?i.lead.column:i.$desiredColumn;var s=e.getCursor(\"head\"),u=e.getCursor(\"anchor\"),a=Ot(s,u)?0:-1,f=Ot(s,u)?-1:0;s=St(s,0,a),u=St(u,0,f),e.state.vim.sel.head=s,e.state.vim.sel.anchor=u,r=rr(e,t,n),i.$desiredColumn=e.state.vim.lastHPos==-1?null:e.state.vim.lastHPos,e.virtualSelectionMode()&&(e.state.vim=ir(o))}),e.curOp.cursorActivity&&!r&&(e.curOp.cursorActivity=!1)},!0)}return r}function ar(e,t){t.off(\"beforeEndOperation\",ar);var n=t.state.cm.vimCmd;n&&t.execCommand(n.exec?n:n.name,n.args),t.curOp=t.prevOp}var i=e(\"../range\").Range,s=e(\"../lib/event_emitter\").EventEmitter,o=e(\"../lib/dom\"),u=e(\"../lib/oop\"),a=e(\"../lib/keys\"),f=e(\"../lib/event\"),l=e(\"../search\").Search,c=e(\"../lib/useragent\"),h=e(\"../search_highlight\").SearchHighlight,p=e(\"../commands/multi_select_commands\"),d=e(\"../mode/text\").Mode.prototype.tokenRe;e(\"../multi_select\");var v=function(e){this.ace=e,this.state={},this.marks={},this.$uid=0,this.onChange=this.onChange.bind(this),this.onSelectionChange=this.onSelectionChange.bind(this),this.onBeforeEndOperation=this.onBeforeEndOperation.bind(this),this.ace.on(\"change\",this.onChange),this.ace.on(\"changeSelection\",this.onSelectionChange),this.ace.on(\"beforeEndOperation\",this.onBeforeEndOperation)};v.Pos=function(e,t){if(!(this instanceof E))return new E(e,t);this.line=e,this.ch=t},v.defineOption=function(e,t,n){},v.commands={redo:function(e){e.ace.redo()},undo:function(e){e.ace.undo()},newlineAndIndent:function(e){e.ace.insert(\"\\n\")}},v.keyMap={},v.addClass=v.rmClass=v.e_stop=function(){},v.keyName=function(e){if(e.key)return e.key;var t=a[e.keyCode]||\"\";return t.length==1&&(t=t.toUpperCase()),t=f.getModifierString(e).replace(/(^|-)\\w/g,function(e){return e.toUpperCase()})+t,t},v.keyMap[\"default\"]=function(e){return function(t){var n=t.ace.commands.commandKeyBinding[e.toLowerCase()];return n&&t.ace.execCommand(n)!==!1}},v.lookupKey=function fr(e,t,n){typeof t==\"string\"&&(t=v.keyMap[t]);var r=typeof t==\"function\"?t(e):t[e];if(r===!1)return\"nothing\";if(r===\"...\")return\"multi\";if(r!=null&&n(r))return\"handled\";if(t.fallthrough){if(!Array.isArray(t.fallthrough))return fr(e,t.fallthrough,n);for(var i=0;i<t.fallthrough.length;i++){var s=fr(e,t.fallthrough[i],n);if(s)return s}}},v.signal=function(e,t,n){return e._signal(t,n)},v.on=f.addListener,v.off=f.removeListener,v.isWordChar=function(e){return e<\"\"?/^\\w$/.test(e):(d.lastIndex=0,d.test(e))},function(){u.implement(v.prototype,s),this.destroy=function(){this.ace.off(\"change\",this.onChange),this.ace.off(\"changeSelection\",this.onSelectionChange),this.ace.off(\"beforeEndOperation\",this.onBeforeEndOperation),this.removeOverlay()},this.virtualSelectionMode=function(){return this.ace.inVirtualSelectionMode&&this.ace.selection.index},this.onChange=function(e){var t={text:e.action[0]==\"i\"?e.lines:[]},n=this.curOp=this.curOp||{};n.changeHandlers||(n.changeHandlers=this._eventRegistry.change&&this._eventRegistry.change.slice());if(this.virtualSelectionMode())return;n.lastChange?n.lastChange.next=n.lastChange=t:n.lastChange=n.change=t,this.$updateMarkers(e)},this.onSelectionChange=function(){var e=this.curOp=this.curOp||{};e.cursorActivityHandlers||(e.cursorActivityHandlers=this._eventRegistry.cursorActivity&&this._eventRegistry.cursorActivity.slice()),this.curOp.cursorActivity=!0,this.ace.inMultiSelectMode&&this.ace.keyBinding.removeKeyboardHandler(p.keyboardHandler)},this.operation=function(e,t){if(!t&&this.curOp||t&&this.curOp&&this.curOp.force)return e();(t||!this.ace.curOp)&&this.curOp&&this.onBeforeEndOperation();if(!this.ace.curOp){var n=this.ace.prevOp;this.ace.startOperation({command:{name:\"vim\",scrollIntoView:\"cursor\"}})}var r=this.curOp=this.curOp||{};this.curOp.force=t;var i=e();return this.ace.curOp&&this.ace.curOp.command.name==\"vim\"&&(this.ace.endOperation(),!r.cursorActivity&&!r.lastChange&&n&&(this.ace.prevOp=n)),(t||!this.ace.curOp)&&this.curOp&&this.onBeforeEndOperation(),i},this.onBeforeEndOperation=function(){var e=this.curOp;e&&(e.change&&this.signal(\"change\",e.change,e),e&&e.cursorActivity&&this.signal(\"cursorActivity\",null,e),this.curOp=null)},this.signal=function(e,t,n){var r=n?n[e+\"Handlers\"]:(this._eventRegistry||{})[e];if(!r)return;r=r.slice();for(var i=0;i<r.length;i++)r[i](this,t)},this.firstLine=function(){return 0},this.lastLine=function(){return this.ace.session.getLength()-1},this.lineCount=function(){return this.ace.session.getLength()},this.setCursor=function(e,t){typeof e==\"object\"&&(t=e.ch,e=e.line),this.ace.inVirtualSelectionMode||this.ace.exitMultiSelectMode(),this.ace.session.unfold({row:e,column:t}),this.ace.selection.moveTo(e,t)},this.getCursor=function(e){var t=this.ace.selection,n=e==\"anchor\"?t.isEmpty()?t.lead:t.anchor:e==\"head\"||!e?t.lead:t.getRange()[e];return g(n)},this.listSelections=function(e){var t=this.ace.multiSelect.rangeList.ranges;return!t.length||this.ace.inVirtualSelectionMode?[{anchor:this.getCursor(\"anchor\"),head:this.getCursor(\"head\")}]:t.map(function(e){return{anchor:this.clipPos(g(e.cursor==e.end?e.start:e.end)),head:this.clipPos(g(e.cursor))}},this)},this.setSelections=function(e,t){var n=this.ace.multiSelect,r=e.map(function(e){var t=m(e.anchor),n=m(e.head),r=i.comparePoints(t,n)<0?new i.fromPoints(t,n):new i.fromPoints(n,t);return r.cursor=i.comparePoints(r.start,n)?r.end:r.start,r});if(this.ace.inVirtualSelectionMode){this.ace.selection.fromOrientedRange(r[0]);return}t?r[t]&&r.push(r.splice(t,1)[0]):r=r.reverse(),n.toSingleRange(r[0].clone());var s=this.ace.session;for(var o=0;o<r.length;o++){var u=s.$clipRangeToDocument(r[o]);n.addRange(u)}},this.setSelection=function(e,t,n){var r=this.ace.selection;r.moveTo(e.line,e.ch),r.selectTo(t.line,t.ch),n&&n.origin==\"*mouse\"&&this.onBeforeEndOperation()},this.somethingSelected=function(e){return!this.ace.selection.isEmpty()},this.clipPos=function(e){var t=this.ace.session.$clipPositionToDocument(e.line,e.ch);return g(t)},this.markText=function(e){return{clear:function(){},find:function(){}}},this.$updateMarkers=function(e){var t=e.action==\"insert\",n=e.start,r=e.end,s=(r.row-n.row)*(t?1:-1),o=(r.column-n.column)*(t?1:-1);t&&(r=n);for(var u in this.marks){var a=this.marks[u],f=i.comparePoints(a,n);if(f<0)continue;if(f===0&&t){if(a.bias!=1){a.bias==-1;continue}f=1}var l=t?f:i.comparePoints(a,r);if(l>0){a.row+=s,a.column+=a.row==r.row?o:0;continue}!t&&l<=0&&(a.row=n.row,a.column=n.column,l===0&&(a.bias=1))}};var e=function(e,t,n,r){this.cm=e,this.id=t,this.row=n,this.column=r,e.marks[this.id]=this};e.prototype.clear=function(){delete this.cm.marks[this.id]},e.prototype.find=function(){return g(this)},this.setBookmark=function(t,n){var r=new e(this,this.$uid++,t.line,t.ch);if(!n||!n.insertLeft)r.$insertRight=!0;return this.marks[r.id]=r,r},this.moveH=function(e,t){if(t==\"char\"){var n=this.ace.selection;n.clearSelection(),n.moveCursorBy(0,e)}},this.findPosV=function(e,t,n,r){if(n==\"page\"){var i=this.ace.renderer,s=i.layerConfig;t*=Math.floor(s.height/s.lineHeight),n=\"line\"}if(n==\"line\"){var o=this.ace.session.documentToScreenPosition(e.line,e.ch);r!=null&&(o.column=r),o.row+=t,o.row=Math.min(Math.max(0,o.row),this.ace.session.getScreenLength()-1);var u=this.ace.session.screenToDocumentPosition(o.row,o.column);return g(u)}debugger},this.charCoords=function(e,t){if(t==\"div\"||!t){var n=this.ace.session.documentToScreenPosition(e.line,e.ch);return{left:n.column,top:n.row}}if(t==\"local\"){var r=this.ace.renderer,n=this.ace.session.documentToScreenPosition(e.line,e.ch),i=r.layerConfig.lineHeight,s=r.layerConfig.characterWidth,o=i*n.row;return{left:n.column*s,top:o,bottom:o+i}}},this.coordsChar=function(e,t){var n=this.ace.renderer;if(t==\"local\"){var r=Math.max(0,Math.floor(e.top/n.lineHeight)),i=Math.max(0,Math.floor(e.left/n.characterWidth)),s=n.session.screenToDocumentPosition(r,i);return g(s)}if(t==\"div\")throw\"not implemented\"},this.getSearchCursor=function(e,t,n){var r=!1,i=!1;e instanceof RegExp&&!e.global&&(r=!e.ignoreCase,e=e.source,i=!0);var s=new l;t.ch==undefined&&(t.ch=Number.MAX_VALUE);var o={row:t.line,column:t.ch},u=this,a=null;return{findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(t){s.setOptions({needle:e,caseSensitive:r,wrap:!1,backwards:t,regExp:i,start:a||o});var n=s.find(u.ace.session);return n&&n.isEmpty()&&u.getLine(n.start.row).length==n.start.column&&(s.$options.start=n,n=s.find(u.ace.session)),a=n,a},from:function(){return a&&g(a.start)},to:function(){return a&&g(a.end)},replace:function(e){a&&(a.end=u.ace.session.doc.replace(a,e))}}},this.scrollTo=function(e,t){var n=this.ace.renderer,r=n.layerConfig,i=r.maxHeight;i-=(n.$size.scrollerHeight-n.lineHeight)*n.$scrollPastEnd,t!=null&&this.ace.session.setScrollTop(Math.max(0,Math.min(t,i))),e!=null&&this.ace.session.setScrollLeft(Math.max(0,Math.min(e,r.width)))},this.scrollInfo=function(){return 0},this.scrollIntoView=function(e,t){if(e){var n=this.ace.renderer,r={top:0,bottom:t};n.scrollCursorIntoView(m(e),n.lineHeight*2/n.$size.scrollerHeight,r)}},this.getLine=function(e){return this.ace.session.getLine(e)},this.getRange=function(e,t){return this.ace.session.getTextRange(new i(e.line,e.ch,t.line,t.ch))},this.replaceRange=function(e,t,n){return n||(n=t),this.ace.session.replace(new i(t.line,t.ch,n.line,n.ch),e)},this.replaceSelections=function(e){var t=this.ace.selection;if(this.ace.inVirtualSelectionMode){this.ace.session.replace(t.getRange(),e[0]||\"\");return}t.inVirtualSelectionMode=!0;var n=t.rangeList.ranges;n.length||(n=[this.ace.multiSelect.getRange()]);for(var r=n.length;r--;)this.ace.session.replace(n[r],e[r]||\"\");t.inVirtualSelectionMode=!1},this.getSelection=function(){return this.ace.getSelectedText()},this.getSelections=function(){return this.listSelections().map(function(e){return this.getRange(e.anchor,e.head)},this)},this.getInputField=function(){return this.ace.textInput.getElement()},this.getWrapperElement=function(){return this.ace.containter};var t={indentWithTabs:\"useSoftTabs\",indentUnit:\"tabSize\",tabSize:\"tabSize\",firstLineNumber:\"firstLineNumber\",readOnly:\"readOnly\"};this.setOption=function(e,n){this.state[e]=n;switch(e){case\"indentWithTabs\":e=t[e],n=!n;break;default:e=t[e]}e&&this.ace.setOption(e,n)},this.getOption=function(e,n){var r=t[e];r&&(n=this.ace.getOption(r));switch(e){case\"indentWithTabs\":return e=t[e],!n}return r?n:this.state[e]},this.toggleOverwrite=function(e){return this.state.overwrite=e,this.ace.setOverwrite(e)},this.addOverlay=function(e){if(!this.$searchHighlight||!this.$searchHighlight.session){var t=new h(null,\"ace_highlight-marker\",\"text\"),n=this.ace.session.addDynamicMarker(t);t.id=n.id,t.session=this.ace.session,t.destroy=function(e){t.session.off(\"change\",t.updateOnChange),t.session.off(\"changeEditor\",t.destroy),t.session.removeMarker(t.id),t.session=null},t.updateOnChange=function(e){var n=e.start.row;n==e.end.row?t.cache[n]=undefined:t.cache.splice(n,t.cache.length)},t.session.on(\"changeEditor\",t.destroy),t.session.on(\"change\",t.updateOnChange)}var r=new RegExp(e.query.source,\"gmi\");this.$searchHighlight=e.highlight=t,this.$searchHighlight.setRegexp(r),this.ace.renderer.updateBackMarkers()},this.removeOverlay=function(e){this.$searchHighlight&&this.$searchHighlight.session&&this.$searchHighlight.destroy()},this.getScrollInfo=function(){var e=this.ace.renderer,t=e.layerConfig;return{left:e.scrollLeft,top:e.scrollTop,height:t.maxHeight,width:t.width,clientHeight:t.height,clientWidth:t.width}},this.getValue=function(){return this.ace.getValue()},this.setValue=function(e){return this.ace.setValue(e)},this.getTokenTypeAt=function(e){var t=this.ace.session.getTokenAt(e.line,e.ch);return t&&/comment|string/.test(t.type)?\"string\":\"\"},this.findMatchingBracket=function(e){var t=this.ace.session.findMatchingBracket(m(e));return{to:t&&g(t)}},this.indentLine=function(e,t){t===!0?this.ace.session.indentRows(e,e,\"\t\"):t===!1&&this.ace.session.outdentRows(new i(e,0,e,0))},this.indexFromPos=function(e){return this.ace.session.doc.positionToIndex(m(e))},this.posFromIndex=function(e){return g(this.ace.session.doc.indexToPosition(e))},this.focus=function(e){return this.ace.focus()},this.blur=function(e){return this.ace.blur()},this.defaultTextHeight=function(e){return this.ace.renderer.layerConfig.lineHeight},this.scanForBracket=function(e,t,n,r){var i=r.bracketRegex.source;if(t==1)var s=this.ace.session.$findClosingBracket(i.slice(1,2),m(e),/paren|text/);else var s=this.ace.session.$findOpeningBracket(i.slice(-2,-1),{row:e.line,column:e.ch+1},/paren|text/);return s&&{pos:g(s)}},this.refresh=function(){return this.ace.resize(!0)},this.getMode=function(){return{name:this.getOption(\"mode\")}}}.call(v.prototype);var y=v.StringStream=function(e,t){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0};y.prototype={eol:function(){return this.pos>=this.string.length},sol:function(){return this.pos==this.lineStart},peek:function(){return this.string.charAt(this.pos)||undefined},next:function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},eat:function(e){var t=this.string.charAt(this.pos);if(typeof e==\"string\")var n=t==e;else var n=t&&(e.test?e.test(t):e(t));if(n)return++this.pos,t},eatWhile:function(e){var t=this.pos;while(this.eat(e));return this.pos>t},eatSpace:function(){var e=this.pos;while(/[\\s\\u00a0]/.test(this.string.charAt(this.pos)))++this.pos;return this.pos>e},skipToEnd:function(){this.pos=this.string.length},skipTo:function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},backUp:function(e){this.pos-=e},column:function(){throw\"not implemented\"},indentation:function(){throw\"not implemented\"},match:function(e,t,n){if(typeof e!=\"string\"){var s=this.string.slice(this.pos).match(e);return s&&s.index>0?null:(s&&t!==!1&&(this.pos+=s[0].length),s)}var r=function(e){return n?e.toLowerCase():e},i=this.string.substr(this.pos,e.length);if(r(i)==r(e))return t!==!1&&(this.pos+=e.length),!0},current:function(){return this.string.slice(this.start,this.pos)},hideFirstChars:function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}}},v.defineExtension=function(e,t){v.prototype[e]=t},o.importCssString(\".normal-mode .ace_cursor{  border: 1px solid red;  background-color: red;  opacity: 0.5;}.normal-mode .ace_hidden-cursors .ace_cursor{  background-color: transparent;}.ace_dialog {  position: absolute;  left: 0; right: 0;  background: white;  z-index: 15;  padding: .1em .8em;  overflow: hidden;  color: #333;}.ace_dialog-top {  border-bottom: 1px solid #eee;  top: 0;}.ace_dialog-bottom {  border-top: 1px solid #eee;  bottom: 0;}.ace_dialog input {  border: none;  outline: none;  background: transparent;  width: 20em;  color: inherit;  font-family: monospace;}\",\"vimMode\"),function(){function e(e,t,n){var r=e.ace.container,i;return i=r.appendChild(document.createElement(\"div\")),n?i.className=\"ace_dialog ace_dialog-bottom\":i.className=\"ace_dialog ace_dialog-top\",typeof t==\"string\"?i.innerHTML=t:i.appendChild(t),i}function t(e,t){e.state.currentNotificationClose&&e.state.currentNotificationClose(),e.state.currentNotificationClose=t}v.defineExtension(\"openDialog\",function(n,r,i){function a(e){if(typeof e==\"string\")f.value=e;else{if(o)return;o=!0,s.parentNode.removeChild(s),u.focus(),i.onClose&&i.onClose(s)}}if(this.virtualSelectionMode())return;i||(i={}),t(this,null);var s=e(this,n,i.bottom),o=!1,u=this,f=s.getElementsByTagName(\"input\")[0],l;if(f)i.value&&(f.value=i.value,i.select!==!1&&f.select()),i.onInput&&v.on(f,\"input\",function(e){i.onInput(e,f.value,a)}),i.onKeyUp&&v.on(f,\"keyup\",function(e){i.onKeyUp(e,f.value,a)}),v.on(f,\"keydown\",function(e){if(i&&i.onKeyDown&&i.onKeyDown(e,f.value,a))return;if(e.keyCode==27||i.closeOnEnter!==!1&&e.keyCode==13)f.blur(),v.e_stop(e),a();e.keyCode==13&&r(f.value)}),i.closeOnBlur!==!1&&v.on(f,\"blur\",a),f.focus();else if(l=s.getElementsByTagName(\"button\")[0])v.on(l,\"click\",function(){a(),u.focus()}),i.closeOnBlur!==!1&&v.on(l,\"blur\",a),l.focus();return a}),v.defineExtension(\"openNotification\",function(n,r){function a(){if(s)return;s=!0,clearTimeout(o),i.parentNode.removeChild(i)}if(this.virtualSelectionMode())return;t(this,a);var i=e(this,n,r&&r.bottom),s=!1,o,u=r&&typeof r.duration!=\"undefined\"?r.duration:5e3;return v.on(i,\"click\",function(e){v.e_preventDefault(e),a()}),u&&(o=setTimeout(a,u)),a})}();var b=[{keys:\"<Left>\",type:\"keyToKey\",toKeys:\"h\"},{keys:\"<Right>\",type:\"keyToKey\",toKeys:\"l\"},{keys:\"<Up>\",type:\"keyToKey\",toKeys:\"k\"},{keys:\"<Down>\",type:\"keyToKey\",toKeys:\"j\"},{keys:\"<Space>\",type:\"keyToKey\",toKeys:\"l\"},{keys:\"<BS>\",type:\"keyToKey\",toKeys:\"h\",context:\"normal\"},{keys:\"<C-Space>\",type:\"keyToKey\",toKeys:\"W\"},{keys:\"<C-BS>\",type:\"keyToKey\",toKeys:\"B\",context:\"normal\"},{keys:\"<S-Space>\",type:\"keyToKey\",toKeys:\"w\"},{keys:\"<S-BS>\",type:\"keyToKey\",toKeys:\"b\",context:\"normal\"},{keys:\"<C-n>\",type:\"keyToKey\",toKeys:\"j\"},{keys:\"<C-p>\",type:\"keyToKey\",toKeys:\"k\"},{keys:\"<C-[>\",type:\"keyToKey\",toKeys:\"<Esc>\"},{keys:\"<C-c>\",type:\"keyToKey\",toKeys:\"<Esc>\"},{keys:\"<C-[>\",type:\"keyToKey\",toKeys:\"<Esc>\",context:\"insert\"},{keys:\"<C-c>\",type:\"keyToKey\",toKeys:\"<Esc>\",context:\"insert\"},{keys:\"s\",type:\"keyToKey\",toKeys:\"cl\",context:\"normal\"},{keys:\"s\",type:\"keyToKey\",toKeys:\"c\",context:\"visual\"},{keys:\"S\",type:\"keyToKey\",toKeys:\"cc\",context:\"normal\"},{keys:\"S\",type:\"keyToKey\",toKeys:\"VdO\",context:\"visual\"},{keys:\"<Home>\",type:\"keyToKey\",toKeys:\"0\"},{keys:\"<End>\",type:\"keyToKey\",toKeys:\"$\"},{keys:\"<PageUp>\",type:\"keyToKey\",toKeys:\"<C-b>\"},{keys:\"<PageDown>\",type:\"keyToKey\",toKeys:\"<C-f>\"},{keys:\"<CR>\",type:\"keyToKey\",toKeys:\"j^\",context:\"normal\"},{keys:\"H\",type:\"motion\",motion:\"moveToTopLine\",motionArgs:{linewise:!0,toJumplist:!0}},{keys:\"M\",type:\"motion\",motion:\"moveToMiddleLine\",motionArgs:{linewise:!0,toJumplist:!0}},{keys:\"L\",type:\"motion\",motion:\"moveToBottomLine\",motionArgs:{linewise:!0,toJumplist:!0}},{keys:\"h\",type:\"motion\",motion:\"moveByCharacters\",motionArgs:{forward:!1}},{keys:\"l\",type:\"motion\",motion:\"moveByCharacters\",motionArgs:{forward:!0}},{keys:\"j\",type:\"motion\",motion:\"moveByLines\",motionArgs:{forward:!0,linewise:!0}},{keys:\"k\",type:\"motion\",motion:\"moveByLines\",motionArgs:{forward:!1,linewise:!0}},{keys:\"gj\",type:\"motion\",motion:\"moveByDisplayLines\",motionArgs:{forward:!0}},{keys:\"gk\",type:\"motion\",motion:\"moveByDisplayLines\",motionArgs:{forward:!1}},{keys:\"w\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!0,wordEnd:!1}},{keys:\"W\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!0,wordEnd:!1,bigWord:!0}},{keys:\"e\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!0,wordEnd:!0,inclusive:!0}},{keys:\"E\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!0,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:\"b\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!1,wordEnd:!1}},{keys:\"B\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!1,wordEnd:!1,bigWord:!0}},{keys:\"ge\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!1,wordEnd:!0,inclusive:!0}},{keys:\"gE\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!1,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:\"{\",type:\"motion\",motion:\"moveByParagraph\",motionArgs:{forward:!1,toJumplist:!0}},{keys:\"}\",type:\"motion\",motion:\"moveByParagraph\",motionArgs:{forward:!0,toJumplist:!0}},{keys:\"<C-f>\",type:\"motion\",motion:\"moveByPage\",motionArgs:{forward:!0}},{keys:\"<C-b>\",type:\"motion\",motion:\"moveByPage\",motionArgs:{forward:!1}},{keys:\"<C-d>\",type:\"motion\",motion:\"moveByScroll\",motionArgs:{forward:!0,explicitRepeat:!0}},{keys:\"<C-u>\",type:\"motion\",motion:\"moveByScroll\",motionArgs:{forward:!1,explicitRepeat:!0}},{keys:\"gg\",type:\"motion\",motion:\"moveToLineOrEdgeOfDocument\",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:\"G\",type:\"motion\",motion:\"moveToLineOrEdgeOfDocument\",motionArgs:{forward:!0,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:\"0\",type:\"motion\",motion:\"moveToStartOfLine\"},{keys:\"^\",type:\"motion\",motion:\"moveToFirstNonWhiteSpaceCharacter\"},{keys:\"+\",type:\"motion\",motion:\"moveByLines\",motionArgs:{forward:!0,toFirstChar:!0}},{keys:\"-\",type:\"motion\",motion:\"moveByLines\",motionArgs:{forward:!1,toFirstChar:!0}},{keys:\"_\",type:\"motion\",motion:\"moveByLines\",motionArgs:{forward:!0,toFirstChar:!0,repeatOffset:-1}},{keys:\"$\",type:\"motion\",motion:\"moveToEol\",motionArgs:{inclusive:!0}},{keys:\"%\",type:\"motion\",motion:\"moveToMatchedSymbol\",motionArgs:{inclusive:!0,toJumplist:!0}},{keys:\"f<character>\",type:\"motion\",motion:\"moveToCharacter\",motionArgs:{forward:!0,inclusive:!0}},{keys:\"F<character>\",type:\"motion\",motion:\"moveToCharacter\",motionArgs:{forward:!1}},{keys:\"t<character>\",type:\"motion\",motion:\"moveTillCharacter\",motionArgs:{forward:!0,inclusive:!0}},{keys:\"T<character>\",type:\"motion\",motion:\"moveTillCharacter\",motionArgs:{forward:!1}},{keys:\";\",type:\"motion\",motion:\"repeatLastCharacterSearch\",motionArgs:{forward:!0}},{keys:\",\",type:\"motion\",motion:\"repeatLastCharacterSearch\",motionArgs:{forward:!1}},{keys:\"'<character>\",type:\"motion\",motion:\"goToMark\",motionArgs:{toJumplist:!0,linewise:!0}},{keys:\"`<character>\",type:\"motion\",motion:\"goToMark\",motionArgs:{toJumplist:!0}},{keys:\"]`\",type:\"motion\",motion:\"jumpToMark\",motionArgs:{forward:!0}},{keys:\"[`\",type:\"motion\",motion:\"jumpToMark\",motionArgs:{forward:!1}},{keys:\"]'\",type:\"motion\",motion:\"jumpToMark\",motionArgs:{forward:!0,linewise:!0}},{keys:\"['\",type:\"motion\",motion:\"jumpToMark\",motionArgs:{forward:!1,linewise:!0}},{keys:\"]p\",type:\"action\",action:\"paste\",isEdit:!0,actionArgs:{after:!0,isEdit:!0,matchIndent:!0}},{keys:\"[p\",type:\"action\",action:\"paste\",isEdit:!0,actionArgs:{after:!1,isEdit:!0,matchIndent:!0}},{keys:\"]<character>\",type:\"motion\",motion:\"moveToSymbol\",motionArgs:{forward:!0,toJumplist:!0}},{keys:\"[<character>\",type:\"motion\",motion:\"moveToSymbol\",motionArgs:{forward:!1,toJumplist:!0}},{keys:\"|\",type:\"motion\",motion:\"moveToColumn\"},{keys:\"o\",type:\"motion\",motion:\"moveToOtherHighlightedEnd\",context:\"visual\"},{keys:\"O\",type:\"motion\",motion:\"moveToOtherHighlightedEnd\",motionArgs:{sameLine:!0},context:\"visual\"},{keys:\"d\",type:\"operator\",operator:\"delete\"},{keys:\"y\",type:\"operator\",operator:\"yank\"},{keys:\"c\",type:\"operator\",operator:\"change\"},{keys:\">\",type:\"operator\",operator:\"indent\",operatorArgs:{indentRight:!0}},{keys:\"<\",type:\"operator\",operator:\"indent\",operatorArgs:{indentRight:!1}},{keys:\"g~\",type:\"operator\",operator:\"changeCase\"},{keys:\"gu\",type:\"operator\",operator:\"changeCase\",operatorArgs:{toLower:!0},isEdit:!0},{keys:\"gU\",type:\"operator\",operator:\"changeCase\",operatorArgs:{toLower:!1},isEdit:!0},{keys:\"n\",type:\"motion\",motion:\"findNext\",motionArgs:{forward:!0,toJumplist:!0}},{keys:\"N\",type:\"motion\",motion:\"findNext\",motionArgs:{forward:!1,toJumplist:!0}},{keys:\"x\",type:\"operatorMotion\",operator:\"delete\",motion:\"moveByCharacters\",motionArgs:{forward:!0},operatorMotionArgs:{visualLine:!1}},{keys:\"X\",type:\"operatorMotion\",operator:\"delete\",motion:\"moveByCharacters\",motionArgs:{forward:!1},operatorMotionArgs:{visualLine:!0}},{keys:\"D\",type:\"operatorMotion\",operator:\"delete\",motion:\"moveToEol\",motionArgs:{inclusive:!0},context:\"normal\"},{keys:\"D\",type:\"operator\",operator:\"delete\",operatorArgs:{linewise:!0},context:\"visual\"},{keys:\"Y\",type:\"operatorMotion\",operator:\"yank\",motion:\"moveToEol\",motionArgs:{inclusive:!0},context:\"normal\"},{keys:\"Y\",type:\"operator\",operator:\"yank\",operatorArgs:{linewise:!0},context:\"visual\"},{keys:\"C\",type:\"operatorMotion\",operator:\"change\",motion:\"moveToEol\",motionArgs:{inclusive:!0},context:\"normal\"},{keys:\"C\",type:\"operator\",operator:\"change\",operatorArgs:{linewise:!0},context:\"visual\"},{keys:\"~\",type:\"operatorMotion\",operator:\"changeCase\",motion:\"moveByCharacters\",motionArgs:{forward:!0},operatorArgs:{shouldMoveCursor:!0},context:\"normal\"},{keys:\"~\",type:\"operator\",operator:\"changeCase\",context:\"visual\"},{keys:\"<C-w>\",type:\"operatorMotion\",operator:\"delete\",motion:\"moveByWords\",motionArgs:{forward:!1,wordEnd:!1},context:\"insert\"},{keys:\"<C-i>\",type:\"action\",action:\"jumpListWalk\",actionArgs:{forward:!0}},{keys:\"<C-o>\",type:\"action\",action:\"jumpListWalk\",actionArgs:{forward:!1}},{keys:\"<C-e>\",type:\"action\",action:\"scroll\",actionArgs:{forward:!0,linewise:!0}},{keys:\"<C-y>\",type:\"action\",action:\"scroll\",actionArgs:{forward:!1,linewise:!0}},{keys:\"a\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"charAfter\"},context:\"normal\"},{keys:\"A\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"eol\"},context:\"normal\"},{keys:\"A\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"endOfSelectedArea\"},context:\"visual\"},{keys:\"i\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"inplace\"},context:\"normal\"},{keys:\"I\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"firstNonBlank\"},context:\"normal\"},{keys:\"I\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"startOfSelectedArea\"},context:\"visual\"},{keys:\"o\",type:\"action\",action:\"newLineAndEnterInsertMode\",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!0},context:\"normal\"},{keys:\"O\",type:\"action\",action:\"newLineAndEnterInsertMode\",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!1},context:\"normal\"},{keys:\"v\",type:\"action\",action:\"toggleVisualMode\"},{keys:\"V\",type:\"action\",action:\"toggleVisualMode\",actionArgs:{linewise:!0}},{keys:\"<C-v>\",type:\"action\",action:\"toggleVisualMode\",actionArgs:{blockwise:!0}},{keys:\"<C-q>\",type:\"action\",action:\"toggleVisualMode\",actionArgs:{blockwise:!0}},{keys:\"gv\",type:\"action\",action:\"reselectLastSelection\"},{keys:\"J\",type:\"action\",action:\"joinLines\",isEdit:!0},{keys:\"p\",type:\"action\",action:\"paste\",isEdit:!0,actionArgs:{after:!0,isEdit:!0}},{keys:\"P\",type:\"action\",action:\"paste\",isEdit:!0,actionArgs:{after:!1,isEdit:!0}},{keys:\"r<character>\",type:\"action\",action:\"replace\",isEdit:!0},{keys:\"@<character>\",type:\"action\",action:\"replayMacro\"},{keys:\"q<character>\",type:\"action\",action:\"enterMacroRecordMode\"},{keys:\"R\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{replace:!0}},{keys:\"u\",type:\"action\",action:\"undo\",context:\"normal\"},{keys:\"u\",type:\"operator\",operator:\"changeCase\",operatorArgs:{toLower:!0},context:\"visual\",isEdit:!0},{keys:\"U\",type:\"operator\",operator:\"changeCase\",operatorArgs:{toLower:!1},context:\"visual\",isEdit:!0},{keys:\"<C-r>\",type:\"action\",action:\"redo\"},{keys:\"m<character>\",type:\"action\",action:\"setMark\"},{keys:'\"<character>',type:\"action\",action:\"setRegister\"},{keys:\"zz\",type:\"action\",action:\"scrollToCursor\",actionArgs:{position:\"center\"}},{keys:\"z.\",type:\"action\",action:\"scrollToCursor\",actionArgs:{position:\"center\"},motion:\"moveToFirstNonWhiteSpaceCharacter\"},{keys:\"zt\",type:\"action\",action:\"scrollToCursor\",actionArgs:{position:\"top\"}},{keys:\"z<CR>\",type:\"action\",action:\"scrollToCursor\",actionArgs:{position:\"top\"},motion:\"moveToFirstNonWhiteSpaceCharacter\"},{keys:\"z-\",type:\"action\",action:\"scrollToCursor\",actionArgs:{position:\"bottom\"}},{keys:\"zb\",type:\"action\",action:\"scrollToCursor\",actionArgs:{position:\"bottom\"},motion:\"moveToFirstNonWhiteSpaceCharacter\"},{keys:\".\",type:\"action\",action:\"repeatLastEdit\"},{keys:\"<C-a>\",type:\"action\",action:\"incrementNumberToken\",isEdit:!0,actionArgs:{increase:!0,backtrack:!1}},{keys:\"<C-x>\",type:\"action\",action:\"incrementNumberToken\",isEdit:!0,actionArgs:{increase:!1,backtrack:!1}},{keys:\"a<character>\",type:\"motion\",motion:\"textObjectManipulation\"},{keys:\"i<character>\",type:\"motion\",motion:\"textObjectManipulation\",motionArgs:{textObjectInner:!0}},{keys:\"/\",type:\"search\",searchArgs:{forward:!0,querySrc:\"prompt\",toJumplist:!0}},{keys:\"?\",type:\"search\",searchArgs:{forward:!1,querySrc:\"prompt\",toJumplist:!0}},{keys:\"*\",type:\"search\",searchArgs:{forward:!0,querySrc:\"wordUnderCursor\",wholeWordOnly:!0,toJumplist:!0}},{keys:\"#\",type:\"search\",searchArgs:{forward:!1,querySrc:\"wordUnderCursor\",wholeWordOnly:!0,toJumplist:!0}},{keys:\"g*\",type:\"search\",searchArgs:{forward:!0,querySrc:\"wordUnderCursor\",toJumplist:!0}},{keys:\"g#\",type:\"search\",searchArgs:{forward:!1,querySrc:\"wordUnderCursor\",toJumplist:!0}},{keys:\":\",type:\"ex\"}],w=[{name:\"colorscheme\",shortName:\"colo\"},{name:\"map\"},{name:\"imap\",shortName:\"im\"},{name:\"nmap\",shortName:\"nm\"},{name:\"vmap\",shortName:\"vm\"},{name:\"unmap\"},{name:\"write\",shortName:\"w\"},{name:\"undo\",shortName:\"u\"},{name:\"redo\",shortName:\"red\"},{name:\"set\",shortName:\"se\"},{name:\"set\",shortName:\"se\"},{name:\"setlocal\",shortName:\"setl\"},{name:\"setglobal\",shortName:\"setg\"},{name:\"sort\",shortName:\"sor\"},{name:\"substitute\",shortName:\"s\",possiblyAsync:!0},{name:\"nohlsearch\",shortName:\"noh\"},{name:\"delmarks\",shortName:\"delm\"},{name:\"registers\",shortName:\"reg\",excludeFromCommandHistory:!0},{name:\"global\",shortName:\"g\"}],E=v.Pos,S=function(){return st};v.defineOption(\"vimMode\",!1,function(e,t,n){t&&e.getOption(\"keyMap\")!=\"vim\"?e.setOption(\"keyMap\",\"vim\"):!t&&n!=v.Init&&/^vim/.test(e.getOption(\"keyMap\"))&&e.setOption(\"keyMap\",\"default\")});var L={Shift:\"S\",Ctrl:\"C\",Alt:\"A\",Cmd:\"D\",Mod:\"A\"},A={Enter:\"CR\",Backspace:\"BS\",Delete:\"Del\"},_=/[\\d]/,D=[v.isWordChar,function(e){return e&&!v.isWordChar(e)&&!/\\s/.test(e)}],P=[function(e){return/\\S/.test(e)}],B=H(65,26),j=H(97,26),F=H(48,10),I=[].concat(B,j,F,[\"<\",\">\"]),q=[].concat(B,j,F,[\"-\",'\"',\".\",\":\",\"/\"]),J={};K(\"filetype\",undefined,\"string\",[\"ft\"],function(e,t){if(t===undefined)return;if(e===undefined){var n=t.getOption(\"mode\");return n==\"null\"?\"\":n}var n=e==\"\"?\"null\":e;t.setOption(\"mode\",n)});var Y=function(){function s(s,o,u){function l(n){var r=++t%e,o=i[r];o&&o.clear(),i[r]=s.setBookmark(n)}var a=t%e,f=i[a];if(f){var c=f.find();c&&!At(c,o)&&l(o)}else l(o);l(u),n=t,r=t-e+1,r<0&&(r=0)}function o(s,o){t+=o,t>n?t=n:t<r&&(t=r);var u=i[(e+t)%e];if(u&&!u.find()){var a=o>0?1:-1,f,l=s.getCursor();do{t+=a,u=i[(e+t)%e];if(u&&(f=u.find())&&!At(l,f))break}while(t<n&&t>r)}return u}var e=100,t=-1,n=0,r=0,i=new Array(e);return{cachedCursor:undefined,add:s,move:o}},Z=function(e){return e?{changes:e.changes,expectCursorActivityForChange:e.expectCursorActivityForChange}:{changes:[],expectCursorActivityForChange:!1}};et.prototype={exitMacroRecordMode:function(){var e=nt.macroModeState;e.onRecordingDone&&e.onRecordingDone(),e.onRecordingDone=undefined,e.isRecording=!1},enterMacroRecordMode:function(e,t){var n=nt.registerController.getRegister(t);n&&(n.clear(),this.latestRegister=t,e.openDialog&&(this.onRecordingDone=e.openDialog(\"(recording)[\"+t+\"]\",null,{bottom:!0})),this.isRecording=!0)}};var nt,it,st={buildKeyMap:function(){},getRegisterController:function(){return nt.registerController},resetVimGlobalState_:rt,getVimGlobalState_:function(){return nt},maybeInitVimState_:tt,suppressErrorLogging:!1,InsertModeKey:Gn,map:function(e,t,n){Fn.map(e,t,n)},unmap:function(e,t){Fn.unmap(e,t)},setOption:Q,getOption:G,defineOption:K,defineEx:function(e,t,n){if(!t)t=e;else if(e.indexOf(t)!==0)throw new Error('(Vim.defineEx) \"'+t+'\" is not a prefix of \"'+e+'\", command not registered');jn[e]=n,Fn.commandMap_[t]={name:e,shortName:t,type:\"api\"}},handleKey:function(e,t,n){var r=this.findKey(e,t,n);if(typeof r==\"function\")return r()},findKey:function(e,t,n){function i(){var r=nt.macroModeState;if(r.isRecording){if(t==\"q\")return r.exitMacroRecordMode(),ut(e),!0;n!=\"mapping\"&&Wn(r,t)}}function s(){if(t==\"<Esc>\")return ut(e),r.visualMode?$t(e):r.insertMode&&qn(e),!0}function o(n){var r;while(n)r=/<\\w+-.+?>|<\\w+>|./.exec(n),t=r[0],n=n.substring(r.index+t.length),v.Vim.handleKey(e,t,\"mapping\")}function u(){if(s())return!0;var n=r.inputState.keyBuffer=r.inputState.keyBuffer+t,i=t.length==1,o=ht.matchCommand(n,b,r.inputState,\"insert\");while(n.length>1&&o.type!=\"full\"){var n=r.inputState.keyBuffer=n.slice(1),u=ht.matchCommand(n,b,r.inputState,\"insert\");u.type!=\"none\"&&(o=u)}if(o.type==\"none\")return ut(e),!1;if(o.type==\"partial\")return it&&window.clearTimeout(it),it=window.setTimeout(function(){r.insertMode&&r.inputState.keyBuffer&&ut(e)},G(\"insertModeEscKeysTimeout\")),!i;it&&window.clearTimeout(it);if(i){var a=e.listSelections();for(var f=0;f<a.length;f++){var l=a[f].head;e.replaceRange(\"\",St(l,0,-(n.length-1)),l,\"+input\")}nt.macroModeState.lastInsertModeChanges.changes.pop()}return ut(e),o.command}function a(){if(i()||s())return!0;var n=r.inputState.keyBuffer=r.inputState.keyBuffer+t;if(/^[1-9]\\d*$/.test(n))return!0;var o=/^(\\d*)(.*)$/.exec(n);if(!o)return ut(e),!1;var u=r.visualMode?\"visual\":\"normal\",a=ht.matchCommand(o[2]||o[1],b,r.inputState,u);if(a.type==\"none\")return ut(e),!1;if(a.type==\"partial\")return!0;r.inputState.keyBuffer=\"\";var o=/^(\\d*)(.*)$/.exec(n);return o[1]&&o[1]!=\"0\"&&r.inputState.pushRepeatDigit(o[1]),a.command}var r=tt(e),f;return r.insertMode?f=u():f=a(),f===!1?undefined:f===!0?function(){return!0}:function(){if((f.operator||f.isEdit)&&e.getOption(\"readOnly\"))return;return e.operation(function(){e.curOp.isVimOp=!0;try{f.type==\"keyToKey\"?o(f.toKeys):ht.processCommand(e,r,f)}catch(t){throw e.state.vim=undefined,tt(e),v.Vim.suppressErrorLogging||console.log(t),t}return!0})}},handleEx:function(e,t){Fn.processCommand(e,t)},defineMotion:dt,defineAction:bt,defineOperator:gt,mapCommand:Un,_mapCommand:Rn,defineRegister:ft,exitVisualMode:$t,exitInsertMode:qn};ot.prototype.pushRepeatDigit=function(e){this.operator?this.motionRepeat=this.motionRepeat.concat(e):this.prefixRepeat=this.prefixRepeat.concat(e)},ot.prototype.getRepeat=function(){var e=0;if(this.prefixRepeat.length>0||this.motionRepeat.length>0)e=1,this.prefixRepeat.length>0&&(e*=parseInt(this.prefixRepeat.join(\"\"),10)),this.motionRepeat.length>0&&(e*=parseInt(this.motionRepeat.join(\"\"),10));return e},at.prototype={setText:function(e,t,n){this.keyBuffer=[e||\"\"],this.linewise=!!t,this.blockwise=!!n},pushText:function(e,t){t&&(this.linewise||this.keyBuffer.push(\"\\n\"),this.linewise=!0),this.keyBuffer.push(e)},pushInsertModeChanges:function(e){this.insertModeChanges.push(Z(e))},pushSearchQuery:function(e){this.searchQueries.push(e)},clear:function(){this.keyBuffer=[],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!1},toString:function(){return this.keyBuffer.join(\"\")}},lt.prototype={pushText:function(e,t,n,r,i){r&&n.charAt(0)==\"\\n\"&&(n=n.slice(1)+\"\\n\"),r&&n.charAt(n.length-1)!==\"\\n\"&&(n+=\"\\n\");var s=this.isValidRegister(e)?this.getRegister(e):null;if(!s){switch(t){case\"yank\":this.registers[0]=new at(n,r,i);break;case\"delete\":case\"change\":n.indexOf(\"\\n\")==-1?this.registers[\"-\"]=new at(n,r):(this.shiftNumericRegisters_(),this.registers[1]=new at(n,r))}this.unnamedRegister.setText(n,r,i);return}var o=X(e);o?s.pushText(n,r):s.setText(n,r,i),this.unnamedRegister.setText(s.toString(),r)},getRegister:function(e){return this.isValidRegister(e)?(e=e.toLowerCase(),this.registers[e]||(this.registers[e]=new at),this.registers[e]):this.unnamedRegister},isValidRegister:function(e){return e&&$(e,q)},shiftNumericRegisters_:function(){for(var e=9;e>=2;e--)this.registers[e]=this.getRegister(\"\"+(e-1))}},ct.prototype={nextMatch:function(e,t){var n=this.historyBuffer,r=t?-1:1;this.initialPrefix===null&&(this.initialPrefix=e);for(var i=this.iterator+r;t?i>=0:i<n.length;i+=r){var s=n[i];for(var o=0;o<=s.length;o++)if(this.initialPrefix==s.substring(0,o))return this.iterator=i,s}if(i>=n.length)return this.iterator=n.length,this.initialPrefix;if(i<0)return e},pushInput:function(e){var t=this.historyBuffer.indexOf(e);t>-1&&this.historyBuffer.splice(t,1),e.length&&this.historyBuffer.push(e)},reset:function(){this.initialPrefix=null,this.iterator=this.historyBuffer.length}};var ht={matchCommand:function(e,t,n,r){var i=Tt(e,t,r,n);if(!i.full&&!i.partial)return{type:\"none\"};if(!i.full&&i.partial)return{type:\"partial\"};var s;for(var o=0;o<i.full.length;o++){var u=i.full[o];s||(s=u)}return s.keys.slice(-11)==\"<character>\"&&(n.selectedCharacter=Ct(e)),{type:\"full\",command:s}},processCommand:function(e,t,n){t.inputState.repeatOverride=n.repeatOverride;switch(n.type){case\"motion\":this.processMotion(e,t,n);break;case\"operator\":this.processOperator(e,t,n);break;case\"operatorMotion\":this.processOperatorMotion(e,t,n);break;case\"action\":this.processAction(e,t,n);break;case\"search\":this.processSearch(e,t,n);break;case\"ex\":case\"keyToEx\":this.processEx(e,t,n);break;default:}},processMotion:function(e,t,n){t.inputState.motion=n.motion,t.inputState.motionArgs=Et(n.motionArgs),this.evalInput(e,t)},processOperator:function(e,t,n){var r=t.inputState;if(r.operator){if(r.operator==n.operator){r.motion=\"expandToLine\",r.motionArgs={linewise:!0},this.evalInput(e,t);return}ut(e)}r.operator=n.operator,r.operatorArgs=Et(n.operatorArgs),t.visualMode&&this.evalInput(e,t)},processOperatorMotion:function(e,t,n){var r=t.visualMode,i=Et(n.operatorMotionArgs);i&&r&&i.visualLine&&(t.visualLine=!0),this.processOperator(e,t,n),r||this.processMotion(e,t,n)},processAction:function(e,t,n){var r=t.inputState,i=r.getRepeat(),s=!!i,o=Et(n.actionArgs)||{};r.selectedCharacter&&(o.selectedCharacter=r.selectedCharacter),n.operator&&this.processOperator(e,t,n),n.motion&&this.processMotion(e,t,n),(n.motion||n.operator)&&this.evalInput(e,t),o.repeat=i||1,o.repeatIsExplicit=s,o.registerName=r.registerName,ut(e),t.lastMotion=null,n.isEdit&&this.recordLastEdit(t,r,n),yt[n.action](e,o,t)},processSearch:function(e,t,n){function a(r,i,s){nt.searchHistoryController.pushInput(r),nt.searchHistoryController.reset();try{An(e,r,i,s)}catch(o){Tn(e,\"Invalid regex: \"+r),ut(e);return}ht.processMotion(e,t,{type:\"motion\",motion:\"findNext\",motionArgs:{forward:!0,toJumplist:n.searchArgs.toJumplist}})}function f(t){e.scrollTo(u.left,u.top),a(t,!0,!0);var n=nt.macroModeState;n.isRecording&&Vn(n,t)}function l(t,n,i){var s=v.keyName(t),o;s==\"Up\"||s==\"Down\"?(o=s==\"Up\"?!0:!1,n=nt.searchHistoryController.nextMatch(n,o)||\"\",i(n)):s!=\"Left\"&&s!=\"Right\"&&s!=\"Ctrl\"&&s!=\"Alt\"&&s!=\"Shift\"&&nt.searchHistoryController.reset();var a;try{a=An(e,n,!0,!0)}catch(t){}a?e.scrollIntoView(_n(e,!r,a),30):(Dn(e),e.scrollTo(u.left,u.top))}function c(t,n,r){var i=v.keyName(t);i==\"Esc\"||i==\"Ctrl-C\"||i==\"Ctrl-[\"||i==\"Backspace\"&&n==\"\"?(nt.searchHistoryController.pushInput(n),nt.searchHistoryController.reset(),An(e,o),Dn(e),e.scrollTo(u.left,u.top),v.e_stop(t),ut(e),r(),e.focus()):i==\"Ctrl-U\"&&(v.e_stop(t),r(\"\"))}if(!e.getSearchCursor)return;var r=n.searchArgs.forward,i=n.searchArgs.wholeWordOnly;dn(e).setReversed(!r);var s=r?\"/\":\"?\",o=dn(e).getQuery(),u=e.getScrollInfo();switch(n.searchArgs.querySrc){case\"prompt\":var h=nt.macroModeState;if(h.isPlaying){var p=h.replaySearchQueries.shift();a(p,!0,!1)}else kn(e,{onClose:f,prefix:s,desc:Cn,onKeyUp:l,onKeyDown:c});break;case\"wordUnderCursor\":var d=Gt(e,!1,!0,!1,!0),m=!0;d||(d=Gt(e,!1,!0,!1,!1),m=!1);if(!d)return;var p=e.getLine(d.start.line).substring(d.start.ch,d.end.ch);m&&i?p=\"\\\\b\"+p+\"\\\\b\":p=Bt(p),nt.jumpList.cachedCursor=e.getCursor(),e.setCursor(d.start),a(p,!0,!1)}},processEx:function(e,t,n){function r(t){nt.exCommandHistoryController.pushInput(t),nt.exCommandHistoryController.reset(),Fn.processCommand(e,t)}function i(t,n,r){var i=v.keyName(t),s;if(i==\"Esc\"||i==\"Ctrl-C\"||i==\"Ctrl-[\"||i==\"Backspace\"&&n==\"\")nt.exCommandHistoryController.pushInput(n),nt.exCommandHistoryController.reset(),v.e_stop(t),ut(e),r(),e.focus();i==\"Up\"||i==\"Down\"?(s=i==\"Up\"?!0:!1,n=nt.exCommandHistoryController.nextMatch(n,s)||\"\",r(n)):i==\"Ctrl-U\"?(v.e_stop(t),r(\"\")):i!=\"Left\"&&i!=\"Right\"&&i!=\"Ctrl\"&&i!=\"Alt\"&&i!=\"Shift\"&&nt.exCommandHistoryController.reset()}n.type==\"keyToEx\"?Fn.processCommand(e,n.exArgs.input):t.visualMode?kn(e,{onClose:r,prefix:\":\",value:\"'<,'>\",onKeyDown:i}):kn(e,{onClose:r,prefix:\":\",onKeyDown:i})},evalInput:function(e,t){var n=t.inputState,r=n.motion,i=n.motionArgs||{},s=n.operator,o=n.operatorArgs||{},u=n.registerName,a=t.sel,f=Lt(t.visualMode?wt(e,a.head):e.getCursor(\"head\")),l=Lt(t.visualMode?wt(e,a.anchor):e.getCursor(\"anchor\")),c=Lt(f),h=Lt(l),p,d,v;s&&this.recordLastEdit(t,n),n.repeatOverride!==undefined?v=n.repeatOverride:v=n.getRepeat();if(v>0&&i.explicitRepeat)i.repeatIsExplicit=!0;else if(i.noRepeat||!i.explicitRepeat&&v===0)v=1,i.repeatIsExplicit=!1;n.selectedCharacter&&(i.selectedCharacter=o.selectedCharacter=n.selectedCharacter),i.repeat=v,ut(e);if(r){var m=pt[r](e,f,i,t);t.lastMotion=pt[r];if(!m)return;if(i.toJumplist){!s&&e.ace.curOp!=null&&(e.ace.curOp.command.scrollIntoView=\"center-animate\");var g=nt.jumpList,y=g.cachedCursor;y?(Yt(e,y,m),delete g.cachedCursor):Yt(e,f,m)}m instanceof Array?(d=m[0],p=m[1]):p=m,p||(p=Lt(f));if(t.visualMode){if(!t.visualBlock||p.ch!==Infinity)p=wt(e,p,t.visualBlock);d&&(d=wt(e,d,!0)),d=d||h,a.anchor=d,a.head=p,Wt(e),an(e,t,\"<\",Ot(d,p)?d:p),an(e,t,\">\",Ot(d,p)?p:d)}else s||(p=wt(e,p),e.setCursor(p.line,p.ch))}if(s){if(o.lastSel){d=h;var b=o.lastSel,w=Math.abs(b.head.line-b.anchor.line),S=Math.abs(b.head.ch-b.anchor.ch);b.visualLine?p=E(h.line+w,h.ch):b.visualBlock?p=E(h.line+w,h.ch+S):b.head.line==b.anchor.line?p=E(h.line,h.ch+S):p=E(h.line+w,h.ch),t.visualMode=!0,t.visualLine=b.visualLine,t.visualBlock=b.visualBlock,a=t.sel={anchor:d,head:p},Wt(e)}else t.visualMode&&(o.lastSel={anchor:Lt(a.anchor),head:Lt(a.head),visualBlock:t.visualBlock,visualLine:t.visualLine});var x,T,N,C,k;if(t.visualMode){x=Mt(a.head,a.anchor),T=_t(a.head,a.anchor),N=t.visualLine||o.linewise,C=t.visualBlock?\"block\":N?\"line\":\"char\",k=Xt(e,{anchor:x,head:T},C);if(N){var L=k.ranges;if(C==\"block\")for(var A=0;A<L.length;A++)L[A].head.ch=Pt(e,L[A].head.line);else C==\"line\"&&(L[0].head=E(L[0].head.line+1,0))}}else{x=Lt(d||h),T=Lt(p||c);if(Ot(T,x)){var O=x;x=T,T=O}N=i.linewise||o.linewise,N?Kt(e,x,T):i.forward&&Jt(e,x,T),C=\"char\";var M=!i.inclusive||N;k=Xt(e,{anchor:x,head:T},C,M)}e.setSelections(k.ranges,k.primary),t.lastMotion=null,o.repeat=v,o.registerName=u,o.linewise=N;var _=mt[s](e,o,k.ranges,h,p);t.visualMode&&$t(e,_!=null),_&&e.setCursor(_)}},recordLastEdit:function(e,t,n){var r=nt.macroModeState;if(r.isPlaying)return;e.lastEditInputState=t,e.lastEditActionCommand=n,r.lastInsertModeChanges.changes=[],r.lastInsertModeChanges.expectCursorActivityForChange=!1}},pt={moveToTopLine:function(e,t,n){var r=Hn(e).top+n.repeat-1;return E(r,Qt(e.getLine(r)))},moveToMiddleLine:function(e){var t=Hn(e),n=Math.floor((t.top+t.bottom)*.5);return E(n,Qt(e.getLine(n)))},moveToBottomLine:function(e,t,n){var r=Hn(e).bottom-n.repeat+1;return E(r,Qt(e.getLine(r)))},expandToLine:function(e,t,n){var r=t;return E(r.line+n.repeat-1,Infinity)},findNext:function(e,t,n){var r=dn(e),i=r.getQuery();if(!i)return;var s=!n.forward;return s=r.isReversed()?!s:s,Mn(e,i),_n(e,s,i,n.repeat)},goToMark:function(e,t,n,r){var i=r.marks[n.selectedCharacter];if(i){var s=i.find();return n.linewise?{line:s.line,ch:Qt(e.getLine(s.line))}:s}return null},moveToOtherHighlightedEnd:function(e,t,n,r){if(r.visualBlock&&n.sameLine){var i=r.sel;return[wt(e,E(i.anchor.line,i.head.ch)),wt(e,E(i.head.line,i.anchor.ch))]}return[r.sel.head,r.sel.anchor]},jumpToMark:function(e,t,n,r){var i=t;for(var s=0;s<n.repeat;s++){var o=i;for(var u in r.marks){if(!U(u))continue;var a=r.marks[u].find(),f=n.forward?Ot(a,o):Ot(o,a);if(f)continue;if(n.linewise&&a.line==o.line)continue;var l=At(o,i),c=n.forward?Dt(o,a,i):Dt(i,a,o);if(l||c)i=a}}return n.linewise&&(i=E(i.line,Qt(e.getLine(i.line)))),i},moveByCharacters:function(e,t,n){var r=t,i=n.repeat,s=n.forward?r.ch+i:r.ch-i;return E(r.line,s)},moveByLines:function(e,t,n,r){var i=t,s=i.ch;switch(r.lastMotion){case this.moveByLines:case this.moveByDisplayLines:case this.moveByScroll:case this.moveToColumn:case this.moveToEol:s=r.lastHPos;break;default:r.lastHPos=s}var o=n.repeat+(n.repeatOffset||0),u=n.forward?i.line+o:i.line-o,a=e.firstLine(),f=e.lastLine();if(u<a&&i.line==a||u>f&&i.line==f)return;var l=e.ace.session.getFoldLine(u);return l&&(n.forward?u>l.start.row&&(u=l.end.row+1):u=l.start.row),n.toFirstChar&&(s=Qt(e.getLine(u)),r.lastHPos=s),r.lastHSPos=e.charCoords(E(u,s),\"div\").left,E(u,s)},moveByDisplayLines:function(e,t,n,r){var i=t;switch(r.lastMotion){case this.moveByDisplayLines:case this.moveByScroll:case this.moveByLines:case this.moveToColumn:case this.moveToEol:break;default:r.lastHSPos=e.charCoords(i,\"div\").left}var s=n.repeat,o=e.findPosV(i,n.forward?s:-s,\"line\",r.lastHSPos);if(o.hitSide)if(n.forward)var u=e.charCoords(o,\"div\"),a={top:u.top+8,left:r.lastHSPos},o=e.coordsChar(a,\"div\");else{var f=e.charCoords(E(e.firstLine(),0),\"div\");f.left=r.lastHSPos,o=e.coordsChar(f,\"div\")}return r.lastHPos=o.ch,o},moveByPage:function(e,t,n){var r=t,i=n.repeat;return e.findPosV(r,n.forward?i:-i,\"page\")},moveByParagraph:function(e,t,n){var r=n.forward?1:-1;return ln(e,t,n.repeat,r)},moveByScroll:function(e,t,n,r){var i=e.getScrollInfo(),s=null,o=n.repeat;o||(o=i.clientHeight/(2*e.defaultTextHeight()));var u=e.charCoords(t,\"local\");n.repeat=o;var s=pt.moveByDisplayLines(e,t,n,r);if(!s)return null;var a=e.charCoords(s,\"local\");return e.scrollTo(null,i.top+a.top-u.top),s},moveByWords:function(e,t,n){return sn(e,t,n.repeat,!!n.forward,!!n.wordEnd,!!n.bigWord)},moveTillCharacter:function(e,t,n){var r=n.repeat,i=on(e,r,n.forward,n.selectedCharacter),s=n.forward?-1:1;return Zt(s,n),i?(i.ch+=s,i):null},moveToCharacter:function(e,t,n){var r=n.repeat;return Zt(0,n),on(e,r,n.forward,n.selectedCharacter)||t},moveToSymbol:function(e,t,n){var r=n.repeat;return nn(e,r,n.forward,n.selectedCharacter)||t},moveToColumn:function(e,t,n,r){var i=n.repeat;return r.lastHPos=i-1,r.lastHSPos=e.charCoords(t,\"div\").left,un(e,i)},moveToEol:function(e,t,n,r){var i=t;r.lastHPos=Infinity;var s=E(i.line+n.repeat-1,Infinity),o=e.clipPos(s);return o.ch--,r.lastHSPos=e.charCoords(o,\"div\").left,s},moveToFirstNonWhiteSpaceCharacter:function(e,t){var n=t;return E(n.line,Qt(e.getLine(n.line)))},moveToMatchedSymbol:function(e,t){var n=t,r=n.line,i=n.ch,s=e.getLine(r),o;do{o=s.charAt(i++);if(o&&z(o)){var u=e.getTokenTypeAt(E(r,i));if(u!==\"string\"&&u!==\"comment\")break}}while(o);if(o){var a=e.findMatchingBracket(E(r,i));return a.to}return n},moveToStartOfLine:function(e,t){return E(t.line,0)},moveToLineOrEdgeOfDocument:function(e,t,n){var r=n.forward?e.lastLine():e.firstLine();return n.repeatIsExplicit&&(r=n.repeat-e.getOption(\"firstLineNumber\")),E(r,Qt(e.getLine(r)))},textObjectManipulation:function(e,t,n,r){var i={\"(\":\")\",\")\":\"(\",\"{\":\"}\",\"}\":\"{\",\"[\":\"]\",\"]\":\"[\"},s={\"'\":!0,'\"':!0},o=n.selectedCharacter;o==\"b\"?o=\"(\":o==\"B\"&&(o=\"{\");var u=!n.textObjectInner,a;if(i[o])a=cn(e,t,o,u);else if(s[o])a=hn(e,t,o,u);else if(o===\"W\")a=Gt(e,u,!0,!0);else if(o===\"w\")a=Gt(e,u,!0,!1);else{if(o!==\"p\")return null;a=ln(e,t,n.repeat,0,u),n.linewise=!0;if(r.visualMode)r.visualLine||(r.visualLine=!0);else{var f=r.inputState.operatorArgs;f&&(f.linewise=!0),a.end.line--}}return e.state.vim.visualMode?zt(e,a.start,a.end):[a.start,a.end]},repeatLastCharacterSearch:function(e,t,n){var r=nt.lastChararacterSearch,i=n.repeat,s=n.forward===r.forward,o=(r.increment?1:0)*(s?-1:1);e.moveH(-o,\"char\"),n.inclusive=s?!0:!1;var u=on(e,i,s,r.selectedCharacter);return u?(u.ch+=o,u):(e.moveH(o,\"char\"),t)}},mt={change:function(e,t,n){var r,i,s=e.state.vim;nt.macroModeState.lastInsertModeChanges.inVisualBlock=s.visualBlock;if(!s.visualMode){var o=n[0].anchor,u=n[0].head;i=e.getRange(o,u);var a=s.lastEditInputState||{};if(a.motion==\"moveByWords\"&&!V(i)){var f=/\\s+$/.exec(i);f&&a.motionArgs&&a.motionArgs.forward&&(u=St(u,0,-f[0].length),i=i.slice(0,-f[0].length))}var l=new E(o.line-1,Number.MAX_VALUE),c=e.firstLine()==e.lastLine();u.line>e.lastLine()&&t.linewise&&!c?e.replaceRange(\"\",l,u):e.replaceRange(\"\",o,u),t.linewise&&(c||(e.setCursor(l),v.commands.newlineAndIndent(e)),o.ch=Number.MAX_VALUE),r=o}else{i=e.getSelection();var h=vt(\"\",n.length);e.replaceSelections(h),r=Mt(n[0].head,n[0].anchor)}nt.registerController.pushText(t.registerName,\"change\",i,t.linewise,n.length>1),yt.enterInsertMode(e,{head:r},e.state.vim)},\"delete\":function(e,t,n){var r,i,s=e.state.vim;if(!s.visualBlock){var o=n[0].anchor,u=n[0].head;t.linewise&&u.line!=e.firstLine()&&o.line==e.lastLine()&&o.line==u.line-1&&(o.line==e.firstLine()?o.ch=0:o=E(o.line-1,Pt(e,o.line-1))),i=e.getRange(o,u),e.replaceRange(\"\",o,u),r=o,t.linewise&&(r=pt.moveToFirstNonWhiteSpaceCharacter(e,o))}else{i=e.getSelection();var a=vt(\"\",n.length);e.replaceSelections(a),r=n[0].anchor}return nt.registerController.pushText(t.registerName,\"delete\",i,t.linewise,s.visualBlock),wt(e,r)},indent:function(e,t,n){var r=e.state.vim,i=n[0].anchor.line,s=r.visualBlock?n[n.length-1].anchor.line:n[0].head.line,o=r.visualMode?t.repeat:1;t.linewise&&s--;for(var u=i;u<=s;u++)for(var a=0;a<o;a++)e.indentLine(u,t.indentRight);return pt.moveToFirstNonWhiteSpaceCharacter(e,n[0].anchor)},changeCase:function(e,t,n,r,i){var s=e.getSelections(),o=[],u=t.toLower;for(var a=0;a<s.length;a++){var f=s[a],l=\"\";if(u===!0)l=f.toLowerCase();else if(u===!1)l=f.toUpperCase();else for(var c=0;c<f.length;c++){var h=f.charAt(c);l+=X(h)?h.toLowerCase():h.toUpperCase()}o.push(l)}return e.replaceSelections(o),t.shouldMoveCursor?i:!e.state.vim.visualMode&&t.linewise&&n[0].anchor.line+1==n[0].head.line?pt.moveToFirstNonWhiteSpaceCharacter(e,r):t.linewise?r:Mt(n[0].anchor,n[0].head)},yank:function(e,t,n,r){var i=e.state.vim,s=e.getSelection(),o=i.visualMode?Mt(i.sel.anchor,i.sel.head,n[0].head,n[0].anchor):r;return nt.registerController.pushText(t.registerName,\"yank\",s,t.linewise,i.visualBlock),o}},yt={jumpListWalk:function(e,t,n){if(n.visualMode)return;var r=t.repeat,i=t.forward,s=nt.jumpList,o=s.move(e,i?r:-r),u=o?o.find():undefined;u=u?u:e.getCursor(),e.setCursor(u),e.ace.curOp.command.scrollIntoView=\"center-animate\"},scroll:function(e,t,n){if(n.visualMode)return;var r=t.repeat||1,i=e.defaultTextHeight(),s=e.getScrollInfo().top,o=i*r,u=t.forward?s+o:s-o,a=Lt(e.getCursor()),f=e.charCoords(a,\"local\");if(t.forward)u>f.top?(a.line+=(u-f.top)/i,a.line=Math.ceil(a.line),e.setCursor(a),f=e.charCoords(a,\"local\"),e.scrollTo(null,f.top)):e.scrollTo(null,u);else{var l=u+e.getScrollInfo().clientHeight;l<f.bottom?(a.line-=(f.bottom-l)/i,a.line=Math.floor(a.line),e.setCursor(a),f=e.charCoords(a,\"local\"),e.scrollTo(null,f.bottom-e.getScrollInfo().clientHeight)):e.scrollTo(null,u)}},scrollToCursor:function(e,t){var n=e.getCursor().line,r=e.charCoords(E(n,0),\"local\"),i=e.getScrollInfo().clientHeight,s=r.top,o=r.bottom-s;switch(t.position){case\"center\":s=s-i/2+o;break;case\"bottom\":s=s-i+o*1.4;break;case\"top\":s+=o*.4}e.scrollTo(null,s)},replayMacro:function(e,t,n){var r=t.selectedCharacter,i=t.repeat,s=nt.macroModeState;r==\"@\"&&(r=s.latestRegister);while(i--)zn(e,n,s,r)},enterMacroRecordMode:function(e,t){var n=nt.macroModeState,r=t.selectedCharacter;n.enterMacroRecordMode(e,r)},enterInsertMode:function(e,t,n){if(e.getOption(\"readOnly\"))return;n.insertMode=!0,n.insertModeRepeat=t&&t.repeat||1;var r=t?t.insertAt:null,i=n.sel,s=t.head||e.getCursor(\"head\"),o=e.listSelections().length;if(r==\"eol\")s=E(s.line,Pt(e,s.line));else if(r==\"charAfter\")s=St(s,0,1);else if(r==\"firstNonBlank\")s=pt.moveToFirstNonWhiteSpaceCharacter(e,s);else if(r==\"startOfSelectedArea\")n.visualBlock?(s=E(Math.min(i.head.line,i.anchor.line),Math.min(i.head.ch,i.anchor.ch)),o=Math.abs(i.head.line-i.anchor.line)+1):i.head.line<i.anchor.line?s=i.head:s=E(i.anchor.line,0);else if(r==\"endOfSelectedArea\")n.visualBlock?(s=E(Math.min(i.head.line,i.anchor.line),Math.max(i.head.ch+1,i.anchor.ch)),o=Math.abs(i.head.line-i.anchor.line)+1):i.head.line>=i.anchor.line?s=St(i.head,0,1):s=E(i.anchor.line,0);else if(r==\"inplace\"&&n.visualMode)return;e.setOption(\"keyMap\",\"vim-insert\"),e.setOption(\"disableInput\",!1),t&&t.replace?(e.toggleOverwrite(!0),e.setOption(\"keyMap\",\"vim-replace\"),v.signal(e,\"vim-mode-change\",{mode:\"replace\"})):(e.setOption(\"keyMap\",\"vim-insert\"),v.signal(e,\"vim-mode-change\",{mode:\"insert\"})),nt.macroModeState.isPlaying||(e.on(\"change\",$n),v.on(e.getInputField(),\"keydown\",Yn)),n.visualMode&&$t(e),It(e,s,o)},toggleVisualMode:function(e,t,n){var r=t.repeat,i=e.getCursor(),s;n.visualMode?n.visualLine^t.linewise||n.visualBlock^t.blockwise?(n.visualLine=!!t.linewise,n.visualBlock=!!t.blockwise,v.signal(e,\"vim-mode-change\",{mode:\"visual\",subMode:n.visualLine?\"linewise\":n.visualBlock?\"blockwise\":\"\"}),Wt(e)):$t(e):(n.visualMode=!0,n.visualLine=!!t.linewise,n.visualBlock=!!t.blockwise,s=wt(e,E(i.line,i.ch+r-1),!0),n.sel={anchor:i,head:s},v.signal(e,\"vim-mode-change\",{mode:\"visual\",subMode:n.visualLine?\"linewise\":n.visualBlock?\"blockwise\":\"\"}),Wt(e),an(e,n,\"<\",Mt(i,s)),an(e,n,\">\",_t(i,s)))},reselectLastSelection:function(e,t,n){var r=n.lastSelection;n.visualMode&&Ut(e,n);if(r){var i=r.anchorMark.find(),s=r.headMark.find();if(!i||!s)return;n.sel={anchor:i,head:s},n.visualMode=!0,n.visualLine=r.visualLine,n.visualBlock=r.visualBlock,Wt(e),an(e,n,\"<\",Mt(i,s)),an(e,n,\">\",_t(i,s)),v.signal(e,\"vim-mode-change\",{mode:\"visual\",subMode:n.visualLine?\"linewise\":n.visualBlock?\"blockwise\":\"\"})}},joinLines:function(e,t,n){var r,i;if(n.visualMode){r=e.getCursor(\"anchor\"),i=e.getCursor(\"head\");if(Ot(i,r)){var s=i;i=r,r=s}i.ch=Pt(e,i.line)-1}else{var o=Math.max(t.repeat,2);r=e.getCursor(),i=wt(e,E(r.line+o-1,Infinity))}var u=0;for(var a=r.line;a<i.line;a++){u=Pt(e,r.line);var s=E(r.line+1,Pt(e,r.line+1)),f=e.getRange(r,s);f=f.replace(/\\n\\s*/g,\" \"),e.replaceRange(f,r,s)}var l=E(r.line,u);n.visualMode&&$t(e,!1),e.setCursor(l)},newLineAndEnterInsertMode:function(e,t,n){n.insertMode=!0;var r=Lt(e.getCursor());if(r.line===e.firstLine()&&!t.after)e.replaceRange(\"\\n\",E(e.firstLine(),0)),e.setCursor(e.firstLine(),0);else{r.line=t.after?r.line:r.line-1,r.ch=Pt(e,r.line),e.setCursor(r);var i=v.commands.newlineAndIndentContinueComment||v.commands.newlineAndIndent;i(e)}this.enterInsertMode(e,{repeat:t.repeat},n)},paste:function(e,t,n){var r=Lt(e.getCursor()),i=nt.registerController.getRegister(t.registerName),s=i.toString();if(!s)return;if(t.matchIndent){var o=e.getOption(\"tabSize\"),u=function(e){var t=e.split(\"\t\").length-1,n=e.split(\" \").length-1;return t*o+n*1},a=e.getLine(e.getCursor().line),f=u(a.match(/^\\s*/)[0]),l=s.replace(/\\n$/,\"\"),c=s!==l,h=u(s.match(/^\\s*/)[0]),s=l.replace(/^\\s*/gm,function(t){var n=f+(u(t)-h);if(n<0)return\"\";if(e.getOption(\"indentWithTabs\")){var r=Math.floor(n/o);return Array(r+1).join(\"\t\")}return Array(n+1).join(\" \")});s+=c?\"\\n\":\"\"}if(t.repeat>1)var s=Array(t.repeat+1).join(s);var p=i.linewise,d=i.blockwise;if(p&&!d)n.visualMode?s=n.visualLine?s.slice(0,-1):\"\\n\"+s.slice(0,s.length-1)+\"\\n\":t.after?(s=\"\\n\"+s.slice(0,s.length-1),r.ch=Pt(e,r.line)):r.ch=0;else{if(d){s=s.split(\"\\n\");for(var v=0;v<s.length;v++)s[v]=s[v]==\"\"?\" \":s[v]}r.ch+=t.after?1:0}var m,g;if(n.visualMode){n.lastPastedText=s;var y,b=Rt(e,n),w=b[0],S=b[1],x=e.getSelection(),T=e.listSelections(),N=(new Array(T.length)).join(\"1\").split(\"1\");n.lastSelection&&(y=n.lastSelection.headMark.find()),nt.registerController.unnamedRegister.setText(x),d?(e.replaceSelections(N),S=E(w.line+s.length-1,w.ch),e.setCursor(w),Ft(e,S),e.replaceSelections(s),m=w):n.visualBlock?(e.replaceSelections(N),e.setCursor(w),e.replaceRange(s,w,w),m=w):(e.replaceRange(s,w,S),m=e.posFromIndex(e.indexFromPos(w)+s.length-1)),y&&(n.lastSelection.headMark=e.setBookmark(y)),p&&(m.ch=0)}else if(d){e.setCursor(r);for(var v=0;v<s.length;v++){var C=r.line+v;C>e.lastLine()&&e.replaceRange(\"\\n\",E(C,0));var k=Pt(e,C);k<r.ch&&jt(e,C,r.ch)}e.setCursor(r),Ft(e,E(r.line+s.length-1,r.ch)),e.replaceSelections(s),m=r}else e.replaceRange(s,r),p&&t.after?m=E(r.line+1,Qt(e.getLine(r.line+1))):p&&!t.after?m=E(r.line,Qt(e.getLine(r.line))):!p&&t.after?(g=e.indexFromPos(r),m=e.posFromIndex(g+s.length-1)):(g=e.indexFromPos(r),m=e.posFromIndex(g+s.length));n.visualMode&&$t(e,!1),e.setCursor(m)},undo:function(e,t){e.operation(function(){kt(e,v.commands.undo,t.repeat)(),e.setCursor(e.getCursor(\"anchor\"))})},redo:function(e,t){kt(e,v.commands.redo,t.repeat)()},setRegister:function(e,t,n){n.inputState.registerName=t.selectedCharacter},setMark:function(e,t,n){var r=t.selectedCharacter;an(e,n,r,e.getCursor())},replace:function(e,t,n){var r=t.selectedCharacter,i=e.getCursor(),s,o,u=e.listSelections();if(n.visualMode)i=e.getCursor(\"start\"),o=e.getCursor(\"end\");else{var a=e.getLine(i.line);s=i.ch+t.repeat,s>a.length&&(s=a.length),o=E(i.line,s)}if(r==\"\\n\")n.visualMode||e.replaceRange(\"\",i,o),(v.commands.newlineAndIndentContinueComment||v.commands.newlineAndIndent)(e);else{var f=e.getRange(i,o);f=f.replace(/[^\\n]/g,r);if(n.visualBlock){var l=(new Array(e.getOption(\"tabSize\")+1)).join(\" \");f=e.getSelection(),f=f.replace(/\\t/g,l).replace(/[^\\n]/g,r).split(\"\\n\"),e.replaceSelections(f)}else e.replaceRange(f,i,o);n.visualMode?(i=Ot(u[0].anchor,u[0].head)?u[0].anchor:u[0].head,e.setCursor(i),$t(e,!1)):e.setCursor(St(o,0,-1))}},incrementNumberToken:function(e,t){var n=e.getCursor(),r=e.getLine(n.line),i=/-?\\d+/g,s,o,u,a,f;while((s=i.exec(r))!==null){f=s[0],o=s.index,u=o+f.length;if(n.ch<u)break}if(!t.backtrack&&u<=n.ch)return;if(!f)return;var l=t.increase?1:-1,c=parseInt(f)+l*t.repeat,h=E(n.line,o),p=E(n.line,u);a=c.toString(),e.replaceRange(a,h,p),e.setCursor(E(n.line,o+a.length-1))},repeatLastEdit:function(e,t,n){var r=n.lastEditInputState;if(!r)return;var i=t.repeat;i&&t.repeatIsExplicit?n.lastEditInputState.repeatOverride=i:i=n.lastEditInputState.repeatOverride||i,Zn(e,n,i,!1)},exitInsertMode:qn},en={\"(\":\"bracket\",\")\":\"bracket\",\"{\":\"bracket\",\"}\":\"bracket\",\"[\":\"section\",\"]\":\"section\",\"*\":\"comment\",\"/\":\"comment\",m:\"method\",M:\"method\",\"#\":\"preprocess\"},tn={bracket:{isComplete:function(e){if(e.nextCh===e.symb){e.depth++;if(e.depth>=1)return!0}else e.nextCh===e.reverseSymb&&e.depth--;return!1}},section:{init:function(e){e.curMoveThrough=!0,e.symb=(e.forward?\"]\":\"[\")===e.symb?\"{\":\"}\"},isComplete:function(e){return e.index===0&&e.nextCh===e.symb}},comment:{isComplete:function(e){var t=e.lastCh===\"*\"&&e.nextCh===\"/\";return e.lastCh=e.nextCh,t}},method:{init:function(e){e.symb=e.symb===\"m\"?\"{\":\"}\",e.reverseSymb=e.symb===\"{\"?\"}\":\"{\"},isComplete:function(e){return e.nextCh===e.symb?!0:!1}},preprocess:{init:function(e){e.index=0},isComplete:function(e){if(e.nextCh===\"#\"){var t=e.lineText.match(/#(\\w+)/)[1];if(t===\"endif\"){if(e.forward&&e.depth===0)return!0;e.depth++}else if(t===\"if\"){if(!e.forward&&e.depth===0)return!0;e.depth--}if(t===\"else\"&&e.depth===0)return!0}return!1}}};K(\"pcre\",!0,\"boolean\"),pn.prototype={getQuery:function(){return nt.query},setQuery:function(e){nt.query=e},getOverlay:function(){return this.searchOverlay},setOverlay:function(e){this.searchOverlay=e},isReversed:function(){return nt.isReversed},setReversed:function(e){nt.isReversed=e},getScrollbarAnnotate:function(){return this.annotate},setScrollbarAnnotate:function(e){this.annotate=e}};var bn={\"\\\\n\":\"\\n\",\"\\\\r\":\"\\r\",\"\\\\t\":\"\t\"},En={\"\\\\/\":\"/\",\"\\\\\\\\\":\"\\\\\",\"\\\\n\":\"\\n\",\"\\\\r\":\"\\r\",\"\\\\t\":\"\t\"},Cn=\"(Javascript regexp)\",Bn=function(){this.buildCommandMap_()};Bn.prototype={processCommand:function(e,t,n){var r=this;e.operation(function(){e.curOp.isVimOp=!0,r._processCommand(e,t,n)})},_processCommand:function(e,t,n){var r=e.state.vim,i=nt.registerController.getRegister(\":\"),s=i.toString();r.visualMode&&$t(e);var o=new v.StringStream(t);i.setText(t);var u=n||{};u.input=t;try{this.parseInput_(e,o,u)}catch(a){throw Tn(e,a),a}var f,l;if(!u.commandName)u.line!==undefined&&(l=\"move\");else{f=this.matchCommand_(u.commandName);if(f){l=f.name,f.excludeFromCommandHistory&&i.setText(s),this.parseCommandArgs_(o,u,f);if(f.type==\"exToKey\"){for(var c=0;c<f.toKeys.length;c++)v.Vim.handleKey(e,f.toKeys[c],\"mapping\");return}if(f.type==\"exToEx\"){this.processCommand(e,f.toInput);return}}}if(!l){Tn(e,'Not an editor command \":'+t+'\"');return}try{jn[l](e,u),(!f||!f.possiblyAsync)&&u.callback&&u.callback()}catch(a){throw Tn(e,a),a}},parseInput_:function(e,t,n){t.eatWhile(\":\"),t.eat(\"%\")?(n.line=e.firstLine(),n.lineEnd=e.lastLine()):(n.line=this.parseLineSpec_(e,t),n.line!==undefined&&t.eat(\",\")&&(n.lineEnd=this.parseLineSpec_(e,t)));var r=t.match(/^(\\w+)/);return r?n.commandName=r[1]:n.commandName=t.match(/.*/)[0],n},parseLineSpec_:function(e,t){var n=t.match(/^(\\d+)/);if(n)return parseInt(n[1],10)-1;switch(t.next()){case\".\":return e.getCursor().line;case\"$\":return e.lastLine();case\"'\":var r=e.state.vim.marks[t.next()];if(r&&r.find())return r.find().line;throw new Error(\"Mark not set\");default:return t.backUp(1),undefined}},parseCommandArgs_:function(e,t,n){if(e.eol())return;t.argString=e.match(/.*/)[0];var r=n.argDelimiter||/\\s+/,i=Ht(t.argString).split(r);i.length&&i[0]&&(t.args=i)},matchCommand_:function(e){for(var t=e.length;t>0;t--){var n=e.substring(0,t);if(this.commandMap_[n]){var r=this.commandMap_[n];if(r.name.indexOf(e)===0)return r}}return null},buildCommandMap_:function(){this.commandMap_={};for(var e=0;e<w.length;e++){var t=w[e],n=t.shortName||t.name;this.commandMap_[n]=t}},map:function(e,t,n){if(e!=\":\"&&e.charAt(0)==\":\"){if(n)throw Error(\"Mode not supported for ex mappings\");var r=e.substring(1);t!=\":\"&&t.charAt(0)==\":\"?this.commandMap_[r]={name:r,type:\"exToEx\",toInput:t.substring(1),user:!0}:this.commandMap_[r]={name:r,type:\"exToKey\",toKeys:t,user:!0}}else if(t!=\":\"&&t.charAt(0)==\":\"){var i={keys:e,type:\"keyToEx\",exArgs:{input:t.substring(1)},user:!0};n&&(i.context=n),b.unshift(i)}else{var i={keys:e,type:\"keyToKey\",toKeys:t,user:!0};n&&(i.context=n),b.unshift(i)}},unmap:function(e,t){if(e!=\":\"&&e.charAt(0)==\":\"){if(t)throw Error(\"Mode not supported for ex mappings\");var n=e.substring(1);if(this.commandMap_[n]&&this.commandMap_[n].user){delete this.commandMap_[n];return}}else{var r=e;for(var i=0;i<b.length;i++)if(r==b[i].keys&&b[i].context===t&&b[i].user){b.splice(i,1);return}}}};var jn={colorscheme:function(e,t){if(!t.args||t.args.length<1){Tn(e,e.getOption(\"theme\"));return}e.setOption(\"theme\",t.args[0])},map:function(e,t,n){var r=t.args;if(!r||r.length<2){e&&Tn(e,\"Invalid mapping: \"+t.input);return}Fn.map(r[0],r[1],n)},imap:function(e,t){this.map(e,t,\"insert\")},nmap:function(e,t){this.map(e,t,\"normal\")},vmap:function(e,t){this.map(e,t,\"visual\")},unmap:function(e,t,n){var r=t.args;if(!r||r.length<1){e&&Tn(e,\"No such mapping: \"+t.input);return}Fn.unmap(r[0],n)},move:function(e,t){ht.processCommand(e,e.state.vim,{type:\"motion\",motion:\"moveToLineOrEdgeOfDocument\",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0},repeatOverride:t.line+1})},set:function(e,t){var n=t.args,r=t.setCfg||{};if(!n||n.length<1){e&&Tn(e,\"Invalid mapping: \"+t.input);return}var i=n[0].split(\"=\"),s=i[0],o=i[1],u=!1;if(s.charAt(s.length-1)==\"?\"){if(o)throw Error(\"Trailing characters: \"+t.argString);s=s.substring(0,s.length-1),u=!0}o===undefined&&s.substring(0,2)==\"no\"&&(s=s.substring(2),o=!1);var a=J[s]&&J[s].type==\"boolean\";a&&o==undefined&&(o=!0);if(!a&&o===undefined||u){var f=G(s,e,r);f===!0||f===!1?Tn(e,\" \"+(f?\"\":\"no\")+s):Tn(e,\"  \"+s+\"=\"+f)}else Q(s,o,e,r)},setlocal:function(e,t){t.setCfg={scope:\"local\"},this.set(e,t)},setglobal:function(e,t){t.setCfg={scope:\"global\"},this.set(e,t)},registers:function(e,t){var n=t.args,r=nt.registerController.registers,i=\"----------Registers----------<br><br>\";if(!n)for(var s in r){var o=r[s].toString();o.length&&(i+='\"'+s+\"    \"+o+\"<br>\")}else{var s;n=n.join(\"\");for(var u=0;u<n.length;u++){s=n.charAt(u);if(!nt.registerController.isValidRegister(s))continue;var a=r[s]||new at;i+='\"'+s+\"    \"+a.toString()+\"<br>\"}}Tn(e,i)},sort:function(e,t){function o(){if(t.argString){var e=new v.StringStream(t.argString);e.eat(\"!\")&&(n=!0);if(e.eol())return;if(!e.eatSpace())return\"Invalid arguments\";var o=e.match(/[a-z]+/);if(o){o=o[0],r=o.indexOf(\"i\")!=-1,i=o.indexOf(\"u\")!=-1;var u=o.indexOf(\"d\")!=-1&&1,a=o.indexOf(\"x\")!=-1&&1,f=o.indexOf(\"o\")!=-1&&1;if(u+a+f>1)return\"Invalid arguments\";s=u&&\"decimal\"||a&&\"hex\"||f&&\"octal\"}if(e.match(/\\/.*\\//))return\"patterns not supported\"}}function b(e,t){if(n){var i;i=e,e=t,t=i}r&&(e=e.toLowerCase(),t=t.toLowerCase());var o=s&&p.exec(e),u=s&&p.exec(t);return o?(o=parseInt((o[1]+o[2]).toLowerCase(),d),u=parseInt((u[1]+u[2]).toLowerCase(),d),o-u):e<t?-1:1}var n,r,i,s,u=o();if(u){Tn(e,u+\": \"+t.argString);return}var a=t.line||e.firstLine(),f=t.lineEnd||t.line||e.lastLine();if(a==f)return;var l=E(a,0),c=E(f,Pt(e,f)),h=e.getRange(l,c).split(\"\\n\"),p=s==\"decimal\"?/(-?)([\\d]+)/:s==\"hex\"?/(-?)(?:0x)?([0-9a-f]+)/i:s==\"octal\"?/([0-7]+)/:null,d=s==\"decimal\"?10:s==\"hex\"?16:s==\"octal\"?8:null,m=[],g=[];if(s)for(var y=0;y<h.length;y++)p.exec(h[y])?m.push(h[y]):g.push(h[y]);else g=h;m.sort(b),g.sort(b),h=n?m.concat(g):g.concat(m);if(i){var w=h,S;h=[];for(var y=0;y<w.length;y++)w[y]!=S&&h.push(w[y]),S=w[y]}e.replaceRange(h.join(\"\\n\"),l,c)},global:function(e,t){var n=t.argString;if(!n){Tn(e,\"Regular Expression missing from global\");return}var r=t.line!==undefined?t.line:e.firstLine(),i=t.lineEnd||t.line||e.lastLine(),s=mn(n),o=n,u;s.length&&(o=s[0],u=s.slice(1,s.length).join(\"/\"));if(o)try{An(e,o,!0,!0)}catch(a){Tn(e,\"Invalid regex: \"+o);return}var f=dn(e).getQuery(),l=[],c=\"\";for(var h=r;h<=i;h++){var p=f.test(e.getLine(h));p&&(l.push(h+1),c+=e.getLine(h)+\"<br>\")}if(!u){Tn(e,c);return}var d=0,v=function(){if(d<l.length){var t=l[d]+u;Fn.processCommand(e,t,{callback:v})}d++};v()},substitute:function(e,t){if(!e.getSearchCursor)throw new Error(\"Search feature not available. Requires searchcursor.js or any other getSearchCursor implementation.\");var n=t.argString,r=n?mn(n):[],i,s=\"\",o,u,a,f=!1,l=!1;if(r.length)i=r[0],s=r[1],s!==undefined&&(G(\"pcre\")?s=Sn(s):s=wn(s),nt.lastSubstituteReplacePart=s),o=r[2]?r[2].split(\" \"):[];else if(n&&n.length){Tn(e,\"Substitutions should be of the form :s/pattern/replace/\");return}o&&(u=o[0],a=parseInt(o[1]),u&&(u.indexOf(\"c\")!=-1&&(f=!0,u.replace(\"c\",\"\")),u.indexOf(\"g\")!=-1&&(l=!0,u.replace(\"g\",\"\")),i=i+\"/\"+u));if(i)try{An(e,i,!0,!0)}catch(c){Tn(e,\"Invalid regex: \"+i);return}s=s||nt.lastSubstituteReplacePart;if(s===undefined){Tn(e,\"No previous substitute regular expression\");return}var h=dn(e),p=h.getQuery(),d=t.line!==undefined?t.line:e.getCursor().line,v=t.lineEnd||d;d==e.firstLine()&&v==e.lastLine()&&(v=Infinity),a&&(d=v,v=d+a-1);var m=wt(e,E(d,0)),g=e.getSearchCursor(p,m);In(e,f,l,d,v,g,p,s,t.callback)},redo:v.commands.redo,undo:v.commands.undo,write:function(e){v.commands.save?v.commands.save(e):e.save()},nohlsearch:function(e){Dn(e)},delmarks:function(e,t){if(!t.argString||!Ht(t.argString)){Tn(e,\"Argument required\");return}var n=e.state.vim,r=new v.StringStream(Ht(t.argString));while(!r.eol()){r.eatSpace();var i=r.pos;if(!r.match(/[a-zA-Z]/,!1)){Tn(e,\"Invalid argument: \"+t.argString.substring(i));return}var s=r.next();if(r.match(\"-\",!0)){if(!r.match(/[a-zA-Z]/,!1)){Tn(e,\"Invalid argument: \"+t.argString.substring(i));return}var o=s,u=r.next();if(!(U(o)&&U(u)||X(o)&&X(u))){Tn(e,\"Invalid argument: \"+o+\"-\");return}var a=o.charCodeAt(0),f=u.charCodeAt(0);if(a>=f){Tn(e,\"Invalid argument: \"+t.argString.substring(i));return}for(var l=0;l<=f-a;l++){var c=String.fromCharCode(a+l);delete n.marks[c]}}else delete n.marks[s]}}},Fn=new Bn;v.keyMap.vim={attach:C,detach:N,call:k},K(\"insertModeEscKeysTimeout\",200,\"number\"),v.keyMap[\"vim-insert\"]={\"Ctrl-N\":\"autocomplete\",\"Ctrl-P\":\"autocomplete\",Enter:function(e){var t=v.commands.newlineAndIndentContinueComment||v.commands.newlineAndIndent;t(e)},fallthrough:[\"default\"],attach:C,detach:N,call:k},v.keyMap[\"vim-replace\"]={Backspace:\"goCharLeft\",fallthrough:[\"vim-insert\"],attach:C,detach:N,call:k},rt(),v.Vim=S(),S=v.Vim;var tr={\"return\":\"CR\",backspace:\"BS\",\"delete\":\"Del\",esc:\"Esc\",left:\"Left\",right:\"Right\",up:\"Up\",down:\"Down\",space:\"Space\",home:\"Home\",end:\"End\",pageup:\"PageUp\",pagedown:\"PageDown\",enter:\"CR\"},rr=S.handleKey.bind(S);S.handleKey=function(e,t,n){return e.operation(function(){return rr(e,t,n)},!0)},t.CodeMirror=v;var or=S.maybeInitVimState_;t.handler={$id:\"ace/keyboard/vim\",drawCursor:function(e,t,n,r,s){var o=this.state.vim||{},u=n.characterWidth,a=n.lineHeight,f=t.top,l=t.left;if(!o.insertMode){var c=r.cursor?i.comparePoints(r.cursor,r.start)<=0:s.selection.isBackwards()||s.selection.isEmpty();!c&&l>u&&(l-=u)}!o.insertMode&&o.status&&(a/=2,f+=a),e.left=l+\"px\",e.top=f+\"px\",e.width=u+\"px\",e.height=a+\"px\"},handleKeyboard:function(e,t,n,r,i){var s=e.editor,o=s.state.cm,u=or(o);if(r==-1)return;if(n==\"c\"&&t==1){if(!c.isMac&&s.getCopyText())return s.once(\"copy\",function(){s.selection.clearSelection()}),{command:\"null\",passEvent:!0}}else u.insertMode||c.isMac&&this.handleMacRepeat(e,t,n)&&(t=-1,n=e.inputChar);if(t==-1||t&1||t===0&&n.length>1){var a=u.insertMode,f=nr(t,n,i||{});u.status==null&&(u.status=\"\");var l=sr(o,f,\"user\");u=or(o),l&&u.status!=null?u.status+=f:u.status==null&&(u.status=\"\"),o._signal(\"changeStatus\");if(!l&&(t!=-1||a))return;return{command:\"null\",passEvent:!l}}},attach:function(e){e.state||(e.state={});var t=new v(e);e.state.cm=t,e.$vimModeHandler=this,v.keyMap.vim.attach(t),or(t).status=null,t.on(\"vim-command-done\",function(){if(t.virtualSelectionMode())return;or(t).status=null,t.ace._signal(\"changeStatus\"),t.ace.session.markUndoGroup()}),t.on(\"changeStatus\",function(){t.ace.renderer.updateCursor(),t.ace._signal(\"changeStatus\")}),t.on(\"vim-mode-change\",function(){if(t.virtualSelectionMode())return;t.ace.renderer.setStyle(\"normal-mode\",!or(t).insertMode),t._signal(\"changeStatus\")}),t.ace.renderer.setStyle(\"normal-mode\",!or(t).insertMode),e.renderer.$cursorLayer.drawCursor=this.drawCursor.bind(t),this.updateMacCompositionHandlers(e,!0)},detach:function(e){var t=e.state.cm;v.keyMap.vim.detach(t),t.destroy(),e.state.cm=null,e.$vimModeHandler=null,e.renderer.$cursorLayer.drawCursor=null,e.renderer.setStyle(\"normal-mode\",!1),this.updateMacCompositionHandlers(e,!1)},getStatusText:function(e){var t=e.state.cm,n=or(t);if(n.insertMode)return\"INSERT\";var r=\"\";return n.visualMode&&(r+=\"VISUAL\",n.visualLine&&(r+=\" LINE\"),n.visualBlock&&(r+=\" BLOCK\")),n.status&&(r+=(r?\" \":\"\")+n.status),r},handleMacRepeat:function(e,t,n){if(t==-1)e.inputChar=n,e.lastEvent=\"input\";else if(e.inputChar&&e.$lastHash==t&&e.$lastKey==n){if(e.lastEvent==\"input\")e.lastEvent=\"input1\";else if(e.lastEvent==\"input1\")return!0}else e.$lastHash=t,e.$lastKey=n,e.lastEvent=\"keypress\"},updateMacCompositionHandlers:function(e,t){var n=function(t){var n=e.state.cm,r=or(n);if(!r.insertMode){var i=this.textInput.getElement();i.blur(),i.focus(),i.value=t}else this.onCompositionUpdateOrig(t)},r=function(t){var n=e.state.cm,r=or(n);r.insertMode||this.onCompositionStartOrig(t)};t?e.onCompositionUpdateOrig||(e.onCompositionUpdateOrig=e.onCompositionUpdate,e.onCompositionUpdate=n,e.onCompositionStartOrig=e.onCompositionStart,e.onCompositionStart=r):e.onCompositionUpdateOrig&&(e.onCompositionUpdate=e.onCompositionUpdateOrig,e.onCompositionUpdateOrig=null,e.onCompositionStart=e.onCompositionStartOrig,e.onCompositionStartOrig=null)}};var ur={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?\"\\u00b7\":\"\"))+\"\"},getWidth:function(e,t,n){return e.getLength().toString().length*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on(\"changeSelection\",this.update)},detach:function(e){e.renderer.$gutterLayer.$renderer=null,e.off(\"changeSelection\",this.update)}};S.defineOption({name:\"wrap\",set:function(e,t){t&&t.ace.setOption(\"wrap\",e)},type:\"boolean\"},!1),S.defineEx(\"write\",\"w\",function(){console.log(\":write is not implemented\")}),b.push({keys:\"zc\",type:\"action\",action:\"fold\",actionArgs:{open:!1}},{keys:\"zC\",type:\"action\",action:\"fold\",actionArgs:{open:!1,all:!0}},{keys:\"zo\",type:\"action\",action:\"fold\",actionArgs:{open:!0}},{keys:\"zO\",type:\"action\",action:\"fold\",actionArgs:{open:!0,all:!0}},{keys:\"za\",type:\"action\",action:\"fold\",actionArgs:{toggle:!0}},{keys:\"zA\",type:\"action\",action:\"fold\",actionArgs:{toggle:!0,all:!0}},{keys:\"zf\",type:\"action\",action:\"fold\",actionArgs:{open:!0,all:!0}},{keys:\"zd\",type:\"action\",action:\"fold\",actionArgs:{open:!0,all:!0}},{keys:\"<C-A-k>\",type:\"action\",action:\"aceCommand\",actionArgs:{name:\"addCursorAbove\"}},{keys:\"<C-A-j>\",type:\"action\",action:\"aceCommand\",actionArgs:{name:\"addCursorBelow\"}},{keys:\"<C-A-S-k>\",type:\"action\",action:\"aceCommand\",actionArgs:{name:\"addCursorAboveSkipCurrent\"}},{keys:\"<C-A-S-j>\",type:\"action\",action:\"aceCommand\",actionArgs:{name:\"addCursorBelowSkipCurrent\"}},{keys:\"<C-A-h>\",type:\"action\",action:\"aceCommand\",actionArgs:{name:\"selectMoreBefore\"}},{keys:\"<C-A-l>\",type:\"action\",action:\"aceCommand\",actionArgs:{name:\"selectMoreAfter\"}},{keys:\"<C-A-S-h>\",type:\"action\",action:\"aceCommand\",actionArgs:{name:\"selectNextBefore\"}},{keys:\"<C-A-S-l>\",type:\"action\",action:\"aceCommand\",actionArgs:{name:\"selectNextAfter\"}}),yt.aceCommand=function(e,t,n){e.vimCmd=t,e.ace.inVirtualSelectionMode?e.ace.on(\"beforeEndOperation\",ar):ar(null,e.ace)},yt.fold=function(e,t,n){e.ace.execCommand([\"toggleFoldWidget\",\"toggleFoldWidget\",\"foldOther\",\"unfoldall\"][(t.all?2:0)+(t.open?1:0)])},t.handler.defaultKeymap=b,t.handler.actions=yt,t.Vim=S,S.map(\"Y\",\"yy\",\"normal\")})"
  },
  {
    "path": "lib/src-min-noconflict/mode-abap.js",
    "content": "ace.define(\"ace/mode/abap_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=this.createKeywordMapper({\"variable.language\":\"this\",keyword:\"ADD ALIAS ALIASES ASCENDING ASSERT ASSIGN ASSIGNING AT BACK CALL CASE CATCH CHECK CLASS CLEAR CLOSE CNT COLLECT COMMIT COMMUNICATION COMPUTE CONCATENATE CONDENSE CONSTANTS CONTINUE CONTROLS CONVERT CREATE CURRENCY DATA DEFINE DEFINITION DEFERRED DELETE DESCENDING DESCRIBE DETAIL DIVIDE DO ELSE ELSEIF ENDAT ENDCASE ENDCLASS ENDDO ENDEXEC ENDFORM ENDFUNCTION ENDIF ENDIFEND ENDINTERFACE ENDLOOP ENDMETHOD ENDMODULE ENDON ENDPROVIDE ENDSELECT ENDTRY ENDWHILE EVENT EVENTS EXEC EXIT EXPORT EXPORTING EXTRACT FETCH FIELDS FORM FORMAT FREE FROM FUNCTION GENERATE GET HIDE IF IMPORT IMPORTING INDEX INFOTYPES INITIALIZATION INTERFACE INTERFACES INPUT INSERT IMPLEMENTATION LEAVE LIKE LINE LOAD LOCAL LOOP MESSAGE METHOD METHODS MODIFY MODULE MOVE MULTIPLY ON OVERLAY OPTIONAL OTHERS PACK PARAMETERS PERFORM POSITION PROGRAM PROVIDE PUT RAISE RANGES READ RECEIVE RECEIVING REDEFINITION REFERENCE REFRESH REJECT REPLACE REPORT RESERVE RESTORE RETURN RETURNING ROLLBACK SCAN SCROLL SEARCH SELECT SET SHIFT SKIP SORT SORTED SPLIT STANDARD STATICS STEP STOP SUBMIT SUBTRACT SUM SUMMARY SUPPRESS TABLES TIMES TRANSFER TRANSLATE TRY TYPE TYPES UNASSIGN ULINE UNPACK UPDATE WHEN WHILE WINDOW WRITE OCCURS STRUCTURE OBJECT PROPERTY CASTING APPEND RAISING VALUE COLOR CHANGING EXCEPTION EXCEPTIONS DEFAULT CHECKBOX COMMENT ID NUMBER FOR TITLE OUTPUT WITH EXIT USING INTO WHERE GROUP BY HAVING ORDER BY SINGLE APPENDING CORRESPONDING FIELDS OF TABLE LEFT RIGHT OUTER INNER JOIN AS CLIENT SPECIFIED BYPASSING BUFFER UP TO ROWS CONNECTING EQ NE LT LE GT GE NOT AND OR XOR IN LIKE BETWEEN\",\"constant.language\":\"TRUE FALSE NULL SPACE\",\"support.type\":\"c n i p f d t x string xstring decfloat16 decfloat34\",\"keyword.operator\":\"abs sign ceil floor trunc frac acos asin atan cos sin tan abapOperator cosh sinh tanh exp log log10 sqrt strlen xstrlen charlen numofchar dbmaxlen lines\"},\"text\",!0,\" \"),t=\"WITH\\\\W+(?:HEADER\\\\W+LINE|FRAME|KEY)|NO\\\\W+STANDARD\\\\W+PAGE\\\\W+HEADING|EXIT\\\\W+FROM\\\\W+STEP\\\\W+LOOP|BEGIN\\\\W+OF\\\\W+(?:BLOCK|LINE)|BEGIN\\\\W+OF|END\\\\W+OF\\\\W+(?:BLOCK|LINE)|END\\\\W+OF|NO\\\\W+INTERVALS|RESPECTING\\\\W+BLANKS|SEPARATED\\\\W+BY|USING\\\\W+(?:EDIT\\\\W+MASK)|WHERE\\\\W+(?:LINE)|RADIOBUTTON\\\\W+GROUP|REF\\\\W+TO|(?:PUBLIC|PRIVATE|PROTECTED)(?:\\\\W+SECTION)?|DELETING\\\\W+(?:TRAILING|LEADING)(?:ALL\\\\W+OCCURRENCES)|(?:FIRST|LAST)\\\\W+OCCURRENCE|INHERITING\\\\W+FROM|LINE-COUNT|ADD-CORRESPONDING|AUTHORITY-CHECK|BREAK-POINT|CLASS-DATA|CLASS-METHODS|CLASS-METHOD|DIVIDE-CORRESPONDING|EDITOR-CALL|END-OF-DEFINITION|END-OF-PAGE|END-OF-SELECTION|FIELD-GROUPS|FIELD-SYMBOLS|FUNCTION-POOL|MOVE-CORRESPONDING|MULTIPLY-CORRESPONDING|NEW-LINE|NEW-PAGE|NEW-SECTION|PRINT-CONTROL|RP-PROVIDE-FROM-LAST|SELECT-OPTIONS|SELECTION-SCREEN|START-OF-SELECTION|SUBTRACT-CORRESPONDING|SYNTAX-CHECK|SYNTAX-TRACE|TOP-OF-PAGE|TYPE-POOL|TYPE-POOLS|LINE-SIZE|LINE-COUNT|MESSAGE-ID|DISPLAY-MODE|READ(?:-ONLY)?|IS\\\\W+(?:NOT\\\\W+)?(?:ASSIGNED|BOUND|INITIAL|SUPPLIED)\";this.$rules={start:[{token:\"string\",regex:\"`\",next:\"string\"},{token:\"string\",regex:\"'\",next:\"qstring\"},{token:\"doc.comment\",regex:/^\\*.+/},{token:\"comment\",regex:/\".+$/},{token:\"invalid\",regex:\"\\\\.{2,}\"},{token:\"keyword.operator\",regex:/\\W[\\-+%=<>*]\\W|\\*\\*|[~:,\\.&$]|->*?|=>/},{token:\"paren.lparen\",regex:\"[\\\\[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+\\\\b\"},{token:\"variable.parameter\",regex:/sy|pa?\\d\\d\\d\\d\\|t\\d\\d\\d\\.|innnn/},{token:\"keyword\",regex:t},{token:\"variable.parameter\",regex:/\\w+-\\w+(?:-\\w+)*/},{token:e,regex:\"\\\\b\\\\w+\\\\b\"},{caseInsensitive:!0}],qstring:[{token:\"constant.language.escape\",regex:\"''\"},{token:\"string\",regex:\"'\",next:\"start\"},{defaultToken:\"string\"}],string:[{token:\"constant.language.escape\",regex:\"``\"},{token:\"string\",regex:\"`\",next:\"start\"},{defaultToken:\"string\"}]}};r.inherits(s,i),t.AbapHighlightRules=s}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/abap\",[\"require\",\"exports\",\"module\",\"ace/mode/abap_highlight_rules\",\"ace/mode/folding/coffee\",\"ace/range\",\"ace/mode/text\",\"ace/lib/oop\"],function(e,t,n){\"use strict\";function a(){this.HighlightRules=r,this.foldingRules=new i}var r=e(\"./abap_highlight_rules\").AbapHighlightRules,i=e(\"./folding/coffee\").FoldMode,s=e(\"../range\").Range,o=e(\"./text\").Mode,u=e(\"../lib/oop\");u.inherits(a,o),function(){this.lineCommentStart='\"',this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);return r},this.$id=\"ace/mode/abap\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict/mode-abc.js",
    "content": "ace.define(\"ace/mode/abc_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:[\"zupfnoter.information.comment.line.percentage\",\"information.keyword\",\"in formation.keyword.embedded\"],regex:\"(%%%%)(hn\\\\.[a-z]*)(.*)\",comment:\"Instruction Comment\"},{token:[\"information.comment.line.percentage\",\"information.keyword.embedded\"],regex:\"(%%)(.*)\",comment:\"Instruction Comment\"},{token:\"comment.line.percentage\",regex:\"%.*\",comment:\"Comments\"},{token:\"barline.keyword.operator\",regex:\"[\\\\[:]*[|:][|\\\\]:]*(?:\\\\[?[0-9]+)?|\\\\[[0-9]+\",comment:\"Bar lines\"},{token:[\"information.keyword.embedded\",\"information.argument.string.unquoted\"],regex:\"(\\\\[[A-Za-z]:)([^\\\\]]*\\\\])\",comment:\"embedded Header lines\"},{token:[\"information.keyword\",\"information.argument.string.unquoted\"],regex:\"^([A-Za-z]:)([^%\\\\\\\\]*)\",comment:\"Header lines\"},{token:[\"text\",\"entity.name.function\",\"string.unquoted\",\"text\"],regex:\"(\\\\[)([A-Z]:)(.*?)(\\\\])\",comment:\"Inline fields\"},{token:[\"accent.constant.language\",\"pitch.constant.numeric\",\"duration.constant.numeric\"],regex:\"([\\\\^=_]*)([A-Ga-gz][,']*)([0-9]*/*[><0-9]*)\",comment:\"Notes\"},{token:\"zupfnoter.jumptarget.string.quoted\",regex:'[\\\\\"!]\\\\^\\\\:.*?[\\\\\"!]',comment:\"Zupfnoter jumptarget\"},{token:\"zupfnoter.goto.string.quoted\",regex:'[\\\\\"!]\\\\^\\\\@.*?[\\\\\"!]',comment:\"Zupfnoter goto\"},{token:\"zupfnoter.annotation.string.quoted\",regex:'[\\\\\"!]\\\\^\\\\!.*?[\\\\\"!]',comment:\"Zupfnoter annoation\"},{token:\"zupfnoter.annotationref.string.quoted\",regex:'[\\\\\"!]\\\\^\\\\#.*?[\\\\\"!]',comment:\"Zupfnoter annotation reference\"},{token:\"chordname.string.quoted\",regex:'[\\\\\"!]\\\\^.*?[\\\\\"!]',comment:\"abc chord\"},{token:\"string.quoted\",regex:'[\\\\\"!].*?[\\\\\"!]',comment:\"abc annotation\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"abc\"],name:\"ABC\",scopeName:\"text.abcnotation\"},r.inherits(s,i),t.ABCHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/abc\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/abc_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./abc_highlight_rules\").ABCHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.$id=\"ace/mode/abc\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-actionscript.js",
    "content": "ace.define(\"ace/mode/actionscript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"support.class.actionscript.2\",regex:\"\\\\b(?:R(?:ecordset|DBMSResolver|adioButton(?:Group)?)|X(?:ML(?:Socket|Node|Connector)?|UpdateResolverDataHolder)|M(?:M(?:Save|Execute)|icrophoneMicrophone|o(?:use|vieClip(?:Loader)?)|e(?:nu(?:Bar)?|dia(?:Controller|Display|Playback))|ath)|B(?:yName|inding|utton)|S(?:haredObject|ystem|crollPane|t(?:yleSheet|age|ream)|ound|e(?:ndEvent|rviceObject)|OAPCall|lide)|N(?:umericStepper|et(?:stream|S(?:tream|ervices)|Connection|Debug(?:Config)?))|C(?:heckBox|o(?:ntextMenu(?:Item)?|okie|lor|m(?:ponentMixins|boBox))|ustomActions|lient|amera)|T(?:ypedValue|ext(?:Snapshot|Input|F(?:ield|ormat)|Area)|ree|AB)|Object|D(?:ownload|elta(?:Item|Packet)?|at(?:e(?:Chooser|Field)?|a(?:G(?:lue|rid)|Set|Type)))|U(?:RL|TC|IScrollBar)|P(?:opUpManager|endingCall|r(?:intJob|o(?:duct|gressBar)))|E(?:ndPoint|rror)|Video|Key|F(?:RadioButton|GridColumn|MessageBox|BarChart|S(?:croll(?:Bar|Pane)|tyleFormat|plitView)|orm|C(?:heckbox|omboBox|alendar)|unction|T(?:icker|ooltip(?:Lite)?|ree(?:Node)?)|IconButton|D(?:ataGrid|raggablePane)|P(?:ieChart|ushButton|ro(?:gressBar|mptBox))|L(?:i(?:stBox|neChart)|oadingBox)|AdvancedMessageBox)|W(?:indow|SDLURL|ebService(?:Connector)?)|L(?:ist|o(?:calConnection|ad(?:er|Vars)|g)|a(?:unch|bel))|A(?:sBroadcaster|cc(?:ordion|essibility)|S(?:Set(?:Native|PropFlags)|N(?:ew|ative)|C(?:onstructor|lamp(?:2)?)|InstanceOf)|pplication|lert|rray))\\\\b\"},{token:\"support.function.actionscript.2\",regex:\"\\\\b(?:s(?:h(?:ift|ow(?:GridLines|Menu|Border|Settings|Headers|ColumnHeaders|Today|Preferences)?|ad(?:ow|ePane))|c(?:hema|ale(?:X|Mode|Y|Content)|r(?:oll(?:Track|Drag)?|een(?:Resolution|Color|DPI)))|t(?:yleSheet|op(?:Drag|A(?:nimation|llSounds|gent))?|epSize|a(?:tus|rt(?:Drag|A(?:nimation|gent))?))|i(?:n|ze|lence(?:TimeOut|Level))|o(?:ngname|urce|rt(?:Items(?:By)?|On(?:HeaderRelease)?|able(?:Columns)?)?)|u(?:ppressInvalidCalls|bstr(?:ing)?)|p(?:li(?:ce|t)|aceCol(?:umnsEqually|lumnsEqually))|e(?:nd(?:DefaultPushButtonEvent|AndLoad)?|curity|t(?:R(?:GB|o(?:otNode|w(?:Height|Count))|esizable(?:Columns)?|a(?:nge|te))|G(?:ain|roupName)|X(?:AxisTitle)?|M(?:i(?:n(?:imum|utes)|lliseconds)|o(?:nth(?:Names)?|tionLevel|de)|ultilineMode|e(?:ssage|nu(?:ItemEnabled(?:At)?|EnabledAt)|dia)|a(?:sk|ximum))|B(?:u(?:tton(?:s|Width)|fferTime)|a(?:seTabIndex|ndwidthLimit|ckground))|S(?:howAsDisabled|croll(?:ing|Speed|Content|Target|P(?:osition|roperties)|barState|Location)|t(?:yle(?:Property)?|opOnFocus|at(?:us|e))|i(?:ze|lenceLevel)|ort(?:able(?:Columns)?|Function)|p(?:litterBarPosition|acing)|e(?:conds|lect(?:Multiple|ion(?:Required|Type)?|Style|Color|ed(?:Node(?:s)?|Cell|I(?:nd(?:ices|ex)|tem(?:s)?))?|able))|kin|m(?:oothness|allScroll))|H(?:ighlight(?:s|Color)|Scroll|o(?:urs|rizontal)|eader(?:Symbol|Height|Text|Property|Format|Width|Location)?|as(?:Shader|CloseBox))|Y(?:ear|AxisTitle)?|N(?:ode(?:Properties|ExpansionHandler)|ewTextFormat)|C(?:h(?:ildNodes|a(?:ngeHandler|rt(?:Title|EventHandler)))|o(?:ntent(?:Size)?|okie|lumns)|ell(?:Symbol|Data)|l(?:i(?:ckHandler|pboard)|oseHandler)|redentials)|T(?:ype(?:dVaule)?|i(?:tle(?:barHeight)?|p(?:Target|Offset)?|me(?:out(?:Handler)?)?)|oggle|extFormat|ransform)|I(?:s(?:Branch|Open)|n(?:terval|putProperty)|con(?:SymbolName)?|te(?:rator|m(?:ByKey|Symbol)))|Orientation|D(?:i(?:splay(?:Range|Graphics|Mode|Clip|Text|edMonth)|rection)|uration|e(?:pth(?:Below|To|Above)|fault(?:GatewayURL|Mappings|NodeIconSymbolName)|l(?:iveryMode|ay)|bug(?:ID)?)|a(?:yOfWeekNames|t(?:e(?:Filter)?|a(?:Mapping(?:s)?|Item(?:Text|Property|Format)|Provider|All(?:Height|Property|Format|Width))?))|ra(?:wConnectors|gContent))|U(?:se(?:Shadow|HandCursor|EchoSuppression|rInput|Fade)|TC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear))|P(?:osition|ercentComplete|an(?:e(?:M(?:inimumSize|aximumSize)|Size|Title))?|ro(?:pert(?:y(?:Data)?|iesAt)|gress))|E(?:nabled|dit(?:Handler|able)|xpand(?:NodeTrigger|erSymbolName))|V(?:Scroll|olume|alue(?:Source)?)|KeyFrameInterval|Quality|F(?:i(?:eld|rst(?:DayOfWeek|VisibleNode))|ocus|ullYear|ps|ade(?:InLength|OutLength)|rame(?:Color|Width))|Width|L(?:ine(?:Color|Weight)|o(?:opback|adTarget)|a(?:rgeScroll|bel(?:Source|Placement)?))|A(?:s(?:Boolean|String|Number)|n(?:yTypedValue|imation)|ctiv(?:e(?:State(?:Handler)?|Handler)|ateHandler)|utoH(?:ideScrollBar|eight)))?|paratorBefore|ek|lect(?:ion(?:Disabled|Unfocused)?|ed(?:Node(?:s)?|Child|I(?:nd(?:ices|ex)|tem(?:s)?)|Dat(?:e|a))?|able(?:Ranges)?)|rver(?:String)?)|kip|qrt|wapDepths|lice|aveToSharedObj|moothing)|h(?:scroll(?:Policy)?|tml(?:Text)?|i(?:t(?:Test(?:TextNearPos)?|Area)|de(?:BuiltInItems|Child)?|ghlight(?:2D|3D)?)|orizontal|e(?:ight|ader(?:Re(?:nderer|lease)|Height|Text))|P(?:osition|ageScrollSize)|a(?:s(?:childNodes|MP3|S(?:creen(?:Broadcast|Playback)|treaming(?:Video|Audio)|ort)|Next|OwnProperty|Pr(?:inting|evious)|EmbeddedVideo|VideoEncoder|A(?:ccesibility|udio(?:Encoder)?))|ndlerName)|LineScrollSize)|ye(?:sLabel|ar)|n(?:o(?:t|de(?:Name|Close|Type|Open|Value)|Label)|u(?:llValue|mChild(?:S(?:creens|lides)|ren|Forms))|e(?:w(?:Item|line|Value|LocationDialog)|xt(?:S(?:cene|ibling|lide)|TabIndex|Value|Frame)?)?|ame(?:s)?)|c(?:h(?:ildNodes|eck|a(?:nge(?:sPending)?|r(?:CodeAt|At))|r)|o(?:s|n(?:st(?:ant|ructor)|nect|c(?:urrency|at)|t(?:ent(?:Type|Path)?|ains|rol(?:Placement|lerPolicy))|denseWhite|version)|py|l(?:or|umn(?:Stretch|Name(?:s)?|Count))|m(?:p(?:onent|lete)|ment))|u(?:stomItems|ePoint(?:s)?|r(?:veTo|Value|rent(?:Slide|ChildSlide|Item|F(?:ocused(?:S(?:creen|lide)|Form)|ps))))|e(?:il|ll(?:Renderer|Press|Edit|Focus(?:In|Out)))|l(?:i(?:ck|ents)|o(?:se(?:Button|Pane)?|ne(?:Node)?)|ear(?:S(?:haredObjects|treams)|Timeout|Interval)?)|a(?:ncelLabel|tch|p(?:tion|abilities)|l(?:cFields|l(?:e(?:e|r))?))|reate(?:GatewayConnection|Menu|Se(?:rver|gment)|C(?:hild(?:AtDepth)?|l(?:ient|ass(?:ChildAtDepth|Object(?:AtDepth)?))|all)|Text(?:Node|Field)|Item|Object(?:AtDepth)?|PopUp|E(?:lement|mptyMovieClip)))|t(?:h(?:is|row)|ype(?:of|Name)?|i(?:tle(?:StyleDeclaration)?|me(?:out)?)|o(?:talTime|String|olTipText|p|UpperCase|ggle(?:HighQuality)?|Lo(?:caleString|werCase))|e(?:st|llTarget|xt(?:RightMargin|Bold|S(?:ize|elected)|Height|Color|I(?:ndent|talic)|Disabled|Underline|F(?:ield|ont)|Width|LeftMargin|Align)?)|a(?:n|rget(?:Path)?|b(?:Stops|Children|Index|Enabled|leName))|r(?:y|igger|ac(?:e|k(?:AsMenu)?)))|i(?:s(?:Running|Branch|NaN|Con(?:soleOpen|nected)|Toggled|Installed|Open|D(?:own|ebugger)|P(?:urchased|ro(?:totypeOf|pertyEnumerable))|Empty|F(?:inite|ullyPopulated)|Local|Active)|n(?:s(?:tall|ertBefore)|cludeDeltaPacketInfo|t|it(?:ialize|Component|Pod|A(?:pplication|gent))?|de(?:nt|terminate|x(?:InParent(?:Slide|Form)?|Of)?)|put|validate|finity|LocalInternetCache)?|con(?:F(?:ield|unction))?|t(?:e(?:ratorScrolled|m(?:s|RollO(?:ut|ver)|ClassName))|alic)|d3|p|fFrameLoaded|gnore(?:Case|White))|o(?:s|n(?:R(?:ollO(?:ut|ver)|e(?:s(?:ize|ult)|l(?:ease(?:Outside)?|aseOutside)))|XML|Mouse(?:Move|Down|Up|Wheel)|S(?:ync|croller|tatus|oundComplete|e(?:tFocus|lect(?:edItem)?))|N(?:oticeEvent|etworkChange)|C(?:hanged|onnect|l(?:ipEvent|ose))|ID3|D(?:isconnect|eactivate|ata|ragO(?:ut|ver))|Un(?:install|load)|P(?:aymentResult|ress)|EnterFrame|K(?:illFocus|ey(?:Down|Up))|Fault|Lo(?:ad|g)|A(?:ctiv(?:ity|ate)|ppSt(?:op|art)))?|pe(?:n|ration)|verLayChildren|kLabel|ldValue|r(?:d)?)|d(?:i(?:s(?:connect|play(?:Normal|ed(?:Month|Year)|Full)|able(?:Shader|d(?:Ranges|Days)|CloseBox|Events))|rection)|o(?:cTypeDecl|tall|Decoding|main|LazyDecoding)|u(?:plicateMovieClip|ration)|e(?:stroy(?:ChildAt|Object)|code|fault(?:PushButton(?:Enabled)?|KeydownHandler)?|l(?:ta(?:Packet(?:Changed)?)?|ete(?:PopUp|All)?)|blocking)|a(?:shBoardSave|yNames|ta(?:Provider)?|rkshadow)|r(?:opdown(?:Width)?|a(?:w|gO(?:ut|ver))))|u(?:se(?:Sort|HandCursor|Codepage|EchoSuppression)|n(?:shift|install|derline|escape|format|watch|lo(?:ck|ad(?:Movie(?:Num)?)?))|pdate(?:Results|Mode|I(?:nputProperties|tem(?:ByIndex)?)|P(?:acket|roperties)|View|AfterEvent)|rl)|join|p(?:ixelAspectRatio|o(?:sition|p|w)|u(?:sh|rge|blish)|ercen(?:tComplete|Loaded)|lay(?:head(?:Change|Time)|ing|Hidden|erType)?|a(?:ssword|use|r(?:se(?:XML|CSS|Int|Float)|ent(?:Node|Is(?:S(?:creen|lide)|Form))|ams))|r(?:int(?:Num|AsBitmap(?:Num)?)?|o(?:to(?:type)?|pert(?:y|ies)|gress)|e(?:ss|v(?:ious(?:S(?:ibling|lide)|Value)?|Scene|Frame)|ferred(?:Height|Width))))|e(?:scape|n(?:code(?:r)?|ter(?:Frame)?|dFill|able(?:Shader|d|CloseBox|Events))|dit(?:able|Field|LocationDialog)|v(?:ent|al(?:uate)?)|q|x(?:tended|p|ec(?:ute)?|actSettings)|m(?:phasized(?:StyleDeclaration)?|bedFonts))|v(?:i(?:sible|ewPod)|ScrollPolicy|o(?:id|lume)|ersion|P(?:osition|ageScrollSize)|a(?:l(?:idat(?:ionError|e(?:Property|ActivationKey)?)|ue(?:Of)?)|riable)|LineScrollSize)|k(?:ind|ey(?:Down|Up|Press|FrameInterval))|q(?:sort|uality)|f(?:scommand|i(?:n(?:d(?:Text|First|Last)?|ally)|eldInfo|lter(?:ed|Func)?|rst(?:Slide|Child|DayOfWeek|VisibleNode)?)|o(?:nt|cus(?:In|edCell|Out|Enabled)|r(?:egroundDisabled|mat(?:ter)?))|unctionName|ps|l(?:oor|ush)|ace|romCharCode)|w(?:i(?:th|dth)|ordWrap|atch|riteAccess)|l(?:t|i(?:st(?:Owner)?|ne(?:Style|To))|o(?:c(?:k|a(?:t(?:ion|eByld)|l(?:ToGlobal|FileReadDisable)))|opback|ad(?:Movie(?:Num)?|S(?:crollContent|ound)|ed|Variables(?:Num)?|Application)?|g(?:Changes)?)|e(?:ngth|ft(?:Margin)?|ading)?|a(?:st(?:Slide|Child|Index(?:Of)?)?|nguage|b(?:el(?:Placement|F(?:ield|unction))?|leField)))|a(?:s(?:scociate(?:Controller|Display)|in|pectRatio|function)|nd|c(?:ceptConnection|tiv(?:ityLevel|ePlayControl)|os)|t(?:t(?:ach(?:Movie|Sound|Video|Audio)|ributes)|an(?:2)?)|dd(?:header|RequestHeader|Menu(?:Item(?:At)?|At)?|Sort|Header|No(?:tice|de(?:At)?)|C(?:olumn(?:At)?|uePoint)|T(?:oLocalInternetCache|reeNode(?:At)?)|I(?:con|tem(?:s(?:At)?|At)?)|DeltaItem|P(?:od|age|roperty)|EventListener|View|FieldInfo|Listener|Animation)?|uto(?:Size|Play|KeyNav|Load)|pp(?:endChild|ly(?:Changes|Updates)?)|vHardwareDisable|fterLoaded|l(?:ternateRowColors|ign|l(?:ow(?:InsecureDomain|Domain)|Transitions(?:InDone|OutDone))|bum)|r(?:tist|row|g(?:uments|List))|gent|bs)|r(?:ight(?:Margin)?|o(?:ot(?:S(?:creen|lide)|Form)|und|w(?:Height|Count)|llO(?:ut|ver))|e(?:s(?:yncDepth|t(?:orePane|artAnimation|rict)|iz(?:e|able(?:Columns)?)|olveDelta|ult(?:s)?|ponse)|c(?:o(?:ncile(?:Results|Updates)|rd)|eive(?:Video|Audio))|draw|jectConnection|place(?:Sel|ItemAt|AllItems)?|ve(?:al(?:Child)?|rse)|quest(?:SizeChange|Payment)?|f(?:errer|resh(?:ScrollContent|Destinations|Pane|FromSources)?)|lease(?:Outside)?|ad(?:Only|Access)|gister(?:SkinElement|C(?:olor(?:Style|Name)|lass)|InheritingStyle|Proxy)|move(?:Range|M(?:ovieClip|enu(?:Item(?:At)?|At))|Background|Sort|No(?:tice|de(?:sAt|At)?)|C(?:olum(?:nAt|At)|uePoints)|T(?:extField|reeNode(?:At)?)|Item(?:At)?|Pod|EventListener|FromLocalInternetCache|Listener|All(?:C(?:olumns|uePoints)|Items)?))|a(?:ndom|te|dioDot))|g(?:t|oto(?:Slide|NextSlide|PreviousSlide|FirstSlide|LastSlide|And(?:Stop|Play))|e(?:nre|t(?:R(?:GB|o(?:otNode|wCount)|e(?:sizable|mote))|X(?:AxisTitle)?|M(?:i(?:n(?:imum(?:Size)?|utes)|lliseconds)|onth(?:Names)?|ultilineMode|e(?:ssage|nu(?:ItemAt|EnabledAt|At))|aximum(?:Size)?)|B(?:ytes(?:Total|Loaded)|ounds|utton(?:s|Width)|eginIndex|a(?:ndwidthLimit|ckground))|S(?:howAsDisabled|croll(?:ing|Speed|Content|Position|barState|Location)|t(?:yle(?:Names)?|opOnFocus|ate)|ize|o(?:urce|rtState)|p(?:litterBarPosition|acing)|e(?:conds|lect(?:Multiple|ion(?:Required|Type)|Style|ed(?:Node(?:s)?|Cell|Text|I(?:nd(?:ices|ex)|tem(?:s)?))?)|rvice)|moothness|WFVersion)|H(?:ighlight(?:s|Color)|ours|e(?:ight|ader(?:Height|Text|Property|Format|Width|Location)?)|as(?:Shader|CloseBox))|Y(?:ear|AxisTitle)?|N(?:o(?:tices|de(?:DisplayedAt|At))|um(?:Children|berAvailable)|e(?:wTextFormat|xtHighestDepth))|C(?:h(?:ild(?:S(?:creen|lide)|Nodes|Form|At)|artTitle)|o(?:n(?:tent|figInfo)|okie|de|unt|lumn(?:Names|Count|Index|At))|uePoint|ellIndex|loseHandler|a(?:ll|retIndex))|T(?:ypedValue|i(?:tle(?:barHeight)?|p(?:Target|Offset)?|me(?:stamp|zoneOffset|out(?:State|Handler)|r)?)|oggle|ext(?:Extent|Format)?|r(?:ee(?:NodeAt|Length)|ans(?:form|actionId)))|I(?:s(?:Branch|Open)|n(?:stanceAtDepth|d(?:icesByKey|exByKey))|con(?:SymbolName)?|te(?:rator|m(?:sByKey|By(?:Name|Key)|id|ID|At))|d)|O(?:utput(?:Parameter(?:s|ByName)?|Value(?:s)?)|peration|ri(?:entation|ginalCellData))|D(?:i(?:s(?:play(?:Range|Mode|Clip|Index|edMonth)|kUsage)|rection)|uration|e(?:pth|faultNodeIconSymbolName|l(?:taPacket|ay)|bug(?:Config|ID)?)|a(?:y(?:OfWeekNames)?|t(?:e|a(?:Mapping(?:s)?|Item(?:Text|Property|Format)|Label|All(?:Height|Property|Format|Width))?))|rawConnectors)|U(?:se(?:Shadow|HandCursor|rInput|Fade)|RL|TC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear))|P(?:o(?:sition|ds)|ercentComplete|a(?:n(?:e(?:M(?:inimums|aximums)|Height|Title|Width))?|rentNode)|r(?:operty(?:Name|Data)?|efer(?:ences|red(?:Height|Width))))|E(?:n(?:dIndex|abled)|ditingData|x(?:panderSymbolName|andNodeTrigger))|V(?:iewed(?:Pods|Applications)|olume|ersion|alue(?:Source)?)|F(?:i(?:eld|rst(?:DayOfWeek|VisibleNode))|o(?:ntList|cus)|ullYear|ade(?:InLength|OutLength)|rame(?:Color|Width))|Width|L(?:ine(?:Color|Weight)|o(?:cal|adTarget)|ength|a(?:stTabIndex|bel(?:Source)?))|A(?:s(?:cii|Boolean|String|Number)|n(?:yTypedValue|imation)|ctiv(?:eState(?:Handler)?|ateHandler)|utoH(?:ideScrollBar|eight)|llItems|gent))?)?|lobal(?:StyleFormat|ToLocal)?|ain|roupName)|x(?:updatePackety|mlDecl)?|m(?:y(?:MethodName|Call)|in(?:imum)?|o(?:nthNames|tion(?:TimeOut|Level)|de(?:lChanged)?|use(?:Move|O(?:ut|ver)|Down(?:Somewhere|Outside)?|Up(?:Somewhere)?|WheelEnabled)|ve(?:To)?)|u(?:ted|lti(?:pleS(?:imultaneousAllowed|elections)|line))|e(?:ssage|nu(?:Show|Hide)?|th(?:od)?|diaType)|a(?:nufacturer|tch|x(?:scroll|hscroll|imum|HPosition|Chars|VPosition)?)|b(?:substring|chr|ord|length))|b(?:ytes(?:Total|Loaded)|indFormat(?:Strings|Function)|o(?:ttom(?:Scroll)?|ld|rder(?:Color)?)|u(?:tton(?:Height|Width)|iltInItems|ffer(?:Time|Length)|llet)|e(?:foreApplyUpdates|gin(?:GradientFill|Fill))|lockIndent|a(?:ndwidth|ckground(?:Style|Color|Disabled)?)|roadcastMessage)|onHTTPStatus)\\\\b\"},{token:\"support.constant.actionscript.2\",regex:\"\\\\b(?:__proto__|__resolve|_accProps|_alpha|_changed|_currentframe|_droptarget|_flash|_focusrect|_framesloaded|_global|_height|_highquality|_level|_listeners|_lockroot|_name|_parent|_quality|_root|_rotation|_soundbuftime|_target|_totalframes|_url|_visible|_width|_x|_xmouse|_xscale|_y|_ymouse|_yscale)\\\\b\"},{token:\"keyword.control.actionscript.2\",regex:\"\\\\b(?:dynamic|extends|import|implements|interface|public|private|new|static|super|var|for|in|break|continue|while|do|return|if|else|case|switch)\\\\b\"},{token:\"storage.type.actionscript.2\",regex:\"\\\\b(?:Boolean|Number|String|Void)\\\\b\"},{token:\"constant.language.actionscript.2\",regex:\"\\\\b(?:null|undefined|true|false)\\\\b\"},{token:\"constant.numeric.actionscript.2\",regex:\"\\\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\\\.?[0-9]*|\\\\.[0-9]+)(?:(?:e|E)(?:\\\\+|-)?[0-9]+)?)(?:L|l|UL|ul|u|U|F|f)?\\\\b\"},{token:\"punctuation.definition.string.begin.actionscript.2\",regex:'\"',push:[{token:\"punctuation.definition.string.end.actionscript.2\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.actionscript.2\",regex:\"\\\\\\\\.\"},{defaultToken:\"string.quoted.double.actionscript.2\"}]},{token:\"punctuation.definition.string.begin.actionscript.2\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.actionscript.2\",regex:\"'\",next:\"pop\"},{token:\"constant.character.escape.actionscript.2\",regex:\"\\\\\\\\.\"},{defaultToken:\"string.quoted.single.actionscript.2\"}]},{token:\"support.constant.actionscript.2\",regex:\"\\\\b(?:BACKSPACE|CAPSLOCK|CONTROL|DELETEKEY|DOWN|END|ENTER|HOME|INSERT|LEFT|LN10|LN2|LOG10E|LOG2E|MAX_VALUE|MIN_VALUE|NEGATIVE_INFINITY|NaN|PGDN|PGUP|PI|POSITIVE_INFINITY|RIGHT|SPACE|SQRT1_2|SQRT2|UP)\\\\b\"},{token:\"punctuation.definition.comment.actionscript.2\",regex:\"/\\\\*\",push:[{token:\"punctuation.definition.comment.actionscript.2\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.actionscript.2\"}]},{token:\"punctuation.definition.comment.actionscript.2\",regex:\"//.*$\",push_:[{token:\"comment.line.double-slash.actionscript.2\",regex:\"$\",next:\"pop\"},{defaultToken:\"comment.line.double-slash.actionscript.2\"}]},{token:\"keyword.operator.actionscript.2\",regex:\"\\\\binstanceof\\\\b\"},{token:\"keyword.operator.symbolic.actionscript.2\",regex:\"[-!%&*+=/?:]\"},{token:[\"meta.preprocessor.actionscript.2\",\"punctuation.definition.preprocessor.actionscript.2\",\"meta.preprocessor.actionscript.2\"],regex:\"^([ \\\\t]*)(#)([a-zA-Z]+)\"},{token:[\"storage.type.function.actionscript.2\",\"meta.function.actionscript.2\",\"entity.name.function.actionscript.2\",\"meta.function.actionscript.2\",\"punctuation.definition.parameters.begin.actionscript.2\"],regex:\"\\\\b(function)(\\\\s+)([a-zA-Z_]\\\\w*)(\\\\s*)(\\\\()\",push:[{token:\"punctuation.definition.parameters.end.actionscript.2\",regex:\"\\\\)\",next:\"pop\"},{token:\"variable.parameter.function.actionscript.2\",regex:\"[^,)$]+\"},{defaultToken:\"meta.function.actionscript.2\"}]},{token:[\"storage.type.class.actionscript.2\",\"meta.class.actionscript.2\",\"entity.name.type.class.actionscript.2\",\"meta.class.actionscript.2\",\"storage.modifier.extends.actionscript.2\",\"meta.class.actionscript.2\",\"entity.other.inherited-class.actionscript.2\"],regex:\"\\\\b(class)(\\\\s+)([a-zA-Z_](?:\\\\w|\\\\.)*)(?:(\\\\s+)(extends)(\\\\s+)([a-zA-Z_](?:\\\\w|\\\\.)*))?\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"as\"],keyEquivalent:\"^~A\",name:\"ActionScript\",scopeName:\"source.actionscript.2\"},r.inherits(s,i),t.ActionScriptHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/actionscript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/actionscript_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./actionscript_highlight_rules\").ActionScriptHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/actionscript\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-ada.js",
    "content": "ace.define(\"ace/mode/ada_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"abort|else|new|return|abs|elsif|not|reverse|abstract|end|null|accept|entry|select|access|exception|of|separate|aliased|exit|or|some|all|others|subtype|and|for|out|synchronized|array|function|overriding|at|tagged|generic|package|task|begin|goto|pragma|terminate|body|private|then|if|procedure|type|case|in|protected|constant|interface|until||is|raise|use|declare|range|delay|limited|record|when|delta|loop|rem|while|digits|renames|with|do|mod|requeue|xor\",t=\"true|false|null\",n=\"count|min|max|avg|sum|rank|now|coalesce|main\",r=this.createKeywordMapper({\"support.function\":n,keyword:e,\"constant.language\":t},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\"--.*$\"},{token:\"string\",regex:'\".*?\"'},{token:\"string\",regex:\"'.*?'\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"text\",regex:\"\\\\s+\"}]}};r.inherits(s,i),t.AdaHighlightRules=s}),ace.define(\"ace/mode/ada\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ada_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./ada_highlight_rules\").AdaHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart=\"--\",this.$id=\"ace/mode/ada\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict/mode-apache_conf.js",
    "content": "ace.define(\"ace/mode/apache_conf_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:[\"punctuation.definition.comment.apacheconf\",\"comment.line.hash.ini\",\"comment.line.hash.ini\"],regex:\"^((?:\\\\s)*)(#)(.*$)\"},{token:[\"punctuation.definition.tag.apacheconf\",\"entity.tag.apacheconf\",\"text\",\"string.value.apacheconf\",\"punctuation.definition.tag.apacheconf\"],regex:\"(<)(Proxy|ProxyMatch|IfVersion|Directory|DirectoryMatch|Files|FilesMatch|IfDefine|IfModule|Limit|LimitExcept|Location|LocationMatch|VirtualHost)(?:(\\\\s)(.+?))?(>)\"},{token:[\"punctuation.definition.tag.apacheconf\",\"entity.tag.apacheconf\",\"punctuation.definition.tag.apacheconf\"],regex:\"(</)(Proxy|ProxyMatch|IfVersion|Directory|DirectoryMatch|Files|FilesMatch|IfDefine|IfModule|Limit|LimitExcept|Location|LocationMatch|VirtualHost)(>)\"},{token:[\"keyword.alias.apacheconf\",\"text\",\"string.regexp.apacheconf\",\"text\",\"string.replacement.apacheconf\",\"text\"],regex:\"(Rewrite(?:Rule|Cond))(\\\\s+)(.+?)(\\\\s+)(.+?)($|\\\\s)\"},{token:[\"keyword.alias.apacheconf\",\"text\",\"entity.status.apacheconf\",\"text\",\"string.regexp.apacheconf\",\"text\",\"string.path.apacheconf\",\"text\"],regex:\"(RedirectMatch)(?:(\\\\s+)(\\\\d\\\\d\\\\d|permanent|temp|seeother|gone))?(\\\\s+)(.+?)(\\\\s+)(?:(.+?)($|\\\\s))?\"},{token:[\"keyword.alias.apacheconf\",\"text\",\"entity.status.apacheconf\",\"text\",\"string.path.apacheconf\",\"text\",\"string.path.apacheconf\",\"text\"],regex:\"(Redirect)(?:(\\\\s+)(\\\\d\\\\d\\\\d|permanent|temp|seeother|gone))?(\\\\s+)(.+?)(\\\\s+)(?:(.+?)($|\\\\s))?\"},{token:[\"keyword.alias.apacheconf\",\"text\",\"string.regexp.apacheconf\",\"text\",\"string.path.apacheconf\",\"text\"],regex:\"(ScriptAliasMatch|AliasMatch)(\\\\s+)(.+?)(\\\\s+)(?:(.+?)(\\\\s))?\"},{token:[\"keyword.alias.apacheconf\",\"text\",\"string.path.apacheconf\",\"text\",\"string.path.apacheconf\",\"text\"],regex:\"(RedirectPermanent|RedirectTemp|ScriptAlias|Alias)(\\\\s+)(.+?)(\\\\s+)(?:(.+?)($|\\\\s))?\"},{token:\"keyword.core.apacheconf\",regex:\"\\\\b(?:AcceptPathInfo|AccessFileName|AddDefaultCharset|AddOutputFilterByType|AllowEncodedSlashes|AllowOverride|AuthName|AuthType|CGIMapExtension|ContentDigest|DefaultType|DocumentRoot|EnableMMAP|EnableSendfile|ErrorDocument|ErrorLog|FileETag|ForceType|HostnameLookups|IdentityCheck|Include|KeepAlive|KeepAliveTimeout|LimitInternalRecursion|LimitRequestBody|LimitRequestFields|LimitRequestFieldSize|LimitRequestLine|LimitXMLRequestBody|LogLevel|MaxKeepAliveRequests|NameVirtualHost|Options|Require|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScriptInterpreterSource|ServerAdmin|ServerAlias|ServerName|ServerPath|ServerRoot|ServerSignature|ServerTokens|SetHandler|SetInputFilter|SetOutputFilter|TimeOut|TraceEnable|UseCanonicalName)\\\\b\"},{token:\"keyword.mpm.apacheconf\",regex:\"\\\\b(?:AcceptMutex|AssignUserID|BS2000Account|ChildPerUserID|CoreDumpDirectory|EnableExceptionHook|Group|Listen|ListenBacklog|LockFile|MaxClients|MaxMemFree|MaxRequestsPerChild|MaxRequestsPerThread|MaxSpareServers|MaxSpareThreads|MaxThreads|MaxThreadsPerChild|MinSpareServers|MinSpareThreads|NumServers|PidFile|ReceiveBufferSize|ScoreBoardFile|SendBufferSize|ServerLimit|StartServers|StartThreads|ThreadLimit|ThreadsPerChild|ThreadStackSize|User|Win32DisableAcceptEx)\\\\b\"},{token:\"keyword.access.apacheconf\",regex:\"\\\\b(?:Allow|Deny|Order)\\\\b\"},{token:\"keyword.actions.apacheconf\",regex:\"\\\\b(?:Action|Script)\\\\b\"},{token:\"keyword.alias.apacheconf\",regex:\"\\\\b(?:Alias|AliasMatch|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ScriptAlias|ScriptAliasMatch)\\\\b\"},{token:\"keyword.auth.apacheconf\",regex:\"\\\\b(?:AuthAuthoritative|AuthGroupFile|AuthUserFile)\\\\b\"},{token:\"keyword.auth_anon.apacheconf\",regex:\"\\\\b(?:Anonymous|Anonymous_Authoritative|Anonymous_LogEmail|Anonymous_MustGiveEmail|Anonymous_NoUserID|Anonymous_VerifyEmail)\\\\b\"},{token:\"keyword.auth_dbm.apacheconf\",regex:\"\\\\b(?:AuthDBMAuthoritative|AuthDBMGroupFile|AuthDBMType|AuthDBMUserFile)\\\\b\"},{token:\"keyword.auth_digest.apacheconf\",regex:\"\\\\b(?:AuthDigestAlgorithm|AuthDigestDomain|AuthDigestFile|AuthDigestGroupFile|AuthDigestNcCheck|AuthDigestNonceFormat|AuthDigestNonceLifetime|AuthDigestQop|AuthDigestShmemSize)\\\\b\"},{token:\"keyword.auth_ldap.apacheconf\",regex:\"\\\\b(?:AuthLDAPAuthoritative|AuthLDAPBindDN|AuthLDAPBindPassword|AuthLDAPCharsetConfig|AuthLDAPCompareDNOnServer|AuthLDAPDereferenceAliases|AuthLDAPEnabled|AuthLDAPFrontPageHack|AuthLDAPGroupAttribute|AuthLDAPGroupAttributeIsDN|AuthLDAPRemoteUserIsDN|AuthLDAPUrl)\\\\b\"},{token:\"keyword.autoindex.apacheconf\",regex:\"\\\\b(?:AddAlt|AddAltByEncoding|AddAltByType|AddDescription|AddIcon|AddIconByEncoding|AddIconByType|DefaultIcon|HeaderName|IndexIgnore|IndexOptions|IndexOrderDefault|ReadmeName)\\\\b\"},{token:\"keyword.cache.apacheconf\",regex:\"\\\\b(?:CacheDefaultExpire|CacheDisable|CacheEnable|CacheForceCompletion|CacheIgnoreCacheControl|CacheIgnoreHeaders|CacheIgnoreNoLastMod|CacheLastModifiedFactor|CacheMaxExpire)\\\\b\"},{token:\"keyword.cern_meta.apacheconf\",regex:\"\\\\b(?:MetaDir|MetaFiles|MetaSuffix)\\\\b\"},{token:\"keyword.cgi.apacheconf\",regex:\"\\\\b(?:ScriptLog|ScriptLogBuffer|ScriptLogLength)\\\\b\"},{token:\"keyword.cgid.apacheconf\",regex:\"\\\\b(?:ScriptLog|ScriptLogBuffer|ScriptLogLength|ScriptSock)\\\\b\"},{token:\"keyword.charset_lite.apacheconf\",regex:\"\\\\b(?:CharsetDefault|CharsetOptions|CharsetSourceEnc)\\\\b\"},{token:\"keyword.dav.apacheconf\",regex:\"\\\\b(?:Dav|DavDepthInfinity|DavMinTimeout|DavLockDB)\\\\b\"},{token:\"keyword.deflate.apacheconf\",regex:\"\\\\b(?:DeflateBufferSize|DeflateCompressionLevel|DeflateFilterNote|DeflateMemLevel|DeflateWindowSize)\\\\b\"},{token:\"keyword.dir.apacheconf\",regex:\"\\\\b(?:DirectoryIndex|DirectorySlash)\\\\b\"},{token:\"keyword.disk_cache.apacheconf\",regex:\"\\\\b(?:CacheDirLength|CacheDirLevels|CacheExpiryCheck|CacheGcClean|CacheGcDaily|CacheGcInterval|CacheGcMemUsage|CacheGcUnused|CacheMaxFileSize|CacheMinFileSize|CacheRoot|CacheSize|CacheTimeMargin)\\\\b\"},{token:\"keyword.dumpio.apacheconf\",regex:\"\\\\b(?:DumpIOInput|DumpIOOutput)\\\\b\"},{token:\"keyword.env.apacheconf\",regex:\"\\\\b(?:PassEnv|SetEnv|UnsetEnv)\\\\b\"},{token:\"keyword.expires.apacheconf\",regex:\"\\\\b(?:ExpiresActive|ExpiresByType|ExpiresDefault)\\\\b\"},{token:\"keyword.ext_filter.apacheconf\",regex:\"\\\\b(?:ExtFilterDefine|ExtFilterOptions)\\\\b\"},{token:\"keyword.file_cache.apacheconf\",regex:\"\\\\b(?:CacheFile|MMapFile)\\\\b\"},{token:\"keyword.headers.apacheconf\",regex:\"\\\\b(?:Header|RequestHeader)\\\\b\"},{token:\"keyword.imap.apacheconf\",regex:\"\\\\b(?:ImapBase|ImapDefault|ImapMenu)\\\\b\"},{token:\"keyword.include.apacheconf\",regex:\"\\\\b(?:SSIEndTag|SSIErrorMsg|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|XBitHack)\\\\b\"},{token:\"keyword.isapi.apacheconf\",regex:\"\\\\b(?:ISAPIAppendLogToErrors|ISAPIAppendLogToQuery|ISAPICacheFile|ISAPIFakeAsync|ISAPILogNotSupported|ISAPIReadAheadBuffer)\\\\b\"},{token:\"keyword.ldap.apacheconf\",regex:\"\\\\b(?:LDAPCacheEntries|LDAPCacheTTL|LDAPConnectionTimeout|LDAPOpCacheEntries|LDAPOpCacheTTL|LDAPSharedCacheFile|LDAPSharedCacheSize|LDAPTrustedCA|LDAPTrustedCAType)\\\\b\"},{token:\"keyword.log.apacheconf\",regex:\"\\\\b(?:BufferedLogs|CookieLog|CustomLog|LogFormat|TransferLog|ForensicLog)\\\\b\"},{token:\"keyword.mem_cache.apacheconf\",regex:\"\\\\b(?:MCacheMaxObjectCount|MCacheMaxObjectSize|MCacheMaxStreamingBuffer|MCacheMinObjectSize|MCacheRemovalAlgorithm|MCacheSize)\\\\b\"},{token:\"keyword.mime.apacheconf\",regex:\"\\\\b(?:AddCharset|AddEncoding|AddHandler|AddInputFilter|AddLanguage|AddOutputFilter|AddType|DefaultLanguage|ModMimeUsePathInfo|MultiviewsMatch|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|TypesConfig)\\\\b\"},{token:\"keyword.misc.apacheconf\",regex:\"\\\\b(?:ProtocolEcho|Example|AddModuleInfo|MimeMagicFile|CheckSpelling|ExtendedStatus|SuexecUserGroup|UserDir)\\\\b\"},{token:\"keyword.negotiation.apacheconf\",regex:\"\\\\b(?:CacheNegotiatedDocs|ForceLanguagePriority|LanguagePriority)\\\\b\"},{token:\"keyword.nw_ssl.apacheconf\",regex:\"\\\\b(?:NWSSLTrustedCerts|NWSSLUpgradeable|SecureListen)\\\\b\"},{token:\"keyword.proxy.apacheconf\",regex:\"\\\\b(?:AllowCONNECT|NoProxy|ProxyBadHeader|ProxyBlock|ProxyDomain|ProxyErrorOverride|ProxyFtpDirCharset|ProxyIOBufferSize|ProxyMaxForwards|ProxyPass|ProxyPassReverse|ProxyPreserveHost|ProxyReceiveBufferSize|ProxyRemote|ProxyRemoteMatch|ProxyRequests|ProxyTimeout|ProxyVia)\\\\b\"},{token:\"keyword.rewrite.apacheconf\",regex:\"\\\\b(?:RewriteBase|RewriteCond|RewriteEngine|RewriteLock|RewriteLog|RewriteLogLevel|RewriteMap|RewriteOptions|RewriteRule)\\\\b\"},{token:\"keyword.setenvif.apacheconf\",regex:\"\\\\b(?:BrowserMatch|BrowserMatchNoCase|SetEnvIf|SetEnvIfNoCase)\\\\b\"},{token:\"keyword.so.apacheconf\",regex:\"\\\\b(?:LoadFile|LoadModule)\\\\b\"},{token:\"keyword.ssl.apacheconf\",regex:\"\\\\b(?:SSLCACertificateFile|SSLCACertificatePath|SSLCARevocationFile|SSLCARevocationPath|SSLCertificateChainFile|SSLCertificateFile|SSLCertificateKeyFile|SSLCipherSuite|SSLEngine|SSLMutex|SSLOptions|SSLPassPhraseDialog|SSLProtocol|SSLProxyCACertificateFile|SSLProxyCACertificatePath|SSLProxyCARevocationFile|SSLProxyCARevocationPath|SSLProxyCipherSuite|SSLProxyEngine|SSLProxyMachineCertificateFile|SSLProxyMachineCertificatePath|SSLProxyProtocol|SSLProxyVerify|SSLProxyVerifyDepth|SSLRandomSeed|SSLRequire|SSLRequireSSL|SSLSessionCache|SSLSessionCacheTimeout|SSLUserName|SSLVerifyClient|SSLVerifyDepth)\\\\b\"},{token:\"keyword.usertrack.apacheconf\",regex:\"\\\\b(?:CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking)\\\\b\"},{token:\"keyword.vhost_alias.apacheconf\",regex:\"\\\\b(?:VirtualDocumentRoot|VirtualDocumentRootIP|VirtualScriptAlias|VirtualScriptAliasIP)\\\\b\"},{token:[\"keyword.php.apacheconf\",\"text\",\"entity.property.apacheconf\",\"text\",\"string.value.apacheconf\",\"text\"],regex:\"\\\\b(php_value|php_flag)\\\\b(?:(\\\\s+)(.+?)(?:(\\\\s+)(.+?))?)?(\\\\s)\"},{token:[\"punctuation.variable.apacheconf\",\"variable.env.apacheconf\",\"variable.misc.apacheconf\",\"punctuation.variable.apacheconf\"],regex:\"(%\\\\{)(?:(HTTP_USER_AGENT|HTTP_REFERER|HTTP_COOKIE|HTTP_FORWARDED|HTTP_HOST|HTTP_PROXY_CONNECTION|HTTP_ACCEPT|REMOTE_ADDR|REMOTE_HOST|REMOTE_PORT|REMOTE_USER|REMOTE_IDENT|REQUEST_METHOD|SCRIPT_FILENAME|PATH_INFO|QUERY_STRING|AUTH_TYPE|DOCUMENT_ROOT|SERVER_ADMIN|SERVER_NAME|SERVER_ADDR|SERVER_PORT|SERVER_PROTOCOL|SERVER_SOFTWARE|TIME_YEAR|TIME_MON|TIME_DAY|TIME_HOUR|TIME_MIN|TIME_SEC|TIME_WDAY|TIME|API_VERSION|THE_REQUEST|REQUEST_URI|REQUEST_FILENAME|IS_SUBREQ|HTTPS)|(.*?))(\\\\})\"},{token:[\"entity.mime-type.apacheconf\",\"text\"],regex:\"\\\\b((?:text|image|application|video|audio)/.+?)(\\\\s)\"},{token:\"entity.helper.apacheconf\",regex:\"\\\\b(?:from|unset|set|on|off)\\\\b\",caseInsensitive:!0},{token:\"constant.integer.apacheconf\",regex:\"\\\\b\\\\d+\\\\b\"},{token:[\"text\",\"punctuation.definition.flag.apacheconf\",\"string.flag.apacheconf\",\"punctuation.definition.flag.apacheconf\",\"text\"],regex:\"(\\\\s)(\\\\[)(.*?)(\\\\])(\\\\s)\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"conf\",\"CONF\",\"htaccess\",\"HTACCESS\",\"htgroups\",\"HTGROUPS\",\"htpasswd\",\"HTPASSWD\",\".htaccess\",\".HTACCESS\",\".htgroups\",\".HTGROUPS\",\".htpasswd\",\".HTPASSWD\"],name:\"Apache Conf\",scopeName:\"source.apacheconf\"},r.inherits(s,i),t.ApacheConfHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/apache_conf\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/apache_conf_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./apache_conf_highlight_rules\").ApacheConfHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"#\",this.$id=\"ace/mode/apache_conf\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-applescript.js",
    "content": "ace.define(\"ace/mode/applescript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"about|above|after|against|and|around|as|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|contain|contains|continue|copy|div|does|eighth|else|end|equal|equals|error|every|exit|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|into|is|it|its|last|local|me|middle|mod|my|ninth|not|of|on|onto|or|over|prop|property|put|ref|reference|repeat|returning|script|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|try|until|where|while|whose|with|without\",t=\"AppleScript|false|linefeed|return|pi|quote|result|space|tab|true\",n=\"activate|beep|count|delay|launch|log|offset|read|round|run|say|summarize|write\",r=\"alias|application|boolean|class|constant|date|file|integer|list|number|real|record|string|text|character|characters|contents|day|frontmost|id|item|length|month|name|paragraph|paragraphs|rest|reverse|running|time|version|weekday|word|words|year\",i=this.createKeywordMapper({\"support.function\":n,\"constant.language\":t,\"support.type\":r,keyword:e},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"--.*$\"},{token:\"comment\",regex:\"\\\\(\\\\*\",next:\"comment\"},{token:\"string\",regex:'\".*?\"'},{token:\"support.type\",regex:\"\\\\b(POSIX file|POSIX path|(date|time) string|quoted form)\\\\b\"},{token:\"support.function\",regex:\"\\\\b(clipboard info|the clipboard|info for|list (disks|folder)|mount volume|path to|(close|open for) access|(get|set) eof|current date|do shell script|get volume settings|random number|set volume|system attribute|system info|time to GMT|(load|run|store) script|scripting components|ASCII (character|number)|localized string|choose (application|color|file|file name|folder|from list|remote application|URL)|display (alert|dialog))\\\\b|^\\\\s*return\\\\b\"},{token:\"constant.language\",regex:\"\\\\b(text item delimiters|current application|missing value)\\\\b\"},{token:\"keyword\",regex:\"\\\\b(apart from|aside from|instead of|out of|greater than|isn't|(doesn't|does not) (equal|come before|come after|contain)|(greater|less) than( or equal)?|(starts?|ends|begins?) with|contained by|comes (before|after)|a (ref|reference))\\\\b\"},{token:i,regex:\"[a-zA-Z][a-zA-Z0-9_]*\\\\b\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\)\",next:\"start\"},{defaultToken:\"comment\"}]},this.normalizeRules()};r.inherits(s,i),t.AppleScriptHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/applescript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/applescript_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./applescript_highlight_rules\").AppleScriptHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.blockComment={start:\"(*\",end:\"*)\"},this.$id=\"ace/mode/applescript\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-asciidoc.js",
    "content": "ace.define(\"ace/mode/asciidoc_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){function t(e){var t=/\\w/.test(e)?\"\\\\b\":\"(?:\\\\B|^)\";return t+e+\"[^\"+e+\"].*?\"+e+\"(?![\\\\w*])\"}var e=\"[a-zA-Z\\u00a1-\\uffff]+\\\\b\";this.$rules={start:[{token:\"empty\",regex:/$/},{token:\"literal\",regex:/^\\.{4,}\\s*$/,next:\"listingBlock\"},{token:\"literal\",regex:/^-{4,}\\s*$/,next:\"literalBlock\"},{token:\"string\",regex:/^\\+{4,}\\s*$/,next:\"passthroughBlock\"},{token:\"keyword\",regex:/^={4,}\\s*$/},{token:\"text\",regex:/^\\s*$/},{token:\"empty\",regex:\"\",next:\"dissallowDelimitedBlock\"}],dissallowDelimitedBlock:[{include:\"paragraphEnd\"},{token:\"comment\",regex:\"^//.+$\"},{token:\"keyword\",regex:\"^(?:NOTE|TIP|IMPORTANT|WARNING|CAUTION):\"},{include:\"listStart\"},{token:\"literal\",regex:/^\\s+.+$/,next:\"indentedBlock\"},{token:\"empty\",regex:\"\",next:\"text\"}],paragraphEnd:[{token:\"doc.comment\",regex:/^\\/{4,}\\s*$/,next:\"commentBlock\"},{token:\"tableBlock\",regex:/^\\s*[|!]=+\\s*$/,next:\"tableBlock\"},{token:\"keyword\",regex:/^(?:--|''')\\s*$/,next:\"start\"},{token:\"option\",regex:/^\\[.*\\]\\s*$/,next:\"start\"},{token:\"pageBreak\",regex:/^>{3,}$/,next:\"start\"},{token:\"literal\",regex:/^\\.{4,}\\s*$/,next:\"listingBlock\"},{token:\"titleUnderline\",regex:/^(?:={2,}|-{2,}|~{2,}|\\^{2,}|\\+{2,})\\s*$/,next:\"start\"},{token:\"singleLineTitle\",regex:/^={1,5}\\s+\\S.*$/,next:\"start\"},{token:\"otherBlock\",regex:/^(?:\\*{2,}|_{2,})\\s*$/,next:\"start\"},{token:\"optionalTitle\",regex:/^\\.[^.\\s].+$/,next:\"start\"}],listStart:[{token:\"keyword\",regex:/^\\s*(?:\\d+\\.|[a-zA-Z]\\.|[ixvmIXVM]+\\)|\\*{1,5}|-|\\.{1,5})\\s/,next:\"listText\"},{token:\"meta.tag\",regex:/^.+(?::{2,4}|;;)(?: |$)/,next:\"listText\"},{token:\"support.function.list.callout\",regex:/^(?:<\\d+>|\\d+>|>) /,next:\"text\"},{token:\"keyword\",regex:/^\\+\\s*$/,next:\"start\"}],text:[{token:[\"link\",\"variable.language\"],regex:/((?:https?:\\/\\/|ftp:\\/\\/|file:\\/\\/|mailto:|callto:)[^\\s\\[]+)(\\[.*?\\])/},{token:\"link\",regex:/(?:https?:\\/\\/|ftp:\\/\\/|file:\\/\\/|mailto:|callto:)[^\\s\\[]+/},{token:\"link\",regex:/\\b[\\w\\.\\/\\-]+@[\\w\\.\\/\\-]+\\b/},{include:\"macros\"},{include:\"paragraphEnd\"},{token:\"literal\",regex:/\\+{3,}/,next:\"smallPassthrough\"},{token:\"escape\",regex:/\\((?:C|TM|R)\\)|\\.{3}|->|<-|=>|<=|&#(?:\\d+|x[a-fA-F\\d]+);|(?: |^)--(?=\\s+\\S)/},{token:\"escape\",regex:/\\\\[_*'`+#]|\\\\{2}[_*'`+#]{2}/},{token:\"keyword\",regex:/\\s\\+$/},{token:\"text\",regex:e},{token:[\"keyword\",\"string\",\"keyword\"],regex:/(<<[\\w\\d\\-$]+,)(.*?)(>>|$)/},{token:\"keyword\",regex:/<<[\\w\\d\\-$]+,?|>>/},{token:\"constant.character\",regex:/\\({2,3}.*?\\){2,3}/},{token:\"keyword\",regex:/\\[\\[.+?\\]\\]/},{token:\"support\",regex:/^\\[{3}[\\w\\d =\\-]+\\]{3}/},{include:\"quotes\"},{token:\"empty\",regex:/^\\s*$/,next:\"start\"}],listText:[{include:\"listStart\"},{include:\"text\"}],indentedBlock:[{token:\"literal\",regex:/^[\\s\\w].+$/,next:\"indentedBlock\"},{token:\"literal\",regex:\"\",next:\"start\"}],listingBlock:[{token:\"literal\",regex:/^\\.{4,}\\s*$/,next:\"dissallowDelimitedBlock\"},{token:\"constant.numeric\",regex:\"<\\\\d+>\"},{token:\"literal\",regex:\"[^<]+\"},{token:\"literal\",regex:\"<\"}],literalBlock:[{token:\"literal\",regex:/^-{4,}\\s*$/,next:\"dissallowDelimitedBlock\"},{token:\"constant.numeric\",regex:\"<\\\\d+>\"},{token:\"literal\",regex:\"[^<]+\"},{token:\"literal\",regex:\"<\"}],passthroughBlock:[{token:\"literal\",regex:/^\\+{4,}\\s*$/,next:\"dissallowDelimitedBlock\"},{token:\"literal\",regex:e+\"|\\\\d+\"},{include:\"macros\"},{token:\"literal\",regex:\".\"}],smallPassthrough:[{token:\"literal\",regex:/[+]{3,}/,next:\"dissallowDelimitedBlock\"},{token:\"literal\",regex:/^\\s*$/,next:\"dissallowDelimitedBlock\"},{token:\"literal\",regex:e+\"|\\\\d+\"},{include:\"macros\"}],commentBlock:[{token:\"doc.comment\",regex:/^\\/{4,}\\s*$/,next:\"dissallowDelimitedBlock\"},{token:\"doc.comment\",regex:\"^.*$\"}],tableBlock:[{token:\"tableBlock\",regex:/^\\s*\\|={3,}\\s*$/,next:\"dissallowDelimitedBlock\"},{token:\"tableBlock\",regex:/^\\s*!={3,}\\s*$/,next:\"innerTableBlock\"},{token:\"tableBlock\",regex:/\\|/},{include:\"text\",noEscape:!0}],innerTableBlock:[{token:\"tableBlock\",regex:/^\\s*!={3,}\\s*$/,next:\"tableBlock\"},{token:\"tableBlock\",regex:/^\\s*|={3,}\\s*$/,next:\"dissallowDelimitedBlock\"},{token:\"tableBlock\",regex:/!/}],macros:[{token:\"macro\",regex:/{[\\w\\-$]+}/},{token:[\"text\",\"string\",\"text\",\"constant.character\",\"text\"],regex:/({)([\\w\\-$]+)(:)?(.+)?(})/},{token:[\"text\",\"markup.list.macro\",\"keyword\",\"string\"],regex:/(\\w+)(footnote(?:ref)?::?)([^\\s\\[]+)?(\\[.*?\\])?/},{token:[\"markup.list.macro\",\"keyword\",\"string\"],regex:/([a-zA-Z\\-][\\w\\.\\/\\-]*::?)([^\\s\\[]+)(\\[.*?\\])?/},{token:[\"markup.list.macro\",\"keyword\"],regex:/([a-zA-Z\\-][\\w\\.\\/\\-]+::?)(\\[.*?\\])/},{token:\"keyword\",regex:/^:.+?:(?= |$)/}],quotes:[{token:\"string.italic\",regex:/__[^_\\s].*?__/},{token:\"string.italic\",regex:t(\"_\")},{token:\"keyword.bold\",regex:/\\*\\*[^*\\s].*?\\*\\*/},{token:\"keyword.bold\",regex:t(\"\\\\*\")},{token:\"literal\",regex:t(\"\\\\+\")},{token:\"literal\",regex:/\\+\\+[^+\\s].*?\\+\\+/},{token:\"literal\",regex:/\\$\\$.+?\\$\\$/},{token:\"literal\",regex:t(\"`\")},{token:\"keyword\",regex:t(\"^\")},{token:\"keyword\",regex:t(\"~\")},{token:\"keyword\",regex:/##?/},{token:\"keyword\",regex:/(?:\\B|^)``|\\b''/}]};var n={macro:\"constant.character\",tableBlock:\"doc.comment\",titleUnderline:\"markup.heading\",singleLineTitle:\"markup.heading\",pageBreak:\"string\",option:\"string.regexp\",otherBlock:\"markup.list\",literal:\"support.function\",optionalTitle:\"constant.numeric\",escape:\"constant.language.escape\",link:\"markup.underline.list\"};for(var r in this.$rules){var i=this.$rules[r];for(var s=i.length;s--;){var o=i[s];if(o.include||typeof o==\"string\"){var u=[s,1].concat(this.$rules[o.include||o]);o.noEscape&&(u=u.filter(function(e){return!e.next})),i.splice.apply(i,u)}else o.token in n&&(o.token=n[o.token])}}};r.inherits(s,i),t.AsciidocHighlightRules=s}),ace.define(\"ace/mode/folding/asciidoc\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.foldingStartMarker=/^(?:\\|={10,}|[\\.\\/=\\-~^+]{4,}\\s*$|={1,5} )/,this.singleLineHeadingRe=/^={1,5}(?=\\s+\\S)/,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?r[0]==\"=\"?this.singleLineHeadingRe.test(r)?\"start\":e.getLine(n-1).length!=e.getLine(n).length?\"\":\"start\":e.bgTokenizer.getState(n)==\"dissallowDelimitedBlock\"?\"end\":\"start\":\"\"},this.getFoldWidgetRange=function(e,t,n){function l(t){return f=e.getTokens(t)[0],f&&f.type}function d(){var t=f.value.match(p);if(t)return t[0].length;var r=c.indexOf(f.value[0])+1;return r==1&&e.getLine(n-1).length!=e.getLine(n).length?Infinity:r}var r=e.getLine(n),i=r.length,o=e.getLength(),u=n,a=n;if(!r.match(this.foldingStartMarker))return;var f,c=[\"=\",\"-\",\"~\",\"^\",\"+\"],h=\"markup.heading\",p=this.singleLineHeadingRe;if(l(n)==h){var v=d();while(++n<o){if(l(n)!=h)continue;var m=d();if(m<=v)break}var g=f&&f.value.match(this.singleLineHeadingRe);a=g?n-1:n-2;if(a>u)while(a>u&&(!l(a)||f.value[0]==\"[\"))a--;if(a>u){var y=e.getLine(a).length;return new s(u,i,a,y)}}else{var b=e.bgTokenizer.getState(n);if(b==\"dissallowDelimitedBlock\"){while(n-->0)if(e.bgTokenizer.getState(n).lastIndexOf(\"Block\")==-1)break;a=n+1;if(a<u){var y=e.getLine(n).length;return new s(a,5,u,i-5)}}else{while(++n<o)if(e.bgTokenizer.getState(n)==\"dissallowDelimitedBlock\")break;a=n;if(a>u){var y=e.getLine(n).length;return new s(u,5,a,y-5)}}}}}.call(o.prototype)}),ace.define(\"ace/mode/asciidoc\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/asciidoc_highlight_rules\",\"ace/mode/folding/asciidoc\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./asciidoc_highlight_rules\").AsciidocHighlightRules,o=e(\"./folding/asciidoc\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.type=\"text\",this.getNextLineIndent=function(e,t,n){if(e==\"listblock\"){var r=/^((?:.+)?)([-+*][ ]+)/.exec(t);return r?(new Array(r[1].length+1)).join(\" \")+r[2]:\"\"}return this.$getIndent(t)},this.$id=\"ace/mode/asciidoc\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-assembly_x86.js",
    "content": "ace.define(\"ace/mode/assembly_x86_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"keyword.control.assembly\",regex:\"\\\\b(?:aaa|aad|aam|aas|adc|add|addpd|addps|addsd|addss|addsubpd|addsubps|aesdec|aesdeclast|aesenc|aesenclast|aesimc|aeskeygenassist|and|andpd|andps|andnpd|andnps|arpl|blendpd|blendps|blendvpd|blendvps|bound|bsf|bsr|bswap|bt|btc|btr|bts|cbw|cwde|cdqe|clc|cld|cflush|clts|cmc|cmov(?:n?e|ge?|ae?|le?|be?|n?o|n?z)|cmp|cmppd|cmpps|cmps|cnpsb|cmpsw|cmpsd|cmpsq|cmpss|cmpxchg|cmpxchg8b|cmpxchg16b|comisd|comiss|cpuid|crc32|cvtdq2pd|cvtdq2ps|cvtpd2dq|cvtpd2pi|cvtpd2ps|cvtpi2pd|cvtpi2ps|cvtps2dq|cvtps2pd|cvtps2pi|cvtsd2si|cvtsd2ss|cvts2sd|cvtsi2ss|cvtss2sd|cvtss2si|cvttpd2dq|cvtpd2pi|cvttps2dq|cvttps2pi|cvttps2dq|cvttps2pi|cvttsd2si|cvttss2si|cwd|cdq|cqo|daa|das|dec|div|divpd|divps|divsd|divss|dppd|dpps|emms|enter|extractps|f2xm1|fabs|fadd|faddp|fiadd|fbld|fbstp|fchs|fclex|fnclex|fcmov(?:n?e|ge?|ae?|le?|be?|n?o|n?z)|fcom|fcmop|fcompp|fcomi|fcomip|fucomi|fucomip|fcos|fdecstp|fdiv|fdivp|fidiv|fdivr|fdivrp|fidivr|ffree|ficom|ficomp|fild|fincstp|finit|fnint|fist|fistp|fisttp|fld|fld1|fldl2t|fldl2e|fldpi|fldlg2|fldln2|fldz|fldcw|fldenv|fmul|fmulp|fimul|fnop|fpatan|fprem|fprem1|fptan|frndint|frstor|fsave|fnsave|fscale|fsin|fsincos|fsqrt|fst|fstp|fstcw|fnstcw|fstenv|fnstenv|fsts|fnstsw|fsub|fsubp|fisub|fsubr|fsubrp|fisubr|ftst|fucom|fucomp|fucompp|fxam|fxch|fxrstor|fxsave|fxtract|fyl2x|fyl2xp1|haddpd|haddps|husbpd|hsubps|idiv|imul|in|inc|ins|insb|insw|insd|insertps|int|into|invd|invplg|invpcid|iret|iretd|iretq|lahf|lar|lddqu|ldmxcsr|lds|les|lfs|lgs|lss|lea|leave|lfence|lgdt|lidt|llgdt|lmsw|lock|lods|lodsb|lodsw|lodsd|lodsq|lsl|ltr|maskmovdqu|maskmovq|maxpd|maxps|maxsd|maxss|mfence|minpd|minps|minsd|minss|monitor|mov|movapd|movaps|movbe|movd|movq|movddup|movdqa|movdqu|movq2q|movhlps|movhpd|movhps|movlhps|movlpd|movlps|movmskpd|movmskps|movntdqa|movntdq|movnti|movntpd|movntps|movntq|movq|movq2dq|movs|movsb|movsw|movsd|movsq|movsd|movshdup|movsldup|movss|movsx|movsxd|movupd|movups|movzx|mpsadbw|mul|mulpd|mulps|mulsd|mulss|mwait|neg|not|or|orpd|orps|out|outs|outsb|outsw|outsd|pabsb|pabsw|pabsd|packsswb|packssdw|packusdw|packuswbpaddb|paddw|paddd|paddq|paddsb|paddsw|paddusb|paddusw|palignr|pand|pandn|pause|pavgb|pavgw|pblendvb|pblendw|pclmulqdq|pcmpeqb|pcmpeqw|pcmpeqd|pcmpeqq|pcmpestri|pcmpestrm|pcmptb|pcmptgw|pcmpgtd|pcmpgtq|pcmpistri|pcmpisrm|pextrb|pextrd|pextrq|pextrw|phaddw|phaddd|phaddsw|phinposuw|phsubw|phsubd|phsubsw|pinsrb|pinsrd|pinsrq|pinsrw|pmaddubsw|pmadddwd|pmaxsb|pmaxsd|pmaxsw|pmaxsw|pmaxub|pmaxud|pmaxuw|pminsb|pminsd|pminsw|pminub|pminud|pminuw|pmovmskb|pmovsx|pmovzx|pmuldq|pmulhrsw|pmulhuw|pmulhw|pmulld|pmullw|pmuludw|pop|popa|popad|popcnt|popf|popfd|popfq|por|prefetch|psadbw|pshufb|pshufd|pshufhw|pshuflw|pshufw|psignb|psignw|psignd|pslldq|psllw|pslld|psllq|psraw|psrad|psrldq|psrlw|psrld|psrlq|psubb|psubw|psubd|psubq|psubsb|psubsw|psubusb|psubusw|test|ptest|punpckhbw|punpckhwd|punpckhdq|punpckhddq|punpcklbw|punpcklwd|punpckldq|punpckldqd|push|pusha|pushad|pushf|pushfd|pxor|prcl|rcr|rol|ror|rcpps|rcpss|rdfsbase|rdgsbase|rdmsr|rdpmc|rdrand|rdtsc|rdtscp|rep|repe|repz|repne|repnz|roundpd|roundps|roundsd|roundss|rsm|rsqrps|rsqrtss|sahf|sal|sar|shl|shr|sbb|scas|scasb|scasw|scasd|set(?:n?e|ge?|ae?|le?|be?|n?o|n?z)|sfence|sgdt|shld|shrd|shufpd|shufps|sidt|sldt|smsw|sqrtpd|sqrtps|sqrtsd|sqrtss|stc|std|stmxcsr|stos|stosb|stosw|stosd|stosq|str|sub|subpd|subps|subsd|subss|swapgs|syscall|sysenter|sysexit|sysret|teset|ucomisd|ucomiss|ud2|unpckhpd|unpckhps|unpcklpd|unpcklps|vbroadcast|vcvtph2ps|vcvtp2sph|verr|verw|vextractf128|vinsertf128|vmaskmov|vpermilpd|vpermilps|vperm2f128|vtestpd|vtestps|vzeroall|vzeroupper|wait|fwait|wbinvd|wrfsbase|wrgsbase|wrmsr|xadd|xchg|xgetbv|xlat|xlatb|xor|xorpd|xorps|xrstor|xsave|xsaveopt|xsetbv|lzcnt|extrq|insertq|movntsd|movntss|vfmaddpd|vfmaddps|vfmaddsd|vfmaddss|vfmaddsubbpd|vfmaddsubps|vfmsubaddpd|vfmsubaddps|vfmsubpd|vfmsubps|vfmsubsd|vfnmaddpd|vfnmaddps|vfnmaddsd|vfnmaddss|vfnmsubpd|vfnmusbps|vfnmusbsd|vfnmusbss|cvt|xor|cli|sti|hlt|nop|lock|wait|enter|leave|ret|loop(?:n?e|n?z)?|call|j(?:mp|n?e|ge?|ae?|le?|be?|n?o|n?z))\\\\b\",caseInsensitive:!0},{token:\"variable.parameter.register.assembly\",regex:\"\\\\b(?:CS|DS|ES|FS|GS|SS|RAX|EAX|RBX|EBX|RCX|ECX|RDX|EDX|RCX|RIP|EIP|IP|RSP|ESP|SP|RSI|ESI|SI|RDI|EDI|DI|RFLAGS|EFLAGS|FLAGS|R8-15|(?:Y|X)MM(?:[0-9]|10|11|12|13|14|15)|(?:A|B|C|D)(?:X|H|L)|CR(?:[0-4]|DR(?:[0-7]|TR6|TR7|EFER)))\\\\b\",caseInsensitive:!0},{token:\"constant.character.decimal.assembly\",regex:\"\\\\b[0-9]+\\\\b\"},{token:\"constant.character.hexadecimal.assembly\",regex:\"\\\\b0x[A-F0-9]+\\\\b\",caseInsensitive:!0},{token:\"constant.character.hexadecimal.assembly\",regex:\"\\\\b[A-F0-9]+h\\\\b\",caseInsensitive:!0},{token:\"string.assembly\",regex:/'([^\\\\']|\\\\.)*'/},{token:\"string.assembly\",regex:/\"([^\\\\\"]|\\\\.)*\"/},{token:\"support.function.directive.assembly\",regex:\"^\\\\[\",push:[{token:\"support.function.directive.assembly\",regex:\"\\\\]$\",next:\"pop\"},{defaultToken:\"support.function.directive.assembly\"}]},{token:[\"support.function.directive.assembly\",\"support.function.directive.assembly\",\"entity.name.function.assembly\"],regex:\"(^struc)( )([_a-zA-Z][_a-zA-Z0-9]*)\"},{token:\"support.function.directive.assembly\",regex:\"^endstruc\\\\b\"},{token:[\"support.function.directive.assembly\",\"entity.name.function.assembly\",\"support.function.directive.assembly\",\"constant.character.assembly\"],regex:\"^(%macro )([_a-zA-Z][_a-zA-Z0-9]*)( )([0-9]+)\"},{token:\"support.function.directive.assembly\",regex:\"^%endmacro\"},{token:[\"text\",\"support.function.directive.assembly\",\"text\",\"entity.name.function.assembly\"],regex:\"(\\\\s*)(%define|%xdefine|%idefine|%undef|%assign|%defstr|%strcat|%strlen|%substr|%00|%0|%rotate|%rep|%endrep|%include|\\\\$\\\\$|\\\\$|%unmacro|%if|%elif|%else|%endif|%(?:el)?ifdef|%(?:el)?ifmacro|%(?:el)?ifctx|%(?:el)?ifidn|%(?:el)?ifidni|%(?:el)?ifid|%(?:el)?ifnum|%(?:el)?ifstr|%(?:el)?iftoken|%(?:el)?ifempty|%(?:el)?ifenv|%pathsearch|%depend|%use|%push|%pop|%repl|%arg|%stacksize|%local|%error|%warning|%fatal|%line|%!|%comment|%endcomment|__NASM_VERSION_ID__|__NASM_VER__|__FILE__|__LINE__|__BITS__|__OUTPUT_FORMAT__|__DATE__|__TIME__|__DATE_NUM__|_TIME__NUM__|__UTC_DATE__|__UTC_TIME__|__UTC_DATE_NUM__|__UTC_TIME_NUM__|__POSIX_TIME__|__PASS__|ISTRUC|AT|IEND|BITS 16|BITS 32|BITS 64|USE16|USE32|__SECT__|ABSOLUTE|EXTERN|GLOBAL|COMMON|CPU|FLOAT)\\\\b( ?)((?:[_a-zA-Z][_a-zA-Z0-9]*)?)\",caseInsensitive:!0},{token:\"support.function.directive.assembly\",regex:\"\\\\b(?:d[bwdqtoy]|res[bwdqto]|equ|times|align|alignb|sectalign|section|ptr|byte|word|dword|qword|incbin)\\\\b\",caseInsensitive:!0},{token:\"entity.name.function.assembly\",regex:\"^\\\\s*%%[\\\\w.]+?:$\"},{token:\"entity.name.function.assembly\",regex:\"^\\\\s*%\\\\$[\\\\w.]+?:$\"},{token:\"entity.name.function.assembly\",regex:\"^[\\\\w.]+?:\"},{token:\"entity.name.function.assembly\",regex:\"^[\\\\w.]+?\\\\b\"},{token:\"comment.assembly\",regex:\";.*$\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"asm\"],name:\"Assembly x86\",scopeName:\"source.assembly\"},r.inherits(s,i),t.AssemblyX86HighlightRules=s}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/assembly_x86\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/assembly_x86_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./assembly_x86_highlight_rules\").AssemblyX86HighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\";\",this.$id=\"ace/mode/assembly_x86\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-autohotkey.js",
    "content": "ace.define(\"ace/mode/autohotkey_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"And|ByRef|Case|Const|ContinueCase|ContinueLoop|Default|Dim|Do|Else|ElseIf|EndFunc|EndIf|EndSelect|EndSwitch|EndWith|Enum|Exit|ExitLoop|False|For|Func|Global|If|In|Local|Next|Not|Or|ReDim|Return|Select|Step|Switch|Then|To|True|Until|WEnd|While|With|Abs|ACos|AdlibDisable|AdlibEnable|Asc|AscW|ASin|Assign|ATan|AutoItSetOption|AutoItWinGetTitle|AutoItWinSetTitle|Beep|Binary|BinaryLen|BinaryMid|BinaryToString|BitAND|BitNOT|BitOR|BitRotate|BitShift|BitXOR|BlockInput|Break|Call|CDTray|Ceiling|Chr|ChrW|ClipGet|ClipPut|ConsoleRead|ConsoleWrite|ConsoleWriteError|ControlClick|ControlCommand|ControlDisable|ControlEnable|ControlFocus|ControlGetFocus|ControlGetHandle|ControlGetPos|ControlGetText|ControlHide|ControlListView|ControlMove|ControlSend|ControlSetText|ControlShow|ControlTreeView|Cos|Dec|DirCopy|DirCreate|DirGetSize|DirMove|DirRemove|DllCall|DllCallbackFree|DllCallbackGetPtr|DllCallbackRegister|DllClose|DllOpen|DllStructCreate|DllStructGetData|DllStructGetPtr|DllStructGetSize|DllStructSetData|DriveGetDrive|DriveGetFileSystem|DriveGetLabel|DriveGetSerial|DriveGetType|DriveMapAdd|DriveMapDel|DriveMapGet|DriveSetLabel|DriveSpaceFree|DriveSpaceTotal|DriveStatus|EnvGet|EnvSet|EnvUpdate|Eval|Execute|Exp|FileChangeDir|FileClose|FileCopy|FileCreateNTFSLink|FileCreateShortcut|FileDelete|FileExists|FileFindFirstFile|FileFindNextFile|FileGetAttrib|FileGetLongName|FileGetShortcut|FileGetShortName|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileOpen|FileOpenDialog|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileSaveDialog|FileSelectFolder|FileSetAttrib|FileSetTime|FileWrite|FileWriteLine|Floor|FtpSetProxy|GUICreate|GUICtrlCreateAvi|GUICtrlCreateButton|GUICtrlCreateCheckbox|GUICtrlCreateCombo|GUICtrlCreateContextMenu|GUICtrlCreateDate|GUICtrlCreateDummy|GUICtrlCreateEdit|GUICtrlCreateGraphic|GUICtrlCreateGroup|GUICtrlCreateIcon|GUICtrlCreateInput|GUICtrlCreateLabel|GUICtrlCreateList|GUICtrlCreateListView|GUICtrlCreateListViewItem|GUICtrlCreateMenu|GUICtrlCreateMenuItem|GUICtrlCreateMonthCal|GUICtrlCreateObj|GUICtrlCreatePic|GUICtrlCreateProgress|GUICtrlCreateRadio|GUICtrlCreateSlider|GUICtrlCreateTab|GUICtrlCreateTabItem|GUICtrlCreateTreeView|GUICtrlCreateTreeViewItem|GUICtrlCreateUpdown|GUICtrlDelete|GUICtrlGetHandle|GUICtrlGetState|GUICtrlRead|GUICtrlRecvMsg|GUICtrlRegisterListViewSort|GUICtrlSendMsg|GUICtrlSendToDummy|GUICtrlSetBkColor|GUICtrlSetColor|GUICtrlSetCursor|GUICtrlSetData|GUICtrlSetFont|GUICtrlSetDefColor|GUICtrlSetDefBkColor|GUICtrlSetGraphic|GUICtrlSetImage|GUICtrlSetLimit|GUICtrlSetOnEvent|GUICtrlSetPos|GUICtrlSetResizing|GUICtrlSetState|GUICtrlSetStyle|GUICtrlSetTip|GUIDelete|GUIGetCursorInfo|GUIGetMsg|GUIGetStyle|GUIRegisterMsg|GUISetAccelerators()|GUISetBkColor|GUISetCoord|GUISetCursor|GUISetFont|GUISetHelp|GUISetIcon|GUISetOnEvent|GUISetState|GUISetStyle|GUIStartGroup|GUISwitch|Hex|HotKeySet|HttpSetProxy|HWnd|InetGet|InetGetSize|IniDelete|IniRead|IniReadSection|IniReadSectionNames|IniRenameSection|IniWrite|IniWriteSection|InputBox|Int|IsAdmin|IsArray|IsBinary|IsBool|IsDeclared|IsDllStruct|IsFloat|IsHWnd|IsInt|IsKeyword|IsNumber|IsObj|IsPtr|IsString|Log|MemGetStats|Mod|MouseClick|MouseClickDrag|MouseDown|MouseGetCursor|MouseGetPos|MouseMove|MouseUp|MouseWheel|MsgBox|Number|ObjCreate|ObjEvent|ObjGet|ObjName|Opt|Ping|PixelChecksum|PixelGetColor|PixelSearch|PluginClose|PluginOpen|ProcessClose|ProcessExists|ProcessGetStats|ProcessList|ProcessSetPriority|ProcessWait|ProcessWaitClose|ProgressOff|ProgressOn|ProgressSet|Ptr|Random|RegDelete|RegEnumKey|RegEnumVal|RegRead|RegWrite|Round|Run|RunAs|RunAsWait|RunWait|Send|SendKeepActive|SetError|SetExtended|ShellExecute|ShellExecuteWait|Shutdown|Sin|Sleep|SoundPlay|SoundSetWaveVolume|SplashImageOn|SplashOff|SplashTextOn|Sqrt|SRandom|StatusbarGetText|StderrRead|StdinWrite|StdioClose|StdoutRead|String|StringAddCR|StringCompare|StringFormat|StringInStr|StringIsAlNum|StringIsAlpha|StringIsASCII|StringIsDigit|StringIsFloat|StringIsInt|StringIsLower|StringIsSpace|StringIsUpper|StringIsXDigit|StringLeft|StringLen|StringLower|StringMid|StringRegExp|StringRegExpReplace|StringReplace|StringRight|StringSplit|StringStripCR|StringStripWS|StringToBinary|StringTrimLeft|StringTrimRight|StringUpper|Tan|TCPAccept|TCPCloseSocket|TCPConnect|TCPListen|TCPNameToIP|TCPRecv|TCPSend|TCPShutdown|TCPStartup|TimerDiff|TimerInit|ToolTip|TrayCreateItem|TrayCreateMenu|TrayGetMsg|TrayItemDelete|TrayItemGetHandle|TrayItemGetState|TrayItemGetText|TrayItemSetOnEvent|TrayItemSetState|TrayItemSetText|TraySetClick|TraySetIcon|TraySetOnEvent|TraySetPauseIcon|TraySetState|TraySetToolTip|TrayTip|UBound|UDPBind|UDPCloseSocket|UDPOpen|UDPRecv|UDPSend|UDPShutdown|UDPStartup|VarGetType|WinActivate|WinActive|WinClose|WinExists|WinFlash|WinGetCaretPos|WinGetClassList|WinGetClientSize|WinGetHandle|WinGetPos|WinGetProcess|WinGetState|WinGetText|WinGetTitle|WinKill|WinList|WinMenuSelectItem|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinSetOnTop|WinSetState|WinSetTitle|WinSetTrans|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive|ArrayAdd|ArrayBinarySearch|ArrayConcatenate|ArrayDelete|ArrayDisplay|ArrayFindAll|ArrayInsert|ArrayMax|ArrayMaxIndex|ArrayMin|ArrayMinIndex|ArrayPop|ArrayPush|ArrayReverse|ArraySearch|ArraySort|ArraySwap|ArrayToClip|ArrayToString|ArrayTrim|ChooseColor|ChooseFont|ClipBoard_ChangeChain|ClipBoard_Close|ClipBoard_CountFormats|ClipBoard_Empty|ClipBoard_EnumFormats|ClipBoard_FormatStr|ClipBoard_GetData|ClipBoard_GetDataEx|ClipBoard_GetFormatName|ClipBoard_GetOpenWindow|ClipBoard_GetOwner|ClipBoard_GetPriorityFormat|ClipBoard_GetSequenceNumber|ClipBoard_GetViewer|ClipBoard_IsFormatAvailable|ClipBoard_Open|ClipBoard_RegisterFormat|ClipBoard_SetData|ClipBoard_SetDataEx|ClipBoard_SetViewer|ClipPutFile|ColorConvertHSLtoRGB|ColorConvertRGBtoHSL|ColorGetBlue|ColorGetGreen|ColorGetRed|Date_Time_CompareFileTime|Date_Time_DOSDateTimeToArray|Date_Time_DOSDateTimeToFileTime|Date_Time_DOSDateTimeToStr|Date_Time_DOSDateToArray|Date_Time_DOSDateToStr|Date_Time_DOSTimeToArray|Date_Time_DOSTimeToStr|Date_Time_EncodeFileTime|Date_Time_EncodeSystemTime|Date_Time_FileTimeToArray|Date_Time_FileTimeToDOSDateTime|Date_Time_FileTimeToLocalFileTime|Date_Time_FileTimeToStr|Date_Time_FileTimeToSystemTime|Date_Time_GetFileTime|Date_Time_GetLocalTime|Date_Time_GetSystemTime|Date_Time_GetSystemTimeAdjustment|Date_Time_GetSystemTimeAsFileTime|Date_Time_GetSystemTimes|Date_Time_GetTickCount|Date_Time_GetTimeZoneInformation|Date_Time_LocalFileTimeToFileTime|Date_Time_SetFileTime|Date_Time_SetLocalTime|Date_Time_SetSystemTime|Date_Time_SetSystemTimeAdjustment|Date_Time_SetTimeZoneInformation|Date_Time_SystemTimeToArray|Date_Time_SystemTimeToDateStr|Date_Time_SystemTimeToDateTimeStr|Date_Time_SystemTimeToFileTime|Date_Time_SystemTimeToTimeStr|Date_Time_SystemTimeToTzSpecificLocalTime|Date_Time_TzSpecificLocalTimeToSystemTime|DateAdd|DateDayOfWeek|DateDaysInMonth|DateDiff|DateIsLeapYear|DateIsValid|DateTimeFormat|DateTimeSplit|DateToDayOfWeek|DateToDayOfWeekISO|DateToDayValue|DateToMonth|DayValueToDate|DebugBugReportEnv|DebugOut|DebugSetup|Degree|EventLog__Backup|EventLog__Clear|EventLog__Close|EventLog__Count|EventLog__DeregisterSource|EventLog__Full|EventLog__Notify|EventLog__Oldest|EventLog__Open|EventLog__OpenBackup|EventLog__Read|EventLog__RegisterSource|EventLog__Report|FileCountLines|FileCreate|FileListToArray|FilePrint|FileReadToArray|FileWriteFromArray|FileWriteLog|FileWriteToLine|GDIPlus_ArrowCapCreate|GDIPlus_ArrowCapDispose|GDIPlus_ArrowCapGetFillState|GDIPlus_ArrowCapGetHeight|GDIPlus_ArrowCapGetMiddleInset|GDIPlus_ArrowCapGetWidth|GDIPlus_ArrowCapSetFillState|GDIPlus_ArrowCapSetHeight|GDIPlus_ArrowCapSetMiddleInset|GDIPlus_ArrowCapSetWidth|GDIPlus_BitmapCloneArea|GDIPlus_BitmapCreateFromFile|GDIPlus_BitmapCreateFromGraphics|GDIPlus_BitmapCreateFromHBITMAP|GDIPlus_BitmapCreateHBITMAPFromBitmap|GDIPlus_BitmapDispose|GDIPlus_BitmapLockBits|GDIPlus_BitmapUnlockBits|GDIPlus_BrushClone|GDIPlus_BrushCreateSolid|GDIPlus_BrushDispose|GDIPlus_BrushGetType|GDIPlus_CustomLineCapDispose|GDIPlus_Decoders|GDIPlus_DecodersGetCount|GDIPlus_DecodersGetSize|GDIPlus_Encoders|GDIPlus_EncodersGetCLSID|GDIPlus_EncodersGetCount|GDIPlus_EncodersGetParamList|GDIPlus_EncodersGetParamListSize|GDIPlus_EncodersGetSize|GDIPlus_FontCreate|GDIPlus_FontDispose|GDIPlus_FontFamilyCreate|GDIPlus_FontFamilyDispose|GDIPlus_GraphicsClear|GDIPlus_GraphicsCreateFromHDC|GDIPlus_GraphicsCreateFromHWND|GDIPlus_GraphicsDispose|GDIPlus_GraphicsDrawArc|GDIPlus_GraphicsDrawBezier|GDIPlus_GraphicsDrawClosedCurve|GDIPlus_GraphicsDrawCurve|GDIPlus_GraphicsDrawEllipse|GDIPlus_GraphicsDrawImage|GDIPlus_GraphicsDrawImageRect|GDIPlus_GraphicsDrawImageRectRect|GDIPlus_GraphicsDrawLine|GDIPlus_GraphicsDrawPie|GDIPlus_GraphicsDrawPolygon|GDIPlus_GraphicsDrawRect|GDIPlus_GraphicsDrawString|GDIPlus_GraphicsDrawStringEx|GDIPlus_GraphicsFillClosedCurve|GDIPlus_GraphicsFillEllipse|GDIPlus_GraphicsFillPie|GDIPlus_GraphicsFillRect|GDIPlus_GraphicsGetDC|GDIPlus_GraphicsGetSmoothingMode|GDIPlus_GraphicsMeasureString|GDIPlus_GraphicsReleaseDC|GDIPlus_GraphicsSetSmoothingMode|GDIPlus_GraphicsSetTransform|GDIPlus_ImageDispose|GDIPlus_ImageGetGraphicsContext|GDIPlus_ImageGetHeight|GDIPlus_ImageGetWidth|GDIPlus_ImageLoadFromFile|GDIPlus_ImageSaveToFile|GDIPlus_ImageSaveToFileEx|GDIPlus_MatrixCreate|GDIPlus_MatrixDispose|GDIPlus_MatrixRotate|GDIPlus_ParamAdd|GDIPlus_ParamInit|GDIPlus_PenCreate|GDIPlus_PenDispose|GDIPlus_PenGetAlignment|GDIPlus_PenGetColor|GDIPlus_PenGetCustomEndCap|GDIPlus_PenGetDashCap|GDIPlus_PenGetDashStyle|GDIPlus_PenGetEndCap|GDIPlus_PenGetWidth|GDIPlus_PenSetAlignment|GDIPlus_PenSetColor|GDIPlus_PenSetCustomEndCap|GDIPlus_PenSetDashCap|GDIPlus_PenSetDashStyle|GDIPlus_PenSetEndCap|GDIPlus_PenSetWidth|GDIPlus_RectFCreate|GDIPlus_Shutdown|GDIPlus_Startup|GDIPlus_StringFormatCreate|GDIPlus_StringFormatDispose|GetIP|GUICtrlAVI_Close|GUICtrlAVI_Create|GUICtrlAVI_Destroy|GUICtrlAVI_Open|GUICtrlAVI_OpenEx|GUICtrlAVI_Play|GUICtrlAVI_Seek|GUICtrlAVI_Show|GUICtrlAVI_Stop|GUICtrlButton_Click|GUICtrlButton_Create|GUICtrlButton_Destroy|GUICtrlButton_Enable|GUICtrlButton_GetCheck|GUICtrlButton_GetFocus|GUICtrlButton_GetIdealSize|GUICtrlButton_GetImage|GUICtrlButton_GetImageList|GUICtrlButton_GetState|GUICtrlButton_GetText|GUICtrlButton_GetTextMargin|GUICtrlButton_SetCheck|GUICtrlButton_SetFocus|GUICtrlButton_SetImage|GUICtrlButton_SetImageList|GUICtrlButton_SetSize|GUICtrlButton_SetState|GUICtrlButton_SetStyle|GUICtrlButton_SetText|GUICtrlButton_SetTextMargin|GUICtrlButton_Show|GUICtrlComboBox_AddDir|GUICtrlComboBox_AddString|GUICtrlComboBox_AutoComplete|GUICtrlComboBox_BeginUpdate|GUICtrlComboBox_Create|GUICtrlComboBox_DeleteString|GUICtrlComboBox_Destroy|GUICtrlComboBox_EndUpdate|GUICtrlComboBox_FindString|GUICtrlComboBox_FindStringExact|GUICtrlComboBox_GetComboBoxInfo|GUICtrlComboBox_GetCount|GUICtrlComboBox_GetCurSel|GUICtrlComboBox_GetDroppedControlRect|GUICtrlComboBox_GetDroppedControlRectEx|GUICtrlComboBox_GetDroppedState|GUICtrlComboBox_GetDroppedWidth|GUICtrlComboBox_GetEditSel|GUICtrlComboBox_GetEditText|GUICtrlComboBox_GetExtendedUI|GUICtrlComboBox_GetHorizontalExtent|GUICtrlComboBox_GetItemHeight|GUICtrlComboBox_GetLBText|GUICtrlComboBox_GetLBTextLen|GUICtrlComboBox_GetList|GUICtrlComboBox_GetListArray|GUICtrlComboBox_GetLocale|GUICtrlComboBox_GetLocaleCountry|GUICtrlComboBox_GetLocaleLang|GUICtrlComboBox_GetLocalePrimLang|GUICtrlComboBox_GetLocaleSubLang|GUICtrlComboBox_GetMinVisible|GUICtrlComboBox_GetTopIndex|GUICtrlComboBox_InitStorage|GUICtrlComboBox_InsertString|GUICtrlComboBox_LimitText|GUICtrlComboBox_ReplaceEditSel|GUICtrlComboBox_ResetContent|GUICtrlComboBox_SelectString|GUICtrlComboBox_SetCurSel|GUICtrlComboBox_SetDroppedWidth|GUICtrlComboBox_SetEditSel|GUICtrlComboBox_SetEditText|GUICtrlComboBox_SetExtendedUI|GUICtrlComboBox_SetHorizontalExtent|GUICtrlComboBox_SetItemHeight|GUICtrlComboBox_SetMinVisible|GUICtrlComboBox_SetTopIndex|GUICtrlComboBox_ShowDropDown|GUICtrlComboBoxEx_AddDir|GUICtrlComboBoxEx_AddString|GUICtrlComboBoxEx_BeginUpdate|GUICtrlComboBoxEx_Create|GUICtrlComboBoxEx_CreateSolidBitMap|GUICtrlComboBoxEx_DeleteString|GUICtrlComboBoxEx_Destroy|GUICtrlComboBoxEx_EndUpdate|GUICtrlComboBoxEx_FindStringExact|GUICtrlComboBoxEx_GetComboBoxInfo|GUICtrlComboBoxEx_GetComboControl|GUICtrlComboBoxEx_GetCount|GUICtrlComboBoxEx_GetCurSel|GUICtrlComboBoxEx_GetDroppedControlRect|GUICtrlComboBoxEx_GetDroppedControlRectEx|GUICtrlComboBoxEx_GetDroppedState|GUICtrlComboBoxEx_GetDroppedWidth|GUICtrlComboBoxEx_GetEditControl|GUICtrlComboBoxEx_GetEditSel|GUICtrlComboBoxEx_GetEditText|GUICtrlComboBoxEx_GetExtendedStyle|GUICtrlComboBoxEx_GetExtendedUI|GUICtrlComboBoxEx_GetImageList|GUICtrlComboBoxEx_GetItem|GUICtrlComboBoxEx_GetItemEx|GUICtrlComboBoxEx_GetItemHeight|GUICtrlComboBoxEx_GetItemImage|GUICtrlComboBoxEx_GetItemIndent|GUICtrlComboBoxEx_GetItemOverlayImage|GUICtrlComboBoxEx_GetItemParam|GUICtrlComboBoxEx_GetItemSelectedImage|GUICtrlComboBoxEx_GetItemText|GUICtrlComboBoxEx_GetItemTextLen|GUICtrlComboBoxEx_GetList|GUICtrlComboBoxEx_GetListArray|GUICtrlComboBoxEx_GetLocale|GUICtrlComboBoxEx_GetLocaleCountry|GUICtrlComboBoxEx_GetLocaleLang|GUICtrlComboBoxEx_GetLocalePrimLang|GUICtrlComboBoxEx_GetLocaleSubLang|GUICtrlComboBoxEx_GetMinVisible|GUICtrlComboBoxEx_GetTopIndex|GUICtrlComboBoxEx_InitStorage|GUICtrlComboBoxEx_InsertString|GUICtrlComboBoxEx_LimitText|GUICtrlComboBoxEx_ReplaceEditSel|GUICtrlComboBoxEx_ResetContent|GUICtrlComboBoxEx_SetCurSel|GUICtrlComboBoxEx_SetDroppedWidth|GUICtrlComboBoxEx_SetEditSel|GUICtrlComboBoxEx_SetEditText|GUICtrlComboBoxEx_SetExtendedStyle|GUICtrlComboBoxEx_SetExtendedUI|GUICtrlComboBoxEx_SetImageList|GUICtrlComboBoxEx_SetItem|GUICtrlComboBoxEx_SetItemEx|GUICtrlComboBoxEx_SetItemHeight|GUICtrlComboBoxEx_SetItemImage|GUICtrlComboBoxEx_SetItemIndent|GUICtrlComboBoxEx_SetItemOverlayImage|GUICtrlComboBoxEx_SetItemParam|GUICtrlComboBoxEx_SetItemSelectedImage|GUICtrlComboBoxEx_SetMinVisible|GUICtrlComboBoxEx_SetTopIndex|GUICtrlComboBoxEx_ShowDropDown|GUICtrlDTP_Create|GUICtrlDTP_Destroy|GUICtrlDTP_GetMCColor|GUICtrlDTP_GetMCFont|GUICtrlDTP_GetMonthCal|GUICtrlDTP_GetRange|GUICtrlDTP_GetRangeEx|GUICtrlDTP_GetSystemTime|GUICtrlDTP_GetSystemTimeEx|GUICtrlDTP_SetFormat|GUICtrlDTP_SetMCColor|GUICtrlDTP_SetMCFont|GUICtrlDTP_SetRange|GUICtrlDTP_SetRangeEx|GUICtrlDTP_SetSystemTime|GUICtrlDTP_SetSystemTimeEx|GUICtrlEdit_AppendText|GUICtrlEdit_BeginUpdate|GUICtrlEdit_CanUndo|GUICtrlEdit_CharFromPos|GUICtrlEdit_Create|GUICtrlEdit_Destroy|GUICtrlEdit_EmptyUndoBuffer|GUICtrlEdit_EndUpdate|GUICtrlEdit_Find|GUICtrlEdit_FmtLines|GUICtrlEdit_GetFirstVisibleLine|GUICtrlEdit_GetLimitText|GUICtrlEdit_GetLine|GUICtrlEdit_GetLineCount|GUICtrlEdit_GetMargins|GUICtrlEdit_GetModify|GUICtrlEdit_GetPasswordChar|GUICtrlEdit_GetRECT|GUICtrlEdit_GetRECTEx|GUICtrlEdit_GetSel|GUICtrlEdit_GetText|GUICtrlEdit_GetTextLen|GUICtrlEdit_HideBalloonTip|GUICtrlEdit_InsertText|GUICtrlEdit_LineFromChar|GUICtrlEdit_LineIndex|GUICtrlEdit_LineLength|GUICtrlEdit_LineScroll|GUICtrlEdit_PosFromChar|GUICtrlEdit_ReplaceSel|GUICtrlEdit_Scroll|GUICtrlEdit_SetLimitText|GUICtrlEdit_SetMargins|GUICtrlEdit_SetModify|GUICtrlEdit_SetPasswordChar|GUICtrlEdit_SetReadOnly|GUICtrlEdit_SetRECT|GUICtrlEdit_SetRECTEx|GUICtrlEdit_SetRECTNP|GUICtrlEdit_SetRectNPEx|GUICtrlEdit_SetSel|GUICtrlEdit_SetTabStops|GUICtrlEdit_SetText|GUICtrlEdit_ShowBalloonTip|GUICtrlEdit_Undo|GUICtrlHeader_AddItem|GUICtrlHeader_ClearFilter|GUICtrlHeader_ClearFilterAll|GUICtrlHeader_Create|GUICtrlHeader_CreateDragImage|GUICtrlHeader_DeleteItem|GUICtrlHeader_Destroy|GUICtrlHeader_EditFilter|GUICtrlHeader_GetBitmapMargin|GUICtrlHeader_GetImageList|GUICtrlHeader_GetItem|GUICtrlHeader_GetItemAlign|GUICtrlHeader_GetItemBitmap|GUICtrlHeader_GetItemCount|GUICtrlHeader_GetItemDisplay|GUICtrlHeader_GetItemFlags|GUICtrlHeader_GetItemFormat|GUICtrlHeader_GetItemImage|GUICtrlHeader_GetItemOrder|GUICtrlHeader_GetItemParam|GUICtrlHeader_GetItemRect|GUICtrlHeader_GetItemRectEx|GUICtrlHeader_GetItemText|GUICtrlHeader_GetItemWidth|GUICtrlHeader_GetOrderArray|GUICtrlHeader_GetUnicodeFormat|GUICtrlHeader_HitTest|GUICtrlHeader_InsertItem|GUICtrlHeader_Layout|GUICtrlHeader_OrderToIndex|GUICtrlHeader_SetBitmapMargin|GUICtrlHeader_SetFilterChangeTimeout|GUICtrlHeader_SetHotDivider|GUICtrlHeader_SetImageList|GUICtrlHeader_SetItem|GUICtrlHeader_SetItemAlign|GUICtrlHeader_SetItemBitmap|GUICtrlHeader_SetItemDisplay|GUICtrlHeader_SetItemFlags|GUICtrlHeader_SetItemFormat|GUICtrlHeader_SetItemImage|GUICtrlHeader_SetItemOrder|GUICtrlHeader_SetItemParam|GUICtrlHeader_SetItemText|GUICtrlHeader_SetItemWidth|GUICtrlHeader_SetOrderArray|GUICtrlHeader_SetUnicodeFormat|GUICtrlIpAddress_ClearAddress|GUICtrlIpAddress_Create|GUICtrlIpAddress_Destroy|GUICtrlIpAddress_Get|GUICtrlIpAddress_GetArray|GUICtrlIpAddress_GetEx|GUICtrlIpAddress_IsBlank|GUICtrlIpAddress_Set|GUICtrlIpAddress_SetArray|GUICtrlIpAddress_SetEx|GUICtrlIpAddress_SetFocus|GUICtrlIpAddress_SetFont|GUICtrlIpAddress_SetRange|GUICtrlIpAddress_ShowHide|GUICtrlListBox_AddFile|GUICtrlListBox_AddString|GUICtrlListBox_BeginUpdate|GUICtrlListBox_Create|GUICtrlListBox_DeleteString|GUICtrlListBox_Destroy|GUICtrlListBox_Dir|GUICtrlListBox_EndUpdate|GUICtrlListBox_FindInText|GUICtrlListBox_FindString|GUICtrlListBox_GetAnchorIndex|GUICtrlListBox_GetCaretIndex|GUICtrlListBox_GetCount|GUICtrlListBox_GetCurSel|GUICtrlListBox_GetHorizontalExtent|GUICtrlListBox_GetItemData|GUICtrlListBox_GetItemHeight|GUICtrlListBox_GetItemRect|GUICtrlListBox_GetItemRectEx|GUICtrlListBox_GetListBoxInfo|GUICtrlListBox_GetLocale|GUICtrlListBox_GetLocaleCountry|GUICtrlListBox_GetLocaleLang|GUICtrlListBox_GetLocalePrimLang|GUICtrlListBox_GetLocaleSubLang|GUICtrlListBox_GetSel|GUICtrlListBox_GetSelCount|GUICtrlListBox_GetSelItems|GUICtrlListBox_GetSelItemsText|GUICtrlListBox_GetText|GUICtrlListBox_GetTextLen|GUICtrlListBox_GetTopIndex|GUICtrlListBox_InitStorage|GUICtrlListBox_InsertString|GUICtrlListBox_ItemFromPoint|GUICtrlListBox_ReplaceString|GUICtrlListBox_ResetContent|GUICtrlListBox_SelectString|GUICtrlListBox_SelItemRange|GUICtrlListBox_SelItemRangeEx|GUICtrlListBox_SetAnchorIndex|GUICtrlListBox_SetCaretIndex|GUICtrlListBox_SetColumnWidth|GUICtrlListBox_SetCurSel|GUICtrlListBox_SetHorizontalExtent|GUICtrlListBox_SetItemData|GUICtrlListBox_SetItemHeight|GUICtrlListBox_SetLocale|GUICtrlListBox_SetSel|GUICtrlListBox_SetTabStops|GUICtrlListBox_SetTopIndex|GUICtrlListBox_Sort|GUICtrlListBox_SwapString|GUICtrlListBox_UpdateHScroll|GUICtrlListView_AddArray|GUICtrlListView_AddColumn|GUICtrlListView_AddItem|GUICtrlListView_AddSubItem|GUICtrlListView_ApproximateViewHeight|GUICtrlListView_ApproximateViewRect|GUICtrlListView_ApproximateViewWidth|GUICtrlListView_Arrange|GUICtrlListView_BeginUpdate|GUICtrlListView_CancelEditLabel|GUICtrlListView_ClickItem|GUICtrlListView_CopyItems|GUICtrlListView_Create|GUICtrlListView_CreateDragImage|GUICtrlListView_CreateSolidBitMap|GUICtrlListView_DeleteAllItems|GUICtrlListView_DeleteColumn|GUICtrlListView_DeleteItem|GUICtrlListView_DeleteItemsSelected|GUICtrlListView_Destroy|GUICtrlListView_DrawDragImage|GUICtrlListView_EditLabel|GUICtrlListView_EnableGroupView|GUICtrlListView_EndUpdate|GUICtrlListView_EnsureVisible|GUICtrlListView_FindInText|GUICtrlListView_FindItem|GUICtrlListView_FindNearest|GUICtrlListView_FindParam|GUICtrlListView_FindText|GUICtrlListView_GetBkColor|GUICtrlListView_GetBkImage|GUICtrlListView_GetCallbackMask|GUICtrlListView_GetColumn|GUICtrlListView_GetColumnCount|GUICtrlListView_GetColumnOrder|GUICtrlListView_GetColumnOrderArray|GUICtrlListView_GetColumnWidth|GUICtrlListView_GetCounterPage|GUICtrlListView_GetEditControl|GUICtrlListView_GetExtendedListViewStyle|GUICtrlListView_GetGroupInfo|GUICtrlListView_GetGroupViewEnabled|GUICtrlListView_GetHeader|GUICtrlListView_GetHotCursor|GUICtrlListView_GetHotItem|GUICtrlListView_GetHoverTime|GUICtrlListView_GetImageList|GUICtrlListView_GetISearchString|GUICtrlListView_GetItem|GUICtrlListView_GetItemChecked|GUICtrlListView_GetItemCount|GUICtrlListView_GetItemCut|GUICtrlListView_GetItemDropHilited|GUICtrlListView_GetItemEx|GUICtrlListView_GetItemFocused|GUICtrlListView_GetItemGroupID|GUICtrlListView_GetItemImage|GUICtrlListView_GetItemIndent|GUICtrlListView_GetItemParam|GUICtrlListView_GetItemPosition|GUICtrlListView_GetItemPositionX|GUICtrlListView_GetItemPositionY|GUICtrlListView_GetItemRect|GUICtrlListView_GetItemRectEx|GUICtrlListView_GetItemSelected|GUICtrlListView_GetItemSpacing|GUICtrlListView_GetItemSpacingX|GUICtrlListView_GetItemSpacingY|GUICtrlListView_GetItemState|GUICtrlListView_GetItemStateImage|GUICtrlListView_GetItemText|GUICtrlListView_GetItemTextArray|GUICtrlListView_GetItemTextString|GUICtrlListView_GetNextItem|GUICtrlListView_GetNumberOfWorkAreas|GUICtrlListView_GetOrigin|GUICtrlListView_GetOriginX|GUICtrlListView_GetOriginY|GUICtrlListView_GetOutlineColor|GUICtrlListView_GetSelectedColumn|GUICtrlListView_GetSelectedCount|GUICtrlListView_GetSelectedIndices|GUICtrlListView_GetSelectionMark|GUICtrlListView_GetStringWidth|GUICtrlListView_GetSubItemRect|GUICtrlListView_GetTextBkColor|GUICtrlListView_GetTextColor|GUICtrlListView_GetToolTips|GUICtrlListView_GetTopIndex|GUICtrlListView_GetUnicodeFormat|GUICtrlListView_GetView|GUICtrlListView_GetViewDetails|GUICtrlListView_GetViewLarge|GUICtrlListView_GetViewList|GUICtrlListView_GetViewRect|GUICtrlListView_GetViewSmall|GUICtrlListView_GetViewTile|GUICtrlListView_HideColumn|GUICtrlListView_HitTest|GUICtrlListView_InsertColumn|GUICtrlListView_InsertGroup|GUICtrlListView_InsertItem|GUICtrlListView_JustifyColumn|GUICtrlListView_MapIDToIndex|GUICtrlListView_MapIndexToID|GUICtrlListView_RedrawItems|GUICtrlListView_RegisterSortCallBack|GUICtrlListView_RemoveAllGroups|GUICtrlListView_RemoveGroup|GUICtrlListView_Scroll|GUICtrlListView_SetBkColor|GUICtrlListView_SetBkImage|GUICtrlListView_SetCallBackMask|GUICtrlListView_SetColumn|GUICtrlListView_SetColumnOrder|GUICtrlListView_SetColumnOrderArray|GUICtrlListView_SetColumnWidth|GUICtrlListView_SetExtendedListViewStyle|GUICtrlListView_SetGroupInfo|GUICtrlListView_SetHotItem|GUICtrlListView_SetHoverTime|GUICtrlListView_SetIconSpacing|GUICtrlListView_SetImageList|GUICtrlListView_SetItem|GUICtrlListView_SetItemChecked|GUICtrlListView_SetItemCount|GUICtrlListView_SetItemCut|GUICtrlListView_SetItemDropHilited|GUICtrlListView_SetItemEx|GUICtrlListView_SetItemFocused|GUICtrlListView_SetItemGroupID|GUICtrlListView_SetItemImage|GUICtrlListView_SetItemIndent|GUICtrlListView_SetItemParam|GUICtrlListView_SetItemPosition|GUICtrlListView_SetItemPosition32|GUICtrlListView_SetItemSelected|GUICtrlListView_SetItemState|GUICtrlListView_SetItemStateImage|GUICtrlListView_SetItemText|GUICtrlListView_SetOutlineColor|GUICtrlListView_SetSelectedColumn|GUICtrlListView_SetSelectionMark|GUICtrlListView_SetTextBkColor|GUICtrlListView_SetTextColor|GUICtrlListView_SetToolTips|GUICtrlListView_SetUnicodeFormat|GUICtrlListView_SetView|GUICtrlListView_SetWorkAreas|GUICtrlListView_SimpleSort|GUICtrlListView_SortItems|GUICtrlListView_SubItemHitTest|GUICtrlListView_UnRegisterSortCallBack|GUICtrlMenu_AddMenuItem|GUICtrlMenu_AppendMenu|GUICtrlMenu_CheckMenuItem|GUICtrlMenu_CheckRadioItem|GUICtrlMenu_CreateMenu|GUICtrlMenu_CreatePopup|GUICtrlMenu_DeleteMenu|GUICtrlMenu_DestroyMenu|GUICtrlMenu_DrawMenuBar|GUICtrlMenu_EnableMenuItem|GUICtrlMenu_FindItem|GUICtrlMenu_FindParent|GUICtrlMenu_GetItemBmp|GUICtrlMenu_GetItemBmpChecked|GUICtrlMenu_GetItemBmpUnchecked|GUICtrlMenu_GetItemChecked|GUICtrlMenu_GetItemCount|GUICtrlMenu_GetItemData|GUICtrlMenu_GetItemDefault|GUICtrlMenu_GetItemDisabled|GUICtrlMenu_GetItemEnabled|GUICtrlMenu_GetItemGrayed|GUICtrlMenu_GetItemHighlighted|GUICtrlMenu_GetItemID|GUICtrlMenu_GetItemInfo|GUICtrlMenu_GetItemRect|GUICtrlMenu_GetItemRectEx|GUICtrlMenu_GetItemState|GUICtrlMenu_GetItemStateEx|GUICtrlMenu_GetItemSubMenu|GUICtrlMenu_GetItemText|GUICtrlMenu_GetItemType|GUICtrlMenu_GetMenu|GUICtrlMenu_GetMenuBackground|GUICtrlMenu_GetMenuBarInfo|GUICtrlMenu_GetMenuContextHelpID|GUICtrlMenu_GetMenuData|GUICtrlMenu_GetMenuDefaultItem|GUICtrlMenu_GetMenuHeight|GUICtrlMenu_GetMenuInfo|GUICtrlMenu_GetMenuStyle|GUICtrlMenu_GetSystemMenu|GUICtrlMenu_InsertMenuItem|GUICtrlMenu_InsertMenuItemEx|GUICtrlMenu_IsMenu|GUICtrlMenu_LoadMenu|GUICtrlMenu_MapAccelerator|GUICtrlMenu_MenuItemFromPoint|GUICtrlMenu_RemoveMenu|GUICtrlMenu_SetItemBitmaps|GUICtrlMenu_SetItemBmp|GUICtrlMenu_SetItemBmpChecked|GUICtrlMenu_SetItemBmpUnchecked|GUICtrlMenu_SetItemChecked|GUICtrlMenu_SetItemData|GUICtrlMenu_SetItemDefault|GUICtrlMenu_SetItemDisabled|GUICtrlMenu_SetItemEnabled|GUICtrlMenu_SetItemGrayed|GUICtrlMenu_SetItemHighlighted|GUICtrlMenu_SetItemID|GUICtrlMenu_SetItemInfo|GUICtrlMenu_SetItemState|GUICtrlMenu_SetItemSubMenu|GUICtrlMenu_SetItemText|GUICtrlMenu_SetItemType|GUICtrlMenu_SetMenu|GUICtrlMenu_SetMenuBackground|GUICtrlMenu_SetMenuContextHelpID|GUICtrlMenu_SetMenuData|GUICtrlMenu_SetMenuDefaultItem|GUICtrlMenu_SetMenuHeight|GUICtrlMenu_SetMenuInfo|GUICtrlMenu_SetMenuStyle|GUICtrlMenu_TrackPopupMenu|GUICtrlMonthCal_Create|GUICtrlMonthCal_Destroy|GUICtrlMonthCal_GetColor|GUICtrlMonthCal_GetColorArray|GUICtrlMonthCal_GetCurSel|GUICtrlMonthCal_GetCurSelStr|GUICtrlMonthCal_GetFirstDOW|GUICtrlMonthCal_GetFirstDOWStr|GUICtrlMonthCal_GetMaxSelCount|GUICtrlMonthCal_GetMaxTodayWidth|GUICtrlMonthCal_GetMinReqHeight|GUICtrlMonthCal_GetMinReqRect|GUICtrlMonthCal_GetMinReqRectArray|GUICtrlMonthCal_GetMinReqWidth|GUICtrlMonthCal_GetMonthDelta|GUICtrlMonthCal_GetMonthRange|GUICtrlMonthCal_GetMonthRangeMax|GUICtrlMonthCal_GetMonthRangeMaxStr|GUICtrlMonthCal_GetMonthRangeMin|GUICtrlMonthCal_GetMonthRangeMinStr|GUICtrlMonthCal_GetMonthRangeSpan|GUICtrlMonthCal_GetRange|GUICtrlMonthCal_GetRangeMax|GUICtrlMonthCal_GetRangeMaxStr|GUICtrlMonthCal_GetRangeMin|GUICtrlMonthCal_GetRangeMinStr|GUICtrlMonthCal_GetSelRange|GUICtrlMonthCal_GetSelRangeMax|GUICtrlMonthCal_GetSelRangeMaxStr|GUICtrlMonthCal_GetSelRangeMin|GUICtrlMonthCal_GetSelRangeMinStr|GUICtrlMonthCal_GetToday|GUICtrlMonthCal_GetTodayStr|GUICtrlMonthCal_GetUnicodeFormat|GUICtrlMonthCal_HitTest|GUICtrlMonthCal_SetColor|GUICtrlMonthCal_SetCurSel|GUICtrlMonthCal_SetDayState|GUICtrlMonthCal_SetFirstDOW|GUICtrlMonthCal_SetMaxSelCount|GUICtrlMonthCal_SetMonthDelta|GUICtrlMonthCal_SetRange|GUICtrlMonthCal_SetSelRange|GUICtrlMonthCal_SetToday|GUICtrlMonthCal_SetUnicodeFormat|GUICtrlRebar_AddBand|GUICtrlRebar_AddToolBarBand|GUICtrlRebar_BeginDrag|GUICtrlRebar_Create|GUICtrlRebar_DeleteBand|GUICtrlRebar_Destroy|GUICtrlRebar_DragMove|GUICtrlRebar_EndDrag|GUICtrlRebar_GetBandBackColor|GUICtrlRebar_GetBandBorders|GUICtrlRebar_GetBandBordersEx|GUICtrlRebar_GetBandChildHandle|GUICtrlRebar_GetBandChildSize|GUICtrlRebar_GetBandCount|GUICtrlRebar_GetBandForeColor|GUICtrlRebar_GetBandHeaderSize|GUICtrlRebar_GetBandID|GUICtrlRebar_GetBandIdealSize|GUICtrlRebar_GetBandLength|GUICtrlRebar_GetBandLParam|GUICtrlRebar_GetBandMargins|GUICtrlRebar_GetBandMarginsEx|GUICtrlRebar_GetBandRect|GUICtrlRebar_GetBandRectEx|GUICtrlRebar_GetBandStyle|GUICtrlRebar_GetBandStyleBreak|GUICtrlRebar_GetBandStyleChildEdge|GUICtrlRebar_GetBandStyleFixedBMP|GUICtrlRebar_GetBandStyleFixedSize|GUICtrlRebar_GetBandStyleGripperAlways|GUICtrlRebar_GetBandStyleHidden|GUICtrlRebar_GetBandStyleHideTitle|GUICtrlRebar_GetBandStyleNoGripper|GUICtrlRebar_GetBandStyleTopAlign|GUICtrlRebar_GetBandStyleUseChevron|GUICtrlRebar_GetBandStyleVariableHeight|GUICtrlRebar_GetBandText|GUICtrlRebar_GetBarHeight|GUICtrlRebar_GetBKColor|GUICtrlRebar_GetColorScheme|GUICtrlRebar_GetRowCount|GUICtrlRebar_GetRowHeight|GUICtrlRebar_GetTextColor|GUICtrlRebar_GetToolTips|GUICtrlRebar_GetUnicodeFormat|GUICtrlRebar_HitTest|GUICtrlRebar_IDToIndex|GUICtrlRebar_MaximizeBand|GUICtrlRebar_MinimizeBand|GUICtrlRebar_MoveBand|GUICtrlRebar_SetBandBackColor|GUICtrlRebar_SetBandForeColor|GUICtrlRebar_SetBandHeaderSize|GUICtrlRebar_SetBandID|GUICtrlRebar_SetBandIdealSize|GUICtrlRebar_SetBandLength|GUICtrlRebar_SetBandLParam|GUICtrlRebar_SetBandStyle|GUICtrlRebar_SetBandStyleBreak|GUICtrlRebar_SetBandStyleChildEdge|GUICtrlRebar_SetBandStyleFixedBMP|GUICtrlRebar_SetBandStyleFixedSize|GUICtrlRebar_SetBandStyleGripperAlways|GUICtrlRebar_SetBandStyleHidden|GUICtrlRebar_SetBandStyleHideTitle|GUICtrlRebar_SetBandStyleNoGripper|GUICtrlRebar_SetBandStyleTopAlign|GUICtrlRebar_SetBandStyleUseChevron|GUICtrlRebar_SetBandStyleVariableHeight|GUICtrlRebar_SetBandText|GUICtrlRebar_SetBKColor|GUICtrlRebar_SetColorScheme|GUICtrlRebar_SetTextColor|GUICtrlRebar_SetToolTips|GUICtrlRebar_SetUnicodeFormat|GUICtrlRebar_ShowBand|GUICtrlSlider_ClearSel|GUICtrlSlider_ClearTics|GUICtrlSlider_Create|GUICtrlSlider_Destroy|GUICtrlSlider_GetBuddy|GUICtrlSlider_GetChannelRect|GUICtrlSlider_GetLineSize|GUICtrlSlider_GetNumTics|GUICtrlSlider_GetPageSize|GUICtrlSlider_GetPos|GUICtrlSlider_GetPTics|GUICtrlSlider_GetRange|GUICtrlSlider_GetRangeMax|GUICtrlSlider_GetRangeMin|GUICtrlSlider_GetSel|GUICtrlSlider_GetSelEnd|GUICtrlSlider_GetSelStart|GUICtrlSlider_GetThumbLength|GUICtrlSlider_GetThumbRect|GUICtrlSlider_GetThumbRectEx|GUICtrlSlider_GetTic|GUICtrlSlider_GetTicPos|GUICtrlSlider_GetToolTips|GUICtrlSlider_GetUnicodeFormat|GUICtrlSlider_SetBuddy|GUICtrlSlider_SetLineSize|GUICtrlSlider_SetPageSize|GUICtrlSlider_SetPos|GUICtrlSlider_SetRange|GUICtrlSlider_SetRangeMax|GUICtrlSlider_SetRangeMin|GUICtrlSlider_SetSel|GUICtrlSlider_SetSelEnd|GUICtrlSlider_SetSelStart|GUICtrlSlider_SetThumbLength|GUICtrlSlider_SetTic|GUICtrlSlider_SetTicFreq|GUICtrlSlider_SetTipSide|GUICtrlSlider_SetToolTips|GUICtrlSlider_SetUnicodeFormat|GUICtrlStatusBar_Create|GUICtrlStatusBar_Destroy|GUICtrlStatusBar_EmbedControl|GUICtrlStatusBar_GetBorders|GUICtrlStatusBar_GetBordersHorz|GUICtrlStatusBar_GetBordersRect|GUICtrlStatusBar_GetBordersVert|GUICtrlStatusBar_GetCount|GUICtrlStatusBar_GetHeight|GUICtrlStatusBar_GetIcon|GUICtrlStatusBar_GetParts|GUICtrlStatusBar_GetRect|GUICtrlStatusBar_GetRectEx|GUICtrlStatusBar_GetText|GUICtrlStatusBar_GetTextFlags|GUICtrlStatusBar_GetTextLength|GUICtrlStatusBar_GetTextLengthEx|GUICtrlStatusBar_GetTipText|GUICtrlStatusBar_GetUnicodeFormat|GUICtrlStatusBar_GetWidth|GUICtrlStatusBar_IsSimple|GUICtrlStatusBar_Resize|GUICtrlStatusBar_SetBkColor|GUICtrlStatusBar_SetIcon|GUICtrlStatusBar_SetMinHeight|GUICtrlStatusBar_SetParts|GUICtrlStatusBar_SetSimple|GUICtrlStatusBar_SetText|GUICtrlStatusBar_SetTipText|GUICtrlStatusBar_SetUnicodeFormat|GUICtrlStatusBar_ShowHide|GUICtrlTab_Create|GUICtrlTab_DeleteAllItems|GUICtrlTab_DeleteItem|GUICtrlTab_DeselectAll|GUICtrlTab_Destroy|GUICtrlTab_FindTab|GUICtrlTab_GetCurFocus|GUICtrlTab_GetCurSel|GUICtrlTab_GetDisplayRect|GUICtrlTab_GetDisplayRectEx|GUICtrlTab_GetExtendedStyle|GUICtrlTab_GetImageList|GUICtrlTab_GetItem|GUICtrlTab_GetItemCount|GUICtrlTab_GetItemImage|GUICtrlTab_GetItemParam|GUICtrlTab_GetItemRect|GUICtrlTab_GetItemRectEx|GUICtrlTab_GetItemState|GUICtrlTab_GetItemText|GUICtrlTab_GetRowCount|GUICtrlTab_GetToolTips|GUICtrlTab_GetUnicodeFormat|GUICtrlTab_HighlightItem|GUICtrlTab_HitTest|GUICtrlTab_InsertItem|GUICtrlTab_RemoveImage|GUICtrlTab_SetCurFocus|GUICtrlTab_SetCurSel|GUICtrlTab_SetExtendedStyle|GUICtrlTab_SetImageList|GUICtrlTab_SetItem|GUICtrlTab_SetItemImage|GUICtrlTab_SetItemParam|GUICtrlTab_SetItemSize|GUICtrlTab_SetItemState|GUICtrlTab_SetItemText|GUICtrlTab_SetMinTabWidth|GUICtrlTab_SetPadding|GUICtrlTab_SetToolTips|GUICtrlTab_SetUnicodeFormat|GUICtrlToolbar_AddBitmap|GUICtrlToolbar_AddButton|GUICtrlToolbar_AddButtonSep|GUICtrlToolbar_AddString|GUICtrlToolbar_ButtonCount|GUICtrlToolbar_CheckButton|GUICtrlToolbar_ClickAccel|GUICtrlToolbar_ClickButton|GUICtrlToolbar_ClickIndex|GUICtrlToolbar_CommandToIndex|GUICtrlToolbar_Create|GUICtrlToolbar_Customize|GUICtrlToolbar_DeleteButton|GUICtrlToolbar_Destroy|GUICtrlToolbar_EnableButton|GUICtrlToolbar_FindToolbar|GUICtrlToolbar_GetAnchorHighlight|GUICtrlToolbar_GetBitmapFlags|GUICtrlToolbar_GetButtonBitmap|GUICtrlToolbar_GetButtonInfo|GUICtrlToolbar_GetButtonInfoEx|GUICtrlToolbar_GetButtonParam|GUICtrlToolbar_GetButtonRect|GUICtrlToolbar_GetButtonRectEx|GUICtrlToolbar_GetButtonSize|GUICtrlToolbar_GetButtonState|GUICtrlToolbar_GetButtonStyle|GUICtrlToolbar_GetButtonText|GUICtrlToolbar_GetColorScheme|GUICtrlToolbar_GetDisabledImageList|GUICtrlToolbar_GetExtendedStyle|GUICtrlToolbar_GetHotImageList|GUICtrlToolbar_GetHotItem|GUICtrlToolbar_GetImageList|GUICtrlToolbar_GetInsertMark|GUICtrlToolbar_GetInsertMarkColor|GUICtrlToolbar_GetMaxSize|GUICtrlToolbar_GetMetrics|GUICtrlToolbar_GetPadding|GUICtrlToolbar_GetRows|GUICtrlToolbar_GetString|GUICtrlToolbar_GetStyle|GUICtrlToolbar_GetStyleAltDrag|GUICtrlToolbar_GetStyleCustomErase|GUICtrlToolbar_GetStyleFlat|GUICtrlToolbar_GetStyleList|GUICtrlToolbar_GetStyleRegisterDrop|GUICtrlToolbar_GetStyleToolTips|GUICtrlToolbar_GetStyleTransparent|GUICtrlToolbar_GetStyleWrapable|GUICtrlToolbar_GetTextRows|GUICtrlToolbar_GetToolTips|GUICtrlToolbar_GetUnicodeFormat|GUICtrlToolbar_HideButton|GUICtrlToolbar_HighlightButton|GUICtrlToolbar_HitTest|GUICtrlToolbar_IndexToCommand|GUICtrlToolbar_InsertButton|GUICtrlToolbar_InsertMarkHitTest|GUICtrlToolbar_IsButtonChecked|GUICtrlToolbar_IsButtonEnabled|GUICtrlToolbar_IsButtonHidden|GUICtrlToolbar_IsButtonHighlighted|GUICtrlToolbar_IsButtonIndeterminate|GUICtrlToolbar_IsButtonPressed|GUICtrlToolbar_LoadBitmap|GUICtrlToolbar_LoadImages|GUICtrlToolbar_MapAccelerator|GUICtrlToolbar_MoveButton|GUICtrlToolbar_PressButton|GUICtrlToolbar_SetAnchorHighlight|GUICtrlToolbar_SetBitmapSize|GUICtrlToolbar_SetButtonBitMap|GUICtrlToolbar_SetButtonInfo|GUICtrlToolbar_SetButtonInfoEx|GUICtrlToolbar_SetButtonParam|GUICtrlToolbar_SetButtonSize|GUICtrlToolbar_SetButtonState|GUICtrlToolbar_SetButtonStyle|GUICtrlToolbar_SetButtonText|GUICtrlToolbar_SetButtonWidth|GUICtrlToolbar_SetCmdID|GUICtrlToolbar_SetColorScheme|GUICtrlToolbar_SetDisabledImageList|GUICtrlToolbar_SetDrawTextFlags|GUICtrlToolbar_SetExtendedStyle|GUICtrlToolbar_SetHotImageList|GUICtrlToolbar_SetHotItem|GUICtrlToolbar_SetImageList|GUICtrlToolbar_SetIndent|GUICtrlToolbar_SetIndeterminate|GUICtrlToolbar_SetInsertMark|GUICtrlToolbar_SetInsertMarkColor|GUICtrlToolbar_SetMaxTextRows|GUICtrlToolbar_SetMetrics|GUICtrlToolbar_SetPadding|GUICtrlToolbar_SetParent|GUICtrlToolbar_SetRows|GUICtrlToolbar_SetStyle|GUICtrlToolbar_SetStyleAltDrag|GUICtrlToolbar_SetStyleCustomErase|GUICtrlToolbar_SetStyleFlat|GUICtrlToolbar_SetStyleList|GUICtrlToolbar_SetStyleRegisterDrop|GUICtrlToolbar_SetStyleToolTips|GUICtrlToolbar_SetStyleTransparent|GUICtrlToolbar_SetStyleWrapable|GUICtrlToolbar_SetToolTips|GUICtrlToolbar_SetUnicodeFormat|GUICtrlToolbar_SetWindowTheme|GUICtrlTreeView_Add|GUICtrlTreeView_AddChild|GUICtrlTreeView_AddChildFirst|GUICtrlTreeView_AddFirst|GUICtrlTreeView_BeginUpdate|GUICtrlTreeView_ClickItem|GUICtrlTreeView_Create|GUICtrlTreeView_CreateDragImage|GUICtrlTreeView_CreateSolidBitMap|GUICtrlTreeView_Delete|GUICtrlTreeView_DeleteAll|GUICtrlTreeView_DeleteChildren|GUICtrlTreeView_Destroy|GUICtrlTreeView_DisplayRect|GUICtrlTreeView_DisplayRectEx|GUICtrlTreeView_EditText|GUICtrlTreeView_EndEdit|GUICtrlTreeView_EndUpdate|GUICtrlTreeView_EnsureVisible|GUICtrlTreeView_Expand|GUICtrlTreeView_ExpandedOnce|GUICtrlTreeView_FindItem|GUICtrlTreeView_FindItemEx|GUICtrlTreeView_GetBkColor|GUICtrlTreeView_GetBold|GUICtrlTreeView_GetChecked|GUICtrlTreeView_GetChildCount|GUICtrlTreeView_GetChildren|GUICtrlTreeView_GetCount|GUICtrlTreeView_GetCut|GUICtrlTreeView_GetDropTarget|GUICtrlTreeView_GetEditControl|GUICtrlTreeView_GetExpanded|GUICtrlTreeView_GetFirstChild|GUICtrlTreeView_GetFirstItem|GUICtrlTreeView_GetFirstVisible|GUICtrlTreeView_GetFocused|GUICtrlTreeView_GetHeight|GUICtrlTreeView_GetImageIndex|GUICtrlTreeView_GetImageListIconHandle|GUICtrlTreeView_GetIndent|GUICtrlTreeView_GetInsertMarkColor|GUICtrlTreeView_GetISearchString|GUICtrlTreeView_GetItemByIndex|GUICtrlTreeView_GetItemHandle|GUICtrlTreeView_GetItemParam|GUICtrlTreeView_GetLastChild|GUICtrlTreeView_GetLineColor|GUICtrlTreeView_GetNext|GUICtrlTreeView_GetNextChild|GUICtrlTreeView_GetNextSibling|GUICtrlTreeView_GetNextVisible|GUICtrlTreeView_GetNormalImageList|GUICtrlTreeView_GetParentHandle|GUICtrlTreeView_GetParentParam|GUICtrlTreeView_GetPrev|GUICtrlTreeView_GetPrevChild|GUICtrlTreeView_GetPrevSibling|GUICtrlTreeView_GetPrevVisible|GUICtrlTreeView_GetScrollTime|GUICtrlTreeView_GetSelected|GUICtrlTreeView_GetSelectedImageIndex|GUICtrlTreeView_GetSelection|GUICtrlTreeView_GetSiblingCount|GUICtrlTreeView_GetState|GUICtrlTreeView_GetStateImageIndex|GUICtrlTreeView_GetStateImageList|GUICtrlTreeView_GetText|GUICtrlTreeView_GetTextColor|GUICtrlTreeView_GetToolTips|GUICtrlTreeView_GetTree|GUICtrlTreeView_GetUnicodeFormat|GUICtrlTreeView_GetVisible|GUICtrlTreeView_GetVisibleCount|GUICtrlTreeView_HitTest|GUICtrlTreeView_HitTestEx|GUICtrlTreeView_HitTestItem|GUICtrlTreeView_Index|GUICtrlTreeView_InsertItem|GUICtrlTreeView_IsFirstItem|GUICtrlTreeView_IsParent|GUICtrlTreeView_Level|GUICtrlTreeView_SelectItem|GUICtrlTreeView_SelectItemByIndex|GUICtrlTreeView_SetBkColor|GUICtrlTreeView_SetBold|GUICtrlTreeView_SetChecked|GUICtrlTreeView_SetCheckedByIndex|GUICtrlTreeView_SetChildren|GUICtrlTreeView_SetCut|GUICtrlTreeView_SetDropTarget|GUICtrlTreeView_SetFocused|GUICtrlTreeView_SetHeight|GUICtrlTreeView_SetIcon|GUICtrlTreeView_SetImageIndex|GUICtrlTreeView_SetIndent|GUICtrlTreeView_SetInsertMark|GUICtrlTreeView_SetInsertMarkColor|GUICtrlTreeView_SetItemHeight|GUICtrlTreeView_SetItemParam|GUICtrlTreeView_SetLineColor|GUICtrlTreeView_SetNormalImageList|GUICtrlTreeView_SetScrollTime|GUICtrlTreeView_SetSelected|GUICtrlTreeView_SetSelectedImageIndex|GUICtrlTreeView_SetState|GUICtrlTreeView_SetStateImageIndex|GUICtrlTreeView_SetStateImageList|GUICtrlTreeView_SetText|GUICtrlTreeView_SetTextColor|GUICtrlTreeView_SetToolTips|GUICtrlTreeView_SetUnicodeFormat|GUICtrlTreeView_Sort|GUIImageList_Add|GUIImageList_AddBitmap|GUIImageList_AddIcon|GUIImageList_AddMasked|GUIImageList_BeginDrag|GUIImageList_Copy|GUIImageList_Create|GUIImageList_Destroy|GUIImageList_DestroyIcon|GUIImageList_DragEnter|GUIImageList_DragLeave|GUIImageList_DragMove|GUIImageList_Draw|GUIImageList_DrawEx|GUIImageList_Duplicate|GUIImageList_EndDrag|GUIImageList_GetBkColor|GUIImageList_GetIcon|GUIImageList_GetIconHeight|GUIImageList_GetIconSize|GUIImageList_GetIconSizeEx|GUIImageList_GetIconWidth|GUIImageList_GetImageCount|GUIImageList_GetImageInfoEx|GUIImageList_Remove|GUIImageList_ReplaceIcon|GUIImageList_SetBkColor|GUIImageList_SetIconSize|GUIImageList_SetImageCount|GUIImageList_Swap|GUIScrollBars_EnableScrollBar|GUIScrollBars_GetScrollBarInfoEx|GUIScrollBars_GetScrollBarRect|GUIScrollBars_GetScrollBarRGState|GUIScrollBars_GetScrollBarXYLineButton|GUIScrollBars_GetScrollBarXYThumbBottom|GUIScrollBars_GetScrollBarXYThumbTop|GUIScrollBars_GetScrollInfo|GUIScrollBars_GetScrollInfoEx|GUIScrollBars_GetScrollInfoMax|GUIScrollBars_GetScrollInfoMin|GUIScrollBars_GetScrollInfoPage|GUIScrollBars_GetScrollInfoPos|GUIScrollBars_GetScrollInfoTrackPos|GUIScrollBars_GetScrollPos|GUIScrollBars_GetScrollRange|GUIScrollBars_Init|GUIScrollBars_ScrollWindow|GUIScrollBars_SetScrollInfo|GUIScrollBars_SetScrollInfoMax|GUIScrollBars_SetScrollInfoMin|GUIScrollBars_SetScrollInfoPage|GUIScrollBars_SetScrollInfoPos|GUIScrollBars_SetScrollRange|GUIScrollBars_ShowScrollBar|GUIToolTip_Activate|GUIToolTip_AddTool|GUIToolTip_AdjustRect|GUIToolTip_BitsToTTF|GUIToolTip_Create|GUIToolTip_DelTool|GUIToolTip_Destroy|GUIToolTip_EnumTools|GUIToolTip_GetBubbleHeight|GUIToolTip_GetBubbleSize|GUIToolTip_GetBubbleWidth|GUIToolTip_GetCurrentTool|GUIToolTip_GetDelayTime|GUIToolTip_GetMargin|GUIToolTip_GetMarginEx|GUIToolTip_GetMaxTipWidth|GUIToolTip_GetText|GUIToolTip_GetTipBkColor|GUIToolTip_GetTipTextColor|GUIToolTip_GetTitleBitMap|GUIToolTip_GetTitleText|GUIToolTip_GetToolCount|GUIToolTip_GetToolInfo|GUIToolTip_HitTest|GUIToolTip_NewToolRect|GUIToolTip_Pop|GUIToolTip_PopUp|GUIToolTip_SetDelayTime|GUIToolTip_SetMargin|GUIToolTip_SetMaxTipWidth|GUIToolTip_SetTipBkColor|GUIToolTip_SetTipTextColor|GUIToolTip_SetTitle|GUIToolTip_SetToolInfo|GUIToolTip_SetWindowTheme|GUIToolTip_ToolExists|GUIToolTip_ToolToArray|GUIToolTip_TrackActivate|GUIToolTip_TrackPosition|GUIToolTip_TTFToBits|GUIToolTip_Update|GUIToolTip_UpdateTipText|HexToString|IE_Example|IE_Introduction|IE_VersionInfo|IEAction|IEAttach|IEBodyReadHTML|IEBodyReadText|IEBodyWriteHTML|IECreate|IECreateEmbedded|IEDocGetObj|IEDocInsertHTML|IEDocInsertText|IEDocReadHTML|IEDocWriteHTML|IEErrorHandlerDeRegister|IEErrorHandlerRegister|IEErrorNotify|IEFormElementCheckBoxSelect|IEFormElementGetCollection|IEFormElementGetObjByName|IEFormElementGetValue|IEFormElementOptionSelect|IEFormElementRadioSelect|IEFormElementSetValue|IEFormGetCollection|IEFormGetObjByName|IEFormImageClick|IEFormReset|IEFormSubmit|IEFrameGetCollection|IEFrameGetObjByName|IEGetObjById|IEGetObjByName|IEHeadInsertEventScript|IEImgClick|IEImgGetCollection|IEIsFrameSet|IELinkClickByIndex|IELinkClickByText|IELinkGetCollection|IELoadWait|IELoadWaitTimeout|IENavigate|IEPropertyGet|IEPropertySet|IEQuit|IETableGetCollection|IETableWriteToArray|IETagNameAllGetCollection|IETagNameGetCollection|Iif|INetExplorerCapable|INetGetSource|INetMail|INetSmtpMail|IsPressed|MathCheckDiv|Max|MemGlobalAlloc|MemGlobalFree|MemGlobalLock|MemGlobalSize|MemGlobalUnlock|MemMoveMemory|MemMsgBox|MemShowError|MemVirtualAlloc|MemVirtualAllocEx|MemVirtualFree|MemVirtualFreeEx|Min|MouseTrap|NamedPipes_CallNamedPipe|NamedPipes_ConnectNamedPipe|NamedPipes_CreateNamedPipe|NamedPipes_CreatePipe|NamedPipes_DisconnectNamedPipe|NamedPipes_GetNamedPipeHandleState|NamedPipes_GetNamedPipeInfo|NamedPipes_PeekNamedPipe|NamedPipes_SetNamedPipeHandleState|NamedPipes_TransactNamedPipe|NamedPipes_WaitNamedPipe|Net_Share_ConnectionEnum|Net_Share_FileClose|Net_Share_FileEnum|Net_Share_FileGetInfo|Net_Share_PermStr|Net_Share_ResourceStr|Net_Share_SessionDel|Net_Share_SessionEnum|Net_Share_SessionGetInfo|Net_Share_ShareAdd|Net_Share_ShareCheck|Net_Share_ShareDel|Net_Share_ShareEnum|Net_Share_ShareGetInfo|Net_Share_ShareSetInfo|Net_Share_StatisticsGetSvr|Net_Share_StatisticsGetWrk|Now|NowCalc|NowCalcDate|NowDate|NowTime|PathFull|PathMake|PathSplit|ProcessGetName|ProcessGetPriority|Radian|ReplaceStringInFile|RunDOS|ScreenCapture_Capture|ScreenCapture_CaptureWnd|ScreenCapture_SaveImage|ScreenCapture_SetBMPFormat|ScreenCapture_SetJPGQuality|ScreenCapture_SetTIFColorDepth|ScreenCapture_SetTIFCompression|Security__AdjustTokenPrivileges|Security__GetAccountSid|Security__GetLengthSid|Security__GetTokenInformation|Security__ImpersonateSelf|Security__IsValidSid|Security__LookupAccountName|Security__LookupAccountSid|Security__LookupPrivilegeValue|Security__OpenProcessToken|Security__OpenThreadToken|Security__OpenThreadTokenEx|Security__SetPrivilege|Security__SidToStringSid|Security__SidTypeStr|Security__StringSidToSid|SendMessage|SendMessageA|SetDate|SetTime|Singleton|SoundClose|SoundLength|SoundOpen|SoundPause|SoundPlay|SoundPos|SoundResume|SoundSeek|SoundStatus|SoundStop|SQLite_Changes|SQLite_Close|SQLite_Display2DResult|SQLite_Encode|SQLite_ErrCode|SQLite_ErrMsg|SQLite_Escape|SQLite_Exec|SQLite_FetchData|SQLite_FetchNames|SQLite_GetTable|SQLite_GetTable2d|SQLite_LastInsertRowID|SQLite_LibVersion|SQLite_Open|SQLite_Query|SQLite_QueryFinalize|SQLite_QueryReset|SQLite_QuerySingleRow|SQLite_SaveMode|SQLite_SetTimeout|SQLite_Shutdown|SQLite_SQLiteExe|SQLite_Startup|SQLite_TotalChanges|StringAddComma|StringBetween|StringEncrypt|StringInsert|StringProper|StringRepeat|StringReverse|StringSplit|StringToHex|TCPIpToName|TempFile|TicksToTime|Timer_Diff|Timer_GetTimerID|Timer_Init|Timer_KillAllTimers|Timer_KillTimer|Timer_SetTimer|TimeToTicks|VersionCompare|viClose|viExecCommand|viFindGpib|viGpibBusReset|viGTL|viOpen|viSetAttribute|viSetTimeout|WeekNumberISO|WinAPI_AttachConsole|WinAPI_AttachThreadInput|WinAPI_Beep|WinAPI_BitBlt|WinAPI_CallNextHookEx|WinAPI_Check|WinAPI_ClientToScreen|WinAPI_CloseHandle|WinAPI_CommDlgExtendedError|WinAPI_CopyIcon|WinAPI_CreateBitmap|WinAPI_CreateCompatibleBitmap|WinAPI_CreateCompatibleDC|WinAPI_CreateEvent|WinAPI_CreateFile|WinAPI_CreateFont|WinAPI_CreateFontIndirect|WinAPI_CreateProcess|WinAPI_CreateSolidBitmap|WinAPI_CreateSolidBrush|WinAPI_CreateWindowEx|WinAPI_DefWindowProc|WinAPI_DeleteDC|WinAPI_DeleteObject|WinAPI_DestroyIcon|WinAPI_DestroyWindow|WinAPI_DrawEdge|WinAPI_DrawFrameControl|WinAPI_DrawIcon|WinAPI_DrawIconEx|WinAPI_DrawText|WinAPI_EnableWindow|WinAPI_EnumDisplayDevices|WinAPI_EnumWindows|WinAPI_EnumWindowsPopup|WinAPI_EnumWindowsTop|WinAPI_ExpandEnvironmentStrings|WinAPI_ExtractIconEx|WinAPI_FatalAppExit|WinAPI_FillRect|WinAPI_FindExecutable|WinAPI_FindWindow|WinAPI_FlashWindow|WinAPI_FlashWindowEx|WinAPI_FloatToInt|WinAPI_FlushFileBuffers|WinAPI_FormatMessage|WinAPI_FrameRect|WinAPI_FreeLibrary|WinAPI_GetAncestor|WinAPI_GetAsyncKeyState|WinAPI_GetClassName|WinAPI_GetClientHeight|WinAPI_GetClientRect|WinAPI_GetClientWidth|WinAPI_GetCurrentProcess|WinAPI_GetCurrentProcessID|WinAPI_GetCurrentThread|WinAPI_GetCurrentThreadId|WinAPI_GetCursorInfo|WinAPI_GetDC|WinAPI_GetDesktopWindow|WinAPI_GetDeviceCaps|WinAPI_GetDIBits|WinAPI_GetDlgCtrlID|WinAPI_GetDlgItem|WinAPI_GetFileSizeEx|WinAPI_GetFocus|WinAPI_GetForegroundWindow|WinAPI_GetIconInfo|WinAPI_GetLastError|WinAPI_GetLastErrorMessage|WinAPI_GetModuleHandle|WinAPI_GetMousePos|WinAPI_GetMousePosX|WinAPI_GetMousePosY|WinAPI_GetObject|WinAPI_GetOpenFileName|WinAPI_GetOverlappedResult|WinAPI_GetParent|WinAPI_GetProcessAffinityMask|WinAPI_GetSaveFileName|WinAPI_GetStdHandle|WinAPI_GetStockObject|WinAPI_GetSysColor|WinAPI_GetSysColorBrush|WinAPI_GetSystemMetrics|WinAPI_GetTextExtentPoint32|WinAPI_GetWindow|WinAPI_GetWindowDC|WinAPI_GetWindowHeight|WinAPI_GetWindowLong|WinAPI_GetWindowRect|WinAPI_GetWindowText|WinAPI_GetWindowThreadProcessId|WinAPI_GetWindowWidth|WinAPI_GetXYFromPoint|WinAPI_GlobalMemStatus|WinAPI_GUIDFromString|WinAPI_GUIDFromStringEx|WinAPI_HiWord|WinAPI_InProcess|WinAPI_IntToFloat|WinAPI_InvalidateRect|WinAPI_IsClassName|WinAPI_IsWindow|WinAPI_IsWindowVisible|WinAPI_LoadBitmap|WinAPI_LoadImage|WinAPI_LoadLibrary|WinAPI_LoadLibraryEx|WinAPI_LoadShell32Icon|WinAPI_LoadString|WinAPI_LocalFree|WinAPI_LoWord|WinAPI_MakeDWord|WinAPI_MAKELANGID|WinAPI_MAKELCID|WinAPI_MakeLong|WinAPI_MessageBeep|WinAPI_Mouse_Event|WinAPI_MoveWindow|WinAPI_MsgBox|WinAPI_MulDiv|WinAPI_MultiByteToWideChar|WinAPI_MultiByteToWideCharEx|WinAPI_OpenProcess|WinAPI_PointFromRect|WinAPI_PostMessage|WinAPI_PrimaryLangId|WinAPI_PtInRect|WinAPI_ReadFile|WinAPI_ReadProcessMemory|WinAPI_RectIsEmpty|WinAPI_RedrawWindow|WinAPI_RegisterWindowMessage|WinAPI_ReleaseCapture|WinAPI_ReleaseDC|WinAPI_ScreenToClient|WinAPI_SelectObject|WinAPI_SetBkColor|WinAPI_SetCapture|WinAPI_SetCursor|WinAPI_SetDefaultPrinter|WinAPI_SetDIBits|WinAPI_SetEvent|WinAPI_SetFocus|WinAPI_SetFont|WinAPI_SetHandleInformation|WinAPI_SetLastError|WinAPI_SetParent|WinAPI_SetProcessAffinityMask|WinAPI_SetSysColors|WinAPI_SetTextColor|WinAPI_SetWindowLong|WinAPI_SetWindowPos|WinAPI_SetWindowsHookEx|WinAPI_SetWindowText|WinAPI_ShowCursor|WinAPI_ShowError|WinAPI_ShowMsg|WinAPI_ShowWindow|WinAPI_StringFromGUID|WinAPI_SubLangId|WinAPI_SystemParametersInfo|WinAPI_TwipsPerPixelX|WinAPI_TwipsPerPixelY|WinAPI_UnhookWindowsHookEx|WinAPI_UpdateLayeredWindow|WinAPI_UpdateWindow|WinAPI_ValidateClassName|WinAPI_WaitForInputIdle|WinAPI_WaitForMultipleObjects|WinAPI_WaitForSingleObject|WinAPI_WideCharToMultiByte|WinAPI_WindowFromPoint|WinAPI_WriteConsole|WinAPI_WriteFile|WinAPI_WriteProcessMemory|WinNet_AddConnection|WinNet_AddConnection2|WinNet_AddConnection3|WinNet_CancelConnection|WinNet_CancelConnection2|WinNet_CloseEnum|WinNet_ConnectionDialog|WinNet_ConnectionDialog1|WinNet_DisconnectDialog|WinNet_DisconnectDialog1|WinNet_EnumResource|WinNet_GetConnection|WinNet_GetConnectionPerformance|WinNet_GetLastError|WinNet_GetNetworkInformation|WinNet_GetProviderName|WinNet_GetResourceInformation|WinNet_GetResourceParent|WinNet_GetUniversalName|WinNet_GetUser|WinNet_OpenEnum|WinNet_RestoreConnection|WinNet_UseConnection|Word_VersionInfo|WordAttach|WordCreate|WordDocAdd|WordDocAddLink|WordDocAddPicture|WordDocClose|WordDocFindReplace|WordDocGetCollection|WordDocLinkGetCollection|WordDocOpen|WordDocPrint|WordDocPropertyGet|WordDocPropertySet|WordDocSave|WordDocSaveAs|WordErrorHandlerDeRegister|WordErrorHandlerRegister|WordErrorNotify|WordMacroRun|WordPropertyGet|WordPropertySet|WordQuit|ce|comments-end|comments-start|cs|include|include-once|NoTrayIcon|RequireAdmin|AutoIt3Wrapper_Au3Check_Parameters|AutoIt3Wrapper_Au3Check_Stop_OnWarning|AutoIt3Wrapper_Change2CUI|AutoIt3Wrapper_Compression|AutoIt3Wrapper_cvsWrapper_Parameters|AutoIt3Wrapper_Icon|AutoIt3Wrapper_Outfile|AutoIt3Wrapper_Outfile_Type|AutoIt3Wrapper_Plugin_Funcs|AutoIt3Wrapper_Res_Comment|AutoIt3Wrapper_Res_Description|AutoIt3Wrapper_Res_Field|AutoIt3Wrapper_Res_File_Add|AutoIt3Wrapper_Res_Fileversion|AutoIt3Wrapper_Res_FileVersion_AutoIncrement|AutoIt3Wrapper_Res_Icon_Add|AutoIt3Wrapper_Res_Language|AutoIt3Wrapper_Res_LegalCopyright|AutoIt3Wrapper_res_requestedExecutionLevel|AutoIt3Wrapper_Res_SaveSource|AutoIt3Wrapper_Run_After|AutoIt3Wrapper_Run_Au3check|AutoIt3Wrapper_Run_Before|AutoIt3Wrapper_Run_cvsWrapper|AutoIt3Wrapper_Run_Debug_Mode|AutoIt3Wrapper_Run_Obfuscator|AutoIt3Wrapper_Run_Tidy|AutoIt3Wrapper_Tidy_Stop_OnError|AutoIt3Wrapper_UseAnsi|AutoIt3Wrapper_UseUpx|AutoIt3Wrapper_UseX64|AutoIt3Wrapper_Version|EndRegion|forceref|Obfuscator_Ignore_Funcs|Obfuscator_Ignore_Variables|Obfuscator_Parameters|Region|Tidy_Parameters\",t=\"AppDataCommonDir|AppDataDir|AutoItExe|AutoItPID|AutoItUnicode|AutoItVersion|AutoItX64|COM_EventObj|CommonFilesDir|Compiled|ComputerName|ComSpec|CR|CRLF|DesktopCommonDir|DesktopDepth|DesktopDir|DesktopHeight|DesktopRefresh|DesktopWidth|DocumentsCommonDir|error|exitCode|exitMethod|extended|FavoritesCommonDir|FavoritesDir|GUI_CtrlHandle|GUI_CtrlId|GUI_DragFile|GUI_DragId|GUI_DropId|GUI_WinHandle|HomeDrive|HomePath|HomeShare|HotKeyPressed|HOUR|InetGetActive|InetGetBytesRead|IPAddress1|IPAddress2|IPAddress3|IPAddress4|KBLayout|LF|LogonDNSDomain|LogonDomain|LogonServer|MDAY|MIN|MON|MyDocumentsDir|NumParams|OSBuild|OSLang|OSServicePack|OSTYPE|OSVersion|ProcessorArch|ProgramFilesDir|ProgramsCommonDir|ProgramsDir|ScriptDir|ScriptFullPath|ScriptLineNumber|ScriptName|SEC|StartMenuCommonDir|StartMenuDir|StartupCommonDir|StartupDir|SW_DISABLE|SW_ENABLE|SW_HIDE|SW_LOCK|SW_MAXIMIZE|SW_MINIMIZE|SW_RESTORE|SW_SHOW|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWMINNOACTIVE|SW_SHOWNA|SW_SHOWNOACTIVATE|SW_SHOWNORMAL|SW_UNLOCK|SystemDir|TAB|TempDir|TRAY_ID|TrayIconFlashing|TrayIconVisible|UserName|UserProfileDir|WDAY|WindowsDir|WorkingDir|YDAY|YEAR\";this.$rules={start:[{token:\"comment.line.ahk\",regex:\"(?:^| );.*$\"},{token:\"comment.block.ahk\",regex:\"/\\\\*\",push:[{token:\"comment.block.ahk\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.ahk\"}]},{token:\"doc.comment.ahk\",regex:\"#cs\",push:[{token:\"doc.comment.ahk\",regex:\"#ce\",next:\"pop\"},{defaultToken:\"doc.comment.ahk\"}]},{token:\"keyword.command.ahk\",regex:\"(?:\\\\b|^)(?:allowsamelinecomments|clipboardtimeout|commentflag|errorstdout|escapechar|hotkeyinterval|hotkeymodifiertimeout|hotstring|include|includeagain|installkeybdhook|installmousehook|keyhistory|ltrim|maxhotkeysperinterval|maxmem|maxthreads|maxthreadsbuffer|maxthreadsperhotkey|noenv|notrayicon|persistent|singleinstance|usehook|winactivateforce|autotrim|blockinput|click|clipwait|continue|control|controlclick|controlfocus|controlget|controlgetfocus|controlgetpos|controlgettext|controlmove|controlsend|controlsendraw|controlsettext|coordmode|critical|detecthiddentext|detecthiddenwindows|drive|driveget|drivespacefree|edit|endrepeat|envadd|envdiv|envget|envmult|envset|envsub|envupdate|exit|exitapp|fileappend|filecopy|filecopydir|filecreatedir|filecreateshortcut|filedelete|filegetattrib|filegetshortcut|filegetsize|filegettime|filegetversion|fileinstall|filemove|filemovedir|fileread|filereadline|filerecycle|filerecycleempty|fileremovedir|fileselectfile|fileselectfolder|filesetattrib|filesettime|formattime|getkeystate|gosub|goto|groupactivate|groupadd|groupclose|groupdeactivate|gui|guicontrol|guicontrolget|hideautoitwin|hotkey|ifequal|ifexist|ifgreater|ifgreaterorequal|ifinstring|ifless|iflessorequal|ifmsgbox|ifnotequal|ifnotexist|ifnotinstring|ifwinactive|ifwinexist|ifwinnotactive|ifwinnotexist|imagesearch|inidelete|iniread|iniwrite|input|inputbox|keyhistory|keywait|listhotkeys|listlines|listvars|menu|mouseclick|mouseclickdrag|mousegetpos|mousemove|msgbox|onexit|outputdebug|pause|pixelgetcolor|pixelsearch|postmessage|process|progress|random|regdelete|regread|regwrite|reload|repeat|run|runas|runwait|send|sendevent|sendinput|sendmode|sendplay|sendmessage|sendraw|setbatchlines|setcapslockstate|setcontroldelay|setdefaultmousespeed|setenv|setformat|setkeydelay|setmousedelay|setnumlockstate|setscrolllockstate|setstorecapslockmode|settimer|settitlematchmode|setwindelay|setworkingdir|shutdown|sleep|sort|soundbeep|soundget|soundgetwavevolume|soundplay|soundset|soundsetwavevolume|splashimage|splashtextoff|splashtexton|splitpath|statusbargettext|statusbarwait|stringcasesense|stringgetpos|stringleft|stringlen|stringlower|stringmid|stringreplace|stringright|stringsplit|stringtrimleft|stringtrimright|stringupper|suspend|sysget|thread|tooltip|transform|traytip|urldownloadtofile|while|winactivate|winactivatebottom|winclose|winget|wingetactivestats|wingetactivetitle|wingetclass|wingetpos|wingettext|wingettitle|winhide|winkill|winmaximize|winmenuselectitem|winminimize|winminimizeall|winminimizeallundo|winmove|winrestore|winset|winsettitle|winshow|winwait|winwaitactive|winwaitclose|winwaitnotactive)\\\\b\",caseInsensitive:!0},{token:\"keyword.control.ahk\",regex:\"(?:\\\\b|^)(?:if|else|return|loop|break|for|while|global|local|byref)\\\\b\",caseInsensitive:!0},{token:\"support.function.ahk\",regex:\"(?:\\\\b|^)(?:abs|acos|asc|asin|atan|ceil|chr|cos|dllcall|exp|fileexist|floor|getkeystate|il_add|il_create|il_destroy|instr|substr|isfunc|islabel|ln|log|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|onmessage|numget|numput|registercallback|regexmatch|regexreplace|round|sin|tan|sqrt|strlen|sb_seticon|sb_setparts|sb_settext|tv_add|tv_delete|tv_getchild|tv_getcount|tv_getnext|tv_get|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist)\\\\b\",caseInsensitive:!0},{token:\"variable.predefined.ahk\",regex:\"(?:\\\\b|^)(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_formatfloat|a_formatinteger|a_gui|a_guievent|a_guicontrol|a_guicontrolevent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|programfiles|a_programfiles|a_programs|a_programscommon|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel)\\\\b\",caseInsensitive:!0},{token:\"support.constant.ahk\",regex:\"(?:\\\\b|^)(?:shift|lshift|rshift|alt|lalt|ralt|control|lcontrol|rcontrol|ctrl|lctrl|rctrl|lwin|rwin|appskey|altdown|altup|shiftdown|shiftup|ctrldown|ctrlup|lwindown|lwinup|rwindown|rwinup|lbutton|rbutton|mbutton|wheelup|wheelleft|wheelright|wheeldown|xbutton1|xbutton2|joy1|joy2|joy3|joy4|joy5|joy6|joy7|joy8|joy9|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy30|joy31|joy32|joyx|joyy|joyz|joyr|joyu|joyv|joypov|joyname|joybuttons|joyaxes|joyinfo|space|tab|enter|escape|esc|backspace|bs|delete|del|insert|ins|pgup|pgdn|home|end|up|down|left|right|printscreen|ctrlbreak|pause|scrolllock|capslock|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadmult|numpadadd|numpadsub|numpaddiv|numpaddot|numpaddel|numpadins|numpadclear|numpadup|numpaddown|numpadleft|numpadright|numpadhome|numpadend|numpadpgup|numpadpgdn|numpadenter|f1|f2|f3|f4|f5|f6|f7|f8|f9|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f20|f21|f22|f23|f24|browser_back|browser_forward|browser_refresh|browser_stop|browser_search|browser_favorites|browser_home|volume_mute|volume_down|volume_up|media_next|media_prev|media_stop|media_play_pause|launch_mail|launch_media|launch_app1|launch_app2)\\\\b\",caseInsensitive:!0},{token:\"variable.parameter\",regex:\"(?:\\\\b|^)(?:pixel|mouse|screen|relative|rgb|ltrim|rtrim|join|low|belownormal|normal|abovenormal|high|realtime|ahk_id|ahk_pid|ahk_class|ahk_group|between|contains|in|is|integer|float|integerfast|floatfast|number|digit|xdigit|alpha|upper|lower|alnum|time|date|not|or|and|alwaysontop|topmost|top|bottom|transparent|transcolor|redraw|region|id|idlast|processname|minmax|controllist|count|list|capacity|statuscd|eject|lock|unlock|label|filesystem|label|setlabel|serial|type|status|static|seconds|minutes|hours|days|read|parse|logoff|close|error|single|tray|add|rename|check|uncheck|togglecheck|enable|disable|toggleenable|default|nodefault|standard|nostandard|color|delete|deleteall|icon|noicon|tip|click|show|mainwindow|nomainwindow|useerrorlevel|text|picture|pic|groupbox|button|checkbox|radio|dropdownlist|ddl|combobox|listbox|listview|datetime|monthcal|updown|slider|tab|tab2|statusbar|treeview|iconsmall|tile|report|sortdesc|nosort|nosorthdr|grid|hdr|autosize|range|xm|ym|ys|xs|xp|yp|font|resize|owner|submit|nohide|minimize|maximize|restore|noactivate|na|cancel|destroy|center|margin|maxsize|minsize|owndialogs|guiescape|guiclose|guisize|guicontextmenu|guidropfiles|tabstop|section|altsubmit|wrap|hscroll|vscroll|border|top|bottom|buttons|expand|first|imagelist|lines|wantctrla|wantf2|vis|visfirst|number|uppercase|lowercase|limit|password|multi|wantreturn|group|background|bold|italic|strike|underline|norm|backgroundtrans|theme|caption|delimiter|minimizebox|maximizebox|sysmenu|toolwindow|flash|style|exstyle|check3|checked|checkedgray|readonly|password|hidden|left|right|center|notab|section|move|focus|hide|choose|choosestring|text|pos|enabled|disabled|visible|lastfound|lastfoundexist|alttab|shiftalttab|alttabmenu|alttabandmenu|alttabmenudismiss|notimers|interrupt|priority|waitclose|blind|raw|unicode|deref|pow|bitnot|bitand|bitor|bitxor|bitshiftleft|bitshiftright|yes|no|ok|cancel|abort|retry|ignore|tryagain|on|off|all|hkey_local_machine|hkey_users|hkey_current_user|hkey_classes_root|hkey_current_config|hklm|hku|hkcu|hkcr|hkcc|reg_sz|reg_expand_sz|reg_multi_sz|reg_dword|reg_qword|reg_binary|reg_link|reg_resource_list|reg_full_resource_descriptor|reg_resource_requirements_list|reg_dword_big_endian)\\\\b\",caseInsensitive:!0},{keywordMap:{\"constant.language\":e},regex:\"\\\\w+\\\\b\"},{keywordMap:{\"variable.function\":t},regex:\"@\\\\w+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"keyword.operator.ahk\",regex:\"=|==|<>|:=|<|>|\\\\*|\\\\/|\\\\+|:|\\\\?|\\\\-\"},{token:\"punctuation.ahk\",regex:\"#|`|::|,|\\\\{|\\\\}|\\\\(|\\\\)|\\\\%\"},{token:[\"punctuation.quote.double\",\"string.quoted.ahk\",\"punctuation.quote.double\"],regex:'(\")((?:[^\"]|\"\")*)(\")'},{token:[\"label.ahk\",\"punctuation.definition.label.ahk\"],regex:\"^([^: ]+)(:)(?!:)\"}]},this.normalizeRules()};s.metaData={name:\"AutoHotKey\",scopeName:\"source.ahk\",fileTypes:[\"ahk\"],foldingStartMarker:\"^\\\\s*/\\\\*|^(?![^{]*?;|[^{]*?/\\\\*(?!.*?\\\\*/.*?\\\\{)).*?\\\\{\\\\s*($|;|/\\\\*(?!.*?\\\\*/.*\\\\S))\",foldingStopMarker:\"^\\\\s*\\\\*/|^\\\\s*\\\\}\"},r.inherits(s,i),t.AutoHotKeyHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/autohotkey\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/autohotkey_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./autohotkey_highlight_rules\").AutoHotKeyHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\";\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/autohotkey\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-batchfile.js",
    "content": "ace.define(\"ace/mode/batchfile_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"keyword.command.dosbatch\",regex:\"\\\\b(?:append|assoc|at|attrib|break|cacls|cd|chcp|chdir|chkdsk|chkntfs|cls|cmd|color|comp|compact|convert|copy|date|del|dir|diskcomp|diskcopy|doskey|echo|endlocal|erase|fc|find|findstr|format|ftype|graftabl|help|keyb|label|md|mkdir|mode|more|move|path|pause|popd|print|prompt|pushd|rd|recover|ren|rename|replace|restore|rmdir|set|setlocal|shift|sort|start|subst|time|title|tree|type|ver|verify|vol|xcopy)\\\\b\",caseInsensitive:!0},{token:\"keyword.control.statement.dosbatch\",regex:\"\\\\b(?:goto|call|exit)\\\\b\",caseInsensitive:!0},{token:\"keyword.control.conditional.if.dosbatch\",regex:\"\\\\bif\\\\s+not\\\\s+(?:exist|defined|errorlevel|cmdextversion)\\\\b\",caseInsensitive:!0},{token:\"keyword.control.conditional.dosbatch\",regex:\"\\\\b(?:if|else)\\\\b\",caseInsensitive:!0},{token:\"keyword.control.repeat.dosbatch\",regex:\"\\\\bfor\\\\b\",caseInsensitive:!0},{token:\"keyword.operator.dosbatch\",regex:\"\\\\b(?:EQU|NEQ|LSS|LEQ|GTR|GEQ)\\\\b\"},{token:[\"doc.comment\",\"comment\"],regex:\"(?:^|\\\\b)(rem)($|\\\\s.*$)\",caseInsensitive:!0},{token:\"comment.line.colons.dosbatch\",regex:\"::.*$\"},{include:\"variable\"},{token:\"punctuation.definition.string.begin.shell\",regex:'\"',push:[{token:\"punctuation.definition.string.end.shell\",regex:'\"',next:\"pop\"},{include:\"variable\"},{defaultToken:\"string.quoted.double.dosbatch\"}]},{token:\"keyword.operator.pipe.dosbatch\",regex:\"[|]\"},{token:\"keyword.operator.redirect.shell\",regex:\"&>|\\\\d*>&\\\\d*|\\\\d*(?:>>|>|<)|\\\\d*<&|\\\\d*<>\"}],variable:[{token:\"constant.numeric\",regex:\"%%\\\\w+|%[*\\\\d]|%\\\\w+%\"},{token:\"constant.numeric\",regex:\"%~\\\\d+\"},{token:[\"markup.list\",\"constant.other\",\"markup.list\"],regex:\"(%)(\\\\w+)(%?)\"}]},this.normalizeRules()};s.metaData={name:\"Batch File\",scopeName:\"source.dosbatch\",fileTypes:[\"bat\"]},r.inherits(s,i),t.BatchFileHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/batchfile\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/batchfile_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./batchfile_highlight_rules\").BatchFileHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"::\",this.blockComment=\"\",this.$id=\"ace/mode/batchfile\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-bro.js",
    "content": "ace.define(\"ace/mode/bro_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"punctuation.definition.comment.bro\",regex:/#/,push:[{token:\"comment.line.number-sign.bro\",regex:/$/,next:\"pop\"},{defaultToken:\"comment.line.number-sign.bro\"}]},{token:\"keyword.control.bro\",regex:/\\b(?:break|case|continue|else|for|if|return|switch|next|when|timeout|schedule)\\b/},{token:[\"meta.function.bro\",\"meta.function.bro\",\"storage.type.bro\",\"meta.function.bro\",\"entity.name.function.bro\",\"meta.function.bro\"],regex:/^(\\s*)(?:function|hook|event)(\\s*)(.*)(\\s*\\()(.*)(\\).*$)/},{token:\"storage.type.bro\",regex:/\\b(?:bool|enum|double|int|count|port|addr|subnet|any|file|interval|time|string|table|vector|set|record|pattern|hook)\\b/},{token:\"storage.modifier.bro\",regex:/\\b(?:global|const|redef|local|&(?:optional|rotate_interval|rotate_size|add_func|del_func|expire_func|expire_create|expire_read|expire_write|persistent|synchronized|encrypt|mergeable|priority|group|type_column|log|error_handler))\\b/},{token:\"keyword.operator.bro\",regex:/\\s*(?:\\||&&|(?:>|<|!)=?|==)\\s*|\\b!?in\\b/},{token:\"constant.language.bro\",regex:/\\b(?:T|F)\\b/},{token:\"constant.numeric.bro\",regex:/\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\.?[0-9]*|\\.[0-9]+)(?:(?:e|E)(?:\\+|-)?[0-9]+)?)(?:\\/(?:tcp|udp|icmp)|\\s*(?:u?sec|min|hr|day)s?)?\\b/},{token:\"punctuation.definition.string.begin.bro\",regex:/\"/,push:[{token:\"punctuation.definition.string.end.bro\",regex:/\"/,next:\"pop\"},{include:\"#string_escaped_char\"},{include:\"#string_placeholder\"},{defaultToken:\"string.quoted.double.bro\"}]},{token:\"punctuation.definition.string.begin.bro\",regex:/\\//,push:[{token:\"punctuation.definition.string.end.bro\",regex:/\\//,next:\"pop\"},{include:\"#string_escaped_char\"},{include:\"#string_placeholder\"},{defaultToken:\"string.quoted.regex.bro\"}]},{token:[\"meta.preprocessor.bro.load\",\"keyword.other.special-method.bro\"],regex:/^(\\s*)(\\@load(?:-sigs)?)\\b/,push:[{token:[],regex:/(?=\\#)|$/,next:\"pop\"},{defaultToken:\"meta.preprocessor.bro.load\"}]},{token:[\"meta.preprocessor.bro.if\",\"keyword.other.special-method.bro\",\"meta.preprocessor.bro.if\"],regex:/^(\\s*)(\\@endif|\\@if(?:n?def)?)(.*$)/,push:[{token:[],regex:/$/,next:\"pop\"},{defaultToken:\"meta.preprocessor.bro.if\"}]}],\"#disabled\":[{token:\"text\",regex:/^\\s*\\@if(?:n?def)?\\b.*$/,push:[{token:\"text\",regex:/^\\s*\\@endif\\b.*$/,next:\"pop\"},{include:\"#disabled\"},{include:\"#pragma-mark\"}],comment:\"eat nested preprocessor ifdefs\"}],\"#preprocessor-rule-other\":[{token:[\"text\",\"meta.preprocessor.bro\",\"meta.preprocessor.bro\",\"text\"],regex:/^(\\s*)(@if)((?:n?def)?)\\b(.*?)(?:(?=)|$)/,push:[{token:[\"text\",\"meta.preprocessor.bro\",\"text\"],regex:/^(\\s*)(@endif)\\b(.*$)/,next:\"pop\"},{include:\"$base\"}]}],\"#string_escaped_char\":[{token:\"constant.character.escape.bro\",regex:/\\\\(?:\\\\|[abefnprtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-fA-F0-9]{,2})/},{token:\"invalid.illegal.unknown-escape.bro\",regex:/\\\\./}],\"#string_placeholder\":[{token:\"constant.other.placeholder.bro\",regex:/%(?:\\d+\\$)?[#0\\- +']*[,;:_]?(?:-?\\d+|\\*(?:-?\\d+\\$)?)?(?:\\.(?:-?\\d+|\\*(?:-?\\d+\\$)?)?)?(?:hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?[diouxXDOUeEfFgGaACcSspn%]/},{token:\"invalid.illegal.placeholder.bro\",regex:/%/}]},this.normalizeRules()};s.metaData={fileTypes:[\"bro\"],foldingStartMarker:\"^(\\\\@if(n?def)?)\",foldingStopMarker:\"^\\\\@endif\",keyEquivalent:\"@B\",name:\"Bro\",scopeName:\"source.bro\"},r.inherits(s,i),t.BroHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/bro\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/bro_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./bro_highlight_rules\").BroHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.$id=\"ace/mode/bro\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-c9search.js",
    "content": "ace.define(\"ace/mode/c9search_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function o(e,t){try{return new RegExp(e,t)}catch(n){}}var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){this.$rules={start:[{tokenNames:[\"c9searchresults.constant.numeric\",\"c9searchresults.text\",\"c9searchresults.text\",\"c9searchresults.keyword\"],regex:/(^\\s+[0-9]+)(:)(\\d*\\s?)([^\\r\\n]+)/,onMatch:function(e,t,n){var r=this.splitRegex.exec(e),i=this.tokenNames,s=[{type:i[0],value:r[1]},{type:i[1],value:r[2]}];r[3]&&(r[3]==\" \"?s[1]={type:i[1],value:r[2]+\" \"}:s.push({type:i[1],value:r[3]}));var o=n[1],u=r[4],a,f=0;if(o&&o.exec){o.lastIndex=0;while(a=o.exec(u)){var l=u.substring(f,a.index);f=o.lastIndex,l&&s.push({type:i[2],value:l});if(a[0])s.push({type:i[3],value:a[0]});else if(!l)break}}return f<u.length&&s.push({type:i[2],value:u.substr(f)}),s}},{regex:\"^Searching for [^\\\\r\\\\n]*$\",onMatch:function(e,t,n){var r=e.split(\"\u0001\");if(r.length<3)return\"text\";var s,u,a,f=0,l=[{value:r[f++]+\"'\",type:\"text\"},{value:u=r[f++],type:\"text\"},{value:\"'\"+r[f++],type:\"text\"}];r[2]!==\" in\"&&(a=r[f],l.push({value:\"'\"+r[f++]+\"'\",type:\"text\"},{value:r[f++],type:\"text\"})),l.push({value:\" \"+r[f++]+\" \",type:\"text\"}),r[f+1]?(s=r[f+1],l.push({value:\"(\"+r[f+1]+\")\",type:\"text\"}),f+=1):f-=1;while(f++<r.length)r[f]&&l.push({value:r[f],type:\"text\"});a&&(u=a,s=\"\"),u&&(/regex/.test(s)||(u=i.escapeRegExp(u)),/whole/.test(s)&&(u=\"\\\\b\"+u+\"\\\\b\"));var c=u&&o(\"(\"+u+\")\",/ sensitive/.test(s)?\"g\":\"ig\");return c&&(n[0]=t,n[1]=c),l}},{regex:\"^(?=Found \\\\d+ matches)\",token:\"text\",next:\"numbers\"},{token:\"string\",regex:\"^\\\\S:?[^:]+\",next:\"numbers\"}],numbers:[{regex:\"\\\\d+\",token:\"constant.numeric\"},{regex:\"$\",token:\"text\",next:\"start\"}]},this.normalizeRules()};r.inherits(u,s),t.C9SearchHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/c9search\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/^(\\S.*:|Searching for.*)$/,this.foldingStopMarker=/^(\\s+|Found.*)$/,this.getFoldWidgetRange=function(e,t,n){var r=e.doc.getAllLines(n),s=r[n],o=/^(Found.*|Searching for.*)$/,u=/^(\\S.*:|\\s*)$/,a=o.test(s)?o:u,f=n,l=n;if(this.foldingStartMarker.test(s)){for(var c=n+1,h=e.getLength();c<h;c++)if(a.test(r[c]))break;l=c}else if(this.foldingStopMarker.test(s)){for(var c=n-1;c>=0;c--){s=r[c];if(a.test(s))break}f=c}if(f!=l){var p=s.length;return a===o&&(p=s.search(/\\(Found[^)]+\\)$|$/)),new i(f,p,l,0)}}}.call(o.prototype)}),ace.define(\"ace/mode/c9search\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c9search_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/c9search\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./c9search_highlight_rules\").C9SearchHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./folding/c9search\").FoldMode,a=function(){this.HighlightRules=s,this.$outdent=new o,this.foldingRules=new u};r.inherits(a,i),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/c9search\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict/mode-c_cpp.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.cFunctions=\"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\",u=function(){var e=\"break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using\",t=\"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t\",n=\"const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\",r=\"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eqconst_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\",s=\"NULL|true|false|TRUE|FALSE|nullptr\",u=this.$keywords=this.createKeywordMapper({\"keyword.control\":e,\"storage.type\":t,\"storage.modifier\":n,\"keyword.operator\":r,\"variable.language\":\"this\",\"constant.language\":s},\"identifier\"),a=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\",f=/\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source;this.$rules={start:[{token:\"comment\",regex:\"//$\",next:\"start\"},{token:\"comment\",regex:\"//\",next:\"singleLineComment\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:\"'(?:\"+f+\"|.)?'\"},{token:\"string.start\",regex:'\"',stateName:\"qqstring\",next:[{token:\"string\",regex:/\\\\\\s*$/,next:\"qqstring\"},{token:\"constant.language.escape\",regex:f},{token:\"constant.language.escape\",regex:/%[^'\"\\\\]/},{token:\"string.end\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'R\"\\\\(',stateName:\"rawString\",next:[{token:\"string.end\",regex:'\\\\)\"',next:\"start\"},{defaultToken:\"string\"}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"keyword\",regex:\"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",next:\"directive\"},{token:\"keyword\",regex:\"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"},{token:\"support.function.C99.c\",regex:o},{token:u,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\"},{token:\"keyword.operator\",regex:/--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],singleLineComment:[{token:\"comment\",regex:/\\\\$/,next:\"singleLineComment\"},{token:\"comment\",regex:/$/,next:\"start\"},{defaultToken:\"comment\"}],directive:[{token:\"constant.other.multiline\",regex:/\\\\/},{token:\"constant.other.multiline\",regex:/.*\\\\/},{token:\"constant.other\",regex:\"\\\\s*<.+?>\",next:\"start\"},{token:\"constant.other\",regex:'\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',next:\"start\"},{token:\"constant.other\",regex:\"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",next:\"start\"},{token:\"constant.other\",regex:/[^\\\\\\/]+/,next:\"start\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/c_cpp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c_cpp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./c_cpp_highlight_rules\").c_cppHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/c_cpp\"}.call(l.prototype),t.Mode=l})"
  },
  {
    "path": "lib/src-min-noconflict/mode-cirru.js",
    "content": "ace.define(\"ace/mode/cirru_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"constant.numeric\",regex:/[\\d\\.]+/},{token:\"comment.line.double-dash\",regex:/--/,next:\"comment\"},{token:\"storage.modifier\",regex:/\\(/},{token:\"storage.modifier\",regex:/,/,next:\"line\"},{token:\"support.function\",regex:/[^\\(\\)\"\\s]+/,next:\"line\"},{token:\"string.quoted.double\",regex:/\"/,next:\"string\"},{token:\"storage.modifier\",regex:/\\)/}],comment:[{token:\"comment.line.double-dash\",regex:/ +[^\\n]+/,next:\"start\"}],string:[{token:\"string.quoted.double\",regex:/\"/,next:\"line\"},{token:\"constant.character.escape\",regex:/\\\\/,next:\"escape\"},{token:\"string.quoted.double\",regex:/[^\\\\\"]+/}],escape:[{token:\"constant.character.escape\",regex:/./,next:\"string\"}],line:[{token:\"constant.numeric\",regex:/[\\d\\.]+/},{token:\"markup.raw\",regex:/^\\s*/,next:\"start\"},{token:\"storage.modifier\",regex:/\\$/,next:\"start\"},{token:\"variable.parameter\",regex:/[^\\(\\)\"\\s]+/},{token:\"storage.modifier\",regex:/\\(/,next:\"start\"},{token:\"storage.modifier\",regex:/\\)/},{token:\"markup.raw\",regex:/^ */,next:\"start\"},{token:\"string.quoted.double\",regex:/\"/,next:\"string\"}]}};r.inherits(s,i),t.CirruHighlightRules=s}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/cirru\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/cirru_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./cirru_highlight_rules\").CirruHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.$id=\"ace/mode/cirru\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-clojure.js",
    "content": "ace.define(\"ace/mode/clojure_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"* *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* *command-line-args* *compile-files* *compile-path* *e *err* *file* *flush-on-newline* *in* *macro-meta* *math-context* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-readably* *read-eval* *source-path* *use-context-classloader* *warn-on-reflection* + - -> ->> .. / < <= = == > &gt; >= &gt;= accessor aclone add-classpath add-watch agent agent-errors aget alength alias all-ns alter alter-meta! alter-var-root amap ancestors and apply areduce array-map aset aset-boolean aset-byte aset-char aset-double aset-float aset-int aset-long aset-short assert assoc assoc! assoc-in associative? atom await await-for await1 bases bean bigdec bigint binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array booleans bound-fn bound-fn* butlast byte byte-array bytes cast char char-array char-escape-string char-name-string char? chars chunk chunk-append chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? class class? clear-agent-errors clojure-version coll? comment commute comp comparator compare compare-and-set! compile complement concat cond condp conj conj! cons constantly construct-proxy contains? count counted? create-ns create-struct cycle dec decimal? declare definline defmacro defmethod defmulti defn defn- defonce defstruct delay delay? deliver deref derive descendants destructure disj disj! dissoc dissoc! distinct distinct? doall doc dorun doseq dosync dotimes doto double double-array doubles drop drop-last drop-while empty empty? ensure enumeration-seq eval even? every? false? ffirst file-seq filter find find-doc find-ns find-var first float float-array float? floats flush fn fn? fnext for force format future future-call future-cancel future-cancelled? future-done? future? gen-class gen-interface gensym get get-in get-method get-proxy-class get-thread-bindings get-validator hash hash-map hash-set identical? identity if-let if-not ifn? import in-ns inc init-proxy instance? int int-array integer? interleave intern interpose into into-array ints io! isa? iterate iterator-seq juxt key keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list* list? load load-file load-reader load-string loaded-libs locking long long-array longs loop macroexpand macroexpand-1 make-array make-hierarchy map map? mapcat max max-key memfn memoize merge merge-with meta method-sig methods min min-key mod name namespace neg? newline next nfirst nil? nnext not not-any? not-empty not-every? not= ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth nthnext num number? odd? or parents partial partition pcalls peek persistent! pmap pop pop! pop-thread-bindings pos? pr pr-str prefer-method prefers primitives-classnames print print-ctor print-doc print-dup print-method print-namespace-doc print-simple print-special-doc print-str printf println println-str prn prn-str promise proxy proxy-call-with-super proxy-mappings proxy-name proxy-super push-thread-bindings pvalues quot rand rand-int range ratio? rational? rationalize re-find re-groups re-matcher re-matches re-pattern re-seq read read-line read-string reduce ref ref-history-count ref-max-history ref-min-history ref-set refer refer-clojure release-pending-sends rem remove remove-method remove-ns remove-watch repeat repeatedly replace replicate require reset! reset-meta! resolve rest resultset-seq reverse reversible? rseq rsubseq second select-keys send send-off seq seq? seque sequence sequential? set set-validator! set? short short-array shorts shutdown-agents slurp some sort sort-by sorted-map sorted-map-by sorted-set sorted-set-by sorted? special-form-anchor special-symbol? split-at split-with str stream? string? struct struct-map subs subseq subvec supers swap! symbol symbol? sync syntax-symbol-anchor take take-last take-nth take-while test the-ns time to-array to-array-2d trampoline transient tree-seq true? type unchecked-add unchecked-dec unchecked-divide unchecked-inc unchecked-multiply unchecked-negate unchecked-remainder unchecked-subtract underive unquote unquote-splicing update-in update-proxy use val vals var-get var-set var? vary-meta vec vector vector? when when-first when-let when-not while with-bindings with-bindings* with-in-str with-loading-context with-local-vars with-meta with-open with-out-str with-precision xml-seq zero? zipmap\",t=\"throw try var def do fn if let loop monitor-enter monitor-exit new quote recur set!\",n=\"true false nil\",r=this.createKeywordMapper({keyword:t,\"constant.language\":n,\"support.function\":e},\"identifier\",!1,\" \");this.$rules={start:[{token:\"comment\",regex:\";.*$\"},{token:\"keyword\",regex:\"[\\\\(|\\\\)]\"},{token:\"keyword\",regex:\"[\\\\'\\\\(]\"},{token:\"keyword\",regex:\"[\\\\[|\\\\]]\"},{token:\"keyword\",regex:\"[\\\\{|\\\\}|\\\\#\\\\{|\\\\#\\\\}]\"},{token:\"keyword\",regex:\"[\\\\&]\"},{token:\"keyword\",regex:\"[\\\\#\\\\^\\\\{]\"},{token:\"keyword\",regex:\"[\\\\%]\"},{token:\"keyword\",regex:\"[@]\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language\",regex:\"[!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+||=|!=|<=|>=|<>|<|>|!|&&]\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$\\\\-]*\\\\b\"},{token:\"string\",regex:'\"',next:\"string\"},{token:\"constant\",regex:/:[^()\\[\\]{}'\"\\^%`,;\\s]+/},{token:\"string.regexp\",regex:'/#\"(?:\\\\.|(?:\\\\\")|[^\"\"\\n])*\"/g'}],string:[{token:\"constant.language.escape\",regex:\"\\\\\\\\.|\\\\\\\\$\"},{token:\"string\",regex:'[^\"\\\\\\\\]+'},{token:\"string\",regex:'\"',next:\"start\"}]}};r.inherits(s,i),t.ClojureHighlightRules=s}),ace.define(\"ace/mode/matching_parens_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\)/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\))/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\\s+)/);return t?t[1]:\"\"}}).call(i.prototype),t.MatchingParensOutdent=i}),ace.define(\"ace/mode/clojure\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/clojure_highlight_rules\",\"ace/mode/matching_parens_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./clojure_highlight_rules\").ClojureHighlightRules,o=e(\"./matching_parens_outdent\").MatchingParensOutdent,u=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\";\",this.minorIndentFunctions=[\"defn\",\"defn-\",\"defmacro\",\"def\",\"deftest\",\"testing\"],this.$toIndent=function(e){return e.split(\"\").map(function(e){return/\\s/.exec(e)?e:\" \"}).join(\"\")},this.$calculateIndent=function(e,t){var n=this.$getIndent(e),r=0,i,s;for(var o=e.length-1;o>=0;o--){s=e[o],s===\"(\"?(r--,i=!0):s===\"(\"||s===\"[\"||s===\"{\"?(r--,i=!1):(s===\")\"||s===\"]\"||s===\"}\")&&r++;if(r<0)break}if(!(r<0&&i))return r<0&&!i?this.$toIndent(e.substring(0,o+1)):r>0?(n=n.substring(0,n.length-t.length),n):n;o+=1;var u=o,a=\"\";for(;;){s=e[o];if(s===\" \"||s===\"\t\")return this.minorIndentFunctions.indexOf(a)!==-1?this.$toIndent(e.substring(0,u-1)+t):this.$toIndent(e.substring(0,o+1));if(s===undefined)return this.$toIndent(e.substring(0,u-1)+t);a+=e[o],o++}},this.getNextLineIndent=function(e,t,n){return this.$calculateIndent(t,n)},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/clojure\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-cobol.js",
    "content": "ace.define(\"ace/mode/cobol_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"ACCEPT|MERGE|SUM|ADD||MESSAGE|TABLE|ADVANCING|MODE|TAPE|AFTER|MULTIPLY|TEST|ALL|NEGATIVE|TEXT|ALPHABET|NEXT|THAN|ALSO|NO|THEN|ALTERNATE|NOT|THROUGH|AND|NUMBER|THRU|ANY|OCCURS|TIME|ARE|OF|TO|AREA|OFF|TOP||ASCENDING|OMITTED|TRUE|ASSIGN|ON|TYPE|AT|OPEN|UNIT|AUTHOR|OR|UNTIL|BEFORE|OTHER|UP|BLANK|OUTPUT|USE|BLOCK|PAGE|USING|BOTTOM|PERFORM|VALUE|BY|PIC|VALUES|CALL|PICTURE|WHEN|CANCEL|PLUS|WITH|CD|POINTER|WRITE|CHARACTER|POSITION||ZERO|CLOSE|POSITIVE|ZEROS|COLUMN|PROCEDURE|ZEROES|COMMA|PROGRAM|COMMON|PROGRAM-ID|COMMUNICATION|QUOTE|COMP|RANDOM|COMPUTE|READ|CONTAINS|RECEIVE|CONFIGURATION|RECORD|CONTINUE|REDEFINES|CONTROL|REFERENCE|COPY|REMAINDER|COUNT|REPLACE|DATA|REPORT|DATE|RESERVE|DAY|RESET|DELETE|RETURN|DESTINATION|REWIND|DISABLE|REWRITE|DISPLAY|RIGHT|DIVIDE|RUN|DOWN|SAME|ELSE|SEARCH|ENABLE|SECTION|END|SELECT|ENVIRONMENT|SENTENCE|EQUAL|SET|ERROR|SIGN|EXIT|SEQUENTIAL|EXTERNAL|SIZE|FLASE|SORT|FILE|SOURCE|LENGTH|SPACE|LESS|STANDARD|LIMIT|START|LINE|STOP|LOCK|STRING|LOW-VALUE|SUBTRACT\",t=\"true|false|null\",n=\"count|min|max|avg|sum|rank|now|coalesce|main\",r=this.createKeywordMapper({\"support.function\":n,keyword:e,\"constant.language\":t},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\*.*$\"},{token:\"string\",regex:'\".*?\"'},{token:\"string\",regex:\"'.*?'\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"text\",regex:\"\\\\s+\"}]}};r.inherits(s,i),t.CobolHighlightRules=s}),ace.define(\"ace/mode/cobol\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/cobol_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./cobol_highlight_rules\").CobolHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart=\"*\",this.$id=\"ace/mode/cobol\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict/mode-coffee.js",
    "content": "ace.define(\"ace/mode/coffee_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function s(){var e=\"[$A-Za-z_\\\\x7f-\\\\uffff][$\\\\w\\\\x7f-\\\\uffff]*\",t=\"this|throw|then|try|typeof|super|switch|return|break|by|continue|catch|class|in|instanceof|is|isnt|if|else|extends|for|own|finally|function|while|when|new|no|not|delete|debugger|do|loop|of|off|or|on|unless|until|and|yes\",n=\"true|false|null|undefined|NaN|Infinity\",r=\"case|const|default|function|var|void|with|enum|export|implements|interface|let|package|private|protected|public|static|yield\",i=\"Array|Boolean|Date|Function|Number|Object|RegExp|ReferenceError|String|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray\",s=\"Math|JSON|isNaN|isFinite|parseInt|parseFloat|encodeURI|encodeURIComponent|decodeURI|decodeURIComponent|String|\",o=\"window|arguments|prototype|document\",u=this.createKeywordMapper({keyword:t,\"constant.language\":n,\"invalid.illegal\":r,\"language.support.class\":i,\"language.support.function\":s,\"variable.language\":o},\"identifier\"),a={token:[\"paren.lparen\",\"variable.parameter\",\"paren.rparen\",\"text\",\"storage.type\"],regex:/(?:(\\()((?:\"[^\")]*?\"|'[^')]*?'|\\/[^\\/)]*?\\/|[^()\"'\\/])*?)(\\))(\\s*))?([\\-=]>)/.source},f=/\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)/;this.$rules={start:[{token:\"constant.numeric\",regex:\"(?:0x[\\\\da-fA-F]+|(?:\\\\d+(?:\\\\.\\\\d+)?|\\\\.\\\\d+)(?:[eE][+-]?\\\\d+)?)\"},{stateName:\"qdoc\",token:\"string\",regex:\"'''\",next:[{token:\"string\",regex:\"'''\",next:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{stateName:\"qqdoc\",token:\"string\",regex:'\"\"\"',next:[{token:\"string\",regex:'\"\"\"',next:\"start\"},{token:\"paren.string\",regex:\"#{\",push:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{stateName:\"qstring\",token:\"string\",regex:\"'\",next:[{token:\"string\",regex:\"'\",next:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{stateName:\"qqstring\",token:\"string.start\",regex:'\"',next:[{token:\"string.end\",regex:'\"',next:\"start\"},{token:\"paren.string\",regex:\"#{\",push:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{stateName:\"js\",token:\"string\",regex:\"`\",next:[{token:\"string\",regex:\"`\",next:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{regex:\"[{}]\",onMatch:function(e,t,n){this.next=\"\";if(e==\"{\"&&n.length)return n.unshift(\"start\",t),\"paren\";if(e==\"}\"&&n.length){n.shift(),this.next=n.shift()||\"\";if(this.next.indexOf(\"string\")!=-1)return\"paren.string\"}return\"paren\"}},{token:\"string.regex\",regex:\"///\",next:\"heregex\"},{token:\"string.regex\",regex:/(?:\\/(?![\\s=])[^[\\/\\n\\\\]*(?:(?:\\\\[\\s\\S]|\\[[^\\]\\n\\\\]*(?:\\\\[\\s\\S][^\\]\\n\\\\]*)*])[^[\\/\\n\\\\]*)*\\/)(?:[imgy]{0,4})(?!\\w)/},{token:\"comment\",regex:\"###(?!#)\",next:\"comment\"},{token:\"comment\",regex:\"#.*\"},{token:[\"punctuation.operator\",\"text\",\"identifier\"],regex:\"(\\\\.)(\\\\s*)(\"+r+\")\"},{token:\"punctuation.operator\",regex:\"\\\\.{1,3}\"},{token:[\"keyword\",\"text\",\"language.support.class\",\"text\",\"keyword\",\"text\",\"language.support.class\"],regex:\"(class)(\\\\s+)(\"+e+\")(?:(\\\\s+)(extends)(\\\\s+)(\"+e+\"))?\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\"].concat(a.token),regex:\"(\"+e+\")(\\\\s*)([=:])(\\\\s*)\"+a.regex},a,{token:\"variable\",regex:\"@(?:\"+e+\")?\"},{token:u,regex:e},{token:\"punctuation.operator\",regex:\"\\\\,|\\\\.\"},{token:\"storage.type\",regex:\"[\\\\-=]>\"},{token:\"keyword.operator\",regex:\"(?:[-+*/%<>&|^!?=]=|>>>=?|\\\\-\\\\-|\\\\+\\\\+|::|&&=|\\\\|\\\\|=|<<=|>>=|\\\\?\\\\.|\\\\.{2,3}|[!*+-=><])\"},{token:\"paren.lparen\",regex:\"[({[]\"},{token:\"paren.rparen\",regex:\"[\\\\]})]\"},{token:\"text\",regex:\"\\\\s+\"}],heregex:[{token:\"string.regex\",regex:\".*?///[imgy]{0,4}\",next:\"start\"},{token:\"comment.regex\",regex:\"\\\\s+(?:#.*)?\"},{token:\"string.regex\",regex:\"\\\\S+\"}],comment:[{token:\"comment\",regex:\"###\",next:\"start\"},{defaultToken:\"comment\"}]},this.normalizeRules()}var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules;r.inherits(s,i),t.CoffeeHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/coffee\",[\"require\",\"exports\",\"module\",\"ace/mode/coffee_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/coffee\",\"ace/range\",\"ace/mode/text\",\"ace/worker/worker_client\",\"ace/lib/oop\"],function(e,t,n){\"use strict\";function l(){this.HighlightRules=r,this.$outdent=new i,this.foldingRules=new s}var r=e(\"./coffee_highlight_rules\").CoffeeHighlightRules,i=e(\"./matching_brace_outdent\").MatchingBraceOutdent,s=e(\"./folding/coffee\").FoldMode,o=e(\"../range\").Range,u=e(\"./text\").Mode,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"../lib/oop\");f.inherits(l,u),function(){var e=/(?:[({[=:]|[-=]>|\\b(?:else|try|(?:swi|ca)tch(?:\\s+[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*)?|finally))\\s*$|^\\s*(else\\b\\s*)?(?:if|for|while|loop)\\b(?!.*\\bthen\\b)/;this.lineCommentStart=\"#\",this.blockComment={start:\"###\",end:\"###\"},this.getNextLineIndent=function(t,n,r){var i=this.$getIndent(n),s=this.getTokenizer().getLineTokens(n,t).tokens;return(!s.length||s[s.length-1].type!==\"comment\")&&t===\"start\"&&e.test(n)&&(i+=r),i},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/coffee_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/coffee\"}.call(l.prototype),t.Mode=l})"
  },
  {
    "path": "lib/src-min-noconflict/mode-coldfusion.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/coldfusion_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,s=e(\"./html_highlight_rules\").HtmlHighlightRules,o=function(){s.call(this),this.$rules.tag[2].token=function(e,t){var n=t.slice(0,2)==\"cf\"?\"keyword\":\"meta.tag\";return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",n+\".tag-name.xml\"]};var e=Object.keys(this.$rules).filter(function(e){return/^(js|css)-/.test(e)});this.embedRules({cfmlComment:[{regex:\"<!---\",token:\"comment.start\",push:\"cfmlComment\"},{regex:\"--->\",token:\"comment.end\",next:\"pop\"},{defaultToken:\"comment\"}]},\"\",[{regex:\"<!---\",token:\"comment.start\",push:\"cfmlComment\"}],[\"comment\",\"start\",\"tag_whitespace\",\"cdata\"].concat(e)),this.$rules.cfTag=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"pop\"}];var t={token:function(e,t){return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"keyword.tag-name.xml\"]},regex:\"(</?)(cf[-_a-zA-Z0-9:.]+)\",push:\"cfTag\"};e.forEach(function(e){this.$rules[e].unshift(t)},this),this.embedTagRules((new i({jsx:!1})).getRules(),\"cfjs-\",\"cfscript\"),this.normalizeRules()};r.inherits(o,s),t.ColdfusionHighlightRules=o}),ace.define(\"ace/mode/coldfusion\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/html\",\"ace/mode/coldfusion_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./html\").Mode,o=e(\"./coldfusion_highlight_rules\").ColdfusionHighlightRules,u=\"cfabort|cfapplication|cfargument|cfassociate|cfbreak|cfcache|cfcollection|cfcookie|cfdbinfo|cfdirectory|cfdump|cfelse|cfelseif|cferror|cfexchangecalendar|cfexchangeconnection|cfexchangecontact|cfexchangefilter|cfexchangetask|cfexit|cffeed|cffile|cfflush|cfftp|cfheader|cfhtmlhead|cfhttpparam|cfimage|cfimport|cfinclude|cfindex|cfinsert|cfinvokeargument|cflocation|cflog|cfmailparam|cfNTauthenticate|cfobject|cfobjectcache|cfparam|cfpdfformparam|cfprint|cfprocparam|cfprocresult|cfproperty|cfqueryparam|cfregistry|cfreportparam|cfrethrow|cfreturn|cfschedule|cfsearch|cfset|cfsetting|cfthrow|cfzipparam)\".split(\"|\"),a=function(){s.call(this),this.HighlightRules=o};r.inherits(a,s),function(){this.voidElements=r.mixin(i.arrayToMap(u),this.voidElements),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.$id=\"ace/mode/coldfusion\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict/mode-csharp.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/csharp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=this.createKeywordMapper({\"variable.language\":\"this\",keyword:\"abstract|event|new|struct|as|explicit|null|switch|base|extern|object|this|bool|false|operator|throw|break|finally|out|true|byte|fixed|override|try|case|float|params|typeof|catch|for|private|uint|char|foreach|protected|ulong|checked|goto|public|unchecked|class|if|readonly|unsafe|const|implicit|ref|ushort|continue|in|return|using|decimal|int|sbyte|virtual|default|interface|sealed|volatile|delegate|internal|short|void|do|is|sizeof|while|double|lock|stackalloc|else|long|static|enum|namespace|string|var|dynamic\",\"constant.language\":\"null|true|false\"},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:/'(?:.|\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n]))'/},{token:\"string\",start:'\"',end:'\"|$',next:[{token:\"constant.language.escape\",regex:/\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n])/},{token:\"invalid\",regex:/\\\\./}]},{token:\"string\",start:'@\"',end:'\"',next:[{token:\"constant.language.escape\",regex:'\"\"'}]},{token:\"string\",start:/\\$\"/,end:'\"|$',next:[{token:\"constant.language.escape\",regex:/\\\\(:?$)|{{/},{token:\"constant.language.escape\",regex:/\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n])/},{token:\"invalid\",regex:/\\\\./}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:e,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"keyword\",regex:\"^\\\\s*#(if|else|elif|endif|define|undef|warning|error|line|region|endregion|pragma)\"},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(o,s),t.CSharpHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/folding/csharp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./cstyle\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.usingRe=/^\\s*using \\S/,this.getFoldWidgetRangeBase=this.getFoldWidgetRange,this.getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=this.getFoldWidgetBase(e,t,n);if(!r){var i=e.getLine(n);if(/^\\s*#region\\b/.test(i))return\"start\";var s=this.usingRe;if(s.test(i)){var o=e.getLine(n-1),u=e.getLine(n+1);if(!s.test(o)&&s.test(u))return\"start\"}}return r},this.getFoldWidgetRange=function(e,t,n){var r=this.getFoldWidgetRangeBase(e,t,n);if(r)return r;var i=e.getLine(n);if(this.usingRe.test(i))return this.getUsingStatementBlock(e,i,n);if(/^\\s*#region\\b/.test(i))return this.getRegionBlock(e,i,n)},this.getUsingStatementBlock=function(e,t,n){var r=t.match(this.usingRe)[0].length-1,s=e.getLength(),o=n,u=n;while(++n<s){t=e.getLine(n);if(/^\\s*$/.test(t))continue;if(!this.usingRe.test(t))break;u=n}if(u>o){var a=e.getLine(u).length;return new i(o,r,u,a)}},this.getRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*#(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/csharp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/csharp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/csharp\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./csharp_highlight_rules\").CSharpHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/csharp\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[]\\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){return null},this.$id=\"ace/mode/csharp\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict/mode-css.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c})"
  },
  {
    "path": "lib/src-min-noconflict/mode-curly.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/curly_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=function(){i.call(this),this.$rules.start.unshift({token:\"variable\",regex:\"{{\",push:\"curly-start\"}),this.$rules[\"curly-start\"]=[{token:\"variable\",regex:\"}}\",next:\"pop\"}],this.normalizeRules()};r.inherits(s,i),t.CurlyHighlightRules=s}),ace.define(\"ace/mode/curly\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/html\",\"ace/mode/curly_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./matching_brace_outdent\").MatchingBraceOutdent,o=e(\"./folding/html\").FoldMode,u=e(\"./curly_highlight_rules\").CurlyHighlightRules,a=function(){i.call(this),this.HighlightRules=u,this.$outdent=new s,this.foldingRules=new o};r.inherits(a,i),function(){this.$id=\"ace/mode/curly\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict/mode-d.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/d_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"this|super|import|module|body|mixin|__traits|invariant|alias|asm|delete|typeof|typeid|sizeof|cast|new|in|is|typedef|__vector|__parameters\",t=\"break|case|continue|default|do|else|for|foreach|foreach_reverse|goto|if|return|switch|while|catch|try|throw|finally|version|assert|unittest|with\",n=\"auto|bool|char|dchar|wchar|byte|ubyte|float|double|real|cfloat|creal|cdouble|cent|ifloat|ireal|idouble|int|long|short|void|uint|ulong|ushort|ucent|function|delegate|string|wstring|dstring|size_t|ptrdiff_t|hash_t|Object\",r=\"abstract|align|debug|deprecated|export|extern|const|final|in|inout|out|ref|immutable|lazy|nothrow|override|package|pragma|private|protected|public|pure|scope|shared|__gshared|synchronized|static|volatile\",s=\"class|struct|union|template|interface|enum|macro\",o={token:\"constant.language.escape\",regex:\"\\\\\\\\(?:(?:x[0-9A-F]{2})|(?:[0-7]{1,3})|(?:['\\\"\\\\?0abfnrtv\\\\\\\\])|(?:u[0-9a-fA-F]{4})|(?:U[0-9a-fA-F]{8}))\"},u=\"null|true|false|__DATE__|__EOF__|__TIME__|__TIMESTAMP__|__VENDOR__|__VERSION__|__FILE__|__MODULE__|__LINE__|__FUNCTION__|__PRETTY_FUNCTION__\",a=\"/|/\\\\=|&|&\\\\=|&&|\\\\|\\\\|\\\\=|\\\\|\\\\||\\\\-|\\\\-\\\\=|\\\\-\\\\-|\\\\+|\\\\+\\\\=|\\\\+\\\\+|\\\\<|\\\\<\\\\=|\\\\<\\\\<|\\\\<\\\\<\\\\=|\\\\<\\\\>|\\\\<\\\\>\\\\=|\\\\>|\\\\>\\\\=|\\\\>\\\\>\\\\=|\\\\>\\\\>\\\\>\\\\=|\\\\>\\\\>|\\\\>\\\\>\\\\>|\\\\!|\\\\!\\\\=|\\\\!\\\\<\\\\>|\\\\!\\\\<\\\\>\\\\=|\\\\!\\\\<|\\\\!\\\\<\\\\=|\\\\!\\\\>|\\\\!\\\\>\\\\=|\\\\?|\\\\$|\\\\=|\\\\=\\\\=|\\\\*|\\\\*\\\\=|%|%\\\\=|\\\\^|\\\\^\\\\=|\\\\^\\\\^|\\\\^\\\\^\\\\=|~|~\\\\=|\\\\=\\\\>|#\",f=this.$keywords=this.createKeywordMapper({\"keyword.modifier\":r,\"keyword.control\":t,\"keyword.type\":n,keyword:e,\"keyword.storage\":s,punctation:\"\\\\.|\\\\,|;|\\\\.\\\\.|\\\\.\\\\.\\\\.\",\"keyword.operator\":a,\"constant.language\":u},\"identifier\"),l=\"[a-zA-Z_\\u00a1-\\uffff][a-zA-Z\\\\d_\\u00a1-\\uffff]*\\\\b\";this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"star-comment\"},{token:\"comment.shebang\",regex:\"^\\\\s*#!.*\"},{token:\"comment\",regex:\"\\\\/\\\\+\",next:\"plus-comment\"},{onMatch:function(e,t,n){return n.unshift(this.next,e.substr(2)),\"string\"},regex:'q\"(?:[\\\\[\\\\(\\\\{\\\\<]+)',next:\"operator-heredoc-string\"},{onMatch:function(e,t,n){return n.unshift(this.next,e.substr(2)),\"string\"},regex:'q\"(?:[a-zA-Z_]+)$',next:\"identifier-heredoc-string\"},{token:\"string\",regex:'[xr]?\"',next:\"quote-string\"},{token:\"string\",regex:\"[xr]?`\",next:\"backtick-string\"},{token:\"string\",regex:\"[xr]?['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?['][cdw]?\"},{token:[\"keyword\",\"text\",\"paren.lparen\"],regex:/(asm)(\\s*)({)/,next:\"d-asm\"},{token:[\"keyword\",\"text\",\"paren.lparen\",\"constant.language\"],regex:\"(__traits)(\\\\s*)(\\\\()(\"+l+\")\"},{token:[\"keyword\",\"text\",\"variable.module\"],regex:\"(import|module)(\\\\s+)((?:\"+l+\"\\\\.?)*)\"},{token:[\"keyword.storage\",\"text\",\"entity.name.type\"],regex:\"(\"+s+\")(\\\\s*)(\"+l+\")\"},{token:[\"keyword\",\"text\",\"variable.storage\",\"text\"],regex:\"(alias|typedef)(\\\\s*)(\"+l+\")(\\\\s*)\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F_]+(l|ul|u|f|F|L|U|UL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d[\\\\d_]*(?:(?:\\\\.[\\\\d_]*)?(?:[eE][+-]?[\\\\d_]+)?)?(l|ul|u|f|F|L|U|UL)?\\\\b\"},{token:\"entity.other.attribute-name\",regex:\"@\"+l},{token:f,regex:\"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\"},{token:\"keyword.operator\",regex:a},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.|\\\\:\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],\"star-comment\":[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],\"plus-comment\":[{token:\"comment\",regex:\"\\\\+\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],\"quote-string\":[o,{token:\"string\",regex:'\"[cdw]?',next:\"start\"},{defaultToken:\"string\"}],\"backtick-string\":[o,{token:\"string\",regex:\"`[cdw]?\",next:\"start\"},{defaultToken:\"string\"}],\"operator-heredoc-string\":[{onMatch:function(e,t,n){e=e.substring(e.length-2,e.length-1);var r={\">\":\"<\",\"]\":\"[\",\")\":\"(\",\"}\":\"{\"};return Object.keys(r).indexOf(e)!=-1&&(e=r[e]),e!=n[1]?\"string\":(n.shift(),n.shift(),\"string\")},regex:'(?:[\\\\]\\\\)}>]+)\"',next:\"start\"},{token:\"string\",regex:\"[^\\\\]\\\\)}>]+\"}],\"identifier-heredoc-string\":[{onMatch:function(e,t,n){return e=e.substring(0,e.length-1),e!=n[1]?\"string\":(n.shift(),n.shift(),\"string\")},regex:'^(?:[A-Za-z_][a-zA-Z0-9]+)\"',next:\"start\"},{token:\"string\",regex:\"[^\\\\]\\\\)}>]+\"}],\"d-asm\":[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"keyword.instruction\",regex:\"[a-zA-Z]+\",next:\"d-asm-instruction\"},{token:\"text\",regex:\"\\\\s+\"}],\"d-asm-instruction\":[{token:\"constant.language\",regex:/AL|AH|AX|EAX|BL|BH|BX|EBX|CL|CH|CX|ECX|DL|DH|DX|EDX|BP|EBP|SP|ESP|DI|EDI|SI|ESI/i},{token:\"identifier\",regex:\"[a-zA-Z]+\"},{token:\"string\",regex:'\".*\"'},{token:\"comment\",regex:\"//.*$\"},{token:\"constant.numeric\",regex:\"[0-9.xA-F]+\"},{token:\"punctuation.operator\",regex:\"\\\\,\"},{token:\"punctuation.operator\",regex:\";\",next:\"d-asm\"},{token:\"text\",regex:\"\\\\s+\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};o.metaData={comment:\"D language\",fileTypes:[\"d\",\"di\"],firstLineMatch:\"^#!.*\\\\b[glr]?dmd\\\\b.\",foldingStartMarker:\"(?x)/\\\\*\\\\*(?!\\\\*)|^(?![^{]*?//|[^{]*?/\\\\*(?!.*?\\\\*/.*?\\\\{)).*?\\\\{\\\\s*($|//|/\\\\*(?!.*?\\\\*/.*\\\\S))\",foldingStopMarker:\"(?<!\\\\*)\\\\*\\\\*/|^\\\\s*\\\\}\",keyEquivalent:\"^~D\",name:\"D\",scopeName:\"source.d\"},r.inherits(o,s),t.DHighlightRules=o}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/d\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/d_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./d_highlight_rules\").DHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/d\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-dart.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.cFunctions=\"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\",u=function(){var e=\"break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using\",t=\"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t\",n=\"const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\",r=\"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eqconst_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\",s=\"NULL|true|false|TRUE|FALSE|nullptr\",u=this.$keywords=this.createKeywordMapper({\"keyword.control\":e,\"storage.type\":t,\"storage.modifier\":n,\"keyword.operator\":r,\"variable.language\":\"this\",\"constant.language\":s},\"identifier\"),a=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\",f=/\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source;this.$rules={start:[{token:\"comment\",regex:\"//$\",next:\"start\"},{token:\"comment\",regex:\"//\",next:\"singleLineComment\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:\"'(?:\"+f+\"|.)?'\"},{token:\"string.start\",regex:'\"',stateName:\"qqstring\",next:[{token:\"string\",regex:/\\\\\\s*$/,next:\"qqstring\"},{token:\"constant.language.escape\",regex:f},{token:\"constant.language.escape\",regex:/%[^'\"\\\\]/},{token:\"string.end\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'R\"\\\\(',stateName:\"rawString\",next:[{token:\"string.end\",regex:'\\\\)\"',next:\"start\"},{defaultToken:\"string\"}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"keyword\",regex:\"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",next:\"directive\"},{token:\"keyword\",regex:\"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"},{token:\"support.function.C99.c\",regex:o},{token:u,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\"},{token:\"keyword.operator\",regex:/--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],singleLineComment:[{token:\"comment\",regex:/\\\\$/,next:\"singleLineComment\"},{token:\"comment\",regex:/$/,next:\"start\"},{defaultToken:\"comment\"}],directive:[{token:\"constant.other.multiline\",regex:/\\\\/},{token:\"constant.other.multiline\",regex:/.*\\\\/},{token:\"constant.other\",regex:\"\\\\s*<.+?>\",next:\"start\"},{token:\"constant.other\",regex:'\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',next:\"start\"},{token:\"constant.other\",regex:\"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",next:\"start\"},{token:\"constant.other\",regex:/[^\\\\\\/]+/,next:\"start\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/c_cpp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c_cpp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./c_cpp_highlight_rules\").c_cppHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/c_cpp\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/dart_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"true|false|null\",t=\"this|super\",n=\"try|catch|finally|throw|rethrow|assert|break|case|continue|default|do|else|for|if|in|return|switch|while|new|deferred|async|await\",r=\"abstract|class|extends|external|factory|implements|get|native|operator|set|typedef|with|enum\",s=\"static|final|const\",o=\"void|bool|num|int|double|dynamic|var|String\",u=this.createKeywordMapper({\"constant.language.dart\":e,\"variable.language.dart\":t,\"keyword.control.dart\":n,\"keyword.declaration.dart\":r,\"storage.modifier.dart\":s,\"storage.type.primitive.dart\":o},\"identifier\"),a={token:\"string\",regex:\".+\"};this.$rules={start:[{token:\"comment\",regex:/\\/\\/.*$/},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:/\\/\\*/,next:\"comment\"},{token:[\"meta.preprocessor.script.dart\"],regex:\"^(#!.*)$\"},{token:\"keyword.other.import.dart\",regex:\"(?:\\\\b)(?:library|import|export|part|of|show|hide)(?:\\\\b)\"},{token:[\"keyword.other.import.dart\",\"text\"],regex:\"(?:\\\\b)(prefix)(\\\\s*:)\"},{regex:\"\\\\bas\\\\b\",token:\"keyword.cast.dart\"},{regex:\"\\\\?|:\",token:\"keyword.control.ternary.dart\"},{regex:\"(?:\\\\b)(is\\\\!?)(?:\\\\b)\",token:[\"keyword.operator.dart\"]},{regex:\"(<<|>>>?|~|\\\\^|\\\\||&)\",token:[\"keyword.operator.bitwise.dart\"]},{regex:\"((?:&|\\\\^|\\\\||<<|>>>?)=)\",token:[\"keyword.operator.assignment.bitwise.dart\"]},{regex:\"(===?|!==?|<=?|>=?)\",token:[\"keyword.operator.comparison.dart\"]},{regex:\"((?:[+*/%-]|\\\\~)=)\",token:[\"keyword.operator.assignment.arithmetic.dart\"]},{regex:\"=\",token:\"keyword.operator.assignment.dart\"},{token:\"string\",regex:\"'''\",next:\"qdoc\"},{token:\"string\",regex:'\"\"\"',next:\"qqdoc\"},{token:\"string\",regex:\"'\",next:\"qstring\"},{token:\"string\",regex:'\"',next:\"qqstring\"},{regex:\"(\\\\-\\\\-|\\\\+\\\\+)\",token:[\"keyword.operator.increment-decrement.dart\"]},{regex:\"(\\\\-|\\\\+|\\\\*|\\\\/|\\\\~\\\\/|%)\",token:[\"keyword.operator.arithmetic.dart\"]},{regex:\"(!|&&|\\\\|\\\\|)\",token:[\"keyword.operator.logical.dart\"]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:u,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],qdoc:[{token:\"string\",regex:\".*?'''\",next:\"start\"},a],qqdoc:[{token:\"string\",regex:'.*?\"\"\"',next:\"start\"},a],qstring:[{token:\"string\",regex:\"[^\\\\\\\\']*(?:\\\\\\\\.[^\\\\\\\\']*)*'\",next:\"start\"},a],qqstring:[{token:\"string\",regex:'[^\\\\\\\\\"]*(?:\\\\\\\\.[^\\\\\\\\\"]*)*\"',next:\"start\"},a]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.DartHighlightRules=o}),ace.define(\"ace/mode/dart\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/c_cpp\",\"ace/mode/dart_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./c_cpp\").Mode,s=e(\"./dart_highlight_rules\").DartHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){i.call(this),this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/dart\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-diff.js",
    "content": "ace.define(\"ace/mode/diff_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{regex:\"^(?:\\\\*{15}|={67}|-{3}|\\\\+{3})$\",token:\"punctuation.definition.separator.diff\",name:\"keyword\"},{regex:\"^(@@)(\\\\s*.+?\\\\s*)(@@)(.*)$\",token:[\"constant\",\"constant.numeric\",\"constant\",\"comment.doc.tag\"]},{regex:\"^(\\\\d+)([,\\\\d]+)(a|d|c)(\\\\d+)([,\\\\d]+)(.*)$\",token:[\"constant.numeric\",\"punctuation.definition.range.diff\",\"constant.function\",\"constant.numeric\",\"punctuation.definition.range.diff\",\"invalid\"],name:\"meta.\"},{regex:\"^(\\\\-{3}|\\\\+{3}|\\\\*{3})( .+)$\",token:[\"constant.numeric\",\"meta.tag\"]},{regex:\"^([!+>])(.*?)(\\\\s*)$\",token:[\"support.constant\",\"text\",\"invalid\"]},{regex:\"^([<\\\\-])(.*?)(\\\\s*)$\",token:[\"support.function\",\"string\",\"invalid\"]},{regex:\"^(diff)(\\\\s+--\\\\w+)?(.+?)( .+)?$\",token:[\"variable\",\"variable\",\"keyword\",\"variable\"]},{regex:\"^Index.+$\",token:\"variable\"},{regex:\"^\\\\s+$\",token:\"text\"},{regex:\"\\\\s*$\",token:\"invalid\"},{defaultToken:\"invisible\",caseInsensitive:!0}]}};r.inherits(s,i),t.DiffHighlightRules=s}),ace.define(\"ace/mode/folding/diff\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(e,t){this.regExpList=e,this.flag=t,this.foldingStartMarker=RegExp(\"^(\"+e.join(\"|\")+\")\",this.flag)};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i={row:n,column:r.length},o=this.regExpList;for(var u=1;u<=o.length;u++){var a=RegExp(\"^(\"+o.slice(0,u).join(\"|\")+\")\",this.flag);if(a.test(r))break}for(var f=e.getLength();++n<f;){r=e.getLine(n);if(a.test(r))break}if(n==i.row+1)return;return s.fromPoints(i,{row:n-1,column:r.length})}}.call(o.prototype)}),ace.define(\"ace/mode/diff\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/diff_highlight_rules\",\"ace/mode/folding/diff\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./diff_highlight_rules\").DiffHighlightRules,o=e(\"./folding/diff\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o([\"diff\",\"index\",\"\\\\+{3}\",\"@@|\\\\*{5}\"],\"i\")};r.inherits(u,i),function(){this.$id=\"ace/mode/diff\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-django.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/django\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/html_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./html_highlight_rules\").HtmlHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){this.$rules={start:[{token:\"string\",regex:'\".*?\"'},{token:\"string\",regex:\"'.*?'\"},{token:\"constant\",regex:\"[0-9]+\"},{token:\"variable\",regex:\"[-_a-zA-Z0-9:]+\"}],comment:[{token:\"comment.block\",merge:!0,regex:\".+?\"}],tag:[{token:\"entity.name.function\",regex:\"[a-zA-Z][_a-zA-Z0-9]*\",next:\"start\"}]}};r.inherits(u,o);var a=function(){this.$rules=(new s).getRules();for(var e in this.$rules)this.$rules[e].unshift({token:\"comment.line\",regex:\"\\\\{#.*?#\\\\}\"},{token:\"comment.block\",regex:\"\\\\{\\\\%\\\\s*comment\\\\s*\\\\%\\\\}\",merge:!0,next:\"django-comment\"},{token:\"constant.language\",regex:\"\\\\{\\\\{\",next:\"django-start\"},{token:\"constant.language\",regex:\"\\\\{\\\\%\",next:\"django-tag\"}),this.embedRules(u,\"django-\",[{token:\"comment.block\",regex:\"\\\\{\\\\%\\\\s*endcomment\\\\s*\\\\%\\\\}\",merge:!0,next:\"start\"},{token:\"constant.language\",regex:\"\\\\%\\\\}\",next:\"start\"},{token:\"constant.language\",regex:\"\\\\}\\\\}\",next:\"start\"}])};r.inherits(a,s);var f=function(){i.call(this),this.HighlightRules=a};r.inherits(f,i),function(){this.$id=\"ace/mode/django\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict/mode-dockerfile.js",
    "content": "ace.define(\"ace/mode/sh_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=t.reservedKeywords=\"!|{|}|case|do|done|elif|else|esac|fi|for|if|in|then|until|while|&|;|export|local|read|typeset|unset|elif|select|set|function|declare|readonly\",o=t.languageConstructs=\"[|]|alias|bg|bind|break|builtin|cd|command|compgen|complete|continue|dirs|disown|echo|enable|eval|exec|exit|fc|fg|getopts|hash|help|history|jobs|kill|let|logout|popd|printf|pushd|pwd|return|set|shift|shopt|source|suspend|test|times|trap|type|ulimit|umask|unalias|wait\",u=function(){var e=this.createKeywordMapper({keyword:s,\"support.function.builtin\":o,\"invalid.deprecated\":\"debugger\"},\"identifier\"),t=\"(?:(?:[1-9]\\\\d*)|(?:0))\",n=\"(?:\\\\.\\\\d+)\",r=\"(?:\\\\d+)\",i=\"(?:(?:\"+r+\"?\"+n+\")|(?:\"+r+\"\\\\.))\",u=\"(?:(?:\"+i+\"|\"+r+\")\"+\")\",a=\"(?:\"+u+\"|\"+i+\")\",f=\"(?:&\"+r+\")\",l=\"[a-zA-Z_][a-zA-Z0-9_]*\",c=\"(?:\"+l+\"=)\",h=\"(?:\\\\$(?:SHLVL|\\\\$|\\\\!|\\\\?))\",p=\"(?:\"+l+\"\\\\s*\\\\(\\\\))\";this.$rules={start:[{token:\"constant\",regex:/\\\\./},{token:[\"text\",\"comment\"],regex:/(^|\\s)(#.*)$/},{token:\"string.start\",regex:'\"',push:[{token:\"constant.language.escape\",regex:/\\\\(?:[$`\"\\\\]|$)/},{include:\"variables\"},{token:\"keyword.operator\",regex:/`/},{token:\"string.end\",regex:'\"',next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string\",regex:\"\\\\$'\",push:[{token:\"constant.language.escape\",regex:/\\\\(?:[abeEfnrtv\\\\'\"]|x[a-fA-F\\d]{1,2}|u[a-fA-F\\d]{4}([a-fA-F\\d]{4})?|c.|\\d{1,3})/},{token:\"string\",regex:\"'\",next:\"pop\"},{defaultToken:\"string\"}]},{regex:\"<<<\",token:\"keyword.operator\"},{stateName:\"heredoc\",regex:\"(<<-?)(\\\\s*)(['\\\"`]?)([\\\\w\\\\-]+)(['\\\"`]?)\",onMatch:function(e,t,n){var r=e[2]==\"-\"?\"indentedHeredoc\":\"heredoc\",i=e.split(this.splitRegex);return n.push(r,i[4]),[{type:\"constant\",value:i[1]},{type:\"text\",value:i[2]},{type:\"string\",value:i[3]},{type:\"support.class\",value:i[4]},{type:\"string\",value:i[5]}]},rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}],indentedHeredoc:[{token:\"string\",regex:\"^\t+\"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}]}},{regex:\"$\",token:\"empty\",next:function(e,t){return t[0]===\"heredoc\"||t[0]===\"indentedHeredoc\"?t[0]:e}},{token:[\"keyword\",\"text\",\"text\",\"text\",\"variable\"],regex:/(declare|local|readonly)(\\s+)(?:(-[fixar]+)(\\s+))?([a-zA-Z_][a-zA-Z0-9_]*\\b)/},{token:\"variable.language\",regex:h},{token:\"variable\",regex:c},{include:\"variables\"},{token:\"support.function\",regex:p},{token:\"support.function\",regex:f},{token:\"string\",start:\"'\",end:\"'\"},{token:\"constant.numeric\",regex:a},{token:\"constant.numeric\",regex:t+\"\\\\b\"},{token:e,regex:\"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|~|<|>|<=|=>|=|!=|[%&|`]\"},{token:\"punctuation.operator\",regex:\";\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]]\"},{token:\"paren.rparen\",regex:\"[\\\\)\\\\}]\",next:\"pop\"}],variables:[{token:\"variable\",regex:/(\\$)(\\w+)/},{token:[\"variable\",\"paren.lparen\"],regex:/(\\$)(\\()/,push:\"start\"},{token:[\"variable\",\"paren.lparen\",\"keyword.operator\",\"variable\",\"keyword.operator\"],regex:/(\\$)(\\{)([#!]?)(\\w+|[*@#?\\-$!0_])(:[?+\\-=]?|##?|%%?|,,?\\/|\\^\\^?)?/,push:\"start\"},{token:\"variable\",regex:/\\$[*@#?\\-$!0_]/},{token:[\"variable\",\"paren.lparen\"],regex:/(\\$)(\\{)/,push:\"start\"}]},this.normalizeRules()};r.inherits(u,i),t.ShHighlightRules=u}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/sh\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/sh_highlight_rules\",\"ace/range\",\"ace/mode/folding/cstyle\",\"ace/mode/behaviour/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./sh_highlight_rules\").ShHighlightRules,o=e(\"../range\").Range,u=e(\"./folding/cstyle\").FoldMode,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=function(){this.HighlightRules=s,this.foldingRules=new u,this.$behaviour=new a};r.inherits(f,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[:]\\s*$/);o&&(r+=n)}return r};var e={pass:1,\"return\":1,raise:1,\"break\":1,\"continue\":1};this.checkOutdent=function(t,n,r){if(r!==\"\\r\\n\"&&r!==\"\\r\"&&r!==\"\\n\")return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do var s=i.pop();while(s&&(s.type==\"comment\"||s.type==\"text\"&&s.value.match(/^\\s+$/)));return s?s.type==\"keyword\"&&e[s.value]:!1},this.autoOutdent=function(e,t,n){n+=1;var r=this.$getIndent(t.getLine(n)),i=t.getTabString();r.slice(-i.length)==i&&t.remove(new o(n,r.length-i.length,n,r.length))},this.$id=\"ace/mode/sh\"}.call(f.prototype),t.Mode=f}),ace.define(\"ace/mode/dockerfile_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/sh_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./sh_highlight_rules\").ShHighlightRules,s=function(){i.call(this);var e=this.$rules.start;for(var t=0;t<e.length;t++)if(e[t].token==\"variable.language\"){e.splice(t,0,{token:\"constant.language\",regex:\"(?:^(?:FROM|MAINTAINER|RUN|CMD|EXPOSE|ENV|ADD|ENTRYPOINT|VOLUME|USER|WORKDIR|ONBUILD|COPY|LABEL)\\\\b)\",caseInsensitive:!0});break}};r.inherits(s,i),t.DockerfileHighlightRules=s}),ace.define(\"ace/mode/dockerfile\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/sh\",\"ace/mode/dockerfile_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./sh\").Mode,s=e(\"./dockerfile_highlight_rules\").DockerfileHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){i.call(this),this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.$id=\"ace/mode/dockerfile\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-dot.js",
    "content": "ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/dot_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/doc_comment_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,u=function(){var e=i.arrayToMap(\"strict|node|edge|graph|digraph|subgraph\".split(\"|\")),t=i.arrayToMap(\"damping|k|url|area|arrowhead|arrowsize|arrowtail|aspect|bb|bgcolor|center|charset|clusterrank|color|colorscheme|comment|compound|concentrate|constraint|decorate|defaultdist|dim|dimen|dir|diredgeconstraints|distortion|dpi|edgeurl|edgehref|edgetarget|edgetooltip|epsilon|esep|fillcolor|fixedsize|fontcolor|fontname|fontnames|fontpath|fontsize|forcelabels|gradientangle|group|headurl|head_lp|headclip|headhref|headlabel|headport|headtarget|headtooltip|height|href|id|image|imagepath|imagescale|label|labelurl|label_scheme|labelangle|labeldistance|labelfloat|labelfontcolor|labelfontname|labelfontsize|labelhref|labeljust|labelloc|labeltarget|labeltooltip|landscape|layer|layerlistsep|layers|layerselect|layersep|layout|len|levels|levelsgap|lhead|lheight|lp|ltail|lwidth|margin|maxiter|mclimit|mindist|minlen|mode|model|mosek|nodesep|nojustify|normalize|nslimit|nslimit1|ordering|orientation|outputorder|overlap|overlap_scaling|pack|packmode|pad|page|pagedir|pencolor|penwidth|peripheries|pin|pos|quadtree|quantum|rank|rankdir|ranksep|ratio|rects|regular|remincross|repulsiveforce|resolution|root|rotate|rotation|samehead|sametail|samplepoints|scale|searchsize|sep|shape|shapefile|showboxes|sides|size|skew|smoothing|sortv|splines|start|style|stylesheet|tailurl|tail_lp|tailclip|tailhref|taillabel|tailport|tailtarget|tailtooltip|target|tooltip|truecolor|vertices|viewport|voro_margin|weight|width|xlabel|xlp|z\".split(\"|\"));this.$rules={start:[{token:\"comment\",regex:/\\/\\/.*$/},{token:\"comment\",regex:/#.*$/},{token:\"comment\",merge:!0,regex:/\\/\\*/,next:\"comment\"},{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/[+\\-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?)?\\b/},{token:\"keyword.operator\",regex:/\\+|=|\\->/},{token:\"punctuation.operator\",regex:/,|;/},{token:\"paren.lparen\",regex:/[\\[{]/},{token:\"paren.rparen\",regex:/[\\]}]/},{token:\"comment\",regex:/^#!.*$/},{token:function(n){return e.hasOwnProperty(n.toLowerCase())?\"keyword\":t.hasOwnProperty(n.toLowerCase())?\"variable\":\"text\"},regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",merge:!0,next:\"start\"},{token:\"comment\",merge:!0,regex:\".+\"}],qqstring:[{token:\"string\",regex:'[^\"\\\\\\\\]+',merge:!0},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\",merge:!0},{token:\"string\",regex:'\"|$',next:\"start\",merge:!0}],qstring:[{token:\"string\",regex:\"[^'\\\\\\\\]+\",merge:!0},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\",merge:!0},{token:\"string\",regex:\"'|$\",next:\"start\",merge:!0}]}};r.inherits(u,s),t.DotHighlightRules=u}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/dot\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/matching_brace_outdent\",\"ace/mode/dot_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./matching_brace_outdent\").MatchingBraceOutdent,o=e(\"./dot_highlight_rules\").DotHighlightRules,u=e(\"./folding/cstyle\").FoldMode,a=function(){this.HighlightRules=o,this.$outdent=new s,this.foldingRules=new u,this.$behaviour=this.$defaultBehaviour};r.inherits(a,i),function(){this.lineCommentStart=[\"//\",\"#\"],this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/dot\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict/mode-drools.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/java_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while\",t=\"null|Infinity|NaN|undefined\",n=\"AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object\",r=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"constant.language\":t,\"support.function\":n},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.[\\d_]*)?(?:[eE][+-]?[\\d_]+)?)?[LlSsDdFfYy]?\\b/},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.JavaHighlightRules=o}),ace.define(\"ace/mode/drools_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/java_highlight_rules\",\"ace/mode/doc_comment_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=e(\"./java_highlight_rules\").JavaHighlightRules,o=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,u=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",a=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][\\\\.a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",f=function(){var e=\"date|effective|expires|lock|on|active|no|loop|auto|focus|activation|group|agenda|ruleflow|duration|timer|calendars|refract|direct|dialect|salience|enabled|attributes|extends|template|function|contains|matches|eval|excludes|soundslike|memberof|not|in|or|and|exists|forall|over|from|entry|point|accumulate|acc|collect|action|reverse|result|end|init|instanceof|extends|super|boolean|char|byte|short|int|long|float|double|this|void|class|new|case|final|if|else|for|while|do|default|try|catch|finally|switch|synchronized|return|throw|break|continue|assert|modify|static|public|protected|private|abstract|native|transient|volatile|strictfp|throws|interface|enum|implements|type|window|trait|no-loop|str\",t=\"AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object\",n=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"constant.language\":\"null\",\"support.class\":t,\"support.function\":\"retract|update|modify|insert\"},\"identifier\"),r=function(){return[{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"}]},i=function(e){return[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},o.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:e},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"}]},f=function(e){return[{token:\"comment.block\",regex:\".*?\\\\*\\\\/\",next:e},{token:\"comment.block\",regex:\".+\"}]},l=function(){return[{token:n,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}]};this.$rules={start:[].concat(i(\"block.comment\"),[{token:\"entity.name.type\",regex:\"@[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:[\"keyword\",\"text\",\"entity.name.type\"],regex:\"(package)(\\\\s+)(\"+a+\")\"},{token:[\"keyword\",\"text\",\"keyword\",\"text\",\"entity.name.type\"],regex:\"(import)(\\\\s+)(function)(\\\\s+)(\"+a+\")\"},{token:[\"keyword\",\"text\",\"entity.name.type\"],regex:\"(import)(\\\\s+)(\"+a+\")\"},{token:[\"keyword\",\"text\",\"entity.name.type\",\"text\",\"variable\"],regex:\"(global)(\\\\s+)(\"+a+\")(\\\\s+)(\"+u+\")\"},{token:[\"keyword\",\"text\",\"keyword\",\"text\",\"entity.name.type\"],regex:\"(declare)(\\\\s+)(trait)(\\\\s+)(\"+u+\")\"},{token:[\"keyword\",\"text\",\"entity.name.type\"],regex:\"(declare)(\\\\s+)(\"+u+\")\"},{token:[\"keyword\",\"text\",\"entity.name.type\"],regex:\"(extends)(\\\\s+)(\"+a+\")\"},{token:[\"keyword\",\"text\"],regex:\"(rule)(\\\\s+)\",next:\"asset.name\"}],r(),[{token:[\"variable.other\",\"text\",\"text\"],regex:\"(\"+u+\")(\\\\s*)(:)\"},{token:[\"keyword\",\"text\"],regex:\"(query)(\\\\s+)\",next:\"asset.name\"},{token:[\"keyword\",\"text\"],regex:\"(when)(\\\\s*)\"},{token:[\"keyword\",\"text\"],regex:\"(then)(\\\\s*)\",next:\"java-start\"},{token:\"paren.lparen\",regex:/[\\[({]/},{token:\"paren.rparen\",regex:/[\\])}]/}],l()),\"block.comment\":f(\"start\"),\"asset.name\":[{token:\"entity.name\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"entity.name\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"entity.name\",regex:u},{regex:\"\",token:\"empty\",next:\"start\"}]},this.embedRules(o,\"doc-\",[o.getEndRule(\"start\")]),this.embedRules(s,\"java-\",[{token:\"support.function\",regex:\"\\\\b(insert|modify|retract|update)\\\\b\"},{token:\"keyword\",regex:\"\\\\bend\\\\b\",next:\"start\"}])};r.inherits(f,i),t.DroolsHighlightRules=f}),ace.define(\"ace/mode/folding/drools\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=e(\"../../token_iterator\").TokenIterator,u=t.FoldMode=function(){};r.inherits(u,s),function(){this.foldingStartMarker=/\\b(rule|declare|query|when|then)\\b/,this.foldingStopMarker=/\\bend\\b/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),s=r.match(this.foldingStartMarker);if(s){var u=s.index;if(s[1]){var a={row:n,column:r.length},f=new o(e,a.row,a.column),l=\"end\",c=f.getCurrentToken();c.value==\"when\"&&(l=\"then\");while(c){if(c.value==l)return i.fromPoints(a,{row:f.getCurrentTokenRow(),column:f.getCurrentTokenColumn()});c=f.stepForward()}}}}}.call(u.prototype)}),ace.define(\"ace/mode/drools\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/drools_highlight_rules\",\"ace/mode/folding/drools\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./drools_highlight_rules\").DroolsHighlightRules,o=e(\"./folding/drools\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.$id=\"ace/mode/drools\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-eiffel.js",
    "content": "ace.define(\"ace/mode/eiffel_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"across|agent|alias|all|attached|as|assign|attribute|check|class|convert|create|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|Precursor|redefine|rename|require|rescue|retry|select|separate|some|then|undefine|until|variant|when\",t=\"and|implies|or|xor\",n=\"Void\",r=\"True|False\",i=\"Current|Result\",s=this.createKeywordMapper({\"constant.language\":n,\"constant.language.boolean\":r,\"variable.language\":i,\"keyword.operator\":t,keyword:e},\"identifier\",!0),o=/(?:[^\"%\\b\\f\\v]|%[A-DFHLNQR-V%'\"()<>]|%\\/(?:0[xX][\\da-fA-F](?:_*[\\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\\d(?:_*\\d)*)\\/)+?/;this.$rules={start:[{token:\"string.quoted.other\",regex:/\"\\[/,next:\"aligned_verbatim_string\"},{token:\"string.quoted.other\",regex:/\"\\{/,next:\"non-aligned_verbatim_string\"},{token:\"string.quoted.double\",regex:/\"(?:[^%\\b\\f\\n\\r\\v]|%[A-DFHLNQR-V%'\"()<>]|%\\/(?:0[xX][\\da-fA-F](?:_*[\\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\\d(?:_*\\d)*)\\/)*?\"/},{token:\"comment.line.double-dash\",regex:/--.*/},{token:\"constant.character\",regex:/'(?:[^%\\b\\f\\n\\r\\t\\v]|%[A-DFHLNQR-V%'\"()<>]|%\\/(?:0[xX][\\da-fA-F](?:_*[\\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\\d(?:_*\\d)*)\\/)'/},{token:\"constant.numeric\",regex:/\\b0(?:[xX][\\da-fA-F](?:_*[\\da-fA-F])*|[cC][0-7](?:_*[0-7])*|[bB][01](?:_*[01])*)\\b/},{token:\"constant.numeric\",regex:/(?:\\d(?:_*\\d)*)?\\.(?:(?:\\d(?:_*\\d)*)?[eE][+-]?)?\\d(?:_*\\d)*|\\d(?:_*\\d)*\\.?/},{token:\"paren.lparen\",regex:/[\\[({]|<<|\\|\\(/},{token:\"paren.rparen\",regex:/[\\])}]|>>|\\|\\)/},{token:\"keyword.operator\",regex:/:=|->|\\.(?=\\w)|[;,:?]/},{token:\"keyword.operator\",regex:/\\\\\\\\|\\|\\.\\.\\||\\.\\.|\\/[~\\/]?|[><\\/]=?|[-+*^=~]/},{token:function(e){var t=s(e);return t===\"identifier\"&&e===e.toUpperCase()&&(t=\"entity.name.type\"),t},regex:/[a-zA-Z][a-zA-Z\\d_]*\\b/},{token:\"text\",regex:/\\s+/}],aligned_verbatim_string:[{token:\"string\",regex:/]\"/,next:\"start\"},{token:\"string\",regex:o}],\"non-aligned_verbatim_string\":[{token:\"string.quoted.other\",regex:/}\"/,next:\"start\"},{token:\"string.quoted.other\",regex:o}]}};r.inherits(s,i),t.EiffelHighlightRules=s}),ace.define(\"ace/mode/eiffel\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/eiffel_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./eiffel_highlight_rules\").EiffelHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart=\"--\",this.$id=\"ace/mode/eiffel\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict/mode-ejs.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/ruby_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=t.constantOtherSymbol={token:\"constant.other.symbol.ruby\",regex:\"[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?\"},o=t.qString={token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},u=t.qqString={token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},a=t.tString={token:\"string\",regex:\"[`](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[`]\"},f=t.constantNumericHex={token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\\\b\"},l=t.constantNumericFloat={token:\"constant.numeric\",regex:\"[+-]?\\\\d(?:\\\\d|_(?=\\\\d))*(?:(?:\\\\.\\\\d(?:\\\\d|_(?=\\\\d))*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},c=function(){var e=\"abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|validates_inclusion_of|validates_numericality_of|validates_with|validates_each|authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|cache|expire_fragment|expire_cache_for|observe|cache_sweeper|has_many|has_one|belongs_to|has_and_belongs_to_many\",t=\"alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield\",n=\"true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING\",r=\"$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|$!|root_url|flash|session|cookies|params|request|response|logger|self\",i=this.$keywords=this.createKeywordMapper({keyword:t,\"constant.language\":n,\"variable.language\":r,\"support.function\":e,\"invalid.deprecated\":\"debugger\"},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"comment\",regex:\"^=begin(?:$|\\\\s.*$)\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},[{regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)return n.unshift(\"start\",t),\"paren.lparen\";if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1)return\"paren.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.start\",regex:/\"/,push:[{token:\"constant.language.escape\",regex:/\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/},{token:\"paren.start\",regex:/#{/,push:\"start\"},{token:\"string.end\",regex:/\"/,next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:/\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/},{token:\"paren.start\",regex:/#{/,push:\"start\"},{token:\"string.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:/'/,push:[{token:\"constant.language.escape\",regex:/\\\\['\\\\]/},{token:\"string.end\",regex:/'/,next:\"pop\"},{defaultToken:\"string\"}]}],{token:\"text\",regex:\"::\"},{token:\"variable.instance\",regex:\"@{1,2}[a-zA-Z_\\\\d]+\"},{token:\"support.class\",regex:\"[A-Z][a-zA-Z_\\\\d]+\"},s,f,l,{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:i,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"punctuation.separator.key-value\",regex:\"=>\"},{stateName:\"heredoc\",onMatch:function(e,t,n){var r=e[2]==\"-\"?\"indentedHeredoc\":\"heredoc\",i=e.split(this.splitRegex);return n.push(r,i[3]),[{type:\"constant\",value:i[1]},{type:\"string\",value:i[2]},{type:\"support.class\",value:i[3]},{type:\"string\",value:i[4]}]},regex:\"(<<-?)(['\\\"`]?)([\\\\w]+)(['\\\"`]?)\",rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}],indentedHeredoc:[{token:\"string\",regex:\"^ +\"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}]}},{regex:\"$\",token:\"empty\",next:function(e,t){return t[0]===\"heredoc\"||t[0]===\"indentedHeredoc\"?t[0]:e}},{token:\"string.character\",regex:\"\\\\B\\\\?.\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"^=end(?:$|\\\\s.*$)\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.normalizeRules()};r.inherits(c,i),t.RubyHighlightRules=c}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/ruby\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ruby_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./ruby_highlight_rules\").RubyHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/coffee\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[]\\s*$/),u=t.match(/^\\s*(class|def|module)\\s.*$/),a=t.match(/.*do(\\s*|\\s+\\|.*\\|\\s*)$/),f=t.match(/^\\s*(if|else|when)\\s*/);if(o||u||a||f)r+=n}return r},this.checkOutdent=function(e,t,n){return/^\\s+(end|else)$/.test(t+n)||this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){var r=t.getLine(n);if(/}/.test(r))return this.$outdent.autoOutdent(t,n);var i=this.$getIndent(r),s=t.getLine(n-1),o=this.$getIndent(s),a=t.getTabString();o.length<=i.length&&i.slice(-a.length)==a&&t.remove(new u(n,i.length-a.length,n,i.length))},this.$id=\"ace/mode/ruby\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/ejs\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/ruby\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=function(e,t){i.call(this),e||(e=\"(?:<%|<\\\\?|{{)\"),t||(t=\"(?:%>|\\\\?>|}})\");for(var n in this.$rules)this.$rules[n].unshift({token:\"markup.list.meta.tag\",regex:e+\"(?![>}])[-=]?\",push:\"ejs-start\"});this.embedRules((new s({jsx:!1})).getRules(),\"ejs-\",[{token:\"markup.list.meta.tag\",regex:\"-?\"+t,next:\"pop\"},{token:\"comment\",regex:\"//.*?\"+t,next:\"pop\"}]),this.normalizeRules()};r.inherits(o,i),t.EjsHighlightRules=o;var r=e(\"../lib/oop\"),u=e(\"./html\").Mode,a=e(\"./javascript\").Mode,f=e(\"./css\").Mode,l=e(\"./ruby\").Mode,c=function(){u.call(this),this.HighlightRules=o,this.createModeDelegates({\"js-\":a,\"css-\":f,\"ejs-\":a})};r.inherits(c,u),function(){this.$id=\"ace/mode/ejs\"}.call(c.prototype),t.Mode=c})"
  },
  {
    "path": "lib/src-min-noconflict/mode-elixir.js",
    "content": "ace.define(\"ace/mode/elixir_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:[\"meta.module.elixir\",\"keyword.control.module.elixir\",\"meta.module.elixir\",\"entity.name.type.module.elixir\"],regex:\"^(\\\\s*)(defmodule)(\\\\s+)((?:[A-Z]\\\\w*\\\\s*\\\\.\\\\s*)*[A-Z]\\\\w*)\"},{token:\"comment.documentation.heredoc\",regex:'@(?:module|type)?doc (?:~[a-z])?\"\"\"',push:[{token:\"comment.documentation.heredoc\",regex:'\\\\s*\"\"\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"comment.documentation.heredoc\"}],comment:\"@doc with heredocs is treated as documentation\"},{token:\"comment.documentation.heredoc\",regex:'@(?:module|type)?doc ~[A-Z]\"\"\"',push:[{token:\"comment.documentation.heredoc\",regex:'\\\\s*\"\"\"',next:\"pop\"},{defaultToken:\"comment.documentation.heredoc\"}],comment:\"@doc with heredocs is treated as documentation\"},{token:\"comment.documentation.heredoc\",regex:\"@(?:module|type)?doc (?:~[a-z])?'''\",push:[{token:\"comment.documentation.heredoc\",regex:\"\\\\s*'''\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"comment.documentation.heredoc\"}],comment:\"@doc with heredocs is treated as documentation\"},{token:\"comment.documentation.heredoc\",regex:\"@(?:module|type)?doc ~[A-Z]'''\",push:[{token:\"comment.documentation.heredoc\",regex:\"\\\\s*'''\",next:\"pop\"},{defaultToken:\"comment.documentation.heredoc\"}],comment:\"@doc with heredocs is treated as documentation\"},{token:\"comment.documentation.false\",regex:\"@(?:module|type)?doc false\",comment:\"@doc false is treated as documentation\"},{token:\"comment.documentation.string\",regex:'@(?:module|type)?doc \"',push:[{token:\"comment.documentation.string\",regex:'\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"comment.documentation.string\"}],comment:\"@doc with string is treated as documentation\"},{token:\"keyword.control.elixir\",regex:\"\\\\b(?:do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\\\\b(?![?!])\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!\\\\.)\\\\b(do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\\\\b(?![?!])\"},{token:\"keyword.operator.elixir\",regex:\"\\\\b(?:and|not|or|when|xor|in|inlist|inbits)\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!\\\\.)\\\\b(and|not|or|when|xor|in|inlist|inbits)\\\\b\",comment:\" as above, just doesn't need a 'end' and does a logic operation\"},{token:\"constant.language.elixir\",regex:\"\\\\b(?:nil|true|false)\\\\b(?![?!])\"},{token:\"variable.language.elixir\",regex:\"\\\\b__(?:CALLER|ENV|MODULE|DIR)__\\\\b(?![?!])\"},{token:[\"punctuation.definition.variable.elixir\",\"variable.other.readwrite.module.elixir\"],regex:\"(@)([a-zA-Z_]\\\\w*)\"},{token:[\"punctuation.definition.variable.elixir\",\"variable.other.anonymous.elixir\"],regex:\"(&)(\\\\d*)\"},{token:\"variable.other.constant.elixir\",regex:\"\\\\b[A-Z]\\\\w*\\\\b\"},{token:\"constant.numeric.elixir\",regex:\"\\\\b(?:0x[\\\\da-fA-F](?:_?[\\\\da-fA-F])*|\\\\d(?:_?\\\\d)*(?:\\\\.(?![^[:space:][:digit:]])(?:_?\\\\d)*)?(?:[eE][-+]?\\\\d(?:_?\\\\d)*)?|0b[01]+|0o[0-7]+)\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"\\\\b(0x\\\\h(?>_?\\\\h)*|\\\\d(?>_?\\\\d)*(\\\\.(?![^[:space:][:digit:]])(?>_?\\\\d)*)?([eE][-+]?\\\\d(?>_?\\\\d)*)?|0b[01]+|0o[0-7]+)\\\\b\"},{token:\"punctuation.definition.constant.elixir\",regex:\":'\",push:[{token:\"punctuation.definition.constant.elixir\",regex:\"'\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"constant.other.symbol.single-quoted.elixir\"}]},{token:\"punctuation.definition.constant.elixir\",regex:':\"',push:[{token:\"punctuation.definition.constant.elixir\",regex:'\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"constant.other.symbol.double-quoted.elixir\"}]},{token:\"punctuation.definition.string.begin.elixir\",regex:\"(?:''')\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?>''')\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"^\\\\s*'''\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"support.function.variable.quoted.single.heredoc.elixir\"}],comment:\"Single-quoted heredocs\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"'\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"support.function.variable.quoted.single.elixir\"}],comment:\"single quoted string (allows for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:'(?:\"\"\")',TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:'(?>\"\"\")',push:[{token:\"punctuation.definition.string.end.elixir\",regex:'^\\\\s*\"\"\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.quoted.double.heredoc.elixir\"}],comment:\"Double-quoted heredocs\"},{token:\"punctuation.definition.string.begin.elixir\",regex:'\"',push:[{token:\"punctuation.definition.string.end.elixir\",regex:'\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.quoted.double.elixir\"}],comment:\"double quoted string (allows for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:'~[a-z](?:\"\"\")',TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:'~[a-z](?>\"\"\")',push:[{token:\"punctuation.definition.string.end.elixir\",regex:'^\\\\s*\"\"\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.quoted.double.heredoc.elixir\"}],comment:\"Double-quoted heredocs sigils\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z]\\\\{\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\}[a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z]\\\\[\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\][a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z]\\\\<\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\>[a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z]\\\\(\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\)[a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z][^\\\\w]\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"[^\\\\w][a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:'~[A-Z](?:\"\"\")',TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:'~[A-Z](?>\"\"\")',push:[{token:\"punctuation.definition.string.end.elixir\",regex:'^\\\\s*\"\"\"',next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"Double-quoted heredocs sigils\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z]\\\\{\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\}[a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z]\\\\[\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\][a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z]\\\\<\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\>[a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z]\\\\(\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\)[a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z][^\\\\w]\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"[^\\\\w][a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:[\"punctuation.definition.constant.elixir\",\"constant.other.symbol.elixir\"],regex:\"(:)([a-zA-Z_][\\\\w@]*(?:[?!]|=(?![>=]))?|\\\\<\\\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\\\-|\\\\|>|=>|~|~=|=|/|\\\\\\\\\\\\\\\\|\\\\*\\\\*?|\\\\.\\\\.?\\\\.?|>=?|<=?|&&?&?|\\\\+\\\\+?|\\\\-\\\\-?|\\\\|\\\\|?\\\\|?|\\\\!|@|\\\\%?\\\\{\\\\}|%|\\\\[\\\\]|\\\\^(?:\\\\^\\\\^)?)\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!:)(:)(?>[a-zA-Z_][\\\\w@]*(?>[?!]|=(?![>=]))?|\\\\<\\\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\\\-|\\\\|>|=>|~|~=|=|/|\\\\\\\\\\\\\\\\|\\\\*\\\\*?|\\\\.\\\\.?\\\\.?|>=?|<=?|&&?&?|\\\\+\\\\+?|\\\\-\\\\-?|\\\\|\\\\|?\\\\|?|\\\\!|@|\\\\%?\\\\{\\\\}|%|\\\\[\\\\]|\\\\^(\\\\^\\\\^)?)\",comment:\"symbols\"},{token:\"punctuation.definition.constant.elixir\",regex:\"(?:[a-zA-Z_][\\\\w@]*(?:[?!])?):(?!:)\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?>[a-zA-Z_][\\\\w@]*(?>[?!])?)(:)(?!:)\",comment:\"symbols\"},{token:[\"punctuation.definition.comment.elixir\",\"comment.line.number-sign.elixir\"],regex:\"(#)(.*)\"},{token:\"constant.numeric.elixir\",regex:\"\\\\?(?:\\\\\\\\(?:x[\\\\da-fA-F]{1,2}(?![\\\\da-fA-F])\\\\b|[^xMC])|[^\\\\s\\\\\\\\])\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!\\\\w)\\\\?(\\\\\\\\(x\\\\h{1,2}(?!\\\\h)\\\\b|[^xMC])|[^\\\\s\\\\\\\\])\",comment:'\\n\t\t\tmatches questionmark-letters.\\n\\n\t\t\texamples (1st alternation = hex):\\n\t\t\t?\\\\x1     ?\\\\x61\\n\\n\t\t\texamples (2rd alternation = escaped):\\n\t\t\t?\\\\n      ?\\\\b\\n\\n\t\t\texamples (3rd alternation = normal):\\n\t\t\t?a       ?A       ?0 \\n\t\t\t?*       ?\"       ?( \\n\t\t\t?.       ?#\\n\t\t\t\\n\t\t\tthe negative lookbehind prevents against matching\\n\t\t\tp(42.tainted?)\\n\t\t\t'},{token:\"keyword.operator.assignment.augmented.elixir\",regex:\"\\\\+=|\\\\-=|\\\\|\\\\|=|~=|&&=\"},{token:\"keyword.operator.comparison.elixir\",regex:\"===?|!==?|<=?|>=?\"},{token:\"keyword.operator.bitwise.elixir\",regex:\"\\\\|{3}|&{3}|\\\\^{3}|<{3}|>{3}|~{3}\"},{token:\"keyword.operator.logical.elixir\",regex:\"!+|\\\\bnot\\\\b|&&|\\\\band\\\\b|\\\\|\\\\||\\\\bor\\\\b|\\\\bxor\\\\b\",originalRegex:\"(?<=[ \\\\t])!+|\\\\bnot\\\\b|&&|\\\\band\\\\b|\\\\|\\\\||\\\\bor\\\\b|\\\\bxor\\\\b\"},{token:\"keyword.operator.arithmetic.elixir\",regex:\"\\\\*|\\\\+|\\\\-|/\"},{token:\"keyword.operator.other.elixir\",regex:\"\\\\||\\\\+\\\\+|\\\\-\\\\-|\\\\*\\\\*|\\\\\\\\\\\\\\\\|\\\\<\\\\-|\\\\<\\\\>|\\\\<\\\\<|\\\\>\\\\>|\\\\:\\\\:|\\\\.\\\\.|\\\\|>|~|=>\"},{token:\"keyword.operator.assignment.elixir\",regex:\"=\"},{token:\"punctuation.separator.other.elixir\",regex:\":\"},{token:\"punctuation.separator.statement.elixir\",regex:\"\\\\;\"},{token:\"punctuation.separator.object.elixir\",regex:\",\"},{token:\"punctuation.separator.method.elixir\",regex:\"\\\\.\"},{token:\"punctuation.section.scope.elixir\",regex:\"\\\\{|\\\\}\"},{token:\"punctuation.section.array.elixir\",regex:\"\\\\[|\\\\]\"},{token:\"punctuation.section.function.elixir\",regex:\"\\\\(|\\\\)\"}],\"#escaped_char\":[{token:\"constant.character.escape.elixir\",regex:\"\\\\\\\\(?:x[\\\\da-fA-F]{1,2}|.)\"}],\"#interpolated_elixir\":[{token:[\"source.elixir.embedded.source\",\"source.elixir.embedded.source.empty\"],regex:\"(#\\\\{)(\\\\})\"},{todo:{token:\"punctuation.section.embedded.elixir\",regex:\"#\\\\{\",push:[{token:\"punctuation.section.embedded.elixir\",regex:\"\\\\}\",next:\"pop\"},{include:\"#nest_curly_and_self\"},{include:\"$self\"},{defaultToken:\"source.elixir.embedded.source\"}]}}],\"#nest_curly_and_self\":[{token:\"punctuation.section.scope.elixir\",regex:\"\\\\{\",push:[{token:\"punctuation.section.scope.elixir\",regex:\"\\\\}\",next:\"pop\"},{include:\"#nest_curly_and_self\"}]},{include:\"$self\"}],\"#regex_sub\":[{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{token:[\"punctuation.definition.arbitrary-repitition.elixir\",\"string.regexp.arbitrary-repitition.elixir\",\"string.regexp.arbitrary-repitition.elixir\",\"punctuation.definition.arbitrary-repitition.elixir\"],regex:\"(\\\\{)(\\\\d+)((?:,\\\\d+)?)(\\\\})\"},{token:\"punctuation.definition.character-class.elixir\",regex:\"\\\\[(?:\\\\^?\\\\])?\",push:[{token:\"punctuation.definition.character-class.elixir\",regex:\"\\\\]\",next:\"pop\"},{include:\"#escaped_char\"},{defaultToken:\"string.regexp.character-class.elixir\"}]},{token:\"punctuation.definition.group.elixir\",regex:\"\\\\(\",push:[{token:\"punctuation.definition.group.elixir\",regex:\"\\\\)\",next:\"pop\"},{include:\"#regex_sub\"},{defaultToken:\"string.regexp.group.elixir\"}]},{token:[\"punctuation.definition.comment.elixir\",\"comment.line.number-sign.elixir\"],regex:\"(?:^|\\\\s)(#)(\\\\s[[a-zA-Z0-9,. \\\\t?!-][^\\\\x00-\\\\x7F]]*$)\",originalRegex:\"(?<=^|\\\\s)(#)\\\\s[[a-zA-Z0-9,. \\\\t?!-][^\\\\x{00}-\\\\x{7F}]]*$\",comment:\"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.\"}]},this.normalizeRules()};s.metaData={comment:\"Textmate bundle for Elixir Programming Language.\",fileTypes:[\"ex\",\"exs\"],firstLineMatch:\"^#!/.*\\\\belixir\",foldingStartMarker:\"(after|else|catch|rescue|\\\\-\\\\>|\\\\{|\\\\[|do)\\\\s*$\",foldingStopMarker:\"^\\\\s*((\\\\}|\\\\]|after|else|catch|rescue)\\\\s*$|end\\\\b)\",keyEquivalent:\"^~E\",name:\"Elixir\",scopeName:\"source.elixir\"},r.inherits(s,i),t.ElixirHighlightRules=s}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/elixir\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/elixir_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./elixir_highlight_rules\").ElixirHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"#\",this.$id=\"ace/mode/elixir\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-elm.js",
    "content": "ace.define(\"ace/mode/elm_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=this.createKeywordMapper({keyword:\"as|case|class|data|default|deriving|do|else|export|foreign|hiding|jsevent|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|open|then|type|where|_|port|\\u03bb\"},\"identifier\"),t=/\\\\(\\d+|['\"\\\\&trnbvf])/,n=/[a-z_]/.source,r=/[A-Z]/.source,i=/[a-z_A-Z0-9']/.source;this.$rules={start:[{token:\"string.start\",regex:'\"',next:\"string\"},{token:\"string.character\",regex:\"'(?:\"+t.source+\"|.)'?\"},{regex:/0(?:[xX][0-9A-Fa-f]+|[oO][0-7]+)|\\d+(\\.\\d+)?([eE][-+]?\\d*)?/,token:\"constant.numeric\"},{token:\"comment\",regex:\"--.*\"},{token:\"keyword\",regex:/\\.\\.|\\||:|=|\\\\|\"|->|<-|\\u2192/},{token:\"keyword.operator\",regex:/[-!#$%&*+.\\/<=>?@\\\\^|~:\\u03BB\\u2192]+/},{token:\"operator.punctuation\",regex:/[,;`]/},{regex:r+i+\"+\\\\.?\",token:function(e){return e[e.length-1]==\".\"?\"entity.name.function\":\"constant.language\"}},{regex:\"^\"+n+i+\"+\",token:function(e){return\"constant.language\"}},{token:e,regex:\"[\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]+\\\\b\"},{regex:\"{-#?\",token:\"comment.start\",onMatch:function(e,t,n){return this.next=e.length==2?\"blockComment\":\"docComment\",this.token}},{token:\"variable.language\",regex:/\\[markdown\\|/,next:\"markdown\"},{token:\"paren.lparen\",regex:/[\\[({]/},{token:\"paren.rparen\",regex:/[\\])}]/}],markdown:[{regex:/\\|\\]/,next:\"start\"},{defaultToken:\"string\"}],blockComment:[{regex:\"{-\",token:\"comment.start\",push:\"blockComment\"},{regex:\"-}\",token:\"comment.end\",next:\"pop\"},{defaultToken:\"comment\"}],docComment:[{regex:\"{-\",token:\"comment.start\",push:\"docComment\"},{regex:\"-}\",token:\"comment.end\",next:\"pop\"},{defaultToken:\"doc.comment\"}],string:[{token:\"constant.language.escape\",regex:t},{token:\"text\",regex:/\\\\(\\s|$)/,next:\"stringGap\"},{token:\"string.end\",regex:'\"',next:\"start\"},{defaultToken:\"string\"}],stringGap:[{token:\"text\",regex:/\\\\/,next:\"string\"},{token:\"error\",regex:\"\",next:\"start\"}]},this.normalizeRules()};r.inherits(s,i),t.ElmHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/elm\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/elm_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./elm_highlight_rules\").ElmHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.blockComment={start:\"{-\",end:\"-}\",nestable:!0},this.$id=\"ace/mode/elm\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-erlang.js",
    "content": "ace.define(\"ace/mode/erlang_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{include:\"#module-directive\"},{include:\"#import-export-directive\"},{include:\"#behaviour-directive\"},{include:\"#record-directive\"},{include:\"#define-directive\"},{include:\"#macro-directive\"},{include:\"#directive\"},{include:\"#function\"},{include:\"#everything-else\"}],\"#atom\":[{token:\"punctuation.definition.symbol.begin.erlang\",regex:\"'\",push:[{token:\"punctuation.definition.symbol.end.erlang\",regex:\"'\",next:\"pop\"},{token:[\"punctuation.definition.escape.erlang\",\"constant.other.symbol.escape.erlang\",\"punctuation.definition.escape.erlang\",\"constant.other.symbol.escape.erlang\",\"constant.other.symbol.escape.erlang\"],regex:\"(\\\\\\\\)(?:([bdefnrstv\\\\\\\\'\\\"])|(\\\\^)([@-_])|([0-7]{1,3}))\"},{token:\"invalid.illegal.atom.erlang\",regex:\"\\\\\\\\\\\\^?.?\"},{defaultToken:\"constant.other.symbol.quoted.single.erlang\"}]},{token:\"constant.other.symbol.unquoted.erlang\",regex:\"[a-z][a-zA-Z\\\\d@_]*\"}],\"#behaviour-directive\":[{token:[\"meta.directive.behaviour.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.behaviour.erlang\",\"keyword.control.directive.behaviour.erlang\",\"meta.directive.behaviour.erlang\",\"punctuation.definition.parameters.begin.erlang\",\"meta.directive.behaviour.erlang\",\"entity.name.type.class.behaviour.definition.erlang\",\"meta.directive.behaviour.erlang\",\"punctuation.definition.parameters.end.erlang\",\"meta.directive.behaviour.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(behaviour)(\\\\s*)(\\\\()(\\\\s*)([a-z][a-zA-Z\\\\d@_]*)(\\\\s*)(\\\\))(\\\\s*)(\\\\.)\"}],\"#binary\":[{token:\"punctuation.definition.binary.begin.erlang\",regex:\"<<\",push:[{token:\"punctuation.definition.binary.end.erlang\",regex:\">>\",next:\"pop\"},{token:[\"punctuation.separator.binary.erlang\",\"punctuation.separator.value-size.erlang\"],regex:\"(,)|(:)\"},{include:\"#internal-type-specifiers\"},{include:\"#everything-else\"},{defaultToken:\"meta.structure.binary.erlang\"}]}],\"#character\":[{token:[\"punctuation.definition.character.erlang\",\"punctuation.definition.escape.erlang\",\"constant.character.escape.erlang\",\"punctuation.definition.escape.erlang\",\"constant.character.escape.erlang\",\"constant.character.escape.erlang\"],regex:\"(\\\\$)(\\\\\\\\)(?:([bdefnrstv\\\\\\\\'\\\"])|(\\\\^)([@-_])|([0-7]{1,3}))\"},{token:\"invalid.illegal.character.erlang\",regex:\"\\\\$\\\\\\\\\\\\^?.?\"},{token:[\"punctuation.definition.character.erlang\",\"constant.character.erlang\"],regex:\"(\\\\$)(\\\\S)\"},{token:\"invalid.illegal.character.erlang\",regex:\"\\\\$.?\"}],\"#comment\":[{token:\"punctuation.definition.comment.erlang\",regex:\"%.*$\",push_:[{token:\"comment.line.percentage.erlang\",regex:\"$\",next:\"pop\"},{defaultToken:\"comment.line.percentage.erlang\"}]}],\"#define-directive\":[{token:[\"meta.directive.define.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.define.erlang\",\"keyword.control.directive.define.erlang\",\"meta.directive.define.erlang\",\"punctuation.definition.parameters.begin.erlang\",\"meta.directive.define.erlang\",\"entity.name.function.macro.definition.erlang\",\"meta.directive.define.erlang\",\"punctuation.separator.parameters.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(define)(\\\\s*)(\\\\()(\\\\s*)([a-zA-Z\\\\d@_]+)(\\\\s*)(,)\",push:[{token:[\"punctuation.definition.parameters.end.erlang\",\"meta.directive.define.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"(\\\\))(\\\\s*)(\\\\.)\",next:\"pop\"},{include:\"#everything-else\"},{defaultToken:\"meta.directive.define.erlang\"}]},{token:\"meta.directive.define.erlang\",regex:\"(?=^\\\\s*-\\\\s*define\\\\s*\\\\(\\\\s*[a-zA-Z\\\\d@_]+\\\\s*\\\\()\",push:[{token:[\"punctuation.definition.parameters.end.erlang\",\"meta.directive.define.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"(\\\\))(\\\\s*)(\\\\.)\",next:\"pop\"},{token:[\"text\",\"punctuation.section.directive.begin.erlang\",\"text\",\"keyword.control.directive.define.erlang\",\"text\",\"punctuation.definition.parameters.begin.erlang\",\"text\",\"entity.name.function.macro.definition.erlang\",\"text\",\"punctuation.definition.parameters.begin.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(define)(\\\\s*)(\\\\()(\\\\s*)([a-zA-Z\\\\d@_]+)(\\\\s*)(\\\\()\",push:[{token:[\"punctuation.definition.parameters.end.erlang\",\"text\",\"punctuation.separator.parameters.erlang\"],regex:\"(\\\\))(\\\\s*)(,)\",next:\"pop\"},{token:\"punctuation.separator.parameters.erlang\",regex:\",\"},{include:\"#everything-else\"}]},{token:\"punctuation.separator.define.erlang\",regex:\"\\\\|\\\\||\\\\||:|;|,|\\\\.|->\"},{include:\"#everything-else\"},{defaultToken:\"meta.directive.define.erlang\"}]}],\"#directive\":[{token:[\"meta.directive.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.erlang\",\"keyword.control.directive.erlang\",\"meta.directive.erlang\",\"punctuation.definition.parameters.begin.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)([a-z][a-zA-Z\\\\d@_]*)(\\\\s*)(\\\\(?)\",push:[{token:[\"punctuation.definition.parameters.end.erlang\",\"meta.directive.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"(\\\\)?)(\\\\s*)(\\\\.)\",next:\"pop\"},{include:\"#everything-else\"},{defaultToken:\"meta.directive.erlang\"}]},{token:[\"meta.directive.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.erlang\",\"keyword.control.directive.erlang\",\"meta.directive.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)([a-z][a-zA-Z\\\\d@_]*)(\\\\s*)(\\\\.)\"}],\"#everything-else\":[{include:\"#comment\"},{include:\"#record-usage\"},{include:\"#macro-usage\"},{include:\"#expression\"},{include:\"#keyword\"},{include:\"#textual-operator\"},{include:\"#function-call\"},{include:\"#tuple\"},{include:\"#list\"},{include:\"#binary\"},{include:\"#parenthesized-expression\"},{include:\"#character\"},{include:\"#number\"},{include:\"#atom\"},{include:\"#string\"},{include:\"#symbolic-operator\"},{include:\"#variable\"}],\"#expression\":[{token:\"keyword.control.if.erlang\",regex:\"\\\\bif\\\\b\",push:[{token:\"keyword.control.end.erlang\",regex:\"\\\\bend\\\\b\",next:\"pop\"},{include:\"#internal-expression-punctuation\"},{include:\"#everything-else\"},{defaultToken:\"meta.expression.if.erlang\"}]},{token:\"keyword.control.case.erlang\",regex:\"\\\\bcase\\\\b\",push:[{token:\"keyword.control.end.erlang\",regex:\"\\\\bend\\\\b\",next:\"pop\"},{include:\"#internal-expression-punctuation\"},{include:\"#everything-else\"},{defaultToken:\"meta.expression.case.erlang\"}]},{token:\"keyword.control.receive.erlang\",regex:\"\\\\breceive\\\\b\",push:[{token:\"keyword.control.end.erlang\",regex:\"\\\\bend\\\\b\",next:\"pop\"},{include:\"#internal-expression-punctuation\"},{include:\"#everything-else\"},{defaultToken:\"meta.expression.receive.erlang\"}]},{token:[\"keyword.control.fun.erlang\",\"text\",\"entity.name.type.class.module.erlang\",\"text\",\"punctuation.separator.module-function.erlang\",\"text\",\"entity.name.function.erlang\",\"text\",\"punctuation.separator.function-arity.erlang\"],regex:\"\\\\b(fun)(\\\\s*)(?:([a-z][a-zA-Z\\\\d@_]*)(\\\\s*)(:)(\\\\s*))?([a-z][a-zA-Z\\\\d@_]*)(\\\\s*)(/)\"},{token:\"keyword.control.fun.erlang\",regex:\"\\\\bfun\\\\b\",push:[{token:\"keyword.control.end.erlang\",regex:\"\\\\bend\\\\b\",next:\"pop\"},{token:\"text\",regex:\"(?=\\\\()\",push:[{token:\"punctuation.separator.clauses.erlang\",regex:\";|(?=\\\\bend\\\\b)\",next:\"pop\"},{include:\"#internal-function-parts\"}]},{include:\"#everything-else\"},{defaultToken:\"meta.expression.fun.erlang\"}]},{token:\"keyword.control.try.erlang\",regex:\"\\\\btry\\\\b\",push:[{token:\"keyword.control.end.erlang\",regex:\"\\\\bend\\\\b\",next:\"pop\"},{include:\"#internal-expression-punctuation\"},{include:\"#everything-else\"},{defaultToken:\"meta.expression.try.erlang\"}]},{token:\"keyword.control.begin.erlang\",regex:\"\\\\bbegin\\\\b\",push:[{token:\"keyword.control.end.erlang\",regex:\"\\\\bend\\\\b\",next:\"pop\"},{include:\"#internal-expression-punctuation\"},{include:\"#everything-else\"},{defaultToken:\"meta.expression.begin.erlang\"}]},{token:\"keyword.control.query.erlang\",regex:\"\\\\bquery\\\\b\",push:[{token:\"keyword.control.end.erlang\",regex:\"\\\\bend\\\\b\",next:\"pop\"},{include:\"#everything-else\"},{defaultToken:\"meta.expression.query.erlang\"}]}],\"#function\":[{token:[\"meta.function.erlang\",\"entity.name.function.definition.erlang\",\"meta.function.erlang\"],regex:\"^(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)(?=\\\\()\",push:[{token:\"punctuation.terminator.function.erlang\",regex:\"\\\\.\",next:\"pop\"},{token:[\"text\",\"entity.name.function.erlang\",\"text\"],regex:\"^(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)(?=\\\\()\"},{token:\"text\",regex:\"(?=\\\\()\",push:[{token:\"punctuation.separator.clauses.erlang\",regex:\";|(?=\\\\.)\",next:\"pop\"},{include:\"#parenthesized-expression\"},{include:\"#internal-function-parts\"}]},{include:\"#everything-else\"},{defaultToken:\"meta.function.erlang\"}]}],\"#function-call\":[{token:\"meta.function-call.erlang\",regex:\"(?=(?:[a-z][a-zA-Z\\\\d@_]*|'[^']*')\\\\s*(?:\\\\(|:\\\\s*(?:[a-z][a-zA-Z\\\\d@_]*|'[^']*')\\\\s*\\\\())\",push:[{token:\"punctuation.definition.parameters.end.erlang\",regex:\"\\\\)\",next:\"pop\"},{token:[\"entity.name.type.class.module.erlang\",\"text\",\"punctuation.separator.module-function.erlang\",\"text\",\"entity.name.function.guard.erlang\",\"text\",\"punctuation.definition.parameters.begin.erlang\"],regex:\"(?:(erlang)(\\\\s*)(:)(\\\\s*))?(is_atom|is_binary|is_constant|is_float|is_function|is_integer|is_list|is_number|is_pid|is_port|is_reference|is_tuple|is_record|abs|element|hd|length|node|round|self|size|tl|trunc)(\\\\s*)(\\\\()\",push:[{token:\"text\",regex:\"(?=\\\\))\",next:\"pop\"},{token:\"punctuation.separator.parameters.erlang\",regex:\",\"},{include:\"#everything-else\"}]},{token:[\"entity.name.type.class.module.erlang\",\"text\",\"punctuation.separator.module-function.erlang\",\"text\",\"entity.name.function.erlang\",\"text\",\"punctuation.definition.parameters.begin.erlang\"],regex:\"(?:([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)(:)(\\\\s*))?([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)(\\\\()\",push:[{token:\"text\",regex:\"(?=\\\\))\",next:\"pop\"},{token:\"punctuation.separator.parameters.erlang\",regex:\",\"},{include:\"#everything-else\"}]},{defaultToken:\"meta.function-call.erlang\"}]}],\"#import-export-directive\":[{token:[\"meta.directive.import.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.import.erlang\",\"keyword.control.directive.import.erlang\",\"meta.directive.import.erlang\",\"punctuation.definition.parameters.begin.erlang\",\"meta.directive.import.erlang\",\"entity.name.type.class.module.erlang\",\"meta.directive.import.erlang\",\"punctuation.separator.parameters.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(import)(\\\\s*)(\\\\()(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)(,)\",push:[{token:[\"punctuation.definition.parameters.end.erlang\",\"meta.directive.import.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"(\\\\))(\\\\s*)(\\\\.)\",next:\"pop\"},{include:\"#internal-function-list\"},{defaultToken:\"meta.directive.import.erlang\"}]},{token:[\"meta.directive.export.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.export.erlang\",\"keyword.control.directive.export.erlang\",\"meta.directive.export.erlang\",\"punctuation.definition.parameters.begin.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(export)(\\\\s*)(\\\\()\",push:[{token:[\"punctuation.definition.parameters.end.erlang\",\"meta.directive.export.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"(\\\\))(\\\\s*)(\\\\.)\",next:\"pop\"},{include:\"#internal-function-list\"},{defaultToken:\"meta.directive.export.erlang\"}]}],\"#internal-expression-punctuation\":[{token:[\"punctuation.separator.clause-head-body.erlang\",\"punctuation.separator.clauses.erlang\",\"punctuation.separator.expressions.erlang\"],regex:\"(->)|(;)|(,)\"}],\"#internal-function-list\":[{token:\"punctuation.definition.list.begin.erlang\",regex:\"\\\\[\",push:[{token:\"punctuation.definition.list.end.erlang\",regex:\"\\\\]\",next:\"pop\"},{token:[\"entity.name.function.erlang\",\"text\",\"punctuation.separator.function-arity.erlang\"],regex:\"([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)(/)\",push:[{token:\"punctuation.separator.list.erlang\",regex:\",|(?=\\\\])\",next:\"pop\"},{include:\"#everything-else\"}]},{include:\"#everything-else\"},{defaultToken:\"meta.structure.list.function.erlang\"}]}],\"#internal-function-parts\":[{token:\"text\",regex:\"(?=\\\\()\",push:[{token:\"punctuation.separator.clause-head-body.erlang\",regex:\"->\",next:\"pop\"},{token:\"punctuation.definition.parameters.begin.erlang\",regex:\"\\\\(\",push:[{token:\"punctuation.definition.parameters.end.erlang\",regex:\"\\\\)\",next:\"pop\"},{token:\"punctuation.separator.parameters.erlang\",regex:\",\"},{include:\"#everything-else\"}]},{token:\"punctuation.separator.guards.erlang\",regex:\",|;\"},{include:\"#everything-else\"}]},{token:\"punctuation.separator.expressions.erlang\",regex:\",\"},{include:\"#everything-else\"}],\"#internal-record-body\":[{token:\"punctuation.definition.class.record.begin.erlang\",regex:\"\\\\{\",push:[{token:\"meta.structure.record.erlang\",regex:\"(?=\\\\})\",next:\"pop\"},{token:[\"variable.other.field.erlang\",\"variable.language.omitted.field.erlang\",\"text\",\"keyword.operator.assignment.erlang\"],regex:\"(?:([a-z][a-zA-Z\\\\d@_]*|'[^']*')|(_))(\\\\s*)(=|::)\",push:[{token:\"punctuation.separator.class.record.erlang\",regex:\",|(?=\\\\})\",next:\"pop\"},{include:\"#everything-else\"}]},{token:[\"variable.other.field.erlang\",\"text\",\"punctuation.separator.class.record.erlang\"],regex:\"([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)((?:,)?)\"},{include:\"#everything-else\"},{defaultToken:\"meta.structure.record.erlang\"}]}],\"#internal-type-specifiers\":[{token:\"punctuation.separator.value-type.erlang\",regex:\"/\",push:[{token:\"text\",regex:\"(?=,|:|>>)\",next:\"pop\"},{token:[\"storage.type.erlang\",\"storage.modifier.signedness.erlang\",\"storage.modifier.endianness.erlang\",\"storage.modifier.unit.erlang\",\"punctuation.separator.type-specifiers.erlang\"],regex:\"(integer|float|binary|bytes|bitstring|bits)|(signed|unsigned)|(big|little|native)|(unit)|(-)\"}]}],\"#keyword\":[{token:\"keyword.control.erlang\",regex:\"\\\\b(?:after|begin|case|catch|cond|end|fun|if|let|of|query|try|receive|when)\\\\b\"}],\"#list\":[{token:\"punctuation.definition.list.begin.erlang\",regex:\"\\\\[\",push:[{token:\"punctuation.definition.list.end.erlang\",regex:\"\\\\]\",next:\"pop\"},{token:\"punctuation.separator.list.erlang\",regex:\"\\\\||\\\\|\\\\||,\"},{include:\"#everything-else\"},{defaultToken:\"meta.structure.list.erlang\"}]}],\"#macro-directive\":[{token:[\"meta.directive.ifdef.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.ifdef.erlang\",\"keyword.control.directive.ifdef.erlang\",\"meta.directive.ifdef.erlang\",\"punctuation.definition.parameters.begin.erlang\",\"meta.directive.ifdef.erlang\",\"entity.name.function.macro.erlang\",\"meta.directive.ifdef.erlang\",\"punctuation.definition.parameters.end.erlang\",\"meta.directive.ifdef.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(ifdef)(\\\\s*)(\\\\()(\\\\s*)([a-zA-Z\\\\d@_]+)(\\\\s*)(\\\\))(\\\\s*)(\\\\.)\"},{token:[\"meta.directive.ifndef.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.ifndef.erlang\",\"keyword.control.directive.ifndef.erlang\",\"meta.directive.ifndef.erlang\",\"punctuation.definition.parameters.begin.erlang\",\"meta.directive.ifndef.erlang\",\"entity.name.function.macro.erlang\",\"meta.directive.ifndef.erlang\",\"punctuation.definition.parameters.end.erlang\",\"meta.directive.ifndef.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(ifndef)(\\\\s*)(\\\\()(\\\\s*)([a-zA-Z\\\\d@_]+)(\\\\s*)(\\\\))(\\\\s*)(\\\\.)\"},{token:[\"meta.directive.undef.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.undef.erlang\",\"keyword.control.directive.undef.erlang\",\"meta.directive.undef.erlang\",\"punctuation.definition.parameters.begin.erlang\",\"meta.directive.undef.erlang\",\"entity.name.function.macro.erlang\",\"meta.directive.undef.erlang\",\"punctuation.definition.parameters.end.erlang\",\"meta.directive.undef.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(undef)(\\\\s*)(\\\\()(\\\\s*)([a-zA-Z\\\\d@_]+)(\\\\s*)(\\\\))(\\\\s*)(\\\\.)\"}],\"#macro-usage\":[{token:[\"keyword.operator.macro.erlang\",\"meta.macro-usage.erlang\",\"entity.name.function.macro.erlang\"],regex:\"(\\\\?\\\\??)(\\\\s*)([a-zA-Z\\\\d@_]+)\"}],\"#module-directive\":[{token:[\"meta.directive.module.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.module.erlang\",\"keyword.control.directive.module.erlang\",\"meta.directive.module.erlang\",\"punctuation.definition.parameters.begin.erlang\",\"meta.directive.module.erlang\",\"entity.name.type.class.module.definition.erlang\",\"meta.directive.module.erlang\",\"punctuation.definition.parameters.end.erlang\",\"meta.directive.module.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(module)(\\\\s*)(\\\\()(\\\\s*)([a-z][a-zA-Z\\\\d@_]*)(\\\\s*)(\\\\))(\\\\s*)(\\\\.)\"}],\"#number\":[{token:\"text\",regex:\"(?=\\\\d)\",push:[{token:\"text\",regex:\"(?!\\\\d)\",next:\"pop\"},{token:[\"constant.numeric.float.erlang\",\"punctuation.separator.integer-float.erlang\",\"constant.numeric.float.erlang\",\"punctuation.separator.float-exponent.erlang\"],regex:\"(\\\\d+)(\\\\.)(\\\\d+)((?:[eE][\\\\+\\\\-]?\\\\d+)?)\"},{token:[\"constant.numeric.integer.binary.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.binary.erlang\"],regex:\"(2)(#)([0-1]+)\"},{token:[\"constant.numeric.integer.base-3.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-3.erlang\"],regex:\"(3)(#)([0-2]+)\"},{token:[\"constant.numeric.integer.base-4.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-4.erlang\"],regex:\"(4)(#)([0-3]+)\"},{token:[\"constant.numeric.integer.base-5.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-5.erlang\"],regex:\"(5)(#)([0-4]+)\"},{token:[\"constant.numeric.integer.base-6.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-6.erlang\"],regex:\"(6)(#)([0-5]+)\"},{token:[\"constant.numeric.integer.base-7.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-7.erlang\"],regex:\"(7)(#)([0-6]+)\"},{token:[\"constant.numeric.integer.octal.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.octal.erlang\"],regex:\"(8)(#)([0-7]+)\"},{token:[\"constant.numeric.integer.base-9.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-9.erlang\"],regex:\"(9)(#)([0-8]+)\"},{token:[\"constant.numeric.integer.decimal.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.decimal.erlang\"],regex:\"(10)(#)(\\\\d+)\"},{token:[\"constant.numeric.integer.base-11.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-11.erlang\"],regex:\"(11)(#)([\\\\daA]+)\"},{token:[\"constant.numeric.integer.base-12.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-12.erlang\"],regex:\"(12)(#)([\\\\da-bA-B]+)\"},{token:[\"constant.numeric.integer.base-13.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-13.erlang\"],regex:\"(13)(#)([\\\\da-cA-C]+)\"},{token:[\"constant.numeric.integer.base-14.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-14.erlang\"],regex:\"(14)(#)([\\\\da-dA-D]+)\"},{token:[\"constant.numeric.integer.base-15.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-15.erlang\"],regex:\"(15)(#)([\\\\da-eA-E]+)\"},{token:[\"constant.numeric.integer.hexadecimal.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.hexadecimal.erlang\"],regex:\"(16)(#)([\\\\da-fA-F]+)\"},{token:[\"constant.numeric.integer.base-17.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-17.erlang\"],regex:\"(17)(#)([\\\\da-gA-G]+)\"},{token:[\"constant.numeric.integer.base-18.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-18.erlang\"],regex:\"(18)(#)([\\\\da-hA-H]+)\"},{token:[\"constant.numeric.integer.base-19.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-19.erlang\"],regex:\"(19)(#)([\\\\da-iA-I]+)\"},{token:[\"constant.numeric.integer.base-20.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-20.erlang\"],regex:\"(20)(#)([\\\\da-jA-J]+)\"},{token:[\"constant.numeric.integer.base-21.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-21.erlang\"],regex:\"(21)(#)([\\\\da-kA-K]+)\"},{token:[\"constant.numeric.integer.base-22.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-22.erlang\"],regex:\"(22)(#)([\\\\da-lA-L]+)\"},{token:[\"constant.numeric.integer.base-23.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-23.erlang\"],regex:\"(23)(#)([\\\\da-mA-M]+)\"},{token:[\"constant.numeric.integer.base-24.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-24.erlang\"],regex:\"(24)(#)([\\\\da-nA-N]+)\"},{token:[\"constant.numeric.integer.base-25.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-25.erlang\"],regex:\"(25)(#)([\\\\da-oA-O]+)\"},{token:[\"constant.numeric.integer.base-26.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-26.erlang\"],regex:\"(26)(#)([\\\\da-pA-P]+)\"},{token:[\"constant.numeric.integer.base-27.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-27.erlang\"],regex:\"(27)(#)([\\\\da-qA-Q]+)\"},{token:[\"constant.numeric.integer.base-28.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-28.erlang\"],regex:\"(28)(#)([\\\\da-rA-R]+)\"},{token:[\"constant.numeric.integer.base-29.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-29.erlang\"],regex:\"(29)(#)([\\\\da-sA-S]+)\"},{token:[\"constant.numeric.integer.base-30.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-30.erlang\"],regex:\"(30)(#)([\\\\da-tA-T]+)\"},{token:[\"constant.numeric.integer.base-31.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-31.erlang\"],regex:\"(31)(#)([\\\\da-uA-U]+)\"},{token:[\"constant.numeric.integer.base-32.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-32.erlang\"],regex:\"(32)(#)([\\\\da-vA-V]+)\"},{token:[\"constant.numeric.integer.base-33.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-33.erlang\"],regex:\"(33)(#)([\\\\da-wA-W]+)\"},{token:[\"constant.numeric.integer.base-34.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-34.erlang\"],regex:\"(34)(#)([\\\\da-xA-X]+)\"},{token:[\"constant.numeric.integer.base-35.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-35.erlang\"],regex:\"(35)(#)([\\\\da-yA-Y]+)\"},{token:[\"constant.numeric.integer.base-36.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-36.erlang\"],regex:\"(36)(#)([\\\\da-zA-Z]+)\"},{token:\"invalid.illegal.integer.erlang\",regex:\"\\\\d+#[\\\\da-zA-Z]+\"},{token:\"constant.numeric.integer.decimal.erlang\",regex:\"\\\\d+\"}]}],\"#parenthesized-expression\":[{token:\"punctuation.section.expression.begin.erlang\",regex:\"\\\\(\",push:[{token:\"punctuation.section.expression.end.erlang\",regex:\"\\\\)\",next:\"pop\"},{include:\"#everything-else\"},{defaultToken:\"meta.expression.parenthesized\"}]}],\"#record-directive\":[{token:[\"meta.directive.record.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.record.erlang\",\"keyword.control.directive.import.erlang\",\"meta.directive.record.erlang\",\"punctuation.definition.parameters.begin.erlang\",\"meta.directive.record.erlang\",\"entity.name.type.class.record.definition.erlang\",\"meta.directive.record.erlang\",\"punctuation.separator.parameters.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(record)(\\\\s*)(\\\\()(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)(,)\",push:[{token:[\"punctuation.definition.class.record.end.erlang\",\"meta.directive.record.erlang\",\"punctuation.definition.parameters.end.erlang\",\"meta.directive.record.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"(\\\\})(\\\\s*)(\\\\))(\\\\s*)(\\\\.)\",next:\"pop\"},{include:\"#internal-record-body\"},{defaultToken:\"meta.directive.record.erlang\"}]}],\"#record-usage\":[{token:[\"keyword.operator.record.erlang\",\"meta.record-usage.erlang\",\"entity.name.type.class.record.erlang\",\"meta.record-usage.erlang\",\"punctuation.separator.record-field.erlang\",\"meta.record-usage.erlang\",\"variable.other.field.erlang\"],regex:\"(#)(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)(\\\\.)(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|'[^']*')\"},{token:[\"keyword.operator.record.erlang\",\"meta.record-usage.erlang\",\"entity.name.type.class.record.erlang\"],regex:\"(#)(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|'[^']*')\",push:[{token:\"punctuation.definition.class.record.end.erlang\",regex:\"\\\\}\",next:\"pop\"},{include:\"#internal-record-body\"},{defaultToken:\"meta.record-usage.erlang\"}]}],\"#string\":[{token:\"punctuation.definition.string.begin.erlang\",regex:'\"',push:[{token:\"punctuation.definition.string.end.erlang\",regex:'\"',next:\"pop\"},{token:[\"punctuation.definition.escape.erlang\",\"constant.character.escape.erlang\",\"punctuation.definition.escape.erlang\",\"constant.character.escape.erlang\",\"constant.character.escape.erlang\"],regex:\"(\\\\\\\\)(?:([bdefnrstv\\\\\\\\'\\\"])|(\\\\^)([@-_])|([0-7]{1,3}))\"},{token:\"invalid.illegal.string.erlang\",regex:\"\\\\\\\\\\\\^?.?\"},{token:[\"punctuation.definition.placeholder.erlang\",\"punctuation.separator.placeholder-parts.erlang\",\"constant.other.placeholder.erlang\",\"punctuation.separator.placeholder-parts.erlang\",\"punctuation.separator.placeholder-parts.erlang\",\"constant.other.placeholder.erlang\",\"punctuation.separator.placeholder-parts.erlang\",\"punctuation.separator.placeholder-parts.erlang\",\"punctuation.separator.placeholder-parts.erlang\",\"constant.other.placeholder.erlang\",\"constant.other.placeholder.erlang\"],regex:\"(~)(?:((?:\\\\-)?)(\\\\d+)|(\\\\*))?(?:(\\\\.)(?:(\\\\d+)|(\\\\*)))?(?:(\\\\.)(?:(\\\\*)|(.)))?([~cfegswpWPBX#bx\\\\+ni])\"},{token:[\"punctuation.definition.placeholder.erlang\",\"punctuation.separator.placeholder-parts.erlang\",\"constant.other.placeholder.erlang\",\"constant.other.placeholder.erlang\"],regex:\"(~)((?:\\\\*)?)((?:\\\\d+)?)([~du\\\\-#fsacl])\"},{token:\"invalid.illegal.string.erlang\",regex:\"~.?\"},{defaultToken:\"string.quoted.double.erlang\"}]}],\"#symbolic-operator\":[{token:\"keyword.operator.symbolic.erlang\",regex:\"\\\\+\\\\+|\\\\+|--|-|\\\\*|/=|/|=/=|=:=|==|=<|=|<-|<|>=|>|!|::\"}],\"#textual-operator\":[{token:\"keyword.operator.textual.erlang\",regex:\"\\\\b(?:andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\\\\b\"}],\"#tuple\":[{token:\"punctuation.definition.tuple.begin.erlang\",regex:\"\\\\{\",push:[{token:\"punctuation.definition.tuple.end.erlang\",regex:\"\\\\}\",next:\"pop\"},{token:\"punctuation.separator.tuple.erlang\",regex:\",\"},{include:\"#everything-else\"},{defaultToken:\"meta.structure.tuple.erlang\"}]}],\"#variable\":[{token:[\"variable.other.erlang\",\"variable.language.omitted.erlang\"],regex:\"(_[a-zA-Z\\\\d@_]+|[A-Z][a-zA-Z\\\\d@_]*)|(_)\"}]},this.normalizeRules()};s.metaData={comment:\"The recognition of function definitions and compiler directives (such as module, record and macro definitions) requires that each of the aforementioned constructs must be the first string inside a line (except for whitespace).  Also, the function/module/record/macro names must be given unquoted.  -- desp\",fileTypes:[\"erl\",\"hrl\"],keyEquivalent:\"^~E\",name:\"Erlang\",scopeName:\"source.erlang\"},r.inherits(s,i),t.ErlangHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/erlang\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/erlang_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./erlang_highlight_rules\").ErlangHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"%\",this.blockComment=null,this.$id=\"ace/mode/erlang\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-forth.js",
    "content": "ace.define(\"ace/mode/forth_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{include:\"#forth\"}],\"#comment\":[{token:\"comment.line.double-dash.forth\",regex:\"(?:^|\\\\s)--\\\\s.*$\",comment:\"line comments for iForth\"},{token:\"comment.line.backslash.forth\",regex:\"(?:^|\\\\s)\\\\\\\\[\\\\s\\\\S]*$\",comment:\"ANSI line comment\"},{token:\"comment.line.backslash-g.forth\",regex:\"(?:^|\\\\s)\\\\\\\\[Gg] .*$\",comment:\"gForth line comment\"},{token:\"comment.block.forth\",regex:\"(?:^|\\\\s)\\\\(\\\\*(?=\\\\s|$)\",push:[{token:\"comment.block.forth\",regex:\"(?:^|\\\\s)\\\\*\\\\)(?=\\\\s|$)\",next:\"pop\"},{defaultToken:\"comment.block.forth\"}],comment:\"multiline comments for iForth\"},{token:\"comment.block.documentation.forth\",regex:\"\\\\bDOC\\\\b\",caseInsensitive:!0,push:[{token:\"comment.block.documentation.forth\",regex:\"\\\\bENDDOC\\\\b\",caseInsensitive:!0,next:\"pop\"},{defaultToken:\"comment.block.documentation.forth\"}],comment:\"documentation comments for iForth\"},{token:\"comment.line.parentheses.forth\",regex:\"(?:^|\\\\s)\\\\.?\\\\( [^)]*\\\\)\",comment:\"ANSI line comment\"}],\"#constant\":[{token:\"constant.language.forth\",regex:\"(?:^|\\\\s)(?:TRUE|FALSE|BL|PI|CELL|C/L|R/O|W/O|R/W)(?=\\\\s|$)\",caseInsensitive:!0},{token:\"constant.numeric.forth\",regex:\"(?:^|\\\\s)[$#%]?[-+]?[0-9]+(?:\\\\.[0-9]*e-?[0-9]+|\\\\.?[0-9a-fA-F]*)(?=\\\\s|$)\"},{token:\"constant.character.forth\",regex:\"(?:^|\\\\s)(?:[&^]\\\\S|(?:\\\"|')\\\\S(?:\\\"|'))(?=\\\\s|$)\"}],\"#forth\":[{include:\"#constant\"},{include:\"#comment\"},{include:\"#string\"},{include:\"#word\"},{include:\"#variable\"},{include:\"#storage\"},{include:\"#word-def\"}],\"#storage\":[{token:\"storage.type.forth\",regex:\"(?:^|\\\\s)(?:2CONSTANT|2VARIABLE|ALIAS|CONSTANT|CREATE-INTERPRET/COMPILE[:]?|CREATE|DEFER|FCONSTANT|FIELD|FVARIABLE|USER|VALUE|VARIABLE|VOCABULARY)(?=\\\\s|$)\",caseInsensitive:!0}],\"#string\":[{token:\"string.quoted.double.forth\",regex:'(ABORT\" |BREAK\" |\\\\.\" |C\" |0\"|S\\\\\\\\?\" )([^\"]+\")',caseInsensitive:!0},{token:\"string.unquoted.forth\",regex:\"(?:INCLUDE|NEEDS|REQUIRE|USE)[ ]\\\\S+(?=\\\\s|$)\",caseInsensitive:!0}],\"#variable\":[{token:\"variable.language.forth\",regex:\"\\\\b(?:I|J)\\\\b\",caseInsensitive:!0}],\"#word\":[{token:\"keyword.control.immediate.forth\",regex:\"(?:^|\\\\s)\\\\[(?:\\\\?DO|\\\\+LOOP|AGAIN|BEGIN|DEFINED|DO|ELSE|ENDIF|FOR|IF|IFDEF|IFUNDEF|LOOP|NEXT|REPEAT|THEN|UNTIL|WHILE)\\\\](?=\\\\s|$)\",caseInsensitive:!0},{token:\"keyword.other.immediate.forth\",regex:\"(?:^|\\\\s)(?:COMPILE-ONLY|IMMEDIATE|IS|RESTRICT|TO|WHAT'S|])(?=\\\\s|$)\",caseInsensitive:!0},{token:\"keyword.control.compile-only.forth\",regex:'(?:^|\\\\s)(?:-DO|\\\\-LOOP|\\\\?DO|\\\\?LEAVE|\\\\+DO|\\\\+LOOP|ABORT\\\\\"|AGAIN|AHEAD|BEGIN|CASE|DO|ELSE|ENDCASE|ENDIF|ENDOF|ENDTRY\\\\-IFERROR|ENDTRY|FOR|IF|IFERROR|LEAVE|LOOP|NEXT|RECOVER|REPEAT|RESTORE|THEN|TRY|U\\\\-DO|U\\\\+DO|UNTIL|WHILE)(?=\\\\s|$)',caseInsensitive:!0},{token:\"keyword.other.compile-only.forth\",regex:\"(?:^|\\\\s)(?:\\\\?DUP-0=-IF|\\\\?DUP-IF|\\\\)|\\\\[|\\\\['\\\\]|\\\\[CHAR\\\\]|\\\\[COMPILE\\\\]|\\\\[IS\\\\]|\\\\[TO\\\\]|<COMPILATION|<INTERPRETATION|ASSERT\\\\(|ASSERT0\\\\(|ASSERT1\\\\(|ASSERT2\\\\(|ASSERT3\\\\(|COMPILATION>|DEFERS|DOES>|INTERPRETATION>|OF|POSTPONE)(?=\\\\s|$)\",caseInsensitive:!0},{token:\"keyword.other.non-immediate.forth\",regex:\"(?:^|\\\\s)(?:'|<IS>|<TO>|CHAR|END-STRUCT|INCLUDE[D]?|LOAD|NEEDS|REQUIRE[D]?|REVISION|SEE|STRUCT|THRU|USE)(?=\\\\s|$)\",caseInsensitive:!0},{token:\"keyword.other.warning.forth\",regex:'(?:^|\\\\s)(?:~~|BREAK:|BREAK\"|DBG)(?=\\\\s|$)',caseInsensitive:!0}],\"#word-def\":[{token:[\"keyword.other.compile-only.forth\",\"keyword.other.compile-only.forth\",\"meta.block.forth\",\"entity.name.function.forth\"],regex:\"(:NONAME)|(^:|\\\\s:)(\\\\s)(\\\\S+)(?=\\\\s|$)\",caseInsensitive:!0,push:[{token:\"keyword.other.compile-only.forth\",regex:\";(?:CODE)?\",caseInsensitive:!0,next:\"pop\"},{include:\"#constant\"},{include:\"#comment\"},{include:\"#string\"},{include:\"#word\"},{include:\"#variable\"},{include:\"#storage\"},{defaultToken:\"meta.block.forth\"}]}]},this.normalizeRules()};s.metaData={fileTypes:[\"frt\",\"fs\",\"ldr\",\"fth\",\"4th\"],foldingStartMarker:\"/\\\\*\\\\*|\\\\{\\\\s*$\",foldingStopMarker:\"\\\\*\\\\*/|^\\\\s*\\\\}\",keyEquivalent:\"^~F\",name:\"Forth\",scopeName:\"source.forth\"},r.inherits(s,i),t.ForthHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/forth\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/forth_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./forth_highlight_rules\").ForthHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.blockComment=null,this.$id=\"ace/mode/forth\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-fortran.js",
    "content": "ace.define(\"ace/mode/fortran_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"call|case|contains|continue|cycle|do|else|elseif|end|enddo|endif|function|if|implicit|in|include|inout|intent|module|none|only|out|print|program|return|select|status|stop|subroutine|return|then|use|while|write|CALL|CASE|CONTAINS|CONTINUE|CYCLE|DO|ELSE|ELSEIF|END|ENDDO|ENDIF|FUNCTION|IF|IMPLICIT|IN|INCLUDE|INOUT|INTENT|MODULE|NONE|ONLY|OUT|PRINT|PROGRAM|RETURN|SELECT|STATUS|STOP|SUBROUTINE|RETURN|THEN|USE|WHILE|WRITE\",t=\"and|or|not|eq|ne|gt|ge|lt|le|AND|OR|NOT|EQ|NE|GT|GE|LT|LE\",n=\"true|false|TRUE|FALSE\",r=\"abs|achar|acos|acosh|adjustl|adjustr|aimag|aint|all|allocate|anint|any|asin|asinh|associated|atan|atan2|atanh|bessel_j0|bessel_j1|bessel_jn|bessel_y0|bessel_y1|bessel_yn|bge|bgt|bit_size|ble|blt|btest|ceiling|char|cmplx|conjg|cos|cosh|count|cpu_time|cshift|date_and_time|dble|deallocate|digits|dim|dot_product|dprod|dshiftl|dshiftr|dsqrt|eoshift|epsilon|erf|erfc|erfc_scaled|exp|float|floor|format|fraction|gamma|input|len|lge|lgt|lle|llt|log|log10|maskl|maskr|matmul|max|maxloc|maxval|merge|min|minloc|minval|mod|modulo|nint|not|norm2|null|nullify|pack|parity|popcnt|poppar|precision|present|product|radix|random_number|random_seed|range|repeat|reshape|round|rrspacing|same_type_as|scale|scan|selected_char_kind|selected_int_kind|selected_real_kind|set_exponent|shape|shifta|shiftl|shiftr|sign|sin|sinh|size|sngl|spacing|spread|sqrt|sum|system_clock|tan|tanh|tiny|trailz|transfer|transpose|trim|ubound|unpack|verify|ABS|ACHAR|ACOS|ACOSH|ADJUSTL|ADJUSTR|AIMAG|AINT|ALL|ALLOCATE|ANINT|ANY|ASIN|ASINH|ASSOCIATED|ATAN|ATAN2|ATANH|BESSEL_J0|BESSEL_J1|BESSEL_JN|BESSEL_Y0|BESSEL_Y1|BESSEL_YN|BGE|BGT|BIT_SIZE|BLE|BLT|BTEST|CEILING|CHAR|CMPLX|CONJG|COS|COSH|COUNT|CPU_TIME|CSHIFT|DATE_AND_TIME|DBLE|DEALLOCATE|DIGITS|DIM|DOT_PRODUCT|DPROD|DSHIFTL|DSHIFTR|DSQRT|EOSHIFT|EPSILON|ERF|ERFC|ERFC_SCALED|EXP|FLOAT|FLOOR|FORMAT|FRACTION|GAMMA|INPUT|LEN|LGE|LGT|LLE|LLT|LOG|LOG10|MASKL|MASKR|MATMUL|MAX|MAXLOC|MAXVAL|MERGE|MIN|MINLOC|MINVAL|MOD|MODULO|NINT|NOT|NORM2|NULL|NULLIFY|PACK|PARITY|POPCNT|POPPAR|PRECISION|PRESENT|PRODUCT|RADIX|RANDOM_NUMBER|RANDOM_SEED|RANGE|REPEAT|RESHAPE|ROUND|RRSPACING|SAME_TYPE_AS|SCALE|SCAN|SELECTED_CHAR_KIND|SELECTED_INT_KIND|SELECTED_REAL_KIND|SET_EXPONENT|SHAPE|SHIFTA|SHIFTL|SHIFTR|SIGN|SIN|SINH|SIZE|SNGL|SPACING|SPREAD|SQRT|SUM|SYSTEM_CLOCK|TAN|TANH|TINY|TRAILZ|TRANSFER|TRANSPOSE|TRIM|UBOUND|UNPACK|VERIFY\",i=\"logical|character|integer|real|type|LOGICAL|CHARACTER|INTEGER|REAL|TYPE\",s=\"allocatable|dimension|intent|parameter|pointer|target|private|public|ALLOCATABLE|DIMENSION|INTENT|PARAMETER|POINTER|TARGET|PRIVATE|PUBLIC\",o=this.createKeywordMapper({\"invalid.deprecated\":\"debugger\",\"support.function\":r,\"constant.language\":n,keyword:e,\"keyword.operator\":t,\"storage.type\":i,\"storage.modifier\":s},\"identifier\"),u=\"(?:r|u|ur|R|U|UR|Ur|uR)?\",a=\"(?:(?:[1-9]\\\\d*)|(?:0))\",f=\"(?:0[oO]?[0-7]+)\",l=\"(?:0[xX][\\\\dA-Fa-f]+)\",c=\"(?:0[bB][01]+)\",h=\"(?:\"+a+\"|\"+f+\"|\"+l+\"|\"+c+\")\",p=\"(?:[eE][+-]?\\\\d+)\",d=\"(?:\\\\.\\\\d+)\",v=\"(?:\\\\d+)\",m=\"(?:(?:\"+v+\"?\"+d+\")|(?:\"+v+\"\\\\.))\",g=\"(?:(?:\"+m+\"|\"+v+\")\"+p+\")\",y=\"(?:\"+g+\"|\"+m+\")\",b=\"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";this.$rules={start:[{token:\"comment\",regex:\"!.*$\"},{token:\"string\",regex:u+'\"{3}',next:\"qqstring3\"},{token:\"string\",regex:u+'\"(?=.)',next:\"qqstring\"},{token:\"string\",regex:u+\"'{3}\",next:\"qstring3\"},{token:\"string\",regex:u+\"'(?=.)\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"(?:\"+y+\"|\\\\d+)[jJ]\\\\b\"},{token:\"constant.numeric\",regex:y},{token:\"constant.numeric\",regex:h+\"[lL]\\\\b\"},{token:\"constant.numeric\",regex:h+\"\\\\b\"},{token:\"keyword\",regex:\"#\\\\s*(?:include|import|define|undef|INCLUDE|IMPORT|DEFINE|UNDEF)\\\\b\"},{token:\"keyword\",regex:\"#\\\\s*(?:endif|ifdef|else|elseif|ifndef|ENDIF|IFDEF|ELSE|ELSEIF|IFNDEF)\\\\b\"},{token:o,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text\",regex:\"\\\\s+\"}],qqstring3:[{token:\"constant.language.escape\",regex:b},{token:\"string\",regex:'\"{3}',next:\"start\"},{defaultToken:\"string\"}],qstring3:[{token:\"constant.language.escape\",regex:b},{token:\"string\",regex:'\"{3}',next:\"start\"},{defaultToken:\"string\"}],qqstring:[{token:\"constant.language.escape\",regex:b},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:b},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"start\"},{defaultToken:\"string\"}]}};r.inherits(s,i),t.FortranHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/fortran\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/fortran_highlight_rules\",\"ace/mode/folding/cstyle\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./fortran_highlight_rules\").FortranHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=e(\"../range\").Range,a=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(a,i),function(){this.lineCommentStart=\"!\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[:]\\s*$/);o&&(r+=n)}return r};var e={\"return\":1,\"break\":1,\"continue\":1,RETURN:1,BREAK:1,CONTINUE:1};this.checkOutdent=function(t,n,r){if(r!==\"\\r\\n\"&&r!==\"\\r\"&&r!==\"\\n\")return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do var s=i.pop();while(s&&(s.type==\"comment\"||s.type==\"text\"&&s.value.match(/^\\s+$/)));return s?s.type==\"keyword\"&&e[s.value]:!1},this.autoOutdent=function(e,t,n){n+=1;var r=this.$getIndent(t.getLine(n)),i=t.getTabString();r.slice(-i.length)==i&&t.remove(new u(n,r.length-i.length,n,r.length))},this.$id=\"ace/mode/fortran\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict/mode-ftl.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/ftl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"\\\\?|substring|cap_first|uncap_first|capitalize|chop_linebreak|date|time|datetime|ends_with|html|groups|index_of|j_string|js_string|json_string|last_index_of|length|lower_case|left_pad|right_pad|contains|matches|number|replace|rtf|url|split|starts_with|string|trim|upper_case|word_list|xhtml|xml\",t=\"c|round|floor|ceiling\",n=\"iso_[a-z_]+\",r=\"first|last|seq_contains|seq_index_of|seq_last_index_of|reverse|size|sort|sort_by|chunk\",i=\"keys|values\",s=\"children|parent|root|ancestors|node_name|node_type|node_namespace\",o=\"byte|double|float|int|long|short|number_to_date|number_to_time|number_to_datetime|eval|has_content|interpret|is_[a-z_]+|namespacenew\",u=e+t+n+r+i+s+o,a=\"default|exists|if_exists|web_safe\",f=\"data_model|error|globals|lang|locale|locals|main|namespace|node|current_node|now|output_encoding|template_name|url_escaping_charset|vars|version\",l=\"gt|gte|lt|lte|as|in|using\",c=\"true|false\",h=\"encoding|parse|locale|number_format|date_format|time_format|datetime_format|time_zone|url_escaping_charset|classic_compatible|strip_whitespace|strip_text|strict_syntax|ns_prefixes|attributes\";this.$rules={start:[{token:\"constant.character.entity\",regex:/&[^;]+;/},{token:\"support.function\",regex:\"\\\\?(\"+u+\")\"},{token:\"support.function.deprecated\",regex:\"\\\\?(\"+a+\")\"},{token:\"language.variable\",regex:\"\\\\.(?:\"+f+\")\"},{token:\"constant.language\",regex:\"\\\\b(\"+c+\")\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\b(?:\"+l+\")\\\\b\"},{token:\"entity.other.attribute-name\",regex:h},{token:\"string\",regex:/['\"]/,next:\"qstring\"},{token:function(e){return e.match(\"^[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?$\")?\"constant.numeric\":\"variable\"},regex:/[\\w.+\\-]+/},{token:\"keyword.operator\",regex:\"!|\\\\.|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],qstring:[{token:\"constant.character.escape\",regex:'\\\\\\\\[nrtvef\\\\\\\\\"$]'},{token:\"string\",regex:/['\"]/,next:\"start\"},{defaultToken:\"string\"}]}};r.inherits(o,s);var u=function(){i.call(this);var e=\"assign|attempt|break|case|compress|default|elseif|else|escape|fallback|function|flush|ftl|global|if|import|include|list|local|lt|macro|nested|noescape|noparse|nt|recover|recurse|return|rt|setting|stop|switch|t|visit\",t=[{token:\"comment\",regex:\"<#--\",next:\"ftl-dcomment\"},{token:\"string.interpolated\",regex:\"\\\\${\",push:\"ftl-start\"},{token:\"keyword.function\",regex:\"</?#(\"+e+\")\",push:\"ftl-start\"},{token:\"keyword.other\",regex:\"</?@[a-zA-Z\\\\.]+\",push:\"ftl-start\"}],n=[{token:\"keyword\",regex:\"/?>\",next:\"pop\"},{token:\"string.interpolated\",regex:\"}\",next:\"pop\"}];for(var r in this.$rules)this.$rules[r].unshift.apply(this.$rules[r],t);this.embedRules(o,\"ftl-\",n,[\"start\"]),this.addRules({\"ftl-dcomment\":[{token:\"comment\",regex:\".*?-->\",next:\"pop\"},{token:\"comment\",regex:\".+\"}]}),this.normalizeRules()};r.inherits(u,i),t.FtlHighlightRules=u}),ace.define(\"ace/mode/ftl\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ftl_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./ftl_highlight_rules\").FtlHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.$id=\"ace/mode/ftl\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict/mode-gcode.js",
    "content": "ace.define(\"ace/mode/gcode_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"IF|DO|WHILE|ENDWHILE|CALL|ENDIF|SUB|ENDSUB|GOTO|REPEAT|ENDREPEAT|CALL\",t=\"PI\",n=\"ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN\",r=this.createKeywordMapper({\"support.function\":n,keyword:e,\"constant.language\":t},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\(.*\\\\)\"},{token:\"comment\",regex:\"([N])([0-9]+)\"},{token:\"string\",regex:\"([G])([0-9]+\\\\.?[0-9]?)\"},{token:\"string\",regex:\"([M])([0-9]+\\\\.?[0-9]?)\"},{token:\"constant.numeric\",regex:\"([-+]?([0-9]*\\\\.?[0-9]+\\\\.?))|(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)\"},{token:r,regex:\"[A-Z]\"},{token:\"keyword.operator\",regex:\"EQ|LT|GT|NE|GE|LE|OR|XOR\"},{token:\"paren.lparen\",regex:\"[\\\\[]\"},{token:\"paren.rparen\",regex:\"[\\\\]]\"},{token:\"text\",regex:\"\\\\s+\"}]}};r.inherits(s,i),t.GcodeHighlightRules=s}),ace.define(\"ace/mode/gcode\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/gcode_highlight_rules\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./gcode_highlight_rules\").GcodeHighlightRules,o=e(\"../range\").Range,u=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.$id=\"ace/mode/gcode\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-gherkin.js",
    "content": "ace.define(\"ace/mode/gherkin_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=\"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\",o=function(){var e=[{name:\"en\",labels:\"Feature|Background|Scenario(?: Outline)?|Examples\",keywords:\"Given|When|Then|And|But\"}],t=e.map(function(e){return e.labels}).join(\"|\"),n=e.map(function(e){return e.keywords}).join(\"|\");this.$rules={start:[{token:\"constant.numeric\",regex:\"(?:(?:[1-9]\\\\d*)|(?:0))\"},{token:\"comment\",regex:\"#.*$\"},{token:\"keyword\",regex:\"(?:\"+t+\"):|(?:\"+n+\")\\\\b\"},{token:\"keyword\",regex:\"\\\\*\"},{token:\"string\",regex:'\"{3}',next:\"qqstring3\"},{token:\"string\",regex:'\"',next:\"qqstring\"},{token:\"text\",regex:\"^\\\\s*(?=@[\\\\w])\",next:[{token:\"text\",regex:\"\\\\s+\"},{token:\"variable.parameter\",regex:\"@[\\\\w]+\"},{token:\"empty\",regex:\"\",next:\"start\"}]},{token:\"comment\",regex:\"<[^>]+>\"},{token:\"comment\",regex:\"\\\\|(?=.)\",next:\"table-item\"},{token:\"comment\",regex:\"\\\\|$\",next:\"start\"}],qqstring3:[{token:\"constant.language.escape\",regex:s},{token:\"string\",regex:'\"{3}',next:\"start\"},{defaultToken:\"string\"}],qqstring:[{token:\"constant.language.escape\",regex:s},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}],\"table-item\":[{token:\"comment\",regex:/$/,next:\"start\"},{token:\"comment\",regex:/\\|/},{token:\"string\",regex:/\\\\./},{defaultToken:\"string\"}]},this.normalizeRules()};r.inherits(o,i),t.GherkinHighlightRules=o}),ace.define(\"ace/mode/gherkin\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/gherkin_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./gherkin_highlight_rules\").GherkinHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart=\"#\",this.$id=\"ace/mode/gherkin\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=\"  \",s=this.getTokenizer().getLineTokens(t,e),o=s.tokens;return console.log(e),t.match(\"[ ]*\\\\|\")&&(r+=\"| \"),o.length&&o[o.length-1].type==\"comment\"?r:(e==\"start\"&&(t.match(\"Scenario:|Feature:|Scenario Outline:|Background:\")?r+=i:t.match(\"(Given|Then).+(:)$|Examples:\")?r+=i:t.match(\"\\\\*.+\")&&(r+=\"* \")),r)}}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict/mode-gitignore.js",
    "content": "ace.define(\"ace/mode/gitignore_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment\",regex:/^\\s*#.*$/},{token:\"keyword\",regex:/^\\s*!.*$/}]},this.normalizeRules()};s.metaData={fileTypes:[\"gitignore\"],name:\"Gitignore\"},r.inherits(s,i),t.GitignoreHighlightRules=s}),ace.define(\"ace/mode/gitignore\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/gitignore_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./gitignore_highlight_rules\").GitignoreHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart=\"#\",this.$id=\"ace/mode/gitignore\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict/mode-glsl.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.cFunctions=\"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\",u=function(){var e=\"break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using\",t=\"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t\",n=\"const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\",r=\"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eqconst_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\",s=\"NULL|true|false|TRUE|FALSE|nullptr\",u=this.$keywords=this.createKeywordMapper({\"keyword.control\":e,\"storage.type\":t,\"storage.modifier\":n,\"keyword.operator\":r,\"variable.language\":\"this\",\"constant.language\":s},\"identifier\"),a=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\",f=/\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source;this.$rules={start:[{token:\"comment\",regex:\"//$\",next:\"start\"},{token:\"comment\",regex:\"//\",next:\"singleLineComment\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:\"'(?:\"+f+\"|.)?'\"},{token:\"string.start\",regex:'\"',stateName:\"qqstring\",next:[{token:\"string\",regex:/\\\\\\s*$/,next:\"qqstring\"},{token:\"constant.language.escape\",regex:f},{token:\"constant.language.escape\",regex:/%[^'\"\\\\]/},{token:\"string.end\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'R\"\\\\(',stateName:\"rawString\",next:[{token:\"string.end\",regex:'\\\\)\"',next:\"start\"},{defaultToken:\"string\"}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"keyword\",regex:\"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",next:\"directive\"},{token:\"keyword\",regex:\"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"},{token:\"support.function.C99.c\",regex:o},{token:u,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\"},{token:\"keyword.operator\",regex:/--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],singleLineComment:[{token:\"comment\",regex:/\\\\$/,next:\"singleLineComment\"},{token:\"comment\",regex:/$/,next:\"start\"},{defaultToken:\"comment\"}],directive:[{token:\"constant.other.multiline\",regex:/\\\\/},{token:\"constant.other.multiline\",regex:/.*\\\\/},{token:\"constant.other\",regex:\"\\\\s*<.+?>\",next:\"start\"},{token:\"constant.other\",regex:'\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',next:\"start\"},{token:\"constant.other\",regex:\"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",next:\"start\"},{token:\"constant.other\",regex:/[^\\\\\\/]+/,next:\"start\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/c_cpp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c_cpp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./c_cpp_highlight_rules\").c_cppHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/c_cpp\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/glsl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/c_cpp_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./c_cpp_highlight_rules\").c_cppHighlightRules,s=function(){var e=\"attribute|const|uniform|varying|break|continue|do|for|while|if|else|in|out|inout|float|int|void|bool|true|false|lowp|mediump|highp|precision|invariant|discard|return|mat2|mat3|mat4|vec2|vec3|vec4|ivec2|ivec3|ivec4|bvec2|bvec3|bvec4|sampler2D|samplerCube|struct\",t=\"radians|degrees|sin|cos|tan|asin|acos|atan|pow|exp|log|exp2|log2|sqrt|inversesqrt|abs|sign|floor|ceil|fract|mod|min|max|clamp|mix|step|smoothstep|length|distance|dot|cross|normalize|faceforward|reflect|refract|matrixCompMult|lessThan|lessThanEqual|greaterThan|greaterThanEqual|equal|notEqual|any|all|not|dFdx|dFdy|fwidth|texture2D|texture2DProj|texture2DLod|texture2DProjLod|textureCube|textureCubeLod|gl_MaxVertexAttribs|gl_MaxVertexUniformVectors|gl_MaxVaryingVectors|gl_MaxVertexTextureImageUnits|gl_MaxCombinedTextureImageUnits|gl_MaxTextureImageUnits|gl_MaxFragmentUniformVectors|gl_MaxDrawBuffers|gl_DepthRangeParameters|gl_DepthRange|gl_Position|gl_PointSize|gl_FragCoord|gl_FrontFacing|gl_PointCoord|gl_FragColor|gl_FragData\",n=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"constant.language\":t},\"identifier\");this.$rules=(new i).$rules,this.$rules.start.forEach(function(e){typeof e.token==\"function\"&&(e.token=n)})};r.inherits(s,i),t.glslHighlightRules=s}),ace.define(\"ace/mode/glsl\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/c_cpp\",\"ace/mode/glsl_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./c_cpp\").Mode,s=e(\"./glsl_highlight_rules\").glslHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.$id=\"ace/mode/glsl\"}.call(l.prototype),t.Mode=l})"
  },
  {
    "path": "lib/src-min-noconflict/mode-gobstones.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/gobstones_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"program|procedure|function|interactive|if|then|else|switch|repeat|while|foreach|in|not|div|mod|Skip|return\",t=\"False|True\",n=\"Poner|Sacar|Mover|IrAlBorde|VaciarTablero|nroBolitas|hayBolitas|puedeMover|siguiente|previo|opuesto|minBool|maxBool|minDir|maxDir|minColor|maxColor\",r=\"Verde|Rojo|Azul|Negro|Norte|Sur|Este|Oeste\",s=this.createKeywordMapper({keyword:e,\"constant.language\":t,\"support.function\":n,\"support.type\":r},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment\",regex:\"\\\\-\\\\-.*$\"},{token:\"comment\",regex:\"#.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.[\\d_]*)?(?:[eE][+-]?[\\d_]+)?)?[LlSsDdFfYy]?\\b/},{token:\"constant.language.boolean\",regex:\"(?:True|False)\\\\b\"},{token:\"keyword.operator\",regex:\":=|\\\\.\\\\.|,|;|\\\\|\\\\||\\\\/\\\\/|\\\\+|\\\\-|\\\\^|\\\\*|>|<|>=|=>|==|&&\"},{token:s,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.GobstonesHighlightRules=o}),ace.define(\"ace/mode/gobstones\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/gobstones_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript\").Mode,s=e(\"./gobstones_highlight_rules\").GobstonesHighlightRules,o=function(){i.call(this),this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.createWorker=function(e){return null},this.$id=\"ace/mode/gobstones\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict/mode-golang.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/golang_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"else|break|case|return|goto|if|const|select|continue|struct|default|switch|for|range|func|import|package|chan|defer|fallthrough|go|interface|map|range|select|type|var\",t=\"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error\",n=\"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append\",r=\"nil|true|false|iota\",s=this.createKeywordMapper({keyword:e,\"constant.language\":r,\"support.function\":n,\"support.type\":t},\"\"),o=\"\\\\\\\\(?:[0-7]{3}|x\\\\h{2}|u{4}|U\\\\h{6}|[abfnrtv'\\\"\\\\\\\\])\".replace(/\\\\h/g,\"[a-fA-F\\\\d]\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment.start\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:/\"(?:[^\"\\\\]|\\\\.)*?\"/},{token:\"string\",regex:\"`\",next:\"bqstring\"},{token:\"constant.numeric\",regex:\"'(?:[^\\\\'\\ud800-\\udbff]|[\\ud800-\\udbff][\\udc00-\\udfff]|\"+o.replace('\"',\"\")+\")'\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:[\"keyword\",\"text\",\"entity.name.function\"],regex:\"(func)(\\\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\\\b\"},{token:function(e){return e[e.length-1]==\"(\"?[{type:s(e.slice(0,-1))||\"support.function\",value:e.slice(0,-1)},{type:\"paren.lparen\",value:e.slice(-1)}]:s(e)||\"identifier\"},regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\\\\(?\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=\"},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment.end\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],bqstring:[{token:\"string\",regex:\"`\",next:\"start\"},{defaultToken:\"string\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.GolangHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/golang\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/golang_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./golang_highlight_rules\").GolangHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.foldingRules=new a,this.$behaviour=new u};r.inherits(f,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/golang\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict/mode-groovy.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/groovy_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"assert|with|abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|def|float|native|super|while\",t=\"null|Infinity|NaN|undefined\",n=\"AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object\",r=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"support.function\":n,\"constant.language\":t},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'\"\"\"',next:\"qqstring\"},{token:\"string\",regex:\"'''\",next:\"qstring\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\?:|\\\\?\\\\.|\\\\*\\\\.|<=>|=~|==~|\\\\.@|\\\\*\\\\.@|\\\\.&|as|in|is|!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],qqstring:[{token:\"constant.language.escape\",regex:/\\\\(?:u[0-9A-Fa-f]{4}|.|$)/},{token:\"constant.language.escape\",regex:/\\$[\\w\\d]+/},{token:\"constant.language.escape\",regex:/\\$\\{[^\"\\}]+\\}?/},{token:\"string\",regex:'\"{3,5}',next:\"start\"},{token:\"string\",regex:\".+?\"}],qstring:[{token:\"constant.language.escape\",regex:/\\\\(?:u[0-9A-Fa-f]{4}|.|$)/},{token:\"string\",regex:\"'{3,5}\",next:\"start\"},{token:\"string\",regex:\".+?\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.GroovyHighlightRules=o}),ace.define(\"ace/mode/groovy\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/groovy_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript\").Mode,s=e(\"./groovy_highlight_rules\").GroovyHighlightRules,o=function(){i.call(this),this.HighlightRules=s};r.inherits(o,i),function(){this.createWorker=function(e){return null},this.$id=\"ace/mode/groovy\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict/mode-haml.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/ruby_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=t.constantOtherSymbol={token:\"constant.other.symbol.ruby\",regex:\"[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?\"},o=t.qString={token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},u=t.qqString={token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},a=t.tString={token:\"string\",regex:\"[`](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[`]\"},f=t.constantNumericHex={token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\\\b\"},l=t.constantNumericFloat={token:\"constant.numeric\",regex:\"[+-]?\\\\d(?:\\\\d|_(?=\\\\d))*(?:(?:\\\\.\\\\d(?:\\\\d|_(?=\\\\d))*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},c=function(){var e=\"abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|validates_inclusion_of|validates_numericality_of|validates_with|validates_each|authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|cache|expire_fragment|expire_cache_for|observe|cache_sweeper|has_many|has_one|belongs_to|has_and_belongs_to_many\",t=\"alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield\",n=\"true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING\",r=\"$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|$!|root_url|flash|session|cookies|params|request|response|logger|self\",i=this.$keywords=this.createKeywordMapper({keyword:t,\"constant.language\":n,\"variable.language\":r,\"support.function\":e,\"invalid.deprecated\":\"debugger\"},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"comment\",regex:\"^=begin(?:$|\\\\s.*$)\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},[{regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)return n.unshift(\"start\",t),\"paren.lparen\";if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1)return\"paren.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.start\",regex:/\"/,push:[{token:\"constant.language.escape\",regex:/\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/},{token:\"paren.start\",regex:/#{/,push:\"start\"},{token:\"string.end\",regex:/\"/,next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:/\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/},{token:\"paren.start\",regex:/#{/,push:\"start\"},{token:\"string.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:/'/,push:[{token:\"constant.language.escape\",regex:/\\\\['\\\\]/},{token:\"string.end\",regex:/'/,next:\"pop\"},{defaultToken:\"string\"}]}],{token:\"text\",regex:\"::\"},{token:\"variable.instance\",regex:\"@{1,2}[a-zA-Z_\\\\d]+\"},{token:\"support.class\",regex:\"[A-Z][a-zA-Z_\\\\d]+\"},s,f,l,{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:i,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"punctuation.separator.key-value\",regex:\"=>\"},{stateName:\"heredoc\",onMatch:function(e,t,n){var r=e[2]==\"-\"?\"indentedHeredoc\":\"heredoc\",i=e.split(this.splitRegex);return n.push(r,i[3]),[{type:\"constant\",value:i[1]},{type:\"string\",value:i[2]},{type:\"support.class\",value:i[3]},{type:\"string\",value:i[4]}]},regex:\"(<<-?)(['\\\"`]?)([\\\\w]+)(['\\\"`]?)\",rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}],indentedHeredoc:[{token:\"string\",regex:\"^ +\"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}]}},{regex:\"$\",token:\"empty\",next:function(e,t){return t[0]===\"heredoc\"||t[0]===\"indentedHeredoc\"?t[0]:e}},{token:\"string.character\",regex:\"\\\\B\\\\?.\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"^=end(?:$|\\\\s.*$)\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.normalizeRules()};r.inherits(c,i),t.RubyHighlightRules=c}),ace.define(\"ace/mode/haml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/ruby_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=e(\"./ruby_highlight_rules\"),o=s.RubyHighlightRules,u=function(){i.call(this),this.$rules.start.unshift({token:\"punctuation.section.comment\",regex:/^\\s*\\/.*/},{token:\"string.quoted.double\",regex:\"==.+?==\"},{token:\"keyword.other.doctype\",regex:\"^!!!\\\\s*(?:[a-zA-Z0-9-_]+)?\"},s.qString,s.qqString,s.tString,{token:\"character.escape.haml\",regex:\"^\\\\s*\\\\\\\\.\"},{token:\"text\",regex:/^\\s*/,next:\"tag_single\"},s.constantNumericHex,s.constantNumericFloat,s.constantOtherSymbol,{token:\"text\",regex:\"=|-|~\",next:\"embedded_ruby\"}),this.$rules.tag_single=[{token:\"meta.tag.haml\",regex:/(%[\\w:\\-]+)/},{token:\"keyword.attribute-name.class.haml\",regex:\"\\\\.[\\\\w-]+\"},{token:\"keyword.attribute-name.id.haml\",regex:\"#[\\\\w-]+\"},{token:\"punctuation.section\",regex:\"\\\\{\",next:\"section\"},s.constantOtherSymbol,{token:\"text\",regex:/\\s/,next:\"start\"},{token:\"empty\",regex:\"$|(?!\\\\.|#|\\\\{|\\\\[|=|-|~|\\\\/)\",next:\"start\"}],this.$rules.section=[s.constantOtherSymbol,s.qString,s.qqString,s.tString,s.constantNumericHex,s.constantNumericFloat,{token:\"punctuation.section\",regex:\"\\\\}\",next:\"start\"}],this.$rules.embedded_ruby=[s.constantNumericHex,s.constantNumericFloat,{token:\"support.class\",regex:\"[A-Z][a-zA-Z_\\\\d]+\"},{token:(new o).getKeywords(),regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:[\"keyword\",\"text\",\"text\"],regex:\"(?:do|\\\\{)(?: \\\\|[^|]+\\\\|)?$\",next:\"start\"},{token:[\"text\"],regex:\"^$\",next:\"start\"},{token:[\"text\"],regex:\"^(?!.*\\\\|\\\\s*$)\",next:\"start\"}],this.normalizeRules()};r.inherits(u,i),t.HamlHighlightRules=u}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/haml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/haml_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./haml_highlight_rules\").HamlHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.$id=\"ace/mode/haml\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-handlebars.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/handlebars_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";function s(e,t){return t.splice(0,3),t.shift()||\"start\"}var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,o=function(){i.call(this);var e={regex:\"(?={{)\",push:\"handlebars\"};for(var t in this.$rules)this.$rules[t].unshift(e);this.$rules.handlebars=[{token:\"comment.start\",regex:\"{{!--\",push:[{token:\"comment.end\",regex:\"--}}\",next:s},{defaultToken:\"comment\"}]},{token:\"comment.start\",regex:\"{{!\",push:[{token:\"comment.end\",regex:\"}}\",next:s},{defaultToken:\"comment\"}]},{token:\"support.function\",regex:\"{{{\",push:[{token:\"support.function\",regex:\"}}}\",next:s},{token:\"variable.parameter\",regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\"}]},{token:\"storage.type.start\",regex:\"{{[#\\\\^/&]?\",push:[{token:\"storage.type.end\",regex:\"}}\",next:s},{token:\"variable.parameter\",regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\"}]}],this.normalizeRules()};r.inherits(o,i),t.HandlebarsHighlightRules=o}),ace.define(\"ace/mode/behaviour/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour/xml\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour/xml\").XmlBehaviour,s=function(){i.call(this)};r.inherits(s,i),t.HtmlBehaviour=s}),ace.define(\"ace/mode/handlebars\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/handlebars_highlight_rules\",\"ace/mode/behaviour/html\",\"ace/mode/folding/html\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./handlebars_highlight_rules\").HandlebarsHighlightRules,o=e(\"./behaviour/html\").HtmlBehaviour,u=e(\"./folding/html\").FoldMode,a=function(){i.call(this),this.HighlightRules=s,this.$behaviour=new o};r.inherits(a,i),function(){this.blockComment={start:\"{{!--\",end:\"--}}\"},this.$id=\"ace/mode/handlebars\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict/mode-haskell.js",
    "content": "ace.define(\"ace/mode/haskell_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:[\"punctuation.definition.entity.haskell\",\"keyword.operator.function.infix.haskell\",\"punctuation.definition.entity.haskell\"],regex:\"(`)([a-zA-Z_']*?)(`)\",comment:\"In case this regex seems unusual for an infix operator, note that Haskell allows any ordinary function application (elem 4 [1..10]) to be rewritten as an infix expression (4 `elem` [1..10]).\"},{token:\"constant.language.unit.haskell\",regex:\"\\\\(\\\\)\"},{token:\"constant.language.empty-list.haskell\",regex:\"\\\\[\\\\]\"},{token:\"keyword.other.haskell\",regex:\"\\\\bmodule\\\\b\",push:[{token:\"keyword.other.haskell\",regex:\"\\\\bwhere\\\\b\",next:\"pop\"},{include:\"#module_name\"},{include:\"#module_exports\"},{token:\"invalid\",regex:\"[a-z]+\"},{defaultToken:\"meta.declaration.module.haskell\"}]},{token:\"keyword.other.haskell\",regex:\"\\\\bclass\\\\b\",push:[{token:\"keyword.other.haskell\",regex:\"\\\\bwhere\\\\b\",next:\"pop\"},{token:\"support.class.prelude.haskell\",regex:\"\\\\b(?:Monad|Functor|Eq|Ord|Read|Show|Num|(?:Frac|Ra)tional|Enum|Bounded|Real(?:Frac|Float)?|Integral|Floating)\\\\b\"},{token:\"entity.other.inherited-class.haskell\",regex:\"[A-Z][A-Za-z_']*\"},{token:\"variable.other.generic-type.haskell\",regex:\"\\\\b[a-z][a-zA-Z0-9_']*\\\\b\"},{defaultToken:\"meta.declaration.class.haskell\"}]},{token:\"keyword.other.haskell\",regex:\"\\\\binstance\\\\b\",push:[{token:\"keyword.other.haskell\",regex:\"\\\\bwhere\\\\b|$\",next:\"pop\"},{include:\"#type_signature\"},{defaultToken:\"meta.declaration.instance.haskell\"}]},{token:\"keyword.other.haskell\",regex:\"import\",push:[{token:\"meta.import.haskell\",regex:\"$|;|^\",next:\"pop\"},{token:\"keyword.other.haskell\",regex:\"qualified|as|hiding\"},{include:\"#module_name\"},{include:\"#module_exports\"},{defaultToken:\"meta.import.haskell\"}]},{token:[\"keyword.other.haskell\",\"meta.deriving.haskell\"],regex:\"(deriving)(\\\\s*\\\\()\",push:[{token:\"meta.deriving.haskell\",regex:\"\\\\)\",next:\"pop\"},{token:\"entity.other.inherited-class.haskell\",regex:\"\\\\b[A-Z][a-zA-Z_']*\"},{defaultToken:\"meta.deriving.haskell\"}]},{token:\"keyword.other.haskell\",regex:\"\\\\b(?:deriving|where|data|type|case|of|let|in|newtype|default)\\\\b\"},{token:\"keyword.operator.haskell\",regex:\"\\\\binfix[lr]?\\\\b\"},{token:\"keyword.control.haskell\",regex:\"\\\\b(?:do|if|then|else)\\\\b\"},{token:\"constant.numeric.float.haskell\",regex:\"\\\\b(?:[0-9]+\\\\.[0-9]+(?:[eE][+-]?[0-9]+)?|[0-9]+[eE][+-]?[0-9]+)\\\\b\",comment:\"Floats are always decimal\"},{token:\"constant.numeric.haskell\",regex:\"\\\\b(?:[0-9]+|0(?:[xX][0-9a-fA-F]+|[oO][0-7]+))\\\\b\"},{token:[\"meta.preprocessor.c\",\"punctuation.definition.preprocessor.c\",\"meta.preprocessor.c\"],regex:\"^(\\\\s*)(#)(\\\\s*\\\\w+)\",comment:'In addition to Haskell\\'s \"native\" syntax, GHC permits the C preprocessor to be run on a source file.'},{include:\"#pragma\"},{token:\"punctuation.definition.string.begin.haskell\",regex:'\"',push:[{token:\"punctuation.definition.string.end.haskell\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.haskell\",regex:\"\\\\\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\\\\\\\\\"'\\\\&])\"},{token:\"constant.character.escape.octal.haskell\",regex:\"\\\\\\\\o[0-7]+|\\\\\\\\x[0-9A-Fa-f]+|\\\\\\\\[0-9]+\"},{token:\"constant.character.escape.control.haskell\",regex:\"\\\\^[A-Z@\\\\[\\\\]\\\\\\\\\\\\^_]\"},{defaultToken:\"string.quoted.double.haskell\"}]},{token:[\"punctuation.definition.string.begin.haskell\",\"string.quoted.single.haskell\",\"constant.character.escape.haskell\",\"constant.character.escape.octal.haskell\",\"constant.character.escape.hexadecimal.haskell\",\"constant.character.escape.control.haskell\",\"punctuation.definition.string.end.haskell\"],regex:\"(')(?:([\\\\ -\\\\[\\\\]-~])|(\\\\\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\\\\\\\\\"'\\\\&]))|(\\\\\\\\o[0-7]+)|(\\\\\\\\x[0-9A-Fa-f]+)|(\\\\^[A-Z@\\\\[\\\\]\\\\\\\\\\\\^_]))(')\"},{token:[\"meta.function.type-declaration.haskell\",\"entity.name.function.haskell\",\"meta.function.type-declaration.haskell\",\"keyword.other.double-colon.haskell\"],regex:\"^(\\\\s*)([a-z_][a-zA-Z0-9_']*|\\\\([|!%$+\\\\-.,=</>]+\\\\))(\\\\s*)(::)\",push:[{token:\"meta.function.type-declaration.haskell\",regex:\"$\",next:\"pop\"},{include:\"#type_signature\"},{defaultToken:\"meta.function.type-declaration.haskell\"}]},{token:\"support.constant.haskell\",regex:\"\\\\b(?:Just|Nothing|Left|Right|True|False|LT|EQ|GT|\\\\(\\\\)|\\\\[\\\\])\\\\b\"},{token:\"constant.other.haskell\",regex:\"\\\\b[A-Z]\\\\w*\\\\b\"},{include:\"#comments\"},{token:\"support.function.prelude.haskell\",regex:\"\\\\b(?:abs|acos|acosh|all|and|any|appendFile|applyM|asTypeOf|asin|asinh|atan|atan2|atanh|break|catch|ceiling|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|div|divMod|drop|dropWhile|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromEnum|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|head|id|init|interact|ioError|isDenormalized|isIEEE|isInfinite|isNaN|isNegativeZero|iterate|last|lcm|length|lex|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|odd|or|otherwise|pi|pred|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|read|readFile|readIO|readList|readLn|readParen|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showList|showParen|showString|shows|showsPrec|significand|signum|sin|sinh|snd|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|toEnum|toInteger|toRational|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\\\\b\"},{include:\"#infix_op\"},{token:\"keyword.operator.haskell\",regex:\"[|!%$?~+:\\\\-.=</>\\\\\\\\]+\",comment:\"In case this regex seems overly general, note that Haskell permits the definition of new operators which can be nearly any string of punctuation characters, such as $%^&*.\"},{token:\"punctuation.separator.comma.haskell\",regex:\",\"}],\"#block_comment\":[{token:\"punctuation.definition.comment.haskell\",regex:\"\\\\{-(?!#)\",push:[{include:\"#block_comment\"},{token:\"punctuation.definition.comment.haskell\",regex:\"-\\\\}\",next:\"pop\"},{defaultToken:\"comment.block.haskell\"}]}],\"#comments\":[{token:\"punctuation.definition.comment.haskell\",regex:\"--.*\",push_:[{token:\"comment.line.double-dash.haskell\",regex:\"$\",next:\"pop\"},{defaultToken:\"comment.line.double-dash.haskell\"}]},{include:\"#block_comment\"}],\"#infix_op\":[{token:\"entity.name.function.infix.haskell\",regex:\"\\\\([|!%$+:\\\\-.=</>]+\\\\)|\\\\(,+\\\\)\"}],\"#module_exports\":[{token:\"meta.declaration.exports.haskell\",regex:\"\\\\(\",push:[{token:\"meta.declaration.exports.haskell.end\",regex:\"\\\\)\",next:\"pop\"},{token:\"entity.name.function.haskell\",regex:\"\\\\b[a-z][a-zA-Z_']*\"},{token:\"storage.type.haskell\",regex:\"\\\\b[A-Z][A-Za-z_']*\"},{token:\"punctuation.separator.comma.haskell\",regex:\",\"},{include:\"#infix_op\"},{token:\"meta.other.unknown.haskell\",regex:\"\\\\(.*?\\\\)\",comment:\"So named because I don't know what to call this.\"},{defaultToken:\"meta.declaration.exports.haskell.end\"}]}],\"#module_name\":[{token:\"support.other.module.haskell\",regex:\"[A-Z][A-Za-z._']*\"}],\"#pragma\":[{token:\"meta.preprocessor.haskell\",regex:\"\\\\{-#\",push:[{token:\"meta.preprocessor.haskell\",regex:\"#-\\\\}\",next:\"pop\"},{token:\"keyword.other.preprocessor.haskell\",regex:\"\\\\b(?:LANGUAGE|UNPACK|INLINE)\\\\b\"},{defaultToken:\"meta.preprocessor.haskell\"}]}],\"#type_signature\":[{token:[\"meta.class-constraint.haskell\",\"entity.other.inherited-class.haskell\",\"meta.class-constraint.haskell\",\"variable.other.generic-type.haskell\",\"meta.class-constraint.haskell\",\"keyword.other.big-arrow.haskell\"],regex:\"(\\\\(\\\\s*)([A-Z][A-Za-z]*)(\\\\s+)([a-z][A-Za-z_']*)(\\\\)\\\\s*)(=>)\"},{include:\"#pragma\"},{token:\"keyword.other.arrow.haskell\",regex:\"->\"},{token:\"keyword.other.big-arrow.haskell\",regex:\"=>\"},{token:\"support.type.prelude.haskell\",regex:\"\\\\b(?:Int(?:eger)?|Maybe|Either|Bool|Float|Double|Char|String|Ordering|ShowS|ReadS|FilePath|IO(?:Error)?)\\\\b\"},{token:\"variable.other.generic-type.haskell\",regex:\"\\\\b[a-z][a-zA-Z0-9_']*\\\\b\"},{token:\"storage.type.haskell\",regex:\"\\\\b[A-Z][a-zA-Z0-9_']*\\\\b\"},{token:\"support.constant.unit.haskell\",regex:\"\\\\(\\\\)\"},{include:\"#comments\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"hs\"],keyEquivalent:\"^~H\",name:\"Haskell\",scopeName:\"source.haskell\"},r.inherits(s,i),t.HaskellHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/haskell\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/haskell_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./haskell_highlight_rules\").HaskellHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.blockComment=null,this.$id=\"ace/mode/haskell\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-haskell_cabal.js",
    "content": "ace.define(\"ace/mode/haskell_cabal_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment\",regex:\"^\\\\s*--.*$\"},{token:[\"keyword\"],regex:/^(\\s*\\w.*?)(:(?:\\s+|$))/},{token:\"constant.numeric\",regex:/[\\d_]+(?:(?:[\\.\\d_]*)?)/},{token:\"constant.language.boolean\",regex:\"(?:true|false|TRUE|FALSE|True|False|yes|no)\\\\b\"},{token:\"markup.heading\",regex:/^(\\w.*)$/}]}};r.inherits(s,i),t.CabalHighlightRules=s}),ace.define(\"ace/mode/folding/haskell_cabal\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.isHeading=function(e,t){var n=\"markup.heading\",r=e.getTokens(t)[0];return t==0||r&&r.type.lastIndexOf(n,0)===0},this.getFoldWidget=function(e,t,n){if(this.isHeading(e,n))return\"start\";if(t===\"markbeginend\"&&!/^\\s*$/.test(e.getLine(n))){var r=e.getLength();while(++n<r)if(!/^\\s*$/.test(e.getLine(n)))break;if(n==r||this.isHeading(e,n))return\"end\"}return\"\"},this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.length,o=e.getLength(),u=n,a=n;if(this.isHeading(e,n)){while(++n<o)if(this.isHeading(e,n)){n--;break}a=n;if(a>u)while(a>u&&/^\\s*$/.test(e.getLine(a)))a--;if(a>u){var f=e.getLine(a).length;return new s(u,i,a,f)}}else if(this.getFoldWidget(e,t,n)===\"end\"){var a=n,f=e.getLine(a).length;while(--n>=0)if(this.isHeading(e,n))break;var r=e.getLine(n),i=r.length;return new s(n,i,a,f)}}}.call(o.prototype)}),ace.define(\"ace/mode/haskell_cabal\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/haskell_cabal_highlight_rules\",\"ace/mode/folding/haskell_cabal\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./haskell_cabal_highlight_rules\").CabalHighlightRules,o=e(\"./folding/haskell_cabal\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.blockComment=null,this.$id=\"ace/mode/haskell_cabal\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-haxe.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/haxe_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"break|case|cast|catch|class|continue|default|else|enum|extends|for|function|if|implements|import|in|inline|interface|new|override|package|private|public|return|static|super|switch|this|throw|trace|try|typedef|untyped|var|while|Array|Void|Bool|Int|UInt|Float|Dynamic|String|List|Hash|IntHash|Error|Unknown|Type|Std\",t=\"null|true|false\",n=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"constant.language\":t},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:n,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({<]\"},{token:\"paren.rparen\",regex:\"[\\\\])}>]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.HaxeHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/haxe\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/haxe_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./haxe_highlight_rules\").HaxeHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[]\\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/haxe\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict/mode-hjson.js",
    "content": "ace.define(\"ace/mode/hjson_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{include:\"#comments\"},{include:\"#rootObject\"},{include:\"#value\"}],\"#array\":[{token:\"paren.lparen\",regex:/\\[/,push:[{token:\"paren.rparen\",regex:/\\]/,next:\"pop\"},{include:\"#value\"},{include:\"#comments\"},{token:\"text\",regex:/,|$/},{token:\"invalid.illegal\",regex:/[^\\s\\]]/},{defaultToken:\"array\"}]}],\"#comments\":[{token:[\"comment.punctuation\",\"comment.line\"],regex:/(#)(.*$)/},{token:\"comment.punctuation\",regex:/\\/\\*/,push:[{token:\"comment.punctuation\",regex:/\\*\\//,next:\"pop\"},{defaultToken:\"comment.block\"}]},{token:[\"comment.punctuation\",\"comment.line\"],regex:/(\\/\\/)(.*$)/}],\"#constant\":[{token:\"constant\",regex:/\\b(?:true|false|null)\\b/}],\"#keyname\":[{token:\"keyword\",regex:/(?:[^,\\{\\[\\}\\]\\s]+|\"(?:[^\"\\\\]|\\\\.)*\")\\s*(?=:)/}],\"#mstring\":[{token:\"string\",regex:/'''/,push:[{token:\"string\",regex:/'''/,next:\"pop\"},{defaultToken:\"string\"}]}],\"#number\":[{token:\"constant.numeric\",regex:/-?(?:0|[1-9]\\d*)(?:(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)?/,comment:\"handles integer and decimal numbers\"}],\"#object\":[{token:\"paren.lparen\",regex:/\\{/,push:[{token:\"paren.rparen\",regex:/\\}/,next:\"pop\"},{include:\"#keyname\"},{include:\"#value\"},{token:\"text\",regex:/:/},{token:\"text\",regex:/,/},{defaultToken:\"paren\"}]}],\"#rootObject\":[{token:\"paren\",regex:/(?=\\s*(?:[^,\\{\\[\\}\\]\\s]+|\"(?:[^\"\\\\]|\\\\.)*\")\\s*:)/,push:[{token:\"paren.rparen\",regex:/---none---/,next:\"pop\"},{include:\"#keyname\"},{include:\"#value\"},{token:\"text\",regex:/:/},{token:\"text\",regex:/,/},{defaultToken:\"paren\"}]}],\"#string\":[{token:\"string\",regex:/\"/,push:[{token:\"string\",regex:/\"/,next:\"pop\"},{token:\"constant.language.escape\",regex:/\\\\(?:[\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/},{token:\"invalid.illegal\",regex:/\\\\./},{defaultToken:\"string\"}]}],\"#ustring\":[{token:\"string\",regex:/\\b[^:,0-9\\-\\{\\[\\}\\]\\s].*$/}],\"#value\":[{include:\"#constant\"},{include:\"#number\"},{include:\"#string\"},{include:\"#array\"},{include:\"#object\"},{include:\"#comments\"},{include:\"#mstring\"},{include:\"#ustring\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"hjson\"],foldingStartMarker:\"(?x:     # turn on extended mode\\n              ^    # a line beginning with\\n              \\\\s*    # some optional space\\n              [{\\\\[]  # the start of an object or array\\n              (?!    # but not followed by\\n              .*   # whatever\\n              [}\\\\]]  # and the close of an object or array\\n              ,?   # an optional comma\\n              \\\\s*  # some optional space\\n              $    # at the end of the line\\n              )\\n              |    # ...or...\\n              [{\\\\[]  # the start of an object or array\\n              \\\\s*    # some optional space\\n              $    # at the end of the line\\n            )\",foldingStopMarker:\"(?x:   # turn on extended mode\\n             ^    # a line beginning with\\n             \\\\s*  # some optional space\\n             [}\\\\]]  # and the close of an object or array\\n             )\",keyEquivalent:\"^~J\",name:\"Hjson\",scopeName:\"source.hjson\"},r.inherits(s,i),t.HjsonHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/hjson\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/hjson_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./hjson_highlight_rules\").HjsonHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/hjson\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-html.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v})"
  },
  {
    "path": "lib/src-min-noconflict/mode-html_elixir.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/elixir_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:[\"meta.module.elixir\",\"keyword.control.module.elixir\",\"meta.module.elixir\",\"entity.name.type.module.elixir\"],regex:\"^(\\\\s*)(defmodule)(\\\\s+)((?:[A-Z]\\\\w*\\\\s*\\\\.\\\\s*)*[A-Z]\\\\w*)\"},{token:\"comment.documentation.heredoc\",regex:'@(?:module|type)?doc (?:~[a-z])?\"\"\"',push:[{token:\"comment.documentation.heredoc\",regex:'\\\\s*\"\"\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"comment.documentation.heredoc\"}],comment:\"@doc with heredocs is treated as documentation\"},{token:\"comment.documentation.heredoc\",regex:'@(?:module|type)?doc ~[A-Z]\"\"\"',push:[{token:\"comment.documentation.heredoc\",regex:'\\\\s*\"\"\"',next:\"pop\"},{defaultToken:\"comment.documentation.heredoc\"}],comment:\"@doc with heredocs is treated as documentation\"},{token:\"comment.documentation.heredoc\",regex:\"@(?:module|type)?doc (?:~[a-z])?'''\",push:[{token:\"comment.documentation.heredoc\",regex:\"\\\\s*'''\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"comment.documentation.heredoc\"}],comment:\"@doc with heredocs is treated as documentation\"},{token:\"comment.documentation.heredoc\",regex:\"@(?:module|type)?doc ~[A-Z]'''\",push:[{token:\"comment.documentation.heredoc\",regex:\"\\\\s*'''\",next:\"pop\"},{defaultToken:\"comment.documentation.heredoc\"}],comment:\"@doc with heredocs is treated as documentation\"},{token:\"comment.documentation.false\",regex:\"@(?:module|type)?doc false\",comment:\"@doc false is treated as documentation\"},{token:\"comment.documentation.string\",regex:'@(?:module|type)?doc \"',push:[{token:\"comment.documentation.string\",regex:'\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"comment.documentation.string\"}],comment:\"@doc with string is treated as documentation\"},{token:\"keyword.control.elixir\",regex:\"\\\\b(?:do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\\\\b(?![?!])\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!\\\\.)\\\\b(do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\\\\b(?![?!])\"},{token:\"keyword.operator.elixir\",regex:\"\\\\b(?:and|not|or|when|xor|in|inlist|inbits)\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!\\\\.)\\\\b(and|not|or|when|xor|in|inlist|inbits)\\\\b\",comment:\" as above, just doesn't need a 'end' and does a logic operation\"},{token:\"constant.language.elixir\",regex:\"\\\\b(?:nil|true|false)\\\\b(?![?!])\"},{token:\"variable.language.elixir\",regex:\"\\\\b__(?:CALLER|ENV|MODULE|DIR)__\\\\b(?![?!])\"},{token:[\"punctuation.definition.variable.elixir\",\"variable.other.readwrite.module.elixir\"],regex:\"(@)([a-zA-Z_]\\\\w*)\"},{token:[\"punctuation.definition.variable.elixir\",\"variable.other.anonymous.elixir\"],regex:\"(&)(\\\\d*)\"},{token:\"variable.other.constant.elixir\",regex:\"\\\\b[A-Z]\\\\w*\\\\b\"},{token:\"constant.numeric.elixir\",regex:\"\\\\b(?:0x[\\\\da-fA-F](?:_?[\\\\da-fA-F])*|\\\\d(?:_?\\\\d)*(?:\\\\.(?![^[:space:][:digit:]])(?:_?\\\\d)*)?(?:[eE][-+]?\\\\d(?:_?\\\\d)*)?|0b[01]+|0o[0-7]+)\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"\\\\b(0x\\\\h(?>_?\\\\h)*|\\\\d(?>_?\\\\d)*(\\\\.(?![^[:space:][:digit:]])(?>_?\\\\d)*)?([eE][-+]?\\\\d(?>_?\\\\d)*)?|0b[01]+|0o[0-7]+)\\\\b\"},{token:\"punctuation.definition.constant.elixir\",regex:\":'\",push:[{token:\"punctuation.definition.constant.elixir\",regex:\"'\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"constant.other.symbol.single-quoted.elixir\"}]},{token:\"punctuation.definition.constant.elixir\",regex:':\"',push:[{token:\"punctuation.definition.constant.elixir\",regex:'\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"constant.other.symbol.double-quoted.elixir\"}]},{token:\"punctuation.definition.string.begin.elixir\",regex:\"(?:''')\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?>''')\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"^\\\\s*'''\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"support.function.variable.quoted.single.heredoc.elixir\"}],comment:\"Single-quoted heredocs\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"'\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"support.function.variable.quoted.single.elixir\"}],comment:\"single quoted string (allows for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:'(?:\"\"\")',TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:'(?>\"\"\")',push:[{token:\"punctuation.definition.string.end.elixir\",regex:'^\\\\s*\"\"\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.quoted.double.heredoc.elixir\"}],comment:\"Double-quoted heredocs\"},{token:\"punctuation.definition.string.begin.elixir\",regex:'\"',push:[{token:\"punctuation.definition.string.end.elixir\",regex:'\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.quoted.double.elixir\"}],comment:\"double quoted string (allows for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:'~[a-z](?:\"\"\")',TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:'~[a-z](?>\"\"\")',push:[{token:\"punctuation.definition.string.end.elixir\",regex:'^\\\\s*\"\"\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.quoted.double.heredoc.elixir\"}],comment:\"Double-quoted heredocs sigils\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z]\\\\{\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\}[a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z]\\\\[\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\][a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z]\\\\<\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\>[a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z]\\\\(\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\)[a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z][^\\\\w]\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"[^\\\\w][a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:'~[A-Z](?:\"\"\")',TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:'~[A-Z](?>\"\"\")',push:[{token:\"punctuation.definition.string.end.elixir\",regex:'^\\\\s*\"\"\"',next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"Double-quoted heredocs sigils\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z]\\\\{\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\}[a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z]\\\\[\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\][a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z]\\\\<\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\>[a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z]\\\\(\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\)[a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z][^\\\\w]\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"[^\\\\w][a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:[\"punctuation.definition.constant.elixir\",\"constant.other.symbol.elixir\"],regex:\"(:)([a-zA-Z_][\\\\w@]*(?:[?!]|=(?![>=]))?|\\\\<\\\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\\\-|\\\\|>|=>|~|~=|=|/|\\\\\\\\\\\\\\\\|\\\\*\\\\*?|\\\\.\\\\.?\\\\.?|>=?|<=?|&&?&?|\\\\+\\\\+?|\\\\-\\\\-?|\\\\|\\\\|?\\\\|?|\\\\!|@|\\\\%?\\\\{\\\\}|%|\\\\[\\\\]|\\\\^(?:\\\\^\\\\^)?)\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!:)(:)(?>[a-zA-Z_][\\\\w@]*(?>[?!]|=(?![>=]))?|\\\\<\\\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\\\-|\\\\|>|=>|~|~=|=|/|\\\\\\\\\\\\\\\\|\\\\*\\\\*?|\\\\.\\\\.?\\\\.?|>=?|<=?|&&?&?|\\\\+\\\\+?|\\\\-\\\\-?|\\\\|\\\\|?\\\\|?|\\\\!|@|\\\\%?\\\\{\\\\}|%|\\\\[\\\\]|\\\\^(\\\\^\\\\^)?)\",comment:\"symbols\"},{token:\"punctuation.definition.constant.elixir\",regex:\"(?:[a-zA-Z_][\\\\w@]*(?:[?!])?):(?!:)\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?>[a-zA-Z_][\\\\w@]*(?>[?!])?)(:)(?!:)\",comment:\"symbols\"},{token:[\"punctuation.definition.comment.elixir\",\"comment.line.number-sign.elixir\"],regex:\"(#)(.*)\"},{token:\"constant.numeric.elixir\",regex:\"\\\\?(?:\\\\\\\\(?:x[\\\\da-fA-F]{1,2}(?![\\\\da-fA-F])\\\\b|[^xMC])|[^\\\\s\\\\\\\\])\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!\\\\w)\\\\?(\\\\\\\\(x\\\\h{1,2}(?!\\\\h)\\\\b|[^xMC])|[^\\\\s\\\\\\\\])\",comment:'\\n\t\t\tmatches questionmark-letters.\\n\\n\t\t\texamples (1st alternation = hex):\\n\t\t\t?\\\\x1     ?\\\\x61\\n\\n\t\t\texamples (2rd alternation = escaped):\\n\t\t\t?\\\\n      ?\\\\b\\n\\n\t\t\texamples (3rd alternation = normal):\\n\t\t\t?a       ?A       ?0 \\n\t\t\t?*       ?\"       ?( \\n\t\t\t?.       ?#\\n\t\t\t\\n\t\t\tthe negative lookbehind prevents against matching\\n\t\t\tp(42.tainted?)\\n\t\t\t'},{token:\"keyword.operator.assignment.augmented.elixir\",regex:\"\\\\+=|\\\\-=|\\\\|\\\\|=|~=|&&=\"},{token:\"keyword.operator.comparison.elixir\",regex:\"===?|!==?|<=?|>=?\"},{token:\"keyword.operator.bitwise.elixir\",regex:\"\\\\|{3}|&{3}|\\\\^{3}|<{3}|>{3}|~{3}\"},{token:\"keyword.operator.logical.elixir\",regex:\"!+|\\\\bnot\\\\b|&&|\\\\band\\\\b|\\\\|\\\\||\\\\bor\\\\b|\\\\bxor\\\\b\",originalRegex:\"(?<=[ \\\\t])!+|\\\\bnot\\\\b|&&|\\\\band\\\\b|\\\\|\\\\||\\\\bor\\\\b|\\\\bxor\\\\b\"},{token:\"keyword.operator.arithmetic.elixir\",regex:\"\\\\*|\\\\+|\\\\-|/\"},{token:\"keyword.operator.other.elixir\",regex:\"\\\\||\\\\+\\\\+|\\\\-\\\\-|\\\\*\\\\*|\\\\\\\\\\\\\\\\|\\\\<\\\\-|\\\\<\\\\>|\\\\<\\\\<|\\\\>\\\\>|\\\\:\\\\:|\\\\.\\\\.|\\\\|>|~|=>\"},{token:\"keyword.operator.assignment.elixir\",regex:\"=\"},{token:\"punctuation.separator.other.elixir\",regex:\":\"},{token:\"punctuation.separator.statement.elixir\",regex:\"\\\\;\"},{token:\"punctuation.separator.object.elixir\",regex:\",\"},{token:\"punctuation.separator.method.elixir\",regex:\"\\\\.\"},{token:\"punctuation.section.scope.elixir\",regex:\"\\\\{|\\\\}\"},{token:\"punctuation.section.array.elixir\",regex:\"\\\\[|\\\\]\"},{token:\"punctuation.section.function.elixir\",regex:\"\\\\(|\\\\)\"}],\"#escaped_char\":[{token:\"constant.character.escape.elixir\",regex:\"\\\\\\\\(?:x[\\\\da-fA-F]{1,2}|.)\"}],\"#interpolated_elixir\":[{token:[\"source.elixir.embedded.source\",\"source.elixir.embedded.source.empty\"],regex:\"(#\\\\{)(\\\\})\"},{todo:{token:\"punctuation.section.embedded.elixir\",regex:\"#\\\\{\",push:[{token:\"punctuation.section.embedded.elixir\",regex:\"\\\\}\",next:\"pop\"},{include:\"#nest_curly_and_self\"},{include:\"$self\"},{defaultToken:\"source.elixir.embedded.source\"}]}}],\"#nest_curly_and_self\":[{token:\"punctuation.section.scope.elixir\",regex:\"\\\\{\",push:[{token:\"punctuation.section.scope.elixir\",regex:\"\\\\}\",next:\"pop\"},{include:\"#nest_curly_and_self\"}]},{include:\"$self\"}],\"#regex_sub\":[{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{token:[\"punctuation.definition.arbitrary-repitition.elixir\",\"string.regexp.arbitrary-repitition.elixir\",\"string.regexp.arbitrary-repitition.elixir\",\"punctuation.definition.arbitrary-repitition.elixir\"],regex:\"(\\\\{)(\\\\d+)((?:,\\\\d+)?)(\\\\})\"},{token:\"punctuation.definition.character-class.elixir\",regex:\"\\\\[(?:\\\\^?\\\\])?\",push:[{token:\"punctuation.definition.character-class.elixir\",regex:\"\\\\]\",next:\"pop\"},{include:\"#escaped_char\"},{defaultToken:\"string.regexp.character-class.elixir\"}]},{token:\"punctuation.definition.group.elixir\",regex:\"\\\\(\",push:[{token:\"punctuation.definition.group.elixir\",regex:\"\\\\)\",next:\"pop\"},{include:\"#regex_sub\"},{defaultToken:\"string.regexp.group.elixir\"}]},{token:[\"punctuation.definition.comment.elixir\",\"comment.line.number-sign.elixir\"],regex:\"(?:^|\\\\s)(#)(\\\\s[[a-zA-Z0-9,. \\\\t?!-][^\\\\x00-\\\\x7F]]*$)\",originalRegex:\"(?<=^|\\\\s)(#)\\\\s[[a-zA-Z0-9,. \\\\t?!-][^\\\\x{00}-\\\\x{7F}]]*$\",comment:\"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.\"}]},this.normalizeRules()};s.metaData={comment:\"Textmate bundle for Elixir Programming Language.\",fileTypes:[\"ex\",\"exs\"],firstLineMatch:\"^#!/.*\\\\belixir\",foldingStartMarker:\"(after|else|catch|rescue|\\\\-\\\\>|\\\\{|\\\\[|do)\\\\s*$\",foldingStopMarker:\"^\\\\s*((\\\\}|\\\\]|after|else|catch|rescue)\\\\s*$|end\\\\b)\",keyEquivalent:\"^~E\",name:\"Elixir\",scopeName:\"source.elixir\"},r.inherits(s,i),t.ElixirHighlightRules=s}),ace.define(\"ace/mode/html_elixir_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/elixir_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=e(\"./elixir_highlight_rules\").ElixirHighlightRules,o=function(){i.call(this);var e=[{regex:\"<%%|%%>\",token:\"constant.language.escape\"},{token:\"comment.start.eex\",regex:\"<%#\",push:[{token:\"comment.end.eex\",regex:\"%>\",next:\"pop\",defaultToken:\"comment\"}]},{token:\"support.elixir_tag\",regex:\"<%+(?!>)[-=]?\",push:\"elixir-start\"}],t=[{token:\"support.elixir_tag\",regex:\"%>\",next:\"pop\"},{token:\"comment\",regex:\"#(?:[^%]|%[^>])*\"}];for(var n in this.$rules)this.$rules[n].unshift.apply(this.$rules[n],e);this.embedRules(s,\"elixir-\",t,[\"start\"]),this.normalizeRules()};r.inherits(o,i),t.HtmlElixirHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/elixir\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/elixir_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./elixir_highlight_rules\").ElixirHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"#\",this.$id=\"ace/mode/elixir\"}.call(u.prototype),t.Mode=u}),ace.define(\"ace/mode/html_elixir\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_elixir_highlight_rules\",\"ace/mode/html\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/elixir\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_elixir_highlight_rules\").HtmlElixirHighlightRules,s=e(\"./html\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./elixir\").Mode,f=function(){s.call(this),this.HighlightRules=i,this.createModeDelegates({\"js-\":o,\"css-\":u,\"elixir-\":a})};r.inherits(f,s),function(){this.$id=\"ace/mode/html_elixir\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict/mode-html_ruby.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/ruby_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=t.constantOtherSymbol={token:\"constant.other.symbol.ruby\",regex:\"[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?\"},o=t.qString={token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},u=t.qqString={token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},a=t.tString={token:\"string\",regex:\"[`](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[`]\"},f=t.constantNumericHex={token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\\\b\"},l=t.constantNumericFloat={token:\"constant.numeric\",regex:\"[+-]?\\\\d(?:\\\\d|_(?=\\\\d))*(?:(?:\\\\.\\\\d(?:\\\\d|_(?=\\\\d))*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},c=function(){var e=\"abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|validates_inclusion_of|validates_numericality_of|validates_with|validates_each|authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|cache|expire_fragment|expire_cache_for|observe|cache_sweeper|has_many|has_one|belongs_to|has_and_belongs_to_many\",t=\"alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield\",n=\"true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING\",r=\"$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|$!|root_url|flash|session|cookies|params|request|response|logger|self\",i=this.$keywords=this.createKeywordMapper({keyword:t,\"constant.language\":n,\"variable.language\":r,\"support.function\":e,\"invalid.deprecated\":\"debugger\"},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"comment\",regex:\"^=begin(?:$|\\\\s.*$)\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},[{regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)return n.unshift(\"start\",t),\"paren.lparen\";if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1)return\"paren.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.start\",regex:/\"/,push:[{token:\"constant.language.escape\",regex:/\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/},{token:\"paren.start\",regex:/#{/,push:\"start\"},{token:\"string.end\",regex:/\"/,next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:/\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/},{token:\"paren.start\",regex:/#{/,push:\"start\"},{token:\"string.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:/'/,push:[{token:\"constant.language.escape\",regex:/\\\\['\\\\]/},{token:\"string.end\",regex:/'/,next:\"pop\"},{defaultToken:\"string\"}]}],{token:\"text\",regex:\"::\"},{token:\"variable.instance\",regex:\"@{1,2}[a-zA-Z_\\\\d]+\"},{token:\"support.class\",regex:\"[A-Z][a-zA-Z_\\\\d]+\"},s,f,l,{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:i,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"punctuation.separator.key-value\",regex:\"=>\"},{stateName:\"heredoc\",onMatch:function(e,t,n){var r=e[2]==\"-\"?\"indentedHeredoc\":\"heredoc\",i=e.split(this.splitRegex);return n.push(r,i[3]),[{type:\"constant\",value:i[1]},{type:\"string\",value:i[2]},{type:\"support.class\",value:i[3]},{type:\"string\",value:i[4]}]},regex:\"(<<-?)(['\\\"`]?)([\\\\w]+)(['\\\"`]?)\",rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}],indentedHeredoc:[{token:\"string\",regex:\"^ +\"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}]}},{regex:\"$\",token:\"empty\",next:function(e,t){return t[0]===\"heredoc\"||t[0]===\"indentedHeredoc\"?t[0]:e}},{token:\"string.character\",regex:\"\\\\B\\\\?.\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"^=end(?:$|\\\\s.*$)\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.normalizeRules()};r.inherits(c,i),t.RubyHighlightRules=c}),ace.define(\"ace/mode/html_ruby_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/ruby_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=e(\"./ruby_highlight_rules\").RubyHighlightRules,o=function(){i.call(this);var e=[{regex:\"<%%|%%>\",token:\"constant.language.escape\"},{token:\"comment.start.erb\",regex:\"<%#\",push:[{token:\"comment.end.erb\",regex:\"%>\",next:\"pop\",defaultToken:\"comment\"}]},{token:\"support.ruby_tag\",regex:\"<%+(?!>)[-=]?\",push:\"ruby-start\"}],t=[{token:\"support.ruby_tag\",regex:\"%>\",next:\"pop\"},{token:\"comment\",regex:\"#(?:[^%]|%[^>])*\"}];for(var n in this.$rules)this.$rules[n].unshift.apply(this.$rules[n],e);this.embedRules(s,\"ruby-\",t,[\"start\"]),this.normalizeRules()};r.inherits(o,i),t.HtmlRubyHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/ruby\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ruby_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./ruby_highlight_rules\").RubyHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/coffee\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[]\\s*$/),u=t.match(/^\\s*(class|def|module)\\s.*$/),a=t.match(/.*do(\\s*|\\s+\\|.*\\|\\s*)$/),f=t.match(/^\\s*(if|else|when)\\s*/);if(o||u||a||f)r+=n}return r},this.checkOutdent=function(e,t,n){return/^\\s+(end|else)$/.test(t+n)||this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){var r=t.getLine(n);if(/}/.test(r))return this.$outdent.autoOutdent(t,n);var i=this.$getIndent(r),s=t.getLine(n-1),o=this.$getIndent(s),a=t.getTabString();o.length<=i.length&&i.slice(-a.length)==a&&t.remove(new u(n,i.length-a.length,n,i.length))},this.$id=\"ace/mode/ruby\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/html_ruby\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_ruby_highlight_rules\",\"ace/mode/html\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/ruby\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_ruby_highlight_rules\").HtmlRubyHighlightRules,s=e(\"./html\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./ruby\").Mode,f=function(){s.call(this),this.HighlightRules=i,this.createModeDelegates({\"js-\":o,\"css-\":u,\"ruby-\":a})};r.inherits(f,s),function(){this.$id=\"ace/mode/html_ruby\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict/mode-ini.js",
    "content": "ace.define(\"ace/mode/ini_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=\"\\\\\\\\(?:[\\\\\\\\0abtrn;#=:]|x[a-fA-F\\\\d]{4})\",o=function(){this.$rules={start:[{token:\"punctuation.definition.comment.ini\",regex:\"#.*\",push_:[{token:\"comment.line.number-sign.ini\",regex:\"$|^\",next:\"pop\"},{defaultToken:\"comment.line.number-sign.ini\"}]},{token:\"punctuation.definition.comment.ini\",regex:\";.*\",push_:[{token:\"comment.line.semicolon.ini\",regex:\"$|^\",next:\"pop\"},{defaultToken:\"comment.line.semicolon.ini\"}]},{token:[\"keyword.other.definition.ini\",\"text\",\"punctuation.separator.key-value.ini\"],regex:\"\\\\b([a-zA-Z0-9_.-]+)\\\\b(\\\\s*)(=)\"},{token:[\"punctuation.definition.entity.ini\",\"constant.section.group-title.ini\",\"punctuation.definition.entity.ini\"],regex:\"^(\\\\[)(.*?)(\\\\])\"},{token:\"punctuation.definition.string.begin.ini\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.ini\",regex:\"'\",next:\"pop\"},{token:\"constant.language.escape\",regex:s},{defaultToken:\"string.quoted.single.ini\"}]},{token:\"punctuation.definition.string.begin.ini\",regex:'\"',push:[{token:\"constant.language.escape\",regex:s},{token:\"punctuation.definition.string.end.ini\",regex:'\"',next:\"pop\"},{defaultToken:\"string.quoted.double.ini\"}]}]},this.normalizeRules()};o.metaData={fileTypes:[\"ini\",\"conf\"],keyEquivalent:\"^~I\",name:\"Ini\",scopeName:\"source.ini\"},r.inherits(o,i),t.IniHighlightRules=o}),ace.define(\"ace/mode/folding/ini\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/^\\s*\\[([^\\])]*)]\\s*(?:$|[;#])/,this.getFoldWidgetRange=function(e,t,n){var r=this.foldingStartMarker,s=e.getLine(n),o=s.match(r);if(!o)return;var u=o[1]+\".\",a=s.length,f=e.getLength(),l=n,c=n;while(++n<f){s=e.getLine(n);if(/^\\s*$/.test(s))continue;o=s.match(r);if(o&&o[1].lastIndexOf(u,0)!==0)break;c=n}if(c>l){var h=e.getLine(c).length;return new i(l,a,c,h)}}}.call(o.prototype)}),ace.define(\"ace/mode/ini\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ini_highlight_rules\",\"ace/mode/folding/ini\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./ini_highlight_rules\").IniHighlightRules,o=e(\"./folding/ini\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\";\",this.blockComment=null,this.$id=\"ace/mode/ini\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-io.js",
    "content": "ace.define(\"ace/mode/io_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:[\"text\",\"meta.empty-parenthesis.io\"],regex:\"(\\\\()(\\\\))\",comment:\"we match this to overload return inside () --Allan; scoping rules for what gets the scope have changed, so we now group the ) instead of the ( -- Rob\"},{token:[\"text\",\"meta.comma-parenthesis.io\"],regex:\"(\\\\,)(\\\\))\",comment:\"We want to do the same for ,) -- Seckar; same as above -- Rob\"},{token:\"keyword.control.io\",regex:\"\\\\b(?:if|ifTrue|ifFalse|ifTrueIfFalse|for|loop|reverseForeach|foreach|map|continue|break|while|do|return)\\\\b\"},{token:\"punctuation.definition.comment.io\",regex:\"/\\\\*\",push:[{token:\"punctuation.definition.comment.io\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.io\"}]},{token:\"punctuation.definition.comment.io\",regex:\"//\",push:[{token:\"comment.line.double-slash.io\",regex:\"$\",next:\"pop\"},{defaultToken:\"comment.line.double-slash.io\"}]},{token:\"punctuation.definition.comment.io\",regex:\"#\",push:[{token:\"comment.line.number-sign.io\",regex:\"$\",next:\"pop\"},{defaultToken:\"comment.line.number-sign.io\"}]},{token:\"variable.language.io\",regex:\"\\\\b(?:self|sender|target|proto|protos|parent)\\\\b\",comment:\"I wonder if some of this isn't variable.other.language? --Allan; scoping this as variable.language to match Objective-C's handling of 'self', which is inconsistent with C++'s handling of 'this' but perhaps intentionally so -- Rob\"},{token:\"keyword.operator.io\",regex:\"<=|>=|=|:=|\\\\*|\\\\||\\\\|\\\\||\\\\+|-|/|&|&&|>|<|\\\\?|@|@@|\\\\b(?:and|or)\\\\b\"},{token:\"constant.other.io\",regex:\"\\\\bGL[\\\\w_]+\\\\b\"},{token:\"support.class.io\",regex:\"\\\\b[A-Z](?:\\\\w+)?\\\\b\"},{token:\"support.function.io\",regex:\"\\\\b(?:clone|call|init|method|list|vector|block|\\\\w+(?=\\\\s*\\\\())\\\\b\"},{token:\"support.function.open-gl.io\",regex:\"\\\\bgl(?:u|ut)?[A-Z]\\\\w+\\\\b\"},{token:\"punctuation.definition.string.begin.io\",regex:'\"\"\"',push:[{token:\"punctuation.definition.string.end.io\",regex:'\"\"\"',next:\"pop\"},{token:\"constant.character.escape.io\",regex:\"\\\\\\\\.\"},{defaultToken:\"string.quoted.triple.io\"}]},{token:\"punctuation.definition.string.begin.io\",regex:'\"',push:[{token:\"punctuation.definition.string.end.io\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.io\",regex:\"\\\\\\\\.\"},{defaultToken:\"string.quoted.double.io\"}]},{token:\"constant.numeric.io\",regex:\"\\\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\\\.?[0-9]*|\\\\.[0-9]+)(?:(?:e|E)(?:\\\\+|-)?[0-9]+)?)(?:L|l|UL|ul|u|U|F|f)?\\\\b\"},{token:\"variable.other.global.io\",regex:\"Lobby\\\\b\"},{token:\"constant.language.io\",regex:\"\\\\b(?:TRUE|true|FALSE|false|NULL|null|Null|Nil|nil|YES|NO)\\\\b\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"io\"],keyEquivalent:\"^~I\",name:\"Io\",scopeName:\"source.io\"},r.inherits(s,i),t.IoHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/io\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/io_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./io_highlight_rules\").IoHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/io\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-jack.js",
    "content": "ace.define(\"ace/mode/jack_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"string\",regex:'\"',next:\"string2\"},{token:\"string\",regex:\"'\",next:\"string1\"},{token:\"constant.numeric\",regex:\"-?0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"(?:0|[-+]?[1-9][0-9]*)\\\\b\"},{token:\"constant.binary\",regex:\"<[0-9A-Fa-f][0-9A-Fa-f](\\\\s+[0-9A-Fa-f][0-9A-Fa-f])*>\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:\"constant.language.null\",regex:\"null\\\\b\"},{token:\"storage.type\",regex:\"(?:Integer|Boolean|Null|String|Buffer|Tuple|List|Object|Function|Coroutine|Form)\\\\b\"},{token:\"keyword\",regex:\"(?:return|abort|vars|for|delete|in|is|escape|exec|split|and|if|elif|else|while)\\\\b\"},{token:\"language.builtin\",regex:\"(?:lines|source|parse|read-stream|interval|substr|parseint|write|print|range|rand|inspect|bind|i-values|i-pairs|i-map|i-filter|i-chunk|i-all\\\\?|i-any\\\\?|i-collect|i-zip|i-merge|i-each)\\\\b\"},{token:\"comment\",regex:\"--.*$\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"storage.form\",regex:\"@[a-z]+\"},{token:\"constant.other.symbol\",regex:\":+[a-zA-Z_]([-]?[a-zA-Z0-9_])*[?!]?\"},{token:\"variable\",regex:\"[a-zA-Z_]([-]?[a-zA-Z0-9_])*[?!]?\"},{token:\"keyword.operator\",regex:\"\\\\|\\\\||\\\\^\\\\^|&&|!=|==|<=|<|>=|>|\\\\+|-|\\\\*|\\\\/|\\\\^|\\\\%|\\\\#|\\\\!\"},{token:\"text\",regex:\"\\\\s+\"}],string1:[{token:\"constant.language.escape\",regex:/\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|['\"\\\\\\/bfnrt])/},{token:\"string\",regex:\"[^'\\\\\\\\]+\"},{token:\"string\",regex:\"'\",next:\"start\"},{token:\"string\",regex:\"\",next:\"start\"}],string2:[{token:\"constant.language.escape\",regex:/\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|['\"\\\\\\/bfnrt])/},{token:\"string\",regex:'[^\"\\\\\\\\]+'},{token:\"string\",regex:'\"',next:\"start\"},{token:\"string\",regex:\"\",next:\"start\"}]}};r.inherits(s,i),t.JackHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/jack\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jack_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./jack_highlight_rules\").JackHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart=\"--\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if(e==\"start\"){var i=t.match(/^.*[\\{\\(\\[]\\s*$/);i&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/jack\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict/mode-jade.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/markdown_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\",\"ace/mode/html_highlight_rules\",\"ace/mode/css_highlight_rules\"],function(e,t,n){\"use strict\";function c(e,t){return{token:\"support.function\",regex:\"^\\\\s*```\"+e+\"\\\\s*$\",push:t+\"start\"}}var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./css_highlight_rules\").CssHighlightRules,l=function(e){return\"(?:[^\"+i.escapeRegExp(e)+\"\\\\\\\\]|\\\\\\\\.)*\"},h=function(){a.call(this),this.$rules.start.unshift({token:\"empty_line\",regex:\"^$\",next:\"allowBlock\"},{token:\"markup.heading.1\",regex:\"^=+(?=\\\\s*$)\"},{token:\"markup.heading.2\",regex:\"^\\\\-+(?=\\\\s*$)\"},{token:function(e){return\"markup.heading.\"+e.length},regex:/^#{1,6}(?=\\s*[^ #]|\\s+#.)/,next:\"header\"},c(\"(?:javascript|js)\",\"jscode-\"),c(\"xml\",\"xmlcode-\"),c(\"html\",\"htmlcode-\"),c(\"css\",\"csscode-\"),{token:\"support.function\",regex:\"^\\\\s*```\\\\s*\\\\S*(?:{.*?\\\\})?\\\\s*$\",next:\"githubblock\"},{token:\"string.blockquote\",regex:\"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",next:\"blockquote\"},{token:\"constant\",regex:\"^ {0,2}(?:(?: ?\\\\* ?){3,}|(?: ?\\\\- ?){3,}|(?: ?\\\\_ ?){3,})\\\\s*$\",next:\"allowBlock\"},{token:\"markup.list\",regex:\"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",next:\"listblock-start\"},{include:\"basic\"}),this.addRules({basic:[{token:\"constant.language.escape\",regex:/\\\\[\\\\`*_{}\\[\\]()#+\\-.!]/},{token:\"support.function\",regex:\"(`+)(.*?[^`])(\\\\1)\"},{token:[\"text\",\"constant\",\"text\",\"url\",\"string\",\"text\"],regex:'^([ ]{0,3}\\\\[)([^\\\\]]+)(\\\\]:\\\\s*)([^ ]+)(\\\\s*(?:[\"][^\"]+[\"])?(\\\\s*))$'},{token:[\"text\",\"string\",\"text\",\"constant\",\"text\"],regex:\"(\\\\[)(\"+l(\"]\")+\")(\\\\]\\\\s*\\\\[)(\"+l(\"]\")+\")(\\\\])\"},{token:[\"text\",\"string\",\"text\",\"markup.underline\",\"string\",\"text\"],regex:\"(\\\\[)(\"+l(\"]\")+\")(\\\\]\\\\()\"+'((?:[^\\\\)\\\\s\\\\\\\\]|\\\\\\\\.|\\\\s(?=[^\"]))*)'+'(\\\\s*\"'+l('\"')+'\"\\\\s*)?'+\"(\\\\))\"},{token:\"string.strong\",regex:\"([*]{2}|[_]{2}(?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"},{token:\"string.emphasis\",regex:\"([*]|[_](?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"},{token:[\"text\",\"url\",\"text\"],regex:\"(<)((?:https?|ftp|dict):[^'\\\">\\\\s]+|(?:mailto:)?[-.\\\\w]+\\\\@[-a-z0-9]+(?:\\\\.[-a-z0-9]+)*\\\\.[a-z]+)(>)\"}],allowBlock:[{token:\"support.function\",regex:\"^ {4}.+\",next:\"allowBlock\"},{token:\"empty_line\",regex:\"^$\",next:\"allowBlock\"},{token:\"empty\",regex:\"\",next:\"start\"}],header:[{regex:\"$\",next:\"start\"},{include:\"basic\"},{defaultToken:\"heading\"}],\"listblock-start\":[{token:\"support.variable\",regex:/(?:\\[[ x]\\])?/,next:\"listblock\"}],listblock:[{token:\"empty_line\",regex:\"^$\",next:\"start\"},{token:\"markup.list\",regex:\"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",next:\"listblock-start\"},{include:\"basic\",noEscape:!0},{token:\"support.function\",regex:\"^\\\\s*```\\\\s*[a-zA-Z]*(?:{.*?\\\\})?\\\\s*$\",next:\"githubblock\"},{defaultToken:\"list\"}],blockquote:[{token:\"empty_line\",regex:\"^\\\\s*$\",next:\"start\"},{token:\"string.blockquote\",regex:\"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",next:\"blockquote\"},{include:\"basic\",noEscape:!0},{defaultToken:\"string.blockquote\"}],githubblock:[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"start\"},{token:\"support.function\",regex:\".+\"}]}),this.embedRules(o,\"jscode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(a,\"htmlcode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(f,\"csscode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(u,\"xmlcode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.normalizeRules()};r.inherits(h,s),t.MarkdownHighlightRules=h}),ace.define(\"ace/mode/scss_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=i.arrayToMap(function(){var e=\"-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-\".split(\"|\"),t=\"appearance|background-clip|background-inline-policy|background-origin|background-size|binding|border-bottom-colors|border-left-colors|border-right-colors|border-top-colors|border-end|border-end-color|border-end-style|border-end-width|border-image|border-start|border-start-color|border-start-style|border-start-width|box-align|box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|box-pack|box-sizing|column-count|column-gap|column-width|column-rule|column-rule-width|column-rule-style|column-rule-color|float-edge|font-feature-settings|font-language-override|force-broken-image-icon|image-region|margin-end|margin-start|opacity|outline|outline-color|outline-offset|outline-radius|outline-radius-bottomleft|outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|outline-style|outline-width|padding-end|padding-start|stack-sizing|tab-size|text-blink|text-decoration-color|text-decoration-line|text-decoration-style|transform|transform-origin|transition|transition-delay|transition-duration|transition-property|transition-timing-function|user-focus|user-input|user-modify|user-select|window-shadow|border-radius\".split(\"|\"),n=\"azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index\".split(\"|\"),r=[];for(var i=0,s=e.length;i<s;i++)Array.prototype.push.apply(r,(e[i]+t.join(\"|\"+e[i])).split(\"|\"));return Array.prototype.push.apply(r,t),Array.prototype.push.apply(r,n),r}()),t=i.arrayToMap(\"hsl|hsla|rgb|rgba|url|attr|counter|counters|abs|adjust_color|adjust_hue|alpha|join|blue|ceil|change_color|comparable|complement|darken|desaturate|floor|grayscale|green|hue|if|invert|join|length|lighten|lightness|mix|nth|opacify|opacity|percentage|quote|red|round|saturate|saturation|scale_color|transparentize|type_of|unit|unitless|unqoute\".split(\"|\")),n=i.arrayToMap(\"absolute|all-scroll|always|armenian|auto|baseline|below|bidi-override|block|bold|bolder|border-box|both|bottom|break-all|break-word|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|content-box|crosshair|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|overline|pointer|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|zero\".split(\"|\")),r=i.arrayToMap(\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\".split(\"|\")),s=i.arrayToMap(\"@mixin|@extend|@include|@import|@media|@debug|@warn|@if|@for|@each|@while|@else|@font-face|@-webkit-keyframes|if|and|!default|module|def|end|declare\".split(\"|\")),o=i.arrayToMap(\"a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp\".split(\"|\")),u=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:'[\"].*\\\\\\\\$',next:\"qqstring\"},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"string\",regex:\"['].*\\\\\\\\$\",next:\"qstring\"},{token:\"constant.numeric\",regex:u+\"(?:em|ex|px|cm|mm|in|pt|pc|deg|rad|grad|ms|s|hz|khz|%)\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:\"constant.numeric\",regex:u},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:function(i){return e.hasOwnProperty(i.toLowerCase())?\"support.type\":s.hasOwnProperty(i)?\"keyword\":n.hasOwnProperty(i)?\"constant.language\":t.hasOwnProperty(i)?\"support.function\":r.hasOwnProperty(i.toLowerCase())?\"support.constant.color\":o.hasOwnProperty(i.toLowerCase())?\"variable.language\":\"text\"},regex:\"\\\\-?[@a-z_][@a-z0-9_\\\\-]*\"},{token:\"variable\",regex:\"[a-z_\\\\-$][a-z0-9_\\\\-$]*\\\\b\"},{token:\"variable.language\",regex:\"#[a-z0-9-_]+\"},{token:\"variable.language\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"variable.language\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{token:\"keyword.operator\",regex:\"<|>|<=|>=|==|!=|-|%|#|\\\\+|\\\\$|\\\\+|\\\\*\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],qqstring:[{token:\"string\",regex:'(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',next:\"start\"},{token:\"string\",regex:\".+\"}],qstring:[{token:\"string\",regex:\"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",next:\"start\"},{token:\"string\",regex:\".+\"}]}};r.inherits(o,s),t.ScssHighlightRules=o}),ace.define(\"ace/mode/less_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/css_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=e(\"./css_highlight_rules\"),o=function(){var e=\"@import|@media|@font-face|@keyframes|@-webkit-keyframes|@supports|@charset|@plugin|@namespace|@document|@page|@viewport|@-ms-viewport|or|and|when|not\",t=e.split(\"|\"),n=s.supportType.split(\"|\"),r=this.createKeywordMapper({\"support.constant\":s.supportConstant,keyword:e,\"support.constant.color\":s.supportConstantColor,\"support.constant.fonts\":s.supportConstantFonts},\"identifier\",!0),i=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+i+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:\"constant.numeric\",regex:i},{token:[\"support.function\",\"paren.lparen\",\"string\",\"paren.rparen\"],regex:\"(url)(\\\\()(.*)(\\\\))\"},{token:[\"support.function\",\"paren.lparen\"],regex:\"(:extend|[a-z0-9_\\\\-]+)(\\\\()\"},{token:function(e){return t.indexOf(e.toLowerCase())>-1?\"keyword\":\"variable\"},regex:\"[@\\\\$][a-z0-9_\\\\-@\\\\$]*\\\\b\"},{token:\"variable\",regex:\"[@\\\\$]\\\\{[a-z0-9_\\\\-@\\\\$]*\\\\}\"},{token:function(e,t){return n.indexOf(e.toLowerCase())>-1?[\"support.type.property\",\"text\"]:[\"support.type.unknownProperty\",\"text\"]},regex:\"([a-z0-9-_]+)(\\\\s*:)\"},{token:\"keyword\",regex:\"&\"},{token:r,regex:\"\\\\-?[@a-z_][@a-z0-9_\\\\-]*\"},{token:\"variable.language\",regex:\"#[a-z0-9-_]+\"},{token:\"variable.language\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"variable.language\",regex:\":[a-z_][a-z0-9-_]*\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{token:\"keyword.operator\",regex:\"<|>|<=|>=|=|!=|-|%|\\\\+|\\\\*\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.normalizeRules()};r.inherits(o,i),t.LessHighlightRules=o}),ace.define(\"ace/mode/coffee_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function s(){var e=\"[$A-Za-z_\\\\x7f-\\\\uffff][$\\\\w\\\\x7f-\\\\uffff]*\",t=\"this|throw|then|try|typeof|super|switch|return|break|by|continue|catch|class|in|instanceof|is|isnt|if|else|extends|for|own|finally|function|while|when|new|no|not|delete|debugger|do|loop|of|off|or|on|unless|until|and|yes\",n=\"true|false|null|undefined|NaN|Infinity\",r=\"case|const|default|function|var|void|with|enum|export|implements|interface|let|package|private|protected|public|static|yield\",i=\"Array|Boolean|Date|Function|Number|Object|RegExp|ReferenceError|String|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray\",s=\"Math|JSON|isNaN|isFinite|parseInt|parseFloat|encodeURI|encodeURIComponent|decodeURI|decodeURIComponent|String|\",o=\"window|arguments|prototype|document\",u=this.createKeywordMapper({keyword:t,\"constant.language\":n,\"invalid.illegal\":r,\"language.support.class\":i,\"language.support.function\":s,\"variable.language\":o},\"identifier\"),a={token:[\"paren.lparen\",\"variable.parameter\",\"paren.rparen\",\"text\",\"storage.type\"],regex:/(?:(\\()((?:\"[^\")]*?\"|'[^')]*?'|\\/[^\\/)]*?\\/|[^()\"'\\/])*?)(\\))(\\s*))?([\\-=]>)/.source},f=/\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)/;this.$rules={start:[{token:\"constant.numeric\",regex:\"(?:0x[\\\\da-fA-F]+|(?:\\\\d+(?:\\\\.\\\\d+)?|\\\\.\\\\d+)(?:[eE][+-]?\\\\d+)?)\"},{stateName:\"qdoc\",token:\"string\",regex:\"'''\",next:[{token:\"string\",regex:\"'''\",next:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{stateName:\"qqdoc\",token:\"string\",regex:'\"\"\"',next:[{token:\"string\",regex:'\"\"\"',next:\"start\"},{token:\"paren.string\",regex:\"#{\",push:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{stateName:\"qstring\",token:\"string\",regex:\"'\",next:[{token:\"string\",regex:\"'\",next:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{stateName:\"qqstring\",token:\"string.start\",regex:'\"',next:[{token:\"string.end\",regex:'\"',next:\"start\"},{token:\"paren.string\",regex:\"#{\",push:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{stateName:\"js\",token:\"string\",regex:\"`\",next:[{token:\"string\",regex:\"`\",next:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{regex:\"[{}]\",onMatch:function(e,t,n){this.next=\"\";if(e==\"{\"&&n.length)return n.unshift(\"start\",t),\"paren\";if(e==\"}\"&&n.length){n.shift(),this.next=n.shift()||\"\";if(this.next.indexOf(\"string\")!=-1)return\"paren.string\"}return\"paren\"}},{token:\"string.regex\",regex:\"///\",next:\"heregex\"},{token:\"string.regex\",regex:/(?:\\/(?![\\s=])[^[\\/\\n\\\\]*(?:(?:\\\\[\\s\\S]|\\[[^\\]\\n\\\\]*(?:\\\\[\\s\\S][^\\]\\n\\\\]*)*])[^[\\/\\n\\\\]*)*\\/)(?:[imgy]{0,4})(?!\\w)/},{token:\"comment\",regex:\"###(?!#)\",next:\"comment\"},{token:\"comment\",regex:\"#.*\"},{token:[\"punctuation.operator\",\"text\",\"identifier\"],regex:\"(\\\\.)(\\\\s*)(\"+r+\")\"},{token:\"punctuation.operator\",regex:\"\\\\.{1,3}\"},{token:[\"keyword\",\"text\",\"language.support.class\",\"text\",\"keyword\",\"text\",\"language.support.class\"],regex:\"(class)(\\\\s+)(\"+e+\")(?:(\\\\s+)(extends)(\\\\s+)(\"+e+\"))?\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\"].concat(a.token),regex:\"(\"+e+\")(\\\\s*)([=:])(\\\\s*)\"+a.regex},a,{token:\"variable\",regex:\"@(?:\"+e+\")?\"},{token:u,regex:e},{token:\"punctuation.operator\",regex:\"\\\\,|\\\\.\"},{token:\"storage.type\",regex:\"[\\\\-=]>\"},{token:\"keyword.operator\",regex:\"(?:[-+*/%<>&|^!?=]=|>>>=?|\\\\-\\\\-|\\\\+\\\\+|::|&&=|\\\\|\\\\|=|<<=|>>=|\\\\?\\\\.|\\\\.{2,3}|[!*+-=><])\"},{token:\"paren.lparen\",regex:\"[({[]\"},{token:\"paren.rparen\",regex:\"[\\\\]})]\"},{token:\"text\",regex:\"\\\\s+\"}],heregex:[{token:\"string.regex\",regex:\".*?///[imgy]{0,4}\",next:\"start\"},{token:\"comment.regex\",regex:\"\\\\s+(?:#.*)?\"},{token:\"string.regex\",regex:\"\\\\S+\"}],comment:[{token:\"comment\",regex:\"###\",next:\"start\"},{defaultToken:\"comment\"}]},this.normalizeRules()}var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules;r.inherits(s,i),t.CoffeeHighlightRules=s}),ace.define(\"ace/mode/jade_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/markdown_highlight_rules\",\"ace/mode/scss_highlight_rules\",\"ace/mode/less_highlight_rules\",\"ace/mode/coffee_highlight_rules\",\"ace/mode/javascript_highlight_rules\"],function(e,t,n){\"use strict\";function l(e,t){return{token:\"entity.name.function.jade\",regex:\"^\\\\s*\\\\:\"+e,next:t+\"start\"}}var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=e(\"./markdown_highlight_rules\").MarkdownHighlightRules,o=e(\"./scss_highlight_rules\").ScssHighlightRules,u=e(\"./less_highlight_rules\").LessHighlightRules,a=e(\"./coffee_highlight_rules\").CoffeeHighlightRules,f=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,c=function(){var e=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)\";this.$rules={start:[{token:\"keyword.control.import.include.jade\",regex:\"\\\\s*\\\\binclude\\\\b\"},{token:\"keyword.other.doctype.jade\",regex:\"^!!!\\\\s*(?:[a-zA-Z0-9-_]+)?\"},{onMatch:function(e,t,n){return n.unshift(this.next,e.length-2,t),\"comment\"},regex:/^\\s*\\/\\//,next:\"comment_block\"},l(\"markdown\",\"markdown-\"),l(\"sass\",\"sass-\"),l(\"less\",\"less-\"),l(\"coffee\",\"coffee-\"),{token:[\"storage.type.function.jade\",\"entity.name.function.jade\",\"punctuation.definition.parameters.begin.jade\",\"variable.parameter.function.jade\",\"punctuation.definition.parameters.end.jade\"],regex:\"^(\\\\s*mixin)( [\\\\w\\\\-]+)(\\\\s*\\\\()(.*?)(\\\\))\"},{token:[\"storage.type.function.jade\",\"entity.name.function.jade\"],regex:\"^(\\\\s*mixin)( [\\\\w\\\\-]+)\"},{token:\"source.js.embedded.jade\",regex:\"^\\\\s*(?:-|=|!=)\",next:\"js-start\"},{token:\"string.interpolated.jade\",regex:\"[#!]\\\\{[^\\\\}]+\\\\}\"},{token:\"meta.tag.any.jade\",regex:/^\\s*(?!\\w+:)(?:[\\w-]+|(?=\\.|#)])/,next:\"tag_single\"},{token:\"suport.type.attribute.id.jade\",regex:\"#\\\\w+\"},{token:\"suport.type.attribute.class.jade\",regex:\"\\\\.\\\\w+\"},{token:\"punctuation\",regex:\"\\\\s*(?:\\\\()\",next:\"tag_attributes\"}],comment_block:[{regex:/^\\s*(?:\\/\\/)?/,onMatch:function(e,t,n){return e.length<=n[1]?e.slice(-1)==\"/\"?(n[1]=e.length-2,this.next=\"\",\"comment\"):(n.shift(),n.shift(),this.next=n.shift(),\"text\"):(this.next=\"\",\"comment\")},next:\"start\"},{defaultToken:\"comment\"}],tag_single:[{token:\"entity.other.attribute-name.class.jade\",regex:\"\\\\.[\\\\w-]+\"},{token:\"entity.other.attribute-name.id.jade\",regex:\"#[\\\\w-]+\"},{token:[\"text\",\"punctuation\"],regex:\"($)|((?!\\\\.|#|=|-))\",next:\"start\"}],tag_attributes:[{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:[\"entity.other.attribute-name.jade\",\"punctuation\"],regex:\"([a-zA-Z:\\\\.-]+)(=)?\",next:\"attribute_strings\"},{token:\"punctuation\",regex:\"\\\\)\",next:\"start\"}],attribute_strings:[{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"string\",regex:\"(?=\\\\S)\",next:\"tag_attributes\"}],qqstring:[{token:\"constant.language.escape\",regex:e},{token:\"string\",regex:'[^\"\\\\\\\\]+'},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"tag_attributes\"}],qstring:[{token:\"constant.language.escape\",regex:e},{token:\"string\",regex:\"[^'\\\\\\\\]+\"},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"tag_attributes\"}]},this.embedRules(f,\"js-\",[{token:\"text\",regex:\".$\",next:\"start\"}])};r.inherits(c,i),t.JadeHighlightRules=c}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/jade\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jade_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./jade_highlight_rules\").JadeHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.$id=\"ace/mode/jade\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-java.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/java_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while\",t=\"null|Infinity|NaN|undefined\",n=\"AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object\",r=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"constant.language\":t,\"support.function\":n},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.[\\d_]*)?(?:[eE][+-]?[\\d_]+)?)?[LlSsDdFfYy]?\\b/},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.JavaHighlightRules=o}),ace.define(\"ace/mode/java\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/java_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript\").Mode,s=e(\"./java_highlight_rules\").JavaHighlightRules,o=function(){i.call(this),this.HighlightRules=s};r.inherits(o,i),function(){this.createWorker=function(e){return null},this.$id=\"ace/mode/java\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict/mode-javascript.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l})"
  },
  {
    "path": "lib/src-min-noconflict/mode-json.js",
    "content": "ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"variable\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'},{token:\"string\",regex:'\"',next:\"string\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:\"invalid.illegal\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"invalid.illegal\",regex:\"\\\\/\\\\/.*$\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],string:[{token:\"constant.language.escape\",regex:/\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/},{token:\"string\",regex:'[^\"\\\\\\\\]+'},{token:\"string\",regex:'\"',next:\"start\"},{token:\"string\",regex:\"\",next:\"start\"}]}};r.inherits(s,i),t.JsonHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./json_highlight_rules\").JsonHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=e(\"../worker/worker_client\").WorkerClient,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,i),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if(e==\"start\"){var i=t.match(/^.*[\\{\\(\\[]\\s*$/);i&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new f([\"ace\"],\"ace/mode/json_worker\",\"JsonWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/json\"}.call(l.prototype),t.Mode=l})"
  },
  {
    "path": "lib/src-min-noconflict/mode-jsoniq.js",
    "content": "ace.define(\"ace/mode/xquery/jsoniq_lexer\",[\"require\",\"exports\",\"module\"],function(e,t,n){n.exports=function r(t,n,i){function s(u,a){if(!n[u]){if(!t[u]){var f=typeof e==\"function\"&&e;if(!a&&f)return f(u,!0);if(o)return o(u,!0);throw new Error(\"Cannot find module '\"+u+\"'\")}var l=n[u]={exports:{}};t[u][0].call(l.exports,function(e){var n=t[u][1][e];return s(n?n:e)},l,l.exports,r,t,n,i)}return n[u].exports}var o=typeof e==\"function\"&&e;for(var u=0;u<i.length;u++)s(i[u]);return s}({1:[function(e,t,n){var r=n.JSONiqTokenizer=function i(e,t){function r(e,t){E=t,S=e,x=e.length,s(0,0,0)}function s(e,t,n){m=t,g=t,y=e,b=t,w=n,N=n,E.reset(S)}function o(){E.startNonterminal(\"EQName\",g);switch(y){case 80:f(80);break;case 94:f(94);break;case 118:f(118);break;case 119:f(119);break;case 122:f(122);break;case 143:f(143);break;case 150:f(150);break;case 163:f(163);break;case 183:f(183);break;case 189:f(189);break;case 214:f(214);break;case 224:f(224);break;case 225:f(225);break;case 241:f(241);break;case 242:f(242);break;case 251:f(251);break;default:u()}E.endNonterminal(\"EQName\",g)}function u(){E.startNonterminal(\"FunctionName\",g);switch(y){case 17:f(17);break;case 68:f(68);break;case 71:f(71);break;case 72:f(72);break;case 73:f(73);break;case 77:f(77);break;case 78:f(78);break;case 82:f(82);break;case 86:f(86);break;case 87:f(87);break;case 88:f(88);break;case 91:f(91);break;case 92:f(92);break;case 101:f(101);break;case 103:f(103);break;case 106:f(106);break;case 107:f(107);break;case 108:f(108);break;case 109:f(109);break;case 110:f(110);break;case 111:f(111);break;case 116:f(116);break;case 117:f(117);break;case 120:f(120);break;case 121:f(121);break;case 124:f(124);break;case 126:f(126);break;case 127:f(127);break;case 129:f(129);break;case 132:f(132);break;case 133:f(133);break;case 134:f(134);break;case 135:f(135);break;case 144:f(144);break;case 146:f(146);break;case 148:f(148);break;case 149:f(149);break;case 151:f(151);break;case 157:f(157);break;case 158:f(158);break;case 160:f(160);break;case 161:f(161);break;case 162:f(162);break;case 168:f(168);break;case 170:f(170);break;case 172:f(172);break;case 176:f(176);break;case 178:f(178);break;case 179:f(179);break;case 180:f(180);break;case 182:f(182);break;case 184:f(184);break;case 196:f(196);break;case 198:f(198);break;case 199:f(199);break;case 200:f(200);break;case 204:f(204);break;case 210:f(210);break;case 211:f(211);break;case 216:f(216);break;case 217:f(217);break;case 218:f(218);break;case 222:f(222);break;case 227:f(227);break;case 233:f(233);break;case 234:f(234);break;case 235:f(235);break;case 246:f(246);break;case 247:f(247);break;case 248:f(248);break;case 252:f(252);break;case 254:f(254);break;case 258:f(258);break;case 264:f(264);break;case 268:f(268);break;case 272:f(272);break;case 70:f(70);break;case 79:f(79);break;case 81:f(81);break;case 83:f(83);break;case 84:f(84);break;case 89:f(89);break;case 96:f(96);break;case 99:f(99);break;case 100:f(100);break;case 102:f(102);break;case 104:f(104);break;case 123:f(123);break;case 130:f(130);break;case 131:f(131);break;case 139:f(139);break;case 152:f(152);break;case 153:f(153);break;case 159:f(159);break;case 169:f(169);break;case 190:f(190);break;case 197:f(197);break;case 201:f(201);break;case 220:f(220);break;case 223:f(223);break;case 226:f(226);break;case 232:f(232);break;case 238:f(238);break;case 249:f(249);break;case 250:f(250);break;case 255:f(255);break;case 259:f(259);break;case 260:f(260);break;case 261:f(261);break;case 265:f(265);break;case 95:f(95);break;case 174:f(174);break;default:f(219)}E.endNonterminal(\"FunctionName\",g)}function a(){E.startNonterminal(\"NCName\",g);switch(y){case 28:f(28);break;case 68:f(68);break;case 73:f(73);break;case 77:f(77);break;case 78:f(78);break;case 82:f(82);break;case 86:f(86);break;case 87:f(87);break;case 88:f(88);break;case 92:f(92);break;case 103:f(103);break;case 107:f(107);break;case 111:f(111);break;case 116:f(116);break;case 120:f(120);break;case 121:f(121);break;case 124:f(124);break;case 126:f(126);break;case 129:f(129);break;case 135:f(135);break;case 144:f(144);break;case 146:f(146);break;case 148:f(148);break;case 149:f(149);break;case 158:f(158);break;case 160:f(160);break;case 161:f(161);break;case 162:f(162);break;case 170:f(170);break;case 172:f(172);break;case 176:f(176);break;case 178:f(178);break;case 179:f(179);break;case 184:f(184);break;case 196:f(196);break;case 198:f(198);break;case 199:f(199);break;case 218:f(218);break;case 222:f(222);break;case 234:f(234);break;case 235:f(235);break;case 246:f(246);break;case 247:f(247);break;case 252:f(252);break;case 264:f(264);break;case 268:f(268);break;case 71:f(71);break;case 72:f(72);break;case 80:f(80);break;case 91:f(91);break;case 94:f(94);break;case 101:f(101);break;case 106:f(106);break;case 108:f(108);break;case 109:f(109);break;case 110:f(110);break;case 117:f(117);break;case 118:f(118);break;case 119:f(119);break;case 122:f(122);break;case 127:f(127);break;case 132:f(132);break;case 133:f(133);break;case 134:f(134);break;case 143:f(143);break;case 150:f(150);break;case 151:f(151);break;case 157:f(157);break;case 163:f(163);break;case 168:f(168);break;case 180:f(180);break;case 182:f(182);break;case 183:f(183);break;case 189:f(189);break;case 200:f(200);break;case 204:f(204);break;case 210:f(210);break;case 211:f(211);break;case 214:f(214);break;case 216:f(216);break;case 217:f(217);break;case 224:f(224);break;case 225:f(225);break;case 227:f(227);break;case 233:f(233);break;case 241:f(241);break;case 242:f(242);break;case 248:f(248);break;case 251:f(251);break;case 254:f(254);break;case 258:f(258);break;case 260:f(260);break;case 272:f(272);break;case 70:f(70);break;case 79:f(79);break;case 81:f(81);break;case 83:f(83);break;case 84:f(84);break;case 89:f(89);break;case 96:f(96);break;case 99:f(99);break;case 100:f(100);break;case 102:f(102);break;case 104:f(104);break;case 123:f(123);break;case 130:f(130);break;case 131:f(131);break;case 139:f(139);break;case 152:f(152);break;case 153:f(153);break;case 159:f(159);break;case 169:f(169);break;case 190:f(190);break;case 197:f(197);break;case 201:f(201);break;case 220:f(220);break;case 223:f(223);break;case 226:f(226);break;case 232:f(232);break;case 238:f(238);break;case 249:f(249);break;case 250:f(250);break;case 255:f(255);break;case 259:f(259);break;case 261:f(261);break;case 265:f(265);break;case 95:f(95);break;case 174:f(174);break;default:f(219)}E.endNonterminal(\"NCName\",g)}function f(e){y==e?(l(),E.terminal(i.TOKEN[y],b,w>x?x:w),m=b,g=w,y=0):d(b,w,0,y,e)}function l(){g!=b&&(m=g,g=b,E.whitespace(m,g))}function c(e){var t;for(;;){t=C(e);if(t!=30)break}return t}function h(e){y==0&&(y=c(e),b=T,w=N)}function p(e){y==0&&(y=C(e),b=T,w=N)}function d(e,t,r,i,s){throw new n.ParseException(e,t,r,i,s)}function C(e){var t=!1;T=N;var n=N,r=i.INITIAL[e],s=0;for(var o=r&4095;o!=0;){var u,a=n<x?S.charCodeAt(n):0;++n;if(a<128)u=i.MAP0[a];else if(a<55296){var f=a>>4;u=i.MAP1[(a&15)+i.MAP1[(f&31)+i.MAP1[f>>5]]]}else{if(a<56320){var f=n<x?S.charCodeAt(n):0;f>=56320&&f<57344&&(++n,a=((a&1023)<<10)+(f&1023)+65536,t=!0)}var l=0,c=5;for(var h=3;;h=c+l>>1){if(i.MAP2[h]>a)c=h-1;else{if(!(i.MAP2[6+h]<a)){u=i.MAP2[12+h];break}l=h+1}if(l>c){u=0;break}}}s=o;var p=(u<<12)+o-1;o=i.TRANSITION[(p&15)+i.TRANSITION[p>>4]],o>4095&&(r=o,o&=4095,N=n)}r>>=12;if(r==0){N=n-1;var f=N<x?S.charCodeAt(N):0;return f>=56320&&f<57344&&--N,d(T,N,s,-1,-1)}if(t)for(var v=r>>9;v>0;--v){--N;var f=N<x?S.charCodeAt(N):0;f>=56320&&f<57344&&--N}else N-=r>>9;return(r&511)-1}r(e,t);var n=this;this.ParseException=function(e,t,n,r,i){var s=e,o=t,u=n,a=r,f=i;this.getBegin=function(){return s},this.getEnd=function(){return o},this.getState=function(){return u},this.getExpected=function(){return f},this.getOffending=function(){return a},this.getMessage=function(){return a<0?\"lexical analysis failed\":\"syntax error\"}},this.getInput=function(){return S},this.getOffendingToken=function(e){var t=e.getOffending();return t>=0?i.TOKEN[t]:null},this.getExpectedTokenSet=function(e){var t;return e.getExpected()<0?t=i.getTokenSet(-e.getState()):t=[i.TOKEN[e.getExpected()]],t},this.getErrorMessage=function(e){var t=this.getExpectedTokenSet(e),n=this.getOffendingToken(e),r=S.substring(0,e.getBegin()),i=r.split(\"\\n\"),s=i.length,o=i[s-1].length+1,u=e.getEnd()-e.getBegin();return e.getMessage()+(n==null?\"\":\", found \"+n)+\"\\nwhile expecting \"+(t.length==1?t[0]:\"[\"+t.join(\", \")+\"]\")+\"\\n\"+(u==0||n!=null?\"\":\"after successfully scanning \"+u+\" characters beginning \")+\"at line \"+s+\", column \"+o+\":\\n...\"+S.substring(e.getBegin(),Math.min(S.length,e.getBegin()+64))+\"...\"},this.parse_start=function(){E.startNonterminal(\"start\",g),h(14);switch(y){case 58:f(58);break;case 57:f(57);break;case 59:f(59);break;case 43:f(43);break;case 45:f(45);break;case 44:f(44);break;case 37:f(37);break;case 41:f(41);break;case 277:f(277);break;case 274:f(274);break;case 42:f(42);break;case 46:f(46);break;case 52:f(52);break;case 65:f(65);break;case 66:f(66);break;case 49:f(49);break;case 51:f(51);break;case 56:f(56);break;case 54:f(54);break;case 36:f(36);break;case 276:f(276);break;case 40:f(40);break;case 5:f(5);break;case 4:f(4);break;case 6:f(6);break;case 15:f(15);break;case 16:f(16);break;case 18:f(18);break;case 19:f(19);break;case 20:f(20);break;case 8:f(8);break;case 9:f(9);break;case 7:f(7);break;case 35:f(35);break;default:o()}E.endNonterminal(\"start\",g)},this.parse_StartTag=function(){E.startNonterminal(\"StartTag\",g),h(8);switch(y){case 61:f(61);break;case 53:f(53);break;case 29:f(29);break;case 60:f(60);break;case 37:f(37);break;case 41:f(41);break;default:f(35)}E.endNonterminal(\"StartTag\",g)},this.parse_TagContent=function(){E.startNonterminal(\"TagContent\",g),p(11);switch(y){case 25:f(25);break;case 9:f(9);break;case 10:f(10);break;case 58:f(58);break;case 57:f(57);break;case 21:f(21);break;case 31:f(31);break;case 275:f(275);break;case 278:f(278);break;case 274:f(274);break;default:f(35)}E.endNonterminal(\"TagContent\",g)},this.parse_AposAttr=function(){E.startNonterminal(\"AposAttr\",g),p(10);switch(y){case 23:f(23);break;case 27:f(27);break;case 21:f(21);break;case 31:f(31);break;case 275:f(275);break;case 278:f(278);break;case 274:f(274);break;case 41:f(41);break;default:f(35)}E.endNonterminal(\"AposAttr\",g)},this.parse_QuotAttr=function(){E.startNonterminal(\"QuotAttr\",g),p(9);switch(y){case 22:f(22);break;case 26:f(26);break;case 21:f(21);break;case 31:f(31);break;case 275:f(275);break;case 278:f(278);break;case 274:f(274);break;case 37:f(37);break;default:f(35)}E.endNonterminal(\"QuotAttr\",g)},this.parse_CData=function(){E.startNonterminal(\"CData\",g),p(1);switch(y){case 14:f(14);break;case 67:f(67);break;default:f(35)}E.endNonterminal(\"CData\",g)},this.parse_XMLComment=function(){E.startNonterminal(\"XMLComment\",g),p(0);switch(y){case 12:f(12);break;case 50:f(50);break;default:f(35)}E.endNonterminal(\"XMLComment\",g)},this.parse_PI=function(){E.startNonterminal(\"PI\",g),p(3);switch(y){case 13:f(13);break;case 62:f(62);break;case 63:f(63);break;default:f(35)}E.endNonterminal(\"PI\",g)},this.parse_Pragma=function(){E.startNonterminal(\"Pragma\",g),p(2);switch(y){case 11:f(11);break;case 38:f(38);break;case 39:f(39);break;default:f(35)}E.endNonterminal(\"Pragma\",g)},this.parse_Comment=function(){E.startNonterminal(\"Comment\",g),p(4);switch(y){case 55:f(55);break;case 44:f(44);break;case 32:f(32);break;default:f(35)}E.endNonterminal(\"Comment\",g)},this.parse_CommentDoc=function(){E.startNonterminal(\"CommentDoc\",g),p(6);switch(y){case 33:f(33);break;case 34:f(34);break;case 55:f(55);break;case 44:f(44);break;default:f(35)}E.endNonterminal(\"CommentDoc\",g)},this.parse_QuotString=function(){E.startNonterminal(\"QuotString\",g),p(5);switch(y){case 3:f(3);break;case 2:f(2);break;case 1:f(1);break;case 37:f(37);break;default:f(35)}E.endNonterminal(\"QuotString\",g)},this.parse_AposString=function(){E.startNonterminal(\"AposString\",g),p(7);switch(y){case 21:f(21);break;case 31:f(31);break;case 23:f(23);break;case 24:f(24);break;case 41:f(41);break;default:f(35)}E.endNonterminal(\"AposString\",g)},this.parse_Prefix=function(){E.startNonterminal(\"Prefix\",g),h(13),l(),a(),E.endNonterminal(\"Prefix\",g)},this.parse__EQName=function(){E.startNonterminal(\"_EQName\",g),h(12),l(),o(),E.endNonterminal(\"_EQName\",g)};var v,m,g,y,b,w,E,S,x,T,N};r.getTokenSet=function(e){var t=[],n=e<0?-e:INITIAL[e]&4095;for(var i=0;i<279;i+=32){var s=i,o=(i>>5)*2066+n-1,u=o>>2,a=u>>2,f=r.EXPECTED[(o&3)+r.EXPECTED[(u&3)+r.EXPECTED[(a&3)+r.EXPECTED[a>>2]]]];for(;f!=0;f>>>=1,++s)(f&1)!=0&&t.push(r.TOKEN[s])}return t},r.MAP0=[67,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,18,18,18,18,18,18,18,18,18,19,20,21,22,23,24,25,26,27,28,29,30,27,31,31,31,31,31,31,31,31,31,31,32,31,31,33,31,31,31,31,31,31,34,35,36,37,31,37,38,39,40,41,42,43,44,45,46,31,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,31,62,63,64,65,37],r.MAP1=[108,124,214,214,214,214,214,214,214,214,214,214,214,214,214,214,156,181,181,181,181,181,214,215,213,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,247,261,277,293,309,347,363,379,416,416,416,408,331,323,331,323,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,433,433,433,433,433,433,433,316,331,331,331,331,331,331,331,331,394,416,416,417,415,416,416,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,330,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,416,67,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,18,18,18,18,18,18,18,18,18,19,20,21,22,23,24,25,26,27,28,29,30,27,31,31,31,31,31,31,31,31,31,31,31,31,31,31,37,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,32,31,31,33,31,31,31,31,31,31,34,35,36,37,31,37,38,39,40,41,42,43,44,45,46,31,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,31,62,63,64,65,37,37,37,37,37,37,37,37,37,37,37,37,31,31,37,37,37,37,37,37,37,66,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66],r.MAP2=[57344,63744,64976,65008,65536,983040,63743,64975,65007,65533,983039,1114111,37,31,37,31,31,37],r.INITIAL=[1,2,49155,57348,5,6,7,8,9,10,11,12,13,14,15],r.TRANSITION=[19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,17408,19288,17439,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,22126,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17672,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,19469,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,36919,18234,18262,18278,18294,18320,18336,18361,18397,18419,18432,18304,18448,18485,18523,18553,18583,18599,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,18825,18841,18871,18906,18944,18960,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19074,36169,17439,36866,17466,36890,36866,22314,19105,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,22126,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17672,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,19469,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,36919,18234,18262,18278,18294,18320,18336,18361,18397,18419,18432,18304,18448,18485,18523,18553,18583,18599,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,18825,18841,18871,18906,18944,18960,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22182,19288,19121,36866,17466,18345,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19273,19552,19304,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19332,17423,19363,36866,17466,17537,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,18614,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,19391,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,19427,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36154,19288,19457,36866,17466,17740,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22780,19288,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22375,22197,18469,36866,17466,36890,36866,21991,24018,22987,17556,17575,22288,17486,17509,17525,18373,21331,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,19485,19501,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19537,22390,19568,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19596,19611,19457,36866,17466,36890,36866,18246,19627,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22242,20553,19457,36866,17466,36890,36866,18648,30477,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36472,19288,19457,36866,17466,17809,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,21770,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,19643,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,19672,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,20538,19288,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,17975,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22345,19288,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19726,19742,21529,24035,23112,26225,23511,27749,27397,24035,34360,24035,24036,23114,35166,23114,23114,19758,23511,35247,23511,23511,28447,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,24254,19821,23511,23511,23511,23511,23512,19441,36539,24035,24035,24035,24035,19846,19869,23114,23114,23114,28618,32187,19892,23511,23511,23511,34585,20402,36647,24035,24035,24036,23114,33757,23114,23114,23029,20271,23511,27070,23511,23511,30562,24035,24035,29274,26576,23114,23114,31118,23036,29695,23511,23511,32431,23634,30821,24035,23110,19913,23114,23467,31261,23261,34299,19932,24035,32609,19965,35389,19984,27689,19830,29391,29337,20041,22643,35619,33728,20062,20121,20166,35100,26145,20211,23008,19876,20208,20227,25670,20132,26578,27685,20141,20243,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36094,19288,19457,36866,17466,21724,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22735,19552,20287,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22750,19288,21529,24035,23112,28056,23511,29483,28756,24035,24035,24035,24036,23114,23114,23114,23114,20327,23511,23511,23511,23511,31156,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,24254,20371,23511,23511,23511,23511,27443,20395,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,29457,29700,23511,23511,23511,23511,33444,20402,24035,24035,24035,24036,23114,23114,23114,23114,28350,20421,23511,23511,23511,23511,25645,24035,24035,24035,26576,23114,23114,23114,20447,20475,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,20523,22257,20569,20783,21715,17603,20699,20837,20614,20630,21149,20670,21405,17486,17509,17525,18373,19179,20695,20716,20732,20755,19194,18042,21641,20592,20779,20598,21412,17470,17591,20896,17468,17619,20799,20700,21031,20744,20699,20828,18075,21259,20581,20853,18048,20868,20884,17756,17784,17800,17825,17854,21171,21200,20931,20947,21378,20955,20971,18086,20645,21002,20986,18178,17960,18012,18381,18064,29176,21044,21438,21018,21122,21393,21060,21844,21094,20654,17493,18150,18166,18214,25967,20763,21799,21110,21830,21138,21246,21301,18336,18361,21165,21187,20812,21216,21232,21287,21317,18553,21347,21363,21428,21454,21271,21483,21499,21515,21575,21467,18712,21591,21633,21078,18189,18198,20679,21657,21701,21074,21687,21740,21756,21786,21815,21860,21876,21892,21946,21962,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36457,19288,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,36813,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,21981,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,22151,22007,18884,17900,17922,17944,18178,17960,18012,18381,18064,27898,17884,18890,17906,17928,22042,25022,18130,36931,36963,17493,18150,18166,22070,22112,25026,18134,36935,18262,18278,18294,18320,18336,18361,22142,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36109,19288,18469,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22167,19288,19457,36866,17466,17768,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22227,36487,22273,36866,17466,36890,36866,19316,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18749,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,22304,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,19580,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22330,19089,19457,36866,17466,18721,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22765,19347,19457,36866,17466,36890,36866,18114,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,29483,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,29116,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,27443,22493,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34541,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,22839,23511,23511,23511,23511,25645,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,22540,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,29483,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,29116,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,27443,22493,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34564,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,22839,23511,23511,23511,23511,25645,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,29483,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,29908,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,27443,22493,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34564,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,22839,23511,23511,23511,23511,25645,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,29483,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,29116,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,27443,22561,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34564,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,22839,23511,23511,23511,23511,25645,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,23837,23511,29483,29939,24035,24035,24035,24036,23114,23114,23114,23114,22584,23511,23511,23511,23511,29116,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,27443,22493,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34564,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,22839,23511,23511,23511,23511,25645,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,31507,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,23512,24694,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36442,19288,21605,24035,23112,28137,23511,31507,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,23512,24694,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,31507,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,23512,24694,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,31568,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22690,19288,19457,36866,17466,36890,36866,21991,27584,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,22659,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22360,19552,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22675,22811,19457,36866,17466,36890,36866,19133,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,22827,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36139,19288,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36064,19288,22865,22881,32031,22897,22913,22956,29939,24035,24035,24035,23003,23114,23114,23114,23024,22420,23511,23511,23511,23052,29116,23073,29268,24035,25563,26915,23106,23131,23114,23114,23159,23181,23197,23248,23511,23511,23282,23305,22493,32364,24035,33472,30138,26325,31770,33508,27345,33667,23114,23321,23473,23351,35793,36576,23511,23375,22500,24145,24035,29197,20192,24533,23440,23114,19017,23459,22839,23489,23510,23511,33563,23528,32076,25389,24035,26576,23561,23583,23114,32683,22516,23622,23655,23511,23634,35456,37144,23110,23683,34153,20499,32513,25824,23705,24035,24035,23111,23114,19874,27078,33263,19830,24035,23112,19872,27741,23266,24036,23114,30243,20507,32241,20150,31862,27464,35108,23727,23007,35895,34953,26578,27685,20141,24569,31691,19787,33967,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36427,19552,21605,24035,23112,32618,23511,29483,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,29116,19803,24035,24035,24035,27027,26576,23114,23114,23114,31471,23756,22468,23511,23511,23511,34687,23772,22493,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34564,23788,24035,24035,24035,21559,23828,23114,23114,23114,25086,22839,23853,23511,23511,23511,23876,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,31761,23909,23953,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36049,19288,21605,30825,23112,23987,23511,24003,31001,27617,24034,24035,24036,24052,24089,23114,23114,22420,24109,24168,23511,23511,29116,24188,27609,20017,29516,24035,26576,24222,19968,23114,24252,33811,22468,24270,33587,23511,24320,27443,22493,24035,24035,24035,24035,24339,23113,23114,23114,23114,28128,28618,29700,23511,23511,23511,28276,34564,20402,24035,24035,32929,24036,23114,23114,23114,24357,23029,22839,23511,23511,23511,24377,25645,24035,34112,24035,26576,23114,26643,23114,32683,22516,23511,25638,23511,23711,24035,24395,27809,23114,24414,20499,24432,30917,23628,24035,30680,23111,23114,30233,27078,25748,24452,24035,23112,19872,27741,23266,24036,23114,24475,19829,26577,26597,26154,24519,24556,24596,23007,20046,20132,26578,24634,20141,24569,31691,24679,24727,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36412,19288,21605,19943,34861,32618,26027,29483,32016,32050,36233,24776,35574,24801,24819,32671,31289,22420,24868,24886,20087,26849,29116,19803,24035,24035,24035,36228,26576,23114,23114,23114,24981,33811,22468,23511,23511,23511,29028,27443,22493,24923,27965,24035,24035,32797,24946,23443,23114,23114,29636,24997,22849,28252,23511,23511,23511,25042,25110,24035,24035,34085,24036,25133,23114,23114,25152,23029,22839,25169,23511,36764,23511,25645,30403,24035,25186,26576,31806,24093,25212,32683,22516,32713,26245,34293,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,32406,23111,23114,28676,30944,27689,25234,24035,23112,19872,37063,23266,24036,23114,30243,20379,26100,29218,20211,30105,25257,25284,23007,20046,20132,26578,27685,20141,24569,24834,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36034,19288,21671,25314,25072,25330,25346,25362,29939,29951,35288,29984,23812,27216,25405,25424,30456,22584,26292,25461,25480,31592,29116,25516,34963,25545,27007,25579,33937,25614,25661,25686,34872,25702,25718,25734,25769,25795,25811,25840,22493,26533,25856,24035,25876,30763,27481,25909,23114,28987,25936,25954,29700,25983,23511,31412,26043,26063,22568,29241,29592,26116,31216,35383,26170,34783,26194,26221,22839,26241,26261,22477,26283,26308,27306,31035,24655,26576,29854,33386,26341,32683,22516,32153,30926,26361,19996,26381,35463,26397,26424,34646,26478,35605,31386,26494,35567,31964,22940,23689,25218,30309,32289,19830,33605,23112,32109,27733,27084,24496,35886,35221,26525,36602,26549,26558,26574,26594,26613,26629,26666,26700,26578,27685,23740,24285,31691,26733,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36397,19552,18991,25887,28117,32618,26776,29483,29939,26802,24035,24035,24036,28664,23114,23114,23114,22420,30297,23511,23511,23511,29116,19803,24035,24035,24035,25559,26576,23114,23114,23114,30525,33811,22468,23511,23511,23511,28725,27443,22493,24035,24035,27249,24035,24035,23113,23114,23114,26827,23114,28618,29700,23511,23511,26845,23511,34564,20402,24035,24035,26979,24036,23114,23114,23114,24974,23029,22839,23511,23511,23511,26865,25645,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,33305,24035,25598,23114,19874,34253,27689,19830,24035,23112,19872,27741,23266,24036,23114,26886,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,26931,24569,26439,26947,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36019,19288,26995,24035,23112,32618,23511,31507,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,27043,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,27061,23511,23511,23511,23511,23512,24694,24035,24035,29978,24035,24035,23113,23114,33114,23114,23114,30010,29700,23511,35913,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,27155,26576,23114,23114,30447,23036,29695,23511,23511,30935,20099,24152,25529,27100,34461,27121,22625,29156,26009,27137,30422,31903,31655,28870,27171,32439,31731,19830,27232,22612,27265,26786,25494,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,20342,27288,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,27322,27339,28020,27361,27382,29939,24035,24035,32581,24036,23114,23114,23114,27425,22420,23511,23511,23511,27442,28306,19803,24035,24035,24035,24035,26710,23114,23114,23114,23114,32261,22468,23511,23511,23511,23511,35719,24694,29510,24035,24035,24035,24035,26717,23114,23114,23114,23114,28618,32217,23511,23511,23511,23511,34585,20402,24035,24035,24035,27459,23114,23114,23114,36252,23029,20271,23511,23511,23511,28840,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,27480,34483,28401,29761,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36382,19288,21605,27497,27517,28504,28898,27569,29939,29401,27600,27323,27633,19025,27662,23114,27705,22420,20483,27721,23511,27765,28306,19803,23540,24035,24610,27781,27805,26650,23114,28573,32990,25920,22468,26870,23511,26684,34262,34737,25057,34622,24035,24035,23971,24206,27825,27847,23114,23114,27865,27885,35766,27914,23511,23511,32766,32844,27934,28795,26909,27955,26092,27988,25445,28005,28036,28052,21965,23511,32196,19897,28072,28102,36534,21541,23801,28153,28180,28197,28221,23036,32695,28251,28268,28292,23667,34825,23930,24580,28322,28344,31627,28366,25996,23628,24035,24035,23111,23114,19874,27078,27689,35625,33477,33359,27674,28393,33992,24036,23114,30243,19829,28417,28433,28463,23008,19876,20208,23007,20046,20132,28489,28520,20141,24569,31691,19787,28550,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,31507,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,23512,24694,28589,24035,24035,24035,24035,28608,23114,23114,23114,23114,28618,20431,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36004,19288,28634,31951,28565,28702,28718,28741,32544,20175,28792,32086,20105,28811,29059,29862,28856,22420,28886,30354,23359,28922,28306,28952,23888,26320,36506,24035,29331,28968,36609,23114,29003,31661,27061,30649,27366,23511,29023,27918,24694,24035,24035,23893,33094,30867,23113,23114,23114,29044,34184,30010,29700,23511,23511,29081,29102,34585,20402,27789,24035,24035,24036,23114,29132,23114,23114,23029,20271,23511,29153,23511,23511,30562,30174,24035,24035,27409,25438,23114,23114,29172,36668,31332,23511,23511,29192,30144,24035,23110,30203,23114,23467,31544,23261,23628,24035,22545,23111,23114,29213,27078,27689,29234,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,29257,23008,19876,20208,28768,29290,29320,34776,29353,20141,22435,29378,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36367,19288,21605,34616,19006,32618,31497,31507,36216,20184,24035,34393,29424,34668,23114,34900,29447,22420,30360,23511,37089,29473,28306,19803,29499,24398,24035,24035,26576,31799,29532,29550,23114,33811,22468,32298,29571,31184,23511,23512,37127,36628,29589,24035,24135,24035,23113,29608,23114,27831,29634,28618,29652,30037,23511,24172,29671,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,29555,29690,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,29719,24035,23110,29738,23114,23467,34035,29756,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,29777,34364,28181,30243,29799,31920,27272,27185,23008,31126,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29828,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,35989,19552,19687,35139,28649,29878,29894,29924,29939,23224,23085,31969,24036,35173,24752,24803,23114,22420,31190,30318,24870,23511,28306,29967,23967,24035,24035,24035,26576,3e4,23114,23114,23114,33811,22468,30026,23511,23511,23511,23512,26078,24035,24035,24035,30053,37137,30071,23114,23114,33368,25136,28618,30723,23511,23511,37096,31356,34585,20402,30092,30127,30160,24036,35740,30219,24960,30259,23029,20271,34042,30285,30342,30376,23289,30055,30400,30419,30438,32640,33532,33514,30472,18792,26267,24323,23057,30493,23639,20008,30196,33188,30517,20075,23511,30541,23628,30578,33928,28776,30594,19874,30610,30637,19830,30677,27646,19872,25779,23266,23232,35016,30243,30696,29812,30712,30746,27206,30779,30807,23007,33395,20132,26578,27685,31703,22928,31691,19787,31079,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36352,19288,23335,30841,26131,30888,30904,30986,29939,24035,24704,31017,20025,23114,26178,31051,31095,22420,23511,22524,31142,31172,28534,31206,35497,25196,24035,28592,24503,23114,31239,31285,23114,31305,31321,31355,31372,31407,23511,30556,24694,24035,27501,19805,24035,24035,23113,23114,31428,24066,23114,28618,29700,23511,31837,18809,23511,34585,31448,24035,24035,24035,23090,23114,23114,23114,23114,31619,35038,23511,23511,23511,23511,33714,24035,33085,24035,29431,23114,31467,23114,23143,31487,23511,31523,23511,35195,36783,24035,30111,23567,23114,23467,31543,31560,23628,24035,24035,23111,23114,19874,30953,31584,34508,24035,31608,26345,37055,23266,31643,31677,31719,31747,31786,31822,26898,23008,19876,31859,23007,20046,20132,26578,27685,20141,24569,31691,31878,31936,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,35974,19288,21605,27972,35663,31985,29655,32001,36715,24785,25893,23545,31912,19853,19916,25938,24540,22420,31843,29674,29573,32735,28936,19803,24035,24035,32047,24035,26576,23114,23114,27544,23114,33811,22468,23511,23511,32161,23511,23512,32066,24035,33313,24035,24035,24035,23113,27426,32102,23114,23114,28618,32125,23511,32144,23511,23511,33569,20402,24035,27045,24035,24036,23114,23114,28328,23114,30076,32177,23511,23511,30384,23511,30562,24035,24035,24035,26576,23114,23114,23114,23595,32212,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,22635,25753,32233,32257,32277,19829,26577,26597,20211,23008,19876,32322,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,32352,35285,32380,34196,33016,30661,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,32404,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,32422,23511,23511,23511,23511,23512,24694,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,30269,29700,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,19949,24035,23111,32455,19874,31269,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36337,19552,19209,21617,26509,32475,32491,32529,29939,24035,32578,25241,32597,23114,32634,29007,32656,22420,23511,32729,26365,32751,28306,32788,32882,24035,24035,32813,36727,23114,33182,23114,27553,33235,32829,23511,32706,23511,28906,28377,26962,32881,32904,32898,32920,24035,32953,23114,32977,26408,23114,28164,33006,23511,33039,35774,23511,32306,20402,33076,30872,24035,24036,25408,33110,28979,23114,23029,20271,35835,33130,33054,23511,30562,33148,24035,24035,33167,23114,23114,33775,23036,20459,23511,23511,25464,24646,24035,24035,22446,23114,23114,25627,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,31391,33204,33220,33251,33287,26577,26597,20211,33329,19876,33345,23007,20046,20132,26578,27685,28473,22599,31691,33411,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,35959,19288,21907,27243,29843,32618,33427,31507,29939,33460,34090,24035,24036,33493,24416,33530,23114,22420,33548,24379,33585,23511,28306,19803,33603,24202,24035,24035,25593,33749,28205,23114,23114,32388,22468,33853,33060,23511,23511,31339,33621,24035,24035,34397,24618,30757,33663,23114,23114,33683,35684,28618,26678,23511,23511,32506,33699,34585,20402,24035,32562,26973,24036,23114,23114,33377,33773,23029,20271,23511,23511,30621,23511,23860,24035,33791,21553,26576,36558,23114,33809,23036,32857,26047,23511,33827,23634,24035,24035,23110,23114,23114,31252,23511,33845,23628,24035,24459,23111,23114,33869,27078,30791,29783,24035,24742,19872,33895,23266,26462,19710,33879,33919,26577,26597,24123,24930,21930,20208,30501,33953,25268,20252,33983,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36322,19552,23390,33634,35154,34008,34024,34058,35544,34106,34128,26811,33151,34144,34169,34212,23114,34228,34244,34278,34315,23511,34331,34347,34380,34413,24035,24663,26576,34429,34453,34477,29534,33811,22468,34499,34524,34557,25170,34580,35436,23937,34601,24035,24341,26453,23113,34638,34662,23114,24236,28618,34684,34703,34729,23511,35352,34753,34799,24035,34815,32558,34848,34888,35814,34923,23165,29137,23606,30326,30730,34939,33023,30562,36848,34979,24035,24847,34996,23114,23114,35032,29695,35054,23511,23511,35091,33296,35124,24296,28235,24361,36276,32772,35067,35189,27301,30855,24852,22452,35211,35237,35316,25500,35270,23405,24304,35304,29362,24036,23114,35332,19829,26577,26597,20211,23008,19876,20208,35368,28823,23920,32336,35405,20141,24569,31691,35421,35479,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,35944,22795,21605,33647,35877,35513,30962,35529,34073,35557,24035,24035,20405,31107,23114,23114,23114,35590,34713,23511,23511,23511,35641,19803,29408,32937,25298,24035,35657,23115,27849,24760,35679,26205,22468,23511,35700,24907,24901,35075,31893,34980,24035,24035,24035,24035,23113,35009,23114,23114,23114,28618,35716,30970,23511,23511,23511,34585,23215,24035,24035,24035,24036,35735,23114,23114,23114,27105,35756,35790,23511,23511,23511,35254,35446,24035,24035,31223,35809,23114,23114,23036,36825,35830,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,31031,20355,19872,33903,23266,24036,23114,28686,19829,26577,26597,20211,23008,23424,20208,24711,31065,24486,26578,27685,20141,19773,35851,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36307,19288,21605,35494,19702,32618,33437,31507,29939,25117,24035,27939,24036,27869,23114,26829,23114,22420,23494,23511,33132,23511,28306,19803,24035,34832,24035,24035,26576,23114,25153,23114,23114,33811,22468,23511,23511,35911,23511,23512,24694,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,35929,19288,21605,25860,23112,36185,23511,36201,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,23512,26748,24035,24035,24035,24035,24035,36249,23114,23114,23114,23114,28618,28835,23511,23511,23511,23511,34585,20402,24035,27151,24035,26760,23114,27989,23114,23114,36268,20271,23511,24436,23511,29703,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36292,19288,21605,36503,21922,32618,34534,31507,36522,24035,33793,24035,35864,23114,23114,36555,23417,22420,23511,23511,36574,26020,28306,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,23512,36592,24035,24035,36625,24035,24035,23113,23114,32961,23114,23114,29618,29700,23511,29086,23511,23511,34585,20402,36644,24035,24035,24036,29740,23114,23114,23114,29065,36663,31527,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,31451,23112,36684,23511,36700,29939,24035,24035,24035,30185,23114,23114,23114,27526,22420,23511,23511,23511,32865,28306,19803,36743,24035,27017,24035,26576,27535,23114,31432,23114,33811,22468,33271,23511,32128,23511,23512,24694,24035,27196,24035,24035,24035,23113,32459,23114,23114,23114,28618,29700,33829,36762,23511,23511,34585,20402,24035,36746,24035,29722,23114,23114,34437,23114,34907,20271,23511,23511,18801,23511,23206,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,36837,24035,24035,33739,23114,23114,25094,23511,23261,23628,24035,36780,23111,24073,19874,27078,35344,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22720,19288,36799,36866,17466,36890,36864,21991,22211,22987,17556,17575,22288,17486,17509,17525,18373,17631,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,36883,36906,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22705,19288,19457,36866,17466,36890,36866,19375,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36124,19288,36951,36866,17466,36890,36866,21991,22404,22987,17556,17575,22288,17486,17509,17525,18373,18567,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,36979,36995,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36139,19288,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18027,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36139,19288,21529,24035,23112,23033,23511,31507,25377,24035,24035,24035,24036,23114,23114,23114,23114,37040,23511,23511,23511,23511,28086,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,24254,37079,23511,23511,23511,23511,23512,34766,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,37112,37160,18469,36866,17466,36890,36866,17656,37174,22987,17556,17575,22288,17486,17509,17525,18373,18537,22984,17553,17572,22285,18780,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,36883,36906,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,53264,18,49172,57366,24,8192,28,102432,127011,110630,114730,106539,127011,127011,127011,53264,18,18,0,0,57366,0,24,24,24,0,28,28,28,28,102432,0,0,127011,0,2220032,110630,0,0,0,114730,106539,0,2170880,2170880,2170880,2170880,0,0,0,2170880,2170880,2170880,3002368,2170880,2170880,2170880,2170880,2170880,2170880,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2576384,2215936,2215936,2215936,2416640,2424832,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2543616,2215936,2215936,2215936,2215936,2215936,2629632,2215936,2617344,2215936,2215936,2215936,2215936,2215936,2215936,2691072,2215936,2707456,2215936,2715648,2215936,2723840,2764800,2215936,2215936,2797568,2215936,2822144,2215936,2215936,2854912,2215936,2215936,2215936,2912256,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,180224,0,0,2174976,0,0,2170880,2617344,2170880,2170880,2170880,2170880,2170880,2170880,2691072,2170880,2707456,2170880,2715648,2170880,2723840,2764800,2170880,2170880,2797568,2170880,2170880,2797568,2170880,2822144,2170880,2170880,2854912,2170880,2170880,2170880,2912256,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2215936,2215936,2215936,2215936,2609152,2215936,2215936,2215936,2215936,2215936,2215936,2654208,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,184599,280,0,2174976,0,0,2215936,3117056,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,544,0,546,0,0,2179072,0,0,0,552,0,0,2170880,2170880,2170880,3117056,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,0,0,0,2158592,2158592,2232320,2232320,0,2240512,2240512,0,0,0,644,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,3129344,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2215936,2215936,2215936,2400256,2215936,2215936,2215936,2215936,2711552,2170880,2170880,2170880,2170880,2170880,2760704,2768896,2789376,2813952,2170880,2170880,2170880,2875392,2904064,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2453504,2457600,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,167936,0,0,0,0,2174976,0,0,2215936,2215936,2514944,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2592768,2215936,2215936,2215936,2215936,2215936,2215936,2215936,32768,0,0,0,0,0,2174976,32768,0,2633728,2215936,2215936,2215936,2215936,2215936,2215936,2711552,2215936,2215936,2215936,2215936,2215936,2760704,2768896,2789376,2813952,2215936,2215936,2215936,2875392,2904064,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,0,0,0,2174976,0,65819,2215936,2215936,3031040,2215936,3055616,2215936,2215936,2215936,2215936,3092480,2215936,2215936,3125248,2215936,2215936,2215936,2215936,2215936,2215936,3002368,2215936,2215936,2170880,2170880,2494464,2170880,2170880,0,0,2215936,2215936,2215936,2215936,2215936,2215936,3198976,2215936,0,0,0,0,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,0,0,0,2379776,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2445312,2170880,2465792,2473984,2170880,2170880,2170880,2170880,2170880,2170880,2523136,2170880,2170880,2641920,2170880,2170880,2170880,2699264,2170880,2727936,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2879488,2170880,2916352,2170880,2170880,2170880,2879488,2170880,2916352,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3026944,2170880,2170880,3063808,2170880,2170880,3112960,2170880,2170880,3133440,2170880,2170880,3112960,2170880,2170880,3133440,2170880,2170880,2170880,3162112,2170880,2170880,3182592,3186688,2170880,2379776,2215936,2523136,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2596864,2215936,2621440,2215936,2215936,2641920,2215936,2215936,0,0,0,0,0,0,2179072,548,0,0,0,0,287,2170880,0,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3117056,2170880,2170880,2170880,2170880,2215936,2215936,2699264,2215936,2727936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2879488,2215936,2916352,2215936,2215936,0,0,0,0,188416,0,2179072,0,0,0,0,0,287,2170880,0,2171019,2171019,2171019,2400395,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3031179,2171019,3055755,2171019,2171019,2215936,3133440,2215936,2215936,2215936,3162112,2215936,2215936,3182592,3186688,2215936,0,0,0,0,0,0,0,0,0,0,2171019,2171019,2171019,2171019,2171019,2171019,2523275,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2597003,2171019,2621579,2170880,2170880,2170880,3162112,2170880,2170880,3182592,3186688,2170880,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,0,18,18,24,24,0,4337664,28,2170880,2170880,2170880,2629632,2170880,2170880,2170880,2170880,2719744,2744320,2170880,2170880,2170880,2834432,2838528,2170880,2908160,2170880,2170880,2936832,2215936,2215936,2215936,2215936,2719744,2744320,2215936,2215936,2215936,2834432,2838528,2215936,2908160,2215936,2215936,2936832,2215936,2215936,2985984,2215936,2994176,2215936,2215936,3014656,2215936,3059712,3076096,3088384,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2445312,2215936,2465792,2473984,2215936,2215936,2215936,2215936,2215936,2215936,2171166,2171166,2171166,2171166,2171166,0,0,0,2171166,2171166,2171166,2171166,2171166,2171166,2171019,2171019,2494603,2171019,2171019,2215936,2215936,2215936,3215360,0,0,0,0,0,0,0,0,0,0,0,0,0,2379776,2170880,2170880,2170880,2170880,2985984,2170880,2994176,2170880,2170880,3016168,2170880,3059712,3076096,3088384,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,0,18,18,124,124,0,128,128,2170880,2170880,2170880,3215360,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2486272,2170880,2170880,2506752,2170880,2170880,2170880,2535424,2539520,2170880,2170880,2588672,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2920448,2170880,2170880,2170880,2990080,2170880,2170880,2170880,2170880,3051520,2170880,2170880,2170880,2170880,2170880,2170880,3170304,0,2387968,2392064,2170880,2170880,2433024,2170880,2170880,2170880,3170304,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2486272,2215936,2215936,2506752,2215936,2215936,2215936,2535424,2539520,2215936,2215936,2588672,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,0,0,0,2174976,136,0,2215936,2215936,2920448,2215936,2215936,2215936,2990080,2215936,2215936,2215936,2215936,3051520,2215936,2215936,2215936,2215936,2215936,2215936,2215936,3108864,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,3026944,2215936,2215936,3063808,2215936,2215936,3112960,2215936,2215936,2215936,3170304,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2453504,2457600,2170880,2170880,2170880,2486272,2170880,2170880,2506752,2170880,2170880,2170880,2537049,2539520,2170880,2170880,2588672,2170880,2170880,2170880,1508,2170880,2170880,2170880,1512,2170880,2920448,2170880,2170880,2170880,2990080,2170880,2170880,2170880,2461696,2170880,2170880,2170880,2510848,2170880,2170880,2170880,2170880,2580480,2170880,2605056,2637824,2170880,2170880,18,0,0,0,0,0,0,0,0,2220032,0,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2686976,2748416,2170880,2170880,2170880,2924544,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3121152,2170880,2170880,3145728,3158016,3166208,2170880,2420736,2428928,2170880,2478080,2170880,2170880,2170880,2170880,0,0,2170880,2170880,2170880,2170880,2646016,2670592,0,0,3145728,3158016,3166208,2387968,2392064,2215936,2215936,2433024,2215936,2461696,2215936,2215936,2215936,2510848,2215936,2215936,0,0,0,0,0,0,2179072,0,0,0,0,0,0,2170880,2215936,2215936,2580480,2215936,2605056,2637824,2215936,2215936,2686976,2748416,2215936,2215936,2215936,2924544,2215936,2215936,0,0,0,0,0,0,2179072,0,0,0,0,0,286,2170880,2215936,2215936,2215936,2215936,2215936,3121152,2215936,2215936,3145728,3158016,3166208,2387968,2392064,2170880,2170880,2433024,2170880,2461696,2170880,2170880,2170880,2510848,2170880,2170880,1625,2170880,2170880,2580480,2170880,2605056,2637824,2170880,647,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2576384,2170880,2170880,2170880,2170880,2170880,2609152,2170880,2170880,2686976,0,0,2748416,2170880,2170880,0,2170880,2924544,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,0,18,18,24,0,0,28,28,2170880,3141632,2215936,2420736,2428928,2215936,2478080,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2646016,2670592,2752512,2756608,2846720,2961408,2215936,2998272,2215936,3010560,2215936,2215936,2215936,3141632,2170880,2420736,2428928,2752512,2756608,0,2846720,2961408,2170880,2998272,2170880,3010560,2170880,2170880,2170880,3141632,2170880,2170880,2490368,2215936,2490368,2215936,2215936,2215936,2547712,2555904,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,0,0,0,2174976,245760,0,3129344,2170880,2170880,2490368,2170880,2170880,2170880,0,0,2547712,2555904,2170880,2170880,2170880,0,0,0,0,0,0,0,0,0,2220032,0,0,45056,0,2584576,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2170880,2170880,2170880,2170880,0,0,0,2170880,2170880,2158592,0,0,0,0,0,0,0,0,2220032,0,0,0,0,0,0,0,0,1482,97,97,97,97,97,97,97,1354,97,97,97,97,97,97,97,97,1148,97,97,97,97,97,97,97,2584576,2170880,2170880,1512,0,2170880,2170880,2170880,2170880,2170880,2170880,2441216,2170880,2527232,2170880,2600960,2170880,2850816,2170880,2170880,2170880,3022848,2215936,2441216,2215936,2527232,2215936,2600960,2215936,2850816,2215936,2215936,0,0,0,0,0,0,2179072,0,0,0,0,0,287,2170880,2215936,3022848,2170880,2441216,2170880,2527232,0,0,2170880,2600960,2170880,0,2850816,2170880,2170880,2170880,2170880,2170880,2523136,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2596864,2170880,2621440,2170880,2170880,2641920,2170880,2170880,2170880,3022848,2170880,2519040,2170880,2170880,2170880,2170880,2170880,2215936,2519040,2215936,2215936,2215936,2215936,2215936,2170880,2170880,2170880,2453504,2457600,2170880,2170880,2170880,2170880,2170880,2170880,2514944,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2592768,2170880,2170880,2519040,0,2024,2170880,2170880,0,2170880,2170880,2170880,2396160,2170880,2170880,2170880,2170880,3018752,2396160,2215936,2215936,2215936,2215936,3018752,2396160,0,2024,2170880,2170880,2170880,2170880,3018752,2170880,2650112,2965504,2170880,2215936,2650112,2965504,2215936,0,0,2170880,2650112,2965504,2170880,2551808,2170880,2551808,2215936,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,141,45,45,67,67,67,67,67,224,67,67,238,67,67,67,67,67,67,67,1288,67,67,67,67,67,67,67,67,67,469,67,67,67,67,67,67,0,2551808,2170880,2170880,2215936,0,2170880,2170880,2215936,0,2170880,2170880,2215936,0,2170880,2977792,2977792,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53264,18,49172,57366,24,8192,29,102432,127011,110630,114730,106539,127011,127011,127011,53264,18,18,49172,0,0,0,24,24,24,0,28,28,28,28,102432,127,0,0,0,0,0,0,0,0,0,0,140,2170880,2170880,2170880,2416640,0,0,0,0,2220032,110630,0,0,0,114730,106539,136,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,0,4256099,4256099,24,24,0,28,28,2170880,2461696,2170880,2170880,2170880,2510848,2170880,2170880,0,2170880,2170880,2580480,2170880,2605056,2637824,2170880,2170880,2170880,2547712,2555904,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3129344,2215936,2215936,543,543,545,545,0,0,2179072,0,550,551,551,0,287,2171166,2171166,18,0,0,0,0,0,0,0,0,2220032,0,0,645,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,149,2584576,2170880,2170880,0,0,2170880,2170880,2170880,2170880,2170880,2170880,2441216,2170880,2527232,2170880,2600960,2519040,0,0,2170880,2170880,0,2170880,2170880,2170880,2396160,2170880,2170880,2170880,2170880,3018752,2396160,2215936,2215936,2215936,2215936,3018752,2396160,0,0,2170880,2170880,2170880,2170880,3018752,2170880,2650112,2965504,53264,18,49172,57366,24,155648,28,102432,155648,155687,114730,106539,0,0,155648,53264,18,18,49172,0,57366,0,24,24,24,0,28,28,28,28,102432,0,0,0,0,2220032,0,94208,0,0,114730,106539,0,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,208896,18,278528,24,24,0,28,28,53264,18,159765,57366,24,8192,28,102432,0,110630,114730,106539,0,0,0,53264,18,18,49172,0,57366,0,24,24,24,0,28,139394,28,28,102432,131,0,0,0,2220032,110630,0,0,0,114730,106539,0,2170880,2170880,2170880,2170880,2170880,2170880,32768,53264,0,18,18,24,24,0,28,28,0,546,0,0,2183168,0,0,552,832,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,2170880,2609152,2170880,2170880,2170880,2170880,2170880,2170880,2654208,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2215936,2215936,2215936,2215936,2215936,2215936,3198976,2215936,0,1084,0,1088,0,1092,0,0,0,0,0,41606,0,0,0,0,45,45,45,45,45,937,0,0,0,0,2220032,110630,0,0,0,114730,106539,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3198976,2170880,0,0,644,0,0,0,2215936,3117056,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,826,0,828,0,0,2183168,0,0,830,0,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,2592768,2170880,2170880,2170880,2170880,2633728,2170880,2170880,2170880,2170880,2170880,2170880,2711552,2170880,2170880,2170880,2170880,2170880,2760704,53264,18,49172,57366,24,8192,28,172066,172032,110630,172066,106539,0,0,172032,53264,18,18,49172,0,57366,0,24,24,24,16384,28,28,28,28,102432,0,98304,0,0,2220032,110630,0,0,0,0,106539,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3198976,2170880,0,0,45056,0,0,0,53264,18,49172,57366,25,8192,30,102432,0,110630,114730,106539,0,0,176219,53264,18,18,49172,0,57366,0,124,124,124,0,128,128,128,128,102432,128,0,0,0,0,0,0,0,0,0,0,140,2170880,2170880,2170880,2416640,0,546,0,0,2183168,0,65536,552,0,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,2646016,2670592,2752512,2756608,2846720,2961408,2170880,2998272,2170880,3010560,2170880,2170880,2215936,2215936,2215936,2215936,2215936,2215936,3198976,2215936,0,0,0,0,0,0,65536,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,143,45,45,67,67,67,67,67,227,67,67,67,67,67,67,67,67,67,1824,67,1826,67,67,67,67,17,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,32768,120,121,18,18,49172,0,57366,0,24,24,24,0,28,28,28,28,102432,67,67,37139,37139,24853,24853,0,0,2179072,548,0,65820,65820,0,287,97,0,0,97,97,0,97,97,97,45,45,45,45,2033,45,67,67,67,67,0,0,97,97,97,97,45,45,67,67,0,369,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,978,0,546,70179,0,2183168,0,0,552,0,97,97,97,97,97,97,97,45,45,45,45,45,45,45,45,45,45,67,67,67,67,67,1013,67,67,67,67,67,67,67,67,67,67,473,67,67,67,67,483,67,67,1025,67,67,67,67,67,67,67,67,67,67,67,67,67,97,97,97,97,97,0,0,97,97,97,97,1119,97,97,97,97,97,97,97,97,97,97,97,97,1359,97,97,97,67,67,1584,67,67,67,67,67,67,67,67,67,67,67,67,67,497,67,67,1659,45,45,45,45,45,45,45,45,45,1667,45,45,45,45,45,169,45,45,45,45,45,45,45,45,45,45,45,1668,45,45,45,45,67,67,1694,67,67,67,67,67,67,67,67,67,67,67,67,67,774,67,67,1713,97,97,97,97,97,97,97,0,97,97,1723,97,97,97,97,0,45,45,45,45,45,45,1538,45,45,45,45,45,1559,45,45,1561,45,45,45,45,45,45,45,687,45,45,45,45,45,45,45,45,448,45,45,45,45,45,45,67,67,67,67,1771,1772,67,67,67,67,67,67,67,67,97,97,97,97,0,0,0,97,67,67,67,67,67,1821,67,67,67,67,67,67,1827,67,67,67,0,0,0,0,0,0,97,97,1614,97,97,97,97,97,603,97,97,605,97,97,608,97,97,97,97,0,1532,45,45,45,45,45,45,45,45,45,45,450,45,45,45,45,67,67,97,97,97,97,97,97,0,0,1839,97,97,97,97,0,0,97,97,97,97,97,45,45,45,45,45,45,45,67,67,67,67,67,67,67,97,1883,97,1885,97,0,1888,0,97,97,0,97,97,1848,97,97,97,97,1852,45,45,45,45,45,45,45,384,391,45,45,45,45,45,45,45,385,45,45,45,45,45,45,45,45,1237,45,45,45,45,45,45,67,0,97,97,97,97,0,0,0,97,97,97,97,97,97,45,45,45,45,45,45,45,1951,45,45,45,45,45,45,45,45,67,67,67,67,1963,97,2023,0,97,97,0,97,97,97,45,45,45,45,45,45,67,67,1994,67,1995,67,67,67,67,67,67,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,97,97,0,0,0,0,2220032,110630,0,0,0,114730,106539,137,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2793472,2805760,2170880,2830336,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3031040,2170880,3055616,2170880,2170880,67,67,37139,37139,24853,24853,0,0,281,549,0,65820,65820,0,287,97,0,0,97,97,0,97,97,97,45,45,2031,2032,45,45,67,67,67,67,67,67,67,67,67,67,67,67,1769,67,0,546,70179,549,549,0,0,552,0,97,97,97,97,97,97,97,45,45,45,45,45,45,1858,45,641,0,0,0,0,41606,926,0,0,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,456,67,0,0,0,1313,0,0,0,1096,1319,0,0,0,0,97,97,97,97,97,97,97,97,1110,97,97,97,97,67,67,67,67,1301,1476,0,0,0,0,1307,1478,0,0,0,0,0,0,0,0,97,97,97,97,1486,97,1487,97,1313,1480,0,0,0,0,1319,0,97,97,97,97,97,97,97,97,97,566,97,97,97,97,97,97,67,67,67,1476,0,1478,0,1480,0,97,97,97,97,97,97,97,45,1853,45,1855,45,45,45,45,53264,18,49172,57366,26,8192,31,102432,0,110630,114730,106539,0,0,225368,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,32768,53264,18,18,49172,163840,57366,0,24,24,229376,0,28,28,28,229376,102432,0,0,0,0,2220167,110630,0,0,0,114730,106539,0,2171019,2171019,2171019,2171019,2592907,2171019,2171019,2171019,2171019,2633867,2171019,2171019,2171019,2171019,2171019,2171019,2654347,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3117195,2171019,2171019,2171019,2171019,2240641,0,0,0,0,0,0,0,0,368,0,140,2171019,2171019,2171019,2416779,2424971,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2617483,2171019,2171019,2642059,2171019,2171019,2171019,2699403,2171019,2728075,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3215499,2215936,2215936,2215936,2215936,2215936,2437120,2215936,2215936,2171019,2822283,2171019,2171019,2855051,2171019,2171019,2171019,2912395,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3002507,2171019,2171019,2215936,2215936,2494464,2215936,2215936,2215936,2171166,2171166,2416926,2425118,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2576670,2171166,2617630,2171166,2171166,2171166,2171166,2171166,2171166,2691358,2171166,2707742,2171166,2715934,2171166,2724126,2765086,2171166,2171166,2797854,2171166,2822430,2171166,2171166,2855198,2171166,2171166,2171166,2912542,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2793758,2806046,2171166,2830622,2171166,2171166,2171166,2171166,2171166,2171166,2171166,3109150,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2543902,2171166,2171166,2171166,2171166,2171166,2629918,2793611,2805899,2171019,2830475,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,0,546,0,0,2183168,0,0,552,0,2171166,2171166,2171166,2400542,2171166,2171166,2171166,0,2171166,2171166,2171166,0,2171166,2920734,2171166,2171166,2171166,2990366,2171166,2171166,2171166,2171166,3117342,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,0,53264,0,18,18,4329472,2232445,0,2240641,4337664,2711691,2171019,2171019,2171019,2171019,2171019,2760843,2769035,2789515,2814091,2171019,2171019,2171019,2875531,2904203,2171019,2171019,3092619,2171019,2171019,3125387,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3199115,2171019,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2453504,2457600,2215936,2215936,2215936,2215936,2215936,2215936,2793472,2805760,2215936,2830336,2215936,2215936,2215936,2215936,2215936,2215936,2170880,2170880,2170880,2170880,2170880,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2494464,2170880,2170880,2171166,2171166,2634014,2171166,2171166,2171166,2171166,2171166,2171166,2711838,2171166,2171166,2171166,2171166,2171166,2760990,2769182,2789662,2814238,2171166,2171166,2171166,2875678,2904350,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,3199262,2171166,0,0,0,0,0,0,0,0,0,2379915,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2445451,2171019,2465931,2474123,2171019,2171019,3113099,2171019,2171019,3133579,2171019,2171019,2171019,3162251,2171019,2171019,3182731,3186827,2171019,2379776,2879627,2171019,2916491,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3027083,2171019,2171019,3063947,2699550,2171166,2728222,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2879774,2171166,2916638,2171166,2171166,2171166,2171166,2171166,2609438,2171166,2171166,2171166,2171166,2171166,2171166,2654494,2171166,2171166,2171166,2171166,2171166,2445598,2171166,2466078,2474270,2171166,2171166,2171166,2171166,2171166,2171166,2523422,2171019,2437259,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2543755,2171019,2171019,2171019,2584715,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2908299,2171019,2171019,2936971,2171019,2171019,2986123,2171019,2994315,2171019,2171019,3014795,2171019,3059851,3076235,3088523,2171166,2171166,2986270,2171166,2994462,2171166,2171166,3014942,2171166,3059998,3076382,3088670,2171166,2171166,2171166,2171166,2171166,2171166,3027230,2171166,2171166,3064094,2171166,2171166,3113246,2171166,2171166,3133726,2506891,2171019,2171019,2171019,2535563,2539659,2171019,2171019,2588811,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2691211,2171019,2707595,2171019,2715787,2171019,2723979,2764939,2171019,2171019,2797707,2215936,2215936,3170304,0,0,0,0,0,0,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2453790,2457886,2171166,2171166,2171166,2486558,2171166,2171166,2507038,2171166,2171166,2171166,2535710,2539806,2171166,2171166,2588958,2171166,2171166,2171166,2171166,2515230,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2593054,2171166,2171166,2171166,2171166,3051806,2171166,2171166,2171166,2171166,2171166,2171166,3170590,0,2388107,2392203,2171019,2171019,2433163,2171019,2461835,2171019,2171019,2171019,2510987,2171019,2171019,2171019,2171019,2580619,2171019,2605195,2637963,2171019,2171019,2171019,2920587,2171019,2171019,2171019,2990219,2171019,2171019,2171019,2171019,3051659,2171019,2171019,2171019,2453643,2457739,2171019,2171019,2171019,2171019,2171019,2171019,2515083,2171019,2171019,2171019,2171019,2646155,2670731,2752651,2756747,2846859,2961547,2171019,2998411,2171019,3010699,2171019,2171019,2687115,2748555,2171019,2171019,2171019,2924683,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3121291,2171019,2171019,2171019,3170443,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2486272,2215936,2215936,2506752,3145867,3158155,3166347,2387968,2392064,2215936,2215936,2433024,2215936,2461696,2215936,2215936,2215936,2510848,2215936,2215936,0,0,0,0,0,0,2179072,0,0,0,0,0,553,2170880,2215936,2215936,2215936,2215936,2215936,3121152,2215936,2215936,3145728,3158016,3166208,2388254,2392350,2171166,2171166,2433310,2171166,2461982,2171166,2171166,2171166,2511134,2171166,2171166,0,2171166,2171166,2580766,2171166,2605342,2638110,2171166,2171166,2171166,2171166,3031326,2171166,3055902,2171166,2171166,2171166,2171166,3092766,2171166,2171166,3125534,2171166,2171166,2171166,3162398,2171166,2171166,3182878,3186974,2171166,0,0,0,2171019,2171019,2171019,2171019,3109003,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2215936,2215936,2215936,2400256,2215936,2215936,2215936,2215936,2171166,2687262,0,0,2748702,2171166,2171166,0,2171166,2924830,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2597150,2171166,2621726,2171166,2171166,2642206,2171166,2171166,2171166,2171166,3121438,2171166,2171166,3146014,3158302,3166494,2171019,2420875,2429067,2171019,2478219,2171019,2171019,2171019,2171019,2547851,2556043,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3129483,2215936,2171019,3141771,2215936,2420736,2428928,2215936,2478080,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2646016,2670592,2752512,2756608,2846720,2961408,2215936,2998272,2215936,3010560,2215936,2215936,2215936,3141632,2171166,2421022,2429214,2171166,2478366,2171166,2171166,2171166,2171166,0,0,2171166,2171166,2171166,2171166,2646302,2670878,0,0,0,0,37,110630,0,0,0,114730,106539,0,45,45,45,45,45,1405,1406,45,45,45,45,1409,45,45,45,45,45,1415,45,45,45,45,45,45,45,45,45,45,1238,45,45,45,45,67,2752798,2756894,0,2847006,2961694,2171166,2998558,2171166,3010846,2171166,2171166,2171166,3141918,2171019,2171019,2490507,3129344,2171166,2171166,2490654,2171166,2171166,2171166,0,0,2547998,2556190,2171166,2171166,2171166,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,45,167,45,45,45,45,185,187,45,45,198,45,45,0,2171166,2171166,2171166,2171166,2171166,2171166,3129630,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2576523,2171019,2171019,2171019,2171019,2171019,2609291,2171019,2215936,2215936,2215936,2215936,2215936,2215936,3002368,2215936,2215936,2171166,2171166,2494750,2171166,2171166,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,147,2584576,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2171166,2171166,2171166,2171166,0,0,0,2171166,2171166,2171166,2171166,0,0,0,2171166,2171166,2171166,3002654,2171166,2171166,2171019,2171019,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,0,0,0,2175257,0,0,2584862,2171166,2171166,0,0,2171166,2171166,2171166,2171166,2171166,2171019,2441355,2171019,2527371,2171019,2601099,2171019,2850955,2171019,2171019,2171019,3022987,2215936,2441216,2215936,2527232,2215936,2600960,2215936,2850816,2215936,2215936,0,0,0,0,0,0,2179072,0,0,0,0,69632,287,2170880,2215936,3022848,2171166,2441502,2171166,2527518,0,0,2171166,2601246,2171166,0,2851102,2171166,2171166,2171166,2171166,2720030,2744606,2171166,2171166,2171166,2834718,2838814,2171166,2908446,2171166,2171166,2937118,3023134,2171019,2519179,2171019,2171019,2171019,2171019,2171019,2215936,2519040,2215936,2215936,2215936,2215936,2215936,2171166,2171166,2171166,3215646,0,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2486411,2171019,2171019,2171019,2629771,2171019,2171019,2171019,2171019,2719883,2744459,2171019,2171019,2171019,2834571,2838667,2171019,2519326,0,0,2171166,2171166,0,2171166,2171166,2171166,2396299,2171019,2171019,2171019,2171019,3018891,2396160,2215936,2215936,2215936,2215936,3018752,2396446,0,0,2171166,2171166,2171166,2171166,3019038,2171019,2650251,2965643,2171019,2215936,2650112,2965504,2215936,0,0,2171166,2650398,2965790,2171166,2551947,2171019,2551808,2215936,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,144,45,45,67,67,67,67,67,228,67,67,67,67,67,67,67,67,67,1929,97,97,97,97,0,0,0,2552094,2171166,2171019,2215936,0,2171166,2171019,2215936,0,2171166,2171019,2215936,0,2171166,2977931,2977792,2978078,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,1321,97,131072,0,0,0,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,0,18,18,24,24,0,28,28,0,140,0,2379776,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2445312,2170880,2465792,2473984,2170880,2170880,2170880,2584576,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2170880,2170880,2170880,3162112,2170880,2170880,3182592,3186688,2170880,0,140,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3002368,2170880,2170880,2215936,2215936,2494464,2215936,2215936,2215936,2215936,2215936,2215936,3215360,544,0,0,0,544,0,546,0,0,0,546,0,0,2183168,0,0,552,0,2170880,2170880,2170880,2400256,2170880,2170880,2170880,0,2170880,2170880,2170880,0,2170880,2920448,2170880,2170880,2170880,2990080,2170880,2170880,552,0,0,0,552,0,287,0,2170880,2170880,2170880,2170880,2170880,2437120,2170880,2170880,18,0,0,0,0,0,0,0,0,2220032,0,0,644,0,2215936,2215936,3170304,544,0,546,0,552,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3198976,2170880,0,0,0,140,0,0,53264,18,49172,57366,24,8192,28,102432,249856,110630,114730,106539,0,0,32768,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,151640,53264,18,18,49172,0,57366,0,24,24,24,0,28,28,28,28,0,0,0,0,0,0,0,0,0,0,0,2170880,2170880,2170880,2416640,53264,18,49172,57366,24,8192,28,102432,253952,110630,114730,106539,0,0,32856,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,192512,53264,18,18,49172,0,57366,0,2232445,184320,2232445,0,2240641,2240641,184320,2240641,102432,0,0,0,221184,2220032,110630,0,0,0,114730,106539,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3108864,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2215936,0,0,0,45056,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,0,18,18,24,24,0,127,127,53264,18,49172,258071,24,8192,28,102432,0,110630,114730,106539,0,0,32768,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,204800,53264,18,49172,57366,24,27,28,102432,0,110630,114730,106539,0,0,0,53264,18,49172,57366,24,8192,28,33,0,33,33,33,0,0,0,53264,18,18,49172,0,57366,0,24,24,24,16384,28,28,28,28,0,0,0,0,0,0,0,0,0,0,139,2170880,2170880,2170880,2416640,67,67,37139,37139,24853,24853,0,70179,0,0,0,65820,65820,369,287,97,0,0,97,97,0,97,97,97,45,2030,45,45,45,45,67,1573,67,67,67,67,67,67,67,67,67,67,67,1699,67,67,67,67,25403,546,70179,0,0,66365,66365,552,0,97,97,97,97,97,97,97,97,1355,97,97,97,1358,97,97,97,641,0,0,0,925,41606,0,0,0,0,45,45,45,45,45,45,45,1187,45,45,45,45,45,0,1480,0,0,0,0,1319,0,97,97,97,97,97,97,97,97,97,592,97,97,97,97,97,97,97,97,97,97,1531,45,45,45,45,45,45,45,45,45,45,45,45,1680,45,45,45,641,0,924,0,925,41606,0,0,0,0,45,45,45,45,45,45,1186,45,45,45,45,45,45,67,67,37139,37139,24853,24853,0,70179,282,0,0,65820,65820,369,287,97,0,0,97,97,0,97,2028,97,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,1767,67,67,67,0,0,0,0,0,0,1612,97,97,97,97,97,97,0,1785,97,97,97,97,97,97,0,0,97,97,97,97,1790,97,0,0,2170880,2170880,3051520,2170880,2170880,2170880,2170880,2170880,2170880,3170304,241664,2387968,2392064,2170880,2170880,2433024,53264,19,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,274432,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,270336,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,1134711,53264,18,49172,57366,24,8192,28,102432,0,1126440,1126440,1126440,0,0,1126400,53264,18,49172,57366,24,8192,28,102432,36,110630,114730,106539,0,0,217088,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,94,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,96,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,24666,53264,18,18,49172,0,57366,0,24,24,24,126,28,28,28,28,102432,53264,122,123,49172,0,57366,0,24,24,24,0,28,28,28,28,102432,2170880,2170880,4256099,0,0,0,0,0,0,0,0,2220032,0,0,0,0,0,0,0,0,1319,0,0,0,0,97,97,97,97,97,97,97,1109,97,97,97,97,1113,132,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,146,150,45,45,45,45,45,175,45,180,45,186,45,189,45,45,203,67,256,67,67,270,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,97,293,297,97,97,97,97,97,322,97,327,97,333,97,0,0,97,2026,0,2027,97,97,45,45,45,45,45,45,67,67,67,1685,67,67,67,67,67,67,67,1690,67,336,97,97,350,97,97,0,53264,0,18,18,24,24,356,28,28,0,0,0,0,0,0,0,0,0,0,140,2170880,2170880,2170880,2416640,2424832,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2617344,2170880,45,439,45,45,45,45,45,45,45,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,525,67,67,67,67,67,67,67,67,67,67,67,0,0,0,0,0,0,0,0,0,0,0,0,97,97,97,97,622,97,97,97,97,97,97,97,97,97,97,97,97,1524,97,97,1527,369,648,45,45,45,45,45,45,45,45,45,659,45,45,45,45,408,45,45,45,45,45,45,45,45,45,45,45,1239,45,45,45,67,729,45,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,762,67,746,67,67,67,67,67,67,67,67,67,759,67,67,67,67,0,0,0,1477,0,1086,0,0,0,1479,0,1090,67,67,796,67,67,799,67,67,67,67,67,67,67,67,67,67,67,67,1291,67,67,67,811,67,67,67,67,67,816,67,67,67,67,67,67,67,37689,544,25403,546,70179,0,0,66365,66365,552,833,97,97,97,97,97,97,97,97,1380,0,0,0,45,45,45,45,45,1185,45,45,45,45,45,45,45,386,45,45,45,45,45,45,45,45,1810,45,45,45,45,45,45,67,97,97,844,97,97,97,97,97,97,97,97,97,857,97,97,97,0,97,97,97,0,97,97,97,97,97,97,97,97,97,97,45,45,45,97,97,97,894,97,97,897,97,97,97,97,97,97,97,97,97,0,0,0,1382,45,45,45,97,909,97,97,97,97,97,914,97,97,97,97,97,97,97,923,67,67,1079,67,67,67,67,67,37689,1085,25403,1089,66365,1093,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,148,1114,97,97,97,97,97,97,1122,97,97,97,97,97,97,97,97,97,606,97,97,97,97,97,97,97,97,97,97,1173,97,97,97,97,97,12288,0,925,0,1179,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,145,45,45,67,67,67,67,67,1762,67,67,67,1766,67,67,67,67,67,67,528,67,67,67,67,67,67,67,67,67,97,97,97,97,97,0,1934,67,67,1255,67,67,67,67,67,67,67,67,67,67,67,67,67,1035,67,67,67,67,67,67,1297,67,67,67,67,67,67,0,0,0,0,0,0,97,97,97,97,97,97,97,97,97,97,1111,97,97,97,97,97,97,1327,97,97,97,97,97,97,97,97,97,97,97,97,33344,97,97,97,1335,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,0,97,97,1377,97,97,97,97,97,97,0,1179,0,45,45,45,45,670,45,45,45,45,45,45,45,45,45,45,45,430,45,45,45,45,67,67,1438,67,67,1442,67,67,67,67,67,67,67,67,67,67,67,67,1592,67,67,67,1451,67,67,67,67,67,67,67,67,67,67,1458,67,67,67,67,0,0,1305,0,0,0,0,0,1311,0,0,0,1317,0,0,0,0,0,0,0,97,97,1322,97,97,1491,97,97,1495,97,97,97,97,97,97,97,97,97,97,0,45,45,45,45,45,45,45,45,45,45,45,45,1551,45,1553,45,1504,97,97,97,97,97,97,97,97,97,97,1513,97,97,97,97,0,45,45,45,45,1536,45,45,45,45,1540,45,67,67,67,67,67,1585,67,67,67,67,67,67,67,67,67,67,67,67,1700,67,67,67,97,1648,97,97,97,97,97,97,97,97,0,45,45,45,45,45,45,45,45,45,45,1541,0,97,97,97,97,0,1940,0,97,97,97,97,97,97,45,45,2011,45,45,45,2015,67,67,2017,67,67,67,2021,97,67,67,812,67,67,67,67,67,67,67,67,67,67,67,37689,544,97,97,97,910,97,97,97,97,97,97,97,97,97,97,97,923,0,0,0,45,45,45,45,1184,45,45,45,45,1188,45,45,45,45,1414,45,45,45,1417,45,1419,45,45,45,45,45,443,45,45,45,45,45,45,453,45,45,67,67,67,67,1244,67,67,67,67,1248,67,67,67,67,67,67,67,0,37139,24853,0,0,0,282,41098,65820,97,1324,97,97,97,97,1328,97,97,97,97,97,97,97,97,97,0,0,930,45,45,45,45,97,97,97,97,1378,97,97,97,97,0,1179,0,45,45,45,45,671,45,45,45,45,45,45,45,45,45,45,45,975,45,45,45,45,67,67,1923,67,1925,67,67,1927,67,97,97,97,97,97,0,0,97,97,97,97,1985,45,45,45,45,45,45,1560,45,45,45,45,45,45,45,45,45,946,45,45,950,45,45,45,0,97,97,97,1939,0,0,0,97,1943,97,97,1945,97,45,45,45,669,45,45,45,45,45,45,45,45,45,45,45,45,990,45,45,45,67,257,67,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,337,97,97,97,97,97,0,53264,0,18,18,24,24,356,28,28,0,0,0,0,0,0,0,0,0,0,370,2170880,2170880,2170880,2416640,401,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,67,67,459,461,67,67,67,67,67,67,67,67,475,67,480,67,67,67,67,67,67,1054,67,67,67,67,67,67,67,67,67,67,1698,67,67,67,67,67,484,67,67,487,67,67,67,67,67,67,67,67,67,67,67,67,67,1459,67,67,97,556,558,97,97,97,97,97,97,97,97,572,97,577,97,97,0,0,1896,97,97,97,97,97,97,1903,45,45,45,45,983,45,45,45,45,988,45,45,45,45,45,45,1195,45,45,45,45,45,45,45,45,45,45,1549,45,45,45,45,45,581,97,97,584,97,97,97,97,97,97,97,97,97,97,97,97,97,1153,97,97,369,0,45,45,45,45,45,45,45,45,45,45,45,662,45,45,45,684,45,45,45,45,45,45,45,45,45,45,45,45,1004,45,45,45,67,67,67,749,67,67,67,67,67,67,67,67,67,761,67,67,67,67,67,67,1068,67,67,67,1071,67,67,67,67,1076,794,795,67,67,67,67,67,67,67,67,67,67,67,67,67,67,0,544,97,97,97,97,847,97,97,97,97,97,97,97,97,97,859,97,0,0,2025,97,20480,97,97,2029,45,45,45,45,45,45,67,67,67,1575,67,67,67,67,67,67,67,67,67,1775,67,67,67,97,97,97,97,892,893,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1515,97,993,994,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,992,67,67,67,1284,67,67,67,67,67,67,67,67,67,67,67,67,67,1607,67,67,97,1364,97,97,97,97,97,97,97,97,97,97,97,97,97,97,596,97,45,1556,1557,45,45,45,45,45,45,45,45,45,45,45,45,45,45,696,45,1596,1597,67,67,67,67,67,67,67,67,67,67,67,67,67,67,499,67,97,97,97,1621,97,97,97,97,97,97,97,97,97,97,97,97,97,1346,97,97,97,97,1740,97,97,97,97,45,45,45,45,45,45,45,45,45,45,1678,45,45,45,45,45,67,97,97,97,97,97,97,1836,0,97,97,97,97,97,0,0,97,97,97,1984,97,45,45,45,45,45,45,1808,45,45,45,45,45,45,45,45,67,739,67,67,67,67,67,744,45,45,1909,45,45,45,45,45,45,45,67,1917,67,1918,67,67,67,67,67,67,1247,67,67,67,67,67,67,67,67,67,67,532,67,67,67,67,67,67,1922,67,67,67,67,67,67,67,97,1930,97,1931,97,0,0,97,97,0,97,97,97,45,45,45,45,45,45,67,67,67,67,1576,67,67,67,67,1580,67,67,0,97,97,1938,97,0,0,0,97,97,97,97,97,97,45,45,45,699,45,45,45,704,45,45,45,45,45,45,45,45,987,45,45,45,45,45,45,45,67,67,97,97,97,97,0,0,97,97,97,2006,97,97,97,97,0,45,1533,45,45,45,45,45,45,45,45,45,1416,45,45,45,45,45,45,45,45,722,723,45,45,45,45,45,45,2045,67,67,67,2047,0,0,97,97,97,2051,45,45,67,67,0,0,0,0,925,41606,0,0,0,0,45,45,45,45,45,45,409,45,45,45,45,45,45,45,45,45,1957,45,67,67,67,67,67,1836,97,97,45,67,0,97,45,67,0,97,45,67,0,97,45,45,67,67,67,1761,67,67,67,1764,67,67,67,67,67,67,67,494,67,67,67,67,67,67,67,67,67,787,67,67,67,67,67,67,45,45,420,45,45,422,45,45,425,45,45,45,45,45,45,45,387,45,45,45,45,397,45,45,45,67,460,67,67,67,67,67,67,67,67,67,67,67,67,67,67,515,67,485,67,67,67,67,67,67,67,67,67,67,67,67,67,498,67,67,67,67,67,97,0,2039,97,97,97,97,97,45,45,45,45,1426,45,45,45,67,67,67,67,67,67,67,67,67,1689,67,67,67,97,557,97,97,97,97,97,97,97,97,97,97,97,97,97,97,612,97,582,97,97,97,97,97,97,97,97,97,97,97,97,97,595,97,97,97,97,97,896,97,97,97,97,97,97,97,97,97,97,885,97,97,97,97,97,45,939,45,45,45,45,943,45,45,45,45,45,45,45,45,45,45,1916,67,67,67,67,67,45,67,67,67,67,67,67,67,1015,67,67,67,67,1019,67,67,67,67,67,67,1271,67,67,67,67,67,67,1277,67,67,67,67,67,67,1287,67,67,67,67,67,67,67,67,67,67,804,67,67,67,67,67,1077,67,67,67,67,67,67,67,37689,0,25403,0,66365,0,0,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2170880,2437120,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2543616,2170880,2170880,2170880,2170880,2170880,2629632,1169,97,1171,97,97,97,97,97,97,97,12288,0,925,0,1179,0,0,0,0,925,41606,0,0,0,0,45,45,45,45,936,45,45,67,67,214,67,220,67,67,233,67,243,67,248,67,67,67,67,67,67,1298,67,67,67,67,0,0,0,0,0,0,97,97,97,97,97,1617,97,0,0,0,45,45,45,1183,45,45,45,45,45,45,45,45,45,393,45,45,45,45,45,45,67,67,1243,67,67,67,67,67,67,67,67,67,67,67,67,67,1074,67,67,1281,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,776,1323,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,907,45,1412,45,45,45,45,45,45,45,1418,45,45,45,45,45,45,686,45,45,45,690,45,45,695,45,45,67,67,67,67,67,1465,67,67,67,67,67,67,67,67,67,67,67,97,97,97,1712,97,97,97,97,1741,97,97,97,45,45,45,45,45,45,45,45,45,426,45,45,45,45,45,45,67,67,67,1924,67,67,67,67,67,97,97,97,97,97,0,0,97,97,1983,97,97,45,45,1987,45,1988,45,0,97,97,97,97,0,0,0,1942,97,97,97,97,97,45,45,45,700,45,45,45,45,45,45,45,45,45,45,711,45,45,153,45,45,166,45,176,45,181,45,45,188,191,196,45,204,255,258,263,67,271,67,67,0,37139,24853,0,0,0,282,41098,65820,97,97,97,294,97,300,97,97,313,97,323,97,328,97,97,335,338,343,97,351,97,97,0,53264,0,18,18,24,24,356,28,28,0,0,0,0,0,0,0,0,41098,0,140,45,45,45,45,1404,45,45,45,45,45,45,45,45,45,45,1411,67,67,486,67,67,67,67,67,67,67,67,67,67,67,67,67,1251,67,67,501,67,67,67,67,67,67,67,67,67,67,67,67,513,67,67,67,67,67,67,1443,67,67,67,67,67,67,67,67,67,67,1263,67,67,67,67,67,97,97,583,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1526,97,598,97,97,97,97,97,97,97,97,97,97,97,97,610,97,97,0,97,97,1796,97,97,97,97,97,97,97,45,45,45,45,45,1744,45,45,45,369,0,651,45,653,45,654,45,656,45,45,45,660,45,45,45,45,1558,45,45,45,45,45,45,45,45,1566,45,45,681,45,683,45,45,45,45,45,45,45,45,691,692,694,45,45,45,716,45,45,45,45,45,45,45,45,45,45,45,45,709,45,45,712,45,714,45,45,45,718,45,45,45,45,45,45,45,726,45,45,45,733,45,45,45,45,67,67,67,67,67,67,67,67,67,67,67,67,1691,67,67,747,67,67,67,67,67,67,67,67,67,760,67,67,67,0,0,0,0,0,0,97,1613,97,97,97,97,97,97,1509,97,97,97,97,97,97,97,97,97,0,1179,0,45,45,45,45,67,764,67,67,67,67,768,67,770,67,67,67,67,67,67,67,67,97,97,97,97,0,0,0,1977,67,778,779,781,67,67,67,67,67,67,788,789,67,67,792,793,67,67,67,813,67,67,67,67,67,67,67,67,67,824,37689,544,25403,546,70179,0,0,66365,66365,552,0,836,97,838,97,839,97,841,97,97,97,845,97,97,97,97,97,97,97,97,97,858,97,97,0,1728,97,97,97,0,97,97,97,97,97,97,97,97,97,97,45,1802,45,97,97,862,97,97,97,97,866,97,868,97,97,97,97,97,97,0,0,97,97,1788,97,97,97,0,0,97,97,876,877,879,97,97,97,97,97,97,886,887,97,97,890,891,97,97,97,97,97,97,97,899,97,97,97,903,97,97,97,0,97,97,97,0,97,97,97,97,97,97,97,1646,97,97,97,97,911,97,97,97,97,97,97,97,97,97,922,923,45,955,45,957,45,45,45,45,45,45,45,45,45,45,45,45,195,45,45,45,45,45,981,982,45,45,45,45,45,45,989,45,45,45,45,45,170,45,45,45,45,45,45,45,45,45,45,411,45,45,45,45,45,67,1023,67,67,67,67,67,67,1031,67,1033,67,67,67,67,67,67,67,817,819,67,67,67,67,67,37689,544,67,1065,67,67,67,67,67,67,67,67,67,67,67,67,67,67,516,67,67,1078,67,67,1081,1082,67,67,37689,0,25403,0,66365,0,0,0,0,0,0,0,0,2171166,2171166,2171166,2171166,2171166,2437406,2171166,2171166,97,1115,97,1117,97,97,97,97,97,97,1125,97,1127,97,97,97,0,97,97,97,0,97,97,97,97,1644,97,97,97,0,97,97,97,0,97,97,1642,97,97,97,97,97,97,625,97,97,97,97,97,97,97,97,97,316,97,97,97,97,97,97,97,97,97,1159,97,97,97,97,97,97,97,97,97,97,97,97,97,1502,97,97,97,97,97,1172,97,97,1175,1176,97,97,12288,0,925,0,1179,0,0,0,0,925,41606,0,0,0,0,45,45,45,935,45,45,45,1233,45,45,45,1236,45,45,45,45,45,45,45,67,67,67,67,67,67,1873,67,67,45,45,1218,45,45,45,1223,45,45,45,45,45,45,45,1230,45,45,67,67,215,219,222,67,230,67,67,244,246,249,67,67,67,67,67,67,1882,97,97,97,97,0,0,0,97,97,97,97,97,97,45,1904,45,1905,45,67,67,67,67,67,1258,67,1260,67,67,67,67,67,67,67,67,67,495,67,67,67,67,67,67,67,67,1283,67,67,67,67,67,67,67,1290,67,67,67,67,67,67,67,818,67,67,67,67,67,67,37689,544,67,67,1295,67,67,67,67,67,67,67,67,0,0,0,0,0,0,2174976,0,0,97,97,97,1326,97,97,97,97,97,97,97,97,97,97,97,97,97,1514,97,97,97,97,97,1338,97,1340,97,97,97,97,97,97,97,97,97,97,97,1500,97,97,1503,97,1363,97,97,97,97,97,97,97,1370,97,97,97,97,97,97,97,563,97,97,97,97,97,97,578,97,1375,97,97,97,97,97,97,97,97,0,1179,0,45,45,45,45,685,45,45,45,45,45,45,45,45,45,45,45,1003,45,45,45,45,67,67,67,1463,67,67,67,67,67,67,67,67,67,67,67,67,67,1778,97,97,97,97,97,1518,97,97,97,97,97,97,97,97,97,97,97,97,609,97,97,97,45,1542,45,45,45,45,45,45,45,1548,45,45,45,45,45,1554,45,1570,1571,45,67,67,67,67,67,67,1578,67,67,67,67,67,67,67,1055,67,67,67,67,67,1061,67,67,1582,67,67,67,67,67,67,67,1588,67,67,67,67,67,1594,67,67,67,67,67,97,2038,0,97,97,97,97,97,2044,45,45,45,995,45,45,45,45,1e3,45,45,45,45,45,45,45,1809,45,1811,45,45,45,45,45,67,1610,1611,67,1476,0,1478,0,1480,0,97,97,97,97,97,97,1618,1647,1649,97,97,97,1652,97,1654,1655,97,0,45,45,45,1658,45,45,67,67,216,67,67,67,67,234,67,67,67,67,252,254,1845,97,97,97,97,97,97,97,45,45,45,45,45,45,45,45,945,45,947,45,45,45,45,45,67,67,67,67,67,1881,97,97,97,97,97,0,0,0,97,97,97,97,97,1902,45,45,45,45,45,45,1908,45,45,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,1921,67,67,67,67,67,67,67,67,97,97,97,97,97,0,0,0,97,97,0,97,1937,97,97,1940,0,0,97,97,97,97,97,97,1947,1948,1949,45,45,45,1952,45,1954,45,45,45,45,1959,1960,1961,67,67,67,67,67,67,1455,67,67,67,67,67,67,67,67,67,67,757,67,67,67,67,67,67,1964,67,1966,67,67,67,67,1971,1972,1973,97,0,0,0,97,97,1104,97,97,97,97,97,97,97,97,97,97,884,97,97,97,889,97,97,1978,97,0,0,1981,97,97,97,97,45,45,45,45,45,45,736,45,67,67,67,67,67,67,67,67,67,67,67,1018,67,67,67,45,67,67,67,67,0,2049,97,97,97,97,45,45,67,67,0,0,0,0,925,41606,0,0,0,0,45,933,45,45,45,45,1234,45,45,45,45,45,45,45,45,45,45,67,97,97,288,97,97,97,97,97,97,317,97,97,97,97,97,97,0,0,97,1787,97,97,97,97,0,0,45,45,378,45,45,45,45,45,390,45,45,45,45,45,45,45,424,45,45,45,431,433,45,45,45,67,1050,67,67,67,67,67,67,67,67,67,67,67,67,67,67,518,67,97,97,97,1144,97,97,97,97,97,97,97,97,97,97,97,97,632,97,97,97,97,97,97,97,1367,97,97,97,97,97,97,97,97,97,97,97,855,97,97,97,97,67,97,97,97,97,97,97,1837,0,97,97,97,97,97,0,0,0,1897,97,97,97,97,97,45,45,45,45,45,1208,45,45,45,45,45,45,45,45,45,45,724,45,45,45,45,45,97,2010,45,45,45,45,45,45,2016,67,67,67,67,67,67,2022,45,2046,67,67,67,0,0,2050,97,97,97,45,45,67,67,0,0,0,0,925,41606,0,0,0,0,932,45,45,45,45,45,1222,45,45,45,45,45,45,45,45,45,45,1227,45,45,45,45,45,133,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,45,701,702,45,45,705,706,45,45,45,45,45,45,703,45,45,45,45,45,45,45,45,45,719,45,45,45,45,45,725,45,45,45,369,649,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1216,25403,546,70179,0,0,66365,66365,552,834,97,97,97,97,97,97,97,1342,97,97,97,97,97,97,97,97,0,97,97,97,97,97,97,97,1799,97,97,45,45,45,1569,45,45,45,1572,67,67,67,67,67,67,67,67,67,67,67,0,0,0,1306,0,67,67,67,1598,67,67,67,67,67,67,67,67,1606,67,67,1609,97,97,97,1650,97,97,1653,97,97,97,0,45,45,1657,45,45,45,1206,45,45,45,45,45,45,45,45,45,45,45,45,1421,45,45,45,1703,67,67,67,67,67,67,67,67,67,67,97,97,1711,97,97,0,1895,0,97,97,97,97,97,97,45,45,45,45,45,958,45,960,45,45,45,45,45,45,45,45,1913,45,45,1915,67,67,67,67,67,67,67,466,67,67,67,67,67,67,481,67,45,1749,45,45,45,45,45,45,45,45,1755,45,45,45,45,45,173,45,45,45,45,45,45,45,45,45,45,974,45,45,45,45,45,67,67,67,67,67,1773,67,67,67,67,67,67,67,97,97,97,97,1886,0,0,0,97,97,67,2035,2036,67,67,97,0,0,97,2041,2042,97,97,45,45,45,45,1662,45,45,45,45,45,45,45,45,45,45,45,1397,45,45,45,45,151,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,437,205,45,67,67,67,218,67,67,67,67,67,67,67,67,67,67,67,1047,67,67,67,67,97,97,97,97,298,97,97,97,97,97,97,97,97,97,97,97,870,97,97,97,97,97,97,97,97,352,97,0,53264,0,18,18,24,24,0,28,28,0,0,0,0,0,0,365,0,41098,0,140,45,45,45,45,45,1427,45,45,67,67,67,67,67,67,67,1435,520,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1037,617,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,923,45,1232,45,45,45,45,45,45,45,45,45,45,45,45,45,67,67,67,67,1919,67,1759,45,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1021,45,154,45,162,45,45,45,45,45,45,45,45,45,45,45,45,964,45,45,45,206,45,67,67,67,67,221,67,229,67,67,67,67,67,67,67,67,530,67,67,67,67,67,67,67,67,755,67,67,67,67,67,67,67,67,785,67,67,67,67,67,67,67,67,802,67,67,67,807,67,67,67,97,97,97,97,353,97,0,53264,0,18,18,24,24,0,28,28,0,0,0,0,0,0,366,0,0,0,140,2170880,2170880,2170880,2416640,402,45,45,45,45,45,45,45,410,45,45,45,45,45,45,45,674,45,45,45,45,45,45,45,45,389,45,394,45,45,398,45,45,45,45,441,45,45,45,45,45,447,45,45,45,454,45,45,67,67,67,67,67,67,67,67,67,67,67,1768,67,67,67,67,67,488,67,67,67,67,67,67,67,496,67,67,67,67,67,67,67,1774,67,67,67,67,67,97,97,97,97,0,0,97,97,97,0,97,97,97,97,97,97,97,97,67,67,523,67,67,527,67,67,67,67,67,533,67,67,67,540,97,97,97,585,97,97,97,97,97,97,97,593,97,97,97,97,97,97,1784,0,97,97,97,97,97,97,0,0,97,97,97,97,97,97,0,0,0,18,18,24,24,0,28,28,97,97,620,97,97,624,97,97,97,97,97,630,97,97,97,637,713,45,45,45,45,45,45,721,45,45,45,45,45,45,45,45,1197,45,45,45,45,45,45,45,45,730,732,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,1581,67,45,67,67,67,67,1012,67,67,67,67,67,67,67,67,67,67,67,1059,67,67,67,67,67,1024,67,67,67,67,67,67,67,67,67,67,67,67,67,67,775,67,67,67,67,1066,67,67,67,67,67,67,67,67,67,67,67,67,479,67,67,67,67,67,67,1080,67,67,67,67,37689,0,25403,0,66365,0,0,0,0,0,0,0,287,0,0,0,287,0,2379776,2170880,2170880,97,97,97,1118,97,97,97,97,97,97,97,97,97,97,97,97,920,97,97,0,0,0,0,45,1181,45,45,45,45,45,45,45,45,45,45,45,432,45,45,45,45,45,45,1219,45,45,45,45,45,45,1226,45,45,45,45,45,45,959,45,45,45,45,45,45,45,45,45,184,45,45,45,45,202,45,1241,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1266,67,1268,67,67,67,67,67,67,67,67,67,67,67,67,1279,67,67,67,67,67,272,67,0,37139,24853,0,0,0,0,41098,65820,67,67,67,67,67,1286,67,67,67,67,67,67,67,67,67,1293,67,67,67,1296,67,67,67,67,67,67,67,0,0,0,0,0,281,94,0,0,97,97,97,1366,97,97,97,97,97,97,97,97,97,1373,97,97,18,0,139621,0,0,0,0,0,0,364,0,0,367,0,97,1376,97,97,97,97,97,97,97,0,0,0,45,45,1384,45,45,67,208,67,67,67,67,67,67,237,67,67,67,67,67,67,67,1069,1070,67,67,67,67,67,67,67,0,37140,24854,0,0,0,0,41098,65821,45,1423,45,45,45,45,45,45,67,67,1431,67,67,67,67,67,67,67,1083,37689,0,25403,0,66365,0,0,0,1436,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1830,67,1452,1453,67,67,67,67,1456,67,67,67,67,67,67,67,67,67,771,67,67,67,67,67,67,1461,67,67,67,1464,67,1466,67,67,67,67,67,67,1470,67,67,67,67,67,67,1587,67,67,67,67,67,67,67,67,1595,1489,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1129,97,1505,1506,97,97,97,97,1510,97,97,97,97,97,97,97,97,97,1163,1164,97,97,97,97,97,1516,97,97,97,1519,97,1521,97,97,97,97,97,97,1525,97,97,18,0,139621,0,0,0,0,0,0,364,0,0,367,41606,67,67,67,67,67,1586,67,67,67,67,67,67,67,67,67,67,67,1276,67,67,67,67,67,67,67,67,67,1600,67,67,67,67,67,67,67,67,67,67,67,1301,0,0,0,1307,97,97,1620,97,97,97,97,97,97,97,1627,97,97,97,97,97,97,913,97,97,97,97,919,97,97,97,0,97,97,97,1781,97,97,0,0,97,97,97,97,97,97,0,0,97,97,97,97,97,97,0,1792,1860,45,1862,1863,45,1865,45,67,67,67,67,67,67,67,67,1875,67,1877,1878,67,1880,67,97,97,97,97,97,1887,0,1889,97,97,18,0,139621,0,0,0,0,0,0,364,237568,0,367,0,97,1893,0,0,0,97,1898,1899,97,1901,97,45,45,45,45,45,2014,45,67,67,67,67,67,2020,67,97,1989,45,1990,45,45,45,67,67,67,67,67,67,1996,67,1997,67,67,67,67,67,273,67,0,37139,24853,0,0,0,0,41098,65820,67,67,97,97,97,97,0,0,97,97,2005,0,97,2007,97,97,18,0,139621,0,0,0,642,0,133,364,0,0,367,41606,0,97,97,2056,2057,0,2059,45,67,0,97,45,67,0,97,45,45,67,209,67,67,67,223,67,67,67,67,67,67,67,67,67,786,67,67,67,791,67,67,45,45,940,45,45,45,45,45,45,45,45,45,45,45,45,45,45,727,45,45,67,67,67,67,67,67,67,67,1016,67,67,67,67,67,67,67,67,37689,0,25403,0,66365,0,0,0,133,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,142,45,45,67,210,67,67,67,225,67,67,239,67,67,67,250,67,67,67,67,67,464,67,67,67,67,67,476,67,67,67,67,67,67,67,1709,67,67,67,97,97,97,97,97,97,0,0,97,97,97,97,97,1843,0,67,259,67,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,289,97,97,97,303,97,97,97,97,97,97,97,97,97,97,901,97,97,97,97,97,339,97,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,0,358,0,0,0,0,0,0,41098,0,140,45,45,45,45,45,1953,45,1955,45,45,45,67,67,67,67,67,67,67,1687,1688,67,67,67,67,45,45,405,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1203,45,458,67,67,67,67,67,67,67,67,67,470,477,67,67,67,67,67,67,67,1970,97,97,97,1974,0,0,0,97,1103,97,97,97,97,97,97,97,97,97,97,97,1372,97,97,97,97,67,522,67,67,67,67,67,67,67,67,67,67,67,536,67,67,67,67,67,67,1696,67,67,67,67,67,67,67,1701,67,555,97,97,97,97,97,97,97,97,97,567,574,97,97,97,97,97,301,97,309,97,97,97,97,97,97,97,97,97,900,97,97,97,905,97,97,97,619,97,97,97,97,97,97,97,97,97,97,97,633,97,97,18,0,139621,0,0,362,0,0,0,364,0,0,367,41606,369,649,45,45,45,45,45,45,45,45,45,45,45,45,663,664,67,67,67,67,750,751,67,67,67,67,758,67,67,67,67,67,67,67,1272,67,67,67,67,67,67,67,67,67,1057,1058,67,67,67,67,67,67,67,67,797,67,67,67,67,67,67,67,67,67,67,67,67,512,67,67,67,97,97,97,97,895,97,97,97,97,97,97,97,97,97,97,97,902,97,97,97,97,67,67,1051,67,67,67,67,67,67,67,67,67,67,67,1062,67,67,67,67,67,491,67,67,67,67,67,67,67,67,67,67,67,1302,0,0,0,1308,97,97,97,97,1145,97,97,97,97,97,97,97,97,97,97,97,1139,97,97,97,97,1156,97,97,97,97,97,97,1161,97,97,97,97,97,1166,97,97,18,640,139621,0,641,0,0,0,0,364,0,0,367,41606,67,67,67,67,1257,67,67,67,67,67,67,67,67,67,67,67,0,0,1305,0,0,97,97,1337,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1630,97,67,1474,67,67,0,0,0,0,0,0,0,0,0,0,0,0,0,2380062,2171166,2171166,97,1529,97,97,0,45,45,45,45,45,45,45,45,45,45,45,1228,45,45,45,45,67,67,67,67,1707,67,67,67,67,67,67,97,97,97,97,97,0,0,0,97,1891,1739,97,97,97,97,97,97,45,45,45,45,45,45,45,45,45,1198,45,1200,45,45,45,45,97,97,1894,0,0,97,97,97,97,97,97,45,45,45,45,45,672,45,45,45,45,45,45,45,45,45,45,45,1420,45,45,45,45,67,67,1965,67,1967,67,67,67,97,97,97,97,0,1976,0,97,97,45,67,0,97,45,67,0,97,45,67,0,97,45,97,97,1979,0,0,97,1982,97,97,97,1986,45,45,45,45,45,735,45,45,67,67,67,67,67,67,67,67,67,67,67,67,67,1770,67,67,2e3,97,97,97,2002,0,97,97,97,0,97,97,97,97,97,97,1798,97,97,97,45,45,45,2034,67,67,67,67,97,0,0,2040,97,97,97,97,45,45,45,45,1752,45,45,45,1753,1754,45,45,45,45,45,45,383,45,45,45,45,45,45,45,45,45,675,45,45,45,45,45,45,438,45,45,45,45,45,445,45,45,45,45,45,45,45,45,67,1430,67,67,67,67,67,67,67,67,67,524,67,67,67,67,67,531,67,67,67,67,67,67,67,67,37689,0,25403,0,66365,0,0,1096,97,97,97,621,97,97,97,97,97,628,97,97,97,97,97,97,0,53264,0,18,18,24,24,356,28,28,665,45,45,45,45,45,45,45,45,45,676,45,45,45,45,45,942,45,45,45,45,45,45,45,45,45,45,707,708,45,45,45,45,763,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,809,810,67,67,67,67,783,67,67,67,67,67,67,67,67,67,67,67,0,1303,0,0,0,97,861,97,97,97,97,97,97,97,97,97,97,97,97,97,97,613,97,45,45,956,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1215,45,67,67,67,67,1027,67,67,67,67,1032,67,67,67,67,67,67,67,67,37689,0,25403,0,66365,0,0,1097,1064,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1075,67,1098,0,0,97,97,97,97,97,97,97,97,97,97,97,97,97,331,97,97,97,97,1158,97,97,97,97,97,97,97,97,97,97,97,97,97,594,97,97,1309,0,0,0,1315,0,0,0,0,0,0,0,0,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1374,97,45,45,1543,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1240,67,67,1583,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1252,67,97,97,97,1635,97,97,97,0,97,97,97,97,97,97,97,97,1800,97,45,45,45,97,97,1793,97,97,97,97,97,97,97,97,97,97,45,45,45,1743,45,45,45,1746,45,0,97,97,97,97,97,1851,97,45,45,45,45,1856,45,45,45,45,1864,45,45,67,67,1869,67,67,67,67,1874,67,0,97,97,45,67,2058,97,45,67,0,97,45,67,0,97,45,45,67,211,67,67,67,67,67,67,240,67,67,67,67,67,67,67,1444,67,67,67,67,67,67,67,67,67,509,67,67,67,67,67,67,67,67,67,268,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,290,97,97,97,305,97,97,319,97,97,97,330,97,97,18,640,139621,0,641,0,0,0,0,364,0,643,367,41606,97,97,348,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,0,0,0,364,0,367,41098,369,140,45,45,45,45,380,45,45,45,45,45,45,395,45,45,45,400,369,0,45,45,45,45,45,45,45,45,658,45,45,45,45,45,972,45,45,45,45,45,45,45,45,45,45,427,45,45,45,45,45,745,67,67,67,67,67,67,67,67,756,67,67,67,67,67,67,67,67,37689,1086,25403,1090,66365,1094,0,0,97,843,97,97,97,97,97,97,97,97,854,97,97,97,97,97,97,1121,97,97,97,97,1126,97,97,97,97,45,980,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1400,45,67,67,67,1011,67,67,67,67,67,67,67,67,67,67,67,0,1304,0,0,0,1190,45,45,1193,1194,45,45,45,45,45,1199,45,1201,45,45,45,45,1911,45,45,45,45,45,67,67,67,67,67,67,67,1579,67,67,67,67,45,1205,45,45,45,45,45,45,45,45,1211,45,45,45,45,45,984,45,45,45,45,45,45,45,45,45,45,45,1550,45,45,45,45,45,1217,45,45,45,45,45,45,1225,45,45,45,45,1229,45,45,45,1388,45,45,45,45,45,45,1396,45,45,45,45,45,444,45,45,45,45,45,45,45,45,45,67,67,1574,67,67,67,67,67,67,67,67,67,67,1590,67,67,67,67,67,1254,67,67,67,67,67,1259,67,1261,67,67,67,67,1265,67,67,67,67,67,67,1708,67,67,67,67,97,97,97,97,97,97,0,0,97,97,97,97,97,0,0,67,67,67,67,1285,67,67,67,67,1289,67,67,67,67,67,67,67,67,37689,1087,25403,1091,66365,1095,0,0,97,97,97,97,1339,97,1341,97,97,97,97,1345,97,97,97,97,97,561,97,97,97,97,97,573,97,97,97,97,97,97,1717,97,0,97,97,97,97,97,97,97,591,97,97,97,97,97,97,97,97,97,1329,97,97,97,97,97,97,97,97,97,97,1351,97,97,97,97,97,97,1357,97,97,97,97,97,588,97,97,97,97,97,97,97,97,97,97,568,97,97,97,97,97,97,97,1365,97,97,97,97,1369,97,97,97,97,97,97,97,97,97,1356,97,97,97,97,97,97,45,45,1403,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1399,45,45,45,1413,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1669,45,1422,45,45,1425,45,45,1428,45,1429,67,67,67,67,67,67,67,67,1468,67,67,67,67,67,67,67,67,529,67,67,67,67,67,67,539,67,67,1475,67,0,0,0,0,0,0,0,0,0,0,0,0,140,2170880,2170880,2170880,2416640,97,97,1530,97,0,45,45,1534,45,45,45,45,45,45,45,45,1956,45,45,67,67,67,67,67,67,67,67,67,1599,67,67,1601,67,67,67,67,67,67,67,67,67,803,67,67,67,67,67,67,1632,97,1634,0,97,97,97,1640,97,97,97,1643,97,97,1645,97,97,97,97,97,912,97,97,97,97,97,97,97,97,97,0,0,0,45,45,45,45,45,45,1660,1661,45,45,45,45,1665,1666,45,45,45,45,45,1670,1692,1693,67,67,67,67,67,1697,67,67,67,67,67,67,67,1702,97,97,1714,1715,97,97,97,97,0,1721,1722,97,97,97,97,97,97,1353,97,97,97,97,97,97,97,97,1362,1726,97,0,0,97,97,97,0,97,97,97,1734,97,97,97,97,97,848,849,97,97,97,97,856,97,97,97,97,97,354,0,53264,0,18,18,24,24,0,28,28,45,45,1750,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1681,45,0,1846,97,97,97,97,97,97,45,45,1854,45,45,45,45,1859,67,67,67,1879,67,67,97,97,1884,97,97,0,0,0,97,97,97,1105,97,97,97,97,97,97,97,97,97,97,1344,97,97,97,1347,97,1892,97,0,0,0,97,97,97,1900,97,97,45,45,45,45,45,997,45,45,45,45,45,45,45,45,45,45,1002,45,45,1005,1006,45,67,67,67,67,67,1926,67,67,1928,97,97,97,97,97,0,0,97,97,97,0,97,97,97,97,97,97,1737,97,0,97,97,97,97,0,0,0,97,97,1944,97,97,1946,45,45,45,1544,45,45,45,45,45,45,45,45,45,45,45,45,190,45,45,45,152,155,45,163,45,45,177,179,182,45,45,45,193,197,45,45,45,1672,45,45,45,45,45,1677,45,1679,45,45,45,45,996,45,45,45,45,45,45,45,45,45,45,45,1212,45,45,45,45,67,260,264,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,97,295,299,302,97,310,97,97,324,326,329,97,97,97,0,97,97,1639,0,1641,97,97,97,97,97,97,97,97,1511,97,97,97,97,97,97,97,97,1523,97,97,97,97,97,97,97,97,1719,97,97,97,97,97,97,97,97,1720,97,97,97,97,97,97,97,312,97,97,97,97,97,97,97,97,1123,97,97,97,97,97,97,97,340,344,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,0,0,0,364,0,367,41098,369,140,45,45,373,375,419,45,45,45,45,45,45,45,45,45,428,45,45,435,45,45,45,1751,45,45,45,45,45,45,45,45,45,45,45,45,1410,45,45,45,67,67,67,505,67,67,67,67,67,67,67,67,67,514,67,67,67,67,67,67,1969,67,97,97,97,97,0,0,0,97,97,45,67,0,97,45,67,0,97,2064,2065,0,2066,45,521,67,67,67,67,67,67,67,67,67,67,534,67,67,67,67,67,67,465,67,67,67,474,67,67,67,67,67,67,67,1467,67,67,67,67,67,67,67,67,67,97,97,97,97,97,1933,0,97,97,97,602,97,97,97,97,97,97,97,97,97,611,97,97,18,640,139621,358,641,0,0,0,0,364,0,0,367,0,618,97,97,97,97,97,97,97,97,97,97,631,97,97,97,97,97,881,97,97,97,97,97,97,97,97,97,97,569,97,97,97,97,97,369,0,45,652,45,45,45,45,45,657,45,45,45,45,45,45,1235,45,45,45,45,45,45,45,45,67,67,67,1432,67,67,67,67,67,67,67,766,67,67,67,67,67,67,67,67,773,67,67,67,0,1305,0,1311,0,1317,97,97,97,97,97,97,97,1624,97,97,97,97,97,97,97,97,0,97,97,97,1724,97,97,97,777,67,67,782,67,67,67,67,67,67,67,67,67,67,67,67,535,67,67,67,67,67,67,67,814,67,67,67,67,67,67,67,67,67,37689,544,25403,546,70179,0,0,66365,66365,552,0,97,837,97,97,97,97,97,97,1496,97,97,97,97,97,97,97,97,97,97,918,97,97,97,97,0,842,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1168,97,97,97,97,864,97,97,97,97,97,97,97,97,871,97,97,97,0,1637,97,97,0,97,97,97,97,97,97,97,97,97,97,1801,45,45,97,875,97,97,880,97,97,97,97,97,97,97,97,97,97,97,1151,1152,97,97,97,67,67,67,1040,67,67,67,67,67,67,67,67,67,67,67,67,790,67,67,67,1180,0,649,45,45,45,45,45,45,45,45,45,45,45,45,45,200,45,45,67,67,67,1454,67,67,67,67,67,67,67,67,67,67,67,67,806,67,67,67,0,0,0,1481,0,1094,0,0,97,1483,97,97,97,97,97,97,304,97,97,318,97,97,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,97,97,97,1507,97,97,97,97,97,97,97,97,97,97,97,97,1332,97,97,97,1619,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1631,97,1633,97,0,97,97,97,0,97,97,97,97,97,97,97,97,97,1381,0,0,45,45,45,45,97,97,1727,0,97,97,97,0,97,97,97,97,97,97,97,97,626,97,97,97,97,97,97,636,45,45,1760,67,67,67,67,67,67,67,1765,67,67,67,67,67,67,67,1299,67,67,67,0,0,0,0,0,0,97,97,97,97,1616,97,97,1803,45,45,45,45,1807,45,45,45,45,45,1813,45,45,45,67,67,1684,67,67,67,67,67,67,67,67,67,67,67,822,67,67,37689,544,67,67,1818,67,67,67,67,1822,67,67,67,67,67,1828,67,67,67,67,67,97,0,0,97,97,97,97,97,45,45,45,2012,2013,45,45,67,67,67,2018,2019,67,67,97,67,97,97,97,1833,97,97,0,0,97,97,1840,97,97,0,0,97,97,97,0,97,97,1733,97,1735,97,97,97,0,97,97,97,1849,97,97,97,45,45,45,45,45,1857,45,45,45,1910,45,1912,45,45,1914,45,67,67,67,67,67,67,67,67,67,67,1017,67,67,1020,67,45,1861,45,45,45,45,45,67,67,67,67,67,1872,67,67,67,67,67,67,752,67,67,67,67,67,67,67,67,67,67,1446,67,67,67,67,67,1876,67,67,67,67,67,97,97,97,97,97,0,0,0,1890,97,97,97,97,97,1134,97,97,97,97,97,97,97,97,97,97,570,97,97,97,97,580,1935,97,97,97,97,0,0,0,97,97,97,97,97,97,45,45,45,45,1906,45,67,67,67,67,2048,0,97,97,97,97,45,45,67,67,0,0,0,0,925,41606,0,0,0,931,45,45,45,45,45,45,1674,45,1676,45,45,45,45,45,45,45,446,45,45,45,45,45,45,45,67,67,67,67,1871,67,67,67,67,0,97,97,45,67,0,97,2060,2061,0,2063,45,67,0,97,45,45,156,45,45,45,45,45,45,45,45,45,192,45,45,45,45,1673,45,45,45,45,45,45,45,45,45,45,45,429,45,45,45,45,67,67,67,269,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,349,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,0,0,0,364,0,367,41098,369,140,45,45,374,45,45,67,67,213,217,67,67,67,67,67,242,67,247,67,253,45,45,698,45,45,45,45,45,45,45,45,45,45,45,45,45,399,45,45,0,0,0,0,925,41606,0,929,0,0,45,45,45,45,45,45,1391,45,45,1395,45,45,45,45,45,45,423,45,45,45,45,45,45,45,436,45,67,67,67,67,1041,67,1043,67,67,67,67,67,67,67,67,67,67,1776,67,67,97,97,97,1099,0,0,97,97,97,97,97,97,97,97,97,97,97,97,97,888,97,97,97,1131,97,97,97,97,1135,97,1137,97,97,97,97,97,97,97,1497,97,97,97,97,97,97,97,97,97,883,97,97,97,97,97,97,1310,0,0,0,1316,0,0,0,0,1100,0,0,0,97,97,97,97,97,1107,97,97,97,97,97,97,97,97,1343,97,97,97,97,97,97,1348,0,0,1317,0,0,0,0,0,97,97,97,97,97,97,97,97,97,97,97,1112,97,45,1804,45,45,45,45,45,45,45,45,45,45,45,45,45,67,1868,67,1870,67,67,67,67,67,1817,67,67,1819,67,67,67,67,67,67,67,67,67,67,67,67,823,67,37689,544,67,97,1832,97,97,1834,97,0,0,97,97,97,97,97,0,0,97,97,97,0,1732,97,97,97,97,97,97,97,850,97,97,97,97,97,97,97,97,97,1177,0,0,925,0,0,0,0,97,97,97,97,0,0,1941,97,97,97,97,97,97,45,45,45,1991,1992,45,67,67,67,67,67,67,67,67,67,1998,134,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,45,941,45,45,944,45,45,45,45,45,45,952,45,45,207,67,67,67,67,67,226,67,67,67,67,67,67,67,67,67,820,67,67,67,67,37689,544,369,650,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1682,25403,546,70179,0,0,66365,66365,552,835,97,97,97,97,97,97,97,1522,97,97,97,97,97,97,97,97,0,97,97,97,97,97,97,1725,67,67,67,1695,67,67,67,67,67,67,67,67,67,67,67,67,1034,67,1036,67,67,67,265,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,97,296,97,97,97,97,314,97,97,97,97,332,334,97,97,97,97,97,1146,1147,97,97,97,97,97,97,97,97,97,97,1626,97,97,97,97,97,97,345,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,0,0,0,364,0,367,41098,369,140,45,372,45,45,45,1220,45,45,45,45,45,45,45,45,45,45,45,45,1213,45,45,45,45,404,406,45,45,45,45,45,45,45,45,45,45,45,45,45,434,45,45,45,440,45,45,45,45,45,45,45,45,451,452,45,45,45,67,1683,67,67,67,1686,67,67,67,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,67,67,67,67,490,492,67,67,67,67,67,67,67,67,67,67,67,1447,67,67,1450,67,67,67,67,67,526,67,67,67,67,67,67,67,67,537,538,67,67,67,67,67,506,67,67,508,67,67,511,67,67,67,67,0,1476,0,0,0,0,0,1478,0,0,0,0,0,0,0,0,97,97,1484,97,97,97,97,97,97,865,97,97,97,97,97,97,97,97,97,97,1499,97,97,97,97,97,97,97,97,97,587,589,97,97,97,97,97,97,97,97,97,97,629,97,97,97,97,97,97,97,97,97,623,97,97,97,97,97,97,97,97,634,635,97,97,97,97,97,1160,97,97,97,97,97,97,97,97,97,97,97,1628,97,97,97,97,369,0,45,45,45,45,45,655,45,45,45,45,45,45,45,45,999,45,1001,45,45,45,45,45,45,45,45,715,45,45,45,720,45,45,45,45,45,45,45,45,728,25403,546,70179,0,0,66365,66365,552,0,97,97,97,97,97,840,97,97,97,97,97,1174,97,97,97,97,0,0,925,0,0,0,0,0,0,0,1100,97,97,97,97,97,97,97,97,627,97,97,97,97,97,97,97,938,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,680,45,968,45,970,45,973,45,45,45,45,45,45,45,45,45,45,962,45,45,45,45,45,979,45,45,45,45,45,985,45,45,45,45,45,45,45,45,45,1224,45,45,45,45,45,45,45,45,688,45,45,45,45,45,45,45,1007,1008,67,67,67,67,67,1014,67,67,67,67,67,67,67,67,67,1045,67,67,67,67,67,67,67,1038,67,67,67,67,67,67,1044,67,1046,67,1049,67,67,67,67,67,67,800,67,67,67,67,67,67,808,67,67,0,0,0,1102,97,97,97,97,97,1108,97,97,97,97,97,97,306,97,97,97,97,97,97,97,97,97,97,1371,97,97,97,97,97,97,97,97,1132,97,97,97,97,97,97,1138,97,1140,97,1143,97,97,97,97,97,1352,97,97,97,97,97,97,97,97,97,97,869,97,97,97,97,97,45,1191,45,45,45,45,45,1196,45,45,45,45,45,45,45,45,1407,45,45,45,45,45,45,45,45,986,45,45,45,45,45,45,991,45,67,67,67,1256,67,67,67,67,67,67,67,67,67,67,67,67,1048,67,67,67,97,1336,97,97,97,97,97,97,97,97,97,97,97,97,97,97,615,97,1386,45,1387,45,45,45,45,45,45,45,45,45,45,45,45,45,455,45,457,45,45,1424,45,45,45,45,45,67,67,67,67,1433,67,1434,67,67,67,67,67,767,67,67,67,67,67,67,67,67,67,67,67,1591,67,1593,67,67,45,45,1805,45,45,45,45,45,45,45,45,45,1814,45,45,1816,67,67,67,67,1820,67,67,67,67,67,67,67,67,67,1829,67,67,67,67,67,815,67,67,67,67,821,67,67,67,37689,544,67,1831,97,97,97,97,1835,0,0,97,97,97,97,97,0,0,97,97,97,1731,97,97,97,97,97,97,97,97,97,853,97,97,97,97,97,97,0,97,97,97,97,1850,97,97,45,45,45,45,45,45,45,45,1547,45,45,45,45,45,45,45,45,1664,45,45,45,45,45,45,45,45,961,45,45,45,45,965,45,967,1907,45,45,45,45,45,45,45,45,45,67,67,67,67,67,1920,0,1936,97,97,97,0,0,0,97,97,97,97,97,97,45,45,67,67,67,67,67,67,1763,67,67,67,67,67,67,67,67,1056,67,67,67,67,67,67,67,67,1273,67,67,67,67,67,67,67,67,1457,67,67,67,67,67,67,67,67,97,97,97,97,0,0,28672,97,45,67,67,67,67,0,0,97,97,97,97,45,45,67,67,2054,97,97,291,97,97,97,97,97,97,320,97,97,97,97,97,97,307,97,97,97,97,97,97,97,97,97,97,12288,0,925,926,1179,0,45,377,45,45,45,381,45,45,392,45,45,396,45,45,45,45,971,45,45,45,45,45,45,45,45,45,45,45,45,1756,45,45,45,67,67,67,67,463,67,67,67,467,67,67,478,67,67,482,67,67,67,67,67,1028,67,67,67,67,67,67,67,67,67,67,67,67,1469,67,67,1472,67,502,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1460,67,97,97,97,97,560,97,97,97,564,97,97,575,97,97,579,97,97,97,97,97,1368,97,97,97,97,97,97,97,97,97,97,0,0,925,0,0,930,97,599,97,97,97,97,97,97,97,97,97,97,97,97,97,97,872,97,45,666,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1758,0,362,0,0,925,41606,0,0,0,0,45,45,934,45,45,45,164,168,174,178,45,45,45,45,45,194,45,45,45,165,45,45,45,45,45,45,45,45,45,199,45,45,45,67,67,1010,67,67,67,67,67,67,67,67,67,67,67,67,1060,67,67,67,67,67,67,1052,1053,67,67,67,67,67,67,67,67,67,67,1063,97,1157,97,97,97,97,97,97,97,97,97,97,97,97,1167,97,97,97,97,97,1379,97,97,97,0,0,0,45,1383,45,45,45,1806,45,45,45,45,45,45,1812,45,45,45,45,67,67,67,67,67,1577,67,67,67,67,67,67,67,753,67,67,67,67,67,67,67,67,67,1262,67,67,67,67,67,67,67,1282,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1471,67,45,1402,45,45,45,45,45,45,45,45,45,45,45,45,45,45,417,45,67,1462,67,67,67,67,67,67,67,67,67,67,67,67,67,67,37689,544,97,1517,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1128,97,97,97,97,1636,97,97,97,0,97,97,97,97,97,97,97,97,851,97,97,97,97,97,97,97,67,67,1705,67,67,67,67,67,67,67,67,97,97,97,97,97,97,0,0,97,97,97,97,1842,0,0,1779,97,97,97,1782,97,0,0,97,97,97,97,97,97,0,0,97,97,97,1789,97,97,0,0,0,97,1847,97,97,97,97,97,45,45,45,45,45,45,45,45,1675,45,45,45,45,45,45,45,45,737,738,67,740,67,741,67,743,67,67,67,67,67,67,1968,67,67,97,97,97,97,0,0,0,97,97,45,67,0,97,45,67,2062,97,45,67,0,97,45,67,67,97,97,2001,97,0,0,2004,97,97,0,97,97,97,97,1797,97,97,97,97,97,45,45,45,67,261,67,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,292,97,97,97,97,311,315,321,325,97,97,97,97,97,97,1623,97,97,97,97,97,97,97,97,97,97,1330,97,97,1333,1334,97,341,97,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,0,0,363,364,0,367,41098,369,140,45,45,45,45,1221,45,45,45,45,45,45,45,45,45,45,45,413,45,45,416,45,376,45,45,45,45,382,45,45,45,45,45,45,45,45,45,45,1408,45,45,45,45,45,403,45,45,45,45,45,45,45,45,45,45,414,45,45,45,418,67,67,67,462,67,67,67,67,468,67,67,67,67,67,67,67,67,1602,67,1604,67,67,67,67,67,67,67,67,489,67,67,67,67,67,67,67,67,67,67,500,67,67,67,67,67,1067,67,67,67,67,67,1072,67,67,67,67,67,67,274,0,37139,24853,0,0,0,0,41098,65820,67,67,504,67,67,67,67,67,67,67,510,67,67,67,517,519,541,67,37139,37139,24853,24853,0,70179,0,0,0,65820,65820,369,287,554,97,97,97,559,97,97,97,97,565,97,97,97,97,97,97,97,1718,0,97,97,97,97,97,97,97,898,97,97,97,97,97,97,906,97,97,97,97,586,97,97,97,97,97,97,97,97,97,97,597,97,97,97,97,97,1520,97,97,97,97,97,97,97,97,97,97,0,45,1656,45,45,45,97,97,601,97,97,97,97,97,97,97,607,97,97,97,614,616,638,97,18,0,139621,0,0,0,0,0,0,364,0,0,367,41606,369,0,45,45,45,45,45,45,45,45,45,45,661,45,45,45,407,45,45,45,45,45,45,45,45,45,45,45,45,45,1815,45,67,45,667,45,45,45,45,45,45,45,45,45,45,678,45,45,45,421,45,45,45,45,45,45,45,45,45,45,45,45,976,977,45,45,45,682,45,45,45,45,45,45,45,45,45,45,693,45,45,697,67,67,748,67,67,67,67,754,67,67,67,67,67,67,67,67,67,1274,67,67,67,67,67,67,67,67,765,67,67,67,67,769,67,67,67,67,67,67,67,67,67,1589,67,67,67,67,67,67,67,67,780,67,67,784,67,67,67,67,67,67,67,67,67,67,67,1777,67,97,97,97,97,97,97,846,97,97,97,97,852,97,97,97,97,97,97,97,1742,45,45,45,45,45,45,45,1747,97,97,97,863,97,97,97,97,867,97,97,97,97,97,97,97,308,97,97,97,97,97,97,97,97,97,97,12288,1178,925,0,1179,0,97,97,97,878,97,97,882,97,97,97,97,97,97,97,97,97,97,12288,0,925,0,1179,0,908,97,97,97,97,97,97,97,97,97,97,97,97,97,97,0,0,925,0,0,0,954,45,45,45,45,45,45,45,45,45,45,963,45,45,966,45,45,157,45,45,171,45,45,45,45,45,45,45,45,45,45,948,45,45,45,45,45,1022,67,67,1026,67,67,67,1030,67,67,67,67,67,67,67,67,67,1603,1605,67,67,67,1608,67,67,67,1039,67,67,1042,67,67,67,67,67,67,67,67,67,67,471,67,67,67,67,67,0,1100,0,97,97,97,97,97,97,97,97,97,97,97,97,97,904,97,97,97,97,1116,97,97,1120,97,97,97,1124,97,97,97,97,97,97,562,97,97,97,571,97,97,97,97,97,97,97,97,97,1133,97,97,1136,97,97,97,97,97,97,97,97,915,917,97,97,97,97,97,0,97,1170,97,97,97,97,97,97,97,97,0,0,925,0,0,0,0,0,41606,0,0,0,0,45,45,45,45,45,45,1993,67,67,67,67,67,67,67,67,67,67,1275,67,67,67,1278,67,0,0,0,45,45,1182,45,45,45,45,45,45,45,45,45,1189,1204,45,45,45,1207,45,45,1209,45,1210,45,45,45,45,45,45,1546,45,45,45,45,45,45,45,45,45,689,45,45,45,45,45,45,1231,45,45,45,45,45,45,45,45,45,45,45,45,45,45,67,67,67,67,67,67,67,67,236,67,67,67,67,67,67,67,801,67,67,67,805,67,67,67,67,67,1242,67,67,67,67,67,67,67,67,67,1249,67,67,67,67,67,67,507,67,67,67,67,67,67,67,67,67,67,1300,0,0,0,0,0,1267,67,67,1269,67,1270,67,67,67,67,67,67,67,67,67,1280,97,1349,97,1350,97,97,97,97,97,97,97,97,97,1360,97,97,97,0,1980,97,97,97,97,97,45,45,45,45,45,45,673,45,45,45,45,677,45,45,45,45,1401,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,953,67,1437,67,1440,67,67,67,67,1445,67,67,67,1448,67,67,67,67,67,67,1029,67,67,67,67,67,67,67,67,67,67,1825,67,67,67,67,67,1473,67,67,67,0,0,0,0,0,0,0,0,0,0,0,0,1320,0,834,97,97,97,97,1490,97,1493,97,97,97,97,1498,97,97,97,1501,97,97,97,0,97,1638,97,0,97,97,97,97,97,97,97,97,916,97,97,97,97,97,97,0,1528,97,97,97,0,45,45,45,1535,45,45,45,45,45,45,45,1867,67,67,67,67,67,67,67,67,67,97,97,97,97,1932,0,0,1555,45,45,45,45,45,45,45,45,45,45,45,45,45,1567,45,45,158,45,45,172,45,45,45,183,45,45,45,45,201,45,45,67,212,67,67,67,67,231,235,241,245,67,67,67,67,67,67,493,67,67,67,67,67,67,67,67,67,67,472,67,67,67,67,67,97,97,97,97,1651,97,97,97,97,97,0,45,45,45,45,45,45,45,1539,45,45,45,67,1704,67,1706,67,67,67,67,67,67,67,97,97,97,97,97,97,0,0,97,97,97,1841,97,0,1844,97,97,97,97,1716,97,97,97,0,97,97,97,97,97,97,97,590,97,97,97,97,97,97,97,97,97,0,0,0,45,45,45,1385,1748,45,45,45,45,45,45,45,45,45,45,45,45,45,1757,45,45,159,45,45,45,45,45,45,45,45,45,45,45,45,45,415,45,45,97,97,1780,97,97,97,0,0,1786,97,97,97,97,97,0,0,97,97,1730,0,97,97,97,97,97,1736,97,1738,67,97,97,97,97,97,97,0,1838,97,97,97,97,97,0,0,97,1729,97,0,97,97,97,97,97,97,97,97,1162,97,97,97,1165,97,97,97,45,1950,45,45,45,45,45,45,45,45,1958,67,67,67,1962,67,67,67,67,67,1246,67,67,67,67,67,67,67,67,67,67,67,97,1710,97,97,97,1999,67,97,97,97,97,0,2003,97,97,97,0,97,97,2008,2009,45,67,67,67,67,0,0,97,97,97,97,45,2052,67,2053,0,0,0,0,925,41606,0,0,930,0,45,45,45,45,45,45,1392,45,1394,45,45,45,45,45,45,45,1545,45,45,45,45,45,45,45,45,45,45,1563,1565,45,45,45,1568,0,97,2055,45,67,0,97,45,67,0,97,45,67,28672,97,45,45,160,45,45,45,45,45,45,45,45,45,45,45,45,45,679,45,45,67,67,266,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,346,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,0,362,0,364,0,367,41098,369,140,371,45,45,45,379,45,45,45,388,45,45,45,45,45,45,45,45,1663,45,45,45,45,45,45,45,45,45,449,45,45,45,45,45,67,67,542,37139,37139,24853,24853,0,70179,0,0,0,65820,65820,369,287,97,97,97,97,97,1622,97,97,97,97,97,97,97,1629,97,97,0,1794,1795,97,97,97,97,97,97,97,97,45,45,45,45,45,45,1745,45,45,97,639,18,0,139621,0,0,0,0,0,0,364,0,0,367,41606,45,731,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,67,67,251,67,67,67,67,67,798,67,67,67,67,67,67,67,67,67,67,67,67,1073,67,67,67,860,97,97,97,97,97,97,97,97,97,97,97,97,97,97,873,0,0,1101,97,97,97,97,97,97,97,97,97,97,97,97,97,921,97,0,67,67,67,67,1245,67,67,67,67,67,67,67,67,67,67,67,67,1250,67,67,1253,0,0,1312,0,0,0,1318,0,0,0,0,0,0,97,97,97,97,1106,97,97,97,97,97,97,97,97,97,1149,97,97,97,97,97,1155,97,97,1325,97,97,97,97,97,97,97,97,97,97,97,97,97,1141,97,97,67,67,1439,67,1441,67,67,67,67,67,67,67,67,67,67,67,67,1264,67,67,67,97,97,1492,97,1494,97,97,97,97,97,97,97,97,97,97,97,1331,97,97,97,97,67,67,67,2037,67,97,0,0,97,97,97,2043,97,45,45,45,442,45,45,45,45,45,45,45,45,45,45,45,67,67,67,67,67,67,232,67,67,67,67,67,67,67,67,1823,67,67,67,67,67,67,67,67,97,97,97,97,1975,0,0,97,874,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1142,97,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,65,86,117,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,63,84,115,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,61,82,113,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,59,80,111,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,57,78,109,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,55,76,107,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,53,74,105,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,51,72,103,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,49,70,101,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,47,68,99,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,45,67,97,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,213085,53264,18,49172,57366,24,8192,28,102432,0,0,0,44,0,0,32863,53264,18,49172,57366,24,8192,28,102432,0,41,41,41,0,0,1138688,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,0,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,89,53264,18,18,49172,0,57366,0,24,24,24,0,127,127,127,127,102432,67,262,67,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,342,97,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,360,0,0,364,0,367,41098,369,140,45,45,45,45,717,45,45,45,45,45,45,45,45,45,45,45,412,45,45,45,45,45,67,1009,67,67,67,67,67,67,67,67,67,67,67,67,67,1292,67,67,1294,67,67,67,67,67,67,67,67,67,67,0,0,0,0,0,0,97,97,97,1615,97,97,97,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,66,87,118,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,64,85,116,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,62,83,114,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,60,81,112,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,58,79,110,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,56,77,108,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,54,75,106,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,52,73,104,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,50,71,102,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,48,69,100,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,46,67,98,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,233472,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,69724,53264,18,18,49172,0,57366,262144,24,24,24,0,28,28,28,28,102432,45,45,161,45,45,45,45,45,45,45,45,45,45,45,45,45,710,45,45,28,139621,359,0,0,0,364,0,367,41098,369,140,45,45,45,45,1389,45,45,45,45,45,45,45,45,45,45,45,949,45,45,45,45,67,503,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1449,67,67,97,600,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1154,97,0,0,0,0,925,41606,927,0,0,0,45,45,45,45,45,45,1866,67,67,67,67,67,67,67,67,67,67,772,67,67,67,67,67,45,45,969,45,45,45,45,45,45,45,45,45,45,45,45,45,951,45,45,45,45,1192,45,45,45,45,45,45,45,45,45,45,45,45,45,1202,45,45,0,0,0,1314,0,0,0,0,0,0,0,0,0,97,97,97,97,97,97,97,1488,67,67,267,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,347,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,361,0,0,364,0,367,41098,369,140,45,45,45,45,734,45,45,45,67,67,67,67,67,742,67,67,45,45,668,45,45,45,45,45,45,45,45,45,45,45,45,45,1214,45,45,1130,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1361,97,45,45,1671,45,45,45,45,45,45,45,45,45,45,45,45,45,1552,45,45,0,0,0,0,2220032,0,0,1130496,0,0,0,0,2170880,2171020,2170880,2170880,18,0,0,131072,0,0,0,90112,0,2220032,0,0,0,0,0,0,0,0,97,97,97,1485,97,97,97,97,0,45,45,45,45,45,1537,45,45,45,45,45,1390,45,1393,45,45,45,45,1398,45,45,45,2170880,2171167,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2576384,2215936,3117056,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,0,0,0,2174976,0,0,0,0,0,0,2183168,0,0,0,0,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,2721252,2744320,2170880,2170880,2170880,2834432,2840040,2170880,2908160,2170880,2170880,2936832,2170880,2170880,2985984,2170880,2994176,2170880,2170880,3014656,2170880,3059712,3076096,3088384,2170880,2170880,2170880,2170880,0,0,0,0,2220032,0,0,0,1142784,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3215360,2215936,2215936,2215936,2215936,2215936,2437120,2215936,2215936,2215936,3117056,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,543,0,545,0,0,2183168,0,0,831,0,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,3031040,2170880,3055616,2170880,2170880,2170880,2170880,3092480,2170880,2170880,3125248,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3198976,2170880,0,0,0,0,0,0,67,67,37139,37139,24853,24853,0,0,0,0,0,65820,65820,0,287,97,97,97,97,97,1783,0,0,97,97,97,97,97,97,0,0,97,97,97,97,97,97,1791,0,0,546,70179,0,0,0,0,552,0,97,97,97,97,97,97,97,604,97,97,97,97,97,97,97,97,97,97,1150,97,97,97,97,97,147456,147456,147456,147456,147456,147456,147456,147456,147456,147456,147456,147456,0,0,147456,0,0,0,0,925,41606,0,928,0,0,45,45,45,45,45,45,998,45,45,45,45,45,45,45,45,45,1562,45,1564,45,45,45,45,0,2158592,2158592,0,0,0,0,2232320,2232320,2232320,0,2240512,2240512,2240512,2240512,0,0,0,0,0,0,0,0,0,0,0,2170880,2170880,2170880,2416640],r.EXPECTED=[291,300,304,341,315,309,305,295,319,323,327,329,296,333,337,339,342,346,350,294,356,360,312,367,352,371,363,375,379,383,387,391,395,726,399,405,518,684,405,405,405,405,808,405,405,405,512,405,405,405,431,405,405,406,405,405,404,405,405,405,405,405,405,405,908,631,410,415,405,414,419,608,405,429,602,405,435,443,405,441,641,478,405,447,451,450,456,643,461,460,762,679,465,469,741,473,477,482,486,492,932,931,523,498,504,720,405,510,596,405,516,941,580,522,929,527,590,589,897,939,534,538,547,551,555,559,563,567,571,969,575,708,690,689,579,584,634,405,594,731,405,600,882,405,606,895,786,452,612,405,615,620,876,624,628,638,647,651,655,659,663,667,676,683,688,695,694,791,405,699,437,405,706,714,405,712,825,870,405,718,724,769,768,823,730,735,745,751,422,755,759,425,766,902,810,587,775,888,887,405,773,992,405,779,962,405,785,781,986,790,795,797,506,500,499,801,805,814,820,829,833,837,841,845,849,853,857,861,616,865,869,868,488,405,874,816,405,880,738,405,886,892,543,405,901,906,913,912,918,494,541,922,926,936,945,949,953,957,530,966,973,960,702,701,405,979,981,405,985,747,405,990,998,914,405,996,1004,672,975,974,1014,1002,1008,670,1012,405,405,405,405,405,401,1018,1022,1026,1106,1071,1111,1111,1111,1082,1145,1030,1101,1034,1038,1106,1106,1106,1106,1046,1206,1052,1106,1072,1111,1111,1042,1134,1065,1111,1112,1056,1160,1207,1062,1204,1208,1069,1106,1106,1106,1076,1111,1207,1161,1122,1205,1064,1094,1106,1106,1107,1111,1111,1111,1078,1086,1207,1092,1098,1046,1058,1106,1106,1110,1111,1111,1116,1120,1161,1126,1202,1104,1106,1145,1146,1129,1138,1088,1151,1048,1157,1153,1132,1141,1165,1107,1111,1172,1179,1109,1183,1175,1143,1147,1187,1108,1191,1195,1144,1199,1168,1212,1216,1220,1224,1228,1232,1236,1557,1247,1241,1241,1038,1434,1241,1241,1241,1241,1254,1275,1617,1241,1280,1287,1241,1241,1241,1287,1241,2114,1291,1241,1243,1241,2049,1824,2094,2095,1520,1309,1241,1241,1302,1241,1321,1311,1241,1241,1313,1778,1325,1336,1241,1241,1325,1330,1353,1241,1241,1695,1354,1241,1241,1241,1294,1686,1331,1241,1696,1368,1241,1338,1370,1241,1392,1399,1364,2017,1406,2016,1405,1716,1406,1407,1422,1417,1421,1241,1241,1241,1349,1426,1241,1774,1756,1241,1773,1241,1241,1345,1964,1812,1432,1241,1241,1345,1993,1459,1241,1241,1241,1395,1848,1767,1465,1241,1241,1394,1847,1242,1477,1241,1241,1428,1241,1445,1492,1241,1241,1438,1241,1499,1241,1241,1241,1455,1241,1818,1448,1241,1250,1241,2026,1623,1449,1241,1612,1616,1241,1614,1241,1257,1241,1241,1985,1292,1586,1512,1241,1517,2050,1526,1674,1519,1524,1647,2051,1532,1537,1551,1544,1550,1555,1561,1571,1578,1584,1590,1591,1653,1595,1602,1606,1610,1634,1628,1640,1633,1645,1241,1241,1241,1469,1241,1970,1651,1241,1270,1241,1241,1819,1449,1241,1293,1664,1241,1241,1481,1485,1574,1672,1241,1241,1513,1317,1487,1684,1241,1241,1533,1299,1694,1241,1241,1295,1241,1241,1241,1546,1700,1241,1241,1707,1241,1713,1241,1849,1715,1241,1720,1241,1276,1267,1241,1241,2107,1657,1864,1241,1881,1241,1326,1292,1241,1685,1358,1724,1338,1241,1363,1362,1342,1340,1361,1339,1833,1372,1360,1833,1833,1342,1343,1835,1341,1731,1738,1344,1241,1745,1241,1379,1241,1241,2092,1241,1388,1761,1754,1241,1386,1241,1400,1760,1241,1241,1241,1598,1734,1241,1241,1241,1635,1645,1241,1780,1766,1241,1241,1332,1771,1241,1241,1629,2079,1241,1242,1784,1241,1241,1680,1639,2063,1790,1241,1241,1741,1241,1241,1800,1241,1241,1762,1473,1241,1806,1241,1241,1786,1240,1709,1241,1241,1241,1668,1811,1241,1940,1241,1401,1974,1241,1408,1413,1382,1241,1816,1241,1241,1802,2086,1811,1241,1817,1945,1823,2095,2095,2047,2094,2046,2080,1241,1409,1312,1376,2096,2048,1241,1241,1807,1241,1241,1241,2035,1241,1241,1828,1241,2057,2061,1241,1241,1843,1241,2059,1241,1241,1241,1690,1847,1241,1241,1241,1703,2102,1848,1241,1241,1853,1292,1848,1241,2016,1857,1241,2002,1868,1241,1436,1241,1241,1271,1305,1241,1874,1241,1241,1884,2037,1892,1241,1890,1241,1461,1241,1241,1795,1241,1241,1891,1241,1878,1241,1888,1241,1888,1905,1896,2087,1912,1903,1241,1911,1906,1916,1905,2027,1863,1925,2088,1859,1861,1922,1927,1931,1935,1494,1241,1241,1918,1907,1939,1917,1944,1949,1241,1241,1451,1955,1241,1241,1241,1796,1727,2061,1241,1241,1899,1241,1660,1968,1241,1241,1951,1678,1978,1241,1241,1241,1839,1241,1241,1984,1982,1241,1488,1241,1241,1624,1450,1989,1241,1241,1241,1870,1995,1292,1241,1241,1958,1261,1241,1996,1241,1241,1241,2039,2008,1241,1241,1750,2e3,1241,1256,2001,1960,1241,1564,1241,1504,1241,1241,1442,1241,1241,1564,1528,1263,1241,1508,1241,1241,1468,1498,2006,1540,2015,1539,2014,1748,2013,1539,1831,2014,2012,1500,1567,2022,2021,1241,1580,1241,1241,2033,2037,1791,2045,2031,1241,1621,1241,1641,2044,1241,1241,1241,2093,1241,1241,2055,1241,1241,2067,1241,1283,1241,1241,1241,2101,2071,1241,1241,1241,2073,1848,2040,1241,1241,1241,2077,1241,1241,2106,1241,1241,2084,1241,2111,1241,1241,1381,1380,1241,1241,1241,2100,1241,2129,2118,2122,2126,2197,2133,3010,2825,2145,2698,2156,2226,2160,2161,2165,2174,2293,2194,2630,2201,2203,2152,3019,2226,2263,2209,2213,2218,2269,2292,2269,2269,2184,2226,2238,2148,2151,3017,2245,2214,2269,2269,2185,2226,2292,2269,2291,2269,2269,2269,2292,2205,3019,2226,2226,2160,2160,2160,2261,2160,2160,2160,2262,2276,2160,2160,2277,2216,2283,2216,2269,2269,2268,2269,2267,2269,2269,2269,2271,2568,2292,2269,2293,2269,2182,2190,2269,2186,2226,2226,2226,2226,2227,2160,2160,2160,2160,2263,2160,2275,2277,2282,2215,2217,2269,2269,2291,2269,2269,2293,2291,2269,2220,2269,2295,2294,2269,2269,2305,2233,2262,2278,2218,2269,2234,2226,2226,2228,2160,2160,2160,2289,2220,2294,2294,2269,2269,2304,2269,2160,2160,2287,2269,2269,2305,2269,2269,2312,2269,2269,2225,2226,2160,2287,2289,2219,2304,2295,2314,2234,2226,2314,2269,2226,2226,2160,2288,2219,2222,2304,2296,2269,2224,2160,2160,2269,2302,2294,2314,2224,2226,2288,2220,2294,2269,2290,2269,2269,2293,2269,2269,2269,2269,2270,2221,2313,2225,2227,2160,2300,2269,2225,2261,2309,2234,2229,2223,2318,2318,2318,2328,2336,2340,2344,2350,2637,2712,2358,2362,2372,2135,2378,2398,2135,2135,2135,2135,2136,2417,2241,2135,2378,2135,2135,2980,2984,2135,3006,2135,2135,2135,2945,2931,2425,2400,2135,2135,2135,2954,2135,2481,2433,2135,2135,2988,2824,2135,2135,2482,2434,2135,2135,2440,2445,2452,2135,2135,2998,3002,2961,2441,2446,2453,2463,2974,2135,2135,2135,2140,2642,2709,2459,2470,2465,2135,2135,3005,2135,2135,2987,2823,2458,2469,2464,2975,2135,2135,2135,2353,2488,2447,2324,2974,2135,2409,2459,2448,2135,2961,2487,2446,2476,2323,2973,2135,2135,2135,2354,2476,2974,2135,2135,2135,2957,2135,2135,2960,2135,2135,2135,2363,2409,2459,2474,2465,2487,2571,2973,2135,2135,2168,2973,2135,2135,2135,2959,2135,2135,2135,2506,2135,2957,2488,2170,2135,2135,2135,2960,2135,2818,2493,2135,2135,3033,2135,2135,2135,2934,2819,2494,2135,2135,2135,2976,2780,2499,2135,2135,2135,3e3,2968,2135,2935,2135,2135,2135,2364,2507,2135,2135,2934,2135,2135,2780,2492,2507,2135,2135,2506,2780,2135,2135,2782,2780,2135,2782,2135,2783,2374,2514,2135,2135,2135,3007,2530,2974,2135,2135,2135,3008,2135,2135,2134,2135,2526,2531,2975,2135,2135,3042,2581,2575,2956,2135,2135,2135,2394,2135,2508,2535,2840,2844,2495,2135,2135,2136,2684,2537,2842,2846,2135,2136,2561,2581,2551,2536,2841,2845,2975,3043,2582,2843,2555,2135,3040,3044,2538,2844,2975,2135,2135,2253,2644,2672,2542,2554,2135,2135,2346,2873,2551,2555,2135,2135,2135,2381,2559,2565,2538,2553,2135,2560,2914,2576,2590,2135,2135,2135,2408,2136,2596,2624,2135,2135,2135,2409,2135,2618,2597,3008,2135,2135,2380,2956,2601,2135,2135,2135,2410,2620,2624,2135,2136,2383,2135,2135,2783,2623,2135,2135,2393,2888,2136,2621,3008,2135,2618,2618,2622,2135,2135,2405,2414,2619,2384,2624,2135,2136,2950,2135,2138,2135,2139,2135,2604,2623,2135,2140,2878,2665,2957,2622,2135,2135,2428,2762,2606,2612,2135,2135,2501,2586,2604,3038,2135,2604,3036,2387,2958,2386,2135,2141,2135,2421,2387,2385,2135,2385,2384,2384,2135,2386,2628,2384,2135,2135,2501,2596,2591,2135,2135,2135,2400,2135,2634,2135,2135,2559,2580,2575,2648,2135,2135,2135,2429,2649,2135,2135,2135,2435,2654,2658,2135,2135,2135,2436,2649,2178,2659,2135,2135,2595,2601,2669,2677,2135,2135,2616,2957,2879,2665,2691,2135,2363,2367,2900,2878,2664,2690,2975,2877,2643,2670,2974,2671,2975,2135,2135,2619,2608,2669,2673,2135,2135,2653,2177,2672,2135,2135,2135,2486,2168,2251,2255,2695,2974,2709,2135,2135,2135,2487,2169,2399,2716,2975,2135,2363,2770,2776,2640,2717,2135,2135,2729,2135,2135,2641,2718,2135,2135,2135,2505,2135,2640,2257,2974,2135,2727,2975,2135,2365,2332,2895,2957,2135,2959,2135,2365,2749,2754,2959,2958,2958,2135,2380,2793,2799,2135,2735,2738,2135,2381,2135,2135,2940,2974,2135,2744,2135,2135,2739,2519,2976,2745,2135,2135,2135,2509,2755,2135,2135,2135,2510,2772,2778,2135,2135,2740,2520,2135,2771,2777,2135,2135,2759,2750,2792,2798,2135,2135,2781,2392,2779,2135,2135,2135,2521,2135,2679,2248,2135,2135,2681,2480,2135,2135,2786,3e3,2135,2679,2683,2135,2135,2416,2135,2135,2135,2525,2135,2730,2135,2135,2135,2560,2581,2135,2805,2135,2135,2804,2962,2832,2974,2135,2382,2135,2135,2958,2135,2135,2960,2135,2829,2833,2975,2961,2965,2969,2973,2968,2972,2135,2135,2135,2641,2135,2515,2966,2970,2851,2478,2135,2135,2808,2135,2809,2135,2135,2135,2722,2852,2479,2135,2135,2815,2135,2135,2766,2853,2480,2135,2857,2479,2135,2388,2723,2135,2364,2331,2894,2858,2480,2135,2135,2850,2478,2135,2135,2135,2806,2864,2135,2399,2256,2974,2865,2135,2135,2862,2135,2135,2135,2685,2807,2865,2135,2135,2807,2863,2135,2135,2135,2686,2884,2807,2135,2809,2807,2135,2135,2807,2806,2705,2810,2808,2700,2869,2702,2702,2702,2704,2883,2135,2135,2135,2730,2884,2135,2135,2135,2731,2321,2546,2135,2135,2876,2255,2889,2322,2547,2135,2401,2135,2135,2135,2949,2367,2893,2544,2973,2906,2973,2135,2135,2877,2663,2368,2901,2907,2974,2366,2899,2905,2972,2920,2974,2135,2135,2911,2900,2920,2363,2913,2918,2465,2941,2975,2135,2135,2924,2928,2974,2945,2931,2135,2135,2135,2765,2136,2955,2135,2135,2939,2931,2380,2135,2135,2380,2135,2135,2135,2780,2507,2137,2135,2137,2135,2139,2135,2806,2810,2135,2135,2135,2992,2135,2135,2962,2966,2970,2974,2135,2135,2787,3014,2135,2521,2993,2135,2135,2135,2803,2135,2135,2135,2618,2607,2997,3001,2135,2135,2963,2967,2971,2975,2135,2135,2791,2797,2135,3009,2999,3003,2787,3001,2135,2135,2964,2968,2785,2999,3003,2135,2135,2135,2804,2785,2999,3004,2135,2135,2135,2807,2135,2135,3023,2135,2135,2135,2811,2135,2135,3027,2135,2135,2135,2837,2968,3028,2135,2135,2135,2875,2135,2784,3029,2135,2408,2457,2446,0,14,0,-2120220672,1610612736,-2074083328,-2002780160,-2111830528,1073872896,1342177280,1075807216,4096,16384,2048,8192,0,8192,0,0,0,0,1,0,0,0,2,0,-2145386496,8388608,1073741824,0,2147483648,2147483648,2097152,2097152,2097152,536870912,0,0,134217728,33554432,1536,268435456,268435456,268435456,268435456,128,256,32,0,65536,131072,524288,16777216,268435456,2147483648,1572864,1835008,640,32768,65536,262144,1048576,2097152,196608,196800,196608,196608,0,131072,131072,131072,196608,196624,196608,196624,196608,196608,128,4096,16384,16384,2048,0,4,0,0,2147483648,2097152,0,1024,32,32,0,65536,1572864,1048576,32768,32768,32768,32768,196608,196608,196608,64,64,196608,196608,131072,131072,131072,131072,268435456,268435456,64,196736,196608,196608,196608,131072,196608,196608,16384,4,4,4,2,32,32,65536,1048576,12582912,1073741824,0,0,2,8,16,96,2048,32768,0,0,131072,268435456,268435456,268435456,256,256,196608,196672,196608,196608,196608,196608,4,0,256,256,256,256,32,32,32768,32,32,32,32,32768,268435456,268435456,268435456,196608,196608,196608,196624,196608,196608,196608,16,16,16,268435456,196608,64,64,64,196608,196608,196608,196672,268435456,64,64,196608,196608,16,196608,196608,196608,268435456,64,196608,131072,262144,4194304,25165824,33554432,134217728,268435456,268435456,196608,262152,8,256,512,3072,16384,200,-1073741816,8392713,40,8392718,520,807404072,40,520,100663304,0,0,-540651761,-540651761,257589048,0,262144,0,0,3,8,256,0,4,6,4100,8388612,0,0,0,3,4,8,256,512,1024,0,2097152,0,0,-537854471,-537854471,0,100663296,0,0,1,2,0,0,0,16384,0,0,0,96,14336,0,0,0,7,8,234881024,0,0,0,8,0,0,0,0,262144,0,0,16,64,384,512,0,1,1,0,12582912,0,0,0,0,33554432,67108864,-606084144,-606084144,-606084138,0,0,28,32,768,1966080,-608174080,0,0,0,14,35056,16,64,896,24576,98304,98304,131072,262144,524288,1048576,4194304,25165824,1048576,62914560,134217728,-805306368,0,384,512,16384,65536,131072,262144,29360128,33554432,134217728,268435456,1073741824,2147483648,262144,524288,1048576,29360128,33554432,524288,1048576,16777216,33554432,134217728,268435456,1073741824,0,0,0,123856,1966080,0,64,384,16384,65536,131072,16384,65536,524288,268435456,2147483648,0,0,524288,2147483648,0,0,1,16,0,256,524288,0,0,0,25,96,128,-537854471,0,0,0,32,7404800,-545259520,0,0,0,60,0,249,64768,1048576,6291456,6291456,25165824,100663296,402653184,1073741824,96,128,1280,2048,4096,57344,6291456,57344,6291456,8388608,16777216,33554432,201326592,1342177280,2147483648,0,57344,6291456,8388608,100663296,134217728,2147483648,0,0,0,1,8,16,64,128,64,128,256,1024,131072,131072,131072,262144,524288,16777216,57344,6291456,8388608,67108864,134217728,64,256,1024,2048,4096,57344,64,256,0,24576,32768,6291456,67108864,134217728,0,1,64,256,24576,32768,4194304,32768,4194304,67108864,0,0,64,256,0,0,24576,32768,0,16384,4194304,67108864,64,16384,0,0,1,64,256,16384,4194304,67108864,0,0,0,16384,0,16384,16384,0,-470447874,-470447874,-470447874,0,0,128,0,0,8,96,2048,32768,262144,8388608,35056,1376256,-471859200,0,0,14,16,224,2048,32768,2097152,4194304,8388608,-486539264,0,96,128,2048,32768,262144,2097152,262144,2097152,8388608,33554432,536870912,1073741824,2147483648,0,1610612736,2147483648,0,0,1,524288,1048576,12582912,0,0,0,151311,264503296,2097152,8388608,33554432,1610612736,2147483648,262144,8388608,33554432,536870912,67108864,4194304,0,4194304,0,4194304,4194304,0,0,524288,8388608,536870912,1073741824,2147483648,1,4097,8388609,96,2048,32768,1073741824,2147483648,0,96,2048,2147483648,0,0,96,2048,0,0,1,12582912,0,0,0,0,1641895695,1641895695,0,0,0,249,7404800,15,87808,1835008,1639972864,0,768,5120,16384,65536,1835008,1835008,12582912,16777216,1610612736,0,3,4,8,768,4096,65536,0,0,256,512,786432,8,256,512,4096,16384,1835008,16384,1835008,12582912,1610612736,0,0,0,256,0,0,0,4,8,16,32,1,2,8,256,16384,524288,16384,524288,1048576,12582912,1610612736,0,0,0,8388608,0,0,0,524288,4194304,0,0,0,8388608,-548662288,-548662288,-548662288,0,0,256,16384,65536,520093696,-1073741824,0,0,0,16777216,0,16,32,960,4096,4980736,520093696,1073741824,0,32,896,4096,57344,1048576,6291456,8388608,16777216,100663296,134217728,268435456,2147483648,0,512,786432,4194304,33554432,134217728,268435456,0,786432,4194304,134217728,268435456,0,524288,4194304,268435456,0,0,0,0,0,4194304,4194304,-540651761,0,0,0,2,4,8,16,96,128,264503296,-805306368,0,0,0,8,256,512,19456,131072,3072,16384,131072,262144,8388608,16777216,512,1024,2048,16384,131072,262144,131072,262144,8388608,33554432,201326592,268435456,0,3,4,256,1024,2048,57344,16384,131072,8388608,33554432,134217728,268435456,0,3,256,1024,16384,131072,33554432,134217728,1073741824,2147483648,0,0,256,524288,2147483648,0,3,256,33554432,134217728,1073741824,0,1,2,33554432,1,2,134217728,1073741824,0,1,2,134217728,0,0,0,64,0,0,0,16,32,896,4096,786432,4194304,16777216,33554432,201326592,268435456,1073741824,2147483648,0,0,0,15,0,4980736,4980736,4980736,70460,70460,3478332,0,0,1008,4984832,520093696,60,4864,65536,0,0,0,12,16,32,256,512,4096,65536,0,0,0,67108864,0,0,0,12,0,256,512,65536,0,0,1024,512,131072,131072,4,16,32,65536,0,4,16,32,0,0,0,4,16,0,0,16384,67108864,0,0,1,24,96,128,256,1024],r.TOKEN=[\"(0)\",\"JSONChar\",\"JSONCharRef\",\"JSONPredefinedCharRef\",\"ModuleDecl\",\"Annotation\",\"OptionDecl\",\"Operator\",\"Variable\",\"Tag\",\"EndTag\",\"PragmaContents\",\"DirCommentContents\",\"DirPIContents\",\"CDataSectionContents\",\"AttrTest\",\"Wildcard\",\"EQName\",\"IntegerLiteral\",\"DecimalLiteral\",\"DoubleLiteral\",\"PredefinedEntityRef\",\"'\\\"\\\"'\",\"EscapeApos\",\"AposChar\",\"ElementContentChar\",\"QuotAttrContentChar\",\"AposAttrContentChar\",\"NCName\",\"QName\",\"S\",\"CharRef\",\"CommentContents\",\"DocTag\",\"DocCommentContents\",\"EOF\",\"'!'\",\"'\\\"'\",\"'#'\",\"'#)'\",\"'$$'\",\"''''\",\"'('\",\"'(#'\",\"'(:'\",\"'(:~'\",\"')'\",\"'*'\",\"'*'\",\"','\",\"'-->'\",\"'.'\",\"'/'\",\"'/>'\",\"':'\",\"':)'\",\"';'\",\"'<!--'\",\"'<![CDATA['\",\"'<?'\",\"'='\",\"'>'\",\"'?'\",\"'?>'\",\"'NaN'\",\"'['\",\"']'\",\"']]>'\",\"'after'\",\"'all'\",\"'allowing'\",\"'ancestor'\",\"'ancestor-or-self'\",\"'and'\",\"'any'\",\"'append'\",\"'array'\",\"'as'\",\"'ascending'\",\"'at'\",\"'attribute'\",\"'base-uri'\",\"'before'\",\"'boundary-space'\",\"'break'\",\"'by'\",\"'case'\",\"'cast'\",\"'castable'\",\"'catch'\",\"'check'\",\"'child'\",\"'collation'\",\"'collection'\",\"'comment'\",\"'constraint'\",\"'construction'\",\"'contains'\",\"'content'\",\"'context'\",\"'continue'\",\"'copy'\",\"'copy-namespaces'\",\"'count'\",\"'decimal-format'\",\"'decimal-separator'\",\"'declare'\",\"'default'\",\"'delete'\",\"'descendant'\",\"'descendant-or-self'\",\"'descending'\",\"'diacritics'\",\"'different'\",\"'digit'\",\"'distance'\",\"'div'\",\"'document'\",\"'document-node'\",\"'element'\",\"'else'\",\"'empty'\",\"'empty-sequence'\",\"'encoding'\",\"'end'\",\"'entire'\",\"'eq'\",\"'every'\",\"'exactly'\",\"'except'\",\"'exit'\",\"'external'\",\"'first'\",\"'following'\",\"'following-sibling'\",\"'for'\",\"'foreach'\",\"'foreign'\",\"'from'\",\"'ft-option'\",\"'ftand'\",\"'ftnot'\",\"'ftor'\",\"'function'\",\"'ge'\",\"'greatest'\",\"'group'\",\"'grouping-separator'\",\"'gt'\",\"'idiv'\",\"'if'\",\"'import'\",\"'in'\",\"'index'\",\"'infinity'\",\"'inherit'\",\"'insensitive'\",\"'insert'\",\"'instance'\",\"'integrity'\",\"'intersect'\",\"'into'\",\"'is'\",\"'item'\",\"'json'\",\"'json-item'\",\"'key'\",\"'language'\",\"'last'\",\"'lax'\",\"'le'\",\"'least'\",\"'let'\",\"'levels'\",\"'loop'\",\"'lowercase'\",\"'lt'\",\"'minus-sign'\",\"'mod'\",\"'modify'\",\"'module'\",\"'most'\",\"'namespace'\",\"'namespace-node'\",\"'ne'\",\"'next'\",\"'no'\",\"'no-inherit'\",\"'no-preserve'\",\"'node'\",\"'nodes'\",\"'not'\",\"'object'\",\"'occurs'\",\"'of'\",\"'on'\",\"'only'\",\"'option'\",\"'or'\",\"'order'\",\"'ordered'\",\"'ordering'\",\"'paragraph'\",\"'paragraphs'\",\"'parent'\",\"'pattern-separator'\",\"'per-mille'\",\"'percent'\",\"'phrase'\",\"'position'\",\"'preceding'\",\"'preceding-sibling'\",\"'preserve'\",\"'previous'\",\"'processing-instruction'\",\"'relationship'\",\"'rename'\",\"'replace'\",\"'return'\",\"'returning'\",\"'revalidation'\",\"'same'\",\"'satisfies'\",\"'schema'\",\"'schema-attribute'\",\"'schema-element'\",\"'score'\",\"'self'\",\"'sensitive'\",\"'sentence'\",\"'sentences'\",\"'skip'\",\"'sliding'\",\"'some'\",\"'stable'\",\"'start'\",\"'stemming'\",\"'stop'\",\"'strict'\",\"'strip'\",\"'structured-item'\",\"'switch'\",\"'text'\",\"'then'\",\"'thesaurus'\",\"'times'\",\"'to'\",\"'treat'\",\"'try'\",\"'tumbling'\",\"'type'\",\"'typeswitch'\",\"'union'\",\"'unique'\",\"'unordered'\",\"'updating'\",\"'uppercase'\",\"'using'\",\"'validate'\",\"'value'\",\"'variable'\",\"'version'\",\"'weight'\",\"'when'\",\"'where'\",\"'while'\",\"'wildcards'\",\"'window'\",\"'with'\",\"'without'\",\"'word'\",\"'words'\",\"'xquery'\",\"'zero-digit'\",\"'{'\",\"'{{'\",\"'|'\",\"'}'\",\"'}}'\"]},{}],2:[function(e,t,n){\"use strict\";var r=e(\"./JSONiqTokenizer\").JSONiqTokenizer,i=e(\"./lexer\").Lexer,s=\"NaN|after|allowing|ancestor|ancestor-or-self|and|append|array|as|ascending|at|attribute|base-uri|before|boundary-space|break|by|case|cast|castable|catch|child|collation|comment|constraint|construction|contains|context|continue|copy|copy-namespaces|count|decimal-format|decimal-separator|declare|default|delete|descendant|descendant-or-self|descending|digit|div|document|document-node|element|else|empty|empty-sequence|encoding|end|eq|every|except|exit|external|false|first|following|following-sibling|for|from|ft-option|function|ge|greatest|group|grouping-separator|gt|idiv|if|import|in|index|infinity|insert|instance|integrity|intersect|into|is|item|json|json-item|jsoniq|last|lax|le|least|let|loop|lt|minus-sign|mod|modify|module|namespace|namespace-node|ne|next|node|nodes|not|null|object|of|only|option|or|order|ordered|ordering|paragraphs|parent|pattern-separator|per-mille|percent|preceding|preceding-sibling|previous|processing-instruction|rename|replace|return|returning|revalidation|satisfies|schema|schema-attribute|schema-element|score|select|self|sentences|sliding|some|stable|start|strict|switch|text|then|times|to|treat|true|try|tumbling|type|typeswitch|union|unordered|updating|validate|value|variable|version|when|where|while|window|with|words|xquery|zero-digit\".split(\"|\"),o=s.map(function(e){return{name:\"'\"+e+\"'\",token:\"keyword\"}}),u=s.map(function(e){return{name:\"'\"+e+\"'\",token:\"text\",next:function(e){e.pop()}}}),a=\"constant.language\",f=\"constant\",l=\"comment\",c=\"xml-pe\",h=\"constant.buildin\",p=function(e){return\"'\"+e+\"'\"},d={start:[{name:p(\"(#\"),token:h,next:function(e){e.push(\"Pragma\")}},{name:p(\"(:\"),token:\"comment\",next:function(e){e.push(\"Comment\")}},{name:p(\"(:~\"),token:\"comment.doc\",next:function(e){e.push(\"CommentDoc\")}},{name:p(\"<!--\"),token:l,next:function(e){e.push(\"XMLComment\")}},{name:p(\"<?\"),token:c,next:function(e){e.push(\"PI\")}},{name:p(\"''\"),token:\"string\",next:function(e){e.push(\"AposString\")}},{name:p('\"'),token:\"string\",next:function(e){e.push(\"QuotString\")}},{name:\"Annotation\",token:\"support.function\"},{name:\"ModuleDecl\",token:\"keyword\",next:function(e){e.push(\"Prefix\")}},{name:\"OptionDecl\",token:\"keyword\",next:function(e){e.push(\"_EQName\")}},{name:\"AttrTest\",token:\"support.type\"},{name:\"Variable\",token:\"variable\"},{name:p(\"<![CDATA[\"),token:a,next:function(e){e.push(\"CData\")}},{name:\"IntegerLiteral\",token:f},{name:\"DecimalLiteral\",token:f},{name:\"DoubleLiteral\",token:f},{name:\"Operator\",token:\"keyword.operator\"},{name:\"EQName\",token:function(e){return s.indexOf(e)!==-1?\"keyword\":\"support.function\"}},{name:p(\"(\"),token:\"lparen\"},{name:p(\")\"),token:\"rparen\"},{name:\"Tag\",token:\"meta.tag\",next:function(e){e.push(\"StartTag\")}},{name:p(\"}\"),token:\"text\",next:function(e){e.length>1&&e.pop()}},{name:p(\"{\"),token:\"text\",next:function(e){e.push(\"start\")}}].concat(o),_EQName:[{name:\"EQName\",token:\"text\",next:function(e){e.pop()}}].concat(u),Prefix:[{name:\"NCName\",token:\"text\",next:function(e){e.pop()}}].concat(u),StartTag:[{name:p(\">\"),token:\"meta.tag\",next:function(e){e.push(\"TagContent\")}},{name:\"QName\",token:\"entity.other.attribute-name\"},{name:p(\"=\"),token:\"text\"},{name:p(\"''\"),token:\"string\",next:function(e){e.push(\"AposAttr\")}},{name:p('\"'),token:\"string\",next:function(e){e.push(\"QuotAttr\")}},{name:p(\"/>\"),token:\"meta.tag.r\",next:function(e){e.pop()}}],TagContent:[{name:\"ElementContentChar\",token:\"text\"},{name:p(\"<![CDATA[\"),token:a,next:function(e){e.push(\"CData\")}},{name:p(\"<!--\"),token:l,next:function(e){e.push(\"XMLComment\")}},{name:\"Tag\",token:\"meta.tag\",next:function(e){e.push(\"StartTag\")}},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:p(\"{{\"),token:\"text\"},{name:p(\"}}\"),token:\"text\"},{name:p(\"{\"),token:\"text\",next:function(e){e.push(\"start\")}},{name:\"EndTag\",token:\"meta.tag\",next:function(e){e.pop(),e.pop()}}],AposAttr:[{name:p(\"''\"),token:\"string\",next:function(e){e.pop()}},{name:\"EscapeApos\",token:\"constant.language.escape\"},{name:\"AposAttrContentChar\",token:\"string\"},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:p(\"{{\"),token:\"string\"},{name:p(\"}}\"),token:\"string\"},{name:p(\"{\"),token:\"text\",next:function(e){e.push(\"start\")}}],QuotAttr:[{name:p('\"'),token:\"string\",next:function(e){e.pop()}},{name:\"EscapeQuot\",token:\"constant.language.escape\"},{name:\"QuotAttrContentChar\",token:\"string\"},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:p(\"{{\"),token:\"string\"},{name:p(\"}}\"),token:\"string\"},{name:p(\"{\"),token:\"text\",next:function(e){e.push(\"start\")}}],Pragma:[{name:\"PragmaContents\",token:h},{name:p(\"#\"),token:h},{name:p(\"#)\"),token:h,next:function(e){e.pop()}}],Comment:[{name:\"CommentContents\",token:\"comment\"},{name:p(\"(:\"),token:\"comment\",next:function(e){e.push(\"Comment\")}},{name:p(\":)\"),token:\"comment\",next:function(e){e.pop()}}],CommentDoc:[{name:\"DocCommentContents\",token:\"comment.doc\"},{name:\"DocTag\",token:\"comment.doc.tag\"},{name:p(\"(:\"),token:\"comment.doc\",next:function(e){e.push(\"CommentDoc\")}},{name:p(\":)\"),token:\"comment.doc\",next:function(e){e.pop()}}],XMLComment:[{name:\"DirCommentContents\",token:l},{name:p(\"-->\"),token:l,next:function(e){e.pop()}}],CData:[{name:\"CDataSectionContents\",token:a},{name:p(\"]]>\"),token:a,next:function(e){e.pop()}}],PI:[{name:\"DirPIContents\",token:c},{name:p(\"?\"),token:c},{name:p(\"?>\"),token:c,next:function(e){e.pop()}}],AposString:[{name:p(\"''\"),token:\"string\",next:function(e){e.pop()}},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:\"EscapeApos\",token:\"constant.language.escape\"},{name:\"AposChar\",token:\"string\"}],QuotString:[{name:p('\"'),token:\"string\",next:function(e){e.pop()}},{name:\"JSONPredefinedCharRef\",token:\"constant.language.escape\"},{name:\"JSONCharRef\",token:\"constant.language.escape\"},{name:\"JSONChar\",token:\"string\"}]};n.JSONiqLexer=function(){return new i(r,d)}},{\"./JSONiqTokenizer\":1,\"./lexer\":3}],3:[function(e,t,n){\"use strict\";var r=function(e){var t=e;this.tokens=[],this.reset=function(){t=t,this.tokens=[]},this.startNonterminal=function(){},this.endNonterminal=function(){},this.terminal=function(e,n,r){this.tokens.push({name:e,value:t.substring(n,r)})},this.whitespace=function(e,n){this.tokens.push({name:\"WS\",value:t.substring(e,n)})}};n.Lexer=function(e,t){this.tokens=[],this.getLineTokens=function(n,i){i=i===\"start\"||!i?'[\"start\"]':i;var s=JSON.parse(i),o=new r(n),u=new e(n,o),a=[];for(;;){var f=s[s.length-1];try{o.tokens=[],u[\"parse_\"+f]();var l=null;o.tokens.length>1&&o.tokens[0].name===\"WS\"&&(a.push({type:\"text\",value:o.tokens[0].value}),o.tokens.splice(0,1));var c=o.tokens[0],h=t[f];for(var p=0;p<h.length;p++){var d=t[f][p];if(typeof d.name==\"function\"&&d.name(c)||d.name===c.name){l=d;break}}if(c.name===\"EOF\")break;if(c.value===\"\")throw\"Encountered empty string lexical rule.\";a.push({type:l===null?\"text\":typeof l.token==\"function\"?l.token(c.value):l.token,value:c.value}),l&&l.next&&l.next(s)}catch(v){if(v instanceof u.ParseException){var m=0;for(var g=0;g<a.length;g++)m+=a[g].value.length;return a.push({type:\"text\",value:n.substring(m)}),{tokens:a,state:JSON.stringify([\"start\"])}}throw v}}return{tokens:a,state:JSON.stringify(s)}}}},{}]},{},[2])(2)}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/behaviour/xquery\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/mode/behaviour/xml\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function a(e,t){var n=!0,r=e.type.split(\".\"),i=t.split(\".\");return i.forEach(function(e){if(r.indexOf(e)==-1)return n=!1,!1}),n}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../behaviour/xml\").XmlBehaviour,u=e(\"../../token_iterator\").TokenIterator,f=function(){this.inherit(s,[\"braces\",\"parens\",\"string_dquotes\"]),this.inherit(o),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var s=n.getCursorPosition(),o=new u(r,s.row,s.column),f=o.getCurrentToken(),l=!1,e=JSON.parse(e).pop();if(f&&f.value===\">\"||e!==\"StartTag\")return;if(!f||!a(f,\"meta.tag\")&&(!a(f,\"text\")||!f.value.match(\"/\"))){do f=o.stepBackward();while(f&&(a(f,\"string\")||a(f,\"keyword.operator\")||a(f,\"entity.attribute-name\")||a(f,\"text\")))}else l=!0;var c=o.stepBackward();if(!f||!a(f,\"meta.tag\")||c!==null&&c.value.match(\"/\"))return;var h=f.value.substring(1);if(l)var h=h.substring(0,s.column-f.start);return{text:\"></\"+h+\">\",selection:[1,1]}}})};r.inherits(f,i),t.XQueryBehaviour=f}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/jsoniq\",[\"require\",\"exports\",\"module\",\"ace/worker/worker_client\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/xquery/jsoniq_lexer\",\"ace/range\",\"ace/mode/behaviour/xquery\",\"ace/mode/folding/cstyle\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"../worker/worker_client\").WorkerClient,i=e(\"../lib/oop\"),s=e(\"./text\").Mode,o=e(\"./text_highlight_rules\").TextHighlightRules,u=e(\"./xquery/jsoniq_lexer\").JSONiqLexer,a=e(\"../range\").Range,f=e(\"./behaviour/xquery\").XQueryBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=e(\"../anchor\").Anchor,h=function(){this.$tokenizer=new u,this.$behaviour=new f,this.foldingRules=new l,this.$highlightRules=new o};i.inherits(h,s),function(){this.completer={getCompletions:function(e,t,n,r,i){if(!t.$worker)return i();t.$worker.emit(\"complete\",{data:{pos:n,prefix:r}}),t.$worker.on(\"complete\",function(e){i(null,e.data)})}},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=t.match(/\\s*(?:then|else|return|[{\\(]|<\\w+>)\\s*$/);return i&&(r+=n),r},this.checkOutdent=function(e,t,n){return/^\\s+$/.test(t)?/^\\s*[\\}\\)]/.test(n):!1},this.autoOutdent=function(e,t,n){var r=t.getLine(n),i=r.match(/^(\\s*[\\}\\)])/);if(!i)return 0;var s=i[1].length,o=t.findMatchingBracket({row:n,column:s});if(!o||o.row==n)return 0;var u=this.$getIndent(t.getLine(o.row));t.replace(new a(n,0,n,s-1),u)},this.toggleCommentLines=function(e,t,n,r){var i,s,o=!0,u=/^\\s*\\(:(.*):\\)/;for(i=n;i<=r;i++)if(!u.test(t.getLine(i))){o=!1;break}var f=new a(0,0,0,0);for(i=n;i<=r;i++)s=t.getLine(i),f.start.row=i,f.end.row=i,f.end.column=s.length,t.replace(f,o?s.match(u)[1]:\"(:\"+s+\":)\")},this.createWorker=function(e){var t=new r([\"ace\"],\"ace/mode/xquery_worker\",\"XQueryWorker\"),n=this;return t.attachToDocument(e.getDocument()),t.on(\"ok\",function(t){e.clearAnnotations()}),t.on(\"markers\",function(t){e.clearAnnotations(),n.addMarkers(t.data,e)}),t},this.removeMarkers=function(e){var t=e.getMarkers(!1);for(var n in t)t[n].clazz.indexOf(\"language_highlight_\")===0&&e.removeMarker(n);for(var r=0;r<e.markerAnchors.length;r++)e.markerAnchors[r].detach();e.markerAnchors=[]},this.addMarkers=function(e,t){var n=this;t.markerAnchors||(t.markerAnchors=[]),this.removeMarkers(t),t.languageAnnos=[],e.forEach(function(e){function u(i){r&&t.removeMarker(r),o.row=n.row;if(e.pos.sc!==undefined&&e.pos.ec!==undefined){var s=new a(e.pos.sl,e.pos.sc,e.pos.el,e.pos.ec);r=t.addMarker(s,\"language_highlight_\"+(e.type?e.type:\"default\"))}i&&t.setAnnotations(t.languageAnnos)}var n=new c(t.getDocument(),e.pos.sl,e.pos.sc||0);t.markerAnchors.push(n);var r,i=e.pos.ec-e.pos.sc,s=e.pos.el-e.pos.sl,o={guttertext:e.message,type:e.level||\"warning\",text:e.message};u(),n.on(\"change\",function(){u(!0)}),e.message&&t.languageAnnos.push(o)}),t.setAnnotations(t.languageAnnos)},this.$id=\"ace/mode/jsoniq\"}.call(h.prototype),t.Mode=h})"
  },
  {
    "path": "lib/src-min-noconflict/mode-jsp.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/java_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while\",t=\"null|Infinity|NaN|undefined\",n=\"AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object\",r=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"constant.language\":t,\"support.function\":n},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.[\\d_]*)?(?:[eE][+-]?[\\d_]+)?)?[LlSsDdFfYy]?\\b/},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.JavaHighlightRules=o}),ace.define(\"ace/mode/jsp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/java_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=e(\"./java_highlight_rules\").JavaHighlightRules,o=function(){i.call(this);var e=\"request|response|out|session|application|config|pageContext|page|Exception\",t=\"page|include|taglib\",n=[{token:\"comment\",regex:\"<%--\",push:\"jsp-dcomment\"},{token:\"meta.tag\",regex:\"<%@?|<%=?|<%!?|<jsp:[^>]+>\",push:\"jsp-start\"}],r=[{token:\"meta.tag\",regex:\"%>|<\\\\/jsp:[^>]+>\",next:\"pop\"},{token:\"variable.language\",regex:e},{token:\"keyword\",regex:t}];for(var o in this.$rules)this.$rules[o].unshift.apply(this.$rules[o],n);this.embedRules(s,\"jsp-\",r,[\"start\"]),this.addRules({\"jsp-dcomment\":[{token:\"comment\",regex:\".*?--%>\",next:\"pop\"}]}),this.normalizeRules()};r.inherits(o,i),t.JspHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/jsp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jsp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./jsp_highlight_rules\").JspHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.$id=\"ace/mode/jsp\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict/mode-jsx.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/jsx_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){var e=i.arrayToMap(\"break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|if|throw|delete|in|try|class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|number|int|string|boolean|variant|log|assert\".split(\"|\")),t=i.arrayToMap(\"null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined\".split(\"|\")),n=i.arrayToMap(\"debugger|with|const|export|let|private|public|yield|protected|extern|native|as|operator|__fake__|__readonly__\".split(\"|\")),r=\"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\";this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},s.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:[\"storage.type\",\"text\",\"entity.name.function\"],regex:\"(function)(\\\\s+)(\"+r+\")\"},{token:function(r){return r==\"this\"?\"variable.language\":r==\"function\"?\"storage.type\":e.hasOwnProperty(r)||n.hasOwnProperty(r)?\"keyword\":t.hasOwnProperty(r)?\"constant.language\":/^_?[A-Z][a-zA-Z0-9_]*$/.test(r)?\"language.support.class\":\"identifier\"},regex:r},{token:\"keyword.operator\",regex:\"!|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({<]\"},{token:\"paren.rparen\",regex:\"[\\\\])}>]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.embedRules(s,\"doc-\",[s.getEndRule(\"start\")])};r.inherits(u,o),t.JsxHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/jsx\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jsx_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";function f(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a}var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./jsx_highlight_rules\").JsxHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode;r.inherits(f,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[]\\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/jsx\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict/mode-julia.js",
    "content": "ace.define(\"ace/mode/julia_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{include:\"#function_decl\"},{include:\"#function_call\"},{include:\"#type_decl\"},{include:\"#keyword\"},{include:\"#operator\"},{include:\"#number\"},{include:\"#string\"},{include:\"#comment\"}],\"#bracket\":[{token:\"keyword.bracket.julia\",regex:\"\\\\(|\\\\)|\\\\[|\\\\]|\\\\{|\\\\}|,\"}],\"#comment\":[{token:[\"punctuation.definition.comment.julia\",\"comment.line.number-sign.julia\"],regex:\"(#)(?!\\\\{)(.*$)\"}],\"#function_call\":[{token:[\"support.function.julia\",\"text\"],regex:\"([a-zA-Z0-9_]+!?)([\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]*\\\\()\"}],\"#function_decl\":[{token:[\"keyword.other.julia\",\"meta.function.julia\",\"entity.name.function.julia\",\"meta.function.julia\",\"text\"],regex:\"(function|macro)(\\\\s*)([a-zA-Z0-9_\\\\{]+!?)([\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]*)([(\\\\\\\\{])\"}],\"#keyword\":[{token:\"keyword.other.julia\",regex:\"\\\\b(?:function|type|immutable|macro|quote|abstract|bitstype|typealias|module|baremodule|new)\\\\b\"},{token:\"keyword.control.julia\",regex:\"\\\\b(?:if|else|elseif|while|for|in|begin|let|end|do|try|catch|finally|return|break|continue)\\\\b\"},{token:\"storage.modifier.variable.julia\",regex:\"\\\\b(?:global|local|const|export|import|importall|using)\\\\b\"},{token:\"variable.macro.julia\",regex:\"@[\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]+\\\\b\"}],\"#number\":[{token:\"constant.numeric.julia\",regex:\"\\\\b0(?:x|X)[0-9a-fA-F]*|(?:\\\\b[0-9]+\\\\.?[0-9]*|\\\\.[0-9]+)(?:(?:e|E)(?:\\\\+|-)?[0-9]*)?(?:im)?|\\\\bInf(?:32)?\\\\b|\\\\bNaN(?:32)?\\\\b|\\\\btrue\\\\b|\\\\bfalse\\\\b\"}],\"#operator\":[{token:\"keyword.operator.update.julia\",regex:\"=|:=|\\\\+=|-=|\\\\*=|/=|//=|\\\\.//=|\\\\.\\\\*=|\\\\\\\\=|\\\\.\\\\\\\\=|^=|\\\\.^=|%=|\\\\|=|&=|\\\\$=|<<=|>>=\"},{token:\"keyword.operator.ternary.julia\",regex:\"\\\\?|:\"},{token:\"keyword.operator.boolean.julia\",regex:\"\\\\|\\\\||&&|!\"},{token:\"keyword.operator.arrow.julia\",regex:\"->|<-|-->\"},{token:\"keyword.operator.relation.julia\",regex:\">|<|>=|<=|==|!=|\\\\.>|\\\\.<|\\\\.>=|\\\\.>=|\\\\.==|\\\\.!=|\\\\.=|\\\\.!|<:|:>\"},{token:\"keyword.operator.range.julia\",regex:\":\"},{token:\"keyword.operator.shift.julia\",regex:\"<<|>>\"},{token:\"keyword.operator.bitwise.julia\",regex:\"\\\\||\\\\&|~\"},{token:\"keyword.operator.arithmetic.julia\",regex:\"\\\\+|-|\\\\*|\\\\.\\\\*|/|\\\\./|//|\\\\.//|%|\\\\.%|\\\\\\\\|\\\\.\\\\\\\\|\\\\^|\\\\.\\\\^\"},{token:\"keyword.operator.isa.julia\",regex:\"::\"},{token:\"keyword.operator.dots.julia\",regex:\"\\\\.(?=[a-zA-Z])|\\\\.\\\\.+\"},{token:\"keyword.operator.interpolation.julia\",regex:\"\\\\$#?(?=.)\"},{token:[\"variable\",\"keyword.operator.transposed-variable.julia\"],regex:\"([\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]+)((?:'|\\\\.')*\\\\.?')\"},{token:\"text\",regex:\"\\\\[|\\\\(\"},{token:[\"text\",\"keyword.operator.transposed-matrix.julia\"],regex:\"([\\\\]\\\\)])((?:'|\\\\.')*\\\\.?')\"}],\"#string\":[{token:\"punctuation.definition.string.begin.julia\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.julia\",regex:\"'\",next:\"pop\"},{include:\"#string_escaped_char\"},{defaultToken:\"string.quoted.single.julia\"}]},{token:\"punctuation.definition.string.begin.julia\",regex:'\"',push:[{token:\"punctuation.definition.string.end.julia\",regex:'\"',next:\"pop\"},{include:\"#string_escaped_char\"},{defaultToken:\"string.quoted.double.julia\"}]},{token:\"punctuation.definition.string.begin.julia\",regex:'\\\\b[\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]+\"',push:[{token:\"punctuation.definition.string.end.julia\",regex:'\"[\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]*',next:\"pop\"},{include:\"#string_custom_escaped_char\"},{defaultToken:\"string.quoted.custom-double.julia\"}]},{token:\"punctuation.definition.string.begin.julia\",regex:\"`\",push:[{token:\"punctuation.definition.string.end.julia\",regex:\"`\",next:\"pop\"},{include:\"#string_escaped_char\"},{defaultToken:\"string.quoted.backtick.julia\"}]}],\"#string_custom_escaped_char\":[{token:\"constant.character.escape.julia\",regex:'\\\\\\\\\"'}],\"#string_escaped_char\":[{token:\"constant.character.escape.julia\",regex:\"\\\\\\\\(?:\\\\\\\\|[0-3]\\\\d{,2}|[4-7]\\\\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8}|.)\"}],\"#type_decl\":[{token:[\"keyword.control.type.julia\",\"meta.type.julia\",\"entity.name.type.julia\",\"entity.other.inherited-class.julia\",\"punctuation.separator.inheritance.julia\",\"entity.other.inherited-class.julia\"],regex:\"(type|immutable)(\\\\s+)([a-zA-Z0-9_]+)(?:(\\\\s*)(<:)(\\\\s*[.a-zA-Z0-9_:]+))?\"},{token:[\"other.typed-variable.julia\",\"support.type.julia\"],regex:\"([a-zA-Z0-9_]+)(::[a-zA-Z0-9_{}]+)\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"jl\"],firstLineMatch:\"^#!.*\\\\bjulia\\\\s*$\",foldingStartMarker:\"^\\\\s*(?:if|while|for|begin|function|macro|module|baremodule|type|immutable|let)\\\\b(?!.*\\\\bend\\\\b).*$\",foldingStopMarker:\"^\\\\s*(?:end)\\\\b.*$\",name:\"Julia\",scopeName:\"source.julia\"},r.inherits(s,i),t.JuliaHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/julia\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/julia_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./julia_highlight_rules\").JuliaHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"#\",this.blockComment=\"\",this.$id=\"ace/mode/julia\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-kotlin.js",
    "content": "ace.define(\"ace/mode/kotlin_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{include:\"#comments\"},{token:[\"text\",\"keyword.other.kotlin\",\"text\",\"entity.name.package.kotlin\",\"text\"],regex:/^(\\s*)(package)\\b(?:(\\s*)([^ ;$]+)(\\s*))?/},{include:\"#imports\"},{include:\"#statements\"}],\"#classes\":[{token:\"text\",regex:/(?=\\s*(?:companion|class|object|interface))/,push:[{token:\"text\",regex:/}|(?=$)/,next:\"pop\"},{token:[\"keyword.other.kotlin\",\"text\"],regex:/\\b((?:companion\\s*)?)(class|object|interface)\\b/,push:[{token:\"text\",regex:/(?=<|{|\\(|:)/,next:\"pop\"},{token:\"keyword.other.kotlin\",regex:/\\bobject\\b/},{token:\"entity.name.type.class.kotlin\",regex:/\\w+/}]},{token:\"text\",regex:/</,push:[{token:\"text\",regex:/>/,next:\"pop\"},{include:\"#generics\"}]},{token:\"text\",regex:/\\(/,push:[{token:\"text\",regex:/\\)/,next:\"pop\"},{include:\"#parameters\"}]},{token:\"keyword.operator.declaration.kotlin\",regex:/:/,push:[{token:\"text\",regex:/(?={|$)/,next:\"pop\"},{token:\"entity.other.inherited-class.kotlin\",regex:/\\w+/},{token:\"text\",regex:/\\(/,push:[{token:\"text\",regex:/\\)/,next:\"pop\"},{include:\"#expressions\"}]}]},{token:\"text\",regex:/\\{/,push:[{token:\"text\",regex:/\\}/,next:\"pop\"},{include:\"#statements\"}]}]}],\"#comments\":[{token:\"punctuation.definition.comment.kotlin\",regex:/\\/\\*/,push:[{token:\"punctuation.definition.comment.kotlin\",regex:/\\*\\//,next:\"pop\"},{defaultToken:\"comment.block.kotlin\"}]},{token:[\"text\",\"punctuation.definition.comment.kotlin\",\"comment.line.double-slash.kotlin\"],regex:/(\\s*)(\\/\\/)(.*$)/}],\"#constants\":[{token:\"constant.language.kotlin\",regex:/\\b(?:true|false|null|this|super)\\b/},{token:\"constant.numeric.kotlin\",regex:/\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\.?[0-9]*|\\.[0-9]+)(?:(?:e|E)(?:\\+|-)?[0-9]+)?)(?:[LlFfUuDd]|UL|ul)?\\b/},{token:\"constant.other.kotlin\",regex:/\\b[A-Z][A-Z0-9_]+\\b/}],\"#expressions\":[{token:\"text\",regex:/\\(/,push:[{token:\"text\",regex:/\\)/,next:\"pop\"},{include:\"#expressions\"}]},{include:\"#types\"},{include:\"#strings\"},{include:\"#constants\"},{include:\"#comments\"},{include:\"#keywords\"}],\"#functions\":[{token:\"text\",regex:/(?=\\s*fun)/,push:[{token:\"text\",regex:/}|(?=$)/,next:\"pop\"},{token:\"keyword.other.kotlin\",regex:/\\bfun\\b/,push:[{token:\"text\",regex:/(?=\\()/,next:\"pop\"},{token:\"text\",regex:/</,push:[{token:\"text\",regex:/>/,next:\"pop\"},{include:\"#generics\"}]},{token:[\"text\",\"entity.name.function.kotlin\"],regex:/((?:[\\.<\\?>\\w]+\\.)?)(\\w+)/}]},{token:\"text\",regex:/\\(/,push:[{token:\"text\",regex:/\\)/,next:\"pop\"},{include:\"#parameters\"}]},{token:\"keyword.operator.declaration.kotlin\",regex:/:/,push:[{token:\"text\",regex:/(?={|=|$)/,next:\"pop\"},{include:\"#types\"}]},{token:\"text\",regex:/\\{/,push:[{token:\"text\",regex:/(?=\\})/,next:\"pop\"},{include:\"#statements\"}]},{token:\"keyword.operator.assignment.kotlin\",regex:/=/,push:[{token:\"text\",regex:/(?=$)/,next:\"pop\"},{include:\"#expressions\"}]}]}],\"#generics\":[{token:\"keyword.operator.declaration.kotlin\",regex:/:/,push:[{token:\"text\",regex:/(?=,|>)/,next:\"pop\"},{include:\"#types\"}]},{include:\"#keywords\"},{token:\"storage.type.generic.kotlin\",regex:/\\w+/}],\"#getters-and-setters\":[{token:[\"entity.name.function.kotlin\",\"text\"],regex:/\\b(get)\\b(\\s*\\(\\s*\\))/,push:[{token:\"text\",regex:/\\}|(?=\\bset\\b)|$/,next:\"pop\"},{token:\"keyword.operator.assignment.kotlin\",regex:/=/,push:[{token:\"text\",regex:/(?=$|\\bset\\b)/,next:\"pop\"},{include:\"#expressions\"}]},{token:\"text\",regex:/\\{/,push:[{token:\"text\",regex:/\\}/,next:\"pop\"},{include:\"#expressions\"}]}]},{token:[\"entity.name.function.kotlin\",\"text\"],regex:/\\b(set)\\b(\\s*)(?=\\()/,push:[{token:\"text\",regex:/\\}|(?=\\bget\\b)|$/,next:\"pop\"},{token:\"text\",regex:/\\(/,push:[{token:\"text\",regex:/\\)/,next:\"pop\"},{include:\"#parameters\"}]},{token:\"keyword.operator.assignment.kotlin\",regex:/=/,push:[{token:\"text\",regex:/(?=$|\\bset\\b)/,next:\"pop\"},{include:\"#expressions\"}]},{token:\"text\",regex:/\\{/,push:[{token:\"text\",regex:/\\}/,next:\"pop\"},{include:\"#expressions\"}]}]}],\"#imports\":[{token:[\"text\",\"keyword.other.kotlin\",\"text\",\"keyword.other.kotlin\"],regex:/^(\\s*)(import)(\\s+[^ $]+\\s+)((?:as)?)/}],\"#keywords\":[{token:\"storage.modifier.kotlin\",regex:/\\b(?:var|val|public|private|protected|abstract|final|enum|open|attribute|annotation|override|inline|var|val|vararg|lazy|in|out|internal|data|tailrec|operator|infix|const|yield|typealias|typeof)\\b/},{token:\"keyword.control.catch-exception.kotlin\",regex:/\\b(?:try|catch|finally|throw)\\b/},{token:\"keyword.control.kotlin\",regex:/\\b(?:if|else|while|for|do|return|when|where|break|continue)\\b/},{token:\"keyword.operator.kotlin\",regex:/\\b(?:in|is|as|assert)\\b/},{token:\"keyword.operator.comparison.kotlin\",regex:/==|!=|===|!==|<=|>=|<|>/},{token:\"keyword.operator.assignment.kotlin\",regex:/=/},{token:\"keyword.operator.declaration.kotlin\",regex:/:/},{token:\"keyword.operator.dot.kotlin\",regex:/\\./},{token:\"keyword.operator.increment-decrement.kotlin\",regex:/\\-\\-|\\+\\+/},{token:\"keyword.operator.arithmetic.kotlin\",regex:/\\-|\\+|\\*|\\/|%/},{token:\"keyword.operator.arithmetic.assign.kotlin\",regex:/\\+=|\\-=|\\*=|\\/=/},{token:\"keyword.operator.logical.kotlin\",regex:/!|&&|\\|\\|/},{token:\"keyword.operator.range.kotlin\",regex:/\\.\\./},{token:\"punctuation.terminator.kotlin\",regex:/;/}],\"#namespaces\":[{token:\"keyword.other.kotlin\",regex:/\\bnamespace\\b/},{token:\"text\",regex:/\\{/,push:[{token:\"text\",regex:/\\}/,next:\"pop\"},{include:\"#statements\"}]}],\"#parameters\":[{token:\"keyword.operator.declaration.kotlin\",regex:/:/,push:[{token:\"text\",regex:/(?=,|\\)|=)/,next:\"pop\"},{include:\"#types\"}]},{token:\"keyword.operator.declaration.kotlin\",regex:/=/,push:[{token:\"text\",regex:/(?=,|\\))/,next:\"pop\"},{include:\"#expressions\"}]},{include:\"#keywords\"},{token:\"variable.parameter.function.kotlin\",regex:/\\w+/}],\"#statements\":[{include:\"#namespaces\"},{include:\"#typedefs\"},{include:\"#classes\"},{include:\"#functions\"},{include:\"#variables\"},{include:\"#getters-and-setters\"},{include:\"#expressions\"}],\"#strings\":[{token:\"punctuation.definition.string.begin.kotlin\",regex:/\"\"\"/,push:[{token:\"punctuation.definition.string.end.kotlin\",regex:/\"\"\"/,next:\"pop\"},{token:\"variable.parameter.template.kotlin\",regex:/\\$\\w+|\\$\\{[^\\}]+\\}/},{token:\"constant.character.escape.kotlin\",regex:/\\\\./},{defaultToken:\"string.quoted.third.kotlin\"}]},{token:\"punctuation.definition.string.begin.kotlin\",regex:/\"/,push:[{token:\"punctuation.definition.string.end.kotlin\",regex:/\"/,next:\"pop\"},{token:\"variable.parameter.template.kotlin\",regex:/\\$\\w+|\\$\\{[^\\}]+\\}/},{token:\"constant.character.escape.kotlin\",regex:/\\\\./},{defaultToken:\"string.quoted.double.kotlin\"}]},{token:\"punctuation.definition.string.begin.kotlin\",regex:/'/,push:[{token:\"punctuation.definition.string.end.kotlin\",regex:/'/,next:\"pop\"},{token:\"constant.character.escape.kotlin\",regex:/\\\\./},{defaultToken:\"string.quoted.single.kotlin\"}]},{token:\"punctuation.definition.string.begin.kotlin\",regex:/`/,push:[{token:\"punctuation.definition.string.end.kotlin\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quoted.single.kotlin\"}]}],\"#typedefs\":[{token:\"text\",regex:/(?=\\s*type)/,push:[{token:\"text\",regex:/(?=$)/,next:\"pop\"},{token:\"keyword.other.kotlin\",regex:/\\btype\\b/},{token:\"text\",regex:/</,push:[{token:\"text\",regex:/>/,next:\"pop\"},{include:\"#generics\"}]},{include:\"#expressions\"}]}],\"#types\":[{token:\"storage.type.buildin.kotlin\",regex:/\\b(?:Any|Unit|String|Int|Boolean|Char|Long|Double|Float|Short|Byte|dynamic)\\b/},{token:\"storage.type.buildin.array.kotlin\",regex:/\\b(?:IntArray|BooleanArray|CharArray|LongArray|DoubleArray|FloatArray|ShortArray|ByteArray)\\b/},{token:[\"storage.type.buildin.collection.kotlin\",\"text\"],regex:/\\b(Array|List|Map)(<\\b)/,push:[{token:\"text\",regex:/>/,next:\"pop\"},{include:\"#types\"},{include:\"#keywords\"}]},{token:\"text\",regex:/\\w+</,push:[{token:\"text\",regex:/>/,next:\"pop\"},{include:\"#types\"},{include:\"#keywords\"}]},{token:[\"keyword.operator.tuple.kotlin\",\"text\"],regex:/(#)(\\()/,push:[{token:\"text\",regex:/\\)/,next:\"pop\"},{include:\"#expressions\"}]},{token:\"text\",regex:/\\{/,push:[{token:\"text\",regex:/\\}/,next:\"pop\"},{include:\"#statements\"}]},{token:\"text\",regex:/\\(/,push:[{token:\"text\",regex:/\\)/,next:\"pop\"},{include:\"#types\"}]},{token:\"keyword.operator.declaration.kotlin\",regex:/->/}],\"#variables\":[{token:\"text\",regex:/(?=\\s*(?:var|val))/,push:[{token:\"text\",regex:/(?=:|=|$)/,next:\"pop\"},{token:\"keyword.other.kotlin\",regex:/\\b(?:var|val)\\b/,push:[{token:\"text\",regex:/(?=:|=|$)/,next:\"pop\"},{token:\"text\",regex:/</,push:[{token:\"text\",regex:/>/,next:\"pop\"},{include:\"#generics\"}]},{token:[\"text\",\"entity.name.variable.kotlin\"],regex:/((?:[\\.<\\?>\\w]+\\.)?)(\\w+)/}]},{token:\"keyword.operator.declaration.kotlin\",regex:/:/,push:[{token:\"text\",regex:/(?==|$)/,next:\"pop\"},{include:\"#types\"},{include:\"#getters-and-setters\"}]},{token:\"keyword.operator.assignment.kotlin\",regex:/=/,push:[{token:\"text\",regex:/(?=$)/,next:\"pop\"},{include:\"#expressions\"},{include:\"#getters-and-setters\"}]}]}]},this.normalizeRules()};s.metaData={fileTypes:[\"kt\",\"kts\"],name:\"Kotlin\",scopeName:\"source.Kotlin\"},r.inherits(s,i),t.KotlinHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/kotlin\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/kotlin_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./kotlin_highlight_rules\").KotlinHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.$id=\"ace/mode/kotlin\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-latex.js",
    "content": "ace.define(\"ace/mode/latex_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment\",regex:\"%.*$\"},{token:[\"keyword\",\"lparen\",\"variable.parameter\",\"rparen\",\"lparen\",\"storage.type\",\"rparen\"],regex:\"(\\\\\\\\(?:documentclass|usepackage|input))(?:(\\\\[)([^\\\\]]*)(\\\\]))?({)([^}]*)(})\"},{token:[\"keyword\",\"lparen\",\"variable.parameter\",\"rparen\"],regex:\"(\\\\\\\\(?:label|v?ref|cite(?:[^{]*)))(?:({)([^}]*)(}))?\"},{token:[\"storage.type\",\"lparen\",\"variable.parameter\",\"rparen\"],regex:\"(\\\\\\\\(?:begin|end))({)(\\\\w*)(})\"},{token:\"storage.type\",regex:\"\\\\\\\\[a-zA-Z]+\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"constant.character.escape\",regex:\"\\\\\\\\[^a-zA-Z]?\"},{token:\"string\",regex:\"\\\\${1,2}\",next:\"equation\"}],equation:[{token:\"comment\",regex:\"%.*$\"},{token:\"string\",regex:\"\\\\${1,2}\",next:\"start\"},{token:\"constant.character.escape\",regex:\"\\\\\\\\(?:[^a-zA-Z]|[a-zA-Z]+)\"},{token:\"error\",regex:\"^\\\\s*$\",next:\"start\"},{defaultToken:\"string\"}]}};r.inherits(s,i),t.LatexHighlightRules=s}),ace.define(\"ace/mode/folding/latex\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=e(\"../../token_iterator\").TokenIterator,u=t.FoldMode=function(){};r.inherits(u,i),function(){this.foldingStartMarker=/^\\s*\\\\(begin)|(section|subsection|paragraph)\\b|{\\s*$/,this.foldingStopMarker=/^\\s*\\\\(end)\\b|^\\s*}/,this.getFoldWidgetRange=function(e,t,n){var r=e.doc.getLine(n),i=this.foldingStartMarker.exec(r);if(i)return i[1]?this.latexBlock(e,n,i[0].length-1):i[2]?this.latexSection(e,n,i[0].length-1):this.openingBracketBlock(e,\"{\",n,i.index);var i=this.foldingStopMarker.exec(r);if(i)return i[1]?this.latexBlock(e,n,i[0].length-1):this.closingBracketBlock(e,\"}\",n,i.index+i[0].length)},this.latexBlock=function(e,t,n){var r={\"\\\\begin\":1,\"\\\\end\":-1},i=new o(e,t,n),u=i.getCurrentToken();if(!u||u.type!=\"storage.type\"&&u.type!=\"constant.character.escape\")return;var a=u.value,f=r[a],l=function(){var e=i.stepForward(),t=e.type==\"lparen\"?i.stepForward().value:\"\";return f===-1&&(i.stepBackward(),t&&i.stepBackward()),t},c=[l()],h=f===-1?i.getCurrentTokenColumn():e.getLine(t).length,p=t;i.step=f===-1?i.stepBackward:i.stepForward;while(u=i.step()){if(!u||u.type!=\"storage.type\"&&u.type!=\"constant.character.escape\")continue;var d=r[u.value];if(!d)continue;var v=l();if(d===f)c.unshift(v);else if(c.shift()!==v||!c.length)break}if(c.length)return;var t=i.getCurrentTokenRow();return f===-1?new s(t,e.getLine(t).length,p,h):(i.stepBackward(),new s(p,h,t,i.getCurrentTokenColumn()))},this.latexSection=function(e,t,n){var r=[\"\\\\subsection\",\"\\\\section\",\"\\\\begin\",\"\\\\end\",\"\\\\paragraph\"],i=new o(e,t,n),u=i.getCurrentToken();if(!u||u.type!=\"storage.type\")return;var a=r.indexOf(u.value),f=0,l=t;while(u=i.stepForward()){if(u.type!==\"storage.type\")continue;var c=r.indexOf(u.value);if(c>=2){f||(l=i.getCurrentTokenRow()-1),f+=c==2?1:-1;if(f<0)break}else if(c>=a)break}f||(l=i.getCurrentTokenRow()-1);while(l>t&&!/\\S/.test(e.getLine(l)))l--;return new s(t,e.getLine(t).length,l,e.getLine(l).length)}}.call(u.prototype)}),ace.define(\"ace/mode/latex\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/latex_highlight_rules\",\"ace/mode/folding/latex\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./latex_highlight_rules\").LatexHighlightRules,o=e(\"./folding/latex\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.type=\"text\",this.lineCommentStart=\"%\",this.$id=\"ace/mode/latex\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-lean.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/lean_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=[\"add_rewrite\",\"alias\",\"as\",\"assume\",\"attribute\",\"begin\",\"by\",\"calc\",\"calc_refl\",\"calc_subst\",\"calc_trans\",\"check\",\"classes\",\"coercions\",\"conjecture\",\"constants\",\"context\",\"corollary\",\"else\",\"end\",\"environment\",\"eval\",\"example\",\"exists\",\"exit\",\"export\",\"exposing\",\"extends\",\"fields\",\"find_decl\",\"forall\",\"from\",\"fun\",\"have\",\"help\",\"hiding\",\"if\",\"import\",\"in\",\"infix\",\"infixl\",\"infixr\",\"instances\",\"let\",\"local\",\"match\",\"namespace\",\"notation\",\"obtain\",\"obtains\",\"omit\",\"opaque\",\"open\",\"options\",\"parameter\",\"parameters\",\"postfix\",\"precedence\",\"prefix\",\"premise\",\"premises\",\"print\",\"private\",\"proof\",\"protected\",\"qed\",\"raw\",\"renaming\",\"section\",\"set_option\",\"show\",\"tactic_hint\",\"take\",\"then\",\"universe\",\"universes\",\"using\",\"variable\",\"variables\",\"with\"].join(\"|\"),t=[\"inductive\",\"structure\",\"record\",\"theorem\",\"axiom\",\"axioms\",\"lemma\",\"hypothesis\",\"definition\",\"constant\"].join(\"|\"),n=[\"Prop\",\"Type\",\"Type'\",\"Type\\u208a\",\"Type\\u2081\",\"Type\\u2082\",\"Type\\u2083\"].join(\"|\"),r=\"\\\\[(\"+[\"abbreviations\",\"all-transparent\",\"begin-end-hints\",\"class\",\"classes\",\"coercion\",\"coercions\",\"declarations\",\"decls\",\"instance\",\"irreducible\",\"multiple-instances\",\"notation\",\"notations\",\"parsing-only\",\"persistent\",\"reduce-hints\",\"reducible\",\"tactic-hints\",\"visible\",\"wf\",\"whnf\"].join(\"|\")+\")\\\\]\",s=[].join(\"|\"),o=this.$keywords=this.createKeywordMapper({\"keyword.control\":e,\"storage.type\":n,\"keyword.operator\":s,\"variable.language\":\"sorry\"},\"identifier\"),u=\"[A-Za-z_\\u03b1-\\u03ba\\u03bc-\\u03fb\\u1f00-\\u1ffe\\u2100-\\u214f][A-Za-z0-9_'\\u03b1-\\u03ba\\u03bc-\\u03fb\\u1f00-\\u1ffe\\u2070-\\u2079\\u207f-\\u2089\\u2090-\\u209c\\u2100-\\u214f]*\",a=new RegExp([\"#\",\"@\",\"->\",\"\\u223c\",\"\\u2194\",\"/\",\"==\",\"=\",\":=\",\"<->\",\"/\\\\\",\"\\\\/\",\"\\u2227\",\"\\u2228\",\"\\u2260\",\"<\",\">\",\"\\u2264\",\"\\u2265\",\"\\u00ac\",\"<=\",\">=\",\"\\u207b\\u00b9\",\"\\u2b1d\",\"\\u25b8\",\"\\\\+\",\"\\\\*\",\"-\",\"/\",\"\\u03bb\",\"\\u2192\",\"\\u2203\",\"\\u2200\",\":=\"].join(\"|\"));this.$rules={start:[{token:\"comment\",regex:\"--.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/-\",next:\"comment\"},{stateName:\"qqstring\",token:\"string.start\",regex:'\"',next:[{token:\"string.end\",regex:'\"',next:\"start\"},{token:\"constant.language.escape\",regex:/\\\\[n\"\\\\]/},{defaultToken:\"string\"}]},{token:\"keyword.control\",regex:t,next:[{token:\"variable.language\",regex:u,next:\"start\"}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"storage.modifier\",regex:r},{token:o,regex:u},{token:\"operator\",regex:a},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"-/\",next:\"start\"},{defaultToken:\"comment\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(o,s),t.leanHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/lean\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/lean_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./lean_highlight_rules\").leanHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=function(){this.HighlightRules=s,this.$outdent=new o};r.inherits(a,i),function(){this.lineCommentStart=\"--\",this.blockComment={start:\"/-\",end:\"-/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"- \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/lean\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict/mode-less.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/less_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/css_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=e(\"./css_highlight_rules\"),o=function(){var e=\"@import|@media|@font-face|@keyframes|@-webkit-keyframes|@supports|@charset|@plugin|@namespace|@document|@page|@viewport|@-ms-viewport|or|and|when|not\",t=e.split(\"|\"),n=s.supportType.split(\"|\"),r=this.createKeywordMapper({\"support.constant\":s.supportConstant,keyword:e,\"support.constant.color\":s.supportConstantColor,\"support.constant.fonts\":s.supportConstantFonts},\"identifier\",!0),i=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+i+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:\"constant.numeric\",regex:i},{token:[\"support.function\",\"paren.lparen\",\"string\",\"paren.rparen\"],regex:\"(url)(\\\\()(.*)(\\\\))\"},{token:[\"support.function\",\"paren.lparen\"],regex:\"(:extend|[a-z0-9_\\\\-]+)(\\\\()\"},{token:function(e){return t.indexOf(e.toLowerCase())>-1?\"keyword\":\"variable\"},regex:\"[@\\\\$][a-z0-9_\\\\-@\\\\$]*\\\\b\"},{token:\"variable\",regex:\"[@\\\\$]\\\\{[a-z0-9_\\\\-@\\\\$]*\\\\}\"},{token:function(e,t){return n.indexOf(e.toLowerCase())>-1?[\"support.type.property\",\"text\"]:[\"support.type.unknownProperty\",\"text\"]},regex:\"([a-z0-9-_]+)(\\\\s*:)\"},{token:\"keyword\",regex:\"&\"},{token:r,regex:\"\\\\-?[@a-z_][@a-z0-9_\\\\-]*\"},{token:\"variable.language\",regex:\"#[a-z0-9-_]+\"},{token:\"variable.language\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"variable.language\",regex:\":[a-z_][a-z0-9-_]*\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{token:\"keyword.operator\",regex:\"<|>|<=|>=|=|!=|-|%|\\\\+|\\\\*\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.normalizeRules()};r.inherits(o,i),t.LessHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/less\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/less_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/css\",\"ace/mode/css_completions\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./less_highlight_rules\").LessHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/css\").CssBehaviour,a=e(\"./css_completions\").CssCompletions,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.$completer=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(\"ruleset\",t,n,r)},this.$id=\"ace/mode/less\"}.call(l.prototype),t.Mode=l})"
  },
  {
    "path": "lib/src-min-noconflict/mode-liquid.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/liquid_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=e(\"./html_highlight_rules\").HtmlHighlightRules,o=function(){s.call(this);var e=\"date|capitalize|downcase|upcase|first|last|join|sort|map|size|escape|escape_once|strip_html|strip_newlines|newline_to_br|replace|replace_first|truncate|truncatewords|prepend|append|minus|plus|times|divided_by|split\",t=\"capture|endcapture|case|endcase|when|comment|endcomment|cycle|for|endfor|in|reversed|if|endif|else|elsif|include|endinclude|unless|endunless|style|text|image|widget|plugin|marker|endmarker|tablerow|endtablerow\",n=\"forloop|tablerowloop\",r=\"assign\",i=this.createKeywordMapper({\"variable.language\":n,keyword:t,\"support.function\":e,\"keyword.definition\":r},\"identifier\");for(var o in this.$rules)this.$rules[o].unshift({token:\"variable\",regex:\"{%\",push:\"liquid-start\"},{token:\"variable\",regex:\"{{\",push:\"liquid-start\"});this.addRules({\"liquid-start\":[{token:\"variable\",regex:\"}}\",next:\"pop\"},{token:\"variable\",regex:\"%}\",next:\"pop\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:i,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"/|\\\\*|\\\\-|\\\\+|=|!=|\\\\?\\\\:\"},{token:\"paren.lparen\",regex:/[\\[\\({]/},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"text\",regex:\"\\\\s+\"}]}),this.normalizeRules()};r.inherits(o,i),t.LiquidHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/liquid\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/liquid_highlight_rules\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./liquid_highlight_rules\").LiquidHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/liquid\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-lisp.js",
    "content": "ace.define(\"ace/mode/lisp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"case|do|let|loop|if|else|when\",t=\"eq|neq|and|or\",n=\"null|nil\",r=\"cons|car|cdr|cond|lambda|format|setq|setf|quote|eval|append|list|listp|memberp|t|load|progn\",i=this.createKeywordMapper({\"keyword.control\":e,\"keyword.operator\":t,\"constant.language\":n,\"support.function\":r},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\";.*$\"},{token:[\"storage.type.function-type.lisp\",\"text\",\"entity.name.function.lisp\"],regex:\"(?:\\\\b(?:(defun|defmethod|defmacro))\\\\b)(\\\\s+)((?:\\\\w|\\\\-|\\\\!|\\\\?)*)\"},{token:[\"punctuation.definition.constant.character.lisp\",\"constant.character.lisp\"],regex:\"(#)((?:\\\\w|[\\\\\\\\+-=<>'\\\"&#])+)\"},{token:[\"punctuation.definition.variable.lisp\",\"variable.other.global.lisp\",\"punctuation.definition.variable.lisp\"],regex:\"(\\\\*)(\\\\S*)(\\\\*)\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+(?:L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(?:L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:i,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"}],qqstring:[{token:\"constant.character.escape.lisp\",regex:\"\\\\\\\\.\"},{token:\"string\",regex:'[^\"\\\\\\\\]+'},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"start\"}]}};r.inherits(s,i),t.LispHighlightRules=s}),ace.define(\"ace/mode/lisp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/lisp_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./lisp_highlight_rules\").LispHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart=\";\",this.$id=\"ace/mode/lisp\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict/mode-live_script.js",
    "content": "ace.define(\"ace/mode/live_script_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"punctuation.definition.comment.livescript\",regex:\"\\\\/\\\\*\",push:[{token:\"punctuation.definition.comment.livescript\",regex:\"\\\\*\\\\/\",next:\"pop\"},{token:\"storage.type.annotation.livescriptscript\",regex:\"@\\\\w*\"},{defaultToken:\"comment.block.livescript\"}]},{token:[\"punctuation.definition.comment.livescript\",\"comment.line.number-sign.livescript\"],regex:\"(#)(?!\\\\{)(.*$)\"},{token:[\"variable.parameter.function.livescript\",\"meta.inline.function.livescript\",\"storage.type.function.livescript\",\"meta.inline.function.livescript\",\"variable.parameter.function.livescript\",\"meta.inline.function.livescript\",\"storage.type.function.livescript\"],regex:\"(\\\\s*\\\\!?\\\\(\\\\s*[^()]*?\\\\))(\\\\s*)(!?[~-]{1,2}>)|(\\\\s*\\\\!?)(\\\\(?[^()]*?\\\\)?)(\\\\s*)(<[~-]{1,2}!?)\",comment:\"match stuff like: a -> \\u2026 \"},{token:[\"keyword.operator.new.livescript\",\"meta.class.instance.constructor\",\"entity.name.type.instance.livescript\"],regex:\"(new)(\\\\s+)(\\\\w+(?:\\\\.\\\\w*)*)\"},{token:\"keyword.illegal.livescript\",regex:\"\\\\bp(?:ackage|r(?:ivate|otected)|ublic)|interface|enum|static|yield\\\\b\"},{token:\"punctuation.definition.string.begin.livescript\",regex:\"'''\",push:[{token:\"punctuation.definition.string.end.livescript\",regex:\"'''\",next:\"pop\"},{defaultToken:\"string.quoted.heredoc.livescript\"}]},{token:\"punctuation.definition.string.begin.livescript\",regex:'\"\"\"',push:[{token:\"punctuation.definition.string.end.livescript\",regex:'\"\"\"',next:\"pop\"},{token:\"constant.character.escape.livescript\",regex:\"\\\\\\\\.\"},{include:\"#interpolated_livescript\"},{defaultToken:\"string.quoted.double.heredoc.livescript\"}]},{token:\"punctuation.definition.string.begin.livescript\",regex:\"``\",push:[{token:\"punctuation.definition.string.end.livescript\",regex:\"``\",next:\"pop\"},{token:\"constant.character.escape.livescript\",regex:\"\\\\\\\\(?:x[\\\\da-fA-F]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)\"},{defaultToken:\"string.quoted.script.livescript\"}]},{token:\"string.array-literal.livescript\",regex:\"<\\\\[\",push:[{token:\"string.array-literal.livescript\",regex:\"\\\\]>\",next:\"pop\"},{defaultToken:\"string.array-literal.livescript\"}]},{token:\"string.regexp.livescript\",regex:\"/{2}(?![\\\\s=/*+{}?]).*?[^\\\\\\\\]/[igmy]{0,4}(?![a-zA-Z0-9])/{2}\"},{token:\"string.regexp.livescript\",regex:\"/{2}$\",push:[{token:\"string.regexp.livescript\",regex:\"/{2}[imgy]{0,4}\",next:\"pop\"},{include:\"#embedded_spaced_comment\"},{include:\"#interpolated_livescript\"},{defaultToken:\"string.regexp.livescript\"}]},{token:\"string.regexp.livescript\",regex:\"/{2}\",push:[{token:\"string.regexp.livescript\",regex:\"/{2}[imgy]{0,4}\",next:\"pop\"},{token:\"constant.character.escape.livescript\",regex:\"\\\\\\\\(?:x[\\\\da-fA-F]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)\"},{include:\"#interpolated_livescript\"},{defaultToken:\"string.regexp.livescript\"}]},{token:\"string.regexp.livescript\",regex:\"/(?![\\\\s=/*+{}?]).*?[^\\\\\\\\]/[igmy]{0,4}(?![a-zA-Z0-9])\"},{token:\"keyword.control.livescript\",regex:\"\\\\b(?<![\\\\.\\\\$\\\\-])(?:t(?:h(?:is|row|en)|ry|ypeof!?|il|o)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\\\s+own)?|inally|unction|rom|allthrough)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith|hen)|o(?:f|r|therwise)|return|break|let|var|loop|match|by)(?!\\\\-|\\\\s*:)\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?x)\\n\t\t\t\t\\\\b(?<![\\\\.\\\\$\\\\-])(?:\\n\t\t        t(?:h(?:is|row|en)|ry|ypeof!?|il|o)\\n\t\t        |c(?:on(?:tinue|st)|a(?:se|tch)|lass)\\n\t\t        |i(?:n(?:stanceof)?|mp(?:ort(?:\\\\s+all)?|lements)|[fs])\\n\t\t        |d(?:e(?:fault|lete|bugger)|o)\\n\t\t        |f(?:or(?:\\\\s+own)?|inally|unction|rom|allthrough)\\n\t\t        |s(?:uper|witch)\\n\t\t        |e(?:lse|x(?:tends|port)|val)\\n\t\t        |a(?:nd|rguments)\\n\t\t        |n(?:ew|ot)\\n\t\t        |un(?:less|til)\\n\t\t        |w(?:hile|ith|hen)\\n\t\t        |o(?:f|r|therwise)\\n\t\t        |return|break|let|var|loop\\n\t\t        |match\\n\t\t        |by\\n\t\t\t\t)(?!\\\\-|\\\\s*:)\\\\b\\n\t\t\t\"},{token:\"keyword.operator.livescript\",regex:\"\\\\b(?<![\\\\.\\\\$\\\\-])(?:instanceof|new|delete|typeof|and|or|is|isnt|not)(?!\\\\-|\\\\s*:)\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?x)\\n\t\t\t\t\\\\b(?<![\\\\.\\\\$\\\\-])(\\n\t\t\t\t\tinstanceof|new|delete|typeof|and|or|is|isnt|not\\n\t\t\t\t)(?!\\\\-|\\\\s*:)\\\\b\\n\t\t\t\"},{token:\"keyword.operator.livescript\",regex:\"and=|or=|%|&|\\\\^|\\\\*|\\\\/|(?<![a-zA-Z$_])(?:\\\\-)?\\\\-(?!\\\\-?>)|\\\\+\\\\+|\\\\+|~(?!~?>)|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<(?!\\\\[)|(?<!\\\\])>|(?<!\\\\w)!(?!(?:[~\\\\-]+)?>)|&&|\\\\.\\\\.(?:\\\\.)?|\\\\s\\\\.\\\\s|\\\\?|\\\\||\\\\|\\\\||\\\\:|\\\\*=|(?<!\\\\()/=|%=|\\\\+=|\\\\-=|\\\\.=|&=|\\\\(\\\\.|\\\\.\\\\)|\\\\^=\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?x)\\n\t\t\t\tand=|or=|%|&|\\\\^|\\\\*|\\\\/|(?<![a-zA-Z$_])(\\\\-)?\\\\-(?!\\\\-?>)|\\\\+\\\\+|\\\\+|\\n\t\t\t\t~(?!~?>)|==|=|!=|<=|>=|<<=|>>=|\\n\t\t\t\t>>>=|<>|<(?!\\\\[)|(?<!\\\\])>|(?<!\\\\w)!(?!([~\\\\-]+)?>)|&&|\\\\.\\\\.(\\\\.)?|\\\\s\\\\.\\\\s|\\\\?|\\\\||\\\\|\\\\||\\\\:|\\\\*=|(?<!\\\\()/=|%=|\\\\+=|\\\\-=|\\\\.=|&=|\\\\(\\\\.|\\\\.\\\\)|\\n\t\t\t\t\\\\^=\\n\t\t\t\"},{token:[\"variable.assignment.livescript\",\"variable.assignment.livescript\",\"variable.assignment.livescript\",\"punctuation.separator.key-value\",\"keyword.operator.livescript\",\"variable.assignment.livescript\"],regex:\"([a-zA-Z\\\\$_])((?:[\\\\w$.-])*)(\\\\s*)(?!\\\\::)(?:(:)|(=))(\\\\s*)(?!(?:\\\\s*!?\\\\s*\\\\(.*\\\\))?\\\\s*!?[~-]{1,2}>)\"},{token:\"keyword.operator.livescript\",regex:\"(?<=\\\\s|^)[\\\\[\\\\{](?=.*?[\\\\]\\\\}]\\\\s+[:=])\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<=\\\\s|^)([\\\\[\\\\{])(?=.*?[\\\\]\\\\}]\\\\s+[:=])\",push:[{token:\"keyword.operator.livescript\",regex:\"[\\\\]\\\\}]\\\\s*[:=]\",next:\"pop\"},{include:\"#variable_name\"},{include:\"#instance_variable\"},{include:\"#single_quoted_string\"},{include:\"#double_quoted_string\"},{include:\"#numeric\"},{defaultToken:\"meta.variable.assignment.destructured.livescript\"}]},{token:[\"meta.function.livescript\",\"entity.name.function.livescript\",\"entity.name.function.livescript\",\"entity.name.function.livescript\",\"entity.name.function.livescript\",\"variable.parameter.function.livescript\",\"entity.name.function.livescript\",\"storage.type.function.livescript\"],regex:\"(\\\\s*)(?=[a-zA-Z\\\\$_])([a-zA-Z\\\\$_])((?:[\\\\w$.:-])*)(\\\\s*)([:=])((?:\\\\s*!?\\\\s*\\\\(.*\\\\))?)(\\\\s*)(!?[~-]{1,2}>)\"},{token:\"storage.type.function.livescript\",regex:\"!?[~-]{1,2}>\"},{token:\"constant.language.boolean.true.livescript\",regex:\"\\\\b(?<!\\\\.)(?:true|on|yes)(?!\\\\s*[:=])\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"\\\\b(?<!\\\\.)(true|on|yes)(?!\\\\s*[:=])\\\\b\"},{token:\"constant.language.boolean.false.livescript\",regex:\"\\\\b(?<!\\\\.)(?:false|off|no)(?!\\\\s*[:=])\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"\\\\b(?<!\\\\.)(false|off|no)(?!\\\\s*[:=])\\\\b\"},{token:\"constant.language.null.livescript\",regex:\"\\\\b(?<!\\\\.)(?:null|void)(?!\\\\s*[:=])\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"\\\\b(?<!\\\\.)(null|void)(?!\\\\s*[:=])\\\\b\"},{token:\"variable.language.livescript\",regex:\"\\\\b(?<!\\\\.)(?:super|this|extends)(?!\\\\s*[:=])\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"\\\\b(?<!\\\\.)(super|this|extends)(?!\\\\s*[:=])\\\\b\"},{token:[\"storage.type.class.livescript\",\"meta.class.livescript\",\"entity.name.type.class.livescript\",\"meta.class.livescript\",\"keyword.control.inheritance.livescript\",\"meta.class.livescript\",\"entity.other.inherited-class.livescript\"],regex:\"(class\\\\b)(\\\\s+)((?:@?[a-zA-Z$_][\\\\w$.-]*)?)(?:(\\\\s+)(extends)(\\\\s+)(@?[a-zA-Z$_][\\\\w$.-]*))?\"},{token:\"keyword.other.livescript\",regex:\"\\\\b(?:debugger|\\\\\\\\)\\\\b\"},{token:\"support.class.livescript\",regex:\"\\\\b(?:Array|ArrayBuffer|Blob|Boolean|Date|document|event|Function|Int(?:8|16|32|64)Array|Math|Map|Number|Object|Proxy|RegExp|Set|String|WeakMap|window|Uint(?:8|16|32|64)Array|XMLHttpRequest)\\\\b\"},{token:\"entity.name.type.object.livescript\",regex:\"\\\\bconsole\\\\b\"},{token:\"support.function.console.livescript\",regex:\"(?<=console\\\\.)(?:debug|warn|info|log|error|time(?:End|-end)|assert)\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"((?<=console\\\\.)(debug|warn|info|log|error|time(End|-end)|assert))\\\\b\"},{token:\"support.function.livescript\",regex:\"\\\\b(?:decodeURI(?:Component)?|encodeURI(?:Component)?|eval|parse(?:Float|Int)|require)\\\\b\"},{token:\"support.function.prelude.livescript\",regex:\"(?<![.-])\\\\b(?:map|filter|reject|partition|find|each|head|tail|last|initial|empty|values|keys|length|cons|append|join|reverse|fold(?:l|r)?1?|unfoldr|and(?:List|-list)|or(?:List|-list)|any|all|unique|sum|product|mean|compact|concat(?:Map|-map)?|maximum|minimum|scan(?:l|r)?1?|replicate|slice|apply|split(?:At|-at)?|take(?:While|-while)?|drop(?:While|-while)?|span|first|break(?:It|-it)|list(?:ToObj|-to-obj)|obj(?:ToFunc|-to-func)|pairs(?:ToObj|-to-obj)|obj(?:ToPairs|-to-pairs|ToLists|-to-lists)|zip(?:All|-all)?(?:With|-with)?|compose|curry|partial|flip|fix|sort(?:With|-with|By|-by)?|group(?:By|-by)|break(?:List|-list|Str|-str)|difference|intersection|union|average|flatten|chars|unchars|repeat|lines|unlines|words|unwords|max|min|negate|abs|signum|quot|rem|div|mod|recip|pi|tau|exp|sqrt|ln|pow|sin|cos|tan|asin|acos|atan|atan2|truncate|round|ceiling|floor|is(?:It|-it)NaN|even|odd|gcd|lcm|disabled__id)\\\\b(?![.-])\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?x)(?<![.-])\\\\b(\\n\t\t\t\tmap|filter|reject|partition|find|each|head|tail|last|initial|empty|\\n\t\t\t\tvalues|keys|length|cons|append|join|reverse|fold(l|r)?1?|unfoldr|\\n\t\t\t\tand(List|-list)|or(List|-list)|any|all|unique|sum|product|mean|compact|\\n\t\t\t\tconcat(Map|-map)?|maximum|minimum|scan(l|r)?1?|replicate|slice|apply|\\n\t\t\t\tsplit(At|-at)?|take(While|-while)?|drop(While|-while)?|span|first|\\n\t\t\t\tbreak(It|-it)|list(ToObj|-to-obj)|obj(ToFunc|-to-func)|\\n\t\t\t\tpairs(ToObj|-to-obj)|obj(ToPairs|-to-pairs|ToLists|-to-lists)|\\n\t\t\t\tzip(All|-all)?(With|-with)?|compose|curry|partial|flip|fix|\\n\t\t\t\tsort(With|-with|By|-by)?|group(By|-by)|break(List|-list|Str|-str)|\\n\t\t\t\tdifference|intersection|union|average|flatten|chars|unchars|repeat|\\n\t\t\t\tlines|unlines|words|unwords|max|min|negate|abs|signum|quot|rem|div|mod|\\n\t\t\t\trecip|pi|tau|exp|sqrt|ln|pow|sin|cos|tan|asin|acos|atan|atan2|truncate|\\n\t\t\t\tround|ceiling|floor|is(It|-it)NaN|even|odd|gcd|lcm|disabled__id\\n\t\t\t)\\\\b(?![.-])\",comment:'Generated by DOM query from http://gkz.github.com/prelude-ls/:\\n\t      [].slice\\n\t        .call(document.querySelectorAll(\".nav-pills li a\"))\\n\t        .map(function(_) {return _.innerText})\\n\t        .filter(function(_) {return _.trim() !== \\'})\\n\t        .slice(2)\\n\t        .join(\"|\")\\n     \t\t'},{token:\"support.function.semireserved.livescript\",regex:\"(?<![.-])\\\\b(?:that|it|e)\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?x)(?<![.-])\\\\b(that|it|e)\\\\b\"},{token:\"support.function.method.array.livescript\",regex:\"(?<=(?:\\\\.|\\\\]|\\\\)))(?:apply|call|concat|every|filter|for(?:Each|-each)|from|has(?:Own|-own)(?:Property|-property)|index(?:Of|-of)|is(?:Prototype|-prototype)(?:Of|-of)|join|last(?:Index|-index)(?:Of|-of)|map|of|pop|property(?:Is|-is)(?:Enumerable|-enumerable)|push|reduce(?:Right|-right)?|reverse|shift|slice|some|sort|splice|to(?:Locale|-locale)?(?:String|-string)|unshift|valueOf)\\\\b(?!-)\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?x)((?<=(\\\\.|\\\\]|\\\\)))(\\n\t\t\t\tapply|call|concat|every|filter|for(Each|-each)|\\n\t\t\t\tfrom|has(Own|-own)(Property|-property)|index(Of|-of)|\\n\t\t\t\tis(Prototype|-prototype)(Of|-of)|join|last(Index|-index)(Of|-of)|\\n\t\t\t\tmap|of|pop|property(Is|-is)(Enumerable|-enumerable)|push|\\n\t\t\t\treduce(Right|-right)?|reverse|shift|slice|some|sort|\\n\t\t\t\tsplice|to(Locale|-locale)?(String|-string)|unshift|valueOf\\n\t\t\t))\\\\b(?!-) \"},{token:\"support.function.static.array.livescript\",regex:\"(?<=Array\\\\.)isArray\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?x)((?<=Array\\\\.)(\\n\t\t\t\tisArray\\n\t\t\t))\\\\b\"},{token:\"support.function.static.object.livescript\",regex:\"(?<=Object\\\\.)(?:create|ace.define(?:Propert|-propert)(?:ies|y)|freeze|get(?:Own|-own)(?:Property|-property)(?:Descriptors?|Names)|get(?:Property|-property)(?:Descriptor|Names)|getPrototypeOf|is(?:(?:Extensible|-extensible)|(?:Frozen|-frozen)|(?:Sealed|-sealed))?|keys|prevent(?:Extensions|-extensions)|seal)\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?x)((?<=Object\\\\.)(\\n\t\t\t\tcreate|ace.define(Propert|-propert)(ies|y)|freeze|\\n\t\t\t\tget(Own|-own)(Property|-property)(Descriptors?|Names)|\\n\t\t\t\tget(Property|-property)(Descriptor|Names)|getPrototypeOf|\\n\t\t\t\tis((Extensible|-extensible)|(Frozen|-frozen)|(Sealed|-sealed))?|\\n\t\t\t\tkeys|prevent(Extensions|-extensions)|seal\\n\t\t\t))\\\\b\"},{token:\"support.function.static.math.livescript\",regex:\"(?<=Math\\\\.)(?:abs|acos|acosh|asin|asinh|atan|atan2|atanh|ceil|cos|cosh|exp|expm1|floor|hypot|log|log10|log1p|log2|max|min|pow|random|round|sign|sin|sinh|sqrt|tan|tanh|trunc)\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?x)((?<=Math\\\\.)(\\n\t\t\t\tabs|acos|acosh|asin|asinh|atan|atan2|atanh|ceil|cos|cosh|exp|expm1|floor|\\n\t\t\t\thypot|log|log10|log1p|log2|max|min|pow|random|round|sign|sin|sinh|sqrt|\\n\t\t\t\ttan|tanh|trunc\\n\t\t\t))\\\\b\"},{token:\"support.function.static.number.livescript\",regex:\"(?<=Number\\\\.)(?:is(?:Finite|Integer|NaN)|to(?:Integer|-integer))\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?x)((?<=Number\\\\.)(\\n\t\t\t\tis(Finite|Integer|NaN)|to(Integer|-integer)\\n\t\t\t))\\\\b\"},{token:\"constant.language.livescript\",regex:\"\\\\b(?:Infinity|NaN|undefined)\\\\b\"},{token:\"punctuation.terminator.statement.livescript\",regex:\"\\\\;\"},{token:\"meta.delimiter.object.comma.livescript\",regex:\",[ |\\\\t]*\"},{token:\"meta.delimiter.method.period.livescript\",regex:\"\\\\.\"},{token:\"meta.brace.curly.livescript\",regex:\"\\\\{|\\\\}\"},{token:\"meta.brace.round.livescript\",regex:\"\\\\(|\\\\)\"},{token:\"meta.brace.square.livescript\",regex:\"\\\\[|\\\\]\\\\s*\"},{include:\"#instance_variable\"},{include:\"#backslash_string\"},{include:\"#single_quoted_string\"},{include:\"#double_quoted_string\"},{include:\"#numeric\"}],\"#backslash_string\":[{token:\"string.quoted.single.livescript\",regex:\"\\\\\\\\(?:[\\\\\\\\)\\\\s,\\\\};\\\\]])?\",push:[{token:\"punctuation.definition.string.end.livescript\",regex:\"[\\\\\\\\)\\\\s,\\\\};\\\\]]\",next:\"pop\"},{defaultToken:\"string.quoted.single.livescript\"}]}],\"#double_quoted_string\":[{token:\"punctuation.definition.string.begin.livescript\",regex:'\"',push:[{token:\"punctuation.definition.string.end.livescript\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.livescript\",regex:\"\\\\\\\\(?:x[\\\\da-fA-F]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)\"},{include:\"#interpolated_livescript\"},{defaultToken:\"string.quoted.double.livescript\"}]}],\"#embedded_comment\":[{token:[\"punctuation.definition.comment.livescript\",\"comment.line.number-sign.livescript\"],regex:\"(?<!\\\\\\\\)(#)(.*$)\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!\\\\\\\\)(#).*$\\\\n\"}],\"#embedded_spaced_comment\":[{token:[\"punctuation.definition.comment.livescript\",\"comment.line.number-sign.livescript\"],regex:\"(?<!\\\\\\\\)(#\\\\s)(.*$)\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!\\\\\\\\)(#\\\\s).*$\\\\n\"}],\"#constructor_variable\":[{token:\"variable.other.readwrite.constructor.livescript\",regex:\"[a-zA-Z$_][\\\\w$-]*@{2}(?:[a-zA-Z$_][\\\\w$-]*)?\"}],\"#instance_variable\":[{token:\"variable.other.readwrite.instance.livescript\",regex:\"(?<!\\\\S)@(?:[a-zA-Z$_][\\\\w$-]*)?\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!\\\\S)(@)([a-zA-Z$_][\\\\w$-]*)?\"}],\"#interpolated_livescript\":[{todo:{token:\"punctuation.section.embedded.livescript\",regex:\"\\\\#\\\\{\",push:[{token:\"punctuation.section.embedded.livescript\",regex:\"\\\\}\",next:\"pop\"},{include:\"$self\"},{defaultToken:\"source.livescript.embedded.source\"}]}},{todo:{token:\"source.livescript.embedded.source.simple\",regex:\"\\\\#\",push:[{token:\"source.livescript.embedded.source.simple\",regex:\"\",next:\"pop\"},{include:\"$self\"},{defaultToken:\"source.livescript.embedded.source.simple\"}]}}],\"#numeric\":[{token:\"constant.numeric.livescript\",regex:\"(?<![\\\\$@a-zA-Z_])(?:[0-9]+r[0-9_]+|(?:16r|0[xX])[0-9a-fA-F_]+|[0-9]+(?:\\\\.[0-9_]+)?(?:e[+\\\\-]?[0-9_]+)?[_a-zA-Z]*)\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<![\\\\$@a-zA-Z_])(([0-9]+r[0-9_]+)|((16r|0[xX])[0-9a-fA-F_]+)|([0-9]+(\\\\.[0-9_]+)?(e[+\\\\-]?[0-9_]+)?)[_a-zA-Z]*)\"}],\"#single_quoted_string\":[{token:\"punctuation.definition.string.begin.livescript\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.livescript\",regex:\"'\",next:\"pop\"},{token:\"constant.character.escape.livescript\",regex:\"\\\\\\\\(?:x[\\\\da-fA-F]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)\"},{defaultToken:\"string.quoted.single.livescript\"}]}],\"#variable_name\":[{token:\"variable.assignment.livescript\",regex:\"[a-zA-Z\\\\$_][\\\\w$-]*(?:\\\\.\\\\w+)*(?!\\\\-)\"}]},this.normalizeRules()};s.metaData={comment:\"LiveScript Syntax: version 1\",fileTypes:[\"ls\",\"Slakefile\",\"ls.erb\"],firstLineMatch:\"^#!.*\\\\bls\",foldingStartMarker:\"^\\\\s*class\\\\s+\\\\S.*$|.*(->|=>)\\\\s*$|.*[\\\\[{]\\\\s*$\",foldingStopMarker:\"^\\\\s*$|^\\\\s*[}\\\\]]\\\\s*$\",keyEquivalent:\"^~C\",name:\"LiveScript\",scopeName:\"source.livescript\"},r.inherits(s,i),t.LiveScriptHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/)#(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/live_script\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/live_script_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./live_script_highlight_rules\").LiveScriptHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.$id=\"ace/mode/live_script\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-livescript.js",
    "content": "ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/livescript\",[\"require\",\"exports\",\"module\",\"ace/tokenizer\",\"ace/mode/matching_brace_outdent\",\"ace/mode/text\"],function(e,t,n){function u(e,t){function n(){}return n.prototype=(e.superclass=t).prototype,(e.prototype=new n).constructor=e,typeof t.extended==\"function\"&&t.extended(e),e}function a(e,t){var n={}.hasOwnProperty;for(var r in t)n.call(t,r)&&(e[r]=t[r]);return e}var r,i,s,o;r=\"(?![\\\\d\\\\s])[$\\\\w\\\\xAA-\\\\uFFDC](?:(?!\\\\s)[$\\\\w\\\\xAA-\\\\uFFDC]|-[A-Za-z])*\",t.Mode=i=function(t){function o(){var t;this.$tokenizer=new(e(\"../tokenizer\").Tokenizer)(o.Rules);if(t=e(\"../mode/matching_brace_outdent\"))this.$outdent=new t.MatchingBraceOutdent;this.$id=\"ace/mode/livescript\"}var n,i=u((a(o,t).displayName=\"LiveScriptMode\",o),t).prototype,s=o;return n=RegExp(\"(?:[({[=:]|[-~]>|\\\\b(?:e(?:lse|xport)|d(?:o|efault)|t(?:ry|hen)|finally|import(?:\\\\s*all)?|const|var|let|new|catch(?:\\\\s*\"+r+\")?))\\\\s*$\"),i.getNextLineIndent=function(e,t,r){var i,s;return i=this.$getIndent(t),s=this.$tokenizer.getLineTokens(t,e).tokens,(!s.length||s[s.length-1].type!==\"comment\")&&e===\"start\"&&n.test(t)&&(i+=r),i},i.lineCommentStart=\"#\",i.blockComment={start:\"###\",end:\"###\"},i.checkOutdent=function(e,t,n){var r;return(r=this.$outdent)!=null?r.checkOutdent(t,n):void 8},i.autoOutdent=function(e,t,n){var r;return(r=this.$outdent)!=null?r.autoOutdent(t,n):void 8},o}(e(\"../mode/text\").Mode),s=\"(?![$\\\\w]|-[A-Za-z]|\\\\s*:(?![:=]))\",o={defaultToken:\"string\"},i.Rules={start:[{token:\"keyword\",regex:\"(?:t(?:h(?:is|row|en)|ry|ypeof!?)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\\\s+own)?|inally|unction)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith)|o[fr]|return|break|let|var|loop)\"+s},{token:\"constant.language\",regex:\"(?:true|false|yes|no|on|off|null|void|undefined)\"+s},{token:\"invalid.illegal\",regex:\"(?:p(?:ackage|r(?:ivate|otected)|ublic)|i(?:mplements|nterface)|enum|static|yield)\"+s},{token:\"language.support.class\",regex:\"(?:R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|Array|Boolean|Date|Function|Number|Object|TypeError|URIError)\"+s},{token:\"language.support.function\",regex:\"(?:is(?:NaN|Finite)|parse(?:Int|Float)|Math|JSON|(?:en|de)codeURI(?:Component)?)\"+s},{token:\"variable.language\",regex:\"(?:t(?:hat|il|o)|f(?:rom|allthrough)|it|by|e)\"+s},{token:\"identifier\",regex:r+\"\\\\s*:(?![:=])\"},{token:\"variable\",regex:r},{token:\"keyword.operator\",regex:\"(?:\\\\.{3}|\\\\s+\\\\?)\"},{token:\"keyword.variable\",regex:\"(?:@+|::|\\\\.\\\\.)\",next:\"key\"},{token:\"keyword.operator\",regex:\"\\\\.\\\\s*\",next:\"key\"},{token:\"string\",regex:\"\\\\\\\\\\\\S[^\\\\s,;)}\\\\]]*\"},{token:\"string.doc\",regex:\"'''\",next:\"qdoc\"},{token:\"string.doc\",regex:'\"\"\"',next:\"qqdoc\"},{token:\"string\",regex:\"'\",next:\"qstring\"},{token:\"string\",regex:'\"',next:\"qqstring\"},{token:\"string\",regex:\"`\",next:\"js\"},{token:\"string\",regex:\"<\\\\[\",next:\"words\"},{token:\"string.regex\",regex:\"//\",next:\"heregex\"},{token:\"comment.doc\",regex:\"/\\\\*\",next:\"comment\"},{token:\"comment\",regex:\"#.*\"},{token:\"string.regex\",regex:\"\\\\/(?:[^[\\\\/\\\\n\\\\\\\\]*(?:(?:\\\\\\\\.|\\\\[[^\\\\]\\\\n\\\\\\\\]*(?:\\\\\\\\.[^\\\\]\\\\n\\\\\\\\]*)*\\\\])[^[\\\\/\\\\n\\\\\\\\]*)*)\\\\/[gimy$]{0,4}\",next:\"key\"},{token:\"constant.numeric\",regex:\"(?:0x[\\\\da-fA-F][\\\\da-fA-F_]*|(?:[2-9]|[12]\\\\d|3[0-6])r[\\\\da-zA-Z][\\\\da-zA-Z_]*|(?:\\\\d[\\\\d_]*(?:\\\\.\\\\d[\\\\d_]*)?|\\\\.\\\\d[\\\\d_]*)(?:e[+-]?\\\\d[\\\\d_]*)?[\\\\w$]*)\"},{token:\"lparen\",regex:\"[({[]\"},{token:\"rparen\",regex:\"[)}\\\\]]\",next:\"key\"},{token:\"keyword.operator\",regex:\"[\\\\^!|&%+\\\\-]+\"},{token:\"text\",regex:\"\\\\s+\"}],heregex:[{token:\"string.regex\",regex:\".*?//[gimy$?]{0,4}\",next:\"start\"},{token:\"string.regex\",regex:\"\\\\s*#{\"},{token:\"comment.regex\",regex:\"\\\\s+(?:#.*)?\"},{defaultToken:\"string.regex\"}],key:[{token:\"keyword.operator\",regex:\"[.?@!]+\"},{token:\"identifier\",regex:r,next:\"start\"},{token:\"text\",regex:\"\",next:\"start\"}],comment:[{token:\"comment.doc\",regex:\".*?\\\\*/\",next:\"start\"},{defaultToken:\"comment.doc\"}],qdoc:[{token:\"string\",regex:\".*?'''\",next:\"key\"},o],qqdoc:[{token:\"string\",regex:'.*?\"\"\"',next:\"key\"},o],qstring:[{token:\"string\",regex:\"[^\\\\\\\\']*(?:\\\\\\\\.[^\\\\\\\\']*)*'\",next:\"key\"},o],qqstring:[{token:\"string\",regex:'[^\\\\\\\\\"]*(?:\\\\\\\\.[^\\\\\\\\\"]*)*\"',next:\"key\"},o],js:[{token:\"string\",regex:\"[^\\\\\\\\`]*(?:\\\\\\\\.[^\\\\\\\\`]*)*`\",next:\"key\"},o],words:[{token:\"string\",regex:\".*?\\\\]>\",next:\"key\"},o]}})"
  },
  {
    "path": "lib/src-min-noconflict/mode-logiql.js",
    "content": "ace.define(\"ace/mode/logiql_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.block\",regex:\"/\\\\*\",push:[{token:\"comment.block\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block\"}]},{token:\"comment.single\",regex:\"//.*\"},{token:\"constant.numeric\",regex:\"\\\\d+(?:\\\\.\\\\d+)?(?:[eE][+-]?\\\\d+)?[fd]?\"},{token:\"string\",regex:'\"',push:[{token:\"string\",regex:'\"',next:\"pop\"},{defaultToken:\"string\"}]},{token:\"constant.language\",regex:\"\\\\b(true|false)\\\\b\"},{token:\"entity.name.type.logicblox\",regex:\"`[a-zA-Z_:]+(\\\\d|\\\\a)*\\\\b\"},{token:\"keyword.start\",regex:\"->\",comment:\"Constraint\"},{token:\"keyword.start\",regex:\"-->\",comment:\"Level 1 Constraint\"},{token:\"keyword.start\",regex:\"<-\",comment:\"Rule\"},{token:\"keyword.start\",regex:\"<--\",comment:\"Level 1 Rule\"},{token:\"keyword.end\",regex:\"\\\\.\",comment:\"Terminator\"},{token:\"keyword.other\",regex:\"!\",comment:\"Negation\"},{token:\"keyword.other\",regex:\",\",comment:\"Conjunction\"},{token:\"keyword.other\",regex:\";\",comment:\"Disjunction\"},{token:\"keyword.operator\",regex:\"<=|>=|!=|<|>\",comment:\"Equality\"},{token:\"keyword.other\",regex:\"@\",comment:\"Equality\"},{token:\"keyword.operator\",regex:\"\\\\+|-|\\\\*|/\",comment:\"Arithmetic operations\"},{token:\"keyword\",regex:\"::\",comment:\"Colon colon\"},{token:\"support.function\",regex:\"\\\\b(agg\\\\s*<<)\",push:[{include:\"$self\"},{token:\"support.function\",regex:\">>\",next:\"pop\"}]},{token:\"storage.modifier\",regex:\"\\\\b(lang:[\\\\w:]*)\"},{token:[\"storage.type\",\"text\"],regex:\"(export|sealed|clauses|block|alias|alias_all)(\\\\s*\\\\()(?=`)\"},{token:\"entity.name\",regex:\"[a-zA-Z_][a-zA-Z_0-9:]*(@prev|@init|@final)?(?=(\\\\(|\\\\[))\"},{token:\"variable.parameter\",regex:\"([a-zA-Z][a-zA-Z_0-9]*|_)\\\\s*(?=(,|\\\\.|<-|->|\\\\)|\\\\]|=))\"}]},this.normalizeRules()};r.inherits(s,i),t.LogiQLHighlightRules=s}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/logiql\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/logiql_highlight_rules\",\"ace/mode/folding/coffee\",\"ace/token_iterator\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./logiql_highlight_rules\").LogiQLHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=e(\"../token_iterator\").TokenIterator,a=e(\"../range\").Range,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./matching_brace_outdent\").MatchingBraceOutdent,c=function(){this.HighlightRules=s,this.foldingRules=new o,this.$outdent=new l,this.$behaviour=new f};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(/comment|string/.test(o))return r;if(s.length&&s[s.length-1].type==\"comment.single\")return r;var u=t.match();return/(-->|<--|<-|->|{)\\s*$/.test(t)&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)?!0:n!==\"\\n\"&&n!==\"\\r\\n\"?!1:/^\\s+/.test(t)?!0:!1},this.autoOutdent=function(e,t,n){if(this.$outdent.autoOutdent(t,n))return;var r=t.getLine(n),i=r.match(/^\\s+/),s=r.lastIndexOf(\".\")+1;if(!i||!n||!s)return 0;var o=t.getLine(n+1),u=this.getMatching(t,{row:n,column:s});if(!u||u.start.row==n)return 0;s=i[0].length;var f=this.$getIndent(t.getLine(u.start.row));t.replace(new a(n+1,0,n+1,s),f)},this.getMatching=function(e,t,n){t==undefined&&(t=e.selection.lead),typeof t==\"object\"&&(n=t.column,t=t.row);var r=e.getTokenAt(t,n),i=\"keyword.start\",s=\"keyword.end\",o;if(!r)return;if(r.type==i){var f=new u(e,t,n);f.step=f.stepForward}else{if(r.type!=s)return;var f=new u(e,t,n);f.step=f.stepBackward}while(o=f.step())if(o.type==i||o.type==s)break;if(!o||o.type==r.type)return;var l=f.getCurrentTokenColumn(),t=f.getCurrentTokenRow();return new a(t,l,t,l+o.value.length)},this.$id=\"ace/mode/logiql\"}.call(c.prototype),t.Mode=c})"
  },
  {
    "path": "lib/src-min-noconflict/mode-lsl.js",
    "content": "ace.define(\"ace/mode/lsl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function s(){var e=this.createKeywordMapper({\"constant.language.float.lsl\":\"DEG_TO_RAD|PI|PI_BY_TWO|RAD_TO_DEG|SQRT2|TWO_PI\",\"constant.language.integer.lsl\":\"ACTIVE|AGENT|AGENT_ALWAYS_RUN|AGENT_ATTACHMENTS|AGENT_AUTOPILOT|AGENT_AWAY|AGENT_BUSY|AGENT_BY_LEGACY_NAME|AGENT_BY_USERNAME|AGENT_CROUCHING|AGENT_FLYING|AGENT_IN_AIR|AGENT_LIST_PARCEL|AGENT_LIST_PARCEL_OWNER|AGENT_LIST_REGION|AGENT_MOUSELOOK|AGENT_ON_OBJECT|AGENT_SCRIPTED|AGENT_SITTING|AGENT_TYPING|AGENT_WALKING|ALL_SIDES|ANIM_ON|ATTACH_AVATAR_CENTER|ATTACH_BACK|ATTACH_BELLY|ATTACH_CHEST|ATTACH_CHIN|ATTACH_HEAD|ATTACH_HUD_BOTTOM|ATTACH_HUD_BOTTOM_LEFT|ATTACH_HUD_BOTTOM_RIGHT|ATTACH_HUD_CENTER_1|ATTACH_HUD_CENTER_2|ATTACH_HUD_TOP_CENTER|ATTACH_HUD_TOP_LEFT|ATTACH_HUD_TOP_RIGHT|ATTACH_LEAR|ATTACH_LEFT_PEC|ATTACH_LEYE|ATTACH_LFOOT|ATTACH_LHAND|ATTACH_LHIP|ATTACH_LLARM|ATTACH_LLLEG|ATTACH_LSHOULDER|ATTACH_LUARM|ATTACH_LULEG|ATTACH_MOUTH|ATTACH_NECK|ATTACH_NOSE|ATTACH_PELVIS|ATTACH_REAR|ATTACH_REYE|ATTACH_RFOOT|ATTACH_RHAND|ATTACH_RHIP|ATTACH_RIGHT_PEC|ATTACH_RLARM|ATTACH_RLLEG|ATTACH_RSHOULDER|ATTACH_RUARM|ATTACH_RULEG|AVOID_CHARACTERS|AVOID_DYNAMIC_OBSTACLES|AVOID_NONE|CAMERA_ACTIVE|CAMERA_BEHINDNESS_ANGLE|CAMERA_BEHINDNESS_LAG|CAMERA_DISTANCE|CAMERA_FOCUS|CAMERA_FOCUS_LAG|CAMERA_FOCUS_LOCKED|CAMERA_FOCUS_OFFSET|CAMERA_FOCUS_THRESHOLD|CAMERA_PITCH|CAMERA_POSITION|CAMERA_POSITION_LAG|CAMERA_POSITION_LOCKED|CAMERA_POSITION_THRESHOLD|CHANGED_ALLOWED_DROP|CHANGED_COLOR|CHANGED_INVENTORY|CHANGED_LINK|CHANGED_MEDIA|CHANGED_OWNER|CHANGED_REGION|CHANGED_REGION_START|CHANGED_SCALE|CHANGED_SHAPE|CHANGED_TELEPORT|CHANGED_TEXTURE|CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES|CHARACTER_AVOIDANCE_MODE|CHARACTER_CMD_JUMP|CHARACTER_CMD_SMOOTH_STOP|CHARACTER_CMD_STOP|CHARACTER_DESIRED_SPEED|CHARACTER_DESIRED_TURN_SPEED|CHARACTER_LENGTH|CHARACTER_MAX_ACCEL|CHARACTER_MAX_DECEL|CHARACTER_MAX_SPEED|CHARACTER_MAX_TURN_RADIUS|CHARACTER_ORIENTATION|CHARACTER_RADIUS|CHARACTER_STAY_WITHIN_PARCEL|CHARACTER_TYPE|CHARACTER_TYPE_A|CHARACTER_TYPE_B|CHARACTER_TYPE_C|CHARACTER_TYPE_D|CHARACTER_TYPE_NONE|CLICK_ACTION_BUY|CLICK_ACTION_NONE|CLICK_ACTION_OPEN|CLICK_ACTION_OPEN_MEDIA|CLICK_ACTION_PAY|CLICK_ACTION_PLAY|CLICK_ACTION_SIT|CLICK_ACTION_TOUCH|CONTENT_TYPE_ATOM|CONTENT_TYPE_FORM|CONTENT_TYPE_HTML|CONTENT_TYPE_JSON|CONTENT_TYPE_LLSD|CONTENT_TYPE_RSS|CONTENT_TYPE_TEXT|CONTENT_TYPE_XHTML|CONTENT_TYPE_XML|CONTROL_BACK|CONTROL_DOWN|CONTROL_FWD|CONTROL_LBUTTON|CONTROL_LEFT|CONTROL_ML_LBUTTON|CONTROL_RIGHT|CONTROL_ROT_LEFT|CONTROL_ROT_RIGHT|CONTROL_UP|DATA_BORN|DATA_NAME|DATA_ONLINE|DATA_PAYINFO|DATA_SIM_POS|DATA_SIM_RATING|DATA_SIM_STATUS|DEBUG_CHANNEL|DENSITY|ERR_GENERIC|ERR_MALFORMED_PARAMS|ERR_PARCEL_PERMISSIONS|ERR_RUNTIME_PERMISSIONS|ERR_THROTTLED|ESTATE_ACCESS_ALLOWED_AGENT_ADD|ESTATE_ACCESS_ALLOWED_AGENT_REMOVE|ESTATE_ACCESS_ALLOWED_GROUP_ADD|ESTATE_ACCESS_ALLOWED_GROUP_REMOVE|ESTATE_ACCESS_BANNED_AGENT_ADD|ESTATE_ACCESS_BANNED_AGENT_REMOVE|FALSE|FORCE_DIRECT_PATH|FRICTION|GCNP_RADIUS|GCNP_STATIC|GRAVITY_MULTIPLIER|HORIZONTAL|HTTP_BODY_MAXLENGTH|HTTP_BODY_TRUNCATED|HTTP_CUSTOM_HEADER|HTTP_METHOD|HTTP_MIMETYPE|HTTP_PRAGMA_NO_CACHE|HTTP_VERBOSE_THROTTLE|HTTP_VERIFY_CERT|INVENTORY_ALL|INVENTORY_ANIMATION|INVENTORY_BODYPART|INVENTORY_CLOTHING|INVENTORY_GESTURE|INVENTORY_LANDMARK|INVENTORY_NONE|INVENTORY_NOTECARD|INVENTORY_OBJECT|INVENTORY_SCRIPT|INVENTORY_SOUND|INVENTORY_TEXTURE|JSON_APPEND|KFM_CMD_PAUSE|KFM_CMD_PLAY|KFM_CMD_SET_MODE|KFM_CMD_STOP|KFM_COMMAND|KFM_DATA|KFM_FORWARD|KFM_LOOP|KFM_MODE|KFM_PING_PONG|KFM_REVERSE|KFM_ROTATION|KFM_TRANSLATION|LAND_LEVEL|LAND_LOWER|LAND_NOISE|LAND_RAISE|LAND_REVERT|LAND_SMOOTH|LINK_ALL_CHILDREN|LINK_ALL_OTHERS|LINK_ROOT|LINK_SET|LINK_THIS|LIST_STAT_GEOMETRIC_MEAN|LIST_STAT_MAX|LIST_STAT_MEAN|LIST_STAT_MEDIAN|LIST_STAT_MIN|LIST_STAT_NUM_COUNT|LIST_STAT_RANGE|LIST_STAT_STD_DEV|LIST_STAT_SUM|LIST_STAT_SUM_SQUARES|LOOP|MASK_BASE|MASK_EVERYONE|MASK_GROUP|MASK_NEXT|MASK_OWNER|OBJECT_ATTACHED_POINT|OBJECT_BODY_SHAPE_TYPE|OBJECT_CHARACTER_TIME|OBJECT_CLICK_ACTION|OBJECT_CREATOR|OBJECT_DESC|OBJECT_GROUP|OBJECT_HOVER_HEIGHT|OBJECT_LAST_OWNER_ID|OBJECT_NAME|OBJECT_OWNER|OBJECT_PATHFINDING_TYPE|OBJECT_PHANTOM|OBJECT_PHYSICS|OBJECT_PHYSICS_COST|OBJECT_POS|OBJECT_PRIM_EQUIVALENCE|OBJECT_RENDER_WEIGHT|OBJECT_RETURN_PARCEL|OBJECT_RETURN_PARCEL_OWNER|OBJECT_RETURN_REGION|OBJECT_ROOT|OBJECT_ROT|OBJECT_RUNNING_SCRIPT_COUNT|OBJECT_SCRIPT_MEMORY|OBJECT_SCRIPT_TIME|OBJECT_SERVER_COST|OBJECT_STREAMING_COST|OBJECT_TEMP_ON_REZ|OBJECT_TOTAL_SCRIPT_COUNT|OBJECT_UNKNOWN_DETAIL|OBJECT_VELOCITY|OPT_AVATAR|OPT_CHARACTER|OPT_EXCLUSION_VOLUME|OPT_LEGACY_LINKSET|OPT_MATERIAL_VOLUME|OPT_OTHER|OPT_STATIC_OBSTACLE|OPT_WALKABLE|PARCEL_COUNT_GROUP|PARCEL_COUNT_OTHER|PARCEL_COUNT_OWNER|PARCEL_COUNT_SELECTED|PARCEL_COUNT_TEMP|PARCEL_COUNT_TOTAL|PARCEL_DETAILS_AREA|PARCEL_DETAILS_DESC|PARCEL_DETAILS_GROUP|PARCEL_DETAILS_ID|PARCEL_DETAILS_NAME|PARCEL_DETAILS_OWNER|PARCEL_DETAILS_SEE_AVATARS|PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY|PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS|PARCEL_FLAG_ALLOW_CREATE_OBJECTS|PARCEL_FLAG_ALLOW_DAMAGE|PARCEL_FLAG_ALLOW_FLY|PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY|PARCEL_FLAG_ALLOW_GROUP_SCRIPTS|PARCEL_FLAG_ALLOW_LANDMARK|PARCEL_FLAG_ALLOW_SCRIPTS|PARCEL_FLAG_ALLOW_TERRAFORM|PARCEL_FLAG_LOCAL_SOUND_ONLY|PARCEL_FLAG_RESTRICT_PUSHOBJECT|PARCEL_FLAG_USE_ACCESS_GROUP|PARCEL_FLAG_USE_ACCESS_LIST|PARCEL_FLAG_USE_BAN_LIST|PARCEL_FLAG_USE_LAND_PASS_LIST|PARCEL_MEDIA_COMMAND_AGENT|PARCEL_MEDIA_COMMAND_AUTO_ALIGN|PARCEL_MEDIA_COMMAND_DESC|PARCEL_MEDIA_COMMAND_LOOP|PARCEL_MEDIA_COMMAND_LOOP_SET|PARCEL_MEDIA_COMMAND_PAUSE|PARCEL_MEDIA_COMMAND_PLAY|PARCEL_MEDIA_COMMAND_SIZE|PARCEL_MEDIA_COMMAND_STOP|PARCEL_MEDIA_COMMAND_TEXTURE|PARCEL_MEDIA_COMMAND_TIME|PARCEL_MEDIA_COMMAND_TYPE|PARCEL_MEDIA_COMMAND_UNLOAD|PARCEL_MEDIA_COMMAND_URL|PASS_ALWAYS|PASS_IF_NOT_HANDLED|PASS_NEVER|PASSIVE|PATROL_PAUSE_AT_WAYPOINTS|PAYMENT_INFO_ON_FILE|PAYMENT_INFO_USED|PAY_DEFAULT|PAY_HIDE|PERMISSION_ATTACH|PERMISSION_CHANGE_LINKS|PERMISSION_CONTROL_CAMERA|PERMISSION_DEBIT|PERMISSION_OVERRIDE_ANIMATIONS|PERMISSION_RETURN_OBJECTS|PERMISSION_SILENT_ESTATE_MANAGEMENT|PERMISSION_TAKE_CONTROLS|PERMISSION_TELEPORT|PERMISSION_TRACK_CAMERA|PERMISSION_TRIGGER_ANIMATION|PERM_ALL|PERM_COPY|PERM_MODIFY|PERM_MOVE|PERM_TRANSFER|PING_PONG|PRIM_ALPHA_MODE|PRIM_ALPHA_MODE_BLEND|PRIM_ALPHA_MODE_EMISSIVE|PRIM_ALPHA_MODE_MASK|PRIM_ALPHA_MODE_NONE|PRIM_BUMP_BARK|PRIM_BUMP_BLOBS|PRIM_BUMP_BRICKS|PRIM_BUMP_BRIGHT|PRIM_BUMP_CHECKER|PRIM_BUMP_CONCRETE|PRIM_BUMP_DARK|PRIM_BUMP_DISKS|PRIM_BUMP_GRAVEL|PRIM_BUMP_LARGETILE|PRIM_BUMP_NONE|PRIM_BUMP_SHINY|PRIM_BUMP_SIDING|PRIM_BUMP_STONE|PRIM_BUMP_STUCCO|PRIM_BUMP_SUCTION|PRIM_BUMP_TILE|PRIM_BUMP_WEAVE|PRIM_BUMP_WOOD|PRIM_COLOR|PRIM_DESC|PRIM_FLEXIBLE|PRIM_FULLBRIGHT|PRIM_GLOW|PRIM_HOLE_CIRCLE|PRIM_HOLE_DEFAULT|PRIM_HOLE_SQUARE|PRIM_HOLE_TRIANGLE|PRIM_LINK_TARGET|PRIM_MATERIAL|PRIM_MATERIAL_FLESH|PRIM_MATERIAL_GLASS|PRIM_MATERIAL_METAL|PRIM_MATERIAL_PLASTIC|PRIM_MATERIAL_RUBBER|PRIM_MATERIAL_STONE|PRIM_MATERIAL_WOOD|PRIM_MEDIA_ALT_IMAGE_ENABLE|PRIM_MEDIA_AUTO_LOOP|PRIM_MEDIA_AUTO_PLAY|PRIM_MEDIA_AUTO_SCALE|PRIM_MEDIA_AUTO_ZOOM|PRIM_MEDIA_CONTROLS|PRIM_MEDIA_CONTROLS_MINI|PRIM_MEDIA_CONTROLS_STANDARD|PRIM_MEDIA_CURRENT_URL|PRIM_MEDIA_FIRST_CLICK_INTERACT|PRIM_MEDIA_HEIGHT_PIXELS|PRIM_MEDIA_HOME_URL|PRIM_MEDIA_MAX_HEIGHT_PIXELS|PRIM_MEDIA_MAX_URL_LENGTH|PRIM_MEDIA_MAX_WHITELIST_COUNT|PRIM_MEDIA_MAX_WHITELIST_SIZE|PRIM_MEDIA_MAX_WIDTH_PIXELS|PRIM_MEDIA_PARAM_MAX|PRIM_MEDIA_PERMS_CONTROL|PRIM_MEDIA_PERMS_INTERACT|PRIM_MEDIA_PERM_ANYONE|PRIM_MEDIA_PERM_GROUP|PRIM_MEDIA_PERM_NONE|PRIM_MEDIA_PERM_OWNER|PRIM_MEDIA_WHITELIST|PRIM_MEDIA_WHITELIST_ENABLE|PRIM_MEDIA_WIDTH_PIXELS|PRIM_NAME|PRIM_NORMAL|PRIM_OMEGA|PRIM_PHANTOM|PRIM_PHYSICS|PRIM_PHYSICS_SHAPE_CONVEX|PRIM_PHYSICS_SHAPE_NONE|PRIM_PHYSICS_SHAPE_PRIM|PRIM_PHYSICS_SHAPE_TYPE|PRIM_POINT_LIGHT|PRIM_POSITION|PRIM_POS_LOCAL|PRIM_ROTATION|PRIM_ROT_LOCAL|PRIM_SCULPT_FLAG_INVERT|PRIM_SCULPT_FLAG_MIRROR|PRIM_SCULPT_TYPE_CYLINDER|PRIM_SCULPT_TYPE_MASK|PRIM_SCULPT_TYPE_PLANE|PRIM_SCULPT_TYPE_SPHERE|PRIM_SCULPT_TYPE_TORUS|PRIM_SHINY_HIGH|PRIM_SHINY_LOW|PRIM_SHINY_MEDIUM|PRIM_SHINY_NONE|PRIM_SIZE|PRIM_SLICE|PRIM_SPECULAR|PRIM_TEMP_ON_REZ|PRIM_TEXGEN|PRIM_TEXGEN_DEFAULT|PRIM_TEXGEN_PLANAR|PRIM_TEXT|PRIM_TEXTURE|PRIM_TYPE|PRIM_TYPE_BOX|PRIM_TYPE_CYLINDER|PRIM_TYPE_PRISM|PRIM_TYPE_RING|PRIM_TYPE_SCULPT|PRIM_TYPE_SPHERE|PRIM_TYPE_TORUS|PRIM_TYPE_TUBE|PROFILE_NONE|PROFILE_SCRIPT_MEMORY|PSYS_PART_BF_DEST_COLOR|PSYS_PART_BF_ONE|PSYS_PART_BF_ONE_MINUS_DEST_COLOR|PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA|PSYS_PART_BF_ONE_MINUS_SOURCE_COLOR|PSYS_PART_BF_SOURCE_ALPHA|PSYS_PART_BF_SOURCE_COLOR|PSYS_PART_BF_ZERO|PSYS_PART_BLEND_FUNC_DEST|PSYS_PART_BLEND_FUNC_SOURCE|PSYS_PART_BOUNCE_MASK|PSYS_PART_EMISSIVE_MASK|PSYS_PART_END_ALPHA|PSYS_PART_END_COLOR|PSYS_PART_END_GLOW|PSYS_PART_END_SCALE|PSYS_PART_FLAGS|PSYS_PART_FOLLOW_SRC_MASK|PSYS_PART_FOLLOW_VELOCITY_MASK|PSYS_PART_INTERP_COLOR_MASK|PSYS_PART_INTERP_SCALE_MASK|PSYS_PART_MAX_AGE|PSYS_PART_RIBBON_MASK|PSYS_PART_START_ALPHA|PSYS_PART_START_COLOR|PSYS_PART_START_GLOW|PSYS_PART_START_SCALE|PSYS_PART_TARGET_LINEAR_MASK|PSYS_PART_TARGET_POS_MASK|PSYS_PART_WIND_MASK|PSYS_SRC_ACCEL|PSYS_SRC_ANGLE_BEGIN|PSYS_SRC_ANGLE_END|PSYS_SRC_BURST_PART_COUNT|PSYS_SRC_BURST_RADIUS|PSYS_SRC_BURST_RATE|PSYS_SRC_BURST_SPEED_MAX|PSYS_SRC_BURST_SPEED_MIN|PSYS_SRC_MAX_AGE|PSYS_SRC_OMEGA|PSYS_SRC_PATTERN|PSYS_SRC_PATTERN_ANGLE|PSYS_SRC_PATTERN_ANGLE_CONE|PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY|PSYS_SRC_PATTERN_DROP|PSYS_SRC_PATTERN_EXPLODE|PSYS_SRC_TARGET_KEY|PSYS_SRC_TEXTURE|PUBLIC_CHANNEL|PURSUIT_FUZZ_FACTOR|PURSUIT_GOAL_TOLERANCE|PURSUIT_INTERCEPT|PURSUIT_OFFSET|PU_EVADE_HIDDEN|PU_EVADE_SPOTTED|PU_FAILURE_DYNAMIC_PATHFINDING_DISABLED|PU_FAILURE_INVALID_GOAL|PU_FAILURE_INVALID_START|PU_FAILURE_NO_NAVMESH|PU_FAILURE_NO_VALID_DESTINATION|PU_FAILURE_OTHER|PU_FAILURE_PARCEL_UNREACHABLE|PU_FAILURE_TARGET_GONE|PU_FAILURE_UNREACHABLE|PU_GOAL_REACHED|PU_SLOWDOWN_DISTANCE_REACHED|RCERR_CAST_TIME_EXCEEDED|RCERR_SIM_PERF_LOW|RCERR_UNKNOWN|RC_DATA_FLAGS|RC_DETECT_PHANTOM|RC_GET_LINK_NUM|RC_GET_NORMAL|RC_GET_ROOT_KEY|RC_MAX_HITS|RC_REJECT_AGENTS|RC_REJECT_LAND|RC_REJECT_NONPHYSICAL|RC_REJECT_PHYSICAL|RC_REJECT_TYPES|REGION_FLAG_ALLOW_DAMAGE|REGION_FLAG_ALLOW_DIRECT_TELEPORT|REGION_FLAG_BLOCK_FLY|REGION_FLAG_BLOCK_TERRAFORM|REGION_FLAG_DISABLE_COLLISIONS|REGION_FLAG_DISABLE_PHYSICS|REGION_FLAG_FIXED_SUN|REGION_FLAG_RESTRICT_PUSHOBJECT|REGION_FLAG_SANDBOX|REMOTE_DATA_CHANNEL|REMOTE_DATA_REPLY|REMOTE_DATA_REQUEST|REQUIRE_LINE_OF_SIGHT|RESTITUTION|REVERSE|ROTATE|SCALE|SCRIPTED|SIM_STAT_PCT_CHARS_STEPPED|SMOOTH|STATUS_BLOCK_GRAB|STATUS_BLOCK_GRAB_OBJECT|STATUS_BOUNDS_ERROR|STATUS_CAST_SHADOWS|STATUS_DIE_AT_EDGE|STATUS_INTERNAL_ERROR|STATUS_MALFORMED_PARAMS|STATUS_NOT_FOUND|STATUS_NOT_SUPPORTED|STATUS_OK|STATUS_PHANTOM|STATUS_PHYSICS|STATUS_RETURN_AT_EDGE|STATUS_ROTATE_X|STATUS_ROTATE_Y|STATUS_ROTATE_Z|STATUS_SANDBOX|STATUS_TYPE_MISMATCH|STATUS_WHITELIST_FAILED|STRING_TRIM|STRING_TRIM_HEAD|STRING_TRIM_TAIL|TOUCH_INVALID_FACE|TRAVERSAL_TYPE|TRAVERSAL_TYPE_FAST|TRAVERSAL_TYPE_NONE|TRAVERSAL_TYPE_SLOW|TRUE|TYPE_FLOAT|TYPE_INTEGER|TYPE_INVALID|TYPE_KEY|TYPE_ROTATION|TYPE_STRING|TYPE_VECTOR|VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY|VEHICLE_ANGULAR_DEFLECTION_TIMESCALE|VEHICLE_ANGULAR_FRICTION_TIMESCALE|VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE|VEHICLE_ANGULAR_MOTOR_DIRECTION|VEHICLE_ANGULAR_MOTOR_TIMESCALE|VEHICLE_BANKING_EFFICIENCY|VEHICLE_BANKING_MIX|VEHICLE_BANKING_TIMESCALE|VEHICLE_BUOYANCY|VEHICLE_FLAG_CAMERA_DECOUPLED|VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT|VEHICLE_FLAG_HOVER_TERRAIN_ONLY|VEHICLE_FLAG_HOVER_UP_ONLY|VEHICLE_FLAG_HOVER_WATER_ONLY|VEHICLE_FLAG_LIMIT_MOTOR_UP|VEHICLE_FLAG_LIMIT_ROLL_ONLY|VEHICLE_FLAG_MOUSELOOK_BANK|VEHICLE_FLAG_MOUSELOOK_STEER|VEHICLE_FLAG_NO_DEFLECTION_UP|VEHICLE_HOVER_EFFICIENCY|VEHICLE_HOVER_HEIGHT|VEHICLE_HOVER_TIMESCALE|VEHICLE_LINEAR_DEFLECTION_EFFICIENCY|VEHICLE_LINEAR_DEFLECTION_TIMESCALE|VEHICLE_LINEAR_FRICTION_TIMESCALE|VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE|VEHICLE_LINEAR_MOTOR_DIRECTION|VEHICLE_LINEAR_MOTOR_OFFSET|VEHICLE_LINEAR_MOTOR_TIMESCALE|VEHICLE_REFERENCE_FRAME|VEHICLE_TYPE_AIRPLANE|VEHICLE_TYPE_BALLOON|VEHICLE_TYPE_BOAT|VEHICLE_TYPE_CAR|VEHICLE_TYPE_NONE|VEHICLE_TYPE_SLED|VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY|VEHICLE_VERTICAL_ATTRACTION_TIMESCALE|VERTICAL|WANDER_PAUSE_AT_WAYPOINTS|XP_ERROR_EXPERIENCES_DISABLED|XP_ERROR_EXPERIENCE_DISABLED|XP_ERROR_EXPERIENCE_SUSPENDED|XP_ERROR_INVALID_EXPERIENCE|XP_ERROR_INVALID_PARAMETERS|XP_ERROR_KEY_NOT_FOUND|XP_ERROR_MATURITY_EXCEEDED|XP_ERROR_NONE|XP_ERROR_NOT_FOUND|XP_ERROR_NOT_PERMITTED|XP_ERROR_NO_EXPERIENCE|XP_ERROR_QUOTA_EXCEEDED|XP_ERROR_RETRY_UPDATE|XP_ERROR_STORAGE_EXCEPTION|XP_ERROR_STORE_DISABLED|XP_ERROR_THROTTLED|XP_ERROR_UNKNOWN_ERROR\",\"constant.language.integer.boolean.lsl\":\"FALSE|TRUE\",\"constant.language.quaternion.lsl\":\"ZERO_ROTATION\",\"constant.language.string.lsl\":\"EOF|JSON_ARRAY|JSON_DELETE|JSON_FALSE|JSON_INVALID|JSON_NULL|JSON_NUMBER|JSON_OBJECT|JSON_STRING|JSON_TRUE|NULL_KEY|TEXTURE_BLANK|TEXTURE_DEFAULT|TEXTURE_MEDIA|TEXTURE_PLYWOOD|TEXTURE_TRANSPARENT|URL_REQUEST_DENIED|URL_REQUEST_GRANTED\",\"constant.language.vector.lsl\":\"TOUCH_INVALID_TEXCOORD|TOUCH_INVALID_VECTOR|ZERO_VECTOR\",\"invalid.broken.lsl\":\"LAND_LARGE_BRUSH|LAND_MEDIUM_BRUSH|LAND_SMALL_BRUSH\",\"invalid.deprecated.lsl\":\"ATTACH_LPEC|ATTACH_RPEC|DATA_RATING|OBJECT_ATTACHMENT_GEOMETRY_BYTES|OBJECT_ATTACHMENT_SURFACE_AREA|PRIM_CAST_SHADOWS|PRIM_MATERIAL_LIGHT|PRIM_TYPE_LEGACY|PSYS_SRC_INNERANGLE|PSYS_SRC_OUTERANGLE|VEHICLE_FLAG_NO_FLY_UP|llClearExperiencePermissions|llCloud|llGetExperienceList|llMakeExplosion|llMakeFire|llMakeFountain|llMakeSmoke|llRemoteDataSetRegion|llSound|llSoundPreload|llXorBase64Strings|llXorBase64StringsCorrect\",\"invalid.illegal.lsl\":\"event\",\"invalid.unimplemented.lsl\":\"CHARACTER_MAX_ANGULAR_ACCEL|CHARACTER_MAX_ANGULAR_SPEED|CHARACTER_TURN_SPEED_MULTIPLIER|PERMISSION_CHANGE_JOINTS|PERMISSION_CHANGE_PERMISSIONS|PERMISSION_EXPERIENCE|PERMISSION_RELEASE_OWNERSHIP|PERMISSION_REMAP_CONTROLS|PRIM_PHYSICS_MATERIAL|PSYS_SRC_OBJ_REL_MASK|llCollisionSprite|llPointAt|llRefreshPrimURL|llReleaseCamera|llRemoteLoadScript|llSetPrimURL|llStopPointAt|llTakeCamera\",\"reserved.godmode.lsl\":\"llGodLikeRezObject|llSetInventoryPermMask|llSetObjectPermMask\",\"reserved.log.lsl\":\"print\",\"keyword.control.lsl\":\"do|else|for|if|jump|return|while\",\"storage.type.lsl\":\"float|integer|key|list|quaternion|rotation|string|vector\",\"support.function.lsl\":\"llAbs|llAcos|llAddToLandBanList|llAddToLandPassList|llAdjustSoundVolume|llAgentInExperience|llAllowInventoryDrop|llAngleBetween|llApplyImpulse|llApplyRotationalImpulse|llAsin|llAtan2|llAttachToAvatar|llAttachToAvatarTemp|llAvatarOnLinkSitTarget|llAvatarOnSitTarget|llAxes2Rot|llAxisAngle2Rot|llBase64ToInteger|llBase64ToString|llBreakAllLinks|llBreakLink|llCSV2List|llCastRay|llCeil|llClearCameraParams|llClearLinkMedia|llClearPrimMedia|llCloseRemoteDataChannel|llCollisionFilter|llCollisionSound|llCos|llCreateCharacter|llCreateKeyValue|llCreateLink|llDataSizeKeyValue|llDeleteCharacter|llDeleteKeyValue|llDeleteSubList|llDeleteSubString|llDetachFromAvatar|llDetectedGrab|llDetectedGroup|llDetectedKey|llDetectedLinkNumber|llDetectedName|llDetectedOwner|llDetectedPos|llDetectedRot|llDetectedTouchBinormal|llDetectedTouchFace|llDetectedTouchNormal|llDetectedTouchPos|llDetectedTouchST|llDetectedTouchUV|llDetectedType|llDetectedVel|llDialog|llDie|llDumpList2String|llEdgeOfWorld|llEjectFromLand|llEmail|llEscapeURL|llEuler2Rot|llEvade|llExecCharacterCmd|llFabs|llFleeFrom|llFloor|llForceMouselook|llFrand|llGenerateKey|llGetAccel|llGetAgentInfo|llGetAgentLanguage|llGetAgentList|llGetAgentSize|llGetAlpha|llGetAndResetTime|llGetAnimation|llGetAnimationList|llGetAnimationOverride|llGetAttached|llGetAttachedList|llGetBoundingBox|llGetCameraPos|llGetCameraRot|llGetCenterOfMass|llGetClosestNavPoint|llGetColor|llGetCreator|llGetDate|llGetDisplayName|llGetEnergy|llGetEnv|llGetExperienceDetails|llGetExperienceErrorMessage|llGetForce|llGetFreeMemory|llGetFreeURLs|llGetGMTclock|llGetGeometricCenter|llGetHTTPHeader|llGetInventoryCreator|llGetInventoryKey|llGetInventoryName|llGetInventoryNumber|llGetInventoryPermMask|llGetInventoryType|llGetKey|llGetLandOwnerAt|llGetLinkKey|llGetLinkMedia|llGetLinkName|llGetLinkNumber|llGetLinkNumberOfSides|llGetLinkPrimitiveParams|llGetListEntryType|llGetListLength|llGetLocalPos|llGetLocalRot|llGetMass|llGetMassMKS|llGetMaxScaleFactor|llGetMemoryLimit|llGetMinScaleFactor|llGetNextEmail|llGetNotecardLine|llGetNumberOfNotecardLines|llGetNumberOfPrims|llGetNumberOfSides|llGetObjectDesc|llGetObjectDetails|llGetObjectMass|llGetObjectName|llGetObjectPermMask|llGetObjectPrimCount|llGetOmega|llGetOwner|llGetOwnerKey|llGetParcelDetails|llGetParcelFlags|llGetParcelMaxPrims|llGetParcelMusicURL|llGetParcelPrimCount|llGetParcelPrimOwners|llGetPermissions|llGetPermissionsKey|llGetPhysicsMaterial|llGetPos|llGetPrimMediaParams|llGetPrimitiveParams|llGetRegionAgentCount|llGetRegionCorner|llGetRegionFPS|llGetRegionFlags|llGetRegionName|llGetRegionTimeDilation|llGetRootPosition|llGetRootRotation|llGetRot|llGetSPMaxMemory|llGetScale|llGetScriptName|llGetScriptState|llGetSimStats|llGetSimulatorHostname|llGetStartParameter|llGetStaticPath|llGetStatus|llGetSubString|llGetSunDirection|llGetTexture|llGetTextureOffset|llGetTextureRot|llGetTextureScale|llGetTime|llGetTimeOfDay|llGetTimestamp|llGetTorque|llGetUnixTime|llGetUsedMemory|llGetUsername|llGetVel|llGetWallclock|llGiveInventory|llGiveInventoryList|llGiveMoney|llGround|llGroundContour|llGroundNormal|llGroundRepel|llGroundSlope|llHTTPRequest|llHTTPResponse|llInsertString|llInstantMessage|llIntegerToBase64|llJson2List|llJsonGetValue|llJsonSetValue|llJsonValueType|llKey2Name|llKeyCountKeyValue|llKeysKeyValue|llLinkParticleSystem|llLinkSitTarget|llList2CSV|llList2Float|llList2Integer|llList2Json|llList2Key|llList2List|llList2ListStrided|llList2Rot|llList2String|llList2Vector|llListFindList|llListInsertList|llListRandomize|llListReplaceList|llListSort|llListStatistics|llListen|llListenControl|llListenRemove|llLoadURL|llLog|llLog10|llLookAt|llLoopSound|llLoopSoundMaster|llLoopSoundSlave|llMD5String|llManageEstateAccess|llMapDestination|llMessageLinked|llMinEventDelay|llModPow|llModifyLand|llMoveToTarget|llNavigateTo|llOffsetTexture|llOpenRemoteDataChannel|llOverMyLand|llOwnerSay|llParcelMediaCommandList|llParcelMediaQuery|llParseString2List|llParseStringKeepNulls|llParticleSystem|llPassCollisions|llPassTouches|llPatrolPoints|llPlaySound|llPlaySoundSlave|llPow|llPreloadSound|llPursue|llPushObject|llReadKeyValue|llRegionSay|llRegionSayTo|llReleaseControls|llReleaseURL|llRemoteDataReply|llRemoteLoadScriptPin|llRemoveFromLandBanList|llRemoveFromLandPassList|llRemoveInventory|llRemoveVehicleFlags|llRequestAgentData|llRequestDisplayName|llRequestExperiencePermissions|llRequestInventoryData|llRequestPermissions|llRequestSecureURL|llRequestSimulatorData|llRequestURL|llRequestUsername|llResetAnimationOverride|llResetLandBanList|llResetLandPassList|llResetOtherScript|llResetScript|llResetTime|llReturnObjectsByID|llReturnObjectsByOwner|llRezAtRoot|llRezObject|llRot2Angle|llRot2Axis|llRot2Euler|llRot2Fwd|llRot2Left|llRot2Up|llRotBetween|llRotLookAt|llRotTarget|llRotTargetRemove|llRotateTexture|llRound|llSHA1String|llSameGroup|llSay|llScaleByFactor|llScaleTexture|llScriptDanger|llScriptProfiler|llSendRemoteData|llSensor|llSensorRemove|llSensorRepeat|llSetAlpha|llSetAngularVelocity|llSetAnimationOverride|llSetBuoyancy|llSetCameraAtOffset|llSetCameraEyeOffset|llSetCameraParams|llSetClickAction|llSetColor|llSetContentType|llSetDamage|llSetForce|llSetForceAndTorque|llSetHoverHeight|llSetKeyframedMotion|llSetLinkAlpha|llSetLinkCamera|llSetLinkColor|llSetLinkMedia|llSetLinkPrimitiveParams|llSetLinkPrimitiveParamsFast|llSetLinkTexture|llSetLinkTextureAnim|llSetLocalRot|llSetMemoryLimit|llSetObjectDesc|llSetObjectName|llSetParcelMusicURL|llSetPayPrice|llSetPhysicsMaterial|llSetPos|llSetPrimMediaParams|llSetPrimitiveParams|llSetRegionPos|llSetRemoteScriptAccessPin|llSetRot|llSetScale|llSetScriptState|llSetSitText|llSetSoundQueueing|llSetSoundRadius|llSetStatus|llSetText|llSetTexture|llSetTextureAnim|llSetTimerEvent|llSetTorque|llSetTouchText|llSetVehicleFlags|llSetVehicleFloatParam|llSetVehicleRotationParam|llSetVehicleType|llSetVehicleVectorParam|llSetVelocity|llShout|llSin|llSitTarget|llSleep|llSqrt|llStartAnimation|llStopAnimation|llStopHover|llStopLookAt|llStopMoveToTarget|llStopSound|llStringLength|llStringToBase64|llStringTrim|llSubStringIndex|llTakeControls|llTan|llTarget|llTargetOmega|llTargetRemove|llTeleportAgent|llTeleportAgentGlobalCoords|llTeleportAgentHome|llTextBox|llToLower|llToUpper|llTransferLindenDollars|llTriggerSound|llTriggerSoundLimited|llUnSit|llUnescapeURL|llUpdateCharacter|llUpdateKeyValue|llVecDist|llVecMag|llVecNorm|llVolumeDetect|llWanderWithin|llWater|llWhisper|llWind|llXorBase64\",\"support.function.event.lsl\":\"at_rot_target|at_target|attach|changed|collision|collision_end|collision_start|control|dataserver|email|experience_permissions|experience_permissions_denied|http_request|http_response|land_collision|land_collision_end|land_collision_start|link_message|listen|money|moving_end|moving_start|no_sensor|not_at_rot_target|not_at_target|object_rez|on_rez|path_update|remote_data|run_time_permissions|sensor|state_entry|state_exit|timer|touch|touch_end|touch_start|transaction_result\"},\"identifier\");this.$rules={start:[{token:\"comment.line.double-slash.lsl\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment.block.begin.lsl\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string.quoted.double.lsl\",start:'\"',end:'\"',next:[{token:\"constant.character.escape.lsl\",regex:/\\\\[tn\"\\\\]/}]},{token:\"constant.numeric.lsl\",regex:\"(0[xX][0-9a-fA-F]+|[+-]?[0-9]+(?:(?:\\\\.[0-9]*)?(?:[eE][+-]?[0-9]+)?)?)\\\\b\"},{token:\"entity.name.state.lsl\",regex:\"\\\\b((state)\\\\s+[A-Za-z_]\\\\w*|default)\\\\b\"},{token:e,regex:\"\\\\b[a-zA-Z_][a-zA-Z0-9_]*\\\\b\"},{token:\"support.function.user-defined.lsl\",regex:/\\b([a-zA-Z_]\\w*)(?=\\(.*?\\))/},{token:\"keyword.operator.lsl\",regex:\"\\\\+\\\\+|\\\\-\\\\-|<<|>>|&&?|\\\\|\\\\|?|\\\\^|~|[!%<>=*+\\\\-\\\\/]=?\"},{token:\"invalid.illegal.keyword.operator.lsl\",regex:\":=?\"},{token:\"punctuation.operator.lsl\",regex:\"\\\\,|\\\\;\"},{token:\"paren.lparen.lsl\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen.lsl\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text.lsl\",regex:\"\\\\s+\"}],comment:[{token:\"comment.block.end.lsl\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment.block.lsl\"}]},this.normalizeRules()}var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules;r.inherits(s,i),t.LSLHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/lsl\",[\"require\",\"exports\",\"module\",\"ace/mode/lsl_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/text\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/lib/oop\"],function(e,t,n){\"use strict\";var r=e(\"./lsl_highlight_rules\").LSLHighlightRules,i=e(\"./matching_brace_outdent\").MatchingBraceOutdent,s=e(\"../range\").Range,o=e(\"./text\").Mode,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=e(\"../lib/oop\"),l=function(){this.HighlightRules=r,this.$outdent=new i,this.$behaviour=new u,this.foldingRules=new a};f.inherits(l,o),function(){this.lineCommentStart=[\"//\"],this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type===\"comment.block.lsl\")return r;if(e===\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/lsl\"}.call(l.prototype),t.Mode=l})"
  },
  {
    "path": "lib/src-min-noconflict/mode-lua.js",
    "content": "ace.define(\"ace/mode/lua_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"break|do|else|elseif|end|for|function|if|in|local|repeat|return|then|until|while|or|and|not\",t=\"true|false|nil|_G|_VERSION\",n=\"string|xpcall|package|tostring|print|os|unpack|require|getfenv|setmetatable|next|assert|tonumber|io|rawequal|collectgarbage|getmetatable|module|rawset|math|debug|pcall|table|newproxy|type|coroutine|_G|select|gcinfo|pairs|rawget|loadstring|ipairs|_VERSION|dofile|setfenv|load|error|loadfile|sub|upper|len|gfind|rep|find|match|char|dump|gmatch|reverse|byte|format|gsub|lower|preload|loadlib|loaded|loaders|cpath|config|path|seeall|exit|setlocale|date|getenv|difftime|remove|time|clock|tmpname|rename|execute|lines|write|close|flush|open|output|type|read|stderr|stdin|input|stdout|popen|tmpfile|log|max|acos|huge|ldexp|pi|cos|tanh|pow|deg|tan|cosh|sinh|random|randomseed|frexp|ceil|floor|rad|abs|sqrt|modf|asin|min|mod|fmod|log10|atan2|exp|sin|atan|getupvalue|debug|sethook|getmetatable|gethook|setmetatable|setlocal|traceback|setfenv|getinfo|setupvalue|getlocal|getregistry|getfenv|setn|insert|getn|foreachi|maxn|foreach|concat|sort|remove|resume|yield|status|wrap|create|running|__add|__sub|__mod|__unm|__concat|__lt|__index|__call|__gc|__metatable|__mul|__div|__pow|__len|__eq|__le|__newindex|__tostring|__mode|__tonumber\",r=\"string|package|os|io|math|debug|table|coroutine\",i=\"setn|foreach|foreachi|gcinfo|log10|maxn\",s=this.createKeywordMapper({keyword:e,\"support.function\":n,\"keyword.deprecated\":i,\"constant.library\":r,\"constant.language\":t,\"variable.language\":\"self\"},\"identifier\"),o=\"(?:(?:[1-9]\\\\d*)|(?:0))\",u=\"(?:0[xX][\\\\dA-Fa-f]+)\",a=\"(?:\"+o+\"|\"+u+\")\",f=\"(?:\\\\.\\\\d+)\",l=\"(?:\\\\d+)\",c=\"(?:(?:\"+l+\"?\"+f+\")|(?:\"+l+\"\\\\.))\",h=\"(?:\"+c+\")\";this.$rules={start:[{stateName:\"bracketedComment\",onMatch:function(e,t,n){return n.unshift(this.next,e.length-2,t),\"comment\"},regex:/\\-\\-\\[=*\\[/,next:[{onMatch:function(e,t,n){return e.length==n[1]?(n.shift(),n.shift(),this.next=n.shift()):this.next=\"\",\"comment\"},regex:/\\]=*\\]/,next:\"start\"},{defaultToken:\"comment\"}]},{token:\"comment\",regex:\"\\\\-\\\\-.*$\"},{stateName:\"bracketedString\",onMatch:function(e,t,n){return n.unshift(this.next,e.length,t),\"comment\"},regex:/\\[=*\\[/,next:[{onMatch:function(e,t,n){return e.length==n[1]?(n.shift(),n.shift(),this.next=n.shift()):this.next=\"\",\"comment\"},regex:/\\]=*\\]/,next:\"start\"},{defaultToken:\"comment\"}]},{token:\"string\",regex:'\"(?:[^\\\\\\\\]|\\\\\\\\.)*?\"'},{token:\"string\",regex:\"'(?:[^\\\\\\\\]|\\\\\\\\.)*?'\"},{token:\"constant.numeric\",regex:h},{token:\"constant.numeric\",regex:a+\"\\\\b\"},{token:s,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\/|%|\\\\#|\\\\^|~|<|>|<=|=>|==|~=|=|\\\\:|\\\\.\\\\.\\\\.|\\\\.\\\\.\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text\",regex:\"\\\\s+|\\\\w+\"}]},this.normalizeRules()};r.inherits(s,i),t.LuaHighlightRules=s}),ace.define(\"ace/mode/folding/lua\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=e(\"../../token_iterator\").TokenIterator,u=t.FoldMode=function(){};r.inherits(u,i),function(){this.foldingStartMarker=/\\b(function|then|do|repeat)\\b|{\\s*$|(\\[=*\\[)/,this.foldingStopMarker=/\\bend\\b|^\\s*}|\\]=*\\]/,this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=this.foldingStartMarker.test(r),s=this.foldingStopMarker.test(r);if(i&&!s){var o=r.match(this.foldingStartMarker);if(o[1]==\"then\"&&/\\belseif\\b/.test(r))return;if(o[1]){if(e.getTokenAt(n,o.index+1).type===\"keyword\")return\"start\"}else{if(!o[2])return\"start\";var u=e.bgTokenizer.getState(n)||\"\";if(u[0]==\"bracketedComment\"||u[0]==\"bracketedString\")return\"start\"}}if(t!=\"markbeginend\"||!s||i&&s)return\"\";var o=r.match(this.foldingStopMarker);if(o[0]===\"end\"){if(e.getTokenAt(n,o.index+1).type===\"keyword\")return\"end\"}else{if(o[0][0]!==\"]\")return\"end\";var u=e.bgTokenizer.getState(n-1)||\"\";if(u[0]==\"bracketedComment\"||u[0]==\"bracketedString\")return\"end\"}},this.getFoldWidgetRange=function(e,t,n){var r=e.doc.getLine(n),i=this.foldingStartMarker.exec(r);if(i)return i[1]?this.luaBlock(e,n,i.index+1):i[2]?e.getCommentFoldRange(n,i.index+1):this.openingBracketBlock(e,\"{\",n,i.index);var i=this.foldingStopMarker.exec(r);if(i)return i[0]===\"end\"&&e.getTokenAt(n,i.index+1).type===\"keyword\"?this.luaBlock(e,n,i.index+1):i[0][0]===\"]\"?e.getCommentFoldRange(n,i.index+1):this.closingBracketBlock(e,\"}\",n,i.index+i[0].length)},this.luaBlock=function(e,t,n){var r=new o(e,t,n),i={\"function\":1,\"do\":1,then:1,elseif:-1,end:-1,repeat:1,until:-1},u=r.getCurrentToken();if(!u||u.type!=\"keyword\")return;var a=u.value,f=[a],l=i[a];if(!l)return;var c=l===-1?r.getCurrentTokenColumn():e.getLine(t).length,h=t;r.step=l===-1?r.stepBackward:r.stepForward;while(u=r.step()){if(u.type!==\"keyword\")continue;var p=l*i[u.value];if(p>0)f.unshift(u.value);else if(p<=0){f.shift();if(!f.length&&u.value!=\"elseif\")break;p===0&&f.unshift(u.value)}}var t=r.getCurrentTokenRow();return l===-1?new s(t,e.getLine(t).length,h,c):new s(h,c,t,r.getCurrentTokenColumn())}}.call(u.prototype)}),ace.define(\"ace/mode/lua\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/lua_highlight_rules\",\"ace/mode/folding/lua\",\"ace/range\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./lua_highlight_rules\").LuaHighlightRules,o=e(\"./folding/lua\").FoldMode,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(f,i),function(){function n(t){var n=0;for(var r=0;r<t.length;r++){var i=t[r];i.type==\"keyword\"?i.value in e&&(n+=e[i.value]):i.type==\"paren.lparen\"?n+=i.value.length:i.type==\"paren.rparen\"&&(n-=i.value.length)}return n<0?-1:n>0?1:0}this.lineCommentStart=\"--\",this.blockComment={start:\"--[\",end:\"]--\"};var e={\"function\":1,then:1,\"do\":1,\"else\":1,elseif:1,repeat:1,end:-1,until:-1},t=[\"else\",\"elseif\",\"end\",\"until\"];this.getNextLineIndent=function(e,t,r){var i=this.$getIndent(t),s=0,o=this.getTokenizer().getLineTokens(t,e),u=o.tokens;return e==\"start\"&&(s=n(u)),s>0?i+r:s<0&&i.substr(i.length-r.length)==r&&!this.checkOutdent(e,t,\"\\n\")?i.substr(0,i.length-r.length):i},this.checkOutdent=function(e,n,r){if(r!=\"\\n\"&&r!=\"\\r\"&&r!=\"\\r\\n\")return!1;if(n.match(/^\\s*[\\)\\}\\]]$/))return!0;var i=this.getTokenizer().getLineTokens(n.trim(),e).tokens;return!i||!i.length?!1:i[0].type==\"keyword\"&&t.indexOf(i[0].value)!=-1},this.autoOutdent=function(e,t,r){var i=t.getLine(r-1),s=this.$getIndent(i).length,o=this.getTokenizer().getLineTokens(i,\"start\").tokens,a=t.getTabString().length,f=s+a*n(o),l=this.$getIndent(t.getLine(r)).length;if(l<f)return;t.outdentRows(new u(r,0,r+2,0))},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/lua_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/lua\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict/mode-luapage.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/lua_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"break|do|else|elseif|end|for|function|if|in|local|repeat|return|then|until|while|or|and|not\",t=\"true|false|nil|_G|_VERSION\",n=\"string|xpcall|package|tostring|print|os|unpack|require|getfenv|setmetatable|next|assert|tonumber|io|rawequal|collectgarbage|getmetatable|module|rawset|math|debug|pcall|table|newproxy|type|coroutine|_G|select|gcinfo|pairs|rawget|loadstring|ipairs|_VERSION|dofile|setfenv|load|error|loadfile|sub|upper|len|gfind|rep|find|match|char|dump|gmatch|reverse|byte|format|gsub|lower|preload|loadlib|loaded|loaders|cpath|config|path|seeall|exit|setlocale|date|getenv|difftime|remove|time|clock|tmpname|rename|execute|lines|write|close|flush|open|output|type|read|stderr|stdin|input|stdout|popen|tmpfile|log|max|acos|huge|ldexp|pi|cos|tanh|pow|deg|tan|cosh|sinh|random|randomseed|frexp|ceil|floor|rad|abs|sqrt|modf|asin|min|mod|fmod|log10|atan2|exp|sin|atan|getupvalue|debug|sethook|getmetatable|gethook|setmetatable|setlocal|traceback|setfenv|getinfo|setupvalue|getlocal|getregistry|getfenv|setn|insert|getn|foreachi|maxn|foreach|concat|sort|remove|resume|yield|status|wrap|create|running|__add|__sub|__mod|__unm|__concat|__lt|__index|__call|__gc|__metatable|__mul|__div|__pow|__len|__eq|__le|__newindex|__tostring|__mode|__tonumber\",r=\"string|package|os|io|math|debug|table|coroutine\",i=\"setn|foreach|foreachi|gcinfo|log10|maxn\",s=this.createKeywordMapper({keyword:e,\"support.function\":n,\"keyword.deprecated\":i,\"constant.library\":r,\"constant.language\":t,\"variable.language\":\"self\"},\"identifier\"),o=\"(?:(?:[1-9]\\\\d*)|(?:0))\",u=\"(?:0[xX][\\\\dA-Fa-f]+)\",a=\"(?:\"+o+\"|\"+u+\")\",f=\"(?:\\\\.\\\\d+)\",l=\"(?:\\\\d+)\",c=\"(?:(?:\"+l+\"?\"+f+\")|(?:\"+l+\"\\\\.))\",h=\"(?:\"+c+\")\";this.$rules={start:[{stateName:\"bracketedComment\",onMatch:function(e,t,n){return n.unshift(this.next,e.length-2,t),\"comment\"},regex:/\\-\\-\\[=*\\[/,next:[{onMatch:function(e,t,n){return e.length==n[1]?(n.shift(),n.shift(),this.next=n.shift()):this.next=\"\",\"comment\"},regex:/\\]=*\\]/,next:\"start\"},{defaultToken:\"comment\"}]},{token:\"comment\",regex:\"\\\\-\\\\-.*$\"},{stateName:\"bracketedString\",onMatch:function(e,t,n){return n.unshift(this.next,e.length,t),\"comment\"},regex:/\\[=*\\[/,next:[{onMatch:function(e,t,n){return e.length==n[1]?(n.shift(),n.shift(),this.next=n.shift()):this.next=\"\",\"comment\"},regex:/\\]=*\\]/,next:\"start\"},{defaultToken:\"comment\"}]},{token:\"string\",regex:'\"(?:[^\\\\\\\\]|\\\\\\\\.)*?\"'},{token:\"string\",regex:\"'(?:[^\\\\\\\\]|\\\\\\\\.)*?'\"},{token:\"constant.numeric\",regex:h},{token:\"constant.numeric\",regex:a+\"\\\\b\"},{token:s,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\/|%|\\\\#|\\\\^|~|<|>|<=|=>|==|~=|=|\\\\:|\\\\.\\\\.\\\\.|\\\\.\\\\.\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text\",regex:\"\\\\s+|\\\\w+\"}]},this.normalizeRules()};r.inherits(s,i),t.LuaHighlightRules=s}),ace.define(\"ace/mode/folding/lua\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=e(\"../../token_iterator\").TokenIterator,u=t.FoldMode=function(){};r.inherits(u,i),function(){this.foldingStartMarker=/\\b(function|then|do|repeat)\\b|{\\s*$|(\\[=*\\[)/,this.foldingStopMarker=/\\bend\\b|^\\s*}|\\]=*\\]/,this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=this.foldingStartMarker.test(r),s=this.foldingStopMarker.test(r);if(i&&!s){var o=r.match(this.foldingStartMarker);if(o[1]==\"then\"&&/\\belseif\\b/.test(r))return;if(o[1]){if(e.getTokenAt(n,o.index+1).type===\"keyword\")return\"start\"}else{if(!o[2])return\"start\";var u=e.bgTokenizer.getState(n)||\"\";if(u[0]==\"bracketedComment\"||u[0]==\"bracketedString\")return\"start\"}}if(t!=\"markbeginend\"||!s||i&&s)return\"\";var o=r.match(this.foldingStopMarker);if(o[0]===\"end\"){if(e.getTokenAt(n,o.index+1).type===\"keyword\")return\"end\"}else{if(o[0][0]!==\"]\")return\"end\";var u=e.bgTokenizer.getState(n-1)||\"\";if(u[0]==\"bracketedComment\"||u[0]==\"bracketedString\")return\"end\"}},this.getFoldWidgetRange=function(e,t,n){var r=e.doc.getLine(n),i=this.foldingStartMarker.exec(r);if(i)return i[1]?this.luaBlock(e,n,i.index+1):i[2]?e.getCommentFoldRange(n,i.index+1):this.openingBracketBlock(e,\"{\",n,i.index);var i=this.foldingStopMarker.exec(r);if(i)return i[0]===\"end\"&&e.getTokenAt(n,i.index+1).type===\"keyword\"?this.luaBlock(e,n,i.index+1):i[0][0]===\"]\"?e.getCommentFoldRange(n,i.index+1):this.closingBracketBlock(e,\"}\",n,i.index+i[0].length)},this.luaBlock=function(e,t,n){var r=new o(e,t,n),i={\"function\":1,\"do\":1,then:1,elseif:-1,end:-1,repeat:1,until:-1},u=r.getCurrentToken();if(!u||u.type!=\"keyword\")return;var a=u.value,f=[a],l=i[a];if(!l)return;var c=l===-1?r.getCurrentTokenColumn():e.getLine(t).length,h=t;r.step=l===-1?r.stepBackward:r.stepForward;while(u=r.step()){if(u.type!==\"keyword\")continue;var p=l*i[u.value];if(p>0)f.unshift(u.value);else if(p<=0){f.shift();if(!f.length&&u.value!=\"elseif\")break;p===0&&f.unshift(u.value)}}var t=r.getCurrentTokenRow();return l===-1?new s(t,e.getLine(t).length,h,c):new s(h,c,t,r.getCurrentTokenColumn())}}.call(u.prototype)}),ace.define(\"ace/mode/lua\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/lua_highlight_rules\",\"ace/mode/folding/lua\",\"ace/range\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./lua_highlight_rules\").LuaHighlightRules,o=e(\"./folding/lua\").FoldMode,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(f,i),function(){function n(t){var n=0;for(var r=0;r<t.length;r++){var i=t[r];i.type==\"keyword\"?i.value in e&&(n+=e[i.value]):i.type==\"paren.lparen\"?n+=i.value.length:i.type==\"paren.rparen\"&&(n-=i.value.length)}return n<0?-1:n>0?1:0}this.lineCommentStart=\"--\",this.blockComment={start:\"--[\",end:\"]--\"};var e={\"function\":1,then:1,\"do\":1,\"else\":1,elseif:1,repeat:1,end:-1,until:-1},t=[\"else\",\"elseif\",\"end\",\"until\"];this.getNextLineIndent=function(e,t,r){var i=this.$getIndent(t),s=0,o=this.getTokenizer().getLineTokens(t,e),u=o.tokens;return e==\"start\"&&(s=n(u)),s>0?i+r:s<0&&i.substr(i.length-r.length)==r&&!this.checkOutdent(e,t,\"\\n\")?i.substr(0,i.length-r.length):i},this.checkOutdent=function(e,n,r){if(r!=\"\\n\"&&r!=\"\\r\"&&r!=\"\\r\\n\")return!1;if(n.match(/^\\s*[\\)\\}\\]]$/))return!0;var i=this.getTokenizer().getLineTokens(n.trim(),e).tokens;return!i||!i.length?!1:i[0].type==\"keyword\"&&t.indexOf(i[0].value)!=-1},this.autoOutdent=function(e,t,r){var i=t.getLine(r-1),s=this.$getIndent(i).length,o=this.getTokenizer().getLineTokens(i,\"start\").tokens,a=t.getTabString().length,f=s+a*n(o),l=this.$getIndent(t.getLine(r)).length;if(l<f)return;t.outdentRows(new u(r,0,r+2,0))},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/lua_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/lua\"}.call(f.prototype),t.Mode=f}),ace.define(\"ace/mode/luapage_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/lua_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=e(\"./lua_highlight_rules\").LuaHighlightRules,o=function(){i.call(this);var e=[{token:\"keyword\",regex:\"<\\\\%\\\\=?\",push:\"lua-start\"},{token:\"keyword\",regex:\"<\\\\?lua\\\\=?\",push:\"lua-start\"}],t=[{token:\"keyword\",regex:\"\\\\%>\",next:\"pop\"},{token:\"keyword\",regex:\"\\\\?>\",next:\"pop\"}];this.embedRules(s,\"lua-\",t,[\"start\"]);for(var n in this.$rules)this.$rules[n].unshift.apply(this.$rules[n],e);this.normalizeRules()};r.inherits(o,i),t.LuaPageHighlightRules=o}),ace.define(\"ace/mode/luapage\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/lua\",\"ace/mode/luapage_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./lua\").Mode,o=e(\"./luapage_highlight_rules\").LuaPageHighlightRules,u=function(){i.call(this),this.HighlightRules=o,this.createModeDelegates({\"lua-\":s})};r.inherits(u,i),function(){this.$id=\"ace/mode/luapage\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-lucene.js",
    "content": "ace.define(\"ace/mode/lucene_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){this.$rules={start:[{token:\"constant.character.negation\",regex:\"[\\\\-]\"},{token:\"constant.character.interro\",regex:\"[\\\\?]\"},{token:\"constant.character.asterisk\",regex:\"[\\\\*]\"},{token:\"constant.character.proximity\",regex:\"~[0-9]+\\\\b\"},{token:\"keyword.operator\",regex:\"(?:AND|OR|NOT)\\\\b\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"keyword\",regex:\"[\\\\S]+:\"},{token:\"string\",regex:'\".*?\"'},{token:\"text\",regex:\"\\\\s+\"}]}};r.inherits(o,s),t.LuceneHighlightRules=o}),ace.define(\"ace/mode/lucene\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/lucene_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./lucene_highlight_rules\").LuceneHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.$id=\"ace/mode/lucene\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict/mode-makefile.js",
    "content": "ace.define(\"ace/mode/sh_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=t.reservedKeywords=\"!|{|}|case|do|done|elif|else|esac|fi|for|if|in|then|until|while|&|;|export|local|read|typeset|unset|elif|select|set|function|declare|readonly\",o=t.languageConstructs=\"[|]|alias|bg|bind|break|builtin|cd|command|compgen|complete|continue|dirs|disown|echo|enable|eval|exec|exit|fc|fg|getopts|hash|help|history|jobs|kill|let|logout|popd|printf|pushd|pwd|return|set|shift|shopt|source|suspend|test|times|trap|type|ulimit|umask|unalias|wait\",u=function(){var e=this.createKeywordMapper({keyword:s,\"support.function.builtin\":o,\"invalid.deprecated\":\"debugger\"},\"identifier\"),t=\"(?:(?:[1-9]\\\\d*)|(?:0))\",n=\"(?:\\\\.\\\\d+)\",r=\"(?:\\\\d+)\",i=\"(?:(?:\"+r+\"?\"+n+\")|(?:\"+r+\"\\\\.))\",u=\"(?:(?:\"+i+\"|\"+r+\")\"+\")\",a=\"(?:\"+u+\"|\"+i+\")\",f=\"(?:&\"+r+\")\",l=\"[a-zA-Z_][a-zA-Z0-9_]*\",c=\"(?:\"+l+\"=)\",h=\"(?:\\\\$(?:SHLVL|\\\\$|\\\\!|\\\\?))\",p=\"(?:\"+l+\"\\\\s*\\\\(\\\\))\";this.$rules={start:[{token:\"constant\",regex:/\\\\./},{token:[\"text\",\"comment\"],regex:/(^|\\s)(#.*)$/},{token:\"string.start\",regex:'\"',push:[{token:\"constant.language.escape\",regex:/\\\\(?:[$`\"\\\\]|$)/},{include:\"variables\"},{token:\"keyword.operator\",regex:/`/},{token:\"string.end\",regex:'\"',next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string\",regex:\"\\\\$'\",push:[{token:\"constant.language.escape\",regex:/\\\\(?:[abeEfnrtv\\\\'\"]|x[a-fA-F\\d]{1,2}|u[a-fA-F\\d]{4}([a-fA-F\\d]{4})?|c.|\\d{1,3})/},{token:\"string\",regex:\"'\",next:\"pop\"},{defaultToken:\"string\"}]},{regex:\"<<<\",token:\"keyword.operator\"},{stateName:\"heredoc\",regex:\"(<<-?)(\\\\s*)(['\\\"`]?)([\\\\w\\\\-]+)(['\\\"`]?)\",onMatch:function(e,t,n){var r=e[2]==\"-\"?\"indentedHeredoc\":\"heredoc\",i=e.split(this.splitRegex);return n.push(r,i[4]),[{type:\"constant\",value:i[1]},{type:\"text\",value:i[2]},{type:\"string\",value:i[3]},{type:\"support.class\",value:i[4]},{type:\"string\",value:i[5]}]},rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}],indentedHeredoc:[{token:\"string\",regex:\"^\t+\"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}]}},{regex:\"$\",token:\"empty\",next:function(e,t){return t[0]===\"heredoc\"||t[0]===\"indentedHeredoc\"?t[0]:e}},{token:[\"keyword\",\"text\",\"text\",\"text\",\"variable\"],regex:/(declare|local|readonly)(\\s+)(?:(-[fixar]+)(\\s+))?([a-zA-Z_][a-zA-Z0-9_]*\\b)/},{token:\"variable.language\",regex:h},{token:\"variable\",regex:c},{include:\"variables\"},{token:\"support.function\",regex:p},{token:\"support.function\",regex:f},{token:\"string\",start:\"'\",end:\"'\"},{token:\"constant.numeric\",regex:a},{token:\"constant.numeric\",regex:t+\"\\\\b\"},{token:e,regex:\"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|~|<|>|<=|=>|=|!=|[%&|`]\"},{token:\"punctuation.operator\",regex:\";\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]]\"},{token:\"paren.rparen\",regex:\"[\\\\)\\\\}]\",next:\"pop\"}],variables:[{token:\"variable\",regex:/(\\$)(\\w+)/},{token:[\"variable\",\"paren.lparen\"],regex:/(\\$)(\\()/,push:\"start\"},{token:[\"variable\",\"paren.lparen\",\"keyword.operator\",\"variable\",\"keyword.operator\"],regex:/(\\$)(\\{)([#!]?)(\\w+|[*@#?\\-$!0_])(:[?+\\-=]?|##?|%%?|,,?\\/|\\^\\^?)?/,push:\"start\"},{token:\"variable\",regex:/\\$[*@#?\\-$!0_]/},{token:[\"variable\",\"paren.lparen\"],regex:/(\\$)(\\{)/,push:\"start\"}]},this.normalizeRules()};r.inherits(u,i),t.ShHighlightRules=u}),ace.define(\"ace/mode/makefile_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/sh_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=e(\"./sh_highlight_rules\"),o=function(){var e=this.createKeywordMapper({keyword:s.reservedKeywords,\"support.function.builtin\":s.languageConstructs,\"invalid.deprecated\":\"debugger\"},\"string\");this.$rules={start:[{token:\"string.interpolated.backtick.makefile\",regex:\"`\",next:\"shell-start\"},{token:\"punctuation.definition.comment.makefile\",regex:/#(?=.)/,next:\"comment\"},{token:[\"keyword.control.makefile\"],regex:\"^(?:\\\\s*\\\\b)(\\\\-??include|ifeq|ifneq|ifdef|ifndef|else|endif|vpath|export|unexport|define|endef|override)(?:\\\\b)\"},{token:[\"entity.name.function.makefile\",\"text\"],regex:\"^([^\\\\t ]+(?:\\\\s[^\\\\t ]+)*:)(\\\\s*.*)\"}],comment:[{token:\"punctuation.definition.comment.makefile\",regex:/.+\\\\/},{token:\"punctuation.definition.comment.makefile\",regex:\".+\",next:\"start\"}],\"shell-start\":[{token:e,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"string\",regex:\"\\\\w+\"},{token:\"string.interpolated.backtick.makefile\",regex:\"`\",next:\"start\"}]}};r.inherits(o,i),t.MakefileHighlightRules=o}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/makefile\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/makefile_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./makefile_highlight_rules\").MakefileHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"#\",this.$indentWithTabs=!0,this.$id=\"ace/mode/makefile\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-markdown.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./xml_highlight_rules\").XmlHighlightRules,u=e(\"./behaviour/xml\").XmlBehaviour,a=e(\"./folding/xml\").FoldMode,f=e(\"../worker/worker_client\").WorkerClient,l=function(){this.HighlightRules=o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,s),function(){this.voidElements=i.arrayToMap([]),this.blockComment={start:\"<!--\",end:\"-->\"},this.createWorker=function(e){var t=new f([\"ace\"],\"ace/mode/xml_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/xml\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/markdown_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\",\"ace/mode/html_highlight_rules\",\"ace/mode/css_highlight_rules\"],function(e,t,n){\"use strict\";function c(e,t){return{token:\"support.function\",regex:\"^\\\\s*```\"+e+\"\\\\s*$\",push:t+\"start\"}}var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./css_highlight_rules\").CssHighlightRules,l=function(e){return\"(?:[^\"+i.escapeRegExp(e)+\"\\\\\\\\]|\\\\\\\\.)*\"},h=function(){a.call(this),this.$rules.start.unshift({token:\"empty_line\",regex:\"^$\",next:\"allowBlock\"},{token:\"markup.heading.1\",regex:\"^=+(?=\\\\s*$)\"},{token:\"markup.heading.2\",regex:\"^\\\\-+(?=\\\\s*$)\"},{token:function(e){return\"markup.heading.\"+e.length},regex:/^#{1,6}(?=\\s*[^ #]|\\s+#.)/,next:\"header\"},c(\"(?:javascript|js)\",\"jscode-\"),c(\"xml\",\"xmlcode-\"),c(\"html\",\"htmlcode-\"),c(\"css\",\"csscode-\"),{token:\"support.function\",regex:\"^\\\\s*```\\\\s*\\\\S*(?:{.*?\\\\})?\\\\s*$\",next:\"githubblock\"},{token:\"string.blockquote\",regex:\"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",next:\"blockquote\"},{token:\"constant\",regex:\"^ {0,2}(?:(?: ?\\\\* ?){3,}|(?: ?\\\\- ?){3,}|(?: ?\\\\_ ?){3,})\\\\s*$\",next:\"allowBlock\"},{token:\"markup.list\",regex:\"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",next:\"listblock-start\"},{include:\"basic\"}),this.addRules({basic:[{token:\"constant.language.escape\",regex:/\\\\[\\\\`*_{}\\[\\]()#+\\-.!]/},{token:\"support.function\",regex:\"(`+)(.*?[^`])(\\\\1)\"},{token:[\"text\",\"constant\",\"text\",\"url\",\"string\",\"text\"],regex:'^([ ]{0,3}\\\\[)([^\\\\]]+)(\\\\]:\\\\s*)([^ ]+)(\\\\s*(?:[\"][^\"]+[\"])?(\\\\s*))$'},{token:[\"text\",\"string\",\"text\",\"constant\",\"text\"],regex:\"(\\\\[)(\"+l(\"]\")+\")(\\\\]\\\\s*\\\\[)(\"+l(\"]\")+\")(\\\\])\"},{token:[\"text\",\"string\",\"text\",\"markup.underline\",\"string\",\"text\"],regex:\"(\\\\[)(\"+l(\"]\")+\")(\\\\]\\\\()\"+'((?:[^\\\\)\\\\s\\\\\\\\]|\\\\\\\\.|\\\\s(?=[^\"]))*)'+'(\\\\s*\"'+l('\"')+'\"\\\\s*)?'+\"(\\\\))\"},{token:\"string.strong\",regex:\"([*]{2}|[_]{2}(?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"},{token:\"string.emphasis\",regex:\"([*]|[_](?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"},{token:[\"text\",\"url\",\"text\"],regex:\"(<)((?:https?|ftp|dict):[^'\\\">\\\\s]+|(?:mailto:)?[-.\\\\w]+\\\\@[-a-z0-9]+(?:\\\\.[-a-z0-9]+)*\\\\.[a-z]+)(>)\"}],allowBlock:[{token:\"support.function\",regex:\"^ {4}.+\",next:\"allowBlock\"},{token:\"empty_line\",regex:\"^$\",next:\"allowBlock\"},{token:\"empty\",regex:\"\",next:\"start\"}],header:[{regex:\"$\",next:\"start\"},{include:\"basic\"},{defaultToken:\"heading\"}],\"listblock-start\":[{token:\"support.variable\",regex:/(?:\\[[ x]\\])?/,next:\"listblock\"}],listblock:[{token:\"empty_line\",regex:\"^$\",next:\"start\"},{token:\"markup.list\",regex:\"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",next:\"listblock-start\"},{include:\"basic\",noEscape:!0},{token:\"support.function\",regex:\"^\\\\s*```\\\\s*[a-zA-Z]*(?:{.*?\\\\})?\\\\s*$\",next:\"githubblock\"},{defaultToken:\"list\"}],blockquote:[{token:\"empty_line\",regex:\"^\\\\s*$\",next:\"start\"},{token:\"string.blockquote\",regex:\"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",next:\"blockquote\"},{include:\"basic\",noEscape:!0},{defaultToken:\"string.blockquote\"}],githubblock:[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"start\"},{token:\"support.function\",regex:\".+\"}]}),this.embedRules(o,\"jscode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(a,\"htmlcode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(f,\"csscode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(u,\"xmlcode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.normalizeRules()};r.inherits(h,s),t.MarkdownHighlightRules=h}),ace.define(\"ace/mode/folding/markdown\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.foldingStartMarker=/^(?:[=-]+\\s*$|#{1,6} |`{3})/,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?r[0]==\"`\"?e.bgTokenizer.getState(n)==\"start\"?\"end\":\"start\":\"start\":\"\"},this.getFoldWidgetRange=function(e,t,n){function l(t){return f=e.getTokens(t)[0],f&&f.type.lastIndexOf(c,0)===0}function h(){var e=f.value[0];return e==\"=\"?6:e==\"-\"?5:7-f.value.search(/[^#]/)}var r=e.getLine(n),i=r.length,o=e.getLength(),u=n,a=n;if(!r.match(this.foldingStartMarker))return;if(r[0]==\"`\"){if(e.bgTokenizer.getState(n)!==\"start\"){while(++n<o){r=e.getLine(n);if(r[0]==\"`\"&r.substring(0,3)==\"```\")break}return new s(u,i,n,0)}while(n-->0){r=e.getLine(n);if(r[0]==\"`\"&r.substring(0,3)==\"```\")break}return new s(n,r.length,u,0)}var f,c=\"markup.heading\";if(l(n)){var p=h();while(++n<o){if(!l(n))continue;var d=h();if(d>=p)break}a=n-(!f||[\"=\",\"-\"].indexOf(f.value[0])==-1?1:2);if(a>u)while(a>u&&/^\\s*$/.test(e.getLine(a)))a--;if(a>u){var v=e.getLine(a).length;return new s(u,i,a,v)}}}}.call(o.prototype)}),ace.define(\"ace/mode/markdown\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/xml\",\"ace/mode/html\",\"ace/mode/markdown_highlight_rules\",\"ace/mode/folding/markdown\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript\").Mode,o=e(\"./xml\").Mode,u=e(\"./html\").Mode,a=e(\"./markdown_highlight_rules\").MarkdownHighlightRules,f=e(\"./folding/markdown\").FoldMode,l=function(){this.HighlightRules=a,this.createModeDelegates({\"js-\":s,\"xml-\":o,\"html-\":u}),this.foldingRules=new f,this.$behaviour=this.$defaultBehaviour};r.inherits(l,i),function(){this.type=\"text\",this.blockComment={start:\"<!--\",end:\"-->\"},this.getNextLineIndent=function(e,t,n){if(e==\"listblock\"){var r=/^(\\s*)(?:([-+*])|(\\d+)\\.)(\\s+)/.exec(t);if(!r)return\"\";var i=r[2];return i||(i=parseInt(r[3],10)+1+\".\"),r[1]+i+r[4]}return this.$getIndent(t)},this.$id=\"ace/mode/markdown\"}.call(l.prototype),t.Mode=l})"
  },
  {
    "path": "lib/src-min-noconflict/mode-mask.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/markdown_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\",\"ace/mode/html_highlight_rules\",\"ace/mode/css_highlight_rules\"],function(e,t,n){\"use strict\";function c(e,t){return{token:\"support.function\",regex:\"^\\\\s*```\"+e+\"\\\\s*$\",push:t+\"start\"}}var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./css_highlight_rules\").CssHighlightRules,l=function(e){return\"(?:[^\"+i.escapeRegExp(e)+\"\\\\\\\\]|\\\\\\\\.)*\"},h=function(){a.call(this),this.$rules.start.unshift({token:\"empty_line\",regex:\"^$\",next:\"allowBlock\"},{token:\"markup.heading.1\",regex:\"^=+(?=\\\\s*$)\"},{token:\"markup.heading.2\",regex:\"^\\\\-+(?=\\\\s*$)\"},{token:function(e){return\"markup.heading.\"+e.length},regex:/^#{1,6}(?=\\s*[^ #]|\\s+#.)/,next:\"header\"},c(\"(?:javascript|js)\",\"jscode-\"),c(\"xml\",\"xmlcode-\"),c(\"html\",\"htmlcode-\"),c(\"css\",\"csscode-\"),{token:\"support.function\",regex:\"^\\\\s*```\\\\s*\\\\S*(?:{.*?\\\\})?\\\\s*$\",next:\"githubblock\"},{token:\"string.blockquote\",regex:\"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",next:\"blockquote\"},{token:\"constant\",regex:\"^ {0,2}(?:(?: ?\\\\* ?){3,}|(?: ?\\\\- ?){3,}|(?: ?\\\\_ ?){3,})\\\\s*$\",next:\"allowBlock\"},{token:\"markup.list\",regex:\"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",next:\"listblock-start\"},{include:\"basic\"}),this.addRules({basic:[{token:\"constant.language.escape\",regex:/\\\\[\\\\`*_{}\\[\\]()#+\\-.!]/},{token:\"support.function\",regex:\"(`+)(.*?[^`])(\\\\1)\"},{token:[\"text\",\"constant\",\"text\",\"url\",\"string\",\"text\"],regex:'^([ ]{0,3}\\\\[)([^\\\\]]+)(\\\\]:\\\\s*)([^ ]+)(\\\\s*(?:[\"][^\"]+[\"])?(\\\\s*))$'},{token:[\"text\",\"string\",\"text\",\"constant\",\"text\"],regex:\"(\\\\[)(\"+l(\"]\")+\")(\\\\]\\\\s*\\\\[)(\"+l(\"]\")+\")(\\\\])\"},{token:[\"text\",\"string\",\"text\",\"markup.underline\",\"string\",\"text\"],regex:\"(\\\\[)(\"+l(\"]\")+\")(\\\\]\\\\()\"+'((?:[^\\\\)\\\\s\\\\\\\\]|\\\\\\\\.|\\\\s(?=[^\"]))*)'+'(\\\\s*\"'+l('\"')+'\"\\\\s*)?'+\"(\\\\))\"},{token:\"string.strong\",regex:\"([*]{2}|[_]{2}(?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"},{token:\"string.emphasis\",regex:\"([*]|[_](?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"},{token:[\"text\",\"url\",\"text\"],regex:\"(<)((?:https?|ftp|dict):[^'\\\">\\\\s]+|(?:mailto:)?[-.\\\\w]+\\\\@[-a-z0-9]+(?:\\\\.[-a-z0-9]+)*\\\\.[a-z]+)(>)\"}],allowBlock:[{token:\"support.function\",regex:\"^ {4}.+\",next:\"allowBlock\"},{token:\"empty_line\",regex:\"^$\",next:\"allowBlock\"},{token:\"empty\",regex:\"\",next:\"start\"}],header:[{regex:\"$\",next:\"start\"},{include:\"basic\"},{defaultToken:\"heading\"}],\"listblock-start\":[{token:\"support.variable\",regex:/(?:\\[[ x]\\])?/,next:\"listblock\"}],listblock:[{token:\"empty_line\",regex:\"^$\",next:\"start\"},{token:\"markup.list\",regex:\"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",next:\"listblock-start\"},{include:\"basic\",noEscape:!0},{token:\"support.function\",regex:\"^\\\\s*```\\\\s*[a-zA-Z]*(?:{.*?\\\\})?\\\\s*$\",next:\"githubblock\"},{defaultToken:\"list\"}],blockquote:[{token:\"empty_line\",regex:\"^\\\\s*$\",next:\"start\"},{token:\"string.blockquote\",regex:\"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",next:\"blockquote\"},{include:\"basic\",noEscape:!0},{defaultToken:\"string.blockquote\"}],githubblock:[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"start\"},{token:\"support.function\",regex:\".+\"}]}),this.embedRules(o,\"jscode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(a,\"htmlcode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(f,\"csscode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(u,\"xmlcode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.normalizeRules()};r.inherits(h,s),t.MarkdownHighlightRules=h}),ace.define(\"ace/mode/mask_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/css_highlight_rules\",\"ace/mode/markdown_highlight_rules\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";function N(){function t(e,t,n){var r=\"js-\"+e+\"-\",i=e===\"block\"?[\"start\"]:[\"start\",\"no_regex\"];s(o,r,t,i,n)}function n(){s(u,\"css-block-\",/\\}/)}function r(){s(a,\"md-multiline-\",/(\"\"\"|''')/,[])}function i(){s(f,\"html-multiline-\",/(\"\"\"|''')/)}function s(t,n,r,i,s){var o=\"pop\",u=i||[\"start\"];u.length===0&&(u=null),/block|multiline/.test(n)&&(o=n+\"end\",e.$rules[o]=[k(\"empty\",\"\",\"start\")]),e.embedRules(t,n,[k(s||w,r,o)],u,u==null?!0:!1)}this.$rules={start:[k(\"comment\",\"\\\\/\\\\/.*$\"),k(\"comment\",\"\\\\/\\\\*\",[k(\"comment\",\".*?\\\\*\\\\/\",\"start\"),k(\"comment\",\".+\")]),C.string(\"'''\"),C.string('\"\"\"'),C.string('\"'),C.string(\"'\"),C.syntax(/(markdown|md)\\b/,\"md-multiline\",\"multiline\"),C.syntax(/html\\b/,\"html-multiline\",\"multiline\"),C.syntax(/(slot|event)\\b/,\"js-block\",\"block\"),C.syntax(/style\\b/,\"css-block\",\"block\"),C.syntax(/var\\b/,\"js-statement\",\"attr\"),C.tag(),k(b,\"[[({>]\"),k(w,\"[\\\\])};]\",\"start\"),{caseInsensitive:!0}]};var e=this;t(\"interpolation\",/\\]/,w+\".\"+g),t(\"statement\",/\\)|}|;/),t(\"block\",/\\}/),n(),r(),i(),this.normalizeRules()}function k(e,t,n){var r,i,s;return arguments.length===4?(r=n,i=arguments[3]):typeof n==\"string\"?i=n:r=n,typeof e==\"function\"&&(s=e,e=\"empty\"),{token:e,regex:t,push:r,next:i,onMatch:s}}t.MaskHighlightRules=N;var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./css_highlight_rules\").CssHighlightRules,a=e(\"./markdown_highlight_rules\").MarkdownHighlightRules,f=e(\"./html_highlight_rules\").HtmlHighlightRules,l=\"keyword.support.constant.language\",c=\"support.function.markup.bold\",h=\"keyword\",p=\"constant.language\",d=\"keyword.control.markup.italic\",v=\"support.variable.class\",m=\"keyword.operator\",g=\"markup.italic\",y=\"markup.bold\",b=\"paren.lparen\",w=\"paren.rparen\",E,S,x,T;(function(){E=i.arrayToMap(\"log\".split(\"|\")),x=i.arrayToMap(\":dualbind|:bind|:import|slot|event|style|html|markdown|md\".split(\"|\")),S=i.arrayToMap(\"debugger|define|var|if|each|for|of|else|switch|case|with|visible|+if|+each|+for|+switch|+with|+visible|include|import\".split(\"|\")),T=i.arrayToMap(\"a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp\".split(\"|\"))})(),r.inherits(N,s);var C={string:function(e,t){var n=k(\"string.start\",e,[k(b+\".\"+g,/~\\[/,C.interpolation()),k(\"string.end\",e,\"pop\"),{defaultToken:\"string\"}],t);if(e.length===1){var r=k(\"string.escape\",\"\\\\\\\\\"+e);n.push.unshift(r)}return n},interpolation:function(){return[k(d,/\\s*\\w*\\s*:/),\"js-interpolation-start\"]},tagHead:function(e){return k(v,e,[k(v,/[\\w\\-_]+/),k(b+\".\"+g,/~\\[/,C.interpolation()),C.goUp()])},tag:function(){return{token:\"tag\",onMatch:function(e){return void 0!==S[e]?h:void 0!==x[e]?p:void 0!==E[e]?\"support.function\":void 0!==T[e.toLowerCase()]?l:c},regex:/([@\\w\\-_:+]+)|((^|\\s)(?=\\s*(\\.|#)))/,push:[C.tagHead(/\\./),C.tagHead(/#/),C.expression(),C.attribute(),k(b,/[;>{]/,\"pop\")]}},syntax:function(e,t,n){return{token:p,regex:e,push:{attr:[t+\"-start\",k(m,/;/,\"start\")],multiline:[C.tagHead(/\\./),C.tagHead(/#/),C.attribute(),C.expression(),k(b,/[>\\{]/),k(m,/;/,\"start\"),k(b,/'''|\"\"\"/,[t+\"-start\"])],block:[C.tagHead(/\\./),C.tagHead(/#/),C.attribute(),C.expression(),k(b,/\\{/,[t+\"-start\"])]}[n]}},attribute:function(){return k(function(e){return/^x\\-/.test(e)?v+\".\"+y:v},/[\\w_-]+/,[k(m,/\\s*=\\s*/,[C.string('\"'),C.string(\"'\"),C.word(),C.goUp()]),C.goUp()])},expression:function(){return k(b,/\\(/,[\"js-statement-start\"])},word:function(){return k(\"string\",/[\\w-_]+/)},goUp:function(){return k(\"text\",\"\",\"pop\")},goStart:function(){return k(\"text\",\"\",\"start\")}}}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/mask\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/mask_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./mask_highlight_rules\").MaskHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/css\").CssBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/mask\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict/mode-matlab.js",
    "content": "ace.define(\"ace/mode/matlab_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"break|case|catch|classdef|continue|else|elseif|end|for|function|global|if|otherwise|parfor|persistent|return|spmd|switch|try|while\",t=\"true|false|inf|Inf|nan|NaN|eps|pi|ans|nargin|nargout|varargin|varargout\",n=\"abs|accumarray|acos(?:d|h)?|acot(?:d|h)?|acsc(?:d|h)?|actxcontrol(?:list|select)?|actxGetRunningServer|actxserver|addlistener|addpath|addpref|addtodate|airy|align|alim|all|allchild|alpha|alphamap|amd|ancestor|and|angle|annotation|any|area|arrayfun|asec(?:d|h)?|asin(?:d|h)?|assert|assignin|atan(?:2|d|h)?|audiodevinfo|audioplayer|audiorecorder|aufinfo|auread|autumn|auwrite|avifile|aviinfo|aviread|axes|axis|balance|bar(?:3|3h|h)?|base2dec|beep|BeginInvoke|bench|bessel(?:h|i|j|k|y)|beta|betainc|betaincinv|betaln|bicg|bicgstab|bicgstabl|bin2dec|bitand|bitcmp|bitget|bitmax|bitnot|bitor|bitset|bitshift|bitxor|blanks|blkdiag|bone|box|brighten|brush|bsxfun|builddocsearchdb|builtin|bvp4c|bvp5c|bvpget|bvpinit|bvpset|bvpxtend|calendar|calllib|callSoapService|camdolly|cameratoolbar|camlight|camlookat|camorbit|campan|campos|camproj|camroll|camtarget|camup|camva|camzoom|cart2pol|cart2sph|cast|cat|caxis|cd|cdf2rdf|cdfepoch|cdfinfo|cdflib(?:.(?:close|closeVar|computeEpoch|computeEpoch16|create|createAttr|createVar|delete|deleteAttr|deleteAttrEntry|deleteAttrgEntry|deleteVar|deleteVarRecords|epoch16Breakdown|epochBreakdown|getAttrEntry|getAttrgEntry|getAttrMaxEntry|getAttrMaxgEntry|getAttrName|getAttrNum|getAttrScope|getCacheSize|getChecksum|getCompression|getCompressionCacheSize|getConstantNames|getConstantValue|getCopyright|getFileBackward|getFormat|getLibraryCopyright|getLibraryVersion|getMajority|getName|getNumAttrEntries|getNumAttrgEntries|getNumAttributes|getNumgAttributes|getReadOnlyMode|getStageCacheSize|getValidate|getVarAllocRecords|getVarBlockingFactor|getVarCacheSize|getVarCompression|getVarData|getVarMaxAllocRecNum|getVarMaxWrittenRecNum|getVarName|getVarNum|getVarNumRecsWritten|getVarPadValue|getVarRecordData|getVarReservePercent|getVarsMaxWrittenRecNum|getVarSparseRecords|getVersion|hyperGetVarData|hyperPutVarData|inquire|inquireAttr|inquireAttrEntry|inquireAttrgEntry|inquireVar|open|putAttrEntry|putAttrgEntry|putVarData|putVarRecordData|renameAttr|renameVar|setCacheSize|setChecksum|setCompression|setCompressionCacheSize|setFileBackward|setFormat|setMajority|setReadOnlyMode|setStageCacheSize|setValidate|setVarAllocBlockRecords|setVarBlockingFactor|setVarCacheSize|setVarCompression|setVarInitialRecs|setVarPadValue|SetVarReservePercent|setVarsCacheSize|setVarSparseRecords))?|cdfread|cdfwrite|ceil|cell2mat|cell2struct|celldisp|cellfun|cellplot|cellstr|cgs|checkcode|checkin|checkout|chol|cholinc|cholupdate|circshift|cla|clabel|class|clc|clear|clearvars|clf|clipboard|clock|close|closereq|cmopts|cmpermute|cmunique|colamd|colon|colorbar|colordef|colormap|colormapeditor|colperm|Combine|comet|comet3|commandhistory|commandwindow|compan|compass|complex|computer|cond|condeig|condest|coneplot|conj|containers.Map|contour(?:3|c|f|slice)?|contrast|conv|conv2|convhull|convhulln|convn|cool|copper|copyfile|copyobj|corrcoef|cos(?:d|h)?|cot(?:d|h)?|cov|cplxpair|cputime|createClassFromWsdl|createSoapMessage|cross|csc(?:d|h)?|csvread|csvwrite|ctranspose|cumprod|cumsum|cumtrapz|curl|customverctrl|cylinder|daqread|daspect|datacursormode|datatipinfo|date|datenum|datestr|datetick|datevec|dbclear|dbcont|dbdown|dblquad|dbmex|dbquit|dbstack|dbstatus|dbstep|dbstop|dbtype|dbup|dde23|ddeget|ddesd|ddeset|deal|deblank|dec2base|dec2bin|dec2hex|decic|deconv|del2|delaunay|delaunay3|delaunayn|DelaunayTri|delete|demo|depdir|depfun|det|detrend|deval|diag|dialog|diary|diff|diffuse|dir|disp|display|dither|divergence|dlmread|dlmwrite|dmperm|doc|docsearch|dos|dot|dragrect|drawnow|dsearch|dsearchn|dynamicprops|echo|echodemo|edit|eig|eigs|ellipj|ellipke|ellipsoid|empty|enableNETfromNetworkDrive|enableservice|EndInvoke|enumeration|eomday|eq|erf|erfc|erfcinv|erfcx|erfinv|error|errorbar|errordlg|etime|etree|etreeplot|eval|evalc|evalin|event.(?:EventData|listener|PropertyEvent|proplistener)|exifread|exist|exit|exp|expint|expm|expm1|export2wsdlg|eye|ezcontour|ezcontourf|ezmesh|ezmeshc|ezplot|ezplot3|ezpolar|ezsurf|ezsurfc|factor|factorial|fclose|feather|feature|feof|ferror|feval|fft|fft2|fftn|fftshift|fftw|fgetl|fgets|fieldnames|figure|figurepalette|fileattrib|filebrowser|filemarker|fileparts|fileread|filesep|fill|fill3|filter|filter2|find|findall|findfigs|findobj|findstr|finish|fitsdisp|fitsinfo|fitsread|fitswrite|fix|flag|flipdim|fliplr|flipud|floor|flow|fminbnd|fminsearch|fopen|format|fplot|fprintf|frame2im|fread|freqspace|frewind|fscanf|fseek|ftell|FTP|full|fullfile|func2str|functions|funm|fwrite|fzero|gallery|gamma|gammainc|gammaincinv|gammaln|gca|gcbf|gcbo|gcd|gcf|gco|ge|genpath|genvarname|get|getappdata|getenv|getfield|getframe|getpixelposition|getpref|ginput|gmres|gplot|grabcode|gradient|gray|graymon|grid|griddata(?:3|n)?|griddedInterpolant|gsvd|gt|gtext|guidata|guide|guihandles|gunzip|gzip|h5create|h5disp|h5info|h5read|h5readatt|h5write|h5writeatt|hadamard|handle|hankel|hdf|hdf5|hdf5info|hdf5read|hdf5write|hdfinfo|hdfread|hdftool|help|helpbrowser|helpdesk|helpdlg|helpwin|hess|hex2dec|hex2num|hgexport|hggroup|hgload|hgsave|hgsetget|hgtransform|hidden|hilb|hist|histc|hold|home|horzcat|hostid|hot|hsv|hsv2rgb|hypot|ichol|idivide|ifft|ifft2|ifftn|ifftshift|ilu|im2frame|im2java|imag|image|imagesc|imapprox|imfinfo|imformats|import|importdata|imread|imwrite|ind2rgb|ind2sub|inferiorto|info|inline|inmem|inpolygon|input|inputdlg|inputname|inputParser|inspect|instrcallback|instrfind|instrfindall|int2str|integral(?:2|3)?|interp(?:1|1q|2|3|ft|n)|interpstreamspeed|intersect|intmax|intmin|inv|invhilb|ipermute|isa|isappdata|iscell|iscellstr|ischar|iscolumn|isdir|isempty|isequal|isequaln|isequalwithequalnans|isfield|isfinite|isfloat|isglobal|ishandle|ishghandle|ishold|isinf|isinteger|isjava|iskeyword|isletter|islogical|ismac|ismatrix|ismember|ismethod|isnan|isnumeric|isobject|isocaps|isocolors|isonormals|isosurface|ispc|ispref|isprime|isprop|isreal|isrow|isscalar|issorted|isspace|issparse|isstr|isstrprop|isstruct|isstudent|isunix|isvarname|isvector|javaaddpath|javaArray|javachk|javaclasspath|javacomponent|javaMethod|javaMethodEDT|javaObject|javaObjectEDT|javarmpath|jet|keyboard|kron|lasterr|lasterror|lastwarn|lcm|ldivide|ldl|le|legend|legendre|length|libfunctions|libfunctionsview|libisloaded|libpointer|libstruct|license|light|lightangle|lighting|lin2mu|line|lines|linkaxes|linkdata|linkprop|linsolve|linspace|listdlg|listfonts|load|loadlibrary|loadobj|log|log10|log1p|log2|loglog|logm|logspace|lookfor|lower|ls|lscov|lsqnonneg|lsqr|lt|lu|luinc|magic|makehgtform|mat2cell|mat2str|material|matfile|matlab.io.MatFile|matlab.mixin.(?:Copyable|Heterogeneous(?:.getDefaultScalarElement)?)|matlabrc|matlabroot|max|maxNumCompThreads|mean|median|membrane|memmapfile|memory|menu|mesh|meshc|meshgrid|meshz|meta.(?:class(?:.fromName)?|DynamicProperty|EnumeratedValue|event|MetaData|method|package(?:.(?:fromName|getAllPackages))?|property)|metaclass|methods|methodsview|mex(?:.getCompilerConfigurations)?|MException|mexext|mfilename|min|minres|minus|mislocked|mkdir|mkpp|mldivide|mlint|mlintrpt|mlock|mmfileinfo|mmreader|mod|mode|more|move|movefile|movegui|movie|movie2avi|mpower|mrdivide|msgbox|mtimes|mu2lin|multibandread|multibandwrite|munlock|namelengthmax|nargchk|narginchk|nargoutchk|native2unicode|nccreate|ncdisp|nchoosek|ncinfo|ncread|ncreadatt|ncwrite|ncwriteatt|ncwriteschema|ndgrid|ndims|ne|NET(?:.(?:addAssembly|Assembly|convertArray|createArray|createGeneric|disableAutoRelease|enableAutoRelease|GenericClass|invokeGenericMethod|NetException|setStaticProperty))?|netcdf.(?:abort|close|copyAtt|create|defDim|defGrp|defVar|defVarChunking|defVarDeflate|defVarFill|defVarFletcher32|delAtt|endDef|getAtt|getChunkCache|getConstant|getConstantNames|getVar|inq|inqAtt|inqAttID|inqAttName|inqDim|inqDimID|inqDimIDs|inqFormat|inqGrpName|inqGrpNameFull|inqGrpParent|inqGrps|inqLibVers|inqNcid|inqUnlimDims|inqVar|inqVarChunking|inqVarDeflate|inqVarFill|inqVarFletcher32|inqVarID|inqVarIDs|open|putAtt|putVar|reDef|renameAtt|renameDim|renameVar|setChunkCache|setDefaultFormat|setFill|sync)|newplot|nextpow2|nnz|noanimate|nonzeros|norm|normest|not|notebook|now|nthroot|null|num2cell|num2hex|num2str|numel|nzmax|ode(?:113|15i|15s|23|23s|23t|23tb|45)|odeget|odeset|odextend|onCleanup|ones|open|openfig|opengl|openvar|optimget|optimset|or|ordeig|orderfields|ordqz|ordschur|orient|orth|pack|padecoef|pagesetupdlg|pan|pareto|parseSoapResponse|pascal|patch|path|path2rc|pathsep|pathtool|pause|pbaspect|pcg|pchip|pcode|pcolor|pdepe|pdeval|peaks|perl|perms|permute|pie|pink|pinv|planerot|playshow|plot|plot3|plotbrowser|plotedit|plotmatrix|plottools|plotyy|plus|pol2cart|polar|poly|polyarea|polyder|polyeig|polyfit|polyint|polyval|polyvalm|pow2|power|ppval|prefdir|preferences|primes|print|printdlg|printopt|printpreview|prod|profile|profsave|propedit|propertyeditor|psi|publish|PutCharArray|PutFullMatrix|PutWorkspaceData|pwd|qhull|qmr|qr|qrdelete|qrinsert|qrupdate|quad|quad2d|quadgk|quadl|quadv|questdlg|quit|quiver|quiver3|qz|rand|randi|randn|randperm|RandStream(?:.(?:create|getDefaultStream|getGlobalStream|list|setDefaultStream|setGlobalStream))?|rank|rat|rats|rbbox|rcond|rdivide|readasync|real|reallog|realmax|realmin|realpow|realsqrt|record|rectangle|rectint|recycle|reducepatch|reducevolume|refresh|refreshdata|regexp|regexpi|regexprep|regexptranslate|rehash|rem|Remove|RemoveAll|repmat|reset|reshape|residue|restoredefaultpath|rethrow|rgb2hsv|rgb2ind|rgbplot|ribbon|rmappdata|rmdir|rmfield|rmpath|rmpref|rng|roots|rose|rosser|rot90|rotate|rotate3d|round|rref|rsf2csf|run|save|saveas|saveobj|savepath|scatter|scatter3|schur|sec|secd|sech|selectmoveresize|semilogx|semilogy|sendmail|serial|set|setappdata|setdiff|setenv|setfield|setpixelposition|setpref|setstr|setxor|shading|shg|shiftdim|showplottool|shrinkfaces|sign|sin(?:d|h)?|size|slice|smooth3|snapnow|sort|sortrows|sound|soundsc|spalloc|spaugment|spconvert|spdiags|specular|speye|spfun|sph2cart|sphere|spinmap|spline|spones|spparms|sprand|sprandn|sprandsym|sprank|spring|sprintf|spy|sqrt|sqrtm|squeeze|ss2tf|sscanf|stairs|startup|std|stem|stem3|stopasync|str2double|str2func|str2mat|str2num|strcat|strcmp|strcmpi|stream2|stream3|streamline|streamparticles|streamribbon|streamslice|streamtube|strfind|strjust|strmatch|strncmp|strncmpi|strread|strrep|strtok|strtrim|struct2cell|structfun|strvcat|sub2ind|subplot|subsasgn|subsindex|subspace|subsref|substruct|subvolume|sum|summer|superclasses|superiorto|support|surf|surf2patch|surface|surfc|surfl|surfnorm|svd|svds|swapbytes|symamd|symbfact|symmlq|symrcm|symvar|system|tan(?:d|h)?|tar|tempdir|tempname|tetramesh|texlabel|text|textread|textscan|textwrap|tfqmr|throw|tic|Tiff(?:.(?:getTagNames|getVersion))?|timer|timerfind|timerfindall|times|timeseries|title|toc|todatenum|toeplitz|toolboxdir|trace|transpose|trapz|treelayout|treeplot|tril|trimesh|triplequad|triplot|TriRep|TriScatteredInterp|trisurf|triu|tscollection|tsearch|tsearchn|tstool|type|typecast|uibuttongroup|uicontextmenu|uicontrol|uigetdir|uigetfile|uigetpref|uiimport|uimenu|uiopen|uipanel|uipushtool|uiputfile|uiresume|uisave|uisetcolor|uisetfont|uisetpref|uistack|uitable|uitoggletool|uitoolbar|uiwait|uminus|undocheckout|unicode2native|union|unique|unix|unloadlibrary|unmesh|unmkpp|untar|unwrap|unzip|uplus|upper|urlread|urlwrite|usejava|userpath|validateattributes|validatestring|vander|var|vectorize|ver|verctrl|verLessThan|version|vertcat|VideoReader(?:.isPlatformSupported)?|VideoWriter(?:.getProfiles)?|view|viewmtx|visdiff|volumebounds|voronoi|voronoin|wait|waitbar|waitfor|waitforbuttonpress|warndlg|warning|waterfall|wavfinfo|wavplay|wavread|wavrecord|wavwrite|web|weekday|what|whatsnew|which|whitebg|who|whos|wilkinson|winopen|winqueryreg|winter|wk1finfo|wk1read|wk1write|workspace|xlabel|xlim|xlsfinfo|xlsread|xlswrite|xmlread|xmlwrite|xor|xslt|ylabel|ylim|zeros|zip|zlabel|zlim|zoom|addedvarplot|andrewsplot|anova(?:1|2|n)|ansaribradley|aoctool|barttest|bbdesign|beta(?:cdf|fit|inv|like|pdf|rnd|stat)|bino(?:cdf|fit|inv|pdf|rnd|stat)|biplot|bootci|bootstrp|boxplot|candexch|candgen|canoncorr|capability|capaplot|caseread|casewrite|categorical|ccdesign|cdfplot|chi2(?:cdf|gof|inv|pdf|rnd|stat)|cholcov|Classification(?:BaggedEnsemble|Discriminant(?:.(?:fit|make|template))?|Ensemble|KNN(?:.(?:fit|template))?|PartitionedEnsemble|PartitionedModel|Tree(?:.(?:fit|template))?)|classify|classregtree|cluster|clusterdata|cmdscale|combnk|Compact(?:Classification(?:Discriminant|Ensemble|Tree)|Regression(?:Ensemble|Tree)|TreeBagger)|confusionmat|controlchart|controlrules|cophenet|copula(?:cdf|fit|param|pdf|rnd|stat)|cordexch|corr|corrcov|coxphfit|createns|crosstab|crossval|cvpartition|datasample|dataset|daugment|dcovary|dendrogram|dfittool|disttool|dummyvar|dwtest|ecdf|ecdfhist|ev(?:cdf|fit|inv|like|pdf|rnd|stat)|ExhaustiveSearcher|exp(?:cdf|fit|inv|like|pdf|rnd|stat)|factoran|fcdf|ff2n|finv|fitdist|fitensemble|fpdf|fracfact|fracfactgen|friedman|frnd|fstat|fsurfht|fullfact|gagerr|gam(?:cdf|fit|inv|like|pdf|rnd|stat)|GeneralizedLinearModel(?:.fit)?|geo(?:cdf|inv|mean|pdf|rnd|stat)|gev(?:cdf|fit|inv|like|pdf|rnd|stat)|gline|glmfit|glmval|glyphplot|gmdistribution(?:.fit)?|gname|gp(?:cdf|fit|inv|like|pdf|rnd|stat)|gplotmatrix|grp2idx|grpstats|gscatter|haltonset|harmmean|hist3|histfit|hmm(?:decode|estimate|generate|train|viterbi)|hougen|hyge(?:cdf|inv|pdf|rnd|stat)|icdf|inconsistent|interactionplot|invpred|iqr|iwishrnd|jackknife|jbtest|johnsrnd|KDTreeSearcher|kmeans|knnsearch|kruskalwallis|ksdensity|kstest|kstest2|kurtosis|lasso|lassoglm|lassoPlot|leverage|lhsdesign|lhsnorm|lillietest|LinearModel(?:.fit)?|linhyptest|linkage|logn(?:cdf|fit|inv|like|pdf|rnd|stat)|lsline|mad|mahal|maineffectsplot|manova1|manovacluster|mdscale|mhsample|mle|mlecov|mnpdf|mnrfit|mnrnd|mnrval|moment|multcompare|multivarichart|mvn(?:cdf|pdf|rnd)|mvregress|mvregresslike|mvt(?:cdf|pdf|rnd)|NaiveBayes(?:.fit)?|nan(?:cov|max|mean|median|min|std|sum|var)|nbin(?:cdf|fit|inv|pdf|rnd|stat)|ncf(?:cdf|inv|pdf|rnd|stat)|nct(?:cdf|inv|pdf|rnd|stat)|ncx2(?:cdf|inv|pdf|rnd|stat)|NeighborSearcher|nlinfit|nlintool|nlmefit|nlmefitsa|nlparci|nlpredci|nnmf|nominal|NonLinearModel(?:.fit)?|norm(?:cdf|fit|inv|like|pdf|rnd|stat)|normplot|normspec|ordinal|outlierMeasure|parallelcoords|paretotails|partialcorr|pcacov|pcares|pdf|pdist|pdist2|pearsrnd|perfcurve|perms|piecewisedistribution|plsregress|poiss(?:cdf|fit|inv|pdf|rnd|tat)|polyconf|polytool|prctile|princomp|ProbDist(?:Kernel|Parametric|UnivKernel|UnivParam)?|probplot|procrustes|qqplot|qrandset|qrandstream|quantile|randg|random|randsample|randtool|range|rangesearch|ranksum|rayl(?:cdf|fit|inv|pdf|rnd|stat)|rcoplot|refcurve|refline|regress|Regression(?:BaggedEnsemble|Ensemble|PartitionedEnsemble|PartitionedModel|Tree(?:.(?:fit|template))?)|regstats|relieff|ridge|robustdemo|robustfit|rotatefactors|rowexch|rsmdemo|rstool|runstest|sampsizepwr|scatterhist|sequentialfs|signrank|signtest|silhouette|skewness|slicesample|sobolset|squareform|statget|statset|stepwise|stepwisefit|surfht|tabulate|tblread|tblwrite|tcdf|tdfread|tiedrank|tinv|tpdf|TreeBagger|treedisp|treefit|treeprune|treetest|treeval|trimmean|trnd|tstat|ttest|ttest2|unid(?:cdf|inv|pdf|rnd|stat)|unif(?:cdf|inv|it|pdf|rnd|stat)|vartest(?:2|n)?|wbl(?:cdf|fit|inv|like|pdf|rnd|stat)|wblplot|wishrnd|x2fx|xptread|zscore|ztestadapthisteq|analyze75info|analyze75read|applycform|applylut|axes2pix|bestblk|blockproc|bwarea|bwareaopen|bwboundaries|bwconncomp|bwconvhull|bwdist|bwdistgeodesic|bweuler|bwhitmiss|bwlabel|bwlabeln|bwmorph|bwpack|bwperim|bwselect|bwtraceboundary|bwulterode|bwunpack|checkerboard|col2im|colfilt|conndef|convmtx2|corner|cornermetric|corr2|cp2tform|cpcorr|cpselect|cpstruct2pairs|dct2|dctmtx|deconvblind|deconvlucy|deconvreg|deconvwnr|decorrstretch|demosaic|dicom(?:anon|dict|info|lookup|read|uid|write)|edge|edgetaper|entropy|entropyfilt|fan2para|fanbeam|findbounds|fliptform|freqz2|fsamp2|fspecial|ftrans2|fwind1|fwind2|getheight|getimage|getimagemodel|getline|getneighbors|getnhood|getpts|getrangefromclass|getrect|getsequence|gray2ind|graycomatrix|graycoprops|graydist|grayslice|graythresh|hdrread|hdrwrite|histeq|hough|houghlines|houghpeaks|iccfind|iccread|iccroot|iccwrite|idct2|ifanbeam|im2bw|im2col|im2double|im2int16|im2java2d|im2single|im2uint16|im2uint8|imabsdiff|imadd|imadjust|ImageAdapter|imageinfo|imagemodel|imapplymatrix|imattributes|imbothat|imclearborder|imclose|imcolormaptool|imcomplement|imcontour|imcontrast|imcrop|imdilate|imdisplayrange|imdistline|imdivide|imellipse|imerode|imextendedmax|imextendedmin|imfill|imfilter|imfindcircles|imfreehand|imfuse|imgca|imgcf|imgetfile|imhandles|imhist|imhmax|imhmin|imimposemin|imlincomb|imline|immagbox|immovie|immultiply|imnoise|imopen|imoverview|imoverviewpanel|impixel|impixelinfo|impixelinfoval|impixelregion|impixelregionpanel|implay|impoint|impoly|impositionrect|improfile|imputfile|impyramid|imreconstruct|imrect|imregconfig|imregionalmax|imregionalmin|imregister|imresize|imroi|imrotate|imsave|imscrollpanel|imshow|imshowpair|imsubtract|imtool|imtophat|imtransform|imview|ind2gray|ind2rgb|interfileinfo|interfileread|intlut|ippl|iptaddcallback|iptcheckconn|iptcheckhandle|iptcheckinput|iptcheckmap|iptchecknargin|iptcheckstrs|iptdemos|iptgetapi|iptGetPointerBehavior|iptgetpref|ipticondir|iptnum2ordinal|iptPointerManager|iptprefs|iptremovecallback|iptSetPointerBehavior|iptsetpref|iptwindowalign|iradon|isbw|isflat|isgray|isicc|isind|isnitf|isrgb|isrset|lab2double|lab2uint16|lab2uint8|label2rgb|labelmatrix|makecform|makeConstrainToRectFcn|makehdr|makelut|makeresampler|maketform|mat2gray|mean2|medfilt2|montage|nitfinfo|nitfread|nlfilter|normxcorr2|ntsc2rgb|openrset|ordfilt2|otf2psf|padarray|para2fan|phantom|poly2mask|psf2otf|qtdecomp|qtgetblk|qtsetblk|radon|rangefilt|reflect|regionprops|registration.metric.(?:MattesMutualInformation|MeanSquares)|registration.optimizer.(?:OnePlusOneEvolutionary|RegularStepGradientDescent)|rgb2gray|rgb2ntsc|rgb2ycbcr|roicolor|roifill|roifilt2|roipoly|rsetwrite|std2|stdfilt|strel|stretchlim|subimage|tformarray|tformfwd|tforminv|tonemap|translate|truesize|uintlut|viscircles|warp|watershed|whitepoint|wiener2|xyz2double|xyz2uint16|ycbcr2rgb|bintprog|color|fgoalattain|fminbnd|fmincon|fminimax|fminsearch|fminunc|fseminf|fsolve|fzero|fzmult|gangstr|ktrlink|linprog|lsqcurvefit|lsqlin|lsqnonlin|lsqnonneg|optimget|optimset|optimtool|quadprog\",r=\"cell|struct|char|double|single|logical|u?int(?:8|16|32|64)|sparse\",i=this.createKeywordMapper({\"storage.type\":r,\"support.function\":n,keyword:e,\"constant.language\":t},\"identifier\",!0);this.$rules={start:[{token:\"string\",regex:\"'\",stateName:\"qstring\",next:[{token:\"constant.language.escape\",regex:\"''\"},{token:\"string\",regex:\"'|$\",next:\"start\"},{defaultToken:\"string\"}]},{token:\"text\",regex:\"\\\\s+\"},{regex:\"\",next:\"noQstring\"}],noQstring:[{regex:\"^\\\\s*%{\\\\s*$\",token:\"comment.start\",push:\"blockComment\"},{token:\"comment\",regex:\"%[^\\r\\n]*\"},{token:\"string\",regex:'\"',stateName:\"qqstring\",next:[{token:\"constant.language.escape\",regex:/\\\\./},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:i,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\",next:\"start\"},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\",next:\"start\"},{token:\"paren.lparen\",regex:\"[({\\\\[]\",next:\"start\"},{token:\"paren.rparen\",regex:\"[\\\\]})]\"},{token:\"text\",regex:\"\\\\s+\"},{token:\"text\",regex:\"$\",next:\"start\"}],blockComment:[{regex:\"^\\\\s*%{\\\\s*$\",token:\"comment.start\",push:\"blockComment\"},{regex:\"^\\\\s*%}\\\\s*$\",token:\"comment.end\",next:\"pop\"},{defaultToken:\"comment\"}]},this.normalizeRules()};r.inherits(s,i),t.MatlabHighlightRules=s}),ace.define(\"ace/mode/matlab\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/matlab_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./matlab_highlight_rules\").MatlabHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart=\"%\",this.blockComment={start:\"%{\",end:\"%}\"},this.$id=\"ace/mode/matlab\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict/mode-maze.js",
    "content": "ace.define(\"ace/mode/maze_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"keyword.control\",regex:/##|``/,comment:\"Wall\"},{token:\"entity.name.tag\",regex:/\\.\\./,comment:\"Path\"},{token:\"keyword.control\",regex:/<>/,comment:\"Splitter\"},{token:\"entity.name.tag\",regex:/\\*[\\*A-Za-z0-9]/,comment:\"Signal\"},{token:\"constant.numeric\",regex:/[0-9]{2}/,comment:\"Pause\"},{token:\"keyword.control\",regex:/\\^\\^/,comment:\"Start\"},{token:\"keyword.control\",regex:/\\(\\)/,comment:\"Hole\"},{token:\"support.function\",regex:/>>/,comment:\"Out\"},{token:\"support.function\",regex:/>\\//,comment:\"Ln Out\"},{token:\"support.function\",regex:/<</,comment:\"In\"},{token:\"keyword.control\",regex:/--/,comment:\"One use\"},{token:\"constant.language\",regex:/%[LRUDNlrudn]/,comment:\"Direction\"},{token:[\"entity.name.function\",\"keyword.other\",\"keyword.operator\",\"keyword.other\",\"keyword.operator\",\"constant.numeric\",\"keyword.operator\",\"keyword.other\",\"keyword.operator\",\"constant.numeric\",\"string.quoted.double\",\"string.quoted.single\"],regex:/([A-Za-z][A-Za-z0-9])( *-> *)(?:([-+*\\/]=)( *)((?:-)?)([0-9]+)|(=)( *)(?:((?:-)?)([0-9]+)|(\"[^\"]*\")|('[^']*')))/,comment:\"Assignment function\"},{token:[\"entity.name.function\",\"keyword.other\",\"keyword.control\",\"keyword.other\",\"keyword.operator\",\"keyword.other\",\"keyword.operator\",\"constant.numeric\",\"entity.name.tag\",\"keyword.other\",\"keyword.control\",\"keyword.other\",\"constant.language\",\"keyword.other\",\"keyword.control\",\"keyword.other\",\"constant.language\"],regex:/([A-Za-z][A-Za-z0-9])( *-> *)(IF|if)( *)(?:([<>]=?|==)( *)((?:-)?)([0-9]+)|(\\*[\\*A-Za-z0-9]))( *)(THEN|then)( *)(%[LRUDNlrudn])(?:( *)(ELSE|else)( *)(%[LRUDNlrudn]))?/,comment:\"Equality Function\"},{token:\"entity.name.function\",regex:/[A-Za-z][A-Za-z0-9]/,comment:\"Function cell\"},{token:\"comment.line.double-slash\",regex:/ *\\/\\/.*/,comment:\"Comment\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"mz\"],name:\"Maze\",scopeName:\"source.maze\"},r.inherits(s,i),t.MazeHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/maze\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/maze_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./maze_highlight_rules\").MazeHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.$id=\"ace/mode/maze\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-mel.js",
    "content": "ace.define(\"ace/mode/mel_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{caseInsensitive:!0,token:\"storage.type.mel\",regex:\"\\\\b(matrix|string|vector|float|int|void)\\\\b\"},{caseInsensitive:!0,token:\"support.function.mel\",regex:\"\\\\b((s(h(ow(ManipCtx|S(hadingGroupAttrEditor|electionInTitle)|H(idden|elp)|Window)|el(f(Button|TabLayout|Layout)|lField)|ading(GeometryRelCtx|Node|Connection|LightRelCtx))|y(s(tem|File)|mbol(Button|CheckBox))|nap(shot|Mode|2to2 |TogetherCtx|Key)|c(ulpt|ene(UIReplacement|Editor)|ale(BrushBrightness |Constraint|Key(Ctx)?)?|r(ipt(Node|Ctx|Table|edPanel(Type)?|Job|EditorInfo)|oll(Field|Layout))|mh)|t(itch(Surface(Points)?|AndExplodeShell )|a(ckTrace|rt(sWith |String ))|r(cmp|i(ng(ToStringArray |Array(Remove(Duplicates | )|C(ount |atenate )|ToString |Intersector))|p )|oke))|i(n(gleProfileBirailSurface)?|ze|gn|mplify)|o(u(nd(Control)?|rce)|ft(Mod(Ctx)?)?|rt)|u(perCtx|rface(S(haderList|ampler))?|b(st(itute(Geometry|AllString )?|ring)|d(M(irror|a(tchTopology|p(SewMove|Cut)))|iv(Crease|DisplaySmoothness)?|C(ollapse|leanTopology)|T(o(Blind|Poly)|ransferUVsToCache)|DuplicateAndConnect|EditUV|ListComponentConversion|AutoProjection)))|p(h(ere|rand)|otLight(PreviewPort)?|aceLocator|r(ing|eadSheetEditor))|e(t(s|MenuMode|Sta(te |rtupMessage|mpDensity )|NodeTypeFlag|ConstraintRestPosition |ToolTo|In(putDeviceMapping|finity)|D(ynamic|efaultShadingGroup|rivenKeyframe)|UITemplate|P(ar(ticleAttr|ent)|roject )|E(scapeCtx|dit(or|Ctx))|Key(Ctx|frame|Path)|F(ocus|luidAttr)|Attr(Mapping)?)|parator|ed|l(ect(Mode|ionConnection|Context|Type|edNodes|Pr(iority|ef)|Key(Ctx)?)?|LoadSettings)|archPathArray )|kin(Cluster|Percent)|q(uareSurface|rt)|w(itchTable|atchDisplayPort)|a(ve(Menu|Shelf|ToolSettings|I(nitialState|mage)|Pref(s|Objects)|Fluid|A(ttrPreset |llShelves))|mpleImage)|rtContext|mooth(step|Curve|TangentSurface))|h(sv_to_rgb|yp(ot|er(Graph|Shade|Panel))|i(tTest|de|lite)|ot(Box|key(Check)?)|ud(Button|Slider(Button)?)|e(lp(Line)?|adsUpDisplay|rmite)|wRe(nder(Load)?|flectionMap)|ard(enPointCurve|ware(RenderPanel)?))|n(o(nLinear|ise|de(Type|IconButton|Outliner|Preset)|rmal(ize |Constraint))|urbs(Boolean|S(elect|quare)|C(opyUVSet|ube)|To(Subdiv|Poly(gonsPref)?)|Plane|ViewDirectionVector )|ew(ton|PanelItems)|ame(space(Info)?|Command|Field))|c(h(oice|dir|eck(Box(Grp)?|DefaultRenderGlobals)|a(n(nelBox|geSubdiv(Region|ComponentDisplayLevel))|racter(Map|OutlineEditor)?))|y(cleCheck|linder)|tx(Completion|Traverse|EditMode|Abort)|irc(ularFillet|le)|o(s|n(str(uctionHistory|ain(Value)?)|nect(ionInfo|Control|Dynamic|Joint|Attr)|t(extInfo|rol)|dition|e|vert(SolidTx|Tessellation|Unit|FromOldLayers |Lightmap)|firmDialog)|py(SkinWeights|Key|Flexor|Array )|l(or(Slider(Grp|ButtonGrp)|Index(SliderGrp)?|Editor|AtPoint)?|umnLayout|lision)|arsenSubdivSelectionList|m(p(onentEditor|utePolysetVolume |actHairSystem )|mand(Port|Echo|Line)))|u(tKey|r(ve(MoveEPCtx|SketchCtx|CVCtx|Intersect|OnSurface|E(ditorCtx|PCtx)|AddPtCtx)?|rent(Ctx|Time(Ctx)?|Unit)))|p(GetSolverAttr|Button|S(olver(Types)?|e(t(SolverAttr|Edit)|am))|C(o(nstraint|llision)|ache)|Tool|P(anel|roperty))|eil|l(ip(Schedule(rOutliner)?|TrimBefore |Editor(CurrentTimeCtx)?)?|ose(Surface|Curve)|uster|ear(Cache)?|amp)|a(n(CreateManip|vas)|tch(Quiet)?|pitalizeString |mera(View)?)|r(oss(Product )?|eate(RenderLayer|MotionField |SubdivRegion|N(ode|ewShelf )|D(isplayLayer|rawCtx)|Editor))|md(Shell|FileOutput))|M(R(ender(ShadowData|Callback|Data|Util|View|Line(Array)?)|ampAttribute)|G(eometryData|lobal)|M(odelMessage|essage|a(nipData|t(erial|rix)))|BoundingBox|S(yntax|ceneMessage|t(atus|ring(Array)?)|imple|pace|elect(ion(Mask|List)|Info)|watchRender(Register|Base))|H(ardwareRenderer|WShaderSwatchGenerator)|NodeMessage|C(o(nditionMessage|lor(Array)?|m(putation|mand(Result|Message)))|ursor|loth(Material|S(ystem|olverRegister)|Con(straint|trol)|Triangle|Particle|Edge|Force)|allbackIdArray)|T(ypeId|ime(r(Message)?|Array)?|oolsInfo|esselationParams|r(imBoundaryArray|ansformationMatrix))|I(ntArray|t(Geometry|Mesh(Polygon|Edge|Vertex|FaceVertex)|S(urfaceCV|electionList)|CurveCV|Instancer|eratorType|D(ependency(Graph|Nodes)|ag)|Keyframe)|k(System|HandleGroup)|mage)|3dView|Object(SetMessage|Handle|Array)?|D(G(M(odifier|essage)|Context)|ynSwept(Triangle|Line)|istance|oubleArray|evice(State|Channel)|a(ta(Block|Handle)|g(M(odifier|essage)|Path(Array)?))|raw(Request(Queue)?|Info|Data|ProcedureBase))|U(serEventMessage|i(nt(Array|64Array)|Message))|P(o(int(Array)?|lyMessage)|lug(Array)?|rogressWindow|x(G(eometry(Iterator|Data)|lBuffer)|M(idiInputDevice|odelEditorCommand|anipContainer)|S(urfaceShape(UI)?|pringNode|electionContext)|HwShaderNode|Node|Co(ntext(Command)?|m(ponentShape|mand))|T(oolCommand|ransform(ationMatrix)?)|IkSolver(Node)?|3dModelView|ObjectSet|D(eformerNode|ata|ragAndDropBehavior)|PolyT(weakUVCommand|rg)|EmitterNode|F(i(eldNode|leTranslator)|luidEmitterNode)|LocatorNode))|E(ulerRotation|vent(Message)?)|ayatomr|Vector(Array)?|Quaternion|F(n(R(otateManip|eflectShader|adialField)|G(e(nericAttribute|ometry(Data|Filter))|ravityField)|M(otionPath|es(sageAttribute|h(Data)?)|a(nip3D|trix(Data|Attribute)))|B(l(innShader|endShapeDeformer)|ase)|S(caleManip|t(ateManip|ring(Data|ArrayData))|ingleIndexedComponent|ubd(Names|Data)?|p(hereData|otLight)|et|kinCluster)|HikEffector|N(on(ExtendedLight|AmbientLight)|u(rbs(Surface(Data)?|Curve(Data)?)|meric(Data|Attribute))|ewtonField)|C(haracter|ircleSweepManip|ompo(nent(ListData)?|undAttribute)|urveSegmentManip|lip|amera)|T(ypedAttribute|oggleManip|urbulenceField|r(ipleIndexedComponent|ansform))|I(ntArrayData|k(Solver|Handle|Joint|Effector))|D(ynSweptGeometryData|i(s(cManip|tanceManip)|rection(Manip|alLight))|ouble(IndexedComponent|ArrayData)|ependencyNode|a(ta|gNode)|ragField)|U(ni(tAttribute|formField)|Int64ArrayData)|P(hong(Shader|EShader)|oint(On(SurfaceManip|CurveManip)|Light|ArrayData)|fxGeometry|lugin(Data)?|arti(cleSystem|tion))|E(numAttribute|xpression)|V(o(lume(Light|AxisField)|rtexField)|ectorArrayData)|KeyframeDelta(Move|B(lockAddRemove|reakdown)|Scale|Tangent|InfType|Weighted|AddRemove)?|F(ield|luid|reePointTriadManip)|W(ireDeformer|eightGeometryFilter)|L(ight(DataAttribute)?|a(yeredShader|ttice(D(eformer|ata))?|mbertShader))|A(ni(sotropyShader|mCurve)|ttribute|irField|r(eaLight|rayAttrsData)|mbientLight))?|ile(IO|Object)|eedbackLine|loat(Matrix|Point(Array)?|Vector(Array)?|Array))|L(i(ghtLinks|brary)|ockMessage)|A(n(im(Message|C(ontrol|urveC(hange|lipboard(Item(Array)?)?))|Util)|gle)|ttribute(Spec(Array)?|Index)|r(rayData(Builder|Handle)|g(Database|Parser|List))))|t(hreePointArcCtx|ime(Control|Port|rX)|o(ol(Button|HasOptions|Collection|Dropped|PropertyWindow)|NativePath |upper|kenize(List )?|l(ower|erance)|rus|ggle(WindowVisibility|Axis)?)|u(rbulence|mble(Ctx)?)|ex(RotateContext|M(oveContext|anipContext)|t(ScrollList|Curves|ure(HairColor |DisplacePlane |PlacementContext|Window)|ToShelf |Field(Grp|ButtonGrp)?)?|S(caleContext|electContext|mudgeUVContext)|WinToolCtx)|woPointArcCtx|a(n(gentConstraint)?|bLayout)|r(im|unc(ate(HairCache|FluidCache))?|a(ns(formLimits|lator)|c(e|k(Ctx)?))))|i(s(olateSelect|Connected|True|Dirty|ParentOf |Valid(String |ObjectName |UiName )|AnimCurve )|n(s(tance(r)?|ert(Joint(Ctx)?|K(not(Surface|Curve)|eyCtx)))|heritTransform|t(S(crollBar|lider(Grp)?)|er(sect|nalVar|ToUI )|Field(Grp)?))|conText(Radio(Button|Collection)|Button|StaticLabel|CheckBox)|temFilter(Render|Type|Attr)?|prEngine|k(S(ystem(Info)?|olver|plineHandleCtx)|Handle(Ctx|DisplayScale)?|fkDisplayMethod)|m(portComposerCurves |fPlugins|age))|o(ceanNurbsPreviewPlane |utliner(Panel|Editor)|p(tion(Menu(Grp)?|Var)|en(GLExtension|MayaPref))|verrideModifier|ffset(Surface|Curve(OnSurface)?)|r(ientConstraint|bit(Ctx)?)|b(soleteProc |j(ect(Center|Type(UI)?|Layer )|Exists)))|d(yn(RelEd(itor|Panel)|Globals|C(ontrol|ache)|P(a(intEditor|rticleCtx)|ref)|Exp(ort|ression)|amicLoad)|i(s(connect(Joint|Attr)|tanceDim(Context|ension)|pla(y(RGBColor|S(tats|urface|moothness)|C(olor|ull)|Pref|LevelOfDetail|Affected)|cementToPoly)|kCache|able)|r(name |ect(ionalLight|KeyCtx)|map)|mWhen)|o(cServer|Blur|t(Product )?|ubleProfileBirailSurface|peSheetEditor|lly(Ctx)?)|uplicate(Surface|Curve)?|e(tach(Surface|Curve|DeviceAttr)|vice(Panel|Editor)|f(ine(DataServer|VirtualDevice)|ormer|ault(Navigation|LightListCheckBox))|l(ete(Sh(elfTab |adingGroupsAndMaterials )|U(nusedBrushes |I)|Attr)?|randstr)|g_to_rad)|agPose|r(opoffLocator|ag(gerContext)?)|g(timer|dirty|Info|eval))|CBG |u(serCtx|n(t(angleUV|rim)|i(t|form)|do(Info)?|loadPlugin|assignInputDevice|group)|iTemplate|p(dateAE |Axis)|v(Snapshot|Link))|joint(C(tx|luster)|DisplayScale|Lattice)?|p(sd(ChannelOutliner|TextureFile|E(ditTextureFile|xport))|close|i(c(ture|kWalk)|xelMove)|o(se|int(MatrixMult |C(onstraint|urveConstraint)|On(Surface|Curve)|Position|Light)|p(upMenu|en)|w|l(y(Reduce|GeoSampler|M(irrorFace|ove(UV|Edge|Vertex|Facet(UV)?)|erge(UV|Edge(Ctx)?|Vertex|Facet(Ctx)?)|ap(Sew(Move)?|Cut|Del))|B(oolOp|evel|l(indData|endColor))|S(traightenUVBorder|oftEdge|u(perCtx|bdivide(Edge|Facet))|p(her(icalProjection|e)|lit(Ring|Ctx|Edge|Vertex)?)|e(tToFaceNormal|parate|wEdge|lect(Constraint(Monitor)?|EditCtx))|mooth)|Normal(izeUV|PerVertex)?|C(hipOff|ylind(er|ricalProjection)|o(ne|pyUV|l(or(BlindData|Set|PerVertex)|lapse(Edge|Facet)))|u(t(Ctx)?|be)|l(ipboard|oseBorder)|acheMonitor|rea(seEdge|teFacet(Ctx)?))|T(o(Subdiv|rus)|r(iangulate|ansfer))|In(stallAction|fo)|Options|D(uplicate(Edge|AndConnect)|el(Edge|Vertex|Facet))|U(nite|VSet)|P(yramid|oke|lan(e|arProjection)|r(ism|ojection))|E(ditUV|valuate|xtrude(Edge|Facet))|Qu(eryBlindData|ad)|F(orceUV|lip(UV|Edge))|WedgeFace|L(istComponentConversion|ayoutUV)|A(utoProjection|ppend(Vertex|FacetCtx)?|verage(Normal|Vertex)))|eVectorConstraint))|utenv|er(cent|formanceOptions)|fxstrokes|wd|l(uginInfo|a(y(b(last|ackOptions))?|n(e|arSrf)))|a(steKey|ne(l(History|Configuration)?|Layout)|thAnimation|irBlend|use|lettePort|r(ti(cle(RenderInfo|Instancer|Exists)?|tion)|ent(Constraint)?|am(Dim(Context|ension)|Locator)))|r(int|o(j(ect(ion(Manip|Context)|Curve|Tangent)|FileViewer)|pMo(dCtx|ve)|gress(Bar|Window)|mptDialog)|eloadRefEd))|e(n(codeString|d(sWith |String )|v|ableDevice)|dit(RenderLayer(Globals|Members)|or(Template)?|DisplayLayer(Globals|Members)|AttrLimits )|v(ent|al(Deferred|Echo)?)|quivalent(Tol | )|ffector|r(f|ror)|x(clusiveLightCheckBox|t(end(Surface|Curve)|rude)|ists|p(ortComposerCurves |ression(EditorListen)?)?|ec(uteForEachObject )?|actWorldBoundingBox)|mit(ter)?)|v(i(sor|ew(Set|HeadOn|2dToolCtx|C(lipPlane|amera)|Place|Fit|LookAt))|o(lumeAxis|rtex)|e(ctorize|rifyCmd )|alidateShelfName )|key(Tangent|frame(Region(MoveKeyCtx|S(caleKeyCtx|e(tKeyCtx|lectKeyCtx))|CurrentTimeCtx|TrackCtx|InsertKeyCtx|D(irectKeyCtx|ollyCtx))|Stats|Outliner)?)|qu(it|erySubdiv)|f(c(heck|lose)|i(nd(RelatedSkinCluster |MenuItem |er|Keyframe|AllIntersections )|tBspline|l(ter(StudioImport|Curve|Expand)?|e(BrowserDialog|test|Info|Dialog|Extension )?|letCurve)|rstParentOf )|o(ntDialog|pen|rmLayout)|print|eof|flush|write|l(o(or|w|at(S(crollBar|lider(Grp|ButtonGrp|2)?)|Eq |Field(Grp)?))|u(shUndo|id(CacheInfo|Emitter|VoxelInfo))|exor)|r(omNativePath |e(eFormFillet|wind|ad)|ameLayout)|get(word|line)|mod)|w(hatIs|i(ndow(Pref)?|re(Context)?)|orkspace|ebBrowser(Prefs)?|a(itCursor|rning)|ri(nkle(Context)?|teTake))|l(s(T(hroughFilter|ype )|UI)?|i(st(Relatives|MenuAnnotation |Sets|History|NodeTypes|C(onnections|ameras)|Transforms |InputDevice(s|Buttons|Axes)|erEditor|DeviceAttachments|Unselected |A(nimatable|ttr))|n(step|eIntersection )|ght(link|List(Panel|Editor)?))|o(ckNode|okThru|ft|ad(NewShelf |P(lugin|refObjects)|Fluid)|g)|a(ssoContext|y(out|er(Button|ed(ShaderPort|TexturePort)))|ttice(DeformKeyCtx)?|unch(ImageEditor)?))|a(ssign(Command|InputDevice)|n(notate|im(C(one|urveEditor)|Display|View)|gle(Between)?)|tt(ach(Surface|Curve|DeviceAttr)|r(ibute(Menu|Info|Exists|Query)|NavigationControlGrp|Co(ntrolGrp|lorSliderGrp|mpatibility)|PresetEditWin|EnumOptionMenu(Grp)?|Field(Grp|SliderGrp)))|i(r|mConstraint)|d(d(NewShelfTab|Dynamic|PP|Attr(ibuteEditorNodeHelp)?)|vanceToNextDrivenKey)|uto(Place|Keyframe)|pp(endStringArray|l(y(Take|AttrPreset)|icationName))|ffect(s|edNet)|l(i(as(Attr)?|gn(Surface|C(tx|urve))?)|lViewFit)|r(c(len|Len(DimContext|gthDimension))|t(BuildPaintMenu|Se(tPaintCtx|lectCtx)|3dPaintCtx|UserPaintCtx|PuttyCtx|FluidAttrCtx|Attr(SkinPaintCtx|Ctx|PaintVertexCtx))|rayMapper)|mbientLight|b(s|out))|r(igid(Body|Solver)|o(t(at(ionInterpolation|e))?|otOf |undConstantRadius|w(ColumnLayout|Layout)|ll(Ctx)?)|un(up|TimeCommand)|e(s(olutionNode|et(Tool|AE )|ampleFluid)|hash|n(der(GlobalsNode|Manip|ThumbnailUpdate|Info|er|Partition|QualityNode|Window(SelectContext|Editor)|LayerButton)?|ame(SelectionList |UI|Attr)?)|cord(Device|Attr)|target|order(Deformers)?|do|v(olve|erse(Surface|Curve))|quires|f(ineSubdivSelectionList|erence(Edit|Query)?|resh(AE )?)|loadImage|adTake|root|move(MultiInstance|Joint)|build(Surface|Curve))|a(n(d(state|omizeFollicles )?|geControl)|d(i(o(MenuItemCollection|Button(Grp)?|Collection)|al)|_to_deg)|mpColorPort)|gb_to_hsv)|g(o(toBindPose |al)|e(t(M(odifiers|ayaPanelTypes )|Classification|InputDeviceRange|pid|env|DefaultBrush|Pa(nel|rticleAttr)|F(ileList|luidAttr)|A(ttr|pplicationVersionAsFloat ))|ometryConstraint)|l(Render(Editor)?|obalStitch)|a(uss|mma)|r(id(Layout)?|oup(ObjectsByName )?|a(dientControl(NoAttr)?|ph(SelectContext|TrackCtx|DollyCtx)|vity|bColor))|match)|x(pmPicker|form|bmLangPathList )|m(i(n(imizeApp)?|rrorJoint)|o(del(CurrentTimeCtx|Panel|Editor)|use|v(In|e(IKtoFK |VertexAlongDirection|KeyCtx)?|Out))|u(te|ltiProfileBirailSurface)|e(ssageLine|nu(BarLayout|Item(ToShelf )?|Editor)?|mory)|a(nip(Rotate(Context|LimitsCtx)|Move(Context|LimitsCtx)|Scale(Context|LimitsCtx)|Options)|tch|ke(Roll |SingleSurface|TubeOn |Identity|Paintable|bot|Live)|rker|g|x))|b(in(Membership|d(Skin|Pose))|o(neLattice|undary|x(ZoomCtx|DollyCtx))|u(tton(Manip)?|ild(BookmarkMenu|KeyframeMenu)|fferCurve)|e(ssel|vel(Plus)?)|l(indDataType|end(Shape(Panel|Editor)?|2|TwoAttr))|a(sename(Ex | )|tchRender|ke(Results|Simulation|Clip|PartialHistory|FluidShading )))))\\\\b\"},{caseInsensitive:!0,token:\"support.constant.mel\",regex:\"\\\\b(s(h(ellTessellate|a(d(ing(Map|Engine)|erGlow)|pe))|n(ow|apshot(Shape)?)|c(ulpt|aleConstraint|ript)|t(yleCurve|itch(Srf|AsNurbsShell)|u(cco|dioClearCoat)|encil|roke(Globals)?)|i(ngleShadingSwitch|mpleVolumeShader)|o(ftMod(Manip|Handle)?|lidFractal)|u(rface(Sha(der|pe)|Info|EdManip|VarGroup|Luminance)|b(Surface|d(M(odifier(UV|World)?|ap(SewMove|Cut|pingManip))|B(lindData|ase)|iv(ReverseFaces|SurfaceVarGroup|Co(llapse|mponentId)|To(Nurbs|Poly))?|HierBlind|CleanTopology|Tweak(UV)?|P(lanarProj|rojManip)|LayoutUV|A(ddTopology|utoProj))|Curve))|p(BirailSrf|otLight|ring)|e(tRange|lectionListOperator)|k(inCluster|etchPlane)|quareSrf|ampler(Info)?|m(ooth(Curve|TangentSrf)|ear))|h(svToRgb|yper(GraphInfo|View|Layout)|ik(Solver|Handle|Effector)|oldMatrix|eightField|w(Re(nderGlobals|flectionMap)|Shader)|a(ir(System|Constraint|TubeShader)|rd(enPoint|wareRenderGlobals)))|n(o(n(ExtendedLightShapeNode|Linear|AmbientLightShapeNode)|ise|rmalConstraint)|urbs(Surface|Curve|T(oSubdiv(Proc)?|essellate)|DimShape)|e(twork|wtonField))|c(h(o(ice|oser)|ecker|aracter(Map|Offset)?)|o(n(straint|tr(olPoint|ast)|dition)|py(ColorSet|UVSet))|urve(Range|Shape|Normalizer(Linear|Angle)?|In(tersect|fo)|VarGroup|From(Mesh(CoM|Edge)?|Su(rface(Bnd|CoS|Iso)?|bdiv(Edge|Face)?)))|l(ip(Scheduler|Library)|o(se(stPointOnSurface|Surface|Curve)|th|ud)|uster(Handle)?|amp)|amera(View)?|r(eate(BPManip|ColorSet|UVSet)|ater))|t(ime(ToUnitConversion|Function)?|oo(nLineAttributes|lDrawManip)|urbulenceField|ex(BaseDeformManip|ture(BakeSet|2d|ToGeom|3d|Env)|SmudgeUVManip|LatticeDeformManip)|weak|angentConstraint|r(i(pleShadingSwitch|m(WithBoundaries)?)|ansform(Geometry)?))|i(n(s(tancer|ertKnot(Surface|Curve))|tersectSurface)|k(RPsolver|MCsolver|S(ystem|olver|Csolver|plineSolver)|Handle|PASolver|Effector)|m(plicit(Box|Sphere|Cone)|agePlane))|o(cean(Shader)?|pticalFX|ffset(Surface|C(os|urve))|ldBlindDataBase|rient(Constraint|ationMarker)|bject(RenderFilter|MultiFilter|BinFilter|S(criptFilter|et)|NameFilter|TypeFilter|Filter|AttrFilter))|d(yn(Globals|Base)|i(s(tance(Between|DimShape)|pla(yLayer(Manager)?|cementShader)|kCache)|rect(ionalLight|edDisc)|mensionShape)|o(ubleShadingSwitch|f)|pBirailSrf|e(tach(Surface|Curve)|pendNode|f(orm(Bend|S(ine|quash)|Twist|ableShape|F(unc|lare)|Wave)|ault(RenderUtilityList|ShaderList|TextureList|LightList))|lete(Co(lorSet|mponent)|UVSet))|ag(Node|Pose)|r(opoffLocator|agField))|u(seBackground|n(trim|i(t(Conversion|ToTimeConversion)|formField)|known(Transform|Dag)?)|vChooser)|j(iggle|oint(Cluster|Ffd|Lattice)?)|p(sdFileTex|hong(E)?|o(s(tProcessList|itionMarker)|int(MatrixMult|Constraint|On(SurfaceInfo|CurveInfo)|Emitter|Light)|l(y(Reduce|M(irror|o(difier(UV|World)?|ve(UV|Edge|Vertex|Face(tUV)?))|erge(UV|Edge|Vert|Face)|ap(Sew(Move)?|Cut|Del))|B(oolOp|evel|lindData|ase)|S(traightenUVBorder|oftEdge|ubd(Edge|Face)|p(h(ere|Proj)|lit(Ring|Edge|Vert)?)|e(parate|wEdge)|mooth(Proxy|Face)?)|Normal(izeUV|PerVertex)?|C(hipOff|yl(inder|Proj)|o(ne|pyUV|l(orPerVertex|lapse(Edge|F)))|u(t(Manip(Container)?)?|be)|loseBorder|rea(seEdge|t(or|eFace)))|T(o(Subdiv|rus)|weak(UV)?|r(iangulate|ansfer))|OptUvs|D(uplicateEdge|el(Edge|Vertex|Facet))|Unite|P(yramid|oke(Manip)?|lan(e|arProj)|r(i(sm|mitive)|oj))|Extrude(Edge|Vertex|Face)|VertexNormalManip|Quad|Flip(UV|Edge)|WedgeFace|LayoutUV|A(utoProj|ppend(Vertex)?|verageVertex))|eVectorConstraint))|fx(Geometry|Hair|Toon)|l(usMinusAverage|a(n(e|arTrimSurface)|ce(2dTexture|3dTexture)))|a(ssMatrix|irBlend|r(ti(cle(SamplerInfo|C(olorMapper|loud)|TranspMapper|IncandMapper|AgeMapper)?|tion)|ent(Constraint|Tessellate)|amDimension))|r(imitive|o(ject(ion|Curve|Tangent)|xyManager)))|e(n(tity|v(Ball|ironmentFog|S(phere|ky)|C(hrome|ube)|Fog))|x(t(end(Surface|Curve)|rude)|p(lodeNurbsShell|ression)))|v(iewManip|o(lume(Shader|Noise|Fog|Light|AxisField)|rtexField)|e(ctor(RenderGlobals|Product)|rtexBakeSet))|quadShadingSwitch|f(i(tBspline|eld|l(ter(Resample|Simplify|ClosestSample|Euler)?|e|letCurve))|o(urByFourMatrix|llicle)|urPointOn(MeshInfo|Subd)|f(BlendSrf(Obsolete)?|d|FilletSrf)|l(ow|uid(S(hape|liceManip)|Texture(2D|3D)|Emitter)|exorShape)|ra(ctal|meCache))|w(tAddMatrix|ire|ood|eightGeometryFilter|ater|rap)|l(ight(Info|Fog|Li(st|nker))?|o(cator|okAt|d(Group|Thresholds)|ft)|uminance|ea(stSquaresModifier|ther)|a(yered(Shader|Texture)|ttice|mbert))|a(n(notationShape|i(sotropic|m(Blend(InOut)?|C(urve(T(T|U|L|A)|U(T|U|L|A))?|lip)))|gleBetween)|tt(ach(Surface|Curve)|rHierarchyTest)|i(rField|mConstraint)|dd(Matrix|DoubleLinear)|udio|vg(SurfacePoints|NurbsSurfacePoints|Curves)|lign(Manip|Surface|Curve)|r(cLengthDimension|tAttrPaintTest|eaLight|rayMapper)|mbientLight|bstractBase(NurbsConversion|Create))|r(igid(Body|Solver|Constraint)|o(ck|undConstantRadius)|e(s(olution|ultCurve(TimeTo(Time|Unitless|Linear|Angular))?)|nder(Rect|Globals(List)?|Box|Sphere|Cone|Quality|L(ight|ayer(Manager)?))|cord|v(olve(dPrimitive)?|erse(Surface|Curve)?)|f(erence|lect)|map(Hsv|Color|Value)|build(Surface|Curve))|a(dialField|mp(Shader)?)|gbToHsv|bfSrf)|g(uide|eo(Connect(or|able)|metry(Shape|Constraint|VarGroup|Filter))|lobal(Stitch|CacheControl)|ammaCorrect|r(id|oup(Id|Parts)|a(nite|vityField)))|Fur(Globals|Description|Feedback|Attractors)|xformManip|m(o(tionPath|untain|vie)|u(te|lt(Matrix|i(plyDivide|listerLight)|DoubleLinear))|pBirailSrf|e(sh(VarGroup)?|ntalray(Texture|IblShape))|a(terialInfo|ke(Group|Nurb(sSquare|Sphere|C(ylinder|ircle|one|ube)|Torus|Plane)|CircularArc|T(hreePointCircularArc|extCurves|woPointCircularArc))|rble))|b(irailSrf|o(neLattice|olean|undary(Base)?)|u(lge|mp(2d|3d))|evel(Plus)?|l(in(n|dDataTemplate)|end(Shape|Color(s|Sets)|TwoAttr|Device|Weighted)?)|a(se(GeometryVarGroup|ShadingSwitch|Lattice)|keSet)|r(ownian|ush)))\\\\b\"},{caseInsensitive:!0,token:\"keyword.control.mel\",regex:\"\\\\b(if|in|else|for|while|break|continue|case|default|do|switch|return|switch|case|source|catch|alias)\\\\b\"},{token:\"keyword.other.mel\",regex:\"\\\\b(global)\\\\b\"},{caseInsensitive:!0,token:\"constant.language.mel\",regex:\"\\\\b(null|undefined)\\\\b\"},{token:\"constant.numeric.mel\",regex:\"\\\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\\\.?[0-9]*)|(\\\\.[0-9]+))((e|E)(\\\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\\\b\"},{token:\"punctuation.definition.string.begin.mel\",regex:'\"',push:[{token:\"constant.character.escape.mel\",regex:\"\\\\\\\\.\"},{token:\"punctuation.definition.string.end.mel\",regex:'\"',next:\"pop\"},{defaultToken:\"string.quoted.double.mel\"}]},{token:[\"variable.other.mel\",\"punctuation.definition.variable.mel\"],regex:\"(\\\\$)([a-zA-Z_\\\\x7f-\\\\xff][a-zA-Z0-9_\\\\x7f-\\\\xff]*?\\\\b)\"},{token:\"punctuation.definition.string.begin.mel\",regex:\"'\",push:[{token:\"constant.character.escape.mel\",regex:\"\\\\\\\\.\"},{token:\"punctuation.definition.string.end.mel\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.quoted.single.mel\"}]},{token:\"constant.language.mel\",regex:\"\\\\b(false|true|yes|no|on|off)\\\\b\"},{token:\"punctuation.definition.comment.mel\",regex:\"/\\\\*\",push:[{token:\"punctuation.definition.comment.mel\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.mel\"}]},{token:[\"comment.line.double-slash.mel\",\"punctuation.definition.comment.mel\"],regex:\"(//)(.*$\\\\n?)\"},{caseInsensitive:!0,token:\"keyword.operator.mel\",regex:\"\\\\b(instanceof)\\\\b\"},{token:\"keyword.operator.symbolic.mel\",regex:\"[-\\\\!\\\\%\\\\&\\\\*\\\\+\\\\=\\\\/\\\\?\\\\:]\"},{token:[\"meta.preprocessor.mel\",\"punctuation.definition.preprocessor.mel\"],regex:\"(^[ \\\\t]*)((?:#)[a-zA-Z]+)\"},{token:[\"meta.function.mel\",\"keyword.other.mel\",\"storage.type.mel\",\"entity.name.function.mel\",\"punctuation.section.function.mel\"],regex:\"(global\\\\s*)?(proc\\\\s*)(\\\\w+\\\\s*\\\\[?\\\\]?\\\\s+|\\\\s+)([A-Za-z_][A-Za-z0-9_\\\\.]*)(\\\\s*\\\\()\",push:[{include:\"$self\"},{token:\"punctuation.section.function.mel\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"meta.function.mel\"}]}]},this.normalizeRules()};r.inherits(s,i),t.MELHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/mel\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/mel_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./mel_highlight_rules\").MELHighlightRules,o=e(\"./behaviour/cstyle\").CstyleBehaviour,u=e(\"./folding/cstyle\").FoldMode,a=function(){this.HighlightRules=s,this.$behaviour=new o,this.foldingRules=new u};r.inherits(a,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/mel\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict/mode-mips_assembler.js",
    "content": "ace.define(\"ace/mode/mips_assembler_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"support.function.pseudo.mips\",regex:\"\\\\b(?:mul|abs|div|divu|mulo|mulou|neg|negu|not|rem|remu|rol|ror|li|seq|sge|sgeu|sgt|sgtu|sle|sleu|sne|b|beqz|bge|bgeu|bgt|bgtu|ble|bleu|blt|bltu|bnez|la|ld|ulh|ulhu|ulw|sd|ush|usw|move|mfc1\\\\.d|l\\\\.d|l\\\\.s|s\\\\.d|s\\\\.s)\\\\b\",comment:\"ok actually this are instructions, but one also could call them funtions\\u2026\"},{token:\"support.function.mips\",regex:\"\\\\b(?:abs\\\\.d|abs\\\\.s|add|add\\\\.d|add\\\\.s|addi|addiu|addu|and|andi|bc1f|bc1t|beq|bgez|bgezal|bgtz|blez|bltz|bltzal|bne|break|c\\\\.eq\\\\.d|c\\\\.eq\\\\.s|c\\\\.le\\\\.d|c\\\\.le\\\\.s|c\\\\.lt\\\\.d|c\\\\.lt\\\\.s|ceil\\\\.w\\\\.d|ceil\\\\.w\\\\.s|clo|clz|cvt\\\\.d\\\\.s|cvt\\\\.d\\\\.w|cvt\\\\.s\\\\.d|cvt\\\\.s\\\\.w|cvt\\\\.w\\\\.d|cvt\\\\.w\\\\.s|div|div\\\\.d|div\\\\.s|divu|eret|floor\\\\.w\\\\.d|floor\\\\.w\\\\.s|j|jal|jalr|jr|lb|lbu|lh|lhu|ll|lui|lw|lwc1|lwl|lwr|madd|maddu|mfc0|mfc1|mfhi|mflo|mov\\\\.d|mov\\\\.s|movf|movf\\\\.d|movf\\\\.s|movn|movn\\\\.d|movn\\\\.s|movt|movt\\\\.d|movt\\\\.s|movz|movz\\\\.d|movz\\\\.s|msub|mtc0|mtc1|mthi|mtlo|mul|mul\\\\.d|mul\\\\.s|mult|multu|neg\\\\.d|neg\\\\.s|nop|nor|or|ori|round\\\\.w\\\\.d|round\\\\.w\\\\.s|sb|sc|sdc1|sh|sll|sllv|slt|slti|sltiu|sltu|sqrt\\\\.d|sqrt\\\\.s|sra|srav|srl|srlv|sub|sub\\\\.d|sub\\\\.s|subu|sw|swc1|swl|swr|syscall|teq|teqi|tge|tgei|tgeiu|tgeu|tlt|tlti|tltiu|tltu|trunc\\\\.w\\\\.d|trunc\\\\.w\\\\.s|xor|xori)\\\\b\"},{token:\"storage.type.mips\",regex:\"\\\\.(?:ascii|asciiz|byte|data|double|float|half|kdata|ktext|space|text|word|set\\\\s*(?:noat|at))\\\\b\"},{token:\"storage.modifier.mips\",regex:\"\\\\.(?:align|extern||globl)\\\\b\"},{token:[\"entity.name.function.label.mips\",\"meta.function.label.mips\"],regex:\"\\\\b([A-Za-z0-9_]+)(:)\"},{token:[\"punctuation.definition.variable.mips\",\"variable.other.register.usable.by-number.mips\"],regex:\"(\\\\$)(0|[2-9]|1[0-9]|2[0-5]|2[89]|3[0-1])\\\\b\"},{token:[\"punctuation.definition.variable.mips\",\"variable.other.register.usable.by-name.mips\"],regex:\"(\\\\$)(zero|v[01]|a[0-3]|t[0-9]|s[0-7]|gp|sp|fp|ra)\\\\b\"},{token:[\"punctuation.definition.variable.mips\",\"variable.other.register.reserved.mips\"],regex:\"(\\\\$)(at|k[01]|1|2[67])\\\\b\"},{token:[\"punctuation.definition.variable.mips\",\"variable.other.register.usable.floating-point.mips\",\"variable.other.register.usable.floating-point.mips\"],regex:\"(\\\\$)(f)([0-9]|1[0-9]|2[0-9]|3[0-1])\\\\b\"},{token:\"constant.numeric.float.mips\",regex:\"\\\\b\\\\d+\\\\.\\\\d+\\\\b\"},{token:\"constant.numeric.integer.mips\",regex:\"\\\\b(?:\\\\d+|0(?:x|X)[a-fA-F0-9]+)\\\\b\"},{token:\"punctuation.definition.string.begin.mips\",regex:'\"',push:[{token:\"punctuation.definition.string.end.mips\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.mips\",regex:'\\\\\\\\[rnt\\\\\\\\\"]'},{defaultToken:\"string.quoted.double.mips\"}]},{token:\"punctuation.definition.comment.mips\",regex:\"#\",push:[{token:\"comment.line.number-sign.mips\",regex:\"$\",next:\"pop\"},{defaultToken:\"comment.line.number-sign.mips\"}]}]},this.normalizeRules()};s.metaData={fileTypes:[\"s\",\"mips\",\"spim\",\"asm\"],keyEquivalent:\"^~M\",name:\"MIPS Assembler\",scopeName:\"source.mips\"},r.inherits(s,i),t.MIPSAssemblerHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/)#(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/mips_assembler\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/mips_assembler_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./mips_assembler_highlight_rules\").MIPSAssemblerHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.$id=\"ace/mode/mips_assembler\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-mipsassembler.js",
    "content": "ace.define(\"ace/mode/mipsassembler_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"string.start\",regex:'\"',next:\"qstring\"}],qstring:[{token:\"escape\",regex:/\\\\./},{token:\"string.end\",regex:'\"',next:\"start\"}]},this.normalizeRules()};s.metaData=r.inherits(s,i),t.mipsassemblerHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/)#(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/mipsassembler\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/mipsassembler_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./mipsassembler_highlight_rules\").HighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.$id=\"ace/mode/mipsassembler\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-mushcode.js",
    "content": "ace.define(\"ace/mode/mushcode_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"@if|@ifelse|@switch|@halt|@dolist|@create|@scent|@sound|@touch|@ataste|@osound|@ahear|@aahear|@amhear|@otouch|@otaste|@drop|@odrop|@adrop|@dropfail|@odropfail|@smell|@oemit|@emit|@pemit|@parent|@clone|@taste|whisper|page|say|pose|semipose|teach|touch|taste|smell|listen|look|move|go|home|follow|unfollow|desert|dismiss|@tel\",t=\"=#0\",n=\"default|edefault|eval|get_eval|get|grep|grepi|hasattr|hasattrp|hasattrval|hasattrpval|lattr|nattr|poss|udefault|ufun|u|v|uldefault|xget|zfun|band|bnand|bnot|bor|bxor|shl|shr|and|cand|cor|eq|gt|gte|lt|lte|nand|neq|nor|not|or|t|xor|con|entrances|exit|followers|home|lcon|lexits|loc|locate|lparent|lsearch|next|num|owner|parent|pmatch|rloc|rnum|room|where|zone|worn|held|carried|acos|asin|atan|ceil|cos|e|exp|fdiv|fmod|floor|log|ln|pi|power|round|sin|sqrt|tan|aposs|andflags|conn|commandssent|controls|doing|elock|findable|flags|fullname|hasflag|haspower|hastype|hidden|idle|isbaker|lock|lstats|money|who|name|nearby|obj|objflags|photo|poll|powers|pendingtext|receivedtext|restarts|restarttime|subj|shortestpath|tmoney|type|visible|cat|element|elements|extract|filter|filterbool|first|foreach|fold|grab|graball|index|insert|itemize|items|iter|last|ldelete|map|match|matchall|member|mix|munge|pick|remove|replace|rest|revwords|setdiff|setinter|setunion|shuffle|sort|sortby|splice|step|wordpos|words|add|lmath|max|mean|median|min|mul|percent|sign|stddev|sub|val|bound|abs|inc|dec|dist2d|dist3d|div|floordiv|mod|modulo|remainder|vadd|vdim|vdot|vmag|vmax|vmin|vmul|vsub|vunit|regedit|regeditall|regeditalli|regediti|regmatch|regmatchi|regrab|regraball|regraballi|regrabi|regrep|regrepi|after|alphamin|alphamax|art|before|brackets|capstr|case|caseall|center|containsfansi|comp|decompose|decrypt|delete|edit|encrypt|escape|if|ifelse|lcstr|left|lit|ljust|merge|mid|ostrlen|pos|repeat|reverse|right|rjust|scramble|secure|space|spellnum|squish|strcat|strmatch|strinsert|stripansi|stripfansi|strlen|switch|switchall|table|tr|trim|ucstr|unsafe|wrap|ctitle|cwho|channels|clock|cflags|ilev|itext|inum|convsecs|convutcsecs|convtime|ctime|etimefmt|isdaylight|mtime|secs|msecs|starttime|time|timefmt|timestring|utctime|atrlock|clone|create|cook|dig|emit|lemit|link|oemit|open|pemit|remit|set|tel|wipe|zemit|fbcreate|fbdestroy|fbwrite|fbclear|fbcopy|fbcopyto|fbclip|fbdump|fbflush|fbhset|fblist|fbstats|qentries|qentry|play|ansi|break|c|asc|die|isdbref|isint|isnum|isletters|linecoords|localize|lnum|nameshort|null|objeval|r|rand|s|setq|setr|soundex|soundslike|valid|vchart|vchart2|vlabel|@@|bakerdays|bodybuild|box|capall|catalog|children|ctrailer|darttime|debt|detailbar|exploredroom|fansitoansi|fansitoxansi|fullbar|halfbar|isdarted|isnewbie|isword|lambda|lobjects|lplayers|lthings|lvexits|lvobjects|lvplayers|lvthings|newswrap|numsuffix|playerson|playersthisweek|randomad|randword|realrandword|replacechr|second|splitamount|strlenall|text|third|tofansi|totalac|unique|getaddressroom|listpropertycomm|listpropertyres|lotowner|lotrating|lotratingcount|lotvalue|boughtproduct|companyabb|companyicon|companylist|companyname|companyowners|companyvalue|employees|invested|productlist|productname|productowners|productrating|productratingcount|productsoldat|producttype|ratedproduct|soldproduct|topproducts|totalspentonproduct|totalstock|transfermoney|uniquebuyercount|uniqueproductsbought|validcompany|deletepicture|fbsave|getpicturesecurity|haspicture|listpictures|picturesize|replacecolor|rgbtocolor|savepicture|setpicturesecurity|showpicture|piechart|piechartlabel|createmaze|drawmaze|drawwireframe\",r=this.createKeywordMapper({\"invalid.deprecated\":\"debugger\",\"support.function\":n,\"constant.language\":t,keyword:e},\"identifier\"),i=\"(?:r|u|ur|R|U|UR|Ur|uR)?\",s=\"(?:(?:[1-9]\\\\d*)|(?:0))\",o=\"(?:0[oO]?[0-7]+)\",u=\"(?:0[xX][\\\\dA-Fa-f]+)\",a=\"(?:0[bB][01]+)\",f=\"(?:\"+s+\"|\"+o+\"|\"+u+\"|\"+a+\")\",l=\"(?:[eE][+-]?\\\\d+)\",c=\"(?:\\\\.\\\\d+)\",h=\"(?:\\\\d+)\",p=\"(?:(?:\"+h+\"?\"+c+\")|(?:\"+h+\"\\\\.))\",d=\"(?:(?:\"+p+\"|\"+h+\")\"+l+\")\",v=\"(?:\"+d+\"|\"+p+\")\";this.$rules={start:[{token:\"variable\",regex:\"%[0-9]{1}\"},{token:\"variable\",regex:\"%q[0-9A-Za-z]{1}\"},{token:\"variable\",regex:\"%[a-zA-Z]{1}\"},{token:\"variable.language\",regex:\"%[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:\"(?:\"+v+\"|\\\\d+)[jJ]\\\\b\"},{token:\"constant.numeric\",regex:v},{token:\"constant.numeric\",regex:f+\"[lL]\\\\b\"},{token:\"constant.numeric\",regex:f+\"\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|#|%|<<|>>|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text\",regex:\"\\\\s+\"}]}};r.inherits(s,i),t.MushCodeRules=s}),ace.define(\"ace/mode/folding/pythonic\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e){this.foldingStartMarker=new RegExp(\"([\\\\[{])(?:\\\\s*)$|(\"+e+\")(?:\\\\s*)(?:#.*)?$\")};r.inherits(s,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i)return i[1]?this.openingBracketBlock(e,i[1],n,i.index):i[2]?this.indentationBlock(e,n,i.index+i[2].length):this.indentationBlock(e,n)}}.call(s.prototype)}),ace.define(\"ace/mode/mushcode\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/mushcode_highlight_rules\",\"ace/mode/folding/pythonic\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./mushcode_highlight_rules\").MushCodeRules,o=e(\"./folding/pythonic\").FoldMode,u=e(\"../range\").Range,a=function(){this.HighlightRules=s,this.foldingRules=new o(\"\\\\:\"),this.$behaviour=this.$defaultBehaviour};r.inherits(a,i),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[:]\\s*$/);o&&(r+=n)}return r};var e={pass:1,\"return\":1,raise:1,\"break\":1,\"continue\":1};this.checkOutdent=function(t,n,r){if(r!==\"\\r\\n\"&&r!==\"\\r\"&&r!==\"\\n\")return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do var s=i.pop();while(s&&(s.type==\"comment\"||s.type==\"text\"&&s.value.match(/^\\s+$/)));return s?s.type==\"keyword\"&&e[s.value]:!1},this.autoOutdent=function(e,t,n){n+=1;var r=this.$getIndent(t.getLine(n)),i=t.getTabString();r.slice(-i.length)==i&&t.remove(new u(n,r.length-i.length,n,r.length))},this.$id=\"ace/mode/mushcode\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict/mode-mysql.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/mysql_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){function i(e){var t=e.start,n=e.escape;return{token:\"string.start\",regex:t,next:[{token:\"constant.language.escape\",regex:n},{token:\"string.end\",next:\"start\",regex:t},{defaultToken:\"string\"}]}}var e=\"alter|and|as|asc|between|count|create|delete|desc|distinct|drop|from|having|in|insert|into|is|join|like|not|on|or|order|select|set|table|union|update|values|where|accessible|action|add|after|algorithm|all|analyze|asensitive|at|authors|auto_increment|autocommit|avg|avg_row_length|before|binary|binlog|both|btree|cache|call|cascade|cascaded|case|catalog_name|chain|change|changed|character|check|checkpoint|checksum|class_origin|client_statistics|close|coalesce|code|collate|collation|collations|column|columns|comment|commit|committed|completion|concurrent|condition|connection|consistent|constraint|contains|continue|contributors|convert|cross|current_date|current_time|current_timestamp|current_user|cursor|data|database|databases|day_hour|day_microsecond|day_minute|day_second|deallocate|dec|declare|default|delay_key_write|delayed|delimiter|des_key_file|describe|deterministic|dev_pop|dev_samp|deviance|directory|disable|discard|distinctrow|div|dual|dumpfile|each|elseif|enable|enclosed|end|ends|engine|engines|enum|errors|escape|escaped|even|event|events|every|execute|exists|exit|explain|extended|fast|fetch|field|fields|first|flush|for|force|foreign|found_rows|full|fulltext|function|general|global|grant|grants|group|groupby_concat|handler|hash|help|high_priority|hosts|hour_microsecond|hour_minute|hour_second|if|ignore|ignore_server_ids|import|index|index_statistics|infile|inner|innodb|inout|insensitive|insert_method|install|interval|invoker|isolation|iterate|key|keys|kill|language|last|leading|leave|left|level|limit|linear|lines|list|load|local|localtime|localtimestamp|lock|logs|low_priority|master|master_heartbeat_period|master_ssl_verify_server_cert|masters|match|max|max_rows|maxvalue|message_text|middleint|migrate|min|min_rows|minute_microsecond|minute_second|mod|mode|modifies|modify|mutex|mysql_errno|natural|next|no|no_write_to_binlog|offline|offset|one|online|open|optimize|option|optionally|out|outer|outfile|pack_keys|parser|partition|partitions|password|phase|plugin|plugins|prepare|preserve|prev|primary|privileges|procedure|processlist|profile|profiles|purge|query|quick|range|read|read_write|reads|real|rebuild|recover|references|regexp|relaylog|release|remove|rename|reorganize|repair|repeatable|replace|require|resignal|restrict|resume|return|returns|revoke|right|rlike|rollback|rollup|row|row_format|rtree|savepoint|schedule|schema|schema_name|schemas|second_microsecond|security|sensitive|separator|serializable|server|session|share|show|signal|slave|slow|smallint|snapshot|soname|spatial|specific|sql|sql_big_result|sql_buffer_result|sql_cache|sql_calc_found_rows|sql_no_cache|sql_small_result|sqlexception|sqlstate|sqlwarning|ssl|start|starting|starts|status|std|stddev|stddev_pop|stddev_samp|storage|straight_join|subclass_origin|sum|suspend|table_name|table_statistics|tables|tablespace|temporary|terminated|to|trailing|transaction|trigger|triggers|truncate|uncommitted|undo|uninstall|unique|unlock|upgrade|usage|use|use_frm|user|user_resources|user_statistics|using|utc_date|utc_time|utc_timestamp|value|variables|varying|view|views|warnings|when|while|with|work|write|xa|xor|year_month|zerofill|begin|do|then|else|loop|repeat\",t=\"by|bool|boolean|bit|blob|decimal|double|enum|float|long|longblob|longtext|medium|mediumblob|mediumint|mediumtext|time|timestamp|tinyblob|tinyint|tinytext|text|bigint|int|int1|int2|int3|int4|int8|integer|float|float4|float8|double|char|varbinary|varchar|varcharacter|precision|date|datetime|year|unsigned|signed|numeric|ucase|lcase|mid|len|round|rank|now|format|coalesce|ifnull|isnull|nvl\",n=\"charset|clear|connect|edit|ego|exit|go|help|nopager|notee|nowarning|pager|print|prompt|quit|rehash|source|status|system|tee\",r=this.createKeywordMapper({\"support.function\":t,keyword:e,constant:\"false|true|null|unknown|date|time|timestamp|ODBCdotTable|zerolessFloat\",\"variable.language\":n},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\"(?:-- |#).*$\"},i({start:'\"',escape:/\\\\[0'\"bnrtZ\\\\%_]?/}),i({start:\"'\",escape:/\\\\[0'\"bnrtZ\\\\%_]?/}),s.getStartRule(\"doc-start\"),{token:\"comment\",regex:/\\/\\*/,next:\"comment\"},{token:\"constant.numeric\",regex:/0[xX][0-9a-fA-F]+|[xX]'[0-9a-fA-F]+'|0[bB][01]+|[bB]'[01]+'/},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"constant.class\",regex:\"@@?[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"constant.buildin\",regex:\"`[^`]*`\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}]},this.embedRules(s,\"doc-\",[s.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(u,o),t.MysqlHighlightRules=u}),ace.define(\"ace/mode/mysql\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/mysql_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../mode/text\").Mode,s=e(\"./mysql_highlight_rules\").MysqlHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart=[\"--\",\"#\"],this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/mysql\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict/mode-nix.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.cFunctions=\"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\",u=function(){var e=\"break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using\",t=\"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t\",n=\"const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\",r=\"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eqconst_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\",s=\"NULL|true|false|TRUE|FALSE|nullptr\",u=this.$keywords=this.createKeywordMapper({\"keyword.control\":e,\"storage.type\":t,\"storage.modifier\":n,\"keyword.operator\":r,\"variable.language\":\"this\",\"constant.language\":s},\"identifier\"),a=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\",f=/\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source;this.$rules={start:[{token:\"comment\",regex:\"//$\",next:\"start\"},{token:\"comment\",regex:\"//\",next:\"singleLineComment\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:\"'(?:\"+f+\"|.)?'\"},{token:\"string.start\",regex:'\"',stateName:\"qqstring\",next:[{token:\"string\",regex:/\\\\\\s*$/,next:\"qqstring\"},{token:\"constant.language.escape\",regex:f},{token:\"constant.language.escape\",regex:/%[^'\"\\\\]/},{token:\"string.end\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'R\"\\\\(',stateName:\"rawString\",next:[{token:\"string.end\",regex:'\\\\)\"',next:\"start\"},{defaultToken:\"string\"}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"keyword\",regex:\"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",next:\"directive\"},{token:\"keyword\",regex:\"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"},{token:\"support.function.C99.c\",regex:o},{token:u,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\"},{token:\"keyword.operator\",regex:/--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],singleLineComment:[{token:\"comment\",regex:/\\\\$/,next:\"singleLineComment\"},{token:\"comment\",regex:/$/,next:\"start\"},{defaultToken:\"comment\"}],directive:[{token:\"constant.other.multiline\",regex:/\\\\/},{token:\"constant.other.multiline\",regex:/.*\\\\/},{token:\"constant.other\",regex:\"\\\\s*<.+?>\",next:\"start\"},{token:\"constant.other\",regex:'\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',next:\"start\"},{token:\"constant.other\",regex:\"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",next:\"start\"},{token:\"constant.other\",regex:/[^\\\\\\/]+/,next:\"start\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/c_cpp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c_cpp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./c_cpp_highlight_rules\").c_cppHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/c_cpp\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/nix_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"true|false\",t=\"with|import|if|else|then|inherit\",n=\"let|in|rec\",r=this.createKeywordMapper({\"constant.language.nix\":e,\"keyword.control.nix\":t,\"keyword.declaration.nix\":n},\"identifier\");this.$rules={start:[{token:\"comment\",regex:/#.*$/},{token:\"comment\",regex:/\\/\\*/,next:\"comment\"},{token:\"constant\",regex:\"<[^>]+>\"},{regex:\"(==|!=|<=?|>=?)\",token:[\"keyword.operator.comparison.nix\"]},{regex:\"((?:[+*/%-]|\\\\~)=)\",token:[\"keyword.operator.assignment.arithmetic.nix\"]},{regex:\"=\",token:\"keyword.operator.assignment.nix\"},{token:\"string\",regex:\"''\",next:\"qqdoc\"},{token:\"string\",regex:\"'\",next:\"qstring\"},{token:\"string\",regex:'\"',push:\"qqstring\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{regex:\"}\",token:function(e,t,n){return n[1]&&n[1].charAt(0)==\"q\"?\"constant.language.escape\":\"text\"},next:\"pop\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],qqdoc:[{token:\"constant.language.escape\",regex:/\\$\\{/,push:\"start\"},{token:\"string\",regex:\"''\",next:\"pop\"},{defaultToken:\"string\"}],qqstring:[{token:\"constant.language.escape\",regex:/\\$\\{/,push:\"start\"},{token:\"string\",regex:'\"',next:\"pop\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:/\\$\\{/,push:\"start\"},{token:\"string\",regex:\"'\",next:\"pop\"},{defaultToken:\"string\"}]},this.normalizeRules()};r.inherits(s,i),t.NixHighlightRules=s}),ace.define(\"ace/mode/nix\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/c_cpp\",\"ace/mode/nix_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./c_cpp\").Mode,s=e(\"./nix_highlight_rules\").NixHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){i.call(this),this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"#\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/nix\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-nsis.js",
    "content": "ace.define(\"ace/mode/nsis_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"keyword.compiler.nsis\",regex:/^\\s*!(?:include|addincludedir|addplugindir|appendfile|cd|delfile|echo|error|execute|packhdr|finalize|getdllversion|system|tempfile|warning|verbose|define|undef|insertmacro|macro|macroend|makensis|searchparse|searchreplace)\\b/,caseInsensitive:!0},{token:\"keyword.command.nsis\",regex:/^\\s*(?:Abort|AddBrandingImage|AddSize|AllowRootDirInstall|AllowSkipFiles|AutoCloseWindow|BGFont|BGGradient|BrandingText|BringToFront|Call|CallInstDLL|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|CreateDirectory|CreateFont|CreateShortCut|Delete|DeleteINISec|DeleteINIStr|DeleteRegKey|DeleteRegValue|DetailPrint|DetailsButtonText|DirText|DirVar|DirVerify|EnableWindow|EnumRegKey|EnumRegValue|Exch|Exec|ExecShell|ExecWait|ExpandEnvStrings|File|FileBufSize|FileClose|FileErrorText|FileOpen|FileRead|FileReadByte|FileReadUTF16LE|FileReadWord|FileWriteUTF16LE|FileSeek|FileWrite|FileWriteByte|FileWriteWord|FindClose|FindFirst|FindNext|FindWindow|FlushINI|GetCurInstType|GetCurrentAddress|GetDlgItem|GetDLLVersion|GetDLLVersionLocal|GetErrorLevel|GetFileTime|GetFileTimeLocal|GetFullPathName|GetFunctionAddress|GetInstDirError|GetLabelAddress|GetTempFileName|Goto|HideWindow|Icon|IfAbort|IfErrors|IfFileExists|IfRebootFlag|IfSilent|InitPluginsDir|InstallButtonText|InstallColors|InstallDir|InstallDirRegKey|InstProgressFlags|InstType|InstTypeGetText|InstTypeSetText|IntCmp|IntCmpU|IntFmt|IntOp|IsWindow|LangString|LicenseBkColor|LicenseData|LicenseForceSelection|LicenseLangString|LicenseText|LoadLanguageFile|LockWindow|LogSet|LogText|ManifestDPIAware|ManifestSupportedOS|MessageBox|MiscButtonText|Name|Nop|OutFile|Page|PageCallbacks|Pop|Push|Quit|ReadEnvStr|ReadINIStr|ReadRegDWORD|ReadRegStr|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|SectionGetFlags|SectionGetInstTypes|SectionGetSize|SectionGetText|SectionIn|SectionSetFlags|SectionSetInstTypes|SectionSetSize|SectionSetText|SendMessage|SetAutoClose|SetBrandingImage|SetCompress|SetCompressor|SetCompressorDictSize|SetCtlColors|SetCurInstType|SetDatablockOptimize|SetDateSave|SetDetailsPrint|SetDetailsView|SetErrorLevel|SetErrors|SetFileAttributes|SetFont|SetOutPath|SetOverwrite|SetRebootFlag|SetRegView|SetShellVarContext|SetSilent|ShowInstDetails|ShowUninstDetails|ShowWindow|SilentInstall|SilentUnInstall|Sleep|SpaceTexts|StrCmp|StrCmpS|StrCpy|StrLen|SubCaption|Unicode|UninstallButtonText|UninstallCaption|UninstallIcon|UninstallSubCaption|UninstallText|UninstPage|UnRegDLL|Var|VIAddVersionKey|VIFileVersion|VIProductVersion|WindowIcon|WriteINIStr|WriteRegBin|WriteRegDWORD|WriteRegExpandStr|WriteRegStr|WriteUninstaller|XPStyle)\\b/,caseInsensitive:!0},{token:\"keyword.control.nsis\",regex:/^\\s*!(?:ifdef|ifndef|if|ifmacrodef|ifmacrondef|else|endif)\\b/,caseInsensitive:!0},{token:\"keyword.plugin.nsis\",regex:/^\\s*\\w+::\\w+/,caseInsensitive:!0},{token:\"keyword.operator.comparison.nsis\",regex:/[!<>]?=|<>|<|>/},{token:\"support.function.nsis\",regex:/(?:\\b|^\\s*)(?:Function|FunctionEnd|Section|SectionEnd|SectionGroup|SectionGroupEnd|PageEx|PageExEnd)\\b/,caseInsensitive:!0},{token:\"support.library.nsis\",regex:/\\${[\\w\\.:-]+}/},{token:\"constant.nsis\",regex:/\\b(?:ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HIDDEN|HKCC|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|IDD_DIR|IDD_INST|IDD_INSTFILES|IDD_LICENSE|IDD_SELCOM|IDD_UNINST|IDD_VERIFY|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|MB_YESNOCANCEL|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SW_HIDE|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWNORMAL|SYSTEM|TEMPORARY)\\b/,caseInsensitive:!0},{token:\"constant.library.nsis\",regex:/\\${(?:AtLeastServicePack|AtLeastWin7|AtLeastWin8|AtLeastWin10|AtLeastWin95|AtLeastWin98|AtLeastWin2000|AtLeastWin2003|AtLeastWin2008|AtLeastWin2008R2|AtLeastWinME|AtLeastWinNT4|AtLeastWinVista|AtLeastWinXP|AtMostServicePack|AtMostWin7|AtMostWin8|AtMostWin10|AtMostWin95|AtMostWin98|AtMostWin2000|AtMostWin2003|AtMostWin2008|AtMostWin2008R2|AtMostWinME|AtMostWinNT4|AtMostWinVista|AtMostWinXP|IsNT|IsServer|IsServicePack|IsWin7|IsWin8|IsWin10|IsWin95|IsWin98|IsWin2000|IsWin2003|IsWin2008|IsWin2008R2|IsWinME|IsWinNT4|IsWinVista|IsWinXP)}/},{token:\"constant.language.boolean.true.nsis\",regex:/\\b(?:true|on)\\b/},{token:\"constant.language.boolean.false.nsis\",regex:/\\b(?:false|off)\\b/},{token:\"constant.language.option.nsis\",regex:/(?:\\b|^\\s*)(?:(?:un\\.)?components|(?:un\\.)?custom|(?:un\\.)?directory|(?:un\\.)?instfiles|(?:un\\.)?license|uninstConfirm|admin|all|auto|both|bottom|bzip2|current|force|hide|highest|ifdiff|ifnewer|lastused|leave|left|listonly|lzma|nevershow|none|normal|notset|right|show|silent|silentlog|textonly|top|try|user|Win10|Win7|Win8|WinVista|zlib)\\b/,caseInsensitive:!0},{token:\"constant.language.slash-option.nsis\",regex:/\\b\\/(?:a|BRANDING|CENTER|COMPONENTSONLYONCUSTOM|CUSTOMSTRING=|date|e|ENABLECANCEL|FILESONLY|file|FINAL|GLOBAL|gray|ifempty|ifndef|ignorecase|IMGID=|ITALIC|LANG=|NOCUSTOM|noerrors|NONFATAL|nonfatal|oname=|o|REBOOTOK|redef|RESIZETOFIT|r|SHORT|SILENT|SOLID|STRIKE|TRIM|UNDERLINE|utcdate|windows|x)\\b/,caseInsensitive:!0},{token:\"constant.numeric.nsis\",regex:/\\b(?:0(?:x|X)[0-9a-fA-F]+|[0-9]+(?:\\.[0-9]+)?)\\b/},{token:\"entity.name.function.nsis\",regex:/\\$\\([\\w\\.:-]+\\)/},{token:\"storage.type.function.nsis\",regex:/\\$[\\w]+/},{token:\"punctuation.definition.string.begin.nsis\",regex:/`/,push:[{token:\"punctuation.definition.string.end.nsis\",regex:/`/,next:\"pop\"},{token:\"constant.character.escape.nsis\",regex:/\\$\\\\./},{defaultToken:\"string.quoted.back.nsis\"}]},{token:\"punctuation.definition.string.begin.nsis\",regex:/\"/,push:[{token:\"punctuation.definition.string.end.nsis\",regex:/\"/,next:\"pop\"},{token:\"constant.character.escape.nsis\",regex:/\\$\\\\./},{defaultToken:\"string.quoted.double.nsis\"}]},{token:\"punctuation.definition.string.begin.nsis\",regex:/'/,push:[{token:\"punctuation.definition.string.end.nsis\",regex:/'/,next:\"pop\"},{token:\"constant.character.escape.nsis\",regex:/\\$\\\\./},{defaultToken:\"string.quoted.single.nsis\"}]},{token:[\"punctuation.definition.comment.nsis\",\"comment.line.nsis\"],regex:/(;|#)(.*$)/},{token:\"punctuation.definition.comment.nsis\",regex:/\\/\\*/,push:[{token:\"punctuation.definition.comment.nsis\",regex:/\\*\\//,next:\"pop\"},{defaultToken:\"comment.block.nsis\"}]},{token:\"text\",regex:/(?:!include|!insertmacro)\\b/}]},this.normalizeRules()};s.metaData={comment:\"\\n\ttodo: - highlight functions\\n\t\",fileTypes:[\"nsi\",\"nsh\"],name:\"NSIS\",scopeName:\"source.nsis\"},r.inherits(s,i),t.NSISHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/nsis\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/nsis_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./nsis_highlight_rules\").NSISHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=[\";\",\"#\"],this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/nsis\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-objectivec.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.cFunctions=\"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\",u=function(){var e=\"break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using\",t=\"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t\",n=\"const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\",r=\"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eqconst_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\",s=\"NULL|true|false|TRUE|FALSE|nullptr\",u=this.$keywords=this.createKeywordMapper({\"keyword.control\":e,\"storage.type\":t,\"storage.modifier\":n,\"keyword.operator\":r,\"variable.language\":\"this\",\"constant.language\":s},\"identifier\"),a=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\",f=/\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source;this.$rules={start:[{token:\"comment\",regex:\"//$\",next:\"start\"},{token:\"comment\",regex:\"//\",next:\"singleLineComment\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:\"'(?:\"+f+\"|.)?'\"},{token:\"string.start\",regex:'\"',stateName:\"qqstring\",next:[{token:\"string\",regex:/\\\\\\s*$/,next:\"qqstring\"},{token:\"constant.language.escape\",regex:f},{token:\"constant.language.escape\",regex:/%[^'\"\\\\]/},{token:\"string.end\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'R\"\\\\(',stateName:\"rawString\",next:[{token:\"string.end\",regex:'\\\\)\"',next:\"start\"},{defaultToken:\"string\"}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"keyword\",regex:\"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",next:\"directive\"},{token:\"keyword\",regex:\"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"},{token:\"support.function.C99.c\",regex:o},{token:u,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\"},{token:\"keyword.operator\",regex:/--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],singleLineComment:[{token:\"comment\",regex:/\\\\$/,next:\"singleLineComment\"},{token:\"comment\",regex:/$/,next:\"start\"},{defaultToken:\"comment\"}],directive:[{token:\"constant.other.multiline\",regex:/\\\\/},{token:\"constant.other.multiline\",regex:/.*\\\\/},{token:\"constant.other\",regex:\"\\\\s*<.+?>\",next:\"start\"},{token:\"constant.other\",regex:'\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',next:\"start\"},{token:\"constant.other\",regex:\"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",next:\"start\"},{token:\"constant.other\",regex:/[^\\\\\\/]+/,next:\"start\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define(\"ace/mode/objectivec_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/c_cpp_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./c_cpp_highlight_rules\"),o=s.c_cppHighlightRules,u=function(){var e=\"\\\\\\\\(?:[abefnrtv'\\\"?\\\\\\\\]|[0-3]\\\\d{1,2}|[4-7]\\\\d?|222|x[a-zA-Z0-9]+)\",t=[{regex:\"\\\\b_cmd\\\\b\",token:\"variable.other.selector.objc\"},{regex:\"\\\\b(?:self|super)\\\\b\",token:\"variable.language.objc\"}],n=new o,r=n.getRules();this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:[\"storage.type.objc\",\"punctuation.definition.storage.type.objc\",\"entity.name.type.objc\",\"text\",\"entity.other.inherited-class.objc\"],regex:\"(@)(interface|protocol)(?!.+;)(\\\\s+[A-Za-z_][A-Za-z0-9_]*)(\\\\s*:\\\\s*)([A-Za-z]+)\"},{token:[\"storage.type.objc\"],regex:\"(@end)\"},{token:[\"storage.type.objc\",\"entity.name.type.objc\",\"entity.other.inherited-class.objc\"],regex:\"(@implementation)(\\\\s+[A-Za-z_][A-Za-z0-9_]*)(\\\\s*?::\\\\s*(?:[A-Za-z][A-Za-z0-9]*))?\"},{token:\"string.begin.objc\",regex:'@\"',next:\"constant_NSString\"},{token:\"storage.type.objc\",regex:\"\\\\bid\\\\s*<\",next:\"protocol_list\"},{token:\"keyword.control.macro.objc\",regex:\"\\\\bNS_DURING|NS_HANDLER|NS_ENDHANDLER\\\\b\"},{token:[\"punctuation.definition.keyword.objc\",\"keyword.control.exception.objc\"],regex:\"(@)(try|catch|finally|throw)\\\\b\"},{token:[\"punctuation.definition.keyword.objc\",\"keyword.other.objc\"],regex:\"(@)(defs|encode)\\\\b\"},{token:[\"storage.type.id.objc\",\"text\"],regex:\"(\\\\bid\\\\b)(\\\\s|\\\\n)?\"},{token:\"storage.type.objc\",regex:\"\\\\bIBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class\\\\b\"},{token:[\"punctuation.definition.storage.type.objc\",\"storage.type.objc\"],regex:\"(@)(class|protocol)\\\\b\"},{token:[\"punctuation.definition.storage.type.objc\",\"punctuation\"],regex:\"(@selector)(\\\\s*\\\\()\",next:\"selectors\"},{token:[\"punctuation.definition.storage.modifier.objc\",\"storage.modifier.objc\"],regex:\"(@)(synchronized|public|private|protected|package)\\\\b\"},{token:\"constant.language.objc\",regex:\"\\\\bYES|NO|Nil|nil\\\\b\"},{token:\"support.variable.foundation\",regex:\"\\\\bNSApp\\\\b\"},{token:[\"support.function.cocoa.leopard\"],regex:\"(?:\\\\b)(NS(?:Rect(?:ToCGRect|FromCGRect)|MakeCollectable|S(?:tringFromProtocol|ize(?:ToCGSize|FromCGSize))|Draw(?:NinePartImage|ThreePartImage)|P(?:oint(?:ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))(?:\\\\b)\"},{token:[\"support.function.cocoa\"],regex:\"(?:\\\\b)(NS(?:R(?:ound(?:DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(?:CriticalAlertPanel(?:RelativeToWindow)?|InformationalAlertPanel(?:RelativeToWindow)?|AlertPanel(?:RelativeToWindow)?)|e(?:set(?:MapTable|HashTable)|c(?:ycleZone|t(?:Clip(?:List)?|F(?:ill(?:UsingOperation|List(?:UsingOperation|With(?:Grays|Colors(?:UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(?:dPixel|l(?:MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(?:SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(?:s)?|WindowServerMemory|AlertPanel)|M(?:i(?:n(?:X|Y)|d(?:X|Y))|ouseInRect|a(?:p(?:Remove|Get|Member|Insert(?:IfAbsent|KnownAbsent)?)|ke(?:R(?:ect|ange)|Size|Point)|x(?:Range|X|Y)))|B(?:itsPer(?:SampleFromDepth|PixelFromDepth)|e(?:stDepth|ep|gin(?:CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(?:ho(?:uldRetainWithZone|w(?:sServicesMenuItem|AnimationEffect))|tringFrom(?:R(?:ect|ange)|MapTable|S(?:ize|elector)|HashTable|Class|Point)|izeFromString|e(?:t(?:ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(?:Big(?:ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(?:ToHost|LongToHost))|Short|Host(?:ShortTo(?:Big|Little)|IntTo(?:Big|Little)|DoubleTo(?:Big|Little)|FloatTo(?:Big|Little)|Long(?:To(?:Big|Little)|LongTo(?:Big|Little)))|Int|Double|Float|L(?:ittle(?:ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(?:ToHost|LongToHost))|ong(?:Long)?)))|H(?:ighlightRect|o(?:stByteOrder|meDirectory(?:ForUser)?)|eight|ash(?:Remove|Get|Insert(?:IfAbsent|KnownAbsent)?)|FSType(?:CodeFromFileType|OfFile))|N(?:umberOfColorComponents|ext(?:MapEnumeratorPair|HashEnumeratorItem))|C(?:o(?:n(?:tainsRect|vert(?:GlyphsToPackedGlyphs|Swapped(?:DoubleToHost|FloatToHost)|Host(?:DoubleToSwapped|FloatToSwapped)))|unt(?:MapTable|HashTable|Frames|Windows(?:ForContext)?)|py(?:M(?:emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(?:MapTables|HashTables))|lassFromString|reate(?:MapTable(?:WithZone)?|HashTable(?:WithZone)?|Zone|File(?:namePboardType|ContentsPboardType)))|TemporaryDirectory|I(?:s(?:ControllerMarker|EmptyRect|FreedObject)|n(?:setRect|crementExtraRefCount|te(?:r(?:sect(?:sRect|ionR(?:ect|ange))|faceStyleForKey)|gralRect)))|Zone(?:Realloc|Malloc|Name|Calloc|Fr(?:omPointer|ee))|O(?:penStepRootDirectory|ffsetRect)|D(?:i(?:sableScreenUpdates|videRect)|ottedFrameRect|e(?:c(?:imal(?:Round|Multiply|S(?:tring|ubtract)|Normalize|Co(?:py|mpa(?:ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(?:MemoryPages|Object))|raw(?:Gr(?:oove|ayBezel)|B(?:itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(?:hiteBezel|indowBackground)|LightBezel))|U(?:serName|n(?:ionR(?:ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(?:Bundle(?:Setup|Cleanup)|Setup(?:VirtualMachine)?|Needs(?:ToLoadClasses|VirtualMachine)|ClassesF(?:orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(?:oint(?:InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(?:n(?:d(?:MapTableEnumeration|HashTableEnumeration)|umerate(?:MapTable|HashTable)|ableScreenUpdates)|qual(?:R(?:ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(?:ileTypeForHFSTypeCode|ullUserName|r(?:ee(?:MapTable|HashTable)|ame(?:Rect(?:WithWidth(?:UsingOperation)?)?|Address)))|Wi(?:ndowList(?:ForContext)?|dth)|Lo(?:cationInRange|g(?:v|PageSize)?)|A(?:ccessibility(?:R(?:oleDescription(?:ForUIElement)?|aiseBadArgumentException)|Unignored(?:Children(?:ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(?:Main|Load)|vailableWindowDepths|ll(?:MapTable(?:Values|Keys)|HashTableObjects|ocate(?:MemoryPages|Collectable|Object)))))(?:\\\\b)\"},{token:[\"support.class.cocoa.leopard\"],regex:\"(?:\\\\b)(NS(?:RuleEditor|G(?:arbageCollector|radient)|MapTable|HashTable|Co(?:ndition|llectionView(?:Item)?)|T(?:oolbarItemGroup|extInputClient|r(?:eeNode|ackingArea))|InvocationOperation|Operation(?:Queue)?|D(?:ictionaryController|ockTile)|P(?:ointer(?:Functions|Array)|athC(?:o(?:ntrol(?:Delegate)?|mponentCell)|ell(?:Delegate)?)|r(?:intPanelAccessorizing|edicateEditor(?:RowTemplate)?))|ViewController|FastEnumeration|Animat(?:ionContext|ablePropertyContainer)))(?:\\\\b)\"},{token:[\"support.class.cocoa\"],regex:\"(?:\\\\b)(NS(?:R(?:u(?:nLoop|ler(?:Marker|View))|e(?:sponder|cursiveLock|lativeSpecifier)|an(?:domSpecifier|geSpecifier))|G(?:etCommand|lyph(?:Generator|Storage|Info)|raphicsContext)|XML(?:Node|D(?:ocument|TD(?:Node)?)|Parser|Element)|M(?:iddleSpecifier|ov(?:ie(?:View)?|eCommand)|utable(?:S(?:tring|et)|C(?:haracterSet|opying)|IndexSet|D(?:ictionary|ata)|URLRequest|ParagraphStyle|A(?:ttributedString|rray))|e(?:ssagePort(?:NameServer)?|nu(?:Item(?:Cell)?|View)?|t(?:hodSignature|adata(?:Item|Query(?:ResultGroup|AttributeValueTuple)?)))|a(?:ch(?:BootstrapServer|Port)|trix))|B(?:itmapImageRep|ox|u(?:ndle|tton(?:Cell)?)|ezierPath|rowser(?:Cell)?)|S(?:hadow|c(?:anner|r(?:ipt(?:SuiteRegistry|C(?:o(?:ercionHandler|mmand(?:Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(?:er|View)|een))|t(?:epper(?:Cell)?|atus(?:Bar|Item)|r(?:ing|eam))|imple(?:HorizontalTypesetter|CString)|o(?:cketPort(?:NameServer)?|und|rtDescriptor)|p(?:e(?:cifierTest|ech(?:Recognizer|Synthesizer)|ll(?:Server|Checker))|litView)|e(?:cureTextField(?:Cell)?|t(?:Command)?|archField(?:Cell)?|rializer|gmentedC(?:ontrol|ell))|lider(?:Cell)?|avePanel)|H(?:ost|TTP(?:Cookie(?:Storage)?|URLResponse)|elpManager)|N(?:ib(?:Con(?:nector|trolConnector)|OutletConnector)?|otification(?:Center|Queue)?|u(?:ll|mber(?:Formatter)?)|etService(?:Browser)?|ameSpecifier)|C(?:ha(?:ngeSpelling|racterSet)|o(?:n(?:stantString|nection|trol(?:ler)?|ditionLock)|d(?:ing|er)|unt(?:Command|edSet)|pying|lor(?:Space|P(?:ick(?:ing(?:Custom|Default)|er)|anel)|Well|List)?|m(?:p(?:oundPredicate|arisonPredicate)|boBox(?:Cell)?))|u(?:stomImageRep|rsor)|IImageRep|ell|l(?:ipView|o(?:seCommand|neCommand)|assDescription)|a(?:ched(?:ImageRep|URLResponse)|lendar(?:Date)?)|reateCommand)|T(?:hread|ypesetter|ime(?:Zone|r)|o(?:olbar(?:Item(?:Validations)?)?|kenField(?:Cell)?)|ext(?:Block|Storage|Container|Tab(?:le(?:Block)?)?|Input|View|Field(?:Cell)?|List|Attachment(?:Cell)?)?|a(?:sk|b(?:le(?:Header(?:Cell|View)|Column|View)|View(?:Item)?))|reeController)|I(?:n(?:dex(?:S(?:pecifier|et)|Path)|put(?:Manager|S(?:tream|erv(?:iceProvider|er(?:MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(?:Rep|Cell|View)?)|O(?:ut(?:putStream|lineView)|pen(?:GL(?:Context|Pixel(?:Buffer|Format)|View)|Panel)|bj(?:CTypeSerializationCallBack|ect(?:Controller)?))|D(?:i(?:st(?:antObject(?:Request)?|ributed(?:NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(?:Controller)?|e(?:serializer|cimalNumber(?:Behaviors|Handler)?|leteCommand)|at(?:e(?:Components|Picker(?:Cell)?|Formatter)?|a)|ra(?:wer|ggingInfo))|U(?:ser(?:InterfaceValidations|Defaults(?:Controller)?)|RL(?:Re(?:sponse|quest)|Handle(?:Client)?|C(?:onnection|ache|redential(?:Storage)?)|Download(?:Delegate)?|Prot(?:ocol(?:Client)?|ectionSpace)|AuthenticationChallenge(?:Sender)?)?|n(?:iqueIDSpecifier|doManager|archiver))|P(?:ipe|o(?:sitionalSpecifier|pUpButton(?:Cell)?|rt(?:Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(?:steboard|nel|ragraphStyle|geLayout)|r(?:int(?:Info|er|Operation|Panel)|o(?:cessInfo|tocolChecker|perty(?:Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(?:numerator|vent|PSImageRep|rror|x(?:ception|istsCommand|pression))|V(?:iew(?:Animation)?|al(?:idated(?:ToobarItem|UserInterfaceItem)|ue(?:Transformer)?))|Keyed(?:Unarchiver|Archiver)|Qui(?:ckDrawView|tCommand)|F(?:ile(?:Manager|Handle|Wrapper)|o(?:nt(?:Manager|Descriptor|Panel)?|rm(?:Cell|atter)))|W(?:hoseSpecifier|indow(?:Controller)?|orkspace)|L(?:o(?:c(?:k(?:ing)?|ale)|gicalTest)|evelIndicator(?:Cell)?|ayoutManager)|A(?:ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(?:ication|e(?:Script|Event(?:Manager|Descriptor)))|ffineTransform|lert|r(?:chiver|ray(?:Controller)?))))(?:\\\\b)\"},{token:[\"support.type.cocoa.leopard\"],regex:\"(?:\\\\b)(NS(?:R(?:u(?:nLoop|ler(?:Marker|View))|e(?:sponder|cursiveLock|lativeSpecifier)|an(?:domSpecifier|geSpecifier))|G(?:etCommand|lyph(?:Generator|Storage|Info)|raphicsContext)|XML(?:Node|D(?:ocument|TD(?:Node)?)|Parser|Element)|M(?:iddleSpecifier|ov(?:ie(?:View)?|eCommand)|utable(?:S(?:tring|et)|C(?:haracterSet|opying)|IndexSet|D(?:ictionary|ata)|URLRequest|ParagraphStyle|A(?:ttributedString|rray))|e(?:ssagePort(?:NameServer)?|nu(?:Item(?:Cell)?|View)?|t(?:hodSignature|adata(?:Item|Query(?:ResultGroup|AttributeValueTuple)?)))|a(?:ch(?:BootstrapServer|Port)|trix))|B(?:itmapImageRep|ox|u(?:ndle|tton(?:Cell)?)|ezierPath|rowser(?:Cell)?)|S(?:hadow|c(?:anner|r(?:ipt(?:SuiteRegistry|C(?:o(?:ercionHandler|mmand(?:Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(?:er|View)|een))|t(?:epper(?:Cell)?|atus(?:Bar|Item)|r(?:ing|eam))|imple(?:HorizontalTypesetter|CString)|o(?:cketPort(?:NameServer)?|und|rtDescriptor)|p(?:e(?:cifierTest|ech(?:Recognizer|Synthesizer)|ll(?:Server|Checker))|litView)|e(?:cureTextField(?:Cell)?|t(?:Command)?|archField(?:Cell)?|rializer|gmentedC(?:ontrol|ell))|lider(?:Cell)?|avePanel)|H(?:ost|TTP(?:Cookie(?:Storage)?|URLResponse)|elpManager)|N(?:ib(?:Con(?:nector|trolConnector)|OutletConnector)?|otification(?:Center|Queue)?|u(?:ll|mber(?:Formatter)?)|etService(?:Browser)?|ameSpecifier)|C(?:ha(?:ngeSpelling|racterSet)|o(?:n(?:stantString|nection|trol(?:ler)?|ditionLock)|d(?:ing|er)|unt(?:Command|edSet)|pying|lor(?:Space|P(?:ick(?:ing(?:Custom|Default)|er)|anel)|Well|List)?|m(?:p(?:oundPredicate|arisonPredicate)|boBox(?:Cell)?))|u(?:stomImageRep|rsor)|IImageRep|ell|l(?:ipView|o(?:seCommand|neCommand)|assDescription)|a(?:ched(?:ImageRep|URLResponse)|lendar(?:Date)?)|reateCommand)|T(?:hread|ypesetter|ime(?:Zone|r)|o(?:olbar(?:Item(?:Validations)?)?|kenField(?:Cell)?)|ext(?:Block|Storage|Container|Tab(?:le(?:Block)?)?|Input|View|Field(?:Cell)?|List|Attachment(?:Cell)?)?|a(?:sk|b(?:le(?:Header(?:Cell|View)|Column|View)|View(?:Item)?))|reeController)|I(?:n(?:dex(?:S(?:pecifier|et)|Path)|put(?:Manager|S(?:tream|erv(?:iceProvider|er(?:MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(?:Rep|Cell|View)?)|O(?:ut(?:putStream|lineView)|pen(?:GL(?:Context|Pixel(?:Buffer|Format)|View)|Panel)|bj(?:CTypeSerializationCallBack|ect(?:Controller)?))|D(?:i(?:st(?:antObject(?:Request)?|ributed(?:NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(?:Controller)?|e(?:serializer|cimalNumber(?:Behaviors|Handler)?|leteCommand)|at(?:e(?:Components|Picker(?:Cell)?|Formatter)?|a)|ra(?:wer|ggingInfo))|U(?:ser(?:InterfaceValidations|Defaults(?:Controller)?)|RL(?:Re(?:sponse|quest)|Handle(?:Client)?|C(?:onnection|ache|redential(?:Storage)?)|Download(?:Delegate)?|Prot(?:ocol(?:Client)?|ectionSpace)|AuthenticationChallenge(?:Sender)?)?|n(?:iqueIDSpecifier|doManager|archiver))|P(?:ipe|o(?:sitionalSpecifier|pUpButton(?:Cell)?|rt(?:Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(?:steboard|nel|ragraphStyle|geLayout)|r(?:int(?:Info|er|Operation|Panel)|o(?:cessInfo|tocolChecker|perty(?:Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(?:numerator|vent|PSImageRep|rror|x(?:ception|istsCommand|pression))|V(?:iew(?:Animation)?|al(?:idated(?:ToobarItem|UserInterfaceItem)|ue(?:Transformer)?))|Keyed(?:Unarchiver|Archiver)|Qui(?:ckDrawView|tCommand)|F(?:ile(?:Manager|Handle|Wrapper)|o(?:nt(?:Manager|Descriptor|Panel)?|rm(?:Cell|atter)))|W(?:hoseSpecifier|indow(?:Controller)?|orkspace)|L(?:o(?:c(?:k(?:ing)?|ale)|gicalTest)|evelIndicator(?:Cell)?|ayoutManager)|A(?:ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(?:ication|e(?:Script|Event(?:Manager|Descriptor)))|ffineTransform|lert|r(?:chiver|ray(?:Controller)?))))(?:\\\\b)\"},{token:[\"support.class.quartz\"],regex:\"(?:\\\\b)(C(?:I(?:Sampler|Co(?:ntext|lor)|Image(?:Accumulator)?|PlugIn(?:Registration)?|Vector|Kernel|Filter(?:Generator|Shape)?)|A(?:Renderer|MediaTiming(?:Function)?|BasicAnimation|ScrollLayer|Constraint(?:LayoutManager)?|T(?:iledLayer|extLayer|rans(?:ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(?:nimation(?:Group)?|ction))))(?:\\\\b)\"},{token:[\"support.type.quartz\"],regex:\"(?:\\\\b)(C(?:G(?:Float|Point|Size|Rect)|IFormat|AConstraintAttribute))(?:\\\\b)\"},{token:[\"support.type.cocoa\"],regex:\"(?:\\\\b)(NS(?:R(?:ect(?:Edge)?|ange)|G(?:lyph(?:Relation|LayoutMode)?|radientType)|M(?:odalSession|a(?:trixMode|p(?:Table|Enumerator)))|B(?:itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(?:cr(?:oll(?:er(?:Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(?:Granularity|Direction|Affinity)|wapped(?:Double|Float)|aveOperationType)|Ha(?:sh(?:Table|Enumerator)|ndler(?:2)?)|C(?:o(?:ntrol(?:Size|Tint)|mp(?:ositingOperation|arisonResult))|ell(?:State|Type|ImagePosition|Attribute))|T(?:hreadPrivate|ypesetterGlyphInfo|i(?:ckMarkPosition|tlePosition|meInterval)|o(?:ol(?:TipTag|bar(?:SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(?:TabType|Alignment)|ab(?:State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(?:ContextAuxiliary|PixelFormatAuxiliary)|D(?:ocumentChangeType|atePickerElementFlags|ra(?:werState|gOperation))|UsableScrollerParts|P(?:oint|r(?:intingPageOrder|ogressIndicator(?:Style|Th(?:ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(?:nt(?:SymbolicTraits|TraitMask|Action)|cusRingType)|W(?:indow(?:OrderingMode|Depth)|orkspace(?:IconCreationOptions|LaunchOptions)|ritingDirection)|L(?:ineBreakMode|ayout(?:Status|Direction))|A(?:nimation(?:Progress|Effect)|ppl(?:ication(?:TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle)))(?:\\\\b)\"},{token:[\"support.constant.cocoa\"],regex:\"(?:\\\\b)(NS(?:NotFound|Ordered(?:Ascending|Descending|Same)))(?:\\\\b)\"},{token:[\"support.constant.notification.cocoa.leopard\"],regex:\"(?:\\\\b)(NS(?:MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification)(?:\\\\b)\"},{token:[\"support.constant.notification.cocoa\"],regex:\"(?:\\\\b)(NS(?:Menu(?:Did(?:RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(?:ystemColorsDidChange|plitView(?:DidResizeSubviews|WillResizeSubviews))|C(?:o(?:nt(?:extHelpModeDid(?:Deactivate|Activate)|rolT(?:intDidChange|extDid(?:BeginEditing|Change|EndEditing)))|lor(?:PanelColorDidChange|ListDidChange)|mboBox(?:Selection(?:IsChanging|DidChange)|Will(?:Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(?:oolbar(?:DidRemoveItem|WillAddItem)|ext(?:Storage(?:DidProcessEditing|WillProcessEditing)|Did(?:BeginEditing|Change|EndEditing)|View(?:DidChange(?:Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(?:Selection(?:IsChanging|DidChange)|ColumnDid(?:Resize|Move)))|ImageRepRegistryDidChange|OutlineView(?:Selection(?:IsChanging|DidChange)|ColumnDid(?:Resize|Move)|Item(?:Did(?:Collapse|Expand)|Will(?:Collapse|Expand)))|Drawer(?:Did(?:Close|Open)|Will(?:Close|Open))|PopUpButton(?:CellWillPopUp|WillPopUp)|View(?:GlobalFrameDidChange|BoundsDidChange|F(?:ocusDidChange|rameDidChange))|FontSetChanged|W(?:indow(?:Did(?:Resi(?:ze|gn(?:Main|Key))|M(?:iniaturize|ove)|Become(?:Main|Key)|ChangeScreen(?:|Profile)|Deminiaturize|Update|E(?:ndSheet|xpose))|Will(?:M(?:iniaturize|ove)|BeginSheet|Close))|orkspace(?:SessionDid(?:ResignActive|BecomeActive)|Did(?:Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(?:Sleep|Unmount|PowerOff|LaunchApplication)))|A(?:ntialiasThresholdChanged|ppl(?:ication(?:Did(?:ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(?:nhide|pdate)|FinishLaunching)|Will(?:ResignActive|BecomeActive|Hide|Terminate|U(?:nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification)(?:\\\\b)\"},{token:[\"support.constant.cocoa.leopard\"],regex:\"(?:\\\\b)(NS(?:RuleEditor(?:RowType(?:Simple|Compound)|NestingMode(?:Si(?:ngle|mple)|Compound|List))|GradientDraws(?:BeforeStartingLocation|AfterEndingLocation)|M(?:inusSetExpressionType|a(?:chPortDeallocate(?:ReceiveRight|SendRight|None)|pTable(?:StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(?:oxCustom|undleExecutableArchitecture(?:X86|I386|PPC(?:64)?)|etweenPredicateOperatorType|ackgroundStyle(?:Raised|Dark|L(?:ight|owered)))|S(?:tring(?:DrawingTruncatesLastVisibleLine|EncodingConversion(?:ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(?:e(?:ech(?:SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(?:GrammarFlag|SpellingFlag))|litViewDividerStyleThi(?:n|ck))|e(?:rvice(?:RequestTimedOutError|M(?:iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(?:inimum|aximum)|Application(?:NotFoundError|LaunchFailedError))|gmentStyle(?:Round(?:Rect|ed)|SmallSquare|Capsule|Textured(?:Rounded|Square)|Automatic)))|H(?:UDWindowMask|ashTable(?:StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(?:oModeColorPanel|etServiceNoAutoRename)|C(?:hangeRedone|o(?:ntainsPredicateOperatorType|l(?:orRenderingIntent(?:RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(?:None|ContentArea|TrackableArea|EditableTextArea))|T(?:imeZoneNameStyle(?:S(?:hort(?:Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(?:Regular|SourceList)|racking(?:Mouse(?:Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(?:ssumeInside|ctive(?:In(?:KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(?:n(?:tersectSetExpressionType|dexedColorSpaceModel)|mageScale(?:None|Proportionally(?:Down|UpOrDown)|AxesIndependently))|Ope(?:nGLPFAAllowOfflineRenderers|rationQueue(?:DefaultMaxConcurrentOperationCount|Priority(?:High|Normal|Very(?:High|Low)|Low)))|D(?:iacriticInsensitiveSearch|ownloadsDirectory)|U(?:nionSetExpressionType|TF(?:16(?:BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(?:BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(?:ointerFunctions(?:Ma(?:chVirtualMemory|llocMemory)|Str(?:ongMemory|uctPersonality)|C(?:StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(?:paque(?:Memory|Personality)|bjectP(?:ointerPersonality|ersonality)))|at(?:hStyle(?:Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(?:Scaling|Copies|Orientation|P(?:a(?:perSize|ge(?:Range|SetupAccessory))|review)))|Executable(?:RuntimeMismatchError|NotLoadableError|ErrorM(?:inimum|aximum)|L(?:inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(?:Initial|Prior)|F(?:i(?:ndPanelSubstringMatchType(?:StartsWith|Contains|EndsWith|FullWord)|leRead(?:TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(?:ndow(?:BackingLocation(?:MainMemory|Default|VideoMemory)|Sharing(?:Read(?:Only|Write)|None)|CollectionBehavior(?:MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType))(?:\\\\b)\"},{token:[\"support.constant.cocoa\"],regex:\"(?:\\\\b)(NS(?:R(?:GB(?:ModeColorPanel|ColorSpaceModel)|ight(?:Mouse(?:D(?:own(?:Mask)?|ragged(?:Mask)?)|Up(?:Mask)?)|T(?:ext(?:Movement|Alignment)|ab(?:sBezelBorder|StopType))|ArrowFunctionKey)|ound(?:RectBezelStyle|Bankers|ed(?:BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(?:CapStyle|JoinStyle))|un(?:StoppedResponse|ContinuesResponse|AbortedResponse)|e(?:s(?:izableWindowMask|et(?:CursorRectsRunLoopOrdering|FunctionKey))|ce(?:ssedBezelStyle|iver(?:sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(?:evancyLevelIndicatorStyle|ative(?:Before|After))|gular(?:SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(?:n(?:domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(?:ModeMatrix|Button)))|G(?:IFFileType|lyph(?:Below|Inscribe(?:B(?:elow|ase)|Over(?:strike|Below)|Above)|Layout(?:WithPrevious|A(?:tAPoint|gainstAPoint))|A(?:ttribute(?:BidiLevel|Soft|Inscribe|Elastic)|bove))|r(?:ooveBorder|eaterThan(?:Comparison|OrEqualTo(?:Comparison|PredicateOperatorType)|PredicateOperatorType)|a(?:y(?:ModeColorPanel|ColorSpaceModel)|dient(?:None|Con(?:cave(?:Strong|Weak)|vex(?:Strong|Weak)))|phiteControlTint)))|XML(?:N(?:o(?:tationDeclarationKind|de(?:CompactEmptyElement|IsCDATA|OptionsNone|Use(?:SingleQuotes|DoubleQuotes)|Pre(?:serve(?:NamespaceOrder|C(?:haracterReferences|DATA)|DTD|Prefixes|E(?:ntities|mptyElements)|Quotes|Whitespace|A(?:ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(?:ocument(?:X(?:MLKind|HTMLKind|Include)|HTMLKind|T(?:idy(?:XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(?:arser(?:GTRequiredError|XMLDeclNot(?:StartedError|FinishedError)|Mi(?:splaced(?:XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(?:StartedError|FinishedError))|S(?:t(?:andaloneValueError|ringNot(?:StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(?:MTOKENRequiredError|o(?:t(?:ationNot(?:StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(?:haracterRef(?:In(?:DTDError|PrologError|EpilogError)|AtEOFError)|o(?:nditionalSectionNot(?:StartedError|FinishedError)|mment(?:NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(?:ternalError|valid(?:HexCharacterRefError|C(?:haracter(?:RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(?:NameError|Error)))|OutOfMemoryError|D(?:ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(?:RI(?:RequiredError|FragmentError)|n(?:declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(?:CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(?:MissingSemiError|NoNameError|In(?:Internal(?:SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(?:ocessingInstructionNot(?:StartedError|FinishedError)|ematureDocumentEndError))|E(?:n(?:codingNotSupportedError|tity(?:Ref(?:In(?:DTDError|PrologError|EpilogError)|erence(?:MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(?:StartedError|FinishedError)|Is(?:ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(?:StartedError|FinishedError)|xt(?:ernalS(?:tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(?:iteralNot(?:StartedError|FinishedError)|T(?:RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(?:RedefinedError|HasNoValueError|Not(?:StartedError|FinishedError)|ListNot(?:StartedError|FinishedError)))|rocessingInstructionKind)|E(?:ntity(?:GeneralKind|DeclarationKind|UnparsedKind|P(?:ar(?:sedKind|ameterKind)|redefined))|lement(?:Declaration(?:MixedKind|UndefinedKind|E(?:lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(?:N(?:MToken(?:sKind|Kind)|otationKind)|CDATAKind|ID(?:Ref(?:sKind|Kind)|Kind)|DeclarationKind|En(?:tit(?:yKind|iesKind)|umerationKind)|Kind))|M(?:i(?:n(?:XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(?:nthCalendarUnit|deSwitchFunctionKey|use(?:Moved(?:Mask)?|E(?:ntered(?:Mask)?|ventSubtype|xited(?:Mask)?))|veToBezierPathElement|mentary(?:ChangeButton|Push(?:Button|InButton)|Light(?:Button)?))|enuFunctionKey|a(?:c(?:intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(?:XEdge|YEdge))|ACHOperatingSystem)|B(?:MPFileType|o(?:ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(?:Se(?:condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(?:zelBorder|velLineJoinStyle|low(?:Bottom|Top)|gin(?:sWith(?:Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(?:spaceCharacter|tabTextMovement|ingStore(?:Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(?:owser(?:NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(?:h(?:ift(?:JISStringEncoding|KeyMask)|ow(?:ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(?:s(?:ReqFunctionKey|tem(?:D(?:omainMask|efined(?:Mask)?)|FunctionKey))|mbolStringEncoding)|c(?:a(?:nnedOption|le(?:None|ToFit|Proportionally))|r(?:oll(?:er(?:NoPart|Increment(?:Page|Line|Arrow)|Decrement(?:Page|Line|Arrow)|Knob(?:Slot)?|Arrows(?:M(?:inEnd|axEnd)|None|DefaultSetting))|Wheel(?:Mask)?|LockFunctionKey)|eenChangedEventType))|t(?:opFunctionKey|r(?:ingDrawing(?:OneShot|DisableScreenFontSubstitution|Uses(?:DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(?:Status(?:Reading|NotOpen|Closed|Open(?:ing)?|Error|Writing|AtEnd)|Event(?:Has(?:BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(?:ndEncountered|rrorOccurred)))))|i(?:ngle(?:DateMode|UnderlineStyle)|ze(?:DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(?:condCalendarUnit|lect(?:By(?:Character|Paragraph|Word)|i(?:ng(?:Next|Previous)|onAffinity(?:Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(?:Momentary|Select(?:One|Any)))|quareLineCapStyle|witchButton|ave(?:ToOperation|Op(?:tions(?:Yes|No|Ask)|eration)|AsOperation)|mall(?:SquareBezelStyle|C(?:ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(?:ighlightModeMatrix|SBModeColorPanel|o(?:ur(?:Minute(?:SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(?:Never|OnlyFromMainDocumentDomain|Always)|e(?:lp(?:ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(?:MonthDa(?:yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(?:o(?:n(?:StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(?:ification(?:SuspensionBehavior(?:Hold|Coalesce|D(?:eliverImmediately|rop))|NoCoalescing|CoalescingOn(?:Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(?:cr(?:iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(?:itle|opLevelContainersSpecifierError|abs(?:BezelBorder|NoBorder|LineBorder))|I(?:nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(?:ll(?:Glyph|CellType)|m(?:eric(?:Search|PadKeyMask)|berFormatter(?:Round(?:Half(?:Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(?:10|Default)|S(?:cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(?:ercentStyle|ad(?:Before(?:Suffix|Prefix)|After(?:Suffix|Prefix))))))|e(?:t(?:Services(?:BadArgumentError|NotFoundError|C(?:ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(?:StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(?:t(?:iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(?:hange(?:ReadOtherContents|GrayCell(?:Mask)?|BackgroundCell(?:Mask)?|Cleared|Done|Undone|Autosaved)|MYK(?:ModeColorPanel|ColorSpaceModel)|ircular(?:BezelStyle|Slider)|o(?:n(?:stantValueExpressionType|t(?:inuousCapacityLevelIndicatorStyle|entsCellMask|ain(?:sComparison|erSpecifierError)|rol(?:Glyph|KeyMask))|densedFontMask)|lor(?:Panel(?:RGBModeMask|GrayModeMask|HSBModeMask|C(?:MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(?:p(?:osite(?:XOR|Source(?:In|O(?:ut|ver)|Atop)|Highlight|C(?:opy|lear)|Destination(?:In|O(?:ut|ver)|Atop)|Plus(?:Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(?:stom(?:SelectorPredicateOperatorType|PaletteModeColorPanel)|r(?:sor(?:Update(?:Mask)?|PointingDevice)|veToBezierPathElement))|e(?:nterT(?:extAlignment|abStopType)|ll(?:State|H(?:ighlighted|as(?:Image(?:Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(?:Bordered|InsetButton)|Disabled|Editable|LightsBy(?:Gray|Background|Contents)|AllowsMixedState))|l(?:ipPagination|o(?:s(?:ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(?:ControlTint|DisplayFunctionKey|LineFunctionKey))|a(?:seInsensitive(?:Search|PredicateOption)|n(?:notCreateScriptCommandError|cel(?:Button|TextMovement))|chesDirectory|lculation(?:NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(?:itical(?:Request|AlertStyle)|ayonModeColorPanel))|T(?:hick(?:SquareBezelStyle|erSquareBezelStyle)|ypesetter(?:Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(?:ineBreakAction|atestBehavior))|i(?:ckMark(?:Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(?:olbarItemVisibilityPriority(?:Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(?:Compression(?:N(?:one|EXT)|CCITTFAX(?:3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(?:rminate(?:Now|Cancel|Later)|xt(?:Read(?:InapplicableDocumentTypeError|WriteErrorM(?:inimum|aximum))|Block(?:M(?:i(?:nimum(?:Height|Width)|ddleAlignment)|a(?:rgin|ximum(?:Height|Width)))|B(?:o(?:ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(?:ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(?:Characters|Attributes)|CellType|ured(?:RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(?:FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(?:RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(?:Character|TextMovement|le(?:tP(?:oint(?:Mask|EventSubtype)?|roximity(?:Mask|EventSubtype)?)|Column(?:NoResizing|UserResizingMask|AutoresizingMask)|View(?:ReverseSequentialColumnAutoresizingStyle|GridNone|S(?:olid(?:HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(?:n(?:sert(?:CharFunctionKey|FunctionKey|LineFunctionKey)|t(?:Type|ernalS(?:criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(?:Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(?:2022JPStringEncoding|Latin(?:1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(?:R(?:ight|ep(?:MatchesDevice|LoadStatus(?:ReadingHeader|Completed|InvalidData|Un(?:expectedEOF|knownType)|WillNeedAllData)))|Below|C(?:ellType|ache(?:BySize|Never|Default|Always))|Interpolation(?:High|None|Default|Low)|O(?:nly|verlaps)|Frame(?:Gr(?:oove|ayBezel)|Button|None|Photo)|L(?:oadStatus(?:ReadError|C(?:ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(?:lign(?:Right|Bottom(?:Right|Left)?|Center|Top(?:Right|Left)?|Left)|bove)))|O(?:n(?:State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(?:Mouse(?:D(?:own(?:Mask)?|ragged(?:Mask)?)|Up(?:Mask)?)|TextMovement)|SF1OperatingSystem|pe(?:n(?:GL(?:GO(?:Re(?:setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(?:R(?:obust|endererID)|M(?:inimumPolicy|ulti(?:sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(?:creenMask|te(?:ncilSize|reo)|ingleRenderer|upersample|ample(?:s|Buffers|Alpha))|NoRecovery|C(?:o(?:lor(?:Size|Float)|mpliant)|losestPolicy)|OffScreen|D(?:oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(?:cc(?:umSize|elerated)|ux(?:Buffers|DepthStencil)|l(?:phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(?:criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(?:B(?:itfield|oolType)|S(?:hortType|tr(?:ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(?:Type|longType)|ArrayType))|D(?:i(?:s(?:c(?:losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(?:Selection|PredicateModifier))|o(?:c(?:ModalWindowMask|ument(?:Directory|ationDirectory))|ubleType|wn(?:TextMovement|ArrowFunctionKey))|e(?:s(?:cendingPageOrder|ktopDirectory)|cimalTabStopType|v(?:ice(?:NColorSpaceModel|IndependentModifierFlagsMask)|eloper(?:Directory|ApplicationDirectory))|fault(?:ControlTint|TokenStyle)|lete(?:Char(?:acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(?:yCalendarUnit|teFormatter(?:MediumStyle|Behavior(?:10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(?:wer(?:Clos(?:ingState|edState)|Open(?:ingState|State))|gOperation(?:Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(?:ser(?:CancelledError|D(?:irectory|omainMask)|FunctionKey)|RL(?:Handle(?:NotLoaded|Load(?:Succeeded|InProgress|Failed))|CredentialPersistence(?:None|Permanent|ForSession))|n(?:scaledWindowMask|cachedRead|i(?:codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(?:o(?:CloseGroupingRunLoopOrdering|FunctionKey)|e(?:finedDateComponent|rline(?:Style(?:Single|None|Thick|Double)|Pattern(?:Solid|D(?:ot|ash(?:Dot(?:Dot)?)?)))))|known(?:ColorSpaceModel|P(?:ointingDevice|ageOrder)|KeyS(?:criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(?:dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(?:ustifiedTextAlignment|PEG(?:2000FileType|FileType)|apaneseEUC(?:GlyphPacking|StringEncoding))|P(?:o(?:s(?:t(?:Now|erFontMask|WhenIdle|ASAP)|iti(?:on(?:Replace|Be(?:fore|ginning)|End|After)|ve(?:IntType|DoubleType|FloatType)))|pUp(?:NoArrow|ArrowAt(?:Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(?:InCell(?:Mask)?|OnPushOffButton)|e(?:n(?:TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(?:Mask)?)|P(?:S(?:caleField|tatus(?:Title|Field)|aveButton)|N(?:ote(?:Title|Field)|ame(?:Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(?:a(?:perFeedButton|ge(?:Range(?:To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(?:useFunctionKey|ragraphSeparatorCharacter|ge(?:DownFunctionKey|UpFunctionKey))|r(?:int(?:ing(?:ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(?:NotFound|OK|Error)|FunctionKey)|o(?:p(?:ertyList(?:XMLFormat|MutableContainers(?:AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(?:BarStyle|SpinningStyle|Preferred(?:SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(?:ssedTab|vFunctionKey))|L(?:HeightForm|CancelButton|TitleField|ImageButton|O(?:KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(?:n(?:terCharacter|d(?:sWith(?:Comparison|PredicateOperatorType)|FunctionKey))|v(?:e(?:nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(?:Comparison|PredicateOperatorType)|ra(?:serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(?:clude(?:10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(?:i(?:ew(?:M(?:in(?:XMargin|YMargin)|ax(?:XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(?:lidationErrorM(?:inimum|aximum)|riableExpressionType))|Key(?:SpecifierEvaluationScriptError|Down(?:Mask)?|Up(?:Mask)?|PathExpressionType|Value(?:MinusSetMutation|SetSetMutation|Change(?:Re(?:placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(?:New|Old)|UnionSetMutation|ValidationError))|QTMovie(?:NormalPlayback|Looping(?:BackAndForthPlayback|Playback))|F(?:1(?:1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(?:nd(?:PanelAction(?:Replace(?:A(?:ndFind|ll(?:InSelection)?))?|S(?:howFindPanel|e(?:tFindString|lectAll(?:InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(?:Read(?:No(?:SuchFileError|PermissionError)|CorruptFileError|In(?:validFileNameError|applicableStringEncodingError)|Un(?:supportedSchemeError|knownError))|HandlingPanel(?:CancelButton|OKButton)|NoSuchFileError|ErrorM(?:inimum|aximum)|Write(?:NoPermissionError|In(?:validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(?:supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(?:1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(?:nt(?:Mo(?:noSpaceTrait|dernSerifsClass)|BoldTrait|S(?:ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(?:o(?:ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(?:ntegerAdvancementsRenderingMode|talicTrait)|O(?:ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(?:nknownClass|IOptimizedTrait)|Panel(?:S(?:hadowEffectModeMask|t(?:andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(?:ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(?:amilyClassMask|reeformSerifsClass)|Antialiased(?:RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(?:Below|Type(?:None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(?:attingError(?:M(?:inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(?:ExpressionType|KeyMask)|3(?:1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(?:RevertButton|S(?:ize(?:Title|Field)|etButton)|CurrentField|Preview(?:Button|Field))|l(?:oat(?:ingPointSamplesBitmapFormat|Type)|agsChanged(?:Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(?:heelModeColorPanel|indow(?:s(?:NTOperatingSystem|CP125(?:1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(?:InterfaceStyle|OperatingSystem))|M(?:iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(?:NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(?:ctivation|ddingToRecents)|A(?:sync|nd(?:Hide(?:Others)?|Print)|llowingClassicStartup))|eek(?:day(?:CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(?:ntsBidiLevels|rningAlertStyle)|r(?:itingDirection(?:RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(?:i(?:stModeMatrix|ne(?:Moves(?:Right|Down|Up|Left)|B(?:order|reakBy(?:C(?:harWrapping|lipping)|Truncating(?:Middle|Head|Tail)|WordWrapping))|S(?:eparatorCharacter|weep(?:Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(?:ssThan(?:Comparison|OrEqualTo(?:Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(?:Mouse(?:D(?:own(?:Mask)?|ragged(?:Mask)?)|Up(?:Mask)?)|T(?:ext(?:Movement|Alignment)|ab(?:sBezelBorder|StopType))|ArrowFunctionKey))|a(?:yout(?:RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(?:sc(?:iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(?:y(?:Type|PredicateModifier|EventMask)|choredSearch|imation(?:Blocking|Nonblocking(?:Threaded)?|E(?:ffect(?:DisappearingItemDefault|Poof)|ase(?:In(?:Out)?|Out))|Linear)|dPredicateType)|t(?:Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(?:obe(?:GB1CharacterCollection|CNS1CharacterCollection|Japan(?:1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(?:saveOperation|Pagination)|pp(?:lication(?:SupportDirectory|D(?:irectory|e(?:fined(?:Mask)?|legateReply(?:Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(?:Mask)?)|l(?:ternateKeyMask|pha(?:ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(?:SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(?:ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(?:sWrongScriptError|EvaluationScriptError)|bove(?:Bottom|Top)|WTEventType)))(?:\\\\b)\"},{token:\"support.function.C99.c\",regex:s.cFunctions},{token:n.getKeywords(),regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"punctuation.section.scope.begin.objc\",regex:\"\\\\[\",next:\"bracketed_content\"},{token:\"meta.function.objc\",regex:\"^(?:-|\\\\+)\\\\s*\"}],constant_NSString:[{token:\"constant.character.escape.objc\",regex:e},{token:\"invalid.illegal.unknown-escape.objc\",regex:\"\\\\\\\\.\"},{token:\"string\",regex:'[^\"\\\\\\\\]+'},{token:\"punctuation.definition.string.end\",regex:'\"',next:\"start\"}],protocol_list:[{token:\"punctuation.section.scope.end.objc\",regex:\">\",next:\"start\"},{token:\"support.other.protocol.objc\",regex:\"\\bNS(?:GlyphStorage|M(?:utableCopying|enuItem)|C(?:hangeSpelling|o(?:ding|pying|lorPicking(?:Custom|Default)))|T(?:oolbarItemValidations|ext(?:Input|AttachmentCell))|I(?:nputServ(?:iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(?:CTypeSerializationCallBack|ect)|D(?:ecimalNumberBehaviors|raggingInfo)|U(?:serInterfaceValidations|RL(?:HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(?:ToobarItem|UserInterfaceItem)|Locking)\\b\"}],selectors:[{token:\"support.function.any-method.name-of-parameter.objc\",regex:\"\\\\b(?:[a-zA-Z_:][\\\\w]*)+\"},{token:\"punctuation\",regex:\"\\\\)\",next:\"start\"}],bracketed_content:[{token:\"punctuation.section.scope.end.objc\",regex:\"]\",next:\"start\"},{token:[\"support.function.any-method.objc\"],regex:\"(?:predicateWithFormat:| NSPredicate predicateWithFormat:)\",next:\"start\"},{token:\"support.function.any-method.objc\",regex:\"\\\\w+(?::|(?=]))\",next:\"start\"}],bracketed_strings:[{token:\"punctuation.section.scope.end.objc\",regex:\"]\",next:\"start\"},{token:\"keyword.operator.logical.predicate.cocoa\",regex:\"\\\\b(?:AND|OR|NOT|IN)\\\\b\"},{token:[\"invalid.illegal.unknown-method.objc\",\"punctuation.separator.arguments.objc\"],regex:\"\\\\b(\\\\w+)(:)\"},{regex:\"\\\\b(?:ALL|ANY|SOME|NONE)\\\\b\",token:\"constant.language.predicate.cocoa\"},{regex:\"\\\\b(?:NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\\\b\",token:\"constant.language.predicate.cocoa\"},{regex:\"\\\\b(?:MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\\\b\",token:\"keyword.operator.comparison.predicate.cocoa\"},{regex:\"\\\\bC(?:ASEINSENSITIVE|I)\\\\b\",token:\"keyword.other.modifier.predicate.cocoa\"},{regex:\"\\\\b(?:ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\\\b\",token:\"keyword.other.predicate.cocoa\"},{regex:e,token:\"constant.character.escape.objc\"},{regex:\"\\\\\\\\.\",token:\"invalid.illegal.unknown-escape.objc\"},{token:\"string\",regex:'[^\"\\\\\\\\]'},{token:\"punctuation.definition.string.end.objc\",regex:'\"',next:\"predicates\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],methods:[{token:\"meta.function.objc\",regex:\"(?=\\\\{|#)|;\",next:\"start\"}]};for(var u in r)this.$rules[u]?this.$rules[u].push&&this.$rules[u].push.apply(this.$rules[u],r[u]):this.$rules[u]=r[u];this.$rules.bracketed_content=this.$rules.bracketed_content.concat(this.$rules.start,t),this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(u,o),t.ObjectiveCHighlightRules=u}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/objectivec\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/objectivec_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./objectivec_highlight_rules\").ObjectiveCHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/objectivec\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-ocaml.js",
    "content": "ace.define(\"ace/mode/ocaml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|or|private|rec|sig|struct|then|to|try|type|val|virtual|when|while|with\",t=\"true|false\",n=\"abs|abs_big_int|abs_float|abs_num|abstract_tag|accept|access|acos|add|add_available_units|add_big_int|add_buffer|add_channel|add_char|add_initializer|add_int_big_int|add_interfaces|add_num|add_string|add_substitute|add_substring|alarm|allocated_bytes|allow_only|allow_unsafe_modules|always|append|appname_get|appname_set|approx_num_exp|approx_num_fix|arg|argv|arith_status|array|array1_of_genarray|array2_of_genarray|array3_of_genarray|asin|asr|assoc|assq|at_exit|atan|atan2|auto_synchronize|background|basename|beginning_of_input|big_int_of_int|big_int_of_num|big_int_of_string|bind|bind_class|bind_tag|bits|bits_of_float|black|blit|blit_image|blue|bool|bool_of_string|bounded_full_split|bounded_split|bounded_split_delim|bprintf|break|broadcast|bscanf|button_down|c_layout|capitalize|cardinal|cardinal|catch|catch_break|ceil|ceiling_num|channel|char|char_of_int|chdir|check|check_suffix|chmod|choose|chop_extension|chop_suffix|chown|chown|chr|chroot|classify_float|clear|clear_available_units|clear_close_on_exec|clear_graph|clear_nonblock|clear_parser|close|close|closeTk|close_box|close_graph|close_in|close_in_noerr|close_out|close_out_noerr|close_process|close_process|close_process_full|close_process_in|close_process_out|close_subwindow|close_tag|close_tbox|closedir|closedir|closure_tag|code|combine|combine|combine|command|compact|compare|compare_big_int|compare_num|complex32|complex64|concat|conj|connect|contains|contains_from|contents|copy|cos|cosh|count|count|counters|create|create_alarm|create_image|create_matrix|create_matrix|create_matrix|create_object|create_object_and_run_initializers|create_object_opt|create_process|create_process|create_process_env|create_process_env|create_table|current|current_dir_name|current_point|current_x|current_y|curveto|custom_tag|cyan|data_size|decr|decr_num|default_available_units|delay|delete_alarm|descr_of_in_channel|descr_of_out_channel|destroy|diff|dim|dim1|dim2|dim3|dims|dirname|display_mode|div|div_big_int|div_num|double_array_tag|double_tag|draw_arc|draw_char|draw_circle|draw_ellipse|draw_image|draw_poly|draw_poly_line|draw_rect|draw_segments|draw_string|dummy_pos|dummy_table|dump_image|dup|dup2|elements|empty|end_of_input|environment|eprintf|epsilon_float|eq_big_int|eq_num|equal|err_formatter|error_message|escaped|establish_server|executable_name|execv|execve|execvp|execvpe|exists|exists2|exit|exp|failwith|fast_sort|fchmod|fchown|field|file|file_exists|fill|fill_arc|fill_circle|fill_ellipse|fill_poly|fill_rect|filter|final_tag|finalise|find|find_all|first_chars|firstkey|flatten|float|float32|float64|float_of_big_int|float_of_bits|float_of_int|float_of_num|float_of_string|floor|floor_num|flush|flush_all|flush_input|flush_str_formatter|fold|fold_left|fold_left2|fold_right|fold_right2|for_all|for_all2|force|force_newline|force_val|foreground|fork|format_of_string|formatter_of_buffer|formatter_of_out_channel|fortran_layout|forward_tag|fprintf|frexp|from|from_channel|from_file|from_file_bin|from_function|from_string|fscanf|fst|fstat|ftruncate|full_init|full_major|full_split|gcd_big_int|ge_big_int|ge_num|genarray_of_array1|genarray_of_array2|genarray_of_array3|get|get_all_formatter_output_functions|get_approx_printing|get_copy|get_ellipsis_text|get_error_when_null_denominator|get_floating_precision|get_formatter_output_functions|get_formatter_tag_functions|get_image|get_margin|get_mark_tags|get_max_boxes|get_max_indent|get_method|get_method_label|get_normalize_ratio|get_normalize_ratio_when_printing|get_print_tags|get_state|get_variable|getcwd|getegid|getegid|getenv|getenv|getenv|geteuid|geteuid|getgid|getgid|getgrgid|getgrgid|getgrnam|getgrnam|getgroups|gethostbyaddr|gethostbyname|gethostname|getitimer|getlogin|getpeername|getpid|getppid|getprotobyname|getprotobynumber|getpwnam|getpwuid|getservbyname|getservbyport|getsockname|getsockopt|getsockopt_float|getsockopt_int|getsockopt_optint|gettimeofday|getuid|global_replace|global_substitute|gmtime|green|grid|group_beginning|group_end|gt_big_int|gt_num|guard|handle_unix_error|hash|hash_param|hd|header_size|i|id|ignore|in_channel_length|in_channel_of_descr|incr|incr_num|index|index_from|inet_addr_any|inet_addr_of_string|infinity|infix_tag|init|init_class|input|input_binary_int|input_byte|input_char|input_line|input_value|int|int16_signed|int16_unsigned|int32|int64|int8_signed|int8_unsigned|int_of_big_int|int_of_char|int_of_float|int_of_num|int_of_string|integer_num|inter|interactive|inv|invalid_arg|is_block|is_empty|is_implicit|is_int|is_int_big_int|is_integer_num|is_relative|iter|iter2|iteri|join|junk|key_pressed|kill|kind|kprintf|kscanf|land|last_chars|layout|lazy_from_fun|lazy_from_val|lazy_is_val|lazy_tag|ldexp|le_big_int|le_num|length|lexeme|lexeme_char|lexeme_end|lexeme_end_p|lexeme_start|lexeme_start_p|lineto|link|list|listen|lnot|loadfile|loadfile_private|localtime|lock|lockf|log|log10|logand|lognot|logor|logxor|lor|lower_window|lowercase|lseek|lsl|lsr|lstat|lt_big_int|lt_num|lxor|magenta|magic|mainLoop|major|major_slice|make|make_formatter|make_image|make_lexer|make_matrix|make_self_init|map|map2|map_file|mapi|marshal|match_beginning|match_end|matched_group|matched_string|max|max_array_length|max_big_int|max_elt|max_float|max_int|max_num|max_string_length|mem|mem_assoc|mem_assq|memq|merge|min|min_big_int|min_elt|min_float|min_int|min_num|minor|minus_big_int|minus_num|minus_one|mkdir|mkfifo|mktime|mod|mod_big_int|mod_float|mod_num|modf|mouse_pos|moveto|mul|mult_big_int|mult_int_big_int|mult_num|nan|narrow|nat_of_num|nativeint|neg|neg_infinity|new_block|new_channel|new_method|new_variable|next|nextkey|nice|nice|no_scan_tag|norm|norm2|not|npeek|nth|nth_dim|num_digits_big_int|num_dims|num_of_big_int|num_of_int|num_of_nat|num_of_ratio|num_of_string|O|obj|object_tag|ocaml_version|of_array|of_channel|of_float|of_int|of_int32|of_list|of_nativeint|of_string|one|openTk|open_box|open_connection|open_graph|open_hbox|open_hovbox|open_hvbox|open_in|open_in_bin|open_in_gen|open_out|open_out_bin|open_out_gen|open_process|open_process_full|open_process_in|open_process_out|open_subwindow|open_tag|open_tbox|open_temp_file|open_vbox|opendbm|opendir|openfile|or|os_type|out_channel_length|out_channel_of_descr|output|output_binary_int|output_buffer|output_byte|output_char|output_string|output_value|over_max_boxes|pack|params|parent_dir_name|parse|parse_argv|partition|pause|peek|pipe|pixels|place|plot|plots|point_color|polar|poll|pop|pos_in|pos_out|pow|power_big_int_positive_big_int|power_big_int_positive_int|power_int_positive_big_int|power_int_positive_int|power_num|pp_close_box|pp_close_tag|pp_close_tbox|pp_force_newline|pp_get_all_formatter_output_functions|pp_get_ellipsis_text|pp_get_formatter_output_functions|pp_get_formatter_tag_functions|pp_get_margin|pp_get_mark_tags|pp_get_max_boxes|pp_get_max_indent|pp_get_print_tags|pp_open_box|pp_open_hbox|pp_open_hovbox|pp_open_hvbox|pp_open_tag|pp_open_tbox|pp_open_vbox|pp_over_max_boxes|pp_print_as|pp_print_bool|pp_print_break|pp_print_char|pp_print_cut|pp_print_float|pp_print_flush|pp_print_if_newline|pp_print_int|pp_print_newline|pp_print_space|pp_print_string|pp_print_tab|pp_print_tbreak|pp_set_all_formatter_output_functions|pp_set_ellipsis_text|pp_set_formatter_out_channel|pp_set_formatter_output_functions|pp_set_formatter_tag_functions|pp_set_margin|pp_set_mark_tags|pp_set_max_boxes|pp_set_max_indent|pp_set_print_tags|pp_set_tab|pp_set_tags|pred|pred_big_int|pred_num|prerr_char|prerr_endline|prerr_float|prerr_int|prerr_newline|prerr_string|print|print_as|print_bool|print_break|print_char|print_cut|print_endline|print_float|print_flush|print_if_newline|print_int|print_newline|print_space|print_stat|print_string|print_tab|print_tbreak|printf|prohibit|public_method_label|push|putenv|quo_num|quomod_big_int|quote|raise|raise_window|ratio_of_num|rcontains_from|read|read_float|read_int|read_key|read_line|readdir|readdir|readlink|really_input|receive|recv|recvfrom|red|ref|regexp|regexp_case_fold|regexp_string|regexp_string_case_fold|register|register_exception|rem|remember_mode|remove|remove_assoc|remove_assq|rename|replace|replace_first|replace_matched|repr|reset|reshape|reshape_1|reshape_2|reshape_3|rev|rev_append|rev_map|rev_map2|rewinddir|rgb|rhs_end|rhs_end_pos|rhs_start|rhs_start_pos|rindex|rindex_from|rlineto|rmdir|rmoveto|round_num|run_initializers|run_initializers_opt|scanf|search_backward|search_forward|seek_in|seek_out|select|self|self_init|send|sendto|set|set_all_formatter_output_functions|set_approx_printing|set_binary_mode_in|set_binary_mode_out|set_close_on_exec|set_close_on_exec|set_color|set_ellipsis_text|set_error_when_null_denominator|set_field|set_floating_precision|set_font|set_formatter_out_channel|set_formatter_output_functions|set_formatter_tag_functions|set_line_width|set_margin|set_mark_tags|set_max_boxes|set_max_indent|set_method|set_nonblock|set_nonblock|set_normalize_ratio|set_normalize_ratio_when_printing|set_print_tags|set_signal|set_state|set_tab|set_tag|set_tags|set_text_size|set_window_title|setgid|setgid|setitimer|setitimer|setsid|setsid|setsockopt|setsockopt|setsockopt_float|setsockopt_float|setsockopt_int|setsockopt_int|setsockopt_optint|setsockopt_optint|setuid|setuid|shift_left|shift_left|shift_left|shift_right|shift_right|shift_right|shift_right_logical|shift_right_logical|shift_right_logical|show_buckets|shutdown|shutdown|shutdown_connection|shutdown_connection|sigabrt|sigalrm|sigchld|sigcont|sigfpe|sighup|sigill|sigint|sigkill|sign_big_int|sign_num|signal|signal|sigpending|sigpending|sigpipe|sigprocmask|sigprocmask|sigprof|sigquit|sigsegv|sigstop|sigsuspend|sigsuspend|sigterm|sigtstp|sigttin|sigttou|sigusr1|sigusr2|sigvtalrm|sin|singleton|sinh|size|size|size_x|size_y|sleep|sleep|sleep|slice_left|slice_left|slice_left_1|slice_left_2|slice_right|slice_right|slice_right_1|slice_right_2|snd|socket|socket|socket|socketpair|socketpair|sort|sound|split|split_delim|sprintf|sprintf|sqrt|sqrt|sqrt_big_int|square_big_int|square_num|sscanf|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stat|stat|stat|stat|stat|stats|stats|std_formatter|stdbuf|stderr|stderr|stderr|stdib|stdin|stdin|stdin|stdout|stdout|stdout|str_formatter|string|string_after|string_before|string_match|string_of_big_int|string_of_bool|string_of_float|string_of_format|string_of_inet_addr|string_of_inet_addr|string_of_int|string_of_num|string_partial_match|string_tag|sub|sub|sub_big_int|sub_left|sub_num|sub_right|subset|subset|substitute_first|substring|succ|succ|succ|succ|succ_big_int|succ_num|symbol_end|symbol_end_pos|symbol_start|symbol_start_pos|symlink|symlink|sync|synchronize|system|system|system|tag|take|tan|tanh|tcdrain|tcdrain|tcflow|tcflow|tcflush|tcflush|tcgetattr|tcgetattr|tcsendbreak|tcsendbreak|tcsetattr|tcsetattr|temp_file|text_size|time|time|time|timed_read|timed_write|times|times|tl|tl|tl|to_buffer|to_channel|to_float|to_hex|to_int|to_int32|to_list|to_list|to_list|to_nativeint|to_string|to_string|to_string|to_string|to_string|top|top|total_size|transfer|transp|truncate|truncate|truncate|truncate|truncate|truncate|try_lock|umask|umask|uncapitalize|uncapitalize|uncapitalize|union|union|unit_big_int|unlink|unlink|unlock|unmarshal|unsafe_blit|unsafe_fill|unsafe_get|unsafe_get|unsafe_set|unsafe_set|update|uppercase|uppercase|uppercase|uppercase|usage|utimes|utimes|wait|wait|wait|wait|wait_next_event|wait_pid|wait_read|wait_signal|wait_timed_read|wait_timed_write|wait_write|waitpid|white|widen|window_id|word_size|wrap|wrap_abort|write|yellow|yield|zero|zero_big_int|Arg|Arith_status|Array|Array1|Array2|Array3|ArrayLabels|Big_int|Bigarray|Buffer|Callback|CamlinternalOO|Char|Complex|Condition|Dbm|Digest|Dynlink|Event|Filename|Format|Gc|Genarray|Genlex|Graphics|GraphicsX11|Hashtbl|Int32|Int64|LargeFile|Lazy|Lexing|List|ListLabels|Make|Map|Marshal|MoreLabels|Mutex|Nativeint|Num|Obj|Oo|Parsing|Pervasives|Printexc|Printf|Queue|Random|Scanf|Scanning|Set|Sort|Stack|State|StdLabels|Str|Stream|String|StringLabels|Sys|Thread|ThreadUnix|Tk|Unix|UnixLabels|Weak\",r=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"constant.language\":t,\"support.function\":n},\"identifier\"),i=\"(?:(?:[1-9]\\\\d*)|(?:0))\",s=\"(?:0[oO]?[0-7]+)\",o=\"(?:0[xX][\\\\dA-Fa-f]+)\",u=\"(?:0[bB][01]+)\",a=\"(?:\"+i+\"|\"+s+\"|\"+o+\"|\"+u+\")\",f=\"(?:[eE][+-]?\\\\d+)\",l=\"(?:\\\\.\\\\d+)\",c=\"(?:\\\\d+)\",h=\"(?:(?:\"+c+\"?\"+l+\")|(?:\"+c+\"\\\\.))\",p=\"(?:(?:\"+h+\"|\"+c+\")\"+f+\")\",d=\"(?:\"+p+\"|\"+h+\")\";this.$rules={start:[{token:\"comment\",regex:\"\\\\(\\\\*.*?\\\\*\\\\)\\\\s*?$\"},{token:\"comment\",regex:\"\\\\(\\\\*.*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"'.'\"},{token:\"string\",regex:'\"',next:\"qstring\"},{token:\"constant.numeric\",regex:\"(?:\"+d+\"|\\\\d+)[jJ]\\\\b\"},{token:\"constant.numeric\",regex:d},{token:\"constant.numeric\",regex:a+\"\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+\\\\.|\\\\-\\\\.|\\\\*\\\\.|\\\\/\\\\.|#|;;|\\\\+|\\\\-|\\\\*|\\\\*\\\\*\\\\/|\\\\/\\\\/|%|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|<-|=\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\)\",next:\"start\"},{token:\"comment\",regex:\".+\"}],qstring:[{token:\"string\",regex:'\"',next:\"start\"},{token:\"string\",regex:\".+\"}]}};r.inherits(s,i),t.OcamlHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/ocaml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ocaml_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./ocaml_highlight_rules\").OcamlHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour,this.$outdent=new o};r.inherits(a,i);var f=/(?:[({[=:]|[-=]>|\\b(?:else|try|with))\\s*$/;(function(){this.toggleCommentLines=function(e,t,n,r){var i,s,o=!0,a=/^\\s*\\(\\*(.*)\\*\\)/;for(i=n;i<=r;i++)if(!a.test(t.getLine(i))){o=!1;break}var f=new u(0,0,0,0);for(i=n;i<=r;i++)s=t.getLine(i),f.start.row=i,f.end.row=i,f.end.column=s.length,t.replace(f,o?s.match(a)[1]:\"(*\"+s+\"*)\")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return(!i.length||i[i.length-1].type!==\"comment\")&&e===\"start\"&&f.test(t)&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/ocaml\"}).call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict/mode-pascal.js",
    "content": "ace.define(\"ace/mode/pascal_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{caseInsensitive:!0,token:\"keyword.control.pascal\",regex:\"\\\\b(?:(absolute|abstract|all|and|and_then|array|as|asm|attribute|begin|bindable|case|class|const|constructor|destructor|div|do|do|else|end|except|export|exports|external|far|file|finalization|finally|for|forward|goto|if|implementation|import|in|inherited|initialization|interface|interrupt|is|label|library|mod|module|name|near|nil|not|object|of|only|operator|or|or_else|otherwise|packed|pow|private|program|property|protected|public|published|qualified|record|repeat|resident|restricted|segment|set|shl|shr|then|to|try|type|unit|until|uses|value|var|view|virtual|while|with|xor))\\\\b\"},{caseInsensitive:!0,token:[\"variable.pascal\",\"text\",\"storage.type.prototype.pascal\",\"entity.name.function.prototype.pascal\"],regex:\"\\\\b(function|procedure)(\\\\s+)(\\\\w+)(\\\\.\\\\w+)?(?=(?:\\\\(.*?\\\\))?;\\\\s*(?:attribute|forward|external))\"},{caseInsensitive:!0,token:[\"variable.pascal\",\"text\",\"storage.type.function.pascal\",\"entity.name.function.pascal\"],regex:\"\\\\b(function|procedure)(\\\\s+)(\\\\w+)(\\\\.\\\\w+)?\"},{token:\"constant.numeric.pascal\",regex:\"\\\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\\\.?[0-9]*)|(\\\\.[0-9]+))((e|E)(\\\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"punctuation.definition.comment.pascal\",regex:\"--.*$\",push_:[{token:\"comment.line.double-dash.pascal.one\",regex:\"$\",next:\"pop\"},{defaultToken:\"comment.line.double-dash.pascal.one\"}]},{token:\"punctuation.definition.comment.pascal\",regex:\"//.*$\",push_:[{token:\"comment.line.double-slash.pascal.two\",regex:\"$\",next:\"pop\"},{defaultToken:\"comment.line.double-slash.pascal.two\"}]},{token:\"punctuation.definition.comment.pascal\",regex:\"\\\\(\\\\*\",push:[{token:\"punctuation.definition.comment.pascal\",regex:\"\\\\*\\\\)\",next:\"pop\"},{defaultToken:\"comment.block.pascal.one\"}]},{token:\"punctuation.definition.comment.pascal\",regex:\"\\\\{\",push:[{token:\"punctuation.definition.comment.pascal\",regex:\"\\\\}\",next:\"pop\"},{defaultToken:\"comment.block.pascal.two\"}]},{token:\"punctuation.definition.string.begin.pascal\",regex:'\"',push:[{token:\"constant.character.escape.pascal\",regex:\"\\\\\\\\.\"},{token:\"punctuation.definition.string.end.pascal\",regex:'\"',next:\"pop\"},{defaultToken:\"string.quoted.double.pascal\"}]},{token:\"punctuation.definition.string.begin.pascal\",regex:\"'\",push:[{token:\"constant.character.escape.apostrophe.pascal\",regex:\"''\"},{token:\"punctuation.definition.string.end.pascal\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.quoted.single.pascal\"}]},{token:\"keyword.operator\",regex:\"[+\\\\-;,/*%]|:=|=\"}]},this.normalizeRules()};r.inherits(s,i),t.PascalHighlightRules=s}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/pascal\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/pascal_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./pascal_highlight_rules\").PascalHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=[\"--\",\"//\"],this.blockComment=[{start:\"(*\",end:\"*)\"},{start:\"{\",end:\"}\"}],this.$id=\"ace/mode/pascal\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-perl.js",
    "content": "ace.define(\"ace/mode/perl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars\",t=\"ARGV|ENV|INC|SIG\",n=\"getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|getpeername|setpriority|getprotoent|setprotoent|getpriority|endprotoent|getservent|setservent|endservent|sethostent|socketpair|getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|map|die|uc|lc|do\",r=this.createKeywordMapper({keyword:e,\"constant.language\":t,\"support.function\":n},\"identifier\");this.$rules={start:[{token:\"comment.doc\",regex:\"^=(?:begin|item)\\\\b\",next:\"block_comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:'[\"].*\\\\\\\\$',next:\"qqstring\"},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"string\",regex:\"['].*\\\\\\\\$\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"0x[0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"%#|\\\\$#|\\\\.\\\\.\\\\.|\\\\|\\\\|=|>>=|<<=|<=>|&&=|=>|!~|\\\\^=|&=|\\\\|=|\\\\.=|x=|%=|\\\\/=|\\\\*=|\\\\-=|\\\\+=|=~|\\\\*\\\\*|\\\\-\\\\-|\\\\.\\\\.|\\\\|\\\\||&&|\\\\+\\\\+|\\\\->|!=|==|>=|<=|>>|<<|,|=|\\\\?\\\\:|\\\\^|\\\\||x|%|\\\\/|\\\\*|<|&|\\\\\\\\|~|!|>|\\\\.|\\\\-|\\\\+|\\\\-C|\\\\-b|\\\\-S|\\\\-u|\\\\-t|\\\\-p|\\\\-l|\\\\-d|\\\\-f|\\\\-g|\\\\-s|\\\\-z|\\\\-k|\\\\-e|\\\\-O|\\\\-T|\\\\-B|\\\\-M|\\\\-A|\\\\-X|\\\\-W|\\\\-c|\\\\-R|\\\\-o|\\\\-x|\\\\-w|\\\\-r|\\\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)\"},{token:\"comment\",regex:\"#.*$\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],qqstring:[{token:\"string\",regex:'(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',next:\"start\"},{token:\"string\",regex:\".+\"}],qstring:[{token:\"string\",regex:\"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",next:\"start\"},{token:\"string\",regex:\".+\"}],block_comment:[{token:\"comment.doc\",regex:\"^=cut\\\\b\",next:\"start\"},{defaultToken:\"comment.doc\"}]}};r.inherits(s,i),t.PerlHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/perl\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/perl_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./perl_highlight_rules\").PerlHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./folding/cstyle\").FoldMode,a=function(){this.HighlightRules=s,this.$outdent=new o,this.foldingRules=new u({start:\"^=(begin|item)\\\\b\",end:\"^=(cut)\\\\b\"}),this.$behaviour=this.$defaultBehaviour};r.inherits(a,i),function(){this.lineCommentStart=\"#\",this.blockComment=[{start:\"=begin\",end:\"=cut\",lineStartOnly:!0},{start:\"=item\",end:\"=cut\",lineStartOnly:!0}],this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[:]\\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/perl\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict/mode-pgsql.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/perl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars\",t=\"ARGV|ENV|INC|SIG\",n=\"getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|getpeername|setpriority|getprotoent|setprotoent|getpriority|endprotoent|getservent|setservent|endservent|sethostent|socketpair|getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|map|die|uc|lc|do\",r=this.createKeywordMapper({keyword:e,\"constant.language\":t,\"support.function\":n},\"identifier\");this.$rules={start:[{token:\"comment.doc\",regex:\"^=(?:begin|item)\\\\b\",next:\"block_comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:'[\"].*\\\\\\\\$',next:\"qqstring\"},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"string\",regex:\"['].*\\\\\\\\$\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"0x[0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"%#|\\\\$#|\\\\.\\\\.\\\\.|\\\\|\\\\|=|>>=|<<=|<=>|&&=|=>|!~|\\\\^=|&=|\\\\|=|\\\\.=|x=|%=|\\\\/=|\\\\*=|\\\\-=|\\\\+=|=~|\\\\*\\\\*|\\\\-\\\\-|\\\\.\\\\.|\\\\|\\\\||&&|\\\\+\\\\+|\\\\->|!=|==|>=|<=|>>|<<|,|=|\\\\?\\\\:|\\\\^|\\\\||x|%|\\\\/|\\\\*|<|&|\\\\\\\\|~|!|>|\\\\.|\\\\-|\\\\+|\\\\-C|\\\\-b|\\\\-S|\\\\-u|\\\\-t|\\\\-p|\\\\-l|\\\\-d|\\\\-f|\\\\-g|\\\\-s|\\\\-z|\\\\-k|\\\\-e|\\\\-O|\\\\-T|\\\\-B|\\\\-M|\\\\-A|\\\\-X|\\\\-W|\\\\-c|\\\\-R|\\\\-o|\\\\-x|\\\\-w|\\\\-r|\\\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)\"},{token:\"comment\",regex:\"#.*$\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],qqstring:[{token:\"string\",regex:'(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',next:\"start\"},{token:\"string\",regex:\".+\"}],qstring:[{token:\"string\",regex:\"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",next:\"start\"},{token:\"string\",regex:\".+\"}],block_comment:[{token:\"comment.doc\",regex:\"^=cut\\\\b\",next:\"start\"},{defaultToken:\"comment.doc\"}]}};r.inherits(s,i),t.PerlHighlightRules=s}),ace.define(\"ace/mode/python_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield\",t=\"True|False|None|NotImplemented|Ellipsis|__debug__\",n=\"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|set|apply|delattr|help|next|setattr|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern\",r=this.createKeywordMapper({\"invalid.deprecated\":\"debugger\",\"support.function\":n,\"constant.language\":t,keyword:e},\"identifier\"),i=\"(?:r|u|ur|R|U|UR|Ur|uR)?\",s=\"(?:(?:[1-9]\\\\d*)|(?:0))\",o=\"(?:0[oO]?[0-7]+)\",u=\"(?:0[xX][\\\\dA-Fa-f]+)\",a=\"(?:0[bB][01]+)\",f=\"(?:\"+s+\"|\"+o+\"|\"+u+\"|\"+a+\")\",l=\"(?:[eE][+-]?\\\\d+)\",c=\"(?:\\\\.\\\\d+)\",h=\"(?:\\\\d+)\",p=\"(?:(?:\"+h+\"?\"+c+\")|(?:\"+h+\"\\\\.))\",d=\"(?:(?:\"+p+\"|\"+h+\")\"+l+\")\",v=\"(?:\"+d+\"|\"+p+\")\",m=\"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"string\",regex:i+'\"{3}',next:\"qqstring3\"},{token:\"string\",regex:i+'\"(?=.)',next:\"qqstring\"},{token:\"string\",regex:i+\"'{3}\",next:\"qstring3\"},{token:\"string\",regex:i+\"'(?=.)\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"(?:\"+v+\"|\\\\d+)[jJ]\\\\b\"},{token:\"constant.numeric\",regex:v},{token:\"constant.numeric\",regex:f+\"[lL]\\\\b\"},{token:\"constant.numeric\",regex:f+\"\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text\",regex:\"\\\\s+\"}],qqstring3:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:'\"{3}',next:\"start\"},{defaultToken:\"string\"}],qstring3:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:\"'{3}\",next:\"start\"},{defaultToken:\"string\"}],qqstring:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"start\"},{defaultToken:\"string\"}]}};r.inherits(s,i),t.PythonHighlightRules=s}),ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"variable\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'},{token:\"string\",regex:'\"',next:\"string\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:\"invalid.illegal\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"invalid.illegal\",regex:\"\\\\/\\\\/.*$\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],string:[{token:\"constant.language.escape\",regex:/\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/},{token:\"string\",regex:'[^\"\\\\\\\\]+'},{token:\"string\",regex:'\"',next:\"start\"},{token:\"string\",regex:\"\",next:\"start\"}]}};r.inherits(s,i),t.JsonHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/pgsql_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\",\"ace/mode/perl_highlight_rules\",\"ace/mode/python_highlight_rules\",\"ace/mode/json_highlight_rules\",\"ace/mode/javascript_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=e(\"./perl_highlight_rules\").PerlHighlightRules,a=e(\"./python_highlight_rules\").PythonHighlightRules,f=e(\"./json_highlight_rules\").JsonHighlightRules,l=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,c=function(){var e=\"abort|absolute|abstime|access|aclitem|action|add|admin|after|aggregate|all|also|alter|always|analyse|analyze|and|any|anyarray|anyelement|anyenum|anynonarray|anyrange|array|as|asc|assertion|assignment|asymmetric|at|attribute|authorization|backward|before|begin|between|bigint|binary|bit|bool|boolean|both|box|bpchar|by|bytea|cache|called|cascade|cascaded|case|cast|catalog|chain|char|character|characteristics|check|checkpoint|cid|cidr|circle|class|close|cluster|coalesce|collate|collation|column|comment|comments|commit|committed|concurrently|configuration|connection|constraint|constraints|content|continue|conversion|copy|cost|create|cross|cstring|csv|current|current_catalog|current_date|current_role|current_schema|current_time|current_timestamp|current_user|cursor|cycle|data|database|date|daterange|day|deallocate|dec|decimal|declare|default|defaults|deferrable|deferred|definer|delete|delimiter|delimiters|desc|dictionary|disable|discard|distinct|do|document|domain|double|drop|each|else|enable|encoding|encrypted|end|enum|escape|event|event_trigger|except|exclude|excluding|exclusive|execute|exists|explain|extension|external|extract|false|family|fdw_handler|fetch|first|float|float4|float8|following|for|force|foreign|forward|freeze|from|full|function|functions|global|grant|granted|greatest|group|gtsvector|handler|having|header|hold|hour|identity|if|ilike|immediate|immutable|implicit|in|including|increment|index|indexes|inet|inherit|inherits|initially|inline|inner|inout|input|insensitive|insert|instead|int|int2|int2vector|int4|int4range|int8|int8range|integer|internal|intersect|interval|into|invoker|is|isnull|isolation|join|json|key|label|language|language_handler|large|last|lateral|lc_collate|lc_ctype|leading|leakproof|least|left|level|like|limit|line|listen|load|local|localtime|localtimestamp|location|lock|lseg|macaddr|mapping|match|materialized|maxvalue|minute|minvalue|mode|money|month|move|name|names|national|natural|nchar|next|no|none|not|nothing|notify|notnull|nowait|null|nullif|nulls|numeric|numrange|object|of|off|offset|oid|oids|oidvector|on|only|opaque|operator|option|options|or|order|out|outer|over|overlaps|overlay|owned|owner|parser|partial|partition|passing|password|path|pg_attribute|pg_auth_members|pg_authid|pg_class|pg_database|pg_node_tree|pg_proc|pg_type|placing|plans|point|polygon|position|preceding|precision|prepare|prepared|preserve|primary|prior|privileges|procedural|procedure|program|quote|range|read|real|reassign|recheck|record|recursive|ref|refcursor|references|refresh|regclass|regconfig|regdictionary|regoper|regoperator|regproc|regprocedure|regtype|reindex|relative|release|reltime|rename|repeatable|replace|replica|reset|restart|restrict|returning|returns|revoke|right|role|rollback|row|rows|rule|savepoint|schema|scroll|search|second|security|select|sequence|sequences|serializable|server|session|session_user|set|setof|share|show|similar|simple|smallint|smgr|snapshot|some|stable|standalone|start|statement|statistics|stdin|stdout|storage|strict|strip|substring|symmetric|sysid|system|table|tables|tablespace|temp|template|temporary|text|then|tid|time|timestamp|timestamptz|timetz|tinterval|to|trailing|transaction|treat|trigger|trim|true|truncate|trusted|tsquery|tsrange|tstzrange|tsvector|txid_snapshot|type|types|unbounded|uncommitted|unencrypted|union|unique|unknown|unlisten|unlogged|until|update|user|using|uuid|vacuum|valid|validate|validator|value|values|varbit|varchar|variadic|varying|verbose|version|view|void|volatile|when|where|whitespace|window|with|without|work|wrapper|write|xid|xml|xmlattributes|xmlconcat|xmlelement|xmlexists|xmlforest|xmlparse|xmlpi|xmlroot|xmlserialize|year|yes|zone\",t=\"RI_FKey_cascade_del|RI_FKey_cascade_upd|RI_FKey_check_ins|RI_FKey_check_upd|RI_FKey_noaction_del|RI_FKey_noaction_upd|RI_FKey_restrict_del|RI_FKey_restrict_upd|RI_FKey_setdefault_del|RI_FKey_setdefault_upd|RI_FKey_setnull_del|RI_FKey_setnull_upd|abbrev|abs|abstime|abstimeeq|abstimege|abstimegt|abstimein|abstimele|abstimelt|abstimene|abstimeout|abstimerecv|abstimesend|aclcontains|acldefault|aclexplode|aclinsert|aclitemeq|aclitemin|aclitemout|aclremove|acos|age|any_in|any_out|anyarray_in|anyarray_out|anyarray_recv|anyarray_send|anyelement_in|anyelement_out|anyenum_in|anyenum_out|anynonarray_in|anynonarray_out|anyrange_in|anyrange_out|anytextcat|area|areajoinsel|areasel|array_agg|array_agg_finalfn|array_agg_transfn|array_append|array_cat|array_dims|array_eq|array_fill|array_ge|array_gt|array_in|array_larger|array_le|array_length|array_lower|array_lt|array_ndims|array_ne|array_out|array_prepend|array_recv|array_remove|array_replace|array_send|array_smaller|array_to_json|array_to_string|array_typanalyze|array_upper|arraycontained|arraycontains|arraycontjoinsel|arraycontsel|arrayoverlap|ascii|ascii_to_mic|ascii_to_utf8|asin|atan|atan2|avg|big5_to_euc_tw|big5_to_mic|big5_to_utf8|bit_and|bit_in|bit_length|bit_or|bit_out|bit_recv|bit_send|bitand|bitcat|bitcmp|biteq|bitge|bitgt|bitle|bitlt|bitne|bitnot|bitor|bitshiftleft|bitshiftright|bittypmodin|bittypmodout|bitxor|bool|bool_and|bool_or|booland_statefunc|booleq|boolge|boolgt|boolin|boolle|boollt|boolne|boolor_statefunc|boolout|boolrecv|boolsend|box|box_above|box_above_eq|box_add|box_below|box_below_eq|box_center|box_contain|box_contain_pt|box_contained|box_distance|box_div|box_eq|box_ge|box_gt|box_in|box_intersect|box_le|box_left|box_lt|box_mul|box_out|box_overabove|box_overbelow|box_overlap|box_overleft|box_overright|box_recv|box_right|box_same|box_send|box_sub|bpchar_larger|bpchar_pattern_ge|bpchar_pattern_gt|bpchar_pattern_le|bpchar_pattern_lt|bpchar_smaller|bpcharcmp|bpchareq|bpcharge|bpchargt|bpchariclike|bpcharicnlike|bpcharicregexeq|bpcharicregexne|bpcharin|bpcharle|bpcharlike|bpcharlt|bpcharne|bpcharnlike|bpcharout|bpcharrecv|bpcharregexeq|bpcharregexne|bpcharsend|bpchartypmodin|bpchartypmodout|broadcast|btabstimecmp|btarraycmp|btbeginscan|btboolcmp|btbpchar_pattern_cmp|btbuild|btbuildempty|btbulkdelete|btcanreturn|btcharcmp|btcostestimate|btendscan|btfloat48cmp|btfloat4cmp|btfloat4sortsupport|btfloat84cmp|btfloat8cmp|btfloat8sortsupport|btgetbitmap|btgettuple|btinsert|btint24cmp|btint28cmp|btint2cmp|btint2sortsupport|btint42cmp|btint48cmp|btint4cmp|btint4sortsupport|btint82cmp|btint84cmp|btint8cmp|btint8sortsupport|btmarkpos|btnamecmp|btnamesortsupport|btoidcmp|btoidsortsupport|btoidvectorcmp|btoptions|btrecordcmp|btreltimecmp|btrescan|btrestrpos|btrim|bttext_pattern_cmp|bttextcmp|bttidcmp|bttintervalcmp|btvacuumcleanup|bytea_string_agg_finalfn|bytea_string_agg_transfn|byteacat|byteacmp|byteaeq|byteage|byteagt|byteain|byteale|bytealike|bytealt|byteane|byteanlike|byteaout|bytearecv|byteasend|cash_cmp|cash_div_cash|cash_div_flt4|cash_div_flt8|cash_div_int2|cash_div_int4|cash_eq|cash_ge|cash_gt|cash_in|cash_le|cash_lt|cash_mi|cash_mul_flt4|cash_mul_flt8|cash_mul_int2|cash_mul_int4|cash_ne|cash_out|cash_pl|cash_recv|cash_send|cash_words|cashlarger|cashsmaller|cbrt|ceil|ceiling|center|char|char_length|character_length|chareq|charge|chargt|charin|charle|charlt|charne|charout|charrecv|charsend|chr|cideq|cidin|cidout|cidr|cidr_in|cidr_out|cidr_recv|cidr_send|cidrecv|cidsend|circle|circle_above|circle_add_pt|circle_below|circle_center|circle_contain|circle_contain_pt|circle_contained|circle_distance|circle_div_pt|circle_eq|circle_ge|circle_gt|circle_in|circle_le|circle_left|circle_lt|circle_mul_pt|circle_ne|circle_out|circle_overabove|circle_overbelow|circle_overlap|circle_overleft|circle_overright|circle_recv|circle_right|circle_same|circle_send|circle_sub_pt|clock_timestamp|close_lb|close_ls|close_lseg|close_pb|close_pl|close_ps|close_sb|close_sl|col_description|concat|concat_ws|contjoinsel|contsel|convert|convert_from|convert_to|corr|cos|cot|count|covar_pop|covar_samp|cstring_in|cstring_out|cstring_recv|cstring_send|cume_dist|current_database|current_query|current_schema|current_schemas|current_setting|current_user|currtid|currtid2|currval|cursor_to_xml|cursor_to_xmlschema|database_to_xml|database_to_xml_and_xmlschema|database_to_xmlschema|date|date_cmp|date_cmp_timestamp|date_cmp_timestamptz|date_eq|date_eq_timestamp|date_eq_timestamptz|date_ge|date_ge_timestamp|date_ge_timestamptz|date_gt|date_gt_timestamp|date_gt_timestamptz|date_in|date_larger|date_le|date_le_timestamp|date_le_timestamptz|date_lt|date_lt_timestamp|date_lt_timestamptz|date_mi|date_mi_interval|date_mii|date_ne|date_ne_timestamp|date_ne_timestamptz|date_out|date_part|date_pl_interval|date_pli|date_recv|date_send|date_smaller|date_sortsupport|date_trunc|daterange|daterange_canonical|daterange_subdiff|datetime_pl|datetimetz_pl|dcbrt|decode|degrees|dense_rank|dexp|diagonal|diameter|dispell_init|dispell_lexize|dist_cpoly|dist_lb|dist_pb|dist_pc|dist_pl|dist_ppath|dist_ps|dist_sb|dist_sl|div|dlog1|dlog10|domain_in|domain_recv|dpow|dround|dsimple_init|dsimple_lexize|dsnowball_init|dsnowball_lexize|dsqrt|dsynonym_init|dsynonym_lexize|dtrunc|elem_contained_by_range|encode|enum_cmp|enum_eq|enum_first|enum_ge|enum_gt|enum_in|enum_larger|enum_last|enum_le|enum_lt|enum_ne|enum_out|enum_range|enum_recv|enum_send|enum_smaller|eqjoinsel|eqsel|euc_cn_to_mic|euc_cn_to_utf8|euc_jis_2004_to_shift_jis_2004|euc_jis_2004_to_utf8|euc_jp_to_mic|euc_jp_to_sjis|euc_jp_to_utf8|euc_kr_to_mic|euc_kr_to_utf8|euc_tw_to_big5|euc_tw_to_mic|euc_tw_to_utf8|event_trigger_in|event_trigger_out|every|exp|factorial|family|fdw_handler_in|fdw_handler_out|first_value|float4|float48div|float48eq|float48ge|float48gt|float48le|float48lt|float48mi|float48mul|float48ne|float48pl|float4_accum|float4abs|float4div|float4eq|float4ge|float4gt|float4in|float4larger|float4le|float4lt|float4mi|float4mul|float4ne|float4out|float4pl|float4recv|float4send|float4smaller|float4um|float4up|float8|float84div|float84eq|float84ge|float84gt|float84le|float84lt|float84mi|float84mul|float84ne|float84pl|float8_accum|float8_avg|float8_corr|float8_covar_pop|float8_covar_samp|float8_regr_accum|float8_regr_avgx|float8_regr_avgy|float8_regr_intercept|float8_regr_r2|float8_regr_slope|float8_regr_sxx|float8_regr_sxy|float8_regr_syy|float8_stddev_pop|float8_stddev_samp|float8_var_pop|float8_var_samp|float8abs|float8div|float8eq|float8ge|float8gt|float8in|float8larger|float8le|float8lt|float8mi|float8mul|float8ne|float8out|float8pl|float8recv|float8send|float8smaller|float8um|float8up|floor|flt4_mul_cash|flt8_mul_cash|fmgr_c_validator|fmgr_internal_validator|fmgr_sql_validator|format|format_type|gb18030_to_utf8|gbk_to_utf8|generate_series|generate_subscripts|get_bit|get_byte|get_current_ts_config|getdatabaseencoding|getpgusername|gin_cmp_prefix|gin_cmp_tslexeme|gin_extract_tsquery|gin_extract_tsvector|gin_tsquery_consistent|ginarrayconsistent|ginarrayextract|ginbeginscan|ginbuild|ginbuildempty|ginbulkdelete|gincostestimate|ginendscan|gingetbitmap|gininsert|ginmarkpos|ginoptions|ginqueryarrayextract|ginrescan|ginrestrpos|ginvacuumcleanup|gist_box_compress|gist_box_consistent|gist_box_decompress|gist_box_penalty|gist_box_picksplit|gist_box_same|gist_box_union|gist_circle_compress|gist_circle_consistent|gist_point_compress|gist_point_consistent|gist_point_distance|gist_poly_compress|gist_poly_consistent|gistbeginscan|gistbuild|gistbuildempty|gistbulkdelete|gistcostestimate|gistendscan|gistgetbitmap|gistgettuple|gistinsert|gistmarkpos|gistoptions|gistrescan|gistrestrpos|gistvacuumcleanup|gtsquery_compress|gtsquery_consistent|gtsquery_decompress|gtsquery_penalty|gtsquery_picksplit|gtsquery_same|gtsquery_union|gtsvector_compress|gtsvector_consistent|gtsvector_decompress|gtsvector_penalty|gtsvector_picksplit|gtsvector_same|gtsvector_union|gtsvectorin|gtsvectorout|has_any_column_privilege|has_column_privilege|has_database_privilege|has_foreign_data_wrapper_privilege|has_function_privilege|has_language_privilege|has_schema_privilege|has_sequence_privilege|has_server_privilege|has_table_privilege|has_tablespace_privilege|has_type_privilege|hash_aclitem|hash_array|hash_numeric|hash_range|hashbeginscan|hashbpchar|hashbuild|hashbuildempty|hashbulkdelete|hashchar|hashcostestimate|hashendscan|hashenum|hashfloat4|hashfloat8|hashgetbitmap|hashgettuple|hashinet|hashinsert|hashint2|hashint2vector|hashint4|hashint8|hashmacaddr|hashmarkpos|hashname|hashoid|hashoidvector|hashoptions|hashrescan|hashrestrpos|hashtext|hashvacuumcleanup|hashvarlena|height|host|hostmask|iclikejoinsel|iclikesel|icnlikejoinsel|icnlikesel|icregexeqjoinsel|icregexeqsel|icregexnejoinsel|icregexnesel|inet_client_addr|inet_client_port|inet_in|inet_out|inet_recv|inet_send|inet_server_addr|inet_server_port|inetand|inetmi|inetmi_int8|inetnot|inetor|inetpl|initcap|int2|int24div|int24eq|int24ge|int24gt|int24le|int24lt|int24mi|int24mul|int24ne|int24pl|int28div|int28eq|int28ge|int28gt|int28le|int28lt|int28mi|int28mul|int28ne|int28pl|int2_accum|int2_avg_accum|int2_mul_cash|int2_sum|int2abs|int2and|int2div|int2eq|int2ge|int2gt|int2in|int2larger|int2le|int2lt|int2mi|int2mod|int2mul|int2ne|int2not|int2or|int2out|int2pl|int2recv|int2send|int2shl|int2shr|int2smaller|int2um|int2up|int2vectoreq|int2vectorin|int2vectorout|int2vectorrecv|int2vectorsend|int2xor|int4|int42div|int42eq|int42ge|int42gt|int42le|int42lt|int42mi|int42mul|int42ne|int42pl|int48div|int48eq|int48ge|int48gt|int48le|int48lt|int48mi|int48mul|int48ne|int48pl|int4_accum|int4_avg_accum|int4_mul_cash|int4_sum|int4abs|int4and|int4div|int4eq|int4ge|int4gt|int4in|int4inc|int4larger|int4le|int4lt|int4mi|int4mod|int4mul|int4ne|int4not|int4or|int4out|int4pl|int4range|int4range_canonical|int4range_subdiff|int4recv|int4send|int4shl|int4shr|int4smaller|int4um|int4up|int4xor|int8|int82div|int82eq|int82ge|int82gt|int82le|int82lt|int82mi|int82mul|int82ne|int82pl|int84div|int84eq|int84ge|int84gt|int84le|int84lt|int84mi|int84mul|int84ne|int84pl|int8_accum|int8_avg|int8_avg_accum|int8_sum|int8abs|int8and|int8div|int8eq|int8ge|int8gt|int8in|int8inc|int8inc_any|int8inc_float8_float8|int8larger|int8le|int8lt|int8mi|int8mod|int8mul|int8ne|int8not|int8or|int8out|int8pl|int8pl_inet|int8range|int8range_canonical|int8range_subdiff|int8recv|int8send|int8shl|int8shr|int8smaller|int8um|int8up|int8xor|integer_pl_date|inter_lb|inter_sb|inter_sl|internal_in|internal_out|interval_accum|interval_avg|interval_cmp|interval_div|interval_eq|interval_ge|interval_gt|interval_hash|interval_in|interval_larger|interval_le|interval_lt|interval_mi|interval_mul|interval_ne|interval_out|interval_pl|interval_pl_date|interval_pl_time|interval_pl_timestamp|interval_pl_timestamptz|interval_pl_timetz|interval_recv|interval_send|interval_smaller|interval_transform|interval_um|intervaltypmodin|intervaltypmodout|intinterval|isclosed|isempty|isfinite|ishorizontal|iso8859_1_to_utf8|iso8859_to_utf8|iso_to_koi8r|iso_to_mic|iso_to_win1251|iso_to_win866|isopen|isparallel|isperp|isvertical|johab_to_utf8|json_agg|json_agg_finalfn|json_agg_transfn|json_array_element|json_array_element_text|json_array_elements|json_array_length|json_each|json_each_text|json_extract_path|json_extract_path_op|json_extract_path_text|json_extract_path_text_op|json_in|json_object_field|json_object_field_text|json_object_keys|json_out|json_populate_record|json_populate_recordset|json_recv|json_send|justify_days|justify_hours|justify_interval|koi8r_to_iso|koi8r_to_mic|koi8r_to_utf8|koi8r_to_win1251|koi8r_to_win866|koi8u_to_utf8|lag|language_handler_in|language_handler_out|last_value|lastval|latin1_to_mic|latin2_to_mic|latin2_to_win1250|latin3_to_mic|latin4_to_mic|lead|left|length|like|like_escape|likejoinsel|likesel|line|line_distance|line_eq|line_horizontal|line_in|line_interpt|line_intersect|line_out|line_parallel|line_perp|line_recv|line_send|line_vertical|ln|lo_close|lo_creat|lo_create|lo_export|lo_import|lo_lseek|lo_lseek64|lo_open|lo_tell|lo_tell64|lo_truncate|lo_truncate64|lo_unlink|log|loread|lower|lower_inc|lower_inf|lowrite|lpad|lseg|lseg_center|lseg_distance|lseg_eq|lseg_ge|lseg_gt|lseg_horizontal|lseg_in|lseg_interpt|lseg_intersect|lseg_le|lseg_length|lseg_lt|lseg_ne|lseg_out|lseg_parallel|lseg_perp|lseg_recv|lseg_send|lseg_vertical|ltrim|macaddr_and|macaddr_cmp|macaddr_eq|macaddr_ge|macaddr_gt|macaddr_in|macaddr_le|macaddr_lt|macaddr_ne|macaddr_not|macaddr_or|macaddr_out|macaddr_recv|macaddr_send|makeaclitem|masklen|max|md5|mic_to_ascii|mic_to_big5|mic_to_euc_cn|mic_to_euc_jp|mic_to_euc_kr|mic_to_euc_tw|mic_to_iso|mic_to_koi8r|mic_to_latin1|mic_to_latin2|mic_to_latin3|mic_to_latin4|mic_to_sjis|mic_to_win1250|mic_to_win1251|mic_to_win866|min|mktinterval|mod|money|mul_d_interval|name|nameeq|namege|namegt|nameiclike|nameicnlike|nameicregexeq|nameicregexne|namein|namele|namelike|namelt|namene|namenlike|nameout|namerecv|nameregexeq|nameregexne|namesend|neqjoinsel|neqsel|netmask|network|network_cmp|network_eq|network_ge|network_gt|network_le|network_lt|network_ne|network_sub|network_subeq|network_sup|network_supeq|nextval|nlikejoinsel|nlikesel|notlike|now|npoints|nth_value|ntile|numeric_abs|numeric_accum|numeric_add|numeric_avg|numeric_avg_accum|numeric_cmp|numeric_div|numeric_div_trunc|numeric_eq|numeric_exp|numeric_fac|numeric_ge|numeric_gt|numeric_in|numeric_inc|numeric_larger|numeric_le|numeric_ln|numeric_log|numeric_lt|numeric_mod|numeric_mul|numeric_ne|numeric_out|numeric_power|numeric_recv|numeric_send|numeric_smaller|numeric_sqrt|numeric_stddev_pop|numeric_stddev_samp|numeric_sub|numeric_transform|numeric_uminus|numeric_uplus|numeric_var_pop|numeric_var_samp|numerictypmodin|numerictypmodout|numnode|numrange|numrange_subdiff|obj_description|octet_length|oid|oideq|oidge|oidgt|oidin|oidlarger|oidle|oidlt|oidne|oidout|oidrecv|oidsend|oidsmaller|oidvectoreq|oidvectorge|oidvectorgt|oidvectorin|oidvectorle|oidvectorlt|oidvectorne|oidvectorout|oidvectorrecv|oidvectorsend|oidvectortypes|on_pb|on_pl|on_ppath|on_ps|on_sb|on_sl|opaque_in|opaque_out|overlaps|overlay|path|path_add|path_add_pt|path_center|path_contain_pt|path_distance|path_div_pt|path_in|path_inter|path_length|path_mul_pt|path_n_eq|path_n_ge|path_n_gt|path_n_le|path_n_lt|path_npoints|path_out|path_recv|path_send|path_sub_pt|pclose|percent_rank|pg_advisory_lock|pg_advisory_lock_shared|pg_advisory_unlock|pg_advisory_unlock_all|pg_advisory_unlock_shared|pg_advisory_xact_lock|pg_advisory_xact_lock_shared|pg_available_extension_versions|pg_available_extensions|pg_backend_pid|pg_backup_start_time|pg_cancel_backend|pg_char_to_encoding|pg_client_encoding|pg_collation_for|pg_collation_is_visible|pg_column_is_updatable|pg_column_size|pg_conf_load_time|pg_conversion_is_visible|pg_create_restore_point|pg_current_xlog_insert_location|pg_current_xlog_location|pg_cursor|pg_database_size|pg_describe_object|pg_encoding_max_length|pg_encoding_to_char|pg_event_trigger_dropped_objects|pg_export_snapshot|pg_extension_config_dump|pg_extension_update_paths|pg_function_is_visible|pg_get_constraintdef|pg_get_expr|pg_get_function_arguments|pg_get_function_identity_arguments|pg_get_function_result|pg_get_functiondef|pg_get_indexdef|pg_get_keywords|pg_get_multixact_members|pg_get_ruledef|pg_get_serial_sequence|pg_get_triggerdef|pg_get_userbyid|pg_get_viewdef|pg_has_role|pg_identify_object|pg_indexes_size|pg_is_in_backup|pg_is_in_recovery|pg_is_other_temp_schema|pg_is_xlog_replay_paused|pg_last_xact_replay_timestamp|pg_last_xlog_receive_location|pg_last_xlog_replay_location|pg_listening_channels|pg_lock_status|pg_ls_dir|pg_my_temp_schema|pg_node_tree_in|pg_node_tree_out|pg_node_tree_recv|pg_node_tree_send|pg_notify|pg_opclass_is_visible|pg_operator_is_visible|pg_opfamily_is_visible|pg_options_to_table|pg_postmaster_start_time|pg_prepared_statement|pg_prepared_xact|pg_read_binary_file|pg_read_file|pg_relation_filenode|pg_relation_filepath|pg_relation_is_updatable|pg_relation_size|pg_reload_conf|pg_rotate_logfile|pg_sequence_parameters|pg_show_all_settings|pg_size_pretty|pg_sleep|pg_start_backup|pg_stat_clear_snapshot|pg_stat_file|pg_stat_get_activity|pg_stat_get_analyze_count|pg_stat_get_autoanalyze_count|pg_stat_get_autovacuum_count|pg_stat_get_backend_activity|pg_stat_get_backend_activity_start|pg_stat_get_backend_client_addr|pg_stat_get_backend_client_port|pg_stat_get_backend_dbid|pg_stat_get_backend_idset|pg_stat_get_backend_pid|pg_stat_get_backend_start|pg_stat_get_backend_userid|pg_stat_get_backend_waiting|pg_stat_get_backend_xact_start|pg_stat_get_bgwriter_buf_written_checkpoints|pg_stat_get_bgwriter_buf_written_clean|pg_stat_get_bgwriter_maxwritten_clean|pg_stat_get_bgwriter_requested_checkpoints|pg_stat_get_bgwriter_stat_reset_time|pg_stat_get_bgwriter_timed_checkpoints|pg_stat_get_blocks_fetched|pg_stat_get_blocks_hit|pg_stat_get_buf_alloc|pg_stat_get_buf_fsync_backend|pg_stat_get_buf_written_backend|pg_stat_get_checkpoint_sync_time|pg_stat_get_checkpoint_write_time|pg_stat_get_db_blk_read_time|pg_stat_get_db_blk_write_time|pg_stat_get_db_blocks_fetched|pg_stat_get_db_blocks_hit|pg_stat_get_db_conflict_all|pg_stat_get_db_conflict_bufferpin|pg_stat_get_db_conflict_lock|pg_stat_get_db_conflict_snapshot|pg_stat_get_db_conflict_startup_deadlock|pg_stat_get_db_conflict_tablespace|pg_stat_get_db_deadlocks|pg_stat_get_db_numbackends|pg_stat_get_db_stat_reset_time|pg_stat_get_db_temp_bytes|pg_stat_get_db_temp_files|pg_stat_get_db_tuples_deleted|pg_stat_get_db_tuples_fetched|pg_stat_get_db_tuples_inserted|pg_stat_get_db_tuples_returned|pg_stat_get_db_tuples_updated|pg_stat_get_db_xact_commit|pg_stat_get_db_xact_rollback|pg_stat_get_dead_tuples|pg_stat_get_function_calls|pg_stat_get_function_self_time|pg_stat_get_function_total_time|pg_stat_get_last_analyze_time|pg_stat_get_last_autoanalyze_time|pg_stat_get_last_autovacuum_time|pg_stat_get_last_vacuum_time|pg_stat_get_live_tuples|pg_stat_get_numscans|pg_stat_get_tuples_deleted|pg_stat_get_tuples_fetched|pg_stat_get_tuples_hot_updated|pg_stat_get_tuples_inserted|pg_stat_get_tuples_returned|pg_stat_get_tuples_updated|pg_stat_get_vacuum_count|pg_stat_get_wal_senders|pg_stat_get_xact_blocks_fetched|pg_stat_get_xact_blocks_hit|pg_stat_get_xact_function_calls|pg_stat_get_xact_function_self_time|pg_stat_get_xact_function_total_time|pg_stat_get_xact_numscans|pg_stat_get_xact_tuples_deleted|pg_stat_get_xact_tuples_fetched|pg_stat_get_xact_tuples_hot_updated|pg_stat_get_xact_tuples_inserted|pg_stat_get_xact_tuples_returned|pg_stat_get_xact_tuples_updated|pg_stat_reset|pg_stat_reset_shared|pg_stat_reset_single_function_counters|pg_stat_reset_single_table_counters|pg_stop_backup|pg_switch_xlog|pg_table_is_visible|pg_table_size|pg_tablespace_databases|pg_tablespace_location|pg_tablespace_size|pg_terminate_backend|pg_timezone_abbrevs|pg_timezone_names|pg_total_relation_size|pg_trigger_depth|pg_try_advisory_lock|pg_try_advisory_lock_shared|pg_try_advisory_xact_lock|pg_try_advisory_xact_lock_shared|pg_ts_config_is_visible|pg_ts_dict_is_visible|pg_ts_parser_is_visible|pg_ts_template_is_visible|pg_type_is_visible|pg_typeof|pg_xlog_location_diff|pg_xlog_replay_pause|pg_xlog_replay_resume|pg_xlogfile_name|pg_xlogfile_name_offset|pi|plainto_tsquery|plpgsql_call_handler|plpgsql_inline_handler|plpgsql_validator|point|point_above|point_add|point_below|point_distance|point_div|point_eq|point_horiz|point_in|point_left|point_mul|point_ne|point_out|point_recv|point_right|point_send|point_sub|point_vert|poly_above|poly_below|poly_center|poly_contain|poly_contain_pt|poly_contained|poly_distance|poly_in|poly_left|poly_npoints|poly_out|poly_overabove|poly_overbelow|poly_overlap|poly_overleft|poly_overright|poly_recv|poly_right|poly_same|poly_send|polygon|popen|position|positionjoinsel|positionsel|postgresql_fdw_validator|pow|power|prsd_end|prsd_headline|prsd_lextype|prsd_nexttoken|prsd_start|pt_contained_circle|pt_contained_poly|query_to_xml|query_to_xml_and_xmlschema|query_to_xmlschema|querytree|quote_ident|quote_literal|quote_nullable|radians|radius|random|range_adjacent|range_after|range_before|range_cmp|range_contained_by|range_contains|range_contains_elem|range_eq|range_ge|range_gist_compress|range_gist_consistent|range_gist_decompress|range_gist_penalty|range_gist_picksplit|range_gist_same|range_gist_union|range_gt|range_in|range_intersect|range_le|range_lt|range_minus|range_ne|range_out|range_overlaps|range_overleft|range_overright|range_recv|range_send|range_typanalyze|range_union|rangesel|rank|record_eq|record_ge|record_gt|record_in|record_le|record_lt|record_ne|record_out|record_recv|record_send|regclass|regclassin|regclassout|regclassrecv|regclasssend|regconfigin|regconfigout|regconfigrecv|regconfigsend|regdictionaryin|regdictionaryout|regdictionaryrecv|regdictionarysend|regexeqjoinsel|regexeqsel|regexnejoinsel|regexnesel|regexp_matches|regexp_replace|regexp_split_to_array|regexp_split_to_table|regoperatorin|regoperatorout|regoperatorrecv|regoperatorsend|regoperin|regoperout|regoperrecv|regopersend|regprocedurein|regprocedureout|regprocedurerecv|regproceduresend|regprocin|regprocout|regprocrecv|regprocsend|regr_avgx|regr_avgy|regr_count|regr_intercept|regr_r2|regr_slope|regr_sxx|regr_sxy|regr_syy|regtypein|regtypeout|regtyperecv|regtypesend|reltime|reltimeeq|reltimege|reltimegt|reltimein|reltimele|reltimelt|reltimene|reltimeout|reltimerecv|reltimesend|repeat|replace|reverse|right|round|row_number|row_to_json|rpad|rtrim|scalargtjoinsel|scalargtsel|scalarltjoinsel|scalarltsel|schema_to_xml|schema_to_xml_and_xmlschema|schema_to_xmlschema|session_user|set_bit|set_byte|set_config|set_masklen|setseed|setval|setweight|shell_in|shell_out|shift_jis_2004_to_euc_jis_2004|shift_jis_2004_to_utf8|shobj_description|sign|similar_escape|sin|sjis_to_euc_jp|sjis_to_mic|sjis_to_utf8|slope|smgreq|smgrin|smgrne|smgrout|spg_kd_choose|spg_kd_config|spg_kd_inner_consistent|spg_kd_picksplit|spg_quad_choose|spg_quad_config|spg_quad_inner_consistent|spg_quad_leaf_consistent|spg_quad_picksplit|spg_range_quad_choose|spg_range_quad_config|spg_range_quad_inner_consistent|spg_range_quad_leaf_consistent|spg_range_quad_picksplit|spg_text_choose|spg_text_config|spg_text_inner_consistent|spg_text_leaf_consistent|spg_text_picksplit|spgbeginscan|spgbuild|spgbuildempty|spgbulkdelete|spgcanreturn|spgcostestimate|spgendscan|spggetbitmap|spggettuple|spginsert|spgmarkpos|spgoptions|spgrescan|spgrestrpos|spgvacuumcleanup|split_part|sqrt|statement_timestamp|stddev|stddev_pop|stddev_samp|string_agg|string_agg_finalfn|string_agg_transfn|string_to_array|strip|strpos|substr|substring|sum|suppress_redundant_updates_trigger|table_to_xml|table_to_xml_and_xmlschema|table_to_xmlschema|tan|text|text_ge|text_gt|text_larger|text_le|text_lt|text_pattern_ge|text_pattern_gt|text_pattern_le|text_pattern_lt|text_smaller|textanycat|textcat|texteq|texticlike|texticnlike|texticregexeq|texticregexne|textin|textlen|textlike|textne|textnlike|textout|textrecv|textregexeq|textregexne|textsend|thesaurus_init|thesaurus_lexize|tideq|tidge|tidgt|tidin|tidlarger|tidle|tidlt|tidne|tidout|tidrecv|tidsend|tidsmaller|time_cmp|time_eq|time_ge|time_gt|time_hash|time_in|time_larger|time_le|time_lt|time_mi_interval|time_mi_time|time_ne|time_out|time_pl_interval|time_recv|time_send|time_smaller|time_transform|timedate_pl|timemi|timenow|timeofday|timepl|timestamp_cmp|timestamp_cmp_date|timestamp_cmp_timestamptz|timestamp_eq|timestamp_eq_date|timestamp_eq_timestamptz|timestamp_ge|timestamp_ge_date|timestamp_ge_timestamptz|timestamp_gt|timestamp_gt_date|timestamp_gt_timestamptz|timestamp_hash|timestamp_in|timestamp_larger|timestamp_le|timestamp_le_date|timestamp_le_timestamptz|timestamp_lt|timestamp_lt_date|timestamp_lt_timestamptz|timestamp_mi|timestamp_mi_interval|timestamp_ne|timestamp_ne_date|timestamp_ne_timestamptz|timestamp_out|timestamp_pl_interval|timestamp_recv|timestamp_send|timestamp_smaller|timestamp_sortsupport|timestamp_transform|timestamptypmodin|timestamptypmodout|timestamptz_cmp|timestamptz_cmp_date|timestamptz_cmp_timestamp|timestamptz_eq|timestamptz_eq_date|timestamptz_eq_timestamp|timestamptz_ge|timestamptz_ge_date|timestamptz_ge_timestamp|timestamptz_gt|timestamptz_gt_date|timestamptz_gt_timestamp|timestamptz_in|timestamptz_larger|timestamptz_le|timestamptz_le_date|timestamptz_le_timestamp|timestamptz_lt|timestamptz_lt_date|timestamptz_lt_timestamp|timestamptz_mi|timestamptz_mi_interval|timestamptz_ne|timestamptz_ne_date|timestamptz_ne_timestamp|timestamptz_out|timestamptz_pl_interval|timestamptz_recv|timestamptz_send|timestamptz_smaller|timestamptztypmodin|timestamptztypmodout|timetypmodin|timetypmodout|timetz_cmp|timetz_eq|timetz_ge|timetz_gt|timetz_hash|timetz_in|timetz_larger|timetz_le|timetz_lt|timetz_mi_interval|timetz_ne|timetz_out|timetz_pl_interval|timetz_recv|timetz_send|timetz_smaller|timetzdate_pl|timetztypmodin|timetztypmodout|timezone|tinterval|tintervalct|tintervalend|tintervaleq|tintervalge|tintervalgt|tintervalin|tintervalle|tintervalleneq|tintervallenge|tintervallengt|tintervallenle|tintervallenlt|tintervallenne|tintervallt|tintervalne|tintervalout|tintervalov|tintervalrecv|tintervalrel|tintervalsame|tintervalsend|tintervalstart|to_ascii|to_char|to_date|to_hex|to_json|to_number|to_timestamp|to_tsquery|to_tsvector|transaction_timestamp|translate|trigger_in|trigger_out|trunc|ts_debug|ts_headline|ts_lexize|ts_match_qv|ts_match_tq|ts_match_tt|ts_match_vq|ts_parse|ts_rank|ts_rank_cd|ts_rewrite|ts_stat|ts_token_type|ts_typanalyze|tsmatchjoinsel|tsmatchsel|tsq_mcontained|tsq_mcontains|tsquery_and|tsquery_cmp|tsquery_eq|tsquery_ge|tsquery_gt|tsquery_le|tsquery_lt|tsquery_ne|tsquery_not|tsquery_or|tsqueryin|tsqueryout|tsqueryrecv|tsquerysend|tsrange|tsrange_subdiff|tstzrange|tstzrange_subdiff|tsvector_cmp|tsvector_concat|tsvector_eq|tsvector_ge|tsvector_gt|tsvector_le|tsvector_lt|tsvector_ne|tsvector_update_trigger|tsvector_update_trigger_column|tsvectorin|tsvectorout|tsvectorrecv|tsvectorsend|txid_current|txid_current_snapshot|txid_snapshot_in|txid_snapshot_out|txid_snapshot_recv|txid_snapshot_send|txid_snapshot_xip|txid_snapshot_xmax|txid_snapshot_xmin|txid_visible_in_snapshot|uhc_to_utf8|unique_key_recheck|unknownin|unknownout|unknownrecv|unknownsend|unnest|upper|upper_inc|upper_inf|utf8_to_ascii|utf8_to_big5|utf8_to_euc_cn|utf8_to_euc_jis_2004|utf8_to_euc_jp|utf8_to_euc_kr|utf8_to_euc_tw|utf8_to_gb18030|utf8_to_gbk|utf8_to_iso8859|utf8_to_iso8859_1|utf8_to_johab|utf8_to_koi8r|utf8_to_koi8u|utf8_to_shift_jis_2004|utf8_to_sjis|utf8_to_uhc|utf8_to_win|uuid_cmp|uuid_eq|uuid_ge|uuid_gt|uuid_hash|uuid_in|uuid_le|uuid_lt|uuid_ne|uuid_out|uuid_recv|uuid_send|var_pop|var_samp|varbit_in|varbit_out|varbit_recv|varbit_send|varbit_transform|varbitcmp|varbiteq|varbitge|varbitgt|varbitle|varbitlt|varbitne|varbittypmodin|varbittypmodout|varchar_transform|varcharin|varcharout|varcharrecv|varcharsend|varchartypmodin|varchartypmodout|variance|version|void_in|void_out|void_recv|void_send|width|width_bucket|win1250_to_latin2|win1250_to_mic|win1251_to_iso|win1251_to_koi8r|win1251_to_mic|win1251_to_win866|win866_to_iso|win866_to_koi8r|win866_to_mic|win866_to_win1251|win_to_utf8|xideq|xideqint4|xidin|xidout|xidrecv|xidsend|xml|xml_in|xml_is_well_formed|xml_is_well_formed_content|xml_is_well_formed_document|xml_out|xml_recv|xml_send|xmlagg|xmlcomment|xmlconcat2|xmlexists|xmlvalidate|xpath|xpath_exists\",n=this.createKeywordMapper({\"support.function\":t,keyword:e},\"identifier\",!0),r=[{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"variable.language\",regex:'\".*?\"'},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:n,regex:\"[a-zA-Z_][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|!!|!~|!~\\\\*|!~~|!~~\\\\*|#|##|#<|#<=|#<>|#=|#>|#>=|%|\\\\&|\\\\&\\\\&|\\\\&<|\\\\&<\\\\||\\\\&>|\\\\*|\\\\+|\\\\-|/|<|<#>|<\\\\->|<<|<<=|<<\\\\||<=|<>|<\\\\?>|<@|<\\\\^|=|>|>=|>>|>>=|>\\\\^|\\\\?#|\\\\?\\\\-|\\\\?\\\\-\\\\||\\\\?\\\\||\\\\?\\\\|\\\\||@|@\\\\-@|@>|@@|@@@|\\\\^|\\\\||\\\\|\\\\&>|\\\\|/|\\\\|>>|\\\\|\\\\||\\\\|\\\\|/|~|~\\\\*|~<=~|~<~|~=|~>=~|~>~|~~|~~\\\\*\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"text\",regex:\"\\\\s+\"}];this.$rules={start:[{token:\"comment\",regex:\"--.*$\"},s.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"keyword.statementBegin\",regex:\"^[a-zA-Z]+\",next:\"statement\"},{token:\"support.buildin\",regex:\"^\\\\\\\\[\\\\S]+.*$\"}],statement:[{token:\"comment\",regex:\"--.*$\"},{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"commentStatement\"},{token:\"statementEnd\",regex:\";\",next:\"start\"},{token:\"string\",regex:\"\\\\$perl\\\\$\",next:\"perl-start\"},{token:\"string\",regex:\"\\\\$python\\\\$\",next:\"python-start\"},{token:\"string\",regex:\"\\\\$json\\\\$\",next:\"json-start\"},{token:\"string\",regex:\"\\\\$(js|javascript)\\\\$\",next:\"javascript-start\"},{token:\"string\",regex:\"\\\\$[\\\\w_0-9]*\\\\$$\",next:\"dollarSql\"},{token:\"string\",regex:\"\\\\$[\\\\w_0-9]*\\\\$\",next:\"dollarStatementString\"}].concat(r),dollarSql:[{token:\"comment\",regex:\"--.*$\"},{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"commentDollarSql\"},{token:\"string\",regex:\"^\\\\$[\\\\w_0-9]*\\\\$\",next:\"statement\"},{token:\"string\",regex:\"\\\\$[\\\\w_0-9]*\\\\$\",next:\"dollarSqlString\"}].concat(r),comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],commentStatement:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"statement\"},{token:\"comment\",regex:\".+\"}],commentDollarSql:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"dollarSql\"},{token:\"comment\",regex:\".+\"}],dollarStatementString:[{token:\"string\",regex:\".*?\\\\$[\\\\w_0-9]*\\\\$\",next:\"statement\"},{token:\"string\",regex:\".+\"}],dollarSqlString:[{token:\"string\",regex:\".*?\\\\$[\\\\w_0-9]*\\\\$\",next:\"dollarSql\"},{token:\"string\",regex:\".+\"}]},this.embedRules(s,\"doc-\",[s.getEndRule(\"start\")]),this.embedRules(u,\"perl-\",[{token:\"string\",regex:\"\\\\$perl\\\\$\",next:\"statement\"}]),this.embedRules(a,\"python-\",[{token:\"string\",regex:\"\\\\$python\\\\$\",next:\"statement\"}]),this.embedRules(f,\"json-\",[{token:\"string\",regex:\"\\\\$json\\\\$\",next:\"statement\"}]),this.embedRules(l,\"javascript-\",[{token:\"string\",regex:\"\\\\$(js|javascript)\\\\$\",next:\"statement\"}])};r.inherits(c,o),t.PgsqlHighlightRules=c}),ace.define(\"ace/mode/pgsql\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/pgsql_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../mode/text\").Mode,s=e(\"./pgsql_highlight_rules\").PgsqlHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart=\"--\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){return e==\"start\"||e==\"keyword.statementEnd\"?\"\":this.$getIndent(t)},this.$id=\"ace/mode/pgsql\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict/mode-php.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/php_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=e(\"./html_highlight_rules\").HtmlHighlightRules,a=function(){var e=s,t=i.arrayToMap(\"abs|acos|acosh|addcslashes|addslashes|aggregate|aggregate_info|aggregate_methods|aggregate_methods_by_list|aggregate_methods_by_regexp|aggregate_properties|aggregate_properties_by_list|aggregate_properties_by_regexp|aggregation_info|amqpconnection|amqpexchange|amqpqueue|apache_child_terminate|apache_get_modules|apache_get_version|apache_getenv|apache_lookup_uri|apache_note|apache_request_headers|apache_reset_timeout|apache_response_headers|apache_setenv|apc_add|apc_bin_dump|apc_bin_dumpfile|apc_bin_load|apc_bin_loadfile|apc_cache_info|apc_cas|apc_clear_cache|apc_compile_file|apc_dec|apc_define_constants|apc_delete|apc_delete_file|apc_exists|apc_fetch|apc_inc|apc_load_constants|apc_sma_info|apc_store|apciterator|apd_breakpoint|apd_callstack|apd_clunk|apd_continue|apd_croak|apd_dump_function_table|apd_dump_persistent_resources|apd_dump_regular_resources|apd_echo|apd_get_active_symbols|apd_set_pprof_trace|apd_set_session|apd_set_session_trace|apd_set_session_trace_socket|appenditerator|array|array_change_key_case|array_chunk|array_combine|array_count_values|array_diff|array_diff_assoc|array_diff_key|array_diff_uassoc|array_diff_ukey|array_fill|array_fill_keys|array_filter|array_flip|array_intersect|array_intersect_assoc|array_intersect_key|array_intersect_uassoc|array_intersect_ukey|array_key_exists|array_keys|array_map|array_merge|array_merge_recursive|array_multisort|array_pad|array_pop|array_product|array_push|array_rand|array_reduce|array_replace|array_replace_recursive|array_reverse|array_search|array_shift|array_slice|array_splice|array_sum|array_udiff|array_udiff_assoc|array_udiff_uassoc|array_uintersect|array_uintersect_assoc|array_uintersect_uassoc|array_unique|array_unshift|array_values|array_walk|array_walk_recursive|arrayaccess|arrayiterator|arrayobject|arsort|asin|asinh|asort|assert|assert_options|atan|atan2|atanh|audioproperties|badfunctioncallexception|badmethodcallexception|base64_decode|base64_encode|base_convert|basename|bbcode_add_element|bbcode_add_smiley|bbcode_create|bbcode_destroy|bbcode_parse|bbcode_set_arg_parser|bbcode_set_flags|bcadd|bccomp|bcdiv|bcmod|bcmul|bcompiler_load|bcompiler_load_exe|bcompiler_parse_class|bcompiler_read|bcompiler_write_class|bcompiler_write_constant|bcompiler_write_exe_footer|bcompiler_write_file|bcompiler_write_footer|bcompiler_write_function|bcompiler_write_functions_from_file|bcompiler_write_header|bcompiler_write_included_filename|bcpow|bcpowmod|bcscale|bcsqrt|bcsub|bin2hex|bind_textdomain_codeset|bindec|bindtextdomain|bson_decode|bson_encode|bumpValue|bzclose|bzcompress|bzdecompress|bzerrno|bzerror|bzerrstr|bzflush|bzopen|bzread|bzwrite|cachingiterator|cairo|cairo_create|cairo_font_face_get_type|cairo_font_face_status|cairo_font_options_create|cairo_font_options_equal|cairo_font_options_get_antialias|cairo_font_options_get_hint_metrics|cairo_font_options_get_hint_style|cairo_font_options_get_subpixel_order|cairo_font_options_hash|cairo_font_options_merge|cairo_font_options_set_antialias|cairo_font_options_set_hint_metrics|cairo_font_options_set_hint_style|cairo_font_options_set_subpixel_order|cairo_font_options_status|cairo_format_stride_for_width|cairo_image_surface_create|cairo_image_surface_create_for_data|cairo_image_surface_create_from_png|cairo_image_surface_get_data|cairo_image_surface_get_format|cairo_image_surface_get_height|cairo_image_surface_get_stride|cairo_image_surface_get_width|cairo_matrix_create_scale|cairo_matrix_create_translate|cairo_matrix_invert|cairo_matrix_multiply|cairo_matrix_rotate|cairo_matrix_transform_distance|cairo_matrix_transform_point|cairo_matrix_translate|cairo_pattern_add_color_stop_rgb|cairo_pattern_add_color_stop_rgba|cairo_pattern_create_for_surface|cairo_pattern_create_linear|cairo_pattern_create_radial|cairo_pattern_create_rgb|cairo_pattern_create_rgba|cairo_pattern_get_color_stop_count|cairo_pattern_get_color_stop_rgba|cairo_pattern_get_extend|cairo_pattern_get_filter|cairo_pattern_get_linear_points|cairo_pattern_get_matrix|cairo_pattern_get_radial_circles|cairo_pattern_get_rgba|cairo_pattern_get_surface|cairo_pattern_get_type|cairo_pattern_set_extend|cairo_pattern_set_filter|cairo_pattern_set_matrix|cairo_pattern_status|cairo_pdf_surface_create|cairo_pdf_surface_set_size|cairo_ps_get_levels|cairo_ps_level_to_string|cairo_ps_surface_create|cairo_ps_surface_dsc_begin_page_setup|cairo_ps_surface_dsc_begin_setup|cairo_ps_surface_dsc_comment|cairo_ps_surface_get_eps|cairo_ps_surface_restrict_to_level|cairo_ps_surface_set_eps|cairo_ps_surface_set_size|cairo_scaled_font_create|cairo_scaled_font_extents|cairo_scaled_font_get_ctm|cairo_scaled_font_get_font_face|cairo_scaled_font_get_font_matrix|cairo_scaled_font_get_font_options|cairo_scaled_font_get_scale_matrix|cairo_scaled_font_get_type|cairo_scaled_font_glyph_extents|cairo_scaled_font_status|cairo_scaled_font_text_extents|cairo_surface_copy_page|cairo_surface_create_similar|cairo_surface_finish|cairo_surface_flush|cairo_surface_get_content|cairo_surface_get_device_offset|cairo_surface_get_font_options|cairo_surface_get_type|cairo_surface_mark_dirty|cairo_surface_mark_dirty_rectangle|cairo_surface_set_device_offset|cairo_surface_set_fallback_resolution|cairo_surface_show_page|cairo_surface_status|cairo_surface_write_to_png|cairo_svg_surface_create|cairo_svg_surface_restrict_to_version|cairo_svg_version_to_string|cairoantialias|cairocontent|cairocontext|cairoexception|cairoextend|cairofillrule|cairofilter|cairofontface|cairofontoptions|cairofontslant|cairofonttype|cairofontweight|cairoformat|cairogradientpattern|cairohintmetrics|cairohintstyle|cairoimagesurface|cairolineargradient|cairolinecap|cairolinejoin|cairomatrix|cairooperator|cairopath|cairopattern|cairopatterntype|cairopdfsurface|cairopslevel|cairopssurface|cairoradialgradient|cairoscaledfont|cairosolidpattern|cairostatus|cairosubpixelorder|cairosurface|cairosurfacepattern|cairosurfacetype|cairosvgsurface|cairosvgversion|cairotoyfontface|cal_days_in_month|cal_from_jd|cal_info|cal_to_jd|calcul_hmac|calculhmac|call_user_func|call_user_func_array|call_user_method|call_user_method_array|callbackfilteriterator|ceil|chdb|chdb_create|chdir|checkdate|checkdnsrr|chgrp|chmod|chop|chown|chr|chroot|chunk_split|class_alias|class_exists|class_implements|class_parents|class_uses|classkit_import|classkit_method_add|classkit_method_copy|classkit_method_redefine|classkit_method_remove|classkit_method_rename|clearstatcache|clone|closedir|closelog|collator|com|com_addref|com_create_guid|com_event_sink|com_get|com_get_active_object|com_invoke|com_isenum|com_load|com_load_typelib|com_message_pump|com_print_typeinfo|com_propget|com_propput|com_propset|com_release|com_set|compact|connection_aborted|connection_status|connection_timeout|constant|construct|construct|construct|convert_cyr_string|convert_uudecode|convert_uuencode|copy|cos|cosh|count|count_chars|countable|counter_bump|counter_bump_value|counter_create|counter_get|counter_get_meta|counter_get_named|counter_get_value|counter_reset|counter_reset_value|crack_check|crack_closedict|crack_getlastmessage|crack_opendict|crc32|create_function|crypt|ctype_alnum|ctype_alpha|ctype_cntrl|ctype_digit|ctype_graph|ctype_lower|ctype_print|ctype_punct|ctype_space|ctype_upper|ctype_xdigit|cubrid_affected_rows|cubrid_bind|cubrid_client_encoding|cubrid_close|cubrid_close_prepare|cubrid_close_request|cubrid_col_get|cubrid_col_size|cubrid_column_names|cubrid_column_types|cubrid_commit|cubrid_connect|cubrid_connect_with_url|cubrid_current_oid|cubrid_data_seek|cubrid_db_name|cubrid_disconnect|cubrid_drop|cubrid_errno|cubrid_error|cubrid_error_code|cubrid_error_code_facility|cubrid_error_msg|cubrid_execute|cubrid_fetch|cubrid_fetch_array|cubrid_fetch_assoc|cubrid_fetch_field|cubrid_fetch_lengths|cubrid_fetch_object|cubrid_fetch_row|cubrid_field_flags|cubrid_field_len|cubrid_field_name|cubrid_field_seek|cubrid_field_table|cubrid_field_type|cubrid_free_result|cubrid_get|cubrid_get_autocommit|cubrid_get_charset|cubrid_get_class_name|cubrid_get_client_info|cubrid_get_db_parameter|cubrid_get_server_info|cubrid_insert_id|cubrid_is_instance|cubrid_list_dbs|cubrid_load_from_glo|cubrid_lob_close|cubrid_lob_export|cubrid_lob_get|cubrid_lob_send|cubrid_lob_size|cubrid_lock_read|cubrid_lock_write|cubrid_move_cursor|cubrid_new_glo|cubrid_next_result|cubrid_num_cols|cubrid_num_fields|cubrid_num_rows|cubrid_ping|cubrid_prepare|cubrid_put|cubrid_query|cubrid_real_escape_string|cubrid_result|cubrid_rollback|cubrid_save_to_glo|cubrid_schema|cubrid_send_glo|cubrid_seq_drop|cubrid_seq_insert|cubrid_seq_put|cubrid_set_add|cubrid_set_autocommit|cubrid_set_db_parameter|cubrid_set_drop|cubrid_unbuffered_query|cubrid_version|curl_close|curl_copy_handle|curl_errno|curl_error|curl_exec|curl_getinfo|curl_init|curl_multi_add_handle|curl_multi_close|curl_multi_exec|curl_multi_getcontent|curl_multi_info_read|curl_multi_init|curl_multi_remove_handle|curl_multi_select|curl_setopt|curl_setopt_array|curl_version|current|cyrus_authenticate|cyrus_bind|cyrus_close|cyrus_connect|cyrus_query|cyrus_unbind|date|date_add|date_create|date_create_from_format|date_date_set|date_default_timezone_get|date_default_timezone_set|date_diff|date_format|date_get_last_errors|date_interval_create_from_date_string|date_interval_format|date_isodate_set|date_modify|date_offset_get|date_parse|date_parse_from_format|date_sub|date_sun_info|date_sunrise|date_sunset|date_time_set|date_timestamp_get|date_timestamp_set|date_timezone_get|date_timezone_set|dateinterval|dateperiod|datetime|datetimezone|db2_autocommit|db2_bind_param|db2_client_info|db2_close|db2_column_privileges|db2_columns|db2_commit|db2_conn_error|db2_conn_errormsg|db2_connect|db2_cursor_type|db2_escape_string|db2_exec|db2_execute|db2_fetch_array|db2_fetch_assoc|db2_fetch_both|db2_fetch_object|db2_fetch_row|db2_field_display_size|db2_field_name|db2_field_num|db2_field_precision|db2_field_scale|db2_field_type|db2_field_width|db2_foreign_keys|db2_free_result|db2_free_stmt|db2_get_option|db2_last_insert_id|db2_lob_read|db2_next_result|db2_num_fields|db2_num_rows|db2_pclose|db2_pconnect|db2_prepare|db2_primary_keys|db2_procedure_columns|db2_procedures|db2_result|db2_rollback|db2_server_info|db2_set_option|db2_special_columns|db2_statistics|db2_stmt_error|db2_stmt_errormsg|db2_table_privileges|db2_tables|dba_close|dba_delete|dba_exists|dba_fetch|dba_firstkey|dba_handlers|dba_insert|dba_key_split|dba_list|dba_nextkey|dba_open|dba_optimize|dba_popen|dba_replace|dba_sync|dbase_add_record|dbase_close|dbase_create|dbase_delete_record|dbase_get_header_info|dbase_get_record|dbase_get_record_with_names|dbase_numfields|dbase_numrecords|dbase_open|dbase_pack|dbase_replace_record|dbplus_add|dbplus_aql|dbplus_chdir|dbplus_close|dbplus_curr|dbplus_errcode|dbplus_errno|dbplus_find|dbplus_first|dbplus_flush|dbplus_freealllocks|dbplus_freelock|dbplus_freerlocks|dbplus_getlock|dbplus_getunique|dbplus_info|dbplus_last|dbplus_lockrel|dbplus_next|dbplus_open|dbplus_prev|dbplus_rchperm|dbplus_rcreate|dbplus_rcrtexact|dbplus_rcrtlike|dbplus_resolve|dbplus_restorepos|dbplus_rkeys|dbplus_ropen|dbplus_rquery|dbplus_rrename|dbplus_rsecindex|dbplus_runlink|dbplus_rzap|dbplus_savepos|dbplus_setindex|dbplus_setindexbynumber|dbplus_sql|dbplus_tcl|dbplus_tremove|dbplus_undo|dbplus_undoprepare|dbplus_unlockrel|dbplus_unselect|dbplus_update|dbplus_xlockrel|dbplus_xunlockrel|dbx_close|dbx_compare|dbx_connect|dbx_error|dbx_escape_string|dbx_fetch_row|dbx_query|dbx_sort|dcgettext|dcngettext|deaggregate|debug_backtrace|debug_print_backtrace|debug_zval_dump|decbin|dechex|decoct|define|define_syslog_variables|defined|deg2rad|delete|dgettext|die|dio_close|dio_fcntl|dio_open|dio_read|dio_seek|dio_stat|dio_tcsetattr|dio_truncate|dio_write|dir|directoryiterator|dirname|disk_free_space|disk_total_space|diskfreespace|dl|dngettext|dns_check_record|dns_get_mx|dns_get_record|dom_import_simplexml|domainexception|domattr|domattribute_name|domattribute_set_value|domattribute_specified|domattribute_value|domcharacterdata|domcomment|domdocument|domdocument_add_root|domdocument_create_attribute|domdocument_create_cdata_section|domdocument_create_comment|domdocument_create_element|domdocument_create_element_ns|domdocument_create_entity_reference|domdocument_create_processing_instruction|domdocument_create_text_node|domdocument_doctype|domdocument_document_element|domdocument_dump_file|domdocument_dump_mem|domdocument_get_element_by_id|domdocument_get_elements_by_tagname|domdocument_html_dump_mem|domdocument_xinclude|domdocumentfragment|domdocumenttype|domdocumenttype_entities|domdocumenttype_internal_subset|domdocumenttype_name|domdocumenttype_notations|domdocumenttype_public_id|domdocumenttype_system_id|domelement|domelement_get_attribute|domelement_get_attribute_node|domelement_get_elements_by_tagname|domelement_has_attribute|domelement_remove_attribute|domelement_set_attribute|domelement_set_attribute_node|domelement_tagname|domentity|domentityreference|domexception|domimplementation|domnamednodemap|domnode|domnode_add_namespace|domnode_append_child|domnode_append_sibling|domnode_attributes|domnode_child_nodes|domnode_clone_node|domnode_dump_node|domnode_first_child|domnode_get_content|domnode_has_attributes|domnode_has_child_nodes|domnode_insert_before|domnode_is_blank_node|domnode_last_child|domnode_next_sibling|domnode_node_name|domnode_node_type|domnode_node_value|domnode_owner_document|domnode_parent_node|domnode_prefix|domnode_previous_sibling|domnode_remove_child|domnode_replace_child|domnode_replace_node|domnode_set_content|domnode_set_name|domnode_set_namespace|domnode_unlink_node|domnodelist|domnotation|domprocessinginstruction|domprocessinginstruction_data|domprocessinginstruction_target|domtext|domxml_new_doc|domxml_open_file|domxml_open_mem|domxml_version|domxml_xmltree|domxml_xslt_stylesheet|domxml_xslt_stylesheet_doc|domxml_xslt_stylesheet_file|domxml_xslt_version|domxpath|domxsltstylesheet_process|domxsltstylesheet_result_dump_file|domxsltstylesheet_result_dump_mem|dotnet|dotnet_load|doubleval|each|easter_date|easter_days|echo|empty|emptyiterator|enchant_broker_describe|enchant_broker_dict_exists|enchant_broker_free|enchant_broker_free_dict|enchant_broker_get_error|enchant_broker_init|enchant_broker_list_dicts|enchant_broker_request_dict|enchant_broker_request_pwl_dict|enchant_broker_set_ordering|enchant_dict_add_to_personal|enchant_dict_add_to_session|enchant_dict_check|enchant_dict_describe|enchant_dict_get_error|enchant_dict_is_in_session|enchant_dict_quick_check|enchant_dict_store_replacement|enchant_dict_suggest|end|ereg|ereg_replace|eregi|eregi_replace|error_get_last|error_log|error_reporting|errorexception|escapeshellarg|escapeshellcmd|eval|event_add|event_base_free|event_base_loop|event_base_loopbreak|event_base_loopexit|event_base_new|event_base_priority_init|event_base_set|event_buffer_base_set|event_buffer_disable|event_buffer_enable|event_buffer_fd_set|event_buffer_free|event_buffer_new|event_buffer_priority_set|event_buffer_read|event_buffer_set_callback|event_buffer_timeout_set|event_buffer_watermark_set|event_buffer_write|event_del|event_free|event_new|event_set|exception|exec|exif_imagetype|exif_read_data|exif_tagname|exif_thumbnail|exit|exp|expect_expectl|expect_popen|explode|expm1|export|export|extension_loaded|extract|ezmlm_hash|fam_cancel_monitor|fam_close|fam_monitor_collection|fam_monitor_directory|fam_monitor_file|fam_next_event|fam_open|fam_pending|fam_resume_monitor|fam_suspend_monitor|fbsql_affected_rows|fbsql_autocommit|fbsql_blob_size|fbsql_change_user|fbsql_clob_size|fbsql_close|fbsql_commit|fbsql_connect|fbsql_create_blob|fbsql_create_clob|fbsql_create_db|fbsql_data_seek|fbsql_database|fbsql_database_password|fbsql_db_query|fbsql_db_status|fbsql_drop_db|fbsql_errno|fbsql_error|fbsql_fetch_array|fbsql_fetch_assoc|fbsql_fetch_field|fbsql_fetch_lengths|fbsql_fetch_object|fbsql_fetch_row|fbsql_field_flags|fbsql_field_len|fbsql_field_name|fbsql_field_seek|fbsql_field_table|fbsql_field_type|fbsql_free_result|fbsql_get_autostart_info|fbsql_hostname|fbsql_insert_id|fbsql_list_dbs|fbsql_list_fields|fbsql_list_tables|fbsql_next_result|fbsql_num_fields|fbsql_num_rows|fbsql_password|fbsql_pconnect|fbsql_query|fbsql_read_blob|fbsql_read_clob|fbsql_result|fbsql_rollback|fbsql_rows_fetched|fbsql_select_db|fbsql_set_characterset|fbsql_set_lob_mode|fbsql_set_password|fbsql_set_transaction|fbsql_start_db|fbsql_stop_db|fbsql_table_name|fbsql_tablename|fbsql_username|fbsql_warnings|fclose|fdf_add_doc_javascript|fdf_add_template|fdf_close|fdf_create|fdf_enum_values|fdf_errno|fdf_error|fdf_get_ap|fdf_get_attachment|fdf_get_encoding|fdf_get_file|fdf_get_flags|fdf_get_opt|fdf_get_status|fdf_get_value|fdf_get_version|fdf_header|fdf_next_field_name|fdf_open|fdf_open_string|fdf_remove_item|fdf_save|fdf_save_string|fdf_set_ap|fdf_set_encoding|fdf_set_file|fdf_set_flags|fdf_set_javascript_action|fdf_set_on_import_javascript|fdf_set_opt|fdf_set_status|fdf_set_submit_form_action|fdf_set_target_frame|fdf_set_value|fdf_set_version|feof|fflush|fgetc|fgetcsv|fgets|fgetss|file|file_exists|file_get_contents|file_put_contents|fileatime|filectime|filegroup|fileinode|filemtime|fileowner|fileperms|filepro|filepro_fieldcount|filepro_fieldname|filepro_fieldtype|filepro_fieldwidth|filepro_retrieve|filepro_rowcount|filesize|filesystemiterator|filetype|filter_has_var|filter_id|filter_input|filter_input_array|filter_list|filter_var|filter_var_array|filteriterator|finfo_buffer|finfo_close|finfo_file|finfo_open|finfo_set_flags|floatval|flock|floor|flush|fmod|fnmatch|fopen|forward_static_call|forward_static_call_array|fpassthru|fprintf|fputcsv|fputs|fread|frenchtojd|fribidi_log2vis|fscanf|fseek|fsockopen|fstat|ftell|ftok|ftp_alloc|ftp_cdup|ftp_chdir|ftp_chmod|ftp_close|ftp_connect|ftp_delete|ftp_exec|ftp_fget|ftp_fput|ftp_get|ftp_get_option|ftp_login|ftp_mdtm|ftp_mkdir|ftp_nb_continue|ftp_nb_fget|ftp_nb_fput|ftp_nb_get|ftp_nb_put|ftp_nlist|ftp_pasv|ftp_put|ftp_pwd|ftp_quit|ftp_raw|ftp_rawlist|ftp_rename|ftp_rmdir|ftp_set_option|ftp_site|ftp_size|ftp_ssl_connect|ftp_systype|ftruncate|func_get_arg|func_get_args|func_num_args|function_exists|fwrite|gc_collect_cycles|gc_disable|gc_enable|gc_enabled|gd_info|gearmanclient|gearmanjob|gearmantask|gearmanworker|geoip_continent_code_by_name|geoip_country_code3_by_name|geoip_country_code_by_name|geoip_country_name_by_name|geoip_database_info|geoip_db_avail|geoip_db_filename|geoip_db_get_all_info|geoip_id_by_name|geoip_isp_by_name|geoip_org_by_name|geoip_record_by_name|geoip_region_by_name|geoip_region_name_by_code|geoip_time_zone_by_country_and_region|getMeta|getNamed|getValue|get_browser|get_called_class|get_cfg_var|get_class|get_class_methods|get_class_vars|get_current_user|get_declared_classes|get_declared_interfaces|get_declared_traits|get_defined_constants|get_defined_functions|get_defined_vars|get_extension_funcs|get_headers|get_html_translation_table|get_include_path|get_included_files|get_loaded_extensions|get_magic_quotes_gpc|get_magic_quotes_runtime|get_meta_tags|get_object_vars|get_parent_class|get_required_files|get_resource_type|getallheaders|getconstant|getconstants|getconstructor|getcwd|getdate|getdefaultproperties|getdoccomment|getendline|getenv|getextension|getextensionname|getfilename|gethostbyaddr|gethostbyname|gethostbynamel|gethostname|getimagesize|getinterfacenames|getinterfaces|getlastmod|getmethod|getmethods|getmodifiers|getmxrr|getmygid|getmyinode|getmypid|getmyuid|getname|getnamespacename|getopt|getparentclass|getproperties|getproperty|getprotobyname|getprotobynumber|getrandmax|getrusage|getservbyname|getservbyport|getshortname|getstartline|getstaticproperties|getstaticpropertyvalue|gettext|gettimeofday|gettype|glob|globiterator|gmagick|gmagickdraw|gmagickpixel|gmdate|gmmktime|gmp_abs|gmp_add|gmp_and|gmp_clrbit|gmp_cmp|gmp_com|gmp_div|gmp_div_q|gmp_div_qr|gmp_div_r|gmp_divexact|gmp_fact|gmp_gcd|gmp_gcdext|gmp_hamdist|gmp_init|gmp_intval|gmp_invert|gmp_jacobi|gmp_legendre|gmp_mod|gmp_mul|gmp_neg|gmp_nextprime|gmp_or|gmp_perfect_square|gmp_popcount|gmp_pow|gmp_powm|gmp_prob_prime|gmp_random|gmp_scan0|gmp_scan1|gmp_setbit|gmp_sign|gmp_sqrt|gmp_sqrtrem|gmp_strval|gmp_sub|gmp_testbit|gmp_xor|gmstrftime|gnupg_adddecryptkey|gnupg_addencryptkey|gnupg_addsignkey|gnupg_cleardecryptkeys|gnupg_clearencryptkeys|gnupg_clearsignkeys|gnupg_decrypt|gnupg_decryptverify|gnupg_encrypt|gnupg_encryptsign|gnupg_export|gnupg_geterror|gnupg_getprotocol|gnupg_import|gnupg_init|gnupg_keyinfo|gnupg_setarmor|gnupg_seterrormode|gnupg_setsignmode|gnupg_sign|gnupg_verify|gopher_parsedir|grapheme_extract|grapheme_stripos|grapheme_stristr|grapheme_strlen|grapheme_strpos|grapheme_strripos|grapheme_strrpos|grapheme_strstr|grapheme_substr|gregoriantojd|gupnp_context_get_host_ip|gupnp_context_get_port|gupnp_context_get_subscription_timeout|gupnp_context_host_path|gupnp_context_new|gupnp_context_set_subscription_timeout|gupnp_context_timeout_add|gupnp_context_unhost_path|gupnp_control_point_browse_start|gupnp_control_point_browse_stop|gupnp_control_point_callback_set|gupnp_control_point_new|gupnp_device_action_callback_set|gupnp_device_info_get|gupnp_device_info_get_service|gupnp_root_device_get_available|gupnp_root_device_get_relative_location|gupnp_root_device_new|gupnp_root_device_set_available|gupnp_root_device_start|gupnp_root_device_stop|gupnp_service_action_get|gupnp_service_action_return|gupnp_service_action_return_error|gupnp_service_action_set|gupnp_service_freeze_notify|gupnp_service_info_get|gupnp_service_info_get_introspection|gupnp_service_introspection_get_state_variable|gupnp_service_notify|gupnp_service_proxy_action_get|gupnp_service_proxy_action_set|gupnp_service_proxy_add_notify|gupnp_service_proxy_callback_set|gupnp_service_proxy_get_subscribed|gupnp_service_proxy_remove_notify|gupnp_service_proxy_set_subscribed|gupnp_service_thaw_notify|gzclose|gzcompress|gzdecode|gzdeflate|gzencode|gzeof|gzfile|gzgetc|gzgets|gzgetss|gzinflate|gzopen|gzpassthru|gzputs|gzread|gzrewind|gzseek|gztell|gzuncompress|gzwrite|halt_compiler|haruannotation|haruannotation_setborderstyle|haruannotation_sethighlightmode|haruannotation_seticon|haruannotation_setopened|harudestination|harudestination_setfit|harudestination_setfitb|harudestination_setfitbh|harudestination_setfitbv|harudestination_setfith|harudestination_setfitr|harudestination_setfitv|harudestination_setxyz|harudoc|harudoc_addpage|harudoc_addpagelabel|harudoc_construct|harudoc_createoutline|harudoc_getcurrentencoder|harudoc_getcurrentpage|harudoc_getencoder|harudoc_getfont|harudoc_getinfoattr|harudoc_getpagelayout|harudoc_getpagemode|harudoc_getstreamsize|harudoc_insertpage|harudoc_loadjpeg|harudoc_loadpng|harudoc_loadraw|harudoc_loadttc|harudoc_loadttf|harudoc_loadtype1|harudoc_output|harudoc_readfromstream|harudoc_reseterror|harudoc_resetstream|harudoc_save|harudoc_savetostream|harudoc_setcompressionmode|harudoc_setcurrentencoder|harudoc_setencryptionmode|harudoc_setinfoattr|harudoc_setinfodateattr|harudoc_setopenaction|harudoc_setpagelayout|harudoc_setpagemode|harudoc_setpagesconfiguration|harudoc_setpassword|harudoc_setpermission|harudoc_usecnsencodings|harudoc_usecnsfonts|harudoc_usecntencodings|harudoc_usecntfonts|harudoc_usejpencodings|harudoc_usejpfonts|harudoc_usekrencodings|harudoc_usekrfonts|haruencoder|haruencoder_getbytetype|haruencoder_gettype|haruencoder_getunicode|haruencoder_getwritingmode|haruexception|harufont|harufont_getascent|harufont_getcapheight|harufont_getdescent|harufont_getencodingname|harufont_getfontname|harufont_gettextwidth|harufont_getunicodewidth|harufont_getxheight|harufont_measuretext|haruimage|haruimage_getbitspercomponent|haruimage_getcolorspace|haruimage_getheight|haruimage_getsize|haruimage_getwidth|haruimage_setcolormask|haruimage_setmaskimage|haruoutline|haruoutline_setdestination|haruoutline_setopened|harupage|harupage_arc|harupage_begintext|harupage_circle|harupage_closepath|harupage_concat|harupage_createdestination|harupage_createlinkannotation|harupage_createtextannotation|harupage_createurlannotation|harupage_curveto|harupage_curveto2|harupage_curveto3|harupage_drawimage|harupage_ellipse|harupage_endpath|harupage_endtext|harupage_eofill|harupage_eofillstroke|harupage_fill|harupage_fillstroke|harupage_getcharspace|harupage_getcmykfill|harupage_getcmykstroke|harupage_getcurrentfont|harupage_getcurrentfontsize|harupage_getcurrentpos|harupage_getcurrenttextpos|harupage_getdash|harupage_getfillingcolorspace|harupage_getflatness|harupage_getgmode|harupage_getgrayfill|harupage_getgraystroke|harupage_getheight|harupage_gethorizontalscaling|harupage_getlinecap|harupage_getlinejoin|harupage_getlinewidth|harupage_getmiterlimit|harupage_getrgbfill|harupage_getrgbstroke|harupage_getstrokingcolorspace|harupage_gettextleading|harupage_gettextmatrix|harupage_gettextrenderingmode|harupage_gettextrise|harupage_gettextwidth|harupage_gettransmatrix|harupage_getwidth|harupage_getwordspace|harupage_lineto|harupage_measuretext|harupage_movetextpos|harupage_moveto|harupage_movetonextline|harupage_rectangle|harupage_setcharspace|harupage_setcmykfill|harupage_setcmykstroke|harupage_setdash|harupage_setflatness|harupage_setfontandsize|harupage_setgrayfill|harupage_setgraystroke|harupage_setheight|harupage_sethorizontalscaling|harupage_setlinecap|harupage_setlinejoin|harupage_setlinewidth|harupage_setmiterlimit|harupage_setrgbfill|harupage_setrgbstroke|harupage_setrotate|harupage_setsize|harupage_setslideshow|harupage_settextleading|harupage_settextmatrix|harupage_settextrenderingmode|harupage_settextrise|harupage_setwidth|harupage_setwordspace|harupage_showtext|harupage_showtextnextline|harupage_stroke|harupage_textout|harupage_textrect|hasconstant|hash|hash_algos|hash_copy|hash_file|hash_final|hash_hmac|hash_hmac_file|hash_init|hash_update|hash_update_file|hash_update_stream|hasmethod|hasproperty|header|header_register_callback|header_remove|headers_list|headers_sent|hebrev|hebrevc|hex2bin|hexdec|highlight_file|highlight_string|html_entity_decode|htmlentities|htmlspecialchars|htmlspecialchars_decode|http_build_cookie|http_build_query|http_build_str|http_build_url|http_cache_etag|http_cache_last_modified|http_chunked_decode|http_date|http_deflate|http_get|http_get_request_body|http_get_request_body_stream|http_get_request_headers|http_head|http_inflate|http_match_etag|http_match_modified|http_match_request_header|http_negotiate_charset|http_negotiate_content_type|http_negotiate_language|http_parse_cookie|http_parse_headers|http_parse_message|http_parse_params|http_persistent_handles_clean|http_persistent_handles_count|http_persistent_handles_ident|http_post_data|http_post_fields|http_put_data|http_put_file|http_put_stream|http_redirect|http_request|http_request_body_encode|http_request_method_exists|http_request_method_name|http_request_method_register|http_request_method_unregister|http_response_code|http_send_content_disposition|http_send_content_type|http_send_data|http_send_file|http_send_last_modified|http_send_status|http_send_stream|http_support|http_throttle|httpdeflatestream|httpdeflatestream_construct|httpdeflatestream_factory|httpdeflatestream_finish|httpdeflatestream_flush|httpdeflatestream_update|httpinflatestream|httpinflatestream_construct|httpinflatestream_factory|httpinflatestream_finish|httpinflatestream_flush|httpinflatestream_update|httpmessage|httpmessage_addheaders|httpmessage_construct|httpmessage_detach|httpmessage_factory|httpmessage_fromenv|httpmessage_fromstring|httpmessage_getbody|httpmessage_getheader|httpmessage_getheaders|httpmessage_gethttpversion|httpmessage_getparentmessage|httpmessage_getrequestmethod|httpmessage_getrequesturl|httpmessage_getresponsecode|httpmessage_getresponsestatus|httpmessage_gettype|httpmessage_guesscontenttype|httpmessage_prepend|httpmessage_reverse|httpmessage_send|httpmessage_setbody|httpmessage_setheaders|httpmessage_sethttpversion|httpmessage_setrequestmethod|httpmessage_setrequesturl|httpmessage_setresponsecode|httpmessage_setresponsestatus|httpmessage_settype|httpmessage_tomessagetypeobject|httpmessage_tostring|httpquerystring|httpquerystring_construct|httpquerystring_get|httpquerystring_mod|httpquerystring_set|httpquerystring_singleton|httpquerystring_toarray|httpquerystring_tostring|httpquerystring_xlate|httprequest|httprequest_addcookies|httprequest_addheaders|httprequest_addpostfields|httprequest_addpostfile|httprequest_addputdata|httprequest_addquerydata|httprequest_addrawpostdata|httprequest_addssloptions|httprequest_clearhistory|httprequest_construct|httprequest_enablecookies|httprequest_getcontenttype|httprequest_getcookies|httprequest_getheaders|httprequest_gethistory|httprequest_getmethod|httprequest_getoptions|httprequest_getpostfields|httprequest_getpostfiles|httprequest_getputdata|httprequest_getputfile|httprequest_getquerydata|httprequest_getrawpostdata|httprequest_getrawrequestmessage|httprequest_getrawresponsemessage|httprequest_getrequestmessage|httprequest_getresponsebody|httprequest_getresponsecode|httprequest_getresponsecookies|httprequest_getresponsedata|httprequest_getresponseheader|httprequest_getresponseinfo|httprequest_getresponsemessage|httprequest_getresponsestatus|httprequest_getssloptions|httprequest_geturl|httprequest_resetcookies|httprequest_send|httprequest_setcontenttype|httprequest_setcookies|httprequest_setheaders|httprequest_setmethod|httprequest_setoptions|httprequest_setpostfields|httprequest_setpostfiles|httprequest_setputdata|httprequest_setputfile|httprequest_setquerydata|httprequest_setrawpostdata|httprequest_setssloptions|httprequest_seturl|httprequestpool|httprequestpool_attach|httprequestpool_construct|httprequestpool_destruct|httprequestpool_detach|httprequestpool_getattachedrequests|httprequestpool_getfinishedrequests|httprequestpool_reset|httprequestpool_send|httprequestpool_socketperform|httprequestpool_socketselect|httpresponse|httpresponse_capture|httpresponse_getbuffersize|httpresponse_getcache|httpresponse_getcachecontrol|httpresponse_getcontentdisposition|httpresponse_getcontenttype|httpresponse_getdata|httpresponse_getetag|httpresponse_getfile|httpresponse_getgzip|httpresponse_getheader|httpresponse_getlastmodified|httpresponse_getrequestbody|httpresponse_getrequestbodystream|httpresponse_getrequestheaders|httpresponse_getstream|httpresponse_getthrottledelay|httpresponse_guesscontenttype|httpresponse_redirect|httpresponse_send|httpresponse_setbuffersize|httpresponse_setcache|httpresponse_setcachecontrol|httpresponse_setcontentdisposition|httpresponse_setcontenttype|httpresponse_setdata|httpresponse_setetag|httpresponse_setfile|httpresponse_setgzip|httpresponse_setheader|httpresponse_setlastmodified|httpresponse_setstream|httpresponse_setthrottledelay|httpresponse_status|hw_array2objrec|hw_changeobject|hw_children|hw_childrenobj|hw_close|hw_connect|hw_connection_info|hw_cp|hw_deleteobject|hw_docbyanchor|hw_docbyanchorobj|hw_document_attributes|hw_document_bodytag|hw_document_content|hw_document_setcontent|hw_document_size|hw_dummy|hw_edittext|hw_error|hw_errormsg|hw_free_document|hw_getanchors|hw_getanchorsobj|hw_getandlock|hw_getchildcoll|hw_getchildcollobj|hw_getchilddoccoll|hw_getchilddoccollobj|hw_getobject|hw_getobjectbyquery|hw_getobjectbyquerycoll|hw_getobjectbyquerycollobj|hw_getobjectbyqueryobj|hw_getparents|hw_getparentsobj|hw_getrellink|hw_getremote|hw_getremotechildren|hw_getsrcbydestobj|hw_gettext|hw_getusername|hw_identify|hw_incollections|hw_info|hw_inscoll|hw_insdoc|hw_insertanchors|hw_insertdocument|hw_insertobject|hw_mapid|hw_modifyobject|hw_mv|hw_new_document|hw_objrec2array|hw_output_document|hw_pconnect|hw_pipedocument|hw_root|hw_setlinkroot|hw_stat|hw_unlock|hw_who|hwapi_attribute|hwapi_attribute_key|hwapi_attribute_langdepvalue|hwapi_attribute_value|hwapi_attribute_values|hwapi_checkin|hwapi_checkout|hwapi_children|hwapi_content|hwapi_content_mimetype|hwapi_content_read|hwapi_copy|hwapi_dbstat|hwapi_dcstat|hwapi_dstanchors|hwapi_dstofsrcanchor|hwapi_error_count|hwapi_error_reason|hwapi_find|hwapi_ftstat|hwapi_hgcsp|hwapi_hwstat|hwapi_identify|hwapi_info|hwapi_insert|hwapi_insertanchor|hwapi_insertcollection|hwapi_insertdocument|hwapi_link|hwapi_lock|hwapi_move|hwapi_new_content|hwapi_object|hwapi_object_assign|hwapi_object_attreditable|hwapi_object_count|hwapi_object_insert|hwapi_object_new|hwapi_object_remove|hwapi_object_title|hwapi_object_value|hwapi_objectbyanchor|hwapi_parents|hwapi_reason_description|hwapi_reason_type|hwapi_remove|hwapi_replace|hwapi_setcommittedversion|hwapi_srcanchors|hwapi_srcsofdst|hwapi_unlock|hwapi_user|hwapi_userlist|hypot|ibase_add_user|ibase_affected_rows|ibase_backup|ibase_blob_add|ibase_blob_cancel|ibase_blob_close|ibase_blob_create|ibase_blob_echo|ibase_blob_get|ibase_blob_import|ibase_blob_info|ibase_blob_open|ibase_close|ibase_commit|ibase_commit_ret|ibase_connect|ibase_db_info|ibase_delete_user|ibase_drop_db|ibase_errcode|ibase_errmsg|ibase_execute|ibase_fetch_assoc|ibase_fetch_object|ibase_fetch_row|ibase_field_info|ibase_free_event_handler|ibase_free_query|ibase_free_result|ibase_gen_id|ibase_maintain_db|ibase_modify_user|ibase_name_result|ibase_num_fields|ibase_num_params|ibase_param_info|ibase_pconnect|ibase_prepare|ibase_query|ibase_restore|ibase_rollback|ibase_rollback_ret|ibase_server_info|ibase_service_attach|ibase_service_detach|ibase_set_event_handler|ibase_timefmt|ibase_trans|ibase_wait_event|iconv|iconv_get_encoding|iconv_mime_decode|iconv_mime_decode_headers|iconv_mime_encode|iconv_set_encoding|iconv_strlen|iconv_strpos|iconv_strrpos|iconv_substr|id3_get_frame_long_name|id3_get_frame_short_name|id3_get_genre_id|id3_get_genre_list|id3_get_genre_name|id3_get_tag|id3_get_version|id3_remove_tag|id3_set_tag|id3v2attachedpictureframe|id3v2frame|id3v2tag|idate|idn_to_ascii|idn_to_unicode|idn_to_utf8|ifx_affected_rows|ifx_blobinfile_mode|ifx_byteasvarchar|ifx_close|ifx_connect|ifx_copy_blob|ifx_create_blob|ifx_create_char|ifx_do|ifx_error|ifx_errormsg|ifx_fetch_row|ifx_fieldproperties|ifx_fieldtypes|ifx_free_blob|ifx_free_char|ifx_free_result|ifx_get_blob|ifx_get_char|ifx_getsqlca|ifx_htmltbl_result|ifx_nullformat|ifx_num_fields|ifx_num_rows|ifx_pconnect|ifx_prepare|ifx_query|ifx_textasvarchar|ifx_update_blob|ifx_update_char|ifxus_close_slob|ifxus_create_slob|ifxus_free_slob|ifxus_open_slob|ifxus_read_slob|ifxus_seek_slob|ifxus_tell_slob|ifxus_write_slob|ignore_user_abort|iis_add_server|iis_get_dir_security|iis_get_script_map|iis_get_server_by_comment|iis_get_server_by_path|iis_get_server_rights|iis_get_service_state|iis_remove_server|iis_set_app_settings|iis_set_dir_security|iis_set_script_map|iis_set_server_rights|iis_start_server|iis_start_service|iis_stop_server|iis_stop_service|image2wbmp|image_type_to_extension|image_type_to_mime_type|imagealphablending|imageantialias|imagearc|imagechar|imagecharup|imagecolorallocate|imagecolorallocatealpha|imagecolorat|imagecolorclosest|imagecolorclosestalpha|imagecolorclosesthwb|imagecolordeallocate|imagecolorexact|imagecolorexactalpha|imagecolormatch|imagecolorresolve|imagecolorresolvealpha|imagecolorset|imagecolorsforindex|imagecolorstotal|imagecolortransparent|imageconvolution|imagecopy|imagecopymerge|imagecopymergegray|imagecopyresampled|imagecopyresized|imagecreate|imagecreatefromgd|imagecreatefromgd2|imagecreatefromgd2part|imagecreatefromgif|imagecreatefromjpeg|imagecreatefrompng|imagecreatefromstring|imagecreatefromwbmp|imagecreatefromxbm|imagecreatefromxpm|imagecreatetruecolor|imagedashedline|imagedestroy|imageellipse|imagefill|imagefilledarc|imagefilledellipse|imagefilledpolygon|imagefilledrectangle|imagefilltoborder|imagefilter|imagefontheight|imagefontwidth|imageftbbox|imagefttext|imagegammacorrect|imagegd|imagegd2|imagegif|imagegrabscreen|imagegrabwindow|imageinterlace|imageistruecolor|imagejpeg|imagelayereffect|imageline|imageloadfont|imagepalettecopy|imagepng|imagepolygon|imagepsbbox|imagepsencodefont|imagepsextendfont|imagepsfreefont|imagepsloadfont|imagepsslantfont|imagepstext|imagerectangle|imagerotate|imagesavealpha|imagesetbrush|imagesetpixel|imagesetstyle|imagesetthickness|imagesettile|imagestring|imagestringup|imagesx|imagesy|imagetruecolortopalette|imagettfbbox|imagettftext|imagetypes|imagewbmp|imagexbm|imagick|imagick_adaptiveblurimage|imagick_adaptiveresizeimage|imagick_adaptivesharpenimage|imagick_adaptivethresholdimage|imagick_addimage|imagick_addnoiseimage|imagick_affinetransformimage|imagick_animateimages|imagick_annotateimage|imagick_appendimages|imagick_averageimages|imagick_blackthresholdimage|imagick_blurimage|imagick_borderimage|imagick_charcoalimage|imagick_chopimage|imagick_clear|imagick_clipimage|imagick_clippathimage|imagick_clone|imagick_clutimage|imagick_coalesceimages|imagick_colorfloodfillimage|imagick_colorizeimage|imagick_combineimages|imagick_commentimage|imagick_compareimagechannels|imagick_compareimagelayers|imagick_compareimages|imagick_compositeimage|imagick_construct|imagick_contrastimage|imagick_contraststretchimage|imagick_convolveimage|imagick_cropimage|imagick_cropthumbnailimage|imagick_current|imagick_cyclecolormapimage|imagick_decipherimage|imagick_deconstructimages|imagick_deleteimageartifact|imagick_despeckleimage|imagick_destroy|imagick_displayimage|imagick_displayimages|imagick_distortimage|imagick_drawimage|imagick_edgeimage|imagick_embossimage|imagick_encipherimage|imagick_enhanceimage|imagick_equalizeimage|imagick_evaluateimage|imagick_extentimage|imagick_flattenimages|imagick_flipimage|imagick_floodfillpaintimage|imagick_flopimage|imagick_frameimage|imagick_fximage|imagick_gammaimage|imagick_gaussianblurimage|imagick_getcolorspace|imagick_getcompression|imagick_getcompressionquality|imagick_getcopyright|imagick_getfilename|imagick_getfont|imagick_getformat|imagick_getgravity|imagick_gethomeurl|imagick_getimage|imagick_getimagealphachannel|imagick_getimageartifact|imagick_getimagebackgroundcolor|imagick_getimageblob|imagick_getimageblueprimary|imagick_getimagebordercolor|imagick_getimagechanneldepth|imagick_getimagechanneldistortion|imagick_getimagechanneldistortions|imagick_getimagechannelextrema|imagick_getimagechannelmean|imagick_getimagechannelrange|imagick_getimagechannelstatistics|imagick_getimageclipmask|imagick_getimagecolormapcolor|imagick_getimagecolors|imagick_getimagecolorspace|imagick_getimagecompose|imagick_getimagecompression|imagick_getimagecompressionquality|imagick_getimagedelay|imagick_getimagedepth|imagick_getimagedispose|imagick_getimagedistortion|imagick_getimageextrema|imagick_getimagefilename|imagick_getimageformat|imagick_getimagegamma|imagick_getimagegeometry|imagick_getimagegravity|imagick_getimagegreenprimary|imagick_getimageheight|imagick_getimagehistogram|imagick_getimageindex|imagick_getimageinterlacescheme|imagick_getimageinterpolatemethod|imagick_getimageiterations|imagick_getimagelength|imagick_getimagemagicklicense|imagick_getimagematte|imagick_getimagemattecolor|imagick_getimageorientation|imagick_getimagepage|imagick_getimagepixelcolor|imagick_getimageprofile|imagick_getimageprofiles|imagick_getimageproperties|imagick_getimageproperty|imagick_getimageredprimary|imagick_getimageregion|imagick_getimagerenderingintent|imagick_getimageresolution|imagick_getimagesblob|imagick_getimagescene|imagick_getimagesignature|imagick_getimagesize|imagick_getimagetickspersecond|imagick_getimagetotalinkdensity|imagick_getimagetype|imagick_getimageunits|imagick_getimagevirtualpixelmethod|imagick_getimagewhitepoint|imagick_getimagewidth|imagick_getinterlacescheme|imagick_getiteratorindex|imagick_getnumberimages|imagick_getoption|imagick_getpackagename|imagick_getpage|imagick_getpixeliterator|imagick_getpixelregioniterator|imagick_getpointsize|imagick_getquantumdepth|imagick_getquantumrange|imagick_getreleasedate|imagick_getresource|imagick_getresourcelimit|imagick_getsamplingfactors|imagick_getsize|imagick_getsizeoffset|imagick_getversion|imagick_hasnextimage|imagick_haspreviousimage|imagick_identifyimage|imagick_implodeimage|imagick_labelimage|imagick_levelimage|imagick_linearstretchimage|imagick_liquidrescaleimage|imagick_magnifyimage|imagick_mapimage|imagick_mattefloodfillimage|imagick_medianfilterimage|imagick_mergeimagelayers|imagick_minifyimage|imagick_modulateimage|imagick_montageimage|imagick_morphimages|imagick_mosaicimages|imagick_motionblurimage|imagick_negateimage|imagick_newimage|imagick_newpseudoimage|imagick_nextimage|imagick_normalizeimage|imagick_oilpaintimage|imagick_opaquepaintimage|imagick_optimizeimagelayers|imagick_orderedposterizeimage|imagick_paintfloodfillimage|imagick_paintopaqueimage|imagick_painttransparentimage|imagick_pingimage|imagick_pingimageblob|imagick_pingimagefile|imagick_polaroidimage|imagick_posterizeimage|imagick_previewimages|imagick_previousimage|imagick_profileimage|imagick_quantizeimage|imagick_quantizeimages|imagick_queryfontmetrics|imagick_queryfonts|imagick_queryformats|imagick_radialblurimage|imagick_raiseimage|imagick_randomthresholdimage|imagick_readimage|imagick_readimageblob|imagick_readimagefile|imagick_recolorimage|imagick_reducenoiseimage|imagick_removeimage|imagick_removeimageprofile|imagick_render|imagick_resampleimage|imagick_resetimagepage|imagick_resizeimage|imagick_rollimage|imagick_rotateimage|imagick_roundcorners|imagick_sampleimage|imagick_scaleimage|imagick_separateimagechannel|imagick_sepiatoneimage|imagick_setbackgroundcolor|imagick_setcolorspace|imagick_setcompression|imagick_setcompressionquality|imagick_setfilename|imagick_setfirstiterator|imagick_setfont|imagick_setformat|imagick_setgravity|imagick_setimage|imagick_setimagealphachannel|imagick_setimageartifact|imagick_setimagebackgroundcolor|imagick_setimagebias|imagick_setimageblueprimary|imagick_setimagebordercolor|imagick_setimagechanneldepth|imagick_setimageclipmask|imagick_setimagecolormapcolor|imagick_setimagecolorspace|imagick_setimagecompose|imagick_setimagecompression|imagick_setimagecompressionquality|imagick_setimagedelay|imagick_setimagedepth|imagick_setimagedispose|imagick_setimageextent|imagick_setimagefilename|imagick_setimageformat|imagick_setimagegamma|imagick_setimagegravity|imagick_setimagegreenprimary|imagick_setimageindex|imagick_setimageinterlacescheme|imagick_setimageinterpolatemethod|imagick_setimageiterations|imagick_setimagematte|imagick_setimagemattecolor|imagick_setimageopacity|imagick_setimageorientation|imagick_setimagepage|imagick_setimageprofile|imagick_setimageproperty|imagick_setimageredprimary|imagick_setimagerenderingintent|imagick_setimageresolution|imagick_setimagescene|imagick_setimagetickspersecond|imagick_setimagetype|imagick_setimageunits|imagick_setimagevirtualpixelmethod|imagick_setimagewhitepoint|imagick_setinterlacescheme|imagick_setiteratorindex|imagick_setlastiterator|imagick_setoption|imagick_setpage|imagick_setpointsize|imagick_setresolution|imagick_setresourcelimit|imagick_setsamplingfactors|imagick_setsize|imagick_setsizeoffset|imagick_settype|imagick_shadeimage|imagick_shadowimage|imagick_sharpenimage|imagick_shaveimage|imagick_shearimage|imagick_sigmoidalcontrastimage|imagick_sketchimage|imagick_solarizeimage|imagick_spliceimage|imagick_spreadimage|imagick_steganoimage|imagick_stereoimage|imagick_stripimage|imagick_swirlimage|imagick_textureimage|imagick_thresholdimage|imagick_thumbnailimage|imagick_tintimage|imagick_transformimage|imagick_transparentpaintimage|imagick_transposeimage|imagick_transverseimage|imagick_trimimage|imagick_uniqueimagecolors|imagick_unsharpmaskimage|imagick_valid|imagick_vignetteimage|imagick_waveimage|imagick_whitethresholdimage|imagick_writeimage|imagick_writeimagefile|imagick_writeimages|imagick_writeimagesfile|imagickdraw|imagickdraw_affine|imagickdraw_annotation|imagickdraw_arc|imagickdraw_bezier|imagickdraw_circle|imagickdraw_clear|imagickdraw_clone|imagickdraw_color|imagickdraw_comment|imagickdraw_composite|imagickdraw_construct|imagickdraw_destroy|imagickdraw_ellipse|imagickdraw_getclippath|imagickdraw_getcliprule|imagickdraw_getclipunits|imagickdraw_getfillcolor|imagickdraw_getfillopacity|imagickdraw_getfillrule|imagickdraw_getfont|imagickdraw_getfontfamily|imagickdraw_getfontsize|imagickdraw_getfontstyle|imagickdraw_getfontweight|imagickdraw_getgravity|imagickdraw_getstrokeantialias|imagickdraw_getstrokecolor|imagickdraw_getstrokedasharray|imagickdraw_getstrokedashoffset|imagickdraw_getstrokelinecap|imagickdraw_getstrokelinejoin|imagickdraw_getstrokemiterlimit|imagickdraw_getstrokeopacity|imagickdraw_getstrokewidth|imagickdraw_gettextalignment|imagickdraw_gettextantialias|imagickdraw_gettextdecoration|imagickdraw_gettextencoding|imagickdraw_gettextundercolor|imagickdraw_getvectorgraphics|imagickdraw_line|imagickdraw_matte|imagickdraw_pathclose|imagickdraw_pathcurvetoabsolute|imagickdraw_pathcurvetoquadraticbezierabsolute|imagickdraw_pathcurvetoquadraticbezierrelative|imagickdraw_pathcurvetoquadraticbeziersmoothabsolute|imagickdraw_pathcurvetoquadraticbeziersmoothrelative|imagickdraw_pathcurvetorelative|imagickdraw_pathcurvetosmoothabsolute|imagickdraw_pathcurvetosmoothrelative|imagickdraw_pathellipticarcabsolute|imagickdraw_pathellipticarcrelative|imagickdraw_pathfinish|imagickdraw_pathlinetoabsolute|imagickdraw_pathlinetohorizontalabsolute|imagickdraw_pathlinetohorizontalrelative|imagickdraw_pathlinetorelative|imagickdraw_pathlinetoverticalabsolute|imagickdraw_pathlinetoverticalrelative|imagickdraw_pathmovetoabsolute|imagickdraw_pathmovetorelative|imagickdraw_pathstart|imagickdraw_point|imagickdraw_polygon|imagickdraw_polyline|imagickdraw_pop|imagickdraw_popclippath|imagickdraw_popdefs|imagickdraw_poppattern|imagickdraw_push|imagickdraw_pushclippath|imagickdraw_pushdefs|imagickdraw_pushpattern|imagickdraw_rectangle|imagickdraw_render|imagickdraw_rotate|imagickdraw_roundrectangle|imagickdraw_scale|imagickdraw_setclippath|imagickdraw_setcliprule|imagickdraw_setclipunits|imagickdraw_setfillalpha|imagickdraw_setfillcolor|imagickdraw_setfillopacity|imagickdraw_setfillpatternurl|imagickdraw_setfillrule|imagickdraw_setfont|imagickdraw_setfontfamily|imagickdraw_setfontsize|imagickdraw_setfontstretch|imagickdraw_setfontstyle|imagickdraw_setfontweight|imagickdraw_setgravity|imagickdraw_setstrokealpha|imagickdraw_setstrokeantialias|imagickdraw_setstrokecolor|imagickdraw_setstrokedasharray|imagickdraw_setstrokedashoffset|imagickdraw_setstrokelinecap|imagickdraw_setstrokelinejoin|imagickdraw_setstrokemiterlimit|imagickdraw_setstrokeopacity|imagickdraw_setstrokepatternurl|imagickdraw_setstrokewidth|imagickdraw_settextalignment|imagickdraw_settextantialias|imagickdraw_settextdecoration|imagickdraw_settextencoding|imagickdraw_settextundercolor|imagickdraw_setvectorgraphics|imagickdraw_setviewbox|imagickdraw_skewx|imagickdraw_skewy|imagickdraw_translate|imagickpixel|imagickpixel_clear|imagickpixel_construct|imagickpixel_destroy|imagickpixel_getcolor|imagickpixel_getcolorasstring|imagickpixel_getcolorcount|imagickpixel_getcolorvalue|imagickpixel_gethsl|imagickpixel_issimilar|imagickpixel_setcolor|imagickpixel_setcolorvalue|imagickpixel_sethsl|imagickpixeliterator|imagickpixeliterator_clear|imagickpixeliterator_construct|imagickpixeliterator_destroy|imagickpixeliterator_getcurrentiteratorrow|imagickpixeliterator_getiteratorrow|imagickpixeliterator_getnextiteratorrow|imagickpixeliterator_getpreviousiteratorrow|imagickpixeliterator_newpixeliterator|imagickpixeliterator_newpixelregioniterator|imagickpixeliterator_resetiterator|imagickpixeliterator_setiteratorfirstrow|imagickpixeliterator_setiteratorlastrow|imagickpixeliterator_setiteratorrow|imagickpixeliterator_synciterator|imap_8bit|imap_alerts|imap_append|imap_base64|imap_binary|imap_body|imap_bodystruct|imap_check|imap_clearflag_full|imap_close|imap_create|imap_createmailbox|imap_delete|imap_deletemailbox|imap_errors|imap_expunge|imap_fetch_overview|imap_fetchbody|imap_fetchheader|imap_fetchmime|imap_fetchstructure|imap_fetchtext|imap_gc|imap_get_quota|imap_get_quotaroot|imap_getacl|imap_getmailboxes|imap_getsubscribed|imap_header|imap_headerinfo|imap_headers|imap_last_error|imap_list|imap_listmailbox|imap_listscan|imap_listsubscribed|imap_lsub|imap_mail|imap_mail_compose|imap_mail_copy|imap_mail_move|imap_mailboxmsginfo|imap_mime_header_decode|imap_msgno|imap_num_msg|imap_num_recent|imap_open|imap_ping|imap_qprint|imap_rename|imap_renamemailbox|imap_reopen|imap_rfc822_parse_adrlist|imap_rfc822_parse_headers|imap_rfc822_write_address|imap_savebody|imap_scan|imap_scanmailbox|imap_search|imap_set_quota|imap_setacl|imap_setflag_full|imap_sort|imap_status|imap_subscribe|imap_thread|imap_timeout|imap_uid|imap_undelete|imap_unsubscribe|imap_utf7_decode|imap_utf7_encode|imap_utf8|implementsinterface|implode|import_request_variables|in_array|include|include_once|inclued_get_data|inet_ntop|inet_pton|infiniteiterator|ingres_autocommit|ingres_autocommit_state|ingres_charset|ingres_close|ingres_commit|ingres_connect|ingres_cursor|ingres_errno|ingres_error|ingres_errsqlstate|ingres_escape_string|ingres_execute|ingres_fetch_array|ingres_fetch_assoc|ingres_fetch_object|ingres_fetch_proc_return|ingres_fetch_row|ingres_field_length|ingres_field_name|ingres_field_nullable|ingres_field_precision|ingres_field_scale|ingres_field_type|ingres_free_result|ingres_next_error|ingres_num_fields|ingres_num_rows|ingres_pconnect|ingres_prepare|ingres_query|ingres_result_seek|ingres_rollback|ingres_set_environment|ingres_unbuffered_query|ini_alter|ini_get|ini_get_all|ini_restore|ini_set|innamespace|inotify_add_watch|inotify_init|inotify_queue_len|inotify_read|inotify_rm_watch|interface_exists|intl_error_name|intl_get_error_code|intl_get_error_message|intl_is_failure|intldateformatter|intval|invalidargumentexception|invoke|invokeargs|ip2long|iptcembed|iptcparse|is_a|is_array|is_bool|is_callable|is_dir|is_double|is_executable|is_file|is_finite|is_float|is_infinite|is_int|is_integer|is_link|is_long|is_nan|is_null|is_numeric|is_object|is_readable|is_real|is_resource|is_scalar|is_soap_fault|is_string|is_subclass_of|is_uploaded_file|is_writable|is_writeable|isabstract|iscloneable|isdisabled|isfinal|isinstance|isinstantiable|isinterface|isinternal|isiterateable|isset|issubclassof|isuserdefined|iterator|iterator_apply|iterator_count|iterator_to_array|iteratoraggregate|iteratoriterator|java_last_exception_clear|java_last_exception_get|jddayofweek|jdmonthname|jdtofrench|jdtogregorian|jdtojewish|jdtojulian|jdtounix|jewishtojd|join|jpeg2wbmp|json_decode|json_encode|json_last_error|jsonserializable|judy|judy_type|judy_version|juliantojd|kadm5_chpass_principal|kadm5_create_principal|kadm5_delete_principal|kadm5_destroy|kadm5_flush|kadm5_get_policies|kadm5_get_principal|kadm5_get_principals|kadm5_init_with_password|kadm5_modify_principal|key|krsort|ksort|lcfirst|lcg_value|lchgrp|lchown|ldap_8859_to_t61|ldap_add|ldap_bind|ldap_close|ldap_compare|ldap_connect|ldap_count_entries|ldap_delete|ldap_dn2ufn|ldap_err2str|ldap_errno|ldap_error|ldap_explode_dn|ldap_first_attribute|ldap_first_entry|ldap_first_reference|ldap_free_result|ldap_get_attributes|ldap_get_dn|ldap_get_entries|ldap_get_option|ldap_get_values|ldap_get_values_len|ldap_list|ldap_mod_add|ldap_mod_del|ldap_mod_replace|ldap_modify|ldap_next_attribute|ldap_next_entry|ldap_next_reference|ldap_parse_reference|ldap_parse_result|ldap_read|ldap_rename|ldap_sasl_bind|ldap_search|ldap_set_option|ldap_set_rebind_proc|ldap_sort|ldap_start_tls|ldap_t61_to_8859|ldap_unbind|lengthexception|levenshtein|libxml_clear_errors|libxml_disable_entity_loader|libxml_get_errors|libxml_get_last_error|libxml_set_streams_context|libxml_use_internal_errors|libxmlerror|limititerator|link|linkinfo|list|locale|localeconv|localtime|log|log10|log1p|logicexception|long2ip|lstat|ltrim|lzf_compress|lzf_decompress|lzf_optimized_for|m_checkstatus|m_completeauthorizations|m_connect|m_connectionerror|m_deletetrans|m_destroyconn|m_destroyengine|m_getcell|m_getcellbynum|m_getcommadelimited|m_getheader|m_initconn|m_initengine|m_iscommadelimited|m_maxconntimeout|m_monitor|m_numcolumns|m_numrows|m_parsecommadelimited|m_responsekeys|m_responseparam|m_returnstatus|m_setblocking|m_setdropfile|m_setip|m_setssl|m_setssl_cafile|m_setssl_files|m_settimeout|m_sslcert_gen_hash|m_transactionssent|m_transinqueue|m_transkeyval|m_transnew|m_transsend|m_uwait|m_validateidentifier|m_verifyconnection|m_verifysslcert|magic_quotes_runtime|mail|mailparse_determine_best_xfer_encoding|mailparse_msg_create|mailparse_msg_extract_part|mailparse_msg_extract_part_file|mailparse_msg_extract_whole_part_file|mailparse_msg_free|mailparse_msg_get_part|mailparse_msg_get_part_data|mailparse_msg_get_structure|mailparse_msg_parse|mailparse_msg_parse_file|mailparse_rfc822_parse_addresses|mailparse_stream_encode|mailparse_uudecode_all|main|max|maxdb_affected_rows|maxdb_autocommit|maxdb_bind_param|maxdb_bind_result|maxdb_change_user|maxdb_character_set_name|maxdb_client_encoding|maxdb_close|maxdb_close_long_data|maxdb_commit|maxdb_connect|maxdb_connect_errno|maxdb_connect_error|maxdb_data_seek|maxdb_debug|maxdb_disable_reads_from_master|maxdb_disable_rpl_parse|maxdb_dump_debug_info|maxdb_embedded_connect|maxdb_enable_reads_from_master|maxdb_enable_rpl_parse|maxdb_errno|maxdb_error|maxdb_escape_string|maxdb_execute|maxdb_fetch|maxdb_fetch_array|maxdb_fetch_assoc|maxdb_fetch_field|maxdb_fetch_field_direct|maxdb_fetch_fields|maxdb_fetch_lengths|maxdb_fetch_object|maxdb_fetch_row|maxdb_field_count|maxdb_field_seek|maxdb_field_tell|maxdb_free_result|maxdb_get_client_info|maxdb_get_client_version|maxdb_get_host_info|maxdb_get_metadata|maxdb_get_proto_info|maxdb_get_server_info|maxdb_get_server_version|maxdb_info|maxdb_init|maxdb_insert_id|maxdb_kill|maxdb_master_query|maxdb_more_results|maxdb_multi_query|maxdb_next_result|maxdb_num_fields|maxdb_num_rows|maxdb_options|maxdb_param_count|maxdb_ping|maxdb_prepare|maxdb_query|maxdb_real_connect|maxdb_real_escape_string|maxdb_real_query|maxdb_report|maxdb_rollback|maxdb_rpl_parse_enabled|maxdb_rpl_probe|maxdb_rpl_query_type|maxdb_select_db|maxdb_send_long_data|maxdb_send_query|maxdb_server_end|maxdb_server_init|maxdb_set_opt|maxdb_sqlstate|maxdb_ssl_set|maxdb_stat|maxdb_stmt_affected_rows|maxdb_stmt_bind_param|maxdb_stmt_bind_result|maxdb_stmt_close|maxdb_stmt_close_long_data|maxdb_stmt_data_seek|maxdb_stmt_errno|maxdb_stmt_error|maxdb_stmt_execute|maxdb_stmt_fetch|maxdb_stmt_free_result|maxdb_stmt_init|maxdb_stmt_num_rows|maxdb_stmt_param_count|maxdb_stmt_prepare|maxdb_stmt_reset|maxdb_stmt_result_metadata|maxdb_stmt_send_long_data|maxdb_stmt_sqlstate|maxdb_stmt_store_result|maxdb_store_result|maxdb_thread_id|maxdb_thread_safe|maxdb_use_result|maxdb_warning_count|mb_check_encoding|mb_convert_case|mb_convert_encoding|mb_convert_kana|mb_convert_variables|mb_decode_mimeheader|mb_decode_numericentity|mb_detect_encoding|mb_detect_order|mb_encode_mimeheader|mb_encode_numericentity|mb_encoding_aliases|mb_ereg|mb_ereg_match|mb_ereg_replace|mb_ereg_search|mb_ereg_search_getpos|mb_ereg_search_getregs|mb_ereg_search_init|mb_ereg_search_pos|mb_ereg_search_regs|mb_ereg_search_setpos|mb_eregi|mb_eregi_replace|mb_get_info|mb_http_input|mb_http_output|mb_internal_encoding|mb_language|mb_list_encodings|mb_output_handler|mb_parse_str|mb_preferred_mime_name|mb_regex_encoding|mb_regex_set_options|mb_send_mail|mb_split|mb_strcut|mb_strimwidth|mb_stripos|mb_stristr|mb_strlen|mb_strpos|mb_strrchr|mb_strrichr|mb_strripos|mb_strrpos|mb_strstr|mb_strtolower|mb_strtoupper|mb_strwidth|mb_substitute_character|mb_substr|mb_substr_count|mcrypt_cbc|mcrypt_cfb|mcrypt_create_iv|mcrypt_decrypt|mcrypt_ecb|mcrypt_enc_get_algorithms_name|mcrypt_enc_get_block_size|mcrypt_enc_get_iv_size|mcrypt_enc_get_key_size|mcrypt_enc_get_modes_name|mcrypt_enc_get_supported_key_sizes|mcrypt_enc_is_block_algorithm|mcrypt_enc_is_block_algorithm_mode|mcrypt_enc_is_block_mode|mcrypt_enc_self_test|mcrypt_encrypt|mcrypt_generic|mcrypt_generic_deinit|mcrypt_generic_end|mcrypt_generic_init|mcrypt_get_block_size|mcrypt_get_cipher_name|mcrypt_get_iv_size|mcrypt_get_key_size|mcrypt_list_algorithms|mcrypt_list_modes|mcrypt_module_close|mcrypt_module_get_algo_block_size|mcrypt_module_get_algo_key_size|mcrypt_module_get_supported_key_sizes|mcrypt_module_is_block_algorithm|mcrypt_module_is_block_algorithm_mode|mcrypt_module_is_block_mode|mcrypt_module_open|mcrypt_module_self_test|mcrypt_ofb|md5|md5_file|mdecrypt_generic|memcache|memcache_debug|memcached|memory_get_peak_usage|memory_get_usage|messageformatter|metaphone|method_exists|mhash|mhash_count|mhash_get_block_size|mhash_get_hash_name|mhash_keygen_s2k|microtime|mime_content_type|min|ming_keypress|ming_setcubicthreshold|ming_setscale|ming_setswfcompression|ming_useconstants|ming_useswfversion|mkdir|mktime|money_format|mongo|mongobindata|mongocode|mongocollection|mongoconnectionexception|mongocursor|mongocursorexception|mongocursortimeoutexception|mongodate|mongodb|mongodbref|mongoexception|mongogridfs|mongogridfscursor|mongogridfsexception|mongogridfsfile|mongoid|mongoint32|mongoint64|mongomaxkey|mongominkey|mongoregex|mongotimestamp|move_uploaded_file|mpegfile|mqseries_back|mqseries_begin|mqseries_close|mqseries_cmit|mqseries_conn|mqseries_connx|mqseries_disc|mqseries_get|mqseries_inq|mqseries_open|mqseries_put|mqseries_put1|mqseries_set|mqseries_strerror|msession_connect|msession_count|msession_create|msession_destroy|msession_disconnect|msession_find|msession_get|msession_get_array|msession_get_data|msession_inc|msession_list|msession_listvar|msession_lock|msession_plugin|msession_randstr|msession_set|msession_set_array|msession_set_data|msession_timeout|msession_uniq|msession_unlock|msg_get_queue|msg_queue_exists|msg_receive|msg_remove_queue|msg_send|msg_set_queue|msg_stat_queue|msql|msql_affected_rows|msql_close|msql_connect|msql_create_db|msql_createdb|msql_data_seek|msql_db_query|msql_dbname|msql_drop_db|msql_error|msql_fetch_array|msql_fetch_field|msql_fetch_object|msql_fetch_row|msql_field_flags|msql_field_len|msql_field_name|msql_field_seek|msql_field_table|msql_field_type|msql_fieldflags|msql_fieldlen|msql_fieldname|msql_fieldtable|msql_fieldtype|msql_free_result|msql_list_dbs|msql_list_fields|msql_list_tables|msql_num_fields|msql_num_rows|msql_numfields|msql_numrows|msql_pconnect|msql_query|msql_regcase|msql_result|msql_select_db|msql_tablename|mssql_bind|mssql_close|mssql_connect|mssql_data_seek|mssql_execute|mssql_fetch_array|mssql_fetch_assoc|mssql_fetch_batch|mssql_fetch_field|mssql_fetch_object|mssql_fetch_row|mssql_field_length|mssql_field_name|mssql_field_seek|mssql_field_type|mssql_free_result|mssql_free_statement|mssql_get_last_message|mssql_guid_string|mssql_init|mssql_min_error_severity|mssql_min_message_severity|mssql_next_result|mssql_num_fields|mssql_num_rows|mssql_pconnect|mssql_query|mssql_result|mssql_rows_affected|mssql_select_db|mt_getrandmax|mt_rand|mt_srand|multipleiterator|mysql_affected_rows|mysql_client_encoding|mysql_close|mysql_connect|mysql_create_db|mysql_data_seek|mysql_db_name|mysql_db_query|mysql_drop_db|mysql_errno|mysql_error|mysql_escape_string|mysql_fetch_array|mysql_fetch_assoc|mysql_fetch_field|mysql_fetch_lengths|mysql_fetch_object|mysql_fetch_row|mysql_field_flags|mysql_field_len|mysql_field_name|mysql_field_seek|mysql_field_table|mysql_field_type|mysql_free_result|mysql_get_client_info|mysql_get_host_info|mysql_get_proto_info|mysql_get_server_info|mysql_info|mysql_insert_id|mysql_list_dbs|mysql_list_fields|mysql_list_processes|mysql_list_tables|mysql_num_fields|mysql_num_rows|mysql_pconnect|mysql_ping|mysql_query|mysql_real_escape_string|mysql_result|mysql_select_db|mysql_set_charset|mysql_stat|mysql_tablename|mysql_thread_id|mysql_unbuffered_query|mysqli|mysqli_affected_rows|mysqli_autocommit|mysqli_bind_param|mysqli_bind_result|mysqli_cache_stats|mysqli_change_user|mysqli_character_set_name|mysqli_client_encoding|mysqli_close|mysqli_commit|mysqli_connect|mysqli_connect_errno|mysqli_connect_error|mysqli_data_seek|mysqli_debug|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_driver|mysqli_dump_debug_info|mysqli_embedded_server_end|mysqli_embedded_server_start|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_errno|mysqli_error|mysqli_escape_string|mysqli_execute|mysqli_fetch|mysqli_fetch_all|mysqli_fetch_array|mysqli_fetch_assoc|mysqli_fetch_field|mysqli_fetch_field_direct|mysqli_fetch_fields|mysqli_fetch_lengths|mysqli_fetch_object|mysqli_fetch_row|mysqli_field_count|mysqli_field_seek|mysqli_field_tell|mysqli_free_result|mysqli_get_charset|mysqli_get_client_info|mysqli_get_client_stats|mysqli_get_client_version|mysqli_get_connection_stats|mysqli_get_host_info|mysqli_get_metadata|mysqli_get_proto_info|mysqli_get_server_info|mysqli_get_server_version|mysqli_get_warnings|mysqli_info|mysqli_init|mysqli_insert_id|mysqli_kill|mysqli_link_construct|mysqli_master_query|mysqli_more_results|mysqli_multi_query|mysqli_next_result|mysqli_num_fields|mysqli_num_rows|mysqli_options|mysqli_param_count|mysqli_ping|mysqli_poll|mysqli_prepare|mysqli_query|mysqli_real_connect|mysqli_real_escape_string|mysqli_real_query|mysqli_reap_async_query|mysqli_refresh|mysqli_report|mysqli_result|mysqli_rollback|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_select_db|mysqli_send_long_data|mysqli_send_query|mysqli_set_charset|mysqli_set_local_infile_default|mysqli_set_local_infile_handler|mysqli_set_opt|mysqli_slave_query|mysqli_sqlstate|mysqli_ssl_set|mysqli_stat|mysqli_stmt|mysqli_stmt_affected_rows|mysqli_stmt_attr_get|mysqli_stmt_attr_set|mysqli_stmt_bind_param|mysqli_stmt_bind_result|mysqli_stmt_close|mysqli_stmt_data_seek|mysqli_stmt_errno|mysqli_stmt_error|mysqli_stmt_execute|mysqli_stmt_fetch|mysqli_stmt_field_count|mysqli_stmt_free_result|mysqli_stmt_get_result|mysqli_stmt_get_warnings|mysqli_stmt_init|mysqli_stmt_insert_id|mysqli_stmt_next_result|mysqli_stmt_num_rows|mysqli_stmt_param_count|mysqli_stmt_prepare|mysqli_stmt_reset|mysqli_stmt_result_metadata|mysqli_stmt_send_long_data|mysqli_stmt_sqlstate|mysqli_stmt_store_result|mysqli_store_result|mysqli_thread_id|mysqli_thread_safe|mysqli_use_result|mysqli_warning|mysqli_warning_count|mysqlnd_ms_get_stats|mysqlnd_ms_query_is_select|mysqlnd_ms_set_user_pick_server|mysqlnd_qc_change_handler|mysqlnd_qc_clear_cache|mysqlnd_qc_get_cache_info|mysqlnd_qc_get_core_stats|mysqlnd_qc_get_handler|mysqlnd_qc_get_query_trace_log|mysqlnd_qc_set_user_handlers|natcasesort|natsort|ncurses_addch|ncurses_addchnstr|ncurses_addchstr|ncurses_addnstr|ncurses_addstr|ncurses_assume_default_colors|ncurses_attroff|ncurses_attron|ncurses_attrset|ncurses_baudrate|ncurses_beep|ncurses_bkgd|ncurses_bkgdset|ncurses_border|ncurses_bottom_panel|ncurses_can_change_color|ncurses_cbreak|ncurses_clear|ncurses_clrtobot|ncurses_clrtoeol|ncurses_color_content|ncurses_color_set|ncurses_curs_set|ncurses_def_prog_mode|ncurses_def_shell_mode|ncurses_define_key|ncurses_del_panel|ncurses_delay_output|ncurses_delch|ncurses_deleteln|ncurses_delwin|ncurses_doupdate|ncurses_echo|ncurses_echochar|ncurses_end|ncurses_erase|ncurses_erasechar|ncurses_filter|ncurses_flash|ncurses_flushinp|ncurses_getch|ncurses_getmaxyx|ncurses_getmouse|ncurses_getyx|ncurses_halfdelay|ncurses_has_colors|ncurses_has_ic|ncurses_has_il|ncurses_has_key|ncurses_hide_panel|ncurses_hline|ncurses_inch|ncurses_init|ncurses_init_color|ncurses_init_pair|ncurses_insch|ncurses_insdelln|ncurses_insertln|ncurses_insstr|ncurses_instr|ncurses_isendwin|ncurses_keyok|ncurses_keypad|ncurses_killchar|ncurses_longname|ncurses_meta|ncurses_mouse_trafo|ncurses_mouseinterval|ncurses_mousemask|ncurses_move|ncurses_move_panel|ncurses_mvaddch|ncurses_mvaddchnstr|ncurses_mvaddchstr|ncurses_mvaddnstr|ncurses_mvaddstr|ncurses_mvcur|ncurses_mvdelch|ncurses_mvgetch|ncurses_mvhline|ncurses_mvinch|ncurses_mvvline|ncurses_mvwaddstr|ncurses_napms|ncurses_new_panel|ncurses_newpad|ncurses_newwin|ncurses_nl|ncurses_nocbreak|ncurses_noecho|ncurses_nonl|ncurses_noqiflush|ncurses_noraw|ncurses_pair_content|ncurses_panel_above|ncurses_panel_below|ncurses_panel_window|ncurses_pnoutrefresh|ncurses_prefresh|ncurses_putp|ncurses_qiflush|ncurses_raw|ncurses_refresh|ncurses_replace_panel|ncurses_reset_prog_mode|ncurses_reset_shell_mode|ncurses_resetty|ncurses_savetty|ncurses_scr_dump|ncurses_scr_init|ncurses_scr_restore|ncurses_scr_set|ncurses_scrl|ncurses_show_panel|ncurses_slk_attr|ncurses_slk_attroff|ncurses_slk_attron|ncurses_slk_attrset|ncurses_slk_clear|ncurses_slk_color|ncurses_slk_init|ncurses_slk_noutrefresh|ncurses_slk_refresh|ncurses_slk_restore|ncurses_slk_set|ncurses_slk_touch|ncurses_standend|ncurses_standout|ncurses_start_color|ncurses_termattrs|ncurses_termname|ncurses_timeout|ncurses_top_panel|ncurses_typeahead|ncurses_ungetch|ncurses_ungetmouse|ncurses_update_panels|ncurses_use_default_colors|ncurses_use_env|ncurses_use_extended_names|ncurses_vidattr|ncurses_vline|ncurses_waddch|ncurses_waddstr|ncurses_wattroff|ncurses_wattron|ncurses_wattrset|ncurses_wborder|ncurses_wclear|ncurses_wcolor_set|ncurses_werase|ncurses_wgetch|ncurses_whline|ncurses_wmouse_trafo|ncurses_wmove|ncurses_wnoutrefresh|ncurses_wrefresh|ncurses_wstandend|ncurses_wstandout|ncurses_wvline|newinstance|newinstanceargs|newt_bell|newt_button|newt_button_bar|newt_centered_window|newt_checkbox|newt_checkbox_get_value|newt_checkbox_set_flags|newt_checkbox_set_value|newt_checkbox_tree|newt_checkbox_tree_add_item|newt_checkbox_tree_find_item|newt_checkbox_tree_get_current|newt_checkbox_tree_get_entry_value|newt_checkbox_tree_get_multi_selection|newt_checkbox_tree_get_selection|newt_checkbox_tree_multi|newt_checkbox_tree_set_current|newt_checkbox_tree_set_entry|newt_checkbox_tree_set_entry_value|newt_checkbox_tree_set_width|newt_clear_key_buffer|newt_cls|newt_compact_button|newt_component_add_callback|newt_component_takes_focus|newt_create_grid|newt_cursor_off|newt_cursor_on|newt_delay|newt_draw_form|newt_draw_root_text|newt_entry|newt_entry_get_value|newt_entry_set|newt_entry_set_filter|newt_entry_set_flags|newt_finished|newt_form|newt_form_add_component|newt_form_add_components|newt_form_add_hot_key|newt_form_destroy|newt_form_get_current|newt_form_run|newt_form_set_background|newt_form_set_height|newt_form_set_size|newt_form_set_timer|newt_form_set_width|newt_form_watch_fd|newt_get_screen_size|newt_grid_add_components_to_form|newt_grid_basic_window|newt_grid_free|newt_grid_get_size|newt_grid_h_close_stacked|newt_grid_h_stacked|newt_grid_place|newt_grid_set_field|newt_grid_simple_window|newt_grid_v_close_stacked|newt_grid_v_stacked|newt_grid_wrapped_window|newt_grid_wrapped_window_at|newt_init|newt_label|newt_label_set_text|newt_listbox|newt_listbox_append_entry|newt_listbox_clear|newt_listbox_clear_selection|newt_listbox_delete_entry|newt_listbox_get_current|newt_listbox_get_selection|newt_listbox_insert_entry|newt_listbox_item_count|newt_listbox_select_item|newt_listbox_set_current|newt_listbox_set_current_by_key|newt_listbox_set_data|newt_listbox_set_entry|newt_listbox_set_width|newt_listitem|newt_listitem_get_data|newt_listitem_set|newt_open_window|newt_pop_help_line|newt_pop_window|newt_push_help_line|newt_radio_get_current|newt_radiobutton|newt_redraw_help_line|newt_reflow_text|newt_refresh|newt_resize_screen|newt_resume|newt_run_form|newt_scale|newt_scale_set|newt_scrollbar_set|newt_set_help_callback|newt_set_suspend_callback|newt_suspend|newt_textbox|newt_textbox_get_num_lines|newt_textbox_reflowed|newt_textbox_set_height|newt_textbox_set_text|newt_vertical_scrollbar|newt_wait_for_key|newt_win_choice|newt_win_entries|newt_win_menu|newt_win_message|newt_win_messagev|newt_win_ternary|next|ngettext|nl2br|nl_langinfo|norewinditerator|normalizer|notes_body|notes_copy_db|notes_create_db|notes_create_note|notes_drop_db|notes_find_note|notes_header_info|notes_list_msgs|notes_mark_read|notes_mark_unread|notes_nav_create|notes_search|notes_unread|notes_version|nsapi_request_headers|nsapi_response_headers|nsapi_virtual|nthmac|number_format|numberformatter|oauth|oauth_get_sbs|oauth_urlencode|oauthexception|oauthprovider|ob_clean|ob_deflatehandler|ob_end_clean|ob_end_flush|ob_etaghandler|ob_flush|ob_get_clean|ob_get_contents|ob_get_flush|ob_get_length|ob_get_level|ob_get_status|ob_gzhandler|ob_iconv_handler|ob_implicit_flush|ob_inflatehandler|ob_list_handlers|ob_start|ob_tidyhandler|oci_bind_array_by_name|oci_bind_by_name|oci_cancel|oci_client_version|oci_close|oci_collection_append|oci_collection_assign|oci_collection_element_assign|oci_collection_element_get|oci_collection_free|oci_collection_max|oci_collection_size|oci_collection_trim|oci_commit|oci_connect|oci_define_by_name|oci_error|oci_execute|oci_fetch|oci_fetch_all|oci_fetch_array|oci_fetch_assoc|oci_fetch_object|oci_fetch_row|oci_field_is_null|oci_field_name|oci_field_precision|oci_field_scale|oci_field_size|oci_field_type|oci_field_type_raw|oci_free_statement|oci_internal_debug|oci_lob_append|oci_lob_close|oci_lob_copy|oci_lob_eof|oci_lob_erase|oci_lob_export|oci_lob_flush|oci_lob_free|oci_lob_getbuffering|oci_lob_import|oci_lob_is_equal|oci_lob_load|oci_lob_read|oci_lob_rewind|oci_lob_save|oci_lob_savefile|oci_lob_seek|oci_lob_setbuffering|oci_lob_size|oci_lob_tell|oci_lob_truncate|oci_lob_write|oci_lob_writetemporary|oci_lob_writetofile|oci_new_collection|oci_new_connect|oci_new_cursor|oci_new_descriptor|oci_num_fields|oci_num_rows|oci_parse|oci_password_change|oci_pconnect|oci_result|oci_rollback|oci_server_version|oci_set_action|oci_set_client_identifier|oci_set_client_info|oci_set_edition|oci_set_module_name|oci_set_prefetch|oci_statement_type|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|octdec|odbc_autocommit|odbc_binmode|odbc_close|odbc_close_all|odbc_columnprivileges|odbc_columns|odbc_commit|odbc_connect|odbc_cursor|odbc_data_source|odbc_do|odbc_error|odbc_errormsg|odbc_exec|odbc_execute|odbc_fetch_array|odbc_fetch_into|odbc_fetch_object|odbc_fetch_row|odbc_field_len|odbc_field_name|odbc_field_num|odbc_field_precision|odbc_field_scale|odbc_field_type|odbc_foreignkeys|odbc_free_result|odbc_gettypeinfo|odbc_longreadlen|odbc_next_result|odbc_num_fields|odbc_num_rows|odbc_pconnect|odbc_prepare|odbc_primarykeys|odbc_procedurecolumns|odbc_procedures|odbc_result|odbc_result_all|odbc_rollback|odbc_setoption|odbc_specialcolumns|odbc_statistics|odbc_tableprivileges|odbc_tables|openal_buffer_create|openal_buffer_data|openal_buffer_destroy|openal_buffer_get|openal_buffer_loadwav|openal_context_create|openal_context_current|openal_context_destroy|openal_context_process|openal_context_suspend|openal_device_close|openal_device_open|openal_listener_get|openal_listener_set|openal_source_create|openal_source_destroy|openal_source_get|openal_source_pause|openal_source_play|openal_source_rewind|openal_source_set|openal_source_stop|openal_stream|opendir|openlog|openssl_cipher_iv_length|openssl_csr_export|openssl_csr_export_to_file|openssl_csr_get_public_key|openssl_csr_get_subject|openssl_csr_new|openssl_csr_sign|openssl_decrypt|openssl_dh_compute_key|openssl_digest|openssl_encrypt|openssl_error_string|openssl_free_key|openssl_get_cipher_methods|openssl_get_md_methods|openssl_get_privatekey|openssl_get_publickey|openssl_open|openssl_pkcs12_export|openssl_pkcs12_export_to_file|openssl_pkcs12_read|openssl_pkcs7_decrypt|openssl_pkcs7_encrypt|openssl_pkcs7_sign|openssl_pkcs7_verify|openssl_pkey_export|openssl_pkey_export_to_file|openssl_pkey_free|openssl_pkey_get_details|openssl_pkey_get_private|openssl_pkey_get_public|openssl_pkey_new|openssl_private_decrypt|openssl_private_encrypt|openssl_public_decrypt|openssl_public_encrypt|openssl_random_pseudo_bytes|openssl_seal|openssl_sign|openssl_verify|openssl_x509_check_private_key|openssl_x509_checkpurpose|openssl_x509_export|openssl_x509_export_to_file|openssl_x509_free|openssl_x509_parse|openssl_x509_read|ord|outeriterator|outofboundsexception|outofrangeexception|output_add_rewrite_var|output_reset_rewrite_vars|overflowexception|overload|override_function|ovrimos_close|ovrimos_commit|ovrimos_connect|ovrimos_cursor|ovrimos_exec|ovrimos_execute|ovrimos_fetch_into|ovrimos_fetch_row|ovrimos_field_len|ovrimos_field_name|ovrimos_field_num|ovrimos_field_type|ovrimos_free_result|ovrimos_longreadlen|ovrimos_num_fields|ovrimos_num_rows|ovrimos_prepare|ovrimos_result|ovrimos_result_all|ovrimos_rollback|pack|parentiterator|parse_ini_file|parse_ini_string|parse_str|parse_url|parsekit_compile_file|parsekit_compile_string|parsekit_func_arginfo|passthru|pathinfo|pclose|pcntl_alarm|pcntl_exec|pcntl_fork|pcntl_getpriority|pcntl_setpriority|pcntl_signal|pcntl_signal_dispatch|pcntl_sigprocmask|pcntl_sigtimedwait|pcntl_sigwaitinfo|pcntl_wait|pcntl_waitpid|pcntl_wexitstatus|pcntl_wifexited|pcntl_wifsignaled|pcntl_wifstopped|pcntl_wstopsig|pcntl_wtermsig|pdf_activate_item|pdf_add_annotation|pdf_add_bookmark|pdf_add_launchlink|pdf_add_locallink|pdf_add_nameddest|pdf_add_note|pdf_add_outline|pdf_add_pdflink|pdf_add_table_cell|pdf_add_textflow|pdf_add_thumbnail|pdf_add_weblink|pdf_arc|pdf_arcn|pdf_attach_file|pdf_begin_document|pdf_begin_font|pdf_begin_glyph|pdf_begin_item|pdf_begin_layer|pdf_begin_page|pdf_begin_page_ext|pdf_begin_pattern|pdf_begin_template|pdf_begin_template_ext|pdf_circle|pdf_clip|pdf_close|pdf_close_image|pdf_close_pdi|pdf_close_pdi_page|pdf_closepath|pdf_closepath_fill_stroke|pdf_closepath_stroke|pdf_concat|pdf_continue_text|pdf_create_3dview|pdf_create_action|pdf_create_annotation|pdf_create_bookmark|pdf_create_field|pdf_create_fieldgroup|pdf_create_gstate|pdf_create_pvf|pdf_create_textflow|pdf_curveto|pdf_define_layer|pdf_delete|pdf_delete_pvf|pdf_delete_table|pdf_delete_textflow|pdf_encoding_set_char|pdf_end_document|pdf_end_font|pdf_end_glyph|pdf_end_item|pdf_end_layer|pdf_end_page|pdf_end_page_ext|pdf_end_pattern|pdf_end_template|pdf_endpath|pdf_fill|pdf_fill_imageblock|pdf_fill_pdfblock|pdf_fill_stroke|pdf_fill_textblock|pdf_findfont|pdf_fit_image|pdf_fit_pdi_page|pdf_fit_table|pdf_fit_textflow|pdf_fit_textline|pdf_get_apiname|pdf_get_buffer|pdf_get_errmsg|pdf_get_errnum|pdf_get_font|pdf_get_fontname|pdf_get_fontsize|pdf_get_image_height|pdf_get_image_width|pdf_get_majorversion|pdf_get_minorversion|pdf_get_parameter|pdf_get_pdi_parameter|pdf_get_pdi_value|pdf_get_value|pdf_info_font|pdf_info_matchbox|pdf_info_table|pdf_info_textflow|pdf_info_textline|pdf_initgraphics|pdf_lineto|pdf_load_3ddata|pdf_load_font|pdf_load_iccprofile|pdf_load_image|pdf_makespotcolor|pdf_moveto|pdf_new|pdf_open_ccitt|pdf_open_file|pdf_open_gif|pdf_open_image|pdf_open_image_file|pdf_open_jpeg|pdf_open_memory_image|pdf_open_pdi|pdf_open_pdi_document|pdf_open_pdi_page|pdf_open_tiff|pdf_pcos_get_number|pdf_pcos_get_stream|pdf_pcos_get_string|pdf_place_image|pdf_place_pdi_page|pdf_process_pdi|pdf_rect|pdf_restore|pdf_resume_page|pdf_rotate|pdf_save|pdf_scale|pdf_set_border_color|pdf_set_border_dash|pdf_set_border_style|pdf_set_char_spacing|pdf_set_duration|pdf_set_gstate|pdf_set_horiz_scaling|pdf_set_info|pdf_set_info_author|pdf_set_info_creator|pdf_set_info_keywords|pdf_set_info_subject|pdf_set_info_title|pdf_set_layer_dependency|pdf_set_leading|pdf_set_parameter|pdf_set_text_matrix|pdf_set_text_pos|pdf_set_text_rendering|pdf_set_text_rise|pdf_set_value|pdf_set_word_spacing|pdf_setcolor|pdf_setdash|pdf_setdashpattern|pdf_setflat|pdf_setfont|pdf_setgray|pdf_setgray_fill|pdf_setgray_stroke|pdf_setlinecap|pdf_setlinejoin|pdf_setlinewidth|pdf_setmatrix|pdf_setmiterlimit|pdf_setpolydash|pdf_setrgbcolor|pdf_setrgbcolor_fill|pdf_setrgbcolor_stroke|pdf_shading|pdf_shading_pattern|pdf_shfill|pdf_show|pdf_show_boxed|pdf_show_xy|pdf_skew|pdf_stringwidth|pdf_stroke|pdf_suspend_page|pdf_translate|pdf_utf16_to_utf8|pdf_utf32_to_utf16|pdf_utf8_to_utf16|pdo|pdo_cubrid_schema|pdo_pgsqllobcreate|pdo_pgsqllobopen|pdo_pgsqllobunlink|pdo_sqlitecreateaggregate|pdo_sqlitecreatefunction|pdoexception|pdostatement|pfsockopen|pg_affected_rows|pg_cancel_query|pg_client_encoding|pg_close|pg_connect|pg_connection_busy|pg_connection_reset|pg_connection_status|pg_convert|pg_copy_from|pg_copy_to|pg_dbname|pg_delete|pg_end_copy|pg_escape_bytea|pg_escape_string|pg_execute|pg_fetch_all|pg_fetch_all_columns|pg_fetch_array|pg_fetch_assoc|pg_fetch_object|pg_fetch_result|pg_fetch_row|pg_field_is_null|pg_field_name|pg_field_num|pg_field_prtlen|pg_field_size|pg_field_table|pg_field_type|pg_field_type_oid|pg_free_result|pg_get_notify|pg_get_pid|pg_get_result|pg_host|pg_insert|pg_last_error|pg_last_notice|pg_last_oid|pg_lo_close|pg_lo_create|pg_lo_export|pg_lo_import|pg_lo_open|pg_lo_read|pg_lo_read_all|pg_lo_seek|pg_lo_tell|pg_lo_unlink|pg_lo_write|pg_meta_data|pg_num_fields|pg_num_rows|pg_options|pg_parameter_status|pg_pconnect|pg_ping|pg_port|pg_prepare|pg_put_line|pg_query|pg_query_params|pg_result_error|pg_result_error_field|pg_result_seek|pg_result_status|pg_select|pg_send_execute|pg_send_prepare|pg_send_query|pg_send_query_params|pg_set_client_encoding|pg_set_error_verbosity|pg_trace|pg_transaction_status|pg_tty|pg_unescape_bytea|pg_untrace|pg_update|pg_version|php_check_syntax|php_ini_loaded_file|php_ini_scanned_files|php_logo_guid|php_sapi_name|php_strip_whitespace|php_uname|phpcredits|phpinfo|phpversion|pi|png2wbmp|popen|pos|posix_access|posix_ctermid|posix_errno|posix_get_last_error|posix_getcwd|posix_getegid|posix_geteuid|posix_getgid|posix_getgrgid|posix_getgrnam|posix_getgroups|posix_getlogin|posix_getpgid|posix_getpgrp|posix_getpid|posix_getppid|posix_getpwnam|posix_getpwuid|posix_getrlimit|posix_getsid|posix_getuid|posix_initgroups|posix_isatty|posix_kill|posix_mkfifo|posix_mknod|posix_setegid|posix_seteuid|posix_setgid|posix_setpgid|posix_setsid|posix_setuid|posix_strerror|posix_times|posix_ttyname|posix_uname|pow|preg_filter|preg_grep|preg_last_error|preg_match|preg_match_all|preg_quote|preg_replace|preg_replace_callback|preg_split|prev|print|print_r|printer_abort|printer_close|printer_create_brush|printer_create_dc|printer_create_font|printer_create_pen|printer_delete_brush|printer_delete_dc|printer_delete_font|printer_delete_pen|printer_draw_bmp|printer_draw_chord|printer_draw_elipse|printer_draw_line|printer_draw_pie|printer_draw_rectangle|printer_draw_roundrect|printer_draw_text|printer_end_doc|printer_end_page|printer_get_option|printer_list|printer_logical_fontheight|printer_open|printer_select_brush|printer_select_font|printer_select_pen|printer_set_option|printer_start_doc|printer_start_page|printer_write|printf|proc_close|proc_get_status|proc_nice|proc_open|proc_terminate|property_exists|ps_add_bookmark|ps_add_launchlink|ps_add_locallink|ps_add_note|ps_add_pdflink|ps_add_weblink|ps_arc|ps_arcn|ps_begin_page|ps_begin_pattern|ps_begin_template|ps_circle|ps_clip|ps_close|ps_close_image|ps_closepath|ps_closepath_stroke|ps_continue_text|ps_curveto|ps_delete|ps_end_page|ps_end_pattern|ps_end_template|ps_fill|ps_fill_stroke|ps_findfont|ps_get_buffer|ps_get_parameter|ps_get_value|ps_hyphenate|ps_include_file|ps_lineto|ps_makespotcolor|ps_moveto|ps_new|ps_open_file|ps_open_image|ps_open_image_file|ps_open_memory_image|ps_place_image|ps_rect|ps_restore|ps_rotate|ps_save|ps_scale|ps_set_border_color|ps_set_border_dash|ps_set_border_style|ps_set_info|ps_set_parameter|ps_set_text_pos|ps_set_value|ps_setcolor|ps_setdash|ps_setflat|ps_setfont|ps_setgray|ps_setlinecap|ps_setlinejoin|ps_setlinewidth|ps_setmiterlimit|ps_setoverprintmode|ps_setpolydash|ps_shading|ps_shading_pattern|ps_shfill|ps_show|ps_show2|ps_show_boxed|ps_show_xy|ps_show_xy2|ps_string_geometry|ps_stringwidth|ps_stroke|ps_symbol|ps_symbol_name|ps_symbol_width|ps_translate|pspell_add_to_personal|pspell_add_to_session|pspell_check|pspell_clear_session|pspell_config_create|pspell_config_data_dir|pspell_config_dict_dir|pspell_config_ignore|pspell_config_mode|pspell_config_personal|pspell_config_repl|pspell_config_runtogether|pspell_config_save_repl|pspell_new|pspell_new_config|pspell_new_personal|pspell_save_wordlist|pspell_store_replacement|pspell_suggest|putenv|px_close|px_create_fp|px_date2string|px_delete|px_delete_record|px_get_field|px_get_info|px_get_parameter|px_get_record|px_get_schema|px_get_value|px_insert_record|px_new|px_numfields|px_numrecords|px_open_fp|px_put_record|px_retrieve_record|px_set_blob_file|px_set_parameter|px_set_tablename|px_set_targetencoding|px_set_value|px_timestamp2string|px_update_record|qdom_error|qdom_tree|quoted_printable_decode|quoted_printable_encode|quotemeta|rad2deg|radius_acct_open|radius_add_server|radius_auth_open|radius_close|radius_config|radius_create_request|radius_cvt_addr|radius_cvt_int|radius_cvt_string|radius_demangle|radius_demangle_mppe_key|radius_get_attr|radius_get_vendor_attr|radius_put_addr|radius_put_attr|radius_put_int|radius_put_string|radius_put_vendor_addr|radius_put_vendor_attr|radius_put_vendor_int|radius_put_vendor_string|radius_request_authenticator|radius_send_request|radius_server_secret|radius_strerror|rand|range|rangeexception|rar_wrapper_cache_stats|rararchive|rarentry|rarexception|rawurldecode|rawurlencode|read_exif_data|readdir|readfile|readgzfile|readline|readline_add_history|readline_callback_handler_install|readline_callback_handler_remove|readline_callback_read_char|readline_clear_history|readline_completion_function|readline_info|readline_list_history|readline_on_new_line|readline_read_history|readline_redisplay|readline_write_history|readlink|realpath|realpath_cache_get|realpath_cache_size|recode|recode_file|recode_string|recursivearrayiterator|recursivecachingiterator|recursivecallbackfilteriterator|recursivedirectoryiterator|recursivefilteriterator|recursiveiterator|recursiveiteratoriterator|recursiveregexiterator|recursivetreeiterator|reflection|reflectionclass|reflectionexception|reflectionextension|reflectionfunction|reflectionfunctionabstract|reflectionmethod|reflectionobject|reflectionparameter|reflectionproperty|reflector|regexiterator|register_shutdown_function|register_tick_function|rename|rename_function|require|require_once|reset|resetValue|resourcebundle|restore_error_handler|restore_exception_handler|restore_include_path|return|rewind|rewinddir|rmdir|round|rpm_close|rpm_get_tag|rpm_is_valid|rpm_open|rpm_version|rrd_create|rrd_error|rrd_fetch|rrd_first|rrd_graph|rrd_info|rrd_last|rrd_lastupdate|rrd_restore|rrd_tune|rrd_update|rrd_xport|rrdcreator|rrdgraph|rrdupdater|rsort|rtrim|runkit_class_adopt|runkit_class_emancipate|runkit_constant_add|runkit_constant_redefine|runkit_constant_remove|runkit_function_add|runkit_function_copy|runkit_function_redefine|runkit_function_remove|runkit_function_rename|runkit_import|runkit_lint|runkit_lint_file|runkit_method_add|runkit_method_copy|runkit_method_redefine|runkit_method_remove|runkit_method_rename|runkit_return_value_used|runkit_sandbox_output_handler|runkit_superglobals|runtimeexception|samconnection_commit|samconnection_connect|samconnection_constructor|samconnection_disconnect|samconnection_errno|samconnection_error|samconnection_isconnected|samconnection_peek|samconnection_peekall|samconnection_receive|samconnection_remove|samconnection_rollback|samconnection_send|samconnection_setDebug|samconnection_subscribe|samconnection_unsubscribe|sammessage_body|sammessage_constructor|sammessage_header|sca_createdataobject|sca_getservice|sca_localproxy_createdataobject|sca_soapproxy_createdataobject|scandir|sdo_das_changesummary_beginlogging|sdo_das_changesummary_endlogging|sdo_das_changesummary_getchangeddataobjects|sdo_das_changesummary_getchangetype|sdo_das_changesummary_getoldcontainer|sdo_das_changesummary_getoldvalues|sdo_das_changesummary_islogging|sdo_das_datafactory_addpropertytotype|sdo_das_datafactory_addtype|sdo_das_datafactory_getdatafactory|sdo_das_dataobject_getchangesummary|sdo_das_relational_applychanges|sdo_das_relational_construct|sdo_das_relational_createrootdataobject|sdo_das_relational_executepreparedquery|sdo_das_relational_executequery|sdo_das_setting_getlistindex|sdo_das_setting_getpropertyindex|sdo_das_setting_getpropertyname|sdo_das_setting_getvalue|sdo_das_setting_isset|sdo_das_xml_addtypes|sdo_das_xml_create|sdo_das_xml_createdataobject|sdo_das_xml_createdocument|sdo_das_xml_document_getrootdataobject|sdo_das_xml_document_getrootelementname|sdo_das_xml_document_getrootelementuri|sdo_das_xml_document_setencoding|sdo_das_xml_document_setxmldeclaration|sdo_das_xml_document_setxmlversion|sdo_das_xml_loadfile|sdo_das_xml_loadstring|sdo_das_xml_savefile|sdo_das_xml_savestring|sdo_datafactory_create|sdo_dataobject_clear|sdo_dataobject_createdataobject|sdo_dataobject_getcontainer|sdo_dataobject_getsequence|sdo_dataobject_gettypename|sdo_dataobject_gettypenamespaceuri|sdo_exception_getcause|sdo_list_insert|sdo_model_property_getcontainingtype|sdo_model_property_getdefault|sdo_model_property_getname|sdo_model_property_gettype|sdo_model_property_iscontainment|sdo_model_property_ismany|sdo_model_reflectiondataobject_construct|sdo_model_reflectiondataobject_export|sdo_model_reflectiondataobject_getcontainmentproperty|sdo_model_reflectiondataobject_getinstanceproperties|sdo_model_reflectiondataobject_gettype|sdo_model_type_getbasetype|sdo_model_type_getname|sdo_model_type_getnamespaceuri|sdo_model_type_getproperties|sdo_model_type_getproperty|sdo_model_type_isabstracttype|sdo_model_type_isdatatype|sdo_model_type_isinstance|sdo_model_type_isopentype|sdo_model_type_issequencedtype|sdo_sequence_getproperty|sdo_sequence_insert|sdo_sequence_move|seekableiterator|sem_acquire|sem_get|sem_release|sem_remove|serializable|serialize|session_cache_expire|session_cache_limiter|session_commit|session_decode|session_destroy|session_encode|session_get_cookie_params|session_id|session_is_registered|session_module_name|session_name|session_pgsql_add_error|session_pgsql_get_error|session_pgsql_get_field|session_pgsql_reset|session_pgsql_set_field|session_pgsql_status|session_regenerate_id|session_register|session_save_path|session_set_cookie_params|session_set_save_handler|session_start|session_unregister|session_unset|session_write_close|setCounterClass|set_error_handler|set_exception_handler|set_file_buffer|set_include_path|set_magic_quotes_runtime|set_socket_blocking|set_time_limit|setcookie|setlocale|setproctitle|setrawcookie|setstaticpropertyvalue|setthreadtitle|settype|sha1|sha1_file|shell_exec|shm_attach|shm_detach|shm_get_var|shm_has_var|shm_put_var|shm_remove|shm_remove_var|shmop_close|shmop_delete|shmop_open|shmop_read|shmop_size|shmop_write|show_source|shuffle|signeurlpaiement|similar_text|simplexml_import_dom|simplexml_load_file|simplexml_load_string|simplexmlelement|simplexmliterator|sin|sinh|sizeof|sleep|snmp|snmp2_get|snmp2_getnext|snmp2_real_walk|snmp2_set|snmp2_walk|snmp3_get|snmp3_getnext|snmp3_real_walk|snmp3_set|snmp3_walk|snmp_get_quick_print|snmp_get_valueretrieval|snmp_read_mib|snmp_set_enum_print|snmp_set_oid_numeric_print|snmp_set_oid_output_format|snmp_set_quick_print|snmp_set_valueretrieval|snmpget|snmpgetnext|snmprealwalk|snmpset|snmpwalk|snmpwalkoid|soapclient|soapfault|soapheader|soapparam|soapserver|soapvar|socket_accept|socket_bind|socket_clear_error|socket_close|socket_connect|socket_create|socket_create_listen|socket_create_pair|socket_get_option|socket_get_status|socket_getpeername|socket_getsockname|socket_last_error|socket_listen|socket_read|socket_recv|socket_recvfrom|socket_select|socket_send|socket_sendto|socket_set_block|socket_set_blocking|socket_set_nonblock|socket_set_option|socket_set_timeout|socket_shutdown|socket_strerror|socket_write|solr_get_version|solrclient|solrclientexception|solrdocument|solrdocumentfield|solrexception|solrgenericresponse|solrillegalargumentexception|solrillegaloperationexception|solrinputdocument|solrmodifiableparams|solrobject|solrparams|solrpingresponse|solrquery|solrqueryresponse|solrresponse|solrupdateresponse|solrutils|sort|soundex|sphinxclient|spl_autoload|spl_autoload_call|spl_autoload_extensions|spl_autoload_functions|spl_autoload_register|spl_autoload_unregister|spl_classes|spl_object_hash|splbool|spldoublylinkedlist|splenum|splfileinfo|splfileobject|splfixedarray|splfloat|splheap|splint|split|spliti|splmaxheap|splminheap|splobjectstorage|splobserver|splpriorityqueue|splqueue|splstack|splstring|splsubject|spltempfileobject|spoofchecker|sprintf|sql_regcase|sqlite3|sqlite3result|sqlite3stmt|sqlite_array_query|sqlite_busy_timeout|sqlite_changes|sqlite_close|sqlite_column|sqlite_create_aggregate|sqlite_create_function|sqlite_current|sqlite_error_string|sqlite_escape_string|sqlite_exec|sqlite_factory|sqlite_fetch_all|sqlite_fetch_array|sqlite_fetch_column_types|sqlite_fetch_object|sqlite_fetch_single|sqlite_fetch_string|sqlite_field_name|sqlite_has_more|sqlite_has_prev|sqlite_key|sqlite_last_error|sqlite_last_insert_rowid|sqlite_libencoding|sqlite_libversion|sqlite_next|sqlite_num_fields|sqlite_num_rows|sqlite_open|sqlite_popen|sqlite_prev|sqlite_query|sqlite_rewind|sqlite_seek|sqlite_single_query|sqlite_udf_decode_binary|sqlite_udf_encode_binary|sqlite_unbuffered_query|sqlite_valid|sqrt|srand|sscanf|ssdeep_fuzzy_compare|ssdeep_fuzzy_hash|ssdeep_fuzzy_hash_filename|ssh2_auth_hostbased_file|ssh2_auth_none|ssh2_auth_password|ssh2_auth_pubkey_file|ssh2_connect|ssh2_exec|ssh2_fetch_stream|ssh2_fingerprint|ssh2_methods_negotiated|ssh2_publickey_add|ssh2_publickey_init|ssh2_publickey_list|ssh2_publickey_remove|ssh2_scp_recv|ssh2_scp_send|ssh2_sftp|ssh2_sftp_lstat|ssh2_sftp_mkdir|ssh2_sftp_readlink|ssh2_sftp_realpath|ssh2_sftp_rename|ssh2_sftp_rmdir|ssh2_sftp_stat|ssh2_sftp_symlink|ssh2_sftp_unlink|ssh2_shell|ssh2_tunnel|stat|stats_absolute_deviation|stats_cdf_beta|stats_cdf_binomial|stats_cdf_cauchy|stats_cdf_chisquare|stats_cdf_exponential|stats_cdf_f|stats_cdf_gamma|stats_cdf_laplace|stats_cdf_logistic|stats_cdf_negative_binomial|stats_cdf_noncentral_chisquare|stats_cdf_noncentral_f|stats_cdf_poisson|stats_cdf_t|stats_cdf_uniform|stats_cdf_weibull|stats_covariance|stats_den_uniform|stats_dens_beta|stats_dens_cauchy|stats_dens_chisquare|stats_dens_exponential|stats_dens_f|stats_dens_gamma|stats_dens_laplace|stats_dens_logistic|stats_dens_negative_binomial|stats_dens_normal|stats_dens_pmf_binomial|stats_dens_pmf_hypergeometric|stats_dens_pmf_poisson|stats_dens_t|stats_dens_weibull|stats_harmonic_mean|stats_kurtosis|stats_rand_gen_beta|stats_rand_gen_chisquare|stats_rand_gen_exponential|stats_rand_gen_f|stats_rand_gen_funiform|stats_rand_gen_gamma|stats_rand_gen_ibinomial|stats_rand_gen_ibinomial_negative|stats_rand_gen_int|stats_rand_gen_ipoisson|stats_rand_gen_iuniform|stats_rand_gen_noncenral_chisquare|stats_rand_gen_noncentral_f|stats_rand_gen_noncentral_t|stats_rand_gen_normal|stats_rand_gen_t|stats_rand_get_seeds|stats_rand_phrase_to_seeds|stats_rand_ranf|stats_rand_setall|stats_skew|stats_standard_deviation|stats_stat_binomial_coef|stats_stat_correlation|stats_stat_gennch|stats_stat_independent_t|stats_stat_innerproduct|stats_stat_noncentral_t|stats_stat_paired_t|stats_stat_percentile|stats_stat_powersum|stats_variance|stomp|stomp_connect_error|stomp_version|stompexception|stompframe|str_getcsv|str_ireplace|str_pad|str_repeat|str_replace|str_rot13|str_shuffle|str_split|str_word_count|strcasecmp|strchr|strcmp|strcoll|strcspn|stream_bucket_append|stream_bucket_make_writeable|stream_bucket_new|stream_bucket_prepend|stream_context_create|stream_context_get_default|stream_context_get_options|stream_context_get_params|stream_context_set_default|stream_context_set_option|stream_context_set_params|stream_copy_to_stream|stream_encoding|stream_filter_append|stream_filter_prepend|stream_filter_register|stream_filter_remove|stream_get_contents|stream_get_filters|stream_get_line|stream_get_meta_data|stream_get_transports|stream_get_wrappers|stream_is_local|stream_notification_callback|stream_register_wrapper|stream_resolve_include_path|stream_select|stream_set_blocking|stream_set_read_buffer|stream_set_timeout|stream_set_write_buffer|stream_socket_accept|stream_socket_client|stream_socket_enable_crypto|stream_socket_get_name|stream_socket_pair|stream_socket_recvfrom|stream_socket_sendto|stream_socket_server|stream_socket_shutdown|stream_supports_lock|stream_wrapper_register|stream_wrapper_restore|stream_wrapper_unregister|streamwrapper|strftime|strip_tags|stripcslashes|stripos|stripslashes|stristr|strlen|strnatcasecmp|strnatcmp|strncasecmp|strncmp|strpbrk|strpos|strptime|strrchr|strrev|strripos|strrpos|strspn|strstr|strtok|strtolower|strtotime|strtoupper|strtr|strval|substr|substr_compare|substr_count|substr_replace|svm|svmmodel|svn_add|svn_auth_get_parameter|svn_auth_set_parameter|svn_blame|svn_cat|svn_checkout|svn_cleanup|svn_client_version|svn_commit|svn_delete|svn_diff|svn_export|svn_fs_abort_txn|svn_fs_apply_text|svn_fs_begin_txn2|svn_fs_change_node_prop|svn_fs_check_path|svn_fs_contents_changed|svn_fs_copy|svn_fs_delete|svn_fs_dir_entries|svn_fs_file_contents|svn_fs_file_length|svn_fs_is_dir|svn_fs_is_file|svn_fs_make_dir|svn_fs_make_file|svn_fs_node_created_rev|svn_fs_node_prop|svn_fs_props_changed|svn_fs_revision_prop|svn_fs_revision_root|svn_fs_txn_root|svn_fs_youngest_rev|svn_import|svn_log|svn_ls|svn_mkdir|svn_repos_create|svn_repos_fs|svn_repos_fs_begin_txn_for_commit|svn_repos_fs_commit_txn|svn_repos_hotcopy|svn_repos_open|svn_repos_recover|svn_revert|svn_status|svn_update|swf_actiongeturl|swf_actiongotoframe|swf_actiongotolabel|swf_actionnextframe|swf_actionplay|swf_actionprevframe|swf_actionsettarget|swf_actionstop|swf_actiontogglequality|swf_actionwaitforframe|swf_addbuttonrecord|swf_addcolor|swf_closefile|swf_definebitmap|swf_definefont|swf_defineline|swf_definepoly|swf_definerect|swf_definetext|swf_endbutton|swf_enddoaction|swf_endshape|swf_endsymbol|swf_fontsize|swf_fontslant|swf_fonttracking|swf_getbitmapinfo|swf_getfontinfo|swf_getframe|swf_labelframe|swf_lookat|swf_modifyobject|swf_mulcolor|swf_nextid|swf_oncondition|swf_openfile|swf_ortho|swf_ortho2|swf_perspective|swf_placeobject|swf_polarview|swf_popmatrix|swf_posround|swf_pushmatrix|swf_removeobject|swf_rotate|swf_scale|swf_setfont|swf_setframe|swf_shapearc|swf_shapecurveto|swf_shapecurveto3|swf_shapefillbitmapclip|swf_shapefillbitmaptile|swf_shapefilloff|swf_shapefillsolid|swf_shapelinesolid|swf_shapelineto|swf_shapemoveto|swf_showframe|swf_startbutton|swf_startdoaction|swf_startshape|swf_startsymbol|swf_textwidth|swf_translate|swf_viewport|swfaction|swfbitmap|swfbutton|swfdisplayitem|swffill|swffont|swffontchar|swfgradient|swfmorph|swfmovie|swfprebuiltclip|swfshape|swfsound|swfsoundinstance|swfsprite|swftext|swftextfield|swfvideostream|swish_construct|swish_getmetalist|swish_getpropertylist|swish_prepare|swish_query|swishresult_getmetalist|swishresult_stem|swishresults_getparsedwords|swishresults_getremovedstopwords|swishresults_nextresult|swishresults_seekresult|swishsearch_execute|swishsearch_resetlimit|swishsearch_setlimit|swishsearch_setphrasedelimiter|swishsearch_setsort|swishsearch_setstructure|sybase_affected_rows|sybase_close|sybase_connect|sybase_data_seek|sybase_deadlock_retry_count|sybase_fetch_array|sybase_fetch_assoc|sybase_fetch_field|sybase_fetch_object|sybase_fetch_row|sybase_field_seek|sybase_free_result|sybase_get_last_message|sybase_min_client_severity|sybase_min_error_severity|sybase_min_message_severity|sybase_min_server_severity|sybase_num_fields|sybase_num_rows|sybase_pconnect|sybase_query|sybase_result|sybase_select_db|sybase_set_message_handler|sybase_unbuffered_query|symlink|sys_get_temp_dir|sys_getloadavg|syslog|system|tag|tan|tanh|tcpwrap_check|tempnam|textdomain|tidy|tidy_access_count|tidy_config_count|tidy_diagnose|tidy_error_count|tidy_get_error_buffer|tidy_get_output|tidy_load_config|tidy_reset_config|tidy_save_config|tidy_set_encoding|tidy_setopt|tidy_warning_count|tidynode|time|time_nanosleep|time_sleep_until|timezone_abbreviations_list|timezone_identifiers_list|timezone_location_get|timezone_name_from_abbr|timezone_name_get|timezone_offset_get|timezone_open|timezone_transitions_get|timezone_version_get|tmpfile|token_get_all|token_name|tokyotyrant|tokyotyrantquery|tokyotyranttable|tostring|tostring|touch|trait_exists|transliterator|traversable|trigger_error|trim|uasort|ucfirst|ucwords|udm_add_search_limit|udm_alloc_agent|udm_alloc_agent_array|udm_api_version|udm_cat_list|udm_cat_path|udm_check_charset|udm_check_stored|udm_clear_search_limits|udm_close_stored|udm_crc32|udm_errno|udm_error|udm_find|udm_free_agent|udm_free_ispell_data|udm_free_res|udm_get_doc_count|udm_get_res_field|udm_get_res_param|udm_hash32|udm_load_ispell_data|udm_open_stored|udm_set_agent_param|uksort|umask|underflowexception|unexpectedvalueexception|uniqid|unixtojd|unlink|unpack|unregister_tick_function|unserialize|unset|urldecode|urlencode|use_soap_error_handler|user_error|usleep|usort|utf8_decode|utf8_encode|v8js|v8jsexception|var_dump|var_export|variant|variant_abs|variant_add|variant_and|variant_cast|variant_cat|variant_cmp|variant_date_from_timestamp|variant_date_to_timestamp|variant_div|variant_eqv|variant_fix|variant_get_type|variant_idiv|variant_imp|variant_int|variant_mod|variant_mul|variant_neg|variant_not|variant_or|variant_pow|variant_round|variant_set|variant_set_type|variant_sub|variant_xor|version_compare|vfprintf|virtual|vpopmail_add_alias_domain|vpopmail_add_alias_domain_ex|vpopmail_add_domain|vpopmail_add_domain_ex|vpopmail_add_user|vpopmail_alias_add|vpopmail_alias_del|vpopmail_alias_del_domain|vpopmail_alias_get|vpopmail_alias_get_all|vpopmail_auth_user|vpopmail_del_domain|vpopmail_del_domain_ex|vpopmail_del_user|vpopmail_error|vpopmail_passwd|vpopmail_set_user_quota|vprintf|vsprintf|w32api_deftype|w32api_init_dtype|w32api_invoke_function|w32api_register_function|w32api_set_call_method|wddx_add_vars|wddx_deserialize|wddx_packet_end|wddx_packet_start|wddx_serialize_value|wddx_serialize_vars|win32_continue_service|win32_create_service|win32_delete_service|win32_get_last_control_message|win32_pause_service|win32_ps_list_procs|win32_ps_stat_mem|win32_ps_stat_proc|win32_query_service_status|win32_set_service_status|win32_start_service|win32_start_service_ctrl_dispatcher|win32_stop_service|wincache_fcache_fileinfo|wincache_fcache_meminfo|wincache_lock|wincache_ocache_fileinfo|wincache_ocache_meminfo|wincache_refresh_if_changed|wincache_rplist_fileinfo|wincache_rplist_meminfo|wincache_scache_info|wincache_scache_meminfo|wincache_ucache_add|wincache_ucache_cas|wincache_ucache_clear|wincache_ucache_dec|wincache_ucache_delete|wincache_ucache_exists|wincache_ucache_get|wincache_ucache_inc|wincache_ucache_info|wincache_ucache_meminfo|wincache_ucache_set|wincache_unlock|wordwrap|xattr_get|xattr_list|xattr_remove|xattr_set|xattr_supported|xdiff_file_bdiff|xdiff_file_bdiff_size|xdiff_file_bpatch|xdiff_file_diff|xdiff_file_diff_binary|xdiff_file_merge3|xdiff_file_patch|xdiff_file_patch_binary|xdiff_file_rabdiff|xdiff_string_bdiff|xdiff_string_bdiff_size|xdiff_string_bpatch|xdiff_string_diff|xdiff_string_diff_binary|xdiff_string_merge3|xdiff_string_patch|xdiff_string_patch_binary|xdiff_string_rabdiff|xhprof_disable|xhprof_enable|xhprof_sample_disable|xhprof_sample_enable|xml_error_string|xml_get_current_byte_index|xml_get_current_column_number|xml_get_current_line_number|xml_get_error_code|xml_parse|xml_parse_into_struct|xml_parser_create|xml_parser_create_ns|xml_parser_free|xml_parser_get_option|xml_parser_set_option|xml_set_character_data_handler|xml_set_default_handler|xml_set_element_handler|xml_set_end_namespace_decl_handler|xml_set_external_entity_ref_handler|xml_set_notation_decl_handler|xml_set_object|xml_set_processing_instruction_handler|xml_set_start_namespace_decl_handler|xml_set_unparsed_entity_decl_handler|xmlreader|xmlrpc_decode|xmlrpc_decode_request|xmlrpc_encode|xmlrpc_encode_request|xmlrpc_get_type|xmlrpc_is_fault|xmlrpc_parse_method_descriptions|xmlrpc_server_add_introspection_data|xmlrpc_server_call_method|xmlrpc_server_create|xmlrpc_server_destroy|xmlrpc_server_register_introspection_callback|xmlrpc_server_register_method|xmlrpc_set_type|xmlwriter_end_attribute|xmlwriter_end_cdata|xmlwriter_end_comment|xmlwriter_end_document|xmlwriter_end_dtd|xmlwriter_end_dtd_attlist|xmlwriter_end_dtd_element|xmlwriter_end_dtd_entity|xmlwriter_end_element|xmlwriter_end_pi|xmlwriter_flush|xmlwriter_full_end_element|xmlwriter_open_memory|xmlwriter_open_uri|xmlwriter_output_memory|xmlwriter_set_indent|xmlwriter_set_indent_string|xmlwriter_start_attribute|xmlwriter_start_attribute_ns|xmlwriter_start_cdata|xmlwriter_start_comment|xmlwriter_start_document|xmlwriter_start_dtd|xmlwriter_start_dtd_attlist|xmlwriter_start_dtd_element|xmlwriter_start_dtd_entity|xmlwriter_start_element|xmlwriter_start_element_ns|xmlwriter_start_pi|xmlwriter_text|xmlwriter_write_attribute|xmlwriter_write_attribute_ns|xmlwriter_write_cdata|xmlwriter_write_comment|xmlwriter_write_dtd|xmlwriter_write_dtd_attlist|xmlwriter_write_dtd_element|xmlwriter_write_dtd_entity|xmlwriter_write_element|xmlwriter_write_element_ns|xmlwriter_write_pi|xmlwriter_write_raw|xpath_eval|xpath_eval_expression|xpath_new_context|xpath_register_ns|xpath_register_ns_auto|xptr_eval|xptr_new_context|xslt_backend_info|xslt_backend_name|xslt_backend_version|xslt_create|xslt_errno|xslt_error|xslt_free|xslt_getopt|xslt_process|xslt_set_base|xslt_set_encoding|xslt_set_error_handler|xslt_set_log|xslt_set_object|xslt_set_sax_handler|xslt_set_sax_handlers|xslt_set_scheme_handler|xslt_set_scheme_handlers|xslt_setopt|xsltprocessor|yaml_emit|yaml_emit_file|yaml_parse|yaml_parse_file|yaml_parse_url|yaz_addinfo|yaz_ccl_conf|yaz_ccl_parse|yaz_close|yaz_connect|yaz_database|yaz_element|yaz_errno|yaz_error|yaz_es|yaz_es_result|yaz_get_option|yaz_hits|yaz_itemorder|yaz_present|yaz_range|yaz_record|yaz_scan|yaz_scan_result|yaz_schema|yaz_search|yaz_set_option|yaz_sort|yaz_syntax|yaz_wait|yp_all|yp_cat|yp_err_string|yp_errno|yp_first|yp_get_default_domain|yp_master|yp_match|yp_next|yp_order|zend_logo_guid|zend_thread_id|zend_version|zip_close|zip_entry_close|zip_entry_compressedsize|zip_entry_compressionmethod|zip_entry_filesize|zip_entry_name|zip_entry_open|zip_entry_read|zip_open|zip_read|ziparchive|ziparchive_addemptydir|ziparchive_addfile|ziparchive_addfromstring|ziparchive_close|ziparchive_deleteindex|ziparchive_deletename|ziparchive_extractto|ziparchive_getarchivecomment|ziparchive_getcommentindex|ziparchive_getcommentname|ziparchive_getfromindex|ziparchive_getfromname|ziparchive_getnameindex|ziparchive_getstatusstring|ziparchive_getstream|ziparchive_locatename|ziparchive_open|ziparchive_renameindex|ziparchive_renamename|ziparchive_setCommentName|ziparchive_setarchivecomment|ziparchive_setcommentindex|ziparchive_statindex|ziparchive_statname|ziparchive_unchangeall|ziparchive_unchangearchive|ziparchive_unchangeindex|ziparchive_unchangename|zlib_get_coding_type\".split(\"|\")),n=i.arrayToMap(\"abstract|and|array|as|break|case|catch|class|clone|const|continue|declare|default|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|final|for|foreach|function|global|goto|if|implements|interface|instanceof|namespace|new|or|private|protected|public|static|switch|throw|trait|try|use|var|while|xor\".split(\"|\")),r=i.arrayToMap(\"die|echo|empty|exit|eval|include|include_once|isset|list|require|require_once|return|print|unset\".split(\"|\")),o=i.arrayToMap(\"true|TRUE|false|FALSE|null|NULL|__CLASS__|__DIR__|__FILE__|__LINE__|__METHOD__|__FUNCTION__|__NAMESPACE__\".split(\"|\")),u=i.arrayToMap(\"$GLOBALS|$_SERVER|$_GET|$_POST|$_FILES|$_REQUEST|$_SESSION|$_ENV|$_COOKIE|$php_errormsg|$HTTP_RAW_POST_DATA|$http_response_header|$argc|$argv\".split(\"|\")),a=i.arrayToMap(\"key_exists|cairo_matrix_create_scale|cairo_matrix_create_translate|call_user_method|call_user_method_array|com_addref|com_get|com_invoke|com_isenum|com_load|com_release|com_set|connection_timeout|cubrid_load_from_glo|cubrid_new_glo|cubrid_save_to_glo|cubrid_send_glo|define_syslog_variables|dl|ereg|ereg_replace|eregi|eregi_replace|hw_documentattributes|hw_documentbodytag|hw_documentsize|hw_outputdocument|imagedashedline|maxdb_bind_param|maxdb_bind_result|maxdb_client_encoding|maxdb_close_long_data|maxdb_execute|maxdb_fetch|maxdb_get_metadata|maxdb_param_count|maxdb_send_long_data|mcrypt_ecb|mcrypt_generic_end|mime_content_type|mysql_createdb|mysql_dbname|mysql_db_query|mysql_drop_db|mysql_dropdb|mysql_escape_string|mysql_fieldflags|mysql_fieldflags|mysql_fieldname|mysql_fieldtable|mysql_fieldtype|mysql_freeresult|mysql_listdbs|mysql_list_fields|mysql_listfields|mysql_list_tables|mysql_listtables|mysql_numfields|mysql_numrows|mysql_selectdb|mysql_tablename|mysqli_bind_param|mysqli_bind_result|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_slave_query|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|PDF_add_annotation|PDF_add_bookmark|PDF_add_launchlink|PDF_add_locallink|PDF_add_note|PDF_add_outline|PDF_add_pdflink|PDF_add_weblink|PDF_attach_file|PDF_begin_page|PDF_begin_template|PDF_close_pdi|PDF_close|PDF_findfont|PDF_get_font|PDF_get_fontname|PDF_get_fontsize|PDF_get_image_height|PDF_get_image_width|PDF_get_majorversion|PDF_get_minorversion|PDF_get_pdi_parameter|PDF_get_pdi_value|PDF_open_ccitt|PDF_open_file|PDF_open_gif|PDF_open_image_file|PDF_open_image|PDF_open_jpeg|PDF_open_pdi|PDF_open_tiff|PDF_place_image|PDF_place_pdi_page|PDF_set_border_color|PDF_set_border_dash|PDF_set_border_style|PDF_set_char_spacing|PDF_set_duration|PDF_set_horiz_scaling|PDF_set_info_author|PDF_set_info_creator|PDF_set_info_keywords|PDF_set_info_subject|PDF_set_info_title|PDF_set_leading|PDF_set_text_matrix|PDF_set_text_rendering|PDF_set_text_rise|PDF_set_word_spacing|PDF_setgray_fill|PDF_setgray_stroke|PDF_setgray|PDF_setpolydash|PDF_setrgbcolor_fill|PDF_setrgbcolor_stroke|PDF_setrgbcolor|PDF_show_boxed|php_check_syntax|px_set_tablename|px_set_targetencoding|runkit_sandbox_output_handler|session_is_registered|session_register|session_unregisterset_magic_quotes_runtime|magic_quotes_runtime|set_socket_blocking|socket_set_blocking|set_socket_timeout|socket_set_timeout|split|spliti|sql_regcase\".split(\"|\")),f=i.arrayToMap(\"cfunction|old_function\".split(\"|\")),l=i.arrayToMap([]);this.$rules={start:[{token:\"comment\",regex:/(?:#|\\/\\/)(?:[^?]|\\?[^>])*/},e.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/][gimy]*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'\"',next:\"qqstring\"},{token:\"string\",regex:\"'\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language\",regex:\"\\\\b(?:DEFAULT_INCLUDE_PATH|E_(?:ALL|CO(?:MPILE_(?:ERROR|WARNING)|RE_(?:ERROR|WARNING))|ERROR|NOTICE|PARSE|STRICT|USER_(?:ERROR|NOTICE|WARNING)|WARNING)|P(?:EAR_(?:EXTENSION_DIR|INSTALL_DIR)|HP_(?:BINDIR|CONFIG_FILE_(?:PATH|SCAN_DIR)|DATADIR|E(?:OL|XTENSION_DIR)|INT_(?:MAX|SIZE)|L(?:IBDIR|OCALSTATEDIR)|O(?:S|UTPUT_HANDLER_(?:CONT|END|START))|PREFIX|S(?:API|HLIB_SUFFIX|YSCONFDIR)|VERSION))|__COMPILER_HALT_OFFSET__)\\\\b\"},{token:[\"keyword\",\"text\",\"support.class\"],regex:\"\\\\b(new)(\\\\s+)(\\\\w+)\"},{token:[\"support.class\",\"keyword.operator\"],regex:\"\\\\b(\\\\w+)(::)\"},{token:\"constant.language\",regex:\"\\\\b(?:A(?:B(?:DAY_(?:1|2|3|4|5|6|7)|MON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9))|LT_DIGITS|M_STR|SSERT_(?:ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(?:ASE_(?:LOWER|UPPER)|HAR_MAX|O(?:DESET|NNECTION_(?:ABORTED|NORMAL|TIMEOUT)|UNT_(?:NORMAL|RECURSIVE))|R(?:EDITS_(?:ALL|DOCS|FULLPAGE|G(?:ENERAL|ROUP)|MODULES|QA|SAPI)|NCYSTR|YPT_(?:BLOWFISH|EXT_DES|MD5|S(?:ALT_LENGTH|TD_DES)))|URRENCY_SYMBOL)|D(?:AY_(?:1|2|3|4|5|6|7)|ECIMAL_POINT|IRECTORY_SEPARATOR|_(?:FMT|T_FMT))|E(?:NT_(?:COMPAT|NOQUOTES|QUOTES)|RA(?:_(?:D_(?:FMT|T_FMT)|T_FMT|YEAR)|)|XTR_(?:IF_EXISTS|OVERWRITE|PREFIX_(?:ALL|I(?:F_EXISTS|NVALID)|SAME)|SKIP))|FRAC_DIGITS|GROUPING|HTML_(?:ENTITIES|SPECIALCHARS)|IN(?:FO_(?:ALL|C(?:ONFIGURATION|REDITS)|ENVIRONMENT|GENERAL|LICENSE|MODULES|VARIABLES)|I_(?:ALL|PERDIR|SYSTEM|USER)|T_(?:CURR_SYMBOL|FRAC_DIGITS))|L(?:C_(?:ALL|C(?:OLLATE|TYPE)|M(?:ESSAGES|ONETARY)|NUMERIC|TIME)|O(?:CK_(?:EX|NB|SH|UN)|G_(?:A(?:LERT|UTH(?:PRIV|))|C(?:ONS|R(?:IT|ON))|D(?:AEMON|EBUG)|E(?:MERG|RR)|INFO|KERN|L(?:OCAL(?:0|1|2|3|4|5|6|7)|PR)|MAIL|N(?:DELAY|EWS|O(?:TICE|WAIT))|ODELAY|P(?:ERROR|ID)|SYSLOG|U(?:SER|UCP)|WARNING)))|M(?:ON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|_(?:1_PI|2_(?:PI|SQRTPI)|E|L(?:N(?:10|2)|OG(?:10E|2E))|PI(?:_(?:2|4)|)|SQRT(?:1_2|2)))|N(?:EGATIVE_SIGN|O(?:EXPR|STR)|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|P(?:ATH(?:INFO_(?:BASENAME|DIRNAME|EXTENSION)|_SEPARATOR)|M_STR|OSITIVE_SIGN|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|RADIXCHAR|S(?:EEK_(?:CUR|END|SET)|ORT_(?:ASC|DESC|NUMERIC|REGULAR|STRING)|TR_PAD_(?:BOTH|LEFT|RIGHT))|T(?:HOUS(?:ANDS_SEP|EP)|_FMT(?:_AMPM|))|YES(?:EXPR|STR)|STD(?:IN|OUT|ERR))\\\\b\"},{token:function(e){return n.hasOwnProperty(e)?\"keyword\":o.hasOwnProperty(e)?\"constant.language\":u.hasOwnProperty(e)?\"variable.language\":l.hasOwnProperty(e)?\"invalid.illegal\":t.hasOwnProperty(e)?\"support.function\":e==\"debugger\"?\"invalid.deprecated\":e.match(/^(\\$[a-zA-Z_\\x7f-\\uffff][a-zA-Z0-9_\\x7f-\\uffff]*|self|parent)$/)?\"variable\":\"identifier\"},regex:/[a-zA-Z_$\\x7f-\\uffff][a-zA-Z0-9_\\x7f-\\uffff]*/},{onMatch:function(e,t,n){e=e.substr(3);if(e[0]==\"'\"||e[0]=='\"')e=e.slice(1,-1);return n.unshift(this.next,e),\"markup.list\"},regex:/<<<(?:\\w+|'\\w+'|\"\\w+\")$/,next:\"heredoc\"},{token:\"keyword.operator\",regex:\"::|!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|!=|!==|<=|>=|=>|<<=|>>=|>>>=|<>|<|>|=|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],heredoc:[{onMatch:function(e,t,n){return n[1]!=e?\"string\":(n.shift(),n.shift(),\"markup.list\")},regex:\"^\\\\w+(?=;?$)\",next:\"start\"},{token:\"string\",regex:\".*\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],qqstring:[{token:\"constant.language.escape\",regex:'\\\\\\\\(?:[nrtvef\\\\\\\\\"$]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2})'},{token:\"variable\",regex:/\\$[\\w]+(?:\\[[\\w\\]+]|[=\\-]>\\w+)?/},{token:\"variable\",regex:/\\$\\{[^\"\\}]+\\}?/},{token:\"string\",regex:'\"',next:\"start\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:/\\\\['\\\\]/},{token:\"string\",regex:\"'\",next:\"start\"},{defaultToken:\"string\"}]},this.embedRules(s,\"doc-\",[s.getEndRule(\"start\")])};r.inherits(a,o);var f=function(){u.call(this);var e=[{token:\"support.php_tag\",regex:\"<\\\\?(?:php|=)?\",push:\"php-start\"}],t=[{token:\"support.php_tag\",regex:\"\\\\?>\",next:\"pop\"}];for(var n in this.$rules)this.$rules[n].unshift.apply(this.$rules[n],e);this.embedRules(a,\"php-\",t,[\"start\"]),this.normalizeRules()};r.inherits(f,u),t.PhpHighlightRules=f,t.PhpLangHighlightRules=a}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/php_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function s(e,t){return e.type.lastIndexOf(t)>-1}var r={abs:[\"int abs(int number)\",\"Return the absolute value of the number\"],acos:[\"float acos(float number)\",\"Return the arc cosine of the number in radians\"],acosh:[\"float acosh(float number)\",\"Returns the inverse hyperbolic cosine of the number, i.e. the value whose hyperbolic cosine is number\"],addGlob:[\"bool addGlob(string pattern[,int flags [, array options]])\",\"Add files matching the glob pattern. See php's glob for the pattern syntax.\"],addPattern:[\"bool addPattern(string pattern[, string path [, array options]])\",\"Add files matching the pcre pattern. See php's pcre for the pattern syntax.\"],addcslashes:[\"string addcslashes(string str, string charlist)\",\"Escapes all chars mentioned in charlist with backslash. It creates octal representations if asked to backslash characters with 8th bit set or with ASCII<32 (except '\\\\n', '\\\\r', '\\\\t' etc...)\"],addslashes:[\"string addslashes(string str)\",\"Escapes single quote, double quotes and backslash characters in a string with backslashes\"],apache_child_terminate:[\"bool apache_child_terminate(void)\",\"Terminate apache process after this request\"],apache_get_modules:[\"array apache_get_modules(void)\",\"Get a list of loaded Apache modules\"],apache_get_version:[\"string apache_get_version(void)\",\"Fetch Apache version\"],apache_getenv:[\"bool apache_getenv(string variable [, bool walk_to_top])\",\"Get an Apache subprocess_env variable\"],apache_lookup_uri:[\"object apache_lookup_uri(string URI)\",\"Perform a partial request of the given URI to obtain information about it\"],apache_note:[\"string apache_note(string note_name [, string note_value])\",\"Get and set Apache request notes\"],apache_request_auth_name:[\"string apache_request_auth_name()\",\"\"],apache_request_auth_type:[\"string apache_request_auth_type()\",\"\"],apache_request_discard_request_body:[\"long apache_request_discard_request_body()\",\"\"],apache_request_err_headers_out:[\"array apache_request_err_headers_out([{string name|array list} [, string value [, bool replace = false]]])\",\"* fetch all headers that go out in case of an error or a subrequest\"],apache_request_headers:[\"array apache_request_headers(void)\",\"Fetch all HTTP request headers\"],apache_request_headers_in:[\"array apache_request_headers_in()\",\"* fetch all incoming request headers\"],apache_request_headers_out:[\"array apache_request_headers_out([{string name|array list} [, string value [, bool replace = false]]])\",\"* fetch all outgoing request headers\"],apache_request_is_initial_req:[\"bool apache_request_is_initial_req()\",\"\"],apache_request_log_error:[\"boolean apache_request_log_error(string message, [long facility])\",\"\"],apache_request_meets_conditions:[\"long apache_request_meets_conditions()\",\"\"],apache_request_remote_host:[\"int apache_request_remote_host([int type])\",\"\"],apache_request_run:[\"long apache_request_run()\",\"This is a wrapper for ap_sub_run_req and ap_destory_sub_req.  It takes      sub_request, runs it, destroys it, and returns it's status.\"],apache_request_satisfies:[\"long apache_request_satisfies()\",\"\"],apache_request_server_port:[\"int apache_request_server_port()\",\"\"],apache_request_set_etag:[\"void apache_request_set_etag()\",\"\"],apache_request_set_last_modified:[\"void apache_request_set_last_modified()\",\"\"],apache_request_some_auth_required:[\"bool apache_request_some_auth_required()\",\"\"],apache_request_sub_req_lookup_file:[\"object apache_request_sub_req_lookup_file(string file)\",\"Returns sub-request for the specified file.  You would     need to run it yourself with run().\"],apache_request_sub_req_lookup_uri:[\"object apache_request_sub_req_lookup_uri(string uri)\",\"Returns sub-request for the specified uri.  You would     need to run it yourself with run()\"],apache_request_sub_req_method_uri:[\"object apache_request_sub_req_method_uri(string method, string uri)\",\"Returns sub-request for the specified file.  You would     need to run it yourself with run().\"],apache_request_update_mtime:[\"long apache_request_update_mtime([int dependency_mtime])\",\"\"],apache_reset_timeout:[\"bool apache_reset_timeout(void)\",\"Reset the Apache write timer\"],apache_response_headers:[\"array apache_response_headers(void)\",\"Fetch all HTTP response headers\"],apache_setenv:[\"bool apache_setenv(string variable, string value [, bool walk_to_top])\",\"Set an Apache subprocess_env variable\"],array_change_key_case:[\"array array_change_key_case(array input [, int case=CASE_LOWER])\",\"Retuns an array with all string keys lowercased [or uppercased]\"],array_chunk:[\"array array_chunk(array input, int size [, bool preserve_keys])\",\"Split array into chunks\"],array_combine:[\"array array_combine(array keys, array values)\",\"Creates an array by using the elements of the first parameter as keys and the elements of the second as the corresponding values\"],array_count_values:[\"array array_count_values(array input)\",\"Return the value as key and the frequency of that value in input as value\"],array_diff:[\"array array_diff(array arr1, array arr2 [, array ...])\",\"Returns the entries of arr1 that have values which are not present in any of the others arguments.\"],array_diff_assoc:[\"array array_diff_assoc(array arr1, array arr2 [, array ...])\",\"Returns the entries of arr1 that have values which are not present in any of the others arguments but do additional checks whether the keys are equal\"],array_diff_key:[\"array array_diff_key(array arr1, array arr2 [, array ...])\",\"Returns the entries of arr1 that have keys which are not present in any of the others arguments. This function is like array_diff() but works on the keys instead of the values. The associativity is preserved.\"],array_diff_uassoc:[\"array array_diff_uassoc(array arr1, array arr2 [, array ...], callback data_comp_func)\",\"Returns the entries of arr1 that have values which are not present in any of the others arguments but do additional checks whether the keys are equal. Elements are compared by user supplied function.\"],array_diff_ukey:[\"array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func)\",\"Returns the entries of arr1 that have keys which are not present in any of the others arguments. User supplied function is used for comparing the keys. This function is like array_udiff() but works on the keys instead of the values. The associativity is preserved.\"],array_fill:[\"array array_fill(int start_key, int num, mixed val)\",\"Create an array containing num elements starting with index start_key each initialized to val\"],array_fill_keys:[\"array array_fill_keys(array keys, mixed val)\",\"Create an array using the elements of the first parameter as keys each initialized to val\"],array_filter:[\"array array_filter(array input [, mixed callback])\",\"Filters elements from the array via the callback.\"],array_flip:[\"array array_flip(array input)\",\"Return array with key <-> value flipped\"],array_intersect:[\"array array_intersect(array arr1, array arr2 [, array ...])\",\"Returns the entries of arr1 that have values which are present in all the other arguments\"],array_intersect_assoc:[\"array array_intersect_assoc(array arr1, array arr2 [, array ...])\",\"Returns the entries of arr1 that have values which are present in all the other arguments. Keys are used to do more restrictive check\"],array_intersect_key:[\"array array_intersect_key(array arr1, array arr2 [, array ...])\",\"Returns the entries of arr1 that have keys which are present in all the other arguments. Kind of equivalent to array_diff(array_keys($arr1), array_keys($arr2)[,array_keys(...)]). Equivalent of array_intersect_assoc() but does not do compare of the data.\"],array_intersect_uassoc:[\"array array_intersect_uassoc(array arr1, array arr2 [, array ...], callback key_compare_func)\",\"Returns the entries of arr1 that have values which are present in all the other arguments. Keys are used to do more restrictive check and they are compared by using an user-supplied callback.\"],array_intersect_ukey:[\"array array_intersect_ukey(array arr1, array arr2 [, array ...], callback key_compare_func)\",\"Returns the entries of arr1 that have keys which are present in all the other arguments. Kind of equivalent to array_diff(array_keys($arr1), array_keys($arr2)[,array_keys(...)]). The comparison of the keys is performed by a user supplied function. Equivalent of array_intersect_uassoc() but does not do compare of the data.\"],array_key_exists:[\"bool array_key_exists(mixed key, array search)\",\"Checks if the given key or index exists in the array\"],array_keys:[\"array array_keys(array input [, mixed search_value[, bool strict]])\",\"Return just the keys from the input array, optionally only for the specified search_value\"],array_map:[\"array array_map(mixed callback, array input1 [, array input2 ,...])\",\"Applies the callback to the elements in given arrays.\"],array_merge:[\"array array_merge(array arr1, array arr2 [, array ...])\",\"Merges elements from passed arrays into one array\"],array_merge_recursive:[\"array array_merge_recursive(array arr1, array arr2 [, array ...])\",\"Recursively merges elements from passed arrays into one array\"],array_multisort:[\"bool array_multisort(array ar1 [, SORT_ASC|SORT_DESC [, SORT_REGULAR|SORT_NUMERIC|SORT_STRING]] [, array ar2 [, SORT_ASC|SORT_DESC [, SORT_REGULAR|SORT_NUMERIC|SORT_STRING]], ...])\",\"Sort multiple arrays at once similar to how ORDER BY clause works in SQL\"],array_pad:[\"array array_pad(array input, int pad_size, mixed pad_value)\",\"Returns a copy of input array padded with pad_value to size pad_size\"],array_pop:[\"mixed array_pop(array stack)\",\"Pops an element off the end of the array\"],array_product:[\"mixed array_product(array input)\",\"Returns the product of the array entries\"],array_push:[\"int array_push(array stack, mixed var [, mixed ...])\",\"Pushes elements onto the end of the array\"],array_rand:[\"mixed array_rand(array input [, int num_req])\",\"Return key/keys for random entry/entries in the array\"],array_reduce:[\"mixed array_reduce(array input, mixed callback [, mixed initial])\",\"Iteratively reduce the array to a single value via the callback.\"],array_replace:[\"array array_replace(array arr1, array arr2 [, array ...])\",\"Replaces elements from passed arrays into one array\"],array_replace_recursive:[\"array array_replace_recursive(array arr1, array arr2 [, array ...])\",\"Recursively replaces elements from passed arrays into one array\"],array_reverse:[\"array array_reverse(array input [, bool preserve keys])\",\"Return input as a new array with the order of the entries reversed\"],array_search:[\"mixed array_search(mixed needle, array haystack [, bool strict])\",\"Searches the array for a given value and returns the corresponding key if successful\"],array_shift:[\"mixed array_shift(array stack)\",\"Pops an element off the beginning of the array\"],array_slice:[\"array array_slice(array input, int offset [, int length [, bool preserve_keys]])\",\"Returns elements specified by offset and length\"],array_splice:[\"array array_splice(array input, int offset [, int length [, array replacement]])\",\"Removes the elements designated by offset and length and replace them with supplied array\"],array_sum:[\"mixed array_sum(array input)\",\"Returns the sum of the array entries\"],array_udiff:[\"array array_udiff(array arr1, array arr2 [, array ...], callback data_comp_func)\",\"Returns the entries of arr1 that have values which are not present in any of the others arguments. Elements are compared by user supplied function.\"],array_udiff_assoc:[\"array array_udiff_assoc(array arr1, array arr2 [, array ...], callback key_comp_func)\",\"Returns the entries of arr1 that have values which are not present in any of the others arguments but do additional checks whether the keys are equal. Keys are compared by user supplied function.\"],array_udiff_uassoc:[\"array array_udiff_uassoc(array arr1, array arr2 [, array ...], callback data_comp_func, callback key_comp_func)\",\"Returns the entries of arr1 that have values which are not present in any of the others arguments but do additional checks whether the keys are equal. Keys and elements are compared by user supplied functions.\"],array_uintersect:[\"array array_uintersect(array arr1, array arr2 [, array ...], callback data_compare_func)\",\"Returns the entries of arr1 that have values which are present in all the other arguments. Data is compared by using an user-supplied callback.\"],array_uintersect_assoc:[\"array array_uintersect_assoc(array arr1, array arr2 [, array ...], callback data_compare_func)\",\"Returns the entries of arr1 that have values which are present in all the other arguments. Keys are used to do more restrictive check. Data is compared by using an user-supplied callback.\"],array_uintersect_uassoc:[\"array array_uintersect_uassoc(array arr1, array arr2 [, array ...], callback data_compare_func, callback key_compare_func)\",\"Returns the entries of arr1 that have values which are present in all the other arguments. Keys are used to do more restrictive check. Both data and keys are compared by using user-supplied callbacks.\"],array_unique:[\"array array_unique(array input [, int sort_flags])\",\"Removes duplicate values from array\"],array_unshift:[\"int array_unshift(array stack, mixed var [, mixed ...])\",\"Pushes elements onto the beginning of the array\"],array_values:[\"array array_values(array input)\",\"Return just the values from the input array\"],array_walk:[\"bool array_walk(array input, string funcname [, mixed userdata])\",\"Apply a user function to every member of an array\"],array_walk_recursive:[\"bool array_walk_recursive(array input, string funcname [, mixed userdata])\",\"Apply a user function recursively to every member of an array\"],arsort:[\"bool arsort(array &array_arg [, int sort_flags])\",\"Sort an array in reverse order and maintain index association\"],asin:[\"float asin(float number)\",\"Returns the arc sine of the number in radians\"],asinh:[\"float asinh(float number)\",\"Returns the inverse hyperbolic sine of the number, i.e. the value whose hyperbolic sine is number\"],asort:[\"bool asort(array &array_arg [, int sort_flags])\",\"Sort an array and maintain index association\"],assert:[\"int assert(string|bool assertion)\",\"Checks if assertion is false\"],assert_options:[\"mixed assert_options(int what [, mixed value])\",\"Set/get the various assert flags\"],atan:[\"float atan(float number)\",\"Returns the arc tangent of the number in radians\"],atan2:[\"float atan2(float y, float x)\",\"Returns the arc tangent of y/x, with the resulting quadrant determined by the signs of y and x\"],atanh:[\"float atanh(float number)\",\"Returns the inverse hyperbolic tangent of the number, i.e. the value whose hyperbolic tangent is number\"],attachIterator:[\"void attachIterator(Iterator iterator[, mixed info])\",\"Attach a new iterator\"],base64_decode:[\"string base64_decode(string str[, bool strict])\",\"Decodes string using MIME base64 algorithm\"],base64_encode:[\"string base64_encode(string str)\",\"Encodes string using MIME base64 algorithm\"],base_convert:[\"string base_convert(string number, int frombase, int tobase)\",\"Converts a number in a string from any base <= 36 to any base <= 36\"],basename:[\"string basename(string path [, string suffix])\",\"Returns the filename component of the path\"],bcadd:[\"string bcadd(string left_operand, string right_operand [, int scale])\",\"Returns the sum of two arbitrary precision numbers\"],bccomp:[\"int bccomp(string left_operand, string right_operand [, int scale])\",\"Compares two arbitrary precision numbers\"],bcdiv:[\"string bcdiv(string left_operand, string right_operand [, int scale])\",\"Returns the quotient of two arbitrary precision numbers (division)\"],bcmod:[\"string bcmod(string left_operand, string right_operand)\",\"Returns the modulus of the two arbitrary precision operands\"],bcmul:[\"string bcmul(string left_operand, string right_operand [, int scale])\",\"Returns the multiplication of two arbitrary precision numbers\"],bcpow:[\"string bcpow(string x, string y [, int scale])\",\"Returns the value of an arbitrary precision number raised to the power of another\"],bcpowmod:[\"string bcpowmod(string x, string y, string mod [, int scale])\",\"Returns the value of an arbitrary precision number raised to the power of another reduced by a modulous\"],bcscale:[\"bool bcscale(int scale)\",\"Sets default scale parameter for all bc math functions\"],bcsqrt:[\"string bcsqrt(string operand [, int scale])\",\"Returns the square root of an arbitray precision number\"],bcsub:[\"string bcsub(string left_operand, string right_operand [, int scale])\",\"Returns the difference between two arbitrary precision numbers\"],bin2hex:[\"string bin2hex(string data)\",\"Converts the binary representation of data to hex\"],bind_textdomain_codeset:[\"string bind_textdomain_codeset (string domain, string codeset)\",\"Specify the character encoding in which the messages from the DOMAIN message catalog will be returned.\"],bindec:[\"int bindec(string binary_number)\",\"Returns the decimal equivalent of the binary number\"],bindtextdomain:[\"string bindtextdomain(string domain_name, string dir)\",\"Bind to the text domain domain_name, looking for translations in dir. Returns the current domain\"],birdstep_autocommit:[\"bool birdstep_autocommit(int index)\",\"\"],birdstep_close:[\"bool birdstep_close(int id)\",\"\"],birdstep_commit:[\"bool birdstep_commit(int index)\",\"\"],birdstep_connect:[\"int birdstep_connect(string server, string user, string pass)\",\"\"],birdstep_exec:[\"int birdstep_exec(int index, string exec_str)\",\"\"],birdstep_fetch:[\"bool birdstep_fetch(int index)\",\"\"],birdstep_fieldname:[\"string birdstep_fieldname(int index, int col)\",\"\"],birdstep_fieldnum:[\"int birdstep_fieldnum(int index)\",\"\"],birdstep_freeresult:[\"bool birdstep_freeresult(int index)\",\"\"],birdstep_off_autocommit:[\"bool birdstep_off_autocommit(int index)\",\"\"],birdstep_result:[\"mixed birdstep_result(int index, mixed col)\",\"\"],birdstep_rollback:[\"bool birdstep_rollback(int index)\",\"\"],bzcompress:[\"string bzcompress(string source [, int blocksize100k [, int workfactor]])\",\"Compresses a string into BZip2 encoded data\"],bzdecompress:[\"string bzdecompress(string source [, int small])\",\"Decompresses BZip2 compressed data\"],bzerrno:[\"int bzerrno(resource bz)\",\"Returns the error number\"],bzerror:[\"array bzerror(resource bz)\",\"Returns the error number and error string in an associative array\"],bzerrstr:[\"string bzerrstr(resource bz)\",\"Returns the error string\"],bzopen:[\"resource bzopen(string|int file|fp, string mode)\",\"Opens a new BZip2 stream\"],bzread:[\"string bzread(resource bz[, int length])\",\"Reads up to length bytes from a BZip2 stream, or 1024 bytes if length is not specified\"],cal_days_in_month:[\"int cal_days_in_month(int calendar, int month, int year)\",\"Returns the number of days in a month for a given year and calendar\"],cal_from_jd:[\"array cal_from_jd(int jd, int calendar)\",\"Converts from Julian Day Count to a supported calendar and return extended information\"],cal_info:[\"array cal_info([int calendar])\",\"Returns information about a particular calendar\"],cal_to_jd:[\"int cal_to_jd(int calendar, int month, int day, int year)\",\"Converts from a supported calendar to Julian Day Count\"],call_user_func:[\"mixed call_user_func(mixed function_name [, mixed parmeter] [, mixed ...])\",\"Call a user function which is the first parameter\"],call_user_func_array:[\"mixed call_user_func_array(string function_name, array parameters)\",\"Call a user function which is the first parameter with the arguments contained in array\"],call_user_method:[\"mixed call_user_method(string method_name, mixed object [, mixed parameter] [, mixed ...])\",\"Call a user method on a specific object or class\"],call_user_method_array:[\"mixed call_user_method_array(string method_name, mixed object, array params)\",\"Call a user method on a specific object or class using a parameter array\"],ceil:[\"float ceil(float number)\",\"Returns the next highest integer value of the number\"],chdir:[\"bool chdir(string directory)\",\"Change the current directory\"],checkdate:[\"bool checkdate(int month, int day, int year)\",\"Returns true(1) if it is a valid date in gregorian calendar\"],chgrp:[\"bool chgrp(string filename, mixed group)\",\"Change file group\"],chmod:[\"bool chmod(string filename, int mode)\",\"Change file mode\"],chown:[\"bool chown (string filename, mixed user)\",\"Change file owner\"],chr:[\"string chr(int ascii)\",\"Converts ASCII code to a character\"],chroot:[\"bool chroot(string directory)\",\"Change root directory\"],chunk_split:[\"string chunk_split(string str [, int chunklen [, string ending]])\",\"Returns split line\"],class_alias:[\"bool class_alias(string user_class_name , string alias_name [, bool autoload])\",\"Creates an alias for user defined class\"],class_exists:[\"bool class_exists(string classname [, bool autoload])\",\"Checks if the class exists\"],class_implements:[\"array class_implements(mixed what [, bool autoload ])\",\"Return all classes and interfaces implemented by SPL\"],class_parents:[\"array class_parents(object instance [, boolean autoload = true])\",\"Return an array containing the names of all parent classes\"],clearstatcache:[\"void clearstatcache([bool clear_realpath_cache[, string filename]])\",\"Clear file stat cache\"],closedir:[\"void closedir([resource dir_handle])\",\"Close directory connection identified by the dir_handle\"],closelog:[\"bool closelog(void)\",\"Close connection to system logger\"],collator_asort:[\"bool collator_asort( Collator $coll, array(string) $arr )\",\"* Sort array using specified collator, maintaining index association.\"],collator_compare:[\"int collator_compare( Collator $coll, string $str1, string $str2 )\",\"* Compare two strings.\"],collator_create:[\"Collator collator_create( string $locale )\",\"* Create collator.\"],collator_get_attribute:[\"int collator_get_attribute( Collator $coll, int $attr )\",\"* Get collation attribute value.\"],collator_get_error_code:[\"int collator_get_error_code( Collator $coll )\",\"* Get collator's last error code.\"],collator_get_error_message:[\"string collator_get_error_message( Collator $coll )\",\"* Get text description for collator's last error code.\"],collator_get_locale:[\"string collator_get_locale( Collator $coll, int $type )\",\"* Gets the locale name of the collator.\"],collator_get_sort_key:[\"bool collator_get_sort_key( Collator $coll, string $str )\",\"* Get a sort key for a string from a Collator. }}}\"],collator_get_strength:[\"int collator_get_strength(Collator coll)\",\"* Returns the current collation strength.\"],collator_set_attribute:[\"bool collator_set_attribute( Collator $coll, int $attr, int $val )\",\"* Set collation attribute.\"],collator_set_strength:[\"bool collator_set_strength(Collator coll, int strength)\",\"* Set the collation strength.\"],collator_sort:[\"bool collator_sort(  Collator $coll, array(string) $arr [, int $sort_flags] )\",\"* Sort array using specified collator.\"],collator_sort_with_sort_keys:[\"bool collator_sort_with_sort_keys( Collator $coll, array(string) $arr )\",\"* Equivalent to standard PHP sort using Collator.  * Uses ICU ucol_getSortKey for performance.\"],com_create_guid:[\"string com_create_guid()\",\"Generate a globally unique identifier (GUID)\"],com_event_sink:[\"bool com_event_sink(object comobject, object sinkobject [, mixed sinkinterface])\",\"Connect events from a COM object to a PHP object\"],com_get_active_object:[\"object com_get_active_object(string progid [, int code_page ])\",\"Returns a handle to an already running instance of a COM object\"],com_load_typelib:[\"bool com_load_typelib(string typelib_name [, int case_insensitive])\",\"Loads a Typelibrary and registers its constants\"],com_message_pump:[\"bool com_message_pump([int timeoutms])\",\"Process COM messages, sleeping for up to timeoutms milliseconds\"],com_print_typeinfo:[\"bool com_print_typeinfo(object comobject | string typelib, string dispinterface, bool wantsink)\",\"Print out a PHP class definition for a dispatchable interface\"],compact:[\"array compact(mixed var_names [, mixed ...])\",\"Creates a hash containing variables and their values\"],compose_locale:[\"static string compose_locale($array)\",\"* Creates a locale by combining the parts of locale-ID passed  * }}}\"],confirm_extname_compiled:[\"string confirm_extname_compiled(string arg)\",\"Return a string to confirm that the module is compiled in\"],connection_aborted:[\"int connection_aborted(void)\",\"Returns true if client disconnected\"],connection_status:[\"int connection_status(void)\",\"Returns the connection status bitfield\"],constant:[\"mixed constant(string const_name)\",\"Given the name of a constant this function will return the constant's associated value\"],convert_cyr_string:[\"string convert_cyr_string(string str, string from, string to)\",\"Convert from one Cyrillic character set to another\"],convert_uudecode:[\"string convert_uudecode(string data)\",\"decode a uuencoded string\"],convert_uuencode:[\"string convert_uuencode(string data)\",\"uuencode a string\"],copy:[\"bool copy(string source_file, string destination_file [, resource context])\",\"Copy a file\"],cos:[\"float cos(float number)\",\"Returns the cosine of the number in radians\"],cosh:[\"float cosh(float number)\",\"Returns the hyperbolic cosine of the number, defined as (exp(number) + exp(-number))/2\"],count:[\"int count(mixed var [, int mode])\",\"Count the number of elements in a variable (usually an array)\"],count_chars:[\"mixed count_chars(string input [, int mode])\",\"Returns info about what characters are used in input\"],crc32:[\"string crc32(string str)\",\"Calculate the crc32 polynomial of a string\"],create_function:[\"string create_function(string args, string code)\",\"Creates an anonymous function, and returns its name (funny, eh?)\"],crypt:[\"string crypt(string str [, string salt])\",\"Hash a string\"],ctype_alnum:[\"bool ctype_alnum(mixed c)\",\"Checks for alphanumeric character(s)\"],ctype_alpha:[\"bool ctype_alpha(mixed c)\",\"Checks for alphabetic character(s)\"],ctype_cntrl:[\"bool ctype_cntrl(mixed c)\",\"Checks for control character(s)\"],ctype_digit:[\"bool ctype_digit(mixed c)\",\"Checks for numeric character(s)\"],ctype_graph:[\"bool ctype_graph(mixed c)\",\"Checks for any printable character(s) except space\"],ctype_lower:[\"bool ctype_lower(mixed c)\",\"Checks for lowercase character(s)\"],ctype_print:[\"bool ctype_print(mixed c)\",\"Checks for printable character(s)\"],ctype_punct:[\"bool ctype_punct(mixed c)\",\"Checks for any printable character which is not whitespace or an alphanumeric character\"],ctype_space:[\"bool ctype_space(mixed c)\",\"Checks for whitespace character(s)\"],ctype_upper:[\"bool ctype_upper(mixed c)\",\"Checks for uppercase character(s)\"],ctype_xdigit:[\"bool ctype_xdigit(mixed c)\",\"Checks for character(s) representing a hexadecimal digit\"],curl_close:[\"void curl_close(resource ch)\",\"Close a cURL session\"],curl_copy_handle:[\"resource curl_copy_handle(resource ch)\",\"Copy a cURL handle along with all of it's preferences\"],curl_errno:[\"int curl_errno(resource ch)\",\"Return an integer containing the last error number\"],curl_error:[\"string curl_error(resource ch)\",\"Return a string contain the last error for the current session\"],curl_exec:[\"bool curl_exec(resource ch)\",\"Perform a cURL session\"],curl_getinfo:[\"mixed curl_getinfo(resource ch [, int option])\",\"Get information regarding a specific transfer\"],curl_init:[\"resource curl_init([string url])\",\"Initialize a cURL session\"],curl_multi_add_handle:[\"int curl_multi_add_handle(resource mh, resource ch)\",\"Add a normal cURL handle to a cURL multi handle\"],curl_multi_close:[\"void curl_multi_close(resource mh)\",\"Close a set of cURL handles\"],curl_multi_exec:[\"int curl_multi_exec(resource mh, int &still_running)\",\"Run the sub-connections of the current cURL handle\"],curl_multi_getcontent:[\"string curl_multi_getcontent(resource ch)\",\"Return the content of a cURL handle if CURLOPT_RETURNTRANSFER is set\"],curl_multi_info_read:[\"array curl_multi_info_read(resource mh [, long msgs_in_queue])\",\"Get information about the current transfers\"],curl_multi_init:[\"resource curl_multi_init(void)\",\"Returns a new cURL multi handle\"],curl_multi_remove_handle:[\"int curl_multi_remove_handle(resource mh, resource ch)\",\"Remove a multi handle from a set of cURL handles\"],curl_multi_select:[\"int curl_multi_select(resource mh[, double timeout])\",'Get all the sockets associated with the cURL extension, which can then be \"selected\"'],curl_setopt:[\"bool curl_setopt(resource ch, int option, mixed value)\",\"Set an option for a cURL transfer\"],curl_setopt_array:[\"bool curl_setopt_array(resource ch, array options)\",\"Set an array of option for a cURL transfer\"],curl_version:[\"array curl_version([int version])\",\"Return cURL version information.\"],current:[\"mixed current(array array_arg)\",\"Return the element currently pointed to by the internal array pointer\"],date:[\"string date(string format [, long timestamp])\",\"Format a local date/time\"],date_add:[\"DateTime date_add(DateTime object, DateInterval interval)\",\"Adds an interval to the current date in object.\"],date_create:[\"DateTime date_create([string time[, DateTimeZone object]])\",\"Returns new DateTime object\"],date_create_from_format:[\"DateTime date_create_from_format(string format, string time[, DateTimeZone object])\",\"Returns new DateTime object formatted according to the specified format\"],date_date_set:[\"DateTime date_date_set(DateTime object, long year, long month, long day)\",\"Sets the date.\"],date_default_timezone_get:[\"string date_default_timezone_get()\",\"Gets the default timezone used by all date/time functions in a script\"],date_default_timezone_set:[\"bool date_default_timezone_set(string timezone_identifier)\",\"Sets the default timezone used by all date/time functions in a script\"],date_diff:[\"DateInterval date_diff(DateTime object [, bool absolute])\",\"Returns the difference between two DateTime objects.\"],date_format:[\"string date_format(DateTime object, string format)\",\"Returns date formatted according to given format\"],date_get_last_errors:[\"array date_get_last_errors()\",\"Returns the warnings and errors found while parsing a date/time string.\"],date_interval_create_from_date_string:[\"DateInterval date_interval_create_from_date_string(string time)\",\"Uses the normal date parsers and sets up a DateInterval from the relative parts of the parsed string\"],date_interval_format:[\"string date_interval_format(DateInterval object, string format)\",\"Formats the interval.\"],date_isodate_set:[\"DateTime date_isodate_set(DateTime object, long year, long week[, long day])\",\"Sets the ISO date.\"],date_modify:[\"DateTime date_modify(DateTime object, string modify)\",\"Alters the timestamp.\"],date_offset_get:[\"long date_offset_get(DateTime object)\",\"Returns the DST offset.\"],date_parse:[\"array date_parse(string date)\",\"Returns associative array with detailed info about given date\"],date_parse_from_format:[\"array date_parse_from_format(string format, string date)\",\"Returns associative array with detailed info about given date\"],date_sub:[\"DateTime date_sub(DateTime object, DateInterval interval)\",\"Subtracts an interval to the current date in object.\"],date_sun_info:[\"array date_sun_info(long time, float latitude, float longitude)\",\"Returns an array with information about sun set/rise and twilight begin/end\"],date_sunrise:[\"mixed date_sunrise(mixed time [, int format [, float latitude [, float longitude [, float zenith [, float gmt_offset]]]]])\",\"Returns time of sunrise for a given day and location\"],date_sunset:[\"mixed date_sunset(mixed time [, int format [, float latitude [, float longitude [, float zenith [, float gmt_offset]]]]])\",\"Returns time of sunset for a given day and location\"],date_time_set:[\"DateTime date_time_set(DateTime object, long hour, long minute[, long second])\",\"Sets the time.\"],date_timestamp_get:[\"long date_timestamp_get(DateTime object)\",\"Gets the Unix timestamp.\"],date_timestamp_set:[\"DateTime date_timestamp_set(DateTime object, long unixTimestamp)\",\"Sets the date and time based on an Unix timestamp.\"],date_timezone_get:[\"DateTimeZone date_timezone_get(DateTime object)\",\"Return new DateTimeZone object relative to give DateTime\"],date_timezone_set:[\"DateTime date_timezone_set(DateTime object, DateTimeZone object)\",\"Sets the timezone for the DateTime object.\"],datefmt_create:[\"IntlDateFormatter datefmt_create(string $locale, long date_type, long time_type[, string $timezone_str, long $calendar, string $pattern] )\",\"* Create formatter.\"],datefmt_format:[\"string datefmt_format( [mixed]int $args or array $args )\",\"* Format the time value as a string. }}}\"],datefmt_get_calendar:[\"string datefmt_get_calendar( IntlDateFormatter $mf )\",\"* Get formatter calendar.\"],datefmt_get_datetype:[\"string datefmt_get_datetype( IntlDateFormatter $mf )\",\"* Get formatter datetype.\"],datefmt_get_error_code:[\"int datefmt_get_error_code( IntlDateFormatter $nf )\",\"* Get formatter's last error code.\"],datefmt_get_error_message:[\"string datefmt_get_error_message( IntlDateFormatter $coll )\",\"* Get text description for formatter's last error code.\"],datefmt_get_locale:[\"string datefmt_get_locale(IntlDateFormatter $mf)\",\"* Get formatter locale.\"],datefmt_get_pattern:[\"string datefmt_get_pattern( IntlDateFormatter $mf )\",\"* Get formatter pattern.\"],datefmt_get_timetype:[\"string datefmt_get_timetype( IntlDateFormatter $mf )\",\"* Get formatter timetype.\"],datefmt_get_timezone_id:[\"string datefmt_get_timezone_id( IntlDateFormatter $mf )\",\"* Get formatter timezone_id.\"],datefmt_isLenient:[\"string datefmt_isLenient(IntlDateFormatter $mf)\",\"* Get formatter locale.\"],datefmt_localtime:[\"integer datefmt_localtime( IntlDateFormatter $fmt, string $text_to_parse[, int $parse_pos ])\",\"* Parse the string $value to a localtime array  }}}\"],datefmt_parse:[\"integer datefmt_parse( IntlDateFormatter $fmt, string $text_to_parse [, int $parse_pos] )\",\"* Parse the string $value starting at parse_pos to a Unix timestamp -int }}}\"],datefmt_setLenient:[\"string datefmt_setLenient(IntlDateFormatter $mf)\",\"* Set formatter lenient.\"],datefmt_set_calendar:[\"bool datefmt_set_calendar( IntlDateFormatter $mf, int $calendar )\",\"* Set formatter calendar.\"],datefmt_set_pattern:[\"bool datefmt_set_pattern( IntlDateFormatter $mf, string $pattern )\",\"* Set formatter pattern.\"],datefmt_set_timezone_id:[\"boolean datefmt_set_timezone_id( IntlDateFormatter $mf,$timezone_id)\",\"* Set formatter timezone_id.\"],dba_close:[\"void dba_close(resource handle)\",\"Closes database\"],dba_delete:[\"bool dba_delete(string key, resource handle)\",\"Deletes the entry associated with key    If inifile: remove all other key lines\"],dba_exists:[\"bool dba_exists(string key, resource handle)\",\"Checks, if the specified key exists\"],dba_fetch:[\"string dba_fetch(string key, [int skip ,] resource handle)\",\"Fetches the data associated with key\"],dba_firstkey:[\"string dba_firstkey(resource handle)\",\"Resets the internal key pointer and returns the first key\"],dba_handlers:[\"array dba_handlers([bool full_info])\",\"List configured database handlers\"],dba_insert:[\"bool dba_insert(string key, string value, resource handle)\",\"If not inifile: Insert value as key, return false, if key exists already     If inifile: Add vakue as key (next instance of key)\"],dba_key_split:[\"array|false dba_key_split(string key)\",\"Splits an inifile key into an array of the form array(0=>group,1=>value_name) but returns false if input is false or null\"],dba_list:[\"array dba_list()\",\"List opened databases\"],dba_nextkey:[\"string dba_nextkey(resource handle)\",\"Returns the next key\"],dba_open:[\"resource dba_open(string path, string mode [, string handlername, string ...])\",\"Opens path using the specified handler in mode\"],dba_optimize:[\"bool dba_optimize(resource handle)\",\"Optimizes (e.g. clean up, vacuum) database\"],dba_popen:[\"resource dba_popen(string path, string mode [, string handlername, string ...])\",\"Opens path using the specified handler in mode persistently\"],dba_replace:[\"bool dba_replace(string key, string value, resource handle)\",\"Inserts value as key, replaces key, if key exists already    If inifile: remove all other key lines\"],dba_sync:[\"bool dba_sync(resource handle)\",\"Synchronizes database\"],dcgettext:[\"string dcgettext(string domain_name, string msgid, long category)\",\"Return the translation of msgid for domain_name and category, or msgid unaltered if a translation does not exist\"],dcngettext:[\"string dcngettext (string domain, string msgid1, string msgid2, int n, int category)\",\"Plural version of dcgettext()\"],debug_backtrace:[\"array debug_backtrace([bool provide_object])\",\"Return backtrace as array\"],debug_print_backtrace:[\"void debug_print_backtrace(void) */\",\"ZEND_FUNCTION(debug_print_backtrace) {  zend_execute_data *ptr, *skip;  int lineno;  char *function_name;  char *filename;  char *class_name = NULL;  char *call_type;  char *include_filename = NULL;  zval *arg_array = NULL;  int indent = 0;   if (zend_parse_parameters_none() == FAILURE) {   return;  }   ptr = EG(current_execute_data);\",\"PHP_FUNCTION(dom_document_relaxNG_validate_file) {  _dom_document_relaxNG_validate(INTERNAL_FUNCTION_PARAM_PASSTHRU, DOM_LOAD_FILE); } /* }}} end dom_document_relaxNG_validate_file\"],dom_document_relaxNG_validate_xml:[\"boolean dom_document_relaxNG_validate_xml(string source); */\",\"PHP_FUNCTION(dom_document_relaxNG_validate_xml) {  _dom_document_relaxNG_validate(INTERNAL_FUNCTION_PARAM_PASSTHRU, DOM_LOAD_STRING); } /* }}} end dom_document_relaxNG_validate_xml\"],dom_document_rename_node:[\"DOMNode dom_document_rename_node(node n, string namespaceURI, string qualifiedName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Document3-renameNode Since: DOM Level 3\"],dom_document_save:[\"int dom_document_save(string file);\",\"Convenience method to save to file\"],dom_document_save_html:[\"string dom_document_save_html();\",\"Convenience method to output as html\"],dom_document_save_html_file:[\"int dom_document_save_html_file(string file);\",\"Convenience method to save to file as html\"],dom_document_savexml:[\"string dom_document_savexml([node n]);\",\"URL: http://www.w3.org/TR/DOM-Level-3-LS/load-save.html#LS-DocumentLS-saveXML Since: DOM Level 3\"],dom_document_schema_validate:[\"boolean dom_document_schema_validate(string source); */\",\"PHP_FUNCTION(dom_document_schema_validate_xml) {  _dom_document_schema_validate(INTERNAL_FUNCTION_PARAM_PASSTHRU, DOM_LOAD_STRING); } /* }}} end dom_document_schema_validate\"],dom_document_schema_validate_file:[\"boolean dom_document_schema_validate_file(string filename); */\",\"PHP_FUNCTION(dom_document_schema_validate_file) {  _dom_document_schema_validate(INTERNAL_FUNCTION_PARAM_PASSTHRU, DOM_LOAD_FILE); } /* }}} end dom_document_schema_validate_file\"],dom_document_validate:[\"boolean dom_document_validate();\",\"Since: DOM extended\"],dom_document_xinclude:[\"int dom_document_xinclude([int options])\",\"Substitutues xincludes in a DomDocument\"],dom_domconfiguration_can_set_parameter:[\"boolean dom_domconfiguration_can_set_parameter(string name, domuserdata value);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMConfiguration-canSetParameter Since:\"],dom_domconfiguration_get_parameter:[\"domdomuserdata dom_domconfiguration_get_parameter(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMConfiguration-getParameter Since:\"],dom_domconfiguration_set_parameter:[\"dom_void dom_domconfiguration_set_parameter(string name, domuserdata value);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMConfiguration-property Since:\"],dom_domerrorhandler_handle_error:[\"dom_boolean dom_domerrorhandler_handle_error(domerror error);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-ERRORS-DOMErrorHandler-handleError Since:\"],dom_domimplementation_create_document:[\"DOMDocument dom_domimplementation_create_document(string namespaceURI, string qualifiedName, DOMDocumentType doctype);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Level-2-Core-DOM-createDocument Since: DOM Level 2\"],dom_domimplementation_create_document_type:[\"DOMDocumentType dom_domimplementation_create_document_type(string qualifiedName, string publicId, string systemId);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Level-2-Core-DOM-createDocType Since: DOM Level 2\"],dom_domimplementation_get_feature:[\"DOMNode dom_domimplementation_get_feature(string feature, string version);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMImplementation3-getFeature Since: DOM Level 3\"],dom_domimplementation_has_feature:[\"boolean dom_domimplementation_has_feature(string feature, string version);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-5CED94D7 Since:\"],dom_domimplementationlist_item:[\"domdomimplementation dom_domimplementationlist_item(int index);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMImplementationList-item Since:\"],dom_domimplementationsource_get_domimplementation:[\"domdomimplementation dom_domimplementationsource_get_domimplementation(string features);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-getDOMImpl Since:\"],dom_domimplementationsource_get_domimplementations:[\"domimplementationlist dom_domimplementationsource_get_domimplementations(string features);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-getDOMImpls Since:\"],dom_domstringlist_item:[\"domstring dom_domstringlist_item(int index);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMStringList-item Since:\"],dom_element_get_attribute:[\"string dom_element_get_attribute(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-666EE0F9 Since:\"],dom_element_get_attribute_node:[\"DOMAttr dom_element_get_attribute_node(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-217A91B8 Since:\"],dom_element_get_attribute_node_ns:[\"DOMAttr dom_element_get_attribute_node_ns(string namespaceURI, string localName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElGetAtNodeNS Since: DOM Level 2\"],dom_element_get_attribute_ns:[\"string dom_element_get_attribute_ns(string namespaceURI, string localName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElGetAttrNS Since: DOM Level 2\"],dom_element_get_elements_by_tag_name:[\"DOMNodeList dom_element_get_elements_by_tag_name(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1938918D Since:\"],dom_element_get_elements_by_tag_name_ns:[\"DOMNodeList dom_element_get_elements_by_tag_name_ns(string namespaceURI, string localName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-A6C90942 Since: DOM Level 2\"],dom_element_has_attribute:[\"boolean dom_element_has_attribute(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElHasAttr Since: DOM Level 2\"],dom_element_has_attribute_ns:[\"boolean dom_element_has_attribute_ns(string namespaceURI, string localName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElHasAttrNS Since: DOM Level 2\"],dom_element_remove_attribute:[\"void dom_element_remove_attribute(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-6D6AC0F9 Since:\"],dom_element_remove_attribute_node:[\"DOMAttr dom_element_remove_attribute_node(DOMAttr oldAttr);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-D589198 Since:\"],dom_element_remove_attribute_ns:[\"void dom_element_remove_attribute_ns(string namespaceURI, string localName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElRemAtNS Since: DOM Level 2\"],dom_element_set_attribute:[\"void dom_element_set_attribute(string name, string value);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-F68F082 Since:\"],dom_element_set_attribute_node:[\"DOMAttr dom_element_set_attribute_node(DOMAttr newAttr);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-887236154 Since:\"],dom_element_set_attribute_node_ns:[\"DOMAttr dom_element_set_attribute_node_ns(DOMAttr newAttr);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetAtNodeNS Since: DOM Level 2\"],dom_element_set_attribute_ns:[\"void dom_element_set_attribute_ns(string namespaceURI, string qualifiedName, string value);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetAttrNS Since: DOM Level 2\"],dom_element_set_id_attribute:[\"void dom_element_set_id_attribute(string name, boolean isId);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetIdAttr Since: DOM Level 3\"],dom_element_set_id_attribute_node:[\"void dom_element_set_id_attribute_node(attr idAttr, boolean isId);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetIdAttrNode Since: DOM Level 3\"],dom_element_set_id_attribute_ns:[\"void dom_element_set_id_attribute_ns(string namespaceURI, string localName, boolean isId);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetIdAttrNS Since: DOM Level 3\"],dom_import_simplexml:[\"somNode dom_import_simplexml(sxeobject node)\",\"Get a simplexml_element object from dom to allow for processing\"],dom_namednodemap_get_named_item:[\"DOMNode dom_namednodemap_get_named_item(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1074577549 Since:\"],dom_namednodemap_get_named_item_ns:[\"DOMNode dom_namednodemap_get_named_item_ns(string namespaceURI, string localName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-getNamedItemNS Since: DOM Level 2\"],dom_namednodemap_item:[\"DOMNode dom_namednodemap_item(int index);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-349467F9 Since:\"],dom_namednodemap_remove_named_item:[\"DOMNode dom_namednodemap_remove_named_item(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-D58B193 Since:\"],dom_namednodemap_remove_named_item_ns:[\"DOMNode dom_namednodemap_remove_named_item_ns(string namespaceURI, string localName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-removeNamedItemNS Since: DOM Level 2\"],dom_namednodemap_set_named_item:[\"DOMNode dom_namednodemap_set_named_item(DOMNode arg);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1025163788 Since:\"],dom_namednodemap_set_named_item_ns:[\"DOMNode dom_namednodemap_set_named_item_ns(DOMNode arg);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-setNamedItemNS Since: DOM Level 2\"],dom_namelist_get_name:[\"string dom_namelist_get_name(int index);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#NameList-getName Since:\"],dom_namelist_get_namespace_uri:[\"string dom_namelist_get_namespace_uri(int index);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#NameList-getNamespaceURI Since:\"],dom_node_append_child:[\"DomNode dom_node_append_child(DomNode newChild);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-184E7107 Since:\"],dom_node_clone_node:[\"DomNode dom_node_clone_node(boolean deep);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-3A0ED0A4 Since:\"],dom_node_compare_document_position:[\"short dom_node_compare_document_position(DomNode other);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-compareDocumentPosition Since: DOM Level 3\"],dom_node_get_feature:[\"DomNode dom_node_get_feature(string feature, string version);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-getFeature Since: DOM Level 3\"],dom_node_get_user_data:[\"mixed dom_node_get_user_data(string key);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-getUserData Since: DOM Level 3\"],dom_node_has_attributes:[\"boolean dom_node_has_attributes();\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-NodeHasAttrs Since: DOM Level 2\"],dom_node_has_child_nodes:[\"boolean dom_node_has_child_nodes();\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-810594187 Since:\"],dom_node_insert_before:[\"domnode dom_node_insert_before(DomNode newChild, DomNode refChild);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-952280727 Since:\"],dom_node_is_default_namespace:[\"boolean dom_node_is_default_namespace(string namespaceURI);\",\"URL: http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-isDefaultNamespace Since: DOM Level 3\"],dom_node_is_equal_node:[\"boolean dom_node_is_equal_node(DomNode arg);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-isEqualNode Since: DOM Level 3\"],dom_node_is_same_node:[\"boolean dom_node_is_same_node(DomNode other);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-isSameNode Since: DOM Level 3\"],dom_node_is_supported:[\"boolean dom_node_is_supported(string feature, string version);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Level-2-Core-Node-supports Since: DOM Level 2\"],dom_node_lookup_namespace_uri:[\"string dom_node_lookup_namespace_uri(string prefix);\",\"URL: http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespaceURI Since: DOM Level 3\"],dom_node_lookup_prefix:[\"string dom_node_lookup_prefix(string namespaceURI);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-lookupNamespacePrefix Since: DOM Level 3\"],dom_node_normalize:[\"void dom_node_normalize();\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-normalize Since:\"],dom_node_remove_child:[\"DomNode dom_node_remove_child(DomNode oldChild);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1734834066 Since:\"],dom_node_replace_child:[\"DomNode dom_node_replace_child(DomNode newChild, DomNode oldChild);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-785887307 Since:\"],dom_node_set_user_data:[\"mixed dom_node_set_user_data(string key, mixed data, userdatahandler handler);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-setUserData Since: DOM Level 3\"],dom_nodelist_item:[\"DOMNode dom_nodelist_item(int index);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-844377136 Since:\"],dom_string_extend_find_offset16:[\"int dom_string_extend_find_offset16(int offset32);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#i18n-methods-StringExtend-findOffset16 Since:\"],dom_string_extend_find_offset32:[\"int dom_string_extend_find_offset32(int offset16);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#i18n-methods-StringExtend-findOffset32 Since:\"],dom_text_is_whitespace_in_element_content:[\"boolean dom_text_is_whitespace_in_element_content();\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Text3-isWhitespaceInElementContent Since: DOM Level 3\"],dom_text_replace_whole_text:[\"DOMText dom_text_replace_whole_text(string content);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Text3-replaceWholeText Since: DOM Level 3\"],dom_text_split_text:[\"DOMText dom_text_split_text(int offset);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-38853C1D Since:\"],dom_userdatahandler_handle:[\"dom_void dom_userdatahandler_handle(short operation, string key, domobject data, node src, node dst);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-handleUserDataEvent Since:\"],dom_xpath_evaluate:[\"mixed dom_xpath_evaluate(string expr [,DOMNode context]); */\",\"PHP_FUNCTION(dom_xpath_evaluate) {  php_xpath_eval(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_DOM_XPATH_EVALUATE); } /* }}} end dom_xpath_evaluate\"],dom_xpath_query:[\"DOMNodeList dom_xpath_query(string expr [,DOMNode context]); */\",\"PHP_FUNCTION(dom_xpath_query) {  php_xpath_eval(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_DOM_XPATH_QUERY); } /* }}} end dom_xpath_query\"],dom_xpath_register_ns:[\"boolean dom_xpath_register_ns(string prefix, string uri); */\",'PHP_FUNCTION(dom_xpath_register_ns) {  zval *id;  xmlXPathContextPtr ctxp;  int prefix_len, ns_uri_len;  dom_xpath_object *intern;  unsigned char *prefix, *ns_uri;   if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), \"Oss\", &id, dom_xpath_class_entry, &prefix, &prefix_len, &ns_uri, &ns_uri_len) == FAILURE) {   return;  }   intern = (dom_xpath_object *)zend_object_store_get_object(id TSRMLS_CC);   ctxp = (xmlXPathContextPtr) intern->ptr;  if (ctxp == NULL) {   php_error_docref(NULL TSRMLS_CC, E_WARNING, \"Invalid XPath Context\");   RETURN_FALSE;  }   if (xmlXPathRegisterNs(ctxp, prefix, ns_uri) != 0) {   RETURN_FALSE  }  RETURN_TRUE; } /* }}}'],dom_xpath_register_php_functions:[\"void dom_xpath_register_php_functions() */\",'PHP_FUNCTION(dom_xpath_register_php_functions) {  zval *id;  dom_xpath_object *intern;  zval *array_value, **entry, *new_string;  int  name_len = 0;  char *name;   DOM_GET_THIS(id);    if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, \"a\",  &array_value) == SUCCESS) {   intern = (dom_xpath_object *)zend_object_store_get_object(id TSRMLS_CC);   zend_hash_internal_pointer_reset(Z_ARRVAL_P(array_value));    while (zend_hash_get_current_data(Z_ARRVAL_P(array_value), (void **)&entry) == SUCCESS) {    SEPARATE_ZVAL(entry);    convert_to_string_ex(entry);     MAKE_STD_ZVAL(new_string);    ZVAL_LONG(new_string,1);       zend_hash_update(intern->registered_phpfunctions, Z_STRVAL_PP(entry), Z_STRLEN_PP(entry) + 1, &new_string, sizeof(zval*), NULL);    zend_hash_move_forward(Z_ARRVAL_P(array_value));   }   intern->registerPhpFunctions = 2;   RETURN_TRUE;   } else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, \"s\",  &name, &name_len) == SUCCESS) {   intern = (dom_xpath_object *)zend_object_store_get_object(id TSRMLS_CC);      MAKE_STD_ZVAL(new_string);   ZVAL_LONG(new_string,1);   zend_hash_update(intern->registered_phpfunctions, name, name_len + 1, &new_string, sizeof(zval*), NULL);   intern->registerPhpFunctions = 2;     } else {   intern = (dom_xpath_object *)zend_object_store_get_object(id TSRMLS_CC);   intern->registerPhpFunctions = 1;  }   } /* }}} end dom_xpath_register_php_functions'],each:[\"array each(array arr)\",\"Return the currently pointed key..value pair in the passed array, and advance the pointer to the next element\"],easter_date:[\"int easter_date([int year])\",\"Return the timestamp of midnight on Easter of a given year (defaults to current year)\"],easter_days:[\"int easter_days([int year, [int method]])\",\"Return the number of days after March 21 that Easter falls on for a given year (defaults to current year)\"],echo:[\"void echo(string arg1 [, string ...])\",\"Output one or more strings\"],empty:[\"bool empty( mixed var )\",\"Determine whether a variable is empty\"],enchant_broker_describe:[\"array enchant_broker_describe(resource broker)\",\"Enumerates the Enchant providers and tells you some rudimentary information about them. The same info is provided through phpinfo()\"],enchant_broker_dict_exists:[\"bool enchant_broker_dict_exists(resource broker, string tag)\",\"Wether a dictionary exists or not. Using non-empty tag\"],enchant_broker_free:[\"boolean enchant_broker_free(resource broker)\",\"Destroys the broker object and its dictionnaries\"],enchant_broker_free_dict:[\"resource enchant_broker_free_dict(resource dict)\",\"Free the dictionary resource\"],enchant_broker_get_dict_path:[\"string enchant_broker_get_dict_path(resource broker, int dict_type)\",\"Get the directory path for a given backend, works with ispell and myspell\"],enchant_broker_get_error:[\"string enchant_broker_get_error(resource broker)\",\"Returns the last error of the broker\"],enchant_broker_init:[\"resource enchant_broker_init()\",\"create a new broker object capable of requesting\"],enchant_broker_list_dicts:[\"string enchant_broker_list_dicts(resource broker)\",\"Lists the dictionaries available for the given broker\"],enchant_broker_request_dict:[\"resource enchant_broker_request_dict(resource broker, string tag)\",'create a new dictionary using tag, the non-empty language tag you wish to request  a dictionary for (\"en_US\", \"de_DE\", ...)'],enchant_broker_request_pwl_dict:[\"resource enchant_broker_request_pwl_dict(resource broker, string filename)\",\"creates a dictionary using a PWL file. A PWL file is personal word file one word per line. It must exist before the call.\"],enchant_broker_set_dict_path:[\"bool enchant_broker_set_dict_path(resource broker, int dict_type, string value)\",\"Set the directory path for a given backend, works with ispell and myspell\"],enchant_broker_set_ordering:[\"bool enchant_broker_set_ordering(resource broker, string tag, string ordering)\",\"Declares a preference of dictionaries to use for the language  described/referred to by 'tag'. The ordering is a comma delimited  list of provider names. As a special exception, the \\\"*\\\" tag can  be used as a language tag to declare a default ordering for any  language that does not explictly declare an ordering.\"],enchant_dict_add_to_personal:[\"void enchant_dict_add_to_personal(resource dict, string word)\",\"add 'word' to personal word list\"],enchant_dict_add_to_session:[\"void enchant_dict_add_to_session(resource dict, string word)\",\"add 'word' to this spell-checking session\"],enchant_dict_check:[\"bool enchant_dict_check(resource dict, string word)\",\"If the word is correctly spelled return true, otherwise return false\"],enchant_dict_describe:[\"array enchant_dict_describe(resource dict)\",\"Describes an individual dictionary 'dict'\"],enchant_dict_get_error:[\"string enchant_dict_get_error(resource dict)\",\"Returns the last error of the current spelling-session\"],enchant_dict_is_in_session:[\"bool enchant_dict_is_in_session(resource dict, string word)\",\"whether or not 'word' exists in this spelling-session\"],enchant_dict_quick_check:[\"bool enchant_dict_quick_check(resource dict, string word [, array &suggestions])\",\"If the word is correctly spelled return true, otherwise return false, if suggestions variable     is provided, fill it with spelling alternatives.\"],enchant_dict_store_replacement:[\"void enchant_dict_store_replacement(resource dict, string mis, string cor)\",\"add a correction for 'mis' using 'cor'.  Notes that you replaced @mis with @cor, so it's possibly more likely  that future occurrences of @mis will be replaced with @cor. So it might  bump @cor up in the suggestion list.\"],enchant_dict_suggest:[\"array enchant_dict_suggest(resource dict, string word)\",\"Will return a list of values if any of those pre-conditions are not met.\"],end:[\"mixed end(array array_arg)\",\"Advances array argument's internal pointer to the last element and return it\"],ereg:[\"int ereg(string pattern, string string [, array registers])\",\"Regular expression match\"],ereg_replace:[\"string ereg_replace(string pattern, string replacement, string string)\",\"Replace regular expression\"],eregi:[\"int eregi(string pattern, string string [, array registers])\",\"Case-insensitive regular expression match\"],eregi_replace:[\"string eregi_replace(string pattern, string replacement, string string)\",\"Case insensitive replace regular expression\"],error_get_last:[\"array error_get_last()\",\"Get the last occurred error as associative array. Returns NULL if there hasn't been an error yet.\"],error_log:[\"bool error_log(string message [, int message_type [, string destination [, string extra_headers]]])\",\"Send an error message somewhere\"],error_reporting:[\"int error_reporting([int new_error_level])\",\"Return the current error_reporting level, and if an argument was passed - change to the new level\"],escapeshellarg:[\"string escapeshellarg(string arg)\",\"Quote and escape an argument for use in a shell command\"],escapeshellcmd:[\"string escapeshellcmd(string command)\",\"Escape shell metacharacters\"],exec:[\"string exec(string command [, array &output [, int &return_value]])\",\"Execute an external program\"],exif_imagetype:[\"int exif_imagetype(string imagefile)\",\"Get the type of an image\"],exif_read_data:[\"array exif_read_data(string filename [, sections_needed [, sub_arrays[, read_thumbnail]]])\",\"Reads header data from the JPEG/TIFF image filename and optionally reads the internal thumbnails\"],exif_tagname:[\"string exif_tagname(index)\",\"Get headername for index or false if not defined\"],exif_thumbnail:[\"string exif_thumbnail(string filename [, &width, &height [, &imagetype]])\",\"Reads the embedded thumbnail\"],exit:[\"void exit([mixed status])\",\"Output a message and terminate the current script\"],exp:[\"float exp(float number)\",\"Returns e raised to the power of the number\"],explode:[\"array explode(string separator, string str [, int limit])\",\"Splits a string on string separator and return array of components. If limit is positive only limit number of components is returned. If limit is negative all components except the last abs(limit) are returned.\"],expm1:[\"float expm1(float number)\",\"Returns exp(number) - 1, computed in a way that accurate even when the value of number is close to zero\"],extension_loaded:[\"bool extension_loaded(string extension_name)\",\"Returns true if the named extension is loaded\"],extract:[\"int extract(array var_array [, int extract_type [, string prefix]])\",\"Imports variables into symbol table from an array\"],ezmlm_hash:[\"int ezmlm_hash(string addr)\",\"Calculate EZMLM list hash value.\"],fclose:[\"bool fclose(resource fp)\",\"Close an open file pointer\"],feof:[\"bool feof(resource fp)\",\"Test for end-of-file on a file pointer\"],fflush:[\"bool fflush(resource fp)\",\"Flushes output\"],fgetc:[\"string fgetc(resource fp)\",\"Get a character from file pointer\"],fgetcsv:[\"array fgetcsv(resource fp [,int length [, string delimiter [, string enclosure [, string escape]]]])\",\"Get line from file pointer and parse for CSV fields\"],fgets:[\"string fgets(resource fp[, int length])\",\"Get a line from file pointer\"],fgetss:[\"string fgetss(resource fp [, int length [, string allowable_tags]])\",\"Get a line from file pointer and strip HTML tags\"],file:[\"array file(string filename [, int flags[, resource context]])\",\"Read entire file into an array\"],file_exists:[\"bool file_exists(string filename)\",\"Returns true if filename exists\"],file_get_contents:[\"string file_get_contents(string filename [, bool use_include_path [, resource context [, long offset [, long maxlen]]]])\",\"Read the entire file into a string\"],file_put_contents:[\"int file_put_contents(string file, mixed data [, int flags [, resource context]])\",\"Write/Create a file with contents data and return the number of bytes written\"],fileatime:[\"int fileatime(string filename)\",\"Get last access time of file\"],filectime:[\"int filectime(string filename)\",\"Get inode modification time of file\"],filegroup:[\"int filegroup(string filename)\",\"Get file group\"],fileinode:[\"int fileinode(string filename)\",\"Get file inode\"],filemtime:[\"int filemtime(string filename)\",\"Get last modification time of file\"],fileowner:[\"int fileowner(string filename)\",\"Get file owner\"],fileperms:[\"int fileperms(string filename)\",\"Get file permissions\"],filesize:[\"int filesize(string filename)\",\"Get file size\"],filetype:[\"string filetype(string filename)\",\"Get file type\"],filter_has_var:[\"mixed filter_has_var(constant type, string variable_name)\",\"* Returns true if the variable with the name 'name' exists in source.\"],filter_input:[\"mixed filter_input(constant type, string variable_name [, long filter [, mixed options]])\",\"* Returns the filtered variable 'name'* from source `type`.\"],filter_input_array:[\"mixed filter_input_array(constant type, [, mixed options]])\",\"* Returns an array with all arguments defined in 'definition'.\"],filter_var:[\"mixed filter_var(mixed variable [, long filter [, mixed options]])\",\"* Returns the filtered version of the vriable.\"],filter_var_array:[\"mixed filter_var_array(array data, [, mixed options]])\",\"* Returns an array with all arguments defined in 'definition'.\"],finfo_buffer:[\"string finfo_buffer(resource finfo, char *string [, int options [, resource context]])\",\"Return infromation about a string buffer.\"],finfo_close:[\"resource finfo_close(resource finfo)\",\"Close fileinfo resource.\"],finfo_file:[\"string finfo_file(resource finfo, char *file_name [, int options [, resource context]])\",\"Return information about a file.\"],finfo_open:[\"resource finfo_open([int options [, string arg]])\",\"Create a new fileinfo resource.\"],finfo_set_flags:[\"bool finfo_set_flags(resource finfo, int options)\",\"Set libmagic configuration options.\"],floatval:[\"float floatval(mixed var)\",\"Get the float value of a variable\"],flock:[\"bool flock(resource fp, int operation [, int &wouldblock])\",\"Portable file locking\"],floor:[\"float floor(float number)\",\"Returns the next lowest integer value from the number\"],flush:[\"void flush(void)\",\"Flush the output buffer\"],fmod:[\"float fmod(float x, float y)\",\"Returns the remainder of dividing x by y as a float\"],fnmatch:[\"bool fnmatch(string pattern, string filename [, int flags])\",\"Match filename against pattern\"],fopen:[\"resource fopen(string filename, string mode [, bool use_include_path [, resource context]])\",\"Open a file or a URL and return a file pointer\"],forward_static_call:[\"mixed forward_static_call(mixed function_name [, mixed parmeter] [, mixed ...])\",\"Call a user function which is the first parameter\"],fpassthru:[\"int fpassthru(resource fp)\",\"Output all remaining data from a file pointer\"],fprintf:[\"int fprintf(resource stream, string format [, mixed arg1 [, mixed ...]])\",\"Output a formatted string into a stream\"],fputcsv:[\"int fputcsv(resource fp, array fields [, string delimiter [, string enclosure]])\",\"Format line as CSV and write to file pointer\"],fread:[\"string fread(resource fp, int length)\",\"Binary-safe file read\"],frenchtojd:[\"int frenchtojd(int month, int day, int year)\",\"Converts a french republic calendar date to julian day count\"],fscanf:[\"mixed fscanf(resource stream, string format [, string ...])\",\"Implements a mostly ANSI compatible fscanf()\"],fseek:[\"int fseek(resource fp, int offset [, int whence])\",\"Seek on a file pointer\"],fsockopen:[\"resource fsockopen(string hostname, int port [, int errno [, string errstr [, float timeout]]])\",\"Open Internet or Unix domain socket connection\"],fstat:[\"array fstat(resource fp)\",\"Stat() on a filehandle\"],ftell:[\"int ftell(resource fp)\",\"Get file pointer's read/write position\"],ftok:[\"int ftok(string pathname, string proj)\",\"Convert a pathname and a project identifier to a System V IPC key\"],ftp_alloc:[\"bool ftp_alloc(resource stream, int size[, &response])\",\"Attempt to allocate space on the remote FTP server\"],ftp_cdup:[\"bool ftp_cdup(resource stream)\",\"Changes to the parent directory\"],ftp_chdir:[\"bool ftp_chdir(resource stream, string directory)\",\"Changes directories\"],ftp_chmod:[\"int ftp_chmod(resource stream, int mode, string filename)\",\"Sets permissions on a file\"],ftp_close:[\"bool ftp_close(resource stream)\",\"Closes the FTP stream\"],ftp_connect:[\"resource ftp_connect(string host [, int port [, int timeout]])\",\"Opens a FTP stream\"],ftp_delete:[\"bool ftp_delete(resource stream, string file)\",\"Deletes a file\"],ftp_exec:[\"bool ftp_exec(resource stream, string command)\",\"Requests execution of a program on the FTP server\"],ftp_fget:[\"bool ftp_fget(resource stream, resource fp, string remote_file, int mode[, int resumepos])\",\"Retrieves a file from the FTP server and writes it to an open file\"],ftp_fput:[\"bool ftp_fput(resource stream, string remote_file, resource fp, int mode[, int startpos])\",\"Stores a file from an open file to the FTP server\"],ftp_get:[\"bool ftp_get(resource stream, string local_file, string remote_file, int mode[, int resume_pos])\",\"Retrieves a file from the FTP server and writes it to a local file\"],ftp_get_option:[\"mixed ftp_get_option(resource stream, int option)\",\"Gets an FTP option\"],ftp_login:[\"bool ftp_login(resource stream, string username, string password)\",\"Logs into the FTP server\"],ftp_mdtm:[\"int ftp_mdtm(resource stream, string filename)\",\"Returns the last modification time of the file, or -1 on error\"],ftp_mkdir:[\"string ftp_mkdir(resource stream, string directory)\",\"Creates a directory and returns the absolute path for the new directory or false on error\"],ftp_nb_continue:[\"int ftp_nb_continue(resource stream)\",\"Continues retrieving/sending a file nbronously\"],ftp_nb_fget:[\"int ftp_nb_fget(resource stream, resource fp, string remote_file, int mode[, int resumepos])\",\"Retrieves a file from the FTP server asynchronly and writes it to an open file\"],ftp_nb_fput:[\"int ftp_nb_fput(resource stream, string remote_file, resource fp, int mode[, int startpos])\",\"Stores a file from an open file to the FTP server nbronly\"],ftp_nb_get:[\"int ftp_nb_get(resource stream, string local_file, string remote_file, int mode[, int resume_pos])\",\"Retrieves a file from the FTP server nbhronly and writes it to a local file\"],ftp_nb_put:[\"int ftp_nb_put(resource stream, string remote_file, string local_file, int mode[, int startpos])\",\"Stores a file on the FTP server\"],ftp_nlist:[\"array ftp_nlist(resource stream, string directory)\",\"Returns an array of filenames in the given directory\"],ftp_pasv:[\"bool ftp_pasv(resource stream, bool pasv)\",\"Turns passive mode on or off\"],ftp_put:[\"bool ftp_put(resource stream, string remote_file, string local_file, int mode[, int startpos])\",\"Stores a file on the FTP server\"],ftp_pwd:[\"string ftp_pwd(resource stream)\",\"Returns the present working directory\"],ftp_raw:[\"array ftp_raw(resource stream, string command)\",\"Sends a literal command to the FTP server\"],ftp_rawlist:[\"array ftp_rawlist(resource stream, string directory [, bool recursive])\",\"Returns a detailed listing of a directory as an array of output lines\"],ftp_rename:[\"bool ftp_rename(resource stream, string src, string dest)\",\"Renames the given file to a new path\"],ftp_rmdir:[\"bool ftp_rmdir(resource stream, string directory)\",\"Removes a directory\"],ftp_set_option:[\"bool ftp_set_option(resource stream, int option, mixed value)\",\"Sets an FTP option\"],ftp_site:[\"bool ftp_site(resource stream, string cmd)\",\"Sends a SITE command to the server\"],ftp_size:[\"int ftp_size(resource stream, string filename)\",\"Returns the size of the file, or -1 on error\"],ftp_ssl_connect:[\"resource ftp_ssl_connect(string host [, int port [, int timeout]])\",\"Opens a FTP-SSL stream\"],ftp_systype:[\"string ftp_systype(resource stream)\",\"Returns the system type identifier\"],ftruncate:[\"bool ftruncate(resource fp, int size)\",\"Truncate file to 'size' length\"],func_get_arg:[\"mixed func_get_arg(int arg_num)\",\"Get the $arg_num'th argument that was passed to the function\"],func_get_args:[\"array func_get_args()\",\"Get an array of the arguments that were passed to the function\"],func_num_args:[\"int func_num_args(void)\",\"Get the number of arguments that were passed to the function\"],function_exists:[\"bool function_exists(string function_name)\",\"Checks if the function exists\"],fwrite:[\"int fwrite(resource fp, string str [, int length])\",\"Binary-safe file write\"],gc_collect_cycles:[\"int gc_collect_cycles(void)\",\"Forces collection of any existing garbage cycles.    Returns number of freed zvals\"],gc_disable:[\"void gc_disable(void)\",\"Deactivates the circular reference collector\"],gc_enable:[\"void gc_enable(void)\",\"Activates the circular reference collector\"],gc_enabled:[\"void gc_enabled(void)\",\"Returns status of the circular reference collector\"],gd_info:[\"array gd_info()\",\"\"],getKeywords:[\"static array getKeywords(string $locale) {\",\"* return an associative array containing keyword-value  * pairs for this locale. The keys are keys to the array (doh!)  * }}}\"],get_browser:[\"mixed get_browser([string browser_name [, bool return_array]])\",\"Get information about the capabilities of a browser. If browser_name is omitted or null, HTTP_USER_AGENT is used. Returns an object by default; if return_array is true, returns an array.\"],get_called_class:[\"string get_called_class()\",'Retrieves the \"Late Static Binding\" class name'],get_cfg_var:[\"mixed get_cfg_var(string option_name)\",\"Get the value of a PHP configuration option\"],get_class:[\"string get_class([object object])\",\"Retrieves the class name\"],get_class_methods:[\"array get_class_methods(mixed class)\",\"Returns an array of method names for class or class instance.\"],get_class_vars:[\"array get_class_vars(string class_name)\",\"Returns an array of default properties of the class.\"],get_current_user:[\"string get_current_user(void)\",\"Get the name of the owner of the current PHP script\"],get_declared_classes:[\"array get_declared_classes()\",\"Returns an array of all declared classes.\"],get_declared_interfaces:[\"array get_declared_interfaces()\",\"Returns an array of all declared interfaces.\"],get_defined_constants:[\"array get_defined_constants([bool categorize])\",\"Return an array containing the names and values of all defined constants\"],get_defined_functions:[\"array get_defined_functions(void)\",\"Returns an array of all defined functions\"],get_defined_vars:[\"array get_defined_vars(void)\",\"Returns an associative array of names and values of all currently defined variable names (variables in the current scope)\"],get_display_language:[\"static string get_display_language($locale[, $in_locale = null])\",\"* gets the language for the $locale in $in_locale or default_locale\"],get_display_name:[\"static string get_display_name($locale[, $in_locale = null])\",\"* gets the name for the $locale in $in_locale or default_locale\"],get_display_region:[\"static string get_display_region($locale, $in_locale = null)\",\"* gets the region for the $locale in $in_locale or default_locale\"],get_display_script:[\"static string get_display_script($locale, $in_locale = null)\",\"* gets the script for the $locale in $in_locale or default_locale\"],get_extension_funcs:[\"array get_extension_funcs(string extension_name)\",\"Returns an array with the names of functions belonging to the named extension\"],get_headers:[\"array get_headers(string url[, int format])\",\"fetches all the headers sent by the server in response to a HTTP request\"],get_html_translation_table:[\"array get_html_translation_table([int table [, int quote_style]])\",\"Returns the internal translation table used by htmlspecialchars and htmlentities\"],get_include_path:[\"string get_include_path()\",\"Get the current include_path configuration option\"],get_included_files:[\"array get_included_files(void)\",\"Returns an array with the file names that were include_once()'d\"],get_loaded_extensions:[\"array get_loaded_extensions([bool zend_extensions])\",\"Return an array containing names of loaded extensions\"],get_magic_quotes_gpc:[\"int get_magic_quotes_gpc(void)\",\"Get the current active configuration setting of magic_quotes_gpc\"],get_magic_quotes_runtime:[\"int get_magic_quotes_runtime(void)\",\"Get the current active configuration setting of magic_quotes_runtime\"],get_meta_tags:[\"array get_meta_tags(string filename [, bool use_include_path])\",\"Extracts all meta tag content attributes from a file and returns an array\"],get_object_vars:[\"array get_object_vars(object obj)\",\"Returns an array of object properties\"],get_parent_class:[\"string get_parent_class([mixed object])\",\"Retrieves the parent class name for object or class or current scope.\"],get_resource_type:[\"string get_resource_type(resource res)\",\"Get the resource type name for a given resource\"],getallheaders:[\"array getallheaders(void)\",\"\"],getcwd:[\"mixed getcwd(void)\",\"Gets the current directory\"],getdate:[\"array getdate([int timestamp])\",\"Get date/time information\"],getenv:[\"string getenv(string varname)\",\"Get the value of an environment variable\"],gethostbyaddr:[\"string gethostbyaddr(string ip_address)\",\"Get the Internet host name corresponding to a given IP address\"],gethostbyname:[\"string gethostbyname(string hostname)\",\"Get the IP address corresponding to a given Internet host name\"],gethostbynamel:[\"array gethostbynamel(string hostname)\",\"Return a list of IP addresses that a given hostname resolves to.\"],gethostname:[\"string gethostname()\",\"Get the host name of the current machine\"],getimagesize:[\"array getimagesize(string imagefile [, array info])\",\"Get the size of an image as 4-element array\"],getlastmod:[\"int getlastmod(void)\",\"Get time of last page modification\"],getmygid:[\"int getmygid(void)\",\"Get PHP script owner's GID\"],getmyinode:[\"int getmyinode(void)\",\"Get the inode of the current script being parsed\"],getmypid:[\"int getmypid(void)\",\"Get current process ID\"],getmyuid:[\"int getmyuid(void)\",\"Get PHP script owner's UID\"],getopt:[\"array getopt(string options [, array longopts])\",\"Get options from the command line argument list\"],getprotobyname:[\"int getprotobyname(string name)\",\"Returns protocol number associated with name as per /etc/protocols\"],getprotobynumber:[\"string getprotobynumber(int proto)\",\"Returns protocol name associated with protocol number proto\"],getrandmax:[\"int getrandmax(void)\",\"Returns the maximum value a random number can have\"],getrusage:[\"array getrusage([int who])\",\"Returns an array of usage statistics\"],getservbyname:[\"int getservbyname(string service, string protocol)\",'Returns port associated with service. Protocol must be \"tcp\" or \"udp\"'],getservbyport:[\"string getservbyport(int port, string protocol)\",'Returns service name associated with port. Protocol must be \"tcp\" or \"udp\"'],gettext:[\"string gettext(string msgid)\",\"Return the translation of msgid for the current domain, or msgid unaltered if a translation does not exist\"],gettimeofday:[\"array gettimeofday([bool get_as_float])\",\"Returns the current time as array\"],gettype:[\"string gettype(mixed var)\",\"Returns the type of the variable\"],glob:[\"array glob(string pattern [, int flags])\",\"Find pathnames matching a pattern\"],gmdate:[\"string gmdate(string format [, long timestamp])\",\"Format a GMT date/time\"],gmmktime:[\"int gmmktime([int hour [, int min [, int sec [, int mon [, int day [, int year]]]]]])\",\"Get UNIX timestamp for a GMT date\"],gmp_abs:[\"resource gmp_abs(resource a)\",\"Calculates absolute value\"],gmp_add:[\"resource gmp_add(resource a, resource b)\",\"Add a and b\"],gmp_and:[\"resource gmp_and(resource a, resource b)\",\"Calculates logical AND of a and b\"],gmp_clrbit:[\"void gmp_clrbit(resource &a, int index)\",\"Clears bit in a\"],gmp_cmp:[\"int gmp_cmp(resource a, resource b)\",\"Compares two numbers\"],gmp_com:[\"resource gmp_com(resource a)\",\"Calculates one's complement of a\"],gmp_div_q:[\"resource gmp_div_q(resource a, resource b [, int round])\",\"Divide a by b, returns quotient only\"],gmp_div_qr:[\"array gmp_div_qr(resource a, resource b [, int round])\",\"Divide a by b, returns quotient and reminder\"],gmp_div_r:[\"resource gmp_div_r(resource a, resource b [, int round])\",\"Divide a by b, returns reminder only\"],gmp_divexact:[\"resource gmp_divexact(resource a, resource b)\",\"Divide a by b using exact division algorithm\"],gmp_fact:[\"resource gmp_fact(int a)\",\"Calculates factorial function\"],gmp_gcd:[\"resource gmp_gcd(resource a, resource b)\",\"Computes greatest common denominator (gcd) of a and b\"],gmp_gcdext:[\"array gmp_gcdext(resource a, resource b)\",\"Computes G, S, and T, such that AS + BT = G = `gcd' (A, B)\"],gmp_hamdist:[\"int gmp_hamdist(resource a, resource b)\",\"Calculates hamming distance between a and b\"],gmp_init:[\"resource gmp_init(mixed number [, int base])\",\"Initializes GMP number\"],gmp_intval:[\"int gmp_intval(resource gmpnumber)\",\"Gets signed long value of GMP number\"],gmp_invert:[\"resource gmp_invert(resource a, resource b)\",\"Computes the inverse of a modulo b\"],gmp_jacobi:[\"int gmp_jacobi(resource a, resource b)\",\"Computes Jacobi symbol\"],gmp_legendre:[\"int gmp_legendre(resource a, resource b)\",\"Computes Legendre symbol\"],gmp_mod:[\"resource gmp_mod(resource a, resource b)\",\"Computes a modulo b\"],gmp_mul:[\"resource gmp_mul(resource a, resource b)\",\"Multiply a and b\"],gmp_neg:[\"resource gmp_neg(resource a)\",\"Negates a number\"],gmp_nextprime:[\"resource gmp_nextprime(resource a)\",\"Finds next prime of a\"],gmp_or:[\"resource gmp_or(resource a, resource b)\",\"Calculates logical OR of a and b\"],gmp_perfect_square:[\"bool gmp_perfect_square(resource a)\",\"Checks if a is an exact square\"],gmp_popcount:[\"int gmp_popcount(resource a)\",\"Calculates the population count of a\"],gmp_pow:[\"resource gmp_pow(resource base, int exp)\",\"Raise base to power exp\"],gmp_powm:[\"resource gmp_powm(resource base, resource exp, resource mod)\",\"Raise base to power exp and take result modulo mod\"],gmp_prob_prime:[\"int gmp_prob_prime(resource a[, int reps])\",'Checks if a is \"probably prime\"'],gmp_random:[\"resource gmp_random([int limiter])\",\"Gets random number\"],gmp_scan0:[\"int gmp_scan0(resource a, int start)\",\"Finds first zero bit\"],gmp_scan1:[\"int gmp_scan1(resource a, int start)\",\"Finds first non-zero bit\"],gmp_setbit:[\"void gmp_setbit(resource &a, int index[, bool set_clear])\",\"Sets or clear bit in a\"],gmp_sign:[\"int gmp_sign(resource a)\",\"Gets the sign of the number\"],gmp_sqrt:[\"resource gmp_sqrt(resource a)\",\"Takes integer part of square root of a\"],gmp_sqrtrem:[\"array gmp_sqrtrem(resource a)\",\"Square root with remainder\"],gmp_strval:[\"string gmp_strval(resource gmpnumber [, int base])\",\"Gets string representation of GMP number\"],gmp_sub:[\"resource gmp_sub(resource a, resource b)\",\"Subtract b from a\"],gmp_testbit:[\"bool gmp_testbit(resource a, int index)\",\"Tests if bit is set in a\"],gmp_xor:[\"resource gmp_xor(resource a, resource b)\",\"Calculates logical exclusive OR of a and b\"],gmstrftime:[\"string gmstrftime(string format [, int timestamp])\",\"Format a GMT/UCT time/date according to locale settings\"],grapheme_extract:[\"string grapheme_extract(string str, int size[, int extract_type[, int start[, int next]]])\",\"Function to extract a sequence of default grapheme clusters\"],grapheme_stripos:[\"int grapheme_stripos(string haystack, string needle [, int offset ])\",\"Find position of first occurrence of a string within another, ignoring case differences\"],grapheme_stristr:[\"string grapheme_stristr(string haystack, string needle[, bool part])\",\"Finds first occurrence of a string within another\"],grapheme_strlen:[\"int grapheme_strlen(string str)\",\"Get number of graphemes in a string\"],grapheme_strpos:[\"int grapheme_strpos(string haystack, string needle [, int offset ])\",\"Find position of first occurrence of a string within another\"],grapheme_strripos:[\"int grapheme_strripos(string haystack, string needle [, int offset])\",\"Find position of last occurrence of a string within another, ignoring case\"],grapheme_strrpos:[\"int grapheme_strrpos(string haystack, string needle [, int offset])\",\"Find position of last occurrence of a string within another\"],grapheme_strstr:[\"string grapheme_strstr(string haystack, string needle[, bool part])\",\"Finds first occurrence of a string within another\"],grapheme_substr:[\"string grapheme_substr(string str, int start [, int length])\",\"Returns part of a string\"],gregoriantojd:[\"int gregoriantojd(int month, int day, int year)\",\"Converts a gregorian calendar date to julian day count\"],gzcompress:[\"string gzcompress(string data [, int level])\",\"Gzip-compress a string\"],gzdeflate:[\"string gzdeflate(string data [, int level])\",\"Gzip-compress a string\"],gzencode:[\"string gzencode(string data [, int level [, int encoding_mode]])\",\"GZ encode a string\"],gzfile:[\"array gzfile(string filename [, int use_include_path])\",\"Read und uncompress entire .gz-file into an array\"],gzinflate:[\"string gzinflate(string data [, int length])\",\"Unzip a gzip-compressed string\"],gzopen:[\"resource gzopen(string filename, string mode [, int use_include_path])\",\"Open a .gz-file and return a .gz-file pointer\"],gzuncompress:[\"string gzuncompress(string data [, int length])\",\"Unzip a gzip-compressed string\"],hash:[\"string hash(string algo, string data[, bool raw_output = false])\",\"Generate a hash of a given input string Returns lowercase hexits by default\"],hash_algos:[\"array hash_algos(void)\",\"Return a list of registered hashing algorithms\"],hash_copy:[\"resource hash_copy(resource context)\",\"Copy hash resource\"],hash_file:[\"string hash_file(string algo, string filename[, bool raw_output = false])\",\"Generate a hash of a given file Returns lowercase hexits by default\"],hash_final:[\"string hash_final(resource context[, bool raw_output=false])\",\"Output resulting digest\"],hash_hmac:[\"string hash_hmac(string algo, string data, string key[, bool raw_output = false])\",\"Generate a hash of a given input string with a key using HMAC Returns lowercase hexits by default\"],hash_hmac_file:[\"string hash_hmac_file(string algo, string filename, string key[, bool raw_output = false])\",\"Generate a hash of a given file with a key using HMAC Returns lowercase hexits by default\"],hash_init:[\"resource hash_init(string algo[, int options, string key])\",\"Initialize a hashing context\"],hash_update:[\"bool hash_update(resource context, string data)\",\"Pump data into the hashing algorithm\"],hash_update_file:[\"bool hash_update_file(resource context, string filename[, resource context])\",\"Pump data into the hashing algorithm from a file\"],hash_update_stream:[\"int hash_update_stream(resource context, resource handle[, integer length])\",\"Pump data into the hashing algorithm from an open stream\"],header:[\"void header(string header [, bool replace, [int http_response_code]])\",\"Sends a raw HTTP header\"],header_remove:[\"void header_remove([string name])\",\"Removes an HTTP header previously set using header()\"],headers_list:[\"array headers_list(void)\",\"Return list of headers to be sent / already sent\"],headers_sent:[\"bool headers_sent([string &$file [, int &$line]])\",\"Returns true if headers have already been sent, false otherwise\"],hebrev:[\"string hebrev(string str [, int max_chars_per_line])\",\"Converts logical Hebrew text to visual text\"],hebrevc:[\"string hebrevc(string str [, int max_chars_per_line])\",\"Converts logical Hebrew text to visual text with newline conversion\"],hexdec:[\"int hexdec(string hexadecimal_number)\",\"Returns the decimal equivalent of the hexadecimal number\"],highlight_file:[\"bool highlight_file(string file_name [, bool return] )\",\"Syntax highlight a source file\"],highlight_string:[\"bool highlight_string(string string [, bool return] )\",\"Syntax highlight a string or optionally return it\"],html_entity_decode:[\"string html_entity_decode(string string [, int quote_style][, string charset])\",\"Convert all HTML entities to their applicable characters\"],htmlentities:[\"string htmlentities(string string [, int quote_style[, string charset[, bool double_encode]]])\",\"Convert all applicable characters to HTML entities\"],htmlspecialchars:[\"string htmlspecialchars(string string [, int quote_style[, string charset[, bool double_encode]]])\",\"Convert special characters to HTML entities\"],htmlspecialchars_decode:[\"string htmlspecialchars_decode(string string [, int quote_style])\",\"Convert special HTML entities back to characters\"],http_build_query:[\"string http_build_query(mixed formdata [, string prefix [, string arg_separator]])\",\"Generates a form-encoded query string from an associative array or object.\"],hypot:[\"float hypot(float num1, float num2)\",\"Returns sqrt(num1*num1 + num2*num2)\"],ibase_add_user:[\"bool ibase_add_user(resource service_handle, string user_name, string password [, string first_name [, string middle_name [, string last_name]]])\",\"Add a user to security database\"],ibase_affected_rows:[\"int ibase_affected_rows( [ resource link_identifier ] )\",\"Returns the number of rows affected by the previous INSERT, UPDATE or DELETE statement\"],ibase_backup:[\"mixed ibase_backup(resource service_handle, string source_db, string dest_file [, int options [, bool verbose]])\",\"Initiates a backup task in the service manager and returns immediately\"],ibase_blob_add:[\"bool ibase_blob_add(resource blob_handle, string data)\",\"Add data into created blob\"],ibase_blob_cancel:[\"bool ibase_blob_cancel(resource blob_handle)\",\"Cancel creating blob\"],ibase_blob_close:[\"string ibase_blob_close(resource blob_handle)\",\"Close blob\"],ibase_blob_create:[\"resource ibase_blob_create([resource link_identifier])\",\"Create blob for adding data\"],ibase_blob_echo:[\"bool ibase_blob_echo([ resource link_identifier, ] string blob_id)\",\"Output blob contents to browser\"],ibase_blob_get:[\"string ibase_blob_get(resource blob_handle, int len)\",\"Get len bytes data from open blob\"],ibase_blob_import:[\"string ibase_blob_import([ resource link_identifier, ] resource file)\",\"Create blob, copy file in it, and close it\"],ibase_blob_info:[\"array ibase_blob_info([ resource link_identifier, ] string blob_id)\",\"Return blob length and other useful info\"],ibase_blob_open:[\"resource ibase_blob_open([ resource link_identifier, ] string blob_id)\",\"Open blob for retrieving data parts\"],ibase_close:[\"bool ibase_close([resource link_identifier])\",\"Close an InterBase connection\"],ibase_commit:[\"bool ibase_commit( resource link_identifier )\",\"Commit transaction\"],ibase_commit_ret:[\"bool ibase_commit_ret( resource link_identifier )\",\"Commit transaction and retain the transaction context\"],ibase_connect:[\"resource ibase_connect(string database [, string username [, string password [, string charset [, int buffers [, int dialect [, string role]]]]]])\",\"Open a connection to an InterBase database\"],ibase_db_info:[\"string ibase_db_info(resource service_handle, string db, int action [, int argument])\",\"Request statistics about a database\"],ibase_delete_user:[\"bool ibase_delete_user(resource service_handle, string user_name, string password [, string first_name [, string middle_name [, string last_name]]])\",\"Delete a user from security database\"],ibase_drop_db:[\"bool ibase_drop_db([resource link_identifier])\",\"Drop an InterBase database\"],ibase_errcode:[\"int ibase_errcode(void)\",\"Return error code\"],ibase_errmsg:[\"string ibase_errmsg(void)\",\"Return error message\"],ibase_execute:[\"mixed ibase_execute(resource query [, mixed bind_arg [, mixed bind_arg [, ...]]])\",\"Execute a previously prepared query\"],ibase_fetch_assoc:[\"array ibase_fetch_assoc(resource result [, int fetch_flags])\",\"Fetch a row  from the results of a query\"],ibase_fetch_object:[\"object ibase_fetch_object(resource result [, int fetch_flags])\",\"Fetch a object from the results of a query\"],ibase_fetch_row:[\"array ibase_fetch_row(resource result [, int fetch_flags])\",\"Fetch a row  from the results of a query\"],ibase_field_info:[\"array ibase_field_info(resource query_result, int field_number)\",\"Get information about a field\"],ibase_free_event_handler:[\"bool ibase_free_event_handler(resource event)\",\"Frees the event handler set by ibase_set_event_handler()\"],ibase_free_query:[\"bool ibase_free_query(resource query)\",\"Free memory used by a query\"],ibase_free_result:[\"bool ibase_free_result(resource result)\",\"Free the memory used by a result\"],ibase_gen_id:[\"int ibase_gen_id(string generator [, int increment [, resource link_identifier ]])\",\"Increments the named generator and returns its new value\"],ibase_maintain_db:[\"bool ibase_maintain_db(resource service_handle, string db, int action [, int argument])\",\"Execute a maintenance command on the database server\"],ibase_modify_user:[\"bool ibase_modify_user(resource service_handle, string user_name, string password [, string first_name [, string middle_name [, string last_name]]])\",\"Modify a user in security database\"],ibase_name_result:[\"bool ibase_name_result(resource result, string name)\",\"Assign a name to a result for use with ... WHERE CURRENT OF <name> statements\"],ibase_num_fields:[\"int ibase_num_fields(resource query_result)\",\"Get the number of fields in result\"],ibase_num_params:[\"int ibase_num_params(resource query)\",\"Get the number of params in a prepared query\"],ibase_num_rows:[\"int ibase_num_rows( resource result_identifier )\",\"Return the number of rows that are available in a result\"],ibase_param_info:[\"array ibase_param_info(resource query, int field_number)\",\"Get information about a parameter\"],ibase_pconnect:[\"resource ibase_pconnect(string database [, string username [, string password [, string charset [, int buffers [, int dialect [, string role]]]]]])\",\"Open a persistent connection to an InterBase database\"],ibase_prepare:[\"resource ibase_prepare(resource link_identifier[, string query [, resource trans_identifier ]])\",\"Prepare a query for later execution\"],ibase_query:[\"mixed ibase_query([resource link_identifier, [ resource link_identifier, ]] string query [, mixed bind_arg [, mixed bind_arg [, ...]]])\",\"Execute a query\"],ibase_restore:[\"mixed ibase_restore(resource service_handle, string source_file, string dest_db [, int options [, bool verbose]])\",\"Initiates a restore task in the service manager and returns immediately\"],ibase_rollback:[\"bool ibase_rollback( resource link_identifier )\",\"Rollback transaction\"],ibase_rollback_ret:[\"bool ibase_rollback_ret( resource link_identifier )\",\"Rollback transaction and retain the transaction context\"],ibase_server_info:[\"string ibase_server_info(resource service_handle, int action)\",\"Request information about a database server\"],ibase_service_attach:[\"resource ibase_service_attach(string host, string dba_username, string dba_password)\",\"Connect to the service manager\"],ibase_service_detach:[\"bool ibase_service_detach(resource service_handle)\",\"Disconnect from the service manager\"],ibase_set_event_handler:[\"resource ibase_set_event_handler([resource link_identifier,] callback handler, string event [, string event [, ...]])\",\"Register the callback for handling each of the named events\"],ibase_trans:[\"resource ibase_trans([int trans_args [, resource link_identifier [, ... ], int trans_args [, resource link_identifier [, ... ]] [, ...]]])\",\"Start a transaction over one or several databases\"],ibase_wait_event:[\"string ibase_wait_event([resource link_identifier,] string event [, string event [, ...]])\",\"Waits for any one of the passed Interbase events to be posted by the database, and returns its name\"],iconv:[\"string iconv(string in_charset, string out_charset, string str)\",\"Returns str converted to the out_charset character set\"],iconv_get_encoding:[\"mixed iconv_get_encoding([string type])\",\"Get internal encoding and output encoding for ob_iconv_handler()\"],iconv_mime_decode:[\"string iconv_mime_decode(string encoded_string [, int mode, string charset])\",\"Decodes a mime header field\"],iconv_mime_decode_headers:[\"array iconv_mime_decode_headers(string headers [, int mode, string charset])\",\"Decodes multiple mime header fields\"],iconv_mime_encode:[\"string iconv_mime_encode(string field_name, string field_value [, array preference])\",\"Composes a mime header field with field_name and field_value in a specified scheme\"],iconv_set_encoding:[\"bool iconv_set_encoding(string type, string charset)\",\"Sets internal encoding and output encoding for ob_iconv_handler()\"],iconv_strlen:[\"int iconv_strlen(string str [, string charset])\",\"Returns the character count of str\"],iconv_strpos:[\"int iconv_strpos(string haystack, string needle [, int offset [, string charset]])\",\"Finds position of first occurrence of needle within part of haystack beginning with offset\"],iconv_strrpos:[\"int iconv_strrpos(string haystack, string needle [, string charset])\",\"Finds position of last occurrence of needle within part of haystack beginning with offset\"],iconv_substr:[\"string iconv_substr(string str, int offset, [int length, string charset])\",\"Returns specified part of a string\"],idate:[\"int idate(string format [, int timestamp])\",\"Format a local time/date as integer\"],idn_to_ascii:[\"int idn_to_ascii(string domain[, int options])\",\"Converts an Unicode domain to ASCII representation, as defined in the IDNA RFC\"],idn_to_utf8:[\"int idn_to_utf8(string domain[, int options])\",\"Converts an ASCII representation of the domain to Unicode (UTF-8), as defined in the IDNA RFC\"],ignore_user_abort:[\"int ignore_user_abort([string value])\",\"Set whether we want to ignore a user abort event or not\"],image2wbmp:[\"bool image2wbmp(resource im [, string filename [, int threshold]])\",\"Output WBMP image to browser or file\"],image_type_to_extension:[\"string image_type_to_extension(int imagetype [, bool include_dot])\",\"Get file extension for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype\"],image_type_to_mime_type:[\"string image_type_to_mime_type(int imagetype)\",\"Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype\"],imagealphablending:[\"bool imagealphablending(resource im, bool on)\",\"Turn alpha blending mode on or off for the given image\"],imageantialias:[\"bool imageantialias(resource im, bool on)\",\"Should antialiased functions used or not\"],imagearc:[\"bool imagearc(resource im, int cx, int cy, int w, int h, int s, int e, int col)\",\"Draw a partial ellipse\"],imagechar:[\"bool imagechar(resource im, int font, int x, int y, string c, int col)\",\"Draw a character\"],imagecharup:[\"bool imagecharup(resource im, int font, int x, int y, string c, int col)\",\"Draw a character rotated 90 degrees counter-clockwise\"],imagecolorallocate:[\"int imagecolorallocate(resource im, int red, int green, int blue)\",\"Allocate a color for an image\"],imagecolorallocatealpha:[\"int imagecolorallocatealpha(resource im, int red, int green, int blue, int alpha)\",\"Allocate a color with an alpha level.  Works for true color and palette based images\"],imagecolorat:[\"int imagecolorat(resource im, int x, int y)\",\"Get the index of the color of a pixel\"],imagecolorclosest:[\"int imagecolorclosest(resource im, int red, int green, int blue)\",\"Get the index of the closest color to the specified color\"],imagecolorclosestalpha:[\"int imagecolorclosestalpha(resource im, int red, int green, int blue, int alpha)\",\"Find the closest matching colour with alpha transparency\"],imagecolorclosesthwb:[\"int imagecolorclosesthwb(resource im, int red, int green, int blue)\",\"Get the index of the color which has the hue, white and blackness nearest to the given color\"],imagecolordeallocate:[\"bool imagecolordeallocate(resource im, int index)\",\"De-allocate a color for an image\"],imagecolorexact:[\"int imagecolorexact(resource im, int red, int green, int blue)\",\"Get the index of the specified color\"],imagecolorexactalpha:[\"int imagecolorexactalpha(resource im, int red, int green, int blue, int alpha)\",\"Find exact match for colour with transparency\"],imagecolormatch:[\"bool imagecolormatch(resource im1, resource im2)\",\"Makes the colors of the palette version of an image more closely match the true color version\"],imagecolorresolve:[\"int imagecolorresolve(resource im, int red, int green, int blue)\",\"Get the index of the specified color or its closest possible alternative\"],imagecolorresolvealpha:[\"int imagecolorresolvealpha(resource im, int red, int green, int blue, int alpha)\",\"Resolve/Allocate a colour with an alpha level.  Works for true colour and palette based images\"],imagecolorset:[\"void imagecolorset(resource im, int col, int red, int green, int blue)\",\"Set the color for the specified palette index\"],imagecolorsforindex:[\"array imagecolorsforindex(resource im, int col)\",\"Get the colors for an index\"],imagecolorstotal:[\"int imagecolorstotal(resource im)\",\"Find out the number of colors in an image's palette\"],imagecolortransparent:[\"int imagecolortransparent(resource im [, int col])\",\"Define a color as transparent\"],imageconvolution:[\"resource imageconvolution(resource src_im, array matrix3x3, double div, double offset)\",\"Apply a 3x3 convolution matrix, using coefficient div and offset\"],imagecopy:[\"bool imagecopy(resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h)\",\"Copy part of an image\"],imagecopymerge:[\"bool imagecopymerge(resource src_im, resource dst_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct)\",\"Merge one part of an image with another\"],imagecopymergegray:[\"bool imagecopymergegray(resource src_im, resource dst_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct)\",\"Merge one part of an image with another\"],imagecopyresampled:[\"bool imagecopyresampled(resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h)\",\"Copy and resize part of an image using resampling to help ensure clarity\"],imagecopyresized:[\"bool imagecopyresized(resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h)\",\"Copy and resize part of an image\"],imagecreate:[\"resource imagecreate(int x_size, int y_size)\",\"Create a new image\"],imagecreatefromgd:[\"resource imagecreatefromgd(string filename)\",\"Create a new image from GD file or URL\"],imagecreatefromgd2:[\"resource imagecreatefromgd2(string filename)\",\"Create a new image from GD2 file or URL\"],imagecreatefromgd2part:[\"resource imagecreatefromgd2part(string filename, int srcX, int srcY, int width, int height)\",\"Create a new image from a given part of GD2 file or URL\"],imagecreatefromgif:[\"resource imagecreatefromgif(string filename)\",\"Create a new image from GIF file or URL\"],imagecreatefromjpeg:[\"resource imagecreatefromjpeg(string filename)\",\"Create a new image from JPEG file or URL\"],imagecreatefrompng:[\"resource imagecreatefrompng(string filename)\",\"Create a new image from PNG file or URL\"],imagecreatefromstring:[\"resource imagecreatefromstring(string image)\",\"Create a new image from the image stream in the string\"],imagecreatefromwbmp:[\"resource imagecreatefromwbmp(string filename)\",\"Create a new image from WBMP file or URL\"],imagecreatefromxbm:[\"resource imagecreatefromxbm(string filename)\",\"Create a new image from XBM file or URL\"],imagecreatefromxpm:[\"resource imagecreatefromxpm(string filename)\",\"Create a new image from XPM file or URL\"],imagecreatetruecolor:[\"resource imagecreatetruecolor(int x_size, int y_size)\",\"Create a new true color image\"],imagedashedline:[\"bool imagedashedline(resource im, int x1, int y1, int x2, int y2, int col)\",\"Draw a dashed line\"],imagedestroy:[\"bool imagedestroy(resource im)\",\"Destroy an image\"],imageellipse:[\"bool imageellipse(resource im, int cx, int cy, int w, int h, int color)\",\"Draw an ellipse\"],imagefill:[\"bool imagefill(resource im, int x, int y, int col)\",\"Flood fill\"],imagefilledarc:[\"bool imagefilledarc(resource im, int cx, int cy, int w, int h, int s, int e, int col, int style)\",\"Draw a filled partial ellipse\"],imagefilledellipse:[\"bool imagefilledellipse(resource im, int cx, int cy, int w, int h, int color)\",\"Draw an ellipse\"],imagefilledpolygon:[\"bool imagefilledpolygon(resource im, array point, int num_points, int col)\",\"Draw a filled polygon\"],imagefilledrectangle:[\"bool imagefilledrectangle(resource im, int x1, int y1, int x2, int y2, int col)\",\"Draw a filled rectangle\"],imagefilltoborder:[\"bool imagefilltoborder(resource im, int x, int y, int border, int col)\",\"Flood fill to specific color\"],imagefilter:[\"bool imagefilter(resource src_im, int filtertype, [args] )\",\"Applies Filter an image using a custom angle\"],imagefontheight:[\"int imagefontheight(int font)\",\"Get font height\"],imagefontwidth:[\"int imagefontwidth(int font)\",\"Get font width\"],imageftbbox:[\"array imageftbbox(float size, float angle, string font_file, string text [, array extrainfo])\",\"Give the bounding box of a text using fonts via freetype2\"],imagefttext:[\"array imagefttext(resource im, float size, float angle, int x, int y, int col, string font_file, string text [, array extrainfo])\",\"Write text to the image using fonts via freetype2\"],imagegammacorrect:[\"bool imagegammacorrect(resource im, float inputgamma, float outputgamma)\",\"Apply a gamma correction to a GD image\"],imagegd:[\"bool imagegd(resource im [, string filename])\",\"Output GD image to browser or file\"],imagegd2:[\"bool imagegd2(resource im [, string filename, [, int chunk_size, [, int type]]])\",\"Output GD2 image to browser or file\"],imagegif:[\"bool imagegif(resource im [, string filename])\",\"Output GIF image to browser or file\"],imagegrabscreen:[\"resource imagegrabscreen()\",\"Grab a screenshot\"],imagegrabwindow:[\"resource imagegrabwindow(int window_handle [, int client_area])\",\"Grab a window or its client area using a windows handle (HWND property in COM instance)\"],imageinterlace:[\"int imageinterlace(resource im [, int interlace])\",\"Enable or disable interlace\"],imageistruecolor:[\"bool imageistruecolor(resource im)\",\"return true if the image uses truecolor\"],imagejpeg:[\"bool imagejpeg(resource im [, string filename [, int quality]])\",\"Output JPEG image to browser or file\"],imagelayereffect:[\"bool imagelayereffect(resource im, int effect)\",\"Set the alpha blending flag to use the bundled libgd layering effects\"],imageline:[\"bool imageline(resource im, int x1, int y1, int x2, int y2, int col)\",\"Draw a line\"],imageloadfont:[\"int imageloadfont(string filename)\",\"Load a new font\"],imagepalettecopy:[\"void imagepalettecopy(resource dst, resource src)\",\"Copy the palette from the src image onto the dst image\"],imagepng:[\"bool imagepng(resource im [, string filename])\",\"Output PNG image to browser or file\"],imagepolygon:[\"bool imagepolygon(resource im, array point, int num_points, int col)\",\"Draw a polygon\"],imagepsbbox:[\"array imagepsbbox(string text, resource font, int size [, int space, int tightness, float angle])\",\"Return the bounding box needed by a string if rasterized\"],imagepscopyfont:[\"int imagepscopyfont(int font_index)\",\"Make a copy of a font for purposes like extending or reenconding\"],imagepsencodefont:[\"bool imagepsencodefont(resource font_index, string filename)\",\"To change a fonts character encoding vector\"],imagepsextendfont:[\"bool imagepsextendfont(resource font_index, float extend)\",\"Extend or or condense (if extend < 1) a font\"],imagepsfreefont:[\"bool imagepsfreefont(resource font_index)\",\"Free memory used by a font\"],imagepsloadfont:[\"resource imagepsloadfont(string pathname)\",\"Load a new font from specified file\"],imagepsslantfont:[\"bool imagepsslantfont(resource font_index, float slant)\",\"Slant a font\"],imagepstext:[\"array imagepstext(resource image, string text, resource font, int size, int foreground, int background, int xcoord, int ycoord [, int space [, int tightness [, float angle [, int antialias])\",\"Rasterize a string over an image\"],imagerectangle:[\"bool imagerectangle(resource im, int x1, int y1, int x2, int y2, int col)\",\"Draw a rectangle\"],imagerotate:[\"resource imagerotate(resource src_im, float angle, int bgdcolor [, int ignoretransparent])\",\"Rotate an image using a custom angle\"],imagesavealpha:[\"bool imagesavealpha(resource im, bool on)\",\"Include alpha channel to a saved image\"],imagesetbrush:[\"bool imagesetbrush(resource image, resource brush)\",'Set the brush image to $brush when filling $image with the \"IMG_COLOR_BRUSHED\" color'],imagesetpixel:[\"bool imagesetpixel(resource im, int x, int y, int col)\",\"Set a single pixel\"],imagesetstyle:[\"bool imagesetstyle(resource im, array styles)\",\"Set the line drawing styles for use with imageline and IMG_COLOR_STYLED.\"],imagesetthickness:[\"bool imagesetthickness(resource im, int thickness)\",\"Set line thickness for drawing lines, ellipses, rectangles, polygons etc.\"],imagesettile:[\"bool imagesettile(resource image, resource tile)\",'Set the tile image to $tile when filling $image with the \"IMG_COLOR_TILED\" color'],imagestring:[\"bool imagestring(resource im, int font, int x, int y, string str, int col)\",\"Draw a string horizontally\"],imagestringup:[\"bool imagestringup(resource im, int font, int x, int y, string str, int col)\",\"Draw a string vertically - rotated 90 degrees counter-clockwise\"],imagesx:[\"int imagesx(resource im)\",\"Get image width\"],imagesy:[\"int imagesy(resource im)\",\"Get image height\"],imagetruecolortopalette:[\"void imagetruecolortopalette(resource im, bool ditherFlag, int colorsWanted)\",\"Convert a true colour image to a palette based image with a number of colours, optionally using dithering.\"],imagettfbbox:[\"array imagettfbbox(float size, float angle, string font_file, string text)\",\"Give the bounding box of a text using TrueType fonts\"],imagettftext:[\"array imagettftext(resource im, float size, float angle, int x, int y, int col, string font_file, string text)\",\"Write text to the image using a TrueType font\"],imagetypes:[\"int imagetypes(void)\",\"Return the types of images supported in a bitfield - 1=GIF, 2=JPEG, 4=PNG, 8=WBMP, 16=XPM\"],imagewbmp:[\"bool imagewbmp(resource im [, string filename, [, int foreground]])\",\"Output WBMP image to browser or file\"],imagexbm:[\"int imagexbm(int im, string filename [, int foreground])\",\"Output XBM image to browser or file\"],imap_8bit:[\"string imap_8bit(string text)\",\"Convert an 8-bit string to a quoted-printable string\"],imap_alerts:[\"array imap_alerts(void)\",\"Returns an array of all IMAP alerts that have been generated since the last page load or since the last imap_alerts() call, whichever came last. The alert stack is cleared after imap_alerts() is called.\"],imap_append:[\"bool imap_append(resource stream_id, string folder, string message [, string options [, string internal_date]])\",\"Append a new message to a specified mailbox\"],imap_base64:[\"string imap_base64(string text)\",\"Decode BASE64 encoded text\"],imap_binary:[\"string imap_binary(string text)\",\"Convert an 8bit string to a base64 string\"],imap_body:[\"string imap_body(resource stream_id, int msg_no [, int options])\",\"Read the message body\"],imap_bodystruct:[\"object imap_bodystruct(resource stream_id, int msg_no, string section)\",\"Read the structure of a specified body section of a specific message\"],imap_check:[\"object imap_check(resource stream_id)\",\"Get mailbox properties\"],imap_clearflag_full:[\"bool imap_clearflag_full(resource stream_id, string sequence, string flag [, int options])\",\"Clears flags on messages\"],imap_close:[\"bool imap_close(resource stream_id [, int options])\",\"Close an IMAP stream\"],imap_createmailbox:[\"bool imap_createmailbox(resource stream_id, string mailbox)\",\"Create a new mailbox\"],imap_delete:[\"bool imap_delete(resource stream_id, int msg_no [, int options])\",\"Mark a message for deletion\"],imap_deletemailbox:[\"bool imap_deletemailbox(resource stream_id, string mailbox)\",\"Delete a mailbox\"],imap_errors:[\"array imap_errors(void)\",\"Returns an array of all IMAP errors generated since the last page load, or since the last imap_errors() call, whichever came last. The error stack is cleared after imap_errors() is called.\"],imap_expunge:[\"bool imap_expunge(resource stream_id)\",\"Permanently delete all messages marked for deletion\"],imap_fetch_overview:[\"array imap_fetch_overview(resource stream_id, string sequence [, int options])\",\"Read an overview of the information in the headers of the given message sequence\"],imap_fetchbody:[\"string imap_fetchbody(resource stream_id, int msg_no, string section [, int options])\",\"Get a specific body section\"],imap_fetchheader:[\"string imap_fetchheader(resource stream_id, int msg_no [, int options])\",\"Get the full unfiltered header for a message\"],imap_fetchstructure:[\"object imap_fetchstructure(resource stream_id, int msg_no [, int options])\",\"Read the full structure of a message\"],imap_gc:[\"bool imap_gc(resource stream_id, int flags)\",\"This function garbage collects (purges) the cache of entries of a specific type.\"],imap_get_quota:[\"array imap_get_quota(resource stream_id, string qroot)\",\"Returns the quota set to the mailbox account qroot\"],imap_get_quotaroot:[\"array imap_get_quotaroot(resource stream_id, string mbox)\",\"Returns the quota set to the mailbox account mbox\"],imap_getacl:[\"array imap_getacl(resource stream_id, string mailbox)\",\"Gets the ACL for a given mailbox\"],imap_getmailboxes:[\"array imap_getmailboxes(resource stream_id, string ref, string pattern)\",\"Reads the list of mailboxes and returns a full array of objects containing name, attributes, and delimiter\"],imap_getsubscribed:[\"array imap_getsubscribed(resource stream_id, string ref, string pattern)\",\"Return a list of subscribed mailboxes, in the same format as imap_getmailboxes()\"],imap_headerinfo:[\"object imap_headerinfo(resource stream_id, int msg_no [, int from_length [, int subject_length [, string default_host]]])\",\"Read the headers of the message\"],imap_headers:[\"array imap_headers(resource stream_id)\",\"Returns headers for all messages in a mailbox\"],imap_last_error:[\"string imap_last_error(void)\",\"Returns the last error that was generated by an IMAP function. The error stack is NOT cleared after this call.\"],imap_list:[\"array imap_list(resource stream_id, string ref, string pattern)\",\"Read the list of mailboxes\"],imap_listscan:[\"array imap_listscan(resource stream_id, string ref, string pattern, string content)\",\"Read list of mailboxes containing a certain string\"],imap_lsub:[\"array imap_lsub(resource stream_id, string ref, string pattern)\",\"Return a list of subscribed mailboxes\"],imap_mail:[\"bool imap_mail(string to, string subject, string message [, string additional_headers [, string cc [, string bcc [, string rpath]]]])\",\"Send an email message\"],imap_mail_compose:[\"string imap_mail_compose(array envelope, array body)\",\"Create a MIME message based on given envelope and body sections\"],imap_mail_copy:[\"bool imap_mail_copy(resource stream_id, string msglist, string mailbox [, int options])\",\"Copy specified message to a mailbox\"],imap_mail_move:[\"bool imap_mail_move(resource stream_id, string sequence, string mailbox [, int options])\",\"Move specified message to a mailbox\"],imap_mailboxmsginfo:[\"object imap_mailboxmsginfo(resource stream_id)\",\"Returns info about the current mailbox\"],imap_mime_header_decode:[\"array imap_mime_header_decode(string str)\",\"Decode mime header element in accordance with RFC 2047 and return array of objects containing 'charset' encoding and decoded 'text'\"],imap_msgno:[\"int imap_msgno(resource stream_id, int unique_msg_id)\",\"Get the sequence number associated with a UID\"],imap_mutf7_to_utf8:[\"string imap_mutf7_to_utf8(string in)\",\"Decode a modified UTF-7 string to UTF-8\"],imap_num_msg:[\"int imap_num_msg(resource stream_id)\",\"Gives the number of messages in the current mailbox\"],imap_num_recent:[\"int imap_num_recent(resource stream_id)\",\"Gives the number of recent messages in current mailbox\"],imap_open:[\"resource imap_open(string mailbox, string user, string password [, int options [, int n_retries]])\",\"Open an IMAP stream to a mailbox\"],imap_ping:[\"bool imap_ping(resource stream_id)\",\"Check if the IMAP stream is still active\"],imap_qprint:[\"string imap_qprint(string text)\",\"Convert a quoted-printable string to an 8-bit string\"],imap_renamemailbox:[\"bool imap_renamemailbox(resource stream_id, string old_name, string new_name)\",\"Rename a mailbox\"],imap_reopen:[\"bool imap_reopen(resource stream_id, string mailbox [, int options [, int n_retries]])\",\"Reopen an IMAP stream to a new mailbox\"],imap_rfc822_parse_adrlist:[\"array imap_rfc822_parse_adrlist(string address_string, string default_host)\",\"Parses an address string\"],imap_rfc822_parse_headers:[\"object imap_rfc822_parse_headers(string headers [, string default_host])\",\"Parse a set of mail headers contained in a string, and return an object similar to imap_headerinfo()\"],imap_rfc822_write_address:[\"string imap_rfc822_write_address(string mailbox, string host, string personal)\",\"Returns a properly formatted email address given the mailbox, host, and personal info\"],imap_savebody:['bool imap_savebody(resource stream_id, string|resource file, int msg_no[, string section = \"\"[, int options = 0]])',\"Save a specific body section to a file\"],imap_search:[\"array imap_search(resource stream_id, string criteria [, int options [, string charset]])\",\"Return a list of messages matching the given criteria\"],imap_set_quota:[\"bool imap_set_quota(resource stream_id, string qroot, int mailbox_size)\",\"Will set the quota for qroot mailbox\"],imap_setacl:[\"bool imap_setacl(resource stream_id, string mailbox, string id, string rights)\",\"Sets the ACL for a given mailbox\"],imap_setflag_full:[\"bool imap_setflag_full(resource stream_id, string sequence, string flag [, int options])\",\"Sets flags on messages\"],imap_sort:[\"array imap_sort(resource stream_id, int criteria, int reverse [, int options [, string search_criteria [, string charset]]])\",\"Sort an array of message headers, optionally including only messages that meet specified criteria.\"],imap_status:[\"object imap_status(resource stream_id, string mailbox, int options)\",\"Get status info from a mailbox\"],imap_subscribe:[\"bool imap_subscribe(resource stream_id, string mailbox)\",\"Subscribe to a mailbox\"],imap_thread:[\"array imap_thread(resource stream_id [, int options])\",\"Return threaded by REFERENCES tree\"],imap_timeout:[\"mixed imap_timeout(int timeout_type [, int timeout])\",\"Set or fetch imap timeout\"],imap_uid:[\"int imap_uid(resource stream_id, int msg_no)\",\"Get the unique message id associated with a standard sequential message number\"],imap_undelete:[\"bool imap_undelete(resource stream_id, int msg_no [, int flags])\",\"Remove the delete flag from a message\"],imap_unsubscribe:[\"bool imap_unsubscribe(resource stream_id, string mailbox)\",\"Unsubscribe from a mailbox\"],imap_utf7_decode:[\"string imap_utf7_decode(string buf)\",\"Decode a modified UTF-7 string\"],imap_utf7_encode:[\"string imap_utf7_encode(string buf)\",\"Encode a string in modified UTF-7\"],imap_utf8:[\"string imap_utf8(string mime_encoded_text)\",\"Convert a mime-encoded text to UTF-8\"],imap_utf8_to_mutf7:[\"string imap_utf8_to_mutf7(string in)\",\"Encode a UTF-8 string to modified UTF-7\"],implode:[\"string implode([string glue,] array pieces)\",\"Joins array elements placing glue string between items and return one string\"],import_request_variables:[\"bool import_request_variables(string types [, string prefix])\",\"Import GET/POST/Cookie variables into the global scope\"],in_array:[\"bool in_array(mixed needle, array haystack [, bool strict])\",\"Checks if the given value exists in the array\"],include:[\"bool include(string path)\",\"Includes and evaluates the specified file\"],include_once:[\"bool include_once(string path)\",\"Includes and evaluates the specified file\"],inet_ntop:[\"string inet_ntop(string in_addr)\",\"Converts a packed inet address to a human readable IP address string\"],inet_pton:[\"string inet_pton(string ip_address)\",\"Converts a human readable IP address to a packed binary string\"],ini_get:[\"string ini_get(string varname)\",\"Get a configuration option\"],ini_get_all:[\"array ini_get_all([string extension[, bool details = true]])\",\"Get all configuration options\"],ini_restore:[\"void ini_restore(string varname)\",\"Restore the value of a configuration option specified by varname\"],ini_set:[\"string ini_set(string varname, string newvalue)\",\"Set a configuration option, returns false on error and the old value of the configuration option on success\"],interface_exists:[\"bool interface_exists(string classname [, bool autoload])\",\"Checks if the class exists\"],intl_error_name:[\"string intl_error_name()\",\"* Return a string for a given error code.  * The string will be the same as the name of the error code constant.\"],intl_get_error_code:[\"int intl_get_error_code()\",\"* Get code of the last occured error.\"],intl_get_error_message:[\"string intl_get_error_message()\",\"* Get text description of the last occured error.\"],intl_is_failure:[\"bool intl_is_failure()\",\"* Check whether the given error code indicates a failure.  * Returns true if it does, and false if the code  * indicates success or a warning.\"],intval:[\"int intval(mixed var [, int base])\",\"Get the integer value of a variable using the optional base for the conversion\"],ip2long:[\"int ip2long(string ip_address)\",\"Converts a string containing an (IPv4) Internet Protocol dotted address into a proper address\"],iptcembed:[\"array iptcembed(string iptcdata, string jpeg_file_name [, int spool])\",\"Embed binary IPTC data into a JPEG image.\"],iptcparse:[\"array iptcparse(string iptcdata)\",\"Parse binary IPTC-data into associative array\"],is_a:[\"bool is_a(object object, string class_name)\",\"Returns true if the object is of this class or has this class as one of its parents\"],is_array:[\"bool is_array(mixed var)\",\"Returns true if variable is an array\"],is_bool:[\"bool is_bool(mixed var)\",\"Returns true if variable is a boolean\"],is_callable:[\"bool is_callable(mixed var [, bool syntax_only [, string callable_name]])\",\"Returns true if var is callable.\"],is_dir:[\"bool is_dir(string filename)\",\"Returns true if file is directory\"],is_executable:[\"bool is_executable(string filename)\",\"Returns true if file is executable\"],is_file:[\"bool is_file(string filename)\",\"Returns true if file is a regular file\"],is_finite:[\"bool is_finite(float val)\",\"Returns whether argument is finite\"],is_float:[\"bool is_float(mixed var)\",\"Returns true if variable is float point\"],is_infinite:[\"bool is_infinite(float val)\",\"Returns whether argument is infinite\"],is_link:[\"bool is_link(string filename)\",\"Returns true if file is symbolic link\"],is_long:[\"bool is_long(mixed var)\",\"Returns true if variable is a long (integer)\"],is_nan:[\"bool is_nan(float val)\",\"Returns whether argument is not a number\"],is_null:[\"bool is_null(mixed var)\",\"Returns true if variable is null\"],is_numeric:[\"bool is_numeric(mixed value)\",\"Returns true if value is a number or a numeric string\"],is_object:[\"bool is_object(mixed var)\",\"Returns true if variable is an object\"],is_readable:[\"bool is_readable(string filename)\",\"Returns true if file can be read\"],is_resource:[\"bool is_resource(mixed var)\",\"Returns true if variable is a resource\"],is_scalar:[\"bool is_scalar(mixed value)\",\"Returns true if value is a scalar\"],is_string:[\"bool is_string(mixed var)\",\"Returns true if variable is a string\"],is_subclass_of:[\"bool is_subclass_of(object object, string class_name)\",\"Returns true if the object has this class as one of its parents\"],is_uploaded_file:[\"bool is_uploaded_file(string path)\",\"Check if file was created by rfc1867 upload\"],is_writable:[\"bool is_writable(string filename)\",\"Returns true if file can be written\"],isset:[\"bool isset(mixed var [, mixed var])\",\"Determine whether a variable is set\"],iterator_apply:[\"int iterator_apply(Traversable it, mixed function [, mixed params])\",\"Calls a function for every element in an iterator\"],iterator_count:[\"int iterator_count(Traversable it)\",\"Count the elements in an iterator\"],iterator_to_array:[\"array iterator_to_array(Traversable it [, bool use_keys = true])\",\"Copy the iterator into an array\"],jddayofweek:[\"mixed jddayofweek(int juliandaycount [, int mode])\",\"Returns name or number of day of week from julian day count\"],jdmonthname:[\"string jdmonthname(int juliandaycount, int mode)\",\"Returns name of month for julian day count\"],jdtofrench:[\"string jdtofrench(int juliandaycount)\",\"Converts a julian day count to a french republic calendar date\"],jdtogregorian:[\"string jdtogregorian(int juliandaycount)\",\"Converts a julian day count to a gregorian calendar date\"],jdtojewish:[\"string jdtojewish(int juliandaycount [, bool hebrew [, int fl]])\",\"Converts a julian day count to a jewish calendar date\"],jdtojulian:[\"string jdtojulian(int juliandaycount)\",\"Convert a julian day count to a julian calendar date\"],jdtounix:[\"int jdtounix(int jday)\",\"Convert Julian Day to UNIX timestamp\"],jewishtojd:[\"int jewishtojd(int month, int day, int year)\",\"Converts a jewish calendar date to a julian day count\"],join:[\"string join(array src, string glue)\",\"An alias for implode\"],jpeg2wbmp:[\"bool jpeg2wbmp (string f_org, string f_dest, int d_height, int d_width, int threshold)\",\"Convert JPEG image to WBMP image\"],json_decode:[\"mixed json_decode(string json [, bool assoc [, long depth]])\",\"Decodes the JSON representation into a PHP value\"],json_encode:[\"string json_encode(mixed data [, int options])\",\"Returns the JSON representation of a value\"],json_last_error:[\"int json_last_error()\",\"Returns the error code of the last json_decode().\"],juliantojd:[\"int juliantojd(int month, int day, int year)\",\"Converts a julian calendar date to julian day count\"],key:[\"mixed key(array array_arg)\",\"Return the key of the element currently pointed to by the internal array pointer\"],krsort:[\"bool krsort(array &array_arg [, int sort_flags])\",\"Sort an array by key value in reverse order\"],ksort:[\"bool ksort(array &array_arg [, int sort_flags])\",\"Sort an array by key\"],lcfirst:[\"string lcfirst(string str)\",\"Make a string's first character lowercase\"],lcg_value:[\"float lcg_value()\",\"Returns a value from the combined linear congruential generator\"],lchgrp:[\"bool lchgrp(string filename, mixed group)\",\"Change symlink group\"],ldap_8859_to_t61:[\"string ldap_8859_to_t61(string value)\",\"Translate 8859 characters to t61 characters\"],ldap_add:[\"bool ldap_add(resource link, string dn, array entry)\",\"Add entries to LDAP directory\"],ldap_bind:[\"bool ldap_bind(resource link [, string dn [, string password]])\",\"Bind to LDAP directory\"],ldap_compare:[\"bool ldap_compare(resource link, string dn, string attr, string value)\",\"Determine if an entry has a specific value for one of its attributes\"],ldap_connect:[\"resource ldap_connect([string host [, int port [, string wallet [, string wallet_passwd [, int authmode]]]]])\",\"Connect to an LDAP server\"],ldap_count_entries:[\"int ldap_count_entries(resource link, resource result)\",\"Count the number of entries in a search result\"],ldap_delete:[\"bool ldap_delete(resource link, string dn)\",\"Delete an entry from a directory\"],ldap_dn2ufn:[\"string ldap_dn2ufn(string dn)\",\"Convert DN to User Friendly Naming format\"],ldap_err2str:[\"string ldap_err2str(int errno)\",\"Convert error number to error string\"],ldap_errno:[\"int ldap_errno(resource link)\",\"Get the current ldap error number\"],ldap_error:[\"string ldap_error(resource link)\",\"Get the current ldap error string\"],ldap_explode_dn:[\"array ldap_explode_dn(string dn, int with_attrib)\",\"Splits DN into its component parts\"],ldap_first_attribute:[\"string ldap_first_attribute(resource link, resource result_entry)\",\"Return first attribute\"],ldap_first_entry:[\"resource ldap_first_entry(resource link, resource result)\",\"Return first result id\"],ldap_first_reference:[\"resource ldap_first_reference(resource link, resource result)\",\"Return first reference\"],ldap_free_result:[\"bool ldap_free_result(resource result)\",\"Free result memory\"],ldap_get_attributes:[\"array ldap_get_attributes(resource link, resource result_entry)\",\"Get attributes from a search result entry\"],ldap_get_dn:[\"string ldap_get_dn(resource link, resource result_entry)\",\"Get the DN of a result entry\"],ldap_get_entries:[\"array ldap_get_entries(resource link, resource result)\",\"Get all result entries\"],ldap_get_option:[\"bool ldap_get_option(resource link, int option, mixed retval)\",\"Get the current value of various session-wide parameters\"],ldap_get_values_len:[\"array ldap_get_values_len(resource link, resource result_entry, string attribute)\",\"Get all values with lengths from a result entry\"],ldap_list:[\"resource ldap_list(resource|array link, string base_dn, string filter [, array attrs [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])\",\"Single-level search\"],ldap_mod_add:[\"bool ldap_mod_add(resource link, string dn, array entry)\",\"Add attribute values to current\"],ldap_mod_del:[\"bool ldap_mod_del(resource link, string dn, array entry)\",\"Delete attribute values\"],ldap_mod_replace:[\"bool ldap_mod_replace(resource link, string dn, array entry)\",\"Replace attribute values with new ones\"],ldap_next_attribute:[\"string ldap_next_attribute(resource link, resource result_entry)\",\"Get the next attribute in result\"],ldap_next_entry:[\"resource ldap_next_entry(resource link, resource result_entry)\",\"Get next result entry\"],ldap_next_reference:[\"resource ldap_next_reference(resource link, resource reference_entry)\",\"Get next reference\"],ldap_parse_reference:[\"bool ldap_parse_reference(resource link, resource reference_entry, array referrals)\",\"Extract information from reference entry\"],ldap_parse_result:[\"bool ldap_parse_result(resource link, resource result, int errcode, string matcheddn, string errmsg, array referrals)\",\"Extract information from result\"],ldap_read:[\"resource ldap_read(resource|array link, string base_dn, string filter [, array attrs [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])\",\"Read an entry\"],ldap_rename:[\"bool ldap_rename(resource link, string dn, string newrdn, string newparent, bool deleteoldrdn);\",\"Modify the name of an entry\"],ldap_sasl_bind:[\"bool ldap_sasl_bind(resource link [, string binddn [, string password [, string sasl_mech [, string sasl_realm [, string sasl_authc_id [, string sasl_authz_id [, string props]]]]]]])\",\"Bind to LDAP directory using SASL\"],ldap_search:[\"resource ldap_search(resource|array link, string base_dn, string filter [, array attrs [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])\",\"Search LDAP tree under base_dn\"],ldap_set_option:[\"bool ldap_set_option(resource link, int option, mixed newval)\",\"Set the value of various session-wide parameters\"],ldap_set_rebind_proc:[\"bool ldap_set_rebind_proc(resource link, string callback)\",\"Set a callback function to do re-binds on referral chasing.\"],ldap_sort:[\"bool ldap_sort(resource link, resource result, string sortfilter)\",\"Sort LDAP result entries\"],ldap_start_tls:[\"bool ldap_start_tls(resource link)\",\"Start TLS\"],ldap_t61_to_8859:[\"string ldap_t61_to_8859(string value)\",\"Translate t61 characters to 8859 characters\"],ldap_unbind:[\"bool ldap_unbind(resource link)\",\"Unbind from LDAP directory\"],leak:[\"void leak(int num_bytes=3)\",\"Cause an intentional memory leak, for testing/debugging purposes\"],levenshtein:[\"int levenshtein(string str1, string str2[, int cost_ins, int cost_rep, int cost_del])\",\"Calculate Levenshtein distance between two strings\"],libxml_clear_errors:[\"void libxml_clear_errors()\",\"Clear last error from libxml\"],libxml_disable_entity_loader:[\"bool libxml_disable_entity_loader([boolean disable])\",\"Disable/Enable ability to load external entities\"],libxml_get_errors:[\"object libxml_get_errors()\",\"Retrieve array of errors\"],libxml_get_last_error:[\"object libxml_get_last_error()\",\"Retrieve last error from libxml\"],libxml_set_streams_context:[\"void libxml_set_streams_context(resource streams_context)\",\"Set the streams context for the next libxml document load or write\"],libxml_use_internal_errors:[\"bool libxml_use_internal_errors([boolean use_errors])\",\"Disable libxml errors and allow user to fetch error information as needed\"],link:[\"int link(string target, string link)\",\"Create a hard link\"],linkinfo:[\"int linkinfo(string filename)\",\"Returns the st_dev field of the UNIX C stat structure describing the link\"],litespeed_request_headers:[\"array litespeed_request_headers(void)\",\"Fetch all HTTP request headers\"],litespeed_response_headers:[\"array litespeed_response_headers(void)\",\"Fetch all HTTP response headers\"],locale_accept_from_http:[\"string locale_accept_from_http(string $http_accept)\",null],locale_canonicalize:[\"static string locale_canonicalize(Locale $loc, string $locale)\",\"* @param string $locale The locale string to canonicalize\"],locale_filter_matches:[\"boolean locale_filter_matches(string $langtag, string $locale[, bool $canonicalize])\",\"* Checks if a $langtag filter matches with $locale according to RFC 4647's basic filtering algorithm\"],locale_get_all_variants:[\"static array locale_get_all_variants($locale)\",\"* gets an array containing the list of variants, or null\"],locale_get_default:[\"static string locale_get_default( )\",\"Get default locale\"],locale_get_keywords:[\"static array locale_get_keywords(string $locale) {\",\"* return an associative array containing keyword-value  * pairs for this locale. The keys are keys to the array (doh!)\"],locale_get_primary_language:[\"static string locale_get_primary_language($locale)\",\"* gets the primary language for the $locale\"],locale_get_region:[\"static string locale_get_region($locale)\",\"* gets the region for the $locale\"],locale_get_script:[\"static string locale_get_script($locale)\",\"* gets the script for the $locale\"],locale_lookup:[\"string locale_lookup(array $langtag, string $locale[, bool $canonicalize[, string $default = null]])\",\"* Searchs the items in $langtag for the best match to the language * range\"],locale_set_default:[\"static string locale_set_default( string $locale )\",\"Set default locale\"],localeconv:[\"array localeconv(void)\",\"Returns numeric formatting information based on the current locale\"],localtime:[\"array localtime([int timestamp [, bool associative_array]])\",\"Returns the results of the C system call localtime as an associative array if the associative_array argument is set to 1 other wise it is a regular array\"],log:[\"float log(float number, [float base])\",\"Returns the natural logarithm of the number, or the base log if base is specified\"],log10:[\"float log10(float number)\",\"Returns the base-10 logarithm of the number\"],log1p:[\"float log1p(float number)\",\"Returns log(1 + number), computed in a way that accurate even when the value of number is close to zero\"],long2ip:[\"string long2ip(int proper_address)\",\"Converts an (IPv4) Internet network address into a string in Internet standard dotted format\"],lstat:[\"array lstat(string filename)\",\"Give information about a file or symbolic link\"],ltrim:[\"string ltrim(string str [, string character_mask])\",\"Strips whitespace from the beginning of a string\"],mail:[\"int mail(string to, string subject, string message [, string additional_headers [, string additional_parameters]])\",\"Send an email message\"],max:[\"mixed max(mixed arg1 [, mixed arg2 [, mixed ...]])\",\"Return the highest value in an array or a series of arguments\"],mb_check_encoding:[\"bool mb_check_encoding([string var[, string encoding]])\",\"Check if the string is valid for the specified encoding\"],mb_convert_case:[\"string mb_convert_case(string sourcestring, int mode [, string encoding])\",\"Returns a case-folded version of sourcestring\"],mb_convert_encoding:[\"string mb_convert_encoding(string str, string to-encoding [, mixed from-encoding])\",\"Returns converted string in desired encoding\"],mb_convert_kana:[\"string mb_convert_kana(string str [, string option] [, string encoding])\",\"Conversion between full-width character and half-width character (Japanese)\"],mb_convert_variables:[\"string mb_convert_variables(string to-encoding, mixed from-encoding, mixed vars [, ...])\",\"Converts the string resource in variables to desired encoding\"],mb_decode_mimeheader:[\"string mb_decode_mimeheader(string string)\",'Decodes the MIME \"encoded-word\" in the string'],mb_decode_numericentity:[\"string mb_decode_numericentity(string string, array convmap [, string encoding])\",\"Converts HTML numeric entities to character code\"],mb_detect_encoding:[\"string mb_detect_encoding(string str [, mixed encoding_list [, bool strict]])\",\"Encodings of the given string is returned (as a string)\"],mb_detect_order:[\"bool|array mb_detect_order([mixed encoding-list])\",\"Sets the current detect_order or Return the current detect_order as a array\"],mb_encode_mimeheader:[\"string mb_encode_mimeheader(string str [, string charset [, string transfer-encoding [, string linefeed [, int indent]]]])\",'Converts the string to MIME \"encoded-word\" in the format of =?charset?(B|Q)?encoded_string?='],mb_encode_numericentity:[\"string mb_encode_numericentity(string string, array convmap [, string encoding])\",\"Converts specified characters to HTML numeric entities\"],mb_encoding_aliases:[\"array mb_encoding_aliases(string encoding)\",\"Returns an array of the aliases of a given encoding name\"],mb_ereg:[\"int mb_ereg(string pattern, string string [, array registers])\",\"Regular expression match for multibyte string\"],mb_ereg_match:[\"bool mb_ereg_match(string pattern, string string [,string option])\",\"Regular expression match for multibyte string\"],mb_ereg_replace:[\"string mb_ereg_replace(string pattern, string replacement, string string [, string option])\",\"Replace regular expression for multibyte string\"],mb_ereg_search:[\"bool mb_ereg_search([string pattern[, string option]])\",\"Regular expression search for multibyte string\"],mb_ereg_search_getpos:[\"int mb_ereg_search_getpos(void)\",\"Get search start position\"],mb_ereg_search_getregs:[\"array mb_ereg_search_getregs(void)\",\"Get matched substring of the last time\"],mb_ereg_search_init:[\"bool mb_ereg_search_init(string string [, string pattern[, string option]])\",\"Initialize string and regular expression for search.\"],mb_ereg_search_pos:[\"array mb_ereg_search_pos([string pattern[, string option]])\",\"Regular expression search for multibyte string\"],mb_ereg_search_regs:[\"array mb_ereg_search_regs([string pattern[, string option]])\",\"Regular expression search for multibyte string\"],mb_ereg_search_setpos:[\"bool mb_ereg_search_setpos(int position)\",\"Set search start position\"],mb_eregi:[\"int mb_eregi(string pattern, string string [, array registers])\",\"Case-insensitive regular expression match for multibyte string\"],mb_eregi_replace:[\"string mb_eregi_replace(string pattern, string replacement, string string)\",\"Case insensitive replace regular expression for multibyte string\"],mb_get_info:[\"mixed mb_get_info([string type])\",\"Returns the current settings of mbstring\"],mb_http_input:[\"mixed mb_http_input([string type])\",\"Returns the input encoding\"],mb_http_output:[\"string mb_http_output([string encoding])\",\"Sets the current output_encoding or returns the current output_encoding as a string\"],mb_internal_encoding:[\"string mb_internal_encoding([string encoding])\",\"Sets the current internal encoding or Returns the current internal encoding as a string\"],mb_language:[\"string mb_language([string language])\",\"Sets the current language or Returns the current language as a string\"],mb_list_encodings:[\"mixed mb_list_encodings()\",\"Returns an array of all supported entity encodings\"],mb_output_handler:[\"string mb_output_handler(string contents, int status)\",\"Returns string in output buffer converted to the http_output encoding\"],mb_parse_str:[\"bool mb_parse_str(string encoded_string [, array result])\",\"Parses GET/POST/COOKIE data and sets global variables\"],mb_preferred_mime_name:[\"string mb_preferred_mime_name(string encoding)\",\"Return the preferred MIME name (charset) as a string\"],mb_regex_encoding:[\"string mb_regex_encoding([string encoding])\",\"Returns the current encoding for regex as a string.\"],mb_regex_set_options:[\"string mb_regex_set_options([string options])\",\"Set or get the default options for mbregex functions\"],mb_send_mail:[\"int mb_send_mail(string to, string subject, string message [, string additional_headers [, string additional_parameters]])\",\"*  Sends an email message with MIME scheme\"],mb_split:[\"array mb_split(string pattern, string string [, int limit])\",\"split multibyte string into array by regular expression\"],mb_strcut:[\"string mb_strcut(string str, int start [, int length [, string encoding]])\",\"Returns part of a string\"],mb_strimwidth:[\"string mb_strimwidth(string str, int start, int width [, string trimmarker [, string encoding]])\",\"Trim the string in terminal width\"],mb_stripos:[\"int mb_stripos(string haystack, string needle [, int offset [, string encoding]])\",\"Finds position of first occurrence of a string within another, case insensitive\"],mb_stristr:[\"string mb_stristr(string haystack, string needle[, bool part[, string encoding]])\",\"Finds first occurrence of a string within another, case insensitive\"],mb_strlen:[\"int mb_strlen(string str [, string encoding])\",\"Get character numbers of a string\"],mb_strpos:[\"int mb_strpos(string haystack, string needle [, int offset [, string encoding]])\",\"Find position of first occurrence of a string within another\"],mb_strrchr:[\"string mb_strrchr(string haystack, string needle[, bool part[, string encoding]])\",\"Finds the last occurrence of a character in a string within another\"],mb_strrichr:[\"string mb_strrichr(string haystack, string needle[, bool part[, string encoding]])\",\"Finds the last occurrence of a character in a string within another, case insensitive\"],mb_strripos:[\"int mb_strripos(string haystack, string needle [, int offset [, string encoding]])\",\"Finds position of last occurrence of a string within another, case insensitive\"],mb_strrpos:[\"int mb_strrpos(string haystack, string needle [, int offset [, string encoding]])\",\"Find position of last occurrence of a string within another\"],mb_strstr:[\"string mb_strstr(string haystack, string needle[, bool part[, string encoding]])\",\"Finds first occurrence of a string within another\"],mb_strtolower:[\"string mb_strtolower(string sourcestring [, string encoding])\",\"*  Returns a lowercased version of sourcestring\"],mb_strtoupper:[\"string mb_strtoupper(string sourcestring [, string encoding])\",\"*  Returns a uppercased version of sourcestring\"],mb_strwidth:[\"int mb_strwidth(string str [, string encoding])\",\"Gets terminal width of a string\"],mb_substitute_character:[\"mixed mb_substitute_character([mixed substchar])\",\"Sets the current substitute_character or returns the current substitute_character\"],mb_substr:[\"string mb_substr(string str, int start [, int length [, string encoding]])\",\"Returns part of a string\"],mb_substr_count:[\"int mb_substr_count(string haystack, string needle [, string encoding])\",\"Count the number of substring occurrences\"],mcrypt_cbc:[\"string mcrypt_cbc(int cipher, string key, string data, int mode, string iv)\",\"CBC crypt/decrypt data using key key with cipher cipher starting with iv\"],mcrypt_cfb:[\"string mcrypt_cfb(int cipher, string key, string data, int mode, string iv)\",\"CFB crypt/decrypt data using key key with cipher cipher starting with iv\"],mcrypt_create_iv:[\"string mcrypt_create_iv(int size, int source)\",\"Create an initialization vector (IV)\"],mcrypt_decrypt:[\"string mcrypt_decrypt(string cipher, string key, string data, string mode, string iv)\",\"OFB crypt/decrypt data using key key with cipher cipher starting with iv\"],mcrypt_ecb:[\"string mcrypt_ecb(int cipher, string key, string data, int mode, string iv)\",\"ECB crypt/decrypt data using key key with cipher cipher starting with iv\"],mcrypt_enc_get_algorithms_name:[\"string mcrypt_enc_get_algorithms_name(resource td)\",\"Returns the name of the algorithm specified by the descriptor td\"],mcrypt_enc_get_block_size:[\"int mcrypt_enc_get_block_size(resource td)\",\"Returns the block size of the cipher specified by the descriptor td\"],mcrypt_enc_get_iv_size:[\"int mcrypt_enc_get_iv_size(resource td)\",\"Returns the size of the IV in bytes of the algorithm specified by the descriptor td\"],mcrypt_enc_get_key_size:[\"int mcrypt_enc_get_key_size(resource td)\",\"Returns the maximum supported key size in bytes of the algorithm specified by the descriptor td\"],mcrypt_enc_get_modes_name:[\"string mcrypt_enc_get_modes_name(resource td)\",\"Returns the name of the mode specified by the descriptor td\"],mcrypt_enc_get_supported_key_sizes:[\"array mcrypt_enc_get_supported_key_sizes(resource td)\",\"This function decrypts the crypttext\"],mcrypt_enc_is_block_algorithm:[\"bool mcrypt_enc_is_block_algorithm(resource td)\",\"Returns TRUE if the alrogithm is a block algorithms\"],mcrypt_enc_is_block_algorithm_mode:[\"bool mcrypt_enc_is_block_algorithm_mode(resource td)\",\"Returns TRUE if the mode is for use with block algorithms\"],mcrypt_enc_is_block_mode:[\"bool mcrypt_enc_is_block_mode(resource td)\",\"Returns TRUE if the mode outputs blocks\"],mcrypt_enc_self_test:[\"int mcrypt_enc_self_test(resource td)\",\"This function runs the self test on the algorithm specified by the descriptor td\"],mcrypt_encrypt:[\"string mcrypt_encrypt(string cipher, string key, string data, string mode, string iv)\",\"OFB crypt/decrypt data using key key with cipher cipher starting with iv\"],mcrypt_generic:[\"string mcrypt_generic(resource td, string data)\",\"This function encrypts the plaintext\"],mcrypt_generic_deinit:[\"bool mcrypt_generic_deinit(resource td)\",\"This function terminates encrypt specified by the descriptor td\"],mcrypt_generic_init:[\"int mcrypt_generic_init(resource td, string key, string iv)\",\"This function initializes all buffers for the specific module\"],mcrypt_get_block_size:[\"int mcrypt_get_block_size(string cipher, string module)\",\"Get the key size of cipher\"],mcrypt_get_cipher_name:[\"string mcrypt_get_cipher_name(string cipher)\",\"Get the key size of cipher\"],mcrypt_get_iv_size:[\"int mcrypt_get_iv_size(string cipher, string module)\",\"Get the IV size of cipher (Usually the same as the blocksize)\"],mcrypt_get_key_size:[\"int mcrypt_get_key_size(string cipher, string module)\",\"Get the key size of cipher\"],mcrypt_list_algorithms:[\"array mcrypt_list_algorithms([string lib_dir])\",'List all algorithms in \"module_dir\"'],mcrypt_list_modes:[\"array mcrypt_list_modes([string lib_dir])\",'List all modes \"module_dir\"'],mcrypt_module_close:[\"bool mcrypt_module_close(resource td)\",\"Free the descriptor td\"],mcrypt_module_get_algo_block_size:[\"int mcrypt_module_get_algo_block_size(string algorithm [, string lib_dir])\",\"Returns the block size of the algorithm\"],mcrypt_module_get_algo_key_size:[\"int mcrypt_module_get_algo_key_size(string algorithm [, string lib_dir])\",\"Returns the maximum supported key size of the algorithm\"],mcrypt_module_get_supported_key_sizes:[\"array mcrypt_module_get_supported_key_sizes(string algorithm [, string lib_dir])\",\"This function decrypts the crypttext\"],mcrypt_module_is_block_algorithm:[\"bool mcrypt_module_is_block_algorithm(string algorithm [, string lib_dir])\",\"Returns TRUE if the algorithm is a block algorithm\"],mcrypt_module_is_block_algorithm_mode:[\"bool mcrypt_module_is_block_algorithm_mode(string mode [, string lib_dir])\",\"Returns TRUE if the mode is for use with block algorithms\"],mcrypt_module_is_block_mode:[\"bool mcrypt_module_is_block_mode(string mode [, string lib_dir])\",\"Returns TRUE if the mode outputs blocks of bytes\"],mcrypt_module_open:[\"resource mcrypt_module_open(string cipher, string cipher_directory, string mode, string mode_directory)\",\"Opens the module of the algorithm and the mode to be used\"],mcrypt_module_self_test:[\"bool mcrypt_module_self_test(string algorithm [, string lib_dir])\",'Does a self test of the module \"module\"'],mcrypt_ofb:[\"string mcrypt_ofb(int cipher, string key, string data, int mode, string iv)\",\"OFB crypt/decrypt data using key key with cipher cipher starting with iv\"],md5:[\"string md5(string str, [ bool raw_output])\",\"Calculate the md5 hash of a string\"],md5_file:[\"string md5_file(string filename [, bool raw_output])\",\"Calculate the md5 hash of given filename\"],mdecrypt_generic:[\"string mdecrypt_generic(resource td, string data)\",\"This function decrypts the plaintext\"],memory_get_peak_usage:[\"int memory_get_peak_usage([real_usage])\",\"Returns the peak allocated by PHP memory\"],memory_get_usage:[\"int memory_get_usage([real_usage])\",\"Returns the allocated by PHP memory\"],metaphone:[\"string metaphone(string text[, int phones])\",\"Break english phrases down into their phonemes\"],method_exists:[\"bool method_exists(object object, string method)\",\"Checks if the class method exists\"],mhash:[\"string mhash(int hash, string data [, string key])\",\"Hash data with hash\"],mhash_count:[\"int mhash_count(void)\",\"Gets the number of available hashes\"],mhash_get_block_size:[\"int mhash_get_block_size(int hash)\",\"Gets the block size of hash\"],mhash_get_hash_name:[\"string mhash_get_hash_name(int hash)\",\"Gets the name of hash\"],mhash_keygen_s2k:[\"string mhash_keygen_s2k(int hash, string input_password, string salt, int bytes)\",\"Generates a key using hash functions\"],microtime:[\"mixed microtime([bool get_as_float])\",\"Returns either a string or a float containing the current time in seconds and microseconds\"],mime_content_type:[\"string mime_content_type(string filename|resource stream)\",\"Return content-type for file\"],min:[\"mixed min(mixed arg1 [, mixed arg2 [, mixed ...]])\",\"Return the lowest value in an array or a series of arguments\"],mkdir:[\"bool mkdir(string pathname [, int mode [, bool recursive [, resource context]]])\",\"Create a directory\"],mktime:[\"int mktime([int hour [, int min [, int sec [, int mon [, int day [, int year]]]]]])\",\"Get UNIX timestamp for a date\"],money_format:[\"string money_format(string format , float value)\",\"Convert monetary value(s) to string\"],move_uploaded_file:[\"bool move_uploaded_file(string path, string new_path)\",\"Move a file if and only if it was created by an upload\"],msg_get_queue:[\"resource msg_get_queue(int key [, int perms])\",\"Attach to a message queue\"],msg_queue_exists:[\"bool msg_queue_exists(int key)\",\"Check wether a message queue exists\"],msg_receive:[\"mixed msg_receive(resource queue, int desiredmsgtype, int &msgtype, int maxsize, mixed message [, bool unserialize=true [, int flags=0 [, int errorcode]]])\",\"Send a message of type msgtype (must be > 0) to a message queue\"],msg_remove_queue:[\"bool msg_remove_queue(resource queue)\",\"Destroy the queue\"],msg_send:[\"bool msg_send(resource queue, int msgtype, mixed message [, bool serialize=true [, bool blocking=true [, int errorcode]]])\",\"Send a message of type msgtype (must be > 0) to a message queue\"],msg_set_queue:[\"bool msg_set_queue(resource queue, array data)\",\"Set information for a message queue\"],msg_stat_queue:[\"array msg_stat_queue(resource queue)\",\"Returns information about a message queue\"],msgfmt_create:[\"MessageFormatter msgfmt_create( string $locale, string $pattern )\",\"* Create formatter.\"],msgfmt_format:[\"mixed msgfmt_format( MessageFormatter $nf, array $args )\",\"* Format a message.\"],msgfmt_format_message:[\"mixed msgfmt_format_message( string $locale, string $pattern, array $args )\",\"* Format a message.\"],msgfmt_get_error_code:[\"int msgfmt_get_error_code( MessageFormatter $nf )\",\"* Get formatter's last error code.\"],msgfmt_get_error_message:[\"string msgfmt_get_error_message( MessageFormatter $coll )\",\"* Get text description for formatter's last error code.\"],msgfmt_get_locale:[\"string msgfmt_get_locale(MessageFormatter $mf)\",\"* Get formatter locale.\"],msgfmt_get_pattern:[\"string msgfmt_get_pattern( MessageFormatter $mf )\",\"* Get formatter pattern.\"],msgfmt_parse:[\"array msgfmt_parse( MessageFormatter $nf, string $source )\",\"* Parse a message.\"],msgfmt_set_pattern:[\"bool msgfmt_set_pattern( MessageFormatter $mf, string $pattern )\",\"* Set formatter pattern.\"],mssql_bind:[\"bool mssql_bind(resource stmt, string param_name, mixed var, int type [, bool is_output [, bool is_null [, int maxlen]]])\",\"Adds a parameter to a stored procedure or a remote stored procedure\"],mssql_close:[\"bool mssql_close([resource conn_id])\",\"Closes a connection to a MS-SQL server\"],mssql_connect:[\"int mssql_connect([string servername [, string username [, string password [, bool new_link]]]])\",\"Establishes a connection to a MS-SQL server\"],mssql_data_seek:[\"bool mssql_data_seek(resource result_id, int offset)\",\"Moves the internal row pointer of the MS-SQL result associated with the specified result identifier to pointer to the specified row number\"],mssql_execute:[\"mixed mssql_execute(resource stmt [, bool skip_results = false])\",\"Executes a stored procedure on a MS-SQL server database\"],mssql_fetch_array:[\"array mssql_fetch_array(resource result_id [, int result_type])\",\"Returns an associative array of the current row in the result set specified by result_id\"],mssql_fetch_assoc:[\"array mssql_fetch_assoc(resource result_id)\",\"Returns an associative array of the current row in the result set specified by result_id\"],mssql_fetch_batch:[\"int mssql_fetch_batch(resource result_index)\",\"Returns the next batch of records\"],mssql_fetch_field:[\"object mssql_fetch_field(resource result_id [, int offset])\",\"Gets information about certain fields in a query result\"],mssql_fetch_object:[\"object mssql_fetch_object(resource result_id)\",\"Returns a pseudo-object of the current row in the result set specified by result_id\"],mssql_fetch_row:[\"array mssql_fetch_row(resource result_id)\",\"Returns an array of the current row in the result set specified by result_id\"],mssql_field_length:[\"int mssql_field_length(resource result_id [, int offset])\",\"Get the length of a MS-SQL field\"],mssql_field_name:[\"string mssql_field_name(resource result_id [, int offset])\",\"Returns the name of the field given by offset in the result set given by result_id\"],mssql_field_seek:[\"bool mssql_field_seek(resource result_id, int offset)\",\"Seeks to the specified field offset\"],mssql_field_type:[\"string mssql_field_type(resource result_id [, int offset])\",\"Returns the type of a field\"],mssql_free_result:[\"bool mssql_free_result(resource result_index)\",\"Free a MS-SQL result index\"],mssql_free_statement:[\"bool mssql_free_statement(resource result_index)\",\"Free a MS-SQL statement index\"],mssql_get_last_message:[\"string mssql_get_last_message(void)\",\"Gets the last message from the MS-SQL server\"],mssql_guid_string:[\"string mssql_guid_string(string binary [,bool short_format])\",\"Converts a 16 byte binary GUID to a string\"],mssql_init:[\"int mssql_init(string sp_name [, resource conn_id])\",\"Initializes a stored procedure or a remote stored procedure\"],mssql_min_error_severity:[\"void mssql_min_error_severity(int severity)\",\"Sets the lower error severity\"],mssql_min_message_severity:[\"void mssql_min_message_severity(int severity)\",\"Sets the lower message severity\"],mssql_next_result:[\"bool mssql_next_result(resource result_id)\",\"Move the internal result pointer to the next result\"],mssql_num_fields:[\"int mssql_num_fields(resource mssql_result_index)\",\"Returns the number of fields fetched in from the result id specified\"],mssql_num_rows:[\"int mssql_num_rows(resource mssql_result_index)\",\"Returns the number of rows fetched in from the result id specified\"],mssql_pconnect:[\"int mssql_pconnect([string servername [, string username [, string password [, bool new_link]]]])\",\"Establishes a persistent connection to a MS-SQL server\"],mssql_query:[\"resource mssql_query(string query [, resource conn_id [, int batch_size]])\",\"Perform an SQL query on a MS-SQL server database\"],mssql_result:[\"string mssql_result(resource result_id, int row, mixed field)\",\"Returns the contents of one cell from a MS-SQL result set\"],mssql_rows_affected:[\"int mssql_rows_affected(resource conn_id)\",\"Returns the number of records affected by the query\"],mssql_select_db:[\"bool mssql_select_db(string database_name [, resource conn_id])\",\"Select a MS-SQL database\"],mt_getrandmax:[\"int mt_getrandmax(void)\",\"Returns the maximum value a random number from Mersenne Twister can have\"],mt_rand:[\"int mt_rand([int min, int max])\",\"Returns a random number from Mersenne Twister\"],mt_srand:[\"void mt_srand([int seed])\",\"Seeds Mersenne Twister random number generator\"],mysql_affected_rows:[\"int mysql_affected_rows([int link_identifier])\",\"Gets number of affected rows in previous MySQL operation\"],mysql_client_encoding:[\"string mysql_client_encoding([int link_identifier])\",\"Returns the default character set for the current connection\"],mysql_close:[\"bool mysql_close([int link_identifier])\",\"Close a MySQL connection\"],mysql_connect:[\"resource mysql_connect([string hostname[:port][:/path/to/socket] [, string username [, string password [, bool new [, int flags]]]]])\",\"Opens a connection to a MySQL Server\"],mysql_create_db:[\"bool mysql_create_db(string database_name [, int link_identifier])\",\"Create a MySQL database\"],mysql_data_seek:[\"bool mysql_data_seek(resource result, int row_number)\",\"Move internal result pointer\"],mysql_db_query:[\"resource mysql_db_query(string database_name, string query [, int link_identifier])\",\"Sends an SQL query to MySQL\"],mysql_drop_db:[\"bool mysql_drop_db(string database_name [, int link_identifier])\",\"Drops (delete) a MySQL database\"],mysql_errno:[\"int mysql_errno([int link_identifier])\",\"Returns the number of the error message from previous MySQL operation\"],mysql_error:[\"string mysql_error([int link_identifier])\",\"Returns the text of the error message from previous MySQL operation\"],mysql_escape_string:[\"string mysql_escape_string(string to_be_escaped)\",\"Escape string for mysql query\"],mysql_fetch_array:[\"array mysql_fetch_array(resource result [, int result_type])\",\"Fetch a result row as an array (associative, numeric or both)\"],mysql_fetch_assoc:[\"array mysql_fetch_assoc(resource result)\",\"Fetch a result row as an associative array\"],mysql_fetch_field:[\"object mysql_fetch_field(resource result [, int field_offset])\",\"Gets column information from a result and return as an object\"],mysql_fetch_lengths:[\"array mysql_fetch_lengths(resource result)\",\"Gets max data size of each column in a result\"],mysql_fetch_object:[\"object mysql_fetch_object(resource result [, string class_name [, NULL|array ctor_params]])\",\"Fetch a result row as an object\"],mysql_fetch_row:[\"array mysql_fetch_row(resource result)\",\"Gets a result row as an enumerated array\"],mysql_field_flags:[\"string mysql_field_flags(resource result, int field_offset)\",\"Gets the flags associated with the specified field in a result\"],mysql_field_len:[\"int mysql_field_len(resource result, int field_offset)\",\"Returns the length of the specified field\"],mysql_field_name:[\"string mysql_field_name(resource result, int field_index)\",\"Gets the name of the specified field in a result\"],mysql_field_seek:[\"bool mysql_field_seek(resource result, int field_offset)\",\"Sets result pointer to a specific field offset\"],mysql_field_table:[\"string mysql_field_table(resource result, int field_offset)\",\"Gets name of the table the specified field is in\"],mysql_field_type:[\"string mysql_field_type(resource result, int field_offset)\",\"Gets the type of the specified field in a result\"],mysql_free_result:[\"bool mysql_free_result(resource result)\",\"Free result memory\"],mysql_get_client_info:[\"string mysql_get_client_info(void)\",\"Returns a string that represents the client library version\"],mysql_get_host_info:[\"string mysql_get_host_info([int link_identifier])\",\"Returns a string describing the type of connection in use, including the server host name\"],mysql_get_proto_info:[\"int mysql_get_proto_info([int link_identifier])\",\"Returns the protocol version used by current connection\"],mysql_get_server_info:[\"string mysql_get_server_info([int link_identifier])\",\"Returns a string that represents the server version number\"],mysql_info:[\"string mysql_info([int link_identifier])\",\"Returns a string containing information about the most recent query\"],mysql_insert_id:[\"int mysql_insert_id([int link_identifier])\",\"Gets the ID generated from the previous INSERT operation\"],mysql_list_dbs:[\"resource mysql_list_dbs([int link_identifier])\",\"List databases available on a MySQL server\"],mysql_list_fields:[\"resource mysql_list_fields(string database_name, string table_name [, int link_identifier])\",\"List MySQL result fields\"],mysql_list_processes:[\"resource mysql_list_processes([int link_identifier])\",\"Returns a result set describing the current server threads\"],mysql_list_tables:[\"resource mysql_list_tables(string database_name [, int link_identifier])\",\"List tables in a MySQL database\"],mysql_num_fields:[\"int mysql_num_fields(resource result)\",\"Gets number of fields in a result\"],mysql_num_rows:[\"int mysql_num_rows(resource result)\",\"Gets number of rows in a result\"],mysql_pconnect:[\"resource mysql_pconnect([string hostname[:port][:/path/to/socket] [, string username [, string password [, int flags]]]])\",\"Opens a persistent connection to a MySQL Server\"],mysql_ping:[\"bool mysql_ping([int link_identifier])\",\"Ping a server connection. If no connection then reconnect.\"],mysql_query:[\"resource mysql_query(string query [, int link_identifier])\",\"Sends an SQL query to MySQL\"],mysql_real_escape_string:[\"string mysql_real_escape_string(string to_be_escaped [, int link_identifier])\",\"Escape special characters in a string for use in a SQL statement, taking into account the current charset of the connection\"],mysql_result:[\"mixed mysql_result(resource result, int row [, mixed field])\",\"Gets result data\"],mysql_select_db:[\"bool mysql_select_db(string database_name [, int link_identifier])\",\"Selects a MySQL database\"],mysql_set_charset:[\"bool mysql_set_charset(string csname [, int link_identifier])\",\"sets client character set\"],mysql_stat:[\"string mysql_stat([int link_identifier])\",\"Returns a string containing status information\"],mysql_thread_id:[\"int mysql_thread_id([int link_identifier])\",\"Returns the thread id of current connection\"],mysql_unbuffered_query:[\"resource mysql_unbuffered_query(string query [, int link_identifier])\",\"Sends an SQL query to MySQL, without fetching and buffering the result rows\"],mysqli_affected_rows:[\"mixed mysqli_affected_rows(object link)\",\"Get number of affected rows in previous MySQL operation\"],mysqli_autocommit:[\"bool mysqli_autocommit(object link, bool mode)\",\"Turn auto commit on or of\"],mysqli_cache_stats:[\"array mysqli_cache_stats(void)\",\"Returns statistics about the zval cache\"],mysqli_change_user:[\"bool mysqli_change_user(object link, string user, string password, string database)\",\"Change logged-in user of the active connection\"],mysqli_character_set_name:[\"string mysqli_character_set_name(object link)\",\"Returns the name of the character set used for this connection\"],mysqli_close:[\"bool mysqli_close(object link)\",\"Close connection\"],mysqli_commit:[\"bool mysqli_commit(object link)\",\"Commit outstanding actions and close transaction\"],mysqli_connect:[\"object mysqli_connect([string hostname [,string username [,string passwd [,string dbname [,int port [,string socket]]]]]])\",\"Open a connection to a mysql server\"],mysqli_connect_errno:[\"int mysqli_connect_errno(void)\",\"Returns the numerical value of the error message from last connect command\"],mysqli_connect_error:[\"string mysqli_connect_error(void)\",\"Returns the text of the error message from previous MySQL operation\"],mysqli_data_seek:[\"bool mysqli_data_seek(object result, int offset)\",\"Move internal result pointer\"],mysqli_debug:[\"void mysqli_debug(string debug)\",\"\"],mysqli_dump_debug_info:[\"bool mysqli_dump_debug_info(object link)\",\"\"],mysqli_embedded_server_end:[\"void mysqli_embedded_server_end(void)\",\"\"],mysqli_embedded_server_start:[\"bool mysqli_embedded_server_start(bool start, array arguments, array groups)\",\"initialize and start embedded server\"],mysqli_errno:[\"int mysqli_errno(object link)\",\"Returns the numerical value of the error message from previous MySQL operation\"],mysqli_error:[\"string mysqli_error(object link)\",\"Returns the text of the error message from previous MySQL operation\"],mysqli_fetch_all:[\"mixed mysqli_fetch_all (object result [,int resulttype])\",\"Fetches all result rows as an associative array, a numeric array, or both\"],mysqli_fetch_array:[\"mixed mysqli_fetch_array (object result [,int resulttype])\",\"Fetch a result row as an associative array, a numeric array, or both\"],mysqli_fetch_assoc:[\"mixed mysqli_fetch_assoc (object result)\",\"Fetch a result row as an associative array\"],mysqli_fetch_field:[\"mixed mysqli_fetch_field (object result)\",\"Get column information from a result and return as an object\"],mysqli_fetch_field_direct:[\"mixed mysqli_fetch_field_direct (object result, int offset)\",\"Fetch meta-data for a single field\"],mysqli_fetch_fields:[\"mixed mysqli_fetch_fields (object result)\",\"Return array of objects containing field meta-data\"],mysqli_fetch_lengths:[\"mixed mysqli_fetch_lengths (object result)\",\"Get the length of each output in a result\"],mysqli_fetch_object:[\"mixed mysqli_fetch_object (object result [, string class_name [, NULL|array ctor_params]])\",\"Fetch a result row as an object\"],mysqli_fetch_row:[\"array mysqli_fetch_row (object result)\",\"Get a result row as an enumerated array\"],mysqli_field_count:[\"int mysqli_field_count(object link)\",\"Fetch the number of fields returned by the last query for the given link\"],mysqli_field_seek:[\"int mysqli_field_seek(object result, int fieldnr)\",\"Set result pointer to a specified field offset\"],mysqli_field_tell:[\"int mysqli_field_tell(object result)\",\"Get current field offset of result pointer\"],mysqli_free_result:[\"void mysqli_free_result(object result)\",\"Free query result memory for the given result handle\"],mysqli_get_charset:[\"object mysqli_get_charset(object link)\",\"returns a character set object\"],mysqli_get_client_info:[\"string mysqli_get_client_info(void)\",\"Get MySQL client info\"],mysqli_get_client_stats:[\"array mysqli_get_client_stats(void)\",\"Returns statistics about the zval cache\"],mysqli_get_client_version:[\"int mysqli_get_client_version(void)\",\"Get MySQL client info\"],mysqli_get_connection_stats:[\"array mysqli_get_connection_stats(void)\",\"Returns statistics about the zval cache\"],mysqli_get_host_info:[\"string mysqli_get_host_info (object link)\",\"Get MySQL host info\"],mysqli_get_proto_info:[\"int mysqli_get_proto_info(object link)\",\"Get MySQL protocol information\"],mysqli_get_server_info:[\"string mysqli_get_server_info(object link)\",\"Get MySQL server info\"],mysqli_get_server_version:[\"int mysqli_get_server_version(object link)\",\"Return the MySQL version for the server referenced by the given link\"],mysqli_get_warnings:[\"object mysqli_get_warnings(object link) */\",'PHP_FUNCTION(mysqli_get_warnings) {  MY_MYSQL   *mysql;  zval    *mysql_link;  MYSQLI_RESOURCE  *mysqli_resource;  MYSQLI_WARNING  *w;   if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), \"O\", &mysql_link, mysqli_link_class_entry) == FAILURE) {   return;  }  MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL*, &mysql_link, \"mysqli_link\", MYSQLI_STATUS_VALID);   if (mysql_warning_count(mysql->mysql)) {   w = php_get_warnings(mysql->mysql TSRMLS_CC);   } else {   RETURN_FALSE;  }  mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));  mysqli_resource->ptr = mysqli_resource->info = (void *)w;  mysqli_resource->status = MYSQLI_STATUS_VALID;  MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_warning_class_entry);  } /* }}}'],mysqli_info:[\"string mysqli_info(object link)\",\"Get information about the most recent query\"],mysqli_init:[\"resource mysqli_init(void)\",\"Initialize mysqli and return a resource for use with mysql_real_connect\"],mysqli_insert_id:[\"mixed mysqli_insert_id(object link)\",\"Get the ID generated from the previous INSERT operation\"],mysqli_kill:[\"bool mysqli_kill(object link, int processid)\",\"Kill a mysql process on the server\"],mysqli_link_construct:[\"object mysqli_link_construct()\",\"\"],mysqli_more_results:[\"bool mysqli_more_results(object link)\",\"check if there any more query results from a multi query\"],mysqli_multi_query:[\"bool mysqli_multi_query(object link, string query)\",\"allows to execute multiple queries\"],mysqli_next_result:[\"bool mysqli_next_result(object link)\",\"read next result from multi_query\"],mysqli_num_fields:[\"int mysqli_num_fields(object result)\",\"Get number of fields in result\"],mysqli_num_rows:[\"mixed mysqli_num_rows(object result)\",\"Get number of rows in result\"],mysqli_options:[\"bool mysqli_options(object link, int flags, mixed values)\",\"Set options\"],mysqli_ping:[\"bool mysqli_ping(object link)\",\"Ping a server connection or reconnect if there is no connection\"],mysqli_poll:[\"int mysqli_poll(array read, array write, array error, long sec [, long usec])\",\"Poll connections\"],mysqli_prepare:[\"mixed mysqli_prepare(object link, string query)\",\"Prepare a SQL statement for execution\"],mysqli_query:[\"mixed mysqli_query(object link, string query [,int resultmode]) */\",'PHP_FUNCTION(mysqli_query) {  MY_MYSQL   *mysql;  zval    *mysql_link;  MYSQLI_RESOURCE  *mysqli_resource;  MYSQL_RES    *result;  char    *query = NULL;  unsigned int   query_len;  unsigned long   resultmode = MYSQLI_STORE_RESULT;   if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), \"Os|l\", &mysql_link, mysqli_link_class_entry, &query, &query_len, &resultmode) == FAILURE) {   return;  }   if (!query_len) {   php_error_docref(NULL TSRMLS_CC, E_WARNING, \"Empty query\");   RETURN_FALSE;  }  if ((resultmode & ~MYSQLI_ASYNC) != MYSQLI_USE_RESULT && (resultmode & ~MYSQLI_ASYNC) != MYSQLI_STORE_RESULT) {   php_error_docref(NULL TSRMLS_CC, E_WARNING, \"Invalid value for resultmode\");   RETURN_FALSE;  }   MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL*, &mysql_link, \"mysqli_link\", MYSQLI_STATUS_VALID);   MYSQLI_DISABLE_MQ;   #ifdef MYSQLI_USE_MYSQLND  if (resultmode & MYSQLI_ASYNC) {   if (mysqli_async_query(mysql->mysql, query, query_len)) {    MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);    RETURN_FALSE;   }   mysql->async_result_fetch_type = resultmode & ~MYSQLI_ASYNC;   RETURN_TRUE;  } #endif   if (mysql_real_query(mysql->mysql, query, query_len)) {   MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);   RETURN_FALSE;  }   if (!mysql_field_count(mysql->mysql)) {   /* no result set - not a SELECT'],mysqli_real_connect:[\"bool mysqli_real_connect(object link [,string hostname [,string username [,string passwd [,string dbname [,int port [,string socket [,int flags]]]]]]])\",\"Open a connection to a mysql server\"],mysqli_real_escape_string:[\"string mysqli_real_escape_string(object link, string escapestr)\",\"Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection\"],mysqli_real_query:[\"bool mysqli_real_query(object link, string query)\",\"Binary-safe version of mysql_query()\"],mysqli_reap_async_query:[\"int mysqli_reap_async_query(object link)\",\"Poll connections\"],mysqli_refresh:[\"bool mysqli_refresh(object link, long options)\",\"Flush tables or caches, or reset replication server information\"],mysqli_report:[\"bool mysqli_report(int flags)\",\"sets report level\"],mysqli_rollback:[\"bool mysqli_rollback(object link)\",\"Undo actions from current transaction\"],mysqli_select_db:[\"bool mysqli_select_db(object link, string dbname)\",\"Select a MySQL database\"],mysqli_set_charset:[\"bool mysqli_set_charset(object link, string csname)\",\"sets client character set\"],mysqli_set_local_infile_default:[\"void mysqli_set_local_infile_default(object link)\",\"unsets user defined handler for load local infile command\"],mysqli_set_local_infile_handler:[\"bool mysqli_set_local_infile_handler(object link, callback read_func)\",\"Set callback functions for LOAD DATA LOCAL INFILE\"],mysqli_sqlstate:[\"string mysqli_sqlstate(object link)\",\"Returns the SQLSTATE error from previous MySQL operation\"],mysqli_ssl_set:[\"bool mysqli_ssl_set(object link ,string key ,string cert ,string ca ,string capath ,string cipher])\",\"\"],mysqli_stat:[\"mixed mysqli_stat(object link)\",\"Get current system status\"],mysqli_stmt_affected_rows:[\"mixed mysqli_stmt_affected_rows(object stmt)\",\"Return the number of rows affected in the last query for the given link\"],mysqli_stmt_attr_get:[\"int mysqli_stmt_attr_get(object stmt, long attr)\",\"\"],mysqli_stmt_attr_set:[\"int mysqli_stmt_attr_set(object stmt, long attr, long mode)\",\"\"],mysqli_stmt_bind_param:[\"bool mysqli_stmt_bind_param(object stmt, string types, mixed variable [,mixed,....])\",\"Bind variables to a prepared statement as parameters\"],mysqli_stmt_bind_result:[\"bool mysqli_stmt_bind_result(object stmt, mixed var, [,mixed, ...])\",\"Bind variables to a prepared statement for result storage\"],mysqli_stmt_close:[\"bool mysqli_stmt_close(object stmt)\",\"Close statement\"],mysqli_stmt_data_seek:[\"void mysqli_stmt_data_seek(object stmt, int offset)\",\"Move internal result pointer\"],mysqli_stmt_errno:[\"int mysqli_stmt_errno(object stmt)\",\"\"],mysqli_stmt_error:[\"string mysqli_stmt_error(object stmt)\",\"\"],mysqli_stmt_execute:[\"bool mysqli_stmt_execute(object stmt)\",\"Execute a prepared statement\"],mysqli_stmt_fetch:[\"mixed mysqli_stmt_fetch(object stmt)\",\"Fetch results from a prepared statement into the bound variables\"],mysqli_stmt_field_count:[\"int mysqli_stmt_field_count(object stmt) {\",\"Return the number of result columns for the given statement\"],mysqli_stmt_free_result:[\"void mysqli_stmt_free_result(object stmt)\",\"Free stored result memory for the given statement handle\"],mysqli_stmt_get_result:[\"object mysqli_stmt_get_result(object link)\",\"Buffer result set on client\"],mysqli_stmt_get_warnings:[\"object mysqli_stmt_get_warnings(object link) */\",'PHP_FUNCTION(mysqli_stmt_get_warnings) {  MY_STMT    *stmt;  zval    *stmt_link;  MYSQLI_RESOURCE  *mysqli_resource;  MYSQLI_WARNING  *w;   if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), \"O\", &stmt_link, mysqli_stmt_class_entry) == FAILURE) {   return;  }  MYSQLI_FETCH_RESOURCE(stmt, MY_STMT*, &stmt_link, \"mysqli_stmt\", MYSQLI_STATUS_VALID);   if (mysqli_stmt_warning_count(stmt->stmt)) {   w = php_get_warnings(mysqli_stmt_get_connection(stmt->stmt) TSRMLS_CC);   } else {   RETURN_FALSE;  }  mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));  mysqli_resource->ptr = mysqli_resource->info = (void *)w;  mysqli_resource->status = MYSQLI_STATUS_VALID;  MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_warning_class_entry); } /* }}}'],mysqli_stmt_init:[\"mixed mysqli_stmt_init(object link)\",\"Initialize statement object\"],mysqli_stmt_insert_id:[\"mixed mysqli_stmt_insert_id(object stmt)\",\"Get the ID generated from the previous INSERT operation\"],mysqli_stmt_next_result:[\"bool mysqli_stmt_next_result(object link)\",\"read next result from multi_query\"],mysqli_stmt_num_rows:[\"mixed mysqli_stmt_num_rows(object stmt)\",\"Return the number of rows in statements result set\"],mysqli_stmt_param_count:[\"int mysqli_stmt_param_count(object stmt)\",\"Return the number of parameter for the given statement\"],mysqli_stmt_prepare:[\"bool mysqli_stmt_prepare(object stmt, string query)\",\"prepare server side statement with query\"],mysqli_stmt_reset:[\"bool mysqli_stmt_reset(object stmt)\",\"reset a prepared statement\"],mysqli_stmt_result_metadata:[\"mixed mysqli_stmt_result_metadata(object stmt)\",\"return result set from statement\"],mysqli_stmt_send_long_data:[\"bool mysqli_stmt_send_long_data(object stmt, int param_nr, string data)\",\"\"],mysqli_stmt_sqlstate:[\"string mysqli_stmt_sqlstate(object stmt)\",\"\"],mysqli_stmt_store_result:[\"bool mysqli_stmt_store_result(stmt)\",\"\"],mysqli_store_result:[\"object mysqli_store_result(object link)\",\"Buffer result set on client\"],mysqli_thread_id:[\"int mysqli_thread_id(object link)\",\"Return the current thread ID\"],mysqli_thread_safe:[\"bool mysqli_thread_safe(void)\",\"Return whether thread safety is given or not\"],mysqli_use_result:[\"mixed mysqli_use_result(object link)\",\"Directly retrieve query results - do not buffer results on client side\"],mysqli_warning_count:[\"int mysqli_warning_count (object link)\",\"Return number of warnings from the last query for the given link\"],natcasesort:[\"void natcasesort(array &array_arg)\",\"Sort an array using case-insensitive natural sort\"],natsort:[\"void natsort(array &array_arg)\",\"Sort an array using natural sort\"],next:[\"mixed next(array array_arg)\",\"Move array argument's internal pointer to the next element and return it\"],ngettext:[\"string ngettext(string MSGID1, string MSGID2, int N)\",\"Plural version of gettext()\"],nl2br:[\"string nl2br(string str [, bool is_xhtml])\",\"Converts newlines to HTML line breaks\"],nl_langinfo:[\"string nl_langinfo(int item)\",\"Query language and locale information\"],normalizer_is_normalize:[\"bool normalizer_is_normalize( string $input [, string $form = FORM_C] )\",\"* Test if a string is in a given normalization form.\"],normalizer_normalize:[\"string normalizer_normalize( string $input [, string $form = FORM_C] )\",\"* Normalize a string.\"],nsapi_request_headers:[\"array nsapi_request_headers(void)\",\"Get all headers from the request\"],nsapi_response_headers:[\"array nsapi_response_headers(void)\",\"Get all headers from the response\"],nsapi_virtual:[\"bool nsapi_virtual(string uri)\",\"Perform an NSAPI sub-request\"],number_format:[\"string number_format(float number [, int num_decimal_places [, string dec_seperator, string thousands_seperator]])\",\"Formats a number with grouped thousands\"],numfmt_create:[\"NumberFormatter numfmt_create( string $locale, int style[, string $pattern ] )\",\"* Create number formatter.\"],numfmt_format:[\"mixed numfmt_format( NumberFormatter $nf, mixed $num[, int type] )\",\"* Format a number.\"],numfmt_format_currency:[\"mixed numfmt_format_currency( NumberFormatter $nf, double $num, string $currency )\",\"* Format a number as currency.\"],numfmt_get_attribute:[\"mixed numfmt_get_attribute( NumberFormatter $nf, int $attr )\",\"* Get formatter attribute value.\"],numfmt_get_error_code:[\"int numfmt_get_error_code( NumberFormatter $nf )\",\"* Get formatter's last error code.\"],numfmt_get_error_message:[\"string numfmt_get_error_message( NumberFormatter $nf )\",\"* Get text description for formatter's last error code.\"],numfmt_get_locale:[\"string numfmt_get_locale( NumberFormatter $nf[, int type] )\",\"* Get formatter locale.\"],numfmt_get_pattern:[\"string numfmt_get_pattern( NumberFormatter $nf )\",\"* Get formatter pattern.\"],numfmt_get_symbol:[\"string numfmt_get_symbol( NumberFormatter $nf, int $attr )\",\"* Get formatter symbol value.\"],numfmt_get_text_attribute:[\"string numfmt_get_text_attribute( NumberFormatter $nf, int $attr )\",\"* Get formatter attribute value.\"],numfmt_parse:[\"mixed numfmt_parse( NumberFormatter $nf, string $str[, int $type, int &$position ])\",\"* Parse a number.\"],numfmt_parse_currency:[\"double numfmt_parse_currency( NumberFormatter $nf, string $str, string $&currency[, int $&position] )\",\"* Parse a number as currency.\"],numfmt_parse_message:[\"array numfmt_parse_message( string $locale, string $pattern, string $source )\",\"* Parse a message.\"],numfmt_set_attribute:[\"bool numfmt_set_attribute( NumberFormatter $nf, int $attr, mixed $value )\",\"* Get formatter attribute value.\"],numfmt_set_pattern:[\"bool numfmt_set_pattern( NumberFormatter $nf, string $pattern )\",\"* Set formatter pattern.\"],numfmt_set_symbol:[\"bool numfmt_set_symbol( NumberFormatter $nf, int $attr, string $symbol )\",\"* Set formatter symbol value.\"],numfmt_set_text_attribute:[\"bool numfmt_set_text_attribute( NumberFormatter $nf, int $attr, string $value )\",\"* Get formatter attribute value.\"],ob_clean:[\"bool ob_clean(void)\",\"Clean (delete) the current output buffer\"],ob_end_clean:[\"bool ob_end_clean(void)\",\"Clean the output buffer, and delete current output buffer\"],ob_end_flush:[\"bool ob_end_flush(void)\",\"Flush (send) the output buffer, and delete current output buffer\"],ob_flush:[\"bool ob_flush(void)\",\"Flush (send) contents of the output buffer. The last buffer content is sent to next buffer\"],ob_get_clean:[\"bool ob_get_clean(void)\",\"Get current buffer contents and delete current output buffer\"],ob_get_contents:[\"string ob_get_contents(void)\",\"Return the contents of the output buffer\"],ob_get_flush:[\"bool ob_get_flush(void)\",\"Get current buffer contents, flush (send) the output buffer, and delete current output buffer\"],ob_get_length:[\"int ob_get_length(void)\",\"Return the length of the output buffer\"],ob_get_level:[\"int ob_get_level(void)\",\"Return the nesting level of the output buffer\"],ob_get_status:[\"false|array ob_get_status([bool full_status])\",\"Return the status of the active or all output buffers\"],ob_gzhandler:[\"string ob_gzhandler(string str, int mode)\",\"Encode str based on accept-encoding setting - designed to be called from ob_start()\"],ob_iconv_handler:[\"string ob_iconv_handler(string contents, int status)\",\"Returns str in output buffer converted to the iconv.output_encoding character set\"],ob_implicit_flush:[\"void ob_implicit_flush([int flag])\",\"Turn implicit flush on/off and is equivalent to calling flush() after every output call\"],ob_list_handlers:[\"false|array ob_list_handlers()\",\"*  List all output_buffers in an array\"],ob_start:[\"bool ob_start([ string|array user_function [, int chunk_size [, bool erase]]])\",\"Turn on Output Buffering (specifying an optional output handler).\"],oci_bind_array_by_name:[\"bool oci_bind_array_by_name(resource stmt, string name, array &var, int max_table_length [, int max_item_length [, int type ]])\",\"Bind a PHP array to an Oracle PL/SQL type by name\"],oci_bind_by_name:[\"bool oci_bind_by_name(resource stmt, string name, mixed &var, [, int maxlength [, int type]])\",\"Bind a PHP variable to an Oracle placeholder by name\"],oci_cancel:[\"bool oci_cancel(resource stmt)\",\"Cancel reading from a cursor\"],oci_close:[\"bool oci_close(resource connection)\",\"Disconnect from database\"],oci_collection_append:[\"bool oci_collection_append(string value)\",\"Append an object to the collection\"],oci_collection_assign:[\"bool oci_collection_assign(object from)\",\"Assign a collection from another existing collection\"],oci_collection_element_assign:[\"bool oci_collection_element_assign(int index, string val)\",\"Assign element val to collection at index ndx\"],oci_collection_element_get:[\"string oci_collection_element_get(int ndx)\",\"Retrieve the value at collection index ndx\"],oci_collection_max:[\"int oci_collection_max()\",\"Return the max value of a collection. For a varray this is the maximum length of the array\"],oci_collection_size:[\"int oci_collection_size()\",\"Return the size of a collection\"],oci_collection_trim:[\"bool oci_collection_trim(int num)\",\"Trim num elements from the end of a collection\"],oci_commit:[\"bool oci_commit(resource connection)\",\"Commit the current context\"],oci_connect:[\"resource oci_connect(string user, string pass [, string db [, string charset [, int session_mode ]])\",\"Connect to an Oracle database and log on. Returns a new session.\"],oci_define_by_name:[\"bool oci_define_by_name(resource stmt, string name, mixed &var [, int type])\",\"Define a PHP variable to an Oracle column by name\"],oci_error:[\"array oci_error([resource stmt|connection|global])\",\"Return the last error of stmt|connection|global. If no error happened returns false.\"],oci_execute:[\"bool oci_execute(resource stmt [, int mode])\",\"Execute a parsed statement\"],oci_fetch:[\"bool oci_fetch(resource stmt)\",\"Prepare a new row of data for reading\"],oci_fetch_all:[\"int oci_fetch_all(resource stmt, array &output[, int skip[, int maxrows[, int flags]]])\",\"Fetch all rows of result data into an array\"],oci_fetch_array:[\"array oci_fetch_array( resource stmt [, int mode ])\",\"Fetch a result row as an array\"],oci_fetch_assoc:[\"array oci_fetch_assoc( resource stmt )\",\"Fetch a result row as an associative array\"],oci_fetch_object:[\"object oci_fetch_object( resource stmt )\",\"Fetch a result row as an object\"],oci_fetch_row:[\"array oci_fetch_row( resource stmt )\",\"Fetch a result row as an enumerated array\"],oci_field_is_null:[\"bool oci_field_is_null(resource stmt, int col)\",\"Tell whether a column is NULL\"],oci_field_name:[\"string oci_field_name(resource stmt, int col)\",\"Tell the name of a column\"],oci_field_precision:[\"int oci_field_precision(resource stmt, int col)\",\"Tell the precision of a column\"],oci_field_scale:[\"int oci_field_scale(resource stmt, int col)\",\"Tell the scale of a column\"],oci_field_size:[\"int oci_field_size(resource stmt, int col)\",\"Tell the maximum data size of a column\"],oci_field_type:[\"mixed oci_field_type(resource stmt, int col)\",\"Tell the data type of a column\"],oci_field_type_raw:[\"int oci_field_type_raw(resource stmt, int col)\",\"Tell the raw oracle data type of a column\"],oci_free_collection:[\"bool oci_free_collection()\",\"Deletes collection object\"],oci_free_descriptor:[\"bool oci_free_descriptor()\",\"Deletes large object description\"],oci_free_statement:[\"bool oci_free_statement(resource stmt)\",\"Free all resources associated with a statement\"],oci_internal_debug:[\"void oci_internal_debug(int onoff)\",\"Toggle internal debugging output for the OCI extension\"],oci_lob_append:[\"bool oci_lob_append( object lob )\",\"Appends data from a LOB to another LOB\"],oci_lob_close:[\"bool oci_lob_close()\",\"Closes lob descriptor\"],oci_lob_copy:[\"bool oci_lob_copy( object lob_to, object lob_from [, int length ] )\",\"Copies data from a LOB to another LOB\"],oci_lob_eof:[\"bool oci_lob_eof()\",\"Checks if EOF is reached\"],oci_lob_erase:[\"int oci_lob_erase( [ int offset [, int length ] ] )\",\"Erases a specified portion of the internal LOB, starting at a specified offset\"],oci_lob_export:[\"bool oci_lob_export([string filename [, int start [, int length]]])\",\"Writes a large object into a file\"],oci_lob_flush:[\"bool oci_lob_flush( [ int flag ] )\",\"Flushes the LOB buffer\"],oci_lob_import:[\"bool oci_lob_import( string filename )\",\"Loads file into a LOB\"],oci_lob_is_equal:[\"bool oci_lob_is_equal( object lob1, object lob2 )\",\"Tests to see if two LOB/FILE locators are equal\"],oci_lob_load:[\"string oci_lob_load()\",\"Loads a large object\"],oci_lob_read:[\"string oci_lob_read( int length )\",\"Reads particular part of a large object\"],oci_lob_rewind:[\"bool oci_lob_rewind()\",\"Rewind pointer of a LOB\"],oci_lob_save:[\"bool oci_lob_save( string data [, int offset ])\",\"Saves a large object\"],oci_lob_seek:[\"bool oci_lob_seek( int offset [, int whence ])\",\"Moves the pointer of a LOB\"],oci_lob_size:[\"int oci_lob_size()\",\"Returns size of a large object\"],oci_lob_tell:[\"int oci_lob_tell()\",\"Tells LOB pointer position\"],oci_lob_truncate:[\"bool oci_lob_truncate( [ int length ])\",\"Truncates a LOB\"],oci_lob_write:[\"int oci_lob_write( string string [, int length ])\",\"Writes data to current position of a LOB\"],oci_lob_write_temporary:[\"bool oci_lob_write_temporary(string var [, int lob_type])\",\"Writes temporary blob\"],oci_new_collection:[\"object oci_new_collection(resource connection, string tdo [, string schema])\",\"Initialize a new collection\"],oci_new_connect:[\"resource oci_new_connect(string user, string pass [, string db])\",\"Connect to an Oracle database and log on. Returns a new session.\"],oci_new_cursor:[\"resource oci_new_cursor(resource connection)\",\"Return a new cursor (Statement-Handle) - use this to bind ref-cursors!\"],oci_new_descriptor:[\"object oci_new_descriptor(resource connection [, int type])\",\"Initialize a new empty descriptor LOB/FILE (LOB is default)\"],oci_num_fields:[\"int oci_num_fields(resource stmt)\",\"Return the number of result columns in a statement\"],oci_num_rows:[\"int oci_num_rows(resource stmt)\",\"Return the row count of an OCI statement\"],oci_parse:[\"resource oci_parse(resource connection, string query)\",\"Parse a query and return a statement\"],oci_password_change:[\"bool oci_password_change(resource connection, string username, string old_password, string new_password)\",\"Changes the password of an account\"],oci_pconnect:[\"resource oci_pconnect(string user, string pass [, string db [, string charset ]])\",\"Connect to an Oracle database using a persistent connection and log on. Returns a new session.\"],oci_result:[\"string oci_result(resource stmt, mixed column)\",\"Return a single column of result data\"],oci_rollback:[\"bool oci_rollback(resource connection)\",\"Rollback the current context\"],oci_server_version:[\"string oci_server_version(resource connection)\",\"Return a string containing server version information\"],oci_set_action:[\"bool oci_set_action(resource connection, string value)\",\"Sets the action attribute on the connection\"],oci_set_client_identifier:[\"bool oci_set_client_identifier(resource connection, string value)\",\"Sets the client identifier attribute on the connection\"],oci_set_client_info:[\"bool oci_set_client_info(resource connection, string value)\",\"Sets the client info attribute on the connection\"],oci_set_edition:[\"bool oci_set_edition(string value)\",\"Sets the edition attribute for all subsequent connections created\"],oci_set_module_name:[\"bool oci_set_module_name(resource connection, string value)\",\"Sets the module attribute on the connection\"],oci_set_prefetch:[\"bool oci_set_prefetch(resource stmt, int prefetch_rows)\",\"Sets the number of rows to be prefetched on execute to prefetch_rows for stmt\"],oci_statement_type:[\"string oci_statement_type(resource stmt)\",\"Return the query type of an OCI statement\"],ocifetchinto:[\"int ocifetchinto(resource stmt, array &output [, int mode])\",\"Fetch a row of result data into an array\"],ocigetbufferinglob:[\"bool ocigetbufferinglob()\",\"Returns current state of buffering for a LOB\"],ocisetbufferinglob:[\"bool ocisetbufferinglob( boolean flag )\",\"Enables/disables buffering for a LOB\"],octdec:[\"int octdec(string octal_number)\",\"Returns the decimal equivalent of an octal string\"],odbc_autocommit:[\"mixed odbc_autocommit(resource connection_id [, int OnOff])\",\"Toggle autocommit mode or get status\"],odbc_binmode:[\"bool odbc_binmode(int result_id, int mode)\",\"Handle binary column data\"],odbc_close:[\"void odbc_close(resource connection_id)\",\"Close an ODBC connection\"],odbc_close_all:[\"void odbc_close_all(void)\",\"Close all ODBC connections\"],odbc_columnprivileges:[\"resource odbc_columnprivileges(resource connection_id, string catalog, string schema, string table, string column)\",\"Returns a result identifier that can be used to fetch a list of columns and associated privileges for the specified table\"],odbc_columns:[\"resource odbc_columns(resource connection_id [, string qualifier [, string owner [, string table_name [, string column_name]]]])\",\"Returns a result identifier that can be used to fetch a list of column names in specified tables\"],odbc_commit:[\"bool odbc_commit(resource connection_id)\",\"Commit an ODBC transaction\"],odbc_connect:[\"resource odbc_connect(string DSN, string user, string password [, int cursor_option])\",\"Connect to a datasource\"],odbc_cursor:[\"string odbc_cursor(resource result_id)\",\"Get cursor name\"],odbc_data_source:[\"array odbc_data_source(resource connection_id, int fetch_type)\",\"Return information about the currently connected data source\"],odbc_error:[\"string odbc_error([resource connection_id])\",\"Get the last error code\"],odbc_errormsg:[\"string odbc_errormsg([resource connection_id])\",\"Get the last error message\"],odbc_exec:[\"resource odbc_exec(resource connection_id, string query [, int flags])\",\"Prepare and execute an SQL statement\"],odbc_execute:[\"bool odbc_execute(resource result_id [, array parameters_array])\",\"Execute a prepared statement\"],odbc_fetch_array:[\"array odbc_fetch_array(int result [, int rownumber])\",\"Fetch a result row as an associative array\"],odbc_fetch_into:[\"int odbc_fetch_into(resource result_id, array &result_array, [, int rownumber])\",\"Fetch one result row into an array\"],odbc_fetch_object:[\"object odbc_fetch_object(int result [, int rownumber])\",\"Fetch a result row as an object\"],odbc_fetch_row:[\"bool odbc_fetch_row(resource result_id [, int row_number])\",\"Fetch a row\"],odbc_field_len:[\"int odbc_field_len(resource result_id, int field_number)\",\"Get the length (precision) of a column\"],odbc_field_name:[\"string odbc_field_name(resource result_id, int field_number)\",\"Get a column name\"],odbc_field_num:[\"int odbc_field_num(resource result_id, string field_name)\",\"Return column number\"],odbc_field_scale:[\"int odbc_field_scale(resource result_id, int field_number)\",\"Get the scale of a column\"],odbc_field_type:[\"string odbc_field_type(resource result_id, int field_number)\",\"Get the datatype of a column\"],odbc_foreignkeys:[\"resource odbc_foreignkeys(resource connection_id, string pk_qualifier, string pk_owner, string pk_table, string fk_qualifier, string fk_owner, string fk_table)\",\"Returns a result identifier to either a list of foreign keys in the specified table or a list of foreign keys in other tables that refer to the primary key in the specified table\"],odbc_free_result:[\"bool odbc_free_result(resource result_id)\",\"Free resources associated with a result\"],odbc_gettypeinfo:[\"resource odbc_gettypeinfo(resource connection_id [, int data_type])\",\"Returns a result identifier containing information about data types supported by the data source\"],odbc_longreadlen:[\"bool odbc_longreadlen(int result_id, int length)\",\"Handle LONG columns\"],odbc_next_result:[\"bool odbc_next_result(resource result_id)\",\"Checks if multiple results are avaiable\"],odbc_num_fields:[\"int odbc_num_fields(resource result_id)\",\"Get number of columns in a result\"],odbc_num_rows:[\"int odbc_num_rows(resource result_id)\",\"Get number of rows in a result\"],odbc_pconnect:[\"resource odbc_pconnect(string DSN, string user, string password [, int cursor_option])\",\"Establish a persistent connection to a datasource\"],odbc_prepare:[\"resource odbc_prepare(resource connection_id, string query)\",\"Prepares a statement for execution\"],odbc_primarykeys:[\"resource odbc_primarykeys(resource connection_id, string qualifier, string owner, string table)\",\"Returns a result identifier listing the column names that comprise the primary key for a table\"],odbc_procedurecolumns:[\"resource odbc_procedurecolumns(resource connection_id [, string qualifier, string owner, string proc, string column])\",\"Returns a result identifier containing the list of input and output parameters, as well as the columns that make up the result set for the specified procedures\"],odbc_procedures:[\"resource odbc_procedures(resource connection_id [, string qualifier, string owner, string name])\",\"Returns a result identifier containg the list of procedure names in a datasource\"],odbc_result:[\"mixed odbc_result(resource result_id, mixed field)\",\"Get result data\"],odbc_result_all:[\"int odbc_result_all(resource result_id [, string format])\",\"Print result as HTML table\"],odbc_rollback:[\"bool odbc_rollback(resource connection_id)\",\"Rollback a transaction\"],odbc_setoption:[\"bool odbc_setoption(resource conn_id|result_id, int which, int option, int value)\",\"Sets connection or statement options\"],odbc_specialcolumns:[\"resource odbc_specialcolumns(resource connection_id, int type, string qualifier, string owner, string table, int scope, int nullable)\",\"Returns a result identifier containing either the optimal set of columns that uniquely identifies a row in the table or columns that are automatically updated when any value in the row is updated by a transaction\"],odbc_statistics:[\"resource odbc_statistics(resource connection_id, string qualifier, string owner, string name, int unique, int accuracy)\",\"Returns a result identifier that contains statistics about a single table and the indexes associated with the table\"],odbc_tableprivileges:[\"resource odbc_tableprivileges(resource connection_id, string qualifier, string owner, string name)\",\"Returns a result identifier containing a list of tables and the privileges associated with each table\"],odbc_tables:[\"resource odbc_tables(resource connection_id [, string qualifier [, string owner [, string name [, string table_types]]]])\",\"Call the SQLTables function\"],opendir:[\"mixed opendir(string path[, resource context])\",\"Open a directory and return a dir_handle\"],openlog:[\"bool openlog(string ident, int option, int facility)\",\"Open connection to system logger\"],openssl_csr_export:[\"bool openssl_csr_export(resource csr, string &out [, bool notext=true])\",\"Exports a CSR to file or a var\"],openssl_csr_export_to_file:[\"bool openssl_csr_export_to_file(resource csr, string outfilename [, bool notext=true])\",\"Exports a CSR to file\"],openssl_csr_get_public_key:[\"mixed openssl_csr_get_public_key(mixed csr)\",\"Returns the subject of a CERT or FALSE on error\"],openssl_csr_get_subject:[\"mixed openssl_csr_get_subject(mixed csr)\",\"Returns the subject of a CERT or FALSE on error\"],openssl_csr_new:[\"bool openssl_csr_new(array dn, resource &privkey [, array configargs [, array extraattribs]])\",\"Generates a privkey and CSR\"],openssl_csr_sign:[\"resource openssl_csr_sign(mixed csr, mixed x509, mixed priv_key, long days [, array config_args [, long serial]])\",\"Signs a cert with another CERT\"],openssl_decrypt:[\"string openssl_decrypt(string data, string method, string password [, bool raw_input=false])\",\"Takes raw or base64 encoded string and dectupt it using given method and key\"],openssl_dh_compute_key:[\"string openssl_dh_compute_key(string pub_key, resource dh_key)\",\"Computes shared sicret for public value of remote DH key and local DH key\"],openssl_digest:[\"string openssl_digest(string data, string method [, bool raw_output=false])\",\"Computes digest hash value for given data using given method, returns raw or binhex encoded string\"],openssl_encrypt:[\"string openssl_encrypt(string data, string method, string password [, bool raw_output=false])\",\"Encrypts given data with given method and key, returns raw or base64 encoded string\"],openssl_error_string:[\"mixed openssl_error_string(void)\",\"Returns a description of the last error, and alters the index of the error messages. Returns false when the are no more messages\"],openssl_get_cipher_methods:[\"array openssl_get_cipher_methods([bool aliases = false])\",\"Return array of available cipher methods\"],openssl_get_md_methods:[\"array openssl_get_md_methods([bool aliases = false])\",\"Return array of available digest methods\"],openssl_open:[\"bool openssl_open(string data, &string opendata, string ekey, mixed privkey)\",\"Opens data\"],openssl_pkcs12_export:[\"bool openssl_pkcs12_export(mixed x509, string &out, mixed priv_key, string pass[, array args])\",\"Creates and exports a PKCS12 to a var\"],openssl_pkcs12_export_to_file:[\"bool openssl_pkcs12_export_to_file(mixed x509, string filename, mixed priv_key, string pass[, array args])\",\"Creates and exports a PKCS to file\"],openssl_pkcs12_read:[\"bool openssl_pkcs12_read(string PKCS12, array &certs, string pass)\",\"Parses a PKCS12 to an array\"],openssl_pkcs7_decrypt:[\"bool openssl_pkcs7_decrypt(string infilename, string outfilename, mixed recipcert [, mixed recipkey])\",\"Decrypts the S/MIME message in the file name infilename and output the results to the file name outfilename.  recipcert is a CERT for one of the recipients. recipkey specifies the private key matching recipcert, if recipcert does not include the key\"],openssl_pkcs7_encrypt:[\"bool openssl_pkcs7_encrypt(string infile, string outfile, mixed recipcerts, array headers [, long flags [, long cipher]])\",\"Encrypts the message in the file named infile with the certificates in recipcerts and output the result to the file named outfile\"],openssl_pkcs7_sign:[\"bool openssl_pkcs7_sign(string infile, string outfile, mixed signcert, mixed signkey, array headers [, long flags [, string extracertsfilename]])\",\"Signs the MIME message in the file named infile with signcert/signkey and output the result to file name outfile. headers lists plain text headers to exclude from the signed portion of the message, and should include to, from and subject as a minimum\"],openssl_pkcs7_verify:[\"bool openssl_pkcs7_verify(string filename, long flags [, string signerscerts [, array cainfo [, string extracerts [, string content]]]])\",\"Verifys that the data block is intact, the signer is who they say they are, and returns the CERTs of the signers\"],openssl_pkey_export:[\"bool openssl_pkey_export(mixed key, &mixed out [, string passphrase [, array config_args]])\",\"Gets an exportable representation of a key into a string or file\"],openssl_pkey_export_to_file:[\"bool openssl_pkey_export_to_file(mixed key, string outfilename [, string passphrase, array config_args)\",\"Gets an exportable representation of a key into a file\"],openssl_pkey_free:[\"void openssl_pkey_free(int key)\",\"Frees a key\"],openssl_pkey_get_details:[\"resource openssl_pkey_get_details(resource key)\",\"returns an array with the key details (bits, pkey, type)\"],openssl_pkey_get_private:[\"int openssl_pkey_get_private(string key [, string passphrase])\",\"Gets private keys\"],openssl_pkey_get_public:[\"int openssl_pkey_get_public(mixed cert)\",\"Gets public key from X.509 certificate\"],openssl_pkey_new:[\"resource openssl_pkey_new([array configargs])\",\"Generates a new private key\"],openssl_private_decrypt:[\"bool openssl_private_decrypt(string data, string &decrypted, mixed key [, int padding])\",\"Decrypts data with private key\"],openssl_private_encrypt:[\"bool openssl_private_encrypt(string data, string &crypted, mixed key [, int padding])\",\"Encrypts data with private key\"],openssl_public_decrypt:[\"bool openssl_public_decrypt(string data, string &crypted, resource key [, int padding])\",\"Decrypts data with public key\"],openssl_public_encrypt:[\"bool openssl_public_encrypt(string data, string &crypted, mixed key [, int padding])\",\"Encrypts data with public key\"],openssl_random_pseudo_bytes:[\"string openssl_random_pseudo_bytes(integer length [, &bool returned_strong_result])\",\"Returns a string of the length specified filled with random pseudo bytes\"],openssl_seal:[\"int openssl_seal(string data, &string sealdata, &array ekeys, array pubkeys)\",\"Seals data\"],openssl_sign:[\"bool openssl_sign(string data, &string signature, mixed key[, mixed method])\",\"Signs data\"],openssl_verify:[\"int openssl_verify(string data, string signature, mixed key[, mixed method])\",\"Verifys data\"],openssl_x509_check_private_key:[\"bool openssl_x509_check_private_key(mixed cert, mixed key)\",\"Checks if a private key corresponds to a CERT\"],openssl_x509_checkpurpose:[\"int openssl_x509_checkpurpose(mixed x509cert, int purpose, array cainfo [, string untrustedfile])\",\"Checks the CERT to see if it can be used for the purpose in purpose. cainfo holds information about trusted CAs\"],openssl_x509_export:[\"bool openssl_x509_export(mixed x509, string &out [, bool notext = true])\",\"Exports a CERT to file or a var\"],openssl_x509_export_to_file:[\"bool openssl_x509_export_to_file(mixed x509, string outfilename [, bool notext = true])\",\"Exports a CERT to file or a var\"],openssl_x509_free:[\"void openssl_x509_free(resource x509)\",\"Frees X.509 certificates\"],openssl_x509_parse:[\"array openssl_x509_parse(mixed x509 [, bool shortnames=true])\",\"Returns an array of the fields/values of the CERT\"],openssl_x509_read:[\"resource openssl_x509_read(mixed cert)\",\"Reads X.509 certificates\"],ord:[\"int ord(string character)\",\"Returns ASCII value of character\"],output_add_rewrite_var:[\"bool output_add_rewrite_var(string name, string value)\",\"Add URL rewriter values\"],output_reset_rewrite_vars:[\"bool output_reset_rewrite_vars(void)\",\"Reset(clear) URL rewriter values\"],pack:[\"string pack(string format, mixed arg1 [, mixed arg2 [, mixed ...]])\",\"Takes one or more arguments and packs them into a binary string according to the format argument\"],parse_ini_file:[\"array parse_ini_file(string filename [, bool process_sections [, int scanner_mode]])\",\"Parse configuration file\"],parse_ini_string:[\"array parse_ini_string(string ini_string [, bool process_sections [, int scanner_mode]])\",\"Parse configuration string\"],parse_locale:[\"static array parse_locale($locale)\",\"* parses a locale-id into an array the different parts of it\"],parse_str:[\"void parse_str(string encoded_string [, array result])\",\"Parses GET/POST/COOKIE data and sets global variables\"],parse_url:[\"mixed parse_url(string url, [int url_component])\",\"Parse a URL and return its components\"],passthru:[\"void passthru(string command [, int &return_value])\",\"Execute an external program and display raw output\"],pathinfo:[\"array pathinfo(string path[, int options])\",\"Returns information about a certain string\"],pclose:[\"int pclose(resource fp)\",\"Close a file pointer opened by popen()\"],pcnlt_sigwaitinfo:[\"int pcnlt_sigwaitinfo(array set[, array &siginfo])\",\"Synchronously wait for queued signals\"],pcntl_alarm:[\"int pcntl_alarm(int seconds)\",\"Set an alarm clock for delivery of a signal\"],pcntl_exec:[\"bool pcntl_exec(string path [, array args [, array envs]])\",\"Executes specified program in current process space as defined by exec(2)\"],pcntl_fork:[\"int pcntl_fork(void)\",\"Forks the currently running process following the same behavior as the UNIX fork() system call\"],pcntl_getpriority:[\"int pcntl_getpriority([int pid [, int process_identifier]])\",\"Get the priority of any process\"],pcntl_setpriority:[\"bool pcntl_setpriority(int priority [, int pid [, int process_identifier]])\",\"Change the priority of any process\"],pcntl_signal:[\"bool pcntl_signal(int signo, callback handle [, bool restart_syscalls])\",\"Assigns a system signal handler to a PHP function\"],pcntl_signal_dispatch:[\"bool pcntl_signal_dispatch()\",\"Dispatch signals to signal handlers\"],pcntl_sigprocmask:[\"bool pcntl_sigprocmask(int how, array set[, array &oldset])\",\"Examine and change blocked signals\"],pcntl_sigtimedwait:[\"int pcntl_sigtimedwait(array set[, array &siginfo[, int seconds[, int nanoseconds]]])\",\"Wait for queued signals\"],pcntl_wait:[\"int pcntl_wait(int &status)\",\"Waits on or returns the status of a forked child as defined by the waitpid() system call\"],pcntl_waitpid:[\"int pcntl_waitpid(int pid, int &status, int options)\",\"Waits on or returns the status of a forked child as defined by the waitpid() system call\"],pcntl_wexitstatus:[\"int pcntl_wexitstatus(int status)\",\"Returns the status code of a child's exit\"],pcntl_wifexited:[\"bool pcntl_wifexited(int status)\",\"Returns true if the child status code represents a successful exit\"],pcntl_wifsignaled:[\"bool pcntl_wifsignaled(int status)\",\"Returns true if the child status code represents a process that was terminated due to a signal\"],pcntl_wifstopped:[\"bool pcntl_wifstopped(int status)\",\"Returns true if the child status code represents a stopped process (WUNTRACED must have been used with waitpid)\"],pcntl_wstopsig:[\"int pcntl_wstopsig(int status)\",\"Returns the number of the signal that caused the process to stop who's status code is passed\"],pcntl_wtermsig:[\"int pcntl_wtermsig(int status)\",\"Returns the number of the signal that terminated the process who's status code is passed\"],pdo_drivers:[\"array pdo_drivers()\",\"Return array of available PDO drivers\"],pfsockopen:[\"resource pfsockopen(string hostname, int port [, int errno [, string errstr [, float timeout]]])\",\"Open persistent Internet or Unix domain socket connection\"],pg_affected_rows:[\"int pg_affected_rows(resource result)\",\"Returns the number of affected tuples\"],pg_cancel_query:[\"bool pg_cancel_query(resource connection)\",\"Cancel request\"],pg_client_encoding:[\"string pg_client_encoding([resource connection])\",\"Get the current client encoding\"],pg_close:[\"bool pg_close([resource connection])\",\"Close a PostgreSQL connection\"],pg_connect:[\"resource pg_connect(string connection_string[, int connect_type] | [string host, string port [, string options [, string tty,]]] string database)\",\"Open a PostgreSQL connection\"],pg_connection_busy:[\"bool pg_connection_busy(resource connection)\",\"Get connection is busy or not\"],pg_connection_reset:[\"bool pg_connection_reset(resource connection)\",\"Reset connection (reconnect)\"],pg_connection_status:[\"int pg_connection_status(resource connnection)\",\"Get connection status\"],pg_convert:[\"array pg_convert(resource db, string table, array values[, int options])\",\"Check and convert values for PostgreSQL SQL statement\"],pg_copy_from:[\"bool pg_copy_from(resource connection, string table_name , array rows [, string delimiter [, string null_as]])\",\"Copy table from array\"],pg_copy_to:[\"array pg_copy_to(resource connection, string table_name [, string delimiter [, string null_as]])\",\"Copy table to array\"],pg_dbname:[\"string pg_dbname([resource connection])\",\"Get the database name\"],pg_delete:[\"mixed pg_delete(resource db, string table, array ids[, int options])\",\"Delete records has ids (id=>value)\"],pg_end_copy:[\"bool pg_end_copy([resource connection])\",\"Sync with backend. Completes the Copy command\"],pg_escape_bytea:[\"string pg_escape_bytea([resource connection,] string data)\",\"Escape binary for bytea type\"],pg_escape_string:[\"string pg_escape_string([resource connection,] string data)\",\"Escape string for text/char type\"],pg_execute:[\"resource pg_execute([resource connection,] string stmtname, array params)\",\"Execute a prepared query\"],pg_fetch_all:[\"array pg_fetch_all(resource result)\",\"Fetch all rows into array\"],pg_fetch_all_columns:[\"array pg_fetch_all_columns(resource result [, int column_number])\",\"Fetch all rows into array\"],pg_fetch_array:[\"array pg_fetch_array(resource result [, int row [, int result_type]])\",\"Fetch a row as an array\"],pg_fetch_assoc:[\"array pg_fetch_assoc(resource result [, int row])\",\"Fetch a row as an assoc array\"],pg_fetch_object:[\"object pg_fetch_object(resource result [, int row [, string class_name [, NULL|array ctor_params]]])\",\"Fetch a row as an object\"],pg_fetch_result:[\"mixed pg_fetch_result(resource result, [int row_number,] mixed field_name)\",\"Returns values from a result identifier\"],pg_fetch_row:[\"array pg_fetch_row(resource result [, int row [, int result_type]])\",\"Get a row as an enumerated array\"],pg_field_is_null:[\"int pg_field_is_null(resource result, [int row,] mixed field_name_or_number)\",\"Test if a field is NULL\"],pg_field_name:[\"string pg_field_name(resource result, int field_number)\",\"Returns the name of the field\"],pg_field_num:[\"int pg_field_num(resource result, string field_name)\",\"Returns the field number of the named field\"],pg_field_prtlen:[\"int pg_field_prtlen(resource result, [int row,] mixed field_name_or_number)\",\"Returns the printed length\"],pg_field_size:[\"int pg_field_size(resource result, int field_number)\",\"Returns the internal size of the field\"],pg_field_table:[\"mixed pg_field_table(resource result, int field_number[, bool oid_only])\",\"Returns the name of the table field belongs to, or table's oid if oid_only is true\"],pg_field_type:[\"string pg_field_type(resource result, int field_number)\",\"Returns the type name for the given field\"],pg_field_type_oid:[\"string pg_field_type_oid(resource result, int field_number)\",\"Returns the type oid for the given field\"],pg_free_result:[\"bool pg_free_result(resource result)\",\"Free result memory\"],pg_get_notify:[\"array pg_get_notify([resource connection[, result_type]])\",\"Get asynchronous notification\"],pg_get_pid:[\"int pg_get_pid([resource connection)\",\"Get backend(server) pid\"],pg_get_result:[\"resource pg_get_result(resource connection)\",\"Get asynchronous query result\"],pg_host:[\"string pg_host([resource connection])\",\"Returns the host name associated with the connection\"],pg_insert:[\"mixed pg_insert(resource db, string table, array values[, int options])\",\"Insert values (filed=>value) to table\"],pg_last_error:[\"string pg_last_error([resource connection])\",\"Get the error message string\"],pg_last_notice:[\"string pg_last_notice(resource connection)\",\"Returns the last notice set by the backend\"],pg_last_oid:[\"string pg_last_oid(resource result)\",\"Returns the last object identifier\"],pg_lo_close:[\"bool pg_lo_close(resource large_object)\",\"Close a large object\"],pg_lo_create:[\"mixed pg_lo_create([resource connection],[mixed large_object_oid])\",\"Create a large object\"],pg_lo_export:[\"bool pg_lo_export([resource connection, ] int objoid, string filename)\",\"Export large object direct to filesystem\"],pg_lo_import:[\"int pg_lo_import([resource connection, ] string filename [, mixed oid])\",\"Import large object direct from filesystem\"],pg_lo_open:[\"resource pg_lo_open([resource connection,] int large_object_oid, string mode)\",\"Open a large object and return fd\"],pg_lo_read:[\"string pg_lo_read(resource large_object [, int len])\",\"Read a large object\"],pg_lo_read_all:[\"int pg_lo_read_all(resource large_object)\",\"Read a large object and send straight to browser\"],pg_lo_seek:[\"bool pg_lo_seek(resource large_object, int offset [, int whence])\",\"Seeks position of large object\"],pg_lo_tell:[\"int pg_lo_tell(resource large_object)\",\"Returns current position of large object\"],pg_lo_unlink:[\"bool pg_lo_unlink([resource connection,] string large_object_oid)\",\"Delete a large object\"],pg_lo_write:[\"int pg_lo_write(resource large_object, string buf [, int len])\",\"Write a large object\"],pg_meta_data:[\"array pg_meta_data(resource db, string table)\",\"Get meta_data\"],pg_num_fields:[\"int pg_num_fields(resource result)\",\"Return the number of fields in the result\"],pg_num_rows:[\"int pg_num_rows(resource result)\",\"Return the number of rows in the result\"],pg_options:[\"string pg_options([resource connection])\",\"Get the options associated with the connection\"],pg_parameter_status:[\"string|false pg_parameter_status([resource connection,] string param_name)\",\"Returns the value of a server parameter\"],pg_pconnect:[\"resource pg_pconnect(string connection_string | [string host, string port [, string options [, string tty,]]] string database)\",\"Open a persistent PostgreSQL connection\"],pg_ping:[\"bool pg_ping([resource connection])\",\"Ping database. If connection is bad, try to reconnect.\"],pg_port:[\"int pg_port([resource connection])\",\"Return the port number associated with the connection\"],pg_prepare:[\"resource pg_prepare([resource connection,] string stmtname, string query)\",\"Prepare a query for future execution\"],pg_put_line:[\"bool pg_put_line([resource connection,] string query)\",\"Send null-terminated string to backend server\"],pg_query:[\"resource pg_query([resource connection,] string query)\",\"Execute a query\"],pg_query_params:[\"resource pg_query_params([resource connection,] string query, array params)\",\"Execute a query\"],pg_result_error:[\"string pg_result_error(resource result)\",\"Get error message associated with result\"],pg_result_error_field:[\"string pg_result_error_field(resource result, int fieldcode)\",\"Get error message field associated with result\"],pg_result_seek:[\"bool pg_result_seek(resource result, int offset)\",\"Set internal row offset\"],pg_result_status:[\"mixed pg_result_status(resource result[, long result_type])\",\"Get status of query result\"],pg_select:[\"mixed pg_select(resource db, string table, array ids[, int options])\",\"Select records that has ids (id=>value)\"],pg_send_execute:[\"bool pg_send_execute(resource connection, string stmtname, array params)\",\"Executes prevriously prepared stmtname asynchronously\"],pg_send_prepare:[\"bool pg_send_prepare(resource connection, string stmtname, string query)\",\"Asynchronously prepare a query for future execution\"],pg_send_query:[\"bool pg_send_query(resource connection, string query)\",\"Send asynchronous query\"],pg_send_query_params:[\"bool pg_send_query_params(resource connection, string query, array params)\",\"Send asynchronous parameterized query\"],pg_set_client_encoding:[\"int pg_set_client_encoding([resource connection,] string encoding)\",\"Set client encoding\"],pg_set_error_verbosity:[\"int pg_set_error_verbosity([resource connection,] int verbosity)\",\"Set error verbosity\"],pg_trace:[\"bool pg_trace(string filename [, string mode [, resource connection]])\",\"Enable tracing a PostgreSQL connection\"],pg_transaction_status:[\"int pg_transaction_status(resource connnection)\",\"Get transaction status\"],pg_tty:[\"string pg_tty([resource connection])\",\"Return the tty name associated with the connection\"],pg_unescape_bytea:[\"string pg_unescape_bytea(string data)\",\"Unescape binary for bytea type\"],pg_untrace:[\"bool pg_untrace([resource connection])\",\"Disable tracing of a PostgreSQL connection\"],pg_update:[\"mixed pg_update(resource db, string table, array fields, array ids[, int options])\",\"Update table using values (field=>value) and ids (id=>value)\"],pg_version:[\"array pg_version([resource connection])\",\"Returns an array with client, protocol and server version (when available)\"],php_egg_logo_guid:[\"string php_egg_logo_guid(void)\",\"Return the special ID used to request the PHP logo in phpinfo screens\"],php_ini_loaded_file:[\"string php_ini_loaded_file(void)\",\"Return the actual loaded ini filename\"],php_ini_scanned_files:[\"string php_ini_scanned_files(void)\",\"Return comma-separated string of .ini files parsed from the additional ini dir\"],php_logo_guid:[\"string php_logo_guid(void)\",\"Return the special ID used to request the PHP logo in phpinfo screens\"],php_real_logo_guid:[\"string php_real_logo_guid(void)\",\"Return the special ID used to request the PHP logo in phpinfo screens\"],php_sapi_name:[\"string php_sapi_name(void)\",\"Return the current SAPI module name\"],php_snmpv3:[\"void php_snmpv3(INTERNAL_FUNCTION_PARAMETERS, int st)\",\"* * Generic SNMPv3 object fetcher * From here is passed on the the common internal object fetcher. * * st=SNMP_CMD_GET   snmp3_get() - query an agent and return a single value. * st=SNMP_CMD_GETNEXT   snmp3_getnext() - query an agent and return the next single value. * st=SNMP_CMD_WALK   snmp3_walk() - walk the mib and return a single dimensional array  *                       containing the values. * st=SNMP_CMD_REALWALK   snmp3_real_walk() - walk the mib and return an  *                            array of oid,value pairs. * st=SNMP_CMD_SET  snmp3_set() - query an agent and set a single value *\"],php_strip_whitespace:[\"string php_strip_whitespace(string file_name)\",\"Return source with stripped comments and whitespace\"],php_uname:[\"string php_uname(void)\",\"Return information about the system PHP was built on\"],phpcredits:[\"void phpcredits([int flag])\",\"Prints the list of people who've contributed to the PHP project\"],phpinfo:[\"void phpinfo([int what])\",\"Output a page of useful information about PHP and the current request\"],phpversion:[\"string phpversion([string extension])\",\"Return the current PHP version\"],pi:[\"float pi(void)\",\"Returns an approximation of pi\"],png2wbmp:[\"bool png2wbmp (string f_org, string f_dest, int d_height, int d_width, int threshold)\",\"Convert PNG image to WBMP image\"],popen:[\"resource popen(string command, string mode)\",\"Execute a command and open either a read or a write pipe to it\"],posix_access:[\"bool posix_access(string file [, int mode])\",\"Determine accessibility of a file (POSIX.1 5.6.3)\"],posix_ctermid:[\"string posix_ctermid(void)\",\"Generate terminal path name (POSIX.1, 4.7.1)\"],posix_get_last_error:[\"int posix_get_last_error(void)\",\"Retrieve the error number set by the last posix function which failed.\"],posix_getcwd:[\"string posix_getcwd(void)\",\"Get working directory pathname (POSIX.1, 5.2.2)\"],posix_getegid:[\"int posix_getegid(void)\",\"Get the current effective group id (POSIX.1, 4.2.1)\"],posix_geteuid:[\"int posix_geteuid(void)\",\"Get the current effective user id (POSIX.1, 4.2.1)\"],posix_getgid:[\"int posix_getgid(void)\",\"Get the current group id (POSIX.1, 4.2.1)\"],posix_getgrgid:[\"array posix_getgrgid(long gid)\",\"Group database access (POSIX.1, 9.2.1)\"],posix_getgrnam:[\"array posix_getgrnam(string groupname)\",\"Group database access (POSIX.1, 9.2.1)\"],posix_getgroups:[\"array posix_getgroups(void)\",\"Get supplementary group id's (POSIX.1, 4.2.3)\"],posix_getlogin:[\"string posix_getlogin(void)\",\"Get user name (POSIX.1, 4.2.4)\"],posix_getpgid:[\"int posix_getpgid(void)\",\"Get the process group id of the specified process (This is not a POSIX function, but a SVR4ism, so we compile conditionally)\"],posix_getpgrp:[\"int posix_getpgrp(void)\",\"Get current process group id (POSIX.1, 4.3.1)\"],posix_getpid:[\"int posix_getpid(void)\",\"Get the current process id (POSIX.1, 4.1.1)\"],posix_getppid:[\"int posix_getppid(void)\",\"Get the parent process id (POSIX.1, 4.1.1)\"],posix_getpwnam:[\"array posix_getpwnam(string groupname)\",\"User database access (POSIX.1, 9.2.2)\"],posix_getpwuid:[\"array posix_getpwuid(long uid)\",\"User database access (POSIX.1, 9.2.2)\"],posix_getrlimit:[\"array posix_getrlimit(void)\",\"Get system resource consumption limits (This is not a POSIX function, but a BSDism and a SVR4ism. We compile conditionally)\"],posix_getsid:[\"int posix_getsid(void)\",\"Get process group id of session leader (This is not a POSIX function, but a SVR4ism, so be compile conditionally)\"],posix_getuid:[\"int posix_getuid(void)\",\"Get the current user id (POSIX.1, 4.2.1)\"],posix_initgroups:[\"bool posix_initgroups(string name, int base_group_id)\",\"Calculate the group access list for the user specified in name.\"],posix_isatty:[\"bool posix_isatty(int fd)\",\"Determine if filedesc is a tty (POSIX.1, 4.7.1)\"],posix_kill:[\"bool posix_kill(int pid, int sig)\",\"Send a signal to a process (POSIX.1, 3.3.2)\"],posix_mkfifo:[\"bool posix_mkfifo(string pathname, int mode)\",\"Make a FIFO special file (POSIX.1, 5.4.2)\"],posix_mknod:[\"bool posix_mknod(string pathname, int mode [, int major [, int minor]])\",\"Make a special or ordinary file (POSIX.1)\"],posix_setegid:[\"bool posix_setegid(long uid)\",\"Set effective group id\"],posix_seteuid:[\"bool posix_seteuid(long uid)\",\"Set effective user id\"],posix_setgid:[\"bool posix_setgid(int uid)\",\"Set group id (POSIX.1, 4.2.2)\"],posix_setpgid:[\"bool posix_setpgid(int pid, int pgid)\",\"Set process group id for job control (POSIX.1, 4.3.3)\"],posix_setsid:[\"int posix_setsid(void)\",\"Create session and set process group id (POSIX.1, 4.3.2)\"],posix_setuid:[\"bool posix_setuid(long uid)\",\"Set user id (POSIX.1, 4.2.2)\"],posix_strerror:[\"string posix_strerror(int errno)\",\"Retrieve the system error message associated with the given errno.\"],posix_times:[\"array posix_times(void)\",\"Get process times (POSIX.1, 4.5.2)\"],posix_ttyname:[\"string posix_ttyname(int fd)\",\"Determine terminal device name (POSIX.1, 4.7.2)\"],posix_uname:[\"array posix_uname(void)\",\"Get system name (POSIX.1, 4.4.1)\"],pow:[\"number pow(number base, number exponent)\",\"Returns base raised to the power of exponent. Returns integer result when possible\"],preg_filter:[\"mixed preg_filter(mixed regex, mixed replace, mixed subject [, int limit [, int &count]])\",\"Perform Perl-style regular expression replacement and only return matches.\"],preg_grep:[\"array preg_grep(string regex, array input [, int flags])\",\"Searches array and returns entries which match regex\"],preg_last_error:[\"int preg_last_error()\",\"Returns the error code of the last regexp execution.\"],preg_match:[\"int preg_match(string pattern, string subject [, array &subpatterns [, int flags [, int offset]]])\",\"Perform a Perl-style regular expression match\"],preg_match_all:[\"int preg_match_all(string pattern, string subject, array &subpatterns [, int flags [, int offset]])\",\"Perform a Perl-style global regular expression match\"],preg_quote:[\"string preg_quote(string str [, string delim_char])\",\"Quote regular expression characters plus an optional character\"],preg_replace:[\"mixed preg_replace(mixed regex, mixed replace, mixed subject [, int limit [, int &count]])\",\"Perform Perl-style regular expression replacement.\"],preg_replace_callback:[\"mixed preg_replace_callback(mixed regex, mixed callback, mixed subject [, int limit [, int &count]])\",\"Perform Perl-style regular expression replacement using replacement callback.\"],preg_split:[\"array preg_split(string pattern, string subject [, int limit [, int flags]])\",\"Split string into an array using a perl-style regular expression as a delimiter\"],prev:[\"mixed prev(array array_arg)\",\"Move array argument's internal pointer to the previous element and return it\"],print:[\"int print(string arg)\",\"Output a string\"],print_r:[\"mixed print_r(mixed var [, bool return])\",\"Prints out or returns information about the specified variable\"],printf:[\"int printf(string format [, mixed arg1 [, mixed ...]])\",\"Output a formatted string\"],proc_close:[\"int proc_close(resource process)\",\"close a process opened by proc_open\"],proc_get_status:[\"array proc_get_status(resource process)\",\"get information about a process opened by proc_open\"],proc_nice:[\"bool proc_nice(int priority)\",\"Change the priority of the current process\"],proc_open:[\"resource proc_open(string command, array descriptorspec, array &pipes [, string cwd [, array env [, array other_options]]])\",\"Run a process with more control over it's file descriptors\"],proc_terminate:[\"bool proc_terminate(resource process [, long signal])\",\"kill a process opened by proc_open\"],property_exists:[\"bool property_exists(mixed object_or_class, string property_name)\",\"Checks if the object or class has a property\"],pspell_add_to_personal:[\"bool pspell_add_to_personal(int pspell, string word)\",\"Adds a word to a personal list\"],pspell_add_to_session:[\"bool pspell_add_to_session(int pspell, string word)\",\"Adds a word to the current session\"],pspell_check:[\"bool pspell_check(int pspell, string word)\",\"Returns true if word is valid\"],pspell_clear_session:[\"bool pspell_clear_session(int pspell)\",\"Clears the current session\"],pspell_config_create:[\"int pspell_config_create(string language [, string spelling [, string jargon [, string encoding]]])\",\"Create a new config to be used later to create a manager\"],pspell_config_data_dir:[\"bool pspell_config_data_dir(int conf, string directory)\",\"location of language data files\"],pspell_config_dict_dir:[\"bool pspell_config_dict_dir(int conf, string directory)\",\"location of the main word list\"],pspell_config_ignore:[\"bool pspell_config_ignore(int conf, int ignore)\",\"Ignore words <= n chars\"],pspell_config_mode:[\"bool pspell_config_mode(int conf, long mode)\",\"Select mode for config (PSPELL_FAST, PSPELL_NORMAL or PSPELL_BAD_SPELLERS)\"],pspell_config_personal:[\"bool pspell_config_personal(int conf, string personal)\",\"Use a personal dictionary for this config\"],pspell_config_repl:[\"bool pspell_config_repl(int conf, string repl)\",\"Use a personal dictionary with replacement pairs for this config\"],pspell_config_runtogether:[\"bool pspell_config_runtogether(int conf, bool runtogether)\",\"Consider run-together words as valid components\"],pspell_config_save_repl:[\"bool pspell_config_save_repl(int conf, bool save)\",\"Save replacement pairs when personal list is saved for this config\"],pspell_new:[\"int pspell_new(string language [, string spelling [, string jargon [, string encoding [, int mode]]]])\",\"Load a dictionary\"],pspell_new_config:[\"int pspell_new_config(int config)\",\"Load a dictionary based on the given config\"],pspell_new_personal:[\"int pspell_new_personal(string personal, string language [, string spelling [, string jargon [, string encoding [, int mode]]]])\",\"Load a dictionary with a personal wordlist\"],pspell_save_wordlist:[\"bool pspell_save_wordlist(int pspell)\",\"Saves the current (personal) wordlist\"],pspell_store_replacement:[\"bool pspell_store_replacement(int pspell, string misspell, string correct)\",\"Notify the dictionary of a user-selected replacement\"],pspell_suggest:[\"array pspell_suggest(int pspell, string word)\",\"Returns array of suggestions\"],putenv:[\"bool putenv(string setting)\",\"Set the value of an environment variable\"],quoted_printable_decode:[\"string quoted_printable_decode(string str)\",\"Convert a quoted-printable string to an 8 bit string\"],quoted_printable_encode:[\"string quoted_printable_encode(string str) */\",'PHP_FUNCTION(quoted_printable_encode) {  char *str, *new_str;  int str_len;  size_t new_str_len;   if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, \"s\", &str, &str_len) != SUCCESS) {   return;  }   if (!str_len) {   RETURN_EMPTY_STRING();  }   new_str = (char *)php_quot_print_encode((unsigned char *)str, (size_t)str_len, &new_str_len);  RETURN_STRINGL(new_str, new_str_len, 0); } /* }}}'],quotemeta:[\"string quotemeta(string str)\",\"Quotes meta characters\"],rad2deg:[\"float rad2deg(float number)\",\"Converts the radian number to the equivalent number in degrees\"],rand:[\"int rand([int min, int max])\",\"Returns a random number\"],range:[\"array range(mixed low, mixed high[, int step])\",\"Create an array containing the range of integers or characters from low to high (inclusive)\"],rawurldecode:[\"string rawurldecode(string str)\",\"Decodes URL-encodes string\"],rawurlencode:[\"string rawurlencode(string str)\",\"URL-encodes string\"],readdir:[\"string readdir([resource dir_handle])\",\"Read directory entry from dir_handle\"],readfile:[\"int readfile(string filename [, bool use_include_path[, resource context]])\",\"Output a file or a URL\"],readgzfile:[\"int readgzfile(string filename [, int use_include_path])\",\"Output a .gz-file\"],readline:[\"string readline([string prompt])\",\"Reads a line\"],readline_add_history:[\"bool readline_add_history(string prompt)\",\"Adds a line to the history\"],readline_callback_handler_install:[\"void readline_callback_handler_install(string prompt, mixed callback)\",\"Initializes the readline callback interface and terminal, prints the prompt and returns immediately\"],readline_callback_handler_remove:[\"bool readline_callback_handler_remove()\",\"Removes a previously installed callback handler and restores terminal settings\"],readline_callback_read_char:[\"void readline_callback_read_char()\",\"Informs the readline callback interface that a character is ready for input\"],readline_clear_history:[\"bool readline_clear_history(void)\",\"Clears the history\"],readline_completion_function:[\"bool readline_completion_function(string funcname)\",\"Readline completion function?\"],readline_info:[\"mixed readline_info([string varname [, string newvalue]])\",\"Gets/sets various internal readline variables.\"],readline_list_history:[\"array readline_list_history(void)\",\"Lists the history\"],readline_on_new_line:[\"void readline_on_new_line(void)\",\"Inform readline that the cursor has moved to a new line\"],readline_read_history:[\"bool readline_read_history([string filename])\",\"Reads the history\"],readline_redisplay:[\"void readline_redisplay(void)\",\"Ask readline to redraw the display\"],readline_write_history:[\"bool readline_write_history([string filename])\",\"Writes the history\"],readlink:[\"string readlink(string filename)\",\"Return the target of a symbolic link\"],realpath:[\"string realpath(string path)\",\"Return the resolved path\"],realpath_cache_get:[\"bool realpath_cache_get()\",\"Get current size of realpath cache\"],realpath_cache_size:[\"bool realpath_cache_size()\",\"Get current size of realpath cache\"],recode_file:[\"bool recode_file(string request, resource input, resource output)\",\"Recode file input into file output according to request\"],recode_string:[\"string recode_string(string request, string str)\",\"Recode string str according to request string\"],register_shutdown_function:[\"void register_shutdown_function(string function_name)\",\"Register a user-level function to be called on request termination\"],register_tick_function:[\"bool register_tick_function(string function_name [, mixed arg [, mixed ... ]])\",\"Registers a tick callback function\"],rename:[\"bool rename(string old_name, string new_name[, resource context])\",\"Rename a file\"],require:[\"bool require(string path)\",\"Includes and evaluates the specified file, erroring if the file cannot be included\"],require_once:[\"bool require_once(string path)\",\"Includes and evaluates the specified file, erroring if the file cannot be included\"],reset:[\"mixed reset(array array_arg)\",\"Set array argument's internal pointer to the first element and return it\"],restore_error_handler:[\"void restore_error_handler(void)\",\"Restores the previously defined error handler function\"],restore_exception_handler:[\"void restore_exception_handler(void)\",\"Restores the previously defined exception handler function\"],restore_include_path:[\"void restore_include_path()\",\"Restore the value of the include_path configuration option\"],rewind:[\"bool rewind(resource fp)\",\"Rewind the position of a file pointer\"],rewinddir:[\"void rewinddir([resource dir_handle])\",\"Rewind dir_handle back to the start\"],rmdir:[\"bool rmdir(string dirname[, resource context])\",\"Remove a directory\"],round:[\"float round(float number [, int precision [, int mode]])\",\"Returns the number rounded to specified precision\"],rsort:[\"bool rsort(array &array_arg [, int sort_flags])\",\"Sort an array in reverse order\"],rtrim:[\"string rtrim(string str [, string character_mask])\",\"Removes trailing whitespace\"],scandir:[\"array scandir(string dir [, int sorting_order [, resource context]])\",\"List files & directories inside the specified path\"],sem_acquire:[\"bool sem_acquire(resource id)\",\"Acquires the semaphore with the given id, blocking if necessary\"],sem_get:[\"resource sem_get(int key [, int max_acquire [, int perm [, int auto_release]])\",\"Return an id for the semaphore with the given key, and allow max_acquire (default 1) processes to acquire it simultaneously\"],sem_release:[\"bool sem_release(resource id)\",\"Releases the semaphore with the given id\"],sem_remove:[\"bool sem_remove(resource id)\",\"Removes semaphore from Unix systems\"],serialize:[\"string serialize(mixed variable)\",\"Returns a string representation of variable (which can later be unserialized)\"],session_cache_expire:[\"int session_cache_expire([int new_cache_expire])\",\"Return the current cache expire. If new_cache_expire is given, the current cache_expire is replaced with new_cache_expire\"],session_cache_limiter:[\"string session_cache_limiter([string new_cache_limiter])\",\"Return the current cache limiter. If new_cache_limited is given, the current cache_limiter is replaced with new_cache_limiter\"],session_decode:[\"bool session_decode(string data)\",\"Deserializes data and reinitializes the variables\"],session_destroy:[\"bool session_destroy(void)\",\"Destroy the current session and all data associated with it\"],session_encode:[\"string session_encode(void)\",\"Serializes the current setup and returns the serialized representation\"],session_get_cookie_params:[\"array session_get_cookie_params(void)\",\"Return the session cookie parameters\"],session_id:[\"string session_id([string newid])\",\"Return the current session id. If newid is given, the session id is replaced with newid\"],session_is_registered:[\"bool session_is_registered(string varname)\",\"Checks if a variable is registered in session\"],session_module_name:[\"string session_module_name([string newname])\",\"Return the current module name used for accessing session data. If newname is given, the module name is replaced with newname\"],session_name:[\"string session_name([string newname])\",\"Return the current session name. If newname is given, the session name is replaced with newname\"],session_regenerate_id:[\"bool session_regenerate_id([bool delete_old_session])\",\"Update the current session id with a newly generated one. If delete_old_session is set to true, remove the old session.\"],session_register:[\"bool session_register(mixed var_names [, mixed ...])\",\"Adds varname(s) to the list of variables which are freezed at the session end\"],session_save_path:[\"string session_save_path([string newname])\",\"Return the current save path passed to module_name. If newname is given, the save path is replaced with newname\"],session_set_cookie_params:[\"void session_set_cookie_params(int lifetime [, string path [, string domain [, bool secure[, bool httponly]]]])\",\"Set session cookie parameters\"],session_set_save_handler:[\"void session_set_save_handler(string open, string close, string read, string write, string destroy, string gc)\",\"Sets user-level functions\"],session_start:[\"bool session_start(void)\",\"Begin session - reinitializes freezed variables, registers browsers etc\"],session_unregister:[\"bool session_unregister(string varname)\",\"Removes varname from the list of variables which are freezed at the session end\"],session_unset:[\"void session_unset(void)\",\"Unset all registered variables\"],session_write_close:[\"void session_write_close(void)\",\"Write session data and end session\"],set_error_handler:[\"string set_error_handler(string error_handler [, int error_types])\",\"Sets a user-defined error handler function.  Returns the previously defined error handler, or false on error\"],set_exception_handler:[\"string set_exception_handler(callable exception_handler)\",\"Sets a user-defined exception handler function.  Returns the previously defined exception handler, or false on error\"],set_include_path:[\"string set_include_path(string new_include_path)\",\"Sets the include_path configuration option\"],set_magic_quotes_runtime:[\"bool set_magic_quotes_runtime(int new_setting)\",\"Set the current active configuration setting of magic_quotes_runtime and return previous\"],set_time_limit:[\"bool set_time_limit(int seconds)\",\"Sets the maximum time a script can run\"],setcookie:[\"bool setcookie(string name [, string value [, int expires [, string path [, string domain [, bool secure[, bool httponly]]]]]])\",\"Send a cookie\"],setlocale:[\"string setlocale(mixed category, string locale [, string ...])\",\"Set locale information\"],setrawcookie:[\"bool setrawcookie(string name [, string value [, int expires [, string path [, string domain [, bool secure[, bool httponly]]]]]])\",\"Send a cookie with no url encoding of the value\"],settype:[\"bool settype(mixed var, string type)\",\"Set the type of the variable\"],sha1:[\"string sha1(string str [, bool raw_output])\",\"Calculate the sha1 hash of a string\"],sha1_file:[\"string sha1_file(string filename [, bool raw_output])\",\"Calculate the sha1 hash of given filename\"],shell_exec:[\"string shell_exec(string cmd)\",\"Execute command via shell and return complete output as string\"],shm_attach:[\"int shm_attach(int key [, int memsize [, int perm]])\",\"Creates or open a shared memory segment\"],shm_detach:[\"bool shm_detach(resource shm_identifier)\",\"Disconnects from shared memory segment\"],shm_get_var:[\"mixed shm_get_var(resource id, int variable_key)\",\"Returns a variable from shared memory\"],shm_has_var:[\"bool shm_has_var(resource id, int variable_key)\",\"Checks whether a specific entry exists\"],shm_put_var:[\"bool shm_put_var(resource shm_identifier, int variable_key, mixed variable)\",\"Inserts or updates a variable in shared memory\"],shm_remove:[\"bool shm_remove(resource shm_identifier)\",\"Removes shared memory from Unix systems\"],shm_remove_var:[\"bool shm_remove_var(resource id, int variable_key)\",\"Removes variable from shared memory\"],shmop_close:[\"void shmop_close (int shmid)\",\"closes a shared memory segment\"],shmop_delete:[\"bool shmop_delete (int shmid)\",\"mark segment for deletion\"],shmop_open:[\"int shmop_open (int key, string flags, int mode, int size)\",\"gets and attaches a shared memory segment\"],shmop_read:[\"string shmop_read (int shmid, int start, int count)\",\"reads from a shm segment\"],shmop_size:[\"int shmop_size (int shmid)\",\"returns the shm size\"],shmop_write:[\"int shmop_write (int shmid, string data, int offset)\",\"writes to a shared memory segment\"],shuffle:[\"bool shuffle(array array_arg)\",\"Randomly shuffle the contents of an array\"],similar_text:[\"int similar_text(string str1, string str2 [, float percent])\",\"Calculates the similarity between two strings\"],simplexml_import_dom:[\"simplemxml_element simplexml_import_dom(domNode node [, string class_name])\",\"Get a simplexml_element object from dom to allow for processing\"],simplexml_load_file:[\"simplemxml_element simplexml_load_file(string filename [, string class_name [, int options [, string ns [, bool is_prefix]]]])\",\"Load a filename and return a simplexml_element object to allow for processing\"],simplexml_load_string:[\"simplemxml_element simplexml_load_string(string data [, string class_name [, int options [, string ns [, bool is_prefix]]]])\",\"Load a string and return a simplexml_element object to allow for processing\"],sin:[\"float sin(float number)\",\"Returns the sine of the number in radians\"],sinh:[\"float sinh(float number)\",\"Returns the hyperbolic sine of the number, defined as (exp(number) - exp(-number))/2\"],sleep:[\"void sleep(int seconds)\",\"Delay for a given number of seconds\"],smfi_addheader:[\"bool smfi_addheader(string headerf, string headerv)\",\"Adds a header to the current message.\"],smfi_addrcpt:[\"bool smfi_addrcpt(string rcpt)\",\"Add a recipient to the message envelope.\"],smfi_chgheader:[\"bool smfi_chgheader(string headerf, string headerv)\",\"Changes a header's value for the current message.\"],smfi_delrcpt:[\"bool smfi_delrcpt(string rcpt)\",\"Removes the named recipient from the current message's envelope.\"],smfi_getsymval:[\"string smfi_getsymval(string macro)\",\"Returns the value of the given macro or NULL if the macro is not defined.\"],smfi_replacebody:[\"bool smfi_replacebody(string body)\",\"Replaces the body of the current message. If called more than once,    subsequent calls result in data being appended to the new body.\"],smfi_setflags:[\"void smfi_setflags(long flags)\",\"Sets the flags describing the actions the filter may take.\"],smfi_setreply:[\"bool smfi_setreply(string rcode, string xcode, string message)\",\"Directly set the SMTP error reply code for this connection.    This code will be used on subsequent error replies resulting from actions taken by this filter.\"],smfi_settimeout:[\"void smfi_settimeout(long timeout)\",\"Sets the number of seconds libmilter will wait for an MTA connection before timing out a socket.\"],snmp2_get:[\"string snmp2_get(string host, string community, string object_id [, int timeout [, int retries]])\",\"Fetch a SNMP object\"],snmp2_getnext:[\"string snmp2_getnext(string host, string community, string object_id [, int timeout [, int retries]])\",\"Fetch a SNMP object\"],snmp2_real_walk:[\"array snmp2_real_walk(string host, string community, string object_id [, int timeout [, int retries]])\",\"Return all objects including their respective object id withing the specified one\"],snmp2_set:[\"int snmp2_set(string host, string community, string object_id, string type, mixed value [, int timeout [, int retries]])\",\"Set the value of a SNMP object\"],snmp2_walk:[\"array snmp2_walk(string host, string community, string object_id [, int timeout [, int retries]])\",\"Return all objects under the specified object id\"],snmp3_get:[\"int snmp3_get(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id [, int timeout [, int retries]])\",\"Fetch the value of a SNMP object\"],snmp3_getnext:[\"int snmp3_getnext(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id [, int timeout [, int retries]])\",\"Fetch the value of a SNMP object\"],snmp3_real_walk:[\"int snmp3_real_walk(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id [, int timeout [, int retries]])\",\"Fetch the value of a SNMP object\"],snmp3_set:[\"int snmp3_set(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id, string type, mixed value [, int timeout [, int retries]])\",\"Fetch the value of a SNMP object\"],snmp3_walk:[\"int snmp3_walk(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id [, int timeout [, int retries]])\",\"Fetch the value of a SNMP object\"],snmp_get_quick_print:[\"bool snmp_get_quick_print(void)\",\"Return the current status of quick_print\"],snmp_get_valueretrieval:[\"int snmp_get_valueretrieval()\",\"Return the method how the SNMP values will be returned\"],snmp_read_mib:[\"int snmp_read_mib(string filename)\",\"Reads and parses a MIB file into the active MIB tree.\"],snmp_set_enum_print:[\"void snmp_set_enum_print(int enum_print)\",\"Return all values that are enums with their enum value instead of the raw integer\"],snmp_set_oid_output_format:[\"void snmp_set_oid_output_format(int oid_format)\",\"Set the OID output format.\"],snmp_set_quick_print:[\"void snmp_set_quick_print(int quick_print)\",\"Return all objects including their respective object id withing the specified one\"],snmp_set_valueretrieval:[\"void snmp_set_valueretrieval(int method)\",\"Specify the method how the SNMP values will be returned\"],snmpget:[\"string snmpget(string host, string community, string object_id [, int timeout [, int retries]])\",\"Fetch a SNMP object\"],snmpgetnext:[\"string snmpgetnext(string host, string community, string object_id [, int timeout [, int retries]])\",\"Fetch a SNMP object\"],snmprealwalk:[\"array snmprealwalk(string host, string community, string object_id [, int timeout [, int retries]])\",\"Return all objects including their respective object id withing the specified one\"],snmpset:[\"int snmpset(string host, string community, string object_id, string type, mixed value [, int timeout [, int retries]])\",\"Set the value of a SNMP object\"],snmpwalk:[\"array snmpwalk(string host, string community, string object_id [, int timeout [, int retries]])\",\"Return all objects under the specified object id\"],socket_accept:[\"resource socket_accept(resource socket)\",\"Accepts a connection on the listening socket fd\"],socket_bind:[\"bool socket_bind(resource socket, string addr [, int port])\",\"Binds an open socket to a listening port, port is only specified in AF_INET family.\"],socket_clear_error:[\"void socket_clear_error([resource socket])\",\"Clears the error on the socket or the last error code.\"],socket_close:[\"void socket_close(resource socket)\",\"Closes a file descriptor\"],socket_connect:[\"bool socket_connect(resource socket, string addr [, int port])\",\"Opens a connection to addr:port on the socket specified by socket\"],socket_create:[\"resource socket_create(int domain, int type, int protocol)\",\"Creates an endpoint for communication in the domain specified by domain, of type specified by type\"],socket_create_listen:[\"resource socket_create_listen(int port[, int backlog])\",\"Opens a socket on port to accept connections\"],socket_create_pair:[\"bool socket_create_pair(int domain, int type, int protocol, array &fd)\",\"Creates a pair of indistinguishable sockets and stores them in fds.\"],socket_get_option:[\"mixed socket_get_option(resource socket, int level, int optname)\",\"Gets socket options for the socket\"],socket_getpeername:[\"bool socket_getpeername(resource socket, string &addr[, int &port])\",\"Queries the remote side of the given socket which may either result in host/port or in a UNIX filesystem path, dependent on its type.\"],socket_getsockname:[\"bool socket_getsockname(resource socket, string &addr[, int &port])\",\"Queries the remote side of the given socket which may either result in host/port or in a UNIX filesystem path, dependent on its type.\"],socket_last_error:[\"int socket_last_error([resource socket])\",\"Returns the last socket error (either the last used or the provided socket resource)\"],socket_listen:[\"bool socket_listen(resource socket[, int backlog])\",\"Sets the maximum number of connections allowed to be waited for on the socket specified by fd\"],socket_read:[\"string socket_read(resource socket, int length [, int type])\",\"Reads a maximum of length bytes from socket\"],socket_recv:[\"int socket_recv(resource socket, string &buf, int len, int flags)\",\"Receives data from a connected socket\"],socket_recvfrom:[\"int socket_recvfrom(resource socket, string &buf, int len, int flags, string &name [, int &port])\",\"Receives data from a socket, connected or not\"],socket_select:[\"int socket_select(array &read_fds, array &write_fds, array &except_fds, int tv_sec[, int tv_usec])\",\"Runs the select() system call on the sets mentioned with a timeout specified by tv_sec and tv_usec\"],socket_send:[\"int socket_send(resource socket, string buf, int len, int flags)\",\"Sends data to a connected socket\"],socket_sendto:[\"int socket_sendto(resource socket, string buf, int len, int flags, string addr [, int port])\",\"Sends a message to a socket, whether it is connected or not\"],socket_set_block:[\"bool socket_set_block(resource socket)\",\"Sets blocking mode on a socket resource\"],socket_set_nonblock:[\"bool socket_set_nonblock(resource socket)\",\"Sets nonblocking mode on a socket resource\"],socket_set_option:[\"bool socket_set_option(resource socket, int level, int optname, int|array optval)\",\"Sets socket options for the socket\"],socket_shutdown:[\"bool socket_shutdown(resource socket[, int how])\",\"Shuts down a socket for receiving, sending, or both.\"],socket_strerror:[\"string socket_strerror(int errno)\",\"Returns a string describing an error\"],socket_write:[\"int socket_write(resource socket, string buf[, int length])\",\"Writes the buffer to the socket resource, length is optional\"],solid_fetch_prev:[\"bool solid_fetch_prev(resource result_id)\",\"\"],sort:[\"bool sort(array &array_arg [, int sort_flags])\",\"Sort an array\"],soundex:[\"string soundex(string str)\",\"Calculate the soundex key of a string\"],spl_autoload:[\"void spl_autoload(string class_name [, string file_extensions])\",\"Default implementation for __autoload()\"],spl_autoload_call:[\"void spl_autoload_call(string class_name)\",\"Try all registerd autoload function to load the requested class\"],spl_autoload_extensions:[\"string spl_autoload_extensions([string file_extensions])\",\"Register and return default file extensions for spl_autoload\"],spl_autoload_functions:[\"false|array spl_autoload_functions()\",\"Return all registered __autoload() functionns\"],spl_autoload_register:['bool spl_autoload_register([mixed autoload_function = \"spl_autoload\" [, throw = true [, prepend]]])',\"Register given function as __autoload() implementation\"],spl_autoload_unregister:[\"bool spl_autoload_unregister(mixed autoload_function)\",\"Unregister given function as __autoload() implementation\"],spl_classes:[\"array spl_classes()\",\"Return an array containing the names of all clsses and interfaces defined in SPL\"],spl_object_hash:[\"string spl_object_hash(object obj)\",\"Return hash id for given object\"],split:[\"array split(string pattern, string string [, int limit])\",\"Split string into array by regular expression\"],spliti:[\"array spliti(string pattern, string string [, int limit])\",\"Split string into array by regular expression case-insensitive\"],sprintf:[\"string sprintf(string format [, mixed arg1 [, mixed ...]])\",\"Return a formatted string\"],sql_regcase:[\"string sql_regcase(string string)\",\"Make regular expression for case insensitive match\"],sqlite_array_query:[\"array sqlite_array_query(resource db, string query [ , int result_type [, bool decode_binary]])\",\"Executes a query against a given database and returns an array of arrays.\"],sqlite_busy_timeout:[\"void sqlite_busy_timeout(resource db, int ms)\",\"Set busy timeout duration. If ms <= 0, all busy handlers are disabled.\"],sqlite_changes:[\"int sqlite_changes(resource db)\",\"Returns the number of rows that were changed by the most recent SQL statement.\"],sqlite_close:[\"void sqlite_close(resource db)\",\"Closes an open sqlite database.\"],sqlite_column:[\"mixed sqlite_column(resource result, mixed index_or_name [, bool decode_binary])\",\"Fetches a column from the current row of a result set.\"],sqlite_create_aggregate:[\"bool sqlite_create_aggregate(resource db, string funcname, mixed step_func, mixed finalize_func[, long num_args])\",\"Registers an aggregate function for queries.\"],sqlite_create_function:[\"bool sqlite_create_function(resource db, string funcname, mixed callback[, long num_args])\",'Registers a \"regular\" function for queries.'],sqlite_current:[\"array sqlite_current(resource result [, int result_type [, bool decode_binary]])\",\"Fetches the current row from a result set as an array.\"],sqlite_error_string:[\"string sqlite_error_string(int error_code)\",\"Returns the textual description of an error code.\"],sqlite_escape_string:[\"string sqlite_escape_string(string item)\",\"Escapes a string for use as a query parameter.\"],sqlite_exec:[\"boolean sqlite_exec(string query, resource db[, string &error_message])\",\"Executes a result-less query against a given database\"],sqlite_factory:[\"object sqlite_factory(string filename [, int mode [, string &error_message]])\",\"Opens a SQLite database and creates an object for it. Will create the database if it does not exist.\"],sqlite_fetch_all:[\"array sqlite_fetch_all(resource result [, int result_type [, bool decode_binary]])\",\"Fetches all rows from a result set as an array of arrays.\"],sqlite_fetch_array:[\"array sqlite_fetch_array(resource result [, int result_type [, bool decode_binary]])\",\"Fetches the next row from a result set as an array.\"],sqlite_fetch_column_types:[\"resource sqlite_fetch_column_types(string table_name, resource db [, int result_type])\",\"Return an array of column types from a particular table.\"],sqlite_fetch_object:[\"object sqlite_fetch_object(resource result [, string class_name [, NULL|array ctor_params [, bool decode_binary]]])\",\"Fetches the next row from a result set as an object.\"],sqlite_fetch_single:[\"string sqlite_fetch_single(resource result [, bool decode_binary])\",\"Fetches the first column of a result set as a string.\"],sqlite_field_name:[\"string sqlite_field_name(resource result, int field_index)\",\"Returns the name of a particular field of a result set.\"],sqlite_has_prev:[\"bool sqlite_has_prev(resource result)\",\"* Returns whether a previous row is available.\"],sqlite_key:[\"int sqlite_key(resource result)\",\"Return the current row index of a buffered result.\"],sqlite_last_error:[\"int sqlite_last_error(resource db)\",\"Returns the error code of the last error for a database.\"],sqlite_last_insert_rowid:[\"int sqlite_last_insert_rowid(resource db)\",\"Returns the rowid of the most recently inserted row.\"],sqlite_libencoding:[\"string sqlite_libencoding()\",\"Returns the encoding (iso8859 or UTF-8) of the linked SQLite library.\"],sqlite_libversion:[\"string sqlite_libversion()\",\"Returns the version of the linked SQLite library.\"],sqlite_next:[\"bool sqlite_next(resource result)\",\"Seek to the next row number of a result set.\"],sqlite_num_fields:[\"int sqlite_num_fields(resource result)\",\"Returns the number of fields in a result set.\"],sqlite_num_rows:[\"int sqlite_num_rows(resource result)\",\"Returns the number of rows in a buffered result set.\"],sqlite_open:[\"resource sqlite_open(string filename [, int mode [, string &error_message]])\",\"Opens a SQLite database. Will create the database if it does not exist.\"],sqlite_popen:[\"resource sqlite_popen(string filename [, int mode [, string &error_message]])\",\"Opens a persistent handle to a SQLite database. Will create the database if it does not exist.\"],sqlite_prev:[\"bool sqlite_prev(resource result)\",\"* Seek to the previous row number of a result set.\"],sqlite_query:[\"resource sqlite_query(string query, resource db [, int result_type [, string &error_message]])\",\"Executes a query against a given database and returns a result handle.\"],sqlite_rewind:[\"bool sqlite_rewind(resource result)\",\"Seek to the first row number of a buffered result set.\"],sqlite_seek:[\"bool sqlite_seek(resource result, int row)\",\"Seek to a particular row number of a buffered result set.\"],sqlite_single_query:[\"array sqlite_single_query(resource db, string query [, bool first_row_only [, bool decode_binary]])\",\"Executes a query and returns either an array for one single column or the value of the first row.\"],sqlite_udf_decode_binary:[\"string sqlite_udf_decode_binary(string data)\",\"Decode binary encoding on a string parameter passed to an UDF.\"],sqlite_udf_encode_binary:[\"string sqlite_udf_encode_binary(string data)\",\"Apply binary encoding (if required) to a string to return from an UDF.\"],sqlite_unbuffered_query:[\"resource sqlite_unbuffered_query(string query, resource db [ , int result_type [, string &error_message]])\",\"Executes a query that does not prefetch and buffer all data.\"],sqlite_valid:[\"bool sqlite_valid(resource result)\",\"Returns whether more rows are available.\"],sqrt:[\"float sqrt(float number)\",\"Returns the square root of the number\"],srand:[\"void srand([int seed])\",\"Seeds random number generator\"],sscanf:[\"mixed sscanf(string str, string format [, string ...])\",\"Implements an ANSI C compatible sscanf\"],stat:[\"array stat(string filename)\",\"Give information about a file\"],str_getcsv:[\"array str_getcsv(string input[, string delimiter[, string enclosure[, string escape]]])\",\"Parse a CSV string into an array\"],str_ireplace:[\"mixed str_ireplace(mixed search, mixed replace, mixed subject [, int &replace_count])\",\"Replaces all occurrences of search in haystack with replace / case-insensitive\"],str_pad:[\"string str_pad(string input, int pad_length [, string pad_string [, int pad_type]])\",\"Returns input string padded on the left or right to specified length with pad_string\"],str_repeat:[\"string str_repeat(string input, int mult)\",\"Returns the input string repeat mult times\"],str_replace:[\"mixed str_replace(mixed search, mixed replace, mixed subject [, int &replace_count])\",\"Replaces all occurrences of search in haystack with replace\"],str_rot13:[\"string str_rot13(string str)\",\"Perform the rot13 transform on a string\"],str_shuffle:[\"void str_shuffle(string str)\",\"Shuffles string. One permutation of all possible is created\"],str_split:[\"array str_split(string str [, int split_length])\",\"Convert a string to an array. If split_length is specified, break the string down into chunks each split_length characters long.\"],str_word_count:[\"mixed str_word_count(string str, [int format [, string charlist]])\",'Counts the number of words inside a string. If format of 1 is specified,     then the function will return an array containing all the words     found inside the string. If format of 2 is specified, then the function     will return an associated array where the position of the word is the key     and the word itself is the value.          For the purpose of this function, \\'word\\' is defined as a locale dependent     string containing alphabetic characters, which also may contain, but not start     with \"\\'\" and \"-\" characters.'],strcasecmp:[\"int strcasecmp(string str1, string str2)\",\"Binary safe case-insensitive string comparison\"],strchr:[\"string strchr(string haystack, string needle)\",\"An alias for strstr\"],strcmp:[\"int strcmp(string str1, string str2)\",\"Binary safe string comparison\"],strcoll:[\"int strcoll(string str1, string str2)\",\"Compares two strings using the current locale\"],strcspn:[\"int strcspn(string str, string mask [, start [, len]])\",\"Finds length of initial segment consisting entirely of characters not found in mask. If start or/and length is provide works like strcspn(substr($s,$start,$len),$bad_chars)\"],stream_bucket_append:[\"void stream_bucket_append(resource brigade, resource bucket)\",\"Append bucket to brigade\"],stream_bucket_make_writeable:[\"object stream_bucket_make_writeable(resource brigade)\",\"Return a bucket object from the brigade for operating on\"],stream_bucket_new:[\"resource stream_bucket_new(resource stream, string buffer)\",\"Create a new bucket for use on the current stream\"],stream_bucket_prepend:[\"void stream_bucket_prepend(resource brigade, resource bucket)\",\"Prepend bucket to brigade\"],stream_context_create:[\"resource stream_context_create([array options[, array params]])\",\"Create a file context and optionally set parameters\"],stream_context_get_default:[\"resource stream_context_get_default([array options])\",\"Get a handle on the default file/stream context and optionally set parameters\"],stream_context_get_options:[\"array stream_context_get_options(resource context|resource stream)\",\"Retrieve options for a stream/wrapper/context\"],stream_context_get_params:[\"array stream_context_get_params(resource context|resource stream)\",\"Get parameters of a file context\"],stream_context_set_default:[\"resource stream_context_set_default(array options)\",\"Set default file/stream context, returns the context as a resource\"],stream_context_set_option:[\"bool stream_context_set_option(resource context|resource stream, string wrappername, string optionname, mixed value)\",\"Set an option for a wrapper\"],stream_context_set_params:[\"bool stream_context_set_params(resource context|resource stream, array options)\",\"Set parameters for a file context\"],stream_copy_to_stream:[\"long stream_copy_to_stream(resource source, resource dest [, long maxlen [, long pos]])\",\"Reads up to maxlen bytes from source stream and writes them to dest stream.\"],stream_filter_append:[\"resource stream_filter_append(resource stream, string filtername[, int read_write[, string filterparams]])\",\"Append a filter to a stream\"],stream_filter_prepend:[\"resource stream_filter_prepend(resource stream, string filtername[, int read_write[, string filterparams]])\",\"Prepend a filter to a stream\"],stream_filter_register:[\"bool stream_filter_register(string filtername, string classname)\",\"Registers a custom filter handler class\"],stream_filter_remove:[\"bool stream_filter_remove(resource stream_filter)\",\"Flushes any data in the filter's internal buffer, removes it from the chain, and frees the resource\"],stream_get_contents:[\"string stream_get_contents(resource source [, long maxlen [, long offset]])\",\"Reads all remaining bytes (or up to maxlen bytes) from a stream and returns them as a string.\"],stream_get_filters:[\"array stream_get_filters(void)\",\"Returns a list of registered filters\"],stream_get_line:[\"string stream_get_line(resource stream, int maxlen [, string ending])\",\"Read up to maxlen bytes from a stream or until the ending string is found\"],stream_get_meta_data:[\"array stream_get_meta_data(resource fp)\",\"Retrieves header/meta data from streams/file pointers\"],stream_get_transports:[\"array stream_get_transports()\",\"Retrieves list of registered socket transports\"],stream_get_wrappers:[\"array stream_get_wrappers()\",\"Retrieves list of registered stream wrappers\"],stream_is_local:[\"bool stream_is_local(resource stream|string url)\",\"\"],stream_resolve_include_path:[\"string stream_resolve_include_path(string filename)\",\"Determine what file will be opened by calls to fopen() with a relative path\"],stream_select:[\"int stream_select(array &read_streams, array &write_streams, array &except_streams, int tv_sec[, int tv_usec])\",\"Runs the select() system call on the sets of streams with a timeout specified by tv_sec and tv_usec\"],stream_set_blocking:[\"bool stream_set_blocking(resource socket, int mode)\",\"Set blocking/non-blocking mode on a socket or stream\"],stream_set_timeout:[\"bool stream_set_timeout(resource stream, int seconds [, int microseconds])\",\"Set timeout on stream read to seconds + microseonds\"],stream_set_write_buffer:[\"int stream_set_write_buffer(resource fp, int buffer)\",\"Set file write buffer\"],stream_socket_accept:[\"resource stream_socket_accept(resource serverstream, [ double timeout [, string &peername ]])\",\"Accept a client connection from a server socket\"],stream_socket_client:[\"resource stream_socket_client(string remoteaddress [, long &errcode [, string &errstring [, double timeout [, long flags [, resource context]]]]])\",\"Open a client connection to a remote address\"],stream_socket_enable_crypto:[\"int stream_socket_enable_crypto(resource stream, bool enable [, int cryptokind [, resource sessionstream]])\",\"Enable or disable a specific kind of crypto on the stream\"],stream_socket_get_name:[\"string stream_socket_get_name(resource stream, bool want_peer)\",\"Returns either the locally bound or remote name for a socket stream\"],stream_socket_pair:[\"array stream_socket_pair(int domain, int type, int protocol)\",\"Creates a pair of connected, indistinguishable socket streams\"],stream_socket_recvfrom:[\"string stream_socket_recvfrom(resource stream, long amount [, long flags [, string &remote_addr]])\",\"Receives data from a socket stream\"],stream_socket_sendto:[\"long stream_socket_sendto(resouce stream, string data [, long flags [, string target_addr]])\",\"Send data to a socket stream.  If target_addr is specified it must be in dotted quad (or [ipv6]) format\"],stream_socket_server:[\"resource stream_socket_server(string localaddress [, long &errcode [, string &errstring [, long flags [, resource context]]]])\",\"Create a server socket bound to localaddress\"],stream_socket_shutdown:[\"int stream_socket_shutdown(resource stream, int how)\",\"causes all or part of a full-duplex connection on the socket associated  with stream to be shut down.  If how is SHUT_RD,  further receptions will  be disallowed. If how is SHUT_WR, further transmissions will be disallowed.  If how is SHUT_RDWR,  further  receptions and transmissions will be  disallowed.\"],stream_supports_lock:[\"bool stream_supports_lock(resource stream)\",\"Tells wether the stream supports locking through flock().\"],stream_wrapper_register:[\"bool stream_wrapper_register(string protocol, string classname[, integer flags])\",\"Registers a custom URL protocol handler class\"],stream_wrapper_restore:[\"bool stream_wrapper_restore(string protocol)\",\"Restore the original protocol handler, overriding if necessary\"],stream_wrapper_unregister:[\"bool stream_wrapper_unregister(string protocol)\",\"Unregister a wrapper for the life of the current request.\"],strftime:[\"string strftime(string format [, int timestamp])\",\"Format a local time/date according to locale settings\"],strip_tags:[\"string strip_tags(string str [, string allowable_tags])\",\"Strips HTML and PHP tags from a string\"],stripcslashes:[\"string stripcslashes(string str)\",\"Strips backslashes from a string. Uses C-style conventions\"],stripos:[\"int stripos(string haystack, string needle [, int offset])\",\"Finds position of first occurrence of a string within another, case insensitive\"],stripslashes:[\"string stripslashes(string str)\",\"Strips backslashes from a string\"],stristr:[\"string stristr(string haystack, string needle[, bool part])\",\"Finds first occurrence of a string within another, case insensitive\"],strlen:[\"int strlen(string str)\",\"Get string length\"],strnatcasecmp:[\"int strnatcasecmp(string s1, string s2)\",\"Returns the result of case-insensitive string comparison using 'natural' algorithm\"],strnatcmp:[\"int strnatcmp(string s1, string s2)\",\"Returns the result of string comparison using 'natural' algorithm\"],strncasecmp:[\"int strncasecmp(string str1, string str2, int len)\",\"Binary safe string comparison\"],strncmp:[\"int strncmp(string str1, string str2, int len)\",\"Binary safe string comparison\"],strpbrk:[\"array strpbrk(string haystack, string char_list)\",\"Search a string for any of a set of characters\"],strpos:[\"int strpos(string haystack, string needle [, int offset])\",\"Finds position of first occurrence of a string within another\"],strptime:[\"string strptime(string timestamp, string format)\",\"Parse a time/date generated with strftime()\"],strrchr:[\"string strrchr(string haystack, string needle)\",\"Finds the last occurrence of a character in a string within another\"],strrev:[\"string strrev(string str)\",\"Reverse a string\"],strripos:[\"int strripos(string haystack, string needle [, int offset])\",\"Finds position of last occurrence of a string within another string\"],strrpos:[\"int strrpos(string haystack, string needle [, int offset])\",\"Finds position of last occurrence of a string within another string\"],strspn:[\"int strspn(string str, string mask [, start [, len]])\",\"Finds length of initial segment consisting entirely of characters found in mask. If start or/and length is provided works like strspn(substr($s,$start,$len),$good_chars)\"],strstr:[\"string strstr(string haystack, string needle[, bool part])\",\"Finds first occurrence of a string within another\"],strtok:[\"string strtok([string str,] string token)\",\"Tokenize a string\"],strtolower:[\"string strtolower(string str)\",\"Makes a string lowercase\"],strtotime:[\"int strtotime(string time [, int now ])\",\"Convert string representation of date and time to a timestamp\"],strtoupper:[\"string strtoupper(string str)\",\"Makes a string uppercase\"],strtr:[\"string strtr(string str, string from[, string to])\",\"Translates characters in str using given translation tables\"],strval:[\"string strval(mixed var)\",\"Get the string value of a variable\"],substr:[\"string substr(string str, int start [, int length])\",\"Returns part of a string\"],substr_compare:[\"int substr_compare(string main_str, string str, int offset [, int length [, bool case_sensitivity]])\",\"Binary safe optionally case insensitive comparison of 2 strings from an offset, up to length characters\"],substr_count:[\"int substr_count(string haystack, string needle [, int offset [, int length]])\",\"Returns the number of times a substring occurs in the string\"],substr_replace:[\"mixed substr_replace(mixed str, mixed repl, mixed start [, mixed length])\",\"Replaces part of a string with another string\"],sybase_affected_rows:[\"int sybase_affected_rows([resource link_id])\",\"Get number of affected rows in last query\"],sybase_close:[\"bool sybase_close([resource link_id])\",\"Close Sybase connection\"],sybase_connect:[\"int sybase_connect([string host [, string user [, string password [, string charset [, string appname [, bool new]]]]]])\",\"Open Sybase server connection\"],sybase_data_seek:[\"bool sybase_data_seek(resource result, int offset)\",\"Move internal row pointer\"],sybase_deadlock_retry_count:[\"void sybase_deadlock_retry_count(int retry_count)\",\"Sets deadlock retry count\"],sybase_fetch_array:[\"array sybase_fetch_array(resource result)\",\"Fetch row as array\"],sybase_fetch_assoc:[\"array sybase_fetch_assoc(resource result)\",\"Fetch row as array without numberic indices\"],sybase_fetch_field:[\"object sybase_fetch_field(resource result [, int offset])\",\"Get field information\"],sybase_fetch_object:[\"object sybase_fetch_object(resource result [, mixed object])\",\"Fetch row as object\"],sybase_fetch_row:[\"array sybase_fetch_row(resource result)\",\"Get row as enumerated array\"],sybase_field_seek:[\"bool sybase_field_seek(resource result, int offset)\",\"Set field offset\"],sybase_free_result:[\"bool sybase_free_result(resource result)\",\"Free result memory\"],sybase_get_last_message:[\"string sybase_get_last_message(void)\",\"Returns the last message from server (over min_message_severity)\"],sybase_min_client_severity:[\"void sybase_min_client_severity(int severity)\",\"Sets minimum client severity\"],sybase_min_server_severity:[\"void sybase_min_server_severity(int severity)\",\"Sets minimum server severity\"],sybase_num_fields:[\"int sybase_num_fields(resource result)\",\"Get number of fields in result\"],sybase_num_rows:[\"int sybase_num_rows(resource result)\",\"Get number of rows in result\"],sybase_pconnect:[\"int sybase_pconnect([string host [, string user [, string password [, string charset [, string appname]]]]])\",\"Open persistent Sybase connection\"],sybase_query:[\"int sybase_query(string query [, resource link_id])\",\"Send Sybase query\"],sybase_result:[\"string sybase_result(resource result, int row, mixed field)\",\"Get result data\"],sybase_select_db:[\"bool sybase_select_db(string database [, resource link_id])\",\"Select Sybase database\"],sybase_set_message_handler:[\"bool sybase_set_message_handler(mixed error_func [, resource connection])\",\"Set the error handler, to be called when a server message is raised.     If error_func is NULL the handler will be deleted\"],sybase_unbuffered_query:[\"int sybase_unbuffered_query(string query [, resource link_id])\",\"Send Sybase query\"],symlink:[\"int symlink(string target, string link)\",\"Create a symbolic link\"],sys_get_temp_dir:[\"string sys_get_temp_dir()\",\"Returns directory path used for temporary files\"],sys_getloadavg:[\"array sys_getloadavg()\",\"\"],syslog:[\"bool syslog(int priority, string message)\",\"Generate a system log message\"],system:[\"int system(string command [, int &return_value])\",\"Execute an external program and display output\"],tan:[\"float tan(float number)\",\"Returns the tangent of the number in radians\"],tanh:[\"float tanh(float number)\",\"Returns the hyperbolic tangent of the number, defined as sinh(number)/cosh(number)\"],tempnam:[\"string tempnam(string dir, string prefix)\",\"Create a unique filename in a directory\"],textdomain:[\"string textdomain(string domain)\",'Set the textdomain to \"domain\". Returns the current domain'],tidy_access_count:[\"int tidy_access_count()\",\"Returns the Number of Tidy accessibility warnings encountered for specified document.\"],tidy_clean_repair:[\"boolean tidy_clean_repair()\",\"Execute configured cleanup and repair operations on parsed markup\"],tidy_config_count:[\"int tidy_config_count()\",\"Returns the Number of Tidy configuration errors encountered for specified document.\"],tidy_diagnose:[\"boolean tidy_diagnose()\",\"Run configured diagnostics on parsed and repaired markup.\"],tidy_error_count:[\"int tidy_error_count()\",\"Returns the Number of Tidy errors encountered for specified document.\"],tidy_get_body:[\"TidyNode tidy_get_body(resource tidy)\",\"Returns a TidyNode Object starting from the <BODY> tag of the tidy parse tree\"],tidy_get_config:[\"array tidy_get_config()\",\"Get current Tidy configuarion\"],tidy_get_error_buffer:[\"string tidy_get_error_buffer([boolean detailed])\",\"Return warnings and errors which occured parsing the specified document\"],tidy_get_head:[\"TidyNode tidy_get_head()\",\"Returns a TidyNode Object starting from the <HEAD> tag of the tidy parse tree\"],tidy_get_html:[\"TidyNode tidy_get_html()\",\"Returns a TidyNode Object starting from the <HTML> tag of the tidy parse tree\"],tidy_get_html_ver:[\"int tidy_get_html_ver()\",\"Get the Detected HTML version for the specified document.\"],tidy_get_opt_doc:[\"string tidy_get_opt_doc(tidy resource, string optname)\",\"Returns the documentation for the given option name\"],tidy_get_output:[\"string tidy_get_output()\",\"Return a string representing the parsed tidy markup\"],tidy_get_release:[\"string tidy_get_release()\",\"Get release date (version) for Tidy library\"],tidy_get_root:[\"TidyNode tidy_get_root()\",\"Returns a TidyNode Object representing the root of the tidy parse tree\"],tidy_get_status:[\"int tidy_get_status()\",\"Get status of specfied document.\"],tidy_getopt:[\"mixed tidy_getopt(string option)\",\"Returns the value of the specified configuration option for the tidy document.\"],tidy_is_xhtml:[\"boolean tidy_is_xhtml()\",\"Indicates if the document is a XHTML document.\"],tidy_is_xml:[\"boolean tidy_is_xml()\",\"Indicates if the document is a generic (non HTML/XHTML) XML document.\"],tidy_parse_file:[\"boolean tidy_parse_file(string file [, mixed config_options [, string encoding [, bool use_include_path]]])\",\"Parse markup in file or URI\"],tidy_parse_string:[\"bool tidy_parse_string(string input [, mixed config_options [, string encoding]])\",\"Parse a document stored in a string\"],tidy_repair_file:[\"boolean tidy_repair_file(string filename [, mixed config_file [, string encoding [, bool use_include_path]]])\",\"Repair a file using an optionally provided configuration file\"],tidy_repair_string:[\"boolean tidy_repair_string(string data [, mixed config_file [, string encoding]])\",\"Repair a string using an optionally provided configuration file\"],tidy_warning_count:[\"int tidy_warning_count()\",\"Returns the Number of Tidy warnings encountered for specified document.\"],time:[\"int time(void)\",\"Return current UNIX timestamp\"],time_nanosleep:[\"mixed time_nanosleep(long seconds, long nanoseconds)\",\"Delay for a number of seconds and nano seconds\"],time_sleep_until:[\"mixed time_sleep_until(float timestamp)\",\"Make the script sleep until the specified time\"],timezone_abbreviations_list:[\"array timezone_abbreviations_list()\",\"Returns associative array containing dst, offset and the timezone name\"],timezone_identifiers_list:[\"array timezone_identifiers_list([long what[, string country]])\",\"Returns numerically index array with all timezone identifiers.\"],timezone_location_get:[\"array timezone_location_get()\",\"Returns location information for a timezone, including country code, latitude/longitude and comments\"],timezone_name_from_abbr:[\"string timezone_name_from_abbr(string abbr[, long gmtOffset[, long isdst]])\",\"Returns the timezone name from abbrevation\"],timezone_name_get:[\"string timezone_name_get(DateTimeZone object)\",\"Returns the name of the timezone.\"],timezone_offset_get:[\"long timezone_offset_get(DateTimeZone object, DateTime object)\",\"Returns the timezone offset.\"],timezone_open:[\"DateTimeZone timezone_open(string timezone)\",\"Returns new DateTimeZone object\"],timezone_transitions_get:[\"array timezone_transitions_get(DateTimeZone object [, long timestamp_begin [, long timestamp_end ]])\",\"Returns numerically indexed array containing associative array for all transitions in the specified range for the timezone.\"],timezone_version_get:[\"array timezone_version_get()\",\"Returns the Olson database version number.\"],tmpfile:[\"resource tmpfile(void)\",\"Create a temporary file that will be deleted automatically after use\"],token_get_all:[\"array token_get_all(string source)\",\"\"],token_name:[\"string token_name(int type)\",\"\"],touch:[\"bool touch(string filename [, int time [, int atime]])\",\"Set modification time of file\"],trigger_error:[\"void trigger_error(string messsage [, int error_type])\",\"Generates a user-level error/warning/notice message\"],trim:[\"string trim(string str [, string character_mask])\",\"Strips whitespace from the beginning and end of a string\"],uasort:[\"bool uasort(array array_arg, string cmp_function)\",\"Sort an array with a user-defined comparison function and maintain index association\"],ucfirst:[\"string ucfirst(string str)\",\"Make a string's first character lowercase\"],ucwords:[\"string ucwords(string str)\",\"Uppercase the first character of every word in a string\"],uksort:[\"bool uksort(array array_arg, string cmp_function)\",\"Sort an array by keys using a user-defined comparison function\"],umask:[\"int umask([int mask])\",\"Return or change the umask\"],uniqid:[\"string uniqid([string prefix [, bool more_entropy]])\",\"Generates a unique ID\"],unixtojd:[\"int unixtojd([int timestamp])\",\"Convert UNIX timestamp to Julian Day\"],unlink:[\"bool unlink(string filename[, context context])\",\"Delete a file\"],unpack:[\"array unpack(string format, string input)\",\"Unpack binary string into named array elements according to format argument\"],unregister_tick_function:[\"void unregister_tick_function(string function_name)\",\"Unregisters a tick callback function\"],unserialize:[\"mixed unserialize(string variable_representation)\",\"Takes a string representation of variable and recreates it\"],unset:[\"void unset (mixed var [, mixed var])\",\"Unset a given variable\"],urldecode:[\"string urldecode(string str)\",\"Decodes URL-encoded string\"],urlencode:[\"string urlencode(string str)\",\"URL-encodes string\"],usleep:[\"void usleep(int micro_seconds)\",\"Delay for a given number of micro seconds\"],usort:[\"bool usort(array array_arg, string cmp_function)\",\"Sort an array by values using a user-defined comparison function\"],utf8_decode:[\"string utf8_decode(string data)\",\"Converts a UTF-8 encoded string to ISO-8859-1\"],utf8_encode:[\"string utf8_encode(string data)\",\"Encodes an ISO-8859-1 string to UTF-8\"],var_dump:[\"void var_dump(mixed var)\",\"Dumps a string representation of variable to output\"],var_export:[\"mixed var_export(mixed var [, bool return])\",\"Outputs or returns a string representation of a variable\"],variant_abs:[\"mixed variant_abs(mixed left)\",\"Returns the absolute value of a variant\"],variant_add:[\"mixed variant_add(mixed left, mixed right)\",'\"Adds\" two variant values together and returns the result'],variant_and:[\"mixed variant_and(mixed left, mixed right)\",\"performs a bitwise AND operation between two variants and returns the result\"],variant_cast:[\"object variant_cast(object variant, int type)\",\"Convert a variant into a new variant object of another type\"],variant_cat:[\"mixed variant_cat(mixed left, mixed right)\",\"concatenates two variant values together and returns the result\"],variant_cmp:[\"int variant_cmp(mixed left, mixed right [, int lcid [, int flags]])\",\"Compares two variants\"],variant_date_from_timestamp:[\"object variant_date_from_timestamp(int timestamp)\",\"Returns a variant date representation of a unix timestamp\"],variant_date_to_timestamp:[\"int variant_date_to_timestamp(object variant)\",\"Converts a variant date/time value to unix timestamp\"],variant_div:[\"mixed variant_div(mixed left, mixed right)\",\"Returns the result from dividing two variants\"],variant_eqv:[\"mixed variant_eqv(mixed left, mixed right)\",\"Performs a bitwise equivalence on two variants\"],variant_fix:[\"mixed variant_fix(mixed left)\",\"Returns the integer part ? of a variant\"],variant_get_type:[\"int variant_get_type(object variant)\",\"Returns the VT_XXX type code for a variant\"],variant_idiv:[\"mixed variant_idiv(mixed left, mixed right)\",\"Converts variants to integers and then returns the result from dividing them\"],variant_imp:[\"mixed variant_imp(mixed left, mixed right)\",\"Performs a bitwise implication on two variants\"],variant_int:[\"mixed variant_int(mixed left)\",\"Returns the integer portion of a variant\"],variant_mod:[\"mixed variant_mod(mixed left, mixed right)\",\"Divides two variants and returns only the remainder\"],variant_mul:[\"mixed variant_mul(mixed left, mixed right)\",\"multiplies the values of the two variants and returns the result\"],variant_neg:[\"mixed variant_neg(mixed left)\",\"Performs logical negation on a variant\"],variant_not:[\"mixed variant_not(mixed left)\",\"Performs bitwise not negation on a variant\"],variant_or:[\"mixed variant_or(mixed left, mixed right)\",\"Performs a logical disjunction on two variants\"],variant_pow:[\"mixed variant_pow(mixed left, mixed right)\",\"Returns the result of performing the power function with two variants\"],variant_round:[\"mixed variant_round(mixed left, int decimals)\",\"Rounds a variant to the specified number of decimal places\"],variant_set:[\"void variant_set(object variant, mixed value)\",\"Assigns a new value for a variant object\"],variant_set_type:[\"void variant_set_type(object variant, int type)\",'Convert a variant into another type.  Variant is modified \"in-place\"'],variant_sub:[\"mixed variant_sub(mixed left, mixed right)\",\"subtracts the value of the right variant from the left variant value and returns the result\"],variant_xor:[\"mixed variant_xor(mixed left, mixed right)\",\"Performs a logical exclusion on two variants\"],version_compare:[\"int version_compare(string ver1, string ver2 [, string oper])\",'Compares two \"PHP-standardized\" version number strings'],vfprintf:[\"int vfprintf(resource stream, string format, array args)\",\"Output a formatted string into a stream\"],virtual:[\"bool virtual(string filename)\",\"Perform an Apache sub-request\"],vprintf:[\"int vprintf(string format, array args)\",\"Output a formatted string\"],vsprintf:[\"string vsprintf(string format, array args)\",\"Return a formatted string\"],wddx_add_vars:[\"int wddx_add_vars(resource packet_id,  mixed var_names [, mixed ...])\",\"Serializes given variables and adds them to packet given by packet_id\"],wddx_deserialize:[\"mixed wddx_deserialize(mixed packet)\",\"Deserializes given packet and returns a PHP value\"],wddx_packet_end:[\"string wddx_packet_end(resource packet_id)\",\"Ends specified WDDX packet and returns the string containing the packet\"],wddx_packet_start:[\"resource wddx_packet_start([string comment])\",\"Starts a WDDX packet with optional comment and returns the packet id\"],wddx_serialize_value:[\"string wddx_serialize_value(mixed var [, string comment])\",\"Creates a new packet and serializes the given value\"],wddx_serialize_vars:[\"string wddx_serialize_vars(mixed var_name [, mixed ...])\",\"Creates a new packet and serializes given variables into a struct\"],wordwrap:[\"string wordwrap(string str [, int width [, string break [, boolean cut]]])\",\"Wraps buffer to selected number of characters using string break char\"],xml_error_string:[\"string xml_error_string(int code)\",\"Get XML parser error string\"],xml_get_current_byte_index:[\"int xml_get_current_byte_index(resource parser)\",\"Get current byte index for an XML parser\"],xml_get_current_column_number:[\"int xml_get_current_column_number(resource parser)\",\"Get current column number for an XML parser\"],xml_get_current_line_number:[\"int xml_get_current_line_number(resource parser)\",\"Get current line number for an XML parser\"],xml_get_error_code:[\"int xml_get_error_code(resource parser)\",\"Get XML parser error code\"],xml_parse:[\"int xml_parse(resource parser, string data [, int isFinal])\",\"Start parsing an XML document\"],xml_parse_into_struct:[\"int xml_parse_into_struct(resource parser, string data, array &values [, array &index ])\",\"Parsing a XML document\"],xml_parser_create:[\"resource xml_parser_create([string encoding])\",\"Create an XML parser\"],xml_parser_create_ns:[\"resource xml_parser_create_ns([string encoding [, string sep]])\",\"Create an XML parser\"],xml_parser_free:[\"int xml_parser_free(resource parser)\",\"Free an XML parser\"],xml_parser_get_option:[\"int xml_parser_get_option(resource parser, int option)\",\"Get options from an XML parser\"],xml_parser_set_option:[\"int xml_parser_set_option(resource parser, int option, mixed value)\",\"Set options in an XML parser\"],xml_set_character_data_handler:[\"int xml_set_character_data_handler(resource parser, string hdl)\",\"Set up character data handler\"],xml_set_default_handler:[\"int xml_set_default_handler(resource parser, string hdl)\",\"Set up default handler\"],xml_set_element_handler:[\"int xml_set_element_handler(resource parser, string shdl, string ehdl)\",\"Set up start and end element handlers\"],xml_set_end_namespace_decl_handler:[\"int xml_set_end_namespace_decl_handler(resource parser, string hdl)\",\"Set up character data handler\"],xml_set_external_entity_ref_handler:[\"int xml_set_external_entity_ref_handler(resource parser, string hdl)\",\"Set up external entity reference handler\"],xml_set_notation_decl_handler:[\"int xml_set_notation_decl_handler(resource parser, string hdl)\",\"Set up notation declaration handler\"],xml_set_object:[\"int xml_set_object(resource parser, object &obj)\",\"Set up object which should be used for callbacks\"],xml_set_processing_instruction_handler:[\"int xml_set_processing_instruction_handler(resource parser, string hdl)\",\"Set up processing instruction (PI) handler\"],xml_set_start_namespace_decl_handler:[\"int xml_set_start_namespace_decl_handler(resource parser, string hdl)\",\"Set up character data handler\"],xml_set_unparsed_entity_decl_handler:[\"int xml_set_unparsed_entity_decl_handler(resource parser, string hdl)\",\"Set up unparsed entity declaration handler\"],xmlrpc_decode:[\"array xmlrpc_decode(string xml [, string encoding])\",\"Decodes XML into native PHP types\"],xmlrpc_decode_request:[\"array xmlrpc_decode_request(string xml, string& method [, string encoding])\",\"Decodes XML into native PHP types\"],xmlrpc_encode:[\"string xmlrpc_encode(mixed value)\",\"Generates XML for a PHP value\"],xmlrpc_encode_request:[\"string xmlrpc_encode_request(string method, mixed params [, array output_options])\",\"Generates XML for a method request\"],xmlrpc_get_type:[\"string xmlrpc_get_type(mixed value)\",\"Gets xmlrpc type for a PHP value. Especially useful for base64 and datetime strings\"],xmlrpc_is_fault:[\"bool xmlrpc_is_fault(array)\",\"Determines if an array value represents an XMLRPC fault.\"],xmlrpc_parse_method_descriptions:[\"array xmlrpc_parse_method_descriptions(string xml)\",\"Decodes XML into a list of method descriptions\"],xmlrpc_server_add_introspection_data:[\"int xmlrpc_server_add_introspection_data(resource server, array desc)\",\"Adds introspection documentation\"],xmlrpc_server_call_method:[\"mixed xmlrpc_server_call_method(resource server, string xml, mixed user_data [, array output_options])\",\"Parses XML requests and call methods\"],xmlrpc_server_create:[\"resource xmlrpc_server_create(void)\",\"Creates an xmlrpc server\"],xmlrpc_server_destroy:[\"int xmlrpc_server_destroy(resource server)\",\"Destroys server resources\"],xmlrpc_server_register_introspection_callback:[\"bool xmlrpc_server_register_introspection_callback(resource server, string function)\",\"Register a PHP function to generate documentation\"],xmlrpc_server_register_method:[\"bool xmlrpc_server_register_method(resource server, string method_name, string function)\",\"Register a PHP function to handle method matching method_name\"],xmlrpc_set_type:[\"bool xmlrpc_set_type(string value, string type)\",\"Sets xmlrpc type, base64 or datetime, for a PHP string value\"],xmlwriter_end_attribute:[\"bool xmlwriter_end_attribute(resource xmlwriter)\",\"End attribute - returns FALSE on error\"],xmlwriter_end_cdata:[\"bool xmlwriter_end_cdata(resource xmlwriter)\",\"End current CDATA - returns FALSE on error\"],xmlwriter_end_comment:[\"bool xmlwriter_end_comment(resource xmlwriter)\",\"Create end comment - returns FALSE on error\"],xmlwriter_end_document:[\"bool xmlwriter_end_document(resource xmlwriter)\",\"End current document - returns FALSE on error\"],xmlwriter_end_dtd:[\"bool xmlwriter_end_dtd(resource xmlwriter)\",\"End current DTD - returns FALSE on error\"],xmlwriter_end_dtd_attlist:[\"bool xmlwriter_end_dtd_attlist(resource xmlwriter)\",\"End current DTD AttList - returns FALSE on error\"],xmlwriter_end_dtd_element:[\"bool xmlwriter_end_dtd_element(resource xmlwriter)\",\"End current DTD element - returns FALSE on error\"],xmlwriter_end_dtd_entity:[\"bool xmlwriter_end_dtd_entity(resource xmlwriter)\",\"End current DTD Entity - returns FALSE on error\"],xmlwriter_end_element:[\"bool xmlwriter_end_element(resource xmlwriter)\",\"End current element - returns FALSE on error\"],xmlwriter_end_pi:[\"bool xmlwriter_end_pi(resource xmlwriter)\",\"End current PI - returns FALSE on error\"],xmlwriter_flush:[\"mixed xmlwriter_flush(resource xmlwriter [,bool empty])\",\"Output current buffer\"],xmlwriter_full_end_element:[\"bool xmlwriter_full_end_element(resource xmlwriter)\",\"End current element - returns FALSE on error\"],xmlwriter_open_memory:[\"resource xmlwriter_open_memory()\",\"Create new xmlwriter using memory for string output\"],xmlwriter_open_uri:[\"resource xmlwriter_open_uri(resource xmlwriter, string source)\",\"Create new xmlwriter using source uri for output\"],xmlwriter_output_memory:[\"string xmlwriter_output_memory(resource xmlwriter [,bool flush])\",\"Output current buffer as string\"],xmlwriter_set_indent:[\"bool xmlwriter_set_indent(resource xmlwriter, bool indent)\",\"Toggle indentation on/off - returns FALSE on error\"],xmlwriter_set_indent_string:[\"bool xmlwriter_set_indent_string(resource xmlwriter, string indentString)\",\"Set string used for indenting - returns FALSE on error\"],xmlwriter_start_attribute:[\"bool xmlwriter_start_attribute(resource xmlwriter, string name)\",\"Create start attribute - returns FALSE on error\"],xmlwriter_start_attribute_ns:[\"bool xmlwriter_start_attribute_ns(resource xmlwriter, string prefix, string name, string uri)\",\"Create start namespaced attribute - returns FALSE on error\"],xmlwriter_start_cdata:[\"bool xmlwriter_start_cdata(resource xmlwriter)\",\"Create start CDATA tag - returns FALSE on error\"],xmlwriter_start_comment:[\"bool xmlwriter_start_comment(resource xmlwriter)\",\"Create start comment - returns FALSE on error\"],xmlwriter_start_document:[\"bool xmlwriter_start_document(resource xmlwriter, string version, string encoding, string standalone)\",\"Create document tag - returns FALSE on error\"],xmlwriter_start_dtd:[\"bool xmlwriter_start_dtd(resource xmlwriter, string name, string pubid, string sysid)\",\"Create start DTD tag - returns FALSE on error\"],xmlwriter_start_dtd_attlist:[\"bool xmlwriter_start_dtd_attlist(resource xmlwriter, string name)\",\"Create start DTD AttList - returns FALSE on error\"],xmlwriter_start_dtd_element:[\"bool xmlwriter_start_dtd_element(resource xmlwriter, string name)\",\"Create start DTD element - returns FALSE on error\"],xmlwriter_start_dtd_entity:[\"bool xmlwriter_start_dtd_entity(resource xmlwriter, string name, bool isparam)\",\"Create start DTD Entity - returns FALSE on error\"],xmlwriter_start_element:[\"bool xmlwriter_start_element(resource xmlwriter, string name)\",\"Create start element tag - returns FALSE on error\"],xmlwriter_start_element_ns:[\"bool xmlwriter_start_element_ns(resource xmlwriter, string prefix, string name, string uri)\",\"Create start namespaced element tag - returns FALSE on error\"],xmlwriter_start_pi:[\"bool xmlwriter_start_pi(resource xmlwriter, string target)\",\"Create start PI tag - returns FALSE on error\"],xmlwriter_text:[\"bool xmlwriter_text(resource xmlwriter, string content)\",\"Write text - returns FALSE on error\"],xmlwriter_write_attribute:[\"bool xmlwriter_write_attribute(resource xmlwriter, string name, string content)\",\"Write full attribute - returns FALSE on error\"],xmlwriter_write_attribute_ns:[\"bool xmlwriter_write_attribute_ns(resource xmlwriter, string prefix, string name, string uri, string content)\",\"Write full namespaced attribute - returns FALSE on error\"],xmlwriter_write_cdata:[\"bool xmlwriter_write_cdata(resource xmlwriter, string content)\",\"Write full CDATA tag - returns FALSE on error\"],xmlwriter_write_comment:[\"bool xmlwriter_write_comment(resource xmlwriter, string content)\",\"Write full comment tag - returns FALSE on error\"],xmlwriter_write_dtd:[\"bool xmlwriter_write_dtd(resource xmlwriter, string name, string pubid, string sysid, string subset)\",\"Write full DTD tag - returns FALSE on error\"],xmlwriter_write_dtd_attlist:[\"bool xmlwriter_write_dtd_attlist(resource xmlwriter, string name, string content)\",\"Write full DTD AttList tag - returns FALSE on error\"],xmlwriter_write_dtd_element:[\"bool xmlwriter_write_dtd_element(resource xmlwriter, string name, string content)\",\"Write full DTD element tag - returns FALSE on error\"],xmlwriter_write_dtd_entity:[\"bool xmlwriter_write_dtd_entity(resource xmlwriter, string name, string content [, int pe [, string pubid [, string sysid [, string ndataid]]]])\",\"Write full DTD Entity tag - returns FALSE on error\"],xmlwriter_write_element:[\"bool xmlwriter_write_element(resource xmlwriter, string name[, string content])\",\"Write full element tag - returns FALSE on error\"],xmlwriter_write_element_ns:[\"bool xmlwriter_write_element_ns(resource xmlwriter, string prefix, string name, string uri[, string content])\",\"Write full namesapced element tag - returns FALSE on error\"],xmlwriter_write_pi:[\"bool xmlwriter_write_pi(resource xmlwriter, string target, string content)\",\"Write full PI tag - returns FALSE on error\"],xmlwriter_write_raw:[\"bool xmlwriter_write_raw(resource xmlwriter, string content)\",\"Write text - returns FALSE on error\"],xsl_xsltprocessor_get_parameter:[\"string xsl_xsltprocessor_get_parameter(string namespace, string name);\",\"\"],xsl_xsltprocessor_has_exslt_support:[\"bool xsl_xsltprocessor_has_exslt_support();\",\"\"],xsl_xsltprocessor_import_stylesheet:[\"void xsl_xsltprocessor_import_stylesheet(domdocument doc);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html# Since:\"],xsl_xsltprocessor_register_php_functions:[\"void xsl_xsltprocessor_register_php_functions([mixed $restrict]);\",\"\"],xsl_xsltprocessor_remove_parameter:[\"bool xsl_xsltprocessor_remove_parameter(string namespace, string name);\",\"\"],xsl_xsltprocessor_set_parameter:[\"bool xsl_xsltprocessor_set_parameter(string namespace, mixed name [, string value]);\",\"\"],xsl_xsltprocessor_set_profiling:[\"bool xsl_xsltprocessor_set_profiling(string filename) */\",'PHP_FUNCTION(xsl_xsltprocessor_set_profiling) {  zval *id;  xsl_object *intern;  char *filename = NULL;  int filename_len;  DOM_GET_THIS(id);   if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, \"s!\", &filename, &filename_len) == SUCCESS) {   intern = (xsl_object *)zend_object_store_get_object(id TSRMLS_CC);   if (intern->profiling) {    efree(intern->profiling);   }   if (filename != NULL) {    intern->profiling = estrndup(filename,filename_len);   } else {    intern->profiling = NULL;   }   RETURN_TRUE;  } else {   WRONG_PARAM_COUNT;  } } /* }}} end xsl_xsltprocessor_set_profiling'],xsl_xsltprocessor_transform_to_doc:[\"domdocument xsl_xsltprocessor_transform_to_doc(domnode doc);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html# Since:\"],xsl_xsltprocessor_transform_to_uri:[\"int xsl_xsltprocessor_transform_to_uri(domdocument doc, string uri);\",\"\"],xsl_xsltprocessor_transform_to_xml:[\"string xsl_xsltprocessor_transform_to_xml(domdocument doc);\",\"\"],zend_logo_guid:[\"string zend_logo_guid(void)\",\"Return the special ID used to request the Zend logo in phpinfo screens\"],zend_version:[\"string zend_version(void)\",\"Get the version of the Zend Engine\"],zip_close:[\"void zip_close(resource zip)\",\"Close a Zip archive\"],zip_entry_close:[\"void zip_entry_close(resource zip_ent)\",\"Close a zip entry\"],zip_entry_compressedsize:[\"int zip_entry_compressedsize(resource zip_entry)\",\"Return the compressed size of a ZZip entry\"],zip_entry_compressionmethod:[\"string zip_entry_compressionmethod(resource zip_entry)\",\"Return a string containing the compression method used on a particular entry\"],zip_entry_filesize:[\"int zip_entry_filesize(resource zip_entry)\",\"Return the actual filesize of a ZZip entry\"],zip_entry_name:[\"string zip_entry_name(resource zip_entry)\",\"Return the name given a ZZip entry\"],zip_entry_open:[\"bool zip_entry_open(resource zip_dp, resource zip_entry [, string mode])\",\"Open a Zip File, pointed by the resource entry\"],zip_entry_read:[\"mixed zip_entry_read(resource zip_entry [, int len])\",\"Read from an open directory entry\"],zip_open:[\"resource zip_open(string filename)\",\"Create new zip using source uri for output\"],zip_read:[\"resource zip_read(resource zip)\",\"Returns the next file in the archive\"],zlib_get_coding_type:[\"string zlib_get_coding_type(void)\",\"Returns the coding type used for output compression\"]},i={$_COOKIE:{type:\"array\"},$_ENV:{type:\"array\"},$_FILES:{type:\"array\"},$_GET:{type:\"array\"},$_POST:{type:\"array\"},$_REQUEST:{type:\"array\"},$_SERVER:{type:\"array\",value:{DOCUMENT_ROOT:1,GATEWAY_INTERFACE:1,HTTP_ACCEPT:1,HTTP_ACCEPT_CHARSET:1,HTTP_ACCEPT_ENCODING:1,HTTP_ACCEPT_LANGUAGE:1,HTTP_CONNECTION:1,HTTP_HOST:1,HTTP_REFERER:1,HTTP_USER_AGENT:1,PATH_TRANSLATED:1,PHP_SELF:1,QUERY_STRING:1,REMOTE_ADDR:1,REMOTE_PORT:1,REQUEST_METHOD:1,REQUEST_URI:1,SCRIPT_FILENAME:1,SCRIPT_NAME:1,SERVER_ADMIN:1,SERVER_NAME:1,SERVER_PORT:1,SERVER_PROTOCOL:1,SERVER_SIGNATURE:1,SERVER_SOFTWARE:1}},$_SESSION:{type:\"array\"},$GLOBALS:{type:\"array\"}},o=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(i.type===\"identifier\")return this.getFunctionCompletions(e,t,n,r);if(s(i,\"variable\"))return this.getVariableCompletions(e,t,n,r);var o=t.getLine(n.row).substr(0,n.column);return i.type===\"string\"&&/(\\$[\\w]*)\\[[\"']([^'\"]*)$/i.test(o)?this.getArrayKeyCompletions(e,t,n,r):[]},this.getFunctionCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\"($0)\",meta:\"php function\",score:Number.MAX_VALUE,docHTML:r[e][1]}})},this.getVariableCompletions=function(e,t,n,r){var s=Object.keys(i);return s.map(function(e){return{caption:e,value:e,meta:\"php variable\",score:Number.MAX_VALUE}})},this.getArrayKeyCompletions=function(e,t,n,r){var s=t.getLine(n.row).substr(0,n.column),o=s.match(/(\\$[\\w]*)\\[[\"']([^'\"]*)$/i)[1];if(!i[o])return[];var u=[];return i[o].type===\"array\"&&i[o].value&&(u=Object.keys(i[o].value)),u.map(function(e){return{caption:e,value:e,meta:\"php array key\",score:Number.MAX_VALUE}})}}).call(o.prototype),t.PhpCompletions=o}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/php\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/php_highlight_rules\",\"ace/mode/php_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/php_completions\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/unicode\",\"ace/mode/html\",\"ace/mode/javascript\",\"ace/mode/css\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./php_highlight_rules\").PhpHighlightRules,o=e(\"./php_highlight_rules\").PhpLangHighlightRules,u=e(\"./matching_brace_outdent\").MatchingBraceOutdent,a=e(\"../range\").Range,f=e(\"../worker/worker_client\").WorkerClient,l=e(\"./php_completions\").PhpCompletions,c=e(\"./behaviour/cstyle\").CstyleBehaviour,h=e(\"./folding/cstyle\").FoldMode,p=e(\"../unicode\"),d=e(\"./html\").Mode,v=e(\"./javascript\").Mode,m=e(\"./css\").Mode,g=function(e){this.HighlightRules=o,this.$outdent=new u,this.$behaviour=new c,this.$completer=new l,this.foldingRules=new h};r.inherits(g,i),function(){this.tokenRe=new RegExp(\"^[\"+p.packages.L+p.packages.Mn+p.packages.Mc+p.packages.Nd+p.packages.Pc+\"_]+\",\"g\"),this.nonTokenRe=new RegExp(\"^(?:[^\"+p.packages.L+p.packages.Mn+p.packages.Mc+p.packages.Nd+p.packages.Pc+\"_]|\\\\s])+\",\"g\"),this.lineCommentStart=[\"//\",\"#\"],this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[:]\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o!=\"doc-start\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.$id=\"ace/mode/php-inline\"}.call(g.prototype);var y=function(e){if(e&&e.inline){var t=new g;return t.createWorker=this.createWorker,t.inlinePhp=!0,t}d.call(this),this.HighlightRules=s,this.createModeDelegates({\"js-\":v,\"css-\":m,\"php-\":g}),this.foldingRules.subModes[\"php-\"]=new h};r.inherits(y,d),function(){this.createWorker=function(e){var t=new f([\"ace\"],\"ace/mode/php_worker\",\"PhpWorker\");return t.attachToDocument(e.getDocument()),this.inlinePhp&&t.call(\"setOptions\",[{inline:!0}]),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/php\"}.call(y.prototype),t.Mode=y})"
  },
  {
    "path": "lib/src-min-noconflict/mode-plain_text.js",
    "content": "ace.define(\"ace/mode/plain_text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./behaviour\").Behaviour,u=function(){this.HighlightRules=s,this.$behaviour=new o};r.inherits(u,i),function(){this.type=\"text\",this.getNextLineIndent=function(e,t,n){return\"\"},this.$id=\"ace/mode/plain_text\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-powershell.js",
    "content": "ace.define(\"ace/mode/powershell_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"begin|break|catch|continue|data|do|dynamicparam|else|elseif|end|exit|filter|finally|for|foreach|from|function|if|in|inlinescript|hidden|parallel|param|process|return|sequence|switch|throw|trap|try|until|while|workflow\",t=\"Get-AppBackgroundTask|Start-AppBackgroundTask|Unregister-AppBackgroundTask|Disable-AppBackgroundTaskDiagnosticLog|Enable-AppBackgroundTaskDiagnosticLog|Set-AppBackgroundTaskResourcePolicy|Get-AppLockerFileInformation|Get-AppLockerPolicy|New-AppLockerPolicy|Set-AppLockerPolicy|Test-AppLockerPolicy|Get-AppxLastError|Get-AppxLog|Add-AppxPackage|Add-AppxVolume|Dismount-AppxVolume|Get-AppxDefaultVolume|Get-AppxPackage|Get-AppxPackageManifest|Get-AppxVolume|Mount-AppxVolume|Move-AppxPackage|Remove-AppxPackage|Remove-AppxVolume|Set-AppxDefaultVolume|Clear-AssignedAccess|Get-AssignedAccess|Set-AssignedAccess|Add-BitLockerKeyProtector|Backup-BitLockerKeyProtector|Clear-BitLockerAutoUnlock|Disable-BitLocker|Disable-BitLockerAutoUnlock|Enable-BitLocker|Enable-BitLockerAutoUnlock|Get-BitLockerVolume|Lock-BitLocker|Remove-BitLockerKeyProtector|Resume-BitLocker|Suspend-BitLocker|Unlock-BitLocker|Add-BitsFile|Complete-BitsTransfer|Get-BitsTransfer|Remove-BitsTransfer|Resume-BitsTransfer|Set-BitsTransfer|Start-BitsTransfer|Suspend-BitsTransfer|Add-BCDataCacheExtension|Clear-BCCache|Disable-BC|Disable-BCDowngrading|Disable-BCServeOnBattery|Enable-BCDistributed|Enable-BCDowngrading|Enable-BCHostedClient|Enable-BCHostedServer|Enable-BCLocal|Enable-BCServeOnBattery|Export-BCCachePackage|Export-BCSecretKey|Get-BCClientConfiguration|Get-BCContentServerConfiguration|Get-BCDataCache|Get-BCDataCacheExtension|Get-BCHashCache|Get-BCHostedCacheServerConfiguration|Get-BCNetworkConfiguration|Get-BCStatus|Import-BCCachePackage|Import-BCSecretKey|Publish-BCFileContent|Publish-BCWebContent|Remove-BCDataCacheExtension|Reset-BC|Set-BCAuthentication|Set-BCCache|Set-BCDataCacheEntryMaxAge|Set-BCMinSMBLatency|Set-BCSecretKey|Export-BinaryMiLog|Get-CimAssociatedInstance|Get-CimClass|Get-CimInstance|Get-CimSession|Import-BinaryMiLog|Invoke-CimMethod|New-CimInstance|New-CimSession|New-CimSessionOption|Register-CimIndicationEvent|Remove-CimInstance|Remove-CimSession|Set-CimInstance|ConvertFrom-CIPolicy|Add-SignerRule|Edit-CIPolicyRule|Get-CIPolicy|Get-CIPolicyInfo|Get-SystemDriver|Merge-CIPolicy|New-CIPolicy|New-CIPolicyRule|Remove-CIPolicyRule|Set-CIPolicyVersion|Set-HVCIOptions|Set-RuleOption|Add-MpPreference|Get-MpComputerStatus|Get-MpPreference|Get-MpThreat|Get-MpThreatCatalog|Get-MpThreatDetection|Remove-MpPreference|Remove-MpThreat|Set-MpPreference|Start-MpScan|Start-MpWDOScan|Update-MpSignature|Disable-DAManualEntryPointSelection|Enable-DAManualEntryPointSelection|Get-DAClientExperienceConfiguration|Get-DAEntryPointTableItem|New-DAEntryPointTableItem|Remove-DAEntryPointTableItem|Rename-DAEntryPointTableItem|Reset-DAClientExperienceConfiguration|Reset-DAEntryPointTableItem|Set-DAClientExperienceConfiguration|Set-DAEntryPointTableItem|Add-ProvisionedAppxPackage|Apply-WindowsUnattend|Get-ProvisionedAppxPackage|Remove-ProvisionedAppxPackage|Add-AppxProvisionedPackage|Add-WindowsCapability|Add-WindowsDriver|Add-WindowsImage|Add-WindowsPackage|Clear-WindowsCorruptMountPoint|Disable-WindowsOptionalFeature|Dismount-WindowsImage|Enable-WindowsOptionalFeature|Expand-WindowsCustomDataImage|Expand-WindowsImage|Export-WindowsDriver|Export-WindowsImage|Get-AppxProvisionedPackage|Get-WIMBootEntry|Get-WindowsCapability|Get-WindowsDriver|Get-WindowsEdition|Get-WindowsImage|Get-WindowsImageContent|Get-WindowsOptionalFeature|Get-WindowsPackage|Mount-WindowsImage|New-WindowsCustomImage|New-WindowsImage|Optimize-WindowsImage|Remove-AppxProvisionedPackage|Remove-WindowsCapability|Remove-WindowsDriver|Remove-WindowsImage|Remove-WindowsPackage|Repair-WindowsImage|Save-WindowsImage|Set-AppXProvisionedDataFile|Set-WindowsEdition|Set-WindowsProductKey|Split-WindowsImage|Update-WIMBootEntry|Use-WindowsUnattend|Add-DnsClientNrptRule|Clear-DnsClientCache|Get-DnsClient|Get-DnsClientCache|Get-DnsClientGlobalSetting|Get-DnsClientNrptGlobal|Get-DnsClientNrptPolicy|Get-DnsClientNrptRule|Get-DnsClientServerAddress|Register-DnsClient|Remove-DnsClientNrptRule|Set-DnsClient|Set-DnsClientGlobalSetting|Set-DnsClientNrptGlobal|Set-DnsClientNrptRule|Set-DnsClientServerAddress|Resolve-DnsName|Add-EtwTraceProvider|Get-AutologgerConfig|Get-EtwTraceProvider|Get-EtwTraceSession|New-AutologgerConfig|New-EtwTraceSession|Remove-AutologgerConfig|Remove-EtwTraceProvider|Remove-EtwTraceSession|Send-EtwTraceSession|Set-AutologgerConfig|Set-EtwTraceProvider|Set-EtwTraceSession|Get-WinAcceptLanguageFromLanguageListOptOut|Get-WinCultureFromLanguageListOptOut|Get-WinDefaultInputMethodOverride|Get-WinHomeLocation|Get-WinLanguageBarOption|Get-WinSystemLocale|Get-WinUILanguageOverride|Get-WinUserLanguageList|New-WinUserLanguageList|Set-Culture|Set-WinAcceptLanguageFromLanguageListOptOut|Set-WinCultureFromLanguageListOptOut|Set-WinDefaultInputMethodOverride|Set-WinHomeLocation|Set-WinLanguageBarOption|Set-WinSystemLocale|Set-WinUILanguageOverride|Set-WinUserLanguageList|Connect-IscsiTarget|Disconnect-IscsiTarget|Get-IscsiConnection|Get-IscsiSession|Get-IscsiTarget|Get-IscsiTargetPortal|New-IscsiTargetPortal|Register-IscsiSession|Remove-IscsiTargetPortal|Set-IscsiChapSecret|Unregister-IscsiSession|Update-IscsiTarget|Update-IscsiTargetPortal|Get-IseSnippet|Import-IseSnippet|New-IseSnippet|Add-KdsRootKey|Clear-KdsCache|Get-KdsConfiguration|Get-KdsRootKey|Set-KdsConfiguration|Test-KdsRootKey|Compress-Archive|Expand-Archive|Export-Counter|Get-Counter|Get-WinEvent|Import-Counter|New-WinEvent|Start-Transcript|Stop-Transcript|Add-Computer|Add-Content|Checkpoint-Computer|Clear-Content|Clear-EventLog|Clear-Item|Clear-ItemProperty|Clear-RecycleBin|Complete-Transaction|Convert-Path|Copy-Item|Copy-ItemProperty|Debug-Process|Disable-ComputerRestore|Enable-ComputerRestore|Get-ChildItem|Get-Clipboard|Get-ComputerRestorePoint|Get-Content|Get-ControlPanelItem|Get-EventLog|Get-HotFix|Get-Item|Get-ItemProperty|Get-ItemPropertyValue|Get-Location|Get-Process|Get-PSDrive|Get-PSProvider|Get-Service|Get-Transaction|Get-WmiObject|Invoke-Item|Invoke-WmiMethod|Join-Path|Limit-EventLog|Move-Item|Move-ItemProperty|New-EventLog|New-Item|New-ItemProperty|New-PSDrive|New-Service|New-WebServiceProxy|Pop-Location|Push-Location|Register-WmiEvent|Remove-Computer|Remove-EventLog|Remove-Item|Remove-ItemProperty|Remove-PSDrive|Remove-WmiObject|Rename-Computer|Rename-Item|Rename-ItemProperty|Reset-ComputerMachinePassword|Resolve-Path|Restart-Computer|Restart-Service|Restore-Computer|Resume-Service|Set-Clipboard|Set-Content|Set-Item|Set-ItemProperty|Set-Location|Set-Service|Set-WmiInstance|Show-ControlPanelItem|Show-EventLog|Split-Path|Start-Process|Start-Service|Start-Transaction|Stop-Computer|Stop-Process|Stop-Service|Suspend-Service|Test-ComputerSecureChannel|Test-Connection|Test-Path|Undo-Transaction|Use-Transaction|Wait-Process|Write-EventLog|Export-ODataEndpointProxy|ConvertFrom-SecureString|ConvertTo-SecureString|Get-Acl|Get-AuthenticodeSignature|Get-CmsMessage|Get-Credential|Get-ExecutionPolicy|Get-PfxCertificate|Protect-CmsMessage|Set-Acl|Set-AuthenticodeSignature|Set-ExecutionPolicy|Unprotect-CmsMessage|ConvertFrom-SddlString|Format-Hex|Get-FileHash|Import-PowerShellDataFile|New-Guid|New-TemporaryFile|Add-Member|Add-Type|Clear-Variable|Compare-Object|ConvertFrom-Csv|ConvertFrom-Json|ConvertFrom-String|ConvertFrom-StringData|Convert-String|ConvertTo-Csv|ConvertTo-Html|ConvertTo-Json|ConvertTo-Xml|Debug-Runspace|Disable-PSBreakpoint|Disable-RunspaceDebug|Enable-PSBreakpoint|Enable-RunspaceDebug|Export-Alias|Export-Clixml|Export-Csv|Export-FormatData|Export-PSSession|Format-Custom|Format-List|Format-Table|Format-Wide|Get-Alias|Get-Culture|Get-Date|Get-Event|Get-EventSubscriber|Get-FormatData|Get-Host|Get-Member|Get-PSBreakpoint|Get-PSCallStack|Get-Random|Get-Runspace|Get-RunspaceDebug|Get-TraceSource|Get-TypeData|Get-UICulture|Get-Unique|Get-Variable|Group-Object|Import-Alias|Import-Clixml|Import-Csv|Import-LocalizedData|Import-PSSession|Invoke-Expression|Invoke-RestMethod|Invoke-WebRequest|Measure-Command|Measure-Object|New-Alias|New-Event|New-Object|New-TimeSpan|New-Variable|Out-File|Out-GridView|Out-Printer|Out-String|Read-Host|Register-EngineEvent|Register-ObjectEvent|Remove-Event|Remove-PSBreakpoint|Remove-TypeData|Remove-Variable|Select-Object|Select-String|Select-Xml|Send-MailMessage|Set-Alias|Set-Date|Set-PSBreakpoint|Set-TraceSource|Set-Variable|Show-Command|Sort-Object|Start-Sleep|Tee-Object|Trace-Command|Unblock-File|Unregister-Event|Update-FormatData|Update-List|Update-TypeData|Wait-Debugger|Wait-Event|Write-Debug|Write-Error|Write-Host|Write-Information|Write-Output|Write-Progress|Write-Verbose|Write-Warning|Connect-WSMan|Disable-WSManCredSSP|Disconnect-WSMan|Enable-WSManCredSSP|Get-WSManCredSSP|Get-WSManInstance|Invoke-WSManAction|New-WSManInstance|New-WSManSessionOption|Remove-WSManInstance|Set-WSManInstance|Set-WSManQuickConfig|Test-WSMan|Debug-MMAppPrelaunch|Disable-MMAgent|Enable-MMAgent|Get-MMAgent|Set-MMAgent|Add-DtcClusterTMMapping|Get-Dtc|Get-DtcAdvancedHostSetting|Get-DtcAdvancedSetting|Get-DtcClusterDefault|Get-DtcClusterTMMapping|Get-DtcDefault|Get-DtcLog|Get-DtcNetworkSetting|Get-DtcTransaction|Get-DtcTransactionsStatistics|Get-DtcTransactionsTraceSession|Get-DtcTransactionsTraceSetting|Install-Dtc|Remove-DtcClusterTMMapping|Reset-DtcLog|Set-DtcAdvancedHostSetting|Set-DtcAdvancedSetting|Set-DtcClusterDefault|Set-DtcClusterTMMapping|Set-DtcDefault|Set-DtcLog|Set-DtcNetworkSetting|Set-DtcTransaction|Set-DtcTransactionsTraceSession|Set-DtcTransactionsTraceSetting|Start-Dtc|Start-DtcTransactionsTraceSession|Stop-Dtc|Stop-DtcTransactionsTraceSession|Test-Dtc|Uninstall-Dtc|Write-DtcTransactionsTraceSession|Complete-DtcDiagnosticTransaction|Join-DtcDiagnosticResourceManager|New-DtcDiagnosticTransaction|Receive-DtcDiagnosticTransaction|Send-DtcDiagnosticTransaction|Start-DtcDiagnosticResourceManager|Stop-DtcDiagnosticResourceManager|Undo-DtcDiagnosticTransaction|Disable-NetAdapter|Disable-NetAdapterBinding|Disable-NetAdapterChecksumOffload|Disable-NetAdapterEncapsulatedPacketTaskOffload|Disable-NetAdapterIPsecOffload|Disable-NetAdapterLso|Disable-NetAdapterPacketDirect|Disable-NetAdapterPowerManagement|Disable-NetAdapterQos|Disable-NetAdapterRdma|Disable-NetAdapterRsc|Disable-NetAdapterRss|Disable-NetAdapterSriov|Disable-NetAdapterVmq|Enable-NetAdapter|Enable-NetAdapterBinding|Enable-NetAdapterChecksumOffload|Enable-NetAdapterEncapsulatedPacketTaskOffload|Enable-NetAdapterIPsecOffload|Enable-NetAdapterLso|Enable-NetAdapterPacketDirect|Enable-NetAdapterPowerManagement|Enable-NetAdapterQos|Enable-NetAdapterRdma|Enable-NetAdapterRsc|Enable-NetAdapterRss|Enable-NetAdapterSriov|Enable-NetAdapterVmq|Get-NetAdapter|Get-NetAdapterAdvancedProperty|Get-NetAdapterBinding|Get-NetAdapterChecksumOffload|Get-NetAdapterEncapsulatedPacketTaskOffload|Get-NetAdapterHardwareInfo|Get-NetAdapterIPsecOffload|Get-NetAdapterLso|Get-NetAdapterPacketDirect|Get-NetAdapterPowerManagement|Get-NetAdapterQos|Get-NetAdapterRdma|Get-NetAdapterRsc|Get-NetAdapterRss|Get-NetAdapterSriov|Get-NetAdapterSriovVf|Get-NetAdapterStatistics|Get-NetAdapterVmq|Get-NetAdapterVmqQueue|Get-NetAdapterVPort|New-NetAdapterAdvancedProperty|Remove-NetAdapterAdvancedProperty|Rename-NetAdapter|Reset-NetAdapterAdvancedProperty|Restart-NetAdapter|Set-NetAdapter|Set-NetAdapterAdvancedProperty|Set-NetAdapterBinding|Set-NetAdapterChecksumOffload|Set-NetAdapterEncapsulatedPacketTaskOffload|Set-NetAdapterIPsecOffload|Set-NetAdapterLso|Set-NetAdapterPacketDirect|Set-NetAdapterPowerManagement|Set-NetAdapterQos|Set-NetAdapterRdma|Set-NetAdapterRsc|Set-NetAdapterRss|Set-NetAdapterSriov|Set-NetAdapterVmq|Get-NetConnectionProfile|Set-NetConnectionProfile|Add-NetEventNetworkAdapter|Add-NetEventPacketCaptureProvider|Add-NetEventProvider|Add-NetEventVmNetworkAdapter|Add-NetEventVmSwitch|Add-NetEventWFPCaptureProvider|Get-NetEventNetworkAdapter|Get-NetEventPacketCaptureProvider|Get-NetEventProvider|Get-NetEventSession|Get-NetEventVmNetworkAdapter|Get-NetEventVmSwitch|Get-NetEventWFPCaptureProvider|New-NetEventSession|Remove-NetEventNetworkAdapter|Remove-NetEventPacketCaptureProvider|Remove-NetEventProvider|Remove-NetEventSession|Remove-NetEventVmNetworkAdapter|Remove-NetEventVmSwitch|Remove-NetEventWFPCaptureProvider|Set-NetEventPacketCaptureProvider|Set-NetEventProvider|Set-NetEventSession|Set-NetEventWFPCaptureProvider|Start-NetEventSession|Stop-NetEventSession|Add-NetLbfoTeamMember|Add-NetLbfoTeamNic|Get-NetLbfoTeam|Get-NetLbfoTeamMember|Get-NetLbfoTeamNic|New-NetLbfoTeam|Remove-NetLbfoTeam|Remove-NetLbfoTeamMember|Remove-NetLbfoTeamNic|Rename-NetLbfoTeam|Set-NetLbfoTeam|Set-NetLbfoTeamMember|Set-NetLbfoTeamNic|Add-NetNatExternalAddress|Add-NetNatStaticMapping|Get-NetNat|Get-NetNatExternalAddress|Get-NetNatGlobal|Get-NetNatSession|Get-NetNatStaticMapping|New-NetNat|Remove-NetNat|Remove-NetNatExternalAddress|Remove-NetNatStaticMapping|Set-NetNat|Set-NetNatGlobal|Get-NetQosPolicy|New-NetQosPolicy|Remove-NetQosPolicy|Set-NetQosPolicy|Copy-NetFirewallRule|Copy-NetIPsecMainModeCryptoSet|Copy-NetIPsecMainModeRule|Copy-NetIPsecPhase1AuthSet|Copy-NetIPsecPhase2AuthSet|Copy-NetIPsecQuickModeCryptoSet|Copy-NetIPsecRule|Disable-NetFirewallRule|Disable-NetIPsecMainModeRule|Disable-NetIPsecRule|Enable-NetFirewallRule|Enable-NetIPsecMainModeRule|Enable-NetIPsecRule|Find-NetIPsecRule|Get-NetFirewallAddressFilter|Get-NetFirewallApplicationFilter|Get-NetFirewallInterfaceFilter|Get-NetFirewallInterfaceTypeFilter|Get-NetFirewallPortFilter|Get-NetFirewallProfile|Get-NetFirewallRule|Get-NetFirewallSecurityFilter|Get-NetFirewallServiceFilter|Get-NetFirewallSetting|Get-NetIPsecDospSetting|Get-NetIPsecMainModeCryptoSet|Get-NetIPsecMainModeRule|Get-NetIPsecMainModeSA|Get-NetIPsecPhase1AuthSet|Get-NetIPsecPhase2AuthSet|Get-NetIPsecQuickModeCryptoSet|Get-NetIPsecQuickModeSA|Get-NetIPsecRule|New-NetFirewallRule|New-NetIPsecDospSetting|New-NetIPsecMainModeCryptoSet|New-NetIPsecMainModeRule|New-NetIPsecPhase1AuthSet|New-NetIPsecPhase2AuthSet|New-NetIPsecQuickModeCryptoSet|New-NetIPsecRule|Open-NetGPO|Remove-NetFirewallRule|Remove-NetIPsecDospSetting|Remove-NetIPsecMainModeCryptoSet|Remove-NetIPsecMainModeRule|Remove-NetIPsecMainModeSA|Remove-NetIPsecPhase1AuthSet|Remove-NetIPsecPhase2AuthSet|Remove-NetIPsecQuickModeCryptoSet|Remove-NetIPsecQuickModeSA|Remove-NetIPsecRule|Rename-NetFirewallRule|Rename-NetIPsecMainModeCryptoSet|Rename-NetIPsecMainModeRule|Rename-NetIPsecPhase1AuthSet|Rename-NetIPsecPhase2AuthSet|Rename-NetIPsecQuickModeCryptoSet|Rename-NetIPsecRule|Save-NetGPO|Set-NetFirewallAddressFilter|Set-NetFirewallApplicationFilter|Set-NetFirewallInterfaceFilter|Set-NetFirewallInterfaceTypeFilter|Set-NetFirewallPortFilter|Set-NetFirewallProfile|Set-NetFirewallRule|Set-NetFirewallSecurityFilter|Set-NetFirewallServiceFilter|Set-NetFirewallSetting|Set-NetIPsecDospSetting|Set-NetIPsecMainModeCryptoSet|Set-NetIPsecMainModeRule|Set-NetIPsecPhase1AuthSet|Set-NetIPsecPhase2AuthSet|Set-NetIPsecQuickModeCryptoSet|Set-NetIPsecRule|Show-NetFirewallRule|Show-NetIPsecRule|Sync-NetIPsecRule|Update-NetIPsecRule|Get-DAPolicyChange|New-NetIPsecAuthProposal|New-NetIPsecMainModeCryptoProposal|New-NetIPsecQuickModeCryptoProposal|Add-NetSwitchTeamMember|Get-NetSwitchTeam|Get-NetSwitchTeamMember|New-NetSwitchTeam|Remove-NetSwitchTeam|Remove-NetSwitchTeamMember|Rename-NetSwitchTeam|Find-NetRoute|Get-NetCompartment|Get-NetIPAddress|Get-NetIPConfiguration|Get-NetIPInterface|Get-NetIPv4Protocol|Get-NetIPv6Protocol|Get-NetNeighbor|Get-NetOffloadGlobalSetting|Get-NetPrefixPolicy|Get-NetRoute|Get-NetTCPConnection|Get-NetTCPSetting|Get-NetTransportFilter|Get-NetUDPEndpoint|Get-NetUDPSetting|New-NetIPAddress|New-NetNeighbor|New-NetRoute|New-NetTransportFilter|Remove-NetIPAddress|Remove-NetNeighbor|Remove-NetRoute|Remove-NetTransportFilter|Set-NetIPAddress|Set-NetIPInterface|Set-NetIPv4Protocol|Set-NetIPv6Protocol|Set-NetNeighbor|Set-NetOffloadGlobalSetting|Set-NetRoute|Set-NetTCPSetting|Set-NetUDPSetting|Test-NetConnection|Get-DAConnectionStatus|Get-NCSIPolicyConfiguration|Reset-NCSIPolicyConfiguration|Set-NCSIPolicyConfiguration|Disable-NetworkSwitchEthernetPort|Disable-NetworkSwitchFeature|Disable-NetworkSwitchVlan|Enable-NetworkSwitchEthernetPort|Enable-NetworkSwitchFeature|Enable-NetworkSwitchVlan|Get-NetworkSwitchEthernetPort|Get-NetworkSwitchFeature|Get-NetworkSwitchGlobalData|Get-NetworkSwitchVlan|New-NetworkSwitchVlan|Remove-NetworkSwitchEthernetPortIPAddress|Remove-NetworkSwitchVlan|Restore-NetworkSwitchConfiguration|Save-NetworkSwitchConfiguration|Set-NetworkSwitchEthernetPortIPAddress|Set-NetworkSwitchPortMode|Set-NetworkSwitchPortProperty|Set-NetworkSwitchVlanProperty|Add-NetIPHttpsCertBinding|Disable-NetDnsTransitionConfiguration|Disable-NetIPHttpsProfile|Disable-NetNatTransitionConfiguration|Enable-NetDnsTransitionConfiguration|Enable-NetIPHttpsProfile|Enable-NetNatTransitionConfiguration|Get-Net6to4Configuration|Get-NetDnsTransitionConfiguration|Get-NetDnsTransitionMonitoring|Get-NetIPHttpsConfiguration|Get-NetIPHttpsState|Get-NetIsatapConfiguration|Get-NetNatTransitionConfiguration|Get-NetNatTransitionMonitoring|Get-NetTeredoConfiguration|Get-NetTeredoState|New-NetIPHttpsConfiguration|New-NetNatTransitionConfiguration|Remove-NetIPHttpsCertBinding|Remove-NetIPHttpsConfiguration|Remove-NetNatTransitionConfiguration|Rename-NetIPHttpsConfiguration|Reset-Net6to4Configuration|Reset-NetDnsTransitionConfiguration|Reset-NetIPHttpsConfiguration|Reset-NetIsatapConfiguration|Reset-NetTeredoConfiguration|Set-Net6to4Configuration|Set-NetDnsTransitionConfiguration|Set-NetIPHttpsConfiguration|Set-NetIsatapConfiguration|Set-NetNatTransitionConfiguration|Set-NetTeredoConfiguration|Find-Package|Find-PackageProvider|Get-Package|Get-PackageProvider|Get-PackageSource|Import-PackageProvider|Install-Package|Install-PackageProvider|Register-PackageSource|Save-Package|Set-PackageSource|Uninstall-Package|Unregister-PackageSource|Clear-PcsvDeviceLog|Get-PcsvDevice|Get-PcsvDeviceLog|Restart-PcsvDevice|Set-PcsvDeviceBootConfiguration|Set-PcsvDeviceNetworkConfiguration|Set-PcsvDeviceUserPassword|Start-PcsvDevice|Stop-PcsvDevice|AfterAll|AfterEach|Assert-MockCalled|Assert-VerifiableMocks|BeforeAll|BeforeEach|Context|Describe|Get-MockDynamicParameters|Get-TestDriveItem|In|InModuleScope|Invoke-Mock|Invoke-Pester|It|Mock|New-Fixture|Set-DynamicParameterVariables|Setup|Should|Add-CertificateEnrollmentPolicyServer|Export-Certificate|Export-PfxCertificate|Get-Certificate|Get-CertificateAutoEnrollmentPolicy|Get-CertificateEnrollmentPolicyServer|Get-CertificateNotificationTask|Get-PfxData|Import-Certificate|Import-PfxCertificate|New-CertificateNotificationTask|New-SelfSignedCertificate|Remove-CertificateEnrollmentPolicyServer|Remove-CertificateNotificationTask|Set-CertificateAutoEnrollmentPolicy|Switch-Certificate|Test-Certificate|Disable-PnpDevice|Enable-PnpDevice|Get-PnpDevice|Get-PnpDeviceProperty|Find-DscResource|Find-Module|Find-Script|Get-InstalledModule|Get-InstalledScript|Get-PSRepository|Install-Module|Install-Script|New-ScriptFileInfo|Publish-Module|Publish-Script|Register-PSRepository|Save-Module|Save-Script|Set-PSRepository|Test-ScriptFileInfo|Uninstall-Module|Uninstall-Script|Unregister-PSRepository|Update-Module|Update-ModuleManifest|Update-Script|Update-ScriptFileInfo|Add-Printer|Add-PrinterDriver|Add-PrinterPort|Get-PrintConfiguration|Get-Printer|Get-PrinterDriver|Get-PrinterPort|Get-PrinterProperty|Get-PrintJob|Read-PrinterNfcTag|Remove-Printer|Remove-PrinterDriver|Remove-PrinterPort|Remove-PrintJob|Rename-Printer|Restart-PrintJob|Resume-PrintJob|Set-PrintConfiguration|Set-Printer|Set-PrinterProperty|Suspend-PrintJob|Write-PrinterNfcTag|Configuration|Disable-DscDebug|Enable-DscDebug|Get-DscConfiguration|Get-DscConfigurationStatus|Get-DscLocalConfigurationManager|Get-DscResource|New-DscChecksum|Remove-DscConfigurationDocument|Restore-DscConfiguration|Stop-DscConfiguration|Invoke-DscResource|Publish-DscConfiguration|Set-DscLocalConfigurationManager|Start-DscConfiguration|Test-DscConfiguration|Update-DscConfiguration|Disable-PSTrace|Disable-PSWSManCombinedTrace|Disable-WSManTrace|Enable-PSTrace|Enable-PSWSManCombinedTrace|Enable-WSManTrace|Get-LogProperties|Set-LogProperties|Start-Trace|Stop-Trace|PSConsoleHostReadline|Get-PSReadlineKeyHandler|Get-PSReadlineOption|Remove-PSReadlineKeyHandler|Set-PSReadlineKeyHandler|Set-PSReadlineOption|Add-JobTrigger|Disable-JobTrigger|Disable-ScheduledJob|Enable-JobTrigger|Enable-ScheduledJob|Get-JobTrigger|Get-ScheduledJob|Get-ScheduledJobOption|New-JobTrigger|New-ScheduledJobOption|Register-ScheduledJob|Remove-JobTrigger|Set-JobTrigger|Set-ScheduledJob|Set-ScheduledJobOption|Unregister-ScheduledJob|New-PSWorkflowSession|New-PSWorkflowExecutionOption|Invoke-AsWorkflow|Disable-ScheduledTask|Enable-ScheduledTask|Export-ScheduledTask|Get-ClusteredScheduledTask|Get-ScheduledTask|Get-ScheduledTaskInfo|New-ScheduledTask|New-ScheduledTaskAction|New-ScheduledTaskPrincipal|New-ScheduledTaskSettingsSet|New-ScheduledTaskTrigger|Register-ClusteredScheduledTask|Register-ScheduledTask|Set-ClusteredScheduledTask|Set-ScheduledTask|Start-ScheduledTask|Stop-ScheduledTask|Unregister-ClusteredScheduledTask|Unregister-ScheduledTask|Confirm-SecureBootUEFI|Format-SecureBootUEFI|Get-SecureBootPolicy|Get-SecureBootUEFI|Set-SecureBootUEFI|Block-SmbShareAccess|Close-SmbOpenFile|Close-SmbSession|Disable-SmbDelegation|Enable-SmbDelegation|Get-SmbBandwidthLimit|Get-SmbClientConfiguration|Get-SmbClientNetworkInterface|Get-SmbConnection|Get-SmbDelegation|Get-SmbMapping|Get-SmbMultichannelConnection|Get-SmbMultichannelConstraint|Get-SmbOpenFile|Get-SmbServerConfiguration|Get-SmbServerNetworkInterface|Get-SmbSession|Get-SmbShare|Get-SmbShareAccess|Grant-SmbShareAccess|New-SmbMapping|New-SmbMultichannelConstraint|New-SmbShare|Remove-SmbBandwidthLimit|Remove-SmbMapping|Remove-SmbMultichannelConstraint|Remove-SmbShare|Revoke-SmbShareAccess|Set-SmbBandwidthLimit|Set-SmbClientConfiguration|Set-SmbPathAcl|Set-SmbServerConfiguration|Set-SmbShare|Unblock-SmbShareAccess|Update-SmbMultichannelConnection|Move-SmbClient|Get-SmbWitnessClient|Move-SmbWitnessClient|Get-StartApps|Export-StartLayout|Import-StartLayout|Disable-PhysicalDiskIndication|Disable-StorageDiagnosticLog|Enable-PhysicalDiskIndication|Enable-StorageDiagnosticLog|Flush-Volume|Get-DiskSNV|Get-PhysicalDiskSNV|Get-StorageEnclosureSNV|Initialize-Volume|Write-FileSystemCache|Add-InitiatorIdToMaskingSet|Add-PartitionAccessPath|Add-PhysicalDisk|Add-TargetPortToMaskingSet|Add-VirtualDiskToMaskingSet|Block-FileShareAccess|Clear-Disk|Clear-FileStorageTier|Clear-StorageDiagnosticInfo|Connect-VirtualDisk|Debug-FileShare|Debug-StorageSubSystem|Debug-Volume|Disable-PhysicalDiskIdentification|Disable-StorageEnclosureIdentification|Disable-StorageHighAvailability|Disconnect-VirtualDisk|Dismount-DiskImage|Enable-PhysicalDiskIdentification|Enable-StorageEnclosureIdentification|Enable-StorageHighAvailability|Format-Volume|Get-DedupProperties|Get-Disk|Get-DiskImage|Get-DiskStorageNodeView|Get-FileIntegrity|Get-FileShare|Get-FileShareAccessControlEntry|Get-FileStorageTier|Get-InitiatorId|Get-InitiatorPort|Get-MaskingSet|Get-OffloadDataTransferSetting|Get-Partition|Get-PartitionSupportedSize|Get-PhysicalDisk|Get-PhysicalDiskStorageNodeView|Get-ResiliencySetting|Get-StorageAdvancedProperty|Get-StorageDiagnosticInfo|Get-StorageEnclosure|Get-StorageEnclosureStorageNodeView|Get-StorageEnclosureVendorData|Get-StorageFaultDomain|Get-StorageFileServer|Get-StorageFirmwareInformation|Get-StorageHealthAction|Get-StorageHealthReport|Get-StorageHealthSetting|Get-StorageJob|Get-StorageNode|Get-StoragePool|Get-StorageProvider|Get-StorageReliabilityCounter|Get-StorageSetting|Get-StorageSubSystem|Get-StorageTier|Get-StorageTierSupportedSize|Get-SupportedClusterSizes|Get-SupportedFileSystems|Get-TargetPort|Get-TargetPortal|Get-VirtualDisk|Get-VirtualDiskSupportedSize|Get-Volume|Get-VolumeCorruptionCount|Get-VolumeScrubPolicy|Grant-FileShareAccess|Hide-VirtualDisk|Initialize-Disk|Mount-DiskImage|New-FileShare|New-MaskingSet|New-Partition|New-StorageFileServer|New-StoragePool|New-StorageSubsystemVirtualDisk|New-StorageTier|New-VirtualDisk|New-VirtualDiskClone|New-VirtualDiskSnapshot|New-Volume|Optimize-StoragePool|Optimize-Volume|Register-StorageSubsystem|Remove-FileShare|Remove-InitiatorId|Remove-InitiatorIdFromMaskingSet|Remove-MaskingSet|Remove-Partition|Remove-PartitionAccessPath|Remove-PhysicalDisk|Remove-StorageFileServer|Remove-StorageHealthSetting|Remove-StoragePool|Remove-StorageTier|Remove-TargetPortFromMaskingSet|Remove-VirtualDisk|Remove-VirtualDiskFromMaskingSet|Rename-MaskingSet|Repair-FileIntegrity|Repair-VirtualDisk|Repair-Volume|Reset-PhysicalDisk|Reset-StorageReliabilityCounter|Resize-Partition|Resize-StorageTier|Resize-VirtualDisk|Revoke-FileShareAccess|Set-Disk|Set-FileIntegrity|Set-FileShare|Set-FileStorageTier|Set-InitiatorPort|Set-Partition|Set-PhysicalDisk|Set-ResiliencySetting|Set-StorageFileServer|Set-StorageHealthSetting|Set-StoragePool|Set-StorageProvider|Set-StorageSetting|Set-StorageSubSystem|Set-StorageTier|Set-VirtualDisk|Set-Volume|Set-VolumeScrubPolicy|Show-VirtualDisk|Start-StorageDiagnosticLog|Stop-StorageDiagnosticLog|Stop-StorageJob|Unblock-FileShareAccess|Unregister-StorageSubsystem|Update-Disk|Update-HostStorageCache|Update-StorageFirmware|Update-StoragePool|Update-StorageProviderCache|Write-VolumeCache|Disable-TlsCipherSuite|Disable-TlsSessionTicketKey|Enable-TlsCipherSuite|Enable-TlsSessionTicketKey|Export-TlsSessionTicketKey|Get-TlsCipherSuite|New-TlsSessionTicketKey|Get-TroubleshootingPack|Invoke-TroubleshootingPack|Clear-Tpm|ConvertTo-TpmOwnerAuth|Disable-TpmAutoProvisioning|Enable-TpmAutoProvisioning|Get-Tpm|Get-TpmEndorsementKeyInfo|Get-TpmSupportedFeature|Import-TpmOwnerAuth|Initialize-Tpm|Set-TpmOwnerAuth|Unblock-Tpm|Add-VpnConnection|Add-VpnConnectionRoute|Add-VpnConnectionTriggerApplication|Add-VpnConnectionTriggerDnsConfiguration|Add-VpnConnectionTriggerTrustedNetwork|Get-VpnConnection|Get-VpnConnectionTrigger|New-EapConfiguration|New-VpnServerAddress|Remove-VpnConnection|Remove-VpnConnectionRoute|Remove-VpnConnectionTriggerApplication|Remove-VpnConnectionTriggerDnsConfiguration|Remove-VpnConnectionTriggerTrustedNetwork|Set-VpnConnection|Set-VpnConnectionIPsecConfiguration|Set-VpnConnectionProxy|Set-VpnConnectionTriggerDnsConfiguration|Set-VpnConnectionTriggerTrustedNetwork|Add-OdbcDsn|Disable-OdbcPerfCounter|Disable-WdacBidTrace|Enable-OdbcPerfCounter|Enable-WdacBidTrace|Get-OdbcDriver|Get-OdbcDsn|Get-OdbcPerfCounter|Get-WdacBidTrace|Remove-OdbcDsn|Set-OdbcDriver|Set-OdbcDsn|Get-WindowsDeveloperLicense|Show-WindowsDeveloperLicenseRegistration|Unregister-WindowsDeveloperLicense|Disable-WindowsErrorReporting|Enable-WindowsErrorReporting|Get-WindowsErrorReporting|Get-WindowsSearchSetting|Set-WindowsSearchSetting|Get-WindowsUpdateLog\",n=this.createKeywordMapper({\"support.function\":t,keyword:e},\"identifier\"),r=\"eq|ne|gt|lt|le|ge|like|notlike|match|notmatch|contains|notcontains|in|notin|band|bor|bxor|bnot|ceq|cne|cgt|clt|cle|cge|clike|cnotlike|cmatch|cnotmatch|ccontains|cnotcontains|cin|cnotin|ieq|ine|igt|ilt|ile|ige|ilike|inotlike|imatch|inotmatch|icontains|inotcontains|iin|inotin|and|or|xor|not|split|join|replace|f|csplit|creplace|isplit|ireplace|is|isnot|as|shl|shr\";this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"comment.start\",regex:\"<#\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"[$](?:[Tt]rue|[Ff]alse)\\\\b\"},{token:\"constant.language\",regex:\"[$][Nn]ull\\\\b\"},{token:\"variable.instance\",regex:\"[$][a-zA-Z][a-zA-Z0-9_]*\\\\b\"},{token:n,regex:\"[a-zA-Z_$][a-zA-Z0-9_$\\\\-]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\-(?:\"+r+\")\"},{token:\"keyword.operator\",regex:\"&|\\\\+|\\\\-|\\\\*|\\\\/|\\\\%|\\\\=|\\\\>|\\\\&|\\\\!|\\\\|\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment.end\",regex:\"#>\",next:\"start\"},{token:\"doc.comment.tag\",regex:\"^\\\\.\\\\w+\"},{defaultToken:\"comment\"}]}};r.inherits(s,i),t.PowershellHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/powershell\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/powershell_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./powershell_highlight_rules\").PowershellHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a({start:\"^\\\\s*(<#)\",end:\"^[#\\\\s]>\\\\s*$\"})};r.inherits(f,i),function(){this.lineCommentStart=\"#\",this.blockComment={start:\"<#\",end:\"#>\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[]\\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){return null},this.$id=\"ace/mode/powershell\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict/mode-praat.js",
    "content": "ace.define(\"ace/mode/praat_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"if|then|else|elsif|elif|endif|fi|endfor|endproc|while|endwhile|repeat|until|select|plus|minus|assert|asserterror\",t=\"macintosh|windows|unix|praatVersion|praatVersion\\\\$pi|undefined|newline\\\\$|tab\\\\$|shellDirectory\\\\$|homeDirectory\\\\$|preferencesDirectory\\\\$|temporaryDirectory\\\\$|defaultDirectory\\\\$\",n=\"clearinfo|endSendPraat\",r=\"writeInfo|writeInfoLine|appendInfo|appendInfoLine|info\\\\$|writeFile|writeFileLine|appendFile|appendFileLine|abs|round|floor|ceiling|min|max|imin|imax|sqrt|sin|cos|tan|arcsin|arccos|arctan|arctan2|sinc|sincpi|exp|ln|lnBeta|lnGamma|log10|log2|sinh|cosh|tanh|arcsinh|arccosh|arctanh|sigmoid|invSigmoid|erf|erfc|random(?:Uniform|Integer|Gauss|Poisson|Binomial)|gaussP|gaussQ|invGaussQ|incompleteGammaP|incompleteBeta|chiSquareP|chiSquareQ|invChiSquareQ|studentP|studentQ|invStudentQ|fisherP|fisherQ|invFisherQ|binomialP|binomialQ|invBinomialP|invBinomialQ|hertzToBark|barkToHerz|hertzToMel|melToHertz|hertzToSemitones|semitonesToHerz|erb|hertzToErb|erbToHertz|phonToDifferenceLimens|differenceLimensToPhon|soundPressureToPhon|beta|beta2|besselI|besselK|numberOfColumns|numberOfRows|selected|selected\\\\$|numberOfSelected|variableExists|index|rindex|startsWith|endsWith|index_regex|rindex_regex|replace_regex\\\\$|length|extractWord\\\\$|extractLine\\\\$|extractNumber|left\\\\$|right\\\\$|mid\\\\$|replace\\\\$|date\\\\$|fixed\\\\$|percent\\\\$|zero#|linear#|randomUniform#|randomInteger#|randomGauss#|beginPause|endPause|demoShow|demoWindowTitle|demoInput|demoWaitForInput|demoClicked|demoClickedIn|demoX|demoY|demoKeyPressed|demoKey\\\\$|demoExtraControlKeyPressed|demoShiftKeyPressed|demoCommandKeyPressed|demoOptionKeyPressed|environment\\\\$|chooseReadFile\\\\$|chooseDirectory\\\\$|createDirectory|fileReadable|deleteFile|selectObject|removeObject|plusObject|minusObject|runScript|exitScript|beginSendPraat|endSendPraat|objectsAreIdentical\",i=\"Activation|AffineTransform|AmplitudeTier|Art|Artword|Autosegment|BarkFilter|CCA|Categories|Cepstrum|Cepstrumc|ChebyshevSeries|ClassificationTable|Cochleagram|Collection|Configuration|Confusion|ContingencyTable|Corpus|Correlation|Covariance|CrossCorrelationTable|CrossCorrelationTables|DTW|Diagonalizer|Discriminant|Dissimilarity|Distance|Distributions|DurationTier|EEG|ERP|ERPTier|Eigen|Excitation|Excitations|ExperimentMFC|FFNet|FeatureWeights|Formant|FormantFilter|FormantGrid|FormantPoint|FormantTier|GaussianMixture|HMM|HMM_Observation|HMM_ObservationSequence|HMM_State|HMM_StateSequence|Harmonicity|ISpline|Index|Intensity|IntensityTier|IntervalTier|KNN|KlattGrid|KlattTable|LFCC|LPC|Label|LegendreSeries|LinearRegression|LogisticRegression|LongSound|Ltas|MFCC|MSpline|ManPages|Manipulation|Matrix|MelFilter|MixingMatrix|Movie|Network|OTGrammar|OTHistory|OTMulti|PCA|PairDistribution|ParamCurve|Pattern|Permutation|Pitch|PitchTier|PointProcess|Polygon|Polynomial|Procrustes|RealPoint|RealTier|ResultsMFC|Roots|SPINET|SSCP|SVD|Salience|ScalarProduct|Similarity|SimpleString|SortedSetOfString|Sound|Speaker|Spectrogram|Spectrum|SpectrumTier|SpeechSynthesizer|SpellingChecker|Strings|StringsIndex|Table|TableOfReal|TextGrid|TextInterval|TextPoint|TextTier|Tier|Transition|VocalTract|Weight|WordList\";this.$rules={start:[{token:\"string.interpolated\",regex:/'((?:[a-z][a-zA-Z0-9_]*)(?:\\$|#|:[0-9]+)?)'/},{token:[\"text\",\"text\",\"keyword.operator\",\"text\",\"keyword\"],regex:/(^\\s*)(?:([a-z][a-zA-Z0-9_]*\\$?\\s+)(=)(\\s+))?(stopwatch)/},{token:[\"text\",\"keyword\",\"text\",\"string\"],regex:/(^\\s*)(print(?:line|tab)?|echo|exit|pause|send(?:praat|socket)|include|execute|system(?:_nocheck)?)(\\s+)(.*)/},{token:[\"text\",\"keyword\"],regex:\"(^\\\\s*)(\"+n+\")$\"},{token:[\"text\",\"keyword.operator\",\"text\"],regex:/(\\s+)((?:\\+|-|\\/|\\*|<|>)=?|==?|!=|%|\\^|\\||and|or|not)(\\s+)/},{token:[\"text\",\"text\",\"keyword.operator\",\"text\",\"keyword\",\"text\",\"keyword\"],regex:/(^\\s*)(?:([a-z][a-zA-Z0-9_]*\\$?\\s+)(=)(\\s+))?(?:((?:no)?warn|(?:unix_)?nocheck|noprogress)(\\s+))?((?:[A-Z][^.:\"]+)(?:$|(?:\\.{3}|:)))/},{token:[\"text\",\"keyword\",\"text\",\"keyword\"],regex:/(^\\s*)(?:(demo)?(\\s+))((?:[A-Z][^.:\"]+)(?:$|(?:\\.{3}|:)))/},{token:[\"text\",\"keyword\",\"text\",\"keyword\"],regex:/^(\\s*)(?:(demo)(\\s+))?(10|12|14|16|24)$/},{token:[\"text\",\"support.function\",\"text\"],regex:/(\\s*)(do\\$?)(\\s*:\\s*|\\s*\\(\\s*)/},{token:\"entity.name.type\",regex:\"(\"+i+\")\"},{token:\"variable.language\",regex:\"(\"+t+\")\"},{token:[\"support.function\",\"text\"],regex:\"((?:\"+r+\")\\\\$?)(\\\\s*(?::|\\\\())\"},{token:\"keyword\",regex:/(\\bfor\\b)/,next:\"for\"},{token:\"keyword\",regex:\"(\\\\b(?:\"+e+\")\\\\b)\"},{token:\"string\",regex:/\"[^\"]*\"/},{token:\"string\",regex:/\"[^\"]*$/,next:\"brokenstring\"},{token:[\"text\",\"keyword\",\"text\",\"entity.name.section\"],regex:/(^\\s*)(\\bform\\b)(\\s+)(.*)/,next:\"form\"},{token:\"constant.numeric\",regex:/\\b[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"keyword\",\"text\",\"entity.name.function\"],regex:/(procedure)(\\s+)(\\S+)/},{token:[\"entity.name.function\",\"text\"],regex:/(@\\S+)(:|\\s*\\()/},{token:[\"text\",\"keyword\",\"text\",\"entity.name.function\"],regex:/(^\\s*)(call)(\\s+)(\\S+)/},{token:\"comment\",regex:/(^\\s*#|;).*$/},{token:\"text\",regex:/\\s+/}],form:[{token:[\"keyword\",\"text\",\"constant.numeric\"],regex:/((?:optionmenu|choice)\\s+)(\\S+:\\s+)([0-9]+)/},{token:[\"keyword\",\"constant.numeric\"],regex:/((?:option|button)\\s+)([+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b)/},{token:[\"keyword\",\"string\"],regex:/((?:option|button)\\s+)(.*)/},{token:[\"keyword\",\"text\",\"string\"],regex:/((?:sentence|text)\\s+)(\\S+\\s*)(.*)/},{token:[\"keyword\",\"text\",\"string\",\"invalid.illegal\"],regex:/(word\\s+)(\\S+\\s*)(\\S+)?(\\s.*)?/},{token:[\"keyword\",\"text\",\"constant.language\"],regex:/(boolean\\s+)(\\S+\\s*)(0|1|\"?(?:yes|no)\"?)/},{token:[\"keyword\",\"text\",\"constant.numeric\"],regex:/((?:real|natural|positive|integer)\\s+)(\\S+\\s*)([+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b)/},{token:[\"keyword\",\"string\"],regex:/(comment\\s+)(.*)/},{token:\"keyword\",regex:\"endform\",next:\"start\"}],\"for\":[{token:[\"keyword\",\"text\",\"constant.numeric\",\"text\"],regex:/(from|to)(\\s+)([+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?)(\\s*)/},{token:[\"keyword\",\"text\"],regex:/(from|to)(\\s+\\S+\\s*)/},{token:\"text\",regex:/$/,next:\"start\"}],brokenstring:[{token:[\"text\",\"string\"],regex:/(\\s*\\.{3})([^\"]*)/},{token:\"string\",regex:/\"/,next:\"start\"}]}};r.inherits(s,i),t.PraatHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/praat\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/praat_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./praat_highlight_rules\").PraatHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./folding/cstyle\").FoldMode,a=function(){this.HighlightRules=s,this.$outdent=new o,this.foldingRules=new u,this.$behaviour=this.$defaultBehaviour};r.inherits(a,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[:]\\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/praat\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict/mode-prolog.js",
    "content": "ace.define(\"ace/mode/prolog_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{include:\"#comment\"},{include:\"#basic_fact\"},{include:\"#rule\"},{include:\"#directive\"},{include:\"#fact\"}],\"#atom\":[{token:\"constant.other.atom.prolog\",regex:\"\\\\b[a-z][a-zA-Z0-9_]*\\\\b\"},{token:\"constant.numeric.prolog\",regex:\"-?\\\\d+(?:\\\\.\\\\d+)?\"},{include:\"#string\"}],\"#basic_elem\":[{include:\"#comment\"},{include:\"#statement\"},{include:\"#constants\"},{include:\"#operators\"},{include:\"#builtins\"},{include:\"#list\"},{include:\"#atom\"},{include:\"#variable\"}],\"#basic_fact\":[{token:[\"entity.name.function.fact.basic.prolog\",\"punctuation.end.fact.basic.prolog\"],regex:\"([a-z]\\\\w*)(\\\\.)\"}],\"#builtins\":[{token:\"support.function.builtin.prolog\",regex:\"\\\\b(?:abolish|abort|ancestors|arg|ascii|assert[az]|atom(?:ic)?|body|char|close|conc|concat|consult|define|definition|dynamic|dump|fail|file|free|free_proc|functor|getc|goal|halt|head|head|integer|length|listing|match_args|member|next_clause|nl|nonvar|nth|number|cvars|nvars|offset|op|print?|prompt|putc|quoted|ratom|read|redefine|rename|retract(?:all)?|see|seeing|seen|skip|spy|statistics|system|tab|tell|telling|term|time|told|univ|unlink_clause|unspy_predicate|var|write)\\\\b\"}],\"#comment\":[{token:[\"punctuation.definition.comment.prolog\",\"comment.line.percentage.prolog\"],regex:\"(%)(.*$)\"},{token:\"punctuation.definition.comment.prolog\",regex:\"/\\\\*\",push:[{token:\"punctuation.definition.comment.prolog\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.prolog\"}]}],\"#constants\":[{token:\"constant.language.prolog\",regex:\"\\\\b(?:true|false|yes|no)\\\\b\"}],\"#directive\":[{token:\"keyword.operator.directive.prolog\",regex:\":-\",push:[{token:\"meta.directive.prolog\",regex:\"\\\\.\",next:\"pop\"},{include:\"#comment\"},{include:\"#statement\"},{defaultToken:\"meta.directive.prolog\"}]}],\"#expr\":[{include:\"#comments\"},{token:\"meta.expression.prolog\",regex:\"\\\\(\",push:[{token:\"meta.expression.prolog\",regex:\"\\\\)\",next:\"pop\"},{include:\"#expr\"},{defaultToken:\"meta.expression.prolog\"}]},{token:\"keyword.control.cutoff.prolog\",regex:\"!\"},{token:\"punctuation.control.and.prolog\",regex:\",\"},{token:\"punctuation.control.or.prolog\",regex:\";\"},{include:\"#basic_elem\"}],\"#fact\":[{token:[\"entity.name.function.fact.prolog\",\"punctuation.begin.fact.parameters.prolog\"],regex:\"([a-z]\\\\w*)(\\\\()(?!.*:-)\",push:[{token:[\"punctuation.end.fact.parameters.prolog\",\"punctuation.end.fact.prolog\"],regex:\"(\\\\))(\\\\.?)\",next:\"pop\"},{include:\"#parameter\"},{defaultToken:\"meta.fact.prolog\"}]}],\"#list\":[{token:\"punctuation.begin.list.prolog\",regex:\"\\\\[(?=.*\\\\])\",push:[{token:\"punctuation.end.list.prolog\",regex:\"\\\\]\",next:\"pop\"},{include:\"#comment\"},{token:\"punctuation.separator.list.prolog\",regex:\",\"},{token:\"punctuation.concat.list.prolog\",regex:\"\\\\|\",push:[{token:\"meta.list.concat.prolog\",regex:\"(?=\\\\s*\\\\])\",next:\"pop\"},{include:\"#basic_elem\"},{defaultToken:\"meta.list.concat.prolog\"}]},{include:\"#basic_elem\"},{defaultToken:\"meta.list.prolog\"}]}],\"#operators\":[{token:\"keyword.operator.prolog\",regex:\"\\\\\\\\\\\\+|\\\\bnot\\\\b|\\\\bis\\\\b|->|[><]|[><\\\\\\\\:=]?=|(?:=\\\\\\\\|\\\\\\\\=)=\"}],\"#parameter\":[{token:\"variable.language.anonymous.prolog\",regex:\"\\\\b_\\\\b\"},{token:\"variable.parameter.prolog\",regex:\"\\\\b[A-Z_]\\\\w*\\\\b\"},{token:\"punctuation.separator.parameters.prolog\",regex:\",\"},{include:\"#basic_elem\"},{token:\"text\",regex:\"[^\\\\s]\"}],\"#rule\":[{token:\"meta.rule.prolog\",regex:\"(?=[a-z]\\\\w*.*:-)\",push:[{token:\"punctuation.rule.end.prolog\",regex:\"\\\\.\",next:\"pop\"},{token:\"meta.rule.signature.prolog\",regex:\"(?=[a-z]\\\\w*.*:-)\",push:[{token:\"meta.rule.signature.prolog\",regex:\"(?=:-)\",next:\"pop\"},{token:\"entity.name.function.rule.prolog\",regex:\"[a-z]\\\\w*(?=\\\\(|\\\\s*:-)\"},{token:\"punctuation.rule.parameters.begin.prolog\",regex:\"\\\\(\",push:[{token:\"punctuation.rule.parameters.end.prolog\",regex:\"\\\\)\",next:\"pop\"},{include:\"#parameter\"},{defaultToken:\"meta.rule.parameters.prolog\"}]},{defaultToken:\"meta.rule.signature.prolog\"}]},{token:\"keyword.operator.definition.prolog\",regex:\":-\",push:[{token:\"meta.rule.definition.prolog\",regex:\"(?=\\\\.)\",next:\"pop\"},{include:\"#comment\"},{include:\"#expr\"},{defaultToken:\"meta.rule.definition.prolog\"}]},{defaultToken:\"meta.rule.prolog\"}]}],\"#statement\":[{token:\"meta.statement.prolog\",regex:\"(?=[a-z]\\\\w*\\\\()\",push:[{token:\"punctuation.end.statement.parameters.prolog\",regex:\"\\\\)\",next:\"pop\"},{include:\"#builtins\"},{include:\"#atom\"},{token:\"punctuation.begin.statement.parameters.prolog\",regex:\"\\\\(\",push:[{token:\"meta.statement.parameters.prolog\",regex:\"(?=\\\\))\",next:\"pop\"},{token:\"punctuation.separator.statement.prolog\",regex:\",\"},{include:\"#basic_elem\"},{defaultToken:\"meta.statement.parameters.prolog\"}]},{defaultToken:\"meta.statement.prolog\"}]}],\"#string\":[{token:\"punctuation.definition.string.begin.prolog\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.prolog\",regex:\"'\",next:\"pop\"},{token:\"constant.character.escape.prolog\",regex:\"\\\\\\\\.\"},{token:\"constant.character.escape.quote.prolog\",regex:\"''\"},{defaultToken:\"string.quoted.single.prolog\"}]}],\"#variable\":[{token:\"variable.language.anonymous.prolog\",regex:\"\\\\b_\\\\b\"},{token:\"variable.other.prolog\",regex:\"\\\\b[A-Z_][a-zA-Z0-9_]*\\\\b\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"plg\",\"prolog\"],foldingStartMarker:\"(%\\\\s*region \\\\w*)|([a-z]\\\\w*.*:- ?)\",foldingStopMarker:\"(%\\\\s*end(\\\\s*region)?)|(?=\\\\.)\",keyEquivalent:\"^~P\",name:\"Prolog\",scopeName:\"source.prolog\"},r.inherits(s,i),t.PrologHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/prolog\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/prolog_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./prolog_highlight_rules\").PrologHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"%\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/prolog\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-properties.js",
    "content": "ace.define(\"ace/mode/properties_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=/\\\\u[0-9a-fA-F]{4}|\\\\/;this.$rules={start:[{token:\"comment\",regex:/[!#].*$/},{token:\"keyword\",regex:/[=:]$/},{token:\"keyword\",regex:/[=:]/,next:\"value\"},{token:\"constant.language.escape\",regex:e},{defaultToken:\"variable\"}],value:[{regex:/\\\\$/,token:\"string\",next:\"value\"},{regex:/$/,token:\"string\",next:\"start\"},{token:\"constant.language.escape\",regex:e},{defaultToken:\"string\"}]}};r.inherits(s,i),t.PropertiesHighlightRules=s}),ace.define(\"ace/mode/properties\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/properties_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./properties_highlight_rules\").PropertiesHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.$id=\"ace/mode/properties\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict/mode-protobuf.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.cFunctions=\"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\",u=function(){var e=\"break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using\",t=\"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t\",n=\"const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\",r=\"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eqconst_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\",s=\"NULL|true|false|TRUE|FALSE|nullptr\",u=this.$keywords=this.createKeywordMapper({\"keyword.control\":e,\"storage.type\":t,\"storage.modifier\":n,\"keyword.operator\":r,\"variable.language\":\"this\",\"constant.language\":s},\"identifier\"),a=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\",f=/\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source;this.$rules={start:[{token:\"comment\",regex:\"//$\",next:\"start\"},{token:\"comment\",regex:\"//\",next:\"singleLineComment\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:\"'(?:\"+f+\"|.)?'\"},{token:\"string.start\",regex:'\"',stateName:\"qqstring\",next:[{token:\"string\",regex:/\\\\\\s*$/,next:\"qqstring\"},{token:\"constant.language.escape\",regex:f},{token:\"constant.language.escape\",regex:/%[^'\"\\\\]/},{token:\"string.end\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'R\"\\\\(',stateName:\"rawString\",next:[{token:\"string.end\",regex:'\\\\)\"',next:\"start\"},{defaultToken:\"string\"}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"keyword\",regex:\"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",next:\"directive\"},{token:\"keyword\",regex:\"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"},{token:\"support.function.C99.c\",regex:o},{token:u,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\"},{token:\"keyword.operator\",regex:/--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],singleLineComment:[{token:\"comment\",regex:/\\\\$/,next:\"singleLineComment\"},{token:\"comment\",regex:/$/,next:\"start\"},{defaultToken:\"comment\"}],directive:[{token:\"constant.other.multiline\",regex:/\\\\/},{token:\"constant.other.multiline\",regex:/.*\\\\/},{token:\"constant.other\",regex:\"\\\\s*<.+?>\",next:\"start\"},{token:\"constant.other\",regex:'\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',next:\"start\"},{token:\"constant.other\",regex:\"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",next:\"start\"},{token:\"constant.other\",regex:/[^\\\\\\/]+/,next:\"start\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/c_cpp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c_cpp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./c_cpp_highlight_rules\").c_cppHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/c_cpp\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/protobuf_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes\",t=\"message|required|optional|repeated|package|import|option|enum\",n=this.createKeywordMapper({\"keyword.declaration.protobuf\":t,\"support.type\":e},\"identifier\");this.$rules={start:[{token:\"comment\",regex:/\\/\\/.*$/},{token:\"comment\",regex:/\\/\\*/,next:\"comment\"},{token:\"constant\",regex:\"<[^>]+>\"},{regex:\"=\",token:\"keyword.operator.assignment.protobuf\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:n,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.normalizeRules()};r.inherits(s,i),t.ProtobufHighlightRules=s}),ace.define(\"ace/mode/protobuf\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/c_cpp\",\"ace/mode/protobuf_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./c_cpp\").Mode,s=e(\"./protobuf_highlight_rules\").ProtobufHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){i.call(this),this.foldingRules=new o,this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/protobuf\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-python.js",
    "content": "ace.define(\"ace/mode/python_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield\",t=\"True|False|None|NotImplemented|Ellipsis|__debug__\",n=\"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|set|apply|delattr|help|next|setattr|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern\",r=this.createKeywordMapper({\"invalid.deprecated\":\"debugger\",\"support.function\":n,\"constant.language\":t,keyword:e},\"identifier\"),i=\"(?:r|u|ur|R|U|UR|Ur|uR)?\",s=\"(?:(?:[1-9]\\\\d*)|(?:0))\",o=\"(?:0[oO]?[0-7]+)\",u=\"(?:0[xX][\\\\dA-Fa-f]+)\",a=\"(?:0[bB][01]+)\",f=\"(?:\"+s+\"|\"+o+\"|\"+u+\"|\"+a+\")\",l=\"(?:[eE][+-]?\\\\d+)\",c=\"(?:\\\\.\\\\d+)\",h=\"(?:\\\\d+)\",p=\"(?:(?:\"+h+\"?\"+c+\")|(?:\"+h+\"\\\\.))\",d=\"(?:(?:\"+p+\"|\"+h+\")\"+l+\")\",v=\"(?:\"+d+\"|\"+p+\")\",m=\"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"string\",regex:i+'\"{3}',next:\"qqstring3\"},{token:\"string\",regex:i+'\"(?=.)',next:\"qqstring\"},{token:\"string\",regex:i+\"'{3}\",next:\"qstring3\"},{token:\"string\",regex:i+\"'(?=.)\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"(?:\"+v+\"|\\\\d+)[jJ]\\\\b\"},{token:\"constant.numeric\",regex:v},{token:\"constant.numeric\",regex:f+\"[lL]\\\\b\"},{token:\"constant.numeric\",regex:f+\"\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text\",regex:\"\\\\s+\"}],qqstring3:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:'\"{3}',next:\"start\"},{defaultToken:\"string\"}],qstring3:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:\"'{3}\",next:\"start\"},{defaultToken:\"string\"}],qqstring:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"start\"},{defaultToken:\"string\"}]}};r.inherits(s,i),t.PythonHighlightRules=s}),ace.define(\"ace/mode/folding/pythonic\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e){this.foldingStartMarker=new RegExp(\"([\\\\[{])(?:\\\\s*)$|(\"+e+\")(?:\\\\s*)(?:#.*)?$\")};r.inherits(s,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i)return i[1]?this.openingBracketBlock(e,i[1],n,i.index):i[2]?this.indentationBlock(e,n,i.index+i[2].length):this.indentationBlock(e,n)}}.call(s.prototype)}),ace.define(\"ace/mode/python\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/python_highlight_rules\",\"ace/mode/folding/pythonic\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./python_highlight_rules\").PythonHighlightRules,o=e(\"./folding/pythonic\").FoldMode,u=e(\"../range\").Range,a=function(){this.HighlightRules=s,this.foldingRules=new o(\"\\\\:\"),this.$behaviour=this.$defaultBehaviour};r.inherits(a,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[:]\\s*$/);o&&(r+=n)}return r};var e={pass:1,\"return\":1,raise:1,\"break\":1,\"continue\":1};this.checkOutdent=function(t,n,r){if(r!==\"\\r\\n\"&&r!==\"\\r\"&&r!==\"\\n\")return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do var s=i.pop();while(s&&(s.type==\"comment\"||s.type==\"text\"&&s.value.match(/^\\s+$/)));return s?s.type==\"keyword\"&&e[s.value]:!1},this.autoOutdent=function(e,t,n){n+=1;var r=this.$getIndent(t.getLine(n)),i=t.getTabString();r.slice(-i.length)==i&&t.remove(new u(n,r.length-i.length,n,r.length))},this.$id=\"ace/mode/python\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict/mode-r.js",
    "content": "ace.define(\"ace/mode/tex_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(e){e||(e=\"text\"),this.$rules={start:[{token:\"comment\",regex:\"%.*$\"},{token:e,regex:\"\\\\\\\\[$&%#\\\\{\\\\}]\"},{token:\"keyword\",regex:\"\\\\\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\\\b\",next:\"nospell\"},{token:\"keyword\",regex:\"\\\\\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])}]\"},{token:e,regex:\"\\\\s+\"}],nospell:[{token:\"comment\",regex:\"%.*$\",next:\"start\"},{token:\"nospell.\"+e,regex:\"\\\\\\\\[$&%#\\\\{\\\\}]\"},{token:\"keyword\",regex:\"\\\\\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\\\b\"},{token:\"keyword\",regex:\"\\\\\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])\",next:\"start\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])]\"},{token:\"paren.keyword.operator\",regex:\"}\",next:\"start\"},{token:\"nospell.\"+e,regex:\"\\\\s+\"},{token:\"nospell.\"+e,regex:\"\\\\w+\"}]}};r.inherits(o,s),t.TexHighlightRules=o}),ace.define(\"ace/mode/r_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/tex_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./tex_highlight_rules\").TexHighlightRules,u=function(){var e=i.arrayToMap(\"function|if|in|break|next|repeat|else|for|return|switch|while|try|tryCatch|stop|warning|require|library|attach|detach|source|setMethod|setGeneric|setGroupGeneric|setClass\".split(\"|\")),t=i.arrayToMap(\"NULL|NA|TRUE|FALSE|T|F|Inf|NaN|NA_integer_|NA_real_|NA_character_|NA_complex_\".split(\"|\"));this.$rules={start:[{token:\"comment.sectionhead\",regex:\"#+(?!').*(?:----|====|####)\\\\s*$\"},{token:\"comment\",regex:\"#+'\",next:\"rd-start\"},{token:\"comment\",regex:\"#.*$\"},{token:\"string\",regex:'[\"]',next:\"qqstring\"},{token:\"string\",regex:\"[']\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+[Li]?\\\\b\"},{token:\"constant.numeric\",regex:\"\\\\d+L\\\\b\"},{token:\"constant.numeric\",regex:\"\\\\d+(?:\\\\.\\\\d*)?(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b\"},{token:\"constant.numeric\",regex:\"\\\\.\\\\d+(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:TRUE|FALSE|T|F)\\\\b\"},{token:\"identifier\",regex:\"`.*?`\"},{onMatch:function(n){return e[n]?\"keyword\":t[n]?\"constant.language\":n==\"...\"||n.match(/^\\.\\.\\d+$/)?\"variable.language\":\"identifier\"},regex:\"[a-zA-Z.][a-zA-Z0-9._]*\\\\b\"},{token:\"keyword.operator\",regex:\"%%|>=|<=|==|!=|\\\\->|<\\\\-|\\\\|\\\\||&&|=|\\\\+|\\\\-|\\\\*|/|\\\\^|>|<|!|&|\\\\||~|\\\\$|:\"},{token:\"keyword.operator\",regex:\"%.*?%\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],qqstring:[{token:\"string\",regex:'(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',next:\"start\"},{token:\"string\",regex:\".+\"}],qstring:[{token:\"string\",regex:\"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",next:\"start\"},{token:\"string\",regex:\".+\"}]};var n=(new o(\"comment\")).getRules();for(var r=0;r<n.start.length;r++)n.start[r].token+=\".virtual-comment\";this.addRules(n,\"rd-\"),this.$rules[\"rd-start\"].unshift({token:\"text\",regex:\"^\",next:\"start\"}),this.$rules[\"rd-start\"].unshift({token:\"keyword\",regex:\"@(?!@)[^ ]*\"}),this.$rules[\"rd-start\"].unshift({token:\"comment\",regex:\"@@\"}),this.$rules[\"rd-start\"].push({token:\"comment\",regex:\"[^%\\\\\\\\[({\\\\])}]+\"})};r.inherits(u,s),t.RHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/r\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/r_highlight_rules\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=e(\"../lib/oop\"),s=e(\"./text\").Mode,o=e(\"./text_highlight_rules\").TextHighlightRules,u=e(\"./r_highlight_rules\").RHighlightRules,a=e(\"./matching_brace_outdent\").MatchingBraceOutdent,f=function(){this.HighlightRules=u,this.$outdent=new a,this.$behaviour=this.$defaultBehaviour};i.inherits(f,s),function(){this.lineCommentStart=\"#\",this.$id=\"ace/mode/r\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict/mode-razor.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/csharp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=this.createKeywordMapper({\"variable.language\":\"this\",keyword:\"abstract|event|new|struct|as|explicit|null|switch|base|extern|object|this|bool|false|operator|throw|break|finally|out|true|byte|fixed|override|try|case|float|params|typeof|catch|for|private|uint|char|foreach|protected|ulong|checked|goto|public|unchecked|class|if|readonly|unsafe|const|implicit|ref|ushort|continue|in|return|using|decimal|int|sbyte|virtual|default|interface|sealed|volatile|delegate|internal|short|void|do|is|sizeof|while|double|lock|stackalloc|else|long|static|enum|namespace|string|var|dynamic\",\"constant.language\":\"null|true|false\"},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:/'(?:.|\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n]))'/},{token:\"string\",start:'\"',end:'\"|$',next:[{token:\"constant.language.escape\",regex:/\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n])/},{token:\"invalid\",regex:/\\\\./}]},{token:\"string\",start:'@\"',end:'\"',next:[{token:\"constant.language.escape\",regex:'\"\"'}]},{token:\"string\",start:/\\$\"/,end:'\"|$',next:[{token:\"constant.language.escape\",regex:/\\\\(:?$)|{{/},{token:\"constant.language.escape\",regex:/\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n])/},{token:\"invalid\",regex:/\\\\./}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:e,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"keyword\",regex:\"^\\\\s*#(if|else|elif|endif|define|undef|warning|error|line|region|endregion|pragma)\"},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(o,s),t.CSharpHighlightRules=o}),ace.define(\"ace/mode/razor_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/html_highlight_rules\",\"ace/mode/csharp_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,o=e(\"./html_highlight_rules\").HtmlHighlightRules,u=e(\"./csharp_highlight_rules\").CSharpHighlightRules,a=\"razor-block-\",f=function(){u.call(this);var e=function(e,t){return typeof t==\"function\"?t(e):t},t=\"in-braces\";this.$rules.start.unshift({regex:\"[\\\\[({]\",onMatch:function(e,n,r){var i=/razor-[^\\-]+-/.exec(n)[0];return r.unshift(e),r.unshift(i+t),this.next=i+t,\"paren.lparen\"}},{start:\"@\\\\*\",end:\"\\\\*@\",token:\"comment\"});var n={\"{\":\"}\",\"[\":\"]\",\"(\":\")\"};this.$rules[t]=i.deepCopy(this.$rules.start),this.$rules[t].unshift({regex:\"[\\\\])}]\",onMatch:function(t,r,i){var s=i[1];return n[s]!==t?\"invalid.illegal\":(i.shift(),i.shift(),this.next=e(t,i[0])||\"start\",\"paren.rparen\")}})};r.inherits(f,u);var l=function(){o.call(this);var e={regex:\"@[({]|@functions{\",onMatch:function(e,t,n){return n.unshift(e),n.unshift(\"razor-block-start\"),this.next=\"razor-block-start\",\"punctuation.block.razor\"}},t={\"@{\":\"}\",\"@(\":\")\",\"@functions{\":\"}\"},n={regex:\"[})]\",onMatch:function(e,n,r){var i=r[1];return t[i]!==e?\"invalid.illegal\":(r.shift(),r.shift(),this.next=r.shift()||\"start\",\"punctuation.block.razor\")}},r={regex:\"@(?![{(])\",onMatch:function(e,t,n){return n.unshift(\"razor-short-start\"),this.next=\"razor-short-start\",\"punctuation.short.razor\"}},i={token:\"\",regex:\"(?=[^A-Za-z_\\\\.()\\\\[\\\\]])\",next:\"pop\"},s={regex:\"@(?=if)\",onMatch:function(e,t,n){return n.unshift(function(e){return e!==\"}\"?\"start\":n.shift()||\"start\"}),this.next=\"razor-block-start\",\"punctuation.control.razor\"}},u=[{start:\"@\\\\*\",end:\"\\\\*@\",token:\"comment\"},{token:[\"meta.directive.razor\",\"text\",\"identifier\"],regex:\"^(\\\\s*@model)(\\\\s+)(.+)$\"},e,r];for(var a in this.$rules)this.$rules[a].unshift.apply(this.$rules[a],u);this.embedRules(f,\"razor-block-\",[n],[\"start\"]),this.embedRules(f,\"razor-short-\",[i],[\"start\"]),this.normalizeRules()};r.inherits(l,o),t.RazorHighlightRules=l,t.RazorLangHighlightRules=f}),ace.define(\"ace/mode/razor_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../token_iterator\").TokenIterator,i=[\"abstract\",\"as\",\"base\",\"bool\",\"break\",\"byte\",\"case\",\"catch\",\"char\",\"checked\",\"class\",\"const\",\"continue\",\"decimal\",\"default\",\"delegate\",\"do\",\"double\",\"else\",\"enum\",\"event\",\"explicit\",\"extern\",\"false\",\"finally\",\"fixed\",\"float\",\"for\",\"foreach\",\"goto\",\"if\",\"implicit\",\"in\",\"int\",\"interface\",\"internal\",\"is\",\"lock\",\"long\",\"namespace\",\"new\",\"null\",\"object\",\"operator\",\"out\",\"override\",\"params\",\"private\",\"protected\",\"public\",\"readonly\",\"ref\",\"return\",\"sbyte\",\"sealed\",\"short\",\"sizeof\",\"stackalloc\",\"static\",\"string\",\"struct\",\"switch\",\"this\",\"throw\",\"true\",\"try\",\"typeof\",\"uint\",\"ulong\",\"unchecked\",\"unsafe\",\"ushort\",\"using\",\"var\",\"virtual\",\"void\",\"volatile\",\"while\"],s=[\"Html\",\"Model\",\"Url\",\"Layout\"],o=function(){};(function(){this.getCompletions=function(e,t,n,r){if(e.lastIndexOf(\"razor-short-start\")==-1&&e.lastIndexOf(\"razor-block-start\")==-1)return[];var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e.lastIndexOf(\"razor-short-start\")!=-1)return this.getShortStartCompletions(e,t,n,r);if(e.lastIndexOf(\"razor-block-start\")!=-1)return this.getKeywordCompletions(e,t,n,r)},this.getShortStartCompletions=function(e,t,n,r){return s.map(function(e){return{value:e,meta:\"keyword\",score:Number.MAX_VALUE}})},this.getKeywordCompletions=function(e,t,n,r){return s.concat(i).map(function(e){return{value:e,meta:\"keyword\",score:Number.MAX_VALUE}})}}).call(o.prototype),t.RazorCompletions=o}),ace.define(\"ace/mode/razor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/razor_highlight_rules\",\"ace/mode/razor_completions\",\"ace/mode/html_completions\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./razor_highlight_rules\").RazorHighlightRules,o=e(\"./razor_completions\").RazorCompletions,u=e(\"./html_completions\").HtmlCompletions,a=function(){i.call(this),this.$highlightRules=new s,this.$completer=new o,this.$htmlCompleter=new u};r.inherits(a,i),function(){this.getCompletions=function(e,t,n,r){var i=this.$completer.getCompletions(e,t,n,r),s=this.$htmlCompleter.getCompletions(e,t,n,r);return i.concat(s)},this.createWorker=function(e){return null},this.$id=\"ace/mode/razor\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict/mode-rdoc.js",
    "content": "ace.define(\"ace/mode/latex_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment\",regex:\"%.*$\"},{token:[\"keyword\",\"lparen\",\"variable.parameter\",\"rparen\",\"lparen\",\"storage.type\",\"rparen\"],regex:\"(\\\\\\\\(?:documentclass|usepackage|input))(?:(\\\\[)([^\\\\]]*)(\\\\]))?({)([^}]*)(})\"},{token:[\"keyword\",\"lparen\",\"variable.parameter\",\"rparen\"],regex:\"(\\\\\\\\(?:label|v?ref|cite(?:[^{]*)))(?:({)([^}]*)(}))?\"},{token:[\"storage.type\",\"lparen\",\"variable.parameter\",\"rparen\"],regex:\"(\\\\\\\\(?:begin|end))({)(\\\\w*)(})\"},{token:\"storage.type\",regex:\"\\\\\\\\[a-zA-Z]+\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"constant.character.escape\",regex:\"\\\\\\\\[^a-zA-Z]?\"},{token:\"string\",regex:\"\\\\${1,2}\",next:\"equation\"}],equation:[{token:\"comment\",regex:\"%.*$\"},{token:\"string\",regex:\"\\\\${1,2}\",next:\"start\"},{token:\"constant.character.escape\",regex:\"\\\\\\\\(?:[^a-zA-Z]|[a-zA-Z]+)\"},{token:\"error\",regex:\"^\\\\s*$\",next:\"start\"},{defaultToken:\"string\"}]}};r.inherits(s,i),t.LatexHighlightRules=s}),ace.define(\"ace/mode/rdoc_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/latex_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./latex_highlight_rules\"),u=function(){this.$rules={start:[{token:\"comment\",regex:\"%.*$\"},{token:\"text\",regex:\"\\\\\\\\[$&%#\\\\{\\\\}]\"},{token:\"keyword\",regex:\"\\\\\\\\(?:name|alias|method|S3method|S4method|item|code|preformatted|kbd|pkg|var|env|option|command|author|email|url|source|cite|acronym|href|code|preformatted|link|eqn|deqn|keyword|usage|examples|dontrun|dontshow|figure|if|ifelse|Sexpr|RdOpts|inputencoding|usepackage)\\\\b\",next:\"nospell\"},{token:\"keyword\",regex:\"\\\\\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],nospell:[{token:\"comment\",regex:\"%.*$\",next:\"start\"},{token:\"nospell.text\",regex:\"\\\\\\\\[$&%#\\\\{\\\\}]\"},{token:\"keyword\",regex:\"\\\\\\\\(?:name|alias|method|S3method|S4method|item|code|preformatted|kbd|pkg|var|env|option|command|author|email|url|source|cite|acronym|href|code|preformatted|link|eqn|deqn|keyword|usage|examples|dontrun|dontshow|figure|if|ifelse|Sexpr|RdOpts|inputencoding|usepackage)\\\\b\"},{token:\"keyword\",regex:\"\\\\\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])\",next:\"start\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])]\"},{token:\"paren.keyword.operator\",regex:\"}\",next:\"start\"},{token:\"nospell.text\",regex:\"\\\\s+\"},{token:\"nospell.text\",regex:\"\\\\w+\"}]}};r.inherits(u,s),t.RDocHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/rdoc\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/rdoc_highlight_rules\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./rdoc_highlight_rules\").RDocHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=function(e){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.$id=\"ace/mode/rdoc\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-rhtml.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/tex_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(e){e||(e=\"text\"),this.$rules={start:[{token:\"comment\",regex:\"%.*$\"},{token:e,regex:\"\\\\\\\\[$&%#\\\\{\\\\}]\"},{token:\"keyword\",regex:\"\\\\\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\\\b\",next:\"nospell\"},{token:\"keyword\",regex:\"\\\\\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])}]\"},{token:e,regex:\"\\\\s+\"}],nospell:[{token:\"comment\",regex:\"%.*$\",next:\"start\"},{token:\"nospell.\"+e,regex:\"\\\\\\\\[$&%#\\\\{\\\\}]\"},{token:\"keyword\",regex:\"\\\\\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\\\b\"},{token:\"keyword\",regex:\"\\\\\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])\",next:\"start\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])]\"},{token:\"paren.keyword.operator\",regex:\"}\",next:\"start\"},{token:\"nospell.\"+e,regex:\"\\\\s+\"},{token:\"nospell.\"+e,regex:\"\\\\w+\"}]}};r.inherits(o,s),t.TexHighlightRules=o}),ace.define(\"ace/mode/r_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/tex_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./tex_highlight_rules\").TexHighlightRules,u=function(){var e=i.arrayToMap(\"function|if|in|break|next|repeat|else|for|return|switch|while|try|tryCatch|stop|warning|require|library|attach|detach|source|setMethod|setGeneric|setGroupGeneric|setClass\".split(\"|\")),t=i.arrayToMap(\"NULL|NA|TRUE|FALSE|T|F|Inf|NaN|NA_integer_|NA_real_|NA_character_|NA_complex_\".split(\"|\"));this.$rules={start:[{token:\"comment.sectionhead\",regex:\"#+(?!').*(?:----|====|####)\\\\s*$\"},{token:\"comment\",regex:\"#+'\",next:\"rd-start\"},{token:\"comment\",regex:\"#.*$\"},{token:\"string\",regex:'[\"]',next:\"qqstring\"},{token:\"string\",regex:\"[']\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+[Li]?\\\\b\"},{token:\"constant.numeric\",regex:\"\\\\d+L\\\\b\"},{token:\"constant.numeric\",regex:\"\\\\d+(?:\\\\.\\\\d*)?(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b\"},{token:\"constant.numeric\",regex:\"\\\\.\\\\d+(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:TRUE|FALSE|T|F)\\\\b\"},{token:\"identifier\",regex:\"`.*?`\"},{onMatch:function(n){return e[n]?\"keyword\":t[n]?\"constant.language\":n==\"...\"||n.match(/^\\.\\.\\d+$/)?\"variable.language\":\"identifier\"},regex:\"[a-zA-Z.][a-zA-Z0-9._]*\\\\b\"},{token:\"keyword.operator\",regex:\"%%|>=|<=|==|!=|\\\\->|<\\\\-|\\\\|\\\\||&&|=|\\\\+|\\\\-|\\\\*|/|\\\\^|>|<|!|&|\\\\||~|\\\\$|:\"},{token:\"keyword.operator\",regex:\"%.*?%\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],qqstring:[{token:\"string\",regex:'(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',next:\"start\"},{token:\"string\",regex:\".+\"}],qstring:[{token:\"string\",regex:\"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",next:\"start\"},{token:\"string\",regex:\".+\"}]};var n=(new o(\"comment\")).getRules();for(var r=0;r<n.start.length;r++)n.start[r].token+=\".virtual-comment\";this.addRules(n,\"rd-\"),this.$rules[\"rd-start\"].unshift({token:\"text\",regex:\"^\",next:\"start\"}),this.$rules[\"rd-start\"].unshift({token:\"keyword\",regex:\"@(?!@)[^ ]*\"}),this.$rules[\"rd-start\"].unshift({token:\"comment\",regex:\"@@\"}),this.$rules[\"rd-start\"].push({token:\"comment\",regex:\"[^%\\\\\\\\[({\\\\])}]+\"})};r.inherits(u,s),t.RHighlightRules=u}),ace.define(\"ace/mode/rhtml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/r_highlight_rules\",\"ace/mode/html_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./r_highlight_rules\").RHighlightRules,s=e(\"./html_highlight_rules\").HtmlHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){s.call(this),this.$rules.start.unshift({token:\"support.function.codebegin\",regex:\"^<!--\\\\s*begin.rcode\\\\s*(?:.*)\",next:\"r-start\"}),this.embedRules(i,\"r-\",[{token:\"support.function.codeend\",regex:\"^\\\\s*end.rcode\\\\s*-->\",next:\"start\"}],[\"start\"]),this.normalizeRules()};r.inherits(u,o),t.RHtmlHighlightRules=u}),ace.define(\"ace/mode/rhtml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/rhtml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./rhtml_highlight_rules\").RHtmlHighlightRules,o=function(e,t){i.call(this),this.$session=t,this.HighlightRules=s};r.inherits(o,i),function(){this.insertChunkInfo={value:\"<!--begin.rcode\\n\\nend.rcode-->\\n\",position:{row:0,column:15}},this.getLanguageMode=function(e){return this.$session.getState(e.row).match(/^r-/)?\"R\":\"HTML\"},this.$id=\"ace/mode/rhtml\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict/mode-rst.js",
    "content": "ace.define(\"ace/mode/rst_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e={title:\"markup.heading\",list:\"markup.heading\",table:\"constant\",directive:\"keyword.operator\",entity:\"string\",link:\"markup.underline.list\",bold:\"markup.bold\",italic:\"markup.italic\",literal:\"support.function\",comment:\"comment\"},t=\"(^|\\\\s|[\\\"'(<\\\\[{\\\\-/:])\",n=\"(?:$|(?=\\\\s|[\\\\\\\\.,;!?\\\\-/:\\\"')>\\\\]}]))\";this.$rules={start:[{token:e.title,regex:\"(^)([\\\\=\\\\-`:\\\\.'\\\"~\\\\^_\\\\*\\\\+#])(\\\\2{2,}\\\\s*$)\"},{token:[\"text\",e.directive,e.literal],regex:\"(^\\\\s*\\\\.\\\\. )([^: ]+::)(.*$)\",next:\"codeblock\"},{token:e.directive,regex:\"::$\",next:\"codeblock\"},{token:[e.entity,e.link],regex:\"(^\\\\.\\\\. _[^:]+:)(.*$)\"},{token:[e.entity,e.link],regex:\"(^__ )(https?://.*$)\"},{token:e.entity,regex:\"^\\\\.\\\\. \\\\[[^\\\\]]+\\\\] \"},{token:e.comment,regex:\"^\\\\.\\\\. .*$\",next:\"comment\"},{token:e.list,regex:\"^\\\\s*[\\\\*\\\\+-] \"},{token:e.list,regex:\"^\\\\s*(?:[A-Za-z]|[0-9]+|[ivxlcdmIVXLCDM]+)\\\\. \"},{token:e.list,regex:\"^\\\\s*\\\\(?(?:[A-Za-z]|[0-9]+|[ivxlcdmIVXLCDM]+)\\\\) \"},{token:e.table,regex:\"^={2,}(?: +={2,})+$\"},{token:e.table,regex:\"^\\\\+-{2,}(?:\\\\+-{2,})+\\\\+$\"},{token:e.table,regex:\"^\\\\+={2,}(?:\\\\+={2,})+\\\\+$\"},{token:[\"text\",e.literal],regex:t+\"(``)(?=\\\\S)\",next:\"code\"},{token:[\"text\",e.bold],regex:t+\"(\\\\*\\\\*)(?=\\\\S)\",next:\"bold\"},{token:[\"text\",e.italic],regex:t+\"(\\\\*)(?=\\\\S)\",next:\"italic\"},{token:e.entity,regex:\"\\\\|[\\\\w\\\\-]+?\\\\|\"},{token:e.entity,regex:\":[\\\\w-:]+:`\\\\S\",next:\"entity\"},{token:[\"text\",e.entity],regex:t+\"(_`)(?=\\\\S)\",next:\"entity\"},{token:e.entity,regex:\"_[A-Za-z0-9\\\\-]+?\"},{token:[\"text\",e.link],regex:t+\"(`)(?=\\\\S)\",next:\"link\"},{token:e.link,regex:\"[A-Za-z0-9\\\\-]+?__?\"},{token:e.link,regex:\"\\\\[[^\\\\]]+?\\\\]_\"},{token:e.link,regex:\"https?://\\\\S+\"},{token:e.table,regex:\"\\\\|\"}],codeblock:[{token:e.literal,regex:\"^ +.+$\",next:\"codeblock\"},{token:e.literal,regex:\"^$\",next:\"codeblock\"},{token:\"empty\",regex:\"\",next:\"start\"}],code:[{token:e.literal,regex:\"\\\\S``\"+n,next:\"start\"},{defaultToken:e.literal}],bold:[{token:e.bold,regex:\"\\\\S\\\\*\\\\*\"+n,next:\"start\"},{defaultToken:e.bold}],italic:[{token:e.italic,regex:\"\\\\S\\\\*\"+n,next:\"start\"},{defaultToken:e.italic}],entity:[{token:e.entity,regex:\"\\\\S`\"+n,next:\"start\"},{defaultToken:e.entity}],link:[{token:e.link,regex:\"\\\\S`__?\"+n,next:\"start\"},{defaultToken:e.link}],comment:[{token:e.comment,regex:\"^ +.+$\",next:\"comment\"},{token:e.comment,regex:\"^$\",next:\"comment\"},{token:\"empty\",regex:\"\",next:\"start\"}]}};r.inherits(o,s),t.RSTHighlightRules=o}),ace.define(\"ace/mode/rst\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/rst_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./rst_highlight_rules\").RSTHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.type=\"text\",this.$id=\"ace/mode/rst\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict/mode-ruby.js",
    "content": "ace.define(\"ace/mode/ruby_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=t.constantOtherSymbol={token:\"constant.other.symbol.ruby\",regex:\"[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?\"},o=t.qString={token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},u=t.qqString={token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},a=t.tString={token:\"string\",regex:\"[`](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[`]\"},f=t.constantNumericHex={token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\\\b\"},l=t.constantNumericFloat={token:\"constant.numeric\",regex:\"[+-]?\\\\d(?:\\\\d|_(?=\\\\d))*(?:(?:\\\\.\\\\d(?:\\\\d|_(?=\\\\d))*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},c=function(){var e=\"abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|validates_inclusion_of|validates_numericality_of|validates_with|validates_each|authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|cache|expire_fragment|expire_cache_for|observe|cache_sweeper|has_many|has_one|belongs_to|has_and_belongs_to_many\",t=\"alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield\",n=\"true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING\",r=\"$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|$!|root_url|flash|session|cookies|params|request|response|logger|self\",i=this.$keywords=this.createKeywordMapper({keyword:t,\"constant.language\":n,\"variable.language\":r,\"support.function\":e,\"invalid.deprecated\":\"debugger\"},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"comment\",regex:\"^=begin(?:$|\\\\s.*$)\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},[{regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)return n.unshift(\"start\",t),\"paren.lparen\";if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1)return\"paren.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.start\",regex:/\"/,push:[{token:\"constant.language.escape\",regex:/\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/},{token:\"paren.start\",regex:/#{/,push:\"start\"},{token:\"string.end\",regex:/\"/,next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:/\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/},{token:\"paren.start\",regex:/#{/,push:\"start\"},{token:\"string.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:/'/,push:[{token:\"constant.language.escape\",regex:/\\\\['\\\\]/},{token:\"string.end\",regex:/'/,next:\"pop\"},{defaultToken:\"string\"}]}],{token:\"text\",regex:\"::\"},{token:\"variable.instance\",regex:\"@{1,2}[a-zA-Z_\\\\d]+\"},{token:\"support.class\",regex:\"[A-Z][a-zA-Z_\\\\d]+\"},s,f,l,{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:i,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"punctuation.separator.key-value\",regex:\"=>\"},{stateName:\"heredoc\",onMatch:function(e,t,n){var r=e[2]==\"-\"?\"indentedHeredoc\":\"heredoc\",i=e.split(this.splitRegex);return n.push(r,i[3]),[{type:\"constant\",value:i[1]},{type:\"string\",value:i[2]},{type:\"support.class\",value:i[3]},{type:\"string\",value:i[4]}]},regex:\"(<<-?)(['\\\"`]?)([\\\\w]+)(['\\\"`]?)\",rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}],indentedHeredoc:[{token:\"string\",regex:\"^ +\"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}]}},{regex:\"$\",token:\"empty\",next:function(e,t){return t[0]===\"heredoc\"||t[0]===\"indentedHeredoc\"?t[0]:e}},{token:\"string.character\",regex:\"\\\\B\\\\?.\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"^=end(?:$|\\\\s.*$)\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.normalizeRules()};r.inherits(c,i),t.RubyHighlightRules=c}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/ruby\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ruby_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./ruby_highlight_rules\").RubyHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/coffee\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[]\\s*$/),u=t.match(/^\\s*(class|def|module)\\s.*$/),a=t.match(/.*do(\\s*|\\s+\\|.*\\|\\s*)$/),f=t.match(/^\\s*(if|else|when)\\s*/);if(o||u||a||f)r+=n}return r},this.checkOutdent=function(e,t,n){return/^\\s+(end|else)$/.test(t+n)||this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){var r=t.getLine(n);if(/}/.test(r))return this.$outdent.autoOutdent(t,n);var i=this.$getIndent(r),s=t.getLine(n-1),o=this.$getIndent(s),a=t.getTabString();o.length<=i.length&&i.slice(-a.length)==a&&t.remove(new u(n,i.length-a.length,n,i.length))},this.$id=\"ace/mode/ruby\"}.call(l.prototype),t.Mode=l})"
  },
  {
    "path": "lib/src-min-noconflict/mode-rust.js",
    "content": "ace.define(\"ace/mode/rust_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=/\\\\(?:[nrt0'\"\\\\]|x[\\da-fA-F]{2}|u\\{[\\da-fA-F]{6}\\})/.source,o=function(){this.$rules={start:[{token:\"variable.other.source.rust\",regex:\"'[a-zA-Z_][a-zA-Z0-9_]*(?![\\\\'])\"},{token:\"string.quoted.single.source.rust\",regex:\"'(?:[^'\\\\\\\\]|\"+s+\")'\"},{stateName:\"bracketedComment\",onMatch:function(e,t,n){return n.unshift(this.next,e.length-1,t),\"string.quoted.raw.source.rust\"},regex:/r#*\"/,next:[{onMatch:function(e,t,n){var r=\"string.quoted.raw.source.rust\";return e.length>=n[1]?(e.length>n[1]&&(r=\"invalid\"),n.shift(),n.shift(),this.next=n.shift()):this.next=\"\",r},regex:/\"#*/,next:\"start\"},{defaultToken:\"string.quoted.raw.source.rust\"}]},{token:\"string.quoted.double.source.rust\",regex:'\"',push:[{token:\"string.quoted.double.source.rust\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.source.rust\",regex:s},{defaultToken:\"string.quoted.double.source.rust\"}]},{token:[\"keyword.source.rust\",\"text\",\"entity.name.function.source.rust\"],regex:\"\\\\b(fn)(\\\\s+)([a-zA-Z_][a-zA-Z0-9_]*)\"},{token:\"support.constant\",regex:\"\\\\b[a-zA-Z_][\\\\w\\\\d]*::\"},{token:\"keyword.source.rust\",regex:\"\\\\b(?:abstract|alignof|as|box|break|continue|const|crate|do|else|enum|extern|for|final|if|impl|in|let|loop|macro|match|mod|move|mut|offsetof|override|priv|proc|pub|pure|ref|return|self|sizeof|static|struct|super|trait|type|typeof|unsafe|unsized|use|virtual|where|while|yield)\\\\b\"},{token:\"storage.type.source.rust\",regex:\"\\\\b(?:Self|isize|usize|char|bool|u8|u16|u32|u64|u128|f16|f32|f64|i8|i16|i32|i64|i128|str|option|either|c_float|c_double|c_void|FILE|fpos_t|DIR|dirent|c_char|c_schar|c_uchar|c_short|c_ushort|c_int|c_uint|c_long|c_ulong|size_t|ptrdiff_t|clock_t|time_t|c_longlong|c_ulonglong|intptr_t|uintptr_t|off_t|dev_t|ino_t|pid_t|mode_t|ssize_t)\\\\b\"},{token:\"variable.language.source.rust\",regex:\"\\\\bself\\\\b\"},{token:\"comment.line.doc.source.rust\",regex:\"//!.*$\"},{token:\"comment.line.double-dash.source.rust\",regex:\"//.*$\"},{token:\"comment.start.block.source.rust\",regex:\"/\\\\*\",stateName:\"comment\",push:[{token:\"comment.start.block.source.rust\",regex:\"/\\\\*\",push:\"comment\"},{token:\"comment.end.block.source.rust\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.source.rust\"}]},{token:\"keyword.operator\",regex:/\\$|[-=]>|[-+%^=!&|<>]=?|[*/](?![*/])=?/},{token:\"punctuation.operator\",regex:/[?:,;.]/},{token:\"paren.lparen\",regex:/[\\[({]/},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"constant.language.source.rust\",regex:\"\\\\b(?:true|false|Some|None|Ok|Err)\\\\b\"},{token:\"support.constant.source.rust\",regex:\"\\\\b(?:EXIT_FAILURE|EXIT_SUCCESS|RAND_MAX|EOF|SEEK_SET|SEEK_CUR|SEEK_END|_IOFBF|_IONBF|_IOLBF|BUFSIZ|FOPEN_MAX|FILENAME_MAX|L_tmpnam|TMP_MAX|O_RDONLY|O_WRONLY|O_RDWR|O_APPEND|O_CREAT|O_EXCL|O_TRUNC|S_IFIFO|S_IFCHR|S_IFBLK|S_IFDIR|S_IFREG|S_IFMT|S_IEXEC|S_IWRITE|S_IREAD|S_IRWXU|S_IXUSR|S_IWUSR|S_IRUSR|F_OK|R_OK|W_OK|X_OK|STDIN_FILENO|STDOUT_FILENO|STDERR_FILENO)\\\\b\"},{token:\"meta.preprocessor.source.rust\",regex:\"\\\\b\\\\w\\\\(\\\\w\\\\)*!|#\\\\[[\\\\w=\\\\(\\\\)_]+\\\\]\\\\b\"},{token:\"constant.numeric.source.rust\",regex:/\\b(?:0x[a-fA-F0-9_]+|0o[0-7_]+|0b[01_]+|[0-9][0-9_]*(?!\\.))(?:[iu](?:size|8|16|32|64|128))?\\b/},{token:\"constant.numeric.source.rust\",regex:/\\b(?:[0-9][0-9_]*)(?:\\.[0-9][0-9_]*)?(?:[Ee][+-][0-9][0-9_]*)?(?:f32|f64)?\\b/}]},this.normalizeRules()};o.metaData={fileTypes:[\"rs\",\"rc\"],foldingStartMarker:\"^.*\\\\bfn\\\\s*(\\\\w+\\\\s*)?\\\\([^\\\\)]*\\\\)(\\\\s*\\\\{[^\\\\}]*)?\\\\s*$\",foldingStopMarker:\"^\\\\s*\\\\}\",name:\"Rust\",scopeName:\"source.rust\"},r.inherits(o,i),t.RustHighlightRules=o}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/rust\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/rust_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./rust_highlight_rules\").RustHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\",nestable:!0},this.$id=\"ace/mode/rust\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-sass.js",
    "content": "ace.define(\"ace/mode/scss_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=i.arrayToMap(function(){var e=\"-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-\".split(\"|\"),t=\"appearance|background-clip|background-inline-policy|background-origin|background-size|binding|border-bottom-colors|border-left-colors|border-right-colors|border-top-colors|border-end|border-end-color|border-end-style|border-end-width|border-image|border-start|border-start-color|border-start-style|border-start-width|box-align|box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|box-pack|box-sizing|column-count|column-gap|column-width|column-rule|column-rule-width|column-rule-style|column-rule-color|float-edge|font-feature-settings|font-language-override|force-broken-image-icon|image-region|margin-end|margin-start|opacity|outline|outline-color|outline-offset|outline-radius|outline-radius-bottomleft|outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|outline-style|outline-width|padding-end|padding-start|stack-sizing|tab-size|text-blink|text-decoration-color|text-decoration-line|text-decoration-style|transform|transform-origin|transition|transition-delay|transition-duration|transition-property|transition-timing-function|user-focus|user-input|user-modify|user-select|window-shadow|border-radius\".split(\"|\"),n=\"azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index\".split(\"|\"),r=[];for(var i=0,s=e.length;i<s;i++)Array.prototype.push.apply(r,(e[i]+t.join(\"|\"+e[i])).split(\"|\"));return Array.prototype.push.apply(r,t),Array.prototype.push.apply(r,n),r}()),t=i.arrayToMap(\"hsl|hsla|rgb|rgba|url|attr|counter|counters|abs|adjust_color|adjust_hue|alpha|join|blue|ceil|change_color|comparable|complement|darken|desaturate|floor|grayscale|green|hue|if|invert|join|length|lighten|lightness|mix|nth|opacify|opacity|percentage|quote|red|round|saturate|saturation|scale_color|transparentize|type_of|unit|unitless|unqoute\".split(\"|\")),n=i.arrayToMap(\"absolute|all-scroll|always|armenian|auto|baseline|below|bidi-override|block|bold|bolder|border-box|both|bottom|break-all|break-word|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|content-box|crosshair|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|overline|pointer|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|zero\".split(\"|\")),r=i.arrayToMap(\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\".split(\"|\")),s=i.arrayToMap(\"@mixin|@extend|@include|@import|@media|@debug|@warn|@if|@for|@each|@while|@else|@font-face|@-webkit-keyframes|if|and|!default|module|def|end|declare\".split(\"|\")),o=i.arrayToMap(\"a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp\".split(\"|\")),u=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:'[\"].*\\\\\\\\$',next:\"qqstring\"},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"string\",regex:\"['].*\\\\\\\\$\",next:\"qstring\"},{token:\"constant.numeric\",regex:u+\"(?:em|ex|px|cm|mm|in|pt|pc|deg|rad|grad|ms|s|hz|khz|%)\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:\"constant.numeric\",regex:u},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:function(i){return e.hasOwnProperty(i.toLowerCase())?\"support.type\":s.hasOwnProperty(i)?\"keyword\":n.hasOwnProperty(i)?\"constant.language\":t.hasOwnProperty(i)?\"support.function\":r.hasOwnProperty(i.toLowerCase())?\"support.constant.color\":o.hasOwnProperty(i.toLowerCase())?\"variable.language\":\"text\"},regex:\"\\\\-?[@a-z_][@a-z0-9_\\\\-]*\"},{token:\"variable\",regex:\"[a-z_\\\\-$][a-z0-9_\\\\-$]*\\\\b\"},{token:\"variable.language\",regex:\"#[a-z0-9-_]+\"},{token:\"variable.language\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"variable.language\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{token:\"keyword.operator\",regex:\"<|>|<=|>=|==|!=|-|%|#|\\\\+|\\\\$|\\\\+|\\\\*\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],qqstring:[{token:\"string\",regex:'(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',next:\"start\"},{token:\"string\",regex:\".+\"}],qstring:[{token:\"string\",regex:\"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",next:\"start\"},{token:\"string\",regex:\".+\"}]}};r.inherits(o,s),t.ScssHighlightRules=o}),ace.define(\"ace/mode/sass_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/scss_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./scss_highlight_rules\").ScssHighlightRules,o=function(){s.call(this);var e=this.$rules.start;e[1].token==\"comment\"&&(e.splice(1,1,{onMatch:function(e,t,n){return n.unshift(this.next,-1,e.length-2,t),\"comment\"},regex:/^\\s*\\/\\*/,next:\"comment\"},{token:\"error.invalid\",regex:\"/\\\\*|[{;}]\"},{token:\"support.type\",regex:/^\\s*:[\\w\\-]+\\s/}),this.$rules.comment=[{regex:/^\\s*/,onMatch:function(e,t,n){return n[1]===-1&&(n[1]=Math.max(n[2],e.length-1)),e.length<=n[1]?(n.shift(),n.shift(),n.shift(),this.next=n.shift(),\"text\"):(this.next=\"\",\"comment\")},next:\"start\"},{defaultToken:\"comment\"}])};r.inherits(o,s),t.SassHighlightRules=o}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/sass\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/sass_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./sass_highlight_rules\").SassHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.$id=\"ace/mode/sass\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-scad.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/scad_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){var e=this.createKeywordMapper({\"variable.language\":\"this\",keyword:\"module|if|else|for\",\"constant.language\":\"NULL\"},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},s.getStartRule(\"start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:'[\"].*\\\\\\\\$',next:\"qqstring\"},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"string\",regex:\"['].*\\\\\\\\$\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant\",regex:\"<[a-zA-Z0-9.]+>\"},{token:\"keyword\",regex:\"(?:use|include)\"},{token:e,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|new|delete|typeof|void)\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],qqstring:[{token:\"string\",regex:'(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',next:\"start\"},{token:\"string\",regex:\".+\"}],qstring:[{token:\"string\",regex:\"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",next:\"start\"},{token:\"string\",regex:\".+\"}]},this.embedRules(s,\"doc-\",[s.getEndRule(\"start\")])};r.inherits(u,o),t.scadHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/scad\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/scad_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./scad_highlight_rules\").scadHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/scad\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict/mode-scala.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/scala_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"case|default|do|else|for|if|match|while|throw|return|try|trye|catch|finally|yield|abstract|class|def|extends|final|forSome|implicit|implicits|import|lazy|new|object|null|override|package|private|protected|sealed|super|this|trait|type|val|var|with|assert|assume|require|print|println|printf|readLine|readBoolean|readByte|readShort|readChar|readInt|readLong|readFloat|readDouble\",t=\"true|false\",n=\"AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object|Unit|Any|AnyVal|AnyRef|Null|ScalaObject|Singleton|Seq|Iterable|List|Option|Array|Char|Byte|Int|Long|Nothing|App|Application|BufferedIterator|BigDecimal|BigInt|Console|Either|Enumeration|Equiv|Fractional|Function|IndexedSeq|Integral|Iterator|Map|Numeric|Nil|NotNull|Ordered|Ordering|PartialFunction|PartialOrdering|Product|Proxy|Range|Responder|Seq|Serializable|Set|Specializable|Stream|StringContext|Symbol|Traversable|TraversableOnce|Tuple|Vector|Pair|Triple\",r=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"support.function\":n,\"constant.language\":t},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'\"\"\"',next:\"tstring\"},{token:\"string\",regex:'\"(?=.)',next:\"string\"},{token:\"symbol.constant\",regex:\"'[\\\\w\\\\d_]+\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],string:[{token:\"escape\",regex:'\\\\\\\\\"'},{token:\"string\",regex:'\"',next:\"start\"},{token:\"string.invalid\",regex:'[^\"\\\\\\\\]*$',next:\"start\"},{token:\"string\",regex:'[^\"\\\\\\\\]+'}],tstring:[{token:\"string\",regex:'\"{3,5}',next:\"start\"},{defaultToken:\"string\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.ScalaHighlightRules=o}),ace.define(\"ace/mode/scala\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/scala_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript\").Mode,s=e(\"./scala_highlight_rules\").ScalaHighlightRules,o=function(){i.call(this),this.HighlightRules=s};r.inherits(o,i),function(){this.createWorker=function(e){return null},this.$id=\"ace/mode/scala\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict/mode-scheme.js",
    "content": "ace.define(\"ace/mode/scheme_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"case|do|let|loop|if|else|when\",t=\"eq?|eqv?|equal?|and|or|not|null?\",n=\"#t|#f\",r=\"cons|car|cdr|cond|lambda|lambda*|syntax-rules|format|set!|quote|eval|append|list|list?|member?|load\",i=this.createKeywordMapper({\"keyword.control\":e,\"keyword.operator\":t,\"constant.language\":n,\"support.function\":r},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\";.*$\"},{token:[\"storage.type.function-type.scheme\",\"text\",\"entity.name.function.scheme\"],regex:\"(?:\\\\b(?:(define|define-syntax|define-macro))\\\\b)(\\\\s+)((?:\\\\w|\\\\-|\\\\!|\\\\?)*)\"},{token:\"punctuation.definition.constant.character.scheme\",regex:\"#:\\\\S+\"},{token:[\"punctuation.definition.variable.scheme\",\"variable.other.global.scheme\",\"punctuation.definition.variable.scheme\"],regex:\"(\\\\*)(\\\\S*)(\\\\*)\"},{token:\"constant.numeric\",regex:\"#[xXoObB][0-9a-fA-F]+\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\"},{token:i,regex:\"[a-zA-Z_#][a-zA-Z0-9_\\\\-\\\\?\\\\!\\\\*]*\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"}],qqstring:[{token:\"constant.character.escape.scheme\",regex:\"\\\\\\\\.\"},{token:\"string\",regex:'[^\"\\\\\\\\]+',merge:!0},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\",merge:!0},{token:\"string\",regex:'\"|$',next:\"start\",merge:!0}]}};r.inherits(s,i),t.SchemeHighlightRules=s}),ace.define(\"ace/mode/matching_parens_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\)/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\))/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\\s+)/);return t?t[1]:\"\"}}).call(i.prototype),t.MatchingParensOutdent=i}),ace.define(\"ace/mode/scheme\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/scheme_highlight_rules\",\"ace/mode/matching_parens_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./scheme_highlight_rules\").SchemeHighlightRules,o=e(\"./matching_parens_outdent\").MatchingParensOutdent,u=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\";\",this.minorIndentFunctions=[\"define\",\"lambda\",\"define-macro\",\"define-syntax\",\"syntax-rules\",\"define-record-type\",\"define-structure\"],this.$toIndent=function(e){return e.split(\"\").map(function(e){return/\\s/.exec(e)?e:\" \"}).join(\"\")},this.$calculateIndent=function(e,t){var n=this.$getIndent(e),r=0,i,s;for(var o=e.length-1;o>=0;o--){s=e[o],s===\"(\"?(r--,i=!0):s===\"(\"||s===\"[\"||s===\"{\"?(r--,i=!1):(s===\")\"||s===\"]\"||s===\"}\")&&r++;if(r<0)break}if(!(r<0&&i))return r<0&&!i?this.$toIndent(e.substring(0,o+1)):r>0?(n=n.substring(0,n.length-t.length),n):n;o+=1;var u=o,a=\"\";for(;;){s=e[o];if(s===\" \"||s===\"\t\")return this.minorIndentFunctions.indexOf(a)!==-1?this.$toIndent(e.substring(0,u-1)+t):this.$toIndent(e.substring(0,o+1));if(s===undefined)return this.$toIndent(e.substring(0,u-1)+t);a+=e[o],o++}},this.getNextLineIndent=function(e,t,n){return this.$calculateIndent(t,n)},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/scheme\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-scss.js",
    "content": "ace.define(\"ace/mode/scss_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=i.arrayToMap(function(){var e=\"-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-\".split(\"|\"),t=\"appearance|background-clip|background-inline-policy|background-origin|background-size|binding|border-bottom-colors|border-left-colors|border-right-colors|border-top-colors|border-end|border-end-color|border-end-style|border-end-width|border-image|border-start|border-start-color|border-start-style|border-start-width|box-align|box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|box-pack|box-sizing|column-count|column-gap|column-width|column-rule|column-rule-width|column-rule-style|column-rule-color|float-edge|font-feature-settings|font-language-override|force-broken-image-icon|image-region|margin-end|margin-start|opacity|outline|outline-color|outline-offset|outline-radius|outline-radius-bottomleft|outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|outline-style|outline-width|padding-end|padding-start|stack-sizing|tab-size|text-blink|text-decoration-color|text-decoration-line|text-decoration-style|transform|transform-origin|transition|transition-delay|transition-duration|transition-property|transition-timing-function|user-focus|user-input|user-modify|user-select|window-shadow|border-radius\".split(\"|\"),n=\"azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index\".split(\"|\"),r=[];for(var i=0,s=e.length;i<s;i++)Array.prototype.push.apply(r,(e[i]+t.join(\"|\"+e[i])).split(\"|\"));return Array.prototype.push.apply(r,t),Array.prototype.push.apply(r,n),r}()),t=i.arrayToMap(\"hsl|hsla|rgb|rgba|url|attr|counter|counters|abs|adjust_color|adjust_hue|alpha|join|blue|ceil|change_color|comparable|complement|darken|desaturate|floor|grayscale|green|hue|if|invert|join|length|lighten|lightness|mix|nth|opacify|opacity|percentage|quote|red|round|saturate|saturation|scale_color|transparentize|type_of|unit|unitless|unqoute\".split(\"|\")),n=i.arrayToMap(\"absolute|all-scroll|always|armenian|auto|baseline|below|bidi-override|block|bold|bolder|border-box|both|bottom|break-all|break-word|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|content-box|crosshair|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|overline|pointer|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|zero\".split(\"|\")),r=i.arrayToMap(\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\".split(\"|\")),s=i.arrayToMap(\"@mixin|@extend|@include|@import|@media|@debug|@warn|@if|@for|@each|@while|@else|@font-face|@-webkit-keyframes|if|and|!default|module|def|end|declare\".split(\"|\")),o=i.arrayToMap(\"a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp\".split(\"|\")),u=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:'[\"].*\\\\\\\\$',next:\"qqstring\"},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"string\",regex:\"['].*\\\\\\\\$\",next:\"qstring\"},{token:\"constant.numeric\",regex:u+\"(?:em|ex|px|cm|mm|in|pt|pc|deg|rad|grad|ms|s|hz|khz|%)\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:\"constant.numeric\",regex:u},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:function(i){return e.hasOwnProperty(i.toLowerCase())?\"support.type\":s.hasOwnProperty(i)?\"keyword\":n.hasOwnProperty(i)?\"constant.language\":t.hasOwnProperty(i)?\"support.function\":r.hasOwnProperty(i.toLowerCase())?\"support.constant.color\":o.hasOwnProperty(i.toLowerCase())?\"variable.language\":\"text\"},regex:\"\\\\-?[@a-z_][@a-z0-9_\\\\-]*\"},{token:\"variable\",regex:\"[a-z_\\\\-$][a-z0-9_\\\\-$]*\\\\b\"},{token:\"variable.language\",regex:\"#[a-z0-9-_]+\"},{token:\"variable.language\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"variable.language\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{token:\"keyword.operator\",regex:\"<|>|<=|>=|==|!=|-|%|#|\\\\+|\\\\$|\\\\+|\\\\*\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],qqstring:[{token:\"string\",regex:'(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',next:\"start\"},{token:\"string\",regex:\".+\"}],qstring:[{token:\"string\",regex:\"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",next:\"start\"},{token:\"string\",regex:\".+\"}]}};r.inherits(o,s),t.ScssHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/scss\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/scss_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./scss_highlight_rules\").ScssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/css\").CssBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/scss\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict/mode-sh.js",
    "content": "ace.define(\"ace/mode/sh_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=t.reservedKeywords=\"!|{|}|case|do|done|elif|else|esac|fi|for|if|in|then|until|while|&|;|export|local|read|typeset|unset|elif|select|set|function|declare|readonly\",o=t.languageConstructs=\"[|]|alias|bg|bind|break|builtin|cd|command|compgen|complete|continue|dirs|disown|echo|enable|eval|exec|exit|fc|fg|getopts|hash|help|history|jobs|kill|let|logout|popd|printf|pushd|pwd|return|set|shift|shopt|source|suspend|test|times|trap|type|ulimit|umask|unalias|wait\",u=function(){var e=this.createKeywordMapper({keyword:s,\"support.function.builtin\":o,\"invalid.deprecated\":\"debugger\"},\"identifier\"),t=\"(?:(?:[1-9]\\\\d*)|(?:0))\",n=\"(?:\\\\.\\\\d+)\",r=\"(?:\\\\d+)\",i=\"(?:(?:\"+r+\"?\"+n+\")|(?:\"+r+\"\\\\.))\",u=\"(?:(?:\"+i+\"|\"+r+\")\"+\")\",a=\"(?:\"+u+\"|\"+i+\")\",f=\"(?:&\"+r+\")\",l=\"[a-zA-Z_][a-zA-Z0-9_]*\",c=\"(?:\"+l+\"=)\",h=\"(?:\\\\$(?:SHLVL|\\\\$|\\\\!|\\\\?))\",p=\"(?:\"+l+\"\\\\s*\\\\(\\\\))\";this.$rules={start:[{token:\"constant\",regex:/\\\\./},{token:[\"text\",\"comment\"],regex:/(^|\\s)(#.*)$/},{token:\"string.start\",regex:'\"',push:[{token:\"constant.language.escape\",regex:/\\\\(?:[$`\"\\\\]|$)/},{include:\"variables\"},{token:\"keyword.operator\",regex:/`/},{token:\"string.end\",regex:'\"',next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string\",regex:\"\\\\$'\",push:[{token:\"constant.language.escape\",regex:/\\\\(?:[abeEfnrtv\\\\'\"]|x[a-fA-F\\d]{1,2}|u[a-fA-F\\d]{4}([a-fA-F\\d]{4})?|c.|\\d{1,3})/},{token:\"string\",regex:\"'\",next:\"pop\"},{defaultToken:\"string\"}]},{regex:\"<<<\",token:\"keyword.operator\"},{stateName:\"heredoc\",regex:\"(<<-?)(\\\\s*)(['\\\"`]?)([\\\\w\\\\-]+)(['\\\"`]?)\",onMatch:function(e,t,n){var r=e[2]==\"-\"?\"indentedHeredoc\":\"heredoc\",i=e.split(this.splitRegex);return n.push(r,i[4]),[{type:\"constant\",value:i[1]},{type:\"text\",value:i[2]},{type:\"string\",value:i[3]},{type:\"support.class\",value:i[4]},{type:\"string\",value:i[5]}]},rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}],indentedHeredoc:[{token:\"string\",regex:\"^\t+\"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}]}},{regex:\"$\",token:\"empty\",next:function(e,t){return t[0]===\"heredoc\"||t[0]===\"indentedHeredoc\"?t[0]:e}},{token:[\"keyword\",\"text\",\"text\",\"text\",\"variable\"],regex:/(declare|local|readonly)(\\s+)(?:(-[fixar]+)(\\s+))?([a-zA-Z_][a-zA-Z0-9_]*\\b)/},{token:\"variable.language\",regex:h},{token:\"variable\",regex:c},{include:\"variables\"},{token:\"support.function\",regex:p},{token:\"support.function\",regex:f},{token:\"string\",start:\"'\",end:\"'\"},{token:\"constant.numeric\",regex:a},{token:\"constant.numeric\",regex:t+\"\\\\b\"},{token:e,regex:\"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|~|<|>|<=|=>|=|!=|[%&|`]\"},{token:\"punctuation.operator\",regex:\";\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]]\"},{token:\"paren.rparen\",regex:\"[\\\\)\\\\}]\",next:\"pop\"}],variables:[{token:\"variable\",regex:/(\\$)(\\w+)/},{token:[\"variable\",\"paren.lparen\"],regex:/(\\$)(\\()/,push:\"start\"},{token:[\"variable\",\"paren.lparen\",\"keyword.operator\",\"variable\",\"keyword.operator\"],regex:/(\\$)(\\{)([#!]?)(\\w+|[*@#?\\-$!0_])(:[?+\\-=]?|##?|%%?|,,?\\/|\\^\\^?)?/,push:\"start\"},{token:\"variable\",regex:/\\$[*@#?\\-$!0_]/},{token:[\"variable\",\"paren.lparen\"],regex:/(\\$)(\\{)/,push:\"start\"}]},this.normalizeRules()};r.inherits(u,i),t.ShHighlightRules=u}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/sh\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/sh_highlight_rules\",\"ace/range\",\"ace/mode/folding/cstyle\",\"ace/mode/behaviour/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./sh_highlight_rules\").ShHighlightRules,o=e(\"../range\").Range,u=e(\"./folding/cstyle\").FoldMode,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=function(){this.HighlightRules=s,this.foldingRules=new u,this.$behaviour=new a};r.inherits(f,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[:]\\s*$/);o&&(r+=n)}return r};var e={pass:1,\"return\":1,raise:1,\"break\":1,\"continue\":1};this.checkOutdent=function(t,n,r){if(r!==\"\\r\\n\"&&r!==\"\\r\"&&r!==\"\\n\")return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do var s=i.pop();while(s&&(s.type==\"comment\"||s.type==\"text\"&&s.value.match(/^\\s+$/)));return s?s.type==\"keyword\"&&e[s.value]:!1},this.autoOutdent=function(e,t,n){n+=1;var r=this.$getIndent(t.getLine(n)),i=t.getTabString();r.slice(-i.length)==i&&t.remove(new o(n,r.length-i.length,n,r.length))},this.$id=\"ace/mode/sh\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict/mode-sjs.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/sjs_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=new i({noES6:!0}),t=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)\",n=function(e){return e.isContextAware=!0,e},r=function(e){return{token:e.token,regex:e.regex,next:n(function(t,n){return n.length===0&&n.unshift(t),n.unshift(e.next),e.next})}},s=function(e){return{token:e.token,regex:e.regex,next:n(function(e,t){return t.shift(),t[0]||\"start\"})}};this.$rules=e.$rules,this.$rules.no_regex=[{token:\"keyword\",regex:\"(waitfor|or|and|collapse|spawn|retract)\\\\b\"},{token:\"keyword.operator\",regex:\"(->|=>|\\\\.\\\\.)\"},{token:\"variable.language\",regex:\"(hold|default)\\\\b\"},r({token:\"string\",regex:\"`\",next:\"bstring\"}),r({token:\"string\",regex:'\"',next:\"qqstring\"}),r({token:\"string\",regex:'\"',next:\"qqstring\"}),{token:[\"paren.lparen\",\"text\",\"paren.rparen\"],regex:\"(\\\\{)(\\\\s*)(\\\\|)\",next:\"block_arguments\"}].concat(this.$rules.no_regex),this.$rules.block_arguments=[{token:\"paren.rparen\",regex:\"\\\\|\",next:\"no_regex\"}].concat(this.$rules.function_arguments),this.$rules.bstring=[{token:\"constant.language.escape\",regex:t},{token:\"string\",regex:\"\\\\\\\\$\",next:\"bstring\"},r({token:\"paren.lparen\",regex:\"\\\\$\\\\{\",next:\"string_interp\"}),r({token:\"paren.lparen\",regex:\"\\\\$\",next:\"bstring_interp_single\"}),s({token:\"string\",regex:\"`\"}),{defaultToken:\"string\"}],this.$rules.qqstring=[{token:\"constant.language.escape\",regex:t},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},r({token:\"paren.lparen\",regex:\"#\\\\{\",next:\"string_interp\"}),s({token:\"string\",regex:'\"'}),{defaultToken:\"string\"}];var o=[];for(var u=0;u<this.$rules.no_regex.length;u++){var a=this.$rules.no_regex[u],f=String(a.token);f.indexOf(\"paren\")==-1&&(!a.next||a.next.isContextAware)&&o.push(a)}this.$rules.string_interp=[s({token:\"paren.rparen\",regex:\"\\\\}\"}),r({token:\"paren.lparen\",regex:\"{\",next:\"string_interp\"})].concat(o),this.$rules.bstring_interp_single=[{token:[\"identifier\",\"paren.lparen\"],regex:\"(\\\\w+)(\\\\()\",next:\"bstring_interp_single_call\"},s({token:\"identifier\",regex:\"\\\\w*\"})],this.$rules.bstring_interp_single_call=[r({token:\"paren.lparen\",regex:\"\\\\(\",next:\"bstring_interp_single_call\"}),s({token:\"paren.rparen\",regex:\"\\\\)\"})].concat(o)};r.inherits(o,s),t.SJSHighlightRules=o}),ace.define(\"ace/mode/sjs\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/sjs_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript\").Mode,s=e(\"./sjs_highlight_rules\").SJSHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.createWorker=function(e){return null},this.$id=\"ace/mode/sjs\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict/mode-smarty.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/smarty_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=function(){i.call(this);var e={start:[{include:\"#comments\"},{include:\"#blocks\"}],\"#blocks\":[{token:\"punctuation.section.embedded.begin.smarty\",regex:\"\\\\{%?\",push:[{token:\"punctuation.section.embedded.end.smarty\",regex:\"%?\\\\}\",next:\"pop\"},{include:\"#strings\"},{include:\"#variables\"},{include:\"#lang\"},{defaultToken:\"source.smarty\"}]}],\"#comments\":[{token:[\"punctuation.definition.comment.smarty\",\"comment.block.smarty\"],regex:\"(\\\\{%?)(\\\\*)\",push:[{token:\"comment.block.smarty\",regex:\"\\\\*%?\\\\}\",next:\"pop\"},{defaultToken:\"comment.block.smarty\"}]}],\"#lang\":[{token:\"keyword.operator.smarty\",regex:\"(?:!=|!|<=|>=|<|>|===|==|%|&&|\\\\|\\\\|)|\\\\b(?:and|or|eq|neq|ne|gte|gt|ge|lte|lt|le|not|mod)\\\\b\"},{token:\"constant.language.smarty\",regex:\"\\\\b(?:TRUE|FALSE|true|false)\\\\b\"},{token:\"keyword.control.smarty\",regex:\"\\\\b(?:if|else|elseif|foreach|foreachelse|section|switch|case|break|default)\\\\b\"},{token:\"variable.parameter.smarty\",regex:\"\\\\b[a-zA-Z]+=\"},{token:\"support.function.built-in.smarty\",regex:\"\\\\b(?:capture|config_load|counter|cycle|debug|eval|fetch|include_php|include|insert|literal|math|strip|rdelim|ldelim|assign|constant|block|html_[a-z_]*)\\\\b\"},{token:\"support.function.variable-modifier.smarty\",regex:\"\\\\|(?:capitalize|cat|count_characters|count_paragraphs|count_sentences|count_words|date_format|default|escape|indent|lower|nl2br|regex_replace|replace|spacify|string_format|strip_tags|strip|truncate|upper|wordwrap)\"}],\"#strings\":[{token:\"punctuation.definition.string.begin.smarty\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.smarty\",regex:\"'\",next:\"pop\"},{token:\"constant.character.escape.smarty\",regex:\"\\\\\\\\.\"},{defaultToken:\"string.quoted.single.smarty\"}]},{token:\"punctuation.definition.string.begin.smarty\",regex:'\"',push:[{token:\"punctuation.definition.string.end.smarty\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.smarty\",regex:\"\\\\\\\\.\"},{defaultToken:\"string.quoted.double.smarty\"}]}],\"#variables\":[{token:[\"punctuation.definition.variable.smarty\",\"variable.other.global.smarty\"],regex:\"\\\\b(\\\\$)(Smarty\\\\.)\"},{token:[\"punctuation.definition.variable.smarty\",\"variable.other.smarty\"],regex:\"(\\\\$)([a-zA-Z_][a-zA-Z0-9_]*)\\\\b\"},{token:[\"keyword.operator.smarty\",\"variable.other.property.smarty\"],regex:\"(->)([a-zA-Z_][a-zA-Z0-9_]*)\\\\b\"},{token:[\"keyword.operator.smarty\",\"meta.function-call.object.smarty\",\"punctuation.definition.variable.smarty\",\"variable.other.smarty\",\"punctuation.definition.variable.smarty\"],regex:\"(->)([a-zA-Z_][a-zA-Z0-9_]*)(\\\\()(.*?)(\\\\))\"}]},t=e.start;for(var n in this.$rules)this.$rules[n].unshift.apply(this.$rules[n],t);Object.keys(e).forEach(function(t){this.$rules[t]||(this.$rules[t]=e[t])},this),this.normalizeRules()};s.metaData={fileTypes:[\"tpl\"],foldingStartMarker:\"\\\\{%?\",foldingStopMarker:\"%?\\\\}\",name:\"Smarty\",scopeName:\"text.html.smarty\"},r.inherits(s,i),t.SmartyHighlightRules=s}),ace.define(\"ace/mode/smarty\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/smarty_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./smarty_highlight_rules\").SmartyHighlightRules,o=function(){i.call(this),this.HighlightRules=s};r.inherits(o,i),function(){this.$id=\"ace/mode/smarty\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict/mode-snippets.js",
    "content": "ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/snippets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"SELECTION|CURRENT_WORD|SELECTED_TEXT|CURRENT_LINE|LINE_INDEX|LINE_NUMBER|SOFT_TABS|TAB_SIZE|FILENAME|FILEPATH|FULLNAME\";this.$rules={start:[{token:\"constant.language.escape\",regex:/\\\\[\\$}`\\\\]/},{token:\"keyword\",regex:\"\\\\$(?:TM_)?(?:\"+e+\")\\\\b\"},{token:\"variable\",regex:\"\\\\$\\\\w+\"},{onMatch:function(e,t,n){return n[1]?n[1]++:n.unshift(t,1),this.tokenName},tokenName:\"markup.list\",regex:\"\\\\${\",next:\"varDecl\"},{onMatch:function(e,t,n){return n[1]?(n[1]--,n[1]||n.splice(0,2),this.tokenName):\"text\"},tokenName:\"markup.list\",regex:\"}\"},{token:\"doc.comment\",regex:/^\\${2}-{5,}$/}],varDecl:[{regex:/\\d+\\b/,token:\"constant.numeric\"},{token:\"keyword\",regex:\"(?:TM_)?(?:\"+e+\")\\\\b\"},{token:\"variable\",regex:\"\\\\w+\"},{regex:/:/,token:\"punctuation.operator\",next:\"start\"},{regex:/\\//,token:\"string.regex\",next:\"regexp\"},{regex:\"\",next:\"start\"}],regexp:[{regex:/\\\\./,token:\"escape\"},{regex:/\\[/,token:\"regex.start\",next:\"charClass\"},{regex:\"/\",token:\"string.regex\",next:\"format\"},{token:\"string.regex\",regex:\".\"}],charClass:[{regex:\"\\\\.\",token:\"escape\"},{regex:\"\\\\]\",token:\"regex.end\",next:\"regexp\"},{token:\"string.regex\",regex:\".\"}],format:[{regex:/\\\\[ulULE]/,token:\"keyword\"},{regex:/\\$\\d+/,token:\"variable\"},{regex:\"/[gim]*:?\",token:\"string.regex\",next:\"start\"},{token:\"string\",regex:\".\"}]}};r.inherits(o,s),t.SnippetHighlightRules=o;var u=function(){this.$rules={start:[{token:\"text\",regex:\"^\\\\t\",next:\"sn-start\"},{token:\"invalid\",regex:/^ \\s*/},{token:\"comment\",regex:/^#.*/},{token:\"constant.language.escape\",regex:\"^regex \",next:\"regex\"},{token:\"constant.language.escape\",regex:\"^(trigger|endTrigger|name|snippet|guard|endGuard|tabTrigger|key)\\\\b\"}],regex:[{token:\"text\",regex:\"\\\\.\"},{token:\"keyword\",regex:\"/\"},{token:\"empty\",regex:\"$\",next:\"start\"}]},this.embedRules(o,\"sn-\",[{token:\"text\",regex:\"^\\\\t\",next:\"sn-start\"},{onMatch:function(e,t,n){return n.splice(n.length),this.tokenName},tokenName:\"text\",regex:\"^(?!\t)\",next:\"start\"}])};r.inherits(u,s),t.SnippetGroupHighlightRules=u;var a=e(\"./folding/coffee\").FoldMode,f=function(){this.HighlightRules=u,this.foldingRules=new a,this.$behaviour=this.$defaultBehaviour};r.inherits(f,i),function(){this.$indentWithTabs=!0,this.lineCommentStart=\"#\",this.$id=\"ace/mode/snippets\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict/mode-soy_template.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/soy_template_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=function(){i.call(this);var e={start:[{include:\"#template\"},{include:\"#if\"},{include:\"#comment-line\"},{include:\"#comment-block\"},{include:\"#comment-doc\"},{include:\"#call\"},{include:\"#css\"},{include:\"#param\"},{include:\"#print\"},{include:\"#msg\"},{include:\"#for\"},{include:\"#foreach\"},{include:\"#switch\"},{include:\"#tag\"},{include:\"text.html.basic\"}],\"#call\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.call.soy\"],regex:\"(\\\\{/?)(\\\\s*)(?=call|delcall)\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{include:\"#string-quoted-single\"},{include:\"#string-quoted-double\"},{token:[\"entity.name.tag.soy\",\"variable.parameter.soy\"],regex:\"(call|delcall)(\\\\s+[\\\\.\\\\w]+)\"},{token:[\"entity.other.attribute-name.soy\",\"text\",\"keyword.operator.soy\"],regex:\"\\\\b(data)(\\\\s*)(=)\"},{defaultToken:\"meta.tag.call.soy\"}]}],\"#comment-line\":[{token:[\"comment.line.double-slash.soy\",\"comment.line.double-slash.soy\"],regex:\"(//)(.*$)\"}],\"#comment-block\":[{token:\"punctuation.definition.comment.begin.soy\",regex:\"/\\\\*(?!\\\\*)\",push:[{token:\"punctuation.definition.comment.end.soy\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.soy\"}]}],\"#comment-doc\":[{token:\"punctuation.definition.comment.begin.soy\",regex:\"/\\\\*\\\\*(?!/)\",push:[{token:\"punctuation.definition.comment.end.soy\",regex:\"\\\\*/\",next:\"pop\"},{token:[\"support.type.soy\",\"text\",\"variable.parameter.soy\"],regex:\"(@param|@param\\\\?)(\\\\s+)(\\\\w+)\"},{defaultToken:\"comment.block.documentation.soy\"}]}],\"#css\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.css.soy\",\"entity.name.tag.soy\"],regex:\"(\\\\{/?)(\\\\s*)(css)\\\\b\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{token:\"support.constant.soy\",regex:\"\\\\b(?:LITERAL|REFERENCE|BACKEND_SPECIFIC|GOOG)\\\\b\"},{defaultToken:\"meta.tag.css.soy\"}]}],\"#for\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.for.soy\",\"entity.name.tag.soy\"],regex:\"(\\\\{/?)(\\\\s*)(for)\\\\b\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword.operator.soy\",regex:\"\\\\bin\\\\b\"},{token:\"support.function.soy\",regex:\"\\\\brange\\\\b\"},{include:\"#variable\"},{include:\"#number\"},{include:\"#primitive\"},{defaultToken:\"meta.tag.for.soy\"}]}],\"#foreach\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.foreach.soy\",\"entity.name.tag.soy\"],regex:\"(\\\\{/?)(\\\\s*)(foreach)\\\\b\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword.operator.soy\",regex:\"\\\\bin\\\\b\"},{include:\"#variable\"},{defaultToken:\"meta.tag.foreach.soy\"}]}],\"#function\":[{token:\"support.function.soy\",regex:\"\\\\b(?:isFirst|isLast|index|hasData|length|keys|round|floor|ceiling|min|max|randomInt)\\\\b\"}],\"#if\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.if.soy\",\"entity.name.tag.soy\"],regex:\"(\\\\{/?)(\\\\s*)(if|elseif)\\\\b\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{include:\"#variable\"},{include:\"#operator\"},{include:\"#function\"},{include:\"#string-quoted-single\"},{include:\"#string-quoted-double\"},{defaultToken:\"meta.tag.if.soy\"}]}],\"#namespace\":[{token:[\"entity.name.tag.soy\",\"text\",\"variable.parameter.soy\"],regex:\"(namespace|delpackage)(\\\\s+)([\\\\w\\\\.]+)\"}],\"#number\":[{token:\"constant.numeric\",regex:\"[\\\\d]+\"}],\"#operator\":[{token:\"keyword.operator.soy\",regex:\"==|!=|\\\\band\\\\b|\\\\bor\\\\b|\\\\bnot\\\\b|-|\\\\+|/|\\\\?:\"}],\"#param\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.param.soy\",\"entity.name.tag.soy\"],regex:\"(\\\\{/?)(\\\\s*)(param)\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{include:\"#variable\"},{token:[\"entity.other.attribute-name.soy\",\"text\",\"keyword.operator.soy\"],regex:\"\\\\b([\\\\w]+)(\\\\s*)((?::)?)\"},{defaultToken:\"meta.tag.param.soy\"}]}],\"#primitive\":[{token:\"constant.language.soy\",regex:\"\\\\b(?:null|false|true)\\\\b\"}],\"#msg\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.msg.soy\",\"entity.name.tag.soy\"],regex:\"(\\\\{/?)(\\\\s*)(msg)\\\\b\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{include:\"#string-quoted-single\"},{include:\"#string-quoted-double\"},{token:[\"entity.other.attribute-name.soy\",\"text\",\"keyword.operator.soy\"],regex:\"\\\\b(meaning|desc)(\\\\s*)(=)\"},{defaultToken:\"meta.tag.msg.soy\"}]}],\"#print\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.print.soy\",\"entity.name.tag.soy\"],regex:\"(\\\\{/?)(\\\\s*)(print)\\\\b\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{include:\"#variable\"},{include:\"#print-parameter\"},{include:\"#number\"},{include:\"#primitive\"},{include:\"#attribute-lookup\"},{defaultToken:\"meta.tag.print.soy\"}]}],\"#print-parameter\":[{token:\"keyword.operator.soy\",regex:\"\\\\|\"},{token:\"variable.parameter.soy\",regex:\"noAutoescape|id|escapeHtml|escapeJs|insertWorkBreaks|truncate\"}],\"#special-character\":[{token:\"support.constant.soy\",regex:\"\\\\bsp\\\\b|\\\\bnil\\\\b|\\\\\\\\r|\\\\\\\\n|\\\\\\\\t|\\\\blb\\\\b|\\\\brb\\\\b\"}],\"#string-quoted-double\":[{token:\"string.quoted.double\",regex:'\"[^\"]*\"'}],\"#string-quoted-single\":[{token:\"string.quoted.single\",regex:\"'[^']*'\"}],\"#switch\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.switch.soy\",\"entity.name.tag.soy\"],regex:\"(\\\\{/?)(\\\\s*)(switch|case)\\\\b\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{include:\"#variable\"},{include:\"#function\"},{include:\"#number\"},{include:\"#string-quoted-single\"},{include:\"#string-quoted-double\"},{defaultToken:\"meta.tag.switch.soy\"}]}],\"#attribute-lookup\":[{token:\"punctuation.definition.attribute-lookup.begin.soy\",regex:\"\\\\[\",push:[{token:\"punctuation.definition.attribute-lookup.end.soy\",regex:\"\\\\]\",next:\"pop\"},{include:\"#variable\"},{include:\"#function\"},{include:\"#operator\"},{include:\"#number\"},{include:\"#primitive\"},{include:\"#string-quoted-single\"},{include:\"#string-quoted-double\"}]}],\"#tag\":[{token:\"punctuation.definition.tag.begin.soy\",regex:\"\\\\{\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{include:\"#namespace\"},{include:\"#variable\"},{include:\"#special-character\"},{include:\"#tag-simple\"},{include:\"#function\"},{include:\"#operator\"},{include:\"#attribute-lookup\"},{include:\"#number\"},{include:\"#primitive\"},{include:\"#print-parameter\"}]}],\"#tag-simple\":[{token:\"entity.name.tag.soy\",regex:\"{{\\\\s*(?:literal|else|ifempty|default)\\\\s*(?=\\\\})\"}],\"#template\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.template.soy\"],regex:\"(\\\\{/?)(\\\\s*)(?=template|deltemplate)\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{token:[\"entity.name.tag.soy\",\"text\",\"entity.name.function.soy\"],regex:\"(template|deltemplate)(\\\\s+)([\\\\.\\\\w]+)\",originalRegex:\"(?<=template|deltemplate)\\\\s+([\\\\.\\\\w]+)\"},{token:[\"entity.other.attribute-name.soy\",\"text\",\"keyword.operator.soy\",\"text\",\"string.quoted.double.soy\"],regex:'\\\\b(private)(\\\\s*)(=)(\\\\s*)(\"true\"|\"false\")'},{token:[\"entity.other.attribute-name.soy\",\"text\",\"keyword.operator.soy\",\"text\",\"string.quoted.single.soy\"],regex:\"\\\\b(private)(\\\\s*)(=)(\\\\s*)('true'|'false')\"},{token:[\"entity.other.attribute-name.soy\",\"text\",\"keyword.operator.soy\",\"text\",\"string.quoted.double.soy\"],regex:'\\\\b(autoescape)(\\\\s*)(=)(\\\\s*)(\"true\"|\"false\"|\"contextual\")'},{token:[\"entity.other.attribute-name.soy\",\"text\",\"keyword.operator.soy\",\"text\",\"string.quoted.single.soy\"],regex:\"\\\\b(autoescape)(\\\\s*)(=)(\\\\s*)('true'|'false'|'contextual')\"},{defaultToken:\"meta.tag.template.soy\"}]}],\"#variable\":[{token:\"variable.other.soy\",regex:\"\\\\$[\\\\w\\\\.]+\"}]};for(var t in e)this.$rules[t]?this.$rules[t].unshift.apply(this.$rules[t],e[t]):this.$rules[t]=e[t];this.normalizeRules()};s.metaData={comment:\"SoyTemplate\",fileTypes:[\"soy\"],firstLineMatch:\"\\\\{\\\\s*namespace\\\\b\",foldingStartMarker:\"\\\\{\\\\s*template\\\\s+[^\\\\}]*\\\\}\",foldingStopMarker:\"\\\\{\\\\s*/\\\\s*template\\\\s*\\\\}\",name:\"SoyTemplate\",scopeName:\"source.soy\"},r.inherits(s,i),t.SoyTemplateHighlightRules=s}),ace.define(\"ace/mode/soy_template\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/soy_template_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./soy_template_highlight_rules\").SoyTemplateHighlightRules,o=function(){i.call(this),this.HighlightRules=s};r.inherits(o,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/soy_template\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict/mode-space.js",
    "content": "ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/space_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"empty_line\",regex:/ */,next:\"key\"},{token:\"empty_line\",regex:/$/,next:\"key\"}],key:[{token:\"variable\",regex:/\\S+/},{token:\"empty_line\",regex:/$/,next:\"start\"},{token:\"keyword.operator\",regex:/ /,next:\"value\"}],value:[{token:\"keyword.operator\",regex:/$/,next:\"start\"},{token:\"string\",regex:/[^$]/}]}};r.inherits(s,i),t.SpaceHighlightRules=s}),ace.define(\"ace/mode/space\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/folding/coffee\",\"ace/mode/space_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./folding/coffee\").FoldMode,o=e(\"./space_highlight_rules\").SpaceHighlightRules,u=function(){this.HighlightRules=o,this.foldingRules=new s,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.$id=\"ace/mode/space\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-sql.js",
    "content": "ace.define(\"ace/mode/sql_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"select|insert|update|delete|from|where|and|or|group|by|order|limit|offset|having|as|case|when|else|end|type|left|right|join|on|outer|desc|asc|union|create|table|primary|key|if|foreign|not|references|default|null|inner|cross|natural|database|drop|grant\",t=\"true|false\",n=\"avg|count|first|last|max|min|sum|ucase|lcase|mid|len|round|rank|now|format|coalesce|ifnull|isnull|nvl\",r=\"int|numeric|decimal|date|varchar|char|bigint|float|double|bit|binary|text|set|timestamp|money|real|number|integer\",i=this.createKeywordMapper({\"support.function\":n,keyword:e,\"constant.language\":t,\"storage.type\":r},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\"--.*$\"},{token:\"comment\",start:\"/\\\\*\",end:\"\\\\*/\"},{token:\"string\",regex:'\".*?\"'},{token:\"string\",regex:\"'.*?'\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:i,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"text\",regex:\"\\\\s+\"}]},this.normalizeRules()};r.inherits(s,i),t.SqlHighlightRules=s}),ace.define(\"ace/mode/sql\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/sql_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./sql_highlight_rules\").SqlHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart=\"--\",this.$id=\"ace/mode/sql\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict/mode-sqlserver.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/sqlserver_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"ALL|AND|ANY|BETWEEN|EXISTS|IN|LIKE|NOT|OR|SOME\";e+=\"|NULL|IS|APPLY|INNER|OUTER|LEFT|RIGHT|JOIN|CROSS\";var t=\"OPENDATASOURCE|OPENQUERY|OPENROWSET|OPENXML|AVG|CHECKSUM_AGG|COUNT|COUNT_BIG|GROUPING|GROUPING_ID|MAX|MIN|STDEV|STDEVP|SUM|VAR|VARP|DENSE_RANK|NTILE|RANK|ROW_NUMBER@@DATEFIRST|@@DBTS|@@LANGID|@@LANGUAGE|@@LOCK_TIMEOUT|@@MAX_CONNECTIONS|@@MAX_PRECISION|@@NESTLEVEL|@@OPTIONS|@@REMSERVER|@@SERVERNAME|@@SERVICENAME|@@SPID|@@TEXTSIZE|@@VERSION|CAST|CONVERT|PARSE|TRY_CAST|TRY_CONVERT|TRY_PARSE@@CURSOR_ROWS|@@FETCH_STATUS|CURSOR_STATUS|@@DATEFIRST|@@LANGUAGE|CURRENT_TIMESTAMP|DATEADD|DATEDIFF|DATEFROMPARTS|DATENAME|DATEPART|DATETIME2FROMPARTS|DATETIMEFROMPARTS|DATETIMEOFFSETFROMPARTS|DAY|EOMONTH|GETDATE|GETUTCDATE|ISDATE|MONTH|SET DATEFIRST|SET DATEFORMAT|SET LANGUAGE|SMALLDATETIMEFROMPARTS|SP_HELPLANGUAGE|SWITCHOFFSET|SYSDATETIME|SYSDATETIMEOFFSET|SYSUTCDATETIME|TIMEFROMPARTS|TODATETIMEOFFSET|YEAR|CHOOSE|IIF|ABS|ACOS|ASIN|ATAN|ATN2|CEILING|COS|COT|DEGREES|EXP|FLOOR|LOG|LOG10|PI|POWER|RADIANS|RAND|ROUND|SIGN|SIN|SQRT|SQUARE|TAN|@@PROCID|APPLOCK_MODE|APPLOCK_TEST|APP_NAME|ASSEMBLYPROPERTY|COLUMNPROPERTY|COL_LENGTH|COL_NAME|DATABASEPROPERTYEX|DATABASE_PRINCIPAL_ID|DB_ID|DB_NAME|FILEGROUPPROPERTY|FILEGROUP_ID|FILEGROUP_NAME|FILEPROPERTY|FILE_ID|FILE_IDEX|FILE_NAME|FULLTEXTCATALOGPROPERTY|FULLTEXTSERVICEPROPERTY|INDEXKEY_PROPERTY|INDEXPROPERTY|INDEX_COL|OBJECTPROPERTY|OBJECTPROPERTYEX|OBJECT_DEFINITION|OBJECT_ID|OBJECT_NAME|OBJECT_SCHEMA_NAME|ORIGINAL_DB_NAME|PARSENAME|SCHEMA_ID|SCHEMA_NAME|SCOPE_IDENTITY|SERVERPROPERTY|STATS_DATE|TYPEPROPERTY|TYPE_ID|TYPE_NAME|CERTENCODED|CERTPRIVATEKEY|CURRENT_USER|DATABASE_PRINCIPAL_ID|HAS_PERMS_BY_NAME|IS_MEMBER|IS_ROLEMEMBER|IS_SRVROLEMEMBER|ORIGINAL_LOGIN|PERMISSIONS|PWDCOMPARE|PWDENCRYPT|SCHEMA_ID|SCHEMA_NAME|SESSION_USER|SUSER_ID|SUSER_NAME|SUSER_SID|SUSER_SNAME|SYS.FN_BUILTIN_PERMISSIONS|SYS.FN_GET_AUDIT_FILE|SYS.FN_MY_PERMISSIONS|SYSTEM_USER|USER_ID|USER_NAME|ASCII|CHAR|CHARINDEX|CONCAT|DIFFERENCE|FORMAT|LEN|LOWER|LTRIM|NCHAR|PATINDEX|QUOTENAME|REPLACE|REPLICATE|REVERSE|RTRIM|SOUNDEX|SPACE|STR|STUFF|SUBSTRING|UNICODE|UPPER|$PARTITION|@@ERROR|@@IDENTITY|@@PACK_RECEIVED|@@ROWCOUNT|@@TRANCOUNT|BINARY_CHECKSUM|CHECKSUM|CONNECTIONPROPERTY|CONTEXT_INFO|CURRENT_REQUEST_ID|ERROR_LINE|ERROR_MESSAGE|ERROR_NUMBER|ERROR_PROCEDURE|ERROR_SEVERITY|ERROR_STATE|FORMATMESSAGE|GETANSINULL|GET_FILESTREAM_TRANSACTION_CONTEXT|HOST_ID|HOST_NAME|ISNULL|ISNUMERIC|MIN_ACTIVE_ROWVERSION|NEWID|NEWSEQUENTIALID|ROWCOUNT_BIG|XACT_STATE|@@CONNECTIONS|@@CPU_BUSY|@@IDLE|@@IO_BUSY|@@PACKET_ERRORS|@@PACK_RECEIVED|@@PACK_SENT|@@TIMETICKS|@@TOTAL_ERRORS|@@TOTAL_READ|@@TOTAL_WRITE|FN_VIRTUALFILESTATS|PATINDEX|TEXTPTR|TEXTVALID|COALESCE|NULLIF\",n=\"BIGINT|BINARY|BIT|CHAR|CURSOR|DATE|DATETIME|DATETIME2|DATETIMEOFFSET|DECIMAL|FLOAT|HIERARCHYID|IMAGE|INTEGER|INT|MONEY|NCHAR|NTEXT|NUMERIC|NVARCHAR|REAL|SMALLDATETIME|SMALLINT|SMALLMONEY|SQL_VARIANT|TABLE|TEXT|TIME|TIMESTAMP|TINYINT|UNIQUEIDENTIFIER|VARBINARY|VARCHAR|XML\",r=\"sp_addextendedproc|sp_addextendedproperty|sp_addmessage|sp_addtype|sp_addumpdevice|sp_add_data_file_recover_suspect_db|sp_add_log_file_recover_suspect_db|sp_altermessage|sp_attach_db|sp_attach_single_file_db|sp_autostats|sp_bindefault|sp_bindrule|sp_bindsession|sp_certify_removable|sp_clean_db_file_free_space|sp_clean_db_free_space|sp_configure|sp_control_plan_guide|sp_createstats|sp_create_plan_guide|sp_create_plan_guide_from_handle|sp_create_removable|sp_cycle_errorlog|sp_datatype_info|sp_dbcmptlevel|sp_dbmmonitoraddmonitoring|sp_dbmmonitorchangealert|sp_dbmmonitorchangemonitoring|sp_dbmmonitordropalert|sp_dbmmonitordropmonitoring|sp_dbmmonitorhelpalert|sp_dbmmonitorhelpmonitoring|sp_dbmmonitorresults|sp_db_increased_partitions|sp_delete_backuphistory|sp_depends|sp_describe_first_result_set|sp_describe_undeclared_parameters|sp_detach_db|sp_dropdevice|sp_dropextendedproc|sp_dropextendedproperty|sp_dropmessage|sp_droptype|sp_execute|sp_executesql|sp_getapplock|sp_getbindtoken|sp_help|sp_helpconstraint|sp_helpdb|sp_helpdevice|sp_helpextendedproc|sp_helpfile|sp_helpfilegroup|sp_helpindex|sp_helplanguage|sp_helpserver|sp_helpsort|sp_helpstats|sp_helptext|sp_helptrigger|sp_indexoption|sp_invalidate_textptr|sp_lock|sp_monitor|sp_prepare|sp_prepexec|sp_prepexecrpc|sp_procoption|sp_recompile|sp_refreshview|sp_releaseapplock|sp_rename|sp_renamedb|sp_resetstatus|sp_sequence_get_range|sp_serveroption|sp_setnetname|sp_settriggerorder|sp_spaceused|sp_tableoption|sp_unbindefault|sp_unbindrule|sp_unprepare|sp_updateextendedproperty|sp_updatestats|sp_validname|sp_who|sys.sp_merge_xtp_checkpoint_files|sys.sp_xtp_bind_db_resource_pool|sys.sp_xtp_checkpoint_force_garbage_collection|sys.sp_xtp_control_proc_exec_stats|sys.sp_xtp_control_query_exec_stats|sys.sp_xtp_unbind_db_resource_pool\",s=\"ABSOLUTE|ACTION|ADA|ADD|ADMIN|AFTER|AGGREGATE|ALIAS|ALL|ALLOCATE|ALTER|AND|ANY|ARE|ARRAY|AS|ASC|ASENSITIVE|ASSERTION|ASYMMETRIC|AT|ATOMIC|AUTHORIZATION|BACKUP|BEFORE|BEGIN|BETWEEN|BIT_LENGTH|BLOB|BOOLEAN|BOTH|BREADTH|BREAK|BROWSE|BULK|BY|CALL|CALLED|CARDINALITY|CASCADE|CASCADED|CASE|CATALOG|CHARACTER|CHARACTER_LENGTH|CHAR_LENGTH|CHECK|CHECKPOINT|CLASS|CLOB|CLOSE|CLUSTERED|COALESCE|COLLATE|COLLATION|COLLECT|COLUMN|COMMIT|COMPLETION|COMPUTE|CONDITION|CONNECT|CONNECTION|CONSTRAINT|CONSTRAINTS|CONSTRUCTOR|CONTAINS|CONTAINSTABLE|CONTINUE|CORR|CORRESPONDING|COVAR_POP|COVAR_SAMP|CREATE|CROSS|CUBE|CUME_DIST|CURRENT|CURRENT_CATALOG|CURRENT_DATE|CURRENT_DEFAULT_TRANSFORM_GROUP|CURRENT_PATH|CURRENT_ROLE|CURRENT_SCHEMA|CURRENT_TIME|CURRENT_TRANSFORM_GROUP_FOR_TYPE|CYCLE|DATA|DATABASE|DBCC|DEALLOCATE|DEC|DECLARE|DEFAULT|DEFERRABLE|DEFERRED|DELETE|DENY|DEPTH|DEREF|DESC|DESCRIBE|DESCRIPTOR|DESTROY|DESTRUCTOR|DETERMINISTIC|DIAGNOSTICS|DICTIONARY|DISCONNECT|DISK|DISTINCT|DISTRIBUTED|DOMAIN|DOUBLE|DROP|DUMP|DYNAMIC|EACH|ELEMENT|ELSE|END|END-EXEC|EQUALS|ERRLVL|ESCAPE|EVERY|EXCEPT|EXCEPTION|EXEC|EXECUTE|EXISTS|EXIT|EXTERNAL|EXTRACT|FETCH|FILE|FILLFACTOR|FILTER|FIRST|FOR|FOREIGN|FORTRAN|FOUND|FREE|FREETEXT|FREETEXTTABLE|FROM|FULL|FULLTEXTTABLE|FUNCTION|FUSION|GENERAL|GET|GLOBAL|GO|GOTO|GRANT|GROUP|HAVING|HOLD|HOLDLOCK|HOST|HOUR|IDENTITY|IDENTITYCOL|IDENTITY_INSERT|IF|IGNORE|IMMEDIATE|IN|INCLUDE|INDEX|INDICATOR|INITIALIZE|INITIALLY|INNER|INOUT|INPUT|INSENSITIVE|INSERT|INTEGER|INTERSECT|INTERSECTION|INTERVAL|INTO|IS|ISOLATION|ITERATE|JOIN|KEY|KILL|LANGUAGE|LARGE|LAST|LATERAL|LEADING|LESS|LEVEL|LIKE|LIKE_REGEX|LIMIT|LINENO|LN|LOAD|LOCAL|LOCALTIME|LOCALTIMESTAMP|LOCATOR|MAP|MATCH|MEMBER|MERGE|METHOD|MINUTE|MOD|MODIFIES|MODIFY|MODULE|MULTISET|NAMES|NATIONAL|NATURAL|NCLOB|NEW|NEXT|NO|NOCHECK|NONCLUSTERED|NONE|NORMALIZE|NOT|NULL|NULLIF|OBJECT|OCCURRENCES_REGEX|OCTET_LENGTH|OF|OFF|OFFSETS|OLD|ON|ONLY|OPEN|OPERATION|OPTION|OR|ORDER|ORDINALITY|OUT|OUTER|OUTPUT|OVER|OVERLAPS|OVERLAY|PAD|PARAMETER|PARAMETERS|PARTIAL|PARTITION|PASCAL|PATH|PERCENT|PERCENTILE_CONT|PERCENTILE_DISC|PERCENT_RANK|PIVOT|PLAN|POSITION|POSITION_REGEX|POSTFIX|PRECISION|PREFIX|PREORDER|PREPARE|PRESERVE|PRIMARY|PRINT|PRIOR|PRIVILEGES|PROC|PROCEDURE|PUBLIC|RAISERROR|RANGE|READ|READS|READTEXT|RECONFIGURE|RECURSIVE|REF|REFERENCES|REFERENCING|REGR_AVGX|REGR_AVGY|REGR_COUNT|REGR_INTERCEPT|REGR_R2|REGR_SLOPE|REGR_SXX|REGR_SXY|REGR_SYY|RELATIVE|RELEASE|REPLICATION|RESTORE|RESTRICT|RESULT|RETURN|RETURNS|REVERT|REVOKE|ROLE|ROLLBACK|ROLLUP|ROUTINE|ROW|ROWCOUNT|ROWGUIDCOL|ROWS|RULE|SAVE|SAVEPOINT|SCHEMA|SCOPE|SCROLL|SEARCH|SECOND|SECTION|SECURITYAUDIT|SELECT|SEMANTICKEYPHRASETABLE|SEMANTICSIMILARITYDETAILSTABLE|SEMANTICSIMILARITYTABLE|SENSITIVE|SEQUENCE|SESSION|SET|SETS|SETUSER|SHUTDOWN|SIMILAR|SIZE|SOME|SPECIFIC|SPECIFICTYPE|SQL|SQLCA|SQLCODE|SQLERROR|SQLEXCEPTION|SQLSTATE|SQLWARNING|START|STATE|STATEMENT|STATIC|STATISTICS|STDDEV_POP|STDDEV_SAMP|STRUCTURE|SUBMULTISET|SUBSTRING_REGEX|SYMMETRIC|SYSTEM|TABLESAMPLE|TEMPORARY|TERMINATE|TEXTSIZE|THAN|THEN|TIMEZONE_HOUR|TIMEZONE_MINUTE|TO|TOP|TRAILING|TRAN|TRANSACTION|TRANSLATE|TRANSLATE_REGEX|TRANSLATION|TREAT|TRIGGER|TRIM|TRUNCATE|TSEQUAL|UESCAPE|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNPIVOT|UPDATE|UPDATETEXT|USAGE|USE|USER|USING|VALUE|VALUES|VARIABLE|VARYING|VAR_POP|VAR_SAMP|VIEW|WAITFOR|WHEN|WHENEVER|WHERE|WHILE|WIDTH_BUCKET|WINDOW|WITH|WITHIN|WITHIN GROUP|WITHOUT|WORK|WRITE|WRITETEXT|XMLAGG|XMLATTRIBUTES|XMLBINARY|XMLCAST|XMLCOMMENT|XMLCONCAT|XMLDOCUMENT|XMLELEMENT|XMLEXISTS|XMLFOREST|XMLITERATE|XMLNAMESPACES|XMLPARSE|XMLPI|XMLQUERY|XMLSERIALIZE|XMLTABLE|XMLTEXT|XMLVALIDATE|ZONE\";s+=\"|KEEPIDENTITY|KEEPDEFAULTS|IGNORE_CONSTRAINTS|IGNORE_TRIGGERS|XLOCK|FORCESCAN|FORCESEEK|HOLDLOCK|NOLOCK|NOWAIT|PAGLOCK|READCOMMITTED|READCOMMITTEDLOCK|READPAST|READUNCOMMITTED|REPEATABLEREAD|ROWLOCK|SERIALIZABLE|SNAPSHOT|SPATIAL_WINDOW_MAX_CELLS|TABLOCK|TABLOCKX|UPDLOCK|XLOCK|IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX|EXPAND|VIEWS|FAST|FORCE|KEEP|KEEPFIXED|MAXDOP|MAXRECURSION|OPTIMIZE|PARAMETERIZATION|SIMPLE|FORCED|RECOMPILE|ROBUST|PLAN|SPATIAL_WINDOW_MAX_CELLS|NOEXPAND|HINT\",s+=\"|LOOP|HASH|MERGE|REMOTE\",s+=\"|TRY|CATCH|THROW\",s+=\"|TYPE\",s=s.split(\"|\"),s=s.filter(function(r,i,s){return e.split(\"|\").indexOf(r)===-1&&t.split(\"|\").indexOf(r)===-1&&n.split(\"|\").indexOf(r)===-1}),s=s.sort().join(\"|\");var o=this.createKeywordMapper({\"constant.language\":e,\"storage.type\":n,\"support.function\":t,\"support.storedprocedure\":r,keyword:s},\"identifier\",!0),u=\"SET ANSI_DEFAULTS|SET ANSI_NULLS|SET ANSI_NULL_DFLT_OFF|SET ANSI_NULL_DFLT_ON|SET ANSI_PADDING|SET ANSI_WARNINGS|SET ARITHABORT|SET ARITHIGNORE|SET CONCAT_NULL_YIELDS_NULL|SET CURSOR_CLOSE_ON_COMMIT|SET DATEFIRST|SET DATEFORMAT|SET DEADLOCK_PRIORITY|SET FIPS_FLAGGER|SET FMTONLY|SET FORCEPLAN|SET IDENTITY_INSERT|SET IMPLICIT_TRANSACTIONS|SET LANGUAGE|SET LOCK_TIMEOUT|SET NOCOUNT|SET NOEXEC|SET NUMERIC_ROUNDABORT|SET OFFSETS|SET PARSEONLY|SET QUERY_GOVERNOR_COST_LIMIT|SET QUOTED_IDENTIFIER|SET REMOTE_PROC_TRANSACTIONS|SET ROWCOUNT|SET SHOWPLAN_ALL|SET SHOWPLAN_TEXT|SET SHOWPLAN_XML|SET STATISTICS IO|SET STATISTICS PROFILE|SET STATISTICS TIME|SET STATISTICS XML|SET TEXTSIZE|SET XACT_ABORT\".split(\"|\"),a=\"READ UNCOMMITTED|READ COMMITTED|REPEATABLE READ|SNAPSHOP|SERIALIZABLE\".split(\"|\");for(var f=0;f<a.length;f++)u.push(\"SET TRANSACTION ISOLATION LEVEL \"+a[f]);this.$rules={start:[{token:\"string.start\",regex:\"'\",next:[{token:\"constant.language.escape\",regex:/''/},{token:\"string.end\",next:\"start\",regex:\"'\"},{defaultToken:\"string\"}]},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"--.*$\"},{token:\"comment\",start:\"/\\\\*\",end:\"\\\\*/\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:o,regex:\"@{0,2}[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b(?!])\"},{token:\"constant.class\",regex:\"@@?[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=|\\\\*\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"punctuation\",regex:\",|;\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"no_regex\"},{defaultToken:\"comment\",caseInsensitive:!0}]};for(var f=0;f<u.length;f++)this.$rules.start.unshift({token:\"set.statement\",regex:u[f]});this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules();var l=[],c=function(e,t){e.forEach(function(e){l.push({name:e,value:e,score:0,meta:t})})};c(r.split(\"|\"),\"procedure\"),c(e.split(\"|\"),\"operator\"),c(t.split(\"|\"),\"function\"),c(n.split(\"|\"),\"type\"),c(u,\"statement\"),c(s.split(\"|\"),\"keyword\"),this.completions=l};r.inherits(o,s),t.SqlHighlightRules=o}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/folding/sqlserver\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./cstyle\").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\\bCASE\\b|\\bBEGIN\\b)|^\\s*(\\/\\*)/i,this.startRegionRe=/^\\s*(\\/\\*|--)#?region\\b/,this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.getBeginEndBlock(e,n,o,s[1]);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;return},this.getBeginEndBlock=function(e,t,n,r){var s={row:t,column:n+r.length},o=e.getLength(),u,a=1,f=/(\\bCASE\\b|\\bBEGIN\\b)|(\\bEND\\b)/i;while(++t<o){u=e.getLine(t);var l=f.exec(u);if(!l)continue;l[1]?a++:a--;if(!a)break}var c=t;if(c>s.row)return new i(s.row,s.column,c,u.length)}}.call(o.prototype)}),ace.define(\"ace/mode/sqlserver\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/sqlserver_highlight_rules\",\"ace/mode/folding/sqlserver\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./sqlserver_highlight_rules\").SqlHighlightRules,o=e(\"./folding/sqlserver\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.blockComment={start:\"/*\",end:\"*/\"},this.getCompletions=function(e,t,n,r){return t.$mode.$highlightRules.completions},this.$id=\"ace/mode/sql\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-stylus.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/stylus_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/css_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=e(\"./css_highlight_rules\"),o=function(){var e=this.createKeywordMapper({\"support.type\":s.supportType,\"support.function\":s.supportFunction,\"support.constant\":s.supportConstant,\"support.constant.color\":s.supportConstantColor,\"support.constant.fonts\":s.supportConstantFonts},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:/\\/\\/.*$/},{token:\"comment\",regex:/\\/\\*/,next:\"comment\"},{token:[\"entity.name.function.stylus\",\"text\"],regex:\"^([-a-zA-Z_][-\\\\w]*)?(\\\\()\"},{token:[\"entity.other.attribute-name.class.stylus\"],regex:\"\\\\.-?[_a-zA-Z]+[_a-zA-Z0-9-]*\"},{token:[\"entity.language.stylus\"],regex:\"^ *&\"},{token:[\"variable.language.stylus\"],regex:\"(arguments)\"},{token:[\"keyword.stylus\"],regex:\"@[-\\\\w]+\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:s.pseudoElements},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:s.pseudoClasses},{token:[\"entity.name.tag.stylus\"],regex:\"(?:\\\\b)(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(?:h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|samp|script|section|select|small|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)(?:\\\\b)\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation.definition.entity.stylus\",\"entity.other.attribute-name.id.stylus\"],regex:\"(#)([a-zA-Z][a-zA-Z0-9_-]*)\"},{token:\"meta.vendor-prefix.stylus\",regex:\"-webkit-|-moz\\\\-|-ms-|-o-\"},{token:\"keyword.control.stylus\",regex:\"(?:!important|for|in|return|true|false|null|if|else|unless|return)\\\\b\"},{token:\"keyword.operator.stylus\",regex:\"!|~|\\\\+|-|(?:\\\\*)?\\\\*|\\\\/|%|(?:\\\\.)\\\\.\\\\.|<|>|(?:=|:|\\\\?|\\\\+|-|\\\\*|\\\\/|%|<|>)?=|!=\"},{token:\"keyword.operator.stylus\",regex:\"(?:in|is(?:nt)?|not)\\\\b\"},{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:s.numRe},{token:\"keyword\",regex:\"(?:ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\\\\b\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],qqstring:[{token:\"string\",regex:'[^\"\\\\\\\\]+'},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"start\"}],qstring:[{token:\"string\",regex:\"[^'\\\\\\\\]+\"},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"start\"}]}};r.inherits(o,i),t.StylusHighlightRules=o}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/stylus\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/stylus_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./stylus_highlight_rules\").StylusHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/stylus\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-svg.js",
    "content": "ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./xml_highlight_rules\").XmlHighlightRules,u=e(\"./behaviour/xml\").XmlBehaviour,a=e(\"./folding/xml\").FoldMode,f=e(\"../worker/worker_client\").WorkerClient,l=function(){this.HighlightRules=o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,s),function(){this.voidElements=i.arrayToMap([]),this.blockComment={start:\"<!--\",end:\"-->\"},this.createWorker=function(e){var t=new f([\"ace\"],\"ace/mode/xml_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/xml\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/svg_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,s=e(\"./xml_highlight_rules\").XmlHighlightRules,o=function(){s.call(this),this.embedTagRules(i,\"js-\",\"script\"),this.normalizeRules()};r.inherits(o,s),t.SvgHighlightRules=o}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/svg\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/xml\",\"ace/mode/javascript\",\"ace/mode/svg_highlight_rules\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./xml\").Mode,s=e(\"./javascript\").Mode,o=e(\"./svg_highlight_rules\").SvgHighlightRules,u=e(\"./folding/mixed\").FoldMode,a=e(\"./folding/xml\").FoldMode,f=e(\"./folding/cstyle\").FoldMode,l=function(){i.call(this),this.HighlightRules=o,this.createModeDelegates({\"js-\":s}),this.foldingRules=new u(new a,{\"js-\":new f})};r.inherits(l,i),function(){this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.$id=\"ace/mode/svg\"}.call(l.prototype),t.Mode=l})"
  },
  {
    "path": "lib/src-min-noconflict/mode-swift.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/swift_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){function t(e,t){var n=t.nestable||t.interpolation,r=t.interpolation&&t.interpolation.nextState||\"start\",s={regex:e+(t.multiline?\"\":\"(?=.)\"),token:\"string.start\"},o=[t.escape&&{regex:t.escape,token:\"character.escape\"},t.interpolation&&{token:\"paren.quasi.start\",regex:i.escapeRegExp(t.interpolation.lead+t.interpolation.open),push:r},t.error&&{regex:t.error,token:\"error.invalid\"},{regex:e+(t.multiline?\"\":\"|$\"),token:\"string.end\",next:n?\"pop\":\"start\"},{defaultToken:\"string\"}].filter(Boolean);n?s.push=o:s.next=o;if(!t.interpolation)return s;var u=t.interpolation.open,a=t.interpolation.close,f={regex:\"[\"+i.escapeRegExp(u+a)+\"]\",onMatch:function(e,t,n){this.next=e==u?this.nextState:\"\";if(e==u&&n.length)return n.unshift(\"start\",t),\"paren\";if(e==a&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1)return\"paren.quasi.end\"}return e==u?\"paren.lparen\":\"paren.rparen\"},nextState:r};return[f,s]}function n(){return[{token:\"comment\",regex:\"\\\\/\\\\/(?=.)\",next:[s.getTagRule(),{token:\"comment\",regex:\"$|^\",next:\"start\"},{defaultToken:\"comment\",caseInsensitive:!0}]},s.getStartRule(\"doc-start\"),{token:\"comment.start\",regex:/\\/\\*/,stateName:\"nested_comment\",push:[s.getTagRule(),{token:\"comment.start\",regex:/\\/\\*/,push:\"nested_comment\"},{token:\"comment.end\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var e=this.createKeywordMapper({\"variable.language\":\"\",keyword:\"__COLUMN__|__FILE__|__FUNCTION__|__LINE__|as|associativity|break|case|class|continue|default|deinit|didSet|do|dynamicType|else|enum|extension|fallthrough|for|func|get|if|import|in|infix|init|inout|is|left|let|let|mutating|new|none|nonmutating|operator|override|postfix|precedence|prefix|protocol|return|right|safe|Self|self|set|struct|subscript|switch|Type|typealias|unowned|unsafe|var|weak|where|while|willSet|convenience|dynamic|final|infix|lazy|mutating|nonmutating|optional|override|postfix|prefix|required|static|guard|defer\",\"storage.type\":\"bool|double|Double|extension|float|Float|int|Int|private|public|string|String\",\"constant.language\":\"false|Infinity|NaN|nil|no|null|null|off|on|super|this|true|undefined|yes\",\"support.function\":\"\"},\"identifier\");this.$rules={start:[t('\"',{escape:/\\\\(?:[0\\\\tnr\"']|u{[a-fA-F1-9]{0,8}})/,interpolation:{lead:\"\\\\\",open:\"(\",close:\")\"},error:/\\\\./,multiline:!1}),n({type:\"c\",nestable:!0}),{regex:/@[a-zA-Z_$][a-zA-Z_$\\d\\u0080-\\ufffe]*/,token:\"variable.parameter\"},{regex:/[a-zA-Z_$][a-zA-Z_$\\d\\u0080-\\ufffe]*/,token:e},{token:\"constant.numeric\",regex:/[+-]?(?:0(?:b[01]+|o[0-7]+|x[\\da-fA-F])|\\d+(?:(?:\\.\\d*)?(?:[PpEe][+-]?\\d+)?)\\b)/},{token:\"keyword.operator\",regex:/--|\\+\\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/}]},this.embedRules(s,\"doc-\",[s.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(u,o),t.HighlightRules=u}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/swift\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/swift_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./swift_highlight_rules\").HighlightRules,o=e(\"./behaviour/cstyle\").CstyleBehaviour,u=e(\"./folding/cstyle\").FoldMode,a=function(){this.HighlightRules=s,this.foldingRules=new u,this.$behaviour=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(a,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\",nestable:!0},this.$id=\"ace/mode/swift\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict/mode-swig.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},n,{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[n,{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]}],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[{token:\"comment\",regex:\"\\\\/\\\\/\",next:\"line_comment\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:/\\/\\*/,next:\"comment\"},{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0[xX][0-9a-fA-F]+\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment_regex_allowed\"},{token:\"comment\",regex:\"\\\\/\\\\/\",next:\"line_comment_regex_allowed\"},{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],comment_regex_allowed:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\",caseInsensitive:!0}],comment:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"no_regex\"},{defaultToken:\"comment\",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:\"start\"},{defaultToken:\"comment\",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:\"no_regex\"},{defaultToken:\"comment\",caseInsensitive:!0}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)return n.unshift(\"start\",t),\"paren\";if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/swig\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/html_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./html_highlight_rules\").HtmlHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){s.call(this);var e=\"autoescape|block|else|elif|extends|filter|for|if|import|include|macro|parent|raw|set|spaceless\";e=e+\"|end\"+e.replace(/\\|/g,\"|end\");var t=\"addslashes|capitalize|date|default|escape|first|groupBy|join|json|last|lower|raw|replace|reverse|safe|sort|striptags|title|uniq|upper|url_encode|url_decode\",n=\"first|last|index|index0|revindex|revindex0|key\",r=\"null|none|true|false|loop\",i=\"in|is|and|or|not|as|with|only\",o=this.createKeywordMapper({\"keyword.control.swig\":e,\"support.function.swig\":t+\"|\"+n,\"keyword.operator.swig\":i,\"constant.language.swig\":r},\"identifier\");for(var u in this.$rules)this.$rules[u].unshift({token:\"variable.other.readwrite.local.swig\",regex:\"\\\\{\\\\{-?\",push:\"swig-start\"},{token:\"meta.tag.swig\",regex:\"\\\\{%-?\",push:\"swig-start\"},{token:\"comment.block.swig\",regex:\"\\\\{#-?\",push:\"swig-comment\"});this.$rules[\"swig-comment\"]=[{token:\"comment.block.swig\",regex:\".*-?#}\",next:\"pop\"}],this.$rules[\"swig-start\"]=[{token:\"variable.other.readwrite.local.swig\",regex:\"-?\\\\}\\\\}\",next:\"pop\"},{token:\"meta.tag.swig\",regex:\"-?%\\\\}\",next:\"pop\"},{token:\"string\",regex:\"'\",next:\"swig-qstring\"},{token:\"string\",regex:'\"',next:\"swig-qqstring\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:o,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator.assignment\",regex:\"=|~\"},{token:\"keyword.operator.comparison\",regex:\"==|!=|<|>|>=|<=|===\"},{token:\"keyword.operator.arithmetic\",regex:\"\\\\+|-|/|%|//|\\\\*|\\\\*\\\\*\"},{token:\"keyword.operator.other\",regex:\"\\\\.\\\\.|\\\\|\"},{token:\"punctuation.operator\",regex:/\\?|\\:|\\,|\\;|\\./},{token:\"paren.lparen\",regex:/[\\[\\({]/},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"text\",regex:\"\\\\s+\"}],this.$rules[\"swig-qqstring\"]=[{token:\"constant.language.escape\",regex:/\\\\[\\\\\"$#ntr]|#{[^\"}]*}/},{token:\"string\",regex:'\"',next:\"swig-start\"},{defaultToken:\"string\"}],this.$rules[\"swig-qstring\"]=[{token:\"constant.language.escape\",regex:/\\\\[\\\\'ntr]}/},{token:\"string\",regex:\"'\",next:\"swig-start\"},{defaultToken:\"string\"}],this.normalizeRules()};r.inherits(u,o),t.SwigHighlightRules=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-tcl.js",
    "content": "ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/tcl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment\",regex:\"#.*\\\\\\\\$\",next:\"commentfollow\"},{token:\"comment\",regex:\"#.*$\"},{token:\"support.function\",regex:\"[\\\\\\\\]$\",next:\"splitlineStart\"},{token:\"text\",regex:/\\\\(?:[\"{}\\[\\]$\\\\])/},{token:\"text\",regex:\"^|[^{][;][^}]|[/\\r/]\",next:\"commandItem\"},{token:\"string\",regex:'[ ]*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:'[ ]*[\"]',next:\"qqstring\"},{token:\"variable.instance\",regex:\"[$]\",next:\"variable\"},{token:\"support.function\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|{\\\\*}|;|::\"},{token:\"identifier\",regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"paren.lparen\",regex:\"[[{]\",next:\"commandItem\"},{token:\"paren.lparen\",regex:\"[(]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],commandItem:[{token:\"comment\",regex:\"#.*\\\\\\\\$\",next:\"commentfollow\"},{token:\"comment\",regex:\"#.*$\",next:\"start\"},{token:\"string\",regex:'[ ]*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"variable.instance\",regex:\"[$]\",next:\"variable\"},{token:\"support.function\",regex:\"(?:[:][:])[a-zA-Z0-9_/]+(?:[:][:])\",next:\"commandItem\"},{token:\"support.function\",regex:\"[a-zA-Z0-9_/]+(?:[:][:])\",next:\"commandItem\"},{token:\"support.function\",regex:\"(?:[:][:])\",next:\"commandItem\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"support.function\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|{\\\\*}|;|::\"},{token:\"keyword\",regex:\"[a-zA-Z0-9_/]+\",next:\"start\"}],commentfollow:[{token:\"comment\",regex:\".*\\\\\\\\$\",next:\"commentfollow\"},{token:\"comment\",regex:\".+\",next:\"start\"}],splitlineStart:[{token:\"text\",regex:\"^.\",next:\"start\"}],variable:[{token:\"variable.instance\",regex:\"[a-zA-Z_\\\\d]+(?:[(][a-zA-Z_\\\\d]+[)])?\",next:\"start\"},{token:\"variable.instance\",regex:\"{?[a-zA-Z_\\\\d]+}?\",next:\"start\"}],qqstring:[{token:\"string\",regex:'(?:[^\\\\\\\\]|\\\\\\\\.)*?[\"]',next:\"start\"},{token:\"string\",regex:\".+\"}]}};r.inherits(s,i),t.TclHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/tcl\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/folding/cstyle\",\"ace/mode/tcl_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./folding/cstyle\").FoldMode,o=e(\"./tcl_highlight_rules\").TclHighlightRules,u=e(\"./matching_brace_outdent\").MatchingBraceOutdent,a=e(\"../range\").Range,f=function(){this.HighlightRules=o,this.$outdent=new u,this.foldingRules=new s,this.$behaviour=this.$defaultBehaviour};r.inherits(f,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[]\\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/tcl\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict/mode-tex.js",
    "content": "ace.define(\"ace/mode/tex_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(e){e||(e=\"text\"),this.$rules={start:[{token:\"comment\",regex:\"%.*$\"},{token:e,regex:\"\\\\\\\\[$&%#\\\\{\\\\}]\"},{token:\"keyword\",regex:\"\\\\\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\\\b\",next:\"nospell\"},{token:\"keyword\",regex:\"\\\\\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])}]\"},{token:e,regex:\"\\\\s+\"}],nospell:[{token:\"comment\",regex:\"%.*$\",next:\"start\"},{token:\"nospell.\"+e,regex:\"\\\\\\\\[$&%#\\\\{\\\\}]\"},{token:\"keyword\",regex:\"\\\\\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\\\b\"},{token:\"keyword\",regex:\"\\\\\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])\",next:\"start\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])]\"},{token:\"paren.keyword.operator\",regex:\"}\",next:\"start\"},{token:\"nospell.\"+e,regex:\"\\\\s+\"},{token:\"nospell.\"+e,regex:\"\\\\w+\"}]}};r.inherits(o,s),t.TexHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/tex\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/tex_highlight_rules\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./tex_highlight_rules\").TexHighlightRules,u=e(\"./matching_brace_outdent\").MatchingBraceOutdent,a=function(e){e?this.HighlightRules=s:this.HighlightRules=o,this.$outdent=new u,this.$behaviour=this.$defaultBehaviour};r.inherits(a,i),function(){this.lineCommentStart=\"%\",this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.allowAutoInsert=function(){return!1},this.$id=\"ace/mode/tex\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict/mode-text.js",
    "content": ""
  },
  {
    "path": "lib/src-min-noconflict/mode-textile.js",
    "content": "ace.define(\"ace/mode/textile_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:function(e){return e.charAt(0)==\"h\"?\"markup.heading.\"+e.charAt(1):\"markup.heading\"},regex:\"h1|h2|h3|h4|h5|h6|bq|p|bc|pre\",next:\"blocktag\"},{token:\"keyword\",regex:\"[\\\\*]+|[#]+\"},{token:\"text\",regex:\".+\"}],blocktag:[{token:\"keyword\",regex:\"\\\\. \",next:\"start\"},{token:\"keyword\",regex:\"\\\\(\",next:\"blocktagproperties\"}],blocktagproperties:[{token:\"keyword\",regex:\"\\\\)\",next:\"blocktag\"},{token:\"string\",regex:\"[a-zA-Z0-9\\\\-_]+\"},{token:\"keyword\",regex:\"#\"}]}};r.inherits(s,i),t.TextileHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/textile\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/textile_highlight_rules\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./textile_highlight_rules\").TextileHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.type=\"text\",this.getNextLineIndent=function(e,t,n){return e==\"intag\"?n:\"\"},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/textile\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-toml.js",
    "content": "ace.define(\"ace/mode/toml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=this.createKeywordMapper({\"constant.language.boolean\":\"true|false\"},\"identifier\"),t=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\";this.$rules={start:[{token:\"comment.toml\",regex:/#.*$/},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:[\"variable.keygroup.toml\"],regex:\"(?:^\\\\s*)(\\\\[\\\\[([^\\\\]]+)\\\\]\\\\])\"},{token:[\"variable.keygroup.toml\"],regex:\"(?:^\\\\s*)(\\\\[([^\\\\]]+)\\\\])\"},{token:e,regex:t},{token:\"support.date.toml\",regex:\"\\\\d{4}-\\\\d{2}-\\\\d{2}(T)\\\\d{2}:\\\\d{2}:\\\\d{2}(Z)\"},{token:\"constant.numeric.toml\",regex:\"-?\\\\d+(\\\\.?\\\\d+)?\"}],qqstring:[{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"constant.language.escape\",regex:'\\\\\\\\[0tnr\"\\\\\\\\]'},{token:\"string\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]}};r.inherits(s,i),t.TomlHighlightRules=s}),ace.define(\"ace/mode/folding/ini\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/^\\s*\\[([^\\])]*)]\\s*(?:$|[;#])/,this.getFoldWidgetRange=function(e,t,n){var r=this.foldingStartMarker,s=e.getLine(n),o=s.match(r);if(!o)return;var u=o[1]+\".\",a=s.length,f=e.getLength(),l=n,c=n;while(++n<f){s=e.getLine(n);if(/^\\s*$/.test(s))continue;o=s.match(r);if(o&&o[1].lastIndexOf(u,0)!==0)break;c=n}if(c>l){var h=e.getLine(c).length;return new i(l,a,c,h)}}}.call(o.prototype)}),ace.define(\"ace/mode/toml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/toml_highlight_rules\",\"ace/mode/folding/ini\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./toml_highlight_rules\").TomlHighlightRules,o=e(\"./folding/ini\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"#\",this.$id=\"ace/mode/toml\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-tsx.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/typescript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,s=function(e){var t=[{token:[\"keyword.operator.ts\",\"text\",\"variable.parameter.function.ts\",\"text\"],regex:\"\\\\b(module)(\\\\s*)([a-zA-Z0-9_?.$][\\\\w?.$]*)(\\\\s*\\\\{)\"},{token:[\"storage.type.variable.ts\",\"text\",\"keyword.other.ts\",\"text\"],regex:\"(super)(\\\\s*\\\\()([a-zA-Z0-9,_?.$\\\\s]+\\\\s*)(\\\\))\"},{token:[\"entity.name.function.ts\",\"paren.lparen\",\"paren.rparen\"],regex:\"([a-zA-Z_?.$][\\\\w?.$]*)(\\\\()(\\\\))\"},{token:[\"variable.parameter.function.ts\",\"text\",\"variable.parameter.function.ts\"],regex:\"([a-zA-Z0-9_?.$][\\\\w?.$]*)(\\\\s*:\\\\s*)([a-zA-Z0-9_?.$][\\\\w?.$]*)\"},{token:[\"keyword.operator.ts\"],regex:\"(?:\\\\b(constructor|declare|interface|as|AS|public|private|class|extends|export|super)\\\\b)\"},{token:[\"storage.type.variable.ts\"],regex:\"(?:\\\\b(this\\\\.|string\\\\b|bool\\\\b|number)\\\\b)\"},{token:[\"keyword.operator.ts\",\"storage.type.variable.ts\",\"keyword.operator.ts\",\"storage.type.variable.ts\"],regex:\"(class)(\\\\s+[a-zA-Z0-9_?.$][\\\\w?.$]*\\\\s+)(extends)(\\\\s+[a-zA-Z0-9_?.$][\\\\w?.$]*\\\\s+)?\"},{token:\"keyword\",regex:\"(?:super|export|class|extends|import)\\\\b\"}],n=(new i({jsx:(e&&e.jsx)==1})).getRules();n.start=t.concat(n.start),this.$rules=n};r.inherits(s,i),t.TypeScriptHighlightRules=s}),ace.define(\"ace/mode/typescript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/typescript_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript\").Mode,s=e(\"./typescript_highlight_rules\").TypeScriptHighlightRules,o=e(\"./behaviour/cstyle\").CstyleBehaviour,u=e(\"./folding/cstyle\").FoldMode,a=e(\"./matching_brace_outdent\").MatchingBraceOutdent,f=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new o,this.foldingRules=new u};r.inherits(f,i),function(){this.createWorker=function(e){return null},this.$id=\"ace/mode/typescript\"}.call(f.prototype),t.Mode=f}),ace.define(\"ace/mode/tsx\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/typescript\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./typescript\").Mode,s=function(){i.call(this),this.$highlightRuleConfig={jsx:!0}};r.inherits(s,i),function(){this.$id=\"ace/mode/tsx\"}.call(s.prototype),t.Mode=s})"
  },
  {
    "path": "lib/src-min-noconflict/mode-twig.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/twig_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/html_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./html_highlight_rules\").HtmlHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){s.call(this);var e=\"autoescape|block|do|embed|extends|filter|flush|for|from|if|import|include|macro|sandbox|set|spaceless|use|verbatim\";e=e+\"|end\"+e.replace(/\\|/g,\"|end\");var t=\"abs|batch|capitalize|convert_encoding|date|date_modify|default|e|escape|first|format|join|json_encode|keys|last|length|lower|merge|nl2br|number_format|raw|replace|reverse|slice|sort|split|striptags|title|trim|upper|url_encode\",n=\"attribute|constant|cycle|date|dump|parent|random|range|template_from_string\",r=\"constant|divisibleby|sameas|defined|empty|even|iterable|odd\",i=\"null|none|true|false\",o=\"b-and|b-xor|b-or|in|is|and|or|not\",u=this.createKeywordMapper({\"keyword.control.twig\":e,\"support.function.twig\":[t,n,r].join(\"|\"),\"keyword.operator.twig\":o,\"constant.language.twig\":i},\"identifier\");for(var a in this.$rules)this.$rules[a].unshift({token:\"variable.other.readwrite.local.twig\",regex:\"\\\\{\\\\{-?\",push:\"twig-start\"},{token:\"meta.tag.twig\",regex:\"\\\\{%-?\",push:\"twig-start\"},{token:\"comment.block.twig\",regex:\"\\\\{#-?\",push:\"twig-comment\"});this.$rules[\"twig-comment\"]=[{token:\"comment.block.twig\",regex:\".*-?#\\\\}\",next:\"pop\"}],this.$rules[\"twig-start\"]=[{token:\"variable.other.readwrite.local.twig\",regex:\"-?\\\\}\\\\}\",next:\"pop\"},{token:\"meta.tag.twig\",regex:\"-?%\\\\}\",next:\"pop\"},{token:\"string\",regex:\"'\",next:\"twig-qstring\"},{token:\"string\",regex:'\"',next:\"twig-qqstring\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:u,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator.assignment\",regex:\"=|~\"},{token:\"keyword.operator.comparison\",regex:\"==|!=|<|>|>=|<=|===\"},{token:\"keyword.operator.arithmetic\",regex:\"\\\\+|-|/|%|//|\\\\*|\\\\*\\\\*\"},{token:\"keyword.operator.other\",regex:\"\\\\.\\\\.|\\\\|\"},{token:\"punctuation.operator\",regex:/\\?|:|,|;|\\./},{token:\"paren.lparen\",regex:/[\\[\\({]/},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"text\",regex:\"\\\\s+\"}],this.$rules[\"twig-qqstring\"]=[{token:\"constant.language.escape\",regex:/\\\\[\\\\\"$#ntr]|#{[^\"}]*}/},{token:\"string\",regex:'\"',next:\"twig-start\"},{defaultToken:\"string\"}],this.$rules[\"twig-qstring\"]=[{token:\"constant.language.escape\",regex:/\\\\[\\\\'ntr]}/},{token:\"string\",regex:\"'\",next:\"twig-start\"},{defaultToken:\"string\"}],this.normalizeRules()};r.inherits(u,o),t.TwigHighlightRules=u}),ace.define(\"ace/mode/twig\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/twig_highlight_rules\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./twig_highlight_rules\").TwigHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=function(){i.call(this),this.HighlightRules=s,this.$outdent=new o};r.inherits(u,i),function(){this.blockComment={start:\"{#\",end:\"#}\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/twig\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-typescript.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/typescript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,s=function(e){var t=[{token:[\"keyword.operator.ts\",\"text\",\"variable.parameter.function.ts\",\"text\"],regex:\"\\\\b(module)(\\\\s*)([a-zA-Z0-9_?.$][\\\\w?.$]*)(\\\\s*\\\\{)\"},{token:[\"storage.type.variable.ts\",\"text\",\"keyword.other.ts\",\"text\"],regex:\"(super)(\\\\s*\\\\()([a-zA-Z0-9,_?.$\\\\s]+\\\\s*)(\\\\))\"},{token:[\"entity.name.function.ts\",\"paren.lparen\",\"paren.rparen\"],regex:\"([a-zA-Z_?.$][\\\\w?.$]*)(\\\\()(\\\\))\"},{token:[\"variable.parameter.function.ts\",\"text\",\"variable.parameter.function.ts\"],regex:\"([a-zA-Z0-9_?.$][\\\\w?.$]*)(\\\\s*:\\\\s*)([a-zA-Z0-9_?.$][\\\\w?.$]*)\"},{token:[\"keyword.operator.ts\"],regex:\"(?:\\\\b(constructor|declare|interface|as|AS|public|private|class|extends|export|super)\\\\b)\"},{token:[\"storage.type.variable.ts\"],regex:\"(?:\\\\b(this\\\\.|string\\\\b|bool\\\\b|number)\\\\b)\"},{token:[\"keyword.operator.ts\",\"storage.type.variable.ts\",\"keyword.operator.ts\",\"storage.type.variable.ts\"],regex:\"(class)(\\\\s+[a-zA-Z0-9_?.$][\\\\w?.$]*\\\\s+)(extends)(\\\\s+[a-zA-Z0-9_?.$][\\\\w?.$]*\\\\s+)?\"},{token:\"keyword\",regex:\"(?:super|export|class|extends|import)\\\\b\"}],n=(new i({jsx:(e&&e.jsx)==1})).getRules();n.start=t.concat(n.start),this.$rules=n};r.inherits(s,i),t.TypeScriptHighlightRules=s}),ace.define(\"ace/mode/typescript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/typescript_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript\").Mode,s=e(\"./typescript_highlight_rules\").TypeScriptHighlightRules,o=e(\"./behaviour/cstyle\").CstyleBehaviour,u=e(\"./folding/cstyle\").FoldMode,a=e(\"./matching_brace_outdent\").MatchingBraceOutdent,f=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new o,this.foldingRules=new u};r.inherits(f,i),function(){this.createWorker=function(e){return null},this.$id=\"ace/mode/typescript\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict/mode-vala.js",
    "content": "ace.define(\"ace/mode/vala_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:[\"meta.using.vala\",\"keyword.other.using.vala\",\"meta.using.vala\",\"storage.modifier.using.vala\",\"meta.using.vala\",\"punctuation.terminator.vala\"],regex:\"^(\\\\s*)(using)\\\\b(?:(\\\\s*)([^ ;$]+)(\\\\s*)((?:;)?))?\"},{include:\"#code\"}],\"#all-types\":[{include:\"#primitive-arrays\"},{include:\"#primitive-types\"},{include:\"#object-types\"}],\"#annotations\":[{token:[\"storage.type.annotation.vala\",\"punctuation.definition.annotation-arguments.begin.vala\"],regex:\"(@[^ (]+)(\\\\()\",push:[{token:\"punctuation.definition.annotation-arguments.end.vala\",regex:\"\\\\)\",next:\"pop\"},{token:[\"constant.other.key.vala\",\"text\",\"keyword.operator.assignment.vala\"],regex:\"(\\\\w*)(\\\\s*)(=)\"},{include:\"#code\"},{token:\"punctuation.seperator.property.vala\",regex:\",\"},{defaultToken:\"meta.declaration.annotation.vala\"}]},{token:\"storage.type.annotation.vala\",regex:\"@\\\\w*\"}],\"#anonymous-classes-and-new\":[{token:\"keyword.control.new.vala\",regex:\"\\\\bnew\\\\b\",push_disabled:[{token:\"text\",regex:\"(?<=\\\\)|\\\\])(?!\\\\s*{)|(?<=})|(?=;)\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<=\\\\)|\\\\])(?!\\\\s*{)|(?<=})|(?=;)\",next:\"pop\"},{token:[\"storage.type.vala\",\"text\"],regex:\"(\\\\w+)(\\\\s*)(?=\\\\[)\",push:[{token:\"text\",regex:\"}|(?=;|\\\\))\",next:\"pop\"},{token:\"text\",regex:\"\\\\[\",push:[{token:\"text\",regex:\"\\\\]\",next:\"pop\"},{include:\"#code\"}]},{token:\"text\",regex:\"{\",push:[{token:\"text\",regex:\"(?=})\",next:\"pop\"},{include:\"#code\"}]}]},{token:\"text\",regex:\"(?=\\\\w.*\\\\()\",push:[{token:\"text\",regex:\"(?<=\\\\))\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<=\\\\))\",next:\"pop\"},{include:\"#object-types\"},{token:\"text\",regex:\"\\\\(\",push:[{token:\"text\",regex:\"\\\\)\",next:\"pop\"},{include:\"#code\"}]}]},{token:\"meta.inner-class.vala\",regex:\"{\",push:[{token:\"meta.inner-class.vala\",regex:\"}\",next:\"pop\"},{include:\"#class-body\"},{defaultToken:\"meta.inner-class.vala\"}]}]}],\"#assertions\":[{token:[\"keyword.control.assert.vala\",\"meta.declaration.assertion.vala\"],regex:\"\\\\b(assert|requires|ensures)(\\\\s)\",push:[{token:\"meta.declaration.assertion.vala\",regex:\"$\",next:\"pop\"},{token:\"keyword.operator.assert.expression-seperator.vala\",regex:\":\"},{include:\"#code\"},{defaultToken:\"meta.declaration.assertion.vala\"}]}],\"#class\":[{token:\"meta.class.vala\",regex:\"(?=\\\\w?[\\\\w\\\\s]*(?:class|(?:@)?interface|enum|struct|namespace)\\\\s+\\\\w+)\",push:[{token:\"paren.vala\",regex:\"}\",next:\"pop\"},{include:\"#storage-modifiers\"},{include:\"#comments\"},{token:[\"storage.modifier.vala\",\"meta.class.identifier.vala\",\"entity.name.type.class.vala\"],regex:\"(class|(?:@)?interface|enum|struct|namespace)(\\\\s+)([\\\\w\\\\.]+)\"},{token:\"storage.modifier.extends.vala\",regex:\":\",push:[{token:\"meta.definition.class.inherited.classes.vala\",regex:\"(?={|,)\",next:\"pop\"},{include:\"#object-types-inherited\"},{include:\"#comments\"},{defaultToken:\"meta.definition.class.inherited.classes.vala\"}]},{token:[\"storage.modifier.implements.vala\",\"meta.definition.class.implemented.interfaces.vala\"],regex:\"(,)(\\\\s)\",push:[{token:\"meta.definition.class.implemented.interfaces.vala\",regex:\"(?=\\\\{)\",next:\"pop\"},{include:\"#object-types-inherited\"},{include:\"#comments\"},{defaultToken:\"meta.definition.class.implemented.interfaces.vala\"}]},{token:\"paren.vala\",regex:\"{\",push:[{token:\"paren.vala\",regex:\"(?=})\",next:\"pop\"},{include:\"#class-body\"},{defaultToken:\"meta.class.body.vala\"}]},{defaultToken:\"meta.class.vala\"}],comment:\"attempting to put namespace in here.\"}],\"#class-body\":[{include:\"#comments\"},{include:\"#class\"},{include:\"#enums\"},{include:\"#methods\"},{include:\"#annotations\"},{include:\"#storage-modifiers\"},{include:\"#code\"}],\"#code\":[{include:\"#comments\"},{include:\"#class\"},{token:\"text\",regex:\"{\",push:[{token:\"text\",regex:\"}\",next:\"pop\"},{include:\"#code\"}]},{include:\"#assertions\"},{include:\"#parens\"},{include:\"#constants-and-special-vars\"},{include:\"#anonymous-classes-and-new\"},{include:\"#keywords\"},{include:\"#storage-modifiers\"},{include:\"#strings\"},{include:\"#all-types\"}],\"#comments\":[{token:\"punctuation.definition.comment.vala\",regex:\"/\\\\*\\\\*/\"},{include:\"text.html.javadoc\"},{include:\"#comments-inline\"}],\"#comments-inline\":[{token:\"punctuation.definition.comment.vala\",regex:\"/\\\\*\",push:[{token:\"punctuation.definition.comment.vala\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.vala\"}]},{token:[\"text\",\"punctuation.definition.comment.vala\",\"comment.line.double-slash.vala\"],regex:\"(\\\\s*)(//)(.*$)\"}],\"#constants-and-special-vars\":[{token:\"constant.language.vala\",regex:\"\\\\b(?:true|false|null)\\\\b\"},{token:\"variable.language.vala\",regex:\"\\\\b(?:this|base)\\\\b\"},{token:\"constant.numeric.vala\",regex:\"\\\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\\\.?[0-9]*|\\\\.[0-9]+)(?:(?:e|E)(?:\\\\+|-)?[0-9]+)?)(?:[LlFfUuDd]|UL|ul)?\\\\b\"},{token:[\"keyword.operator.dereference.vala\",\"constant.other.vala\"],regex:\"((?:\\\\.)?)\\\\b([A-Z][A-Z0-9_]+)(?!<|\\\\.class|\\\\s*\\\\w+\\\\s*=)\\\\b\"}],\"#enums\":[{token:\"text\",regex:\"^(?=\\\\s*[A-Z0-9_]+\\\\s*(?:{|\\\\(|,))\",push:[{token:\"text\",regex:\"(?=;|})\",next:\"pop\"},{token:\"constant.other.enum.vala\",regex:\"\\\\w+\",push:[{token:\"meta.enum.vala\",regex:\"(?=,|;|})\",next:\"pop\"},{include:\"#parens\"},{token:\"text\",regex:\"{\",push:[{token:\"text\",regex:\"}\",next:\"pop\"},{include:\"#class-body\"}]},{defaultToken:\"meta.enum.vala\"}]}]}],\"#keywords\":[{token:\"keyword.control.catch-exception.vala\",regex:\"\\\\b(?:try|catch|finally|throw)\\\\b\"},{token:\"keyword.control.vala\",regex:\"\\\\?|:|\\\\?\\\\?\"},{token:\"keyword.control.vala\",regex:\"\\\\b(?:return|break|case|continue|default|do|while|for|foreach|switch|if|else|in|yield|get|set|value)\\\\b\"},{token:\"keyword.operator.vala\",regex:\"\\\\b(?:typeof|is|as)\\\\b\"},{token:\"keyword.operator.comparison.vala\",regex:\"==|!=|<=|>=|<>|<|>\"},{token:\"keyword.operator.assignment.vala\",regex:\"=\"},{token:\"keyword.operator.increment-decrement.vala\",regex:\"\\\\-\\\\-|\\\\+\\\\+\"},{token:\"keyword.operator.arithmetic.vala\",regex:\"\\\\-|\\\\+|\\\\*|\\\\/|%\"},{token:\"keyword.operator.logical.vala\",regex:\"!|&&|\\\\|\\\\|\"},{token:\"keyword.operator.dereference.vala\",regex:\"\\\\.(?=\\\\S)\",originalRegex:\"(?<=\\\\S)\\\\.(?=\\\\S)\"},{token:\"punctuation.terminator.vala\",regex:\";\"},{token:\"keyword.operator.ownership\",regex:\"owned|unowned\"}],\"#methods\":[{token:\"meta.method.vala\",regex:\"(?!new)(?=\\\\w.*\\\\s+)(?=[^=]+\\\\()\",push:[{token:\"paren.vala\",regex:\"}|(?=;)\",next:\"pop\"},{include:\"#storage-modifiers\"},{token:[\"entity.name.function.vala\",\"meta.method.identifier.vala\"],regex:\"([\\\\~\\\\w\\\\.]+)(\\\\s*\\\\()\",push:[{token:\"meta.method.identifier.vala\",regex:\"\\\\)\",next:\"pop\"},{include:\"#parameters\"},{defaultToken:\"meta.method.identifier.vala\"}]},{token:\"meta.method.return-type.vala\",regex:\"(?=\\\\w.*\\\\s+\\\\w+\\\\s*\\\\()\",push:[{token:\"meta.method.return-type.vala\",regex:\"(?=\\\\w+\\\\s*\\\\()\",next:\"pop\"},{include:\"#all-types\"},{defaultToken:\"meta.method.return-type.vala\"}]},{include:\"#throws\"},{token:\"paren.vala\",regex:\"{\",push:[{token:\"paren.vala\",regex:\"(?=})\",next:\"pop\"},{include:\"#code\"},{defaultToken:\"meta.method.body.vala\"}]},{defaultToken:\"meta.method.vala\"}]}],\"#namespace\":[{token:\"text\",regex:\"^(?=\\\\s*[A-Z0-9_]+\\\\s*(?:{|\\\\(|,))\",push:[{token:\"text\",regex:\"(?=;|})\",next:\"pop\"},{token:\"constant.other.namespace.vala\",regex:\"\\\\w+\",push:[{token:\"meta.namespace.vala\",regex:\"(?=,|;|})\",next:\"pop\"},{include:\"#parens\"},{token:\"text\",regex:\"{\",push:[{token:\"text\",regex:\"}\",next:\"pop\"},{include:\"#code\"}]},{defaultToken:\"meta.namespace.vala\"}]}],comment:\"This is not quite right. See the class grammar right now\"}],\"#object-types\":[{token:\"storage.type.generic.vala\",regex:\"\\\\b(?:[a-z]\\\\w*\\\\.)*[A-Z]+\\\\w*<\",push:[{token:\"storage.type.generic.vala\",regex:\">|[^\\\\w\\\\s,\\\\?<\\\\[()\\\\]]\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\">|[^\\\\w\\\\s,\\\\?<\\\\[(?:[,]+)\\\\]]\",next:\"pop\"},{include:\"#object-types\"},{token:\"storage.type.generic.vala\",regex:\"<\",push:[{token:\"storage.type.generic.vala\",regex:\">|[^\\\\w\\\\s,\\\\[\\\\]<]\",next:\"pop\"},{defaultToken:\"storage.type.generic.vala\"}],comment:\"This is just to support <>'s with no actual type prefix\"},{defaultToken:\"storage.type.generic.vala\"}]},{token:\"storage.type.object.array.vala\",regex:\"\\\\b(?:[a-z]\\\\w*\\\\.)*[A-Z]+\\\\w*(?=\\\\[)\",push:[{token:\"storage.type.object.array.vala\",regex:\"(?=[^\\\\]\\\\s])\",next:\"pop\"},{token:\"text\",regex:\"\\\\[\",push:[{token:\"text\",regex:\"\\\\]\",next:\"pop\"},{include:\"#code\"}]},{defaultToken:\"storage.type.object.array.vala\"}]},{token:[\"storage.type.vala\",\"keyword.operator.dereference.vala\",\"storage.type.vala\"],regex:\"\\\\b(?:([a-z]\\\\w*)(\\\\.))*([A-Z]+\\\\w*\\\\b)\"}],\"#object-types-inherited\":[{token:\"entity.other.inherited-class.vala\",regex:\"\\\\b(?:[a-z]\\\\w*\\\\.)*[A-Z]+\\\\w*<\",push:[{token:\"entity.other.inherited-class.vala\",regex:\">|[^\\\\w\\\\s,<]\",next:\"pop\"},{include:\"#object-types\"},{token:\"storage.type.generic.vala\",regex:\"<\",push:[{token:\"storage.type.generic.vala\",regex:\">|[^\\\\w\\\\s,<]\",next:\"pop\"},{defaultToken:\"storage.type.generic.vala\"}],comment:\"This is just to support <>'s with no actual type prefix\"},{defaultToken:\"entity.other.inherited-class.vala\"}]},{token:[\"entity.other.inherited-class.vala\",\"keyword.operator.dereference.vala\",\"entity.other.inherited-class.vala\"],regex:\"\\\\b(?:([a-z]\\\\w*)(\\\\.))*([A-Z]+\\\\w*)\"}],\"#parameters\":[{token:\"storage.modifier.vala\",regex:\"final\"},{include:\"#primitive-arrays\"},{include:\"#primitive-types\"},{include:\"#object-types\"},{token:\"variable.parameter.vala\",regex:\"\\\\w+\"}],\"#parens\":[{token:\"text\",regex:\"\\\\(\",push:[{token:\"text\",regex:\"\\\\)\",next:\"pop\"},{include:\"#code\"}]}],\"#primitive-arrays\":[{token:\"storage.type.primitive.array.vala\",regex:\"\\\\b(?:bool|byte|sbyte|char|decimal|double|float|int|uint|long|ulong|object|short|ushort|string|void|int8|int16|int32|int64|uint8|uint16|uint32|uint64)(?:\\\\[\\\\])*\\\\b\"}],\"#primitive-types\":[{token:\"storage.type.primitive.vala\",regex:\"\\\\b(?:var|bool|byte|sbyte|char|decimal|double|float|int|uint|long|ulong|object|short|ushort|string|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64)\\\\b\",comment:\"var is not really a primitive, but acts like one in most cases\"}],\"#storage-modifiers\":[{token:\"storage.modifier.vala\",regex:\"\\\\b(?:public|private|protected|internal|static|final|sealed|virtual|override|abstract|readonly|volatile|dynamic|async|unsafe|out|ref|weak|owned|unowned|const)\\\\b\",comment:\"Not sure about unsafe and readonly\"}],\"#strings\":[{token:\"punctuation.definition.string.begin.vala\",regex:'@\"',push:[{token:\"punctuation.definition.string.end.vala\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.vala\",regex:\"\\\\\\\\.|%[\\\\w\\\\.\\\\-]+|\\\\$(?:\\\\w+|\\\\([\\\\w\\\\s\\\\+\\\\-\\\\*\\\\/]+\\\\))\"},{defaultToken:\"string.quoted.interpolated.vala\"}]},{token:\"punctuation.definition.string.begin.vala\",regex:'\"',push:[{token:\"punctuation.definition.string.end.vala\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.vala\",regex:\"\\\\\\\\.\"},{token:\"constant.character.escape.vala\",regex:\"%[\\\\w\\\\.\\\\-]+\"},{defaultToken:\"string.quoted.double.vala\"}]},{token:\"punctuation.definition.string.begin.vala\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.vala\",regex:\"'\",next:\"pop\"},{token:\"constant.character.escape.vala\",regex:\"\\\\\\\\.\"},{defaultToken:\"string.quoted.single.vala\"}]},{token:\"punctuation.definition.string.begin.vala\",regex:'\"\"\"',push:[{token:\"punctuation.definition.string.end.vala\",regex:'\"\"\"',next:\"pop\"},{token:\"constant.character.escape.vala\",regex:\"%[\\\\w\\\\.\\\\-]+\"},{defaultToken:\"string.quoted.triple.vala\"}]}],\"#throws\":[{token:\"storage.modifier.vala\",regex:\"throws\",push:[{token:\"meta.throwables.vala\",regex:\"(?={|;)\",next:\"pop\"},{include:\"#object-types\"},{defaultToken:\"meta.throwables.vala\"}]}],\"#values\":[{include:\"#strings\"},{include:\"#object-types\"},{include:\"#constants-and-special-vars\"}]},this.normalizeRules()};s.metaData={comment:\"Based heavily on the Java bundle's language syntax. TODO:\\n* Closures\\n* Delegates\\n* Properties: Better support for properties.\\n* Annotations\\n* Error domains\\n* Named arguments\\n* Array slicing, negative indexes, multidimensional\\n* construct blocks\\n* lock blocks?\\n* regex literals\\n* DocBlock syntax highlighting. (Currently importing javadoc)\\n* Folding rule for comments.\\n\",fileTypes:[\"vala\"],foldingStartMarker:\"(\\\\{\\\\s*(//.*)?$|^\\\\s*// \\\\{\\\\{\\\\{)\",foldingStopMarker:\"^\\\\s*(\\\\}|// \\\\}\\\\}\\\\}$)\",name:\"Vala\",scopeName:\"source.vala\"},r.inherits(s,i),t.ValaHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/vala\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/tokenizer\",\"ace/mode/vala_highlight_rules\",\"ace/mode/folding/cstyle\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"../tokenizer\").Tokenizer,o=e(\"./vala_highlight_rules\").ValaHighlightRules,u=e(\"./folding/cstyle\").FoldMode,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=e(\"./matching_brace_outdent\").MatchingBraceOutdent,c=function(){this.HighlightRules=o,this.$outdent=new l,this.$behaviour=new a,this.foldingRules=new f};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/vala\"}.call(c.prototype),t.Mode=c})"
  },
  {
    "path": "lib/src-min-noconflict/mode-vbscript.js",
    "content": "ace.define(\"ace/mode/vbscript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=this.createKeywordMapper({\"keyword.control.asp\":\"If|Then|Else|ElseIf|End|While|Wend|For|To|Each|Case|Select|Return|Continue|Do|Until|Loop|Next|With|Exit|Function|Property|Type|Enum|Sub|IIf\",\"storage.type.asp\":\"Dim|Call|Class|Const|Dim|Redim|Set|Let|Get|New|Randomize|Option|Explicit\",\"storage.modifier.asp\":\"Private|Public|Default\",\"keyword.operator.asp\":\"Mod|And|Not|Or|Xor|as\",\"constant.language.asp\":\"Empty|False|Nothing|Null|True\",\"support.class.asp\":\"Application|ObjectContext|Request|Response|Server|Session\",\"support.class.collection.asp\":\"Contents|StaticObjects|ClientCertificate|Cookies|Form|QueryString|ServerVariables\",\"support.constant.asp\":\"TotalBytes|Buffer|CacheControl|Charset|ContentType|Expires|ExpiresAbsolute|IsClientConnected|PICS|Status|ScriptTimeout|CodePage|LCID|SessionID|Timeout\",\"support.function.asp\":\"Lock|Unlock|SetAbort|SetComplete|BinaryRead|AddHeader|AppendToLog|BinaryWrite|Clear|Flush|Redirect|Write|CreateObject|HTMLEncode|MapPath|URLEncode|Abandon|Convert|Regex\",\"support.function.event.asp\":\"Application_OnEnd|Application_OnStart|OnTransactionAbort|OnTransactionCommit|Session_OnEnd|Session_OnStart\",\"support.function.vb.asp\":\"Array|Add|Asc|Atn|CBool|CByte|CCur|CDate|CDbl|Chr|CInt|CLng|Conversions|Cos|CreateObject|CSng|CStr|Date|DateAdd|DateDiff|DatePart|DateSerial|DateValue|Day|Derived|Math|Escape|Eval|Exists|Exp|Filter|FormatCurrency|FormatDateTime|FormatNumber|FormatPercent|GetLocale|GetObject|GetRef|Hex|Hour|InputBox|InStr|InStrRev|Int|Fix|IsArray|IsDate|IsEmpty|IsNull|IsNumeric|IsObject|Item|Items|Join|Keys|LBound|LCase|Left|Len|LoadPicture|Log|LTrim|RTrim|Trim|Maths|Mid|Minute|Month|MonthName|MsgBox|Now|Oct|Remove|RemoveAll|Replace|RGB|Right|Rnd|Round|ScriptEngine|ScriptEngineBuildVersion|ScriptEngineMajorVersion|ScriptEngineMinorVersion|Second|SetLocale|Sgn|Sin|Space|Split|Sqr|StrComp|String|StrReverse|Tan|Time|Timer|TimeSerial|TimeValue|TypeName|UBound|UCase|Unescape|VarType|Weekday|WeekdayName|Year\",\"support.type.vb.asp\":\"vbtrue|vbfalse|vbcr|vbcrlf|vbformfeed|vblf|vbnewline|vbnullchar|vbnullstring|int32|vbtab|vbverticaltab|vbbinarycompare|vbtextcomparevbsunday|vbmonday|vbtuesday|vbwednesday|vbthursday|vbfriday|vbsaturday|vbusesystemdayofweek|vbfirstjan1|vbfirstfourdays|vbfirstfullweek|vbgeneraldate|vblongdate|vbshortdate|vblongtime|vbshorttime|vbobjecterror|vbEmpty|vbNull|vbInteger|vbLong|vbSingle|vbDouble|vbCurrency|vbDate|vbString|vbObject|vbError|vbBoolean|vbVariant|vbDataObject|vbDecimal|vbByte|vbArray\"},\"identifier\",!0);this.$rules={start:[{token:[\"meta.ending-space\"],regex:\"$\"},{token:[null],regex:\"^(?=\\\\t)\",next:\"state_3\"},{token:[null],regex:\"^(?= )\",next:\"state_4\"},{token:[\"text\",\"storage.type.function.asp\",\"text\",\"entity.name.function.asp\",\"text\",\"punctuation.definition.parameters.asp\",\"variable.parameter.function.asp\",\"punctuation.definition.parameters.asp\"],regex:\"^(\\\\s*)(Function|Sub)(\\\\s+)([a-zA-Z_]\\\\w*)(\\\\s*)(\\\\()([^)]*)(\\\\))\"},{token:\"punctuation.definition.comment.asp\",regex:\"'|REM(?=\\\\s|$)\",next:\"comment\",caseInsensitive:!0},{token:\"storage.type.asp\",regex:\"On Error Resume Next|On Error GoTo\",caseInsensitive:!0},{token:\"punctuation.definition.string.begin.asp\",regex:'\"',next:\"string\"},{token:[\"punctuation.definition.variable.asp\"],regex:\"(\\\\$)[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\\\b\\\\s*\"},{token:\"constant.numeric.asp\",regex:\"-?\\\\b(?:(?:0(?:x|X)[0-9a-fA-F]*)|(?:(?:[0-9]+\\\\.?[0-9]*)|(?:\\\\.[0-9]+))(?:(?:e|E)(?:\\\\+|-)?[0-9]+)?)(?:L|l|UL|ul|u|U|F|f)?\\\\b\"},{regex:\"\\\\w+\",token:e},{token:[\"entity.name.function.asp\"],regex:\"(?:(\\\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\\\b)(?=\\\\(\\\\)?))\"},{token:[\"keyword.operator.asp\"],regex:\"\\\\-|\\\\+|\\\\*\\\\/|\\\\>|\\\\<|\\\\=|\\\\&\"}],state_3:[{token:[\"meta.odd-tab.tabs\",\"meta.even-tab.tabs\"],regex:\"(\\\\t)(\\\\t)?\"},{token:\"meta.leading-space\",regex:\"(?=[^\\\\t])\",next:\"start\"},{token:\"meta.leading-space\",regex:\".\",next:\"state_3\"}],state_4:[{token:[\"meta.odd-tab.spaces\",\"meta.even-tab.spaces\"],regex:\"(  )(  )?\"},{token:\"meta.leading-space\",regex:\"(?=[^ ])\",next:\"start\"},{defaultToken:\"meta.leading-space\"}],comment:[{token:\"comment.line.apostrophe.asp\",regex:\"$|(?=(?:%>))\",next:\"start\"},{defaultToken:\"comment.line.apostrophe.asp\"}],string:[{token:\"constant.character.escape.apostrophe.asp\",regex:'\"\"'},{token:\"string.quoted.double.asp\",regex:'\"',next:\"start\"},{defaultToken:\"string.quoted.double.asp\"}]}};r.inherits(s,i),t.VBScriptHighlightRules=s}),ace.define(\"ace/mode/vbscript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/vbscript_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./vbscript_highlight_rules\").VBScriptHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart=[\"'\",\"REM\"],this.$id=\"ace/mode/vbscript\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict/mode-velocity.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({jsx:!1})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/velocity_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./html_highlight_rules\").HtmlHighlightRules,u=function(){o.call(this);var e=i.arrayToMap(\"true|false|null\".split(\"|\")),t=i.arrayToMap(\"_DateTool|_DisplayTool|_EscapeTool|_FieldTool|_MathTool|_NumberTool|_SerializerTool|_SortTool|_StringTool|_XPathTool\".split(\"|\")),n=i.arrayToMap(\"$contentRoot|$foreach\".split(\"|\")),r=i.arrayToMap(\"#set|#macro|#include|#parse|#if|#elseif|#else|#foreach|#break|#end|#stop\".split(\"|\"));this.$rules.start.push({token:\"comment\",regex:\"##.*$\"},{token:\"comment.block\",regex:\"#\\\\*\",next:\"vm_comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:function(i){return r.hasOwnProperty(i)?\"keyword\":e.hasOwnProperty(i)?\"constant.language\":n.hasOwnProperty(i)?\"variable.language\":t.hasOwnProperty(i)||t.hasOwnProperty(i.substring(1))?\"support.function\":i==\"debugger\"?\"invalid.deprecated\":i.match(/^(\\$[a-zA-Z_][a-zA-Z0-9_]*)$/)?\"variable\":\"identifier\"},regex:\"[a-zA-Z$#][a-zA-Z0-9_]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|&|\\\\*|\\\\-|\\\\+|=|!=|<=|>=|<|>|&&|\\\\|\\\\|\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}),this.$rules.vm_comment=[{token:\"comment\",regex:\"\\\\*#|-->\",next:\"start\"},{defaultToken:\"comment\"}],this.$rules.vm_start=[{token:\"variable\",regex:\"}\",next:\"pop\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:function(i){return r.hasOwnProperty(i)?\"keyword\":e.hasOwnProperty(i)?\"constant.language\":n.hasOwnProperty(i)?\"variable.language\":t.hasOwnProperty(i)||t.hasOwnProperty(i.substring(1))?\"support.function\":i==\"debugger\"?\"invalid.deprecated\":i.match(/^(\\$[a-zA-Z_$][a-zA-Z0-9_]*)$/)?\"variable\":\"identifier\"},regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|&|\\\\*|\\\\-|\\\\+|=|!=|<=|>=|<|>|&&|\\\\|\\\\|\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}];for(var s in this.$rules)this.$rules[s].unshift({token:\"variable\",regex:\"\\\\${\",push:\"vm_start\"});this.normalizeRules()};r.inherits(u,s),t.VelocityHighlightRules=u}),ace.define(\"ace/mode/folding/velocity\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"##\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"##\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"##\"&&s[i]==\"##\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"##\"&&o[i]==\"##\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/velocity\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/velocity_highlight_rules\",\"ace/mode/folding/velocity\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./velocity_highlight_rules\").VelocityHighlightRules,o=e(\"./folding/velocity\").FoldMode,u=function(){i.call(this),this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"##\",this.blockComment={start:\"#*\",end:\"*#\"},this.$id=\"ace/mode/velocity\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-verilog.js",
    "content": "ace.define(\"ace/mode/verilog_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"always|and|assign|automatic|begin|buf|bufif0|bufif1|case|casex|casez|cell|cmos|config|deassign|default|defparam|design|disable|edge|else|end|endcase|endconfig|endfunction|endgenerate|endmodule|endprimitive|endspecify|endtable|endtask|event|for|force|forever|fork|function|generate|genvar|highz0|highz1|if|ifnone|incdir|include|initial|inout|input|instance|integer|join|large|liblist|library|localparam|macromodule|medium|module|nand|negedge|nmos|nor|noshowcancelled|not|notif0|notif1|or|output|parameter|pmos|posedge|primitive|pull0|pull1|pulldown|pullup|pulsestyle_onevent|pulsestyle_ondetect|rcmos|real|realtime|reg|release|repeat|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|showcancelled|signed|small|specify|specparam|strong0|strong1|supply0|supply1|table|task|time|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|unsigned|use|vectored|wait|wand|weak0|weak1|while|wire|wor|xnor|xorbegin|bufif0|bufif1|case|casex|casez|config|else|end|endcase|endconfig|endfunction|endgenerate|endmodule|endprimitive|endspecify|endtable|endtask|for|forever|function|generate|if|ifnone|macromodule|module|primitive|repeat|specify|table|task|while\",t=\"true|false|null\",n=\"count|min|max|avg|sum|rank|now|coalesce|main\",r=this.createKeywordMapper({\"support.function\":n,keyword:e,\"constant.language\":t},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\"//.*$\"},{token:\"comment.start\",regex:\"/\\\\*\",next:[{token:\"comment.end\",regex:\"\\\\*/\",next:\"start\"},{defaultToken:\"comment\"}]},{token:\"string\",regex:'\".*?\"'},{token:\"string\",regex:\"'.*?'\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"text\",regex:\"\\\\s+\"}]},this.normalizeRules()};r.inherits(s,i),t.VerilogHighlightRules=s}),ace.define(\"ace/mode/verilog\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/verilog_highlight_rules\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./verilog_highlight_rules\").VerilogHighlightRules,o=e(\"../range\").Range,u=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/verilog\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict/mode-vhdl.js",
    "content": "ace.define(\"ace/mode/vhdl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"access|after|ailas|all|architecture|assert|attribute|begin|block|buffer|bus|case|component|configuration|disconnect|downto|else|elsif|end|entity|file|for|function|generate|generic|guarded|if|impure|in|inertial|inout|is|label|linkage|literal|loop|mapnew|next|of|on|open|others|out|port|process|pure|range|record|reject|report|return|select|shared|subtype|then|to|transport|type|unaffected|united|until|wait|when|while|with\",t=\"bit|bit_vector|boolean|character|integer|line|natural|positive|real|register|severity|signal|signed|std_logic|std_logic_vector|string||text|time|unsigned|variable\",n=\"array|constant\",r=\"abs|and|mod|nand|nor|not|rem|rol|ror|sla|sll|srasrl|xnor|xor\",i=\"true|false|null\",s=this.createKeywordMapper({\"keyword.operator\":r,keyword:e,\"constant.language\":i,\"storage.modifier\":n,\"storage.type\":t},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\"--.*$\"},{token:\"string\",regex:'\".*?\"'},{token:\"string\",regex:\"'.*?'\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"keyword\",regex:\"\\\\s*(?:library|package|use)\\\\b\"},{token:s,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"&|\\\\*|\\\\+|\\\\-|\\\\/|<|=|>|\\\\||=>|\\\\*\\\\*|:=|\\\\/=|>=|<=|<>\"},{token:\"punctuation.operator\",regex:\"\\\\'|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[(]\"},{token:\"paren.rparen\",regex:\"[\\\\])]\"},{token:\"text\",regex:\"\\\\s+\"}]}};r.inherits(s,i),t.VHDLHighlightRules=s}),ace.define(\"ace/mode/vhdl\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/vhdl_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./vhdl_highlight_rules\").VHDLHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart=\"--\",this.$id=\"ace/mode/vhdl\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict/mode-wollok.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/wollok_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"test|package|inherits|false|import|else|or|class|and|not|native|override|program|this|try|val|var|catch|object|super|throw|if|null|return|true|new|method\",t=\"null|assert|console\",n=\"Object|Pair|String|Boolean|Number|Integer|Double|Collection|Set|List|Exception|Range|StackTraceElement\",r=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"constant.language\":t,\"support.function\":n},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.[\\d_]*)?(?:[eE][+-]?[\\d_]+)?)?[LlSsDdFfYy]?\\b/},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"===|&&|\\\\*=|\\\\.\\\\.|\\\\*\\\\*|#|!|%|\\\\*|\\\\?:|\\\\+|\\\\/|,|\\\\+=|\\\\-|\\\\.\\\\.<|!==|:|\\\\/=|\\\\?\\\\.|\\\\+\\\\+|>|=|<|>=|=>|==|\\\\]|\\\\[|\\\\-=|\\\\->|\\\\||\\\\-\\\\-|<>|!=|%=|\\\\|\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.WollokHighlightRules=o}),ace.define(\"ace/mode/wollok\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/wollok_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript\").Mode,s=e(\"./wollok_highlight_rules\").WollokHighlightRules,o=function(){i.call(this),this.HighlightRules=s};r.inherits(o,i),function(){this.createWorker=function(e){return null},this.$id=\"ace/mode/wollok\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict/mode-xml.js",
    "content": "ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./xml_highlight_rules\").XmlHighlightRules,u=e(\"./behaviour/xml\").XmlBehaviour,a=e(\"./folding/xml\").FoldMode,f=e(\"../worker/worker_client\").WorkerClient,l=function(){this.HighlightRules=o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,s),function(){this.voidElements=i.arrayToMap([]),this.blockComment={start:\"<!--\",end:\"-->\"},this.createWorker=function(e){var t=new f([\"ace\"],\"ace/mode/xml_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/xml\"}.call(l.prototype),t.Mode=l})"
  },
  {
    "path": "lib/src-min-noconflict/mode-xquery.js",
    "content": "ace.define(\"ace/mode/xquery/xquery_lexer\",[\"require\",\"exports\",\"module\"],function(e,t,n){n.exports=function r(t,n,i){function s(u,a){if(!n[u]){if(!t[u]){var f=typeof e==\"function\"&&e;if(!a&&f)return f(u,!0);if(o)return o(u,!0);throw new Error(\"Cannot find module '\"+u+\"'\")}var l=n[u]={exports:{}};t[u][0].call(l.exports,function(e){var n=t[u][1][e];return s(n?n:e)},l,l.exports,r,t,n,i)}return n[u].exports}var o=typeof e==\"function\"&&e;for(var u=0;u<i.length;u++)s(i[u]);return s}({1:[function(e,t,n){var r=n.XQueryTokenizer=function i(e,t){function r(e,t){E=t,S=e,x=e.length,s(0,0,0)}function s(e,t,n){m=t,g=t,y=e,b=t,w=n,N=n,E.reset(S)}function o(){E.startNonterminal(\"EQName\",g);switch(y){case 77:f(77);break;case 91:f(91);break;case 115:f(115);break;case 116:f(116);break;case 119:f(119);break;case 140:f(140);break;case 147:f(147);break;case 160:f(160);break;case 180:f(180);break;case 186:f(186);break;case 211:f(211);break;case 221:f(221);break;case 222:f(222);break;case 238:f(238);break;case 239:f(239);break;case 248:f(248);break;default:u()}E.endNonterminal(\"EQName\",g)}function u(){E.startNonterminal(\"FunctionName\",g);switch(y){case 14:f(14);break;case 65:f(65);break;case 68:f(68);break;case 69:f(69);break;case 70:f(70);break;case 74:f(74);break;case 75:f(75);break;case 79:f(79);break;case 83:f(83);break;case 84:f(84);break;case 85:f(85);break;case 88:f(88);break;case 89:f(89);break;case 98:f(98);break;case 100:f(100);break;case 103:f(103);break;case 104:f(104);break;case 105:f(105);break;case 106:f(106);break;case 107:f(107);break;case 108:f(108);break;case 113:f(113);break;case 114:f(114);break;case 117:f(117);break;case 118:f(118);break;case 121:f(121);break;case 123:f(123);break;case 124:f(124);break;case 126:f(126);break;case 129:f(129);break;case 130:f(130);break;case 131:f(131);break;case 132:f(132);break;case 141:f(141);break;case 143:f(143);break;case 145:f(145);break;case 146:f(146);break;case 148:f(148);break;case 154:f(154);break;case 155:f(155);break;case 157:f(157);break;case 158:f(158);break;case 159:f(159);break;case 165:f(165);break;case 167:f(167);break;case 169:f(169);break;case 173:f(173);break;case 175:f(175);break;case 176:f(176);break;case 177:f(177);break;case 179:f(179);break;case 181:f(181);break;case 193:f(193);break;case 195:f(195);break;case 196:f(196);break;case 197:f(197);break;case 201:f(201);break;case 207:f(207);break;case 208:f(208);break;case 213:f(213);break;case 214:f(214);break;case 215:f(215);break;case 219:f(219);break;case 224:f(224);break;case 230:f(230);break;case 231:f(231);break;case 232:f(232);break;case 243:f(243);break;case 244:f(244);break;case 245:f(245);break;case 249:f(249);break;case 251:f(251);break;case 255:f(255);break;case 261:f(261);break;case 265:f(265);break;case 269:f(269);break;case 67:f(67);break;case 76:f(76);break;case 78:f(78);break;case 80:f(80);break;case 81:f(81);break;case 86:f(86);break;case 93:f(93);break;case 96:f(96);break;case 97:f(97);break;case 99:f(99);break;case 101:f(101);break;case 120:f(120);break;case 127:f(127);break;case 128:f(128);break;case 136:f(136);break;case 149:f(149);break;case 150:f(150);break;case 156:f(156);break;case 166:f(166);break;case 187:f(187);break;case 194:f(194);break;case 198:f(198);break;case 217:f(217);break;case 220:f(220);break;case 223:f(223);break;case 229:f(229);break;case 235:f(235);break;case 246:f(246);break;case 247:f(247);break;case 252:f(252);break;case 256:f(256);break;case 257:f(257);break;case 258:f(258);break;case 262:f(262);break;case 92:f(92);break;case 171:f(171);break;default:f(216)}E.endNonterminal(\"FunctionName\",g)}function a(){E.startNonterminal(\"NCName\",g);switch(y){case 26:f(26);break;case 65:f(65);break;case 70:f(70);break;case 74:f(74);break;case 75:f(75);break;case 79:f(79);break;case 83:f(83);break;case 84:f(84);break;case 85:f(85);break;case 89:f(89);break;case 100:f(100);break;case 104:f(104);break;case 108:f(108);break;case 113:f(113);break;case 117:f(117);break;case 118:f(118);break;case 121:f(121);break;case 123:f(123);break;case 126:f(126);break;case 132:f(132);break;case 141:f(141);break;case 143:f(143);break;case 145:f(145);break;case 146:f(146);break;case 155:f(155);break;case 157:f(157);break;case 158:f(158);break;case 159:f(159);break;case 167:f(167);break;case 169:f(169);break;case 173:f(173);break;case 175:f(175);break;case 176:f(176);break;case 181:f(181);break;case 193:f(193);break;case 195:f(195);break;case 196:f(196);break;case 215:f(215);break;case 219:f(219);break;case 231:f(231);break;case 232:f(232);break;case 243:f(243);break;case 244:f(244);break;case 249:f(249);break;case 261:f(261);break;case 265:f(265);break;case 68:f(68);break;case 69:f(69);break;case 77:f(77);break;case 88:f(88);break;case 91:f(91);break;case 98:f(98);break;case 103:f(103);break;case 105:f(105);break;case 106:f(106);break;case 107:f(107);break;case 114:f(114);break;case 115:f(115);break;case 116:f(116);break;case 119:f(119);break;case 124:f(124);break;case 129:f(129);break;case 130:f(130);break;case 131:f(131);break;case 140:f(140);break;case 147:f(147);break;case 148:f(148);break;case 154:f(154);break;case 160:f(160);break;case 165:f(165);break;case 177:f(177);break;case 179:f(179);break;case 180:f(180);break;case 186:f(186);break;case 197:f(197);break;case 201:f(201);break;case 207:f(207);break;case 208:f(208);break;case 211:f(211);break;case 213:f(213);break;case 214:f(214);break;case 221:f(221);break;case 222:f(222);break;case 224:f(224);break;case 230:f(230);break;case 238:f(238);break;case 239:f(239);break;case 245:f(245);break;case 248:f(248);break;case 251:f(251);break;case 255:f(255);break;case 257:f(257);break;case 269:f(269);break;case 67:f(67);break;case 76:f(76);break;case 78:f(78);break;case 80:f(80);break;case 81:f(81);break;case 86:f(86);break;case 93:f(93);break;case 96:f(96);break;case 97:f(97);break;case 99:f(99);break;case 101:f(101);break;case 120:f(120);break;case 127:f(127);break;case 128:f(128);break;case 136:f(136);break;case 149:f(149);break;case 150:f(150);break;case 156:f(156);break;case 166:f(166);break;case 187:f(187);break;case 194:f(194);break;case 198:f(198);break;case 217:f(217);break;case 220:f(220);break;case 223:f(223);break;case 229:f(229);break;case 235:f(235);break;case 246:f(246);break;case 247:f(247);break;case 252:f(252);break;case 256:f(256);break;case 258:f(258);break;case 262:f(262);break;case 92:f(92);break;case 171:f(171);break;default:f(216)}E.endNonterminal(\"NCName\",g)}function f(e){y==e?(l(),E.terminal(i.TOKEN[y],b,w>x?x:w),m=b,g=w,y=0):d(b,w,0,y,e)}function l(){g!=b&&(m=g,g=b,E.whitespace(m,g))}function c(e){var t;for(;;){t=C(e);if(t!=28)break}return t}function h(e){y==0&&(y=c(e),b=T,w=N)}function p(e){y==0&&(y=C(e),b=T,w=N)}function d(e,t,r,i,s){throw new n.ParseException(e,t,r,i,s)}function C(e){var t=!1;T=N;var n=N,r=i.INITIAL[e],s=0;for(var o=r&4095;o!=0;){var u,a=n<x?S.charCodeAt(n):0;++n;if(a<128)u=i.MAP0[a];else if(a<55296){var f=a>>4;u=i.MAP1[(a&15)+i.MAP1[(f&31)+i.MAP1[f>>5]]]}else{if(a<56320){var f=n<x?S.charCodeAt(n):0;f>=56320&&f<57344&&(++n,a=((a&1023)<<10)+(f&1023)+65536,t=!0)}var l=0,c=5;for(var h=3;;h=c+l>>1){if(i.MAP2[h]>a)c=h-1;else{if(!(i.MAP2[6+h]<a)){u=i.MAP2[12+h];break}l=h+1}if(l>c){u=0;break}}}s=o;var p=(u<<12)+o-1;o=i.TRANSITION[(p&15)+i.TRANSITION[p>>4]],o>4095&&(r=o,o&=4095,N=n)}r>>=12;if(r==0){N=n-1;var f=N<x?S.charCodeAt(N):0;return f>=56320&&f<57344&&--N,d(T,N,s,-1,-1)}if(t)for(var v=r>>9;v>0;--v){--N;var f=N<x?S.charCodeAt(N):0;f>=56320&&f<57344&&--N}else N-=r>>9;return(r&511)-1}r(e,t);var n=this;this.ParseException=function(e,t,n,r,i){var s=e,o=t,u=n,a=r,f=i;this.getBegin=function(){return s},this.getEnd=function(){return o},this.getState=function(){return u},this.getExpected=function(){return f},this.getOffending=function(){return a},this.getMessage=function(){return a<0?\"lexical analysis failed\":\"syntax error\"}},this.getInput=function(){return S},this.getOffendingToken=function(e){var t=e.getOffending();return t>=0?i.TOKEN[t]:null},this.getExpectedTokenSet=function(e){var t;return e.getExpected()<0?t=i.getTokenSet(-e.getState()):t=[i.TOKEN[e.getExpected()]],t},this.getErrorMessage=function(e){var t=this.getExpectedTokenSet(e),n=this.getOffendingToken(e),r=S.substring(0,e.getBegin()),i=r.split(\"\\n\"),s=i.length,o=i[s-1].length+1,u=e.getEnd()-e.getBegin();return e.getMessage()+(n==null?\"\":\", found \"+n)+\"\\nwhile expecting \"+(t.length==1?t[0]:\"[\"+t.join(\", \")+\"]\")+\"\\n\"+(u==0||n!=null?\"\":\"after successfully scanning \"+u+\" characters beginning \")+\"at line \"+s+\", column \"+o+\":\\n...\"+S.substring(e.getBegin(),Math.min(S.length,e.getBegin()+64))+\"...\"},this.parse_start=function(){E.startNonterminal(\"start\",g),h(14);switch(y){case 55:f(55);break;case 54:f(54);break;case 56:f(56);break;case 40:f(40);break;case 42:f(42);break;case 41:f(41);break;case 35:f(35);break;case 38:f(38);break;case 274:f(274);break;case 271:f(271);break;case 39:f(39);break;case 43:f(43);break;case 49:f(49);break;case 62:f(62);break;case 63:f(63);break;case 46:f(46);break;case 48:f(48);break;case 53:f(53);break;case 51:f(51);break;case 34:f(34);break;case 273:f(273);break;case 2:f(2);break;case 1:f(1);break;case 3:f(3);break;case 12:f(12);break;case 13:f(13);break;case 15:f(15);break;case 16:f(16);break;case 17:f(17);break;case 5:f(5);break;case 6:f(6);break;case 4:f(4);break;case 33:f(33);break;default:o()}E.endNonterminal(\"start\",g)},this.parse_StartTag=function(){E.startNonterminal(\"StartTag\",g),h(8);switch(y){case 58:f(58);break;case 50:f(50);break;case 27:f(27);break;case 57:f(57);break;case 35:f(35);break;case 38:f(38);break;default:f(33)}E.endNonterminal(\"StartTag\",g)},this.parse_TagContent=function(){E.startNonterminal(\"TagContent\",g),p(11);switch(y){case 23:f(23);break;case 6:f(6);break;case 7:f(7);break;case 55:f(55);break;case 54:f(54);break;case 18:f(18);break;case 29:f(29);break;case 272:f(272);break;case 275:f(275);break;case 271:f(271);break;default:f(33)}E.endNonterminal(\"TagContent\",g)},this.parse_AposAttr=function(){E.startNonterminal(\"AposAttr\",g),p(10);switch(y){case 20:f(20);break;case 25:f(25);break;case 18:f(18);break;case 29:f(29);break;case 272:f(272);break;case 275:f(275);break;case 271:f(271);break;case 38:f(38);break;default:f(33)}E.endNonterminal(\"AposAttr\",g)},this.parse_QuotAttr=function(){E.startNonterminal(\"QuotAttr\",g),p(9);switch(y){case 19:f(19);break;case 24:f(24);break;case 18:f(18);break;case 29:f(29);break;case 272:f(272);break;case 275:f(275);break;case 271:f(271);break;case 35:f(35);break;default:f(33)}E.endNonterminal(\"QuotAttr\",g)},this.parse_CData=function(){E.startNonterminal(\"CData\",g),p(1);switch(y){case 11:f(11);break;case 64:f(64);break;default:f(33)}E.endNonterminal(\"CData\",g)},this.parse_XMLComment=function(){E.startNonterminal(\"XMLComment\",g),p(0);switch(y){case 9:f(9);break;case 47:f(47);break;default:f(33)}E.endNonterminal(\"XMLComment\",g)},this.parse_PI=function(){E.startNonterminal(\"PI\",g),p(3);switch(y){case 10:f(10);break;case 59:f(59);break;case 60:f(60);break;default:f(33)}E.endNonterminal(\"PI\",g)},this.parse_Pragma=function(){E.startNonterminal(\"Pragma\",g),p(2);switch(y){case 8:f(8);break;case 36:f(36);break;case 37:f(37);break;default:f(33)}E.endNonterminal(\"Pragma\",g)},this.parse_Comment=function(){E.startNonterminal(\"Comment\",g),p(4);switch(y){case 52:f(52);break;case 41:f(41);break;case 30:f(30);break;default:f(33)}E.endNonterminal(\"Comment\",g)},this.parse_CommentDoc=function(){E.startNonterminal(\"CommentDoc\",g),p(5);switch(y){case 31:f(31);break;case 32:f(32);break;case 52:f(52);break;case 41:f(41);break;default:f(33)}E.endNonterminal(\"CommentDoc\",g)},this.parse_QuotString=function(){E.startNonterminal(\"QuotString\",g),p(6);switch(y){case 18:f(18);break;case 29:f(29);break;case 19:f(19);break;case 21:f(21);break;case 35:f(35);break;default:f(33)}E.endNonterminal(\"QuotString\",g)},this.parse_AposString=function(){E.startNonterminal(\"AposString\",g),p(7);switch(y){case 18:f(18);break;case 29:f(29);break;case 20:f(20);break;case 22:f(22);break;case 38:f(38);break;default:f(33)}E.endNonterminal(\"AposString\",g)},this.parse_Prefix=function(){E.startNonterminal(\"Prefix\",g),h(13),l(),a(),E.endNonterminal(\"Prefix\",g)},this.parse__EQName=function(){E.startNonterminal(\"_EQName\",g),h(12),l(),o(),E.endNonterminal(\"_EQName\",g)};var v,m,g,y,b,w,E,S,x,T,N};r.getTokenSet=function(e){var t=[],n=e<0?-e:INITIAL[e]&4095;for(var i=0;i<276;i+=32){var s=i,o=(i>>5)*2062+n-1,u=o>>2,a=u>>2,f=r.EXPECTED[(o&3)+r.EXPECTED[(u&3)+r.EXPECTED[(a&3)+r.EXPECTED[a>>2]]]];for(;f!=0;f>>>=1,++s)(f&1)!=0&&t.push(r.TOKEN[s])}return t},r.MAP0=[66,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,18,18,18,18,18,18,18,18,18,19,20,21,22,23,24,25,26,27,28,29,30,27,31,31,31,31,31,31,31,31,31,31,32,31,31,33,31,31,31,31,31,31,34,35,36,35,31,35,37,38,39,40,41,42,43,44,45,31,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,31,61,62,63,64,35],r.MAP1=[108,124,214,214,214,214,214,214,214,214,214,214,214,214,214,214,156,181,181,181,181,181,214,215,213,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,247,261,277,293,309,347,363,379,416,416,416,408,331,323,331,323,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,433,433,433,433,433,433,433,316,331,331,331,331,331,331,331,331,394,416,416,417,415,416,416,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,330,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,416,66,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,18,18,18,18,18,18,18,18,18,19,20,21,22,23,24,25,26,27,28,29,30,27,31,31,31,31,31,31,31,31,31,31,31,31,31,31,35,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,32,31,31,33,31,31,31,31,31,31,34,35,36,35,31,35,37,38,39,40,41,42,43,44,45,31,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,31,61,62,63,64,35,35,35,35,35,35,35,35,35,35,35,35,31,31,35,35,35,35,35,35,35,65,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65],r.MAP2=[57344,63744,64976,65008,65536,983040,63743,64975,65007,65533,983039,1114111,35,31,35,31,31,35],r.INITIAL=[1,2,36867,45060,5,6,7,8,9,10,11,12,13,14,15],r.TRANSITION=[17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22908,18836,17152,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,17365,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,17470,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,18157,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,17848,17880,18731,17918,36551,17292,17934,17979,18727,18023,36545,18621,18039,18056,18072,18117,18143,18173,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17687,18805,18421,18437,18101,17393,18489,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,18579,21711,17152,19008,19233,20367,19008,28684,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,17365,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,17470,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,18157,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,17848,17880,18731,17918,36551,17292,17934,17979,18727,18023,36545,18621,18039,18056,18072,18117,18143,18173,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17687,18805,18421,18437,18101,17393,18489,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,20116,18836,18637,19008,19233,21267,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,18763,18778,18794,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,18821,22923,18906,19008,19233,17431,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18937,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,19054,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,18953,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21843,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21696,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22429,20131,18720,19008,19233,20367,19008,17173,23559,36437,17330,17349,18921,17189,17208,17281,20355,18087,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,21242,19111,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,19024,18836,18609,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,19081,22444,18987,19008,19233,20367,19008,19065,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21992,22007,18987,19008,19233,20367,19008,18690,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22414,18836,18987,19008,19233,30651,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,19138,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,19280,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,19172,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21783,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,19218,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21651,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,19249,19265,19307,18888,27857,30536,24401,31444,23357,18888,19351,18888,18890,27211,19370,27211,27211,19392,24401,31911,24401,24401,25467,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,28537,19440,24401,24401,24401,24401,24036,17994,24060,18888,18888,18888,18890,19468,27211,27211,27211,27211,19484,35367,19520,24401,24401,24401,19628,18888,29855,18888,18888,23086,27211,19538,27211,27211,30756,24012,24401,19560,24401,24401,26750,18888,18888,19327,27855,27211,27211,19580,17590,24017,24401,24401,19600,25665,18888,18888,28518,27211,27212,24016,19620,19868,28435,25722,18889,19644,27211,32888,35852,19868,31018,19694,19376,19717,22215,19735,22098,19751,35203,19776,19797,19817,19840,25783,31738,24135,19701,19856,31015,23516,31008,28311,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21768,18836,19307,18888,27857,27904,24401,29183,28015,18888,18888,18888,18890,27211,27211,27211,27211,19888,24401,24401,24401,24401,22953,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,28537,19440,24401,24401,24401,24401,24036,18881,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22399,18836,19918,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21666,18836,19307,18888,27857,27525,24401,29183,21467,18888,18888,18888,18890,27211,27211,27211,27211,19946,24401,24401,24401,24401,32382,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,28537,19998,24401,24401,24401,24401,31500,18467,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,20021,24401,24401,24401,24401,24401,34271,18888,18888,18888,18888,23086,27211,27211,27211,27211,32926,29908,24401,24401,24401,24401,26095,18888,18888,18888,27855,27211,27211,27211,20050,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,20101,19039,20191,20412,20903,17569,20309,20872,25633,20623,20505,20218,20242,17189,17208,17281,20355,20265,20306,20328,20383,22490,20796,20619,21354,20654,20410,20956,21232,20765,17421,20535,17192,18127,22459,20312,25531,22470,20309,20428,18964,20466,20491,21342,21070,20521,20682,17714,18326,17543,17559,17585,22497,20559,19504,20279,20575,20290,20475,20604,20639,20226,20670,17661,21190,17703,21176,17730,19494,20698,20711,22480,21046,21116,18971,21130,20727,20755,17675,17753,17832,17590,25518,20394,20781,20831,20202,20847,21401,17292,17934,17979,18549,20863,20588,25542,20888,20919,18072,18117,20935,20972,21032,21062,21086,18239,21102,18563,21146,21162,21206,18351,20949,20902,18340,21222,21258,21283,18360,20249,17405,21295,21311,21327,20739,20343,21370,21386,21417,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21977,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,21452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,21504,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,36501,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,28674,21946,17617,36473,18223,17237,17477,19152,17860,17892,17675,17753,17832,21575,21534,17481,19156,17864,18731,17918,36551,17292,17934,21560,30628,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21798,18836,21612,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21636,18836,18987,19008,19233,17902,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21753,19096,21903,19008,19233,20367,19008,19291,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,17379,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,21931,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,18280,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21962,18594,18987,19008,19233,22043,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21681,21858,18987,19008,19233,20367,19008,21544,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,30613,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,31500,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,32319,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,21431,24401,24401,24401,24401,26095,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,22231,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,30613,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,31500,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,31181,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,21431,24401,24401,24401,24401,26095,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,31678,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,31500,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,31181,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,21431,24401,24401,24401,24401,26095,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,30613,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,33588,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,31181,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,21431,24401,24401,24401,24401,26095,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,35019,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22248,24401,24401,24401,24401,30613,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,31500,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,31181,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,21431,24401,24401,24401,24401,26095,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,18866,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,24036,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22324,18836,22059,18888,27857,30501,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,18866,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,24036,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,18866,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,24036,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,34365,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22354,18836,18987,19008,19233,20367,19008,17173,27086,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,19930,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21828,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22309,22513,18987,19008,19233,20367,19008,19122,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,22544,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22608,18836,22988,23004,27585,23020,23036,23067,22087,18888,18888,18888,23083,27211,27211,27211,23102,22121,24401,24401,24401,23122,31386,26154,19674,18888,28119,28232,19424,23705,27211,27211,23142,23173,23189,23212,24401,24401,23246,34427,31693,23262,18888,23290,23308,27783,27620,23327,35263,35107,33383,23346,18193,23393,32748,23968,24401,23414,35153,23463,18888,33913,23442,23482,27211,27211,23532,23552,21431,23575,24401,24401,23604,26095,23635,23657,18888,33482,23685,33251,27211,22187,18851,23721,35536,24401,18887,23750,32641,27211,23769,23787,20080,33012,24384,25659,18888,18889,27211,27211,19719,23889,23803,31018,18890,27211,31833,19406,19447,23086,23330,19828,28224,31826,23823,26917,34978,23850,26493,25782,23878,23914,23516,31008,22105,19419,27963,19659,29781,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22623,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,30613,18888,18888,18888,18888,28909,25783,27211,27211,27211,34048,23933,22164,24401,24401,24401,28409,23949,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,31181,26583,18888,18888,18888,35585,23984,27211,27211,27211,24005,22201,24033,24401,24401,24401,24052,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,26496,24076,24126,24151,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22638,18836,22059,19678,27857,24185,24401,24201,24217,26592,18888,18888,18890,24252,24268,27211,27211,22121,24287,24303,24401,24401,30613,19781,35432,36007,32649,18888,25783,24322,28966,23771,27211,35072,22164,24358,32106,26829,24400,31500,31693,18888,18888,18888,24801,18890,27211,27211,27211,27211,24418,19484,24401,24401,24401,24401,20167,31181,18888,18888,18888,27833,23086,27211,27211,33540,27211,30756,21431,24401,24401,22972,24401,26095,18888,36131,18888,27855,27211,24440,27211,22187,22968,24401,24459,24401,31699,28454,18888,34528,34570,35779,24478,24402,24494,25659,18888,36228,27211,27211,24515,30981,23734,31018,18890,27211,31833,19406,19447,23086,23330,24538,31017,27856,31741,30059,23377,24563,19837,25782,19760,31015,23516,25374,22105,19419,29793,24579,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22653,18836,22059,25756,19982,34097,23196,29183,24614,24110,23641,24673,26103,24697,24443,24713,28558,22121,24748,24462,24764,23398,30613,18888,18888,18888,18888,24798,25783,27211,27211,27211,34232,35072,22164,24401,24401,24401,33302,31500,22559,24106,24232,18888,18888,34970,24817,30411,27211,27211,32484,19484,29750,35127,24401,24401,19872,31181,24852,18888,18888,24871,29221,27211,27211,32072,27211,30756,34441,24401,24401,31571,24401,26095,33141,27802,27011,27855,25295,25607,24888,22187,22968,19195,34593,24906,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,33663,27211,27211,24924,24947,23588,31018,18890,27211,31833,22135,19447,23086,23330,19828,30904,31042,24972,19840,25e3,31738,30898,25782,19760,31015,23516,31008,22105,19419,25016,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22668,18836,25041,25057,31320,25073,25089,25105,22087,34796,24236,36138,34870,34125,25121,23106,35497,22248,36613,25137,30671,27365,30613,25153,26447,25199,25233,22574,23274,25249,25265,25281,25318,25344,25360,25400,25428,25452,26731,25504,31693,23669,25558,27407,25575,28599,25934,25599,27211,28180,27304,25623,25839,25649,24401,34820,25681,25698,22586,27775,30190,25745,25778,25799,25817,28995,33569,30756,21518,33443,25837,25855,25893,26095,31254,26677,30136,27855,25930,25950,27211,22187,22968,25966,25986,24401,23428,27763,36330,26959,26002,26029,26045,26085,26119,26170,26203,26222,26239,30527,26372,26274,28404,31018,33757,27211,34262,26316,36729,26345,26366,35337,31017,26388,26407,30954,26350,33861,26434,26463,26479,26512,23516,33189,26531,26547,27963,31293,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22683,18836,26568,26181,26608,34097,26643,29183,22087,26669,18888,18888,18890,26693,27211,27211,27211,22121,26720,24401,24401,24401,30613,18888,18888,18888,18888,26774,25783,27211,27211,27211,26619,35072,22164,24401,24401,24401,21596,31500,31693,18888,18888,33978,18888,18890,27211,27211,25801,27211,27211,19484,24401,24401,24401,26792,24401,31181,18888,18888,18888,35464,23086,27211,27211,27211,26809,30756,21431,24401,24401,24401,26828,26095,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,31948,18889,35707,27211,19719,26845,19868,31018,18890,27211,31833,19406,19447,23086,23330,26905,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,24984,31088,19419,26945,27651,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22698,18836,26999,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,23051,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,27033,24401,24401,24401,24401,24036,31693,18888,18888,27056,18888,18890,27211,27211,30320,27211,27211,27075,24401,24401,29032,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,33986,27855,27211,27211,27102,17590,24017,24401,24401,27123,27144,36254,27162,27210,27228,28500,18187,34842,33426,27244,35980,27277,27302,27320,36048,34013,20999,31882,21478,27895,27356,30287,27381,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,26329,30087,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,27406,27423,27445,35294,27461,22087,18888,18888,30140,18890,27211,27211,27989,27211,22121,24401,24401,25682,24401,18866,18888,18888,18888,18888,18888,34042,27211,27211,27211,27211,29700,22164,24401,24401,24401,24401,27128,31693,27477,18888,18888,18888,18890,27194,27211,27211,27211,27211,19484,35299,24401,24401,24401,24401,19628,18888,18888,18888,27059,23086,27211,27211,27211,33366,30756,24012,24401,24401,24401,35044,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,20815,27211,30818,19960,33969,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22713,18836,22059,27496,27516,27541,35231,27557,22087,29662,26292,23292,27573,24836,27601,27211,27636,22121,35544,27686,24401,27721,18866,18888,27799,18888,27818,22071,27853,32260,27211,26013,27873,27920,22164,29419,24401,29946,33413,26742,27751,26881,18888,18888,27261,36776,27936,27211,27211,27211,27988,28005,28031,28052,24401,24401,28069,28088,28135,25488,28152,26069,28167,27211,28340,24657,28196,30756,31523,24401,28212,34176,36174,24956,28248,28266,28290,21488,33077,28327,28356,17590,20986,23126,28391,28425,28102,28451,28470,28490,28516,28534,20034,33728,25868,25659,18888,18889,27211,27211,19719,23889,19868,30241,28274,28553,28574,19406,28590,23086,23330,19828,19452,28615,28660,26147,25783,31738,19837,25782,19760,29613,35958,29276,22105,19419,27963,23157,28700,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,18866,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,24036,22528,18888,18888,18888,18888,18890,27333,27211,27211,27211,27211,19484,30853,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22728,18836,28747,28782,28817,28841,28857,28880,28896,24161,28943,32011,36261,27340,28961,29492,28982,29011,24522,29027,25436,29048,23051,27500,29090,29110,30713,18888,23512,29130,25183,27211,29155,28927,27033,29173,23230,24401,29199,35373,31693,18888,18888,25583,32629,29218,27211,27211,31461,30692,29237,27075,24401,24401,24401,29262,29302,19628,18888,34329,18888,18888,23086,27211,29329,27211,27211,30756,24012,35933,24401,24401,24401,27705,31612,18888,18888,29346,29374,27211,35650,17590,21436,29393,24401,25970,18887,33895,18888,27211,32528,27212,24016,32769,19868,25659,18888,26889,27211,27211,29412,23889,24371,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31768,19840,25783,31738,19837,29435,29508,31102,29550,29606,22105,30300,29462,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22743,18836,22059,29629,29473,34097,33285,29183,29651,27254,18888,29678,33329,32535,27211,29694,29716,22121,19202,24401,32742,29741,18866,26776,33921,28474,18888,18888,25783,29766,27211,29809,27211,35072,22164,35825,24401,29828,24401,24036,36769,25217,18888,18888,29848,18890,27211,29871,27211,26258,27211,29894,24401,29929,24401,36587,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,29725,29962,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18473,18888,18888,19584,27211,27212,24016,29982,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19902,19447,32052,19544,19828,29998,30097,30031,19840,25783,30047,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,30075,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22758,18836,30121,30156,30206,30257,30273,30336,22087,35624,32837,25762,18890,29878,34934,26812,27211,22121,24931,23223,29202,24401,18866,34373,30352,18888,18888,18888,23447,24828,27211,27211,27211,35072,30370,35052,24401,24401,24401,24036,29523,18888,18888,27146,18888,31308,30386,27211,27211,30405,30558,19484,30427,24401,24401,29938,35686,19628,28766,30447,34506,35614,23086,28731,30482,30517,30552,30756,24012,20156,30574,30598,30667,26283,33464,28945,27670,30687,32915,33504,25328,17590,23963,20450,33837,21016,32397,26300,30708,30729,27885,30748,21588,36373,30779,26653,24628,33220,32514,30806,31835,25412,25906,26515,18890,28825,31833,26133,19447,28304,31730,23834,26057,30869,30885,32181,30920,30942,32797,25782,30970,31015,23516,31008,30997,31034,27963,19659,29450,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22773,18836,31058,31074,32463,31125,31141,31197,22087,18888,29534,35471,36738,27211,24342,31213,24424,22121,24401,20175,31229,31917,27736,31245,34334,27175,18888,29094,27286,27211,31278,31336,27211,31355,31371,24401,31402,31418,24401,31437,31693,18888,31619,32841,18888,18890,27211,27211,31460,31477,27211,19484,24401,24401,31497,36581,24401,33020,18888,18888,18888,18888,30007,27211,27211,27211,27211,31516,32310,24401,24401,24401,24401,31539,18888,28762,18888,24651,35740,27211,27211,28644,31565,35796,24401,24401,19318,32188,18888,24334,28366,27212,29966,29832,19868,25659,18888,18889,27211,27211,19719,31587,19868,31635,32435,33693,30105,31663,20005,31715,31757,31784,31812,30015,31851,31878,25783,31898,19837,25782,19760,31015,23516,31008,22105,19419,27963,31933,30221,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22788,18836,22059,25729,30466,31968,24306,31984,32e3,32807,35160,27017,29590,34941,19801,29377,33700,22121,27040,30431,29396,28864,29565,18888,18888,18888,32027,18888,25783,27211,27211,23698,27211,35072,22164,24401,24401,30845,24401,24036,32045,18888,26929,18888,18888,18890,27211,31481,32068,27211,27211,32088,24401,33058,32122,24401,24401,33736,18888,18888,33162,18888,23086,27211,27211,29484,27211,28375,32144,24401,24401,33831,24401,26750,18888,18888,18888,27855,27211,27211,27211,36704,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,33107,22171,33224,24271,32169,31017,27856,31741,19840,25783,31738,30234,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,32204,32232,32252,32677,33295,29074,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,23619,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,32276,24401,24401,24401,24401,24036,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,32299,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,33886,18889,36065,27211,19719,35326,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22803,18836,32335,31647,34666,32351,32367,32417,22087,18888,32433,19335,32451,27211,32479,27107,32500,22121,24401,32551,20085,32572,18866,22287,23753,18888,18888,32602,32665,27211,32693,27211,26972,32713,32729,24401,32764,24401,25877,32785,34768,18888,27390,32823,24594,24855,32857,24890,32878,32904,27211,32942,32977,24401,33e3,29313,24401,30790,26206,27666,33904,18888,23086,36353,27211,33036,27211,30756,24012,32153,24401,33056,24401,35861,18888,18888,30354,27972,27211,27211,33800,17590,20145,24401,24401,34638,20811,18888,18888,33074,27211,27212,36167,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,34616,24169,33093,33123,33157,27856,31741,23862,26552,34302,19837,25782,19760,31015,23516,31008,33178,19973,27963,23497,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22818,18836,33205,28113,33240,34097,33275,29183,22087,33318,35438,18888,18890,33345,26391,33382,27211,22121,33399,28072,33442,24401,18866,22232,18888,33459,18888,18888,33480,33498,25175,27211,27211,26704,22164,24775,35239,24401,24401,25914,29580,18888,18888,31109,25211,33520,33539,27211,27211,33556,36284,19484,33585,24401,24401,33604,32556,19628,18888,18888,31262,33658,23086,27211,27211,33679,27211,30756,24012,24401,24401,33716,24401,26854,27480,18888,33752,27855,33259,34701,27211,17590,32102,24782,23807,24401,18887,18888,18888,27211,27211,27212,33773,36105,19868,25659,18888,23368,27211,29157,19719,23889,34454,29286,18890,33794,25302,33816,19447,34079,33853,31862,31017,27856,31741,33877,28920,33937,19837,30461,34002,22276,36041,34029,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22833,18836,34064,32616,34113,34141,34157,34192,34208,32216,36013,31549,31952,34224,34248,34287,29330,34350,34389,34413,34481,26793,18866,26187,29635,22293,18888,36654,25783,34522,34544,34566,25821,35072,22164,34586,34609,34632,19604,24036,36644,36674,24681,18888,32401,34654,31339,34682,34698,27211,34717,34753,28053,34812,34836,24401,33619,19628,34858,32236,34906,24598,33523,27612,34890,34922,24732,29246,36717,33634,34465,32984,34168,26750,34957,18888,18888,34994,35010,27211,33040,17590,29913,35035,24401,36304,25482,30171,35883,35068,35088,26627,20441,31173,35123,35143,35176,24640,30492,29358,19719,35192,35219,25384,28801,35255,35279,32586,34496,23086,23330,29061,31017,27856,31741,19840,25783,31738,24547,25164,35315,31796,35353,34316,22105,19419,27963,24091,28630,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22848,18836,22059,34782,34088,35389,21008,35405,35421,35454,18888,18888,23466,35487,27211,27211,27211,35513,31154,24401,24401,24401,35560,18888,26863,36664,35601,24872,25783,30389,23536,26250,35647,35666,22164,19522,19564,30582,35682,27697,35575,29114,18888,18888,18888,18890,27211,35702,27211,27211,27211,35723,24401,35527,24401,24401,24401,19628,30184,18888,18888,18888,23086,35739,27211,27211,27211,29139,22938,24401,24401,24401,24401,23898,35756,18888,18888,25025,35778,27211,27211,17590,20064,35795,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,23917,18890,34550,31833,22262,19447,23086,23330,26418,31017,27856,31741,19840,25783,35812,19837,27187,35841,33135,23516,31008,22105,22148,28712,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22863,18836,22059,35877,28723,34097,31164,29183,22087,26758,18888,22592,18890,23989,27211,29812,27211,22121,33778,24401,31421,24401,18866,18888,18888,26872,18888,18888,25783,27211,30732,27211,27211,35072,22164,24401,24908,24401,24401,24036,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22878,18836,22059,27837,27857,35899,24401,35915,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,18866,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,24036,31602,18888,18888,18888,18888,26223,27211,27211,27211,27211,27211,19484,35931,24401,24401,24401,24401,19628,18888,28136,18888,18888,35949,27211,32862,27211,32697,30756,24012,24401,32283,24401,32128,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22893,18836,22059,35974,34882,34097,33960,29183,35996,18888,23311,18888,36029,27211,27211,36064,36081,22121,24401,24401,36104,33950,18866,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,24036,36121,18888,25559,18888,18888,18890,27211,27211,30313,27211,27211,36154,24401,24401,34397,24401,24401,19628,28250,18888,18888,18888,23086,30926,27211,27211,27211,26983,24012,33642,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,19354,27857,36190,24401,36206,22087,18888,18888,18888,18007,27211,27211,27211,24724,22121,24401,24401,24401,30827,18866,18888,36222,18888,28795,18888,25783,35100,27211,27429,27211,35072,22164,30836,24401,24499,24401,24036,31693,18888,36244,18888,18888,18890,27211,36088,27211,27211,27211,19484,24401,28036,24401,24401,24401,19628,18888,18888,35631,18888,35762,27211,27211,36277,27211,34730,24012,24401,24401,36300,24401,36320,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,25712,18888,18888,36346,27211,27212,19184,24402,19868,25659,32029,18889,27211,33359,19719,23889,36369,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22384,18836,36389,19008,19233,20367,36434,17173,17595,36437,17330,17349,18921,17189,17208,17281,20355,36453,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,20362,21726,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22369,18836,18987,19008,19233,20367,19008,21737,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21813,18836,36489,19008,19233,20367,19008,17173,17737,36437,17330,17349,18921,17189,17208,17281,20355,17768,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,20543,22022,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21828,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,36517,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21828,18836,19307,18888,27857,30756,24401,29183,28015,18888,18888,18888,18890,27211,27211,27211,27211,36567,24401,24401,24401,24401,22953,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,28537,36603,24401,24401,24401,24401,24036,18881,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,36629,36690,18720,19008,19233,20367,19008,17454,17595,36437,17330,17349,18921,17189,17208,17281,20355,17223,17308,17327,17346,18918,36754,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,20362,21726,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,0,94242,0,118820,0,2211840,102439,0,0,106538,98347,0,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2482176,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,0,18,18,24,24,27,27,27,2207744,2404352,2412544,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,3104768,2605056,2207744,2207744,2207744,2207744,2207744,2207744,2678784,2207744,2695168,2207744,2703360,2207744,2711552,2752512,2207744,0,0,0,0,0,0,2166784,0,0,0,0,0,0,2158592,2158592,3170304,3174400,2158592,0,139,0,2158592,2158592,2158592,2158592,2158592,2424832,2158592,2158592,2158592,2748416,2756608,2777088,2801664,2158592,2158592,2158592,2863104,2891776,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3104768,2158592,2158592,2158592,2158592,2158592,2158592,2207744,2785280,2207744,2809856,2207744,2207744,2842624,2207744,2207744,2207744,2899968,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2473984,2207744,2207744,2494464,2207744,2207744,2207744,2523136,2158592,2404352,2412544,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2564096,2158592,2158592,2605056,2158592,2158592,2158592,2158592,2158592,2158592,2678784,2158592,2695168,2158592,2703360,2158592,2711552,2752512,2158592,2158592,2785280,2158592,2158592,2785280,2158592,2809856,2158592,2158592,2842624,2158592,2158592,2158592,2899968,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,18,0,0,0,0,0,0,0,2211840,0,0,641,0,2158592,0,0,0,0,0,0,0,0,2211840,0,0,32768,0,2158592,0,2158592,2158592,2158592,2383872,2158592,2158592,2158592,2158592,3006464,2383872,2207744,2207744,2207744,2207744,2158877,2158877,2158877,2158877,0,0,0,2158877,2572573,2158877,2158877,0,2207744,2207744,2596864,2207744,2207744,2207744,2207744,2207744,2207744,2641920,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,0,0,167936,0,0,2162688,0,0,3104768,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,0,0,0,2146304,2146304,2224128,2224128,2232320,2232320,2232320,641,0,0,0,0,0,0,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2531328,2158592,2158592,2158592,2158592,2158592,2617344,2158592,2158592,2158592,2158592,2441216,2445312,2158592,2158592,2158592,2158592,2158592,2158592,2502656,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2580480,2158592,2158592,2158592,2158592,2621440,2158592,2580480,2158592,2158592,2158592,2158592,2621440,2158592,2158592,2158592,2158592,2158592,2158592,2699264,2158592,2158592,2158592,2158592,2158592,2748416,2756608,2777088,2801664,2207744,2863104,2891776,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,3018752,2207744,3043328,2207744,2207744,2207744,2207744,3080192,2207744,2207744,3112960,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,0,0,172310,279,0,2162688,0,0,2207744,2207744,2207744,3186688,2207744,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2158592,2158592,2158592,2404352,2412544,2158592,2510848,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2584576,2158592,2609152,2158592,2158592,2629632,2158592,2158592,2158592,2686976,2158592,2715648,2158592,2158592,3121152,2158592,2158592,2158592,3149824,2158592,2158592,3170304,3174400,2158592,2367488,2207744,2207744,2207744,2207744,2158592,2158592,2158592,2158592,0,0,0,2158592,2572288,2158592,2158592,0,2207744,2207744,2207744,2433024,2207744,2453504,2461696,2207744,2207744,2207744,2207744,2207744,2207744,2510848,2207744,2207744,2207744,2207744,2207744,2531328,2207744,2207744,2207744,2207744,2207744,2617344,2207744,2207744,2207744,2207744,2158592,2158592,2158592,2158592,0,0,0,2158592,2572288,2158592,2158592,1508,2715648,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2867200,2207744,2904064,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2580480,2207744,2207744,2207744,2207744,2621440,2207744,2207744,2207744,3149824,2207744,2207744,3170304,3174400,2207744,0,0,0,0,0,0,0,0,0,0,138,2158592,2158592,2158592,2404352,2412544,2707456,2732032,2207744,2207744,2207744,2822144,2826240,2207744,2895872,2207744,2207744,2924544,2207744,2207744,2973696,2207744,0,0,0,0,0,0,2166784,0,0,0,0,0,285,2158592,2158592,3112960,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3186688,2158592,2207744,2207744,2158592,2158592,2158592,2158592,2158592,0,0,0,2158592,2158592,2158592,2158592,0,0,2535424,2543616,2158592,2158592,2158592,0,0,0,2158592,2158592,2158592,2990080,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2572288,2981888,2207744,2207744,3002368,2207744,3047424,3063808,3076096,2207744,2207744,2207744,2207744,2207744,2207744,2207744,3203072,2708960,2732032,2158592,2158592,2158592,2822144,2827748,2158592,2895872,2158592,2158592,2924544,2158592,2158592,2973696,2158592,2981888,2158592,2158592,3002368,2158592,3047424,3063808,3076096,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3203072,2981888,2158592,2158592,3003876,2158592,3047424,3063808,3076096,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3203072,2207744,2207744,2207744,2207744,2207744,2424832,2207744,2207744,2207744,2207744,2207744,2207744,2207744,20480,0,0,0,0,0,2162688,20480,0,2523136,2527232,2158592,2158592,2576384,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2908160,2527232,2207744,2207744,2576384,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2908160,2207744,0,0,0,0,0,0,2166784,0,0,0,0,0,286,2158592,2158592,0,0,2158592,2158592,2158592,2158592,2633728,2658304,0,0,2740224,2744320,0,2834432,2207744,2207744,2977792,2207744,2207744,2207744,2207744,3039232,2207744,2207744,2207744,2207744,2207744,2207744,3158016,0,0,29315,0,0,0,0,45,45,45,45,45,933,45,45,45,45,442,45,45,45,45,45,45,45,45,45,67,67,2494464,2158592,2158592,2158592,2524757,2527232,2158592,2158592,2576384,2158592,2158592,2158592,2158592,2158592,2158592,1504,2158592,2498560,2158592,2158592,2158592,2158592,2568192,2158592,2592768,2625536,2158592,2158592,2674688,2736128,2158592,2158592,0,2158592,2912256,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3108864,2158592,2158592,3133440,3145728,3153920,2375680,2379776,2207744,2207744,2420736,2207744,2449408,2207744,2207744,2207744,2498560,2207744,2207744,2207744,2207744,2568192,2207744,0,0,0,0,0,0,2166784,0,0,0,0,0,551,2158592,2158592,2158592,2158592,2207744,2506752,2207744,2207744,2207744,2207744,2207744,2158592,2506752,0,2020,2158592,2592768,2625536,2207744,2207744,2674688,2736128,2207744,2207744,2207744,2912256,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,542,0,544,2207744,3108864,2207744,2207744,3133440,3145728,3153920,2375680,2379776,2158592,2158592,2420736,2158592,2449408,2158592,2158592,2158592,2158592,2158592,3186688,2158592,0,641,0,0,0,0,0,0,2367488,2158592,2498560,2158592,2158592,1621,2158592,2158592,2568192,2158592,2592768,2625536,2158592,2158592,2674688,0,0,0,0,0,1608,97,97,97,97,97,97,97,97,97,97,1107,97,97,1110,97,97,3133440,3145728,3153920,2158592,2408448,2416640,2158592,2465792,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3014656,2158592,2158592,3051520,2158592,2158592,3100672,2158592,2158592,3121152,2158592,2158592,2158592,3149824,2416640,2207744,2465792,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2633728,2658304,2740224,2744320,2834432,2949120,2158592,2985984,2158592,2998272,2158592,2158592,2158592,3129344,2207744,2408448,2949120,2207744,2985984,2207744,2998272,2207744,2207744,2207744,3129344,2158592,2408448,2416640,2158592,2465792,2158592,2158592,2158592,2158592,2158592,3186688,2158592,0,32768,0,0,0,0,0,0,2367488,2949120,2158592,2985984,2158592,2998272,2158592,2158592,2158592,3129344,2158592,2158592,2478080,2158592,2158592,2158592,2535424,2543616,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3117056,2207744,2207744,2478080,2207744,2207744,2207744,2207744,2699264,2207744,2207744,2207744,2207744,2207744,2748416,2756608,2777088,2801664,2207744,2207744,2158877,2158877,2158877,2158877,2158877,0,0,0,2158877,2158877,2158877,2158877,0,0,2535709,2543901,2158877,2158877,2158877,0,0,0,2158877,2158877,2158877,2990365,2158877,2158877,2158730,2158730,2158730,2158730,2158730,2572426,2207744,2535424,2543616,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,3117056,2158592,2158592,2478080,2207744,2207744,2990080,2207744,2207744,2158592,2158592,2482176,2158592,2158592,0,0,0,2158592,2158592,2158592,0,2158592,2908160,2158592,2158592,2158592,2977792,2158592,2158592,2158592,2158592,3039232,2158592,2158592,3010560,2207744,2428928,2207744,2514944,2207744,2588672,2207744,2838528,2207744,2207744,2207744,3010560,2158592,2428928,2158592,2514944,0,0,2158592,2588672,2158592,0,2838528,2158592,2158592,2158592,3010560,2158592,2506752,2158592,18,0,0,0,0,0,0,0,2211840,0,0,0,0,2158592,0,0,29315,922,0,0,0,45,45,45,45,45,45,45,45,45,45,45,45,45,1539,45,3006464,2383872,0,2020,2158592,2158592,2158592,2158592,3006464,2158592,2637824,2953216,2158592,2207744,2637824,2953216,2207744,0,0,2158592,2637824,2953216,2158592,2539520,2158592,2539520,2207744,0,0,2539520,2158592,2158592,2158592,2158592,2207744,2506752,2207744,2207744,2207744,2207744,2207744,2158592,2506752,0,0,2158592,2207744,0,2158592,2158592,2207744,0,2158592,2158592,2207744,0,2158592,2965504,2965504,2965504,0,0,0,0,0,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2474269,2158877,2158877,0,0,2158877,2158877,2158877,2158877,2634013,2658589,0,0,2740509,2744605,0,2834717,40976,18,36884,45078,24,28,90143,94242,118820,102439,106538,98347,118820,118820,118820,40976,18,18,36884,0,0,0,24,24,24,27,27,27,27,90143,0,0,86016,0,0,2211840,102439,0,0,0,98347,0,2158592,2158592,2158592,2158592,2158592,3158016,0,2375680,2379776,2158592,2158592,2420736,2158592,2449408,2158592,2158592,0,94242,0,0,0,2211840,102439,0,0,106538,98347,135,2158592,2158592,2158592,2158592,2158592,2158592,2564096,2158592,2158592,2158592,2158592,2158592,2596864,2158592,2158592,2158592,2158592,2158592,2158592,2641920,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2781184,2793472,2494464,2158592,2158592,2158592,2523136,2527232,2158592,2158592,2576384,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,0,18,18,24,0,27,27,0,2158592,2498560,2158592,2158592,0,2158592,2158592,2568192,2158592,2592768,2625536,2158592,2158592,2674688,0,0,0,0,0,2211840,0,0,0,0,0,0,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2473984,2158592,2158592,2494464,2158592,2158592,2158592,3006464,2383872,0,0,2158592,2158592,2158592,2158592,3006464,2158592,2637824,2953216,2158592,2207744,2637824,2953216,40976,18,36884,45078,24,27,147488,94242,147456,147488,106538,98347,0,0,147456,40976,18,18,36884,0,45078,0,24,24,24,27,27,27,27,0,81920,0,94242,0,0,0,2211840,0,0,0,106538,98347,0,2158592,2158592,2158592,2158592,2158592,2158592,2428928,2158592,2514944,2158592,2588672,2158592,2838528,2158592,2158592,40976,18,151573,45078,24,27,90143,94242,0,102439,106538,98347,0,0,0,40976,18,18,36884,0,45078,0,24,24,24,27,27,27,27,90143,0,0,1315,0,97,97,97,97,97,97,97,97,97,97,1487,97,18,131427,0,0,0,0,0,0,362,0,0,365,29315,367,0,0,29315,0,0,0,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,67,67,130,94242,0,0,0,2211840,102439,0,0,106538,98347,0,2158592,2158592,2158592,2158592,2158592,2158592,3096576,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2207744,2207744,2158592,18,0,0,0,0,0,0,0,2211840,0,0,0,0,2158592,644,2207744,2207744,2207744,3186688,2207744,0,1080,0,1084,0,1088,0,0,0,0,0,0,0,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2531466,2158730,2158730,2158730,2158730,2158730,2617482,0,94242,0,0,0,2211840,102439,0,0,106538,98347,0,2158592,2158592,2158592,2158592,2158592,2781184,2793472,2158592,2818048,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,40976,18,36884,45078,24,27,90143,159779,159744,102439,159779,98347,0,0,159744,40976,18,18,36884,0,45078,0,2224253,172032,2224253,2232448,2232448,172032,2232448,90143,0,0,2170880,0,0,550,829,2158592,2158592,2158592,2387968,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,0,18,18,124,124,127,127,127,40976,18,36884,45078,25,29,90143,94242,0,102439,106538,98347,0,0,163931,40976,18,18,36884,0,45078,249856,24,24,24,27,27,27,27,90143,0,0,2170880,0,0,827,0,2158592,2158592,2158592,2387968,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,0,4243810,4243810,24,24,27,27,27,2207744,0,0,0,0,0,0,2166784,0,0,0,0,57344,286,2158592,2158592,2158592,2158592,2707456,2732032,2158592,2158592,2158592,2822144,2826240,2158592,2895872,2158592,2158592,2924544,2158592,2158592,2973696,2158592,2207744,2207744,2207744,3186688,2207744,0,0,0,0,0,0,53248,0,0,0,0,0,97,97,97,97,97,1613,97,97,97,97,97,97,1495,97,97,97,97,97,97,97,97,97,566,97,97,97,97,97,97,2207744,0,0,0,0,0,0,2166784,546,0,0,0,0,286,2158592,2158592,2158592,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,17,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,20480,120,121,18,18,36884,0,45078,0,24,24,24,27,27,27,27,90143,0,0,2170880,0,53248,550,0,2158592,2158592,2158592,2387968,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,196608,18,266240,24,24,27,27,27,0,94242,0,0,0,38,102439,0,0,106538,98347,0,45,45,45,45,45,45,45,1535,45,45,45,45,45,45,45,1416,45,45,45,45,45,45,45,45,424,45,45,45,45,45,45,45,45,45,405,45,45,45,45,45,45,45,45,45,45,45,45,45,199,45,45,67,67,67,67,67,491,67,67,67,67,67,67,67,67,67,67,67,1766,67,67,67,1767,67,24850,24850,12564,12564,0,0,2166784,546,0,53531,53531,0,286,97,97,0,0,97,97,97,97,97,97,0,0,97,97,0,97,97,97,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,743,57889,0,2170880,0,0,550,0,97,97,97,97,97,97,97,97,97,45,45,45,45,45,45,45,45,1856,45,1858,1859,67,67,67,1009,67,67,67,67,67,67,67,67,67,67,67,1021,67,67,67,67,67,25398,0,13112,0,54074,0,0,0,0,0,0,0,0,0,2367773,2158877,2158877,2158877,2158877,2158877,2158877,2699549,2158877,2158877,2158877,2158877,2158877,2748701,2756893,2777373,2801949,97,1115,97,97,97,97,97,97,97,97,97,97,97,97,97,97,857,97,67,67,67,67,67,1258,67,67,67,67,67,67,67,67,67,67,67,1826,67,97,97,97,97,97,97,1338,97,97,97,97,97,97,97,97,97,97,97,97,97,870,97,97,67,67,67,1463,67,67,67,67,67,67,67,67,67,67,67,67,67,1579,67,67,97,97,97,1518,97,97,97,97,97,97,97,97,97,97,97,97,97,904,905,97,97,97,97,1620,97,97,97,97,97,97,97,97,97,97,97,0,921,0,0,0,0,0,0,45,1679,67,67,67,1682,67,67,67,67,67,67,67,67,67,1690,67,0,0,97,97,97,97,45,45,67,67,0,0,97,97,45,45,45,669,45,45,45,45,45,45,45,45,45,45,45,45,189,45,45,45,1748,45,45,45,1749,1750,45,45,45,45,45,45,45,45,67,67,67,67,1959,67,67,67,67,1768,67,67,67,67,67,67,67,67,97,97,97,97,97,97,97,97,97,1791,97,97,97,97,97,97,97,97,45,45,45,45,45,45,1802,67,1817,67,67,67,67,67,67,1823,67,67,67,67,97,97,97,97,0,0,0,97,97,97,97,0,97,97,97,97,1848,45,45,45,45,45,45,45,45,45,45,45,659,45,45,45,45,45,45,45,1863,67,67,67,67,67,67,67,67,67,67,67,67,495,67,67,67,67,67,1878,97,97,97,97,0,0,0,97,97,97,97,0,0,97,97,97,97,97,0,0,0,97,97,97,97,97,97,45,45,45,45,45,45,45,45,45,67,67,67,67,97,97,97,97,0,0,0,1973,97,97,97,0,97,97,97,97,97,97,97,97,97,97,97,97,97,1165,97,1167,67,24850,24850,12564,12564,0,0,2166784,0,0,53531,53531,0,286,97,97,0,0,97,97,97,97,97,97,0,0,97,97,1789,97,0,94242,0,0,0,2211840,102439,0,0,106538,98347,136,2158592,2158592,2158592,2158592,2158592,3158016,229376,2375680,2379776,2158592,2158592,2420736,2158592,2449408,2158592,2158592,67,24850,24850,12564,12564,0,0,280,547,0,53531,53531,0,286,97,97,0,0,97,97,97,97,97,97,0,1788,97,97,0,97,2024,97,45,45,45,45,45,45,67,67,67,67,67,67,67,67,235,67,67,67,67,67,57889,547,547,0,0,550,0,97,97,97,97,97,97,97,97,97,45,45,45,1799,45,45,45,67,67,67,67,67,25398,0,13112,0,54074,0,0,1092,0,0,0,0,0,97,97,97,97,1612,97,97,97,97,1616,97,1297,1472,0,0,0,0,1303,1474,0,0,0,0,1309,1476,0,0,0,0,97,97,97,1481,97,97,97,97,97,97,1488,97,0,1474,0,1476,0,97,97,97,97,97,97,97,97,97,97,97,607,97,97,97,97,40976,18,36884,45078,26,30,90143,94242,0,102439,106538,98347,0,0,213080,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,143448,40976,18,18,36884,0,45078,0,24,24,24,27,27,27,27,0,0,0,0,97,97,97,97,1482,97,1483,97,97,97,97,97,97,1326,97,97,1329,1330,97,97,97,97,97,97,1159,1160,97,97,97,97,97,97,97,97,590,97,97,97,97,97,97,97,0,94242,0,0,0,2211974,102439,0,0,106538,98347,0,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2474122,2158730,2158730,2494602,2158730,2158730,2158730,2809994,2158730,2158730,2842762,2158730,2158730,2158730,2900106,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3014794,2158730,2158730,3051658,2158730,2158730,3100810,2158730,2158730,2158730,2158730,3096714,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2207744,2207744,2207744,2207744,2207744,2572288,2207744,2207744,2207744,2207744,541,541,543,543,0,0,2166784,0,548,549,549,0,286,2158877,2158877,2158877,2863389,2892061,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,3186973,2158877,0,0,0,0,0,0,0,0,2367626,2158877,2404637,2412829,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2564381,2158877,2158877,2605341,2158877,2158877,2158877,2158877,2158877,2158877,2679069,2158877,2695453,2158877,2703645,2158877,2711837,2752797,2158877,0,2158877,2158877,2158877,2384010,2158730,2158730,2158730,2158730,3006602,2383872,2207744,2207744,2207744,2207744,2207744,2207744,3096576,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,0,0,0,0,0,2162688,0,0,2158877,2785565,2158877,2810141,2158877,2158877,2842909,2158877,2158877,2158877,2900253,2158877,2158877,2158877,2158877,2158877,2531613,2158877,2158877,2158877,2158877,2158877,2617629,2158877,2158877,2158877,2158877,2158730,2818186,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3105053,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,0,0,0,0,0,97,97,97,1611,97,97,97,97,97,97,97,1496,97,97,1499,97,97,97,97,97,2441354,2445450,2158730,2158730,2158730,2158730,2158730,2158730,2502794,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2433162,2158730,2453642,2461834,2158730,2158730,2158730,2158730,2158730,2158730,2580618,2158730,2158730,2158730,2158730,2621578,2158730,2158730,2158730,2158730,2158730,2158730,2699402,2158730,2158730,2158730,2158730,2678922,2158730,2695306,2158730,2703498,2158730,2711690,2752650,2158730,2158730,2785418,2158730,2158730,2158730,3113098,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3186826,2158730,2207744,2207744,2207744,2207744,2781184,2793472,2207744,2818048,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,541,0,543,2158877,2502941,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2580765,2158877,2158877,2158877,2158877,2621725,2158877,3019037,2158877,3043613,2158877,2158877,2158877,2158877,3080477,2158877,2158877,3113245,2158877,2158877,2158877,2158877,0,2158877,2908445,2158877,2158877,2158877,2978077,2158877,2158877,2158877,2158877,3039517,2158877,2158730,2510986,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2584714,2158730,2609290,2158730,2158730,2629770,2158730,2158730,2158730,2388106,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2605194,2158730,2158730,2158730,2158730,2687114,2158730,2715786,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2867338,2158730,2904202,2158730,2158730,2158730,2642058,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2781322,2793610,2158730,3121290,2158730,2158730,2158730,3149962,2158730,2158730,3170442,3174538,2158730,2367488,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2441216,2445312,2207744,2207744,2207744,2207744,2207744,2207744,2502656,2158877,2433309,2158877,2453789,2461981,2158877,2158877,2158877,2158877,2158877,2158877,2511133,2158877,2158877,2158877,2158877,2584861,2158877,2609437,2158877,2158877,2629917,2158877,2158877,2158877,2687261,2158877,2715933,2158877,2158730,2158730,2973834,2158730,2982026,2158730,2158730,3002506,2158730,3047562,3063946,3076234,2158730,2158730,2158730,2158730,2207744,2506752,2207744,2207744,2207744,2207744,2207744,2158877,2507037,0,0,2158877,2158730,2158730,2158730,3203210,2207744,2207744,2207744,2207744,2207744,2424832,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2564096,2207744,2207744,2207744,2707741,2732317,2158877,2158877,2158877,2822429,2826525,2158877,2896157,2158877,2158877,2924829,2158877,2158877,2973981,2158877,18,0,0,0,0,0,0,0,2211840,0,0,642,0,2158592,0,45,1529,45,45,45,45,45,45,45,45,45,45,45,45,45,1755,45,67,67,2982173,2158877,2158877,3002653,2158877,3047709,3064093,3076381,2158877,2158877,2158877,2158877,2158877,2158877,2158877,3203357,2523274,2527370,2158730,2158730,2576522,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2908298,2494749,2158877,2158877,2158877,2523421,2527517,2158877,2158877,2576669,2158877,2158877,2158877,2158877,2158877,2158877,0,40976,0,18,18,4321280,2224253,2232448,4329472,2232448,2158730,2498698,2158730,2158730,2158730,2158730,2568330,2158730,2592906,2625674,2158730,2158730,2674826,2736266,2158730,2158730,2158730,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2158730,2912394,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3109002,2158730,2158730,3133578,3145866,3154058,2375680,2207744,3108864,2207744,2207744,3133440,3145728,3153920,2375965,2380061,2158877,2158877,2421021,2158877,2449693,2158877,2158877,2158877,3117341,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3104906,2158730,2158730,2158730,2158730,2158730,2158730,2158877,2498845,2158877,2158877,0,2158877,2158877,2568477,2158877,2593053,2625821,2158877,2158877,2674973,0,0,0,0,97,97,1480,97,97,97,97,97,1485,97,97,97,0,97,97,1729,97,1731,97,97,97,97,97,97,97,311,97,97,97,97,97,97,97,97,1520,97,97,1523,97,97,1526,97,2736413,2158877,2158877,0,2158877,2912541,2158877,2158877,2158877,2158877,2158877,2158877,2158877,3109149,2158877,2158877,3014941,2158877,2158877,3051805,2158877,2158877,3100957,2158877,2158877,3121437,2158877,2158877,2158877,3150109,3133725,3146013,3154205,2158730,2408586,2416778,2158730,2465930,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3018890,2158730,3043466,2158730,2158730,2158730,2158730,3080330,2633866,2658442,2740362,2744458,2834570,2949258,2158730,2986122,2158730,2998410,2158730,2158730,2158730,3129482,2207744,2408448,2949120,2207744,2985984,2207744,2998272,2207744,2207744,2207744,3129344,2158877,2408733,2416925,2158877,2466077,2158877,2158877,3170589,3174685,2158877,0,0,0,2158730,2158730,2158730,2158730,2158730,2424970,2158730,2158730,2158730,2158730,2707594,2732170,2158730,2158730,2158730,2822282,2826378,2158730,2896010,2158730,2158730,2924682,2949405,2158877,2986269,2158877,2998557,2158877,2158877,2158877,3129629,2158730,2158730,2478218,2158730,2158730,2158730,2535562,2543754,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3117194,2207744,2207744,2478080,2207744,2207744,2207744,2207744,3014656,2207744,2207744,3051520,2207744,2207744,3100672,2207744,2207744,3121152,2207744,2207744,2207744,2207744,2207744,2584576,2207744,2609152,2207744,2207744,2629632,2207744,2207744,2207744,2686976,2207744,2207744,2535424,2543616,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,3117056,2158877,2158877,2478365,0,2158877,2158877,2158877,2158877,2158877,2158877,2158730,2158730,2482314,2158730,2158730,2158730,2158730,2158730,2158730,2207744,2207744,2207744,2387968,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,823,0,825,2158730,2158730,2158730,2990218,2158730,2158730,2207744,2207744,2482176,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,0,0,0,0,0,2162688,135,0,2207744,2207744,2990080,2207744,2207744,2158877,2158877,2482461,2158877,2158877,0,0,0,2158877,2158877,2158877,2158877,2158877,2158730,2429066,2158730,2515082,2158730,2588810,2158730,2838666,2158730,2158730,2158730,3010698,2207744,2428928,2207744,2514944,2207744,2588672,2207744,2838528,2207744,2207744,2207744,3010560,2158877,2429213,2158877,2515229,0,0,2158877,2588957,2158877,0,2838813,2158877,2158877,2158877,3010845,2158730,2506890,2158730,2158730,2158730,2748554,2756746,2777226,2801802,2158730,2158730,2158730,2863242,2891914,2158730,2158730,2158730,2158730,2158730,2158730,2564234,2158730,2158730,2158730,2158730,2158730,2597002,2158730,2158730,2158730,3006464,2384157,0,0,2158877,2158877,2158877,2158877,3006749,2158730,2637962,2953354,2158730,2207744,2637824,2953216,2207744,0,0,2158877,2638109,2953501,2158877,2539658,2158730,2539520,2207744,0,0,2539805,2158877,2158730,2158730,2158730,2977930,2158730,2158730,2158730,2158730,3039370,2158730,2158730,2158730,2158730,2158730,2158730,3158154,2207744,0,2158877,2158730,2207744,0,2158877,2158730,2207744,0,2158877,2965642,2965504,2965789,0,0,0,0,1315,0,0,0,0,97,97,97,97,97,97,97,1484,97,97,97,97,2158592,18,0,122880,0,0,0,77824,0,2211840,0,0,0,0,2158592,0,356,0,0,0,0,0,0,28809,0,139,45,45,45,45,45,45,1751,45,45,45,45,45,45,45,67,67,1427,67,67,67,67,67,1432,67,67,67,3104768,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,122880,0,0,0,0,1315,0,0,0,0,97,97,97,97,97,97,1322,550,0,286,0,2158592,2158592,2158592,2158592,2158592,2424832,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,0,18,18,24,24,4329472,27,27,2207744,2207744,2977792,2207744,2207744,2207744,2207744,3039232,2207744,2207744,2207744,2207744,2207744,2207744,3158016,542,0,0,0,542,0,544,0,0,0,544,0,550,0,0,0,0,0,97,97,1610,97,97,97,97,97,97,97,97,898,97,97,97,97,97,97,97,0,94242,0,0,0,2211840,0,0,0,0,0,0,2158592,2158592,2158592,2158592,2158592,2424832,2158592,2158592,2158592,2158592,2158592,2158592,40976,18,36884,45078,24,27,90143,94242,237568,102439,106538,98347,0,0,20480,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,192512,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,94,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,96,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,12378,40976,18,18,36884,0,45078,0,24,24,24,126,126,126,126,90143,0,0,2170880,0,0,0,0,2158592,2158592,2158592,2387968,2158592,2158592,2158592,2158592,2158592,2158592,20480,40976,0,18,18,24,24,27,27,27,40976,18,36884,45078,24,27,90143,94242,241664,102439,106538,98347,0,0,20568,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,200797,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,20480,40976,18,36884,45078,24,27,90143,94242,0,0,0,44,0,0,20575,40976,18,36884,45078,24,27,90143,94242,0,41,41,41,0,0,1126400,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,0,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,89,40976,18,18,36884,0,45078,0,24,24,24,27,131201,27,27,90143,0,0,2170880,0,0,550,0,2158592,2158592,2158592,2387968,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2441216,2445312,2158592,2158592,2158592,2158592,2158592,0,94242,0,0,208896,2211840,102439,0,0,106538,98347,0,2158592,2158592,2158592,2158592,2158592,3186688,2158592,0,0,0,0,0,0,0,0,2367488,32768,0,0,0,0,0,0,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2433024,2158592,2453504,2461696,2158592,2158592,2158592,2158592,2158592,2158592,2510848,2158592,2158592,2158592,2158592,40976,18,36884,245783,24,27,90143,94242,0,102439,106538,98347,0,0,20480,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,221184,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,180224,40976,18,18,36884,155648,45078,0,24,24,217088,27,27,27,217088,90143,0,0,2170880,0,0,828,0,2158592,2158592,2158592,2387968,2158592,2158592,2158592,2158592,2158592,2158592,2207744,2207744,2207744,2387968,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,0,0,0,0,0,2162688,233472,0,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,45,45,718,45,45,45,45,45,45,45,45,45,727,131427,0,0,0,0,362,0,365,28809,367,139,45,45,45,45,45,45,1808,45,45,45,45,67,67,67,67,67,67,67,97,97,0,0,97,67,24850,24850,12564,12564,0,57889,0,0,0,53531,53531,367,286,97,97,0,0,97,97,97,97,97,97,1787,0,97,97,0,97,97,97,45,45,45,45,2029,45,67,67,67,67,2033,57889,0,0,54074,54074,550,0,97,97,97,97,97,97,97,97,97,45,1798,45,45,1800,45,45,0,1472,0,0,0,0,0,1474,0,0,0,0,0,1476,0,0,0,0,1315,0,0,0,0,97,97,97,97,1320,97,97,0,0,97,97,97,97,1786,97,0,0,97,97,0,1790,1527,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,663,67,24850,24850,12564,12564,0,57889,281,0,0,53531,53531,367,286,97,97,0,0,97,97,97,1785,97,97,0,0,97,97,0,97,97,1979,97,97,45,45,1983,45,1984,45,45,45,45,45,652,45,45,45,45,45,45,45,45,45,45,690,45,45,694,45,45,40976,19,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,262144,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,46,67,98,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,45,67,97,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,258048,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,1122423,40976,18,36884,45078,24,27,90143,94242,0,1114152,1114152,1114152,0,0,1114112,40976,18,36884,45078,24,27,90143,94242,37,102439,106538,98347,0,0,204800,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,57436,40976,18,36884,45078,24,27,33,33,0,33,33,33,0,0,0,40976,18,18,36884,0,45078,0,124,124,124,127,127,127,127,90143,0,0,2170880,0,0,550,0,2158877,2158877,2158877,2388253,2158877,2158877,2158877,2158877,2158877,2781469,2793757,2158877,2818333,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2867485,2158877,2904349,2158877,2158877,2158877,2158877,2158877,2158877,2158877,3096861,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2441501,2445597,2158877,2158877,2158877,2158877,2158877,40976,122,123,36884,0,45078,0,24,24,24,27,27,27,27,90143,0,921,29315,0,0,0,0,45,45,45,45,45,45,45,45,936,2158592,4243810,0,0,0,0,0,0,0,2211840,0,0,0,0,2158592,0,921,29315,0,0,0,0,45,45,45,45,45,45,45,935,45,45,45,715,45,45,45,45,45,45,45,723,45,45,45,45,45,1182,45,45,45,45,45,45,45,45,45,45,430,45,45,45,45,45,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,47,68,99,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,48,69,100,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,49,70,101,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,50,71,102,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,51,72,103,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,52,73,104,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,53,74,105,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,54,75,106,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,55,76,107,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,56,77,108,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,57,78,109,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,58,79,110,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,59,80,111,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,60,81,112,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,61,82,113,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,62,83,114,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,63,84,115,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,64,85,116,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,65,86,117,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,66,87,118,40976,18,36884,45078,24,27,90143,94242,118820,102439,106538,98347,118820,118820,118820,40976,18,18,0,0,45078,0,24,24,24,27,27,27,27,90143,0,0,1314,0,0,0,0,0,0,97,97,97,97,97,1321,97,18,131427,0,0,0,0,0,0,362,0,0,365,0,367,0,0,1315,0,97,97,97,97,97,97,97,97,97,97,97,97,97,1360,97,97,131,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,145,149,45,45,45,45,45,174,45,179,45,185,45,188,45,45,202,67,255,67,67,269,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,97,292,296,97,97,97,97,97,321,97,326,97,332,97,18,131427,0,0,0,0,0,0,362,0,0,365,29315,367,646,335,97,97,349,97,97,0,40976,0,18,18,24,24,27,27,27,437,45,45,45,45,45,45,45,45,45,45,45,45,45,67,67,67,67,67,67,67,67,523,67,67,67,67,67,67,67,67,67,67,67,67,511,67,67,67,97,97,97,620,97,97,97,97,97,97,97,97,97,97,97,97,97,1501,1502,97,793,67,67,796,67,67,67,67,67,67,67,67,67,67,808,67,0,0,97,97,97,97,45,45,67,67,0,0,97,97,2052,67,67,67,67,813,67,67,67,67,67,67,67,25398,542,13112,544,57889,0,0,54074,54074,550,830,97,97,97,97,97,97,97,97,97,315,97,97,97,97,97,97,841,97,97,97,97,97,97,97,97,97,854,97,97,97,97,97,97,589,97,97,97,97,97,97,97,97,97,867,97,97,97,97,97,97,97,891,97,97,894,97,97,97,97,97,97,97,97,97,97,906,45,937,45,45,940,45,45,45,45,45,45,948,45,45,45,45,45,734,735,67,737,67,738,67,740,67,67,67,45,967,45,45,45,45,45,45,45,45,45,45,45,45,45,45,435,45,45,45,980,45,45,45,45,45,45,45,45,45,45,45,45,45,415,45,45,67,67,1024,67,67,67,67,67,67,67,67,67,67,67,67,67,97,97,97,67,67,67,67,67,25398,1081,13112,1085,54074,1089,0,0,0,0,0,0,363,0,28809,0,139,45,45,45,45,45,45,1674,45,45,45,45,45,45,45,45,67,1913,67,1914,67,67,67,1918,67,67,97,97,97,97,1118,97,97,97,97,97,97,97,97,97,97,97,630,97,97,97,97,97,1169,97,97,97,97,97,0,921,0,1175,0,0,0,0,45,45,45,45,45,45,1534,45,45,45,45,45,1538,45,45,45,45,1233,45,45,45,45,45,45,67,67,67,67,67,67,67,67,742,67,45,45,1191,45,45,45,45,45,45,45,45,45,45,45,45,45,454,67,67,67,67,1243,67,67,67,67,67,67,67,67,67,67,67,1251,67,0,0,97,97,97,97,45,45,67,67,2050,0,97,97,45,45,45,732,45,45,67,67,67,67,67,67,67,67,67,67,67,67,97,97,67,67,67,1284,67,67,67,67,67,67,67,67,67,67,67,67,772,67,67,67,1293,67,67,67,67,67,67,0,0,0,0,0,0,0,0,0,0,368,2158592,2158592,2158592,2404352,2412544,1323,97,97,97,97,97,97,97,97,97,97,97,1331,97,97,97,0,97,97,97,97,97,97,97,97,97,97,97,1737,97,1364,97,97,97,97,97,97,97,97,97,97,97,97,1373,97,18,131427,0,0,0,0,0,0,362,0,0,365,29315,367,647,45,45,1387,45,45,1391,45,45,45,45,45,45,45,45,45,45,410,45,45,45,45,45,1400,45,45,45,45,45,45,45,45,45,45,1407,45,45,45,45,45,941,45,943,45,45,45,45,45,45,951,45,67,1438,67,67,67,67,67,67,67,67,67,67,1447,67,67,67,67,67,67,782,67,67,67,67,67,67,67,67,67,756,67,67,67,67,67,67,97,1491,97,97,97,97,97,97,97,97,97,97,1500,97,97,97,0,97,97,97,97,97,97,97,97,97,97,1736,97,45,45,1541,45,45,45,45,45,45,45,45,45,45,45,45,45,677,45,45,67,1581,67,67,67,67,67,67,67,67,67,67,67,67,67,67,791,792,67,67,67,67,1598,67,1600,67,67,67,67,67,67,67,67,1472,97,97,97,1727,97,97,97,97,97,97,97,97,97,97,97,97,97,1513,97,97,67,67,97,1879,97,1881,97,0,1884,0,97,97,97,97,0,0,97,97,97,97,97,0,0,0,1842,97,97,67,67,67,67,67,97,97,97,97,1928,0,0,0,97,97,97,97,97,97,45,45,45,45,45,1903,45,45,45,67,67,67,67,97,97,97,97,1971,0,0,97,97,97,97,0,97,97,97,97,97,97,97,97,97,0,0,0,45,45,45,1381,45,45,45,45,1976,97,97,97,97,97,45,45,45,45,45,45,45,45,45,45,45,45,1747,809,67,67,67,67,67,67,67,67,67,67,67,25398,542,13112,544,97,907,97,97,97,97,97,97,97,97,97,97,97,638,0,0,0,0,1478,97,97,97,97,97,97,97,97,97,97,97,1150,97,97,97,97,67,67,67,67,1244,67,67,67,67,67,67,67,67,67,67,67,477,67,67,67,67,67,67,1294,67,67,67,67,0,0,0,0,0,0,0,0,0,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1324,97,97,97,97,97,97,97,97,97,97,97,97,97,0,0,0,1374,97,97,97,97,0,1175,0,45,45,45,45,45,45,45,45,945,45,45,45,45,45,45,45,45,1908,45,45,1910,45,67,67,67,67,67,67,67,67,1919,67,0,0,97,97,97,97,45,2048,67,2049,0,0,97,2051,45,45,45,939,45,45,45,45,45,45,45,45,45,45,45,45,397,45,45,45,1921,67,67,1923,67,97,97,97,97,97,0,0,0,97,97,97,97,97,97,45,45,45,45,1947,45,1935,0,0,0,97,1939,97,97,1941,97,45,45,45,45,45,45,382,389,45,45,45,45,45,45,45,45,1810,45,45,1812,67,67,67,67,67,256,67,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,336,97,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,131427,0,0,0,0,362,0,365,28809,367,139,45,45,371,373,45,45,45,955,45,45,45,45,45,45,45,45,45,45,45,45,413,45,45,45,457,459,67,67,67,67,67,67,67,67,473,67,478,67,67,482,67,67,485,67,67,67,67,67,67,67,67,67,67,67,67,67,97,1828,97,554,556,97,97,97,97,97,97,97,97,570,97,575,97,97,579,97,97,582,97,97,97,97,97,97,97,97,97,97,97,97,97,330,97,97,67,746,67,67,67,67,67,67,67,67,67,758,67,67,67,67,67,67,67,1575,67,67,67,67,67,67,67,67,493,67,67,67,67,67,67,67,97,97,844,97,97,97,97,97,97,97,97,97,856,97,97,97,0,97,97,97,97,97,97,97,97,1735,97,97,97,0,97,97,97,97,97,97,97,1642,97,1644,97,97,890,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,0,67,67,67,67,1065,1066,67,67,67,67,67,67,67,67,67,67,532,67,67,67,67,67,67,67,1451,67,67,67,67,67,67,67,67,67,67,67,67,67,496,67,67,97,97,1505,97,97,97,97,97,97,97,97,97,97,97,97,97,593,97,97,0,1474,0,1476,0,97,97,97,97,97,97,97,97,97,97,1617,97,97,1635,0,1637,97,97,97,97,97,97,97,97,97,97,97,885,97,97,97,97,67,67,1704,67,67,67,67,97,97,97,97,97,97,97,97,97,565,572,97,97,97,97,97,97,97,97,1832,0,97,97,97,97,97,0,0,0,97,97,97,97,97,97,45,45,45,1946,45,45,67,67,67,67,67,97,1926,97,1927,97,0,0,0,97,97,1934,2043,0,0,97,97,97,2047,45,45,67,67,0,1832,97,97,45,45,45,981,45,45,45,45,45,45,45,45,45,45,45,45,1227,45,45,45,131427,0,0,0,0,362,0,365,28809,367,139,45,45,372,45,45,45,45,1661,1662,45,45,45,45,45,1666,45,45,45,45,45,1673,45,1675,45,45,45,45,45,45,45,67,1426,67,67,67,67,67,67,67,67,67,67,1275,67,67,67,67,67,45,418,45,45,420,45,45,423,45,45,45,45,45,45,45,45,959,45,45,962,45,45,45,45,458,67,67,67,67,67,67,67,67,67,67,67,67,67,67,483,67,67,67,67,504,67,67,506,67,67,509,67,67,67,67,67,67,67,528,67,67,67,67,67,67,67,67,1287,67,67,67,67,67,67,67,555,97,97,97,97,97,97,97,97,97,97,97,97,97,97,580,97,97,97,97,601,97,97,603,97,97,606,97,97,97,97,97,97,848,97,97,97,97,97,97,97,97,97,1498,97,97,97,97,97,97,45,45,714,45,45,45,45,45,45,45,45,45,45,45,45,45,989,990,45,67,67,67,67,67,1011,67,67,67,67,1015,67,67,67,67,67,67,67,753,67,67,67,67,67,67,67,67,467,67,67,67,67,67,67,67,45,45,1179,45,45,45,45,45,45,45,45,45,45,45,45,45,1003,1004,67,1217,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,728,67,1461,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1034,67,97,1516,97,97,97,97,97,97,97,97,97,97,97,97,97,97,871,97,67,67,67,1705,67,67,67,97,97,97,97,97,97,97,97,97,567,97,97,97,97,97,97,97,97,97,97,1715,97,97,97,97,97,97,97,97,97,0,0,0,45,45,1380,45,45,45,45,45,67,67,97,97,97,97,97,0,0,0,97,1887,97,97,0,0,97,97,97,0,97,97,97,97,97,2006,45,45,1907,45,45,45,45,45,67,67,67,67,67,67,67,67,67,1920,67,97,0,2035,97,97,97,97,97,45,45,45,45,67,67,67,1428,67,67,67,67,67,67,1435,67,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,146,45,152,45,45,165,45,175,45,180,45,45,187,190,195,45,203,254,257,262,67,270,67,67,0,24850,12564,0,0,0,281,28809,53531,97,97,97,293,97,299,97,97,312,97,322,97,327,97,97,334,337,342,97,350,97,97,0,40976,0,18,18,24,24,27,27,27,67,484,67,67,67,67,67,67,67,67,67,67,67,67,67,499,97,581,97,97,97,97,97,97,97,97,97,97,97,97,97,596,648,45,650,45,651,45,653,45,45,45,657,45,45,45,45,45,45,1954,67,67,67,1958,67,67,67,67,67,67,67,768,67,67,67,67,67,67,67,67,769,67,67,67,67,67,67,67,680,45,45,45,45,45,45,45,45,688,689,691,45,45,45,45,45,983,45,45,45,45,45,45,45,45,45,45,947,45,45,45,45,952,45,45,698,699,45,45,702,703,45,45,45,45,45,45,45,711,744,67,67,67,67,67,67,67,67,67,757,67,67,67,67,761,67,67,67,67,765,67,767,67,67,67,67,67,67,67,67,775,776,778,67,67,67,67,67,67,785,786,67,67,789,790,67,67,67,67,67,67,1442,67,67,67,67,67,67,67,67,67,97,97,97,1775,97,97,97,67,67,67,67,67,798,67,67,67,802,67,67,67,67,67,67,67,67,1465,67,67,1468,67,67,1471,67,67,810,67,67,67,67,67,67,67,67,67,821,25398,542,13112,544,57889,0,0,54074,54074,550,0,833,97,835,97,836,97,838,97,97,0,0,97,97,97,2002,97,97,97,97,97,45,45,45,45,45,1740,45,45,45,1744,45,45,45,97,842,97,97,97,97,97,97,97,97,97,855,97,97,97,97,0,1717,1718,97,97,97,97,97,1722,97,0,0,859,97,97,97,97,863,97,865,97,97,97,97,97,97,97,97,604,97,97,97,97,97,97,97,873,874,876,97,97,97,97,97,97,883,884,97,97,887,888,97,18,131427,0,0,0,0,0,0,362,225280,0,365,0,367,0,45,45,45,1531,45,45,45,45,45,45,45,45,45,45,45,1199,45,45,45,45,45,97,97,908,97,97,97,97,97,97,97,97,97,919,638,0,0,0,0,2158877,2158877,2158877,2158877,2158877,2425117,2158877,2158877,2158877,2158877,2158877,2158877,2597149,2158877,2158877,2158877,2158877,2158877,2158877,2642205,2158877,2158877,2158877,2158877,2158877,3158301,0,2375818,2379914,2158730,2158730,2420874,2158730,2449546,2158730,2158730,953,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,965,978,45,45,45,45,45,45,985,45,45,45,45,45,45,45,45,971,45,45,45,45,45,45,45,67,67,67,67,67,1027,67,1029,67,67,67,67,67,67,67,67,67,1455,67,67,67,67,67,67,67,1077,1078,67,67,25398,0,13112,0,54074,0,0,0,0,0,0,0,0,366,0,139,2158730,2158730,2158730,2404490,2412682,1113,97,97,97,97,97,97,1121,97,1123,97,97,97,97,97,97,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1540,1155,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,615,1168,97,97,1171,1172,97,97,0,921,0,1175,0,0,0,0,45,45,45,45,45,1533,45,45,45,45,45,45,45,45,45,1663,45,45,45,45,45,45,45,45,45,183,45,45,45,45,201,45,45,45,1219,45,45,45,45,45,45,45,1226,45,45,45,45,45,168,45,45,45,45,45,45,45,45,45,45,427,45,45,45,45,45,45,45,1231,45,45,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,67,1242,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1046,67,67,1254,67,1256,67,67,67,67,67,67,67,67,67,67,67,67,806,807,67,67,97,1336,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1111,97,97,97,97,97,1351,97,97,97,1354,97,97,97,1359,97,97,97,0,97,97,97,97,1640,97,97,97,97,97,97,97,897,97,97,97,902,97,97,97,97,97,97,97,97,1366,97,97,97,97,97,97,97,1371,97,97,97,0,97,97,97,1730,97,97,97,97,97,97,97,97,915,97,97,97,97,0,360,0,67,67,67,1440,67,67,67,67,67,67,67,67,67,67,67,67,1017,67,1019,67,67,67,67,67,1453,67,67,67,67,67,67,67,67,67,67,1459,97,97,97,1493,97,97,97,97,97,97,97,97,97,97,97,97,97,1525,97,97,97,97,97,97,1507,97,97,97,97,97,97,97,97,97,97,1514,67,67,67,67,1584,67,67,67,67,67,1590,67,67,67,67,67,67,67,783,67,67,67,788,67,67,67,67,67,67,67,67,67,1599,1601,67,67,67,1604,67,1606,1607,67,1472,0,1474,0,1476,0,97,97,97,97,97,97,1614,97,97,97,97,45,45,1850,45,45,45,45,1855,45,45,45,45,45,1222,45,45,45,45,45,45,45,45,45,1229,97,1618,97,97,97,97,97,97,97,1625,97,97,97,97,97,0,1175,0,45,45,45,45,45,45,45,45,447,45,45,45,45,45,67,67,1633,97,97,0,97,97,97,97,97,97,97,97,1643,1645,97,97,0,0,97,97,1784,97,97,97,0,0,97,97,0,97,1894,1895,97,1897,97,45,45,45,45,45,45,45,45,45,656,45,45,45,45,45,45,97,1648,97,1650,1651,97,0,45,45,45,1654,45,45,45,45,45,169,45,45,45,45,45,45,45,45,45,45,658,45,45,45,45,664,45,45,1659,45,45,45,45,45,45,45,45,45,45,45,45,45,1187,45,45,1669,45,45,45,45,45,45,45,45,45,45,45,45,45,45,67,1005,67,67,1681,67,67,67,67,67,67,67,1686,67,67,67,67,67,67,67,784,67,67,67,67,67,67,67,67,1055,67,67,67,67,1060,67,67,97,97,1713,97,0,97,97,97,97,97,97,97,97,97,0,0,0,1378,45,45,45,45,45,45,45,408,45,45,45,45,45,45,45,45,1547,45,1549,45,45,45,45,45,97,97,1780,0,97,97,97,97,97,97,0,0,97,97,0,97,97,97,45,45,2027,2028,45,45,67,67,2031,2032,67,45,45,1804,45,45,45,45,45,45,45,45,67,67,67,67,67,67,1917,67,67,67,67,67,67,67,1819,67,67,67,67,67,67,67,67,97,97,97,1708,97,97,97,97,97,45,45,1862,67,67,67,67,67,67,67,67,67,67,67,67,67,497,67,67,67,1877,97,97,97,97,97,0,0,0,97,97,97,97,0,0,97,97,97,97,97,1839,0,0,97,97,97,97,1936,0,0,97,97,97,97,97,97,1943,1944,1945,45,45,45,45,670,45,45,45,45,674,45,45,45,45,678,45,1948,45,1950,45,45,45,45,1955,1956,1957,67,67,67,1960,67,1962,67,67,67,67,1967,1968,1969,97,0,0,0,97,97,1974,97,0,1936,0,97,97,97,97,97,97,45,45,45,45,45,45,45,45,1906,0,1977,97,97,97,97,45,45,45,45,45,45,45,45,45,45,45,1746,45,45,45,45,2011,67,67,2013,67,67,67,2017,97,97,0,0,2021,97,8192,97,97,2025,45,45,45,45,45,45,67,67,67,67,67,1916,67,67,67,67,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,140,45,45,45,1180,45,45,45,45,1184,45,45,45,45,45,45,45,387,45,392,45,45,396,45,45,399,45,45,67,207,67,67,67,67,67,67,236,67,67,67,67,67,67,67,800,67,67,67,67,67,67,67,67,67,1603,67,67,67,67,67,0,97,97,287,97,97,97,97,97,97,316,97,97,97,97,97,97,0,45,45,45,45,45,45,45,1656,1657,45,376,45,45,45,45,45,388,45,45,45,45,45,45,45,45,1406,45,45,45,45,45,45,45,67,67,67,67,462,67,67,67,67,67,474,67,67,67,67,67,67,67,817,67,67,67,67,25398,542,13112,544,97,97,97,97,559,97,97,97,97,97,571,97,97,97,97,97,97,896,97,97,97,900,97,97,97,97,97,97,912,914,97,97,97,97,97,0,0,0,45,45,45,45,45,45,45,45,391,45,45,45,45,45,45,45,45,713,45,45,45,45,45,45,45,45,45,45,45,45,45,45,662,45,1140,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,636,67,67,1283,67,67,67,67,67,67,67,67,67,67,67,67,67,513,67,67,1363,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,889,97,97,97,1714,0,97,97,97,97,97,97,97,97,97,0,0,926,45,45,45,45,45,45,45,45,672,45,45,45,45,45,45,45,45,686,45,45,45,45,45,45,45,45,944,45,45,45,45,45,45,45,45,1676,45,45,45,45,45,45,67,97,97,97,1833,0,97,97,97,97,97,0,0,0,97,97,97,97,97,97,45,45,45,45,1902,45,45,45,45,45,957,45,45,45,45,961,45,963,45,45,45,67,97,2034,0,97,97,97,97,97,2040,45,45,45,2042,67,67,67,67,67,67,1574,67,67,67,67,67,1578,67,67,67,67,67,67,799,67,67,67,804,67,67,67,67,67,67,67,1298,0,0,0,1304,0,0,0,1310,132,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,45,45,1414,45,45,45,45,45,45,45,45,45,45,428,45,45,45,45,45,57889,0,0,54074,54074,550,831,97,97,97,97,97,97,97,97,97,568,97,97,97,97,578,97,45,45,968,45,45,45,45,45,45,45,45,45,45,45,45,45,1228,45,45,67,67,67,67,67,25398,1082,13112,1086,54074,1090,0,0,0,0,0,0,364,0,0,0,139,2158592,2158592,2158592,2404352,2412544,67,67,67,67,1464,67,67,67,67,67,67,67,67,67,67,67,510,67,67,67,67,97,97,97,97,1519,97,97,97,97,97,97,97,97,97,97,97,918,97,0,0,0,0,1528,45,45,45,45,45,45,45,45,45,45,45,45,45,45,976,45,1554,45,45,45,45,45,45,45,45,1562,45,45,1565,45,45,45,45,683,45,45,45,687,45,45,692,45,45,45,45,45,1953,45,67,67,67,67,67,67,67,67,67,1014,67,67,67,67,67,67,1568,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,0,67,67,67,67,67,1585,67,67,67,67,67,67,67,67,67,1594,97,97,1649,97,97,97,0,45,45,1653,45,45,45,45,45,45,383,45,45,45,45,45,45,45,45,45,986,45,45,45,45,45,45,45,45,1670,45,1672,45,45,45,45,45,45,45,45,45,45,67,736,67,67,67,67,67,741,67,67,67,1680,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1074,67,67,67,1692,67,67,67,67,67,67,67,1697,67,1699,67,67,67,67,67,67,1012,67,67,67,67,67,67,67,67,67,468,475,67,67,67,67,67,67,1769,67,67,67,67,67,67,67,97,97,97,97,97,97,97,624,97,97,97,97,97,97,634,97,97,1792,97,97,97,97,97,97,97,45,45,45,45,45,45,45,958,45,45,45,45,45,45,964,45,150,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,977,204,45,67,67,67,217,67,67,67,67,67,67,67,67,67,67,787,67,67,67,67,67,67,67,67,67,67,271,67,0,24850,12564,0,0,0,0,28809,53531,97,97,97,97,351,97,0,40976,0,18,18,24,24,27,27,27,45,45,938,45,45,45,45,45,45,45,45,45,45,45,45,45,1398,45,45,45,153,45,161,45,45,45,45,45,45,45,45,45,45,45,45,660,661,45,45,205,45,67,67,67,67,220,67,228,67,67,67,67,67,67,67,0,0,0,0,0,280,94,0,0,67,67,67,67,67,272,67,0,24850,12564,0,0,0,0,28809,53531,97,97,97,97,352,97,0,40976,0,18,18,24,24,27,27,27,45,439,45,45,45,45,45,445,45,45,45,452,45,45,67,67,212,216,67,67,67,67,67,241,67,246,67,252,67,67,486,67,67,67,67,67,67,67,494,67,67,67,67,67,67,67,1245,67,67,67,67,67,67,67,67,1013,67,67,1016,67,67,67,67,67,521,67,67,525,67,67,67,67,67,531,67,67,67,538,67,0,0,2046,97,97,97,45,45,67,67,0,0,97,97,45,45,45,1192,45,45,45,45,45,45,45,45,45,45,45,45,1418,45,45,1421,97,97,583,97,97,97,97,97,97,97,591,97,97,97,97,97,97,913,97,97,97,97,97,97,0,0,0,45,45,45,45,45,45,45,1384,97,618,97,97,622,97,97,97,97,97,628,97,97,97,635,97,18,131427,0,0,0,639,0,132,362,0,0,365,29315,367,0,921,29315,0,0,0,0,45,45,45,45,932,45,45,45,45,45,1544,45,45,45,45,45,1550,45,45,45,45,45,1194,45,1196,45,45,45,45,45,45,45,45,999,45,45,45,45,45,67,67,45,45,667,45,45,45,45,45,45,45,45,45,45,45,45,45,1408,45,45,45,696,45,45,45,701,45,45,45,45,45,45,45,45,710,45,45,45,1220,45,45,45,45,45,45,45,45,45,45,45,45,194,45,45,45,729,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,797,67,67,67,67,67,67,805,67,67,67,67,67,67,67,1587,67,1589,67,67,67,67,67,67,67,67,1763,67,67,67,67,67,67,67,0,0,0,0,0,0,2162968,0,0,67,67,67,67,67,814,816,67,67,67,67,67,25398,542,13112,544,67,67,1008,67,67,67,67,67,67,67,67,67,67,67,1020,67,0,97,45,67,0,97,45,67,0,97,45,67,97,0,0,97,97,97,97,97,45,45,45,45,67,67,67,67,1429,67,1430,67,67,67,67,67,1062,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,518,1076,67,67,67,67,25398,0,13112,0,54074,0,0,0,0,0,0,0,0,28809,0,139,45,45,45,45,45,97,97,97,97,1102,97,97,97,97,97,97,97,97,97,97,97,1124,97,1126,97,97,1114,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1112,97,97,1156,97,97,97,97,97,97,97,97,97,97,97,97,97,594,97,97,97,97,1170,97,97,97,97,0,921,0,0,0,0,0,0,45,45,45,45,1532,45,45,45,45,1536,45,45,45,45,45,172,45,45,45,45,45,45,45,45,45,45,706,45,45,709,45,45,1177,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1202,45,1204,45,45,45,45,45,45,45,45,45,45,45,45,1215,45,45,45,1232,45,45,45,45,45,45,45,67,1237,67,67,67,67,67,67,1053,1054,67,67,67,67,67,67,1061,67,67,1282,67,67,67,67,67,67,67,67,67,1289,67,67,67,1292,97,97,97,97,1339,97,97,97,97,97,97,1344,97,97,97,97,45,1849,45,1851,45,45,45,45,45,45,45,45,721,45,45,45,45,45,726,45,1385,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1188,45,45,1401,1402,45,45,45,45,1405,45,45,45,45,45,45,45,45,1752,45,45,45,45,45,67,67,1410,45,45,45,1413,45,1415,45,45,45,45,45,45,1419,45,45,45,45,1806,45,45,45,45,45,45,67,67,67,67,67,67,67,97,97,2019,0,97,67,67,67,1452,67,67,67,67,67,67,67,67,1457,67,67,67,67,67,67,1259,67,67,67,67,67,67,1264,67,67,1460,67,1462,67,67,67,67,67,67,1466,67,67,67,67,67,67,67,67,1588,67,67,67,67,67,67,67,0,1300,0,0,0,1306,0,0,0,97,97,97,1506,97,97,97,97,97,97,97,97,1512,97,97,97,0,1728,97,97,97,97,97,97,97,97,97,97,97,901,97,97,97,97,1515,97,1517,97,97,97,97,97,97,1521,97,97,97,97,97,97,0,45,1652,45,45,45,1655,45,45,45,45,45,1542,45,45,45,45,45,45,45,45,45,45,45,45,45,1552,1553,45,45,45,1556,45,45,45,45,45,45,45,45,45,45,45,45,45,693,45,45,45,67,67,67,67,1572,67,67,67,67,1576,67,67,67,67,67,67,67,67,1602,67,67,1605,67,67,67,0,67,1582,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1580,67,67,1596,67,67,67,67,67,67,67,67,67,67,67,67,67,0,542,0,544,67,67,67,67,1759,67,67,67,67,67,67,67,67,67,67,67,533,67,67,67,67,67,67,67,1770,67,67,67,67,67,97,97,97,97,97,97,1777,97,97,97,1793,97,97,97,97,97,45,45,45,45,45,45,45,998,45,45,1001,1002,45,45,67,67,45,1861,45,67,67,67,67,67,67,67,67,1871,67,1873,1874,67,0,97,45,67,0,97,45,67,16384,97,45,67,97,0,0,0,1473,0,1082,0,0,0,1475,0,1086,0,0,0,1477,1876,67,97,97,97,97,97,1883,0,1885,97,97,97,1889,0,0,0,286,0,0,0,286,0,2367488,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,0,18,18,24,24,126,126,126,2053,0,2055,45,67,0,97,45,67,0,97,45,67,97,0,0,97,97,97,2039,97,45,45,45,45,67,67,67,67,67,226,67,67,67,67,67,67,67,67,1246,67,67,1249,1250,67,67,67,132,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,141,45,45,45,1403,45,45,45,45,45,45,45,45,45,45,45,45,1186,45,45,1189,45,45,155,45,45,45,45,45,45,45,45,45,191,45,45,45,45,700,45,45,45,45,45,45,45,45,45,45,45,1753,45,45,45,67,67,45,45,67,208,67,67,67,222,67,67,67,67,67,67,67,67,67,1764,67,67,67,67,67,67,67,258,67,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,288,97,97,97,302,97,97,97,97,97,97,97,97,97,627,97,97,97,97,97,97,338,97,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,131427,0,0,0,0,362,0,365,28809,367,139,45,370,45,45,45,45,716,45,45,45,45,45,722,45,45,45,45,45,45,1912,67,67,67,67,67,67,67,67,67,819,67,67,25398,542,13112,544,45,403,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1409,45,67,67,67,67,489,67,67,67,67,67,67,67,67,67,67,67,771,67,67,67,67,520,67,67,67,67,67,67,67,67,67,67,67,534,67,67,67,67,67,67,1271,67,67,67,1274,67,67,67,1279,67,67,24850,24850,12564,12564,0,57889,0,0,0,53531,53531,367,286,97,553,97,97,97,97,586,97,97,97,97,97,97,97,97,97,97,97,1138,97,97,97,97,617,97,97,97,97,97,97,97,97,97,97,97,631,97,97,97,0,1834,97,97,97,97,97,0,0,0,97,97,97,97,97,353,0,40976,0,18,18,24,24,27,27,27,45,45,668,45,45,45,45,45,45,45,45,45,45,45,45,45,724,45,45,45,45,45,682,45,45,45,45,45,45,45,45,45,45,45,45,45,949,45,45,45,67,67,747,748,67,67,67,67,755,67,67,67,67,67,67,67,0,0,0,1302,0,0,0,1308,0,67,794,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1701,67,97,97,97,845,846,97,97,97,97,853,97,97,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,97,97,892,97,97,97,97,97,97,97,97,97,97,97,97,97,610,97,97,45,992,45,45,45,45,45,45,45,45,45,45,45,45,67,67,67,1239,67,67,67,1063,67,67,67,67,67,1068,67,67,67,67,67,67,67,0,0,1301,0,0,0,1307,0,0,97,1141,97,97,97,97,97,97,97,97,97,97,97,1152,97,97,0,0,97,97,2001,0,97,2003,97,97,97,45,45,45,1739,45,45,45,1742,45,45,45,45,45,97,97,97,97,1157,97,97,97,97,97,1162,97,97,97,97,97,97,1145,97,97,97,97,97,1151,97,97,97,1253,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,539,45,1423,45,45,67,67,67,67,67,67,67,1431,67,67,67,67,67,67,67,1695,67,67,67,67,67,1700,67,1702,67,67,1439,67,67,67,67,67,67,67,67,67,67,67,67,67,514,67,67,97,97,1492,97,97,97,97,97,97,97,97,97,97,97,97,97,611,97,97,1703,67,67,67,67,67,67,97,97,97,97,97,97,97,97,97,852,97,97,97,97,97,97,45,1949,45,1951,45,45,45,67,67,67,67,67,67,67,1961,67,0,97,45,67,0,97,2060,2061,0,2062,45,67,97,0,0,2036,97,97,97,97,45,45,45,45,67,67,67,67,67,223,67,67,237,67,67,67,67,67,67,67,1272,67,67,67,67,67,67,67,67,507,67,67,67,67,67,67,67,1963,67,67,67,97,97,97,97,0,1972,0,97,97,97,1975,0,921,29315,0,0,0,0,45,45,45,931,45,45,45,45,45,407,45,45,45,45,45,45,45,45,45,417,45,45,1989,67,67,67,67,67,67,67,67,67,67,67,1996,97,18,131427,0,0,360,0,0,0,362,0,0,365,29315,367,0,921,29315,0,0,0,0,45,45,930,45,45,45,45,45,45,444,45,45,45,45,45,45,45,67,67,97,97,1998,0,97,97,97,0,97,97,97,97,97,45,45,45,45,45,45,1985,45,1986,45,45,45,156,45,45,170,45,45,45,45,45,45,45,45,45,45,675,45,45,45,45,679,131427,0,358,0,0,362,0,365,28809,367,139,45,45,45,45,45,381,45,45,45,45,45,45,45,45,45,400,45,45,419,45,45,45,45,45,45,45,45,45,45,45,45,436,67,67,67,67,67,505,67,67,67,67,67,67,67,67,67,67,820,67,25398,542,13112,544,67,67,522,67,67,67,67,67,529,67,67,67,67,67,67,67,0,1299,0,0,0,1305,0,0,0,97,97,619,97,97,97,97,97,626,97,97,97,97,97,97,97,1105,97,97,97,97,1109,97,97,97,67,67,67,67,749,67,67,67,67,67,67,67,67,67,760,67,0,97,45,67,2058,97,45,67,0,97,45,67,97,0,0,97,97,97,97,97,45,45,45,2041,67,67,67,67,67,780,67,67,67,67,67,67,67,67,67,67,67,67,67,516,67,67,97,97,97,878,97,97,97,97,97,97,97,97,97,97,97,97,97,1629,97,0,45,979,45,45,45,45,984,45,45,45,45,45,45,45,45,45,1198,45,45,45,45,45,45,67,1023,67,67,67,67,1028,67,67,67,67,67,67,67,67,67,470,67,67,67,67,67,67,67,67,67,67,67,25398,0,13112,0,54074,0,0,0,1094,0,0,0,1092,1315,0,0,0,0,97,97,97,97,97,97,97,97,97,1486,97,1489,97,97,97,1117,97,97,97,97,1122,97,97,97,97,97,97,97,1146,97,97,97,97,97,97,97,97,881,97,97,97,886,97,97,97,1311,0,0,0,0,0,0,0,0,97,97,97,97,97,97,97,1615,97,97,97,97,97,1619,97,97,97,97,97,97,97,97,97,97,97,97,1631,97,97,1847,97,45,45,45,45,1852,45,45,45,45,45,45,45,1235,45,45,45,67,67,67,67,67,1868,67,67,67,1872,67,67,67,67,67,97,97,97,97,1882,0,0,0,97,97,97,97,0,1891,67,67,67,67,67,97,97,97,97,97,1929,0,0,97,97,97,97,97,97,45,1900,45,1901,45,45,45,1905,45,67,2054,97,45,67,0,97,45,67,0,97,45,67,97,0,0,97,2037,2038,97,97,45,45,45,45,67,67,67,67,1867,67,67,67,67,67,67,67,67,67,1774,97,97,97,97,97,97,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,142,45,45,45,1412,45,45,45,45,45,45,45,45,45,45,45,45,432,45,45,45,45,45,157,45,45,171,45,45,45,182,45,45,45,45,200,45,45,45,1543,45,45,45,45,45,45,45,45,1551,45,45,45,45,1181,45,45,45,45,45,45,45,45,45,45,45,1211,45,45,45,1214,45,45,45,67,209,67,67,67,224,67,67,238,67,67,67,249,67,0,97,2056,2057,0,2059,45,67,0,97,45,67,97,0,0,1937,97,97,97,97,97,97,45,45,45,45,45,45,1741,45,45,45,45,45,45,67,67,67,267,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,289,97,97,97,304,97,97,318,97,97,97,329,97,97,0,0,97,1783,97,97,97,97,0,0,97,97,0,97,97,97,45,2026,45,45,45,45,67,2030,67,67,67,67,67,67,1041,67,67,67,67,67,67,67,67,67,1044,67,67,67,67,67,67,97,97,347,97,97,97,0,40976,0,18,18,24,24,27,27,27,45,666,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1420,45,57889,0,0,54074,54074,550,0,97,97,97,97,97,97,97,97,840,67,1007,67,67,67,67,67,67,67,67,67,67,67,67,67,67,759,67,67,67,67,67,67,67,1052,67,67,67,67,67,67,67,67,67,67,1031,67,67,67,67,67,97,97,97,1101,97,97,97,97,97,97,97,97,97,97,97,97,592,97,97,97,1190,45,45,45,45,45,1195,45,1197,45,45,45,45,1201,45,45,45,45,1952,45,45,67,67,67,67,67,67,67,67,67,67,67,67,250,67,67,67,1255,67,1257,67,67,67,67,1261,67,67,67,67,67,67,67,67,1685,67,67,67,67,67,67,67,0,24851,12565,0,0,0,0,28809,53532,67,67,1267,67,67,67,67,67,67,1273,67,67,67,67,67,67,67,67,1696,67,67,67,67,67,67,67,0,0,0,0,0,0,2162688,0,0,1281,67,67,67,67,1285,67,67,67,67,67,67,67,67,67,67,1070,67,67,67,67,67,1335,97,1337,97,97,97,97,1341,97,97,97,97,97,97,97,97,882,97,97,97,97,97,97,97,1347,97,97,97,97,97,97,1353,97,97,97,97,97,97,1361,97,18,131427,0,638,0,0,0,0,362,0,0,365,29315,367,0,544,0,550,0,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2473984,2158592,2158592,2158592,2990080,2158592,2158592,2207744,2207744,2482176,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,0,0,0,0,0,2162688,0,53530,97,97,97,1365,97,97,97,97,97,97,97,97,97,97,97,97,608,97,97,97,45,45,1424,45,1425,67,67,67,67,67,67,67,67,67,67,67,1058,67,67,67,67,45,1555,45,45,1557,45,45,45,45,45,45,45,45,45,45,45,707,45,45,45,45,67,67,1570,67,67,67,67,67,67,67,67,67,67,67,67,67,773,67,67,1595,67,67,1597,67,67,67,67,67,67,67,67,67,67,67,0,0,0,0,0,0,0,0,0,0,139,2158592,2158592,2158592,2404352,2412544,97,97,97,1636,97,97,97,1639,97,97,1641,97,97,97,97,97,97,1173,0,921,0,0,0,0,0,0,45,67,67,67,1693,67,67,67,67,67,67,67,1698,67,67,67,67,67,67,67,1773,67,97,97,97,97,97,97,97,625,97,97,97,97,97,97,97,97,850,97,97,97,97,97,97,97,97,880,97,97,97,97,97,97,97,97,1106,97,97,97,97,97,97,97,1860,45,45,67,67,1865,67,67,67,67,1870,67,67,67,67,1875,67,67,97,97,1880,97,97,0,0,0,97,97,1888,97,0,0,0,1938,97,97,97,97,97,45,45,45,45,45,45,1854,45,45,45,45,45,45,45,1909,45,45,1911,67,67,67,67,67,67,67,67,67,67,1248,67,67,67,67,67,67,1922,67,67,1924,97,97,97,97,97,0,0,0,97,97,97,97,97,1898,45,45,45,45,45,45,1904,45,45,67,67,67,67,97,97,97,97,0,0,16384,97,97,97,97,0,97,97,97,97,97,97,97,97,97,0,1724,2008,2009,45,45,67,67,67,2014,2015,67,67,97,97,0,0,97,97,97,0,97,97,97,97,97,45,45,45,45,45,45,45,45,45,45,45,45,45,2022,0,2023,97,97,45,45,45,45,45,45,67,67,67,67,67,67,1869,67,67,67,67,67,67,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,147,151,154,45,162,45,45,176,178,181,45,45,45,192,196,45,45,45,45,2012,67,67,67,67,67,67,2018,97,0,0,97,1978,97,97,97,1982,45,45,45,45,45,45,45,45,45,972,973,45,45,45,45,45,67,259,263,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,97,294,298,301,97,309,97,97,323,325,328,97,97,97,97,97,560,97,97,97,569,97,97,97,97,97,97,306,97,97,97,97,97,97,97,97,97,1624,97,97,97,97,97,97,97,0,921,0,1175,0,0,0,0,45,339,343,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,67,67,503,67,67,67,67,67,67,67,67,67,512,67,67,519,97,97,600,97,97,97,97,97,97,97,97,97,609,97,97,616,45,649,45,45,45,45,45,654,45,45,45,45,45,45,45,45,1393,45,45,45,45,45,45,45,45,1209,45,45,45,45,45,45,45,67,763,67,67,67,67,67,67,67,67,770,67,67,67,774,67,0,2045,97,97,97,97,45,45,67,67,0,0,97,97,45,45,45,994,45,45,45,45,45,45,45,45,45,45,67,67,213,67,219,67,67,232,67,242,67,247,67,67,67,779,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1018,67,67,67,67,811,67,67,67,67,67,67,67,67,67,25398,542,13112,544,57889,0,0,54074,54074,550,0,97,834,97,97,97,97,97,839,97,18,131427,0,638,0,0,0,0,362,0,0,365,29315,367,645,97,97,861,97,97,97,97,97,97,97,97,868,97,97,97,872,97,97,877,97,97,97,97,97,97,97,97,97,97,97,97,97,613,97,97,97,97,97,909,97,97,97,97,97,97,97,97,97,0,0,0,18,18,24,24,27,27,27,1036,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1047,67,67,67,1050,67,67,67,67,67,67,67,67,67,67,67,67,1033,67,67,67,97,97,1130,97,97,97,97,97,97,97,97,97,97,97,97,97,638,0,0,67,67,67,1295,67,67,67,0,0,0,0,0,0,0,0,0,97,1317,97,97,97,97,97,97,1375,97,97,97,0,0,0,45,1379,45,45,45,45,45,45,422,45,45,45,429,431,45,45,45,45,0,1090,0,0,97,1479,97,97,97,97,97,97,97,97,97,97,1357,97,97,97,97,97,97,97,97,97,1716,97,97,97,97,97,97,97,97,97,1723,0,921,29315,0,0,0,0,45,929,45,45,45,45,45,45,45,1392,45,45,45,45,45,45,45,45,45,960,45,45,45,45,45,45,97,97,97,1738,45,45,45,45,45,45,45,1743,45,45,45,45,166,45,45,45,45,184,186,45,45,197,45,45,97,1779,0,0,97,97,97,97,97,97,0,0,97,97,0,97,18,131427,0,638,0,0,0,0,362,0,640,365,29315,367,0,921,29315,0,0,0,0,45,45,45,45,45,45,45,45,45,45,1537,45,45,45,45,45,1803,45,45,45,45,45,1809,45,45,45,67,67,67,1814,67,67,67,67,67,67,1821,67,67,67,67,67,67,97,97,97,97,97,0,0,0,97,97,97,97,0,0,67,67,67,1818,67,67,67,67,67,1824,67,67,67,97,97,97,97,97,0,0,0,97,97,97,97,1890,0,1829,97,97,0,0,97,97,1836,97,97,0,0,0,97,97,97,97,1981,45,45,45,45,45,45,45,45,45,1987,1845,97,97,97,45,45,45,45,45,1853,45,45,45,1857,45,45,45,67,1864,67,1866,67,67,67,67,67,67,67,67,67,97,97,97,97,97,97,97,1710,1711,67,67,97,97,97,97,97,0,0,0,1886,97,97,97,0,0,97,97,97,97,1838,0,0,0,97,1843,97,0,1893,97,97,97,97,97,45,45,45,45,45,45,45,45,45,45,1745,45,45,67,67,67,67,67,97,97,97,97,97,0,0,1931,97,97,97,97,97,588,97,97,97,97,97,97,97,97,97,97,629,97,97,97,97,97,67,2044,0,97,97,97,97,45,45,67,67,0,0,97,97,45,45,45,1660,45,45,45,45,45,45,45,45,45,45,45,45,453,45,455,67,67,67,67,268,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,348,97,97,97,0,40976,0,18,18,24,24,27,27,27,131427,0,359,0,0,362,0,365,28809,367,139,45,45,45,45,45,421,45,45,45,45,45,45,45,434,45,45,695,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1667,45,0,921,29315,0,925,0,0,45,45,45,45,45,45,45,45,45,1811,45,67,67,67,67,67,67,1037,67,1039,67,67,67,67,67,67,67,67,67,67,67,67,1277,67,67,67,67,67,67,67,67,25398,0,13112,0,54074,0,0,0,1095,0,0,0,1096,97,97,97,97,97,97,97,97,97,97,97,97,869,97,97,97,97,97,97,1131,97,1133,97,97,97,97,97,97,97,97,97,97,1370,97,97,97,97,97,1312,0,0,0,0,1096,0,0,0,97,97,97,97,97,97,97,1327,97,97,97,97,97,1332,97,97,97,1830,97,0,0,97,97,97,97,97,0,0,0,97,97,97,1896,97,97,45,45,45,45,45,45,45,45,45,1548,45,45,45,45,45,45,133,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,45,380,45,45,45,45,45,45,45,45,45,45,401,45,45,158,45,45,45,45,45,45,45,45,45,45,45,45,45,1200,45,45,45,45,206,67,67,67,67,67,225,67,67,67,67,67,67,67,67,754,67,67,67,67,67,67,67,57889,0,0,54074,54074,550,832,97,97,97,97,97,97,97,97,97,1342,97,97,97,97,97,97,67,67,67,67,67,25398,1083,13112,1087,54074,1091,0,0,0,0,0,0,1316,0,831,97,97,97,97,97,97,97,1174,921,0,1175,0,0,0,0,45,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,148,67,67,264,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,97,295,97,97,97,97,313,97,97,97,97,331,333,97,18,131427,356,638,0,0,0,0,362,0,0,365,0,367,0,45,45,1530,45,45,45,45,45,45,45,45,45,45,45,45,988,45,45,45,97,344,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,402,404,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1756,67,438,45,45,45,45,45,45,45,45,449,450,45,45,45,67,67,214,218,221,67,229,67,67,243,245,248,67,67,67,67,67,488,490,67,67,67,67,67,67,67,67,67,67,67,1071,67,1073,67,67,67,67,67,524,67,67,67,67,67,67,67,67,535,536,67,67,67,67,67,67,1683,1684,67,67,67,67,1688,1689,67,67,67,67,67,67,1586,67,67,67,67,67,67,67,67,67,469,67,67,67,67,67,67,97,97,97,585,587,97,97,97,97,97,97,97,97,97,97,97,1163,97,97,97,97,97,97,97,621,97,97,97,97,97,97,97,97,632,633,97,97,0,0,1782,97,97,97,97,97,0,0,97,97,0,97,712,45,45,45,717,45,45,45,45,45,45,45,45,725,45,45,45,163,167,173,177,45,45,45,45,45,193,45,45,45,45,982,45,45,45,45,45,45,987,45,45,45,45,45,1558,45,1560,45,45,45,45,45,45,45,45,704,705,45,45,45,45,45,45,45,45,731,45,45,45,67,67,67,67,67,739,67,67,67,67,67,67,273,0,24850,12564,0,0,0,0,28809,53531,67,67,67,764,67,67,67,67,67,67,67,67,67,67,67,67,1290,67,67,67,67,67,67,812,67,67,67,67,818,67,67,67,25398,542,13112,544,57889,0,0,54074,54074,550,0,97,97,97,97,97,837,97,97,97,97,97,602,97,97,97,97,97,97,97,97,97,97,1137,97,97,97,97,97,97,97,97,97,862,97,97,97,97,97,97,97,97,97,97,97,1627,97,97,97,0,97,97,97,97,910,97,97,97,97,916,97,97,97,0,0,0,97,97,1940,97,97,1942,45,45,45,45,45,45,385,45,45,45,45,395,45,45,45,45,966,45,969,45,45,45,45,45,45,45,45,45,45,975,45,45,45,406,45,45,45,45,45,45,45,45,45,45,45,45,974,45,45,45,67,67,67,67,1010,67,67,67,67,67,67,67,67,67,67,67,1262,67,67,67,67,67,67,67,67,67,1040,67,1042,67,1045,67,67,67,67,67,67,67,97,1706,97,97,97,1709,97,97,97,67,67,67,67,1051,67,67,67,67,67,1057,67,67,67,67,67,67,67,1443,67,67,1446,67,67,67,67,67,67,67,1297,0,0,0,1303,0,0,0,1309,67,67,67,67,1079,25398,0,13112,0,54074,0,0,0,0,0,0,0,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2207744,2207744,2207744,2207744,2207744,2572288,2207744,2207744,2207744,1098,97,97,97,97,97,1104,97,97,97,97,97,97,97,97,97,1356,97,97,97,97,97,97,1128,97,97,97,97,97,97,1134,97,1136,97,1139,97,97,97,97,97,97,1622,97,97,97,97,97,97,97,97,0,921,0,0,0,1176,0,646,45,67,67,67,1268,67,67,67,67,67,67,67,67,67,67,67,67,1469,67,67,67,97,1348,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1127,97,67,1569,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1448,1449,67,1816,67,67,67,67,67,67,67,67,67,1825,67,67,1827,97,97,0,1781,97,97,97,97,97,97,0,0,97,97,0,97,97,97,1831,0,0,97,97,97,97,97,0,0,0,97,97,97,1980,97,45,45,45,45,45,45,45,45,45,45,1395,45,45,45,45,45,97,1846,97,97,45,45,45,45,45,45,45,45,45,45,45,45,1212,45,45,45,45,45,45,2010,45,67,67,67,67,67,2016,67,97,97,0,0,97,97,97,0,97,97,97,97,97,45,45,2007,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,143,45,45,45,1671,45,45,45,45,45,45,45,45,45,45,45,67,1813,67,67,1815,45,45,67,210,67,67,67,67,67,67,239,67,67,67,67,67,67,67,1454,67,67,67,67,67,67,67,67,67,1445,67,67,67,67,67,67,97,97,290,97,97,97,97,97,97,319,97,97,97,97,97,97,303,97,97,317,97,97,97,97,97,97,305,97,97,97,97,97,97,97,97,97,899,97,97,97,97,97,97,375,45,45,45,379,45,45,390,45,45,394,45,45,45,45,45,443,45,45,45,45,45,45,45,45,67,67,67,67,67,461,67,67,67,465,67,67,476,67,67,480,67,67,67,67,67,67,1694,67,67,67,67,67,67,67,67,67,1288,67,67,67,67,67,67,500,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1075,97,97,97,558,97,97,97,562,97,97,573,97,97,577,97,97,97,97,97,895,97,97,97,97,97,97,903,97,97,97,0,97,97,1638,97,97,97,97,97,97,97,97,1646,597,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1334,45,681,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1396,45,45,1399,45,45,730,45,45,45,45,67,67,67,67,67,67,67,67,67,67,1434,67,67,67,67,67,67,750,67,67,67,67,67,67,67,67,67,67,1456,67,67,67,67,67,45,45,993,45,45,45,45,45,45,45,45,45,45,45,67,67,1238,67,67,1006,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1280,1048,1049,67,67,67,67,67,67,67,67,67,67,1059,67,67,67,67,67,67,1286,67,67,67,67,67,67,67,1291,67,97,97,1100,97,97,97,97,97,97,97,97,97,97,97,97,97,638,0,920,97,97,1142,1143,97,97,97,97,97,97,97,97,97,97,1153,97,97,97,97,97,1158,97,97,97,1161,97,97,97,97,1166,97,97,97,97,97,1325,97,97,97,97,97,97,97,97,97,97,1328,97,97,97,97,97,97,97,45,1218,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1678,45,45,45,67,67,67,67,67,1269,67,67,67,67,67,67,67,67,1278,67,67,67,67,67,67,1761,67,67,67,67,67,67,67,67,67,530,67,67,67,67,67,67,97,97,1349,97,97,97,97,97,97,97,97,1358,97,97,97,97,97,97,1623,97,97,97,97,97,97,97,97,0,921,0,0,926,0,0,0,45,45,1411,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1754,45,45,67,67,1301,0,1307,0,1313,97,97,97,97,97,97,97,97,97,97,97,21054,97,97,97,97,67,1757,67,67,67,1760,67,67,67,67,67,67,67,67,67,67,1467,67,67,67,67,67,1778,97,0,0,97,97,97,97,97,97,0,0,97,97,0,97,97,97,97,97,1352,97,97,97,97,97,97,97,97,97,97,1511,97,97,97,97,97,67,67,67,67,67,1820,67,1822,67,67,67,67,67,97,97,97,97,97,0,0,0,97,1933,97,1892,97,97,97,97,97,97,1899,45,45,45,45,45,45,45,45,1664,45,45,45,45,45,45,45,45,1546,45,45,45,45,45,45,45,45,1208,45,45,45,45,45,45,45,45,1224,45,45,45,45,45,45,45,45,673,45,45,45,45,45,45,45,67,67,67,67,67,1925,97,97,97,97,0,0,0,97,97,97,97,97,623,97,97,97,97,97,97,97,97,97,97,307,97,97,97,97,97,97,97,97,97,1796,97,45,45,45,45,45,45,45,970,45,45,45,45,45,45,45,45,1417,45,45,45,45,45,45,45,67,1964,67,67,97,97,97,97,0,0,0,97,97,97,97,0,97,97,97,97,97,97,1721,97,97,0,0,1997,97,0,0,2e3,97,97,0,97,97,97,97,97,45,45,45,45,733,45,67,67,67,67,67,67,67,67,67,67,803,67,67,67,67,67,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,144,45,45,45,1805,45,1807,45,45,45,45,45,67,67,67,67,67,67,231,67,67,67,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,45,45,67,211,67,67,67,67,230,234,240,244,67,67,67,67,67,67,464,67,67,67,67,67,67,479,67,67,67,260,67,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,291,97,97,97,97,310,314,320,324,97,97,97,97,97,97,1367,97,97,97,97,97,97,97,97,97,1355,97,97,97,97,97,97,1362,340,97,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,131427,0,0,360,0,362,0,365,28809,367,139,369,45,45,45,374,67,67,460,67,67,67,67,466,67,67,67,67,67,67,67,67,801,67,67,67,67,67,67,67,67,67,487,67,67,67,67,67,67,67,67,67,67,498,67,67,67,67,67,67,1772,67,67,97,97,97,97,97,97,97,0,921,922,1175,0,0,0,0,45,67,502,67,67,67,67,67,67,67,508,67,67,67,515,517,67,67,67,67,67,97,97,97,97,97,0,0,0,1932,97,97,0,1999,97,97,97,0,97,97,2004,2005,97,45,45,45,45,1193,45,45,45,45,45,45,45,45,45,45,45,676,45,45,45,45,67,24850,24850,12564,12564,0,57889,0,0,0,53531,53531,367,286,552,97,97,97,97,97,1377,0,0,45,45,45,45,45,45,45,45,655,45,45,45,45,45,45,45,97,97,557,97,97,97,97,563,97,97,97,97,97,97,97,97,1135,97,97,97,97,97,97,97,97,97,584,97,97,97,97,97,97,97,97,97,97,595,97,97,97,97,97,911,97,97,97,97,97,97,97,638,0,0,0,0,1315,0,0,0,0,97,97,97,1319,97,97,97,0,97,97,97,97,97,97,1733,97,97,97,97,97,97,1340,97,97,97,1343,97,97,1345,97,1346,97,599,97,97,97,97,97,97,97,605,97,97,97,612,614,97,97,97,97,97,1794,97,97,97,45,45,45,45,45,45,45,1207,45,45,45,45,45,45,1213,45,45,745,67,67,67,67,751,67,67,67,67,67,67,67,67,67,67,1577,67,67,67,67,67,762,67,67,67,67,766,67,67,67,67,67,67,67,67,67,67,1765,67,67,67,67,67,777,67,67,781,67,67,67,67,67,67,67,67,67,67,67,67,1592,1593,67,67,97,843,97,97,97,97,849,97,97,97,97,97,97,97,97,97,1510,97,97,97,97,97,97,97,860,97,97,97,97,864,97,97,97,97,97,97,97,97,97,1797,45,45,45,45,1801,45,97,875,97,97,879,97,97,97,97,97,97,97,97,97,97,97,1522,97,97,97,97,97,991,45,45,45,45,996,45,45,45,45,45,45,45,45,67,67,215,67,67,67,67,233,67,67,67,67,251,253,1022,67,67,67,1026,67,67,67,67,67,67,67,67,67,67,1035,67,67,1038,67,67,67,67,67,67,67,67,67,67,67,67,67,1458,67,67,67,67,67,1064,67,67,67,1067,67,67,67,67,1072,67,67,67,67,67,67,1296,0,0,0,0,0,0,0,0,0,2367488,2158592,2158592,2158592,2158592,2158592,2158592,67,67,67,67,67,25398,0,13112,0,54074,0,0,0,0,1096,0,921,29315,0,0,0,0,928,45,45,45,45,45,934,45,45,45,164,45,45,45,45,45,45,45,45,45,198,45,45,45,378,45,45,45,45,45,45,393,45,45,45,398,45,97,97,1116,97,97,97,1120,97,97,97,97,97,97,97,97,97,1147,1148,97,97,97,97,97,97,97,1129,97,97,1132,97,97,97,97,97,97,97,97,97,97,97,1626,97,97,97,97,0,45,1178,45,45,45,45,45,45,45,45,45,1185,45,45,45,45,441,45,45,45,45,45,45,451,45,45,67,67,67,67,67,227,67,67,67,67,67,67,67,67,1260,67,67,67,1263,67,67,1265,1203,45,45,1205,45,1206,45,45,45,45,45,45,45,45,45,1216,67,1266,67,67,67,67,67,67,67,67,67,1276,67,67,67,67,67,67,492,67,67,67,67,67,67,67,67,67,471,67,67,67,67,481,67,45,1386,45,1389,45,45,45,45,1394,45,45,45,1397,45,45,45,45,995,45,997,45,45,45,45,45,45,45,67,67,67,67,1915,67,67,67,67,67,1422,45,45,45,67,67,67,67,67,67,67,67,67,1433,67,1436,67,67,67,67,1441,67,67,67,1444,67,67,67,67,67,67,67,0,24850,12564,0,0,0,281,28809,53531,97,97,97,97,1494,97,97,97,1497,97,97,97,97,97,97,97,1368,97,97,97,97,97,97,97,97,851,97,97,97,97,97,97,97,67,67,67,1571,67,67,67,67,67,67,67,67,67,67,67,67,25398,542,13112,544,67,67,1583,67,67,67,67,67,67,67,67,1591,67,67,67,67,67,67,752,67,67,67,67,67,67,67,67,67,1056,67,67,67,67,67,67,97,1634,97,0,97,97,97,97,97,97,97,97,97,97,97,97,1125,97,97,97,1647,97,97,97,97,97,0,45,45,45,45,45,45,45,45,45,1183,45,45,45,45,45,45,45,45,45,409,45,45,45,45,45,45,1658,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1668,1712,97,97,97,0,97,97,97,97,97,97,97,97,97,0,0,1835,97,97,97,97,0,0,0,97,97,1844,97,97,1726,0,97,97,97,97,97,1732,97,1734,97,97,97,97,97,300,97,308,97,97,97,97,97,97,97,97,866,97,97,97,97,97,97,97,67,67,67,1758,67,67,67,1762,67,67,67,67,67,67,67,67,1043,67,67,67,67,67,67,67,67,67,67,67,67,1771,67,67,67,97,97,97,97,97,1776,97,97,97,97,297,97,97,97,97,97,97,97,97,97,97,97,1108,97,97,97,97,67,67,67,1966,97,97,97,1970,0,0,0,97,97,97,97,0,97,97,97,1720,97,97,97,97,97,0,0,97,97,97,1837,97,0,1840,1841,97,97,97,1988,45,67,67,67,67,67,67,67,67,67,1994,1995,67,97,97,97,97,97,1103,97,97,97,97,97,97,97,97,97,97,917,97,97,0,0,0,67,67,265,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,345,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,131427,0,0,0,361,362,0,365,28809,367,139,45,45,45,45,45,671,45,45,45,45,45,45,45,45,45,45,411,45,45,414,45,45,45,45,377,45,45,45,386,45,45,45,45,45,45,45,45,45,1223,45,45,45,45,45,45,45,45,45,426,45,45,433,45,45,45,67,67,67,67,67,463,67,67,67,472,67,67,67,67,67,67,67,527,67,67,67,67,67,67,537,67,540,24850,24850,12564,12564,0,57889,0,0,0,53531,53531,367,286,97,97,97,97,97,1119,97,97,97,97,97,97,97,97,97,97,1509,97,97,97,97,97,97,97,97,564,97,97,97,97,97,97,97,637,18,131427,0,0,0,0,0,0,362,0,0,365,29315,367,0,921,29315,0,0,0,927,45,45,45,45,45,45,45,45,45,1234,45,45,45,45,67,67,67,67,1240,45,697,45,45,45,45,45,45,45,45,45,45,708,45,45,45,45,1221,45,45,45,45,1225,45,45,45,45,45,45,384,45,45,45,45,45,45,45,45,45,1210,45,45,45,45,45,45,67,67,795,67,67,67,67,67,67,67,67,67,67,67,67,67,1470,67,67,67,67,67,67,67,815,67,67,67,67,67,67,25398,542,13112,544,97,97,97,893,97,97,97,97,97,97,97,97,97,97,97,97,1164,97,97,97,67,67,67,1025,67,67,67,67,67,67,67,67,67,67,67,67,1687,67,67,67,67,67,67,67,67,67,25398,0,13112,0,54074,0,0,0,0,0,1097,1241,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1450,45,45,1388,45,1390,45,45,45,45,45,45,45,45,45,45,45,1236,67,67,67,67,67,1437,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1472,1490,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1503,67,67,67,67,67,97,97,97,97,97,0,1930,0,97,97,97,97,97,847,97,97,97,97,97,97,97,97,97,858,67,67,1965,67,97,97,97,97,0,0,0,97,97,97,97,0,97,97,1719,97,97,97,97,97,97,0,0,0,45,45,45,45,1382,45,1383,45,45,45,159,45,45,45,45,45,45,45,45,45,45,45,45,45,1563,45,45,45,45,45,67,261,67,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,341,97,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,97,1099,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1333,97,1230,45,45,45,45,45,45,45,45,45,45,67,67,67,67,67,67,1992,67,1993,67,67,67,97,97,45,45,160,45,45,45,45,45,45,45,45,45,45,45,45,45,1665,45,45,45,45,45,131427,357,0,0,0,362,0,365,28809,367,139,45,45,45,45,45,684,45,45,45,45,45,45,45,45,45,45,412,45,45,45,416,45,45,45,440,45,45,45,45,45,45,45,45,45,45,45,67,67,1990,67,1991,67,67,67,67,67,67,67,97,97,1707,97,97,97,97,97,97,501,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1691,67,67,67,67,67,526,67,67,67,67,67,67,67,67,67,67,1030,67,1032,67,67,67,67,598,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1632,0,921,29315,923,0,0,0,45,45,45,45,45,45,45,45,45,1404,45,45,45,45,45,45,45,45,45,425,45,45,45,45,45,45,67,67,67,67,67,25398,0,13112,0,54074,0,0,1093,0,0,0,0,0,97,1609,97,97,97,97,97,97,97,97,97,1369,97,97,97,1372,97,97,67,67,266,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,346,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,665,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1677,45,45,45,45,67,45,45,954,45,956,45,45,45,45,45,45,45,45,45,45,45,1545,45,45,45,45,45,45,45,45,45,448,45,45,45,45,67,456,67,67,67,67,67,1270,67,67,67,67,67,67,67,67,67,67,1069,67,67,67,67,67,67,97,97,97,1350,97,97,97,97,97,97,97,97,97,97,97,97,1524,97,97,97,97,97,97,97,1376,0,0,0,45,45,45,45,45,45,45,45,1559,1561,45,45,45,1564,45,1566,1567,45,67,67,67,67,67,1573,67,67,67,67,67,67,67,67,67,67,1247,67,67,67,67,67,1252,97,1725,97,0,97,97,97,97,97,97,97,97,97,97,97,97,1628,97,1630,0,0,94242,0,0,0,2211840,0,1118208,0,0,0,0,2158592,2158731,2158592,2158592,2158592,3117056,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3018752,2158592,3043328,2158592,2158592,2158592,2158592,3080192,2158592,2158592,3112960,2158592,2158592,2158592,2158592,2158592,2158878,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2605056,2158592,2158592,2207744,0,542,0,544,0,0,2166784,0,0,0,550,0,0,2158592,2158592,2686976,2158592,2715648,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2867200,2158592,2904064,2158592,2158592,2158592,2158592,2158592,2158592,2158592,0,94242,0,0,0,2211840,0,0,1130496,0,0,0,2158592,2158592,2158592,2158592,2158592,3186688,2158592,0,0,139,0,0,0,139,0,2367488,2207744,0,0,0,0,176128,0,2166784,0,0,0,0,0,286,2158592,2158592,3170304,3174400,2158592,0,0,0,2158592,2158592,2158592,2158592,2158592,2424832,2158592,2158592,2158592,1508,2158592,2908160,2158592,2158592,2158592,2977792,2158592,2158592,2158592,2158592,3039232,2158592,2158592,2158592,2158592,2158592,2158592,3158016,67,24850,24850,12564,12564,0,0,0,0,0,53531,53531,0,286,97,97,97,97,97,1144,97,97,97,97,97,97,97,97,97,97,1149,97,97,97,97,1154,57889,0,0,0,0,550,0,97,97,97,97,97,97,97,97,97,561,97,97,97,97,97,97,576,97,97,139264,139264,139264,139264,139264,139264,139264,139264,139264,139264,139264,139264,0,0,139264,0,921,29315,0,0,926,0,45,45,45,45,45,45,45,45,45,719,720,45,45,45,45,45,45,45,45,685,45,45,45,45,45,45,45,45,45,942,45,45,946,45,45,45,950,45,45,0,2146304,2146304,0,0,0,0,2224128,2224128,2224128,2232320,2232320,2232320,2232320,0,0,1301,0,0,0,0,0,1307,0,0,0,0,0,1313,0,0,0,0,0,0,0,97,97,1318,97,97,97,97,97,97,1795,97,97,45,45,45,45,45,45,45,446,45,45,45,45,45,45,67,67,2158592,2146304,0,0,0,0,0,0,0,2211840,0,0,0,0,2158592,0,921,29315,0,924,0,0,45,45,45,45,45,45,45,45,45,1e3,45,45,45,45,67,67],r.EXPECTED=[290,300,304,353,296,309,305,319,315,324,328,352,354,334,338,330,320,345,349,293,358,362,341,366,312,370,374,378,382,386,390,394,398,737,402,634,439,604,634,634,634,634,408,634,634,634,404,634,634,634,457,634,634,963,634,634,413,634,634,634,634,634,634,634,663,418,422,903,902,426,431,548,634,437,521,919,443,615,409,449,455,624,731,751,634,461,465,672,470,469,474,481,485,477,489,493,629,542,497,505,603,602,991,648,510,804,634,515,958,526,525,530,768,634,546,552,711,710,593,558,562,618,566,570,574,578,582,586,590,608,612,660,822,821,634,622,596,444,628,533,724,633,640,653,647,652,536,1008,451,450,445,657,670,676,685,689,693,697,701,704,707,715,719,798,815,634,723,762,996,634,728,969,730,735,908,634,741,679,889,511,747,634,750,755,499,666,499,501,759,772,776,780,634,787,784,797,802,809,808,427,814,1006,517,634,519,853,634,813,850,793,634,819,826,833,832,837,843,847,857,861,863,867,871,875,879,883,643,887,539,980,979,634,893,944,634,900,896,634,907,933,506,912,917,828,433,636,635,554,961,923,930,927,937,941,634,634,634,974,948,952,985,913,968,967,743,634,973,839,634,978,599,634,984,989,765,444,995,1e3,634,1003,790,955,1012,681,634,634,634,634,634,414,1016,1020,1024,1085,1027,1090,1090,1046,1080,1137,1108,1215,1049,1032,1039,1085,1085,1085,1085,1058,1062,1068,1085,1086,1090,1090,1091,1072,1064,1107,1090,1090,1090,1118,1123,1138,1078,1074,1084,1085,1085,1085,1087,1090,1062,1052,1060,1114,1062,1104,1085,1085,1090,1090,1028,1122,1063,1128,1139,1127,1158,1085,1085,1151,1090,1090,1090,1095,1090,1132,1073,1136,1143,1061,1150,1085,1155,1098,1101,1146,1162,1169,1101,1185,1151,1090,1110,1173,1054,1087,1109,1177,1165,1089,1204,1184,1107,1189,1193,1088,1197,1180,1201,1208,1042,1212,1219,1223,1227,1231,1235,1245,1777,1527,1686,1686,1238,1686,1254,1686,1686,1686,1294,1669,1686,1686,1686,1322,1625,1534,1268,1624,1275,1281,1443,1292,1300,1686,1686,1686,1350,1826,1306,1686,1686,1240,2032,1317,1321,1686,1686,1253,1686,1326,1686,1686,1686,1418,1709,1446,1686,1686,1686,1492,1686,1295,1447,1686,1686,1258,1686,1736,1686,1686,1520,1355,1686,1288,1348,1361,1686,1359,1686,1364,1498,1368,1302,1362,1381,1389,1395,1486,1686,1371,1377,1370,1686,1375,1382,1384,1402,1408,1385,1383,1619,1413,1423,1428,1433,1686,1686,1270,1686,1338,1686,1440,1686,1686,1686,1499,1465,1686,1686,1686,1639,1473,1884,1686,1686,1293,1864,1686,1686,1296,1321,1483,1686,1686,1686,1646,1686,1748,1496,1686,1418,1675,1686,1418,1702,1686,1418,1981,1686,1429,1409,1427,1504,1692,1686,1686,1313,1448,1651,1508,1686,1686,1340,1686,1903,1686,1686,1435,1513,1686,1283,1287,1519,1686,1524,1363,1568,1938,1539,1566,1579,1479,1533,1538,1553,1544,1552,1557,1563,1574,1557,1583,1589,1590,1759,1594,1603,1607,1611,1686,1436,1514,1686,1434,1656,1686,1434,1680,1686,1453,1686,1686,1686,1559,1617,1686,1770,1418,1623,1769,1629,1686,1515,1335,1686,1285,1686,1671,1921,1650,1686,1686,1344,1308,1666,1686,1686,1686,1659,1685,1686,1686,1686,1686,1241,1686,1686,1844,1691,1686,1630,1977,1970,1362,1686,1686,1686,1693,1698,1686,1686,1686,1697,1686,1764,1715,1686,1634,1638,1686,1599,1585,1686,1271,1686,1269,1686,1721,1686,1686,1354,1686,1801,1686,1799,1686,1640,1686,1686,1461,1686,1686,1732,1686,1944,1686,1740,1686,1746,1415,1396,1686,1598,1547,1417,1597,1416,1577,1546,1397,1577,1547,1548,1570,1398,1753,1686,1652,1509,1686,1686,1686,1757,1686,1419,1686,1763,1418,1768,1781,1686,1686,1686,1705,1686,2048,1792,1686,1686,1686,1735,1686,1797,1686,1686,1404,1686,1639,1815,1686,1686,1418,2017,1820,1686,1686,1803,1686,1686,1686,1736,1489,1686,1686,1825,1338,1260,1263,1686,1686,1785,1686,1686,1728,1686,1686,1749,1497,1830,1830,1262,1248,1261,1329,1260,1264,1329,1248,1249,1259,1540,1849,1842,1686,1686,1835,1686,1686,1816,1686,1686,1831,1882,1848,1686,1686,1686,1774,2071,1854,1686,1686,1469,1884,1686,1821,1859,1686,1686,1350,1883,1686,1686,1686,1781,1391,1875,1686,1686,1613,1644,1686,1686,1889,1686,1686,1662,1884,1686,1885,1890,1686,1686,1686,1894,1686,1686,1678,1686,1907,1686,1686,1529,1914,1686,1838,1686,1686,1881,1686,1686,1872,1876,1836,1919,1686,1837,1692,1910,1686,1925,1928,1742,1686,1811,1811,1930,1810,1929,1935,1928,1900,1942,1867,1868,1931,1035,1788,1948,1952,1956,1960,1964,1686,1976,1686,1686,1686,2065,1686,1992,2037,1686,1686,1998,2009,1972,2002,1686,1686,1686,2077,1300,2023,1686,1686,1686,1807,2031,1686,1686,1686,1860,1500,2032,1686,1686,1686,2083,1686,2036,1686,1277,1276,2042,1877,1686,1686,2041,1686,1686,2027,2037,2012,1686,2012,1855,1850,1686,2046,1686,1686,2054,1996,1686,1897,1309,2059,2052,1686,2058,1686,1686,2081,1686,1717,1477,1686,1331,1686,1686,1687,1686,1860,1681,1686,1686,1686,1966,1724,1686,1686,1686,1984,2015,1686,1686,1686,1988,1686,2063,1686,1686,1686,2005,1686,1727,1686,1686,1711,1457,2069,1686,1686,1686,2019,2075,1686,1686,1915,1686,1686,1793,1874,1686,1686,1491,1362,1449,1686,1686,1460,2098,2087,2091,2095,2184,2102,2113,2780,2117,2134,2142,2281,2146,2146,2146,2304,2296,2181,2639,2591,2872,2592,2873,2313,2195,2200,2281,2146,2273,2226,2204,2152,2219,2276,2167,2177,2276,2235,2276,2276,2230,2281,2276,2296,2276,2293,2276,2276,2276,2276,2234,2276,2311,2314,2210,2199,2217,2222,2276,2276,2276,2240,2276,2294,2276,2276,2173,2276,2198,2281,2281,2281,2281,2282,2146,2146,2146,2146,2205,2146,2204,2248,2276,2235,2276,2297,2276,2276,2276,2277,2256,2281,2283,2146,2146,2146,2275,2276,2295,2276,2276,2293,2146,2304,2264,2269,2221,2276,2276,2276,2293,2295,2276,2276,2276,2295,2263,2205,2268,2220,2172,2276,2276,2276,2296,2276,2276,2296,2294,2276,2276,2278,2281,2281,2280,2281,2281,2281,2283,2206,2223,2276,2276,2279,2281,2281,2146,2273,2276,2276,2281,2281,2281,2276,2292,2276,2298,2225,2276,2298,2169,2224,2292,2298,2171,2229,2281,2281,2171,2236,2281,2281,2281,2146,2275,2225,2292,2299,2276,2229,2281,2146,2276,2290,2297,2283,2146,2146,2274,2224,2227,2298,2225,2297,2276,2230,2170,2230,2282,2146,2147,2151,2156,2288,2276,2230,2303,2308,2236,2284,2228,2318,2318,2318,2326,2335,2339,2343,2349,2416,2693,2357,2592,2109,2592,2592,2162,2943,2823,2646,2592,2361,2592,2122,2592,2592,2122,2470,2592,2592,2592,2109,2107,2592,2592,2592,2123,2592,2592,2592,2125,2592,2413,2592,2592,2592,2127,2592,2592,2414,2592,2592,2592,2130,2952,2592,2594,2592,2592,2212,2609,2252,2592,2592,2592,2446,2434,2592,2592,2592,2212,2446,2450,2456,2431,2435,2592,2592,2243,2478,2448,2439,2946,2592,2592,2592,2368,2809,2813,2450,2441,2212,2812,2449,2440,2947,2592,2592,2592,2345,2451,2457,2948,2592,2124,2592,2592,2650,2823,2449,2455,2946,2592,2128,2592,2592,2649,2952,2592,2810,2448,2461,2991,2467,2592,2592,2329,2817,2474,2990,2466,2592,2592,2373,2447,2992,2469,2592,2592,2592,2373,2447,2477,2468,2592,2592,2353,2469,2592,2495,2592,2592,2415,2483,2592,2415,2496,2592,2592,2352,2592,2592,2352,2352,2469,2592,2592,2363,2331,2494,2592,2592,2592,2375,2592,2375,2415,2504,2592,2592,2367,2372,2503,2592,2592,2592,2389,2418,2415,2592,2592,2373,2592,2592,2592,2593,2732,2417,2415,2592,2417,2520,2592,2592,2592,2390,2521,2521,2592,2592,2592,2401,2599,2585,2526,2531,2120,2592,2212,2426,2450,2463,2948,2592,2592,2592,2213,2389,2527,2532,2121,2542,2551,2105,2592,2213,2592,2592,2592,2558,2538,2544,2553,2557,2537,2543,2552,2421,2572,2576,2546,2543,2547,2592,2592,2373,2615,2575,2545,2105,2592,2244,2479,2592,2129,2592,2592,2628,2690,2469,2562,2566,2592,2592,2592,2415,2928,2934,2401,2570,2574,2564,2572,2585,2590,2592,2592,2585,2965,2592,2592,2592,2445,2251,2592,2592,2592,2474,2592,2609,2892,2592,2362,2592,2592,2138,2851,2159,2592,2592,2592,2509,2888,2892,2592,2592,2592,2490,2418,2891,2592,2592,2376,2592,2592,2374,2592,2889,2388,2592,2373,2373,2890,2592,2592,2387,2592,2887,2505,2892,2592,2373,2610,2388,2592,2592,2376,2373,2592,2887,2891,2592,2374,2592,2592,2608,2159,2614,2620,2592,2592,2394,2594,2887,2399,2592,2887,2397,2508,2374,2507,2592,2375,2592,2592,2592,2595,2508,2506,2592,2506,2505,2505,2592,2507,2637,2505,2592,2592,2401,2661,2592,2643,2592,2592,2417,2592,2655,2592,2592,2592,2510,2414,2656,2592,2592,2592,2516,2592,2593,2660,2665,2880,2592,2592,2592,2522,2767,2666,2881,2592,2592,2420,2571,2696,2592,2592,2592,2580,2572,2686,2632,2698,2592,2383,2514,2592,2163,2932,2465,2685,2631,2697,2592,2388,2592,2592,2212,2604,2671,2632,2678,2592,2401,2405,2409,2592,2592,2592,2679,2592,2592,2592,2592,2108,2677,2591,2592,2592,2592,2419,2592,2683,2187,2191,2469,2671,2189,2467,2592,2401,2629,2633,2702,2468,2592,2592,2421,2536,2703,2469,2592,2592,2422,2573,2593,2672,2467,2592,2402,2406,2592,2402,2979,2592,2592,2626,2673,2467,2592,2446,2259,2947,2592,2377,2709,2592,2592,2522,2862,2713,2468,2592,2592,2581,2572,2562,2374,2374,2592,2376,2721,2724,2592,2592,2624,2373,2731,2592,2592,2592,2626,2732,2592,2592,2592,2755,2656,2726,2736,2741,2592,2486,2593,2381,2592,2727,2737,2742,2715,2747,2753,2592,2498,2469,2873,2743,2592,2592,2592,2791,2759,2763,2592,2592,2627,2704,2592,2592,2522,2789,2593,2761,2753,2592,2498,2863,2592,2592,2767,2592,2592,2592,2792,2789,2592,2592,2592,2803,2126,2592,2592,2592,2811,2122,2592,2592,2592,2834,2777,2592,2592,2592,2848,2936,2591,2489,2797,2592,2592,2670,2631,2490,2798,2592,2592,2592,2963,2807,2592,2592,2592,2965,2838,2592,2592,2592,2975,2330,2818,2829,2592,2498,2939,2592,2498,2592,2791,2331,2819,2830,2592,2592,2592,2982,2834,2817,2828,2106,2592,2592,2592,2405,2405,2817,2828,2592,2592,2415,2849,2842,2592,2522,2773,2592,2522,2868,2592,2580,2600,2586,2137,2850,2843,2592,2592,2855,2937,2844,2592,2592,2592,2987,2936,2591,2592,2592,2684,2630,2592,2856,2938,2592,2592,2860,2939,2592,2592,2872,2592,2861,2591,2592,2592,2887,2616,2592,2867,2592,2592,2708,2592,2498,2469,2498,2497,2785,2773,2499,2783,2770,2877,2877,2877,2772,2592,2592,2345,2885,2592,2592,2592,2715,2762,2515,2896,2592,2592,2715,2917,2516,2897,2592,2592,2592,2901,2906,2911,2592,2592,2956,2960,2715,2902,2907,2912,2593,2916,2920,2820,2922,2822,2592,2592,2715,2927,2921,2821,2106,2592,2592,2974,2408,2321,2821,2106,2592,2592,2983,2592,2593,2404,2408,2592,2592,2717,2749,2716,2928,2322,2822,2593,2926,2919,2820,2934,2823,2592,2592,2592,2651,2824,2592,2592,2592,2130,2952,2592,2592,2592,2592,2964,2592,2592,2716,2748,2592,2969,2592,2592,2716,2918,2368,2970,2592,2592,2592,2403,2407,2592,2592,2787,2211,2404,2409,2592,2592,2802,2837,2987,2592,2592,2592,2809,2427,2592,2793,2592,2592,2809,2447,1073741824,2147483648,539754496,542375936,402653184,554434560,571736064,545521856,268451840,335544320,268693630,512,2048,256,1024,0,1024,0,1073741824,2147483648,0,0,0,8388608,0,0,1073741824,1073741824,0,2147483648,537133056,4194304,1048576,268435456,-1073741824,0,0,0,1048576,0,0,0,1572864,0,0,0,4194304,0,134217728,16777216,0,0,32,64,98304,0,33554432,8388608,192,67108864,67108864,67108864,67108864,16,32,4,0,8192,196608,196608,229376,80,4096,524288,8388608,0,0,32,128,256,24576,24600,24576,24576,2,24576,24576,24576,24584,24592,24576,24578,24576,24578,24576,24576,16,512,2048,2048,256,4096,32768,1048576,4194304,67108864,134217728,268435456,262144,134217728,0,128,128,64,16384,16384,16384,67108864,32,32,4,4,4096,262144,134217728,0,0,0,2,0,8192,131072,131072,4096,4096,4096,4096,24576,24576,24576,8,8,24576,24576,16384,16384,16384,24576,24584,24576,24576,24576,16384,24576,536870912,262144,0,0,32,2048,8192,4,4096,4096,4096,786432,8388608,16777216,0,128,16384,16384,16384,32768,65536,2097152,32,32,32,32,4,4,4,4,4,4096,67108864,67108864,67108864,24576,24576,24576,24576,0,16384,16384,16384,16384,67108864,67108864,8,67108864,24576,8,8,8,24576,24576,24576,24578,24576,24576,24576,2,2,2,16384,67108864,67108864,67108864,32,67108864,8,8,24576,2048,2147483648,536870912,262144,262144,262144,67108864,8,24576,16384,32768,1048576,4194304,25165824,67108864,24576,32770,2,4,112,512,98304,524288,50,402653186,1049090,1049091,10,66,100925514,10,66,12582914,0,0,-1678194207,-1678194207,-1041543218,0,32768,0,0,32,65536,268435456,1,1,513,1048577,0,12582912,0,0,0,4,1792,0,0,0,7,29360128,0,0,0,8,0,0,0,12,1,1,0,0,-604102721,-604102721,4194304,8388608,0,0,0,31,925600,997981306,997981306,997981306,0,0,2048,8388608,0,0,1,2,4,32,64,512,8192,0,0,0,245760,997720064,0,0,0,32,0,0,0,3,12,16,32,8,112,3072,12288,16384,32768,65536,131072,7864320,16777216,973078528,0,0,65536,131072,3670016,4194304,16777216,33554432,2,8,48,2048,8192,16384,32768,65536,131072,524288,131072,524288,3145728,4194304,16777216,33554432,65536,131072,2097152,4194304,16777216,33554432,134217728,268435456,536870912,0,0,0,1024,0,8,48,2048,8192,65536,33554432,268435456,536870912,65536,268435456,536870912,0,0,32768,0,0,126,623104,65011712,0,32,65536,536870912,0,0,65536,524288,0,32,65536,0,0,0,2048,0,0,0,15482,245760,-604102721,0,0,0,18913,33062912,925600,-605028352,0,0,0,65536,31,8096,131072,786432,3145728,3145728,12582912,50331648,134217728,268435456,160,256,512,7168,131072,786432,131072,786432,1048576,2097152,12582912,16777216,268435456,1073741824,2147483648,12582912,16777216,33554432,268435456,1073741824,2147483648,3,12,16,160,256,7168,786432,1048576,12582912,16777216,268435456,1073741824,0,8,16,32,128,256,512,7168,786432,1048576,2097152,0,1,2,8,16,7168,786432,1048576,8388608,16777216,16777216,1073741824,0,0,0,0,1,0,0,8,32,128,256,7168,8,32,0,3072,0,8,32,3072,4096,524288,8,32,0,0,3072,4096,0,2048,524288,8388608,8,2048,0,0,1,12,256,4096,32768,262144,1048576,4194304,67108864,0,2048,0,2048,2048,1073741824,-58805985,-58805985,-58805985,0,0,262144,0,0,32,4194304,16777216,134217728,4382,172032,-58982400,0,0,2,28,256,4096,8192,8192,32768,131072,262144,524288,1,2,12,256,4096,0,0,4194304,67108864,134217728,805306368,1073741824,0,0,1,2,12,16,256,4096,1048576,67108864,134217728,268435456,0,512,1048576,4194304,201326592,1879048192,0,0,12,256,4096,134217728,268435456,536870912,12,256,268435456,536870912,0,12,256,0,0,1,32,64,512,0,0,205236961,205236961,0,0,0,1,96,640,1,10976,229376,204996608,0,640,2048,8192,229376,1572864,1572864,2097152,201326592,0,0,0,64,512,2048,229376,1572864,201326592,1572864,201326592,0,0,1,4382,0,1,32,2048,65536,131072,1572864,201326592,131072,1572864,134217728,0,0,524288,524288,0,0,0,-68582786,-68582786,-68582786,0,0,2097152,524288,0,524288,0,0,65536,131072,1572864,0,0,2,4,0,0,65011712,-134217728,0,0,0,0,2,4,120,512,-268435456,0,0,0,2,8,48,64,2048,8192,98304,524288,2097152,4194304,25165824,33554432,134217728,268435456,2147483648,0,0,25165824,33554432,134217728,1879048192,2147483648,0,0,4,112,512,622592,65011712,134217728,-268435456,16777216,33554432,134217728,1610612736,0,0,0,64,98304,524288,4194304,16777216,33554432,0,98304,524288,16777216,33554432,0,65536,524288,33554432,536870912,1073741824,0,65536,524288,536870912,1073741824,0,0,65536,524288,536870912,0,524288,0,524288,524288,1048576,2086666240,2147483648,0,-1678194207,0,0,0,8,32,2048,524288,8388608,0,0,33062912,436207616,2147483648,0,0,32,64,2432,16384,32768,32768,524288,3145728,4194304,25165824,25165824,167772160,268435456,2147483648,0,32,64,384,2048,16384,32768,1048576,2097152,4194304,25165824,32,64,128,256,2048,16384,2048,16384,1048576,4194304,16777216,33554432,134217728,536870912,1073741824,0,0,2048,16384,4194304,16777216,33554432,134217728,805306368,0,0,16777216,134217728,268435456,2147483648,0,622592,622592,622592,8807,8807,434791,0,0,16777216,0,0,0,7,608,8192,0,0,0,3,4,96,512,32,64,8192,0,0,16777216,134217728,0,0,2,4,8192,16384,65536,2097152,33554432,268435456],r.TOKEN=[\"(0)\",\"ModuleDecl\",\"Annotation\",\"OptionDecl\",\"Operator\",\"Variable\",\"Tag\",\"EndTag\",\"PragmaContents\",\"DirCommentContents\",\"DirPIContents\",\"CDataSectionContents\",\"AttrTest\",\"Wildcard\",\"EQName\",\"IntegerLiteral\",\"DecimalLiteral\",\"DoubleLiteral\",\"PredefinedEntityRef\",\"'\\\"\\\"'\",\"EscapeApos\",\"QuotChar\",\"AposChar\",\"ElementContentChar\",\"QuotAttrContentChar\",\"AposAttrContentChar\",\"NCName\",\"QName\",\"S\",\"CharRef\",\"CommentContents\",\"DocTag\",\"DocCommentContents\",\"EOF\",\"'!'\",\"'\\\"'\",\"'#'\",\"'#)'\",\"''''\",\"'('\",\"'(#'\",\"'(:'\",\"'(:~'\",\"')'\",\"'*'\",\"'*'\",\"','\",\"'-->'\",\"'.'\",\"'/'\",\"'/>'\",\"':'\",\"':)'\",\"';'\",\"'<!--'\",\"'<![CDATA['\",\"'<?'\",\"'='\",\"'>'\",\"'?'\",\"'?>'\",\"'NaN'\",\"'['\",\"']'\",\"']]>'\",\"'after'\",\"'all'\",\"'allowing'\",\"'ancestor'\",\"'ancestor-or-self'\",\"'and'\",\"'any'\",\"'append'\",\"'array'\",\"'as'\",\"'ascending'\",\"'at'\",\"'attribute'\",\"'base-uri'\",\"'before'\",\"'boundary-space'\",\"'break'\",\"'by'\",\"'case'\",\"'cast'\",\"'castable'\",\"'catch'\",\"'check'\",\"'child'\",\"'collation'\",\"'collection'\",\"'comment'\",\"'constraint'\",\"'construction'\",\"'contains'\",\"'content'\",\"'context'\",\"'continue'\",\"'copy'\",\"'copy-namespaces'\",\"'count'\",\"'decimal-format'\",\"'decimal-separator'\",\"'declare'\",\"'default'\",\"'delete'\",\"'descendant'\",\"'descendant-or-self'\",\"'descending'\",\"'diacritics'\",\"'different'\",\"'digit'\",\"'distance'\",\"'div'\",\"'document'\",\"'document-node'\",\"'element'\",\"'else'\",\"'empty'\",\"'empty-sequence'\",\"'encoding'\",\"'end'\",\"'entire'\",\"'eq'\",\"'every'\",\"'exactly'\",\"'except'\",\"'exit'\",\"'external'\",\"'first'\",\"'following'\",\"'following-sibling'\",\"'for'\",\"'foreach'\",\"'foreign'\",\"'from'\",\"'ft-option'\",\"'ftand'\",\"'ftnot'\",\"'ftor'\",\"'function'\",\"'ge'\",\"'greatest'\",\"'group'\",\"'grouping-separator'\",\"'gt'\",\"'idiv'\",\"'if'\",\"'import'\",\"'in'\",\"'index'\",\"'infinity'\",\"'inherit'\",\"'insensitive'\",\"'insert'\",\"'instance'\",\"'integrity'\",\"'intersect'\",\"'into'\",\"'is'\",\"'item'\",\"'json'\",\"'json-item'\",\"'key'\",\"'language'\",\"'last'\",\"'lax'\",\"'le'\",\"'least'\",\"'let'\",\"'levels'\",\"'loop'\",\"'lowercase'\",\"'lt'\",\"'minus-sign'\",\"'mod'\",\"'modify'\",\"'module'\",\"'most'\",\"'namespace'\",\"'namespace-node'\",\"'ne'\",\"'next'\",\"'no'\",\"'no-inherit'\",\"'no-preserve'\",\"'node'\",\"'nodes'\",\"'not'\",\"'object'\",\"'occurs'\",\"'of'\",\"'on'\",\"'only'\",\"'option'\",\"'or'\",\"'order'\",\"'ordered'\",\"'ordering'\",\"'paragraph'\",\"'paragraphs'\",\"'parent'\",\"'pattern-separator'\",\"'per-mille'\",\"'percent'\",\"'phrase'\",\"'position'\",\"'preceding'\",\"'preceding-sibling'\",\"'preserve'\",\"'previous'\",\"'processing-instruction'\",\"'relationship'\",\"'rename'\",\"'replace'\",\"'return'\",\"'returning'\",\"'revalidation'\",\"'same'\",\"'satisfies'\",\"'schema'\",\"'schema-attribute'\",\"'schema-element'\",\"'score'\",\"'self'\",\"'sensitive'\",\"'sentence'\",\"'sentences'\",\"'skip'\",\"'sliding'\",\"'some'\",\"'stable'\",\"'start'\",\"'stemming'\",\"'stop'\",\"'strict'\",\"'strip'\",\"'structured-item'\",\"'switch'\",\"'text'\",\"'then'\",\"'thesaurus'\",\"'times'\",\"'to'\",\"'treat'\",\"'try'\",\"'tumbling'\",\"'type'\",\"'typeswitch'\",\"'union'\",\"'unique'\",\"'unordered'\",\"'updating'\",\"'uppercase'\",\"'using'\",\"'validate'\",\"'value'\",\"'variable'\",\"'version'\",\"'weight'\",\"'when'\",\"'where'\",\"'while'\",\"'wildcards'\",\"'window'\",\"'with'\",\"'without'\",\"'word'\",\"'words'\",\"'xquery'\",\"'zero-digit'\",\"'{'\",\"'{{'\",\"'|'\",\"'}'\",\"'}}'\"]},{}],2:[function(e,t,n){\"use strict\";var r=function(e){var t=e;this.tokens=[],this.reset=function(){t=t,this.tokens=[]},this.startNonterminal=function(){},this.endNonterminal=function(){},this.terminal=function(e,n,r){this.tokens.push({name:e,value:t.substring(n,r)})},this.whitespace=function(e,n){this.tokens.push({name:\"WS\",value:t.substring(e,n)})}};n.Lexer=function(e,t){this.tokens=[],this.getLineTokens=function(n,i){i=i===\"start\"||!i?'[\"start\"]':i;var s=JSON.parse(i),o=new r(n),u=new e(n,o),a=[];for(;;){var f=s[s.length-1];try{o.tokens=[],u[\"parse_\"+f]();var l=null;o.tokens.length>1&&o.tokens[0].name===\"WS\"&&(a.push({type:\"text\",value:o.tokens[0].value}),o.tokens.splice(0,1));var c=o.tokens[0],h=t[f];for(var p=0;p<h.length;p++){var d=t[f][p];if(typeof d.name==\"function\"&&d.name(c)||d.name===c.name){l=d;break}}if(c.name===\"EOF\")break;if(c.value===\"\")throw\"Encountered empty string lexical rule.\";a.push({type:l===null?\"text\":typeof l.token==\"function\"?l.token(c.value):l.token,value:c.value}),l&&l.next&&l.next(s)}catch(v){if(v instanceof u.ParseException){var m=0;for(var g=0;g<a.length;g++)m+=a[g].value.length;return a.push({type:\"text\",value:n.substring(m)}),{tokens:a,state:JSON.stringify([\"start\"])}}throw v}}return{tokens:a,state:JSON.stringify(s)}}}},{}],3:[function(e,t,n){\"use strict\";var r=e(\"./XQueryTokenizer\").XQueryTokenizer,i=e(\"./lexer\").Lexer,s=\"after|ancestor|ancestor-or-self|and|as|ascending|attribute|before|case|cast|castable|child|collation|comment|copy|count|declare|default|delete|descendant|descendant-or-self|descending|div|document|document-node|element|else|empty|empty-sequence|end|eq|every|except|first|following|following-sibling|for|function|ge|group|gt|idiv|if|import|insert|instance|intersect|into|is|item|last|le|let|lt|mod|modify|module|namespace|namespace-node|ne|node|only|or|order|ordered|parent|preceding|preceding-sibling|processing-instruction|rename|replace|return|satisfies|schema-attribute|schema-element|self|some|stable|start|switch|text|to|treat|try|typeswitch|union|unordered|validate|where|with|xquery|contains|paragraphs|sentences|times|words|by|collectionreturn|variable|version|option|when|encoding|toswitch|catch|tumbling|sliding|window|at|using|stemming|collection|schema|while|on|nodes|index|external|then|in|updating|value|of|containsbreak|loop|continue|exit|returning|append|json|position|strict\".split(\"|\"),o=s.map(function(e){return{name:\"'\"+e+\"'\",token:\"keyword\"}}),u=s.map(function(e){return{name:\"'\"+e+\"'\",token:\"text\",next:function(e){e.pop()}}}),a=\"constant.language\",f=\"constant\",l=\"comment\",c=\"xml-pe\",h=\"constant.buildin\",p=function(e){return\"'\"+e+\"'\"},d={start:[{name:p(\"(#\"),token:h,next:function(e){e.push(\"Pragma\")}},{name:p(\"(:\"),token:\"comment\",next:function(e){e.push(\"Comment\")}},{name:p(\"(:~\"),token:\"comment.doc\",next:function(e){e.push(\"CommentDoc\")}},{name:p(\"<!--\"),token:l,next:function(e){e.push(\"XMLComment\")}},{name:p(\"<?\"),token:c,next:function(e){e.push(\"PI\")}},{name:p(\"''\"),token:\"string\",next:function(e){e.push(\"AposString\")}},{name:p('\"'),token:\"string\",next:function(e){e.push(\"QuotString\")}},{name:\"Annotation\",token:\"support.function\"},{name:\"ModuleDecl\",token:\"keyword\",next:function(e){e.push(\"Prefix\")}},{name:\"OptionDecl\",token:\"keyword\",next:function(e){e.push(\"_EQName\")}},{name:\"AttrTest\",token:\"support.type\"},{name:\"Variable\",token:\"variable\"},{name:p(\"<![CDATA[\"),token:a,next:function(e){e.push(\"CData\")}},{name:\"IntegerLiteral\",token:f},{name:\"DecimalLiteral\",token:f},{name:\"DoubleLiteral\",token:f},{name:\"Operator\",token:\"keyword.operator\"},{name:\"EQName\",token:function(e){return s.indexOf(e)!==-1?\"keyword\":\"support.function\"}},{name:p(\"(\"),token:\"lparen\"},{name:p(\")\"),token:\"rparen\"},{name:\"Tag\",token:\"meta.tag\",next:function(e){e.push(\"StartTag\")}},{name:p(\"}\"),token:\"text\",next:function(e){e.length>1&&e.pop()}},{name:p(\"{\"),token:\"text\",next:function(e){e.push(\"start\")}}].concat(o),_EQName:[{name:\"EQName\",token:\"text\",next:function(e){e.pop()}}].concat(u),Prefix:[{name:\"NCName\",token:\"text\",next:function(e){e.pop()}}].concat(u),StartTag:[{name:p(\">\"),token:\"meta.tag\",next:function(e){e.push(\"TagContent\")}},{name:\"QName\",token:\"entity.other.attribute-name\"},{name:p(\"=\"),token:\"text\"},{name:p(\"''\"),token:\"string\",next:function(e){e.push(\"AposAttr\")}},{name:p('\"'),token:\"string\",next:function(e){e.push(\"QuotAttr\")}},{name:p(\"/>\"),token:\"meta.tag.r\",next:function(e){e.pop()}}],TagContent:[{name:\"ElementContentChar\",token:\"text\"},{name:p(\"<![CDATA[\"),token:a,next:function(e){e.push(\"CData\")}},{name:p(\"<!--\"),token:l,next:function(e){e.push(\"XMLComment\")}},{name:\"Tag\",token:\"meta.tag\",next:function(e){e.push(\"StartTag\")}},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:p(\"{{\"),token:\"text\"},{name:p(\"}}\"),token:\"text\"},{name:p(\"{\"),token:\"text\",next:function(e){e.push(\"start\")}},{name:\"EndTag\",token:\"meta.tag\",next:function(e){e.pop(),e.pop()}}],AposAttr:[{name:p(\"''\"),token:\"string\",next:function(e){e.pop()}},{name:\"EscapeApos\",token:\"constant.language.escape\"},{name:\"AposAttrContentChar\",token:\"string\"},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:p(\"{{\"),token:\"string\"},{name:p(\"}}\"),token:\"string\"},{name:p(\"{\"),token:\"text\",next:function(e){e.push(\"start\")}}],QuotAttr:[{name:p('\"'),token:\"string\",next:function(e){e.pop()}},{name:\"EscapeQuot\",token:\"constant.language.escape\"},{name:\"QuotAttrContentChar\",token:\"string\"},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:p(\"{{\"),token:\"string\"},{name:p(\"}}\"),token:\"string\"},{name:p(\"{\"),token:\"text\",next:function(e){e.push(\"start\")}}],Pragma:[{name:\"PragmaContents\",token:h},{name:p(\"#\"),token:h},{name:p(\"#)\"),token:h,next:function(e){e.pop()}}],Comment:[{name:\"CommentContents\",token:\"comment\"},{name:p(\"(:\"),token:\"comment\",next:function(e){e.push(\"Comment\")}},{name:p(\":)\"),token:\"comment\",next:function(e){e.pop()}}],CommentDoc:[{name:\"DocCommentContents\",token:\"comment.doc\"},{name:\"DocTag\",token:\"comment.doc.tag\"},{name:p(\"(:\"),token:\"comment.doc\",next:function(e){e.push(\"CommentDoc\")}},{name:p(\":)\"),token:\"comment.doc\",next:function(e){e.pop()}}],XMLComment:[{name:\"DirCommentContents\",token:l},{name:p(\"-->\"),token:l,next:function(e){e.pop()}}],CData:[{name:\"CDataSectionContents\",token:a},{name:p(\"]]>\"),token:a,next:function(e){e.pop()}}],PI:[{name:\"DirPIContents\",token:c},{name:p(\"?\"),token:c},{name:p(\"?>\"),token:c,next:function(e){e.pop()}}],AposString:[{name:p(\"''\"),token:\"string\",next:function(e){e.pop()}},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:\"EscapeApos\",token:\"constant.language.escape\"},{name:\"AposChar\",token:\"string\"}],QuotString:[{name:p('\"'),token:\"string\",next:function(e){e.pop()}},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:\"EscapeQuot\",token:\"constant.language.escape\"},{name:\"QuotChar\",token:\"string\"}]};n.XQueryLexer=function(){return new i(r,d)}},{\"./XQueryTokenizer\":1,\"./lexer\":2}]},{},[3])(3)}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\")){f=a.stepBackward();if(f.value==\"<\"){f=a.stepForward();break}}var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/behaviour/xquery\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/mode/behaviour/xml\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function a(e,t){var n=!0,r=e.type.split(\".\"),i=t.split(\".\");return i.forEach(function(e){if(r.indexOf(e)==-1)return n=!1,!1}),n}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../behaviour/xml\").XmlBehaviour,u=e(\"../../token_iterator\").TokenIterator,f=function(){this.inherit(s,[\"braces\",\"parens\",\"string_dquotes\"]),this.inherit(o),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var s=n.getCursorPosition(),o=new u(r,s.row,s.column),f=o.getCurrentToken(),l=!1,e=JSON.parse(e).pop();if(f&&f.value===\">\"||e!==\"StartTag\")return;if(!f||!a(f,\"meta.tag\")&&(!a(f,\"text\")||!f.value.match(\"/\"))){do f=o.stepBackward();while(f&&(a(f,\"string\")||a(f,\"keyword.operator\")||a(f,\"entity.attribute-name\")||a(f,\"text\")))}else l=!0;var c=o.stepBackward();if(!f||!a(f,\"meta.tag\")||c!==null&&c.value.match(\"/\"))return;var h=f.value.substring(1);if(l)var h=h.substring(0,s.column-f.start);return{text:\"></\"+h+\">\",selection:[1,1]}}})};r.inherits(f,i),t.XQueryBehaviour=f}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/xquery\",[\"require\",\"exports\",\"module\",\"ace/worker/worker_client\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/xquery/xquery_lexer\",\"ace/range\",\"ace/mode/behaviour/xquery\",\"ace/mode/folding/cstyle\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"../worker/worker_client\").WorkerClient,i=e(\"../lib/oop\"),s=e(\"./text\").Mode,o=e(\"./text_highlight_rules\").TextHighlightRules,u=e(\"./xquery/xquery_lexer\").XQueryLexer,a=e(\"../range\").Range,f=e(\"./behaviour/xquery\").XQueryBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=e(\"../anchor\").Anchor,h=function(){this.$tokenizer=new u,this.$behaviour=new f,this.foldingRules=new l,this.$highlightRules=new o};i.inherits(h,s),function(){this.completer={getCompletions:function(e,t,n,r,i){if(!t.$worker)return i();t.$worker.emit(\"complete\",{data:{pos:n,prefix:r}}),t.$worker.on(\"complete\",function(e){i(null,e.data)})}},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=t.match(/\\s*(?:then|else|return|[{\\(]|<\\w+>)\\s*$/);return i&&(r+=n),r},this.checkOutdent=function(e,t,n){return/^\\s+$/.test(t)?/^\\s*[\\}\\)]/.test(n):!1},this.autoOutdent=function(e,t,n){var r=t.getLine(n),i=r.match(/^(\\s*[\\}\\)])/);if(!i)return 0;var s=i[1].length,o=t.findMatchingBracket({row:n,column:s});if(!o||o.row==n)return 0;var u=this.$getIndent(t.getLine(o.row));t.replace(new a(n,0,n,s-1),u)},this.toggleCommentLines=function(e,t,n,r){var i,s,o=!0,u=/^\\s*\\(:(.*):\\)/;for(i=n;i<=r;i++)if(!u.test(t.getLine(i))){o=!1;break}var f=new a(0,0,0,0);for(i=n;i<=r;i++)s=t.getLine(i),f.start.row=i,f.end.row=i,f.end.column=s.length,t.replace(f,o?s.match(u)[1]:\"(:\"+s+\":)\")},this.createWorker=function(e){var t=new r([\"ace\"],\"ace/mode/xquery_worker\",\"XQueryWorker\"),n=this;return t.attachToDocument(e.getDocument()),t.on(\"ok\",function(t){e.clearAnnotations()}),t.on(\"markers\",function(t){e.clearAnnotations(),n.addMarkers(t.data,e)}),t.on(\"highlight\",function(t){n.$tokenizer.tokens=t.data.tokens,n.$tokenizer.lines=e.getDocument().getAllLines();var r=Object.keys(n.$tokenizer.tokens);for(var i=0;i<r.length;i++){var s=parseInt(r[i]);delete e.bgTokenizer.lines[s],delete e.bgTokenizer.states[s],e.bgTokenizer.fireUpdateEvent(s,s)}}),t},this.removeMarkers=function(e){var t=e.getMarkers(!1);for(var n in t)t[n].clazz.indexOf(\"language_highlight_\")===0&&e.removeMarker(n);for(var r=0;r<e.markerAnchors.length;r++)e.markerAnchors[r].detach();e.markerAnchors=[]},this.addMarkers=function(e,t){var n=this;t.markerAnchors||(t.markerAnchors=[]),this.removeMarkers(t),t.languageAnnos=[],e.forEach(function(e){function u(i){r&&t.removeMarker(r),o.row=n.row;if(e.pos.sc!==undefined&&e.pos.ec!==undefined){var s=new a(e.pos.sl,e.pos.sc,e.pos.el,e.pos.ec);r=t.addMarker(s,\"language_highlight_\"+(e.type?e.type:\"default\"))}i&&t.setAnnotations(t.languageAnnos)}var n=new c(t.getDocument(),e.pos.sl,e.pos.sc||0);t.markerAnchors.push(n);var r,i=e.pos.ec-e.pos.sc,s=e.pos.el-e.pos.sl,o={guttertext:e.message,type:e.level||\"warning\",text:e.message};u(),n.on(\"change\",function(){u(!0)}),e.message&&t.languageAnnos.push(o)}),t.setAnnotations(t.languageAnnos)},this.$id=\"ace/mode/xquery\"}.call(h.prototype),t.Mode=h})"
  },
  {
    "path": "lib/src-min-noconflict/mode-yaml.js",
    "content": "ace.define(\"ace/mode/yaml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"list.markup\",regex:/^(?:-{3}|\\.{3})\\s*(?=#|$)/},{token:\"list.markup\",regex:/^\\s*[\\-?](?:$|\\s)/},{token:\"constant\",regex:\"!![\\\\w//]+\"},{token:\"constant.language\",regex:\"[&\\\\*][a-zA-Z0-9-_]+\"},{token:[\"meta.tag\",\"keyword\"],regex:/^(\\s*\\w.*?)(:(?:\\s+|$))/},{token:[\"meta.tag\",\"keyword\"],regex:/(\\w+?)(\\s*:(?:\\s+|$))/},{token:\"keyword.operator\",regex:\"<<\\\\w*:\\\\w*\"},{token:\"keyword.operator\",regex:\"-\\\\s*(?=[{])\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"[|>][-+\\\\d\\\\s]*$\",next:\"qqstring\"},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:/(\\b|[+\\-\\.])[\\d_]+(?:(?:\\.[\\d_]*)?(?:[eE][+\\-]?[\\d_]+)?)/},{token:\"constant.numeric\",regex:/[+\\-]?\\.inf\\b|NaN\\b|0x[\\dA-Fa-f_]+|0b[10_]+/},{token:\"constant.language.boolean\",regex:\"\\\\b(?:true|false|TRUE|FALSE|True|False|yes|no)\\\\b\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"}],qqstring:[{token:\"string\",regex:\"(?=(?:(?:\\\\\\\\.)|(?:[^:]))*?:)\",next:\"start\"},{token:\"string\",regex:\".+\"}]}};r.inherits(s,i),t.YamlHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/yaml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/yaml_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./yaml_highlight_rules\").YamlHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./folding/coffee\").FoldMode,a=function(){this.HighlightRules=s,this.$outdent=new o,this.foldingRules=new u,this.$behaviour=this.$defaultBehaviour};r.inherits(a,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if(e==\"start\"){var i=t.match(/^.*[\\{\\(\\[]\\s*$/);i&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/yaml\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/abap.js",
    "content": "ace.define(\"ace/snippets/abap\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"abap\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/abc.js",
    "content": "ace.define(\"ace/snippets/abc\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='\\nsnippet zupfnoter.print\\n\t%%%%hn.print {\"startpos\": ${1:pos_y}, \"t\":\"${2:title}\", \"v\":[${3:voices}], \"s\":[[${4:syncvoices}1,2]], \"f\":[${5:flowlines}],  \"sf\":[${6:subflowlines}], \"j\":[${7:jumplines}]}\\n\\nsnippet zupfnoter.note\\n\t%%%%hn.note {\"pos\": [${1:pos_x},${2:pos_y}], \"text\": \"${3:text}\", \"style\": \"${4:style}\"}\\n\\nsnippet zupfnoter.annotation\\n\t%%%%hn.annotation {\"id\": \"${1:id}\", \"pos\": [${2:pos}], \"text\": \"${3:text}\"}\\n\\nsnippet zupfnoter.lyrics\\n\t%%%%hn.lyrics {\"pos\": [${1:x_pos},${2:y_pos}]}\\n\\nsnippet zupfnoter.legend\\n\t%%%%hn.legend {\"pos\": [${1:x_pos},${2:y_pos}]}\\n\\n\\n\\nsnippet zupfnoter.target\\n\t\"^:${1:target}\"\\n\\nsnippet zupfnoter.goto\\n\t\"^@${1:target}@${2:distance}\"\\n\\nsnippet zupfnoter.annotationref\\n\t\"^#${1:target}\"\\n\\nsnippet zupfnoter.annotation\\n\t\"^!${1:text}@${2:x_offset},${3:y_offset}\"\\n\\n\\n',t.scope=\"abc\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/actionscript.js",
    "content": "ace.define(\"ace/snippets/actionscript\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='snippet main\\n\tpackage {\\n\t\timport flash.display.*;\\n\t\timport flash.Events.*;\\n\t\\n\t\tpublic class Main extends Sprite {\\n\t\t\tpublic function Main (\t) {\\n\t\t\t\ttrace(\"start\");\\n\t\t\t\tstage.scaleMode = StageScaleMode.NO_SCALE;\\n\t\t\t\tstage.addEventListener(Event.RESIZE, resizeListener);\\n\t\t\t}\\n\t\\n\t\t\tprivate function resizeListener (e:Event):void {\\n\t\t\t\ttrace(\"The application window changed size!\");\\n\t\t\t\ttrace(\"New width:  \" + stage.stageWidth);\\n\t\t\t\ttrace(\"New height: \" + stage.stageHeight);\\n\t\t\t}\\n\t\\n\t\t}\\n\t\\n\t}\\nsnippet class\\n\t${1:public|internal} class ${2:name} ${3:extends } {\\n\t\tpublic function $2 (\t) {\\n\t\t\t(\"start\");\\n\t\t}\\n\t}\\nsnippet all\\n\tpackage name {\\n\\n\t\t${1:public|internal|final} class ${2:name} ${3:extends } {\\n\t\t\tprivate|public| static const FOO = \"abc\";\\n\t\t\tprivate|public| static var BAR = \"abc\";\\n\\n\t\t\t// class initializer - no JIT !! one time setup\\n\t\t\tif Cababilities.os == \"Linux|MacOS\" {\\n\t\t\t\tFOO = \"other\";\\n\t\t\t}\\n\\n\t\t\t// constructor:\\n\t\t\tpublic function $2 (\t){\\n\t\t\t\tsuper2();\\n\t\t\t\ttrace(\"start\");\\n\t\t\t}\\n\t\t\tpublic function name (a, b...){\\n\t\t\t\tsuper.name(..);\\n\t\t\t\tlable:break\\n\t\t\t}\\n\t\t}\\n\t}\\n\\n\tfunction A(){\\n\t\t// A can only be accessed within this file\\n\t}\\nsnippet switch\\n\tswitch(${1}){\\n\t\tcase ${2}:\\n\t\t\t${3}\\n\t\tbreak;\\n\t\tdefault:\\n\t}\\nsnippet case\\n\t\tcase ${1}:\\n\t\t\t${2}\\n\t\tbreak;\\nsnippet package\\n\tpackage ${1:package}{\\n\t\t${2}\\n\t}\\nsnippet wh\\n\twhile ${1:cond}{\\n\t\t${2}\\n\t}\\nsnippet do\\n\tdo {\\n\t\t${2}\\n\t} while (${1:cond})\\nsnippet while\\n\twhile ${1:cond}{\\n\t\t${2}\\n\t}\\nsnippet for enumerate names\\n\tfor (${1:var} in ${2:object}){\\n\t\t${3}\\n\t}\\nsnippet for enumerate values\\n\tfor each (${1:var} in ${2:object}){\\n\t\t${3}\\n\t}\\nsnippet get_set\\n\tfunction get ${1:name} {\\n\t\treturn ${2}\\n\t}\\n\tfunction set $1 (newValue) {\\n\t\t${3}\\n\t}\\nsnippet interface\\n\tinterface name {\\n\t\tfunction method(${1}):${2:returntype};\\n\t}\\nsnippet try\\n\ttry {\\n\t\t${1}\\n\t} catch (error:ErrorType) {\\n\t\t${2}\\n\t} finally {\\n\t\t${3}\\n\t}\\n# For Loop (same as c.snippet)\\nsnippet for for (..) {..}\\n\tfor (${2:i} = 0; $2 < ${1:count}; $2${3:++}) {\\n\t\t${4:/* code */}\\n\t}\\n# Custom For Loop\\nsnippet forr\\n\tfor (${1:i} = ${2:0}; ${3:$1 < 10}; $1${4:++}) {\\n\t\t${5:/* code */}\\n\t}\\n# If Condition\\nsnippet if\\n\tif (${1:/* condition */}) {\\n\t\t${2:/* code */}\\n\t}\\nsnippet el\\n\telse {\\n\t\t${1}\\n\t}\\n# Ternary conditional\\nsnippet t\\n\t${1:/* condition */} ? ${2:a} : ${3:b}\\nsnippet fun\\n\tfunction ${1:function_name}(${2})${3}\\n\t{\\n\t\t${4:/* code */}\\n\t}\\n# FlxSprite (usefull when using the flixel library)\\nsnippet FlxSprite\\n\tpackage\\n\t{\\n\t\timport org.flixel.*\\n\\n\t\tpublic class ${1:ClassName} extends ${2:FlxSprite}\\n\t\t{\\n\t\t\tpublic function $1(${3: X:Number, Y:Number}):void\\n\t\t\t{\\n\t\t\t\tsuper(X,Y);\\n\t\t\t\t${4: //code...}\\n\t\t\t}\\n\\n\t\t\toverride public function update():void\\n\t\t\t{\\n\t\t\t\tsuper.update();\\n\t\t\t\t${5: //code...}\\n\t\t\t}\\n\t\t}\\n\t}\\n\\n',t.scope=\"actionscript\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/ada.js",
    "content": "ace.define(\"ace/snippets/ada\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"ada\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/apache_conf.js",
    "content": "ace.define(\"ace/snippets/apache_conf\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"apache_conf\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/applescript.js",
    "content": "ace.define(\"ace/snippets/applescript\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"applescript\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/asciidoc.js",
    "content": "ace.define(\"ace/snippets/asciidoc\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"asciidoc\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/assembly_x86.js",
    "content": "ace.define(\"ace/snippets/assembly_x86\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"assembly_x86\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/autohotkey.js",
    "content": "ace.define(\"ace/snippets/autohotkey\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"autohotkey\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/batchfile.js",
    "content": "ace.define(\"ace/snippets/batchfile\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"batchfile\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/bro.js",
    "content": "ace.define(\"ace/snippets/bro\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/c9search.js",
    "content": "ace.define(\"ace/snippets/c9search\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"c9search\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/c_cpp.js",
    "content": "ace.define(\"ace/snippets/c_cpp\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"## STL Collections\\n# std::array\\nsnippet array\\n\tstd::array<${1:T}, ${2:N}> ${3};${4}\\n# std::vector\\nsnippet vector\\n\tstd::vector<${1:T}> ${2};${3}\\n# std::deque\\nsnippet deque\\n\tstd::deque<${1:T}> ${2};${3}\\n# std::forward_list\\nsnippet flist\\n\tstd::forward_list<${1:T}> ${2};${3}\\n# std::list\\nsnippet list\\n\tstd::list<${1:T}> ${2};${3}\\n# std::set\\nsnippet set\\n\tstd::set<${1:T}> ${2};${3}\\n# std::map\\nsnippet map\\n\tstd::map<${1:Key}, ${2:T}> ${3};${4}\\n# std::multiset\\nsnippet mset\\n\tstd::multiset<${1:T}> ${2};${3}\\n# std::multimap\\nsnippet mmap\\n\tstd::multimap<${1:Key}, ${2:T}> ${3};${4}\\n# std::unordered_set\\nsnippet uset\\n\tstd::unordered_set<${1:T}> ${2};${3}\\n# std::unordered_map\\nsnippet umap\\n\tstd::unordered_map<${1:Key}, ${2:T}> ${3};${4}\\n# std::unordered_multiset\\nsnippet umset\\n\tstd::unordered_multiset<${1:T}> ${2};${3}\\n# std::unordered_multimap\\nsnippet ummap\\n\tstd::unordered_multimap<${1:Key}, ${2:T}> ${3};${4}\\n# std::stack\\nsnippet stack\\n\tstd::stack<${1:T}> ${2};${3}\\n# std::queue\\nsnippet queue\\n\tstd::queue<${1:T}> ${2};${3}\\n# std::priority_queue\\nsnippet pqueue\\n\tstd::priority_queue<${1:T}> ${2};${3}\\n##\\n## Access Modifiers\\n# private\\nsnippet pri\\n\tprivate\\n# protected\\nsnippet pro\\n\tprotected\\n# public\\nsnippet pub\\n\tpublic\\n# friend\\nsnippet fr\\n\tfriend\\n# mutable\\nsnippet mu\\n\tmutable\\n## \\n## Class\\n# class\\nsnippet cl\\n\tclass ${1:`Filename('$1', 'name')`} \\n\t{\\n\tpublic:\\n\t\t$1(${2});\\n\t\t~$1();\\n\\n\tprivate:\\n\t\t${3:/* data */}\\n\t};\\n# member function implementation\\nsnippet mfun\\n\t${4:void} ${1:`Filename('$1', 'ClassName')`}::${2:memberFunction}(${3}) {\\n\t\t${5:/* code */}\\n\t}\\n# namespace\\nsnippet ns\\n\tnamespace ${1:`Filename('', 'my')`} {\\n\t\t${2}\\n\t} /* namespace $1 */\\n##\\n## Input/Output\\n# std::cout\\nsnippet cout\\n\tstd::cout << ${1} << std::endl;${2}\\n# std::cin\\nsnippet cin\\n\tstd::cin >> ${1};${2}\\n##\\n## Iteration\\n# for i \\nsnippet fori\\n\tfor (int ${2:i} = 0; $2 < ${1:count}; $2${3:++}) {\\n\t\t${4:/* code */}\\n\t}${5}\\n\\n# foreach\\nsnippet fore\\n\tfor (${1:auto} ${2:i} : ${3:container}) {\\n\t\t${4:/* code */}\\n\t}${5}\\n# iterator\\nsnippet iter\\n\tfor (${1:std::vector}<${2:type}>::${3:const_iterator} ${4:i} = ${5:container}.begin(); $4 != $5.end(); ++$4) {\\n\t\t${6}\\n\t}${7}\\n\\n# auto iterator\\nsnippet itera\\n\tfor (auto ${1:i} = $1.begin(); $1 != $1.end(); ++$1) {\\n\t\t${2:std::cout << *$1 << std::endl;}\\n\t}${3}\\n##\\n## Lambdas\\n# lamda (one line)\\nsnippet ld\\n\t[${1}](${2}){${3:/* code */}}${4}\\n# lambda (multi-line)\\nsnippet lld\\n\t[${1}](${2}){\\n\t\t${3:/* code */}\\n\t}${4}\\n\",t.scope=\"c_cpp\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/cirru.js",
    "content": "ace.define(\"ace/snippets/cirru\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"cirru\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/clojure.js",
    "content": "ace.define(\"ace/snippets/clojure\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='snippet comm\\n\t(comment\\n\t  ${1}\\n\t  )\\nsnippet condp\\n\t(condp ${1:pred} ${2:expr}\\n\t  ${3})\\nsnippet def\\n\t(def ${1})\\nsnippet defm\\n\t(defmethod ${1:multifn} \"${2:doc-string}\" ${3:dispatch-val} [${4:args}]\\n\t  ${5})\\nsnippet defmm\\n\t(defmulti ${1:name} \"${2:doc-string}\" ${3:dispatch-fn})\\nsnippet defma\\n\t(defmacro ${1:name} \"${2:doc-string}\" ${3:dispatch-fn})\\nsnippet defn\\n\t(defn ${1:name} \"${2:doc-string}\" [${3:arg-list}]\\n\t  ${4})\\nsnippet defp\\n\t(defprotocol ${1:name}\\n\t  ${2})\\nsnippet defr\\n\t(defrecord ${1:name} [${2:fields}]\\n\t  ${3:protocol}\\n\t  ${4})\\nsnippet deft\\n\t(deftest ${1:name}\\n\t    (is (= ${2:assertion})))\\n\t  ${3})\\nsnippet is\\n\t(is (= ${1} ${2}))\\nsnippet defty\\n\t(deftype ${1:Name} [${2:fields}]\\n\t  ${3:Protocol}\\n\t  ${4})\\nsnippet doseq\\n\t(doseq [${1:elem} ${2:coll}]\\n\t  ${3})\\nsnippet fn\\n\t(fn [${1:arg-list}] ${2})\\nsnippet if\\n\t(if ${1:test-expr}\\n\t  ${2:then-expr}\\n\t  ${3:else-expr})\\nsnippet if-let \\n\t(if-let [${1:result} ${2:test-expr}]\\n\t\t(${3:then-expr} $1)\\n\t\t(${4:else-expr}))\\nsnippet imp\\n\t(:import [${1:package}])\\n\t& {:keys [${1:keys}] :or {${2:defaults}}}\\nsnippet let\\n\t(let [${1:name} ${2:expr}]\\n\t\t${3})\\nsnippet letfn\\n\t(letfn [(${1:name) [${2:args}]\\n\t          ${3})])\\nsnippet map\\n\t(map ${1:func} ${2:coll})\\nsnippet mapl\\n\t(map #(${1:lambda}) ${2:coll})\\nsnippet met\\n\t(${1:name} [${2:this} ${3:args}]\\n\t  ${4})\\nsnippet ns\\n\t(ns ${1:name}\\n\t  ${2})\\nsnippet dotimes\\n\t(dotimes [_ 10]\\n\t  (time\\n\t    (dotimes [_ ${1:times}]\\n\t      ${2})))\\nsnippet pmethod\\n\t(${1:name} [${2:this} ${3:args}])\\nsnippet refer\\n\t(:refer-clojure :exclude [${1}])\\nsnippet require\\n\t(:require [${1:namespace} :as [${2}]])\\nsnippet use\\n\t(:use [${1:namespace} :only [${2}]])\\nsnippet print\\n\t(println ${1})\\nsnippet reduce\\n\t(reduce ${1:(fn [p n] ${3})} ${2})\\nsnippet when\\n\t(when ${1:test} ${2:body})\\nsnippet when-let\\n\t(when-let [${1:result} ${2:test}]\\n\t\t${3:body})\\n',t.scope=\"clojure\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/cobol.js",
    "content": "ace.define(\"ace/snippets/cobol\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"cobol\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/coffee.js",
    "content": "ace.define(\"ace/snippets/coffee\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"# Closure loop\\nsnippet forindo\\n\tfor ${1:name} in ${2:array}\\n\t\tdo ($1) ->\\n\t\t\t${3:// body}\\n# Array comprehension\\nsnippet fora\\n\tfor ${1:name} in ${2:array}\\n\t\t${3:// body...}\\n# Object comprehension\\nsnippet foro\\n\tfor ${1:key}, ${2:value} of ${3:object}\\n\t\t${4:// body...}\\n# Range comprehension (inclusive)\\nsnippet forr\\n\tfor ${1:name} in [${2:start}..${3:finish}]\\n\t\t${4:// body...}\\nsnippet forrb\\n\tfor ${1:name} in [${2:start}..${3:finish}] by ${4:step}\\n\t\t${5:// body...}\\n# Range comprehension (exclusive)\\nsnippet forrex\\n\tfor ${1:name} in [${2:start}...${3:finish}]\\n\t\t${4:// body...}\\nsnippet forrexb\\n\tfor ${1:name} in [${2:start}...${3:finish}] by ${4:step}\\n\t\t${5:// body...}\\n# Function\\nsnippet fun\\n\t(${1:args}) ->\\n\t\t${2:// body...}\\n# Function (bound)\\nsnippet bfun\\n\t(${1:args}) =>\\n\t\t${2:// body...}\\n# Class\\nsnippet cla class ..\\n\tclass ${1:`substitute(Filename(), '\\\\(_\\\\|^\\\\)\\\\(.\\\\)', '\\\\u\\\\2', 'g')`}\\n\t\t${2}\\nsnippet cla class .. constructor: ..\\n\tclass ${1:`substitute(Filename(), '\\\\(_\\\\|^\\\\)\\\\(.\\\\)', '\\\\u\\\\2', 'g')`}\\n\t\tconstructor: (${2:args}) ->\\n\t\t\t${3}\\n\\n\t\t${4}\\nsnippet cla class .. extends ..\\n\tclass ${1:`substitute(Filename(), '\\\\(_\\\\|^\\\\)\\\\(.\\\\)', '\\\\u\\\\2', 'g')`} extends ${2:ParentClass}\\n\t\t${3}\\nsnippet cla class .. extends .. constructor: ..\\n\tclass ${1:`substitute(Filename(), '\\\\(_\\\\|^\\\\)\\\\(.\\\\)', '\\\\u\\\\2', 'g')`} extends ${2:ParentClass}\\n\t\tconstructor: (${3:args}) ->\\n\t\t\t${4}\\n\\n\t\t${5}\\n# If\\nsnippet if\\n\tif ${1:condition}\\n\t\t${2:// body...}\\n# If __ Else\\nsnippet ife\\n\tif ${1:condition}\\n\t\t${2:// body...}\\n\telse\\n\t\t${3:// body...}\\n# Else if\\nsnippet elif\\n\telse if ${1:condition}\\n\t\t${2:// body...}\\n# Ternary If\\nsnippet ifte\\n\tif ${1:condition} then ${2:value} else ${3:other}\\n# Unless\\nsnippet unl\\n\t${1:action} unless ${2:condition}\\n# Switch\\nsnippet swi\\n\tswitch ${1:object}\\n\t\twhen ${2:value}\\n\t\t\t${3:// body...}\\n\\n# Log\\nsnippet log\\n\tconsole.log ${1}\\n# Try __ Catch\\nsnippet try\\n\ttry\\n\t\t${1}\\n\tcatch ${2:error}\\n\t\t${3}\\n# Require\\nsnippet req\\n\t${2:$1} = require '${1:sys}'${3}\\n# Export\\nsnippet exp\\n\t${1:root} = exports ? this\\n\",t.scope=\"coffee\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/coldfusion.js",
    "content": "ace.define(\"ace/snippets/coldfusion\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"coldfusion\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/csharp.js",
    "content": "ace.define(\"ace/snippets/csharp\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"csharp\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/css.js",
    "content": "ace.define(\"ace/snippets/css\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"snippet .\\n\t${1} {\\n\t\t${2}\\n\t}\\nsnippet !\\n\t !important\\nsnippet bdi:m+\\n\t-moz-border-image: url(${1}) ${2:0} ${3:0} ${4:0} ${5:0} ${6:stretch} ${7:stretch};\\nsnippet bdi:m\\n\t-moz-border-image: ${1};\\nsnippet bdrz:m\\n\t-moz-border-radius: ${1};\\nsnippet bxsh:m+\\n\t-moz-box-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\\nsnippet bxsh:m\\n\t-moz-box-shadow: ${1};\\nsnippet bdi:w+\\n\t-webkit-border-image: url(${1}) ${2:0} ${3:0} ${4:0} ${5:0} ${6:stretch} ${7:stretch};\\nsnippet bdi:w\\n\t-webkit-border-image: ${1};\\nsnippet bdrz:w\\n\t-webkit-border-radius: ${1};\\nsnippet bxsh:w+\\n\t-webkit-box-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\\nsnippet bxsh:w\\n\t-webkit-box-shadow: ${1};\\nsnippet @f\\n\t@font-face {\\n\t\tfont-family: ${1};\\n\t\tsrc: url(${2});\\n\t}\\nsnippet @i\\n\t@import url(${1});\\nsnippet @m\\n\t@media ${1:print} {\\n\t\t${2}\\n\t}\\nsnippet bg+\\n\tbackground: #${1:FFF} url(${2}) ${3:0} ${4:0} ${5:no-repeat};\\nsnippet bga\\n\tbackground-attachment: ${1};\\nsnippet bga:f\\n\tbackground-attachment: fixed;\\nsnippet bga:s\\n\tbackground-attachment: scroll;\\nsnippet bgbk\\n\tbackground-break: ${1};\\nsnippet bgbk:bb\\n\tbackground-break: bounding-box;\\nsnippet bgbk:c\\n\tbackground-break: continuous;\\nsnippet bgbk:eb\\n\tbackground-break: each-box;\\nsnippet bgcp\\n\tbackground-clip: ${1};\\nsnippet bgcp:bb\\n\tbackground-clip: border-box;\\nsnippet bgcp:cb\\n\tbackground-clip: content-box;\\nsnippet bgcp:nc\\n\tbackground-clip: no-clip;\\nsnippet bgcp:pb\\n\tbackground-clip: padding-box;\\nsnippet bgc\\n\tbackground-color: #${1:FFF};\\nsnippet bgc:t\\n\tbackground-color: transparent;\\nsnippet bgi\\n\tbackground-image: url(${1});\\nsnippet bgi:n\\n\tbackground-image: none;\\nsnippet bgo\\n\tbackground-origin: ${1};\\nsnippet bgo:bb\\n\tbackground-origin: border-box;\\nsnippet bgo:cb\\n\tbackground-origin: content-box;\\nsnippet bgo:pb\\n\tbackground-origin: padding-box;\\nsnippet bgpx\\n\tbackground-position-x: ${1};\\nsnippet bgpy\\n\tbackground-position-y: ${1};\\nsnippet bgp\\n\tbackground-position: ${1:0} ${2:0};\\nsnippet bgr\\n\tbackground-repeat: ${1};\\nsnippet bgr:n\\n\tbackground-repeat: no-repeat;\\nsnippet bgr:x\\n\tbackground-repeat: repeat-x;\\nsnippet bgr:y\\n\tbackground-repeat: repeat-y;\\nsnippet bgr:r\\n\tbackground-repeat: repeat;\\nsnippet bgz\\n\tbackground-size: ${1};\\nsnippet bgz:a\\n\tbackground-size: auto;\\nsnippet bgz:ct\\n\tbackground-size: contain;\\nsnippet bgz:cv\\n\tbackground-size: cover;\\nsnippet bg\\n\tbackground: ${1};\\nsnippet bg:ie\\n\tfilter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='${1}',sizingMethod='${2:crop}');\\nsnippet bg:n\\n\tbackground: none;\\nsnippet bd+\\n\tborder: ${1:1px} ${2:solid} #${3:000};\\nsnippet bdb+\\n\tborder-bottom: ${1:1px} ${2:solid} #${3:000};\\nsnippet bdbc\\n\tborder-bottom-color: #${1:000};\\nsnippet bdbi\\n\tborder-bottom-image: url(${1});\\nsnippet bdbi:n\\n\tborder-bottom-image: none;\\nsnippet bdbli\\n\tborder-bottom-left-image: url(${1});\\nsnippet bdbli:c\\n\tborder-bottom-left-image: continue;\\nsnippet bdbli:n\\n\tborder-bottom-left-image: none;\\nsnippet bdblrz\\n\tborder-bottom-left-radius: ${1};\\nsnippet bdbri\\n\tborder-bottom-right-image: url(${1});\\nsnippet bdbri:c\\n\tborder-bottom-right-image: continue;\\nsnippet bdbri:n\\n\tborder-bottom-right-image: none;\\nsnippet bdbrrz\\n\tborder-bottom-right-radius: ${1};\\nsnippet bdbs\\n\tborder-bottom-style: ${1};\\nsnippet bdbs:n\\n\tborder-bottom-style: none;\\nsnippet bdbw\\n\tborder-bottom-width: ${1};\\nsnippet bdb\\n\tborder-bottom: ${1};\\nsnippet bdb:n\\n\tborder-bottom: none;\\nsnippet bdbk\\n\tborder-break: ${1};\\nsnippet bdbk:c\\n\tborder-break: close;\\nsnippet bdcl\\n\tborder-collapse: ${1};\\nsnippet bdcl:c\\n\tborder-collapse: collapse;\\nsnippet bdcl:s\\n\tborder-collapse: separate;\\nsnippet bdc\\n\tborder-color: #${1:000};\\nsnippet bdci\\n\tborder-corner-image: url(${1});\\nsnippet bdci:c\\n\tborder-corner-image: continue;\\nsnippet bdci:n\\n\tborder-corner-image: none;\\nsnippet bdf\\n\tborder-fit: ${1};\\nsnippet bdf:c\\n\tborder-fit: clip;\\nsnippet bdf:of\\n\tborder-fit: overwrite;\\nsnippet bdf:ow\\n\tborder-fit: overwrite;\\nsnippet bdf:r\\n\tborder-fit: repeat;\\nsnippet bdf:sc\\n\tborder-fit: scale;\\nsnippet bdf:sp\\n\tborder-fit: space;\\nsnippet bdf:st\\n\tborder-fit: stretch;\\nsnippet bdi\\n\tborder-image: url(${1}) ${2:0} ${3:0} ${4:0} ${5:0} ${6:stretch} ${7:stretch};\\nsnippet bdi:n\\n\tborder-image: none;\\nsnippet bdl+\\n\tborder-left: ${1:1px} ${2:solid} #${3:000};\\nsnippet bdlc\\n\tborder-left-color: #${1:000};\\nsnippet bdli\\n\tborder-left-image: url(${1});\\nsnippet bdli:n\\n\tborder-left-image: none;\\nsnippet bdls\\n\tborder-left-style: ${1};\\nsnippet bdls:n\\n\tborder-left-style: none;\\nsnippet bdlw\\n\tborder-left-width: ${1};\\nsnippet bdl\\n\tborder-left: ${1};\\nsnippet bdl:n\\n\tborder-left: none;\\nsnippet bdlt\\n\tborder-length: ${1};\\nsnippet bdlt:a\\n\tborder-length: auto;\\nsnippet bdrz\\n\tborder-radius: ${1};\\nsnippet bdr+\\n\tborder-right: ${1:1px} ${2:solid} #${3:000};\\nsnippet bdrc\\n\tborder-right-color: #${1:000};\\nsnippet bdri\\n\tborder-right-image: url(${1});\\nsnippet bdri:n\\n\tborder-right-image: none;\\nsnippet bdrs\\n\tborder-right-style: ${1};\\nsnippet bdrs:n\\n\tborder-right-style: none;\\nsnippet bdrw\\n\tborder-right-width: ${1};\\nsnippet bdr\\n\tborder-right: ${1};\\nsnippet bdr:n\\n\tborder-right: none;\\nsnippet bdsp\\n\tborder-spacing: ${1};\\nsnippet bds\\n\tborder-style: ${1};\\nsnippet bds:ds\\n\tborder-style: dashed;\\nsnippet bds:dtds\\n\tborder-style: dot-dash;\\nsnippet bds:dtdtds\\n\tborder-style: dot-dot-dash;\\nsnippet bds:dt\\n\tborder-style: dotted;\\nsnippet bds:db\\n\tborder-style: double;\\nsnippet bds:g\\n\tborder-style: groove;\\nsnippet bds:h\\n\tborder-style: hidden;\\nsnippet bds:i\\n\tborder-style: inset;\\nsnippet bds:n\\n\tborder-style: none;\\nsnippet bds:o\\n\tborder-style: outset;\\nsnippet bds:r\\n\tborder-style: ridge;\\nsnippet bds:s\\n\tborder-style: solid;\\nsnippet bds:w\\n\tborder-style: wave;\\nsnippet bdt+\\n\tborder-top: ${1:1px} ${2:solid} #${3:000};\\nsnippet bdtc\\n\tborder-top-color: #${1:000};\\nsnippet bdti\\n\tborder-top-image: url(${1});\\nsnippet bdti:n\\n\tborder-top-image: none;\\nsnippet bdtli\\n\tborder-top-left-image: url(${1});\\nsnippet bdtli:c\\n\tborder-corner-image: continue;\\nsnippet bdtli:n\\n\tborder-corner-image: none;\\nsnippet bdtlrz\\n\tborder-top-left-radius: ${1};\\nsnippet bdtri\\n\tborder-top-right-image: url(${1});\\nsnippet bdtri:c\\n\tborder-top-right-image: continue;\\nsnippet bdtri:n\\n\tborder-top-right-image: none;\\nsnippet bdtrrz\\n\tborder-top-right-radius: ${1};\\nsnippet bdts\\n\tborder-top-style: ${1};\\nsnippet bdts:n\\n\tborder-top-style: none;\\nsnippet bdtw\\n\tborder-top-width: ${1};\\nsnippet bdt\\n\tborder-top: ${1};\\nsnippet bdt:n\\n\tborder-top: none;\\nsnippet bdw\\n\tborder-width: ${1};\\nsnippet bd\\n\tborder: ${1};\\nsnippet bd:n\\n\tborder: none;\\nsnippet b\\n\tbottom: ${1};\\nsnippet b:a\\n\tbottom: auto;\\nsnippet bxsh+\\n\tbox-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\\nsnippet bxsh\\n\tbox-shadow: ${1};\\nsnippet bxsh:n\\n\tbox-shadow: none;\\nsnippet bxz\\n\tbox-sizing: ${1};\\nsnippet bxz:bb\\n\tbox-sizing: border-box;\\nsnippet bxz:cb\\n\tbox-sizing: content-box;\\nsnippet cps\\n\tcaption-side: ${1};\\nsnippet cps:b\\n\tcaption-side: bottom;\\nsnippet cps:t\\n\tcaption-side: top;\\nsnippet cl\\n\tclear: ${1};\\nsnippet cl:b\\n\tclear: both;\\nsnippet cl:l\\n\tclear: left;\\nsnippet cl:n\\n\tclear: none;\\nsnippet cl:r\\n\tclear: right;\\nsnippet cp\\n\tclip: ${1};\\nsnippet cp:a\\n\tclip: auto;\\nsnippet cp:r\\n\tclip: rect(${1:0} ${2:0} ${3:0} ${4:0});\\nsnippet c\\n\tcolor: #${1:000};\\nsnippet ct\\n\tcontent: ${1};\\nsnippet ct:a\\n\tcontent: attr(${1});\\nsnippet ct:cq\\n\tcontent: close-quote;\\nsnippet ct:c\\n\tcontent: counter(${1});\\nsnippet ct:cs\\n\tcontent: counters(${1});\\nsnippet ct:ncq\\n\tcontent: no-close-quote;\\nsnippet ct:noq\\n\tcontent: no-open-quote;\\nsnippet ct:n\\n\tcontent: normal;\\nsnippet ct:oq\\n\tcontent: open-quote;\\nsnippet coi\\n\tcounter-increment: ${1};\\nsnippet cor\\n\tcounter-reset: ${1};\\nsnippet cur\\n\tcursor: ${1};\\nsnippet cur:a\\n\tcursor: auto;\\nsnippet cur:c\\n\tcursor: crosshair;\\nsnippet cur:d\\n\tcursor: default;\\nsnippet cur:ha\\n\tcursor: hand;\\nsnippet cur:he\\n\tcursor: help;\\nsnippet cur:m\\n\tcursor: move;\\nsnippet cur:p\\n\tcursor: pointer;\\nsnippet cur:t\\n\tcursor: text;\\nsnippet d\\n\tdisplay: ${1};\\nsnippet d:mib\\n\tdisplay: -moz-inline-box;\\nsnippet d:mis\\n\tdisplay: -moz-inline-stack;\\nsnippet d:b\\n\tdisplay: block;\\nsnippet d:cp\\n\tdisplay: compact;\\nsnippet d:ib\\n\tdisplay: inline-block;\\nsnippet d:itb\\n\tdisplay: inline-table;\\nsnippet d:i\\n\tdisplay: inline;\\nsnippet d:li\\n\tdisplay: list-item;\\nsnippet d:n\\n\tdisplay: none;\\nsnippet d:ri\\n\tdisplay: run-in;\\nsnippet d:tbcp\\n\tdisplay: table-caption;\\nsnippet d:tbc\\n\tdisplay: table-cell;\\nsnippet d:tbclg\\n\tdisplay: table-column-group;\\nsnippet d:tbcl\\n\tdisplay: table-column;\\nsnippet d:tbfg\\n\tdisplay: table-footer-group;\\nsnippet d:tbhg\\n\tdisplay: table-header-group;\\nsnippet d:tbrg\\n\tdisplay: table-row-group;\\nsnippet d:tbr\\n\tdisplay: table-row;\\nsnippet d:tb\\n\tdisplay: table;\\nsnippet ec\\n\tempty-cells: ${1};\\nsnippet ec:h\\n\tempty-cells: hide;\\nsnippet ec:s\\n\tempty-cells: show;\\nsnippet exp\\n\texpression()\\nsnippet fl\\n\tfloat: ${1};\\nsnippet fl:l\\n\tfloat: left;\\nsnippet fl:n\\n\tfloat: none;\\nsnippet fl:r\\n\tfloat: right;\\nsnippet f+\\n\tfont: ${1:1em} ${2:Arial},${3:sans-serif};\\nsnippet fef\\n\tfont-effect: ${1};\\nsnippet fef:eb\\n\tfont-effect: emboss;\\nsnippet fef:eg\\n\tfont-effect: engrave;\\nsnippet fef:n\\n\tfont-effect: none;\\nsnippet fef:o\\n\tfont-effect: outline;\\nsnippet femp\\n\tfont-emphasize-position: ${1};\\nsnippet femp:a\\n\tfont-emphasize-position: after;\\nsnippet femp:b\\n\tfont-emphasize-position: before;\\nsnippet fems\\n\tfont-emphasize-style: ${1};\\nsnippet fems:ac\\n\tfont-emphasize-style: accent;\\nsnippet fems:c\\n\tfont-emphasize-style: circle;\\nsnippet fems:ds\\n\tfont-emphasize-style: disc;\\nsnippet fems:dt\\n\tfont-emphasize-style: dot;\\nsnippet fems:n\\n\tfont-emphasize-style: none;\\nsnippet fem\\n\tfont-emphasize: ${1};\\nsnippet ff\\n\tfont-family: ${1};\\nsnippet ff:c\\n\tfont-family: ${1:'Monotype Corsiva','Comic Sans MS'},cursive;\\nsnippet ff:f\\n\tfont-family: ${1:Capitals,Impact},fantasy;\\nsnippet ff:m\\n\tfont-family: ${1:Monaco,'Courier New'},monospace;\\nsnippet ff:ss\\n\tfont-family: ${1:Helvetica,Arial},sans-serif;\\nsnippet ff:s\\n\tfont-family: ${1:Georgia,'Times New Roman'},serif;\\nsnippet fza\\n\tfont-size-adjust: ${1};\\nsnippet fza:n\\n\tfont-size-adjust: none;\\nsnippet fz\\n\tfont-size: ${1};\\nsnippet fsm\\n\tfont-smooth: ${1};\\nsnippet fsm:aw\\n\tfont-smooth: always;\\nsnippet fsm:a\\n\tfont-smooth: auto;\\nsnippet fsm:n\\n\tfont-smooth: never;\\nsnippet fst\\n\tfont-stretch: ${1};\\nsnippet fst:c\\n\tfont-stretch: condensed;\\nsnippet fst:e\\n\tfont-stretch: expanded;\\nsnippet fst:ec\\n\tfont-stretch: extra-condensed;\\nsnippet fst:ee\\n\tfont-stretch: extra-expanded;\\nsnippet fst:n\\n\tfont-stretch: normal;\\nsnippet fst:sc\\n\tfont-stretch: semi-condensed;\\nsnippet fst:se\\n\tfont-stretch: semi-expanded;\\nsnippet fst:uc\\n\tfont-stretch: ultra-condensed;\\nsnippet fst:ue\\n\tfont-stretch: ultra-expanded;\\nsnippet fs\\n\tfont-style: ${1};\\nsnippet fs:i\\n\tfont-style: italic;\\nsnippet fs:n\\n\tfont-style: normal;\\nsnippet fs:o\\n\tfont-style: oblique;\\nsnippet fv\\n\tfont-variant: ${1};\\nsnippet fv:n\\n\tfont-variant: normal;\\nsnippet fv:sc\\n\tfont-variant: small-caps;\\nsnippet fw\\n\tfont-weight: ${1};\\nsnippet fw:b\\n\tfont-weight: bold;\\nsnippet fw:br\\n\tfont-weight: bolder;\\nsnippet fw:lr\\n\tfont-weight: lighter;\\nsnippet fw:n\\n\tfont-weight: normal;\\nsnippet f\\n\tfont: ${1};\\nsnippet h\\n\theight: ${1};\\nsnippet h:a\\n\theight: auto;\\nsnippet l\\n\tleft: ${1};\\nsnippet l:a\\n\tleft: auto;\\nsnippet lts\\n\tletter-spacing: ${1};\\nsnippet lh\\n\tline-height: ${1};\\nsnippet lisi\\n\tlist-style-image: url(${1});\\nsnippet lisi:n\\n\tlist-style-image: none;\\nsnippet lisp\\n\tlist-style-position: ${1};\\nsnippet lisp:i\\n\tlist-style-position: inside;\\nsnippet lisp:o\\n\tlist-style-position: outside;\\nsnippet list\\n\tlist-style-type: ${1};\\nsnippet list:c\\n\tlist-style-type: circle;\\nsnippet list:dclz\\n\tlist-style-type: decimal-leading-zero;\\nsnippet list:dc\\n\tlist-style-type: decimal;\\nsnippet list:d\\n\tlist-style-type: disc;\\nsnippet list:lr\\n\tlist-style-type: lower-roman;\\nsnippet list:n\\n\tlist-style-type: none;\\nsnippet list:s\\n\tlist-style-type: square;\\nsnippet list:ur\\n\tlist-style-type: upper-roman;\\nsnippet lis\\n\tlist-style: ${1};\\nsnippet lis:n\\n\tlist-style: none;\\nsnippet mb\\n\tmargin-bottom: ${1};\\nsnippet mb:a\\n\tmargin-bottom: auto;\\nsnippet ml\\n\tmargin-left: ${1};\\nsnippet ml:a\\n\tmargin-left: auto;\\nsnippet mr\\n\tmargin-right: ${1};\\nsnippet mr:a\\n\tmargin-right: auto;\\nsnippet mt\\n\tmargin-top: ${1};\\nsnippet mt:a\\n\tmargin-top: auto;\\nsnippet m\\n\tmargin: ${1};\\nsnippet m:4\\n\tmargin: ${1:0} ${2:0} ${3:0} ${4:0};\\nsnippet m:3\\n\tmargin: ${1:0} ${2:0} ${3:0};\\nsnippet m:2\\n\tmargin: ${1:0} ${2:0};\\nsnippet m:0\\n\tmargin: 0;\\nsnippet m:a\\n\tmargin: auto;\\nsnippet mah\\n\tmax-height: ${1};\\nsnippet mah:n\\n\tmax-height: none;\\nsnippet maw\\n\tmax-width: ${1};\\nsnippet maw:n\\n\tmax-width: none;\\nsnippet mih\\n\tmin-height: ${1};\\nsnippet miw\\n\tmin-width: ${1};\\nsnippet op\\n\topacity: ${1};\\nsnippet op:ie\\n\tfilter: progid:DXImageTransform.Microsoft.Alpha(Opacity=${1:100});\\nsnippet op:ms\\n\t-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=${1:100})';\\nsnippet orp\\n\torphans: ${1};\\nsnippet o+\\n\toutline: ${1:1px} ${2:solid} #${3:000};\\nsnippet oc\\n\toutline-color: ${1:#000};\\nsnippet oc:i\\n\toutline-color: invert;\\nsnippet oo\\n\toutline-offset: ${1};\\nsnippet os\\n\toutline-style: ${1};\\nsnippet ow\\n\toutline-width: ${1};\\nsnippet o\\n\toutline: ${1};\\nsnippet o:n\\n\toutline: none;\\nsnippet ovs\\n\toverflow-style: ${1};\\nsnippet ovs:a\\n\toverflow-style: auto;\\nsnippet ovs:mq\\n\toverflow-style: marquee;\\nsnippet ovs:mv\\n\toverflow-style: move;\\nsnippet ovs:p\\n\toverflow-style: panner;\\nsnippet ovs:s\\n\toverflow-style: scrollbar;\\nsnippet ovx\\n\toverflow-x: ${1};\\nsnippet ovx:a\\n\toverflow-x: auto;\\nsnippet ovx:h\\n\toverflow-x: hidden;\\nsnippet ovx:s\\n\toverflow-x: scroll;\\nsnippet ovx:v\\n\toverflow-x: visible;\\nsnippet ovy\\n\toverflow-y: ${1};\\nsnippet ovy:a\\n\toverflow-y: auto;\\nsnippet ovy:h\\n\toverflow-y: hidden;\\nsnippet ovy:s\\n\toverflow-y: scroll;\\nsnippet ovy:v\\n\toverflow-y: visible;\\nsnippet ov\\n\toverflow: ${1};\\nsnippet ov:a\\n\toverflow: auto;\\nsnippet ov:h\\n\toverflow: hidden;\\nsnippet ov:s\\n\toverflow: scroll;\\nsnippet ov:v\\n\toverflow: visible;\\nsnippet pb\\n\tpadding-bottom: ${1};\\nsnippet pl\\n\tpadding-left: ${1};\\nsnippet pr\\n\tpadding-right: ${1};\\nsnippet pt\\n\tpadding-top: ${1};\\nsnippet p\\n\tpadding: ${1};\\nsnippet p:4\\n\tpadding: ${1:0} ${2:0} ${3:0} ${4:0};\\nsnippet p:3\\n\tpadding: ${1:0} ${2:0} ${3:0};\\nsnippet p:2\\n\tpadding: ${1:0} ${2:0};\\nsnippet p:0\\n\tpadding: 0;\\nsnippet pgba\\n\tpage-break-after: ${1};\\nsnippet pgba:aw\\n\tpage-break-after: always;\\nsnippet pgba:a\\n\tpage-break-after: auto;\\nsnippet pgba:l\\n\tpage-break-after: left;\\nsnippet pgba:r\\n\tpage-break-after: right;\\nsnippet pgbb\\n\tpage-break-before: ${1};\\nsnippet pgbb:aw\\n\tpage-break-before: always;\\nsnippet pgbb:a\\n\tpage-break-before: auto;\\nsnippet pgbb:l\\n\tpage-break-before: left;\\nsnippet pgbb:r\\n\tpage-break-before: right;\\nsnippet pgbi\\n\tpage-break-inside: ${1};\\nsnippet pgbi:a\\n\tpage-break-inside: auto;\\nsnippet pgbi:av\\n\tpage-break-inside: avoid;\\nsnippet pos\\n\tposition: ${1};\\nsnippet pos:a\\n\tposition: absolute;\\nsnippet pos:f\\n\tposition: fixed;\\nsnippet pos:r\\n\tposition: relative;\\nsnippet pos:s\\n\tposition: static;\\nsnippet q\\n\tquotes: ${1};\\nsnippet q:en\\n\tquotes: '\\\\201C' '\\\\201D' '\\\\2018' '\\\\2019';\\nsnippet q:n\\n\tquotes: none;\\nsnippet q:ru\\n\tquotes: '\\\\00AB' '\\\\00BB' '\\\\201E' '\\\\201C';\\nsnippet rz\\n\tresize: ${1};\\nsnippet rz:b\\n\tresize: both;\\nsnippet rz:h\\n\tresize: horizontal;\\nsnippet rz:n\\n\tresize: none;\\nsnippet rz:v\\n\tresize: vertical;\\nsnippet r\\n\tright: ${1};\\nsnippet r:a\\n\tright: auto;\\nsnippet tbl\\n\ttable-layout: ${1};\\nsnippet tbl:a\\n\ttable-layout: auto;\\nsnippet tbl:f\\n\ttable-layout: fixed;\\nsnippet tal\\n\ttext-align-last: ${1};\\nsnippet tal:a\\n\ttext-align-last: auto;\\nsnippet tal:c\\n\ttext-align-last: center;\\nsnippet tal:l\\n\ttext-align-last: left;\\nsnippet tal:r\\n\ttext-align-last: right;\\nsnippet ta\\n\ttext-align: ${1};\\nsnippet ta:c\\n\ttext-align: center;\\nsnippet ta:l\\n\ttext-align: left;\\nsnippet ta:r\\n\ttext-align: right;\\nsnippet td\\n\ttext-decoration: ${1};\\nsnippet td:l\\n\ttext-decoration: line-through;\\nsnippet td:n\\n\ttext-decoration: none;\\nsnippet td:o\\n\ttext-decoration: overline;\\nsnippet td:u\\n\ttext-decoration: underline;\\nsnippet te\\n\ttext-emphasis: ${1};\\nsnippet te:ac\\n\ttext-emphasis: accent;\\nsnippet te:a\\n\ttext-emphasis: after;\\nsnippet te:b\\n\ttext-emphasis: before;\\nsnippet te:c\\n\ttext-emphasis: circle;\\nsnippet te:ds\\n\ttext-emphasis: disc;\\nsnippet te:dt\\n\ttext-emphasis: dot;\\nsnippet te:n\\n\ttext-emphasis: none;\\nsnippet th\\n\ttext-height: ${1};\\nsnippet th:a\\n\ttext-height: auto;\\nsnippet th:f\\n\ttext-height: font-size;\\nsnippet th:m\\n\ttext-height: max-size;\\nsnippet th:t\\n\ttext-height: text-size;\\nsnippet ti\\n\ttext-indent: ${1};\\nsnippet ti:-\\n\ttext-indent: -9999px;\\nsnippet tj\\n\ttext-justify: ${1};\\nsnippet tj:a\\n\ttext-justify: auto;\\nsnippet tj:d\\n\ttext-justify: distribute;\\nsnippet tj:ic\\n\ttext-justify: inter-cluster;\\nsnippet tj:ii\\n\ttext-justify: inter-ideograph;\\nsnippet tj:iw\\n\ttext-justify: inter-word;\\nsnippet tj:k\\n\ttext-justify: kashida;\\nsnippet tj:t\\n\ttext-justify: tibetan;\\nsnippet to+\\n\ttext-outline: ${1:0} ${2:0} #${3:000};\\nsnippet to\\n\ttext-outline: ${1};\\nsnippet to:n\\n\ttext-outline: none;\\nsnippet tr\\n\ttext-replace: ${1};\\nsnippet tr:n\\n\ttext-replace: none;\\nsnippet tsh+\\n\ttext-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\\nsnippet tsh\\n\ttext-shadow: ${1};\\nsnippet tsh:n\\n\ttext-shadow: none;\\nsnippet tt\\n\ttext-transform: ${1};\\nsnippet tt:c\\n\ttext-transform: capitalize;\\nsnippet tt:l\\n\ttext-transform: lowercase;\\nsnippet tt:n\\n\ttext-transform: none;\\nsnippet tt:u\\n\ttext-transform: uppercase;\\nsnippet tw\\n\ttext-wrap: ${1};\\nsnippet tw:no\\n\ttext-wrap: none;\\nsnippet tw:n\\n\ttext-wrap: normal;\\nsnippet tw:s\\n\ttext-wrap: suppress;\\nsnippet tw:u\\n\ttext-wrap: unrestricted;\\nsnippet t\\n\ttop: ${1};\\nsnippet t:a\\n\ttop: auto;\\nsnippet va\\n\tvertical-align: ${1};\\nsnippet va:bl\\n\tvertical-align: baseline;\\nsnippet va:b\\n\tvertical-align: bottom;\\nsnippet va:m\\n\tvertical-align: middle;\\nsnippet va:sub\\n\tvertical-align: sub;\\nsnippet va:sup\\n\tvertical-align: super;\\nsnippet va:tb\\n\tvertical-align: text-bottom;\\nsnippet va:tt\\n\tvertical-align: text-top;\\nsnippet va:t\\n\tvertical-align: top;\\nsnippet v\\n\tvisibility: ${1};\\nsnippet v:c\\n\tvisibility: collapse;\\nsnippet v:h\\n\tvisibility: hidden;\\nsnippet v:v\\n\tvisibility: visible;\\nsnippet whsc\\n\twhite-space-collapse: ${1};\\nsnippet whsc:ba\\n\twhite-space-collapse: break-all;\\nsnippet whsc:bs\\n\twhite-space-collapse: break-strict;\\nsnippet whsc:k\\n\twhite-space-collapse: keep-all;\\nsnippet whsc:l\\n\twhite-space-collapse: loose;\\nsnippet whsc:n\\n\twhite-space-collapse: normal;\\nsnippet whs\\n\twhite-space: ${1};\\nsnippet whs:n\\n\twhite-space: normal;\\nsnippet whs:nw\\n\twhite-space: nowrap;\\nsnippet whs:pl\\n\twhite-space: pre-line;\\nsnippet whs:pw\\n\twhite-space: pre-wrap;\\nsnippet whs:p\\n\twhite-space: pre;\\nsnippet wid\\n\twidows: ${1};\\nsnippet w\\n\twidth: ${1};\\nsnippet w:a\\n\twidth: auto;\\nsnippet wob\\n\tword-break: ${1};\\nsnippet wob:ba\\n\tword-break: break-all;\\nsnippet wob:bs\\n\tword-break: break-strict;\\nsnippet wob:k\\n\tword-break: keep-all;\\nsnippet wob:l\\n\tword-break: loose;\\nsnippet wob:n\\n\tword-break: normal;\\nsnippet wos\\n\tword-spacing: ${1};\\nsnippet wow\\n\tword-wrap: ${1};\\nsnippet wow:no\\n\tword-wrap: none;\\nsnippet wow:n\\n\tword-wrap: normal;\\nsnippet wow:s\\n\tword-wrap: suppress;\\nsnippet wow:u\\n\tword-wrap: unrestricted;\\nsnippet z\\n\tz-index: ${1};\\nsnippet z:a\\n\tz-index: auto;\\nsnippet zoo\\n\tzoom: 1;\\n\",t.scope=\"css\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/curly.js",
    "content": "ace.define(\"ace/snippets/curly\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"curly\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/d.js",
    "content": "ace.define(\"ace/snippets/d\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"d\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/dart.js",
    "content": "ace.define(\"ace/snippets/dart\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"snippet lib\\n\tlibrary ${1};\\n\t${2}\\nsnippet im\\n\timport '${1}';\\n\t${2}\\nsnippet pa\\n\tpart '${1}';\\n\t${2}\\nsnippet pao\\n\tpart of ${1};\\n\t${2}\\nsnippet main\\n\tvoid main() {\\n\t  ${1:/* code */}\\n\t}\\nsnippet st\\n\tstatic ${1}\\nsnippet fi\\n\tfinal ${1}\\nsnippet re\\n\treturn ${1}\\nsnippet br\\n\tbreak;\\nsnippet th\\n\tthrow ${1}\\nsnippet cl\\n\tclass ${1:`Filename(\\\"\\\", \\\"untitled\\\")`} ${2}\\nsnippet imp\\n\timplements ${1}\\nsnippet ext\\n\textends ${1}\\nsnippet if\\n\tif (${1:true}) {\\n\t  ${2}\\n\t}\\nsnippet ife\\n\tif (${1:true}) {\\n\t  ${2}\\n\t} else {\\n\t  ${3}\\n\t}\\nsnippet el\\n\telse\\nsnippet sw\\n\tswitch (${1}) {\\n\t  ${2}\\n\t}\\nsnippet cs\\n\tcase ${1}:\\n\t  ${2}\\nsnippet de\\n\tdefault:\\n\t  ${1}\\nsnippet for\\n\tfor (var ${2:i} = 0, len = ${1:things}.length; $2 < len; ${3:++}$2) {\\n\t  ${4:$1[$2]}\\n\t}\\nsnippet fore\\n\tfor (final ${2:item} in ${1:itemList}) {\\n\t  ${3:/* code */}\\n\t}\\nsnippet wh\\n\twhile (${1:/* condition */}) {\\n\t  ${2:/* code */}\\n\t}\\nsnippet dowh\\n\tdo {\\n\t  ${2:/* code */}\\n\t} while (${1:/* condition */});\\nsnippet as\\n\tassert(${1:/* condition */});\\nsnippet try\\n\ttry {\\n\t  ${2}\\n\t} catch (${1:Exception e}) {\\n\t}\\nsnippet tryf\\n\ttry {\\n\t  ${2}\\n\t} catch (${1:Exception e}) {\\n\t} finally {\\n\t}\\n\",t.scope=\"dart\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/diff.js",
    "content": "ace.define(\"ace/snippets/diff\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='# DEP-3 (http://dep.debian.net/deps/dep3/) style patch header\\nsnippet header DEP-3 style header\\n\tDescription: ${1}\\n\tOrigin: ${2:vendor|upstream|other}, ${3:url of the original patch}\\n\tBug: ${4:url in upstream bugtracker}\\n\tForwarded: ${5:no|not-needed|url}\\n\tAuthor: ${6:`g:snips_author`}\\n\tReviewed-by: ${7:name and email}\\n\tLast-Update: ${8:`strftime(\"%Y-%m-%d\")`}\\n\tApplied-Upstream: ${9:upstream version|url|commit}\\n\\n',t.scope=\"diff\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/django.js",
    "content": "ace.define(\"ace/snippets/django\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"# Model Fields\\n\\n# Note: Optional arguments are using defaults that match what Django will use\\n# as a default, e.g. with max_length fields.  Doing this as a form of self\\n# documentation and to make it easy to know whether you should override the\\n# default or not.\\n\\n# Note: Optional arguments that are booleans will use the opposite since you\\n# can either not specify them, or override them, e.g. auto_now_add=False.\\n\\nsnippet auto\\n\t${1:FIELDNAME} = models.AutoField(${2})\\nsnippet bool\\n\t${1:FIELDNAME} = models.BooleanField(${2:default=True})\\nsnippet char\\n\t${1:FIELDNAME} = models.CharField(max_length=${2}${3:, blank=True})\\nsnippet comma\\n\t${1:FIELDNAME} = models.CommaSeparatedIntegerField(max_length=${2}${3:, blank=True})\\nsnippet date\\n\t${1:FIELDNAME} = models.DateField(${2:auto_now_add=True, auto_now=True}${3:, blank=True, null=True})\\nsnippet datetime\\n\t${1:FIELDNAME} = models.DateTimeField(${2:auto_now_add=True, auto_now=True}${3:, blank=True, null=True})\\nsnippet decimal\\n\t${1:FIELDNAME} = models.DecimalField(max_digits=${2}, decimal_places=${3})\\nsnippet email\\n\t${1:FIELDNAME} = models.EmailField(max_length=${2:75}${3:, blank=True})\\nsnippet file\\n\t${1:FIELDNAME} = models.FileField(upload_to=${2:path/for/upload}${3:, max_length=100})\\nsnippet filepath\\n\t${1:FIELDNAME} = models.FilePathField(path=${2:\\\"/abs/path/to/dir\\\"}${3:, max_length=100}${4:, match=\\\"*.ext\\\"}${5:, recursive=True}${6:, blank=True, })\\nsnippet float\\n\t${1:FIELDNAME} = models.FloatField(${2})\\nsnippet image\\n\t${1:FIELDNAME} = models.ImageField(upload_to=${2:path/for/upload}${3:, height_field=height, width_field=width}${4:, max_length=100})\\nsnippet int\\n\t${1:FIELDNAME} = models.IntegerField(${2})\\nsnippet ip\\n\t${1:FIELDNAME} = models.IPAddressField(${2})\\nsnippet nullbool\\n\t${1:FIELDNAME} = models.NullBooleanField(${2})\\nsnippet posint\\n\t${1:FIELDNAME} = models.PositiveIntegerField(${2})\\nsnippet possmallint\\n\t${1:FIELDNAME} = models.PositiveSmallIntegerField(${2})\\nsnippet slug\\n\t${1:FIELDNAME} = models.SlugField(max_length=${2:50}${3:, blank=True})\\nsnippet smallint\\n\t${1:FIELDNAME} = models.SmallIntegerField(${2})\\nsnippet text\\n\t${1:FIELDNAME} = models.TextField(${2:blank=True})\\nsnippet time\\n\t${1:FIELDNAME} = models.TimeField(${2:auto_now_add=True, auto_now=True}${3:, blank=True, null=True})\\nsnippet url\\n\t${1:FIELDNAME} = models.URLField(${2:verify_exists=False}${3:, max_length=200}${4:, blank=True})\\nsnippet xml\\n\t${1:FIELDNAME} = models.XMLField(schema_path=${2:None}${3:, blank=True})\\n# Relational Fields\\nsnippet fk\\n\t${1:FIELDNAME} = models.ForeignKey(${2:OtherModel}${3:, related_name=''}${4:, limit_choices_to=}${5:, to_field=''})\\nsnippet m2m\\n\t${1:FIELDNAME} = models.ManyToManyField(${2:OtherModel}${3:, related_name=''}${4:, limit_choices_to=}${5:, symmetrical=False}${6:, through=''}${7:, db_table=''})\\nsnippet o2o\\n\t${1:FIELDNAME} = models.OneToOneField(${2:OtherModel}${3:, parent_link=True}${4:, related_name=''}${5:, limit_choices_to=}${6:, to_field=''})\\n\\n# Code Skeletons\\n\\nsnippet form\\n\tclass ${1:FormName}(forms.Form):\\n\t\t\\\"\\\"\\\"${2:docstring}\\\"\\\"\\\"\\n\t\t${3}\\n\\nsnippet model\\n\tclass ${1:ModelName}(models.Model):\\n\t\t\\\"\\\"\\\"${2:docstring}\\\"\\\"\\\"\\n\t\t${3}\\n\t\t\\n\t\tclass Meta:\\n\t\t\t${4}\\n\t\t\\n\t\tdef __unicode__(self):\\n\t\t\t${5}\\n\t\t\\n\t\tdef save(self, force_insert=False, force_update=False):\\n\t\t\t${6}\\n\t\t\\n\t\t@models.permalink\\n\t\tdef get_absolute_url(self):\\n\t\t\treturn ('${7:view_or_url_name}' ${8})\\n\\nsnippet modeladmin\\n\tclass ${1:ModelName}Admin(admin.ModelAdmin):\\n\t\t${2}\\n\t\\n\tadmin.site.register($1, $1Admin)\\n\t\\nsnippet tabularinline\\n\tclass ${1:ModelName}Inline(admin.TabularInline):\\n\t\tmodel = $1\\n\\nsnippet stackedinline\\n\tclass ${1:ModelName}Inline(admin.StackedInline):\\n\t\tmodel = $1\\n\\nsnippet r2r\\n\treturn render_to_response('${1:template.html}', {\\n\t\t\t${2}\\n\t\t}${3:, context_instance=RequestContext(request)}\\n\t)\\n\",t.scope=\"django\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/dockerfile.js",
    "content": "ace.define(\"ace/snippets/dockerfile\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"dockerfile\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/dot.js",
    "content": "ace.define(\"ace/snippets/dot\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"dot\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/drools.js",
    "content": "ace.define(\"ace/snippets/drools\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='\\nsnippet rule\\n\trule \"${1?:rule_name}\"\\n\twhen\\n\t\t${2:// when...} \\n\tthen\\n\t\t${3:// then...}\\n\tend\\n\\nsnippet query\\n\tquery ${1?:query_name}\\n\t\t${2:// find} \\n\tend\\n\t\\nsnippet declare\\n\tdeclare ${1?:type_name}\\n\t\t${2:// attributes} \\n\tend\\n\\n',t.scope=\"drools\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/eiffel.js",
    "content": "ace.define(\"ace/snippets/eiffel\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"eiffel\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/ejs.js",
    "content": "ace.define(\"ace/snippets/ejs\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"ejs\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/elixir.js",
    "content": "ace.define(\"ace/snippets/elixir\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/elm.js",
    "content": "ace.define(\"ace/snippets/elm\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"elm\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/erlang.js",
    "content": "ace.define(\"ace/snippets/erlang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"# module and export all\\nsnippet mod\\n\t-module(${1:`Filename('', 'my')`}).\\n\t\\n\t-compile([export_all]).\\n\t\\n\tstart() ->\\n\t    ${2}\\n\t\\n\tstop() ->\\n\t    ok.\\n# define directive\\nsnippet def\\n\t-define(${1:macro}, ${2:body}).${3}\\n# export directive\\nsnippet exp\\n\t-export([${1:function}/${2:arity}]).\\n# include directive\\nsnippet inc\\n\t-include(\\\"${1:file}\\\").${2}\\n# behavior directive\\nsnippet beh\\n\t-behaviour(${1:behaviour}).${2}\\n# if expression\\nsnippet if\\n\tif\\n\t    ${1:guard} ->\\n\t        ${2:body}\\n\tend\\n# case expression\\nsnippet case\\n\tcase ${1:expression} of\\n\t    ${2:pattern} ->\\n\t        ${3:body};\\n\tend\\n# anonymous function\\nsnippet fun\\n\tfun (${1:Parameters}) -> ${2:body} end${3}\\n# try...catch\\nsnippet try\\n\ttry\\n\t    ${1}\\n\tcatch\\n\t    ${2:_:_} -> ${3:got_some_exception}\\n\tend\\n# record directive\\nsnippet rec\\n\t-record(${1:record}, {\\n\t    ${2:field}=${3:value}}).${4}\\n# todo comment\\nsnippet todo\\n\t%% TODO: ${1}\\n## Snippets below (starting with '%') are in EDoc format.\\n## See http://www.erlang.org/doc/apps/edoc/chapter.html#id56887 for more details\\n# doc comment\\nsnippet %d\\n\t%% @doc ${1}\\n# end of doc comment\\nsnippet %e\\n\t%% @end\\n# specification comment\\nsnippet %s\\n\t%% @spec ${1}\\n# private function marker\\nsnippet %p\\n\t%% @private\\n# OTP application\\nsnippet application\\n\t-module(${1:`Filename('', 'my')`}).\\n\\n\t-behaviour(application).\\n\\n\t-export([start/2, stop/1]).\\n\\n\tstart(_Type, _StartArgs) ->\\n\t    case ${2:root_supervisor}:start_link() of\\n\t        {ok, Pid} ->\\n\t            {ok, Pid};\\n\t        Other ->\\n\t\t          {error, Other}\\n\t    end.\\n\\n\tstop(_State) ->\\n\t    ok.\t\\n# OTP supervisor\\nsnippet supervisor\\n\t-module(${1:`Filename('', 'my')`}).\\n\\n\t-behaviour(supervisor).\\n\\n\t%% API\\n\t-export([start_link/0]).\\n\\n\t%% Supervisor callbacks\\n\t-export([init/1]).\\n\\n\t-define(SERVER, ?MODULE).\\n\\n\tstart_link() ->\\n\t    supervisor:start_link({local, ?SERVER}, ?MODULE, []).\\n\\n\tinit([]) ->\\n\t    Server = {${2:my_server}, {$2, start_link, []},\\n\t      permanent, 2000, worker, [$2]},\\n\t    Children = [Server],\\n\t    RestartStrategy = {one_for_one, 0, 1},\\n\t    {ok, {RestartStrategy, Children}}.\\n# OTP gen_server\\nsnippet gen_server\\n\t-module(${1:`Filename('', 'my')`}).\\n\\n\t-behaviour(gen_server).\\n\\n\t%% API\\n\t-export([\\n\t         start_link/0\\n\t        ]).\\n\\n\t%% gen_server callbacks\\n\t-export([init/1, handle_call/3, handle_cast/2, handle_info/2,\\n\t         terminate/2, code_change/3]).\\n\\n\t-define(SERVER, ?MODULE).\\n\\n\t-record(state, {}).\\n\\n\t%%%===================================================================\\n\t%%% API\\n\t%%%===================================================================\\n\\n\tstart_link() ->\\n\t    gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).\\n\\n\t%%%===================================================================\\n\t%%% gen_server callbacks\\n\t%%%===================================================================\\n\\n\tinit([]) ->\\n\t    {ok, #state{}}.\\n\\n\thandle_call(_Request, _From, State) ->\\n\t    Reply = ok,\\n\t    {reply, Reply, State}.\\n\\n\thandle_cast(_Msg, State) ->\\n\t    {noreply, State}.\\n\\n\thandle_info(_Info, State) ->\\n\t    {noreply, State}.\\n\\n\tterminate(_Reason, _State) ->\\n\t    ok.\\n\\n\tcode_change(_OldVsn, State, _Extra) ->\\n\t    {ok, State}.\\n\\n\t%%%===================================================================\\n\t%%% Internal functions\\n\t%%%===================================================================\\n\\n\",t.scope=\"erlang\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/forth.js",
    "content": "ace.define(\"ace/snippets/forth\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"forth\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/fortran.js",
    "content": "ace.define(\"ace/snippets/fortran\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"fortran\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/ftl.js",
    "content": "ace.define(\"ace/snippets/ftl\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"ftl\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/gcode.js",
    "content": "ace.define(\"ace/snippets/gcode\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"gcode\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/gherkin.js",
    "content": "ace.define(\"ace/snippets/gherkin\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"gherkin\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/gitignore.js",
    "content": "ace.define(\"ace/snippets/gitignore\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"gitignore\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/glsl.js",
    "content": "ace.define(\"ace/snippets/glsl\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"glsl\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/gobstones.js",
    "content": "ace.define(\"ace/snippets/gobstones\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"# Procedure\\nsnippet proc\\n\tprocedure ${1?:name}(${2:argument}) {\\n\t\t${3:// body...}\\n\t}\\n\\n# Function\\nsnippet fun\\n\tfunction ${1?:name}(${2:argument}) {\\n\t\treturn ${3:// body...}\\n\t}\\n\\n# Repeat\\nsnippet rep\\n\trepeat ${1?:times} {\\n\t\t${2:// body...}\\n\t}\\n\\n# For\\nsnippet for\\n\tforeach ${1?:e} in ${2?:list} {\\n\t\t${3:// body...}\t\\n\t}\\n\\n# If\\nsnippet if\\n\tif (${1?:condition}) {\\n\t\t${3:// body...}\t\\n\t}\\n\\n# While\\n  while (${1?:condition}) {\\n    ${2:// body...}\t\\n  }\\n\",t.scope=\"gobstones\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/golang.js",
    "content": "ace.define(\"ace/snippets/golang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"golang\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/groovy.js",
    "content": "ace.define(\"ace/snippets/groovy\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"groovy\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/haml.js",
    "content": "ace.define(\"ace/snippets/haml\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"snippet t\\n\t%table\\n\t\t%tr\\n\t\t\t%th\\n\t\t\t\t${1:headers}\\n\t\t%tr\\n\t\t\t%td\\n\t\t\t\t${2:headers}\\nsnippet ul\\n\t%ul\\n\t\t%li\\n\t\t\t${1:item}\\n\t\t%li\\nsnippet =rp\\n\t= render :partial => '${1:partial}'\\nsnippet =rpl\\n\t= render :partial => '${1:partial}', :locals => {}\\nsnippet =rpc\\n\t= render :partial => '${1:partial}', :collection => @$1\\n\\n\",t.scope=\"haml\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/handlebars.js",
    "content": "ace.define(\"ace/snippets/handlebars\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"handlebars\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/haskell.js",
    "content": "ace.define(\"ace/snippets/haskell\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"snippet lang\\n\t{-# LANGUAGE ${1:OverloadedStrings} #-}\\nsnippet info\\n\t-- |\\n\t-- Module      :  ${1:Module.Namespace}\\n\t-- Copyright   :  ${2:Author} ${3:2011-2012}\\n\t-- License     :  ${4:BSD3}\\n\t--\\n\t-- Maintainer  :  ${5:email@something.com}\\n\t-- Stability   :  ${6:experimental}\\n\t-- Portability :  ${7:unknown}\\n\t--\\n\t-- ${8:Description}\\n\t--\\nsnippet import\\n\timport           ${1:Data.Text}\\nsnippet import2\\n\timport           ${1:Data.Text} (${2:head})\\nsnippet importq\\n\timport qualified ${1:Data.Text} as ${2:T}\\nsnippet inst\\n\tinstance ${1:Monoid} ${2:Type} where\\n\t\t${3}\\nsnippet type\\n\ttype ${1:Type} = ${2:Type}\\nsnippet data\\n\tdata ${1:Type} = ${2:$1} ${3:Int}\\nsnippet newtype\\n\tnewtype ${1:Type} = ${2:$1} ${3:Int}\\nsnippet class\\n\tclass ${1:Class} a where\\n\t\t${2}\\nsnippet module\\n\tmodule `substitute(substitute(expand('%:r'), '[/\\\\\\\\]','.','g'),'^\\\\%(\\\\l*\\\\.\\\\)\\\\?','','')` (\\n\t)\twhere\\n\t`expand('%') =~ 'Main' ? \\\"\\\\n\\\\nmain = do\\\\n  print \\\\\\\"hello world\\\\\\\"\\\" : \\\"\\\"`\\n\\nsnippet const\\n\t${1:name} :: ${2:a}\\n\t$1 = ${3:undefined}\\nsnippet fn\\n\t${1:fn} :: ${2:a} -> ${3:a}\\n\t$1 ${4} = ${5:undefined}\\nsnippet fn2\\n\t${1:fn} :: ${2:a} -> ${3:a} -> ${4:a}\\n\t$1 ${5} = ${6:undefined}\\nsnippet ap\\n\t${1:map} ${2:fn} ${3:list}\\nsnippet do\\n\tdo\\n\t\t\\nsnippet \\u03bb\\n\t\\\\${1:x} -> ${2}\\nsnippet \\\\\\n\t\\\\${1:x} -> ${2}\\nsnippet <-\\n\t${1:a} <- ${2:m a}\\nsnippet \\u2190\\n\t${1:a} <- ${2:m a}\\nsnippet ->\\n\t${1:m a} -> ${2:a}\\nsnippet \\u2192\\n\t${1:m a} -> ${2:a}\\nsnippet tup\\n\t(${1:a}, ${2:b})\\nsnippet tup2\\n\t(${1:a}, ${2:b}, ${3:c})\\nsnippet tup3\\n\t(${1:a}, ${2:b}, ${3:c}, ${4:d})\\nsnippet rec\\n\t${1:Record} { ${2:recFieldA} = ${3:undefined}\\n\t\t\t\t, ${4:recFieldB} = ${5:undefined}\\n\t\t\t\t}\\nsnippet case\\n\tcase ${1:something} of\\n\t\t${2} -> ${3}\\nsnippet let\\n\tlet ${1} = ${2}\\n\tin ${3}\\nsnippet where\\n\twhere\\n\t\t${1:fn} = ${2:undefined}\\n\",t.scope=\"haskell\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/haskell_cabal.js",
    "content": "ace.define(\"ace/snippets/haskell_cabal\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"haskell_cabal\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/haxe.js",
    "content": "ace.define(\"ace/snippets/haxe\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"haxe\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/hjson.js",
    "content": "ace.define(\"ace/snippets/hjson\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/html.js",
    "content": "ace.define(\"ace/snippets/html\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='# Some useful Unicode entities\\n# Non-Breaking Space\\nsnippet nbs\\n\t&nbsp;\\n# \\u2190\\nsnippet left\\n\t&#x2190;\\n# \\u2192\\nsnippet right\\n\t&#x2192;\\n# \\u2191\\nsnippet up\\n\t&#x2191;\\n# \\u2193\\nsnippet down\\n\t&#x2193;\\n# \\u21a9\\nsnippet return\\n\t&#x21A9;\\n# \\u21e4\\nsnippet backtab\\n\t&#x21E4;\\n# \\u21e5\\nsnippet tab\\n\t&#x21E5;\\n# \\u21e7\\nsnippet shift\\n\t&#x21E7;\\n# \\u2303\\nsnippet ctrl\\n\t&#x2303;\\n# \\u2305\\nsnippet enter\\n\t&#x2305;\\n# \\u2318\\nsnippet cmd\\n\t&#x2318;\\n# \\u2325\\nsnippet option\\n\t&#x2325;\\n# \\u2326\\nsnippet delete\\n\t&#x2326;\\n# \\u232b\\nsnippet backspace\\n\t&#x232B;\\n# \\u238b\\nsnippet esc\\n\t&#x238B;\\n# Generic Doctype\\nsnippet doctype HTML 4.01 Strict\\n\t<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\\n\t\"http://www.w3.org/TR/html4/strict.dtd\">\\nsnippet doctype HTML 4.01 Transitional\\n\t<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"\\n\t\"http://www.w3.org/TR/html4/loose.dtd\">\\nsnippet doctype HTML 5\\n\t<!DOCTYPE HTML>\\nsnippet doctype XHTML 1.0 Frameset\\n\t<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\\n\t\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\\nsnippet doctype XHTML 1.0 Strict\\n\t<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\\n\t\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\\nsnippet doctype XHTML 1.0 Transitional\\n\t<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\\n\t\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\\nsnippet doctype XHTML 1.1\\n\t<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\"\\n\t\"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\\n# HTML Doctype 4.01 Strict\\nsnippet docts\\n\t<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\\n\t\"http://www.w3.org/TR/html4/strict.dtd\">\\n# HTML Doctype 4.01 Transitional\\nsnippet doct\\n\t<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"\\n\t\"http://www.w3.org/TR/html4/loose.dtd\">\\n# HTML Doctype 5\\nsnippet doct5\\n\t<!DOCTYPE HTML>\\n# XHTML Doctype 1.0 Frameset\\nsnippet docxf\\n\t<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\"\\n\t\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\">\\n# XHTML Doctype 1.0 Strict\\nsnippet docxs\\n\t<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\\n\t\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\\n# XHTML Doctype 1.0 Transitional\\nsnippet docxt\\n\t<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\\n\t\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\\n# XHTML Doctype 1.1\\nsnippet docx\\n\t<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\"\\n\t\"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\\n# Attributes\\nsnippet attr\\n\t${1:attribute}=\"${2:property}\"\\nsnippet attr+\\n\t${1:attribute}=\"${2:property}\" attr+${3}\\nsnippet .\\n\tclass=\"${1}\"${2}\\nsnippet #\\n\tid=\"${1}\"${2}\\nsnippet alt\\n\talt=\"${1}\"${2}\\nsnippet charset\\n\tcharset=\"${1:utf-8}\"${2}\\nsnippet data\\n\tdata-${1}=\"${2:$1}\"${3}\\nsnippet for\\n\tfor=\"${1}\"${2}\\nsnippet height\\n\theight=\"${1}\"${2}\\nsnippet href\\n\thref=\"${1:#}\"${2}\\nsnippet lang\\n\tlang=\"${1:en}\"${2}\\nsnippet media\\n\tmedia=\"${1}\"${2}\\nsnippet name\\n\tname=\"${1}\"${2}\\nsnippet rel\\n\trel=\"${1}\"${2}\\nsnippet scope\\n\tscope=\"${1:row}\"${2}\\nsnippet src\\n\tsrc=\"${1}\"${2}\\nsnippet title=\\n\ttitle=\"${1}\"${2}\\nsnippet type\\n\ttype=\"${1}\"${2}\\nsnippet value\\n\tvalue=\"${1}\"${2}\\nsnippet width\\n\twidth=\"${1}\"${2}\\n# Elements\\nsnippet a\\n\t<a href=\"${1:#}\">${2:$1}</a>\\nsnippet a.\\n\t<a class=\"${1}\" href=\"${2:#}\">${3:$1}</a>\\nsnippet a#\\n\t<a id=\"${1}\" href=\"${2:#}\">${3:$1}</a>\\nsnippet a:ext\\n\t<a href=\"http://${1:example.com}\">${2:$1}</a>\\nsnippet a:mail\\n\t<a href=\"mailto:${1:joe@example.com}?subject=${2:feedback}\">${3:email me}</a>\\nsnippet abbr\\n\t<abbr title=\"${1}\">${2}</abbr>\\nsnippet address\\n\t<address>\\n\t\t${1}\\n\t</address>\\nsnippet area\\n\t<area shape=\"${1:rect}\" coords=\"${2}\" href=\"${3}\" alt=\"${4}\" />\\nsnippet area+\\n\t<area shape=\"${1:rect}\" coords=\"${2}\" href=\"${3}\" alt=\"${4}\" />\\n\tarea+${5}\\nsnippet area:c\\n\t<area shape=\"circle\" coords=\"${1}\" href=\"${2}\" alt=\"${3}\" />\\nsnippet area:d\\n\t<area shape=\"default\" coords=\"${1}\" href=\"${2}\" alt=\"${3}\" />\\nsnippet area:p\\n\t<area shape=\"poly\" coords=\"${1}\" href=\"${2}\" alt=\"${3}\" />\\nsnippet area:r\\n\t<area shape=\"rect\" coords=\"${1}\" href=\"${2}\" alt=\"${3}\" />\\nsnippet article\\n\t<article>\\n\t\t${1}\\n\t</article>\\nsnippet article.\\n\t<article class=\"${1}\">\\n\t\t${2}\\n\t</article>\\nsnippet article#\\n\t<article id=\"${1}\">\\n\t\t${2}\\n\t</article>\\nsnippet aside\\n\t<aside>\\n\t\t${1}\\n\t</aside>\\nsnippet aside.\\n\t<aside class=\"${1}\">\\n\t\t${2}\\n\t</aside>\\nsnippet aside#\\n\t<aside id=\"${1}\">\\n\t\t${2}\\n\t</aside>\\nsnippet audio\\n\t<audio src=\"${1}>${2}</audio>\\nsnippet b\\n\t<b>${1}</b>\\nsnippet base\\n\t<base href=\"${1}\" target=\"${2}\" />\\nsnippet bdi\\n\t<bdi>${1}</bdo>\\nsnippet bdo\\n\t<bdo dir=\"${1}\">${2}</bdo>\\nsnippet bdo:l\\n\t<bdo dir=\"ltr\">${1}</bdo>\\nsnippet bdo:r\\n\t<bdo dir=\"rtl\">${1}</bdo>\\nsnippet blockquote\\n\t<blockquote>\\n\t\t${1}\\n\t</blockquote>\\nsnippet body\\n\t<body>\\n\t\t${1}\\n\t</body>\\nsnippet br\\n\t<br />${1}\\nsnippet button\\n\t<button type=\"${1:submit}\">${2}</button>\\nsnippet button.\\n\t<button class=\"${1:button}\" type=\"${2:submit}\">${3}</button>\\nsnippet button#\\n\t<button id=\"${1}\" type=\"${2:submit}\">${3}</button>\\nsnippet button:s\\n\t<button type=\"submit\">${1}</button>\\nsnippet button:r\\n\t<button type=\"reset\">${1}</button>\\nsnippet canvas\\n\t<canvas>\\n\t\t${1}\\n\t</canvas>\\nsnippet caption\\n\t<caption>${1}</caption>\\nsnippet cite\\n\t<cite>${1}</cite>\\nsnippet code\\n\t<code>${1}</code>\\nsnippet col\\n\t<col />${1}\\nsnippet col+\\n\t<col />\\n\tcol+${1}\\nsnippet colgroup\\n\t<colgroup>\\n\t\t${1}\\n\t</colgroup>\\nsnippet colgroup+\\n\t<colgroup>\\n\t\t<col />\\n\t\tcol+${1}\\n\t</colgroup>\\nsnippet command\\n\t<command type=\"command\" label=\"${1}\" icon=\"${2}\" />\\nsnippet command:c\\n\t<command type=\"checkbox\" label=\"${1}\" icon=\"${2}\" />\\nsnippet command:r\\n\t<command type=\"radio\" radiogroup=\"${1}\" label=\"${2}\" icon=\"${3}\" />\\nsnippet datagrid\\n\t<datagrid>\\n\t\t${1}\\n\t</datagrid>\\nsnippet datalist\\n\t<datalist>\\n\t\t${1}\\n\t</datalist>\\nsnippet datatemplate\\n\t<datatemplate>\\n\t\t${1}\\n\t</datatemplate>\\nsnippet dd\\n\t<dd>${1}</dd>\\nsnippet dd.\\n\t<dd class=\"${1}\">${2}</dd>\\nsnippet dd#\\n\t<dd id=\"${1}\">${2}</dd>\\nsnippet del\\n\t<del>${1}</del>\\nsnippet details\\n\t<details>${1}</details>\\nsnippet dfn\\n\t<dfn>${1}</dfn>\\nsnippet dialog\\n\t<dialog>\\n\t\t${1}\\n\t</dialog>\\nsnippet div\\n\t<div>\\n\t\t${1}\\n\t</div>\\nsnippet div.\\n\t<div class=\"${1}\">\\n\t\t${2}\\n\t</div>\\nsnippet div#\\n\t<div id=\"${1}\">\\n\t\t${2}\\n\t</div>\\nsnippet dl\\n\t<dl>\\n\t\t${1}\\n\t</dl>\\nsnippet dl.\\n\t<dl class=\"${1}\">\\n\t\t${2}\\n\t</dl>\\nsnippet dl#\\n\t<dl id=\"${1}\">\\n\t\t${2}\\n\t</dl>\\nsnippet dl+\\n\t<dl>\\n\t\t<dt>${1}</dt>\\n\t\t<dd>${2}</dd>\\n\t\tdt+${3}\\n\t</dl>\\nsnippet dt\\n\t<dt>${1}</dt>\\nsnippet dt.\\n\t<dt class=\"${1}\">${2}</dt>\\nsnippet dt#\\n\t<dt id=\"${1}\">${2}</dt>\\nsnippet dt+\\n\t<dt>${1}</dt>\\n\t<dd>${2}</dd>\\n\tdt+${3}\\nsnippet em\\n\t<em>${1}</em>\\nsnippet embed\\n\t<embed src=${1} type=\"${2} />\\nsnippet fieldset\\n\t<fieldset>\\n\t\t${1}\\n\t</fieldset>\\nsnippet fieldset.\\n\t<fieldset class=\"${1}\">\\n\t\t${2}\\n\t</fieldset>\\nsnippet fieldset#\\n\t<fieldset id=\"${1}\">\\n\t\t${2}\\n\t</fieldset>\\nsnippet fieldset+\\n\t<fieldset>\\n\t\t<legend><span>${1}</span></legend>\\n\t\t${2}\\n\t</fieldset>\\n\tfieldset+${3}\\nsnippet figcaption\\n\t<figcaption>${1}</figcaption>\\nsnippet figure\\n\t<figure>${1}</figure>\\nsnippet footer\\n\t<footer>\\n\t\t${1}\\n\t</footer>\\nsnippet footer.\\n\t<footer class=\"${1}\">\\n\t\t${2}\\n\t</footer>\\nsnippet footer#\\n\t<footer id=\"${1}\">\\n\t\t${2}\\n\t</footer>\\nsnippet form\\n\t<form action=\"${1}\" method=\"${2:get}\" accept-charset=\"utf-8\">\\n\t\t${3}\\n\t</form>\\nsnippet form.\\n\t<form class=\"${1}\" action=\"${2}\" method=\"${3:get}\" accept-charset=\"utf-8\">\\n\t\t${4}\\n\t</form>\\nsnippet form#\\n\t<form id=\"${1}\" action=\"${2}\" method=\"${3:get}\" accept-charset=\"utf-8\">\\n\t\t${4}\\n\t</form>\\nsnippet h1\\n\t<h1>${1}</h1>\\nsnippet h1.\\n\t<h1 class=\"${1}\">${2}</h1>\\nsnippet h1#\\n\t<h1 id=\"${1}\">${2}</h1>\\nsnippet h2\\n\t<h2>${1}</h2>\\nsnippet h2.\\n\t<h2 class=\"${1}\">${2}</h2>\\nsnippet h2#\\n\t<h2 id=\"${1}\">${2}</h2>\\nsnippet h3\\n\t<h3>${1}</h3>\\nsnippet h3.\\n\t<h3 class=\"${1}\">${2}</h3>\\nsnippet h3#\\n\t<h3 id=\"${1}\">${2}</h3>\\nsnippet h4\\n\t<h4>${1}</h4>\\nsnippet h4.\\n\t<h4 class=\"${1}\">${2}</h4>\\nsnippet h4#\\n\t<h4 id=\"${1}\">${2}</h4>\\nsnippet h5\\n\t<h5>${1}</h5>\\nsnippet h5.\\n\t<h5 class=\"${1}\">${2}</h5>\\nsnippet h5#\\n\t<h5 id=\"${1}\">${2}</h5>\\nsnippet h6\\n\t<h6>${1}</h6>\\nsnippet h6.\\n\t<h6 class=\"${1}\">${2}</h6>\\nsnippet h6#\\n\t<h6 id=\"${1}\">${2}</h6>\\nsnippet head\\n\t<head>\\n\t\t<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />\\n\\n\t\t<title>${1:`substitute(Filename(\\'\\', \\'Page Title\\'), \\'^.\\', \\'\\\\u&\\', \\'\\')`}</title>\\n\t\t${2}\\n\t</head>\\nsnippet header\\n\t<header>\\n\t\t${1}\\n\t</header>\\nsnippet header.\\n\t<header class=\"${1}\">\\n\t\t${2}\\n\t</header>\\nsnippet header#\\n\t<header id=\"${1}\">\\n\t\t${2}\\n\t</header>\\nsnippet hgroup\\n\t<hgroup>\\n\t\t${1}\\n\t</hgroup>\\nsnippet hgroup.\\n\t<hgroup class=\"${1}>\\n\t\t${2}\\n\t</hgroup>\\nsnippet hr\\n\t<hr />${1}\\nsnippet html\\n\t<html>\\n\t${1}\\n\t</html>\\nsnippet xhtml\\n\t<html xmlns=\"http://www.w3.org/1999/xhtml\">\\n\t${1}\\n\t</html>\\nsnippet html5\\n\t<!DOCTYPE html>\\n\t<html>\\n\t\t<head>\\n\t\t\t<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />\\n\t\t\t<title>${1:`substitute(Filename(\\'\\', \\'Page Title\\'), \\'^.\\', \\'\\\\u&\\', \\'\\')`}</title>\\n\t\t\t${2:meta}\\n\t\t</head>\\n\t\t<body>\\n\t\t\t${3:body}\\n\t\t</body>\\n\t</html>\\nsnippet i\\n\t<i>${1}</i>\\nsnippet iframe\\n\t<iframe src=\"${1}\" frameborder=\"0\"></iframe>${2}\\nsnippet iframe.\\n\t<iframe class=\"${1}\" src=\"${2}\" frameborder=\"0\"></iframe>${3}\\nsnippet iframe#\\n\t<iframe id=\"${1}\" src=\"${2}\" frameborder=\"0\"></iframe>${3}\\nsnippet img\\n\t<img src=\"${1}\" alt=\"${2}\" />${3}\\nsnippet img.\\n\t<img class=\"${1}\" src=\"${2}\" alt=\"${3}\" />${4}\\nsnippet img#\\n\t<img id=\"${1}\" src=\"${2}\" alt=\"${3}\" />${4}\\nsnippet input\\n\t<input type=\"${1:text/submit/hidden/button/image}\" name=\"${2}\" id=\"${3:$2}\" value=\"${4}\" />${5}\\nsnippet input.\\n\t<input class=\"${1}\" type=\"${2:text/submit/hidden/button/image}\" name=\"${3}\" id=\"${4:$3}\" value=\"${5}\" />${6}\\nsnippet input:text\\n\t<input type=\"text\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:submit\\n\t<input type=\"submit\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:hidden\\n\t<input type=\"hidden\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:button\\n\t<input type=\"button\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:image\\n\t<input type=\"image\" name=\"${1}\" id=\"${2:$1}\" src=\"${3}\" alt=\"${4}\" />${5}\\nsnippet input:checkbox\\n\t<input type=\"checkbox\" name=\"${1}\" id=\"${2:$1}\" />${3}\\nsnippet input:radio\\n\t<input type=\"radio\" name=\"${1}\" id=\"${2:$1}\" />${3}\\nsnippet input:color\\n\t<input type=\"color\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:date\\n\t<input type=\"date\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:datetime\\n\t<input type=\"datetime\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:datetime-local\\n\t<input type=\"datetime-local\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:email\\n\t<input type=\"email\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:file\\n\t<input type=\"file\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:month\\n\t<input type=\"month\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:number\\n\t<input type=\"number\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:password\\n\t<input type=\"password\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:range\\n\t<input type=\"range\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:reset\\n\t<input type=\"reset\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:search\\n\t<input type=\"search\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:time\\n\t<input type=\"time\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:url\\n\t<input type=\"url\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:week\\n\t<input type=\"week\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet ins\\n\t<ins>${1}</ins>\\nsnippet kbd\\n\t<kbd>${1}</kbd>\\nsnippet keygen\\n\t<keygen>${1}</keygen>\\nsnippet label\\n\t<label for=\"${2:$1}\">${1}</label>\\nsnippet label:i\\n\t<label for=\"${2:$1}\">${1}</label>\\n\t<input type=\"${3:text/submit/hidden/button}\" name=\"${4:$2}\" id=\"${5:$2}\" value=\"${6}\" />${7}\\nsnippet label:s\\n\t<label for=\"${2:$1}\">${1}</label>\\n\t<select name=\"${3:$2}\" id=\"${4:$2}\">\\n\t\t<option value=\"${5}\">${6:$5}</option>\\n\t</select>\\nsnippet legend\\n\t<legend>${1}</legend>\\nsnippet legend+\\n\t<legend><span>${1}</span></legend>\\nsnippet li\\n\t<li>${1}</li>\\nsnippet li.\\n\t<li class=\"${1}\">${2}</li>\\nsnippet li+\\n\t<li>${1}</li>\\n\tli+${2}\\nsnippet lia\\n\t<li><a href=\"${2:#}\">${1}</a></li>\\nsnippet lia+\\n\t<li><a href=\"${2:#}\">${1}</a></li>\\n\tlia+${3}\\nsnippet link\\n\t<link rel=\"${1}\" href=\"${2}\" title=\"${3}\" type=\"${4}\" />${5}\\nsnippet link:atom\\n\t<link rel=\"alternate\" href=\"${1:atom.xml}\" title=\"Atom\" type=\"application/atom+xml\" />${2}\\nsnippet link:css\\n\t<link rel=\"stylesheet\" href=\"${2:style.css}\" type=\"text/css\" media=\"${3:all}\" />${4}\\nsnippet link:favicon\\n\t<link rel=\"shortcut icon\" href=\"${1:favicon.ico}\" type=\"image/x-icon\" />${2}\\nsnippet link:rss\\n\t<link rel=\"alternate\" href=\"${1:rss.xml}\" title=\"RSS\" type=\"application/atom+xml\" />${2}\\nsnippet link:touch\\n\t<link rel=\"apple-touch-icon\" href=\"${1:favicon.png}\" />${2}\\nsnippet map\\n\t<map name=\"${1}\">\\n\t\t${2}\\n\t</map>\\nsnippet map.\\n\t<map class=\"${1}\" name=\"${2}\">\\n\t\t${3}\\n\t</map>\\nsnippet map#\\n\t<map name=\"${1}\" id=\"${2:$1}>\\n\t\t${3}\\n\t</map>\\nsnippet map+\\n\t<map name=\"${1}\">\\n\t\t<area shape=\"${2}\" coords=\"${3}\" href=\"${4}\" alt=\"${5}\" />${6}\\n\t</map>${7}\\nsnippet mark\\n\t<mark>${1}</mark>\\nsnippet menu\\n\t<menu>\\n\t\t${1}\\n\t</menu>\\nsnippet menu:c\\n\t<menu type=\"context\">\\n\t\t${1}\\n\t</menu>\\nsnippet menu:t\\n\t<menu type=\"toolbar\">\\n\t\t${1}\\n\t</menu>\\nsnippet meta\\n\t<meta http-equiv=\"${1}\" content=\"${2}\" />${3}\\nsnippet meta:compat\\n\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=${1:7,8,edge}\" />${3}\\nsnippet meta:refresh\\n\t<meta http-equiv=\"refresh\" content=\"text/html;charset=UTF-8\" />${3}\\nsnippet meta:utf\\n\t<meta http-equiv=\"content-type\" content=\"text/html;charset=UTF-8\" />${3}\\nsnippet meter\\n\t<meter>${1}</meter>\\nsnippet nav\\n\t<nav>\\n\t\t${1}\\n\t</nav>\\nsnippet nav.\\n\t<nav class=\"${1}\">\\n\t\t${2}\\n\t</nav>\\nsnippet nav#\\n\t<nav id=\"${1}\">\\n\t\t${2}\\n\t</nav>\\nsnippet noscript\\n\t<noscript>\\n\t\t${1}\\n\t</noscript>\\nsnippet object\\n\t<object data=\"${1}\" type=\"${2}\">\\n\t\t${3}\\n\t</object>${4}\\n# Embed QT Movie\\nsnippet movie\\n\t<object width=\"$2\" height=\"$3\" classid=\"clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B\"\\n\t codebase=\"http://www.apple.com/qtactivex/qtplugin.cab\">\\n\t\t<param name=\"src\" value=\"$1\" />\\n\t\t<param name=\"controller\" value=\"$4\" />\\n\t\t<param name=\"autoplay\" value=\"$5\" />\\n\t\t<embed src=\"${1:movie.mov}\"\\n\t\t\twidth=\"${2:320}\" height=\"${3:240}\"\\n\t\t\tcontroller=\"${4:true}\" autoplay=\"${5:true}\"\\n\t\t\tscale=\"tofit\" cache=\"true\"\\n\t\t\tpluginspage=\"http://www.apple.com/quicktime/download/\" />\\n\t</object>${6}\\nsnippet ol\\n\t<ol>\\n\t\t${1}\\n\t</ol>\\nsnippet ol.\\n\t<ol class=\"${1}>\\n\t\t${2}\\n\t</ol>\\nsnippet ol#\\n\t<ol id=\"${1}>\\n\t\t${2}\\n\t</ol>\\nsnippet ol+\\n\t<ol>\\n\t\t<li>${1}</li>\\n\t\tli+${2}\\n\t</ol>\\nsnippet opt\\n\t<option value=\"${1}\">${2:$1}</option>\\nsnippet opt+\\n\t<option value=\"${1}\">${2:$1}</option>\\n\topt+${3}\\nsnippet optt\\n\t<option>${1}</option>\\nsnippet optgroup\\n\t<optgroup>\\n\t\t<option value=\"${1}\">${2:$1}</option>\\n\t\topt+${3}\\n\t</optgroup>\\nsnippet output\\n\t<output>${1}</output>\\nsnippet p\\n\t<p>${1}</p>\\nsnippet param\\n\t<param name=\"${1}\" value=\"${2}\" />${3}\\nsnippet pre\\n\t<pre>\\n\t\t${1}\\n\t</pre>\\nsnippet progress\\n\t<progress>${1}</progress>\\nsnippet q\\n\t<q>${1}</q>\\nsnippet rp\\n\t<rp>${1}</rp>\\nsnippet rt\\n\t<rt>${1}</rt>\\nsnippet ruby\\n\t<ruby>\\n\t\t<rp><rt>${1}</rt></rp>\\n\t</ruby>\\nsnippet s\\n\t<s>${1}</s>\\nsnippet samp\\n\t<samp>\\n\t\t${1}\\n\t</samp>\\nsnippet script\\n\t<script type=\"text/javascript\" charset=\"utf-8\">\\n\t\t${1}\\n\t<\\/script>\\nsnippet scriptsrc\\n\t<script src=\"${1}.js\" type=\"text/javascript\" charset=\"utf-8\"><\\/script>\\nsnippet section\\n\t<section>\\n\t\t${1}\\n\t</section>\\nsnippet section.\\n\t<section class=\"${1}\">\\n\t\t${2}\\n\t</section>\\nsnippet section#\\n\t<section id=\"${1}\">\\n\t\t${2}\\n\t</section>\\nsnippet select\\n\t<select name=\"${1}\" id=\"${2:$1}\">\\n\t\t${3}\\n\t</select>\\nsnippet select.\\n\t<select name=\"${1}\" id=\"${2:$1}\" class=\"${3}>\\n\t\t${4}\\n\t</select>\\nsnippet select+\\n\t<select name=\"${1}\" id=\"${2:$1}\">\\n\t\t<option value=\"${3}\">${4:$3}</option>\\n\t\topt+${5}\\n\t</select>\\nsnippet small\\n\t<small>${1}</small>\\nsnippet source\\n\t<source src=\"${1}\" type=\"${2}\" media=\"${3}\" />\\nsnippet span\\n\t<span>${1}</span>\\nsnippet strong\\n\t<strong>${1}</strong>\\nsnippet style\\n\t<style type=\"text/css\" media=\"${1:all}\">\\n\t\t${2}\\n\t</style>\\nsnippet sub\\n\t<sub>${1}</sub>\\nsnippet summary\\n\t<summary>\\n\t\t${1}\\n\t</summary>\\nsnippet sup\\n\t<sup>${1}</sup>\\nsnippet table\\n\t<table border=\"${1:0}\">\\n\t\t${2}\\n\t</table>\\nsnippet table.\\n\t<table class=\"${1}\" border=\"${2:0}\">\\n\t\t${3}\\n\t</table>\\nsnippet table#\\n\t<table id=\"${1}\" border=\"${2:0}\">\\n\t\t${3}\\n\t</table>\\nsnippet tbody\\n\t<tbody>\\n\t\t${1}\\n\t</tbody>\\nsnippet td\\n\t<td>${1}</td>\\nsnippet td.\\n\t<td class=\"${1}\">${2}</td>\\nsnippet td#\\n\t<td id=\"${1}\">${2}</td>\\nsnippet td+\\n\t<td>${1}</td>\\n\ttd+${2}\\nsnippet textarea\\n\t<textarea name=\"${1}\" id=${2:$1} rows=\"${3:8}\" cols=\"${4:40}\">${5}</textarea>${6}\\nsnippet tfoot\\n\t<tfoot>\\n\t\t${1}\\n\t</tfoot>\\nsnippet th\\n\t<th>${1}</th>\\nsnippet th.\\n\t<th class=\"${1}\">${2}</th>\\nsnippet th#\\n\t<th id=\"${1}\">${2}</th>\\nsnippet th+\\n\t<th>${1}</th>\\n\tth+${2}\\nsnippet thead\\n\t<thead>\\n\t\t${1}\\n\t</thead>\\nsnippet time\\n\t<time datetime=\"${1}\" pubdate=\"${2:$1}>${3:$1}</time>\\nsnippet title\\n\t<title>${1:`substitute(Filename(\\'\\', \\'Page Title\\'), \\'^.\\', \\'\\\\u&\\', \\'\\')`}</title>\\nsnippet tr\\n\t<tr>\\n\t\t${1}\\n\t</tr>\\nsnippet tr+\\n\t<tr>\\n\t\t<td>${1}</td>\\n\t\ttd+${2}\\n\t</tr>\\nsnippet track\\n\t<track src=\"${1}\" srclang=\"${2}\" label=\"${3}\" default=\"${4:default}>${5}</track>${6}\\nsnippet ul\\n\t<ul>\\n\t\t${1}\\n\t</ul>\\nsnippet ul.\\n\t<ul class=\"${1}\">\\n\t\t${2}\\n\t</ul>\\nsnippet ul#\\n\t<ul id=\"${1}\">\\n\t\t${2}\\n\t</ul>\\nsnippet ul+\\n\t<ul>\\n\t\t<li>${1}</li>\\n\t\tli+${2}\\n\t</ul>\\nsnippet var\\n\t<var>${1}</var>\\nsnippet video\\n\t<video src=\"${1} height=\"${2}\" width=\"${3}\" preload=\"${5:none}\" autoplay=\"${6:autoplay}>${7}</video>${8}\\nsnippet wbr\\n\t<wbr />${1}\\n',t.scope=\"html\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/html_elixir.js",
    "content": "ace.define(\"ace/snippets/html_elixir\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"html_elixir\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/html_ruby.js",
    "content": "ace.define(\"ace/snippets/html_ruby\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"html_ruby\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/ini.js",
    "content": "ace.define(\"ace/snippets/ini\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"ini\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/io.js",
    "content": "ace.define(\"ace/snippets/io\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippets=[{content:\"assertEquals(${1:expected}, ${2:expr})\",name:\"assertEquals\",scope:\"io\",tabTrigger:\"ae\"},{content:\"${1:${2:newValue} := ${3:Object} }clone do(\\n\t$0\\n)\",name:\"clone do\",scope:\"io\",tabTrigger:\"cdo\"},{content:'docSlot(\"${1:slotName}\", \"${2:documentation}\")',name:\"docSlot\",scope:\"io\",tabTrigger:\"ds\"},{content:\"(${1:header,}\\n\t${2:body}\\n)$0\",keyEquivalent:\"@(\",name:\"Indented Bracketed Line\",scope:\"io\",tabTrigger:\"(\"},{content:\"\\n\t$0\\n\",keyEquivalent:\"\\r\",name:\"Special: Return Inside Empty Parenthesis\",scope:\"io meta.empty-parenthesis.io, io meta.comma-parenthesis.io\"},{content:\"${1:methodName} := method(${2:args,}\\n\t$0\\n)\",name:\"method\",scope:\"io\",tabTrigger:\"m\"},{content:'newSlot(\"${1:slotName}\", ${2:defaultValue}, \"${3:docString}\")$0',name:\"newSlot\",scope:\"io\",tabTrigger:\"ns\"},{content:\"${1:name} := Object clone do(\\n\t$0\\n)\",name:\"Object clone do\",scope:\"io\",tabTrigger:\"ocdo\"},{content:\"test${1:SomeFeature} := method(\\n\t$0\\n)\",name:\"testMethod\",scope:\"io\",tabTrigger:\"ts\"},{content:\"${1:Something}Test := ${2:UnitTest} clone do(\\n\t$0\\n)\",name:\"UnitTest\",scope:\"io\",tabTrigger:\"ut\"}],t.scope=\"io\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/jack.js",
    "content": "ace.define(\"ace/snippets/jack\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"jack\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/jade.js",
    "content": "ace.define(\"ace/snippets/jade\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"jade\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/java.js",
    "content": "ace.define(\"ace/snippets/java\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='## Access Modifiers\\nsnippet po\\n\tprotected\\nsnippet pu\\n\tpublic\\nsnippet pr\\n\tprivate\\n##\\n## Annotations\\nsnippet before\\n\t@Before\\n\tstatic void ${1:intercept}(${2:args}) { ${3} }\\nsnippet mm\\n\t@ManyToMany\\n\t${1}\\nsnippet mo\\n\t@ManyToOne\\n\t${1}\\nsnippet om\\n\t@OneToMany${1:(cascade=CascadeType.ALL)}\\n\t${2}\\nsnippet oo\\n\t@OneToOne\\n\t${1}\\n##\\n## Basic Java packages and import\\nsnippet im\\n\timport\\nsnippet j.b\\n\tjava.beans.\\nsnippet j.i\\n\tjava.io.\\nsnippet j.m\\n\tjava.math.\\nsnippet j.n\\n\tjava.net.\\nsnippet j.u\\n\tjava.util.\\n##\\n## Class\\nsnippet cl\\n\tclass ${1:`Filename(\"\", \"untitled\")`} ${2}\\nsnippet in\\n\tinterface ${1:`Filename(\"\", \"untitled\")`} ${2:extends Parent}${3}\\nsnippet tc\\n\tpublic class ${1:`Filename()`} extends ${2:TestCase}\\n##\\n## Class Enhancements\\nsnippet ext\\n\textends \\nsnippet imp\\n\timplements\\n##\\n## Comments\\nsnippet /*\\n\t/*\\n\t * ${1}\\n\t */\\n##\\n## Constants\\nsnippet co\\n\tstatic public final ${1:String} ${2:var} = ${3};${4}\\nsnippet cos\\n\tstatic public final String ${1:var} = \"${2}\";${3}\\n##\\n## Control Statements\\nsnippet case\\n\tcase ${1}:\\n\t\t${2}\\nsnippet def\\n\tdefault:\\n\t\t${2}\\nsnippet el\\n\telse\\nsnippet elif\\n\telse if (${1}) ${2}\\nsnippet if\\n\tif (${1}) ${2}\\nsnippet sw\\n\tswitch (${1}) {\\n\t\t${2}\\n\t}\\n##\\n## Create a Method\\nsnippet m\\n\t${1:void} ${2:method}(${3}) ${4:throws }${5}\\n##\\n## Create a Variable\\nsnippet v\\n\t${1:String} ${2:var}${3: = null}${4};${5}\\n##\\n## Enhancements to Methods, variables, classes, etc.\\nsnippet ab\\n\tabstract\\nsnippet fi\\n\tfinal\\nsnippet st\\n\tstatic\\nsnippet sy\\n\tsynchronized\\n##\\n## Error Methods\\nsnippet err\\n\tSystem.err.print(\"${1:Message}\");\\nsnippet errf\\n\tSystem.err.printf(\"${1:Message}\", ${2:exception});\\nsnippet errln\\n\tSystem.err.println(\"${1:Message}\");\\n##\\n## Exception Handling\\nsnippet as\\n\tassert ${1:test} : \"${2:Failure message}\";${3}\\nsnippet ca\\n\tcatch(${1:Exception} ${2:e}) ${3}\\nsnippet thr\\n\tthrow\\nsnippet ths\\n\tthrows\\nsnippet try\\n\ttry {\\n\t\t${3}\\n\t} catch(${1:Exception} ${2:e}) {\\n\t}\\nsnippet tryf\\n\ttry {\\n\t\t${3}\\n\t} catch(${1:Exception} ${2:e}) {\\n\t} finally {\\n\t}\\n##\\n## Find Methods\\nsnippet findall\\n\tList<${1:listName}> ${2:items} = ${1}.findAll();${3}\\nsnippet findbyid\\n\t${1:var} ${2:item} = ${1}.findById(${3});${4}\\n##\\n## Javadocs\\nsnippet /**\\n\t/**\\n\t * ${1}\\n\t */\\nsnippet @au\\n\t@author `system(\"grep \\\\`id -un\\\\` /etc/passwd | cut -d \\\\\":\\\\\" -f5 | cut -d \\\\\",\\\\\" -f1\")`\\nsnippet @br\\n\t@brief ${1:Description}\\nsnippet @fi\\n\t@file ${1:`Filename()`}.java\\nsnippet @pa\\n\t@param ${1:param}\\nsnippet @re\\n\t@return ${1:param}\\n##\\n## Logger Methods\\nsnippet debug\\n\tLogger.debug(${1:param});${2}\\nsnippet error\\n\tLogger.error(${1:param});${2}\\nsnippet info\\n\tLogger.info(${1:param});${2}\\nsnippet warn\\n\tLogger.warn(${1:param});${2}\\n##\\n## Loops\\nsnippet enfor\\n\tfor (${1} : ${2}) ${3}\\nsnippet for\\n\tfor (${1}; ${2}; ${3}) ${4}\\nsnippet wh\\n\twhile (${1}) ${2}\\n##\\n## Main method\\nsnippet main\\n\tpublic static void main (String[] args) {\\n\t\t${1:/* code */}\\n\t}\\n##\\n## Print Methods\\nsnippet print\\n\tSystem.out.print(\"${1:Message}\");\\nsnippet printf\\n\tSystem.out.printf(\"${1:Message}\", ${2:args});\\nsnippet println\\n\tSystem.out.println(${1});\\n##\\n## Render Methods\\nsnippet ren\\n\trender(${1:param});${2}\\nsnippet rena\\n\trenderArgs.put(\"${1}\", ${2});${3}\\nsnippet renb\\n\trenderBinary(${1:param});${2}\\nsnippet renj\\n\trenderJSON(${1:param});${2}\\nsnippet renx\\n\trenderXml(${1:param});${2}\\n##\\n## Setter and Getter Methods\\nsnippet set\\n\t${1:public} void set${3:}(${2:String} ${4:}){\\n\t\tthis.$4 = $4;\\n\t}\\nsnippet get\\n\t${1:public} ${2:String} get${3:}(){\\n\t\treturn this.${4:};\\n\t}\\n##\\n## Terminate Methods or Loops\\nsnippet re\\n\treturn\\nsnippet br\\n\tbreak;\\n##\\n## Test Methods\\nsnippet t\\n\tpublic void test${1:Name}() throws Exception {\\n\t\t${2}\\n\t}\\nsnippet test\\n\t@Test\\n\tpublic void test${1:Name}() throws Exception {\\n\t\t${2}\\n\t}\\n##\\n## Utils\\nsnippet Sc\\n\tScanner\\n##\\n## Miscellaneous\\nsnippet action\\n\tpublic static void ${1:index}(${2:args}) { ${3} }\\nsnippet rnf\\n\tnotFound(${1:param});${2}\\nsnippet rnfin\\n\tnotFoundIfNull(${1:param});${2}\\nsnippet rr\\n\tredirect(${1:param});${2}\\nsnippet ru\\n\tunauthorized(${1:param});${2}\\nsnippet unless\\n\t(unless=${1:param});${2}\\n',t.scope=\"java\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/javascript.js",
    "content": "ace.define(\"ace/snippets/javascript\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='# Prototype\\nsnippet proto\\n\t${1:class_name}.prototype.${2:method_name} = function(${3:first_argument}) {\\n\t\t${4:// body...}\\n\t};\\n# Function\\nsnippet fun\\n\tfunction ${1?:function_name}(${2:argument}) {\\n\t\t${3:// body...}\\n\t}\\n# Anonymous Function\\nregex /((=)\\\\s*|(:)\\\\s*|(\\\\()|\\\\b)/f/(\\\\))?/\\nsnippet f\\n\tfunction${M1?: ${1:functionName}}($2) {\\n\t\t${0:$TM_SELECTED_TEXT}\\n\t}${M2?;}${M3?,}${M4?)}\\n# Immediate function\\ntrigger \\\\(?f\\\\(\\nendTrigger \\\\)?\\nsnippet f(\\n\t(function(${1}) {\\n\t\t${0:${TM_SELECTED_TEXT:/* code */}}\\n\t}(${1}));\\n# if\\nsnippet if\\n\tif (${1:true}) {\\n\t\t${0}\\n\t}\\n# if ... else\\nsnippet ife\\n\tif (${1:true}) {\\n\t\t${2}\\n\t} else {\\n\t\t${0}\\n\t}\\n# tertiary conditional\\nsnippet ter\\n\t${1:/* condition */} ? ${2:a} : ${3:b}\\n# switch\\nsnippet switch\\n\tswitch (${1:expression}) {\\n\t\tcase \\'${3:case}\\':\\n\t\t\t${4:// code}\\n\t\t\tbreak;\\n\t\t${5}\\n\t\tdefault:\\n\t\t\t${2:// code}\\n\t}\\n# case\\nsnippet case\\n\tcase \\'${1:case}\\':\\n\t\t${2:// code}\\n\t\tbreak;\\n\t${3}\\n\\n# while (...) {...}\\nsnippet wh\\n\twhile (${1:/* condition */}) {\\n\t\t${0:/* code */}\\n\t}\\n# try\\nsnippet try\\n\ttry {\\n\t\t${0:/* code */}\\n\t} catch (e) {}\\n# do...while\\nsnippet do\\n\tdo {\\n\t\t${2:/* code */}\\n\t} while (${1:/* condition */});\\n# Object Method\\nsnippet :f\\nregex /([,{[])|^\\\\s*/:f/\\n\t${1:method_name}: function(${2:attribute}) {\\n\t\t${0}\\n\t}${3:,}\\n# setTimeout function\\nsnippet setTimeout\\nregex /\\\\b/st|timeout|setTimeo?u?t?/\\n\tsetTimeout(function() {${3:$TM_SELECTED_TEXT}}, ${1:10});\\n# Get Elements\\nsnippet gett\\n\tgetElementsBy${1:TagName}(\\'${2}\\')${3}\\n# Get Element\\nsnippet get\\n\tgetElementBy${1:Id}(\\'${2}\\')${3}\\n# console.log (Firebug)\\nsnippet cl\\n\tconsole.log(${1});\\n# return\\nsnippet ret\\n\treturn ${1:result}\\n# for (property in object ) { ... }\\nsnippet fori\\n\tfor (var ${1:prop} in ${2:Things}) {\\n\t\t${0:$2[$1]}\\n\t}\\n# hasOwnProperty\\nsnippet has\\n\thasOwnProperty(${1})\\n# docstring\\nsnippet /**\\n\t/**\\n\t * ${1:description}\\n\t *\\n\t */\\nsnippet @par\\nregex /^\\\\s*\\\\*\\\\s*/@(para?m?)?/\\n\t@param {${1:type}} ${2:name} ${3:description}\\nsnippet @ret\\n\t@return {${1:type}} ${2:description}\\n# JSON.parse\\nsnippet jsonp\\n\tJSON.parse(${1:jstr});\\n# JSON.stringify\\nsnippet jsons\\n\tJSON.stringify(${1:object});\\n# self-defining function\\nsnippet sdf\\n\tvar ${1:function_name} = function(${2:argument}) {\\n\t\t${3:// initial code ...}\\n\\n\t\t$1 = function($2) {\\n\t\t\t${4:// main code}\\n\t\t};\\n\t}\\n# singleton\\nsnippet sing\\n\tfunction ${1:Singleton} (${2:argument}) {\\n\t\t// the cached instance\\n\t\tvar instance;\\n\\n\t\t// rewrite the constructor\\n\t\t$1 = function $1($2) {\\n\t\t\treturn instance;\\n\t\t};\\n\t\t\\n\t\t// carry over the prototype properties\\n\t\t$1.prototype = this;\\n\\n\t\t// the instance\\n\t\tinstance = new $1();\\n\\n\t\t// reset the constructor pointer\\n\t\tinstance.constructor = $1;\\n\\n\t\t${3:// code ...}\\n\\n\t\treturn instance;\\n\t}\\n# class\\nsnippet class\\nregex /^\\\\s*/clas{0,2}/\\n\tvar ${1:class} = function(${20}) {\\n\t\t$40$0\\n\t};\\n\t\\n\t(function() {\\n\t\t${60:this.prop = \"\"}\\n\t}).call(${1:class}.prototype);\\n\t\\n\texports.${1:class} = ${1:class};\\n# \\nsnippet for-\\n\tfor (var ${1:i} = ${2:Things}.length; ${1:i}--; ) {\\n\t\t${0:${2:Things}[${1:i}];}\\n\t}\\n# for (...) {...}\\nsnippet for\\n\tfor (var ${1:i} = 0; $1 < ${2:Things}.length; $1++) {\\n\t\t${3:$2[$1]}$0\\n\t}\\n# for (...) {...} (Improved Native For-Loop)\\nsnippet forr\\n\tfor (var ${1:i} = ${2:Things}.length - 1; $1 >= 0; $1--) {\\n\t\t${3:$2[$1]}$0\\n\t}\\n\\n\\n#modules\\nsnippet def\\n\tdefine(function(require, exports, module) {\\n\t\"use strict\";\\n\tvar ${1/.*\\\\///} = require(\"${1}\");\\n\t\\n\t$TM_SELECTED_TEXT\\n\t});\\nsnippet req\\nguard ^\\\\s*\\n\tvar ${1/.*\\\\///} = require(\"${1}\");\\n\t$0\\nsnippet requ\\nguard ^\\\\s*\\n\tvar ${1/.*\\\\/(.)/\\\\u$1/} = require(\"${1}\").${1/.*\\\\/(.)/\\\\u$1/};\\n\t$0\\n',t.scope=\"javascript\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/json.js",
    "content": "ace.define(\"ace/snippets/json\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"json\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/jsoniq.js",
    "content": "ace.define(\"ace/snippets/jsoniq\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='snippet for\\n\tfor $${1:item} in ${2:expr}\\nsnippet return\\n\treturn ${1:expr}\\nsnippet import\\n\timport module namespace ${1:ns} = \"${2:http://www.example.com/}\";\\nsnippet some\\n\tsome $${1:varname} in ${2:expr} satisfies ${3:expr}\\nsnippet every\\n\tevery $${1:varname} in ${2:expr} satisfies ${3:expr}\\nsnippet if\\n\tif(${1:true}) then ${2:expr} else ${3:true}\\nsnippet switch\\n\tswitch(${1:\"foo\"})\\n\tcase ${2:\"foo\"}\\n\treturn ${3:true}\\n\tdefault return ${4:false}\\nsnippet try\\n\ttry { ${1:expr} } catch ${2:*} { ${3:expr} }\\nsnippet tumbling\\n\tfor tumbling window $${1:varname} in ${2:expr}\\n\tstart at $${3:start} when ${4:expr}\\n\tend at $${5:end} when ${6:expr}\\n\treturn ${7:expr}\\nsnippet sliding\\n\tfor sliding window $${1:varname} in ${2:expr}\\n\tstart at $${3:start} when ${4:expr}\\n\tend at $${5:end} when ${6:expr}\\n\treturn ${7:expr}\\nsnippet let\\n\tlet $${1:varname} := ${2:expr}\\nsnippet group\\n\tgroup by $${1:varname} := ${2:expr}\\nsnippet order\\n\torder by ${1:expr} ${2:descending}\\nsnippet stable\\n\tstable order by ${1:expr}\\nsnippet count\\n\tcount $${1:varname}\\nsnippet ordered\\n\tordered { ${1:expr} }\\nsnippet unordered\\n\tunordered { ${1:expr} }\\nsnippet treat \\n\ttreat as ${1:expr}\\nsnippet castable\\n\tcastable as ${1:atomicType}\\nsnippet cast\\n\tcast as ${1:atomicType}\\nsnippet typeswitch\\n\ttypeswitch(${1:expr})\\n\tcase ${2:type}  return ${3:expr}\\n\tdefault return ${4:expr}\\nsnippet var\\n\tdeclare variable $${1:varname} := ${2:expr};\\nsnippet fn\\n\tdeclare function ${1:ns}:${2:name}(){\\n\t${3:expr}\\n\t};\\nsnippet module\\n\tmodule namespace ${1:ns} = \"${2:http://www.example.com}\";\\n',t.scope=\"jsoniq\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/jsp.js",
    "content": "ace.define(\"ace/snippets/jsp\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='snippet @page\\n\t<%@page contentType=\"text/html\" pageEncoding=\"UTF-8\"%>\\nsnippet jstl\\n\t<%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\" %>\\n\t<%@ taglib uri=\"http://java.sun.com/jsp/jstl/functions\" prefix=\"fn\" %>\\nsnippet jstl:c\\n\t<%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\" %>\\nsnippet jstl:fn\\n\t<%@ taglib uri=\"http://java.sun.com/jsp/jstl/functions\" prefix=\"fn\" %>\\nsnippet cpath\\n\t${pageContext.request.contextPath}\\nsnippet cout\\n\t<c:out value=\"${1}\" default=\"${2}\" />\\nsnippet cset\\n\t<c:set var=\"${1}\" value=\"${2}\" />\\nsnippet cremove\\n\t<c:remove var=\"${1}\" scope=\"${2:page}\" />\\nsnippet ccatch\\n\t<c:catch var=\"${1}\" />\\nsnippet cif\\n\t<c:if test=\"${${1}}\">\\n\t\t${2}\\n\t</c:if>\\nsnippet cchoose\\n\t<c:choose>\\n\t\t${1}\\n\t</c:choose>\\nsnippet cwhen\\n\t<c:when test=\"${${1}}\">\\n\t\t${2}\\n\t</c:when>\\nsnippet cother\\n\t<c:otherwise>\\n\t\t${1}\\n\t</c:otherwise>\\nsnippet cfore\\n\t<c:forEach items=\"${${1}}\" var=\"${2}\" varStatus=\"${3}\">\\n\t\t${4:<c:out value=\"$2\" />}\\n\t</c:forEach>\\nsnippet cfort\\n\t<c:set var=\"${1}\">${2:item1,item2,item3}</c:set>\\n\t<c:forTokens var=\"${3}\" items=\"${$1}\" delims=\"${4:,}\">\\n\t\t${5:<c:out value=\"$3\" />}\\n\t</c:forTokens>\\nsnippet cparam\\n\t<c:param name=\"${1}\" value=\"${2}\" />\\nsnippet cparam+\\n\t<c:param name=\"${1}\" value=\"${2}\" />\\n\tcparam+${3}\\nsnippet cimport\\n\t<c:import url=\"${1}\" />\\nsnippet cimport+\\n\t<c:import url=\"${1}\">\\n\t\t<c:param name=\"${2}\" value=\"${3}\" />\\n\t\tcparam+${4}\\n\t</c:import>\\nsnippet curl\\n\t<c:url value=\"${1}\" var=\"${2}\" />\\n\t<a href=\"${$2}\">${3}</a>\\nsnippet curl+\\n\t<c:url value=\"${1}\" var=\"${2}\">\\n\t\t<c:param name=\"${4}\" value=\"${5}\" />\\n\t\tcparam+${6}\\n\t</c:url>\\n\t<a href=\"${$2}\">${3}</a>\\nsnippet credirect\\n\t<c:redirect url=\"${1}\" />\\nsnippet contains\\n\t${fn:contains(${1:string}, ${2:substr})}\\nsnippet contains:i\\n\t${fn:containsIgnoreCase(${1:string}, ${2:substr})}\\nsnippet endswith\\n\t${fn:endsWith(${1:string}, ${2:suffix})}\\nsnippet escape\\n\t${fn:escapeXml(${1:string})}\\nsnippet indexof\\n\t${fn:indexOf(${1:string}, ${2:substr})}\\nsnippet join\\n\t${fn:join(${1:collection}, ${2:delims})}\\nsnippet length\\n\t${fn:length(${1:collection_or_string})}\\nsnippet replace\\n\t${fn:replace(${1:string}, ${2:substr}, ${3:replace})}\\nsnippet split\\n\t${fn:split(${1:string}, ${2:delims})}\\nsnippet startswith\\n\t${fn:startsWith(${1:string}, ${2:prefix})}\\nsnippet substr\\n\t${fn:substring(${1:string}, ${2:begin}, ${3:end})}\\nsnippet substr:a\\n\t${fn:substringAfter(${1:string}, ${2:substr})}\\nsnippet substr:b\\n\t${fn:substringBefore(${1:string}, ${2:substr})}\\nsnippet lc\\n\t${fn:toLowerCase(${1:string})}\\nsnippet uc\\n\t${fn:toUpperCase(${1:string})}\\nsnippet trim\\n\t${fn:trim(${1:string})}\\n',t.scope=\"jsp\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/jsx.js",
    "content": "ace.define(\"ace/snippets/jsx\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"jsx\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/julia.js",
    "content": "ace.define(\"ace/snippets/julia\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"julia\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/kotlin.js",
    "content": "ace.define(\"ace/snippets/kotlin\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/latex.js",
    "content": "ace.define(\"ace/snippets/latex\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"latex\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/lean.js",
    "content": "ace.define(\"ace/snippets/lean\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"lean\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/less.js",
    "content": "ace.define(\"ace/snippets/less\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"less\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/liquid.js",
    "content": "ace.define(\"ace/snippets/liquid\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"liquid\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/lisp.js",
    "content": "ace.define(\"ace/snippets/lisp\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"lisp\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/live_script.js",
    "content": "ace.define(\"ace/snippets/live_script\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/livescript.js",
    "content": "ace.define(\"ace/snippets/livescript\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"livescript\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/logiql.js",
    "content": "ace.define(\"ace/snippets/logiql\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"logiql\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/lsl.js",
    "content": "ace.define(\"ace/snippets/lsl\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"snippet @\\n\t@${1:label};\\nsnippet CAMERA_ACTIVE\\n\tCAMERA_ACTIVE, ${1:integer isActive}, $0\\nsnippet CAMERA_BEHINDNESS_ANGLE\\n\tCAMERA_BEHINDNESS_ANGLE, ${1:float degrees}, $0\\nsnippet CAMERA_BEHINDNESS_LAG\\n\tCAMERA_BEHINDNESS_LAG, ${1:float seconds}, $0\\nsnippet CAMERA_DISTANCE\\n\tCAMERA_DISTANCE, ${1:float meters}, $0\\nsnippet CAMERA_FOCUS\\n\tCAMERA_FOCUS, ${1:vector position}, $0\\nsnippet CAMERA_FOCUS_LAG\\n\tCAMERA_FOCUS_LAG, ${1:float seconds}, $0\\nsnippet CAMERA_FOCUS_LOCKED\\n\tCAMERA_FOCUS_LOCKED, ${1:integer isLocked}, $0\\nsnippet CAMERA_FOCUS_OFFSET\\n\tCAMERA_FOCUS_OFFSET, ${1:vector meters}, $0\\nsnippet CAMERA_FOCUS_THRESHOLD\\n\tCAMERA_FOCUS_THRESHOLD, ${1:float meters}, $0\\nsnippet CAMERA_PITCH\\n\tCAMERA_PITCH, ${1:float degrees}, $0\\nsnippet CAMERA_POSITION\\n\tCAMERA_POSITION, ${1:vector position}, $0\\nsnippet CAMERA_POSITION_LAG\\n\tCAMERA_POSITION_LAG, ${1:float seconds}, $0\\nsnippet CAMERA_POSITION_LOCKED\\n\tCAMERA_POSITION_LOCKED, ${1:integer isLocked}, $0\\nsnippet CAMERA_POSITION_THRESHOLD\\n\tCAMERA_POSITION_THRESHOLD, ${1:float meters}, $0\\nsnippet CHARACTER_AVOIDANCE_MODE\\n\tCHARACTER_AVOIDANCE_MODE, ${1:integer flags}, $0\\nsnippet CHARACTER_DESIRED_SPEED\\n\tCHARACTER_DESIRED_SPEED, ${1:float speed}, $0\\nsnippet CHARACTER_DESIRED_TURN_SPEED\\n\tCHARACTER_DESIRED_TURN_SPEED, ${1:float speed}, $0\\nsnippet CHARACTER_LENGTH\\n\tCHARACTER_LENGTH, ${1:float length}, $0\\nsnippet CHARACTER_MAX_TURN_RADIUS\\n\tCHARACTER_MAX_TURN_RADIUS, ${1:float radius}, $0\\nsnippet CHARACTER_ORIENTATION\\n\tCHARACTER_ORIENTATION, ${1:integer orientation}, $0\\nsnippet CHARACTER_RADIUS\\n\tCHARACTER_RADIUS, ${1:float radius}, $0\\nsnippet CHARACTER_STAY_WITHIN_PARCEL\\n\tCHARACTER_STAY_WITHIN_PARCEL, ${1:boolean stay}, $0\\nsnippet CHARACTER_TYPE\\n\tCHARACTER_TYPE, ${1:integer type}, $0\\nsnippet HTTP_BODY_MAXLENGTH\\n\tHTTP_BODY_MAXLENGTH, ${1:integer length}, $0\\nsnippet HTTP_CUSTOM_HEADER\\n\tHTTP_CUSTOM_HEADER, ${1:string name}, ${2:string value}, $0\\nsnippet HTTP_METHOD\\n\tHTTP_METHOD, ${1:string method}, $0\\nsnippet HTTP_MIMETYPE\\n\tHTTP_MIMETYPE, ${1:string mimeType}, $0\\nsnippet HTTP_PRAGMA_NO_CACHE\\n\tHTTP_PRAGMA_NO_CACHE, ${1:integer send_header}, $0\\nsnippet HTTP_VERBOSE_THROTTLE\\n\tHTTP_VERBOSE_THROTTLE, ${1:integer noisy}, $0\\nsnippet HTTP_VERIFY_CERT\\n\tHTTP_VERIFY_CERT, ${1:integer verify}, $0\\nsnippet RC_DATA_FLAGS\\n\tRC_DATA_FLAGS, ${1:integer flags}, $0\\nsnippet RC_DETECT_PHANTOM\\n\tRC_DETECT_PHANTOM, ${1:integer dectedPhantom}, $0\\nsnippet RC_MAX_HITS\\n\tRC_MAX_HITS, ${1:integer maxHits}, $0\\nsnippet RC_REJECT_TYPES\\n\tRC_REJECT_TYPES, ${1:integer filterMask}, $0\\nsnippet at_rot_target\\n\tat_rot_target(${1:integer handle}, ${2:rotation targetrot}, ${3:rotation ourrot})\\n\t{\\n\t\t$0\\n\t}\\nsnippet at_target\\n\tat_target(${1:integer tnum}, ${2:vector targetpos}, ${3:vector ourpos})\\n\t{\\n\t\t$0\\n\t}\\nsnippet attach\\n\tattach(${1:key id})\\n\t{\\n\t\t$0\\n\t}\\nsnippet changed\\n\tchanged(${1:integer change})\\n\t{\\n\t\t$0\\n\t}\\nsnippet collision\\n\tcollision(${1:integer index})\\n\t{\\n\t\t$0\\n\t}\\nsnippet collision_end\\n\tcollision_end(${1:integer index})\\n\t{\\n\t\t$0\\n\t}\\nsnippet collision_start\\n\tcollision_start(${1:integer index})\\n\t{\\n\t\t$0\\n\t}\\nsnippet control\\n\tcontrol(${1:key id}, ${2:integer level}, ${3:integer edge})\\n\t{\\n\t\t$0\\n\t}\\nsnippet dataserver\\n\tdataserver(${1:key query_id}, ${2:string data})\\n\t{\\n\t\t$0\\n\t}\\nsnippet do\\n\tdo\\n\t{\\n\t\t$0\\n\t}\\n\twhile (${1:condition});\\nsnippet else\\n\telse\\n\t{\\n\t\t$0\\n\t}\\nsnippet email\\n\temail(${1:string time}, ${2:string address}, ${3:string subject}, ${4:string message}, ${5:integer num_left})\\n\t{\\n\t\t$0\\n\t}\\nsnippet experience_permissions\\n\texperience_permissions(${1:key agent_id})\\n\t{\\n\t\t$0\\n\t}\\nsnippet experience_permissions_denied\\n\texperience_permissions_denied(${1:key agent_id}, ${2:integer reason})\\n\t{\\n\t\t$0\\n\t}\\nsnippet for\\n\tfor (${1:start}; ${3:condition}; ${3:step})\\n\t{\\n\t\t$0\\n\t}\\nsnippet http_request\\n\thttp_request(${1:key request_id}, ${2:string method}, ${3:string body})\\n\t{\\n\t\t$0\\n\t}\\nsnippet http_response\\n\thttp_response(${1:key request_id}, ${2:integer status}, ${3:list metadata}, ${4:string body})\\n\t{\\n\t\t$0\\n\t}\\nsnippet if\\n\tif (${1:condition})\\n\t{\\n\t\t$0\\n\t}\\nsnippet jump\\n\tjump ${1:label};\\nsnippet land_collision\\n\tland_collision(${1:vector pos})\\n\t{\\n\t\t$0\\n\t}\\nsnippet land_collision_end\\n\tland_collision_end(${1:vector pos})\\n\t{\\n\t\t$0\\n\t}\\nsnippet land_collision_start\\n\tland_collision_start(${1:vector pos})\\n\t{\\n\t\t$0\\n\t}\\nsnippet link_message\\n\tlink_message(${1:integer sender_num}, ${2:integer num}, ${3:string str}, ${4:key id})\\n\t{\\n\t\t$0\\n\t}\\nsnippet listen\\n\tlisten(${1:integer channel}, ${2:string name}, ${3:key id}, ${4:string message})\\n\t{\\n\t\t$0\\n\t}\\nsnippet llAbs\\n\tllAbs(${1:integer val})\\nsnippet llAcos\\n\tllAcos(${1:float val})\\nsnippet llAddToLandBanList\\n\tllAddToLandBanList(${1:key agent}, ${2:float hours});\\n\t$0\\nsnippet llAddToLandPassList\\n\tllAddToLandPassList(${1:key agent}, ${2:float hours});\\n\t$0\\nsnippet llAdjustSoundVolume\\n\tllAdjustSoundVolume(${1:float volume});\\n\t$0\\nsnippet llAgentInExperience\\n\tllAgentInExperience(${1:key agent})\\nsnippet llAllowInventoryDrop\\n\tllAllowInventoryDrop(${1:integer add});\\n\t$0\\nsnippet llAngleBetween\\n\tllAngleBetween(${1:rotation a}, ${2:rotation b})\\nsnippet llApplyImpulse\\n\tllApplyImpulse(${1:vector force}, ${2:integer local});\\n\t$0\\nsnippet llApplyRotationalImpulse\\n\tllApplyRotationalImpulse(${1:vector force}, ${2:integer local});\\n\t$0\\nsnippet llAsin\\n\tllAsin(${1:float val})\\nsnippet llAtan2\\n\tllAtan2(${1:float y}, ${2:float x})\\nsnippet llAttachToAvatar\\n\tllAttachToAvatar(${1:integer attach_point});\\n\t$0\\nsnippet llAttachToAvatarTemp\\n\tllAttachToAvatarTemp(${1:integer attach_point});\\n\t$0\\nsnippet llAvatarOnLinkSitTarget\\n\tllAvatarOnLinkSitTarget(${1:integer link})\\nsnippet llAvatarOnSitTarget\\n\tllAvatarOnSitTarget()\\nsnippet llAxes2Rot\\n\tllAxes2Rot(${1:vector fwd}, ${2:vector left}, ${3:vector up})\\nsnippet llAxisAngle2Rot\\n\tllAxisAngle2Rot(${1:vector axis}, ${2:float angle})\\nsnippet llBase64ToInteger\\n\tllBase64ToInteger(${1:string str})\\nsnippet llBase64ToString\\n\tllBase64ToString(${1:string str})\\nsnippet llBreakAllLinks\\n\tllBreakAllLinks();\\n\t$0\\nsnippet llBreakLink\\n\tllBreakLink(${1:integer link});\\n\t$0\\nsnippet llCastRay\\n\tllCastRay(${1:vector start}, ${2:vector end}, ${3:list options});\\n\t$0\\nsnippet llCeil\\n\tllCeil(${1:float val})\\nsnippet llClearCameraParams\\n\tllClearCameraParams();\\n\t$0\\nsnippet llClearLinkMedia\\n\tllClearLinkMedia(${1:integer link}, ${2:integer face});\\n\t$0\\nsnippet llClearPrimMedia\\n\tllClearPrimMedia(${1:integer face});\\n\t$0\\nsnippet llCloseRemoteDataChannel\\n\tllCloseRemoteDataChannel(${1:key channel});\\n\t$0\\nsnippet llCollisionFilter\\n\tllCollisionFilter(${1:string name}, ${2:key id}, ${3:integer accept});\\n\t$0\\nsnippet llCollisionSound\\n\tllCollisionSound(${1:string impact_sound}, ${2:float impact_volume});\\n\t$0\\nsnippet llCos\\n\tllCos(${1:float theta})\\nsnippet llCreateCharacter\\n\tllCreateCharacter(${1:list options});\\n\t$0\\nsnippet llCreateKeyValue\\n\tllCreateKeyValue(${1:string k})\\nsnippet llCreateLink\\n\tllCreateLink(${1:key target}, ${2:integer parent});\\n\t$0\\nsnippet llCSV2List\\n\tllCSV2List(${1:string src})\\nsnippet llDataSizeKeyValue\\n\tllDataSizeKeyValue()\\nsnippet llDeleteCharacter\\n\tllDeleteCharacter();\\n\t$0\\nsnippet llDeleteKeyValue\\n\tllDeleteKeyValue(${1:string k})\\nsnippet llDeleteSubList\\n\tllDeleteSubList(${1:list src}, ${2:integer start}, ${3:integer end})\\nsnippet llDeleteSubString\\n\tllDeleteSubString(${1:string src}, ${2:integer start}, ${3:integer end})\\nsnippet llDetachFromAvatar\\n\tllDetachFromAvatar();\\n\t$0\\nsnippet llDetectedGrab\\n\tllDetectedGrab(${1:integer number})\\nsnippet llDetectedGroup\\n\tllDetectedGroup(${1:integer number})\\nsnippet llDetectedKey\\n\tllDetectedKey(${1:integer number})\\nsnippet llDetectedLinkNumber\\n\tllDetectedLinkNumber(${1:integer number})\\nsnippet llDetectedName\\n\tllDetectedName(${1:integer number})\\nsnippet llDetectedOwner\\n\tllDetectedOwner(${1:integer number})\\nsnippet llDetectedPos\\n\tllDetectedPosl(${1:integer number})\\nsnippet llDetectedRot\\n\tllDetectedRot(${1:integer number})\\nsnippet llDetectedTouchBinormal\\n\tllDetectedTouchBinormal(${1:integer number})\\nsnippet llDetectedTouchFace\\n\tllDetectedTouchFace(${1:integer number})\\nsnippet llDetectedTouchNormal\\n\tllDetectedTouchNormal(${1:integer number})\\nsnippet llDetectedTouchPos\\n\tllDetectedTouchPos(${1:integer number})\\nsnippet llDetectedTouchST\\n\tllDetectedTouchST(${1:integer number})\\nsnippet llDetectedTouchUV\\n\tllDetectedTouchUV(${1:integer number})\\nsnippet llDetectedType\\n\tllDetectedType(${1:integer number})\\nsnippet llDetectedVel\\n\tllDetectedVel(${1:integer number})\\nsnippet llDialog\\n\tllDialog(${1:key agent}, ${2:string message}, ${3:list buttons}, ${4:integer channel});\\n\t$0\\nsnippet llDie\\n\tllDie();\\n\t$0\\nsnippet llDumpList2String\\n\tllDumpList2String(${1:list src}, ${2:string separator})\\nsnippet llEdgeOfWorld\\n\tllEdgeOfWorld(${1:vector pos}, ${2:vector dir})\\nsnippet llEjectFromLand\\n\tllEjectFromLand(${1:key agent});\\n\t$0\\nsnippet llEmail\\n\tllEmail(${1:string address}, ${2:string subject}, ${3:string message});\\n\t$0\\nsnippet llEscapeURL\\n\tllEscapeURL(${1:string url})\\nsnippet llEuler2Rot\\n\tllEuler2Rot(${1:vector v})\\nsnippet llExecCharacterCmd\\n\tllExecCharacterCmd(${1:integer command}, ${2:list options});\\n\t$0\\nsnippet llEvade\\n\tllEvade(${1:key target}, ${2:list options});\\n\t$0\\nsnippet llFabs\\n\tllFabs(${1:float val})\\nsnippet llFleeFrom\\n\tllFleeFrom(${1:vector position}, ${2:float distance}, ${3:list options});\\n\t$0\\nsnippet llFloor\\n\tllFloor(${1:float val})\\nsnippet llForceMouselook\\n\tllForceMouselook(${1:integer mouselook});\\n\t$0\\nsnippet llFrand\\n\tllFrand(${1:float mag})\\nsnippet llGenerateKey\\n\tllGenerateKey()\\nsnippet llGetAccel\\n\tllGetAccel()\\nsnippet llGetAgentInfo\\n\tllGetAgentInfo(${1:key id})\\nsnippet llGetAgentLanguage\\n\tllGetAgentLanguage(${1:key agent})\\nsnippet llGetAgentList\\n\tllGetAgentList(${1:integer scope}, ${2:list options})\\nsnippet llGetAgentSize\\n\tllGetAgentSize(${1:key agent})\\nsnippet llGetAlpha\\n\tllGetAlpha(${1:integer face})\\nsnippet llGetAndResetTime\\n\tllGetAndResetTime()\\nsnippet llGetAnimation\\n\tllGetAnimation(${1:key id})\\nsnippet llGetAnimationList\\n\tllGetAnimationList(${1:key agent})\\nsnippet llGetAnimationOverride\\n\tllGetAnimationOverride(${1:string anim_state})\\nsnippet llGetAttached\\n\tllGetAttached()\\nsnippet llGetAttachedList\\n\tllGetAttachedList(${1:key id})\\nsnippet llGetBoundingBox\\n\tllGetBoundingBox(${1:key object})\\nsnippet llGetCameraPos\\n\tllGetCameraPos()\\nsnippet llGetCameraRot\\n\tllGetCameraRot()\\nsnippet llGetCenterOfMass\\n\tllGetCenterOfMass()\\nsnippet llGetClosestNavPoint\\n\tllGetClosestNavPoint(${1:vector point}, ${2:list options})\\nsnippet llGetColor\\n\tllGetColor(${1:integer face})\\nsnippet llGetCreator\\n\tllGetCreator()\\nsnippet llGetDate\\n\tllGetDate()\\nsnippet llGetDisplayName\\n\tllGetDisplayName(${1:key id})\\nsnippet llGetEnergy\\n\tllGetEnergy()\\nsnippet llGetEnv\\n\tllGetEnv(${1:string name})\\nsnippet llGetExperienceDetails\\n\tllGetExperienceDetails(${1:key experience_id})\\nsnippet llGetExperienceErrorMessage\\n\tllGetExperienceErrorMessage(${1:integer error})\\nsnippet llGetForce\\n\tllGetForce()\\nsnippet llGetFreeMemory\\n\tllGetFreeMemory()\\nsnippet llGetFreeURLs\\n\tllGetFreeURLs()\\nsnippet llGetGeometricCenter\\n\tllGetGeometricCenter()\\nsnippet llGetGMTclock\\n\tllGetGMTclock()\\nsnippet llGetHTTPHeader\\n\tllGetHTTPHeader(${1:key request_id}, ${2:string header})\\nsnippet llGetInventoryCreator\\n\tllGetInventoryCreator(${1:string item})\\nsnippet llGetInventoryKey\\n\tllGetInventoryKey(${1:string name})\\nsnippet llGetInventoryName\\n\tllGetInventoryName(${1:integer type}, ${2:integer number})\\nsnippet llGetInventoryNumber\\n\tllGetInventoryNumber(${1:integer type})\\nsnippet llGetInventoryPermMask\\n\tllGetInventoryPermMask(${1:string item}, ${2:integer mask})\\nsnippet llGetInventoryType\\n\tllGetInventoryType(${1:string name})\\nsnippet llGetKey\\n\tllGetKey()\\nsnippet llGetLandOwnerAt\\n\tllGetLandOwnerAt(${1:vector pos})\\nsnippet llGetLinkKey\\n\tllGetLinkKey(${1:integer link})\\nsnippet llGetLinkMedia\\n\tllGetLinkMedia(${1:integer link}, ${2:integer face}, ${3:list params})\\nsnippet llGetLinkName\\n\tllGetLinkName(${1:integer link})\\nsnippet llGetLinkNumber\\n\tllGetLinkNumber()\\nsnippet llGetLinkNumberOfSides\\n\tllGetLinkNumberOfSides(${1:integer link})\\nsnippet llGetLinkPrimitiveParams\\n\tllGetLinkPrimitiveParams(${1:integer link}, ${2:list params})\\nsnippet llGetListEntryType\\n\tllGetListEntryType(${1:list src}, ${2:integer index})\\nsnippet llGetListLength\\n\tllGetListLength(${1:list src})\\nsnippet llGetLocalPos\\n\tllGetLocalPos()\\nsnippet llGetLocalRot\\n\tllGetLocalRot()\\nsnippet llGetMass\\n\tllGetMass()\\nsnippet llGetMassMKS\\n\tllGetMassMKS()\\nsnippet llGetMaxScaleFactor\\n\tllGetMaxScaleFactor()\\nsnippet llGetMemoryLimit\\n\tllGetMemoryLimit()\\nsnippet llGetMinScaleFactor\\n\tllGetMinScaleFactor()\\nsnippet llGetNextEmail\\n\tllGetNextEmail(${1:string address}, ${2:string subject});\\n\t$0\\nsnippet llGetNotecardLine\\n\tllGetNotecardLine(${1:string name}, ${2:integer line})\\nsnippet llGetNumberOfNotecardLines\\n\tllGetNumberOfNotecardLines(${1:string name})\\nsnippet llGetNumberOfPrims\\n\tllGetNumberOfPrims()\\nsnippet llGetNumberOfSides\\n\tllGetNumberOfSides()\\nsnippet llGetObjectDesc\\n\tllGetObjectDesc()\\nsnippet llGetObjectDetails\\n\tllGetObjectDetails(${1:key id}, ${2:list params})\\nsnippet llGetObjectMass\\n\tllGetObjectMass(${1:key id})\\nsnippet llGetObjectName\\n\tllGetObjectName()\\nsnippet llGetObjectPermMask\\n\tllGetObjectPermMask(${1:integer mask})\\nsnippet llGetObjectPrimCount\\n\tllGetObjectPrimCount(${1:key prim})\\nsnippet llGetOmega\\n\tllGetOmega()\\nsnippet llGetOwner\\n\tllGetOwner()\\nsnippet llGetOwnerKey\\n\tllGetOwnerKey(${1:key id})\\nsnippet llGetParcelDetails\\n\tllGetParcelDetails(${1:vector pos}, ${2:list params})\\nsnippet llGetParcelFlags\\n\tllGetParcelFlags(${1:vector pos})\\nsnippet llGetParcelMaxPrims\\n\tllGetParcelMaxPrims(${1:vector pos}, ${2:integer sim_wide})\\nsnippet llGetParcelMusicURL\\n\tllGetParcelMusicURL()\\nsnippet llGetParcelPrimCount\\n\tllGetParcelPrimCount(${1:vector pos}, ${2:integer category}, ${3:integer sim_wide})\\nsnippet llGetParcelPrimOwners\\n\tllGetParcelPrimOwners(${1:vector pos})\\nsnippet llGetPermissions\\n\tllGetPermissions()\\nsnippet llGetPermissionsKey\\n\tllGetPermissionsKey()\\nsnippet llGetPhysicsMaterial\\n\tllGetPhysicsMaterial()\\nsnippet llGetPos\\n\tllGetPos()\\nsnippet llGetPrimitiveParams\\n\tllGetPrimitiveParams(${1:list params})\\nsnippet llGetPrimMediaParams\\n\tllGetPrimMediaParams(${1:integer face}, ${2:list params})\\nsnippet llGetRegionAgentCount\\n\tllGetRegionAgentCount()\\nsnippet llGetRegionCorner\\n\tllGetRegionCorner()\\nsnippet llGetRegionFlags\\n\tllGetRegionFlags()\\nsnippet llGetRegionFPS\\n\tllGetRegionFPS()\\nsnippet llGetRegionName\\n\tllGetRegionName()\\nsnippet llGetRegionTimeDilation\\n\tllGetRegionTimeDilation()\\nsnippet llGetRootPosition\\n\tllGetRootPosition()\\nsnippet llGetRootRotation\\n\tllGetRootRotation()\\nsnippet llGetRot\\n\tllGetRot()\\nsnippet llGetScale\\n\tllGetScale()\\nsnippet llGetScriptName\\n\tllGetScriptName()\\nsnippet llGetScriptState\\n\tllGetScriptState(${1:string script})\\nsnippet llGetSimStats\\n\tllGetSimStats(${1:integer stat_type})\\nsnippet llGetSimulatorHostname\\n\tllGetSimulatorHostname()\\nsnippet llGetSPMaxMemory\\n\tllGetSPMaxMemory()\\nsnippet llGetStartParameter\\n\tllGetStartParameter()\\nsnippet llGetStaticPath\\n\tllGetStaticPath(${1:vector start}, ${2:vector end}, ${3:float radius}, ${4:list params})\\nsnippet llGetStatus\\n\tllGetStatus(${1:integer status})\\nsnippet llGetSubString\\n\tllGetSubString(${1:string src}, ${2:integer start}, ${3:integer end})\\nsnippet llGetSunDirection\\n\tllGetSunDirection()\\nsnippet llGetTexture\\n\tllGetTexture(${1:integer face})\\nsnippet llGetTextureOffset\\n\tllGetTextureOffset(${1:integer face})\\nsnippet llGetTextureRot\\n\tllGetTextureRot(${1:integer face})\\nsnippet llGetTextureScale\\n\tllGetTextureScale(${1:integer face})\\nsnippet llGetTime\\n\tllGetTime()\\nsnippet llGetTimeOfDay\\n\tllGetTimeOfDay()\\nsnippet llGetTimestamp\\n\tllGetTimestamp()\\nsnippet llGetTorque\\n\tllGetTorque()\\nsnippet llGetUnixTime\\n\tllGetUnixTime()\\nsnippet llGetUsedMemory\\n\tllGetUsedMemory()\\nsnippet llGetUsername\\n\tllGetUsername(${1:key id})\\nsnippet llGetVel\\n\tllGetVel()\\nsnippet llGetWallclock\\n\tllGetWallclock()\\nsnippet llGiveInventory\\n\tllGiveInventory(${1:key destination}, ${2:string inventory});\\n\t$0\\nsnippet llGiveInventoryList\\n\tllGiveInventoryList(${1:key target}, ${2:string folder}, ${3:list inventory});\\n\t$0\\nsnippet llGiveMoney\\n\tllGiveMoney(${1:key destination}, ${2:integer amount})\\nsnippet llGround\\n\tllGround(${1:vector offset})\\nsnippet llGroundContour\\n\tllGroundContour(${1:vector offset})\\nsnippet llGroundNormal\\n\tllGroundNormal(${1:vector offset})\\nsnippet llGroundRepel\\n\tllGroundRepel(${1:float height}, ${2:integer water}, ${3:float tau});\\n\t$0\\nsnippet llGroundSlope\\n\tllGroundSlope(${1:vector offset})\\nsnippet llHTTPRequest\\n\tllHTTPRequest(${1:string url}, ${2:list parameters}, ${3:string body})\\nsnippet llHTTPResponse\\n\tllHTTPResponse(${1:key request_id}, ${2:integer status}, ${3:string body});\\n\t$0\\nsnippet llInsertString\\n\tllInsertString(${1:string dst}, ${2:integer pos}, ${3:string src})\\nsnippet llInstantMessage\\n\tllInstantMessage(${1:key user}, ${2:string message});\\n\t$0\\nsnippet llIntegerToBase64\\n\tllIntegerToBase64(${1:integer number})\\nsnippet llJson2List\\n\tllJson2List(${1:string json})\\nsnippet llJsonGetValue\\n\tllJsonGetValue(${1:string json}, ${2:list specifiers})\\nsnippet llJsonSetValue\\n\tllJsonSetValue(${1:string json}, ${2:list specifiers}, ${3:string newValue})\\nsnippet llJsonValueType\\n\tllJsonValueType(${1:string json}, ${2:list specifiers})\\nsnippet llKey2Name\\n\tllKey2Name(${1:key id})\\nsnippet llKeyCountKeyValue\\n\tllKeyCountKeyValue()\\nsnippet llKeysKeyValue\\n\tllKeysKeyValue(${1:integer first}, ${2:integer count})\\nsnippet llLinkParticleSystem\\n\tllLinkParticleSystem(${1:integer link}, ${2:list rules});\\n\t$0\\nsnippet llLinkSitTarget\\n\tllLinkSitTarget(${1:integer link}, ${2:vector offset}, ${3:rotation rot});\\n\t$0\\nsnippet llList2CSV\\n\tllList2CSV(${1:list src})\\nsnippet llList2Float\\n\tllList2Float(${1:list src}, ${2:integer index})\\nsnippet llList2Integer\\n\tllList2Integer(${1:list src}, ${2:integer index})\\nsnippet llList2Json\\n\tllList2Json(${1:string type}, ${2:list values})\\nsnippet llList2Key\\n\tllList2Key(${1:list src}, ${2:integer index})\\nsnippet llList2List\\n\tllList2List(${1:list src}, ${2:integer start}, ${3:integer end})\\nsnippet llList2ListStrided\\n\tllList2ListStrided(${1:list src}, ${2:integer start}, ${3:integer end}, ${4:integer stride})\\nsnippet llList2Rot\\n\tllList2Rot(${1:list src}, ${2:integer index})\\nsnippet llList2String\\n\tllList2String(${1:list src}, ${2:integer index})\\nsnippet llList2Vector\\n\tllList2Vector(${1:list src}, ${2:integer index})\\nsnippet llListen\\n\tllListen(${1:integer channel}, ${2:string name}, ${3:key id}, ${4:string msg})\\nsnippet llListenControl\\n\tllListenControl(${1:integer handle}, ${2:integer active});\\n\t$0\\nsnippet llListenRemove\\n\tllListenRemove(${1:integer handle});\\n\t$0\\nsnippet llListFindList\\n\tllListFindList(${1:list src}, ${2:list test})\\nsnippet llListInsertList\\n\tllListInsertList(${1:list dest}, ${2:list src}, ${3:integer start})\\nsnippet llListRandomize\\n\tllListRandomize(${1:list src}, ${2:integer stride})\\nsnippet llListReplaceList\\n\tllListReplaceList(${1:list dest}, ${2:list src}, ${3:integer start}, ${4:integer end})\\nsnippet llListSort\\n\tllListSort(${1:list src}, ${2:integer stride}, ${3:integer ascending})\\nsnippet llListStatistics\\n\tllListStatistics(${1:integer operation}, ${2:list src})\\nsnippet llLoadURL\\n\tllLoadURL(${1:key agent}, ${2:string message}, ${3:string url});\\n\t$0\\nsnippet llLog\\n\tllLog(${1:float val})\\nsnippet llLog10\\n\tllLog10(${1:float val})\\nsnippet llLookAt\\n\tllLookAt(${1:vector target}, ${2:float strength}, ${3:float damping});\\n\t$0\\nsnippet llLoopSound\\n\tllLoopSound(${1:string sound}, ${2:float volume});\\n\t$0\\nsnippet llLoopSoundMaster\\n\tllLoopSoundMaster(${1:string sound}, ${2:float volume});\\n\t$0\\nsnippet llLoopSoundSlave\\n\tllLoopSoundSlave(${1:string sound}, ${2:float volume});\\n\t$0\\nsnippet llManageEstateAccess\\n\tllManageEstateAccess(${1:integer action}, ${2:key agent})\\nsnippet llMapDestination\\n\tllMapDestination(${1:string simname}, ${2:vector pos}, ${3:vector look_at});\\n\t$0\\nsnippet llMD5String\\n\tllMD5String(${1:string src}, ${2:integer nonce})\\nsnippet llMessageLinked\\n\tllMessageLinked(${1:integer link}, ${2:integer num}, ${3:string str}, ${4:key id});\\n\t$0\\nsnippet llMinEventDelay\\n\tllMinEventDelay(${1:float delay});\\n\t$0\\nsnippet llModifyLand\\n\tllModifyLand(${1:integer action}, ${2:integer brush});\\n\t$0\\nsnippet llModPow\\n\tllModPow(${1:integer a}, ${2:integer b}, ${3:integer c})\\nsnippet llMoveToTarget\\n\tllMoveToTarget(${1:vector target}, ${2:float tau});\\n\t$0\\nsnippet llNavigateTo\\n\tllNavigateTo(${1:vector pos}, ${2:list options});\\n\t$0\\nsnippet llOffsetTexture\\n\tllOffsetTexture(${1:float u}, ${2:float v}, ${3:integer face});\\n\t$0\\nsnippet llOpenRemoteDataChannel\\n\tllOpenRemoteDataChannel();\\n\t$0\\nsnippet llOverMyLand\\n\tllOverMyLand(${1:key id})\\nsnippet llOwnerSay\\n\tllOwnerSay(${1:string msg});\\n\t$0\\nsnippet llParcelMediaCommandList\\n\tllParcelMediaCommandList(${1:list commandList});\\n\t$0\\nsnippet llParcelMediaQuery\\n\tllParcelMediaQuery(${1:list query})\\nsnippet llParseString2List\\n\tllParseString2List(${1:string src}, ${2:list separators}, ${3:list spacers})\\nsnippet llParseStringKeepNulls\\n\tllParseStringKeepNulls(${1:string src}, ${2:list separators}, ${3:list spacers})\\nsnippet llParticleSystem\\n\tllParticleSystem(${1:list rules});\\n\t$0\\nsnippet llPassCollisions\\n\tllPassCollisions(${1:integer pass});\\n\t$0\\nsnippet llPassTouches\\n\tllPassTouches(${1:integer pass});\\n\t$0\\nsnippet llPatrolPoints\\n\tllPatrolPoints(${1:list patrolPoints}, ${2:list options});\\n\t$0\\nsnippet llPlaySound\\n\tllPlaySound(${1:string sound}, ${2:float volume});\\n\t$0\\nsnippet llPlaySoundSlave\\n\tllPlaySoundSlave(${1:string sound}, ${2:float volume});\\n\t$0\\nsnippet llPow\\n\tllPow(${1:float base}, ${2:float exponent})\\nsnippet llPreloadSound\\n\tllPreloadSound(${1:string sound});\\n\t$0\\nsnippet llPursue\\n\tllPursue(${1:key target}, ${2:list options});\\n\t$0\\nsnippet llPushObject\\n\tllPushObject(${1:key target}, ${2:vector impulse}, ${3:vector ang_impulse}, ${4:integer local});\\n\t$0\\nsnippet llReadKeyValue\\n\tllReadKeyValue(${1:string k})\\nsnippet llRegionSay\\n\tllRegionSay(${1:integer channel}, ${2:string msg});\\n\t$0\\nsnippet llRegionSayTo\\n\tllRegionSayTo(${1:key target}, ${2:integer channel}, ${3:string msg});\\n\t$0\\nsnippet llReleaseControls\\n\tllReleaseControls();\\n\t$0\\nsnippet llReleaseURL\\n\tllReleaseURL(${1:string url});\\n\t$0\\nsnippet llRemoteDataReply\\n\tllRemoteDataReply(${1:key channel}, ${2:key message_id}, ${3:string sdata}, ${4:integer idata});\\n\t$0\\nsnippet llRemoteLoadScriptPin\\n\tllRemoteLoadScriptPin(${1:key target}, ${2:string name}, ${3:integer pin}, ${4:integer running}, ${5:integer start_param});\\n\t$0\\nsnippet llRemoveFromLandBanList\\n\tllRemoveFromLandBanList(${1:key agent});\\n\t$0\\nsnippet llRemoveFromLandPassList\\n\tllRemoveFromLandPassList(${1:key agent});\\n\t$0\\nsnippet llRemoveInventory\\n\tllRemoveInventory(${1:string item});\\n\t$0\\nsnippet llRemoveVehicleFlags\\n\tllRemoveVehicleFlags(${1:integer flags});\\n\t$0\\nsnippet llRequestAgentData\\n\tllRequestAgentData(${1:key id}, ${2:integer data})\\nsnippet llRequestDisplayName\\n\tllRequestDisplayName(${1:key id})\\nsnippet llRequestExperiencePermissions\\n\tllRequestExperiencePermissions(${1:key agent}, ${2:string name})\\nsnippet llRequestInventoryData\\n\tllRequestInventoryData(${1:string name})\\nsnippet llRequestPermissions\\n\tllRequestPermissions(${1:key agent}, ${2:integer permissions})\\nsnippet llRequestSecureURL\\n\tllRequestSecureURL()\\nsnippet llRequestSimulatorData\\n\tllRequestSimulatorData(${1:string region}, ${2:integer data})\\nsnippet llRequestURL\\n\tllRequestURL()\\nsnippet llRequestUsername\\n\tllRequestUsername(${1:key id})\\nsnippet llResetAnimationOverride\\n\tllResetAnimationOverride(${1:string anim_state});\\n\t$0\\nsnippet llResetLandBanList\\n\tllResetLandBanList();\\n\t$0\\nsnippet llResetLandPassList\\n\tllResetLandPassList();\\n\t$0\\nsnippet llResetOtherScript\\n\tllResetOtherScript(${1:string name});\\n\t$0\\nsnippet llResetScript\\n\tllResetScript();\\n\t$0\\nsnippet llResetTime\\n\tllResetTime();\\n\t$0\\nsnippet llReturnObjectsByID\\n\tllReturnObjectsByID(${1:list objects})\\nsnippet llReturnObjectsByOwner\\n\tllReturnObjectsByOwner(${1:key owner}, ${2:integer scope})\\nsnippet llRezAtRoot\\n\tllRezAtRoot(${1:string inventory}, ${2:vector position}, ${3:vector velocity}, ${4:rotation rot}, ${5:integer param});\\n\t$0\\nsnippet llRezObject\\n\tllRezObject(${1:string inventory}, ${2:vector pos}, ${3:vector vel}, ${4:rotation rot}, ${5:integer param});\\n\t$0\\nsnippet llRot2Angle\\n\tllRot2Angle(${1:rotation rot})\\nsnippet llRot2Axis\\n\tllRot2Axis(${1:rotation rot})\\nsnippet llRot2Euler\\n\tllRot2Euler(${1:rotation quat})\\nsnippet llRot2Fwd\\n\tllRot2Fwd(${1:rotation q})\\nsnippet llRot2Left\\n\tllRot2Left(${1:rotation q})\\nsnippet llRot2Up\\n\tllRot2Up(${1:rotation q})\\nsnippet llRotateTexture\\n\tllRotateTexture(${1:float angle}, ${2:integer face});\\n\t$0\\nsnippet llRotBetween\\n\tllRotBetween(${1:vector start}, ${2:vector end})\\nsnippet llRotLookAt\\n\tllRotLookAt(${1:rotation target_direction}, ${2:float strength}, ${3:float damping});\\n\t$0\\nsnippet llRotTarget\\n\tllRotTarget(${1:rotation rot}, ${2:float error})\\nsnippet llRotTargetRemove\\n\tllRotTargetRemove(${1:integer handle});\\n\t$0\\nsnippet llRound\\n\tllRound(${1:float val})\\nsnippet llSameGroup\\n\tllSameGroup(${1:key group})\\nsnippet llSay\\n\tllSay(${1:integer channel}, ${2:string msg});\\n\t$0\\nsnippet llScaleByFactor\\n\tllScaleByFactor(${1:float scaling_factor})\\nsnippet llScaleTexture\\n\tllScaleTexture(${1:float u}, ${2:float v}, ${3:integer face});\\n\t$0\\nsnippet llScriptDanger\\n\tllScriptDanger(${1:vector pos})\\nsnippet llScriptProfiler\\n\tllScriptProfiler(${1:integer flags});\\n\t$0\\nsnippet llSendRemoteData\\n\tllSendRemoteData(${1:key channel}, ${2:string dest}, ${3:integer idata}, ${4:string sdata})\\nsnippet llSensor\\n\tllSensor(${1:string name}, ${2:key id}, ${3:integer type}, ${4:float range}, ${5:float arc});\\n\t$0\\nsnippet llSensorRepeat\\n\tllSensorRepeat(${1:string name}, ${2:key id}, ${3:integer type}, ${4:float range}, ${5:float arc}, ${6:float rate});\\n\t$0\\nsnippet llSetAlpha\\n\tllSetAlpha(${1:float alpha}, ${2:integer face});\\n\t$0\\nsnippet llSetAngularVelocity\\n\tllSetAngularVelocity(${1:vector force}, ${2:integer local});\\n\t$0\\nsnippet llSetAnimationOverride\\n\tllSetAnimationOverride(${1:string anim_state}, ${2:string anim})\\nsnippet llSetBuoyancy\\n\tllSetBuoyancy(${1:float buoyancy});\\n\t$0\\nsnippet llSetCameraAtOffset\\n\tllSetCameraAtOffset(${1:vector offset});\\n\t$0\\nsnippet llSetCameraEyeOffset\\n\tllSetCameraEyeOffset(${1:vector offset});\\n\t$0\\nsnippet llSetCameraParams\\n\tllSetCameraParams(${1:list rules});\\n\t$0\\nsnippet llSetClickAction\\n\tllSetClickAction(${1:integer action});\\n\t$0\\nsnippet llSetColor\\n\tllSetColor(${1:vector color}, ${2:integer face});\\n\t$0\\nsnippet llSetContentType\\n\tllSetContentType(${1:key request_id}, ${2:integer content_type});\\n\t$0\\nsnippet llSetDamage\\n\tllSetDamage(${1:float damage});\\n\t$0\\nsnippet llSetForce\\n\tllSetForce(${1:vector force}, ${2:integer local});\\n\t$0\\nsnippet llSetForceAndTorque\\n\tllSetForceAndTorque(${1:vector force}, ${2:vector torque}, ${3:integer local});\\n\t$0\\nsnippet llSetHoverHeight\\n\tllSetHoverHeight(${1:float height}, ${2:integer water}, ${3:float tau});\\n\t$0\\nsnippet llSetKeyframedMotion\\n\tllSetKeyframedMotion(${1:list keyframes}, ${2:list options});\\n\t$0\\nsnippet llSetLinkAlpha\\n\tllSetLinkAlpha(${1:integer link}, ${2:float alpha}, ${3:integer face});\\n\t$0\\nsnippet llSetLinkCamera\\n\tllSetLinkCamera(${1:integer link}, ${2:vector eye}, ${3:vector at});\\n\t$0\\nsnippet llSetLinkColor\\n\tllSetLinkColor(${1:integer link}, ${2:vector color}, ${3:integer face});\\n\t$0\\nsnippet llSetLinkMedia\\n\tllSetLinkMedia(${1:integer link}, ${2:integer face}, ${3:list params});\\n\t$0\\nsnippet llSetLinkPrimitiveParams\\n\tllSetLinkPrimitiveParams(${1:integer link}, ${2:list rules});\\n\t$0\\nsnippet llSetLinkPrimitiveParamsFast\\n\tllSetLinkPrimitiveParamsFast(${1:integer link}, ${2:list rules});\\n\t$0\\nsnippet llSetLinkTexture\\n\tllSetLinkTexture(${1:integer link}, ${2:string texture}, ${3:integer face});\\n\t$0\\nsnippet llSetLinkTextureAnim\\n\tllSetLinkTextureAnim(${1:integer link}, ${2:integer mode}, ${3:integer face}, ${4:integer sizex}, ${5:integer sizey}, ${6:float start}, ${7:float length}, ${8:float rate});\\n\t$0\\nsnippet llSetLocalRot\\n\tllSetLocalRot(${1:rotation rot});\\n\t$0\\nsnippet llSetMemoryLimit\\n\tllSetMemoryLimit(${1:integer limit})\\nsnippet llSetObjectDesc\\n\tllSetObjectDesc(${1:string description});\\n\t$0\\nsnippet llSetObjectName\\n\tllSetObjectName(${1:string name});\\n\t$0\\nsnippet llSetParcelMusicURL\\n\tllSetParcelMusicURL(${1:string url});\\n\t$0\\nsnippet llSetPayPrice\\n\tllSetPayPrice(${1:integer price}, [${2:integer price_button_a}, ${3:integer price_button_b}, ${4:integer price_button_c}, ${5:integer price_button_d}]);\\n\t$0\\nsnippet llSetPhysicsMaterial\\n\tllSetPhysicsMaterial(${1:integer mask}, ${2:float gravity_multiplier}, ${3:float restitution}, ${4:float friction}, ${5:float density});\\n\t$0\\nsnippet llSetPos\\n\tllSetPos(${1:vector pos});\\n\t$0\\nsnippet llSetPrimitiveParams\\n\tllSetPrimitiveParams(${1:list rules});\\n\t$0\\nsnippet llSetPrimMediaParams\\n\tllSetPrimMediaParams(${1:integer face}, ${2:list params});\\n\t$0\\nsnippet llSetRegionPos\\n\tllSetRegionPos(${1:vector position})\\nsnippet llSetRemoteScriptAccessPin\\n\tllSetRemoteScriptAccessPin(${1:integer pin});\\n\t$0\\nsnippet llSetRot\\n\tllSetRot(${1:rotation rot});\\n\t$0\\nsnippet llSetScale\\n\tllSetScale(${1:vector size});\\n\t$0\\nsnippet llSetScriptState\\n\tllSetScriptState(${1:string name}, ${2:integer run});\\n\t$0\\nsnippet llSetSitText\\n\tllSetSitText(${1:string text});\\n\t$0\\nsnippet llSetSoundQueueing\\n\tllSetSoundQueueing(${1:integer queue});\\n\t$0\\nsnippet llSetSoundRadius\\n\tllSetSoundRadius(${1:float radius});\\n\t$0\\nsnippet llSetStatus\\n\tllSetStatus(${1:integer status}, ${2:integer value});\\n\t$0\\nsnippet llSetText\\n\tllSetText(${1:string text}, ${2:vector color}, ${3:float alpha});\\n\t$0\\nsnippet llSetTexture\\n\tllSetTexture(${1:string texture}, ${2:integer face});\\n\t$0\\nsnippet llSetTextureAnim\\n\tllSetTextureAnim(${1:integer mode}, ${2:integer face}, ${3:integer sizex}, ${4:integer sizey}, ${5:float start}, ${6:float length}, ${7:float rate});\\n\t$0\\nsnippet llSetTimerEvent\\n\tllSetTimerEvent(${1:float sec});\\n\t$0\\nsnippet llSetTorque\\n\tllSetTorque(${1:vector torque}, ${2:integer local});\\n\t$0\\nsnippet llSetTouchText\\n\tllSetTouchText(${1:string text});\\n\t$0\\nsnippet llSetVehicleFlags\\n\tllSetVehicleFlags(${1:integer flags});\\n\t$0\\nsnippet llSetVehicleFloatParam\\n\tllSetVehicleFloatParam(${1:integer param}, ${2:float value});\\n\t$0\\nsnippet llSetVehicleRotationParam\\n\tllSetVehicleRotationParam(${1:integer param}, ${2:rotation rot});\\n\t$0\\nsnippet llSetVehicleType\\n\tllSetVehicleType(${1:integer type});\\n\t$0\\nsnippet llSetVehicleVectorParam\\n\tllSetVehicleVectorParam(${1:integer param}, ${2:vector vec});\\n\t$0\\nsnippet llSetVelocity\\n\tllSetVelocity(${1:vector force}, ${2:integer local});\\n\t$0\\nsnippet llSHA1String\\n\tllSHA1String(${1:string src})\\nsnippet llShout\\n\tllShout(${1:integer channel}, ${2:string msg});\\n\t$0\\nsnippet llSin\\n\tllSin(${1:float theta})\\nsnippet llSitTarget\\n\tllSitTarget(${1:vector offset}, ${2:rotation rot});\\n\t$0\\nsnippet llSleep\\n\tllSleep(${1:float sec});\\n\t$0\\nsnippet llSqrt\\n\tllSqrt(${1:float val})\\nsnippet llStartAnimation\\n\tllStartAnimation(${1:string anim});\\n\t$0\\nsnippet llStopAnimation\\n\tllStopAnimation(${1:string anim});\\n\t$0\\nsnippet llStopHover\\n\tllStopHover();\\n\t$0\\nsnippet llStopLookAt\\n\tllStopLookAt();\\n\t$0\\nsnippet llStopMoveToTarget\\n\tllStopMoveToTarget();\\n\t$0\\nsnippet llStopSound\\n\tllStopSound();\\n\t$0\\nsnippet llStringLength\\n\tllStringLength(${1:string str})\\nsnippet llStringToBase64\\n\tllStringToBase64(${1:string str})\\nsnippet llStringTrim\\n\tllStringTrim(${1:string src}, ${2:integer type})\\nsnippet llSubStringIndex\\n\tllSubStringIndex(${1:string source}, ${2:string pattern})\\nsnippet llTakeControls\\n\tllTakeControls(${1:integer controls}, ${2:integer accept}, ${3:integer pass_on});\\n\t$0\\nsnippet llTan\\n\tllTan(${1:float theta})\\nsnippet llTarget\\n\tllTarget(${1:vector position}, ${2:float range})\\nsnippet llTargetOmega\\n\tllTargetOmega(${1:vector axis}, ${2:float spinrate}, ${3:float gain});\\n\t$0\\nsnippet llTargetRemove\\n\tllTargetRemove(${1:integer handle});\\n\t$0\\nsnippet llTeleportAgent\\n\tllTeleportAgent(${1:key agent}, ${2:string landmark}, ${3:vector position}, ${4:vector look_at});\\n\t$0\\nsnippet llTeleportAgentGlobalCoords\\n\tllTeleportAgentGlobalCoords(${1:key agent}, ${2:vector global_coordinates}, ${3:vector region_coordinates}, ${4:vector look_at});\\n\t$0\\nsnippet llTeleportAgentHome\\n\tllTeleportAgentHome(${1:key agent});\\n\t$0\\nsnippet llTextBox\\n\tllTextBox(${1:key agent}, ${2:string message}, ${3:integer channel});\\n\t$0\\nsnippet llToLower\\n\tllToLower(${1:string src})\\nsnippet llToUpper\\n\tllToUpper(${1:string src})\\nsnippet llTransferLindenDollars\\n\tllTransferLindenDollars(${1:key destination}, ${2:integer amount})\\nsnippet llTriggerSound\\n\tllTriggerSound(${1:string sound}, ${2:float volume});\\n\t$0\\nsnippet llTriggerSoundLimited\\n\tllTriggerSoundLimited(${1:string sound}, ${2:float volume}, ${3:vector top_north_east}, ${4:vector bottom_south_west});\\n\t$0\\nsnippet llUnescapeURL\\n\tllUnescapeURL(${1:string url})\\nsnippet llUnSit\\n\tllUnSit(${1:key id});\\n\t$0\\nsnippet llUpdateCharacter\\n\tllUpdateCharacter(${1:list options})\\nsnippet llUpdateKeyValue\\n\tllUpdateKeyValue(${1:string k}, ${2:string v}, ${3:integer checked}, ${4:string ov})\\nsnippet llVecDist\\n\tllVecDist(${1:vector vec_a}, ${2:vector vec_b})\\nsnippet llVecMag\\n\tllVecMag(${1:vector vec})\\nsnippet llVecNorm\\n\tllVecNorm(${1:vector vec})\\nsnippet llVolumeDetect\\n\tllVolumeDetect(${1:integer detect});\\n\t$0\\nsnippet llWanderWithin\\n\tllWanderWithin(${1:vector origin}, ${2:vector dist}, ${3:list options});\\n\t$0\\nsnippet llWater\\n\tllWater(${1:vector offset});\\n\t$0\\nsnippet llWhisper\\n\tllWhisper(${1:integer channel}, ${2:string msg});\\n\t$0\\nsnippet llWind\\n\tllWind(${1:vector offset});\\n\t$0\\nsnippet llXorBase64\\n\tllXorBase64(${1:string str1}, ${2:string str2})\\nsnippet money\\n\tmoney(${1:key id}, ${2:integer amount})\\n\t{\\n\t\t$0\\n\t}\\nsnippet object_rez\\n\tobject_rez(${1:key id})\\n\t{\\n\t\t$0\\n\t}\\nsnippet on_rez\\n\ton_rez(${1:integer start_param})\\n\t{\\n\t\t$0\\n\t}\\nsnippet path_update\\n\tpath_update(${1:integer type}, ${2:list reserved})\\n\t{\\n\t\t$0\\n\t}\\nsnippet remote_data\\n\tremote_data(${1:integer event_type}, ${2:key channel}, ${3:key message_id}, ${4:string sender}, ${5:integer idata}, ${6:string sdata})\\n\t{\\n\t\t$0\\n\t}\\nsnippet run_time_permissions\\n\trun_time_permissions(${1:integer perm})\\n\t{\\n\t\t$0\\n\t}\\nsnippet sensor\\n\tsensor(${1:integer index})\\n\t{\\n\t\t$0\\n\t}\\nsnippet state\\n\tstate ${1:name}\\nsnippet touch\\n\ttouch(${1:integer index})\\n\t{\\n\t\t$0\\n\t}\\nsnippet touch_end\\n\ttouch_end(${1:integer index})\\n\t{\\n\t\t$0\\n\t}\\nsnippet touch_start\\n\ttouch_start(${1:integer index})\\n\t{\\n\t\t$0\\n\t}\\nsnippet transaction_result\\n\ttransaction_result(${1:key id}, ${2:integer success}, ${3:string data})\\n\t{\\n\t\t$0\\n\t}\\nsnippet while\\n\twhile (${1:condition})\\n\t{\\n\t\t$0\\n\t}\\n\",t.scope=\"lsl\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/lua.js",
    "content": "ace.define(\"ace/snippets/lua\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"snippet #!\\n\t#!/usr/bin/env lua\\n\t$1\\nsnippet local\\n\tlocal ${1:x} = ${2:1}\\nsnippet fun\\n\tfunction ${1:fname}(${2:...})\\n\t\t${3:-- body}\\n\tend\\nsnippet for\\n\tfor ${1:i}=${2:1},${3:10} do\\n\t\t${4:print(i)}\\n\tend\\nsnippet forp\\n\tfor ${1:i},${2:v} in pairs(${3:table_name}) do\\n\t   ${4:-- body}\\n\tend\\nsnippet fori\\n\tfor ${1:i},${2:v} in ipairs(${3:table_name}) do\\n\t   ${4:-- body}\\n\tend\\n\",t.scope=\"lua\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/luapage.js",
    "content": "ace.define(\"ace/snippets/luapage\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"luapage\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/lucene.js",
    "content": "ace.define(\"ace/snippets/lucene\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"lucene\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/makefile.js",
    "content": "ace.define(\"ace/snippets/makefile\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"snippet ifeq\\n\tifeq (${1:cond0},${2:cond1})\\n\t\t${3:code}\\n\tendif\\n\",t.scope=\"makefile\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/markdown.js",
    "content": "ace.define(\"ace/snippets/markdown\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='# Markdown\\n\\n# Includes octopress (http://octopress.org/) snippets\\n\\nsnippet [\\n\t[${1:text}](http://${2:address} \"${3:title}\")\\nsnippet [*\\n\t[${1:link}](${2:`@*`} \"${3:title}\")${4}\\n\\nsnippet [:\\n\t[${1:id}]: http://${2:url} \"${3:title}\"\\nsnippet [:*\\n\t[${1:id}]: ${2:`@*`} \"${3:title}\"\\n\\nsnippet ![\\n\t![${1:alttext}](${2:/images/image.jpg} \"${3:title}\")\\nsnippet ![*\\n\t![${1:alt}](${2:`@*`} \"${3:title}\")${4}\\n\\nsnippet ![:\\n\t![${1:id}]: ${2:url} \"${3:title}\"\\nsnippet ![:*\\n\t![${1:id}]: ${2:`@*`} \"${3:title}\"\\n\\nsnippet ===\\nregex /^/=+/=*//\\n\t${PREV_LINE/./=/g}\\n\t\\n\t${0}\\nsnippet ---\\nregex /^/-+/-*//\\n\t${PREV_LINE/./-/g}\\n\t\\n\t${0}\\nsnippet blockquote\\n\t{% blockquote %}\\n\t${1:quote}\\n\t{% endblockquote %}\\n\\nsnippet blockquote-author\\n\t{% blockquote ${1:author}, ${2:title} %}\\n\t${3:quote}\\n\t{% endblockquote %}\\n\\nsnippet blockquote-link\\n\t{% blockquote ${1:author} ${2:URL} ${3:link_text} %}\\n\t${4:quote}\\n\t{% endblockquote %}\\n\\nsnippet bt-codeblock-short\\n\t```\\n\t${1:code_snippet}\\n\t```\\n\\nsnippet bt-codeblock-full\\n\t``` ${1:language} ${2:title} ${3:URL} ${4:link_text}\\n\t${5:code_snippet}\\n\t```\\n\\nsnippet codeblock-short\\n\t{% codeblock %}\\n\t${1:code_snippet}\\n\t{% endcodeblock %}\\n\\nsnippet codeblock-full\\n\t{% codeblock ${1:title} lang:${2:language} ${3:URL} ${4:link_text} %}\\n\t${5:code_snippet}\\n\t{% endcodeblock %}\\n\\nsnippet gist-full\\n\t{% gist ${1:gist_id} ${2:filename} %}\\n\\nsnippet gist-short\\n\t{% gist ${1:gist_id} %}\\n\\nsnippet img\\n\t{% img ${1:class} ${2:URL} ${3:width} ${4:height} ${5:title_text} ${6:alt_text} %}\\n\\nsnippet youtube\\n\t{% youtube ${1:video_id} %}\\n\\n# The quote should appear only once in the text. It is inherently part of it.\\n# See http://octopress.org/docs/plugins/pullquote/ for more info.\\n\\nsnippet pullquote\\n\t{% pullquote %}\\n\t${1:text} {\" ${2:quote} \"} ${3:text}\\n\t{% endpullquote %}\\n',t.scope=\"markdown\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/mask.js",
    "content": "ace.define(\"ace/snippets/mask\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"mask\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/matlab.js",
    "content": "ace.define(\"ace/snippets/matlab\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"matlab\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/maze.js",
    "content": "ace.define(\"ace/snippets/maze\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"snippet >\\ndescription assignment\\nscope maze\\n\t-> ${1}= ${2}\\n\\nsnippet >\\ndescription if\\nscope maze\\n\t-> IF ${2:**} THEN %${3:L} ELSE %${4:R}\\n\",t.scope=\"maze\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/mel.js",
    "content": "ace.define(\"ace/snippets/mel\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"mel\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/mips_assembler.js",
    "content": "ace.define(\"ace/snippets/mips_assembler\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"mips_assembler\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/mipsassembler.js",
    "content": "ace.define(\"ace/snippets/mipsassembler\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/mushcode.js",
    "content": "ace.define(\"ace/snippets/mushcode\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"mushcode\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/mysql.js",
    "content": "ace.define(\"ace/snippets/mysql\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"mysql\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/nix.js",
    "content": "ace.define(\"ace/snippets/nix\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"nix\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/nsis.js",
    "content": "ace.define(\"ace/snippets/nsis\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/objectivec.js",
    "content": "ace.define(\"ace/snippets/objectivec\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"objectivec\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/ocaml.js",
    "content": "ace.define(\"ace/snippets/ocaml\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"ocaml\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/pascal.js",
    "content": "ace.define(\"ace/snippets/pascal\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"pascal\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/perl.js",
    "content": "ace.define(\"ace/snippets/perl\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"# #!/usr/bin/perl\\nsnippet #!\\n\t#!/usr/bin/env perl\\n\\n# Hash Pointer\\nsnippet .\\n\t =>\\n# Function\\nsnippet sub\\n\tsub ${1:function_name} {\\n\t\t${2:#body ...}\\n\t}\\n# Conditional\\nsnippet if\\n\tif (${1}) {\\n\t\t${2:# body...}\\n\t}\\n# Conditional if..else\\nsnippet ife\\n\tif (${1}) {\\n\t\t${2:# body...}\\n\t}\\n\telse {\\n\t\t${3:# else...}\\n\t}\\n# Conditional if..elsif..else\\nsnippet ifee\\n\tif (${1}) {\\n\t\t${2:# body...}\\n\t}\\n\telsif (${3}) {\\n\t\t${4:# elsif...}\\n\t}\\n\telse {\\n\t\t${5:# else...}\\n\t}\\n# Conditional One-line\\nsnippet xif\\n\t${1:expression} if ${2:condition};${3}\\n# Unless conditional\\nsnippet unless\\n\tunless (${1}) {\\n\t\t${2:# body...}\\n\t}\\n# Unless conditional One-line\\nsnippet xunless\\n\t${1:expression} unless ${2:condition};${3}\\n# Try/Except\\nsnippet eval\\n\tlocal $@;\\n\teval {\\n\t\t${1:# do something risky...}\\n\t};\\n\tif (my $e = $@) {\\n\t\t${2:# handle failure...}\\n\t}\\n# While Loop\\nsnippet wh\\n\twhile (${1}) {\\n\t\t${2:# body...}\\n\t}\\n# While Loop One-line\\nsnippet xwh\\n\t${1:expression} while ${2:condition};${3}\\n# C-style For Loop\\nsnippet cfor\\n\tfor (my $${2:var} = 0; $$2 < ${1:count}; $$2${3:++}) {\\n\t\t${4:# body...}\\n\t}\\n# For loop one-line\\nsnippet xfor\\n\t${1:expression} for @${2:array};${3}\\n# Foreach Loop\\nsnippet for\\n\tforeach my $${1:x} (@${2:array}) {\\n\t\t${3:# body...}\\n\t}\\n# Foreach Loop One-line\\nsnippet fore\\n\t${1:expression} foreach @${2:array};${3}\\n# Package\\nsnippet package\\n\tpackage ${1:`substitute(Filename('', 'Page Title'), '^.', '\\\\u&', '')`};\\n\\n\t${2}\\n\\n\t1;\\n\\n\t__END__\\n# Package syntax perl >= 5.14\\nsnippet packagev514\\n\tpackage ${1:`substitute(Filename('', 'Page Title'), '^.', '\\\\u&', '')`} ${2:0.99};\\n\\n\t${3}\\n\\n\t1;\\n\\n\t__END__\\n#moose\\nsnippet moose\\n\tuse Moose;\\n\tuse namespace::autoclean;\\n\t${1:#}BEGIN {extends '${2:ParentClass}'};\\n\\n\t${3}\\n# parent\\nsnippet parent\\n\tuse parent qw(${1:Parent Class});\\n# Read File\\nsnippet slurp\\n\tmy $${1:var} = do { local $/; open my $file, '<', \\\"${2:file}\\\"; <$file> };\\n\t${3}\\n# strict warnings\\nsnippet strwar\\n\tuse strict;\\n\tuse warnings;\\n# older versioning with perlcritic bypass\\nsnippet vers\\n\t## no critic\\n\tour $VERSION = '${1:version}';\\n\teval $VERSION;\\n\t## use critic\\n# new 'switch' like feature\\nsnippet switch\\n\tuse feature 'switch';\\n\\n# Anonymous subroutine\\nsnippet asub\\n\tsub {\\n\t \t${1:# body }\\n\t}\\n\\n\\n\\n# Begin block\\nsnippet begin\\n\tBEGIN {\\n\t\t${1:# begin body}\\n\t}\\n\\n# call package function with some parameter\\nsnippet pkgmv\\n\t__PACKAGE__->${1:package_method}(${2:var})\\n\\n# call package function without a parameter\\nsnippet pkgm\\n\t__PACKAGE__->${1:package_method}()\\n\\n# call package \\\"get_\\\" function without a parameter\\nsnippet pkget\\n\t__PACKAGE__->get_${1:package_method}()\\n\\n# call package function with a parameter\\nsnippet pkgetv\\n\t__PACKAGE__->get_${1:package_method}(${2:var})\\n\\n# complex regex\\nsnippet qrx\\n\tqr/\\n\t     ${1:regex}\\n\t/xms\\n\\n#simpler regex\\nsnippet qr/\\n\tqr/${1:regex}/x\\n\\n#given\\nsnippet given\\n\tgiven ($${1:var}) {\\n\t\t${2:# cases}\\n\t\t${3:# default}\\n\t}\\n\\n# switch-like case\\nsnippet when\\n\twhen (${1:case}) {\\n\t\t${2:# body}\\n\t}\\n\\n# hash slice\\nsnippet hslice\\n\t@{ ${1:hash}  }{ ${2:array} }\\n\\n\\n# map\\nsnippet map\\n\tmap {  ${2: body }    }  ${1: @array } ;\\n\\n\\n\\n# Pod stub\\nsnippet ppod\\n\t=head1 NAME\\n\\n\t${1:ClassName} - ${2:ShortDesc}\\n\\n\t=head1 SYNOPSIS\\n\\n\t  use $1;\\n\\n\t  ${3:# synopsis...}\\n\\n\t=head1 DESCRIPTION\\n\\n\t${4:# longer description...}\\n\\n\\n\t=head1 INTERFACE\\n\\n\\n\t=head1 DEPENDENCIES\\n\\n\\n\t=head1 SEE ALSO\\n\\n\\n# Heading for a subroutine stub\\nsnippet psub\\n\t=head2 ${1:MethodName}\\n\\n\t${2:Summary....}\\n\\n# Heading for inline subroutine pod\\nsnippet psubi\\n\t=head2 ${1:MethodName}\\n\\n\t${2:Summary...}\\n\\n\\n\t=cut\\n# inline documented subroutine\\nsnippet subpod\\n\t=head2 $1\\n\\n\tSummary of $1\\n\\n\t=cut\\n\\n\tsub ${1:subroutine_name} {\\n\t\t${2:# body...}\\n\t}\\n# Subroutine signature\\nsnippet parg\\n\t=over 2\\n\\n\t=item\\n\tArguments\\n\\n\\n\t=over 3\\n\\n\t=item\\n\tC<${1:DataStructure}>\\n\\n\t  ${2:Sample}\\n\\n\\n\t=back\\n\\n\\n\t=item\\n\tReturn\\n\\n\t=over 3\\n\\n\\n\t=item\\n\tC<${3:...return data}>\\n\\n\\n\t=back\\n\\n\\n\t=back\\n\\n\\n\\n# Moose has\\nsnippet has\\n\thas ${1:attribute} => (\\n\t\tis\t    => '${2:ro|rw}',\\n\t\tisa \t=> '${3:Str|Int|HashRef|ArrayRef|etc}',\\n\t\tdefault => sub {\\n\t\t\t${4:defaultvalue}\\n\t\t},\\n\t\t${5:# other attributes}\\n\t);\\n\\n\\n# override\\nsnippet override\\n\toverride ${1:attribute} => sub {\\n\t\t${2:# my $self = shift;};\\n\t\t${3:# my ($self, $args) = @_;};\\n\t};\\n\\n\\n# use test classes\\nsnippet tuse\\n\tuse Test::More;\\n\tuse Test::Deep; # (); # uncomment to stop prototype errors\\n\tuse Test::Exception;\\n\\n# local test lib\\nsnippet tlib\\n\tuse lib qw{ ./t/lib };\\n\\n#test methods\\nsnippet tmeths\\n\t$ENV{TEST_METHOD} = '${1:regex}';\\n\\n# runtestclass\\nsnippet trunner\\n\tuse ${1:test_class};\\n\t$1->runtests();\\n\\n# Test::Class-style test\\nsnippet tsub\\n\tsub t${1:number}_${2:test_case} :Test(${3:num_of_tests}) {\\n\t\tmy $self = shift;\\n\t\t${4:#  body}\\n\\n\t}\\n\\n# Test::Routine-style test\\nsnippet trsub\\n\ttest ${1:test_name} => { description => '${2:Description of test.}'} => sub {\\n\t\tmy ($self) = @_;\\n\t\t${3:# test code}\\n\t};\\n\\n#prep test method\\nsnippet tprep\\n\tsub prep${1:number}_${2:test_case} :Test(startup) {\\n\t\tmy $self = shift;\\n\t\t${4:#  body}\\n\t}\\n\\n# cause failures to print stack trace\\nsnippet debug_trace\\n\tuse Carp; # 'verbose';\\n\t# cloak \\\"die\\\"\\n\t# warn \\\"warning\\\"\\n\t$SIG{'__DIE__'} = sub {\\n\t\trequire Carp; Carp::confess\\n\t};\\n\\n\",t.scope=\"perl\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/pgsql.js",
    "content": "ace.define(\"ace/snippets/pgsql\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"pgsql\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/php.js",
    "content": "ace.define(\"ace/snippets/php\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"snippet <?\\n\t<?php\\n\\n\t${1}\\nsnippet ec\\n\techo ${1};\\nsnippet <?e\\n\t<?php echo ${1} ?>\\n# this one is for php5.4\\nsnippet <?=\\n\t<?=${1}?>\\nsnippet ns\\n\tnamespace ${1:Foo\\\\Bar\\\\Baz};\\n\t${2}\\nsnippet use\\n\tuse ${1:Foo\\\\Bar\\\\Baz};\\n\t${2}\\nsnippet c\\n\t${1:abstract }class ${2:$FILENAME}\\n\t{\\n\t\t${3}\\n\t}\\nsnippet i\\n\tinterface ${1:$FILENAME}\\n\t{\\n\t\t${2}\\n\t}\\nsnippet t.\\n\t$this->${1}\\nsnippet f\\n\tfunction ${1:foo}(${2:array }${3:$bar})\\n\t{\\n\t\t${4}\\n\t}\\n# method\\nsnippet m\\n\t${1:abstract }${2:protected}${3: static} function ${4:foo}(${5:array }${6:$bar})\\n\t{\\n\t\t${7}\\n\t}\\n# setter method\\nsnippet sm \\n\t/**\\n\t * Sets the value of ${1:foo}\\n\t *\\n\t * @param ${2:$1} $$1 ${3:description}\\n\t *\\n\t * @return ${4:$FILENAME}\\n\t */\\n\t${5:public} function set${6:$2}(${7:$2 }$$1)\\n\t{\\n\t\t$this->${8:$1} = $$1;\\n\t\treturn $this;\\n\t}${9}\\n# getter method\\nsnippet gm\\n\t/**\\n\t * Gets the value of ${1:foo}\\n\t *\\n\t * @return ${2:$1}\\n\t */\\n\t${3:public} function get${4:$2}()\\n\t{\\n\t\treturn $this->${5:$1};\\n\t}${6}\\n#setter\\nsnippet $s\\n\t${1:$foo}->set${2:Bar}(${3});\\n#getter\\nsnippet $g\\n\t${1:$foo}->get${2:Bar}();\\n\\n# Tertiary conditional\\nsnippet =?:\\n\t$${1:foo} = ${2:true} ? ${3:a} : ${4};\\nsnippet ?:\\n\t${1:true} ? ${2:a} : ${3}\\n\\nsnippet C\\n\t$_COOKIE['${1:variable}']${2}\\nsnippet E\\n\t$_ENV['${1:variable}']${2}\\nsnippet F\\n\t$_FILES['${1:variable}']${2}\\nsnippet G\\n\t$_GET['${1:variable}']${2}\\nsnippet P\\n\t$_POST['${1:variable}']${2}\\nsnippet R\\n\t$_REQUEST['${1:variable}']${2}\\nsnippet S\\n\t$_SERVER['${1:variable}']${2}\\nsnippet SS\\n\t$_SESSION['${1:variable}']${2}\\n\t\\n# the following are old ones\\nsnippet inc\\n\tinclude '${1:file}';${2}\\nsnippet inc1\\n\tinclude_once '${1:file}';${2}\\nsnippet req\\n\trequire '${1:file}';${2}\\nsnippet req1\\n\trequire_once '${1:file}';${2}\\n# Start Docblock\\nsnippet /*\\n\t/**\\n\t * ${1}\\n\t */\\n# Class - post doc\\nsnippet doc_cp\\n\t/**\\n\t * ${1:undocumented class}\\n\t *\\n\t * @package ${2:default}\\n\t * @subpackage ${3:default}\\n\t * @author ${4:`g:snips_author`}\\n\t */${5}\\n# Class Variable - post doc\\nsnippet doc_vp\\n\t/**\\n\t * ${1:undocumented class variable}\\n\t *\\n\t * @var ${2:string}\\n\t */${3}\\n# Class Variable\\nsnippet doc_v\\n\t/**\\n\t * ${3:undocumented class variable}\\n\t *\\n\t * @var ${4:string}\\n\t */\\n\t${1:var} $${2};${5}\\n# Class\\nsnippet doc_c\\n\t/**\\n\t * ${3:undocumented class}\\n\t *\\n\t * @package ${4:default}\\n\t * @subpackage ${5:default}\\n\t * @author ${6:`g:snips_author`}\\n\t */\\n\t${1:}class ${2:}\\n\t{\\n\t\t${7}\\n\t} // END $1class $2\\n# Constant Definition - post doc\\nsnippet doc_dp\\n\t/**\\n\t * ${1:undocumented constant}\\n\t */${2}\\n# Constant Definition\\nsnippet doc_d\\n\t/**\\n\t * ${3:undocumented constant}\\n\t */\\n\tdefine(${1}, ${2});${4}\\n# Function - post doc\\nsnippet doc_fp\\n\t/**\\n\t * ${1:undocumented function}\\n\t *\\n\t * @return ${2:void}\\n\t * @author ${3:`g:snips_author`}\\n\t */${4}\\n# Function signature\\nsnippet doc_s\\n\t/**\\n\t * ${4:undocumented function}\\n\t *\\n\t * @return ${5:void}\\n\t * @author ${6:`g:snips_author`}\\n\t */\\n\t${1}function ${2}(${3});${7}\\n# Function\\nsnippet doc_f\\n\t/**\\n\t * ${4:undocumented function}\\n\t *\\n\t * @return ${5:void}\\n\t * @author ${6:`g:snips_author`}\\n\t */\\n\t${1}function ${2}(${3})\\n\t{${7}\\n\t}\\n# Header\\nsnippet doc_h\\n\t/**\\n\t * ${1}\\n\t *\\n\t * @author ${2:`g:snips_author`}\\n\t * @version ${3:$Id$}\\n\t * @copyright ${4:$2}, `strftime('%d %B, %Y')`\\n\t * @package ${5:default}\\n\t */\\n\t\\n# Interface\\nsnippet interface\\n\t/**\\n\t * ${2:undocumented class}\\n\t *\\n\t * @package ${3:default}\\n\t * @author ${4:`g:snips_author`}\\n\t */\\n\tinterface ${1:$FILENAME}\\n\t{\\n\t\t${5}\\n\t}\\n# class ...\\nsnippet class\\n\t/**\\n\t * ${1}\\n\t */\\n\tclass ${2:$FILENAME}\\n\t{\\n\t\t${3}\\n\t\t/**\\n\t\t * ${4}\\n\t\t */\\n\t\t${5:public} function ${6:__construct}(${7:argument})\\n\t\t{\\n\t\t\t${8:// code...}\\n\t\t}\\n\t}\\n# define(...)\\nsnippet def\\n\tdefine('${1}'${2});${3}\\n# defined(...)\\nsnippet def?\\n\t${1}defined('${2}')${3}\\nsnippet wh\\n\twhile (${1:/* condition */}) {\\n\t\t${2:// code...}\\n\t}\\n# do ... while\\nsnippet do\\n\tdo {\\n\t\t${2:// code... }\\n\t} while (${1:/* condition */});\\nsnippet if\\n\tif (${1:/* condition */}) {\\n\t\t${2:// code...}\\n\t}\\nsnippet ifil\\n\t<?php if (${1:/* condition */}): ?>\\n\t\t${2:<!-- code... -->}\\n\t<?php endif; ?>\\nsnippet ife\\n\tif (${1:/* condition */}) {\\n\t\t${2:// code...}\\n\t} else {\\n\t\t${3:// code...}\\n\t}\\n\t${4}\\nsnippet ifeil\\n\t<?php if (${1:/* condition */}): ?>\\n\t\t${2:<!-- html... -->}\\n\t<?php else: ?>\\n\t\t${3:<!-- html... -->}\\n\t<?php endif; ?>\\n\t${4}\\nsnippet else\\n\telse {\\n\t\t${1:// code...}\\n\t}\\nsnippet elseif\\n\telseif (${1:/* condition */}) {\\n\t\t${2:// code...}\\n\t}\\nsnippet switch\\n\tswitch ($${1:variable}) {\\n\t\tcase '${2:value}':\\n\t\t\t${3:// code...}\\n\t\t\tbreak;\\n\t\t${5}\\n\t\tdefault:\\n\t\t\t${4:// code...}\\n\t\t\tbreak;\\n\t}\\nsnippet case\\n\tcase '${1:value}':\\n\t\t${2:// code...}\\n\t\tbreak;${3}\\nsnippet for\\n\tfor ($${2:i} = 0; $$2 < ${1:count}; $$2${3:++}) {\\n\t\t${4: // code...}\\n\t}\\nsnippet foreach\\n\tforeach ($${1:variable} as $${2:value}) {\\n\t\t${3:// code...}\\n\t}\\nsnippet foreachil\\n\t<?php foreach ($${1:variable} as $${2:value}): ?>\\n\t\t${3:<!-- html... -->}\\n\t<?php endforeach; ?>\\nsnippet foreachk\\n\tforeach ($${1:variable} as $${2:key} => $${3:value}) {\\n\t\t${4:// code...}\\n\t}\\nsnippet foreachkil\\n\t<?php foreach ($${1:variable} as $${2:key} => $${3:value}): ?>\\n\t\t${4:<!-- html... -->}\\n\t<?php endforeach; ?>\\n# $... = array (...)\\nsnippet array\\n\t$${1:arrayName} = array('${2}' => ${3});${4}\\nsnippet try\\n\ttry {\\n\t\t${2}\\n\t} catch (${1:Exception} $e) {\\n\t}\\n# lambda with closure\\nsnippet lambda\\n\t${1:static }function (${2:args}) use (${3:&$x, $y /*put vars in scope (closure) */}) {\\n\t\t${4}\\n\t};\\n# pre_dump();\\nsnippet pd\\n\techo '<pre>'; var_dump(${1}); echo '</pre>';\\n# pre_dump(); die();\\nsnippet pdd\\n\techo '<pre>'; var_dump(${1}); echo '</pre>'; die(${2:});\\nsnippet vd\\n\tvar_dump(${1});\\nsnippet vdd\\n\tvar_dump(${1}); die(${2:});\\nsnippet http_redirect\\n\theader (\\\"HTTP/1.1 301 Moved Permanently\\\"); \\n\theader (\\\"Location: \\\".URL); \\n\texit();\\n# Getters & Setters\\nsnippet gs\\n\t/**\\n\t * Gets the value of ${1:foo}\\n\t *\\n\t * @return ${2:$1}\\n\t */\\n\tpublic function get${3:$2}()\\n\t{\\n\t\treturn $this->${4:$1};\\n\t}\\n\\n\t/**\\n\t * Sets the value of $1\\n\t *\\n\t * @param $2 $$1 ${5:description}\\n\t *\\n\t * @return ${6:$FILENAME}\\n\t */\\n\tpublic function set$3(${7:$2 }$$1)\\n\t{\\n\t\t$this->$4 = $$1;\\n\t\treturn $this;\\n\t}${8}\\n# anotation, get, and set, useful for doctrine\\nsnippet ags\\n\t/**\\n\t * ${1:description}\\n\t * \\n\t * @${7}\\n\t */\\n\t${2:protected} $${3:foo};\\n\\n\tpublic function get${4:$3}()\\n\t{\\n\t\treturn $this->$3;\\n\t}\\n\\n\tpublic function set$4(${5:$4 }$${6:$3})\\n\t{\\n\t\t$this->$3 = $$6;\\n\t\treturn $this;\\n\t}\\nsnippet rett\\n\treturn true;\\nsnippet retf\\n\treturn false;\\n\",t.scope=\"php\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/plain_text.js",
    "content": "ace.define(\"ace/snippets/plain_text\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"plain_text\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/powershell.js",
    "content": "ace.define(\"ace/snippets/powershell\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"powershell\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/praat.js",
    "content": "ace.define(\"ace/snippets/praat\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"praat\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/prolog.js",
    "content": "ace.define(\"ace/snippets/prolog\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"prolog\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/properties.js",
    "content": "ace.define(\"ace/snippets/properties\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"properties\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/protobuf.js",
    "content": "ace.define(\"ace/snippets/protobuf\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"\",t.scope=\"protobuf\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/python.js",
    "content": "ace.define(\"ace/snippets/python\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='snippet #!\\n\t#!/usr/bin/env python\\nsnippet imp\\n\timport ${1:module}\\nsnippet from\\n\tfrom ${1:package} import ${2:module}\\n# Module Docstring\\nsnippet docs\\n\t\\'\\'\\'\\n\tFile: ${1:FILENAME:file_name}\\n\tAuthor: ${2:author}\\n\tDescription: ${3}\\n\t\\'\\'\\'\\nsnippet wh\\n\twhile ${1:condition}:\\n\t\t${2:# TODO: write code...}\\n# dowh - does the same as do...while in other languages\\nsnippet dowh\\n\twhile True:\\n\t\t${1:# TODO: write code...}\\n\t\tif ${2:condition}:\\n\t\t\tbreak\\nsnippet with\\n\twith ${1:expr} as ${2:var}:\\n\t\t${3:# TODO: write code...}\\n# New Class\\nsnippet cl\\n\tclass ${1:ClassName}(${2:object}):\\n\t\t\"\"\"${3:docstring for $1}\"\"\"\\n\t\tdef __init__(self, ${4:arg}):\\n\t\t\t${5:super($1, self).__init__()}\\n\t\t\tself.$4 = $4\\n\t\t\t${6}\\n# New Function\\nsnippet def\\n\tdef ${1:fname}(${2:`indent(\\'.\\') ? \\'self\\' : \\'\\'`}):\\n\t\t\"\"\"${3:docstring for $1}\"\"\"\\n\t\t${4:# TODO: write code...}\\nsnippet deff\\n\tdef ${1:fname}(${2:`indent(\\'.\\') ? \\'self\\' : \\'\\'`}):\\n\t\t${3:# TODO: write code...}\\n# New Method\\nsnippet defs\\n\tdef ${1:mname}(self, ${2:arg}):\\n\t\t${3:# TODO: write code...}\\n# New Property\\nsnippet property\\n\tdef ${1:foo}():\\n\t\tdoc = \"${2:The $1 property.}\"\\n\t\tdef fget(self):\\n\t\t\t${3:return self._$1}\\n\t\tdef fset(self, value):\\n\t\t\t${4:self._$1 = value}\\n# Ifs\\nsnippet if\\n\tif ${1:condition}:\\n\t\t${2:# TODO: write code...}\\nsnippet el\\n\telse:\\n\t\t${1:# TODO: write code...}\\nsnippet ei\\n\telif ${1:condition}:\\n\t\t${2:# TODO: write code...}\\n# For\\nsnippet for\\n\tfor ${1:item} in ${2:items}:\\n\t\t${3:# TODO: write code...}\\n# Encodes\\nsnippet cutf8\\n\t# -*- coding: utf-8 -*-\\nsnippet clatin1\\n\t# -*- coding: latin-1 -*-\\nsnippet cascii\\n\t# -*- coding: ascii -*-\\n# Lambda\\nsnippet ld\\n\t${1:var} = lambda ${2:vars} : ${3:action}\\nsnippet .\\n\tself.\\nsnippet try Try/Except\\n\ttry:\\n\t\t${1:# TODO: write code...}\\n\texcept ${2:Exception}, ${3:e}:\\n\t\t${4:raise $3}\\nsnippet try Try/Except/Else\\n\ttry:\\n\t\t${1:# TODO: write code...}\\n\texcept ${2:Exception}, ${3:e}:\\n\t\t${4:raise $3}\\n\telse:\\n\t\t${5:# TODO: write code...}\\nsnippet try Try/Except/Finally\\n\ttry:\\n\t\t${1:# TODO: write code...}\\n\texcept ${2:Exception}, ${3:e}:\\n\t\t${4:raise $3}\\n\tfinally:\\n\t\t${5:# TODO: write code...}\\nsnippet try Try/Except/Else/Finally\\n\ttry:\\n\t\t${1:# TODO: write code...}\\n\texcept ${2:Exception}, ${3:e}:\\n\t\t${4:raise $3}\\n\telse:\\n\t\t${5:# TODO: write code...}\\n\tfinally:\\n\t\t${6:# TODO: write code...}\\n# if __name__ == \\'__main__\\':\\nsnippet ifmain\\n\tif __name__ == \\'__main__\\':\\n\t\t${1:main()}\\n# __magic__\\nsnippet _\\n\t__${1:init}__${2}\\n# python debugger (pdb)\\nsnippet pdb\\n\timport pdb; pdb.set_trace()\\n# ipython debugger (ipdb)\\nsnippet ipdb\\n\timport ipdb; ipdb.set_trace()\\n# ipython debugger (pdbbb)\\nsnippet pdbbb\\n\timport pdbpp; pdbpp.set_trace()\\nsnippet pprint\\n\timport pprint; pprint.pprint(${1})${2}\\nsnippet \"\\n\t\"\"\"\\n\t${1:doc}\\n\t\"\"\"\\n# test function/method\\nsnippet test\\n\tdef test_${1:description}(${2:self}):\\n\t\t${3:# TODO: write code...}\\n# test case\\nsnippet testcase\\n\tclass ${1:ExampleCase}(unittest.TestCase):\\n\t\t\\n\t\tdef test_${2:description}(self):\\n\t\t\t${3:# TODO: write code...}\\nsnippet fut\\n\tfrom __future__ import ${1}\\n#getopt\\nsnippet getopt\\n\ttry:\\n\t\t# Short option syntax: \"hv:\"\\n\t\t# Long option syntax: \"help\" or \"verbose=\"\\n\t\topts, args = getopt.getopt(sys.argv[1:], \"${1:short_options}\", [${2:long_options}])\\n\t\\n\texcept getopt.GetoptError, err:\\n\t\t# Print debug info\\n\t\tprint str(err)\\n\t\t${3:error_action}\\n\\n\tfor option, argument in opts:\\n\t\tif option in (\"-h\", \"--help\"):\\n\t\t\t${4}\\n\t\telif option in (\"-v\", \"--verbose\"):\\n\t\t\tverbose = argument\\n',t.scope=\"python\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/r.js",
    "content": "ace.define(\"ace/snippets/r\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='snippet #!\\n\t#!/usr/bin/env Rscript\\n\\n# includes\\nsnippet lib\\n\tlibrary(${1:package})\\nsnippet req\\n\trequire(${1:package})\\nsnippet source\\n\tsource(\\'${1:file}\\')\\n\\n# conditionals\\nsnippet if\\n\tif (${1:condition}) {\\n\t\t${2:code}\\n\t}\\nsnippet el\\n\telse {\\n\t\t${1:code}\\n\t}\\nsnippet ei\\n\telse if (${1:condition}) {\\n\t\t${2:code}\\n\t}\\n\\n# functions\\nsnippet fun\\n\t${1:name} = function (${2:variables}) {\\n\t\t${3:code}\\n\t}\\nsnippet ret\\n\treturn(${1:code})\\n\\n# dataframes, lists, etc\\nsnippet df\\n\t${1:name}[${2:rows}, ${3:cols}]\\nsnippet c\\n\tc(${1:items})\\nsnippet li\\n\tlist(${1:items})\\nsnippet mat\\n\tmatrix(${1:data}, nrow=${2:rows}, ncol=${3:cols})\\n\\n# apply functions\\nsnippet apply\\n\tapply(${1:array}, ${2:margin}, ${3:function})\\nsnippet lapply\\n\tlapply(${1:list}, ${2:function})\\nsnippet sapply\\n\tsapply(${1:list}, ${2:function})\\nsnippet vapply\\n\tvapply(${1:list}, ${2:function}, ${3:type})\\nsnippet mapply\\n\tmapply(${1:function}, ${2:...})\\nsnippet tapply\\n\ttapply(${1:vector}, ${2:index}, ${3:function})\\nsnippet rapply\\n\trapply(${1:list}, ${2:function})\\n\\n# plyr functions\\nsnippet dd\\n\tddply(${1:frame}, ${2:variables}, ${3:function})\\nsnippet dl\\n\tdlply(${1:frame}, ${2:variables}, ${3:function})\\nsnippet da\\n\tdaply(${1:frame}, ${2:variables}, ${3:function})\\nsnippet d_\\n\td_ply(${1:frame}, ${2:variables}, ${3:function})\\n\\nsnippet ad\\n\tadply(${1:array}, ${2:margin}, ${3:function})\\nsnippet al\\n\talply(${1:array}, ${2:margin}, ${3:function})\\nsnippet aa\\n\taaply(${1:array}, ${2:margin}, ${3:function})\\nsnippet a_\\n\ta_ply(${1:array}, ${2:margin}, ${3:function})\\n\\nsnippet ld\\n\tldply(${1:list}, ${2:function})\\nsnippet ll\\n\tllply(${1:list}, ${2:function})\\nsnippet la\\n\tlaply(${1:list}, ${2:function})\\nsnippet l_\\n\tl_ply(${1:list}, ${2:function})\\n\\nsnippet md\\n\tmdply(${1:matrix}, ${2:function})\\nsnippet ml\\n\tmlply(${1:matrix}, ${2:function})\\nsnippet ma\\n\tmaply(${1:matrix}, ${2:function})\\nsnippet m_\\n\tm_ply(${1:matrix}, ${2:function})\\n\\n# plot functions\\nsnippet pl\\n\tplot(${1:x}, ${2:y})\\nsnippet ggp\\n\tggplot(${1:data}, aes(${2:aesthetics}))\\nsnippet img\\n\t${1:(jpeg,bmp,png,tiff)}(filename=\"${2:filename}\", width=${3}, height=${4}, unit=\"${5}\")\\n\t${6:plot}\\n\tdev.off()\\n\\n# statistical test functions\\nsnippet fis\\n\tfisher.test(${1:x}, ${2:y})\\nsnippet chi\\n\tchisq.test(${1:x}, ${2:y})\\nsnippet tt\\n\tt.test(${1:x}, ${2:y})\\nsnippet wil\\n\twilcox.test(${1:x}, ${2:y})\\nsnippet cor\\n\tcor.test(${1:x}, ${2:y})\\nsnippet fte\\n\tvar.test(${1:x}, ${2:y})\\nsnippet kvt \\n\tkv.test(${1:x}, ${2:y})\\n',t.scope=\"r\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/razor.js",
    "content": "ace.define(\"ace/snippets/razor\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"snippet if\\n(${1} == ${2}) {\\n\t${3}\\n}\",t.scope=\"razor\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/rdoc.js",
    "content": "ace.define(\"ace/snippets/rdoc\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"rdoc\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/rhtml.js",
    "content": "ace.define(\"ace/snippets/rhtml\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"rhtml\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/rst.js",
    "content": "ace.define(\"ace/snippets/rst\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"# rst\\n\\nsnippet :\\n\t:${1:field name}: ${2:field body}\\nsnippet *\\n\t*${1:Emphasis}*\\nsnippet **\\n\t**${1:Strong emphasis}**\\nsnippet _\\n\t\\\\`${1:hyperlink-name}\\\\`_\\n\t.. _\\\\`$1\\\\`: ${2:link-block}\\nsnippet =\\n\t${1:Title}\\n\t=====${2:=}\\n\t${3}\\nsnippet -\\n\t${1:Title}\\n\t-----${2:-}\\n\t${3}\\nsnippet cont:\\n\t.. contents::\\n\t\\n\",t.scope=\"rst\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/ruby.js",
    "content": "ace.define(\"ace/snippets/ruby\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='########################################\\n# Ruby snippets - for Rails, see below #\\n########################################\\n\\n# encoding for Ruby 1.9\\nsnippet enc\\n\t# encoding: utf-8\\n\\n# #!/usr/bin/env ruby\\nsnippet #!\\n\t#!/usr/bin/env ruby\\n\t# encoding: utf-8\\n\\n# New Block\\nsnippet =b\\n\t=begin rdoc\\n\t\t${1}\\n\t=end\\nsnippet y\\n\t:yields: ${1:arguments}\\nsnippet rb\\n\t#!/usr/bin/env ruby -wKU\\nsnippet beg\\n\tbegin\\n\t\t${3}\\n\trescue ${1:Exception} => ${2:e}\\n\tend\\n\\nsnippet req require\\n\trequire \"${1}\"${2}\\nsnippet #\\n\t# =>\\nsnippet end\\n\t__END__\\nsnippet case\\n\tcase ${1:object}\\n\twhen ${2:condition}\\n\t\t${3}\\n\tend\\nsnippet when\\n\twhen ${1:condition}\\n\t\t${2}\\nsnippet def\\n\tdef ${1:method_name}\\n\t\t${2}\\n\tend\\nsnippet deft\\n\tdef test_${1:case_name}\\n\t\t${2}\\n\tend\\nsnippet if\\n\tif ${1:condition}\\n\t\t${2}\\n\tend\\nsnippet ife\\n\tif ${1:condition}\\n\t\t${2}\\n\telse\\n\t\t${3}\\n\tend\\nsnippet elsif\\n\telsif ${1:condition}\\n\t\t${2}\\nsnippet unless\\n\tunless ${1:condition}\\n\t\t${2}\\n\tend\\nsnippet while\\n\twhile ${1:condition}\\n\t\t${2}\\n\tend\\nsnippet for\\n\tfor ${1:e} in ${2:c}\\n\t\t${3}\\n\tend\\nsnippet until\\n\tuntil ${1:condition}\\n\t\t${2}\\n\tend\\nsnippet cla class .. end\\n\tclass ${1:`substitute(Filename(), \\'\\\\(_\\\\|^\\\\)\\\\(.\\\\)\\', \\'\\\\u\\\\2\\', \\'g\\')`}\\n\t\t${2}\\n\tend\\nsnippet cla class .. initialize .. end\\n\tclass ${1:`substitute(Filename(), \\'\\\\(_\\\\|^\\\\)\\\\(.\\\\)\\', \\'\\\\u\\\\2\\', \\'g\\')`}\\n\t\tdef initialize(${2:args})\\n\t\t\t${3}\\n\t\tend\\n\tend\\nsnippet cla class .. < ParentClass .. initialize .. end\\n\tclass ${1:`substitute(Filename(), \\'\\\\(_\\\\|^\\\\)\\\\(.\\\\)\\', \\'\\\\u\\\\2\\', \\'g\\')`} < ${2:ParentClass}\\n\t\tdef initialize(${3:args})\\n\t\t\t${4}\\n\t\tend\\n\tend\\nsnippet cla ClassName = Struct .. do .. end\\n\t${1:`substitute(Filename(), \\'\\\\(_\\\\|^\\\\)\\\\(.\\\\)\\', \\'\\\\u\\\\2\\', \\'g\\')`} = Struct.new(:${2:attr_names}) do\\n\t\tdef ${3:method_name}\\n\t\t\t${4}\\n\t\tend\\n\tend\\nsnippet cla class BlankSlate .. initialize .. end\\n\tclass ${1:BlankSlate}\\n\t\tinstance_methods.each { |meth| undef_method(meth) unless meth =~ /\\\\A__/ }\\n\tend\\nsnippet cla class << self .. end\\n\tclass << ${1:self}\\n\t\t${2}\\n\tend\\n# class .. < DelegateClass .. initialize .. end\\nsnippet cla-\\n\tclass ${1:`substitute(Filename(), \\'\\\\(_\\\\|^\\\\)\\\\(.\\\\)\\', \\'\\\\u\\\\2\\', \\'g\\')`} < DelegateClass(${2:ParentClass})\\n\t\tdef initialize(${3:args})\\n\t\t\tsuper(${4:del_obj})\\n\\n\t\t\t${5}\\n\t\tend\\n\tend\\nsnippet mod module .. end\\n\tmodule ${1:`substitute(Filename(), \\'\\\\(_\\\\|^\\\\)\\\\(.\\\\)\\', \\'\\\\u\\\\2\\', \\'g\\')`}\\n\t\t${2}\\n\tend\\nsnippet mod module .. module_function .. end\\n\tmodule ${1:`substitute(Filename(), \\'\\\\(_\\\\|^\\\\)\\\\(.\\\\)\\', \\'\\\\u\\\\2\\', \\'g\\')`}\\n\t\tmodule_function\\n\\n\t\t${2}\\n\tend\\nsnippet mod module .. ClassMethods .. end\\n\tmodule ${1:`substitute(Filename(), \\'\\\\(_\\\\|^\\\\)\\\\(.\\\\)\\', \\'\\\\u\\\\2\\', \\'g\\')`}\\n\t\tmodule ClassMethods\\n\t\t\t${2}\\n\t\tend\\n\\n\t\tmodule InstanceMethods\\n\\n\t\tend\\n\\n\t\tdef self.included(receiver)\\n\t\t\treceiver.extend         ClassMethods\\n\t\t\treceiver.send :include, InstanceMethods\\n\t\tend\\n\tend\\n# attr_reader\\nsnippet r\\n\tattr_reader :${1:attr_names}\\n# attr_writer\\nsnippet w\\n\tattr_writer :${1:attr_names}\\n# attr_accessor\\nsnippet rw\\n\tattr_accessor :${1:attr_names}\\nsnippet atp\\n\tattr_protected :${1:attr_names}\\nsnippet ata\\n\tattr_accessible :${1:attr_names}\\n# include Enumerable\\nsnippet Enum\\n\tinclude Enumerable\\n\\n\tdef each(&block)\\n\t\t${1}\\n\tend\\n# include Comparable\\nsnippet Comp\\n\tinclude Comparable\\n\\n\tdef <=>(other)\\n\t\t${1}\\n\tend\\n# extend Forwardable\\nsnippet Forw-\\n\textend Forwardable\\n# def self\\nsnippet defs\\n\tdef self.${1:class_method_name}\\n\t\t${2}\\n\tend\\n# def method_missing\\nsnippet defmm\\n\tdef method_missing(meth, *args, &blk)\\n\t\t${1}\\n\tend\\nsnippet defd\\n\tdef_delegator :${1:@del_obj}, :${2:del_meth}, :${3:new_name}\\nsnippet defds\\n\tdef_delegators :${1:@del_obj}, :${2:del_methods}\\nsnippet am\\n\talias_method :${1:new_name}, :${2:old_name}\\nsnippet app\\n\tif __FILE__ == $PROGRAM_NAME\\n\t\t${1}\\n\tend\\n# usage_if()\\nsnippet usai\\n\tif ARGV.${1}\\n\t\tabort \"Usage: #{$PROGRAM_NAME} ${2:ARGS_GO_HERE}\"${3}\\n\tend\\n# usage_unless()\\nsnippet usau\\n\tunless ARGV.${1}\\n\t\tabort \"Usage: #{$PROGRAM_NAME} ${2:ARGS_GO_HERE}\"${3}\\n\tend\\nsnippet array\\n\tArray.new(${1:10}) { |${2:i}| ${3} }\\nsnippet hash\\n\tHash.new { |${1:hash}, ${2:key}| $1[$2] = ${3} }\\nsnippet file File.foreach() { |line| .. }\\n\tFile.foreach(${1:\"path/to/file\"}) { |${2:line}| ${3} }\\nsnippet file File.read()\\n\tFile.read(${1:\"path/to/file\"})${2}\\nsnippet Dir Dir.global() { |file| .. }\\n\tDir.glob(${1:\"dir/glob/*\"}) { |${2:file}| ${3} }\\nsnippet Dir Dir[\"..\"]\\n\tDir[${1:\"glob/**/*.rb\"}]${2}\\nsnippet dir\\n\tFilename.dirname(__FILE__)\\nsnippet deli\\n\tdelete_if { |${1:e}| ${2} }\\nsnippet fil\\n\tfill(${1:range}) { |${2:i}| ${3} }\\n# flatten_once()\\nsnippet flao\\n\tinject(Array.new) { |${1:arr}, ${2:a}| $1.push(*$2)}${3}\\nsnippet zip\\n\tzip(${1:enums}) { |${2:row}| ${3} }\\n# downto(0) { |n| .. }\\nsnippet dow\\n\tdownto(${1:0}) { |${2:n}| ${3} }\\nsnippet ste\\n\tstep(${1:2}) { |${2:n}| ${3} }\\nsnippet tim\\n\ttimes { |${1:n}| ${2} }\\nsnippet upt\\n\tupto(${1:1.0/0.0}) { |${2:n}| ${3} }\\nsnippet loo\\n\tloop { ${1} }\\nsnippet ea\\n\teach { |${1:e}| ${2} }\\nsnippet ead\\n\teach do |${1:e}|\\n\t\t${2}\\n\tend\\nsnippet eab\\n\teach_byte { |${1:byte}| ${2} }\\nsnippet eac- each_char { |chr| .. }\\n\teach_char { |${1:chr}| ${2} }\\nsnippet eac- each_cons(..) { |group| .. }\\n\teach_cons(${1:2}) { |${2:group}| ${3} }\\nsnippet eai\\n\teach_index { |${1:i}| ${2} }\\nsnippet eaid\\n\teach_index do |${1:i}|\\n\t\t${2}\\n\tend\\nsnippet eak\\n\teach_key { |${1:key}| ${2} }\\nsnippet eakd\\n\teach_key do |${1:key}|\\n\t\t${2}\\n\tend\\nsnippet eal\\n\teach_line { |${1:line}| ${2} }\\nsnippet eald\\n\teach_line do |${1:line}|\\n\t\t${2}\\n\tend\\nsnippet eap\\n\teach_pair { |${1:name}, ${2:val}| ${3} }\\nsnippet eapd\\n\teach_pair do |${1:name}, ${2:val}|\\n\t\t${3}\\n\tend\\nsnippet eas-\\n\teach_slice(${1:2}) { |${2:group}| ${3} }\\nsnippet easd-\\n\teach_slice(${1:2}) do |${2:group}|\\n\t\t${3}\\n\tend\\nsnippet eav\\n\teach_value { |${1:val}| ${2} }\\nsnippet eavd\\n\teach_value do |${1:val}|\\n\t\t${2}\\n\tend\\nsnippet eawi\\n\teach_with_index { |${1:e}, ${2:i}| ${3} }\\nsnippet eawid\\n\teach_with_index do |${1:e},${2:i}|\\n\t\t${3}\\n\tend\\nsnippet reve\\n\treverse_each { |${1:e}| ${2} }\\nsnippet reved\\n\treverse_each do |${1:e}|\\n\t\t${2}\\n\tend\\nsnippet inj\\n\tinject(${1:init}) { |${2:mem}, ${3:var}| ${4} }\\nsnippet injd\\n\tinject(${1:init}) do |${2:mem}, ${3:var}|\\n\t\t${4}\\n\tend\\nsnippet map\\n\tmap { |${1:e}| ${2} }\\nsnippet mapd\\n\tmap do |${1:e}|\\n\t\t${2}\\n\tend\\nsnippet mapwi-\\n\tenum_with_index.map { |${1:e}, ${2:i}| ${3} }\\nsnippet sor\\n\tsort { |a, b| ${1} }\\nsnippet sorb\\n\tsort_by { |${1:e}| ${2} }\\nsnippet ran\\n\tsort_by { rand }\\nsnippet all\\n\tall? { |${1:e}| ${2} }\\nsnippet any\\n\tany? { |${1:e}| ${2} }\\nsnippet cl\\n\tclassify { |${1:e}| ${2} }\\nsnippet col\\n\tcollect { |${1:e}| ${2} }\\nsnippet cold\\n\tcollect do |${1:e}|\\n\t\t${2}\\n\tend\\nsnippet det\\n\tdetect { |${1:e}| ${2} }\\nsnippet detd\\n\tdetect do |${1:e}|\\n\t\t${2}\\n\tend\\nsnippet fet\\n\tfetch(${1:name}) { |${2:key}| ${3} }\\nsnippet fin\\n\tfind { |${1:e}| ${2} }\\nsnippet find\\n\tfind do |${1:e}|\\n\t\t${2}\\n\tend\\nsnippet fina\\n\tfind_all { |${1:e}| ${2} }\\nsnippet finad\\n\tfind_all do |${1:e}|\\n\t\t${2}\\n\tend\\nsnippet gre\\n\tgrep(${1:/pattern/}) { |${2:match}| ${3} }\\nsnippet sub\\n\t${1:g}sub(${2:/pattern/}) { |${3:match}| ${4} }\\nsnippet sca\\n\tscan(${1:/pattern/}) { |${2:match}| ${3} }\\nsnippet scad\\n\tscan(${1:/pattern/}) do |${2:match}|\\n\t\t${3}\\n\tend\\nsnippet max\\n\tmax { |a, b| ${1} }\\nsnippet min\\n\tmin { |a, b| ${1} }\\nsnippet par\\n\tpartition { |${1:e}| ${2} }\\nsnippet pard\\n\tpartition do |${1:e}|\\n\t\t${2}\\n\tend\\nsnippet rej\\n\treject { |${1:e}| ${2} }\\nsnippet rejd\\n\treject do |${1:e}|\\n\t\t${2}\\n\tend\\nsnippet sel\\n\tselect { |${1:e}| ${2} }\\nsnippet seld\\n\tselect do |${1:e}|\\n\t\t${2}\\n\tend\\nsnippet lam\\n\tlambda { |${1:args}| ${2} }\\nsnippet doo\\n\tdo\\n\t\t${1}\\n\tend\\nsnippet dov\\n\tdo |${1:variable}|\\n\t\t${2}\\n\tend\\nsnippet :\\n\t:${1:key} => ${2:\"value\"}${3}\\nsnippet ope\\n\topen(${1:\"path/or/url/or/pipe\"}, \"${2:w}\") { |${3:io}| ${4} }\\n# path_from_here()\\nsnippet fpath\\n\tFile.join(File.dirname(__FILE__), *%2[${1:rel path here}])${2}\\n# unix_filter {}\\nsnippet unif\\n\tARGF.each_line${1} do |${2:line}|\\n\t\t${3}\\n\tend\\n# option_parse {}\\nsnippet optp\\n\trequire \"optparse\"\\n\\n\toptions = {${1:default => \"args\"}}\\n\\n\tARGV.options do |opts|\\n\t\topts.banner = \"Usage: #{File.basename($PROGRAM_NAME)}\\nsnippet opt\\n\topts.on( \"-${1:o}\", \"--${2:long-option-name}\", ${3:String},\\n\t         \"${4:Option description.}\") do |${5:opt}|\\n\t\t${6}\\n\tend\\nsnippet tc\\n\trequire \"test/unit\"\\n\\n\trequire \"${1:library_file_name}\"\\n\\n\tclass Test${2:$1} < Test::Unit::TestCase\\n\t\tdef test_${3:case_name}\\n\t\t\t${4}\\n\t\tend\\n\tend\\nsnippet ts\\n\trequire \"test/unit\"\\n\\n\trequire \"tc_${1:test_case_file}\"\\n\trequire \"tc_${2:test_case_file}\"${3}\\nsnippet as\\n\tassert ${1:test}, \"${2:Failure message.}\"${3}\\nsnippet ase\\n\tassert_equal ${1:expected}, ${2:actual}${3}\\nsnippet asne\\n\tassert_not_equal ${1:unexpected}, ${2:actual}${3}\\nsnippet asid\\n\tassert_in_delta ${1:expected_float}, ${2:actual_float}, ${3:2 ** -20}${4}\\nsnippet asio\\n\tassert_instance_of ${1:ExpectedClass}, ${2:actual_instance}${3}\\nsnippet asko\\n\tassert_kind_of ${1:ExpectedKind}, ${2:actual_instance}${3}\\nsnippet asn\\n\tassert_nil ${1:instance}${2}\\nsnippet asnn\\n\tassert_not_nil ${1:instance}${2}\\nsnippet asm\\n\tassert_match /${1:expected_pattern}/, ${2:actual_string}${3}\\nsnippet asnm\\n\tassert_no_match /${1:unexpected_pattern}/, ${2:actual_string}${3}\\nsnippet aso\\n\tassert_operator ${1:left}, :${2:operator}, ${3:right}${4}\\nsnippet asr\\n\tassert_raise ${1:Exception} { ${2} }\\nsnippet asrd\\n\tassert_raise ${1:Exception} do\\n\t\t${2}\\n\tend\\nsnippet asnr\\n\tassert_nothing_raised ${1:Exception} { ${2} }\\nsnippet asnrd\\n\tassert_nothing_raised ${1:Exception} do\\n\t\t${2}\\n\tend\\nsnippet asrt\\n\tassert_respond_to ${1:object}, :${2:method}${3}\\nsnippet ass assert_same(..)\\n\tassert_same ${1:expected}, ${2:actual}${3}\\nsnippet ass assert_send(..)\\n\tassert_send [${1:object}, :${2:message}, ${3:args}]${4}\\nsnippet asns\\n\tassert_not_same ${1:unexpected}, ${2:actual}${3}\\nsnippet ast\\n\tassert_throws :${1:expected} { ${2} }\\nsnippet astd\\n\tassert_throws :${1:expected} do\\n\t\t${2}\\n\tend\\nsnippet asnt\\n\tassert_nothing_thrown { ${1} }\\nsnippet asntd\\n\tassert_nothing_thrown do\\n\t\t${1}\\n\tend\\nsnippet fl\\n\tflunk \"${1:Failure message.}\"${2}\\n# Benchmark.bmbm do .. end\\nsnippet bm-\\n\tTESTS = ${1:10_000}\\n\tBenchmark.bmbm do |results|\\n\t\t${2}\\n\tend\\nsnippet rep\\n\tresults.report(\"${1:name}:\") { TESTS.times { ${2} }}\\n# Marshal.dump(.., file)\\nsnippet Md\\n\tFile.open(${1:\"path/to/file.dump\"}, \"wb\") { |${2:file}| Marshal.dump(${3:obj}, $2) }${4}\\n# Mashal.load(obj)\\nsnippet Ml\\n\tFile.open(${1:\"path/to/file.dump\"}, \"rb\") { |${2:file}| Marshal.load($2) }${3}\\n# deep_copy(..)\\nsnippet deec\\n\tMarshal.load(Marshal.dump(${1:obj_to_copy}))${2}\\nsnippet Pn-\\n\tPStore.new(${1:\"file_name.pstore\"})${2}\\nsnippet tra\\n\ttransaction(${1:true}) { ${2} }\\n# xmlread(..)\\nsnippet xml-\\n\tREXML::Document.new(File.read(${1:\"path/to/file\"}))${2}\\n# xpath(..) { .. }\\nsnippet xpa\\n\telements.each(${1:\"//Xpath\"}) do |${2:node}|\\n\t\t${3}\\n\tend\\n# class_from_name()\\nsnippet clafn\\n\tsplit(\"::\").inject(Object) { |par, const| par.const_get(const) }\\n# singleton_class()\\nsnippet sinc\\n\tclass << self; self end\\nsnippet nam\\n\tnamespace :${1:`Filename()`} do\\n\t\t${2}\\n\tend\\nsnippet tas\\n\tdesc \"${1:Task description}\"\\n\ttask :${2:task_name => [:dependent, :tasks]} do\\n\t\t${3}\\n\tend\\n# block\\nsnippet b\\n\t{ |${1:var}| ${2} }\\nsnippet begin\\n\tbegin\\n\t\traise \\'A test exception.\\'\\n\trescue Exception => e\\n\t\tputs e.message\\n\t\tputs e.backtrace.inspect\\n\telse\\n\t\t# other exception\\n\tensure\\n\t\t# always executed\\n\tend\\n\\n#debugging\\nsnippet debug\\n\trequire \\'ruby-debug\\'; debugger; true;\\nsnippet pry\\n\trequire \\'pry\\'; binding.pry\\n\\n#############################################\\n# Rails snippets - for pure Ruby, see above #\\n#############################################\\nsnippet art\\n\tassert_redirected_to ${1::action => \"${2:index}\"}\\nsnippet artnp\\n\tassert_redirected_to ${1:parent}_${2:child}_path(${3:@$1}, ${4:@$2})\\nsnippet artnpp\\n\tassert_redirected_to ${1:parent}_${2:child}_path(${3:@$1})\\nsnippet artp\\n\tassert_redirected_to ${1:model}_path(${2:@$1})\\nsnippet artpp\\n\tassert_redirected_to ${1:model}s_path\\nsnippet asd\\n\tassert_difference \"${1:Model}.${2:count}\", $1 do\\n\t\t${3}\\n\tend\\nsnippet asnd\\n\tassert_no_difference \"${1:Model}.${2:count}\" do\\n\t\t${3}\\n\tend\\nsnippet asre\\n\tassert_response :${1:success}, @response.body${2}\\nsnippet asrj\\n\tassert_rjs :${1:replace}, \"${2:dom id}\"\\nsnippet ass assert_select(..)\\n\tassert_select \\'${1:path}\\', :${2:text} => \\'${3:inner_html\\' ${4:do}\\nsnippet bf\\n\tbefore_filter :${1:method}\\nsnippet bt\\n\tbelongs_to :${1:association}\\nsnippet crw\\n\tcattr_accessor :${1:attr_names}\\nsnippet defcreate\\n\tdef create\\n\t\t@${1:model_class_name} = ${2:ModelClassName}.new(params[:$1])\\n\\n\t\trespond_to do |wants|\\n\t\t\tif @$1.save\\n\t\t\t\tflash[:notice] = \\'$2 was successfully created.\\'\\n\t\t\t\twants.html { redirect_to(@$1) }\\n\t\t\t\twants.xml  { render :xml => @$1, :status => :created, :location => @$1 }\\n\t\t\telse\\n\t\t\t\twants.html { render :action => \"new\" }\\n\t\t\t\twants.xml  { render :xml => @$1.errors, :status => :unprocessable_entity }\\n\t\t\tend\\n\t\tend\\n\tend${3}\\nsnippet defdestroy\\n\tdef destroy\\n\t\t@${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\\n\t\t@$1.destroy\\n\\n\t\trespond_to do |wants|\\n\t\t\twants.html { redirect_to($1s_url) }\\n\t\t\twants.xml  { head :ok }\\n\t\tend\\n\tend${3}\\nsnippet defedit\\n\tdef edit\\n\t\t@${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\\n\tend\\nsnippet defindex\\n\tdef index\\n\t\t@${1:model_class_name} = ${2:ModelClassName}.all\\n\\n\t\trespond_to do |wants|\\n\t\t\twants.html # index.html.erb\\n\t\t\twants.xml  { render :xml => @$1s }\\n\t\tend\\n\tend${3}\\nsnippet defnew\\n\tdef new\\n\t\t@${1:model_class_name} = ${2:ModelClassName}.new\\n\\n\t\trespond_to do |wants|\\n\t\t\twants.html # new.html.erb\\n\t\t\twants.xml  { render :xml => @$1 }\\n\t\tend\\n\tend${3}\\nsnippet defshow\\n\tdef show\\n\t\t@${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\\n\\n\t\trespond_to do |wants|\\n\t\t\twants.html # show.html.erb\\n\t\t\twants.xml  { render :xml => @$1 }\\n\t\tend\\n\tend${3}\\nsnippet defupdate\\n\tdef update\\n\t\t@${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\\n\\n\t\trespond_to do |wants|\\n\t\t\tif @$1.update_attributes(params[:$1])\\n\t\t\t\tflash[:notice] = \\'$2 was successfully updated.\\'\\n\t\t\t\twants.html { redirect_to(@$1) }\\n\t\t\t\twants.xml  { head :ok }\\n\t\t\telse\\n\t\t\t\twants.html { render :action => \"edit\" }\\n\t\t\t\twants.xml  { render :xml => @$1.errors, :status => :unprocessable_entity }\\n\t\t\tend\\n\t\tend\\n\tend${3}\\nsnippet flash\\n\tflash[:${1:notice}] = \"${2}\"\\nsnippet habtm\\n\thas_and_belongs_to_many :${1:object}, :join_table => \"${2:table_name}\", :foreign_key => \"${3}_id\"${4}\\nsnippet hm\\n\thas_many :${1:object}\\nsnippet hmd\\n\thas_many :${1:other}s, :class_name => \"${2:$1}\", :foreign_key => \"${3:$1}_id\", :dependent => :destroy${4}\\nsnippet hmt\\n\thas_many :${1:object}, :through => :${2:object}\\nsnippet ho\\n\thas_one :${1:object}\\nsnippet i18\\n\tI18n.t(\\'${1:type.key}\\')${2}\\nsnippet ist\\n\t<%= image_submit_tag(\"${1:agree.png}\", :id => \"${2:id}\"${3} %>\\nsnippet log\\n\tRails.logger.${1:debug} ${2}\\nsnippet log2\\n\tRAILS_DEFAULT_LOGGER.${1:debug} ${2}\\nsnippet logd\\n\tlogger.debug { \"${1:message}\" }${2}\\nsnippet loge\\n\tlogger.error { \"${1:message}\" }${2}\\nsnippet logf\\n\tlogger.fatal { \"${1:message}\" }${2}\\nsnippet logi\\n\tlogger.info { \"${1:message}\" }${2}\\nsnippet logw\\n\tlogger.warn { \"${1:message}\" }${2}\\nsnippet mapc\\n\t${1:map}.${2:connect} \\'${3:controller/:action/:id}\\'\\nsnippet mapca\\n\t${1:map}.catch_all \"*${2:anything}\", :controller => \"${3:default}\", :action => \"${4:error}\"${5}\\nsnippet mapr\\n\t${1:map}.resource :${2:resource}\\nsnippet maprs\\n\t${1:map}.resources :${2:resource}\\nsnippet mapwo\\n\t${1:map}.with_options :${2:controller} => \\'${3:thing}\\' do |$3|\\n\t\t${4}\\n\tend\\nsnippet mbs\\n\tbefore_save :${1:method}\\nsnippet mcht\\n\tchange_table :${1:table_name} do |t|\\n\t\t${2}\\n\tend\\nsnippet mp\\n\tmap(&:${1:id})\\nsnippet mrw\\n\tmattr_accessor :${1:attr_names}\\nsnippet oa\\n\torder(\"${1:field}\")\\nsnippet od\\n\torder(\"${1:field} DESC\")\\nsnippet pa\\n\tparams[:${1:id}]${2}\\nsnippet ra\\n\trender :action => \"${1:action}\"\\nsnippet ral\\n\trender :action => \"${1:action}\", :layout => \"${2:layoutname}\"\\nsnippet rest\\n\trespond_to do |wants|\\n\t\twants.${1:html} { ${2} }\\n\tend\\nsnippet rf\\n\trender :file => \"${1:filepath}\"\\nsnippet rfu\\n\trender :file => \"${1:filepath}\", :use_full_path => ${2:false}\\nsnippet ri\\n\trender :inline => \"${1:<%= \\'hello\\' %>}\"\\nsnippet ril\\n\trender :inline => \"${1:<%= \\'hello\\' %>}\", :locals => { ${2::name} => \"${3:value}\"${4} }\\nsnippet rit\\n\trender :inline => \"${1:<%= \\'hello\\' %>}\", :type => ${2::rxml}\\nsnippet rjson\\n\trender :json => ${1:text to render}\\nsnippet rl\\n\trender :layout => \"${1:layoutname}\"\\nsnippet rn\\n\trender :nothing => ${1:true}\\nsnippet rns\\n\trender :nothing => ${1:true}, :status => ${2:401}\\nsnippet rp\\n\trender :partial => \"${1:item}\"\\nsnippet rpc\\n\trender :partial => \"${1:item}\", :collection => ${2:@$1s}\\nsnippet rpl\\n\trender :partial => \"${1:item}\", :locals => { :${2:$1} => ${3:@$1}\\nsnippet rpo\\n\trender :partial => \"${1:item}\", :object => ${2:@$1}\\nsnippet rps\\n\trender :partial => \"${1:item}\", :status => ${2:500}\\nsnippet rt\\n\trender :text => \"${1:text to render}\"\\nsnippet rtl\\n\trender :text => \"${1:text to render}\", :layout => \"${2:layoutname}\"\\nsnippet rtlt\\n\trender :text => \"${1:text to render}\", :layout => ${2:true}\\nsnippet rts\\n\trender :text => \"${1:text to render}\", :status => ${2:401}\\nsnippet ru\\n\trender :update do |${1:page}|\\n\t\t$1.${2}\\n\tend\\nsnippet rxml\\n\trender :xml => ${1:text to render}\\nsnippet sc\\n\tscope :${1:name}, :where(:@${2:field} => ${3:value})\\nsnippet sl\\n\tscope :${1:name}, lambda do |${2:value}|\\n\t\twhere(\"${3:field = ?}\", ${4:bind var})\\n\tend\\nsnippet sha1\\n\tDigest::SHA1.hexdigest(${1:string})\\nsnippet sweeper\\n\tclass ${1:ModelClassName}Sweeper < ActionController::Caching::Sweeper\\n\t\tobserve $1\\n\\n\t\tdef after_save(${2:model_class_name})\\n\t\t\texpire_cache($2)\\n\t\tend\\n\\n\t\tdef after_destroy($2)\\n\t\t\texpire_cache($2)\\n\t\tend\\n\\n\t\tdef expire_cache($2)\\n\t\t\texpire_page\\n\t\tend\\n\tend\\nsnippet tcb\\n\tt.boolean :${1:title}\\n\t${2}\\nsnippet tcbi\\n\tt.binary :${1:title}, :limit => ${2:2}.megabytes\\n\t${3}\\nsnippet tcd\\n\tt.decimal :${1:title}, :precision => ${2:10}, :scale => ${3:2}\\n\t${4}\\nsnippet tcda\\n\tt.date :${1:title}\\n\t${2}\\nsnippet tcdt\\n\tt.datetime :${1:title}\\n\t${2}\\nsnippet tcf\\n\tt.float :${1:title}\\n\t${2}\\nsnippet tch\\n\tt.change :${1:name}, :${2:string}, :${3:limit} => ${4:80}\\n\t${5}\\nsnippet tci\\n\tt.integer :${1:title}\\n\t${2}\\nsnippet tcl\\n\tt.integer :lock_version, :null => false, :default => 0\\n\t${1}\\nsnippet tcr\\n\tt.references :${1:taggable}, :polymorphic => { :default => \\'${2:Photo}\\' }\\n\t${3}\\nsnippet tcs\\n\tt.string :${1:title}\\n\t${2}\\nsnippet tct\\n\tt.text :${1:title}\\n\t${2}\\nsnippet tcti\\n\tt.time :${1:title}\\n\t${2}\\nsnippet tcts\\n\tt.timestamp :${1:title}\\n\t${2}\\nsnippet tctss\\n\tt.timestamps\\n\t${1}\\nsnippet va\\n\tvalidates_associated :${1:attribute}\\nsnippet vao\\n\tvalidates_acceptance_of :${1:terms}\\nsnippet vc\\n\tvalidates_confirmation_of :${1:attribute}\\nsnippet ve\\n\tvalidates_exclusion_of :${1:attribute}, :in => ${2:%w( mov avi )}\\nsnippet vf\\n\tvalidates_format_of :${1:attribute}, :with => /${2:regex}/\\nsnippet vi\\n\tvalidates_inclusion_of :${1:attribute}, :in => %w(${2: mov avi })\\nsnippet vl\\n\tvalidates_length_of :${1:attribute}, :within => ${2:3}..${3:20}\\nsnippet vn\\n\tvalidates_numericality_of :${1:attribute}\\nsnippet vpo\\n\tvalidates_presence_of :${1:attribute}\\nsnippet vu\\n\tvalidates_uniqueness_of :${1:attribute}\\nsnippet wants\\n\twants.${1:js|xml|html} { ${2} }\\nsnippet wc\\n\twhere(${1:\"conditions\"}${2:, bind_var})\\nsnippet wh\\n\twhere(${1:field} => ${2:value})\\nsnippet xdelete\\n\txhr :delete, :${1:destroy}, :id => ${2:1}${3}\\nsnippet xget\\n\txhr :get, :${1:show}, :id => ${2:1}${3}\\nsnippet xpost\\n\txhr :post, :${1:create}, :${2:object} => { ${3} }\\nsnippet xput\\n\txhr :put, :${1:update}, :id => ${2:1}, :${3:object} => { ${4} }${5}\\nsnippet test\\n\ttest \"should ${1:do something}\" do\\n\t\t${2}\\n\tend\\n#migrations\\nsnippet mac\\n\tadd_column :${1:table_name}, :${2:column_name}, :${3:data_type}\\nsnippet mrc\\n\tremove_column :${1:table_name}, :${2:column_name}\\nsnippet mrnc\\n\trename_column :${1:table_name}, :${2:old_column_name}, :${3:new_column_name}\\nsnippet mcc\\n\tchange_column :${1:table}, :${2:column}, :${3:type}\\nsnippet mccc\\n\tt.column :${1:title}, :${2:string}\\nsnippet mct\\n\tcreate_table :${1:table_name} do |t|\\n\t\tt.column :${2:name}, :${3:type}\\n\tend\\nsnippet migration\\n\tclass ${1:class_name} < ActiveRecord::Migration\\n\t\tdef self.up\\n\t\t\t${2}\\n\t\tend\\n\\n\t\tdef self.down\\n\t\tend\\n\tend\\n\\nsnippet trc\\n\tt.remove :${1:column}\\nsnippet tre\\n\tt.rename :${1:old_column_name}, :${2:new_column_name}\\n\t${3}\\nsnippet tref\\n\tt.references :${1:model}\\n\\n#rspec\\nsnippet it\\n\tit \"${1:spec_name}\" do\\n\t\t${2}\\n\tend\\nsnippet itp\\n\tit \"${1:spec_name}\"\\n\t${2}\\nsnippet desc\\n\tdescribe ${1:class_name} do\\n\t\t${2}\\n\tend\\nsnippet cont\\n\tcontext \"${1:message}\" do\\n\t\t${2}\\n\tend\\nsnippet bef\\n\tbefore :${1:each} do\\n\t\t${2}\\n\tend\\nsnippet aft\\n\tafter :${1:each} do\\n\t\t${2}\\n\tend\\n',t.scope=\"ruby\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/rust.js",
    "content": "ace.define(\"ace/snippets/rust\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"rust\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/sass.js",
    "content": "ace.define(\"ace/snippets/sass\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"sass\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/scad.js",
    "content": "ace.define(\"ace/snippets/scad\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"scad\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/scala.js",
    "content": "ace.define(\"ace/snippets/scala\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"scala\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/scheme.js",
    "content": "ace.define(\"ace/snippets/scheme\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"scheme\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/scss.js",
    "content": "ace.define(\"ace/snippets/scss\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"scss\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/sh.js",
    "content": "ace.define(\"ace/snippets/sh\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='# Shebang. Executing bash via /usr/bin/env makes scripts more portable.\\nsnippet #!\\n\t#!/usr/bin/env bash\\n\t\\nsnippet if\\n\tif [[ ${1:condition} ]]; then\\n\t\t${2:#statements}\\n\tfi\\nsnippet elif\\n\telif [[ ${1:condition} ]]; then\\n\t\t${2:#statements}\\nsnippet for\\n\tfor (( ${2:i} = 0; $2 < ${1:count}; $2++ )); do\\n\t\t${3:#statements}\\n\tdone\\nsnippet fori\\n\tfor ${1:needle} in ${2:haystack} ; do\\n\t\t${3:#statements}\\n\tdone\\nsnippet wh\\n\twhile [[ ${1:condition} ]]; do\\n\t\t${2:#statements}\\n\tdone\\nsnippet until\\n\tuntil [[ ${1:condition} ]]; do\\n\t\t${2:#statements}\\n\tdone\\nsnippet case\\n\tcase ${1:word} in\\n\t\t${2:pattern})\\n\t\t\t${3};;\\n\tesac\\nsnippet go \\n\twhile getopts \\'${1:o}\\' ${2:opts} \\n\tdo \\n\t\tcase $$2 in\\n\t\t${3:o0})\\n\t\t\t${4:#staments};;\\n\t\tesac\\n\tdone\\n# Set SCRIPT_DIR variable to directory script is located.\\nsnippet sdir\\n\tSCRIPT_DIR=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" && pwd )\"\\n# getopt\\nsnippet getopt\\n\t__ScriptVersion=\"${1:version}\"\\n\\n\t#===  FUNCTION  ================================================================\\n\t#         NAME:  usage\\n\t#  DESCRIPTION:  Display usage information.\\n\t#===============================================================================\\n\tfunction usage ()\\n\t{\\n\t\t\tcat <<- EOT\\n\\n\t  Usage :  $${0:0} [options] [--] \\n\\n\t  Options: \\n\t  -h|help       Display this message\\n\t  -v|version    Display script version\\n\\n\t\t\tEOT\\n\t}    # ----------  end of function usage  ----------\\n\\n\t#-----------------------------------------------------------------------\\n\t#  Handle command line arguments\\n\t#-----------------------------------------------------------------------\\n\\n\twhile getopts \":hv\" opt\\n\tdo\\n\t  case $opt in\\n\\n\t\th|help     )  usage; exit 0   ;;\\n\\n\t\tv|version  )  echo \"$${0:0} -- Version $__ScriptVersion\"; exit 0   ;;\\n\\n\t\t\\\\? )  echo -e \"\\\\n  Option does not exist : $OPTARG\\\\n\"\\n\t\t\t  usage; exit 1   ;;\\n\\n\t  esac    # --- end of case ---\\n\tdone\\n\tshift $(($OPTIND-1))\\n\\n',t.scope=\"sh\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/sjs.js",
    "content": "ace.define(\"ace/snippets/sjs\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"sjs\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/smarty.js",
    "content": "ace.define(\"ace/snippets/smarty\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"smarty\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/snippets.js",
    "content": "ace.define(\"ace/snippets/snippets\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"# snippets for making snippets :)\\nsnippet snip\\n\tsnippet ${1:trigger}\\n\t\t${2}\\nsnippet msnip\\n\tsnippet ${1:trigger} ${2:description}\\n\t\t${3}\\nsnippet v\\n\t{VISUAL}\\n\",t.scope=\"snippets\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/soy_template.js",
    "content": "ace.define(\"ace/snippets/soy_template\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"soy_template\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/space.js",
    "content": "ace.define(\"ace/snippets/space\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"space\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/sql.js",
    "content": "ace.define(\"ace/snippets/sql\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"snippet tbl\\n\tcreate table ${1:table} (\\n\t\t${2:columns}\\n\t);\\nsnippet col\\n\t${1:name}\t${2:type}\t${3:default ''}\t${4:not null}\\nsnippet ccol\\n\t${1:name}\tvarchar2(${2:size})\t${3:default ''}\t${4:not null}\\nsnippet ncol\\n\t${1:name}\tnumber\t${3:default 0}\t${4:not null}\\nsnippet dcol\\n\t${1:name}\tdate\t${3:default sysdate}\t${4:not null}\\nsnippet ind\\n\tcreate index ${3:$1_$2} on ${1:table}(${2:column});\\nsnippet uind\\n\tcreate unique index ${1:name} on ${2:table}(${3:column});\\nsnippet tblcom\\n\tcomment on table ${1:table} is '${2:comment}';\\nsnippet colcom\\n\tcomment on column ${1:table}.${2:column} is '${3:comment}';\\nsnippet addcol\\n\talter table ${1:table} add (${2:column} ${3:type});\\nsnippet seq\\n\tcreate sequence ${1:name} start with ${2:1} increment by ${3:1} minvalue ${4:1};\\nsnippet s*\\n\tselect * from ${1:table}\\n\",t.scope=\"sql\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/sqlserver.js",
    "content": "ace.define(\"ace/snippets/sqlserver\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"# ISNULL\\nsnippet isnull\\n\tISNULL(${1:check_expression}, ${2:replacement_value})\\n# FORMAT\\nsnippet format\\n\tFORMAT(${1:value}, ${2:format})\\n# CAST\\nsnippet cast\\n\tCAST(${1:expression} AS ${2:data_type})\\n# CONVERT\\nsnippet convert\\n\tCONVERT(${1:data_type}, ${2:expression})\\n# DATEPART\\nsnippet datepart\\n\tDATEPART(${1:datepart}, ${2:date})\\n# DATEDIFF\\nsnippet datediff\\n\tDATEDIFF(${1:datepart}, ${2:startdate}, ${3:enddate})\\n# DATEADD\\nsnippet dateadd\\n\tDATEADD(${1:datepart}, ${2:number}, ${3:date})\\n# DATEFROMPARTS \\nsnippet datefromparts\\n\tDATEFROMPARTS(${1:year}, ${2:month}, ${3:day})\\n# OBJECT_DEFINITION\\nsnippet objectdef\\n\tSELECT OBJECT_DEFINITION(OBJECT_ID('${1:sys.server_permissions /*object name*/}'))\\n# STUFF XML\\nsnippet stuffxml\\n\tSTUFF((SELECT ', ' + ${1:ColumnName}\\n\t\tFROM ${2:TableName}\\n\t\tWHERE ${3:WhereClause}\\n\t\tFOR XML PATH('')), 1, 1, '') AS ${4:Alias}\\n\t${5:/*https://msdn.microsoft.com/en-us/library/ms188043.aspx*/}\\n# Create Procedure\\nsnippet createproc\\n\t-- =============================================\\n\t-- Author:\t\t${1:Author}\\n\t-- Create date: ${2:Date}\\n\t-- Description:\t${3:Description}\\n\t-- =============================================\\n\tCREATE PROCEDURE ${4:Procedure_Name}\\n\t\t${5:/*Add the parameters for the stored procedure here*/}\\n\tAS\\n\tBEGIN\\n\t\t-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.\\n\t\tSET NOCOUNT ON;\\n\t\t\\n\t\t${6:/*Add the T-SQL statements to compute the return value here*/}\\n\t\t\\n\tEND\\n\tGO\\n# Create Scalar Function\\nsnippet createfn\\n\t-- =============================================\\n\t-- Author:\t\t${1:Author}\\n\t-- Create date: ${2:Date}\\n\t-- Description:\t${3:Description}\\n\t-- =============================================\\n\tCREATE FUNCTION ${4:Scalar_Function_Name}\\n\t\t-- Add the parameters for the function here\\n\tRETURNS ${5:Function_Data_Type}\\n\tAS\\n\tBEGIN\\n\t\tDECLARE @Result ${5:Function_Data_Type}\\n\t\t\\n\t\t${6:/*Add the T-SQL statements to compute the return value here*/}\\n\t\t\\n\tEND\\n\tGO\",t.scope=\"sqlserver\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/stylus.js",
    "content": "ace.define(\"ace/snippets/stylus\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"stylus\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/svg.js",
    "content": "ace.define(\"ace/snippets/svg\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"svg\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/swift.js",
    "content": "ace.define(\"ace/snippets/swift\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"swift\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/swig.js",
    "content": "ace.define(\"ace/snippets/swig\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"swig\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/tcl.js",
    "content": "ace.define(\"ace/snippets/tcl\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"# #!/usr/bin/env tclsh\\nsnippet #!\\n\t#!/usr/bin/env tclsh\\n\t\\n# Process\\nsnippet pro\\n\tproc ${1:function_name} {${2:args}} {\\n\t\t${3:#body ...}\\n\t}\\n#xif\\nsnippet xif\\n\t${1:expr}? ${2:true} : ${3:false}\\n# Conditional\\nsnippet if\\n\tif {${1}} {\\n\t\t${2:# body...}\\n\t}\\n# Conditional if..else\\nsnippet ife\\n\tif {${1}} {\\n\t\t${2:# body...}\\n\t} else {\\n\t\t${3:# else...}\\n\t}\\n# Conditional if..elsif..else\\nsnippet ifee\\n\tif {${1}} {\\n\t\t${2:# body...}\\n\t} elseif {${3}} {\\n\t\t${4:# elsif...}\\n\t} else {\\n\t\t${5:# else...}\\n\t}\\n# If catch then\\nsnippet ifc\\n\tif { [catch {${1:#do something...}} ${2:err}] } {\\n\t\t${3:# handle failure...}\\n\t}\\n# Catch\\nsnippet catch\\n\tcatch {${1}} ${2:err} ${3:options}\\n# While Loop\\nsnippet wh\\n\twhile {${1}} {\\n\t\t${2:# body...}\\n\t}\\n# For Loop\\nsnippet for\\n\tfor {set ${2:var} 0} {$$2 < ${1:count}} {${3:incr} $2} {\\n\t\t${4:# body...}\\n\t}\\n# Foreach Loop\\nsnippet fore\\n\tforeach ${1:x} {${2:#list}} {\\n\t\t${3:# body...}\\n\t}\\n# after ms script...\\nsnippet af\\n\tafter ${1:ms} ${2:#do something}\\n# after cancel id\\nsnippet afc\\n\tafter cancel ${1:id or script}\\n# after idle\\nsnippet afi\\n\tafter idle ${1:script}\\n# after info id\\nsnippet afin\\n\tafter info ${1:id}\\n# Expr\\nsnippet exp\\n\texpr {${1:#expression here}}\\n# Switch\\nsnippet sw\\n\tswitch ${1:var} {\\n\t\t${3:pattern 1} {\\n\t\t\t${4:#do something}\\n\t\t}\\n\t\tdefault {\\n\t\t\t${2:#do something}\\n\t\t}\\n\t}\\n# Case\\nsnippet ca\\n\t${1:pattern} {\\n\t\t${2:#do something}\\n\t}${3}\\n# Namespace eval\\nsnippet ns\\n\tnamespace eval ${1:path} {${2:#script...}}\\n# Namespace current\\nsnippet nsc\\n\tnamespace current\\n\",t.scope=\"tcl\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/tex.js",
    "content": "ace.define(\"ace/snippets/tex\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"#PREAMBLE\\n#newcommand\\nsnippet nc\\n\t\\\\newcommand{\\\\${1:cmd}}[${2:opt}]{${3:realcmd}}${4}\\n#usepackage\\nsnippet up\\n\t\\\\usepackage[${1:[options}]{${2:package}}\\n#newunicodechar\\nsnippet nuc\\n\t\\\\newunicodechar{${1}}{${2:\\\\ensuremath}${3:tex-substitute}}}\\n#DeclareMathOperator\\nsnippet dmo\\n\t\\\\DeclareMathOperator{${1}}{${2}}\\n\\n#DOCUMENT\\n# \\\\begin{}...\\\\end{}\\nsnippet begin\\n\t\\\\begin{${1:env}}\\n\t\t${2}\\n\t\\\\end{$1}\\n# Tabular\\nsnippet tab\\n\t\\\\begin{${1:tabular}}{${2:c}}\\n\t${3}\\n\t\\\\end{$1}\\nsnippet thm\\n\t\\\\begin[${1:author}]{${2:thm}}\\n\t${3}\\n\t\\\\end{$1}\\nsnippet center\\n\t\\\\begin{center}\\n\t\t${1}\\n\t\\\\end{center}\\n# Align(ed)\\nsnippet ali\\n\t\\\\begin{align${1:ed}}\\n\t\t${2}\\n\t\\\\end{align$1}\\n# Gather(ed)\\nsnippet gat\\n\t\\\\begin{gather${1:ed}}\\n\t\t${2}\\n\t\\\\end{gather$1}\\n# Equation\\nsnippet eq\\n\t\\\\begin{equation}\\n\t\t${1}\\n\t\\\\end{equation}\\n# Equation\\nsnippet eq*\\n\t\\\\begin{equation*}\\n\t\t${1}\\n\t\\\\end{equation*}\\n# Unnumbered Equation\\nsnippet \\\\\\n\t\\\\[\\n\t\t${1}\\n\t\\\\]\\n# Enumerate\\nsnippet enum\\n\t\\\\begin{enumerate}\\n\t\t\\\\item ${1}\\n\t\\\\end{enumerate}\\n# Itemize\\nsnippet itemize\\n\t\\\\begin{itemize}\\n\t\t\\\\item ${1}\\n\t\\\\end{itemize}\\n# Description\\nsnippet desc\\n\t\\\\begin{description}\\n\t\t\\\\item[${1}] ${2}\\n\t\\\\end{description}\\n# Matrix\\nsnippet mat\\n\t\\\\begin{${1:p/b/v/V/B/small}matrix}\\n\t\t${2}\\n\t\\\\end{$1matrix}\\n# Cases\\nsnippet cas\\n\t\\\\begin{cases}\\n\t\t${1:equation}, &\\\\text{ if }${2:case}\\\\\\\\\\n\t\t${3}\\n\t\\\\end{cases}\\n# Split\\nsnippet spl\\n\t\\\\begin{split}\\n\t\t${1}\\n\t\\\\end{split}\\n# Part\\nsnippet part\\n\t\\\\part{${1:part name}} % (fold)\\n\t\\\\label{prt:${2:$1}}\\n\t${3}\\n\t% part $2 (end)\\n# Chapter\\nsnippet cha\\n\t\\\\chapter{${1:chapter name}}\\n\t\\\\label{cha:${2:$1}}\\n\t${3}\\n# Section\\nsnippet sec\\n\t\\\\section{${1:section name}}\\n\t\\\\label{sec:${2:$1}}\\n\t${3}\\n# Sub Section\\nsnippet sub\\n\t\\\\subsection{${1:subsection name}}\\n\t\\\\label{sub:${2:$1}}\\n\t${3}\\n# Sub Sub Section\\nsnippet subs\\n\t\\\\subsubsection{${1:subsubsection name}}\\n\t\\\\label{ssub:${2:$1}}\\n\t${3}\\n# Paragraph\\nsnippet par\\n\t\\\\paragraph{${1:paragraph name}}\\n\t\\\\label{par:${2:$1}}\\n\t${3}\\n# Sub Paragraph\\nsnippet subp\\n\t\\\\subparagraph{${1:subparagraph name}}\\n\t\\\\label{subp:${2:$1}}\\n\t${3}\\n#References\\nsnippet itd\\n\t\\\\item[${1:description}] ${2:item}\\nsnippet figure\\n\t${1:Figure}~\\\\ref{${2:fig:}}${3}\\nsnippet table\\n\t${1:Table}~\\\\ref{${2:tab:}}${3}\\nsnippet listing\\n\t${1:Listing}~\\\\ref{${2:list}}${3}\\nsnippet section\\n\t${1:Section}~\\\\ref{${2:sec:}}${3}\\nsnippet page\\n\t${1:page}~\\\\pageref{${2}}${3}\\nsnippet index\\n\t\\\\index{${1:index}}${2}\\n#Citations\\nsnippet cite\\n\t\\\\cite[${1}]{${2}}${3}\\nsnippet fcite\\n\t\\\\footcite[${1}]{${2}}${3}\\n#Formating text: italic, bold, underline, small capital, emphase ..\\nsnippet it\\n\t\\\\textit{${1:text}}\\nsnippet bf\\n\t\\\\textbf{${1:text}}\\nsnippet under\\n\t\\\\underline{${1:text}}\\nsnippet emp\\n\t\\\\emph{${1:text}}\\nsnippet sc\\n\t\\\\textsc{${1:text}}\\n#Choosing font\\nsnippet sf\\n\t\\\\textsf{${1:text}}\\nsnippet rm\\n\t\\\\textrm{${1:text}}\\nsnippet tt\\n\t\\\\texttt{${1:text}}\\n#misc\\nsnippet ft\\n\t\\\\footnote{${1:text}}\\nsnippet fig\\n\t\\\\begin{figure}\\n\t\\\\begin{center}\\n\t    \\\\includegraphics[scale=${1}]{Figures/${2}}\\n\t\\\\end{center}\\n\t\\\\caption{${3}}\\n\t\\\\label{fig:${4}}\\n\t\\\\end{figure}\\nsnippet tikz\\n\t\\\\begin{figure}\\n\t\\\\begin{center}\\n\t\\\\begin{tikzpicture}[scale=${1:1}]\\n\t\t${2}\\n\t\\\\end{tikzpicture}\\n\t\\\\end{center}\\n\t\\\\caption{${3}}\\n\t\\\\label{fig:${4}}\\n\t\\\\end{figure}\\n#math\\nsnippet stackrel\\n\t\\\\stackrel{${1:above}}{${2:below}} ${3}\\nsnippet frac\\n\t\\\\frac{${1:num}}{${2:denom}}\\nsnippet sum\\n\t\\\\sum^{${1:n}}_{${2:i=1}}{${3}}\",t.scope=\"tex\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/text.js",
    "content": "ace.define(\"ace/snippets/text\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"text\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/textile.js",
    "content": "ace.define(\"ace/snippets/textile\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='# Jekyll post header\\nsnippet header\\n\t---\\n\ttitle: ${1:title}\\n\tlayout: post\\n\tdate: ${2:date} ${3:hour:minute:second} -05:00\\n\t---\\n\\n# Image\\nsnippet img\\n\t!${1:url}(${2:title}):${3:link}!\\n\\n# Table\\nsnippet |\\n\t|${1}|${2}\\n\\n# Link\\nsnippet link\\n\t\"${1:link text}\":${2:url}\\n\\n# Acronym\\nsnippet (\\n\t(${1:Expand acronym})${2}\\n\\n# Footnote\\nsnippet fn\\n\t[${1:ref number}] ${3}\\n\\n\tfn$1. ${2:footnote}\\n\t\\n',t.scope=\"textile\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/toml.js",
    "content": "ace.define(\"ace/snippets/toml\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"toml\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/tsx.js",
    "content": "ace.define(\"ace/snippets/tsx\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"tsx\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/twig.js",
    "content": "ace.define(\"ace/snippets/twig\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"twig\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/typescript.js",
    "content": "ace.define(\"ace/snippets/typescript\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"typescript\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/vala.js",
    "content": "ace.define(\"ace/snippets/vala\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippets=[{content:\"case ${1:condition}:\\n\t$0\\n\tbreak;\\n\",name:\"case\",scope:\"vala\",tabTrigger:\"case\"},{content:\"/**\\n * ${6}\\n */\\n${1:public} class ${2:MethodName}${3: : GLib.Object} {\\n\\n\t/**\\n\t * ${7}\\n\t */\\n\tpublic ${2}(${4}) {\\n\t\t${5}\\n\t}\\n\\n\t$0\\n}\",name:\"class\",scope:\"vala\",tabTrigger:\"class\"},{content:\"(${1}) => {\\n\t${0}\\n}\\n\",name:\"closure\",scope:\"vala\",tabTrigger:\"=>\"},{content:\"/*\\n * $0\\n */\",name:\"Comment (multiline)\",scope:\"vala\",tabTrigger:\"/*\"},{content:\"Console.WriteLine($1);\\n$0\",name:\"Console.WriteLine (writeline)\",scope:\"vala\",tabTrigger:\"writeline\"},{content:'[DBus(name = \"$0\")]',name:\"DBus annotation\",scope:\"vala\",tabTrigger:\"[DBus\"},{content:\"delegate ${1:void} ${2:DelegateName}($0);\",name:\"delegate\",scope:\"vala\",tabTrigger:\"delegate\"},{content:\"do {\\n\t$0\\n} while ($1);\\n\",name:\"do while\",scope:\"vala\",tabTrigger:\"dowhile\"},{content:\"/**\\n * $0\\n */\",name:\"DocBlock\",scope:\"vala\",tabTrigger:\"/**\"},{content:\"else if ($1) {\\n\t$0\\n}\\n\",name:\"else if (elseif)\",scope:\"vala\",tabTrigger:\"elseif\"},{content:\"else {\\n\t$0\\n}\",name:\"else\",scope:\"vala\",tabTrigger:\"else\"},{content:\"enum {$1:EnumName} {\\n\t$0\\n}\",name:\"enum\",scope:\"vala\",tabTrigger:\"enum\"},{content:\"public errordomain ${1:Error} {\\n\t$0\\n}\",name:\"error domain\",scope:\"vala\",tabTrigger:\"errordomain\"},{content:\"for ($1;$2;$3) {\\n\t$0\\n}\",name:\"for\",scope:\"vala\",tabTrigger:\"for\"},{content:\"foreach ($1 in $2) {\\n\t$0\\n}\",name:\"foreach\",scope:\"vala\",tabTrigger:\"foreach\"},{content:\"Gee.ArrayList<${1:G}>($0);\",name:\"Gee.ArrayList\",scope:\"vala\",tabTrigger:\"ArrayList\"},{content:\"Gee.HashMap<${1:K},${2:V}>($0);\",name:\"Gee.HashMap\",scope:\"vala\",tabTrigger:\"HashMap\"},{content:\"Gee.HashSet<${1:G}>($0);\",name:\"Gee.HashSet\",scope:\"vala\",tabTrigger:\"HashSet\"},{content:\"if ($1) {\\n\t$0\\n}\",name:\"if\",scope:\"vala\",tabTrigger:\"if\"},{content:\"interface ${1:InterfaceName}{$2: : SuperInterface} {\\n\t$0\\n}\",name:\"interface\",scope:\"vala\",tabTrigger:\"interface\"},{content:\"public static int main(string [] argv) {\\n\t${0}\\n\treturn 0;\\n}\",name:\"Main function\",scope:\"vala\",tabTrigger:\"main\"},{content:\"namespace $1 {\\n\t$0\\n}\\n\",name:\"namespace (ns)\",scope:\"vala\",tabTrigger:\"ns\"},{content:\"stdout.printf($0);\",name:\"printf\",scope:\"vala\",tabTrigger:\"printf\"},{content:\"${1:public} ${2:Type} ${3:Name} {\\n\tset {\\n\t\t$0\\n\t}\\n\tget {\\n\\n\t}\\n}\",name:\"property (prop)\",scope:\"vala\",tabTrigger:\"prop\"},{content:\"${1:public} ${2:Type} ${3:Name} {\\n\tget {\\n\t\t$0\\n\t}\\n}\",name:\"read-only property (roprop)\",scope:\"vala\",tabTrigger:\"roprop\"},{content:'@\"${1:\\\\$var}\"',name:\"String template (@)\",scope:\"vala\",tabTrigger:\"@\"},{content:\"struct ${1:StructName} {\\n\t$0\\n}\",name:\"struct\",scope:\"vala\",tabTrigger:\"struct\"},{content:\"switch ($1) {\\n\t$0\\n}\",name:\"switch\",scope:\"vala\",tabTrigger:\"switch\"},{content:\"try {\\n\t$2\\n} catch (${1:Error} e) {\\n\t$0\\n}\",name:\"try/catch\",scope:\"vala\",tabTrigger:\"try\"},{content:'\"\"\"$0\"\"\";',name:'Verbatim string (\"\"\")',scope:\"vala\",tabTrigger:\"verbatim\"},{content:\"while ($1) {\\n\t$0\\n}\",name:\"while\",scope:\"vala\",tabTrigger:\"while\"}],t.scope=\"\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/vbscript.js",
    "content": "ace.define(\"ace/snippets/vbscript\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"vbscript\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/velocity.js",
    "content": "ace.define(\"ace/snippets/velocity\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='# macro\\nsnippet #macro\\n\t#macro ( ${1:macroName} ${2:\\\\$var1, [\\\\$var2, ...]} )\\n\t\t${3:## macro code}\\n\t#end\\n# foreach\\nsnippet #foreach\\n\t#foreach ( ${1:\\\\$item} in ${2:\\\\$collection} )\\n\t\t${3:## foreach code}\\n\t#end\\n# if\\nsnippet #if\\n\t#if ( ${1:true} )\\n\t\t${0}\\n\t#end\\n# if ... else\\nsnippet #ife\\n\t#if ( ${1:true} )\\n\t\t${2}\\n\t#else\\n\t\t${0}\\n\t#end\\n#import\\nsnippet #import\\n\t#import ( \"${1:path/to/velocity/format}\" )\\n# set\\nsnippet #set\\n\t#set ( $${1:var} = ${0} )\\n',t.scope=\"velocity\",t.includeScopes=[\"html\",\"javascript\",\"css\"]})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/verilog.js",
    "content": "ace.define(\"ace/snippets/verilog\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"verilog\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/vhdl.js",
    "content": "ace.define(\"ace/snippets/vhdl\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"vhdl\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/wollok.js",
    "content": "ace.define(\"ace/snippets/wollok\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='##\\n## Basic Java packages and import\\nsnippet im\\n\timport\\nsnippet w.l\\n\twollok.lang\\nsnippet w.i\\n\twollok.lib\\n\\n## Class and object\\nsnippet cl\\n\tclass ${1:`Filename(\"\", \"untitled\")`} ${2}\\nsnippet obj\\n\tobject ${1:`Filename(\"\", \"untitled\")`} ${2:inherits Parent}${3}\\nsnippet te\\n\ttest ${1:`Filename(\"\", \"untitled\")`}\\n\\n##\\n## Enhancements\\nsnippet inh\\n\tinherits\\n\\n##\\n## Comments\\nsnippet /*\\n\t/*\\n\t * ${1}\\n\t */\\n\\n##\\n## Control Statements\\nsnippet el\\n\telse\\nsnippet if\\n\tif (${1}) ${2}\\n\\n##\\n## Create a Method\\nsnippet m\\n\tmethod ${1:method}(${2}) ${5}\\n\\n##  \\n## Tests\\nsnippet as\\n\tassert.equals(${1:expected}, ${2:actual})\\n\\n##\\n## Exceptions\\nsnippet ca\\n\tcatch ${1:e} : (${2:Exception} ) ${3}\\nsnippet thr\\n\tthrow\\nsnippet try\\n\ttry {\\n\t\t${3}\\n\t} catch ${1:e} : ${2:Exception} {\\n\t}\\n\\n##\\n## Javadocs\\nsnippet /**\\n\t/**\\n\t * ${1}\\n\t */\\n\\n##\\n## Print Methods\\nsnippet print\\n\tconsole.println(\"${1:Message}\")\\n\\n##\\n## Setter and Getter Methods\\nsnippet set\\n\tmethod set${1:}(${2:}) {\\n\t\t$1 = $2\\n\t}\\nsnippet get\\n\tmethod get${1:}() {\\n\t\treturn ${1:};\\n\t}\\n\\n##\\n## Terminate Methods or Loops\\nsnippet re\\n\treturn',t.scope=\"wollok\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/xml.js",
    "content": "ace.define(\"ace/snippets/xml\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"xml\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/xquery.js",
    "content": "ace.define(\"ace/snippets/xquery\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='snippet for\\n\tfor $${1:item} in ${2:expr}\\nsnippet return\\n\treturn ${1:expr}\\nsnippet import\\n\timport module namespace ${1:ns} = \"${2:http://www.example.com/}\";\\nsnippet some\\n\tsome $${1:varname} in ${2:expr} satisfies ${3:expr}\\nsnippet every\\n\tevery $${1:varname} in ${2:expr} satisfies ${3:expr}\\nsnippet if\\n\tif(${1:true}) then ${2:expr} else ${3:true}\\nsnippet switch\\n\tswitch(${1:\"foo\"})\\n\tcase ${2:\"foo\"}\\n\treturn ${3:true}\\n\tdefault return ${4:false}\\nsnippet try\\n\ttry { ${1:expr} } catch ${2:*} { ${3:expr} }\\nsnippet tumbling\\n\tfor tumbling window $${1:varname} in ${2:expr}\\n\tstart at $${3:start} when ${4:expr}\\n\tend at $${5:end} when ${6:expr}\\n\treturn ${7:expr}\\nsnippet sliding\\n\tfor sliding window $${1:varname} in ${2:expr}\\n\tstart at $${3:start} when ${4:expr}\\n\tend at $${5:end} when ${6:expr}\\n\treturn ${7:expr}\\nsnippet let\\n\tlet $${1:varname} := ${2:expr}\\nsnippet group\\n\tgroup by $${1:varname} := ${2:expr}\\nsnippet order\\n\torder by ${1:expr} ${2:descending}\\nsnippet stable\\n\tstable order by ${1:expr}\\nsnippet count\\n\tcount $${1:varname}\\nsnippet ordered\\n\tordered { ${1:expr} }\\nsnippet unordered\\n\tunordered { ${1:expr} }\\nsnippet treat \\n\ttreat as ${1:expr}\\nsnippet castable\\n\tcastable as ${1:atomicType}\\nsnippet cast\\n\tcast as ${1:atomicType}\\nsnippet typeswitch\\n\ttypeswitch(${1:expr})\\n\tcase ${2:type}  return ${3:expr}\\n\tdefault return ${4:expr}\\nsnippet var\\n\tdeclare variable $${1:varname} := ${2:expr};\\nsnippet fn\\n\tdeclare function ${1:ns}:${2:name}(){\\n\t${3:expr}\\n\t};\\nsnippet module\\n\tmodule namespace ${1:ns} = \"${2:http://www.example.com}\";\\n',t.scope=\"xquery\"})"
  },
  {
    "path": "lib/src-min-noconflict/snippets/yaml.js",
    "content": "ace.define(\"ace/snippets/yaml\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"yaml\"})"
  },
  {
    "path": "lib/src-min-noconflict/theme-ambiance.js",
    "content": "ace.define(\"ace/theme/ambiance\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-ambiance\",t.cssText=\".ace-ambiance .ace_gutter {background-color: #3d3d3d;background-image: -moz-linear-gradient(left, #3D3D3D, #333);background-image: -ms-linear-gradient(left, #3D3D3D, #333);background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#3D3D3D), to(#333));background-image: -webkit-linear-gradient(left, #3D3D3D, #333);background-image: -o-linear-gradient(left, #3D3D3D, #333);background-image: linear-gradient(left, #3D3D3D, #333);background-repeat: repeat-x;border-right: 1px solid #4d4d4d;text-shadow: 0px 1px 1px #4d4d4d;color: #222;}.ace-ambiance .ace_gutter-layer {background: repeat left top;}.ace-ambiance .ace_gutter-active-line {background-color: #3F3F3F;}.ace-ambiance .ace_fold-widget {text-align: center;}.ace-ambiance .ace_fold-widget:hover {color: #777;}.ace-ambiance .ace_fold-widget.ace_start,.ace-ambiance .ace_fold-widget.ace_end,.ace-ambiance .ace_fold-widget.ace_closed{background: none;border: none;box-shadow: none;}.ace-ambiance .ace_fold-widget.ace_start:after {content: '\\u25be'}.ace-ambiance .ace_fold-widget.ace_end:after {content: '\\u25b4'}.ace-ambiance .ace_fold-widget.ace_closed:after {content: '\\u2023'}.ace-ambiance .ace_print-margin {border-left: 1px dotted #2D2D2D;right: 0;background: #262626;}.ace-ambiance .ace_scroller {-webkit-box-shadow: inset 0 0 10px black;-moz-box-shadow: inset 0 0 10px black;-o-box-shadow: inset 0 0 10px black;box-shadow: inset 0 0 10px black;}.ace-ambiance {color: #E6E1DC;background-color: #202020;}.ace-ambiance .ace_cursor {border-left: 1px solid #7991E8;}.ace-ambiance .ace_overwrite-cursors .ace_cursor {border: 1px solid #FFE300;background: #766B13;}.ace-ambiance.normal-mode .ace_cursor-layer {z-index: 0;}.ace-ambiance .ace_marker-layer .ace_selection {background: rgba(221, 240, 255, 0.20);}.ace-ambiance .ace_marker-layer .ace_selected-word {border-radius: 4px;border: 8px solid #3f475d;box-shadow: 0 0 4px black;}.ace-ambiance .ace_marker-layer .ace_step {background: rgb(198, 219, 174);}.ace-ambiance .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 255, 255, 0.25);}.ace-ambiance .ace_marker-layer .ace_active-line {background: rgba(255, 255, 255, 0.031);}.ace-ambiance .ace_invisible {color: #333;}.ace-ambiance .ace_paren {color: #24C2C7;}.ace-ambiance .ace_keyword {color: #cda869;}.ace-ambiance .ace_keyword.ace_operator {color: #fa8d6a;}.ace-ambiance .ace_punctuation.ace_operator {color: #fa8d6a;}.ace-ambiance .ace_identifier {}.ace-ambiance .ace-statement {color: #cda869;}.ace-ambiance .ace_constant {color: #CF7EA9;}.ace-ambiance .ace_constant.ace_language {color: #CF7EA9;}.ace-ambiance .ace_constant.ace_library {}.ace-ambiance .ace_constant.ace_numeric {color: #78CF8A;}.ace-ambiance .ace_invalid {text-decoration: underline;}.ace-ambiance .ace_invalid.ace_illegal {color:#F8F8F8;background-color: rgba(86, 45, 86, 0.75);}.ace-ambiance .ace_invalid,.ace-ambiance .ace_deprecated {text-decoration: underline;font-style: italic;color: #D2A8A1;}.ace-ambiance .ace_support {color: #9B859D;}.ace-ambiance .ace_support.ace_function {color: #DAD085;}.ace-ambiance .ace_function.ace_buildin {color: #9b859d;}.ace-ambiance .ace_string {color: #8f9d6a;}.ace-ambiance .ace_string.ace_regexp {color: #DAD085;}.ace-ambiance .ace_comment {font-style: italic;color: #555;}.ace-ambiance .ace_comment.ace_doc {}.ace-ambiance .ace_comment.ace_doc.ace_tag {color: #666;font-style: normal;}.ace-ambiance .ace_definition,.ace-ambiance .ace_type {color: #aac6e3;}.ace-ambiance .ace_variable {color: #9999cc;}.ace-ambiance .ace_variable.ace_language {color: #9b859d;}.ace-ambiance .ace_xml-pe {color: #494949;}.ace-ambiance .ace_gutter-layer,.ace-ambiance .ace_text-layer {background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAQAAAAHUWYVAABFFUlEQVQYGbzBCeDVU/74/6fj9HIcx/FRHx9JCFmzMyGRURhLZIkUsoeRfUjS2FNDtr6WkMhO9sm+S8maJfu+Jcsg+/o/c+Z4z/t97/vezy3z+z8ekGlnYICG/o7gdk+wmSHZ1z4pJItqapjoKXWahm8NmV6eOTbWUOp6/6a/XIg6GQqmenJ2lDHyvCFZ2cBDbmtHA043VFhHwXxClWmeYAdLhV00Bd85go8VmaFCkbVkzlQENzfBDZ5gtN7HwF0KDrTwJ0dypSOzpaKCMwQHKTIreYIxlmhXTzTWkVm+LTynZhiSBT3RZQ7aGfjGEd3qyXQ1FDymqbKxpspERQN2MiRjNZlFFQXfCNFm9nM1zpAsoYjmtRTc5ajwuaXc5xrWskT97RaKzAGe5ARHhVUsDbjKklziiX5WROcJwSNCNI+9w1Jwv4Zb2r7lCMZ4oq5C0EdTx+2GzNuKpJ+iFf38JEWkHJn9DNF7mmBDITrWEg0VWL3pHU20tSZnuqWu+R3BtYa8XxV1HO7GyD32UkOpL/yDloINFTmvtId+nmAjxRw40VMwVKiwrKLE4bK5UOVntYwhOcSSXKrJHKPJedocpGjVz/ZMIbnYUPB10/eKCrs5apqpgVmWzBYWpmtKHecJPjaUuEgRDDaU0oZghCJ6zNMQ5ZhDYx05r5v2muQdM0EILtXUsaKiQX9WMEUotagQzFbUNN6NUPC2nm5pxEWGCjMc3GdJHjSU2kORLK/JGSrkfGEIjncU/CYUnOipoYemwj8tST9NsJmB7TUVXtbUtXATJVZXBMvYeTXJfobgJUPmGMP/yFaWonaa6BcFO3nqcIqCozSZoZoSr1g4zJOzuyGnxTEX3lUEJ7WcZgme8ddaWvWJo2AJR9DZU3CUIbhCSG6ybSwN6qtJVnCU2svDTP2ZInOw2cBTrqtQahtNZn9NcJ4l2NaSmSkkP1noZWnVwkLmdUPOwLZEwy2Z3S3R+4rIG9hcbpPXHFVWcQdZkn2FOta3cKWQnNRC5g1LsJah4GCzSVsKnCOY5OAFRTBekyyryeyilhFKva75r4Mc0aWanGEaThcy31s439KKxTzJYY5WTHPU1FtIHjQU3Oip4xlNzj/lBw23dYZVliQa7WAXf4shetcQfatI+jWRDBPmyNeW6A1P5kdDgyYJlba0BIM8BZu1JfrFwItyjcAMR3K0BWOIrtMEXyhyrlVEx3ui5dUBjmB/Q3CXW85R4mBD0s7B+4q5tKUjOlb9qqmhi5AZ6GFIC5HXtOobdYGlVdMVbNJ8toNTFcHxnoL+muBagcctjWnbNMuR00uI7nQESwg5q2qqrKWIfrNUmeQocY6HuyxJV02wj36w00yhpmUFenv4p6fUkZYqLyuinx2RGOjhCXYyJF84oiU00YMOOhhquNdfbOB7gU88pY4xJO8LVdp6/q2voeB4R04vIdhSE40xZObx1HGGJ/ja0LBthFInKaLPPFzuCaYaoj8JjPME8yoyxo6zlBqkiUZYgq00OYMswbWO5NGmq+xhipxHLRW29ARjNKXO0wRnear8XSg4XFPLKEPUS1GqvyLwiuBUoa7zpZ0l5xxFwWmWZC1H5h5FwU8eQ7K+g8UcVY6TMQreVQT/8uQ8Z+ALIXnSEa2pYZQneE9RZbSBNYXfWYJzW/h/4j4Dp1tYVcFIC5019Vyi4ThPqSFCzjGWaHQTBU8q6vrVwgxP9Lkm840imWKpcLCjYTtrKuwvsKSnrvHCXGkSMk9p6lhckfRpIeis+N2PiszT+mFLspyGleUhDwcLrZqmyeylxwjBcKHEapqkmyangyLZRVOijwOtCY5SsG5zL0OwlCJ4y5KznF3EUNDDrinwiyLZRzOXtlBbK5ITHFGLp8Q0R6ab6mS7enI2cFrxOyHvOCFaT1HThS1krjCwqWeurCkk+willhCC+RSZnRXBiZaC5RXRIZYKp2lyfrHwiKPKR0JDzrdU2EFgpidawlFDR6FgXUMNa+g1FY3bUQh2cLCwosRdnuQTS/S+JVrGLeWIvtQUvONJxlqSQYYKpwoN2kaocLjdVsis4Mk80ESF2YpSkzwldjHkjFCUutI/r+EHDU8oCs6yzL3PhWiEooZdFMkymlas4AcI3KmoMMNSQ3tHzjGWCrcJJdYyZC7QFGwjRL9p+MrRkAGWzIaWCn9W0F3TsK01c2ZvQw0byvxuQU0r1lM0qJO7wW0kRIMdDTtXEdzi4VIh+EoIHm0mWtAtpCixlabgn83fKTI7anJe9ST7WIK1DMGpQmYeA58ImV6ezOGOzK2Kgq01pd60cKWiUi9Lievb/0vIDPHQ05Kzt4ddPckQBQtoaurjyHnek/nKzpQLrVgKPjIkh2v4uyezpv+Xoo7fPFXaGFp1vaLKxQ4uUpQQS5VuQs7BCq4xRJv7fwpVvvFEB3j+620haOuocqMhWd6TTPAEx+mdFNGHdranFe95WrWmIvlY4F1Dle2ECgc6cto7SryuqGGGha0tFQ5V53migUKmg6XKAo4qS3mik+0OZpAhOLeZKicacgaYcyx5hypYQE02ZA4xi/pNhOQxR4klNKyqacj+mpxnLTnnGSo85++3ZCZq6lrZkXlGEX3o+C9FieccJbZWVFjC0Yo1FZnJhoYMFoI1hEZ9r6hwg75HwzBNhbZCdJEfJwTPGzJvaKImw1yYX1HDAmpXR+ZJQ/SmgqMNVQb5vgamGwLtt7VwvP7Qk1xpiM5x5Cyv93E06MZmgs0Nya2azIKOYKCGBQQW97RmhKNKF02JZqHEJ4o58qp7X5EcZmc56trXEqzjCBZ1MFGR87Ql2tSTs6CGxS05PTzRQorkbw7aKoKXFDXsYW42VJih/q+FP2BdTzDTwVqOYB13liM50vG7wy28qagyuIXMeQI/Oqq8bcn5wJI50xH00CRntyfpL1T4hydYpoXgNiFzoIUTDZnLNRzh4TBHwbYGDvZkxmlyJloyr6tRihpeUG94GnKtIznREF0tzJG/OOr73JBcrSh1k6WuTprgLU+mnSGnv6Zge0NNz+kTDdH8nuAuTdJDCNb21LCiIuqlYbqGzT3RAoZofQfjFazkqeNWdYaGvYTM001EW2oKPvVk1ldUGSgUtHFwjKM1h9jnFcmy5lChoLNaQMGGDsYbKixlaMBmmsx1QjCfflwTfO/gckW0ruZ3jugKR3R5W9hGUWqCgxuFgsuaCHorotGKzGaeZB9DMsaTnKCpMtwTvOzhYk0rdrArKCqcaWmVk1+F372ur1YkKxgatI8Qfe1gIX9wE9FgS8ESmuABIXnRUbCapcKe+nO7slClSZFzpV/LkLncEb1qiO42fS3R855Su2mCLh62t1SYZZYVmKwIHjREF2uihTzB20JOkz7dkxzYQnK0UOU494wh+VWRc6Un2kpTaVgLDFEkJ/uhzRcI0YKGgpGWOlocBU/a4fKoJ/pEaNV6jip3+Es9VXY078rGnmAdf7t9ylPXS34RBSuYPs1UecZTU78WanhBCHpZ5sAoTz0LGZKjPf9TRypqWEiTvOFglL1fCEY3wY/++rbk7C8bWebA6p6om6PgOL2kp44TFJlVNBXae2rqqdZztOJpT87GQsE9jqCPIe9VReZuQ/CIgacsyZdCpIScSYqcZk8r+nsyCzhyfhOqHGOIvrLknC8wTpFcaYiGC/RU1NRbUeUpocQOnkRpGOrIOcNRx+1uA0UrzhSSt+VyS3SJpnFWkzNDqOFGIWcfR86DnmARTQ1HKIL33ExPiemeOhYSSjzlSUZZuE4TveoJLnBUOFof6KiysCbnAEcZgcUNTDOwkqWu3RWtmGpZwlHhJENdZ3miGz0lJlsKnjbwqSHQjpxnFDlTLLwqJPMZMjd7KrzkSG7VsxXBZE+F8YZkb01Oe00yyRK9psh5SYh29ySPKBo2ylNht7ZkZnsKenjKNJu9PNEyZpaCHv4Kt6RQsLvAVp7M9kIimmCUwGeWqLMmGuIotYMmWNpSahkhZw9FqZsVnKJhsjAHvtHMsTM9fCI06Dx/u3vfUXCqfsKRc4oFY2jMsoo/7DJDwZ1CsIKnJu+J9ldkpmiCxQx1rWjI+T9FwcWWzOuaYH0Hj7klNRVWEQpmaqosakiGNTFHdjS/qnUdmf0NJW5xsL0HhimCCZZSRzmSPTXJQ4aaztAwtZnoabebJ+htCaZ7Cm535ByoqXKbX1WRc4Eh2MkRXWzImVc96Cj4VdOKVxR84VdQsIUM8Psoou2byVHyZFuq7O8otbSQ2UAoeEWTudATLGSpZzVLlXVkPU2Jc+27lsw2jmg5T5VhbeE3BT083K9WsTTkFU/Osi0rC5lRlpwRHUiesNS0sOvmqGML1aRbPAxTJD9ZKtxuob+hhl8cwYGWpJ8nub7t5p6coYbMovZ1BTdaKn1jYD6h4GFDNFyT/Kqe1XCXphXHOKLZmuRSRdBPEfVUXQzJm5YGPGGJdvAEr7hHNdGZnuBvrpciGmopOLf5N0uVMy0FfYToJk90uUCbJupaVpO53UJXR2bVpoU00V2KOo4zMFrBd0Jtz2pa0clT5Q5L8IpQ177mWQejPMEJhuQjS10ref6HHjdEhy1P1EYR7GtO0uSsKJQYLiTnG1rVScj5lyazpqWGl5uBbRWl7m6ixGOOnEsMJR7z8J0n6KMnCdxhiNYQCoZ6CmYLnO8omC3MkW3bktlPmEt/VQQHejL3+dOE5FlPdK/Mq8hZxxJtLyRrepLThYKbLZxkSb5W52vYxNOaOxUF0yxMUPwBTYqCzy01XayYK0sJyWBLqX0MwU5CzoymRzV0EjjeUeLgDpTo6ij42ZAzvD01dHUUTPLU96MdLbBME8nFBn7zJCMtJcZokn8YoqU0FS5WFKyniHobguMcmW8N0XkWZjkyN3hqOMtS08r+/xTBwpZSZ3qiVRX8SzMHHjfUNFjgHEPmY9PL3ykEzxkSre/1ZD6z/NuznuB0RcE1TWTm9zRgfUWVJiG6yrzgmWPXC8EAR4Wxhlad0ZbgQyEz3pG5RVEwwDJH2mgKpjcTiCOzn1lfUWANFbZ2BA8balnEweJC9J0iuaeZoI+ippFCztEKVvckR2iice1JvhVytrQwUAZpgsubCPaU7xUe9vWnaOpaSBEspalykhC9bUlOMpT42ZHca6hyrqKmw/wMR8H5ZmdFoBVJb03O4UL0tSNnvIeRmkrLWqrs78gcrEn2tpcboh0UPOW3UUR9PMk4T4nnNKWmCjlrefhCwxRNztfmIQVdDElvS4m1/WuOujoZCs5XVOjtKPGokJzsYCtFYoWonSPT21DheU/wWhM19FcElwqNGOsp9Q8N/cwXaiND1MmeL1Q5XROtYYgGeFq1aTMsoMmcrKjQrOFQTQ1fmBYhmW6o8Jkjc7iDJRTBIo5kgJD5yMEYA3srCg7VFKwiVJkmRCc5ohGOKhsYMn/XBLdo5taZjlb9YAlGWRimqbCsoY7HFAXLa5I1HPRxMMsQDHFkWtRNniqT9UEeNjcE7RUlrCJ4R2CSJuqlKHWvJXjAUNcITYkenuBRB84TbeepcqTj3zZyFJzgYQdHnqfgI0ddUwS6GqWpsKWhjq9cV0vBAEMN2znq+EBfIWT+pClYw5xsTlJU6GeIBsjGmmANTzJZiIYpgrM0Oa8ZMjd7NP87jxhqGOhJlnQtjuQpB+8aEE00wZFznSJPyHxgH3HkPOsJFvYk8zqCHzTs1BYOa4J3PFU+UVRZxlHDM4YavlNUuMoRveiZA2d7grMNc2g+RbSCEKzmgYsUmWmazFJyoiOZ4KnyhKOGRzWJa0+moyV4TVHDzn51Awtqaphfk/lRQ08FX1iiqxTB/kLwd0VynKfEvI6cd4XMV5bMhZ7gZUWVzYQ6Nm2BYzxJbw3bGthEUUMfgbGeorae6DxHtJoZ6alhZ0+ytiVoK1R4z5PTrOECT/SugseEOlb1MMNR4VRNcJy+V1Hg9ONClSZFZjdHlc6W6FBLdJja2MC5hhpu0DBYEY1TFGwiFAxRRCsYkiM9JRb0JNMVkW6CZYT/2EiTGWmo8k+h4FhDNE7BvppoTSFnmCV5xZKzvcCdDo7VVPnIU+I+Rc68juApC90MwcFCsJ5hDqxgScYKreruyQwTqrzoqDCmhWi4IbhB0Yrt3RGa6GfDv52rKXWhh28dyZaWUvcZeMTBaZoSGyiCtRU5J8iviioHaErs7Jkj61syVzTTgOcUOQ8buFBTYWdL5g3T4qlpe0+wvD63heAXRfCCIed9RbCsp2CiI7raUOYOTU13N8PNHvpaGvayo4a3LLT1lDrVEPT2zLUlheB1R+ZTRfKWJ+dcocLJfi11vyJ51lLqJ0WD7tRwryezjiV5W28uJO9qykzX8JDe2lHl/9oyBwa2UMfOngpXCixvKdXTk3wrsKmiVYdZIqsoWEERjbcUNDuiaQomGoIbFdEHmsyWnuR+IeriKDVLnlawlyNHKwKlSU631PKep8J4Q+ayjkSLKYLhalNHlYvttb6fHm0p6OApsZ4l2VfdqZkjuysy6ysKLlckf1KUutCTs39bmCgEyyoasIWlVaMF7mgmWtBT8Kol5xpH9IGllo8cJdopcvZ2sImlDmMIbtDk3KIpeNiS08lQw11NFPTwVFlPP6pJ2gvRfI7gQUfmNAtf6Gs0wQxDsKGlVBdF8rCa3jzdwMaGHOsItrZk7hAyOzpK9VS06j5F49b0VNGOOfKs3lDToMsMBe9ZWtHFEgxTJLs7qrygKZjUnmCYoeAqeU6jqWuLJup4WghOdvCYJnrSkSzoyRkm5M2StQwVltPkfCAk58tET/CSg+8MUecmotMEnhBKfWBIZsg2ihruMJQaoIm+tkTLKEqspMh00w95gvFCQRtDwTT1gVDDSEVdlwqZfxoQRbK0g+tbiBZxzKlpnpypejdDwTaeOvorMk/IJE10h9CqRe28hhLbe0pMsdSwv4ZbhKivo2BjDWfL8UKJgeavwlwb5KlwhyE4u4XkGE2ytZCznKLCDZZq42VzT8HLCrpruFbIfOIINmh/qCdZ1ZBc65kLHR1Bkyf5zn6pN3SvGKIlFNGplhrO9QSXanLOMQTLCa0YJCRrCZm/CZmrLTm7WzCK4GJDiWUdFeYx1LCFg3NMd0XmCuF3Y5rITLDUsYS9zoHVzwnJoYpSTQoObyEzr4cFBNqYTopoaU/wkyLZ2lPhX/5Y95ulxGTV7KjhWrOZgl8MyUUafjYraNjNU1N3IWcjT5WzWqjwtoarHSUObGYO3GCJZpsBlnJGPd6ZYLyl1GdCA2625IwwJDP8GUKymbzuyPlZlvTUsaUh5zFDhRWFzPKKZLAlWdcQbObgF9tOqOsmB1dqcqYJmWstFbZRRI9poolmqiLnU0POvxScpah2iSL5UJNzgScY5+AuIbpO0YD3NCW+dLMszFSdFCWGqG6eVq2uYVNDdICGD6W7EPRWZEY5gpsE9rUkS3mijzzJnm6UpUFXG1hCUeVoS5WfNcFpblELL2qqrCvMvRfd45oalvKU2tiQ6ePJOVMRXase9iTtLJztPxJKLWpo2CRDcJwn2sWSLKIO1WQWNTCvpVUvOZhgSC40JD0dOctaSqzkCRbXsKlb11Oip6PCJ0IwSJM31j3akRxlP7Rwn6aGaUL0qiLnJkvB3xWZ2+Q1TfCwpQH3G0o92UzmX4o/oJNQMMSQc547wVHhdk+VCw01DFYEnTxzZKAm74QmeNNR1w6WzEhNK15VJzuCdxQ53dRUDws5KvwgBMOEgpcVNe0hZI6RXT1Jd0cyj5nsaEAHgVmGaJIlWdsc5Ui2ElrRR6jrRAttNMEAIWrTDFubkZaok7/AkzfIwfuWVq0jHzuCK4QabtLUMVPB3kJ0oyHTSVFlqMALilJf2Rf8k5aaHtMfayocLBS8L89oKoxpJvnAkDPa0qp5DAUTHKWmCcnthlou8iCKaFFLHWcINd1nyIwXqrSxMNmSs6KmoL2QrKuWtlQ5V0120xQ5vRyZS1rgFkWwhiOwiuQbR0OOVhQM9iS3tiXp4RawRPMp5tDletOOBL95MpM01dZTBM9pkn5qF010rIeHFcFZhmSGpYpTsI6nwhqe5C9ynhlpp5ophuRb6WcJFldkVnVEwwxVfrVkvnWUuNLCg5bgboFHPDlDPDmnK7hUrWiIbjadDclujlZcaokOFup4Ri1kacV6jmrrK1hN9bGwpKEBQ4Q6DvIUXOmo6U5LqQM6EPyiKNjVkPnJkDPNEaxhiFay5ExW1NXVUGqcpYYdPcGiCq7z/TSlbhL4pplWXKd7NZO5QQFrefhRQW/NHOsqcIglc4UhWklR8K0QzbAw08CBDnpbgqXdeD/QUsM4RZXDFBW6WJKe/mFPdH0LtBgiq57wFLzlyQzz82qYx5D5WJP5yVJDW01BfyHnS6HKO/reZqId1WGa4Hkh2kWodJ8i6KoIPlAj2hPt76CzXsVR6koPRzWTfKqIentatYpQw2me4AA3y1Kind3SwoOKZDcFXTwl9tWU6mfgRk9d71sKtlNwrjnYw5tC5n5LdKiGry3JKNlHEd3oaMCFHrazBPMp/uNJ+V7IudcSbeOIdjUEdwl0VHCOZo5t6YluEuaC9mQeMgSfOyKnYGFHcIeQ84yQWbuJYJpZw5CzglDH7gKnWqqM9ZTaXcN0TeYhR84eQtJT76JJ1lREe7WnnvsMmRc9FQ7SBBM9mV3lCUdmHk/S2RAMt0QjFNFqQpWjDPQ01DXWUdDBkXziKPjGEP3VP+zIWU2t7im41FOloyWzn/L6dkUy3VLDaZ6appgDLHPjJEsyvJngWEPUyVBiAaHCTEXwrLvSEbV1e1gKJniicWorC1MUrVjB3uDhJE/wgSOzk1DXpk0k73qCM8xw2UvD5kJmDUfOomqMpWCkJRlvKXGmoeBm18USjVIk04SClxTB6YrgLAPLWYK9HLUt5cmc0vYES8GnTeRc6skZbQkWdxRsIcyBRzx1DbTk9FbU0caTPOgJHhJKnOGIVhQqvKmo0llRw9sabrZkDtdg3PqaKi9oatjY8B+G371paMg6+mZFNNtQ04mWBq3rYLOmtWWQp8KJnpy9DdFensyjdqZ+yY40VJlH8wcdLzC8PZnvHMFUTZUrDTkLyQaGus5X5LzpYAf3i+e/ZlhqGqWhh6Ou6xTR9Z6oi5AZZtp7Mj2EEm8oSpxiYZCHU/1fbGdNNNRRoZMhmilEb2gqHOEJDtXkHK/JnG6IrvbPCwV3NhONVdS1thBMs1T4QOBcTWa2IzhMk2nW5Kyn9tXUtpv9RsG2msxk+ZsQzRQacJncpgke0+T8y5Fzj8BiGo7XlJjaTIlpQs7KFjpqGnKuoyEPeIKnFMkZHvopgh81ySxNFWvJWcKRs70j2FOT012IllEEO1n4pD1513Yg2ssQPOThOkvyrqHUdEXOSEsihmBbTbKX1kLBPWqWkLOqJbjB3GBIZmoa8qWl4CG/iZ7oiA72ZL7TJNeZUY7kFQftDcHHluBzRbCegzMtrRjVQpX2lgoPKKLJAkcbMl01XK2p7yhL8pCBbQ3BN2avJgKvttcrWDK3CiUOVxQ8ZP+pqXKyIxnmBymCg5vJjNfkPK4+c8cIfK8ocVt7kmfd/I5SR1hKvCzUtb+lhgc00ZaO6CyhIQP1Uv4yIZjload72PXX0OIJvnFU+0Zf6MhsJwTfW0r0UwQfW4LNLZl5HK261JCZ4qnBaAreVAS3WrjV0LBnNDUNNDToCEeFfwgcb4gOEqLRhirWkexrCEYKVV711DLYEE1XBEsp5tpTGjorkomKYF9FDXv7fR3BGwbettSxnyL53MBPjsxDZjMh+VUW9NRxq1DhVk+FSxQcaGjV9Pawv6eGByw5qzoy7xk4RsOShqjJwWKe/1pEEfzkobeD/dQJmpqedcyBTy2sr4nGNRH0c0SPWTLrqAc0OQcb/gemKgqucQT7ySWKCn2EUotoCvpZct7RO2sy/QW0IWcXd7pQRQyZVwT2USRO87uhjioTLKV2brpMUcMQRbKH/N2T+UlTpaMls6cmc6CCNy3JdYYSUzzJQ4oSD3oKLncULOiJvjBEC2oqnCJkJluCYy2ZQ5so9YYlZ1VLlQU1mXEW1jZERwj/MUSRc24TdexlqLKfQBtDTScJUV8FszXBEY5ktpD5Ur9hYB4Nb1iikw3JoYpkKX+RodRKFt53MMuRnKSpY31PwYaGaILh3wxJGz9TkTPEETxoCWZrgvOlmyMzxFEwVJE5xZKzvyJ4WxEc16Gd4Xe3Weq4XH2jKRikqOkGQ87hQnC7wBmGYLAnesX3M+S87eFATauuN+Qcrh7xIxXJbUIdMw3JGE3ylCWzrieaqCn4zhGM19TQ3z1oH1AX+pWEqIc7wNGAkULBo/ZxRaV9NNyh4Br3rCHZzbzmSfawBL0dNRwpW1kK9mxPXR9povcdrGSZK9c2k0xwFGzjuniCtRSZCZ6ccZ7gaktmgAOtKbG/JnOkJrjcQTdFMsxRQ2cLY3WTIrlCw1eWKn8R6pvt4GFDso3QoL4a3nLk3G6JrtME3dSenpx7PNFTmga0EaJTLQ061sEeQoWXhSo9LTXsaSjoJQRXeZLtDclbCrYzfzHHeaKjHCVOUkQHO3JeEepr56mhiyaYYKjjNU+Fed1wS5VlhWSqI/hYUdDOkaxiKehoyOnrCV5yBHtbWFqTHCCwtpDcYolesVR5yUzTZBb3RNMd0d6WP+SvhuBmRcGxnuQzT95IC285cr41cLGQ6aJJhmi4TMGempxeimBRQw1tFKV+8jd6KuzoSTqqDxzRtpZkurvKEHxlqXKRIjjfUNNXQsNOsRScoWFLT+YeRZVD3GRN0MdQcKqQjHDMrdGGVu3iYJpQx3WGUvfbmxwFfR20WBq0oYY7LMFhhgYtr8jpaEnaOzjawWWaTP8mMr0t/EPDPoqcnxTBI5o58L7uoWnMrpoqPwgVrlAUWE+V+TQl9rawoyP6QGAlQw2TPRX+YSkxyBC8Z6jhHkXBgQL7WII3DVFnRfCrBfxewv9D6xsyjys4VkhWb9pUU627JllV0YDNHMku/ldNMMXDEo4aFnAkk4U6frNEU4XgZUPmEKHUl44KrzmYamjAbh0JFvGnaTLPu1s9jPCwjFpYiN7z1DTOk/nc07CfDFzmCf7i+bfNHXhDtLeBXzTBT5rkMvWOIxpl4EMh2LGJBu2syDnAEx2naEhHDWMMzPZEhygyS1mS5RTJr5ZkoKbEUoYqr2kqdDUE8ztK7OaIntJkFrIECwv8LJTaVx5XJE86go8dFeZ3FN3rjabCAYpoYEeC9zzJVULBbmZhDyd7ko09ydpNZ3nm2Kee4FPPXHnYEF1nqOFEC08LUVcDvYXkJHW8gTaKCk9YGOeIJhqiE4ToPEepdp7IWFjdwnWaufGMwJJCMtUTTBBK9BGCOy2tGGrJTHIwyEOzp6aPzNMOtlZkDvcEWpP5SVNhfkvDxhmSazTJXYrM9U1E0xwFVwqZQwzJxw6+kGGGUj2FglGGmnb1/G51udRSMNlTw6GGnCcUwVcOpmsqTHa06o72sw1RL02p9z0VbnMLOaIX3QKaYKSCFQzBKEUNHTSc48k53RH9wxGMtpQa5KjjW0W0n6XCCCG4yxNNdhQ4R4l1Ff+2sSd6UFHiIEOyqqFgT01mEUMD+joy75jPhOA+oVVLm309FR4yVOlp4RhLiScNmSmaYF5Pw0STrOIoWMSR2UkRXOMp+M4SHW8o8Zoi6OZgjKOaFar8zZDzkWzvKOjkKBjmCXby8JahhjXULY4KlzgKLvAwxVGhvyd4zxB1d9T0piazmKLCVZY5sKiD0y2ZSYrkUEPUbIk+dlQ4SJHTR50k1DPaUWIdTZW9NJwnJMOECgd7ou/MnppMJ02O1VT4Wsh85MnZzcFTngpXGKo84qmwgKbCL/orR/SzJ2crA+t6Mp94KvxJUeIbT3CQu1uIdlQEOzlKfS3UMcrTiFmOuroocrZrT2AcmamOKg8YomeEKm/rlT2sociMaybaUlFhuqHCM2qIJ+rg4EcDFymiDSxzaHdPcpE62pD5kyM5SBMoA1PaUtfIthS85ig1VPiPPYXgYEMNk4Qq7TXBgo7oT57gPUdwgCHzhIVFPFU6OYJzHAX9m5oNrVjeE61miDrqQ4VSa1oiURTsKHC0IfjNwU2WzK6eqK8jWln4g15TVBnqmDteCJ501PGAocJhhqjZdtBEB6lnhLreFJKxmlKbeGrqLiSThVIbCdGzloasa6lpMQXHCME2boLpJgT7yWaemu6wBONbqGNVRS0PKIL7LckbjmQtR7K8I5qtqel+T/ChJTNIKLjdUMNIRyvOEko9YYl2cwQveBikCNawJKcLBbc7+JM92mysNvd/Fqp8a0k6CNEe7cnZrxlW0wQXaXjaktnRwNOGZKYiONwS7a1JVheq3WgJHlQUGKHKmp4KAxXR/ULURcNgoa4zhKSLpZR3kxRRb0NmD0OFn+UCS7CzI1nbP6+o4x47QZE5xRCt3ZagnYcvmpYQktXdk5YKXTzBC57kKEe0VVuiSYqapssMS3C9p2CKkHOg8B8Pa8p5atrIw3qezIWanMGa5HRDNF6RM9wcacl0N+Q8Z8hsIkSnaIIdHRUOEebAPy1zbCkhM062FCJtif7PU+UtoVXzWKqM1PxXO8cfdruhFQ/a6x3JKYagvVDhQEtNiyiiSQ7OsuRsZUku0CRNDs4Sog6KKjsZgk2bYJqijgsEenoKeniinRXBn/U3lgpPdyDZynQx8IiioMnCep5Ky8mjGs6Wty0l1hUQTcNWswS3WRp2kCNZwJG8omG8JphPUaFbC8lEfabwP7VtM9yoaNCAjpR41VNhrD9LkbN722v0CoZMByFzhaW+MyzRYEWFDQwN2M4/JiT76PuljT3VU/A36eaIThb+R9oZGOAJ9tewkgGvqOMNRWYjT/Cwu99Q8LqDE4TgbLWxJ1jaDDAERsFOFrobgjUsBScaguXU8kKm2RL19tRypSHnHNlHiIZqgufs4opgQdVdwxBNNFBR6kVFqb8ogimOzB6a6HTzrlDHEpYaxjiiA4TMQobkDg2vejjfwJGWmnbVFAw3H3hq2NyQfG7hz4aC+w3BbwbesG0swYayvpAs6++Ri1Vfzx93mFChvyN5xVHTS+0p9aqCAxyZ6ZacZyw5+7uuQkFPR9DDk9NOiE7X1PCYJVjVUqq7JlrHwWALF5nfHNGjApdpqgzx5OwilDhCiDYTgnc9waGW4BdLNNUQvOtpzDOWHDH8D7TR/A/85KljEQu3NREc4Pl/6B1Hhc8Umb5CsKMmGC9EPcxoT2amwHNCmeOEnOPbklnMkbOgIvO5UMOpQrS9UGVdt6iH/fURjhI/WOpaW9OKLYRod6HCUEdOX000wpDZQ6hwg6LgZfOqo1RfT/CrJzjekXOGhpc1VW71ZLbXyyp+93ILbC1kPtIEYx0FIx1VDrLoVzXRKRYWk809yYlC9ImcrinxtabKnzRJk3lAU1OLEN1j2zrYzr2myHRXJFf4h4QKT1qSTzTB5+ZNTzTRkAxX8FcLV2uS8eoQQ2aAkFzvCM72sJIcJET3WPjRk5wi32uSS9rfZajpWEvj9hW42F4o5NytSXYy8IKHay10VYdrcl4SkqscrXpMwyGOgtkajheSxdQqmpxP1L3t4R5PqasFnrQEjytq6qgp9Y09Qx9o4S1FzhUCn1kyHSzBWLemoSGvOqLNhZyBjmCaAUYpMgt4Ck7wBBMMwWKWgjsUwTaGVsxWC1mYoKiyqqeGKYqonSIRQ3KIkHO0pmAxTdBHkbOvfllfr+AA+7gnc50huVKYK393FOyg7rbPO/izI7hE4CnHHHnJ0ogNPRUGeUpsrZZTBJcrovUcJe51BPsr6GkJdhCCsZ6aTtMEb2pqWkqeVtDXE/QVggsU/Nl86d9RMF3DxvZTA58agu810RWawCiSzzXBeU3MMW9oyJUedvNEvQyNu1f10BSMddR1vaLCYpYa/mGocLSiYDcLbQz8aMn5iyF4xBNMs1P0QEOV7o5gaWGuzSeLue4tt3ro7y4Tgm4G/mopdZgl6q0o6KzJWE3mMksNr3r+a6CbT8g5wZNzT9O7fi/zpaOmnz3BRoqos+tv9zMbdpxsqDBOEewtJLt7cg5wtKKbvldpSzRRCD43VFheCI7yZLppggMVBS/KMAdHODJvOwq2NQSbKKKPLdFWQs7Fqo+mpl01JXYRgq8dnGLhTiFzqmWsUMdpllZdbKlyvSdYxhI9YghOtxR8LgSLWHK62mGGVoxzBE8LNWzqH9CUesQzFy5RQzTc56mhi6fgXEWwpKfE5Z7M05ZgZUPmo6auiv8YKzDYwWBLMErIbKHJvOwIrvEdhOBcQ9JdU1NHQ7CXn2XIDFBKU2WAgcX9UAUzDXWd5alwuyJ41Z9rjKLCL4aCp4WarhPm2rH+SaHUYE001JDZ2ZAzXPjdMpZWvC9wmqIB2lLhQ01D5jO06hghWMndbM7yRJMsoCj1vYbnFQVrW9jak3OlEJ3s/96+p33dEPRV5GxiqaGjIthUU6FFEZyqCa5qJrpBdzSw95IUnOPIrCUUjRZQFrbw5PR0R1qiYx3cb6nrWUMrBmmiBQxVHtTew5ICP/ip6g4hed/Akob/32wvBHsIOX83cI8hGeNeNPCIkPmXe8fPKx84OMSRM1MTdXSwjCZ4S30jVGhvqTRak/OVhgGazHuOCud5onEO1lJr6ecVyaOK6H7zqlBlIaHE0oroCgfvGJIdPcmfLNGLjpz7hZwZQpUbFME0A1cIJa7VNORkgfsMBatbKgwwJM9bSvQXeNOvbIjelg6WWvo5kvbKaJJNHexkKNHL9xRyFlH8Ti2riB5wVPhUk7nGkJnoCe428LR/wRGdYIlmWebCyxou1rCk4g/ShugBDX0V0ZQWkh0dOVsagkM0yV6OoLd5ye+pRlsCr0n+KiQrGuq5yJDzrTAXHtLUMduTDBVKrSm3eHL+6ijxhFDX9Z5gVU/wliHYTMiMFpKLNMEywu80wd3meoFmt6VbRMPenhrOc6DVe4pgXU8DnnHakLOIIrlF4FZPIw6R+zxBP0dyq6OOZ4Q5sLKCcz084ok+VsMMyQhNZmmBgX5xIXOEJTmi7VsGTvMTNdHHhpzdbE8Du2oKxgvBqQKdDDnTFOylCFaxR1syz2iqrOI/FEpNc3C6f11/7+ASS6l2inq2ciTrCCzgyemrCL5SVPjQkdPZUmGy2c9Sw9FtR1sS30RmsKPCS4rkIC/2U0MduwucYolGaPjKEyhzmiPYXagyWbYz8LWBDdzRimAXzxx4z8K9hpzlhLq+NiQ97HuKorMUfK/OVvC2JfiHUPCQI/q7J2gjK+tTDNxkCc4TMssqCs4TGtLVwQihyoAWgj9bosU80XGW6Ac9TJGziaUh5+hnFcHOnlaM1iRn29NaqGENTTTSUHCH2tWTeV0osUhH6psuVLjRUmGWhm6OZEshGeNowABHcJ2Bpy2ZszRcKkRXd2QuKVEeXnbfaEq825FguqfgfE2whlChSRMdron+LATTPQ2Z369t4B9C5gs/ylzv+CMmepIDPclFQl13W0rspPd1JOcbghGOEutqCv5qacURQl3dDKyvyJlqKXGPgcM9FfawJAMVmdcspcYKOZc4GjDYkFlK05olNMHyHn4zFNykyOxt99RkHlfwmiHo60l2EKI+mhreEKp080Tbug08BVPcgoqC5zWt+NLDTZ7oNSF51N1qie7Va3uCCwyZbkINf/NED6jzOsBdZjFN8oqG3wxVunqCSYYKf3EdhJyf9YWGf7tRU2oH3VHgPr1fe5J9hOgHd7xQ0y7qBwXr23aGErP0cm64JVjZwsOGqL+mhNgZmhJLW2oY4UhedsyBgzrCKrq7BmcpNVhR6jBPq64Vgi+kn6XE68pp8J5/+0wRHGOpsKenQn9DZntPzjRLZpDAdD2fnSgkG9tmIXnUwQ6WVighs7Yi2MxQ0N3CqYaCXkJ0oyOztMDJjmSSpcpvlrk0RMMOjmArQ04PRV1DO1FwhCVaUVPpKUM03JK5SxPsIWRu8/CGHi8UHChiqGFDTbSRJWeYUDDcH6vJWUxR4k1FXbMUwV6e4AJFXS8oMqsZKqzvYQ9DDQdZckY4aGsIhtlubbd2r3j4QBMoTamdPZk7O/Bf62lacZwneNjQoGcdVU7zJOd7ghsUHOkosagic6cnWc8+4gg285R6zZP5s1/LUbCKIznTwK36PkdwlOrl4U1LwfdCCa+IrvFkmgw1PCAUXKWo0sURXWcI2muKJlgyFzhynCY4RBOsqCjoI1R5zREco0n2Vt09BQtYSizgKNHfUmUrQ5UOCh51BFcLmY7umhYqXKQomOop8bUnWNNQcIiBcYaC6xzMNOS8JQQfeqKBmmglB+97ok/lfk3ygaHSyZaCRTzRxQo6GzLfa2jWBPepw+UmT7SQEJyiyRkhBLMVOfcoMjcK0eZChfUNzFAUzCsEN5vP/X1uP/n/aoMX+K+nw/Hjr/9xOo7j7Pju61tLcgvJpTWXNbfN5jLpi6VfCOviTktKlFusQixdEKWmEBUKNaIpjZRSSOXSgzaaKLdabrm1/9nZ+/f+vd/vz/v9+Xy+zZ7PRorYoZqyLrCwQdEAixxVOEXNNnjX2nUSRlkqGmWowk8lxR50JPy9Bo6qJXaXwNvREBvnThPEPrewryLhcAnj5WE15Fqi8W7R1sAuEu86S4ENikItFN4xkv9Af4nXSnUVcLiA9xzesFpivRRVeFKtsMRaKBhuSbjOELnAUtlSQUpXgdfB4Z1oSbnFEetbQ0IrAe+Y+pqnDcEJFj6S8LDZzZHwY4e3XONNlARraomNEt2bkvGsosA3ioyHm+6jCMbI59wqt4eeara28IzEmyPgoRaUOEDhTVdEJhmCoTWfC0p8aNkCp0oYqih2iqGi4yXeMkOsn4LdLLnmKfh/YogjNsPebeFGR4m9BJHLzB61XQ3BtpISfS2FugsK9FAtLWX1dCRcrCnUp44CNzuCowUZmxSRgYaE6Za0W2u/E7CVXCiI/UOR8aAm1+OSyE3mOUcwyc1zBBeoX1kiKy0Zfxck1Gsyulti11i83QTBF5Kg3pDQThFMVHiPSlK+0cSedng/VaS8bOZbtsBcTcZAR8JP5KeqQ1OYKAi20njdNNRpgnsU//K+JnaXJaGTomr7aYIphoRn9aeShJWKEq9LcozSF7QleEfDI5LYm5bgVkFkRwVDBCVu0DDIkGupo8TZBq+/pMQURYErJQmPKGKjNDkWOLx7Jd5QizdUweIaKrlP7SwJDhZvONjLkOsBBX9UpGxnydhXkfBLQ8IxgojQbLFnJf81JytSljclYYyEFyx0kVBvKWOFJmONpshGAcsduQY5giVNCV51eOdJYo/pLhbvM0uDHSevNKRcrKZIqnCtJeEsO95RoqcgGK4ocZcho1tTYtcZvH41pNQ7vA0WrhIfOSraIIntIAi+NXWCErdbkvrWwjRLrt0NKUdL6KSOscTOdMSOUtBHwL6OLA0vNSdynaWQEnCpIvKaIrJJEbvHkmuNhn6OjM8VkSGSqn1uYJCGHnq9I3aLhNME3t6GjIkO7xrNFumpyTNX/NrwX7CrIRiqqWijI9JO4d1iieykyfiposQIQ8YjjsjlBh6oHWbwRjgYJQn2NgSnNycmJAk3NiXhx44Sxykihxm8ybUwT1OVKySc7vi3OXVkdBJ4AyXBeksDXG0IhgtYY0lY5ahCD0ehborIk5aUWRJviMA7Xt5kyRjonrXENkm8yYqgs8VzgrJmClK20uMM3jRJ0FiQICQF9hdETlLQWRIb5ki6WDfWRPobvO6a4GP5mcOrNzDFELtTkONLh9dXE8xypEg7z8A9jkhrQ6Fhjlg/QVktJXxt4WXzT/03Q8IaQWSqIuEvloQ2mqC9Jfi7wRul4RX3pSPlzpoVlmCtI2jvKHCFhjcM3sN6lqF6HxnKelLjXWbwrpR4xzuCrTUZx2qq9oAh8p6ixCUGr78g8oyjRAtB5CZFwi80VerVpI0h+IeBxa6Zg6kWvpDHaioYYuEsRbDC3eOmC2JvGYLeioxGknL2UATNJN6hmtj1DlpLvDVmocYbrGCVJKOrg4X6DgddLA203BKMFngdJJFtFd7vJLm6KEpc5yjQrkk7M80SGe34X24nSex1Ra5Omgb71JKyg8SrU3i/kARKwWpH0kOGhKkObyfd0ZGjvyXlAkVZ4xRbYJ2irFMkFY1SwyWxr2oo4zlNiV+7zmaweFpT4kR3kaDAFW6xpSqzJay05FtYR4HmZhc9UxKbbfF2V8RG1MBmSaE+kmC6JnaRXK9gsiXhJHl/U0qM0WTcbyhwkYIvFGwjSbjfwhiJt8ZSQU+Bd5+marPMOkVkD0muxYLIfEuhh60x/J92itguihJSEMySVPQnTewnEm+620rTQEMsOfo4/kP/0ARvWjitlpSX7GxBgcMEsd3EEeYWvdytd+Saawi6aCIj1CkGb6Aj9rwhx16Cf3vAwFy5pyLhVonXzy51FDpdEblbkdJbUcEPDEFzQ8qNmhzzLTmmKWKbFCXeEuRabp6rxbvAtLF442QjQ+wEA9eL1xSR7Q0JXzlSHjJ4exq89yR0laScJ/FW6z4a73pFMEfDiRZvuvijIt86RaSFOl01riV2mD1UEvxGk/Geg5aWwGki1zgKPG9J2U8PEg8qYvMsZeytiTRXBMslCU8JSlxi8EabjwUldlDNLfzTUmCgxWsjqWCOHavYAqsknKFIO0yQ61VL5AVFxk6WhEaCAkdJgt9aSkzXlKNX2jEa79waYuc7gq0N3GDJGCBhoiTXUEPsdknCUE1CK0fwsiaylSF2uiDyO4XX3pFhNd7R4itFGc0k/ElBZwWvq+GC6szVeEoS/MZ+qylwpKNKv9Z469UOjqCjwlusicyTxG6VpNxcQ8IncoR4RhLbR+NdpGGmJWOcIzJGUuKPGpQg8rrG21dOMqQssJQ4RxH5jaUqnZuQ0F4Q+cjxLwPtpZbIAk3QTJHQWBE5S1BokoVtDd6lhqr9UpHSUxMcIYl9pojsb8h4SBOsMQcqvOWC2E8EVehqiJ1hrrAEbQxeK0NGZ0Gkq+guSRgniM23bIHVkqwx4hiHd7smaOyglyIyQuM978j4VS08J/A2G1KeMBRo4fBaSNhKUEZfQewVQ/C1I+MgfbEleEzCUw7mKXI0M3hd1EESVji8x5uQ41nxs1q4RMJCCXs7Iq9acpxn22oSDnQ/sJTxsCbHIYZiLyhY05TY0ZLIOQrGaSJDDN4t8pVaIrsqqFdEegtizc1iTew5Q4ayBDMUsQMkXocaYkc0hZua412siZ1rSXlR460zRJ5SlHGe5j801RLMlJTxtaOM3Q1pvxJ45zUlWFD7rsAbpfEm1JHxG0eh8w2R7QQVzBUw28FhFp5QZzq8t2rx2joqulYTWSuJdTYfWwqMFMcovFmSyJPNyLhE4E10pHzYjOC3huArRa571ZsGajQpQx38SBP5pyZB6lMU3khDnp0MBV51BE9o2E+TY5Ml2E8S7C0o6w1xvCZjf0HkVEHCzFoyNmqC+9wdcqN+Tp7jSDheE9ws8Y5V0NJCn2bk2tqSY4okdrEhx1iDN8cSudwepWmAGXKcJXK65H9to8jYQRH7SBF01ESUJdd0TayVInaWhLkOjlXE5irKGOnI6GSWGCJa482zBI9rCr0jyTVcEuzriC1vcr6mwFGSiqy5zMwxBH/TJHwjSPhL8+01kaaSUuMFKTcLEvaUePcrSmwn8DZrgikWb7CGPxkSjhQwrRk57tctmxLsb9sZvL9LSlyuSLlWkqOjwduo8b6Uv1DkmudIeFF2dHCgxVtk8dpIvHpBxhEOdhKk7OLIUSdJ+cSRY57B+0DgGUUlNfpthTfGkauzxrvTsUUaCVhlKeteTXCoJDCa2NOKhOmC4G1H8JBd4OBZReSRGkqcb/CO1PyLJTLB4j1q8JYaIutEjSLX8YKM+a6phdMsdLFUoV5RTm9JSkuDN8WcIon0NZMNZWh1q8C7SJEwV5HxrmnnTrf3KoJBlmCYI2ilSLlfEvlE4011NNgjgthzEua0oKK7JLE7HZHlEl60BLMVFewg4EWNt0ThrVNEVkkiTwpKXSWJzdRENgvKGq4IhjsiezgSFtsfCUq8qki5S1LRQeYQQ4nemmCkImWMw3tFUoUBZk4NOeZYEp4XRKTGa6wJjrWNHBVJR4m3FCnbuD6aak2WsMTh3SZImGCIPKNgsDpVwnsa70K31lCFJZYcwwSMFcQulGTsZuEaSdBXkPGZhu0FsdUO73RHjq8MPGGIfaGIbVTk6iuI3GFgucHrIQkmWSJdBd7BBu+uOryWAhY7+Lki9rK5wtEQzWwvtbqGhIMFwWRJsElsY4m9IIg9L6lCX0VklaPAYkfkZEGDnOWowlBJjtMUkcGK4Lg6EtoZInMUBVYLgn0UsdmCyCz7gIGHFfk+k1QwTh5We7A9x+IdJ6CvIkEagms0hR50eH9UnTQJ+2oiKyVlLFUE+8gBGu8MQ3CppUHesnjTHN4QB/UGPhCTHLFPHMFrCqa73gqObUJGa03wgbhHkrCfpEpzNLE7JDS25FMKhlhKKWKfCgqstLCPu1zBXy0J2ztwjtixBu8UTRn9LVtkmCN2iyFhtME70JHRQ1KVZXqKI/KNIKYMCYs1GUMEKbM1bKOI9LDXC7zbHS+bt+1MTWS9odA9DtrYtpbImQJ2VHh/lisEwaHqUk1kjKTAKknkBEXkbkdMGwq0dnhzLJF3NJH3JVwrqOB4Sca2hti75nmJN0WzxS6UxDYoEpxpa4htVlRjkYE7DZGzJVU72uC9IyhQL4i8YfGWSYLLNcHXloyz7QhNifmKSE9JgfGmuyLhc403Xm9vqcp6gXe3xuuv8F6VJNxkyTHEkHG2g0aKXL0MsXc1bGfgas2//dCONXiNLCX+5mB7eZIl1kHh7ajwpikyzlUUWOVOsjSQlsS+M0R+pPje/dzBXRZGO0rMtgQrLLG9VSu9n6CMXS3BhwYmSoIBhsjNBmZbgusE9BCPCP5triU4VhNbJfE+swSP27aayE8tuTpYYjtrYjMVGZdp2NpS1s6aBnKSHDsbKuplKbHM4a0wMFd/5/DmGyKrJSUaW4IBrqUhx0vyfzTBBLPIUcnZdrAkNsKR0sWRspumSns6Ch0v/qqIbBYUWKvPU/CFoyrDJGwSNFhbA/MlzKqjrO80hRbpKx0Jewsi/STftwGSlKc1JZyAzx05dhLEdnfQvhZOqiHWWEAHC7+30FuRcZUgaO5gpaIK+xsiHRUsqaPElTV40xQZQ107Q9BZE1nryDVGU9ZSQ47bmhBpLcYpUt7S+xuK/FiT8qKjwXYw5ypS2iuCv7q1gtgjhuBuB8LCFY5cUuCNtsQOFcT+4Ih9JX+k8Ea6v0iCIRZOtCT0Et00JW5UeC85Cg0ScK0k411HcG1zKtre3SeITBRk7WfwDhEvaYLTHP9le0m8By0JDwn4TlLW/aJOvGHxdjYUes+ScZigCkYQdNdEOhkiezgShqkx8ueKjI8lDfK2oNiOFvrZH1hS+tk7NV7nOmLHicGWEgubkXKdwdtZknCLJXaCpkrjZBtLZFsDP9CdxWsSr05Sxl6CMmoFbCOgryX40uDtamB7SVmXW4Ihlgpmq+00tBKUUa83WbjLUNkzDmY7cow1JDygyPGlhgGKYKz4vcV7QBNbJIgM11TUqZaMdwTeSguH6rOaw1JRKzaaGyxVm2EJ/uCIrVWUcZUkcp2grMsEjK+DMwS59jQk3Kd6SEq1d0S6uVmO4Bc1lDXTUcHjluCXEq+1OlBDj1pi9zgiXxnKuE0SqTXwhqbETW6RggMEnGl/q49UT2iCzgJvRwVXS2K/d6+ZkyUl7jawSVLit46EwxVljDZwoSQ20sDBihztHfk2yA8NVZghiXwrYHQdfKAOtzsayjhY9bY0yE2CWEeJ9xfzO423xhL5syS2TFJofO2pboHob0nY4GiAgRrvGQEDa/FWSsoaaYl0syRsEt3kWoH3B01shCXhTUWe9w3Bt44SC9QCh3eShQctwbaK2ApLroGCMlZrYqvlY3qYhM0aXpFkPOuoqJ3Dm6fxXrGwVF9gCWZagjPqznfkuMKQ8DPTQRO8ZqG1hPGKEm9IgpGW4DZDgTNriTxvFiq+Lz+0cKfp4wj6OCK9JSnzNSn9LFU7UhKZZMnYwcJ8s8yRsECScK4j5UOB95HFO0CzhY4xJxuCix0lDlEUeMdS6EZBkTsUkZ4K74dugyTXS7aNgL8aqjDfkCE0ZbwkCXpaWCKhl8P7VD5jxykivSyxyZrYERbe168LYu9ZYh86IkscgVLE7tWPKmJv11CgoyJltMEbrohtVAQfO4ImltiHEroYEs7RxAarVpY8AwXMcMReFOTYWe5iiLRQxJ5Q8DtJ8LQhWOhIeFESPGsILhbNDRljNbHzNRlTFbk2S3L0NOS6V1KFJYKUbSTcIIhM0wQ/s2TM0SRMNcQmSap3jCH4yhJZKSkwyRHpYYgsFeQ4U7xoCB7VVOExhXepo9ABBsYbvGWKXPME3lyH95YioZ0gssQRWWbI+FaSMkXijZXwgiTlYdPdkNLaETxlyDVIwqeaEus0aTcYcg0RVOkpR3CSJqIddK+90JCxzsDVloyrFd5ZAr4TBKfaWa6boEA7C7s6EpYaeFPjveooY72mjIccLHJ9HUwVlDhKkmutJDJBwnp1rvulJZggKDRfbXAkvC/4l3ozQOG9a8lxjx0i7nV4jSXc7vhe3OwIxjgSHjdEhhsif9YkPGlus3iLFDnWOFhtCZbJg0UbQcIaR67JjthoCyMEZRwhiXWyxO5QxI6w5NhT4U1WsJvDO60J34fW9hwzwlKij6ZAW9ne4L0s8C6XeBMEkd/LQy1VucBRot6QMlbivaBhoBgjqGiCJNhsqVp/S2SsG6DIONCR0dXhvWbJ+MRRZJkkuEjgDXJjFQW6SSL7GXK8Z2CZg7cVsbWGoKmEpzQ5elpiy8Ryg7dMkLLUEauzeO86CuwlSOlgYLojZWeJ9xM3S1PWfEfKl5ISLQ0MEKR8YOB2QfCxJBjrKPCN4f9MkaSsqoVXJBmP7EpFZ9UQfOoOFwSzBN4MQ8LsGrymlipcJQhmy0GaQjPqCHaXRwuCZwRbqK2Fg9wlClZqYicrIgMdZfxTQ0c7TBIbrChxmuzoKG8XRaSrIhhiyNFJkrC7oIAWMEOQa5aBekPCRknCo4IKPrYkvCDI8aYmY7WFtprgekcJZ3oLIqssCSMtFbQTJKwXYy3BY5oCh2iKPCpJOE+zRdpYgi6O2KmOAgvVCYaU4ySRek1sgyFhJ403QFHiVEmJHwtybO1gs8Hr5+BETQX3War0qZngYGgtVZtoqd6vFSk/UwdZElYqyjrF4HXUeFspIi9IGKf4j92pKGAdCYMVsbcV3kRF0N+R8LUd5PCsIGWoxDtBkCI0nKofdJQxT+LtZflvuc8Q3CjwWkq8KwUpHzkK/NmSsclCL0nseQdj5FRH5CNHSgtLiW80Of5HU9Hhlsga9bnBq3fEVltKfO5IaSTmGjjc4J0otcP7QsJUSQM8pEj5/wCuUuC2DWz8AAAAAElFTkSuQmCC\\\");}.ace-ambiance .ace_indent-guide {background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQUFD4z6Crq/sfAAuYAuYl+7lfAAAAAElFTkSuQmCC\\\") right repeat-y;}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-chaos.js",
    "content": "ace.define(\"ace/theme/chaos\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-chaos\",t.cssText=\".ace-chaos .ace_gutter {background: #141414;color: #595959;border-right: 1px solid #282828;}.ace-chaos .ace_gutter-cell.ace_warning {background-image: none;background: #FC0;border-left: none;padding-left: 0;color: #000;}.ace-chaos .ace_gutter-cell.ace_error {background-position: -6px center;background-image: none;background: #F10;border-left: none;padding-left: 0;color: #000;}.ace-chaos .ace_print-margin {border-left: 1px solid #555;right: 0;background: #1D1D1D;}.ace-chaos {background-color: #161616;color: #E6E1DC;}.ace-chaos .ace_cursor {border-left: 2px solid #FFFFFF;}.ace-chaos .ace_cursor.ace_overwrite {border-left: 0px;border-bottom: 1px solid #FFFFFF;}.ace-chaos .ace_marker-layer .ace_selection {background: #494836;}.ace-chaos .ace_marker-layer .ace_step {background: rgb(198, 219, 174);}.ace-chaos .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #FCE94F;}.ace-chaos .ace_marker-layer .ace_active-line {background: #333;}.ace-chaos .ace_gutter-active-line {background-color: #222;}.ace-chaos .ace_invisible {color: #404040;}.ace-chaos .ace_keyword {color:#00698F;}.ace-chaos .ace_keyword.ace_operator {color:#FF308F;}.ace-chaos .ace_constant {color:#1EDAFB;}.ace-chaos .ace_constant.ace_language {color:#FDC251;}.ace-chaos .ace_constant.ace_library {color:#8DFF0A;}.ace-chaos .ace_constant.ace_numeric {color:#58C554;}.ace-chaos .ace_invalid {color:#FFFFFF;background-color:#990000;}.ace-chaos .ace_invalid.ace_deprecated {color:#FFFFFF;background-color:#990000;}.ace-chaos .ace_support {color: #999;}.ace-chaos .ace_support.ace_function {color:#00AEEF;}.ace-chaos .ace_function {color:#00AEEF;}.ace-chaos .ace_string {color:#58C554;}.ace-chaos .ace_comment {color:#555;font-style:italic;padding-bottom: 0px;}.ace-chaos .ace_variable {color:#997744;}.ace-chaos .ace_meta.ace_tag {color:#BE53E6;}.ace-chaos .ace_entity.ace_other.ace_attribute-name {color:#FFFF89;}.ace-chaos .ace_markup.ace_underline {text-decoration: underline;}.ace-chaos .ace_fold-widget {text-align: center;}.ace-chaos .ace_fold-widget:hover {color: #777;}.ace-chaos .ace_fold-widget.ace_start,.ace-chaos .ace_fold-widget.ace_end,.ace-chaos .ace_fold-widget.ace_closed{background: none;border: none;box-shadow: none;}.ace-chaos .ace_fold-widget.ace_start:after {content: '\\u25be'}.ace-chaos .ace_fold-widget.ace_end:after {content: '\\u25b4'}.ace-chaos .ace_fold-widget.ace_closed:after {content: '\\u2023'}.ace-chaos .ace_indent-guide {border-right:1px dotted #333;margin-right:-1px;}.ace-chaos .ace_fold { background: #222; border-radius: 3px; color: #7AF; border: none; }.ace-chaos .ace_fold:hover {background: #CCC; color: #000;}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-chrome.js",
    "content": "ace.define(\"ace/theme/chrome\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-chrome\",t.cssText='.ace-chrome .ace_gutter {background: #ebebeb;color: #333;overflow : hidden;}.ace-chrome .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-chrome {background-color: #FFFFFF;color: black;}.ace-chrome .ace_cursor {color: black;}.ace-chrome .ace_invisible {color: rgb(191, 191, 191);}.ace-chrome .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-chrome .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-chrome .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-chrome .ace_invalid {background-color: rgb(153, 0, 0);color: white;}.ace-chrome .ace_fold {}.ace-chrome .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-chrome .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-chrome .ace_support.ace_type,.ace-chrome .ace_support.ace_class.ace-chrome .ace_support.ace_other {color: rgb(109, 121, 222);}.ace-chrome .ace_variable.ace_parameter {font-style:italic;color:#FD971F;}.ace-chrome .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-chrome .ace_comment {color: #236e24;}.ace-chrome .ace_comment.ace_doc {color: #236e24;}.ace-chrome .ace_comment.ace_doc.ace_tag {color: #236e24;}.ace-chrome .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-chrome .ace_variable {color: rgb(49, 132, 149);}.ace-chrome .ace_xml-pe {color: rgb(104, 104, 91);}.ace-chrome .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-chrome .ace_heading {color: rgb(12, 7, 255);}.ace-chrome .ace_list {color:rgb(185, 6, 144);}.ace-chrome .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-chrome .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-chrome .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-chrome .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-chrome .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-chrome .ace_gutter-active-line {background-color : #dcdcdc;}.ace-chrome .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-chrome .ace_storage,.ace-chrome .ace_keyword,.ace-chrome .ace_meta.ace_tag {color: rgb(147, 15, 128);}.ace-chrome .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-chrome .ace_string {color: #1A1AA6;}.ace-chrome .ace_entity.ace_other.ace_attribute-name {color: #994409;}.ace-chrome .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;}';var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-clouds.js",
    "content": "ace.define(\"ace/theme/clouds\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-clouds\",t.cssText='.ace-clouds .ace_gutter {background: #ebebeb;color: #333}.ace-clouds .ace_print-margin {width: 1px;background: #e8e8e8}.ace-clouds {background-color: #FFFFFF;color: #000000}.ace-clouds .ace_cursor {color: #000000}.ace-clouds .ace_marker-layer .ace_selection {background: #BDD5FC}.ace-clouds.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #FFFFFF;}.ace-clouds .ace_marker-layer .ace_step {background: rgb(255, 255, 0)}.ace-clouds .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #BFBFBF}.ace-clouds .ace_marker-layer .ace_active-line {background: #FFFBD1}.ace-clouds .ace_gutter-active-line {background-color : #dcdcdc}.ace-clouds .ace_marker-layer .ace_selected-word {border: 1px solid #BDD5FC}.ace-clouds .ace_invisible {color: #BFBFBF}.ace-clouds .ace_keyword,.ace-clouds .ace_meta,.ace-clouds .ace_support.ace_constant.ace_property-value {color: #AF956F}.ace-clouds .ace_keyword.ace_operator {color: #484848}.ace-clouds .ace_keyword.ace_other.ace_unit {color: #96DC5F}.ace-clouds .ace_constant.ace_language {color: #39946A}.ace-clouds .ace_constant.ace_numeric {color: #46A609}.ace-clouds .ace_constant.ace_character.ace_entity {color: #BF78CC}.ace-clouds .ace_invalid {background-color: #FF002A}.ace-clouds .ace_fold {background-color: #AF956F;border-color: #000000}.ace-clouds .ace_storage,.ace-clouds .ace_support.ace_class,.ace-clouds .ace_support.ace_function,.ace-clouds .ace_support.ace_other,.ace-clouds .ace_support.ace_type {color: #C52727}.ace-clouds .ace_string {color: #5D90CD}.ace-clouds .ace_comment {color: #BCC8BA}.ace-clouds .ace_entity.ace_name.ace_tag,.ace-clouds .ace_entity.ace_other.ace_attribute-name {color: #606060}.ace-clouds .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y}';var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-clouds_midnight.js",
    "content": "ace.define(\"ace/theme/clouds_midnight\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-clouds-midnight\",t.cssText=\".ace-clouds-midnight .ace_gutter {background: #232323;color: #929292}.ace-clouds-midnight .ace_print-margin {width: 1px;background: #232323}.ace-clouds-midnight {background-color: #191919;color: #929292}.ace-clouds-midnight .ace_cursor {color: #7DA5DC}.ace-clouds-midnight .ace_marker-layer .ace_selection {background: #000000}.ace-clouds-midnight.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #191919;}.ace-clouds-midnight .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-clouds-midnight .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #BFBFBF}.ace-clouds-midnight .ace_marker-layer .ace_active-line {background: rgba(215, 215, 215, 0.031)}.ace-clouds-midnight .ace_gutter-active-line {background-color: rgba(215, 215, 215, 0.031)}.ace-clouds-midnight .ace_marker-layer .ace_selected-word {border: 1px solid #000000}.ace-clouds-midnight .ace_invisible {color: #666}.ace-clouds-midnight .ace_keyword,.ace-clouds-midnight .ace_meta,.ace-clouds-midnight .ace_support.ace_constant.ace_property-value {color: #927C5D}.ace-clouds-midnight .ace_keyword.ace_operator {color: #4B4B4B}.ace-clouds-midnight .ace_keyword.ace_other.ace_unit {color: #366F1A}.ace-clouds-midnight .ace_constant.ace_language {color: #39946A}.ace-clouds-midnight .ace_constant.ace_numeric {color: #46A609}.ace-clouds-midnight .ace_constant.ace_character.ace_entity {color: #A165AC}.ace-clouds-midnight .ace_invalid {color: #FFFFFF;background-color: #E92E2E}.ace-clouds-midnight .ace_fold {background-color: #927C5D;border-color: #929292}.ace-clouds-midnight .ace_storage,.ace-clouds-midnight .ace_support.ace_class,.ace-clouds-midnight .ace_support.ace_function,.ace-clouds-midnight .ace_support.ace_other,.ace-clouds-midnight .ace_support.ace_type {color: #E92E2E}.ace-clouds-midnight .ace_string {color: #5D90CD}.ace-clouds-midnight .ace_comment {color: #3C403B}.ace-clouds-midnight .ace_entity.ace_name.ace_tag,.ace-clouds-midnight .ace_entity.ace_other.ace_attribute-name {color: #606060}.ace-clouds-midnight .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHB3d/8PAAOIAdULw8qMAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-cobalt.js",
    "content": "ace.define(\"ace/theme/cobalt\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-cobalt\",t.cssText=\".ace-cobalt .ace_gutter {background: #011e3a;color: rgb(128,145,160)}.ace-cobalt .ace_print-margin {width: 1px;background: #555555}.ace-cobalt {background-color: #002240;color: #FFFFFF}.ace-cobalt .ace_cursor {color: #FFFFFF}.ace-cobalt .ace_marker-layer .ace_selection {background: rgba(179, 101, 57, 0.75)}.ace-cobalt.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #002240;}.ace-cobalt .ace_marker-layer .ace_step {background: rgb(127, 111, 19)}.ace-cobalt .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 255, 255, 0.15)}.ace-cobalt .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.35)}.ace-cobalt .ace_gutter-active-line {background-color: rgba(0, 0, 0, 0.35)}.ace-cobalt .ace_marker-layer .ace_selected-word {border: 1px solid rgba(179, 101, 57, 0.75)}.ace-cobalt .ace_invisible {color: rgba(255, 255, 255, 0.15)}.ace-cobalt .ace_keyword,.ace-cobalt .ace_meta {color: #FF9D00}.ace-cobalt .ace_constant,.ace-cobalt .ace_constant.ace_character,.ace-cobalt .ace_constant.ace_character.ace_escape,.ace-cobalt .ace_constant.ace_other {color: #FF628C}.ace-cobalt .ace_invalid {color: #F8F8F8;background-color: #800F00}.ace-cobalt .ace_support {color: #80FFBB}.ace-cobalt .ace_support.ace_constant {color: #EB939A}.ace-cobalt .ace_fold {background-color: #FF9D00;border-color: #FFFFFF}.ace-cobalt .ace_support.ace_function {color: #FFB054}.ace-cobalt .ace_storage {color: #FFEE80}.ace-cobalt .ace_entity {color: #FFDD00}.ace-cobalt .ace_string {color: #3AD900}.ace-cobalt .ace_string.ace_regexp {color: #80FFC2}.ace-cobalt .ace_comment {font-style: italic;color: #0088FF}.ace-cobalt .ace_heading,.ace-cobalt .ace_markup.ace_heading {color: #C8E4FD;background-color: #001221}.ace-cobalt .ace_list,.ace-cobalt .ace_markup.ace_list {background-color: #130D26}.ace-cobalt .ace_variable {color: #CCCCCC}.ace-cobalt .ace_variable.ace_language {color: #FF80E1}.ace-cobalt .ace_meta.ace_tag {color: #9EFFFF}.ace-cobalt .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHCLSvkPAAP3AgSDTRd4AAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-crimson_editor.js",
    "content": "ace.define(\"ace/theme/crimson_editor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssText='.ace-crimson-editor .ace_gutter {background: #ebebeb;color: #333;overflow : hidden;}.ace-crimson-editor .ace_gutter-layer {width: 100%;text-align: right;}.ace-crimson-editor .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-crimson-editor {background-color: #FFFFFF;color: rgb(64, 64, 64);}.ace-crimson-editor .ace_cursor {color: black;}.ace-crimson-editor .ace_invisible {color: rgb(191, 191, 191);}.ace-crimson-editor .ace_identifier {color: black;}.ace-crimson-editor .ace_keyword {color: blue;}.ace-crimson-editor .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-crimson-editor .ace_constant.ace_language {color: rgb(255, 156, 0);}.ace-crimson-editor .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-crimson-editor .ace_invalid {text-decoration: line-through;color: rgb(224, 0, 0);}.ace-crimson-editor .ace_fold {}.ace-crimson-editor .ace_support.ace_function {color: rgb(192, 0, 0);}.ace-crimson-editor .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-crimson-editor .ace_support.ace_type,.ace-crimson-editor .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-crimson-editor .ace_keyword.ace_operator {color: rgb(49, 132, 149);}.ace-crimson-editor .ace_string {color: rgb(128, 0, 128);}.ace-crimson-editor .ace_comment {color: rgb(76, 136, 107);}.ace-crimson-editor .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-crimson-editor .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-crimson-editor .ace_constant.ace_numeric {color: rgb(0, 0, 64);}.ace-crimson-editor .ace_variable {color: rgb(0, 64, 128);}.ace-crimson-editor .ace_xml-pe {color: rgb(104, 104, 91);}.ace-crimson-editor .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-crimson-editor .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-crimson-editor .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-crimson-editor .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-crimson-editor .ace_marker-layer .ace_active-line {background: rgb(232, 242, 254);}.ace-crimson-editor .ace_gutter-active-line {background-color : #dcdcdc;}.ace-crimson-editor .ace_meta.ace_tag {color:rgb(28, 2, 255);}.ace-crimson-editor .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-crimson-editor .ace_string.ace_regex {color: rgb(192, 0, 192);}.ace-crimson-editor .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;}',t.cssClass=\"ace-crimson-editor\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-dawn.js",
    "content": "ace.define(\"ace/theme/dawn\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-dawn\",t.cssText=\".ace-dawn .ace_gutter {background: #ebebeb;color: #333}.ace-dawn .ace_print-margin {width: 1px;background: #e8e8e8}.ace-dawn {background-color: #F9F9F9;color: #080808}.ace-dawn .ace_cursor {color: #000000}.ace-dawn .ace_marker-layer .ace_selection {background: rgba(39, 95, 255, 0.30)}.ace-dawn.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #F9F9F9;}.ace-dawn .ace_marker-layer .ace_step {background: rgb(255, 255, 0)}.ace-dawn .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(75, 75, 126, 0.50)}.ace-dawn .ace_marker-layer .ace_active-line {background: rgba(36, 99, 180, 0.12)}.ace-dawn .ace_gutter-active-line {background-color : #dcdcdc}.ace-dawn .ace_marker-layer .ace_selected-word {border: 1px solid rgba(39, 95, 255, 0.30)}.ace-dawn .ace_invisible {color: rgba(75, 75, 126, 0.50)}.ace-dawn .ace_keyword,.ace-dawn .ace_meta {color: #794938}.ace-dawn .ace_constant,.ace-dawn .ace_constant.ace_character,.ace-dawn .ace_constant.ace_character.ace_escape,.ace-dawn .ace_constant.ace_other {color: #811F24}.ace-dawn .ace_invalid.ace_illegal {text-decoration: underline;font-style: italic;color: #F8F8F8;background-color: #B52A1D}.ace-dawn .ace_invalid.ace_deprecated {text-decoration: underline;font-style: italic;color: #B52A1D}.ace-dawn .ace_support {color: #691C97}.ace-dawn .ace_support.ace_constant {color: #B4371F}.ace-dawn .ace_fold {background-color: #794938;border-color: #080808}.ace-dawn .ace_list,.ace-dawn .ace_markup.ace_list,.ace-dawn .ace_support.ace_function {color: #693A17}.ace-dawn .ace_storage {font-style: italic;color: #A71D5D}.ace-dawn .ace_string {color: #0B6125}.ace-dawn .ace_string.ace_regexp {color: #CF5628}.ace-dawn .ace_comment {font-style: italic;color: #5A525F}.ace-dawn .ace_heading,.ace-dawn .ace_markup.ace_heading {color: #19356D}.ace-dawn .ace_variable {color: #234A97}.ace-dawn .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYLh/5+x/AAizA4hxNNsZAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-dreamweaver.js",
    "content": "ace.define(\"ace/theme/dreamweaver\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-dreamweaver\",t.cssText='.ace-dreamweaver .ace_gutter {background: #e8e8e8;color: #333;}.ace-dreamweaver .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-dreamweaver {background-color: #FFFFFF;color: black;}.ace-dreamweaver .ace_fold {background-color: #757AD8;}.ace-dreamweaver .ace_cursor {color: black;}.ace-dreamweaver .ace_invisible {color: rgb(191, 191, 191);}.ace-dreamweaver .ace_storage,.ace-dreamweaver .ace_keyword {color: blue;}.ace-dreamweaver .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-dreamweaver .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-dreamweaver .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-dreamweaver .ace_invalid {background-color: rgb(153, 0, 0);color: white;}.ace-dreamweaver .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-dreamweaver .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-dreamweaver .ace_support.ace_type,.ace-dreamweaver .ace_support.ace_class {color: #009;}.ace-dreamweaver .ace_support.ace_php_tag {color: #f00;}.ace-dreamweaver .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-dreamweaver .ace_string {color: #00F;}.ace-dreamweaver .ace_comment {color: rgb(76, 136, 107);}.ace-dreamweaver .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-dreamweaver .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-dreamweaver .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-dreamweaver .ace_variable {color: #06F}.ace-dreamweaver .ace_xml-pe {color: rgb(104, 104, 91);}.ace-dreamweaver .ace_entity.ace_name.ace_function {color: #00F;}.ace-dreamweaver .ace_heading {color: rgb(12, 7, 255);}.ace-dreamweaver .ace_list {color:rgb(185, 6, 144);}.ace-dreamweaver .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-dreamweaver .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-dreamweaver .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-dreamweaver .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-dreamweaver .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-dreamweaver .ace_gutter-active-line {background-color : #DCDCDC;}.ace-dreamweaver .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-dreamweaver .ace_meta.ace_tag {color:#009;}.ace-dreamweaver .ace_meta.ace_tag.ace_anchor {color:#060;}.ace-dreamweaver .ace_meta.ace_tag.ace_form {color:#F90;}.ace-dreamweaver .ace_meta.ace_tag.ace_image {color:#909;}.ace-dreamweaver .ace_meta.ace_tag.ace_script {color:#900;}.ace-dreamweaver .ace_meta.ace_tag.ace_style {color:#909;}.ace-dreamweaver .ace_meta.ace_tag.ace_table {color:#099;}.ace-dreamweaver .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-dreamweaver .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;}';var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-eclipse.js",
    "content": "ace.define(\"ace/theme/eclipse\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";t.isDark=!1,t.cssText='.ace-eclipse .ace_gutter {background: #ebebeb;border-right: 1px solid rgb(159, 159, 159);color: rgb(136, 136, 136);}.ace-eclipse .ace_print-margin {width: 1px;background: #ebebeb;}.ace-eclipse {background-color: #FFFFFF;color: black;}.ace-eclipse .ace_fold {background-color: rgb(60, 76, 114);}.ace-eclipse .ace_cursor {color: black;}.ace-eclipse .ace_storage,.ace-eclipse .ace_keyword,.ace-eclipse .ace_variable {color: rgb(127, 0, 85);}.ace-eclipse .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-eclipse .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-eclipse .ace_function {color: rgb(60, 76, 114);}.ace-eclipse .ace_string {color: rgb(42, 0, 255);}.ace-eclipse .ace_comment {color: rgb(113, 150, 130);}.ace-eclipse .ace_comment.ace_doc {color: rgb(63, 95, 191);}.ace-eclipse .ace_comment.ace_doc.ace_tag {color: rgb(127, 159, 191);}.ace-eclipse .ace_constant.ace_numeric {color: darkblue;}.ace-eclipse .ace_tag {color: rgb(25, 118, 116);}.ace-eclipse .ace_type {color: rgb(127, 0, 127);}.ace-eclipse .ace_xml-pe {color: rgb(104, 104, 91);}.ace-eclipse .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-eclipse .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-eclipse .ace_meta.ace_tag {color:rgb(25, 118, 116);}.ace-eclipse .ace_invisible {color: #ddd;}.ace-eclipse .ace_entity.ace_other.ace_attribute-name {color:rgb(127, 0, 127);}.ace-eclipse .ace_marker-layer .ace_step {background: rgb(255, 255, 0);}.ace-eclipse .ace_active-line {background: rgb(232, 242, 254);}.ace-eclipse .ace_gutter-active-line {background-color : #DADADA;}.ace-eclipse .ace_marker-layer .ace_selected-word {border: 1px solid rgb(181, 213, 255);}.ace-eclipse .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;}',t.cssClass=\"ace-eclipse\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-github.js",
    "content": "ace.define(\"ace/theme/github\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-github\",t.cssText='.ace-github .ace_gutter {background: #e8e8e8;color: #AAA;}.ace-github  {background: #fff;color: #000;}.ace-github .ace_keyword {font-weight: bold;}.ace-github .ace_string {color: #D14;}.ace-github .ace_variable.ace_class {color: teal;}.ace-github .ace_constant.ace_numeric {color: #099;}.ace-github .ace_constant.ace_buildin {color: #0086B3;}.ace-github .ace_support.ace_function {color: #0086B3;}.ace-github .ace_comment {color: #998;font-style: italic;}.ace-github .ace_variable.ace_language  {color: #0086B3;}.ace-github .ace_paren {font-weight: bold;}.ace-github .ace_boolean {font-weight: bold;}.ace-github .ace_string.ace_regexp {color: #009926;font-weight: normal;}.ace-github .ace_variable.ace_instance {color: teal;}.ace-github .ace_constant.ace_language {font-weight: bold;}.ace-github .ace_cursor {color: black;}.ace-github.ace_focus .ace_marker-layer .ace_active-line {background: rgb(255, 255, 204);}.ace-github .ace_marker-layer .ace_active-line {background: rgb(245, 245, 245);}.ace-github .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-github.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-github.ace_nobold .ace_line > span {font-weight: normal !important;}.ace-github .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-github .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-github .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-github .ace_gutter-active-line {background-color : rgba(0, 0, 0, 0.07);}.ace-github .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-github .ace_invisible {color: #BFBFBF}.ace-github .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-github .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;}';var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-idle_fingers.js",
    "content": "ace.define(\"ace/theme/idle_fingers\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-idle-fingers\",t.cssText=\".ace-idle-fingers .ace_gutter {background: #3b3b3b;color: rgb(153,153,153)}.ace-idle-fingers .ace_print-margin {width: 1px;background: #3b3b3b}.ace-idle-fingers {background-color: #323232;color: #FFFFFF}.ace-idle-fingers .ace_cursor {color: #91FF00}.ace-idle-fingers .ace_marker-layer .ace_selection {background: rgba(90, 100, 126, 0.88)}.ace-idle-fingers.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #323232;}.ace-idle-fingers .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-idle-fingers .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404040}.ace-idle-fingers .ace_marker-layer .ace_active-line {background: #353637}.ace-idle-fingers .ace_gutter-active-line {background-color: #353637}.ace-idle-fingers .ace_marker-layer .ace_selected-word {border: 1px solid rgba(90, 100, 126, 0.88)}.ace-idle-fingers .ace_invisible {color: #404040}.ace-idle-fingers .ace_keyword,.ace-idle-fingers .ace_meta {color: #CC7833}.ace-idle-fingers .ace_constant,.ace-idle-fingers .ace_constant.ace_character,.ace-idle-fingers .ace_constant.ace_character.ace_escape,.ace-idle-fingers .ace_constant.ace_other,.ace-idle-fingers .ace_support.ace_constant {color: #6C99BB}.ace-idle-fingers .ace_invalid {color: #FFFFFF;background-color: #FF0000}.ace-idle-fingers .ace_fold {background-color: #CC7833;border-color: #FFFFFF}.ace-idle-fingers .ace_support.ace_function {color: #B83426}.ace-idle-fingers .ace_variable.ace_parameter {font-style: italic}.ace-idle-fingers .ace_string {color: #A5C261}.ace-idle-fingers .ace_string.ace_regexp {color: #CCCC33}.ace-idle-fingers .ace_comment {font-style: italic;color: #BC9458}.ace-idle-fingers .ace_meta.ace_tag {color: #FFE5BB}.ace-idle-fingers .ace_entity.ace_name {color: #FFC66D}.ace-idle-fingers .ace_collab.ace_user1 {color: #323232;background-color: #FFF980}.ace-idle-fingers .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMwMjLyZYiPj/8PAAreAwAI1+g0AAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-iplastic.js",
    "content": "ace.define(\"ace/theme/iplastic\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-iplastic\",t.cssText=\".ace-iplastic .ace_gutter {background: #dddddd;color: #666666}.ace-iplastic .ace_print-margin {width: 1px;background: #bbbbbb}.ace-iplastic {background-color: #eeeeee;color: #333333}.ace-iplastic .ace_cursor {color: #333}.ace-iplastic .ace_marker-layer .ace_selection {background: #BAD6FD;}.ace-iplastic.ace_multiselect .ace_selection.ace_start {border-radius: 4px}.ace-iplastic .ace_marker-layer .ace_step {background: #444444}.ace-iplastic .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #49483E;background: #FFF799}.ace-iplastic .ace_marker-layer .ace_active-line {background: #e5e5e5}.ace-iplastic .ace_gutter-active-line {background-color: #eeeeee}.ace-iplastic .ace_marker-layer .ace_selected-word {border: 1px solid #555555;border-radius:4px}.ace-iplastic .ace_invisible {color: #999999}.ace-iplastic .ace_entity.ace_name.ace_tag,.ace-iplastic .ace_keyword,.ace-iplastic .ace_meta.ace_tag,.ace-iplastic .ace_storage {color: #0000FF}.ace-iplastic .ace_punctuation,.ace-iplastic .ace_punctuation.ace_tag {color: #000}.ace-iplastic .ace_constant {color: #333333;font-weight: 700}.ace-iplastic .ace_constant.ace_character,.ace-iplastic .ace_constant.ace_language,.ace-iplastic .ace_constant.ace_numeric,.ace-iplastic .ace_constant.ace_other {color: #0066FF;font-weight: 700}.ace-iplastic .ace_constant.ace_numeric{font-weight: 100}.ace-iplastic .ace_invalid {color: #F8F8F0;background-color: #F92672}.ace-iplastic .ace_invalid.ace_deprecated {color: #F8F8F0;background-color: #AE81FF}.ace-iplastic .ace_support.ace_constant,.ace-iplastic .ace_support.ace_function {color: #333333;font-weight: 700}.ace-iplastic .ace_fold {background-color: #464646;border-color: #F8F8F2}.ace-iplastic .ace_storage.ace_type,.ace-iplastic .ace_support.ace_class,.ace-iplastic .ace_support.ace_type {color: #3333fc;font-weight: 700}.ace-iplastic .ace_entity.ace_name.ace_function,.ace-iplastic .ace_entity.ace_other,.ace-iplastic .ace_entity.ace_other.ace_attribute-name,.ace-iplastic .ace_variable {color: #3366cc;font-style: italic}.ace-iplastic .ace_variable.ace_parameter {font-style: italic;color: #2469E0}.ace-iplastic .ace_string {color: #a55f03}.ace-iplastic .ace_comment {color: #777777;font-style: italic}.ace-iplastic .ace_fold-widget {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==);}.ace-iplastic .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAABlJREFUeNpi+P//PwMzMzPzfwAAAAD//wMAGRsECSML/RIAAAAASUVORK5CYII=) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-katzenmilch.js",
    "content": "ace.define(\"ace/theme/katzenmilch\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-katzenmilch\",t.cssText=\".ace-katzenmilch .ace_gutter,.ace-katzenmilch .ace_gutter {background: #e8e8e8;color: #333}.ace-katzenmilch .ace_print-margin {width: 1px;background: #e8e8e8}.ace-katzenmilch {background-color: #f3f2f3;color: rgba(15, 0, 9, 1.0)}.ace-katzenmilch .ace_cursor {border-left: 2px solid #100011}.ace-katzenmilch .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #100011}.ace-katzenmilch .ace_marker-layer .ace_selection {background: rgba(100, 5, 208, 0.27)}.ace-katzenmilch.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #f3f2f3;}.ace-katzenmilch .ace_marker-layer .ace_step {background: rgb(198, 219, 174)}.ace-katzenmilch .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(0, 0, 0, 0.33);}.ace-katzenmilch .ace_marker-layer .ace_active-line {background: rgb(232, 242, 254)}.ace-katzenmilch .ace_gutter-active-line {background-color: rgb(232, 242, 254)}.ace-katzenmilch .ace_marker-layer .ace_selected-word {border: 1px solid rgba(100, 5, 208, 0.27)}.ace-katzenmilch .ace_invisible {color: #BFBFBF}.ace-katzenmilch .ace_fold {background-color: rgba(2, 95, 73, 0.97);border-color: rgba(15, 0, 9, 1.0)}.ace-katzenmilch .ace_keyword {color: #674Aa8;rbackground-color: rgba(163, 170, 216, 0.055)}.ace-katzenmilch .ace_constant.ace_language {color: #7D7e52;rbackground-color: rgba(189, 190, 130, 0.059)}.ace-katzenmilch .ace_constant.ace_numeric {color: rgba(79, 130, 123, 0.93);rbackground-color: rgba(119, 194, 187, 0.059)}.ace-katzenmilch .ace_constant.ace_character,.ace-katzenmilch .ace_constant.ace_other {color: rgba(2, 95, 105, 1.0);rbackground-color: rgba(127, 34, 153, 0.063)}.ace-katzenmilch .ace_support.ace_function {color: #9D7e62;rbackground-color: rgba(189, 190, 130, 0.039)}.ace-katzenmilch .ace_support.ace_class {color: rgba(239, 106, 167, 1.0);rbackground-color: rgba(239, 106, 167, 0.063)}.ace-katzenmilch .ace_storage {color: rgba(123, 92, 191, 1.0);rbackground-color: rgba(139, 93, 223, 0.051)}.ace-katzenmilch .ace_invalid {color: #DFDFD5;rbackground-color: #CC1B27}.ace-katzenmilch .ace_string {color: #5a5f9b;rbackground-color: rgba(170, 175, 219, 0.035)}.ace-katzenmilch .ace_comment {font-style: italic;color: rgba(64, 79, 80, 0.67);rbackground-color: rgba(95, 15, 255, 0.0078)}.ace-katzenmilch .ace_entity.ace_name.ace_function,.ace-katzenmilch .ace_variable {color: rgba(2, 95, 73, 0.97);rbackground-color: rgba(34, 255, 73, 0.12)}.ace-katzenmilch .ace_variable.ace_language {color: #316fcf;rbackground-color: rgba(58, 175, 255, 0.039)}.ace-katzenmilch .ace_variable.ace_parameter {font-style: italic;color: rgba(51, 150, 159, 0.87);rbackground-color: rgba(5, 214, 249, 0.043)}.ace-katzenmilch .ace_entity.ace_other.ace_attribute-name {color: rgba(73, 70, 194, 0.93);rbackground-color: rgba(73, 134, 194, 0.035)}.ace-katzenmilch .ace_entity.ace_name.ace_tag {color: #3976a2;rbackground-color: rgba(73, 166, 210, 0.039)}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-kr_theme.js",
    "content": "ace.define(\"ace/theme/kr_theme\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-kr-theme\",t.cssText=\".ace-kr-theme .ace_gutter {background: #1c1917;color: #FCFFE0}.ace-kr-theme .ace_print-margin {width: 1px;background: #1c1917}.ace-kr-theme {background-color: #0B0A09;color: #FCFFE0}.ace-kr-theme .ace_cursor {color: #FF9900}.ace-kr-theme .ace_marker-layer .ace_selection {background: rgba(170, 0, 255, 0.45)}.ace-kr-theme.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #0B0A09;}.ace-kr-theme .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-kr-theme .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 177, 111, 0.32)}.ace-kr-theme .ace_marker-layer .ace_active-line {background: #38403D}.ace-kr-theme .ace_gutter-active-line {background-color : #38403D}.ace-kr-theme .ace_marker-layer .ace_selected-word {border: 1px solid rgba(170, 0, 255, 0.45)}.ace-kr-theme .ace_invisible {color: rgba(255, 177, 111, 0.32)}.ace-kr-theme .ace_keyword,.ace-kr-theme .ace_meta {color: #949C8B}.ace-kr-theme .ace_constant,.ace-kr-theme .ace_constant.ace_character,.ace-kr-theme .ace_constant.ace_character.ace_escape,.ace-kr-theme .ace_constant.ace_other {color: rgba(210, 117, 24, 0.76)}.ace-kr-theme .ace_invalid {color: #F8F8F8;background-color: #A41300}.ace-kr-theme .ace_support {color: #9FC28A}.ace-kr-theme .ace_support.ace_constant {color: #C27E66}.ace-kr-theme .ace_fold {background-color: #949C8B;border-color: #FCFFE0}.ace-kr-theme .ace_support.ace_function {color: #85873A}.ace-kr-theme .ace_storage {color: #FFEE80}.ace-kr-theme .ace_string {color: rgba(164, 161, 181, 0.8)}.ace-kr-theme .ace_string.ace_regexp {color: rgba(125, 255, 192, 0.65)}.ace-kr-theme .ace_comment {font-style: italic;color: #706D5B}.ace-kr-theme .ace_variable {color: #D1A796}.ace-kr-theme .ace_list,.ace-kr-theme .ace_markup.ace_list {background-color: #0F0040}.ace-kr-theme .ace_variable.ace_language {color: #FF80E1}.ace-kr-theme .ace_meta.ace_tag {color: #BABD9C}.ace-kr-theme .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYFBXV/8PAAJoAXX4kT2EAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-kuroir.js",
    "content": "ace.define(\"ace/theme/kuroir\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-kuroir\",t.cssText=\".ace-kuroir .ace_gutter {background: #e8e8e8;color: #333;}.ace-kuroir .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-kuroir {background-color: #E8E9E8;color: #363636;}.ace-kuroir .ace_cursor {color: #202020;}.ace-kuroir .ace_marker-layer .ace_selection {background: rgba(245, 170, 0, 0.57);}.ace-kuroir.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #E8E9E8;}.ace-kuroir .ace_marker-layer .ace_step {background: rgb(198, 219, 174);}.ace-kuroir .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(0, 0, 0, 0.29);}.ace-kuroir .ace_marker-layer .ace_active-line {background: rgba(203, 220, 47, 0.22);}.ace-kuroir .ace_gutter-active-line {background-color: rgba(203, 220, 47, 0.22);}.ace-kuroir .ace_marker-layer .ace_selected-word {border: 1px solid rgba(245, 170, 0, 0.57);}.ace-kuroir .ace_invisible {color: #BFBFBF}.ace-kuroir .ace_fold {border-color: #363636;}.ace-kuroir .ace_constant{color:#CD6839;}.ace-kuroir .ace_constant.ace_numeric{color:#9A5925;}.ace-kuroir .ace_support{color:#104E8B;}.ace-kuroir .ace_support.ace_function{color:#005273;}.ace-kuroir .ace_support.ace_constant{color:#CF6A4C;}.ace-kuroir .ace_storage{color:#A52A2A;}.ace-kuroir .ace_invalid.ace_illegal{color:#FD1224;background-color:rgba(255, 6, 0, 0.15);}.ace-kuroir .ace_invalid.ace_deprecated{text-decoration:underline;font-style:italic;color:#FD1732;background-color:#E8E9E8;}.ace-kuroir .ace_string{color:#639300;}.ace-kuroir .ace_string.ace_regexp{color:#417E00;background-color:#C9D4BE;}.ace-kuroir .ace_comment{color:rgba(148, 148, 148, 0.91);background-color:rgba(220, 220, 220, 0.56);}.ace-kuroir .ace_variable{color:#009ACD;}.ace-kuroir .ace_meta.ace_tag{color:#005273;}.ace-kuroir .ace_markup.ace_heading{color:#B8012D;background-color:rgba(191, 97, 51, 0.051);}.ace-kuroir .ace_markup.ace_list{color:#8F5B26;}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-merbivore.js",
    "content": "ace.define(\"ace/theme/merbivore\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-merbivore\",t.cssText=\".ace-merbivore .ace_gutter {background: #202020;color: #E6E1DC}.ace-merbivore .ace_print-margin {width: 1px;background: #555651}.ace-merbivore {background-color: #161616;color: #E6E1DC}.ace-merbivore .ace_cursor {color: #FFFFFF}.ace-merbivore .ace_marker-layer .ace_selection {background: #454545}.ace-merbivore.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #161616;}.ace-merbivore .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-merbivore .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404040}.ace-merbivore .ace_marker-layer .ace_active-line {background: #333435}.ace-merbivore .ace_gutter-active-line {background-color: #333435}.ace-merbivore .ace_marker-layer .ace_selected-word {border: 1px solid #454545}.ace-merbivore .ace_invisible {color: #404040}.ace-merbivore .ace_entity.ace_name.ace_tag,.ace-merbivore .ace_keyword,.ace-merbivore .ace_meta,.ace-merbivore .ace_meta.ace_tag,.ace-merbivore .ace_storage,.ace-merbivore .ace_support.ace_function {color: #FC6F09}.ace-merbivore .ace_constant,.ace-merbivore .ace_constant.ace_character,.ace-merbivore .ace_constant.ace_character.ace_escape,.ace-merbivore .ace_constant.ace_other,.ace-merbivore .ace_support.ace_type {color: #1EDAFB}.ace-merbivore .ace_constant.ace_character.ace_escape {color: #519F50}.ace-merbivore .ace_constant.ace_language {color: #FDC251}.ace-merbivore .ace_constant.ace_library,.ace-merbivore .ace_string,.ace-merbivore .ace_support.ace_constant {color: #8DFF0A}.ace-merbivore .ace_constant.ace_numeric {color: #58C554}.ace-merbivore .ace_invalid {color: #FFFFFF;background-color: #990000}.ace-merbivore .ace_fold {background-color: #FC6F09;border-color: #E6E1DC}.ace-merbivore .ace_comment {font-style: italic;color: #AD2EA4}.ace-merbivore .ace_entity.ace_other.ace_attribute-name {color: #FFFF89}.ace-merbivore .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMQFxf3ZXB1df0PAAdsAmERTkEHAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-merbivore_soft.js",
    "content": "ace.define(\"ace/theme/merbivore_soft\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-merbivore-soft\",t.cssText=\".ace-merbivore-soft .ace_gutter {background: #262424;color: #E6E1DC}.ace-merbivore-soft .ace_print-margin {width: 1px;background: #262424}.ace-merbivore-soft {background-color: #1C1C1C;color: #E6E1DC}.ace-merbivore-soft .ace_cursor {color: #FFFFFF}.ace-merbivore-soft .ace_marker-layer .ace_selection {background: #494949}.ace-merbivore-soft.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #1C1C1C;}.ace-merbivore-soft .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-merbivore-soft .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404040}.ace-merbivore-soft .ace_marker-layer .ace_active-line {background: #333435}.ace-merbivore-soft .ace_gutter-active-line {background-color: #333435}.ace-merbivore-soft .ace_marker-layer .ace_selected-word {border: 1px solid #494949}.ace-merbivore-soft .ace_invisible {color: #404040}.ace-merbivore-soft .ace_entity.ace_name.ace_tag,.ace-merbivore-soft .ace_keyword,.ace-merbivore-soft .ace_meta,.ace-merbivore-soft .ace_meta.ace_tag,.ace-merbivore-soft .ace_storage {color: #FC803A}.ace-merbivore-soft .ace_constant,.ace-merbivore-soft .ace_constant.ace_character,.ace-merbivore-soft .ace_constant.ace_character.ace_escape,.ace-merbivore-soft .ace_constant.ace_other,.ace-merbivore-soft .ace_support.ace_type {color: #68C1D8}.ace-merbivore-soft .ace_constant.ace_character.ace_escape {color: #B3E5B4}.ace-merbivore-soft .ace_constant.ace_language {color: #E1C582}.ace-merbivore-soft .ace_constant.ace_library,.ace-merbivore-soft .ace_string,.ace-merbivore-soft .ace_support.ace_constant {color: #8EC65F}.ace-merbivore-soft .ace_constant.ace_numeric {color: #7FC578}.ace-merbivore-soft .ace_invalid,.ace-merbivore-soft .ace_invalid.ace_deprecated {color: #FFFFFF;background-color: #FE3838}.ace-merbivore-soft .ace_fold {background-color: #FC803A;border-color: #E6E1DC}.ace-merbivore-soft .ace_comment,.ace-merbivore-soft .ace_meta {font-style: italic;color: #AC4BB8}.ace-merbivore-soft .ace_entity.ace_other.ace_attribute-name {color: #EAF1A3}.ace-merbivore-soft .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWOQkpLyZfD09PwPAAfYAnaStpHRAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-mono_industrial.js",
    "content": "ace.define(\"ace/theme/mono_industrial\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-mono-industrial\",t.cssText=\".ace-mono-industrial .ace_gutter {background: #1d2521;color: #C5C9C9}.ace-mono-industrial .ace_print-margin {width: 1px;background: #555651}.ace-mono-industrial {background-color: #222C28;color: #FFFFFF}.ace-mono-industrial .ace_cursor {color: #FFFFFF}.ace-mono-industrial .ace_marker-layer .ace_selection {background: rgba(145, 153, 148, 0.40)}.ace-mono-industrial.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #222C28;}.ace-mono-industrial .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-mono-industrial .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(102, 108, 104, 0.50)}.ace-mono-industrial .ace_marker-layer .ace_active-line {background: rgba(12, 13, 12, 0.25)}.ace-mono-industrial .ace_gutter-active-line {background-color: rgba(12, 13, 12, 0.25)}.ace-mono-industrial .ace_marker-layer .ace_selected-word {border: 1px solid rgba(145, 153, 148, 0.40)}.ace-mono-industrial .ace_invisible {color: rgba(102, 108, 104, 0.50)}.ace-mono-industrial .ace_string {background-color: #151C19;color: #FFFFFF}.ace-mono-industrial .ace_keyword,.ace-mono-industrial .ace_meta {color: #A39E64}.ace-mono-industrial .ace_constant,.ace-mono-industrial .ace_constant.ace_character,.ace-mono-industrial .ace_constant.ace_character.ace_escape,.ace-mono-industrial .ace_constant.ace_numeric,.ace-mono-industrial .ace_constant.ace_other {color: #E98800}.ace-mono-industrial .ace_entity.ace_name.ace_function,.ace-mono-industrial .ace_keyword.ace_operator,.ace-mono-industrial .ace_variable {color: #A8B3AB}.ace-mono-industrial .ace_invalid {color: #FFFFFF;background-color: rgba(153, 0, 0, 0.68)}.ace-mono-industrial .ace_support.ace_constant {color: #C87500}.ace-mono-industrial .ace_fold {background-color: #A8B3AB;border-color: #FFFFFF}.ace-mono-industrial .ace_support.ace_function {color: #588E60}.ace-mono-industrial .ace_entity.ace_name,.ace-mono-industrial .ace_support.ace_class,.ace-mono-industrial .ace_support.ace_type {color: #5778B6}.ace-mono-industrial .ace_storage {color: #C23B00}.ace-mono-industrial .ace_variable.ace_language,.ace-mono-industrial .ace_variable.ace_parameter {color: #648BD2}.ace-mono-industrial .ace_comment {color: #666C68;background-color: #151C19}.ace-mono-industrial .ace_entity.ace_other.ace_attribute-name {color: #909993}.ace-mono-industrial .ace_entity.ace_name.ace_tag {color: #A65EFF}.ace-mono-industrial .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQ1NbwZfALD/4PAAlTArlEC4r/AAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-monokai.js",
    "content": "ace.define(\"ace/theme/monokai\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-monokai\",t.cssText=\".ace-monokai .ace_gutter {background: #2F3129;color: #8F908A}.ace-monokai .ace_print-margin {width: 1px;background: #555651}.ace-monokai {background-color: #272822;color: #F8F8F2}.ace-monokai .ace_cursor {color: #F8F8F0}.ace-monokai .ace_marker-layer .ace_selection {background: #49483E}.ace-monokai.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #272822;}.ace-monokai .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-monokai .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #49483E}.ace-monokai .ace_marker-layer .ace_active-line {background: #202020}.ace-monokai .ace_gutter-active-line {background-color: #272727}.ace-monokai .ace_marker-layer .ace_selected-word {border: 1px solid #49483E}.ace-monokai .ace_invisible {color: #52524d}.ace-monokai .ace_entity.ace_name.ace_tag,.ace-monokai .ace_keyword,.ace-monokai .ace_meta.ace_tag,.ace-monokai .ace_storage {color: #F92672}.ace-monokai .ace_punctuation,.ace-monokai .ace_punctuation.ace_tag {color: #fff}.ace-monokai .ace_constant.ace_character,.ace-monokai .ace_constant.ace_language,.ace-monokai .ace_constant.ace_numeric,.ace-monokai .ace_constant.ace_other {color: #AE81FF}.ace-monokai .ace_invalid {color: #F8F8F0;background-color: #F92672}.ace-monokai .ace_invalid.ace_deprecated {color: #F8F8F0;background-color: #AE81FF}.ace-monokai .ace_support.ace_constant,.ace-monokai .ace_support.ace_function {color: #66D9EF}.ace-monokai .ace_fold {background-color: #A6E22E;border-color: #F8F8F2}.ace-monokai .ace_storage.ace_type,.ace-monokai .ace_support.ace_class,.ace-monokai .ace_support.ace_type {font-style: italic;color: #66D9EF}.ace-monokai .ace_entity.ace_name.ace_function,.ace-monokai .ace_entity.ace_other,.ace-monokai .ace_entity.ace_other.ace_attribute-name,.ace-monokai .ace_variable {color: #A6E22E}.ace-monokai .ace_variable.ace_parameter {font-style: italic;color: #FD971F}.ace-monokai .ace_string {color: #E6DB74}.ace-monokai .ace_comment {color: #75715E}.ace-monokai .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ0FD0ZXBzd/wPAAjVAoxeSgNeAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-pastel_on_dark.js",
    "content": "ace.define(\"ace/theme/pastel_on_dark\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-pastel-on-dark\",t.cssText=\".ace-pastel-on-dark .ace_gutter {background: #353030;color: #8F938F}.ace-pastel-on-dark .ace_print-margin {width: 1px;background: #353030}.ace-pastel-on-dark {background-color: #2C2828;color: #8F938F}.ace-pastel-on-dark .ace_cursor {color: #A7A7A7}.ace-pastel-on-dark .ace_marker-layer .ace_selection {background: rgba(221, 240, 255, 0.20)}.ace-pastel-on-dark.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #2C2828;}.ace-pastel-on-dark .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-pastel-on-dark .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 255, 255, 0.25)}.ace-pastel-on-dark .ace_marker-layer .ace_active-line {background: rgba(255, 255, 255, 0.031)}.ace-pastel-on-dark .ace_gutter-active-line {background-color: rgba(255, 255, 255, 0.031)}.ace-pastel-on-dark .ace_marker-layer .ace_selected-word {border: 1px solid rgba(221, 240, 255, 0.20)}.ace-pastel-on-dark .ace_invisible {color: rgba(255, 255, 255, 0.25)}.ace-pastel-on-dark .ace_keyword,.ace-pastel-on-dark .ace_meta {color: #757aD8}.ace-pastel-on-dark .ace_constant,.ace-pastel-on-dark .ace_constant.ace_character,.ace-pastel-on-dark .ace_constant.ace_character.ace_escape,.ace-pastel-on-dark .ace_constant.ace_other {color: #4FB7C5}.ace-pastel-on-dark .ace_keyword.ace_operator {color: #797878}.ace-pastel-on-dark .ace_constant.ace_character {color: #AFA472}.ace-pastel-on-dark .ace_constant.ace_language {color: #DE8E30}.ace-pastel-on-dark .ace_constant.ace_numeric {color: #CCCCCC}.ace-pastel-on-dark .ace_invalid,.ace-pastel-on-dark .ace_invalid.ace_illegal {color: #F8F8F8;background-color: rgba(86, 45, 86, 0.75)}.ace-pastel-on-dark .ace_invalid.ace_deprecated {text-decoration: underline;font-style: italic;color: #D2A8A1}.ace-pastel-on-dark .ace_fold {background-color: #757aD8;border-color: #8F938F}.ace-pastel-on-dark .ace_support.ace_function {color: #AEB2F8}.ace-pastel-on-dark .ace_string {color: #66A968}.ace-pastel-on-dark .ace_string.ace_regexp {color: #E9C062}.ace-pastel-on-dark .ace_comment {color: #A6C6FF}.ace-pastel-on-dark .ace_variable {color: #BEBF55}.ace-pastel-on-dark .ace_variable.ace_language {color: #C1C144}.ace-pastel-on-dark .ace_xml-pe {color: #494949}.ace-pastel-on-dark .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYIiPj/8PAARgAh2NTMh8AAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-solarized_dark.js",
    "content": "ace.define(\"ace/theme/solarized_dark\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-solarized-dark\",t.cssText=\".ace-solarized-dark .ace_gutter {background: #01313f;color: #d0edf7}.ace-solarized-dark .ace_print-margin {width: 1px;background: #33555E}.ace-solarized-dark {background-color: #002B36;color: #93A1A1}.ace-solarized-dark .ace_entity.ace_other.ace_attribute-name,.ace-solarized-dark .ace_storage {color: #93A1A1}.ace-solarized-dark .ace_cursor,.ace-solarized-dark .ace_string.ace_regexp {color: #D30102}.ace-solarized-dark .ace_marker-layer .ace_active-line,.ace-solarized-dark .ace_marker-layer .ace_selection {background: rgba(255, 255, 255, 0.1)}.ace-solarized-dark.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #002B36;}.ace-solarized-dark .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-solarized-dark .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(147, 161, 161, 0.50)}.ace-solarized-dark .ace_gutter-active-line {background-color: #0d3440}.ace-solarized-dark .ace_marker-layer .ace_selected-word {border: 1px solid #073642}.ace-solarized-dark .ace_invisible {color: rgba(147, 161, 161, 0.50)}.ace-solarized-dark .ace_keyword,.ace-solarized-dark .ace_meta,.ace-solarized-dark .ace_support.ace_class,.ace-solarized-dark .ace_support.ace_type {color: #859900}.ace-solarized-dark .ace_constant.ace_character,.ace-solarized-dark .ace_constant.ace_other {color: #CB4B16}.ace-solarized-dark .ace_constant.ace_language {color: #B58900}.ace-solarized-dark .ace_constant.ace_numeric {color: #D33682}.ace-solarized-dark .ace_fold {background-color: #268BD2;border-color: #93A1A1}.ace-solarized-dark .ace_entity.ace_name.ace_function,.ace-solarized-dark .ace_entity.ace_name.ace_tag,.ace-solarized-dark .ace_support.ace_function,.ace-solarized-dark .ace_variable,.ace-solarized-dark .ace_variable.ace_language {color: #268BD2}.ace-solarized-dark .ace_string {color: #2AA198}.ace-solarized-dark .ace_comment {font-style: italic;color: #657B83}.ace-solarized-dark .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNg0Db1ZVCxc/sPAAd4AlUHlLenAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-solarized_light.js",
    "content": "ace.define(\"ace/theme/solarized_light\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-solarized-light\",t.cssText=\".ace-solarized-light .ace_gutter {background: #fbf1d3;color: #333}.ace-solarized-light .ace_print-margin {width: 1px;background: #e8e8e8}.ace-solarized-light {background-color: #FDF6E3;color: #586E75}.ace-solarized-light .ace_cursor {color: #000000}.ace-solarized-light .ace_marker-layer .ace_selection {background: rgba(7, 54, 67, 0.09)}.ace-solarized-light.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #FDF6E3;}.ace-solarized-light .ace_marker-layer .ace_step {background: rgb(255, 255, 0)}.ace-solarized-light .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(147, 161, 161, 0.50)}.ace-solarized-light .ace_marker-layer .ace_active-line {background: #EEE8D5}.ace-solarized-light .ace_gutter-active-line {background-color : #EDE5C1}.ace-solarized-light .ace_marker-layer .ace_selected-word {border: 1px solid #073642}.ace-solarized-light .ace_invisible {color: rgba(147, 161, 161, 0.50)}.ace-solarized-light .ace_keyword,.ace-solarized-light .ace_meta,.ace-solarized-light .ace_support.ace_class,.ace-solarized-light .ace_support.ace_type {color: #859900}.ace-solarized-light .ace_constant.ace_character,.ace-solarized-light .ace_constant.ace_other {color: #CB4B16}.ace-solarized-light .ace_constant.ace_language {color: #B58900}.ace-solarized-light .ace_constant.ace_numeric {color: #D33682}.ace-solarized-light .ace_fold {background-color: #268BD2;border-color: #586E75}.ace-solarized-light .ace_entity.ace_name.ace_function,.ace-solarized-light .ace_entity.ace_name.ace_tag,.ace-solarized-light .ace_support.ace_function,.ace-solarized-light .ace_variable,.ace-solarized-light .ace_variable.ace_language {color: #268BD2}.ace-solarized-light .ace_storage {color: #073642}.ace-solarized-light .ace_string {color: #2AA198}.ace-solarized-light .ace_string.ace_regexp {color: #D30102}.ace-solarized-light .ace_comment,.ace-solarized-light .ace_entity.ace_other.ace_attribute-name {color: #93A1A1}.ace-solarized-light .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHjy8NJ/AAjgA5fzQUmBAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-sqlserver.js",
    "content": "ace.define(\"ace/theme/sqlserver\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-sqlserver\",t.cssText='.ace-sqlserver .ace_gutter {background: #ebebeb;color: #333;overflow: hidden;}.ace-sqlserver .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-sqlserver {background-color: #FFFFFF;color: black;}.ace-sqlserver .ace_identifier {color: black;}.ace-sqlserver .ace_keyword {color: #0000FF;}.ace-sqlserver .ace_numeric {color: black;}.ace-sqlserver .ace_storage {color: #11B7BE;}.ace-sqlserver .ace_keyword.ace_operator,.ace-sqlserver .ace_lparen,.ace-sqlserver .ace_rparen,.ace-sqlserver .ace_punctuation {color: #808080;}.ace-sqlserver .ace_set.ace_statement {color: #0000FF;text-decoration: underline;}.ace-sqlserver .ace_cursor {color: black;}.ace-sqlserver .ace_invisible {color: rgb(191, 191, 191);}.ace-sqlserver .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-sqlserver .ace_constant.ace_language {color: #979797;}.ace-sqlserver .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-sqlserver .ace_invalid {background-color: rgb(153, 0, 0);color: white;}.ace-sqlserver .ace_support.ace_function {color: #FF00FF;}.ace-sqlserver .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-sqlserver .ace_class {color: #008080;}.ace-sqlserver .ace_support.ace_other {color: #6D79DE;}.ace-sqlserver .ace_variable.ace_parameter {font-style: italic;color: #FD971F;}.ace-sqlserver .ace_comment {color: #008000;}.ace-sqlserver .ace_constant.ace_numeric {color: black;}.ace-sqlserver .ace_variable {color: rgb(49, 132, 149);}.ace-sqlserver .ace_xml-pe {color: rgb(104, 104, 91);}.ace-sqlserver .ace_support.ace_storedprocedure {color: #800000;}.ace-sqlserver .ace_heading {color: rgb(12, 7, 255);}.ace-sqlserver .ace_list {color: rgb(185, 6, 144);}.ace-sqlserver .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-sqlserver .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-sqlserver .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-sqlserver .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-sqlserver .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-sqlserver .ace_gutter-active-line {background-color: #dcdcdc;}.ace-sqlserver .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-sqlserver .ace_meta.ace_tag {color: #0000FF;}.ace-sqlserver .ace_string.ace_regex {color: #FF0000;}.ace-sqlserver .ace_string {color: #FF0000;}.ace-sqlserver .ace_entity.ace_other.ace_attribute-name {color: #994409;}.ace-sqlserver .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;}';var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-terminal.js",
    "content": "ace.define(\"ace/theme/terminal\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-terminal-theme\",t.cssText=\".ace-terminal-theme .ace_gutter {background: #1a0005;color: steelblue}.ace-terminal-theme .ace_print-margin {width: 1px;background: #1a1a1a}.ace-terminal-theme {background-color: black;color: #DEDEDE}.ace-terminal-theme .ace_cursor {color: #9F9F9F}.ace-terminal-theme .ace_marker-layer .ace_selection {background: #424242}.ace-terminal-theme.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px black;}.ace-terminal-theme .ace_marker-layer .ace_step {background: rgb(0, 0, 0)}.ace-terminal-theme .ace_marker-layer .ace_bracket {background: #090;}.ace-terminal-theme .ace_marker-layer .ace_bracket-start {background: #090;}.ace-terminal-theme .ace_marker-layer .ace_bracket-unmatched {margin: -1px 0 0 -1px;border: 1px solid #900}.ace-terminal-theme .ace_marker-layer .ace_active-line {background: #2A2A2A}.ace-terminal-theme .ace_gutter-active-line {background-color: #2A112A}.ace-terminal-theme .ace_marker-layer .ace_selected-word {border: 1px solid #424242}.ace-terminal-theme .ace_invisible {color: #343434}.ace-terminal-theme .ace_keyword,.ace-terminal-theme .ace_meta,.ace-terminal-theme .ace_storage,.ace-terminal-theme .ace_storage.ace_type,.ace-terminal-theme .ace_support.ace_type {color: tomato}.ace-terminal-theme .ace_keyword.ace_operator {color: deeppink}.ace-terminal-theme .ace_constant.ace_character,.ace-terminal-theme .ace_constant.ace_language,.ace-terminal-theme .ace_constant.ace_numeric,.ace-terminal-theme .ace_keyword.ace_other.ace_unit,.ace-terminal-theme .ace_support.ace_constant,.ace-terminal-theme .ace_variable.ace_parameter {color: #E78C45}.ace-terminal-theme .ace_constant.ace_other {color: gold}.ace-terminal-theme .ace_invalid {color: yellow;background-color: red}.ace-terminal-theme .ace_invalid.ace_deprecated {color: #CED2CF;background-color: #B798BF}.ace-terminal-theme .ace_fold {background-color: #7AA6DA;border-color: #DEDEDE}.ace-terminal-theme .ace_entity.ace_name.ace_function,.ace-terminal-theme .ace_support.ace_function,.ace-terminal-theme .ace_variable {color: #7AA6DA}.ace-terminal-theme .ace_support.ace_class,.ace-terminal-theme .ace_support.ace_type {color: #E7C547}.ace-terminal-theme .ace_heading,.ace-terminal-theme .ace_string {color: #B9CA4A}.ace-terminal-theme .ace_entity.ace_name.ace_tag,.ace-terminal-theme .ace_entity.ace_other.ace_attribute-name,.ace-terminal-theme .ace_meta.ace_tag,.ace-terminal-theme .ace_string.ace_regexp,.ace-terminal-theme .ace_variable {color: #D54E53}.ace-terminal-theme .ace_comment {color: orangered}.ace-terminal-theme .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYLBWV/8PAAK4AYnhiq+xAAAAAElFTkSuQmCC) right repeat-y;}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-textmate.js",
    "content": "ace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";t.isDark=!1,t.cssClass=\"ace-tm\",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;}';var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-tomorrow.js",
    "content": "ace.define(\"ace/theme/tomorrow\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-tomorrow\",t.cssText=\".ace-tomorrow .ace_gutter {background: #f6f6f6;color: #4D4D4C}.ace-tomorrow .ace_print-margin {width: 1px;background: #f6f6f6}.ace-tomorrow {background-color: #FFFFFF;color: #4D4D4C}.ace-tomorrow .ace_cursor {color: #AEAFAD}.ace-tomorrow .ace_marker-layer .ace_selection {background: #D6D6D6}.ace-tomorrow.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #FFFFFF;}.ace-tomorrow .ace_marker-layer .ace_step {background: rgb(255, 255, 0)}.ace-tomorrow .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #D1D1D1}.ace-tomorrow .ace_marker-layer .ace_active-line {background: #EFEFEF}.ace-tomorrow .ace_gutter-active-line {background-color : #dcdcdc}.ace-tomorrow .ace_marker-layer .ace_selected-word {border: 1px solid #D6D6D6}.ace-tomorrow .ace_invisible {color: #D1D1D1}.ace-tomorrow .ace_keyword,.ace-tomorrow .ace_meta,.ace-tomorrow .ace_storage,.ace-tomorrow .ace_storage.ace_type,.ace-tomorrow .ace_support.ace_type {color: #8959A8}.ace-tomorrow .ace_keyword.ace_operator {color: #3E999F}.ace-tomorrow .ace_constant.ace_character,.ace-tomorrow .ace_constant.ace_language,.ace-tomorrow .ace_constant.ace_numeric,.ace-tomorrow .ace_keyword.ace_other.ace_unit,.ace-tomorrow .ace_support.ace_constant,.ace-tomorrow .ace_variable.ace_parameter {color: #F5871F}.ace-tomorrow .ace_constant.ace_other {color: #666969}.ace-tomorrow .ace_invalid {color: #FFFFFF;background-color: #C82829}.ace-tomorrow .ace_invalid.ace_deprecated {color: #FFFFFF;background-color: #8959A8}.ace-tomorrow .ace_fold {background-color: #4271AE;border-color: #4D4D4C}.ace-tomorrow .ace_entity.ace_name.ace_function,.ace-tomorrow .ace_support.ace_function,.ace-tomorrow .ace_variable {color: #4271AE}.ace-tomorrow .ace_support.ace_class,.ace-tomorrow .ace_support.ace_type {color: #C99E00}.ace-tomorrow .ace_heading,.ace-tomorrow .ace_markup.ace_heading,.ace-tomorrow .ace_string {color: #718C00}.ace-tomorrow .ace_entity.ace_name.ace_tag,.ace-tomorrow .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow .ace_meta.ace_tag,.ace-tomorrow .ace_string.ace_regexp,.ace-tomorrow .ace_variable {color: #C82829}.ace-tomorrow .ace_comment {color: #8E908C}.ace-tomorrow .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bdu3f/BwAlfgctduB85QAAAABJRU5ErkJggg==) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-tomorrow_night.js",
    "content": "ace.define(\"ace/theme/tomorrow_night\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-tomorrow-night\",t.cssText=\".ace-tomorrow-night .ace_gutter {background: #25282c;color: #C5C8C6}.ace-tomorrow-night .ace_print-margin {width: 1px;background: #25282c}.ace-tomorrow-night {background-color: #1D1F21;color: #C5C8C6}.ace-tomorrow-night .ace_cursor {color: #AEAFAD}.ace-tomorrow-night .ace_marker-layer .ace_selection {background: #373B41}.ace-tomorrow-night.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #1D1F21;}.ace-tomorrow-night .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-tomorrow-night .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #4B4E55}.ace-tomorrow-night .ace_marker-layer .ace_active-line {background: #282A2E}.ace-tomorrow-night .ace_gutter-active-line {background-color: #282A2E}.ace-tomorrow-night .ace_marker-layer .ace_selected-word {border: 1px solid #373B41}.ace-tomorrow-night .ace_invisible {color: #4B4E55}.ace-tomorrow-night .ace_keyword,.ace-tomorrow-night .ace_meta,.ace-tomorrow-night .ace_storage,.ace-tomorrow-night .ace_storage.ace_type,.ace-tomorrow-night .ace_support.ace_type {color: #B294BB}.ace-tomorrow-night .ace_keyword.ace_operator {color: #8ABEB7}.ace-tomorrow-night .ace_constant.ace_character,.ace-tomorrow-night .ace_constant.ace_language,.ace-tomorrow-night .ace_constant.ace_numeric,.ace-tomorrow-night .ace_keyword.ace_other.ace_unit,.ace-tomorrow-night .ace_support.ace_constant,.ace-tomorrow-night .ace_variable.ace_parameter {color: #DE935F}.ace-tomorrow-night .ace_constant.ace_other {color: #CED1CF}.ace-tomorrow-night .ace_invalid {color: #CED2CF;background-color: #DF5F5F}.ace-tomorrow-night .ace_invalid.ace_deprecated {color: #CED2CF;background-color: #B798BF}.ace-tomorrow-night .ace_fold {background-color: #81A2BE;border-color: #C5C8C6}.ace-tomorrow-night .ace_entity.ace_name.ace_function,.ace-tomorrow-night .ace_support.ace_function,.ace-tomorrow-night .ace_variable {color: #81A2BE}.ace-tomorrow-night .ace_support.ace_class,.ace-tomorrow-night .ace_support.ace_type {color: #F0C674}.ace-tomorrow-night .ace_heading,.ace-tomorrow-night .ace_markup.ace_heading,.ace-tomorrow-night .ace_string {color: #B5BD68}.ace-tomorrow-night .ace_entity.ace_name.ace_tag,.ace-tomorrow-night .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow-night .ace_meta.ace_tag,.ace-tomorrow-night .ace_string.ace_regexp,.ace-tomorrow-night .ace_variable {color: #CC6666}.ace-tomorrow-night .ace_comment {color: #969896}.ace-tomorrow-night .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHB3d/8PAAOIAdULw8qMAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-tomorrow_night_blue.js",
    "content": "ace.define(\"ace/theme/tomorrow_night_blue\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-tomorrow-night-blue\",t.cssText=\".ace-tomorrow-night-blue .ace_gutter {background: #00204b;color: #7388b5}.ace-tomorrow-night-blue .ace_print-margin {width: 1px;background: #00204b}.ace-tomorrow-night-blue {background-color: #002451;color: #FFFFFF}.ace-tomorrow-night-blue .ace_constant.ace_other,.ace-tomorrow-night-blue .ace_cursor {color: #FFFFFF}.ace-tomorrow-night-blue .ace_marker-layer .ace_selection {background: #003F8E}.ace-tomorrow-night-blue.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #002451;}.ace-tomorrow-night-blue .ace_marker-layer .ace_step {background: rgb(127, 111, 19)}.ace-tomorrow-night-blue .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404F7D}.ace-tomorrow-night-blue .ace_marker-layer .ace_active-line {background: #00346E}.ace-tomorrow-night-blue .ace_gutter-active-line {background-color: #022040}.ace-tomorrow-night-blue .ace_marker-layer .ace_selected-word {border: 1px solid #003F8E}.ace-tomorrow-night-blue .ace_invisible {color: #404F7D}.ace-tomorrow-night-blue .ace_keyword,.ace-tomorrow-night-blue .ace_meta,.ace-tomorrow-night-blue .ace_storage,.ace-tomorrow-night-blue .ace_storage.ace_type,.ace-tomorrow-night-blue .ace_support.ace_type {color: #EBBBFF}.ace-tomorrow-night-blue .ace_keyword.ace_operator {color: #99FFFF}.ace-tomorrow-night-blue .ace_constant.ace_character,.ace-tomorrow-night-blue .ace_constant.ace_language,.ace-tomorrow-night-blue .ace_constant.ace_numeric,.ace-tomorrow-night-blue .ace_keyword.ace_other.ace_unit,.ace-tomorrow-night-blue .ace_support.ace_constant,.ace-tomorrow-night-blue .ace_variable.ace_parameter {color: #FFC58F}.ace-tomorrow-night-blue .ace_invalid {color: #FFFFFF;background-color: #F99DA5}.ace-tomorrow-night-blue .ace_invalid.ace_deprecated {color: #FFFFFF;background-color: #EBBBFF}.ace-tomorrow-night-blue .ace_fold {background-color: #BBDAFF;border-color: #FFFFFF}.ace-tomorrow-night-blue .ace_entity.ace_name.ace_function,.ace-tomorrow-night-blue .ace_support.ace_function,.ace-tomorrow-night-blue .ace_variable {color: #BBDAFF}.ace-tomorrow-night-blue .ace_support.ace_class,.ace-tomorrow-night-blue .ace_support.ace_type {color: #FFEEAD}.ace-tomorrow-night-blue .ace_heading,.ace-tomorrow-night-blue .ace_markup.ace_heading,.ace-tomorrow-night-blue .ace_string {color: #D1F1A9}.ace-tomorrow-night-blue .ace_entity.ace_name.ace_tag,.ace-tomorrow-night-blue .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow-night-blue .ace_meta.ace_tag,.ace-tomorrow-night-blue .ace_string.ace_regexp,.ace-tomorrow-night-blue .ace_variable {color: #FF9DA4}.ace-tomorrow-night-blue .ace_comment {color: #7285B7}.ace-tomorrow-night-blue .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYJDzqfwPAANXAeNsiA+ZAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-tomorrow_night_bright.js",
    "content": "ace.define(\"ace/theme/tomorrow_night_bright\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-tomorrow-night-bright\",t.cssText=\".ace-tomorrow-night-bright .ace_gutter {background: #1a1a1a;color: #DEDEDE}.ace-tomorrow-night-bright .ace_print-margin {width: 1px;background: #1a1a1a}.ace-tomorrow-night-bright {background-color: #000000;color: #DEDEDE}.ace-tomorrow-night-bright .ace_cursor {color: #9F9F9F}.ace-tomorrow-night-bright .ace_marker-layer .ace_selection {background: #424242}.ace-tomorrow-night-bright.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #000000;}.ace-tomorrow-night-bright .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-tomorrow-night-bright .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #888888}.ace-tomorrow-night-bright .ace_marker-layer .ace_highlight {border: 1px solid rgb(110, 119, 0);border-bottom: 0;box-shadow: inset 0 -1px rgb(110, 119, 0);margin: -1px 0 0 -1px;background: rgba(255, 235, 0, 0.1)}.ace-tomorrow-night-bright .ace_marker-layer .ace_active-line {background: #2A2A2A}.ace-tomorrow-night-bright .ace_gutter-active-line {background-color: #2A2A2A}.ace-tomorrow-night-bright .ace_stack {background-color: rgb(66, 90, 44)}.ace-tomorrow-night-bright .ace_marker-layer .ace_selected-word {border: 1px solid #888888}.ace-tomorrow-night-bright .ace_invisible {color: #343434}.ace-tomorrow-night-bright .ace_keyword,.ace-tomorrow-night-bright .ace_meta,.ace-tomorrow-night-bright .ace_storage,.ace-tomorrow-night-bright .ace_storage.ace_type,.ace-tomorrow-night-bright .ace_support.ace_type {color: #C397D8}.ace-tomorrow-night-bright .ace_keyword.ace_operator {color: #70C0B1}.ace-tomorrow-night-bright .ace_constant.ace_character,.ace-tomorrow-night-bright .ace_constant.ace_language,.ace-tomorrow-night-bright .ace_constant.ace_numeric,.ace-tomorrow-night-bright .ace_keyword.ace_other.ace_unit,.ace-tomorrow-night-bright .ace_support.ace_constant,.ace-tomorrow-night-bright .ace_variable.ace_parameter {color: #E78C45}.ace-tomorrow-night-bright .ace_constant.ace_other {color: #EEEEEE}.ace-tomorrow-night-bright .ace_invalid {color: #CED2CF;background-color: #DF5F5F}.ace-tomorrow-night-bright .ace_invalid.ace_deprecated {color: #CED2CF;background-color: #B798BF}.ace-tomorrow-night-bright .ace_fold {background-color: #7AA6DA;border-color: #DEDEDE}.ace-tomorrow-night-bright .ace_entity.ace_name.ace_function,.ace-tomorrow-night-bright .ace_support.ace_function,.ace-tomorrow-night-bright .ace_variable {color: #7AA6DA}.ace-tomorrow-night-bright .ace_support.ace_class,.ace-tomorrow-night-bright .ace_support.ace_type {color: #E7C547}.ace-tomorrow-night-bright .ace_heading,.ace-tomorrow-night-bright .ace_markup.ace_heading,.ace-tomorrow-night-bright .ace_string {color: #B9CA4A}.ace-tomorrow-night-bright .ace_entity.ace_name.ace_tag,.ace-tomorrow-night-bright .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow-night-bright .ace_meta.ace_tag,.ace-tomorrow-night-bright .ace_string.ace_regexp,.ace-tomorrow-night-bright .ace_variable {color: #D54E53}.ace-tomorrow-night-bright .ace_comment {color: #969896}.ace-tomorrow-night-bright .ace_c9searchresults.ace_keyword {color: #C2C280}.ace-tomorrow-night-bright .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYFBXV/8PAAJoAXX4kT2EAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-tomorrow_night_eighties.js",
    "content": "ace.define(\"ace/theme/tomorrow_night_eighties\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-tomorrow-night-eighties\",t.cssText=\".ace-tomorrow-night-eighties .ace_gutter {background: #272727;color: #CCC}.ace-tomorrow-night-eighties .ace_print-margin {width: 1px;background: #272727}.ace-tomorrow-night-eighties {background-color: #2D2D2D;color: #CCCCCC}.ace-tomorrow-night-eighties .ace_constant.ace_other,.ace-tomorrow-night-eighties .ace_cursor {color: #CCCCCC}.ace-tomorrow-night-eighties .ace_marker-layer .ace_selection {background: #515151}.ace-tomorrow-night-eighties.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #2D2D2D;}.ace-tomorrow-night-eighties .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-tomorrow-night-eighties .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #6A6A6A}.ace-tomorrow-night-bright .ace_stack {background: rgb(66, 90, 44)}.ace-tomorrow-night-eighties .ace_marker-layer .ace_active-line {background: #393939}.ace-tomorrow-night-eighties .ace_gutter-active-line {background-color: #393939}.ace-tomorrow-night-eighties .ace_marker-layer .ace_selected-word {border: 1px solid #515151}.ace-tomorrow-night-eighties .ace_invisible {color: #6A6A6A}.ace-tomorrow-night-eighties .ace_keyword,.ace-tomorrow-night-eighties .ace_meta,.ace-tomorrow-night-eighties .ace_storage,.ace-tomorrow-night-eighties .ace_storage.ace_type,.ace-tomorrow-night-eighties .ace_support.ace_type {color: #CC99CC}.ace-tomorrow-night-eighties .ace_keyword.ace_operator {color: #66CCCC}.ace-tomorrow-night-eighties .ace_constant.ace_character,.ace-tomorrow-night-eighties .ace_constant.ace_language,.ace-tomorrow-night-eighties .ace_constant.ace_numeric,.ace-tomorrow-night-eighties .ace_keyword.ace_other.ace_unit,.ace-tomorrow-night-eighties .ace_support.ace_constant,.ace-tomorrow-night-eighties .ace_variable.ace_parameter {color: #F99157}.ace-tomorrow-night-eighties .ace_invalid {color: #CDCDCD;background-color: #F2777A}.ace-tomorrow-night-eighties .ace_invalid.ace_deprecated {color: #CDCDCD;background-color: #CC99CC}.ace-tomorrow-night-eighties .ace_fold {background-color: #6699CC;border-color: #CCCCCC}.ace-tomorrow-night-eighties .ace_entity.ace_name.ace_function,.ace-tomorrow-night-eighties .ace_support.ace_function,.ace-tomorrow-night-eighties .ace_variable {color: #6699CC}.ace-tomorrow-night-eighties .ace_support.ace_class,.ace-tomorrow-night-eighties .ace_support.ace_type {color: #FFCC66}.ace-tomorrow-night-eighties .ace_heading,.ace-tomorrow-night-eighties .ace_markup.ace_heading,.ace-tomorrow-night-eighties .ace_string {color: #99CC99}.ace-tomorrow-night-eighties .ace_comment {color: #999999}.ace-tomorrow-night-eighties .ace_entity.ace_name.ace_tag,.ace-tomorrow-night-eighties .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow-night-eighties .ace_meta.ace_tag,.ace-tomorrow-night-eighties .ace_variable {color: #F2777A}.ace-tomorrow-night-eighties .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ09NrYAgMjP4PAAtGAwchHMyAAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-twilight.js",
    "content": "ace.define(\"ace/theme/twilight\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-twilight\",t.cssText=\".ace-twilight .ace_gutter {background: #232323;color: #E2E2E2}.ace-twilight .ace_print-margin {width: 1px;background: #232323}.ace-twilight {background-color: #141414;color: #F8F8F8}.ace-twilight .ace_cursor {color: #A7A7A7}.ace-twilight .ace_marker-layer .ace_selection {background: rgba(221, 240, 255, 0.20)}.ace-twilight.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #141414;}.ace-twilight .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-twilight .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 255, 255, 0.25)}.ace-twilight .ace_marker-layer .ace_active-line {background: rgba(255, 255, 255, 0.031)}.ace-twilight .ace_gutter-active-line {background-color: rgba(255, 255, 255, 0.031)}.ace-twilight .ace_marker-layer .ace_selected-word {border: 1px solid rgba(221, 240, 255, 0.20)}.ace-twilight .ace_invisible {color: rgba(255, 255, 255, 0.25)}.ace-twilight .ace_keyword,.ace-twilight .ace_meta {color: #CDA869}.ace-twilight .ace_constant,.ace-twilight .ace_constant.ace_character,.ace-twilight .ace_constant.ace_character.ace_escape,.ace-twilight .ace_constant.ace_other,.ace-twilight .ace_heading,.ace-twilight .ace_markup.ace_heading,.ace-twilight .ace_support.ace_constant {color: #CF6A4C}.ace-twilight .ace_invalid.ace_illegal {color: #F8F8F8;background-color: rgba(86, 45, 86, 0.75)}.ace-twilight .ace_invalid.ace_deprecated {text-decoration: underline;font-style: italic;color: #D2A8A1}.ace-twilight .ace_support {color: #9B859D}.ace-twilight .ace_fold {background-color: #AC885B;border-color: #F8F8F8}.ace-twilight .ace_support.ace_function {color: #DAD085}.ace-twilight .ace_list,.ace-twilight .ace_markup.ace_list,.ace-twilight .ace_storage {color: #F9EE98}.ace-twilight .ace_entity.ace_name.ace_function,.ace-twilight .ace_meta.ace_tag,.ace-twilight .ace_variable {color: #AC885B}.ace-twilight .ace_string {color: #8F9D6A}.ace-twilight .ace_string.ace_regexp {color: #E9C062}.ace-twilight .ace_comment {font-style: italic;color: #5F5A60}.ace-twilight .ace_variable {color: #7587A6}.ace-twilight .ace_xml-pe {color: #494949}.ace-twilight .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMQERFpYLC1tf0PAAgOAnPnhxyiAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-vibrant_ink.js",
    "content": "ace.define(\"ace/theme/vibrant_ink\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-vibrant-ink\",t.cssText=\".ace-vibrant-ink .ace_gutter {background: #1a1a1a;color: #BEBEBE}.ace-vibrant-ink .ace_print-margin {width: 1px;background: #1a1a1a}.ace-vibrant-ink {background-color: #0F0F0F;color: #FFFFFF}.ace-vibrant-ink .ace_cursor {color: #FFFFFF}.ace-vibrant-ink .ace_marker-layer .ace_selection {background: #6699CC}.ace-vibrant-ink.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #0F0F0F;}.ace-vibrant-ink .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-vibrant-ink .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404040}.ace-vibrant-ink .ace_marker-layer .ace_active-line {background: #333333}.ace-vibrant-ink .ace_gutter-active-line {background-color: #333333}.ace-vibrant-ink .ace_marker-layer .ace_selected-word {border: 1px solid #6699CC}.ace-vibrant-ink .ace_invisible {color: #404040}.ace-vibrant-ink .ace_keyword,.ace-vibrant-ink .ace_meta {color: #FF6600}.ace-vibrant-ink .ace_constant,.ace-vibrant-ink .ace_constant.ace_character,.ace-vibrant-ink .ace_constant.ace_character.ace_escape,.ace-vibrant-ink .ace_constant.ace_other {color: #339999}.ace-vibrant-ink .ace_constant.ace_numeric {color: #99CC99}.ace-vibrant-ink .ace_invalid,.ace-vibrant-ink .ace_invalid.ace_deprecated {color: #CCFF33;background-color: #000000}.ace-vibrant-ink .ace_fold {background-color: #FFCC00;border-color: #FFFFFF}.ace-vibrant-ink .ace_entity.ace_name.ace_function,.ace-vibrant-ink .ace_support.ace_function,.ace-vibrant-ink .ace_variable {color: #FFCC00}.ace-vibrant-ink .ace_variable.ace_parameter {font-style: italic}.ace-vibrant-ink .ace_string {color: #66FF00}.ace-vibrant-ink .ace_string.ace_regexp {color: #44B4CC}.ace-vibrant-ink .ace_comment {color: #9933CC}.ace-vibrant-ink .ace_entity.ace_other.ace_attribute-name {font-style: italic;color: #99CC99}.ace-vibrant-ink .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYNDTc/oPAALPAZ7hxlbYAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/theme-xcode.js",
    "content": "ace.define(\"ace/theme/xcode\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-xcode\",t.cssText=\".ace-xcode .ace_gutter {background: #e8e8e8;color: #333}.ace-xcode .ace_print-margin {width: 1px;background: #e8e8e8}.ace-xcode {background-color: #FFFFFF;color: #000000}.ace-xcode .ace_cursor {color: #000000}.ace-xcode .ace_marker-layer .ace_selection {background: #B5D5FF}.ace-xcode.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #FFFFFF;}.ace-xcode .ace_marker-layer .ace_step {background: rgb(198, 219, 174)}.ace-xcode .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #BFBFBF}.ace-xcode .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.071)}.ace-xcode .ace_gutter-active-line {background-color: rgba(0, 0, 0, 0.071)}.ace-xcode .ace_marker-layer .ace_selected-word {border: 1px solid #B5D5FF}.ace-xcode .ace_constant.ace_language,.ace-xcode .ace_keyword,.ace-xcode .ace_meta,.ace-xcode .ace_variable.ace_language {color: #C800A4}.ace-xcode .ace_invisible {color: #BFBFBF}.ace-xcode .ace_constant.ace_character,.ace-xcode .ace_constant.ace_other {color: #275A5E}.ace-xcode .ace_constant.ace_numeric {color: #3A00DC}.ace-xcode .ace_entity.ace_other.ace_attribute-name,.ace-xcode .ace_support.ace_constant,.ace-xcode .ace_support.ace_function {color: #450084}.ace-xcode .ace_fold {background-color: #C800A4;border-color: #000000}.ace-xcode .ace_entity.ace_name.ace_tag,.ace-xcode .ace_support.ace_class,.ace-xcode .ace_support.ace_type {color: #790EAD}.ace-xcode .ace_storage {color: #C900A4}.ace-xcode .ace_string {color: #DF0002}.ace-xcode .ace_comment {color: #008E00}.ace-xcode .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict/worker-coffee.js",
    "content": "\"no use strict\";(function(e){function t(e,t){var n=e,r=\"\";while(n){var i=t[n];if(typeof i==\"string\")return i+r;if(i)return i.location.replace(/\\/*$/,\"/\")+(r||i.main||i.name);if(i===!1)return\"\";var s=n.lastIndexOf(\"/\");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!=\"undefined\"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:\"error\",data:{message:e,data:i.data,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf(\"!\")!==-1){var r=n.split(\"!\");return e.normalizeModule(t,r[0])+\"!\"+e.normalizeModule(t,r[1])}if(n.charAt(0)==\".\"){var i=t.split(\"/\").slice(0,-1).join(\"/\");n=(i?i+\"/\":\"\")+n;while(n.indexOf(\".\")!==-1&&s!=n){var s=n;n=n.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log(\"unable to load \"+i);var o=t(i,e.require.tlns);return o.slice(-3)!=\".js\"&&(o+=\".js\"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!=\"string\"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!=\"function\"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=[\"require\",\"exports\",\"module\"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case\"require\":return i;case\"exports\":return e.exports;case\"module\":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},require.tlns={},e.initBaseUrls=function(t){for(var n in t)require.tlns[n]=t[n]},e.initSender=function(){var n=e.require(\"ace/lib/event_emitter\").EventEmitter,r=e.require(\"ace/lib/oop\"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:\"call\",id:t,data:e})},this.emit=function(e,t){postMessage({type:\"event\",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error(\"Unknown command:\"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),require(\"ace/lib/es5-shim\"),r=e.sender=e.initSender();var s=require(i.module)[i.classname];n=e.main=new s(r)}}})(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e==\"object\"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e==\"object\"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e,t){throw console.log(\"Invalid Delta:\",e),\"Invalid Delta: \"+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!=\"insert\"&&t.action!=\"remove\"&&r(t,\"delta.action must be 'insert' or 'remove'\"),t.lines instanceof Array||r(t,\"delta.lines must be an Array\"),(!t.start||!t.end)&&r(t,\"delta.start/end must be an present\");var n=t.start;i(e,t.start)||r(t,\"delta.start must be contained in document\");var s=t.end;t.action==\"remove\"&&!i(e,s)&&r(t,\"delta.end must contained in document for 'remove' actions\");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,\"delta.range must match delta lines\")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||\"\";switch(t.action){case\"insert\":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case\"remove\":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!=\"object\"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?\"unshift\":\"push\"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n==\"undefined\"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action==\"insert\",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal(\"change\",{old:i,value:r})},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./apply_delta\").applyDelta,s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=function(e){this.$lines=[\"\"],e.length===0?this.$lines=[\"\"]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},\"aaa\".split(/a/).length===0?this.$split=function(e){return e.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:this.$split=function(e){return e.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=t?t[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal(\"changeNewLineMode\")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==\"\\r\\n\"||e==\"\\r\"||e==\"\\n\"},this.getLine=function(e){return this.$lines[e]||\"\"},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||\"\").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(e,[\"\",\"\"])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:\"insert\",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([\"\"]),n=0):(t=[\"\"].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:\"insert\",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:\"remove\",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:\"remove\",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:\"remove\",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action==\"insert\";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal(\"change\",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(\"\"),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action==\"insert\"?\"remove\":\"insert\",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split(\"\").reverse().join(\"\")},t.stringRepeat=function(e,t){var n=\"\";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\\s\\s*/,i=/\\s\\s*$/;t.stringTrimLeft=function(e){return e.replace(r,\"\")},t.stringTrimRight=function(e){return e.replace(i,\"\")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]==\"object\"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!=\"object\"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}if(Object.prototype.toString.call(e)!==\"[object Object]\")return e;t={};for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},t.escapeHTML=function(e){return e.replace(/&/g,\"&#38;\").replace(/\"/g,\"&#34;\").replace(/'/g,\"&#39;\").replace(/</g,\"&#60;\")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=e(\"../document\").Document,s=e(\"../lib/lang\"),o=t.Mirror=function(e){this.sender=e;var t=this.doc=new i(\"\"),n=this.deferredUpdate=s.delayedCall(this.onUpdate.bind(this)),r=this;e.on(\"change\",function(e){var i=e.data;if(i[0].start)t.applyDeltas(i);else for(var s=0;s<i.length;s+=2){if(Array.isArray(i[s+1]))var o={action:\"insert\",start:i[s],lines:i[s+1]};else var o={action:\"remove\",start:i[s],end:i[s+1]};t.applyDelta(o,!0)}if(r.$timeout)return n.schedule(r.$timeout);r.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),ace.define(\"ace/mode/coffee/coffee\",[\"require\",\"exports\",\"module\"],function(require,exports,module){function define(e){module.exports=e()}define.amd={},function(root){var CoffeeScript=function(){function _dereq_(e){return _dereq_[e]}return _dereq_[\"./helpers\"]=function(){var e={},t={exports:e};return function(){var t,n,r,i,s,o;e.starts=function(e,t,n){return t===e.substr(n,t.length)},e.ends=function(e,t,n){var r;return r=t.length,t===e.substr(e.length-r-(n||0),r)},e.repeat=s=function(e,t){var n;for(n=\"\";t>0;)1&t&&(n+=e),t>>>=1,e+=e;return n},e.compact=function(e){var t,n,r,i;for(i=[],t=0,r=e.length;r>t;t++)n=e[t],n&&i.push(n);return i},e.count=function(e,t){var n,r;if(n=r=0,!t.length)return 1/0;for(;r=1+e.indexOf(t,r);)n++;return n},e.merge=function(e,t){return n(n({},e),t)},n=e.extend=function(e,t){var n,r;for(n in t)r=t[n],e[n]=r;return e},e.flatten=r=function(e){var t,n,i,s;for(n=[],i=0,s=e.length;s>i;i++)t=e[i],t instanceof Array?n=n.concat(r(t)):n.push(t);return n},e.del=function(e,t){var n;return n=e[t],delete e[t],n},e.some=null!=(i=Array.prototype.some)?i:function(e){var t,n,r;for(n=0,r=this.length;r>n;n++)if(t=this[n],e(t))return!0;return!1},e.invertLiterate=function(e){var t,n,r;return r=!0,n=function(){var n,i,s,o;for(s=e.split(\"\\n\"),o=[],n=0,i=s.length;i>n;n++)t=s[n],r&&/^([ ]{4}|[ ]{0,3}\\t)/.test(t)?o.push(t):(r=/^\\s*$/.test(t))?o.push(t):o.push(\"# \"+t);return o}(),n.join(\"\\n\")},t=function(e,t){return t?{first_line:e.first_line,first_column:e.first_column,last_line:t.last_line,last_column:t.last_column}:e},e.addLocationDataFn=function(e,n){return function(r){return\"object\"==typeof r&&r.updateLocationDataIfMissing&&r.updateLocationDataIfMissing(t(e,n)),r}},e.locationDataToString=function(e){var t;return\"2\"in e&&\"first_line\"in e[2]?t=e[2]:\"first_line\"in e&&(t=e),t?t.first_line+1+\":\"+(t.first_column+1)+\"-\"+(t.last_line+1+\":\"+(t.last_column+1)):\"No location data\"},e.baseFileName=function(e,t,n){var r,i;return null==t&&(t=!1),null==n&&(n=!1),i=n?/\\\\|\\//:/\\//,r=e.split(i),e=r[r.length-1],t&&e.indexOf(\".\")>=0?(r=e.split(\".\"),r.pop(),\"coffee\"===r[r.length-1]&&r.length>1&&r.pop(),r.join(\".\")):e},e.isCoffee=function(e){return/\\.((lit)?coffee|coffee\\.md)$/.test(e)},e.isLiterate=function(e){return/\\.(litcoffee|coffee\\.md)$/.test(e)},e.throwSyntaxError=function(e,t){var n;throw n=new SyntaxError(e),n.location=t,n.toString=o,n.stack=\"\"+n,n},e.updateSyntaxError=function(e,t,n){return e.toString===o&&(e.code||(e.code=t),e.filename||(e.filename=n),e.stack=\"\"+e),e},o=function(){var e,t,n,r,i,o,u,a,f,l,c,h,p,d,v;return this.code&&this.location?(c=this.location,u=c.first_line,o=c.first_column,f=c.last_line,a=c.last_column,null==f&&(f=u),null==a&&(a=o),i=this.filename||\"[stdin]\",e=this.code.split(\"\\n\")[u],v=o,r=u===f?a+1:e.length,l=e.slice(0,v).replace(/[^\\s]/g,\" \")+s(\"^\",r-v),\"undefined\"!=typeof process&&null!==process&&(n=(null!=(h=process.stdout)?h.isTTY:void 0)&&(null!=(p=process.env)?!p.NODE_DISABLE_COLORS:!void 0)),(null!=(d=this.colorful)?d:n)&&(t=function(e){return\"\u001b[1;31m\"+e+\"\u001b[0m\"},e=e.slice(0,v)+t(e.slice(v,r))+e.slice(r),l=t(l)),i+\":\"+(u+1)+\":\"+(o+1)+\": error: \"+this.message+\"\\n\"+e+\"\\n\"+l):Error.prototype.toString.call(this)},e.nameWhitespaceCharacter=function(e){switch(e){case\" \":return\"space\";case\"\\n\":return\"newline\";case\"\\r\":return\"carriage return\";case\"\t\":return\"tab\";default:return e}}}.call(this),t.exports}(),_dereq_[\"./rewriter\"]=function(){var e={},t={exports:e};return function(){var t,n,r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y,b,w=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},E=[].slice;for(d=function(e,t,n){var r;return r=[e,t],r.generated=!0,n&&(r.origin=n),r},e.Rewriter=function(){function e(){}return e.prototype.rewrite=function(e){return this.tokens=e,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addLocationDataToGeneratedTokens(),this.tokens},e.prototype.scanTokens=function(e){var t,n,r;for(r=this.tokens,t=0;n=r[t];)t+=e.call(this,n,t,r);return!0},e.prototype.detectEnd=function(e,t,n){var r,o,u,a,f;for(f=this.tokens,r=0;a=f[e];){if(0===r&&t.call(this,a,e))return n.call(this,a,e);if(!a||0>r)return n.call(this,a,e-1);o=a[0],w.call(s,o)>=0?r+=1:(u=a[0],w.call(i,u)>=0&&(r-=1)),e+=1}return e-1},e.prototype.removeLeadingNewlines=function(){var e,t,n,r,i;for(r=this.tokens,e=t=0,n=r.length;n>t&&(i=r[e][0],\"TERMINATOR\"===i);e=++t);return e?this.tokens.splice(0,e):void 0},e.prototype.closeOpenCalls=function(){var e,t;return t=function(e,t){var n;return\")\"===(n=e[0])||\"CALL_END\"===n||\"OUTDENT\"===e[0]&&\")\"===this.tag(t-1)},e=function(e,t){return this.tokens[\"OUTDENT\"===e[0]?t-1:t][0]=\"CALL_END\"},this.scanTokens(function(n,r){return\"CALL_START\"===n[0]&&this.detectEnd(r+1,t,e),1})},e.prototype.closeOpenIndexes=function(){var e,t;return t=function(e){var t;return\"]\"===(t=e[0])||\"INDEX_END\"===t},e=function(e){return e[0]=\"INDEX_END\"},this.scanTokens(function(n,r){return\"INDEX_START\"===n[0]&&this.detectEnd(r+1,t,e),1})},e.prototype.indexOfTag=function(){var e,t,n,r,i,s,o;for(t=arguments[0],i=arguments.length>=2?E.call(arguments,1):[],e=0,n=r=0,s=i.length;s>=0?s>r:r>s;n=s>=0?++r:--r){for(;\"HERECOMMENT\"===this.tag(t+n+e);)e+=2;if(null!=i[n]&&(\"string\"==typeof i[n]&&(i[n]=[i[n]]),o=this.tag(t+n+e),0>w.call(i[n],o)))return-1}return t+n+e-1},e.prototype.looksObjectish=function(e){var t,n;return this.indexOfTag(e,\"@\",null,\":\")>-1||this.indexOfTag(e,null,\":\")>-1?!0:(n=this.indexOfTag(e,s),n>-1&&(t=null,this.detectEnd(n+1,function(e){var t;return t=e[0],w.call(i,t)>=0},function(e,n){return t=n}),\":\"===this.tag(t+1))?!0:!1)},e.prototype.findTagsBackwards=function(e,t){var n,r,o,u,a,f,l;for(n=[];e>=0&&(n.length||(u=this.tag(e),0>w.call(t,u)&&(a=this.tag(e),0>w.call(s,a)||this.tokens[e].generated)&&(f=this.tag(e),0>w.call(c,f))));)r=this.tag(e),w.call(i,r)>=0&&n.push(this.tag(e)),o=this.tag(e),w.call(s,o)>=0&&n.length&&n.pop(),e-=1;return l=this.tag(e),w.call(t,l)>=0},e.prototype.addImplicitBracesAndParens=function(){var e,t;return e=[],t=null,this.scanTokens(function(r,l,h){var p,v,m,g,y,b,E,S,x,T,N,C,L,A,O,M,_,D,P,H,B,j,F,I,q,R,U,z;if(z=r[0],N=(C=l>0?h[l-1]:[])[0],x=(h.length-1>l?h[l+1]:[])[0],F=function(){return e[e.length-1]},I=l,m=function(e){return l-I+e},g=function(){var e,t;return null!=(e=F())?null!=(t=e[2])?t.ours:void 0:void 0},y=function(){var e;return g()&&\"(\"===(null!=(e=F())?e[0]:void 0)},E=function(){var e;return g()&&\"{\"===(null!=(e=F())?e[0]:void 0)},b=function(){var e;return g&&\"CONTROL\"===(null!=(e=F())?e[0]:void 0)},q=function(t){var n;return n=null!=t?t:l,e.push([\"(\",n,{ours:!0}]),h.splice(n,0,d(\"CALL_START\",\"(\")),null==t?l+=1:void 0},p=function(){return e.pop(),h.splice(l,0,d(\"CALL_END\",\")\",[\"\",\"end of input\",r[2]])),l+=1},R=function(t,n){var i,s;return null==n&&(n=!0),i=null!=t?t:l,e.push([\"{\",i,{sameLine:!0,startsLine:n,ours:!0}]),s=new String(\"{\"),s.generated=!0,h.splice(i,0,d(\"{\",s,r)),null==t?l+=1:void 0},v=function(t){return t=null!=t?t:l,e.pop(),h.splice(t,0,d(\"}\",\"}\",r)),l+=1},!y()||\"IF\"!==z&&\"TRY\"!==z&&\"FINALLY\"!==z&&\"CATCH\"!==z&&\"CLASS\"!==z&&\"SWITCH\"!==z){if(\"INDENT\"===z&&g()){if(\"=>\"!==N&&\"->\"!==N&&\"[\"!==N&&\"(\"!==N&&\",\"!==N&&\"{\"!==N&&\"TRY\"!==N&&\"ELSE\"!==N&&\"=\"!==N)for(;y();)p();return b()&&e.pop(),e.push([z,l]),m(1)}if(w.call(s,z)>=0)return e.push([z,l]),m(1);if(w.call(i,z)>=0){for(;g();)y()?p():E()?v():e.pop();t=e.pop()}if((w.call(a,z)>=0&&r.spaced||\"?\"===z&&l>0&&!h[l-1].spaced)&&(w.call(o,x)>=0||w.call(f,x)>=0&&(null!=(L=h[l+1])?!L.spaced:!void 0)&&(null!=(A=h[l+1])?!A.newLine:!void 0)))return\"?\"===z&&(z=r[0]=\"FUNC_EXIST\"),q(l+1),m(2);if(w.call(a,z)>=0&&this.indexOfTag(l+1,\"INDENT\")>-1&&this.looksObjectish(l+2)&&!this.findTagsBackwards(l,[\"CLASS\",\"EXTENDS\",\"IF\",\"CATCH\",\"SWITCH\",\"LEADING_WHEN\",\"FOR\",\"WHILE\",\"UNTIL\"]))return q(l+1),e.push([\"INDENT\",l+2]),m(3);if(\":\"===z){for(P=function(){var e;switch(!1){case e=this.tag(l-1),0>w.call(i,e):return t[1];case\"@\"!==this.tag(l-2):return l-2;default:return l-1}}.call(this);\"HERECOMMENT\"===this.tag(P-2);)P-=2;return this.insideForDeclaration=\"FOR\"===x,U=0===P||(O=this.tag(P-1),w.call(c,O)>=0)||h[P-1].newLine,F()&&(M=F(),j=M[0],B=M[1],(\"{\"===j||\"INDENT\"===j&&\"{\"===this.tag(B-1))&&(U||\",\"===this.tag(P-1)||\"{\"===this.tag(P-1)))?m(1):(R(P,!!U),m(2))}if(E()&&w.call(c,z)>=0&&(F()[2].sameLine=!1),S=\"OUTDENT\"===N||C.newLine,w.call(u,z)>=0||w.call(n,z)>=0&&S)for(;g();)if(_=F(),j=_[0],B=_[1],D=_[2],H=D.sameLine,U=D.startsLine,y()&&\",\"!==N)p();else if(E()&&!this.insideForDeclaration&&H&&\"TERMINATOR\"!==z&&\":\"!==N)v();else{if(!E()||\"TERMINATOR\"!==z||\",\"===N||U&&this.looksObjectish(l+1))break;if(\"HERECOMMENT\"===x)return m(1);v()}if(!(\",\"!==z||this.looksObjectish(l+1)||!E()||this.insideForDeclaration||\"TERMINATOR\"===x&&this.looksObjectish(l+2)))for(T=\"OUTDENT\"===x?1:0;E();)v(l+T);return m(1)}return e.push([\"CONTROL\",l,{ours:!0}]),m(1)})},e.prototype.addLocationDataToGeneratedTokens=function(){return this.scanTokens(function(e,t,n){var r,i,s,o,u,a;return e[2]?1:e.generated||e.explicit?(\"{\"===e[0]&&(s=null!=(u=n[t+1])?u[2]:void 0)?(i=s.first_line,r=s.first_column):(o=null!=(a=n[t-1])?a[2]:void 0)?(i=o.last_line,r=o.last_column):i=r=0,e[2]={first_line:i,first_column:r,last_line:i,last_column:r},1):1})},e.prototype.normalizeLines=function(){var e,t,i,s,o;return o=i=s=null,t=function(e,t){var i,s,u,a;return\";\"!==e[1]&&(i=e[0],w.call(h,i)>=0)&&!(\"TERMINATOR\"===e[0]&&(s=this.tag(t+1),w.call(r,s)>=0))&&(\"ELSE\"!==e[0]||\"THEN\"===o)&&(\"CATCH\"!==(u=e[0])&&\"FINALLY\"!==u||\"->\"!==o&&\"=>\"!==o)||(a=e[0],w.call(n,a)>=0&&this.tokens[t-1].newLine)},e=function(e,t){return this.tokens.splice(\",\"===this.tag(t-1)?t-1:t,0,s)},this.scanTokens(function(n,u,a){var f,l,c,h,d,v;if(v=n[0],\"TERMINATOR\"===v){if(\"ELSE\"===this.tag(u+1)&&\"OUTDENT\"!==this.tag(u-1))return a.splice.apply(a,[u,1].concat(E.call(this.indentation()))),1;if(c=this.tag(u+1),w.call(r,c)>=0)return a.splice(u,1),0}if(\"CATCH\"===v)for(f=l=1;2>=l;f=++l)if(\"OUTDENT\"===(h=this.tag(u+f))||\"TERMINATOR\"===h||\"FINALLY\"===h)return a.splice.apply(a,[u+f,0].concat(E.call(this.indentation()))),2+f;return w.call(p,v)>=0&&\"INDENT\"!==this.tag(u+1)&&(\"ELSE\"!==v||\"IF\"!==this.tag(u+1))?(o=v,d=this.indentation(a[u]),i=d[0],s=d[1],\"THEN\"===o&&(i.fromThen=!0),a.splice(u+1,0,i),this.detectEnd(u+2,t,e),\"THEN\"===v&&a.splice(u,1),1):1})},e.prototype.tagPostfixConditionals=function(){var e,t,n;return n=null,t=function(e,t){var n,r;return r=e[0],n=this.tokens[t-1][0],\"TERMINATOR\"===r||\"INDENT\"===r&&0>w.call(p,n)},e=function(e){return\"INDENT\"!==e[0]||e.generated&&!e.fromThen?n[0]=\"POST_\"+n[0]:void 0},this.scanTokens(function(r,i){return\"IF\"!==r[0]?1:(n=r,this.detectEnd(i+1,t,e),1)})},e.prototype.indentation=function(e){var t,n;return t=[\"INDENT\",2],n=[\"OUTDENT\",2],e?(t.generated=n.generated=!0,t.origin=n.origin=e):t.explicit=n.explicit=!0,[t,n]},e.prototype.generate=d,e.prototype.tag=function(e){var t;return null!=(t=this.tokens[e])?t[0]:void 0},e}(),t=[[\"(\",\")\"],[\"[\",\"]\"],[\"{\",\"}\"],[\"INDENT\",\"OUTDENT\"],[\"CALL_START\",\"CALL_END\"],[\"PARAM_START\",\"PARAM_END\"],[\"INDEX_START\",\"INDEX_END\"],[\"STRING_START\",\"STRING_END\"],[\"REGEX_START\",\"REGEX_END\"]],e.INVERSES=l={},s=[],i=[],v=0,g=t.length;g>v;v++)y=t[v],m=y[0],b=y[1],s.push(l[b]=m),i.push(l[m]=b);r=[\"CATCH\",\"THEN\",\"ELSE\",\"FINALLY\"].concat(i),a=[\"IDENTIFIER\",\"SUPER\",\")\",\"CALL_END\",\"]\",\"INDEX_END\",\"@\",\"THIS\"],o=[\"IDENTIFIER\",\"NUMBER\",\"STRING\",\"STRING_START\",\"JS\",\"REGEX\",\"REGEX_START\",\"NEW\",\"PARAM_START\",\"CLASS\",\"IF\",\"TRY\",\"SWITCH\",\"THIS\",\"BOOL\",\"NULL\",\"UNDEFINED\",\"UNARY\",\"YIELD\",\"UNARY_MATH\",\"SUPER\",\"THROW\",\"@\",\"->\",\"=>\",\"[\",\"(\",\"{\",\"--\",\"++\"],f=[\"+\",\"-\"],u=[\"POST_IF\",\"FOR\",\"WHILE\",\"UNTIL\",\"WHEN\",\"BY\",\"LOOP\",\"TERMINATOR\"],p=[\"ELSE\",\"->\",\"=>\",\"TRY\",\"FINALLY\",\"THEN\"],h=[\"TERMINATOR\",\"CATCH\",\"FINALLY\",\"ELSE\",\"OUTDENT\",\"LEADING_WHEN\"],c=[\"TERMINATOR\",\"INDENT\",\"OUTDENT\"],n=[\".\",\"?.\",\"::\",\"?::\"]}.call(this),t.exports}(),_dereq_[\"./lexer\"]=function(){var e={},t={exports:e};return function(){var t,n,r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y,b,w,E,S,x,T,N,C,k,L,A,O,M,_,D,P,H,B,j,F,I,q,R,U,z,W,X,V,$,J,K,Q,G,Y,Z,et,tt,nt,rt,it,st,ot,ut,at,ft,lt,ct=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};ot=_dereq_(\"./rewriter\"),R=ot.Rewriter,E=ot.INVERSES,ut=_dereq_(\"./helpers\"),nt=ut.count,ft=ut.starts,tt=ut.compact,at=ut.repeat,rt=ut.invertLiterate,st=ut.locationDataToString,lt=ut.throwSyntaxError,e.Lexer=A=function(){function e(){}return e.prototype.tokenize=function(e,t){var n,r,i,s;for(null==t&&(t={}),this.literate=t.literate,this.indent=0,this.baseIndent=0,this.indebt=0,this.outdebt=0,this.indents=[],this.ends=[],this.tokens=[],this.chunkLine=t.line||0,this.chunkColumn=t.column||0,e=this.clean(e),i=0;this.chunk=e.slice(i);)if(n=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken(),s=this.getLineAndColumnFromChunk(n),this.chunkLine=s[0],this.chunkColumn=s[1],i+=n,t.untilBalanced&&0===this.ends.length)return{tokens:this.tokens,index:i};return this.closeIndentation(),(r=this.ends.pop())&&this.error(\"missing \"+r.tag,r.origin[2]),t.rewrite===!1?this.tokens:(new R).rewrite(this.tokens)},e.prototype.clean=function(e){return e.charCodeAt(0)===t&&(e=e.slice(1)),e=e.replace(/\\r/g,\"\").replace(Q,\"\"),et.test(e)&&(e=\"\\n\"+e,this.chunkLine--),this.literate&&(e=rt(e)),e},e.prototype.identifierToken=function(){var e,t,n,r,i,a,f,l,c,h,p,d,v,m,y,b;return(l=g.exec(this.chunk))?(f=l[0],i=l[1],t=l[2],a=i.length,c=void 0,\"own\"===i&&\"FOR\"===this.tag()?(this.token(\"OWN\",i),i.length):\"from\"===i&&\"YIELD\"===this.tag()?(this.token(\"FROM\",i),i.length):(p=this.tokens,h=p[p.length-1],r=t||null!=h&&(\".\"===(d=h[0])||\"?.\"===d||\"::\"===d||\"?::\"===d||!h.spaced&&\"@\"===h[0]),y=\"IDENTIFIER\",!r&&(ct.call(T,i)>=0||ct.call(u,i)>=0)&&(y=i.toUpperCase(),\"WHEN\"===y&&(v=this.tag(),ct.call(C,v)>=0)?y=\"LEADING_WHEN\":\"FOR\"===y?this.seenFor=!0:\"UNLESS\"===y?y=\"IF\":ct.call(G,y)>=0?y=\"UNARY\":ct.call(I,y)>=0&&(\"INSTANCEOF\"!==y&&this.seenFor?(y=\"FOR\"+y,this.seenFor=!1):(y=\"RELATION\",\"!\"===this.value()&&(c=this.tokens.pop(),i=\"!\"+i)))),ct.call(x,i)>=0&&(r?(y=\"IDENTIFIER\",i=new String(i),i.reserved=!0):ct.call(q,i)>=0&&this.error(\"reserved word '\"+i+\"'\",{length:i.length})),r||(ct.call(s,i)>=0&&(e=i,i=o[i]),y=function(){switch(i){case\"!\":return\"UNARY\";case\"==\":case\"!=\":return\"COMPARE\";case\"&&\":case\"||\":return\"LOGIC\";case\"true\":case\"false\":return\"BOOL\";case\"break\":case\"continue\":return\"STATEMENT\";default:return y}}()),b=this.token(y,i,0,a),e&&(b.origin=[y,e,b[2]]),b.variable=!r,c&&(m=[c[2].first_line,c[2].first_column],b[2].first_line=m[0],b[2].first_column=m[1]),t&&(n=f.lastIndexOf(\":\"),this.token(\":\",\":\",n,t.length)),f.length)):0},e.prototype.numberToken=function(){var e,t,n,r,i;return(n=D.exec(this.chunk))?(r=n[0],t=r.length,/^0[BOX]/.test(r)?this.error(\"radix prefix in '\"+r+\"' must be lowercase\",{offset:1}):/E/.test(r)&&!/^0x/.test(r)?this.error(\"exponential notation in '\"+r+\"' must be indicated with a lowercase 'e'\",{offset:r.indexOf(\"E\")}):/^0\\d*[89]/.test(r)?this.error(\"decimal literal '\"+r+\"' must not be prefixed with '0'\",{length:t}):/^0\\d+/.test(r)&&this.error(\"octal literal '\"+r+\"' must be prefixed with '0o'\",{length:t}),(i=/^0o([0-7]+)/.exec(r))&&(r=\"0x\"+parseInt(i[1],8).toString(16)),(e=/^0b([01]+)/.exec(r))&&(r=\"0x\"+parseInt(e[1],2).toString(16)),this.token(\"NUMBER\",r,0,t),t):0},e.prototype.stringToken=function(){var e,t,n,r,i,s,o,u,a,f,l,c,v,m,g,y;if(l=(J.exec(this.chunk)||[])[0],!l)return 0;if(m=function(){switch(l){case\"'\":return $;case'\"':return X;case\"'''\":return d;case'\"\"\"':return h}}(),s=3===l.length,c=this.matchWithInterpolations(m,l),y=c.tokens,i=c.index,e=y.length-1,n=l.charAt(0),s){for(u=null,r=function(){var e,t,n;for(n=[],o=e=0,t=y.length;t>e;o=++e)g=y[o],\"NEOSTRING\"===g[0]&&n.push(g[1]);return n}().join(\"#{}\");f=p.exec(r);)t=f[1],(null===u||(v=t.length)>0&&u.length>v)&&(u=t);u&&(a=RegExp(\"^\"+u,\"gm\")),this.mergeInterpolationTokens(y,{delimiter:n},function(t){return function(n,r){return n=t.formatString(n),0===r&&(n=n.replace(N,\"\")),r===e&&(n=n.replace(K,\"\")),a&&(n=n.replace(a,\"\")),n}}(this))}else this.mergeInterpolationTokens(y,{delimiter:n},function(t){return function(n,r){return n=t.formatString(n),n=n.replace(z,function(t,i){return 0===r&&0===i||r===e&&i+t.length===n.length?\"\":\" \"})}}(this));return i},e.prototype.commentToken=function(){var e,t,n;return(n=this.chunk.match(a))?(e=n[0],t=n[1],t&&((n=c.exec(e))&&this.error(\"block comments cannot contain \"+n[0],{offset:n.index,length:n[0].length}),t.indexOf(\"\\n\")>=0&&(t=t.replace(RegExp(\"\\\\n\"+at(\" \",this.indent),\"g\"),\"\\n\")),this.token(\"HERECOMMENT\",t,0,e.length)),e.length):0},e.prototype.jsToken=function(){var e,t;return\"`\"===this.chunk.charAt(0)&&(e=S.exec(this.chunk))?(this.token(\"JS\",(t=e[0]).slice(1,-1),0,t.length),t.length):0},e.prototype.regexToken=function(){var e,t,n,i,s,o,u,a,f,l,c,h,p;switch(!1){case!(o=F.exec(this.chunk)):this.error(\"regular expressions cannot begin with \"+o[2],{offset:o.index+o[1].length});break;case!(o=this.matchWithInterpolations(v,\"///\")):p=o.tokens,s=o.index;break;case!(o=B.exec(this.chunk)):if(h=o[0],e=o[1],t=o[2],this.validateEscapes(e,{isRegex:!0,offsetInChunk:1}),s=h.length,f=this.tokens,a=f[f.length-1],a)if(a.spaced&&(l=a[0],ct.call(r,l)>=0)){if(!t||H.test(h))return 0}else if(c=a[0],ct.call(_,c)>=0)return 0;t||this.error(\"missing / (unclosed regex)\");break;default:return 0}switch(i=j.exec(this.chunk.slice(s))[0],n=s+i.length,u=this.makeToken(\"REGEX\",null,0,n),!1){case!!Z.test(i):this.error(\"invalid regular expression flags \"+i,{offset:s,length:i.length});break;case!h&&1!==p.length:null==e&&(e=this.formatHeregex(p[0][1])),this.token(\"REGEX\",\"\"+this.makeDelimitedLiteral(e,{delimiter:\"/\"})+i,0,n,u);break;default:this.token(\"REGEX_START\",\"(\",0,0,u),this.token(\"IDENTIFIER\",\"RegExp\",0,0),this.token(\"CALL_START\",\"(\",0,0),this.mergeInterpolationTokens(p,{delimiter:'\"',\"double\":!0},this.formatHeregex),i&&(this.token(\",\",\",\",s,0),this.token(\"STRING\",'\"'+i+'\"',s,i.length)),this.token(\")\",\")\",n,0),this.token(\"REGEX_END\",\")\",n,0)}return n},e.prototype.lineToken=function(){var e,t,n,r,i;if(!(n=M.exec(this.chunk)))return 0;if(t=n[0],this.seenFor=!1,i=t.length-1-t.lastIndexOf(\"\\n\"),r=this.unfinished(),i-this.indebt===this.indent)return r?this.suppressNewlines():this.newlineToken(0),t.length;if(i>this.indent){if(r)return this.indebt=i-this.indent,this.suppressNewlines(),t.length;if(!this.tokens.length)return this.baseIndent=this.indent=i,t.length;e=i-this.indent+this.outdebt,this.token(\"INDENT\",e,t.length-i,i),this.indents.push(e),this.ends.push({tag:\"OUTDENT\"}),this.outdebt=this.indebt=0,this.indent=i}else this.baseIndent>i?this.error(\"missing indentation\",{offset:t.length}):(this.indebt=0,this.outdentToken(this.indent-i,r,t.length));return t.length},e.prototype.outdentToken=function(e,t,n){var r,i,s,o;for(r=this.indent-e;e>0;)s=this.indents[this.indents.length-1],s?s===this.outdebt?(e-=this.outdebt,this.outdebt=0):this.outdebt>s?(this.outdebt-=s,e-=s):(i=this.indents.pop()+this.outdebt,n&&(o=this.chunk[n],ct.call(y,o)>=0)&&(r-=i-e,e=i),this.outdebt=0,this.pair(\"OUTDENT\"),this.token(\"OUTDENT\",e,0,n),e-=i):e=0;for(i&&(this.outdebt-=e);\";\"===this.value();)this.tokens.pop();return\"TERMINATOR\"===this.tag()||t||this.token(\"TERMINATOR\",\"\\n\",n,0),this.indent=r,this},e.prototype.whitespaceToken=function(){var e,t,n,r;return(e=et.exec(this.chunk))||(t=\"\\n\"===this.chunk.charAt(0))?(r=this.tokens,n=r[r.length-1],n&&(n[e?\"spaced\":\"newLine\"]=!0),e?e[0].length:0):0},e.prototype.newlineToken=function(e){for(;\";\"===this.value();)this.tokens.pop();return\"TERMINATOR\"!==this.tag()&&this.token(\"TERMINATOR\",\"\\n\",e,0),this},e.prototype.suppressNewlines=function(){return\"\\\\\"===this.value()&&this.tokens.pop(),this},e.prototype.literalToken=function(){var e,t,n,s,o,u,a,c,h,p;if((e=P.exec(this.chunk))?(p=e[0],i.test(p)&&this.tagParameters()):p=this.chunk.charAt(0),c=p,n=this.tokens,t=n[n.length-1],\"=\"===p&&t&&(!t[1].reserved&&(s=t[1],ct.call(x,s)>=0)&&(t.origin&&(t=t.origin),this.error(\"reserved word '\"+t[1]+\"' can't be assigned\",t[2])),\"||\"===(o=t[1])||\"&&\"===o))return t[0]=\"COMPOUND_ASSIGN\",t[1]+=\"=\",p.length;if(\";\"===p)this.seenFor=!1,c=\"TERMINATOR\";else if(ct.call(O,p)>=0)c=\"MATH\";else if(ct.call(f,p)>=0)c=\"COMPARE\";else if(ct.call(l,p)>=0)c=\"COMPOUND_ASSIGN\";else if(ct.call(G,p)>=0)c=\"UNARY\";else if(ct.call(Y,p)>=0)c=\"UNARY_MATH\";else if(ct.call(U,p)>=0)c=\"SHIFT\";else if(ct.call(L,p)>=0||\"?\"===p&&(null!=t?t.spaced:void 0))c=\"LOGIC\";else if(t&&!t.spaced)if(\"(\"===p&&(u=t[0],ct.call(r,u)>=0))\"?\"===t[0]&&(t[0]=\"FUNC_EXIST\"),c=\"CALL_START\";else if(\"[\"===p&&(a=t[0],ct.call(b,a)>=0))switch(c=\"INDEX_START\",t[0]){case\"?\":t[0]=\"INDEX_SOAK\"}switch(h=this.makeToken(c,p),p){case\"(\":case\"{\":case\"[\":this.ends.push({tag:E[p],origin:h});break;case\")\":case\"}\":case\"]\":this.pair(p)}return this.tokens.push(h),p.length},e.prototype.tagParameters=function(){var e,t,n,r;if(\")\"!==this.tag())return this;for(t=[],r=this.tokens,e=r.length,r[--e][0]=\"PARAM_END\";n=r[--e];)switch(n[0]){case\")\":t.push(n);break;case\"(\":case\"CALL_START\":if(!t.length)return\"(\"===n[0]?(n[0]=\"PARAM_START\",this):this;t.pop()}return this},e.prototype.closeIndentation=function(){return this.outdentToken(this.indent)},e.prototype.matchWithInterpolations=function(t,n){var r,i,s,o,u,a,f,l,c,h,p,d,v,m,g;if(g=[],l=n.length,this.chunk.slice(0,l)!==n)return null;for(v=this.chunk.slice(l);;){if(m=t.exec(v)[0],this.validateEscapes(m,{isRegex:\"/\"===n.charAt(0),offsetInChunk:l}),g.push(this.makeToken(\"NEOSTRING\",m,l)),v=v.slice(m.length),l+=m.length,\"#{\"!==v.slice(0,2))break;h=this.getLineAndColumnFromChunk(l+1),a=h[0],i=h[1],p=(new e).tokenize(v.slice(1),{line:a,column:i,untilBalanced:!0}),f=p.tokens,o=p.index,o+=1,c=f[0],r=f[f.length-1],c[0]=c[1]=\"(\",r[0]=r[1]=\")\",r.origin=[\"\",\"end of interpolation\",r[2]],\"TERMINATOR\"===(null!=(d=f[1])?d[0]:void 0)&&f.splice(1,1),g.push([\"TOKENS\",f]),v=v.slice(o),l+=o}return v.slice(0,n.length)!==n&&this.error(\"missing \"+n,{length:n.length}),s=g[0],u=g[g.length-1],s[2].first_column-=n.length,u[2].last_column+=n.length,0===u[1].length&&(u[2].last_column-=1),{tokens:g,index:l+n.length}},e.prototype.mergeInterpolationTokens=function(e,t,n){var r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y;for(e.length>1&&(c=this.token(\"STRING_START\",\"(\",0,0)),s=this.tokens.length,o=u=0,f=e.length;f>u;o=++u){switch(m=e[o],v=m[0],y=m[1],v){case\"TOKENS\":if(2===y.length)continue;l=y[0],g=y;break;case\"NEOSTRING\":if(r=n(m[1],o),0===r.length){if(0!==o)continue;i=this.tokens.length}2===o&&null!=i&&this.tokens.splice(i,2),m[0]=\"STRING\",m[1]=this.makeDelimitedLiteral(r,t),l=m,g=[m]}this.tokens.length>s&&(h=this.token(\"+\",\"+\"),h[2]={first_line:l[2].first_line,first_column:l[2].first_column,last_line:l[2].first_line,last_column:l[2].first_column}),(p=this.tokens).push.apply(p,g)}return c?(a=e[e.length-1],c.origin=[\"STRING\",null,{first_line:c[2].first_line,first_column:c[2].first_column,last_line:a[2].last_line,last_column:a[2].last_column}],d=this.token(\"STRING_END\",\")\"),d[2]={first_line:a[2].last_line,first_column:a[2].last_column,last_line:a[2].last_line,last_column:a[2].last_column}):void 0},e.prototype.pair=function(e){var t,n,r,i,s;return r=this.ends,n=r[r.length-1],e!==(s=null!=n?n.tag:void 0)?(\"OUTDENT\"!==s&&this.error(\"unmatched \"+e),i=this.indents,t=i[i.length-1],this.outdentToken(t,!0),this.pair(e)):this.ends.pop()},e.prototype.getLineAndColumnFromChunk=function(e){var t,n,r,i,s;return 0===e?[this.chunkLine,this.chunkColumn]:(s=e>=this.chunk.length?this.chunk:this.chunk.slice(0,+(e-1)+1||9e9),r=nt(s,\"\\n\"),t=this.chunkColumn,r>0?(i=s.split(\"\\n\"),n=i[i.length-1],t=n.length):t+=s.length,[this.chunkLine+r,t])},e.prototype.makeToken=function(e,t,n,r){var i,s,o,u,a;return null==n&&(n=0),null==r&&(r=t.length),s={},o=this.getLineAndColumnFromChunk(n),s.first_line=o[0],s.first_column=o[1],i=Math.max(0,r-1),u=this.getLineAndColumnFromChunk(n+i),s.last_line=u[0],s.last_column=u[1],a=[e,t,s]},e.prototype.token=function(e,t,n,r,i){var s;return s=this.makeToken(e,t,n,r),i&&(s.origin=i),this.tokens.push(s),s},e.prototype.tag=function(){var e,t;return e=this.tokens,t=e[e.length-1],null!=t?t[0]:void 0},e.prototype.value=function(){var e,t;return e=this.tokens,t=e[e.length-1],null!=t?t[1]:void 0},e.prototype.unfinished=function(){var e;return k.test(this.chunk)||\"\\\\\"===(e=this.tag())||\".\"===e||\"?.\"===e||\"?::\"===e||\"UNARY\"===e||\"MATH\"===e||\"UNARY_MATH\"===e||\"+\"===e||\"-\"===e||\"YIELD\"===e||\"**\"===e||\"SHIFT\"===e||\"RELATION\"===e||\"COMPARE\"===e||\"LOGIC\"===e||\"THROW\"===e||\"EXTENDS\"===e},e.prototype.formatString=function(e){return e.replace(V,\"$1\")},e.prototype.formatHeregex=function(e){return e.replace(m,\"$1$2\")},e.prototype.validateEscapes=function(e,t){var n,r,i,s,o,u,a,f;return null==t&&(t={}),s=w.exec(e),!s||(s[0],n=s[1],u=s[2],r=s[3],f=s[4],t.isRegex&&u&&\"0\"!==u.charAt(0))?void 0:(o=u?\"octal escape sequences are not allowed\":\"invalid escape sequence\",i=\"\\\\\"+(u||r||f),this.error(o+\" \"+i,{offset:(null!=(a=t.offsetInChunk)?a:0)+s.index+n.length,length:i.length}))},e.prototype.makeDelimitedLiteral=function(e,t){var n;return null==t&&(t={}),\"\"===e&&\"/\"===t.delimiter&&(e=\"(?:)\"),n=RegExp(\"(\\\\\\\\\\\\\\\\)|(\\\\\\\\0(?=[1-7]))|\\\\\\\\?(\"+t.delimiter+\")|\\\\\\\\?(?:(\\\\n)|(\\\\r)|(\\\\u2028)|(\\\\u2029))|(\\\\\\\\.)\",\"g\"),e=e.replace(n,function(e,n,r,i,s,o,u,a,f){switch(!1){case!n:return t.double?n+n:n;case!r:return\"\\\\x00\";case!i:return\"\\\\\"+i;case!s:return\"\\\\n\";case!o:return\"\\\\r\";case!u:return\"\\\\u2028\";case!a:return\"\\\\u2029\";case!f:return t.double?\"\\\\\"+f:f}}),\"\"+t.delimiter+e+t.delimiter},e.prototype.error=function(e,t){var n,r,i,s,o,u;return null==t&&(t={}),i=\"first_line\"in t?t:(o=this.getLineAndColumnFromChunk(null!=(s=t.offset)?s:0),r=o[0],n=o[1],o,{first_line:r,first_column:n,last_column:n+(null!=(u=t.length)?u:1)-1}),lt(e,i)},e}(),T=[\"true\",\"false\",\"null\",\"this\",\"new\",\"delete\",\"typeof\",\"in\",\"instanceof\",\"return\",\"throw\",\"break\",\"continue\",\"debugger\",\"yield\",\"if\",\"else\",\"switch\",\"for\",\"while\",\"do\",\"try\",\"catch\",\"finally\",\"class\",\"extends\",\"super\"],u=[\"undefined\",\"then\",\"unless\",\"until\",\"loop\",\"of\",\"by\",\"when\"],o={and:\"&&\",or:\"||\",is:\"==\",isnt:\"!=\",not:\"!\",yes:\"true\",no:\"false\",on:\"true\",off:\"false\"},s=function(){var e;e=[];for(it in o)e.push(it);return e}(),u=u.concat(s),q=[\"case\",\"default\",\"function\",\"var\",\"void\",\"with\",\"const\",\"let\",\"enum\",\"export\",\"import\",\"native\",\"implements\",\"interface\",\"package\",\"private\",\"protected\",\"public\",\"static\"],W=[\"arguments\",\"eval\",\"yield*\"],x=T.concat(q).concat(W),e.RESERVED=q.concat(T).concat(u).concat(W),e.STRICT_PROSCRIBED=W,t=65279,g=/^(?!\\d)((?:(?!\\s)[$\\w\\x7f-\\uffff])+)([^\\n\\S]*:(?!:))?/,D=/^0b[01]+|^0o[0-7]+|^0x[\\da-f]+|^\\d*\\.?\\d+(?:e[+-]?\\d+)?/i,P=/^(?:[-=]>|[-+*\\/%<>&|^!?=]=|>>>=?|([-+:])\\1|([&|<>*\\/%])\\2=?|\\?(\\.|::)|\\.{2,3})/,et=/^[^\\n\\S]+/,a=/^###([^#][\\s\\S]*?)(?:###[^\\n\\S]*|###$)|^(?:\\s*#(?!##[^#]).*)+/,i=/^[-=]>/,M=/^(?:\\n[^\\n\\S]*)+/,S=/^`[^\\\\`]*(?:\\\\.[^\\\\`]*)*`/,J=/^(?:'''|\"\"\"|'|\")/,$=/^(?:[^\\\\']|\\\\[\\s\\S])*/,X=/^(?:[^\\\\\"#]|\\\\[\\s\\S]|\\#(?!\\{))*/,d=/^(?:[^\\\\']|\\\\[\\s\\S]|'(?!''))*/,h=/^(?:[^\\\\\"#]|\\\\[\\s\\S]|\"(?!\"\")|\\#(?!\\{))*/,V=/((?:\\\\\\\\)+)|\\\\[^\\S\\n]*\\n\\s*/g,z=/\\s*\\n\\s*/g,p=/\\n+([^\\n\\S]*)(?=\\S)/g,B=/^\\/(?!\\/)((?:[^[\\/\\n\\\\]|\\\\[^\\n]|\\[(?:\\\\[^\\n]|[^\\]\\n\\\\])*\\])*)(\\/)?/,j=/^\\w*/,Z=/^(?!.*(.).*\\1)[imgy]*$/,v=/^(?:[^\\\\\\/#]|\\\\[\\s\\S]|\\/(?!\\/\\/)|\\#(?!\\{))*/,m=/((?:\\\\\\\\)+)|\\\\(\\s)|\\s+(?:#.*)?/g,F=/^(\\/|\\/{3}\\s*)(\\*)/,H=/^\\/=?\\s/,c=/\\*\\//,k=/^\\s*(?:,|\\??\\.(?![.\\d])|::)/,w=/((?:^|[^\\\\])(?:\\\\\\\\)*)\\\\(?:(0[0-7]|[1-7])|(x(?![\\da-fA-F]{2}).{0,2})|(u(?![\\da-fA-F]{4}).{0,4}))/,N=/^[^\\n\\S]*\\n/,K=/\\n[^\\n\\S]*$/,Q=/\\s+$/,l=[\"-=\",\"+=\",\"/=\",\"*=\",\"%=\",\"||=\",\"&&=\",\"?=\",\"<<=\",\">>=\",\">>>=\",\"&=\",\"^=\",\"|=\",\"**=\",\"//=\",\"%%=\"],G=[\"NEW\",\"TYPEOF\",\"DELETE\",\"DO\"],Y=[\"!\",\"~\"],L=[\"&&\",\"||\",\"&\",\"|\",\"^\"],U=[\"<<\",\">>\",\">>>\"],f=[\"==\",\"!=\",\"<\",\">\",\"<=\",\">=\"],O=[\"*\",\"/\",\"%\",\"//\",\"%%\"],I=[\"IN\",\"OF\",\"INSTANCEOF\"],n=[\"TRUE\",\"FALSE\"],r=[\"IDENTIFIER\",\")\",\"]\",\"?\",\"@\",\"THIS\",\"SUPER\"],b=r.concat([\"NUMBER\",\"STRING\",\"STRING_END\",\"REGEX\",\"REGEX_END\",\"BOOL\",\"NULL\",\"UNDEFINED\",\"}\",\"::\"]),_=b.concat([\"++\",\"--\"]),C=[\"INDENT\",\"OUTDENT\",\"TERMINATOR\"],y=[\")\",\"}\",\"]\"]}.call(this),t.exports}(),_dereq_[\"./parser\"]=function(){var e={},t={exports:e},n=function(){function e(){this.yy={}}var t=function(e,t,n,r){for(n=n||{},r=e.length;r--;n[e[r]]=t);return n},n=[1,20],r=[1,75],i=[1,71],s=[1,76],o=[1,77],u=[1,73],a=[1,74],f=[1,50],l=[1,52],c=[1,53],h=[1,54],p=[1,55],d=[1,45],v=[1,46],m=[1,27],g=[1,60],y=[1,61],b=[1,70],w=[1,43],E=[1,26],S=[1,58],x=[1,59],T=[1,57],N=[1,38],C=[1,44],k=[1,56],L=[1,65],A=[1,66],O=[1,67],M=[1,68],_=[1,42],D=[1,64],P=[1,29],H=[1,30],B=[1,31],j=[1,32],F=[1,33],I=[1,34],q=[1,35],R=[1,78],U=[1,6,26,34,108],z=[1,88],W=[1,81],X=[1,80],V=[1,79],$=[1,82],J=[1,83],K=[1,84],Q=[1,85],G=[1,86],Y=[1,87],Z=[1,91],et=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],tt=[1,97],nt=[1,98],rt=[1,99],it=[1,100],st=[1,102],ot=[1,103],ut=[1,96],at=[2,112],ft=[1,6,25,26,34,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],lt=[2,79],ct=[1,108],ht=[2,58],pt=[1,112],dt=[1,117],vt=[1,118],mt=[1,120],gt=[1,6,25,26,34,46,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],yt=[2,76],bt=[1,6,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],wt=[1,155],Et=[1,157],St=[1,152],xt=[1,6,25,26,34,46,55,60,63,72,73,74,75,77,79,80,84,86,90,91,92,97,99,108,110,111,112,116,117,132,135,136,139,140,141,142,143,144,145,146,147,148],Tt=[2,95],Nt=[1,6,25,26,34,49,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],Ct=[1,6,25,26,34,46,49,55,60,63,72,73,74,75,77,79,80,84,86,90,91,92,97,99,108,110,111,112,116,117,123,124,132,135,136,139,140,141,142,143,144,145,146,147,148],kt=[1,206],Lt=[1,205],At=[1,6,25,26,34,38,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],Ot=[2,56],Mt=[1,216],_t=[6,25,26,55,60],Dt=[6,25,26,46,55,60,63],Pt=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,142,144,145,146,147],Ht=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132],Bt=[72,73,74,75,77,80,90,91],jt=[1,235],Ft=[2,133],It=[1,6,25,26,34,46,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,123,124,132,135,136,141,142,143,144,145,146,147],qt=[1,244],Rt=[6,25,26,60,92,97],Ut=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,117,132],zt=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,111,117,132],Wt=[123,124],Xt=[60,123,124],Vt=[1,255],$t=[6,25,26,60,84],Jt=[6,25,26,49,60,84],Kt=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,144,145,146,147],Qt=[11,28,30,32,33,36,37,40,41,42,43,44,51,52,53,57,58,79,82,85,89,94,95,96,102,106,107,110,112,114,116,125,131,133,134,135,136,137,139,140],Gt=[2,122],Yt=[6,25,26],Zt=[2,57],en=[1,268],tn=[1,269],nn=[1,6,25,26,34,55,60,63,79,84,92,97,99,104,105,108,110,111,112,116,117,127,129,132,135,136,141,142,143,144,145,146,147],rn=[26,127,129],sn=[1,6,26,34,55,60,63,79,84,92,97,99,108,111,117,132],on=[2,71],un=[1,291],an=[1,292],fn=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,127,132,135,136,141,142,143,144,145,146,147],ln=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,112,116,117,132],cn=[1,303],hn=[1,304],pn=[6,25,26,60],dn=[1,6,25,26,34,55,60,63,79,84,92,97,99,104,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],vn=[25,60],mn={trace:function(){},yy:{},symbols_:{error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8,Return:9,Comment:10,STATEMENT:11,Value:12,Invocation:13,Code:14,Operation:15,Assign:16,If:17,Try:18,While:19,For:20,Switch:21,Class:22,Throw:23,Block:24,INDENT:25,OUTDENT:26,Identifier:27,IDENTIFIER:28,AlphaNumeric:29,NUMBER:30,String:31,STRING:32,STRING_START:33,STRING_END:34,Regex:35,REGEX:36,REGEX_START:37,REGEX_END:38,Literal:39,JS:40,DEBUGGER:41,UNDEFINED:42,NULL:43,BOOL:44,Assignable:45,\"=\":46,AssignObj:47,ObjAssignable:48,\":\":49,ThisProperty:50,RETURN:51,HERECOMMENT:52,PARAM_START:53,ParamList:54,PARAM_END:55,FuncGlyph:56,\"->\":57,\"=>\":58,OptComma:59,\",\":60,Param:61,ParamVar:62,\"...\":63,Array:64,Object:65,Splat:66,SimpleAssignable:67,Accessor:68,Parenthetical:69,Range:70,This:71,\".\":72,\"?.\":73,\"::\":74,\"?::\":75,Index:76,INDEX_START:77,IndexValue:78,INDEX_END:79,INDEX_SOAK:80,Slice:81,\"{\":82,AssignList:83,\"}\":84,CLASS:85,EXTENDS:86,OptFuncExist:87,Arguments:88,SUPER:89,FUNC_EXIST:90,CALL_START:91,CALL_END:92,ArgList:93,THIS:94,\"@\":95,\"[\":96,\"]\":97,RangeDots:98,\"..\":99,Arg:100,SimpleArgs:101,TRY:102,Catch:103,FINALLY:104,CATCH:105,THROW:106,\"(\":107,\")\":108,WhileSource:109,WHILE:110,WHEN:111,UNTIL:112,Loop:113,LOOP:114,ForBody:115,FOR:116,BY:117,ForStart:118,ForSource:119,ForVariables:120,OWN:121,ForValue:122,FORIN:123,FOROF:124,SWITCH:125,Whens:126,ELSE:127,When:128,LEADING_WHEN:129,IfBlock:130,IF:131,POST_IF:132,UNARY:133,UNARY_MATH:134,\"-\":135,\"+\":136,YIELD:137,FROM:138,\"--\":139,\"++\":140,\"?\":141,MATH:142,\"**\":143,SHIFT:144,COMPARE:145,LOGIC:146,RELATION:147,COMPOUND_ASSIGN:148,$accept:0,$end:1},terminals_:{2:\"error\",6:\"TERMINATOR\",11:\"STATEMENT\",25:\"INDENT\",26:\"OUTDENT\",28:\"IDENTIFIER\",30:\"NUMBER\",32:\"STRING\",33:\"STRING_START\",34:\"STRING_END\",36:\"REGEX\",37:\"REGEX_START\",38:\"REGEX_END\",40:\"JS\",41:\"DEBUGGER\",42:\"UNDEFINED\",43:\"NULL\",44:\"BOOL\",46:\"=\",49:\":\",51:\"RETURN\",52:\"HERECOMMENT\",53:\"PARAM_START\",55:\"PARAM_END\",57:\"->\",58:\"=>\",60:\",\",63:\"...\",72:\".\",73:\"?.\",74:\"::\",75:\"?::\",77:\"INDEX_START\",79:\"INDEX_END\",80:\"INDEX_SOAK\",82:\"{\",84:\"}\",85:\"CLASS\",86:\"EXTENDS\",89:\"SUPER\",90:\"FUNC_EXIST\",91:\"CALL_START\",92:\"CALL_END\",94:\"THIS\",95:\"@\",96:\"[\",97:\"]\",99:\"..\",102:\"TRY\",104:\"FINALLY\",105:\"CATCH\",106:\"THROW\",107:\"(\",108:\")\",110:\"WHILE\",111:\"WHEN\",112:\"UNTIL\",114:\"LOOP\",116:\"FOR\",117:\"BY\",121:\"OWN\",123:\"FORIN\",124:\"FOROF\",125:\"SWITCH\",127:\"ELSE\",129:\"LEADING_WHEN\",131:\"IF\",132:\"POST_IF\",133:\"UNARY\",134:\"UNARY_MATH\",135:\"-\",136:\"+\",137:\"YIELD\",138:\"FROM\",139:\"--\",140:\"++\",141:\"?\",142:\"MATH\",143:\"**\",144:\"SHIFT\",145:\"COMPARE\",146:\"LOGIC\",147:\"RELATION\",148:\"COMPOUND_ASSIGN\"},productions_:[0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[8,1],[8,1],[8,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[24,2],[24,3],[27,1],[29,1],[29,1],[31,1],[31,3],[35,1],[35,3],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[16,3],[16,4],[16,5],[47,1],[47,3],[47,5],[47,1],[48,1],[48,1],[48,1],[9,2],[9,1],[10,1],[14,5],[14,2],[56,1],[56,1],[59,0],[59,1],[54,0],[54,1],[54,3],[54,4],[54,6],[61,1],[61,2],[61,3],[61,1],[62,1],[62,1],[62,1],[62,1],[66,2],[67,1],[67,2],[67,2],[67,1],[45,1],[45,1],[45,1],[12,1],[12,1],[12,1],[12,1],[12,1],[68,2],[68,2],[68,2],[68,2],[68,1],[68,1],[76,3],[76,2],[78,1],[78,1],[65,4],[83,0],[83,1],[83,3],[83,4],[83,6],[22,1],[22,2],[22,3],[22,4],[22,2],[22,3],[22,4],[22,5],[13,3],[13,3],[13,1],[13,2],[87,0],[87,1],[88,2],[88,4],[71,1],[71,1],[50,2],[64,2],[64,4],[98,1],[98,1],[70,5],[81,3],[81,2],[81,2],[81,1],[93,1],[93,3],[93,4],[93,4],[93,6],[100,1],[100,1],[100,1],[101,1],[101,3],[18,2],[18,3],[18,4],[18,5],[103,3],[103,3],[103,2],[23,2],[69,3],[69,5],[109,2],[109,4],[109,2],[109,4],[19,2],[19,2],[19,2],[19,1],[113,2],[113,2],[20,2],[20,2],[20,2],[115,2],[115,4],[115,2],[118,2],[118,3],[122,1],[122,1],[122,1],[122,1],[120,1],[120,3],[119,2],[119,2],[119,4],[119,4],[119,4],[119,6],[119,6],[21,5],[21,7],[21,4],[21,6],[126,1],[126,2],[128,3],[128,4],[130,3],[130,5],[17,1],[17,3],[17,3],[17,3],[15,2],[15,2],[15,2],[15,2],[15,2],[15,2],[15,3],[15,2],[15,2],[15,2],[15,2],[15,2],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,5],[15,4],[15,3]],performAction:function(e,t,n,r,i,s,o){var u=s.length-1;switch(i){case 1:return this.$=r.addLocationDataFn(o[u],o[u])(new r.Block);case 2:return this.$=s[u];case 3:this.$=r.addLocationDataFn(o[u],o[u])(r.Block.wrap([s[u]]));break;case 4:this.$=r.addLocationDataFn(o[u-2],o[u])(s[u-2].push(s[u]));break;case 5:this.$=s[u-1];break;case 6:case 7:case 8:case 9:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 27:case 32:case 34:case 45:case 46:case 47:case 48:case 56:case 57:case 67:case 68:case 69:case 70:case 75:case 76:case 79:case 83:case 89:case 133:case 134:case 136:case 166:case 167:case 183:case 189:this.$=s[u];break;case 10:case 25:case 26:case 28:case 30:case 33:case 35:this.$=r.addLocationDataFn(o[u],o[u])(new r.Literal(s[u]));break;case 23:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Block);break;case 24:case 31:case 90:this.$=r.addLocationDataFn(o[u-2],o[u])(s[u-1]);break;case 29:case 146:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Parens(s[u-1]));break;case 36:this.$=r.addLocationDataFn(o[u],o[u])(new r.Undefined);break;case 37:this.$=r.addLocationDataFn(o[u],o[u])(new r.Null);break;case 38:this.$=r.addLocationDataFn(o[u],o[u])(new r.Bool(s[u]));break;case 39:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Assign(s[u-2],s[u]));break;case 40:this.$=r.addLocationDataFn(o[u-3],o[u])(new r.Assign(s[u-3],s[u]));break;case 41:this.$=r.addLocationDataFn(o[u-4],o[u])(new r.Assign(s[u-4],s[u-1]));break;case 42:case 72:case 77:case 78:case 80:case 81:case 82:case 168:case 169:this.$=r.addLocationDataFn(o[u],o[u])(new r.Value(s[u]));break;case 43:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Assign(r.addLocationDataFn(o[u-2])(new r.Value(s[u-2])),s[u],\"object\"));break;case 44:this.$=r.addLocationDataFn(o[u-4],o[u])(new r.Assign(r.addLocationDataFn(o[u-4])(new r.Value(s[u-4])),s[u-1],\"object\"));break;case 49:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Return(s[u]));break;case 50:this.$=r.addLocationDataFn(o[u],o[u])(new r.Return);break;case 51:this.$=r.addLocationDataFn(o[u],o[u])(new r.Comment(s[u]));break;case 52:this.$=r.addLocationDataFn(o[u-4],o[u])(new r.Code(s[u-3],s[u],s[u-1]));break;case 53:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Code([],s[u],s[u-1]));break;case 54:this.$=r.addLocationDataFn(o[u],o[u])(\"func\");break;case 55:this.$=r.addLocationDataFn(o[u],o[u])(\"boundfunc\");break;case 58:case 95:this.$=r.addLocationDataFn(o[u],o[u])([]);break;case 59:case 96:case 128:case 170:this.$=r.addLocationDataFn(o[u],o[u])([s[u]]);break;case 60:case 97:case 129:this.$=r.addLocationDataFn(o[u-2],o[u])(s[u-2].concat(s[u]));break;case 61:case 98:case 130:this.$=r.addLocationDataFn(o[u-3],o[u])(s[u-3].concat(s[u]));break;case 62:case 99:case 132:this.$=r.addLocationDataFn(o[u-5],o[u])(s[u-5].concat(s[u-2]));break;case 63:this.$=r.addLocationDataFn(o[u],o[u])(new r.Param(s[u]));break;case 64:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Param(s[u-1],null,!0));break;case 65:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Param(s[u-2],s[u]));break;case 66:case 135:this.$=r.addLocationDataFn(o[u],o[u])(new r.Expansion);break;case 71:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Splat(s[u-1]));break;case 73:this.$=r.addLocationDataFn(o[u-1],o[u])(s[u-1].add(s[u]));break;case 74:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Value(s[u-1],[].concat(s[u])));break;case 84:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Access(s[u]));break;case 85:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Access(s[u],\"soak\"));break;case 86:this.$=r.addLocationDataFn(o[u-1],o[u])([r.addLocationDataFn(o[u-1])(new r.Access(new r.Literal(\"prototype\"))),r.addLocationDataFn(o[u])(new r.Access(s[u]))]);break;case 87:this.$=r.addLocationDataFn(o[u-1],o[u])([r.addLocationDataFn(o[u-1])(new r.Access(new r.Literal(\"prototype\"),\"soak\")),r.addLocationDataFn(o[u])(new r.Access(s[u]))]);break;case 88:this.$=r.addLocationDataFn(o[u],o[u])(new r.Access(new r.Literal(\"prototype\")));break;case 91:this.$=r.addLocationDataFn(o[u-1],o[u])(r.extend(s[u],{soak:!0}));break;case 92:this.$=r.addLocationDataFn(o[u],o[u])(new r.Index(s[u]));break;case 93:this.$=r.addLocationDataFn(o[u],o[u])(new r.Slice(s[u]));break;case 94:this.$=r.addLocationDataFn(o[u-3],o[u])(new r.Obj(s[u-2],s[u-3].generated));break;case 100:this.$=r.addLocationDataFn(o[u],o[u])(new r.Class);break;case 101:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Class(null,null,s[u]));break;case 102:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Class(null,s[u]));break;case 103:this.$=r.addLocationDataFn(o[u-3],o[u])(new r.Class(null,s[u-1],s[u]));break;case 104:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Class(s[u]));break;case 105:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Class(s[u-1],null,s[u]));break;case 106:this.$=r.addLocationDataFn(o[u-3],o[u])(new r.Class(s[u-2],s[u]));break;case 107:this.$=r.addLocationDataFn(o[u-4],o[u])(new r.Class(s[u-3],s[u-1],s[u]));break;case 108:case 109:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Call(s[u-2],s[u],s[u-1]));break;case 110:this.$=r.addLocationDataFn(o[u],o[u])(new r.Call(\"super\",[new r.Splat(new r.Literal(\"arguments\"))]));break;case 111:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Call(\"super\",s[u]));break;case 112:this.$=r.addLocationDataFn(o[u],o[u])(!1);break;case 113:this.$=r.addLocationDataFn(o[u],o[u])(!0);break;case 114:this.$=r.addLocationDataFn(o[u-1],o[u])([]);break;case 115:case 131:this.$=r.addLocationDataFn(o[u-3],o[u])(s[u-2]);break;case 116:case 117:this.$=r.addLocationDataFn(o[u],o[u])(new r.Value(new r.Literal(\"this\")));break;case 118:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Value(r.addLocationDataFn(o[u-1])(new r.Literal(\"this\")),[r.addLocationDataFn(o[u])(new r.Access(s[u]))],\"this\"));break;case 119:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Arr([]));break;case 120:this.$=r.addLocationDataFn(o[u-3],o[u])(new r.Arr(s[u-2]));break;case 121:this.$=r.addLocationDataFn(o[u],o[u])(\"inclusive\");break;case 122:this.$=r.addLocationDataFn(o[u],o[u])(\"exclusive\");break;case 123:this.$=r.addLocationDataFn(o[u-4],o[u])(new r.Range(s[u-3],s[u-1],s[u-2]));break;case 124:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Range(s[u-2],s[u],s[u-1]));break;case 125:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Range(s[u-1],null,s[u]));break;case 126:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Range(null,s[u],s[u-1]));break;case 127:this.$=r.addLocationDataFn(o[u],o[u])(new r.Range(null,null,s[u]));break;case 137:this.$=r.addLocationDataFn(o[u-2],o[u])([].concat(s[u-2],s[u]));break;case 138:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Try(s[u]));break;case 139:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Try(s[u-1],s[u][0],s[u][1]));break;case 140:this.$=r.addLocationDataFn(o[u-3],o[u])(new r.Try(s[u-2],null,null,s[u]));break;case 141:this.$=r.addLocationDataFn(o[u-4],o[u])(new r.Try(s[u-3],s[u-2][0],s[u-2][1],s[u]));break;case 142:this.$=r.addLocationDataFn(o[u-2],o[u])([s[u-1],s[u]]);break;case 143:this.$=r.addLocationDataFn(o[u-2],o[u])([r.addLocationDataFn(o[u-1])(new r.Value(s[u-1])),s[u]]);break;case 144:this.$=r.addLocationDataFn(o[u-1],o[u])([null,s[u]]);break;case 145:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Throw(s[u]));break;case 147:this.$=r.addLocationDataFn(o[u-4],o[u])(new r.Parens(s[u-2]));break;case 148:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.While(s[u]));break;case 149:this.$=r.addLocationDataFn(o[u-3],o[u])(new r.While(s[u-2],{guard:s[u]}));break;case 150:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.While(s[u],{invert:!0}));break;case 151:this.$=r.addLocationDataFn(o[u-3],o[u])(new r.While(s[u-2],{invert:!0,guard:s[u]}));break;case 152:this.$=r.addLocationDataFn(o[u-1],o[u])(s[u-1].addBody(s[u]));break;case 153:case 154:this.$=r.addLocationDataFn(o[u-1],o[u])(s[u].addBody(r.addLocationDataFn(o[u-1])(r.Block.wrap([s[u-1]]))));break;case 155:this.$=r.addLocationDataFn(o[u],o[u])(s[u]);break;case 156:this.$=r.addLocationDataFn(o[u-1],o[u])((new r.While(r.addLocationDataFn(o[u-1])(new r.Literal(\"true\")))).addBody(s[u]));break;case 157:this.$=r.addLocationDataFn(o[u-1],o[u])((new r.While(r.addLocationDataFn(o[u-1])(new r.Literal(\"true\")))).addBody(r.addLocationDataFn(o[u])(r.Block.wrap([s[u]]))));break;case 158:case 159:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.For(s[u-1],s[u]));break;case 160:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.For(s[u],s[u-1]));break;case 161:this.$=r.addLocationDataFn(o[u-1],o[u])({source:r.addLocationDataFn(o[u])(new r.Value(s[u]))});break;case 162:this.$=r.addLocationDataFn(o[u-3],o[u])({source:r.addLocationDataFn(o[u-2])(new r.Value(s[u-2])),step:s[u]});break;case 163:this.$=r.addLocationDataFn(o[u-1],o[u])(function(){return s[u].own=s[u-1].own,s[u].name=s[u-1][0],s[u].index=s[u-1][1],s[u]}());break;case 164:this.$=r.addLocationDataFn(o[u-1],o[u])(s[u]);break;case 165:this.$=r.addLocationDataFn(o[u-2],o[u])(function(){return s[u].own=!0,s[u]}());break;case 171:this.$=r.addLocationDataFn(o[u-2],o[u])([s[u-2],s[u]]);break;case 172:this.$=r.addLocationDataFn(o[u-1],o[u])({source:s[u]});break;case 173:this.$=r.addLocationDataFn(o[u-1],o[u])({source:s[u],object:!0});break;case 174:this.$=r.addLocationDataFn(o[u-3],o[u])({source:s[u-2],guard:s[u]});break;case 175:this.$=r.addLocationDataFn(o[u-3],o[u])({source:s[u-2],guard:s[u],object:!0});break;case 176:this.$=r.addLocationDataFn(o[u-3],o[u])({source:s[u-2],step:s[u]});break;case 177:this.$=r.addLocationDataFn(o[u-5],o[u])({source:s[u-4],guard:s[u-2],step:s[u]});break;case 178:this.$=r.addLocationDataFn(o[u-5],o[u])({source:s[u-4],step:s[u-2],guard:s[u]});break;case 179:this.$=r.addLocationDataFn(o[u-4],o[u])(new r.Switch(s[u-3],s[u-1]));break;case 180:this.$=r.addLocationDataFn(o[u-6],o[u])(new r.Switch(s[u-5],s[u-3],s[u-1]));break;case 181:this.$=r.addLocationDataFn(o[u-3],o[u])(new r.Switch(null,s[u-1]));break;case 182:this.$=r.addLocationDataFn(o[u-5],o[u])(new r.Switch(null,s[u-3],s[u-1]));break;case 184:this.$=r.addLocationDataFn(o[u-1],o[u])(s[u-1].concat(s[u]));break;case 185:this.$=r.addLocationDataFn(o[u-2],o[u])([[s[u-1],s[u]]]);break;case 186:this.$=r.addLocationDataFn(o[u-3],o[u])([[s[u-2],s[u-1]]]);break;case 187:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.If(s[u-1],s[u],{type:s[u-2]}));break;case 188:this.$=r.addLocationDataFn(o[u-4],o[u])(s[u-4].addElse(r.addLocationDataFn(o[u-2],o[u])(new r.If(s[u-1],s[u],{type:s[u-2]}))));break;case 190:this.$=r.addLocationDataFn(o[u-2],o[u])(s[u-2].addElse(s[u]));break;case 191:case 192:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.If(s[u],r.addLocationDataFn(o[u-2])(r.Block.wrap([s[u-2]])),{type:s[u-1],statement:!0}));break;case 193:case 194:case 197:case 198:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Op(s[u-1],s[u]));break;case 195:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Op(\"-\",s[u]));break;case 196:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Op(\"+\",s[u]));break;case 199:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Op(s[u-2].concat(s[u-1]),s[u]));break;case 200:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Op(\"--\",s[u]));break;case 201:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Op(\"++\",s[u]));break;case 202:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Op(\"--\",s[u-1],null,!0));break;case 203:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Op(\"++\",s[u-1],null,!0));break;case 204:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Existence(s[u-1]));break;case 205:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Op(\"+\",s[u-2],s[u]));break;case 206:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Op(\"-\",s[u-2],s[u]));break;case 207:case 208:case 209:case 210:case 211:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Op(s[u-1],s[u-2],s[u]));break;case 212:this.$=r.addLocationDataFn(o[u-2],o[u])(function(){return\"!\"===s[u-1].charAt(0)?(new r.Op(s[u-1].slice(1),s[u-2],s[u])).invert():new r.Op(s[u-1],s[u-2],s[u])}());break;case 213:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Assign(s[u-2],s[u],s[u-1]));break;case 214:this.$=r.addLocationDataFn(o[u-4],o[u])(new r.Assign(s[u-4],s[u-1],s[u-3]));break;case 215:this.$=r.addLocationDataFn(o[u-3],o[u])(new r.Assign(s[u-3],s[u],s[u-2]));break;case 216:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Extends(s[u-2],s[u]))}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{1:[3]},{1:[2,2],6:R},t(U,[2,3]),t(U,[2,6],{118:69,109:89,115:90,110:L,112:A,116:M,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(U,[2,7],{118:69,109:92,115:93,110:L,112:A,116:M,132:Z}),t(et,[2,11],{87:94,68:95,76:101,72:tt,73:nt,74:rt,75:it,77:st,80:ot,90:ut,91:at}),t(et,[2,12],{76:101,87:104,68:105,72:tt,73:nt,74:rt,75:it,77:st,80:ot,90:ut,91:at}),t(et,[2,13]),t(et,[2,14]),t(et,[2,15]),t(et,[2,16]),t(et,[2,17]),t(et,[2,18]),t(et,[2,19]),t(et,[2,20]),t(et,[2,21]),t(et,[2,22]),t(et,[2,8]),t(et,[2,9]),t(et,[2,10]),t(ft,lt,{46:[1,106]}),t(ft,[2,80]),t(ft,[2,81]),t(ft,[2,82]),t(ft,[2,83]),t([1,6,25,26,34,38,55,60,63,72,73,74,75,77,79,80,84,90,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],[2,110],{88:107,91:ct}),t([6,25,55,60],ht,{54:109,61:110,62:111,27:113,50:114,64:115,65:116,28:r,63:pt,82:b,95:dt,96:vt}),{24:119,25:mt},{7:121,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:123,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:124,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:125,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:127,8:126,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,138:[1,128],139:I,140:q},{12:130,13:131,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:132,50:63,64:47,65:48,67:129,69:23,70:24,71:25,82:b,89:E,94:S,95:x,96:T,107:k},{12:130,13:131,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:132,50:63,64:47,65:48,67:133,69:23,70:24,71:25,82:b,89:E,94:S,95:x,96:T,107:k},t(gt,yt,{86:[1,137],139:[1,134],140:[1,135],148:[1,136]}),t(et,[2,189],{127:[1,138]}),{24:139,25:mt},{24:140,25:mt},t(et,[2,155]),{24:141,25:mt},{7:142,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,143],27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(bt,[2,100],{39:22,69:23,70:24,71:25,64:47,65:48,29:49,35:51,27:62,50:63,31:72,12:130,13:131,45:132,24:144,67:146,25:mt,28:r,30:i,32:s,33:o,36:u,37:a,40:f,41:l,42:c,43:h,44:p,82:b,86:[1,145],89:E,94:S,95:x,96:T,107:k}),{7:147,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,141,142,143,144,145,146,147],[2,50],{12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,9:18,10:19,45:21,39:22,69:23,70:24,71:25,56:28,67:36,130:37,109:39,113:40,115:41,64:47,65:48,29:49,35:51,27:62,50:63,118:69,31:72,8:122,7:148,11:n,28:r,30:i,32:s,33:o,36:u,37:a,40:f,41:l,42:c,43:h,44:p,51:d,52:v,53:m,57:g,58:y,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,114:O,125:_,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q}),t(et,[2,51]),t(gt,[2,77]),t(gt,[2,78]),t(ft,[2,32]),t(ft,[2,33]),t(ft,[2,34]),t(ft,[2,35]),t(ft,[2,36]),t(ft,[2,37]),t(ft,[2,38]),{4:149,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,150],27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:151,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:wt,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,63:Et,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:w,89:E,93:153,94:S,95:x,96:T,97:St,100:154,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(ft,[2,116]),t(ft,[2,117],{27:158,28:r}),{25:[2,54]},{25:[2,55]},t(xt,[2,72]),t(xt,[2,75]),{7:159,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:160,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:161,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:163,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:162,25:mt,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{27:168,28:r,50:169,64:170,65:171,70:164,82:b,95:dt,96:T,120:165,121:[1,166],122:167},{119:172,123:[1,173],124:[1,174]},t([6,25,60,84],Tt,{31:72,83:175,47:176,48:177,10:178,27:179,29:180,50:181,28:r,30:i,32:s,33:o,52:v,95:dt}),t(Nt,[2,26]),t(Nt,[2,27]),t(ft,[2,30]),{12:130,13:182,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:132,50:63,64:47,65:48,67:183,69:23,70:24,71:25,82:b,89:E,94:S,95:x,96:T,107:k},t(Ct,[2,25]),t(Nt,[2,28]),{4:184,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(U,[2,5],{7:4,8:5,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,9:18,10:19,45:21,39:22,69:23,70:24,71:25,56:28,67:36,130:37,109:39,113:40,115:41,64:47,65:48,29:49,35:51,27:62,50:63,118:69,31:72,5:185,11:n,28:r,30:i,32:s,33:o,36:u,37:a,40:f,41:l,42:c,43:h,44:p,51:d,52:v,53:m,57:g,58:y,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,110:L,112:A,114:O,116:M,125:_,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q}),t(et,[2,204]),{7:186,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:187,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:188,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:189,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:190,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:191,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:192,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:193,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:194,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(et,[2,154]),t(et,[2,159]),{7:195,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(et,[2,153]),t(et,[2,158]),{88:196,91:ct},t(xt,[2,73]),{91:[2,113]},{27:197,28:r},{27:198,28:r},t(xt,[2,88],{27:199,28:r}),{27:200,28:r},t(xt,[2,89]),{7:202,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,63:kt,64:47,65:48,67:36,69:23,70:24,71:25,78:201,81:203,82:b,85:w,89:E,94:S,95:x,96:T,98:204,99:Lt,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{76:207,77:st,80:ot},{88:208,91:ct},t(xt,[2,74]),{6:[1,210],7:209,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,211],27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(At,[2,111]),{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:wt,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,63:Et,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:w,89:E,92:[1,212],93:213,94:S,95:x,96:T,100:154,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t([6,25],Ot,{59:217,55:[1,215],60:Mt}),t(_t,[2,59]),t(_t,[2,63],{46:[1,219],63:[1,218]}),t(_t,[2,66]),t(Dt,[2,67]),t(Dt,[2,68]),t(Dt,[2,69]),t(Dt,[2,70]),{27:158,28:r},{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:wt,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,63:Et,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:w,89:E,93:153,94:S,95:x,96:T,97:St,100:154,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(et,[2,53]),{4:221,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,26:[1,220],27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,142,143,144,145,146,147],[2,193],{118:69,109:89,115:90,141:V}),{109:92,110:L,112:A,115:93,116:M,118:69,132:Z},t(Pt,[2,194],{118:69,109:89,115:90,141:V,143:J}),t(Pt,[2,195],{118:69,109:89,115:90,141:V,143:J}),t(Pt,[2,196],{118:69,109:89,115:90,141:V,143:J}),t(et,[2,197],{118:69,109:92,115:93}),t(Ht,[2,198],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),{7:222,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(et,[2,200],{72:yt,73:yt,74:yt,75:yt,77:yt,80:yt,90:yt,91:yt}),{68:95,72:tt,73:nt,74:rt,75:it,76:101,77:st,80:ot,87:94,90:ut,91:at},{68:105,72:tt,73:nt,74:rt,75:it,76:101,77:st,80:ot,87:104,90:ut,91:at},t(Bt,lt),t(et,[2,201],{72:yt,73:yt,74:yt,75:yt,77:yt,80:yt,90:yt,91:yt}),t(et,[2,202]),t(et,[2,203]),{6:[1,225],7:223,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,224],27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:226,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{24:227,25:mt,131:[1,228]},t(et,[2,138],{103:229,104:[1,230],105:[1,231]}),t(et,[2,152]),t(et,[2,160]),{25:[1,232],109:89,110:L,112:A,115:90,116:M,118:69,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y},{126:233,128:234,129:jt},t(et,[2,101]),{7:236,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(bt,[2,104],{24:237,25:mt,72:yt,73:yt,74:yt,75:yt,77:yt,80:yt,90:yt,91:yt,86:[1,238]}),t(Ht,[2,145],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(Ht,[2,49],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),{6:R,108:[1,239]},{4:240,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t([6,25,60,97],Ft,{118:69,109:89,115:90,98:241,63:[1,242],99:Lt,110:L,112:A,116:M,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(It,[2,119]),t([6,25,97],Ot,{59:243,60:qt}),t(Rt,[2,128]),{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:wt,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,63:Et,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:w,89:E,93:245,94:S,95:x,96:T,100:154,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(Rt,[2,134]),t(Rt,[2,135]),t(Ct,[2,118]),{24:246,25:mt,109:89,110:L,112:A,115:90,116:M,118:69,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y},t(Ut,[2,148],{118:69,109:89,115:90,110:L,111:[1,247],112:A,116:M,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(Ut,[2,150],{118:69,109:89,115:90,110:L,111:[1,248],112:A,116:M,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(et,[2,156]),t(zt,[2,157],{118:69,109:89,115:90,110:L,112:A,116:M,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,132,135,136,141,142,143,144,145,146,147],[2,161],{117:[1,249]}),t(Wt,[2,164]),{27:168,28:r,50:169,64:170,65:171,82:b,95:dt,96:vt,120:250,122:167},t(Wt,[2,170],{60:[1,251]}),t(Xt,[2,166]),t(Xt,[2,167]),t(Xt,[2,168]),t(Xt,[2,169]),t(et,[2,163]),{7:252,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:253,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t([6,25,84],Ot,{59:254,60:Vt}),t($t,[2,96]),t($t,[2,42],{49:[1,256]}),t($t,[2,45]),t(Jt,[2,46]),t(Jt,[2,47]),t(Jt,[2,48]),{38:[1,257],68:105,72:tt,73:nt,74:rt,75:it,76:101,77:st,80:ot,87:104,90:ut,91:at},t(Bt,yt),{6:R,34:[1,258]},t(U,[2,4]),t(Kt,[2,205],{118:69,109:89,115:90,141:V,142:$,143:J}),t(Kt,[2,206],{118:69,109:89,115:90,141:V,142:$,143:J}),t(Pt,[2,207],{118:69,109:89,115:90,141:V,143:J}),t(Pt,[2,208],{118:69,109:89,115:90,141:V,143:J}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,144,145,146,147],[2,209],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,145,146],[2,210],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,147:Y}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,146],[2,211],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,147:Y}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,145,146,147],[2,212],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K}),t(zt,[2,192],{118:69,109:89,115:90,110:L,112:A,116:M,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(zt,[2,191],{118:69,109:89,115:90,110:L,112:A,116:M,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(At,[2,108]),t(xt,[2,84]),t(xt,[2,85]),t(xt,[2,86]),t(xt,[2,87]),{79:[1,259]},{63:kt,79:[2,92],98:260,99:Lt,109:89,110:L,112:A,115:90,116:M,118:69,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y},{79:[2,93]},{7:261,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,79:[2,127],82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(Qt,[2,121]),t(Qt,Gt),t(xt,[2,91]),t(At,[2,109]),t(Ht,[2,39],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),{7:262,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:263,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(At,[2,114]),t([6,25,92],Ot,{59:264,60:qt}),t(Rt,Ft,{118:69,109:89,115:90,63:[1,265],110:L,112:A,116:M,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),{56:266,57:g,58:y},t(Yt,Zt,{62:111,27:113,50:114,64:115,65:116,61:267,28:r,63:pt,82:b,95:dt,96:vt}),{6:en,25:tn},t(_t,[2,64]),{7:270,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(nn,[2,23]),{6:R,26:[1,271]},t(Ht,[2,199],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(Ht,[2,213],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),{7:272,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:273,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(Ht,[2,216],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(et,[2,190]),{7:274,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(et,[2,139],{104:[1,275]}),{24:276,25:mt},{24:279,25:mt,27:277,28:r,65:278,82:b},{126:280,128:234,129:jt},{26:[1,281],127:[1,282],128:283,129:jt},t(rn,[2,183]),{7:285,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,101:284,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(sn,[2,102],{118:69,109:89,115:90,24:286,25:mt,110:L,112:A,116:M,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(et,[2,105]),{7:287,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(ft,[2,146]),{6:R,26:[1,288]},{7:289,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t([11,28,30,32,33,36,37,40,41,42,43,44,51,52,53,57,58,82,85,89,94,95,96,102,106,107,110,112,114,116,125,131,133,134,135,136,137,139,140],Gt,{6:on,25:on,60:on,97:on}),{6:un,25:an,97:[1,290]},t([6,25,26,92,97],Zt,{12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,9:18,10:19,45:21,39:22,69:23,70:24,71:25,56:28,67:36,130:37,109:39,113:40,115:41,64:47,65:48,29:49,35:51,27:62,50:63,118:69,31:72,8:122,66:156,7:214,100:293,11:n,28:r,30:i,32:s,33:o,36:u,37:a,40:f,41:l,42:c,43:h,44:p,51:d,52:v,53:m,57:g,58:y,63:Et,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,110:L,112:A,114:O,116:M,125:_,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q}),t(Yt,Ot,{59:294,60:qt}),t(fn,[2,187]),{7:295,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:296,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:297,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(Wt,[2,165]),{27:168,28:r,50:169,64:170,65:171,82:b,95:dt,96:vt,122:298},t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,112,116,132],[2,172],{118:69,109:89,115:90,111:[1,299],117:[1,300],135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(ln,[2,173],{118:69,109:89,115:90,111:[1,301],135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),{6:cn,25:hn,84:[1,302]},t([6,25,26,84],Zt,{31:72,48:177,10:178,27:179,29:180,50:181,47:305,28:r,30:i,32:s,33:o,52:v,95:dt}),{7:306,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,307],27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(ft,[2,31]),t(Nt,[2,29]),t(xt,[2,90]),{7:308,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,79:[2,125],82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{79:[2,126],109:89,110:L,112:A,115:90,116:M,118:69,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y},t(Ht,[2,40],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),{26:[1,309],109:89,110:L,112:A,115:90,116:M,118:69,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y},{6:un,25:an,92:[1,310]},t(Rt,on),{24:311,25:mt},t(_t,[2,60]),{27:113,28:r,50:114,61:312,62:111,63:pt,64:115,65:116,82:b,95:dt,96:vt},t(pn,ht,{61:110,62:111,27:113,50:114,64:115,65:116,54:313,28:r,63:pt,82:b,95:dt,96:vt}),t(_t,[2,65],{118:69,109:89,115:90,110:L,112:A,116:M,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(nn,[2,24]),{26:[1,314],109:89,110:L,112:A,115:90,116:M,118:69,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y},t(Ht,[2,215],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),{24:315,25:mt,109:89,110:L,112:A,115:90,116:M,118:69,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y},{24:316,25:mt},t(et,[2,140]),{24:317,25:mt},{24:318,25:mt},t(dn,[2,144]),{26:[1,319],127:[1,320],128:283,129:jt},t(et,[2,181]),{24:321,25:mt},t(rn,[2,184]),{24:322,25:mt,60:[1,323]},t(vn,[2,136],{118:69,109:89,115:90,110:L,112:A,116:M,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(et,[2,103]),t(sn,[2,106],{118:69,109:89,115:90,24:324,25:mt,110:L,112:A,116:M,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),{108:[1,325]},{97:[1,326],109:89,110:L,112:A,115:90,116:M,118:69,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y},t(It,[2,120]),{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,63:Et,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,100:327,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:wt,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,63:Et,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:w,89:E,93:328,94:S,95:x,96:T,100:154,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(Rt,[2,129]),{6:un,25:an,26:[1,329]},t(zt,[2,149],{118:69,109:89,115:90,110:L,112:A,116:M,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(zt,[2,151],{118:69,109:89,115:90,110:L,112:A,116:M,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(zt,[2,162],{118:69,109:89,115:90,110:L,112:A,116:M,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(Wt,[2,171]),{7:330,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:331,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:332,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(It,[2,94]),{10:178,27:179,28:r,29:180,30:i,31:72,32:s,33:o,47:333,48:177,50:181,52:v,95:dt},t(pn,Tt,{31:72,47:176,48:177,10:178,27:179,29:180,50:181,83:334,28:r,30:i,32:s,33:o,52:v,95:dt}),t($t,[2,97]),t($t,[2,43],{118:69,109:89,115:90,110:L,112:A,116:M,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),{7:335,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{79:[2,124],109:89,110:L,112:A,115:90,116:M,118:69,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y},t(et,[2,41]),t(At,[2,115]),t(et,[2,52]),t(_t,[2,61]),t(Yt,Ot,{59:336,60:Mt}),t(et,[2,214]),t(fn,[2,188]),t(et,[2,141]),t(dn,[2,142]),t(dn,[2,143]),t(et,[2,179]),{24:337,25:mt},{26:[1,338]},t(rn,[2,185],{6:[1,339]}),{7:340,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(et,[2,107]),t(ft,[2,147]),t(ft,[2,123]),t(Rt,[2,130]),t(Yt,Ot,{59:341,60:qt}),t(Rt,[2,131]),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,132],[2,174],{118:69,109:89,115:90,117:[1,342],135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(ln,[2,176],{118:69,109:89,115:90,111:[1,343],135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(Ht,[2,175],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t($t,[2,98]),t(Yt,Ot,{59:344,60:Vt}),{26:[1,345],109:89,110:L,112:A,115:90,116:M,118:69,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y},{6:en,25:tn,26:[1,346]},{26:[1,347]},t(et,[2,182]),t(rn,[2,186]),t(vn,[2,137],{118:69,109:89,115:90,110:L,112:A,116:M,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),{6:un,25:an,26:[1,348]},{7:349,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:350,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{6:cn,25:hn,26:[1,351]},t($t,[2,44]),t(_t,[2,62]),t(et,[2,180]),t(Rt,[2,132]),t(Ht,[2,177],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(Ht,[2,178],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t($t,[2,99])],defaultActions:{60:[2,54],61:[2,55],96:[2,113],203:[2,93]},parseError:function(e,t){if(!t.recoverable)throw Error(e);this.trace(e)},parse:function(e){function t(){var e;return e=d.lex()||h,\"number\"!=typeof e&&(e=n.symbols_[e]||e),e}var n=this,r=[0],i=[null],s=[],o=this.table,u=\"\",a=0,f=0,l=0,c=2,h=1,p=s.slice.call(arguments,1),d=Object.create(this.lexer),v={yy:{}};for(var m in this.yy)Object.prototype.hasOwnProperty.call(this.yy,m)&&(v.yy[m]=this.yy[m]);d.setInput(e,v.yy),v.yy.lexer=d,v.yy.parser=this,d.yylloc===void 0&&(d.yylloc={});var g=d.yylloc;s.push(g);var y=d.options&&d.options.ranges;this.parseError=\"function\"==typeof v.yy.parseError?v.yy.parseError:Object.getPrototypeOf(this).parseError;for(var b,w,E,S,x,T,N,C,k,L={};;){if(E=r[r.length-1],this.defaultActions[E]?S=this.defaultActions[E]:((null===b||b===void 0)&&(b=t()),S=o[E]&&o[E][b]),S===void 0||!S.length||!S[0]){var A=\"\";k=[];for(T in o[E])this.terminals_[T]&&T>c&&k.push(\"'\"+this.terminals_[T]+\"'\");A=d.showPosition?\"Parse error on line \"+(a+1)+\":\\n\"+d.showPosition()+\"\\nExpecting \"+k.join(\", \")+\", got '\"+(this.terminals_[b]||b)+\"'\":\"Parse error on line \"+(a+1)+\": Unexpected \"+(b==h?\"end of input\":\"'\"+(this.terminals_[b]||b)+\"'\"),this.parseError(A,{text:d.match,token:this.terminals_[b]||b,line:d.yylineno,loc:g,expected:k})}if(S[0]instanceof Array&&S.length>1)throw Error(\"Parse Error: multiple actions possible at state: \"+E+\", token: \"+b);switch(S[0]){case 1:r.push(b),i.push(d.yytext),s.push(d.yylloc),r.push(S[1]),b=null,w?(b=w,w=null):(f=d.yyleng,u=d.yytext,a=d.yylineno,g=d.yylloc,l>0&&l--);break;case 2:if(N=this.productions_[S[1]][1],L.$=i[i.length-N],L._$={first_line:s[s.length-(N||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(N||1)].first_column,last_column:s[s.length-1].last_column},y&&(L._$.range=[s[s.length-(N||1)].range[0],s[s.length-1].range[1]]),x=this.performAction.apply(L,[u,f,a,v.yy,S[1],i,s].concat(p)),x!==void 0)return x;N&&(r=r.slice(0,-2*N),i=i.slice(0,-1*N),s=s.slice(0,-1*N)),r.push(this.productions_[S[1]][0]),i.push(L.$),s.push(L._$),C=o[r[r.length-2]][r[r.length-1]],r.push(C);break;case 3:return!0}}return!0}};return e.prototype=mn,mn.Parser=e,new e}();return _dereq_!==void 0&&e!==void 0&&(e.parser=n,e.Parser=n.Parser,e.parse=function(){return n.parse.apply(n,arguments)},e.main=function(t){t[1]||(console.log(\"Usage: \"+t[0]+\" FILE\"),process.exit(1));var n=_dereq_(\"fs\").readFileSync(_dereq_(\"path\").normalize(t[1]),\"utf8\");return e.parser.parse(n)},t!==void 0&&_dereq_.main===t&&e.main(process.argv.slice(1))),t.exports}(),_dereq_[\"./scope\"]=function(){var e={},t={exports:e};return function(){var t,n=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};e.Scope=t=function(){function e(e,t,n,r){var i,s;this.parent=e,this.expressions=t,this.method=n,this.referencedVars=r,this.variables=[{name:\"arguments\",type:\"arguments\"}],this.positions={},this.parent||(this.utilities={}),this.root=null!=(i=null!=(s=this.parent)?s.root:void 0)?i:this}return e.prototype.add=function(e,t,n){return this.shared&&!n?this.parent.add(e,t,n):Object.prototype.hasOwnProperty.call(this.positions,e)?this.variables[this.positions[e]].type=t:this.positions[e]=this.variables.push({name:e,type:t})-1},e.prototype.namedMethod=function(){var e;return(null!=(e=this.method)?e.name:void 0)||!this.parent?this.method:this.parent.namedMethod()},e.prototype.find=function(e){return this.check(e)?!0:(this.add(e,\"var\"),!1)},e.prototype.parameter=function(e){return this.shared&&this.parent.check(e,!0)?void 0:this.add(e,\"param\")},e.prototype.check=function(e){var t;return!!(this.type(e)||(null!=(t=this.parent)?t.check(e):void 0))},e.prototype.temporary=function(e,t,n){return null==n&&(n=!1),n?(t+parseInt(e,36)).toString(36).replace(/\\d/g,\"a\"):e+(t||\"\")},e.prototype.type=function(e){var t,n,r,i;for(r=this.variables,t=0,n=r.length;n>t;t++)if(i=r[t],i.name===e)return i.type;return null},e.prototype.freeVariable=function(e,t){var r,i,s;for(null==t&&(t={}),r=0;;){if(s=this.temporary(e,r,t.single),!(this.check(s)||n.call(this.root.referencedVars,s)>=0))break;r++}return(null!=(i=t.reserve)?i:!0)&&this.add(s,\"var\",!0),s},e.prototype.assign=function(e,t){return this.add(e,{value:t,assigned:!0},!0),this.hasAssignments=!0},e.prototype.hasDeclarations=function(){return!!this.declaredVariables().length},e.prototype.declaredVariables=function(){var e;return function(){var t,n,r,i;for(r=this.variables,i=[],t=0,n=r.length;n>t;t++)e=r[t],\"var\"===e.type&&i.push(e.name);return i}.call(this).sort()},e.prototype.assignedVariables=function(){var e,t,n,r,i;for(n=this.variables,r=[],e=0,t=n.length;t>e;e++)i=n[e],i.type.assigned&&r.push(i.name+\" = \"+i.type.value);return r},e}()}.call(this),t.exports}(),_dereq_[\"./nodes\"]=function(){var e={},t={exports:e};return function(){var t,n,r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y,b,w,E,S,x,T,N,C,k,L,A,O,M,_,D,P,H,B,j,F,I,q,R,U,z,W,X,V,$,J,K,Q,G,Y,Z,et,tt,nt,rt,it,st,ot,ut,at,ft,lt,ct,ht,pt,dt,vt,mt,gt,yt,bt,wt=function(e,t){function n(){this.constructor=e}for(var r in t)Et.call(t,r)&&(e[r]=t[r]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},Et={}.hasOwnProperty,St=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},xt=[].slice;Error.stackTraceLimit=1/0,R=_dereq_(\"./scope\").Scope,pt=_dereq_(\"./lexer\"),B=pt.RESERVED,q=pt.STRICT_PROSCRIBED,dt=_dereq_(\"./helpers\"),et=dt.compact,it=dt.flatten,rt=dt.extend,lt=dt.merge,tt=dt.del,mt=dt.starts,nt=dt.ends,vt=dt.some,Z=dt.addLocationDataFn,ft=dt.locationDataToString,gt=dt.throwSyntaxError,e.extend=rt,e.addLocationDataFn=Z,Y=function(){return!0},O=function(){return!1},V=function(){return this},A=function(){return this.negated=!this.negated,this},e.CodeFragment=f=function(){function e(e,t){var n;this.code=\"\"+t,this.locationData=null!=e?e.locationData:void 0,this.type=(null!=e?null!=(n=e.constructor)?n.name:void 0:void 0)||\"unknown\"}return e.prototype.toString=function(){return\"\"+this.code+(this.locationData?\": \"+ft(this.locationData):\"\")},e}(),st=function(e){var t;return function(){var n,r,i;for(i=[],n=0,r=e.length;r>n;n++)t=e[n],i.push(t.code);return i}().join(\"\")},e.Base=i=function(){function e(){}return e.prototype.compile=function(e,t){return st(this.compileToFragments(e,t))},e.prototype.compileToFragments=function(e,t){var n;return e=rt({},e),t&&(e.level=t),n=this.unfoldSoak(e)||this,n.tab=e.indent,e.level!==k&&n.isStatement(e)?n.compileClosure(e):n.compileNode(e)},e.prototype.compileClosure=function(e){var n,r,i,u,f,l,c;return(u=this.jumps())&&u.error(\"cannot use a pure statement in an expression\"),e.sharedScope=!0,i=new a([],s.wrap([this])),n=[],((r=this.contains(ut))||this.contains(at))&&(n=[new L(\"this\")],r?(f=\"apply\",n.push(new L(\"arguments\"))):f=\"call\",i=new Q(i,[new t(new L(f))])),l=(new o(i,n)).compileNode(e),(i.isGenerator||(null!=(c=i.base)?c.isGenerator:void 0))&&(l.unshift(this.makeCode(\"(yield* \")),l.push(this.makeCode(\")\"))),l},e.prototype.cache=function(e,t,n){var i,s,o;return i=null!=n?n(this):this.isComplex(),i?(s=new L(e.scope.freeVariable(\"ref\")),o=new r(s,this),t?[o.compileToFragments(e,t),[this.makeCode(s.value)]]:[o,s]):(s=t?this.compileToFragments(e,t):this,[s,s])},e.prototype.cacheToCodeFragments=function(e){return[st(e[0]),st(e[1])]},e.prototype.makeReturn=function(e){var t;return t=this.unwrapAll(),e?new o(new L(e+\".push\"),[t]):new F(t)},e.prototype.contains=function(e){var t;return t=void 0,this.traverseChildren(!1,function(n){return e(n)?(t=n,!1):void 0}),t},e.prototype.lastNonComment=function(e){var t;for(t=e.length;t--;)if(!(e[t]instanceof l))return e[t];return null},e.prototype.toString=function(e,t){var n;return null==e&&(e=\"\"),null==t&&(t=this.constructor.name),n=\"\\n\"+e+t,this.soak&&(n+=\"?\"),this.eachChild(function(t){return n+=t.toString(e+X)}),n},e.prototype.eachChild=function(e){var t,n,r,i,s,o,u,a;if(!this.children)return this;for(u=this.children,r=0,s=u.length;s>r;r++)if(t=u[r],this[t])for(a=it([this[t]]),i=0,o=a.length;o>i;i++)if(n=a[i],e(n)===!1)return this;return this},e.prototype.traverseChildren=function(e,t){return this.eachChild(function(n){var r;return r=t(n),r!==!1?n.traverseChildren(e,t):void 0})},e.prototype.invert=function(){return new D(\"!\",this)},e.prototype.unwrapAll=function(){var e;for(e=this;e!==(e=e.unwrap()););return e},e.prototype.children=[],e.prototype.isStatement=O,e.prototype.jumps=O,e.prototype.isComplex=Y,e.prototype.isChainable=O,e.prototype.isAssignable=O,e.prototype.unwrap=V,e.prototype.unfoldSoak=O,e.prototype.assigns=O,e.prototype.updateLocationDataIfMissing=function(e){return this.locationData?this:(this.locationData=e,this.eachChild(function(t){return t.updateLocationDataIfMissing(e)}))},e.prototype.error=function(e){return gt(e,this.locationData)},e.prototype.makeCode=function(e){return new f(this,e)},e.prototype.wrapInBraces=function(e){return[].concat(this.makeCode(\"(\"),e,this.makeCode(\")\"))},e.prototype.joinFragmentArrays=function(e,t){var n,r,i,s,o;for(n=[],i=s=0,o=e.length;o>s;i=++s)r=e[i],i&&n.push(this.makeCode(t)),n=n.concat(r);return n},e}(),e.Block=s=function(e){function t(e){this.expressions=et(it(e||[]))}return wt(t,e),t.prototype.children=[\"expressions\"],t.prototype.push=function(e){return this.expressions.push(e),this},t.prototype.pop=function(){return this.expressions.pop()},t.prototype.unshift=function(e){return this.expressions.unshift(e),this},t.prototype.unwrap=function(){return 1===this.expressions.length?this.expressions[0]:this},t.prototype.isEmpty=function(){return!this.expressions.length},t.prototype.isStatement=function(e){var t,n,r,i;for(i=this.expressions,n=0,r=i.length;r>n;n++)if(t=i[n],t.isStatement(e))return!0;return!1},t.prototype.jumps=function(e){var t,n,r,i,s;for(s=this.expressions,n=0,i=s.length;i>n;n++)if(t=s[n],r=t.jumps(e))return r},t.prototype.makeReturn=function(e){var t,n;for(n=this.expressions.length;n--;)if(t=this.expressions[n],!(t instanceof l)){this.expressions[n]=t.makeReturn(e),t instanceof F&&!t.expression&&this.expressions.splice(n,1);break}return this},t.prototype.compileToFragments=function(e,n){return null==e&&(e={}),e.scope?t.__super__.compileToFragments.call(this,e,n):this.compileRoot(e)},t.prototype.compileNode=function(e){var n,r,i,s,o,u,a,f,l;for(this.tab=e.indent,l=e.level===k,r=[],f=this.expressions,s=o=0,u=f.length;u>o;s=++o)a=f[s],a=a.unwrapAll(),a=a.unfoldSoak(e)||a,a instanceof t?r.push(a.compileNode(e)):l?(a.front=!0,i=a.compileToFragments(e),a.isStatement(e)||(i.unshift(this.makeCode(\"\"+this.tab)),i.push(this.makeCode(\";\"))),r.push(i)):r.push(a.compileToFragments(e,T));return l?this.spaced?[].concat(this.joinFragmentArrays(r,\"\\n\\n\"),this.makeCode(\"\\n\")):this.joinFragmentArrays(r,\"\\n\"):(n=r.length?this.joinFragmentArrays(r,\", \"):[this.makeCode(\"void 0\")],r.length>1&&e.level>=T?this.wrapInBraces(n):n)},t.prototype.compileRoot=function(e){var t,n,r,i,s,o,u,a,f,c,h;for(e.indent=e.bare?\"\":X,e.level=k,this.spaced=!0,e.scope=new R(null,this,null,null!=(f=e.referencedVars)?f:[]),c=e.locals||[],i=0,s=c.length;s>i;i++)o=c[i],e.scope.parameter(o);return u=[],e.bare||(a=function(){var e,n,i,s;for(i=this.expressions,s=[],r=e=0,n=i.length;n>e&&(t=i[r],t.unwrap()instanceof l);r=++e)s.push(t);return s}.call(this),h=this.expressions.slice(a.length),this.expressions=a,a.length&&(u=this.compileNode(lt(e,{indent:\"\"})),u.push(this.makeCode(\"\\n\"))),this.expressions=h),n=this.compileWithDeclarations(e),e.bare?n:[].concat(u,this.makeCode(\"(function() {\\n\"),n,this.makeCode(\"\\n}).call(this);\\n\"))},t.prototype.compileWithDeclarations=function(e){var t,n,r,i,s,o,u,a,f,c,h,p,d,v;for(i=[],a=[],f=this.expressions,s=o=0,u=f.length;u>o&&(r=f[s],r=r.unwrap(),r instanceof l||r instanceof L);s=++o);return e=lt(e,{level:k}),s&&(p=this.expressions.splice(s,9e9),c=[this.spaced,!1],v=c[0],this.spaced=c[1],h=[this.compileNode(e),v],i=h[0],this.spaced=h[1],this.expressions=p),a=this.compileNode(e),d=e.scope,d.expressions===this&&(n=e.scope.hasDeclarations(),t=d.hasAssignments,n||t?(s&&i.push(this.makeCode(\"\\n\")),i.push(this.makeCode(this.tab+\"var \")),n&&i.push(this.makeCode(d.declaredVariables().join(\", \"))),t&&(n&&i.push(this.makeCode(\",\\n\"+(this.tab+X))),i.push(this.makeCode(d.assignedVariables().join(\",\\n\"+(this.tab+X))))),i.push(this.makeCode(\";\\n\"+(this.spaced?\"\\n\":\"\")))):i.length&&a.length&&i.push(this.makeCode(\"\\n\"))),i.concat(a)},t.wrap=function(e){return 1===e.length&&e[0]instanceof t?e[0]:new t(e)},t}(i),e.Literal=L=function(e){function t(e){this.value=e}return wt(t,e),t.prototype.makeReturn=function(){return this.isStatement()?this:t.__super__.makeReturn.apply(this,arguments)},t.prototype.isAssignable=function(){return m.test(this.value)},t.prototype.isStatement=function(){var e;return\"break\"===(e=this.value)||\"continue\"===e||\"debugger\"===e},t.prototype.isComplex=O,t.prototype.assigns=function(e){return e===this.value},t.prototype.jumps=function(e){return\"break\"!==this.value||(null!=e?e.loop:void 0)||(null!=e?e.block:void 0)?\"continue\"!==this.value||(null!=e?e.loop:void 0)?void 0:this:this},t.prototype.compileNode=function(e){var t,n,r;return n=\"this\"===this.value?(null!=(r=e.scope.method)?r.bound:void 0)?e.scope.method.context:this.value:this.value.reserved?'\"'+this.value+'\"':this.value,t=this.isStatement()?\"\"+this.tab+n+\";\":n,[this.makeCode(t)]},t.prototype.toString=function(){return' \"'+this.value+'\"'},t}(i),e.Undefined=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return wt(t,e),t.prototype.isAssignable=O,t.prototype.isComplex=O,t.prototype.compileNode=function(e){return[this.makeCode(e.level>=S?\"(void 0)\":\"void 0\")]},t}(i),e.Null=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return wt(t,e),t.prototype.isAssignable=O,t.prototype.isComplex=O,t.prototype.compileNode=function(){return[this.makeCode(\"null\")]},t}(i),e.Bool=function(e){function t(e){this.val=e}return wt(t,e),t.prototype.isAssignable=O,t.prototype.isComplex=O,t.prototype.compileNode=function(){return[this.makeCode(this.val)]},t}(i),e.Return=F=function(e){function t(e){this.expression=e}return wt(t,e),t.prototype.children=[\"expression\"],t.prototype.isStatement=Y,t.prototype.makeReturn=V,t.prototype.jumps=V,t.prototype.compileToFragments=function(e,n){var r,i;return r=null!=(i=this.expression)?i.makeReturn():void 0,!r||r instanceof t?t.__super__.compileToFragments.call(this,e,n):r.compileToFragments(e,n)},t.prototype.compileNode=function(e){var t,n,r;return t=[],n=null!=(r=this.expression)?\"function\"==typeof r.isYieldReturn?r.isYieldReturn():void 0:void 0,n||t.push(this.makeCode(this.tab+(\"return\"+(this.expression?\" \":\"\")))),this.expression&&(t=t.concat(this.expression.compileToFragments(e,C))),n||t.push(this.makeCode(\";\")),t},t}(i),e.Value=Q=function(e){function t(e,n,r){return!n&&e instanceof t?e:(this.base=e,this.properties=n||[],r&&(this[r]=!0),this)}return wt(t,e),t.prototype.children=[\"base\",\"properties\"],t.prototype.add=function(e){return this.properties=this.properties.concat(e),this},t.prototype.hasProperties=function(){return!!this.properties.length},t.prototype.bareLiteral=function(e){return!this.properties.length&&this.base instanceof e},t.prototype.isArray=function(){return this.bareLiteral(n)},t.prototype.isRange=function(){return this.bareLiteral(j)},t.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},t.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},t.prototype.isSimpleNumber=function(){return this.bareLiteral(L)&&I.test(this.base.value)},t.prototype.isString=function(){return this.bareLiteral(L)&&y.test(this.base.value)},t.prototype.isRegex=function(){return this.bareLiteral(L)&&g.test(this.base.value)},t.prototype.isAtomic=function(){var e,t,n,r;for(r=this.properties.concat(this.base),e=0,t=r.length;t>e;e++)if(n=r[e],n.soak||n instanceof o)return!1;return!0},t.prototype.isNotCallable=function(){return this.isSimpleNumber()||this.isString()||this.isRegex()||this.isArray()||this.isRange()||this.isSplice()||this.isObject()},t.prototype.isStatement=function(e){return!this.properties.length&&this.base.isStatement(e)},t.prototype.assigns=function(e){return!this.properties.length&&this.base.assigns(e)},t.prototype.jumps=function(e){return!this.properties.length&&this.base.jumps(e)},t.prototype.isObject=function(e){return this.properties.length?!1:this.base instanceof _&&(!e||this.base.generated)},t.prototype.isSplice=function(){var e,t;return t=this.properties,e=t[t.length-1],e instanceof U},t.prototype.looksStatic=function(e){var t;return this.base.value===e&&1===this.properties.length&&\"prototype\"!==(null!=(t=this.properties[0].name)?t.value:void 0)},t.prototype.unwrap=function(){return this.properties.length?this:this.base},t.prototype.cacheReference=function(e){var n,i,s,o,u;return u=this.properties,s=u[u.length-1],2>this.properties.length&&!this.base.isComplex()&&(null!=s?!s.isComplex():!void 0)?[this,this]:(n=new t(this.base,this.properties.slice(0,-1)),n.isComplex()&&(i=new L(e.scope.freeVariable(\"base\")),n=new t(new H(new r(i,n)))),s?(s.isComplex()&&(o=new L(e.scope.freeVariable(\"name\")),s=new E(new r(o,s.index)),o=new E(o)),[n.add(s),new t(i||n.base,[o||s])]):[n,i])},t.prototype.compileNode=function(e){var t,n,r,i,s;for(this.base.front=this.front,s=this.properties,t=this.base.compileToFragments(e,s.length?S:null),(this.base instanceof H||s.length)&&I.test(st(t))&&t.push(this.makeCode(\".\")),n=0,r=s.length;r>n;n++)i=s[n],t.push.apply(t,i.compileToFragments(e));return t},t.prototype.unfoldSoak=function(e){return null!=this.unfoldedSoak?this.unfoldedSoak:this.unfoldedSoak=function(n){return function(){var i,s,o,u,a,f,l,h,p,d;if(o=n.base.unfoldSoak(e))return(h=o.body.properties).push.apply(h,n.properties),o;for(p=n.properties,s=u=0,a=p.length;a>u;s=++u)if(f=p[s],f.soak)return f.soak=!1,i=new t(n.base,n.properties.slice(0,s)),d=new t(n.base,n.properties.slice(s)),i.isComplex()&&(l=new L(e.scope.freeVariable(\"ref\")),i=new H(new r(l,i)),d.base=l),new b(new c(i),d,{soak:!0});return!1}}(this)()},t}(i),e.Comment=l=function(e){function t(e){this.comment=e}return wt(t,e),t.prototype.isStatement=Y,t.prototype.makeReturn=V,t.prototype.compileNode=function(e,t){var n,r;return r=this.comment.replace(/^(\\s*)#(?=\\s)/gm,\"$1 *\"),n=\"/*\"+ct(r,this.tab)+(St.call(r,\"\\n\")>=0?\"\\n\"+this.tab:\"\")+\" */\",(t||e.level)===k&&(n=e.indent+n),[this.makeCode(\"\\n\"),this.makeCode(n)]},t}(i),e.Call=o=function(e){function n(e,t,n){this.args=null!=t?t:[],this.soak=n,this.isNew=!1,this.isSuper=\"super\"===e,this.variable=this.isSuper?null:e,e instanceof Q&&e.isNotCallable()&&e.error(\"literal is not a function\")}return wt(n,e),n.prototype.children=[\"variable\",\"args\"],n.prototype.newInstance=function(){var e,t;return e=(null!=(t=this.variable)?t.base:void 0)||this.variable,e instanceof n&&!e.isNew?e.newInstance():this.isNew=!0,this},n.prototype.superReference=function(e){var n,i,s,o,u,a,f,l;return u=e.scope.namedMethod(),(null!=u?u.klass:void 0)?(o=u.klass,a=u.name,l=u.variable,o.isComplex()&&(s=new L(e.scope.parent.freeVariable(\"base\")),i=new Q(new H(new r(s,o))),l.base=i,l.properties.splice(0,o.properties.length)),(a.isComplex()||a instanceof E&&a.index.isAssignable())&&(f=new L(e.scope.parent.freeVariable(\"name\")),a=new E(new r(f,a.index)),l.properties.pop(),l.properties.push(a)),n=[new t(new L(\"__super__\"))],u[\"static\"]&&n.push(new t(new L(\"constructor\"))),n.push(null!=f?new E(f):a),(new Q(null!=s?s:o,n)).compile(e)):(null!=u?u.ctor:void 0)?u.name+\".__super__.constructor\":this.error(\"cannot call super outside of an instance method.\")},n.prototype.superThis=function(e){var t;return t=e.scope.method,t&&!t.klass&&t.context||\"this\"},n.prototype.unfoldSoak=function(e){var t,r,i,s,o,u,a,f,l;if(this.soak){if(this.variable){if(r=yt(e,this,\"variable\"))return r;a=(new Q(this.variable)).cacheReference(e),s=a[0],l=a[1]}else s=new L(this.superReference(e)),l=new Q(s);return l=new n(l,this.args),l.isNew=this.isNew,s=new L(\"typeof \"+s.compile(e)+' === \"function\"'),new b(s,new Q(l),{soak:!0})}for(t=this,u=[];;)if(t.variable instanceof n)u.push(t),t=t.variable;else{if(!(t.variable instanceof Q))break;if(u.push(t),!((t=t.variable.base)instanceof n))break}for(f=u.reverse(),i=0,o=f.length;o>i;i++)t=f[i],r&&(t.variable instanceof n?t.variable=r:t.variable.base=r),r=yt(e,t,\"variable\");return r},n.prototype.compileNode=function(e){var t,n,r,i,s,o,u,a,f,l;if(null!=(f=this.variable)&&(f.front=this.front),i=z.compileSplattedArray(e,this.args,!0),i.length)return this.compileSplat(e,i);for(r=[],l=this.args,n=o=0,u=l.length;u>o;n=++o)t=l[n],n&&r.push(this.makeCode(\", \")),r.push.apply(r,t.compileToFragments(e,T));return s=[],this.isSuper?(a=this.superReference(e)+(\".call(\"+this.superThis(e)),r.length&&(a+=\", \"),s.push(this.makeCode(a))):(this.isNew&&s.push(this.makeCode(\"new \")),s.push.apply(s,this.variable.compileToFragments(e,S)),s.push(this.makeCode(\"(\"))),s.push.apply(s,r),s.push(this.makeCode(\")\")),s},n.prototype.compileSplat=function(e,t){var n,r,i,s,o,u;return this.isSuper?[].concat(this.makeCode(this.superReference(e)+\".apply(\"+this.superThis(e)+\", \"),t,this.makeCode(\")\")):this.isNew?(s=this.tab+X,[].concat(this.makeCode(\"(function(func, args, ctor) {\\n\"+s+\"ctor.prototype = func.prototype;\\n\"+s+\"var child = new ctor, result = func.apply(child, args);\\n\"+s+\"return Object(result) === result ? result : child;\\n\"+this.tab+\"})(\"),this.variable.compileToFragments(e,T),this.makeCode(\", \"),t,this.makeCode(\", function(){})\"))):(n=[],r=new Q(this.variable),(o=r.properties.pop())&&r.isComplex()?(u=e.scope.freeVariable(\"ref\"),n=n.concat(this.makeCode(\"(\"+u+\" = \"),r.compileToFragments(e,T),this.makeCode(\")\"),o.compileToFragments(e))):(i=r.compileToFragments(e,S),I.test(st(i))&&(i=this.wrapInBraces(i)),o?(u=st(i),i.push.apply(i,o.compileToFragments(e))):u=\"null\",n=n.concat(i)),n=n.concat(this.makeCode(\".apply(\"+u+\", \"),t,this.makeCode(\")\")))},n}(i),e.Extends=p=function(e){function t(e,t){this.child=e,this.parent=t}return wt(t,e),t.prototype.children=[\"child\",\"parent\"],t.prototype.compileToFragments=function(e){return(new o(new Q(new L(bt(\"extend\",e))),[this.child,this.parent])).compileToFragments(e)},t}(i),e.Access=t=function(e){function t(e,t){this.name=e,this.name.asKey=!0,this.soak=\"soak\"===t}return wt(t,e),t.prototype.children=[\"name\"],t.prototype.compileToFragments=function(e){var t;return t=this.name.compileToFragments(e),m.test(st(t))?t.unshift(this.makeCode(\".\")):(t.unshift(this.makeCode(\"[\")),t.push(this.makeCode(\"]\"))),t},t.prototype.isComplex=O,t}(i),e.Index=E=function(e){function t(e){this.index=e}return wt(t,e),t.prototype.children=[\"index\"],t.prototype.compileToFragments=function(e){return[].concat(this.makeCode(\"[\"),this.index.compileToFragments(e,C),this.makeCode(\"]\"))},t.prototype.isComplex=function(){return this.index.isComplex()},t}(i),e.Range=j=function(e){function t(e,t,n){this.from=e,this.to=t,this.exclusive=\"exclusive\"===n,this.equals=this.exclusive?\"\":\"=\"}return wt(t,e),t.prototype.children=[\"from\",\"to\"],t.prototype.compileVariables=function(e){var t,n,r,i,s,o;return e=lt(e,{top:!0}),t=tt(e,\"isComplex\"),n=this.cacheToCodeFragments(this.from.cache(e,T,t)),this.fromC=n[0],this.fromVar=n[1],r=this.cacheToCodeFragments(this.to.cache(e,T,t)),this.toC=r[0],this.toVar=r[1],(o=tt(e,\"step\"))&&(i=this.cacheToCodeFragments(o.cache(e,T,t)),this.step=i[0],this.stepVar=i[1]),s=[this.fromVar.match(M),this.toVar.match(M)],this.fromNum=s[0],this.toNum=s[1],this.stepVar?this.stepNum=this.stepVar.match(M):void 0},t.prototype.compileNode=function(e){var t,n,r,i,s,o,u,a,f,l,c,h,p,d;return this.fromVar||this.compileVariables(e),e.index?(u=this.fromNum&&this.toNum,s=tt(e,\"index\"),o=tt(e,\"name\"),f=o&&o!==s,d=s+\" = \"+this.fromC,this.toC!==this.toVar&&(d+=\", \"+this.toC),this.step!==this.stepVar&&(d+=\", \"+this.step),l=[s+\" <\"+this.equals,s+\" >\"+this.equals],a=l[0],i=l[1],n=this.stepNum?ht(this.stepNum[0])>0?a+\" \"+this.toVar:i+\" \"+this.toVar:u?(c=[ht(this.fromNum[0]),ht(this.toNum[0])],r=c[0],p=c[1],c,p>=r?a+\" \"+p:i+\" \"+p):(t=this.stepVar?this.stepVar+\" > 0\":this.fromVar+\" <= \"+this.toVar,t+\" ? \"+a+\" \"+this.toVar+\" : \"+i+\" \"+this.toVar),h=this.stepVar?s+\" += \"+this.stepVar:u?f?p>=r?\"++\"+s:\"--\"+s:p>=r?s+\"++\":s+\"--\":f?t+\" ? ++\"+s+\" : --\"+s:t+\" ? \"+s+\"++ : \"+s+\"--\",f&&(d=o+\" = \"+d),f&&(h=o+\" = \"+h),[this.makeCode(d+\"; \"+n+\"; \"+h)]):this.compileArray(e)},t.prototype.compileArray=function(e){var t,n,r,i,s,o,u,a,f,l,c,h,p;return this.fromNum&&this.toNum&&20>=Math.abs(this.fromNum-this.toNum)?(f=function(){h=[];for(var e=l=+this.fromNum,t=+this.toNum;t>=l?t>=e:e>=t;t>=l?e++:e--)h.push(e);return h}.apply(this),this.exclusive&&f.pop(),[this.makeCode(\"[\"+f.join(\", \")+\"]\")]):(o=this.tab+X,s=e.scope.freeVariable(\"i\",{single:!0}),c=e.scope.freeVariable(\"results\"),a=\"\\n\"+o+c+\" = [];\",this.fromNum&&this.toNum?(e.index=s,n=st(this.compileNode(e))):(p=s+\" = \"+this.fromC+(this.toC!==this.toVar?\", \"+this.toC:\"\"),r=this.fromVar+\" <= \"+this.toVar,n=\"var \"+p+\"; \"+r+\" ? \"+s+\" <\"+this.equals+\" \"+this.toVar+\" : \"+s+\" >\"+this.equals+\" \"+this.toVar+\"; \"+r+\" ? \"+s+\"++ : \"+s+\"--\"),u=\"{ \"+c+\".push(\"+s+\"); }\\n\"+o+\"return \"+c+\";\\n\"+e.indent,i=function(e){return null!=e?e.contains(ut):void 0},(i(this.from)||i(this.to))&&(t=\", arguments\"),[this.makeCode(\"(function() {\"+a+\"\\n\"+o+\"for (\"+n+\")\"+u+\"}).apply(this\"+(null!=t?t:\"\")+\")\")])},t}(i),e.Slice=U=function(e){function t(e){this.range=e,t.__super__.constructor.call(this)}return wt(t,e),t.prototype.children=[\"range\"],t.prototype.compileNode=function(e){var t,n,r,i,s,o,u;return s=this.range,o=s.to,r=s.from,i=r&&r.compileToFragments(e,C)||[this.makeCode(\"0\")],o&&(t=o.compileToFragments(e,C),n=st(t),(this.range.exclusive||-1!==+n)&&(u=\", \"+(this.range.exclusive?n:I.test(n)?\"\"+(+n+1):(t=o.compileToFragments(e,S),\"+\"+st(t)+\" + 1 || 9e9\")))),[this.makeCode(\".slice(\"+st(i)+(u||\"\")+\")\")]},t}(i),e.Obj=_=function(e){function n(e,t){this.generated=null!=t?t:!1,this.objects=this.properties=e||[]}return wt(n,e),n.prototype.children=[\"properties\"],n.prototype.compileNode=function(e){var n,i,s,o,u,a,f,c,h,p,d,v,m,g,y,b,w,E,S,x,T;if(S=this.properties,this.generated)for(f=0,m=S.length;m>f;f++)b=S[f],b instanceof Q&&b.error(\"cannot have an implicit value in an implicit object\");for(i=h=0,g=S.length;g>h&&(E=S[i],!((E.variable||E).base instanceof H));i=++h);for(s=S.length>i,u=e.indent+=X,v=this.lastNonComment(this.properties),n=[],s&&(w=e.scope.freeVariable(\"obj\"),n.push(this.makeCode(\"(\\n\"+u+w+\" = \"))),n.push(this.makeCode(\"{\"+(0===S.length||0===i?\"}\":\"\\n\"))),o=d=0,y=S.length;y>d;o=++d)E=S[o],o===i&&(0!==o&&n.push(this.makeCode(\"\\n\"+u+\"}\")),n.push(this.makeCode(\",\\n\"))),c=o===S.length-1||o===i-1?\"\":E===v||E instanceof l?\"\\n\":\",\\n\",a=E instanceof l?\"\":u,s&&i>o&&(a+=X),E instanceof r&&E.variable instanceof Q&&E.variable.hasProperties()&&E.variable.error(\"invalid object key\"),E instanceof Q&&E[\"this\"]&&(E=new r(E.properties[0].name,E,\"object\")),E instanceof l||(i>o?(E instanceof r||(E=new r(E,E,\"object\")),(E.variable.base||E.variable).asKey=!0):(E instanceof r?(p=E.variable,T=E.value):(x=E.base.cache(e),p=x[0],T=x[1]),E=new r(new Q(new L(w),[new t(p)]),T))),a&&n.push(this.makeCode(a)),n.push.apply(n,E.compileToFragments(e,k)),c&&n.push(this.makeCode(c));return s?n.push(this.makeCode(\",\\n\"+u+w+\"\\n\"+this.tab+\")\")):0!==S.length&&n.push(this.makeCode(\"\\n\"+this.tab+\"}\")),this.front&&!s?this.wrapInBraces(n):n},n.prototype.assigns=function(e){var t,n,r,i;for(i=this.properties,t=0,n=i.length;n>t;t++)if(r=i[t],r.assigns(e))return!0;return!1},n}(i),e.Arr=n=function(e){function t(e){this.objects=e||[]}return wt(t,e),t.prototype.children=[\"objects\"],t.prototype.compileNode=function(e){var t,n,r,i,s,o,u;if(!this.objects.length)return[this.makeCode(\"[]\")];if(e.indent+=X,t=z.compileSplattedArray(e,this.objects),t.length)return t;for(t=[],n=function(){var t,n,r,i;for(r=this.objects,i=[],t=0,n=r.length;n>t;t++)u=r[t],i.push(u.compileToFragments(e,T));return i}.call(this),i=s=0,o=n.length;o>s;i=++s)r=n[i],i&&t.push(this.makeCode(\", \")),t.push.apply(t,r);return st(t).indexOf(\"\\n\")>=0?(t.unshift(this.makeCode(\"[\\n\"+e.indent)),t.push(this.makeCode(\"\\n\"+this.tab+\"]\"))):(t.unshift(this.makeCode(\"[\")),t.push(this.makeCode(\"]\"))),t},t.prototype.assigns=function(e){var t,n,r,i;for(i=this.objects,t=0,n=i.length;n>t;t++)if(r=i[t],r.assigns(e))return!0;return!1},t}(i),e.Class=u=function(e){function n(e,t,n){this.variable=e,this.parent=t,this.body=null!=n?n:new s,this.boundFuncs=[],this.body.classBody=!0}return wt(n,e),n.prototype.children=[\"variable\",\"parent\",\"body\"],n.prototype.determineName=function(){var e,n,r;return this.variable?(n=this.variable.properties,r=n[n.length-1],e=r?r instanceof t&&r.name.value:this.variable.base.value,St.call(q,e)>=0&&this.variable.error(\"class variable name may not be \"+e),e&&(e=m.test(e)&&e)):null},n.prototype.setContext=function(e){return this.body.traverseChildren(!1,function(t){return t.classBody?!1:t instanceof L&&\"this\"===t.value?t.value=e:t instanceof a&&t.bound?t.context=e:void 0})},n.prototype.addBoundFunctions=function(e){var n,r,i,s,o;for(o=this.boundFuncs,r=0,i=o.length;i>r;r++)n=o[r],s=(new Q(new L(\"this\"),[new t(n)])).compile(e),this.ctor.body.unshift(new L(s+\" = \"+bt(\"bind\",e)+\"(\"+s+\", this)\"))},n.prototype.addProperties=function(e,n,i){var s,o,u,f,l,c;return c=e.base.properties.slice(0),f=function(){var e;for(e=[];o=c.shift();)o instanceof r&&(u=o.variable.base,delete o.context,l=o.value,\"constructor\"===u.value?(this.ctor&&o.error(\"cannot define more than one constructor in a class\"),l.bound&&o.error(\"cannot define a constructor as a bound function\"),l instanceof a?o=this.ctor=l:(this.externalCtor=i.classScope.freeVariable(\"class\"),o=new r(new L(this.externalCtor),l))):o.variable[\"this\"]?l[\"static\"]=!0:(s=u.isComplex()?new E(u):new t(u),o.variable=new Q(new L(n),[new t(new L(\"prototype\")),s]),l instanceof a&&l.bound&&(this.boundFuncs.push(u),l.bound=!1))),e.push(o);return e}.call(this),et(f)},n.prototype.walkBody=function(e,t){return this.traverseChildren(!1,function(i){return function(o){var u,a,f,l,c,h,p;if(u=!0,o instanceof n)return!1;if(o instanceof s){for(p=a=o.expressions,f=l=0,c=p.length;c>l;f=++l)h=p[f],h instanceof r&&h.variable.looksStatic(e)?h.value[\"static\"]=!0:h instanceof Q&&h.isObject(!0)&&(u=!1,a[f]=i.addProperties(h,e,t));o.expressions=a=it(a)}return u&&!(o instanceof n)}}(this))},n.prototype.hoistDirectivePrologue=function(){var e,t,n;for(t=0,e=this.body.expressions;(n=e[t])&&n instanceof l||n instanceof Q&&n.isString();)++t;return this.directives=e.splice(0,t)},n.prototype.ensureConstructor=function(e){return this.ctor||(this.ctor=new a,this.externalCtor?this.ctor.body.push(new L(this.externalCtor+\".apply(this, arguments)\")):this.parent&&this.ctor.body.push(new L(e+\".__super__.constructor.apply(this, arguments)\")),this.ctor.body.makeReturn(),this.body.expressions.unshift(this.ctor)),this.ctor.ctor=this.ctor.name=e,this.ctor.klass=null,this.ctor.noReturn=!0},n.prototype.compileNode=function(e){var t,n,i,u,f,l,c,h,d;return(u=this.body.jumps())&&u.error(\"Class bodies cannot contain pure statements\"),(n=this.body.contains(ut))&&n.error(\"Class bodies shouldn't reference arguments\"),c=this.determineName()||\"_Class\",c.reserved&&(c=\"_\"+c),l=new L(c),i=new a([],s.wrap([this.body])),t=[],e.classScope=i.makeScope(e.scope),this.hoistDirectivePrologue(),this.setContext(c),this.walkBody(c,e),this.ensureConstructor(c),this.addBoundFunctions(e),this.body.spaced=!0,this.body.expressions.push(l),this.parent&&(d=new L(e.classScope.freeVariable(\"superClass\",{reserve:!1})),this.body.expressions.unshift(new p(l,d)),i.params.push(new P(d)),t.push(this.parent)),(h=this.body.expressions).unshift.apply(h,this.directives),f=new H(new o(i,t)),this.variable&&(f=new r(this.variable,f)),f.compileToFragments(e)},n}(i),e.Assign=r=function(e){function n(e,t,n,r){var i,s,o;this.variable=e,this.value=t,this.context=n,this.param=r&&r.param,this.subpattern=r&&r.subpattern,o=s=this.variable.unwrapAll().value,i=St.call(q,o)>=0,i&&\"object\"!==this.context&&this.variable.error('variable name may not be \"'+s+'\"')}return wt(n,e),n.prototype.children=[\"variable\",\"value\"],n.prototype.isStatement=function(e){return(null!=e?e.level:void 0)===k&&null!=this.context&&St.call(this.context,\"?\")>=0},n.prototype.assigns=function(e){return this[\"object\"===this.context?\"value\":\"variable\"].assigns(e)},n.prototype.unfoldSoak=function(e){return yt(e,this,\"variable\")},n.prototype.compileNode=function(e){var t,n,r,i,s,o,u,f,l,c,h,p,d,v;if(r=this.variable instanceof Q){if(this.variable.isArray()||this.variable.isObject())return this.compilePatternMatch(e);if(this.variable.isSplice())return this.compileSplice(e);if(\"||=\"===(f=this.context)||\"&&=\"===f||\"?=\"===f)return this.compileConditional(e);if(\"**=\"===(l=this.context)||\"//=\"===l||\"%%=\"===l)return this.compileSpecialMath(e)}return this.value instanceof a&&(this.value[\"static\"]?(this.value.klass=this.variable.base,this.value.name=this.variable.properties[0],this.value.variable=this.variable):(null!=(c=this.variable.properties)?c.length:void 0)>=2&&(h=this.variable.properties,o=h.length>=3?xt.call(h,0,i=h.length-2):(i=0,[]),u=h[i++],s=h[i++],\"prototype\"===(null!=(p=u.name)?p.value:void 0)&&(this.value.klass=new Q(this.variable.base,o),this.value.name=s,this.value.variable=this.variable))),this.context||(v=this.variable.unwrapAll(),v.isAssignable()||this.variable.error('\"'+this.variable.compile(e)+'\" cannot be assigned'),(\"function\"==typeof v.hasProperties?v.hasProperties():void 0)||(this.param?e.scope.add(v.value,\"var\"):e.scope.find(v.value))),d=this.value.compileToFragments(e,T),n=this.variable.compileToFragments(e,T),\"object\"===this.context?n.concat(this.makeCode(\": \"),d):(t=n.concat(this.makeCode(\" \"+(this.context||\"=\")+\" \"),d),T>=e.level?t:this.wrapInBraces(t))},n.prototype.compilePatternMatch=function(e){var r,i,s,o,u,a,f,l,c,p,d,v,g,y,b,w,S,x,C,A,O,M,_,D,P,j,F,I;if(D=e.level===k,j=this.value,y=this.variable.base.objects,!(b=y.length))return s=j.compileToFragments(e),e.level>=N?this.wrapInBraces(s):s;if(l=this.variable.isObject(),!D||1!==b||(g=y[0])instanceof z){for(F=j.compileToFragments(e,T),I=st(F),i=[],o=!1,(!m.test(I)||this.variable.assigns(I))&&(i.push([this.makeCode((w=e.scope.freeVariable(\"ref\"))+\" = \")].concat(xt.call(F))),F=[this.makeCode(w)],I=w),a=p=0,d=y.length;d>p;a=++p){if(g=y[a],f=a,l&&(g instanceof n?(A=g,O=A.variable,f=O.base,g=A.value):g.base instanceof H?(M=(new Q(g.unwrapAll())).cacheReference(e),g=M[0],f=M[1]):f=g[\"this\"]?g.properties[0].name:g),!o&&g instanceof z)v=g.name.unwrap().value,g=g.unwrap(),P=b+\" <= \"+I+\".length ? \"+bt(\"slice\",e)+\".call(\"+I+\", \"+a,(_=b-a-1)?(c=e.scope.freeVariable(\"i\",{single:!0}),P+=\", \"+c+\" = \"+I+\".length - \"+_+\") : (\"+c+\" = \"+a+\", [])\"):P+=\") : []\",P=new L(P),o=c+\"++\";else{if(!o&&g instanceof h){(_=b-a-1)&&(1===_?o=I+\".length - 1\":(c=e.scope.freeVariable(\"i\",{single:!0}),P=new L(c+\" = \"+I+\".length - \"+_),o=c+\"++\",i.push(P.compileToFragments(e,T))));continue}v=g.unwrap().value,(g instanceof z||g instanceof h)&&g.error(\"multiple splats/expansions are disallowed in an assignment\"),\"number\"==typeof f?(f=new L(o||f),r=!1):r=l&&m.test(f.unwrap().value||0),P=new Q(new L(I),[new(r?t:E)(f)])}null!=v&&St.call(B,v)>=0&&g.error(\"assignment to a reserved word: \"+g.compile(e)),i.push((new n(g,P,null,{param:this.param,subpattern:!0})).compileToFragments(e,T))}return D||this.subpattern||i.push(F),u=this.joinFragmentArrays(i,\", \"),T>e.level?u:this.wrapInBraces(u)}return g instanceof n?(S=g,x=S.variable,f=x.base,g=S.value):f=l?g[\"this\"]?g.properties[0].name:g:new L(0),r=m.test(f.unwrap().value||0),j=new Q(j),j.properties.push(new(r?t:E)(f)),C=g.unwrap().value,St.call(B,C)>=0&&g.error(\"assignment to a reserved word: \"+g.compile(e)),(new n(g,j,null,{param:this.param})).compileToFragments(e,k)},n.prototype.compileConditional=function(e){var t,r,i,s;return i=this.variable.cacheReference(e),r=i[0],s=i[1],!r.properties.length&&r.base instanceof L&&\"this\"!==r.base.value&&!e.scope.check(r.base.value)&&this.variable.error('the variable \"'+r.base.value+\"\\\" can't be assigned with \"+this.context+\" because it has not been declared before\"),St.call(this.context,\"?\")>=0?(e.isExistentialEquals=!0,(new b(new c(r),s,{type:\"if\"})).addElse(new n(s,this.value,\"=\")).compileToFragments(e)):(t=(new D(this.context.slice(0,-1),r,new n(s,this.value,\"=\"))).compileToFragments(e),T>=e.level?t:this.wrapInBraces(t))},n.prototype.compileSpecialMath=function(e){var t,r,i;return r=this.variable.cacheReference(e),t=r[0],i=r[1],(new n(t,new D(this.context.slice(0,-1),i,this.value))).compileToFragments(e)},n.prototype.compileSplice=function(e){var t,n,r,i,s,o,u,a,f,l,c,h;return u=this.variable.properties.pop().range,r=u.from,l=u.to,n=u.exclusive,o=this.variable.compile(e),r?(a=this.cacheToCodeFragments(r.cache(e,N)),i=a[0],s=a[1]):i=s=\"0\",l?r instanceof Q&&r.isSimpleNumber()&&l instanceof Q&&l.isSimpleNumber()?(l=l.compile(e)-s,n||(l+=1)):(l=l.compile(e,S)+\" - \"+s,n||(l+=\" + 1\")):l=\"9e9\",f=this.value.cache(e,T),c=f[0],h=f[1],t=[].concat(this.makeCode(\"[].splice.apply(\"+o+\", [\"+i+\", \"+l+\"].concat(\"),c,this.makeCode(\")), \"),h),e.level>k?this.wrapInBraces(t):t},n}(i),e.Code=a=function(e){function t(e,t,n){this.params=e||[],this.body=t||new s,this.bound=\"boundfunc\"===n,this.isGenerator=!!this.body.contains(function(e){var t;return e instanceof D&&(\"yield\"===(t=e.operator)||\"yield*\"===t)})}return wt(t,e),t.prototype.children=[\"params\",\"body\"],t.prototype.isStatement=function(){return!!this.ctor},t.prototype.jumps=O,t.prototype.makeScope=function(e){return new R(e,this.body,this)},t.prototype.compileNode=function(e){var i,u,a,f,l,c,p,d,v,m,g,y,w,E,x,T,N,C,k,A,O,M,_,H,B,j,F,I,q,R,U,z,W;if(this.bound&&(null!=(_=e.scope.method)?_.bound:void 0)&&(this.context=e.scope.method.context),this.bound&&!this.context)return this.context=\"_this\",W=new t([new P(new L(this.context))],new s([this])),u=new o(W,[new L(\"this\")]),u.updateLocationDataIfMissing(this.locationData),u.compileNode(e);for(e.scope=tt(e,\"classScope\")||this.makeScope(e.scope),e.scope.shared=tt(e,\"sharedScope\"),e.indent+=X,delete e.bare,delete e.isExistentialEquals,k=[],f=[],H=this.params,c=0,v=H.length;v>c;c++)C=H[c],C instanceof h||e.scope.parameter(C.asReference(e));for(B=this.params,p=0,m=B.length;m>p;p++)if(C=B[p],C.splat||C instanceof h){for(j=this.params,d=0,g=j.length;g>d;d++)N=j[d],N instanceof h||!N.name.value||e.scope.add(N.name.value,\"var\",!0);q=new r(new Q(new n(function(){var t,n,r,i;for(r=this.params,i=[],n=0,t=r.length;t>n;n++)N=r[n],i.push(N.asReference(e));return i}.call(this))),new Q(new L(\"arguments\")));break}for(F=this.params,T=0,y=F.length;y>T;T++)C=F[T],C.isComplex()?(U=M=C.asReference(e),C.value&&(U=new D(\"?\",M,C.value)),f.push(new r(new Q(C.name),U,\"=\",{param:!0}))):(M=C,C.value&&(x=new L(M.name.value+\" == null\"),U=new r(new Q(C.name),C.value,\"=\"),f.push(new b(x,U)))),q||k.push(M);for(z=this.body.isEmpty(),q&&f.unshift(q),f.length&&(I=this.body.expressions).unshift.apply(I,f),l=A=0,w=k.length;w>A;l=++A)N=k[l],k[l]=N.compileToFragments(e),e.scope.parameter(st(k[l]));for(R=[],this.eachParamName(function(e,t){return St.call(R,e)>=0&&t.error(\"multiple parameters named \"+e),R.push(e)}),z||this.noReturn||this.body.makeReturn(),a=\"function\",this.isGenerator&&(a+=\"*\"),this.ctor&&(a+=\" \"+this.name),a+=\"(\",i=[this.makeCode(a)],l=O=0,E=k.length;E>O;l=++O)N=k[l],l&&i.push(this.makeCode(\", \")),i.push.apply(i,N);return i.push(this.makeCode(\") {\")),this.body.isEmpty()||(i=i.concat(this.makeCode(\"\\n\"),this.body.compileWithDeclarations(e),this.makeCode(\"\\n\"+this.tab))),i.push(this.makeCode(\"}\")),this.ctor?[this.makeCode(this.tab)].concat(xt.call(i)):this.front||e.level>=S?this.wrapInBraces(i):i},t.prototype.eachParamName=function(e){var t,n,r,i,s;for(i=this.params,s=[],t=0,n=i.length;n>t;t++)r=i[t],s.push(r.eachName(e));return s},t.prototype.traverseChildren=function(e,n){return e?t.__super__.traverseChildren.call(this,e,n):void 0},t}(i),e.Param=P=function(e){function t(e,t,n){var r,i;this.name=e,this.value=t,this.splat=n,i=r=this.name.unwrapAll().value,St.call(q,i)>=0&&this.name.error('parameter name \"'+r+'\" is not allowed')}return wt(t,e),t.prototype.children=[\"name\",\"value\"],t.prototype.compileToFragments=function(e){return this.name.compileToFragments(e,T)},t.prototype.asReference=function(e){var t,n;return this.reference?this.reference:(n=this.name,n[\"this\"]?(t=n.properties[0].name.value,t.reserved&&(t=\"_\"+t),n=new L(e.scope.freeVariable(t))):n.isComplex()&&(n=new L(e.scope.freeVariable(\"arg\"))),n=new Q(n),this.splat&&(n=new z(n)),n.updateLocationDataIfMissing(this.locationData),this.reference=n)},t.prototype.isComplex=function(){return this.name.isComplex()},t.prototype.eachName=function(e,t){var n,i,s,o,u,a;if(null==t&&(t=this.name),n=function(t){return e(\"@\"+t.properties[0].name.value,t)},t instanceof L)return e(t.value,t);if(t instanceof Q)return n(t);for(a=t.objects,i=0,s=a.length;s>i;i++)u=a[i],u instanceof r?this.eachName(e,u.value.unwrap()):u instanceof z?(o=u.name.unwrap(),e(o.value,o)):u instanceof Q?u.isArray()||u.isObject()?this.eachName(e,u.base):u[\"this\"]?n(u):e(u.base.value,u.base):u instanceof h||u.error(\"illegal parameter \"+u.compile())},t}(i),e.Splat=z=function(e){function t(e){this.name=e.compile?e:new L(e)}return wt(t,e),t.prototype.children=[\"name\"],t.prototype.isAssignable=Y,t.prototype.assigns=function(e){return this.name.assigns(e)},t.prototype.compileToFragments=function(e){return this.name.compileToFragments(e)},t.prototype.unwrap=function(){return this.name},t.compileSplattedArray=function(e,n,r){var i,s,o,u,a,f,l,c,h,p,d;for(l=-1;(d=n[++l])&&!(d instanceof t););if(l>=n.length)return[];if(1===n.length)return d=n[0],a=d.compileToFragments(e,T),r?a:[].concat(d.makeCode(bt(\"slice\",e)+\".call(\"),a,d.makeCode(\")\"));for(i=n.slice(l),f=c=0,p=i.length;p>c;f=++c)d=i[f],o=d.compileToFragments(e,T),i[f]=d instanceof t?[].concat(d.makeCode(bt(\"slice\",e)+\".call(\"),o,d.makeCode(\")\")):[].concat(d.makeCode(\"[\"),o,d.makeCode(\"]\"));return 0===l?(d=n[0],u=d.joinFragmentArrays(i.slice(1),\", \"),i[0].concat(d.makeCode(\".concat(\"),u,d.makeCode(\")\"))):(s=function(){var t,r,i,s;for(i=n.slice(0,l),s=[],t=0,r=i.length;r>t;t++)d=i[t],s.push(d.compileToFragments(e,T));return s}(),s=n[0].joinFragmentArrays(s,\", \"),u=n[l].joinFragmentArrays(i,\", \"),h=n[n.length-1],[].concat(n[0].makeCode(\"[\"),s,n[l].makeCode(\"].concat(\"),u,h.makeCode(\")\")))},t}(i),e.Expansion=h=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return wt(t,e),t.prototype.isComplex=O,t.prototype.compileNode=function(){return this.error(\"Expansion must be used inside a destructuring assignment or parameter list\")},t.prototype.asReference=function(){return this},t.prototype.eachName=function(){},t}(i),e.While=G=function(e){function t(e,t){this.condition=(null!=t?t.invert:void 0)?e.invert():e,this.guard=null!=t?t.guard:void 0}return wt(t,e),t.prototype.children=[\"condition\",\"guard\",\"body\"],t.prototype.isStatement=Y,t.prototype.makeReturn=function(e){return e?t.__super__.makeReturn.apply(this,arguments):(this.returns=!this.jumps({loop:!0}),this)},t.prototype.addBody=function(e){return this.body=e,this},t.prototype.jumps=function(){var e,t,n,r,i;if(e=this.body.expressions,!e.length)return!1;for(t=0,r=e.length;r>t;t++)if(i=e[t],n=i.jumps({loop:!0}))return n;return!1},t.prototype.compileNode=function(e){var t,n,r,i;return e.indent+=X,i=\"\",n=this.body,n.isEmpty()?n=this.makeCode(\"\"):(this.returns&&(n.makeReturn(r=e.scope.freeVariable(\"results\")),i=\"\"+this.tab+r+\" = [];\\n\"),this.guard&&(n.expressions.length>1?n.expressions.unshift(new b((new H(this.guard)).invert(),new L(\"continue\"))):this.guard&&(n=s.wrap([new b(this.guard,n)]))),n=[].concat(this.makeCode(\"\\n\"),n.compileToFragments(e,k),this.makeCode(\"\\n\"+this.tab))),t=[].concat(this.makeCode(i+this.tab+\"while (\"),this.condition.compileToFragments(e,C),this.makeCode(\") {\"),n,this.makeCode(\"}\")),this.returns&&t.push(this.makeCode(\"\\n\"+this.tab+\"return \"+r+\";\")),t},t}(i),e.Op=D=function(e){function n(e,t,n,r){if(\"in\"===e)return new w(t,n);if(\"do\"===e)return this.generateDo(t);if(\"new\"===e){if(t instanceof o&&!t[\"do\"]&&!t.isNew)return t.newInstance();(t instanceof a&&t.bound||t[\"do\"])&&(t=new H(t))}return this.operator=i[e]||e,this.first=t,this.second=n,this.flip=!!r,this}var i,s;return wt(n,e),i={\"==\":\"===\",\"!=\":\"!==\",of:\"in\",yieldfrom:\"yield*\"},s={\"!==\":\"===\",\"===\":\"!==\"},n.prototype.children=[\"first\",\"second\"],n.prototype.isSimpleNumber=O,n.prototype.isYield=function(){var e;return\"yield\"===(e=this.operator)||\"yield*\"===e},n.prototype.isYieldReturn=function(){return this.isYield()&&this.first instanceof F},n.prototype.isUnary=function(){return!this.second},n.prototype.isComplex=function(){var e;return!(this.isUnary()&&(\"+\"===(e=this.operator)||\"-\"===e)&&this.first instanceof Q&&this.first.isSimpleNumber())},n.prototype.isChainable=function(){var e;return\"<\"===(e=this.operator)||\">\"===e||\">=\"===e||\"<=\"===e||\"===\"===e||\"!==\"===e},n.prototype.invert=function(){var e,t,r,i,o;if(this.isChainable()&&this.first.isChainable()){for(e=!0,t=this;t&&t.operator;)e&&(e=t.operator in s),t=t.first;if(!e)return(new H(this)).invert();for(t=this;t&&t.operator;)t.invert=!t.invert,t.operator=s[t.operator],t=t.first;return this}return(i=s[this.operator])?(this.operator=i,this.first.unwrap()instanceof n&&this.first.invert(),this):this.second?(new H(this)).invert():\"!\"===this.operator&&(r=this.first.unwrap())instanceof n&&(\"!\"===(o=r.operator)||\"in\"===o||\"instanceof\"===o)?r:new n(\"!\",this)},n.prototype.unfoldSoak=function(e){var t;return(\"++\"===(t=this.operator)||\"--\"===t||\"delete\"===t)&&yt(e,this,\"first\")},n.prototype.generateDo=function(e){var t,n,i,s,u,f,l,c;for(f=[],n=e instanceof r&&(l=e.value.unwrap())instanceof a?l:e,c=n.params||[],i=0,s=c.length;s>i;i++)u=c[i],u.value?(f.push(u.value),delete u.value):f.push(u);return t=new o(e,f),t[\"do\"]=!0,t},n.prototype.compileNode=function(e){var t,n,r,i,s,o;if(n=this.isChainable()&&this.first.isChainable(),n||(this.first.front=this.front),\"delete\"===this.operator&&e.scope.check(this.first.unwrapAll().value)&&this.error(\"delete operand may not be argument or var\"),(\"--\"===(i=this.operator)||\"++\"===i)&&(s=this.first.unwrapAll().value,St.call(q,s)>=0)&&this.error('cannot increment/decrement \"'+this.first.unwrapAll().value+'\"'),this.isYield())return this.compileYield(e);if(this.isUnary())return this.compileUnary(e);if(n)return this.compileChain(e);switch(this.operator){case\"?\":return this.compileExistence(e);case\"**\":return this.compilePower(e);case\"//\":return this.compileFloorDivision(e);case\"%%\":return this.compileModulo(e);default:return r=this.first.compileToFragments(e,N),o=this.second.compileToFragments(e,N),t=[].concat(r,this.makeCode(\" \"+this.operator+\" \"),o),N>=e.level?t:this.wrapInBraces(t)}},n.prototype.compileChain=function(e){var t,n,r,i;return r=this.first.second.cache(e),this.first.second=r[0],i=r[1],n=this.first.compileToFragments(e,N),t=n.concat(this.makeCode(\" \"+(this.invert?\"&&\":\"||\")+\" \"),i.compileToFragments(e),this.makeCode(\" \"+this.operator+\" \"),this.second.compileToFragments(e,N)),this.wrapInBraces(t)},n.prototype.compileExistence=function(e){var t,n;return this.first.isComplex()?(n=new L(e.scope.freeVariable(\"ref\")),t=new H(new r(n,this.first))):(t=this.first,n=t),(new b(new c(t),n,{type:\"if\"})).addElse(this.second).compileToFragments(e)},n.prototype.compileUnary=function(e){var t,r,i;return r=[],t=this.operator,r.push([this.makeCode(t)]),\"!\"===t&&this.first instanceof c?(this.first.negated=!this.first.negated,this.first.compileToFragments(e)):e.level>=S?(new H(this)).compileToFragments(e):(i=\"+\"===t||\"-\"===t,(\"new\"===t||\"typeof\"===t||\"delete\"===t||i&&this.first instanceof n&&this.first.operator===t)&&r.push([this.makeCode(\" \")]),(i&&this.first instanceof n||\"new\"===t&&this.first.isStatement(e))&&(this.first=new H(this.first)),r.push(this.first.compileToFragments(e,N)),this.flip&&r.reverse(),this.joinFragmentArrays(r,\"\"))},n.prototype.compileYield=function(e){var t,n;return n=[],t=this.operator,null==e.scope.parent&&this.error(\"yield statements must occur within a function generator.\"),St.call(Object.keys(this.first),\"expression\")>=0&&!(this.first instanceof $)?this.isYieldReturn()?n.push(this.first.compileToFragments(e,k)):null!=this.first.expression&&n.push(this.first.expression.compileToFragments(e,N)):(n.push([this.makeCode(\"(\"+t+\" \")]),n.push(this.first.compileToFragments(e,N)),n.push([this.makeCode(\")\")])),this.joinFragmentArrays(n,\"\")},n.prototype.compilePower=function(e){var n;return n=new Q(new L(\"Math\"),[new t(new L(\"pow\"))]),(new o(n,[this.first,this.second])).compileToFragments(e)},n.prototype.compileFloorDivision=function(e){var r,i;return i=new Q(new L(\"Math\"),[new t(new L(\"floor\"))]),r=new n(\"/\",this.first,this.second),(new o(i,[r])).compileToFragments(e)},n.prototype.compileModulo=function(e){var t;return t=new Q(new L(bt(\"modulo\",e))),(new o(t,[this.first,this.second])).compileToFragments(e)},n.prototype.toString=function(e){return n.__super__.toString.call(this,e,this.constructor.name+\" \"+this.operator)},n}(i),e.In=w=function(e){function t(e,t){this.object=e,this.array=t}return wt(t,e),t.prototype.children=[\"object\",\"array\"],t.prototype.invert=A,t.prototype.compileNode=function(e){var t,n,r,i,s;if(this.array instanceof Q&&this.array.isArray()&&this.array.base.objects.length){for(s=this.array.base.objects,n=0,r=s.length;r>n;n++)if(i=s[n],i instanceof z){t=!0;break}if(!t)return this.compileOrTest(e)}return this.compileLoopTest(e)},t.prototype.compileOrTest=function(e){var t,n,r,i,s,o,u,a,f,l,c,h;for(a=this.object.cache(e,N),c=a[0],u=a[1],f=this.negated?[\" !== \",\" && \"]:[\" === \",\" || \"],t=f[0],n=f[1],h=[],l=this.array.base.objects,r=s=0,o=l.length;o>s;r=++s)i=l[r],r&&h.push(this.makeCode(n)),h=h.concat(r?u:c,this.makeCode(t),i.compileToFragments(e,S));return N>e.level?h:this.wrapInBraces(h)},t.prototype.compileLoopTest=function(e){var t,n,r,i;return r=this.object.cache(e,T),i=r[0],n=r[1],t=[].concat(this.makeCode(bt(\"indexOf\",e)+\".call(\"),this.array.compileToFragments(e,T),this.makeCode(\", \"),n,this.makeCode(\") \"+(this.negated?\"< 0\":\">= 0\"))),st(i)===st(n)?t:(t=i.concat(this.makeCode(\", \"),t),T>e.level?t:this.wrapInBraces(t))},t.prototype.toString=function(e){return t.__super__.toString.call(this,e,this.constructor.name+(this.negated?\"!\":\"\"))},t}(i),e.Try=J=function(e){function t(e,t,n,r){this.attempt=e,this.errorVariable=t,this.recovery=n,this.ensure=r}return wt(t,e),t.prototype.children=[\"attempt\",\"recovery\",\"ensure\"],t.prototype.isStatement=Y,t.prototype.jumps=function(e){var t;return this.attempt.jumps(e)||(null!=(t=this.recovery)?t.jumps(e):void 0)},t.prototype.makeReturn=function(e){return this.attempt&&(this.attempt=this.attempt.makeReturn(e)),this.recovery&&(this.recovery=this.recovery.makeReturn(e)),this},t.prototype.compileNode=function(e){var t,n,i,s;return e.indent+=X,s=this.attempt.compileToFragments(e,k),t=this.recovery?(i=new L(\"_error\"),this.errorVariable?this.recovery.unshift(new r(this.errorVariable,i)):void 0,[].concat(this.makeCode(\" catch (\"),i.compileToFragments(e),this.makeCode(\") {\\n\"),this.recovery.compileToFragments(e,k),this.makeCode(\"\\n\"+this.tab+\"}\"))):this.ensure||this.recovery?[]:[this.makeCode(\" catch (_error) {}\")],n=this.ensure?[].concat(this.makeCode(\" finally {\\n\"),this.ensure.compileToFragments(e,k),this.makeCode(\"\\n\"+this.tab+\"}\")):[],[].concat(this.makeCode(this.tab+\"try {\\n\"),s,this.makeCode(\"\\n\"+this.tab+\"}\"),t,n)},t}(i),e.Throw=$=function(e){function t(e){this.expression=e}return wt(t,e),t.prototype.children=[\"expression\"],t.prototype.isStatement=Y,t.prototype.jumps=O,t.prototype.makeReturn=V,t.prototype.compileNode=function(e){return[].concat(this.makeCode(this.tab+\"throw \"),this.expression.compileToFragments(e),this.makeCode(\";\"))},t}(i),e.Existence=c=function(e){function t(e){this.expression=e}return wt(t,e),t.prototype.children=[\"expression\"],t.prototype.invert=A,t.prototype.compileNode=function(e){var t,n,r,i;return this.expression.front=this.front,r=this.expression.compile(e,N),m.test(r)&&!e.scope.check(r)?(i=this.negated?[\"===\",\"||\"]:[\"!==\",\"&&\"],t=i[0],n=i[1],r=\"typeof \"+r+\" \"+t+' \"undefined\" '+n+\" \"+r+\" \"+t+\" null\"):r=r+\" \"+(this.negated?\"==\":\"!=\")+\" null\",[this.makeCode(x>=e.level?r:\"(\"+r+\")\")]},t}(i),e.Parens=H=function(e){function t(e){this.body=e}return wt(t,e),t.prototype.children=[\"body\"],t.prototype.unwrap=function(){return this.body},t.prototype.isComplex=function(){return this.body.isComplex()},t.prototype.compileNode=function(e){var t,n,r;return n=this.body.unwrap(),n instanceof Q&&n.isAtomic()?(n.front=this.front,n.compileToFragments(e)):(r=n.compileToFragments(e,C),t=N>e.level&&(n instanceof D||n instanceof o||n instanceof d&&n.returns),t?r:this.wrapInBraces(r))},t}(i),e.For=d=function(e){function t(e,t){var n;this.source=t.source,this.guard=t.guard,this.step=t.step,this.name=t.name,this.index=t.index,this.body=s.wrap([e]),this.own=!!t.own,this.object=!!t.object,this.object&&(n=[this.index,this.name],this.name=n[0],this.index=n[1]),this.index instanceof Q&&this.index.error(\"index cannot be a pattern matching expression\"),this.range=this.source instanceof Q&&this.source.base instanceof j&&!this.source.properties.length,this.pattern=this.name instanceof Q,this.range&&this.index&&this.index.error(\"indexes do not apply to range loops\"),this.range&&this.pattern&&this.name.error(\"cannot pattern match over range loops\"),this.own&&!this.object&&this.name.error(\"cannot use own with for-in\"),this.returns=!1}return wt(t,e),t.prototype.children=[\"body\",\"source\",\"guard\",\"step\"],t.prototype.compileNode=function(e){var t,n,i,o,u,a,f,l,c,h,p,d,v,g,y,w,E,S,x,N,C,A,O,_,D,P,B,j,I,q,R,U,z,W;return t=s.wrap([this.body]),O=t.expressions,S=O[O.length-1],(null!=S?S.jumps():void 0)instanceof F&&(this.returns=!1),I=this.range?this.source.base:this.source,j=e.scope,this.pattern||(N=this.name&&this.name.compile(e,T)),g=this.index&&this.index.compile(e,T),N&&!this.pattern&&j.find(N),g&&j.find(g),this.returns&&(B=j.freeVariable(\"results\")),y=this.object&&g||j.freeVariable(\"i\",{single:!0}),w=this.range&&N||g||y,E=w!==y?w+\" = \":\"\",this.step&&!this.range&&(_=this.cacheToCodeFragments(this.step.cache(e,T,ot)),q=_[0],U=_[1],R=U.match(M)),this.pattern&&(N=y),W=\"\",p=\"\",f=\"\",d=this.tab+X,this.range?h=I.compileToFragments(lt(e,{index:y,name:N,step:this.step,isComplex:ot})):(z=this.source.compile(e,T),!N&&!this.own||m.test(z)||(f+=\"\"+this.tab+(A=j.freeVariable(\"ref\"))+\" = \"+z+\";\\n\",z=A),N&&!this.pattern&&(C=N+\" = \"+z+\"[\"+w+\"]\"),this.object||(q!==U&&(f+=\"\"+this.tab+q+\";\\n\"),this.step&&R&&(c=0>ht(R[0]))||(x=j.freeVariable(\"len\")),u=\"\"+E+y+\" = 0, \"+x+\" = \"+z+\".length\",a=\"\"+E+y+\" = \"+z+\".length - 1\",i=y+\" < \"+x,o=y+\" >= 0\",this.step?(R?c&&(i=o,u=a):(i=U+\" > 0 ? \"+i+\" : \"+o,u=\"(\"+U+\" > 0 ? (\"+u+\") : \"+a+\")\"),v=y+\" += \"+U):v=\"\"+(w!==y?\"++\"+y:y+\"++\"),h=[this.makeCode(u+\"; \"+i+\"; \"+E+v)])),this.returns&&(D=\"\"+this.tab+B+\" = [];\\n\",P=\"\\n\"+this.tab+\"return \"+B+\";\",t.makeReturn(B)),this.guard&&(t.expressions.length>1?t.expressions.unshift(new b((new H(this.guard)).invert(),new L(\"continue\"))):this.guard&&(t=s.wrap([new b(this.guard,t)]))),this.pattern&&t.expressions.unshift(new r(this.name,new L(z+\"[\"+w+\"]\"))),l=[].concat(this.makeCode(f),this.pluckDirectCall(e,t)),C&&(W=\"\\n\"+d+C+\";\"),this.object&&(h=[this.makeCode(w+\" in \"+z)],this.own&&(p=\"\\n\"+d+\"if (!\"+bt(\"hasProp\",e)+\".call(\"+z+\", \"+w+\")) continue;\")),n=t.compileToFragments(lt(e,{indent:d}),k),n&&n.length>0&&(n=[].concat(this.makeCode(\"\\n\"),n,this.makeCode(\"\\n\"))),[].concat(l,this.makeCode(\"\"+(D||\"\")+this.tab+\"for (\"),h,this.makeCode(\") {\"+p+W),n,this.makeCode(this.tab+\"}\"+(P||\"\")))},t.prototype.pluckDirectCall=function(e,t){var n,i,s,u,f,l,c,h,p,d,v,m,g,y,b,w;for(i=[],p=t.expressions,f=l=0,c=p.length;c>l;f=++l)s=p[f],s=s.unwrapAll(),s instanceof o&&(w=null!=(d=s.variable)?d.unwrapAll():void 0,(w instanceof a||w instanceof Q&&(null!=(v=w.base)?v.unwrapAll():void 0)instanceof a&&1===w.properties.length&&(\"call\"===(m=null!=(g=w.properties[0].name)?g.value:void 0)||\"apply\"===m))&&(u=(null!=(y=w.base)?y.unwrapAll():void 0)||w,h=new L(e.scope.freeVariable(\"fn\")),n=new Q(h),w.base&&(b=[n,w],w.base=b[0],n=b[1]),t.expressions[f]=new o(n,s.args),i=i.concat(this.makeCode(this.tab),(new r(h,u)).compileToFragments(e,k),this.makeCode(\";\\n\"))));return i},t}(G),e.Switch=W=function(e){function t(e,t,n){this.subject=e,this.cases=t,this.otherwise=n}return wt(t,e),t.prototype.children=[\"subject\",\"cases\",\"otherwise\"],t.prototype.isStatement=Y,t.prototype.jumps=function(e){var t,n,r,i,s,o,u,a;for(null==e&&(e={block:!0}),o=this.cases,r=0,s=o.length;s>r;r++)if(u=o[r],n=u[0],t=u[1],i=t.jumps(e))return i;return null!=(a=this.otherwise)?a.jumps(e):void 0},t.prototype.makeReturn=function(e){var t,n,r,i,o;for(i=this.cases,t=0,n=i.length;n>t;t++)r=i[t],r[1].makeReturn(e);return e&&(this.otherwise||(this.otherwise=new s([new L(\"void 0\")]))),null!=(o=this.otherwise)&&o.makeReturn(e),this},t.prototype.compileNode=function(e){var t,n,r,i,s,o,u,a,f,l,c,h,p,d,v,m;for(a=e.indent+X,f=e.indent=a+X,o=[].concat(this.makeCode(this.tab+\"switch (\"),this.subject?this.subject.compileToFragments(e,C):this.makeCode(\"false\"),this.makeCode(\") {\\n\")),d=this.cases,u=l=0,h=d.length;h>l;u=++l){for(v=d[u],i=v[0],t=v[1],m=it([i]),c=0,p=m.length;p>c;c++)r=m[c],this.subject||(r=r.invert()),o=o.concat(this.makeCode(a+\"case \"),r.compileToFragments(e,C),this.makeCode(\":\\n\"));if((n=t.compileToFragments(e,k)).length>0&&(o=o.concat(n,this.makeCode(\"\\n\"))),u===this.cases.length-1&&!this.otherwise)break;s=this.lastNonComment(t.expressions),s instanceof F||s instanceof L&&s.jumps()&&\"debugger\"!==s.value||o.push(r.makeCode(f+\"break;\\n\"))}return this.otherwise&&this.otherwise.expressions.length&&o.push.apply(o,[this.makeCode(a+\"default:\\n\")].concat(xt.call(this.otherwise.compileToFragments(e,k)),[this.makeCode(\"\\n\")])),o.push(this.makeCode(this.tab+\"}\")),o},t}(i),e.If=b=function(e){function t(e,t,n){this.body=t,null==n&&(n={}),this.condition=\"unless\"===n.type?e.invert():e,this.elseBody=null,this.isChain=!1,this.soak=n.soak}return wt(t,e),t.prototype.children=[\"condition\",\"body\",\"elseBody\"],t.prototype.bodyNode=function(){var e;return null!=(e=this.body)?e.unwrap():void 0},t.prototype.elseBodyNode=function(){var e;return null!=(e=this.elseBody)?e.unwrap():void 0},t.prototype.addElse=function(e){return this.isChain?this.elseBodyNode().addElse(e):(this.isChain=e instanceof t,this.elseBody=this.ensureBlock(e),this.elseBody.updateLocationDataIfMissing(e.locationData)),this},t.prototype.isStatement=function(e){var t;return(null!=e?e.level:void 0)===k||this.bodyNode().isStatement(e)||(null!=(t=this.elseBodyNode())?t.isStatement(e):void 0)},t.prototype.jumps=function(e){var t;return this.body.jumps(e)||(null!=(t=this.elseBody)?t.jumps(e):void 0)},t.prototype.compileNode=function(e){return this.isStatement(e)?this.compileStatement(e):this.compileExpression(e)},t.prototype.makeReturn=function(e){return e&&(this.elseBody||(this.elseBody=new s([new L(\"void 0\")]))),this.body&&(this.body=new s([this.body.makeReturn(e)])),this.elseBody&&(this.elseBody=new s([this.elseBody.makeReturn(e)])),this},t.prototype.ensureBlock=function(e){return e instanceof s?e:new s([e])},t.prototype.compileStatement=function(e){var n,r,i,s,o,u,a;return i=tt(e,\"chainChild\"),(o=tt(e,\"isExistentialEquals\"))?(new t(this.condition.invert(),this.elseBodyNode(),{type:\"if\"})).compileToFragments(e):(a=e.indent+X,s=this.condition.compileToFragments(e,C),r=this.ensureBlock(this.body).compileToFragments(lt(e,{indent:a})),u=[].concat(this.makeCode(\"if (\"),s,this.makeCode(\") {\\n\"),r,this.makeCode(\"\\n\"+this.tab+\"}\")),i||u.unshift(this.makeCode(this.tab)),this.elseBody?(n=u.concat(this.makeCode(\" else \")),this.isChain?(e.chainChild=!0,n=n.concat(this.elseBody.unwrap().compileToFragments(e,k))):n=n.concat(this.makeCode(\"{\\n\"),this.elseBody.compileToFragments(lt(e,{indent:a}),k),this.makeCode(\"\\n\"+this.tab+\"}\")),n):u)},t.prototype.compileExpression=function(e){var t,n,r,i;return r=this.condition.compileToFragments(e,x),n=this.bodyNode().compileToFragments(e,T),t=this.elseBodyNode()?this.elseBodyNode().compileToFragments(e,T):[this.makeCode(\"void 0\")],i=r.concat(this.makeCode(\" ? \"),n,this.makeCode(\" : \"),t),e.level>=x?this.wrapInBraces(i):i},t.prototype.unfoldSoak=function(){return this.soak&&this},t}(i),K={extend:function(e){return\"function(child, parent) { for (var key in parent) { if (\"+bt(\"hasProp\",e)+\".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }\"},bind:function(){return\"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }\"},indexOf:function(){return\"[].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }\"},modulo:function(){return\"function(a, b) { return (+a % (b = +b) + b) % b; }\"},hasProp:function(){return\"{}.hasOwnProperty\"},slice:function(){return\"[].slice\"}},k=1,C=2,T=3,x=4,N=5,S=6,X=\"  \",m=/^(?!\\d)[$\\w\\x7f-\\uffff]+$/,I=/^[+-]?\\d+$/,v=/^[+-]?0x[\\da-f]+/i,M=/^[+-]?(?:0x[\\da-f]+|\\d*\\.?\\d+(?:e[+-]?\\d+)?)$/i,y=/^['\"]/,g=/^\\//,bt=function(e,t){var n,r;return r=t.scope.root,e in r.utilities?r.utilities[e]:(n=r.freeVariable(e),r.assign(n,K[e](t)),r.utilities[e]=n)},ct=function(e,t){return e=e.replace(/\\n/g,\"$&\"+t),e.replace(/\\s+$/,\"\")},ht=function(e){return null==e?0:e.match(v)?parseInt(e,16):parseFloat(e)},ut=function(e){return e instanceof L&&\"arguments\"===e.value&&!e.asKey},at=function(e){return e instanceof L&&\"this\"===e.value&&!e.asKey||e instanceof a&&e.bound||e instanceof o&&e.isSuper},ot=function(e){return e.isComplex()||(\"function\"==typeof e.isAssignable?e.isAssignable():void 0)},yt=function(e,t,n){var r;if(r=t[n].unfoldSoak(e))return t[n]=r.body,r.body=new Q(t),r}}.call(this),t.exports}(),_dereq_[\"./sourcemap\"]=function(){var e={},t={exports:e};return function(){var e,n;e=function(){function e(e){this.line=e,this.columns=[]}return e.prototype.add=function(e,t,n){var r,i;return i=t[0],r=t[1],null==n&&(n={}),this.columns[e]&&n.noReplace?void 0:this.columns[e]={line:this.line,column:e,sourceLine:i,sourceColumn:r}},e.prototype.sourceLocation=function(e){for(var t;!((t=this.columns[e])||0>=e);)e--;return t&&[t.sourceLine,t.sourceColumn]},e}(),n=function(){function t(){this.lines=[]}var n,r,i,s;return t.prototype.add=function(t,n,r){var i,s,o,u;return null==r&&(r={}),o=n[0],s=n[1],u=(i=this.lines)[o]||(i[o]=new e(o)),u.add(s,t,r)},t.prototype.sourceLocation=function(e){var t,n,r;for(n=e[0],t=e[1];!((r=this.lines[n])||0>=n);)n--;return r&&r.sourceLocation(t)},t.prototype.generate=function(e,t){var n,r,i,s,o,u,a,f,l,c,h,p,d,v,m,g;for(null==e&&(e={}),null==t&&(t=null),g=0,s=0,u=0,o=0,p=!1,n=\"\",d=this.lines,c=r=0,a=d.length;a>r;c=++r)if(l=d[c])for(v=l.columns,i=0,f=v.length;f>i;i++)if(h=v[i]){for(;h.line>g;)s=0,p=!1,n+=\";\",g++;p&&(n+=\",\",p=!1),n+=this.encodeVlq(h.column-s),s=h.column,n+=this.encodeVlq(0),n+=this.encodeVlq(h.sourceLine-u),u=h.sourceLine,n+=this.encodeVlq(h.sourceColumn-o),o=h.sourceColumn,p=!0}return m={version:3,file:e.generatedFile||\"\",sourceRoot:e.sourceRoot||\"\",sources:e.sourceFiles||[\"\"],names:[],mappings:n},e.inline&&(m.sourcesContent=[t]),JSON.stringify(m,null,2)},i=5,r=1<<i,s=r-1,t.prototype.encodeVlq=function(e){var t,n,o,u;for(t=\"\",o=0>e?1:0,u=(Math.abs(e)<<1)+o;u||!t;)n=u&s,u>>=i,u&&(n|=r),t+=this.encodeBase64(n);return t},n=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",t.prototype.encodeBase64=function(e){return n[e]||function(){throw Error(\"Cannot Base64 encode value: \"+e)}()},t}(),t.exports=n}.call(this),t.exports}(),_dereq_[\"./coffee-script\"]=function(){var e={},t={exports:e};return function(){var t,n,r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y,b={}.hasOwnProperty,w=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};if(u=_dereq_(\"fs\"),g=_dereq_(\"vm\"),d=_dereq_(\"path\"),t=_dereq_(\"./lexer\").Lexer,p=_dereq_(\"./parser\").parser,f=_dereq_(\"./helpers\"),n=_dereq_(\"./sourcemap\"),e.VERSION=\"1.9.3\",e.FILE_EXTENSIONS=[\".coffee\",\".litcoffee\",\".coffee.md\"],e.helpers=f,y=function(e){return function(t,n){var r;null==n&&(n={});try{return e.call(this,t,n)}catch(i){throw(r=i,\"string\"!=typeof t)?r:f.updateSyntaxError(r,t,n.filename)}}},e.compile=i=y(function(e,t){var r,i,s,o,u,a,l,c,d,v,m,g,y,b,w;for(g=f.merge,o=f.extend,t=o({},t),t.sourceMap&&(m=new n),w=h.tokenize(e,t),t.referencedVars=function(){var e,t,n;for(n=[],e=0,t=w.length;t>e;e++)b=w[e],b.variable&&n.push(b[1]);return n}(),a=p.parse(w).compileToFragments(t),s=0,t.header&&(s+=1),t.shiftLine&&(s+=1),i=0,d=\"\",c=0,v=a.length;v>c;c++)u=a[c],t.sourceMap&&(u.locationData&&!/^[;\\s]*$/.test(u.code)&&m.add([u.locationData.first_line,u.locationData.first_column],[s,i],{noReplace:!0}),y=f.count(u.code,\"\\n\"),s+=y,y?i=u.code.length-(u.code.lastIndexOf(\"\\n\")+1):i+=u.code.length),d+=u.code;return t.header&&(l=\"Generated by CoffeeScript \"+this.VERSION,d=\"// \"+l+\"\\n\"+d),t.sourceMap?(r={js:d},r.sourceMap=m,r.v3SourceMap=m.generate(t,e),r):d}),e.tokens=y(function(e,t){return h.tokenize(e,t)}),e.nodes=y(function(e,t){return\"string\"==typeof e?p.parse(h.tokenize(e,t)):p.parse(e)}),e.run=function(e,t){var n,r,s,o;return null==t&&(t={}),s=_dereq_.main,s.filename=process.argv[1]=t.filename?u.realpathSync(t.filename):\".\",s.moduleCache&&(s.moduleCache={}),r=t.filename?d.dirname(u.realpathSync(t.filename)):u.realpathSync(\".\"),s.paths=_dereq_(\"module\")._nodeModulePaths(r),(!f.isCoffee(s.filename)||_dereq_.extensions)&&(n=i(e,t),e=null!=(o=n.js)?o:n),s._compile(e,s.filename)},e.eval=function(e,t){var n,r,s,o,u,a,f,l,c,h,p,v,m,y,w,E,S;if(null==t&&(t={}),e=e.trim()){if(o=null!=(v=g.Script.createContext)?v:g.createContext,a=null!=(m=g.isContext)?m:function(){return t.sandbox instanceof o().constructor},o){if(null!=t.sandbox){if(a(t.sandbox))E=t.sandbox;else{E=o(),y=t.sandbox;for(l in y)b.call(y,l)&&(S=y[l],E[l]=S)}E.global=E.root=E.GLOBAL=E}else E=global;if(E.__filename=t.filename||\"eval\",E.__dirname=d.dirname(E.__filename),E===global&&!E.module&&!E.require){for(n=_dereq_(\"module\"),E.module=r=new n(t.modulename||\"eval\"),E.require=s=function(e){return n._load(e,r,!0)},r.filename=E.__filename,w=Object.getOwnPropertyNames(_dereq_),u=0,c=w.length;c>u;u++)p=w[u],\"paths\"!==p&&(s[p]=_dereq_[p]);s.paths=r.paths=n._nodeModulePaths(process.cwd()),s.resolve=function(e){return n._resolveFilename(e,r)}}}h={};for(l in t)b.call(t,l)&&(S=t[l],h[l]=S);return h.bare=!0,f=i(e,h),E===global?g.runInThisContext(f):g.runInContext(f,E)}},e.register=function(){return _dereq_(\"./register\")},_dereq_.extensions)for(v=this.FILE_EXTENSIONS,l=0,c=v.length;c>l;l++)s=v[l],null==(r=_dereq_.extensions)[s]&&(r[s]=function(){throw Error(\"Use CoffeeScript.register() or require the coffee-script/register module to require \"+s+\" files.\")});e._compileFile=function(e,t){var n,r,s,o;null==t&&(t=!1),s=u.readFileSync(e,\"utf8\"),o=65279===s.charCodeAt(0)?s.substring(1):s;try{n=i(o,{filename:e,sourceMap:t,literate:f.isLiterate(e)})}catch(a){throw r=a,f.updateSyntaxError(r,o,e)}return n},h=new t,p.lexer={lex:function(){var e,t;return t=p.tokens[this.pos++],t?(e=t[0],this.yytext=t[1],this.yylloc=t[2],p.errorToken=t.origin||t,this.yylineno=this.yylloc.first_line):e=\"\",e},setInput:function(e){return p.tokens=e,this.pos=0},upcomingInput:function(){return\"\"}},p.yy=_dereq_(\"./nodes\"),p.yy.parseError=function(e,t){var n,r,i,s,o,u;return o=t.token,s=p.errorToken,u=p.tokens,r=s[0],i=s[1],n=s[2],i=function(){switch(!1){case s!==u[u.length-1]:return\"end of input\";case\"INDENT\"!==r&&\"OUTDENT\"!==r:return\"indentation\";case\"IDENTIFIER\"!==r&&\"NUMBER\"!==r&&\"STRING\"!==r&&\"STRING_START\"!==r&&\"REGEX\"!==r&&\"REGEX_START\"!==r:return r.replace(/_START$/,\"\").toLowerCase();default:return f.nameWhitespaceCharacter(i)}}(),f.throwSyntaxError(\"unexpected \"+i,n)},o=function(e,t){var n,r,i,s,o,u,a,f,l,c,h,p;return s=void 0,i=\"\",e.isNative()?i=\"native\":(e.isEval()?(s=e.getScriptNameOrSourceURL(),s||(i=e.getEvalOrigin()+\", \")):s=e.getFileName(),s||(s=\"<anonymous>\"),f=e.getLineNumber(),r=e.getColumnNumber(),c=t(s,f,r),i=c?s+\":\"+c[0]+\":\"+c[1]:s+\":\"+f+\":\"+r),o=e.getFunctionName(),u=e.isConstructor(),a=!e.isToplevel()&&!u,a?(l=e.getMethodName(),p=e.getTypeName(),o?(h=n=\"\",p&&o.indexOf(p)&&(h=p+\".\"),l&&o.indexOf(\".\"+l)!==o.length-l.length-1&&(n=\" [as \"+l+\"]\"),\"\"+h+o+n+\" (\"+i+\")\"):p+\".\"+(l||\"<anonymous>\")+\" (\"+i+\")\"):u?\"new \"+(o||\"<anonymous>\")+\" (\"+i+\")\":o?o+\" (\"+i+\")\":i},m={},a=function(t){var n,r;if(m[t])return m[t];if(r=null!=d?d.extname(t):void 0,!(0>w.call(e.FILE_EXTENSIONS,r)))return n=e._compileFile(t,!0),m[t]=n.sourceMap},Error.prepareStackTrace=function(t,n){var r,i,s;return s=function(e,t,n){var r,i;return i=a(e),i&&(r=i.sourceLocation([t-1,n-1])),r?[r[0]+1,r[1]+1]:null},i=function(){var t,i,u;for(u=[],t=0,i=n.length;i>t&&(r=n[t],r.getFunction()!==e.run);t++)u.push(\"  at \"+o(r,s));return u}(),\"\"+t+\"\\n\"+i.join(\"\\n\")+\"\\n\"}}.call(this),t.exports}(),_dereq_[\"./browser\"]=function(){var exports={},module={exports:exports};return function(){var CoffeeScript,compile,runScripts,indexOf=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};CoffeeScript=_dereq_(\"./coffee-script\"),CoffeeScript.require=_dereq_,compile=CoffeeScript.compile,CoffeeScript.eval=function(code,options){return null==options&&(options={}),null==options.bare&&(options.bare=!0),eval(compile(code,options))},CoffeeScript.run=function(e,t){return null==t&&(t={}),t.bare=!0,t.shiftLine=!0,Function(compile(e,t))()},\"undefined\"!=typeof window&&null!==window&&(\"undefined\"!=typeof btoa&&null!==btoa&&\"undefined\"!=typeof JSON&&null!==JSON&&\"undefined\"!=typeof unescape&&null!==unescape&&\"undefined\"!=typeof encodeURIComponent&&null!==encodeURIComponent&&(compile=function(e,t){var n,r,i;return null==t&&(t={}),t.sourceMap=!0,t.inline=!0,r=CoffeeScript.compile(e,t),n=r.js,i=r.v3SourceMap,n+\"\\n//# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(i)))+\"\\n//# sourceURL=coffeescript\"}),CoffeeScript.load=function(e,t,n,r){var i;return null==n&&(n={}),null==r&&(r=!1),n.sourceFiles=[e],i=window.ActiveXObject?new window.ActiveXObject(\"Microsoft.XMLHTTP\"):new window.XMLHttpRequest,i.open(\"GET\",e,!0),\"overrideMimeType\"in i&&i.overrideMimeType(\"text/plain\"),i.onreadystatechange=function(){var s,o;if(4===i.readyState){if(0!==(o=i.status)&&200!==o)throw Error(\"Could not load \"+e);if(s=[i.responseText,n],r||CoffeeScript.run.apply(CoffeeScript,s),t)return t(s)}},i.send(null)},runScripts=function(){var e,t,n,r,i,s,o,u,a,f,l;for(l=window.document.getElementsByTagName(\"script\"),t=[\"text/coffeescript\",\"text/literate-coffeescript\"],e=function(){var e,n,r,i;for(i=[],e=0,n=l.length;n>e;e++)a=l[e],r=a.type,indexOf.call(t,r)>=0&&i.push(a);return i}(),s=0,n=function(){var t;return t=e[s],t instanceof Array?(CoffeeScript.run.apply(CoffeeScript,t),s++,n()):void 0},r=function(r,i){var s,o;return s={literate:r.type===t[1]},o=r.src||r.getAttribute(\"data-src\"),o?CoffeeScript.load(o,function(t){return e[i]=t,n()},s,!0):(s.sourceFiles=[\"embedded\"],e[i]=[r.innerHTML,s])},i=o=0,u=e.length;u>o;i=++o)f=e[i],r(f,i);return n()},window.addEventListener?window.addEventListener(\"DOMContentLoaded\",runScripts,!1):window.attachEvent(\"onload\",runScripts))}.call(this),module.exports}(),_dereq_[\"./coffee-script\"]}();\"function\"==typeof define&&define.amd?define(function(){return CoffeeScript}):root.CoffeeScript=CoffeeScript}(this)}),ace.define(\"ace/mode/coffee_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/coffee/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../worker/mirror\").Mirror,s=e(\"../mode/coffee/coffee\");window.addEventListener=function(){};var o=t.Worker=function(e){i.call(this,e),this.setTimeout(250)};r.inherits(o,i),function(){this.onUpdate=function(){var e=this.doc.getValue(),t=[];try{s.compile(e)}catch(n){var r=n.location;r&&t.push({row:r.first_line,column:r.first_column,endRow:r.last_line,endColumn:r.last_column,text:n.message,type:\"error\"})}this.sender.emit(\"annotate\",t)}}.call(o.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,\"sentinel\",{}),\"sentinel\"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t===\"undefined\"||t===\"boolean\"||t===\"number\"||t===\"string\"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n==\"function\"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r==\"function\"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!=\"function\")throw new TypeError(\"Function.prototype.bind called on incompatible \"+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,\"__defineGetter__\"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,\"XXX\"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)==\"[object Array]\"});var m=Object(\"a\"),g=m[0]!=\"a\"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduce of empty array with no initial value\");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError(\"reduce of empty array with no initial value\")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduceRight of empty array with no initial value\");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError(\"reduceRight of empty array with no initial value\")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!=\"object\")throw new TypeError(\"typeof prototype[\"+typeof t+\"] != 'object'\");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document==\"undefined\"||w(document.createElement(\"div\"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T=\"Property description must be an object: \",N=\"Object.defineProperty called on non-object: \",C=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(t,n,r){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(N+t);if(typeof r!=\"object\"&&typeof r!=\"function\"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,\"value\"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,\"get\")&&l(t,n,r.get),f(r,\"set\")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n==\"function\"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n=\"\";while(f(t,n))n+=\"?\";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!=\"object\"&&typeof e!=\"function\"||e===null)throw new TypeError(\"Object.keys called on a non-object\");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=\"\t\\n\u000b\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\";if(!String.prototype.trim||_.trim()){_=\"[\"+_+\"]\";var D=new RegExp(\"^\"+_+_+\"*\"),P=new RegExp(_+_+\"*$\");String.prototype.trim=function(){return String(this).replace(D,\"\").replace(P,\"\")}}var F=function(e){if(e==null)throw new TypeError(\"can't convert \"+e+\" to object\");return Object(e)}})"
  },
  {
    "path": "lib/src-min-noconflict/worker-css.js",
    "content": "\"no use strict\";(function(e){function t(e,t){var n=e,r=\"\";while(n){var i=t[n];if(typeof i==\"string\")return i+r;if(i)return i.location.replace(/\\/*$/,\"/\")+(r||i.main||i.name);if(i===!1)return\"\";var s=n.lastIndexOf(\"/\");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!=\"undefined\"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:\"error\",data:{message:e,data:i.data,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf(\"!\")!==-1){var r=n.split(\"!\");return e.normalizeModule(t,r[0])+\"!\"+e.normalizeModule(t,r[1])}if(n.charAt(0)==\".\"){var i=t.split(\"/\").slice(0,-1).join(\"/\");n=(i?i+\"/\":\"\")+n;while(n.indexOf(\".\")!==-1&&s!=n){var s=n;n=n.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log(\"unable to load \"+i);var o=t(i,e.require.tlns);return o.slice(-3)!=\".js\"&&(o+=\".js\"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!=\"string\"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!=\"function\"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=[\"require\",\"exports\",\"module\"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case\"require\":return i;case\"exports\":return e.exports;case\"module\":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},require.tlns={},e.initBaseUrls=function(t){for(var n in t)require.tlns[n]=t[n]},e.initSender=function(){var n=e.require(\"ace/lib/event_emitter\").EventEmitter,r=e.require(\"ace/lib/oop\"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:\"call\",id:t,data:e})},this.emit=function(e,t){postMessage({type:\"event\",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error(\"Unknown command:\"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),require(\"ace/lib/es5-shim\"),r=e.sender=e.initSender();var s=require(i.module)[i.classname];n=e.main=new s(r)}}})(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split(\"\").reverse().join(\"\")},t.stringRepeat=function(e,t){var n=\"\";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\\s\\s*/,i=/\\s\\s*$/;t.stringTrimLeft=function(e){return e.replace(r,\"\")},t.stringTrimRight=function(e){return e.replace(i,\"\")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]==\"object\"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!=\"object\"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}if(Object.prototype.toString.call(e)!==\"[object Object]\")return e;t={};for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},t.escapeHTML=function(e){return e.replace(/&/g,\"&#38;\").replace(/\"/g,\"&#34;\").replace(/'/g,\"&#39;\").replace(/</g,\"&#60;\")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e==\"object\"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e==\"object\"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e,t){throw console.log(\"Invalid Delta:\",e),\"Invalid Delta: \"+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!=\"insert\"&&t.action!=\"remove\"&&r(t,\"delta.action must be 'insert' or 'remove'\"),t.lines instanceof Array||r(t,\"delta.lines must be an Array\"),(!t.start||!t.end)&&r(t,\"delta.start/end must be an present\");var n=t.start;i(e,t.start)||r(t,\"delta.start must be contained in document\");var s=t.end;t.action==\"remove\"&&!i(e,s)&&r(t,\"delta.end must contained in document for 'remove' actions\");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,\"delta.range must match delta lines\")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||\"\";switch(t.action){case\"insert\":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case\"remove\":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!=\"object\"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?\"unshift\":\"push\"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n==\"undefined\"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action==\"insert\",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal(\"change\",{old:i,value:r})},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./apply_delta\").applyDelta,s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=function(e){this.$lines=[\"\"],e.length===0?this.$lines=[\"\"]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},\"aaa\".split(/a/).length===0?this.$split=function(e){return e.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:this.$split=function(e){return e.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=t?t[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal(\"changeNewLineMode\")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==\"\\r\\n\"||e==\"\\r\"||e==\"\\n\"},this.getLine=function(e){return this.$lines[e]||\"\"},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||\"\").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(e,[\"\",\"\"])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:\"insert\",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([\"\"]),n=0):(t=[\"\"].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:\"insert\",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:\"remove\",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:\"remove\",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:\"remove\",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action==\"insert\";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal(\"change\",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(\"\"),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action==\"insert\"?\"remove\":\"insert\",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),ace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=e(\"../document\").Document,s=e(\"../lib/lang\"),o=t.Mirror=function(e){this.sender=e;var t=this.doc=new i(\"\"),n=this.deferredUpdate=s.delayedCall(this.onUpdate.bind(this)),r=this;e.on(\"change\",function(e){var i=e.data;if(i[0].start)t.applyDeltas(i);else for(var s=0;s<i.length;s+=2){if(Array.isArray(i[s+1]))var o={action:\"insert\",start:i[s],lines:i[s+1]};else var o={action:\"remove\",start:i[s],end:i[s+1]};t.applyDelta(o,!0)}if(r.$timeout)return n.schedule(r.$timeout);r.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),ace.define(\"ace/mode/css/csslint\",[\"require\",\"exports\",\"module\"],function(require,exports,module){function objectToString(e){return Object.prototype.toString.call(e)}function clone(e,t,n,r){function u(e,n){if(e===null)return null;if(n==0)return e;var a;if(typeof e!=\"object\")return e;if(util.isArray(e))a=[];else if(util.isRegExp(e))a=new RegExp(e.source,util.getRegExpFlags(e)),e.lastIndex&&(a.lastIndex=e.lastIndex);else if(util.isDate(e))a=new Date(e.getTime());else{if(o&&Buffer.isBuffer(e))return a=new Buffer(e.length),e.copy(a),a;typeof r==\"undefined\"?a=Object.create(Object.getPrototypeOf(e)):a=Object.create(r)}if(t){var f=i.indexOf(e);if(f!=-1)return s[f];i.push(e),s.push(a)}for(var l in e)a[l]=u(e[l],n-1);return a}var i=[],s=[],o=typeof Buffer!=\"undefined\";return typeof t==\"undefined\"&&(t=!0),typeof n==\"undefined\"&&(n=Infinity),u(e,n)}function Reporter(e,t){this.messages=[],this.stats=[],this.lines=e,this.ruleset=t}var parserlib={};(function(){function e(){this._listeners={}}function t(e){this._input=e.replace(/\\n\\r?/g,\"\\n\"),this._line=1,this._col=1,this._cursor=0}function n(e,t,n){this.col=n,this.line=t,this.message=e}function r(e,t,n,r){this.col=n,this.line=t,this.text=e,this.type=r}function i(e,n){this._reader=e?new t(e.toString()):null,this._token=null,this._tokenData=n,this._lt=[],this._ltIndex=0,this._ltIndexCache=[]}e.prototype={constructor:e,addListener:function(e,t){this._listeners[e]||(this._listeners[e]=[]),this._listeners[e].push(t)},fire:function(e){typeof e==\"string\"&&(e={type:e}),typeof e.target!=\"undefined\"&&(e.target=this);if(typeof e.type==\"undefined\")throw new Error(\"Event object missing 'type' property.\");if(this._listeners[e.type]){var t=this._listeners[e.type].concat();for(var n=0,r=t.length;n<r;n++)t[n].call(this,e)}},removeListener:function(e,t){if(this._listeners[e]){var n=this._listeners[e];for(var r=0,i=n.length;r<i;r++)if(n[r]===t){n.splice(r,1);break}}}},t.prototype={constructor:t,getCol:function(){return this._col},getLine:function(){return this._line},eof:function(){return this._cursor==this._input.length},peek:function(e){var t=null;return e=typeof e==\"undefined\"?1:e,this._cursor<this._input.length&&(t=this._input.charAt(this._cursor+e-1)),t},read:function(){var e=null;return this._cursor<this._input.length&&(this._input.charAt(this._cursor)==\"\\n\"?(this._line++,this._col=1):this._col++,e=this._input.charAt(this._cursor++)),e},mark:function(){this._bookmark={cursor:this._cursor,line:this._line,col:this._col}},reset:function(){this._bookmark&&(this._cursor=this._bookmark.cursor,this._line=this._bookmark.line,this._col=this._bookmark.col,delete this._bookmark)},readTo:function(e){var t=\"\",n;while(t.length<e.length||t.lastIndexOf(e)!=t.length-e.length){n=this.read();if(!n)throw new Error('Expected \"'+e+'\" at line '+this._line+\", col \"+this._col+\".\");t+=n}return t},readWhile:function(e){var t=\"\",n=this.read();while(n!==null&&e(n))t+=n,n=this.read();return t},readMatch:function(e){var t=this._input.substring(this._cursor),n=null;return typeof e==\"string\"?t.indexOf(e)===0&&(n=this.readCount(e.length)):e instanceof RegExp&&e.test(t)&&(n=this.readCount(RegExp.lastMatch.length)),n},readCount:function(e){var t=\"\";while(e--)t+=this.read();return t}},n.prototype=new Error,r.fromToken=function(e){return new r(e.value,e.startLine,e.startCol)},r.prototype={constructor:r,valueOf:function(){return this.text},toString:function(){return this.text}},i.createTokenData=function(e){var t=[],n={},r=e.concat([]),i=0,s=r.length+1;r.UNKNOWN=-1,r.unshift({name:\"EOF\"});for(;i<s;i++)t.push(r[i].name),r[r[i].name]=i,r[i].text&&(n[r[i].text]=i);return r.name=function(e){return t[e]},r.type=function(e){return n[e]},r},i.prototype={constructor:i,match:function(e,t){e instanceof Array||(e=[e]);var n=this.get(t),r=0,i=e.length;while(r<i)if(n==e[r++])return!0;return this.unget(),!1},mustMatch:function(e,t){var r;e instanceof Array||(e=[e]);if(!this.match.apply(this,arguments))throw r=this.LT(1),new n(\"Expected \"+this._tokenData[e[0]].name+\" at line \"+r.startLine+\", col \"+r.startCol+\".\",r.startLine,r.startCol)},advance:function(e,t){while(this.LA(0)!==0&&!this.match(e,t))this.get();return this.LA(0)},get:function(e){var t=this._tokenData,n=this._reader,r,i=0,s=t.length,o=!1,u,a;if(this._lt.length&&this._ltIndex>=0&&this._ltIndex<this._lt.length){i++,this._token=this._lt[this._ltIndex++],a=t[this._token.type];while(a.channel!==undefined&&e!==a.channel&&this._ltIndex<this._lt.length)this._token=this._lt[this._ltIndex++],a=t[this._token.type],i++;if((a.channel===undefined||e===a.channel)&&this._ltIndex<=this._lt.length)return this._ltIndexCache.push(i),this._token.type}return u=this._getToken(),u.type>-1&&!t[u.type].hide&&(u.channel=t[u.type].channel,this._token=u,this._lt.push(u),this._ltIndexCache.push(this._lt.length-this._ltIndex+i),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),a=t[u.type],a&&(a.hide||a.channel!==undefined&&e!==a.channel)?this.get(e):u.type},LA:function(e){var t=e,n;if(e>0){if(e>5)throw new Error(\"Too much lookahead.\");while(t)n=this.get(),t--;while(t<e)this.unget(),t++}else if(e<0){if(!this._lt[this._ltIndex+e])throw new Error(\"Too much lookbehind.\");n=this._lt[this._ltIndex+e].type}else n=this._token.type;return n},LT:function(e){return this.LA(e),this._lt[this._ltIndex+e-1]},peek:function(){return this.LA(1)},token:function(){return this._token},tokenName:function(e){return e<0||e>this._tokenData.length?\"UNKNOWN_TOKEN\":this._tokenData[e].name},tokenType:function(e){return this._tokenData[e]||-1},unget:function(){if(!this._ltIndexCache.length)throw new Error(\"Too much lookahead.\");this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1]}},parserlib.util={StringReader:t,SyntaxError:n,SyntaxUnit:r,EventTarget:e,TokenStreamBase:i}})(),function(){function Combinator(e,t,n){SyntaxUnit.call(this,e,t,n,Parser.COMBINATOR_TYPE),this.type=\"unknown\",/^\\s+$/.test(e)?this.type=\"descendant\":e==\">\"?this.type=\"child\":e==\"+\"?this.type=\"adjacent-sibling\":e==\"~\"&&(this.type=\"sibling\")}function MediaFeature(e,t){SyntaxUnit.call(this,\"(\"+e+(t!==null?\":\"+t:\"\")+\")\",e.startLine,e.startCol,Parser.MEDIA_FEATURE_TYPE),this.name=e,this.value=t}function MediaQuery(e,t,n,r,i){SyntaxUnit.call(this,(e?e+\" \":\"\")+(t?t:\"\")+(t&&n.length>0?\" and \":\"\")+n.join(\" and \"),r,i,Parser.MEDIA_QUERY_TYPE),this.modifier=e,this.mediaType=t,this.features=n}function Parser(e){EventTarget.call(this),this.options=e||{},this._tokenStream=null}function PropertyName(e,t,n,r){SyntaxUnit.call(this,e,n,r,Parser.PROPERTY_NAME_TYPE),this.hack=t}function PropertyValue(e,t,n){SyntaxUnit.call(this,e.join(\" \"),t,n,Parser.PROPERTY_VALUE_TYPE),this.parts=e}function PropertyValueIterator(e){this._i=0,this._parts=e.parts,this._marks=[],this.value=e}function PropertyValuePart(text,line,col){SyntaxUnit.call(this,text,line,col,Parser.PROPERTY_VALUE_PART_TYPE),this.type=\"unknown\";var temp;if(/^([+\\-]?[\\d\\.]+)([a-z]+)$/i.test(text)){this.type=\"dimension\",this.value=+RegExp.$1,this.units=RegExp.$2;switch(this.units.toLowerCase()){case\"em\":case\"rem\":case\"ex\":case\"px\":case\"cm\":case\"mm\":case\"in\":case\"pt\":case\"pc\":case\"ch\":case\"vh\":case\"vw\":case\"vmax\":case\"vmin\":this.type=\"length\";break;case\"deg\":case\"rad\":case\"grad\":this.type=\"angle\";break;case\"ms\":case\"s\":this.type=\"time\";break;case\"hz\":case\"khz\":this.type=\"frequency\";break;case\"dpi\":case\"dpcm\":this.type=\"resolution\"}}else/^([+\\-]?[\\d\\.]+)%$/i.test(text)?(this.type=\"percentage\",this.value=+RegExp.$1):/^([+\\-]?\\d+)$/i.test(text)?(this.type=\"integer\",this.value=+RegExp.$1):/^([+\\-]?[\\d\\.]+)$/i.test(text)?(this.type=\"number\",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type=\"color\",temp=RegExp.$1,temp.length==3?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)/i.test(text)?(this.type=\"color\",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\\(\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*\\)/i.test(text)?(this.type=\"color\",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100):/^rgba\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d\\.]+)\\s*\\)/i.test(text)?(this.type=\"color\",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3,this.alpha=+RegExp.$4):/^rgba\\(\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*,\\s*([\\d\\.]+)\\s*\\)/i.test(text)?(this.type=\"color\",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100,this.alpha=+RegExp.$4):/^hsl\\(\\s*(\\d+)\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*\\)/i.test(text)?(this.type=\"color\",this.hue=+RegExp.$1,this.saturation=+RegExp.$2/100,this.lightness=+RegExp.$3/100):/^hsla\\(\\s*(\\d+)\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*,\\s*([\\d\\.]+)\\s*\\)/i.test(text)?(this.type=\"color\",this.hue=+RegExp.$1,this.saturation=+RegExp.$2/100,this.lightness=+RegExp.$3/100,this.alpha=+RegExp.$4):/^url\\([\"']?([^\\)\"']+)[\"']?\\)/i.test(text)?(this.type=\"uri\",this.uri=RegExp.$1):/^([^\\(]+)\\(/i.test(text)?(this.type=\"function\",this.name=RegExp.$1,this.value=text):/^[\"'][^\"']*[\"']/.test(text)?(this.type=\"string\",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type=\"color\",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\\,\\/]$/.test(text)?(this.type=\"operator\",this.value=text):/^[a-z\\-_\\u0080-\\uFFFF][a-z0-9\\-_\\u0080-\\uFFFF]*$/i.test(text)&&(this.type=\"identifier\",this.value=text)}function Selector(e,t,n){SyntaxUnit.call(this,e.join(\" \"),t,n,Parser.SELECTOR_TYPE),this.parts=e,this.specificity=Specificity.calculate(this)}function SelectorPart(e,t,n,r,i){SyntaxUnit.call(this,n,r,i,Parser.SELECTOR_PART_TYPE),this.elementName=e,this.modifiers=t}function SelectorSubPart(e,t,n,r){SyntaxUnit.call(this,e,n,r,Parser.SELECTOR_SUB_PART_TYPE),this.type=t,this.args=[]}function Specificity(e,t,n,r){this.a=e,this.b=t,this.c=n,this.d=r}function isHexDigit(e){return e!==null&&h.test(e)}function isDigit(e){return e!==null&&/\\d/.test(e)}function isWhitespace(e){return e!==null&&/\\s/.test(e)}function isNewLine(e){return e!==null&&nl.test(e)}function isNameStart(e){return e!==null&&/[a-z_\\u0080-\\uFFFF\\\\]/i.test(e)}function isNameChar(e){return e!==null&&(isNameStart(e)||/[0-9\\-\\\\]/.test(e))}function isIdentStart(e){return e!==null&&(isNameStart(e)||/\\-\\\\/.test(e))}function mix(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function TokenStream(e){TokenStreamBase.call(this,e,Tokens)}function ValidationError(e,t,n){this.col=n,this.line=t,this.message=e}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:\"#f0f8ff\",antiquewhite:\"#faebd7\",aqua:\"#00ffff\",aquamarine:\"#7fffd4\",azure:\"#f0ffff\",beige:\"#f5f5dc\",bisque:\"#ffe4c4\",black:\"#000000\",blanchedalmond:\"#ffebcd\",blue:\"#0000ff\",blueviolet:\"#8a2be2\",brown:\"#a52a2a\",burlywood:\"#deb887\",cadetblue:\"#5f9ea0\",chartreuse:\"#7fff00\",chocolate:\"#d2691e\",coral:\"#ff7f50\",cornflowerblue:\"#6495ed\",cornsilk:\"#fff8dc\",crimson:\"#dc143c\",cyan:\"#00ffff\",darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",darkgray:\"#a9a9a9\",darkgrey:\"#a9a9a9\",darkgreen:\"#006400\",darkkhaki:\"#bdb76b\",darkmagenta:\"#8b008b\",darkolivegreen:\"#556b2f\",darkorange:\"#ff8c00\",darkorchid:\"#9932cc\",darkred:\"#8b0000\",darksalmon:\"#e9967a\",darkseagreen:\"#8fbc8f\",darkslateblue:\"#483d8b\",darkslategray:\"#2f4f4f\",darkslategrey:\"#2f4f4f\",darkturquoise:\"#00ced1\",darkviolet:\"#9400d3\",deeppink:\"#ff1493\",deepskyblue:\"#00bfff\",dimgray:\"#696969\",dimgrey:\"#696969\",dodgerblue:\"#1e90ff\",firebrick:\"#b22222\",floralwhite:\"#fffaf0\",forestgreen:\"#228b22\",fuchsia:\"#ff00ff\",gainsboro:\"#dcdcdc\",ghostwhite:\"#f8f8ff\",gold:\"#ffd700\",goldenrod:\"#daa520\",gray:\"#808080\",grey:\"#808080\",green:\"#008000\",greenyellow:\"#adff2f\",honeydew:\"#f0fff0\",hotpink:\"#ff69b4\",indianred:\"#cd5c5c\",indigo:\"#4b0082\",ivory:\"#fffff0\",khaki:\"#f0e68c\",lavender:\"#e6e6fa\",lavenderblush:\"#fff0f5\",lawngreen:\"#7cfc00\",lemonchiffon:\"#fffacd\",lightblue:\"#add8e6\",lightcoral:\"#f08080\",lightcyan:\"#e0ffff\",lightgoldenrodyellow:\"#fafad2\",lightgray:\"#d3d3d3\",lightgrey:\"#d3d3d3\",lightgreen:\"#90ee90\",lightpink:\"#ffb6c1\",lightsalmon:\"#ffa07a\",lightseagreen:\"#20b2aa\",lightskyblue:\"#87cefa\",lightslategray:\"#778899\",lightslategrey:\"#778899\",lightsteelblue:\"#b0c4de\",lightyellow:\"#ffffe0\",lime:\"#00ff00\",limegreen:\"#32cd32\",linen:\"#faf0e6\",magenta:\"#ff00ff\",maroon:\"#800000\",mediumaquamarine:\"#66cdaa\",mediumblue:\"#0000cd\",mediumorchid:\"#ba55d3\",mediumpurple:\"#9370d8\",mediumseagreen:\"#3cb371\",mediumslateblue:\"#7b68ee\",mediumspringgreen:\"#00fa9a\",mediumturquoise:\"#48d1cc\",mediumvioletred:\"#c71585\",midnightblue:\"#191970\",mintcream:\"#f5fffa\",mistyrose:\"#ffe4e1\",moccasin:\"#ffe4b5\",navajowhite:\"#ffdead\",navy:\"#000080\",oldlace:\"#fdf5e6\",olive:\"#808000\",olivedrab:\"#6b8e23\",orange:\"#ffa500\",orangered:\"#ff4500\",orchid:\"#da70d6\",palegoldenrod:\"#eee8aa\",palegreen:\"#98fb98\",paleturquoise:\"#afeeee\",palevioletred:\"#d87093\",papayawhip:\"#ffefd5\",peachpuff:\"#ffdab9\",peru:\"#cd853f\",pink:\"#ffc0cb\",plum:\"#dda0dd\",powderblue:\"#b0e0e6\",purple:\"#800080\",red:\"#ff0000\",rosybrown:\"#bc8f8f\",royalblue:\"#4169e1\",saddlebrown:\"#8b4513\",salmon:\"#fa8072\",sandybrown:\"#f4a460\",seagreen:\"#2e8b57\",seashell:\"#fff5ee\",sienna:\"#a0522d\",silver:\"#c0c0c0\",skyblue:\"#87ceeb\",slateblue:\"#6a5acd\",slategray:\"#708090\",slategrey:\"#708090\",snow:\"#fffafa\",springgreen:\"#00ff7f\",steelblue:\"#4682b4\",tan:\"#d2b48c\",teal:\"#008080\",thistle:\"#d8bfd8\",tomato:\"#ff6347\",turquoise:\"#40e0d0\",violet:\"#ee82ee\",wheat:\"#f5deb3\",white:\"#ffffff\",whitesmoke:\"#f5f5f5\",yellow:\"#ffff00\",yellowgreen:\"#9acd32\",activeBorder:\"Active window border.\",activecaption:\"Active window caption.\",appworkspace:\"Background color of multiple document interface.\",background:\"Desktop background.\",buttonface:\"The face background color for 3-D elements that appear 3-D due to one layer of surrounding border.\",buttonhighlight:\"The color of the border facing the light source for 3-D elements that appear 3-D due to one layer of surrounding border.\",buttonshadow:\"The color of the border away from the light source for 3-D elements that appear 3-D due to one layer of surrounding border.\",buttontext:\"Text on push buttons.\",captiontext:\"Text in caption, size box, and scrollbar arrow box.\",graytext:\"Grayed (disabled) text. This color is set to #000 if the current display driver does not support a solid gray color.\",greytext:\"Greyed (disabled) text. This color is set to #000 if the current display driver does not support a solid grey color.\",highlight:\"Item(s) selected in a control.\",highlighttext:\"Text of item(s) selected in a control.\",inactiveborder:\"Inactive window border.\",inactivecaption:\"Inactive window caption.\",inactivecaptiontext:\"Color of text in an inactive caption.\",infobackground:\"Background color for tooltip controls.\",infotext:\"Text color for tooltip controls.\",menu:\"Menu background.\",menutext:\"Text in menus.\",scrollbar:\"Scroll bar gray area.\",threeddarkshadow:\"The color of the darker (generally outer) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.\",threedface:\"The face background color for 3-D elements that appear 3-D due to two concentric layers of surrounding border.\",threedhighlight:\"The color of the lighter (generally outer) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.\",threedlightshadow:\"The color of the darker (generally inner) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.\",threedshadow:\"The color of the lighter (generally inner) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.\",window:\"Window background.\",windowframe:\"Window frame.\",windowtext:\"Text in windows.\"};Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator,MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.DEFAULT_TYPE=0,Parser.COMBINATOR_TYPE=1,Parser.MEDIA_FEATURE_TYPE=2,Parser.MEDIA_QUERY_TYPE=3,Parser.PROPERTY_NAME_TYPE=4,Parser.PROPERTY_VALUE_TYPE=5,Parser.PROPERTY_VALUE_PART_TYPE=6,Parser.SELECTOR_TYPE=7,Parser.SELECTOR_PART_TYPE=8,Parser.SELECTOR_SUB_PART_TYPE=9,Parser.prototype=function(){var e=new EventTarget,t,n={constructor:Parser,DEFAULT_TYPE:0,COMBINATOR_TYPE:1,MEDIA_FEATURE_TYPE:2,MEDIA_QUERY_TYPE:3,PROPERTY_NAME_TYPE:4,PROPERTY_VALUE_TYPE:5,PROPERTY_VALUE_PART_TYPE:6,SELECTOR_TYPE:7,SELECTOR_PART_TYPE:8,SELECTOR_SUB_PART_TYPE:9,_stylesheet:function(){var e=this._tokenStream,t=null,n,r,i;this.fire(\"startstylesheet\"),this._charset(),this._skipCruft();while(e.peek()==Tokens.IMPORT_SYM)this._import(),this._skipCruft();while(e.peek()==Tokens.NAMESPACE_SYM)this._namespace(),this._skipCruft();i=e.peek();while(i>Tokens.EOF){try{switch(i){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.VIEWPORT_SYM:this._viewport(),this._skipCruft();break;case Tokens.UNKNOWN_SYM:e.get();if(!!this.options.strict)throw new SyntaxError(\"Unknown @ rule.\",e.LT(0).startLine,e.LT(0).startCol);this.fire({type:\"error\",error:null,message:\"Unknown @ rule: \"+e.LT(0).value+\".\",line:e.LT(0).startLine,col:e.LT(0).startCol}),n=0;while(e.advance([Tokens.LBRACE,Tokens.RBRACE])==Tokens.LBRACE)n++;while(n)e.advance([Tokens.RBRACE]),n--;break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset())switch(i){case Tokens.CHARSET_SYM:throw r=e.LT(1),this._charset(!1),new SyntaxError(\"@charset not allowed here.\",r.startLine,r.startCol);case Tokens.IMPORT_SYM:throw r=e.LT(1),this._import(!1),new SyntaxError(\"@import not allowed here.\",r.startLine,r.startCol);case Tokens.NAMESPACE_SYM:throw r=e.LT(1),this._namespace(!1),new SyntaxError(\"@namespace not allowed here.\",r.startLine,r.startCol);default:e.get(),this._unexpectedToken(e.token())}}}catch(s){if(!(s instanceof SyntaxError&&!this.options.strict))throw s;this.fire({type:\"error\",error:s,message:s.message,line:s.line,col:s.col})}i=e.peek()}i!=Tokens.EOF&&this._unexpectedToken(e.token()),this.fire(\"endstylesheet\")},_charset:function(e){var t=this._tokenStream,n,r,i,s;t.match(Tokens.CHARSET_SYM)&&(i=t.token().startLine,s=t.token().startCol,this._readWhitespace(),t.mustMatch(Tokens.STRING),r=t.token(),n=r.value,this._readWhitespace(),t.mustMatch(Tokens.SEMICOLON),e!==!1&&this.fire({type:\"charset\",charset:n,line:i,col:s}))},_import:function(e){var t=this._tokenStream,n,r,i,s=[];t.mustMatch(Tokens.IMPORT_SYM),i=t.token(),this._readWhitespace(),t.mustMatch([Tokens.STRING,Tokens.URI]),r=t.token().value.replace(/^(?:url\\()?[\"']?([^\"']+?)[\"']?\\)?$/,\"$1\"),this._readWhitespace(),s=this._media_query_list(),t.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),e!==!1&&this.fire({type:\"import\",uri:r,media:s,line:i.startLine,col:i.startCol})},_namespace:function(e){var t=this._tokenStream,n,r,i,s;t.mustMatch(Tokens.NAMESPACE_SYM),n=t.token().startLine,r=t.token().startCol,this._readWhitespace(),t.match(Tokens.IDENT)&&(i=t.token().value,this._readWhitespace()),t.mustMatch([Tokens.STRING,Tokens.URI]),s=t.token().value.replace(/(?:url\\()?[\"']([^\"']+)[\"']\\)?/,\"$1\"),this._readWhitespace(),t.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),e!==!1&&this.fire({type:\"namespace\",prefix:i,uri:s,line:n,col:r})},_media:function(){var e=this._tokenStream,t,n,r;e.mustMatch(Tokens.MEDIA_SYM),t=e.token().startLine,n=e.token().startCol,this._readWhitespace(),r=this._media_query_list(),e.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:\"startmedia\",media:r,line:t,col:n});for(;;)if(e.peek()==Tokens.PAGE_SYM)this._page();else if(e.peek()==Tokens.FONT_FACE_SYM)this._font_face();else if(e.peek()==Tokens.VIEWPORT_SYM)this._viewport();else if(!this._ruleset())break;e.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:\"endmedia\",media:r,line:t,col:n})},_media_query_list:function(){var e=this._tokenStream,t=[];this._readWhitespace(),(e.peek()==Tokens.IDENT||e.peek()==Tokens.LPAREN)&&t.push(this._media_query());while(e.match(Tokens.COMMA))this._readWhitespace(),t.push(this._media_query());return t},_media_query:function(){var e=this._tokenStream,t=null,n=null,r=null,i=[];e.match(Tokens.IDENT)&&(n=e.token().value.toLowerCase(),n!=\"only\"&&n!=\"not\"?(e.unget(),n=null):r=e.token()),this._readWhitespace(),e.peek()==Tokens.IDENT?(t=this._media_type(),r===null&&(r=e.token())):e.peek()==Tokens.LPAREN&&(r===null&&(r=e.LT(1)),i.push(this._media_expression()));if(t===null&&i.length===0)return null;this._readWhitespace();while(e.match(Tokens.IDENT))e.token().value.toLowerCase()!=\"and\"&&this._unexpectedToken(e.token()),this._readWhitespace(),i.push(this._media_expression());return new MediaQuery(n,t,i,r.startLine,r.startCol)},_media_type:function(){return this._media_feature()},_media_expression:function(){var e=this._tokenStream,t=null,n,r=null;return e.mustMatch(Tokens.LPAREN),t=this._media_feature(),this._readWhitespace(),e.match(Tokens.COLON)&&(this._readWhitespace(),n=e.LT(1),r=this._expression()),e.mustMatch(Tokens.RPAREN),this._readWhitespace(),new MediaFeature(t,r?new SyntaxUnit(r,n.startLine,n.startCol):null)},_media_feature:function(){var e=this._tokenStream;return e.mustMatch(Tokens.IDENT),SyntaxUnit.fromToken(e.token())},_page:function(){var e=this._tokenStream,t,n,r=null,i=null;e.mustMatch(Tokens.PAGE_SYM),t=e.token().startLine,n=e.token().startCol,this._readWhitespace(),e.match(Tokens.IDENT)&&(r=e.token().value,r.toLowerCase()===\"auto\"&&this._unexpectedToken(e.token())),e.peek()==Tokens.COLON&&(i=this._pseudo_page()),this._readWhitespace(),this.fire({type:\"startpage\",id:r,pseudo:i,line:t,col:n}),this._readDeclarations(!0,!0),this.fire({type:\"endpage\",id:r,pseudo:i,line:t,col:n})},_margin:function(){var e=this._tokenStream,t,n,r=this._margin_sym();return r?(t=e.token().startLine,n=e.token().startCol,this.fire({type:\"startpagemargin\",margin:r,line:t,col:n}),this._readDeclarations(!0),this.fire({type:\"endpagemargin\",margin:r,line:t,col:n}),!0):!1},_margin_sym:function(){var e=this._tokenStream;return e.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(e.token()):null},_pseudo_page:function(){var e=this._tokenStream;return e.mustMatch(Tokens.COLON),e.mustMatch(Tokens.IDENT),e.token().value},_font_face:function(){var e=this._tokenStream,t,n;e.mustMatch(Tokens.FONT_FACE_SYM),t=e.token().startLine,n=e.token().startCol,this._readWhitespace(),this.fire({type:\"startfontface\",line:t,col:n}),this._readDeclarations(!0),this.fire({type:\"endfontface\",line:t,col:n})},_viewport:function(){var e=this._tokenStream,t,n;e.mustMatch(Tokens.VIEWPORT_SYM),t=e.token().startLine,n=e.token().startCol,this._readWhitespace(),this.fire({type:\"startviewport\",line:t,col:n}),this._readDeclarations(!0),this.fire({type:\"endviewport\",line:t,col:n})},_operator:function(e){var t=this._tokenStream,n=null;if(t.match([Tokens.SLASH,Tokens.COMMA])||e&&t.match([Tokens.PLUS,Tokens.STAR,Tokens.MINUS]))n=t.token(),this._readWhitespace();return n?PropertyValuePart.fromToken(n):null},_combinator:function(){var e=this._tokenStream,t=null,n;return e.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(n=e.token(),t=new Combinator(n.value,n.startLine,n.startCol),this._readWhitespace()),t},_unary_operator:function(){var e=this._tokenStream;return e.match([Tokens.MINUS,Tokens.PLUS])?e.token().value:null},_property:function(){var e=this._tokenStream,t=null,n=null,r,i,s,o;return e.peek()==Tokens.STAR&&this.options.starHack&&(e.get(),i=e.token(),n=i.value,s=i.startLine,o=i.startCol),e.match(Tokens.IDENT)&&(i=e.token(),r=i.value,r.charAt(0)==\"_\"&&this.options.underscoreHack&&(n=\"_\",r=r.substring(1)),t=new PropertyName(r,n,s||i.startLine,o||i.startCol),this._readWhitespace()),t},_ruleset:function(){var e=this._tokenStream,t,n;try{n=this._selectors_group()}catch(r){if(r instanceof SyntaxError&&!this.options.strict){this.fire({type:\"error\",error:r,message:r.message,line:r.line,col:r.col}),t=e.advance([Tokens.RBRACE]);if(t!=Tokens.RBRACE)throw r;return!0}throw r}return n&&(this.fire({type:\"startrule\",selectors:n,line:n[0].line,col:n[0].col}),this._readDeclarations(!0),this.fire({type:\"endrule\",selectors:n,line:n[0].line,col:n[0].col})),n},_selectors_group:function(){var e=this._tokenStream,t=[],n;n=this._selector();if(n!==null){t.push(n);while(e.match(Tokens.COMMA))this._readWhitespace(),n=this._selector(),n!==null?t.push(n):this._unexpectedToken(e.LT(1))}return t.length?t:null},_selector:function(){var e=this._tokenStream,t=[],n=null,r=null,i=null;n=this._simple_selector_sequence();if(n===null)return null;t.push(n);do{r=this._combinator();if(r!==null)t.push(r),n=this._simple_selector_sequence(),n===null?this._unexpectedToken(e.LT(1)):t.push(n);else{if(!this._readWhitespace())break;i=new Combinator(e.token().value,e.token().startLine,e.token().startCol),r=this._combinator(),n=this._simple_selector_sequence(),n===null?r!==null&&this._unexpectedToken(e.LT(1)):(r!==null?t.push(r):t.push(i),t.push(n))}}while(!0);return new Selector(t,t[0].line,t[0].col)},_simple_selector_sequence:function(){var e=this._tokenStream,t=null,n=[],r=\"\",i=[function(){return e.match(Tokens.HASH)?new SelectorSubPart(e.token().value,\"id\",e.token().startLine,e.token().startCol):null},this._class,this._attrib,this._pseudo,this._negation],s=0,o=i.length,u=null,a=!1,f,l;f=e.LT(1).startLine,l=e.LT(1).startCol,t=this._type_selector(),t||(t=this._universal()),t!==null&&(r+=t);for(;;){if(e.peek()===Tokens.S)break;while(s<o&&u===null)u=i[s++].call(this);if(u===null){if(r===\"\")return null;break}s=0,n.push(u),r+=u.toString(),u=null}return r!==\"\"?new SelectorPart(t,n,r,f,l):null},_type_selector:function(){var e=this._tokenStream,t=this._namespace_prefix(),n=this._element_name();return n?(t&&(n.text=t+n.text,n.col-=t.length),n):(t&&(e.unget(),t.length>1&&e.unget()),null)},_class:function(){var e=this._tokenStream,t;return e.match(Tokens.DOT)?(e.mustMatch(Tokens.IDENT),t=e.token(),new SelectorSubPart(\".\"+t.value,\"class\",t.startLine,t.startCol-1)):null},_element_name:function(){var e=this._tokenStream,t;return e.match(Tokens.IDENT)?(t=e.token(),new SelectorSubPart(t.value,\"elementName\",t.startLine,t.startCol)):null},_namespace_prefix:function(){var e=this._tokenStream,t=\"\";if(e.LA(1)===Tokens.PIPE||e.LA(2)===Tokens.PIPE)e.match([Tokens.IDENT,Tokens.STAR])&&(t+=e.token().value),e.mustMatch(Tokens.PIPE),t+=\"|\";return t.length?t:null},_universal:function(){var e=this._tokenStream,t=\"\",n;return n=this._namespace_prefix(),n&&(t+=n),e.match(Tokens.STAR)&&(t+=\"*\"),t.length?t:null},_attrib:function(){var e=this._tokenStream,t=null,n,r;return e.match(Tokens.LBRACKET)?(r=e.token(),t=r.value,t+=this._readWhitespace(),n=this._namespace_prefix(),n&&(t+=n),e.mustMatch(Tokens.IDENT),t+=e.token().value,t+=this._readWhitespace(),e.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(t+=e.token().value,t+=this._readWhitespace(),e.mustMatch([Tokens.IDENT,Tokens.STRING]),t+=e.token().value,t+=this._readWhitespace()),e.mustMatch(Tokens.RBRACKET),new SelectorSubPart(t+\"]\",\"attribute\",r.startLine,r.startCol)):null},_pseudo:function(){var e=this._tokenStream,t=null,n=\":\",r,i;return e.match(Tokens.COLON)&&(e.match(Tokens.COLON)&&(n+=\":\"),e.match(Tokens.IDENT)?(t=e.token().value,r=e.token().startLine,i=e.token().startCol-n.length):e.peek()==Tokens.FUNCTION&&(r=e.LT(1).startLine,i=e.LT(1).startCol-n.length,t=this._functional_pseudo()),t&&(t=new SelectorSubPart(n+t,\"pseudo\",r,i))),t},_functional_pseudo:function(){var e=this._tokenStream,t=null;return e.match(Tokens.FUNCTION)&&(t=e.token().value,t+=this._readWhitespace(),t+=this._expression(),e.mustMatch(Tokens.RPAREN),t+=\")\"),t},_expression:function(){var e=this._tokenStream,t=\"\";while(e.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION,Tokens.SLASH]))t+=e.token().value,t+=this._readWhitespace();return t.length?t:null},_negation:function(){var e=this._tokenStream,t,n,r=\"\",i,s=null;return e.match(Tokens.NOT)&&(r=e.token().value,t=e.token().startLine,n=e.token().startCol,r+=this._readWhitespace(),i=this._negation_arg(),r+=i,r+=this._readWhitespace(),e.match(Tokens.RPAREN),r+=e.token().value,s=new SelectorSubPart(r,\"not\",t,n),s.args.push(i)),s},_negation_arg:function(){var e=this._tokenStream,t=[this._type_selector,this._universal,function(){return e.match(Tokens.HASH)?new SelectorSubPart(e.token().value,\"id\",e.token().startLine,e.token().startCol):null},this._class,this._attrib,this._pseudo],n=null,r=0,i=t.length,s,o,u,a;o=e.LT(1).startLine,u=e.LT(1).startCol;while(r<i&&n===null)n=t[r].call(this),r++;return n===null&&this._unexpectedToken(e.LT(1)),n.type==\"elementName\"?a=new SelectorPart(n,[],n.toString(),o,u):a=new SelectorPart(null,[n],n.toString(),o,u),a},_declaration:function(){var e=this._tokenStream,t=null,n=null,r=null,i=null,s=null,o=\"\";t=this._property();if(t!==null){e.mustMatch(Tokens.COLON),this._readWhitespace(),n=this._expr(),(!n||n.length===0)&&this._unexpectedToken(e.LT(1)),r=this._prio(),o=t.toString();if(this.options.starHack&&t.hack==\"*\"||this.options.underscoreHack&&t.hack==\"_\")o=t.text;try{this._validateProperty(o,n)}catch(u){s=u}return this.fire({type:\"property\",property:t,value:n,important:r,line:t.line,col:t.col,invalid:s}),!0}return!1},_prio:function(){var e=this._tokenStream,t=e.match(Tokens.IMPORTANT_SYM);return this._readWhitespace(),t},_expr:function(e){var t=this._tokenStream,n=[],r=null,i=null;r=this._term(e);if(r!==null){n.push(r);do{i=this._operator(e),i&&n.push(i),r=this._term(e);if(r===null)break;n.push(r)}while(!0)}return n.length>0?new PropertyValue(n,n[0].line,n[0].col):null},_term:function(e){var t=this._tokenStream,n=null,r=null,i=null,s,o,u;return n=this._unary_operator(),n!==null&&(o=t.token().startLine,u=t.token().startCol),t.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(r=this._ie_function(),n===null&&(o=t.token().startLine,u=t.token().startCol)):e&&t.match([Tokens.LPAREN,Tokens.LBRACE,Tokens.LBRACKET])?(s=t.token(),i=s.endChar,r=s.value+this._expr(e).text,n===null&&(o=t.token().startLine,u=t.token().startCol),t.mustMatch(Tokens.type(i)),r+=i,this._readWhitespace()):t.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(r=t.token().value,n===null&&(o=t.token().startLine,u=t.token().startCol),this._readWhitespace()):(s=this._hexcolor(),s===null?(n===null&&(o=t.LT(1).startLine,u=t.LT(1).startCol),r===null&&(t.LA(3)==Tokens.EQUALS&&this.options.ieFilters?r=this._ie_function():r=this._function())):(r=s.value,n===null&&(o=s.startLine,u=s.startCol))),r!==null?new PropertyValuePart(n!==null?n+r:r,o,u):null},_function:function(){var e=this._tokenStream,t=null,n=null,r;if(e.match(Tokens.FUNCTION)){t=e.token().value,this._readWhitespace(),n=this._expr(!0),t+=n;if(this.options.ieFilters&&e.peek()==Tokens.EQUALS)do{this._readWhitespace()&&(t+=e.token().value),e.LA(0)==Tokens.COMMA&&(t+=e.token().value),e.match(Tokens.IDENT),t+=e.token().value,e.match(Tokens.EQUALS),t+=e.token().value,r=e.peek();while(r!=Tokens.COMMA&&r!=Tokens.S&&r!=Tokens.RPAREN)e.get(),t+=e.token().value,r=e.peek()}while(e.match([Tokens.COMMA,Tokens.S]));e.match(Tokens.RPAREN),t+=\")\",this._readWhitespace()}return t},_ie_function:function(){var e=this._tokenStream,t=null,n=null,r;if(e.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){t=e.token().value;do{this._readWhitespace()&&(t+=e.token().value),e.LA(0)==Tokens.COMMA&&(t+=e.token().value),e.match(Tokens.IDENT),t+=e.token().value,e.match(Tokens.EQUALS),t+=e.token().value,r=e.peek();while(r!=Tokens.COMMA&&r!=Tokens.S&&r!=Tokens.RPAREN)e.get(),t+=e.token().value,r=e.peek()}while(e.match([Tokens.COMMA,Tokens.S]));e.match(Tokens.RPAREN),t+=\")\",this._readWhitespace()}return t},_hexcolor:function(){var e=this._tokenStream,t=null,n;if(e.match(Tokens.HASH)){t=e.token(),n=t.value;if(!/#[a-f0-9]{3,6}/i.test(n))throw new SyntaxError(\"Expected a hex color but found '\"+n+\"' at line \"+t.startLine+\", col \"+t.startCol+\".\",t.startLine,t.startCol);this._readWhitespace()}return t},_keyframes:function(){var e=this._tokenStream,t,n,r,i=\"\";e.mustMatch(Tokens.KEYFRAMES_SYM),t=e.token(),/^@\\-([^\\-]+)\\-/.test(t.value)&&(i=RegExp.$1),this._readWhitespace(),r=this._keyframe_name(),this._readWhitespace(),e.mustMatch(Tokens.LBRACE),this.fire({type:\"startkeyframes\",name:r,prefix:i,line:t.startLine,col:t.startCol}),this._readWhitespace(),n=e.peek();while(n==Tokens.IDENT||n==Tokens.PERCENTAGE)this._keyframe_rule(),this._readWhitespace(),n=e.peek();this.fire({type:\"endkeyframes\",name:r,prefix:i,line:t.startLine,col:t.startCol}),this._readWhitespace(),e.mustMatch(Tokens.RBRACE)},_keyframe_name:function(){var e=this._tokenStream,t;return e.mustMatch([Tokens.IDENT,Tokens.STRING]),SyntaxUnit.fromToken(e.token())},_keyframe_rule:function(){var e=this._tokenStream,t,n=this._key_list();this.fire({type:\"startkeyframerule\",keys:n,line:n[0].line,col:n[0].col}),this._readDeclarations(!0),this.fire({type:\"endkeyframerule\",keys:n,line:n[0].line,col:n[0].col})},_key_list:function(){var e=this._tokenStream,t,n,r=[];r.push(this._key()),this._readWhitespace();while(e.match(Tokens.COMMA))this._readWhitespace(),r.push(this._key()),this._readWhitespace();return r},_key:function(){var e=this._tokenStream,t;if(e.match(Tokens.PERCENTAGE))return SyntaxUnit.fromToken(e.token());if(e.match(Tokens.IDENT)){t=e.token();if(/from|to/i.test(t.value))return SyntaxUnit.fromToken(t);e.unget()}this._unexpectedToken(e.LT(1))},_skipCruft:function(){while(this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC]));},_readDeclarations:function(e,t){var n=this._tokenStream,r;this._readWhitespace(),e&&n.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(!(n.match(Tokens.SEMICOLON)||t&&this._margin())){if(!this._declaration())break;if(!n.match(Tokens.SEMICOLON))break}this._readWhitespace()}n.mustMatch(Tokens.RBRACE),this._readWhitespace()}catch(i){if(!(i instanceof SyntaxError&&!this.options.strict))throw i;this.fire({type:\"error\",error:i,message:i.message,line:i.line,col:i.col}),r=n.advance([Tokens.SEMICOLON,Tokens.RBRACE]);if(r==Tokens.SEMICOLON)this._readDeclarations(!1,t);else if(r!=Tokens.RBRACE)throw i}},_readWhitespace:function(){var e=this._tokenStream,t=\"\";while(e.match(Tokens.S))t+=e.token().value;return t},_unexpectedToken:function(e){throw new SyntaxError(\"Unexpected token '\"+e.value+\"' at line \"+e.startLine+\", col \"+e.startCol+\".\",e.startLine,e.startCol)},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1))},_validateProperty:function(e,t){Validation.validate(e,t)},parse:function(e){this._tokenStream=new TokenStream(e,Tokens),this._stylesheet()},parseStyleSheet:function(e){return this.parse(e)},parseMediaQuery:function(e){this._tokenStream=new TokenStream(e,Tokens);var t=this._media_query();return this._verifyEnd(),t},parsePropertyValue:function(e){this._tokenStream=new TokenStream(e,Tokens),this._readWhitespace();var t=this._expr();return this._readWhitespace(),this._verifyEnd(),t},parseRule:function(e){this._tokenStream=new TokenStream(e,Tokens),this._readWhitespace();var t=this._ruleset();return this._readWhitespace(),this._verifyEnd(),t},parseSelector:function(e){this._tokenStream=new TokenStream(e,Tokens),this._readWhitespace();var t=this._selector();return this._readWhitespace(),this._verifyEnd(),t},parseStyleAttribute:function(e){e+=\"}\",this._tokenStream=new TokenStream(e,Tokens),this._readDeclarations()}};for(t in n)n.hasOwnProperty(t)&&(e[t]=n[t]);return e}();var Properties={\"align-items\":\"flex-start | flex-end | center | baseline | stretch\",\"align-content\":\"flex-start | flex-end | center | space-between | space-around | stretch\",\"align-self\":\"auto | flex-start | flex-end | center | baseline | stretch\",\"-webkit-align-items\":\"flex-start | flex-end | center | baseline | stretch\",\"-webkit-align-content\":\"flex-start | flex-end | center | space-between | space-around | stretch\",\"-webkit-align-self\":\"auto | flex-start | flex-end | center | baseline | stretch\",\"alignment-adjust\":\"auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical | <percentage> | <length>\",\"alignment-baseline\":\"baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical\",animation:1,\"animation-delay\":{multi:\"<time>\",comma:!0},\"animation-direction\":{multi:\"normal | reverse | alternate | alternate-reverse\",comma:!0},\"animation-duration\":{multi:\"<time>\",comma:!0},\"animation-fill-mode\":{multi:\"none | forwards | backwards | both\",comma:!0},\"animation-iteration-count\":{multi:\"<number> | infinite\",comma:!0},\"animation-name\":{multi:\"none | <ident>\",comma:!0},\"animation-play-state\":{multi:\"running | paused\",comma:!0},\"animation-timing-function\":1,\"-moz-animation-delay\":{multi:\"<time>\",comma:!0},\"-moz-animation-direction\":{multi:\"normal | reverse | alternate | alternate-reverse\",comma:!0},\"-moz-animation-duration\":{multi:\"<time>\",comma:!0},\"-moz-animation-iteration-count\":{multi:\"<number> | infinite\",comma:!0},\"-moz-animation-name\":{multi:\"none | <ident>\",comma:!0},\"-moz-animation-play-state\":{multi:\"running | paused\",comma:!0},\"-ms-animation-delay\":{multi:\"<time>\",comma:!0},\"-ms-animation-direction\":{multi:\"normal | reverse | alternate | alternate-reverse\",comma:!0},\"-ms-animation-duration\":{multi:\"<time>\",comma:!0},\"-ms-animation-iteration-count\":{multi:\"<number> | infinite\",comma:!0},\"-ms-animation-name\":{multi:\"none | <ident>\",comma:!0},\"-ms-animation-play-state\":{multi:\"running | paused\",comma:!0},\"-webkit-animation-delay\":{multi:\"<time>\",comma:!0},\"-webkit-animation-direction\":{multi:\"normal | reverse | alternate | alternate-reverse\",comma:!0},\"-webkit-animation-duration\":{multi:\"<time>\",comma:!0},\"-webkit-animation-fill-mode\":{multi:\"none | forwards | backwards | both\",comma:!0},\"-webkit-animation-iteration-count\":{multi:\"<number> | infinite\",comma:!0},\"-webkit-animation-name\":{multi:\"none | <ident>\",comma:!0},\"-webkit-animation-play-state\":{multi:\"running | paused\",comma:!0},\"-o-animation-delay\":{multi:\"<time>\",comma:!0},\"-o-animation-direction\":{multi:\"normal | reverse | alternate | alternate-reverse\",comma:!0},\"-o-animation-duration\":{multi:\"<time>\",comma:!0},\"-o-animation-iteration-count\":{multi:\"<number> | infinite\",comma:!0},\"-o-animation-name\":{multi:\"none | <ident>\",comma:!0},\"-o-animation-play-state\":{multi:\"running | paused\",comma:!0},appearance:\"icon | window | desktop | workspace | document | tooltip | dialog | button | push-button | hyperlink | radio-button | checkbox | menu-item | tab | menu | menubar | pull-down-menu | pop-up-menu | list-menu | radio-group | checkbox-group | outline-tree | range | field | combo-box | signature | password | normal | none | inherit\",azimuth:function(e){var t=\"<angle> | leftwards | rightwards | inherit\",n=\"left-side | far-left | left | center-left | center | center-right | right | far-right | right-side\",r=!1,i=!1,s;ValidationTypes.isAny(e,t)||(ValidationTypes.isAny(e,\"behind\")&&(r=!0,i=!0),ValidationTypes.isAny(e,n)&&(i=!0,r||ValidationTypes.isAny(e,\"behind\")));if(e.hasNext())throw s=e.next(),i?new ValidationError(\"Expected end of value but found '\"+s+\"'.\",s.line,s.col):new ValidationError(\"Expected (<'azimuth'>) but found '\"+s+\"'.\",s.line,s.col)},\"backface-visibility\":\"visible | hidden\",background:1,\"background-attachment\":{multi:\"<attachment>\",comma:!0},\"background-clip\":{multi:\"<box>\",comma:!0},\"background-color\":\"<color> | inherit\",\"background-image\":{multi:\"<bg-image>\",comma:!0},\"background-origin\":{multi:\"<box>\",comma:!0},\"background-position\":{multi:\"<bg-position>\",comma:!0},\"background-repeat\":{multi:\"<repeat-style>\"},\"background-size\":{multi:\"<bg-size>\",comma:!0},\"baseline-shift\":\"baseline | sub | super | <percentage> | <length>\",behavior:1,binding:1,bleed:\"<length>\",\"bookmark-label\":\"<content> | <attr> | <string>\",\"bookmark-level\":\"none | <integer>\",\"bookmark-state\":\"open | closed\",\"bookmark-target\":\"none | <uri> | <attr>\",border:\"<border-width> || <border-style> || <color>\",\"border-bottom\":\"<border-width> || <border-style> || <color>\",\"border-bottom-color\":\"<color> | inherit\",\"border-bottom-left-radius\":\"<x-one-radius>\",\"border-bottom-right-radius\":\"<x-one-radius>\",\"border-bottom-style\":\"<border-style>\",\"border-bottom-width\":\"<border-width>\",\"border-collapse\":\"collapse | separate | inherit\",\"border-color\":{multi:\"<color> | inherit\",max:4},\"border-image\":1,\"border-image-outset\":{multi:\"<length> | <number>\",max:4},\"border-image-repeat\":{multi:\"stretch | repeat | round\",max:2},\"border-image-slice\":function(e){var t=!1,n=\"<number> | <percentage>\",r=!1,i=0,s=4,o;ValidationTypes.isAny(e,\"fill\")&&(r=!0,t=!0);while(e.hasNext()&&i<s){t=ValidationTypes.isAny(e,n);if(!t)break;i++}r?t=!0:ValidationTypes.isAny(e,\"fill\");if(e.hasNext())throw o=e.next(),t?new ValidationError(\"Expected end of value but found '\"+o+\"'.\",o.line,o.col):new ValidationError(\"Expected ([<number> | <percentage>]{1,4} && fill?) but found '\"+o+\"'.\",o.line,o.col)},\"border-image-source\":\"<image> | none\",\"border-image-width\":{multi:\"<length> | <percentage> | <number> | auto\",max:4},\"border-left\":\"<border-width> || <border-style> || <color>\",\"border-left-color\":\"<color> | inherit\",\"border-left-style\":\"<border-style>\",\"border-left-width\":\"<border-width>\",\"border-radius\":function(e){var t=!1,n=\"<length> | <percentage> | inherit\",r=!1,i=!1,s=0,o=8,u;while(e.hasNext()&&s<o){t=ValidationTypes.isAny(e,n);if(!t){if(!(e.peek()==\"/\"&&s>0&&!r))break;r=!0,o=s+5,e.next()}s++}if(e.hasNext())throw u=e.next(),t?new ValidationError(\"Expected end of value but found '\"+u+\"'.\",u.line,u.col):new ValidationError(\"Expected (<'border-radius'>) but found '\"+u+\"'.\",u.line,u.col)},\"border-right\":\"<border-width> || <border-style> || <color>\",\"border-right-color\":\"<color> | inherit\",\"border-right-style\":\"<border-style>\",\"border-right-width\":\"<border-width>\",\"border-spacing\":{multi:\"<length> | inherit\",max:2},\"border-style\":{multi:\"<border-style>\",max:4},\"border-top\":\"<border-width> || <border-style> || <color>\",\"border-top-color\":\"<color> | inherit\",\"border-top-left-radius\":\"<x-one-radius>\",\"border-top-right-radius\":\"<x-one-radius>\",\"border-top-style\":\"<border-style>\",\"border-top-width\":\"<border-width>\",\"border-width\":{multi:\"<border-width>\",max:4},bottom:\"<margin-width> | inherit\",\"-moz-box-align\":\"start | end | center | baseline | stretch\",\"-moz-box-decoration-break\":\"slice |clone\",\"-moz-box-direction\":\"normal | reverse | inherit\",\"-moz-box-flex\":\"<number>\",\"-moz-box-flex-group\":\"<integer>\",\"-moz-box-lines\":\"single | multiple\",\"-moz-box-ordinal-group\":\"<integer>\",\"-moz-box-orient\":\"horizontal | vertical | inline-axis | block-axis | inherit\",\"-moz-box-pack\":\"start | end | center | justify\",\"-webkit-box-align\":\"start | end | center | baseline | stretch\",\"-webkit-box-decoration-break\":\"slice |clone\",\"-webkit-box-direction\":\"normal | reverse | inherit\",\"-webkit-box-flex\":\"<number>\",\"-webkit-box-flex-group\":\"<integer>\",\"-webkit-box-lines\":\"single | multiple\",\"-webkit-box-ordinal-group\":\"<integer>\",\"-webkit-box-orient\":\"horizontal | vertical | inline-axis | block-axis | inherit\",\"-webkit-box-pack\":\"start | end | center | justify\",\"box-shadow\":function(e){var t=!1,n;if(!ValidationTypes.isAny(e,\"none\"))Validation.multiProperty(\"<shadow>\",e,!0,Infinity);else if(e.hasNext())throw n=e.next(),new ValidationError(\"Expected end of value but found '\"+n+\"'.\",n.line,n.col)},\"box-sizing\":\"content-box | border-box | inherit\",\"break-after\":\"auto | always | avoid | left | right | page | column | avoid-page | avoid-column\",\"break-before\":\"auto | always | avoid | left | right | page | column | avoid-page | avoid-column\",\"break-inside\":\"auto | avoid | avoid-page | avoid-column\",\"caption-side\":\"top | bottom | inherit\",clear:\"none | right | left | both | inherit\",clip:1,color:\"<color> | inherit\",\"color-profile\":1,\"column-count\":\"<integer> | auto\",\"column-fill\":\"auto | balance\",\"column-gap\":\"<length> | normal\",\"column-rule\":\"<border-width> || <border-style> || <color>\",\"column-rule-color\":\"<color>\",\"column-rule-style\":\"<border-style>\",\"column-rule-width\":\"<border-width>\",\"column-span\":\"none | all\",\"column-width\":\"<length> | auto\",columns:1,content:1,\"counter-increment\":1,\"counter-reset\":1,crop:\"<shape> | auto\",cue:\"cue-after | cue-before | inherit\",\"cue-after\":1,\"cue-before\":1,cursor:1,direction:\"ltr | rtl | inherit\",display:\"inline | block | list-item | inline-block | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | grid | inline-grid | none | inherit | -moz-box | -moz-inline-block | -moz-inline-box | -moz-inline-grid | -moz-inline-stack | -moz-inline-table | -moz-grid | -moz-grid-group | -moz-grid-line | -moz-groupbox | -moz-deck | -moz-popup | -moz-stack | -moz-marker | -webkit-box | -webkit-inline-box | -ms-flexbox | -ms-inline-flexbox | flex | -webkit-flex | inline-flex | -webkit-inline-flex\",\"dominant-baseline\":1,\"drop-initial-after-adjust\":\"central | middle | after-edge | text-after-edge | ideographic | alphabetic | mathematical | <percentage> | <length>\",\"drop-initial-after-align\":\"baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical\",\"drop-initial-before-adjust\":\"before-edge | text-before-edge | central | middle | hanging | mathematical | <percentage> | <length>\",\"drop-initial-before-align\":\"caps-height | baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical\",\"drop-initial-size\":\"auto | line | <length> | <percentage>\",\"drop-initial-value\":\"initial | <integer>\",elevation:\"<angle> | below | level | above | higher | lower | inherit\",\"empty-cells\":\"show | hide | inherit\",filter:1,fit:\"fill | hidden | meet | slice\",\"fit-position\":1,flex:\"<flex>\",\"flex-basis\":\"<width>\",\"flex-direction\":\"row | row-reverse | column | column-reverse\",\"flex-flow\":\"<flex-direction> || <flex-wrap>\",\"flex-grow\":\"<number>\",\"flex-shrink\":\"<number>\",\"flex-wrap\":\"nowrap | wrap | wrap-reverse\",\"-webkit-flex\":\"<flex>\",\"-webkit-flex-basis\":\"<width>\",\"-webkit-flex-direction\":\"row | row-reverse | column | column-reverse\",\"-webkit-flex-flow\":\"<flex-direction> || <flex-wrap>\",\"-webkit-flex-grow\":\"<number>\",\"-webkit-flex-shrink\":\"<number>\",\"-webkit-flex-wrap\":\"nowrap | wrap | wrap-reverse\",\"-ms-flex\":\"<flex>\",\"-ms-flex-align\":\"start | end | center | stretch | baseline\",\"-ms-flex-direction\":\"row | row-reverse | column | column-reverse | inherit\",\"-ms-flex-order\":\"<number>\",\"-ms-flex-pack\":\"start | end | center | justify\",\"-ms-flex-wrap\":\"nowrap | wrap | wrap-reverse\",\"float\":\"left | right | none | inherit\",\"float-offset\":1,font:1,\"font-family\":1,\"font-size\":\"<absolute-size> | <relative-size> | <length> | <percentage> | inherit\",\"font-size-adjust\":\"<number> | none | inherit\",\"font-stretch\":\"normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | inherit\",\"font-style\":\"normal | italic | oblique | inherit\",\"font-variant\":\"normal | small-caps | inherit\",\"font-weight\":\"normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit\",\"grid-cell-stacking\":\"columns | rows | layer\",\"grid-column\":1,\"grid-columns\":1,\"grid-column-align\":\"start | end | center | stretch\",\"grid-column-sizing\":1,\"grid-column-span\":\"<integer>\",\"grid-flow\":\"none | rows | columns\",\"grid-layer\":\"<integer>\",\"grid-row\":1,\"grid-rows\":1,\"grid-row-align\":\"start | end | center | stretch\",\"grid-row-span\":\"<integer>\",\"grid-row-sizing\":1,\"hanging-punctuation\":1,height:\"<margin-width> | <content-sizing> | inherit\",\"hyphenate-after\":\"<integer> | auto\",\"hyphenate-before\":\"<integer> | auto\",\"hyphenate-character\":\"<string> | auto\",\"hyphenate-lines\":\"no-limit | <integer>\",\"hyphenate-resource\":1,hyphens:\"none | manual | auto\",icon:1,\"image-orientation\":\"angle | auto\",\"image-rendering\":1,\"image-resolution\":1,\"inline-box-align\":\"initial | last | <integer>\",\"justify-content\":\"flex-start | flex-end | center | space-between | space-around\",\"-webkit-justify-content\":\"flex-start | flex-end | center | space-between | space-around\",left:\"<margin-width> | inherit\",\"letter-spacing\":\"<length> | normal | inherit\",\"line-height\":\"<number> | <length> | <percentage> | normal | inherit\",\"line-break\":\"auto | loose | normal | strict\",\"line-stacking\":1,\"line-stacking-ruby\":\"exclude-ruby | include-ruby\",\"line-stacking-shift\":\"consider-shifts | disregard-shifts\",\"line-stacking-strategy\":\"inline-line-height | block-line-height | max-height | grid-height\",\"list-style\":1,\"list-style-image\":\"<uri> | none | inherit\",\"list-style-position\":\"inside | outside | inherit\",\"list-style-type\":\"disc | circle | square | decimal | decimal-leading-zero | lower-roman | upper-roman | lower-greek | lower-latin | upper-latin | armenian | georgian | lower-alpha | upper-alpha | none | inherit\",margin:{multi:\"<margin-width> | inherit\",max:4},\"margin-bottom\":\"<margin-width> | inherit\",\"margin-left\":\"<margin-width> | inherit\",\"margin-right\":\"<margin-width> | inherit\",\"margin-top\":\"<margin-width> | inherit\",mark:1,\"mark-after\":1,\"mark-before\":1,marks:1,\"marquee-direction\":1,\"marquee-play-count\":1,\"marquee-speed\":1,\"marquee-style\":1,\"max-height\":\"<length> | <percentage> | <content-sizing> | none | inherit\",\"max-width\":\"<length> | <percentage> | <content-sizing> | none | inherit\",\"min-height\":\"<length> | <percentage> | <content-sizing> | contain-floats | -moz-contain-floats | -webkit-contain-floats | inherit\",\"min-width\":\"<length> | <percentage> | <content-sizing> | contain-floats | -moz-contain-floats | -webkit-contain-floats | inherit\",\"move-to\":1,\"nav-down\":1,\"nav-index\":1,\"nav-left\":1,\"nav-right\":1,\"nav-up\":1,opacity:\"<number> | inherit\",order:\"<integer>\",\"-webkit-order\":\"<integer>\",orphans:\"<integer> | inherit\",outline:1,\"outline-color\":\"<color> | invert | inherit\",\"outline-offset\":1,\"outline-style\":\"<border-style> | inherit\",\"outline-width\":\"<border-width> | inherit\",overflow:\"visible | hidden | scroll | auto | inherit\",\"overflow-style\":1,\"overflow-wrap\":\"normal | break-word\",\"overflow-x\":1,\"overflow-y\":1,padding:{multi:\"<padding-width> | inherit\",max:4},\"padding-bottom\":\"<padding-width> | inherit\",\"padding-left\":\"<padding-width> | inherit\",\"padding-right\":\"<padding-width> | inherit\",\"padding-top\":\"<padding-width> | inherit\",page:1,\"page-break-after\":\"auto | always | avoid | left | right | inherit\",\"page-break-before\":\"auto | always | avoid | left | right | inherit\",\"page-break-inside\":\"auto | avoid | inherit\",\"page-policy\":1,pause:1,\"pause-after\":1,\"pause-before\":1,perspective:1,\"perspective-origin\":1,phonemes:1,pitch:1,\"pitch-range\":1,\"play-during\":1,\"pointer-events\":\"auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit\",position:\"static | relative | absolute | fixed | inherit\",\"presentation-level\":1,\"punctuation-trim\":1,quotes:1,\"rendering-intent\":1,resize:1,rest:1,\"rest-after\":1,\"rest-before\":1,richness:1,right:\"<margin-width> | inherit\",rotation:1,\"rotation-point\":1,\"ruby-align\":1,\"ruby-overhang\":1,\"ruby-position\":1,\"ruby-span\":1,size:1,speak:\"normal | none | spell-out | inherit\",\"speak-header\":\"once | always | inherit\",\"speak-numeral\":\"digits | continuous | inherit\",\"speak-punctuation\":\"code | none | inherit\",\"speech-rate\":1,src:1,stress:1,\"string-set\":1,\"table-layout\":\"auto | fixed | inherit\",\"tab-size\":\"<integer> | <length>\",target:1,\"target-name\":1,\"target-new\":1,\"target-position\":1,\"text-align\":\"left | right | center | justify | inherit\",\"text-align-last\":1,\"text-decoration\":1,\"text-emphasis\":1,\"text-height\":1,\"text-indent\":\"<length> | <percentage> | inherit\",\"text-justify\":\"auto | none | inter-word | inter-ideograph | inter-cluster | distribute | kashida\",\"text-outline\":1,\"text-overflow\":1,\"text-rendering\":\"auto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit\",\"text-shadow\":1,\"text-transform\":\"capitalize | uppercase | lowercase | none | inherit\",\"text-wrap\":\"normal | none | avoid\",top:\"<margin-width> | inherit\",\"-ms-touch-action\":\"auto | none | pan-x | pan-y\",\"touch-action\":\"auto | none | pan-x | pan-y\",transform:1,\"transform-origin\":1,\"transform-style\":1,transition:1,\"transition-delay\":1,\"transition-duration\":1,\"transition-property\":1,\"transition-timing-function\":1,\"unicode-bidi\":\"normal | embed | isolate | bidi-override | isolate-override | plaintext | inherit\",\"user-modify\":\"read-only | read-write | write-only | inherit\",\"user-select\":\"none | text | toggle | element | elements | all | inherit\",\"vertical-align\":\"auto | use-script | baseline | sub | super | top | text-top | central | middle | bottom | text-bottom | <percentage> | <length>\",visibility:\"visible | hidden | collapse | inherit\",\"voice-balance\":1,\"voice-duration\":1,\"voice-family\":1,\"voice-pitch\":1,\"voice-pitch-range\":1,\"voice-rate\":1,\"voice-stress\":1,\"voice-volume\":1,volume:1,\"white-space\":\"normal | pre | nowrap | pre-wrap | pre-line | inherit | -pre-wrap | -o-pre-wrap | -moz-pre-wrap | -hp-pre-wrap\",\"white-space-collapse\":1,widows:\"<integer> | inherit\",width:\"<length> | <percentage> | <content-sizing> | auto | inherit\",\"word-break\":\"normal | keep-all | break-all\",\"word-spacing\":\"<length> | normal | inherit\",\"word-wrap\":\"normal | break-word\",\"writing-mode\":\"horizontal-tb | vertical-rl | vertical-lr | lr-tb | rl-tb | tb-rl | bt-rl | tb-lr | bt-lr | lr-bt | rl-bt | lr | rl | tb | inherit\",\"z-index\":\"<integer> | auto | inherit\",zoom:\"<number> | <percentage> | normal\"};PropertyName.prototype=new SyntaxUnit,PropertyName.prototype.constructor=PropertyName,PropertyName.prototype.toString=function(){return(this.hack?this.hack:\"\")+this.text},PropertyValue.prototype=new SyntaxUnit,PropertyValue.prototype.constructor=PropertyValue,PropertyValueIterator.prototype.count=function(){return this._parts.length},PropertyValueIterator.prototype.isFirst=function(){return this._i===0},PropertyValueIterator.prototype.hasNext=function(){return this._i<this._parts.length},PropertyValueIterator.prototype.mark=function(){this._marks.push(this._i)},PropertyValueIterator.prototype.peek=function(e){return this.hasNext()?this._parts[this._i+(e||0)]:null},PropertyValueIterator.prototype.next=function(){return this.hasNext()?this._parts[this._i++]:null},PropertyValueIterator.prototype.previous=function(){return this._i>0?this._parts[--this._i]:null},PropertyValueIterator.prototype.restore=function(){this._marks.length&&(this._i=this._marks.pop())},PropertyValuePart.prototype=new SyntaxUnit,PropertyValuePart.prototype.constructor=PropertyValuePart,PropertyValuePart.fromToken=function(e){return new PropertyValuePart(e.value,e.startLine,e.startCol)};var Pseudos={\":first-letter\":1,\":first-line\":1,\":before\":1,\":after\":1};Pseudos.ELEMENT=1,Pseudos.CLASS=2,Pseudos.isElement=function(e){return e.indexOf(\"::\")===0||Pseudos[e.toLowerCase()]==Pseudos.ELEMENT},Selector.prototype=new SyntaxUnit,Selector.prototype.constructor=Selector,SelectorPart.prototype=new SyntaxUnit,SelectorPart.prototype.constructor=SelectorPart,SelectorSubPart.prototype=new SyntaxUnit,SelectorSubPart.prototype.constructor=SelectorSubPart,Specificity.prototype={constructor:Specificity,compare:function(e){var t=[\"a\",\"b\",\"c\",\"d\"],n,r;for(n=0,r=t.length;n<r;n++){if(this[t[n]]<e[t[n]])return-1;if(this[t[n]]>e[t[n]])return 1}return 0},valueOf:function(){return this.a*1e3+this.b*100+this.c*10+this.d},toString:function(){return this.a+\",\"+this.b+\",\"+this.c+\",\"+this.d}},Specificity.calculate=function(e){function u(e){var t,n,r,a,f=e.elementName?e.elementName.text:\"\",l;f&&f.charAt(f.length-1)!=\"*\"&&o++;for(t=0,r=e.modifiers.length;t<r;t++){l=e.modifiers[t];switch(l.type){case\"class\":case\"attribute\":s++;break;case\"id\":i++;break;case\"pseudo\":Pseudos.isElement(l.text)?o++:s++;break;case\"not\":for(n=0,a=l.args.length;n<a;n++)u(l.args[n])}}}var t,n,r,i=0,s=0,o=0;for(t=0,n=e.parts.length;t<n;t++)r=e.parts[t],r instanceof SelectorPart&&u(r);return new Specificity(0,i,s,o)};var h=/^[0-9a-fA-F]$/,nonascii=/^[\\u0080-\\uFFFF]$/,nl=/\\n|\\r\\n|\\r|\\f/;TokenStream.prototype=mix(new TokenStreamBase,{_getToken:function(e){var t,n=this._reader,r=null,i=n.getLine(),s=n.getCol();t=n.read();while(t){switch(t){case\"/\":n.peek()==\"*\"?r=this.commentToken(t,i,s):r=this.charToken(t,i,s);break;case\"|\":case\"~\":case\"^\":case\"$\":case\"*\":n.peek()==\"=\"?r=this.comparisonToken(t,i,s):r=this.charToken(t,i,s);break;case'\"':case\"'\":r=this.stringToken(t,i,s);break;case\"#\":isNameChar(n.peek())?r=this.hashToken(t,i,s):r=this.charToken(t,i,s);break;case\".\":isDigit(n.peek())?r=this.numberToken(t,i,s):r=this.charToken(t,i,s);break;case\"-\":n.peek()==\"-\"?r=this.htmlCommentEndToken(t,i,s):isNameStart(n.peek())?r=this.identOrFunctionToken(t,i,s):r=this.charToken(t,i,s);break;case\"!\":r=this.importantToken(t,i,s);break;case\"@\":r=this.atRuleToken(t,i,s);break;case\":\":r=this.notToken(t,i,s);break;case\"<\":r=this.htmlCommentStartToken(t,i,s);break;case\"U\":case\"u\":if(n.peek()==\"+\"){r=this.unicodeRangeToken(t,i,s);break};default:isDigit(t)?r=this.numberToken(t,i,s):isWhitespace(t)?r=this.whitespaceToken(t,i,s):isIdentStart(t)?r=this.identOrFunctionToken(t,i,s):r=this.charToken(t,i,s)}break}return!r&&t===null&&(r=this.createToken(Tokens.EOF,null,i,s)),r},createToken:function(e,t,n,r,i){var s=this._reader;return i=i||{},{value:t,type:e,channel:i.channel,endChar:i.endChar,hide:i.hide||!1,startLine:n,startCol:r,endLine:s.getLine(),endCol:s.getCol()}},atRuleToken:function(e,t,n){var r=e,i=this._reader,s=Tokens.CHAR,o=!1,u,a;i.mark(),u=this.readName(),r=e+u,s=Tokens.type(r.toLowerCase());if(s==Tokens.CHAR||s==Tokens.UNKNOWN)r.length>1?s=Tokens.UNKNOWN_SYM:(s=Tokens.CHAR,r=e,i.reset());return this.createToken(s,r,t,n)},charToken:function(e,t,n){var r=Tokens.type(e),i={};return r==-1?r=Tokens.CHAR:i.endChar=Tokens[r].endChar,this.createToken(r,e,t,n,i)},commentToken:function(e,t,n){var r=this._reader,i=this.readComment(e);return this.createToken(Tokens.COMMENT,i,t,n)},comparisonToken:function(e,t,n){var r=this._reader,i=e+r.read(),s=Tokens.type(i)||Tokens.CHAR;return this.createToken(s,i,t,n)},hashToken:function(e,t,n){var r=this._reader,i=this.readName(e);return this.createToken(Tokens.HASH,i,t,n)},htmlCommentStartToken:function(e,t,n){var r=this._reader,i=e;return r.mark(),i+=r.readCount(3),i==\"<!--\"?this.createToken(Tokens.CDO,i,t,n):(r.reset(),this.charToken(e,t,n))},htmlCommentEndToken:function(e,t,n){var r=this._reader,i=e;return r.mark(),i+=r.readCount(2),i==\"-->\"?this.createToken(Tokens.CDC,i,t,n):(r.reset(),this.charToken(e,t,n))},identOrFunctionToken:function(e,t,n){var r=this._reader,i=this.readName(e),s=Tokens.IDENT;return r.peek()==\"(\"?(i+=r.read(),i.toLowerCase()==\"url(\"?(s=Tokens.URI,i=this.readURI(i),i.toLowerCase()==\"url(\"&&(s=Tokens.FUNCTION)):s=Tokens.FUNCTION):r.peek()==\":\"&&i.toLowerCase()==\"progid\"&&(i+=r.readTo(\"(\"),s=Tokens.IE_FUNCTION),this.createToken(s,i,t,n)},importantToken:function(e,t,n){var r=this._reader,i=e,s=Tokens.CHAR,o,u;r.mark(),u=r.read();while(u){if(u==\"/\"){if(r.peek()!=\"*\")break;o=this.readComment(u);if(o===\"\")break}else{if(!isWhitespace(u)){if(/i/i.test(u)){o=r.readCount(8),/mportant/i.test(o)&&(i+=u+o,s=Tokens.IMPORTANT_SYM);break}break}i+=u+this.readWhitespace()}u=r.read()}return s==Tokens.CHAR?(r.reset(),this.charToken(e,t,n)):this.createToken(s,i,t,n)},notToken:function(e,t,n){var r=this._reader,i=e;return r.mark(),i+=r.readCount(4),i.toLowerCase()==\":not(\"?this.createToken(Tokens.NOT,i,t,n):(r.reset(),this.charToken(e,t,n))},numberToken:function(e,t,n){var r=this._reader,i=this.readNumber(e),s,o=Tokens.NUMBER,u=r.peek();return isIdentStart(u)?(s=this.readName(r.read()),i+=s,/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vmax$|^vmin$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(s)?o=Tokens.LENGTH:/^deg|^rad$|^grad$/i.test(s)?o=Tokens.ANGLE:/^ms$|^s$/i.test(s)?o=Tokens.TIME:/^hz$|^khz$/i.test(s)?o=Tokens.FREQ:/^dpi$|^dpcm$/i.test(s)?o=Tokens.RESOLUTION:o=Tokens.DIMENSION):u==\"%\"&&(i+=r.read(),o=Tokens.PERCENTAGE),this.createToken(o,i,t,n)},stringToken:function(e,t,n){var r=e,i=e,s=this._reader,o=e,u=Tokens.STRING,a=s.read();while(a){i+=a;if(a==r&&o!=\"\\\\\")break;if(isNewLine(s.peek())&&a!=\"\\\\\"){u=Tokens.INVALID;break}o=a,a=s.read()}return a===null&&(u=Tokens.INVALID),this.createToken(u,i,t,n)},unicodeRangeToken:function(e,t,n){var r=this._reader,i=e,s,o=Tokens.CHAR;return r.peek()==\"+\"&&(r.mark(),i+=r.read(),i+=this.readUnicodeRangePart(!0),i.length==2?r.reset():(o=Tokens.UNICODE_RANGE,i.indexOf(\"?\")==-1&&r.peek()==\"-\"&&(r.mark(),s=r.read(),s+=this.readUnicodeRangePart(!1),s.length==1?r.reset():i+=s))),this.createToken(o,i,t,n)},whitespaceToken:function(e,t,n){var r=this._reader,i=e+this.readWhitespace();return this.createToken(Tokens.S,i,t,n)},readUnicodeRangePart:function(e){var t=this._reader,n=\"\",r=t.peek();while(isHexDigit(r)&&n.length<6)t.read(),n+=r,r=t.peek();if(e)while(r==\"?\"&&n.length<6)t.read(),n+=r,r=t.peek();return n},readWhitespace:function(){var e=this._reader,t=\"\",n=e.peek();while(isWhitespace(n))e.read(),t+=n,n=e.peek();return t},readNumber:function(e){var t=this._reader,n=e,r=e==\".\",i=t.peek();while(i){if(isDigit(i))n+=t.read();else{if(i!=\".\")break;if(r)break;r=!0,n+=t.read()}i=t.peek()}return n},readString:function(){var e=this._reader,t=e.read(),n=t,r=t,i=e.peek();while(i){i=e.read(),n+=i;if(i==t&&r!=\"\\\\\")break;if(isNewLine(e.peek())&&i!=\"\\\\\"){n=\"\";break}r=i,i=e.peek()}return i===null&&(n=\"\"),n},readURI:function(e){var t=this._reader,n=e,r=\"\",i=t.peek();t.mark();while(i&&isWhitespace(i))t.read(),i=t.peek();i==\"'\"||i=='\"'?r=this.readString():r=this.readURL(),i=t.peek();while(i&&isWhitespace(i))t.read(),i=t.peek();return r===\"\"||i!=\")\"?(n=e,t.reset()):n+=r+t.read(),n},readURL:function(){var e=this._reader,t=\"\",n=e.peek();while(/^[!#$%&\\\\*-~]$/.test(n))t+=e.read(),n=e.peek();return t},readName:function(e){var t=this._reader,n=e||\"\",r=t.peek();for(;;)if(r==\"\\\\\")n+=this.readEscape(t.read()),r=t.peek();else{if(!r||!isNameChar(r))break;n+=t.read(),r=t.peek()}return n},readEscape:function(e){var t=this._reader,n=e||\"\",r=0,i=t.peek();if(isHexDigit(i))do n+=t.read(),i=t.peek();while(i&&isHexDigit(i)&&++r<6);return n.length==3&&/\\s/.test(i)||n.length==7||n.length==1?t.read():i=\"\",n+i},readComment:function(e){var t=this._reader,n=e||\"\",r=t.read();if(r==\"*\"){while(r){n+=r;if(n.length>2&&r==\"*\"&&t.peek()==\"/\"){n+=t.read();break}r=t.read()}return n}return\"\"}});var Tokens=[{name:\"CDO\"},{name:\"CDC\"},{name:\"S\",whitespace:!0},{name:\"COMMENT\",comment:!0,hide:!0,channel:\"comment\"},{name:\"INCLUDES\",text:\"~=\"},{name:\"DASHMATCH\",text:\"|=\"},{name:\"PREFIXMATCH\",text:\"^=\"},{name:\"SUFFIXMATCH\",text:\"$=\"},{name:\"SUBSTRINGMATCH\",text:\"*=\"},{name:\"STRING\"},{name:\"IDENT\"},{name:\"HASH\"},{name:\"IMPORT_SYM\",text:\"@import\"},{name:\"PAGE_SYM\",text:\"@page\"},{name:\"MEDIA_SYM\",text:\"@media\"},{name:\"FONT_FACE_SYM\",text:\"@font-face\"},{name:\"CHARSET_SYM\",text:\"@charset\"},{name:\"NAMESPACE_SYM\",text:\"@namespace\"},{name:\"VIEWPORT_SYM\",text:[\"@viewport\",\"@-ms-viewport\"]},{name:\"UNKNOWN_SYM\"},{name:\"KEYFRAMES_SYM\",text:[\"@keyframes\",\"@-webkit-keyframes\",\"@-moz-keyframes\",\"@-o-keyframes\"]},{name:\"IMPORTANT_SYM\"},{name:\"LENGTH\"},{name:\"ANGLE\"},{name:\"TIME\"},{name:\"FREQ\"},{name:\"DIMENSION\"},{name:\"PERCENTAGE\"},{name:\"NUMBER\"},{name:\"URI\"},{name:\"FUNCTION\"},{name:\"UNICODE_RANGE\"},{name:\"INVALID\"},{name:\"PLUS\",text:\"+\"},{name:\"GREATER\",text:\">\"},{name:\"COMMA\",text:\",\"},{name:\"TILDE\",text:\"~\"},{name:\"NOT\"},{name:\"TOPLEFTCORNER_SYM\",text:\"@top-left-corner\"},{name:\"TOPLEFT_SYM\",text:\"@top-left\"},{name:\"TOPCENTER_SYM\",text:\"@top-center\"},{name:\"TOPRIGHT_SYM\",text:\"@top-right\"},{name:\"TOPRIGHTCORNER_SYM\",text:\"@top-right-corner\"},{name:\"BOTTOMLEFTCORNER_SYM\",text:\"@bottom-left-corner\"},{name:\"BOTTOMLEFT_SYM\",text:\"@bottom-left\"},{name:\"BOTTOMCENTER_SYM\",text:\"@bottom-center\"},{name:\"BOTTOMRIGHT_SYM\",text:\"@bottom-right\"},{name:\"BOTTOMRIGHTCORNER_SYM\",text:\"@bottom-right-corner\"},{name:\"LEFTTOP_SYM\",text:\"@left-top\"},{name:\"LEFTMIDDLE_SYM\",text:\"@left-middle\"},{name:\"LEFTBOTTOM_SYM\",text:\"@left-bottom\"},{name:\"RIGHTTOP_SYM\",text:\"@right-top\"},{name:\"RIGHTMIDDLE_SYM\",text:\"@right-middle\"},{name:\"RIGHTBOTTOM_SYM\",text:\"@right-bottom\"},{name:\"RESOLUTION\",state:\"media\"},{name:\"IE_FUNCTION\"},{name:\"CHAR\"},{name:\"PIPE\",text:\"|\"},{name:\"SLASH\",text:\"/\"},{name:\"MINUS\",text:\"-\"},{name:\"STAR\",text:\"*\"},{name:\"LBRACE\",endChar:\"}\",text:\"{\"},{name:\"RBRACE\",text:\"}\"},{name:\"LBRACKET\",endChar:\"]\",text:\"[\"},{name:\"RBRACKET\",text:\"]\"},{name:\"EQUALS\",text:\"=\"},{name:\"COLON\",text:\":\"},{name:\"SEMICOLON\",text:\";\"},{name:\"LPAREN\",endChar:\")\",text:\"(\"},{name:\"RPAREN\",text:\")\"},{name:\"DOT\",text:\".\"}];(function(){var e=[],t={};Tokens.UNKNOWN=-1,Tokens.unshift({name:\"EOF\"});for(var n=0,r=Tokens.length;n<r;n++){e.push(Tokens[n].name),Tokens[Tokens[n].name]=n;if(Tokens[n].text)if(Tokens[n].text instanceof Array)for(var i=0;i<Tokens[n].text.length;i++)t[Tokens[n].text[i]]=n;else t[Tokens[n].text]=n}Tokens.name=function(t){return e[t]},Tokens.type=function(e){return t[e]||-1}})();var Validation={validate:function(e,t){var n=e.toString().toLowerCase(),r=t.parts,i=new PropertyValueIterator(t),s=Properties[n],o,u,a,f,l,c,h,p,d,v,m;if(!s){if(n.indexOf(\"-\")!==0)throw new ValidationError(\"Unknown property '\"+e+\"'.\",e.line,e.col)}else typeof s!=\"number\"&&(typeof s==\"string\"?s.indexOf(\"||\")>-1?this.groupProperty(s,i):this.singleProperty(s,i,1):s.multi?this.multiProperty(s.multi,i,s.comma,s.max||Infinity):typeof s==\"function\"&&s(i))},singleProperty:function(e,t,n,r){var i=!1,s=t.value,o=0,u;while(t.hasNext()&&o<n){i=ValidationTypes.isAny(t,e);if(!i)break;o++}if(!i)throw t.hasNext()&&!t.isFirst()?(u=t.peek(),new ValidationError(\"Expected end of value but found '\"+u+\"'.\",u.line,u.col)):new ValidationError(\"Expected (\"+e+\") but found '\"+s+\"'.\",s.line,s.col);if(t.hasNext())throw u=t.next(),new ValidationError(\"Expected end of value but found '\"+u+\"'.\",u.line,u.col)},multiProperty:function(e,t,n,r){var i=!1,s=t.value,o=0,u=!1,a;while(t.hasNext()&&!i&&o<r){if(!ValidationTypes.isAny(t,e))break;o++;if(!t.hasNext())i=!0;else if(n){if(t.peek()!=\",\")break;a=t.next()}}if(!i)throw t.hasNext()&&!t.isFirst()?(a=t.peek(),new ValidationError(\"Expected end of value but found '\"+a+\"'.\",a.line,a.col)):(a=t.previous(),n&&a==\",\"?new ValidationError(\"Expected end of value but found '\"+a+\"'.\",a.line,a.col):new ValidationError(\"Expected (\"+e+\") but found '\"+s+\"'.\",s.line,s.col));if(t.hasNext())throw a=t.next(),new ValidationError(\"Expected end of value but found '\"+a+\"'.\",a.line,a.col)},groupProperty:function(e,t,n){var r=!1,i=t.value,s=e.split(\"||\").length,o={count:0},u=!1,a,f;while(t.hasNext()&&!r){a=ValidationTypes.isAnyOfGroup(t,e);if(!a)break;if(o[a])break;o[a]=1,o.count++,u=!0;if(o.count==s||!t.hasNext())r=!0}if(!r)throw u&&t.hasNext()?(f=t.peek(),new ValidationError(\"Expected end of value but found '\"+f+\"'.\",f.line,f.col)):new ValidationError(\"Expected (\"+e+\") but found '\"+i+\"'.\",i.line,i.col);if(t.hasNext())throw f=t.next(),new ValidationError(\"Expected end of value but found '\"+f+\"'.\",f.line,f.col)}};ValidationError.prototype=new Error;var ValidationTypes={isLiteral:function(e,t){var n=e.text.toString().toLowerCase(),r=t.split(\" | \"),i,s,o=!1;for(i=0,s=r.length;i<s&&!o;i++)n==r[i].toLowerCase()&&(o=!0);return o},isSimple:function(e){return!!this.simple[e]},isComplex:function(e){return!!this.complex[e]},isAny:function(e,t){var n=t.split(\" | \"),r,i,s=!1;for(r=0,i=n.length;r<i&&!s&&e.hasNext();r++)s=this.isType(e,n[r]);return s},isAnyOfGroup:function(e,t){var n=t.split(\" || \"),r,i,s=!1;for(r=0,i=n.length;r<i&&!s;r++)s=this.isType(e,n[r]);return s?n[r-1]:!1},isType:function(e,t){var n=e.peek(),r=!1;return t.charAt(0)!=\"<\"?(r=this.isLiteral(n,t),r&&e.next()):this.simple[t]?(r=this.simple[t](n),r&&e.next()):r=this.complex[t](e),r},simple:{\"<absolute-size>\":function(e){return ValidationTypes.isLiteral(e,\"xx-small | x-small | small | medium | large | x-large | xx-large\")},\"<attachment>\":function(e){return ValidationTypes.isLiteral(e,\"scroll | fixed | local\")},\"<attr>\":function(e){return e.type==\"function\"&&e.name==\"attr\"},\"<bg-image>\":function(e){return this[\"<image>\"](e)||this[\"<gradient>\"](e)||e==\"none\"},\"<gradient>\":function(e){return e.type==\"function\"&&/^(?:\\-(?:ms|moz|o|webkit)\\-)?(?:repeating\\-)?(?:radial\\-|linear\\-)?gradient/i.test(e)},\"<box>\":function(e){return ValidationTypes.isLiteral(e,\"padding-box | border-box | content-box\")},\"<content>\":function(e){return e.type==\"function\"&&e.name==\"content\"},\"<relative-size>\":function(e){return ValidationTypes.isLiteral(e,\"smaller | larger\")},\"<ident>\":function(e){return e.type==\"identifier\"},\"<length>\":function(e){return e.type==\"function\"&&/^(?:\\-(?:ms|moz|o|webkit)\\-)?calc/i.test(e)?!0:e.type==\"length\"||e.type==\"number\"||e.type==\"integer\"||e==\"0\"},\"<color>\":function(e){return e.type==\"color\"||e==\"transparent\"},\"<number>\":function(e){return e.type==\"number\"||this[\"<integer>\"](e)},\"<integer>\":function(e){return e.type==\"integer\"},\"<line>\":function(e){return e.type==\"integer\"},\"<angle>\":function(e){return e.type==\"angle\"},\"<uri>\":function(e){return e.type==\"uri\"},\"<image>\":function(e){return this[\"<uri>\"](e)},\"<percentage>\":function(e){return e.type==\"percentage\"||e==\"0\"},\"<border-width>\":function(e){return this[\"<length>\"](e)||ValidationTypes.isLiteral(e,\"thin | medium | thick\")},\"<border-style>\":function(e){return ValidationTypes.isLiteral(e,\"none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset\")},\"<content-sizing>\":function(e){return ValidationTypes.isLiteral(e,\"fill-available | -moz-available | -webkit-fill-available | max-content | -moz-max-content | -webkit-max-content | min-content | -moz-min-content | -webkit-min-content | fit-content | -moz-fit-content | -webkit-fit-content\")},\"<margin-width>\":function(e){return this[\"<length>\"](e)||this[\"<percentage>\"](e)||ValidationTypes.isLiteral(e,\"auto\")},\"<padding-width>\":function(e){return this[\"<length>\"](e)||this[\"<percentage>\"](e)},\"<shape>\":function(e){return e.type==\"function\"&&(e.name==\"rect\"||e.name==\"inset-rect\")},\"<time>\":function(e){return e.type==\"time\"},\"<flex-grow>\":function(e){return this[\"<number>\"](e)},\"<flex-shrink>\":function(e){return this[\"<number>\"](e)},\"<width>\":function(e){return this[\"<margin-width>\"](e)},\"<flex-basis>\":function(e){return this[\"<width>\"](e)},\"<flex-direction>\":function(e){return ValidationTypes.isLiteral(e,\"row | row-reverse | column | column-reverse\")},\"<flex-wrap>\":function(e){return ValidationTypes.isLiteral(e,\"nowrap | wrap | wrap-reverse\")}},complex:{\"<bg-position>\":function(e){var t=this,n=!1,r=\"<percentage> | <length>\",i=\"left | right\",s=\"top | bottom\",o=0,u=function(){return e.hasNext()&&e.peek()!=\",\"};while(e.peek(o)&&e.peek(o)!=\",\")o++;return o<3?ValidationTypes.isAny(e,i+\" | center | \"+r)?(n=!0,ValidationTypes.isAny(e,s+\" | center | \"+r)):ValidationTypes.isAny(e,s)&&(n=!0,ValidationTypes.isAny(e,i+\" | center\")):ValidationTypes.isAny(e,i)?ValidationTypes.isAny(e,s)?(n=!0,ValidationTypes.isAny(e,r)):ValidationTypes.isAny(e,r)&&(ValidationTypes.isAny(e,s)?(n=!0,ValidationTypes.isAny(e,r)):ValidationTypes.isAny(e,\"center\")&&(n=!0)):ValidationTypes.isAny(e,s)?ValidationTypes.isAny(e,i)?(n=!0,ValidationTypes.isAny(e,r)):ValidationTypes.isAny(e,r)&&(ValidationTypes.isAny(e,i)?(n=!0,ValidationTypes.isAny(e,r)):ValidationTypes.isAny(e,\"center\")&&(n=!0)):ValidationTypes.isAny(e,\"center\")&&ValidationTypes.isAny(e,i+\" | \"+s)&&(n=!0,ValidationTypes.isAny(e,r)),n},\"<bg-size>\":function(e){var t=this,n=!1,r=\"<percentage> | <length> | auto\",i,s,o;return ValidationTypes.isAny(e,\"cover | contain\")?n=!0:ValidationTypes.isAny(e,r)&&(n=!0,ValidationTypes.isAny(e,r)),n},\"<repeat-style>\":function(e){var t=!1,n=\"repeat | space | round | no-repeat\",r;return e.hasNext()&&(r=e.next(),ValidationTypes.isLiteral(r,\"repeat-x | repeat-y\")?t=!0:ValidationTypes.isLiteral(r,n)&&(t=!0,e.hasNext()&&ValidationTypes.isLiteral(e.peek(),n)&&e.next())),t},\"<shadow>\":function(e){var t=!1,n=0,r=!1,i=!1,s;if(e.hasNext()){ValidationTypes.isAny(e,\"inset\")&&(r=!0),ValidationTypes.isAny(e,\"<color>\")&&(i=!0);while(ValidationTypes.isAny(e,\"<length>\")&&n<4)n++;e.hasNext()&&(i||ValidationTypes.isAny(e,\"<color>\"),r||ValidationTypes.isAny(e,\"inset\")),t=n>=2&&n<=4}return t},\"<x-one-radius>\":function(e){var t=!1,n=\"<length> | <percentage> | inherit\";return ValidationTypes.isAny(e,n)&&(t=!0,ValidationTypes.isAny(e,n)),t},\"<flex>\":function(e){var t,n=!1;ValidationTypes.isAny(e,\"none | inherit\")?n=!0:ValidationTypes.isType(e,\"<flex-grow>\")?e.peek()?ValidationTypes.isType(e,\"<flex-shrink>\")?e.peek()?n=ValidationTypes.isType(e,\"<flex-basis>\"):n=!0:ValidationTypes.isType(e,\"<flex-basis>\")&&(n=e.peek()===null):n=!0:ValidationTypes.isType(e,\"<flex-basis>\")&&(n=!0);if(!n)throw t=e.peek(),new ValidationError(\"Expected (none | [ <flex-grow> <flex-shrink>? || <flex-basis> ]) but found '\"+e.value.text+\"'.\",t.line,t.col);return n}}};parserlib.css={Colors:Colors,Combinator:Combinator,Parser:Parser,PropertyName:PropertyName,PropertyValue:PropertyValue,PropertyValuePart:PropertyValuePart,MediaFeature:MediaFeature,MediaQuery:MediaQuery,Selector:Selector,SelectorPart:SelectorPart,SelectorSubPart:SelectorSubPart,Specificity:Specificity,TokenStream:TokenStream,Tokens:Tokens,ValidationError:ValidationError}}(),function(){for(var e in parserlib)exports[e]=parserlib[e]}();var util={isArray:function(e){return Array.isArray(e)||typeof e==\"object\"&&objectToString(e)===\"[object Array]\"},isDate:function(e){return typeof e==\"object\"&&objectToString(e)===\"[object Date]\"},isRegExp:function(e){return typeof e==\"object\"&&objectToString(e)===\"[object RegExp]\"},getRegExpFlags:function(e){var t=\"\";return e.global&&(t+=\"g\"),e.ignoreCase&&(t+=\"i\"),e.multiline&&(t+=\"m\"),t}};typeof module==\"object\"&&(module.exports=clone),clone.clonePrototype=function(e){if(e===null)return null;var t=function(){};return t.prototype=e,new t};var CSSLint=function(){function i(e,t){var r,i=e&&e.match(n),s=i&&i[1];return s&&(r={\"true\":2,\"\":1,\"false\":0,2:2,1:1,0:0},s.toLowerCase().split(\",\").forEach(function(e){var n=e.split(\":\"),i=n[0]||\"\",s=n[1]||\"\";t[i.trim()]=r[s.trim()]})),t}var e=[],t=[],n=/\\/\\*csslint([^\\*]*)\\*\\//,r=new parserlib.util.EventTarget;return r.version=\"@VERSION@\",r.addRule=function(t){e.push(t),e[t.id]=t},r.clearRules=function(){e=[]},r.getRules=function(){return[].concat(e).sort(function(e,t){return e.id>t.id?1:0})},r.getRuleset=function(){var t={},n=0,r=e.length;while(n<r)t[e[n++].id]=1;return t},r.addFormatter=function(e){t[e.id]=e},r.getFormatter=function(e){return t[e]},r.format=function(e,t,n,r){var i=this.getFormatter(n),s=null;return i&&(s=i.startFormat(),s+=i.formatResults(e,t,r||{}),s+=i.endFormat()),s},r.hasFormat=function(e){return t.hasOwnProperty(e)},r.verify=function(t,r){var s=0,o,u,a,f=new parserlib.css.Parser({starHack:!0,ieFilters:!0,underscoreHack:!0,strict:!1});u=t.replace(/\\n\\r?/g,\"$split$\").split(\"$split$\"),r||(r=this.getRuleset()),n.test(t)&&(r=clone(r),r=i(t,r)),o=new Reporter(u,r),r.errors=2;for(s in r)r.hasOwnProperty(s)&&r[s]&&e[s]&&e[s].init(f,o);try{f.parse(t)}catch(l){o.error(\"Fatal error, cannot continue: \"+l.message,l.line,l.col,{})}return a={messages:o.messages,stats:o.stats,ruleset:o.ruleset},a.messages.sort(function(e,t){return e.rollup&&!t.rollup?1:!e.rollup&&t.rollup?-1:e.line-t.line}),a},r}();Reporter.prototype={constructor:Reporter,error:function(e,t,n,r){this.messages.push({type:\"error\",line:t,col:n,message:e,evidence:this.lines[t-1],rule:r||{}})},warn:function(e,t,n,r){this.report(e,t,n,r)},report:function(e,t,n,r){this.messages.push({type:this.ruleset[r.id]===2?\"error\":\"warning\",line:t,col:n,message:e,evidence:this.lines[t-1],rule:r})},info:function(e,t,n,r){this.messages.push({type:\"info\",line:t,col:n,message:e,evidence:this.lines[t-1],rule:r})},rollupError:function(e,t){this.messages.push({type:\"error\",rollup:!0,message:e,rule:t})},rollupWarn:function(e,t){this.messages.push({type:\"warning\",rollup:!0,message:e,rule:t})},stat:function(e,t){this.stats[e]=t}},CSSLint._Reporter=Reporter,CSSLint.Util={mix:function(e,t){var n;for(n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return n},indexOf:function(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},forEach:function(e,t){if(e.forEach)return e.forEach(t);for(var n=0,r=e.length;n<r;n++)t(e[n],n,e)}},CSSLint.addRule({id:\"adjoining-classes\",name:\"Disallow adjoining classes\",desc:\"Don't use adjoining classes.\",browsers:\"IE6\",init:function(e,t){var n=this;e.addListener(\"startrule\",function(r){var i=r.selectors,s,o,u,a,f,l,c;for(f=0;f<i.length;f++){s=i[f];for(l=0;l<s.parts.length;l++){o=s.parts[l];if(o.type===e.SELECTOR_PART_TYPE){a=0;for(c=0;c<o.modifiers.length;c++)u=o.modifiers[c],u.type===\"class\"&&a++,a>1&&t.report(\"Don't use adjoining classes.\",o.line,o.col,n)}}}})}}),CSSLint.addRule({id:\"box-model\",name:\"Beware of broken box size\",desc:\"Don't use width or height when using padding or border.\",browsers:\"All\",init:function(e,t){function u(){s={},o=!1}function a(){var e,u;if(!o){if(s.height)for(e in i)i.hasOwnProperty(e)&&s[e]&&(u=s[e].value,(e!==\"padding\"||u.parts.length!==2||u.parts[0].value!==0)&&t.report(\"Using height with \"+e+\" can sometimes make elements larger than you expect.\",s[e].line,s[e].col,n));if(s.width)for(e in r)r.hasOwnProperty(e)&&s[e]&&(u=s[e].value,(e!==\"padding\"||u.parts.length!==2||u.parts[1].value!==0)&&t.report(\"Using width with \"+e+\" can sometimes make elements larger than you expect.\",s[e].line,s[e].col,n))}}var n=this,r={border:1,\"border-left\":1,\"border-right\":1,padding:1,\"padding-left\":1,\"padding-right\":1},i={border:1,\"border-bottom\":1,\"border-top\":1,padding:1,\"padding-bottom\":1,\"padding-top\":1},s,o=!1;e.addListener(\"startrule\",u),e.addListener(\"startfontface\",u),e.addListener(\"startpage\",u),e.addListener(\"startpagemargin\",u),e.addListener(\"startkeyframerule\",u),e.addListener(\"property\",function(e){var t=e.property.text.toLowerCase();i[t]||r[t]?!/^0\\S*$/.test(e.value)&&(t!==\"border\"||e.value.toString()!==\"none\")&&(s[t]={line:e.property.line,col:e.property.col,value:e.value}):/^(width|height)/i.test(t)&&/^(length|percentage)/.test(e.value.parts[0].type)?s[t]=1:t===\"box-sizing\"&&(o=!0)}),e.addListener(\"endrule\",a),e.addListener(\"endfontface\",a),e.addListener(\"endpage\",a),e.addListener(\"endpagemargin\",a),e.addListener(\"endkeyframerule\",a)}}),CSSLint.addRule({id:\"box-sizing\",name:\"Disallow use of box-sizing\",desc:\"The box-sizing properties isn't supported in IE6 and IE7.\",browsers:\"IE6, IE7\",tags:[\"Compatibility\"],init:function(e,t){var n=this;e.addListener(\"property\",function(e){var r=e.property.text.toLowerCase();r===\"box-sizing\"&&t.report(\"The box-sizing property isn't supported in IE6 and IE7.\",e.line,e.col,n)})}}),CSSLint.addRule({id:\"bulletproof-font-face\",name:\"Use the bulletproof @font-face syntax\",desc:\"Use the bulletproof @font-face syntax to avoid 404's in old IE (http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax).\",browsers:\"All\",init:function(e,t){var n=this,r=!1,i=!0,s=!1,o,u;e.addListener(\"startfontface\",function(){r=!0}),e.addListener(\"property\",function(e){if(!r)return;var t=e.property.toString().toLowerCase(),n=e.value.toString();o=e.line,u=e.col;if(t===\"src\"){var a=/^\\s?url\\(['\"].+\\.eot\\?.*['\"]\\)\\s*format\\(['\"]embedded-opentype['\"]\\).*$/i;!n.match(a)&&i?(s=!0,i=!1):n.match(a)&&!i&&(s=!1)}}),e.addListener(\"endfontface\",function(){r=!1,s&&t.report(\"@font-face declaration doesn't follow the fontspring bulletproof syntax.\",o,u,n)})}}),CSSLint.addRule({id:\"compatible-vendor-prefixes\",name:\"Require compatible vendor prefixes\",desc:\"Include all compatible vendor prefixes to reach a wider range of users.\",browsers:\"All\",init:function(e,t){var n=this,r,i,s,o,u,a,f,l=!1,c=Array.prototype.push,h=[];r={animation:\"webkit moz\",\"animation-delay\":\"webkit moz\",\"animation-direction\":\"webkit moz\",\"animation-duration\":\"webkit moz\",\"animation-fill-mode\":\"webkit moz\",\"animation-iteration-count\":\"webkit moz\",\"animation-name\":\"webkit moz\",\"animation-play-state\":\"webkit moz\",\"animation-timing-function\":\"webkit moz\",appearance:\"webkit moz\",\"border-end\":\"webkit moz\",\"border-end-color\":\"webkit moz\",\"border-end-style\":\"webkit moz\",\"border-end-width\":\"webkit moz\",\"border-image\":\"webkit moz o\",\"border-radius\":\"webkit\",\"border-start\":\"webkit moz\",\"border-start-color\":\"webkit moz\",\"border-start-style\":\"webkit moz\",\"border-start-width\":\"webkit moz\",\"box-align\":\"webkit moz ms\",\"box-direction\":\"webkit moz ms\",\"box-flex\":\"webkit moz ms\",\"box-lines\":\"webkit ms\",\"box-ordinal-group\":\"webkit moz ms\",\"box-orient\":\"webkit moz ms\",\"box-pack\":\"webkit moz ms\",\"box-sizing\":\"webkit moz\",\"box-shadow\":\"webkit moz\",\"column-count\":\"webkit moz ms\",\"column-gap\":\"webkit moz ms\",\"column-rule\":\"webkit moz ms\",\"column-rule-color\":\"webkit moz ms\",\"column-rule-style\":\"webkit moz ms\",\"column-rule-width\":\"webkit moz ms\",\"column-width\":\"webkit moz ms\",hyphens:\"epub moz\",\"line-break\":\"webkit ms\",\"margin-end\":\"webkit moz\",\"margin-start\":\"webkit moz\",\"marquee-speed\":\"webkit wap\",\"marquee-style\":\"webkit wap\",\"padding-end\":\"webkit moz\",\"padding-start\":\"webkit moz\",\"tab-size\":\"moz o\",\"text-size-adjust\":\"webkit ms\",transform:\"webkit moz ms o\",\"transform-origin\":\"webkit moz ms o\",transition:\"webkit moz o\",\"transition-delay\":\"webkit moz o\",\"transition-duration\":\"webkit moz o\",\"transition-property\":\"webkit moz o\",\"transition-timing-function\":\"webkit moz o\",\"user-modify\":\"webkit moz\",\"user-select\":\"webkit moz ms\",\"word-break\":\"epub ms\",\"writing-mode\":\"epub ms\"};for(s in r)if(r.hasOwnProperty(s)){o=[],u=r[s].split(\" \");for(a=0,f=u.length;a<f;a++)o.push(\"-\"+u[a]+\"-\"+s);r[s]=o,c.apply(h,o)}e.addListener(\"startrule\",function(){i=[]}),e.addListener(\"startkeyframes\",function(e){l=e.prefix||!0}),e.addListener(\"endkeyframes\",function(){l=!1}),e.addListener(\"property\",function(e){var t=e.property;CSSLint.Util.indexOf(h,t.text)>-1&&(!l||typeof l!=\"string\"||t.text.indexOf(\"-\"+l+\"-\")!==0)&&i.push(t)}),e.addListener(\"endrule\",function(){if(!i.length)return;var e={},s,o,u,a,f,l,c,h,p,d;for(s=0,o=i.length;s<o;s++){u=i[s];for(a in r)r.hasOwnProperty(a)&&(f=r[a],CSSLint.Util.indexOf(f,u.text)>-1&&(e[a]||(e[a]={full:f.slice(0),actual:[],actualNodes:[]}),CSSLint.Util.indexOf(e[a].actual,u.text)===-1&&(e[a].actual.push(u.text),e[a].actualNodes.push(u))))}for(a in e)if(e.hasOwnProperty(a)){l=e[a],c=l.full,h=l.actual;if(c.length>h.length)for(s=0,o=c.length;s<o;s++)p=c[s],CSSLint.Util.indexOf(h,p)===-1&&(d=h.length===1?h[0]:h.length===2?h.join(\" and \"):h.join(\", \"),t.report(\"The property \"+p+\" is compatible with \"+d+\" and should be included as well.\",l.actualNodes[0].line,l.actualNodes[0].col,n))}})}}),CSSLint.addRule({id:\"display-property-grouping\",name:\"Require properties appropriate for display\",desc:\"Certain properties shouldn't be used with certain display property values.\",browsers:\"All\",init:function(e,t){function s(e,s,o){i[e]&&(typeof r[e]!=\"string\"||i[e].value.toLowerCase()!==r[e])&&t.report(o||e+\" can't be used with display: \"+s+\".\",i[e].line,i[e].col,n)}function o(){i={}}function u(){var e=i.display?i.display.value:null;if(e)switch(e){case\"inline\":s(\"height\",e),s(\"width\",e),s(\"margin\",e),s(\"margin-top\",e),s(\"margin-bottom\",e),s(\"float\",e,\"display:inline has no effect on floated elements (but may be used to fix the IE6 double-margin bug).\");break;case\"block\":s(\"vertical-align\",e);break;case\"inline-block\":s(\"float\",e);break;default:e.indexOf(\"table-\")===0&&(s(\"margin\",e),s(\"margin-left\",e),s(\"margin-right\",e),s(\"margin-top\",e),s(\"margin-bottom\",e),s(\"float\",e))}}var n=this,r={display:1,\"float\":\"none\",height:1,width:1,margin:1,\"margin-left\":1,\"margin-right\":1,\"margin-bottom\":1,\"margin-top\":1,padding:1,\"padding-left\":1,\"padding-right\":1,\"padding-bottom\":1,\"padding-top\":1,\"vertical-align\":1},i;e.addListener(\"startrule\",o),e.addListener(\"startfontface\",o),e.addListener(\"startkeyframerule\",o),e.addListener(\"startpagemargin\",o),e.addListener(\"startpage\",o),e.addListener(\"property\",function(e){var t=e.property.text.toLowerCase();r[t]&&(i[t]={value:e.value.text,line:e.property.line,col:e.property.col})}),e.addListener(\"endrule\",u),e.addListener(\"endfontface\",u),e.addListener(\"endkeyframerule\",u),e.addListener(\"endpagemargin\",u),e.addListener(\"endpage\",u)}}),CSSLint.addRule({id:\"duplicate-background-images\",name:\"Disallow duplicate background images\",desc:\"Every background-image should be unique. Use a common class for e.g. sprites.\",browsers:\"All\",init:function(e,t){var n=this,r={};e.addListener(\"property\",function(e){var i=e.property.text,s=e.value,o,u;if(i.match(/background/i))for(o=0,u=s.parts.length;o<u;o++)s.parts[o].type===\"uri\"&&(typeof r[s.parts[o].uri]==\"undefined\"?r[s.parts[o].uri]=e:t.report(\"Background image '\"+s.parts[o].uri+\"' was used multiple times, first declared at line \"+r[s.parts[o].uri].line+\", col \"+r[s.parts[o].uri].col+\".\",e.line,e.col,n))})}}),CSSLint.addRule({id:\"duplicate-properties\",name:\"Disallow duplicate properties\",desc:\"Duplicate properties must appear one after the other.\",browsers:\"All\",init:function(e,t){function s(){r={}}var n=this,r,i;e.addListener(\"startrule\",s),e.addListener(\"startfontface\",s),e.addListener(\"startpage\",s),e.addListener(\"startpagemargin\",s),e.addListener(\"startkeyframerule\",s),e.addListener(\"property\",function(e){var s=e.property,o=s.text.toLowerCase();r[o]&&(i!==o||r[o]===e.value.text)&&t.report(\"Duplicate property '\"+e.property+\"' found.\",e.line,e.col,n),r[o]=e.value.text,i=o})}}),CSSLint.addRule({id:\"empty-rules\",name:\"Disallow empty rules\",desc:\"Rules without any properties specified should be removed.\",browsers:\"All\",init:function(e,t){var n=this,r=0;e.addListener(\"startrule\",function(){r=0}),e.addListener(\"property\",function(){r++}),e.addListener(\"endrule\",function(e){var i=e.selectors;r===0&&t.report(\"Rule is empty.\",i[0].line,i[0].col,n)})}}),CSSLint.addRule({id:\"errors\",name:\"Parsing Errors\",desc:\"This rule looks for recoverable syntax errors.\",browsers:\"All\",init:function(e,t){var n=this;e.addListener(\"error\",function(e){t.error(e.message,e.line,e.col,n)})}}),CSSLint.addRule({id:\"fallback-colors\",name:\"Require fallback colors\",desc:\"For older browsers that don't support RGBA, HSL, or HSLA, provide a fallback color.\",browsers:\"IE6,IE7,IE8\",init:function(e,t){function o(){s={},r=null}var n=this,r,i={color:1,background:1,\"border-color\":1,\"border-top-color\":1,\"border-right-color\":1,\"border-bottom-color\":1,\"border-left-color\":1,border:1,\"border-top\":1,\"border-right\":1,\"border-bottom\":1,\"border-left\":1,\"background-color\":1},s;e.addListener(\"startrule\",o),e.addListener(\"startfontface\",o),e.addListener(\"startpage\",o),e.addListener(\"startpagemargin\",o),e.addListener(\"startkeyframerule\",o),e.addListener(\"property\",function(e){var s=e.property,o=s.text.toLowerCase(),u=e.value.parts,a=0,f=\"\",l=u.length;if(i[o])while(a<l)u[a].type===\"color\"&&(\"alpha\"in u[a]||\"hue\"in u[a]?(/([^\\)]+)\\(/.test(u[a])&&(f=RegExp.$1.toUpperCase()),(!r||r.property.text.toLowerCase()!==o||r.colorType!==\"compat\")&&t.report(\"Fallback \"+o+\" (hex or RGB) should precede \"+f+\" \"+o+\".\",e.line,e.col,n)):e.colorType=\"compat\"),a++;r=e})}}),CSSLint.addRule({id:\"floats\",name:\"Disallow too many floats\",desc:\"This rule tests if the float property is used too many times\",browsers:\"All\",init:function(e,t){var n=this,r=0;e.addListener(\"property\",function(e){e.property.text.toLowerCase()===\"float\"&&e.value.text.toLowerCase()!==\"none\"&&r++}),e.addListener(\"endstylesheet\",function(){t.stat(\"floats\",r),r>=10&&t.rollupWarn(\"Too many floats (\"+r+\"), you're probably using them for layout. Consider using a grid system instead.\",n)})}}),CSSLint.addRule({id:\"font-faces\",name:\"Don't use too many web fonts\",desc:\"Too many different web fonts in the same stylesheet.\",browsers:\"All\",init:function(e,t){var n=this,r=0;e.addListener(\"startfontface\",function(){r++}),e.addListener(\"endstylesheet\",function(){r>5&&t.rollupWarn(\"Too many @font-face declarations (\"+r+\").\",n)})}}),CSSLint.addRule({id:\"font-sizes\",name:\"Disallow too many font sizes\",desc:\"Checks the number of font-size declarations.\",browsers:\"All\",init:function(e,t){var n=this,r=0;e.addListener(\"property\",function(e){e.property.toString()===\"font-size\"&&r++}),e.addListener(\"endstylesheet\",function(){t.stat(\"font-sizes\",r),r>=10&&t.rollupWarn(\"Too many font-size declarations (\"+r+\"), abstraction needed.\",n)})}}),CSSLint.addRule({id:\"gradients\",name:\"Require all gradient definitions\",desc:\"When using a vendor-prefixed gradient, make sure to use them all.\",browsers:\"All\",init:function(e,t){var n=this,r;e.addListener(\"startrule\",function(){r={moz:0,webkit:0,oldWebkit:0,o:0}}),e.addListener(\"property\",function(e){/\\-(moz|o|webkit)(?:\\-(?:linear|radial))\\-gradient/i.test(e.value)?r[RegExp.$1]=1:/\\-webkit\\-gradient/i.test(e.value)&&(r.oldWebkit=1)}),e.addListener(\"endrule\",function(e){var i=[];r.moz||i.push(\"Firefox 3.6+\"),r.webkit||i.push(\"Webkit (Safari 5+, Chrome)\"),r.oldWebkit||i.push(\"Old Webkit (Safari 4+, Chrome)\"),r.o||i.push(\"Opera 11.1+\"),i.length&&i.length<4&&t.report(\"Missing vendor-prefixed CSS gradients for \"+i.join(\", \")+\".\",e.selectors[0].line,e.selectors[0].col,n)})}}),CSSLint.addRule({id:\"ids\",name:\"Disallow IDs in selectors\",desc:\"Selectors should not contain IDs.\",browsers:\"All\",init:function(e,t){var n=this;e.addListener(\"startrule\",function(r){var i=r.selectors,s,o,u,a,f,l,c;for(f=0;f<i.length;f++){s=i[f],a=0;for(l=0;l<s.parts.length;l++){o=s.parts[l];if(o.type===e.SELECTOR_PART_TYPE)for(c=0;c<o.modifiers.length;c++)u=o.modifiers[c],u.type===\"id\"&&a++}a===1?t.report(\"Don't use IDs in selectors.\",s.line,s.col,n):a>1&&t.report(a+\" IDs in the selector, really?\",s.line,s.col,n)}})}}),CSSLint.addRule({id:\"import\",name:\"Disallow @import\",desc:\"Don't use @import, use <link> instead.\",browsers:\"All\",init:function(e,t){var n=this;e.addListener(\"import\",function(e){t.report(\"@import prevents parallel downloads, use <link> instead.\",e.line,e.col,n)})}}),CSSLint.addRule({id:\"important\",name:\"Disallow !important\",desc:\"Be careful when using !important declaration\",browsers:\"All\",init:function(e,t){var n=this,r=0;e.addListener(\"property\",function(e){e.important===!0&&(r++,t.report(\"Use of !important\",e.line,e.col,n))}),e.addListener(\"endstylesheet\",function(){t.stat(\"important\",r),r>=10&&t.rollupWarn(\"Too many !important declarations (\"+r+\"), try to use less than 10 to avoid specificity issues.\",n)})}}),CSSLint.addRule({id:\"known-properties\",name:\"Require use of known properties\",desc:\"Properties should be known (listed in CSS3 specification) or be a vendor-prefixed property.\",browsers:\"All\",init:function(e,t){var n=this;e.addListener(\"property\",function(e){e.invalid&&t.report(e.invalid.message,e.line,e.col,n)})}}),CSSLint.addRule({id:\"order-alphabetical\",name:\"Alphabetical order\",desc:\"Assure properties are in alphabetical order\",browsers:\"All\",init:function(e,t){var n=this,r,i=function(){r=[]};e.addListener(\"startrule\",i),e.addListener(\"startfontface\",i),e.addListener(\"startpage\",i),e.addListener(\"startpagemargin\",i),e.addListener(\"startkeyframerule\",i),e.addListener(\"property\",function(e){var t=e.property.text,n=t.toLowerCase().replace(/^-.*?-/,\"\");r.push(n)}),e.addListener(\"endrule\",function(e){var i=r.join(\",\"),s=r.sort().join(\",\");i!==s&&t.report(\"Rule doesn't have all its properties in alphabetical ordered.\",e.line,e.col,n)})}}),CSSLint.addRule({id:\"outline-none\",name:\"Disallow outline: none\",desc:\"Use of outline: none or outline: 0 should be limited to :focus rules.\",browsers:\"All\",tags:[\"Accessibility\"],init:function(e,t){function i(e){e.selectors?r={line:e.line,col:e.col,selectors:e.selectors,propCount:0,outline:!1}:r=null}function s(){r&&r.outline&&(r.selectors.toString().toLowerCase().indexOf(\":focus\")===-1?t.report(\"Outlines should only be modified using :focus.\",r.line,r.col,n):r.propCount===1&&t.report(\"Outlines shouldn't be hidden unless other visual changes are made.\",r.line,r.col,n))}var n=this,r;e.addListener(\"startrule\",i),e.addListener(\"startfontface\",i),e.addListener(\"startpage\",i),e.addListener(\"startpagemargin\",i),e.addListener(\"startkeyframerule\",i),e.addListener(\"property\",function(e){var t=e.property.text.toLowerCase(),n=e.value;r&&(r.propCount++,t===\"outline\"&&(n.toString()===\"none\"||n.toString()===\"0\")&&(r.outline=!0))}),e.addListener(\"endrule\",s),e.addListener(\"endfontface\",s),e.addListener(\"endpage\",s),e.addListener(\"endpagemargin\",s),e.addListener(\"endkeyframerule\",s)}}),CSSLint.addRule({id:\"overqualified-elements\",name:\"Disallow overqualified elements\",desc:\"Don't use classes or IDs with elements (a.foo or a#foo).\",browsers:\"All\",init:function(e,t){var n=this,r={};e.addListener(\"startrule\",function(i){var s=i.selectors,o,u,a,f,l,c;for(f=0;f<s.length;f++){o=s[f];for(l=0;l<o.parts.length;l++){u=o.parts[l];if(u.type===e.SELECTOR_PART_TYPE)for(c=0;c<u.modifiers.length;c++)a=u.modifiers[c],u.elementName&&a.type===\"id\"?t.report(\"Element (\"+u+\") is overqualified, just use \"+a+\" without element name.\",u.line,u.col,n):a.type===\"class\"&&(r[a]||(r[a]=[]),r[a].push({modifier:a,part:u}))}}}),e.addListener(\"endstylesheet\",function(){var e;for(e in r)r.hasOwnProperty(e)&&r[e].length===1&&r[e][0].part.elementName&&t.report(\"Element (\"+r[e][0].part+\") is overqualified, just use \"+r[e][0].modifier+\" without element name.\",r[e][0].part.line,r[e][0].part.col,n)})}}),CSSLint.addRule({id:\"qualified-headings\",name:\"Disallow qualified headings\",desc:\"Headings should not be qualified (namespaced).\",browsers:\"All\",init:function(e,t){var n=this;e.addListener(\"startrule\",function(r){var i=r.selectors,s,o,u,a;for(u=0;u<i.length;u++){s=i[u];for(a=0;a<s.parts.length;a++)o=s.parts[a],o.type===e.SELECTOR_PART_TYPE&&o.elementName&&/h[1-6]/.test(o.elementName.toString())&&a>0&&t.report(\"Heading (\"+o.elementName+\") should not be qualified.\",o.line,o.col,n)}})}}),CSSLint.addRule({id:\"regex-selectors\",name:\"Disallow selectors that look like regexs\",desc:\"Selectors that look like regular expressions are slow and should be avoided.\",browsers:\"All\",init:function(e,t){var n=this;e.addListener(\"startrule\",function(r){var i=r.selectors,s,o,u,a,f,l;for(a=0;a<i.length;a++){s=i[a];for(f=0;f<s.parts.length;f++){o=s.parts[f];if(o.type===e.SELECTOR_PART_TYPE)for(l=0;l<o.modifiers.length;l++)u=o.modifiers[l],u.type===\"attribute\"&&/([\\~\\|\\^\\$\\*]=)/.test(u)&&t.report(\"Attribute selectors with \"+RegExp.$1+\" are slow!\",u.line,u.col,n)}}})}}),CSSLint.addRule({id:\"rules-count\",name:\"Rules Count\",desc:\"Track how many rules there are.\",browsers:\"All\",init:function(e,t){var n=0;e.addListener(\"startrule\",function(){n++}),e.addListener(\"endstylesheet\",function(){t.stat(\"rule-count\",n)})}}),CSSLint.addRule({id:\"selector-max-approaching\",name:\"Warn when approaching the 4095 selector limit for IE\",desc:\"Will warn when selector count is >= 3800 selectors.\",browsers:\"IE\",init:function(e,t){var n=this,r=0;e.addListener(\"startrule\",function(e){r+=e.selectors.length}),e.addListener(\"endstylesheet\",function(){r>=3800&&t.report(\"You have \"+r+\" selectors. Internet Explorer supports a maximum of 4095 selectors per stylesheet. Consider refactoring.\",0,0,n)})}}),CSSLint.addRule({id:\"selector-max\",name:\"Error when past the 4095 selector limit for IE\",desc:\"Will error when selector count is > 4095.\",browsers:\"IE\",init:function(e,t){var n=this,r=0;e.addListener(\"startrule\",function(e){r+=e.selectors.length}),e.addListener(\"endstylesheet\",function(){r>4095&&t.report(\"You have \"+r+\" selectors. Internet Explorer supports a maximum of 4095 selectors per stylesheet. Consider refactoring.\",0,0,n)})}}),CSSLint.addRule({id:\"selector-newline\",name:\"Disallow new-line characters in selectors\",desc:\"New-line characters in selectors are usually a forgotten comma and not a descendant combinator.\",browsers:\"All\",init:function(e,t){function r(e){var r,i,s,o,u,a,f,l,c,h,p,d=e.selectors;for(r=0,i=d.length;r<i;r++){s=d[r];for(o=0,a=s.parts.length;o<a;o++)for(u=o+1;u<a;u++)f=s.parts[o],l=s.parts[u],c=f.type,h=f.line,p=l.line,c===\"descendant\"&&p>h&&t.report(\"newline character found in selector (forgot a comma?)\",h,d[r].parts[0].col,n)}}var n=this;e.addListener(\"startrule\",r)}}),CSSLint.addRule({id:\"shorthand\",name:\"Require shorthand properties\",desc:\"Use shorthand properties where possible.\",browsers:\"All\",init:function(e,t){function f(){u={}}function l(e){var r,i,s,o;for(r in a)if(a.hasOwnProperty(r)){o=0;for(i=0,s=a[r].length;i<s;i++)o+=u[a[r][i]]?1:0;o===a[r].length&&t.report(\"The properties \"+a[r].join(\", \")+\" can be replaced by \"+r+\".\",e.line,e.col,n)}}var n=this,r,i,s,o={},u,a={margin:[\"margin-top\",\"margin-bottom\",\"margin-left\",\"margin-right\"],padding:[\"padding-top\",\"padding-bottom\",\"padding-left\",\"padding-right\"]};for(r in a)if(a.hasOwnProperty(r))for(i=0,s=a[r].length;i<s;i++)o[a[r][i]]=r;e.addListener(\"startrule\",f),e.addListener(\"startfontface\",f),e.addListener(\"property\",function(e){var t=e.property.toString().toLowerCase();o[t]&&(u[t]=1)}),e.addListener(\"endrule\",l),e.addListener(\"endfontface\",l)}}),CSSLint.addRule({id:\"star-property-hack\",name:\"Disallow properties with a star prefix\",desc:\"Checks for the star property hack (targets IE6/7)\",browsers:\"All\",init:function(e,t){var n=this;e.addListener(\"property\",function(e){var r=e.property;r.hack===\"*\"&&t.report(\"Property with star prefix found.\",e.property.line,e.property.col,n)})}}),CSSLint.addRule({id:\"text-indent\",name:\"Disallow negative text-indent\",desc:\"Checks for text indent less than -99px\",browsers:\"All\",init:function(e,t){function s(){r=!1,i=\"inherit\"}function o(){r&&i!==\"ltr\"&&t.report(\"Negative text-indent doesn't work well with RTL. If you use text-indent for image replacement explicitly set direction for that item to ltr.\",r.line,r.col,n)}var n=this,r,i;e.addListener(\"startrule\",s),e.addListener(\"startfontface\",s),e.addListener(\"property\",function(e){var t=e.property.toString().toLowerCase(),n=e.value;t===\"text-indent\"&&n.parts[0].value<-99?r=e.property:t===\"direction\"&&n.toString()===\"ltr\"&&(i=\"ltr\")}),e.addListener(\"endrule\",o),e.addListener(\"endfontface\",o)}}),CSSLint.addRule({id:\"underscore-property-hack\",name:\"Disallow properties with an underscore prefix\",desc:\"Checks for the underscore property hack (targets IE6)\",browsers:\"All\",init:function(e,t){var n=this;e.addListener(\"property\",function(e){var r=e.property;r.hack===\"_\"&&t.report(\"Property with underscore prefix found.\",e.property.line,e.property.col,n)})}}),CSSLint.addRule({id:\"unique-headings\",name:\"Headings should only be defined once\",desc:\"Headings should be defined only once.\",browsers:\"All\",init:function(e,t){var n=this,r={h1:0,h2:0,h3:0,h4:0,h5:0,h6:0};e.addListener(\"startrule\",function(e){var i=e.selectors,s,o,u,a,f;for(a=0;a<i.length;a++){s=i[a],o=s.parts[s.parts.length-1];if(o.elementName&&/(h[1-6])/i.test(o.elementName.toString())){for(f=0;f<o.modifiers.length;f++)if(o.modifiers[f].type===\"pseudo\"){u=!0;break}u||(r[RegExp.$1]++,r[RegExp.$1]>1&&t.report(\"Heading (\"+o.elementName+\") has already been defined.\",o.line,o.col,n))}}}),e.addListener(\"endstylesheet\",function(){var e,i=[];for(e in r)r.hasOwnProperty(e)&&r[e]>1&&i.push(r[e]+\" \"+e+\"s\");i.length&&t.rollupWarn(\"You have \"+i.join(\", \")+\" defined in this stylesheet.\",n)})}}),CSSLint.addRule({id:\"universal-selector\",name:\"Disallow universal selector\",desc:\"The universal selector (*) is known to be slow.\",browsers:\"All\",init:function(e,t){var n=this;e.addListener(\"startrule\",function(e){var r=e.selectors,i,s,o;for(o=0;o<r.length;o++)i=r[o],s=i.parts[i.parts.length-1],s.elementName===\"*\"&&t.report(n.desc,s.line,s.col,n)})}}),CSSLint.addRule({id:\"unqualified-attributes\",name:\"Disallow unqualified attribute selectors\",desc:\"Unqualified attribute selectors are known to be slow.\",browsers:\"All\",init:function(e,t){var n=this;e.addListener(\"startrule\",function(r){var i=r.selectors,s,o,u,a,f;for(a=0;a<i.length;a++){s=i[a],o=s.parts[s.parts.length-1];if(o.type===e.SELECTOR_PART_TYPE)for(f=0;f<o.modifiers.length;f++)u=o.modifiers[f],u.type===\"attribute\"&&(!o.elementName||o.elementName===\"*\")&&t.report(n.desc,o.line,o.col,n)}})}}),CSSLint.addRule({id:\"vendor-prefix\",name:\"Require standard property with vendor prefix\",desc:\"When using a vendor-prefixed property, make sure to include the standard one.\",browsers:\"All\",init:function(e,t){function o(){r={},i=1}function u(){var e,i,o,u,a,f=[];for(e in r)s[e]&&f.push({actual:e,needed:s[e]});for(i=0,o=f.length;i<o;i++)u=f[i].needed,a=f[i].actual,r[u]?r[u][0].pos<r[a][0].pos&&t.report(\"Standard property '\"+u+\"' should come after vendor-prefixed property '\"+a+\"'.\",r[a][0].name.line,r[a][0].name.col,n):t.report(\"Missing standard property '\"+u+\"' to go along with '\"+a+\"'.\",r[a][0].name.line,r[a][0].name.col,n)}var n=this,r,i,s={\"-webkit-border-radius\":\"border-radius\",\"-webkit-border-top-left-radius\":\"border-top-left-radius\",\"-webkit-border-top-right-radius\":\"border-top-right-radius\",\"-webkit-border-bottom-left-radius\":\"border-bottom-left-radius\",\"-webkit-border-bottom-right-radius\":\"border-bottom-right-radius\",\"-o-border-radius\":\"border-radius\",\"-o-border-top-left-radius\":\"border-top-left-radius\",\"-o-border-top-right-radius\":\"border-top-right-radius\",\"-o-border-bottom-left-radius\":\"border-bottom-left-radius\",\"-o-border-bottom-right-radius\":\"border-bottom-right-radius\",\"-moz-border-radius\":\"border-radius\",\"-moz-border-radius-topleft\":\"border-top-left-radius\",\"-moz-border-radius-topright\":\"border-top-right-radius\",\"-moz-border-radius-bottomleft\":\"border-bottom-left-radius\",\"-moz-border-radius-bottomright\":\"border-bottom-right-radius\",\"-moz-column-count\":\"column-count\",\"-webkit-column-count\":\"column-count\",\"-moz-column-gap\":\"column-gap\",\"-webkit-column-gap\":\"column-gap\",\"-moz-column-rule\":\"column-rule\",\"-webkit-column-rule\":\"column-rule\",\"-moz-column-rule-style\":\"column-rule-style\",\"-webkit-column-rule-style\":\"column-rule-style\",\"-moz-column-rule-color\":\"column-rule-color\",\"-webkit-column-rule-color\":\"column-rule-color\",\"-moz-column-rule-width\":\"column-rule-width\",\"-webkit-column-rule-width\":\"column-rule-width\",\"-moz-column-width\":\"column-width\",\"-webkit-column-width\":\"column-width\",\"-webkit-column-span\":\"column-span\",\"-webkit-columns\":\"columns\",\"-moz-box-shadow\":\"box-shadow\",\"-webkit-box-shadow\":\"box-shadow\",\"-moz-transform\":\"transform\",\"-webkit-transform\":\"transform\",\"-o-transform\":\"transform\",\"-ms-transform\":\"transform\",\"-moz-transform-origin\":\"transform-origin\",\"-webkit-transform-origin\":\"transform-origin\",\"-o-transform-origin\":\"transform-origin\",\"-ms-transform-origin\":\"transform-origin\",\"-moz-box-sizing\":\"box-sizing\",\"-webkit-box-sizing\":\"box-sizing\"};e.addListener(\"startrule\",o),e.addListener(\"startfontface\",o),e.addListener(\"startpage\",o),e.addListener(\"startpagemargin\",o),e.addListener(\"startkeyframerule\",o),e.addListener(\"property\",function(e){var t=e.property.text.toLowerCase();r[t]||(r[t]=[]),r[t].push({name:e.property,value:e.value,pos:i++})}),e.addListener(\"endrule\",u),e.addListener(\"endfontface\",u),e.addListener(\"endpage\",u),e.addListener(\"endpagemargin\",u),e.addListener(\"endkeyframerule\",u)}}),CSSLint.addRule({id:\"zero-units\",name:\"Disallow units for 0 values\",desc:\"You don't need to specify units when a value is 0.\",browsers:\"All\",init:function(e,t){var n=this;e.addListener(\"property\",function(e){var r=e.value.parts,i=0,s=r.length;while(i<s)(r[i].units||r[i].type===\"percentage\")&&r[i].value===0&&r[i].type!==\"time\"&&t.report(\"Values of 0 shouldn't have units specified.\",r[i].line,r[i].col,n),i++})}}),function(){var e=function(e){return!e||e.constructor!==String?\"\":e.replace(/[\\\"&><]/g,function(e){switch(e){case'\"':return\"&quot;\";case\"&\":return\"&amp;\";case\"<\":return\"&lt;\";case\">\":return\"&gt;\"}})};CSSLint.addFormatter({id:\"checkstyle-xml\",name:\"Checkstyle XML format\",startFormat:function(){return'<?xml version=\"1.0\" encoding=\"utf-8\"?><checkstyle>'},endFormat:function(){return\"</checkstyle>\"},readError:function(t,n){return'<file name=\"'+e(t)+'\"><error line=\"0\" column=\"0\" severty=\"error\" message=\"'+e(n)+'\"></error></file>'},formatResults:function(t,n){var r=t.messages,i=[],s=function(e){return!!e&&\"name\"in e?\"net.csslint.\"+e.name.replace(/\\s/g,\"\"):\"\"};return r.length>0&&(i.push('<file name=\"'+n+'\">'),CSSLint.Util.forEach(r,function(t){t.rollup||i.push('<error line=\"'+t.line+'\" column=\"'+t.col+'\" severity=\"'+t.type+'\"'+' message=\"'+e(t.message)+'\" source=\"'+s(t.rule)+'\"/>')}),i.push(\"</file>\")),i.join(\"\")}})}(),CSSLint.addFormatter({id:\"compact\",name:\"Compact, 'porcelain' format\",startFormat:function(){return\"\"},endFormat:function(){return\"\"},formatResults:function(e,t,n){var r=e.messages,i=\"\";n=n||{};var s=function(e){return e.charAt(0).toUpperCase()+e.slice(1)};return r.length===0?n.quiet?\"\":t+\": Lint Free!\":(CSSLint.Util.forEach(r,function(e){e.rollup?i+=t+\": \"+s(e.type)+\" - \"+e.message+\"\\n\":i+=t+\": \"+\"line \"+e.line+\", col \"+e.col+\", \"+s(e.type)+\" - \"+e.message+\" (\"+e.rule.id+\")\\n\"}),i)}}),CSSLint.addFormatter({id:\"csslint-xml\",name:\"CSSLint XML format\",startFormat:function(){return'<?xml version=\"1.0\" encoding=\"utf-8\"?><csslint>'},endFormat:function(){return\"</csslint>\"},formatResults:function(e,t){var n=e.messages,r=[],i=function(e){return!e||e.constructor!==String?\"\":e.replace(/\\\"/g,\"'\").replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\")};return n.length>0&&(r.push('<file name=\"'+t+'\">'),CSSLint.Util.forEach(n,function(e){e.rollup?r.push('<issue severity=\"'+e.type+'\" reason=\"'+i(e.message)+'\" evidence=\"'+i(e.evidence)+'\"/>'):r.push('<issue line=\"'+e.line+'\" char=\"'+e.col+'\" severity=\"'+e.type+'\"'+' reason=\"'+i(e.message)+'\" evidence=\"'+i(e.evidence)+'\"/>')}),r.push(\"</file>\")),r.join(\"\")}}),CSSLint.addFormatter({id:\"junit-xml\",name:\"JUNIT XML format\",startFormat:function(){return'<?xml version=\"1.0\" encoding=\"utf-8\"?><testsuites>'},endFormat:function(){return\"</testsuites>\"},formatResults:function(e,t){var n=e.messages,r=[],i={error:0,failure:0},s=function(e){return!!e&&\"name\"in e?\"net.csslint.\"+e.name.replace(/\\s/g,\"\"):\"\"},o=function(e){return!e||e.constructor!==String?\"\":e.replace(/\\\"/g,\"'\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\")};return n.length>0&&(n.forEach(function(e){var t=e.type===\"warning\"?\"error\":e.type;e.rollup||(r.push('<testcase time=\"0\" name=\"'+s(e.rule)+'\">'),r.push(\"<\"+t+' message=\"'+o(e.message)+'\"><![CDATA['+e.line+\":\"+e.col+\":\"+o(e.evidence)+\"]]></\"+t+\">\"),r.push(\"</testcase>\"),i[t]+=1)}),r.unshift('<testsuite time=\"0\" tests=\"'+n.length+'\" skipped=\"0\" errors=\"'+i.error+'\" failures=\"'+i.failure+'\" package=\"net.csslint\" name=\"'+t+'\">'),r.push(\"</testsuite>\")),r.join(\"\")}}),CSSLint.addFormatter({id:\"lint-xml\",name:\"Lint XML format\",startFormat:function(){return'<?xml version=\"1.0\" encoding=\"utf-8\"?><lint>'},endFormat:function(){return\"</lint>\"},formatResults:function(e,t){var n=e.messages,r=[],i=function(e){return!e||e.constructor!==String?\"\":e.replace(/\\\"/g,\"'\").replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\")};return n.length>0&&(r.push('<file name=\"'+t+'\">'),CSSLint.Util.forEach(n,function(e){e.rollup?r.push('<issue severity=\"'+e.type+'\" reason=\"'+i(e.message)+'\" evidence=\"'+i(e.evidence)+'\"/>'):r.push('<issue line=\"'+e.line+'\" char=\"'+e.col+'\" severity=\"'+e.type+'\"'+' reason=\"'+i(e.message)+'\" evidence=\"'+i(e.evidence)+'\"/>')}),r.push(\"</file>\")),r.join(\"\")}}),CSSLint.addFormatter({id:\"text\",name:\"Plain Text\",startFormat:function(){return\"\"},endFormat:function(){return\"\"},formatResults:function(e,t,n){var r=e.messages,i=\"\";n=n||{};if(r.length===0)return n.quiet?\"\":\"\\n\\ncsslint: No errors in \"+t+\".\";i=\"\\n\\ncsslint: There \",r.length===1?i+=\"is 1 problem\":i+=\"are \"+r.length+\" problems\",i+=\" in \"+t+\".\";var s=t.lastIndexOf(\"/\"),o=t;return s===-1&&(s=t.lastIndexOf(\"\\\\\")),s>-1&&(o=t.substring(s+1)),CSSLint.Util.forEach(r,function(e,t){i=i+\"\\n\\n\"+o,e.rollup?(i+=\"\\n\"+(t+1)+\": \"+e.type,i+=\"\\n\"+e.message):(i+=\"\\n\"+(t+1)+\": \"+e.type+\" at line \"+e.line+\", col \"+e.col,i+=\"\\n\"+e.message,i+=\"\\n\"+e.evidence)}),i}}),module.exports.CSSLint=CSSLint}),ace.define(\"ace/mode/css_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/worker/mirror\",\"ace/mode/css/csslint\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"../worker/mirror\").Mirror,o=e(\"./css/csslint\").CSSLint,u=t.Worker=function(e){s.call(this,e),this.setTimeout(400),this.ruleset=null,this.setDisabledRules(\"ids|order-alphabetical\"),this.setInfoRules(\"adjoining-classes|qualified-headings|zero-units|gradients|import|outline-none|vendor-prefix\")};r.inherits(u,s),function(){this.setInfoRules=function(e){typeof e==\"string\"&&(e=e.split(\"|\")),this.infoRules=i.arrayToMap(e),this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.setDisabledRules=function(e){if(!e)this.ruleset=null;else{typeof e==\"string\"&&(e=e.split(\"|\"));var t={};o.getRules().forEach(function(e){t[e.id]=!0}),e.forEach(function(e){delete t[e]}),this.ruleset=t}this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.onUpdate=function(){var e=this.doc.getValue();if(!e)return this.sender.emit(\"annotate\",[]);var t=this.infoRules,n=o.verify(e,this.ruleset);this.sender.emit(\"annotate\",n.messages.map(function(e){return{row:e.line-1,column:e.col-1,text:e.message,type:t[e.rule.id]?\"info\":e.type,rule:e.rule.name}}))}}.call(u.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,\"sentinel\",{}),\"sentinel\"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t===\"undefined\"||t===\"boolean\"||t===\"number\"||t===\"string\"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n==\"function\"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r==\"function\"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!=\"function\")throw new TypeError(\"Function.prototype.bind called on incompatible \"+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,\"__defineGetter__\"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,\"XXX\"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)==\"[object Array]\"});var m=Object(\"a\"),g=m[0]!=\"a\"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduce of empty array with no initial value\");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError(\"reduce of empty array with no initial value\")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduceRight of empty array with no initial value\");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError(\"reduceRight of empty array with no initial value\")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!=\"object\")throw new TypeError(\"typeof prototype[\"+typeof t+\"] != 'object'\");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document==\"undefined\"||w(document.createElement(\"div\"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T=\"Property description must be an object: \",N=\"Object.defineProperty called on non-object: \",C=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(t,n,r){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(N+t);if(typeof r!=\"object\"&&typeof r!=\"function\"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,\"value\"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,\"get\")&&l(t,n,r.get),f(r,\"set\")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n==\"function\"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n=\"\";while(f(t,n))n+=\"?\";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!=\"object\"&&typeof e!=\"function\"||e===null)throw new TypeError(\"Object.keys called on a non-object\");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=\"\t\\n\u000b\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\";if(!String.prototype.trim||_.trim()){_=\"[\"+_+\"]\";var D=new RegExp(\"^\"+_+_+\"*\"),P=new RegExp(_+_+\"*$\");String.prototype.trim=function(){return String(this).replace(D,\"\").replace(P,\"\")}}var F=function(e){if(e==null)throw new TypeError(\"can't convert \"+e+\" to object\");return Object(e)}})"
  },
  {
    "path": "lib/src-min-noconflict/worker-html.js",
    "content": "\"no use strict\";(function(e){function t(e,t){var n=e,r=\"\";while(n){var i=t[n];if(typeof i==\"string\")return i+r;if(i)return i.location.replace(/\\/*$/,\"/\")+(r||i.main||i.name);if(i===!1)return\"\";var s=n.lastIndexOf(\"/\");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!=\"undefined\"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:\"error\",data:{message:e,data:i.data,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf(\"!\")!==-1){var r=n.split(\"!\");return e.normalizeModule(t,r[0])+\"!\"+e.normalizeModule(t,r[1])}if(n.charAt(0)==\".\"){var i=t.split(\"/\").slice(0,-1).join(\"/\");n=(i?i+\"/\":\"\")+n;while(n.indexOf(\".\")!==-1&&s!=n){var s=n;n=n.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log(\"unable to load \"+i);var o=t(i,e.require.tlns);return o.slice(-3)!=\".js\"&&(o+=\".js\"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!=\"string\"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!=\"function\"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=[\"require\",\"exports\",\"module\"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case\"require\":return i;case\"exports\":return e.exports;case\"module\":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},require.tlns={},e.initBaseUrls=function(t){for(var n in t)require.tlns[n]=t[n]},e.initSender=function(){var n=e.require(\"ace/lib/event_emitter\").EventEmitter,r=e.require(\"ace/lib/oop\"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:\"call\",id:t,data:e})},this.emit=function(e,t){postMessage({type:\"event\",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error(\"Unknown command:\"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),require(\"ace/lib/es5-shim\"),r=e.sender=e.initSender();var s=require(i.module)[i.classname];n=e.main=new s(r)}}})(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split(\"\").reverse().join(\"\")},t.stringRepeat=function(e,t){var n=\"\";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\\s\\s*/,i=/\\s\\s*$/;t.stringTrimLeft=function(e){return e.replace(r,\"\")},t.stringTrimRight=function(e){return e.replace(i,\"\")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]==\"object\"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!=\"object\"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}if(Object.prototype.toString.call(e)!==\"[object Object]\")return e;t={};for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},t.escapeHTML=function(e){return e.replace(/&/g,\"&#38;\").replace(/\"/g,\"&#34;\").replace(/'/g,\"&#39;\").replace(/</g,\"&#60;\")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e==\"object\"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e==\"object\"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e,t){throw console.log(\"Invalid Delta:\",e),\"Invalid Delta: \"+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!=\"insert\"&&t.action!=\"remove\"&&r(t,\"delta.action must be 'insert' or 'remove'\"),t.lines instanceof Array||r(t,\"delta.lines must be an Array\"),(!t.start||!t.end)&&r(t,\"delta.start/end must be an present\");var n=t.start;i(e,t.start)||r(t,\"delta.start must be contained in document\");var s=t.end;t.action==\"remove\"&&!i(e,s)&&r(t,\"delta.end must contained in document for 'remove' actions\");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,\"delta.range must match delta lines\")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||\"\";switch(t.action){case\"insert\":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case\"remove\":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!=\"object\"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?\"unshift\":\"push\"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n==\"undefined\"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action==\"insert\",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal(\"change\",{old:i,value:r})},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./apply_delta\").applyDelta,s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=function(e){this.$lines=[\"\"],e.length===0?this.$lines=[\"\"]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},\"aaa\".split(/a/).length===0?this.$split=function(e){return e.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:this.$split=function(e){return e.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=t?t[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal(\"changeNewLineMode\")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==\"\\r\\n\"||e==\"\\r\"||e==\"\\n\"},this.getLine=function(e){return this.$lines[e]||\"\"},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||\"\").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(e,[\"\",\"\"])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:\"insert\",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([\"\"]),n=0):(t=[\"\"].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:\"insert\",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:\"remove\",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:\"remove\",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:\"remove\",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action==\"insert\";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal(\"change\",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(\"\"),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action==\"insert\"?\"remove\":\"insert\",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),ace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=e(\"../document\").Document,s=e(\"../lib/lang\"),o=t.Mirror=function(e){this.sender=e;var t=this.doc=new i(\"\"),n=this.deferredUpdate=s.delayedCall(this.onUpdate.bind(this)),r=this;e.on(\"change\",function(e){var i=e.data;if(i[0].start)t.applyDeltas(i);else for(var s=0;s<i.length;s+=2){if(Array.isArray(i[s+1]))var o={action:\"insert\",start:i[s],lines:i[s+1]};else var o={action:\"remove\",start:i[s],end:i[s+1]};t.applyDelta(o,!0)}if(r.$timeout)return n.schedule(r.$timeout);r.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),ace.define(\"ace/mode/html/saxparser\",[\"require\",\"exports\",\"module\"],function(e,t,n){n.exports=function r(t,n,i){function s(u,a){if(!n[u]){if(!t[u]){var f=typeof e==\"function\"&&e;if(!a&&f)return f(u,!0);if(o)return o(u,!0);throw new Error(\"Cannot find module '\"+u+\"'\")}var l=n[u]={exports:{}};t[u][0].call(l.exports,function(e){var n=t[u][1][e];return s(n?n:e)},l,l.exports,r,t,n,i)}return n[u].exports}var o=typeof e==\"function\"&&e;for(var u=0;u<i.length;u++)s(i[u]);return s}({1:[function(e,t,n){function r(e){if(e.namespaceURI===\"http://www.w3.org/1999/xhtml\")return e.localName===\"applet\"||e.localName===\"caption\"||e.localName===\"marquee\"||e.localName===\"object\"||e.localName===\"table\"||e.localName===\"td\"||e.localName===\"th\";if(e.namespaceURI===\"http://www.w3.org/1998/Math/MathML\")return e.localName===\"mi\"||e.localName===\"mo\"||e.localName===\"mn\"||e.localName===\"ms\"||e.localName===\"mtext\"||e.localName===\"annotation-xml\";if(e.namespaceURI===\"http://www.w3.org/2000/svg\")return e.localName===\"foreignObject\"||e.localName===\"desc\"||e.localName===\"title\"}function i(e){return r(e)||e.namespaceURI===\"http://www.w3.org/1999/xhtml\"&&e.localName===\"ol\"||e.namespaceURI===\"http://www.w3.org/1999/xhtml\"&&e.localName===\"ul\"}function s(e){return e.namespaceURI===\"http://www.w3.org/1999/xhtml\"&&e.localName===\"table\"||e.namespaceURI===\"http://www.w3.org/1999/xhtml\"&&e.localName===\"html\"}function o(e){return e.namespaceURI===\"http://www.w3.org/1999/xhtml\"&&e.localName===\"tbody\"||e.namespaceURI===\"http://www.w3.org/1999/xhtml\"&&e.localName===\"tfoot\"||e.namespaceURI===\"http://www.w3.org/1999/xhtml\"&&e.localName===\"thead\"||e.namespaceURI===\"http://www.w3.org/1999/xhtml\"&&e.localName===\"html\"}function u(e){return e.namespaceURI===\"http://www.w3.org/1999/xhtml\"&&e.localName===\"tr\"||e.namespaceURI===\"http://www.w3.org/1999/xhtml\"&&e.localName===\"html\"}function a(e){return r(e)||e.namespaceURI===\"http://www.w3.org/1999/xhtml\"&&e.localName===\"button\"}function f(e){return(e.namespaceURI!==\"http://www.w3.org/1999/xhtml\"||e.localName!==\"optgroup\")&&(e.namespaceURI!==\"http://www.w3.org/1999/xhtml\"||e.localName!==\"option\")}function l(){this.elements=[],this.rootNode=null,this.headElement=null,this.bodyElement=null}l.prototype._inScope=function(e,t){for(var n=this.elements.length-1;n>=0;n--){var r=this.elements[n];if(r.localName===e)return!0;if(t(r))return!1}},l.prototype.push=function(e){this.elements.push(e)},l.prototype.pushHtmlElement=function(e){this.rootNode=e.node,this.push(e)},l.prototype.pushHeadElement=function(e){this.headElement=e.node,this.push(e)},l.prototype.pushBodyElement=function(e){this.bodyElement=e.node,this.push(e)},l.prototype.pop=function(){return this.elements.pop()},l.prototype.remove=function(e){this.elements.splice(this.elements.indexOf(e),1)},l.prototype.popUntilPopped=function(e){var t;do t=this.pop();while(t.localName!=e)},l.prototype.popUntilTableScopeMarker=function(){while(!s(this.top))this.pop()},l.prototype.popUntilTableBodyScopeMarker=function(){while(!o(this.top))this.pop()},l.prototype.popUntilTableRowScopeMarker=function(){while(!u(this.top))this.pop()},l.prototype.item=function(e){return this.elements[e]},l.prototype.contains=function(e){return this.elements.indexOf(e)!==-1},l.prototype.inScope=function(e){return this._inScope(e,r)},l.prototype.inListItemScope=function(e){return this._inScope(e,i)},l.prototype.inTableScope=function(e){return this._inScope(e,s)},l.prototype.inButtonScope=function(e){return this._inScope(e,a)},l.prototype.inSelectScope=function(e){return this._inScope(e,f)},l.prototype.hasNumberedHeaderElementInScope=function(){for(var e=this.elements.length-1;e>=0;e--){var t=this.elements[e];if(t.isNumberedHeader())return!0;if(r(t))return!1}},l.prototype.furthestBlockForFormattingElement=function(e){var t=null;for(var n=this.elements.length-1;n>=0;n--){var r=this.elements[n];if(r.node===e)break;r.isSpecial()&&(t=r)}return t},l.prototype.findIndex=function(e){for(var t=this.elements.length-1;t>=0;t--)if(this.elements[t].localName==e)return t;return-1},l.prototype.remove_openElements_until=function(e){var t=!1,n;while(!t)n=this.elements.pop(),t=e(n);return n},Object.defineProperty(l.prototype,\"top\",{get:function(){return this.elements[this.elements.length-1]}}),Object.defineProperty(l.prototype,\"length\",{get:function(){return this.elements.length}}),n.ElementStack=l},{}],2:[function(e,t,n){function o(e){return e>=\"0\"&&e<=\"9\"||e>=\"a\"&&e<=\"z\"||e>=\"A\"&&e<=\"Z\"}function u(e){return e>=\"0\"&&e<=\"9\"||e>=\"a\"&&e<=\"f\"||e>=\"A\"&&e<=\"F\"}function a(e){return e>=\"0\"&&e<=\"9\"}var r=e(\"html5-entities\"),i=e(\"./InputStream\").InputStream,s={};Object.keys(r).forEach(function(e){for(var t=0;t<e.length;t++)s[e.substring(0,t+1)]=!0});var f={};f.consumeEntity=function(e,t,n){var f=\"\",l=\"\",c=e.char();if(c===i.EOF)return!1;l+=c;if(c==\"\t\"||c==\"\\n\"||c==\"\u000b\"||c==\" \"||c==\"<\"||c==\"&\")return e.unget(l),!1;if(n===c)return e.unget(l),!1;if(c==\"#\"){c=e.shift(1);if(c===i.EOF)return t._parseError(\"expected-numeric-entity-but-got-eof\"),e.unget(l),!1;l+=c;var h=10,p=a;if(c==\"x\"||c==\"X\"){h=16,p=u,c=e.shift(1);if(c===i.EOF)return t._parseError(\"expected-numeric-entity-but-got-eof\"),e.unget(l),!1;l+=c}if(p(c)){var d=\"\";while(c!==i.EOF&&p(c))d+=c,c=e.char();d=parseInt(d,h);var v=this.replaceEntityNumbers(d);v&&(t._parseError(\"invalid-numeric-entity-replaced\"),d=v);if(d>65535&&d<=1114111){d-=65536;var m=((1047552&d)>>10)+55296,g=(1023&d)+56320;f=String.fromCharCode(m,g)}else f=String.fromCharCode(d);return c!==\";\"&&(t._parseError(\"numeric-entity-without-semicolon\"),e.unget(c)),f}return e.unget(l),t._parseError(\"expected-numeric-entity\"),!1}if(c>=\"a\"&&c<=\"z\"||c>=\"A\"&&c<=\"Z\"){var y=\"\";while(s[l]){r[l]&&(y=l);if(c==\";\")break;c=e.char();if(c===i.EOF)break;l+=c}return y?(f=r[y],c===\";\"||!n||!o(c)&&c!==\"=\"?(l.length>y.length&&e.unget(l.substring(y.length)),c!==\";\"&&t._parseError(\"named-entity-without-semicolon\"),f):(e.unget(l),!1)):(t._parseError(\"expected-named-entity\"),e.unget(l),!1)}},f.replaceEntityNumbers=function(e){switch(e){case 0:return 65533;case 19:return 16;case 128:return 8364;case 129:return 129;case 130:return 8218;case 131:return 402;case 132:return 8222;case 133:return 8230;case 134:return 8224;case 135:return 8225;case 136:return 710;case 137:return 8240;case 138:return 352;case 139:return 8249;case 140:return 338;case 141:return 141;case 142:return 381;case 143:return 143;case 144:return 144;case 145:return 8216;case 146:return 8217;case 147:return 8220;case 148:return 8221;case 149:return 8226;case 150:return 8211;case 151:return 8212;case 152:return 732;case 153:return 8482;case 154:return 353;case 155:return 8250;case 156:return 339;case 157:return 157;case 158:return 382;case 159:return 376;default:if(e>=55296&&e<=57343||e>1114111)return 65533;if(e>=1&&e<=8||e>=14&&e<=31||e>=127&&e<=159||e>=64976&&e<=65007||e==11||e==65534||e==131070||e==3145726||e==196607||e==262142||e==262143||e==327678||e==327679||e==393214||e==393215||e==458750||e==458751||e==524286||e==524287||e==589822||e==589823||e==655358||e==655359||e==720894||e==720895||e==786430||e==786431||e==851966||e==851967||e==917502||e==917503||e==983038||e==983039||e==1048574||e==1048575||e==1114110||e==1114111)return e}},n.EntityParser=f},{\"./InputStream\":3,\"html5-entities\":12}],3:[function(e,t,n){function r(){this.data=\"\",this.start=0,this.committed=0,this.eof=!1,this.lastLocation={line:0,column:0}}r.EOF=-1,r.DRAIN=-2,r.prototype={slice:function(){if(this.start>=this.data.length){if(!this.eof)throw r.DRAIN;return r.EOF}return this.data.slice(this.start,this.data.length)},\"char\":function(){if(!this.eof&&this.start>=this.data.length-1)throw r.DRAIN;if(this.start>=this.data.length)return r.EOF;var e=this.data[this.start++];return e===\"\\r\"&&(e=\"\\n\"),e},advance:function(e){this.start+=e;if(this.start>=this.data.length){if(!this.eof)throw r.DRAIN;return r.EOF}this.committed>this.data.length/2&&(this.lastLocation=this.location(),this.data=this.data.slice(this.committed),this.start=this.start-this.committed,this.committed=0)},matchWhile:function(e){if(this.eof&&this.start>=this.data.length)return\"\";var t=new RegExp(\"^\"+e+\"+\"),n=t.exec(this.slice());if(n){if(!this.eof&&n[0].length==this.data.length-this.start)throw r.DRAIN;return this.advance(n[0].length),n[0]}return\"\"},matchUntil:function(e){var t,n;n=this.slice();if(n===r.EOF)return\"\";if(t=(new RegExp(e+(this.eof?\"|$\":\"\"))).exec(n)){var i=this.data.slice(this.start,this.start+t.index);return this.advance(t.index),i.replace(/\\r/g,\"\\n\").replace(/\\n{2,}/g,\"\\n\")}throw r.DRAIN},append:function(e){this.data+=e},shift:function(e){if(!this.eof&&this.start+e>=this.data.length)throw r.DRAIN;if(this.eof&&this.start>=this.data.length)return r.EOF;var t=this.data.slice(this.start,this.start+e).toString();return this.advance(Math.min(e,this.data.length-this.start)),t},peek:function(e){if(!this.eof&&this.start+e>=this.data.length)throw r.DRAIN;return this.eof&&this.start>=this.data.length?r.EOF:this.data.slice(this.start,Math.min(this.start+e,this.data.length)).toString()},length:function(){return this.data.length-this.start-1},unget:function(e){if(e===r.EOF)return;this.start-=e.length},undo:function(){this.start=this.committed},commit:function(){this.committed=this.start},location:function(){var e=this.lastLocation.line,t=this.lastLocation.column,n=this.data.slice(0,this.committed),r=n.match(/\\n/g),i=r?e+r.length:e,s=r?n.length-n.lastIndexOf(\"\\n\")-1:t+n.length;return{line:i,column:s}}},n.InputStream=r},{}],4:[function(e,t,n){function i(e,t,n,r){this.localName=t,this.namespaceURI=e,this.attributes=n,this.node=r}function s(e,t){for(var n=0;n<e.attributes.length;n++)if(e.attributes[n].nodeName==t)return e.attributes[n].nodeValue;return null}var r={\"http://www.w3.org/1999/xhtml\":[\"address\",\"applet\",\"area\",\"article\",\"aside\",\"base\",\"basefont\",\"bgsound\",\"blockquote\",\"body\",\"br\",\"button\",\"caption\",\"center\",\"col\",\"colgroup\",\"dd\",\"details\",\"dir\",\"div\",\"dl\",\"dt\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"frame\",\"frameset\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"iframe\",\"img\",\"input\",\"isindex\",\"li\",\"link\",\"listing\",\"main\",\"marquee\",\"menu\",\"menuitem\",\"meta\",\"nav\",\"noembed\",\"noframes\",\"noscript\",\"object\",\"ol\",\"p\",\"param\",\"plaintext\",\"pre\",\"script\",\"section\",\"select\",\"source\",\"style\",\"summary\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"title\",\"tr\",\"track\",\"ul\",\"wbr\",\"xmp\"],\"http://www.w3.org/1998/Math/MathML\":[\"mi\",\"mo\",\"mn\",\"ms\",\"mtext\",\"annotation-xml\"],\"http://www.w3.org/2000/svg\":[\"foreignObject\",\"desc\",\"title\"]};i.prototype.isSpecial=function(){return this.namespaceURI in r&&r[this.namespaceURI].indexOf(this.localName)>-1},i.prototype.isFosterParenting=function(){return this.namespaceURI===\"http://www.w3.org/1999/xhtml\"?this.localName===\"table\"||this.localName===\"tbody\"||this.localName===\"tfoot\"||this.localName===\"thead\"||this.localName===\"tr\":!1},i.prototype.isNumberedHeader=function(){return this.namespaceURI===\"http://www.w3.org/1999/xhtml\"?this.localName===\"h1\"||this.localName===\"h2\"||this.localName===\"h3\"||this.localName===\"h4\"||this.localName===\"h5\"||this.localName===\"h6\":!1},i.prototype.isForeign=function(){return this.namespaceURI!=\"http://www.w3.org/1999/xhtml\"},i.prototype.isHtmlIntegrationPoint=function(){if(this.namespaceURI===\"http://www.w3.org/1998/Math/MathML\"){if(this.localName!==\"annotation-xml\")return!1;var e=s(this,\"encoding\");return e?(e=e.toLowerCase(),e===\"text/html\"||e===\"application/xhtml+xml\"):!1}return this.namespaceURI===\"http://www.w3.org/2000/svg\"?this.localName===\"foreignObject\"||this.localName===\"desc\"||this.localName===\"title\":!1},i.prototype.isMathMLTextIntegrationPoint=function(){return this.namespaceURI===\"http://www.w3.org/1998/Math/MathML\"?this.localName===\"mi\"||this.localName===\"mo\"||this.localName===\"mn\"||this.localName===\"ms\"||this.localName===\"mtext\":!1},n.StackItem=i},{}],5:[function(e,t,n){function s(e){return e===\" \"||e===\"\\n\"||e===\"\t\"||e===\"\\r\"||e===\"\\f\"}function o(e){return e>=\"A\"&&e<=\"Z\"||e>=\"a\"&&e<=\"z\"}function u(e){this._tokenHandler=e,this._state=u.DATA,this._inputStream=new r,this._currentToken=null,this._temporaryBuffer=\"\",this._additionalAllowedCharacter=\"\"}var r=e(\"./InputStream\").InputStream,i=e(\"./EntityParser\").EntityParser;u.prototype._parseError=function(e,t){this._tokenHandler.parseError(e,t)},u.prototype._emitToken=function(e){if(e.type===\"StartTag\")for(var t=1;t<e.data.length;t++)e.data[t].nodeName||e.data.splice(t--,1);else e.type===\"EndTag\"&&(e.selfClosing&&this._parseError(\"self-closing-flag-on-end-tag\"),e.data.length!==0&&this._parseError(\"attributes-in-end-tag\"));this._tokenHandler.processToken(e),e.type===\"StartTag\"&&e.selfClosing&&!this._tokenHandler.isSelfClosingFlagAcknowledged()&&this._parseError(\"non-void-element-with-trailing-solidus\",{name:e.name})},u.prototype._emitCurrentToken=function(){this._state=u.DATA,this._emitToken(this._currentToken)},u.prototype._currentAttribute=function(){return this._currentToken.data[this._currentToken.data.length-1]},u.prototype.setState=function(e){this._state=e},u.prototype.tokenize=function(e){function n(e){var n=e.char();if(n===r.EOF)return t._emitToken({type:\"EOF\",data:null}),!1;if(n===\"&\")t.setState(a);else if(n===\"<\")t.setState(j);else if(n===\"\\0\")t._emitToken({type:\"Characters\",data:n}),e.commit();else{var i=e.matchUntil(\"&|<|\\0\");t._emitToken({type:\"Characters\",data:n+i}),e.commit()}return!0}function a(e){var r=i.consumeEntity(e,t);return t.setState(n),t._emitToken({type:\"Characters\",data:r||\"&\"}),!0}function f(e){var n=e.char();if(n===r.EOF)return t._emitToken({type:\"EOF\",data:null}),!1;if(n===\"&\")t.setState(l);else if(n===\"<\")t.setState(d);else if(n===\"\\0\")t._parseError(\"invalid-codepoint\"),t._emitToken({type:\"Characters\",data:\"\\ufffd\"}),e.commit();else{var i=e.matchUntil(\"&|<|\\0\");t._emitToken({type:\"Characters\",data:n+i}),e.commit()}return!0}function l(e){var n=i.consumeEntity(e,t);return t.setState(f),t._emitToken({type:\"Characters\",data:n||\"&\"}),!0}function c(e){var n=e.char();if(n===r.EOF)return t._emitToken({type:\"EOF\",data:null}),!1;if(n===\"<\")t.setState(g);else if(n===\"\\0\")t._parseError(\"invalid-codepoint\"),t._emitToken({type:\"Characters\",data:\"\\ufffd\"}),e.commit();else{var i=e.matchUntil(\"<|\\0\");t._emitToken({type:\"Characters\",data:n+i})}return!0}function h(e){var n=e.char();if(n===r.EOF)return t._emitToken({type:\"EOF\",data:null}),!1;if(n===\"\\0\")t._parseError(\"invalid-codepoint\"),t._emitToken({type:\"Characters\",data:\"\\ufffd\"}),e.commit();else{var i=e.matchUntil(\"\\0\");t._emitToken({type:\"Characters\",data:n+i})}return!0}function p(e){var n=e.char();if(n===r.EOF)return t._emitToken({type:\"EOF\",data:null}),!1;if(n===\"<\")t.setState(w);else if(n===\"\\0\")t._parseError(\"invalid-codepoint\"),t._emitToken({type:\"Characters\",data:\"\\ufffd\"}),e.commit();else{var i=e.matchUntil(\"<|\\0\");t._emitToken({type:\"Characters\",data:n+i})}return!0}function d(e){var n=e.char();return n===\"/\"?(this._temporaryBuffer=\"\",t.setState(v)):(t._emitToken({type:\"Characters\",data:\"<\"}),e.unget(n),t.setState(f)),!0}function v(e){var n=e.char();return o(n)?(this._temporaryBuffer+=n,t.setState(m)):(t._emitToken({type:\"Characters\",data:\"</\"}),e.unget(n),t.setState(f)),!0}function m(e){var r=t._currentToken&&t._currentToken.name===this._temporaryBuffer.toLowerCase(),i=e.char();return s(i)&&r?(t._currentToken={type:\"EndTag\",name:this._temporaryBuffer,data:[],selfClosing:!1},t.setState(q)):i===\"/\"&&r?(t._currentToken={type:\"EndTag\",name:this._temporaryBuffer,data:[],selfClosing:!1},t.setState(K)):i===\">\"&&r?(t._currentToken={type:\"EndTag\",name:this._temporaryBuffer,data:[],selfClosing:!1},t._emitCurrentToken(),t.setState(n)):o(i)?(this._temporaryBuffer+=i,e.commit()):(t._emitToken({type:\"Characters\",data:\"</\"+this._temporaryBuffer}),e.unget(i),t.setState(f)),!0}function g(e){var n=e.char();return n===\"/\"?(this._temporaryBuffer=\"\",t.setState(y)):(t._emitToken({type:\"Characters\",data:\"<\"}),e.unget(n),t.setState(c)),!0}function y(e){var n=e.char();return o(n)?(this._temporaryBuffer+=n,t.setState(b)):(t._emitToken({type:\"Characters\",data:\"</\"}),e.unget(n),t.setState(c)),!0}function b(e){var r=t._currentToken&&t._currentToken.name===this._temporaryBuffer.toLowerCase(),i=e.char();return s(i)&&r?(t._currentToken={type:\"EndTag\",name:this._temporaryBuffer,data:[],selfClosing:!1},t.setState(q)):i===\"/\"&&r?(t._currentToken={type:\"EndTag\",name:this._temporaryBuffer,data:[],selfClosing:!1},t.setState(K)):i===\">\"&&r?(t._currentToken={type:\"EndTag\",name:this._temporaryBuffer,data:[],selfClosing:!1},t._emitCurrentToken(),t.setState(n)):o(i)?(this._temporaryBuffer+=i,e.commit()):(t._emitToken({type:\"Characters\",data:\"</\"+this._temporaryBuffer}),e.unget(i),t.setState(c)),!0}function w(e){var n=e.char();return n===\"/\"?(this._temporaryBuffer=\"\",t.setState(E)):n===\"!\"?(t._emitToken({type:\"Characters\",data:\"<!\"}),t.setState(x)):(t._emitToken({type:\"Characters\",data:\"<\"}),e.unget(n),t.setState(p)),!0}function E(e){var n=e.char();return o(n)?(this._temporaryBuffer+=n,t.setState(S)):(t._emitToken({type:\"Characters\",data:\"</\"}),e.unget(n),t.setState(p)),!0}function S(e){var n=t._currentToken&&t._currentToken.name===this._temporaryBuffer.toLowerCase(),r=e.char();return s(r)&&n?(t._currentToken={type:\"EndTag\",name:\"script\",data:[],selfClosing:!1},t.setState(q)):r===\"/\"&&n?(t._currentToken={type:\"EndTag\",name:\"script\",data:[],selfClosing:!1},t.setState(K)):r===\">\"&&n?(t._currentToken={type:\"EndTag\",name:\"script\",data:[],selfClosing:!1},t._emitCurrentToken()):o(r)?(this._temporaryBuffer+=r,e.commit()):(t._emitToken({type:\"Characters\",data:\"</\"+this._temporaryBuffer}),e.unget(r),t.setState(p)),!0}function x(e){var n=e.char();return n===\"-\"?(t._emitToken({type:\"Characters\",data:\"-\"}),t.setState(T)):(e.unget(n),t.setState(p)),!0}function T(e){var n=e.char();return n===\"-\"?(t._emitToken({type:\"Characters\",data:\"-\"}),t.setState(k)):(e.unget(n),t.setState(p)),!0}function N(e){var i=e.char();if(i===r.EOF)e.unget(i),t.setState(n);else if(i===\"-\")t._emitToken({type:\"Characters\",data:\"-\"}),t.setState(C);else if(i===\"<\")t.setState(L);else if(i===\"\\0\")t._parseError(\"invalid-codepoint\"),t._emitToken({type:\"Characters\",data:\"\\ufffd\"}),e.commit();else{var s=e.matchUntil(\"<|-|\\0\");t._emitToken({type:\"Characters\",data:i+s})}return!0}function C(e){var i=e.char();return i===r.EOF?(e.unget(i),t.setState(n)):i===\"-\"?(t._emitToken({type:\"Characters\",data:\"-\"}),t.setState(k)):i===\"<\"?t.setState(L):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._emitToken({type:\"Characters\",data:\"\\ufffd\"}),t.setState(N)):(t._emitToken({type:\"Characters\",data:i}),t.setState(N)),!0}function k(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-script\"),e.unget(i),t.setState(n)):i===\"<\"?t.setState(L):i===\">\"?(t._emitToken({type:\"Characters\",data:\">\"}),t.setState(p)):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._emitToken({type:\"Characters\",data:\"\\ufffd\"}),t.setState(N)):(t._emitToken({type:\"Characters\",data:i}),t.setState(N)),!0}function L(e){var n=e.char();return n===\"/\"?(this._temporaryBuffer=\"\",t.setState(A)):o(n)?(t._emitToken({type:\"Characters\",data:\"<\"+n}),this._temporaryBuffer=n,t.setState(M)):(t._emitToken({type:\"Characters\",data:\"<\"}),e.unget(n),t.setState(N)),!0}function A(e){var n=e.char();return o(n)?(this._temporaryBuffer=n,t.setState(O)):(t._emitToken({type:\"Characters\",data:\"</\"}),e.unget(n),t.setState(N)),!0}function O(e){var r=t._currentToken&&t._currentToken.name===this._temporaryBuffer.toLowerCase(),i=e.char();return s(i)&&r?(t._currentToken={type:\"EndTag\",name:\"script\",data:[],selfClosing:!1},t.setState(q)):i===\"/\"&&r?(t._currentToken={type:\"EndTag\",name:\"script\",data:[],selfClosing:!1},t.setState(K)):i===\">\"&&r?(t._currentToken={type:\"EndTag\",name:\"script\",data:[],selfClosing:!1},t.setState(n),t._emitCurrentToken()):o(i)?(this._temporaryBuffer+=i,e.commit()):(t._emitToken({type:\"Characters\",data:\"</\"+this._temporaryBuffer}),e.unget(i),t.setState(N)),!0}function M(e){var n=e.char();return s(n)||n===\"/\"||n===\">\"?(t._emitToken({type:\"Characters\",data:n}),this._temporaryBuffer.toLowerCase()===\"script\"?t.setState(_):t.setState(N)):o(n)?(t._emitToken({type:\"Characters\",data:n}),this._temporaryBuffer+=n,e.commit()):(e.unget(n),t.setState(N)),!0}function _(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-script\"),e.unget(i),t.setState(n)):i===\"-\"?(t._emitToken({type:\"Characters\",data:\"-\"}),t.setState(D)):i===\"<\"?(t._emitToken({type:\"Characters\",data:\"<\"}),t.setState(H)):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._emitToken({type:\"Characters\",data:\"\\ufffd\"}),e.commit()):(t._emitToken({type:\"Characters\",data:i}),e.commit()),!0}function D(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-script\"),e.unget(i),t.setState(n)):i===\"-\"?(t._emitToken({type:\"Characters\",data:\"-\"}),t.setState(P)):i===\"<\"?(t._emitToken({type:\"Characters\",data:\"<\"}),t.setState(H)):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._emitToken({type:\"Characters\",data:\"\\ufffd\"}),t.setState(_)):(t._emitToken({type:\"Characters\",data:i}),t.setState(_)),!0}function P(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-script\"),e.unget(i),t.setState(n)):i===\"-\"?(t._emitToken({type:\"Characters\",data:\"-\"}),e.commit()):i===\"<\"?(t._emitToken({type:\"Characters\",data:\"<\"}),t.setState(H)):i===\">\"?(t._emitToken({type:\"Characters\",data:\">\"}),t.setState(p)):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._emitToken({type:\"Characters\",data:\"\\ufffd\"}),t.setState(_)):(t._emitToken({type:\"Characters\",data:i}),t.setState(_)),!0}function H(e){var n=e.char();return n===\"/\"?(t._emitToken({type:\"Characters\",data:\"/\"}),this._temporaryBuffer=\"\",t.setState(B)):(e.unget(n),t.setState(_)),!0}function B(e){var n=e.char();return s(n)||n===\"/\"||n===\">\"?(t._emitToken({type:\"Characters\",data:n}),this._temporaryBuffer.toLowerCase()===\"script\"?t.setState(N):t.setState(_)):o(n)?(t._emitToken({type:\"Characters\",data:n}),this._temporaryBuffer+=n,e.commit()):(e.unget(n),t.setState(_)),!0}function j(e){var i=e.char();return i===r.EOF?(t._parseError(\"bare-less-than-sign-at-eof\"),t._emitToken({type:\"Characters\",data:\"<\"}),e.unget(i),t.setState(n)):o(i)?(t._currentToken={type:\"StartTag\",name:i.toLowerCase(),data:[]},t.setState(I)):i===\"!\"?t.setState(G):i===\"/\"?t.setState(F):i===\">\"?(t._parseError(\"expected-tag-name-but-got-right-bracket\"),t._emitToken({type:\"Characters\",data:\"<>\"}),t.setState(n)):i===\"?\"?(t._parseError(\"expected-tag-name-but-got-question-mark\"),e.unget(i),t.setState(Q)):(t._parseError(\"expected-tag-name\"),t._emitToken({type:\"Characters\",data:\"<\"}),e.unget(i),t.setState(n)),!0}function F(e){var i=e.char();return i===r.EOF?(t._parseError(\"expected-closing-tag-but-got-eof\"),t._emitToken({type:\"Characters\",data:\"</\"}),e.unget(i),t.setState(n)):o(i)?(t._currentToken={type:\"EndTag\",name:i.toLowerCase(),data:[]},t.setState(I)):i===\">\"?(t._parseError(\"expected-closing-tag-but-got-right-bracket\"),t.setState(n)):(t._parseError(\"expected-closing-tag-but-got-char\",{data:i}),e.unget(i),t.setState(Q)),!0}function I(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-tag-name\"),e.unget(i),t.setState(n)):s(i)?t.setState(q):o(i)?t._currentToken.name+=i.toLowerCase():i===\">\"?t._emitCurrentToken():i===\"/\"?t.setState(K):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._currentToken.name+=\"\\ufffd\"):t._currentToken.name+=i,e.commit(),!0}function q(e){var i=e.char();if(i===r.EOF)t._parseError(\"expected-attribute-name-but-got-eof\"),e.unget(i),t.setState(n);else{if(s(i))return!0;o(i)?(t._currentToken.data.push({nodeName:i.toLowerCase(),nodeValue:\"\"}),t.setState(R)):i===\">\"?t._emitCurrentToken():i===\"/\"?t.setState(K):i===\"'\"||i==='\"'||i===\"=\"||i===\"<\"?(t._parseError(\"invalid-character-in-attribute-name\"),t._currentToken.data.push({nodeName:i,nodeValue:\"\"}),t.setState(R)):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._currentToken.data.push({nodeName:\"\\ufffd\",nodeValue:\"\"})):(t._currentToken.data.push({nodeName:i,nodeValue:\"\"}),t.setState(R))}return!0}function R(e){var i=e.char(),u=!0,a=!1;i===r.EOF?(t._parseError(\"eof-in-attribute-name\"),e.unget(i),t.setState(n),a=!0):i===\"=\"?t.setState(z):o(i)?(t._currentAttribute().nodeName+=i.toLowerCase(),u=!1):i===\">\"?a=!0:s(i)?t.setState(U):i===\"/\"?t.setState(K):i===\"'\"||i==='\"'?(t._parseError(\"invalid-character-in-attribute-name\"),t._currentAttribute().nodeName+=i,u=!1):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._currentAttribute().nodeName+=\"\\ufffd\"):(t._currentAttribute().nodeName+=i,u=!1);if(u){var f=t._currentToken.data,l=f[f.length-1];for(var c=f.length-2;c>=0;c--)if(l.nodeName===f[c].nodeName){t._parseError(\"duplicate-attribute\",{name:l.nodeName}),l.nodeName=null;break}a&&t._emitCurrentToken()}else e.commit();return!0}function U(e){var i=e.char();if(i===r.EOF)t._parseError(\"expected-end-of-tag-but-got-eof\"),e.unget(i),t.setState(n);else{if(s(i))return!0;i===\"=\"?t.setState(z):i===\">\"?t._emitCurrentToken():o(i)?(t._currentToken.data.push({nodeName:i,nodeValue:\"\"}),t.setState(R)):i===\"/\"?t.setState(K):i===\"'\"||i==='\"'||i===\"<\"?(t._parseError(\"invalid-character-after-attribute-name\"),t._currentToken.data.push({nodeName:i,nodeValue:\"\"}),t.setState(R)):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._currentToken.data.push({nodeName:\"\\ufffd\",nodeValue:\"\"})):(t._currentToken.data.push({nodeName:i,nodeValue:\"\"}),t.setState(R))}return!0}function z(e){var i=e.char();if(i===r.EOF)t._parseError(\"expected-attribute-value-but-got-eof\"),e.unget(i),t.setState(n);else{if(s(i))return!0;i==='\"'?t.setState(W):i===\"&\"?(t.setState(V),e.unget(i)):i===\"'\"?t.setState(X):i===\">\"?(t._parseError(\"expected-attribute-value-but-got-right-bracket\"),t._emitCurrentToken()):i===\"=\"||i===\"<\"||i===\"`\"?(t._parseError(\"unexpected-character-in-unquoted-attribute-value\"),t._currentAttribute().nodeValue+=i,t.setState(V)):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._currentAttribute().nodeValue+=\"\\ufffd\"):(t._currentAttribute().nodeValue+=i,t.setState(V))}return!0}function W(e){var i=e.char();if(i===r.EOF)t._parseError(\"eof-in-attribute-value-double-quote\"),e.unget(i),t.setState(n);else if(i==='\"')t.setState(J);else if(i===\"&\")this._additionalAllowedCharacter='\"',t.setState($);else if(i===\"\\0\")t._parseError(\"invalid-codepoint\"),t._currentAttribute().nodeValue+=\"\\ufffd\";else{var s=e.matchUntil('[\\0\"&]');i+=s,t._currentAttribute().nodeValue+=i}return!0}function X(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-attribute-value-single-quote\"),e.unget(i),t.setState(n)):i===\"'\"?t.setState(J):i===\"&\"?(this._additionalAllowedCharacter=\"'\",t.setState($)):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._currentAttribute().nodeValue+=\"\\ufffd\"):t._currentAttribute().nodeValue+=i+e.matchUntil(\"\\0|['&]\"),!0}function V(e){var i=e.char();if(i===r.EOF)t._parseError(\"eof-after-attribute-value\"),e.unget(i),t.setState(n);else if(s(i))t.setState(q);else if(i===\"&\")this._additionalAllowedCharacter=\">\",t.setState($);else if(i===\">\")t._emitCurrentToken();else if(i==='\"'||i===\"'\"||i===\"=\"||i===\"`\"||i===\"<\")t._parseError(\"unexpected-character-in-unquoted-attribute-value\"),t._currentAttribute().nodeValue+=i,e.commit();else if(i===\"\\0\")t._parseError(\"invalid-codepoint\"),t._currentAttribute().nodeValue+=\"\\ufffd\";else{var o=e.matchUntil(\"\\0|[\t\\n\u000b\\f \\r&<>\\\"'=`]\");o===r.EOF&&(t._parseError(\"eof-in-attribute-value-no-quotes\"),t._emitCurrentToken()),e.commit(),t._currentAttribute().nodeValue+=i+o}return!0}function $(e){var n=i.consumeEntity(e,t,this._additionalAllowedCharacter);return this._currentAttribute().nodeValue+=n||\"&\",this._additionalAllowedCharacter==='\"'?t.setState(W):this._additionalAllowedCharacter===\"'\"?t.setState(X):this._additionalAllowedCharacter===\">\"&&t.setState(V),!0}function J(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-after-attribute-value\"),e.unget(i),t.setState(n)):s(i)?t.setState(q):i===\">\"?(t.setState(n),t._emitCurrentToken()):i===\"/\"?t.setState(K):(t._parseError(\"unexpected-character-after-attribute-value\"),e.unget(i),t.setState(q)),!0}function K(e){var i=e.char();return i===r.EOF?(t._parseError(\"unexpected-eof-after-solidus-in-tag\"),e.unget(i),t.setState(n)):i===\">\"?(t._currentToken.selfClosing=!0,t.setState(n),t._emitCurrentToken()):(t._parseError(\"unexpected-character-after-solidus-in-tag\"),e.unget(i),t.setState(q)),!0}function Q(e){var r=e.matchUntil(\">\");return r=r.replace(/\\u0000/g,\"\\ufffd\"),e.char(),t._emitToken({type:\"Comment\",data:r}),t.setState(n),!0}function G(e){var n=e.shift(2);if(n===\"--\")t._currentToken={type:\"Comment\",data:\"\"},t.setState(Z);else{var i=e.shift(5);if(i===r.EOF||n===r.EOF)return t._parseError(\"expected-dashes-or-doctype\"),t.setState(Q),e.unget(n),!0;n+=i,n.toUpperCase()===\"DOCTYPE\"?(t._currentToken={type:\"Doctype\",name:\"\",publicId:null,systemId:null,forceQuirks:!1},t.setState(st)):t._tokenHandler.isCdataSectionAllowed()&&n===\"[CDATA[\"?t.setState(Y):(t._parseError(\"expected-dashes-or-doctype\"),e.unget(n),t.setState(Q))}return!0}function Y(e){var r=e.matchUntil(\"]]>\");return e.shift(3),r&&t._emitToken({type:\"Characters\",data:r}),t.setState(n),!0}function Z(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-comment\"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i===\"-\"?t.setState(et):i===\">\"?(t._parseError(\"incorrect-comment\"),t._emitToken(t._currentToken),t.setState(n)):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._currentToken.data+=\"\\ufffd\"):(t._currentToken.data+=i,t.setState(tt)),!0}function et(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-comment\"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i===\"-\"?t.setState(rt):i===\">\"?(t._parseError(\"incorrect-comment\"),t._emitToken(t._currentToken),t.setState(n)):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._currentToken.data+=\"\\ufffd\"):(t._currentToken.data+=\"-\"+i,t.setState(tt)),!0}function tt(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-comment\"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i===\"-\"?t.setState(nt):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._currentToken.data+=\"\\ufffd\"):(t._currentToken.data+=i,e.commit()),!0}function nt(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-comment-end-dash\"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i===\"-\"?t.setState(rt):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._currentToken.data+=\"-\\ufffd\",t.setState(tt)):(t._currentToken.data+=\"-\"+i+e.matchUntil(\"\\0|-\"),e.char()),!0}function rt(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-comment-double-dash\"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i===\">\"?(t._emitToken(t._currentToken),t.setState(n)):i===\"!\"?(t._parseError(\"unexpected-bang-after-double-dash-in-comment\"),t.setState(it)):i===\"-\"?(t._parseError(\"unexpected-dash-after-double-dash-in-comment\"),t._currentToken.data+=i):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._currentToken.data+=\"--\\ufffd\",t.setState(tt)):(t._parseError(\"unexpected-char-in-comment\"),t._currentToken.data+=\"--\"+i,t.setState(tt)),!0}function it(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-comment-end-bang-state\"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i===\">\"?(t._emitToken(t._currentToken),t.setState(n)):i===\"-\"?(t._currentToken.data+=\"--!\",t.setState(nt)):(t._currentToken.data+=\"--!\"+i,t.setState(tt)),!0}function st(e){var i=e.char();return i===r.EOF?(t._parseError(\"expected-doctype-name-but-got-eof\"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):s(i)?t.setState(ot):(t._parseError(\"need-space-after-doctype\"),e.unget(i),t.setState(ot)),!0}function ot(e){var i=e.char();return i===r.EOF?(t._parseError(\"expected-doctype-name-but-got-eof\"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):s(i)||(i===\">\"?(t._parseError(\"expected-doctype-name-but-got-right-bracket\"),t._currentToken.forceQuirks=!0,t.setState(n),t._emitCurrentToken()):(o(i)&&(i=i.toLowerCase()),t._currentToken.name=i,t.setState(ut))),!0}function ut(e){var i=e.char();return i===r.EOF?(t._currentToken.forceQuirks=!0,e.unget(i),t._parseError(\"eof-in-doctype-name\"),t.setState(n),t._emitCurrentToken()):s(i)?t.setState(at):i===\">\"?(t.setState(n),t._emitCurrentToken()):(o(i)&&(i=i.toLowerCase()),t._currentToken.name+=i,e.commit()),!0}function at(e){var i=e.char();if(i===r.EOF)t._currentToken.forceQuirks=!0,e.unget(i),t._parseError(\"eof-in-doctype\"),t.setState(n),t._emitCurrentToken();else if(!s(i))if(i===\">\")t.setState(n),t._emitCurrentToken();else{if([\"p\",\"P\"].indexOf(i)>-1){var o=[[\"u\",\"U\"],[\"b\",\"B\"],[\"l\",\"L\"],[\"i\",\"I\"],[\"c\",\"C\"]],u=o.every(function(t){return i=e.char(),t.indexOf(i)>-1});if(u)return t.setState(ft),!0}else if([\"s\",\"S\"].indexOf(i)>-1){var o=[[\"y\",\"Y\"],[\"s\",\"S\"],[\"t\",\"T\"],[\"e\",\"E\"],[\"m\",\"M\"]],u=o.every(function(t){return i=e.char(),t.indexOf(i)>-1});if(u)return t.setState(vt),!0}e.unget(i),t._currentToken.forceQuirks=!0,i===r.EOF?(t._parseError(\"eof-in-doctype\"),e.unget(i),t.setState(n),t._emitCurrentToken()):(t._parseError(\"expected-space-or-right-bracket-in-doctype\",{data:i}),t.setState(wt))}return!0}function ft(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-doctype\"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):s(i)?t.setState(lt):i===\"'\"||i==='\"'?(t._parseError(\"unexpected-char-in-doctype\"),e.unget(i),t.setState(lt)):(e.unget(i),t.setState(lt)),!0}function lt(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-doctype\"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):s(i)||(i==='\"'?(t._currentToken.publicId=\"\",t.setState(ct)):i===\"'\"?(t._currentToken.publicId=\"\",t.setState(ht)):i===\">\"?(t._parseError(\"unexpected-end-of-doctype\"),t._currentToken.forceQuirks=!0,t.setState(n),t._emitCurrentToken()):(t._parseError(\"unexpected-char-in-doctype\"),t._currentToken.forceQuirks=!0,t.setState(wt))),!0}function ct(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-doctype\"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):i==='\"'?t.setState(pt):i===\">\"?(t._parseError(\"unexpected-end-of-doctype\"),t._currentToken.forceQuirks=!0,t.setState(n),t._emitCurrentToken()):t._currentToken.publicId+=i,!0}function ht(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-doctype\"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):i===\"'\"?t.setState(pt):i===\">\"?(t._parseError(\"unexpected-end-of-doctype\"),t._currentToken.forceQuirks=!0,t.setState(n),t._emitCurrentToken()):t._currentToken.publicId+=i,!0}function pt(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-doctype\"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)?t.setState(dt):i===\">\"?(t.setState(n),t._emitCurrentToken()):i==='\"'?(t._parseError(\"unexpected-char-in-doctype\"),t._currentToken.systemId=\"\",t.setState(gt)):i===\"'\"?(t._parseError(\"unexpected-char-in-doctype\"),t._currentToken.systemId=\"\",t.setState(yt)):(t._parseError(\"unexpected-char-in-doctype\"),t._currentToken.forceQuirks=!0,t.setState(wt)),!0}function dt(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-doctype\"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)||(i===\">\"?(t._emitCurrentToken(),t.setState(n)):i==='\"'?(t._currentToken.systemId=\"\",t.setState(gt)):i===\"'\"?(t._currentToken.systemId=\"\",t.setState(yt)):(t._parseError(\"unexpected-char-in-doctype\"),t._currentToken.forceQuirks=!0,t.setState(wt))),!0}function vt(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-doctype\"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)?t.setState(mt):i===\"'\"||i==='\"'?(t._parseError(\"unexpected-char-in-doctype\"),e.unget(i),t.setState(mt)):(e.unget(i),t.setState(mt)),!0}function mt(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-doctype\"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)||(i==='\"'?(t._currentToken.systemId=\"\",t.setState(gt)):i===\"'\"?(t._currentToken.systemId=\"\",t.setState(yt)):i===\">\"?(t._parseError(\"unexpected-end-of-doctype\"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),t.setState(n)):(t._parseError(\"unexpected-char-in-doctype\"),t._currentToken.forceQuirks=!0,t.setState(wt))),!0}function gt(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-doctype\"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):i==='\"'?t.setState(bt):i===\">\"?(t._parseError(\"unexpected-end-of-doctype\"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),t.setState(n)):t._currentToken.systemId+=i,!0}function yt(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-doctype\"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):i===\"'\"?t.setState(bt):i===\">\"?(t._parseError(\"unexpected-end-of-doctype\"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),t.setState(n)):t._currentToken.systemId+=i,!0}function bt(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-doctype\"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)||(i===\">\"?(t._emitCurrentToken(),t.setState(n)):(t._parseError(\"unexpected-char-in-doctype\"),t.setState(wt))),!0}function wt(e){var i=e.char();return i===r.EOF?(e.unget(i),t._emitCurrentToken(),t.setState(n)):i===\">\"&&(t._emitCurrentToken(),t.setState(n)),!0}u.DATA=n,u.RCDATA=f,u.RAWTEXT=c,u.SCRIPT_DATA=p,u.PLAINTEXT=h,this._state=u.DATA,this._inputStream.append(e),this._tokenHandler.startTokenization(this),this._inputStream.eof=!0;var t=this;while(this._state.call(this,this._inputStream));},Object.defineProperty(u.prototype,\"lineNumber\",{get:function(){return this._inputStream.location().line}}),Object.defineProperty(u.prototype,\"columnNumber\",{get:function(){return this._inputStream.location().column}}),n.Tokenizer=u},{\"./EntityParser\":2,\"./InputStream\":3}],6:[function(e,t,n){function c(e){return e===\" \"||e===\"\\n\"||e===\"\t\"||e===\"\\r\"||e===\"\\f\"}function h(e){return c(e)||e===\"\\ufffd\"}function p(e){for(var t=0;t<e.length;t++){var n=e[t];if(!c(n))return!1}return!0}function d(e){for(var t=0;t<e.length;t++){var n=e[t];if(!h(n))return!1}return!0}function v(e,t){for(var n=0;n<e.attributes.length;n++){var r=e.attributes[n];if(r.nodeName===t)return r}return null}function m(e){this.characters=e,this.current=0,this.end=this.characters.length}function g(){this.tokenizer=null,this.errorHandler=null,this.scriptingEnabled=!1,this.document=null,this.head=null,this.form=null,this.openElements=new a,this.activeFormattingElements=[],this.insertionMode=null,this.insertionModeName=\"\",this.originalInsertionMode=\"\",this.inQuirksMode=!1,this.compatMode=\"no quirks\",this.framesetOk=!0,this.redirectAttachToFosterParent=!1,this.selfClosingFlagAcknowledged=!1,this.context=\"\",this.pendingTableCharacters=[],this.shouldSkipLeadingNewline=!1;var e=this,t=this.insertionModes={};t.base={end_tag_handlers:{\"-default\":\"endTagOther\"},start_tag_handlers:{\"-default\":\"startTagOther\"},processEOF:function(){e.generateImpliedEndTags(),e.openElements.length>2?e.parseError(\"expected-closing-tag-but-got-eof\"):e.openElements.length==2&&e.openElements.item(1).localName!=\"body\"?e.parseError(\"expected-closing-tag-but-got-eof\"):e.context&&e.openElements.length>1},processComment:function(t){e.insertComment(t,e.currentStackItem().node)},processDoctype:function(t,n,r,i){e.parseError(\"unexpected-doctype\")},processStartTag:function(e,t,n){if(this[this.start_tag_handlers[e]])this[this.start_tag_handlers[e]](e,t,n);else{if(!this[this.start_tag_handlers[\"-default\"]])throw new Error(\"No handler found for \"+e);this[this.start_tag_handlers[\"-default\"]](e,t,n)}},processEndTag:function(e){if(this[this.end_tag_handlers[e]])this[this.end_tag_handlers[e]](e);else{if(!this[this.end_tag_handlers[\"-default\"]])throw new Error(\"No handler found for \"+e);this[this.end_tag_handlers[\"-default\"]](e)}},startTagHtml:function(e,n){t.inBody.startTagHtml(e,n)}},t.initial=Object.create(t.base),t.initial.processEOF=function(){e.parseError(\"expected-doctype-but-got-eof\"),this.anythingElse(),e.insertionMode.processEOF()},t.initial.processComment=function(t){e.insertComment(t,e.document)},t.initial.processDoctype=function(t,n,r,i){function s(e){return n.toLowerCase().indexOf(e)===0}e.insertDoctype(t||\"\",n||\"\",r||\"\"),i||t!=\"html\"||n!=null&&([\"+//silmaril//dtd html pro v0r11 19970101//\",\"-//advasoft ltd//dtd html 3.0 aswedit + extensions//\",\"-//as//dtd html 3.0 aswedit + extensions//\",\"-//ietf//dtd html 2.0 level 1//\",\"-//ietf//dtd html 2.0 level 2//\",\"-//ietf//dtd html 2.0 strict level 1//\",\"-//ietf//dtd html 2.0 strict level 2//\",\"-//ietf//dtd html 2.0 strict//\",\"-//ietf//dtd html 2.0//\",\"-//ietf//dtd html 2.1e//\",\"-//ietf//dtd html 3.0//\",\"-//ietf//dtd html 3.0//\",\"-//ietf//dtd html 3.2 final//\",\"-//ietf//dtd html 3.2//\",\"-//ietf//dtd html 3//\",\"-//ietf//dtd html level 0//\",\"-//ietf//dtd html level 0//\",\"-//ietf//dtd html level 1//\",\"-//ietf//dtd html level 1//\",\"-//ietf//dtd html level 2//\",\"-//ietf//dtd html level 2//\",\"-//ietf//dtd html level 3//\",\"-//ietf//dtd html level 3//\",\"-//ietf//dtd html strict level 0//\",\"-//ietf//dtd html strict level 0//\",\"-//ietf//dtd html strict level 1//\",\"-//ietf//dtd html strict level 1//\",\"-//ietf//dtd html strict level 2//\",\"-//ietf//dtd html strict level 2//\",\"-//ietf//dtd html strict level 3//\",\"-//ietf//dtd html strict level 3//\",\"-//ietf//dtd html strict//\",\"-//ietf//dtd html strict//\",\"-//ietf//dtd html strict//\",\"-//ietf//dtd html//\",\"-//ietf//dtd html//\",\"-//ietf//dtd html//\",\"-//metrius//dtd metrius presentational//\",\"-//microsoft//dtd internet explorer 2.0 html strict//\",\"-//microsoft//dtd internet explorer 2.0 html//\",\"-//microsoft//dtd internet explorer 2.0 tables//\",\"-//microsoft//dtd internet explorer 3.0 html strict//\",\"-//microsoft//dtd internet explorer 3.0 html//\",\"-//microsoft//dtd internet explorer 3.0 tables//\",\"-//netscape comm. corp.//dtd html//\",\"-//netscape comm. corp.//dtd strict html//\",\"-//o'reilly and associates//dtd html 2.0//\",\"-//o'reilly and associates//dtd html extended 1.0//\",\"-//spyglass//dtd html 2.0 extended//\",\"-//sq//dtd html 2.0 hotmetal + extensions//\",\"-//sun microsystems corp.//dtd hotjava html//\",\"-//sun microsystems corp.//dtd hotjava strict html//\",\"-//w3c//dtd html 3 1995-03-24//\",\"-//w3c//dtd html 3.2 draft//\",\"-//w3c//dtd html 3.2 final//\",\"-//w3c//dtd html 3.2//\",\"-//w3c//dtd html 3.2s draft//\",\"-//w3c//dtd html 4.0 frameset//\",\"-//w3c//dtd html 4.0 transitional//\",\"-//w3c//dtd html experimental 19960712//\",\"-//w3c//dtd html experimental 970421//\",\"-//w3c//dtd w3 html//\",\"-//w3o//dtd w3 html 3.0//\",\"-//webtechs//dtd mozilla html 2.0//\",\"-//webtechs//dtd mozilla html//\",\"html\"].some(s)||[\"-//w3o//dtd w3 html strict 3.0//en//\",\"-/w3c/dtd html 4.0 transitional/en\",\"html\"].indexOf(n.toLowerCase())>-1||r==null&&[\"-//w3c//dtd html 4.01 transitional//\",\"-//w3c//dtd html 4.01 frameset//\"].some(s))||r!=null&&r.toLowerCase()==\"http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd\"?(e.compatMode=\"quirks\",e.parseError(\"quirky-doctype\")):n!=null&&([\"-//w3c//dtd xhtml 1.0 transitional//\",\"-//w3c//dtd xhtml 1.0 frameset//\"].some(s)||r!=null&&[\"-//w3c//dtd html 4.01 transitional//\",\"-//w3c//dtd html 4.01 frameset//\"].indexOf(n.toLowerCase())>-1)?(e.compatMode=\"limited quirks\",e.parseError(\"almost-standards-doctype\")):n==\"-//W3C//DTD HTML 4.0//EN\"&&(r==null||r==\"http://www.w3.org/TR/REC-html40/strict.dtd\")||n==\"-//W3C//DTD HTML 4.01//EN\"&&(r==null||r==\"http://www.w3.org/TR/html4/strict.dtd\")||n==\"-//W3C//DTD XHTML 1.0 Strict//EN\"&&r==\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"||n==\"-//W3C//DTD XHTML 1.1//EN\"&&r==\"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\"||(r!=null&&r!=\"about:legacy-compat\"||n!=null)&&e.parseError(\"unknown-doctype\"),e.setInsertionMode(\"beforeHTML\")},t.initial.processCharacters=function(t){t.skipLeadingWhitespace();if(!t.length)return;e.parseError(\"expected-doctype-but-got-chars\"),this.anythingElse(),e.insertionMode.processCharacters(t)},t.initial.processStartTag=function(t,n,r){e.parseError(\"expected-doctype-but-got-start-tag\",{name:t}),this.anythingElse(),e.insertionMode.processStartTag(t,n,r)},t.initial.processEndTag=function(t){e.parseError(\"expected-doctype-but-got-end-tag\",{name:t}),this.anythingElse(),e.insertionMode.processEndTag(t)},t.initial.anythingElse=function(){e.compatMode=\"quirks\",e.setInsertionMode(\"beforeHTML\")},t.beforeHTML=Object.create(t.base),t.beforeHTML.start_tag_handlers={html:\"startTagHtml\",\"-default\":\"startTagOther\"},t.beforeHTML.processEOF=function(){this.anythingElse(),e.insertionMode.processEOF()},t.beforeHTML.processComment=function(t){e.insertComment(t,e.document)},t.beforeHTML.processCharacters=function(t){t.skipLeadingWhitespace();if(!t.length)return;this.anythingElse(),e.insertionMode.processCharacters(t)},t.beforeHTML.startTagHtml=function(t,n,r){e.insertHtmlElement(n),e.setInsertionMode(\"beforeHead\")},t.beforeHTML.startTagOther=function(t,n,r){this.anythingElse(),e.insertionMode.processStartTag(t,n,r)},t.beforeHTML.processEndTag=function(t){this.anythingElse(),e.insertionMode.processEndTag(t)},t.beforeHTML.anythingElse=function(){e.insertHtmlElement(),e.setInsertionMode(\"beforeHead\")},t.afterAfterBody=Object.create(t.base),t.afterAfterBody.start_tag_handlers={html:\"startTagHtml\",\"-default\":\"startTagOther\"},t.afterAfterBody.processComment=function(t){e.insertComment(t,e.document)},t.afterAfterBody.processDoctype=function(e){t.inBody.processDoctype(e)},t.afterAfterBody.startTagHtml=function(e,n){t.inBody.startTagHtml(e,n)},t.afterAfterBody.startTagOther=function(t,n,r){e.parseError(\"unexpected-start-tag\",{name:t}),e.setInsertionMode(\"inBody\"),e.insertionMode.processStartTag(t,n,r)},t.afterAfterBody.endTagOther=function(t){e.parseError(\"unexpected-end-tag\",{name:t}),e.setInsertionMode(\"inBody\"),e.insertionMode.processEndTag(t)},t.afterAfterBody.processCharacters=function(n){if(!p(n.characters))return e.parseError(\"unexpected-char-after-body\"),e.setInsertionMode(\"inBody\"),e.insertionMode.processCharacters(n);t.inBody.processCharacters(n)},t.afterBody=Object.create(t.base),t.afterBody.end_tag_handlers={html:\"endTagHtml\",\"-default\":\"endTagOther\"},t.afterBody.processComment=function(t){e.insertComment(t,e.openElements.rootNode)},t.afterBody.processCharacters=function(n){if(!p(n.characters))return e.parseError(\"unexpected-char-after-body\"),e.setInsertionMode(\"inBody\"),e.insertionMode.processCharacters(n);t.inBody.processCharacters(n)},t.afterBody.processStartTag=function(t,n,r){e.parseError(\"unexpected-start-tag-after-body\",{name:t}),e.setInsertionMode(\"inBody\"),e.insertionMode.processStartTag(t,n,r)},t.afterBody.endTagHtml=function(t){e.context?e.parseError(\"end-html-in-innerhtml\"):e.setInsertionMode(\"afterAfterBody\")},t.afterBody.endTagOther=function(t){e.parseError(\"unexpected-end-tag-after-body\",{name:t}),e.setInsertionMode(\"inBody\"),e.insertionMode.processEndTag(t)},t.afterFrameset=Object.create(t.base),t.afterFrameset.start_tag_handlers={html:\"startTagHtml\",noframes:\"startTagNoframes\",\"-default\":\"startTagOther\"},t.afterFrameset.end_tag_handlers={html:\"endTagHtml\",\"-default\":\"endTagOther\"},t.afterFrameset.processCharacters=function(t){var n=t.takeRemaining(),r=\"\";for(var i=0;i<n.length;i++){var s=n[i];c(s)&&(r+=s)}r&&e.insertText(r),r.length<n.length&&e.parseError(\"expected-eof-but-got-char\")},t.afterFrameset.startTagNoframes=function(e,n){t.inHead.processStartTag(e,n)},t.afterFrameset.startTagOther=function(t,n){e.parseError(\"unexpected-start-tag-after-frameset\",{name:t})},t.afterFrameset.endTagHtml=function(t){e.setInsertionMode(\"afterAfterFrameset\")},t.afterFrameset.endTagOther=function(t){e.parseError(\"unexpected-end-tag-after-frameset\",{name:t})},t.beforeHead=Object.create(t.base),t.beforeHead.start_tag_handlers={html:\"startTagHtml\",head:\"startTagHead\",\"-default\":\"startTagOther\"},t.beforeHead.end_tag_handlers={html:\"endTagImplyHead\",head:\"endTagImplyHead\",body:\"endTagImplyHead\",br:\"endTagImplyHead\",\"-default\":\"endTagOther\"},t.beforeHead.processEOF=function(){this.startTagHead(\"head\",[]),e.insertionMode.processEOF()},t.beforeHead.processCharacters=function(t){t.skipLeadingWhitespace();if(!t.length)return;this.startTagHead(\"head\",[]),e.insertionMode.processCharacters(t)},t.beforeHead.startTagHead=function(t,n){e.insertHeadElement(n),e.setInsertionMode(\"inHead\")},t.beforeHead.startTagOther=function(t,n,r){this.startTagHead(\"head\",[]),e.insertionMode.processStartTag(t,n,r)},t.beforeHead.endTagImplyHead=function(t){this.startTagHead(\"head\",[]),e.insertionMode.processEndTag(t)},t.beforeHead.endTagOther=function(t){e.parseError(\"end-tag-after-implied-root\",{name:t})},t.inHead=Object.create(t.base),t.inHead.start_tag_handlers={html:\"startTagHtml\",head:\"startTagHead\",title:\"startTagTitle\",script:\"startTagScript\",style:\"startTagNoFramesStyle\",noscript:\"startTagNoScript\",noframes:\"startTagNoFramesStyle\",base:\"startTagBaseBasefontBgsoundLink\",basefont:\"startTagBaseBasefontBgsoundLink\",bgsound:\"startTagBaseBasefontBgsoundLink\",link:\"startTagBaseBasefontBgsoundLink\",meta:\"startTagMeta\",\"-default\":\"startTagOther\"},t.inHead.end_tag_handlers={head:\"endTagHead\",html:\"endTagHtmlBodyBr\",body:\"endTagHtmlBodyBr\",br:\"endTagHtmlBodyBr\",\"-default\":\"endTagOther\"},t.inHead.processEOF=function(){var t=e.currentStackItem().localName;[\"title\",\"style\",\"script\"].indexOf(t)!=-1&&(e.parseError(\"expected-named-closing-tag-but-got-eof\",{name:t}),e.popElement()),this.anythingElse(),e.insertionMode.processEOF()},t.inHead.processCharacters=function(t){var n=t.takeLeadingWhitespace();n&&e.insertText(n);if(!t.length)return;this.anythingElse(),e.insertionMode.processCharacters(t)},t.inHead.startTagHtml=function(e,n){t.inBody.processStartTag(e,n)},t.inHead.startTagHead=function(t,n){e.parseError(\"two-heads-are-not-better-than-one\")},t.inHead.startTagTitle=function(t,n){e.processGenericRCDATAStartTag(t,n)},t.inHead.startTagNoScript=function(t,n){if(e.scriptingEnabled)return e.processGenericRawTextStartTag(t,n);e.insertElement(t,n),e.setInsertionMode(\"inHeadNoscript\")},t.inHead.startTagNoFramesStyle=function(t,n){e.processGenericRawTextStartTag(t,n)},t.inHead.startTagScript=function(t,n){e.insertElement(t,n),e.tokenizer.setState(u.SCRIPT_DATA),e.originalInsertionMode=e.insertionModeName,e.setInsertionMode(\"text\")},t.inHead.startTagBaseBasefontBgsoundLink=function(t,n){e.insertSelfClosingElement(t,n)},t.inHead.startTagMeta=function(t,n){e.insertSelfClosingElement(t,n)},t.inHead.startTagOther=function(t,n,r){this.anythingElse(),e.insertionMode.processStartTag(t,n,r)},t.inHead.endTagHead=function(t){e.openElements.item(e.openElements.length-1).localName==\"head\"?e.openElements.pop():e.parseError(\"unexpected-end-tag\",{name:\"head\"}),e.setInsertionMode(\"afterHead\")},t.inHead.endTagHtmlBodyBr=function(t){this.anythingElse(),e.insertionMode.processEndTag(t)},t.inHead.endTagOther=function(t){e.parseError(\"unexpected-end-tag\",{name:t})},t.inHead.anythingElse=function(){this.endTagHead(\"head\")},t.afterHead=Object.create(t.base),t.afterHead.start_tag_handlers={html:\"startTagHtml\",head:\"startTagHead\",body:\"startTagBody\",frameset:\"startTagFrameset\",base:\"startTagFromHead\",link:\"startTagFromHead\",meta:\"startTagFromHead\",script:\"startTagFromHead\",style:\"startTagFromHead\",title:\"startTagFromHead\",\"-default\":\"startTagOther\"},t.afterHead.end_tag_handlers={body:\"endTagBodyHtmlBr\",html:\"endTagBodyHtmlBr\",br:\"endTagBodyHtmlBr\",\"-default\":\"endTagOther\"},t.afterHead.processEOF=function(){this.anythingElse(),e.insertionMode.processEOF()},t.afterHead.processCharacters=function(t){var n=t.takeLeadingWhitespace();n&&e.insertText(n);if(!t.length)return;this.anythingElse(),e.insertionMode.processCharacters(t)},t.afterHead.startTagHtml=function(e,n){t.inBody.processStartTag(e,n)},t.afterHead.startTagBody=function(t,n){e.framesetOk=!1,e.insertBodyElement(n),e.setInsertionMode(\"inBody\")},t.afterHead.startTagFrameset=function(t,n){e.insertElement(t,n),e.setInsertionMode(\"inFrameset\")},t.afterHead.startTagFromHead=function(n,r,i){e.parseError(\"unexpected-start-tag-out-of-my-head\",{name:n}),e.openElements.push(e.head),t.inHead.processStartTag(n,r,i),e.openElements.remove(e.head)},t.afterHead.startTagHead=function(t,n,r){e.parseError(\"unexpected-start-tag\",{name:t})},t.afterHead.startTagOther=function(t,n,r){this.anythingElse(),e.insertionMode.processStartTag(t,n,r)},t.afterHead.endTagBodyHtmlBr=function(t){this.anythingElse(),e.insertionMode.processEndTag(t)},t.afterHead.endTagOther=function(t){e.parseError(\"unexpected-end-tag\",{name:t})},t.afterHead.anythingElse=function(){e.insertBodyElement([]),e.setInsertionMode(\"inBody\"),e.framesetOk=!0},t.inBody=Object.create(t.base),t.inBody.start_tag_handlers={html:\"startTagHtml\",head:\"startTagMisplaced\",base:\"startTagProcessInHead\",basefont:\"startTagProcessInHead\",bgsound:\"startTagProcessInHead\",link:\"startTagProcessInHead\",meta:\"startTagProcessInHead\",noframes:\"startTagProcessInHead\",script:\"startTagProcessInHead\",style:\"startTagProcessInHead\",title:\"startTagProcessInHead\",body:\"startTagBody\",form:\"startTagForm\",plaintext:\"startTagPlaintext\",a:\"startTagA\",button:\"startTagButton\",xmp:\"startTagXmp\",table:\"startTagTable\",hr:\"startTagHr\",image:\"startTagImage\",input:\"startTagInput\",textarea:\"startTagTextarea\",select:\"startTagSelect\",isindex:\"startTagIsindex\",applet:\"startTagAppletMarqueeObject\",marquee:\"startTagAppletMarqueeObject\",object:\"startTagAppletMarqueeObject\",li:\"startTagListItem\",dd:\"startTagListItem\",dt:\"startTagListItem\",address:\"startTagCloseP\",article:\"startTagCloseP\",aside:\"startTagCloseP\",blockquote:\"startTagCloseP\",center:\"startTagCloseP\",details:\"startTagCloseP\",dir:\"startTagCloseP\",div:\"startTagCloseP\",dl:\"startTagCloseP\",fieldset:\"startTagCloseP\",figcaption:\"startTagCloseP\",figure:\"startTagCloseP\",footer:\"startTagCloseP\",header:\"startTagCloseP\",hgroup:\"startTagCloseP\",main:\"startTagCloseP\",menu:\"startTagCloseP\",nav:\"startTagCloseP\",ol:\"startTagCloseP\",p:\"startTagCloseP\",section:\"startTagCloseP\",summary:\"startTagCloseP\",ul:\"startTagCloseP\",listing:\"startTagPreListing\",pre:\"startTagPreListing\",b:\"startTagFormatting\",big:\"startTagFormatting\",code:\"startTagFormatting\",em:\"startTagFormatting\",font:\"startTagFormatting\",i:\"startTagFormatting\",s:\"startTagFormatting\",small:\"startTagFormatting\",strike:\"startTagFormatting\",strong:\"startTagFormatting\",tt:\"startTagFormatting\",u:\"startTagFormatting\",nobr:\"startTagNobr\",area:\"startTagVoidFormatting\",br:\"startTagVoidFormatting\",embed:\"startTagVoidFormatting\",img:\"startTagVoidFormatting\",keygen:\"startTagVoidFormatting\",wbr:\"startTagVoidFormatting\",param:\"startTagParamSourceTrack\",source:\"startTagParamSourceTrack\",track:\"startTagParamSourceTrack\",iframe:\"startTagIFrame\",noembed:\"startTagRawText\",noscript:\"startTagRawText\",h1:\"startTagHeading\",h2:\"startTagHeading\",h3:\"startTagHeading\",h4:\"startTagHeading\",h5:\"startTagHeading\",h6:\"startTagHeading\",caption:\"startTagMisplaced\",col:\"startTagMisplaced\",colgroup:\"startTagMisplaced\",frame:\"startTagMisplaced\",frameset:\"startTagFrameset\",tbody:\"startTagMisplaced\",td:\"startTagMisplaced\",tfoot:\"startTagMisplaced\",th:\"startTagMisplaced\",thead:\"startTagMisplaced\",tr:\"startTagMisplaced\",option:\"startTagOptionOptgroup\",optgroup:\"startTagOptionOptgroup\",math:\"startTagMath\",svg:\"startTagSVG\",rt:\"startTagRpRt\",rp:\"startTagRpRt\",\"-default\":\"startTagOther\"},t.inBody.end_tag_handlers={p:\"endTagP\",body:\"endTagBody\",html:\"endTagHtml\",address:\"endTagBlock\",article:\"endTagBlock\",aside:\"endTagBlock\",blockquote:\"endTagBlock\",button:\"endTagBlock\",center:\"endTagBlock\",details:\"endTagBlock\",dir:\"endTagBlock\",div:\"endTagBlock\",dl:\"endTagBlock\",fieldset:\"endTagBlock\",figcaption:\"endTagBlock\",figure:\"endTagBlock\",footer:\"endTagBlock\",header:\"endTagBlock\",hgroup:\"endTagBlock\",listing:\"endTagBlock\",main:\"endTagBlock\",menu:\"endTagBlock\",nav:\"endTagBlock\",ol:\"endTagBlock\",pre:\"endTagBlock\",section:\"endTagBlock\",summary:\"endTagBlock\",ul:\"endTagBlock\",form:\"endTagForm\",applet:\"endTagAppletMarqueeObject\",marquee:\"endTagAppletMarqueeObject\",object:\"endTagAppletMarqueeObject\",dd:\"endTagListItem\",dt:\"endTagListItem\",li:\"endTagListItem\",h1:\"endTagHeading\",h2:\"endTagHeading\",h3:\"endTagHeading\",h4:\"endTagHeading\",h5:\"endTagHeading\",h6:\"endTagHeading\",a:\"endTagFormatting\",b:\"endTagFormatting\",big:\"endTagFormatting\",code:\"endTagFormatting\",em:\"endTagFormatting\",font:\"endTagFormatting\",i:\"endTagFormatting\",nobr:\"endTagFormatting\",s:\"endTagFormatting\",small:\"endTagFormatting\",strike:\"endTagFormatting\",strong:\"endTagFormatting\",tt:\"endTagFormatting\",u:\"endTagFormatting\",br:\"endTagBr\",\"-default\":\"endTagOther\"},t.inBody.processCharacters=function(t){e.shouldSkipLeadingNewline&&(e.shouldSkipLeadingNewline=!1,t.skipAtMostOneLeadingNewline()),e.reconstructActiveFormattingElements();var n=t.takeRemaining();n=n.replace(/\\u0000/g,function(t,n){return e.parseError(\"invalid-codepoint\"),\"\"});if(!n)return;e.insertText(n),e.framesetOk&&!d(n)&&(e.framesetOk=!1)},t.inBody.startTagHtml=function(t,n){e.parseError(\"non-html-root\"),e.addAttributesToElement(e.openElements.rootNode,n)},t.inBody.startTagProcessInHead=function(e,n){t.inHead.processStartTag(e,n)},t.inBody.startTagBody=function(t,n){e.parseError(\"unexpected-start-tag\",{name:\"body\"}),e.openElements.length==1||e.openElements.item(1).localName!=\"body\"?r.ok(e.context):(e.framesetOk=!1,e.addAttributesToElement(e.openElements.bodyElement,n))},t.inBody.startTagFrameset=function(t,n){e.parseError(\"unexpected-start-tag\",{name:\"frameset\"});if(e.openElements.length==1||e.openElements.item(1).localName!=\"body\")r.ok(e.context);else if(e.framesetOk){e.detachFromParent(e.openElements.bodyElement);while(e.openElements.length>1)e.openElements.pop();e.insertElement(t,n),e.setInsertionMode(\"inFrameset\")}},t.inBody.startTagCloseP=function(t,n){e.openElements.inButtonScope(\"p\")&&this.endTagP(\"p\"),e.insertElement(t,n)},t.inBody.startTagPreListing=function(t,n){e.openElements.inButtonScope(\"p\")&&this.endTagP(\"p\"),e.insertElement(t,n),e.framesetOk=!1,e.shouldSkipLeadingNewline=!0},t.inBody.startTagForm=function(t,n){e.form?e.parseError(\"unexpected-start-tag\",{name:t}):(e.openElements.inButtonScope(\"p\")&&this.endTagP(\"p\"),e.insertElement(t,n),e.form=e.currentStackItem())},t.inBody.startTagRpRt=function(t,n){e.openElements.inScope(\"ruby\")&&(e.generateImpliedEndTags(),e.currentStackItem().localName!=\"ruby\"&&e.parseError(\"unexpected-start-tag\",{name:t})),e.insertElement(t,n)},t.inBody.startTagListItem=function(t,n){var r={li:[\"li\"],dd:[\"dd\",\"dt\"],dt:[\"dd\",\"dt\"]},i=r[t],s=e.openElements;for(var o=s.length-1;o>=0;o--){var u=s.item(o);if(i.indexOf(u.localName)!=-1){e.insertionMode.processEndTag(u.localName);break}if(u.isSpecial()&&u.localName!==\"p\"&&u.localName!==\"address\"&&u.localName!==\"div\")break}e.openElements.inButtonScope(\"p\")&&this.endTagP(\"p\"),e.insertElement(t,n),e.framesetOk=!1},t.inBody.startTagPlaintext=function(t,n){e.openElements.inButtonScope(\"p\")&&this.endTagP(\"p\"),e.insertElement(t,n),e.tokenizer.setState(u.PLAINTEXT)},t.inBody.startTagHeading=function(t,n){e.openElements.inButtonScope(\"p\")&&this.endTagP(\"p\"),e.currentStackItem().isNumberedHeader()&&(e.parseError(\"unexpected-start-tag\",{name:t}),e.popElement()),e.insertElement(t,n)},t.inBody.startTagA=function(t,n){var r=e.elementInActiveFormattingElements(\"a\");r&&(e.parseError(\"unexpected-start-tag-implies-end-tag\",{startName:\"a\",endName:\"a\"}),e.adoptionAgencyEndTag(\"a\"),e.openElements.contains(r)&&e.openElements.remove(r),e.removeElementFromActiveFormattingElements(r)),e.reconstructActiveFormattingElements(),e.insertFormattingElement(t,n)},t.inBody.startTagFormatting=function(t,n){e.reconstructActiveFormattingElements(),e.insertFormattingElement(t,n)},t.inBody.startTagNobr=function(t,n){e.reconstructActiveFormattingElements(),e.openElements.inScope(\"nobr\")&&(e.parseError(\"unexpected-start-tag-implies-end-tag\",{startName:\"nobr\",endName:\"nobr\"}),this.processEndTag(\"nobr\"),e.reconstructActiveFormattingElements()),e.insertFormattingElement(t,n)},t.inBody.startTagButton=function(t,n){e.openElements.inScope(\"button\")?(e.parseError(\"unexpected-start-tag-implies-end-tag\",{startName:\"button\",endName:\"button\"}),this.processEndTag(\"button\"),e.insertionMode.processStartTag(t,n)):(e.framesetOk=!1,e.reconstructActiveFormattingElements(),e.insertElement(t,n))},t.inBody.startTagAppletMarqueeObject=function(t,n){e.reconstructActiveFormattingElements(),e.insertElement(t,n),e.activeFormattingElements.push(l),e.framesetOk=!1},t.inBody.endTagAppletMarqueeObject=function(t){e.openElements.inScope(t)?(e.generateImpliedEndTags(),e.currentStackItem().localName!=t&&e.parseError(\"end-tag-too-early\",{name:t}),e.openElements.popUntilPopped(t),e.clearActiveFormattingElements()):e.parseError(\"unexpected-end-tag\",{name:t})},t.inBody.startTagXmp=function(t,n){e.openElements.inButtonScope(\"p\")&&this.processEndTag(\"p\"),e.reconstructActiveFormattingElements(),e.processGenericRawTextStartTag(t,n),e.framesetOk=!1},t.inBody.startTagTable=function(t,n){e.compatMode!==\"quirks\"&&e.openElements.inButtonScope(\"p\")&&this.processEndTag(\"p\"),e.insertElement(t,n),e.setInsertionMode(\"inTable\"),e.framesetOk=!1},t.inBody.startTagVoidFormatting=function(t,n){e.reconstructActiveFormattingElements(),e.insertSelfClosingElement(t,n),e.framesetOk=!1},t.inBody.startTagParamSourceTrack=function(t,n){e.insertSelfClosingElement(t,n)},t.inBody.startTagHr=function(t,n){e.openElements.inButtonScope(\"p\")&&this.endTagP(\"p\"),e.insertSelfClosingElement(t,n),e.framesetOk=!1},t.inBody.startTagImage=function(t,n){e.parseError(\"unexpected-start-tag-treated-as\",{originalName:\"image\",newName:\"img\"}),this.processStartTag(\"img\",n)},t.inBody.startTagInput=function(t,n){var r=e.framesetOk;this.startTagVoidFormatting(t,n);for(var i in n)if(n[i].nodeName==\"type\"){n[i].nodeValue.toLowerCase()==\"hidden\"&&(e.framesetOk=r);break}},t.inBody.startTagIsindex=function(t,n){e.parseError(\"deprecated-tag\",{name:\"isindex\"}),e.selfClosingFlagAcknowledged=!0;if(e.form)return;var r=[],i=[],s=\"This is a searchable index. Enter search keywords: \";for(var o in n)switch(n[o].nodeName){case\"action\":r.push({nodeName:\"action\",nodeValue:n[o].nodeValue});break;case\"prompt\":s=n[o].nodeValue;break;case\"name\":break;default:i.push({nodeName:n[o].nodeName,nodeValue:n[o].nodeValue})}i.push({nodeName:\"name\",nodeValue:\"isindex\"}),this.processStartTag(\"form\",r),this.processStartTag(\"hr\"),this.processStartTag(\"label\"),this.processCharacters(new m(s)),this.processStartTag(\"input\",i),this.processEndTag(\"label\"),this.processStartTag(\"hr\"),this.processEndTag(\"form\")},t.inBody.startTagTextarea=function(t,n){e.insertElement(t,n),e.tokenizer.setState(u.RCDATA),e.originalInsertionMode=e.insertionModeName,e.shouldSkipLeadingNewline=!0,e.framesetOk=!1,e.setInsertionMode(\"text\")},t.inBody.startTagIFrame=function(t,n){e.framesetOk=!1,this.startTagRawText(t,n)},t.inBody.startTagRawText=function(t,n){e.processGenericRawTextStartTag(t,n)},t.inBody.startTagSelect=function(t,n){e.reconstructActiveFormattingElements(),e.insertElement(t,n),e.framesetOk=!1;var r=e.insertionModeName;r==\"inTable\"||r==\"inCaption\"||r==\"inColumnGroup\"||r==\"inTableBody\"||r==\"inRow\"||r==\"inCell\"?e.setInsertionMode(\"inSelectInTable\"):e.setInsertionMode(\"inSelect\")},t.inBody.startTagMisplaced=function(t,n){e.parseError(\"unexpected-start-tag-ignored\",{name:t})},t.inBody.endTagMisplaced=function(t){e.parseError(\"unexpected-end-tag\",{name:t})},t.inBody.endTagBr=function(t){e.parseError(\"unexpected-end-tag-treated-as\",{originalName:\"br\",newName:\"br element\"}),e.reconstructActiveFormattingElements(),e.insertElement(t,[]),e.popElement()},t.inBody.startTagOptionOptgroup=function(t,n){e.currentStackItem().localName==\"option\"&&e.popElement(),e.reconstructActiveFormattingElements(),e.insertElement(t,n)},t.inBody.startTagOther=function(t,n){e.reconstructActiveFormattingElements(),e.insertElement(t,n)},t.inBody.endTagOther=function(t){var n;for(var r=e.openElements.length-1;r>0;r--){n=e.openElements.item(r);if(n.localName==t){e.generateImpliedEndTags(t),e.currentStackItem().localName!=t&&e.parseError(\"unexpected-end-tag\",{name:t}),e.openElements.remove_openElements_until(function(e){return e===n});break}if(n.isSpecial()){e.parseError(\"unexpected-end-tag\",{name:t});break}}},t.inBody.startTagMath=function(t,n,r){e.reconstructActiveFormattingElements(),n=e.adjustMathMLAttributes(n),n=e.adjustForeignAttributes(n),e.insertForeignElement(t,n,\"http://www.w3.org/1998/Math/MathML\",r)},t.inBody.startTagSVG=function(t,n,r){e.reconstructActiveFormattingElements(),n=e.adjustSVGAttributes(n),n=e.adjustForeignAttributes(n),e.insertForeignElement(t,n,\"http://www.w3.org/2000/svg\",r)},t.inBody.endTagP=function(t){e.openElements.inButtonScope(\"p\")?(e.generateImpliedEndTags(\"p\"),e.currentStackItem().localName!=\"p\"&&e.parseError(\"unexpected-implied-end-tag\",{name:\"p\"}),e.openElements.popUntilPopped(t)):(e.parseError(\"unexpected-end-tag\",{name:\"p\"}),this.startTagCloseP(\"p\",[]),this.endTagP(\"p\"))},t.inBody.endTagBody=function(t){if(!e.openElements.inScope(\"body\")){e.parseError(\"unexpected-end-tag\",{name:t});return}e.currentStackItem().localName!=\"body\"&&e.parseError(\"expected-one-end-tag-but-got-another\",{expectedName:e.currentStackItem().localName,gotName:t}),e.setInsertionMode(\"afterBody\")},t.inBody.endTagHtml=function(t){if(!e.openElements.inScope(\"body\")){e.parseError(\"unexpected-end-tag\",{name:t});return}e.currentStackItem().localName!=\"body\"&&e.parseError(\"expected-one-end-tag-but-got-another\",{expectedName:e.currentStackItem().localName,gotName:t}),e.setInsertionMode(\"afterBody\"),e.insertionMode.processEndTag(t)},t.inBody.endTagBlock=function(t){e.openElements.inScope(t)?(e.generateImpliedEndTags(),e.currentStackItem().localName!=t&&e.parseError(\"end-tag-too-early\",{name:t}),e.openElements.popUntilPopped(t)):e.parseError(\"unexpected-end-tag\",{name:t})},t.inBody.endTagForm=function(t){var n=e.form;e.form=null,!n||!e.openElements.inScope(t)?e.parseError(\"unexpected-end-tag\",{name:t}):(e.generateImpliedEndTags(),e.currentStackItem()!=n&&e.parseError(\"end-tag-too-early-ignored\",{name:\"form\"}),e.openElements.remove(n))},t.inBody.endTagListItem=function(t){e.openElements.inListItemScope(t)?(e.generateImpliedEndTags(t),e.currentStackItem().localName!=t&&e.parseError(\"end-tag-too-early\",{name:t}),e.openElements.popUntilPopped(t)):e.parseError(\"unexpected-end-tag\",{name:t})},t.inBody.endTagHeading=function(t){if(!e.openElements.hasNumberedHeaderElementInScope()){e.parseError(\"unexpected-end-tag\",{name:t});return}e.generateImpliedEndTags(),e.currentStackItem().localName!=t&&e.parseError(\"end-tag-too-early\",{name:t}),e.openElements.remove_openElements_until(function(e){return e.isNumberedHeader()})},t.inBody.endTagFormatting=function(t,n){e.adoptionAgencyEndTag(t)||this.endTagOther(t,n)},t.inCaption=Object.create(t.base),t.inCaption.start_tag_handlers={html:\"startTagHtml\",caption:\"startTagTableElement\",col:\"startTagTableElement\",colgroup:\"startTagTableElement\",tbody:\"startTagTableElement\",td:\"startTagTableElement\",tfoot:\"startTagTableElement\",thead:\"startTagTableElement\",tr:\"startTagTableElement\",\"-default\":\"startTagOther\"},t.inCaption.end_tag_handlers={caption:\"endTagCaption\",table:\"endTagTable\",body:\"endTagIgnore\",col:\"endTagIgnore\",colgroup:\"endTagIgnore\",html:\"endTagIgnore\",tbody:\"endTagIgnore\",td:\"endTagIgnore\",tfood:\"endTagIgnore\",thead:\"endTagIgnore\",tr:\"endTagIgnore\",\"-default\":\"endTagOther\"},t.inCaption.processCharacters=function(e){t.inBody.processCharacters(e)},t.inCaption.startTagTableElement=function(t,n){e.parseError(\"unexpected-end-tag\",{name:t});var r=!e.openElements.inTableScope(\"caption\");e.insertionMode.processEndTag(\"caption\"),r||e.insertionMode.processStartTag(t,n)},t.inCaption.startTagOther=function(e,n,r){t.inBody.processStartTag(e,n,r)},t.inCaption.endTagCaption=function(t){e.openElements.inTableScope(\"caption\")?(e.generateImpliedEndTags(),e.currentStackItem().localName!=\"caption\"&&e.parseError(\"expected-one-end-tag-but-got-another\",{gotName:\"caption\",expectedName:e.currentStackItem().localName}),e.openElements.popUntilPopped(\"caption\"),e.clearActiveFormattingElements(),e.setInsertionMode(\"inTable\")):(r.ok(e.context),e.parseError(\"unexpected-end-tag\",{name:t}))},t.inCaption.endTagTable=function(t){e.parseError(\"unexpected-end-table-in-caption\");var n=!e.openElements.inTableScope(\"caption\");e.insertionMode.processEndTag(\"caption\"),n||e.insertionMode.processEndTag(t)},t.inCaption.endTagIgnore=function(t){e.parseError(\"unexpected-end-tag\",{name:t})},t.inCaption.endTagOther=function(e){t.inBody.processEndTag(e)},t.inCell=Object.create(t.base),t.inCell.start_tag_handlers={html:\"startTagHtml\",caption:\"startTagTableOther\",col:\"startTagTableOther\",colgroup:\"startTagTableOther\",tbody:\"startTagTableOther\",td:\"startTagTableOther\",tfoot:\"startTagTableOther\",th:\"startTagTableOther\",thead:\"startTagTableOther\",tr:\"startTagTableOther\",\"-default\":\"startTagOther\"},t.inCell.end_tag_handlers={td:\"endTagTableCell\",th:\"endTagTableCell\",body:\"endTagIgnore\",caption:\"endTagIgnore\",col:\"endTagIgnore\",colgroup:\"endTagIgnore\",html:\"endTagIgnore\",table:\"endTagImply\",tbody:\"endTagImply\",tfoot:\"endTagImply\",thead:\"endTagImply\",tr:\"endTagImply\",\"-default\":\"endTagOther\"},t.inCell.processCharacters=function(e){t.inBody.processCharacters(e)},t.inCell.startTagTableOther=function(t,n,r){e.openElements.inTableScope(\"td\")||e.openElements.inTableScope(\"th\")?(this.closeCell(),e.insertionMode.processStartTag(t,n,r)):e.parseError(\"unexpected-start-tag\",{name:t})},t.inCell.startTagOther=function(e,n,r){t.inBody.processStartTag(e,n,r)},t.inCell.endTagTableCell=function(t){e.openElements.inTableScope(t)?(e.generateImpliedEndTags(t),e.currentStackItem().localName!=t.toLowerCase()?(e.parseError(\"unexpected-cell-end-tag\",{name:t}),e.openElements.popUntilPopped(t)):e.popElement(),e.clearActiveFormattingElements(),e.setInsertionMode(\"inRow\")):e.parseError(\"unexpected-end-tag\",{name:t})},t.inCell.endTagIgnore=function(t){e.parseError(\"unexpected-end-tag\",{name:t})},t.inCell.endTagImply=function(t){e.openElements.inTableScope(t)?(this.closeCell(),e.insertionMode.processEndTag(t)):e.parseError(\"unexpected-end-tag\",{name:t})},t.inCell.endTagOther=function(e){t.inBody.processEndTag(e)},t.inCell.closeCell=function(){e.openElements.inTableScope(\"td\")?this.endTagTableCell(\"td\"):e.openElements.inTableScope(\"th\")&&this.endTagTableCell(\"th\")},t.inColumnGroup=Object.create(t.base),t.inColumnGroup.start_tag_handlers={html:\"startTagHtml\",col:\"startTagCol\",\"-default\":\"startTagOther\"},t.inColumnGroup.end_tag_handlers={colgroup:\"endTagColgroup\",col:\"endTagCol\",\"-default\":\"endTagOther\"},t.inColumnGroup.ignoreEndTagColgroup=function(){return e.currentStackItem().localName==\"html\"},t.inColumnGroup.processCharacters=function(t){var n=t.takeLeadingWhitespace();n&&e.insertText(n);if(!t.length)return;var r=this.ignoreEndTagColgroup();this.endTagColgroup(\"colgroup\"),r||e.insertionMode.processCharacters(t)},t.inColumnGroup.startTagCol=function(t,n){e.insertSelfClosingElement(t,n)},t.inColumnGroup.startTagOther=function(t,n,r){var i=this.ignoreEndTagColgroup();this.endTagColgroup(\"colgroup\"),i||e.insertionMode.processStartTag(t,n,r)},t.inColumnGroup.endTagColgroup=function(t){this.ignoreEndTagColgroup()?(r.ok(e.context),e.parseError(\"unexpected-end-tag\",{name:t})):(e.popElement(),e.setInsertionMode(\"inTable\"))},t.inColumnGroup.endTagCol=function(t){e.parseError(\"no-end-tag\",{name:\"col\"})},t.inColumnGroup.endTagOther=function(t){var n=this.ignoreEndTagColgroup();this.endTagColgroup(\"colgroup\"),n||e.insertionMode.processEndTag(t)},t.inForeignContent=Object.create(t.base),t.inForeignContent.processStartTag=function(t,n,r){if([\"b\",\"big\",\"blockquote\",\"body\",\"br\",\"center\",\"code\",\"dd\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"hr\",\"i\",\"img\",\"li\",\"listing\",\"menu\",\"meta\",\"nobr\",\"ol\",\"p\",\"pre\",\"ruby\",\"s\",\"small\",\"span\",\"strong\",\"strike\",\"sub\",\"sup\",\"table\",\"tt\",\"u\",\"ul\",\"var\"].indexOf(t)!=-1||t==\"font\"&&n.some(function(e){return[\"color\",\"face\",\"size\"].indexOf(e.nodeName)>=0})){e.parseError(\"unexpected-html-element-in-foreign-content\",{name:t});while(e.currentStackItem().isForeign()&&!e.currentStackItem().isHtmlIntegrationPoint()&&!e.currentStackItem().isMathMLTextIntegrationPoint())e.openElements.pop();e.insertionMode.processStartTag(t,n,r);return}e.currentStackItem().namespaceURI==\"http://www.w3.org/1998/Math/MathML\"&&(n=e.adjustMathMLAttributes(n)),e.currentStackItem().namespaceURI==\"http://www.w3.org/2000/svg\"&&(t=e.adjustSVGTagNameCase(t),n=e.adjustSVGAttributes(n)),n=e.adjustForeignAttributes(n),e.insertForeignElement(t,n,e.currentStackItem().namespaceURI,r)},t.inForeignContent.processEndTag=function(t){var n=e.currentStackItem(),r=e.openElements.length-1;n.localName.toLowerCase()!=t&&e.parseError(\"unexpected-end-tag\",{name:t});for(;;){if(r===0)break;if(n.localName.toLowerCase()==t){while(e.openElements.pop()!=n);break}r-=1,n=e.openElements.item(r);if(n.isForeign())continue;e.insertionMode.processEndTag(t);break}},t.inForeignContent.processCharacters=function(t){var n=t.takeRemaining();n=n.replace(/\\u0000/g,function(t,n){return e.parseError(\"invalid-codepoint\"),\"\\ufffd\"}),e.framesetOk&&!d(n)&&(e.framesetOk=!1),e.insertText(n)},t.inHeadNoscript=Object.create(t.base),t.inHeadNoscript.start_tag_handlers={html:\"startTagHtml\",basefont:\"startTagBasefontBgsoundLinkMetaNoframesStyle\",bgsound:\"startTagBasefontBgsoundLinkMetaNoframesStyle\",link:\"startTagBasefontBgsoundLinkMetaNoframesStyle\",meta:\"startTagBasefontBgsoundLinkMetaNoframesStyle\",noframes:\"startTagBasefontBgsoundLinkMetaNoframesStyle\",style:\"startTagBasefontBgsoundLinkMetaNoframesStyle\",head:\"startTagHeadNoscript\",noscript:\"startTagHeadNoscript\",\"-default\":\"startTagOther\"},t.inHeadNoscript.end_tag_handlers={noscript:\"endTagNoscript\",br:\"endTagBr\",\"-default\":\"endTagOther\"},t.inHeadNoscript.processCharacters=function(t){var n=t.takeLeadingWhitespace();n&&e.insertText(n);if(!t.length)return;e.parseError(\"unexpected-char-in-frameset\"),this.anythingElse(),e.insertionMode.processCharacters(t)},t.inHeadNoscript.processComment=function(e){t.inHead.processComment(e)},t.inHeadNoscript.startTagBasefontBgsoundLinkMetaNoframesStyle=function(e,n){t.inHead.processStartTag(e,n)},t.inHeadNoscript.startTagHeadNoscript=function(t,n){e.parseError(\"unexpected-start-tag-in-frameset\",{name:t})},t.inHeadNoscript.startTagOther=function(t,n){e.parseError(\"unexpected-start-tag-in-frameset\",{name:t}),this.anythingElse(),e.insertionMode.processStartTag(t,n)},t.inHeadNoscript.endTagBr=function(t,n){e.parseError(\"unexpected-end-tag-in-frameset\",{name:t}),this.anythingElse(),e.insertionMode.processEndTag(t,n)},t.inHeadNoscript.endTagNoscript=function(t,n){e.popElement(),e.setInsertionMode(\"inHead\")},t.inHeadNoscript.endTagOther=function(t,n){e.parseError(\"unexpected-end-tag-in-frameset\",{name:t})},t.inHeadNoscript.anythingElse=function(){e.popElement(),e.setInsertionMode(\"inHead\")},t.inFrameset=Object.create(t.base),t.inFrameset.start_tag_handlers={html:\"startTagHtml\",frameset:\"startTagFrameset\",frame:\"startTagFrame\",noframes:\"startTagNoframes\",\"-default\":\"startTagOther\"},t.inFrameset.end_tag_handlers={frameset:\"endTagFrameset\",noframes:\"endTagNoframes\",\"-default\":\"endTagOther\"},t.inFrameset.processCharacters=function(t){e.parseError(\"unexpected-char-in-frameset\")},t.inFrameset.startTagFrameset=function(t,n){e.insertElement(t,n)},t.inFrameset.startTagFrame=function(t,n){e.insertSelfClosingElement(t,n)},t.inFrameset.startTagNoframes=function(e,n){t.inBody.processStartTag(e,n)},t.inFrameset.startTagOther=function(t,n){e.parseError(\"unexpected-start-tag-in-frameset\",{name:t})},t.inFrameset.endTagFrameset=function(t,n){e.currentStackItem().localName==\"html\"?e.parseError(\"unexpected-frameset-in-frameset-innerhtml\"):e.popElement(),!e.context&&e.currentStackItem().localName!=\"frameset\"&&e.setInsertionMode(\"afterFrameset\")},t.inFrameset.endTagNoframes=function(e){t.inBody.processEndTag(e)},t.inFrameset.endTagOther=function(t){e.parseError(\"unexpected-end-tag-in-frameset\",{name:t})},t.inTable=Object.create(t.base),t.inTable.start_tag_handlers={html:\"startTagHtml\",caption:\"startTagCaption\",colgroup:\"startTagColgroup\",col:\"startTagCol\",table:\"startTagTable\",tbody:\"startTagRowGroup\",tfoot:\"startTagRowGroup\",thead:\"startTagRowGroup\",td:\"startTagImplyTbody\",th:\"startTagImplyTbody\",tr:\"startTagImplyTbody\",style:\"startTagStyleScript\",script:\"startTagStyleScript\",input:\"startTagInput\",form:\"startTagForm\",\"-default\":\"startTagOther\"},t.inTable.end_tag_handlers={table:\"endTagTable\",body:\"endTagIgnore\",caption:\"endTagIgnore\",col:\"endTagIgnore\",colgroup:\"endTagIgnore\",html:\"endTagIgnore\",tbody:\"endTagIgnore\",td:\"endTagIgnore\",tfoot:\"endTagIgnore\",th:\"endTagIgnore\",thead:\"endTagIgnore\",tr:\"endTagIgnore\",\"-default\":\"endTagOther\"},t.inTable.processCharacters=function(n){if(e.currentStackItem().isFosterParenting()){var r=e.insertionModeName;e.setInsertionMode(\"inTableText\"),e.originalInsertionMode=r,e.insertionMode.processCharacters(n)}else e.redirectAttachToFosterParent=!0,t.inBody.processCharacters(n),e.redirectAttachToFosterParent=!1},t.inTable.startTagCaption=function(t,n){e.openElements.popUntilTableScopeMarker(),e.activeFormattingElements.push(l),e.insertElement(t,n),e.setInsertionMode(\"inCaption\")},t.inTable.startTagColgroup=function(t,n){e.openElements.popUntilTableScopeMarker(),e.insertElement(t,n),e.setInsertionMode(\"inColumnGroup\")},t.inTable.startTagCol=function(t,n){this.startTagColgroup(\"colgroup\",[]),e.insertionMode.processStartTag(t,n)},t.inTable.startTagRowGroup=function(t,n){e.openElements.popUntilTableScopeMarker(),e.insertElement(t,n),e.setInsertionMode(\"inTableBody\")},t.inTable.startTagImplyTbody=function(t,n){this.startTagRowGroup(\"tbody\",[]),e.insertionMode.processStartTag(t,n)},t.inTable.startTagTable=function(t,n){e.parseError(\"unexpected-start-tag-implies-end-tag\",{startName:\"table\",endName:\"table\"}),e.insertionMode.processEndTag(\"table\"),e.context||e.insertionMode.processStartTag(t,n)},t.inTable.startTagStyleScript=function(e,n){t.inHead.processStartTag(e,n)},t.inTable.startTagInput=function(t,n){for(var r in n)if(n[r].nodeName.toLowerCase()==\"type\"){if(n[r].nodeValue.toLowerCase()==\"hidden\"){e.parseError(\"unexpected-hidden-input-in-table\"),e.insertElement(t,n),e.openElements.pop();return}break}this.startTagOther(t,n)},t.inTable.startTagForm=function(t,n){e.parseError(\"unexpected-form-in-table\"),e.form||(e.insertElement(t,n),e.form=e.currentStackItem(),e.openElements.pop())},t.inTable.startTagOther=function(n,r,i){e.parseError(\"unexpected-start-tag-implies-table-voodoo\",{name:n}),e.redirectAttachToFosterParent=!0,t.inBody.processStartTag(n,r,i),e.redirectAttachToFosterParent=!1},t.inTable.endTagTable=function(t){e.openElements.inTableScope(t)?(e.generateImpliedEndTags(),e.currentStackItem().localName!=t&&e.parseError(\"end-tag-too-early-named\",{gotName:\"table\",expectedName:e.currentStackItem().localName}),e.openElements.popUntilPopped(\"table\"),e.resetInsertionMode()):(r.ok(e.context),e.parseError(\"unexpected-end-tag\",{name:t}))},t.inTable.endTagIgnore=function(t){e.parseError(\"unexpected-end-tag\",{name:t})},t.inTable.endTagOther=function(n){e.parseError(\"unexpected-end-tag-implies-table-voodoo\",{name:n}),e.redirectAttachToFosterParent=!0,t.inBody.processEndTag(n),e.redirectAttachToFosterParent=!1},t.inTableText=Object.create(t.base),t.inTableText.flushCharacters=function(){var t=e.pendingTableCharacters.join(\"\");p(t)?e.insertText(t):(e.redirectAttachToFosterParent=!0,e.reconstructActiveFormattingElements(),e.insertText(t),e.framesetOk=!1,e.redirectAttachToFosterParent=!1),e.pendingTableCharacters=[]},t.inTableText.processComment=function(t){this.flushCharacters(),e.setInsertionMode(e.originalInsertionMode),e.insertionMode.processComment(t)},t.inTableText.processEOF=function(t){this.flushCharacters(),e.setInsertionMode(e.originalInsertionMode),e.insertionMode.processEOF()},t.inTableText.processCharacters=function(t){var n=t.takeRemaining();n=n.replace(/\\u0000/g,function(t,n){return e.parseError(\"invalid-codepoint\"),\"\"});if(!n)return;e.pendingTableCharacters.push(n)},t.inTableText.processStartTag=function(t,n,r){this.flushCharacters(),e.setInsertionMode(e.originalInsertionMode),e.insertionMode.processStartTag(t,n,r)},t.inTableText.processEndTag=function(t,n){this.flushCharacters(),e.setInsertionMode(e.originalInsertionMode),e.insertionMode.processEndTag(t,n)},t.inTableBody=Object.create(t.base),t.inTableBody.start_tag_handlers={html:\"startTagHtml\",tr:\"startTagTr\",td:\"startTagTableCell\",th:\"startTagTableCell\",caption:\"startTagTableOther\",col:\"startTagTableOther\",colgroup:\"startTagTableOther\",tbody:\"startTagTableOther\",tfoot:\"startTagTableOther\",thead:\"startTagTableOther\",\"-default\":\"startTagOther\"},t.inTableBody.end_tag_handlers={table:\"endTagTable\",tbody:\"endTagTableRowGroup\",tfoot:\"endTagTableRowGroup\",thead:\"endTagTableRowGroup\",body:\"endTagIgnore\",caption:\"endTagIgnore\",col:\"endTagIgnore\",colgroup:\"endTagIgnore\",html:\"endTagIgnore\",td:\"endTagIgnore\",th:\"endTagIgnore\",tr:\"endTagIgnore\",\"-default\":\"endTagOther\"},t.inTableBody.processCharacters=function(e){t.inTable.processCharacters(e)},t.inTableBody.startTagTr=function(t,n){e.openElements.popUntilTableBodyScopeMarker(),e.insertElement(t,n),e.setInsertionMode(\"inRow\")},t.inTableBody.startTagTableCell=function(t,n){e.parseError(\"unexpected-cell-in-table-body\",{name:t}),this.startTagTr(\"tr\",[]),e.insertionMode.processStartTag(t,n)},t.inTableBody.startTagTableOther=function(t,n){e.openElements.inTableScope(\"tbody\")||e.openElements.inTableScope(\"thead\")||e.openElements.inTableScope(\"tfoot\")?(e.openElements.popUntilTableBodyScopeMarker(),this.endTagTableRowGroup(e.currentStackItem().localName),e.insertionMode.processStartTag(t,n)):e.parseError(\"unexpected-start-tag\",{name:t})},t.inTableBody.startTagOther=function(e,n){t.inTable.processStartTag(e,n)},t.inTableBody.endTagTableRowGroup=function(t){e.openElements.inTableScope(t)?(e.openElements.popUntilTableBodyScopeMarker(),e.popElement(),e.setInsertionMode(\"inTable\")):e.parseError(\"unexpected-end-tag-in-table-body\",{name:t})},t.inTableBody.endTagTable=function(t){e.openElements.inTableScope(\"tbody\")||e.openElements.inTableScope(\"thead\")||e.openElements.inTableScope(\"tfoot\")?(e.openElements.popUntilTableBodyScopeMarker(),this.endTagTableRowGroup(e.currentStackItem().localName),e.insertionMode.processEndTag(t)):e.parseError(\"unexpected-end-tag\",{name:t})},t.inTableBody.endTagIgnore=function(t){e.parseError(\"unexpected-end-tag-in-table-body\",{name:t})},t.inTableBody.endTagOther=function(e){t.inTable.processEndTag(e)},t.inSelect=Object.create(t.base),t.inSelect.start_tag_handlers={html:\"startTagHtml\",option:\"startTagOption\",optgroup:\"startTagOptgroup\",select:\"startTagSelect\",input:\"startTagInput\",keygen:\"startTagInput\",textarea:\"startTagInput\",script:\"startTagScript\",\"-default\":\"startTagOther\"},t.inSelect.end_tag_handlers={option:\"endTagOption\",optgroup:\"endTagOptgroup\",select:\"endTagSelect\",caption:\"endTagTableElements\",table:\"endTagTableElements\",tbody:\"endTagTableElements\",tfoot:\"endTagTableElements\",thead:\"endTagTableElements\",tr:\"endTagTableElements\",td:\"endTagTableElements\",th:\"endTagTableElements\",\"-default\":\"endTagOther\"},t.inSelect.processCharacters=function(t){var n=t.takeRemaining();n=n.replace(/\\u0000/g,function(t,n){return e.parseError(\"invalid-codepoint\"),\"\"});if(!n)return;e.insertText(n)},t.inSelect.startTagOption=function(t,n){e.currentStackItem().localName==\"option\"&&e.popElement(),e.insertElement(t,n)},t.inSelect.startTagOptgroup=function(t,n){e.currentStackItem().localName==\"option\"&&e.popElement(),e.currentStackItem().localName==\"optgroup\"&&e.popElement(),e.insertElement(t,n)},t.inSelect.endTagOption=function(t){if(e.currentStackItem().localName!==\"option\"){e.parseError(\"unexpected-end-tag-in-select\",{name:t});return}e.popElement()},t.inSelect.endTagOptgroup=function(t){e.currentStackItem().localName==\"option\"&&e.openElements.item(e.openElements.length-2).localName==\"optgroup\"&&e.popElement(),e.currentStackItem().localName==\"optgroup\"?e.popElement():e.parseError(\"unexpected-end-tag-in-select\",{name:\"optgroup\"})},t.inSelect.startTagSelect=function(t){e.parseError(\"unexpected-select-in-select\"),this.endTagSelect(\"select\")},t.inSelect.endTagSelect=function(t){e.openElements.inTableScope(\"select\")?(e.openElements.popUntilPopped(\"select\"),e.resetInsertionMode()):e.parseError(\"unexpected-end-tag\",{name:t})},t.inSelect.startTagInput=function(t,n){e.parseError(\"unexpected-input-in-select\"),e.openElements.inSelectScope(\"select\")&&(this.endTagSelect(\"select\"),e.insertionMode.processStartTag(t,n))},t.inSelect.startTagScript=function(e,n){t.inHead.processStartTag(e,n)},t.inSelect.endTagTableElements=function(t){e.parseError(\"unexpected-end-tag-in-select\",{name:t}),e.openElements.inTableScope(t)&&(this.endTagSelect(\"select\"),e.insertionMode.processEndTag(t))},t.inSelect.startTagOther=function(t,n){e.parseError(\"unexpected-start-tag-in-select\",{name:t})},t.inSelect.endTagOther=function(t){e.parseError(\"unexpected-end-tag-in-select\",{name:t})},t.inSelectInTable=Object.create(t.base),t.inSelectInTable.start_tag_handlers={caption:\"startTagTable\",table:\"startTagTable\",tbody:\"startTagTable\",tfoot:\"startTagTable\",thead:\"startTagTable\",tr:\"startTagTable\",td:\"startTagTable\",th:\"startTagTable\",\"-default\":\"startTagOther\"},t.inSelectInTable.end_tag_handlers={caption:\"endTagTable\",table:\"endTagTable\",tbody:\"endTagTable\",tfoot:\"endTagTable\",thead:\"endTagTable\",tr:\"endTagTable\",td:\"endTagTable\",th:\"endTagTable\",\"-default\":\"endTagOther\"},t.inSelectInTable.processCharacters=function(e){t.inSelect.processCharacters(e)},t.inSelectInTable.startTagTable=function(t,n){e.parseError(\"unexpected-table-element-start-tag-in-select-in-table\",{name:t}),this.endTagOther(\"select\"),e.insertionMode.processStartTag(t,n)},t.inSelectInTable.startTagOther=function(e,n,r){t.inSelect.processStartTag(e,n,r)},t.inSelectInTable.endTagTable=function(t){e.parseError(\"unexpected-table-element-end-tag-in-select-in-table\",{name:t}),e.openElements.inTableScope(t)&&(this.endTagOther(\"select\"),e.insertionMode.processEndTag(t))},t.inSelectInTable.endTagOther=function(e){t.inSelect.processEndTag(e)},t.inRow=Object.create(t.base),t.inRow.start_tag_handlers={html:\"startTagHtml\",td:\"startTagTableCell\",th:\"startTagTableCell\",caption:\"startTagTableOther\",col:\"startTagTableOther\",colgroup:\"startTagTableOther\",tbody:\"startTagTableOther\",tfoot:\"startTagTableOther\",thead:\"startTagTableOther\",tr:\"startTagTableOther\",\"-default\":\"startTagOther\"},t.inRow.end_tag_handlers={tr:\"endTagTr\",table:\"endTagTable\",tbody:\"endTagTableRowGroup\",tfoot:\"endTagTableRowGroup\",thead:\"endTagTableRowGroup\",body:\"endTagIgnore\",caption:\"endTagIgnore\",col:\"endTagIgnore\",colgroup:\"endTagIgnore\",html:\"endTagIgnore\",td:\"endTagIgnore\",th:\"endTagIgnore\",\"-default\":\"endTagOther\"},t.inRow.processCharacters=function(e){t.inTable.processCharacters(e)},t.inRow.startTagTableCell=function(t,n){e.openElements.popUntilTableRowScopeMarker(),e.insertElement(t,n),e.setInsertionMode(\"inCell\"),e.activeFormattingElements.push(l)},t.inRow.startTagTableOther=function(t,n){var r=this.ignoreEndTagTr();this.endTagTr(\"tr\"),r||e.insertionMode.processStartTag(t,n)},t.inRow.startTagOther=function(e,n,r){t.inTable.processStartTag(e,n,r)},t.inRow.endTagTr=function(t){this.ignoreEndTagTr()?(r.ok(e.context),e.parseError(\"unexpected-end-tag\",{name:t})):(e.openElements.popUntilTableRowScopeMarker(),e.popElement(),e.setInsertionMode(\"inTableBody\"))},t.inRow.endTagTable=function(t){var n=this.ignoreEndTagTr();this.endTagTr(\"tr\"),n||e.insertionMode.processEndTag(t)},t.inRow.endTagTableRowGroup=function(t){e.openElements.inTableScope(t)?(this.endTagTr(\"tr\"),e.insertionMode.processEndTag(t)):e.parseError(\"unexpected-end-tag\",{name:t})},t.inRow.endTagIgnore=function(t){e.parseError(\"unexpected-end-tag-in-table-row\",{name:t})},t.inRow.endTagOther=function(e){t.inTable.processEndTag(e)},t.inRow.ignoreEndTagTr=function(){return!e.openElements.inTableScope(\"tr\")},t.afterAfterFrameset=Object.create(t.base),t.afterAfterFrameset.start_tag_handlers={html:\"startTagHtml\",noframes:\"startTagNoFrames\",\"-default\":\"startTagOther\"},t.afterAfterFrameset.processEOF=function(){},t.afterAfterFrameset.processComment=function(t){e.insertComment(t,e.document)},t.afterAfterFrameset.processCharacters=function(t){var n=t.takeRemaining(),r=\"\";for(var i=0;i<n.length;i++){var s=n[i];c(s)&&(r+=s)}r&&(e.reconstructActiveFormattingElements(),e.insertText(r)),r.length<n.length&&e.parseError(\"expected-eof-but-got-char\")},t.afterAfterFrameset.startTagNoFrames=function(e,n){t.inHead.processStartTag(e,n)},t.afterAfterFrameset.startTagOther=function(t,n,r){e.parseError(\"expected-eof-but-got-start-tag\",{name:t})},t.afterAfterFrameset.processEndTag=function(t,n){e.parseError(\"expected-eof-but-got-end-tag\",{name:t})},t.text=Object.create(t.base),t.text.start_tag_handlers={\"-default\":\"startTagOther\"},t.text.end_tag_handlers={script:\"endTagScript\",\"-default\":\"endTagOther\"},t.text.processCharacters=function(t){e.shouldSkipLeadingNewline&&(e.shouldSkipLeadingNewline=!1,t.skipAtMostOneLeadingNewline());var n=t.takeRemaining();if(!n)return;e.insertText(n)},t.text.processEOF=function(){e.parseError(\"expected-named-closing-tag-but-got-eof\",{name:e.currentStackItem().localName}),e.openElements.pop(),e.setInsertionMode(e.originalInsertionMode),e.insertionMode.processEOF()},t.text.startTagOther=function(e){throw\"Tried to process start tag \"+e+\" in RCDATA/RAWTEXT mode\"},t.text.endTagScript=function(t){var n=e.openElements.pop();r.ok(n.localName==\"script\"),e.setInsertionMode(e.originalInsertionMode)},t.text.endTagOther=function(t){e.openElements.pop(),e.setInsertionMode(e.originalInsertionMode)}}function y(e,t){return e.replace(new RegExp(\"{[0-9a-z-]+}\",\"gi\"),function(e){return t[e.slice(1,-1)]||e})}var r=e(\"assert\"),i=e(\"./messages.json\"),s=e(\"./constants\"),o=e(\"events\").EventEmitter,u=e(\"./Tokenizer\").Tokenizer,a=e(\"./ElementStack\").ElementStack,f=e(\"./StackItem\").StackItem,l={};m.prototype.skipAtMostOneLeadingNewline=function(){this.characters[this.current]===\"\\n\"&&this.current++},m.prototype.skipLeadingWhitespace=function(){while(c(this.characters[this.current]))if(++this.current==this.end)return},m.prototype.skipLeadingNonWhitespace=function(){while(!c(this.characters[this.current]))if(++this.current==this.end)return},m.prototype.takeRemaining=function(){return this.characters.substring(this.current)},m.prototype.takeLeadingWhitespace=function(){var e=this.current;return this.skipLeadingWhitespace(),e===this.current?\"\":this.characters.substring(e,this.current-e)},Object.defineProperty(m.prototype,\"length\",{get:function(){return this.end-this.current}}),g.prototype.setInsertionMode=function(e){this.insertionMode=this.insertionModes[e],this.insertionModeName=e},g.prototype.adoptionAgencyEndTag=function(e){function i(e){return e===r}var t=8,n=3,r,s=0;while(s++<t){r=this.elementInActiveFormattingElements(e);if(!r||this.openElements.contains(r)&&!this.openElements.inScope(r.localName))return this.parseError(\"adoption-agency-1.1\",{name:e}),!1;if(!this.openElements.contains(r))return this.parseError(\"adoption-agency-1.2\",{name:e}),this.removeElementFromActiveFormattingElements(r),!0;this.openElements.inScope(r.localName)||this.parseError(\"adoption-agency-4.4\",{name:e}),r!=this.currentStackItem()&&this.parseError(\"adoption-agency-1.3\",{name:e});var o=this.openElements.furthestBlockForFormattingElement(r.node);if(!o)return this.openElements.remove_openElements_until(i),this.removeElementFromActiveFormattingElements(r),!0;var u=this.openElements.elements.indexOf(r),a=this.openElements.item(u-1),l=this.activeFormattingElements.indexOf(r),c=o,h=o,p=this.openElements.elements.indexOf(c),d=0;while(d++<n){p-=1,c=this.openElements.item(p);if(this.activeFormattingElements.indexOf(c)<0){this.openElements.elements.splice(p,1);continue}if(c==r)break;h==o&&(l=this.activeFormattingElements.indexOf(c)+1);var v=this.createElement(c.namespaceURI,c.localName,c.attributes),m=new f(c.namespaceURI,c.localName,c.attributes,v);this.activeFormattingElements[this.activeFormattingElements.indexOf(c)]=m,this.openElements.elements[this.openElements.elements.indexOf(c)]=m,c=m,this.detachFromParent(h.node),this.attachNode(h.node,c.node),h=c}this.detachFromParent(h.node),a.isFosterParenting()?this.insertIntoFosterParent(h.node):this.attachNode(h.node,a.node);var v=this.createElement(\"http://www.w3.org/1999/xhtml\",r.localName,r.attributes),g=new f(r.namespaceURI,r.localName,r.attributes,v);this.reparentChildren(o.node,v),this.attachNode(v,o.node),this.removeElementFromActiveFormattingElements(r),this.activeFormattingElements.splice(Math.min(l,this.activeFormattingElements.length),0,g),this.openElements.remove(r),this.openElements.elements.splice(this.openElements.elements.indexOf(o)+1,0,g)}return!0},g.prototype.start=function(){throw\"Not mplemented\"},g.prototype.startTokenization=function(e){this.tokenizer=e,this.compatMode=\"no quirks\",this.originalInsertionMode=\"initial\",this.framesetOk=!0,this.openElements=new a,this.activeFormattingElements=[],this.start();if(this.context){switch(this.context){case\"title\":case\"textarea\":this.tokenizer.setState(u.RCDATA);break;case\"style\":case\"xmp\":case\"iframe\":case\"noembed\":case\"noframes\":this.tokenizer.setState(u.RAWTEXT);break;case\"script\":this.tokenizer.setState(u.SCRIPT_DATA);break;case\"noscript\":this.scriptingEnabled&&this.tokenizer.setState(u.RAWTEXT);break;case\"plaintext\":this.tokenizer.setState(u.PLAINTEXT)}this.insertHtmlElement(),this.resetInsertionMode()}else this.setInsertionMode(\"initial\")},g.prototype.processToken=function(e){this.selfClosingFlagAcknowledged=!1;var t=this.openElements.top||null,n;!t||!t.isForeign()||t.isMathMLTextIntegrationPoint()&&(e.type==\"StartTag\"&&!(e.name in{mglyph:0,malignmark:0})||e.type===\"Characters\")||t.namespaceURI==\"http://www.w3.org/1998/Math/MathML\"&&t.localName==\"annotation-xml\"&&e.type==\"StartTag\"&&e.name==\"svg\"||t.isHtmlIntegrationPoint()&&e.type in{StartTag:0,Characters:0}||e.type==\"EOF\"?n=this.insertionMode:n=this.insertionModes.inForeignContent;switch(e.type){case\"Characters\":var r=new m(e.data);n.processCharacters(r);break;case\"Comment\":n.processComment(e.data);break;case\"StartTag\":n.processStartTag(e.name,e.data,e.selfClosing);break;case\"EndTag\":n.processEndTag(e.name);break;case\"Doctype\":n.processDoctype(e.name,e.publicId,e.systemId,e.forceQuirks);break;case\"EOF\":n.processEOF()}},g.prototype.isCdataSectionAllowed=function(){return this.openElements.length>0&&this.currentStackItem().isForeign()},g.prototype.isSelfClosingFlagAcknowledged=function(){return this.selfClosingFlagAcknowledged},g.prototype.createElement=function(e,t,n){throw new Error(\"Not implemented\")},g.prototype.attachNode=function(e,t){throw new Error(\"Not implemented\")},g.prototype.attachNodeToFosterParent=function(e,t,n){throw new Error(\"Not implemented\")},g.prototype.detachFromParent=function(e){throw new Error(\"Not implemented\")},g.prototype.addAttributesToElement=function(e,t){throw new Error(\"Not implemented\")},g.prototype.insertHtmlElement=function(e){var t=this.createElement(\"http://www.w3.org/1999/xhtml\",\"html\",e);return this.attachNode(t,this.document),this.openElements.pushHtmlElement(new f(\"http://www.w3.org/1999/xhtml\",\"html\",e,t)),t},g.prototype.insertHeadElement=function(e){var t=this.createElement(\"http://www.w3.org/1999/xhtml\",\"head\",e);return this.head=new f(\"http://www.w3.org/1999/xhtml\",\"head\",e,t),this.attachNode(t,this.openElements.top.node),this.openElements.pushHeadElement(this.head),t},g.prototype.insertBodyElement=function(e){var t=this.createElement(\"http://www.w3.org/1999/xhtml\",\"body\",e);return this.attachNode(t,this.openElements.top.node),this.openElements.pushBodyElement(new f(\"http://www.w3.org/1999/xhtml\",\"body\",e,t)),t},g.prototype.insertIntoFosterParent=function(e){var t=this.openElements.findIndex(\"table\"),n=this.openElements.item(t).node;if(t===0)return this.attachNode(e,n);this.attachNodeToFosterParent(e,n,this.openElements.item(t-1).node)},g.prototype.insertElement=function(e,t,n,r){n||(n=\"http://www.w3.org/1999/xhtml\");var i=this.createElement(n,e,t);this.shouldFosterParent()?this.insertIntoFosterParent(i):this.attachNode(i,this.openElements.top.node),r||this.openElements.push(new f(n,e,t,i))},g.prototype.insertFormattingElement=function(e,t){this.insertElement(e,t,\"http://www.w3.org/1999/xhtml\"),this.appendElementToActiveFormattingElements(this.currentStackItem())},g.prototype.insertSelfClosingElement=function(e,t){this.selfClosingFlagAcknowledged=!0,this.insertElement(e,t,\"http://www.w3.org/1999/xhtml\",!0)},g.prototype.insertForeignElement=function(e,t,n,r){r&&(this.selfClosingFlagAcknowledged=!0),this.insertElement(e,t,n,r)},g.prototype.insertComment=function(e,t){throw new Error(\"Not implemented\")},g.prototype.insertDoctype=function(e,t,n){throw new Error(\"Not implemented\")},g.prototype.insertText=function(e){throw new Error(\"Not implemented\")},g.prototype.currentStackItem=function(){return this.openElements.top},g.prototype.popElement=function(){return this.openElements.pop()},g.prototype.shouldFosterParent=function(){return this.redirectAttachToFosterParent&&this.currentStackItem().isFosterParenting()},g.prototype.generateImpliedEndTags=function(e){var t=this.openElements.top.localName;[\"dd\",\"dt\",\"li\",\"option\",\"optgroup\",\"p\",\"rp\",\"rt\"].indexOf(t)!=-1&&t!=e&&(this.popElement(),this.generateImpliedEndTags(e))},g.prototype.reconstructActiveFormattingElements=function(){if(this.activeFormattingElements.length===0)return;var e=this.activeFormattingElements.length-1,t=this.activeFormattingElements[e];if(t==l||this.openElements.contains(t))return;while(t!=l&&!this.openElements.contains(t)){e-=1,t=this.activeFormattingElements[e];if(!t)break}for(;;){e+=1,t=this.activeFormattingElements[e],this.insertElement(t.localName,t.attributes);var n=this.currentStackItem();this.activeFormattingElements[e]=n;if(n==this.activeFormattingElements[this.activeFormattingElements.length-1])break}},g.prototype.ensureNoahsArkCondition=function(e){var t=3;if(this.activeFormattingElements.length<t)return;var n=[],r=e.attributes.length;for(var i=this.activeFormattingElements.length-1;i>=0;i--){var s=this.activeFormattingElements[i];if(s===l)break;if(e.localName!==s.localName||e.namespaceURI!==s.namespaceURI)continue;if(s.attributes.length!=r)continue;n.push(s)}if(n.length<t)return;var o=[],u=e.attributes;for(var i=0;i<u.length;i++){var a=u[i];for(var f=0;f<n.length;f++){var s=n[f],c=v(s,a.nodeName);c&&c.nodeValue===a.nodeValue&&o.push(s)}if(o.length<t)return;n=o,o=[]}for(var i=t-1;i<n.length;i++)this.removeElementFromActiveFormattingElements(n[i])},g.prototype.appendElementToActiveFormattingElements=function(e){this.ensureNoahsArkCondition(e),this.activeFormattingElements.push(e)},g.prototype.removeElementFromActiveFormattingElements=function(e){var t=this.activeFormattingElements.indexOf(e);t>=0&&this.activeFormattingElements.splice(t,1)},g.prototype.elementInActiveFormattingElements=function(e){var t=this.activeFormattingElements;for(var n=t.length-1;n>=0;n--){if(t[n]==l)break;if(t[n].localName==e)return t[n]}return!1},g.prototype.clearActiveFormattingElements=function(){while(this.activeFormattingElements.length!==0&&this.activeFormattingElements.pop()!=l);},g.prototype.reparentChildren=function(e,t){throw new Error(\"Not implemented\")},g.prototype.setFragmentContext=function(e){this.context=e},g.prototype.parseError=function(e,t){if(!this.errorHandler)return;var n=y(i[e],t);this.errorHandler.error(n,this.tokenizer._inputStream.location(),e)},g.prototype.resetInsertionMode=function(){var e=!1,t=null;for(var n=this.openElements.length-1;n>=0;n--){t=this.openElements.item(n),n===0&&(r.ok(this.context),e=!0,t=new f(\"http://www.w3.org/1999/xhtml\",this.context,[],null));if(t.namespaceURI===\"http://www.w3.org/1999/xhtml\"){if(t.localName===\"select\")return this.setInsertionMode(\"inSelect\");if(t.localName===\"td\"||t.localName===\"th\")return this.setInsertionMode(\"inCell\");if(t.localName===\"tr\")return this.setInsertionMode(\"inRow\");if(t.localName===\"tbody\"||t.localName===\"thead\"||t.localName===\"tfoot\")return this.setInsertionMode(\"inTableBody\");if(t.localName===\"caption\")return this.setInsertionMode(\"inCaption\");if(t.localName===\"colgroup\")return this.setInsertionMode(\"inColumnGroup\");if(t.localName===\"table\")return this.setInsertionMode(\"inTable\");if(t.localName===\"head\"&&!e)return this.setInsertionMode(\"inHead\");if(t.localName===\"body\")return this.setInsertionMode(\"inBody\");if(t.localName===\"frameset\")return this.setInsertionMode(\"inFrameset\");if(t.localName===\"html\")return this.openElements.headElement?this.setInsertionMode(\"afterHead\"):this.setInsertionMode(\"beforeHead\")}if(e)return this.setInsertionMode(\"inBody\")}},g.prototype.processGenericRCDATAStartTag=function(e,t){this.insertElement(e,t),this.tokenizer.setState(u.RCDATA),this.originalInsertionMode=this.insertionModeName,this.setInsertionMode(\"text\")},g.prototype.processGenericRawTextStartTag=function(e,t){this.insertElement(e,t),this.tokenizer.setState(u.RAWTEXT),this.originalInsertionMode=this.insertionModeName,this.setInsertionMode(\"text\")},g.prototype.adjustMathMLAttributes=function(e){return e.forEach(function(e){e.namespaceURI=\"http://www.w3.org/1998/Math/MathML\",s.MATHMLAttributeMap[e.nodeName]&&(e.nodeName=s.MATHMLAttributeMap[e.nodeName])}),e},g.prototype.adjustSVGTagNameCase=function(e){return s.SVGTagMap[e]||e},g.prototype.adjustSVGAttributes=function(e){return e.forEach(function(e){e.namespaceURI=\"http://www.w3.org/2000/svg\",s.SVGAttributeMap[e.nodeName]&&(e.nodeName=s.SVGAttributeMap[e.nodeName])}),e},g.prototype.adjustForeignAttributes=function(e){for(var t=0;t<e.length;t++){var n=e[t],r=s.ForeignAttributeMap[n.nodeName];r&&(n.nodeName=r.localName,n.prefix=r.prefix,n.namespaceURI=r.namespaceURI)}return e},n.TreeBuilder=g},{\"./ElementStack\":1,\"./StackItem\":4,\"./Tokenizer\":5,\"./constants\":7,\"./messages.json\":8,assert:13,events:16}],7:[function(e,t,n){n.SVGTagMap={altglyph:\"altGlyph\",altglyphdef:\"altGlyphDef\",altglyphitem:\"altGlyphItem\",animatecolor:\"animateColor\",animatemotion:\"animateMotion\",animatetransform:\"animateTransform\",clippath:\"clipPath\",feblend:\"feBlend\",fecolormatrix:\"feColorMatrix\",fecomponenttransfer:\"feComponentTransfer\",fecomposite:\"feComposite\",feconvolvematrix:\"feConvolveMatrix\",fediffuselighting:\"feDiffuseLighting\",fedisplacementmap:\"feDisplacementMap\",fedistantlight:\"feDistantLight\",feflood:\"feFlood\",fefunca:\"feFuncA\",fefuncb:\"feFuncB\",fefuncg:\"feFuncG\",fefuncr:\"feFuncR\",fegaussianblur:\"feGaussianBlur\",feimage:\"feImage\",femerge:\"feMerge\",femergenode:\"feMergeNode\",femorphology:\"feMorphology\",feoffset:\"feOffset\",fepointlight:\"fePointLight\",fespecularlighting:\"feSpecularLighting\",fespotlight:\"feSpotLight\",fetile:\"feTile\",feturbulence:\"feTurbulence\",foreignobject:\"foreignObject\",glyphref:\"glyphRef\",lineargradient:\"linearGradient\",radialgradient:\"radialGradient\",textpath:\"textPath\"},n.MATHMLAttributeMap={definitionurl:\"definitionURL\"},n.SVGAttributeMap={attributename:\"attributeName\",attributetype:\"attributeType\",basefrequency:\"baseFrequency\",baseprofile:\"baseProfile\",calcmode:\"calcMode\",clippathunits:\"clipPathUnits\",contentscripttype:\"contentScriptType\",contentstyletype:\"contentStyleType\",diffuseconstant:\"diffuseConstant\",edgemode:\"edgeMode\",externalresourcesrequired:\"externalResourcesRequired\",filterres:\"filterRes\",filterunits:\"filterUnits\",glyphref:\"glyphRef\",gradienttransform:\"gradientTransform\",gradientunits:\"gradientUnits\",kernelmatrix:\"kernelMatrix\",kernelunitlength:\"kernelUnitLength\",keypoints:\"keyPoints\",keysplines:\"keySplines\",keytimes:\"keyTimes\",lengthadjust:\"lengthAdjust\",limitingconeangle:\"limitingConeAngle\",markerheight:\"markerHeight\",markerunits:\"markerUnits\",markerwidth:\"markerWidth\",maskcontentunits:\"maskContentUnits\",maskunits:\"maskUnits\",numoctaves:\"numOctaves\",pathlength:\"pathLength\",patterncontentunits:\"patternContentUnits\",patterntransform:\"patternTransform\",patternunits:\"patternUnits\",pointsatx:\"pointsAtX\",pointsaty:\"pointsAtY\",pointsatz:\"pointsAtZ\",preservealpha:\"preserveAlpha\",preserveaspectratio:\"preserveAspectRatio\",primitiveunits:\"primitiveUnits\",refx:\"refX\",refy:\"refY\",repeatcount:\"repeatCount\",repeatdur:\"repeatDur\",requiredextensions:\"requiredExtensions\",requiredfeatures:\"requiredFeatures\",specularconstant:\"specularConstant\",specularexponent:\"specularExponent\",spreadmethod:\"spreadMethod\",startoffset:\"startOffset\",stddeviation:\"stdDeviation\",stitchtiles:\"stitchTiles\",surfacescale:\"surfaceScale\",systemlanguage:\"systemLanguage\",tablevalues:\"tableValues\",targetx:\"targetX\",targety:\"targetY\",textlength:\"textLength\",viewbox:\"viewBox\",viewtarget:\"viewTarget\",xchannelselector:\"xChannelSelector\",ychannelselector:\"yChannelSelector\",zoomandpan:\"zoomAndPan\"},n.ForeignAttributeMap={\"xlink:actuate\":{prefix:\"xlink\",localName:\"actuate\",namespaceURI:\"http://www.w3.org/1999/xlink\"},\"xlink:arcrole\":{prefix:\"xlink\",localName:\"arcrole\",namespaceURI:\"http://www.w3.org/1999/xlink\"},\"xlink:href\":{prefix:\"xlink\",localName:\"href\",namespaceURI:\"http://www.w3.org/1999/xlink\"},\"xlink:role\":{prefix:\"xlink\",localName:\"role\",namespaceURI:\"http://www.w3.org/1999/xlink\"},\"xlink:show\":{prefix:\"xlink\",localName:\"show\",namespaceURI:\"http://www.w3.org/1999/xlink\"},\"xlink:title\":{prefix:\"xlink\",localName:\"title\",namespaceURI:\"http://www.w3.org/1999/xlink\"},\"xlink:type\":{prefix:\"xlink\",localName:\"title\",namespaceURI:\"http://www.w3.org/1999/xlink\"},\"xml:base\":{prefix:\"xml\",localName:\"base\",namespaceURI:\"http://www.w3.org/XML/1998/namespace\"},\"xml:lang\":{prefix:\"xml\",localName:\"lang\",namespaceURI:\"http://www.w3.org/XML/1998/namespace\"},\"xml:space\":{prefix:\"xml\",localName:\"space\",namespaceURI:\"http://www.w3.org/XML/1998/namespace\"},xmlns:{prefix:null,localName:\"xmlns\",namespaceURI:\"http://www.w3.org/2000/xmlns/\"},\"xmlns:xlink\":{prefix:\"xmlns\",localName:\"xlink\",namespaceURI:\"http://www.w3.org/2000/xmlns/\"}}},{}],8:[function(e,t,n){t.exports={\"null-character\":\"Null character in input stream, replaced with U+FFFD.\",\"invalid-codepoint\":\"Invalid codepoint in stream\",\"incorrectly-placed-solidus\":\"Solidus (/) incorrectly placed in tag.\",\"incorrect-cr-newline-entity\":\"Incorrect CR newline entity, replaced with LF.\",\"illegal-windows-1252-entity\":\"Entity used with illegal number (windows-1252 reference).\",\"cant-convert-numeric-entity\":\"Numeric entity couldn't be converted to character (codepoint U+{charAsInt}).\",\"invalid-numeric-entity-replaced\":\"Numeric entity represents an illegal codepoint. Expanded to the C1 controls range.\",\"numeric-entity-without-semicolon\":\"Numeric entity didn't end with ';'.\",\"expected-numeric-entity-but-got-eof\":\"Numeric entity expected. Got end of file instead.\",\"expected-numeric-entity\":\"Numeric entity expected but none found.\",\"named-entity-without-semicolon\":\"Named entity didn't end with ';'.\",\"expected-named-entity\":\"Named entity expected. Got none.\",\"attributes-in-end-tag\":\"End tag contains unexpected attributes.\",\"self-closing-flag-on-end-tag\":\"End tag contains unexpected self-closing flag.\",\"bare-less-than-sign-at-eof\":\"End of file after <.\",\"expected-tag-name-but-got-right-bracket\":\"Expected tag name. Got '>' instead.\",\"expected-tag-name-but-got-question-mark\":\"Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.)\",\"expected-tag-name\":\"Expected tag name. Got something else instead.\",\"expected-closing-tag-but-got-right-bracket\":\"Expected closing tag. Got '>' instead. Ignoring '</>'.\",\"expected-closing-tag-but-got-eof\":\"Expected closing tag. Unexpected end of file.\",\"expected-closing-tag-but-got-char\":\"Expected closing tag. Unexpected character '{data}' found.\",\"eof-in-tag-name\":\"Unexpected end of file in the tag name.\",\"expected-attribute-name-but-got-eof\":\"Unexpected end of file. Expected attribute name instead.\",\"eof-in-attribute-name\":\"Unexpected end of file in attribute name.\",\"invalid-character-in-attribute-name\":\"Invalid character in attribute name.\",\"duplicate-attribute\":\"Dropped duplicate attribute '{name}' on tag.\",\"expected-end-of-tag-but-got-eof\":\"Unexpected end of file. Expected = or end of tag.\",\"expected-attribute-value-but-got-eof\":\"Unexpected end of file. Expected attribute value.\",\"expected-attribute-value-but-got-right-bracket\":\"Expected attribute value. Got '>' instead.\",\"unexpected-character-in-unquoted-attribute-value\":\"Unexpected character in unquoted attribute\",\"invalid-character-after-attribute-name\":\"Unexpected character after attribute name.\",\"unexpected-character-after-attribute-value\":\"Unexpected character after attribute value.\",\"eof-in-attribute-value-double-quote\":'Unexpected end of file in attribute value (\").',\"eof-in-attribute-value-single-quote\":\"Unexpected end of file in attribute value (').\",\"eof-in-attribute-value-no-quotes\":\"Unexpected end of file in attribute value.\",\"eof-after-attribute-value\":\"Unexpected end of file after attribute value.\",\"unexpected-eof-after-solidus-in-tag\":\"Unexpected end of file in tag. Expected >.\",\"unexpected-character-after-solidus-in-tag\":\"Unexpected character after / in tag. Expected >.\",\"expected-dashes-or-doctype\":\"Expected '--' or 'DOCTYPE'. Not found.\",\"unexpected-bang-after-double-dash-in-comment\":\"Unexpected ! after -- in comment.\",\"incorrect-comment\":\"Incorrect comment.\",\"eof-in-comment\":\"Unexpected end of file in comment.\",\"eof-in-comment-end-dash\":\"Unexpected end of file in comment (-).\",\"unexpected-dash-after-double-dash-in-comment\":\"Unexpected '-' after '--' found in comment.\",\"eof-in-comment-double-dash\":\"Unexpected end of file in comment (--).\",\"eof-in-comment-end-bang-state\":\"Unexpected end of file in comment.\",\"unexpected-char-in-comment\":\"Unexpected character in comment found.\",\"need-space-after-doctype\":\"No space after literal string 'DOCTYPE'.\",\"expected-doctype-name-but-got-right-bracket\":\"Unexpected > character. Expected DOCTYPE name.\",\"expected-doctype-name-but-got-eof\":\"Unexpected end of file. Expected DOCTYPE name.\",\"eof-in-doctype-name\":\"Unexpected end of file in DOCTYPE name.\",\"eof-in-doctype\":\"Unexpected end of file in DOCTYPE.\",\"expected-space-or-right-bracket-in-doctype\":\"Expected space or '>'. Got '{data}'.\",\"unexpected-end-of-doctype\":\"Unexpected end of DOCTYPE.\",\"unexpected-char-in-doctype\":\"Unexpected character in DOCTYPE.\",\"eof-in-bogus-doctype\":\"Unexpected end of file in bogus doctype.\",\"eof-in-innerhtml\":\"Unexpected EOF in inner html mode.\",\"unexpected-doctype\":\"Unexpected DOCTYPE. Ignored.\",\"non-html-root\":\"html needs to be the first start tag.\",\"expected-doctype-but-got-eof\":\"Unexpected End of file. Expected DOCTYPE.\",\"unknown-doctype\":\"Erroneous DOCTYPE. Expected <!DOCTYPE html>.\",\"quirky-doctype\":\"Quirky doctype. Expected <!DOCTYPE html>.\",\"almost-standards-doctype\":\"Almost standards mode doctype. Expected <!DOCTYPE html>.\",\"obsolete-doctype\":\"Obsolete doctype. Expected <!DOCTYPE html>.\",\"expected-doctype-but-got-chars\":\"Non-space characters found without seeing a doctype first. Expected e.g. <!DOCTYPE html>.\",\"expected-doctype-but-got-start-tag\":\"Start tag seen without seeing a doctype first. Expected e.g. <!DOCTYPE html>.\",\"expected-doctype-but-got-end-tag\":\"End tag seen without seeing a doctype first. Expected e.g. <!DOCTYPE html>.\",\"end-tag-after-implied-root\":\"Unexpected end tag ({name}) after the (implied) root element.\",\"expected-named-closing-tag-but-got-eof\":\"Unexpected end of file. Expected end tag ({name}).\",\"two-heads-are-not-better-than-one\":\"Unexpected start tag head in existing head. Ignored.\",\"unexpected-end-tag\":\"Unexpected end tag ({name}). Ignored.\",\"unexpected-implied-end-tag\":\"End tag {name} implied, but there were open elements.\",\"unexpected-start-tag-out-of-my-head\":\"Unexpected start tag ({name}) that can be in head. Moved.\",\"unexpected-start-tag\":\"Unexpected start tag ({name}).\",\"missing-end-tag\":\"Missing end tag ({name}).\",\"missing-end-tags\":\"Missing end tags ({name}).\",\"unexpected-start-tag-implies-end-tag\":\"Unexpected start tag ({startName}) implies end tag ({endName}).\",\"unexpected-start-tag-treated-as\":\"Unexpected start tag ({originalName}). Treated as {newName}.\",\"deprecated-tag\":\"Unexpected start tag {name}. Don't use it!\",\"unexpected-start-tag-ignored\":\"Unexpected start tag {name}. Ignored.\",\"expected-one-end-tag-but-got-another\":\"Unexpected end tag ({gotName}). Missing end tag ({expectedName}).\",\"end-tag-too-early\":\"End tag ({name}) seen too early. Expected other end tag.\",\"end-tag-too-early-named\":\"Unexpected end tag ({gotName}). Expected end tag ({expectedName}.\",\"end-tag-too-early-ignored\":\"End tag ({name}) seen too early. Ignored.\",\"adoption-agency-1.1\":\"End tag ({name}) violates step 1, paragraph 1 of the adoption agency algorithm.\",\"adoption-agency-1.2\":\"End tag ({name}) violates step 1, paragraph 2 of the adoption agency algorithm.\",\"adoption-agency-1.3\":\"End tag ({name}) violates step 1, paragraph 3 of the adoption agency algorithm.\",\"adoption-agency-4.4\":\"End tag ({name}) violates step 4, paragraph 4 of the adoption agency algorithm.\",\"unexpected-end-tag-treated-as\":\"Unexpected end tag ({originalName}). Treated as {newName}.\",\"no-end-tag\":\"This element ({name}) has no end tag.\",\"unexpected-implied-end-tag-in-table\":\"Unexpected implied end tag ({name}) in the table phase.\",\"unexpected-implied-end-tag-in-table-body\":\"Unexpected implied end tag ({name}) in the table body phase.\",\"unexpected-char-implies-table-voodoo\":\"Unexpected non-space characters in table context caused voodoo mode.\",\"unexpected-hidden-input-in-table\":\"Unexpected input with type hidden in table context.\",\"unexpected-form-in-table\":\"Unexpected form in table context.\",\"unexpected-start-tag-implies-table-voodoo\":\"Unexpected start tag ({name}) in table context caused voodoo mode.\",\"unexpected-end-tag-implies-table-voodoo\":\"Unexpected end tag ({name}) in table context caused voodoo mode.\",\"unexpected-cell-in-table-body\":\"Unexpected table cell start tag ({name}) in the table body phase.\",\"unexpected-cell-end-tag\":\"Got table cell end tag ({name}) while required end tags are missing.\",\"unexpected-end-tag-in-table-body\":\"Unexpected end tag ({name}) in the table body phase. Ignored.\",\"unexpected-implied-end-tag-in-table-row\":\"Unexpected implied end tag ({name}) in the table row phase.\",\"unexpected-end-tag-in-table-row\":\"Unexpected end tag ({name}) in the table row phase. Ignored.\",\"unexpected-select-in-select\":\"Unexpected select start tag in the select phase treated as select end tag.\",\"unexpected-input-in-select\":\"Unexpected input start tag in the select phase.\",\"unexpected-start-tag-in-select\":\"Unexpected start tag token ({name}) in the select phase. Ignored.\",\"unexpected-end-tag-in-select\":\"Unexpected end tag ({name}) in the select phase. Ignored.\",\"unexpected-table-element-start-tag-in-select-in-table\":\"Unexpected table element start tag ({name}) in the select in table phase.\",\"unexpected-table-element-end-tag-in-select-in-table\":\"Unexpected table element end tag ({name}) in the select in table phase.\",\"unexpected-char-after-body\":\"Unexpected non-space characters in the after body phase.\",\"unexpected-start-tag-after-body\":\"Unexpected start tag token ({name}) in the after body phase.\",\"unexpected-end-tag-after-body\":\"Unexpected end tag token ({name}) in the after body phase.\",\"unexpected-char-in-frameset\":\"Unepxected characters in the frameset phase. Characters ignored.\",\"unexpected-start-tag-in-frameset\":\"Unexpected start tag token ({name}) in the frameset phase. Ignored.\",\"unexpected-frameset-in-frameset-innerhtml\":\"Unexpected end tag token (frameset in the frameset phase (innerHTML).\",\"unexpected-end-tag-in-frameset\":\"Unexpected end tag token ({name}) in the frameset phase. Ignored.\",\"unexpected-char-after-frameset\":\"Unexpected non-space characters in the after frameset phase. Ignored.\",\"unexpected-start-tag-after-frameset\":\"Unexpected start tag ({name}) in the after frameset phase. Ignored.\",\"unexpected-end-tag-after-frameset\":\"Unexpected end tag ({name}) in the after frameset phase. Ignored.\",\"expected-eof-but-got-char\":\"Unexpected non-space characters. Expected end of file.\",\"expected-eof-but-got-start-tag\":\"Unexpected start tag ({name}). Expected end of file.\",\"expected-eof-but-got-end-tag\":\"Unexpected end tag ({name}). Expected end of file.\",\"unexpected-end-table-in-caption\":\"Unexpected end table tag in caption. Generates implied end caption.\",\"end-html-in-innerhtml\":\"Unexpected html end tag in inner html mode.\",\"eof-in-table\":\"Unexpected end of file. Expected table content.\",\"eof-in-script\":\"Unexpected end of file. Expected script content.\",\"non-void-element-with-trailing-solidus\":\"Trailing solidus not allowed on element {name}.\",\"unexpected-html-element-in-foreign-content\":'HTML start tag \"{name}\" in a foreign namespace context.',\"unexpected-start-tag-in-table\":\"Unexpected {name}. Expected table content.\"}},{}],9:[function(e,t,n){function o(){this.contentHandler=null,this._errorHandler=null,this._treeBuilder=new r,this._tokenizer=new i(this._treeBuilder),this._scriptingEnabled=!1}var r=e(\"./SAXTreeBuilder\").SAXTreeBuilder,i=e(\"../Tokenizer\").Tokenizer,s=e(\"./TreeParser\").TreeParser;o.prototype.parse=function(e){this._tokenizer.tokenize(e);var t=this._treeBuilder.document;t&&(new s(this.contentHandler)).parse(t)},o.prototype.parseFragment=function(e,t){this._treeBuilder.setFragmentContext(t),this._tokenizer.tokenize(e);var n=this._treeBuilder.getFragment();n&&(new s(this.contentHandler)).parse(n)},Object.defineProperty(o.prototype,\"scriptingEnabled\",{get:function(){return this._scriptingEnabled},set:function(e){this._scriptingEnabled=e,this._treeBuilder.scriptingEnabled=e}}),Object.defineProperty(o.prototype,\"errorHandler\",{get:function(){return this._errorHandler},set:function(e){this._errorHandler=e,this._treeBuilder.errorHandler=e}}),n.SAXParser=o},{\"../Tokenizer\":5,\"./SAXTreeBuilder\":10,\"./TreeParser\":11}],10:[function(e,t,n){function s(){i.call(this)}function o(e,t){for(var n=0;n<e.attributes.length;n++){var r=e.attributes[n];if(r.nodeName===t)return r.nodeValue}}function a(e){e?(this.columnNumber=e.columnNumber,this.lineNumber=e.lineNumber):(this.columnNumber=-1,this.lineNumber=-1),this.parentNode=null,this.nextSibling=null,this.firstChild=null}function f(e){a.call(this,e),this.lastChild=null,this._endLocator=null}function l(e){f.call(this,e),this.nodeType=u.DOCUMENT}function c(){f.call(this,new Locator),this.nodeType=u.DOCUMENT_FRAGMENT}function h(e,t,n,r,i,s){f.call(this,e),this.uri=t,this.localName=n,this.qName=r,this.attributes=i,this.prefixMappings=s,this.nodeType=u.ELEMENT}function p(e,t){a.call(this,e),this.data=t,this.nodeType=u.CHARACTERS}function d(e,t){a.call(this,e),this.data=t,this.nodeType=u.IGNORABLE_WHITESPACE}function v(e,t){a.call(this,e),this.data=t,this.nodeType=u.COMMENT}function m(e){f.call(this,e),this.nodeType=u.CDATA}function g(e){f.call(this),this.name=e,this.nodeType=u.ENTITY}function y(e){a.call(this),this.name=e,this.nodeType=u.SKIPPED_ENTITY}function b(e,t){a.call(this),this.target=e,this.data=t}function w(e,t,n){f.call(this),this.name=e,this.publicIdentifier=t,this.systemIdentifier=n,this.nodeType=u.DTD}var r=e(\"util\"),i=e(\"../TreeBuilder\").TreeBuilder;r.inherits(s,i),s.prototype.start=function(e){this.document=new l(this.tokenizer)},s.prototype.end=function(){this.document.endLocator=this.tokenizer},s.prototype.insertDoctype=function(e,t,n){var r=new w(this.tokenizer,e,t,n);r.endLocator=this.tokenizer,this.document.appendChild(r)},s.prototype.createElement=function(e,t,n){var r=new h(this.tokenizer,e,t,t,n||[]);return r},s.prototype.insertComment=function(e,t){t||(t=this.currentStackItem());var n=new v(this.tokenizer,e);t.appendChild(n)},s.prototype.appendCharacters=function(e,t){var n=new p(this.tokenizer,t);e.appendChild(n)},s.prototype.insertText=function(e){if(this.redirectAttachToFosterParent&&this.openElements.top.isFosterParenting()){var t=this.openElements.findIndex(\"table\"),n=this.openElements.item(t),r=n.node;if(t===0)return this.appendCharacters(r,e);var i=new p(this.tokenizer,e),s=r.parentNode;if(s){s.insertBetween(i,r.previousSibling,r);return}var o=this.openElements.item(t-1).node;o.appendChild(i);return}this.appendCharacters(this.currentStackItem().node,e)},s.prototype.attachNode=function(e,t){t.appendChild(e)},s.prototype.attachNodeToFosterParent=function(e,t,n){var r=t.parentNode;r?r.insertBetween(e,t.previousSibling,t):n.appendChild(e)},s.prototype.detachFromParent=function(e){e.detach()},s.prototype.reparentChildren=function(e,t){t.appendChildren(e.firstChild)},s.prototype.getFragment=function(){var e=new c;return this.reparentChildren(this.openElements.rootNode,e),e},s.prototype.addAttributesToElement=function(e,t){for(var n=0;n<t.length;n++){var r=t[n];o(e,r.nodeName)||e.attributes.push(r)}};var u={CDATA:1,CHARACTERS:2,COMMENT:3,DOCUMENT:4,DOCUMENT_FRAGMENT:5,DTD:6,ELEMENT:7,ENTITY:8,IGNORABLE_WHITESPACE:9,PROCESSING_INSTRUCTION:10,SKIPPED_ENTITY:11};a.prototype.visit=function(e){throw new Error(\"Not Implemented\")},a.prototype.revisit=function(e){return},a.prototype.detach=function(){this.parentNode!==null&&(this.parentNode.removeChild(this),this.parentNode=null)},Object.defineProperty(a.prototype,\"previousSibling\",{get:function(){var e=null,t=this.parentNode.firstChild;for(;;){if(this==t)return e;e=t,t=t.nextSibling}}}),f.prototype=Object.create(a.prototype),f.prototype.insertBefore=function(e,t){if(!t)return this.appendChild(e);e.detach(),e.parentNode=this;if(this.firstChild==t)e.nextSibling=t,this.firstChild=e;else{var n=this.firstChild,r=this.firstChild.nextSibling;while(r!=t)n=r,r=r.nextSibling;n.nextSibling=e,e.nextSibling=r}return e},f.prototype.insertBetween=function(e,t,n){return n?(e.detach(),e.parentNode=this,e.nextSibling=n,t?t.nextSibling=e:firstChild=e,e):this.appendChild(e)},f.prototype.appendChild=function(e){return e.detach(),e.parentNode=this,this.firstChild?this.lastChild.nextSibling=e:this.firstChild=e,this.lastChild=e,e},f.prototype.appendChildren=function(e){var t=e.firstChild;if(!t)return;var n=e;this.firstChild?this.lastChild.nextSibling=t:this.firstChild=t,this.lastChild=n.lastChild;do t.parentNode=this;while(t=t.nextSibling);n.firstChild=null,n.lastChild=null},f.prototype.removeChild=function(e){if(this.firstChild==e)this.firstChild=e.nextSibling,this.lastChild==e&&(this.lastChild=null);else{var t=this.firstChild,n=this.firstChild.nextSibling;while(n!=e)t=n,n=n.nextSibling;t.nextSibling=e.nextSibling,this.lastChild==e&&(this.lastChild=t)}return e.parentNode=null,e},Object.defineProperty(f.prototype,\"endLocator\",{get:function(){return this._endLocator},set:function(e){this._endLocator={lineNumber:e.lineNumber,columnNumber:e.columnNumber}}}),l.prototype=Object.create(f.prototype),l.prototype.visit=function(e){e.startDocument(this)},l.prototype.revisit=function(e){e.endDocument(this.endLocator)},c.prototype=Object.create(f.prototype),c.prototype.visit=function(e){},h.prototype=Object.create(f.prototype),h.prototype.visit=function(e){if(this.prefixMappings)for(var t in prefixMappings){var n=prefixMappings[t];e.startPrefixMapping(n.getPrefix(),n.getUri(),this)}e.startElement(this.uri,this.localName,this.qName,this.attributes,this)},h.prototype.revisit=function(e){e.endElement(this.uri,this.localName,this.qName,this.endLocator);if(this.prefixMappings)for(var t in prefixMappings){var n=prefixMappings[t];e.endPrefixMapping(n.getPrefix(),this.endLocator)}},p.prototype=Object.create(a.prototype),p.prototype.visit=function(e){e.characters(this.data,0,this.data.length,this)},d.prototype=Object.create(a.prototype),d.prototype.visit=function(e){e.ignorableWhitespace(this.data,0,this.data.length,this)},v.prototype=Object.create(a.prototype),v.prototype.visit=function(e){e.comment(this.data,0,this.data.length,this)},m.prototype=Object.create(f.prototype),m.prototype.visit=function(e){e.startCDATA(this)},m.prototype.revisit=function(e){e.endCDATA(this.endLocator)},g.prototype=Object.create(f.prototype),g.prototype.visit=function(e){e.startEntity(this.name,this)},g.prototype.revisit=function(e){e.endEntity(this.name)},y.prototype=Object.create(a.prototype),y.prototype.visit=function(e){e.skippedEntity(this.name,this)},b.prototype=Object.create(a.prototype),b.prototype.visit=function(e){e.processingInstruction(this.target,this.data,this)},b.prototype.getNodeType=function(){return u.PROCESSING_INSTRUCTION},w.prototype=Object.create(f.prototype),w.prototype.visit=function(e){e.startDTD(this.name,this.publicIdentifier,this.systemIdentifier,this)},w.prototype.revisit=function(e){e.endDTD()},n.SAXTreeBuilder=s},{\"../TreeBuilder\":6,util:20}],11:[function(e,t,n){function r(e,t){this.contentHandler,this.lexicalHandler,this.locatorDelegate;if(!e)throw new IllegalArgumentException(\"contentHandler was null.\");this.contentHandler=e,t?this.lexicalHandler=t:this.lexicalHandler=new i}function i(){}r.prototype.parse=function(e){this.contentHandler.documentLocator=this;var t=e,n;for(;;){t.visit(this);if(n=t.firstChild){t=n;continue}for(;;){t.revisit(this);if(t==e)return;if(n=t.nextSibling){t=n;break}t=t.parentNode}}},r.prototype.characters=function(e,t,n,r){this.locatorDelegate=r,this.contentHandler.characters(e,t,n)},r.prototype.endDocument=function(e){this.locatorDelegate=e,this.contentHandler.endDocument()},r.prototype.endElement=function(e,t,n,r){this.locatorDelegate=r,this.contentHandler.endElement(e,t,n)},r.prototype.endPrefixMapping=function(e,t){this.locatorDelegate=t,this.contentHandler.endPrefixMapping(e)},r.prototype.ignorableWhitespace=function(e,t,n,r){this.locatorDelegate=r,this.contentHandler.ignorableWhitespace(e,t,n)},r.prototype.processingInstruction=function(e,t,n){this.locatorDelegate=n,this.contentHandler.processingInstruction(e,t)},r.prototype.skippedEntity=function(e,t){this.locatorDelegate=t,this.contentHandler.skippedEntity(e)},r.prototype.startDocument=function(e){this.locatorDelegate=e,this.contentHandler.startDocument()},r.prototype.startElement=function(e,t,n,r,i){this.locatorDelegate=i,this.contentHandler.startElement(e,t,n,r)},r.prototype.startPrefixMapping=function(e,t,n){this.locatorDelegate=n,this.contentHandler.startPrefixMapping(e,t)},r.prototype.comment=function(e,t,n,r){this.locatorDelegate=r,this.lexicalHandler.comment(e,t,n)},r.prototype.endCDATA=function(e){this.locatorDelegate=e,this.lexicalHandler.endCDATA()},r.prototype.endDTD=function(e){this.locatorDelegate=e,this.lexicalHandler.endDTD()},r.prototype.endEntity=function(e,t){this.locatorDelegate=t,this.lexicalHandler.endEntity(e)},r.prototype.startCDATA=function(e){this.locatorDelegate=e,this.lexicalHandler.startCDATA()},r.prototype.startDTD=function(e,t,n,r){this.locatorDelegate=r,this.lexicalHandler.startDTD(e,t,n)},r.prototype.startEntity=function(e,t){this.locatorDelegate=t,this.lexicalHandler.startEntity(e)},Object.defineProperty(r.prototype,\"columnNumber\",{get:function(){return this.locatorDelegate?this.locatorDelegate.columnNumber:-1}}),Object.defineProperty(r.prototype,\"lineNumber\",{get:function(){return this.locatorDelegate?this.locatorDelegate.lineNumber:-1}}),i.prototype.comment=function(){},i.prototype.endCDATA=function(){},i.prototype.endDTD=function(){},i.prototype.endEntity=function(){},i.prototype.startCDATA=function(){},i.prototype.startDTD=function(){},i.prototype.startEntity=function(){},n.TreeParser=r},{}],12:[function(e,t,n){t.exports={\"Aacute;\":\"\\u00c1\",Aacute:\"\\u00c1\",\"aacute;\":\"\\u00e1\",aacute:\"\\u00e1\",\"Abreve;\":\"\\u0102\",\"abreve;\":\"\\u0103\",\"ac;\":\"\\u223e\",\"acd;\":\"\\u223f\",\"acE;\":\"\\u223e\\u0333\",\"Acirc;\":\"\\u00c2\",Acirc:\"\\u00c2\",\"acirc;\":\"\\u00e2\",acirc:\"\\u00e2\",\"acute;\":\"\\u00b4\",acute:\"\\u00b4\",\"Acy;\":\"\\u0410\",\"acy;\":\"\\u0430\",\"AElig;\":\"\\u00c6\",AElig:\"\\u00c6\",\"aelig;\":\"\\u00e6\",aelig:\"\\u00e6\",\"af;\":\"\\u2061\",\"Afr;\":\"\\ud835\\udd04\",\"afr;\":\"\\ud835\\udd1e\",\"Agrave;\":\"\\u00c0\",Agrave:\"\\u00c0\",\"agrave;\":\"\\u00e0\",agrave:\"\\u00e0\",\"alefsym;\":\"\\u2135\",\"aleph;\":\"\\u2135\",\"Alpha;\":\"\\u0391\",\"alpha;\":\"\\u03b1\",\"Amacr;\":\"\\u0100\",\"amacr;\":\"\\u0101\",\"amalg;\":\"\\u2a3f\",\"amp;\":\"&\",amp:\"&\",\"AMP;\":\"&\",AMP:\"&\",\"andand;\":\"\\u2a55\",\"And;\":\"\\u2a53\",\"and;\":\"\\u2227\",\"andd;\":\"\\u2a5c\",\"andslope;\":\"\\u2a58\",\"andv;\":\"\\u2a5a\",\"ang;\":\"\\u2220\",\"ange;\":\"\\u29a4\",\"angle;\":\"\\u2220\",\"angmsdaa;\":\"\\u29a8\",\"angmsdab;\":\"\\u29a9\",\"angmsdac;\":\"\\u29aa\",\"angmsdad;\":\"\\u29ab\",\"angmsdae;\":\"\\u29ac\",\"angmsdaf;\":\"\\u29ad\",\"angmsdag;\":\"\\u29ae\",\"angmsdah;\":\"\\u29af\",\"angmsd;\":\"\\u2221\",\"angrt;\":\"\\u221f\",\"angrtvb;\":\"\\u22be\",\"angrtvbd;\":\"\\u299d\",\"angsph;\":\"\\u2222\",\"angst;\":\"\\u00c5\",\"angzarr;\":\"\\u237c\",\"Aogon;\":\"\\u0104\",\"aogon;\":\"\\u0105\",\"Aopf;\":\"\\ud835\\udd38\",\"aopf;\":\"\\ud835\\udd52\",\"apacir;\":\"\\u2a6f\",\"ap;\":\"\\u2248\",\"apE;\":\"\\u2a70\",\"ape;\":\"\\u224a\",\"apid;\":\"\\u224b\",\"apos;\":\"'\",\"ApplyFunction;\":\"\\u2061\",\"approx;\":\"\\u2248\",\"approxeq;\":\"\\u224a\",\"Aring;\":\"\\u00c5\",Aring:\"\\u00c5\",\"aring;\":\"\\u00e5\",aring:\"\\u00e5\",\"Ascr;\":\"\\ud835\\udc9c\",\"ascr;\":\"\\ud835\\udcb6\",\"Assign;\":\"\\u2254\",\"ast;\":\"*\",\"asymp;\":\"\\u2248\",\"asympeq;\":\"\\u224d\",\"Atilde;\":\"\\u00c3\",Atilde:\"\\u00c3\",\"atilde;\":\"\\u00e3\",atilde:\"\\u00e3\",\"Auml;\":\"\\u00c4\",Auml:\"\\u00c4\",\"auml;\":\"\\u00e4\",auml:\"\\u00e4\",\"awconint;\":\"\\u2233\",\"awint;\":\"\\u2a11\",\"backcong;\":\"\\u224c\",\"backepsilon;\":\"\\u03f6\",\"backprime;\":\"\\u2035\",\"backsim;\":\"\\u223d\",\"backsimeq;\":\"\\u22cd\",\"Backslash;\":\"\\u2216\",\"Barv;\":\"\\u2ae7\",\"barvee;\":\"\\u22bd\",\"barwed;\":\"\\u2305\",\"Barwed;\":\"\\u2306\",\"barwedge;\":\"\\u2305\",\"bbrk;\":\"\\u23b5\",\"bbrktbrk;\":\"\\u23b6\",\"bcong;\":\"\\u224c\",\"Bcy;\":\"\\u0411\",\"bcy;\":\"\\u0431\",\"bdquo;\":\"\\u201e\",\"becaus;\":\"\\u2235\",\"because;\":\"\\u2235\",\"Because;\":\"\\u2235\",\"bemptyv;\":\"\\u29b0\",\"bepsi;\":\"\\u03f6\",\"bernou;\":\"\\u212c\",\"Bernoullis;\":\"\\u212c\",\"Beta;\":\"\\u0392\",\"beta;\":\"\\u03b2\",\"beth;\":\"\\u2136\",\"between;\":\"\\u226c\",\"Bfr;\":\"\\ud835\\udd05\",\"bfr;\":\"\\ud835\\udd1f\",\"bigcap;\":\"\\u22c2\",\"bigcirc;\":\"\\u25ef\",\"bigcup;\":\"\\u22c3\",\"bigodot;\":\"\\u2a00\",\"bigoplus;\":\"\\u2a01\",\"bigotimes;\":\"\\u2a02\",\"bigsqcup;\":\"\\u2a06\",\"bigstar;\":\"\\u2605\",\"bigtriangledown;\":\"\\u25bd\",\"bigtriangleup;\":\"\\u25b3\",\"biguplus;\":\"\\u2a04\",\"bigvee;\":\"\\u22c1\",\"bigwedge;\":\"\\u22c0\",\"bkarow;\":\"\\u290d\",\"blacklozenge;\":\"\\u29eb\",\"blacksquare;\":\"\\u25aa\",\"blacktriangle;\":\"\\u25b4\",\"blacktriangledown;\":\"\\u25be\",\"blacktriangleleft;\":\"\\u25c2\",\"blacktriangleright;\":\"\\u25b8\",\"blank;\":\"\\u2423\",\"blk12;\":\"\\u2592\",\"blk14;\":\"\\u2591\",\"blk34;\":\"\\u2593\",\"block;\":\"\\u2588\",\"bne;\":\"=\\u20e5\",\"bnequiv;\":\"\\u2261\\u20e5\",\"bNot;\":\"\\u2aed\",\"bnot;\":\"\\u2310\",\"Bopf;\":\"\\ud835\\udd39\",\"bopf;\":\"\\ud835\\udd53\",\"bot;\":\"\\u22a5\",\"bottom;\":\"\\u22a5\",\"bowtie;\":\"\\u22c8\",\"boxbox;\":\"\\u29c9\",\"boxdl;\":\"\\u2510\",\"boxdL;\":\"\\u2555\",\"boxDl;\":\"\\u2556\",\"boxDL;\":\"\\u2557\",\"boxdr;\":\"\\u250c\",\"boxdR;\":\"\\u2552\",\"boxDr;\":\"\\u2553\",\"boxDR;\":\"\\u2554\",\"boxh;\":\"\\u2500\",\"boxH;\":\"\\u2550\",\"boxhd;\":\"\\u252c\",\"boxHd;\":\"\\u2564\",\"boxhD;\":\"\\u2565\",\"boxHD;\":\"\\u2566\",\"boxhu;\":\"\\u2534\",\"boxHu;\":\"\\u2567\",\"boxhU;\":\"\\u2568\",\"boxHU;\":\"\\u2569\",\"boxminus;\":\"\\u229f\",\"boxplus;\":\"\\u229e\",\"boxtimes;\":\"\\u22a0\",\"boxul;\":\"\\u2518\",\"boxuL;\":\"\\u255b\",\"boxUl;\":\"\\u255c\",\"boxUL;\":\"\\u255d\",\"boxur;\":\"\\u2514\",\"boxuR;\":\"\\u2558\",\"boxUr;\":\"\\u2559\",\"boxUR;\":\"\\u255a\",\"boxv;\":\"\\u2502\",\"boxV;\":\"\\u2551\",\"boxvh;\":\"\\u253c\",\"boxvH;\":\"\\u256a\",\"boxVh;\":\"\\u256b\",\"boxVH;\":\"\\u256c\",\"boxvl;\":\"\\u2524\",\"boxvL;\":\"\\u2561\",\"boxVl;\":\"\\u2562\",\"boxVL;\":\"\\u2563\",\"boxvr;\":\"\\u251c\",\"boxvR;\":\"\\u255e\",\"boxVr;\":\"\\u255f\",\"boxVR;\":\"\\u2560\",\"bprime;\":\"\\u2035\",\"breve;\":\"\\u02d8\",\"Breve;\":\"\\u02d8\",\"brvbar;\":\"\\u00a6\",brvbar:\"\\u00a6\",\"bscr;\":\"\\ud835\\udcb7\",\"Bscr;\":\"\\u212c\",\"bsemi;\":\"\\u204f\",\"bsim;\":\"\\u223d\",\"bsime;\":\"\\u22cd\",\"bsolb;\":\"\\u29c5\",\"bsol;\":\"\\\\\",\"bsolhsub;\":\"\\u27c8\",\"bull;\":\"\\u2022\",\"bullet;\":\"\\u2022\",\"bump;\":\"\\u224e\",\"bumpE;\":\"\\u2aae\",\"bumpe;\":\"\\u224f\",\"Bumpeq;\":\"\\u224e\",\"bumpeq;\":\"\\u224f\",\"Cacute;\":\"\\u0106\",\"cacute;\":\"\\u0107\",\"capand;\":\"\\u2a44\",\"capbrcup;\":\"\\u2a49\",\"capcap;\":\"\\u2a4b\",\"cap;\":\"\\u2229\",\"Cap;\":\"\\u22d2\",\"capcup;\":\"\\u2a47\",\"capdot;\":\"\\u2a40\",\"CapitalDifferentialD;\":\"\\u2145\",\"caps;\":\"\\u2229\\ufe00\",\"caret;\":\"\\u2041\",\"caron;\":\"\\u02c7\",\"Cayleys;\":\"\\u212d\",\"ccaps;\":\"\\u2a4d\",\"Ccaron;\":\"\\u010c\",\"ccaron;\":\"\\u010d\",\"Ccedil;\":\"\\u00c7\",Ccedil:\"\\u00c7\",\"ccedil;\":\"\\u00e7\",ccedil:\"\\u00e7\",\"Ccirc;\":\"\\u0108\",\"ccirc;\":\"\\u0109\",\"Cconint;\":\"\\u2230\",\"ccups;\":\"\\u2a4c\",\"ccupssm;\":\"\\u2a50\",\"Cdot;\":\"\\u010a\",\"cdot;\":\"\\u010b\",\"cedil;\":\"\\u00b8\",cedil:\"\\u00b8\",\"Cedilla;\":\"\\u00b8\",\"cemptyv;\":\"\\u29b2\",\"cent;\":\"\\u00a2\",cent:\"\\u00a2\",\"centerdot;\":\"\\u00b7\",\"CenterDot;\":\"\\u00b7\",\"cfr;\":\"\\ud835\\udd20\",\"Cfr;\":\"\\u212d\",\"CHcy;\":\"\\u0427\",\"chcy;\":\"\\u0447\",\"check;\":\"\\u2713\",\"checkmark;\":\"\\u2713\",\"Chi;\":\"\\u03a7\",\"chi;\":\"\\u03c7\",\"circ;\":\"\\u02c6\",\"circeq;\":\"\\u2257\",\"circlearrowleft;\":\"\\u21ba\",\"circlearrowright;\":\"\\u21bb\",\"circledast;\":\"\\u229b\",\"circledcirc;\":\"\\u229a\",\"circleddash;\":\"\\u229d\",\"CircleDot;\":\"\\u2299\",\"circledR;\":\"\\u00ae\",\"circledS;\":\"\\u24c8\",\"CircleMinus;\":\"\\u2296\",\"CirclePlus;\":\"\\u2295\",\"CircleTimes;\":\"\\u2297\",\"cir;\":\"\\u25cb\",\"cirE;\":\"\\u29c3\",\"cire;\":\"\\u2257\",\"cirfnint;\":\"\\u2a10\",\"cirmid;\":\"\\u2aef\",\"cirscir;\":\"\\u29c2\",\"ClockwiseContourIntegral;\":\"\\u2232\",\"CloseCurlyDoubleQuote;\":\"\\u201d\",\"CloseCurlyQuote;\":\"\\u2019\",\"clubs;\":\"\\u2663\",\"clubsuit;\":\"\\u2663\",\"colon;\":\":\",\"Colon;\":\"\\u2237\",\"Colone;\":\"\\u2a74\",\"colone;\":\"\\u2254\",\"coloneq;\":\"\\u2254\",\"comma;\":\",\",\"commat;\":\"@\",\"comp;\":\"\\u2201\",\"compfn;\":\"\\u2218\",\"complement;\":\"\\u2201\",\"complexes;\":\"\\u2102\",\"cong;\":\"\\u2245\",\"congdot;\":\"\\u2a6d\",\"Congruent;\":\"\\u2261\",\"conint;\":\"\\u222e\",\"Conint;\":\"\\u222f\",\"ContourIntegral;\":\"\\u222e\",\"copf;\":\"\\ud835\\udd54\",\"Copf;\":\"\\u2102\",\"coprod;\":\"\\u2210\",\"Coproduct;\":\"\\u2210\",\"copy;\":\"\\u00a9\",copy:\"\\u00a9\",\"COPY;\":\"\\u00a9\",COPY:\"\\u00a9\",\"copysr;\":\"\\u2117\",\"CounterClockwiseContourIntegral;\":\"\\u2233\",\"crarr;\":\"\\u21b5\",\"cross;\":\"\\u2717\",\"Cross;\":\"\\u2a2f\",\"Cscr;\":\"\\ud835\\udc9e\",\"cscr;\":\"\\ud835\\udcb8\",\"csub;\":\"\\u2acf\",\"csube;\":\"\\u2ad1\",\"csup;\":\"\\u2ad0\",\"csupe;\":\"\\u2ad2\",\"ctdot;\":\"\\u22ef\",\"cudarrl;\":\"\\u2938\",\"cudarrr;\":\"\\u2935\",\"cuepr;\":\"\\u22de\",\"cuesc;\":\"\\u22df\",\"cularr;\":\"\\u21b6\",\"cularrp;\":\"\\u293d\",\"cupbrcap;\":\"\\u2a48\",\"cupcap;\":\"\\u2a46\",\"CupCap;\":\"\\u224d\",\"cup;\":\"\\u222a\",\"Cup;\":\"\\u22d3\",\"cupcup;\":\"\\u2a4a\",\"cupdot;\":\"\\u228d\",\"cupor;\":\"\\u2a45\",\"cups;\":\"\\u222a\\ufe00\",\"curarr;\":\"\\u21b7\",\"curarrm;\":\"\\u293c\",\"curlyeqprec;\":\"\\u22de\",\"curlyeqsucc;\":\"\\u22df\",\"curlyvee;\":\"\\u22ce\",\"curlywedge;\":\"\\u22cf\",\"curren;\":\"\\u00a4\",curren:\"\\u00a4\",\"curvearrowleft;\":\"\\u21b6\",\"curvearrowright;\":\"\\u21b7\",\"cuvee;\":\"\\u22ce\",\"cuwed;\":\"\\u22cf\",\"cwconint;\":\"\\u2232\",\"cwint;\":\"\\u2231\",\"cylcty;\":\"\\u232d\",\"dagger;\":\"\\u2020\",\"Dagger;\":\"\\u2021\",\"daleth;\":\"\\u2138\",\"darr;\":\"\\u2193\",\"Darr;\":\"\\u21a1\",\"dArr;\":\"\\u21d3\",\"dash;\":\"\\u2010\",\"Dashv;\":\"\\u2ae4\",\"dashv;\":\"\\u22a3\",\"dbkarow;\":\"\\u290f\",\"dblac;\":\"\\u02dd\",\"Dcaron;\":\"\\u010e\",\"dcaron;\":\"\\u010f\",\"Dcy;\":\"\\u0414\",\"dcy;\":\"\\u0434\",\"ddagger;\":\"\\u2021\",\"ddarr;\":\"\\u21ca\",\"DD;\":\"\\u2145\",\"dd;\":\"\\u2146\",\"DDotrahd;\":\"\\u2911\",\"ddotseq;\":\"\\u2a77\",\"deg;\":\"\\u00b0\",deg:\"\\u00b0\",\"Del;\":\"\\u2207\",\"Delta;\":\"\\u0394\",\"delta;\":\"\\u03b4\",\"demptyv;\":\"\\u29b1\",\"dfisht;\":\"\\u297f\",\"Dfr;\":\"\\ud835\\udd07\",\"dfr;\":\"\\ud835\\udd21\",\"dHar;\":\"\\u2965\",\"dharl;\":\"\\u21c3\",\"dharr;\":\"\\u21c2\",\"DiacriticalAcute;\":\"\\u00b4\",\"DiacriticalDot;\":\"\\u02d9\",\"DiacriticalDoubleAcute;\":\"\\u02dd\",\"DiacriticalGrave;\":\"`\",\"DiacriticalTilde;\":\"\\u02dc\",\"diam;\":\"\\u22c4\",\"diamond;\":\"\\u22c4\",\"Diamond;\":\"\\u22c4\",\"diamondsuit;\":\"\\u2666\",\"diams;\":\"\\u2666\",\"die;\":\"\\u00a8\",\"DifferentialD;\":\"\\u2146\",\"digamma;\":\"\\u03dd\",\"disin;\":\"\\u22f2\",\"div;\":\"\\u00f7\",\"divide;\":\"\\u00f7\",divide:\"\\u00f7\",\"divideontimes;\":\"\\u22c7\",\"divonx;\":\"\\u22c7\",\"DJcy;\":\"\\u0402\",\"djcy;\":\"\\u0452\",\"dlcorn;\":\"\\u231e\",\"dlcrop;\":\"\\u230d\",\"dollar;\":\"$\",\"Dopf;\":\"\\ud835\\udd3b\",\"dopf;\":\"\\ud835\\udd55\",\"Dot;\":\"\\u00a8\",\"dot;\":\"\\u02d9\",\"DotDot;\":\"\\u20dc\",\"doteq;\":\"\\u2250\",\"doteqdot;\":\"\\u2251\",\"DotEqual;\":\"\\u2250\",\"dotminus;\":\"\\u2238\",\"dotplus;\":\"\\u2214\",\"dotsquare;\":\"\\u22a1\",\"doublebarwedge;\":\"\\u2306\",\"DoubleContourIntegral;\":\"\\u222f\",\"DoubleDot;\":\"\\u00a8\",\"DoubleDownArrow;\":\"\\u21d3\",\"DoubleLeftArrow;\":\"\\u21d0\",\"DoubleLeftRightArrow;\":\"\\u21d4\",\"DoubleLeftTee;\":\"\\u2ae4\",\"DoubleLongLeftArrow;\":\"\\u27f8\",\"DoubleLongLeftRightArrow;\":\"\\u27fa\",\"DoubleLongRightArrow;\":\"\\u27f9\",\"DoubleRightArrow;\":\"\\u21d2\",\"DoubleRightTee;\":\"\\u22a8\",\"DoubleUpArrow;\":\"\\u21d1\",\"DoubleUpDownArrow;\":\"\\u21d5\",\"DoubleVerticalBar;\":\"\\u2225\",\"DownArrowBar;\":\"\\u2913\",\"downarrow;\":\"\\u2193\",\"DownArrow;\":\"\\u2193\",\"Downarrow;\":\"\\u21d3\",\"DownArrowUpArrow;\":\"\\u21f5\",\"DownBreve;\":\"\\u0311\",\"downdownarrows;\":\"\\u21ca\",\"downharpoonleft;\":\"\\u21c3\",\"downharpoonright;\":\"\\u21c2\",\"DownLeftRightVector;\":\"\\u2950\",\"DownLeftTeeVector;\":\"\\u295e\",\"DownLeftVectorBar;\":\"\\u2956\",\"DownLeftVector;\":\"\\u21bd\",\"DownRightTeeVector;\":\"\\u295f\",\"DownRightVectorBar;\":\"\\u2957\",\"DownRightVector;\":\"\\u21c1\",\"DownTeeArrow;\":\"\\u21a7\",\"DownTee;\":\"\\u22a4\",\"drbkarow;\":\"\\u2910\",\"drcorn;\":\"\\u231f\",\"drcrop;\":\"\\u230c\",\"Dscr;\":\"\\ud835\\udc9f\",\"dscr;\":\"\\ud835\\udcb9\",\"DScy;\":\"\\u0405\",\"dscy;\":\"\\u0455\",\"dsol;\":\"\\u29f6\",\"Dstrok;\":\"\\u0110\",\"dstrok;\":\"\\u0111\",\"dtdot;\":\"\\u22f1\",\"dtri;\":\"\\u25bf\",\"dtrif;\":\"\\u25be\",\"duarr;\":\"\\u21f5\",\"duhar;\":\"\\u296f\",\"dwangle;\":\"\\u29a6\",\"DZcy;\":\"\\u040f\",\"dzcy;\":\"\\u045f\",\"dzigrarr;\":\"\\u27ff\",\"Eacute;\":\"\\u00c9\",Eacute:\"\\u00c9\",\"eacute;\":\"\\u00e9\",eacute:\"\\u00e9\",\"easter;\":\"\\u2a6e\",\"Ecaron;\":\"\\u011a\",\"ecaron;\":\"\\u011b\",\"Ecirc;\":\"\\u00ca\",Ecirc:\"\\u00ca\",\"ecirc;\":\"\\u00ea\",ecirc:\"\\u00ea\",\"ecir;\":\"\\u2256\",\"ecolon;\":\"\\u2255\",\"Ecy;\":\"\\u042d\",\"ecy;\":\"\\u044d\",\"eDDot;\":\"\\u2a77\",\"Edot;\":\"\\u0116\",\"edot;\":\"\\u0117\",\"eDot;\":\"\\u2251\",\"ee;\":\"\\u2147\",\"efDot;\":\"\\u2252\",\"Efr;\":\"\\ud835\\udd08\",\"efr;\":\"\\ud835\\udd22\",\"eg;\":\"\\u2a9a\",\"Egrave;\":\"\\u00c8\",Egrave:\"\\u00c8\",\"egrave;\":\"\\u00e8\",egrave:\"\\u00e8\",\"egs;\":\"\\u2a96\",\"egsdot;\":\"\\u2a98\",\"el;\":\"\\u2a99\",\"Element;\":\"\\u2208\",\"elinters;\":\"\\u23e7\",\"ell;\":\"\\u2113\",\"els;\":\"\\u2a95\",\"elsdot;\":\"\\u2a97\",\"Emacr;\":\"\\u0112\",\"emacr;\":\"\\u0113\",\"empty;\":\"\\u2205\",\"emptyset;\":\"\\u2205\",\"EmptySmallSquare;\":\"\\u25fb\",\"emptyv;\":\"\\u2205\",\"EmptyVerySmallSquare;\":\"\\u25ab\",\"emsp13;\":\"\\u2004\",\"emsp14;\":\"\\u2005\",\"emsp;\":\"\\u2003\",\"ENG;\":\"\\u014a\",\"eng;\":\"\\u014b\",\"ensp;\":\"\\u2002\",\"Eogon;\":\"\\u0118\",\"eogon;\":\"\\u0119\",\"Eopf;\":\"\\ud835\\udd3c\",\"eopf;\":\"\\ud835\\udd56\",\"epar;\":\"\\u22d5\",\"eparsl;\":\"\\u29e3\",\"eplus;\":\"\\u2a71\",\"epsi;\":\"\\u03b5\",\"Epsilon;\":\"\\u0395\",\"epsilon;\":\"\\u03b5\",\"epsiv;\":\"\\u03f5\",\"eqcirc;\":\"\\u2256\",\"eqcolon;\":\"\\u2255\",\"eqsim;\":\"\\u2242\",\"eqslantgtr;\":\"\\u2a96\",\"eqslantless;\":\"\\u2a95\",\"Equal;\":\"\\u2a75\",\"equals;\":\"=\",\"EqualTilde;\":\"\\u2242\",\"equest;\":\"\\u225f\",\"Equilibrium;\":\"\\u21cc\",\"equiv;\":\"\\u2261\",\"equivDD;\":\"\\u2a78\",\"eqvparsl;\":\"\\u29e5\",\"erarr;\":\"\\u2971\",\"erDot;\":\"\\u2253\",\"escr;\":\"\\u212f\",\"Escr;\":\"\\u2130\",\"esdot;\":\"\\u2250\",\"Esim;\":\"\\u2a73\",\"esim;\":\"\\u2242\",\"Eta;\":\"\\u0397\",\"eta;\":\"\\u03b7\",\"ETH;\":\"\\u00d0\",ETH:\"\\u00d0\",\"eth;\":\"\\u00f0\",eth:\"\\u00f0\",\"Euml;\":\"\\u00cb\",Euml:\"\\u00cb\",\"euml;\":\"\\u00eb\",euml:\"\\u00eb\",\"euro;\":\"\\u20ac\",\"excl;\":\"!\",\"exist;\":\"\\u2203\",\"Exists;\":\"\\u2203\",\"expectation;\":\"\\u2130\",\"exponentiale;\":\"\\u2147\",\"ExponentialE;\":\"\\u2147\",\"fallingdotseq;\":\"\\u2252\",\"Fcy;\":\"\\u0424\",\"fcy;\":\"\\u0444\",\"female;\":\"\\u2640\",\"ffilig;\":\"\\ufb03\",\"fflig;\":\"\\ufb00\",\"ffllig;\":\"\\ufb04\",\"Ffr;\":\"\\ud835\\udd09\",\"ffr;\":\"\\ud835\\udd23\",\"filig;\":\"\\ufb01\",\"FilledSmallSquare;\":\"\\u25fc\",\"FilledVerySmallSquare;\":\"\\u25aa\",\"fjlig;\":\"fj\",\"flat;\":\"\\u266d\",\"fllig;\":\"\\ufb02\",\"fltns;\":\"\\u25b1\",\"fnof;\":\"\\u0192\",\"Fopf;\":\"\\ud835\\udd3d\",\"fopf;\":\"\\ud835\\udd57\",\"forall;\":\"\\u2200\",\"ForAll;\":\"\\u2200\",\"fork;\":\"\\u22d4\",\"forkv;\":\"\\u2ad9\",\"Fouriertrf;\":\"\\u2131\",\"fpartint;\":\"\\u2a0d\",\"frac12;\":\"\\u00bd\",frac12:\"\\u00bd\",\"frac13;\":\"\\u2153\",\"frac14;\":\"\\u00bc\",frac14:\"\\u00bc\",\"frac15;\":\"\\u2155\",\"frac16;\":\"\\u2159\",\"frac18;\":\"\\u215b\",\"frac23;\":\"\\u2154\",\"frac25;\":\"\\u2156\",\"frac34;\":\"\\u00be\",frac34:\"\\u00be\",\"frac35;\":\"\\u2157\",\"frac38;\":\"\\u215c\",\"frac45;\":\"\\u2158\",\"frac56;\":\"\\u215a\",\"frac58;\":\"\\u215d\",\"frac78;\":\"\\u215e\",\"frasl;\":\"\\u2044\",\"frown;\":\"\\u2322\",\"fscr;\":\"\\ud835\\udcbb\",\"Fscr;\":\"\\u2131\",\"gacute;\":\"\\u01f5\",\"Gamma;\":\"\\u0393\",\"gamma;\":\"\\u03b3\",\"Gammad;\":\"\\u03dc\",\"gammad;\":\"\\u03dd\",\"gap;\":\"\\u2a86\",\"Gbreve;\":\"\\u011e\",\"gbreve;\":\"\\u011f\",\"Gcedil;\":\"\\u0122\",\"Gcirc;\":\"\\u011c\",\"gcirc;\":\"\\u011d\",\"Gcy;\":\"\\u0413\",\"gcy;\":\"\\u0433\",\"Gdot;\":\"\\u0120\",\"gdot;\":\"\\u0121\",\"ge;\":\"\\u2265\",\"gE;\":\"\\u2267\",\"gEl;\":\"\\u2a8c\",\"gel;\":\"\\u22db\",\"geq;\":\"\\u2265\",\"geqq;\":\"\\u2267\",\"geqslant;\":\"\\u2a7e\",\"gescc;\":\"\\u2aa9\",\"ges;\":\"\\u2a7e\",\"gesdot;\":\"\\u2a80\",\"gesdoto;\":\"\\u2a82\",\"gesdotol;\":\"\\u2a84\",\"gesl;\":\"\\u22db\\ufe00\",\"gesles;\":\"\\u2a94\",\"Gfr;\":\"\\ud835\\udd0a\",\"gfr;\":\"\\ud835\\udd24\",\"gg;\":\"\\u226b\",\"Gg;\":\"\\u22d9\",\"ggg;\":\"\\u22d9\",\"gimel;\":\"\\u2137\",\"GJcy;\":\"\\u0403\",\"gjcy;\":\"\\u0453\",\"gla;\":\"\\u2aa5\",\"gl;\":\"\\u2277\",\"glE;\":\"\\u2a92\",\"glj;\":\"\\u2aa4\",\"gnap;\":\"\\u2a8a\",\"gnapprox;\":\"\\u2a8a\",\"gne;\":\"\\u2a88\",\"gnE;\":\"\\u2269\",\"gneq;\":\"\\u2a88\",\"gneqq;\":\"\\u2269\",\"gnsim;\":\"\\u22e7\",\"Gopf;\":\"\\ud835\\udd3e\",\"gopf;\":\"\\ud835\\udd58\",\"grave;\":\"`\",\"GreaterEqual;\":\"\\u2265\",\"GreaterEqualLess;\":\"\\u22db\",\"GreaterFullEqual;\":\"\\u2267\",\"GreaterGreater;\":\"\\u2aa2\",\"GreaterLess;\":\"\\u2277\",\"GreaterSlantEqual;\":\"\\u2a7e\",\"GreaterTilde;\":\"\\u2273\",\"Gscr;\":\"\\ud835\\udca2\",\"gscr;\":\"\\u210a\",\"gsim;\":\"\\u2273\",\"gsime;\":\"\\u2a8e\",\"gsiml;\":\"\\u2a90\",\"gtcc;\":\"\\u2aa7\",\"gtcir;\":\"\\u2a7a\",\"gt;\":\">\",gt:\">\",\"GT;\":\">\",GT:\">\",\"Gt;\":\"\\u226b\",\"gtdot;\":\"\\u22d7\",\"gtlPar;\":\"\\u2995\",\"gtquest;\":\"\\u2a7c\",\"gtrapprox;\":\"\\u2a86\",\"gtrarr;\":\"\\u2978\",\"gtrdot;\":\"\\u22d7\",\"gtreqless;\":\"\\u22db\",\"gtreqqless;\":\"\\u2a8c\",\"gtrless;\":\"\\u2277\",\"gtrsim;\":\"\\u2273\",\"gvertneqq;\":\"\\u2269\\ufe00\",\"gvnE;\":\"\\u2269\\ufe00\",\"Hacek;\":\"\\u02c7\",\"hairsp;\":\"\\u200a\",\"half;\":\"\\u00bd\",\"hamilt;\":\"\\u210b\",\"HARDcy;\":\"\\u042a\",\"hardcy;\":\"\\u044a\",\"harrcir;\":\"\\u2948\",\"harr;\":\"\\u2194\",\"hArr;\":\"\\u21d4\",\"harrw;\":\"\\u21ad\",\"Hat;\":\"^\",\"hbar;\":\"\\u210f\",\"Hcirc;\":\"\\u0124\",\"hcirc;\":\"\\u0125\",\"hearts;\":\"\\u2665\",\"heartsuit;\":\"\\u2665\",\"hellip;\":\"\\u2026\",\"hercon;\":\"\\u22b9\",\"hfr;\":\"\\ud835\\udd25\",\"Hfr;\":\"\\u210c\",\"HilbertSpace;\":\"\\u210b\",\"hksearow;\":\"\\u2925\",\"hkswarow;\":\"\\u2926\",\"hoarr;\":\"\\u21ff\",\"homtht;\":\"\\u223b\",\"hookleftarrow;\":\"\\u21a9\",\"hookrightarrow;\":\"\\u21aa\",\"hopf;\":\"\\ud835\\udd59\",\"Hopf;\":\"\\u210d\",\"horbar;\":\"\\u2015\",\"HorizontalLine;\":\"\\u2500\",\"hscr;\":\"\\ud835\\udcbd\",\"Hscr;\":\"\\u210b\",\"hslash;\":\"\\u210f\",\"Hstrok;\":\"\\u0126\",\"hstrok;\":\"\\u0127\",\"HumpDownHump;\":\"\\u224e\",\"HumpEqual;\":\"\\u224f\",\"hybull;\":\"\\u2043\",\"hyphen;\":\"\\u2010\",\"Iacute;\":\"\\u00cd\",Iacute:\"\\u00cd\",\"iacute;\":\"\\u00ed\",iacute:\"\\u00ed\",\"ic;\":\"\\u2063\",\"Icirc;\":\"\\u00ce\",Icirc:\"\\u00ce\",\"icirc;\":\"\\u00ee\",icirc:\"\\u00ee\",\"Icy;\":\"\\u0418\",\"icy;\":\"\\u0438\",\"Idot;\":\"\\u0130\",\"IEcy;\":\"\\u0415\",\"iecy;\":\"\\u0435\",\"iexcl;\":\"\\u00a1\",iexcl:\"\\u00a1\",\"iff;\":\"\\u21d4\",\"ifr;\":\"\\ud835\\udd26\",\"Ifr;\":\"\\u2111\",\"Igrave;\":\"\\u00cc\",Igrave:\"\\u00cc\",\"igrave;\":\"\\u00ec\",igrave:\"\\u00ec\",\"ii;\":\"\\u2148\",\"iiiint;\":\"\\u2a0c\",\"iiint;\":\"\\u222d\",\"iinfin;\":\"\\u29dc\",\"iiota;\":\"\\u2129\",\"IJlig;\":\"\\u0132\",\"ijlig;\":\"\\u0133\",\"Imacr;\":\"\\u012a\",\"imacr;\":\"\\u012b\",\"image;\":\"\\u2111\",\"ImaginaryI;\":\"\\u2148\",\"imagline;\":\"\\u2110\",\"imagpart;\":\"\\u2111\",\"imath;\":\"\\u0131\",\"Im;\":\"\\u2111\",\"imof;\":\"\\u22b7\",\"imped;\":\"\\u01b5\",\"Implies;\":\"\\u21d2\",\"incare;\":\"\\u2105\",\"in;\":\"\\u2208\",\"infin;\":\"\\u221e\",\"infintie;\":\"\\u29dd\",\"inodot;\":\"\\u0131\",\"intcal;\":\"\\u22ba\",\"int;\":\"\\u222b\",\"Int;\":\"\\u222c\",\"integers;\":\"\\u2124\",\"Integral;\":\"\\u222b\",\"intercal;\":\"\\u22ba\",\"Intersection;\":\"\\u22c2\",\"intlarhk;\":\"\\u2a17\",\"intprod;\":\"\\u2a3c\",\"InvisibleComma;\":\"\\u2063\",\"InvisibleTimes;\":\"\\u2062\",\"IOcy;\":\"\\u0401\",\"iocy;\":\"\\u0451\",\"Iogon;\":\"\\u012e\",\"iogon;\":\"\\u012f\",\"Iopf;\":\"\\ud835\\udd40\",\"iopf;\":\"\\ud835\\udd5a\",\"Iota;\":\"\\u0399\",\"iota;\":\"\\u03b9\",\"iprod;\":\"\\u2a3c\",\"iquest;\":\"\\u00bf\",iquest:\"\\u00bf\",\"iscr;\":\"\\ud835\\udcbe\",\"Iscr;\":\"\\u2110\",\"isin;\":\"\\u2208\",\"isindot;\":\"\\u22f5\",\"isinE;\":\"\\u22f9\",\"isins;\":\"\\u22f4\",\"isinsv;\":\"\\u22f3\",\"isinv;\":\"\\u2208\",\"it;\":\"\\u2062\",\"Itilde;\":\"\\u0128\",\"itilde;\":\"\\u0129\",\"Iukcy;\":\"\\u0406\",\"iukcy;\":\"\\u0456\",\"Iuml;\":\"\\u00cf\",Iuml:\"\\u00cf\",\"iuml;\":\"\\u00ef\",iuml:\"\\u00ef\",\"Jcirc;\":\"\\u0134\",\"jcirc;\":\"\\u0135\",\"Jcy;\":\"\\u0419\",\"jcy;\":\"\\u0439\",\"Jfr;\":\"\\ud835\\udd0d\",\"jfr;\":\"\\ud835\\udd27\",\"jmath;\":\"\\u0237\",\"Jopf;\":\"\\ud835\\udd41\",\"jopf;\":\"\\ud835\\udd5b\",\"Jscr;\":\"\\ud835\\udca5\",\"jscr;\":\"\\ud835\\udcbf\",\"Jsercy;\":\"\\u0408\",\"jsercy;\":\"\\u0458\",\"Jukcy;\":\"\\u0404\",\"jukcy;\":\"\\u0454\",\"Kappa;\":\"\\u039a\",\"kappa;\":\"\\u03ba\",\"kappav;\":\"\\u03f0\",\"Kcedil;\":\"\\u0136\",\"kcedil;\":\"\\u0137\",\"Kcy;\":\"\\u041a\",\"kcy;\":\"\\u043a\",\"Kfr;\":\"\\ud835\\udd0e\",\"kfr;\":\"\\ud835\\udd28\",\"kgreen;\":\"\\u0138\",\"KHcy;\":\"\\u0425\",\"khcy;\":\"\\u0445\",\"KJcy;\":\"\\u040c\",\"kjcy;\":\"\\u045c\",\"Kopf;\":\"\\ud835\\udd42\",\"kopf;\":\"\\ud835\\udd5c\",\"Kscr;\":\"\\ud835\\udca6\",\"kscr;\":\"\\ud835\\udcc0\",\"lAarr;\":\"\\u21da\",\"Lacute;\":\"\\u0139\",\"lacute;\":\"\\u013a\",\"laemptyv;\":\"\\u29b4\",\"lagran;\":\"\\u2112\",\"Lambda;\":\"\\u039b\",\"lambda;\":\"\\u03bb\",\"lang;\":\"\\u27e8\",\"Lang;\":\"\\u27ea\",\"langd;\":\"\\u2991\",\"langle;\":\"\\u27e8\",\"lap;\":\"\\u2a85\",\"Laplacetrf;\":\"\\u2112\",\"laquo;\":\"\\u00ab\",laquo:\"\\u00ab\",\"larrb;\":\"\\u21e4\",\"larrbfs;\":\"\\u291f\",\"larr;\":\"\\u2190\",\"Larr;\":\"\\u219e\",\"lArr;\":\"\\u21d0\",\"larrfs;\":\"\\u291d\",\"larrhk;\":\"\\u21a9\",\"larrlp;\":\"\\u21ab\",\"larrpl;\":\"\\u2939\",\"larrsim;\":\"\\u2973\",\"larrtl;\":\"\\u21a2\",\"latail;\":\"\\u2919\",\"lAtail;\":\"\\u291b\",\"lat;\":\"\\u2aab\",\"late;\":\"\\u2aad\",\"lates;\":\"\\u2aad\\ufe00\",\"lbarr;\":\"\\u290c\",\"lBarr;\":\"\\u290e\",\"lbbrk;\":\"\\u2772\",\"lbrace;\":\"{\",\"lbrack;\":\"[\",\"lbrke;\":\"\\u298b\",\"lbrksld;\":\"\\u298f\",\"lbrkslu;\":\"\\u298d\",\"Lcaron;\":\"\\u013d\",\"lcaron;\":\"\\u013e\",\"Lcedil;\":\"\\u013b\",\"lcedil;\":\"\\u013c\",\"lceil;\":\"\\u2308\",\"lcub;\":\"{\",\"Lcy;\":\"\\u041b\",\"lcy;\":\"\\u043b\",\"ldca;\":\"\\u2936\",\"ldquo;\":\"\\u201c\",\"ldquor;\":\"\\u201e\",\"ldrdhar;\":\"\\u2967\",\"ldrushar;\":\"\\u294b\",\"ldsh;\":\"\\u21b2\",\"le;\":\"\\u2264\",\"lE;\":\"\\u2266\",\"LeftAngleBracket;\":\"\\u27e8\",\"LeftArrowBar;\":\"\\u21e4\",\"leftarrow;\":\"\\u2190\",\"LeftArrow;\":\"\\u2190\",\"Leftarrow;\":\"\\u21d0\",\"LeftArrowRightArrow;\":\"\\u21c6\",\"leftarrowtail;\":\"\\u21a2\",\"LeftCeiling;\":\"\\u2308\",\"LeftDoubleBracket;\":\"\\u27e6\",\"LeftDownTeeVector;\":\"\\u2961\",\"LeftDownVectorBar;\":\"\\u2959\",\"LeftDownVector;\":\"\\u21c3\",\"LeftFloor;\":\"\\u230a\",\"leftharpoondown;\":\"\\u21bd\",\"leftharpoonup;\":\"\\u21bc\",\"leftleftarrows;\":\"\\u21c7\",\"leftrightarrow;\":\"\\u2194\",\"LeftRightArrow;\":\"\\u2194\",\"Leftrightarrow;\":\"\\u21d4\",\"leftrightarrows;\":\"\\u21c6\",\"leftrightharpoons;\":\"\\u21cb\",\"leftrightsquigarrow;\":\"\\u21ad\",\"LeftRightVector;\":\"\\u294e\",\"LeftTeeArrow;\":\"\\u21a4\",\"LeftTee;\":\"\\u22a3\",\"LeftTeeVector;\":\"\\u295a\",\"leftthreetimes;\":\"\\u22cb\",\"LeftTriangleBar;\":\"\\u29cf\",\"LeftTriangle;\":\"\\u22b2\",\"LeftTriangleEqual;\":\"\\u22b4\",\"LeftUpDownVector;\":\"\\u2951\",\"LeftUpTeeVector;\":\"\\u2960\",\"LeftUpVectorBar;\":\"\\u2958\",\"LeftUpVector;\":\"\\u21bf\",\"LeftVectorBar;\":\"\\u2952\",\"LeftVector;\":\"\\u21bc\",\"lEg;\":\"\\u2a8b\",\"leg;\":\"\\u22da\",\"leq;\":\"\\u2264\",\"leqq;\":\"\\u2266\",\"leqslant;\":\"\\u2a7d\",\"lescc;\":\"\\u2aa8\",\"les;\":\"\\u2a7d\",\"lesdot;\":\"\\u2a7f\",\"lesdoto;\":\"\\u2a81\",\"lesdotor;\":\"\\u2a83\",\"lesg;\":\"\\u22da\\ufe00\",\"lesges;\":\"\\u2a93\",\"lessapprox;\":\"\\u2a85\",\"lessdot;\":\"\\u22d6\",\"lesseqgtr;\":\"\\u22da\",\"lesseqqgtr;\":\"\\u2a8b\",\"LessEqualGreater;\":\"\\u22da\",\"LessFullEqual;\":\"\\u2266\",\"LessGreater;\":\"\\u2276\",\"lessgtr;\":\"\\u2276\",\"LessLess;\":\"\\u2aa1\",\"lesssim;\":\"\\u2272\",\"LessSlantEqual;\":\"\\u2a7d\",\"LessTilde;\":\"\\u2272\",\"lfisht;\":\"\\u297c\",\"lfloor;\":\"\\u230a\",\"Lfr;\":\"\\ud835\\udd0f\",\"lfr;\":\"\\ud835\\udd29\",\"lg;\":\"\\u2276\",\"lgE;\":\"\\u2a91\",\"lHar;\":\"\\u2962\",\"lhard;\":\"\\u21bd\",\"lharu;\":\"\\u21bc\",\"lharul;\":\"\\u296a\",\"lhblk;\":\"\\u2584\",\"LJcy;\":\"\\u0409\",\"ljcy;\":\"\\u0459\",\"llarr;\":\"\\u21c7\",\"ll;\":\"\\u226a\",\"Ll;\":\"\\u22d8\",\"llcorner;\":\"\\u231e\",\"Lleftarrow;\":\"\\u21da\",\"llhard;\":\"\\u296b\",\"lltri;\":\"\\u25fa\",\"Lmidot;\":\"\\u013f\",\"lmidot;\":\"\\u0140\",\"lmoustache;\":\"\\u23b0\",\"lmoust;\":\"\\u23b0\",\"lnap;\":\"\\u2a89\",\"lnapprox;\":\"\\u2a89\",\"lne;\":\"\\u2a87\",\"lnE;\":\"\\u2268\",\"lneq;\":\"\\u2a87\",\"lneqq;\":\"\\u2268\",\"lnsim;\":\"\\u22e6\",\"loang;\":\"\\u27ec\",\"loarr;\":\"\\u21fd\",\"lobrk;\":\"\\u27e6\",\"longleftarrow;\":\"\\u27f5\",\"LongLeftArrow;\":\"\\u27f5\",\"Longleftarrow;\":\"\\u27f8\",\"longleftrightarrow;\":\"\\u27f7\",\"LongLeftRightArrow;\":\"\\u27f7\",\"Longleftrightarrow;\":\"\\u27fa\",\"longmapsto;\":\"\\u27fc\",\"longrightarrow;\":\"\\u27f6\",\"LongRightArrow;\":\"\\u27f6\",\"Longrightarrow;\":\"\\u27f9\",\"looparrowleft;\":\"\\u21ab\",\"looparrowright;\":\"\\u21ac\",\"lopar;\":\"\\u2985\",\"Lopf;\":\"\\ud835\\udd43\",\"lopf;\":\"\\ud835\\udd5d\",\"loplus;\":\"\\u2a2d\",\"lotimes;\":\"\\u2a34\",\"lowast;\":\"\\u2217\",\"lowbar;\":\"_\",\"LowerLeftArrow;\":\"\\u2199\",\"LowerRightArrow;\":\"\\u2198\",\"loz;\":\"\\u25ca\",\"lozenge;\":\"\\u25ca\",\"lozf;\":\"\\u29eb\",\"lpar;\":\"(\",\"lparlt;\":\"\\u2993\",\"lrarr;\":\"\\u21c6\",\"lrcorner;\":\"\\u231f\",\"lrhar;\":\"\\u21cb\",\"lrhard;\":\"\\u296d\",\"lrm;\":\"\\u200e\",\"lrtri;\":\"\\u22bf\",\"lsaquo;\":\"\\u2039\",\"lscr;\":\"\\ud835\\udcc1\",\"Lscr;\":\"\\u2112\",\"lsh;\":\"\\u21b0\",\"Lsh;\":\"\\u21b0\",\"lsim;\":\"\\u2272\",\"lsime;\":\"\\u2a8d\",\"lsimg;\":\"\\u2a8f\",\"lsqb;\":\"[\",\"lsquo;\":\"\\u2018\",\"lsquor;\":\"\\u201a\",\"Lstrok;\":\"\\u0141\",\"lstrok;\":\"\\u0142\",\"ltcc;\":\"\\u2aa6\",\"ltcir;\":\"\\u2a79\",\"lt;\":\"<\",lt:\"<\",\"LT;\":\"<\",LT:\"<\",\"Lt;\":\"\\u226a\",\"ltdot;\":\"\\u22d6\",\"lthree;\":\"\\u22cb\",\"ltimes;\":\"\\u22c9\",\"ltlarr;\":\"\\u2976\",\"ltquest;\":\"\\u2a7b\",\"ltri;\":\"\\u25c3\",\"ltrie;\":\"\\u22b4\",\"ltrif;\":\"\\u25c2\",\"ltrPar;\":\"\\u2996\",\"lurdshar;\":\"\\u294a\",\"luruhar;\":\"\\u2966\",\"lvertneqq;\":\"\\u2268\\ufe00\",\"lvnE;\":\"\\u2268\\ufe00\",\"macr;\":\"\\u00af\",macr:\"\\u00af\",\"male;\":\"\\u2642\",\"malt;\":\"\\u2720\",\"maltese;\":\"\\u2720\",\"Map;\":\"\\u2905\",\"map;\":\"\\u21a6\",\"mapsto;\":\"\\u21a6\",\"mapstodown;\":\"\\u21a7\",\"mapstoleft;\":\"\\u21a4\",\"mapstoup;\":\"\\u21a5\",\"marker;\":\"\\u25ae\",\"mcomma;\":\"\\u2a29\",\"Mcy;\":\"\\u041c\",\"mcy;\":\"\\u043c\",\"mdash;\":\"\\u2014\",\"mDDot;\":\"\\u223a\",\"measuredangle;\":\"\\u2221\",\"MediumSpace;\":\"\\u205f\",\"Mellintrf;\":\"\\u2133\",\"Mfr;\":\"\\ud835\\udd10\",\"mfr;\":\"\\ud835\\udd2a\",\"mho;\":\"\\u2127\",\"micro;\":\"\\u00b5\",micro:\"\\u00b5\",\"midast;\":\"*\",\"midcir;\":\"\\u2af0\",\"mid;\":\"\\u2223\",\"middot;\":\"\\u00b7\",middot:\"\\u00b7\",\"minusb;\":\"\\u229f\",\"minus;\":\"\\u2212\",\"minusd;\":\"\\u2238\",\"minusdu;\":\"\\u2a2a\",\"MinusPlus;\":\"\\u2213\",\"mlcp;\":\"\\u2adb\",\"mldr;\":\"\\u2026\",\"mnplus;\":\"\\u2213\",\"models;\":\"\\u22a7\",\"Mopf;\":\"\\ud835\\udd44\",\"mopf;\":\"\\ud835\\udd5e\",\"mp;\":\"\\u2213\",\"mscr;\":\"\\ud835\\udcc2\",\"Mscr;\":\"\\u2133\",\"mstpos;\":\"\\u223e\",\"Mu;\":\"\\u039c\",\"mu;\":\"\\u03bc\",\"multimap;\":\"\\u22b8\",\"mumap;\":\"\\u22b8\",\"nabla;\":\"\\u2207\",\"Nacute;\":\"\\u0143\",\"nacute;\":\"\\u0144\",\"nang;\":\"\\u2220\\u20d2\",\"nap;\":\"\\u2249\",\"napE;\":\"\\u2a70\\u0338\",\"napid;\":\"\\u224b\\u0338\",\"napos;\":\"\\u0149\",\"napprox;\":\"\\u2249\",\"natural;\":\"\\u266e\",\"naturals;\":\"\\u2115\",\"natur;\":\"\\u266e\",\"nbsp;\":\"\\u00a0\",nbsp:\"\\u00a0\",\"nbump;\":\"\\u224e\\u0338\",\"nbumpe;\":\"\\u224f\\u0338\",\"ncap;\":\"\\u2a43\",\"Ncaron;\":\"\\u0147\",\"ncaron;\":\"\\u0148\",\"Ncedil;\":\"\\u0145\",\"ncedil;\":\"\\u0146\",\"ncong;\":\"\\u2247\",\"ncongdot;\":\"\\u2a6d\\u0338\",\"ncup;\":\"\\u2a42\",\"Ncy;\":\"\\u041d\",\"ncy;\":\"\\u043d\",\"ndash;\":\"\\u2013\",\"nearhk;\":\"\\u2924\",\"nearr;\":\"\\u2197\",\"neArr;\":\"\\u21d7\",\"nearrow;\":\"\\u2197\",\"ne;\":\"\\u2260\",\"nedot;\":\"\\u2250\\u0338\",\"NegativeMediumSpace;\":\"\\u200b\",\"NegativeThickSpace;\":\"\\u200b\",\"NegativeThinSpace;\":\"\\u200b\",\"NegativeVeryThinSpace;\":\"\\u200b\",\"nequiv;\":\"\\u2262\",\"nesear;\":\"\\u2928\",\"nesim;\":\"\\u2242\\u0338\",\"NestedGreaterGreater;\":\"\\u226b\",\"NestedLessLess;\":\"\\u226a\",\"NewLine;\":\"\\n\",\"nexist;\":\"\\u2204\",\"nexists;\":\"\\u2204\",\"Nfr;\":\"\\ud835\\udd11\",\"nfr;\":\"\\ud835\\udd2b\",\"ngE;\":\"\\u2267\\u0338\",\"nge;\":\"\\u2271\",\"ngeq;\":\"\\u2271\",\"ngeqq;\":\"\\u2267\\u0338\",\"ngeqslant;\":\"\\u2a7e\\u0338\",\"nges;\":\"\\u2a7e\\u0338\",\"nGg;\":\"\\u22d9\\u0338\",\"ngsim;\":\"\\u2275\",\"nGt;\":\"\\u226b\\u20d2\",\"ngt;\":\"\\u226f\",\"ngtr;\":\"\\u226f\",\"nGtv;\":\"\\u226b\\u0338\",\"nharr;\":\"\\u21ae\",\"nhArr;\":\"\\u21ce\",\"nhpar;\":\"\\u2af2\",\"ni;\":\"\\u220b\",\"nis;\":\"\\u22fc\",\"nisd;\":\"\\u22fa\",\"niv;\":\"\\u220b\",\"NJcy;\":\"\\u040a\",\"njcy;\":\"\\u045a\",\"nlarr;\":\"\\u219a\",\"nlArr;\":\"\\u21cd\",\"nldr;\":\"\\u2025\",\"nlE;\":\"\\u2266\\u0338\",\"nle;\":\"\\u2270\",\"nleftarrow;\":\"\\u219a\",\"nLeftarrow;\":\"\\u21cd\",\"nleftrightarrow;\":\"\\u21ae\",\"nLeftrightarrow;\":\"\\u21ce\",\"nleq;\":\"\\u2270\",\"nleqq;\":\"\\u2266\\u0338\",\"nleqslant;\":\"\\u2a7d\\u0338\",\"nles;\":\"\\u2a7d\\u0338\",\"nless;\":\"\\u226e\",\"nLl;\":\"\\u22d8\\u0338\",\"nlsim;\":\"\\u2274\",\"nLt;\":\"\\u226a\\u20d2\",\"nlt;\":\"\\u226e\",\"nltri;\":\"\\u22ea\",\"nltrie;\":\"\\u22ec\",\"nLtv;\":\"\\u226a\\u0338\",\"nmid;\":\"\\u2224\",\"NoBreak;\":\"\\u2060\",\"NonBreakingSpace;\":\"\\u00a0\",\"nopf;\":\"\\ud835\\udd5f\",\"Nopf;\":\"\\u2115\",\"Not;\":\"\\u2aec\",\"not;\":\"\\u00ac\",not:\"\\u00ac\",\"NotCongruent;\":\"\\u2262\",\"NotCupCap;\":\"\\u226d\",\"NotDoubleVerticalBar;\":\"\\u2226\",\"NotElement;\":\"\\u2209\",\"NotEqual;\":\"\\u2260\",\"NotEqualTilde;\":\"\\u2242\\u0338\",\"NotExists;\":\"\\u2204\",\"NotGreater;\":\"\\u226f\",\"NotGreaterEqual;\":\"\\u2271\",\"NotGreaterFullEqual;\":\"\\u2267\\u0338\",\"NotGreaterGreater;\":\"\\u226b\\u0338\",\"NotGreaterLess;\":\"\\u2279\",\"NotGreaterSlantEqual;\":\"\\u2a7e\\u0338\",\"NotGreaterTilde;\":\"\\u2275\",\"NotHumpDownHump;\":\"\\u224e\\u0338\",\"NotHumpEqual;\":\"\\u224f\\u0338\",\"notin;\":\"\\u2209\",\"notindot;\":\"\\u22f5\\u0338\",\"notinE;\":\"\\u22f9\\u0338\",\"notinva;\":\"\\u2209\",\"notinvb;\":\"\\u22f7\",\"notinvc;\":\"\\u22f6\",\"NotLeftTriangleBar;\":\"\\u29cf\\u0338\",\"NotLeftTriangle;\":\"\\u22ea\",\"NotLeftTriangleEqual;\":\"\\u22ec\",\"NotLess;\":\"\\u226e\",\"NotLessEqual;\":\"\\u2270\",\"NotLessGreater;\":\"\\u2278\",\"NotLessLess;\":\"\\u226a\\u0338\",\"NotLessSlantEqual;\":\"\\u2a7d\\u0338\",\"NotLessTilde;\":\"\\u2274\",\"NotNestedGreaterGreater;\":\"\\u2aa2\\u0338\",\"NotNestedLessLess;\":\"\\u2aa1\\u0338\",\"notni;\":\"\\u220c\",\"notniva;\":\"\\u220c\",\"notnivb;\":\"\\u22fe\",\"notnivc;\":\"\\u22fd\",\"NotPrecedes;\":\"\\u2280\",\"NotPrecedesEqual;\":\"\\u2aaf\\u0338\",\"NotPrecedesSlantEqual;\":\"\\u22e0\",\"NotReverseElement;\":\"\\u220c\",\"NotRightTriangleBar;\":\"\\u29d0\\u0338\",\"NotRightTriangle;\":\"\\u22eb\",\"NotRightTriangleEqual;\":\"\\u22ed\",\"NotSquareSubset;\":\"\\u228f\\u0338\",\"NotSquareSubsetEqual;\":\"\\u22e2\",\"NotSquareSuperset;\":\"\\u2290\\u0338\",\"NotSquareSupersetEqual;\":\"\\u22e3\",\"NotSubset;\":\"\\u2282\\u20d2\",\"NotSubsetEqual;\":\"\\u2288\",\"NotSucceeds;\":\"\\u2281\",\"NotSucceedsEqual;\":\"\\u2ab0\\u0338\",\"NotSucceedsSlantEqual;\":\"\\u22e1\",\"NotSucceedsTilde;\":\"\\u227f\\u0338\",\"NotSuperset;\":\"\\u2283\\u20d2\",\"NotSupersetEqual;\":\"\\u2289\",\"NotTilde;\":\"\\u2241\",\"NotTildeEqual;\":\"\\u2244\",\"NotTildeFullEqual;\":\"\\u2247\",\"NotTildeTilde;\":\"\\u2249\",\"NotVerticalBar;\":\"\\u2224\",\"nparallel;\":\"\\u2226\",\"npar;\":\"\\u2226\",\"nparsl;\":\"\\u2afd\\u20e5\",\"npart;\":\"\\u2202\\u0338\",\"npolint;\":\"\\u2a14\",\"npr;\":\"\\u2280\",\"nprcue;\":\"\\u22e0\",\"nprec;\":\"\\u2280\",\"npreceq;\":\"\\u2aaf\\u0338\",\"npre;\":\"\\u2aaf\\u0338\",\"nrarrc;\":\"\\u2933\\u0338\",\"nrarr;\":\"\\u219b\",\"nrArr;\":\"\\u21cf\",\"nrarrw;\":\"\\u219d\\u0338\",\"nrightarrow;\":\"\\u219b\",\"nRightarrow;\":\"\\u21cf\",\"nrtri;\":\"\\u22eb\",\"nrtrie;\":\"\\u22ed\",\"nsc;\":\"\\u2281\",\"nsccue;\":\"\\u22e1\",\"nsce;\":\"\\u2ab0\\u0338\",\"Nscr;\":\"\\ud835\\udca9\",\"nscr;\":\"\\ud835\\udcc3\",\"nshortmid;\":\"\\u2224\",\"nshortparallel;\":\"\\u2226\",\"nsim;\":\"\\u2241\",\"nsime;\":\"\\u2244\",\"nsimeq;\":\"\\u2244\",\"nsmid;\":\"\\u2224\",\"nspar;\":\"\\u2226\",\"nsqsube;\":\"\\u22e2\",\"nsqsupe;\":\"\\u22e3\",\"nsub;\":\"\\u2284\",\"nsubE;\":\"\\u2ac5\\u0338\",\"nsube;\":\"\\u2288\",\"nsubset;\":\"\\u2282\\u20d2\",\"nsubseteq;\":\"\\u2288\",\"nsubseteqq;\":\"\\u2ac5\\u0338\",\"nsucc;\":\"\\u2281\",\"nsucceq;\":\"\\u2ab0\\u0338\",\"nsup;\":\"\\u2285\",\"nsupE;\":\"\\u2ac6\\u0338\",\"nsupe;\":\"\\u2289\",\"nsupset;\":\"\\u2283\\u20d2\",\"nsupseteq;\":\"\\u2289\",\"nsupseteqq;\":\"\\u2ac6\\u0338\",\"ntgl;\":\"\\u2279\",\"Ntilde;\":\"\\u00d1\",Ntilde:\"\\u00d1\",\"ntilde;\":\"\\u00f1\",ntilde:\"\\u00f1\",\"ntlg;\":\"\\u2278\",\"ntriangleleft;\":\"\\u22ea\",\"ntrianglelefteq;\":\"\\u22ec\",\"ntriangleright;\":\"\\u22eb\",\"ntrianglerighteq;\":\"\\u22ed\",\"Nu;\":\"\\u039d\",\"nu;\":\"\\u03bd\",\"num;\":\"#\",\"numero;\":\"\\u2116\",\"numsp;\":\"\\u2007\",\"nvap;\":\"\\u224d\\u20d2\",\"nvdash;\":\"\\u22ac\",\"nvDash;\":\"\\u22ad\",\"nVdash;\":\"\\u22ae\",\"nVDash;\":\"\\u22af\",\"nvge;\":\"\\u2265\\u20d2\",\"nvgt;\":\">\\u20d2\",\"nvHarr;\":\"\\u2904\",\"nvinfin;\":\"\\u29de\",\"nvlArr;\":\"\\u2902\",\"nvle;\":\"\\u2264\\u20d2\",\"nvlt;\":\"<\\u20d2\",\"nvltrie;\":\"\\u22b4\\u20d2\",\"nvrArr;\":\"\\u2903\",\"nvrtrie;\":\"\\u22b5\\u20d2\",\"nvsim;\":\"\\u223c\\u20d2\",\"nwarhk;\":\"\\u2923\",\"nwarr;\":\"\\u2196\",\"nwArr;\":\"\\u21d6\",\"nwarrow;\":\"\\u2196\",\"nwnear;\":\"\\u2927\",\"Oacute;\":\"\\u00d3\",Oacute:\"\\u00d3\",\"oacute;\":\"\\u00f3\",oacute:\"\\u00f3\",\"oast;\":\"\\u229b\",\"Ocirc;\":\"\\u00d4\",Ocirc:\"\\u00d4\",\"ocirc;\":\"\\u00f4\",ocirc:\"\\u00f4\",\"ocir;\":\"\\u229a\",\"Ocy;\":\"\\u041e\",\"ocy;\":\"\\u043e\",\"odash;\":\"\\u229d\",\"Odblac;\":\"\\u0150\",\"odblac;\":\"\\u0151\",\"odiv;\":\"\\u2a38\",\"odot;\":\"\\u2299\",\"odsold;\":\"\\u29bc\",\"OElig;\":\"\\u0152\",\"oelig;\":\"\\u0153\",\"ofcir;\":\"\\u29bf\",\"Ofr;\":\"\\ud835\\udd12\",\"ofr;\":\"\\ud835\\udd2c\",\"ogon;\":\"\\u02db\",\"Ograve;\":\"\\u00d2\",Ograve:\"\\u00d2\",\"ograve;\":\"\\u00f2\",ograve:\"\\u00f2\",\"ogt;\":\"\\u29c1\",\"ohbar;\":\"\\u29b5\",\"ohm;\":\"\\u03a9\",\"oint;\":\"\\u222e\",\"olarr;\":\"\\u21ba\",\"olcir;\":\"\\u29be\",\"olcross;\":\"\\u29bb\",\"oline;\":\"\\u203e\",\"olt;\":\"\\u29c0\",\"Omacr;\":\"\\u014c\",\"omacr;\":\"\\u014d\",\"Omega;\":\"\\u03a9\",\"omega;\":\"\\u03c9\",\"Omicron;\":\"\\u039f\",\"omicron;\":\"\\u03bf\",\"omid;\":\"\\u29b6\",\"ominus;\":\"\\u2296\",\"Oopf;\":\"\\ud835\\udd46\",\"oopf;\":\"\\ud835\\udd60\",\"opar;\":\"\\u29b7\",\"OpenCurlyDoubleQuote;\":\"\\u201c\",\"OpenCurlyQuote;\":\"\\u2018\",\"operp;\":\"\\u29b9\",\"oplus;\":\"\\u2295\",\"orarr;\":\"\\u21bb\",\"Or;\":\"\\u2a54\",\"or;\":\"\\u2228\",\"ord;\":\"\\u2a5d\",\"order;\":\"\\u2134\",\"orderof;\":\"\\u2134\",\"ordf;\":\"\\u00aa\",ordf:\"\\u00aa\",\"ordm;\":\"\\u00ba\",ordm:\"\\u00ba\",\"origof;\":\"\\u22b6\",\"oror;\":\"\\u2a56\",\"orslope;\":\"\\u2a57\",\"orv;\":\"\\u2a5b\",\"oS;\":\"\\u24c8\",\"Oscr;\":\"\\ud835\\udcaa\",\"oscr;\":\"\\u2134\",\"Oslash;\":\"\\u00d8\",Oslash:\"\\u00d8\",\"oslash;\":\"\\u00f8\",oslash:\"\\u00f8\",\"osol;\":\"\\u2298\",\"Otilde;\":\"\\u00d5\",Otilde:\"\\u00d5\",\"otilde;\":\"\\u00f5\",otilde:\"\\u00f5\",\"otimesas;\":\"\\u2a36\",\"Otimes;\":\"\\u2a37\",\"otimes;\":\"\\u2297\",\"Ouml;\":\"\\u00d6\",Ouml:\"\\u00d6\",\"ouml;\":\"\\u00f6\",ouml:\"\\u00f6\",\"ovbar;\":\"\\u233d\",\"OverBar;\":\"\\u203e\",\"OverBrace;\":\"\\u23de\",\"OverBracket;\":\"\\u23b4\",\"OverParenthesis;\":\"\\u23dc\",\"para;\":\"\\u00b6\",para:\"\\u00b6\",\"parallel;\":\"\\u2225\",\"par;\":\"\\u2225\",\"parsim;\":\"\\u2af3\",\"parsl;\":\"\\u2afd\",\"part;\":\"\\u2202\",\"PartialD;\":\"\\u2202\",\"Pcy;\":\"\\u041f\",\"pcy;\":\"\\u043f\",\"percnt;\":\"%\",\"period;\":\".\",\"permil;\":\"\\u2030\",\"perp;\":\"\\u22a5\",\"pertenk;\":\"\\u2031\",\"Pfr;\":\"\\ud835\\udd13\",\"pfr;\":\"\\ud835\\udd2d\",\"Phi;\":\"\\u03a6\",\"phi;\":\"\\u03c6\",\"phiv;\":\"\\u03d5\",\"phmmat;\":\"\\u2133\",\"phone;\":\"\\u260e\",\"Pi;\":\"\\u03a0\",\"pi;\":\"\\u03c0\",\"pitchfork;\":\"\\u22d4\",\"piv;\":\"\\u03d6\",\"planck;\":\"\\u210f\",\"planckh;\":\"\\u210e\",\"plankv;\":\"\\u210f\",\"plusacir;\":\"\\u2a23\",\"plusb;\":\"\\u229e\",\"pluscir;\":\"\\u2a22\",\"plus;\":\"+\",\"plusdo;\":\"\\u2214\",\"plusdu;\":\"\\u2a25\",\"pluse;\":\"\\u2a72\",\"PlusMinus;\":\"\\u00b1\",\"plusmn;\":\"\\u00b1\",plusmn:\"\\u00b1\",\"plussim;\":\"\\u2a26\",\"plustwo;\":\"\\u2a27\",\"pm;\":\"\\u00b1\",\"Poincareplane;\":\"\\u210c\",\"pointint;\":\"\\u2a15\",\"popf;\":\"\\ud835\\udd61\",\"Popf;\":\"\\u2119\",\"pound;\":\"\\u00a3\",pound:\"\\u00a3\",\"prap;\":\"\\u2ab7\",\"Pr;\":\"\\u2abb\",\"pr;\":\"\\u227a\",\"prcue;\":\"\\u227c\",\"precapprox;\":\"\\u2ab7\",\"prec;\":\"\\u227a\",\"preccurlyeq;\":\"\\u227c\",\"Precedes;\":\"\\u227a\",\"PrecedesEqual;\":\"\\u2aaf\",\"PrecedesSlantEqual;\":\"\\u227c\",\"PrecedesTilde;\":\"\\u227e\",\"preceq;\":\"\\u2aaf\",\"precnapprox;\":\"\\u2ab9\",\"precneqq;\":\"\\u2ab5\",\"precnsim;\":\"\\u22e8\",\"pre;\":\"\\u2aaf\",\"prE;\":\"\\u2ab3\",\"precsim;\":\"\\u227e\",\"prime;\":\"\\u2032\",\"Prime;\":\"\\u2033\",\"primes;\":\"\\u2119\",\"prnap;\":\"\\u2ab9\",\"prnE;\":\"\\u2ab5\",\"prnsim;\":\"\\u22e8\",\"prod;\":\"\\u220f\",\"Product;\":\"\\u220f\",\"profalar;\":\"\\u232e\",\"profline;\":\"\\u2312\",\"profsurf;\":\"\\u2313\",\"prop;\":\"\\u221d\",\"Proportional;\":\"\\u221d\",\"Proportion;\":\"\\u2237\",\"propto;\":\"\\u221d\",\"prsim;\":\"\\u227e\",\"prurel;\":\"\\u22b0\",\"Pscr;\":\"\\ud835\\udcab\",\"pscr;\":\"\\ud835\\udcc5\",\"Psi;\":\"\\u03a8\",\"psi;\":\"\\u03c8\",\"puncsp;\":\"\\u2008\",\"Qfr;\":\"\\ud835\\udd14\",\"qfr;\":\"\\ud835\\udd2e\",\"qint;\":\"\\u2a0c\",\"qopf;\":\"\\ud835\\udd62\",\"Qopf;\":\"\\u211a\",\"qprime;\":\"\\u2057\",\"Qscr;\":\"\\ud835\\udcac\",\"qscr;\":\"\\ud835\\udcc6\",\"quaternions;\":\"\\u210d\",\"quatint;\":\"\\u2a16\",\"quest;\":\"?\",\"questeq;\":\"\\u225f\",\"quot;\":'\"',quot:'\"',\"QUOT;\":'\"',QUOT:'\"',\"rAarr;\":\"\\u21db\",\"race;\":\"\\u223d\\u0331\",\"Racute;\":\"\\u0154\",\"racute;\":\"\\u0155\",\"radic;\":\"\\u221a\",\"raemptyv;\":\"\\u29b3\",\"rang;\":\"\\u27e9\",\"Rang;\":\"\\u27eb\",\"rangd;\":\"\\u2992\",\"range;\":\"\\u29a5\",\"rangle;\":\"\\u27e9\",\"raquo;\":\"\\u00bb\",raquo:\"\\u00bb\",\"rarrap;\":\"\\u2975\",\"rarrb;\":\"\\u21e5\",\"rarrbfs;\":\"\\u2920\",\"rarrc;\":\"\\u2933\",\"rarr;\":\"\\u2192\",\"Rarr;\":\"\\u21a0\",\"rArr;\":\"\\u21d2\",\"rarrfs;\":\"\\u291e\",\"rarrhk;\":\"\\u21aa\",\"rarrlp;\":\"\\u21ac\",\"rarrpl;\":\"\\u2945\",\"rarrsim;\":\"\\u2974\",\"Rarrtl;\":\"\\u2916\",\"rarrtl;\":\"\\u21a3\",\"rarrw;\":\"\\u219d\",\"ratail;\":\"\\u291a\",\"rAtail;\":\"\\u291c\",\"ratio;\":\"\\u2236\",\"rationals;\":\"\\u211a\",\"rbarr;\":\"\\u290d\",\"rBarr;\":\"\\u290f\",\"RBarr;\":\"\\u2910\",\"rbbrk;\":\"\\u2773\",\"rbrace;\":\"}\",\"rbrack;\":\"]\",\"rbrke;\":\"\\u298c\",\"rbrksld;\":\"\\u298e\",\"rbrkslu;\":\"\\u2990\",\"Rcaron;\":\"\\u0158\",\"rcaron;\":\"\\u0159\",\"Rcedil;\":\"\\u0156\",\"rcedil;\":\"\\u0157\",\"rceil;\":\"\\u2309\",\"rcub;\":\"}\",\"Rcy;\":\"\\u0420\",\"rcy;\":\"\\u0440\",\"rdca;\":\"\\u2937\",\"rdldhar;\":\"\\u2969\",\"rdquo;\":\"\\u201d\",\"rdquor;\":\"\\u201d\",\"rdsh;\":\"\\u21b3\",\"real;\":\"\\u211c\",\"realine;\":\"\\u211b\",\"realpart;\":\"\\u211c\",\"reals;\":\"\\u211d\",\"Re;\":\"\\u211c\",\"rect;\":\"\\u25ad\",\"reg;\":\"\\u00ae\",reg:\"\\u00ae\",\"REG;\":\"\\u00ae\",REG:\"\\u00ae\",\"ReverseElement;\":\"\\u220b\",\"ReverseEquilibrium;\":\"\\u21cb\",\"ReverseUpEquilibrium;\":\"\\u296f\",\"rfisht;\":\"\\u297d\",\"rfloor;\":\"\\u230b\",\"rfr;\":\"\\ud835\\udd2f\",\"Rfr;\":\"\\u211c\",\"rHar;\":\"\\u2964\",\"rhard;\":\"\\u21c1\",\"rharu;\":\"\\u21c0\",\"rharul;\":\"\\u296c\",\"Rho;\":\"\\u03a1\",\"rho;\":\"\\u03c1\",\"rhov;\":\"\\u03f1\",\"RightAngleBracket;\":\"\\u27e9\",\"RightArrowBar;\":\"\\u21e5\",\"rightarrow;\":\"\\u2192\",\"RightArrow;\":\"\\u2192\",\"Rightarrow;\":\"\\u21d2\",\"RightArrowLeftArrow;\":\"\\u21c4\",\"rightarrowtail;\":\"\\u21a3\",\"RightCeiling;\":\"\\u2309\",\"RightDoubleBracket;\":\"\\u27e7\",\"RightDownTeeVector;\":\"\\u295d\",\"RightDownVectorBar;\":\"\\u2955\",\"RightDownVector;\":\"\\u21c2\",\"RightFloor;\":\"\\u230b\",\"rightharpoondown;\":\"\\u21c1\",\"rightharpoonup;\":\"\\u21c0\",\"rightleftarrows;\":\"\\u21c4\",\"rightleftharpoons;\":\"\\u21cc\",\"rightrightarrows;\":\"\\u21c9\",\"rightsquigarrow;\":\"\\u219d\",\"RightTeeArrow;\":\"\\u21a6\",\"RightTee;\":\"\\u22a2\",\"RightTeeVector;\":\"\\u295b\",\"rightthreetimes;\":\"\\u22cc\",\"RightTriangleBar;\":\"\\u29d0\",\"RightTriangle;\":\"\\u22b3\",\"RightTriangleEqual;\":\"\\u22b5\",\"RightUpDownVector;\":\"\\u294f\",\"RightUpTeeVector;\":\"\\u295c\",\"RightUpVectorBar;\":\"\\u2954\",\"RightUpVector;\":\"\\u21be\",\"RightVectorBar;\":\"\\u2953\",\"RightVector;\":\"\\u21c0\",\"ring;\":\"\\u02da\",\"risingdotseq;\":\"\\u2253\",\"rlarr;\":\"\\u21c4\",\"rlhar;\":\"\\u21cc\",\"rlm;\":\"\\u200f\",\"rmoustache;\":\"\\u23b1\",\"rmoust;\":\"\\u23b1\",\"rnmid;\":\"\\u2aee\",\"roang;\":\"\\u27ed\",\"roarr;\":\"\\u21fe\",\"robrk;\":\"\\u27e7\",\"ropar;\":\"\\u2986\",\"ropf;\":\"\\ud835\\udd63\",\"Ropf;\":\"\\u211d\",\"roplus;\":\"\\u2a2e\",\"rotimes;\":\"\\u2a35\",\"RoundImplies;\":\"\\u2970\",\"rpar;\":\")\",\"rpargt;\":\"\\u2994\",\"rppolint;\":\"\\u2a12\",\"rrarr;\":\"\\u21c9\",\"Rrightarrow;\":\"\\u21db\",\"rsaquo;\":\"\\u203a\",\"rscr;\":\"\\ud835\\udcc7\",\"Rscr;\":\"\\u211b\",\"rsh;\":\"\\u21b1\",\"Rsh;\":\"\\u21b1\",\"rsqb;\":\"]\",\"rsquo;\":\"\\u2019\",\"rsquor;\":\"\\u2019\",\"rthree;\":\"\\u22cc\",\"rtimes;\":\"\\u22ca\",\"rtri;\":\"\\u25b9\",\"rtrie;\":\"\\u22b5\",\"rtrif;\":\"\\u25b8\",\"rtriltri;\":\"\\u29ce\",\"RuleDelayed;\":\"\\u29f4\",\"ruluhar;\":\"\\u2968\",\"rx;\":\"\\u211e\",\"Sacute;\":\"\\u015a\",\"sacute;\":\"\\u015b\",\"sbquo;\":\"\\u201a\",\"scap;\":\"\\u2ab8\",\"Scaron;\":\"\\u0160\",\"scaron;\":\"\\u0161\",\"Sc;\":\"\\u2abc\",\"sc;\":\"\\u227b\",\"sccue;\":\"\\u227d\",\"sce;\":\"\\u2ab0\",\"scE;\":\"\\u2ab4\",\"Scedil;\":\"\\u015e\",\"scedil;\":\"\\u015f\",\"Scirc;\":\"\\u015c\",\"scirc;\":\"\\u015d\",\"scnap;\":\"\\u2aba\",\"scnE;\":\"\\u2ab6\",\"scnsim;\":\"\\u22e9\",\"scpolint;\":\"\\u2a13\",\"scsim;\":\"\\u227f\",\"Scy;\":\"\\u0421\",\"scy;\":\"\\u0441\",\"sdotb;\":\"\\u22a1\",\"sdot;\":\"\\u22c5\",\"sdote;\":\"\\u2a66\",\"searhk;\":\"\\u2925\",\"searr;\":\"\\u2198\",\"seArr;\":\"\\u21d8\",\"searrow;\":\"\\u2198\",\"sect;\":\"\\u00a7\",sect:\"\\u00a7\",\"semi;\":\";\",\"seswar;\":\"\\u2929\",\"setminus;\":\"\\u2216\",\"setmn;\":\"\\u2216\",\"sext;\":\"\\u2736\",\"Sfr;\":\"\\ud835\\udd16\",\"sfr;\":\"\\ud835\\udd30\",\"sfrown;\":\"\\u2322\",\"sharp;\":\"\\u266f\",\"SHCHcy;\":\"\\u0429\",\"shchcy;\":\"\\u0449\",\"SHcy;\":\"\\u0428\",\"shcy;\":\"\\u0448\",\"ShortDownArrow;\":\"\\u2193\",\"ShortLeftArrow;\":\"\\u2190\",\"shortmid;\":\"\\u2223\",\"shortparallel;\":\"\\u2225\",\"ShortRightArrow;\":\"\\u2192\",\"ShortUpArrow;\":\"\\u2191\",\"shy;\":\"\\u00ad\",shy:\"\\u00ad\",\"Sigma;\":\"\\u03a3\",\"sigma;\":\"\\u03c3\",\"sigmaf;\":\"\\u03c2\",\"sigmav;\":\"\\u03c2\",\"sim;\":\"\\u223c\",\"simdot;\":\"\\u2a6a\",\"sime;\":\"\\u2243\",\"simeq;\":\"\\u2243\",\"simg;\":\"\\u2a9e\",\"simgE;\":\"\\u2aa0\",\"siml;\":\"\\u2a9d\",\"simlE;\":\"\\u2a9f\",\"simne;\":\"\\u2246\",\"simplus;\":\"\\u2a24\",\"simrarr;\":\"\\u2972\",\"slarr;\":\"\\u2190\",\"SmallCircle;\":\"\\u2218\",\"smallsetminus;\":\"\\u2216\",\"smashp;\":\"\\u2a33\",\"smeparsl;\":\"\\u29e4\",\"smid;\":\"\\u2223\",\"smile;\":\"\\u2323\",\"smt;\":\"\\u2aaa\",\"smte;\":\"\\u2aac\",\"smtes;\":\"\\u2aac\\ufe00\",\"SOFTcy;\":\"\\u042c\",\"softcy;\":\"\\u044c\",\"solbar;\":\"\\u233f\",\"solb;\":\"\\u29c4\",\"sol;\":\"/\",\"Sopf;\":\"\\ud835\\udd4a\",\"sopf;\":\"\\ud835\\udd64\",\"spades;\":\"\\u2660\",\"spadesuit;\":\"\\u2660\",\"spar;\":\"\\u2225\",\"sqcap;\":\"\\u2293\",\"sqcaps;\":\"\\u2293\\ufe00\",\"sqcup;\":\"\\u2294\",\"sqcups;\":\"\\u2294\\ufe00\",\"Sqrt;\":\"\\u221a\",\"sqsub;\":\"\\u228f\",\"sqsube;\":\"\\u2291\",\"sqsubset;\":\"\\u228f\",\"sqsubseteq;\":\"\\u2291\",\"sqsup;\":\"\\u2290\",\"sqsupe;\":\"\\u2292\",\"sqsupset;\":\"\\u2290\",\"sqsupseteq;\":\"\\u2292\",\"square;\":\"\\u25a1\",\"Square;\":\"\\u25a1\",\"SquareIntersection;\":\"\\u2293\",\"SquareSubset;\":\"\\u228f\",\"SquareSubsetEqual;\":\"\\u2291\",\"SquareSuperset;\":\"\\u2290\",\"SquareSupersetEqual;\":\"\\u2292\",\"SquareUnion;\":\"\\u2294\",\"squarf;\":\"\\u25aa\",\"squ;\":\"\\u25a1\",\"squf;\":\"\\u25aa\",\"srarr;\":\"\\u2192\",\"Sscr;\":\"\\ud835\\udcae\",\"sscr;\":\"\\ud835\\udcc8\",\"ssetmn;\":\"\\u2216\",\"ssmile;\":\"\\u2323\",\"sstarf;\":\"\\u22c6\",\"Star;\":\"\\u22c6\",\"star;\":\"\\u2606\",\"starf;\":\"\\u2605\",\"straightepsilon;\":\"\\u03f5\",\"straightphi;\":\"\\u03d5\",\"strns;\":\"\\u00af\",\"sub;\":\"\\u2282\",\"Sub;\":\"\\u22d0\",\"subdot;\":\"\\u2abd\",\"subE;\":\"\\u2ac5\",\"sube;\":\"\\u2286\",\"subedot;\":\"\\u2ac3\",\"submult;\":\"\\u2ac1\",\"subnE;\":\"\\u2acb\",\"subne;\":\"\\u228a\",\"subplus;\":\"\\u2abf\",\"subrarr;\":\"\\u2979\",\"subset;\":\"\\u2282\",\"Subset;\":\"\\u22d0\",\"subseteq;\":\"\\u2286\",\"subseteqq;\":\"\\u2ac5\",\"SubsetEqual;\":\"\\u2286\",\"subsetneq;\":\"\\u228a\",\"subsetneqq;\":\"\\u2acb\",\"subsim;\":\"\\u2ac7\",\"subsub;\":\"\\u2ad5\",\"subsup;\":\"\\u2ad3\",\"succapprox;\":\"\\u2ab8\",\"succ;\":\"\\u227b\",\"succcurlyeq;\":\"\\u227d\",\"Succeeds;\":\"\\u227b\",\"SucceedsEqual;\":\"\\u2ab0\",\"SucceedsSlantEqual;\":\"\\u227d\",\"SucceedsTilde;\":\"\\u227f\",\"succeq;\":\"\\u2ab0\",\"succnapprox;\":\"\\u2aba\",\"succneqq;\":\"\\u2ab6\",\"succnsim;\":\"\\u22e9\",\"succsim;\":\"\\u227f\",\"SuchThat;\":\"\\u220b\",\"sum;\":\"\\u2211\",\"Sum;\":\"\\u2211\",\"sung;\":\"\\u266a\",\"sup1;\":\"\\u00b9\",sup1:\"\\u00b9\",\"sup2;\":\"\\u00b2\",sup2:\"\\u00b2\",\"sup3;\":\"\\u00b3\",sup3:\"\\u00b3\",\"sup;\":\"\\u2283\",\"Sup;\":\"\\u22d1\",\"supdot;\":\"\\u2abe\",\"supdsub;\":\"\\u2ad8\",\"supE;\":\"\\u2ac6\",\"supe;\":\"\\u2287\",\"supedot;\":\"\\u2ac4\",\"Superset;\":\"\\u2283\",\"SupersetEqual;\":\"\\u2287\",\"suphsol;\":\"\\u27c9\",\"suphsub;\":\"\\u2ad7\",\"suplarr;\":\"\\u297b\",\"supmult;\":\"\\u2ac2\",\"supnE;\":\"\\u2acc\",\"supne;\":\"\\u228b\",\"supplus;\":\"\\u2ac0\",\"supset;\":\"\\u2283\",\"Supset;\":\"\\u22d1\",\"supseteq;\":\"\\u2287\",\"supseteqq;\":\"\\u2ac6\",\"supsetneq;\":\"\\u228b\",\"supsetneqq;\":\"\\u2acc\",\"supsim;\":\"\\u2ac8\",\"supsub;\":\"\\u2ad4\",\"supsup;\":\"\\u2ad6\",\"swarhk;\":\"\\u2926\",\"swarr;\":\"\\u2199\",\"swArr;\":\"\\u21d9\",\"swarrow;\":\"\\u2199\",\"swnwar;\":\"\\u292a\",\"szlig;\":\"\\u00df\",szlig:\"\\u00df\",\"Tab;\":\"\t\",\"target;\":\"\\u2316\",\"Tau;\":\"\\u03a4\",\"tau;\":\"\\u03c4\",\"tbrk;\":\"\\u23b4\",\"Tcaron;\":\"\\u0164\",\"tcaron;\":\"\\u0165\",\"Tcedil;\":\"\\u0162\",\"tcedil;\":\"\\u0163\",\"Tcy;\":\"\\u0422\",\"tcy;\":\"\\u0442\",\"tdot;\":\"\\u20db\",\"telrec;\":\"\\u2315\",\"Tfr;\":\"\\ud835\\udd17\",\"tfr;\":\"\\ud835\\udd31\",\"there4;\":\"\\u2234\",\"therefore;\":\"\\u2234\",\"Therefore;\":\"\\u2234\",\"Theta;\":\"\\u0398\",\"theta;\":\"\\u03b8\",\"thetasym;\":\"\\u03d1\",\"thetav;\":\"\\u03d1\",\"thickapprox;\":\"\\u2248\",\"thicksim;\":\"\\u223c\",\"ThickSpace;\":\"\\u205f\\u200a\",\"ThinSpace;\":\"\\u2009\",\"thinsp;\":\"\\u2009\",\"thkap;\":\"\\u2248\",\"thksim;\":\"\\u223c\",\"THORN;\":\"\\u00de\",THORN:\"\\u00de\",\"thorn;\":\"\\u00fe\",thorn:\"\\u00fe\",\"tilde;\":\"\\u02dc\",\"Tilde;\":\"\\u223c\",\"TildeEqual;\":\"\\u2243\",\"TildeFullEqual;\":\"\\u2245\",\"TildeTilde;\":\"\\u2248\",\"timesbar;\":\"\\u2a31\",\"timesb;\":\"\\u22a0\",\"times;\":\"\\u00d7\",times:\"\\u00d7\",\"timesd;\":\"\\u2a30\",\"tint;\":\"\\u222d\",\"toea;\":\"\\u2928\",\"topbot;\":\"\\u2336\",\"topcir;\":\"\\u2af1\",\"top;\":\"\\u22a4\",\"Topf;\":\"\\ud835\\udd4b\",\"topf;\":\"\\ud835\\udd65\",\"topfork;\":\"\\u2ada\",\"tosa;\":\"\\u2929\",\"tprime;\":\"\\u2034\",\"trade;\":\"\\u2122\",\"TRADE;\":\"\\u2122\",\"triangle;\":\"\\u25b5\",\"triangledown;\":\"\\u25bf\",\"triangleleft;\":\"\\u25c3\",\"trianglelefteq;\":\"\\u22b4\",\"triangleq;\":\"\\u225c\",\"triangleright;\":\"\\u25b9\",\"trianglerighteq;\":\"\\u22b5\",\"tridot;\":\"\\u25ec\",\"trie;\":\"\\u225c\",\"triminus;\":\"\\u2a3a\",\"TripleDot;\":\"\\u20db\",\"triplus;\":\"\\u2a39\",\"trisb;\":\"\\u29cd\",\"tritime;\":\"\\u2a3b\",\"trpezium;\":\"\\u23e2\",\"Tscr;\":\"\\ud835\\udcaf\",\"tscr;\":\"\\ud835\\udcc9\",\"TScy;\":\"\\u0426\",\"tscy;\":\"\\u0446\",\"TSHcy;\":\"\\u040b\",\"tshcy;\":\"\\u045b\",\"Tstrok;\":\"\\u0166\",\"tstrok;\":\"\\u0167\",\"twixt;\":\"\\u226c\",\"twoheadleftarrow;\":\"\\u219e\",\"twoheadrightarrow;\":\"\\u21a0\",\"Uacute;\":\"\\u00da\",Uacute:\"\\u00da\",\"uacute;\":\"\\u00fa\",uacute:\"\\u00fa\",\"uarr;\":\"\\u2191\",\"Uarr;\":\"\\u219f\",\"uArr;\":\"\\u21d1\",\"Uarrocir;\":\"\\u2949\",\"Ubrcy;\":\"\\u040e\",\"ubrcy;\":\"\\u045e\",\"Ubreve;\":\"\\u016c\",\"ubreve;\":\"\\u016d\",\"Ucirc;\":\"\\u00db\",Ucirc:\"\\u00db\",\"ucirc;\":\"\\u00fb\",ucirc:\"\\u00fb\",\"Ucy;\":\"\\u0423\",\"ucy;\":\"\\u0443\",\"udarr;\":\"\\u21c5\",\"Udblac;\":\"\\u0170\",\"udblac;\":\"\\u0171\",\"udhar;\":\"\\u296e\",\"ufisht;\":\"\\u297e\",\"Ufr;\":\"\\ud835\\udd18\",\"ufr;\":\"\\ud835\\udd32\",\"Ugrave;\":\"\\u00d9\",Ugrave:\"\\u00d9\",\"ugrave;\":\"\\u00f9\",ugrave:\"\\u00f9\",\"uHar;\":\"\\u2963\",\"uharl;\":\"\\u21bf\",\"uharr;\":\"\\u21be\",\"uhblk;\":\"\\u2580\",\"ulcorn;\":\"\\u231c\",\"ulcorner;\":\"\\u231c\",\"ulcrop;\":\"\\u230f\",\"ultri;\":\"\\u25f8\",\"Umacr;\":\"\\u016a\",\"umacr;\":\"\\u016b\",\"uml;\":\"\\u00a8\",uml:\"\\u00a8\",\"UnderBar;\":\"_\",\"UnderBrace;\":\"\\u23df\",\"UnderBracket;\":\"\\u23b5\",\"UnderParenthesis;\":\"\\u23dd\",\"Union;\":\"\\u22c3\",\"UnionPlus;\":\"\\u228e\",\"Uogon;\":\"\\u0172\",\"uogon;\":\"\\u0173\",\"Uopf;\":\"\\ud835\\udd4c\",\"uopf;\":\"\\ud835\\udd66\",\"UpArrowBar;\":\"\\u2912\",\"uparrow;\":\"\\u2191\",\"UpArrow;\":\"\\u2191\",\"Uparrow;\":\"\\u21d1\",\"UpArrowDownArrow;\":\"\\u21c5\",\"updownarrow;\":\"\\u2195\",\"UpDownArrow;\":\"\\u2195\",\"Updownarrow;\":\"\\u21d5\",\"UpEquilibrium;\":\"\\u296e\",\"upharpoonleft;\":\"\\u21bf\",\"upharpoonright;\":\"\\u21be\",\"uplus;\":\"\\u228e\",\"UpperLeftArrow;\":\"\\u2196\",\"UpperRightArrow;\":\"\\u2197\",\"upsi;\":\"\\u03c5\",\"Upsi;\":\"\\u03d2\",\"upsih;\":\"\\u03d2\",\"Upsilon;\":\"\\u03a5\",\"upsilon;\":\"\\u03c5\",\"UpTeeArrow;\":\"\\u21a5\",\"UpTee;\":\"\\u22a5\",\"upuparrows;\":\"\\u21c8\",\"urcorn;\":\"\\u231d\",\"urcorner;\":\"\\u231d\",\"urcrop;\":\"\\u230e\",\"Uring;\":\"\\u016e\",\"uring;\":\"\\u016f\",\"urtri;\":\"\\u25f9\",\"Uscr;\":\"\\ud835\\udcb0\",\"uscr;\":\"\\ud835\\udcca\",\"utdot;\":\"\\u22f0\",\"Utilde;\":\"\\u0168\",\"utilde;\":\"\\u0169\",\"utri;\":\"\\u25b5\",\"utrif;\":\"\\u25b4\",\"uuarr;\":\"\\u21c8\",\"Uuml;\":\"\\u00dc\",Uuml:\"\\u00dc\",\"uuml;\":\"\\u00fc\",uuml:\"\\u00fc\",\"uwangle;\":\"\\u29a7\",\"vangrt;\":\"\\u299c\",\"varepsilon;\":\"\\u03f5\",\"varkappa;\":\"\\u03f0\",\"varnothing;\":\"\\u2205\",\"varphi;\":\"\\u03d5\",\"varpi;\":\"\\u03d6\",\"varpropto;\":\"\\u221d\",\"varr;\":\"\\u2195\",\"vArr;\":\"\\u21d5\",\"varrho;\":\"\\u03f1\",\"varsigma;\":\"\\u03c2\",\"varsubsetneq;\":\"\\u228a\\ufe00\",\"varsubsetneqq;\":\"\\u2acb\\ufe00\",\"varsupsetneq;\":\"\\u228b\\ufe00\",\"varsupsetneqq;\":\"\\u2acc\\ufe00\",\"vartheta;\":\"\\u03d1\",\"vartriangleleft;\":\"\\u22b2\",\"vartriangleright;\":\"\\u22b3\",\"vBar;\":\"\\u2ae8\",\"Vbar;\":\"\\u2aeb\",\"vBarv;\":\"\\u2ae9\",\"Vcy;\":\"\\u0412\",\"vcy;\":\"\\u0432\",\"vdash;\":\"\\u22a2\",\"vDash;\":\"\\u22a8\",\"Vdash;\":\"\\u22a9\",\"VDash;\":\"\\u22ab\",\"Vdashl;\":\"\\u2ae6\",\"veebar;\":\"\\u22bb\",\"vee;\":\"\\u2228\",\"Vee;\":\"\\u22c1\",\"veeeq;\":\"\\u225a\",\"vellip;\":\"\\u22ee\",\"verbar;\":\"|\",\"Verbar;\":\"\\u2016\",\"vert;\":\"|\",\"Vert;\":\"\\u2016\",\"VerticalBar;\":\"\\u2223\",\"VerticalLine;\":\"|\",\"VerticalSeparator;\":\"\\u2758\",\"VerticalTilde;\":\"\\u2240\",\"VeryThinSpace;\":\"\\u200a\",\"Vfr;\":\"\\ud835\\udd19\",\"vfr;\":\"\\ud835\\udd33\",\"vltri;\":\"\\u22b2\",\"vnsub;\":\"\\u2282\\u20d2\",\"vnsup;\":\"\\u2283\\u20d2\",\"Vopf;\":\"\\ud835\\udd4d\",\"vopf;\":\"\\ud835\\udd67\",\"vprop;\":\"\\u221d\",\"vrtri;\":\"\\u22b3\",\"Vscr;\":\"\\ud835\\udcb1\",\"vscr;\":\"\\ud835\\udccb\",\"vsubnE;\":\"\\u2acb\\ufe00\",\"vsubne;\":\"\\u228a\\ufe00\",\"vsupnE;\":\"\\u2acc\\ufe00\",\"vsupne;\":\"\\u228b\\ufe00\",\"Vvdash;\":\"\\u22aa\",\"vzigzag;\":\"\\u299a\",\"Wcirc;\":\"\\u0174\",\"wcirc;\":\"\\u0175\",\"wedbar;\":\"\\u2a5f\",\"wedge;\":\"\\u2227\",\"Wedge;\":\"\\u22c0\",\"wedgeq;\":\"\\u2259\",\"weierp;\":\"\\u2118\",\"Wfr;\":\"\\ud835\\udd1a\",\"wfr;\":\"\\ud835\\udd34\",\"Wopf;\":\"\\ud835\\udd4e\",\"wopf;\":\"\\ud835\\udd68\",\"wp;\":\"\\u2118\",\"wr;\":\"\\u2240\",\"wreath;\":\"\\u2240\",\"Wscr;\":\"\\ud835\\udcb2\",\"wscr;\":\"\\ud835\\udccc\",\"xcap;\":\"\\u22c2\",\"xcirc;\":\"\\u25ef\",\"xcup;\":\"\\u22c3\",\"xdtri;\":\"\\u25bd\",\"Xfr;\":\"\\ud835\\udd1b\",\"xfr;\":\"\\ud835\\udd35\",\"xharr;\":\"\\u27f7\",\"xhArr;\":\"\\u27fa\",\"Xi;\":\"\\u039e\",\"xi;\":\"\\u03be\",\"xlarr;\":\"\\u27f5\",\"xlArr;\":\"\\u27f8\",\"xmap;\":\"\\u27fc\",\"xnis;\":\"\\u22fb\",\"xodot;\":\"\\u2a00\",\"Xopf;\":\"\\ud835\\udd4f\",\"xopf;\":\"\\ud835\\udd69\",\"xoplus;\":\"\\u2a01\",\"xotime;\":\"\\u2a02\",\"xrarr;\":\"\\u27f6\",\"xrArr;\":\"\\u27f9\",\"Xscr;\":\"\\ud835\\udcb3\",\"xscr;\":\"\\ud835\\udccd\",\"xsqcup;\":\"\\u2a06\",\"xuplus;\":\"\\u2a04\",\"xutri;\":\"\\u25b3\",\"xvee;\":\"\\u22c1\",\"xwedge;\":\"\\u22c0\",\"Yacute;\":\"\\u00dd\",Yacute:\"\\u00dd\",\"yacute;\":\"\\u00fd\",yacute:\"\\u00fd\",\"YAcy;\":\"\\u042f\",\"yacy;\":\"\\u044f\",\"Ycirc;\":\"\\u0176\",\"ycirc;\":\"\\u0177\",\"Ycy;\":\"\\u042b\",\"ycy;\":\"\\u044b\",\"yen;\":\"\\u00a5\",yen:\"\\u00a5\",\"Yfr;\":\"\\ud835\\udd1c\",\"yfr;\":\"\\ud835\\udd36\",\"YIcy;\":\"\\u0407\",\"yicy;\":\"\\u0457\",\"Yopf;\":\"\\ud835\\udd50\",\"yopf;\":\"\\ud835\\udd6a\",\"Yscr;\":\"\\ud835\\udcb4\",\"yscr;\":\"\\ud835\\udcce\",\"YUcy;\":\"\\u042e\",\"yucy;\":\"\\u044e\",\"yuml;\":\"\\u00ff\",yuml:\"\\u00ff\",\"Yuml;\":\"\\u0178\",\"Zacute;\":\"\\u0179\",\"zacute;\":\"\\u017a\",\"Zcaron;\":\"\\u017d\",\"zcaron;\":\"\\u017e\",\"Zcy;\":\"\\u0417\",\"zcy;\":\"\\u0437\",\"Zdot;\":\"\\u017b\",\"zdot;\":\"\\u017c\",\"zeetrf;\":\"\\u2128\",\"ZeroWidthSpace;\":\"\\u200b\",\"Zeta;\":\"\\u0396\",\"zeta;\":\"\\u03b6\",\"zfr;\":\"\\ud835\\udd37\",\"Zfr;\":\"\\u2128\",\"ZHcy;\":\"\\u0416\",\"zhcy;\":\"\\u0436\",\"zigrarr;\":\"\\u21dd\",\"zopf;\":\"\\ud835\\udd6b\",\"Zopf;\":\"\\u2124\",\"Zscr;\":\"\\ud835\\udcb5\",\"zscr;\":\"\\ud835\\udccf\",\"zwj;\":\"\\u200d\",\"zwnj;\":\"\\u200c\"}},{}],13:[function(e,t,n){function u(e,t){return r.isUndefined(t)?\"\"+t:r.isNumber(t)&&(isNaN(t)||!isFinite(t))?t.toString():r.isFunction(t)||r.isRegExp(t)?t.toString():t}function a(e,t){return r.isString(e)?e.length<t?e:e.slice(0,t):e}function f(e){return a(JSON.stringify(e.actual,u),128)+\" \"+e.operator+\" \"+a(JSON.stringify(e.expected,u),128)}function l(e,t,n,r,i){throw new o.AssertionError({message:n,actual:e,expected:t,operator:r,stackStartFunction:i})}function c(e,t){e||l(e,!0,t,\"==\",o.ok)}function h(e,t){if(e===t)return!0;if(r.isBuffer(e)&&r.isBuffer(t)){if(e.length!=t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return r.isDate(e)&&r.isDate(t)?e.getTime()===t.getTime():r.isRegExp(e)&&r.isRegExp(t)?e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.lastIndex===t.lastIndex&&e.ignoreCase===t.ignoreCase:!r.isObject(e)&&!r.isObject(t)?e==t:d(e,t)}function p(e){return Object.prototype.toString.call(e)==\"[object Arguments]\"}function d(e,t){if(r.isNullOrUndefined(e)||r.isNullOrUndefined(t))return!1;if(e.prototype!==t.prototype)return!1;if(p(e))return p(t)?(e=i.call(e),t=i.call(t),h(e,t)):!1;try{var n=g(e),s=g(t),o,u}catch(a){return!1}if(n.length!=s.length)return!1;n.sort(),s.sort();for(u=n.length-1;u>=0;u--)if(n[u]!=s[u])return!1;for(u=n.length-1;u>=0;u--){o=n[u];if(!h(e[o],t[o]))return!1}return!0}function v(e,t){return!e||!t?!1:Object.prototype.toString.call(t)==\"[object RegExp]\"?t.test(e):e instanceof t?!0:t.call({},e)===!0?!0:!1}function m(e,t,n,i){var s;r.isString(n)&&(i=n,n=null);try{t()}catch(o){s=o}i=(n&&n.name?\" (\"+n.name+\").\":\".\")+(i?\" \"+i:\".\"),e&&!s&&l(s,n,\"Missing expected exception\"+i),!e&&v(s,n)&&l(s,n,\"Got unwanted exception\"+i);if(e&&s&&n&&!v(s,n)||!e&&s)throw s}var r=e(\"util/\"),i=Array.prototype.slice,s=Object.prototype.hasOwnProperty,o=t.exports=c;o.AssertionError=function(t){this.name=\"AssertionError\",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=f(this),this.generatedMessage=!0);var n=t.stackStartFunction||l;if(Error.captureStackTrace)Error.captureStackTrace(this,n);else{var r=new Error;if(r.stack){var i=r.stack,s=n.name,o=i.indexOf(\"\\n\"+s);if(o>=0){var u=i.indexOf(\"\\n\",o+1);i=i.substring(u+1)}this.stack=i}}},r.inherits(o.AssertionError,Error),o.fail=l,o.ok=c,o.equal=function(t,n,r){t!=n&&l(t,n,r,\"==\",o.equal)},o.notEqual=function(t,n,r){t==n&&l(t,n,r,\"!=\",o.notEqual)},o.deepEqual=function(t,n,r){h(t,n)||l(t,n,r,\"deepEqual\",o.deepEqual)},o.notDeepEqual=function(t,n,r){h(t,n)&&l(t,n,r,\"notDeepEqual\",o.notDeepEqual)},o.strictEqual=function(t,n,r){t!==n&&l(t,n,r,\"===\",o.strictEqual)},o.notStrictEqual=function(t,n,r){t===n&&l(t,n,r,\"!==\",o.notStrictEqual)},o.throws=function(e,t,n){m.apply(this,[!0].concat(i.call(arguments)))},o.doesNotThrow=function(e,t){m.apply(this,[!1].concat(i.call(arguments)))},o.ifError=function(e){if(e)throw e};var g=Object.keys||function(e){var t=[];for(var n in e)s.call(e,n)&&t.push(n);return t}},{\"util/\":15}],14:[function(e,t,n){t.exports=function(t){return t&&typeof t==\"object\"&&typeof t.copy==\"function\"&&typeof t.fill==\"function\"&&typeof t.readUInt8==\"function\"}},{}],15:[function(e,t,n){(function(t,r){function u(e,t){var r={seen:[],stylize:f};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),y(t)?r.showHidden=t:t&&n._extend(r,t),T(r.showHidden)&&(r.showHidden=!1),T(r.depth)&&(r.depth=2),T(r.colors)&&(r.colors=!1),T(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=a),c(r,e,r.depth)}function a(e,t){var n=u.styles[t];return n?\"\u001b[\"+u.colors[n][0]+\"m\"+e+\"\u001b[\"+u.colors[n][1]+\"m\":e}function f(e,t){return e}function l(e){var t={};return e.forEach(function(e,n){t[e]=!0}),t}function c(e,t,r){if(e.customInspect&&t&&A(t.inspect)&&t.inspect!==n.inspect&&(!t.constructor||t.constructor.prototype!==t)){var i=t.inspect(r,e);return S(i)||(i=c(e,i,r)),i}var s=h(e,t);if(s)return s;var o=Object.keys(t),u=l(o);e.showHidden&&(o=Object.getOwnPropertyNames(t));if(L(t)&&(o.indexOf(\"message\")>=0||o.indexOf(\"description\")>=0))return p(t);if(o.length===0){if(A(t)){var a=t.name?\": \"+t.name:\"\";return e.stylize(\"[Function\"+a+\"]\",\"special\")}if(N(t))return e.stylize(RegExp.prototype.toString.call(t),\"regexp\");if(k(t))return e.stylize(Date.prototype.toString.call(t),\"date\");if(L(t))return p(t)}var f=\"\",y=!1,b=[\"{\",\"}\"];g(t)&&(y=!0,b=[\"[\",\"]\"]);if(A(t)){var w=t.name?\": \"+t.name:\"\";f=\" [Function\"+w+\"]\"}N(t)&&(f=\" \"+RegExp.prototype.toString.call(t)),k(t)&&(f=\" \"+Date.prototype.toUTCString.call(t)),L(t)&&(f=\" \"+p(t));if(o.length!==0||!!y&&t.length!=0){if(r<0)return N(t)?e.stylize(RegExp.prototype.toString.call(t),\"regexp\"):e.stylize(\"[Object]\",\"special\");e.seen.push(t);var E;return y?E=d(e,t,r,u,o):E=o.map(function(n){return v(e,t,r,u,n,y)}),e.seen.pop(),m(E,f,b)}return b[0]+f+b[1]}function h(e,t){if(T(t))return e.stylize(\"undefined\",\"undefined\");if(S(t)){var n=\"'\"+JSON.stringify(t).replace(/^\"|\"$/g,\"\").replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"')+\"'\";return e.stylize(n,\"string\")}if(E(t))return e.stylize(\"\"+t,\"number\");if(y(t))return e.stylize(\"\"+t,\"boolean\");if(b(t))return e.stylize(\"null\",\"null\")}function p(e){return\"[\"+Error.prototype.toString.call(e)+\"]\"}function d(e,t,n,r,i){var s=[];for(var o=0,u=t.length;o<u;++o)H(t,String(o))?s.push(v(e,t,n,r,String(o),!0)):s.push(\"\");return i.forEach(function(i){i.match(/^\\d+$/)||s.push(v(e,t,n,r,i,!0))}),s}function v(e,t,n,r,i,s){var o,u,a;a=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]},a.get?a.set?u=e.stylize(\"[Getter/Setter]\",\"special\"):u=e.stylize(\"[Getter]\",\"special\"):a.set&&(u=e.stylize(\"[Setter]\",\"special\")),H(r,i)||(o=\"[\"+i+\"]\"),u||(e.seen.indexOf(a.value)<0?(b(n)?u=c(e,a.value,null):u=c(e,a.value,n-1),u.indexOf(\"\\n\")>-1&&(s?u=u.split(\"\\n\").map(function(e){return\"  \"+e}).join(\"\\n\").substr(2):u=\"\\n\"+u.split(\"\\n\").map(function(e){return\"   \"+e}).join(\"\\n\"))):u=e.stylize(\"[Circular]\",\"special\"));if(T(o)){if(s&&i.match(/^\\d+$/))return u;o=JSON.stringify(\"\"+i),o.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,\"name\")):(o=o.replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"').replace(/(^\"|\"$)/g,\"'\"),o=e.stylize(o,\"string\"))}return o+\": \"+u}function m(e,t,n){var r=0,i=e.reduce(function(e,t){return r++,t.indexOf(\"\\n\")>=0&&r++,e+t.replace(/\\u001b\\[\\d\\d?m/g,\"\").length+1},0);return i>60?n[0]+(t===\"\"?\"\":t+\"\\n \")+\" \"+e.join(\",\\n  \")+\" \"+n[1]:n[0]+t+\" \"+e.join(\", \")+\" \"+n[1]}function g(e){return Array.isArray(e)}function y(e){return typeof e==\"boolean\"}function b(e){return e===null}function w(e){return e==null}function E(e){return typeof e==\"number\"}function S(e){return typeof e==\"string\"}function x(e){return typeof e==\"symbol\"}function T(e){return e===void 0}function N(e){return C(e)&&M(e)===\"[object RegExp]\"}function C(e){return typeof e==\"object\"&&e!==null}function k(e){return C(e)&&M(e)===\"[object Date]\"}function L(e){return C(e)&&(M(e)===\"[object Error]\"||e instanceof Error)}function A(e){return typeof e==\"function\"}function O(e){return e===null||typeof e==\"boolean\"||typeof e==\"number\"||typeof e==\"string\"||typeof e==\"symbol\"||typeof e==\"undefined\"}function M(e){return Object.prototype.toString.call(e)}function _(e){return e<10?\"0\"+e.toString(10):e.toString(10)}function P(){var e=new Date,t=[_(e.getHours()),_(e.getMinutes()),_(e.getSeconds())].join(\":\");return[e.getDate(),D[e.getMonth()],t].join(\" \")}function H(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var i=/%[sdj%]/g;n.format=function(e){if(!S(e)){var t=[];for(var n=0;n<arguments.length;n++)t.push(u(arguments[n]));return t.join(\" \")}var n=1,r=arguments,s=r.length,o=String(e).replace(i,function(e){if(e===\"%%\")return\"%\";if(n>=s)return e;switch(e){case\"%s\":return String(r[n++]);case\"%d\":return Number(r[n++]);case\"%j\":try{return JSON.stringify(r[n++])}catch(t){return\"[Circular]\"};default:return e}});for(var a=r[n];n<s;a=r[++n])b(a)||!C(a)?o+=\" \"+a:o+=\" \"+u(a);return o},n.deprecate=function(e,i){function o(){if(!s){if(t.throwDeprecation)throw new Error(i);t.traceDeprecation?console.trace(i):console.error(i),s=!0}return e.apply(this,arguments)}if(T(r.process))return function(){return n.deprecate(e,i).apply(this,arguments)};if(t.noDeprecation===!0)return e;var s=!1;return o};var s={},o;n.debuglog=function(e){T(o)&&(o=t.env.NODE_DEBUG||\"\"),e=e.toUpperCase();if(!s[e])if((new RegExp(\"\\\\b\"+e+\"\\\\b\",\"i\")).test(o)){var r=t.pid;s[e]=function(){var t=n.format.apply(n,arguments);console.error(\"%s %d: %s\",e,r,t)}}else s[e]=function(){};return s[e]},n.inspect=u,u.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},u.styles={special:\"cyan\",number:\"yellow\",\"boolean\":\"yellow\",\"undefined\":\"grey\",\"null\":\"bold\",string:\"green\",date:\"magenta\",regexp:\"red\"},n.isArray=g,n.isBoolean=y,n.isNull=b,n.isNullOrUndefined=w,n.isNumber=E,n.isString=S,n.isSymbol=x,n.isUndefined=T,n.isRegExp=N,n.isObject=C,n.isDate=k,n.isError=L,n.isFunction=A,n.isPrimitive=O,n.isBuffer=e(\"./support/isBuffer\");var D=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];n.log=function(){console.log(\"%s - %s\",P(),n.format.apply(n,arguments))},n.inherits=e(\"inherits\"),n._extend=function(e,t){if(!t||!C(t))return e;var n=Object.keys(t),r=n.length;while(r--)e[n[r]]=t[n[r]];return e}}).call(this,e(\"/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js\"),typeof self!=\"undefined\"?self:typeof window!=\"undefined\"?window:{})},{\"./support/isBuffer\":14,\"/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js\":18,inherits:17}],16:[function(e,t,n){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||undefined}function i(e){return typeof e==\"function\"}function s(e){return typeof e==\"number\"}function o(e){return typeof e==\"object\"&&e!==null}function u(e){return e===void 0}t.exports=r,r.EventEmitter=r,r.prototype._events=undefined,r.prototype._maxListeners=undefined,r.defaultMaxListeners=10,r.prototype.setMaxListeners=function(e){if(!s(e)||e<0||isNaN(e))throw TypeError(\"n must be a positive number\");return this._maxListeners=e,this},r.prototype.emit=function(e){var t,n,r,s,a,f;this._events||(this._events={});if(e===\"error\")if(!this._events.error||o(this._events.error)&&!this._events.error.length)throw t=arguments[1],t instanceof Error?t:TypeError('Uncaught, unspecified \"error\" event.');n=this._events[e];if(u(n))return!1;if(i(n))switch(arguments.length){case 1:n.call(this);break;case 2:n.call(this,arguments[1]);break;case 3:n.call(this,arguments[1],arguments[2]);break;default:r=arguments.length,s=new Array(r-1);for(a=1;a<r;a++)s[a-1]=arguments[a];n.apply(this,s)}else if(o(n)){r=arguments.length,s=new Array(r-1);for(a=1;a<r;a++)s[a-1]=arguments[a];f=n.slice(),r=f.length;for(a=0;a<r;a++)f[a].apply(this,s)}return!0},r.prototype.addListener=function(e,t){var n;if(!i(t))throw TypeError(\"listener must be a function\");this._events||(this._events={}),this._events.newListener&&this.emit(\"newListener\",e,i(t.listener)?t.listener:t),this._events[e]?o(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t;if(o(this._events[e])&&!this._events[e].warned){var n;u(this._maxListeners)?n=r.defaultMaxListeners:n=this._maxListeners,n&&n>0&&this._events[e].length>n&&(this._events[e].warned=!0,console.error(\"(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.\",this._events[e].length),console.trace())}return this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function r(){this.removeListener(e,r),n||(n=!0,t.apply(this,arguments))}if(!i(t))throw TypeError(\"listener must be a function\");var n=!1;return r.listener=t,this.on(e,r),this},r.prototype.removeListener=function(e,t){var n,r,s,u;if(!i(t))throw TypeError(\"listener must be a function\");if(!this._events||!this._events[e])return this;n=this._events[e],s=n.length,r=-1;if(n===t||i(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit(\"removeListener\",e,t);else if(o(n)){for(u=s;u-->0;)if(n[u]===t||n[u].listener&&n[u].listener===t){r=u;break}if(r<0)return this;n.length===1?(n.length=0,delete this._events[e]):n.splice(r,1),this._events.removeListener&&this.emit(\"removeListener\",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return arguments.length===0?this._events={}:this._events[e]&&delete this._events[e],this;if(arguments.length===0){for(t in this._events){if(t===\"removeListener\")continue;this.removeAllListeners(t)}return this.removeAllListeners(\"removeListener\"),this._events={},this}n=this._events[e];if(i(n))this.removeListener(e,n);else while(n.length)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){var t;return!this._events||!this._events[e]?t=[]:i(this._events[e])?t=[this._events[e]]:t=this._events[e].slice(),t},r.listenerCount=function(e,t){var n;return!e._events||!e._events[t]?n=0:i(e._events[t])?n=1:n=e._events[t].length,n}},{}],17:[function(e,t,n){typeof Object.create==\"function\"?t.exports=function(t,n){t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(t,n){t.super_=n;var r=function(){};r.prototype=n.prototype,t.prototype=new r,t.prototype.constructor=t}},{}],18:[function(e,t,n){function i(){}var r=t.exports={};r.nextTick=function(){var e=typeof window!=\"undefined\"&&window.setImmediate,t=typeof window!=\"undefined\"&&window.postMessage&&window.addEventListener;if(e)return function(e){return window.setImmediate(e)};if(t){var n=[];return window.addEventListener(\"message\",function(e){var t=e.source;if((t===window||t===null)&&e.data===\"process-tick\"){e.stopPropagation();if(n.length>0){var r=n.shift();r()}}},!0),function(t){n.push(t),window.postMessage(\"process-tick\",\"*\")}}return function(t){setTimeout(t,0)}}(),r.title=\"browser\",r.browser=!0,r.env={},r.argv=[],r.on=i,r.once=i,r.off=i,r.emit=i,r.binding=function(e){throw new Error(\"process.binding is not supported\")},r.cwd=function(){return\"/\"},r.chdir=function(e){throw new Error(\"process.chdir is not supported\")}},{}],19:[function(e,t,n){t.exports=e(14)},{}],20:[function(e,t,n){t.exports=e(15)},{\"./support/isBuffer\":19,\"/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js\":18,inherits:17}]},{},[9])(9)}),ace.define(\"ace/mode/html_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/worker/mirror\",\"ace/mode/html/saxparser\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"../worker/mirror\").Mirror,o=e(\"./html/saxparser\").SAXParser,u={\"expected-doctype-but-got-start-tag\":\"info\",\"expected-doctype-but-got-chars\":\"info\",\"non-html-root\":\"info\"},a=t.Worker=function(e){s.call(this,e),this.setTimeout(400),this.context=null};r.inherits(a,s),function(){this.setOptions=function(e){this.context=e.context},this.onUpdate=function(){var e=this.doc.getValue();if(!e)return;var t=new o,n=[],r=function(){};t.contentHandler={startDocument:r,endDocument:r,startElement:r,endElement:r,characters:r},t.errorHandler={error:function(e,t,r){n.push({row:t.line,column:t.column,text:e,type:u[r]||\"error\"})}},this.context?t.parseFragment(e,this.context):t.parse(e),this.sender.emit(\"error\",n)}}.call(a.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,\"sentinel\",{}),\"sentinel\"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t===\"undefined\"||t===\"boolean\"||t===\"number\"||t===\"string\"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n==\"function\"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r==\"function\"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!=\"function\")throw new TypeError(\"Function.prototype.bind called on incompatible \"+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,\"__defineGetter__\"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,\"XXX\"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)==\"[object Array]\"});var m=Object(\"a\"),g=m[0]!=\"a\"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduce of empty array with no initial value\");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError(\"reduce of empty array with no initial value\")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduceRight of empty array with no initial value\");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError(\"reduceRight of empty array with no initial value\")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!=\"object\")throw new TypeError(\"typeof prototype[\"+typeof t+\"] != 'object'\");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document==\"undefined\"||w(document.createElement(\"div\"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T=\"Property description must be an object: \",N=\"Object.defineProperty called on non-object: \",C=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(t,n,r){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(N+t);if(typeof r!=\"object\"&&typeof r!=\"function\"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,\"value\"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,\"get\")&&l(t,n,r.get),f(r,\"set\")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n==\"function\"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n=\"\";while(f(t,n))n+=\"?\";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!=\"object\"&&typeof e!=\"function\"||e===null)throw new TypeError(\"Object.keys called on a non-object\");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=\"\t\\n\u000b\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\";if(!String.prototype.trim||_.trim()){_=\"[\"+_+\"]\";var D=new RegExp(\"^\"+_+_+\"*\"),P=new RegExp(_+_+\"*$\");String.prototype.trim=function(){return String(this).replace(D,\"\").replace(P,\"\")}}var F=function(e){if(e==null)throw new TypeError(\"can't convert \"+e+\" to object\");return Object(e)}})"
  },
  {
    "path": "lib/src-min-noconflict/worker-javascript.js",
    "content": "\"no use strict\";(function(e){function t(e,t){var n=e,r=\"\";while(n){var i=t[n];if(typeof i==\"string\")return i+r;if(i)return i.location.replace(/\\/*$/,\"/\")+(r||i.main||i.name);if(i===!1)return\"\";var s=n.lastIndexOf(\"/\");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!=\"undefined\"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:\"error\",data:{message:e,data:i.data,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf(\"!\")!==-1){var r=n.split(\"!\");return e.normalizeModule(t,r[0])+\"!\"+e.normalizeModule(t,r[1])}if(n.charAt(0)==\".\"){var i=t.split(\"/\").slice(0,-1).join(\"/\");n=(i?i+\"/\":\"\")+n;while(n.indexOf(\".\")!==-1&&s!=n){var s=n;n=n.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log(\"unable to load \"+i);var o=t(i,e.require.tlns);return o.slice(-3)!=\".js\"&&(o+=\".js\"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!=\"string\"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!=\"function\"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=[\"require\",\"exports\",\"module\"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case\"require\":return i;case\"exports\":return e.exports;case\"module\":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},require.tlns={},e.initBaseUrls=function(t){for(var n in t)require.tlns[n]=t[n]},e.initSender=function(){var n=e.require(\"ace/lib/event_emitter\").EventEmitter,r=e.require(\"ace/lib/oop\"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:\"call\",id:t,data:e})},this.emit=function(e,t){postMessage({type:\"event\",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error(\"Unknown command:\"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),require(\"ace/lib/es5-shim\"),r=e.sender=e.initSender();var s=require(i.module)[i.classname];n=e.main=new s(r)}}})(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e==\"object\"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e==\"object\"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e,t){throw console.log(\"Invalid Delta:\",e),\"Invalid Delta: \"+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!=\"insert\"&&t.action!=\"remove\"&&r(t,\"delta.action must be 'insert' or 'remove'\"),t.lines instanceof Array||r(t,\"delta.lines must be an Array\"),(!t.start||!t.end)&&r(t,\"delta.start/end must be an present\");var n=t.start;i(e,t.start)||r(t,\"delta.start must be contained in document\");var s=t.end;t.action==\"remove\"&&!i(e,s)&&r(t,\"delta.end must contained in document for 'remove' actions\");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,\"delta.range must match delta lines\")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||\"\";switch(t.action){case\"insert\":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case\"remove\":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!=\"object\"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?\"unshift\":\"push\"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n==\"undefined\"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action==\"insert\",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal(\"change\",{old:i,value:r})},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./apply_delta\").applyDelta,s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=function(e){this.$lines=[\"\"],e.length===0?this.$lines=[\"\"]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},\"aaa\".split(/a/).length===0?this.$split=function(e){return e.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:this.$split=function(e){return e.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=t?t[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal(\"changeNewLineMode\")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==\"\\r\\n\"||e==\"\\r\"||e==\"\\n\"},this.getLine=function(e){return this.$lines[e]||\"\"},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||\"\").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(e,[\"\",\"\"])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:\"insert\",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([\"\"]),n=0):(t=[\"\"].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:\"insert\",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:\"remove\",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:\"remove\",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:\"remove\",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action==\"insert\";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal(\"change\",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(\"\"),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action==\"insert\"?\"remove\":\"insert\",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split(\"\").reverse().join(\"\")},t.stringRepeat=function(e,t){var n=\"\";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\\s\\s*/,i=/\\s\\s*$/;t.stringTrimLeft=function(e){return e.replace(r,\"\")},t.stringTrimRight=function(e){return e.replace(i,\"\")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]==\"object\"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!=\"object\"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}if(Object.prototype.toString.call(e)!==\"[object Object]\")return e;t={};for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},t.escapeHTML=function(e){return e.replace(/&/g,\"&#38;\").replace(/\"/g,\"&#34;\").replace(/'/g,\"&#39;\").replace(/</g,\"&#60;\")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=e(\"../document\").Document,s=e(\"../lib/lang\"),o=t.Mirror=function(e){this.sender=e;var t=this.doc=new i(\"\"),n=this.deferredUpdate=s.delayedCall(this.onUpdate.bind(this)),r=this;e.on(\"change\",function(e){var i=e.data;if(i[0].start)t.applyDeltas(i);else for(var s=0;s<i.length;s+=2){if(Array.isArray(i[s+1]))var o={action:\"insert\",start:i[s],lines:i[s+1]};else var o={action:\"remove\",start:i[s],end:i[s+1]};t.applyDelta(o,!0)}if(r.$timeout)return n.schedule(r.$timeout);r.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),ace.define(\"ace/mode/javascript/jshint\",[\"require\",\"exports\",\"module\"],function(e,t,n){n.exports=function r(t,n,i){function o(u,a){if(!n[u]){if(!t[u]){var f=typeof e==\"function\"&&e;if(!a&&f)return f(u,!0);if(s)return s(u,!0);var l=new Error(\"Cannot find module '\"+u+\"'\");throw l.code=\"MODULE_NOT_FOUND\",l}var c=n[u]={exports:{}};t[u][0].call(c.exports,function(e){var n=t[u][1][e];return o(n?n:e)},c,c.exports,r,t,n,i)}return n[u].exports}var s=typeof e==\"function\"&&e;for(var u=0;u<i.length;u++)o(i[u]);return o(i[0])}({\"/node_modules/browserify/node_modules/events/events.js\":[function(e,t,n){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||undefined}function i(e){return typeof e==\"function\"}function s(e){return typeof e==\"number\"}function o(e){return typeof e==\"object\"&&e!==null}function u(e){return e===void 0}t.exports=r,r.EventEmitter=r,r.prototype._events=undefined,r.prototype._maxListeners=undefined,r.defaultMaxListeners=10,r.prototype.setMaxListeners=function(e){if(!s(e)||e<0||isNaN(e))throw TypeError(\"n must be a positive number\");return this._maxListeners=e,this},r.prototype.emit=function(e){var t,n,r,s,a,f;this._events||(this._events={});if(e===\"error\")if(!this._events.error||o(this._events.error)&&!this._events.error.length)throw t=arguments[1],t instanceof Error?t:TypeError('Uncaught, unspecified \"error\" event.');n=this._events[e];if(u(n))return!1;if(i(n))switch(arguments.length){case 1:n.call(this);break;case 2:n.call(this,arguments[1]);break;case 3:n.call(this,arguments[1],arguments[2]);break;default:r=arguments.length,s=new Array(r-1);for(a=1;a<r;a++)s[a-1]=arguments[a];n.apply(this,s)}else if(o(n)){r=arguments.length,s=new Array(r-1);for(a=1;a<r;a++)s[a-1]=arguments[a];f=n.slice(),r=f.length;for(a=0;a<r;a++)f[a].apply(this,s)}return!0},r.prototype.addListener=function(e,t){var n;if(!i(t))throw TypeError(\"listener must be a function\");this._events||(this._events={}),this._events.newListener&&this.emit(\"newListener\",e,i(t.listener)?t.listener:t),this._events[e]?o(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t;if(o(this._events[e])&&!this._events[e].warned){var n;u(this._maxListeners)?n=r.defaultMaxListeners:n=this._maxListeners,n&&n>0&&this._events[e].length>n&&(this._events[e].warned=!0,console.error(\"(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.\",this._events[e].length),typeof console.trace==\"function\"&&console.trace())}return this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function r(){this.removeListener(e,r),n||(n=!0,t.apply(this,arguments))}if(!i(t))throw TypeError(\"listener must be a function\");var n=!1;return r.listener=t,this.on(e,r),this},r.prototype.removeListener=function(e,t){var n,r,s,u;if(!i(t))throw TypeError(\"listener must be a function\");if(!this._events||!this._events[e])return this;n=this._events[e],s=n.length,r=-1;if(n===t||i(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit(\"removeListener\",e,t);else if(o(n)){for(u=s;u-->0;)if(n[u]===t||n[u].listener&&n[u].listener===t){r=u;break}if(r<0)return this;n.length===1?(n.length=0,delete this._events[e]):n.splice(r,1),this._events.removeListener&&this.emit(\"removeListener\",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return arguments.length===0?this._events={}:this._events[e]&&delete this._events[e],this;if(arguments.length===0){for(t in this._events){if(t===\"removeListener\")continue;this.removeAllListeners(t)}return this.removeAllListeners(\"removeListener\"),this._events={},this}n=this._events[e];if(i(n))this.removeListener(e,n);else while(n.length)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){var t;return!this._events||!this._events[e]?t=[]:i(this._events[e])?t=[this._events[e]]:t=this._events[e].slice(),t},r.listenerCount=function(e,t){var n;return!e._events||!e._events[t]?n=0:i(e._events[t])?n=1:n=e._events[t].length,n}},{}],\"/node_modules/jshint/data/ascii-identifier-data.js\":[function(e,t,n){var r=[];for(var i=0;i<128;i++)r[i]=i===36||i>=65&&i<=90||i===95||i>=97&&i<=122;var s=[];for(var i=0;i<128;i++)s[i]=r[i]||i>=48&&i<=57;t.exports={asciiIdentifierStartTable:r,asciiIdentifierPartTable:s}},{}],\"/node_modules/jshint/lodash.js\":[function(e,t,n){(function(e){(function(){function $(e,t,n){var r=e.length,i=n?r:-1;while(n?i--:++i<r)if(t(e[i],i,e))return i;return-1}function J(e,t,n){if(t!==t)return G(e,n);var r=n-1,i=e.length;while(++r<i)if(e[r]===t)return r;return-1}function K(e){return typeof e==\"function\"||!1}function Q(e){return typeof e==\"string\"?e:e==null?\"\":e+\"\"}function G(e,t,n){var r=e.length,i=t+(n?0:-1);while(n?i--:++i<r){var s=e[i];if(s!==s)return i}return-1}function Y(e){return!!e&&typeof e==\"object\"}function Ct(){}function Lt(e,t){var n=-1,r=e.length;t||(t=Array(r));while(++n<r)t[n]=e[n];return t}function At(e,t){var n=-1,r=e.length;while(++n<r)if(t(e[n],n,e)===!1)break;return e}function Ot(e,t){var n=-1,r=e.length,i=-1,s=[];while(++n<r){var o=e[n];t(o,n,e)&&(s[++i]=o)}return s}function Mt(e,t){var n=-1,r=e.length,i=Array(r);while(++n<r)i[n]=t(e[n],n,e);return i}function _t(e){var t=-1,n=e.length,r=wt;while(++t<n){var i=e[t];i>r&&(r=i)}return r}function Dt(e,t){var n=-1,r=e.length;while(++n<r)if(t(e[n],n,e))return!0;return!1}function Pt(e,t,n){var i=rr(t);lt.apply(i,bn(t));var s=-1,o=i.length;while(++s<o){var u=i[s],a=e[u],f=n(a,t[u],u,e,t);if((f===f?f!==a:a===a)||a===r&&!(u in e))e[u]=f}return e}function Bt(e,t,n){n||(n={});var r=-1,i=t.length;while(++r<i){var s=t[r];n[s]=e[s]}return n}function jt(e,t,n){var i=typeof e;return i==\"function\"?t===r?e:on(e,t,n):e==null?lr:i==\"object\"?Jt(e):t===r?cr(e):Kt(e,t)}function Ft(e,t,n,i,s,u,a){var f;n&&(f=s?n(e,i,s):n(e));if(f!==r)return f;if(!Jn(e))return e;var l=Xn(e);if(l){f=wn(e);if(!t)return Lt(e,f)}else{var h=rt.call(e),p=h==c;if(!(h==d||h==o||p&&!s))return F[h]?Sn(e,h,t):s?e:{};f=En(p?{}:e);if(!t)return Ht(f,e)}u||(u=[]),a||(a=[]);var v=u.length;while(v--)if(u[v]==e)return a[v];return u.push(e),a.push(f),(l?At:zt)(e,function(r,i){f[i]=Ft(r,t,n,i,e,u,a)}),f}function qt(e,t){var n=[];return It(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}function Ut(e,t){return Rt(e,t,ir)}function zt(e,t){return Rt(e,t,rr)}function Wt(e,t,n){if(e==null)return;n!==r&&n in On(e)&&(t=[n]);var i=-1,s=t.length;while(e!=null&&++i<s)var o=e=e[t[i]];return o}function Xt(e,t,n,r,i,s){if(e===t)return e!==0||1/e==1/t;var o=typeof e,u=typeof t;return o!=\"function\"&&o!=\"object\"&&u!=\"function\"&&u!=\"object\"||e==null||t==null?e!==e&&t!==t:Vt(e,t,Xt,n,r,i,s)}function Vt(e,t,n,r,i,s,a){var f=Xn(e),l=Xn(t),c=u,h=u;f||(c=rt.call(e),c==o?c=d:c!=d&&(f=Zn(e))),l||(h=rt.call(t),h==o?h=d:h!=d&&(l=Zn(t)));var p=c==d,v=h==d,m=c==h;if(m&&!f&&!p)return dn(e,t,c);if(!i){var g=p&&nt.call(e,\"__wrapped__\"),y=v&&nt.call(t,\"__wrapped__\");if(g||y)return n(g?e.value():e,y?t.value():t,r,i,s,a)}if(!m)return!1;s||(s=[]),a||(a=[]);var b=s.length;while(b--)if(s[b]==e)return a[b]==t;s.push(e),a.push(t);var w=(f?pn:vn)(e,t,n,r,i,s,a);return s.pop(),a.pop(),w}function $t(e,t,n,i,s){var o=-1,u=t.length,a=!s;while(++o<u)if(a&&i[o]?n[o]!==e[t[o]]:!(t[o]in e))return!1;o=-1;while(++o<u){var f=t[o],l=e[f],c=n[o];if(a&&i[o])var h=l!==r||f in e;else h=s?s(l,c,f):r,h===r&&(h=Xt(c,l,s,!0));if(!h)return!1}return!0}function Jt(e){var t=rr(e),n=t.length;if(!n)return fr(!0);if(n==1){var i=t[0],s=e[i];if(kn(s))return function(e){return e==null?!1:e[i]===s&&(s!==r||i in On(e))}}var o=Array(n),u=Array(n);while(n--)s=e[t[n]],o[n]=s,u[n]=kn(s);return function(e){return e!=null&&$t(On(e),t,o,u)}}function Kt(e,t){var n=Xn(e),i=Nn(e)&&kn(t),s=e+\"\";return e=Mn(e),function(o){if(o==null)return!1;var u=s;o=On(o);if((n||!i)&&!(u in o)){o=e.length==1?o:Wt(o,en(e,0,-1));if(o==null)return!1;u=Pn(e),o=On(o)}return o[u]===t?t!==r||u in o:Xt(t,o[u],null,!0)}}function Qt(e,t,n,i,s){if(!Jn(e))return e;var o=Cn(t.length)&&(Xn(t)||Zn(t));if(!o){var u=rr(t);lt.apply(u,bn(t))}return At(u||t,function(a,f){u&&(f=a,a=t[f]);if(Y(a))i||(i=[]),s||(s=[]),Gt(e,t,f,Qt,n,i,s);else{var l=e[f],c=n?n(l,a,f,e,t):r,h=c===r;h&&(c=a),(o||c!==r)&&(h||(c===c?c!==l:l===l))&&(e[f]=c)}}),e}function Gt(e,t,n,i,s,o,u){var a=o.length,f=t[n];while(a--)if(o[a]==f){e[n]=u[a];return}var l=e[n],c=s?s(l,f,n,e,t):r,h=c===r;h&&(c=f,Cn(f.length)&&(Xn(f)||Zn(f))?c=Xn(l)?l:yn(l)?Lt(l):[]:Gn(f)||Wn(f)?c=Wn(l)?er(l):Gn(l)?l:{}:h=!1),o.push(f),u.push(c);if(h)e[n]=i(c,f,s,o,u);else if(c===c?c!==l:l===l)e[n]=c}function Yt(e){return function(t){return t==null?r:t[e]}}function Zt(e){var t=e+\"\";return e=Mn(e),function(n){return Wt(n,e,t)}}function en(e,t,n){var i=-1,s=e.length;t=t==null?0:+t||0,t<0&&(t=-t>s?0:s+t),n=n===r||n>s?s:+n||0,n<0&&(n+=s),s=t>n?0:n-t>>>0,t>>>=0;var o=Array(s);while(++i<s)o[i]=e[i+t];return o}function tn(e,t){var n;return It(e,function(e,r,i){return n=t(e,r,i),!n}),!!n}function nn(e,t){var n=-1,r=t.length,i=Array(r);while(++n<r)i[n]=e[t[n]];return i}function rn(e,t,n){var r=0,i=e?e.length:r;if(typeof t==\"number\"&&t===t&&i<=xt){while(r<i){var s=r+i>>>1,o=e[s];(n?o<=t:o<t)?r=s+1:i=s}return i}return sn(e,t,lr,n)}function sn(e,t,n,i){t=n(t);var s=0,o=e?e.length:0,u=t!==t,a=t===r;while(s<o){var f=ut((s+o)/2),l=n(e[f]),c=l===l;if(u)var h=c||i;else a?h=c&&(i||l!==r):h=i?l<=t:l<t;h?s=f+1:o=f}return bt(o,St)}function on(e,t,n){if(typeof e!=\"function\")return lr;if(t===r)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 3:return function(n,r,i){return e.call(t,n,r,i)};case 4:return function(n,r,i,s){return e.call(t,n,r,i,s)};case 5:return function(n,r,i,s,o){return e.call(t,n,r,i,s,o)}}return function(){return e.apply(t,arguments)}}function un(e){return ot.call(e,0)}function an(e){return Un(function(t,n){var r=-1,i=t==null?0:n.length,s=i>2&&n[i-2],o=i>2&&n[2],u=i>1&&n[i-1];typeof s==\"function\"?(s=on(s,u,5),i-=2):(s=typeof u==\"function\"?u:null,i-=s?1:0),o&&Tn(n[0],n[1],o)&&(s=i<3?null:s,i=1);while(++r<i){var a=n[r];a&&e(t,a,s)}return t})}function fn(e,t){return function(n,r){var i=n?yn(n):0;if(!Cn(i))return e(n,r);var s=t?i:-1,o=On(n);while(t?s--:++s<i)if(r(o[s],s,o)===!1)break;return n}}function ln(e){return function(t,n,r){var i=On(t),s=r(t),o=s.length,u=e?o:-1;while(e?u--:++u<o){var a=s[u];if(n(i[a],a,i)===!1)break}return t}}function cn(e){return function(t,n,r){return!t||!t.length?-1:(n=mn(n,r,3),$(t,n,e))}}function hn(e,t){return function(n,i,s){return typeof i==\"function\"&&s===r&&Xn(n)?e(n,i):t(n,on(i,s,3))}}function pn(e,t,n,i,s,o,u){var a=-1,f=e.length,l=t.length,c=!0;if(f!=l&&!(s&&l>f))return!1;while(c&&++a<f){var h=e[a],p=t[a];c=r,i&&(c=s?i(p,h,a):i(h,p,a));if(c===r)if(s){var d=l;while(d--){p=t[d],c=h&&h===p||n(h,p,i,s,o,u);if(c)break}}else c=h&&h===p||n(h,p,i,s,o,u)}return!!c}function dn(e,t,n){switch(n){case a:case f:return+e==+t;case l:return e.name==t.name&&e.message==t.message;case p:return e!=+e?t!=+t:e==0?1/e==1/t:e==+t;case v:case g:return e==t+\"\"}return!1}function vn(e,t,n,i,s,o,u){var a=rr(e),f=a.length,l=rr(t),c=l.length;if(f!=c&&!s)return!1;var h=s,p=-1;while(++p<f){var d=a[p],v=s?d in t:nt.call(t,d);if(v){var m=e[d],g=t[d];v=r,i&&(v=s?i(g,m,d):i(m,g,d)),v===r&&(v=m&&m===g||n(m,g,i,s,o,u))}if(!v)return!1;h||(h=d==\"constructor\")}if(!h){var y=e.constructor,b=t.constructor;if(y!=b&&\"constructor\"in e&&\"constructor\"in t&&!(typeof y==\"function\"&&y instanceof y&&typeof b==\"function\"&&b instanceof b))return!1}return!0}function mn(e,t,n){var r=Ct.callback||ar;return r=r===ar?jt:r,n?r(e,t,n):r}function gn(e,t,n){var r=Ct.indexOf||Dn;return r=r===Dn?J:r,e?r(e,t,n):r}function wn(e){var t=e.length,n=new e.constructor(t);return t&&typeof e[0]==\"string\"&&nt.call(e,\"index\")&&(n.index=e.index,n.input=e.input),n}function En(e){var t=e.constructor;return typeof t==\"function\"&&t instanceof t||(t=Object),new t}function Sn(e,t,n){var r=e.constructor;switch(t){case b:return un(e);case a:case f:return new r(+e);case w:case E:case S:case x:case T:case N:case C:case k:case L:var i=e.buffer;return new r(n?un(i):i,e.byteOffset,e.length);case p:case g:return new r(e);case v:var s=new r(e.source,H.exec(e));s.lastIndex=e.lastIndex}return s}function xn(e,t){return e=+e,t=t==null?Nt:t,e>-1&&e%1==0&&e<t}function Tn(e,t,n){if(!Jn(n))return!1;var r=typeof t;if(r==\"number\")var i=yn(n),s=Cn(i)&&xn(t,i);else s=r==\"string\"&&t in n;if(s){var o=n[t];return e===e?e===o:o!==o}return!1}function Nn(e,t){var n=typeof e;if(n==\"string\"&&O.test(e)||n==\"number\")return!0;if(Xn(e))return!1;var r=!A.test(e);return r||t!=null&&e in On(t)}function Cn(e){return typeof e==\"number\"&&e>-1&&e%1==0&&e<=Nt}function kn(e){return e===e&&(e===0?1/e>0:!Jn(e))}function Ln(e){var t,n=Ct.support;if(!Y(e)||rt.call(e)!=d||!nt.call(e,\"constructor\")&&(t=e.constructor,typeof t==\"function\"&&!(t instanceof t)))return!1;var i;return Ut(e,function(e,t){i=t}),i===r||nt.call(e,i)}function An(e){var t=ir(e),n=t.length,r=n&&e.length,i=Ct.support,s=r&&Cn(r)&&(Xn(e)||i.nonEnumArgs&&Wn(e)),o=-1,u=[];while(++o<n){var a=t[o];(s&&xn(a,r)||nt.call(e,a))&&u.push(a)}return u}function On(e){return Jn(e)?e:Object(e)}function Mn(e){if(Xn(e))return e;var t=[];return Q(e).replace(M,function(e,n,r,i){t.push(r?i.replace(P,\"$1\"):n||e)}),t}function Dn(e,t,n){var r=e?e.length:0;if(!r)return-1;if(typeof n==\"number\")n=n<0?yt(r+n,0):n;else if(n){var i=rn(e,t),s=e[i];return(t===t?t===s:s!==s)?i:-1}return J(e,t,n||0)}function Pn(e){var t=e?e.length:0;return t?e[t-1]:r}function Hn(e,t,n){var r=e?e.length:0;return r?(n&&typeof n!=\"number\"&&Tn(e,t,n)&&(t=0,n=r),en(e,t,n)):[]}function Bn(e){var t=-1,n=(e&&e.length&&_t(Mt(e,yn)))>>>0,r=Array(n);while(++t<n)r[t]=Mt(e,Yt(t));return r}function In(e,t,n,r){var i=e?yn(e):0;return Cn(i)||(e=or(e),i=e.length),i?(typeof n!=\"number\"||r&&Tn(t,n,r)?n=0:n=n<0?yt(i+n,0):n||0,typeof e==\"string\"||!Xn(e)&&Yn(e)?n<i&&e.indexOf(t,n)>-1:gn(e,t,n)>-1):!1}function qn(e,t,n){var r=Xn(e)?Ot:qt;return t=mn(t,n,3),r(e,function(e,n,r){return!t(e,n,r)})}function Rn(e,t,n){var i=Xn(e)?Dt:tn;n&&Tn(e,t,n)&&(t=null);if(typeof t!=\"function\"||n!==r)t=mn(t,n,3);return i(e,t)}function Un(e,t){if(typeof e!=\"function\")throw new TypeError(s);return t=yt(t===r?e.length-1:+t||0,0),function(){var n=arguments,r=-1,i=yt(n.length-t,0),s=Array(i);while(++r<i)s[r]=n[t+r];switch(t){case 0:return e.call(this,s);case 1:return e.call(this,n[0],s);case 2:return e.call(this,n[0],n[1],s)}var o=Array(t+1);r=-1;while(++r<t)o[r]=n[r];return o[t]=s,e.apply(this,o)}}function zn(e,t,n,r){return t&&typeof t!=\"boolean\"&&Tn(e,t,n)?t=!1:typeof t==\"function\"&&(r=n,n=t,t=!1),n=typeof n==\"function\"&&on(n,r,1),Ft(e,t,n)}function Wn(e){var t=Y(e)?e.length:r;return Cn(t)&&rt.call(e)==o}function Vn(e){if(e==null)return!0;var t=yn(e);return Cn(t)&&(Xn(e)||Yn(e)||Wn(e)||Y(e)&&$n(e.splice))?!t:!rr(e).length}function Jn(e){var t=typeof e;return t==\"function\"||!!e&&t==\"object\"}function Kn(e){return e==null?!1:rt.call(e)==c?it.test(tt.call(e)):Y(e)&&B.test(e)}function Qn(e){return typeof e==\"number\"||Y(e)&&rt.call(e)==p}function Yn(e){return typeof e==\"string\"||Y(e)&&rt.call(e)==g}function Zn(e){return Y(e)&&Cn(e.length)&&!!j[rt.call(e)]}function er(e){return Bt(e,ir(e))}function nr(e,t){if(e==null)return!1;var n=nt.call(e,t);return!n&&!Nn(t)&&(t=Mn(t),e=t.length==1?e:Wt(e,en(t,0,-1)),t=Pn(t),n=e!=null&&nt.call(e,t)),n}function ir(e){if(e==null)return[];Jn(e)||(e=Object(e));var t=e.length;t=t&&Cn(t)&&(Xn(e)||kt.nonEnumArgs&&Wn(e))&&t||0;var n=e.constructor,r=-1,i=typeof n==\"function\"&&n.prototype===e,s=Array(t),o=t>0;while(++r<t)s[r]=r+\"\";for(var u in e)(!o||!xn(u,t))&&(u!=\"constructor\"||!i&&!!nt.call(e,u))&&s.push(u);return s}function or(e){return nn(e,rr(e))}function ur(e){return e=Q(e),e&&D.test(e)?e.replace(_,\"\\\\$&\"):e}function ar(e,t,n){return n&&Tn(e,t,n)&&(t=null),jt(e,t)}function fr(e){return function(){return e}}function lr(e){return e}function cr(e){return Nn(e)?Yt(e):Zt(e)}var r,i=\"3.7.0\",s=\"Expected a function\",o=\"[object Arguments]\",u=\"[object Array]\",a=\"[object Boolean]\",f=\"[object Date]\",l=\"[object Error]\",c=\"[object Function]\",h=\"[object Map]\",p=\"[object Number]\",d=\"[object Object]\",v=\"[object RegExp]\",m=\"[object Set]\",g=\"[object String]\",y=\"[object WeakMap]\",b=\"[object ArrayBuffer]\",w=\"[object Float32Array]\",E=\"[object Float64Array]\",S=\"[object Int8Array]\",x=\"[object Int16Array]\",T=\"[object Int32Array]\",N=\"[object Uint8Array]\",C=\"[object Uint8ClampedArray]\",k=\"[object Uint16Array]\",L=\"[object Uint32Array]\",A=/\\.|\\[(?:[^[\\]]+|([\"'])(?:(?!\\1)[^\\n\\\\]|\\\\.)*?)\\1\\]/,O=/^\\w*$/,M=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\n\\\\]|\\\\.)*?)\\2)\\]/g,_=/[.*+?^${}()|[\\]\\/\\\\]/g,D=RegExp(_.source),P=/\\\\(\\\\)?/g,H=/\\w*$/,B=/^\\[object .+?Constructor\\]$/,j={};j[w]=j[E]=j[S]=j[x]=j[T]=j[N]=j[C]=j[k]=j[L]=!0,j[o]=j[u]=j[b]=j[a]=j[f]=j[l]=j[c]=j[h]=j[p]=j[d]=j[v]=j[m]=j[g]=j[y]=!1;var F={};F[o]=F[u]=F[b]=F[a]=F[f]=F[w]=F[E]=F[S]=F[x]=F[T]=F[p]=F[d]=F[v]=F[g]=F[N]=F[C]=F[k]=F[L]=!0,F[l]=F[c]=F[h]=F[m]=F[y]=!1;var I={\"function\":!0,object:!0},q=I[typeof n]&&n&&!n.nodeType&&n,R=I[typeof t]&&t&&!t.nodeType&&t,U=q&&R&&typeof e==\"object\"&&e&&e.Object&&e,z=I[typeof self]&&self&&self.Object&&self,W=I[typeof window]&&window&&window.Object&&window,X=R&&R.exports===q&&q,V=U||W!==(this&&this.window)&&W||z||this,Z=Array.prototype,et=Object.prototype,tt=Function.prototype.toString,nt=et.hasOwnProperty,rt=et.toString,it=RegExp(\"^\"+ur(rt).replace(/toString|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),st=Kn(st=V.ArrayBuffer)&&st,ot=Kn(ot=st&&(new st(0)).slice)&&ot,ut=Math.floor,at=Kn(at=Object.getOwnPropertySymbols)&&at,ft=Kn(ft=Object.getPrototypeOf)&&ft,lt=Z.push,ct=Kn(Object.preventExtensions=Object.preventExtensions)&&ct,ht=et.propertyIsEnumerable,pt=Kn(pt=V.Uint8Array)&&pt,dt=function(){try{var e=Kn(e=V.Float64Array)&&e,t=new e(new st(10),0,1)&&e}catch(n){}return t}(),vt=function(){var e={1:0},t=ct&&Kn(t=Object.assign)&&t;try{t(ct(e),\"xo\")}catch(n){}return!e[1]&&t}(),mt=Kn(mt=Array.isArray)&&mt,gt=Kn(gt=Object.keys)&&gt,yt=Math.max,bt=Math.min,wt=Number.NEGATIVE_INFINITY,Et=Math.pow(2,32)-1,St=Et-1,xt=Et>>>1,Tt=dt?dt.BYTES_PER_ELEMENT:0,Nt=Math.pow(2,53)-1,kt=Ct.support={};(function(e){var t=function(){this.x=e},n={0:e,length:e},r=[];t.prototype={valueOf:e,y:e};for(var i in new t)r.push(i);kt.funcDecomp=/\\bthis\\b/.test(function(){return this}),kt.funcNames=typeof Function.name==\"string\";try{kt.nonEnumArgs=!ht.call(arguments,1)}catch(s){kt.nonEnumArgs=!0}})(1,0);var Ht=vt||function(e,t){return t==null?e:Bt(t,bn(t),Bt(t,rr(t),e))},It=fn(zt),Rt=ln();ot||(un=!st||!pt?fr(null):function(e){var t=e.byteLength,n=dt?ut(t/Tt):0,r=n*Tt,i=new st(t);if(n){var s=new dt(i,0,n);s.set(new dt(e,0,n))}return t!=r&&(s=new pt(i,r),s.set(new pt(e,r))),i});var yn=Yt(\"length\"),bn=at?function(e){return at(On(e))}:fr([]),_n=cn(!0),jn=Un(Bn),Fn=hn(At,It),Xn=mt||function(e){return Y(e)&&Cn(e.length)&&rt.call(e)==u},$n=K(/x/)||pt&&!K(pt)?function(e){return rt.call(e)==c}:K,Gn=ft?function(e){if(!e||rt.call(e)!=d)return!1;var t=e.valueOf,n=Kn(t)&&(n=ft(t))&&ft(n);return n?e==n||ft(e)==n:Ln(e)}:Ln,tr=an(function(e,t,n){return n?Pt(e,t,n):Ht(e,t)}),rr=gt?function(e){if(e)var t=e.constructor,n=e.length;return typeof t==\"function\"&&t.prototype===e||typeof e!=\"function\"&&Cn(n)?An(e):Jn(e)?gt(e):[]}:An,sr=an(Qt);Ct.assign=tr,Ct.callback=ar,Ct.constant=fr,Ct.forEach=Fn,Ct.keys=rr,Ct.keysIn=ir,Ct.merge=sr,Ct.property=cr,Ct.reject=qn,Ct.restParam=Un,Ct.slice=Hn,Ct.toPlainObject=er,Ct.unzip=Bn,Ct.values=or,Ct.zip=jn,Ct.each=Fn,Ct.extend=tr,Ct.iteratee=ar,Ct.clone=zn,Ct.escapeRegExp=ur,Ct.findLastIndex=_n,Ct.has=nr,Ct.identity=lr,Ct.includes=In,Ct.indexOf=Dn,Ct.isArguments=Wn,Ct.isArray=Xn,Ct.isEmpty=Vn,Ct.isFunction=$n,Ct.isNative=Kn,Ct.isNumber=Qn,Ct.isObject=Jn,Ct.isPlainObject=Gn,Ct.isString=Yn,Ct.isTypedArray=Zn,Ct.last=Pn,Ct.some=Rn,Ct.any=Rn,Ct.contains=In,Ct.include=In,Ct.VERSION=i,q&&R?X?(R.exports=Ct)._=Ct:q._=Ct:V._=Ct}).call(this)}).call(this,typeof global!=\"undefined\"?global:typeof self!=\"undefined\"?self:typeof window!=\"undefined\"?window:{})},{}],\"/node_modules/jshint/src/jshint.js\":[function(e,t,n){var r=e(\"../lodash\"),i=e(\"events\"),s=e(\"./vars.js\"),o=e(\"./messages.js\"),u=e(\"./lex.js\").Lexer,a=e(\"./reg.js\"),f=e(\"./state.js\").state,l=e(\"./style.js\"),c=e(\"./options.js\"),h=e(\"./scope-manager.js\"),p=function(){\"use strict\";function k(e,t){return e=e.trim(),/^[+-]W\\d{3}$/g.test(e)?!0:c.validNames.indexOf(e)===-1&&t.type!==\"jslint\"&&!r.has(c.removed,e)?(q(\"E001\",t,e),!1):!0}function L(e){return Object.prototype.toString.call(e)===\"[object String]\"}function A(e,t){return e?!e.identifier||e.value!==t?!1:!0:!1}function O(e){if(!e.reserved)return!1;var t=e.meta;if(t&&t.isFutureReservedWord&&f.inES5()){if(!t.es5)return!1;if(t.strictOnly&&!f.option.strict&&!f.isStrict())return!1;if(e.isProperty)return!1}return!0}function M(e,t){return e.replace(/\\{([^{}]*)\\}/g,function(e,n){var r=t[n];return typeof r==\"string\"||typeof r==\"number\"?r:e})}function D(e,t){Object.keys(t).forEach(function(n){if(r.has(p.blacklist,n))return;e[n]=t[n]})}function P(){if(f.option.enforceall){for(var e in c.bool.enforcing)f.option[e]===undefined&&!c.noenforceall[e]&&(f.option[e]=!0);for(var t in c.bool.relaxing)f.option[t]===undefined&&(f.option[t]=!1)}}function H(){P(),!f.option.esversion&&!f.option.moz&&(f.option.es3?f.option.esversion=3:f.option.esnext?f.option.esversion=6:f.option.esversion=5),f.inES5()&&D(S,s.ecmaIdentifiers[5]),f.inES6()&&D(S,s.ecmaIdentifiers[6]),f.option.module&&(f.option.strict===!0&&(f.option.strict=\"global\"),f.inES6()||F(\"W134\",f.tokens.next,\"module\",6)),f.option.couch&&D(S,s.couch),f.option.qunit&&D(S,s.qunit),f.option.rhino&&D(S,s.rhino),f.option.shelljs&&(D(S,s.shelljs),D(S,s.node)),f.option.typed&&D(S,s.typed),f.option.phantom&&(D(S,s.phantom),f.option.strict===!0&&(f.option.strict=\"global\")),f.option.prototypejs&&D(S,s.prototypejs),f.option.node&&(D(S,s.node),D(S,s.typed),f.option.strict===!0&&(f.option.strict=\"global\")),f.option.devel&&D(S,s.devel),f.option.dojo&&D(S,s.dojo),f.option.browser&&(D(S,s.browser),D(S,s.typed)),f.option.browserify&&(D(S,s.browser),D(S,s.typed),D(S,s.browserify),f.option.strict===!0&&(f.option.strict=\"global\")),f.option.nonstandard&&D(S,s.nonstandard),f.option.jasmine&&D(S,s.jasmine),f.option.jquery&&D(S,s.jquery),f.option.mootools&&D(S,s.mootools),f.option.worker&&D(S,s.worker),f.option.wsh&&D(S,s.wsh),f.option.globalstrict&&f.option.strict!==!1&&(f.option.strict=\"global\"),f.option.yui&&D(S,s.yui),f.option.mocha&&D(S,s.mocha)}function B(e,t,n){var r=Math.floor(t/f.lines.length*100),i=o.errors[e].desc;throw{name:\"JSHintError\",line:t,character:n,message:i+\" (\"+r+\"% scanned).\",raw:i,code:e}}function j(){var e=f.ignoredLines;if(r.isEmpty(e))return;p.errors=r.reject(p.errors,function(t){return e[t.line]})}function F(e,t,n,r,i,s){var u,a,l,c;if(/^W\\d{3}$/.test(e)){if(f.ignored[e])return;c=o.warnings[e]}else/E\\d{3}/.test(e)?c=o.errors[e]:/I\\d{3}/.test(e)&&(c=o.info[e]);return t=t||f.tokens.next||{},t.id===\"(end)\"&&(t=f.tokens.curr),a=t.line||0,u=t.from||0,l={id:\"(error)\",raw:c.desc,code:c.code,evidence:f.lines[a-1]||\"\",line:a,character:u,scope:p.scope,a:n,b:r,c:i,d:s},l.reason=M(c.desc,l),p.errors.push(l),j(),p.errors.length>=f.option.maxerr&&B(\"E043\",a,u),l}function I(e,t,n,r,i,s,o){return F(e,{line:t,from:n},r,i,s,o)}function q(e,t,n,r,i,s){F(e,t,n,r,i,s)}function R(e,t,n,r,i,s,o){return q(e,{line:t,from:n},r,i,s,o)}function U(e,t){var n;return n={id:\"(internal)\",elem:e,value:t},p.internals.push(n),n}function z(){var e=f.tokens.next,t=e.body.match(/(-\\s+)?[^\\s,:]+(?:\\s*:\\s*(-\\s+)?[^\\s,]+)?/g)||[],i={};if(e.type===\"globals\"){t.forEach(function(n,r){n=n.split(\":\");var s=(n[0]||\"\").trim(),o=(n[1]||\"\").trim();if(s===\"-\"||!s.length){if(r>0&&r===t.length-1)return;q(\"E002\",e);return}s.charAt(0)===\"-\"?(s=s.slice(1),o=!1,p.blacklist[s]=s,delete S[s]):i[s]=o===\"true\"}),D(S,i);for(var s in i)r.has(i,s)&&(n[s]=e)}e.type===\"exported\"&&t.forEach(function(n,r){if(!n.length){if(r>0&&r===t.length-1)return;q(\"E002\",e);return}f.funct[\"(scope)\"].addExported(n)}),e.type===\"members\"&&(E=E||{},t.forEach(function(e){var t=e.charAt(0),n=e.charAt(e.length-1);t===n&&(t==='\"'||t===\"'\")&&(e=e.substr(1,e.length-2).replace('\\\\\"','\"')),E[e]=!1}));var o=[\"maxstatements\",\"maxparams\",\"maxdepth\",\"maxcomplexity\",\"maxerr\",\"maxlen\",\"indent\"];if(e.type===\"jshint\"||e.type===\"jslint\")t.forEach(function(t){t=t.split(\":\");var n=(t[0]||\"\").trim(),i=(t[1]||\"\").trim();if(!k(n,e))return;if(o.indexOf(n)>=0){if(i!==\"false\"){i=+i;if(typeof i!=\"number\"||!isFinite(i)||i<=0||Math.floor(i)!==i){q(\"E032\",e,t[1].trim());return}f.option[n]=i}else f.option[n]=n===\"indent\"?4:!1;return}if(n===\"validthis\"){if(f.funct[\"(global)\"])return void q(\"E009\");if(i!==\"true\"&&i!==\"false\")return void q(\"E002\",e);f.option.validthis=i===\"true\";return}if(n===\"quotmark\"){switch(i){case\"true\":case\"false\":f.option.quotmark=i===\"true\";break;case\"double\":case\"single\":f.option.quotmark=i;break;default:q(\"E002\",e)}return}if(n===\"shadow\"){switch(i){case\"true\":f.option.shadow=!0;break;case\"outer\":f.option.shadow=\"outer\";break;case\"false\":case\"inner\":f.option.shadow=\"inner\";break;default:q(\"E002\",e)}return}if(n===\"unused\"){switch(i){case\"true\":f.option.unused=!0;break;case\"false\":f.option.unused=!1;break;case\"vars\":case\"strict\":f.option.unused=i;break;default:q(\"E002\",e)}return}if(n===\"latedef\"){switch(i){case\"true\":f.option.latedef=!0;break;case\"false\":f.option.latedef=!1;break;case\"nofunc\":f.option.latedef=\"nofunc\";break;default:q(\"E002\",e)}return}if(n===\"ignore\"){switch(i){case\"line\":f.ignoredLines[e.line]=!0,j();break;default:q(\"E002\",e)}return}if(n===\"strict\"){switch(i){case\"true\":f.option.strict=!0;break;case\"false\":f.option.strict=!1;break;case\"func\":case\"global\":case\"implied\":f.option.strict=i;break;default:q(\"E002\",e)}return}n===\"module\"&&(zt(f.funct)||q(\"E055\",f.tokens.next,\"module\"));var s={es3:3,es5:5,esnext:6};if(r.has(s,n)){switch(i){case\"true\":f.option.moz=!1,f.option.esversion=s[n];break;case\"false\":f.option.moz||(f.option.esversion=5);break;default:q(\"E002\",e)}return}if(n===\"esversion\"){switch(i){case\"5\":f.inES5(!0)&&F(\"I003\");case\"3\":case\"6\":f.option.moz=!1,f.option.esversion=+i;break;case\"2015\":f.option.moz=!1,f.option.esversion=6;break;default:q(\"E002\",e)}zt(f.funct)||q(\"E055\",f.tokens.next,\"esversion\");return}var u=/^([+-])(W\\d{3})$/g.exec(n);if(u){f.ignored[u[2]]=u[1]===\"-\";return}var a;if(i===\"true\"||i===\"false\"){e.type===\"jslint\"?(a=c.renamed[n]||n,f.option[a]=i===\"true\",c.inverted[a]!==undefined&&(f.option[a]=!f.option[a])):f.option[n]=i===\"true\",n===\"newcap\"&&(f.option[\"(explicitNewcap)\"]=!0);return}q(\"E002\",e)}),H()}function W(e){var t=e||0,n=y.length,r;if(t<n)return y[t];while(n<=t)r=y[n],r||(r=y[n]=b.token()),n+=1;return!r&&f.tokens.next.id===\"(end)\"?f.tokens.next:r}function X(){var e=0,t;do t=W(e++);while(t.id===\"(endline)\");return t}function V(e,t){switch(f.tokens.curr.id){case\"(number)\":f.tokens.next.id===\".\"&&F(\"W005\",f.tokens.curr);break;case\"-\":(f.tokens.next.id===\"-\"||f.tokens.next.id===\"--\")&&F(\"W006\");break;case\"+\":(f.tokens.next.id===\"+\"||f.tokens.next.id===\"++\")&&F(\"W007\")}e&&f.tokens.next.id!==e&&(t?f.tokens.next.id===\"(end)\"?q(\"E019\",t,t.id):q(\"E020\",f.tokens.next,e,t.id,t.line,f.tokens.next.value):(f.tokens.next.type!==\"(identifier)\"||f.tokens.next.value!==e)&&F(\"W116\",f.tokens.next,e,f.tokens.next.value)),f.tokens.prev=f.tokens.curr,f.tokens.curr=f.tokens.next;for(;;){f.tokens.next=y.shift()||b.token(),f.tokens.next||B(\"E041\",f.tokens.curr.line);if(f.tokens.next.id===\"(end)\"||f.tokens.next.id===\"(error)\")return;f.tokens.next.check&&f.tokens.next.check();if(f.tokens.next.isSpecial)f.tokens.next.type===\"falls through\"?f.tokens.curr.caseFallsThrough=!0:z();else if(f.tokens.next.id!==\"(endline)\")break}}function $(e){return e.infix||!e.identifier&&!e.template&&!!e.led}function J(){var e=f.tokens.curr,t=f.tokens.next;return t.id===\";\"||t.id===\"}\"||t.id===\":\"?!0:$(t)===$(e)||e.id===\"yield\"&&f.inMoz()?e.line!==G(t):!1}function K(e){return!e.left&&e.arity!==\"unary\"}function Q(e,t){var n,i=!1,s=!1,o=!1;f.nameStack.push(),!t&&f.tokens.next.value===\"let\"&&W(0).value===\"(\"&&(f.inMoz()||F(\"W118\",f.tokens.next,\"let expressions\"),o=!0,f.funct[\"(scope)\"].stack(),V(\"let\"),V(\"(\"),f.tokens.prev.fud(),V(\")\")),f.tokens.next.id===\"(end)\"&&q(\"E006\",f.tokens.curr);var u=f.option.asi&&f.tokens.prev.line!==G(f.tokens.curr)&&r.contains([\"]\",\")\"],f.tokens.prev.id)&&r.contains([\"[\",\"(\"],f.tokens.curr.id);u&&F(\"W014\",f.tokens.curr,f.tokens.curr.id),V(),t&&(f.funct[\"(verb)\"]=f.tokens.curr.value,f.tokens.curr.beginsStmt=!0);if(t===!0&&f.tokens.curr.fud)n=f.tokens.curr.fud();else{f.tokens.curr.nud?n=f.tokens.curr.nud():q(\"E030\",f.tokens.curr,f.tokens.curr.id);while((e<f.tokens.next.lbp||f.tokens.next.type===\"(template)\")&&!J())i=f.tokens.curr.value===\"Array\",s=f.tokens.curr.value===\"Object\",n&&(n.value||n.first&&n.first.value)&&(n.value!==\"new\"||n.first&&n.first.value&&n.first.value===\".\")&&(i=!1,n.value!==f.tokens.curr.value&&(s=!1)),V(),i&&f.tokens.curr.id===\"(\"&&f.tokens.next.id===\")\"&&F(\"W009\",f.tokens.curr),s&&f.tokens.curr.id===\"(\"&&f.tokens.next.id===\")\"&&F(\"W010\",f.tokens.curr),n&&f.tokens.curr.led?n=f.tokens.curr.led(n):q(\"E033\",f.tokens.curr,f.tokens.curr.id)}return o&&f.funct[\"(scope)\"].unstack(),f.nameStack.pop(),n}function G(e){return e.startLine||e.line}function Y(e,t){e=e||f.tokens.curr,t=t||f.tokens.next,!f.option.laxbreak&&e.line!==G(t)&&F(\"W014\",t,t.value)}function Z(e){e=e||f.tokens.curr,e.line!==G(f.tokens.next)&&F(\"E022\",e,e.value)}function et(e,t){e.line!==G(t)&&(f.option.laxcomma||(tt.first&&(F(\"I001\"),tt.first=!1),F(\"W014\",e,t.value)))}function tt(e){e=e||{},e.peek?et(f.tokens.prev,f.tokens.curr):(et(f.tokens.curr,f.tokens.next),V(\",\"));if(f.tokens.next.identifier&&(!e.property||!f.inES5()))switch(f.tokens.next.value){case\"break\":case\"case\":case\"catch\":case\"continue\":case\"default\":case\"do\":case\"else\":case\"finally\":case\"for\":case\"if\":case\"in\":case\"instanceof\":case\"return\":case\"switch\":case\"throw\":case\"try\":case\"var\":case\"let\":case\"while\":case\"with\":return q(\"E024\",f.tokens.next,f.tokens.next.value),!1}if(f.tokens.next.type===\"(punctuator)\")switch(f.tokens.next.value){case\"}\":case\"]\":case\",\":if(e.allowTrailing)return!0;case\")\":return q(\"E024\",f.tokens.next,f.tokens.next.value),!1}return!0}function nt(e,t){var n=f.syntax[e];if(!n||typeof n!=\"object\")f.syntax[e]=n={id:e,lbp:t,value:e};return n}function rt(e){var t=nt(e,0);return t.delim=!0,t}function it(e,t){var n=rt(e);return n.identifier=n.reserved=!0,n.fud=t,n}function st(e,t){var n=it(e,t);return n.block=!0,n}function ot(e){var t=e.id.charAt(0);if(t>=\"a\"&&t<=\"z\"||t>=\"A\"&&t<=\"Z\")e.identifier=e.reserved=!0;return e}function ut(e,t){var n=nt(e,150);return ot(n),n.nud=typeof t==\"function\"?t:function(){this.arity=\"unary\",this.right=Q(150);if(this.id===\"++\"||this.id===\"--\")f.option.plusplus?F(\"W016\",this,this.id):this.right&&(!this.right.identifier||O(this.right))&&this.right.id!==\".\"&&this.right.id!==\"[\"&&F(\"W017\",this),this.right&&this.right.isMetaProperty?q(\"E031\",this):this.right&&this.right.identifier&&f.funct[\"(scope)\"].block.modify(this.right.value,this);return this},n}function at(e,t){var n=rt(e);return n.type=e,n.nud=t,n}function ft(e,t){var n=at(e,t);return n.identifier=!0,n.reserved=!0,n}function lt(e,t){var n=at(e,t&&t.nud||function(){return this});return t=t||{},t.isFutureReservedWord=!0,n.value=e,n.identifier=!0,n.reserved=!0,n.meta=t,n}function ct(e,t){return ft(e,function(){return typeof t==\"function\"&&t(this),this})}function ht(e,t,n,r){var i=nt(e,n);return ot(i),i.infix=!0,i.led=function(i){return r||Y(f.tokens.prev,f.tokens.curr),(e===\"in\"||e===\"instanceof\")&&i.id===\"!\"&&F(\"W018\",i,\"!\"),typeof t==\"function\"?t(i,this):(this.left=i,this.right=Q(n),this)},i}function pt(e){var t=nt(e,42);return t.led=function(e){return Y(f.tokens.prev,f.tokens.curr),this.left=e,this.right=Xt({type:\"arrow\",loneArg:e}),this},t}function dt(e,t){var n=nt(e,100);return n.led=function(e){Y(f.tokens.prev,f.tokens.curr),this.left=e;var n=this.right=Q(100);return A(e,\"NaN\")||A(n,\"NaN\")?F(\"W019\",this):t&&t.apply(this,[e,n]),(!e||!n)&&B(\"E041\",f.tokens.curr.line),e.id===\"!\"&&F(\"W018\",e,\"!\"),n.id===\"!\"&&F(\"W018\",n,\"!\"),this},n}function vt(e){return e&&(e.type===\"(number)\"&&+e.value===0||e.type===\"(string)\"&&e.value===\"\"||e.type===\"null\"&&!f.option.eqnull||e.type===\"true\"||e.type===\"false\"||e.type===\"undefined\")}function gt(e,t,n){var i;return n.option.notypeof?!1:!e||!t?!1:(i=n.inES6()?mt.es6:mt.es3,t.type===\"(identifier)\"&&t.value===\"typeof\"&&e.type===\"(string)\"?!r.contains(i,e.value):!1)}function yt(e,t){var n=!1;return e.type===\"this\"&&t.funct[\"(context)\"]===null?n=!0:e.type===\"(identifier)\"&&(t.option.node&&e.value===\"global\"?n=!0:t.option.browser&&(e.value===\"window\"||e.value===\"document\")&&(n=!0)),n}function bt(e){function n(e){if(typeof e!=\"object\")return;return e.right===\"prototype\"?e:n(e.left)}function r(e){while(!e.identifier&&typeof e.left==\"object\")e=e.left;if(e.identifier&&t.indexOf(e.value)>=0)return e.value}var t=[\"Array\",\"ArrayBuffer\",\"Boolean\",\"Collator\",\"DataView\",\"Date\",\"DateTimeFormat\",\"Error\",\"EvalError\",\"Float32Array\",\"Float64Array\",\"Function\",\"Infinity\",\"Intl\",\"Int16Array\",\"Int32Array\",\"Int8Array\",\"Iterator\",\"Number\",\"NumberFormat\",\"Object\",\"RangeError\",\"ReferenceError\",\"RegExp\",\"StopIteration\",\"String\",\"SyntaxError\",\"TypeError\",\"Uint16Array\",\"Uint32Array\",\"Uint8Array\",\"Uint8ClampedArray\",\"URIError\"],i=n(e);if(i)return r(i)}function wt(e,t,n){var r=n&&n.allowDestructuring;t=t||e;if(f.option.freeze){var i=bt(e);i&&F(\"W121\",e,i)}return e.identifier&&!e.isMetaProperty&&f.funct[\"(scope)\"].block.reassign(e.value,e),e.id===\".\"?((!e.left||e.left.value===\"arguments\"&&!f.isStrict())&&F(\"E031\",t),f.nameStack.set(f.tokens.prev),!0):e.id===\"{\"||e.id===\"[\"?(r&&f.tokens.curr.left.destructAssign?f.tokens.curr.left.destructAssign.forEach(function(e){e.id&&f.funct[\"(scope)\"].block.modify(e.id,e.token)}):e.id===\"{\"||!e.left?F(\"E031\",t):e.left.value===\"arguments\"&&!f.isStrict()&&F(\"E031\",t),e.id===\"[\"&&f.nameStack.set(e.right),!0):e.isMetaProperty?(q(\"E031\",t),!0):e.identifier&&!O(e)?(f.funct[\"(scope)\"].labeltype(e.value)===\"exception\"&&F(\"W022\",e),f.nameStack.set(e),!0):(e===f.syntax[\"function\"]&&F(\"W023\",f.tokens.curr),!1)}function Et(e,t,n){var r=ht(e,typeof t==\"function\"?t:function(e,t){t.left=e;if(e&&wt(e,t,{allowDestructuring:!0}))return t.right=Q(10),t;q(\"E031\",t)},n);return r.exps=!0,r.assign=!0,r}function St(e,t,n){var r=nt(e,n);return ot(r),r.led=typeof t==\"function\"?t:function(e){return f.option.bitwise&&F(\"W016\",this,this.id),this.left=e,this.right=Q(n),this},r}function xt(e){return Et(e,function(e,t){f.option.bitwise&&F(\"W016\",t,t.id);if(e&&wt(e,t))return t.right=Q(10),t;q(\"E031\",t)},20)}function Tt(e){var t=nt(e,150);return t.led=function(e){return f.option.plusplus?F(\"W016\",this,this.id):(!e.identifier||O(e))&&e.id!==\".\"&&e.id!==\"[\"&&F(\"W017\",this),e.isMetaProperty?q(\"E031\",this):e&&e.identifier&&f.funct[\"(scope)\"].block.modify(e.value,e),this.left=e,this},t}function Nt(e,t,n){if(!f.tokens.next.identifier)return;n||V();var r=f.tokens.curr,i=f.tokens.curr.value;return O(r)?t&&f.inES5()?i:e&&i===\"undefined\"?i:(F(\"W024\",f.tokens.curr,f.tokens.curr.id),i):i}function Ct(e,t){var n=Nt(e,t,!1);if(n)return n;if(f.tokens.next.value===\"...\"){f.inES6(!0)||F(\"W119\",f.tokens.next,\"spread/rest operator\",\"6\"),V();if(pn(f.tokens.next,\"...\")){F(\"E024\",f.tokens.next,\"...\");while(pn(f.tokens.next,\"...\"))V()}if(!f.tokens.next.identifier){F(\"E024\",f.tokens.curr,\"...\");return}return Ct(e,t)}q(\"E030\",f.tokens.next,f.tokens.next.value),f.tokens.next.id!==\";\"&&V()}function kt(e){var t=0,n;if(f.tokens.next.id!==\";\"||e.inBracelessBlock)return;for(;;){do n=W(t),t+=1;while(n.id!==\"(end)\"&&n.id===\"(comment)\");if(n.reach)return;if(n.id!==\"(endline)\"){if(n.id===\"function\"){f.option.latedef===!0&&F(\"W026\",n);break}F(\"W027\",n,n.value,e.value);break}}}function Lt(){if(f.tokens.next.id!==\";\"){if(f.tokens.next.isUnclosed)return V();var e=G(f.tokens.next)===f.tokens.curr.line&&f.tokens.next.id!==\"(end)\",t=pn(f.tokens.next,\"}\");e&&!t?R(\"E058\",f.tokens.curr.line,f.tokens.curr.character):f.option.asi||(t&&!f.option.lastsemic||!e)&&I(\"W033\",f.tokens.curr.line,f.tokens.curr.character)}else V(\";\")}function At(){var e=g,t,n=f.tokens.next,r=!1;if(n.id===\";\"){V(\";\");return}var i=O(n);i&&n.meta&&n.meta.isFutureReservedWord&&W().id===\":\"&&(F(\"W024\",n,n.id),i=!1),n.identifier&&!i&&W().id===\":\"&&(V(),V(\":\"),r=!0,f.funct[\"(scope)\"].stack(),f.funct[\"(scope)\"].block.addBreakLabel(n.value,{token:f.tokens.curr}),!f.tokens.next.labelled&&f.tokens.next.value!==\"{\"&&F(\"W028\",f.tokens.next,n.value,f.tokens.next.value),f.tokens.next.label=n.value,n=f.tokens.next);if(n.id===\"{\"){var s=f.funct[\"(verb)\"]===\"case\"&&f.tokens.curr.value===\":\";_t(!0,!0,!1,!1,s);return}return t=Q(0,!0),t&&(!t.identifier||t.value!==\"function\")&&(t.type!==\"(punctuator)\"||!t.left||!t.left.identifier||t.left.value!==\"function\")&&!f.isStrict()&&f.option.strict===\"global\"&&F(\"E007\"),n.block||(!f.option.expr&&(!t||!t.exps)?F(\"W030\",f.tokens.curr):f.option.nonew&&t&&t.left&&t.id===\"(\"&&t.left.id===\"new\"&&F(\"W031\",n),Lt()),g=e,r&&f.funct[\"(scope)\"].unstack(),t}function Ot(){var e=[],t;while(!f.tokens.next.reach&&f.tokens.next.id!==\"(end)\")f.tokens.next.id===\";\"?(t=W(),(!t||t.id!==\"(\"&&t.id!==\"[\")&&F(\"W032\"),V(\";\")):e.push(At());return e}function Mt(){var e,t,n;while(f.tokens.next.id===\"(string)\"){t=W(0);if(t.id===\"(endline)\"){e=1;do n=W(e++);while(n.id===\"(endline)\");if(n.id===\";\")t=n;else{if(n.value===\"[\"||n.value===\".\")break;(!f.option.asi||n.value===\"(\")&&F(\"W033\",f.tokens.next)}}else{if(t.id===\".\"||t.id===\"[\")break;t.id!==\";\"&&F(\"W033\",t)}V();var r=f.tokens.curr.value;(f.directive[r]||r===\"use strict\"&&f.option.strict===\"implied\")&&F(\"W034\",f.tokens.curr,r),f.directive[r]=!0,t.id===\";\"&&V(\";\")}f.isStrict()&&(f.option[\"(explicitNewcap)\"]||(f.option.newcap=!0),f.option.undef=!0)}function _t(e,t,n,i,s){var o,u=m,a=g,l,c,h,p;m=e,c=f.tokens.next;var d=f.funct[\"(metrics)\"];d.nestedBlockDepth+=1,d.verifyMaxNestedBlockDepthPerFunction();if(f.tokens.next.id===\"{\"){V(\"{\"),f.funct[\"(scope)\"].stack(),h=f.tokens.curr.line;if(f.tokens.next.id!==\"}\"){g+=f.option.indent;while(!e&&f.tokens.next.from>g)g+=f.option.indent;if(n){l={};for(p in f.directive)r.has(f.directive,p)&&(l[p]=f.directive[p]);Mt(),f.option.strict&&f.funct[\"(context)\"][\"(global)\"]&&!l[\"use strict\"]&&!f.isStrict()&&F(\"E007\")}o=Ot(),d.statementCount+=o.length,g-=f.option.indent}V(\"}\",c),n&&(f.funct[\"(scope)\"].validateParams(),l&&(f.directive=l)),f.funct[\"(scope)\"].unstack(),g=a}else if(!e)if(n){f.funct[\"(scope)\"].stack(),l={},t&&!i&&!f.inMoz()&&q(\"W118\",f.tokens.curr,\"function closure expressions\");if(!t)for(p in f.directive)r.has(f.directive,p)&&(l[p]=f.directive[p]);Q(10),f.option.strict&&f.funct[\"(context)\"][\"(global)\"]&&!l[\"use strict\"]&&!f.isStrict()&&F(\"E007\"),f.funct[\"(scope)\"].unstack()}else q(\"E021\",f.tokens.next,\"{\",f.tokens.next.value);else f.funct[\"(noblockscopedvar)\"]=f.tokens.next.id!==\"for\",f.funct[\"(scope)\"].stack(),(!t||f.option.curly)&&F(\"W116\",f.tokens.next,\"{\",f.tokens.next.value),f.tokens.next.inBracelessBlock=!0,g+=f.option.indent,o=[At()],g-=f.option.indent,f.funct[\"(scope)\"].unstack(),delete f.funct[\"(noblockscopedvar)\"];switch(f.funct[\"(verb)\"]){case\"break\":case\"continue\":case\"return\":case\"throw\":if(s)break;default:f.funct[\"(verb)\"]=null}return m=u,e&&f.option.noempty&&(!o||o.length===0)&&F(\"W035\",f.tokens.prev),d.nestedBlockDepth-=1,o}function Dt(e){E&&typeof E[e]!=\"boolean\"&&F(\"W036\",f.tokens.curr,e),typeof w[e]==\"number\"?w[e]+=1:w[e]=1}function Bt(){var e={};e.exps=!0,f.funct[\"(comparray)\"].stack();var t=!1;return f.tokens.next.value!==\"for\"&&(t=!0,f.inMoz()||F(\"W116\",f.tokens.next,\"for\",f.tokens.next.value),f.funct[\"(comparray)\"].setState(\"use\"),e.right=Q(10)),V(\"for\"),f.tokens.next.value===\"each\"&&(V(\"each\"),f.inMoz()||F(\"W118\",f.tokens.curr,\"for each\")),V(\"(\"),f.funct[\"(comparray)\"].setState(\"define\"),e.left=Q(130),r.contains([\"in\",\"of\"],f.tokens.next.value)?V():q(\"E045\",f.tokens.curr),f.funct[\"(comparray)\"].setState(\"generate\"),Q(10),V(\")\"),f.tokens.next.value===\"if\"&&(V(\"if\"),V(\"(\"),f.funct[\"(comparray)\"].setState(\"filter\"),e.filter=Q(10),V(\")\")),t||(f.funct[\"(comparray)\"].setState(\"use\"),e.right=Q(10)),V(\"]\"),f.funct[\"(comparray)\"].unstack(),e}function jt(){return f.funct[\"(statement)\"]&&f.funct[\"(statement)\"].type===\"class\"||f.funct[\"(context)\"]&&f.funct[\"(context)\"][\"(verb)\"]===\"class\"}function Ft(e){return e.identifier||e.id===\"(string)\"||e.id===\"(number)\"}function It(e){var t,n=!0;return typeof e==\"object\"?t=e:(n=e,t=Nt(!1,!0,n)),t?typeof t==\"object\"&&(t.id===\"(string)\"||t.id===\"(identifier)\"?t=t.value:t.id===\"(number)\"&&(t=t.value.toString())):f.tokens.next.id===\"(string)\"?(t=f.tokens.next.value,n||V()):f.tokens.next.id===\"(number)\"&&(t=f.tokens.next.value.toString(),n||V()),t===\"hasOwnProperty\"&&F(\"W001\"),t}function qt(e){function h(e){f.funct[\"(scope)\"].addParam.apply(f.funct[\"(scope)\"],e)}var t,n=[],i,s=[],o,u=!1,a=!1,l=0,c=e&&e.loneArg;if(c&&c.identifier===!0)return f.funct[\"(scope)\"].addParam(c.value,c),{arity:1,params:[c.value]};t=f.tokens.next,(!e||!e.parsedOpening)&&V(\"(\");if(f.tokens.next.id===\")\"){V(\")\");return}for(;;){l++;var p=[];if(r.contains([\"{\",\"[\"],f.tokens.next.id)){s=Gt();for(o in s)o=s[o],o.id&&(n.push(o.id),p.push([o.id,o.token]))}else{pn(f.tokens.next,\"...\")&&(a=!0),i=Ct(!0);if(i)n.push(i),p.push([i,f.tokens.curr]);else while(!hn(f.tokens.next,[\",\",\")\"]))V()}u&&f.tokens.next.id!==\"=\"&&q(\"W138\",f.tokens.current),f.tokens.next.id===\"=\"&&(f.inES6()||F(\"W119\",f.tokens.next,\"default parameters\",\"6\"),V(\"=\"),u=!0,Q(10)),p.forEach(h);if(f.tokens.next.id!==\",\")return V(\")\",t),{arity:l,params:n};a&&F(\"W131\",f.tokens.next),tt()}}function Rt(e,t,n){var i={\"(name)\":e,\"(breakage)\":0,\"(loopage)\":0,\"(tokens)\":{},\"(properties)\":{},\"(catch)\":!1,\"(global)\":!1,\"(line)\":null,\"(character)\":null,\"(metrics)\":null,\"(statement)\":null,\"(context)\":null,\"(scope)\":null,\"(comparray)\":null,\"(generator)\":null,\"(arrow)\":null,\"(params)\":null};return t&&r.extend(i,{\"(line)\":t.line,\"(character)\":t.character,\"(metrics)\":Vt(t)}),r.extend(i,n),i[\"(context)\"]&&(i[\"(scope)\"]=i[\"(context)\"][\"(scope)\"],i[\"(comparray)\"]=i[\"(context)\"][\"(comparray)\"]),i}function Ut(e){return\"(scope)\"in e}function zt(e){return e[\"(global)\"]&&!e[\"(verb)\"]}function Wt(e){function i(){if(f.tokens.curr.template&&f.tokens.curr.tail&&f.tokens.curr.context===t)return!0;var e=f.tokens.next.template&&f.tokens.next.tail&&f.tokens.next.context===t;return e&&V(),e||f.tokens.next.isUnclosed}var t=this.context,n=this.noSubst,r=this.depth;if(!n)while(!i())!f.tokens.next.template||f.tokens.next.depth>r?Q(0):V();return{id:\"(template)\",type:\"(template)\",tag:e}}function Xt(e){var t,n,r,i,s,o,u,a,l=f.option,c=f.ignored;e&&(r=e.name,i=e.statement,s=e.classExprBinding,o=e.type===\"generator\",u=e.type===\"arrow\",a=e.ignoreLoopFunc),f.option=Object.create(f.option),f.ignored=Object.create(f.ignored),f.funct=Rt(r||f.nameStack.infer(),f.tokens.next,{\"(statement)\":i,\"(context)\":f.funct,\"(arrow)\":u,\"(generator)\":o}),t=f.funct,n=f.tokens.curr,n.funct=f.funct,v.push(f.funct),f.funct[\"(scope)\"].stack(\"functionouter\");var h=r||s;h&&f.funct[\"(scope)\"].block.add(h,s?\"class\":\"function\",f.tokens.curr,!1),f.funct[\"(scope)\"].stack(\"functionparams\");var p=qt(e);return p?(f.funct[\"(params)\"]=p.params,f.funct[\"(metrics)\"].arity=p.arity,f.funct[\"(metrics)\"].verifyMaxParametersPerFunction()):f.funct[\"(metrics)\"].arity=0,u&&(f.inES6(!0)||F(\"W119\",f.tokens.curr,\"arrow function syntax (=>)\",\"6\"),e.loneArg||V(\"=>\")),_t(!1,!0,!0,u),!f.option.noyield&&o&&f.funct[\"(generator)\"]!==\"yielded\"&&F(\"W124\",f.tokens.curr),f.funct[\"(metrics)\"].verifyMaxStatementsPerFunction(),f.funct[\"(metrics)\"].verifyMaxComplexityPerFunction(),f.funct[\"(unusedOption)\"]=f.option.unused,f.option=l,f.ignored=c,f.funct[\"(last)\"]=f.tokens.curr.line,f.funct[\"(lastcharacter)\"]=f.tokens.curr.character,f.funct[\"(scope)\"].unstack(),f.funct[\"(scope)\"].unstack(),f.funct=f.funct[\"(context)\"],!a&&!f.option.loopfunc&&f.funct[\"(loopage)\"]&&t[\"(isCapturing)\"]&&F(\"W083\",n),t}function Vt(e){return{statementCount:0,nestedBlockDepth:-1,ComplexityCount:1,arity:0,verifyMaxStatementsPerFunction:function(){f.option.maxstatements&&this.statementCount>f.option.maxstatements&&F(\"W071\",e,this.statementCount)},verifyMaxParametersPerFunction:function(){r.isNumber(f.option.maxparams)&&this.arity>f.option.maxparams&&F(\"W072\",e,this.arity)},verifyMaxNestedBlockDepthPerFunction:function(){f.option.maxdepth&&this.nestedBlockDepth>0&&this.nestedBlockDepth===f.option.maxdepth+1&&F(\"W073\",null,this.nestedBlockDepth)},verifyMaxComplexityPerFunction:function(){var t=f.option.maxcomplexity,n=this.ComplexityCount;t&&n>t&&F(\"W074\",e,n)}}}function $t(){f.funct[\"(metrics)\"].ComplexityCount+=1}function Jt(e){var t,n;e&&(t=e.id,n=e.paren,t===\",\"&&(e=e.exprs[e.exprs.length-1])&&(t=e.id,n=n||e.paren));switch(t){case\"=\":case\"+=\":case\"-=\":case\"*=\":case\"%=\":case\"&=\":case\"|=\":case\"^=\":case\"/=\":!n&&!f.option.boss&&F(\"W084\")}}function Kt(e){if(f.inES5())for(var t in e)e[t]&&e[t].setterToken&&!e[t].getterToken&&F(\"W078\",e[t].setterToken)}function Qt(e,t){if(pn(f.tokens.next,\".\")){var n=f.tokens.curr.id;V(\".\");var r=Ct();return f.tokens.curr.isMetaProperty=!0,e!==r?q(\"E057\",f.tokens.prev,n,r):t(),f.tokens.curr}}function Gt(e){var t=e&&e.assignment;return f.inES6()||F(\"W104\",f.tokens.curr,t?\"destructuring assignment\":\"destructuring binding\",\"6\"),Yt(e)}function Yt(e){var t,n=[],r=e&&e.openingParsed,i=e&&e.assignment,s=i?{assignment:i}:null,o=r?f.tokens.curr:f.tokens.next,u=function(){var e;if(hn(f.tokens.next,[\"[\",\"{\"])){t=Yt(s);for(var r in t)r=t[r],n.push({id:r.id,token:r.token})}else if(pn(f.tokens.next,\",\"))n.push({id:null,token:f.tokens.curr});else{if(!pn(f.tokens.next,\"(\")){var o=pn(f.tokens.next,\"...\");if(i){var a=o?W(0):f.tokens.next;a.identifier||F(\"E030\",a,a.value);var l=Q(155);l&&(wt(l),l.identifier&&(e=l.value))}else e=Ct();return e&&n.push({id:e,token:f.tokens.curr}),o}V(\"(\"),u(),V(\")\")}return!1},a=function(){var e;pn(f.tokens.next,\"[\")?(V(\"[\"),Q(10),V(\"]\"),V(\":\"),u()):f.tokens.next.id===\"(string)\"||f.tokens.next.id===\"(number)\"?(V(),V(\":\"),u()):(e=Ct(),pn(f.tokens.next,\":\")?(V(\":\"),u()):e&&(i&&wt(f.tokens.curr),n.push({id:e,token:f.tokens.curr})))};if(pn(o,\"[\")){r||V(\"[\"),pn(f.tokens.next,\"]\")&&F(\"W137\",f.tokens.curr);var l=!1;while(!pn(f.tokens.next,\"]\"))u()&&!l&&pn(f.tokens.next,\",\")&&(F(\"W130\",f.tokens.next),l=!0),pn(f.tokens.next,\"=\")&&(pn(f.tokens.prev,\"...\")?V(\"]\"):V(\"=\"),f.tokens.next.id===\"undefined\"&&F(\"W080\",f.tokens.prev,f.tokens.prev.value),Q(10)),pn(f.tokens.next,\"]\")||V(\",\");V(\"]\")}else if(pn(o,\"{\")){r||V(\"{\"),pn(f.tokens.next,\"}\")&&F(\"W137\",f.tokens.curr);while(!pn(f.tokens.next,\"}\")){a(),pn(f.tokens.next,\"=\")&&(V(\"=\"),f.tokens.next.id===\"undefined\"&&F(\"W080\",f.tokens.prev,f.tokens.prev.value),Q(10));if(!pn(f.tokens.next,\"}\")){V(\",\");if(pn(f.tokens.next,\"}\"))break}}V(\"}\")}return n}function Zt(e,t){var n=t.first;if(!n)return;r.zip(e,Array.isArray(n)?n:[n]).forEach(function(e){var t=e[0],n=e[1];t&&n?t.first=n:t&&t.first&&!n&&F(\"W080\",t.first,t.first.value)})}function en(e,t,n){var i=n&&n.prefix,s=n&&n.inexport,o=e===\"let\",u=e===\"const\",a,l,c,h;f.inES6()||F(\"W104\",f.tokens.curr,e,\"6\"),o&&f.tokens.next.value===\"(\"?(f.inMoz()||F(\"W118\",f.tokens.next,\"let block\"),V(\"(\"),f.funct[\"(scope)\"].stack(),h=!0):f.funct[\"(noblockscopedvar)\"]&&q(\"E048\",f.tokens.curr,u?\"Const\":\"Let\"),t.first=[];for(;;){var p=[];r.contains([\"{\",\"[\"],f.tokens.next.value)?(a=Gt(),l=!1):(a=[{id:Ct(),token:f.tokens.curr}],l=!0),!i&&u&&f.tokens.next.id!==\"=\"&&F(\"E012\",f.tokens.curr,f.tokens.curr.value);for(var d in a)a.hasOwnProperty(d)&&(d=a[d],f.funct[\"(scope)\"].block.isGlobal()&&S[d.id]===!1&&F(\"W079\",d.token,d.id),d.id&&!f.funct[\"(noblockscopedvar)\"]&&(f.funct[\"(scope)\"].addlabel(d.id,{type:e,token:d.token}),p.push(d.token),l&&s&&f.funct[\"(scope)\"].setExported(d.token.value,d.token)));f.tokens.next.id===\"=\"&&(V(\"=\"),!i&&f.tokens.next.id===\"undefined\"&&F(\"W080\",f.tokens.prev,f.tokens.prev.value),!i&&W(0).id===\"=\"&&f.tokens.next.identifier&&F(\"W120\",f.tokens.next,f.tokens.next.value),c=Q(i?120:10),l?a[0].first=c:Zt(p,c)),t.first=t.first.concat(p);if(f.tokens.next.id!==\",\")break;tt()}return h&&(V(\")\"),_t(!0,!0),t.block=!0,f.funct[\"(scope)\"].unstack()),t}function sn(e){return f.inES6()||F(\"W104\",f.tokens.curr,\"class\",\"6\"),e?(this.name=Ct(),f.funct[\"(scope)\"].addlabel(this.name,{type:\"class\",token:f.tokens.curr})):f.tokens.next.identifier&&f.tokens.next.value!==\"extends\"?(this.name=Ct(),this.namedExpr=!0):this.name=f.nameStack.infer(),on(this),this}function on(e){var t=f.inClassBody;f.tokens.next.value===\"extends\"&&(V(\"extends\"),e.heritage=Q(10)),f.inClassBody=!0,V(\"{\"),e.body=un(e),V(\"}\"),f.inClassBody=t}function un(e){var t,n,r,i,s=Object.create(null),o=Object.create(null),u;for(var a=0;f.tokens.next.id!==\"}\";++a){t=f.tokens.next,n=!1,r=!1,i=null;if(t.id===\";\"){F(\"W032\"),V(\";\");continue}t.id===\"*\"&&(r=!0,V(\"*\"),t=f.tokens.next);if(t.id===\"[\")t=cn(),u=!0;else{if(!Ft(t)){F(\"W052\",f.tokens.next,f.tokens.next.value||f.tokens.next.type),V();continue}V(),u=!1;if(t.identifier&&t.value===\"static\"){pn(f.tokens.next,\"*\")&&(r=!0,V(\"*\"));if(Ft(f.tokens.next)||f.tokens.next.id===\"[\")u=f.tokens.next.id===\"[\",n=!0,t=f.tokens.next,f.tokens.next.id===\"[\"?t=cn():V()}t.identifier&&(t.value===\"get\"||t.value===\"set\")&&(Ft(f.tokens.next)||f.tokens.next.id===\"[\")&&(u=f.tokens.next.id===\"[\",i=t,t=f.tokens.next,f.tokens.next.id===\"[\"?t=cn():V())}if(!pn(f.tokens.next,\"(\")){q(\"E054\",f.tokens.next,f.tokens.next.value);while(f.tokens.next.id!==\"}\"&&!pn(f.tokens.next,\"(\"))V();f.tokens.next.value!==\"(\"&&Xt({statement:e})}u||(i?ln(i.value,n?o:s,t.value,t,!0,n):(t.value===\"constructor\"?f.nameStack.set(e):f.nameStack.set(t),fn(n?o:s,t.value,t,!0,n)));if(i&&t.value===\"constructor\"){var l=i.value===\"get\"?\"class getter method\":\"class setter method\";q(\"E049\",t,l,\"constructor\")}else t.value===\"prototype\"&&q(\"E049\",t,\"class method\",\"prototype\");It(t),Xt({statement:e,type:r?\"generator\":null,classExprBinding:e.namedExpr?e.name:null})}Kt(s)}function fn(e,t,n,r,i){var s=[\"key\",\"class method\",\"static class method\"];s=s[(r||!1)+(i||!1)],n.identifier&&(t=n.value),e[t]&&t!==\"__proto__\"?F(\"W075\",f.tokens.next,s,t):e[t]=Object.create(null),e[t].basic=!0,e[t].basictkn=n}function ln(e,t,n,r,i,s){var o=e===\"get\"?\"getterToken\":\"setterToken\",u=\"\";i?(s&&(u+=\"static \"),u+=e+\"ter method\"):u=\"key\",f.tokens.curr.accessorType=e,f.nameStack.set(r),t[n]?(t[n].basic||t[n][o])&&n!==\"__proto__\"&&F(\"W075\",f.tokens.next,u,n):t[n]=Object.create(null),t[n][o]=r}function cn(){V(\"[\"),f.inES6()||F(\"W119\",f.tokens.curr,\"computed property names\",\"6\");var e=Q(10);return V(\"]\"),e}function hn(e,t){return e.type===\"(punctuator)\"?r.contains(t,e.value):!1}function pn(e,t){return e.type===\"(punctuator)\"&&e.value===t}function dn(){var e=an();e.notJson?(!f.inES6()&&e.isDestAssign&&F(\"W104\",f.tokens.curr,\"destructuring assignment\",\"6\"),Ot()):(f.option.laxbreak=!0,f.jsonMode=!0,mn())}function mn(){function e(){var e={},t=f.tokens.next;V(\"{\");if(f.tokens.next.id!==\"}\")for(;;){if(f.tokens.next.id===\"(end)\")q(\"E026\",f.tokens.next,t.line);else{if(f.tokens.next.id===\"}\"){F(\"W094\",f.tokens.curr);break}f.tokens.next.id===\",\"?q(\"E028\",f.tokens.next):f.tokens.next.id!==\"(string)\"&&F(\"W095\",f.tokens.next,f.tokens.next.value)}e[f.tokens.next.value]===!0?F(\"W075\",f.tokens.next,\"key\",f.tokens.next.value):f.tokens.next.value===\"__proto__\"&&!f.option.proto||f.tokens.next.value===\"__iterator__\"&&!f.option.iterator?F(\"W096\",f.tokens.next,f.tokens.next.value):e[f.tokens.next.value]=!0,V(),V(\":\"),mn();if(f.tokens.next.id!==\",\")break;V(\",\")}V(\"}\")}function t(){var e=f.tokens.next;V(\"[\");if(f.tokens.next.id!==\"]\")for(;;){if(f.tokens.next.id===\"(end)\")q(\"E027\",f.tokens.next,e.line);else{if(f.tokens.next.id===\"]\"){F(\"W094\",f.tokens.curr);break}f.tokens.next.id===\",\"&&q(\"E028\",f.tokens.next)}mn();if(f.tokens.next.id!==\",\")break;V(\",\")}V(\"]\")}switch(f.tokens.next.id){case\"{\":e();break;case\"[\":t();break;case\"true\":case\"false\":case\"null\":case\"(number)\":case\"(string)\":V();break;case\"-\":V(\"-\"),V(\"(number)\");break;default:q(\"E003\",f.tokens.next)}}var e,t={\"<\":!0,\"<=\":!0,\"==\":!0,\"===\":!0,\"!==\":!0,\"!=\":!0,\">\":!0,\">=\":!0,\"+\":!0,\"-\":!0,\"*\":!0,\"/\":!0,\"%\":!0},n,d=[\"closure\",\"exception\",\"global\",\"label\",\"outer\",\"unused\",\"var\"],v,m,g,y,b,w,E,S,x,T,N=[],C=new i.EventEmitter,mt={};mt.legacy=[\"xml\",\"unknown\"],mt.es3=[\"undefined\",\"boolean\",\"number\",\"string\",\"function\",\"object\"],mt.es3=mt.es3.concat(mt.legacy),mt.es6=mt.es3.concat(\"symbol\"),at(\"(number)\",function(){return this}),at(\"(string)\",function(){return this}),f.syntax[\"(identifier)\"]={type:\"(identifier)\",lbp:0,identifier:!0,nud:function(){var e=this.value;return f.tokens.next.id===\"=>\"?this:(f.funct[\"(comparray)\"].check(e)||f.funct[\"(scope)\"].block.use(e,f.tokens.curr),this)},led:function(){q(\"E033\",f.tokens.next,f.tokens.next.value)}};var Pt={lbp:0,identifier:!1,template:!0};f.syntax[\"(template)\"]=r.extend({type:\"(template)\",nud:Wt,led:Wt,noSubst:!1},Pt),f.syntax[\"(template middle)\"]=r.extend({type:\"(template middle)\",middle:!0,noSubst:!1},Pt),f.syntax[\"(template tail)\"]=r.extend({type:\"(template tail)\",tail:!0,noSubst:!1},Pt),f.syntax[\"(no subst template)\"]=r.extend({type:\"(template)\",nud:Wt,led:Wt,noSubst:!0,tail:!0},Pt),at(\"(regexp)\",function(){return this}),rt(\"(endline)\"),rt(\"(begin)\"),rt(\"(end)\").reach=!0,rt(\"(error)\").reach=!0,rt(\"}\").reach=!0,rt(\")\"),rt(\"]\"),rt('\"').reach=!0,rt(\"'\").reach=!0,rt(\";\"),rt(\":\").reach=!0,rt(\"#\"),ft(\"else\"),ft(\"case\").reach=!0,ft(\"catch\"),ft(\"default\").reach=!0,ft(\"finally\"),ct(\"arguments\",function(e){f.isStrict()&&f.funct[\"(global)\"]&&F(\"E008\",e)}),ct(\"eval\"),ct(\"false\"),ct(\"Infinity\"),ct(\"null\"),ct(\"this\",function(e){f.isStrict()&&!jt()&&!f.option.validthis&&(f.funct[\"(statement)\"]&&f.funct[\"(name)\"].charAt(0)>\"Z\"||f.funct[\"(global)\"])&&F(\"W040\",e)}),ct(\"true\"),ct(\"undefined\"),Et(\"=\",\"assign\",20),Et(\"+=\",\"assignadd\",20),Et(\"-=\",\"assignsub\",20),Et(\"*=\",\"assignmult\",20),Et(\"/=\",\"assigndiv\",20).nud=function(){q(\"E014\")},Et(\"%=\",\"assignmod\",20),xt(\"&=\"),xt(\"|=\"),xt(\"^=\"),xt(\"<<=\"),xt(\">>=\"),xt(\">>>=\"),ht(\",\",function(e,t){var n;t.exprs=[e],f.option.nocomma&&F(\"W127\");if(!tt({peek:!0}))return t;for(;;){if(!(n=Q(10)))break;t.exprs.push(n);if(f.tokens.next.value!==\",\"||!tt())break}return t},10,!0),ht(\"?\",function(e,t){return $t(),t.left=e,t.right=Q(10),V(\":\"),t[\"else\"]=Q(10),t},30);var Ht=40;ht(\"||\",function(e,t){return $t(),t.left=e,t.right=Q(Ht),t},Ht),ht(\"&&\",\"and\",50),St(\"|\",\"bitor\",70),St(\"^\",\"bitxor\",80),St(\"&\",\"bitand\",90),dt(\"==\",function(e,t){var n=f.option.eqnull&&((e&&e.value)===\"null\"||(t&&t.value)===\"null\");switch(!0){case!n&&f.option.eqeqeq:this.from=this.character,F(\"W116\",this,\"===\",\"==\");break;case vt(e):F(\"W041\",this,\"===\",e.value);break;case vt(t):F(\"W041\",this,\"===\",t.value);break;case gt(t,e,f):F(\"W122\",this,t.value);break;case gt(e,t,f):F(\"W122\",this,e.value)}return this}),dt(\"===\",function(e,t){return gt(t,e,f)?F(\"W122\",this,t.value):gt(e,t,f)&&F(\"W122\",this,e.value),this}),dt(\"!=\",function(e,t){var n=f.option.eqnull&&((e&&e.value)===\"null\"||(t&&t.value)===\"null\");return!n&&f.option.eqeqeq?(this.from=this.character,F(\"W116\",this,\"!==\",\"!=\")):vt(e)?F(\"W041\",this,\"!==\",e.value):vt(t)?F(\"W041\",this,\"!==\",t.value):gt(t,e,f)?F(\"W122\",this,t.value):gt(e,t,f)&&F(\"W122\",this,e.value),this}),dt(\"!==\",function(e,t){return gt(t,e,f)?F(\"W122\",this,t.value):gt(e,t,f)&&F(\"W122\",this,e.value),this}),dt(\"<\"),dt(\">\"),dt(\"<=\"),dt(\">=\"),St(\"<<\",\"shiftleft\",120),St(\">>\",\"shiftright\",120),St(\">>>\",\"shiftrightunsigned\",120),ht(\"in\",\"in\",120),ht(\"instanceof\",\"instanceof\",120),ht(\"+\",function(e,t){var n;return t.left=e,t.right=n=Q(130),e&&n&&e.id===\"(string)\"&&n.id===\"(string)\"?(e.value+=n.value,e.character=n.character,!f.option.scripturl&&a.javascriptURL.test(e.value)&&F(\"W050\",e),e):t},130),ut(\"+\",\"num\"),ut(\"+++\",function(){return F(\"W007\"),this.arity=\"unary\",this.right=Q(150),this}),ht(\"+++\",function(e){return F(\"W007\"),this.left=e,this.right=Q(130),this},130),ht(\"-\",\"sub\",130),ut(\"-\",\"neg\"),ut(\"---\",function(){return F(\"W006\"),this.arity=\"unary\",this.right=Q(150),this}),ht(\"---\",function(e){return F(\"W006\"),this.left=e,this.right=Q(130),this},130),ht(\"*\",\"mult\",140),ht(\"/\",\"div\",140),ht(\"%\",\"mod\",140),Tt(\"++\"),ut(\"++\",\"preinc\"),f.syntax[\"++\"].exps=!0,Tt(\"--\"),ut(\"--\",\"predec\"),f.syntax[\"--\"].exps=!0,ut(\"delete\",function(){var e=Q(10);return e?(e.id!==\".\"&&e.id!==\"[\"&&F(\"W051\"),this.first=e,e.identifier&&!f.isStrict()&&(e.forgiveUndef=!0),this):this}).exps=!0,ut(\"~\",function(){return f.option.bitwise&&F(\"W016\",this,\"~\"),this.arity=\"unary\",this.right=Q(150),this}),ut(\"...\",function(){return f.inES6(!0)||F(\"W119\",this,\"spread/rest operator\",\"6\"),!f.tokens.next.identifier&&f.tokens.next.type!==\"(string)\"&&!hn(f.tokens.next,[\"[\",\"(\"])&&q(\"E030\",f.tokens.next,f.tokens.next.value),Q(150),this}),ut(\"!\",function(){return this.arity=\"unary\",this.right=Q(150),this.right||B(\"E041\",this.line||0),t[this.right.id]===!0&&F(\"W018\",this,\"!\"),this}),ut(\"typeof\",function(){var e=Q(150);return this.first=this.right=e,e||B(\"E041\",this.line||0,this.character||0),e.identifier&&(e.forgiveUndef=!0),this}),ut(\"new\",function(){var e=Qt(\"target\",function(){f.inES6(!0)||F(\"W119\",f.tokens.prev,\"new.target\",\"6\");var e,t=f.funct;while(t){e=!t[\"(global)\"];if(!t[\"(arrow)\"])break;t=t[\"(context)\"]}e||F(\"W136\",f.tokens.prev,\"new.target\")});if(e)return e;var t=Q(155),n;if(t&&t.id!==\"function\")if(t.identifier){t[\"new\"]=!0;switch(t.value){case\"Number\":case\"String\":case\"Boolean\":case\"Math\":case\"JSON\":F(\"W053\",f.tokens.prev,t.value);break;case\"Symbol\":f.inES6()&&F(\"W053\",f.tokens.prev,t.value);break;case\"Function\":f.option.evil||F(\"W054\");break;case\"Date\":case\"RegExp\":case\"this\":break;default:t.id!==\"function\"&&(n=t.value.substr(0,1),f.option.newcap&&(n<\"A\"||n>\"Z\")&&!f.funct[\"(scope)\"].isPredefined(t.value)&&F(\"W055\",f.tokens.curr))}}else t.id!==\".\"&&t.id!==\"[\"&&t.id!==\"(\"&&F(\"W056\",f.tokens.curr);else f.option.supernew||F(\"W057\",this);return f.tokens.next.id!==\"(\"&&!f.option.supernew&&F(\"W058\",f.tokens.curr,f.tokens.curr.value),this.first=this.right=t,this}),f.syntax[\"new\"].exps=!0,ut(\"void\").exps=!0,ht(\".\",function(e,t){var n=Ct(!1,!0);return typeof n==\"string\"&&Dt(n),t.left=e,t.right=n,n&&n===\"hasOwnProperty\"&&f.tokens.next.value===\"=\"&&F(\"W001\"),!e||e.value!==\"arguments\"||n!==\"callee\"&&n!==\"caller\"?!f.option.evil&&e&&e.value===\"document\"&&(n===\"write\"||n===\"writeln\")&&F(\"W060\",e):f.option.noarg?F(\"W059\",e,n):f.isStrict()&&q(\"E008\"),!f.option.evil&&(n===\"eval\"||n===\"execScript\")&&yt(e,f)&&F(\"W061\"),t},160,!0),ht(\"(\",function(e,t){f.option.immed&&e&&!e.immed&&e.id===\"function\"&&F(\"W062\");var n=0,r=[];e&&e.type===\"(identifier)\"&&e.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&\"Array Number String Boolean Date Object Error Symbol\".indexOf(e.value)===-1&&(e.value===\"Math\"?F(\"W063\",e):f.option.newcap&&F(\"W064\",e));if(f.tokens.next.id!==\")\")for(;;){r[r.length]=Q(10),n+=1;if(f.tokens.next.id!==\",\")break;tt()}return V(\")\"),typeof e==\"object\"&&(!f.inES5()&&e.value===\"parseInt\"&&n===1&&F(\"W065\",f.tokens.curr),f.option.evil||(e.value===\"eval\"||e.value===\"Function\"||e.value===\"execScript\"?(F(\"W061\",e),r[0]&&[0].id===\"(string)\"&&U(e,r[0].value)):!r[0]||r[0].id!==\"(string)\"||e.value!==\"setTimeout\"&&e.value!==\"setInterval\"?r[0]&&r[0].id===\"(string)\"&&e.value===\".\"&&e.left.value===\"window\"&&(e.right===\"setTimeout\"||e.right===\"setInterval\")&&(F(\"W066\",e),U(e,r[0].value)):(F(\"W066\",e),U(e,r[0].value))),!e.identifier&&e.id!==\".\"&&e.id!==\"[\"&&e.id!==\"=>\"&&e.id!==\"(\"&&e.id!==\"&&\"&&e.id!==\"||\"&&e.id!==\"?\"&&(!f.inES6()||!e[\"(name)\"])&&F(\"W067\",t)),t.left=e,t},155,!0).exps=!0,ut(\"(\",function(){var e=f.tokens.next,t,n=-1,r,i,s,o,u=1,a=f.tokens.curr,l=f.tokens.prev,c=!f.option.singleGroups;do e.value===\"(\"?u+=1:e.value===\")\"&&(u-=1),n+=1,t=e,e=W(n);while((u!==0||t.value!==\")\")&&e.value!==\";\"&&e.type!==\"(end)\");f.tokens.next.id===\"function\"&&(i=f.tokens.next.immed=!0);if(e.value===\"=>\")return Xt({type:\"arrow\",parsedOpening:!0});var h=[];if(f.tokens.next.id!==\")\")for(;;){h.push(Q(10));if(f.tokens.next.id!==\",\")break;f.option.nocomma&&F(\"W127\"),tt()}V(\")\",this),f.option.immed&&h[0]&&h[0].id===\"function\"&&f.tokens.next.id!==\"(\"&&f.tokens.next.id!==\".\"&&f.tokens.next.id!==\"[\"&&F(\"W068\",this);if(!h.length)return;return h.length>1?(r=Object.create(f.syntax[\",\"]),r.exprs=h,s=h[0],o=h[h.length-1],c||(c=l.assign||l.delim)):(r=s=o=h[0],c||(c=a.beginsStmt&&(r.id===\"{\"||i||Ut(r))||i&&(!J()||f.tokens.prev.id!==\"}\")||Ut(r)&&!J()||r.id===\"{\"&&l.id===\"=>\"||r.type===\"(number)\"&&pn(e,\".\")&&/^\\d+$/.test(r.value))),r&&(!c&&(s.left||s.right||r.exprs)&&(c=!K(l)&&s.lbp<=l.lbp||!J()&&o.lbp<f.tokens.next.lbp),c||F(\"W126\",a),r.paren=!0),r}),pt(\"=>\"),ht(\"[\",function(e,t){var n=Q(10),r;return n&&n.type===\"(string)\"&&(!f.option.evil&&(n.value===\"eval\"||n.value===\"execScript\")&&yt(e,f)&&F(\"W061\"),Dt(n.value),!f.option.sub&&a.identifier.test(n.value)&&(r=f.syntax[n.value],(!r||!O(r))&&F(\"W069\",f.tokens.prev,n.value))),V(\"]\",t),n&&n.value===\"hasOwnProperty\"&&f.tokens.next.value===\"=\"&&F(\"W001\"),t.left=e,t.right=n,t},160,!0),ut(\"[\",function(){var e=an();if(e.isCompArray)return!f.option.esnext&&!f.inMoz()&&F(\"W118\",f.tokens.curr,\"array comprehension\"),Bt();if(e.isDestAssign)return this.destructAssign=Gt({openingParsed:!0,assignment:!0}),this;var t=f.tokens.curr.line!==G(f.tokens.next);this.first=[],t&&(g+=f.option.indent,f.tokens.next.from===g+f.option.indent&&(g+=f.option.indent));while(f.tokens.next.id!==\"(end)\"){while(f.tokens.next.id===\",\"){if(!f.option.elision){if(!!f.inES5()){F(\"W128\");do V(\",\");while(f.tokens.next.id===\",\");continue}F(\"W070\")}V(\",\")}if(f.tokens.next.id===\"]\")break;this.first.push(Q(10));if(f.tokens.next.id!==\",\")break;tt({allowTrailing:!0});if(f.tokens.next.id===\"]\"&&!f.inES5()){F(\"W070\",f.tokens.curr);break}}return t&&(g-=f.option.indent),V(\"]\",this),this}),function(e){e.nud=function(){var e,t,n,r,i,s=!1,o,u=Object.create(null);e=f.tokens.curr.line!==G(f.tokens.next),e&&(g+=f.option.indent,f.tokens.next.from===g+f.option.indent&&(g+=f.option.indent));var a=an();if(a.isDestAssign)return this.destructAssign=Gt({openingParsed:!0,assignment:!0}),this;for(;;){if(f.tokens.next.id===\"}\")break;o=f.tokens.next.value;if(!f.tokens.next.identifier||X().id!==\",\"&&X().id!==\"}\")if(W().id===\":\"||o!==\"get\"&&o!==\"set\"){f.tokens.next.value===\"*\"&&f.tokens.next.type===\"(punctuator)\"?(f.inES6()||F(\"W104\",f.tokens.next,\"generator functions\",\"6\"),V(\"*\"),s=!0):s=!1;if(f.tokens.next.id===\"[\")n=cn(),f.nameStack.set(n);else{f.nameStack.set(f.tokens.next),n=It(),fn(u,n,f.tokens.next);if(typeof n!=\"string\")break}f.tokens.next.value===\"(\"?(f.inES6()||F(\"W104\",f.tokens.curr,\"concise methods\",\"6\"),Xt({type:s?\"generator\":null})):(V(\":\"),Q(10))}else V(o),f.inES5()||q(\"E034\"),n=It(),!n&&!f.inES6()&&q(\"E035\"),n&&ln(o,u,n,f.tokens.curr),i=f.tokens.next,t=Xt(),r=t[\"(params)\"],o===\"get\"&&n&&r?F(\"W076\",i,r[0],n):o===\"set\"&&n&&(!r||r.length!==1)&&F(\"W077\",i,n);else f.inES6()||F(\"W104\",f.tokens.next,\"object short notation\",\"6\"),n=It(!0),fn(u,n,f.tokens.next),Q(10);Dt(n);if(f.tokens.next.id!==\",\")break;tt({allowTrailing:!0,property:!0}),f.tokens.next.id===\",\"?F(\"W070\",f.tokens.curr):f.tokens.next.id===\"}\"&&!f.inES5()&&F(\"W070\",f.tokens.curr)}return e&&(g-=f.option.indent),V(\"}\",this),Kt(u),this},e.fud=function(){q(\"E036\",f.tokens.curr)}}(rt(\"{\"));var tn=it(\"const\",function(e){return en(\"const\",this,e)});tn.exps=!0;var nn=it(\"let\",function(e){return en(\"let\",this,e)});nn.exps=!0;var rn=it(\"var\",function(e){var t=e&&e.prefix,n=e&&e.inexport,i,o,u,a=e&&e.implied,l=!e||!e.ignore;this.first=[];for(;;){var c=[];r.contains([\"{\",\"[\"],f.tokens.next.value)?(i=Gt(),o=!1):(i=[{id:Ct(),token:f.tokens.curr}],o=!0),(!t||!a)&&l&&f.option.varstmt&&F(\"W132\",this),this.first=this.first.concat(c);for(var h in i)i.hasOwnProperty(h)&&(h=i[h],!a&&f.funct[\"(global)\"]&&(S[h.id]===!1?F(\"W079\",h.token,h.id):f.option.futurehostile===!1&&(!f.inES5()&&s.ecmaIdentifiers[5][h.id]===!1||!f.inES6()&&s.ecmaIdentifiers[6][h.id]===!1)&&F(\"W129\",h.token,h.id)),h.id&&(a===\"for\"?(f.funct[\"(scope)\"].has(h.id)||l&&F(\"W088\",h.token,h.id),f.funct[\"(scope)\"].block.use(h.id,h.token)):(f.funct[\"(scope)\"].addlabel(h.id,{type:\"var\",token:h.token}),o&&n&&f.funct[\"(scope)\"].setExported(h.id,h.token)),c.push(h.token)));f.tokens.next.id===\"=\"&&(f.nameStack.set(f.tokens.curr),V(\"=\"),!t&&l&&!f.funct[\"(loopage)\"]&&f.tokens.next.id===\"undefined\"&&F(\"W080\",f.tokens.prev,f.tokens.prev.value),W(0).id===\"=\"&&f.tokens.next.identifier&&(!t&&l&&!f.funct[\"(params)\"]||f.funct[\"(params)\"].indexOf(f.tokens.next.value)===-1)&&F(\"W120\",f.tokens.next,f.tokens.next.value),u=Q(t?120:10),o?i[0].first=u:Zt(c,u));if(f.tokens.next.id!==\",\")break;tt()}return this});rn.exps=!0,st(\"class\",function(){return sn.call(this,!0)}),st(\"function\",function(e){var t=e&&e.inexport,n=!1;f.tokens.next.value===\"*\"&&(V(\"*\"),f.inES6({strict:!0})?n=!0:F(\"W119\",f.tokens.curr,\"function*\",\"6\")),m&&F(\"W082\",f.tokens.curr);var r=Nt();return f.funct[\"(scope)\"].addlabel(r,{type:\"function\",token:f.tokens.curr}),r===undefined?F(\"W025\"):t&&f.funct[\"(scope)\"].setExported(r,f.tokens.prev),Xt({name:r,statement:this,type:n?\"generator\":null,ignoreLoopFunc:m}),f.tokens.next.id===\"(\"&&f.tokens.next.line===f.tokens.curr.line&&q(\"E039\"),this}),ut(\"function\",function(){var e=!1;f.tokens.next.value===\"*\"&&(f.inES6()||F(\"W119\",f.tokens.curr,\"function*\",\"6\"),V(\"*\"),e=!0);var t=Nt();return Xt({name:t,type:e?\"generator\":null}),this}),st(\"if\",function(){var e=f.tokens.next;$t(),f.condition=!0,V(\"(\");var t=Q(0);Jt(t);var n=null;f.option.forin&&f.forinifcheckneeded&&(f.forinifcheckneeded=!1,n=f.forinifchecks[f.forinifchecks.length-1],t.type===\"(punctuator)\"&&t.value===\"!\"?n.type=\"(negative)\":n.type=\"(positive)\"),V(\")\",e),f.condition=!1;var r=_t(!0,!0);return n&&n.type===\"(negative)\"&&r&&r[0]&&r[0].type===\"(identifier)\"&&r[0].value===\"continue\"&&(n.type=\"(negative-with-continue)\"),f.tokens.next.id===\"else\"&&(V(\"else\"),f.tokens.next.id===\"if\"||f.tokens.next.id===\"switch\"?At():_t(!0,!0)),this}),st(\"try\",function(){function t(){V(\"catch\"),V(\"(\"),f.funct[\"(scope)\"].stack(\"catchparams\");if(hn(f.tokens.next,[\"[\",\"{\"])){var e=Gt();r.each(e,function(e){e.id&&f.funct[\"(scope)\"].addParam(e.id,e,\"exception\")})}else f.tokens.next.type!==\"(identifier)\"?F(\"E030\",f.tokens.next,f.tokens.next.value):f.funct[\"(scope)\"].addParam(Ct(),f.tokens.curr,\"exception\");f.tokens.next.value===\"if\"&&(f.inMoz()||F(\"W118\",f.tokens.curr,\"catch filter\"),V(\"if\"),Q(0)),V(\")\"),_t(!1),f.funct[\"(scope)\"].unstack()}var e;_t(!0);while(f.tokens.next.id===\"catch\")$t(),e&&!f.inMoz()&&F(\"W118\",f.tokens.next,\"multiple catch blocks\"),t(),e=!0;if(f.tokens.next.id===\"finally\"){V(\"finally\"),_t(!0);return}return e||q(\"E021\",f.tokens.next,\"catch\",f.tokens.next.value),this}),st(\"while\",function(){var e=f.tokens.next;return f.funct[\"(breakage)\"]+=1,f.funct[\"(loopage)\"]+=1,$t(),V(\"(\"),Jt(Q(0)),V(\")\",e),_t(!0,!0),f.funct[\"(breakage)\"]-=1,f.funct[\"(loopage)\"]-=1,this}).labelled=!0,st(\"with\",function(){var e=f.tokens.next;return f.isStrict()?q(\"E010\",f.tokens.curr):f.option.withstmt||F(\"W085\",f.tokens.curr),V(\"(\"),Q(0),V(\")\",e),_t(!0,!0),this}),st(\"switch\",function(){var e=f.tokens.next,t=!1,n=!1;f.funct[\"(breakage)\"]+=1,V(\"(\"),Jt(Q(0)),V(\")\",e),e=f.tokens.next,V(\"{\"),f.tokens.next.from===g&&(n=!0),n||(g+=f.option.indent),this.cases=[];for(;;)switch(f.tokens.next.id){case\"case\":switch(f.funct[\"(verb)\"]){case\"yield\":case\"break\":case\"case\":case\"continue\":case\"return\":case\"switch\":case\"throw\":break;default:f.tokens.curr.caseFallsThrough||F(\"W086\",f.tokens.curr,\"case\")}V(\"case\"),this.cases.push(Q(0)),$t(),t=!0,V(\":\"),f.funct[\"(verb)\"]=\"case\";break;case\"default\":switch(f.funct[\"(verb)\"]){case\"yield\":case\"break\":case\"continue\":case\"return\":case\"throw\":break;default:this.cases.length&&(f.tokens.curr.caseFallsThrough||F(\"W086\",f.tokens.curr,\"default\"))}V(\"default\"),t=!0,V(\":\");break;case\"}\":n||(g-=f.option.indent),V(\"}\",e),f.funct[\"(breakage)\"]-=1,f.funct[\"(verb)\"]=undefined;return;case\"(end)\":q(\"E023\",f.tokens.next,\"}\");return;default:g+=f.option.indent;if(t)switch(f.tokens.curr.id){case\",\":q(\"E040\");return;case\":\":t=!1,Ot();break;default:q(\"E025\",f.tokens.curr);return}else{if(f.tokens.curr.id!==\":\"){q(\"E021\",f.tokens.next,\"case\",f.tokens.next.value);return}V(\":\"),q(\"E024\",f.tokens.curr,\":\"),Ot()}g-=f.option.indent}return this}).labelled=!0,it(\"debugger\",function(){return f.option.debug||F(\"W087\",this),this}).exps=!0,function(){var e=it(\"do\",function(){f.funct[\"(breakage)\"]+=1,f.funct[\"(loopage)\"]+=1,$t(),this.first=_t(!0,!0),V(\"while\");var e=f.tokens.next;return V(\"(\"),Jt(Q(0)),V(\")\",e),f.funct[\"(breakage)\"]-=1,f.funct[\"(loopage)\"]-=1,this});e.labelled=!0,e.exps=!0}(),st(\"for\",function(){var e,t=f.tokens.next,n=!1,i=null;t.value===\"each\"&&(i=t,V(\"each\"),f.inMoz()||F(\"W118\",f.tokens.curr,\"for each\")),$t(),V(\"(\");var s,o=0,u=[\"in\",\"of\"],a=0,l,c;hn(f.tokens.next,[\"{\",\"[\"])&&++a;do{s=W(o),++o,hn(s,[\"{\",\"[\"])?++a:hn(s,[\"}\",\"]\"])&&--a;if(a<0)break;a===0&&(!l&&pn(s,\",\")?l=s:!c&&pn(s,\"=\")&&(c=s))}while(a>0||!r.contains(u,s.value)&&s.value!==\";\"&&s.type!==\"(end)\");if(r.contains(u,s.value)){!f.inES6()&&s.value===\"of\"&&F(\"W104\",s,\"for of\",\"6\");var h=!c&&!l;c&&q(\"W133\",l,s.value,\"initializer is forbidden\"),l&&q(\"W133\",l,s.value,\"more than one ForBinding\"),f.tokens.next.id===\"var\"?(V(\"var\"),f.tokens.curr.fud({prefix:!0})):f.tokens.next.id===\"let\"||f.tokens.next.id===\"const\"?(V(f.tokens.next.id),n=!0,f.funct[\"(scope)\"].stack(),f.tokens.curr.fud({prefix:!0})):Object.create(rn).fud({prefix:!0,implied:\"for\",ignore:!h}),V(s.value),Q(20),V(\")\",t),s.value===\"in\"&&f.option.forin&&(f.forinifcheckneeded=!0,f.forinifchecks===undefined&&(f.forinifchecks=[]),f.forinifchecks.push({type:\"(none)\"})),f.funct[\"(breakage)\"]+=1,f.funct[\"(loopage)\"]+=1,e=_t(!0,!0);if(s.value===\"in\"&&f.option.forin){if(f.forinifchecks&&f.forinifchecks.length>0){var p=f.forinifchecks.pop();(e&&e.length>0&&(typeof e[0]!=\"object\"||e[0].value!==\"if\")||p.type===\"(positive)\"&&e.length>1||p.type===\"(negative)\")&&F(\"W089\",this)}f.forinifcheckneeded=!1}f.funct[\"(breakage)\"]-=1,f.funct[\"(loopage)\"]-=1}else{i&&q(\"E045\",i);if(f.tokens.next.id!==\";\")if(f.tokens.next.id===\"var\")V(\"var\"),f.tokens.curr.fud();else if(f.tokens.next.id===\"let\")V(\"let\"),n=!0,f.funct[\"(scope)\"].stack(),f.tokens.curr.fud();else for(;;){Q(0,\"for\");if(f.tokens.next.id!==\",\")break;l()}Z(f.tokens.curr),V(\";\"),f.funct[\"(loopage)\"]+=1,f.tokens.next.id!==\";\"&&Jt(Q(0)),Z(f.tokens.curr),V(\";\"),f.tokens.next.id===\";\"&&q(\"E021\",f.tokens.next,\")\",\";\");if(f.tokens.next.id!==\")\")for(;;){Q(0,\"for\");if(f.tokens.next.id!==\",\")break;l()}V(\")\",t),f.funct[\"(breakage)\"]+=1,_t(!0,!0),f.funct[\"(breakage)\"]-=1,f.funct[\"(loopage)\"]-=1}return n&&f.funct[\"(scope)\"].unstack(),this}).labelled=!0,it(\"break\",function(){var e=f.tokens.next.value;return f.option.asi||Z(this),f.tokens.next.id!==\";\"&&!f.tokens.next.reach&&f.tokens.curr.line===G(f.tokens.next)?(f.funct[\"(scope)\"].funct.hasBreakLabel(e)||F(\"W090\",f.tokens.next,e),this.first=f.tokens.next,V()):f.funct[\"(breakage)\"]===0&&F(\"W052\",f.tokens.next,this.value),kt(this),this}).exps=!0,it(\"continue\",function(){var e=f.tokens.next.value;return f.funct[\"(breakage)\"]===0&&F(\"W052\",f.tokens.next,this.value),f.funct[\"(loopage)\"]||F(\"W052\",f.tokens.next,this.value),f.option.asi||Z(this),f.tokens.next.id!==\";\"&&!f.tokens.next.reach&&f.tokens.curr.line===G(f.tokens.next)&&(f.funct[\"(scope)\"].funct.hasBreakLabel(e)||F(\"W090\",f.tokens.next,e),this.first=f.tokens.next,V()),kt(this),this}).exps=!0,it(\"return\",function(){return this.line===G(f.tokens.next)?f.tokens.next.id!==\";\"&&!f.tokens.next.reach&&(this.first=Q(0),this.first&&this.first.type===\"(punctuator)\"&&this.first.value===\"=\"&&!this.first.paren&&!f.option.boss&&I(\"W093\",this.first.line,this.first.character)):f.tokens.next.type===\"(punctuator)\"&&[\"[\",\"{\",\"+\",\"-\"].indexOf(f.tokens.next.value)>-1&&Z(this),kt(this),this}).exps=!0,function(e){e.exps=!0,e.lbp=25}(ut(\"yield\",function(){var e=f.tokens.prev;f.inES6(!0)&&!f.funct[\"(generator)\"]?(\"(catch)\"!==f.funct[\"(name)\"]||!f.funct[\"(context)\"][\"(generator)\"])&&q(\"E046\",f.tokens.curr,\"yield\"):f.inES6()||F(\"W104\",f.tokens.curr,\"yield\",\"6\"),f.funct[\"(generator)\"]=\"yielded\";var t=!1;f.tokens.next.value===\"*\"&&(t=!0,V(\"*\"));if(this.line===G(f.tokens.next)||!f.inMoz()){if(t||f.tokens.next.id!==\";\"&&!f.option.asi&&!f.tokens.next.reach&&f.tokens.next.nud)Y(f.tokens.curr,f.tokens.next),this.first=Q(10),this.first.type===\"(punctuator)\"&&this.first.value===\"=\"&&!this.first.paren&&!f.option.boss&&I(\"W093\",this.first.line,this.first.character);f.inMoz()&&f.tokens.next.id!==\")\"&&(e.lbp>30||!e.assign&&!J()||e.id===\"yield\")&&q(\"E050\",this)}else f.option.asi||Z(this);return this})),it(\"throw\",function(){return Z(this),this.first=Q(20),kt(this),this}).exps=!0,it(\"import\",function(){f.inES6()||F(\"W119\",f.tokens.curr,\"import\",\"6\");if(f.tokens.next.type===\"(string)\")return V(\"(string)\"),this;if(f.tokens.next.identifier){this.name=Ct(),f.funct[\"(scope)\"].addlabel(this.name,{type:\"const\",token:f.tokens.curr});if(f.tokens.next.value!==\",\")return V(\"from\"),V(\"(string)\"),this;V(\",\")}if(f.tokens.next.id===\"*\")V(\"*\"),V(\"as\"),f.tokens.next.identifier&&(this.name=Ct(),f.funct[\"(scope)\"].addlabel(this.name,{type:\"const\",token:f.tokens.curr}));else{V(\"{\");for(;;){if(f.tokens.next.value===\"}\"){V(\"}\");break}var e;f.tokens.next.type===\"default\"?(e=\"default\",V(\"default\")):e=Ct(),f.tokens.next.value===\"as\"&&(V(\"as\"),e=Ct()),f.funct[\"(scope)\"].addlabel(e,{type:\"const\",token:f.tokens.curr});if(f.tokens.next.value!==\",\"){if(f.tokens.next.value===\"}\"){V(\"}\");break}q(\"E024\",f.tokens.next,f.tokens.next.value);break}V(\",\")}}return V(\"from\"),V(\"(string)\"),this}).exps=!0,it(\"export\",function(){var e=!0,t,n;f.inES6()||(F(\"W119\",f.tokens.curr,\"export\",\"6\"),e=!1),f.funct[\"(scope)\"].block.isGlobal()||(q(\"E053\",f.tokens.curr),e=!1);if(f.tokens.next.value===\"*\")return V(\"*\"),V(\"from\"),V(\"(string)\"),this;if(f.tokens.next.type===\"default\"){f.nameStack.set(f.tokens.next),V(\"default\");var r=f.tokens.next.id;if(r===\"function\"||r===\"class\")this.block=!0;return t=W(),Q(10),n=t.value,this.block&&(f.funct[\"(scope)\"].addlabel(n,{type:r,token:t}),f.funct[\"(scope)\"].setExported(n,t)),this}if(f.tokens.next.value===\"{\"){V(\"{\");var i=[];for(;;){f.tokens.next.identifier||q(\"E030\",f.tokens.next,f.tokens.next.value),V(),i.push(f.tokens.curr),f.tokens.next.value===\"as\"&&(V(\"as\"),f.tokens.next.identifier||q(\"E030\",f.tokens.next,f.tokens.next.value),V());if(f.tokens.next.value!==\",\"){if(f.tokens.next.value===\"}\"){V(\"}\");break}q(\"E024\",f.tokens.next,f.tokens.next.value);break}V(\",\")}return f.tokens.next.value===\"from\"?(V(\"from\"),V(\"(string)\")):e&&i.forEach(function(e){f.funct[\"(scope)\"].setExported(e.value,e)}),this}if(f.tokens.next.id===\"var\")V(\"var\"),f.tokens.curr.fud({inexport:!0});else if(f.tokens.next.id===\"let\")V(\"let\"),f.tokens.curr.fud({inexport:!0});else if(f.tokens.next.id===\"const\")V(\"const\"),f.tokens.curr.fud({inexport:!0});else if(f.tokens.next.id===\"function\")this.block=!0,V(\"function\"),f.syntax[\"function\"].fud({inexport:!0});else if(f.tokens.next.id===\"class\"){this.block=!0,V(\"class\");var s=f.tokens.next;f.syntax[\"class\"].fud(),f.funct[\"(scope)\"].setExported(s.value,s)}else q(\"E024\",f.tokens.next,f.tokens.next.value);return this}).exps=!0,lt(\"abstract\"),lt(\"boolean\"),lt(\"byte\"),lt(\"char\"),lt(\"class\",{es5:!0,nud:sn}),lt(\"double\"),lt(\"enum\",{es5:!0}),lt(\"export\",{es5:!0}),lt(\"extends\",{es5:!0}),lt(\"final\"),lt(\"float\"),lt(\"goto\"),lt(\"implements\",{es5:!0,strictOnly:!0}),lt(\"import\",{es5:!0}),lt(\"int\"),lt(\"interface\",{es5:!0,strictOnly:!0}),lt(\"long\"),lt(\"native\"),lt(\"package\",{es5:!0,strictOnly:!0}),lt(\"private\",{es5:!0,strictOnly:!0}),lt(\"protected\",{es5:!0,strictOnly:!0}),lt(\"public\",{es5:!0,strictOnly:!0}),lt(\"short\"),lt(\"static\",{es5:!0,strictOnly:!0}),lt(\"super\",{es5:!0}),lt(\"synchronized\"),lt(\"transient\"),lt(\"volatile\");var an=function(){var e,t,n,r=-1,i=0,s={};hn(f.tokens.curr,[\"[\",\"{\"])&&(i+=1);do{n=r===-1?f.tokens.curr:e,e=r===-1?f.tokens.next:W(r),t=W(r+1),r+=1,hn(e,[\"[\",\"{\"])?i+=1:hn(e,[\"]\",\"}\"])&&(i-=1);if(i===1&&e.identifier&&e.value===\"for\"&&!pn(n,\".\")){s.isCompArray=!0,s.notJson=!0;break}if(i===0&&hn(e,[\"}\",\"]\"])){if(t.value===\"=\"){s.isDestAssign=!0,s.notJson=!0;break}if(t.value===\".\"){s.notJson=!0;break}}pn(e,\";\")&&(s.isBlock=!0,s.notJson=!0)}while(i>0&&e.id!==\"(end)\");return s},vn=function(){function i(e){var t=n.variables.filter(function(t){if(t.value===e)return t.undef=!1,e}).length;return t!==0}function s(e){var t=n.variables.filter(function(t){if(t.value===e&&!t.undef)return t.unused===!0&&(t.unused=!1),e}).length;return t===0}var e=function(){this.mode=\"use\",this.variables=[]},t=[],n;return{stack:function(){n=new e,t.push(n)},unstack:function(){n.variables.filter(function(e){e.unused&&F(\"W098\",e.token,e.raw_text||e.value),e.undef&&f.funct[\"(scope)\"].block.use(e.value,e.token)}),t.splice(-1,1),n=t[t.length-1]},setState:function(e){r.contains([\"use\",\"define\",\"generate\",\"filter\"],e)&&(n.mode=e)},check:function(e){if(!n)return;return n&&n.mode===\"use\"?(s(e)&&n.variables.push({funct:f.funct,token:f.tokens.curr,value:e,undef:!0,unused:!1}),!0):n&&n.mode===\"define\"?(i(e)||n.variables.push({funct:f.funct,token:f.tokens.curr,value:e,undef:!1,unused:!0}),!0):n&&n.mode===\"generate\"?(f.funct[\"(scope)\"].block.use(e,f.tokens.curr),!0):n&&n.mode===\"filter\"?(s(e)&&f.funct[\"(scope)\"].block.use(e,f.tokens.curr),!0):!1}}},gn=function(e){return e.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")},yn=function(t,i,o){function U(e,t){if(!e)return;!Array.isArray(e)&&typeof e==\"object\"&&(e=Object.keys(e)),e.forEach(t)}var a,l,c,d,A,O,M={},P={};i=r.clone(i),f.reset(),i&&i.scope?p.scope=i.scope:(p.errors=[],p.undefs=[],p.internals=[],p.blacklist={},p.scope=\"(main)\"),S=Object.create(null),D(S,s.ecmaIdentifiers[3]),D(S,s.reservedVars),D(S,o||{}),n=Object.create(null);var j=Object.create(null);if(i){U(i.predef||null,function(e){var t,n;e[0]===\"-\"?(t=e.slice(1),p.blacklist[t]=t,delete S[t]):(n=Object.getOwnPropertyDescriptor(i.predef,e),S[e]=n?n.value:!1)}),U(i.exported||null,function(e){j[e]=!0}),delete i.predef,delete i.exported,O=Object.keys(i);for(c=0;c<O.length;c++)if(/^-W\\d{3}$/g.test(O[c]))P[O[c].slice(1)]=!0;else{var z=O[c];M[z]=i[z],(z===\"esversion\"&&i[z]===5||z===\"es5\"&&i[z])&&F(\"I003\"),O[c]===\"newcap\"&&i[z]===!1&&(M[\"(explicitNewcap)\"]=!0)}}f.option=M,f.ignored=P,f.option.indent=f.option.indent||4,f.option.maxerr=f.option.maxerr||50,g=1;var W=h(f,S,j,n);W.on(\"warning\",function(e){F.apply(null,[e.code,e.token].concat(e.data))}),W.on(\"error\",function(e){q.apply(null,[e.code,e.token].concat(e.data))}),f.funct=Rt(\"(global)\",null,{\"(global)\":!0,\"(scope)\":W,\"(comparray)\":vn(),\"(metrics)\":Vt(f.tokens.next)}),v=[f.funct],T=[],x=null,w={},E=null,m=!1,y=[];if(!L(t)&&!Array.isArray(t))return R(\"E004\",0),!1;e={get isJSON(){return f.jsonMode},getOption:function(e){return f.option[e]||null},getCache:function(e){return f.cache[e]},setCache:function(e,t){f.cache[e]=t},warn:function(e,t){I.apply(null,[e,t.line,t.char].concat(t.data))},on:function(e,t){e.split(\" \").forEach(function(e){C.on(e,t)}.bind(this))}},C.removeAllListeners(),(N||[]).forEach(function(t){t(e)}),f.tokens.prev=f.tokens.curr=f.tokens.next=f.syntax[\"(begin)\"],i&&i.ignoreDelimiters&&(Array.isArray(i.ignoreDelimiters)||(i.ignoreDelimiters=[i.ignoreDelimiters]),i.ignoreDelimiters.forEach(function(e){if(!e.start||!e.end)return;d=gn(e.start)+\"[\\\\s\\\\S]*?\"+gn(e.end),A=new RegExp(d,\"ig\"),t=t.replace(A,function(e){return e.replace(/./g,\" \")})})),b=new u(t),b.on(\"warning\",function(e){I.apply(null,[e.code,e.line,e.character].concat(e.data))}),b.on(\"error\",function(e){R.apply(null,[e.code,e.line,e.character].concat(e.data))}),b.on(\"fatal\",function(e){B(\"E041\",e.line,e.from)}),b.on(\"Identifier\",function(e){C.emit(\"Identifier\",e)}),b.on(\"String\",function(e){C.emit(\"String\",e)}),b.on(\"Number\",function(e){C.emit(\"Number\",e)}),b.start();for(var X in i)r.has(i,X)&&k(X,f.tokens.curr);H(),D(S,o||{}),tt.first=!0;try{V();switch(f.tokens.next.id){case\"{\":case\"[\":dn();break;default:Mt(),f.directive[\"use strict\"]&&f.option.strict!==\"global\"&&F(\"W097\",f.tokens.prev),Ot()}f.tokens.next.id!==\"(end)\"&&B(\"E041\",f.tokens.curr.line),f.funct[\"(scope)\"].unstack()}catch($){if(!$||$.name!==\"JSHintError\")throw $;var J=f.tokens.next||{};p.errors.push({scope:\"(main)\",raw:$.raw,code:$.code,reason:$.message,line:$.line||J.line,character:$.character||J.from},null)}if(p.scope===\"(main)\"){i=i||{};for(a=0;a<p.internals.length;a+=1)l=p.internals[a],i.scope=l.elem,yn(l.value,i,o)}return p.errors.length===0};return yn.addModule=function(e){N.push(e)},yn.addModule(l.register),yn.data=function(){var e={functions:[],options:f.option},t,n,r,i,s,o;yn.errors.length&&(e.errors=yn.errors),f.jsonMode&&(e.json=!0);var u=f.funct[\"(scope)\"].getImpliedGlobals();u.length>0&&(e.implieds=u),T.length>0&&(e.urls=T),o=f.funct[\"(scope)\"].getUsedOrDefinedGlobals(),o.length>0&&(e.globals=o);for(r=1;r<v.length;r+=1){n=v[r],t={};for(i=0;i<d.length;i+=1)t[d[i]]=[];for(i=0;i<d.length;i+=1)t[d[i]].length===0&&delete t[d[i]];t.name=n[\"(name)\"],t.param=n[\"(params)\"],t.line=n[\"(line)\"],t.character=n[\"(character)\"],t.last=n[\"(last)\"],t.lastcharacter=n[\"(lastcharacter)\"],t.metrics={complexity:n[\"(metrics)\"].ComplexityCount,parameters:n[\"(metrics)\"].arity,statements:n[\"(metrics)\"].statementCount},e.functions.push(t)}var a=f.funct[\"(scope)\"].getUnuseds();a.length>0&&(e.unused=a);for(s in w)if(typeof w[s]==\"number\"){e.member=w;break}return e},yn.jshint=yn,yn}();typeof n==\"object\"&&n&&(n.JSHINT=p)},{\"../lodash\":\"/node_modules/jshint/lodash.js\",\"./lex.js\":\"/node_modules/jshint/src/lex.js\",\"./messages.js\":\"/node_modules/jshint/src/messages.js\",\"./options.js\":\"/node_modules/jshint/src/options.js\",\"./reg.js\":\"/node_modules/jshint/src/reg.js\",\"./scope-manager.js\":\"/node_modules/jshint/src/scope-manager.js\",\"./state.js\":\"/node_modules/jshint/src/state.js\",\"./style.js\":\"/node_modules/jshint/src/style.js\",\"./vars.js\":\"/node_modules/jshint/src/vars.js\",events:\"/node_modules/browserify/node_modules/events/events.js\"}],\"/node_modules/jshint/src/lex.js\":[function(e,t,n){\"use strict\";function h(){var e=[];return{push:function(t){e.push(t)},check:function(){for(var t=0;t<e.length;++t)e[t]();e.splice(0,e.length)}}}function p(e){var t=e;typeof t==\"string\"&&(t=t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\").split(\"\\n\")),t[0]&&t[0].substr(0,2)===\"#!\"&&(t[0].indexOf(\"node\")!==-1&&(o.option.node=!0),t[0]=\"\"),this.emitter=new i.EventEmitter,this.source=e,this.setLines(t),this.prereg=!0,this.line=0,this.char=1,this.from=1,this.input=\"\",this.inComment=!1,this.context=[],this.templateStarts=[];for(var n=0;n<o.option.indent;n+=1)o.tab+=\" \";this.ignoreLinterErrors=!1}var r=e(\"../lodash\"),i=e(\"events\"),s=e(\"./reg.js\"),o=e(\"./state.js\").state,u=e(\"../data/ascii-identifier-data.js\"),a=u.asciiIdentifierStartTable,f=u.asciiIdentifierPartTable,l={Identifier:1,Punctuator:2,NumericLiteral:3,StringLiteral:4,Comment:5,Keyword:6,NullLiteral:7,BooleanLiteral:8,RegExp:9,TemplateHead:10,TemplateMiddle:11,TemplateTail:12,NoSubstTemplate:13},c={Block:1,Template:2};p.prototype={_lines:[],inContext:function(e){return this.context.length>0&&this.context[this.context.length-1].type===e},pushContext:function(e){this.context.push({type:e})},popContext:function(){return this.context.pop()},isContext:function(e){return this.context.length>0&&this.context[this.context.length-1]===e},currentContext:function(){return this.context.length>0&&this.context[this.context.length-1]},getLines:function(){return this._lines=o.lines,this._lines},setLines:function(e){this._lines=e,o.lines=this._lines},peek:function(e){return this.input.charAt(e||0)},skip:function(e){e=e||1,this.char+=e,this.input=this.input.slice(e)},on:function(e,t){e.split(\" \").forEach(function(e){this.emitter.on(e,t)}.bind(this))},trigger:function(){this.emitter.emit.apply(this.emitter,Array.prototype.slice.call(arguments))},triggerAsync:function(e,t,n,r){n.push(function(){r()&&this.trigger(e,t)}.bind(this))},scanPunctuator:function(){var e=this.peek(),t,n,r;switch(e){case\".\":if(/^[0-9]$/.test(this.peek(1)))return null;if(this.peek(1)===\".\"&&this.peek(2)===\".\")return{type:l.Punctuator,value:\"...\"};case\"(\":case\")\":case\";\":case\",\":case\"[\":case\"]\":case\":\":case\"~\":case\"?\":return{type:l.Punctuator,value:e};case\"{\":return this.pushContext(c.Block),{type:l.Punctuator,value:e};case\"}\":return this.inContext(c.Block)&&this.popContext(),{type:l.Punctuator,value:e};case\"#\":return{type:l.Punctuator,value:e};case\"\":return null}return t=this.peek(1),n=this.peek(2),r=this.peek(3),e===\">\"&&t===\">\"&&n===\">\"&&r===\"=\"?{type:l.Punctuator,value:\">>>=\"}:e===\"=\"&&t===\"=\"&&n===\"=\"?{type:l.Punctuator,value:\"===\"}:e===\"!\"&&t===\"=\"&&n===\"=\"?{type:l.Punctuator,value:\"!==\"}:e===\">\"&&t===\">\"&&n===\">\"?{type:l.Punctuator,value:\">>>\"}:e===\"<\"&&t===\"<\"&&n===\"=\"?{type:l.Punctuator,value:\"<<=\"}:e===\">\"&&t===\">\"&&n===\"=\"?{type:l.Punctuator,value:\">>=\"}:e===\"=\"&&t===\">\"?{type:l.Punctuator,value:e+t}:e===t&&\"+-<>&|\".indexOf(e)>=0?{type:l.Punctuator,value:e+t}:\"<>=!+-*%&|^\".indexOf(e)>=0?t===\"=\"?{type:l.Punctuator,value:e+t}:{type:l.Punctuator,value:e}:e===\"/\"?t===\"=\"?{type:l.Punctuator,value:\"/=\"}:{type:l.Punctuator,value:\"/\"}:null},scanComments:function(){function u(e,t,n){var r=[\"jshint\",\"jslint\",\"members\",\"member\",\"globals\",\"global\",\"exported\"],i=!1,u=e+t,a=\"plain\";return n=n||{},n.isMultiline&&(u+=\"*/\"),t=t.replace(/\\n/g,\" \"),e===\"/*\"&&s.fallsThrough.test(t)&&(i=!0,a=\"falls through\"),r.forEach(function(n){if(i)return;if(e===\"//\"&&n!==\"jshint\")return;t.charAt(n.length)===\" \"&&t.substr(0,n.length)===n&&(i=!0,e+=n,t=t.substr(n.length)),!i&&t.charAt(0)===\" \"&&t.charAt(n.length+1)===\" \"&&t.substr(1,n.length)===n&&(i=!0,e=e+\" \"+n,t=t.substr(n.length+1));if(!i)return;switch(n){case\"member\":a=\"members\";break;case\"global\":a=\"globals\";break;default:var r=t.split(\":\").map(function(e){return e.replace(/^\\s+/,\"\").replace(/\\s+$/,\"\")});if(r.length===2)switch(r[0]){case\"ignore\":switch(r[1]){case\"start\":o.ignoringLinterErrors=!0,i=!1;break;case\"end\":o.ignoringLinterErrors=!1,i=!1}}a=n}}),{type:l.Comment,commentType:a,value:u,body:t,isSpecial:i,isMultiline:n.isMultiline||!1,isMalformed:n.isMalformed||!1}}var e=this.peek(),t=this.peek(1),n=this.input.substr(2),r=this.line,i=this.char,o=this;if(e===\"*\"&&t===\"/\")return this.trigger(\"error\",{code:\"E018\",line:r,character:i}),this.skip(2),null;if(e!==\"/\"||t!==\"*\"&&t!==\"/\")return null;if(t===\"/\")return this.skip(this.input.length),u(\"//\",n);var a=\"\";if(t===\"*\"){this.inComment=!0,this.skip(2);while(this.peek()!==\"*\"||this.peek(1)!==\"/\")if(this.peek()===\"\"){a+=\"\\n\";if(!this.nextLine())return this.trigger(\"error\",{code:\"E017\",line:r,character:i}),this.inComment=!1,u(\"/*\",a,{isMultiline:!0,isMalformed:!0})}else a+=this.peek(),this.skip();return this.skip(2),this.inComment=!1,u(\"/*\",a,{isMultiline:!0})}},scanKeyword:function(){var e=/^[a-zA-Z_$][a-zA-Z0-9_$]*/.exec(this.input),t=[\"if\",\"in\",\"do\",\"var\",\"for\",\"new\",\"try\",\"let\",\"this\",\"else\",\"case\",\"void\",\"with\",\"enum\",\"while\",\"break\",\"catch\",\"throw\",\"const\",\"yield\",\"class\",\"super\",\"return\",\"typeof\",\"delete\",\"switch\",\"export\",\"import\",\"default\",\"finally\",\"extends\",\"function\",\"continue\",\"debugger\",\"instanceof\"];return e&&t.indexOf(e[0])>=0?{type:l.Keyword,value:e[0]}:null},scanIdentifier:function(){function i(e){return e>256}function s(e){return e>256}function o(e){return/^[0-9a-fA-F]$/.test(e)}function p(e){return e.replace(/\\\\u([0-9a-fA-F]{4})/g,function(e,t){return String.fromCharCode(parseInt(t,16))})}var e=\"\",t=0,n,r,u=function(){t+=1;if(this.peek(t)!==\"u\")return null;var e=this.peek(t+1),n=this.peek(t+2),r=this.peek(t+3),i=this.peek(t+4),u;return o(e)&&o(n)&&o(r)&&o(i)?(u=parseInt(e+n+r+i,16),f[u]||s(u)?(t+=5,\"\\\\u\"+e+n+r+i):null):null}.bind(this),c=function(){var e=this.peek(t),n=e.charCodeAt(0);return n===92?u():n<128?a[n]?(t+=1,e):null:i(n)?(t+=1,e):null}.bind(this),h=function(){var e=this.peek(t),n=e.charCodeAt(0);return n===92?u():n<128?f[n]?(t+=1,e):null:s(n)?(t+=1,e):null}.bind(this);r=c();if(r===null)return null;e=r;for(;;){r=h();if(r===null)break;e+=r}switch(e){case\"true\":case\"false\":n=l.BooleanLiteral;break;case\"null\":n=l.NullLiteral;break;default:n=l.Identifier}return{type:n,value:p(e),text:e,tokenLength:e.length}},scanNumericLiteral:function(){function f(e){return/^[0-9]$/.test(e)}function c(e){return/^[0-7]$/.test(e)}function h(e){return/^[01]$/.test(e)}function p(e){return/^[0-9a-fA-F]$/.test(e)}function d(e){return e===\"$\"||e===\"_\"||e===\"\\\\\"||e>=\"a\"&&e<=\"z\"||e>=\"A\"&&e<=\"Z\"}var e=0,t=\"\",n=this.input.length,r=this.peek(e),i,s=f,u=10,a=!1;if(r!==\".\"&&!f(r))return null;if(r!==\".\"){t=this.peek(e),e+=1,r=this.peek(e);if(t===\"0\"){if(r===\"x\"||r===\"X\")s=p,u=16,e+=1,t+=r;if(r===\"o\"||r===\"O\")s=c,u=8,o.inES6(!0)||this.trigger(\"warning\",{code:\"W119\",line:this.line,character:this.char,data:[\"Octal integer literal\",\"6\"]}),e+=1,t+=r;if(r===\"b\"||r===\"B\")s=h,u=2,o.inES6(!0)||this.trigger(\"warning\",{code:\"W119\",line:this.line,character:this.char,data:[\"Binary integer literal\",\"6\"]}),e+=1,t+=r;c(r)&&(s=c,u=8,a=!0,i=!1,e+=1,t+=r),!c(r)&&f(r)&&(e+=1,t+=r)}while(e<n){r=this.peek(e);if(a&&f(r))i=!0;else if(!s(r))break;t+=r,e+=1}if(s!==f){if(!a&&t.length<=2)return{type:l.NumericLiteral,value:t,isMalformed:!0};if(e<n){r=this.peek(e);if(d(r))return null}return{type:l.NumericLiteral,value:t,base:u,isLegacy:a,isMalformed:!1}}}if(r===\".\"){t+=r,e+=1;while(e<n){r=this.peek(e);if(!f(r))break;t+=r,e+=1}}if(r===\"e\"||r===\"E\"){t+=r,e+=1,r=this.peek(e);if(r===\"+\"||r===\"-\")t+=this.peek(e),e+=1;r=this.peek(e);if(!f(r))return null;t+=r,e+=1;while(e<n){r=this.peek(e);if(!f(r))break;t+=r,e+=1}}if(e<n){r=this.peek(e);if(d(r))return null}return{type:l.NumericLiteral,value:t,base:u,isMalformed:!isFinite(t)}},scanEscapeSequence:function(e){var t=!1,n=1;this.skip();var r=this.peek();switch(r){case\"'\":this.triggerAsync(\"warning\",{code:\"W114\",line:this.line,character:this.char,data:[\"\\\\'\"]},e,function(){return o.jsonMode});break;case\"b\":r=\"\\\\b\";break;case\"f\":r=\"\\\\f\";break;case\"n\":r=\"\\\\n\";break;case\"r\":r=\"\\\\r\";break;case\"t\":r=\"\\\\t\";break;case\"0\":r=\"\\\\0\";var i=parseInt(this.peek(1),10);this.triggerAsync(\"warning\",{code:\"W115\",line:this.line,character:this.char},e,function(){return i>=0&&i<=7&&o.isStrict()});break;case\"u\":var s=this.input.substr(1,4),u=parseInt(s,16);isNaN(u)&&this.trigger(\"warning\",{code:\"W052\",line:this.line,character:this.char,data:[\"u\"+s]}),r=String.fromCharCode(u),n=5;break;case\"v\":this.triggerAsync(\"warning\",{code:\"W114\",line:this.line,character:this.char,data:[\"\\\\v\"]},e,function(){return o.jsonMode}),r=\"\u000b\";break;case\"x\":var a=parseInt(this.input.substr(1,2),16);this.triggerAsync(\"warning\",{code:\"W114\",line:this.line,character:this.char,data:[\"\\\\x-\"]},e,function(){return o.jsonMode}),r=String.fromCharCode(a),n=3;break;case\"\\\\\":r=\"\\\\\\\\\";break;case'\"':r='\\\\\"';break;case\"/\":break;case\"\":t=!0,r=\"\"}return{\"char\":r,jump:n,allowNewLine:t}},scanTemplateLiteral:function(e){var t,n=\"\",r,i=this.line,s=this.char,u=this.templateStarts.length;if(!o.inES6(!0))return null;if(this.peek()===\"`\")t=l.TemplateHead,this.templateStarts.push({line:this.line,\"char\":this.char}),u=this.templateStarts.length,this.skip(1),this.pushContext(c.Template);else{if(!this.inContext(c.Template)||this.peek()!==\"}\")return null;t=l.TemplateMiddle}while(this.peek()!==\"`\"){while((r=this.peek())===\"\"){n+=\"\\n\";if(!this.nextLine()){var a=this.templateStarts.pop();return this.trigger(\"error\",{code:\"E052\",line:a.line,character:a.char}),{type:t,value:n,startLine:i,startChar:s,isUnclosed:!0,depth:u,context:this.popContext()}}}if(r===\"$\"&&this.peek(1)===\"{\")return n+=\"${\",this.skip(2),{type:t,value:n,startLine:i,startChar:s,isUnclosed:!1,depth:u,context:this.currentContext()};if(r===\"\\\\\"){var f=this.scanEscapeSequence(e);n+=f.char,this.skip(f.jump)}else r!==\"`\"&&(n+=r,this.skip(1))}return t=t===l.TemplateHead?l.NoSubstTemplate:l.TemplateTail,this.skip(1),this.templateStarts.pop(),{type:t,value:n,startLine:i,startChar:s,isUnclosed:!1,depth:u,context:this.popContext()}},scanStringLiteral:function(e){var t=this.peek();if(t!=='\"'&&t!==\"'\")return null;this.triggerAsync(\"warning\",{code:\"W108\",line:this.line,character:this.char},e,function(){return o.jsonMode&&t!=='\"'});var n=\"\",r=this.line,i=this.char,s=!1;this.skip();while(this.peek()!==t)if(this.peek()===\"\"){s?(s=!1,this.triggerAsync(\"warning\",{code:\"W043\",line:this.line,character:this.char},e,function(){return!o.option.multistr}),this.triggerAsync(\"warning\",{code:\"W042\",line:this.line,character:this.char},e,function(){return o.jsonMode&&o.option.multistr})):this.trigger(\"warning\",{code:\"W112\",line:this.line,character:this.char});if(!this.nextLine())return this.trigger(\"error\",{code:\"E029\",line:r,character:i}),{type:l.StringLiteral,value:n,startLine:r,startChar:i,isUnclosed:!0,quote:t}}else{s=!1;var u=this.peek(),a=1;u<\" \"&&this.trigger(\"warning\",{code:\"W113\",line:this.line,character:this.char,data:[\"<non-printable>\"]});if(u===\"\\\\\"){var f=this.scanEscapeSequence(e);u=f.char,a=f.jump,s=f.allowNewLine}n+=u,this.skip(a)}return this.skip(),{type:l.StringLiteral,value:n,startLine:r,startChar:i,isUnclosed:!1,quote:t}},scanRegExp:function(){var e=0,t=this.input.length,n=this.peek(),r=n,i=\"\",s=[],o=!1,u=!1,a,f=function(){n<\" \"&&(o=!0,this.trigger(\"warning\",{code:\"W048\",line:this.line,character:this.char})),n===\"<\"&&(o=!0,this.trigger(\"warning\",{code:\"W049\",line:this.line,character:this.char,data:[n]}))}.bind(this);if(!this.prereg||n!==\"/\")return null;e+=1,a=!1;while(e<t){n=this.peek(e),r+=n,i+=n;if(u){n===\"]\"&&(this.peek(e-1)!==\"\\\\\"||this.peek(e-2)===\"\\\\\")&&(u=!1),n===\"\\\\\"&&(e+=1,n=this.peek(e),i+=n,r+=n,f()),e+=1;continue}if(n===\"\\\\\"){e+=1,n=this.peek(e),i+=n,r+=n,f();if(n===\"/\"){e+=1;continue}if(n===\"[\"){e+=1;continue}}if(n===\"[\"){u=!0,e+=1;continue}if(n===\"/\"){i=i.substr(0,i.length-1),a=!0,e+=1;break}e+=1}if(!a)return this.trigger(\"error\",{code:\"E015\",line:this.line,character:this.from}),void this.trigger(\"fatal\",{line:this.line,from:this.from});while(e<t){n=this.peek(e);if(!/[gim]/.test(n))break;s.push(n),r+=n,e+=1}try{new RegExp(i,s.join(\"\"))}catch(c){o=!0,this.trigger(\"error\",{code:\"E016\",line:this.line,character:this.char,data:[c.message]})}return{type:l.RegExp,value:r,flags:s,isMalformed:o}},scanNonBreakingSpaces:function(){return o.option.nonbsp?this.input.search(/(\\u00A0)/):-1},scanUnsafeChars:function(){return this.input.search(s.unsafeChars)},next:function(e){this.from=this.char;var t;if(/\\s/.test(this.peek())){t=this.char;while(/\\s/.test(this.peek()))this.from+=1,this.skip()}var n=this.scanComments()||this.scanStringLiteral(e)||this.scanTemplateLiteral(e);return n?n:(n=this.scanRegExp()||this.scanPunctuator()||this.scanKeyword()||this.scanIdentifier()||this.scanNumericLiteral(),n?(this.skip(n.tokenLength||n.value.length),n):null)},nextLine:function(){var e;if(this.line>=this.getLines().length)return!1;this.input=this.getLines()[this.line],this.line+=1,this.char=1,this.from=1;var t=this.input.trim(),n=function(){return r.some(arguments,function(e){return t.indexOf(e)===0})},i=function(){return r.some(arguments,function(e){return t.indexOf(e,t.length-e.length)!==-1})};this.ignoringLinterErrors===!0&&!n(\"/*\",\"//\")&&(!this.inComment||!i(\"*/\"))&&(this.input=\"\"),e=this.scanNonBreakingSpaces(),e>=0&&this.trigger(\"warning\",{code:\"W125\",line:this.line,character:e+1}),this.input=this.input.replace(/\\t/g,o.tab),e=this.scanUnsafeChars(),e>=0&&this.trigger(\"warning\",{code:\"W100\",line:this.line,character:e});if(!this.ignoringLinterErrors&&o.option.maxlen&&o.option.maxlen<this.input.length){var u=this.inComment||n.call(t,\"//\")||n.call(t,\"/*\"),a=!u||!s.maxlenException.test(t);a&&this.trigger(\"warning\",{code:\"W101\",line:this.line,character:this.input.length})}return!0},start:function(){this.nextLine()},token:function(){function n(e,t){if(!e.reserved)return!1;var n=e.meta;if(n&&n.isFutureReservedWord&&o.inES5()){if(!n.es5)return!1;if(n.strictOnly&&!o.option.strict&&!o.isStrict())return!1;if(t)return!1}return!0}var e=h(),t,i=function(t,i,s,u){var a;t!==\"(endline)\"&&t!==\"(end)\"&&(this.prereg=!1);if(t===\"(punctuator)\"){switch(i){case\".\":case\")\":case\"~\":case\"#\":case\"]\":case\"++\":case\"--\":this.prereg=!1;break;default:this.prereg=!0}a=Object.create(o.syntax[i]||o.syntax[\"(error)\"])}if(t===\"(identifier)\"){if(i===\"return\"||i===\"case\"||i===\"typeof\")this.prereg=!0;r.has(o.syntax,i)&&(a=Object.create(o.syntax[i]||o.syntax[\"(error)\"]),n(a,s&&t===\"(identifier)\")||(a=null))}return a||(a=Object.create(o.syntax[t])),a.identifier=t===\"(identifier)\",a.type=a.type||t,a.value=i,a.line=this.line,a.character=this.char,a.from=this.from,a.identifier&&u&&(a.raw_text=u.text||u.value),u&&u.startLine&&u.startLine!==this.line&&(a.startLine=u.startLine),u&&u.context&&(a.context=u.context),u&&u.depth&&(a.depth=u.depth),u&&u.isUnclosed&&(a.isUnclosed=u.isUnclosed),s&&a.identifier&&(a.isProperty=s),a.check=e.check,a}.bind(this);for(;;){if(!this.input.length)return this.nextLine()?i(\"(endline)\",\"\"):this.exhausted?null:(this.exhausted=!0,i(\"(end)\",\"\"));t=this.next(e);if(!t){this.input.length&&(this.trigger(\"error\",{code:\"E024\",line:this.line,character:this.char,data:[this.peek()]}),this.input=\"\");continue}switch(t.type){case l.StringLiteral:return this.triggerAsync(\"String\",{line:this.line,\"char\":this.char,from:this.from,startLine:t.startLine,startChar:t.startChar,value:t.value,quote:t.quote},e,function(){return!0}),i(\"(string)\",t.value,null,t);case l.TemplateHead:return this.trigger(\"TemplateHead\",{line:this.line,\"char\":this.char,from:this.from,startLine:t.startLine,startChar:t.startChar,value:t.value}),i(\"(template)\",t.value,null,t);case l.TemplateMiddle:return this.trigger(\"TemplateMiddle\",{line:this.line,\"char\":this.char,from:this.from,startLine:t.startLine,startChar:t.startChar,value:t.value}),i(\"(template middle)\",t.value,null,t);case l.TemplateTail:return this.trigger(\"TemplateTail\",{line:this.line,\"char\":this.char,from:this.from,startLine:t.startLine,startChar:t.startChar,value:t.value}),i(\"(template tail)\",t.value,null,t);case l.NoSubstTemplate:return this.trigger(\"NoSubstTemplate\",{line:this.line,\"char\":this.char,from:this.from,startLine:t.startLine,startChar:t.startChar,value:t.value}),i(\"(no subst template)\",t.value,null,t);case l.Identifier:this.triggerAsync(\"Identifier\",{line:this.line,\"char\":this.char,from:this.form,name:t.value,raw_name:t.text,isProperty:o.tokens.curr.id===\".\"},e,function(){return!0});case l.Keyword:case l.NullLiteral:case l.BooleanLiteral:return i(\"(identifier)\",t.value,o.tokens.curr.id===\".\",t);case l.NumericLiteral:return t.isMalformed&&this.trigger(\"warning\",{code:\"W045\",line:this.line,character:this.char,data:[t.value]}),this.triggerAsync(\"warning\",{code:\"W114\",line:this.line,character:this.char,data:[\"0x-\"]},e,function(){return t.base===16&&o.jsonMode}),this.triggerAsync(\"warning\",{code:\"W115\",line:this.line,character:this.char},e,function(){return o.isStrict()&&t.base===8&&t.isLegacy}),this.trigger(\"Number\",{line:this.line,\"char\":this.char,from:this.from,value:t.value,base:t.base,isMalformed:t.malformed}),i(\"(number)\",t.value);case l.RegExp:return i(\"(regexp)\",t.value);case l.Comment:o.tokens.curr.comment=!0;if(t.isSpecial)return{id:\"(comment)\",value:t.value,body:t.body,type:t.commentType,isSpecial:t.isSpecial,line:this.line,character:this.char,from:this.from};break;case\"\":break;default:return i(\"(punctuator)\",t.value)}}}},n.Lexer=p,n.Context=c},{\"../data/ascii-identifier-data.js\":\"/node_modules/jshint/data/ascii-identifier-data.js\",\"../lodash\":\"/node_modules/jshint/lodash.js\",\"./reg.js\":\"/node_modules/jshint/src/reg.js\",\"./state.js\":\"/node_modules/jshint/src/state.js\",events:\"/node_modules/browserify/node_modules/events/events.js\"}],\"/node_modules/jshint/src/messages.js\":[function(e,t,n){\"use strict\";var r=e(\"../lodash\"),i={E001:\"Bad option: '{a}'.\",E002:\"Bad option value.\",E003:\"Expected a JSON value.\",E004:\"Input is neither a string nor an array of strings.\",E005:\"Input is empty.\",E006:\"Unexpected early end of program.\",E007:'Missing \"use strict\" statement.',E008:\"Strict violation.\",E009:\"Option 'validthis' can't be used in a global scope.\",E010:\"'with' is not allowed in strict mode.\",E011:\"'{a}' has already been declared.\",E012:\"const '{a}' is initialized to 'undefined'.\",E013:\"Attempting to override '{a}' which is a constant.\",E014:\"A regular expression literal can be confused with '/='.\",E015:\"Unclosed regular expression.\",E016:\"Invalid regular expression.\",E017:\"Unclosed comment.\",E018:\"Unbegun comment.\",E019:\"Unmatched '{a}'.\",E020:\"Expected '{a}' to match '{b}' from line {c} and instead saw '{d}'.\",E021:\"Expected '{a}' and instead saw '{b}'.\",E022:\"Line breaking error '{a}'.\",E023:\"Missing '{a}'.\",E024:\"Unexpected '{a}'.\",E025:\"Missing ':' on a case clause.\",E026:\"Missing '}' to match '{' from line {a}.\",E027:\"Missing ']' to match '[' from line {a}.\",E028:\"Illegal comma.\",E029:\"Unclosed string.\",E030:\"Expected an identifier and instead saw '{a}'.\",E031:\"Bad assignment.\",E032:\"Expected a small integer or 'false' and instead saw '{a}'.\",E033:\"Expected an operator and instead saw '{a}'.\",E034:\"get/set are ES5 features.\",E035:\"Missing property name.\",E036:\"Expected to see a statement and instead saw a block.\",E037:null,E038:null,E039:\"Function declarations are not invocable. Wrap the whole function invocation in parens.\",E040:\"Each value should have its own case label.\",E041:\"Unrecoverable syntax error.\",E042:\"Stopping.\",E043:\"Too many errors.\",E044:null,E045:\"Invalid for each loop.\",E046:\"A yield statement shall be within a generator function (with syntax: `function*`)\",E047:null,E048:\"{a} declaration not directly within block.\",E049:\"A {a} cannot be named '{b}'.\",E050:\"Mozilla requires the yield expression to be parenthesized here.\",E051:null,E052:\"Unclosed template literal.\",E053:\"Export declaration must be in global scope.\",E054:\"Class properties must be methods. Expected '(' but instead saw '{a}'.\",E055:\"The '{a}' option cannot be set after any executable code.\",E056:\"'{a}' was used before it was declared, which is illegal for '{b}' variables.\",E057:\"Invalid meta property: '{a}.{b}'.\",E058:\"Missing semicolon.\"},s={W001:\"'hasOwnProperty' is a really bad name.\",W002:\"Value of '{a}' may be overwritten in IE 8 and earlier.\",W003:\"'{a}' was used before it was defined.\",W004:\"'{a}' is already defined.\",W005:\"A dot following a number can be confused with a decimal point.\",W006:\"Confusing minuses.\",W007:\"Confusing plusses.\",W008:\"A leading decimal point can be confused with a dot: '{a}'.\",W009:\"The array literal notation [] is preferable.\",W010:\"The object literal notation {} is preferable.\",W011:null,W012:null,W013:null,W014:\"Bad line breaking before '{a}'.\",W015:null,W016:\"Unexpected use of '{a}'.\",W017:\"Bad operand.\",W018:\"Confusing use of '{a}'.\",W019:\"Use the isNaN function to compare with NaN.\",W020:\"Read only.\",W021:\"Reassignment of '{a}', which is is a {b}. Use 'var' or 'let' to declare bindings that may change.\",W022:\"Do not assign to the exception parameter.\",W023:\"Expected an identifier in an assignment and instead saw a function invocation.\",W024:\"Expected an identifier and instead saw '{a}' (a reserved word).\",W025:\"Missing name in function declaration.\",W026:\"Inner functions should be listed at the top of the outer function.\",W027:\"Unreachable '{a}' after '{b}'.\",W028:\"Label '{a}' on {b} statement.\",W030:\"Expected an assignment or function call and instead saw an expression.\",W031:\"Do not use 'new' for side effects.\",W032:\"Unnecessary semicolon.\",W033:\"Missing semicolon.\",W034:'Unnecessary directive \"{a}\".',W035:\"Empty block.\",W036:\"Unexpected /*member '{a}'.\",W037:\"'{a}' is a statement label.\",W038:\"'{a}' used out of scope.\",W039:\"'{a}' is not allowed.\",W040:\"Possible strict violation.\",W041:\"Use '{a}' to compare with '{b}'.\",W042:\"Avoid EOL escaping.\",W043:\"Bad escaping of EOL. Use option multistr if needed.\",W044:\"Bad or unnecessary escaping.\",W045:\"Bad number '{a}'.\",W046:\"Don't use extra leading zeros '{a}'.\",W047:\"A trailing decimal point can be confused with a dot: '{a}'.\",W048:\"Unexpected control character in regular expression.\",W049:\"Unexpected escaped character '{a}' in regular expression.\",W050:\"JavaScript URL.\",W051:\"Variables should not be deleted.\",W052:\"Unexpected '{a}'.\",W053:\"Do not use {a} as a constructor.\",W054:\"The Function constructor is a form of eval.\",W055:\"A constructor name should start with an uppercase letter.\",W056:\"Bad constructor.\",W057:\"Weird construction. Is 'new' necessary?\",W058:\"Missing '()' invoking a constructor.\",W059:\"Avoid arguments.{a}.\",W060:\"document.write can be a form of eval.\",W061:\"eval can be harmful.\",W062:\"Wrap an immediate function invocation in parens to assist the reader in understanding that the expression is the result of a function, and not the function itself.\",W063:\"Math is not a function.\",W064:\"Missing 'new' prefix when invoking a constructor.\",W065:\"Missing radix parameter.\",W066:\"Implied eval. Consider passing a function instead of a string.\",W067:\"Bad invocation.\",W068:\"Wrapping non-IIFE function literals in parens is unnecessary.\",W069:\"['{a}'] is better written in dot notation.\",W070:\"Extra comma. (it breaks older versions of IE)\",W071:\"This function has too many statements. ({a})\",W072:\"This function has too many parameters. ({a})\",W073:\"Blocks are nested too deeply. ({a})\",W074:\"This function's cyclomatic complexity is too high. ({a})\",W075:\"Duplicate {a} '{b}'.\",W076:\"Unexpected parameter '{a}' in get {b} function.\",W077:\"Expected a single parameter in set {a} function.\",W078:\"Setter is defined without getter.\",W079:\"Redefinition of '{a}'.\",W080:\"It's not necessary to initialize '{a}' to 'undefined'.\",W081:null,W082:\"Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.\",W083:\"Don't make functions within a loop.\",W084:\"Assignment in conditional expression\",W085:\"Don't use 'with'.\",W086:\"Expected a 'break' statement before '{a}'.\",W087:\"Forgotten 'debugger' statement?\",W088:\"Creating global 'for' variable. Should be 'for (var {a} ...'.\",W089:\"The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.\",W090:\"'{a}' is not a statement label.\",W091:null,W093:\"Did you mean to return a conditional instead of an assignment?\",W094:\"Unexpected comma.\",W095:\"Expected a string and instead saw {a}.\",W096:\"The '{a}' key may produce unexpected results.\",W097:'Use the function form of \"use strict\".',W098:\"'{a}' is defined but never used.\",W099:null,W100:\"This character may get silently deleted by one or more browsers.\",W101:\"Line is too long.\",W102:null,W103:\"The '{a}' property is deprecated.\",W104:\"'{a}' is available in ES{b} (use 'esversion: {b}') or Mozilla JS extensions (use moz).\",W105:\"Unexpected {a} in '{b}'.\",W106:\"Identifier '{a}' is not in camel case.\",W107:\"Script URL.\",W108:\"Strings must use doublequote.\",W109:\"Strings must use singlequote.\",W110:\"Mixed double and single quotes.\",W112:\"Unclosed string.\",W113:\"Control character in string: {a}.\",W114:\"Avoid {a}.\",W115:\"Octal literals are not allowed in strict mode.\",W116:\"Expected '{a}' and instead saw '{b}'.\",W117:\"'{a}' is not defined.\",W118:\"'{a}' is only available in Mozilla JavaScript extensions (use moz option).\",W119:\"'{a}' is only available in ES{b} (use 'esversion: {b}').\",W120:\"You might be leaking a variable ({a}) here.\",W121:\"Extending prototype of native object: '{a}'.\",W122:\"Invalid typeof value '{a}'\",W123:\"'{a}' is already defined in outer scope.\",W124:\"A generator function shall contain a yield statement.\",W125:\"This line contains non-breaking spaces: http://jshint.com/doc/options/#nonbsp\",W126:\"Unnecessary grouping operator.\",W127:\"Unexpected use of a comma operator.\",W128:\"Empty array elements require elision=true.\",W129:\"'{a}' is defined in a future version of JavaScript. Use a different variable name to avoid migration issues.\",W130:\"Invalid element after rest element.\",W131:\"Invalid parameter after rest parameter.\",W132:\"`var` declarations are forbidden. Use `let` or `const` instead.\",W133:\"Invalid for-{a} loop left-hand-side: {b}.\",W134:\"The '{a}' option is only available when linting ECMAScript {b} code.\",W135:\"{a} may not be supported by non-browser environments.\",W136:\"'{a}' must be in function scope.\",W137:\"Empty destructuring.\",W138:\"Regular parameters should not come after default parameters.\"},o={I001:\"Comma warnings can be turned off with 'laxcomma'.\",I002:null,I003:\"ES5 option is now set per default\"};n.errors={},n.warnings={},n.info={},r.each(i,function(e,t){n.errors[t]={code:t,desc:e}}),r.each(s,function(e,t){n.warnings[t]={code:t,desc:e}}),r.each(o,function(e,t){n.info[t]={code:t,desc:e}})},{\"../lodash\":\"/node_modules/jshint/lodash.js\"}],\"/node_modules/jshint/src/name-stack.js\":[function(e,t,n){\"use strict\";function r(){this._stack=[]}Object.defineProperty(r.prototype,\"length\",{get:function(){return this._stack.length}}),r.prototype.push=function(){this._stack.push(null)},r.prototype.pop=function(){this._stack.pop()},r.prototype.set=function(e){this._stack[this.length-1]=e},r.prototype.infer=function(){var e=this._stack[this.length-1],t=\"\",n;if(!e||e.type===\"class\")e=this._stack[this.length-2];return e?(n=e.type,n!==\"(string)\"&&n!==\"(number)\"&&n!==\"(identifier)\"&&n!==\"default\"?\"(expression)\":(e.accessorType&&(t=e.accessorType+\" \"),t+e.value)):\"(empty)\"},t.exports=r},{}],\"/node_modules/jshint/src/options.js\":[function(e,t,n){\"use strict\";n.bool={enforcing:{bitwise:!0,freeze:!0,camelcase:!0,curly:!0,eqeqeq:!0,futurehostile:!0,notypeof:!0,es3:!0,es5:!0,forin:!0,funcscope:!0,immed:!0,iterator:!0,newcap:!0,noarg:!0,nocomma:!0,noempty:!0,nonbsp:!0,nonew:!0,undef:!0,singleGroups:!1,varstmt:!1,enforceall:!1},relaxing:{asi:!0,multistr:!0,debug:!0,boss:!0,evil:!0,globalstrict:!0,plusplus:!0,proto:!0,scripturl:!0,sub:!0,supernew:!0,laxbreak:!0,laxcomma:!0,validthis:!0,withstmt:!0,moz:!0,noyield:!0,eqnull:!0,lastsemic:!0,loopfunc:!0,expr:!0,esnext:!0,elision:!0},environments:{mootools:!0,couch:!0,jasmine:!0,jquery:!0,node:!0,qunit:!0,rhino:!0,shelljs:!0,prototypejs:!0,yui:!0,mocha:!0,module:!0,wsh:!0,worker:!0,nonstandard:!0,browser:!0,browserify:!0,devel:!0,dojo:!0,typed:!0,phantom:!0},obsolete:{onecase:!0,regexp:!0,regexdash:!0}},n.val={maxlen:!1,indent:!1,maxerr:!1,predef:!1,globals:!1,quotmark:!1,scope:!1,maxstatements:!1,maxdepth:!1,maxparams:!1,maxcomplexity:!1,shadow:!1,strict:!0,unused:!0,latedef:!1,ignore:!1,ignoreDelimiters:!1,esversion:5},n.inverted={bitwise:!0,forin:!0,newcap:!0,plusplus:!0,regexp:!0,undef:!0,eqeqeq:!0,strict:!0},n.validNames=Object.keys(n.val).concat(Object.keys(n.bool.relaxing)).concat(Object.keys(n.bool.enforcing)).concat(Object.keys(n.bool.obsolete)).concat(Object.keys(n.bool.environments)),n.renamed={eqeq:\"eqeqeq\",windows:\"wsh\",sloppy:\"strict\"},n.removed={nomen:!0,onevar:!0,passfail:!0,white:!0,gcl:!0,smarttabs:!0,trailing:!0},n.noenforceall={varstmt:!0,strict:!0}},{}],\"/node_modules/jshint/src/reg.js\":[function(e,t,n){\"use strict\";n.unsafeString=/@cc|<\\/?|script|\\]\\s*\\]|<\\s*!|&lt/i,n.unsafeChars=/[\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/,n.needEsc=/[\\u0000-\\u001f&<\"\\/\\\\\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/,n.needEscGlobal=/[\\u0000-\\u001f&<\"\\/\\\\\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,n.starSlash=/\\*\\//,n.identifier=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,n.javascriptURL=/^(?:javascript|jscript|ecmascript|vbscript|livescript)\\s*:/i,n.fallsThrough=/^\\s*falls?\\sthrough\\s*$/,n.maxlenException=/^(?:(?:\\/\\/|\\/\\*|\\*) ?)?[^ ]+$/},{}],\"/node_modules/jshint/src/scope-manager.js\":[function(e,t,n){\"use strict\";var r=e(\"../lodash\"),i=e(\"events\"),s={},o=function(e,t,n,o){function f(e){u={\"(labels)\":Object.create(null),\"(usages)\":Object.create(null),\"(breakLabels)\":Object.create(null),\"(parent)\":u,\"(type)\":e,\"(params)\":e===\"functionparams\"||e===\"catchparams\"?[]:null},a.push(u)}function v(e,t){d.emit(\"warning\",{code:e,token:t,data:r.slice(arguments,2)})}function m(e,t){d.emit(\"warning\",{code:e,token:t,data:r.slice(arguments,2)})}function g(e){u[\"(usages)\"][e]||(u[\"(usages)\"][e]={\"(modified)\":[],\"(reassigned)\":[],\"(tokens)\":[]})}function w(){if(u[\"(type)\"]===\"functionparams\"){E();return}var e=u[\"(labels)\"];for(var t in e)e[t]&&e[t][\"(type)\"]!==\"exception\"&&e[t][\"(unused)\"]&&b(t,e[t][\"(token)\"],\"var\")}function E(){var t=u[\"(params)\"];if(!t)return;var n=t.pop(),r;while(n){var i=u[\"(labels)\"][n];r=y(e.funct[\"(unusedOption)\"]);if(n===\"undefined\")return;if(i[\"(unused)\"])b(n,i[\"(token)\"],\"param\",e.funct[\"(unusedOption)\"]);else if(r===\"last-param\")return;n=t.pop()}}function S(e){for(var t=a.length-1;t>=0;--t){var n=a[t][\"(labels)\"];if(n[e])return n}}function x(e){for(var t=a.length-1;t>=0;t--){var n=a[t];if(n[\"(usages)\"][e])return n[\"(usages)\"][e];if(n===l)break}return!1}function T(t,n){if(e.option.shadow!==\"outer\")return;var r=l[\"(type)\"]===\"global\",i=u[\"(type)\"]===\"functionparams\",s=!r;for(var o=0;o<a.length;o++){var f=a[o];!i&&a[o+1]===l&&(s=!1),s&&f[\"(labels)\"][t]&&v(\"W123\",n,t),f[\"(breakLabels)\"][t]&&v(\"W123\",n,t)}}function N(t,n,r){e.option.latedef&&(e.option.latedef===!0&&t===\"function\"||t!==\"function\")&&v(\"W003\",r,n)}var u,a=[];f(\"global\"),u[\"(predefined)\"]=t;var l=u,c=Object.create(null),h=Object.create(null),p=[],d=new i.EventEmitter,y=function(t){return t===undefined&&(t=e.option.unused),t===!0&&(t=\"last-param\"),t},b=function(e,t,n,r){var i=t.line,s=t.from,o=t.raw_text||e;r=y(r);var u={vars:[\"var\"],\"last-param\":[\"var\",\"param\"],strict:[\"var\",\"param\",\"last-param\"]};r&&u[r]&&u[r].indexOf(n)!==-1&&v(\"W098\",{line:i,from:s},o),(r||n===\"var\")&&p.push({name:e,line:i,character:s})},C={on:function(e,t){e.split(\" \").forEach(function(e){d.on(e,t)})},isPredefined:function(e){return!this.has(e)&&r.has(a[0][\"(predefined)\"],e)},stack:function(e){var t=u;f(e),!e&&t[\"(type)\"]===\"functionparams\"&&(u[\"(isFuncBody)\"]=!0,u[\"(context)\"]=l,l=u)},unstack:function(){var t=a.length>1?a[a.length-2]:null,n=u===l,i=u[\"(type)\"]===\"functionparams\",f=u[\"(type)\"]===\"functionouter\",p,d,g=u[\"(usages)\"],y=u[\"(labels)\"],E=Object.keys(g);g.__proto__&&E.indexOf(\"__proto__\")===-1&&E.push(\"__proto__\");for(p=0;p<E.length;p++){var S=E[p],x=g[S],T=y[S];if(T){var N=T[\"(type)\"];if(T[\"(useOutsideOfScope)\"]&&!e.option.funcscope){var C=x[\"(tokens)\"];if(C)for(d=0;d<C.length;d++)T[\"(function)\"]===C[d][\"(function)\"]&&m(\"W038\",C[d],S)}u[\"(labels)\"][S][\"(unused)\"]=!1;if(N===\"const\"&&x[\"(modified)\"])for(d=0;d<x[\"(modified)\"].length;d++)m(\"E013\",x[\"(modified)\"][d],S);if((N===\"function\"||N===\"class\")&&x[\"(reassigned)\"])for(d=0;d<x[\"(reassigned)\"].length;d++)m(\"W021\",x[\"(reassigned)\"][d],S,N);continue}f&&(e.funct[\"(isCapturing)\"]=!0);if(t)if(!t[\"(usages)\"][S])t[\"(usages)\"][S]=x,n&&(t[\"(usages)\"][S][\"(onlyUsedSubFunction)\"]=!0);else{var k=t[\"(usages)\"][S];k[\"(modified)\"]=k[\"(modified)\"].concat(x[\"(modified)\"]),k[\"(tokens)\"]=k[\"(tokens)\"].concat(x[\"(tokens)\"]),k[\"(reassigned)\"]=k[\"(reassigned)\"].concat(x[\"(reassigned)\"]),k[\"(onlyUsedSubFunction)\"]=!1}else if(typeof u[\"(predefined)\"][S]==\"boolean\"){delete o[S],c[S]=s;if(u[\"(predefined)\"][S]===!1&&x[\"(reassigned)\"])for(d=0;d<x[\"(reassigned)\"].length;d++)v(\"W020\",x[\"(reassigned)\"][d])}else if(x[\"(tokens)\"])for(d=0;d<x[\"(tokens)\"].length;d++){var L=x[\"(tokens)\"][d];L.forgiveUndef||(e.option.undef&&!L.ignoreUndef&&v(\"W117\",L,S),h[S]?h[S].line.push(L.line):h[S]={name:S,line:[L.line]})}}t||Object.keys(o).forEach(function(e){b(e,o[e],\"var\")});if(t&&!n&&!i&&!f){var A=Object.keys(y);for(p=0;p<A.length;p++){var O=A[p];!y[O][\"(blockscoped)\"]&&y[O][\"(type)\"]!==\"exception\"&&!this.funct.has(O,{excludeCurrent:!0})&&(t[\"(labels)\"][O]=y[O],l[\"(type)\"]!==\"global\"&&(t[\"(labels)\"][O][\"(useOutsideOfScope)\"]=!0),delete y[O])}}w(),a.pop(),n&&(l=a[r.findLastIndex(a,function(e){return e[\"(isFuncBody)\"]||e[\"(type)\"]===\"global\"})]),u=t},addParam:function(t,n,i){i=i||\"param\";if(i===\"exception\"){var s=this.funct.labeltype(t);s&&s!==\"exception\"&&(e.option.node||v(\"W002\",e.tokens.next,t))}r.has(u[\"(labels)\"],t)?u[\"(labels)\"][t].duplicated=!0:(T(t,n,i),u[\"(labels)\"][t]={\"(type)\":i,\"(token)\":n,\"(unused)\":!0},u[\"(params)\"].push(t));if(r.has(u[\"(usages)\"],t)){var o=u[\"(usages)\"][t];o[\"(onlyUsedSubFunction)\"]?N(i,t,n):v(\"E056\",n,t,i)}},validateParams:function(){if(l[\"(type)\"]===\"global\")return;var t=e.isStrict(),n=l[\"(parent)\"];if(!n[\"(params)\"])return;n[\"(params)\"].forEach(function(r){var i=n[\"(labels)\"][r];i&&i.duplicated&&(t?v(\"E011\",i[\"(token)\"],r):e.option.shadow!==!0&&v(\"W004\",i[\"(token)\"],r))})},getUsedOrDefinedGlobals:function(){var e=Object.keys(c);return c.__proto__===s&&e.indexOf(\"__proto__\")===-1&&e.push(\"__proto__\"),e},getImpliedGlobals:function(){var e=r.values(h),t=!1;return h.__proto__&&(t=e.some(function(e){return e.name===\"__proto__\"}),t||e.push(h.__proto__)),e},getUnuseds:function(){return p},has:function(e){return Boolean(S(e))},labeltype:function(e){var t=S(e);return t?t[e][\"(type)\"]:null},addExported:function(e){var t=a[0][\"(labels)\"];if(r.has(o,e))delete o[e];else if(r.has(t,e))t[e][\"(unused)\"]=!1;else{for(var i=1;i<a.length;i++){var s=a[i];if(!!s[\"(type)\"])break;if(r.has(s[\"(labels)\"],e)&&!s[\"(labels)\"][e][\"(blockscoped)\"]){s[\"(labels)\"][e][\"(unused)\"]=!1;return}}n[e]=!0}},setExported:function(e,t){this.block.use(e,t)},addlabel:function(t,i){var o=i.type,a=i.token,f=o===\"let\"||o===\"const\"||o===\"class\",h=(f?u:l)[\"(type)\"]===\"global\"&&r.has(n,t);T(t,a,o);if(f){var p=u[\"(labels)\"][t];!p&&u===l&&u[\"(type)\"]!==\"global\"&&(p=!!l[\"(parent)\"][\"(labels)\"][t]);if(!p&&u[\"(usages)\"][t]){var d=u[\"(usages)\"][t];d[\"(onlyUsedSubFunction)\"]?N(o,t,a):v(\"E056\",a,t,o)}p?v(\"E011\",a,t):e.option.shadow===\"outer\"&&C.funct.has(t)&&v(\"W004\",a,t),C.block.add(t,o,a,!h)}else{var m=C.funct.has(t);!m&&x(t)&&N(o,t,a),C.funct.has(t,{onlyBlockscoped:!0})?v(\"E011\",a,t):e.option.shadow!==!0&&m&&t!==\"__proto__\"&&l[\"(type)\"]!==\"global\"&&v(\"W004\",a,t),C.funct.add(t,o,a,!h),l[\"(type)\"]===\"global\"&&(c[t]=s)}},funct:{labeltype:function(e,t){var n=t&&t.onlyBlockscoped,r=t&&t.excludeParams,i=a.length-(t&&t.excludeCurrent?2:1);for(var s=i;s>=0;s--){var o=a[s];if(o[\"(labels)\"][e]&&(!n||o[\"(labels)\"][e][\"(blockscoped)\"]))return o[\"(labels)\"][e][\"(type)\"];var u=r?a[s-1]:o;if(u&&u[\"(type)\"]===\"functionparams\")return null}return null},hasBreakLabel:function(e){for(var t=a.length-1;t>=0;t--){var n=a[t];if(n[\"(breakLabels)\"][e])return!0;if(n[\"(type)\"]===\"functionparams\")return!1}return!1},has:function(e,t){return Boolean(this.labeltype(e,t))},add:function(e,t,n,r){u[\"(labels)\"][e]={\"(type)\":t,\"(token)\":n,\"(blockscoped)\":!1,\"(function)\":l,\"(unused)\":r}}},block:{isGlobal:function(){return u[\"(type)\"]===\"global\"},use:function(t,n){var r=l[\"(parent)\"];r&&r[\"(labels)\"][t]&&r[\"(labels)\"][t][\"(type)\"]===\"param\"&&(C.funct.has(t,{excludeParams:!0,onlyBlockscoped:!0})||(r[\"(labels)\"][t][\"(unused)\"]=!1)),n&&(e.ignored.W117||e.option.undef===!1)&&(n.ignoreUndef=!0),g(t),n&&(n[\"(function)\"]=l,u[\"(usages)\"][t][\"(tokens)\"].push(n))},reassign:function(e,t){this.modify(e,t),u[\"(usages)\"][e][\"(reassigned)\"].push(t)},modify:function(e,t){g(e),u[\"(usages)\"][e][\"(modified)\"].push(t)},add:function(e,t,n,r){u[\"(labels)\"][e]={\"(type)\":t,\"(token)\":n,\"(blockscoped)\":!0,\"(unused)\":r}},addBreakLabel:function(t,n){var r=n.token;C.funct.hasBreakLabel(t)?v(\"E011\",r,t):e.option.shadow===\"outer\"&&(C.funct.has(t)?v(\"W004\",r,t):T(t,r)),u[\"(breakLabels)\"][t]=r}}};return C};t.exports=o},{\"../lodash\":\"/node_modules/jshint/lodash.js\",events:\"/node_modules/browserify/node_modules/events/events.js\"}],\"/node_modules/jshint/src/state.js\":[function(e,t,n){\"use strict\";var r=e(\"./name-stack.js\"),i={syntax:{},isStrict:function(){return this.directive[\"use strict\"]||this.inClassBody||this.option.module||this.option.strict===\"implied\"},inMoz:function(){return this.option.moz},inES6:function(){return this.option.moz||this.option.esversion>=6},inES5:function(e){return e?(!this.option.esversion||this.option.esversion===5)&&!this.option.moz:!this.option.esversion||this.option.esversion>=5||this.option.moz},reset:function(){this.tokens={prev:null,next:null,curr:null},this.option={},this.funct=null,this.ignored={},this.directive={},this.jsonMode=!1,this.jsonWarnings=[],this.lines=[],this.tab=\"\",this.cache={},this.ignoredLines={},this.forinifcheckneeded=!1,this.nameStack=new r,this.inClassBody=!1}};n.state=i},{\"./name-stack.js\":\"/node_modules/jshint/src/name-stack.js\"}],\"/node_modules/jshint/src/style.js\":[function(e,t,n){\"use strict\";n.register=function(e){e.on(\"Identifier\",function(n){if(e.getOption(\"proto\"))return;n.name===\"__proto__\"&&e.warn(\"W103\",{line:n.line,\"char\":n.char,data:[n.name,\"6\"]})}),e.on(\"Identifier\",function(n){if(e.getOption(\"iterator\"))return;n.name===\"__iterator__\"&&e.warn(\"W103\",{line:n.line,\"char\":n.char,data:[n.name]})}),e.on(\"Identifier\",function(n){if(!e.getOption(\"camelcase\"))return;n.name.replace(/^_+|_+$/g,\"\").indexOf(\"_\")>-1&&!n.name.match(/^[A-Z0-9_]*$/)&&e.warn(\"W106\",{line:n.line,\"char\":n.from,data:[n.name]})}),e.on(\"String\",function(n){var r=e.getOption(\"quotmark\"),i;if(!r)return;r===\"single\"&&n.quote!==\"'\"&&(i=\"W109\"),r===\"double\"&&n.quote!=='\"'&&(i=\"W108\"),r===!0&&(e.getCache(\"quotmark\")||e.setCache(\"quotmark\",n.quote),e.getCache(\"quotmark\")!==n.quote&&(i=\"W110\")),i&&e.warn(i,{line:n.line,\"char\":n.char})}),e.on(\"Number\",function(n){n.value.charAt(0)===\".\"&&e.warn(\"W008\",{line:n.line,\"char\":n.char,data:[n.value]}),n.value.substr(n.value.length-1)===\".\"&&e.warn(\"W047\",{line:n.line,\"char\":n.char,data:[n.value]}),/^00+/.test(n.value)&&e.warn(\"W046\",{line:n.line,\"char\":n.char,data:[n.value]})}),e.on(\"String\",function(n){var r=/^(?:javascript|jscript|ecmascript|vbscript|livescript)\\s*:/i;if(e.getOption(\"scripturl\"))return;r.test(n.value)&&e.warn(\"W107\",{line:n.line,\"char\":n.char})})}},{}],\"/node_modules/jshint/src/vars.js\":[function(e,t,n){\"use strict\";n.reservedVars={arguments:!1,NaN:!1},n.ecmaIdentifiers={3:{Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},5:{JSON:!1},6:{Map:!1,Promise:!1,Proxy:!1,Reflect:!1,Set:!1,Symbol:!1,WeakMap:!1,WeakSet:!1}},n.browser={Audio:!1,Blob:!1,addEventListener:!1,applicationCache:!1,atob:!1,blur:!1,btoa:!1,cancelAnimationFrame:!1,CanvasGradient:!1,CanvasPattern:!1,CanvasRenderingContext2D:!1,CSS:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,Comment:!1,CustomEvent:!1,DOMParser:!1,defaultStatus:!1,Document:!1,document:!1,DocumentFragment:!1,Element:!1,ElementTimeControl:!1,Event:!1,event:!1,fetch:!1,FileReader:!1,FormData:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,HTMLAnchorElement:!1,HTMLBaseElement:!1,HTMLBlockquoteElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLCollection:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLIsIndexElement:!1,HTMLLabelElement:!1,HTMLLayerElement:!1,HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPreElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,HTMLTemplateElement:!1,HTMLTextAreaElement:!1,HTMLTitleElement:!1,HTMLUListElement:!1,HTMLVideoElement:!1,history:!1,Image:!1,Intl:!1,length:!1,localStorage:!1,location:!1,matchMedia:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,MouseEvent:!1,moveBy:!1,moveTo:!1,MutationObserver:!1,name:!1,Node:!1,NodeFilter:!1,NodeList:!1,Notification:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,performance:!1,print:!1,Range:!1,requestAnimationFrame:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,SharedWorker:!1,status:!1,SVGAElement:!1,SVGAltGlyphDefElement:!1,SVGAltGlyphElement:!1,SVGAltGlyphItemElement:!1,SVGAngle:!1,SVGAnimateColorElement:!1,SVGAnimateElement:!1,SVGAnimateMotionElement:!1,SVGAnimateTransformElement:!1,SVGAnimatedAngle:!1,SVGAnimatedBoolean:!1,SVGAnimatedEnumeration:!1,SVGAnimatedInteger:!1,SVGAnimatedLength:!1,SVGAnimatedLengthList:!1,SVGAnimatedNumber:!1,SVGAnimatedNumberList:!1,SVGAnimatedPathData:!1,SVGAnimatedPoints:!1,SVGAnimatedPreserveAspectRatio:!1,SVGAnimatedRect:!1,SVGAnimatedString:!1,SVGAnimatedTransformList:!1,SVGAnimationElement:!1,SVGCSSRule:!1,SVGCircleElement:!1,SVGClipPathElement:!1,SVGColor:!1,SVGColorProfileElement:!1,SVGColorProfileRule:!1,SVGComponentTransferFunctionElement:!1,SVGCursorElement:!1,SVGDefsElement:!1,SVGDescElement:!1,SVGDocument:!1,SVGElement:!1,SVGElementInstance:!1,SVGElementInstanceList:!1,SVGEllipseElement:!1,SVGExternalResourcesRequired:!1,SVGFEBlendElement:!1,SVGFEColorMatrixElement:!1,SVGFEComponentTransferElement:!1,SVGFECompositeElement:!1,SVGFEConvolveMatrixElement:!1,SVGFEDiffuseLightingElement:!1,SVGFEDisplacementMapElement:!1,SVGFEDistantLightElement:!1,SVGFEFloodElement:!1,SVGFEFuncAElement:!1,SVGFEFuncBElement:!1,SVGFEFuncGElement:!1,SVGFEFuncRElement:!1,SVGFEGaussianBlurElement:!1,SVGFEImageElement:!1,SVGFEMergeElement:!1,SVGFEMergeNodeElement:!1,SVGFEMorphologyElement:!1,SVGFEOffsetElement:!1,SVGFEPointLightElement:!1,SVGFESpecularLightingElement:!1,SVGFESpotLightElement:!1,SVGFETileElement:!1,SVGFETurbulenceElement:!1,SVGFilterElement:!1,SVGFilterPrimitiveStandardAttributes:!1,SVGFitToViewBox:!1,SVGFontElement:!1,SVGFontFaceElement:!1,SVGFontFaceFormatElement:!1,SVGFontFaceNameElement:!1,SVGFontFaceSrcElement:!1,SVGFontFaceUriElement:!1,SVGForeignObjectElement:!1,SVGGElement:!1,SVGGlyphElement:!1,SVGGlyphRefElement:!1,SVGGradientElement:!1,SVGHKernElement:!1,SVGICCColor:!1,SVGImageElement:!1,SVGLangSpace:!1,SVGLength:!1,SVGLengthList:!1,SVGLineElement:!1,SVGLinearGradientElement:!1,SVGLocatable:!1,SVGMPathElement:!1,SVGMarkerElement:!1,SVGMaskElement:!1,SVGMatrix:!1,SVGMetadataElement:!1,SVGMissingGlyphElement:!1,SVGNumber:!1,SVGNumberList:!1,SVGPaint:!1,SVGPathElement:!1,SVGPathSeg:!1,SVGPathSegArcAbs:!1,SVGPathSegArcRel:!1,SVGPathSegClosePath:!1,SVGPathSegCurvetoCubicAbs:!1,SVGPathSegCurvetoCubicRel:!1,SVGPathSegCurvetoCubicSmoothAbs:!1,SVGPathSegCurvetoCubicSmoothRel:!1,SVGPathSegCurvetoQuadraticAbs:!1,SVGPathSegCurvetoQuadraticRel:!1,SVGPathSegCurvetoQuadraticSmoothAbs:!1,SVGPathSegCurvetoQuadraticSmoothRel:!1,SVGPathSegLinetoAbs:!1,SVGPathSegLinetoHorizontalAbs:!1,SVGPathSegLinetoHorizontalRel:!1,SVGPathSegLinetoRel:!1,SVGPathSegLinetoVerticalAbs:!1,SVGPathSegLinetoVerticalRel:!1,SVGPathSegList:!1,SVGPathSegMovetoAbs:!1,SVGPathSegMovetoRel:!1,SVGPatternElement:!1,SVGPoint:!1,SVGPointList:!1,SVGPolygonElement:!1,SVGPolylineElement:!1,SVGPreserveAspectRatio:!1,SVGRadialGradientElement:!1,SVGRect:!1,SVGRectElement:!1,SVGRenderingIntent:!1,SVGSVGElement:!1,SVGScriptElement:!1,SVGSetElement:!1,SVGStopElement:!1,SVGStringList:!1,SVGStylable:!1,SVGStyleElement:!1,SVGSwitchElement:!1,SVGSymbolElement:!1,SVGTRefElement:!1,SVGTSpanElement:!1,SVGTests:!1,SVGTextContentElement:!1,SVGTextElement:!1,SVGTextPathElement:!1,SVGTextPositioningElement:!1,SVGTitleElement:!1,SVGTransform:!1,SVGTransformList:!1,SVGTransformable:!1,SVGURIReference:!1,SVGUnitTypes:!1,SVGUseElement:!1,SVGVKernElement:!1,SVGViewElement:!1,SVGViewSpec:!1,SVGZoomAndPan:!1,Text:!1,TextDecoder:!1,TextEncoder:!1,TimeEvent:!1,top:!1,URL:!1,WebGLActiveInfo:!1,WebGLBuffer:!1,WebGLContextEvent:!1,WebGLFramebuffer:!1,WebGLProgram:!1,WebGLRenderbuffer:!1,WebGLRenderingContext:!1,WebGLShader:!1,WebGLShaderPrecisionFormat:!1,WebGLTexture:!1,WebGLUniformLocation:!1,WebSocket:!1,window:!1,Window:!1,Worker:!1,XDomainRequest:!1,XMLHttpRequest:!1,XMLSerializer:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},n.devel={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},n.worker={importScripts:!0,postMessage:!0,self:!0,FileReaderSync:!0},n.nonstandard={escape:!1,unescape:!1},n.couch={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1,provides:!1},n.node={__filename:!1,__dirname:!1,GLOBAL:!1,global:!1,module:!1,require:!1,Buffer:!0,console:!0,exports:!0,process:!0,setTimeout:!0,clearTimeout:!0,setInterval:!0,clearInterval:!0,setImmediate:!0,clearImmediate:!0},n.browserify={__filename:!1,__dirname:!1,global:!1,module:!1,require:!1,Buffer:!0,exports:!0,process:!0},n.phantom={phantom:!0,require:!0,WebPage:!0,console:!0,exports:!0},n.qunit={asyncTest:!1,deepEqual:!1,equal:!1,expect:!1,module:!1,notDeepEqual:!1,notEqual:!1,notPropEqual:!1,notStrictEqual:!1,ok:!1,propEqual:!1,QUnit:!1,raises:!1,start:!1,stop:!1,strictEqual:!1,test:!1,\"throws\":!1},n.rhino={defineClass:!1,deserialize:!1,gc:!1,help:!1,importClass:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,Packages:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},n.shelljs={target:!1,echo:!1,exit:!1,cd:!1,pwd:!1,ls:!1,find:!1,cp:!1,rm:!1,mv:!1,mkdir:!1,test:!1,cat:!1,sed:!1,grep:!1,which:!1,dirs:!1,pushd:!1,popd:!1,env:!1,exec:!1,chmod:!1,config:!1,error:!1,tempdir:!1},n.typed={ArrayBuffer:!1,ArrayBufferView:!1,DataView:!1,Float32Array:!1,Float64Array:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1},n.wsh={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0,XDomainRequest:!0},n.dojo={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},n.jquery={$:!1,jQuery:!1},n.mootools={$:!1,$$:!1,Asset:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMEvent:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,IFrame:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},n.prototypejs={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},n.yui={YUI:!1,Y:!1,YUI_config:!1},n.mocha={mocha:!1,describe:!1,xdescribe:!1,it:!1,xit:!1,context:!1,xcontext:!1,before:!1,after:!1,beforeEach:!1,afterEach:!1,suite:!1,test:!1,setup:!1,teardown:!1,suiteSetup:!1,suiteTeardown:!1},n.jasmine={jasmine:!1,describe:!1,xdescribe:!1,it:!1,xit:!1,beforeEach:!1,afterEach:!1,setFixtures:!1,loadFixtures:!1,spyOn:!1,expect:!1,runs:!1,waitsFor:!1,waits:!1,beforeAll:!1,afterAll:!1,fail:!1,fdescribe:!1,fit:!1,pending:!1}},{}]},{},[\"/node_modules/jshint/src/jshint.js\"])}),ace.define(\"ace/mode/javascript_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/javascript/jshint\"],function(require,exports,module){\"use strict\";function startRegex(e){return RegExp(\"^(\"+e.join(\"|\")+\")\")}var oop=require(\"../lib/oop\"),Mirror=require(\"../worker/mirror\").Mirror,lint=require(\"./javascript/jshint\").JSHINT,disabledWarningsRe=startRegex([\"Bad for in variable '(.+)'.\",'Missing \"use strict\"']),errorsRe=startRegex([\"Unexpected\",\"Expected \",\"Confusing (plus|minus)\",\"\\\\{a\\\\} unterminated regular expression\",\"Unclosed \",\"Unmatched \",\"Unbegun comment\",\"Bad invocation\",\"Missing space after\",\"Missing operator at\"]),infoRe=startRegex([\"Expected an assignment\",\"Bad escapement of EOL\",\"Unexpected comma\",\"Unexpected space\",\"Missing radix parameter.\",\"A leading decimal point can\",\"\\\\['{a}'\\\\] is better written in dot notation.\",\"'{a}' used out of scope\"]),JavaScriptWorker=exports.JavaScriptWorker=function(e){Mirror.call(this,e),this.setTimeout(500),this.setOptions()};oop.inherits(JavaScriptWorker,Mirror),function(){this.setOptions=function(e){this.options=e||{esnext:!0,moz:!0,devel:!0,browser:!0,node:!0,laxcomma:!0,laxbreak:!0,lastsemic:!0,onevar:!1,passfail:!1,maxerr:100,expr:!0,multistr:!0,globalstrict:!0},this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.changeOptions=function(e){oop.mixin(this.options,e),this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.isValidJS=function(str){try{eval(\"throw 0;\"+str)}catch(e){if(e===0)return!0}return!1},this.onUpdate=function(){var e=this.doc.getValue();e=e.replace(/^#!.*\\n/,\"\\n\");if(!e)return this.sender.emit(\"annotate\",[]);var t=[],n=this.isValidJS(e)?\"warning\":\"error\";lint(e,this.options,this.options.globals);var r=lint.errors,i=!1;for(var s=0;s<r.length;s++){var o=r[s];if(!o)continue;var u=o.raw,a=\"warning\";if(u==\"Missing semicolon.\"){var f=o.evidence.substr(o.character);f=f.charAt(f.search(/\\S/)),n==\"error\"&&f&&/[\\w\\d{(['\"]/.test(f)?(o.reason='Missing \";\" before statement',a=\"error\"):a=\"info\"}else{if(disabledWarningsRe.test(u))continue;infoRe.test(u)?a=\"info\":errorsRe.test(u)?(i=!0,a=n):u==\"'{a}' is not defined.\"?a=\"warning\":u==\"'{a}' is defined but never used.\"&&(a=\"info\")}t.push({row:o.line-1,column:o.character-1,text:o.reason,type:a,raw:u}),i}this.sender.emit(\"annotate\",t)}}.call(JavaScriptWorker.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,\"sentinel\",{}),\"sentinel\"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t===\"undefined\"||t===\"boolean\"||t===\"number\"||t===\"string\"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n==\"function\"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r==\"function\"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!=\"function\")throw new TypeError(\"Function.prototype.bind called on incompatible \"+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,\"__defineGetter__\"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,\"XXX\"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)==\"[object Array]\"});var m=Object(\"a\"),g=m[0]!=\"a\"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduce of empty array with no initial value\");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError(\"reduce of empty array with no initial value\")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduceRight of empty array with no initial value\");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError(\"reduceRight of empty array with no initial value\")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!=\"object\")throw new TypeError(\"typeof prototype[\"+typeof t+\"] != 'object'\");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document==\"undefined\"||w(document.createElement(\"div\"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T=\"Property description must be an object: \",N=\"Object.defineProperty called on non-object: \",C=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(t,n,r){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(N+t);if(typeof r!=\"object\"&&typeof r!=\"function\"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,\"value\"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,\"get\")&&l(t,n,r.get),f(r,\"set\")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n==\"function\"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n=\"\";while(f(t,n))n+=\"?\";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!=\"object\"&&typeof e!=\"function\"||e===null)throw new TypeError(\"Object.keys called on a non-object\");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=\"\t\\n\u000b\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\";if(!String.prototype.trim||_.trim()){_=\"[\"+_+\"]\";var D=new RegExp(\"^\"+_+_+\"*\"),P=new RegExp(_+_+\"*$\");String.prototype.trim=function(){return String(this).replace(D,\"\").replace(P,\"\")}}var F=function(e){if(e==null)throw new TypeError(\"can't convert \"+e+\" to object\");return Object(e)}})"
  },
  {
    "path": "lib/src-min-noconflict/worker-json.js",
    "content": "\"no use strict\";(function(e){function t(e,t){var n=e,r=\"\";while(n){var i=t[n];if(typeof i==\"string\")return i+r;if(i)return i.location.replace(/\\/*$/,\"/\")+(r||i.main||i.name);if(i===!1)return\"\";var s=n.lastIndexOf(\"/\");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!=\"undefined\"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:\"error\",data:{message:e,data:i.data,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf(\"!\")!==-1){var r=n.split(\"!\");return e.normalizeModule(t,r[0])+\"!\"+e.normalizeModule(t,r[1])}if(n.charAt(0)==\".\"){var i=t.split(\"/\").slice(0,-1).join(\"/\");n=(i?i+\"/\":\"\")+n;while(n.indexOf(\".\")!==-1&&s!=n){var s=n;n=n.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log(\"unable to load \"+i);var o=t(i,e.require.tlns);return o.slice(-3)!=\".js\"&&(o+=\".js\"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!=\"string\"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!=\"function\"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=[\"require\",\"exports\",\"module\"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case\"require\":return i;case\"exports\":return e.exports;case\"module\":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},require.tlns={},e.initBaseUrls=function(t){for(var n in t)require.tlns[n]=t[n]},e.initSender=function(){var n=e.require(\"ace/lib/event_emitter\").EventEmitter,r=e.require(\"ace/lib/oop\"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:\"call\",id:t,data:e})},this.emit=function(e,t){postMessage({type:\"event\",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error(\"Unknown command:\"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),require(\"ace/lib/es5-shim\"),r=e.sender=e.initSender();var s=require(i.module)[i.classname];n=e.main=new s(r)}}})(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e==\"object\"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e==\"object\"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e,t){throw console.log(\"Invalid Delta:\",e),\"Invalid Delta: \"+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!=\"insert\"&&t.action!=\"remove\"&&r(t,\"delta.action must be 'insert' or 'remove'\"),t.lines instanceof Array||r(t,\"delta.lines must be an Array\"),(!t.start||!t.end)&&r(t,\"delta.start/end must be an present\");var n=t.start;i(e,t.start)||r(t,\"delta.start must be contained in document\");var s=t.end;t.action==\"remove\"&&!i(e,s)&&r(t,\"delta.end must contained in document for 'remove' actions\");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,\"delta.range must match delta lines\")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||\"\";switch(t.action){case\"insert\":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case\"remove\":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!=\"object\"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?\"unshift\":\"push\"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n==\"undefined\"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action==\"insert\",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal(\"change\",{old:i,value:r})},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./apply_delta\").applyDelta,s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=function(e){this.$lines=[\"\"],e.length===0?this.$lines=[\"\"]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},\"aaa\".split(/a/).length===0?this.$split=function(e){return e.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:this.$split=function(e){return e.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=t?t[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal(\"changeNewLineMode\")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==\"\\r\\n\"||e==\"\\r\"||e==\"\\n\"},this.getLine=function(e){return this.$lines[e]||\"\"},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||\"\").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(e,[\"\",\"\"])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:\"insert\",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([\"\"]),n=0):(t=[\"\"].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:\"insert\",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:\"remove\",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:\"remove\",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:\"remove\",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action==\"insert\";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal(\"change\",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(\"\"),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action==\"insert\"?\"remove\":\"insert\",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split(\"\").reverse().join(\"\")},t.stringRepeat=function(e,t){var n=\"\";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\\s\\s*/,i=/\\s\\s*$/;t.stringTrimLeft=function(e){return e.replace(r,\"\")},t.stringTrimRight=function(e){return e.replace(i,\"\")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]==\"object\"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!=\"object\"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}if(Object.prototype.toString.call(e)!==\"[object Object]\")return e;t={};for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},t.escapeHTML=function(e){return e.replace(/&/g,\"&#38;\").replace(/\"/g,\"&#34;\").replace(/'/g,\"&#39;\").replace(/</g,\"&#60;\")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=e(\"../document\").Document,s=e(\"../lib/lang\"),o=t.Mirror=function(e){this.sender=e;var t=this.doc=new i(\"\"),n=this.deferredUpdate=s.delayedCall(this.onUpdate.bind(this)),r=this;e.on(\"change\",function(e){var i=e.data;if(i[0].start)t.applyDeltas(i);else for(var s=0;s<i.length;s+=2){if(Array.isArray(i[s+1]))var o={action:\"insert\",start:i[s],lines:i[s+1]};else var o={action:\"remove\",start:i[s],end:i[s+1]};t.applyDelta(o,!0)}if(r.$timeout)return n.schedule(r.$timeout);r.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),ace.define(\"ace/mode/json/json_parse\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r,i,s={'\"':'\"',\"\\\\\":\"\\\\\",\"/\":\"/\",b:\"\\b\",f:\"\\f\",n:\"\\n\",r:\"\\r\",t:\"\t\"},o,u=function(e){throw{name:\"SyntaxError\",message:e,at:r,text:o}},a=function(e){return e&&e!==i&&u(\"Expected '\"+e+\"' instead of '\"+i+\"'\"),i=o.charAt(r),r+=1,i},f=function(){var e,t=\"\";i===\"-\"&&(t=\"-\",a(\"-\"));while(i>=\"0\"&&i<=\"9\")t+=i,a();if(i===\".\"){t+=\".\";while(a()&&i>=\"0\"&&i<=\"9\")t+=i}if(i===\"e\"||i===\"E\"){t+=i,a();if(i===\"-\"||i===\"+\")t+=i,a();while(i>=\"0\"&&i<=\"9\")t+=i,a()}e=+t;if(!isNaN(e))return e;u(\"Bad number\")},l=function(){var e,t,n=\"\",r;if(i==='\"')while(a()){if(i==='\"')return a(),n;if(i===\"\\\\\"){a();if(i===\"u\"){r=0;for(t=0;t<4;t+=1){e=parseInt(a(),16);if(!isFinite(e))break;r=r*16+e}n+=String.fromCharCode(r)}else{if(typeof s[i]!=\"string\")break;n+=s[i]}}else n+=i}u(\"Bad string\")},c=function(){while(i&&i<=\" \")a()},h=function(){switch(i){case\"t\":return a(\"t\"),a(\"r\"),a(\"u\"),a(\"e\"),!0;case\"f\":return a(\"f\"),a(\"a\"),a(\"l\"),a(\"s\"),a(\"e\"),!1;case\"n\":return a(\"n\"),a(\"u\"),a(\"l\"),a(\"l\"),null}u(\"Unexpected '\"+i+\"'\")},p,d=function(){var e=[];if(i===\"[\"){a(\"[\"),c();if(i===\"]\")return a(\"]\"),e;while(i){e.push(p()),c();if(i===\"]\")return a(\"]\"),e;a(\",\"),c()}}u(\"Bad array\")},v=function(){var e,t={};if(i===\"{\"){a(\"{\"),c();if(i===\"}\")return a(\"}\"),t;while(i){e=l(),c(),a(\":\"),Object.hasOwnProperty.call(t,e)&&u('Duplicate key \"'+e+'\"'),t[e]=p(),c();if(i===\"}\")return a(\"}\"),t;a(\",\"),c()}}u(\"Bad object\")};return p=function(){c();switch(i){case\"{\":return v();case\"[\":return d();case'\"':return l();case\"-\":return f();default:return i>=\"0\"&&i<=\"9\"?f():h()}},function(e,t){var n;return o=e,r=0,i=\" \",n=p(),c(),i&&u(\"Syntax error\"),typeof t==\"function\"?function s(e,n){var r,i,o=e[n];if(o&&typeof o==\"object\")for(r in o)Object.hasOwnProperty.call(o,r)&&(i=s(o,r),i!==undefined?o[r]=i:delete o[r]);return t.call(e,n,o)}({\"\":n},\"\"):n}}),ace.define(\"ace/mode/json_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/json/json_parse\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../worker/mirror\").Mirror,s=e(\"./json/json_parse\"),o=t.JsonWorker=function(e){i.call(this,e),this.setTimeout(200)};r.inherits(o,i),function(){this.onUpdate=function(){var e=this.doc.getValue(),t=[];try{e&&s(e)}catch(n){var r=this.doc.indexToPosition(n.at-1);t.push({row:r.row,column:r.column,text:n.message,type:\"error\"})}this.sender.emit(\"annotate\",t)}}.call(o.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,\"sentinel\",{}),\"sentinel\"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t===\"undefined\"||t===\"boolean\"||t===\"number\"||t===\"string\"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n==\"function\"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r==\"function\"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!=\"function\")throw new TypeError(\"Function.prototype.bind called on incompatible \"+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,\"__defineGetter__\"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,\"XXX\"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)==\"[object Array]\"});var m=Object(\"a\"),g=m[0]!=\"a\"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduce of empty array with no initial value\");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError(\"reduce of empty array with no initial value\")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduceRight of empty array with no initial value\");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError(\"reduceRight of empty array with no initial value\")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!=\"object\")throw new TypeError(\"typeof prototype[\"+typeof t+\"] != 'object'\");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document==\"undefined\"||w(document.createElement(\"div\"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T=\"Property description must be an object: \",N=\"Object.defineProperty called on non-object: \",C=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(t,n,r){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(N+t);if(typeof r!=\"object\"&&typeof r!=\"function\"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,\"value\"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,\"get\")&&l(t,n,r.get),f(r,\"set\")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n==\"function\"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n=\"\";while(f(t,n))n+=\"?\";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!=\"object\"&&typeof e!=\"function\"||e===null)throw new TypeError(\"Object.keys called on a non-object\");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=\"\t\\n\u000b\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\";if(!String.prototype.trim||_.trim()){_=\"[\"+_+\"]\";var D=new RegExp(\"^\"+_+_+\"*\"),P=new RegExp(_+_+\"*$\");String.prototype.trim=function(){return String(this).replace(D,\"\").replace(P,\"\")}}var F=function(e){if(e==null)throw new TypeError(\"can't convert \"+e+\" to object\");return Object(e)}})"
  },
  {
    "path": "lib/src-min-noconflict/worker-lua.js",
    "content": "\"no use strict\";(function(e){function t(e,t){var n=e,r=\"\";while(n){var i=t[n];if(typeof i==\"string\")return i+r;if(i)return i.location.replace(/\\/*$/,\"/\")+(r||i.main||i.name);if(i===!1)return\"\";var s=n.lastIndexOf(\"/\");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!=\"undefined\"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:\"error\",data:{message:e,data:i.data,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf(\"!\")!==-1){var r=n.split(\"!\");return e.normalizeModule(t,r[0])+\"!\"+e.normalizeModule(t,r[1])}if(n.charAt(0)==\".\"){var i=t.split(\"/\").slice(0,-1).join(\"/\");n=(i?i+\"/\":\"\")+n;while(n.indexOf(\".\")!==-1&&s!=n){var s=n;n=n.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log(\"unable to load \"+i);var o=t(i,e.require.tlns);return o.slice(-3)!=\".js\"&&(o+=\".js\"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!=\"string\"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!=\"function\"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=[\"require\",\"exports\",\"module\"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case\"require\":return i;case\"exports\":return e.exports;case\"module\":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},require.tlns={},e.initBaseUrls=function(t){for(var n in t)require.tlns[n]=t[n]},e.initSender=function(){var n=e.require(\"ace/lib/event_emitter\").EventEmitter,r=e.require(\"ace/lib/oop\"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:\"call\",id:t,data:e})},this.emit=function(e,t){postMessage({type:\"event\",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error(\"Unknown command:\"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),require(\"ace/lib/es5-shim\"),r=e.sender=e.initSender();var s=require(i.module)[i.classname];n=e.main=new s(r)}}})(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e==\"object\"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e==\"object\"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e,t){throw console.log(\"Invalid Delta:\",e),\"Invalid Delta: \"+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!=\"insert\"&&t.action!=\"remove\"&&r(t,\"delta.action must be 'insert' or 'remove'\"),t.lines instanceof Array||r(t,\"delta.lines must be an Array\"),(!t.start||!t.end)&&r(t,\"delta.start/end must be an present\");var n=t.start;i(e,t.start)||r(t,\"delta.start must be contained in document\");var s=t.end;t.action==\"remove\"&&!i(e,s)&&r(t,\"delta.end must contained in document for 'remove' actions\");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,\"delta.range must match delta lines\")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||\"\";switch(t.action){case\"insert\":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case\"remove\":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!=\"object\"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?\"unshift\":\"push\"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n==\"undefined\"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action==\"insert\",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal(\"change\",{old:i,value:r})},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./apply_delta\").applyDelta,s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=function(e){this.$lines=[\"\"],e.length===0?this.$lines=[\"\"]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},\"aaa\".split(/a/).length===0?this.$split=function(e){return e.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:this.$split=function(e){return e.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=t?t[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal(\"changeNewLineMode\")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==\"\\r\\n\"||e==\"\\r\"||e==\"\\n\"},this.getLine=function(e){return this.$lines[e]||\"\"},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||\"\").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(e,[\"\",\"\"])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:\"insert\",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([\"\"]),n=0):(t=[\"\"].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:\"insert\",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:\"remove\",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:\"remove\",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:\"remove\",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action==\"insert\";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal(\"change\",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(\"\"),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action==\"insert\"?\"remove\":\"insert\",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split(\"\").reverse().join(\"\")},t.stringRepeat=function(e,t){var n=\"\";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\\s\\s*/,i=/\\s\\s*$/;t.stringTrimLeft=function(e){return e.replace(r,\"\")},t.stringTrimRight=function(e){return e.replace(i,\"\")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]==\"object\"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!=\"object\"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}if(Object.prototype.toString.call(e)!==\"[object Object]\")return e;t={};for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},t.escapeHTML=function(e){return e.replace(/&/g,\"&#38;\").replace(/\"/g,\"&#34;\").replace(/'/g,\"&#39;\").replace(/</g,\"&#60;\")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=e(\"../document\").Document,s=e(\"../lib/lang\"),o=t.Mirror=function(e){this.sender=e;var t=this.doc=new i(\"\"),n=this.deferredUpdate=s.delayedCall(this.onUpdate.bind(this)),r=this;e.on(\"change\",function(e){var i=e.data;if(i[0].start)t.applyDeltas(i);else for(var s=0;s<i.length;s+=2){if(Array.isArray(i[s+1]))var o={action:\"insert\",start:i[s],lines:i[s+1]};else var o={action:\"remove\",start:i[s],end:i[s+1]};t.applyDelta(o,!0)}if(r.$timeout)return n.schedule(r.$timeout);r.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),ace.define(\"ace/mode/lua/luaparse\",[\"require\",\"exports\",\"module\"],function(e,t,n){(function(e,n,r){r(t)})(this,\"luaparse\",function(e){\"use strict\";function m(e){if(mt){var t=vt.pop();t.complete(),n.locations&&(e.loc=t.loc),n.ranges&&(e.range=t.range)}return e}function w(e,t,n){for(var r=0,i=e.length;r<i;r++)if(e[r][t]===n)return r;return-1}function E(e){var t=g.call(arguments,1);return e=e.replace(/%(\\d)/g,function(e,n){return\"\"+t[n-1]||\"\"}),e}function S(){var e=g.call(arguments),t={},n,r;for(var i=0,s=e.length;i<s;i++){n=e[i];for(r in n)n.hasOwnProperty(r)&&(t[r]=n[r])}return t}function x(e){var t=E.apply(null,g.call(arguments,1)),n,r;throw\"undefined\"!=typeof e.line?(r=e.range[0]-e.lineStart,n=new SyntaxError(E(\"[%1:%2] %3\",e.line,r,t)),n.line=e.line,n.index=e.range[0],n.column=r):(r=C-D+1,n=new SyntaxError(E(\"[%1:%2] %3\",_,r,t)),n.index=C,n.line=_,n.column=r),n}function T(e,t){x(t,d.expectedToken,e,t.value)}function N(e,t){\"undefined\"==typeof t&&(t=A.value);if(\"undefined\"!=typeof e.type){var n;switch(e.type){case o:n=\"string\";break;case u:n=\"keyword\";break;case a:n=\"identifier\";break;case f:n=\"number\";break;case l:n=\"symbol\";break;case c:n=\"boolean\";break;case h:return x(e,d.unexpected,\"symbol\",\"nil\",t)}return x(e,d.unexpected,n,e.value,t)}return x(e,d.unexpected,\"symbol\",e,t)}function P(){H();while(45===t.charCodeAt(C)&&45===t.charCodeAt(C+1))X(),H();if(C>=r)return{type:s,value:\"<eof>\",line:_,lineStart:D,range:[C,C]};var e=t.charCodeAt(C),n=t.charCodeAt(C+1);M=C;if(et(e))return B();switch(e){case 39:case 34:return I();case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return R();case 46:if(Y(n))return R();if(46===n)return 46===t.charCodeAt(C+2)?F():j(\"..\");return j(\".\");case 61:if(61===n)return j(\"==\");return j(\"=\");case 62:if(61===n)return j(\">=\");return j(\">\");case 60:if(61===n)return j(\"<=\");return j(\"<\");case 126:if(61===n)return j(\"~=\");return x({},d.expected,\"=\",\"~\");case 58:if(58===n)return j(\"::\");return j(\":\");case 91:if(91===n||61===n)return q();return j(\"[\");case 42:case 47:case 94:case 37:case 44:case 123:case 125:case 93:case 40:case 41:case 59:case 35:case 45:case 43:return j(t.charAt(C))}return N(t.charAt(C))}function H(){while(C<r){var e=t.charCodeAt(C);if(Q(e))C++;else{if(!G(e))break;_++,D=++C}}}function B(){var e,n;while(tt(t.charCodeAt(++C)));return e=t.slice(M,C),nt(e)?n=u:\"true\"===e||\"false\"===e?(n=c,e=\"true\"===e):\"nil\"===e?(n=h,e=null):n=a,{type:n,value:e,line:_,lineStart:D,range:[M,C]}}function j(e){return C+=e.length,{type:l,value:e,line:_,lineStart:D,range:[M,C]}}function F(){return C+=3,{type:p,value:\"...\",line:_,lineStart:D,range:[M,C]}}function I(){var e=t.charCodeAt(C++),n=C,i=\"\",s;while(C<r){s=t.charCodeAt(C++);if(e===s)break;if(92===s)i+=t.slice(n,C-1)+W(),n=C;else if(C>=r||G(s))i+=t.slice(n,C-1),x({},d.unfinishedString,i+String.fromCharCode(s))}return i+=t.slice(n,C-1),{type:o,value:i,line:_,lineStart:D,range:[M,C]}}function q(){var e=V();return!1===e&&x(k,d.expected,\"[\",k.value),{type:o,value:e,line:_,lineStart:D,range:[M,C]}}function R(){var e=t.charAt(C),n=t.charAt(C+1),r=\"0\"===e&&\"xX\".indexOf(n||null)>=0?U():z();return{type:f,value:r,line:_,lineStart:D,range:[M,C]}}function U(){var e=0,n=1,r=1,i,s,o,u;u=C+=2,Z(t.charCodeAt(C))||x({},d.malformedNumber,t.slice(M,C));while(Z(t.charCodeAt(C)))C++;i=parseInt(t.slice(u,C),16);if(\".\"===t.charAt(C)){s=++C;while(Z(t.charCodeAt(C)))C++;e=t.slice(s,C),e=s===C?0:parseInt(e,16)/Math.pow(16,C-s)}if(\"pP\".indexOf(t.charAt(C)||null)>=0){C++,\"+-\".indexOf(t.charAt(C)||null)>=0&&(r=\"+\"===t.charAt(C++)?1:-1),o=C,Y(t.charCodeAt(C))||x({},d.malformedNumber,t.slice(M,C));while(Y(t.charCodeAt(C)))C++;n=t.slice(o,C),n=Math.pow(2,n*r)}return(i+e)*n}function z(){while(Y(t.charCodeAt(C)))C++;if(\".\"===t.charAt(C)){C++;while(Y(t.charCodeAt(C)))C++}if(\"eE\".indexOf(t.charAt(C)||null)>=0){C++,\"+-\".indexOf(t.charAt(C)||null)>=0&&C++,Y(t.charCodeAt(C))||x({},d.malformedNumber,t.slice(M,C));while(Y(t.charCodeAt(C)))C++}return parseFloat(t.slice(M,C))}function W(){var e=C;switch(t.charAt(C)){case\"n\":return C++,\"\\n\";case\"r\":return C++,\"\\r\";case\"t\":return C++,\"\t\";case\"v\":return C++,\"\u000b\";case\"b\":return C++,\"\\b\";case\"f\":return C++,\"\\f\";case\"z\":return C++,H(),\"\";case\"x\":if(Z(t.charCodeAt(C+1))&&Z(t.charCodeAt(C+2)))return C+=3,\"\\\\\"+t.slice(e,C);return\"\\\\\"+t.charAt(C++);default:if(Y(t.charCodeAt(C))){while(Y(t.charCodeAt(++C)));return\"\\\\\"+t.slice(e,C)}return t.charAt(C++)}}function X(){M=C,C+=2;var e=t.charAt(C),i=\"\",s=!1,o=C,u=D,a=_;\"[\"===e&&(i=V(),!1===i?i=e:s=!0);if(!s){while(C<r){if(G(t.charCodeAt(C)))break;C++}n.comments&&(i=t.slice(o,C))}if(n.comments){var f=v.comment(i,t.slice(M,C));n.locations&&(f.loc={start:{line:a,column:M-u},end:{line:_,column:C-D}}),n.ranges&&(f.range=[M,C]),O.push(f)}}function V(){var e=0,n=\"\",i=!1,s,o;C++;while(\"=\"===t.charAt(C+e))e++;if(\"[\"!==t.charAt(C+e))return!1;C+=e+1,G(t.charCodeAt(C))&&(_++,D=C++),o=C;while(C<r){s=t.charAt(C++),G(s.charCodeAt(0))&&(_++,D=C);if(\"]\"===s){i=!0;for(var u=0;u<e;u++)\"=\"!==t.charAt(C+u)&&(i=!1);\"]\"!==t.charAt(C+e)&&(i=!1)}if(i)break}return n+=t.slice(o,C-1),C+=e+1,n}function $(){L=k,k=A,A=P()}function J(e){return e===k.value?($(),!0):!1}function K(e){e===k.value?$():x(k,d.expected,e,k.value)}function Q(e){return 9===e||32===e||11===e||12===e}function G(e){return 10===e||13===e}function Y(e){return e>=48&&e<=57}function Z(e){return e>=48&&e<=57||e>=97&&e<=102||e>=65&&e<=70}function et(e){return e>=65&&e<=90||e>=97&&e<=122||95===e}function tt(e){return e>=65&&e<=90||e>=97&&e<=122||95===e||e>=48&&e<=57}function nt(e){switch(e.length){case 2:return\"do\"===e||\"if\"===e||\"in\"===e||\"or\"===e;case 3:return\"and\"===e||\"end\"===e||\"for\"===e||\"not\"===e;case 4:return\"else\"===e||\"goto\"===e||\"then\"===e;case 5:return\"break\"===e||\"local\"===e||\"until\"===e||\"while\"===e;case 6:return\"elseif\"===e||\"repeat\"===e||\"return\"===e;case 8:return\"function\"===e}return!1}function rt(e){return l===e.type?\"#-\".indexOf(e.value)>=0:u===e.type?\"not\"===e.value:!1}function it(e){switch(e.type){case\"CallExpression\":case\"TableCallExpression\":case\"StringCallExpression\":return!0}return!1}function st(e){if(s===e.type)return!0;if(u!==e.type)return!1;switch(e.value){case\"else\":case\"elseif\":case\"end\":case\"until\":return!0;default:return!1}}function ft(){ot.push(Array.apply(null,ot[ut++]))}function lt(){ot.pop(),ut--}function ct(e){if(-1!==b(ot[ut],e))return;ot[ut].push(e)}function ht(e){ct(e.name),pt(e,!0)}function pt(e,t){!t&&-1===w(at,\"name\",e.name)&&at.push(e),e.isLocal=t}function dt(e){return-1!==b(ot[ut],e)}function gt(){return new yt(k)}function yt(e){n.locations&&(this.loc={start:{line:e.line,column:e.range[0]-e.lineStart},end:{line:0,column:0}}),n.ranges&&(this.range=[e.range[0],0])}function bt(){mt&&vt.push(gt())}function wt(e){mt&&vt.push(e)}function Et(){$(),bt();var e=St();return s!==k.type&&N(k),mt&&!e.length&&(L=k),m(v.chunk(e))}function St(e){var t=[],r;n.scope&&ft();while(!st(k)){if(\"return\"===k.value){t.push(xt());break}r=xt(),r&&t.push(r)}return n.scope&&lt(),t}function xt(){bt();if(u===k.type)switch(k.value){case\"local\":return $(),Dt();case\"if\":return $(),Mt();case\"return\":return $(),Ot();case\"function\":$();var e=jt();return Bt(e);case\"while\":return $(),Lt();case\"for\":return $(),_t();case\"repeat\":return $(),At();case\"break\":return $(),Nt();case\"do\":return $(),kt();case\"goto\":return $(),Ct()}if(l===k.type&&J(\"::\"))return Tt();mt&&vt.pop();if(J(\";\"))return;return Pt()}function Tt(){var e=k.value,t=Ht();return n.scope&&(ct(\"::\"+e+\"::\"),pt(t,!0)),K(\"::\"),m(v.labelStatement(t))}function Nt(){return m(v.breakStatement())}function Ct(){var e=k.value,t=Ht();return n.scope&&(t.isLabel=dt(\"::\"+e+\"::\")),m(v.gotoStatement(t))}function kt(){var e=St();return K(\"end\"),m(v.doStatement(e))}function Lt(){var e=qt();K(\"do\");var t=St();return K(\"end\"),m(v.whileStatement(e,t))}function At(){var e=St();K(\"until\");var t=qt();return m(v.repeatStatement(t,e))}function Ot(){var e=[];if(\"end\"!==k.value){var t=It();null!=t&&e.push(t);while(J(\",\"))t=qt(),e.push(t);J(\";\")}return m(v.returnStatement(e))}function Mt(){var e=[],t,n,r;mt&&(r=vt[vt.length-1],vt.push(r)),t=qt(),K(\"then\"),n=St(),e.push(m(v.ifClause(t,n))),mt&&(r=gt());while(J(\"elseif\"))wt(r),t=qt(),K(\"then\"),n=St(),e.push(m(v.elseifClause(t,n))),mt&&(r=gt());return J(\"else\")&&(mt&&(r=new yt(L),vt.push(r)),n=St(),e.push(m(v.elseClause(n)))),K(\"end\"),m(v.ifStatement(e))}function _t(){var e=Ht(),t;n.scope&&ht(e);if(J(\"=\")){var r=qt();K(\",\");var i=qt(),s=J(\",\")?qt():null;return K(\"do\"),t=St(),K(\"end\"),m(v.forNumericStatement(e,r,i,s,t))}var o=[e];while(J(\",\"))e=Ht(),n.scope&&ht(e),o.push(e);K(\"in\");var u=[];do{var a=qt();u.push(a)}while(J(\",\"));return K(\"do\"),t=St(),K(\"end\"),m(v.forGenericStatement(o,u,t))}function Dt(){var e;if(a===k.type){var t=[],r=[];do e=Ht(),t.push(e);while(J(\",\"));if(J(\"=\"))do{var i=qt();r.push(i)}while(J(\",\"));if(n.scope)for(var s=0,o=t.length;s<o;s++)ht(t[s]);return m(v.localStatement(t,r))}if(J(\"function\"))return e=Ht(),n.scope&&ht(e),Bt(e,!0);T(\"<name>\",k)}function Pt(){var e=k,t,n;mt&&(n=gt()),t=zt();if(null==t)return N(k);if(\",=\".indexOf(k.value)>=0){var r=[t],i=[],s;while(J(\",\"))s=zt(),null==s&&T(\"<expression>\",k),r.push(s);K(\"=\");do s=qt(),i.push(s);while(J(\",\"));return wt(n),m(v.assignmentStatement(r,i))}return it(t)?(wt(n),m(v.callStatement(t))):N(e)}function Ht(){bt();var e=k.value;return a!==k.type&&T(\"<name>\",k),$(),m(v.identifier(e))}function Bt(e,t){var r=[];K(\"(\");if(!J(\")\"))for(;;)if(a===k.type){var i=Ht();n.scope&&ht(i),r.push(i);if(J(\",\"))continue;if(J(\")\"))break}else{if(p===k.type){r.push(Xt()),K(\")\");break}T(\"<name> or '...'\",k)}var s=St();return K(\"end\"),t=t||!1,m(v.functionStatement(e,r,t,s))}function jt(){var e,t,r;mt&&(r=gt()),e=Ht(),n.scope&&pt(e,!1);while(J(\".\"))wt(r),t=Ht(),n.scope&&pt(t,!1),e=m(v.memberExpression(e,\".\",t));return J(\":\")&&(wt(r),t=Ht(),n.scope&&pt(t,!1),e=m(v.memberExpression(e,\":\",t))),e}function Ft(){var e=[],t,n;for(;;){bt();if(l===k.type&&J(\"[\"))t=qt(),K(\"]\"),K(\"=\"),n=qt(),e.push(m(v.tableKey(t,n)));else if(a===k.type)t=qt(),J(\"=\")?(n=qt(),e.push(m(v.tableKeyString(t,n)))):e.push(m(v.tableValue(t)));else{if(null==(n=It())){vt.pop();break}e.push(m(v.tableValue(n)))}if(\",;\".indexOf(k.value)>=0){$();continue}if(\"}\"===k.value)break}return K(\"}\"),m(v.tableConstructorExpression(e))}function It(){var e=Ut(0);return e}function qt(){var e=It();if(null!=e)return e;T(\"<expression>\",k)}function Rt(e){var t=e.charCodeAt(0),n=e.length;if(1===n)switch(t){case 94:return 10;case 42:case 47:case 37:return 7;case 43:case 45:return 6;case 60:case 62:return 3}else if(2===n)switch(t){case 46:return 5;case 60:case 62:case 61:case 126:return 3;case 111:return 1}else if(97===t&&\"and\"===e)return 2;return 0}function Ut(e){var t=k.value,n,r;mt&&(r=gt());if(rt(k)){bt(),$();var i=Ut(8);i==null&&T(\"<expression>\",k),n=m(v.unaryExpression(t,i))}null==n&&(n=Xt(),null==n&&(n=zt()));if(null==n)return null;var s;for(;;){t=k.value,s=l===k.type||u===k.type?Rt(t):0;if(s===0||s<=e)break;(\"^\"===t||\"..\"===t)&&s--,$();var o=Ut(s);null==o&&T(\"<expression>\",k),mt&&vt.push(r),n=m(v.binaryExpression(t,n,o))}return n}function zt(){var e,t,r,i;mt&&(r=gt());if(a===k.type)t=k.value,e=Ht(),n.scope&&pt(e,i=dt(t));else{if(!J(\"(\"))return null;e=qt(),K(\")\"),n.scope&&(i=e.isLocal)}var s,u;for(;;)if(l===k.type)switch(k.value){case\"[\":wt(r),$(),s=qt(),e=m(v.indexExpression(e,s)),K(\"]\");break;case\".\":wt(r),$(),u=Ht(),n.scope&&pt(u,i),e=m(v.memberExpression(e,\".\",u));break;case\":\":wt(r),$(),u=Ht(),n.scope&&pt(u,i),e=m(v.memberExpression(e,\":\",u)),wt(r),e=Wt(e);break;case\"(\":case\"{\":wt(r),e=Wt(e);break;default:return e}else{if(o!==k.type)break;wt(r),e=Wt(e)}return e}function Wt(e){if(l===k.type)switch(k.value){case\"(\":$();var t=[],n=It();null!=n&&t.push(n);while(J(\",\"))n=qt(),t.push(n);return K(\")\"),m(v.callExpression(e,t));case\"{\":bt(),$();var r=Ft();return m(v.tableCallExpression(e,r))}else if(o===k.type)return m(v.stringCallExpression(e,Xt()));T(\"function arguments\",k)}function Xt(){var e=o|f|c|h|p,n=k.value,r=k.type,i;mt&&(i=gt());if(r&e){wt(i);var s=t.slice(k.range[0],k.range[1]);return $(),m(v.literal(r,n,s))}if(u===r&&\"function\"===n)return wt(i),$(),Bt(null);if(J(\"{\"))return wt(i),Ft()}function Vt(s,o){return\"undefined\"==typeof o&&\"object\"==typeof s&&(o=s,s=undefined),o||(o={}),t=s||\"\",n=S(i,o),C=0,_=1,D=0,r=t.length,ot=[[]],ut=0,at=[],vt=[],n.comments&&(O=[]),n.wait?e:Jt()}function $t(n){return t+=String(n),r=t.length,e}function Jt(e){\"undefined\"!=typeof e&&$t(e),r=t.length,mt=n.locations||n.ranges,A=P();var i=Et();n.comments&&(i.comments=O),n.scope&&(i.globals=at);if(vt.length>0)throw new Error(\"Location tracking failed. This is most likely a bug in luaparse\");return i}e.version=\"0.1.4\";var t,n,r,i=e.defaultOptions={wait:!1,comments:!0,scope:!1,locations:!1,ranges:!1},s=1,o=2,u=4,a=8,f=16,l=32,c=64,h=128,p=256;e.tokenTypes={EOF:s,StringLiteral:o,Keyword:u,Identifier:a,NumericLiteral:f,Punctuator:l,BooleanLiteral:c,NilLiteral:h,VarargLiteral:p};var d=e.errors={unexpected:\"Unexpected %1 '%2' near '%3'\",expected:\"'%1' expected near '%2'\",expectedToken:\"%1 expected near '%2'\",unfinishedString:\"unfinished string near '%1'\",malformedNumber:\"malformed number near '%1'\"},v=e.ast={labelStatement:function(e){return{type:\"LabelStatement\",label:e}},breakStatement:function(){return{type:\"BreakStatement\"}},gotoStatement:function(e){return{type:\"GotoStatement\",label:e}},returnStatement:function(e){return{type:\"ReturnStatement\",arguments:e}},ifStatement:function(e){return{type:\"IfStatement\",clauses:e}},ifClause:function(e,t){return{type:\"IfClause\",condition:e,body:t}},elseifClause:function(e,t){return{type:\"ElseifClause\",condition:e,body:t}},elseClause:function(e){return{type:\"ElseClause\",body:e}},whileStatement:function(e,t){return{type:\"WhileStatement\",condition:e,body:t}},doStatement:function(e){return{type:\"DoStatement\",body:e}},repeatStatement:function(e,t){return{type:\"RepeatStatement\",condition:e,body:t}},localStatement:function(e,t){return{type:\"LocalStatement\",variables:e,init:t}},assignmentStatement:function(e,t){return{type:\"AssignmentStatement\",variables:e,init:t}},callStatement:function(e){return{type:\"CallStatement\",expression:e}},functionStatement:function(e,t,n,r){return{type:\"FunctionDeclaration\",identifier:e,isLocal:n,parameters:t,body:r}},forNumericStatement:function(e,t,n,r,i){return{type:\"ForNumericStatement\",variable:e,start:t,end:n,step:r,body:i}},forGenericStatement:function(e,t,n){return{type:\"ForGenericStatement\",variables:e,iterators:t,body:n}},chunk:function(e){return{type:\"Chunk\",body:e}},identifier:function(e){return{type:\"Identifier\",name:e}},literal:function(e,t,n){return e=e===o?\"StringLiteral\":e===f?\"NumericLiteral\":e===c?\"BooleanLiteral\":e===h?\"NilLiteral\":\"VarargLiteral\",{type:e,value:t,raw:n}},tableKey:function(e,t){return{type:\"TableKey\",key:e,value:t}},tableKeyString:function(e,t){return{type:\"TableKeyString\",key:e,value:t}},tableValue:function(e){return{type:\"TableValue\",value:e}},tableConstructorExpression:function(e){return{type:\"TableConstructorExpression\",fields:e}},binaryExpression:function(e,t,n){var r=\"and\"===e||\"or\"===e?\"LogicalExpression\":\"BinaryExpression\";return{type:r,operator:e,left:t,right:n}},unaryExpression:function(e,t){return{type:\"UnaryExpression\",operator:e,argument:t}},memberExpression:function(e,t,n){return{type:\"MemberExpression\",indexer:t,identifier:n,base:e}},indexExpression:function(e,t){return{type:\"IndexExpression\",base:e,index:t}},callExpression:function(e,t){return{type:\"CallExpression\",base:e,arguments:t}},tableCallExpression:function(e,t){return{type:\"TableCallExpression\",base:e,arguments:t}},stringCallExpression:function(e,t){return{type:\"StringCallExpression\",base:e,argument:t}},comment:function(e,t){return{type:\"Comment\",value:e,raw:t}}},g=Array.prototype.slice,y=Object.prototype.toString,b=function(t,n){for(var r=0,i=t.length;r<i;r++)if(t[r]===n)return r;return-1},C,k,L,A,O,M,_,D;e.lex=P;var ot,ut,at,vt=[],mt;yt.prototype.complete=function(){n.locations&&(this.loc.end.line=L.line,this.loc.end.column=L.range[1]-L.lineStart),n.ranges&&(this.range[1]=L.range[1])},e.parse=Vt,e.write=$t,e.end=Jt})}),ace.define(\"ace/mode/lua_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/lua/luaparse\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../worker/mirror\").Mirror,s=e(\"../mode/lua/luaparse\"),o=t.Worker=function(e){i.call(this,e),this.setTimeout(500)};r.inherits(o,i),function(){this.onUpdate=function(){var e=this.doc.getValue(),t=[];try{s.parse(e)}catch(n){n instanceof SyntaxError&&t.push({row:n.line-1,column:n.column,text:n.message,type:\"error\"})}this.sender.emit(\"annotate\",t)}}.call(o.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,\"sentinel\",{}),\"sentinel\"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t===\"undefined\"||t===\"boolean\"||t===\"number\"||t===\"string\"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n==\"function\"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r==\"function\"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!=\"function\")throw new TypeError(\"Function.prototype.bind called on incompatible \"+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,\"__defineGetter__\"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,\"XXX\"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)==\"[object Array]\"});var m=Object(\"a\"),g=m[0]!=\"a\"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduce of empty array with no initial value\");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError(\"reduce of empty array with no initial value\")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduceRight of empty array with no initial value\");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError(\"reduceRight of empty array with no initial value\")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!=\"object\")throw new TypeError(\"typeof prototype[\"+typeof t+\"] != 'object'\");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document==\"undefined\"||w(document.createElement(\"div\"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T=\"Property description must be an object: \",N=\"Object.defineProperty called on non-object: \",C=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(t,n,r){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(N+t);if(typeof r!=\"object\"&&typeof r!=\"function\"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,\"value\"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,\"get\")&&l(t,n,r.get),f(r,\"set\")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n==\"function\"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n=\"\";while(f(t,n))n+=\"?\";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!=\"object\"&&typeof e!=\"function\"||e===null)throw new TypeError(\"Object.keys called on a non-object\");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=\"\t\\n\u000b\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\";if(!String.prototype.trim||_.trim()){_=\"[\"+_+\"]\";var D=new RegExp(\"^\"+_+_+\"*\"),P=new RegExp(_+_+\"*$\");String.prototype.trim=function(){return String(this).replace(D,\"\").replace(P,\"\")}}var F=function(e){if(e==null)throw new TypeError(\"can't convert \"+e+\" to object\");return Object(e)}})"
  },
  {
    "path": "lib/src-min-noconflict/worker-php.js",
    "content": "\"no use strict\";(function(e){function t(e,t){var n=e,r=\"\";while(n){var i=t[n];if(typeof i==\"string\")return i+r;if(i)return i.location.replace(/\\/*$/,\"/\")+(r||i.main||i.name);if(i===!1)return\"\";var s=n.lastIndexOf(\"/\");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!=\"undefined\"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:\"error\",data:{message:e,data:i.data,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf(\"!\")!==-1){var r=n.split(\"!\");return e.normalizeModule(t,r[0])+\"!\"+e.normalizeModule(t,r[1])}if(n.charAt(0)==\".\"){var i=t.split(\"/\").slice(0,-1).join(\"/\");n=(i?i+\"/\":\"\")+n;while(n.indexOf(\".\")!==-1&&s!=n){var s=n;n=n.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log(\"unable to load \"+i);var o=t(i,e.require.tlns);return o.slice(-3)!=\".js\"&&(o+=\".js\"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!=\"string\"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!=\"function\"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=[\"require\",\"exports\",\"module\"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case\"require\":return i;case\"exports\":return e.exports;case\"module\":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},require.tlns={},e.initBaseUrls=function(t){for(var n in t)require.tlns[n]=t[n]},e.initSender=function(){var n=e.require(\"ace/lib/event_emitter\").EventEmitter,r=e.require(\"ace/lib/oop\"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:\"call\",id:t,data:e})},this.emit=function(e,t){postMessage({type:\"event\",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error(\"Unknown command:\"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),require(\"ace/lib/es5-shim\"),r=e.sender=e.initSender();var s=require(i.module)[i.classname];n=e.main=new s(r)}}})(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e==\"object\"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e==\"object\"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e,t){throw console.log(\"Invalid Delta:\",e),\"Invalid Delta: \"+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!=\"insert\"&&t.action!=\"remove\"&&r(t,\"delta.action must be 'insert' or 'remove'\"),t.lines instanceof Array||r(t,\"delta.lines must be an Array\"),(!t.start||!t.end)&&r(t,\"delta.start/end must be an present\");var n=t.start;i(e,t.start)||r(t,\"delta.start must be contained in document\");var s=t.end;t.action==\"remove\"&&!i(e,s)&&r(t,\"delta.end must contained in document for 'remove' actions\");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,\"delta.range must match delta lines\")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||\"\";switch(t.action){case\"insert\":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case\"remove\":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!=\"object\"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?\"unshift\":\"push\"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n==\"undefined\"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action==\"insert\",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal(\"change\",{old:i,value:r})},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./apply_delta\").applyDelta,s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=function(e){this.$lines=[\"\"],e.length===0?this.$lines=[\"\"]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},\"aaa\".split(/a/).length===0?this.$split=function(e){return e.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:this.$split=function(e){return e.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=t?t[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal(\"changeNewLineMode\")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==\"\\r\\n\"||e==\"\\r\"||e==\"\\n\"},this.getLine=function(e){return this.$lines[e]||\"\"},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||\"\").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(e,[\"\",\"\"])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:\"insert\",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([\"\"]),n=0):(t=[\"\"].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:\"insert\",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:\"remove\",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:\"remove\",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:\"remove\",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action==\"insert\";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal(\"change\",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(\"\"),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action==\"insert\"?\"remove\":\"insert\",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split(\"\").reverse().join(\"\")},t.stringRepeat=function(e,t){var n=\"\";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\\s\\s*/,i=/\\s\\s*$/;t.stringTrimLeft=function(e){return e.replace(r,\"\")},t.stringTrimRight=function(e){return e.replace(i,\"\")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]==\"object\"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!=\"object\"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}if(Object.prototype.toString.call(e)!==\"[object Object]\")return e;t={};for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},t.escapeHTML=function(e){return e.replace(/&/g,\"&#38;\").replace(/\"/g,\"&#34;\").replace(/'/g,\"&#39;\").replace(/</g,\"&#60;\")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=e(\"../document\").Document,s=e(\"../lib/lang\"),o=t.Mirror=function(e){this.sender=e;var t=this.doc=new i(\"\"),n=this.deferredUpdate=s.delayedCall(this.onUpdate.bind(this)),r=this;e.on(\"change\",function(e){var i=e.data;if(i[0].start)t.applyDeltas(i);else for(var s=0;s<i.length;s+=2){if(Array.isArray(i[s+1]))var o={action:\"insert\",start:i[s],lines:i[s+1]};else var o={action:\"remove\",start:i[s],end:i[s+1]};t.applyDelta(o,!0)}if(r.$timeout)return n.schedule(r.$timeout);r.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),ace.define(\"ace/mode/php/php\",[\"require\",\"exports\",\"module\"],function(e,t,n){var r={Constants:{}};r.Constants.T_INCLUDE=257,r.Constants.T_INCLUDE_ONCE=258,r.Constants.T_EVAL=259,r.Constants.T_REQUIRE=260,r.Constants.T_REQUIRE_ONCE=261,r.Constants.T_LOGICAL_OR=262,r.Constants.T_LOGICAL_XOR=263,r.Constants.T_LOGICAL_AND=264,r.Constants.T_PRINT=265,r.Constants.T_YIELD=266,r.Constants.T_DOUBLE_ARROW=267,r.Constants.T_YIELD_FROM=268,r.Constants.T_PLUS_EQUAL=269,r.Constants.T_MINUS_EQUAL=270,r.Constants.T_MUL_EQUAL=271,r.Constants.T_DIV_EQUAL=272,r.Constants.T_CONCAT_EQUAL=273,r.Constants.T_MOD_EQUAL=274,r.Constants.T_AND_EQUAL=275,r.Constants.T_OR_EQUAL=276,r.Constants.T_XOR_EQUAL=277,r.Constants.T_SL_EQUAL=278,r.Constants.T_SR_EQUAL=279,r.Constants.T_POW_EQUAL=280,r.Constants.T_COALESCE=281,r.Constants.T_BOOLEAN_OR=282,r.Constants.T_BOOLEAN_AND=283,r.Constants.T_IS_EQUAL=284,r.Constants.T_IS_NOT_EQUAL=285,r.Constants.T_IS_IDENTICAL=286,r.Constants.T_IS_NOT_IDENTICAL=287,r.Constants.T_SPACESHIP=288,r.Constants.T_IS_SMALLER_OR_EQUAL=289,r.Constants.T_IS_GREATER_OR_EQUAL=290,r.Constants.T_SL=291,r.Constants.T_SR=292,r.Constants.T_INSTANCEOF=293,r.Constants.T_INC=294,r.Constants.T_DEC=295,r.Constants.T_INT_CAST=296,r.Constants.T_DOUBLE_CAST=297,r.Constants.T_STRING_CAST=298,r.Constants.T_ARRAY_CAST=299,r.Constants.T_OBJECT_CAST=300,r.Constants.T_BOOL_CAST=301,r.Constants.T_UNSET_CAST=302,r.Constants.T_POW=303,r.Constants.T_NEW=304,r.Constants.T_CLONE=305,r.Constants.T_EXIT=306,r.Constants.T_IF=307,r.Constants.T_ELSEIF=308,r.Constants.T_ELSE=309,r.Constants.T_ENDIF=310,r.Constants.T_LNUMBER=311,r.Constants.T_DNUMBER=312,r.Constants.T_STRING=313,r.Constants.T_STRING_VARNAME=314,r.Constants.T_VARIABLE=315,r.Constants.T_NUM_STRING=316,r.Constants.T_INLINE_HTML=317,r.Constants.T_CHARACTER=318,r.Constants.T_BAD_CHARACTER=319,r.Constants.T_ENCAPSED_AND_WHITESPACE=320,r.Constants.T_CONSTANT_ENCAPSED_STRING=321,r.Constants.T_ECHO=322,r.Constants.T_DO=323,r.Constants.T_WHILE=324,r.Constants.T_ENDWHILE=325,r.Constants.T_FOR=326,r.Constants.T_ENDFOR=327,r.Constants.T_FOREACH=328,r.Constants.T_ENDFOREACH=329,r.Constants.T_DECLARE=330,r.Constants.T_ENDDECLARE=331,r.Constants.T_AS=332,r.Constants.T_SWITCH=333,r.Constants.T_ENDSWITCH=334,r.Constants.T_CASE=335,r.Constants.T_DEFAULT=336,r.Constants.T_BREAK=337,r.Constants.T_CONTINUE=338,r.Constants.T_GOTO=339,r.Constants.T_FUNCTION=340,r.Constants.T_CONST=341,r.Constants.T_RETURN=342,r.Constants.T_TRY=343,r.Constants.T_CATCH=344,r.Constants.T_FINALLY=345,r.Constants.T_THROW=346,r.Constants.T_USE=347,r.Constants.T_INSTEADOF=348,r.Constants.T_GLOBAL=349,r.Constants.T_STATIC=350,r.Constants.T_ABSTRACT=351,r.Constants.T_FINAL=352,r.Constants.T_PRIVATE=353,r.Constants.T_PROTECTED=354,r.Constants.T_PUBLIC=355,r.Constants.T_VAR=356,r.Constants.T_UNSET=357,r.Constants.T_ISSET=358,r.Constants.T_EMPTY=359,r.Constants.T_HALT_COMPILER=360,r.Constants.T_CLASS=361,r.Constants.T_TRAIT=362,r.Constants.T_INTERFACE=363,r.Constants.T_EXTENDS=364,r.Constants.T_IMPLEMENTS=365,r.Constants.T_OBJECT_OPERATOR=366,r.Constants.T_LIST=367,r.Constants.T_ARRAY=368,r.Constants.T_CALLABLE=369,r.Constants.T_CLASS_C=370,r.Constants.T_TRAIT_C=371,r.Constants.T_METHOD_C=372,r.Constants.T_FUNC_C=373,r.Constants.T_LINE=374,r.Constants.T_FILE=375,r.Constants.T_COMMENT=376,r.Constants.T_DOC_COMMENT=377,r.Constants.T_OPEN_TAG=378,r.Constants.T_OPEN_TAG_WITH_ECHO=379,r.Constants.T_CLOSE_TAG=380,r.Constants.T_WHITESPACE=381,r.Constants.T_START_HEREDOC=382,r.Constants.T_END_HEREDOC=383,r.Constants.T_DOLLAR_OPEN_CURLY_BRACES=384,r.Constants.T_CURLY_OPEN=385,r.Constants.T_PAAMAYIM_NEKUDOTAYIM=386,r.Constants.T_NAMESPACE=387,r.Constants.T_NS_C=388,r.Constants.T_DIR=389,r.Constants.T_NS_SEPARATOR=390,r.Constants.T_ELLIPSIS=391,r.Lexer=function(e,t){var n,i,s=[\"INITIAL\"],o=0,u=function(e){s[o]=e},a=function(e){s[++o]=e},f=function(){--o},l=t===undefined||/^(on|true|1)$/i.test(t.short_open_tag),c=l?/^(\\<\\?php(?:\\r\\n|[ \\t\\r\\n])|<\\?|\\<script language\\=('|\")?php('|\")?\\>)/i:/^(\\<\\?php(?:\\r\\n|[ \\t\\r\\n])|\\<script language\\=('|\")?php('|\")?\\>)/i,h=l?/[^<]*(?:<(?!\\?|script language\\=('|\")?php('|\")?\\>)[^<]*)*/i:/[^<]*(?:<(?!\\?=|\\?php[ \\t\\r\\n]|script language\\=('|\")?php('|\")?\\>)[^<]*)*/i;labelRegexPart=\"[a-zA-Z_\\\\x7f-\\\\uffff][a-zA-Z0-9_\\\\x7f-\\\\uffff]*\",stringRegexPart=function(e){return\"[^\"+e+\"\\\\\\\\${]*(?:(?:\\\\\\\\[\\\\s\\\\S]|\\\\$(?!\\\\{|[a-zA-Z_\\\\x7f-\\\\uffff])|\\\\{(?!\\\\$))[^\"+e+\"\\\\\\\\${]*)*\"},sharedStringTokens=[{value:r.Constants.T_VARIABLE,re:new RegExp(\"^\\\\$\"+labelRegexPart+\"(?=\\\\[)\"),func:function(){a(\"VAR_OFFSET\")}},{value:r.Constants.T_VARIABLE,re:new RegExp(\"^\\\\$\"+labelRegexPart+\"(?=->\"+labelRegexPart+\")\"),func:function(){a(\"LOOKING_FOR_PROPERTY\")}},{value:r.Constants.T_DOLLAR_OPEN_CURLY_BRACES,re:new RegExp(\"^\\\\$\\\\{(?=\"+labelRegexPart+\"[\\\\[}])\"),func:function(){a(\"LOOKING_FOR_VARNAME\")}},{value:r.Constants.T_VARIABLE,re:new RegExp(\"^\\\\$\"+labelRegexPart)},{value:r.Constants.T_DOLLAR_OPEN_CURLY_BRACES,re:/^\\$\\{/,func:function(){a(\"IN_SCRIPTING\")}},{value:r.Constants.T_CURLY_OPEN,re:/^\\{(?=\\$)/,func:function(){a(\"IN_SCRIPTING\")}}],data={INITIAL:[{value:r.Constants.T_OPEN_TAG_WITH_ECHO,re:/^<\\?=/i,func:function(){u(\"IN_SCRIPTING\")}},{value:r.Constants.T_OPEN_TAG,re:c,func:function(){u(\"IN_SCRIPTING\")}},{value:r.Constants.T_INLINE_HTML,re:h}],IN_SCRIPTING:[{value:r.Constants.T_WHITESPACE,re:/^[ \\n\\r\\t]+/},{value:r.Constants.T_ABSTRACT,re:/^abstract\\b/i},{value:r.Constants.T_LOGICAL_AND,re:/^and\\b/i},{value:r.Constants.T_ARRAY,re:/^array\\b/i},{value:r.Constants.T_AS,re:/^as\\b/i},{value:r.Constants.T_BREAK,re:/^break\\b/i},{value:r.Constants.T_CALLABLE,re:/^callable\\b/i},{value:r.Constants.T_CASE,re:/^case\\b/i},{value:r.Constants.T_CATCH,re:/^catch\\b/i},{value:r.Constants.T_CLASS,re:/^class\\b/i},{value:r.Constants.T_CLONE,re:/^clone\\b/i},{value:r.Constants.T_CONST,re:/^const\\b/i},{value:r.Constants.T_CONTINUE,re:/^continue\\b/i},{value:r.Constants.T_DECLARE,re:/^declare\\b/i},{value:r.Constants.T_DEFAULT,re:/^default\\b/i},{value:r.Constants.T_DO,re:/^do\\b/i},{value:r.Constants.T_ECHO,re:/^echo\\b/i},{value:r.Constants.T_ELSE,re:/^else\\b/i},{value:r.Constants.T_ELSEIF,re:/^elseif\\b/i},{value:r.Constants.T_ENDDECLARE,re:/^enddeclare\\b/i},{value:r.Constants.T_ENDFOR,re:/^endfor\\b/i},{value:r.Constants.T_ENDFOREACH,re:/^endforeach\\b/i},{value:r.Constants.T_ENDIF,re:/^endif\\b/i},{value:r.Constants.T_ENDSWITCH,re:/^endswitch\\b/i},{value:r.Constants.T_ENDWHILE,re:/^endwhile\\b/i},{value:r.Constants.T_EMPTY,re:/^empty\\b/i},{value:r.Constants.T_EVAL,re:/^eval\\b/i},{value:r.Constants.T_EXIT,re:/^(?:exit|die)\\b/i},{value:r.Constants.T_EXTENDS,re:/^extends\\b/i},{value:r.Constants.T_FINAL,re:/^final\\b/i},{value:r.Constants.T_FINALLY,re:/^finally\\b/i},{value:r.Constants.T_FOR,re:/^for\\b/i},{value:r.Constants.T_FOREACH,re:/^foreach\\b/i},{value:r.Constants.T_FUNCTION,re:/^function\\b/i},{value:r.Constants.T_GLOBAL,re:/^global\\b/i},{value:r.Constants.T_GOTO,re:/^goto\\b/i},{value:r.Constants.T_IF,re:/^if\\b/i},{value:r.Constants.T_IMPLEMENTS,re:/^implements\\b/i},{value:r.Constants.T_INCLUDE,re:/^include\\b/i},{value:r.Constants.T_INCLUDE_ONCE,re:/^include_once\\b/i},{value:r.Constants.T_INSTANCEOF,re:/^instanceof\\b/i},{value:r.Constants.T_INSTEADOF,re:/^insteadof\\b/i},{value:r.Constants.T_INTERFACE,re:/^interface\\b/i},{value:r.Constants.T_ISSET,re:/^isset\\b/i},{value:r.Constants.T_LIST,re:/^list\\b/i},{value:r.Constants.T_NAMESPACE,re:/^namespace\\b/i},{value:r.Constants.T_NEW,re:/^new\\b/i},{value:r.Constants.T_LOGICAL_OR,re:/^or\\b/i},{value:r.Constants.T_PRINT,re:/^print\\b/i},{value:r.Constants.T_PRIVATE,re:/^private\\b/i},{value:r.Constants.T_PROTECTED,re:/^protected\\b/i},{value:r.Constants.T_PUBLIC,re:/^public\\b/i},{value:r.Constants.T_REQUIRE,re:/^require\\b/i},{value:r.Constants.T_REQUIRE_ONCE,re:/^require_once\\b/i},{value:r.Constants.T_STATIC,re:/^static\\b/i},{value:r.Constants.T_SWITCH,re:/^switch\\b/i},{value:r.Constants.T_THROW,re:/^throw\\b/i},{value:r.Constants.T_TRAIT,re:/^trait\\b/i},{value:r.Constants.T_TRY,re:/^try\\b/i},{value:r.Constants.T_UNSET,re:/^unset\\b/i},{value:r.Constants.T_USE,re:/^use\\b/i},{value:r.Constants.T_VAR,re:/^var\\b/i},{value:r.Constants.T_WHILE,re:/^while\\b/i},{value:r.Constants.T_LOGICAL_XOR,re:/^xor\\b/i},{value:r.Constants.T_YIELD_FROM,re:/^yield\\s+from\\b/i},{value:r.Constants.T_YIELD,re:/^yield\\b/i},{value:r.Constants.T_RETURN,re:/^return\\b/i},{value:r.Constants.T_METHOD_C,re:/^__METHOD__\\b/i},{value:r.Constants.T_LINE,re:/^__LINE__\\b/i},{value:r.Constants.T_FILE,re:/^__FILE__\\b/i},{value:r.Constants.T_FUNC_C,re:/^__FUNCTION__\\b/i},{value:r.Constants.T_NS_C,re:/^__NAMESPACE__\\b/i},{value:r.Constants.T_TRAIT_C,re:/^__TRAIT__\\b/i},{value:r.Constants.T_DIR,re:/^__DIR__\\b/i},{value:r.Constants.T_CLASS_C,re:/^__CLASS__\\b/i},{value:r.Constants.T_AND_EQUAL,re:/^&=/},{value:r.Constants.T_ARRAY_CAST,re:/^\\([ \\t]*array[ \\t]*\\)/i},{value:r.Constants.T_BOOL_CAST,re:/^\\([ \\t]*(?:bool|boolean)[ \\t]*\\)/i},{value:r.Constants.T_DOUBLE_CAST,re:/^\\([ \\t]*(?:real|float|double)[ \\t]*\\)/i},{value:r.Constants.T_INT_CAST,re:/^\\([ \\t]*(?:int|integer)[ \\t]*\\)/i},{value:r.Constants.T_OBJECT_CAST,re:/^\\([ \\t]*object[ \\t]*\\)/i},{value:r.Constants.T_STRING_CAST,re:/^\\([ \\t]*(?:binary|string)[ \\t]*\\)/i},{value:r.Constants.T_UNSET_CAST,re:/^\\([ \\t]*unset[ \\t]*\\)/i},{value:r.Constants.T_BOOLEAN_AND,re:/^&&/},{value:r.Constants.T_BOOLEAN_OR,re:/^\\|\\|/},{value:r.Constants.T_CLOSE_TAG,re:/^(?:\\?>|<\\/script>)(\\r\\n|\\r|\\n)?/i,func:function(){u(\"INITIAL\")}},{value:r.Constants.T_DOUBLE_ARROW,re:/^=>/},{value:r.Constants.T_PAAMAYIM_NEKUDOTAYIM,re:/^::/},{value:r.Constants.T_INC,re:/^\\+\\+/},{value:r.Constants.T_DEC,re:/^--/},{value:r.Constants.T_CONCAT_EQUAL,re:/^\\.=/},{value:r.Constants.T_DIV_EQUAL,re:/^\\/=/},{value:r.Constants.T_XOR_EQUAL,re:/^\\^=/},{value:r.Constants.T_MUL_EQUAL,re:/^\\*=/},{value:r.Constants.T_MOD_EQUAL,re:/^%=/},{value:r.Constants.T_SL_EQUAL,re:/^<<=/},{value:r.Constants.T_START_HEREDOC,re:new RegExp(\"^[bB]?<<<[ \\\\t]*'(\"+labelRegexPart+\")'(?:\\\\r\\\\n|\\\\r|\\\\n)\"),func:function(e){n=e[1],u(\"NOWDOC\")}},{value:r.Constants.T_START_HEREDOC,re:new RegExp('^[bB]?<<<[ \\\\t]*(\"?)('+labelRegexPart+\")\\\\1(?:\\\\r\\\\n|\\\\r|\\\\n)\"),func:function(e){n=e[2],i=!0,u(\"HEREDOC\")}},{value:r.Constants.T_SL,re:/^<</},{value:r.Constants.T_SPACESHIP,re:/^<=>/},{value:r.Constants.T_IS_SMALLER_OR_EQUAL,re:/^<=/},{value:r.Constants.T_SR_EQUAL,re:/^>>=/},{value:r.Constants.T_SR,re:/^>>/},{value:r.Constants.T_IS_GREATER_OR_EQUAL,re:/^>=/},{value:r.Constants.T_OR_EQUAL,re:/^\\|=/},{value:r.Constants.T_PLUS_EQUAL,re:/^\\+=/},{value:r.Constants.T_MINUS_EQUAL,re:/^-=/},{value:r.Constants.T_OBJECT_OPERATOR,re:new RegExp(\"^->(?=[ \\n\\r\t]*\"+labelRegexPart+\")\"),func:function(){a(\"LOOKING_FOR_PROPERTY\")}},{value:r.Constants.T_OBJECT_OPERATOR,re:/^->/i},{value:r.Constants.T_ELLIPSIS,re:/^\\.\\.\\./},{value:r.Constants.T_POW_EQUAL,re:/^\\*\\*=/},{value:r.Constants.T_POW,re:/^\\*\\*/},{value:r.Constants.T_COALESCE,re:/^\\?\\?/},{value:r.Constants.T_COMMENT,re:/^\\/\\*([\\S\\s]*?)(?:\\*\\/|$)/},{value:r.Constants.T_COMMENT,re:/^(?:\\/\\/|#)[^\\r\\n?]*(?:\\?(?!>)[^\\r\\n?]*)*(?:\\r\\n|\\r|\\n)?/},{value:r.Constants.T_IS_IDENTICAL,re:/^===/},{value:r.Constants.T_IS_EQUAL,re:/^==/},{value:r.Constants.T_IS_NOT_IDENTICAL,re:/^!==/},{value:r.Constants.T_IS_NOT_EQUAL,re:/^(!=|<>)/},{value:r.Constants.T_DNUMBER,re:/^(?:[0-9]+\\.[0-9]*|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?/},{value:r.Constants.T_DNUMBER,re:/^[0-9]+[eE][+-]?[0-9]+/},{value:r.Constants.T_LNUMBER,re:/^(?:0x[0-9A-F]+|0b[01]+|[0-9]+)/i},{value:r.Constants.T_VARIABLE,re:new RegExp(\"^\\\\$\"+labelRegexPart)},{value:r.Constants.T_CONSTANT_ENCAPSED_STRING,re:/^[bB]?'[^'\\\\]*(?:\\\\[\\s\\S][^'\\\\]*)*'/},{value:r.Constants.T_CONSTANT_ENCAPSED_STRING,re:new RegExp('^[bB]?\"'+stringRegexPart('\"')+'\"')},{value:-1,re:/^[bB]?\"/,func:function(){u(\"DOUBLE_QUOTES\")}},{value:-1,re:/^`/,func:function(){u(\"BACKTICKS\")}},{value:r.Constants.T_NS_SEPARATOR,re:/^\\\\/},{value:r.Constants.T_STRING,re:/^[a-zA-Z_\\x7f-\\uffff][a-zA-Z0-9_\\x7f-\\uffff]*/},{value:-1,re:/^\\{/,func:function(){a(\"IN_SCRIPTING\")}},{value:-1,re:/^\\}/,func:function(){o>0&&f()}},{value:-1,re:/^[\\[\\];:?()!.,><=+-/*|&@^%\"'$~]/}],DOUBLE_QUOTES:sharedStringTokens.concat([{value:-1,re:/^\"/,func:function(){u(\"IN_SCRIPTING\")}},{value:r.Constants.T_ENCAPSED_AND_WHITESPACE,re:new RegExp(\"^\"+stringRegexPart('\"'))}]),BACKTICKS:sharedStringTokens.concat([{value:-1,re:/^`/,func:function(){u(\"IN_SCRIPTING\")}},{value:r.Constants.T_ENCAPSED_AND_WHITESPACE,re:new RegExp(\"^\"+stringRegexPart(\"`\"))}]),VAR_OFFSET:[{value:-1,re:/^\\]/,func:function(){f()}},{value:r.Constants.T_NUM_STRING,re:/^(?:0x[0-9A-F]+|0b[01]+|[0-9]+)/i},{value:r.Constants.T_VARIABLE,re:new RegExp(\"^\\\\$\"+labelRegexPart)},{value:r.Constants.T_STRING,re:new RegExp(\"^\"+labelRegexPart)},{value:-1,re:/^[;:,.\\[()|^&+-/*=%!~$<>?@{}\"`]/}],LOOKING_FOR_PROPERTY:[{value:r.Constants.T_OBJECT_OPERATOR,re:/^->/},{value:r.Constants.T_STRING,re:new RegExp(\"^\"+labelRegexPart),func:function(){f()}},{value:r.Constants.T_WHITESPACE,re:/^[ \\n\\r\\t]+/}],LOOKING_FOR_VARNAME:[{value:r.Constants.T_STRING_VARNAME,re:new RegExp(\"^\"+labelRegexPart+\"(?=[\\\\[}])\"),func:function(){u(\"IN_SCRIPTING\")}}],NOWDOC:[{value:r.Constants.T_END_HEREDOC,matchFunc:function(e){var t=new RegExp(\"^\"+n+\"(?=;?[\\\\r\\\\n])\");return e.match(t)?[e.substr(0,n.length)]:null},func:function(){u(\"IN_SCRIPTING\")}},{value:r.Constants.T_ENCAPSED_AND_WHITESPACE,matchFunc:function(e){var t=new RegExp(\"[\\\\r\\\\n]\"+n+\"(?=;?[\\\\r\\\\n])\"),r=t.exec(e),i=r?r.index+1:e.length;return[e.substring(0,i)]}}],HEREDOC:sharedStringTokens.concat([{value:r.Constants.T_END_HEREDOC,matchFunc:function(e){if(!i)return null;var t=new RegExp(\"^\"+n+\"(?=;?[\\\\r\\\\n])\");return e.match(t)?[e.substr(0,n.length)]:null},func:function(){u(\"IN_SCRIPTING\")}},{value:r.Constants.T_ENCAPSED_AND_WHITESPACE,matchFunc:function(e){var t=e.length,r=new RegExp(\"^\"+stringRegexPart(\"\")),s=r.exec(e);return s&&(t=s[0].length),r=new RegExp(\"([\\\\r\\\\n])\"+n+\"(?=;?[\\\\r\\\\n])\"),s=r.exec(e.substring(0,t)),s?(t=s.index+1,i=!0):i=!1,t==0?null:[e.substring(0,t)]}}])};var p=[],d=1,v=!0;if(e===null)return p;typeof e!=\"string\"&&(e=e.toString());while(e.length>0&&v===!0){var m=s[o],g=data[m];v=g.some(function(t){var n=t.matchFunc!==undefined?t.matchFunc(e):e.match(t.re);if(n!==null){if(n[0].length==0)throw new Error(\"empty match\");t.func!==undefined&&t.func(n);if(t.value===-1)p.push(n[0]);else{var r=n[0];p.push([parseInt(t.value,10),r,d]),d+=r.split(\"\\n\").length-1}return e=e.substring(n[0].length),!0}return!1})}return p},r.Parser=function(e,t){var n=this.yybase,i=this.yydefault,s=this.yycheck,o=this.yyaction,u=this.yylen,a=this.yygbase,f=this.yygcheck,l=this.yyp,c=this.yygoto,h=this.yylhs,p=this.terminals,d=this.translate,v=this.yygdefault;this.pos=-1,this.line=1,this.tokenMap=this.createTokenMap(),this.dropTokens={},this.dropTokens[r.Constants.T_WHITESPACE]=1,this.dropTokens[r.Constants.T_OPEN_TAG]=1;var m=[];e.forEach(function(e,t){typeof e==\"object\"&&e[0]===r.Constants.T_OPEN_TAG_WITH_ECHO?(m.push([r.Constants.T_OPEN_TAG,e[1],e[2]]),m.push([r.Constants.T_ECHO,e[1],e[2]])):m.push(e)}),this.tokens=m;var g=this.TOKEN_NONE;this.startAttributes={startLine:1},this.endAttributes={};var y=[this.startAttributes],b=0,w=[b];this.yyastk=[],this.stackPos=0;var E,S;for(;;){if(n[b]===0)E=i[b];else{g===this.TOKEN_NONE&&(S=this.getNextToken(),g=S>=0&&S<this.TOKEN_MAP_SIZE?d[S]:this.TOKEN_INVALID,y[this.stackPos]=this.startAttributes);if(((E=n[b]+g)>=0&&E<this.YYLAST&&s[E]===g||b<this.YY2TBLSTATE&&(E=n[b+this.YYNLSTATES]+g)>=0&&E<this.YYLAST&&s[E]===g)&&(E=o[E])!==this.YYDEFAULT)if(E>0){++this.stackPos,w[this.stackPos]=b=E,this.yyastk[this.stackPos]=this.tokenValue,y[this.stackPos]=this.startAttributes,g=this.TOKEN_NONE;if(E<this.YYNLSTATES)continue;E-=this.YYNLSTATES}else E=-E;else E=i[b]}for(;;){if(E===0)return this.yyval;if(E===this.YYUNEXPECTED){if(t!==!0){var T=[];for(var N=0;N<this.TOKEN_MAP_SIZE;++N)if((E=n[b]+N)>=0&&E<this.YYLAST&&s[E]==N||b<this.YY2TBLSTATE&&(E=n[b+this.YYNLSTATES]+N)&&E<this.YYLAST&&s[E]==N)if(o[E]!=this.YYUNEXPECTED){if(T.length==4){T=[];break}T.push(this.terminals[N])}var C=\"\";throw T.length&&(C=\", expecting \"+T.join(\" or \")),new r.ParseError(\"syntax error, unexpected \"+p[g]+C,this.startAttributes.startLine)}return this.startAttributes.startLine}for(var x in this.endAttributes)y[this.stackPos-u[E]][x]=this.endAttributes[x];this.stackPos-=u[E],E=h[E],(l=a[E]+w[this.stackPos])>=0&&l<this.YYGLAST&&f[l]===E?b=c[l]:b=v[E],++this.stackPos,w[this.stackPos]=b,this.yyastk[this.stackPos]=this.yyval,y[this.stackPos]=this.startAttributes;if(b<this.YYNLSTATES)break;E=b-this.YYNLSTATES}}},r.ParseError=function(e,t){this.message=e,this.line=t},r.Parser.prototype.getNextToken=function(){this.startAttributes={},this.endAttributes={};var e,t;while(this.tokens[++this.pos]!==undefined){e=this.tokens[this.pos];if(typeof e==\"string\")return this.startAttributes.startLine=this.line,this.endAttributes.endLine=this.line,'b\"'===e?(this.tokenValue='b\"','\"'.charCodeAt(0)):(this.tokenValue=e,e.charCodeAt(0));this.line+=(t=e[1].match(/\\n/g))===null?0:t.length;if(r.Constants.T_COMMENT===e[0])Array.isArray(this.startAttributes.comments)||(this.startAttributes.comments=[]),this.startAttributes.comments.push({type:\"comment\",comment:e[1],line:e[2]});else if(r.Constants.T_DOC_COMMENT===e[0])this.startAttributes.comments.push(new PHPParser_Comment_Doc(e[1],e[2]));else if(this.dropTokens[e[0]]===undefined)return this.tokenValue=e[1],this.startAttributes.startLine=e[2],this.endAttributes.endLine=this.line,this.tokenMap[e[0]]}return this.startAttributes.startLine=this.line,0},r.Parser.prototype.tokenName=function(e){var t=[\"T_INCLUDE\",\"T_INCLUDE_ONCE\",\"T_EVAL\",\"T_REQUIRE\",\"T_REQUIRE_ONCE\",\"T_LOGICAL_OR\",\"T_LOGICAL_XOR\",\"T_LOGICAL_AND\",\"T_PRINT\",\"T_YIELD\",\"T_DOUBLE_ARROW\",\"T_YIELD_FROM\",\"T_PLUS_EQUAL\",\"T_MINUS_EQUAL\",\"T_MUL_EQUAL\",\"T_DIV_EQUAL\",\"T_CONCAT_EQUAL\",\"T_MOD_EQUAL\",\"T_AND_EQUAL\",\"T_OR_EQUAL\",\"T_XOR_EQUAL\",\"T_SL_EQUAL\",\"T_SR_EQUAL\",\"T_POW_EQUAL\",\"T_COALESCE\",\"T_BOOLEAN_OR\",\"T_BOOLEAN_AND\",\"T_IS_EQUAL\",\"T_IS_NOT_EQUAL\",\"T_IS_IDENTICAL\",\"T_IS_NOT_IDENTICAL\",\"T_SPACESHIP\",\"T_IS_SMALLER_OR_EQUAL\",\"T_IS_GREATER_OR_EQUAL\",\"T_SL\",\"T_SR\",\"T_INSTANCEOF\",\"T_INC\",\"T_DEC\",\"T_INT_CAST\",\"T_DOUBLE_CAST\",\"T_STRING_CAST\",\"T_ARRAY_CAST\",\"T_OBJECT_CAST\",\"T_BOOL_CAST\",\"T_UNSET_CAST\",\"T_POW\",\"T_NEW\",\"T_CLONE\",\"T_EXIT\",\"T_IF\",\"T_ELSEIF\",\"T_ELSE\",\"T_ENDIF\",\"T_LNUMBER\",\"T_DNUMBER\",\"T_STRING\",\"T_STRING_VARNAME\",\"T_VARIABLE\",\"T_NUM_STRING\",\"T_INLINE_HTML\",\"T_CHARACTER\",\"T_BAD_CHARACTER\",\"T_ENCAPSED_AND_WHITESPACE\",\"T_CONSTANT_ENCAPSED_STRING\",\"T_ECHO\",\"T_DO\",\"T_WHILE\",\"T_ENDWHILE\",\"T_FOR\",\"T_ENDFOR\",\"T_FOREACH\",\"T_ENDFOREACH\",\"T_DECLARE\",\"T_ENDDECLARE\",\"T_AS\",\"T_SWITCH\",\"T_ENDSWITCH\",\"T_CASE\",\"T_DEFAULT\",\"T_BREAK\",\"T_CONTINUE\",\"T_GOTO\",\"T_FUNCTION\",\"T_CONST\",\"T_RETURN\",\"T_TRY\",\"T_CATCH\",\"T_FINALLY\",\"T_THROW\",\"T_USE\",\"T_INSTEADOF\",\"T_GLOBAL\",\"T_STATIC\",\"T_ABSTRACT\",\"T_FINAL\",\"T_PRIVATE\",\"T_PROTECTED\",\"T_PUBLIC\",\"T_VAR\",\"T_UNSET\",\"T_ISSET\",\"T_EMPTY\",\"T_HALT_COMPILER\",\"T_CLASS\",\"T_TRAIT\",\"T_INTERFACE\",\"T_EXTENDS\",\"T_IMPLEMENTS\",\"T_OBJECT_OPERATOR\",\"T_DOUBLE_ARROW\",\"T_LIST\",\"T_ARRAY\",\"T_CALLABLE\",\"T_CLASS_C\",\"T_TRAIT_C\",\"T_METHOD_C\",\"T_FUNC_C\",\"T_LINE\",\"T_FILE\",\"T_COMMENT\",\"T_DOC_COMMENT\",\"T_OPEN_TAG\",\"T_OPEN_TAG_WITH_ECHO\",\"T_CLOSE_TAG\",\"T_WHITESPACE\",\"T_START_HEREDOC\",\"T_END_HEREDOC\",\"T_DOLLAR_OPEN_CURLY_BRACES\",\"T_CURLY_OPEN\",\"T_PAAMAYIM_NEKUDOTAYIM\",\"T_NAMESPACE\",\"T_NS_C\",\"T_DIR\",\"T_NS_SEPARATOR\",\"T_ELLIPSIS\"],n=\"UNKNOWN\";return t.some(function(t){return r.Constants[t]===e?(n=t,!0):!1}),n},r.Parser.prototype.createTokenMap=function(){var e={},t,n;for(n=256;n<1e3;++n)r.Constants.T_OPEN_TAG_WITH_ECHO===n?e[n]=r.Constants.T_ECHO:r.Constants.T_CLOSE_TAG===n?e[n]=59:\"UNKNOWN\"!==(t=this.tokenName(n))&&(e[n]=this[t]);return e},r.Parser.prototype.TOKEN_NONE=-1,r.Parser.prototype.TOKEN_INVALID=157,r.Parser.prototype.TOKEN_MAP_SIZE=392,r.Parser.prototype.YYLAST=889,r.Parser.prototype.YY2TBLSTATE=337,r.Parser.prototype.YYGLAST=410,r.Parser.prototype.YYNLSTATES=564,r.Parser.prototype.YYUNEXPECTED=32767,r.Parser.prototype.YYDEFAULT=-32766,r.Parser.prototype.YYERRTOK=256,r.Parser.prototype.T_INCLUDE=257,r.Parser.prototype.T_INCLUDE_ONCE=258,r.Parser.prototype.T_EVAL=259,r.Parser.prototype.T_REQUIRE=260,r.Parser.prototype.T_REQUIRE_ONCE=261,r.Parser.prototype.T_LOGICAL_OR=262,r.Parser.prototype.T_LOGICAL_XOR=263,r.Parser.prototype.T_LOGICAL_AND=264,r.Parser.prototype.T_PRINT=265,r.Parser.prototype.T_YIELD=266,r.Parser.prototype.T_DOUBLE_ARROW=267,r.Parser.prototype.T_YIELD_FROM=268,r.Parser.prototype.T_PLUS_EQUAL=269,r.Parser.prototype.T_MINUS_EQUAL=270,r.Parser.prototype.T_MUL_EQUAL=271,r.Parser.prototype.T_DIV_EQUAL=272,r.Parser.prototype.T_CONCAT_EQUAL=273,r.Parser.prototype.T_MOD_EQUAL=274,r.Parser.prototype.T_AND_EQUAL=275,r.Parser.prototype.T_OR_EQUAL=276,r.Parser.prototype.T_XOR_EQUAL=277,r.Parser.prototype.T_SL_EQUAL=278,r.Parser.prototype.T_SR_EQUAL=279,r.Parser.prototype.T_POW_EQUAL=280,r.Parser.prototype.T_COALESCE=281,r.Parser.prototype.T_BOOLEAN_OR=282,r.Parser.prototype.T_BOOLEAN_AND=283,r.Parser.prototype.T_IS_EQUAL=284,r.Parser.prototype.T_IS_NOT_EQUAL=285,r.Parser.prototype.T_IS_IDENTICAL=286,r.Parser.prototype.T_IS_NOT_IDENTICAL=287,r.Parser.prototype.T_SPACESHIP=288,r.Parser.prototype.T_IS_SMALLER_OR_EQUAL=289,r.Parser.prototype.T_IS_GREATER_OR_EQUAL=290,r.Parser.prototype.T_SL=291,r.Parser.prototype.T_SR=292,r.Parser.prototype.T_INSTANCEOF=293,r.Parser.prototype.T_INC=294,r.Parser.prototype.T_DEC=295,r.Parser.prototype.T_INT_CAST=296,r.Parser.prototype.T_DOUBLE_CAST=297,r.Parser.prototype.T_STRING_CAST=298,r.Parser.prototype.T_ARRAY_CAST=299,r.Parser.prototype.T_OBJECT_CAST=300,r.Parser.prototype.T_BOOL_CAST=301,r.Parser.prototype.T_UNSET_CAST=302,r.Parser.prototype.T_POW=303,r.Parser.prototype.T_NEW=304,r.Parser.prototype.T_CLONE=305,r.Parser.prototype.T_EXIT=306,r.Parser.prototype.T_IF=307,r.Parser.prototype.T_ELSEIF=308,r.Parser.prototype.T_ELSE=309,r.Parser.prototype.T_ENDIF=310,r.Parser.prototype.T_LNUMBER=311,r.Parser.prototype.T_DNUMBER=312,r.Parser.prototype.T_STRING=313,r.Parser.prototype.T_STRING_VARNAME=314,r.Parser.prototype.T_VARIABLE=315,r.Parser.prototype.T_NUM_STRING=316,r.Parser.prototype.T_INLINE_HTML=317,r.Parser.prototype.T_CHARACTER=318,r.Parser.prototype.T_BAD_CHARACTER=319,r.Parser.prototype.T_ENCAPSED_AND_WHITESPACE=320,r.Parser.prototype.T_CONSTANT_ENCAPSED_STRING=321,r.Parser.prototype.T_ECHO=322,r.Parser.prototype.T_DO=323,r.Parser.prototype.T_WHILE=324,r.Parser.prototype.T_ENDWHILE=325,r.Parser.prototype.T_FOR=326,r.Parser.prototype.T_ENDFOR=327,r.Parser.prototype.T_FOREACH=328,r.Parser.prototype.T_ENDFOREACH=329,r.Parser.prototype.T_DECLARE=330,r.Parser.prototype.T_ENDDECLARE=331,r.Parser.prototype.T_AS=332,r.Parser.prototype.T_SWITCH=333,r.Parser.prototype.T_ENDSWITCH=334,r.Parser.prototype.T_CASE=335,r.Parser.prototype.T_DEFAULT=336,r.Parser.prototype.T_BREAK=337,r.Parser.prototype.T_CONTINUE=338,r.Parser.prototype.T_GOTO=339,r.Parser.prototype.T_FUNCTION=340,r.Parser.prototype.T_CONST=341,r.Parser.prototype.T_RETURN=342,r.Parser.prototype.T_TRY=343,r.Parser.prototype.T_CATCH=344,r.Parser.prototype.T_FINALLY=345,r.Parser.prototype.T_THROW=346,r.Parser.prototype.T_USE=347,r.Parser.prototype.T_INSTEADOF=348,r.Parser.prototype.T_GLOBAL=349,r.Parser.prototype.T_STATIC=350,r.Parser.prototype.T_ABSTRACT=351,r.Parser.prototype.T_FINAL=352,r.Parser.prototype.T_PRIVATE=353,r.Parser.prototype.T_PROTECTED=354,r.Parser.prototype.T_PUBLIC=355,r.Parser.prototype.T_VAR=356,r.Parser.prototype.T_UNSET=357,r.Parser.prototype.T_ISSET=358,r.Parser.prototype.T_EMPTY=359,r.Parser.prototype.T_HALT_COMPILER=360,r.Parser.prototype.T_CLASS=361,r.Parser.prototype.T_TRAIT=362,r.Parser.prototype.T_INTERFACE=363,r.Parser.prototype.T_EXTENDS=364,r.Parser.prototype.T_IMPLEMENTS=365,r.Parser.prototype.T_OBJECT_OPERATOR=366,r.Parser.prototype.T_LIST=367,r.Parser.prototype.T_ARRAY=368,r.Parser.prototype.T_CALLABLE=369,r.Parser.prototype.T_CLASS_C=370,r.Parser.prototype.T_TRAIT_C=371,r.Parser.prototype.T_METHOD_C=372,r.Parser.prototype.T_FUNC_C=373,r.Parser.prototype.T_LINE=374,r.Parser.prototype.T_FILE=375,r.Parser.prototype.T_COMMENT=376,r.Parser.prototype.T_DOC_COMMENT=377,r.Parser.prototype.T_OPEN_TAG=378,r.Parser.prototype.T_OPEN_TAG_WITH_ECHO=379,r.Parser.prototype.T_CLOSE_TAG=380,r.Parser.prototype.T_WHITESPACE=381,r.Parser.prototype.T_START_HEREDOC=382,r.Parser.prototype.T_END_HEREDOC=383,r.Parser.prototype.T_DOLLAR_OPEN_CURLY_BRACES=384,r.Parser.prototype.T_CURLY_OPEN=385,r.Parser.prototype.T_PAAMAYIM_NEKUDOTAYIM=386,r.Parser.prototype.T_NAMESPACE=387,r.Parser.prototype.T_NS_C=388,r.Parser.prototype.T_DIR=389,r.Parser.prototype.T_NS_SEPARATOR=390,r.Parser.prototype.T_ELLIPSIS=391,r.Parser.prototype.terminals=[\"$EOF\",\"error\",\"T_INCLUDE\",\"T_INCLUDE_ONCE\",\"T_EVAL\",\"T_REQUIRE\",\"T_REQUIRE_ONCE\",\"','\",\"T_LOGICAL_OR\",\"T_LOGICAL_XOR\",\"T_LOGICAL_AND\",\"T_PRINT\",\"T_YIELD\",\"T_DOUBLE_ARROW\",\"T_YIELD_FROM\",\"'='\",\"T_PLUS_EQUAL\",\"T_MINUS_EQUAL\",\"T_MUL_EQUAL\",\"T_DIV_EQUAL\",\"T_CONCAT_EQUAL\",\"T_MOD_EQUAL\",\"T_AND_EQUAL\",\"T_OR_EQUAL\",\"T_XOR_EQUAL\",\"T_SL_EQUAL\",\"T_SR_EQUAL\",\"T_POW_EQUAL\",\"'?'\",\"':'\",\"T_COALESCE\",\"T_BOOLEAN_OR\",\"T_BOOLEAN_AND\",\"'|'\",\"'^'\",\"'&'\",\"T_IS_EQUAL\",\"T_IS_NOT_EQUAL\",\"T_IS_IDENTICAL\",\"T_IS_NOT_IDENTICAL\",\"T_SPACESHIP\",\"'<'\",\"T_IS_SMALLER_OR_EQUAL\",\"'>'\",\"T_IS_GREATER_OR_EQUAL\",\"T_SL\",\"T_SR\",\"'+'\",\"'-'\",\"'.'\",\"'*'\",\"'/'\",\"'%'\",\"'!'\",\"T_INSTANCEOF\",\"'~'\",\"T_INC\",\"T_DEC\",\"T_INT_CAST\",\"T_DOUBLE_CAST\",\"T_STRING_CAST\",\"T_ARRAY_CAST\",\"T_OBJECT_CAST\",\"T_BOOL_CAST\",\"T_UNSET_CAST\",\"'@'\",\"T_POW\",\"'['\",\"T_NEW\",\"T_CLONE\",\"T_EXIT\",\"T_IF\",\"T_ELSEIF\",\"T_ELSE\",\"T_ENDIF\",\"T_LNUMBER\",\"T_DNUMBER\",\"T_STRING\",\"T_STRING_VARNAME\",\"T_VARIABLE\",\"T_NUM_STRING\",\"T_INLINE_HTML\",\"T_ENCAPSED_AND_WHITESPACE\",\"T_CONSTANT_ENCAPSED_STRING\",\"T_ECHO\",\"T_DO\",\"T_WHILE\",\"T_ENDWHILE\",\"T_FOR\",\"T_ENDFOR\",\"T_FOREACH\",\"T_ENDFOREACH\",\"T_DECLARE\",\"T_ENDDECLARE\",\"T_AS\",\"T_SWITCH\",\"T_ENDSWITCH\",\"T_CASE\",\"T_DEFAULT\",\"T_BREAK\",\"T_CONTINUE\",\"T_GOTO\",\"T_FUNCTION\",\"T_CONST\",\"T_RETURN\",\"T_TRY\",\"T_CATCH\",\"T_FINALLY\",\"T_THROW\",\"T_USE\",\"T_INSTEADOF\",\"T_GLOBAL\",\"T_STATIC\",\"T_ABSTRACT\",\"T_FINAL\",\"T_PRIVATE\",\"T_PROTECTED\",\"T_PUBLIC\",\"T_VAR\",\"T_UNSET\",\"T_ISSET\",\"T_EMPTY\",\"T_HALT_COMPILER\",\"T_CLASS\",\"T_TRAIT\",\"T_INTERFACE\",\"T_EXTENDS\",\"T_IMPLEMENTS\",\"T_OBJECT_OPERATOR\",\"T_LIST\",\"T_ARRAY\",\"T_CALLABLE\",\"T_CLASS_C\",\"T_TRAIT_C\",\"T_METHOD_C\",\"T_FUNC_C\",\"T_LINE\",\"T_FILE\",\"T_START_HEREDOC\",\"T_END_HEREDOC\",\"T_DOLLAR_OPEN_CURLY_BRACES\",\"T_CURLY_OPEN\",\"T_PAAMAYIM_NEKUDOTAYIM\",\"T_NAMESPACE\",\"T_NS_C\",\"T_DIR\",\"T_NS_SEPARATOR\",\"T_ELLIPSIS\",\"';'\",\"'{'\",\"'}'\",\"'('\",\"')'\",\"'`'\",\"']'\",\"'\\\"'\",\"'$'\",\"???\"],r.Parser.prototype.translate=[0,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,53,155,157,156,52,35,157,151,152,50,47,7,48,49,51,157,157,157,157,157,157,157,157,157,157,29,148,41,15,43,28,65,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,67,157,154,34,157,153,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,149,33,150,55,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,1,2,3,4,5,6,8,9,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,26,27,30,31,32,36,37,38,39,40,42,44,45,46,54,56,57,58,59,60,61,62,63,64,66,68,69,70,71,72,73,74,75,76,77,78,79,80,81,157,157,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,157,157,157,157,157,157,138,139,140,141,142,143,144,145,146,147],r.Parser.prototype.yyaction=[569,570,571,572,573,215,574,575,576,612,613,0,27,99,100,101,102,103,104,105,106,107,108,109,110,-32766,-32766,-32766,95,96,97,24,240,226,-267,-32766,-32766,-32766,-32766,-32766,-32766,530,344,114,98,-32766,286,-32766,-32766,-32766,-32766,-32766,577,870,872,-32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766,224,-32766,714,578,579,580,581,582,583,584,-32766,264,644,840,841,842,839,838,837,585,586,587,588,589,590,591,592,593,594,595,615,616,617,618,619,607,608,609,610,611,596,597,598,599,600,601,602,638,639,640,641,642,643,603,604,605,606,636,627,625,626,622,623,116,614,620,621,628,629,631,630,632,633,42,43,381,44,45,624,635,634,-214,46,47,289,48,-32767,-32767,-32767,-32767,90,91,92,93,94,267,241,22,840,841,842,839,838,837,832,-32766,-32766,-32766,306,1e3,1e3,1037,120,966,436,-423,244,797,49,50,660,661,272,362,51,-32766,52,219,220,53,54,55,56,57,58,59,60,1016,22,238,61,351,945,-32766,-32766,-32766,967,968,646,705,1e3,28,-456,125,966,-32766,-32766,-32766,715,398,399,216,1e3,-32766,339,-32766,-32766,-32766,-32766,25,222,980,552,355,378,-32766,-423,-32766,-32766,-32766,121,65,1045,408,1047,1046,274,274,131,244,-423,394,395,358,519,945,537,-423,111,-426,398,399,130,972,973,974,975,969,970,243,128,-422,-421,1013,409,976,971,353,791,792,7,-162,63,124,255,701,256,274,382,-122,-122,-122,-4,715,383,646,1042,-421,704,274,-219,33,17,384,-122,385,-122,386,-122,387,-122,369,388,-122,-122,-122,34,35,389,352,520,36,390,353,702,62,112,818,287,288,391,392,-422,-421,-161,350,393,40,38,690,735,396,397,361,22,122,-422,-421,-32766,-32766,-32766,791,792,-422,-421,-425,1e3,-456,-421,-238,966,409,41,382,353,717,535,-122,-32766,383,-32766,-32766,-421,704,21,813,33,17,384,-421,385,-466,386,224,387,-467,273,388,367,945,-458,34,35,389,352,345,36,390,248,247,62,254,715,287,288,391,392,399,-32766,-32766,-32766,393,295,1e3,652,735,396,397,117,115,113,814,119,72,73,74,-162,764,65,240,541,370,518,274,118,270,92,93,94,242,717,535,-4,26,1e3,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,547,240,713,715,382,276,-32766,-32766,126,945,383,-161,938,98,704,225,659,33,17,384,346,385,274,386,728,387,221,120,388,505,506,540,34,35,389,715,-238,36,390,1017,223,62,494,18,287,288,127,297,376,6,98,798,393,274,660,661,490,491,-466,39,-466,514,-467,539,-467,16,458,-458,315,791,792,829,553,382,817,563,653,538,765,383,449,751,535,704,448,435,33,17,384,430,385,646,386,359,387,357,647,388,673,429,1040,34,35,389,715,382,36,390,941,492,62,383,503,287,288,704,434,440,33,17,384,393,385,-32766,386,445,387,495,509,388,10,529,542,34,35,389,715,515,36,390,499,500,62,214,-80,287,288,452,269,736,717,535,488,393,356,266,979,265,730,982,722,358,338,493,548,0,294,737,0,3,0,309,0,0,382,0,0,271,0,0,383,0,717,535,704,227,0,33,17,384,9,385,0,386,0,387,-382,0,388,0,0,325,34,35,389,715,382,36,390,321,341,62,383,340,287,288,704,22,320,33,17,384,393,385,442,386,337,387,562,1e3,388,32,31,966,34,35,389,823,657,36,390,656,821,62,703,711,287,288,561,822,825,717,535,695,393,747,749,693,759,758,752,767,945,824,706,700,712,699,698,658,0,263,262,559,558,382,556,554,551,398,399,383,550,717,535,704,546,545,33,17,384,543,385,536,386,71,387,933,932,388,30,65,731,34,35,389,274,724,36,390,830,734,62,663,662,287,288,-32766,-32766,-32766,733,732,934,393,665,664,756,555,691,1041,1001,994,1006,1011,1014,757,1043,-32766,654,-32766,-32766,-32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767,-32767,655,1044,717,535,-446,926,348,343,268,237,236,235,234,218,217,132,129,-426,-425,-424,123,20,23,70,69,29,37,64,68,66,67,-448,0,15,19,250,910,296,-217,467,484,909,472,528,913,11,964,955,-215,525,379,375,373,371,14,13,12,-214,0,-393,0,1005,1039,992,993,963,0,981],r.Parser.prototype.yycheck=[2,3,4,5,6,13,8,9,10,11,12,0,15,16,17,18,19,20,21,22,23,24,25,26,27,8,9,10,50,51,52,7,54,7,79,8,9,10,8,9,10,77,7,13,66,28,7,30,31,32,33,34,54,56,57,28,8,30,31,32,33,34,35,35,109,1,68,69,70,71,72,73,74,118,7,77,112,113,114,115,116,117,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,7,129,130,131,132,133,134,135,136,137,2,3,4,5,6,143,144,145,152,11,12,7,14,41,42,43,44,45,46,47,48,49,109,7,67,112,113,114,115,116,117,118,8,9,10,79,79,79,82,147,83,82,67,28,152,47,48,102,103,7,7,53,28,55,56,57,58,59,60,61,62,63,64,65,1,67,68,69,70,112,8,9,10,75,76,77,148,79,13,7,67,83,8,9,10,1,129,130,13,79,28,146,30,31,32,33,140,141,139,29,102,7,28,128,30,31,32,149,151,77,112,79,80,156,156,15,28,142,120,121,146,77,112,149,149,15,151,129,130,15,132,133,134,135,136,137,138,15,67,67,77,143,144,145,146,130,131,7,7,151,15,153,148,155,156,71,72,73,74,0,1,77,77,150,67,81,156,152,84,85,86,87,88,89,90,91,92,93,29,95,96,97,98,99,100,101,102,143,104,105,146,148,108,15,150,111,112,113,114,128,128,7,7,119,67,67,122,123,124,125,7,67,149,142,142,8,9,10,130,131,149,149,151,79,152,128,7,83,143,7,71,146,148,149,150,28,77,30,31,142,81,7,148,84,85,86,149,88,7,90,35,92,7,33,95,7,112,7,99,100,101,102,103,104,105,128,128,108,109,1,111,112,113,114,130,8,9,10,119,142,79,122,123,124,125,15,149,149,148,29,8,9,10,152,29,151,54,29,149,79,156,15,143,47,48,49,29,148,149,150,28,79,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,29,54,29,1,71,67,8,9,29,112,77,152,152,66,81,35,148,84,85,86,123,88,156,90,35,92,35,147,95,72,73,29,99,100,101,1,152,104,105,152,35,108,72,73,111,112,97,98,102,103,66,152,119,156,102,103,106,107,152,67,154,74,152,29,154,152,128,152,78,130,131,148,149,71,148,149,148,149,148,77,77,148,149,81,77,77,84,85,86,77,88,77,90,77,92,77,77,95,77,77,77,99,100,101,1,71,104,105,79,79,108,77,79,111,112,81,79,82,84,85,86,119,88,82,90,86,92,87,96,95,94,89,29,99,100,101,1,91,104,105,93,96,108,94,94,111,112,94,110,123,148,149,109,119,102,127,139,126,147,139,150,146,149,154,29,-1,142,123,-1,142,-1,146,-1,-1,71,-1,-1,126,-1,-1,77,-1,148,149,81,35,-1,84,85,86,142,88,-1,90,-1,92,142,-1,95,-1,-1,146,99,100,101,1,71,104,105,146,146,108,77,146,111,112,81,67,146,84,85,86,119,88,146,90,149,92,148,79,95,148,148,83,99,100,101,148,148,104,105,148,148,108,148,148,111,112,148,148,148,148,149,148,119,148,148,148,148,148,148,148,112,148,148,148,148,148,148,148,-1,149,149,149,149,71,149,149,149,129,130,77,149,148,149,81,149,149,84,85,86,149,88,149,90,149,92,150,150,95,151,151,150,99,100,101,156,150,104,105,150,150,108,150,150,111,112,8,9,10,150,150,150,119,150,150,150,150,150,150,150,150,150,150,150,150,150,28,150,30,31,32,33,34,35,36,37,38,39,40,150,150,148,149,151,153,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,-1,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,-1,153,-1,154,154,154,154,154,-1,155],r.Parser.prototype.yybase=[0,220,295,94,180,560,-2,-2,-2,-2,-36,473,574,606,574,505,404,675,675,675,28,351,462,462,462,461,396,476,451,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,401,64,201,568,704,713,708,702,714,520,706,705,211,650,651,450,652,653,654,655,709,480,703,712,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,48,30,469,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,160,160,160,343,210,208,198,17,233,27,780,780,780,780,780,108,108,108,108,621,621,93,280,280,280,280,280,280,280,280,280,280,280,632,641,642,643,392,392,151,151,151,151,368,-45,146,224,224,95,410,491,733,199,199,111,207,-22,-22,-22,81,506,92,92,233,233,273,233,423,423,423,221,221,221,221,221,110,221,221,221,617,512,168,516,647,397,503,656,274,381,377,538,535,337,523,337,421,441,428,525,337,337,285,401,394,378,567,474,339,564,140,179,409,399,384,594,561,711,330,710,358,149,378,378,378,370,593,548,355,-8,646,484,277,417,386,645,635,230,634,276,331,356,565,485,485,485,485,485,485,460,485,483,691,691,478,501,460,696,460,485,691,460,460,502,485,522,522,483,508,499,691,691,499,478,460,571,551,514,482,413,413,514,460,413,501,413,11,697,699,444,700,695,698,676,694,493,615,497,515,684,683,693,479,489,620,692,549,592,487,246,314,498,463,689,523,486,455,455,455,463,687,455,455,455,455,455,455,455,455,732,24,495,510,591,590,589,406,588,496,524,422,599,488,549,549,649,727,673,490,682,716,690,555,119,271,681,648,543,492,534,680,598,246,715,494,672,549,671,455,674,701,730,731,688,728,722,152,526,587,178,729,659,596,595,554,725,707,721,720,178,576,511,717,518,677,504,678,613,258,657,686,584,724,723,726,583,582,609,608,250,236,685,442,458,517,581,500,628,604,679,580,579,623,619,718,521,486,519,509,507,513,600,618,719,206,578,586,573,481,572,631,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,134,134,-2,-2,-2,0,0,0,0,-2,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,-3,418,418,-3,418,418,418,418,418,418,-22,-22,-22,-22,221,221,221,221,221,221,221,221,221,221,221,221,221,221,49,49,49,49,-22,-22,221,221,221,221,221,49,221,221,221,92,221,92,92,337,337,0,0,0,0,0,485,92,0,0,0,0,0,0,485,485,485,0,0,0,0,0,485,0,0,0,337,92,0,420,420,178,420,420,0,0,0,485,485,0,508,0,0,0,0,691,0,0,0,0,0,455,119,682,0,39,0,0,0,0,0,490,39,26,0,26,0,0,455,455,455,0,490,490,0,0,67,490,0,0,0,67,35,0,35,0,0,0,178],r.Parser.prototype.yydefault=[3,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,468,468,468,32767,32767,32767,32767,285,460,285,285,32767,419,419,419,419,419,419,419,460,32767,32767,32767,32767,32767,364,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,465,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,347,348,350,351,284,420,237,464,283,116,246,239,191,282,223,119,312,365,314,363,367,313,290,294,295,296,297,298,299,300,301,302,303,304,305,288,289,366,344,343,342,310,311,287,315,317,287,316,333,334,331,332,335,336,337,338,339,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,269,269,269,269,324,325,229,229,229,229,32767,270,32767,229,32767,32767,32767,32767,32767,32767,32767,413,341,319,320,318,32767,392,32767,394,307,309,387,291,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,389,421,421,32767,32767,32767,381,32767,159,210,212,397,32767,32767,32767,32767,32767,329,32767,32767,32767,32767,32767,32767,474,32767,32767,32767,32767,32767,421,32767,32767,32767,321,322,323,32767,32767,32767,421,421,32767,32767,421,32767,421,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,163,32767,32767,395,395,32767,32767,163,390,163,32767,32767,163,163,176,32767,174,174,32767,32767,178,32767,435,178,32767,163,196,196,373,165,231,231,373,163,231,32767,231,32767,32767,32767,82,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,383,32767,32767,32767,401,32767,414,433,381,32767,327,328,330,32767,423,352,353,354,355,356,357,358,360,32767,461,386,32767,32767,32767,32767,32767,32767,84,108,245,32767,473,84,384,32767,473,32767,32767,32767,32767,32767,32767,286,32767,32767,32767,84,32767,84,32767,32767,457,32767,32767,421,385,32767,326,398,439,32767,32767,422,32767,32767,218,84,32767,177,32767,32767,32767,32767,32767,32767,401,32767,32767,179,32767,32767,421,32767,32767,32767,32767,32767,281,32767,32767,32767,32767,32767,421,32767,32767,32767,32767,222,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,82,60,32767,263,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,121,121,3,3,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,248,154,248,204,248,248,207,196,196,255],r.Parser.prototype.yygoto=[163,163,135,135,135,146,148,179,164,161,145,161,161,161,162,162,162,162,162,162,162,145,157,158,159,160,176,174,177,410,411,299,412,415,416,417,418,419,420,421,422,857,136,137,138,139,140,141,142,143,144,147,173,175,178,195,198,199,201,202,204,205,206,207,208,209,210,211,212,213,232,233,251,252,253,316,317,318,462,180,181,182,183,184,185,186,187,188,189,190,191,192,193,149,194,150,165,166,167,196,168,151,152,153,169,154,197,133,170,155,171,172,156,521,200,257,246,464,432,687,649,278,481,482,527,200,437,437,437,766,5,746,650,557,437,426,775,770,428,431,444,465,466,468,483,279,651,336,450,453,437,560,485,487,508,511,763,516,517,777,524,762,526,532,773,534,480,480,965,965,965,965,965,965,965,965,965,965,965,965,413,413,413,413,413,413,413,413,413,413,413,413,413,413,942,502,478,496,512,456,298,437,437,451,471,437,437,674,437,229,456,230,231,463,828,533,681,438,513,826,461,475,460,414,414,414,414,414,414,414,414,414,414,414,414,414,414,301,674,674,443,454,1033,1033,1034,1034,425,531,425,708,750,800,457,372,1033,943,1034,1026,300,1018,497,8,313,904,796,944,996,785,789,1007,285,670,1036,329,307,310,804,668,544,332,935,940,366,807,678,477,377,754,844,0,667,667,675,675,675,677,0,666,323,498,328,312,312,258,259,283,459,261,322,284,326,486,280,281,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,790,790,790,790,946,0,946,790,790,1004,790,1004,0,0,0,0,836,0,1015,1015,0,0,0,0,0,0,0,0,0,0,0,744,744,744,720,744,0,739,745,721,780,780,1023,0,0,1002,0,0,0,0,0,0,0,0,0,0,0,0,806,0,806,0,0,0,0,1008,1009],r.Parser.prototype.yygcheck=[23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,52,45,112,112,80,8,10,10,64,55,55,55,45,8,8,8,10,92,10,11,10,8,10,10,10,38,38,38,38,38,38,62,62,12,62,28,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,70,70,70,70,70,70,70,70,70,70,70,70,70,70,113,113,113,113,113,113,113,113,113,113,113,113,113,113,76,56,35,35,56,69,56,8,8,8,8,8,8,19,8,60,69,60,60,7,7,7,25,8,7,7,2,2,8,115,115,115,115,115,115,115,115,115,115,115,115,115,115,53,19,19,53,53,123,123,124,124,109,5,109,44,29,78,114,53,123,76,124,122,41,120,43,53,42,96,74,76,76,72,75,117,14,21,123,18,9,13,79,20,66,17,102,104,58,81,22,59,100,63,94,-1,19,19,19,19,19,19,-1,19,45,45,45,45,45,45,45,45,45,45,45,45,45,45,64,64,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,52,52,52,52,52,-1,52,52,52,80,52,80,-1,-1,-1,-1,92,-1,80,80,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,52,52,52,52,52,-1,52,52,52,69,69,69,-1,-1,80,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,80,-1,80,-1,-1,-1,-1,80,80],r.Parser.prototype.yygbase=[0,0,-317,0,0,237,0,210,-136,4,118,130,144,-10,16,0,0,-59,10,-47,-9,7,-77,-20,0,209,0,0,-388,234,0,0,0,0,0,165,0,0,103,0,0,225,44,45,235,84,0,0,0,0,0,0,109,-115,0,-113,-179,0,-78,-81,-347,0,-122,-80,-249,0,-19,0,0,169,-48,0,26,0,22,24,-99,0,230,-13,114,-79,0,0,0,0,0,0,0,0,0,0,120,0,-90,0,23,0,0,0,-89,0,-67,0,-69,0,0,0,0,8,0,0,-140,-34,229,9,0,21,0,0,218,0,233,-3,-1,0],r.Parser.prototype.yygdefault=[-32768,380,565,2,566,637,645,504,400,433,748,688,689,303,342,401,302,330,324,676,669,671,679,134,333,682,1,684,439,716,291,692,292,507,694,446,696,697,427,304,305,447,311,479,707,203,308,709,290,710,719,335,293,510,489,469,501,402,363,476,228,455,473,753,277,761,549,769,772,403,404,470,784,368,794,788,960,319,799,805,991,808,811,349,331,327,815,816,4,820,522,523,835,239,843,856,347,923,925,441,374,936,360,334,939,995,354,405,364,952,260,282,245,406,423,249,407,365,998,314,1019,424,1027,1035,275,474],r.Parser.prototype.yylhs=[0,1,3,3,2,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,7,7,8,8,9,4,4,4,4,4,4,4,4,4,4,4,14,14,15,15,15,15,17,17,13,13,18,18,19,19,20,20,21,21,16,16,22,24,24,25,26,26,28,27,27,27,27,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,10,10,48,48,51,51,50,49,49,42,42,53,53,54,54,11,12,12,12,57,57,57,58,58,61,61,59,59,62,62,36,36,44,44,47,47,47,46,46,63,37,37,37,37,64,64,65,65,66,66,34,34,30,30,67,32,32,68,31,31,33,33,43,43,43,43,55,55,71,71,72,72,74,74,75,75,75,73,73,56,56,76,76,77,77,78,78,78,39,39,79,40,40,81,81,60,60,82,82,82,82,87,87,88,88,89,89,89,89,89,90,91,91,86,86,83,83,85,85,93,93,92,92,92,92,92,92,84,84,94,94,41,41,35,35,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,101,95,95,100,100,103,103,104,105,105,105,109,109,52,52,52,96,96,107,107,97,97,99,99,99,102,102,113,113,70,115,115,115,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,38,38,111,111,111,106,106,106,116,116,116,116,116,116,45,45,45,80,80,80,118,110,110,110,110,110,110,108,108,108,117,117,117,117,69,119,119,120,120,120,120,120,114,121,121,122,122,122,122,122,112,112,112,112,124,123,123,123,123,123,123,123,125,125,125],r.Parser.prototype.yylen=[1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,3,5,4,3,4,2,3,1,1,7,8,6,7,3,1,3,1,3,1,1,3,1,2,1,2,3,1,3,3,1,3,2,0,1,1,1,1,1,3,7,10,5,7,9,5,3,3,3,3,3,3,1,2,5,7,9,5,6,3,3,2,2,1,1,1,0,2,1,3,8,0,4,1,3,0,1,0,1,10,7,6,5,1,2,2,0,2,0,2,0,2,1,3,1,4,1,4,1,1,4,1,3,3,3,4,4,5,0,2,4,3,1,1,1,4,0,2,5,0,2,6,0,2,0,3,1,2,1,1,1,0,1,3,4,6,1,2,1,1,1,0,1,0,2,2,3,1,3,1,2,2,3,1,1,3,1,1,3,2,0,3,4,9,3,1,3,0,2,4,5,4,4,4,3,1,1,1,3,1,1,0,1,1,2,1,1,1,1,1,1,1,3,1,3,3,1,0,1,1,3,3,3,4,1,2,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,5,4,3,4,4,2,2,4,2,2,2,2,2,2,2,2,2,2,2,1,3,2,1,2,4,2,10,11,7,3,2,0,4,1,3,2,2,2,4,1,1,1,2,3,1,1,1,1,0,3,0,1,1,0,1,1,3,3,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,3,3,0,1,1,3,1,1,3,1,1,4,4,4,1,4,1,1,3,1,4,2,3,1,4,4,3,3,3,1,3,1,1,3,1,1,4,3,1,1,1,3,3,0,1,3,1,3,1,4,2,0,2,2,1,2,1,1,4,3,3,3,6,3,1,1,1],t.PHP=r}),ace.define(\"ace/mode/php_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/php/php\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../worker/mirror\").Mirror,s=e(\"./php/php\").PHP,o=t.PhpWorker=function(e){i.call(this,e),this.setTimeout(500)};r.inherits(o,i),function(){this.setOptions=function(e){this.inlinePhp=e&&e.inline},this.onUpdate=function(){var e=this.doc.getValue(),t=[];this.inlinePhp&&(e=\"<?\"+e+\"?>\");var n=s.Lexer(e,{short_open_tag:1});try{new s.Parser(n)}catch(r){t.push({row:r.line-1,column:null,text:r.message.charAt(0).toUpperCase()+r.message.substring(1),type:\"error\"})}this.sender.emit(\"annotate\",t)}}.call(o.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,\"sentinel\",{}),\"sentinel\"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t===\"undefined\"||t===\"boolean\"||t===\"number\"||t===\"string\"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n==\"function\"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r==\"function\"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!=\"function\")throw new TypeError(\"Function.prototype.bind called on incompatible \"+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,\"__defineGetter__\"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,\"XXX\"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)==\"[object Array]\"});var m=Object(\"a\"),g=m[0]!=\"a\"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduce of empty array with no initial value\");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError(\"reduce of empty array with no initial value\")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduceRight of empty array with no initial value\");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError(\"reduceRight of empty array with no initial value\")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!=\"object\")throw new TypeError(\"typeof prototype[\"+typeof t+\"] != 'object'\");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document==\"undefined\"||w(document.createElement(\"div\"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T=\"Property description must be an object: \",N=\"Object.defineProperty called on non-object: \",C=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(t,n,r){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(N+t);if(typeof r!=\"object\"&&typeof r!=\"function\"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,\"value\"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,\"get\")&&l(t,n,r.get),f(r,\"set\")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n==\"function\"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n=\"\";while(f(t,n))n+=\"?\";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!=\"object\"&&typeof e!=\"function\"||e===null)throw new TypeError(\"Object.keys called on a non-object\");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=\"\t\\n\u000b\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\";if(!String.prototype.trim||_.trim()){_=\"[\"+_+\"]\";var D=new RegExp(\"^\"+_+_+\"*\"),P=new RegExp(_+_+\"*$\");String.prototype.trim=function(){return String(this).replace(D,\"\").replace(P,\"\")}}var F=function(e){if(e==null)throw new TypeError(\"can't convert \"+e+\" to object\");return Object(e)}})"
  },
  {
    "path": "lib/src-min-noconflict/worker-xml.js",
    "content": "\"no use strict\";(function(e){function t(e,t){var n=e,r=\"\";while(n){var i=t[n];if(typeof i==\"string\")return i+r;if(i)return i.location.replace(/\\/*$/,\"/\")+(r||i.main||i.name);if(i===!1)return\"\";var s=n.lastIndexOf(\"/\");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!=\"undefined\"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:\"error\",data:{message:e,data:i.data,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf(\"!\")!==-1){var r=n.split(\"!\");return e.normalizeModule(t,r[0])+\"!\"+e.normalizeModule(t,r[1])}if(n.charAt(0)==\".\"){var i=t.split(\"/\").slice(0,-1).join(\"/\");n=(i?i+\"/\":\"\")+n;while(n.indexOf(\".\")!==-1&&s!=n){var s=n;n=n.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log(\"unable to load \"+i);var o=t(i,e.require.tlns);return o.slice(-3)!=\".js\"&&(o+=\".js\"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!=\"string\"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!=\"function\"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=[\"require\",\"exports\",\"module\"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case\"require\":return i;case\"exports\":return e.exports;case\"module\":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},require.tlns={},e.initBaseUrls=function(t){for(var n in t)require.tlns[n]=t[n]},e.initSender=function(){var n=e.require(\"ace/lib/event_emitter\").EventEmitter,r=e.require(\"ace/lib/oop\"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:\"call\",id:t,data:e})},this.emit=function(e,t){postMessage({type:\"event\",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error(\"Unknown command:\"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),require(\"ace/lib/es5-shim\"),r=e.sender=e.initSender();var s=require(i.module)[i.classname];n=e.main=new s(r)}}})(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split(\"\").reverse().join(\"\")},t.stringRepeat=function(e,t){var n=\"\";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\\s\\s*/,i=/\\s\\s*$/;t.stringTrimLeft=function(e){return e.replace(r,\"\")},t.stringTrimRight=function(e){return e.replace(i,\"\")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]==\"object\"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!=\"object\"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}if(Object.prototype.toString.call(e)!==\"[object Object]\")return e;t={};for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},t.escapeHTML=function(e){return e.replace(/&/g,\"&#38;\").replace(/\"/g,\"&#34;\").replace(/'/g,\"&#39;\").replace(/</g,\"&#60;\")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e==\"object\"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e==\"object\"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e,t){throw console.log(\"Invalid Delta:\",e),\"Invalid Delta: \"+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!=\"insert\"&&t.action!=\"remove\"&&r(t,\"delta.action must be 'insert' or 'remove'\"),t.lines instanceof Array||r(t,\"delta.lines must be an Array\"),(!t.start||!t.end)&&r(t,\"delta.start/end must be an present\");var n=t.start;i(e,t.start)||r(t,\"delta.start must be contained in document\");var s=t.end;t.action==\"remove\"&&!i(e,s)&&r(t,\"delta.end must contained in document for 'remove' actions\");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,\"delta.range must match delta lines\")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||\"\";switch(t.action){case\"insert\":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case\"remove\":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!=\"object\"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?\"unshift\":\"push\"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n==\"undefined\"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action==\"insert\",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal(\"change\",{old:i,value:r})},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./apply_delta\").applyDelta,s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=function(e){this.$lines=[\"\"],e.length===0?this.$lines=[\"\"]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},\"aaa\".split(/a/).length===0?this.$split=function(e){return e.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:this.$split=function(e){return e.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=t?t[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal(\"changeNewLineMode\")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==\"\\r\\n\"||e==\"\\r\"||e==\"\\n\"},this.getLine=function(e){return this.$lines[e]||\"\"},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||\"\").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(e,[\"\",\"\"])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:\"insert\",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([\"\"]),n=0):(t=[\"\"].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:\"insert\",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:\"remove\",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:\"remove\",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:\"remove\",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action==\"insert\";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal(\"change\",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(\"\"),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action==\"insert\"?\"remove\":\"insert\",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),ace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=e(\"../document\").Document,s=e(\"../lib/lang\"),o=t.Mirror=function(e){this.sender=e;var t=this.doc=new i(\"\"),n=this.deferredUpdate=s.delayedCall(this.onUpdate.bind(this)),r=this;e.on(\"change\",function(e){var i=e.data;if(i[0].start)t.applyDeltas(i);else for(var s=0;s<i.length;s+=2){if(Array.isArray(i[s+1]))var o={action:\"insert\",start:i[s],lines:i[s+1]};else var o={action:\"remove\",start:i[s],end:i[s+1]};t.applyDelta(o,!0)}if(r.$timeout)return n.schedule(r.$timeout);r.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),ace.define(\"ace/mode/xml/sax\",[\"require\",\"exports\",\"module\"],function(e,t,n){function d(){}function v(e,t,n,r,i){function s(e){if(e>65535){e-=65536;var t=55296+(e>>10),n=56320+(e&1023);return String.fromCharCode(t,n)}return String.fromCharCode(e)}function o(e){var t=e.slice(1,-1);return t in n?n[t]:t.charAt(0)===\"#\"?s(parseInt(t.substr(1).replace(\"x\",\"0x\"))):(i.error(\"entity not found:\"+e),e)}function u(t){var n=e.substring(v,t).replace(/&#?\\w+;/g,o);h&&a(v),r.characters(n,0,t-v),v=t}function a(t,n){while(t>=l&&(n=c.exec(e)))f=n.index,l=f+n[0].length,h.lineNumber++;h.columnNumber=t-f+1}var f=0,l=0,c=/.+(?:\\r\\n?|\\n)|.*$/g,h=r.locator,p=[{currentNSMap:t}],d={},v=0;for(;;){var E=e.indexOf(\"<\",v);if(E<0){if(!e.substr(v).match(/^\\s*$/)){var N=r.document,C=N.createTextNode(e.substr(v));N.appendChild(C),r.currentElement=C}return}E>v&&u(E);switch(e.charAt(E+1)){case\"/\":var k=e.indexOf(\">\",E+3),L=e.substring(E+2,k),A;if(!(p.length>1)){i.fatalError(\"end tag name not found for: \"+L);break}A=p.pop();var O=A.localNSMap;A.tagName!=L&&i.fatalError(\"end tag name: \"+L+\" does not match the current start tagName: \"+A.tagName),r.endElement(A.uri,A.localName,L);if(O)for(var M in O)r.endPrefixMapping(M);k++;break;case\"?\":h&&a(E),k=x(e,E,r);break;case\"!\":h&&a(E),k=S(e,E,r,i);break;default:try{h&&a(E);var _=new T,k=g(e,E,_,o,i),D=_.length;if(D&&h){var P=m(h,{});for(var E=0;E<D;E++){var H=_[E];a(H.offset),H.offset=m(h,{})}m(P,h)}!_.closed&&w(e,k,_.tagName,d)&&(_.closed=!0,n.nbsp||i.warning(\"unclosed xml attribute\")),y(_,r,p),_.uri===\"http://www.w3.org/1999/xhtml\"&&!_.closed?k=b(e,k,_.tagName,o,r):k++}catch(B){i.error(\"element parse error: \"+B),k=-1}}k<0?u(E+1):v=k}}function m(e,t){return t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber,t}function g(e,t,n,r,i){var s,d,v=++t,m=o;for(;;){var g=e.charAt(v);switch(g){case\"=\":if(m===u)s=e.slice(t,v),m=f;else{if(m!==a)throw new Error(\"attribute equal must after attrName\");m=f}break;case\"'\":case'\"':if(m===f){t=v+1,v=e.indexOf(g,t);if(!(v>0))throw new Error(\"attribute value no end '\"+g+\"' match\");d=e.slice(t,v).replace(/&#?\\w+;/g,r),n.add(s,d,t-1),m=c}else{if(m!=l)throw new Error('attribute value must after \"=\"');d=e.slice(t,v).replace(/&#?\\w+;/g,r),n.add(s,d,t),i.warning('attribute \"'+s+'\" missed start quot('+g+\")!!\"),t=v+1,m=c}break;case\"/\":switch(m){case o:n.setTagName(e.slice(t,v));case c:case h:case p:m=p,n.closed=!0;case l:case u:case a:break;default:throw new Error(\"attribute invalid close char('/')\")}break;case\"\":i.error(\"unexpected end of input\");case\">\":switch(m){case o:n.setTagName(e.slice(t,v));case c:case h:case p:break;case l:case u:d=e.slice(t,v),d.slice(-1)===\"/\"&&(n.closed=!0,d=d.slice(0,-1));case a:m===a&&(d=s),m==l?(i.warning('attribute \"'+d+'\" missed quot(\")!!'),n.add(s,d.replace(/&#?\\w+;/g,r),t)):(i.warning('attribute \"'+d+'\" missed value!! \"'+d+'\" instead!!'),n.add(d,d,t));break;case f:throw new Error(\"attribute value missed!!\")}return v;case\"\\u0080\":g=\" \";default:if(g<=\" \")switch(m){case o:n.setTagName(e.slice(t,v)),m=h;break;case u:s=e.slice(t,v),m=a;break;case l:var d=e.slice(t,v).replace(/&#?\\w+;/g,r);i.warning('attribute \"'+d+'\" missed quot(\")!!'),n.add(s,d,t);case c:m=h}else switch(m){case a:i.warning('attribute \"'+s+'\" missed value!! \"'+s+'\" instead!!'),n.add(s,s,t),t=v,m=u;break;case c:i.warning('attribute space is required\"'+s+'\"!!');case h:m=u,t=v;break;case f:m=l,t=v;break;case p:throw new Error(\"elements closed character '/' and '>' must be connected to\")}}v++}}function y(e,t,n){var r=e.tagName,i=null,s=n[n.length-1].currentNSMap,o=e.length;while(o--){var u=e[o],a=u.qName,f=u.value,l=a.indexOf(\":\");if(l>0)var c=u.prefix=a.slice(0,l),h=a.slice(l+1),p=c===\"xmlns\"&&h;else h=a,c=null,p=a===\"xmlns\"&&\"\";u.localName=h,p!==!1&&(i==null&&(i={},E(s,s={})),s[p]=i[p]=f,u.uri=\"http://www.w3.org/2000/xmlns/\",t.startPrefixMapping(p,f))}var o=e.length;while(o--){u=e[o];var c=u.prefix;c&&(c===\"xml\"&&(u.uri=\"http://www.w3.org/XML/1998/namespace\"),c!==\"xmlns\"&&(u.uri=s[c]))}var l=r.indexOf(\":\");l>0?(c=e.prefix=r.slice(0,l),h=e.localName=r.slice(l+1)):(c=null,h=e.localName=r);var d=e.uri=s[c||\"\"];t.startElement(d,h,r,e);if(e.closed){t.endElement(d,h,r);if(i)for(c in i)t.endPrefixMapping(c)}else e.currentNSMap=s,e.localNSMap=i,n.push(e)}function b(e,t,n,r,i){if(/^(?:script|textarea)$/i.test(n)){var s=e.indexOf(\"</\"+n+\">\",t),o=e.substring(t+1,s);if(/[&<]/.test(o))return/^script$/i.test(n)?(i.characters(o,0,o.length),s):(o=o.replace(/&#?\\w+;/g,r),i.characters(o,0,o.length),s)}return t+1}function w(e,t,n,r){var i=r[n];return i==null&&(i=r[n]=e.lastIndexOf(\"</\"+n+\">\")),i<t}function E(e,t){for(var n in e)t[n]=e[n]}function S(e,t,n,r){var i=e.charAt(t+2);switch(i){case\"-\":if(e.charAt(t+3)===\"-\"){var s=e.indexOf(\"-->\",t+4);return s>t?(n.comment(e,t+4,s-t-4),s+3):(r.error(\"Unclosed comment\"),-1)}return-1;default:if(e.substr(t+3,6)==\"CDATA[\"){var s=e.indexOf(\"]]>\",t+9);return n.startCDATA(),n.characters(e,t+9,s-t-9),n.endCDATA(),s+3}var o=C(e,t),u=o.length;if(u>1&&/!doctype/i.test(o[0][0])){var a=o[1][0],f=u>3&&/^public$/i.test(o[2][0])&&o[3][0],l=u>4&&o[4][0],c=o[u-1];return n.startDTD(a,f&&f.replace(/^(['\"])(.*?)\\1$/,\"$2\"),l&&l.replace(/^(['\"])(.*?)\\1$/,\"$2\")),n.endDTD(),c.index+c[0].length}}return-1}function x(e,t,n){var r=e.indexOf(\"?>\",t);if(r){var i=e.substring(t,r).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)\\s*$/);if(i){var s=i[0].length;return n.processingInstruction(i[1],i[2]),r+2}return-1}return-1}function T(e){}function N(e,t){return e.__proto__=t,e}function C(e,t){var n,r=[],i=/'[^']+'|\"[^\"]+\"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;i.lastIndex=t,i.exec(e);while(n=i.exec(e)){r.push(n);if(n[1])return r}}var r=/[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/,i=new RegExp(\"[\\\\-\\\\.0-9\"+r.source.slice(1,-1)+\"\\u00b7\\u0300-\\u036f\\\\ux203F-\\u2040]\"),s=new RegExp(\"^\"+r.source+i.source+\"*(?::\"+r.source+i.source+\"*)?$\"),o=0,u=1,a=2,f=3,l=4,c=5,h=6,p=7;return d.prototype={parse:function(e,t,n){var r=this.domBuilder;r.startDocument(),E(t,t={}),v(e,t,n,r,this.errorHandler),r.endDocument()}},T.prototype={setTagName:function(e){if(!s.test(e))throw new Error(\"invalid tagName:\"+e);this.tagName=e},add:function(e,t,n){if(!s.test(e))throw new Error(\"invalid attribute:\"+e);this[this.length++]={qName:e,value:t,offset:n}},length:0,getLocalName:function(e){return this[e].localName},getOffset:function(e){return this[e].offset},getQName:function(e){return this[e].qName},getURI:function(e){return this[e].uri},getValue:function(e){return this[e].value}},N({},N.prototype)instanceof N||(N=function(e,t){function n(){}n.prototype=t,n=new n;for(t in e)n[t]=e[t];return n}),d}),ace.define(\"ace/mode/xml/dom\",[\"require\",\"exports\",\"module\"],function(e,t,n){function r(e,t){for(var n in e)t[n]=e[n]}function i(e,t){var n=e.prototype;if(Object.create){var i=Object.create(t.prototype);n.__proto__=i}if(!(n instanceof t)){function s(){}s.prototype=t.prototype,s=new s,r(n,s),e.prototype=n=s}n.constructor!=e&&(typeof e!=\"function\"&&console.error(\"unknow Class:\"+e),n.constructor=e)}function B(e,t){if(t instanceof Error)var n=t;else n=this,Error.call(this,w[e]),this.message=w[e],Error.captureStackTrace&&Error.captureStackTrace(this,B);return n.code=e,t&&(this.message=this.message+\": \"+t),n}function j(){}function F(e,t){this._node=e,this._refresh=t,I(this)}function I(e){var t=e._node._inc||e._node.ownerDocument._inc;if(e._inc!=t){var n=e._refresh(e._node);gt(e,\"length\",n.length),r(n,e),e._inc=t}}function q(){}function R(e,t){var n=e.length;while(n--)if(e[n]===t)return n}function U(e,t,n,r){r?t[R(t,r)]=n:t[t.length++]=n;if(e){n.ownerElement=e;var i=e.ownerDocument;i&&(r&&Q(i,e,r),K(i,e,n))}}function z(e,t,n){var r=R(t,n);if(!(r>=0))throw B(L,new Error);var i=t.length-1;while(r<i)t[r]=t[++r];t.length=i;if(e){var s=e.ownerDocument;s&&(Q(s,e,n),n.ownerElement=null)}}function W(e){this._features={};if(e)for(var t in e)this._features=e[t]}function X(){}function V(e){return e==\"<\"&&\"&lt;\"||e==\">\"&&\"&gt;\"||e==\"&\"&&\"&amp;\"||e=='\"'&&\"&quot;\"||\"&#\"+e.charCodeAt()+\";\"}function $(e,t){if(t(e))return!0;if(e=e.firstChild)do if($(e,t))return!0;while(e=e.nextSibling)}function J(){}function K(e,t,n){e&&e._inc++;var r=n.namespaceURI;r==\"http://www.w3.org/2000/xmlns/\"&&(t._nsMap[n.prefix?n.localName:\"\"]=n.value)}function Q(e,t,n,r){e&&e._inc++;var i=n.namespaceURI;i==\"http://www.w3.org/2000/xmlns/\"&&delete t._nsMap[n.prefix?n.localName:\"\"]}function G(e,t,n){if(e&&e._inc){e._inc++;var r=t.childNodes;if(n)r[r.length++]=n;else{var i=t.firstChild,s=0;while(i)r[s++]=i,i=i.nextSibling;r.length=s}}}function Y(e,t){var n=t.previousSibling,r=t.nextSibling;return n?n.nextSibling=r:e.firstChild=r,r?r.previousSibling=n:e.lastChild=n,G(e.ownerDocument,e),t}function Z(e,t,n){var r=t.parentNode;r&&r.removeChild(t);if(t.nodeType===g){var i=t.firstChild;if(i==null)return t;var s=t.lastChild}else i=s=t;var o=n?n.previousSibling:e.lastChild;i.previousSibling=o,s.nextSibling=n,o?o.nextSibling=i:e.firstChild=i,n==null?e.lastChild=s:n.previousSibling=s;do i.parentNode=e;while(i!==s&&(i=i.nextSibling));return G(e.ownerDocument||e,e),t.nodeType==g&&(t.firstChild=t.lastChild=null),t}function et(e,t){var n=t.parentNode;if(n){var r=e.lastChild;n.removeChild(t);var r=e.lastChild}var r=e.lastChild;return t.parentNode=e,t.previousSibling=r,t.nextSibling=null,r?r.nextSibling=t:e.firstChild=t,e.lastChild=t,G(e.ownerDocument,e,t),t}function tt(){this._nsMap={}}function nt(){}function rt(){}function it(){}function st(){}function ot(){}function ut(){}function at(){}function ft(){}function lt(){}function ct(){}function ht(){}function pt(){}function dt(e,t){switch(e.nodeType){case u:var n=e.attributes,r=n.length,i=e.firstChild,o=e.tagName,h=s===e.namespaceURI;t.push(\"<\",o);for(var y=0;y<r;y++)dt(n.item(y),t,h);if(i||h&&!/^(?:meta|link|img|br|hr|input|button)$/i.test(o)){t.push(\">\");if(h&&/^script$/i.test(o))i&&t.push(i.data);else while(i)dt(i,t),i=i.nextSibling;t.push(\"</\",o,\">\")}else t.push(\"/>\");return;case v:case g:var i=e.firstChild;while(i)dt(i,t),i=i.nextSibling;return;case a:return t.push(\" \",e.name,'=\"',e.value.replace(/[<&\"]/g,V),'\"');case f:return t.push(e.data.replace(/[<&]/g,V));case l:return t.push(\"<![CDATA[\",e.data,\"]]>\");case d:return t.push(\"<!--\",e.data,\"-->\");case m:var b=e.publicId,w=e.systemId;t.push(\"<!DOCTYPE \",e.name);if(b)t.push(' PUBLIC \"',b),w&&w!=\".\"&&t.push('\" \"',w),t.push('\">');else if(w&&w!=\".\")t.push(' SYSTEM \"',w,'\">');else{var E=e.internalSubset;E&&t.push(\" [\",E,\"]\"),t.push(\">\")}return;case p:return t.push(\"<?\",e.target,\" \",e.data,\"?>\");case c:return t.push(\"&\",e.nodeName,\";\");default:t.push(\"??\",e.nodeName)}}function vt(e,t,n){var r;switch(t.nodeType){case u:r=t.cloneNode(!1),r.ownerDocument=e;case g:break;case a:n=!0}r||(r=t.cloneNode(!1)),r.ownerDocument=e,r.parentNode=null;if(n){var i=t.firstChild;while(i)r.appendChild(vt(e,i,n)),i=i.nextSibling}return r}function mt(e,t,n){var r=new t.constructor;for(var i in t){var s=t[i];typeof s!=\"object\"&&s!=r[i]&&(r[i]=s)}t.childNodes&&(r.childNodes=new j),r.ownerDocument=e;switch(r.nodeType){case u:var o=t.attributes,f=r.attributes=new q,l=o.length;f._ownerElement=r;for(var c=0;c<l;c++)r.setAttributeNode(mt(e,o.item(c),!0));break;case a:n=!0}if(n){var h=t.firstChild;while(h)r.appendChild(mt(e,h,n)),h=h.nextSibling}return r}function gt(e,t,n){e[t]=n}var s=\"http://www.w3.org/1999/xhtml\",o={},u=o.ELEMENT_NODE=1,a=o.ATTRIBUTE_NODE=2,f=o.TEXT_NODE=3,l=o.CDATA_SECTION_NODE=4,c=o.ENTITY_REFERENCE_NODE=5,h=o.ENTITY_NODE=6,p=o.PROCESSING_INSTRUCTION_NODE=7,d=o.COMMENT_NODE=8,v=o.DOCUMENT_NODE=9,m=o.DOCUMENT_TYPE_NODE=10,g=o.DOCUMENT_FRAGMENT_NODE=11,y=o.NOTATION_NODE=12,b={},w={},E=b.INDEX_SIZE_ERR=(w[1]=\"Index size error\",1),S=b.DOMSTRING_SIZE_ERR=(w[2]=\"DOMString size error\",2),x=b.HIERARCHY_REQUEST_ERR=(w[3]=\"Hierarchy request error\",3),T=b.WRONG_DOCUMENT_ERR=(w[4]=\"Wrong document\",4),N=b.INVALID_CHARACTER_ERR=(w[5]=\"Invalid character\",5),C=b.NO_DATA_ALLOWED_ERR=(w[6]=\"No data allowed\",6),k=b.NO_MODIFICATION_ALLOWED_ERR=(w[7]=\"No modification allowed\",7),L=b.NOT_FOUND_ERR=(w[8]=\"Not found\",8),A=b.NOT_SUPPORTED_ERR=(w[9]=\"Not supported\",9),O=b.INUSE_ATTRIBUTE_ERR=(w[10]=\"Attribute in use\",10),M=b.INVALID_STATE_ERR=(w[11]=\"Invalid state\",11),_=b.SYNTAX_ERR=(w[12]=\"Syntax error\",12),D=b.INVALID_MODIFICATION_ERR=(w[13]=\"Invalid modification\",13),P=b.NAMESPACE_ERR=(w[14]=\"Invalid namespace\",14),H=b.INVALID_ACCESS_ERR=(w[15]=\"Invalid access\",15);B.prototype=Error.prototype,r(b,B),j.prototype={length:0,item:function(e){return this[e]||null}},F.prototype.item=function(e){return I(this),this[e]},i(F,j),q.prototype={length:0,item:j.prototype.item,getNamedItem:function(e){var t=this.length;while(t--){var n=this[t];if(n.nodeName==e)return n}},setNamedItem:function(e){var t=e.ownerElement;if(t&&t!=this._ownerElement)throw new B(O);var n=this.getNamedItem(e.nodeName);return U(this._ownerElement,this,e,n),n},setNamedItemNS:function(e){var t=e.ownerElement,n;if(t&&t!=this._ownerElement)throw new B(O);return n=this.getNamedItemNS(e.namespaceURI,e.localName),U(this._ownerElement,this,e,n),n},removeNamedItem:function(e){var t=this.getNamedItem(e);return z(this._ownerElement,this,t),t},removeNamedItemNS:function(e,t){var n=this.getNamedItemNS(e,t);return z(this._ownerElement,this,n),n},getNamedItemNS:function(e,t){var n=this.length;while(n--){var r=this[n];if(r.localName==t&&r.namespaceURI==e)return r}return null}},W.prototype={hasFeature:function(e,t){var n=this._features[e.toLowerCase()];return n&&(!t||t in n)?!0:!1},createDocument:function(e,t,n){var r=new J;r.implementation=this,r.childNodes=new j,r.doctype=n,n&&r.appendChild(n);if(t){var i=r.createElementNS(e,t);r.appendChild(i)}return r},createDocumentType:function(e,t,n){var r=new ut;return r.name=e,r.nodeName=e,r.publicId=t,r.systemId=n,r}},X.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,attributes:null,parentNode:null,childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,insertBefore:function(e,t){return Z(this,e,t)},replaceChild:function(e,t){this.insertBefore(e,t),t&&this.removeChild(t)},removeChild:function(e){return Y(this,e)},appendChild:function(e){return this.insertBefore(e,null)},hasChildNodes:function(){return this.firstChild!=null},cloneNode:function(e){return mt(this.ownerDocument||this,this,e)},normalize:function(){var e=this.firstChild;while(e){var t=e.nextSibling;t&&t.nodeType==f&&e.nodeType==f?(this.removeChild(t),e.appendData(t.data)):(e.normalize(),e=t)}},isSupported:function(e,t){return this.ownerDocument.implementation.hasFeature(e,t)},hasAttributes:function(){return this.attributes.length>0},lookupPrefix:function(e){var t=this;while(t){var n=t._nsMap;if(n)for(var r in n)if(n[r]==e)return r;t=t.nodeType==2?t.ownerDocument:t.parentNode}return null},lookupNamespaceURI:function(e){var t=this;while(t){var n=t._nsMap;if(n&&e in n)return n[e];t=t.nodeType==2?t.ownerDocument:t.parentNode}return null},isDefaultNamespace:function(e){var t=this.lookupPrefix(e);return t==null}},r(o,X),r(o,X.prototype),J.prototype={nodeName:\"#document\",nodeType:v,doctype:null,documentElement:null,_inc:1,insertBefore:function(e,t){if(e.nodeType==g){var n=e.firstChild;while(n){var r=n.nextSibling;this.insertBefore(n,t),n=r}return e}return this.documentElement==null&&e.nodeType==1&&(this.documentElement=e),Z(this,e,t),e.ownerDocument=this,e},removeChild:function(e){return this.documentElement==e&&(this.documentElement=null),Y(this,e)},importNode:function(e,t){return vt(this,e,t)},getElementById:function(e){var t=null;return $(this.documentElement,function(n){if(n.nodeType==1&&n.getAttribute(\"id\")==e)return t=n,!0}),t},createElement:function(e){var t=new tt;t.ownerDocument=this,t.nodeName=e,t.tagName=e,t.childNodes=new j;var n=t.attributes=new q;return n._ownerElement=t,t},createDocumentFragment:function(){var e=new ct;return e.ownerDocument=this,e.childNodes=new j,e},createTextNode:function(e){var t=new it;return t.ownerDocument=this,t.appendData(e),t},createComment:function(e){var t=new st;return t.ownerDocument=this,t.appendData(e),t},createCDATASection:function(e){var t=new ot;return t.ownerDocument=this,t.appendData(e),t},createProcessingInstruction:function(e,t){var n=new ht;return n.ownerDocument=this,n.tagName=n.target=e,n.nodeValue=n.data=t,n},createAttribute:function(e){var t=new nt;return t.ownerDocument=this,t.name=e,t.nodeName=e,t.localName=e,t.specified=!0,t},createEntityReference:function(e){var t=new lt;return t.ownerDocument=this,t.nodeName=e,t},createElementNS:function(e,t){var n=new tt,r=t.split(\":\"),i=n.attributes=new q;return n.childNodes=new j,n.ownerDocument=this,n.nodeName=t,n.tagName=t,n.namespaceURI=e,r.length==2?(n.prefix=r[0],n.localName=r[1]):n.localName=t,i._ownerElement=n,n},createAttributeNS:function(e,t){var n=new nt,r=t.split(\":\");return n.ownerDocument=this,n.nodeName=t,n.name=t,n.namespaceURI=e,n.specified=!0,r.length==2?(n.prefix=r[0],n.localName=r[1]):n.localName=t,n}},i(J,X),tt.prototype={nodeType:u,hasAttribute:function(e){return this.getAttributeNode(e)!=null},getAttribute:function(e){var t=this.getAttributeNode(e);return t&&t.value||\"\"},getAttributeNode:function(e){return this.attributes.getNamedItem(e)},setAttribute:function(e,t){var n=this.ownerDocument.createAttribute(e);n.value=n.nodeValue=\"\"+t,this.setAttributeNode(n)},removeAttribute:function(e){var t=this.getAttributeNode(e);t&&this.removeAttributeNode(t)},appendChild:function(e){return e.nodeType===g?this.insertBefore(e,null):et(this,e)},setAttributeNode:function(e){return this.attributes.setNamedItem(e)},setAttributeNodeNS:function(e){return this.attributes.setNamedItemNS(e)},removeAttributeNode:function(e){return this.attributes.removeNamedItem(e.nodeName)},removeAttributeNS:function(e,t){var n=this.getAttributeNodeNS(e,t);n&&this.removeAttributeNode(n)},hasAttributeNS:function(e,t){return this.getAttributeNodeNS(e,t)!=null},getAttributeNS:function(e,t){var n=this.getAttributeNodeNS(e,t);return n&&n.value||\"\"},setAttributeNS:function(e,t,n){var r=this.ownerDocument.createAttributeNS(e,t);r.value=r.nodeValue=\"\"+n,this.setAttributeNode(r)},getAttributeNodeNS:function(e,t){return this.attributes.getNamedItemNS(e,t)},getElementsByTagName:function(e){return new F(this,function(t){var n=[];return $(t,function(r){r!==t&&r.nodeType==u&&(e===\"*\"||r.tagName==e)&&n.push(r)}),n})},getElementsByTagNameNS:function(e,t){return new F(this,function(n){var r=[];return $(n,function(i){i!==n&&i.nodeType===u&&(e===\"*\"||i.namespaceURI===e)&&(t===\"*\"||i.localName==t)&&r.push(i)}),r})}},J.prototype.getElementsByTagName=tt.prototype.getElementsByTagName,J.prototype.getElementsByTagNameNS=tt.prototype.getElementsByTagNameNS,i(tt,X),nt.prototype.nodeType=a,i(nt,X),rt.prototype={data:\"\",substringData:function(e,t){return this.data.substring(e,e+t)},appendData:function(e){e=this.data+e,this.nodeValue=this.data=e,this.length=e.length},insertData:function(e,t){this.replaceData(e,0,t)},appendChild:function(e){throw new Error(w[3])},deleteData:function(e,t){this.replaceData(e,t,\"\")},replaceData:function(e,t,n){var r=this.data.substring(0,e),i=this.data.substring(e+t);n=r+n+i,this.nodeValue=this.data=n,this.length=n.length}},i(rt,X),it.prototype={nodeName:\"#text\",nodeType:f,splitText:function(e){var t=this.data,n=t.substring(e);t=t.substring(0,e),this.data=this.nodeValue=t,this.length=t.length;var r=this.ownerDocument.createTextNode(n);return this.parentNode&&this.parentNode.insertBefore(r,this.nextSibling),r}},i(it,rt),st.prototype={nodeName:\"#comment\",nodeType:d},i(st,rt),ot.prototype={nodeName:\"#cdata-section\",nodeType:l},i(ot,rt),ut.prototype.nodeType=m,i(ut,X),at.prototype.nodeType=y,i(at,X),ft.prototype.nodeType=h,i(ft,X),lt.prototype.nodeType=c,i(lt,X),ct.prototype.nodeName=\"#document-fragment\",ct.prototype.nodeType=g,i(ct,X),ht.prototype.nodeType=p,i(ht,X),pt.prototype.serializeToString=function(e){var t=[];return dt(e,t),t.join(\"\")},X.prototype.toString=function(){return pt.prototype.serializeToString(this)};try{if(Object.defineProperty){Object.defineProperty(F.prototype,\"length\",{get:function(){return I(this),this.$$length}}),Object.defineProperty(X.prototype,\"textContent\",{get:function(){return yt(this)},set:function(e){switch(this.nodeType){case 1:case 11:while(this.firstChild)this.removeChild(this.firstChild);(e||String(e))&&this.appendChild(this.ownerDocument.createTextNode(e));break;default:this.data=e,this.value=value,this.nodeValue=e}}});function yt(e){switch(e.nodeType){case 1:case 11:var t=[];e=e.firstChild;while(e)e.nodeType!==7&&e.nodeType!==8&&t.push(yt(e)),e=e.nextSibling;return t.join(\"\");default:return e.nodeValue}}gt=function(e,t,n){e[\"$$\"+t]=n}}}catch(bt){}return W}),ace.define(\"ace/mode/xml/dom-parser\",[\"require\",\"exports\",\"module\",\"ace/mode/xml/sax\",\"ace/mode/xml/dom\"],function(e,t,n){\"use strict\";function s(e){this.options=e||{locator:{}}}function o(e,t,n){function s(t){var s=e[t];if(!s)if(i)s=e.length==2?function(n){e(t,n)}:e;else{var o=arguments.length;while(--o)if(s=e[arguments[o]])break}r[t]=s&&function(e){s(e+f(n),e,n)}||function(){}}if(!e){if(t instanceof u)return t;e=t}var r={},i=e instanceof Function;return n=n||{},s(\"warning\",\"warn\"),s(\"error\",\"warn\",\"warning\"),s(\"fatalError\",\"warn\",\"warning\",\"error\"),r}function u(){this.cdata=!1}function a(e,t){t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber}function f(e){if(e)return\"\\n@\"+(e.systemId||\"\")+\"#[line:\"+e.lineNumber+\",col:\"+e.columnNumber+\"]\"}function l(e,t,n){return typeof e==\"string\"?e.substr(t,n):e.length>=t+n||t?new java.lang.String(e,t,n)+\"\":e}function c(e,t){e.currentElement?e.currentElement.appendChild(t):e.document.appendChild(t)}var r=e(\"./sax\"),i=e(\"./dom\");return s.prototype.parseFromString=function(e,t){var n=this.options,i=new r,s=n.domBuilder||new u,a=n.errorHandler,f=n.locator,l=n.xmlns||{},c={lt:\"<\",gt:\">\",amp:\"&\",quot:'\"',apos:\"'\"};return f&&s.setDocumentLocator(f),i.errorHandler=o(a,s,f),i.domBuilder=n.domBuilder||s,/\\/x?html?$/.test(t)&&(c.nbsp=\"\\u00a0\",c.copy=\"\\u00a9\",l[\"\"]=\"http://www.w3.org/1999/xhtml\"),e?i.parse(e,l,c):i.errorHandler.error(\"invalid document source\"),s.document},u.prototype={startDocument:function(){this.document=(new i).createDocument(null,null,null),this.locator&&(this.document.documentURI=this.locator.systemId)},startElement:function(e,t,n,r){var i=this.document,s=i.createElementNS(e,n||t),o=r.length;c(this,s),this.currentElement=s,this.locator&&a(this.locator,s);for(var u=0;u<o;u++){var e=r.getURI(u),f=r.getValue(u),n=r.getQName(u),l=i.createAttributeNS(e,n);l.getOffset&&a(l.getOffset(1),l),l.value=l.nodeValue=f,s.setAttributeNode(l)}},endElement:function(e,t,n){var r=this.currentElement,i=r.tagName;this.currentElement=r.parentNode},startPrefixMapping:function(e,t){},endPrefixMapping:function(e){},processingInstruction:function(e,t){var n=this.document.createProcessingInstruction(e,t);this.locator&&a(this.locator,n),c(this,n)},ignorableWhitespace:function(e,t,n){},characters:function(e,t,n){e=l.apply(this,arguments);if(this.currentElement&&e){if(this.cdata){var r=this.document.createCDATASection(e);this.currentElement.appendChild(r)}else{var r=this.document.createTextNode(e);this.currentElement.appendChild(r)}this.locator&&a(this.locator,r)}},skippedEntity:function(e){},endDocument:function(){this.document.normalize()},setDocumentLocator:function(e){if(this.locator=e)e.lineNumber=0},comment:function(e,t,n){e=l.apply(this,arguments);var r=this.document.createComment(e);this.locator&&a(this.locator,r),c(this,r)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(e,t,n){var r=this.document.implementation;if(r&&r.createDocumentType){var i=r.createDocumentType(e,t,n);this.locator&&a(this.locator,i),c(this,i)}},warning:function(e){console.warn(e,f(this.locator))},error:function(e){console.error(e,f(this.locator))},fatalError:function(e){throw console.error(e,f(this.locator)),e}},\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,function(e){u.prototype[e]=function(){return null}}),{DOMParser:s}}),ace.define(\"ace/mode/xml_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/worker/mirror\",\"ace/mode/xml/dom-parser\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"../worker/mirror\").Mirror,o=e(\"./xml/dom-parser\").DOMParser,u=t.Worker=function(e){s.call(this,e),this.setTimeout(400),this.context=null};r.inherits(u,s),function(){this.setOptions=function(e){this.context=e.context},this.onUpdate=function(){var e=this.doc.getValue();if(!e)return;var t=new o,n=[];t.options.errorHandler={fatalError:function(e,t,r){n.push({row:r.lineNumber,column:r.columnNumber,text:t,type:\"error\"})},error:function(e,t,r){n.push({row:r.lineNumber,column:r.columnNumber,text:t,type:\"error\"})},warning:function(e,t,r){n.push({row:r.lineNumber,column:r.columnNumber,text:t,type:\"warning\"})}},t.parseFromString(e),this.sender.emit(\"error\",n)}}.call(u.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,\"sentinel\",{}),\"sentinel\"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t===\"undefined\"||t===\"boolean\"||t===\"number\"||t===\"string\"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n==\"function\"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r==\"function\"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!=\"function\")throw new TypeError(\"Function.prototype.bind called on incompatible \"+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,\"__defineGetter__\"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,\"XXX\"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)==\"[object Array]\"});var m=Object(\"a\"),g=m[0]!=\"a\"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduce of empty array with no initial value\");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError(\"reduce of empty array with no initial value\")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduceRight of empty array with no initial value\");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError(\"reduceRight of empty array with no initial value\")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!=\"object\")throw new TypeError(\"typeof prototype[\"+typeof t+\"] != 'object'\");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document==\"undefined\"||w(document.createElement(\"div\"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T=\"Property description must be an object: \",N=\"Object.defineProperty called on non-object: \",C=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(t,n,r){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(N+t);if(typeof r!=\"object\"&&typeof r!=\"function\"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,\"value\"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,\"get\")&&l(t,n,r.get),f(r,\"set\")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n==\"function\"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n=\"\";while(f(t,n))n+=\"?\";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!=\"object\"&&typeof e!=\"function\"||e===null)throw new TypeError(\"Object.keys called on a non-object\");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=\"\t\\n\u000b\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\";if(!String.prototype.trim||_.trim()){_=\"[\"+_+\"]\";var D=new RegExp(\"^\"+_+_+\"*\"),P=new RegExp(_+_+\"*$\");String.prototype.trim=function(){return String(this).replace(D,\"\").replace(P,\"\")}}var F=function(e){if(e==null)throw new TypeError(\"can't convert \"+e+\" to object\");return Object(e)}})"
  },
  {
    "path": "lib/src-min-noconflict/worker-xquery.js",
    "content": "\"no use strict\";(function(e){function t(e,t){var n=e,r=\"\";while(n){var i=t[n];if(typeof i==\"string\")return i+r;if(i)return i.location.replace(/\\/*$/,\"/\")+(r||i.main||i.name);if(i===!1)return\"\";var s=n.lastIndexOf(\"/\");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!=\"undefined\"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:\"error\",data:{message:e,data:i.data,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf(\"!\")!==-1){var r=n.split(\"!\");return e.normalizeModule(t,r[0])+\"!\"+e.normalizeModule(t,r[1])}if(n.charAt(0)==\".\"){var i=t.split(\"/\").slice(0,-1).join(\"/\");n=(i?i+\"/\":\"\")+n;while(n.indexOf(\".\")!==-1&&s!=n){var s=n;n=n.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log(\"unable to load \"+i);var o=t(i,e.require.tlns);return o.slice(-3)!=\".js\"&&(o+=\".js\"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!=\"string\"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!=\"function\"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=[\"require\",\"exports\",\"module\"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case\"require\":return i;case\"exports\":return e.exports;case\"module\":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},require.tlns={},e.initBaseUrls=function(t){for(var n in t)require.tlns[n]=t[n]},e.initSender=function(){var n=e.require(\"ace/lib/event_emitter\").EventEmitter,r=e.require(\"ace/lib/oop\"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:\"call\",id:t,data:e})},this.emit=function(e,t){postMessage({type:\"event\",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error(\"Unknown command:\"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),require(\"ace/lib/es5-shim\"),r=e.sender=e.initSender();var s=require(i.module)[i.classname];n=e.main=new s(r)}}})(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e==\"object\"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e==\"object\"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e,t){throw console.log(\"Invalid Delta:\",e),\"Invalid Delta: \"+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!=\"insert\"&&t.action!=\"remove\"&&r(t,\"delta.action must be 'insert' or 'remove'\"),t.lines instanceof Array||r(t,\"delta.lines must be an Array\"),(!t.start||!t.end)&&r(t,\"delta.start/end must be an present\");var n=t.start;i(e,t.start)||r(t,\"delta.start must be contained in document\");var s=t.end;t.action==\"remove\"&&!i(e,s)&&r(t,\"delta.end must contained in document for 'remove' actions\");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,\"delta.range must match delta lines\")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||\"\";switch(t.action){case\"insert\":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case\"remove\":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!=\"object\"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?\"unshift\":\"push\"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n==\"undefined\"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action==\"insert\",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal(\"change\",{old:i,value:r})},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./apply_delta\").applyDelta,s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=function(e){this.$lines=[\"\"],e.length===0?this.$lines=[\"\"]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},\"aaa\".split(/a/).length===0?this.$split=function(e){return e.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:this.$split=function(e){return e.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=t?t[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal(\"changeNewLineMode\")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==\"\\r\\n\"||e==\"\\r\"||e==\"\\n\"},this.getLine=function(e){return this.$lines[e]||\"\"},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||\"\").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(e,[\"\",\"\"])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:\"insert\",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([\"\"]),n=0):(t=[\"\"].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:\"insert\",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:\"remove\",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:\"remove\",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:\"remove\",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action==\"insert\";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal(\"change\",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(\"\"),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action==\"insert\"?\"remove\":\"insert\",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split(\"\").reverse().join(\"\")},t.stringRepeat=function(e,t){var n=\"\";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\\s\\s*/,i=/\\s\\s*$/;t.stringTrimLeft=function(e){return e.replace(r,\"\")},t.stringTrimRight=function(e){return e.replace(i,\"\")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]==\"object\"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!=\"object\"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}if(Object.prototype.toString.call(e)!==\"[object Object]\")return e;t={};for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},t.escapeHTML=function(e){return e.replace(/&/g,\"&#38;\").replace(/\"/g,\"&#34;\").replace(/'/g,\"&#39;\").replace(/</g,\"&#60;\")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=e(\"../document\").Document,s=e(\"../lib/lang\"),o=t.Mirror=function(e){this.sender=e;var t=this.doc=new i(\"\"),n=this.deferredUpdate=s.delayedCall(this.onUpdate.bind(this)),r=this;e.on(\"change\",function(e){var i=e.data;if(i[0].start)t.applyDeltas(i);else for(var s=0;s<i.length;s+=2){if(Array.isArray(i[s+1]))var o={action:\"insert\",start:i[s],lines:i[s+1]};else var o={action:\"remove\",start:i[s],end:i[s+1]};t.applyDelta(o,!0)}if(r.$timeout)return n.schedule(r.$timeout);r.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),ace.define(\"ace/mode/xquery/xqlint\",[\"require\",\"exports\",\"module\",\"ace/mode/tree_ops\",\"ace/mode/xquery/errors\",\"ace/mode/tree_ops\",\"ace/mode/xquery/errors\",\"ace/mode/xquery/schema_built-in_types\",\"ace/mode/xquery/errors\",\"ace/mode/tree_ops\",\"ace/mode/xquery/static_context\",\"ace/mode/xquery/handlers\",\"ace/mode/tree_ops\",\"ace/mode/xquery/parsers/JSONiqParser\",\"ace/mode/xquery/parsers/XQueryParser\",\"ace/mode/xquery/parsers/JSONParseTreeHandler\",\"ace/mode/xquery/compiler/translator\",\"ace/mode/xquery/formatter/style_checker\",\"ace/mode/lib/completion/completer\",\"ace/mode/xquery/compiler/static_context\"],function(e,t,n){n.exports=function r(t,n,i){function s(u,a){if(!n[u]){if(!t[u]){var f=typeof e==\"function\"&&e;if(!a&&f)return f(u,!0);if(o)return o(u,!0);var l=new Error(\"Cannot find module '\"+u+\"'\");throw l.code=\"MODULE_NOT_FOUND\",l}var c=n[u]={exports:{}};t[u][0].call(c.exports,function(e){var n=t[u][1][e];return s(n?n:e)},c,c.exports,r,t,n,i)}return n[u].exports}var o=typeof e==\"function\"&&e;for(var u=0;u<i.length;u++)s(i[u]);return s}({1:[function(e,t,n){\"use strict\";var r=function(e,t,n,r,i){if(!t)throw new Error(i+\" code is missing.\");if(!n)throw new Error(i+\" message is missing.\");if(!r)throw new Error(i+\" position is missing.\");e.getCode=function(){return t},e.getMessage=function(){return n},e.getPos=function(){return r}},i={},s={};i.prototype=new Error,s.prototype=new Error,n.StaticError=i.prototype.constructor=function(e,t,n){r(this,e,t,n,\"Error\")},n.StaticWarning=s.prototype.constructor=function(e,t,n){r(this,e,t,n,\"Warning\")}},{}],2:[function(e,t,n){\"use strict\";var r=e(\"../tree_ops\").TreeOps,i=e(\"./errors\"),s=i.StaticWarning;n.ModuleDecl=function(e,t,n){var i=\"\";return{NCName:function(e){i=r.flatten(e)},URILiteral:function(s){s=r.flatten(s),s=s.substring(1,s.length-1),e.apply(function(){t.moduleNamespace=s,t.addNamespace(s,i,n.pos,\"moduleDecl\")})}}},n.ModuleImport=function(e,t,n){var i=\"\",s;return{NCName:function(e){i=r.flatten(e)},URILiteral:function(o){if(s!==undefined)return;o=r.flatten(o),o=o.substring(1,o.length-1),s=o,e.apply(function(){t.importModule(o,i,n.pos)})}}},n.SchemaImport=function(e,t,n){var i=\"\",s;return{SchemaPrefix:function(t){var n=function(){this.NCName=function(e){i=r.flatten(e)}};e.visitChildren(t,new n)},URILiteral:function(o){if(s!==undefined)return;o=r.flatten(o),o=o.substring(1,o.length-1),s=o,e.apply(function(){t.addNamespace(o,i,n.pos,\"schema\")})}}},n.DefaultNamespaceDecl=function(e,t,n){var i=!1,o=\"\";return{TOKEN:function(e){i=i?!0:e.value===\"function\"},URILiteral:function(u){o=r.flatten(u),o=o.substring(1,o.length-1),i?t.defaultFunctionNamespace=o:(e.apply(function(){throw new s(\"W06\",\"Avoid default element namespace declarations.\",n.pos)}),t.defaultElementNamespace=o)}}},n.NamespaceDecl=function(e,t,n){var i=\"\";return{NCName:function(e){i=r.flatten(e)},URILiteral:function(s){s=r.flatten(s),s=s.substring(1,s.length-1),e.apply(function(){t.addNamespace(s,i,n.pos,\"declare\")})}}},n.VarHandler=function(e,t,n){var i=function(i){var s=r.flatten(i);e.apply(function(){var e=t.resolveQName(s,i.pos);t.addVariable(e,n.name,i.pos)})};return{ExprSingle:function(){return!0},VarValue:function(){return!0},VarDefaultValue:function(){return!0},VarName:i,EQName:i}},n.VarRefHandler=function(e,t,n){return{VarName:function(i){var s=r.flatten(i);e.apply(function(){var e=t.resolveQName(s,n.pos);e.uri!==\"\"&&(t.root.namespaces[e.uri].used=!0),t.addVarRef(e,i.pos)})}}}},{\"../tree_ops\":11,\"./errors\":1}],3:[function(e,t,n){\"use strict\";n.getSchemaBuiltinTypes=function(){var e=\"http://www.w3.org/2001/XMLSchema\",t={};return t[e]={variables:{},functions:{}},t[e].functions[e+\"#string#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"string\",arity:1,eqname:{uri:e,name:\"string\"}},t[e].functions[e+\"#boolean#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"boolean\",arity:1,eqname:{uri:e,name:\"boolean\"}},t[e].functions[e+\"#decimal#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"decimal\",arity:1,eqname:{uri:e,name:\"decimal\"}},t[e].functions[e+\"#float#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"float\",arity:1,eqname:{uri:e,name:\"float\"}},t[e].functions[e+\"#double#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"double\",arity:1,eqname:{uri:e,name:\"double\"}},t[e].functions[e+\"#duration#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"duration\",arity:1,eqname:{uri:e,name:\"duration\"}},t[e].functions[e+\"#dateTime#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"dateTime\",arity:1,eqname:{uri:e,name:\"dateTime\"}},t[e].functions[e+\"#time#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"time\",arity:1,eqname:{uri:e,name:\"time\"}},t[e].functions[e+\"#date#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"date\",arity:1,eqname:{uri:e,name:\"date\"}},t[e].functions[e+\"#gYearMonth#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"gYearMonth\",arity:1,eqname:{uri:e,name:\"gYearMonth\"}},t[e].functions[e+\"#gYear#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"gYear\",arity:1,eqname:{uri:e,name:\"gYear\"}},t[e].functions[e+\"#gMonthDay#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"gMonthDay\",arity:1,eqname:{uri:e,name:\"gMonthDay\"}},t[e].functions[e+\"#gDay#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"gDay\",arity:1,eqname:{uri:e,name:\"gDay\"}},t[e].functions[e+\"#gMonth#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"gMonth\",arity:1,eqname:{uri:e,name:\"gMonth\"}},t[e].functions[e+\"#hexBinary#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"hexBinary\",arity:1,eqname:{uri:e,name:\"hexBinary\"}},t[e].functions[e+\"#base64Binary#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"base64Binary\",arity:1,eqname:{uri:e,name:\"base64Binary\"}},t[e].functions[e+\"#anyURI#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"anyURI\",arity:1,eqname:{uri:e,name:\"anyURI\"}},t[e].functions[e+\"#QName#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"QName\",arity:1,eqname:{uri:e,name:\"QName\"}},t[e].functions[e+\"#normalizedString#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"normalizedString\",arity:1,eqname:{uri:e,name:\"normalizedString\"}},t[e].functions[e+\"#token#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"token\",arity:1,eqname:{uri:e,name:\"token\"}},t[e].functions[e+\"#language#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"language\",arity:1,eqname:{uri:e,name:\"language\"}},t[e].functions[e+\"#NMTOKEN#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"NMTOKEN\",arity:1,eqname:{uri:e,name:\"NMTOKEN\"}},t[e].functions[e+\"#Name#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"Name\",arity:1,eqname:{uri:e,name:\"Name\"}},t[e].functions[e+\"#NCName#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"NCName\",arity:1,eqname:{uri:e,name:\"NCName\"}},t[e].functions[e+\"#ID#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"ID\",arity:1,eqname:{uri:e,name:\"ID\"}},t[e].functions[e+\"#IDREF#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"IDREF\",arity:1,eqname:{uri:e,name:\"IDREF\"}},t[e].functions[e+\"#ENTITY#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"ENTITY\",arity:1,eqname:{uri:e,name:\"ENTITY\"}},t[e].functions[e+\"#integer#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"integer\",arity:1,eqname:{uri:e,name:\"integer\"}},t[e].functions[e+\"#nonPositiveInteger#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"nonPositiveInteger\",arity:1,eqname:{uri:e,name:\"nonPositiveInteger\"}},t[e].functions[e+\"#negativeInteger#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"negativeInteger\",arity:1,eqname:{uri:e,name:\"negativeInteger\"}},t[e].functions[e+\"#long#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"long\",arity:1,eqname:{uri:e,name:\"long\"}},t[e].functions[e+\"#int#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"int\",arity:1,eqname:{uri:e,name:\"int\"}},t[e].functions[e+\"#short#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"short\",arity:1,eqname:{uri:e,name:\"short\"}},t[e].functions[e+\"#byte#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"byte\",arity:1,eqname:{uri:e,name:\"byte\"}},t[e].functions[e+\"#nonNegativeInteger#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"nonNegativeInteger\",arity:1,eqname:{uri:e,name:\"nonNegativeInteger\"}},t[e].functions[e+\"#unsignedLong#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"unsignedLong\",arity:1,eqname:{uri:e,name:\"unsignedLong\"}},t[e].functions[e+\"#unsignedInt#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"unsignedInt\",arity:1,eqname:{uri:e,name:\"unsignedInt\"}},t[e].functions[e+\"#unsignedShort#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"unsignedShort\",arity:1,eqname:{uri:e,name:\"unsignedShort\"}},t[e].functions[e+\"#unsignedByte#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"unsignedByte\",arity:1,eqname:{uri:e,name:\"unsignedByte\"}},t[e].functions[e+\"#positiveInteger#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"positiveInteger\",arity:1,eqname:{uri:e,name:\"positiveInteger\"}},t[e].functions[e+\"#yearMonthDuration#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"yearMonthDuration\",arity:1,eqname:{uri:e,name:\"yearMonthDuration\"}},t[e].functions[e+\"#dayTimeDuration#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"dayTimeDuration\",arity:1,eqname:{uri:e,name:\"dayTimeDuration\"}},t[e].functions[e+\"#untypedAtomic#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"untypedAtomic\",arity:1,eqname:{uri:e,name:\"untypedAtomic\"}},t}},{}],4:[function(e,t,n){n.StaticContext=function(t,n){\"use strict\";var r=e(\"../tree_ops\").TreeOps,i=e(\"./errors\"),s=i.StaticError,o=i.StaticWarning,u=e(\"./schema_built-in_types\").getSchemaBuiltinTypes,a={sl:0,sc:0,el:0,ec:0},f={},l=function(e){return e.uri+\"#\"+e.name},c=function(e,t){return l(e)+\"#\"+t};t||(f[\"http://jsoniq.org/functions\"]={prefix:\"jn\",pos:a,type:\"module\",override:!0},f[\"http://www.28msec.com/modules/collections\"]={prefix:\"db\",pos:a,type:\"module\",override:!0},f[\"http://www.28msec.com/modules/store\"]={prefix:\"store\",pos:a,type:\"module\",override:!0},f[\"http://jsoniq.org/function-library\"]={prefix:\"libjn\",pos:a,type:\"module\",override:!0},f[\"http://www.w3.org/2005/xpath-functions\"]={prefix:\"fn\",pos:a,type:\"module\",override:!0},f[\"http://www.w3.org/2005/xquery-local-functions\"]={prefix:\"local\",pos:a,type:\"declare\",override:!0},f[\"http://www.w3.org/2001/XMLSchema-instance\"]={prefix:\"xsi\",pos:a,type:\"declare\"},f[\"http://www.w3.org/2001/XMLSchema\"]={prefix:\"xs\",pos:a,type:\"declare\"},f[\"http://www.w3.org/XML/1998/namespace\"]={prefix:\"xml\",pos:a,type:\"declare\"},f[\"http://zorba.io/annotations\"]={prefix:\"an\",pos:a,type:\"declare\",override:!0},f[\"http://www.28msec.com/annotations/rest\"]={prefix:\"rest\",pos:a,type:\"declare\",override:!0},f[\"http://www.w3.org/2005/xqt-errors\"]={prefix:\"err\",pos:a,type:\"declare\",override:!0},f[\"http://zorba.io/errors\"]={prefix:\"zerr\",pos:a,type:\"declare\",override:!0});var h={parent:t,children:[],pos:n,setModuleResolver:function(e){return this.root.moduleResolver=e,this},setModules:function(e){if(this!==this.root)throw new Error(\"setModules() not invoked from the root static context.\");this.moduleResolver=function(t){return e[t]};var t=this;return Object.keys(this.namespaces).forEach(function(e){var n=t.namespaces[e];if(n.type===\"module\"){var i=t.moduleResolver(e);i.variables&&r.concat(t.variables,i.variables),i.functions&&r.concat(t.functions,i.functions)}}),this},setModulesFromXQDoc:function(e){if(this!==this.root)throw new Error(\"setModulesFromXQDoc() not invoked from the root static context.\");var t={};Object.keys(e).forEach(function(n){var r=e[n],i={},s={};r.functions.forEach(function(e){s[n+\"#\"+e.name+\"#\"+e.arity]={params:[],annotations:[],name:e.name,arity:e.arity,eqname:{uri:n,name:e.name}},e.parameters.forEach(function(t){s[n+\"#\"+e.name+\"#\"+e.arity].params.push(\"$\"+t.name)})}),r.variables.forEach(function(e){var t=e.name.substring(e.name.indexOf(\":\")+1);i[n+\"#\"+t]={type:\"VarDecl\",annotations:[],eqname:{uri:n,name:t}}}),t[n]={variables:i,functions:s}}),this.root.moduleResolver=function(e){return t[e]};var n=this;return Object.keys(this.namespaces).forEach(function(e){var t=n.namespaces[e];if(t.type===\"module\"){var i=n.moduleResolver(e);i.variables&&r.concat(n.variables,i.variables),i.functions&&r.concat(n.functions,i.functions)}}),this},moduleNamespace:\"\",defaultFunctionNamespace:\"http://www.w3.org/2005/xpath-functions\",defaultFunctionNamespaces:[\"http://www.28msec.com/modules/collections\",\"http://www.28msec.com/modules/store\",\"http://jsoniq.org/functions\",\"http://jsoniq.org/function-library\",\"http://www.w3.org/2001/XMLSchema\"],defaultElementNamespace:\"\",namespaces:f,availableModuleNamespaces:[],importModule:function(e,t,n){if(this!==this.root)throw new Error(\"Function not invoked from the root static context.\");this.addNamespace(e,t,n,\"module\");if(this.moduleResolver)try{var i=this.moduleResolver(e,[]);i.variables&&r.concat(this.variables,i.variables),i.functions&&r.concat(this.functions,i.functions)}catch(o){throw new s(\"XQST0059\",'module \"'+e+'\" not found',n)}return this},getAvailableModuleNamespaces:function(){return this.root.availableModuleNamespaces},getPrefixByNamespace:function(e){return this.root.namespaces[e].prefix},addNamespace:function(e,t,n,r){if(t===\"\"&&r===\"module\")throw new o(\"W01\",\"Avoid this type of import. Use import module namespace instead\",n);if(e===\"\")throw new s(\"XQST0088\",\"empty target namespace in module import or module declaration\",n);var i=this.getNamespace(e);if(i&&i.type===r&&r!==\"declare\"&&!i.override)throw new s(\"XQST0047\",'\"'+e+'\": duplicate target namespace',n);i=this.getNamespaceByPrefix(t);if(i&&!i.override)throw new s(\"XQST0033\",'\"'+t+'\": namespace prefix already bound to \"'+i.uri+'\"',n);i=this.namespaces[e],this.namespaces[e]={prefix:t,pos:n,type:r};if(i)throw new o(\"W02\",'\"'+e+'\" already bound to the \"'+i.prefix+'\" prefix',n)},getNamespaces:function(){return this.root.namespaces},getNamespace:function(e){var t=this;while(t){var n=t.namespaces[e];if(n)return n;t=t.parent}},getNamespaceByPrefix:function(e){var t=function(t){var r=n.namespaces[t];if(r.prefix===e)throw r.uri=t,r},n=this;while(n){try{Object.keys(n.namespaces).forEach(t)}catch(r){return r}n=n.parent}},resolveQName:function(e,t){var n={uri:\"\",prefix:\"\",name:\"\"},r;if(e.substring(0,2)===\"Q{\")r=e.indexOf(\"}\"),n.uri=e.substring(2,r),n.name=e.substring(r+1);else{r=e.indexOf(\":\"),n.prefix=e.substring(0,r);var i=this.getNamespaceByPrefix(n.prefix);if(!i&&n.prefix!==\"\"&&[\"fn\",\"jn\"].indexOf(n.prefix)===-1)throw new s(\"XPST0081\",'\"'+n.prefix+'\": can not expand prefix of lexical QName to namespace URI',t);i&&(n.uri=i.uri),n.name=e.substring(r+1)}return n},variables:{},varRefs:{},functionCalls:{},addVariable:function(e,t,n){if(t!==\"VarDecl\"||this.moduleNamespace===\"\"||this.moduleNamespace===e.uri||e.uri===\"\"&&this.defaultFunctionNamespace===this.moduleNamespace){var r=l(e);if(t===\"VarDecl\"&&this.variables[r])throw new s(\"XQST0049\",'\"'+e.name+'\": duplicate variable declaration',n);return this.variables[r]={type:t,pos:n,qname:e,annotations:{}},this}throw new s(\"XQST0048\",'\"'+e.prefix+\":\"+e.name+'\": Qname not library namespace',n)},getVariables:function(){var e={},t=this,n=function(n){e[n]||(e[n]=t.variables[n])};while(t)Object.keys(t.variables).forEach(n),t=t.parent;return e},getVariable:function(e){var t=l(e),n=this;while(n){if(n.variables[t])return n.variables[t];n=n.parent}},addVarRef:function(e,t){var n=this.getVariable(e);if(!n&&(e.uri===\"\"||this.root.moduleResolver))throw new s(\"XPST0008\",'\"'+e.name+'\": undeclared variable',t);var r=l(e);this.varRefs[r]=!0},addFunctionCall:function(e,t,n){var r=this.getFunction(e,t);if(!(!!r||e.uri!==\"http://www.w3.org/2005/xquery-local-functions\"&&!this.root.moduleResolver||(e.uri===\"http://www.w3.org/2005/xpath-functions\"||e.uri===\"\"&&this.root.defaultFunctionNamespaces.concat(this.root.defaultFunctionNamespace).indexOf(\"http://www.w3.org/2005/xpath-functions\")!==-1)&&e.name===\"concat\")&&!r)throw new s(\"XPST0008\",'\"'+e.name+\"#\"+t+'\": undeclared function',n);var i=c(e,t);this.functionCalls[i]=!0},functions:u()[\"http://www.w3.org/2001/XMLSchema\"].functions,getFunctions:function(){return this.root.functions},getFunction:function(e,t){var n=c(e,t),r;if(e.uri===\"\"){var i=this;return this.root.defaultFunctionNamespaces.concat([this.root.defaultFunctionNamespace]).forEach(function(n){if(!!r)return!1;r=i.getFunction({uri:n,prefix:e.prefix,name:e.name},t)}),r}return this.root.functions[n]},addFunction:function(e,t,n){if(this!==this.root)throw new Error(\"addFunction() not invoked from the root static context.\");var r=n.length;if(this.moduleNamespace===\"\"||this.moduleNamespace===e.uri||e.uri===\"\"&&this.defaultFunctionNamespace===this.moduleNamespace){var i=c(e,r);if(this.functions[i])throw new s(\"XQST0034\",'\"'+e.name+'\": duplicate function declaration',t);return this.functions[i]={pos:t,params:n},this}throw new s(\"XQST0048\",'\"'+e.prefix+\":\"+e.name+'\": Qname not library namespace',t)}};return h.root=t?t.root:h,h}},{\"../tree_ops\":11,\"./errors\":1,\"./schema_built-in_types\":3}],5:[function(e,t,n){n.Translator=function(t,n){\"use strict\";var r=e(\"./errors\"),i=r.StaticError,s=r.StaticWarning,o=e(\"../tree_ops\").TreeOps,u=e(\"./static_context\").StaticContext,a=e(\"./handlers\"),f=function(e,t){var n=[];return t.length===0?e:(e.children.forEach(function(e){e.name===t[0]&&t.length>1?n=f(e,t.slice(1)):e.name===t[0]&&n.push(e)}),n)},l=[];this.apply=function(e){try{e()}catch(t){if(t instanceof i)c(t);else{if(!(t instanceof s))throw t;h(t.getCode(),t.getMessage(),t.getPos())}}};var c=function(e){l.push({pos:e.getPos(),type:\"error\",level:\"error\",message:\"[\"+e.getCode()+\"] \"+e.getMessage()})},h=function(e,t,n){l.push({pos:n,type:\"warning\",level:\"warning\",message:\"[\"+e+\"] \"+t})};this.getMarkers=function(){return l};var p=this;t.pos=n.pos;var d=t,v=function(e){d=new u(d,e),d.parent.children.push(d)},m=function(e){e!==undefined&&(d.pos.el=e.el,d.pos.ec=e.ec),Object.keys(d.varRefs).forEach(function(e){d.variables[e]||(d.parent.varRefs[e]=!0)}),Object.keys(d.variables).forEach(function(e){!d.varRefs[e]&&d.variables[e].type!==\"GroupingVariable\"&&d.variables[e].type!==\"CatchVar\"&&h(\"W03\",'Unused variable \"$'+d.variables[e].qname.name+'\"',d.variables[e].pos)}),d=d.parent};this.visitOnly=function(e,t){e.children.forEach(function(e){t.indexOf(e.name)!==-1&&p.visit(e)})},this.getFirstChild=function(e,t){var n;return e.children.forEach(function(e){e.name===t&&n===undefined&&(n=e)}),n},this.ModuleDecl=function(e){return this.visitChildren(e,a.ModuleDecl(p,t,e)),!0},this.Prolog=function(e){return this.visitOnly(e,[\"DefaultNamespaceDecl\",\"Setter\",\"NamespaceDecl\",\"Import\"]),n.index.forEach(function(e){if(e.name===\"VarDecl\")e.children.forEach(function(n){n.name===\"VarName\"&&p.apply(function(){var r=o.flatten(n),i=t.resolveQName(r,n.pos);t.addVariable(i,e.name,n.pos)})});else if(e.name===\"FunctionDecl\"){var n,r,i=[];e.children.forEach(function(e){e.name===\"EQName\"?(n=e,r=e.pos):e.name===\"ParamList\"&&e.children.forEach(function(e){e.name===\"Param\"&&i.push(o.flatten(e))})}),p.apply(function(){n=o.flatten(n),n=t.resolveQName(n,r),t.addFunction(n,r,i)})}}),this.visitOnly(e,[\"ContextItemDecl\",\"AnnotatedDecl\",\"OptionDecl\"]),!0},this.ModuleImport=function(e){return this.visitChildren(e,a.ModuleImport(p,t,e)),!0},this.SchemaImport=function(e){return this.visitChildren(e,a.SchemaImport(p,t,e)),!0},this.DefaultNamespaceDecl=function(e){return this.visitChildren(e,a.DefaultNamespaceDecl(p,t,e)),!0},this.NamespaceDecl=function(e){return this.visitChildren(e,a.NamespaceDecl(p,t,e)),!0};var g={};this.AnnotatedDecl=function(e){return g={},this.visitChildren(e,a.NamespaceDecl(p,t,e)),!0},this.CompatibilityAnnotation=function(){return g[\"http://www.w3.org/2012/xquery#updating\"]=[],!0},this.Annotation=function(e){return this.visitChildren(e,{EQName:function(e){var t=o.flatten(e);p.apply(function(){var n=d.resolveQName(t,e.pos);g[n.uri+\"#\"+n.name]=[]})}}),!0},this.VarDecl=function(e){try{var n=p.getFirstChild(e,\"VarName\"),r=o.flatten(n),i=d.resolveQName(r,n.pos),s=t.getVariable(i);s&&(s.annotations=g)}catch(u){}return this.visitOnly(e,[\"ExprSingle\",\"VarValue\",\"VarDefaultValue\"]),!0},this.FunctionDecl=function(e){var t=g[\"http://www.w3.org/2012/xquery#updating\"]!==undefined,n=f(e,[\"ReturnType\"])[0],r=f(e,[\"EQName\"])[0];!n&&!t&&h(\"W05\",\"Untyped return value\",r.pos);var i=!1;return e.children.forEach(function(e){if(e.name===\"TOKEN\"&&e.value===\"external\")return i=!0,!1}),i||(v(e.pos),this.visitChildren(e),m()),!0},this.VarRef=function(e){return this.visitChildren(e,a.VarRefHandler(p,d,e)),!0},this.Param=function(e){var t=f(e,[\"TypeDeclaration\"])[0];return t||h(\"W05\",\"Untyped function parameter\",e.pos),this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.InlineFunctionExpr=function(e){return v(e.pos),this.visitChildren(e),m(),!0};var y=[],b=function(e){v(e.pos),y.push(0),p.visitChildren(e);for(var t=1;t<=y[y.length-1];t++)m(e.pos);y.pop(),m()};this.StatementsAndOptionalExpr=function(e){return b(e),!0},this.StatementsAndExpr=function(e){return b(e),!0},this.BlockStatement=function(e){return b(e),!0},this.VarDeclStatement=function(e){v(e.pos),y[y.length-1]++,this.visitChildren(e,a.VarHandler(p,d,e))};var w=[];this.FLWORExpr=this.FLWORStatement=function(e){v(e.pos),w.push(0),this.visitChildren(e);for(var t=1;t<=w[w.length-1];t++)m(e.pos);return w.pop(),m(),!0},this.ForBinding=function(e){return this.visitOnly(e,[\"ExprSingle\",\"VarValue\",\"VarDefaultValue\"]),v(e.pos),w[w.length-1]++,this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.LetBinding=function(e){return this.visitOnly(e,[\"ExprSingle\",\"VarValue\",\"VarDefaultValue\"]),v(e.pos),w[w.length-1]++,this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.GroupingSpec=function(e){var t=!1;e.children.forEach(function(e){if(e.value===\":=\")return t=!0,!1});if(t){var n=e.children[0];return this.visitOnly(e,[\"ExprSingle\",\"VarValue\",\"VarDefaultValue\"]),v(e.pos),w[w.length-1]++,this.visitChildren(n,a.VarHandler(p,d,n)),!0}},this.TumblingWindowClause=function(e){return this.visitOnly(e,[\"ExprSingle\"]),v(e.pos),w[w.length-1]++,this.visitChildren(e,a.VarHandler(p,d,e)),this.visitOnly(e,[\"WindowStartCondition\",\"WindowEndCondition\"]),!0},this.WindowVars=function(e){return v(e.pos),w[w.length-1]++,this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.SlidingWindowClause=function(e){return this.visitOnly(e,[\"ExprSingle\",\"VarValue\",\"VarDefaultValue\"]),v(e.pos),w[w.length-1]++,this.visitChildren(e,a.VarHandler(p,d,e)),this.visitOnly(e,[\"WindowStartCondition\",\"WindowEndCondition\"]),!0},this.PositionalVar=function(e){return this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.PositionalVar=function(e){return this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.CurrentItem=function(e){return this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.PreviousItem=function(e){return this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.NextItem=function(e){return this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.CountClause=function(e){return v(e.pos),w[w.length-1]++,this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.CaseClause=function(e){return v(e.pos),this.visitChildren(e,a.VarHandler(p,d,e)),this.visitOnly(e,[\"ExprSingle\"]),m(),!0},this.TransformExpr=function(e){return v(e.pos),this.visitChildren(e),m(),!0},this.TransformSpec=function(e){return this.visitOnly(e,[\"ExprSingle\",\"VarValue\",\"VarDefaultValue\"]),this.visitChildren(e,a.VarHandler(p,d,e)),!0};var E=[];this.QuantifiedExpr=function(e){v(e.pos),E.push(0),this.visitChildren(e);for(var t=1;t<=E[E.length-1];t++)m(e.pos);return E.pop(),m(),!0},this.QuantifiedVarDecl=function(e){return this.visitOnly(e,[\"ExprSingle\"]),v(e.pos),E[E.length-1]++,this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.FunctionCall=function(e){this.visitOnly(e,[\"ArgumentList\"]);var t=p.getFirstChild(e,\"EQName\"),n=o.flatten(t),r=f(e,[\"ArgumentList\",\"Argument\"]).length;return p.apply(function(){var i=d.resolveQName(n,e.pos);try{i.uri!==\"\"&&(d.root.namespaces[i.uri].used=!0)}catch(s){}d.addFunctionCall(i,r,t.pos)}),!0},this.TryClause=function(e){return v(e.pos),this.visitChildren(e),m(),!0},this.CatchClause=function(e){v(e.pos);var t=\"err\",n=\"http://www.w3.org/2005/xqt-errors\",r={sl:0,sc:0,el:0,ec:0};return d.addVariable({prefix:t,uri:n,name:\"code\"},\"CatchVar\",r),d.addVariable({prefix:t,uri:n,name:\"description\"},\"CatchVar\",r),d.addVariable({prefix:t,uri:n,name:\"value\"},\"CatchVar\",r),d.addVariable({prefix:t,uri:n,name:\"module\"},\"CatchVar\",r),d.addVariable({prefix:t,uri:n,name:\"line-number\"},\"CatchVar\",r),d.addVariable({prefix:t,uri:n,name:\"column-number\"},\"CatchVar\",r),d.addVariable({prefix:t,uri:n,name:\"additional\"},\"CatchVar\",r),this.visitChildren(e),m(),!0},this.Pragma=function(e){var n=o.flatten(f(e,[\"EQName\"])[0]);n=t.resolveQName(n,e);var r=o.flatten(f(e,[\"PragmaContents\"])[0]);if(n.name===\"xqlint\"&&n.uri===\"http://xqlint.io\"){v(e.pos);var i=r.match(/[a-zA-Z]+\\(([^)]+)\\)/g);return i.forEach(function(t){var n=t.substring(0,t.indexOf(\"(\")),r=t.substring(0,t.length-1).substring(t.indexOf(\"(\")+1).split(\",\").map(function(e){return e.trim()});n===\"varrefs\"&&r.forEach(function(t){var n=d.resolveQName(t.substring(1),e.pos);n.uri!==\"\"&&(d.root.namespaces[n.uri].used=!0),d.addVarRef(n,e.pos)})}),this.visitChildren(e),m(),!0}},this.visit=function(e){var t=e.name,n=!1;typeof this[t]==\"function\"&&(n=this[t](e)===!0),n||this.visitChildren(e)},this.visitChildren=function(e,t){for(var n=0;n<e.children.length;n++){var r=e.children[n];t!==undefined&&typeof t[r.name]==\"function\"?t[r.name](r):this.visit(r)}},this.visit(n),Object.keys(t.variables).forEach(function(e){!t.varRefs[e]&&(t.variables[e].annotations[\"http://www.w3.org/2005/xpath-functions#private\"]||t.moduleNamespace===\"\")&&t.variables[e].pos&&h(\"W03\",'Unused variable \"'+t.variables[e].qname.name+'\"',t.variables[e].pos)}),Object.keys(t.namespaces).forEach(function(e){var n=t.namespaces[e];n.used===undefined&&!n.override&&n.type===\"module\"&&h(\"W04\",'Unused module \"'+e+'\"',n.pos)})}},{\"../tree_ops\":11,\"./errors\":1,\"./handlers\":2,\"./static_context\":4}],6:[function(e,t,n){\"use strict\";function s(e,t,n){n=n||i;var r=[];for(var s=t-1;s>=0;s--){if(!n.test(e[s]))break;r.push(e[s])}return r.reverse().join(\"\")}function o(e,t){var n=0,r=e.length-1,i=Math.floor((r+n)/2);while(r>n&&i>=0&&e[i].indexOf(t)!==0)t<e[i]?r=i-1:t>e[i]&&(n=i+1),i=Math.floor((r+n)/2);while(i>0&&e[i-1].indexOf(t)===0)i--;return i>=0?i:0}var r=e(\"../tree_ops\").TreeOps,i=/[a-zA-Z_0-9\\$]/,u=/[a-zA-Z_0-9\\/\\.:\\-#]/,a=\"-._A-Za-z0-9:\\u00b7\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02ff\\u0300-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd\",f=\"[\"+a+\"]\",l=\"[\"+a+\"\\\\$]\",c=new RegExp(f),h=new RegExp(l),p={LetBinding:\"Let binding\",Param:\"Function parameter\",QuantifiedExpr:\"Quantified expression binding\",VarDeclStatement:\"Local variable\",ForBinding:\"For binding\",TumblingWindowClause:\"Tumbling window binding\",WindowVars:\"Window variable\",SlidingWindowClause:\"Sliding window binding\",PositionalVar:\"Positional variable\",CurrentItem:\"Current item\",PreviousItem:\"Previous item\",NextItem:\"Next item\",CountClause:\"Count binding\",GroupingVariable:\"Grouping variable\",VarDecl:\"Module variable\"},d=function(e,t){t.sort();var n=o(t,e),r=[];for(var i=n;i<t.length&&t[i].indexOf(e)===0;i++)r.push(t[i]);return r},v=function(e,t,n){var r=e.indexOf(\":\");if(r===-1){var i=[],s=n.getNamespaces();Object.keys(s).forEach(function(e){(s[e].type===\"module\"||e===\"http://www.w3.org/2005/xquery-local-functions\")&&i.push(s[e].prefix)});var o=d(e,i),u=function(e){return{name:e+\":\",value:e+\":\",meta:\"prefix\"}};return o.map(u)}return[]},m=function(e,t,n){var r=[],i={},s=n.getFunctions(),o=\"\",u=\"\",a=e,f=e.indexOf(\":\"),l=!1;if(f!==-1){u=e.substring(0,f),a=e.substring(f+1);var h=n.getNamespaceByPrefix(u);h&&(o=n.getNamespaceByPrefix(u).uri)}else l=!0,o=n.root.defaultFunctionNamespace;Object.keys(s).forEach(function(e){var t=s[e],u=e.substring(0,e.indexOf(\"#\")),a=e.substring(e.indexOf(\"#\")+1);a=a.substring(0,a.indexOf(\"#\"));if(u!==o)return;l||(a=n.getNamespaces()[u].prefix+\":\"+a),a+=\"(\";var f=a;f+=t.params.map(function(e,t){return\"${\"+(t+1)+\":\\\\\"+e.split(\" \")[0]+\"}\"}).join(\", \"),a+=t.params.join(\", \"),a+=\")\",f+=\")\",r.push(a),i[a]=f});var p=d(e,r),v=function(e){return{name:e,value:e,meta:\"function\",priority:4,identifierRegex:c,snippet:i[e]}};return p.map(v)},g=function(e,t,n){var r=\"\",i=\"\",s=e.indexOf(\":\");s!==-1&&(i=e.substring(0,s),r=n.getNamespaceByPrefix(i).uri);var o=n.getVariables(),u=[],a={};Object.keys(o).forEach(function(e){var t=e.indexOf(\"#\"),r=e.substring(0,t),i=e.substring(t+1);r!==\"\"?(u.push(n.getPrefixByNamespace(r)+\":\"+i),a[n.getPrefixByNamespace(r)+\":\"+i]=o[e].type):(u.push(i),a[i]=o[e].type)});var f=d(e,u),l=function(e){return{name:\"$\"+e,value:\"$\"+e,meta:p[a[e]],priority:4,identifierRegex:h}};return f.map(l)},y=function(e,t,n){var r=s(e,t.col,c),i=e.substring(0,t.col-(r.length===0?0:r.length)),o=i[i.length-1]===\"$\";return o?g(r,t,n):r!==\"\"?m(r,t,n).concat(v(r,t,n)):g(r,t,n).concat(m(r,t,n)).concat(v(r,t,n))},b=function(e,t,n){var r=s(e,t.col,u),i=d(r,n.getAvailableModuleNamespaces()),o=function(e){return{name:e,value:e,meta:\"module\",priority:4,identifierRegex:u}};return i.map(o)};n.complete=function(e,t,n,i){var s=e.split(\"\\n\")[i.line],o=r.findNode(t,i),u=r.findNode(n,i);return u=u?u:n,o&&o.name===\"URILiteral\"&&o.getParent&&o.getParent.name===\"ModuleImport\"?b(s,i,u):y(s,i,u)}},{\"../tree_ops\":11}],7:[function(e,t,n){n.StyleChecker=function(e,t){\"use strict\";var n=\"    \",r=[];this.getMarkers=function(){return r},this.WS=function(e){var t=e.value.split(\"\\n\");return t.forEach(function(i,s){var o=s===0,u=s===t.length-1;/\\r$/.test(i)&&r.push({pos:{sl:e.pos.sl+s,el:e.pos.sl+s,sc:i.length-1,ec:i.length},type:\"warning\",level:\"warning\",message:\"[SW01] Detected CRLF\"});var a=i.match(/\\t+/);a!==null&&r.push({pos:{sl:e.pos.sl+s,el:e.pos.sl+s,sc:a.index,ec:a.index+a[0].length},type:\"warning\",level:\"warning\",message:\"[SW02] Tabs detected\"});if(!o&&u){a=i.match(/^\\ +/);if(a!==null){var f=a[0].length%n.length;f!==0&&r.push({pos:{sl:e.pos.sl+s,el:e.pos.sl+s,sc:a.index,ec:a.index+a[0].length},type:\"warning\",level:\"warning\",message:\"[SW03] Unexcepted indentation of \"+a[0].length})}}}),!0},this.visit=function(e,t){var n=e.name,r=!1;typeof this[n]==\"function\"&&(r=this[n](e,t)===!0),r||this.visitChildren(e)},this.visitChildren=function(e,t){for(var n=0;n<e.children.length;n++){var r=e.children[n];t!==undefined&&typeof t[r.name]==\"function\"?t[r.name](r):this.visit(r)}},t.split(\"\\n\").forEach(function(e,t){var n=e.match(/\\ +$/);n&&r.push({pos:{sl:t,el:t,sc:n.index,ec:n.index+n[0].length},type:\"warning\",level:\"warning\",message:\"[SW04] Trailing whitespace\"})}),this.visit(e)}},{}],8:[function(e,t,n){n.JSONParseTreeHandler=function(e){\"use strict\";function f(e){return{name:e,children:[],getParent:null,pos:{sl:0,sc:0,el:0,ec:0}}}function l(e){var t=f(e);r===null?(r=t,r.index=[],i=t):(t.getParent=i,i.children.push(t),i=i.children[i.children.length-1])}function c(){if(i.children.length>0){var e=i.children[0],s=null;for(var o=i.children.length-1;o>=0;o--){s=i.children[o];if(s.pos.el!==0||s.pos.ec!==0)break}i.pos.sl=e.pos.sl,i.pos.sc=e.pos.sc,i.pos.el=s.pos.el,i.pos.ec=s.pos.ec}i.name===\"FunctionName\"&&(i.name=\"EQName\"),i.name===\"EQName\"&&i.value===undefined&&(i.value=i.children[0].value,i.children.pop()),t.indexOf(i.name)!==-1&&r.index.push(i),i.getParent!==null&&(i=i.getParent);if(i.children.length>0){var u=i.children[i.children.length-1];u.children.length===1&&n.indexOf(u.name)!==-1&&(i.children[i.children.length-1]=u.children[0])}}function h(e,t,n){var r=n-o;i.value=s.substring(0,r),s=s.substring(r),o=n;var f=a,l=u,c=f+i.value.split(\"\\n\").length-1,h=i.value.lastIndexOf(\"\\n\"),p=h===-1?l+i.value.length:i.value.substring(h+1).length;a=c,u=p,i.pos.sl=f,i.pos.sc=l,i.pos.el=c,i.pos.ec=p}var t=[\"VarDecl\",\"FunctionDecl\"],n=[\"OrExpr\",\"AndExpr\",\"ComparisonExpr\",\"StringConcatExpr\",\"RangeExpr\",\"UnionExpr\",\"IntersectExceptExpr\",\"InstanceofExpr\",\"TreatExpr\",\"CastableExpr\",\"CastExpr\",\"UnaryExpr\",\"ValueExpr\",\"FTContainsExpr\",\"SimpleMapExpr\",\"PathExpr\",\"RelativePathExpr\",\"PostfixExpr\",\"StepExpr\"],r=null,i=null,s=e,o=0,u=0,a=0;this.closeParseTree=function(){while(i.getParent!==null)c();c()},this.peek=function(){return i},this.getParseTree=function(){return r},this.reset=function(){},this.startNonterminal=function(e,t){l(e,t)},this.endNonterminal=function(){c()},this.terminal=function(e,t,n){e=e.substring(0,1)===\"'\"&&e.substring(e.length-1)===\"'\"?\"TOKEN\":e,l(e,t),h(i,t,n),c()},this.whitespace=function(e,t){var n=\"WS\";l(n,e),h(i,e,t),c()}}},{}],9:[function(e,t,n){var r=n.JSONiqParser=function i(e,t){function r(e,t){ic=t,ac=e,fc=e.length,s(0,0,0)}function s(e,t,n){Xl=t,Vl=t,$l=e,Jl=t,Kl=n,Ql=0,cc=n,ec=-1,sc={},ic.reset(ac)}function o(){ic.startNonterminal(\"Module\",Vl);switch($l){case 170:ql(168);break;default:Wl=$l}(Wl==64682||Wl==137898)&&u(),Il(278);switch($l){case 185:ql(146);break;default:Wl=$l}switch(Wl){case 95929:jl(),a();break;default:jl(),Za()}ic.endNonterminal(\"Module\",Vl)}function u(){ic.startNonterminal(\"VersionDecl\",Vl),Pl(170),Il(120);switch($l){case 126:Pl(126),Il(17),Pl(11);break;default:Pl(269),Il(17),Pl(11),Il(113),$l==126&&(Pl(126),Il(17),Pl(11))}Il(29),jl(),c(),ic.endNonterminal(\"VersionDecl\",Vl)}function a(){ic.startNonterminal(\"LibraryModule\",Vl),f(),Il(142),jl(),l(),ic.endNonterminal(\"LibraryModule\",Vl)}function f(){ic.startNonterminal(\"ModuleDecl\",Vl),Pl(185),Il(64),Pl(187),Il(240),jl(),Ga(),Il(30),Pl(61),Il(15),Pl(7),Il(29),jl(),c(),ic.endNonterminal(\"ModuleDecl\",Vl)}function l(){ic.startNonterminal(\"Prolog\",Vl);for(;;){Il(278);switch($l){case 109:ql(207);break;case 155:ql(169);break;default:Wl=$l}if(Wl!=43117&&Wl!=44141&&Wl!=50797&&Wl!=53869&&Wl!=54893&&Wl!=56429&&Wl!=73325&&Wl!=94875&&Wl!=95853&&Wl!=106093&&Wl!=115821&&Wl!=117403)break;switch($l){case 109:ql(201);break;default:Wl=$l}if(Wl==56429){Wl=uc(0,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{_(),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(0,Vl,Wl)}}switch(Wl){case-1:jl(),M();break;case 95853:jl(),O();break;case 155:jl(),C();break;case 73325:jl(),D();break;default:jl(),h()}Il(29),jl(),c()}for(;;){Il(278);switch($l){case 109:ql(202);break;default:Wl=$l}if(Wl!=17005&&Wl!=49261&&Wl!=52333&&Wl!=75373&&Wl!=80493&&Wl!=83565&&Wl!=104045&&Wl!=134765&&Wl!=137325)break;switch($l){case 109:ql(197);break;default:Wl=$l}switch(Wl){case 52333:jl(),R();break;case 104045:jl(),Q();break;default:jl(),P()}Il(29),jl(),c()}ic.endNonterminal(\"Prolog\",Vl)}function c(){ic.startNonterminal(\"Separator\",Vl),Pl(54),ic.endNonterminal(\"Separator\",Vl)}function h(){ic.startNonterminal(\"Setter\",Vl);switch($l){case 109:ql(194);break;default:Wl=$l}if(Wl==56429){Wl=uc(1,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{v(),Wl=-2}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),w(),Wl=-6}catch(f){Wl=-9}}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(1,Vl,Wl)}}switch(Wl){case 44141:p();break;case-2:d();break;case 43117:m();break;case 50797:g();break;case 106093:y();break;case-6:b();break;case 115821:Io();break;case 53869:E();break;default:T()}ic.endNonterminal(\"Setter\",Vl)}function p(){ic.startNonterminal(\"BoundarySpaceDecl\",Vl),Pl(109),Il(36),Pl(86),Il(137);switch($l){case 218:Pl(218);break;default:Pl(246)}ic.endNonterminal(\"BoundarySpaceDecl\",Vl)}function d(){ic.startNonterminal(\"DefaultCollationDecl\",Vl),Pl(109),Il(49),Pl(110),Il(41),Pl(95),Il(15),Pl(7),ic.endNonterminal(\"DefaultCollationDecl\",Vl)}function v(){Hl(109),Il(49),Hl(110),Il(41),Hl(95),Il(15),Hl(7)}function m(){ic.startNonterminal(\"BaseURIDecl\",Vl),Pl(109),Il(35),Pl(84),Il(15),Pl(7),ic.endNonterminal(\"BaseURIDecl\",Vl)}function g(){ic.startNonterminal(\"ConstructionDecl\",Vl),Pl(109),Il(44),Pl(99),Il(137);switch($l){case 246:Pl(246);break;default:Pl(218)}ic.endNonterminal(\"ConstructionDecl\",Vl)}function y(){ic.startNonterminal(\"OrderingModeDecl\",Vl),Pl(109),Il(71),Pl(207),Il(135);switch($l){case 206:Pl(206);break;default:Pl(262)}ic.endNonterminal(\"OrderingModeDecl\",Vl)}function b(){ic.startNonterminal(\"EmptyOrderDecl\",Vl),Pl(109),Il(49),Pl(110),Il(70),Pl(205),Il(52),Pl(124),Il(125);switch($l){case 149:Pl(149);break;default:Pl(176)}ic.endNonterminal(\"EmptyOrderDecl\",Vl)}function w(){Hl(109),Il(49),Hl(110),Il(70),Hl(205),Il(52),Hl(124),Il(125);switch($l){case 149:Hl(149);break;default:Hl(176)}}function E(){ic.startNonterminal(\"CopyNamespacesDecl\",Vl),Pl(109),Il(47),Pl(105),Il(132),jl(),S(),Il(25),Pl(42),Il(127),jl(),x(),ic.endNonterminal(\"CopyNamespacesDecl\",Vl)}function S(){ic.startNonterminal(\"PreserveMode\",Vl);switch($l){case 218:Pl(218);break;default:Pl(193)}ic.endNonterminal(\"PreserveMode\",Vl)}function x(){ic.startNonterminal(\"InheritMode\",Vl);switch($l){case 159:Pl(159);break;default:Pl(192)}ic.endNonterminal(\"InheritMode\",Vl)}function T(){ic.startNonterminal(\"DecimalFormatDecl\",Vl),Pl(109),Il(118);switch($l){case 107:Pl(107),Il(246),jl(),$a();break;default:Pl(110),Il(48),Pl(107)}for(;;){Il(204);if($l==54)break;jl(),N(),Il(30),Pl(61),Il(17),Pl(11)}ic.endNonterminal(\"DecimalFormatDecl\",Vl)}function N(){ic.startNonterminal(\"DFPropertyName\",Vl);switch($l){case 108:Pl(108);break;case 151:Pl(151);break;case 158:Pl(158);break;case 182:Pl(182);break;case 68:Pl(68);break;case 213:Pl(213);break;case 212:Pl(212);break;case 280:Pl(280);break;case 117:Pl(117);break;default:Pl(211)}ic.endNonterminal(\"DFPropertyName\",Vl)}function C(){ic.startNonterminal(\"Import\",Vl);switch($l){case 155:ql(130);break;default:Wl=$l}switch(Wl){case 117403:k();break;default:A()}ic.endNonterminal(\"Import\",Vl)}function k(){ic.startNonterminal(\"SchemaImport\",Vl),Pl(155),Il(76),Pl(229),Il(141),$l!=7&&(jl(),L()),Il(15),Pl(7),Il(112);if($l==82){Pl(82),Il(15),Pl(7);for(;;){Il(107);if($l!=42)break;Pl(42),Il(15),Pl(7)}}ic.endNonterminal(\"SchemaImport\",Vl)}function L(){ic.startNonterminal(\"SchemaPrefix\",Vl);switch($l){case 187:Pl(187),Il(240),jl(),Ga(),Il(30),Pl(61);break;default:Pl(110),Il(50),Pl(122),Il(64),Pl(187)}ic.endNonterminal(\"SchemaPrefix\",Vl)}function A(){ic.startNonterminal(\"ModuleImport\",Vl),Pl(155),Il(63),Pl(185),Il(93),$l==187&&(Pl(187),Il(240),jl(),Ga(),Il(30),Pl(61)),Il(15),Pl(7),Il(112);if($l==82){Pl(82),Il(15),Pl(7);for(;;){Il(107);if($l!=42)break;Pl(42),Il(15),Pl(7)}}ic.endNonterminal(\"ModuleImport\",Vl)}function O(){ic.startNonterminal(\"NamespaceDecl\",Vl),Pl(109),Il(64),Pl(187),Il(240),jl(),Ga(),Il(30),Pl(61),Il(15),Pl(7),ic.endNonterminal(\"NamespaceDecl\",Vl)}function M(){ic.startNonterminal(\"DefaultNamespaceDecl\",Vl),Pl(109),Il(49),Pl(110),Il(119);switch($l){case 122:Pl(122);break;default:Pl(147)}Il(64),Pl(187),Il(15),Pl(7),ic.endNonterminal(\"DefaultNamespaceDecl\",Vl)}function _(){Hl(109),Il(49),Hl(110),Il(119);switch($l){case 122:Hl(122);break;default:Hl(147)}Il(64),Hl(187),Il(15),Hl(7)}function D(){ic.startNonterminal(\"FTOptionDecl\",Vl),Pl(109),Il(55),Pl(143),Il(84),jl(),Qu(),ic.endNonterminal(\"FTOptionDecl\",Vl)}function P(){ic.startNonterminal(\"AnnotatedDecl\",Vl),Pl(109);for(;;){Il(192);if($l!=33&&$l!=263)break;switch($l){case 263:jl(),H();break;default:jl(),B()}}switch($l){case 268:jl(),F();break;case 147:jl(),_l();break;case 96:jl(),Ca();break;case 157:jl(),Ha();break;default:jl(),Ba()}ic.endNonterminal(\"AnnotatedDecl\",Vl)}function H(){ic.startNonterminal(\"CompatibilityAnnotation\",Vl),Pl(263),ic.endNonterminal(\"CompatibilityAnnotation\",Vl)}function B(){ic.startNonterminal(\"Annotation\",Vl),Pl(33),Il(246),jl(),$a(),Il(193);if($l==35){Pl(35),Il(190),jl(),di();for(;;){Il(105);if($l!=42)break;Pl(42),Il(190),jl(),di()}Pl(38)}ic.endNonterminal(\"Annotation\",Vl)}function j(){Hl(33),Il(246),Ja(),Il(193);if($l==35){Hl(35),Il(190),vi();for(;;){Il(105);if($l!=42)break;Hl(42),Il(190),vi()}Hl(38)}}function F(){ic.startNonterminal(\"VarDecl\",Vl),Pl(268),Il(21),Pl(31),Il(246),jl(),Ti(),Il(157),$l==80&&(jl(),Cs()),Il(110);switch($l){case 53:Pl(53),Il(267),jl(),I();break;default:Pl(134),Il(108),$l==53&&(Pl(53),Il(267),jl(),q())}ic.endNonterminal(\"VarDecl\",Vl)}function I(){ic.startNonterminal(\"VarValue\",Vl),Wf(),ic.endNonterminal(\"VarValue\",Vl)}function q(){ic.startNonterminal(\"VarDefaultValue\",Vl),Wf(),ic.endNonterminal(\"VarDefaultValue\",Vl)}function R(){ic.startNonterminal(\"ContextItemDecl\",Vl),Pl(109),Il(46),Pl(102),Il(58),Pl(167),Il(157),$l==80&&(Pl(80),Il(254),jl(),_s()),Il(110);switch($l){case 53:Pl(53),Il(267),jl(),I();break;default:Pl(134),Il(108),$l==53&&(Pl(53),Il(267),jl(),q())}ic.endNonterminal(\"ContextItemDecl\",Vl)}function U(){ic.startNonterminal(\"ParamList\",Vl),W();for(;;){Il(105);if($l!=42)break;Pl(42),Il(21),jl(),W()}ic.endNonterminal(\"ParamList\",Vl)}function z(){X();for(;;){Il(105);if($l!=42)break;Hl(42),Il(21),X()}}function W(){ic.startNonterminal(\"Param\",Vl),Pl(31),Il(246),jl(),$a(),Il(153),$l==80&&(jl(),Cs()),ic.endNonterminal(\"Param\",Vl)}function X(){Hl(31),Il(246),Ja(),Il(153),$l==80&&ks()}function V(){ic.startNonterminal(\"FunctionBody\",Vl),J(),ic.endNonterminal(\"FunctionBody\",Vl)}function $(){K()}function J(){ic.startNonterminal(\"EnclosedExpr\",Vl),Pl(281),Il(267),jl(),G(),Pl(287),ic.endNonterminal(\"EnclosedExpr\",Vl)}function K(){Hl(281),Il(267),Y(),Hl(287)}function Q(){ic.startNonterminal(\"OptionDecl\",Vl),Pl(109),Il(69),Pl(203),Il(246),jl(),$a(),Il(17),Pl(11),ic.endNonterminal(\"OptionDecl\",Vl)}function G(){ic.startNonterminal(\"Expr\",Vl),Wf();for(;;){if($l!=42)break;Pl(42),Il(267),jl(),Wf()}ic.endNonterminal(\"Expr\",Vl)}function Y(){Xf();for(;;){if($l!=42)break;Hl(42),Il(267),Xf()}}function Z(){ic.startNonterminal(\"FLWORExpr\",Vl),tt();for(;;){Il(195);if($l==224)break;jl(),rt()}jl(),rn(),ic.endNonterminal(\"FLWORExpr\",Vl)}function et(){nt();for(;;){Il(195);if($l==224)break;it()}sn()}function tt(){ic.startNonterminal(\"InitialClause\",Vl);switch($l){case 139:ql(151);break;default:Wl=$l}switch(Wl){case 16011:st();break;case 177:vt();break;default:bt()}ic.endNonterminal(\"InitialClause\",Vl)}function nt(){switch($l){case 139:ql(151);break;default:Wl=$l}switch(Wl){case 16011:ot();break;case 177:mt();break;default:wt()}}function rt(){ic.startNonterminal(\"IntermediateClause\",Vl);switch($l){case 139:case 177:tt();break;case 272:It();break;case 150:Rt();break;case 106:jt();break;default:Kt()}ic.endNonterminal(\"IntermediateClause\",Vl)}function it(){switch($l){case 139:case 177:nt();break;case 272:qt();break;case 150:Ut();break;case 106:Ft();break;default:Qt()}}function st(){ic.startNonterminal(\"ForClause\",Vl),Pl(139),Il(21),jl(),ut();for(;;){if($l!=42)break;Pl(42),Il(21),jl(),ut()}ic.endNonterminal(\"ForClause\",Vl)}function ot(){Hl(139),Il(21),at();for(;;){if($l!=42)break;Hl(42),Il(21),at()}}function ut(){ic.startNonterminal(\"ForBinding\",Vl),Pl(31),Il(246),jl(),Ti(),Il(182),$l==80&&(jl(),Cs()),Il(173),$l==73&&(jl(),ft()),Il(160),$l==82&&(jl(),ct()),Il(126),$l==232&&(jl(),pt()),Il(56),Pl(156),Il(267),jl(),Wf(),ic.endNonterminal(\"ForBinding\",Vl)}function at(){Hl(31),Il(246),Ni(),Il(182),$l==80&&ks(),Il(173),$l==73&&lt(),Il(160),$l==82&&ht(),Il(126),$l==232&&dt(),Il(56),Hl(156),Il(267),Xf()}function ft(){ic.startNonterminal(\"AllowingEmpty\",Vl),Pl(73),Il(52),Pl(124),ic.endNonterminal(\"AllowingEmpty\",Vl)}function lt(){Hl(73),Il(52),Hl(124)}function ct(){ic.startNonterminal(\"PositionalVar\",Vl),Pl(82),Il(21),Pl(31),Il(246),jl(),Ti(),ic.endNonterminal(\"PositionalVar\",Vl)}function ht(){Hl(82),Il(21),Hl(31),Il(246),Ni()}function pt(){ic.startNonterminal(\"FTScoreVar\",Vl),Pl(232),Il(21),Pl(31),Il(246),jl(),Ti(),ic.endNonterminal(\"FTScoreVar\",Vl)}function dt(){Hl(232),Il(21),Hl(31),Il(246),Ni()}function vt(){ic.startNonterminal(\"LetClause\",Vl),Pl(177),Il(100),jl(),gt();for(;;){if($l!=42)break;Pl(42),Il(100),jl(),gt()}ic.endNonterminal(\"LetClause\",Vl)}function mt(){Hl(177),Il(100),yt();for(;;){if($l!=42)break;Hl(42),Il(100),yt()}}function gt(){ic.startNonterminal(\"LetBinding\",Vl);switch($l){case 31:Pl(31),Il(246),jl(),Ti(),Il(109),$l==80&&(jl(),Cs());break;default:pt()}Il(28),Pl(53),Il(267),jl(),Wf(),ic.endNonterminal(\"LetBinding\",Vl)}function yt(){switch($l){case 31:Hl(31),Il(246),Ni(),Il(109),$l==80&&ks();break;default:dt()}Il(28),Hl(53),Il(267),Xf()}function bt(){ic.startNonterminal(\"WindowClause\",Vl),Pl(139),Il(139);switch($l){case 257:jl(),Et();break;default:jl(),xt()}ic.endNonterminal(\"WindowClause\",Vl)}function wt(){Hl(139),Il(139);switch($l){case 257:St();break;default:Tt()}}function Et(){ic.startNonterminal(\"TumblingWindowClause\",Vl),Pl(257),Il(88),Pl(275),Il(21),Pl(31),Il(246),jl(),Ti(),Il(114),$l==80&&(jl(),Cs()),Il(56),Pl(156),Il(267),jl(),Wf(),jl(),Nt();if($l==127||$l==202)jl(),kt();ic.endNonterminal(\"TumblingWindowClause\",Vl)}function St(){Hl(257),Il(88),Hl(275),Il(21),Hl(31),Il(246),Ni(),Il(114),$l==80&&ks(),Il(56),Hl(156),Il(267),Xf(),Ct(),($l==127||$l==202)&&Lt()}function xt(){ic.startNonterminal(\"SlidingWindowClause\",Vl),Pl(239),Il(88),Pl(275),Il(21),Pl(31),Il(246),jl(),Ti(),Il(114),$l==80&&(jl(),Cs()),Il(56),Pl(156),Il(267),jl(),Wf(),jl(),Nt(),jl(),kt(),ic.endNonterminal(\"SlidingWindowClause\",Vl)}function Tt(){Hl(239),Il(88),Hl(275),Il(21),Hl(31),Il(246),Ni(),Il(114),$l==80&&ks(),Il(56),Hl(156),Il(267),Xf(),Ct(),Lt()}function Nt(){ic.startNonterminal(\"WindowStartCondition\",Vl),Pl(242),Il(181),jl(),At(),Il(86),Pl(271),Il(267),jl(),Wf(),ic.endNonterminal(\"WindowStartCondition\",Vl)}function Ct(){Hl(242),Il(181),Ot(),Il(86),Hl(271),Il(267),Xf()}function kt(){ic.startNonterminal(\"WindowEndCondition\",Vl),$l==202&&Pl(202),Il(53),Pl(127),Il(181),jl(),At(),Il(86),Pl(271),Il(267),jl(),Wf(),ic.endNonterminal(\"WindowEndCondition\",Vl)}function Lt(){$l==202&&Hl(202),Il(53),Hl(127),Il(181),Ot(),Il(86),Hl(271),Il(267),Xf()}function At(){ic.startNonterminal(\"WindowVars\",Vl),$l==31&&(Pl(31),Il(246),jl(),Mt()),Il(174),$l==82&&(jl(),ct()),Il(163),$l==219&&(Pl(219),Il(21),Pl(31),Il(246),jl(),Dt()),Il(131),$l==190&&(Pl(190),Il(21),Pl(31),Il(246),jl(),Ht()),ic.endNonterminal(\"WindowVars\",Vl)}function Ot(){$l==31&&(Hl(31),Il(246),_t()),Il(174),$l==82&&ht(),Il(163),$l==219&&(Hl(219),Il(21),Hl(31),Il(246),Pt()),Il(131),$l==190&&(Hl(190),Il(21),Hl(31),Il(246),Bt())}function Mt(){ic.startNonterminal(\"CurrentItem\",Vl),$a(),ic.endNonterminal(\"CurrentItem\",Vl)}function _t(){Ja()}function Dt(){ic.startNonterminal(\"PreviousItem\",Vl),$a(),ic.endNonterminal(\"PreviousItem\",Vl)}function Pt(){Ja()}function Ht(){ic.startNonterminal(\"NextItem\",Vl),$a(),ic.endNonterminal(\"NextItem\",Vl)}function Bt(){Ja()}function jt(){ic.startNonterminal(\"CountClause\",Vl),Pl(106),Il(21),Pl(31),Il(246),jl(),Ti(),ic.endNonterminal(\"CountClause\",Vl)}function Ft(){Hl(106),Il(21),Hl(31),Il(246),Ni()}function It(){ic.startNonterminal(\"WhereClause\",Vl),Pl(272),Il(267),jl(),Wf(),ic.endNonterminal(\"WhereClause\",Vl)}function qt(){Hl(272),Il(267),Xf()}function Rt(){ic.startNonterminal(\"GroupByClause\",Vl),Pl(150),Il(37),Pl(88),Il(267),jl(),zt(),ic.endNonterminal(\"GroupByClause\",Vl)}function Ut(){Hl(150),Il(37),Hl(88),Il(267),Wt()}function zt(){ic.startNonterminal(\"GroupingSpecList\",Vl),Xt();for(;;){Il(198);if($l!=42)break;Pl(42),Il(267),jl(),Xt()}ic.endNonterminal(\"GroupingSpecList\",Vl)}function Wt(){Vt();for(;;){Il(198);if($l!=42)break;Hl(42),Il(267),Vt()}}function Xt(){ic.startNonterminal(\"GroupingSpec\",Vl);switch($l){case 31:ql(246);break;default:Wl=$l}if(Wl==3103||Wl==36383||Wl==37407||Wl==37919||Wl==38431||Wl==38943||Wl==39967||Wl==40479||Wl==40991||Wl==41503||Wl==42015||Wl==42527||Wl==43039||Wl==43551||Wl==44063||Wl==44575||Wl==45599||Wl==46111||Wl==46623||Wl==47135||Wl==48159||Wl==48671||Wl==49695||Wl==50207||Wl==50719||Wl==52255||Wl==52767||Wl==53279||Wl==53791||Wl==54303||Wl==54815||Wl==55839||Wl==56351||Wl==56863||Wl==57375||Wl==57887||Wl==58399||Wl==60959||Wl==61471||Wl==61983||Wl==62495||Wl==63007||Wl==63519||Wl==64031||Wl==64543||Wl==65055||Wl==66079||Wl==66591||Wl==67615||Wl==68127||Wl==68639||Wl==69151||Wl==69663||Wl==70175||Wl==70687||Wl==71199||Wl==72735||Wl==73247||Wl==75295||Wl==75807||Wl==76831||Wl==77855||Wl==78367||Wl==78879||Wl==79391||Wl==79903||Wl==80415||Wl==82463||Wl==82975||Wl==83487||Wl==83999||Wl==84511||Wl==85023||Wl==85535||Wl==86047||Wl==86559||Wl==87071||Wl==88607||Wl==89119||Wl==89631||Wl==90655||Wl==91679||Wl==92703||Wl==93727||Wl==94239||Wl==94751||Wl==95775||Wl==96287||Wl==96799||Wl==99359||Wl==99871||Wl==100895||Wl==101407||Wl==103455||Wl==103967||Wl==104479||Wl==104991||Wl==105503||Wl==106015||Wl==107551||Wl==110623||Wl==111135||Wl==112671||Wl==113695||Wl==114207||Wl==114719||Wl==115231||Wl==115743||Wl==116767||Wl==117279||Wl==117791||Wl==118303||Wl==118815||Wl==119327||Wl==119839||Wl==122399||Wl==122911||Wl==123423||Wl==123935||Wl==125471||Wl==126495||Wl==127007||Wl==127519||Wl==129567||Wl==130079||Wl==130591||Wl==131103||Wl==131615||Wl==132127||Wl==132639||Wl==133151||Wl==134175||Wl==134687||Wl==136223||Wl==136735||Wl==137247||Wl==137759||Wl==139295||Wl==139807||Wl==141343){Wl=uc(2,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Jt(),Il(206);if($l==53||$l==80)$l==80&&ks(),Il(28),Hl(53),Il(267),Xf();$l==95&&(Hl(95),Il(15),Hl(7)),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(2,Vl,Wl)}}switch(Wl){case-1:$t(),Il(206);if($l==53||$l==80)$l==80&&(jl(),Cs()),Il(28),Pl(53),Il(267),jl(),Wf();$l==95&&(Pl(95),Il(15),Pl(7));break;default:Wf()}ic.endNonterminal(\"GroupingSpec\",Vl)}function Vt(){switch($l){case 31:ql(246);break;default:Wl=$l}if(Wl==3103||Wl==36383||Wl==37407||Wl==37919||Wl==38431||Wl==38943||Wl==39967||Wl==40479||Wl==40991||Wl==41503||Wl==42015||Wl==42527||Wl==43039||Wl==43551||Wl==44063||Wl==44575||Wl==45599||Wl==46111||Wl==46623||Wl==47135||Wl==48159||Wl==48671||Wl==49695||Wl==50207||Wl==50719||Wl==52255||Wl==52767||Wl==53279||Wl==53791||Wl==54303||Wl==54815||Wl==55839||Wl==56351||Wl==56863||Wl==57375||Wl==57887||Wl==58399||Wl==60959||Wl==61471||Wl==61983||Wl==62495||Wl==63007||Wl==63519||Wl==64031||Wl==64543||Wl==65055||Wl==66079||Wl==66591||Wl==67615||Wl==68127||Wl==68639||Wl==69151||Wl==69663||Wl==70175||Wl==70687||Wl==71199||Wl==72735||Wl==73247||Wl==75295||Wl==75807||Wl==76831||Wl==77855||Wl==78367||Wl==78879||Wl==79391||Wl==79903||Wl==80415||Wl==82463||Wl==82975||Wl==83487||Wl==83999||Wl==84511||Wl==85023||Wl==85535||Wl==86047||Wl==86559||Wl==87071||Wl==88607||Wl==89119||Wl==89631||Wl==90655||Wl==91679||Wl==92703||Wl==93727||Wl==94239||Wl==94751||Wl==95775||Wl==96287||Wl==96799||Wl==99359||Wl==99871||Wl==100895||Wl==101407||Wl==103455||Wl==103967||Wl==104479||Wl==104991||Wl==105503||Wl==106015||Wl==107551||Wl==110623||Wl==111135||Wl==112671||Wl==113695||Wl==114207||Wl==114719||Wl==115231||Wl==115743||Wl==116767||Wl==117279||Wl==117791||Wl==118303||Wl==118815||Wl==119327||Wl==119839||Wl==122399||Wl==122911||Wl==123423||Wl==123935||Wl==125471||Wl==126495||Wl==127007||Wl==127519||Wl==129567||Wl==130079||Wl==130591||Wl==131103||Wl==131615||Wl==132127||Wl==132639||Wl==133151||Wl==134175||Wl==134687||Wl==136223||Wl==136735||Wl==137247||Wl==137759||Wl==139295||Wl==139807||Wl==141343){Wl=uc(2,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Jt(),Il(206);if($l==53||$l==80)$l==80&&ks(),Il(28),Hl(53),Il(267),Xf();$l==95&&(Hl(95),Il(15),Hl(7)),oc(2,t,-1),Wl=-3}catch(a){Wl=-2,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(2,t,-2)}}}switch(Wl){case-1:Jt(),Il(206);if($l==53||$l==80)$l==80&&ks(),Il(28),Hl(53),Il(267),Xf();$l==95&&(Hl(95),Il(15),Hl(7));break;case-3:break;default:Xf()}}function $t(){ic.startNonterminal(\"GroupingVariable\",Vl),Pl(31),Il(246),jl(),Ti(),ic.endNonterminal(\"GroupingVariable\",Vl)}function Jt(){Hl(31),Il(246),Ni()}function Kt(){ic.startNonterminal(\"OrderByClause\",Vl);switch($l){case 205:Pl(205),Il(37),Pl(88);break;default:Pl(241),Il(70),Pl(205),Il(37),Pl(88)}Il(267),jl(),Gt(),ic.endNonterminal(\"OrderByClause\",Vl)}function Qt(){switch($l){case 205:Hl(205),Il(37),Hl(88);break;default:Hl(241),Il(70),Hl(205),Il(37),Hl(88)}Il(267),Yt()}function Gt(){ic.startNonterminal(\"OrderSpecList\",Vl),Zt();for(;;){Il(198);if($l!=42)break;Pl(42),Il(267),jl(),Zt()}ic.endNonterminal(\"OrderSpecList\",Vl)}function Yt(){en();for(;;){Il(198);if($l!=42)break;Hl(42),Il(267),en()}}function Zt(){ic.startNonterminal(\"OrderSpec\",Vl),Wf(),jl(),tn(),ic.endNonterminal(\"OrderSpec\",Vl)}function en(){Xf(),nn()}function tn(){ic.startNonterminal(\"OrderModifier\",Vl);if($l==81||$l==114)switch($l){case 81:Pl(81);break;default:Pl(114)}Il(203);if($l==124){Pl(124),Il(125);switch($l){case 149:Pl(149);break;default:Pl(176)}}Il(199),$l==95&&(Pl(95),Il(15),Pl(7)),ic.endNonterminal(\"OrderModifier\",Vl)}function nn(){if($l==81||$l==114)switch($l){case 81:Hl(81);break;default:Hl(114)}Il(203);if($l==124){Hl(124),Il(125);switch($l){case 149:Hl(149);break;default:Hl(176)}}Il(199),$l==95&&(Hl(95),Il(15),Hl(7))}function rn(){ic.startNonterminal(\"ReturnClause\",Vl),Pl(224),Il(267),jl(),Wf(),ic.endNonterminal(\"ReturnClause\",Vl)}function sn(){Hl(224),Il(267),Xf()}function on(){ic.startNonterminal(\"QuantifiedExpr\",Vl);switch($l){case 240:Pl(240);break;default:Pl(130)}Il(21),jl(),an();for(;;){if($l!=42)break;Pl(42),Il(21),jl(),an()}Pl(228),Il(267),jl(),Wf(),ic.endNonterminal(\"QuantifiedExpr\",Vl)}function un(){switch($l){case 240:Hl(240);break;default:Hl(130)}Il(21),fn();for(;;){if($l!=42)break;Hl(42),Il(21),fn()}Hl(228),Il(267),Xf()}function an(){ic.startNonterminal(\"QuantifiedVarDecl\",Vl),Pl(31),Il(246),jl(),Ti(),Il(114),$l==80&&(jl(),Cs()),Il(56),Pl(156),Il(267),jl(),Wf(),ic.endNonterminal(\"QuantifiedVarDecl\",Vl)}function fn(){Hl(31),Il(246),Ni(),Il(114),$l==80&&ks(),Il(56),Hl(156),Il(267),Xf()}function ln(){ic.startNonterminal(\"SwitchExpr\",Vl),Pl(248),Il(22),Pl(35),Il(267),jl(),G(),Pl(38);for(;;){Il(38),jl(),hn();if($l!=89)break}Pl(110),Il(73),Pl(224),Il(267),jl(),Wf(),ic.endNonterminal(\"SwitchExpr\",Vl)}function cn(){Hl(248),Il(22),Hl(35),Il(267),Y(),Hl(38);for(;;){Il(38),pn();if($l!=89)break}Hl(110),Il(73),Hl(224),Il(267),Xf()}function hn(){ic.startNonterminal(\"SwitchCaseClause\",Vl);for(;;){Pl(89),Il(267),jl(),dn();if($l!=89)break}Pl(224),Il(267),jl(),Wf(),ic.endNonterminal(\"SwitchCaseClause\",Vl)}function pn(){for(;;){Hl(89),Il(267),vn();if($l!=89)break}Hl(224),Il(267),Xf()}function dn(){ic.startNonterminal(\"SwitchCaseOperand\",Vl),Wf(),ic.endNonterminal(\"SwitchCaseOperand\",Vl)}function vn(){Xf()}function mn(){ic.startNonterminal(\"TypeswitchExpr\",Vl),Pl(259),Il(22),Pl(35),Il(267),jl(),G(),Pl(38);for(;;){Il(38),jl(),yn();if($l!=89)break}Pl(110),Il(99),$l==31&&(Pl(31),Il(246),jl(),Ti()),Il(73),Pl(224),Il(267),jl(),Wf(),ic.endNonterminal(\"TypeswitchExpr\",Vl)}function gn(){Hl(259),Il(22),Hl(35),Il(267),Y(),Hl(38);for(;;){Il(38),bn();if($l!=89)break}Hl(110),Il(99),$l==31&&(Hl(31),Il(246),Ni()),Il(73),Hl(224),Il(267),Xf()}function yn(){ic.startNonterminal(\"CaseClause\",Vl),Pl(89),Il(258),$l==31&&(Pl(31),Il(246),jl(),Ti(),Il(33),Pl(80)),Il(254),jl(),wn(),Pl(224),Il(267),jl(),Wf(),ic.endNonterminal(\"CaseClause\",Vl)}function bn(){Hl(89),Il(258),$l==31&&(Hl(31),Il(246),Ni(),Il(33),Hl(80)),Il(254),En(),Hl(224),Il(267),Xf()}function wn(){ic.startNonterminal(\"SequenceTypeUnion\",Vl),Ls();for(;;){Il(138);if($l!=284)break;Pl(284),Il(254),jl(),Ls()}ic.endNonterminal(\"SequenceTypeUnion\",Vl)}function En(){As();for(;;){Il(138);if($l!=284)break;Hl(284),Il(254),As()}}function Sn(){ic.startNonterminal(\"IfExpr\",Vl),Pl(154),Il(22),Pl(35),Il(267),jl(),G(),Pl(38),Il(80),Pl(250),Il(267),jl(),Wf(),Pl(123),Il(267),jl(),Wf(),ic.endNonterminal(\"IfExpr\",Vl)}function xn(){Hl(154),Il(22),Hl(35),Il(267),Y(),Hl(38),Il(80),Hl(250),Il(267),Xf(),Hl(123),Il(267),Xf()}function Tn(){ic.startNonterminal(\"TryCatchExpr\",Vl),Cn();for(;;){Il(39),jl(),On(),Il(208);if($l!=92)break}ic.endNonterminal(\"TryCatchExpr\",Vl)}function Nn(){kn();for(;;){Il(39),Mn(),Il(208);if($l!=92)break}}function Cn(){ic.startNonterminal(\"TryClause\",Vl),Pl(256),Il(90),Pl(281),Il(267),jl(),Ln(),Pl(287),ic.endNonterminal(\"TryClause\",Vl)}function kn(){Hl(256),Il(90),Hl(281),Il(267),An(),Hl(287)}function Ln(){ic.startNonterminal(\"TryTargetExpr\",Vl),G(),ic.endNonterminal(\"TryTargetExpr\",Vl)}function An(){Y()}function On(){ic.startNonterminal(\"CatchClause\",Vl),Pl(92),Il(249),jl(),_n(),Pl(281),Il(267),jl(),G(),Pl(287),ic.endNonterminal(\"CatchClause\",Vl)}function Mn(){Hl(92),Il(249),Dn(),Hl(281),Il(267),Y(),Hl(287)}function _n(){ic.startNonterminal(\"CatchErrorList\",Vl),Yr();for(;;){Il(140);if($l!=284)break;Pl(284),Il(249),jl(),Yr()}ic.endNonterminal(\"CatchErrorList\",Vl)}function Dn(){Zr();for(;;){Il(140);if($l!=284)break;Hl(284),Il(249),Zr()}}function Pn(){ic.startNonterminal(\"OrExpr\",Vl),Bn();for(;;){if($l!=204)break;Pl(204),Il(267),jl(),Bn()}ic.endNonterminal(\"OrExpr\",Vl)}function Hn(){jn();for(;;){if($l!=204)break;Hl(204),Il(267),jn()}}function Bn(){ic.startNonterminal(\"AndExpr\",Vl),Fn();for(;;){if($l!=76)break;Pl(76),Il(267),jl(),Fn()}ic.endNonterminal(\"AndExpr\",Vl)}function jn(){In();for(;;){if($l!=76)break;Hl(76),Il(267),In()}}function Fn(){ic.startNonterminal(\"NotExpr\",Vl),$l==196&&Pl(196),Il(266),jl(),qn(),ic.endNonterminal(\"NotExpr\",Vl)}function In(){$l==196&&Hl(196),Il(266),Rn()}function qn(){ic.startNonterminal(\"ComparisonExpr\",Vl),Un();if($l==27||$l==55||$l==58||$l==59||$l==61||$l==62||$l==63||$l==64||$l==129||$l==148||$l==152||$l==166||$l==175||$l==181||$l==189){switch($l){case 129:case 148:case 152:case 175:case 181:case 189:jl(),yr();break;case 58:case 64:case 166:jl(),wr();break;default:jl(),mr()}Il(266),jl(),Un()}ic.endNonterminal(\"ComparisonExpr\",Vl)}function Rn(){zn();if($l==27||$l==55||$l==58||$l==59||$l==61||$l==62||$l==63||$l==64||$l==129||$l==148||$l==152||$l==166||$l==175||$l==181||$l==189){switch($l){case 129:case 148:case 152:case 175:case 181:case 189:br();break;case 58:case 64:case 166:Er();break;default:gr()}Il(266),zn()}}function Un(){ic.startNonterminal(\"FTContainsExpr\",Vl),Wn(),$l==100&&(Pl(100),Il(79),Pl(249),Il(177),jl(),ou(),$l==277&&(jl(),Ta())),ic.endNonterminal(\"FTContainsExpr\",Vl)}function zn(){Xn(),$l==100&&(Hl(100),Il(79),Hl(249),Il(177),uu(),$l==277&&Na())}function Wn(){ic.startNonterminal(\"StringConcatExpr\",Vl),Vn();for(;;){if($l!=285)break;Pl(285),Il(266),jl(),Vn()}ic.endNonterminal(\"StringConcatExpr\",Vl)}function Xn(){$n();for(;;){if($l!=285)break;Hl(285),Il(266),$n()}}function Vn(){ic.startNonterminal(\"RangeExpr\",Vl),Jn(),$l==253&&(Pl(253),Il(266),jl(),Jn()),ic.endNonterminal(\"RangeExpr\",Vl)}function $n(){Kn(),$l==253&&(Hl(253),Il(266),Kn())}function Jn(){ic.startNonterminal(\"AdditiveExpr\",Vl),Qn();for(;;){if($l!=41&&$l!=43)break;switch($l){case 41:Pl(41);break;default:Pl(43)}Il(266),jl(),Qn()}ic.endNonterminal(\"AdditiveExpr\",Vl)}function Kn(){Gn();for(;;){if($l!=41&&$l!=43)break;switch($l){case 41:Hl(41);break;default:Hl(43)}Il(266),Gn()}}function Qn(){ic.startNonterminal(\"MultiplicativeExpr\",Vl),Yn();for(;;){if($l!=39&&$l!=119&&$l!=153&&$l!=183)break;switch($l){case 39:Pl(39);break;case 119:Pl(119);break;case 153:Pl(153);break;default:Pl(183)}Il(266),jl(),Yn()}ic.endNonterminal(\"MultiplicativeExpr\",Vl)}function Gn(){Zn();for(;;){if($l!=39&&$l!=119&&$l!=153&&$l!=183)break;switch($l){case 39:Hl(39);break;case 119:Hl(119);break;case 153:Hl(153);break;default:Hl(183)}Il(266),Zn()}}function Yn(){ic.startNonterminal(\"UnionExpr\",Vl),er();for(;;){if($l!=260&&$l!=284)break;switch($l){case 260:Pl(260);break;default:Pl(284)}Il(266),jl(),er()}ic.endNonterminal(\"UnionExpr\",Vl)}function Zn(){tr();for(;;){if($l!=260&&$l!=284)break;switch($l){case 260:Hl(260);break;default:Hl(284)}Il(266),tr()}}function er(){ic.startNonterminal(\"IntersectExceptExpr\",Vl),nr();for(;;){Il(222);if($l!=132&&$l!=164)break;switch($l){case 164:Pl(164);break;default:Pl(132)}Il(266),jl(),nr()}ic.endNonterminal(\"IntersectExceptExpr\",Vl)}function tr(){rr();for(;;){Il(222);if($l!=132&&$l!=164)break;switch($l){case 164:Hl(164);break;default:Hl(132)}Il(266),rr()}}function nr(){ic.startNonterminal(\"InstanceofExpr\",Vl),ir(),Il(223),$l==162&&(Pl(162),Il(67),Pl(200),Il(254),jl(),Ls()),ic.endNonterminal(\"InstanceofExpr\",Vl)}function rr(){sr(),Il(223),$l==162&&(Hl(162),Il(67),Hl(200),Il(254),As())}function ir(){ic.startNonterminal(\"TreatExpr\",Vl),or(),Il(224),$l==254&&(Pl(254),Il(33),Pl(80),Il(254),jl(),Ls()),ic.endNonterminal(\"TreatExpr\",Vl)}function sr(){ur(),Il(224),$l==254&&(Hl(254),Il(33),Hl(80),Il(254),As())}function or(){ic.startNonterminal(\"CastableExpr\",Vl),ar(),Il(225),$l==91&&(Pl(91),Il(33),Pl(80),Il(246),jl(),Ts()),ic.endNonterminal(\"CastableExpr\",Vl)}function ur(){fr(),Il(225),$l==91&&(Hl(91),Il(33),Hl(80),Il(246),Ns())}function ar(){ic.startNonterminal(\"CastExpr\",Vl),lr(),Il(227),$l==90&&(Pl(90),Il(33),Pl(80),Il(246),jl(),Ts()),ic.endNonterminal(\"CastExpr\",Vl)}function fr(){cr(),Il(227),$l==90&&(Hl(90),Il(33),Hl(80),Il(246),Ns())}function lr(){ic.startNonterminal(\"UnaryExpr\",Vl);for(;;){Il(266);if($l!=41&&$l!=43)break;switch($l){case 43:Pl(43);break;default:Pl(41)}}jl(),hr(),ic.endNonterminal(\"UnaryExpr\",Vl)}function cr(){for(;;){Il(266);if($l!=41&&$l!=43)break;switch($l){case 43:Hl(43);break;default:Hl(41)}}pr()}function hr(){ic.startNonterminal(\"ValueExpr\",Vl);switch($l){case 266:ql(188);break;default:Wl=$l}switch(Wl){case 89354:case 125706:case 132362:case 144138:Sr();break;case 36:Cr();break;default:dr()}ic.endNonterminal(\"ValueExpr\",Vl)}function pr(){switch($l){case 266:ql(188);break;default:Wl=$l}switch(Wl){case 89354:case 125706:case 132362:case 144138:xr();break;case 36:kr();break;default:vr()}}function dr(){ic.startNonterminal(\"SimpleMapExpr\",Vl),Or();for(;;){if($l!=26)break;Pl(26),Il(263),jl(),Or()}ic.endNonterminal(\"SimpleMapExpr\",Vl)}function vr(){Mr();for(;;){if($l!=26)break;Hl(26),Il(263),Mr()}}function mr(){ic.startNonterminal(\"GeneralComp\",Vl);switch($l){case 61:Pl(61);break;case 27:Pl(27);break;case 55:Pl(55);break;case 59:Pl(59);break;case 62:Pl(62);break;default:Pl(63)}ic.endNonterminal(\"GeneralComp\",Vl)}function gr(){switch($l){case 61:Hl(61);break;case 27:Hl(27);break;case 55:Hl(55);break;case 59:Hl(59);break;case 62:Hl(62);break;default:Hl(63)}}function yr(){ic.startNonterminal(\"ValueComp\",Vl);switch($l){case 129:Pl(129);break;case 189:Pl(189);break;case 181:Pl(181);break;case 175:Pl(175);break;case 152:Pl(152);break;default:Pl(148)}ic.endNonterminal(\"ValueComp\",Vl)}function br(){switch($l){case 129:Hl(129);break;case 189:Hl(189);break;case 181:Hl(181);break;case 175:Hl(175);break;case 152:Hl(152);break;default:Hl(148)}}function wr(){ic.startNonterminal(\"NodeComp\",Vl);switch($l){case 166:Pl(166);break;case 58:Pl(58);break;default:Pl(64)}ic.endNonterminal(\"NodeComp\",Vl)}function Er(){switch($l){case 166:Hl(166);break;case 58:Hl(58);break;default:Hl(64)}}function Sr(){ic.startNonterminal(\"ValidateExpr\",Vl),Pl(266),Il(175);if($l!=281)switch($l){case 258:Pl(258),Il(246),jl(),Ao();break;default:jl(),Tr()}Il(90),Pl(281),Il(267),jl(),G(),Pl(287),ic.endNonterminal(\"ValidateExpr\",Vl)}function xr(){Hl(266),Il(175);if($l!=281)switch($l){case 258:Hl(258),Il(246),Oo();break;default:Nr()}Il(90),Hl(281),Il(267),Y(),Hl(287)}function Tr(){ic.startNonterminal(\"ValidationMode\",Vl);switch($l){case 174:Pl(174);break;default:Pl(245)}ic.endNonterminal(\"ValidationMode\",Vl)}function Nr(){switch($l){case 174:Hl(174);break;default:Hl(245)}}function Cr(){ic.startNonterminal(\"ExtensionExpr\",Vl);for(;;){jl(),Lr(),Il(104);if($l!=36)break}Pl(281),Il(275),$l!=287&&(jl(),G()),Pl(287),ic.endNonterminal(\"ExtensionExpr\",Vl)}function kr(){for(;;){Ar(),Il(104);if($l!=36)break}Hl(281),Il(275),$l!=287&&Y(),Hl(287)}function Lr(){ic.startNonterminal(\"Pragma\",Vl),Pl(36),Rl(243),$l==21&&Pl(21),$a(),Rl(10),$l==21&&(Pl(21),Rl(0),Pl(1)),Rl(5),Pl(30),ic.endNonterminal(\"Pragma\",Vl)}function Ar(){Hl(36),Rl(243),$l==21&&Hl(21),Ja(),Rl(10),$l==21&&(Hl(21),Rl(0),Hl(1)),Rl(5),Hl(30)}function Or(){ic.startNonterminal(\"PathExpr\",Vl);switch($l){case 47:Pl(47),Il(289);switch($l){case 25:case 26:case 27:case 38:case 39:case 41:case 42:case 43:case 50:case 54:case 58:case 59:case 61:case 62:case 63:case 64:case 70:case 88:case 100:case 209:case 237:case 252:case 279:case 284:case 285:case 286:case 287:break;default:jl(),_r()}break;case 48:Pl(48),Il(260),jl(),_r();break;default:_r()}ic.endNonterminal(\"PathExpr\",Vl)}function Mr(){switch($l){case 47:Hl(47),Il(289);switch($l){case 25:case 26:case 27:case 38:case 39:case 41:case 42:case 43:case 50:case 54:case 58:case 59:case 61:case 62:case 63:case 64:case 70:case 88:case 100:case 209:case 237:case 252:case 279:case 284:case 285:case 286:case 287:break;default:Dr()}break;case 48:Hl(48),Il(260),Dr();break;default:Dr()}}function _r(){ic.startNonterminal(\"RelativePathExpr\",Vl),ei();for(;;){switch($l){case 26:ql(265);break;default:Wl=$l}if(Wl!=25&&Wl!=27&&Wl!=38&&Wl!=39&&Wl!=41&&Wl!=42&&Wl!=43&&Wl!=47&&Wl!=48&&Wl!=50&&Wl!=54&&Wl!=55&&Wl!=58&&Wl!=59&&Wl!=61&&Wl!=62&&Wl!=63&&Wl!=64&&Wl!=70&&Wl!=71&&Wl!=76&&Wl!=80&&Wl!=81&&Wl!=82&&Wl!=85&&Wl!=88&&Wl!=89&&Wl!=90&&Wl!=91&&Wl!=95&&Wl!=100&&Wl!=106&&Wl!=110&&Wl!=114&&Wl!=119&&Wl!=123&&Wl!=124&&Wl!=127&&Wl!=129&&Wl!=132&&Wl!=139&&Wl!=148&&Wl!=150&&Wl!=152&&Wl!=153&&Wl!=162&&Wl!=164&&Wl!=165&&Wl!=166&&Wl!=175&&Wl!=177&&Wl!=181&&Wl!=183&&Wl!=184&&Wl!=189&&Wl!=202&&Wl!=204&&Wl!=205&&Wl!=209&&Wl!=224&&Wl!=228&&Wl!=237&&Wl!=241&&Wl!=242&&Wl!=252&&Wl!=253&&Wl!=254&&Wl!=260&&Wl!=272&&Wl!=276&&Wl!=279&&Wl!=284&&Wl!=285&&Wl!=286&&Wl!=287&&Wl!=2586&&Wl!=23578&&Wl!=24090&&Wl!=24602&&Wl!=34330){Wl=uc(3,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{switch($l){case 47:Hl(47);break;case 48:Hl(48);break;default:Hl(26)}Il(264),Hr(),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(3,Vl,Wl)}}if(Wl!=-1&&Wl!=47&&Wl!=48&&Wl!=2586&&Wl!=23578&&Wl!=34330)break;switch($l){case 47:Pl(47);break;case 48:Pl(48);break;default:Pl(26)}Il(264),jl(),Pr()}ic.endNonterminal(\"RelativePathExpr\",Vl)}function Dr(){ti();for(;;){switch($l){case 26:ql(265);break;default:Wl=$l}if(Wl!=25&&Wl!=27&&Wl!=38&&Wl!=39&&Wl!=41&&Wl!=42&&Wl!=43&&Wl!=47&&Wl!=48&&Wl!=50&&Wl!=54&&Wl!=55&&Wl!=58&&Wl!=59&&Wl!=61&&Wl!=62&&Wl!=63&&Wl!=64&&Wl!=70&&Wl!=71&&Wl!=76&&Wl!=80&&Wl!=81&&Wl!=82&&Wl!=85&&Wl!=88&&Wl!=89&&Wl!=90&&Wl!=91&&Wl!=95&&Wl!=100&&Wl!=106&&Wl!=110&&Wl!=114&&Wl!=119&&Wl!=123&&Wl!=124&&Wl!=127&&Wl!=129&&Wl!=132&&Wl!=139&&Wl!=148&&Wl!=150&&Wl!=152&&Wl!=153&&Wl!=162&&Wl!=164&&Wl!=165&&Wl!=166&&Wl!=175&&Wl!=177&&Wl!=181&&Wl!=183&&Wl!=184&&Wl!=189&&Wl!=202&&Wl!=204&&Wl!=205&&Wl!=209&&Wl!=224&&Wl!=228&&Wl!=237&&Wl!=241&&Wl!=242&&Wl!=252&&Wl!=253&&Wl!=254&&Wl!=260&&Wl!=272&&Wl!=276&&Wl!=279&&Wl!=284&&Wl!=285&&Wl!=286&&Wl!=287&&Wl!=2586&&Wl!=23578&&Wl!=24090&&Wl!=24602&&Wl!=34330){Wl=uc(3,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{switch($l){case 47:Hl(47);break;case 48:Hl(48);break;default:Hl(26)}Il(264),Hr(),oc(3,t,-1);continue}catch(a){Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(3,t,-2);break}}}if(Wl!=-1&&Wl!=47&&Wl!=48&&Wl!=2586&&Wl!=23578&&Wl!=34330)break;switch($l){case 47:Hl(47);break;case 48:Hl(48);break;default:Hl(26)}Il(264),Hr()}}function Pr(){ic.startNonterminal(\"StepExpr\",Vl);switch($l){case 83:ql(288);break;case 122:ql(287);break;case 187:case 220:ql(285);break;case 135:case 197:case 255:ql(237);break;case 97:case 120:case 206:case 249:case 262:ql(239);break;case 79:case 125:case 154:case 167:case 169:case 247:case 248:case 259:ql(230);break;case 74:case 75:case 94:case 112:case 113:case 137:case 138:case 210:case 216:case 217:case 234:ql(238);break;case 6:case 71:case 73:case 76:case 78:case 80:case 81:case 82:case 84:case 85:case 86:case 87:case 89:case 90:case 91:case 92:case 95:case 98:case 99:case 102:case 103:case 104:case 105:case 106:case 107:case 109:case 110:case 111:case 114:case 119:case 121:case 123:case 124:case 126:case 127:case 129:case 130:case 132:case 133:case 134:case 136:case 139:case 142:case 143:case 147:case 148:case 150:case 152:case 153:case 155:case 156:case 157:case 161:case 162:case 163:case 164:case 165:case 166:case 168:case 170:case 173:case 174:case 175:case 177:case 179:case 181:case 183:case 184:case 185:case 188:case 189:case 194:case 195:case 198:case 202:case 203:case 204:case 205:case 207:case 222:case 223:case 224:case 225:case 226:case 228:case 229:case 230:case 231:case 232:case 233:case 239:case 240:case 241:case 242:case 245:case 253:case 254:case 256:case 257:case 258:case 260:case 263:case 266:case 267:case 268:case 269:case 272:case 273:case 276:ql(234);break;default:Wl=$l}if(Wl==12935||Wl==12997||Wl==13055||Wl==13447||Wl==13509||Wl==13567||Wl==13959||Wl==14021||Wl==14079||Wl==19591||Wl==19653||Wl==19711||Wl==20103||Wl==20165||Wl==20223||Wl==21127||Wl==21189||Wl==21247||Wl==21639||Wl==21701||Wl==21759||Wl==22151||Wl==22213||Wl==22271||Wl==24199||Wl==24261||Wl==24319||Wl==24711||Wl==24773||Wl==24831||Wl==25735||Wl==25797||Wl==25855||Wl==27783||Wl==27845||Wl==27903||Wl==28295||Wl==28357||Wl==28415||Wl==29831||Wl==29893||Wl==29951||Wl==30343||Wl==30405||Wl==30463||Wl==31367||Wl==31429||Wl==31487||Wl==31879||Wl==31941||Wl==31999||Wl==32391||Wl==32453||Wl==32511||Wl==32903||Wl==32965||Wl==33023||Wl==35463||Wl==35525||Wl==35583||Wl==35975||Wl==36037||Wl==36095||Wl==36435||Wl==36474||Wl==36487||Wl==36539||Wl==36549||Wl==36572||Wl==36607||Wl==38995||Wl==39034||Wl==39047||Wl==39099||Wl==39109||Wl==39132||Wl==39167||Wl==41043||Wl==41082||Wl==41095||Wl==41147||Wl==41157||Wl==41180||Wl==41215||Wl==41555||Wl==41594||Wl==41607||Wl==41659||Wl==41669||Wl==41692||Wl==41727||Wl==42067||Wl==42106||Wl==42119||Wl==42171||Wl==42181||Wl==42204||Wl==42239||Wl==43603||Wl==43642||Wl==43655||Wl==43707||Wl==43717||Wl==43740||Wl==43775||Wl==45191||Wl==45253||Wl==45311||Wl==45651||Wl==45690||Wl==45703||Wl==45755||Wl==45765||Wl==45788||Wl==45823||Wl==46163||Wl==46202||Wl==46215||Wl==46267||Wl==46277||Wl==46300||Wl==46335||Wl==46675||Wl==46714||Wl==46727||Wl==46779||Wl==46789||Wl==46812||Wl==46847||Wl==48723||Wl==48762||Wl==48775||Wl==48827||Wl==48837||Wl==48860||Wl==48895||Wl==51335||Wl==51397||Wl==51455||Wl==54355||Wl==54394||Wl==54407||Wl==54459||Wl==54469||Wl==54492||Wl==54527||Wl==56403||Wl==56442||Wl==56455||Wl==56507||Wl==56517||Wl==56540||Wl==56575||Wl==58451||Wl==58490||Wl==58503||Wl==58555||Wl==58565||Wl==58588||Wl==58623||Wl==61011||Wl==61050||Wl==61063||Wl==61115||Wl==61125||Wl==61148||Wl==61183||Wl==63059||Wl==63098||Wl==63111||Wl==63163||Wl==63173||Wl==63196||Wl==63231||Wl==63571||Wl==63610||Wl==63623||Wl==63675||Wl==63685||Wl==63708||Wl==63743||Wl==65107||Wl==65146||Wl==65159||Wl==65211||Wl==65221||Wl==65244||Wl==65279||Wl==66131||Wl==66170||Wl==66183||Wl==66235||Wl==66245||Wl==66268||Wl==66303||Wl==67667||Wl==67706||Wl==67719||Wl==67771||Wl==67781||Wl==67804||Wl==67839||Wl==71251||Wl==71290||Wl==71303||Wl==71355||Wl==71365||Wl==71388||Wl==71423||Wl==75859||Wl==75898||Wl==75911||Wl==75963||Wl==75973||Wl==75996||Wl==76031||Wl==76883||Wl==76922||Wl==76935||Wl==76987||Wl==76997||Wl==77020||Wl==77055||Wl==77907||Wl==77946||Wl==77959||Wl==78011||Wl==78021||Wl==78044||Wl==78079||Wl==78419||Wl==78458||Wl==78471||Wl==78523||Wl==78533||Wl==78556||Wl==78591||Wl==83027||Wl==83066||Wl==83079||Wl==83131||Wl==83141||Wl==83164||Wl==83199||Wl==84051||Wl==84090||Wl==84103||Wl==84155||Wl==84165||Wl==84188||Wl==84223||Wl==84563||Wl==84602||Wl==84615||Wl==84667||Wl==84677||Wl==84700||Wl==84735||Wl==85075||Wl==85114||Wl==85127||Wl==85179||Wl==85189||Wl==85212||Wl==85247||Wl==89683||Wl==89722||Wl==89735||Wl==89787||Wl==89797||Wl==89820||Wl==89855||Wl==90707||Wl==90746||Wl==90759||Wl==90811||Wl==90821||Wl==90844||Wl==90879||Wl==92755||Wl==92794||Wl==92807||Wl==92859||Wl==92869||Wl==92892||Wl==92927||Wl==93779||Wl==93818||Wl==93831||Wl==93883||Wl==93893||Wl==93916||Wl==93951||Wl==94291||Wl==94330||Wl==94343||Wl==94395||Wl==94405||Wl==94428||Wl==94463||Wl==96851||Wl==96890||Wl==96903||Wl==96955||Wl==96965||Wl==96988||Wl==97023||Wl==103507||Wl==103546||Wl==103559||Wl==103611||Wl==103621||Wl==103644||Wl==103679||Wl==104531||Wl==104570||Wl==104583||Wl==104635||Wl==104645||Wl==104668||Wl==104703||Wl==105043||Wl==105082||Wl==105095||Wl==105147||Wl==105157||Wl==105180||Wl==105215||Wl==107143||Wl==107205||Wl==107263||Wl==114771||Wl==114810||Wl==114823||Wl==114875||Wl==114885||Wl==114908||Wl==114943||Wl==116819||Wl==116858||Wl==116871||Wl==116923||Wl==116933||Wl==116956||Wl==116991||Wl==121479||Wl==121541||Wl==121599||Wl==123475||Wl==123514||Wl==123527||Wl==123579||Wl==123589||Wl==123612||Wl==123647||Wl==123987||Wl==124026||Wl==124039||Wl==124091||Wl==124101||Wl==124124||Wl==124159||Wl==129159||Wl==129221||Wl==129279||Wl==129619||Wl==129658||Wl==129671||Wl==129723||Wl==129733||Wl==129756||Wl==129791||Wl==130131||Wl==130170||Wl==130183||Wl==130235||Wl==130245||Wl==130268||Wl==130303||Wl==133203||Wl==133242||Wl==133255||Wl==133307||Wl==133317||Wl==133340||Wl==133375||Wl==139347||Wl==139386||Wl==139399||Wl==139451||Wl==139461||Wl==139484||Wl==139519||Wl==141395||Wl==141434||Wl==141447||Wl==141499||Wl==141509||Wl==141532||Wl==141567||Wl==142983||Wl==143045||Wl==143103||Wl==145543||Wl==145605||Wl==145663||Wl==146055||Wl==146117||Wl==146175||Wl==146567||Wl==146629||Wl==146687||Wl==147079||Wl==147141||Wl==147199){Wl=uc(4,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{ti(),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(4,Vl,Wl)}}switch(Wl){case-1:case 8:case 9:case 10:case 11:case 31:case 32:case 33:case 35:case 55:case 56:case 60:case 69:case 281:case 283:case 3155:case 3194:case 9915:case 9948:case 14854:case 14919:case 14921:case 14922:case 14923:case 14924:case 14926:case 14927:case 14928:case 14929:case 14930:case 14931:case 14932:case 14933:case 14934:case 14935:case 14937:case 14938:case 14939:case 14940:case 14942:case 14943:case 14945:case 14946:case 14947:case 14950:case 14951:case 14952:case 14953:case 14954:case 14955:case 14957:case 14958:case 14959:case 14960:case 14961:case 14962:case 14967:case 14968:case 14969:case 14970:case 14971:case 14972:case 14973:case 14974:case 14975:case 14977:case 14978:case 14980:case 14981:case 14982:case 14983:case 14984:case 14985:case 14986:case 14987:case 14990:case 14991:case 14995:case 14996:case 14998:case 15e3:case 15001:case 15002:case 15003:case 15004:case 15005:case 15009:case 15010:case 15011:case 15012:case 15013:case 15014:case 15015:case 15016:case 15017:case 15018:case 15021:case 15022:case 15023:case 15025:case 15027:case 15029:case 15031:case 15032:case 15033:case 15035:case 15036:case 15037:case 15042:case 15043:case 15045:case 15046:case 15050:case 15051:case 15052:case 15053:case 15054:case 15055:case 15058:case 15064:case 15065:case 15068:case 15070:case 15071:case 15072:case 15073:case 15074:case 15076:case 15077:case 15078:case 15079:case 15080:case 15081:case 15082:case 15087:case 15088:case 15089:case 15090:case 15093:case 15095:case 15096:case 15097:case 15101:case 15102:case 15103:case 15104:case 15105:case 15106:case 15107:case 15108:case 15110:case 15111:case 15114:case 15115:case 15116:case 15117:case 15120:case 15121:case 15124:case 17926:case 17991:case 17993:case 17994:case 17995:case 17996:case 17998:case 18e3:case 18001:case 18002:case 18004:case 18005:case 18006:case 18007:case 18009:case 18010:case 18011:case 18012:case 18014:case 18015:case 18018:case 18019:case 18022:case 18023:case 18024:case 18025:case 18026:case 18027:case 18029:case 18030:case 18031:case 18032:case 18033:case 18034:case 18039:case 18040:case 18043:case 18044:case 18046:case 18047:case 18049:case 18050:case 18052:case 18053:case 18054:case 18055:case 18056:case 18057:case 18058:case 18059:case 18062:case 18063:case 18067:case 18068:case 18070:case 18072:case 18073:case 18075:case 18076:case 18077:case 18081:case 18082:case 18083:case 18084:case 18085:case 18086:case 18088:case 18090:case 18093:case 18094:case 18095:case 18097:case 18099:case 18101:case 18103:case 18104:case 18105:case 18107:case 18109:case 18115:case 18117:case 18118:case 18122:case 18123:case 18124:case 18125:case 18126:case 18127:case 18130:case 18136:case 18137:case 18142:case 18143:case 18144:case 18145:case 18146:case 18148:case 18149:case 18152:case 18153:case 18154:case 18159:case 18160:case 18161:case 18162:case 18165:case 18173:case 18174:case 18175:case 18176:case 18177:case 18178:case 18180:case 18182:case 18183:case 18186:case 18187:case 18188:case 18189:case 18192:case 18193:case 18196:case 23175:case 23237:case 23295:case 37459:case 37498:case 37563:case 37596:case 37971:case 38010:case 38075:case 38108:case 38483:case 38522:case 38587:case 38620:case 40019:case 40058:case 40123:case 40156:case 40531:case 40570:case 42579:case 42618:case 42683:case 42716:case 43091:case 43130:case 43195:case 43228:case 44115:case 44154:case 44219:case 44252:case 44627:case 44666:case 44731:case 44764:case 47187:case 47226:case 47291:case 47324:case 48211:case 48250:case 48315:case 48348:case 49747:case 49786:case 49851:case 49884:case 50259:case 50298:case 50363:case 50396:case 50771:case 50810:case 50875:case 50908:case 52307:case 52346:case 52411:case 52444:case 52819:case 52858:case 52923:case 52956:case 53331:case 53370:case 53435:case 53468:case 53843:case 53882:case 53947:case 53980:case 54867:case 54906:case 54971:case 55004:case 55891:case 55930:case 55995:case 56028:case 56915:case 56954:case 57019:case 57052:case 57427:case 57466:case 57531:case 57564:case 57939:case 57978:case 58043:case 58076:case 61523:case 61562:case 61627:case 61660:case 62035:case 62074:case 62139:case 62172:case 62547:case 62586:case 62651:case 62684:case 64083:case 64122:case 64187:case 64220:case 64595:case 64634:case 64699:case 64732:case 66643:case 66682:case 66747:case 66780:case 68179:case 68218:case 68283:case 68316:case 68691:case 68730:case 68795:case 68828:case 69203:case 69242:case 69307:case 69340:case 69715:case 69754:case 69819:case 69852:case 70227:case 70266:case 70331:case 70364:case 70739:case 70778:case 70843:case 70876:case 72787:case 72826:case 72891:case 72924:case 73299:case 73338:case 73403:case 73436:case 75347:case 75386:case 75451:case 75484:case 78931:case 78970:case 79035:case 79068:case 79443:case 79482:case 79547:case 79580:case 79955:case 79994:case 80059:case 80092:case 80467:case 80506:case 80571:case 80604:case 82515:case 82554:case 82619:case 82652:case 83539:case 83578:case 83643:case 83676:case 85587:case 85626:case 85691:case 85724:case 86099:case 86138:case 86203:case 86236:case 86611:case 86650:case 87123:case 87162:case 87227:case 87260:case 88659:case 88698:case 88763:case 88796:case 89171:case 89210:case 89275:case 89308:case 91731:case 91770:case 91835:case 91868:case 94803:case 94842:case 94907:case 94940:case 95827:case 95866:case 95931:case 95964:case 96339:case 96378:case 96443:case 96476:case 99411:case 99450:case 99515:case 99548:case 99923:case 99962:case 100027:case 100060:case 100947:case 100986:case 101051:case 101084:case 101459:case 101498:case 101563:case 101596:case 104019:case 104058:case 104123:case 104156:case 105555:case 105594:case 105659:case 105692:case 106067:case 106106:case 106171:case 106204:case 107603:case 107642:case 107707:case 107740:case 110675:case 110714:case 110779:case 110812:case 111187:case 111226:case 111291:case 111324:case 112723:case 112762:case 112827:case 112860:case 113747:case 113786:case 113851:case 113884:case 114259:case 114298:case 114363:case 114396:case 115283:case 115322:case 115387:case 115420:case 115795:case 115834:case 115899:case 115932:case 117331:case 117370:case 117435:case 117468:case 117843:case 117882:case 117947:case 117980:case 118355:case 118394:case 118459:case 118492:case 118867:case 118906:case 118971:case 119004:case 119379:case 119418:case 119483:case 119516:case 119891:case 119930:case 119995:case 120028:case 122451:case 122490:case 122555:case 122588:case 122963:case 123002:case 123067:case 123100:case 125523:case 125562:case 125627:case 125660:case 126547:case 126586:case 127059:case 127098:case 127163:case 127196:case 127571:case 127610:case 127675:case 127708:case 130643:case 130682:case 130747:case 130780:case 131155:case 131194:case 131259:case 131292:case 131667:case 131706:case 131771:case 131804:case 132179:case 132218:case 132283:case 132316:case 132691:case 132730:case 132795:case 132828:case 134227:case 134266:case 134331:case 134364:case 134739:case 134778:case 134843:case 134876:case 136275:case 136314:case 136379:case 136412:case 136787:case 136826:case 136891:case 136924:case 137299:case 137338:case 137403:case 137436:case 137811:case 137850:case 137915:case 137948:case 139859:case 139898:case 139963:case 139996:case 143955:case 143969:case 143992:case 143994:case 144059:case 144078:case 144092:case 144121:case 144134:ei();break;default:Br()}ic.endNonterminal(\"StepExpr\",Vl)}function Hr(){switch($l){case 83:ql(288);break;case 122:ql(287);break;case 187:case 220:ql(285);break;case 135:case 197:case 255:ql(237);break;case 97:case 120:case 206:case 249:case 262:ql(239);break;case 79:case 125:case 154:case 167:case 169:case 247:case 248:case 259:ql(230);break;case 74:case 75:case 94:case 112:case 113:case 137:case 138:case 210:case 216:case 217:case 234:ql(238);break;case 6:case 71:case 73:case 76:case 78:case 80:case 81:case 82:case 84:case 85:case 86:case 87:case 89:case 90:case 91:case 92:case 95:case 98:case 99:case 102:case 103:case 104:case 105:case 106:case 107:case 109:case 110:case 111:case 114:case 119:case 121:case 123:case 124:case 126:case 127:case 129:case 130:case 132:case 133:case 134:case 136:case 139:case 142:case 143:case 147:case 148:case 150:case 152:case 153:case 155:case 156:case 157:case 161:case 162:case 163:case 164:case 165:case 166:case 168:case 170:case 173:case 174:case 175:case 177:case 179:case 181:case 183:case 184:case 185:case 188:case 189:case 194:case 195:case 198:case 202:case 203:case 204:case 205:case 207:case 222:case 223:case 224:case 225:case 226:case 228:case 229:case 230:case 231:case 232:case 233:case 239:case 240:case 241:case 242:case 245:case 253:case 254:case 256:case 257:case 258:case 260:case 263:case 266:case 267:case 268:case 269:case 272:case 273:case 276:ql(234);break;default:Wl=$l}if(Wl==12935||Wl==12997||Wl==13055||Wl==13447||Wl==13509||Wl==13567||Wl==13959||Wl==14021||Wl==14079||Wl==19591||Wl==19653||Wl==19711||Wl==20103||Wl==20165||Wl==20223||Wl==21127||Wl==21189||Wl==21247||Wl==21639||Wl==21701||Wl==21759||Wl==22151||Wl==22213||Wl==22271||Wl==24199||Wl==24261||Wl==24319||Wl==24711||Wl==24773||Wl==24831||Wl==25735||Wl==25797||Wl==25855||Wl==27783||Wl==27845||Wl==27903||Wl==28295||Wl==28357||Wl==28415||Wl==29831||Wl==29893||Wl==29951||Wl==30343||Wl==30405||Wl==30463||Wl==31367||Wl==31429||Wl==31487||Wl==31879||Wl==31941||Wl==31999||Wl==32391||Wl==32453||Wl==32511||Wl==32903||Wl==32965||Wl==33023||Wl==35463||Wl==35525||Wl==35583||Wl==35975||Wl==36037||Wl==36095||Wl==36435||Wl==36474||Wl==36487||Wl==36539||Wl==36549||Wl==36572||Wl==36607||Wl==38995||Wl==39034||Wl==39047||Wl==39099||Wl==39109||Wl==39132||Wl==39167||Wl==41043||Wl==41082||Wl==41095||Wl==41147||Wl==41157||Wl==41180||Wl==41215||Wl==41555||Wl==41594||Wl==41607||Wl==41659||Wl==41669||Wl==41692||Wl==41727||Wl==42067||Wl==42106||Wl==42119||Wl==42171||Wl==42181||Wl==42204||Wl==42239||Wl==43603||Wl==43642||Wl==43655||Wl==43707||Wl==43717||Wl==43740||Wl==43775||Wl==45191||Wl==45253||Wl==45311||Wl==45651||Wl==45690||Wl==45703||Wl==45755||Wl==45765||Wl==45788||Wl==45823||Wl==46163||Wl==46202||Wl==46215||Wl==46267||Wl==46277||Wl==46300||Wl==46335||Wl==46675||Wl==46714||Wl==46727||Wl==46779||Wl==46789||Wl==46812||Wl==46847||Wl==48723||Wl==48762||Wl==48775||Wl==48827||Wl==48837||Wl==48860||Wl==48895||Wl==51335||Wl==51397||Wl==51455||Wl==54355||Wl==54394||Wl==54407||Wl==54459||Wl==54469||Wl==54492||Wl==54527||Wl==56403||Wl==56442||Wl==56455||Wl==56507||Wl==56517||Wl==56540||Wl==56575||Wl==58451||Wl==58490||Wl==58503||Wl==58555||Wl==58565||Wl==58588||Wl==58623||Wl==61011||Wl==61050||Wl==61063||Wl==61115||Wl==61125||Wl==61148||Wl==61183||Wl==63059||Wl==63098||Wl==63111||Wl==63163||Wl==63173||Wl==63196||Wl==63231||Wl==63571||Wl==63610||Wl==63623||Wl==63675||Wl==63685||Wl==63708||Wl==63743||Wl==65107||Wl==65146||Wl==65159||Wl==65211||Wl==65221||Wl==65244||Wl==65279||Wl==66131||Wl==66170||Wl==66183||Wl==66235||Wl==66245||Wl==66268||Wl==66303||Wl==67667||Wl==67706||Wl==67719||Wl==67771||Wl==67781||Wl==67804||Wl==67839||Wl==71251||Wl==71290||Wl==71303||Wl==71355||Wl==71365||Wl==71388||Wl==71423||Wl==75859||Wl==75898||Wl==75911||Wl==75963||Wl==75973||Wl==75996||Wl==76031||Wl==76883||Wl==76922||Wl==76935||Wl==76987||Wl==76997||Wl==77020||Wl==77055||Wl==77907||Wl==77946||Wl==77959||Wl==78011||Wl==78021||Wl==78044||Wl==78079||Wl==78419||Wl==78458||Wl==78471||Wl==78523||Wl==78533||Wl==78556||Wl==78591||Wl==83027||Wl==83066||Wl==83079||Wl==83131||Wl==83141||Wl==83164||Wl==83199||Wl==84051||Wl==84090||Wl==84103||Wl==84155||Wl==84165||Wl==84188||Wl==84223||Wl==84563||Wl==84602||Wl==84615||Wl==84667||Wl==84677||Wl==84700||Wl==84735||Wl==85075||Wl==85114||Wl==85127||Wl==85179||Wl==85189||Wl==85212||Wl==85247||Wl==89683||Wl==89722||Wl==89735||Wl==89787||Wl==89797||Wl==89820||Wl==89855||Wl==90707||Wl==90746||Wl==90759||Wl==90811||Wl==90821||Wl==90844||Wl==90879||Wl==92755||Wl==92794||Wl==92807||Wl==92859||Wl==92869||Wl==92892||Wl==92927||Wl==93779||Wl==93818||Wl==93831||Wl==93883||Wl==93893||Wl==93916||Wl==93951||Wl==94291||Wl==94330||Wl==94343||Wl==94395||Wl==94405||Wl==94428||Wl==94463||Wl==96851||Wl==96890||Wl==96903||Wl==96955||Wl==96965||Wl==96988||Wl==97023||Wl==103507||Wl==103546||Wl==103559||Wl==103611||Wl==103621||Wl==103644||Wl==103679||Wl==104531||Wl==104570||Wl==104583||Wl==104635||Wl==104645||Wl==104668||Wl==104703||Wl==105043||Wl==105082||Wl==105095||Wl==105147||Wl==105157||Wl==105180||Wl==105215||Wl==107143||Wl==107205||Wl==107263||Wl==114771||Wl==114810||Wl==114823||Wl==114875||Wl==114885||Wl==114908||Wl==114943||Wl==116819||Wl==116858||Wl==116871||Wl==116923||Wl==116933||Wl==116956||Wl==116991||Wl==121479||Wl==121541||Wl==121599||Wl==123475||Wl==123514||Wl==123527||Wl==123579||Wl==123589||Wl==123612||Wl==123647||Wl==123987||Wl==124026||Wl==124039||Wl==124091||Wl==124101||Wl==124124||Wl==124159||Wl==129159||Wl==129221||Wl==129279||Wl==129619||Wl==129658||Wl==129671||Wl==129723||Wl==129733||Wl==129756||Wl==129791||Wl==130131||Wl==130170||Wl==130183||Wl==130235||Wl==130245||Wl==130268||Wl==130303||Wl==133203||Wl==133242||Wl==133255||Wl==133307||Wl==133317||Wl==133340||Wl==133375||Wl==139347||Wl==139386||Wl==139399||Wl==139451||Wl==139461||Wl==139484||Wl==139519||Wl==141395||Wl==141434||Wl==141447||Wl==141499||Wl==141509||Wl==141532||Wl==141567||Wl==142983||Wl==143045||Wl==143103||Wl==145543||Wl==145605||Wl==145663||Wl==146055||Wl==146117||Wl==146175||Wl==146567||Wl==146629||Wl==146687||Wl==147079||Wl==147141||Wl==147199){Wl=uc(4,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{ti(),oc(4,t,-1),Wl=-3}catch(a){Wl=-2,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(4,t,-2)}}}switch(Wl){case-1:case 8:case 9:case 10:case 11:case 31:case 32:case 33:case 35:case 55:case 56:case 60:case 69:case 281:case 283:case 3155:case 3194:case 9915:case 9948:case 14854:case 14919:case 14921:case 14922:case 14923:case 14924:case 14926:case 14927:case 14928:case 14929:case 14930:case 14931:case 14932:case 14933:case 14934:case 14935:case 14937:case 14938:case 14939:case 14940:case 14942:case 14943:case 14945:case 14946:case 14947:case 14950:case 14951:case 14952:case 14953:case 14954:case 14955:case 14957:case 14958:case 14959:case 14960:case 14961:case 14962:case 14967:case 14968:case 14969:case 14970:case 14971:case 14972:case 14973:case 14974:case 14975:case 14977:case 14978:case 14980:case 14981:case 14982:case 14983:case 14984:case 14985:case 14986:case 14987:case 14990:case 14991:case 14995:case 14996:case 14998:case 15e3:case 15001:case 15002:case 15003:case 15004:case 15005:case 15009:case 15010:case 15011:case 15012:case 15013:case 15014:case 15015:case 15016:case 15017:case 15018:case 15021:case 15022:case 15023:case 15025:case 15027:case 15029:case 15031:case 15032:case 15033:case 15035:case 15036:case 15037:case 15042:case 15043:case 15045:case 15046:case 15050:case 15051:case 15052:case 15053:case 15054:case 15055:case 15058:case 15064:case 15065:case 15068:case 15070:case 15071:case 15072:case 15073:case 15074:case 15076:case 15077:case 15078:case 15079:case 15080:case 15081:case 15082:case 15087:case 15088:case 15089:case 15090:case 15093:case 15095:case 15096:case 15097:case 15101:case 15102:case 15103:case 15104:case 15105:case 15106:case 15107:case 15108:case 15110:case 15111:case 15114:case 15115:case 15116:case 15117:case 15120:case 15121:case 15124:case 17926:case 17991:case 17993:case 17994:case 17995:case 17996:case 17998:case 18e3:case 18001:case 18002:case 18004:case 18005:case 18006:case 18007:case 18009:case 18010:case 18011:case 18012:case 18014:case 18015:case 18018:case 18019:case 18022:case 18023:case 18024:case 18025:case 18026:case 18027:case 18029:case 18030:case 18031:case 18032:case 18033:case 18034:case 18039:case 18040:case 18043:case 18044:case 18046:case 18047:case 18049:case 18050:case 18052:case 18053:case 18054:case 18055:case 18056:case 18057:case 18058:case 18059:case 18062:case 18063:case 18067:case 18068:case 18070:case 18072:case 18073:case 18075:case 18076:case 18077:case 18081:case 18082:case 18083:case 18084:case 18085:case 18086:case 18088:case 18090:case 18093:case 18094:case 18095:case 18097:case 18099:case 18101:case 18103:case 18104:case 18105:case 18107:case 18109:case 18115:case 18117:case 18118:case 18122:case 18123:case 18124:case 18125:case 18126:case 18127:case 18130:case 18136:case 18137:case 18142:case 18143:case 18144:case 18145:case 18146:case 18148:case 18149:case 18152:case 18153:case 18154:case 18159:case 18160:case 18161:case 18162:case 18165:case 18173:case 18174:case 18175:case 18176:case 18177:case 18178:case 18180:case 18182:case 18183:case 18186:case 18187:case 18188:case 18189:case 18192:case 18193:case 18196:case 23175:case 23237:case 23295:case 37459:case 37498:case 37563:case 37596:case 37971:case 38010:case 38075:case 38108:case 38483:case 38522:case 38587:case 38620:case 40019:case 40058:case 40123:case 40156:case 40531:case 40570:case 42579:case 42618:case 42683:case 42716:case 43091:case 43130:case 43195:case 43228:case 44115:case 44154:case 44219:case 44252:case 44627:case 44666:case 44731:case 44764:case 47187:case 47226:case 47291:case 47324:case 48211:case 48250:case 48315:case 48348:case 49747:case 49786:case 49851:case 49884:case 50259:case 50298:case 50363:case 50396:case 50771:case 50810:case 50875:case 50908:case 52307:case 52346:case 52411:case 52444:case 52819:case 52858:case 52923:case 52956:case 53331:case 53370:case 53435:case 53468:case 53843:case 53882:case 53947:case 53980:case 54867:case 54906:case 54971:case 55004:case 55891:case 55930:case 55995:case 56028:case 56915:case 56954:case 57019:case 57052:case 57427:case 57466:case 57531:case 57564:case 57939:case 57978:case 58043:case 58076:case 61523:case 61562:case 61627:case 61660:case 62035:case 62074:case 62139:case 62172:case 62547:case 62586:case 62651:case 62684:case 64083:case 64122:case 64187:case 64220:case 64595:case 64634:case 64699:case 64732:case 66643:case 66682:case 66747:case 66780:case 68179:case 68218:case 68283:case 68316:case 68691:case 68730:case 68795:case 68828:case 69203:case 69242:case 69307:case 69340:case 69715:case 69754:case 69819:case 69852:case 70227:case 70266:case 70331:case 70364:case 70739:case 70778:case 70843:case 70876:case 72787:case 72826:case 72891:case 72924:case 73299:case 73338:case 73403:case 73436:case 75347:case 75386:case 75451:case 75484:case 78931:case 78970:case 79035:case 79068:case 79443:case 79482:case 79547:case 79580:case 79955:case 79994:case 80059:case 80092:case 80467:case 80506:case 80571:case 80604:case 82515:case 82554:case 82619:case 82652:case 83539:case 83578:case 83643:case 83676:case 85587:case 85626:case 85691:case 85724:case 86099:case 86138:case 86203:case 86236:case 86611:case 86650:case 87123:case 87162:case 87227:case 87260:case 88659:case 88698:case 88763:case 88796:case 89171:case 89210:case 89275:case 89308:case 91731:case 91770:case 91835:case 91868:case 94803:case 94842:case 94907:case 94940:case 95827:case 95866:case 95931:case 95964:case 96339:case 96378:case 96443:case 96476:case 99411:case 99450:case 99515:case 99548:case 99923:case 99962:case 100027:case 100060:case 100947:case 100986:case 101051:case 101084:case 101459:case 101498:case 101563:case 101596:case 104019:case 104058:case 104123:case 104156:case 105555:case 105594:case 105659:case 105692:case 106067:case 106106:case 106171:case 106204:case 107603:case 107642:case 107707:case 107740:case 110675:case 110714:case 110779:case 110812:case 111187:case 111226:case 111291:case 111324:case 112723:case 112762:case 112827:case 112860:case 113747:case 113786:case 113851:case 113884:case 114259:case 114298:case 114363:case 114396:case 115283:case 115322:case 115387:case 115420:case 115795:case 115834:case 115899:case 115932:case 117331:case 117370:case 117435:case 117468:case 117843:case 117882:case 117947:case 117980:case 118355:case 118394:case 118459:case 118492:case 118867:case 118906:case 118971:case 119004:case 119379:case 119418:case 119483:case 119516:case 119891:case 119930:case 119995:case 120028:case 122451:case 122490:case 122555:case 122588:case 122963:case 123002:case 123067:case 123100:case 125523:case 125562:case 125627:case 125660:case 126547:case 126586:case 127059:case 127098:case 127163:case 127196:case 127571:case 127610:case 127675:case 127708:case 130643:case 130682:case 130747:case 130780:case 131155:case 131194:case 131259:case 131292:case 131667:case 131706:case 131771:case 131804:case 132179:case 132218:case 132283:case 132316:case 132691:case 132730:case 132795:case 132828:case 134227:case 134266:case 134331:case 134364:case 134739:case 134778:case 134843:case 134876:case 136275:case 136314:case 136379:case 136412:case 136787:case 136826:case 136891:case 136924:case 137299:case 137338:case 137403:case 137436:case 137811:case 137850:case 137915:case 137948:case 139859:case 139898:case 139963:case 139996:case 143955:case 143969:case 143992:case 143994:case 144059:case 144078:case 144092:case 144121:case 144134:ti();break;case-3:break;default:jr()}}function Br(){ic.startNonterminal(\"AxisStep\",Vl);switch($l){case 74:case 75:case 210:case 216:case 217:ql(232);break;default:Wl=$l}switch(Wl){case 46:case 26698:case 26699:case 26834:case 26840:case 26841:Wr();break;default:Fr()}Il(228),jl(),li(),ic.endNonterminal(\"AxisStep\",Vl)}function jr(){switch($l){case 74:case 75:case 210:case 216:case 217:ql(232);break;default:Wl=$l}switch(Wl){case 46:case 26698:case 26699:case 26834:case 26840:case 26841:Xr();break;default:Ir()}Il(228),ci()}function Fr(){ic.startNonterminal(\"ForwardStep\",Vl);switch($l){case 83:ql(236);break;case 94:case 112:case 113:case 137:case 138:case 234:ql(232);break;default:Wl=$l}switch(Wl){case 26707:case 26718:case 26736:case 26737:case 26761:case 26762:case 26858:qr(),Il(249),jl(),Qr();break;default:Ur()}ic.endNonterminal(\"ForwardStep\",Vl)}function Ir(){switch($l){case 83:ql(236);break;case 94:case 112:case 113:case 137:case 138:case 234:ql(232);break;default:Wl=$l}switch(Wl){case 26707:case 26718:case 26736:case 26737:case 26761:case 26762:case 26858:Rr(),Il(249),Gr();break;default:zr()}}function qr(){ic.startNonterminal(\"ForwardAxis\",Vl);switch($l){case 94:Pl(94),Il(27),Pl(52);break;case 112:Pl(112),Il(27),Pl(52);break;case 83:Pl(83),Il(27),Pl(52);break;case 234:Pl(234),Il(27),Pl(52);break;case 113:Pl(113),Il(27),Pl(52);break;case 138:Pl(138),Il(27),Pl(52);break;default:Pl(137),Il(27),Pl(52)}ic.endNonterminal(\"ForwardAxis\",Vl)}function Rr(){switch($l){case 94:Hl(94),Il(27),Hl(52);break;case 112:Hl(112),Il(27),Hl(52);break;case 83:Hl(83),Il(27),Hl(52);break;case 234:Hl(234),Il(27),Hl(52);break;case 113:Hl(113),Il(27),Hl(52);break;case 138:Hl(138),Il(27),Hl(52);break;default:Hl(137),Il(27),Hl(52)}}function Ur(){ic.startNonterminal(\"AbbrevForwardStep\",Vl),$l==67&&Pl(67),Il(249),jl(),Qr(),ic.endNonterminal(\"AbbrevForwardStep\",Vl)}function zr(){$l==67&&Hl(67),Il(249),Gr()}function Wr(){ic.startNonterminal(\"ReverseStep\",Vl);switch($l){case 46:Jr();break;default:Vr(),Il(249),jl(),Qr()}ic.endNonterminal(\"ReverseStep\",Vl)}function Xr(){switch($l){case 46:Kr();break;default:$r(),Il(249),Gr()}}function Vr(){ic.startNonterminal(\"ReverseAxis\",Vl);switch($l){case 210:Pl(210),Il(27),Pl(52);break;case 74:Pl(74),Il(27),Pl(52);break;case 217:Pl(217),Il(27),Pl(52);break;case 216:Pl(216),Il(27),Pl(52);break;default:Pl(75),Il(27),Pl(52)}ic.endNonterminal(\"ReverseAxis\",Vl)}function $r(){switch($l){case 210:Hl(210),Il(27),Hl(52);break;case 74:Hl(74),Il(27),Hl(52);break;case 217:Hl(217),Il(27),Hl(52);break;case 216:Hl(216),Il(27),Hl(52);break;default:Hl(75),Il(27),Hl(52)}}function Jr(){ic.startNonterminal(\"AbbrevReverseStep\",Vl),Pl(46),ic.endNonterminal(\"AbbrevReverseStep\",Vl)}function Kr(){Hl(46)}function Qr(){ic.startNonterminal(\"NodeTest\",Vl);switch($l){case 83:case 97:case 121:case 122:case 188:case 194:case 220:case 230:case 231:case 249:ql(231);break;default:Wl=$l}switch(Wl){case 18003:case 18017:case 18041:case 18042:case 18108:case 18114:case 18140:case 18150:case 18151:case 18169:Vs();break;default:Yr()}ic.endNonterminal(\"NodeTest\",Vl)}function Gr(){switch($l){case 83:case 97:case 121:case 122:case 188:case 194:case 220:case 230:case 231:case 249:ql(231);break;default:Wl=$l}switch(Wl){case 18003:case 18017:case 18041:case 18042:case 18108:case 18114:case 18140:case 18150:case 18151:case 18169:$s();break;default:Zr()}}function Yr(){ic.startNonterminal(\"NameTest\",Vl);switch($l){case 5:Pl(5);break;default:$a()}ic.endNonterminal(\"NameTest\",Vl)}function Zr(){switch($l){case 5:Hl(5);break;default:Ja()}}function ei(){ic.startNonterminal(\"PostfixExpr\",Vl),yl();for(;;){Il(235);if($l!=35&&$l!=45&&$l!=69)break;switch($l){case 69:ql(273);break;default:Wl=$l}if(Wl==35397){Wl=uc(5,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{pi(),Wl=-1}catch(a){Wl=-4}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(5,Vl,Wl)}}switch(Wl){case 35:jl(),ai();break;case 45:jl(),ni();break;case-4:jl(),ii();break;case 35909:jl(),oi();break;default:jl(),hi()}}ic.endNonterminal(\"PostfixExpr\",Vl)}function ti(){bl();for(;;){Il(235);if($l!=35&&$l!=45&&$l!=69)break;switch($l){case 69:ql(273);break;default:Wl=$l}if(Wl==35397){Wl=uc(5,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{pi(),oc(5,t,-1),Wl=-6}catch(a){Wl=-4,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(5,t,-4)}}}switch(Wl){case 35:fi();break;case 45:ri();break;case-4:si();break;case 35909:ui();break;case-6:break;default:pi()}}}function ni(){ic.startNonterminal(\"ObjectLookup\",Vl),Pl(45),Il(251);switch($l){case 11:Pl(11);break;case 35:jl(),Ci();break;case 31:jl(),Si();break;case 32:jl(),Li();break;default:jl(),Ga()}ic.endNonterminal(\"ObjectLookup\",Vl)}function ri(){Hl(45),Il(251);switch($l){case 11:Hl(11);break;case 35:ki();break;case 31:xi();break;case 32:Ai();break;default:Ya()}}function ii(){ic.startNonterminal(\"ArrayLookup\",Vl),Pl(69),Il(31),Pl(69),Il(267),jl(),G(),Pl(70),Il(32),Pl(70),ic.endNonterminal(\"ArrayLookup\",Vl)}function si(){Hl(69),Il(31),Hl(69),Il(267),Y(),Hl(70),Il(32),Hl(70)}function oi(){ic.startNonterminal(\"ArrayUnboxing\",Vl),Pl(69),Il(32),Pl(70),ic.endNonterminal(\"ArrayUnboxing\",Vl)}function ui(){Hl(69),Il(32),Hl(70)}function ai(){ic.startNonterminal(\"ArgumentList\",Vl),Pl(35),Il(280);if($l!=38){jl(),Bi();for(;;){Il(105);if($l!=42)break;Pl(42),Il(272),jl(),Bi()}}Pl(38),ic.endNonterminal(\"ArgumentList\",Vl)}function fi(){Hl(35),Il(280);if($l!=38){ji();for(;;){Il(105);if($l!=42)break;Hl(42),Il(272),ji()}}Hl(38)}function li(){ic.startNonterminal(\"PredicateList\",Vl);for(;;){Il(228);if($l!=69)break;jl(),hi()}ic.endNonterminal(\"PredicateList\",Vl)}function ci(){for(;;){Il(228);if($l!=69)break;pi()}}function hi(){ic.startNonterminal(\"Predicate\",Vl),Pl(69),Il(267),jl(),G(),Pl(70),ic.endNonterminal(\"Predicate\",Vl)}function pi(){Hl(69),Il(267),Y(),Hl(70)}function di(){ic.startNonterminal(\"Literal\",Vl);switch($l){case 11:Pl(11);break;case 135:case 255:mi();break;case 197:yi();break;default:wi()}ic.endNonterminal(\"Literal\",Vl)}function vi(){switch($l){case 11:Hl(11);break;case 135:case 255:gi();break;case 197:bi();break;default:Ei()}}function mi(){ic.startNonterminal(\"BooleanLiteral\",Vl);switch($l){case 255:Pl(255);break;default:Pl(135)}ic.endNonterminal(\"BooleanLiteral\",Vl)}function gi(){switch($l){case 255:Hl(255);break;default:Hl(135)}}function yi(){ic.startNonterminal(\"NullLiteral\",Vl),Pl(197),ic.endNonterminal(\"NullLiteral\",Vl)}function bi(){Hl(197)}function wi(){ic.startNonterminal(\"NumericLiteral\",Vl);switch($l){case 8:Pl(8);break;case 9:Pl(9);break;default:Pl(10)}ic.endNonterminal(\"NumericLiteral\",Vl)}function Ei(){switch($l){case 8:Hl(8);break;case 9:Hl(9);break;default:Hl(10)}}function Si(){ic.startNonterminal(\"VarRef\",Vl),Pl(31),Il(246),jl(),Ti(),ic.endNonterminal(\"VarRef\",Vl)}function xi(){Hl(31),Il(246),Ni()}function Ti(){ic.startNonterminal(\"VarName\",Vl),$a(),ic.endNonterminal(\"VarName\",Vl)}function Ni(){Ja()}function Ci(){ic.startNonterminal(\"ParenthesizedExpr\",Vl),Pl(35),Il(270),$l!=38&&(jl(),G()),Pl(38),ic.endNonterminal(\"ParenthesizedExpr\",Vl)}function ki(){Hl(35),Il(270),$l!=38&&Y(),Hl(38)}function Li(){ic.startNonterminal(\"ContextItemExpr\",Vl),Pl(32),ic.endNonterminal(\"ContextItemExpr\",Vl)}function Ai(){Hl(32)}function Oi(){ic.startNonterminal(\"OrderedExpr\",Vl),Pl(206),Il(90),Pl(281),Il(267),jl(),G(),Pl(287),ic.endNonterminal(\"OrderedExpr\",Vl)}function Mi(){Hl(206),Il(90),Hl(281),Il(267),Y(),Hl(287)}function _i(){ic.startNonterminal(\"UnorderedExpr\",Vl),Pl(262),Il(90),Pl(281),Il(267),jl(),G(),Pl(287),ic.endNonterminal(\"UnorderedExpr\",Vl)}function Di(){Hl(262),Il(90),Hl(281),Il(267),Y(),Hl(287)}function Pi(){ic.startNonterminal(\"FunctionCall\",Vl),Ka(),Il(22),jl(),ai(),ic.endNonterminal(\"FunctionCall\",Vl)}function Hi(){Qa(),Il(22),fi()}function Bi(){ic.startNonterminal(\"Argument\",Vl);switch($l){case 65:Fi();break;default:Wf()}ic.endNonterminal(\"Argument\",Vl)}function ji(){switch($l){case 65:Ii();break;default:Xf()}}function Fi(){ic.startNonterminal(\"ArgumentPlaceholder\",Vl),Pl(65),ic.endNonterminal(\"ArgumentPlaceholder\",Vl)}function Ii(){Hl(65)}function qi(){ic.startNonterminal(\"Constructor\",Vl);switch($l){case 55:case 56:case 60:Ui();break;default:os()}ic.endNonterminal(\"Constructor\",Vl)}function Ri(){switch($l){case 55:case 56:case 60:zi();break;default:us()}}function Ui(){ic.startNonterminal(\"DirectConstructor\",Vl);switch($l){case 55:Wi();break;case 56:ns();break;default:is()}ic.endNonterminal(\"DirectConstructor\",Vl)}function zi(){switch($l){case 55:Xi();break;case 56:rs();break;default:ss()}}function Wi(){ic.startNonterminal(\"DirElemConstructor\",Vl),Pl(55),Rl(4),Pl(20),Vi();switch($l){case 49:Pl(49);break;default:Pl(62);for(;;){Rl(196);if($l==57)break;es()}Pl(57),Rl(4),Pl(20),Rl(12),$l==21&&Pl(21),Rl(8),Pl(62)}ic.endNonterminal(\"DirElemConstructor\",Vl)}function Xi(){Hl(55),Rl(4),Hl(20),$i();switch($l){case 49:Hl(49);break;default:Hl(62);for(;;){Rl(196);if($l==57)break;ts()}Hl(57),Rl(4),Hl(20),Rl(12),$l==21&&Hl(21),Rl(8),Hl(62)}}function Vi(){ic.startNonterminal(\"DirAttributeList\",Vl);for(;;){Rl(19);if($l!=21)break;Pl(21),Rl(94),$l==20&&(Pl(20),Rl(11),$l==21&&Pl(21),Rl(7),Pl(61),Rl(18),$l==21&&Pl(21),Ji())}ic.endNonterminal(\"DirAttributeList\",Vl)}function $i(){for(;;){Rl(19);if($l!=21)break;Hl(21),Rl(94),$l==20&&(Hl(20),Rl(11),$l==21&&Hl(21),Rl(7),Hl(61),Rl(18),$l==21&&Hl(21),Ki())}}function Ji(){ic.startNonterminal(\"DirAttributeValue\",Vl),Rl(14);switch($l){case 28:Pl(28);for(;;){Rl(185);if($l==28)break;switch($l){case 13:Pl(13);break;default:Qi()}}Pl(28);break;default:Pl(34);for(;;){Rl(186);if($l==34)break;switch($l){case 14:Pl(14);break;default:Yi()}}Pl(34)}ic.endNonterminal(\"DirAttributeValue\",Vl)}function Ki(){Rl(14);switch($l){case 28:Hl(28);for(;;){Rl(185);if($l==28)break;switch($l){case 13:Hl(13);break;default:Gi()}}Hl(28);break;default:Hl(34);for(;;){Rl(186);if($l==34)break;switch($l){case 14:Hl(14);break;default:Zi()}}Hl(34)}}function Qi(){ic.startNonterminal(\"QuotAttrValueContent\",Vl);switch($l){case 16:Pl(16);break;default:il()}ic.endNonterminal(\"QuotAttrValueContent\",Vl)}function Gi(){switch($l){case 16:Hl(16);break;default:sl()}}function Yi(){ic.startNonterminal(\"AposAttrValueContent\",Vl);switch($l){case 17:Pl(17);break;default:il()}ic.endNonterminal(\"AposAttrValueContent\",Vl)}function Zi(){switch($l){case 17:Hl(17);break;default:sl()}}function es(){ic.startNonterminal(\"DirElemContent\",Vl);switch($l){case 55:case 56:case 60:Ui();break;case 4:Pl(4);break;case 15:Pl(15);break;default:il()}ic.endNonterminal(\"DirElemContent\",Vl)}function ts(){switch($l){case 55:case 56:case 60:zi();break;case 4:Hl(4);break;case 15:Hl(15);break;default:sl()}}function ns(){ic.startNonterminal(\"DirCommentConstructor\",Vl),Pl(56),Rl(1),Pl(2),Rl(6),Pl(44),ic.endNonterminal(\"DirCommentConstructor\",Vl)}function rs(){Hl(56),Rl(1),Hl(2),Rl(6),Hl(44)}function is(){ic.startNonterminal(\"DirPIConstructor\",Vl),Pl(60),Rl(3),Pl(18),Rl(13),$l==21&&(Pl(21),Rl(2),Pl(3)),Rl(9),Pl(66),ic.endNonterminal(\"DirPIConstructor\",Vl)}function ss(){Hl(60),Rl(3),Hl(18),Rl(13),$l==21&&(Hl(21),Rl(2),Hl(3)),Rl(9),Hl(66)}function os(){ic.startNonterminal(\"ComputedConstructor\",Vl);switch($l){case 120:al();break;case 122:as();break;case 83:ll();break;case 187:ls();break;case 249:ml();break;case 97:dl();break;default:hl()}ic.endNonterminal(\"ComputedConstructor\",Vl)}function us(){switch($l){case 120:fl();break;case 122:fs();break;case 83:cl();break;case 187:cs();break;case 249:gl();break;case 97:vl();break;default:pl()}}function as(){ic.startNonterminal(\"CompElemConstructor\",Vl),Pl(122),Il(250);switch($l){case 281:Pl(281),Il(267),jl(),G(),Pl(287);break;default:jl(),$a()}Il(90),Pl(281),Il(281),$l!=287&&(jl(),ol()),Pl(287),ic.endNonterminal(\"CompElemConstructor\",Vl)}function fs(){Hl(122),Il(250);switch($l){case 281:Hl(281),Il(267),Y(),Hl(287);break;default:Ja()}Il(90),Hl(281),Il(281),$l!=287&&ul(),Hl(287)}function ls(){ic.startNonterminal(\"CompNamespaceConstructor\",Vl),Pl(187),Il(242);switch($l){case 281:Pl(281),Il(267),jl(),ds(),Pl(287);break;default:jl(),hs()}Il(90),Pl(281),Il(267),jl(),ms(),Pl(287),ic.endNonterminal(\"CompNamespaceConstructor\",Vl)}function cs(){Hl(187),Il(242);switch($l){case 281:Hl(281),Il(267),vs(),Hl(287);break;default:ps()}Il(90),Hl(281),Il(267),gs(),Hl(287)}function hs(){ic.startNonterminal(\"Prefix\",Vl),Ga(),ic.endNonterminal(\"Prefix\",Vl)}function ps(){Ya()}function ds(){ic.startNonterminal(\"PrefixExpr\",Vl),G(),ic.endNonterminal(\"PrefixExpr\",Vl)}function vs(){Y()}function ms(){ic.startNonterminal(\"URIExpr\",Vl),G(),ic.endNonterminal(\"URIExpr\",Vl)}function gs(){Y()}function ys(){ic.startNonterminal(\"FunctionItemExpr\",Vl);switch($l){case 147:ql(95);break;default:Wl=$l}switch(Wl){case 33:case 18067:Ss();break;default:ws()}ic.endNonterminal(\"FunctionItemExpr\",Vl)}function bs(){switch($l){case 147:ql(95);break;default:Wl=$l}switch(Wl){case 33:case 18067:xs();break;default:Es()}}function ws(){ic.startNonterminal(\"NamedFunctionRef\",Vl),$a(),Il(20),Pl(29),Il(16),Pl(8),ic.endNonterminal(\"NamedFunctionRef\",Vl)}function Es(){Ja(),Il(20),Hl(29),Il(16),Hl(8)}function Ss(){ic.startNonterminal(\"InlineFunctionExpr\",Vl);for(;;){Il(101);if($l!=33)break;jl(),B()}Pl(147),Il(22),Pl(35),Il(98),$l==31&&(jl(),U()),Pl(38),Il(115),$l==80&&(Pl(80),Il(254),jl(),Ls()),Il(90),jl(),V(),ic.endNonterminal(\"InlineFunctionExpr\",Vl)}function xs(){for(;;){Il(101);if($l!=33)break;j()}Hl(147),Il(22),Hl(35),Il(98),$l==31&&z(),Hl(38),Il(115),$l==80&&(Hl(80),Il(254),As()),Il(90),$()}function Ts(){ic.startNonterminal(\"SingleType\",Vl),ko(),Il(226),$l==65&&Pl(65),ic.endNonterminal(\"SingleType\",Vl)}function Ns(){Lo(),Il(226),$l==65&&Hl(65)}function Cs(){ic.startNonterminal(\"TypeDeclaration\",Vl),Pl(80),Il(254),jl(),Ls(),ic.endNonterminal(\"TypeDeclaration\",Vl)}function ks(){Hl(80),Il(254),As()}function Ls(){ic.startNonterminal(\"SequenceType\",Vl);switch($l){case 35:ql(259);break;case 125:ql(233);break;default:Wl=$l}switch(Wl){case 18045:case 19491:$l==125&&Pl(125),Il(22),Pl(35),Il(23),Pl(38);break;default:_s(),Il(229);switch($l){case 40:case 41:case 65:jl(),Os();break;default:}}ic.endNonterminal(\"SequenceType\",Vl)}function As(){switch($l){case 35:ql(259);break;case 125:ql(233);break;default:Wl=$l}switch(Wl){case 18045:case 19491:$l==125&&Hl(125),Il(22),Hl(35),Il(23),Hl(38);break;default:Ds(),Il(229);switch($l){case 40:case 41:case 65:Ms();break;default:}}}function Os(){ic.startNonterminal(\"OccurrenceIndicator\",Vl);switch($l){case 65:Pl(65);break;case 40:Pl(40);break;default:Pl(41)}ic.endNonterminal(\"OccurrenceIndicator\",Vl)}function Ms(){switch($l){case 65:Hl(65);break;case 40:Hl(40);break;default:Hl(41)}}function _s(){ic.startNonterminal(\"ItemType\",Vl);switch($l){case 79:case 83:case 97:case 121:case 122:case 147:case 167:case 169:case 188:case 194:case 198:case 220:case 230:case 231:case 247:case 249:ql(233);break;default:Wl=$l}if(Wl==12879||Wl==12969||Wl==12998||Wl==13047||Wl==13903||Wl==13993||Wl==14022||Wl==14071||Wl==19535||Wl==19625||Wl==19654||Wl==19703||Wl==20047||Wl==20137||Wl==20166||Wl==20215||Wl==20559||Wl==20649||Wl==20678||Wl==20727||Wl==21071||Wl==21161||Wl==21190||Wl==21239||Wl==21583||Wl==21673||Wl==21702||Wl==21751||Wl==22095||Wl==22185||Wl==22214||Wl==22263||Wl==25679||Wl==25769||Wl==25798||Wl==25847||Wl==27215||Wl==27305||Wl==27334||Wl==27383||Wl==27727||Wl==27817||Wl==27846||Wl==27895||Wl==28239||Wl==28329||Wl==28358||Wl==28407||Wl==29775||Wl==29865||Wl==29894||Wl==29943||Wl==30287||Wl==30377||Wl==30406||Wl==30455||Wl==31311||Wl==31401||Wl==31430||Wl==31479||Wl==31823||Wl==31913||Wl==31942||Wl==31991||Wl==32335||Wl==32425||Wl==32454||Wl==32503||Wl==32847||Wl==32937||Wl==32966||Wl==33015||Wl==33359||Wl==33449||Wl==33478||Wl==33527||Wl==35919||Wl==36009||Wl==36038||Wl==36087||Wl==36431||Wl==36521||Wl==36550||Wl==36599||Wl==37455||Wl==37545||Wl==37574||Wl==37623||Wl==38991||Wl==39081||Wl==39110||Wl==39159||Wl==41039||Wl==41129||Wl==41158||Wl==41207||Wl==41551||Wl==41641||Wl==41670||Wl==41719||Wl==42063||Wl==42153||Wl==42182||Wl==42231||Wl==43599||Wl==43689||Wl==43718||Wl==43767||Wl==45647||Wl==45737||Wl==45766||Wl==45815||Wl==48719||Wl==48809||Wl==48838||Wl==48887||Wl==51279||Wl==51369||Wl==51398||Wl==51447||Wl==54351||Wl==54441||Wl==54470||Wl==54519||Wl==56399||Wl==56489||Wl==56518||Wl==56567||Wl==58447||Wl==58537||Wl==58566||Wl==58615||Wl==61007||Wl==61097||Wl==61126||Wl==61175||Wl==63055||Wl==63145||Wl==63174||Wl==63223||Wl==63567||Wl==63657||Wl==63686||Wl==63735||Wl==65103||Wl==65193||Wl==65222||Wl==65271||Wl==66127||Wl==66217||Wl==66246||Wl==66295||Wl==67663||Wl==67753||Wl==67782||Wl==67831||Wl==68687||Wl==68777||Wl==68806||Wl==68855||Wl==71247||Wl==71337||Wl==71366||Wl==71415||Wl==75855||Wl==75945||Wl==75974||Wl==76023||Wl==76879||Wl==76969||Wl==76998||Wl==77047||Wl==77903||Wl==77993||Wl==78022||Wl==78071||Wl==78415||Wl==78505||Wl==78534||Wl==78583||Wl==79951||Wl==80041||Wl==80070||Wl==80119||Wl==83023||Wl==83113||Wl==83142||Wl==83191||Wl==84047||Wl==84137||Wl==84166||Wl==84215||Wl==84559||Wl==84649||Wl==84678||Wl==84727||Wl==85071||Wl==85161||Wl==85190||Wl==85239||Wl==89679||Wl==89769||Wl==89798||Wl==89847||Wl==90703||Wl==90793||Wl==90822||Wl==90871||Wl==92751||Wl==92841||Wl==92870||Wl==92919||Wl==93775||Wl==93865||Wl==93894||Wl==93943||Wl==94287||Wl==94377||Wl==94406||Wl==94455||Wl==96847||Wl==96937||Wl==96966||Wl==97015||Wl==103503||Wl==103593||Wl==103622||Wl==103671||Wl==104527||Wl==104617||Wl==104646||Wl==104695||Wl==105039||Wl==105129||Wl==105158||Wl==105207||Wl==107087||Wl==107177||Wl==107206||Wl==107255||Wl==114767||Wl==114857||Wl==114886||Wl==114935||Wl==116815||Wl==116905||Wl==116934||Wl==116983||Wl==118863||Wl==118953||Wl==118982||Wl==119031||Wl==121423||Wl==121513||Wl==121542||Wl==121591||Wl==123471||Wl==123561||Wl==123590||Wl==123639||Wl==123983||Wl==124073||Wl==124102||Wl==124151||Wl==129103||Wl==129193||Wl==129222||Wl==129271||Wl==129615||Wl==129705||Wl==129734||Wl==129783||Wl==133199||Wl==133289||Wl==133318||Wl==133367||Wl==139343||Wl==139433||Wl==139462||Wl==139511||Wl==141391||Wl==141481||Wl==141510||Wl==141559||Wl==142927||Wl==143017||Wl==143046||Wl==143095||Wl==143951||Wl==144041||Wl==144070||Wl==144119||Wl==145487||Wl==145577||Wl==145606||Wl==145655||Wl==145999||Wl==146089||Wl==146118||Wl==146167||Wl==146511||Wl==146601||Wl==146630||Wl==146679||Wl==147023||Wl==147113||Wl==147142||Wl==147191){Wl=uc(6,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Xs(),Wl=-4}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Hs(),Wl=-6}catch(f){Wl=-7}}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(6,Vl,Wl)}}switch(Wl){case 18003:case 18017:case 18041:case 18042:case 18108:case 18114:case 18140:case 18150:case 18151:case 18169:Vs();break;case 18087:Pl(167),Il(22),Pl(35),Il(23),Pl(38);break;case 33:case 18067:Mo();break;case 35:jo();break;case-6:case 17999:case 18089:case 18118:Ps();break;case-7:case 18167:Bs();break;default:Ws()}ic.endNonterminal(\"ItemType\",Vl)}function Ds(){switch($l){case 79:case 83:case 97:case 121:case 122:case 147:case 167:case 169:case 188:case 194:case 198:case 220:case 230:case 231:case 247:case 249:ql(233);break;default:Wl=$l}if(Wl==12879||Wl==12969||Wl==12998||Wl==13047||Wl==13903||Wl==13993||Wl==14022||Wl==14071||Wl==19535||Wl==19625||Wl==19654||Wl==19703||Wl==20047||Wl==20137||Wl==20166||Wl==20215||Wl==20559||Wl==20649||Wl==20678||Wl==20727||Wl==21071||Wl==21161||Wl==21190||Wl==21239||Wl==21583||Wl==21673||Wl==21702||Wl==21751||Wl==22095||Wl==22185||Wl==22214||Wl==22263||Wl==25679||Wl==25769||Wl==25798||Wl==25847||Wl==27215||Wl==27305||Wl==27334||Wl==27383||Wl==27727||Wl==27817||Wl==27846||Wl==27895||Wl==28239||Wl==28329||Wl==28358||Wl==28407||Wl==29775||Wl==29865||Wl==29894||Wl==29943||Wl==30287||Wl==30377||Wl==30406||Wl==30455||Wl==31311||Wl==31401||Wl==31430||Wl==31479||Wl==31823||Wl==31913||Wl==31942||Wl==31991||Wl==32335||Wl==32425||Wl==32454||Wl==32503||Wl==32847||Wl==32937||Wl==32966||Wl==33015||Wl==33359||Wl==33449||Wl==33478||Wl==33527||Wl==35919||Wl==36009||Wl==36038||Wl==36087||Wl==36431||Wl==36521||Wl==36550||Wl==36599||Wl==37455||Wl==37545||Wl==37574||Wl==37623||Wl==38991||Wl==39081||Wl==39110||Wl==39159||Wl==41039||Wl==41129||Wl==41158||Wl==41207||Wl==41551||Wl==41641||Wl==41670||Wl==41719||Wl==42063||Wl==42153||Wl==42182||Wl==42231||Wl==43599||Wl==43689||Wl==43718||Wl==43767||Wl==45647||Wl==45737||Wl==45766||Wl==45815||Wl==48719||Wl==48809||Wl==48838||Wl==48887||Wl==51279||Wl==51369||Wl==51398||Wl==51447||Wl==54351||Wl==54441||Wl==54470||Wl==54519||Wl==56399||Wl==56489||Wl==56518||Wl==56567||Wl==58447||Wl==58537||Wl==58566||Wl==58615||Wl==61007||Wl==61097||Wl==61126||Wl==61175||Wl==63055||Wl==63145||Wl==63174||Wl==63223||Wl==63567||Wl==63657||Wl==63686||Wl==63735||Wl==65103||Wl==65193||Wl==65222||Wl==65271||Wl==66127||Wl==66217||Wl==66246||Wl==66295||Wl==67663||Wl==67753||Wl==67782||Wl==67831||Wl==68687||Wl==68777||Wl==68806||Wl==68855||Wl==71247||Wl==71337||Wl==71366||Wl==71415||Wl==75855||Wl==75945||Wl==75974||Wl==76023||Wl==76879||Wl==76969||Wl==76998||Wl==77047||Wl==77903||Wl==77993||Wl==78022||Wl==78071||Wl==78415||Wl==78505||Wl==78534||Wl==78583||Wl==79951||Wl==80041||Wl==80070||Wl==80119||Wl==83023||Wl==83113||Wl==83142||Wl==83191||Wl==84047||Wl==84137||Wl==84166||Wl==84215||Wl==84559||Wl==84649||Wl==84678||Wl==84727||Wl==85071||Wl==85161||Wl==85190||Wl==85239||Wl==89679||Wl==89769||Wl==89798||Wl==89847||Wl==90703||Wl==90793||Wl==90822||Wl==90871||Wl==92751||Wl==92841||Wl==92870||Wl==92919||Wl==93775||Wl==93865||Wl==93894||Wl==93943||Wl==94287||Wl==94377||Wl==94406||Wl==94455||Wl==96847||Wl==96937||Wl==96966||Wl==97015||Wl==103503||Wl==103593||Wl==103622||Wl==103671||Wl==104527||Wl==104617||Wl==104646||Wl==104695||Wl==105039||Wl==105129||Wl==105158||Wl==105207||Wl==107087||Wl==107177||Wl==107206||Wl==107255||Wl==114767||Wl==114857||Wl==114886||Wl==114935||Wl==116815||Wl==116905||Wl==116934||Wl==116983||Wl==118863||Wl==118953||Wl==118982||Wl==119031||Wl==121423||Wl==121513||Wl==121542||Wl==121591||Wl==123471||Wl==123561||Wl==123590||Wl==123639||Wl==123983||Wl==124073||Wl==124102||Wl==124151||Wl==129103||Wl==129193||Wl==129222||Wl==129271||Wl==129615||Wl==129705||Wl==129734||Wl==129783||Wl==133199||Wl==133289||Wl==133318||Wl==133367||Wl==139343||Wl==139433||Wl==139462||Wl==139511||Wl==141391||Wl==141481||Wl==141510||Wl==141559||Wl==142927||Wl==143017||Wl==143046||Wl==143095||Wl==143951||Wl==144041||Wl==144070||Wl==144119||Wl==145487||Wl==145577||Wl==145606||Wl==145655||Wl==145999||Wl==146089||Wl==146118||Wl==146167||Wl==146511||Wl==146601||Wl==146630||Wl==146679||Wl==147023||Wl==147113||Wl==147142||Wl==147191){Wl=uc(6,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Xs(),oc(6,t,-4),Wl=-8}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Hs(),oc(6,t,-6),Wl=-8}catch(f){Wl=-7,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(6,t,-7)}}}}switch(Wl){case 18003:case 18017:case 18041:case 18042:case 18108:case 18114:case 18140:case 18150:case 18151:case 18169:$s();break;case 18087:Hl(167),Il(22),Hl(35),Il(23),Hl(38);break;case 33:case 18067:_o();break;case 35:Fo();break;case-6:case 17999:case 18089:case 18118:Hs();break;case-7:case 18167:js();break;case-8:break;default:Xs()}}function Ps(){ic.startNonterminal(\"JSONTest\",Vl);switch($l){case 169:Fs();break;case 198:qs();break;default:Us()}ic.endNonterminal(\"JSONTest\",Vl)}function Hs(){switch($l){case 169:Is();break;case 198:Rs();break;default:zs()}}function Bs(){ic.startNonterminal(\"StructuredItemTest\",Vl),Pl(247),Il(233),$l==35&&(Pl(35),Il(23),Pl(38)),ic.endNonterminal(\"StructuredItemTest\",Vl)}function js(){Hl(247),Il(233),$l==35&&(Hl(35),Il(23),Hl(38))}function Fs(){ic.startNonterminal(\"JSONItemTest\",Vl),Pl(169),Il(233),$l==35&&(Pl(35),Il(23),Pl(38)),ic.endNonterminal(\"JSONItemTest\",Vl)}function Is(){Hl(169),Il(233),$l==35&&(Hl(35),Il(23),Hl(38))}function qs(){ic.startNonterminal(\"JSONObjectTest\",Vl),Pl(198),Il(233),$l==35&&(Pl(35),Il(23),Pl(38)),ic.endNonterminal(\"JSONObjectTest\",Vl)}function Rs(){Hl(198),Il(233),$l==35&&(Hl(35),Il(23),Hl(38))}function Us(){ic.startNonterminal(\"JSONArrayTest\",Vl),Pl(79),Il(233),$l==35&&(Pl(35),Il(23),Pl(38)),ic.endNonterminal(\"JSONArrayTest\",Vl)}function zs(){Hl(79),Il(233),$l==35&&(Hl(35),Il(23),Hl(38))}function Ws(){ic.startNonterminal(\"AtomicOrUnionType\",Vl),$a(),ic.endNonterminal(\"AtomicOrUnionType\",Vl)}function Xs(){Ja()}function Vs(){ic.startNonterminal(\"KindTest\",Vl);switch($l){case 121:Qs();break;case 122:vo();break;case 83:oo();break;case 231:bo();break;case 230:lo();break;case 220:io();break;case 97:eo();break;case 249:Ys();break;case 188:no();break;default:Js()}ic.endNonterminal(\"KindTest\",Vl)}function $s(){switch($l){case 121:Gs();break;case 122:mo();break;case 83:uo();break;case 231:wo();break;case 230:co();break;case 220:so();break;case 97:to();break;case 249:Zs();break;case 188:ro();break;default:Ks()}}function Js(){ic.startNonterminal(\"AnyKindTest\",Vl),Pl(194),Il(22),Pl(35),Il(23),Pl(38),ic.endNonterminal(\"AnyKindTest\",Vl)}function Ks(){Hl(194),Il(22),Hl(35),Il(23),Hl(38)}function Qs(){ic.startNonterminal(\"DocumentTest\",Vl),Pl(121),Il(22),Pl(35),Il(154);if($l!=38)switch($l){case 122:jl(),vo();break;default:jl(),bo()}Il(23),Pl(38),ic.endNonterminal(\"DocumentTest\",Vl)}function Gs(){Hl(121),Il(22),Hl(35),Il(154);if($l!=38)switch($l){case 122:mo();break;default:wo()}Il(23),Hl(38)}function Ys(){ic.startNonterminal(\"TextTest\",Vl),Pl(249),Il(22),Pl(35),Il(23),Pl(38),ic.endNonterminal(\"TextTest\",Vl)}function Zs(){Hl(249),Il(22),Hl(35),Il(23),Hl(38)}function eo(){ic.startNonterminal(\"CommentTest\",Vl),Pl(97),Il(22),Pl(35),Il(23),Pl(38),ic.endNonterminal(\"CommentTest\",Vl)}function to(){Hl(97),Il(22),Hl(35),Il(23),Hl(38)}function no(){ic.startNonterminal(\"NamespaceNodeTest\",Vl),Pl(188),Il(22),Pl(35),Il(23),Pl(38),ic.endNonterminal(\"NamespaceNodeTest\",Vl)}function ro(){Hl(188),Il(22),Hl(35),Il(23),Hl(38)}function io(){ic.startNonterminal(\"PITest\",Vl),Pl(220),Il(22),Pl(35),Il(244);if($l!=38)switch($l){case 11:Pl(11);break;default:jl(),Ga()}Il(23),Pl(38),ic.endNonterminal(\"PITest\",Vl)}function so(){Hl(220),Il(22),Hl(35),Il(244);if($l!=38)switch($l){case 11:Hl(11);break;default:Ya()}Il(23),Hl(38)}function oo(){ic.startNonterminal(\"AttributeTest\",Vl),Pl(83),Il(22),Pl(35),Il(255),$l!=38&&(jl(),ao(),Il(105),$l==42&&(Pl(42),Il(246),jl(),Ao())),Il(23),Pl(38),ic.endNonterminal(\"AttributeTest\",Vl)}function uo(){Hl(83),Il(22),Hl(35),Il(255),$l!=38&&(fo(),Il(105),$l==42&&(Hl(42),Il(246),Oo())),Il(23),Hl(38)}function ao(){ic.startNonterminal(\"AttribNameOrWildcard\",Vl);switch($l){case 39:Pl(39);break;default:xo()}ic.endNonterminal(\"AttribNameOrWildcard\",Vl)}function fo(){switch($l){case 39:Hl(39);break;default:To()}}function lo(){ic.startNonterminal(\"SchemaAttributeTest\",Vl),Pl(230),Il(22),Pl(35),Il(246),jl(),ho(),Il(23),Pl(38),ic.endNonterminal(\"SchemaAttributeTest\",Vl)}function co(){Hl(230),Il(22),Hl(35),Il(246),po(),Il(23),Hl(38)}function ho(){ic.startNonterminal(\"AttributeDeclaration\",Vl),xo(),ic.endNonterminal(\"AttributeDeclaration\",Vl)}function po(){To()}function vo(){ic.startNonterminal(\"ElementTest\",Vl),Pl(122),Il(22),Pl(35),Il(255),$l!=38&&(jl(),go(),Il(105),$l==42&&(Pl(42),Il(246),jl(),Ao(),Il(106),$l==65&&Pl(65))),Il(23),Pl(38),ic.endNonterminal(\"ElementTest\",Vl)}function mo(){Hl(122),Il(22),Hl(35),Il(255),$l!=38&&(yo(),Il(105),$l==42&&(Hl(42),Il(246),Oo(),Il(106),$l==65&&Hl(65))),Il(23),Hl(38)}function go(){ic.startNonterminal(\"ElementNameOrWildcard\",Vl);switch($l){case 39:Pl(39);break;default:No()}ic.endNonterminal(\"ElementNameOrWildcard\",Vl)}function yo(){switch($l){case 39:Hl(39);break;default:Co()}}function bo(){ic.startNonterminal(\"SchemaElementTest\",Vl),Pl(231),Il(22),Pl(35),Il(246),jl(),Eo(),Il(23),Pl(38),ic.endNonterminal(\"SchemaElementTest\",Vl)}function wo(){Hl(231),Il(22),Hl(35),Il(246),So(),Il(23),Hl(38)}function Eo(){ic.startNonterminal(\"ElementDeclaration\",Vl),No(),ic.endNonterminal(\"ElementDeclaration\",Vl)}function So(){Co()}function xo(){ic.startNonterminal(\"AttributeName\",Vl),$a(),ic.endNonterminal(\"AttributeName\",Vl)}function To(){Ja()}function No(){ic.startNonterminal(\"ElementName\",Vl),$a(),ic.endNonterminal(\"ElementName\",Vl)}function Co(){Ja()}function ko(){ic.startNonterminal(\"SimpleTypeName\",Vl),Ao(),ic.endNonterminal(\"SimpleTypeName\",Vl)}function Lo(){Oo()}function Ao(){ic.startNonterminal(\"TypeName\",Vl),$a(),ic.endNonterminal(\"TypeName\",Vl)}function Oo(){Ja()}function Mo(){ic.startNonterminal(\"FunctionTest\",Vl);for(;;){Il(101);if($l!=33)break;jl(),B()}switch($l){case 147:ql(22);break;default:Wl=$l}Wl=uc(7,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Po(),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(7,Vl,Wl)}switch(Wl){case-1:jl(),Do();break;default:jl(),Ho()}ic.endNonterminal(\"FunctionTest\",Vl)}function _o(){for(;;){Il(101);if($l!=33)break;j()}switch($l){case 147:ql(22);break;default:Wl=$l}Wl=uc(7,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Po(),oc(7,t,-1),Wl=-3}catch(a){Wl=-2,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(7,t,-2)}}switch(Wl){case-1:Po();break;case-3:break;default:Bo()}}function Do(){ic.startNonterminal(\"AnyFunctionTest\",Vl),Pl(147),Il(22),Pl(35),Il(24),Pl(39),Il(23),Pl(38),ic.endNonterminal(\"AnyFunctionTest\",Vl)}function Po(){Hl(147),Il(22),Hl(35),Il(24),Hl(39),Il(23),Hl(38)}function Ho(){ic.startNonterminal(\"TypedFunctionTest\",Vl),Pl(147),Il(22),Pl(35),Il(259);if($l!=38){jl(),Ls();for(;;){Il(105);if($l!=42)break;Pl(42),Il(254),jl(),Ls()}}Pl(38),Il(33),Pl(80),Il(254),jl(),Ls(),ic.endNonterminal(\"TypedFunctionTest\",Vl)}function Bo(){Hl(147),Il(22),Hl(35),Il(259);if($l!=38){As();for(;;){Il(105);if($l!=42)break;Hl(42),Il(254),As()}}Hl(38),Il(33),Hl(80),Il(254),As()}function jo(){ic.startNonterminal(\"ParenthesizedItemType\",Vl),Pl(35),Il(254),jl(),_s(),Il(23),Pl(38),ic.endNonterminal(\"ParenthesizedItemType\",Vl)}function Fo(){Hl(35),Il(254),Ds(),Il(23),Hl(38)}function Io(){ic.startNonterminal(\"RevalidationDecl\",Vl),Pl(109),Il(75),Pl(226),Il(162);switch($l){case 245:Pl(245);break;case 174:Pl(174);break;default:Pl(238)}ic.endNonterminal(\"RevalidationDecl\",Vl)}function qo(){ic.startNonterminal(\"InsertExprTargetChoice\",Vl);switch($l){case 71:Pl(71);break;case 85:Pl(85);break;default:if($l==80){Pl(80),Il(123);switch($l){case 136:Pl(136);break;default:Pl(173)}}Il(57),Pl(165)}ic.endNonterminal(\"InsertExprTargetChoice\",Vl)}function Ro(){switch($l){case 71:Hl(71);break;case 85:Hl(85);break;default:if($l==80){Hl(80),Il(123);switch($l){case 136:Hl(136);break;default:Hl(173)}}Il(57),Hl(165)}}function Uo(){ic.startNonterminal(\"InsertExpr\",Vl),Pl(161),Il(133);switch($l){case 194:Pl(194);break;default:Pl(195)}Il(267),jl(),Qo(),jl(),qo(),Il(267),jl(),Yo(),ic.endNonterminal(\"InsertExpr\",Vl)}function zo(){Hl(161),Il(133);switch($l){case 194:Hl(194);break;default:Hl(195)}Il(267),Go(),Ro(),Il(267),Zo()}function Wo(){ic.startNonterminal(\"DeleteExpr\",Vl),Pl(111),Il(133);switch($l){case 194:Pl(194);break;default:Pl(195)}Il(267),jl(),Yo(),ic.endNonterminal(\"DeleteExpr\",Vl)}function Xo(){Hl(111),Il(133);switch($l){case 194:Hl(194);break;default:Hl(195)}Il(267),Zo()}function Vo(){ic.startNonterminal(\"ReplaceExpr\",Vl),Pl(223),Il(134),$l==267&&(Pl(267),Il(67),Pl(200)),Il(65),Pl(194),Il(267),jl(),Yo(),Pl(276),Il(267),jl(),Wf(),ic.endNonterminal(\"ReplaceExpr\",Vl)}function $o(){Hl(223),Il(134),$l==267&&(Hl(267),Il(67),Hl(200)),Il(65),Hl(194),Il(267),Zo(),Hl(276),Il(267),Xf()}function Jo(){ic.startNonterminal(\"RenameExpr\",Vl),Pl(222),Il(65),Pl(194),Il(267),jl(),Yo(),Pl(80),Il(267),jl(),eu(),ic.endNonterminal(\"RenameExpr\",Vl)}function Ko(){Hl(222),Il(65),Hl(194),Il(267),Zo(),Hl(80),Il(267),tu()}function Qo(){ic.startNonterminal(\"SourceExpr\",Vl),Wf(),ic.endNonterminal(\"SourceExpr\",Vl)}function Go(){Xf()}function Yo(){ic.startNonterminal(\"TargetExpr\",Vl),Wf(),ic.endNonterminal(\"TargetExpr\",Vl)}function Zo(){Xf()}function eu(){ic.startNonterminal(\"NewNameExpr\",Vl),Wf(),ic.endNonterminal(\"NewNameExpr\",Vl)}function tu(){Xf()}function nu(){ic.startNonterminal(\"TransformExpr\",Vl),Pl(104),Il(21),jl(),iu();for(;;){if($l!=42)break;Pl(42),Il(21),jl(),iu()}Pl(184),Il(267),jl(),Wf(),Pl(224),Il(267),jl(),Wf(),ic.endNonterminal(\"TransformExpr\",Vl)}function ru(){Hl(104),Il(21),su();for(;;){if($l!=42)break;Hl(42),Il(21),su()}Hl(184),Il(267),Xf(),Hl(224),Il(267),Xf()}function iu(){ic.startNonterminal(\"TransformSpec\",Vl),Pl(31),Il(246),jl(),Ti(),Il(28),Pl(53),Il(267),jl(),Wf(),ic.endNonterminal(\"TransformSpec\",Vl)}function su(){Hl(31),Il(246),Ni(),Il(28),Hl(53),Il(267),Xf()}function ou(){ic.startNonterminal(\"FTSelection\",Vl),lu();for(;;){Il(212);switch($l){case 82:ql(161);break;default:Wl=$l}if(Wl!=116&&Wl!=118&&Wl!=128&&Wl!=206&&Wl!=227&&Wl!=275&&Wl!=65106&&Wl!=123986)break;jl(),Pu()}ic.endNonterminal(\"FTSelection\",Vl)}function uu(){cu();for(;;){Il(212);switch($l){case 82:ql(161);break;default:Wl=$l}if(Wl!=116&&Wl!=118&&Wl!=128&&Wl!=206&&Wl!=227&&Wl!=275&&Wl!=65106&&Wl!=123986)break;Hu()}}function au(){ic.startNonterminal(\"FTWeight\",Vl),Pl(270),Il(90),Pl(281),Il(267),jl(),G(),Pl(287),ic.endNonterminal(\"FTWeight\",Vl)}function fu(){Hl(270),Il(90),Hl(281),Il(267),Y(),Hl(287)}function lu(){ic.startNonterminal(\"FTOr\",Vl),hu();for(;;){if($l!=146)break;Pl(146),Il(177),jl(),hu()}ic.endNonterminal(\"FTOr\",Vl)}function cu(){pu();for(;;){if($l!=146)break;Hl(146),Il(177),pu()}}function hu(){ic.startNonterminal(\"FTAnd\",Vl),du();for(;;){if($l!=144)break;Pl(144),Il(177),jl(),du()}ic.endNonterminal(\"FTAnd\",Vl)}function pu(){vu();for(;;){if($l!=144)break;Hl(144),Il(177),vu()}}function du(){ic.startNonterminal(\"FTMildNot\",Vl),mu();for(;;){Il(213);if($l!=196)break;Pl(196),Il(56),Pl(156),Il(177),jl(),mu()}ic.endNonterminal(\"FTMildNot\",Vl)}function vu(){gu();for(;;){Il(213);if($l!=196)break;Hl(196),Il(56),Hl(156),Il(177),gu()}}function mu(){ic.startNonterminal(\"FTUnaryNot\",Vl),$l==145&&Pl(145),Il(164),jl(),yu(),ic.endNonterminal(\"FTUnaryNot\",Vl)}function gu(){$l==145&&Hl(145),Il(164),bu()}function yu(){ic.startNonterminal(\"FTPrimaryWithOptions\",Vl),wu(),Il(214),$l==265&&(jl(),Qu()),$l==270&&(jl(),au()),ic.endNonterminal(\"FTPrimaryWithOptions\",Vl)}function bu(){Eu(),Il(214),$l==265&&Gu(),$l==270&&fu()}function wu(){ic.startNonterminal(\"FTPrimary\",Vl);switch($l){case 35:Pl(35),Il(177),jl(),ou(),Pl(38);break;case 36:Cu();break;default:Su(),Il(215),$l==199&&(jl(),Ou())}ic.endNonterminal(\"FTPrimary\",Vl)}function Eu(){switch($l){case 35:Hl(35),Il(177),uu(),Hl(38);break;case 36:ku();break;default:xu(),Il(215),$l==199&&Mu()}}function Su(){ic.startNonterminal(\"FTWords\",Vl),Tu(),Il(221);if($l==72||$l==77||$l==214)jl(),Lu();ic.endNonterminal(\"FTWords\",Vl)}function xu(){Nu(),Il(221),($l==72||$l==77||$l==214)&&Au()}function Tu(){ic.startNonterminal(\"FTWordsValue\",Vl);switch($l){case 11:Pl(11);break;default:Pl(281),Il(267),jl(),G(),Pl(287)}ic.endNonterminal(\"FTWordsValue\",Vl)}function Nu(){switch($l){case 11:Hl(11);break;default:Hl(281),Il(267),Y(),Hl(287)}}function Cu(){ic.startNonterminal(\"FTExtensionSelection\",Vl);for(;;){jl(),Lr(),Il(104);if($l!=36)break}Pl(281),Il(184),$l!=287&&(jl(),ou()),Pl(287),ic.endNonterminal(\"FTExtensionSelection\",Vl)}function ku(){for(;;){Ar(),Il(104);if($l!=36)break}Hl(281),Il(184),$l!=287&&uu(),Hl(287)}function Lu(){ic.startNonterminal(\"FTAnyallOption\",Vl);switch($l){case 77:Pl(77),Il(218),$l==278&&Pl(278);break;case 72:Pl(72),Il(219),$l==279&&Pl(279);break;default:Pl(214)}ic.endNonterminal(\"FTAnyallOption\",Vl)}function Au(){switch($l){case 77:Hl(77),Il(218),$l==278&&Hl(278);break;case 72:Hl(72),Il(219),$l==279&&Hl(279);break;default:Hl(214)}}function Ou(){ic.startNonterminal(\"FTTimes\",Vl),Pl(199),Il(159),jl(),_u(),Pl(252),ic.endNonterminal(\"FTTimes\",Vl)}function Mu(){Hl(199),Il(159),Du(),Hl(252)}function _u(){ic.startNonterminal(\"FTRange\",Vl);switch($l){case 131:Pl(131),Il(266),jl(),Jn();break;case 82:Pl(82),Il(129);switch($l){case 176:Pl(176),Il(266),jl(),Jn();break;default:Pl(186),Il(266),jl(),Jn()}break;default:Pl(142),Il(266),jl(),Jn(),Pl(253),Il(266),jl(),Jn()}ic.endNonterminal(\"FTRange\",Vl)}function Du(){switch($l){case 131:Hl(131),Il(266),Kn();break;case 82:Hl(82),Il(129);switch($l){case 176:Hl(176),Il(266),Kn();break;default:Hl(186),Il(266),Kn()}break;default:Hl(142),Il(266),Kn(),Hl(253),Il(266),Kn()}}function Pu(){ic.startNonterminal(\"FTPosFilter\",Vl);switch($l){case 206:Bu();break;case 275:Fu();break;case 118:qu();break;case 116:case 227:Wu();break;default:Ju()}ic.endNonterminal(\"FTPosFilter\",Vl)}function Hu(){switch($l){case 206:ju();break;case 275:Iu();break;case 118:Ru();break;case 116:case 227:Xu();break;default:Ku()}}function Bu(){ic.startNonterminal(\"FTOrder\",Vl),Pl(206),ic.endNonterminal(\"FTOrder\",Vl)}function ju(){Hl(206)}function Fu(){ic.startNonterminal(\"FTWindow\",Vl),Pl(275),Il(266),jl(),Jn(),jl(),Uu(),ic.endNonterminal(\"FTWindow\",Vl)}function Iu(){Hl(275),Il(266),Kn(),zu()}function qu(){ic.startNonterminal(\"FTDistance\",Vl),Pl(118),Il(159),jl(),_u(),jl(),Uu(),ic.endNonterminal(\"FTDistance\",Vl)}function Ru(){Hl(118),Il(159),Du(),zu()}function Uu(){ic.startNonterminal(\"FTUnit\",Vl);switch($l){case 279:Pl(279);break;case 237:Pl(237);break;default:Pl(209)}ic.endNonterminal(\"FTUnit\",Vl)}function zu(){switch($l){case 279:Hl(279);break;case 237:Hl(237);break;default:Hl(209)}}function Wu(){ic.startNonterminal(\"FTScope\",Vl);switch($l){case 227:Pl(227);break;default:Pl(116)}Il(136),jl(),Vu(),ic.endNonterminal(\"FTScope\",Vl)}function Xu(){switch($l){case 227:Hl(227);break;default:Hl(116)}Il(136),$u()}function Vu(){ic.startNonterminal(\"FTBigUnit\",Vl);switch($l){case 236:Pl(236);break;default:Pl(208)}ic.endNonterminal(\"FTBigUnit\",Vl)}function $u(){switch($l){case 236:Hl(236);break;default:Hl(208)}}function Ju(){ic.startNonterminal(\"FTContent\",Vl);switch($l){case 82:Pl(82),Il(121);switch($l){case 242:Pl(242);break;default:Pl(127)}break;default:Pl(128),Il(45),Pl(101)}ic.endNonterminal(\"FTContent\",Vl)}function Ku(){switch($l){case 82:Hl(82),Il(121);switch($l){case 242:Hl(242);break;default:Hl(127)}break;default:Hl(128),Il(45),Hl(101)}}function Qu(){ic.startNonterminal(\"FTMatchOptions\",Vl);for(;;){Pl(265),Il(205),jl(),Yu(),Il(214);if($l!=265)break}ic.endNonterminal(\"FTMatchOptions\",Vl)}function Gu(){for(;;){Hl(265),Il(205),Zu(),Il(214);if($l!=265)break}}function Yu(){ic.startNonterminal(\"FTMatchOption\",Vl);switch($l){case 191:ql(176);break;default:Wl=$l}switch(Wl){case 172:ya();break;case 274:case 140479:wa();break;case 251:case 128703:oa();break;case 243:case 124607:ia();break;case 115:na();break;case 244:case 125119:ha();break;case 203:Sa();break;default:ea()}ic.endNonterminal(\"FTMatchOption\",Vl)}function Zu(){switch($l){case 191:ql(176);break;default:Wl=$l}switch(Wl){case 172:ba();break;case 274:case 140479:Ea();break;case 251:case 128703:ua();break;case 243:case 124607:sa();break;case 115:ra();break;case 244:case 125119:pa();break;case 203:xa();break;default:ta()}}function ea(){ic.startNonterminal(\"FTCaseOption\",Vl);switch($l){case 89:Pl(89),Il(128);switch($l){case 160:Pl(160);break;default:Pl(235)}break;case 180:Pl(180);break;default:Pl(264)}ic.endNonterminal(\"FTCaseOption\",Vl)}function ta(){switch($l){case 89:Hl(89),Il(128);switch($l){case 160:Hl(160);break;default:Hl(235)}break;case 180:Hl(180);break;default:Hl(264)}}function na(){ic.startNonterminal(\"FTDiacriticsOption\",Vl),Pl(115),Il(128);switch($l){case 160:Pl(160);break;default:Pl(235)}ic.endNonterminal(\"FTDiacriticsOption\",Vl)}function ra(){Hl(115),Il(128);switch($l){case 160:Hl(160);break;default:Hl(235)}}function ia(){ic.startNonterminal(\"FTStemOption\",Vl);switch($l){case 243:Pl(243);break;default:Pl(191),Il(77),Pl(243)}ic.endNonterminal(\"FTStemOption\",Vl)}function sa(){switch($l){case 243:Hl(243);break;default:Hl(191),Il(77),Hl(243)}}function oa(){ic.startNonterminal(\"FTThesaurusOption\",Vl);switch($l){case 251:Pl(251),Il(152);switch($l){case 82:jl(),aa();break;case 110:Pl(110);break;default:Pl(35),Il(116);switch($l){case 82:jl(),aa();break;default:Pl(110)}for(;;){Il(105);if($l!=42)break;Pl(42),Il(34),jl(),aa()}Pl(38)}break;default:Pl(191),Il(81),Pl(251)}ic.endNonterminal(\"FTThesaurusOption\",Vl)}function ua(){switch($l){case 251:Hl(251),Il(152);switch($l){case 82:fa();break;case 110:Hl(110);break;default:Hl(35),Il(116);switch($l){case 82:fa();break;default:Hl(110)}for(;;){Il(105);if($l!=42)break;Hl(42),Il(34),fa()}Hl(38)}break;default:Hl(191),Il(81),Hl(251)}}function aa(){ic.startNonterminal(\"FTThesaurusID\",Vl),Pl(82),Il(15),Pl(7),Il(220),$l==221&&(Pl(221),Il(17),Pl(11)),Il(216);switch($l){case 82:ql(183);break;default:Wl=$l}if(Wl==131||Wl==142||Wl==90194||Wl==95314)jl(),la(),Il(61),Pl(178);ic.endNonterminal(\"FTThesaurusID\",Vl)}function fa(){Hl(82),Il(15),Hl(7),Il(220),$l==221&&(Hl(221),Il(17),Hl(11)),Il(216);switch($l){case 82:ql(183);break;default:Wl=$l}if(Wl==131||Wl==142||Wl==90194||Wl==95314)ca(),Il(61),Hl(178)}function la(){ic.startNonterminal(\"FTLiteralRange\",Vl);switch($l){case 131:Pl(131),Il(16),Pl(8);break;case 82:Pl(82),Il(129);switch($l){case 176:Pl(176),Il(16),Pl(8);break;default:Pl(186),Il(16),Pl(8)}break;default:Pl(142),Il(16),Pl(8),Il(82),Pl(253),Il(16),Pl(8)}ic.endNonterminal(\"FTLiteralRange\",Vl)}function ca(){switch($l){case 131:Hl(131),Il(16),Hl(8);break;case 82:Hl(82),Il(129);switch($l){case 176:Hl(176),Il(16),Hl(8);break;default:Hl(186),Il(16),Hl(8)}break;default:Hl(142),Il(16),Hl(8),Il(82),Hl(253),Il(16),Hl(8)}}function ha(){ic.startNonterminal(\"FTStopWordOption\",Vl);switch($l){case 244:Pl(244),Il(89),Pl(279),Il(152);switch($l){case 110:Pl(110);for(;;){Il(217);if($l!=132&&$l!=260)break;jl(),ma()}break;default:jl(),da();for(;;){Il(217);if($l!=132&&$l!=260)break;jl(),ma()}}break;default:Pl(191),Il(78),Pl(244),Il(89),Pl(279)}ic.endNonterminal(\"FTStopWordOption\",Vl)}function pa(){switch($l){case 244:Hl(244),Il(89),Hl(279),Il(152);switch($l){case 110:Hl(110);for(;;){Il(217);if($l!=132&&$l!=260)break;ga()}break;default:va();for(;;){Il(217);if($l!=132&&$l!=260)break;ga()}}break;default:Hl(191),Il(78),Hl(244),Il(89),Hl(279)}}function da(){ic.startNonterminal(\"FTStopWords\",Vl);switch($l){case 82:Pl(82),Il(15),Pl(7);break;default:Pl(35),Il(17),Pl(11);for(;;){Il(105);if($l!=42)break;Pl(42),Il(17),Pl(11)}Pl(38)}ic.endNonterminal(\"FTStopWords\",Vl)}function va(){switch($l){case 82:Hl(82),Il(15),Hl(7);break;default:Hl(35),Il(17),Hl(11);for(;;){Il(105);if($l!=42)break;Hl(42),Il(17),Hl(11)}Hl(38)}}function ma(){ic.startNonterminal(\"FTStopWordsInclExcl\",Vl);switch($l){case 260:Pl(260);break;default:Pl(132)}Il(103),jl(),da(),ic.endNonterminal(\"FTStopWordsInclExcl\",Vl)}function ga(){switch($l){case 260:Hl(260);break;default:Hl(132)}Il(103),va()}function ya(){ic.startNonterminal(\"FTLanguageOption\",Vl),Pl(172),Il(17),Pl(11),ic.endNonterminal(\"FTLanguageOption\",Vl)}function ba(){Hl(172),Il(17),Hl(11)}function wa(){ic.startNonterminal(\"FTWildCardOption\",Vl);switch($l){case 274:Pl(274);break;default:Pl(191),Il(87),Pl(274)}ic.endNonterminal(\"FTWildCardOption\",Vl)}function Ea(){switch($l){case 274:Hl(274);break;default:Hl(191),Il(87),Hl(274)}}function Sa(){ic.startNonterminal(\"FTExtensionOption\",Vl),Pl(203),Il(246),jl(),$a(),Il(17),Pl(11),ic.endNonterminal(\"FTExtensionOption\",Vl)}function xa(){Hl(203),Il(246),Ja(),Il(17),Hl(11)}function Ta(){ic.startNonterminal(\"FTIgnoreOption\",Vl),Pl(277),Il(45),Pl(101),Il(266),jl(),Yn(),ic.endNonterminal(\"FTIgnoreOption\",Vl)}function Na(){Hl(277),Il(45),Hl(101),Il(266),Zn()}function Ca(){ic.startNonterminal(\"CollectionDecl\",Vl),Pl(96),Il(246),jl(),$a(),Il(111),$l==80&&(jl(),ka()),ic.endNonterminal(\"CollectionDecl\",Vl)}function ka(){ic.startNonterminal(\"CollectionTypeDecl\",Vl),Pl(80),Il(200),jl(),Vs(),Il(171),$l!=54&&(jl(),Os()),ic.endNonterminal(\"CollectionTypeDecl\",Vl)}function La(){ic.startNonterminal(\"IndexName\",Vl),$a(),ic.endNonterminal(\"IndexName\",Vl)}function Aa(){ic.startNonterminal(\"IndexDomainExpr\",Vl),Or(),ic.endNonterminal(\"IndexDomainExpr\",Vl)}function Oa(){ic.startNonterminal(\"IndexKeySpec\",Vl),Ma(),$l==80&&(jl(),_a()),Il(156),$l==95&&(jl(),Pa()),ic.endNonterminal(\"IndexKeySpec\",Vl)}function Ma(){ic.startNonterminal(\"IndexKeyExpr\",Vl),Or(),ic.endNonterminal(\"IndexKeyExpr\",Vl)}function _a(){ic.startNonterminal(\"IndexKeyTypeDecl\",Vl),Pl(80),Il(246),jl(),Da(),Il(189);if($l==40||$l==41||$l==65)jl(),Os();ic.endNonterminal(\"IndexKeyTypeDecl\",Vl)}function Da(){ic.startNonterminal(\"AtomicType\",Vl),$a(),ic.endNonterminal(\"AtomicType\",Vl)}function Pa(){ic.startNonterminal(\"IndexKeyCollation\",Vl),Pl(95),Il(15),Pl(7),ic.endNonterminal(\"IndexKeyCollation\",Vl)}function Ha(){ic.startNonterminal(\"IndexDecl\",Vl),Pl(157),Il(246),jl(),La(),Il(68),Pl(201),Il(66),Pl(195),Il(263),jl(),Aa(),Pl(88),Il(263),jl(),Oa();for(;;){Il(107);if($l!=42)break;Pl(42),Il(263),jl(),Oa()}ic.endNonterminal(\"IndexDecl\",Vl)}function Ba(){ic.startNonterminal(\"ICDecl\",Vl),Pl(163),Il(43),Pl(98),Il(246),jl(),$a(),Il(124);switch($l){case 201:jl(),ja();break;default:jl(),Ra()}ic.endNonterminal(\"ICDecl\",Vl)}function ja(){ic.startNonterminal(\"ICCollection\",Vl),Pl(201),Il(42),Pl(96),Il(246),jl(),$a(),Il(150);switch($l){case 31:jl(),Fa();break;case 194:jl(),Ia();break;default:jl(),qa()}ic.endNonterminal(\"ICCollection\",Vl)}function Fa(){ic.startNonterminal(\"ICCollSequence\",Vl),Si(),Il(40),Pl(93),Il(267),jl(),Wf(),ic.endNonterminal(\"ICCollSequence\",Vl)}function Ia(){ic.startNonterminal(\"ICCollSequenceUnique\",Vl),Pl(194),Il(21),jl(),Si(),Il(40),Pl(93),Il(83),Pl(261),Il(60),Pl(171),Il(263),jl(),Or(),ic.endNonterminal(\"ICCollSequenceUnique\",Vl)}function qa(){ic.startNonterminal(\"ICCollNode\",Vl),Pl(140),Il(65),Pl(194),Il(21),jl(),Si(),Il(40),Pl(93),Il(267),jl(),Wf(),ic.endNonterminal(\"ICCollNode\",Vl)}function Ra(){ic.startNonterminal(\"ICForeignKey\",Vl),Pl(141),Il(60),Pl(171),Il(54),jl(),Ua(),jl(),za(),ic.endNonterminal(\"ICForeignKey\",Vl)}function Ua(){ic.startNonterminal(\"ICForeignKeySource\",Vl),Pl(142),Il(42),jl(),Wa(),ic.endNonterminal(\"ICForeignKeySource\",Vl)}function za(){ic.startNonterminal(\"ICForeignKeyTarget\",Vl),Pl(253),Il(42),jl(),Wa(),ic.endNonterminal(\"ICForeignKeyTarget\",Vl)}function Wa(){ic.startNonterminal(\"ICForeignKeyValues\",Vl),Pl(96),Il(246),jl(),$a(),Il(65),Pl(194),Il(21),jl(),Si(),Il(60),Pl(171),Il(263),jl(),Or(),ic.endNonterminal(\"ICForeignKeyValues\",Vl)}function Xa(){Hl(37);for(;;){Rl(92);if($l==51)break;switch($l){case 24:Hl(24);break;default:Xa()}}Hl(51)}function Va(){switch($l){case 22:Hl(22);break;default:Xa()}}function $a(){ic.startNonterminal(\"EQName\",Vl),Rl(241);switch($l){case 83:Pl(83);break;case 97:Pl(97);break;case 121:Pl(121);break;case 122:Pl(122);break;case 125:Pl(125);break;case 147:Pl(147);break;case 154:Pl(154);break;case 167:Pl(167);break;case 188:Pl(188);break;case 194:Pl(194);break;case 220:Pl(220);break;case 230:Pl(230);break;case 231:Pl(231);break;case 248:Pl(248);break;case 249:Pl(249);break;case 259:Pl(259);break;case 79:Pl(79);break;case 169:Pl(169);break;case 247:Pl(247);break;default:Ka()}ic.endNonterminal(\"EQName\",Vl)}function Ja(){Rl(241);switch($l){case 83:Hl(83);break;case 97:Hl(97);break;case 121:Hl(121);break;case 122:Hl(122);break;case 125:Hl(125);break;case 147:Hl(147);break;case 154:Hl(154);break;case 167:Hl(167);break;case 188:Hl(188);break;case 194:Hl(194);break;case 220:Hl(220);break;case 230:Hl(230);break;case 231:Hl(231);break;case 248:Hl(248);break;case 249:Hl(249);break;case 259:Hl(259);break;case 79:Hl(79);break;case 169:Hl(169);break;case 247:Hl(247);break;default:Qa()}}function Ka(){ic.startNonterminal(\"FunctionName\",Vl);switch($l){case 6:Pl(6);break;case 71:Pl(71);break;case 74:Pl(74);break;case 75:Pl(75);break;case 76:Pl(76);break;case 80:Pl(80);break;case 81:Pl(81);break;case 85:Pl(85);break;case 89:Pl(89);break;case 90:Pl(90);break;case 91:Pl(91);break;case 94:Pl(94);break;case 95:Pl(95);break;case 104:Pl(104);break;case 106:Pl(106);break;case 109:Pl(109);break;case 110:Pl(110);break;case 111:Pl(111);break;case 112:Pl(112);break;case 113:Pl(113);break;case 114:Pl(114);break;case 119:Pl(119);break;case 120:Pl(120);break;case 123:Pl(123);break;case 124:Pl(124);break;case 127:Pl(127);break;case 129:Pl(129);break;case 130:Pl(130);break;case 132:Pl(132);break;case 136:Pl(136);break;case 137:Pl(137);break;case 138:Pl(138);break;case 139:Pl(139);break;case 148:Pl(148);break;case 150:Pl(150);break;case 152:Pl(152);break;case 153:Pl(153);break;case 155:Pl(155);break;case 161:Pl(161);break;case 162:Pl(162);break;case 164:Pl(164);break;case 165:Pl(165);break;case 166:Pl(166);break;case 173:Pl(173);break;case 175:Pl(175);break;case 177:Pl(177);break;case 181:Pl(181);break;case 183:Pl(183);break;case 184:Pl(184);break;case 185:Pl(185);break;case 187:Pl(187);break;case 189:Pl(189);break;case 202:Pl(202);break;case 204:Pl(204);break;case 205:Pl(205);break;case 206:Pl(206);break;case 210:Pl(210);break;case 216:Pl(216);break;case 217:Pl(217);break;case 222:Pl(222);break;case 223:Pl(223);break;case 224:Pl(224);break;case 228:Pl(228);break;case 234:Pl(234);break;case 240:Pl(240);break;case 241:Pl(241);break;case 242:Pl(242);break;case 253:Pl(253);break;case 254:Pl(254);break;case 256:Pl(256);break;case 260:Pl(260);break;case 262:Pl(262);break;case 266:Pl(266);break;case 272:Pl(272);break;case 276:Pl(276);break;case 170:Pl(170);break;case 73:Pl(73);break;case 82:Pl(82);break;case 84:Pl(84);break;case 86:Pl(86);break;case 87:Pl(87);break;case 92:Pl(92);break;case 99:Pl(99);break;case 102:Pl(102);break;case 103:Pl(103);break;case 105:Pl(105);break;case 107:Pl(107);break;case 126:Pl(126);break;case 133:Pl(133);break;case 134:Pl(134);break;case 143:Pl(143);break;case 156:Pl(156);break;case 157:Pl(157);break;case 163:Pl(163);break;case 174:Pl(174);break;case 195:Pl(195);break;case 203:Pl(203);break;case 207:Pl(207);break;case 226:Pl(226);break;case 229:Pl(229);break;case 232:Pl(232);break;case 239:Pl(239);break;case 245:Pl(245);break;case 257:Pl(257);break;case 258:Pl(258);break;case 263:Pl(263);break;case 267:Pl(267);break;case 268:Pl(268);break;case 269:Pl(269);break;case 273:Pl(273);break;case 98:Pl(98);break;case 179:Pl(179);break;case 225:Pl(225);break;case 78:Pl(78);break;case 135:Pl(135);break;case 142:Pl(142);break;case 197:Pl(197);break;case 168:Pl(168);break;case 198:Pl(198);break;case 233:Pl(233);break;default:Pl(255)}ic.endNonterminal(\"FunctionName\",Vl)}function Qa(){switch($l){case 6:Hl(6);break;case 71:Hl(71);break;case 74:Hl(74);break;case 75:Hl(75);break;case 76:Hl(76);break;case 80:Hl(80);break;case 81:Hl(81);break;case 85:Hl(85);break;case 89:Hl(89);break;case 90:Hl(90);break;case 91:Hl(91);break;case 94:Hl(94);break;case 95:Hl(95);break;case 104:Hl(104);break;case 106:Hl(106);break;case 109:Hl(109);break;case 110:Hl(110);break;case 111:Hl(111);break;case 112:Hl(112);break;case 113:Hl(113);break;case 114:Hl(114);break;case 119:Hl(119);break;case 120:Hl(120);break;case 123:Hl(123);break;case 124:Hl(124);break;case 127:Hl(127);break;case 129:Hl(129);break;case 130:Hl(130);break;case 132:Hl(132);break;case 136:Hl(136);break;case 137:Hl(137);break;case 138:Hl(138);break;case 139:Hl(139);break;case 148:Hl(148);break;case 150:Hl(150);break;case 152:Hl(152);break;case 153:Hl(153);break;case 155:Hl(155);break;case 161:Hl(161);break;case 162:Hl(162);break;case 164:Hl(164);break;case 165:Hl(165);break;case 166:Hl(166);break;case 173:Hl(173);break;case 175:Hl(175);break;case 177:Hl(177);break;case 181:Hl(181);break;case 183:Hl(183);break;case 184:Hl(184);break;case 185:Hl(185);break;case 187:Hl(187);break;case 189:Hl(189);break;case 202:Hl(202);break;case 204:Hl(204);break;case 205:Hl(205);break;case 206:Hl(206);break;case 210:Hl(210);break;case 216:Hl(216);break;case 217:Hl(217);break;case 222:Hl(222);break;case 223:Hl(223);break;case 224:Hl(224);break;case 228:Hl(228);break;case 234:Hl(234);break;case 240:Hl(240);break;case 241:Hl(241);break;case 242:Hl(242);break;case 253:Hl(253);break;case 254:Hl(254);break;case 256:Hl(256);break;case 260:Hl(260);break;case 262:Hl(262);break;case 266:Hl(266);break;case 272:Hl(272);break;case 276:Hl(276);break;case 170:Hl(170);break;case 73:Hl(73);break;case 82:Hl(82);break;case 84:Hl(84);break;case 86:Hl(86);break;case 87:Hl(87);break;case 92:Hl(92);break;case 99:Hl(99);break;case 102:Hl(102);break;case 103:Hl(103);break;case 105:Hl(105);break;case 107:Hl(107);break;case 126:Hl(126);break;case 133:Hl(133);break;case 134:Hl(134);break;case 143:Hl(143);break;case 156:Hl(156);break;case 157:Hl(157);break;case 163:Hl(163);break;case 174:Hl(174);break;case 195:Hl(195);break;case 203:Hl(203);break;case 207:Hl(207);break;case 226:Hl(226);break;case 229:Hl(229);break;case 232:Hl(232);break;case 239:Hl(239);break;case 245:Hl(245);break;case 257:Hl(257);break;case 258:Hl(258);break;case 263:Hl(263);break;case 267:Hl(267);break;case 268:Hl(268);break;case 269:Hl(269);break;case 273:Hl(273);break;case 98:Hl(98);break;case 179:Hl(179);break;case 225:Hl(225);break;case 78:Hl(78);break;case 135:Hl(135);break;case 142:Hl(142);break;case 197:Hl(197);break;case 168:Hl(168);break;case 198:Hl(198);break;case 233:Hl(233);break;default:Hl(255)}}function Ga(){ic.startNonterminal(\"NCName\",Vl);switch($l){case 19:Pl(19);break;case 71:Pl(71);break;case 76:Pl(76);break;case 80:Pl(80);break;case 81:Pl(81);break;case 85:Pl(85);break;case 89:Pl(89);break;case 90:Pl(90);break;case 91:Pl(91);break;case 95:Pl(95);break;case 106:Pl(106);break;case 110:Pl(110);break;case 114:Pl(114);break;case 119:Pl(119);break;case 123:Pl(123);break;case 124:Pl(124);break;case 127:Pl(127);break;case 129:Pl(129);break;case 132:Pl(132);break;case 139:Pl(139);break;case 148:Pl(148);break;case 150:Pl(150);break;case 152:Pl(152);break;case 153:Pl(153);break;case 162:Pl(162);break;case 164:Pl(164);break;case 165:Pl(165);break;case 166:Pl(166);break;case 175:Pl(175);break;case 177:Pl(177);break;case 181:Pl(181);break;case 183:Pl(183);break;case 184:Pl(184);break;case 189:Pl(189);break;case 202:Pl(202);break;case 204:Pl(204);break;case 205:Pl(205);break;case 224:Pl(224);break;case 228:Pl(228);break;case 241:Pl(241);break;case 242:Pl(242);break;case 253:Pl(253);break;case 254:Pl(254);break;case 260:Pl(260);break;case 272:Pl(272);break;case 276:Pl(276);break;case 74:Pl(74);break;case 75:Pl(75);break;case 83:Pl(83);break;case 94:Pl(94);break;case 97:Pl(97);break;case 104:Pl(104);break;case 109:Pl(109);break;case 111:Pl(111);break;case 112:Pl(112);break;case 113:Pl(113);break;case 120:Pl(120);break;case 121:Pl(121);break;case 122:Pl(122);break;case 125:Pl(125);break;case 130:Pl(130);break;case 136:Pl(136);break;case 137:Pl(137);break;case 138:Pl(138);break;case 147:Pl(147);break;case 154:Pl(154);break;case 155:Pl(155);break;case 161:Pl(161);break;case 167:Pl(167);break;case 173:Pl(173);break;case 185:Pl(185);break;case 187:Pl(187);break;case 188:Pl(188);break;case 194:Pl(194);break;case 206:Pl(206);break;case 210:Pl(210);break;case 216:Pl(216);break;case 217:Pl(217);break;case 220:Pl(220);break;case 222:Pl(222);break;case 223:Pl(223);break;case 230:Pl(230);break;case 231:Pl(231);break;case 234:Pl(234);break;case 240:Pl(240);break;case 248:Pl(248);break;case 249:Pl(249);break;case 256:Pl(256);break;case 259:Pl(259);break;case 262:Pl(262);break;case 266:Pl(266);break;case 268:Pl(268);break;case 170:Pl(170);break;case 73:Pl(73);break;case 82:Pl(82);break;case 84:Pl(84);break;case 86:Pl(86);break;case 87:Pl(87);break;case 92:Pl(92);break;case 99:Pl(99);break;case 102:Pl(102);break;case 103:Pl(103);break;case 105:Pl(105);break;case 107:Pl(107);break;case 126:Pl(126);break;case 133:Pl(133);break;case 134:Pl(134);break;case 143:Pl(143);break;case 156:Pl(156);break;case 157:Pl(157);break;case 163:Pl(163);break;case 174:Pl(174);break;case 195:Pl(195);break;case 203:Pl(203);break;case 207:Pl(207);break;case 226:Pl(226);break;case 229:Pl(229);break;case 232:Pl(232);break;case 239:Pl(239);break;case 245:Pl(245);break;case 257:Pl(257);break;case 258:Pl(258);break;case 263:Pl(263);break;case 267:Pl(267);break;case 269:Pl(269);break;case 273:Pl(273);break;case 98:Pl(98);break;case 179:Pl(179);break;case 225:Pl(225);break;case 78:Pl(78);break;case 135:Pl(135);break;case 142:Pl(142);break;case 197:Pl(197);break;case 168:Pl(168);break;case 198:Pl(198);break;case 233:Pl(233);break;default:Pl(255)}ic.endNonterminal(\"NCName\",Vl)}function Ya(){switch($l){case 19:Hl(19);break;case 71:Hl(71);break;case 76:Hl(76);break;case 80:Hl(80);break;case 81:Hl(81);break;case 85:Hl(85);break;case 89:Hl(89);break;case 90:Hl(90);break;case 91:Hl(91);break;case 95:Hl(95);break;case 106:Hl(106);break;case 110:Hl(110);break;case 114:Hl(114);break;case 119:Hl(119);break;case 123:Hl(123);break;case 124:Hl(124);break;case 127:Hl(127);break;case 129:Hl(129);break;case 132:Hl(132);break;case 139:Hl(139);break;case 148:Hl(148);break;case 150:Hl(150);break;case 152:Hl(152);break;case 153:Hl(153);break;case 162:Hl(162);break;case 164:Hl(164);break;case 165:Hl(165);break;case 166:Hl(166);break;case 175:Hl(175);break;case 177:Hl(177);break;case 181:Hl(181);break;case 183:Hl(183);break;case 184:Hl(184);break;case 189:Hl(189);break;case 202:Hl(202);break;case 204:Hl(204);break;case 205:Hl(205);break;case 224:Hl(224);break;case 228:Hl(228);break;case 241:Hl(241);break;case 242:Hl(242);break;case 253:Hl(253);break;case 254:Hl(254);break;case 260:Hl(260);break;case 272:Hl(272);break;case 276:Hl(276);break;case 74:Hl(74);break;case 75:Hl(75);break;case 83:Hl(83);break;case 94:Hl(94);break;case 97:Hl(97);break;case 104:Hl(104);break;case 109:Hl(109);break;case 111:Hl(111);break;case 112:Hl(112);break;case 113:Hl(113);break;case 120:Hl(120);break;case 121:Hl(121);break;case 122:Hl(122);break;case 125:Hl(125);break;case 130:Hl(130);break;case 136:Hl(136);break;case 137:Hl(137);break;case 138:Hl(138);break;case 147:Hl(147);break;case 154:Hl(154);break;case 155:Hl(155);break;case 161:Hl(161);break;case 167:Hl(167);break;case 173:Hl(173);break;case 185:Hl(185);break;case 187:Hl(187);break;case 188:Hl(188);break;case 194:Hl(194);break;case 206:Hl(206);break;case 210:Hl(210);break;case 216:Hl(216);break;case 217:Hl(217);break;case 220:Hl(220);break;case 222:Hl(222);break;case 223:Hl(223);break;case 230:Hl(230);break;case 231:Hl(231);break;case 234:Hl(234);break;case 240:Hl(240);break;case 248:Hl(248);break;case 249:Hl(249);break;case 256:Hl(256);break;case 259:Hl(259);break;case 262:Hl(262);break;case 266:Hl(266);break;case 268:Hl(268);break;case 170:Hl(170);break;case 73:Hl(73);break;case 82:Hl(82);break;case 84:Hl(84);break;case 86:Hl(86);break;case 87:Hl(87);break;case 92:Hl(92);break;case 99:Hl(99);break;case 102:Hl(102);break;case 103:Hl(103);break;case 105:Hl(105);break;case 107:Hl(107);break;case 126:Hl(126);break;case 133:Hl(133);break;case 134:Hl(134);break;case 143:Hl(143);break;case 156:Hl(156);break;case 157:Hl(157);break;case 163:Hl(163);break;case 174:Hl(174);break;case 195:Hl(195);break;case 203:Hl(203);break;case 207:Hl(207);break;case 226:Hl(226);break;case 229:Hl(229);break;case 232:Hl(232);break;case 239:Hl(239);break;case 245:Hl(245);break;case 257:Hl(257);break;case 258:Hl(258);break;case 263:Hl(263);break;case 267:Hl(267);break;case 269:Hl(269);break;case 273:Hl(273);break;case 98:Hl(98);break;case 179:Hl(179);break;case 225:Hl(225);break;case 78:Hl(78);break;case 135:Hl(135);break;case 142:Hl(142);break;case 197:Hl(197);break;case 168:Hl(168);break;case 198:Hl(198);break;case 233:Hl(233);break;default:Hl(255)}}function Za(){ic.startNonterminal(\"MainModule\",Vl),l(),jl(),ef(),ic.endNonterminal(\"MainModule\",Vl)}function ef(){ic.startNonterminal(\"Program\",Vl),of(),ic.endNonterminal(\"Program\",Vl)}function tf(){ic.startNonterminal(\"Statements\",Vl);for(;;){Il(284);switch($l){case 35:ql(270);break;case 36:Ul(243);break;case 47:ql(286);break;case 48:ql(260);break;case 55:Ul(4);break;case 56:Ul(1);break;case 60:Ul(3);break;case 69:ql(273);break;case 78:ql(269);break;case 133:ql(147);break;case 139:ql(179);break;case 161:ql(276);break;case 177:ql(166);break;case 187:ql(247);break;case 220:ql(245);break;case 223:ql(170);break;case 266:ql(188);break;case 281:ql(283);break;case 283:ql(274);break;case 31:case 33:ql(246);break;case 83:case 122:ql(253);break;case 87:case 103:ql(145);break;case 97:case 249:ql(97);break;case 111:case 222:ql(261);break;case 41:case 43:case 196:ql(266);break;case 135:case 197:case 255:ql(211);break;case 104:case 130:case 240:case 268:ql(143);break;case 120:case 206:case 256:case 262:ql(148);break;case 8:case 9:case 10:case 11:case 32:ql(210);break;case 79:case 121:case 125:case 167:case 169:case 188:case 194:case 230:case 231:case 247:ql(20);break;case 6:case 71:case 73:case 74:case 75:case 76:case 80:case 81:case 82:case 84:case 85:case 86:case 89:case 90:case 91:case 92:case 94:case 95:case 98:case 99:case 102:case 105:case 106:case 107:case 109:case 110:case 112:case 113:case 114:case 119:case 123:case 124:case 126:case 127:case 129:case 132:case 134:case 136:case 137:case 138:case 142:case 143:case 147:case 148:case 150:case 152:case 153:case 154:case 155:case 156:case 157:case 162:case 163:case 164:case 165:case 166:case 168:case 170:case 173:case 174:case 175:case 179:case 181:case 183:case 184:case 185:case 189:case 195:case 198:case 202:case 203:case 204:case 205:case 207:case 210:case 216:case 217:case 224:case 225:case 226:case 228:case 229:case 232:case 233:case 234:case 239:case 241:case 242:case 245:case 248:case 253:case 254:case 257:case 258:case 259:case 260:case 263:case 267:case 269:case 272:case 273:case 276:ql(95);break;default:Wl=$l}if(Wl!=25&&Wl!=54&&Wl!=287&&Wl!=12808&&Wl!=12809&&Wl!=12810&&Wl!=12811&&Wl!=12832&&Wl!=12847&&Wl!=12935&&Wl!=12997&&Wl!=13055&&Wl!=16140&&Wl!=21512&&Wl!=21513&&Wl!=21514&&Wl!=21515&&Wl!=21536&&Wl!=21551&&Wl!=21639&&Wl!=21701&&Wl!=21759&&Wl!=27656&&Wl!=27657&&Wl!=27658&&Wl!=27659&&Wl!=27680&&Wl!=27695&&Wl!=27783&&Wl!=27845&&Wl!=27903&&Wl!=91735&&Wl!=91751&&Wl!=115333&&Wl!=146952&&Wl!=146953&&Wl!=146954&&Wl!=146955&&Wl!=146976&&Wl!=146991&&Wl!=147079&&Wl!=147141&&Wl!=147199){Wl=uc(8,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{ff(),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(8,Vl,Wl)}}if(Wl!=-1&&Wl!=54&&Wl!=16140&&Wl!=27656&&Wl!=27657&&Wl!=27658&&Wl!=27659&&Wl!=27680&&Wl!=27695&&Wl!=27783&&Wl!=27845&&Wl!=27903&&Wl!=91735&&Wl!=91751&&Wl!=115333)break;jl(),af()}ic.endNonterminal(\"Statements\",Vl)}function nf(){for(;;){Il(284);switch($l){case 35:ql(270);break;case 36:Ul(243);break;case 47:ql(286);break;case 48:ql(260);break;case 55:Ul(4);break;case 56:Ul(1);break;case 60:Ul(3);break;case 69:ql(273);break;case 78:ql(269);break;case 133:ql(147);break;case 139:ql(179);break;case 161:ql(276);break;case 177:ql(166);break;case 187:ql(247);break;case 220:ql(245);break;case 223:ql(170);break;case 266:ql(188);break;case 281:ql(283);break;case 283:ql(274);break;case 31:case 33:ql(246);break;case 83:case 122:ql(253);break;case 87:case 103:ql(145);break;case 97:case 249:ql(97);break;case 111:case 222:ql(261);break;case 41:case 43:case 196:ql(266);break;case 135:case 197:case 255:ql(211);break;case 104:case 130:case 240:case 268:ql(143);break;case 120:case 206:case 256:case 262:ql(148);break;case 8:case 9:case 10:case 11:case 32:ql(210);break;case 79:case 121:case 125:case 167:case 169:case 188:case 194:case 230:case 231:case 247:ql(20);break;case 6:case 71:case 73:case 74:case 75:case 76:case 80:case 81:case 82:case 84:case 85:case 86:case 89:case 90:case 91:case 92:case 94:case 95:case 98:case 99:case 102:case 105:case 106:case 107:case 109:case 110:case 112:case 113:case 114:case 119:case 123:case 124:case 126:case 127:case 129:case 132:case 134:case 136:case 137:case 138:case 142:case 143:case 147:case 148:case 150:case 152:case 153:case 154:case 155:case 156:case 157:case 162:case 163:case 164:case 165:case 166:case 168:case 170:case 173:case 174:case 175:case 179:case 181:case 183:case 184:case 185:case 189:case 195:case 198:case 202:case 203:case 204:case 205:case 207:case 210:case 216:case 217:case 224:case 225:case 226:case 228:case 229:case 232:case 233:case 234:case 239:case 241:case 242:case 245:case 248:case 253:case 254:case 257:case 258:case 259:case 260:case 263:case 267:case 269:case 272:case 273:case 276:ql(95);break;default:Wl=$l}if(Wl!=25&&Wl!=54&&Wl!=287&&Wl!=12808&&Wl!=12809&&Wl!=12810&&Wl!=12811&&Wl!=12832&&Wl!=12847&&Wl!=12935&&Wl!=12997&&Wl!=13055&&Wl!=16140&&Wl!=21512&&Wl!=21513&&Wl!=21514&&Wl!=21515&&Wl!=21536&&Wl!=21551&&Wl!=21639&&Wl!=21701&&Wl!=21759&&Wl!=27656&&Wl!=27657&&Wl!=27658&&Wl!=27659&&Wl!=27680&&Wl!=27695&&Wl!=27783&&Wl!=27845&&Wl!=27903&&Wl!=91735&&Wl!=91751&&Wl!=115333&&Wl!=146952&&Wl!=146953&&Wl!=146954&&Wl!=146955&&Wl!=146976&&Wl!=146991&&Wl!=147079&&Wl!=147141&&Wl!=147199){Wl=uc(8,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{ff(),oc(8,t,-1);continue}catch(a){Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(8,t,-2);break}}}if(Wl!=-1&&Wl!=54&&Wl!=16140&&Wl!=27656&&Wl!=27657&&Wl!=27658&&Wl!=27659&&Wl!=27680&&Wl!=27695&&Wl!=27783&&Wl!=27845&&Wl!=27903&&Wl!=91735&&Wl!=91751&&Wl!=115333)break;ff()}}function rf(){ic.startNonterminal(\"StatementsAndExpr\",Vl),tf(),jl(),G(),ic.endNonterminal(\"StatementsAndExpr\",Vl)}function sf(){nf(),Y()}function of(){ic.startNonterminal(\"StatementsAndOptionalExpr\",Vl),tf(),$l!=25&&$l!=287&&(jl(),G()),ic.endNonterminal(\"StatementsAndOptionalExpr\",Vl)}function uf(){nf(),$l!=25&&$l!=287&&Y()}function af(){ic.startNonterminal(\"Statement\",Vl);switch($l){case 133:ql(147);break;case 139:ql(179);break;case 177:ql(166);break;case 256:ql(148);break;case 268:ql(143);break;case 281:ql(283);break;case 31:case 33:ql(246);break;case 87:case 103:ql(145);break;case 154:case 248:case 259:case 273:ql(95);break;default:Wl=$l}if(Wl!=6&&Wl!=8&&Wl!=9&&Wl!=10&&Wl!=11&&Wl!=32&&Wl!=35&&Wl!=36&&Wl!=41&&Wl!=43&&Wl!=47&&Wl!=48&&Wl!=54&&Wl!=55&&Wl!=56&&Wl!=60&&Wl!=69&&Wl!=71&&Wl!=73&&Wl!=74&&Wl!=75&&Wl!=76&&Wl!=78&&Wl!=79&&Wl!=80&&Wl!=81&&Wl!=82&&Wl!=83&&Wl!=84&&Wl!=85&&Wl!=86&&Wl!=89&&Wl!=90&&Wl!=91&&Wl!=92&&Wl!=94&&Wl!=95&&Wl!=97&&Wl!=98&&Wl!=99&&Wl!=102&&Wl!=104&&Wl!=105&&Wl!=106&&Wl!=107&&Wl!=109&&Wl!=110&&Wl!=111&&Wl!=112&&Wl!=113&&Wl!=114&&Wl!=119&&Wl!=120&&Wl!=121&&Wl!=122&&Wl!=123&&Wl!=124&&Wl!=125&&Wl!=126&&Wl!=127&&Wl!=129&&Wl!=130&&Wl!=132&&Wl!=134&&Wl!=135&&Wl!=136&&Wl!=137&&Wl!=138&&Wl!=142&&Wl!=143&&Wl!=147&&Wl!=148&&Wl!=150&&Wl!=152&&Wl!=153&&Wl!=155&&Wl!=156&&Wl!=157&&Wl!=161&&Wl!=162&&Wl!=163&&Wl!=164&&Wl!=165&&Wl!=166&&Wl!=167&&Wl!=168&&Wl!=169&&Wl!=170&&Wl!=173&&Wl!=174&&Wl!=175&&Wl!=179&&Wl!=181&&Wl!=183&&Wl!=184&&Wl!=185&&Wl!=187&&Wl!=188&&Wl!=189&&Wl!=194&&Wl!=195&&Wl!=196&&Wl!=197&&Wl!=198&&Wl!=202&&Wl!=203&&Wl!=204&&Wl!=205&&Wl!=206&&Wl!=207&&Wl!=210&&Wl!=216&&Wl!=217&&Wl!=220&&Wl!=222&&Wl!=223&&Wl!=224&&Wl!=225&&Wl!=226&&Wl!=228&&Wl!=229&&Wl!=230&&Wl!=231&&Wl!=232&&Wl!=233&&Wl!=234&&Wl!=239&&Wl!=240&&Wl!=241&&Wl!=242&&Wl!=245&&Wl!=247&&Wl!=249&&Wl!=253&&Wl!=254&&Wl!=255&&Wl!=257&&Wl!=258&&Wl!=260&&Wl!=262&&Wl!=263&&Wl!=266&&Wl!=267&&Wl!=269&&Wl!=272&&Wl!=276&&Wl!=283&&Wl!=10009&&Wl!=14935&&Wl!=14951&&Wl!=14981&&Wl!=14987&&Wl!=15002&&Wl!=15025&&Wl!=15096&&Wl!=15104&&Wl!=15107&&Wl!=15116&&Wl!=15121&&Wl!=16011&&Wl!=16049&&Wl!=16140&&Wl!=18007&&Wl!=18023&&Wl!=18053&&Wl!=18059&&Wl!=18074&&Wl!=18097&&Wl!=18168&&Wl!=18176&&Wl!=18179&&Wl!=18188&&Wl!=91735&&Wl!=91751&&Wl!=115333&&Wl!=118961&&Wl!=122507&&Wl!=131723&&Wl!=144128&&Wl!=147225){Wl=uc(9,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{cf(),Wl=-1}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),pf(),Wl=-2}catch(f){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),vf(),Wl=-3}catch(l){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),If(),Wl=-12}catch(c){Wl=-13}}}}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(9,Vl,Wl)}}switch(Wl){case-2:hf();break;case-3:df();break;case 91735:mf();break;case 91751:yf();break;case 115333:wf();break;case 16011:case 16049:case 118961:case 122507:case 131723:Sf();break;case 18074:Cf();break;case 18168:Lf();break;case 144128:_f();break;case 18179:Pf();break;case-12:case 16140:Ff();break;case-13:qf();break;case 54:Uf();break;default:lf()}ic.endNonterminal(\"Statement\",Vl)}function ff(){switch($l){case 133:ql(147);break;case 139:ql(179);break;case 177:ql(166);break;case 256:ql(148);break;case 268:ql(143);break;case 281:ql(283);break;case 31:case 33:ql(246);break;case 87:case 103:ql(145);break;case 154:case 248:case 259:case 273:ql(95);break;default:Wl=$l}if(Wl!=6&&Wl!=8&&Wl!=9&&Wl!=10&&Wl!=11&&Wl!=32&&Wl!=35&&Wl!=36&&Wl!=41&&Wl!=43&&Wl!=47&&Wl!=48&&Wl!=54&&Wl!=55&&Wl!=56&&Wl!=60&&Wl!=69&&Wl!=71&&Wl!=73&&Wl!=74&&Wl!=75&&Wl!=76&&Wl!=78&&Wl!=79&&Wl!=80&&Wl!=81&&Wl!=82&&Wl!=83&&Wl!=84&&Wl!=85&&Wl!=86&&Wl!=89&&Wl!=90&&Wl!=91&&Wl!=92&&Wl!=94&&Wl!=95&&Wl!=97&&Wl!=98&&Wl!=99&&Wl!=102&&Wl!=104&&Wl!=105&&Wl!=106&&Wl!=107&&Wl!=109&&Wl!=110&&Wl!=111&&Wl!=112&&Wl!=113&&Wl!=114&&Wl!=119&&Wl!=120&&Wl!=121&&Wl!=122&&Wl!=123&&Wl!=124&&Wl!=125&&Wl!=126&&Wl!=127&&Wl!=129&&Wl!=130&&Wl!=132&&Wl!=134&&Wl!=135&&Wl!=136&&Wl!=137&&Wl!=138&&Wl!=142&&Wl!=143&&Wl!=147&&Wl!=148&&Wl!=150&&Wl!=152&&Wl!=153&&Wl!=155&&Wl!=156&&Wl!=157&&Wl!=161&&Wl!=162&&Wl!=163&&Wl!=164&&Wl!=165&&Wl!=166&&Wl!=167&&Wl!=168&&Wl!=169&&Wl!=170&&Wl!=173&&Wl!=174&&Wl!=175&&Wl!=179&&Wl!=181&&Wl!=183&&Wl!=184&&Wl!=185&&Wl!=187&&Wl!=188&&Wl!=189&&Wl!=194&&Wl!=195&&Wl!=196&&Wl!=197&&Wl!=198&&Wl!=202&&Wl!=203&&Wl!=204&&Wl!=205&&Wl!=206&&Wl!=207&&Wl!=210&&Wl!=216&&Wl!=217&&Wl!=220&&Wl!=222&&Wl!=223&&Wl!=224&&Wl!=225&&Wl!=226&&Wl!=228&&Wl!=229&&Wl!=230&&Wl!=231&&Wl!=232&&Wl!=233&&Wl!=234&&Wl!=239&&Wl!=240&&Wl!=241&&Wl!=242&&Wl!=245&&Wl!=247&&Wl!=249&&Wl!=253&&Wl!=254&&Wl!=255&&Wl!=257&&Wl!=258&&Wl!=260&&Wl!=262&&Wl!=263&&Wl!=266&&Wl!=267&&Wl!=269&&Wl!=272&&Wl!=276&&Wl!=283&&Wl!=10009&&Wl!=14935&&Wl!=14951&&Wl!=14981&&Wl!=14987&&Wl!=15002&&Wl!=15025&&Wl!=15096&&Wl!=15104&&Wl!=15107&&Wl!=15116&&Wl!=15121&&Wl!=16011&&Wl!=16049&&Wl!=16140&&Wl!=18007&&Wl!=18023&&Wl!=18053&&Wl!=18059&&Wl!=18074&&Wl!=18097&&Wl!=18168&&Wl!=18176&&Wl!=18179&&Wl!=18188&&Wl!=91735&&Wl!=91751&&Wl!=115333&&Wl!=118961&&Wl!=122507&&Wl!=131723&&Wl!=144128&&Wl!=147225){Wl=uc(9,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{cf(),oc(9,t,-1),Wl=-15}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),pf(),oc(9,t,-2),Wl=-15}catch(f){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),vf(),oc(9,t,-3),Wl=-15}catch(l){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),If(),oc(9,t,-12),Wl=-15}catch(c){Wl=-13,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(9,t,-13)}}}}}}switch(Wl){case-2:pf();break;case-3:vf();break;case 91735:gf();break;case 91751:bf();break;case 115333:Ef();break;case 16011:case 16049:case 118961:case 122507:case 131723:xf();break;case 18074:kf();break;case 18168:Af();break;case 144128:Df();break;case 18179:Hf();break;case-12:case 16140:If();break;case-13:Rf();break;case 54:zf();break;case-15:break;default:cf()}}function lf(){ic.startNonterminal(\"ApplyStatement\",Vl),Vf(),Pl(54),ic.endNonterminal(\"ApplyStatement\",Vl)}function cf(){$f(),Hl(54)}function hf(){ic.startNonterminal(\"AssignStatement\",Vl),Pl(31),Il(246),jl(),Ti(),Il(28),Pl(53),Il(267),jl(),Wf(),Pl(54),ic.endNonterminal(\"AssignStatement\",Vl)}function pf(){Hl(31),Il(246),Ni(),Il(28),Hl(53),Il(267),Xf(),Hl(54)}function df(){ic.startNonterminal(\"BlockStatement\",Vl),Pl(281),Il(271),jl(),af(),Il(281),jl(),tf(),Pl(287),ic.endNonterminal(\"BlockStatement\",Vl)}function vf(){Hl(281),Il(271),ff(),Il(281),nf(),Hl(287)}function mf(){ic.startNonterminal(\"BreakStatement\",Vl),Pl(87),Il(62),Pl(179),Il(29),Pl(54),ic.endNonterminal(\"BreakStatement\",Vl)}function gf(){Hl(87),Il(62),Hl(179),Il(29),Hl(54)}function yf(){ic.startNonterminal(\"ContinueStatement\",Vl),Pl(103),Il(62),Pl(179),Il(29),Pl(54),ic.endNonterminal(\"ContinueStatement\",Vl)}function bf(){Hl(103),Il(62),Hl(179),Il(29),Hl(54)}function wf(){ic.startNonterminal(\"ExitStatement\",Vl),Pl(133),Il(74),Pl(225),Il(267),jl(),Wf(),Pl(54),ic.endNonterminal(\"ExitStatement\",Vl)}function Ef(){Hl(133),Il(74),Hl(225),Il(267),Xf(),Hl(54)}function Sf(){ic.startNonterminal(\"FLWORStatement\",Vl),tt();for(;;){Il(195);if($l==224)break;jl(),rt()}jl(),Tf(),ic.endNonterminal(\"FLWORStatement\",Vl)}function xf(){nt();for(;;){Il(195);if($l==224)break;it()}Nf()}function Tf(){ic.startNonterminal(\"ReturnStatement\",Vl),Pl(224),Il(271),jl(),af(),ic.endNonterminal(\"ReturnStatement\",Vl)}function Nf(){Hl(224),Il(271),ff()}function Cf(){ic.startNonterminal(\"IfStatement\",Vl),Pl(154),Il(22),Pl(35),Il(267),jl(),G(),Pl(38),Il(80),Pl(250),Il(271),jl(),af(),Il(51),Pl(123),Il(271),jl(),af(),ic.endNonterminal(\"IfStatement\",Vl)}function kf(){Hl(154),Il(22),Hl(35),Il(267),Y(),Hl(38),Il(80),Hl(250),Il(271),ff(),Il(51),Hl(123),Il(271),ff()}function Lf(){ic.startNonterminal(\"SwitchStatement\",Vl),Pl(248),Il(22),Pl(35),Il(267),jl(),G(),Pl(38);for(;;){Il(38),jl(),Of(),Il(117);if($l!=89)break}Pl(110),Il(73),Pl(224),Il(271),jl(),af(),ic.endNonterminal(\"SwitchStatement\",Vl)}function Af(){Hl(248),Il(22),Hl(35),Il(267),Y(),Hl(38);for(;;){Il(38),Mf(),Il(117);if($l!=89)break}Hl(110),Il(73),Hl(224),Il(271),ff()}function Of(){ic.startNonterminal(\"SwitchCaseStatement\",Vl);for(;;){Pl(89),Il(267),jl(),dn();if($l!=89)break}Pl(224),Il(271),jl(),af(),ic.endNonterminal(\"SwitchCaseStatement\",Vl)}function Mf(){for(;;){Hl(89),Il(267),vn();if($l!=89)break}Hl(224),Il(271),ff()}function _f(){ic.startNonterminal(\"TryCatchStatement\",Vl),Pl(256),Il(90),jl(),df();for(;;){Il(39),Pl(92),Il(249),jl(),_n(),jl(),df(),Il(284);switch($l){case 92:ql(256);break;default:Wl=$l}if(Wl!=2652&&Wl!=3164&&Wl!=36444&&Wl!=37468&&Wl!=37980&&Wl!=38492&&Wl!=39004&&Wl!=40028&&Wl!=40540&&Wl!=41052&&Wl!=41564&&Wl!=42076&&Wl!=42588&&Wl!=43100&&Wl!=43612&&Wl!=44124&&Wl!=44636&&Wl!=45660&&Wl!=46172&&Wl!=46684&&Wl!=47196&&Wl!=48220&&Wl!=48732&&Wl!=49756&&Wl!=50268&&Wl!=50780&&Wl!=52316&&Wl!=52828&&Wl!=53340&&Wl!=53852&&Wl!=54364&&Wl!=54876&&Wl!=55900&&Wl!=56412&&Wl!=56924&&Wl!=57436&&Wl!=57948&&Wl!=58460&&Wl!=61020&&Wl!=61532&&Wl!=62044&&Wl!=62556&&Wl!=63068&&Wl!=63580&&Wl!=64092&&Wl!=64604&&Wl!=65116&&Wl!=66140&&Wl!=66652&&Wl!=67676&&Wl!=68188&&Wl!=68700&&Wl!=69212&&Wl!=69724&&Wl!=70236&&Wl!=70748&&Wl!=71260&&Wl!=72796&&Wl!=73308&&Wl!=75356&&Wl!=75868&&Wl!=76892&&Wl!=77916&&Wl!=78428&&Wl!=78940&&Wl!=79452&&Wl!=79964&&Wl!=80476&&Wl!=82524&&Wl!=83036&&Wl!=83548&&Wl!=84060&&Wl!=84572&&Wl!=85084&&Wl!=85596&&Wl!=86108&&Wl!=86620&&Wl!=87132&&Wl!=88668&&Wl!=89180&&Wl!=89692&&Wl!=90716&&Wl!=91740&&Wl!=92764&&Wl!=93788&&Wl!=94300&&Wl!=94812&&Wl!=95836&&Wl!=96348&&Wl!=96860&&Wl!=99420&&Wl!=99932&&Wl!=100956&&Wl!=101468&&Wl!=103516&&Wl!=104028&&Wl!=104540&&Wl!=105052&&Wl!=105564&&Wl!=106076&&Wl!=107612&&Wl!=110684&&Wl!=111196&&Wl!=112732&&Wl!=113756&&Wl!=114268&&Wl!=114780&&Wl!=115292&&Wl!=115804&&Wl!=116828&&Wl!=117340&&Wl!=117852&&Wl!=118364&&Wl!=118876&&Wl!=119388&&Wl!=119900&&Wl!=122460&&Wl!=122972&&Wl!=123484&&Wl!=123996&&Wl!=125532&&Wl!=126556&&Wl!=127068&&Wl!=127580&&Wl!=129628&&Wl!=130140&&Wl!=130652&&Wl!=131164&&Wl!=131676&&Wl!=132188&&Wl!=132700&&Wl!=133212&&Wl!=134236&&Wl!=134748&&Wl!=136284&&Wl!=136796&&Wl!=137308&&Wl!=137820&&Wl!=139356&&Wl!=139868&&Wl!=141404)break}ic.endNonterminal(\"TryCatchStatement\",Vl)}function Df(){Hl(256),Il(90),vf();for(;;){Il(39),Hl(92),Il(249),Dn(),vf(),Il(284);switch($l){case 92:ql(256);break;default:Wl=$l}if(Wl!=2652&&Wl!=3164&&Wl!=36444&&Wl!=37468&&Wl!=37980&&Wl!=38492&&Wl!=39004&&Wl!=40028&&Wl!=40540&&Wl!=41052&&Wl!=41564&&Wl!=42076&&Wl!=42588&&Wl!=43100&&Wl!=43612&&Wl!=44124&&Wl!=44636&&Wl!=45660&&Wl!=46172&&Wl!=46684&&Wl!=47196&&Wl!=48220&&Wl!=48732&&Wl!=49756&&Wl!=50268&&Wl!=50780&&Wl!=52316&&Wl!=52828&&Wl!=53340&&Wl!=53852&&Wl!=54364&&Wl!=54876&&Wl!=55900&&Wl!=56412&&Wl!=56924&&Wl!=57436&&Wl!=57948&&Wl!=58460&&Wl!=61020&&Wl!=61532&&Wl!=62044&&Wl!=62556&&Wl!=63068&&Wl!=63580&&Wl!=64092&&Wl!=64604&&Wl!=65116&&Wl!=66140&&Wl!=66652&&Wl!=67676&&Wl!=68188&&Wl!=68700&&Wl!=69212&&Wl!=69724&&Wl!=70236&&Wl!=70748&&Wl!=71260&&Wl!=72796&&Wl!=73308&&Wl!=75356&&Wl!=75868&&Wl!=76892&&Wl!=77916&&Wl!=78428&&Wl!=78940&&Wl!=79452&&Wl!=79964&&Wl!=80476&&Wl!=82524&&Wl!=83036&&Wl!=83548&&Wl!=84060&&Wl!=84572&&Wl!=85084&&Wl!=85596&&Wl!=86108&&Wl!=86620&&Wl!=87132&&Wl!=88668&&Wl!=89180&&Wl!=89692&&Wl!=90716&&Wl!=91740&&Wl!=92764&&Wl!=93788&&Wl!=94300&&Wl!=94812&&Wl!=95836&&Wl!=96348&&Wl!=96860&&Wl!=99420&&Wl!=99932&&Wl!=100956&&Wl!=101468&&Wl!=103516&&Wl!=104028&&Wl!=104540&&Wl!=105052&&Wl!=105564&&Wl!=106076&&Wl!=107612&&Wl!=110684&&Wl!=111196&&Wl!=112732&&Wl!=113756&&Wl!=114268&&Wl!=114780&&Wl!=115292&&Wl!=115804&&Wl!=116828&&Wl!=117340&&Wl!=117852&&Wl!=118364&&Wl!=118876&&Wl!=119388&&Wl!=119900&&Wl!=122460&&Wl!=122972&&Wl!=123484&&Wl!=123996&&Wl!=125532&&Wl!=126556&&Wl!=127068&&Wl!=127580&&Wl!=129628&&Wl!=130140&&Wl!=130652&&Wl!=131164&&Wl!=131676&&Wl!=132188&&Wl!=132700&&Wl!=133212&&Wl!=134236&&Wl!=134748&&Wl!=136284&&Wl!=136796&&Wl!=137308&&Wl!=137820&&Wl!=139356&&Wl!=139868&&Wl!=141404)break}}function Pf(){ic.startNonterminal(\"TypeswitchStatement\",Vl),Pl(259),Il(22),Pl(35),Il(267),jl(),G(),Pl(38);for(;;){Il(38),jl(),Bf(),Il(117);if($l!=89)break}Pl(110),Il(99),$l==31&&(Pl(31),Il(246),jl(),Ti()),Il(73),Pl(224),Il(271),jl(),af(),ic.endNonterminal(\"TypeswitchStatement\",Vl)}function Hf(){Hl(259),Il(22),Hl(35),Il(267),Y(),Hl(38);for(;;){Il(38),jf(),Il(117);if($l!=89)break}Hl(110),Il(99),$l==31&&(Hl(31),Il(246),Ni()),Il(73),Hl(224),Il(271),ff()}function Bf(){ic.startNonterminal(\"CaseStatement\",Vl),Pl(89),Il(258),$l==31&&(Pl(31),Il(246),jl(),Ti(),Il(33),Pl(80)),Il(254),jl(),Ls(),Il(73),Pl(224),Il(271),jl(),af(),ic.endNonterminal(\"CaseStatement\",Vl)}function jf(){Hl(89),Il(258),$l==31&&(Hl(31),Il(246),Ni(),Il(33),Hl(80)),Il(254),As(),Il(73),Hl(224),Il(271),ff()}function Ff(){ic.startNonterminal(\"VarDeclStatement\",Vl);for(;;){Il(102);if($l!=33)break;jl(),B()}Pl(268),Il(21),Pl(31),Il(246),jl(),Ti(),Il(172),$l==80&&(jl(),Cs()),Il(155),$l==53&&(Pl(53),Il(267),jl(),Wf());for(;;){if($l!=42)break;Pl(42),Il(21),Pl(31),Il(246),jl(),Ti(),Il(172),$l==80&&(jl(),Cs()),Il(155),$l==53&&(Pl(53),Il(267),jl(),Wf())}Pl(54),ic.endNonterminal(\"VarDeclStatement\",Vl)}function If(){for(;;){Il(102);if($l!=33)break;j()}Hl(268),Il(21),Hl(31),Il(246),Ni(),Il(172),$l==80&&ks(),Il(155),$l==53&&(Hl(53),Il(267),Xf());for(;;){if($l!=42)break;Hl(42),Il(21),Hl(31),Il(246),Ni(),Il(172),$l==80&&ks(),Il(155),$l==53&&(Hl(53),Il(267),Xf())}Hl(54)}function qf(){ic.startNonterminal(\"WhileStatement\",Vl),Pl(273),Il(22),Pl(35),Il(267),jl(),G(),Pl(38),Il(271),jl(),af(),ic.endNonterminal(\"WhileStatement\",Vl)}function Rf(){Hl(273),Il(22),Hl(35),Il(267),Y(),Hl(38),Il(271),ff()}function Uf(){ic.startNonterminal(\"VoidStatement\",Vl),Pl(54),ic.endNonterminal(\"VoidStatement\",Vl)}function zf(){Hl(54)}function Wf(){ic.startNonterminal(\"ExprSingle\",Vl);switch($l){case 139:ql(179);break;case 177:ql(166);break;case 256:ql(148);break;case 154:case 248:case 259:ql(95);break;default:Wl=$l}switch(Wl){case 16011:case 16049:case 118961:case 122507:case 131723:Z();break;case 18074:Sn();break;case 18168:ln();break;case 144128:Tn();break;case 18179:mn();break;default:Vf()}ic.endNonterminal(\"ExprSingle\",Vl)}function Xf(){switch($l){case 139:ql(179);break;case 177:ql(166);break;case 256:ql(148);break;case 154:case 248:case 259:ql(95);break;default:Wl=$l}switch(Wl){case 16011:case 16049:case 118961:case 122507:case 131723:et();break;case 18074:xn();break;case 18168:cn();break;case 144128:Nn();break;case 18179:gn();break;default:$f()}}function Vf(){ic.startNonterminal(\"ExprSimple\",Vl);switch($l){case 78:ql(269);break;case 161:ql(276);break;case 223:ql(170);break;case 111:case 222:ql(261);break;case 104:case 130:case 240:ql(143);break;default:Wl=$l}if(Wl==17998||Wl==18031||Wl==18081||Wl==18142||Wl==99439||Wl==99489||Wl==99550||Wl==99951||Wl==100001||Wl==136927){Wl=uc(10,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hn(),Wl=-2}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),zo(),Wl=-3}catch(f){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Xo(),Wl=-4}catch(l){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Ko(),Wl=-5}catch(c){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),$o(),Wl=-6}catch(h){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Kf(),Wl=-8}catch(p){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Gf(),Wl=-9}catch(d){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Zf(),Wl=-10}catch(v){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),tl(),Wl=-11}catch(m){Wl=-12}}}}}}}}}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(10,Vl,Wl)}}switch(Wl){case 16002:case 16112:on();break;case-3:Uo();break;case-4:Wo();break;case-5:Jo();break;case-6:case 99551:Vo();break;case 15976:nu();break;case-8:case 3183:case 4207:case 4719:case 5231:case 5743:case 15983:case 16495:case 17007:case 28271:case 28783:case 30831:case 35439:case 36463:case 37487:case 37999:case 38511:case 39023:case 40047:case 40559:case 41071:case 41583:case 42095:case 42607:case 43119:case 43631:case 44143:case 44655:case 45679:case 46191:case 46703:case 47215:case 48239:case 48751:case 49775:case 50287:case 50799:case 52335:case 52847:case 53359:case 53871:case 54383:case 54895:case 55919:case 56431:case 56943:case 57455:case 57967:case 58479:case 61039:case 61551:case 62063:case 62575:case 63087:case 63599:case 64111:case 64623:case 65135:case 66159:case 66671:case 67695:case 68207:case 68719:case 69231:case 69743:case 70255:case 70767:case 71279:case 72815:case 73327:case 75375:case 75887:case 76911:case 77935:case 78447:case 78959:case 79471:case 79983:case 80495:case 82543:case 83055:case 83567:case 84079:case 84591:case 85103:case 85615:case 86127:case 86639:case 87151:case 88687:case 89199:case 89711:case 90735:case 91759:case 92783:case 93807:case 94319:case 94831:case 95855:case 96367:case 96879:case 100975:case 101487:case 103535:case 104047:case 104559:case 105071:case 105583:case 106095:case 107631:case 110703:case 111215:case 112751:case 113775:case 114287:case 114799:case 115311:case 115823:case 116847:case 117359:case 117871:case 118383:case 118895:case 119407:case 119919:case 122479:case 122991:case 123503:case 124015:case 125551:case 126575:case 127087:case 127599:case 129647:case 130159:case 130671:case 131183:case 131695:case 132207:case 132719:case 133231:case 134255:case 134767:case 136303:case 136815:case 137327:case 137839:case 139375:case 139887:case 141423:case 143983:case 145007:Jf();break;case-9:case 3233:case 4257:case 4769:case 5281:case 5793:case 9889:case 16033:case 16545:case 17057:case 18593:case 21153:case 22177:case 24225:case 24737:case 28321:case 28833:case 30881:case 35489:case 36513:case 37537:case 38049:case 38561:case 39073:case 40097:case 40609:case 41121:case 41633:case 42145:case 42657:case 43169:case 43681:case 44193:case 44705:case 45729:case 46241:case 46753:case 47265:case 48289:case 48801:case 49825:case 50337:case 50849:case 52385:case 52897:case 53409:case 53921:case 54433:case 54945:case 55969:case 56481:case 56993:case 57505:case 58017:case 58529:case 61089:case 61601:case 62113:case 62625:case 63137:case 63649:case 64161:case 64673:case 65185:case 66209:case 66721:case 67745:case 68257:case 68769:case 69281:case 69793:case 70305:case 70817:case 71329:case 72865:case 73377:case 75425:case 75937:case 76961:case 77985:case 78497:case 79009:case 79521:case 80033:case 80545:case 82593:case 83105:case 83617:case 84129:case 84641:case 85153:case 85665:case 86177:case 86689:case 87201:case 88737:case 89249:case 89761:case 90785:case 91809:case 92833:case 93857:case 94369:case 94881:case 95905:case 96417:case 96929:case 100513:case 101025:case 101537:case 103585:case 104097:case 104609:case 105121:case 105633:case 106145:case 107681:case 110753:case 111265:case 112801:case 113825:case 114337:case 114849:case 115361:case 115873:case 116897:case 117409:case 117921:case 118433:case 118945:case 119457:case 119969:case 122529:case 123041:case 123553:case 124065:case 125601:case 126625:case 127137:case 127649:case 129697:case 130209:case 130721:case 131233:case 131745:case 132257:case 132769:case 133281:case 134305:case 134817:case 136353:case 136865:case 137377:case 137889:case 139425:case 139937:case 141473:case 144033:case 145057:Qf();break;case-10:case 3294:case 4318:case 4830:case 5342:case 5854:case 16094:case 16606:case 17118:case 28382:case 28894:case 30942:case 35550:case 36574:case 37598:case 38110:case 38622:case 39134:case 40158:case 40670:case 41182:case 41694:case 42206:case 42718:case 43230:case 43742:case 44254:case 44766:case 45790:case 46302:case 46814:case 47326:case 48350:case 48862:case 49886:case 50398:case 50910:case 52446:case 52958:case 53470:case 53982:case 54494:case 55006:case 56030:case 56542:case 57054:case 57566:case 58078:case 58590:case 61150:case 61662:case 62174:case 62686:case 63198:case 63710:case 64222:case 64734:case 65246:case 66270:case 66782:case 67806:case 68318:case 68830:case 69342:case 69854:case 70366:case 70878:case 71390:case 72926:case 73438:case 75486:case 75998:case 77022:case 78046:case 78558:case 79070:case 79582:case 80094:case 80606:case 82654:case 83166:case 83678:case 84190:case 84702:case 85214:case 85726:case 86238:case 86750:case 87262:case 88798:case 89310:case 89822:case 90846:case 91870:case 92894:case 93918:case 94430:case 94942:case 95966:case 96478:case 96990:case 100062:case 101086:case 101598:case 103646:case 104158:case 104670:case 105182:case 105694:case 106206:case 107742:case 110814:case 111326:case 112862:case 113886:case 114398:case 114910:case 115422:case 115934:case 116958:case 117470:case 117982:case 118494:case 119006:case 119518:case 120030:case 122590:case 123102:case 123614:case 124126:case 125662:case 126686:case 127198:case 127710:case 129758:case 130270:case 130782:case 131294:case 131806:case 132318:case 132830:case 133342:case 134366:case 134878:case 136414:case 136926:case 137438:case 137950:case 139486:case 139998:case 141534:case 144094:case 145118:Yf();break;case-11:el();break;case-12:case 3150:case 4174:case 4686:case 5198:case 5710:case 15950:case 16462:case 16974:case 18510:case 21070:case 22094:case 24142:case 24654:case 28238:case 28750:case 30798:case 35406:case 36430:case 37454:case 37966:case 38478:case 38990:case 40014:case 40526:case 41038:case 41550:case 42062:case 42574:case 43086:case 43598:case 44110:case 44622:case 45646:case 46158:case 46670:case 47182:case 48206:case 48718:case 49742:case 50254:case 50766:case 52302:case 52814:case 53326:case 53838:case 54350:case 54862:case 55886:case 56398:case 56910:case 57422:case 57934:case 58446:case 61006:case 61518:case 62030:case 62542:case 63054:case 63566:case 64078:case 64590:case 65102:case 66126:case 66638:case 67662:case 68174:case 68686:case 69198:case 69710:case 70222:case 70734:case 71246:case 72782:case 73294:case 75342:case 75854:case 76878:case 77902:case 78414:case 78926:case 79438:case 79950:case 80462:case 82510:case 83022:case 83534:case 84046:case 84558:case 85070:case 85582:case 86094:case 86606:case 87118:case 88654:case 89166:case 89678:case 90702:case 91726:case 92750:case 93774:case 94286:case 94798:case 95822:case 96334:case 96846:case 99406:case 99918:case 100430:case 100942:case 101454:case 103502:case 104014:case 104526:case 105038:case 105550:case 106062:case 107598:case 110670:case 111182:case 112718:case 113742:case 114254:case 114766:case 115278:case 115790:case 116814:case 117326:case 117838:case 118350:case 118862:case 119374:case 119886:case 122446:case 122958:case 123470:case 123982:case 125518:case 126542:case 127054:case 127566:case 129614:case 130126:case 130638:case 131150:case 131662:case 132174:case 132686:case 133198:case 134222:case 134734:case 136270:case 136782:case 137294:case 137806:case 139342:case 139854:case 141390:case 143950:case 144974:nl();break;default:Pn()}ic.endNonterminal(\"ExprSimple\",Vl)}function $f(){switch($l){case 78:ql(269);break;case 161:ql(276);break;case 223:ql(170);break;case 111:case 222:ql(261);break;case 104:case 130:case 240:ql(143);break;default:Wl=$l}if(Wl==17998||Wl==18031||Wl==18081||Wl==18142||Wl==99439||Wl==99489||Wl==99550||Wl==99951||Wl==100001||Wl==136927){Wl=uc(10,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hn(),oc(10,t,-2),Wl=-13}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),zo(),oc(10,t,-3),Wl=-13}catch(f){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Xo(),oc(10,t,-4),Wl=-13}catch(l){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Ko(),oc(10,t,-5),Wl=-13}catch(c){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),$o(),oc(10,t,-6),Wl=-13}catch(h){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Kf(),oc(10,t,-8),Wl=-13}catch(p){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Gf(),oc(10,t,-9),Wl=-13}catch(d){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Zf(),oc(10,t,-10),Wl=-13}catch(v){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),tl(),oc(10,t,-11),Wl=-13}catch(m){Wl=-12,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(10,t,-12)}}}}}}}}}}}switch(Wl){case 16002:case 16112:un();break;case-3:zo();break;case-4:Xo();break;case-5:Ko();break;case-6:case 99551:$o();break;case 15976:ru();break;case-8:case 3183:case 4207:case 4719:case 5231:case 5743:case 15983:case 16495:case 17007:case 28271:case 28783:case 30831:case 35439:case 36463:case 37487:case 37999:case 38511:case 39023:case 40047:case 40559:case 41071:case 41583:case 42095:case 42607:case 43119:case 43631:case 44143:case 44655:case 45679:case 46191:case 46703:case 47215:case 48239:case 48751:case 49775:case 50287:case 50799:case 52335:case 52847:case 53359:case 53871:case 54383:case 54895:case 55919:case 56431:case 56943:case 57455:case 57967:case 58479:case 61039:case 61551:case 62063:case 62575:case 63087:case 63599:case 64111:case 64623:case 65135:case 66159:case 66671:case 67695:case 68207:case 68719:case 69231:case 69743:case 70255:case 70767:case 71279:case 72815:case 73327:case 75375:case 75887:case 76911:case 77935:case 78447:case 78959:case 79471:case 79983:case 80495:case 82543:case 83055:case 83567:case 84079:case 84591:case 85103:case 85615:case 86127:case 86639:case 87151:case 88687:case 89199:case 89711:case 90735:case 91759:case 92783:case 93807:case 94319:case 94831:case 95855:case 96367:case 96879:case 100975:case 101487:case 103535:case 104047:case 104559:case 105071:case 105583:case 106095:case 107631:case 110703:case 111215:case 112751:case 113775:case 114287:case 114799:case 115311:case 115823:case 116847:case 117359:case 117871:case 118383:case 118895:case 119407:case 119919:case 122479:case 122991:case 123503:case 124015:case 125551:case 126575:case 127087:case 127599:case 129647:case 130159:case 130671:case 131183:case 131695:case 132207:case 132719:case 133231:case 134255:case 134767:case 136303:case 136815:case 137327:case 137839:case 139375:case 139887:case 141423:case 143983:case 145007:Kf();break;case-9:case 3233:case 4257:case 4769:case 5281:case 5793:case 9889:case 16033:case 16545:case 17057:case 18593:case 21153:case 22177:case 24225:case 24737:case 28321:case 28833:case 30881:case 35489:case 36513:case 37537:case 38049:case 38561:case 39073:case 40097:case 40609:case 41121:case 41633:case 42145:case 42657:case 43169:case 43681:case 44193:case 44705:case 45729:case 46241:case 46753:case 47265:case 48289:case 48801:case 49825:case 50337:case 50849:case 52385:case 52897:case 53409:case 53921:case 54433:case 54945:case 55969:case 56481:case 56993:case 57505:case 58017:case 58529:case 61089:case 61601:case 62113:case 62625:case 63137:case 63649:case 64161:case 64673:case 65185:case 66209:case 66721:case 67745:case 68257:case 68769:case 69281:case 69793:case 70305:case 70817:case 71329:case 72865:case 73377:case 75425:case 75937:case 76961:case 77985:case 78497:case 79009:case 79521:case 80033:case 80545:case 82593:case 83105:case 83617:case 84129:case 84641:case 85153:case 85665:case 86177:case 86689:case 87201:case 88737:case 89249:case 89761:case 90785:case 91809:case 92833:case 93857:case 94369:case 94881:case 95905:case 96417:case 96929:case 100513:case 101025:case 101537:case 103585:case 104097:case 104609:case 105121:case 105633:case 106145:case 107681:case 110753:case 111265:case 112801:case 113825:case 114337:case 114849:case 115361:case 115873:case 116897:case 117409:case 117921:case 118433:case 118945:case 119457:case 119969:case 122529:case 123041:case 123553:case 124065:case 125601:case 126625:case 127137:case 127649:case 129697:case 130209:case 130721:case 131233:case 131745:case 132257:case 132769:case 133281:case 134305:case 134817:case 136353:case 136865:case 137377:case 137889:case 139425:case 139937:case 141473:case 144033:case 145057:Gf();break;case-10:case 3294:case 4318:case 4830:case 5342:case 5854:case 16094:case 16606:case 17118:case 28382:case 28894:case 30942:case 35550:case 36574:case 37598:case 38110:case 38622:case 39134:case 40158:case 40670:case 41182:case 41694:case 42206:case 42718:case 43230:case 43742:case 44254:case 44766:case 45790:case 46302:case 46814:case 47326:case 48350:case 48862:case 49886:case 50398:case 50910:case 52446:case 52958:case 53470:case 53982:case 54494:case 55006:case 56030:case 56542:case 57054:case 57566:case 58078:case 58590:case 61150:case 61662:case 62174:case 62686:case 63198:case 63710:case 64222:case 64734:case 65246:case 66270:case 66782:case 67806:case 68318:case 68830:case 69342:case 69854:case 70366:case 70878:case 71390:case 72926:case 73438:case 75486:case 75998:case 77022:case 78046:case 78558:case 79070:case 79582:case 80094:case 80606:case 82654:case 83166:case 83678:case 84190:case 84702:case 85214:case 85726:case 86238:case 86750:case 87262:case 88798:case 89310:case 89822:case 90846:case 91870:case 92894:case 93918:case 94430:case 94942:case 95966:case 96478:case 96990:case 100062:case 101086:case 101598:case 103646:case 104158:case 104670:case 105182:case 105694:case 106206:case 107742:case 110814:case 111326:case 112862:case 113886:case 114398:case 114910:case 115422:case 115934:case 116958:case 117470:case 117982:case 118494:case 119006:case 119518:case 120030:case 122590:case 123102:case 123614:case 124126:case 125662:case 126686:case 127198:case 127710:case 129758:case 130270:case 130782:case 131294:case 131806:case 132318:case 132830:case 133342:case 134366:case 134878:case 136414:case 136926:case 137438:case 137950:case 139486:case 139998:case 141534:case 144094:case 145118:Zf();break;case-11:tl();break;case-12:case 3150:case 4174:case 4686:case 5198:case 5710:case 15950:case 16462:case 16974:case 18510:case 21070:case 22094:case 24142:case 24654:case 28238:case 28750:case 30798:case 35406:case 36430:case 37454:case 37966:case 38478:case 38990:case 40014:case 40526:case 41038:case 41550:case 42062:case 42574:case 43086:case 43598:case 44110:case 44622:case 45646:case 46158:case 46670:case 47182:case 48206:case 48718:case 49742:case 50254:case 50766:case 52302:case 52814:case 53326:case 53838:case 54350:case 54862:case 55886:case 56398:case 56910:case 57422:case 57934:case 58446:case 61006:case 61518:case 62030:case 62542:case 63054:case 63566:case 64078:case 64590:case 65102:case 66126:case 66638:case 67662:case 68174:case 68686:case 69198:case 69710:case 70222:case 70734:case 71246:case 72782:case 73294:case 75342:case 75854:case 76878:case 77902:case 78414:case 78926:case 79438:case 79950:case 80462:case 82510:case 83022:case 83534:case 84046:case 84558:case 85070:case 85582:case 86094:case 86606:case 87118:case 88654:case 89166:case 89678:case 90702:case 91726:case 92750:case 93774:case 94286:case 94798:case 95822:case 96334:case 96846:case 99406:case 99918:case 100430:case 100942:case 101454:case 103502:case 104014:case 104526:case 105038:case 105550:case 106062:case 107598:case 110670:case 111182:case 112718:case 113742:case 114254:case 114766:case 115278:case 115790:case 116814:case 117326:case 117838:case 118350:case 118862:case 119374:case 119886:case 122446:case 122958:case 123470:case 123982:case 125518:case 126542:case 127054:case 127566:case 129614:case 130126:case 130638:case 131150:case 131662:case 132174:case 132686:case 133198:case 134222:case 134734:case 136270:case 136782:case 137294:case 137806:case 139342:case 139854:case 141390:case 143950:case 144974:rl();break;case-13:break;default:Hn()}}function Jf(){ic.startNonterminal(\"JSONDeleteExpr\",Vl),Pl(111),Il(260);switch($l){case 168:ql(261);break;default:Wl=$l}if(Wl==18088){Wl=uc(11,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(168),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(11,Vl,Wl)}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Pl(168),Il(260),jl(),ei(),ic.endNonterminal(\"JSONDeleteExpr\",Vl)}function Kf(){Hl(111),Il(260);switch($l){case 168:ql(261);break;default:Wl=$l}if(Wl==18088){Wl=uc(11,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(168),oc(11,t,-1)}catch(a){Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(11,t,-2)}Wl=-2}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Hl(168),Il(260),ti()}function Qf(){ic.startNonterminal(\"JSONInsertExpr\",Vl);switch($l){case 161:ql(268);break;default:Wl=$l}if(Wl!=9889){Wl=uc(12,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(161),Il(267);switch($l){case 168:ql(269);break;default:Wl=$l}if(Wl==18088){Wl=uc(13,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(168),oc(13,f,-1)}catch(m){Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(13,f,-2)}Wl=-2}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==18600||Wl==21160||Wl==22184||Wl==24232||Wl==24744||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==100520||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Hl(168),Il(267),Xf(),Hl(165),Il(267),Xf();switch($l){case 82:ql(72);break;default:Wl=$l}if(Wl==110162){Wl=uc(14,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(82),Il(72),Hl(215),Il(267),Xf(),oc(14,f,-1)}catch(m){Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(14,f,-2)}Wl=-2}}Wl==-1&&(Hl(82),Il(72),Hl(215),Il(267),Xf()),Wl=-1}catch(g){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(12,Vl,Wl)}}switch(Wl){case-1:Pl(161),Il(267);switch($l){case 168:ql(269);break;default:Wl=$l}if(Wl==18088){Wl=uc(13,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(168),Wl=-1}catch(m){Wl=-2}Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(13,Vl,Wl)}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==18600||Wl==21160||Wl==22184||Wl==24232||Wl==24744||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==100520||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Pl(168),Il(267),jl(),Wf(),Pl(165),Il(267),jl(),Wf();switch($l){case 82:ql(72);break;default:Wl=$l}if(Wl==110162){Wl=uc(14,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(82),Il(72),Hl(215),Il(267),Xf(),Wl=-1}catch(m){Wl=-2}Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(14,Vl,Wl)}}Wl==-1&&(Pl(82),Il(72),Pl(215),Il(267),jl(),Wf());break;default:Pl(161),Il(268);switch($l){case 168:ql(282);break;default:Wl=$l}if(Wl==18088){Wl=uc(15,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(168),Wl=-1}catch(m){Wl=-2}Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(15,Vl,Wl)}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==9896||Wl==16040||Wl==16552||Wl==17064||Wl==18600||Wl==21160||Wl==22184||Wl==24232||Wl==24744||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==100520||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Pl(168),Il(268),jl(),Tl(),Pl(165),Il(267),jl(),Wf()}ic.endNonterminal(\"JSONInsertExpr\",Vl)}function Gf(){switch($l){case 161:ql(268);break;default:Wl=$l}if(Wl!=9889){Wl=uc(12,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(161),Il(267);switch($l){case 168:ql(269);break;default:Wl=$l}if(Wl==18088){Wl=uc(13,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(168),oc(13,f,-1)}catch(m){Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(13,f,-2)}Wl=-2}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==18600||Wl==21160||Wl==22184||Wl==24232||Wl==24744||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==100520||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Hl(168),Il(267),Xf(),Hl(165),Il(267),Xf();switch($l){case 82:ql(72);break;default:Wl=$l}if(Wl==110162){Wl=uc(14,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(82),Il(72),Hl(215),Il(267),Xf(),oc(14,f,-1)}catch(m){Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(14,f,-2)}Wl=-2}}Wl==-1&&(Hl(82),Il(72),Hl(215),Il(267),Xf()),oc(12,t,-1),Wl=-3}catch(g){Wl=-2,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(12,t,-2)}}}switch(Wl){case-1:Hl(161),Il(267);switch($l){case 168:ql(269);break;default:Wl=$l}if(Wl==18088){Wl=uc(13,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(168),oc(13,f,-1)}catch(m){Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(13,f,-2)}Wl=-2}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==18600||Wl==21160||Wl==22184||Wl==24232||Wl==24744||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==100520||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Hl(168),Il(267),Xf(),Hl(165),Il(267),Xf();switch($l){case 82:ql(72);break;default:Wl=$l}if(Wl==110162){Wl=uc(14,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(82),Il(72),Hl(215),Il(267),Xf(),oc(14,f,-1)}catch(m){Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(14,f,-2)}Wl=-2}}Wl==-1&&(Hl(82),Il(72),Hl(215),Il(267),Xf());break;case-3:break;default:Hl(161),Il(268);switch($l){case 168:ql(282);break;default:Wl=$l}if(Wl==18088){Wl=uc(15,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(168),oc(15,f,-1)}catch(m){Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(15,f,-2)}Wl=-2}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==9896||Wl==16040||Wl==16552||Wl==17064||Wl==18600||Wl==21160||Wl==22184||Wl==24232||Wl==24744||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==100520||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Hl(168),Il(268),Nl(),Hl(165),Il(267),Xf()}}function Yf(){ic.startNonterminal(\"JSONRenameExpr\",Vl),Pl(222),Il(260);switch($l){case 168:ql(261);break;default:Wl=$l}if(Wl==18088){Wl=uc(16,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(168),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(16,Vl,Wl)}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Pl(168),Il(260),jl(),ei(),Pl(80),Il(267),jl(),Wf(),ic.endNonterminal(\"JSONRenameExpr\",Vl)}function Zf(){Hl(222),Il(260);switch($l){case 168:ql(261);break;default:Wl=$l}if(Wl==18088){Wl=uc(16,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(168),oc(16,t,-1)}catch(a){Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(16,t,-2)}Wl=-2}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Hl(168),Il(260),ti(),Hl(80),Il(267),Xf()}function el(){ic.startNonterminal(\"JSONReplaceExpr\",Vl),Pl(223),Il(85),Pl(267),Il(67),Pl(200),Il(59),Pl(168),Il(260),jl(),ei(),Pl(276),Il(267),jl(),Wf(),ic.endNonterminal(\"JSONReplaceExpr\",Vl)}function tl(){Hl(223),Il(85),Hl(267),Il(67),Hl(200),Il(59),Hl(168),Il(260),ti(),Hl(276),Il(267),Xf()}function nl(){ic.startNonterminal(\"JSONAppendExpr\",Vl),Pl(78),Il(267);switch($l){case 168:ql(269);break;default:Wl=$l}if(Wl==18088){Wl=uc(17,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(168),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(17,Vl,Wl)}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==18600||Wl==21160||Wl==22184||Wl==24232||Wl==24744||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==100520||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Pl(168),Il(267),jl(),Wf(),Pl(165),Il(267),jl(),Wf(),ic.endNonterminal(\"JSONAppendExpr\",Vl)}function rl(){Hl(78),Il(267);switch($l){case 168:ql(269);break;default:Wl=$l}if(Wl==18088){Wl=uc(17,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(168),oc(17,t,-1)}catch(a){Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(17,t,-2)}Wl=-2}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==18600||Wl==21160||Wl==22184||Wl==24232||Wl==24744||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==100520||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Hl(168),Il(267),Xf(),Hl(165),Il(267),Xf()}function il(){ic.startNonterminal(\"CommonContent\",Vl);switch($l){case 12:Pl(12);break;case 23:Pl(23);break;case 282:Pl(282);break;case 288:Pl(288);break;default:Ol()}ic.endNonterminal(\"CommonContent\",Vl)}function sl(){switch($l){case 12:Hl(12);break;case 23:Hl(23);break;case 282:Hl(282);break;case 288:Hl(288);break;default:Ml()}}function ol(){ic.startNonterminal(\"ContentExpr\",Vl),rf(),ic.endNonterminal(\"ContentExpr\",Vl)}function ul(){sf()}function al(){ic.startNonterminal(\"CompDocConstructor\",Vl),Pl(120),Il(90),jl(),Ol(),ic.endNonterminal(\"CompDocConstructor\",Vl)}function fl(){Hl(120),Il(90),Ml()}function ll(){ic.startNonterminal(\"CompAttrConstructor\",Vl),Pl(83),Il(250);switch($l){case 281:Pl(281),Il(267),jl(),G(),Pl(287);break;default:jl(),$a()}Il(90);switch($l){case 281:ql(281);break;default:Wl=$l}if(Wl==147225){Wl=uc(18,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(281),Il(91),Hl(287),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(18,Vl,Wl)}}switch(Wl){case-1:Pl(281),Il(91),Pl(287);break;default:jl(),Ol()}ic.endNonterminal(\"CompAttrConstructor\",Vl)}function cl(){Hl(83),Il(250);switch($l){case 281:Hl(281),Il(267),Y(),Hl(287);break;default:Ja()}Il(90);switch($l){case 281:ql(281);break;default:Wl=$l}if(Wl==147225){Wl=uc(18,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(281),Il(91),Hl(287),oc(18,t,-1),Wl=-3}catch(a){Wl=-2,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(18,t,-2)}}}switch(Wl){case-1:Hl(281),Il(91),Hl(287);break;case-3:break;default:Ml()}}function hl(){ic.startNonterminal(\"CompPIConstructor\",Vl),Pl(220),Il(242);switch($l){case 281:Pl(281),Il(267),jl(),G(),Pl(287);break;default:jl(),Ga()}Il(90);switch($l){case 281:ql(281);break;default:Wl=$l}if(Wl==147225){Wl=uc(19,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(281),Il(91),Hl(287),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(19,Vl,Wl)}}switch(Wl){case-1:Pl(281),Il(91),Pl(287);break;default:jl(),Ol()}ic.endNonterminal(\"CompPIConstructor\",Vl)}function pl(){Hl(220),Il(242);switch($l){case 281:Hl(281),Il(267),Y(),Hl(287);break;default:Ya()}Il(90);switch($l){case 281:ql(281);break;default:Wl=$l}if(Wl==147225){Wl=uc(19,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(281),Il(91),Hl(287),oc(19,t,-1),Wl=-3}catch(a){Wl=-2,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(19,t,-2)}}}switch(Wl){case-1:Hl(281),Il(91),Hl(287);break;case-3:break;default:Ml()}}function dl(){ic.startNonterminal(\"CompCommentConstructor\",Vl),Pl(97),Il(90),jl(),Ol(),ic.endNonterminal(\"CompCommentConstructor\",Vl)}function vl(){Hl(97),Il(90),Ml()}function ml(){ic.startNonterminal(\"CompTextConstructor\",Vl),Pl(249),Il(90),jl(),Ol(),ic.endNonterminal(\"CompTextConstructor\",Vl)}function gl(){Hl(249),Il(90),Ml()}function yl(){ic.startNonterminal(\"PrimaryExpr\",Vl);switch($l){case 187:ql(247);break;case 220:ql(245);break;case 281:ql(283);break;case 83:case 122:ql(253);break;case 97:case 249:ql(97);break;case 120:case 206:case 262:ql(148);break;case 135:case 197:case 255:ql(237);break;case 6:case 71:case 73:case 74:case 75:case 76:case 78:case 80:case 81:case 82:case 84:case 85:case 86:case 87:case 89:case 90:case 91:case 92:case 94:case 95:case 98:case 99:case 102:case 103:case 104:case 105:case 106:case 107:case 109:case 110:case 111:case 112:case 113:case 114:case 119:case 123:case 124:case 126:case 127:case 129:case 130:case 132:case 133:case 134:case 136:case 137:case 138:case 139:case 142:case 143:case 148:case 150:case 152:case 153:case 155:case 156:case 157:case 161:case 162:case 163:case 164:case 165:case 166:case 168:case 170:case 173:case 174:case 175:case 177:case 179:case 181:case 183:case 184:case 185:case 189:case 195:case 198:case 202:case 203:case 204:case 205:case 207:case 210:case 216:case 217:case 222:case 223:case 224:case 225:case 226:case 228:case 229:case 232:case 233:case 234:case 239:case 240:case 241:case 242:case 245:case 253:case 254:case 256:case 257:case 258:case 260:case 263:case 266:case 267:case 268:case 269:case 272:case 273:case 276:ql(95);break;default:Wl=$l}if(Wl==3353||Wl==4377||Wl==4889||Wl==5401||Wl==5913||Wl==16153||Wl==16665||Wl==17177||Wl==18055||Wl==18117||Wl==18175||Wl==18201||Wl==18713||Wl==21273||Wl==22297||Wl==24345||Wl==24857||Wl==28441||Wl==28953||Wl==31001||Wl==35609||Wl==36633||Wl==37657||Wl==38169||Wl==38681||Wl==39193||Wl==40217||Wl==40729||Wl==41241||Wl==41753||Wl==42265||Wl==42777||Wl==43289||Wl==43801||Wl==44313||Wl==44825||Wl==45849||Wl==46361||Wl==46873||Wl==47385||Wl==48409||Wl==48921||Wl==49945||Wl==50457||Wl==50969||Wl==52505||Wl==53017||Wl==53529||Wl==54041||Wl==54553||Wl==55065||Wl==56089||Wl==56601||Wl==57113||Wl==57625||Wl==58137||Wl==58649||Wl==61209||Wl==61721||Wl==62233||Wl==62745||Wl==63257||Wl==63769||Wl==64281||Wl==64793||Wl==65305||Wl==66329||Wl==66841||Wl==67865||Wl==68377||Wl==68889||Wl==69401||Wl==69913||Wl==70425||Wl==70937||Wl==71449||Wl==72985||Wl==73497||Wl==75545||Wl==76057||Wl==77081||Wl==78105||Wl==78617||Wl==79129||Wl==79641||Wl==80153||Wl==80665||Wl==82713||Wl==83225||Wl==83737||Wl==84249||Wl==84761||Wl==85273||Wl==85785||Wl==86297||Wl==86809||Wl==87321||Wl==88857||Wl==89369||Wl==89881||Wl==90905||Wl==91929||Wl==92953||Wl==93977||Wl==94489||Wl==95001||Wl==96025||Wl==96537||Wl==97049||Wl==99609||Wl==100121||Wl==100633||Wl==101145||Wl==101657||Wl==103705||Wl==104217||Wl==104729||Wl==105241||Wl==105753||Wl==106265||Wl==107801||Wl==110873||Wl==111385||Wl==112921||Wl==113945||Wl==114457||Wl==114969||Wl==115481||Wl==115993||Wl==117017||Wl==117529||Wl==118041||Wl==118553||Wl==119065||Wl==119577||Wl==120089||Wl==122649||Wl==123161||Wl==123673||Wl==124185||Wl==125721||Wl==126745||Wl==127257||Wl==127769||Wl==129817||Wl==130329||Wl==130841||Wl==131353||Wl==131865||Wl==132377||Wl==132889||Wl==133401||Wl==134425||Wl==134937||Wl==136473||Wl==136985||Wl==137497||Wl==138009||Wl==139545||Wl==140057||Wl==141593||Wl==144153||Wl==145177||Wl==147225){Wl=uc(20,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{vi(),Wl=-1}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Hi(),Wl=-5}catch(f){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Ml(),Wl=-10}catch(l){Wl=-11}}}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(20,Vl,Wl)}}switch(Wl){case-1:case 8:case 9:case 10:case 11:case 12935:case 12997:case 13055:case 13447:case 13509:case 13567:case 13959:case 14021:case 14079:case 19591:case 19653:case 19711:case 20103:case 20165:case 20223:case 21127:case 21189:case 21247:case 21639:case 21701:case 21759:case 22151:case 22213:case 22271:case 23175:case 23237:case 23295:case 24199:case 24261:case 24319:case 24711:case 24773:case 24831:case 25735:case 25797:case 25855:case 27783:case 27845:case 27903:case 28295:case 28357:case 28415:case 29831:case 29893:case 29951:case 30343:case 30405:case 30463:case 31367:case 31429:case 31487:case 31879:case 31941:case 31999:case 32391:case 32453:case 32511:case 32903:case 32965:case 33023:case 35463:case 35525:case 35583:case 35975:case 36037:case 36095:case 36487:case 36549:case 36607:case 39047:case 39109:case 39167:case 41095:case 41157:case 41215:case 41607:case 41669:case 41727:case 42119:case 42181:case 42239:case 43655:case 43717:case 43775:case 45191:case 45253:case 45311:case 45703:case 45765:case 45823:case 46215:case 46277:case 46335:case 46727:case 46789:case 46847:case 48775:case 48837:case 48895:case 51335:case 51397:case 51455:case 54407:case 54469:case 54527:case 56455:case 56517:case 56575:case 58503:case 58565:case 58623:case 61063:case 61125:case 61183:case 63111:case 63173:case 63231:case 63623:case 63685:case 63743:case 65159:case 65221:case 65279:case 66183:case 66245:case 66303:case 67719:case 67781:case 67839:case 71303:case 71365:case 71423:case 75911:case 75973:case 76031:case 76935:case 76997:case 77055:case 77959:case 78021:case 78079:case 78471:case 78533:case 78591:case 83079:case 83141:case 83199:case 84103:case 84165:case 84223:case 84615:case 84677:case 84735:case 85127:case 85189:case 85247:case 89735:case 89797:case 89855:case 90759:case 90821:case 90879:case 92807:case 92869:case 92927:case 93831:case 93893:case 93951:case 94343:case 94405:case 94463:case 96903:case 96965:case 97023:case 103559:case 103621:case 103679:case 104583:case 104645:case 104703:case 105095:case 105157:case 105215:case 107143:case 107205:case 107263:case 114823:case 114885:case 114943:case 116871:case 116933:case 116991:case 121479:case 121541:case 121599:case 123527:case 123589:case 123647:case 124039:case 124101:case 124159:case 129159:case 129221:case 129279:case 129671:case 129733:case 129791:case 130183:case 130245:case 130303:case 133255:case 133317:case 133375:case 139399:case 139461:case 139519:case 141447:case 141509:case 141567:case 142983:case 143045:case 143103:case 145543:case 145605:case 145663:case 146055:case 146117:case 146175:case 146567:case 146629:case 146687:case 147079:case 147141:case 147199:di();break;case 31:Si();break;case 35:Ci();break;case 32:Li();break;case-5:case 17926:case 17991:case 17993:case 17994:case 17995:case 17996:case 17998:case 18e3:case 18001:case 18002:case 18004:case 18005:case 18006:case 18007:case 18009:case 18010:case 18011:case 18012:case 18014:case 18015:case 18018:case 18019:case 18022:case 18023:case 18024:case 18025:case 18026:case 18027:case 18029:case 18030:case 18031:case 18032:case 18033:case 18034:case 18039:case 18040:case 18043:case 18044:case 18046:case 18047:case 18049:case 18050:case 18052:case 18053:case 18054:case 18056:case 18057:case 18058:case 18059:case 18062:case 18063:case 18068:case 18070:case 18072:case 18073:case 18075:case 18076:case 18077:case 18081:case 18082:case 18083:case 18084:case 18085:case 18086:case 18088:case 18090:case 18093:case 18094:case 18095:case 18097:case 18099:case 18101:case 18103:case 18104:case 18105:case 18107:case 18109:case 18115:case 18118:case 18122:case 18123:case 18124:case 18125:case 18126:case 18127:case 18130:case 18136:case 18137:case 18142:case 18143:case 18144:case 18145:case 18146:case 18148:case 18149:case 18152:case 18153:case 18154:case 18159:case 18160:case 18161:case 18162:case 18165:case 18173:case 18174:case 18176:case 18177:case 18178:case 18180:case 18182:case 18183:case 18186:case 18187:case 18188:case 18189:case 18192:case 18193:case 18196:Pi();break;case 144078:Oi();break;case 144134:_i();break;case 33:case 79:case 121:case 125:case 147:case 154:case 167:case 169:case 188:case 194:case 230:case 231:case 247:case 248:case 259:case 14854:case 14919:case 14921:case 14922:case 14923:case 14924:case 14926:case 14928:case 14929:case 14930:case 14931:case 14932:case 14933:case 14934:case 14935:case 14937:case 14938:case 14939:case 14940:case 14942:case 14943:case 14945:case 14946:case 14947:case 14950:case 14951:case 14952:case 14953:case 14954:case 14955:case 14957:case 14958:case 14959:case 14960:case 14961:case 14962:case 14967:case 14968:case 14970:case 14971:case 14972:case 14974:case 14975:case 14977:case 14978:case 14980:case 14981:case 14982:case 14983:case 14984:case 14985:case 14986:case 14987:case 14990:case 14991:case 14996:case 14998:case 15e3:case 15001:case 15003:case 15004:case 15005:case 15009:case 15010:case 15011:case 15012:case 15013:case 15014:case 15016:case 15018:case 15021:case 15022:case 15023:case 15025:case 15027:case 15029:case 15031:case 15032:case 15033:case 15035:case 15037:case 15043:case 15045:case 15046:case 15050:case 15051:case 15052:case 15053:case 15054:case 15055:case 15058:case 15064:case 15065:case 15068:case 15070:case 15071:case 15072:case 15073:case 15074:case 15076:case 15077:case 15080:case 15081:case 15082:case 15087:case 15088:case 15089:case 15090:case 15093:case 15097:case 15101:case 15102:case 15103:case 15104:case 15105:case 15106:case 15108:case 15110:case 15111:case 15114:case 15115:case 15116:case 15117:case 15120:case 15121:case 15124:ys();break;case-10:case 27929:Ol();break;case-11:case 10009:Sl();break;case 69:Ll();break;case 283:wl();break;default:qi()}ic.endNonterminal(\"PrimaryExpr\",Vl)}function bl(){switch($l){case 187:ql(247);break;case 220:ql(245);break;case 281:ql(283);break;case 83:case 122:ql(253);break;case 97:case 249:ql(97);break;case 120:case 206:case 262:ql(148);break;case 135:case 197:case 255:ql(237);break;case 6:case 71:case 73:case 74:case 75:case 76:case 78:case 80:case 81:case 82:case 84:case 85:case 86:case 87:case 89:case 90:case 91:case 92:case 94:case 95:case 98:case 99:case 102:case 103:case 104:case 105:case 106:case 107:case 109:case 110:case 111:case 112:case 113:case 114:case 119:case 123:case 124:case 126:case 127:case 129:case 130:case 132:case 133:case 134:case 136:case 137:case 138:case 139:case 142:case 143:case 148:case 150:case 152:case 153:case 155:case 156:case 157:case 161:case 162:case 163:case 164:case 165:case 166:case 168:case 170:case 173:case 174:case 175:case 177:case 179:case 181:case 183:case 184:case 185:case 189:case 195:case 198:case 202:case 203:case 204:case 205:case 207:case 210:case 216:case 217:case 222:case 223:case 224:case 225:case 226:case 228:case 229:case 232:case 233:case 234:case 239:case 240:case 241:case 242:case 245:case 253:case 254:case 256:case 257:case 258:case 260:case 263:case 266:case 267:case 268:case 269:case 272:case 273:case 276:ql(95);break;default:Wl=$l}if(Wl==3353||Wl==4377||Wl==4889||Wl==5401||Wl==5913||Wl==16153||Wl==16665||Wl==17177||Wl==18055||Wl==18117||Wl==18175||Wl==18201||Wl==18713||Wl==21273||Wl==22297||Wl==24345||Wl==24857||Wl==28441||Wl==28953||Wl==31001||Wl==35609||Wl==36633||Wl==37657||Wl==38169||Wl==38681||Wl==39193||Wl==40217||Wl==40729||Wl==41241||Wl==41753||Wl==42265||Wl==42777||Wl==43289||Wl==43801||Wl==44313||Wl==44825||Wl==45849||Wl==46361||Wl==46873||Wl==47385||Wl==48409||Wl==48921||Wl==49945||Wl==50457||Wl==50969||Wl==52505||Wl==53017||Wl==53529||Wl==54041||Wl==54553||Wl==55065||Wl==56089||Wl==56601||Wl==57113||Wl==57625||Wl==58137||Wl==58649||Wl==61209||Wl==61721||Wl==62233||Wl==62745||Wl==63257||Wl==63769||Wl==64281||Wl==64793||Wl==65305||Wl==66329||Wl==66841||Wl==67865||Wl==68377||Wl==68889||Wl==69401||Wl==69913||Wl==70425||Wl==70937||Wl==71449||Wl==72985||Wl==73497||Wl==75545||Wl==76057||Wl==77081||Wl==78105||Wl==78617||Wl==79129||Wl==79641||Wl==80153||Wl==80665||Wl==82713||Wl==83225||Wl==83737||Wl==84249||Wl==84761||Wl==85273||Wl==85785||Wl==86297||Wl==86809||Wl==87321||Wl==88857||Wl==89369||Wl==89881||Wl==90905||Wl==91929||Wl==92953||Wl==93977||Wl==94489||Wl==95001||Wl==96025||Wl==96537||Wl==97049||Wl==99609||Wl==100121||Wl==100633||Wl==101145||Wl==101657||Wl==103705||Wl==104217||Wl==104729||Wl==105241||Wl==105753||Wl==106265||Wl==107801||Wl==110873||Wl==111385||Wl==112921||Wl==113945||Wl==114457||Wl==114969||Wl==115481||Wl==115993||Wl==117017||Wl==117529||Wl==118041||Wl==118553||Wl==119065||Wl==119577||Wl==120089||Wl==122649||Wl==123161||Wl==123673||Wl==124185||Wl==125721||Wl==126745||Wl==127257||Wl==127769||Wl==129817||Wl==130329||Wl==130841||Wl==131353||Wl==131865||Wl==132377||Wl==132889||Wl==133401||Wl==134425||Wl==134937||Wl==136473||Wl==136985||Wl==137497||Wl==138009||Wl==139545||Wl==140057||Wl==141593||Wl==144153||Wl==145177||Wl==147225){Wl=uc(20,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{vi(),oc(20,t,-1),Wl=-14}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Hi(),oc(20,t,-5),Wl=-14}catch(f){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Ml(),oc(20,t,-10),Wl=-14}catch(l){Wl=-11,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(20,t,-11)}}}}}switch(Wl){case-1:case 8:case 9:case 10:case 11:case 12935:case 12997:case 13055:case 13447:case 13509:case 13567:case 13959:case 14021:case 14079:case 19591:case 19653:case 19711:case 20103:case 20165:case 20223:case 21127:case 21189:case 21247:case 21639:case 21701:case 21759:case 22151:case 22213:case 22271:case 23175:case 23237:case 23295:case 24199:case 24261:case 24319:case 24711:case 24773:case 24831:case 25735:case 25797:case 25855:case 27783:case 27845:case 27903:case 28295:case 28357:case 28415:case 29831:case 29893:case 29951:case 30343:case 30405:case 30463:case 31367:case 31429:case 31487:case 31879:case 31941:case 31999:case 32391:case 32453:case 32511:case 32903:case 32965:case 33023:case 35463:case 35525:case 35583:case 35975:case 36037:case 36095:case 36487:case 36549:case 36607:case 39047:case 39109:case 39167:case 41095:case 41157:case 41215:case 41607:case 41669:case 41727:case 42119:case 42181:case 42239:case 43655:case 43717:case 43775:case 45191:case 45253:case 45311:case 45703:case 45765:case 45823:case 46215:case 46277:case 46335:case 46727:case 46789:case 46847:case 48775:case 48837:case 48895:case 51335:case 51397:case 51455:case 54407:case 54469:case 54527:case 56455:case 56517:case 56575:case 58503:case 58565:case 58623:case 61063:case 61125:case 61183:case 63111:case 63173:case 63231:case 63623:case 63685:case 63743:case 65159:case 65221:case 65279:case 66183:case 66245:case 66303:case 67719:case 67781:case 67839:case 71303:case 71365:case 71423:case 75911:case 75973:case 76031:case 76935:case 76997:case 77055:case 77959:case 78021:case 78079:case 78471:case 78533:case 78591:case 83079:case 83141:case 83199:case 84103:case 84165:case 84223:case 84615:case 84677:case 84735:case 85127:case 85189:case 85247:case 89735:case 89797:case 89855:case 90759:case 90821:case 90879:case 92807:case 92869:case 92927:case 93831:case 93893:case 93951:case 94343:case 94405:case 94463:case 96903:case 96965:case 97023:case 103559:case 103621:case 103679:case 104583:case 104645:case 104703:case 105095:case 105157:case 105215:case 107143:case 107205:case 107263:case 114823:case 114885:case 114943:case 116871:case 116933:case 116991:case 121479:case 121541:case 121599:case 123527:case 123589:case 123647:case 124039:case 124101:case 124159:case 129159:case 129221:case 129279:case 129671:case 129733:case 129791:case 130183:case 130245:case 130303:case 133255:case 133317:case 133375:case 139399:case 139461:case 139519:case 141447:case 141509:case 141567:case 142983:case 143045:case 143103:case 145543:case 145605:case 145663:case 146055:case 146117:case 146175:case 146567:case 146629:case 146687:case 147079:case 147141:case 147199:vi();break;case 31:xi();break;case 35:ki();break;case 32:Ai();break;case-5:case 17926:case 17991:case 17993:case 17994:case 17995:case 17996:case 17998:case 18e3:case 18001:case 18002:case 18004:case 18005:case 18006:case 18007:case 18009:case 18010:case 18011:case 18012:case 18014:case 18015:case 18018:case 18019:case 18022:case 18023:case 18024:case 18025:case 18026:case 18027:case 18029:case 18030:case 18031:case 18032:case 18033:case 18034:case 18039:case 18040:case 18043:case 18044:case 18046:case 18047:case 18049:case 18050:case 18052:case 18053:case 18054:case 18056:case 18057:case 18058:case 18059:case 18062:case 18063:case 18068:case 18070:case 18072:case 18073:case 18075:case 18076:case 18077:case 18081:case 18082:case 18083:case 18084:case 18085:case 18086:case 18088:case 18090:case 18093:case 18094:case 18095:case 18097:case 18099:case 18101:case 18103:case 18104:case 18105:case 18107:case 18109:case 18115:case 18118:case 18122:case 18123:case 18124:case 18125:case 18126:case 18127:case 18130:case 18136:case 18137:case 18142:case 18143:case 18144:case 18145:case 18146:case 18148:case 18149:case 18152:case 18153:case 18154:case 18159:case 18160:case 18161:case 18162:case 18165:case 18173:case 18174:case 18176:case 18177:case 18178:case 18180:case 18182:case 18183:case 18186:case 18187:case 18188:case 18189:case 18192:case 18193:case 18196:Hi();break;case 144078:Mi();break;case 144134:Di();break;case 33:case 79:case 121:case 125:case 147:case 154:case 167:case 169:case 188:case 194:case 230:case 231:case 247:case 248:case 259:case 14854:case 14919:case 14921:case 14922:case 14923:case 14924:case 14926:case 14928:case 14929:case 14930:case 14931:case 14932:case 14933:case 14934:case 14935:case 14937:case 14938:case 14939:case 14940:case 14942:case 14943:case 14945:case 14946:case 14947:case 14950:case 14951:case 14952:case 14953:case 14954:case 14955:case 14957:case 14958:case 14959:case 14960:case 14961:case 14962:case 14967:case 14968:case 14970:case 14971:case 14972:case 14974:case 14975:case 14977:case 14978:case 14980:case 14981:case 14982:case 14983:case 14984:case 14985:case 14986:case 14987:case 14990:case 14991:case 14996:case 14998:case 15e3:case 15001:case 15003:case 15004:case 15005:case 15009:case 15010:case 15011:case 15012:case 15013:case 15014:case 15016:case 15018:case 15021:case 15022:case 15023:case 15025:case 15027:case 15029:case 15031:case 15032:case 15033:case 15035:case 15037:case 15043:case 15045:case 15046:case 15050:case 15051:case 15052:case 15053:case 15054:case 15055:case 15058:case 15064:case 15065:case 15068:case 15070:case 15071:case 15072:case 15073:case 15074:case 15076:case 15077:case 15080:case 15081:case 15082:case 15087:case 15088:case 15089:case 15090:case 15093:case 15097:case 15101:case 15102:case 15103:case 15104:case 15105:case 15106:case 15108:case 15110:case 15111:case 15114:case 15115:case 15116:case 15117:case 15120:case 15121:case 15124:bs();break;case-10:case 27929:Ml();break;case-11:case 10009:xl();break;case 69:Al();break;case 283:El();break;case-14:break;default:Ri()}}function wl(){ic.startNonterminal(\"JSONSimpleObjectUnion\",Vl),Pl(283),Il(274),$l!=286&&(jl(),G()),Pl(286),ic.endNonterminal(\"JSONSimpleObjectUnion\",Vl)}function El(){Hl(283),Il(274),$l!=286&&Y(),Hl(286)}function Sl(){ic.startNonterminal(\"ObjectConstructor\",Vl),Pl(281),Il(277),$l!=287&&(jl(),Tl()),Pl(287),ic.endNonterminal(\"ObjectConstructor\",Vl)}function xl(){Hl(281),Il(277),$l!=287&&Nl(),Hl(287)}function Tl(){ic.startNonterminal(\"PairConstructorList\",Vl),Cl();for(;;){if($l!=42)break;Pl(42),Il(268),jl(),Cl()}ic.endNonterminal(\"PairConstructorList\",Vl)}function Nl(){kl();for(;;){if($l!=42)break;Hl(42),Il(268),kl()}}function Cl(){ic.startNonterminal(\"PairConstructor\",Vl);switch($l){case 78:ql(279);break;case 139:ql(187);break;case 161:ql(282);break;case 177:ql(178);break;case 187:ql(252);break;case 220:ql(248);break;case 223:ql(180);break;case 266:ql(191);break;case 83:case 122:ql(257);break;case 97:case 249:ql(149);break;case 111:case 222:ql(262);break;case 104:case 130:case 240:ql(165);break;case 135:case 197:case 255:ql(209);break;case 120:case 206:case 256:case 262:ql(167);break;case 121:case 125:case 167:case 188:case 194:case 230:case 231:ql(96);break;case 71:case 73:case 74:case 75:case 76:case 80:case 81:case 82:case 84:case 85:case 86:case 87:case 89:case 90:case 91:case 92:case 94:case 95:case 98:case 99:case 102:case 103:case 105:case 106:case 107:case 109:case 110:case 112:case 113:case 114:case 119:case 123:case 124:case 126:case 127:case 129:case 132:case 133:case 134:case 136:case 137:case 138:case 142:case 143:case 147:case 148:case 150:case 152:case 153:case 154:case 155:case 156:case 157:case 162:case 163:case 164:case 165:case 166:case 168:case 170:case 173:case 174:case 175:case 179:case 181:case 183:case 184:case 185:case 189:case 195:case 198:case 202:case 203:case 204:case 205:case 207:case 210:case 216:case 217:case 224:case 225:case 226:case 228:case 229:case 232:case 233:case 234:case 239:case 241:case 242:case 245:case 248:case 253:case 254:case 257:case 258:case 259:case 260:case 263:case 267:case 268:case 269:case 272:case 273:case 276:ql(144);break;default:Wl=$l}if(Wl==25735||Wl==25797||Wl==25855){Wl=uc(21,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Xf(),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(21,Vl,Wl)}}switch(Wl){case-2:case 19:case 25671:case 25673:case 25674:case 25675:case 25676:case 25678:case 25680:case 25681:case 25682:case 25683:case 25684:case 25685:case 25686:case 25687:case 25689:case 25690:case 25691:case 25692:case 25694:case 25695:case 25697:case 25698:case 25699:case 25702:case 25703:case 25704:case 25705:case 25706:case 25707:case 25709:case 25710:case 25711:case 25712:case 25713:case 25714:case 25719:case 25720:case 25721:case 25722:case 25723:case 25724:case 25725:case 25726:case 25727:case 25729:case 25730:case 25732:case 25733:case 25734:case 25736:case 25737:case 25738:case 25739:case 25742:case 25743:case 25747:case 25748:case 25750:case 25752:case 25753:case 25754:case 25755:case 25756:case 25757:case 25761:case 25762:case 25763:case 25764:case 25765:case 25766:case 25767:case 25768:case 25770:case 25773:case 25774:case 25775:case 25777:case 25779:case 25781:case 25783:case 25784:case 25785:case 25787:case 25788:case 25789:case 25794:case 25795:case 25798:case 25802:case 25803:case 25804:case 25805:case 25806:case 25807:case 25810:case 25816:case 25817:case 25820:case 25822:case 25823:case 25824:case 25825:case 25826:case 25828:case 25829:case 25830:case 25831:case 25832:case 25833:case 25834:case 25839:case 25840:case 25841:case 25842:case 25845:case 25848:case 25849:case 25853:case 25854:case 25856:case 25857:case 25858:case 25859:case 25860:case 25862:case 25863:case 25866:case 25867:case 25868:case 25869:case 25872:case 25873:case 25876:Ga();break;default:Wf()}Il(26),Pl(50),Il(267),jl(),Wf(),ic.endNonterminal(\"PairConstructor\",Vl)}function kl(){switch($l){case 78:ql(279);break;case 139:ql(187);break;case 161:ql(282);break;case 177:ql(178);break;case 187:ql(252);break;case 220:ql(248);break;case 223:ql(180);break;case 266:ql(191);break;case 83:case 122:ql(257);break;case 97:case 249:ql(149);break;case 111:case 222:ql(262);break;case 104:case 130:case 240:ql(165);break;case 135:case 197:case 255:ql(209);break;case 120:case 206:case 256:case 262:ql(167);break;case 121:case 125:case 167:case 188:case 194:case 230:case 231:ql(96);break;case 71:case 73:case 74:case 75:case 76:case 80:case 81:case 82:case 84:case 85:case 86:case 87:case 89:case 90:case 91:case 92:case 94:case 95:case 98:case 99:case 102:case 103:case 105:case 106:case 107:case 109:case 110:case 112:case 113:case 114:case 119:case 123:case 124:case 126:case 127:case 129:case 132:case 133:case 134:case 136:case 137:case 138:case 142:case 143:case 147:case 148:case 150:case 152:case 153:case 154:case 155:case 156:case 157:case 162:case 163:case 164:case 165:case 166:case 168:case 170:case 173:case 174:case 175:case 179:case 181:case 183:case 184:case 185:case 189:case 195:case 198:case 202:case 203:case 204:case 205:case 207:case 210:case 216:case 217:case 224:case 225:case 226:case 228:case 229:case 232:case 233:case 234:case 239:case 241:case 242:case 245:case 248:case 253:case 254:case 257:case 258:case 259:case 260:case 263:case 267:case 268:case 269:case 272:case 273:case 276:ql(144);break;default:Wl=$l}if(Wl==25735||Wl==25797||Wl==25855){Wl=uc(21,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Xf(),oc(21,t,-1),Wl=-3}catch(a){Wl=-2,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(21,t,-2)}}}switch(Wl){case-2:case 19:case 25671:case 25673:case 25674:case 25675:case 25676:case 25678:case 25680:case 25681:case 25682:case 25683:case 25684:case 25685:case 25686:case 25687:case 25689:case 25690:case 25691:case 25692:case 25694:case 25695:case 25697:case 25698:case 25699:case 25702:case 25703:case 25704:case 25705:case 25706:case 25707:case 25709:case 25710:case 25711:case 25712:case 25713:case 25714:case 25719:case 25720:case 25721:case 25722:case 25723:case 25724:case 25725:case 25726:case 25727:case 25729:case 25730:case 25732:case 25733:case 25734:case 25736:case 25737:case 25738:case 25739:case 25742:case 25743:case 25747:case 25748:case 25750:case 25752:case 25753:case 25754:case 25755:case 25756:case 25757:case 25761:case 25762:case 25763:case 25764:case 25765:case 25766:case 25767:case 25768:case 25770:case 25773:case 25774:case 25775:case 25777:case 25779:case 25781:case 25783:case 25784:case 25785:case 25787:case 25788:case 25789:case 25794:case 25795:case 25798:case 25802:case 25803:case 25804:case 25805:case 25806:case 25807:case 25810:case 25816:case 25817:case 25820:case 25822:case 25823:case 25824:case 25825:case 25826:case 25828:case 25829:case 25830:case 25831:case 25832:case 25833:case 25834:case 25839:case 25840:case 25841:case 25842:case 25845:case 25848:case 25849:case 25853:case 25854:case 25856:case 25857:case 25858:case 25859:case 25860:case 25862:case 25863:case 25866:case 25867:case 25868:case 25869:case 25872:case 25873:case 25876:Ya();break;case-3:break;default:Xf()}Il(26),Hl(50),Il(267),Xf()}function Ll(){ic.startNonterminal(\"ArrayConstructor\",Vl),Pl(69),Il(273),$l!=70&&(jl(),G()),Pl(70),ic.endNonterminal(\"ArrayConstructor\",Vl)}function Al(){Hl(69),Il(273),$l!=70&&Y(),Hl(70)}function Ol(){ic.startNonterminal(\"BlockExpr\",Vl),Pl(281),Il(281),jl(),of(),Pl(287),ic.endNonterminal(\"BlockExpr\",Vl)}function Ml(){Hl(281),Il(281),uf(),Hl(287)}function _l(){ic.startNonterminal(\"FunctionDecl\",Vl),Pl(147),Il(246),jl(),$a(),Il(22),Pl(35),Il(98),$l==31&&(jl(),U()),Pl(38),Il(158),$l==80&&(jl(),Dl()),Il(122);switch($l){case 281:Pl(281),Il(281),jl(),of(),Pl(287);break;default:Pl(134)}ic.endNonterminal(\"FunctionDecl\",Vl)}function Dl(){ic.startNonterminal(\"ReturnType\",Vl),Pl(80),Il(254),jl(),Ls(),ic.endNonterminal(\"ReturnType\",Vl)}function Pl(e){$l==e?(jl(),ic.terminal(i.TOKEN[$l],Jl,Kl>fc?fc:Kl),Xl=Jl,Vl=Kl,$l=Ql,$l!=0&&(Jl=Gl,Kl=Yl,Ql=0)):zl(Jl,Kl,0,$l,e)}function Hl(e){$l==e?(Xl=Jl,Vl=Kl,$l=Ql,$l!=0&&(Jl=Gl,Kl=Yl,Ql=0)):zl(Jl,Kl,0,$l,e)}function Bl(e){var t=Xl,n=Vl,r=$l,i=Jl,s=Kl;$l=e,Jl=lc,Kl=cc,Ql=0,Va(),Xl=t,Vl=n,$l=r,$l!=0&&(Jl=i,Kl=s)}function jl(){Vl!=Jl&&(Xl=Vl,Vl=Jl,ic.whitespace(Xl,Vl))}function Fl(e){var t;for(;;){t=hc(e);if(t!=22){if(t!=37)break;Bl(t)}}return t}function Il(e){$l==0&&($l=Fl(e),Jl=lc,Kl=cc)}function ql(e){Ql==0&&(Ql=Fl(e),Gl=lc,Yl=cc),Wl=Ql<<9|$l}function Rl(e){$l==0&&($l=hc(e),Jl=lc,Kl=cc)}function Ul(e){Ql==0&&(Ql=hc(e),Gl=lc,Yl=cc),Wl=Ql<<9|$l}function zl(e,t,r,i,s){throw t>ec&&(Zl=e,ec=t,tc=r,nc=i,rc=s),new n.ParseException(Zl,ec,tc,nc,rc)}function oc(e,t,n){sc[(t<<5)+e]=n}function uc(e,t){var n=sc[(t<<5)+e];return typeof n!=\"undefined\"?n:0}function hc(e){var t=!1;lc=cc;var n=cc,r=i.INITIAL[e],s=0;for(var o=r&8191;o!=0;){var u,a=n<fc?ac.charCodeAt(n):0;++n;if(a<128)u=i.MAP0[a];else if(a<55296){var f=a>>4;u=i.MAP1[(a&15)+i.MAP1[(f&31)+i.MAP1[f>>5]]]}else{if(a<56320){var f=n<fc?ac.charCodeAt(n):0;f>=56320&&f<57344&&(++n,a=((a&1023)<<10)+(f&1023)+65536,t=!0)}var l=0,c=5;for(var h=3;;h=c+l>>1){if(i.MAP2[h]>a)c=h-1;else{if(!(i.MAP2[6+h]<a)){u=i.MAP2[12+h];break}l=h+1}if(l>c){u=0;break}}}s=o;var p=(u<<13)+o-1;o=i.TRANSITION[(p&15)+i.TRANSITION[p>>4]],o>8191&&(r=o,o&=8191,cc=n)}r>>=13;if(r==0){cc=n-1;var f=cc<fc?ac.charCodeAt(cc):0;return f>=56320&&f<57344&&--cc,zl(lc,cc,s,-1,-1)}if(t)for(var d=r>>9;d>0;--d){--cc;var f=cc<fc?ac.charCodeAt(cc):0;f>=56320&&f<57344&&--cc}else cc-=r>>9;return(r&511)-1}r(e,t);var n=this;this.ParseException=function(e,t,n,r,i){var s=e,o=t,u=n,a=r,f=i;this.getBegin=function(){return s},this.getEnd=function(){return o},this.getState=function(){return u},this.getExpected=function(){return f},this.getOffending=function(){return a},this.getMessage=function(){return a<0?\"lexical analysis failed\":\"syntax error\"}},this.getInput=function(){return ac},this.getOffendingToken=function(e){var t=e.getOffending();return t>=0?i.TOKEN[t]:null},this.getExpectedTokenSet=function(e){var t;return e.getExpected()<0?t=i.getTokenSet(-e.getState()):t=[i.TOKEN[e.getExpected()]],t},this.getErrorMessage=function(e){var t=this.getExpectedTokenSet(e),n=this.getOffendingToken(e),r=ac.substring(0,e.getBegin()),i=r.split(\"\\n\"),s=i.length,o=i[s-1].length+1,u=e.getEnd()-e.getBegin();return e.getMessage()+(n==null?\"\":\", found \"+n)+\"\\nwhile expecting \"+(t.length==1?t[0]:\"[\"+t.join(\", \")+\"]\")+\"\\n\"+(u==0||n!=null?\"\":\"after successfully scanning \"+u+\" characters beginning \")+\"at line \"+s+\", column \"+o+\":\\n...\"+ac.substring(e.getBegin(),Math.min(ac.length,e.getBegin()+64))+\"...\"},this.parse_XQuery=function(){ic.startNonterminal(\"XQuery\",Vl),Il(278),jl(),o(),Pl(25),ic.endNonterminal(\"XQuery\",Vl)};var Wl,Xl,Vl,$l,Jl,Kl,Ql,Gl,Yl,Zl,ec,tc,nc,rc,ic,sc,ac,fc,lc,cc};r.getTokenSet=function(e){var t=[],n=e<0?-e:INITIAL[e]&8191;for(var i=0;i<289;i+=32){var s=i,o=(i>>5)*4317+n-1,u=o>>2,a=u>>2,f=r.EXPECTED[(o&3)+r.EXPECTED[(u&3)+r.EXPECTED[(a&15)+r.EXPECTED[a>>4]]]];for(;f!=0;f>>>=1,++s)(f&1)!=0&&t.push(r.TOKEN[s])}return t},r.MAP0=[71,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,17,17,17,17,17,17,17,17,17,18,19,20,21,22,23,24,25,26,27,28,29,26,30,30,30,30,30,31,32,33,30,30,34,30,30,35,30,30,30,36,30,30,37,38,39,40,30,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,40,40],r.MAP1=[108,124,214,214,214,214,214,214,214,214,214,214,214,214,214,214,156,181,181,181,181,181,214,215,213,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,247,261,277,293,309,355,371,387,423,423,423,415,339,331,339,331,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,440,440,440,440,440,440,440,324,339,339,339,339,339,339,339,339,401,423,423,424,422,423,423,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,338,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,423,71,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,17,17,17,17,17,17,17,17,17,18,19,20,21,22,23,24,25,26,27,28,29,26,30,30,30,30,30,31,32,33,30,30,30,30,30,30,30,30,30,30,30,30,30,30,40,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,34,30,30,35,30,30,30,36,30,30,37,38,39,40,30,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,40,40,40,40,40,40,40,40,40,40,40,40,30,30,40,40,40,40,40,40,40,70,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70],r.MAP2=[57344,63744,64976,65008,65536,983040,63743,64975,65007,65533,983039,1114111,40,30,40,30,30,40],r.INITIAL=[1,24578,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290],r.TRANSITION=[37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,36864,36899,36883,36883,36883,36903,36883,36883,36883,36883,36883,36926,36919,36883,36883,36879,36883,36883,36942,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,39727,39739,37318,37318,72403,39755,36991,37318,37318,41289,37087,37318,37318,37010,39794,37318,37318,37318,37318,65657,40192,38525,37318,37318,39813,40192,39835,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39854,39870,37318,37318,37318,46325,37318,37318,36994,37318,61657,45847,57964,37318,37318,61650,62405,62409,50496,39889,37318,37318,41289,37087,37318,44009,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,45833,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39908,62747,37318,37318,37318,42026,65655,37318,73568,65651,65646,39935,62736,68791,45102,45088,45095,68779,39950,36991,37318,37318,41289,39994,37318,45426,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,39370,40016,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,40039,69458,41098,41041,37318,46044,44842,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,47580,37318,37318,37318,48276,40073,37318,37015,71422,71423,40094,57964,37318,37318,67783,40130,40134,40150,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,40186,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,71599,37318,37318,37318,37318,67919,40209,37318,37318,66772,40222,40225,40241,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,71606,73347,37318,37318,37318,37318,37318,40283,40324,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,40344,37116,37202,37162,40378,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,40416,40432,37318,37318,37318,48315,37318,37318,37526,37318,62612,40451,57964,37318,37318,62605,65082,65086,40487,40535,37318,37318,41289,37087,37318,37318,40554,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38131,40575,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,40598,40656,40697,40697,40697,40663,40736,40697,40698,40727,40642,40679,40626,40693,40745,40613,40752,40714,40768,36991,37318,37318,40817,40815,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,40804,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,43152,37318,37318,37318,48276,40833,37318,37318,73511,37318,67919,57964,40868,40872,43155,43156,43784,40888,36991,37318,37318,41289,40924,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,40942,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,43775,37318,37318,37318,48276,37318,37318,37318,37318,69945,73273,57964,40977,41007,44794,41023,73756,40991,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,41058,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,45645,38564,57964,41115,41135,37318,41119,41135,41149,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,37301,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,62620,37318,37318,37318,48276,62315,37318,37318,42112,62617,51150,68655,68669,68671,37318,37318,74e3,41165,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,41215,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,41238,41258,37318,41242,41258,41272,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,69205,37318,62433,37318,68839,45752,41288,37301,44633,37318,37318,37318,37318,73164,72644,41305,72644,72644,41324,38775,41542,41542,58552,65498,52179,65498,65498,52319,41461,41342,41461,41461,60376,37318,37318,37318,37318,37318,37318,57380,44576,38329,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,57802,45001,37318,37318,37318,37318,37318,62575,37318,37318,71516,41385,72644,72644,72644,72645,41405,67865,41542,58857,41542,41542,46917,69302,65498,55881,65498,65498,53308,58621,41461,41722,41461,41461,47863,54854,37318,37318,37318,37318,64802,37318,37318,72642,48855,72644,72644,72644,38767,41542,41439,41542,41542,41444,65497,64981,65498,65498,65498,59803,41461,41460,41461,41461,47863,54854,37318,37318,69109,41478,37318,60498,72644,72644,70521,58547,41542,41542,60742,46770,65498,65498,73471,59798,41461,41461,70944,47288,64766,37318,37318,37507,37318,71005,72644,60920,59569,41542,41542,72922,65498,65498,48896,41461,41461,46878,37318,60844,41498,41222,67506,72644,41518,41541,58729,41559,65498,46559,41593,41462,56939,50451,37318,66947,41614,41423,73664,58829,59801,41638,49498,41664,52412,41686,41702,41738,63218,38594,66255,64873,73961,46828,73161,59759,73663,59797,47605,39543,41802,41825,41848,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,45787,57964,41925,72170,37318,38278,38288,41945,36991,37318,37318,41289,37087,37318,37318,41981,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,69382,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,42002,37318,37318,37318,45026,37318,37318,37318,37318,37318,67919,57964,42022,71555,37318,43019,43028,71570,36991,37318,37318,41289,37087,37318,37318,37010,42042,37318,73045,37318,37318,65657,40192,38525,37318,37318,39335,40192,45833,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,42061,37318,37318,37318,48276,37318,37318,37318,37318,37318,50713,57964,37318,37318,37318,38993,38997,42078,42128,37318,37318,41289,37087,37318,37318,42147,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,42168,62003,69205,37318,37318,37318,68839,37318,37318,39275,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,41324,41542,41542,41542,58552,65498,65498,65498,65498,57854,41461,41461,41461,41461,64567,42190,37318,37318,37318,37318,37318,42212,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,67436,42249,37318,37318,37318,37318,37318,44403,37318,37318,37318,72643,72644,72644,72644,72644,72187,38772,41542,41542,41542,41542,41542,72266,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,51497,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,42270,41542,41542,41542,41542,49331,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,47501,37318,37318,37318,37318,37318,60498,72644,72644,72644,42291,41542,41542,41542,59595,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,63809,37318,37318,37318,49242,42389,37318,37318,42312,41767,44524,59934,42356,42367,45136,42383,44513,42405,42445,37318,37318,40926,42420,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,44142,43528,42807,74542,43714,44329,37031,44584,37054,42466,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,42495,44053,42520,44234,42536,42631,42566,42582,42617,43323,74548,42732,42652,43181,43457,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,74695,44148,43301,42504,44146,43812,43314,42636,43906,44107,42807,42594,42699,42706,42722,43750,42901,42677,43141,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,42748,42962,43618,43603,43820,43354,42764,44271,43892,42788,42804,42826,43918,42855,43210,42882,42898,42920,44134,44337,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,42949,44040,42992,42978,43271,43008,43044,42839,43084,44099,43110,43126,43172,43197,43740,43442,43226,43242,38263,37318,38304,37318,38354,38370,45231,38397,38413,43259,44205,43287,43339,74705,42601,43379,43395,43411,42683,43427,43493,43509,57783,51848,38545,38580,73050,38677,38610,43544,43363,43588,43648,42772,43664,43059,43680,43709,43730,43766,38739,38791,38841,38876,38942,38892,43800,43836,43632,43878,43941,43957,42665,43973,43989,39013,39048,39078,44025,44069,44085,43094,44123,43693,44164,39249,55484,44195,43559,43068,43925,39327,39819,44240,42810,42904,39356,44221,43849,44282,42866,45051,43520,43862,42933,39494,44256,44298,44314,39590,43572,44353,42550,44369,44420,44431,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37091,37318,37318,37318,48276,39140,44447,37318,67184,67184,50155,62190,71955,71957,37318,37089,71946,44465,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,44502,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38381,36956,50180,37398,37414,37436,50351,44540,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,44565,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,44600,38038,38061,37792,39434,44649,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,44665,37459,38432,38451,37229,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,37318,73156,44700,44701,37318,74225,74229,44717,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,46650,37318,37318,65657,40192,38525,37318,37318,39335,40192,44756,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,44775,67647,37318,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,44810,44811,37318,37318,74488,44827,44876,37318,37318,41289,37087,37318,37318,37010,37318,37318,44898,37318,37318,65657,40192,38525,37318,37318,39335,40192,44921,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,44940,44949,37318,37318,37318,45580,37318,37318,37318,37318,37318,67919,57964,44969,44970,37318,37318,68795,44986,45022,37318,37318,41289,37087,37318,37318,37010,37318,37318,72142,37318,37318,65657,40192,38525,37318,37318,39335,40192,38201,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,45042,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45074,37318,37318,37318,37318,48276,59955,37318,37318,37318,59954,73317,57964,37318,45118,37318,37318,45127,45152,36991,37318,37318,41289,37087,37318,37318,37010,45201,37318,37318,37318,37318,65657,40192,38525,37318,37318,45220,40192,45247,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,37318,37318,37318,46105,37318,45266,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,64567,41960,37318,37318,37318,37318,37318,44399,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,63696,45404,37318,37318,37318,37318,37318,44403,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,51497,37318,37318,37318,37318,47785,37318,37318,72642,72644,72644,72644,72644,61913,41542,41542,41542,41542,48876,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,47501,37318,37318,37318,37318,37318,60498,72644,72644,72644,42291,41542,41542,41542,59595,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,45425,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,64567,41960,37318,37318,37318,37318,37318,44399,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,63696,45404,37318,37318,37318,37318,37318,44403,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,51497,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,61913,41542,41542,41542,41542,48876,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,47501,37318,37318,37318,37318,37318,60498,72644,72644,72644,42291,41542,41542,41542,59595,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,64567,41960,37318,37318,37318,37318,37318,44399,68819,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,63696,45404,37318,37318,37318,37318,37318,44403,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,51497,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,61913,41542,41542,41542,41542,48876,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,47501,37318,37318,37318,37318,37318,60498,72644,72644,72644,42291,41542,41542,41542,59595,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,64567,41960,37318,37318,37318,37318,37318,44399,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,63696,45404,37318,37318,37318,37318,37318,45442,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,51497,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,61913,41542,41542,41542,41542,48876,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,47501,37318,37318,37318,37318,37318,60498,72644,72644,72644,42291,41542,41542,41542,59595,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,50781,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,53518,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,64567,41960,37318,37318,37318,37318,37318,44399,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,63696,45404,37318,37318,37318,37318,37318,44403,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,51497,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,61913,41542,41542,41542,41542,48876,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,47501,37318,37318,37318,37318,37318,60498,72644,72644,72644,42291,41542,41542,41542,59595,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,65804,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,48653,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,60153,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,45477,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45496,45525,45509,45539,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,64785,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45555,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,38529,37318,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,45576,74434,37318,74579,74583,74448,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,68588,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,45596,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,37318,37318,37318,37318,37318,45625,45661,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,45833,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,45715,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,45680,45684,37318,37318,45700,45732,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,45768,39048,39078,39105,39169,39156,39172,39188,39089,39218,45803,55484,39265,39291,55476,39311,45819,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,37318,37318,37318,37318,37318,45266,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,45863,37318,37318,44953,53155,45882,37318,52352,45886,39423,67164,45902,45916,45932,45961,45945,45975,45991,37318,45455,41670,46020,50786,46004,46033,45185,46061,46096,44613,41965,46121,46173,46189,46205,46221,46237,46288,65632,46304,37318,37318,68839,40298,50758,37318,41033,53889,69149,37318,46321,73164,72644,72644,72644,46341,45386,41542,41542,59697,52709,65498,65498,65498,64013,57854,41461,41461,41461,53427,64567,41960,63943,65692,37318,55390,46361,44399,46380,37318,58658,46936,46397,46417,72644,72644,59240,58293,46453,46492,41542,41542,52156,55833,61582,46520,65498,65498,64241,46547,52866,68024,41461,41461,68015,46594,47566,46621,37318,37318,46672,37318,46264,44403,37318,40057,46707,46725,63333,41308,72644,46741,63340,42275,46760,41542,46793,66052,61720,45363,46811,65498,49417,68460,65498,46845,46864,41461,51002,52264,41461,46904,52111,46933,46952,37318,46684,52530,67711,37318,59166,64847,72644,54549,51902,61913,46986,41542,41542,73854,71759,72272,41570,65498,54158,68314,46848,58449,41461,41461,47016,47035,51372,47057,47076,37318,47124,37318,47140,47156,71524,72644,42291,47208,67563,41542,59595,47244,47267,65498,59798,47304,47328,41461,53433,37318,47344,37318,61381,37318,72644,47362,47380,41542,47407,47424,65498,47447,64139,63673,47467,64041,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,41347,39062,47486,47520,47551,47602,47622,61702,70577,48688,47605,47638,50030,47449,46829,57656,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,47659,37318,37318,44953,37318,37318,37318,37318,37318,67919,47681,47697,47709,47725,47754,47738,47770,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,67827,50028,47806,47251,47282,47858,50482,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,64567,41960,37318,37318,37318,37318,73633,44399,56082,37318,56083,37318,73164,72644,72644,72644,72644,47879,41363,41542,41542,41542,41542,47922,65493,65498,65498,65498,65498,47955,46825,41461,41461,41461,67629,66428,63696,45404,37318,37318,37318,37318,37318,44403,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,51497,37318,58926,37318,37318,64306,57609,37318,65431,72644,72644,72644,56125,63073,47979,41542,41542,41542,70807,58352,65498,65498,65498,65498,47999,41461,41461,41461,41461,48015,47501,37318,37318,37318,37318,37318,60498,72644,72644,72644,42291,41542,41542,41542,59595,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,65375,48037,48062,48088,48113,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,49548,37318,37318,44953,37318,41780,37318,41482,37318,54642,48139,48155,48170,48186,48215,48199,48231,65689,37318,37318,48273,48292,37318,48311,37318,51503,37318,37318,37318,48331,46709,48623,50028,58342,50938,47282,52495,55465,37318,48349,37318,68839,48369,47665,37318,51866,48388,48408,48427,73007,67026,70205,72644,72644,72644,48444,48468,41542,41542,52709,48501,48532,65498,65498,51441,56912,41461,41461,41461,64567,71585,37318,37318,65402,37318,56580,44399,46364,37873,48553,37318,73164,48570,72644,48622,56986,72644,41363,48639,50032,41542,55261,41542,65493,48669,57135,65498,73731,65498,46825,48704,41598,41461,48739,41461,63696,45404,37318,37318,39025,37318,62106,44403,37318,37318,37318,72643,72644,72644,60958,57260,72645,38772,41542,41542,54046,68350,48760,45363,65498,65498,65498,48780,52828,59800,41461,41461,41461,48796,66903,47863,51534,37318,37318,37318,64199,37318,64441,37318,72642,72644,72644,64854,72644,61913,41542,41542,41542,48812,48876,65497,65498,65498,71839,65498,59803,41461,41461,47470,41461,47863,47501,37318,65142,37318,37318,38723,48831,72644,48851,72644,42291,41542,48871,41542,59595,65498,70398,65498,59798,41461,61249,41461,42174,72114,37318,37318,53513,66795,54283,70249,60920,63484,67969,41542,58586,58373,65498,49897,57220,41461,56936,37318,37318,67331,73163,72644,72800,50031,41542,52475,65498,65498,48892,41461,58211,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,47019,45307,48912,48959,48989,49019,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,70340,49053,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,49089,37318,44953,37318,48599,37585,39665,37318,67919,49107,49123,49137,49153,49182,49166,49196,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,48353,37318,48351,60095,51266,41622,41369,62908,47535,62003,72217,37318,62994,49212,68839,37318,49238,37318,49258,37318,51050,39778,49276,57933,60709,68980,49292,71214,49326,70571,70834,49347,57459,49369,49386,49404,49439,49457,61552,61800,49485,58425,64567,41960,37318,37318,68084,37318,56022,44399,37318,37318,37318,70710,73164,72644,72644,72644,72644,49520,41363,41542,41542,41542,52429,41542,65493,65498,65498,65498,59621,65498,46825,41461,41461,41461,65942,41461,71902,49537,37318,37318,48372,63307,37318,44403,37318,37318,38213,70690,72446,72644,72644,72644,64634,56631,49564,49582,41542,41542,56653,45363,49600,48682,65498,65498,64927,49622,49640,70938,41461,41461,62085,49662,51497,37318,37318,37318,37318,37318,49684,37318,68617,72644,72644,69970,72644,65479,41542,41542,41326,41542,48876,49710,65498,65498,47842,65498,59286,41461,41461,58267,41461,47863,47501,37918,62752,37318,37318,49733,60498,55203,65029,49752,42291,67741,65203,74026,59595,66024,65498,49773,59798,49646,41461,49825,47288,37318,51997,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,49852,37318,73163,72644,60539,50031,41542,72428,65498,65498,49872,41461,70461,56939,61615,37318,72643,60923,41542,57845,65498,49892,41461,49913,72946,72644,50030,54383,59799,54339,40392,49935,49960,49980,50002,57326,50022,50048,50069,50089,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,50115,37318,44953,44449,50137,37318,37060,50171,54108,64429,50196,50210,50226,50255,50239,50269,65689,44626,50285,50301,50316,50332,50367,39233,53108,50384,61398,55344,50419,50467,50512,50528,50544,50594,50610,50651,50667,73014,50694,49260,50729,62653,50756,50774,72085,37318,37318,49073,37318,73164,50802,70730,47643,67373,50837,50866,47931,48477,50890,64147,50934,50954,50974,61240,51024,54206,54678,60300,51066,42093,59527,51082,54503,44179,51132,51166,69514,50121,44486,44480,51182,51198,51247,51290,51306,51322,51357,51407,51457,51482,51519,51581,60231,51607,51635,51659,51675,51432,54188,73942,51691,51713,51750,51800,41753,51824,51840,37318,45167,74354,51864,51882,51918,51962,51982,72643,52018,52052,68101,52072,70228,38772,52096,72897,41542,52136,57279,52172,66566,52195,65498,64541,65498,52222,56902,52245,41461,67612,41461,52280,51497,37891,64079,46636,37318,52344,55168,73701,70986,47906,72644,52368,52401,61913,52428,52445,53191,52464,52511,46777,66351,65498,52546,52580,55946,51008,41461,52615,49469,47863,47501,37318,39657,52645,37318,58484,60498,52664,60195,52685,42291,67536,73887,52704,59595,49809,69760,70602,59798,46578,54457,71795,47288,37318,68581,52725,60872,52759,71031,52775,65989,69245,52802,72675,52206,52852,55908,48097,54237,46605,52882,52918,52936,39919,39478,52952,52973,52992,65449,53038,56792,66087,71786,53088,56765,56939,40362,53104,72643,69978,41542,52310,65498,53124,53817,55637,53146,55211,53171,53289,59799,53207,55668,73239,68122,73294,50578,53242,53264,53284,53305,53324,42326,53340,53356,53372,60496,73658,47451,66435,53400,53449,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,51938,37318,44953,62203,56053,37318,51929,37318,53498,53534,53550,53564,53580,53609,53593,53623,65689,37318,68909,41289,37087,37318,37318,37318,37318,61388,37318,61393,61388,52002,53639,47391,58863,63536,59869,62003,50482,37318,53663,37318,68839,53663,37318,37318,37318,69142,53682,45250,37318,55674,71208,72644,72644,72644,53704,53738,41542,41542,52709,48072,65498,65498,65498,57854,53755,41461,41461,41461,64567,41960,37318,37318,37318,37318,37318,44399,37318,37318,37318,53779,73164,72644,72644,72644,63735,72644,41363,41542,41542,41542,60760,41542,65493,65498,65498,65498,61277,65498,46825,41461,41461,41461,48744,41461,63696,45404,37318,37318,37318,37318,37318,44403,37318,45747,37318,72643,72644,72644,50815,72644,72645,38772,41542,41542,71247,41542,41542,45363,65498,65498,48537,65498,65498,59800,41461,41461,67762,41461,41461,47863,51497,37318,37318,37318,37318,37318,67308,37318,72642,72644,72644,56359,72644,61913,41542,41542,41542,70112,48876,65497,65498,65498,66735,65498,59803,41461,41461,41461,53797,47863,47501,37318,37318,37318,37318,37318,60498,72644,72644,72644,42291,41542,41542,41542,59595,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,54260,37318,37318,37318,73163,67467,72644,48046,41542,73662,48935,65498,59802,53815,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,41851,61054,66378,62339,68189,53833,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,39797,37318,37318,37318,67919,53869,53905,53909,53925,53954,53938,53968,65689,37318,37318,41289,37087,37318,45716,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,46136,46156,37318,37318,68839,37318,37318,37318,37318,40903,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,36975,37318,64085,73164,72644,72644,72644,72644,72644,53984,41542,41542,41542,41542,41542,62136,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,54006,37318,54026,36968,37318,37318,53666,72643,72644,65774,72644,72644,72645,38772,41542,41542,54043,41542,41542,45363,65498,65498,53015,65498,65498,59800,41461,41461,66593,41461,41461,71140,54854,37318,37318,54062,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,54082,64821,37318,60498,72644,72644,62830,58547,41542,41542,58315,46770,65498,65498,71297,59798,41461,41461,54740,47288,59033,54099,69440,44860,37318,54124,64478,44740,41542,54141,70297,54157,61206,54174,54204,58614,54222,56936,53884,37318,41072,40582,71978,54276,54299,54319,56380,73391,73919,41714,55599,54335,56939,50403,59838,42233,54355,53715,54379,54399,59801,54439,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,57408,54473,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,59399,37318,37318,60166,37087,37318,37318,37318,54501,37318,54501,42045,54519,39472,54546,54565,67872,65498,54590,62375,54624,37318,37318,47504,68839,67717,44759,37318,37318,54658,37318,37318,37318,73164,72644,72644,58045,72644,45386,41542,41542,67542,52709,65498,65498,65498,56180,57854,41461,41461,41461,54676,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,68532,57795,73164,72644,72644,72644,72644,72644,54694,41542,41542,41542,41542,41542,54716,65498,65498,65498,65498,65498,54737,41461,41461,41461,41461,41461,54756,71731,37318,37318,37318,37318,37318,37318,37318,37318,74625,57661,72644,72644,72644,72644,72645,38772,54791,41542,41542,41542,41542,45363,54808,65498,65498,65498,65498,59800,54829,41461,41461,41461,41461,47863,54854,37318,37318,66657,37318,37318,37318,37318,72642,72644,72644,72644,58513,38767,41542,41542,41542,63753,41444,65497,65498,65498,65498,70365,59803,41461,41461,41461,60263,47863,54854,37318,37318,49068,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,54946,37318,40844,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,54850,61615,65734,72643,61015,41542,72843,65498,54871,41461,54893,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,51946,37318,44953,37318,54915,54931,37318,54967,54974,54990,55006,55021,55037,55066,55050,55080,65689,37318,37318,51966,38825,37318,37318,37318,54010,55096,55115,48257,55149,55184,55227,55249,41525,55284,55303,63265,55333,37318,37318,37318,40256,37318,55133,55360,37318,37318,37318,55377,52524,73164,55412,59232,72644,55450,55508,48452,55571,48764,46504,61212,71358,65498,52836,55590,72384,66401,41461,55624,55653,37318,55162,48123,45480,68146,44384,37318,37318,55690,55710,55730,55750,50821,72644,73775,55770,55805,41363,53990,41542,54303,55821,55849,65493,53022,65498,61780,55897,55924,46825,56459,41461,71394,55962,55996,47041,37318,37318,37318,54660,56044,56069,49736,37318,37318,37318,56099,56122,72644,56141,70528,58519,56160,58143,41542,63117,55574,66717,50850,52564,65498,63146,65498,56203,56221,51808,41461,56467,41461,56251,56269,54854,55099,56307,46073,56323,59679,56339,62046,56355,52688,61008,58074,70003,51212,41542,66283,70084,56375,56396,56430,65125,61593,46531,69280,62369,41461,56449,56483,56517,56546,63230,66178,37927,69494,47228,56575,66873,56144,56596,56612,70031,45388,56647,56669,56693,56729,56747,56781,56815,56873,56892,51765,56928,56955,37318,37318,61883,53848,56976,57010,57028,57047,57072,57089,57107,57133,57151,57170,57197,57216,56936,60597,37318,40353,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,57236,61615,37318,57252,51333,57276,57295,62141,50073,54877,49498,57311,72644,50030,54383,59799,54339,39384,52786,55523,72337,68506,73161,59759,73663,59797,47605,60497,50030,47449,46829,57331,57347,55938,57396,53268,62159,62339,66862,41867,57424,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,42152,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,57475,57504,57488,57518,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,66211,72644,45386,41542,41542,57534,52709,65498,65498,49388,65498,57854,41461,41461,51784,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,41502,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,52736,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,47060,37318,37318,37318,37318,37318,37318,37318,37318,37318,57438,72644,72644,72644,72644,72645,61918,41542,41542,41542,41542,41542,45363,57553,65498,65498,65498,65498,59800,57571,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,39711,37318,44953,37318,42450,57589,57607,57625,51565,57641,57677,57681,57697,57726,57710,57740,65689,51556,37318,41289,37087,47346,60068,37318,37318,39892,37318,40511,57756,45560,57818,57834,63977,57879,60331,41648,58e3,57914,37318,37318,38814,37318,37318,57949,44882,37318,57925,37318,67807,49037,57985,58044,51257,58061,58115,58131,41542,58165,54574,59660,56705,57154,47834,58193,52256,58227,57863,58246,50918,53781,37318,37318,37318,37318,49029,67667,37318,37318,37318,37318,73164,60986,49757,72644,58283,72644,58309,58331,63863,47408,61105,41542,58368,58389,67585,57555,49801,65498,58422,58441,68033,65185,60256,69351,47041,37318,61839,58465,37318,37318,45281,53688,37318,37318,37318,72643,72644,72644,63835,58500,58535,38772,41542,41542,55268,69704,69729,45363,65498,65498,61489,63774,58568,59800,41461,41461,66754,51734,58602,47863,54854,58637,37318,37318,68901,37318,37318,37318,72642,66219,72644,72644,72644,38767,67986,41542,41542,41542,41444,65497,56713,65498,65498,65498,59803,71875,41461,41461,41461,47863,54899,37318,58657,37318,51097,69488,55754,58674,72644,72644,58694,58724,41542,41542,58745,58769,65498,65498,61143,58793,41461,41461,71804,37318,68935,37318,73352,37318,72644,49303,60920,41542,72302,41542,65498,52557,65498,63673,46570,41461,56936,37318,38852,37318,73163,72644,56106,50031,41542,58818,65498,73828,59802,41461,48715,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,53248,58845,64251,68569,67094,58879,59108,47606,53268,62159,58907,58895,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37319,37318,44953,37318,37318,58923,37318,37038,61423,60807,58942,58956,58972,59001,58985,59015,65689,38336,37318,41289,37087,37318,59031,37318,37318,40327,37318,38338,59049,40328,59079,54363,41369,59103,48516,62003,72217,37318,37318,59124,68839,37318,63001,62951,44924,37318,37318,37318,59142,59160,59182,72644,59203,59223,59256,41542,57091,48815,59272,59718,65498,52599,56799,57854,54450,41461,63259,59312,52629,59347,40308,54027,37318,37318,37318,37318,56028,37318,37318,37318,73164,56849,59370,68264,72644,72644,41363,63477,59429,70290,41542,41542,65493,64678,69828,70882,65498,65498,46825,59459,66600,59489,41461,41461,47041,37318,60820,72604,37318,37318,56414,63654,59509,37318,37318,72643,61043,72644,72644,59543,72645,59566,72479,41542,41542,59585,41542,65528,73531,59619,65498,70373,65498,59800,54834,59637,41461,64050,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,44851,37318,37318,37318,37318,59207,72644,60920,61740,41542,41542,73606,65498,65498,49876,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,61445,73662,65498,59655,59802,56876,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,59676,72644,59695,59713,71108,58802,59734,59756,59775,59794,59819,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,59854,73737,67066,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,67305,48392,37318,54855,59885,59896,59919,66152,67290,59971,59985,60001,60031,60044,60015,65689,47586,44905,38860,60060,60084,37318,60579,48333,40435,72237,60111,60138,60122,60182,60217,60279,60316,65566,60366,50482,58641,37318,37318,48606,72949,68216,73429,60392,69215,60419,37318,60465,60494,60514,60535,72871,72644,60555,49584,41542,47939,52709,70645,70888,65498,70640,57854,54601,60344,63674,41461,59473,64205,46157,37318,60571,37318,37318,37318,60595,37318,37318,45177,73164,60613,72644,53647,72644,72644,41363,60640,41542,61097,41542,41542,58708,70406,65498,55874,65498,65498,50904,58204,41461,60666,41461,41461,47041,37318,37318,37318,37318,40106,37318,37318,44677,60687,37318,60703,72644,72644,46744,72644,58087,60725,41542,41542,41542,60758,74033,52815,65498,65498,65498,52593,61759,41832,41461,41461,41461,53066,69906,47863,49504,60776,60792,64608,60842,51384,60860,60895,60918,60939,60974,61031,61070,38767,70056,61088,61121,61167,41444,65497,61193,61228,55536,61274,59803,61293,61309,61258,72531,61332,54854,48246,61348,61369,61414,58477,51897,68272,58678,65107,61439,53722,46795,49566,61461,54813,65498,61486,61505,72623,61531,61548,61568,67348,61609,37318,37318,61636,61678,47889,61697,61718,52147,61736,61756,56291,61775,61796,55608,61816,46251,61838,37318,61855,73163,61899,68974,61934,52295,73662,61950,58777,71058,61966,62e3,62019,63023,62043,40852,60923,72471,73664,62062,59801,62083,49498,62101,55233,62122,54383,62157,62175,62225,62247,62263,62279,62295,62331,57449,55864,54413,66647,60497,50030,47449,46829,60496,73658,47451,47606,62355,62391,62339,66862,41867,41898,57361,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,62425,44953,37318,41929,62645,37318,37318,67919,62449,62465,62479,62495,62524,62508,62538,62554,62570,62591,51116,40267,62636,62669,37763,62688,62721,40114,62768,62784,62800,62846,62862,62878,62894,62929,62967,62983,37318,74513,46381,42254,37318,40466,50397,50445,63017,37318,37318,63039,73164,72644,63059,63089,55789,45386,47983,63105,51466,69257,65498,47963,66977,63139,63162,41461,63187,63203,63246,60376,37318,65243,37318,54083,37318,65923,63281,37318,49694,37318,63306,63323,63356,63373,63389,72644,67473,63412,41542,63428,63500,41542,54700,59443,65498,63522,63557,65498,56187,53414,41461,63578,63594,41461,68051,48021,46148,37318,59832,55125,37318,37318,37318,37318,37318,63803,72643,72644,70758,59187,72644,72645,38772,41542,55434,57073,41542,41542,45363,65498,74070,65498,63613,65498,59800,41461,60671,41461,63633,41461,47863,54854,37318,37318,63653,44684,37318,37318,37318,72642,72644,72644,72644,57012,55426,41542,41542,41542,41542,66835,62140,65498,65498,65498,65498,63670,41461,41461,41461,41461,63690,54854,67948,37318,37318,37318,37318,63712,72644,63734,72644,46430,41542,63751,41542,56170,65498,63769,65498,41577,41461,51728,41461,47288,63790,37318,37318,37318,37318,62822,66520,60920,41416,71239,41542,47825,58753,65498,61151,71116,41461,72584,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,45334,61615,37318,63825,73373,63858,64501,63879,65885,41461,56530,63897,63917,63966,63993,64029,64066,39534,64101,64126,64163,64186,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,50006,53268,62159,64221,66862,41867,64277,64293,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,66665,44953,37318,37318,68891,37318,64328,64337,67698,39838,64353,64369,64398,64382,64414,65689,37318,69115,41289,37087,37318,37318,63950,37318,51547,37318,37318,37318,44404,64465,64494,64517,49717,67057,64557,72217,37318,64583,37318,68839,37318,40908,40502,64605,50368,64607,37318,37318,62231,64624,67101,73183,63396,64650,67404,68345,48485,71344,64666,64694,64712,71834,64730,57181,60350,61532,53072,55317,64759,37318,64782,64801,45664,45866,38224,37318,37318,37318,37318,73164,72644,72644,52669,72644,72644,41363,41542,41542,67409,41542,41542,65493,65498,65498,55555,65498,65498,46825,41461,41461,68042,41461,41461,49668,53220,61353,37318,37318,37318,64818,59354,57374,68538,37318,72643,72644,64837,72644,72644,72645,64870,41542,64889,41542,41542,41542,68453,65498,51231,64925,65498,65498,59800,41461,61515,64943,41461,41461,47863,54854,59903,37318,37318,37318,37909,37318,37318,72642,72644,72644,64960,72644,56626,41542,41542,73894,41542,42296,65497,65498,65498,64978,65498,59803,41461,41461,71869,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,52897,37318,59144,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,62943,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,56828,64997,65024,65045,64231,59603,54339,38753,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,46305,37318,37318,37318,42426,42429,65068,54066,65102,51341,41369,65123,50559,62003,48585,65141,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,43472,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,65158,41542,41542,41542,41542,41542,66019,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,52976,72644,72644,38767,41542,41542,73801,41542,41444,65497,65498,49370,65498,65498,59803,41461,41461,65182,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,51274,72644,50031,65201,73662,71079,65498,59802,58261,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37806,44953,65219,37318,37420,65239,37318,67919,65259,65275,65288,65304,65333,65317,65347,65689,45409,47790,41289,50740,71165,72077,54775,46691,68943,37318,65363,65398,65418,65465,65515,65551,65582,68491,65617,65675,37318,37318,37318,55396,65708,50432,65732,40783,60879,37318,37318,46888,65750,54125,65773,60201,65790,65831,49353,41542,61177,57056,65855,49783,65498,65874,65901,41461,65939,58230,64743,49003,37318,37318,37318,54951,44007,65958,37318,73691,37318,44004,69414,59740,72644,52378,72644,64962,65976,66005,41542,53183,41542,52448,66040,66074,65498,73466,65498,70854,66103,60245,41461,66119,41461,72537,66911,47041,37318,37318,38803,72980,60478,40954,37318,37480,66138,66168,66202,72644,66235,46345,66251,72645,66271,41542,58177,66299,66320,41542,56559,65498,65535,66344,66367,65498,69808,41461,53763,66394,66417,41461,47863,49919,37318,37318,52902,66451,37318,66495,39978,72642,66512,60519,72644,72644,38767,65839,41542,66536,41542,41444,65497,66557,54721,65498,65498,59803,66582,73488,41461,41461,52328,47223,43477,62672,37318,37318,37318,65382,72644,72644,61681,58099,41542,41542,41542,66616,65498,65498,65498,66632,66681,41461,41461,54252,37318,70963,37318,37318,37318,66698,72644,60920,66716,41542,67896,66733,65498,69783,66751,41461,54608,56936,37318,66770,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,56009,66788,66811,66827,66851,66889,49836,61620,60922,73660,47450,46828,42223,66927,59778,49606,47605,66943,50030,47449,46829,60496,73658,47451,52229,66963,67001,67042,47192,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,42006,44953,41194,40023,67082,63290,67117,67133,67149,67200,67214,67230,67259,67243,67275,67324,37318,67347,72149,37087,37318,39873,37318,37318,73640,55694,39647,45609,60403,67364,67389,66058,64007,71278,67425,72217,39770,40165,39032,68839,68408,37318,37318,37318,37318,39965,41180,37318,67452,67489,70764,72644,72644,67522,67558,63467,41542,52709,51619,65498,67579,65498,57854,67601,63637,67628,41461,60376,37318,67645,37318,67663,67683,37318,56960,37318,65223,37318,37318,73164,52080,69630,72644,72644,72644,67733,60734,73861,41542,41542,53739,65493,58399,51643,65498,65498,63881,46825,67757,59323,41461,41461,66122,50625,37318,37318,67778,47108,48295,37318,38228,67799,44787,57969,67823,72644,72644,69591,55783,67843,67888,41542,41542,63123,65166,73809,53005,65498,65498,64714,62913,63541,72852,41461,41461,59639,69865,70909,48723,67912,59519,37318,37900,37318,51391,37318,67935,72642,72644,52056,59087,72644,38767,41542,41542,67964,67985,41444,65497,65498,65858,58406,65498,59803,41461,41461,68002,41461,47863,54854,37318,68397,37318,68076,37318,60498,68624,72644,68100,65444,66541,41542,68117,51222,72818,65498,55549,59798,53799,41461,51777,47288,37318,37318,40078,37318,68138,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,65915,37954,37318,68162,56840,72644,69566,50031,41542,68178,65498,72029,59802,41461,61324,68205,61615,68239,68255,57031,68288,49964,68312,64170,41461,72350,72946,63842,68330,50053,68366,68384,61620,60922,73660,47450,46828,40170,49310,63506,57898,47605,68424,68440,45370,63171,40400,68476,68554,68604,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,38247,68640,37318,37318,44545,44549,42062,66479,66466,68687,68703,68719,68748,68732,68764,68811,49856,37318,68835,73418,40538,54530,37318,68855,37963,68877,39120,68925,68959,68996,69012,46476,69028,71470,69063,59385,62027,45461,65008,68839,69079,37318,38220,69096,65716,69131,41882,69165,69175,69191,63718,59550,63357,69231,50874,46465,70280,70118,64531,65596,69273,69296,57117,69318,73551,69334,69350,69367,69406,69430,37318,69456,69475,69510,37318,37318,68519,50099,69530,44732,69549,69582,60998,72644,69624,41363,69646,69670,69695,41542,69720,65493,69753,69776,69799,65498,69824,48973,69844,69860,69881,41461,69903,51039,37318,69922,62705,62209,69940,52743,51107,45640,57591,40471,72643,69961,69994,72644,48835,70019,70047,70072,69679,41542,41542,70100,64902,48943,63562,65498,65498,70134,59800,68060,61822,41461,41461,70150,47863,72356,45780,37318,73436,47091,37318,37318,70166,72704,72644,70194,70221,70244,47170,73209,73218,70265,66328,41444,70313,65498,70329,70356,70389,60293,70422,70441,54423,70477,47863,50635,37318,50706,66496,53384,69533,46401,70511,72644,72644,70544,70560,70789,41542,70593,70626,69047,65498,52486,70661,69887,41461,70487,37318,41199,59126,70706,37318,70726,70746,56994,70780,70823,72308,70850,70870,65601,70904,70925,51697,70495,37450,37318,70960,70979,71002,71021,63456,46437,71047,71074,71095,49624,59493,71132,71156,71181,41086,71197,69608,71230,71263,71294,71313,57200,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,65052,64909,59331,55194,71329,71374,71410,71439,71455,66985,70676,53268,62159,62339,66862,71486,71502,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,71540,37318,37318,62697,37318,37318,67919,71622,71638,71652,71668,71697,71681,71711,65689,37318,37318,41289,71727,43243,37318,54635,37318,47100,37318,37318,37318,44404,60624,71747,71775,71820,71855,71891,71918,50345,37318,37318,68839,37318,37318,64312,71934,37318,37318,37318,63901,73164,71973,72644,72644,67498,71994,41542,41542,41542,72010,61470,65498,65498,49441,57854,72045,41461,41461,72052,56235,72068,37318,72101,73266,37318,37318,37318,72130,72165,37318,45286,73164,72644,72186,72203,52036,66700,41363,41543,41542,72253,47431,72288,65493,56731,65499,62067,70610,72324,46825,73981,63597,47312,56493,72372,47041,37318,38557,37318,72400,37318,37318,37318,52648,37318,37318,72643,69558,72644,72644,72644,72645,72419,58149,41542,41542,41542,41542,61134,64696,65498,65498,65498,65498,59800,57573,41461,41461,41461,41461,47863,56406,37318,67179,37318,37318,37318,37318,60902,62813,72644,72644,72644,72644,42340,41542,41542,41542,41542,41444,47816,65498,65498,65498,65498,64261,41461,41461,41461,41461,47863,54766,37318,37318,46970,37318,37318,39394,72444,72644,72644,67855,72462,41542,57537,51591,72495,65498,65498,72517,72553,41461,41461,72576,37318,72600,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,65757,60923,69654,73664,69041,59801,72620,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,72639,72661,49423,56501,60496,73658,47451,47606,53268,68368,54485,72691,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,42479,51143,66186,50148,37318,40519,67015,72720,37318,37318,72736,72765,72749,72779,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72795,49944,41369,72816,50989,62003,72217,37318,49091,63043,68839,37318,37318,37318,37318,37318,52920,37318,37318,73164,47899,72644,73587,72644,45386,72834,41542,56677,52709,56433,65498,65498,72024,57854,55980,41461,64944,41461,60376,37318,37318,37318,37318,37318,55361,37318,37318,37318,53853,37318,73164,72644,72644,72868,72644,72644,41363,41542,41542,72887,41542,41542,65493,65498,65498,72920,65498,65498,46825,41461,56253,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,40788,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,69080,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,72938,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,50678,37318,37318,72976,37318,72965,72996,73030,73066,73080,73096,73125,73109,73141,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,49521,50028,47181,50958,47282,59296,63932,37318,37318,37318,68839,37318,37318,37318,37318,45204,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,48411,37318,37318,37318,37318,73180,72644,72644,72644,72644,72645,73199,41542,41542,41542,41542,41542,56282,65498,65498,65498,65498,65498,56756,41461,41461,41461,41461,41461,47863,54854,37318,68223,37318,37318,37318,37318,37318,72642,72644,73234,72644,56857,38767,41542,66304,41542,41542,73255,65497,65498,73289,65498,72501,59803,41461,61976,41461,70425,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45555,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,73310,37318,39135,37318,37318,37318,46656,37318,73333,55714,73368,64110,41369,73389,53053,62003,72217,37318,37318,37318,73407,48428,48554,40049,37318,37318,37318,37318,37318,73164,72644,61072,72644,52030,45386,41542,41809,41542,73452,65498,65498,58580,63617,57854,41461,41461,73487,55972,60376,73504,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,62308,37318,37318,37318,72643,72644,52957,72644,72644,74050,38772,41542,54792,41542,41542,41542,48926,65498,65498,73527,65498,65498,59800,41461,41461,73547,41461,41461,47863,54854,73567,37318,37318,37318,37318,37318,37318,72642,73584,72644,72644,72644,38767,72904,41542,41542,41542,41444,65497,73603,65498,65498,65498,59803,70455,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,73622,37318,37318,41289,37087,37318,42196,37318,37318,37318,37318,37318,37318,4e4,72644,73656,60650,55287,47282,61984,73680,37318,42131,37318,68839,37318,37318,37318,37318,37318,37318,37318,41786,73164,72644,72644,72644,69600,45386,41542,41542,41542,73717,65498,65498,65498,56205,57854,41461,41461,41461,72560,60376,37318,59949,37318,37318,37318,37318,37318,37318,37318,73753,37318,73164,52385,72644,72644,73772,72644,41363,69737,41542,41542,73791,41542,65493,49792,65498,65498,73825,65498,46825,50572,41461,66682,41461,41461,47041,37318,46080,37318,37318,37318,37318,37318,37318,37318,37318,72643,41389,72644,72644,72644,72645,73844,41542,73877,41542,41542,41542,51420,65498,73910,65498,65498,65498,49986,41461,73935,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,61662,37318,72642,72644,47364,72644,72644,38767,41542,41542,70798,41542,41444,65497,65498,65498,73958,65498,59803,41461,41461,73977,41461,47863,54854,37318,37318,42105,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,73997,37318,37318,40961,37318,60952,72644,60920,74016,41542,41542,57892,65498,65498,71387,41461,41461,56936,37318,60826,37318,73163,72644,74049,50031,68296,73662,65498,74066,59802,53130,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,61870,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,64589,74088,74086,40559,74115,74104,74140,74169,37318,74124,74153,74190,74194,74210,36991,37318,37318,41289,37087,37318,37318,74245,37318,37318,37318,37318,37318,65657,40192,74266,55734,37318,53472,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,72228,37116,37202,37162,74643,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,53226,37318,37318,67919,57964,74289,74334,37318,37318,74319,74303,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,74350,37318,53463,40192,38525,37318,37318,74370,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,74174,37318,37318,37318,37318,37318,52120,37296,74401,74403,37318,37318,74392,74419,36991,37318,37318,41289,37087,37318,37318,74464,37318,37318,74485,37318,37318,59413,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,74504,37116,37202,37162,74529,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,37318,37318,37318,37318,37318,74564,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,69205,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,41324,41542,41542,41542,58552,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,65960,37318,37318,37318,37318,74599,74601,37318,37318,70178,74617,37014,37318,37318,37318,37318,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,74641,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,72228,37116,37202,37162,74643,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,74659,39048,39078,39105,39169,39156,39172,39188,39089,39218,46272,55484,39265,39291,55476,39311,74721,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,1,24578,3,0,0,0,0,0,0,0,180524,180524,180524,180524,0,188717,0,188717,180524,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,180524,180524,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,368,188717,180524,188717,188717,188717,188717,188717,131072,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,139264,147456,188717,188717,188717,188717,188717,188717,188717,1,24578,3,0,0,4366336,0,0,0,180524,188717,302,303,0,0,307,0,0,0,307,0,0,0,4931584,0,0,0,0,0,0,2367,0,0,0,0,0,0,0,0,0,1854,0,0,0,0,0,0,4268032,306,307,0,0,0,0,0,0,0,0,0,0,0,0,0,302,0,0,0,0,0,0,4268032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,262144,0,0,4857856,4874240,0,0,4923392,0,0,0,0,0,0,0,0,0,341,0,0,0,0,0,0,0,0,0,0,5840896,5849088,0,0,0,0,0,0,0,0,0,0,328,0,0,375,375,405,0,0,0,6275072,0,0,0,0,0,0,0,368,368,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,450560,0,0,0,0,4857856,0,0,0,0,0,0,0,0,0,0,0,0,5259264,0,0,0,0,0,0,0,0,5414912,0,5447680,0,5464064,0,5414912,5447680,0,0,5562368,5636096,5685248,0,5750784,5873664,0,0,0,0,5636096,5873664,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5873664,0,0,0,0,0,0,0,0,0,0,0,6275072,0,0,0,914,0,0,0,0,0,4857856,4874240,0,0,0,0,0,0,0,0,0,0,0,0,5447680,0,5464064,0,5480448,5562368,0,0,0,5636096,0,5685248,0,0,5750784,0,0,0,0,0,6275072,0,0,0,0,0,0,0,0,0,0,0,990,0,0,0,4841472,0,0,0,4898816,0,4358144,4358144,4358144,4358144,4358144,4358144,5414912,4358144,5447680,4358144,5464064,4358144,5480448,5562368,4358144,4358144,4358144,5636096,4358144,5636096,4358144,5685248,4358144,4358144,5750784,4358144,4358144,4358144,4358144,4358144,5873664,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4923392,4358144,4358144,4358144,4358144,4358144,0,4923392,0,0,0,0,4366336,0,0,0,0,418,0,0,0,0,0,0,0,0,0,0,0,4276224,1258,0,0,0,5603328,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,341,0,0,5341184,0,5652480,0,0,0,0,0,0,0,0,0,0,4759552,4358144,4358144,4358144,4358144,4358144,5242880,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5341184,4358144,4358144,4358144,4358144,4358144,4358144,0,0,5808128,4358144,4358144,4358144,4825088,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5627904,5652480,4358144,5701632,4358144,4358144,5808128,4358144,4358144,4358144,5668864,0,0,5791744,0,0,0,0,0,0,0,0,0,0,6201344,6242304,6250496,0,0,0,0,6422528,0,0,0,0,0,0,0,0,0,0,351,0,0,0,0,0,0,5619712,0,0,0,0,0,0,0,5726208,5758976,0,0,5791744,0,0,0,0,0,3664,0,0,0,0,0,0,0,0,0,0,5111808,0,0,0,0,0,5283840,0,0,0,0,0,5816320,6291456,0,0,0,0,0,0,0,0,0,0,0,0,2389,0,2391,2392,0,0,0,0,6062080,6463488,0,5398528,0,0,6479872,0,0,0,0,0,0,0,3459,0,0,0,3463,0,0,0,0,0,0,6463488,0,0,0,0,0,0,0,0,0,0,0,0,0,303,0,0,0,0,4931584,4939776,0,0,0,0,0,0,5054464,0,0,0,0,0,0,0,0,5210112,0,0,0,5210112,0,0,0,0,5292032,0,0,0,0,5365760,0,0,0,5455872,0,0,5816320,0,5857280,0,0,0,0,0,0,0,0,0,0,0,0,0,327,401,0,6119424,0,6168576,0,0,0,0,0,6242304,0,6291456,0,6316032,0,0,0,0,0,0,0,4358144,4358144,4931584,4939776,4358144,4358144,4358144,4358144,4358144,4358144,5054464,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5210112,4358144,4358144,4358144,4358144,4358144,4358144,5210112,4358144,4358144,4358144,4358144,5292032,4358144,4358144,4358144,4358144,5365760,4358144,4358144,4358144,5455872,4358144,4358144,4358144,4358144,4358144,4358144,5455872,4358144,4358144,4358144,4358144,4358144,5554176,5570560,5578752,5619712,5668864,4358144,4358144,4358144,5791744,5816320,4358144,5857280,4358144,4358144,4358144,4358144,5816320,4358144,5857280,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,0,0,0,6119424,4358144,6168576,4358144,4358144,4358144,4358144,4358144,6242304,4358144,6291456,4358144,6316032,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6463488,0,4358144,4358144,4358144,4358144,4358144,4358144,6463488,4358144,4358144,4358144,4358144,4358144,0,0,0,0,0,4825088,0,0,0,0,0,0,0,6184960,5316608,0,0,5644288,0,0,0,0,0,0,0,0,0,0,646,755,756,757,0,0,6217728,0,0,0,0,0,0,0,0,0,0,5390336,5308416,5488640,0,0,0,0,0,0,0,0,0,5799936,0,0,5881856,0,0,0,0,0,0,0,0,0,351,352,353,0,0,0,0,5070848,5431296,0,6430720,0,0,0,0,0,0,0,0,5160960,0,0,0,0,0,0,6053888,0,0,0,0,0,5013504,0,0,0,0,0,0,6053888,0,0,0,4358144,4358144,5013504,4358144,4358144,4358144,0,0,0,0,4841472,0,0,0,4898816,0,0,0,0,0,0,1851,0,1853,0,0,0,0,0,0,0,0,4825088,0,0,0,0,0,0,0,0,2786,0,0,0,0,0,0,0,0,2809,0,0,0,0,0,0,0,0,2834,0,0,0,0,0,0,0,0,3154,0,0,0,0,0,0,0,0,3167,3168,0,0,0,0,0,0,0,0,0,6283264,6332416,0,0,0,5881856,0,5382144,0,0,0,0,0,0,0,3665,3666,0,0,0,0,0,0,0,665,0,644,0,0,0,0,0,0,0,6266880,4784128,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4915200,4358144,4956160,4972544,4358144,4358144,4358144,4358144,4358144,4358144,5070848,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5218304,4358144,5267456,4358144,4358144,4358144,6184960,4358144,4358144,6283264,4358144,4358144,6332416,4358144,4358144,4358144,6389760,4358144,4358144,6430720,6438912,4358144,4358144,4358144,6266880,6488064,0,0,0,6266880,0,0,4915200,0,4956160,4972544,0,0,0,0,0,0,5070848,0,0,0,0,0,0,0,5218304,0,5267456,0,0,0,0,5218304,0,5267456,0,0,5308416,5316608,0,0,0,5431296,0,5488640,0,0,0,0,0,0,0,0,6332416,0,0,0,6389760,0,0,6430720,6438912,0,0,0,0,0,0,4784128,0,0,0,4849664,0,0,0,0,0,4915200,0,4956160,4972544,0,0,0,6430720,6438912,4784128,4358144,4358144,4358144,4849664,4358144,4358144,4358144,4358144,4358144,4915200,4358144,4358144,0,0,0,0,0,0,0,0,0,0,302,0,303,306,5218304,4358144,5267456,4358144,4358144,5308416,5316608,4358144,4358144,4358144,5431296,4358144,5488640,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5799936,4358144,4358144,5881856,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6103040,4358144,4358144,4358144,6103040,4358144,4358144,4358144,6184960,4358144,4358144,4358144,6283264,4358144,4358144,6332416,4358144,4358144,0,0,0,0,0,0,0,0,0,368640,0,0,0,0,0,0,2411,0,0,0,0,0,0,0,0,0,1256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4931584,4939776,6488064,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,357,5660672,5718016,0,5865472,0,0,6037504,0,0,6078464,0,0,6340608,0,6455296,0,0,0,0,420,420,420,420,597,597,420,420,420,420,420,420,420,420,420,420,420,420,420,0,420,0,0,0,0,5472256,0,0,0,6209536,0,0,0,0,6176768,0,0,0,0,0,0,6373376,6389760,0,0,6488064,6103040,0,0,0,0,0,0,1850,0,0,0,0,0,0,0,0,0,662,0,0,0,0,0,0,0,0,0,4898816,0,5709824,0,0,0,5283840,0,0,0,0,5251072,0,6414336,5832704,0,5955584,0,0,4358144,4358144,4841472,4358144,4358144,4358144,4898816,4358144,4358144,4358144,4358144,4358144,4358144,0,0,0,0,0,0,303,0,0,0,4358144,5472256,5521408,4358144,4358144,4358144,5595136,5709824,5718016,4358144,5824512,5865472,4358144,4358144,5922816,4358144,4358144,6021120,4358144,6037504,4358144,4358144,6078464,6111232,4358144,6176768,6209536,6234112,4358144,4358144,4358144,4358144,5283840,0,0,0,0,5472256,5521408,0,0,0,0,5595136,5709824,5718016,0,5824512,5865472,0,0,5865472,0,0,5922816,0,0,6021120,0,6037504,0,0,6078464,6111232,0,6176768,6209536,0,6234112,0,0,6234112,0,0,0,0,0,0,0,4358144,4358144,4841472,4358144,4358144,4358144,4898816,4358144,5283840,4358144,4358144,4358144,4358144,5472256,5521408,4358144,4358144,4358144,4358144,5595136,5709824,5718016,4358144,4358144,0,0,0,0,0,5193728,0,0,0,0,0,0,0,0,4358144,4358144,6209536,4358144,6234112,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,573440,0,0,5890048,0,0,0,6160384,0,5095424,5349376,0,5275648,0,0,0,0,0,0,2308,0,0,0,0,0,0,0,0,0,139264,147456,0,0,344064,0,0,0,0,4997120,0,0,0,0,0,0,0,0,0,0,5947392,0,0,0,0,0,3675,0,0,0,0,0,0,0,0,4012,528,5103616,4358144,4358144,5201920,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5890048,4358144,4358144,4358144,6029312,4358144,4358144,4358144,4358144,6160384,4358144,4358144,4358144,4358144,4358144,4358144,6406144,0,5103616,0,0,5201920,0,0,0,0,0,0,0,0,0,0,0,5890048,0,0,0,0,6029312,0,0,0,0,6160384,0,0,0,0,0,0,0,6406144,6406144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4997120,4358144,4358144,5038080,4358144,4358144,4358144,5095424,5095424,5103616,4358144,4358144,5201920,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,0,5013504,0,4358144,6406144,4358144,4358144,4358144,0,0,0,4890624,0,0,0,0,0,0,0,0,3209,0,0,3212,0,0,0,0,0,0,5898240,5963776,0,0,6193152,0,0,5406720,6397952,5300224,5234688,5423104,0,0,0,0,0,3675,0,0,0,0,0,4009,0,4011,528,528,0,0,0,0,0,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58815,57893,57893,0,0,5988352,0,0,6135808,6307840,0,5996544,4800512,0,6356992,0,0,0,0,0,0,2317,2318,0,2320,2321,0,0,0,0,0,0,1207,0,1209,0,0,368,368,0,0,0,0,0,0,0,0,0,710,0,0,0,0,0,0,0,0,5496832,0,0,0,0,0,5611520,0,0,0,0,0,0,0,3673,0,0,0,0,0,0,0,0,693,0,0,0,0,0,0,368,4947968,5021696,5529600,0,0,5169152,0,0,0,4800512,4808704,4358144,4358144,4890624,4358144,4947968,4358144,4358144,4358144,5898240,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6307840,4358144,4358144,6356992,6381568,5185536,0,5234688,5300224,0,0,5406720,5529600,0,0,0,0,5898240,0,0,0,0,0,0,0,0,6307840,0,0,6356992,6381568,6397952,4800512,4808704,4358144,4358144,4890624,4358144,4947968,4358144,4358144,4358144,5046272,4358144,4358144,4358144,4358144,5185536,4358144,5234688,5300224,4358144,4358144,5406720,5529600,4358144,4358144,4358144,4358144,5898240,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6307840,4358144,4358144,6356992,6381568,6397952,5021696,4358144,4358144,5021696,0,0,0,4980736,0,0,0,0,0,5373952,5734400,6045696,0,0,0,0,421,421,421,421,421,421,421,421,421,421,421,421,421,0,421,0,6258688,6447104,0,0,6127616,0,6348800,5906432,0,5537792,3675,4882432,0,0,0,0,0,0,2329,0,0,0,0,0,0,0,0,0,1195,0,0,0,0,0,0,0,0,0,0,5939200,0,0,5677056,6365184,4866048,0,6070272,5545984,5152768,0,0,0,0,0,3675,0,0,0,0,4008,0,4010,0,528,4013,6144e3,4358144,4866048,4882432,4358144,4980736,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5324800,5373952,5537792,5545984,5586944,5734400,5971968,4358144,6045696,4358144,6070272,4358144,4358144,5537792,5545984,5734400,5971968,4358144,6045696,4358144,6070272,4358144,4358144,4358144,6348800,0,4866048,4882432,0,0,0,0,644,0,0,0,803,0,808,0,794,0,820,0,0,0,0,735,0,0,0,0,0,0,0,0,0,0,0,450560,450560,0,0,450560,0,6045696,0,6070272,0,0,0,0,6348800,0,4866048,4882432,0,4980736,0,0,0,0,0,0,0,0,5324800,5373952,5537792,5545984,5586944,5734400,5971968,0,6045696,0,6070272,0,0,0,0,6348800,4358144,4866048,4882432,4358144,4980736,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6299648,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6348800,4358144,6144e3,0,6144e3,0,4988928,5005312,0,0,0,0,5775360,0,0,0,0,749,0,0,0,0,0,0,0,0,0,0,759,0,0,3675,0,0,0,0,0,0,5693440,0,6496256,5144576,5136384,0,5914624,4358144,6324224,0,0,5005312,0,0,0,512e4,5136384,0,0,0,0,0,0,0,1252,0,0,0,748,1259,0,0,0,0,0,0,0,6324224,0,0,5005312,0,0,0,512e4,5136384,0,0,0,0,0,0,6463488,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6324224,5914624,5914624,0,0,0,0,0,5513216,5783552,0,3675,0,0,0,0,0,0,0,0,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4931584,4939776,4358144,4358144,4358144,0,6053888,0,0,0,0,0,0,0,0,6012928,4358144,4358144,5013504,4358144,4358144,0,0,0,0,0,0,0,0,0,0,0,1153,0,0,0,0,0,3675,0,0,4006,4007,0,0,0,0,528,528,528,528,3220,528,528,528,528,528,528,3227,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6053888,4358144,4358144,0,0,5013504,0,0,0,0,0,312,414,0,0,139264,147456,0,0,0,0,0,0,0,6103040,0,0,0,6184960,0,0,0,6283264,0,0,6332416,0,0,0,6389760,4358144,4358144,4358144,4358144,4358144,4358144,6053888,4358144,4358144,4358144,0,0,0,0,5193728,0,0,0,0,761,0,0,0,0,0,0,0,0,0,0,528,528,528,3700,528,528,528,5742592,0,0,0,0,0,4358144,4907008,4358144,5079040,4358144,5226496,4358144,5742592,4358144,4358144,4358144,6094848,4358144,5062656,0,0,0,0,0,4358144,4358144,6094848,0,4907008,0,5079040,0,5226496,0,5742592,0,0,0,6094848,0,0,0,0,0,3675,0,4005,0,0,0,0,0,0,528,528,528,528,4155,528,528,528,528,528,528,4907008,0,5079040,0,5226496,0,5742592,0,0,0,6094848,0,4358144,4907008,4358144,5079040,5062656,4358144,4358144,4358144,4358144,4358144,0,5062656,0,0,0,0,0,6225920,0,5062656,4358144,4358144,4358144,4358144,4358144,913,5063569,913,913,913,913,913,6226833,989,5063645,0,0,0,4816896,4358144,4358144,4358144,4358144,6086656,4816896,0,0,0,0,6086656,4816896,4358144,4358144,4358144,4358144,6086656,0,5087232,0,5931008,4358144,5332992,5980160,4358144,0,5332992,5980160,0,0,5332992,5980160,0,4358144,5332992,5980160,4358144,0,0,0,0,787,0,0,0,0,806,0,0,0,0,0,0,0,3166,0,0,0,0,0,0,0,0,327,0,0,0,0,0,0,0,5439488,5128192,4358144,5128192,0,5128192,0,5128192,4358144,0,4358144,0,0,4358144,0,4358144,0,0,4358144,6004736,6004736,6004736,6004736,6004736,0,0,0,1,24578,3,0,0,0,0,0,0,0,0,0,0,0,0,0,339,340,0,0,221652,221652,221652,468,468,468,468,468,468,468,468,468,468,468,468,221652,468,221652,221652,221652,468,221652,221652,221652,221652,221652,221652,221652,221652,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1162,0,0,1164,0,0,0,0,0,0,0,0,1311,0,0,0,0,0,1179,0,0,0,762,0,0,0,0,0,0,0,0,0,0,0,0,0,383,0,0,0,0,1064,0,0,0,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,913,913,913,4358144,4358144,1064,0,0,0,0,0,0,0,0,0,0,0,0,0,507,514,514,1,24578,3,0,0,0,0,0,0,0,0,0,0,0,237568,302,0,306,237568,0,0,0,0,0,0,0,0,0,0,0,0,0,643,0,0,4268032,98304,307,0,0,0,0,0,0,0,0,0,0,0,0,0,661,0,0,4210979,24578,3,0,0,297,0,0,0,0,297,0,0,0,0,0,0,0,3685,0,0,0,3688,3689,0,0,0,0,0,245760,245760,245760,0,0,0,0,139264,147456,245760,245760,0,0,245760,0,4210979,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1164,1297,0,0,0,0,0,0,1304,0,0,0,0,0,2859,0,0,0,0,0,0,0,0,0,2867,368,368,0,0,0,303104,0,0,0,0,0,0,0,0,0,0,647,0,0,0,0,528,1158,0,4857856,4874240,0,0,4923392,0,0,0,0,0,0,0,0,0,379,0,0,0,0,371,0,4358144,4358144,4358144,4358144,0,1984,0,0,0,4825088,0,0,0,0,0,0,0,1253,0,0,0,0,0,0,0,0,2399,2400,0,0,2402,0,0,0,0,0,262144,262144,262144,0,0,0,0,0,0,0,0,0,0,0,0,3449,0,0,0,0,0,262144,262144,0,262144,0,0,0,139264,147456,262144,0,0,0,0,0,0,2344,2345,0,0,0,0,0,0,0,0,798,0,0,0,0,0,809,0,0,0,262144,0,262738,262738,262738,262738,262738,262738,262738,262738,262738,262738,262738,262738,262738,0,262738,0,0,262738,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1177,0,0,0,0,0,0,0,0,0,0,0,4086,528,528,528,528,0,270336,0,0,0,0,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5177344,278528,278528,0,0,131072,278528,0,0,0,0,278528,0,0,0,0,278528,278528,278528,278528,278528,278528,278528,278528,278528,278528,278528,278528,278528,278528,0,278528,0,0,278528,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1205,1206,0,0,0,0,0,368,368,0,0,0,0,0,0,0,0,0,0,0,712,0,0,0,0,1,24578,3,0,0,4366336,0,0,0,0,0,302,638,0,0,0,0,1218,0,0,0,0,1223,0,0,0,0,0,0,0,1752,0,0,0,1755,0,0,1758,0,4268032,306,641,0,0,0,0,0,0,0,0,0,0,0,0,0,662,0,0,528,0,1430,0,0,0,0,0,4857856,4874240,0,0,0,0,0,0,0,0,3686,0,0,0,0,0,0,0,0,3826,0,3675,0,0,0,0,0,0,6275072,0,0,0,0,0,0,0,0,0,0,0,1525,0,0,0,0,0,3675,4004,0,0,0,0,0,0,0,528,528,4209,528,4210,528,528,528,528,528,1,24578,3,0,0,0,0,0,0,0,0,0,0,0,286720,303,0,307,286720,0,0,0,0,0,0,0,0,0,0,0,0,0,663,0,792,0,307,0,0,0,0,0,0,307,139264,287139,0,0,0,307,0,0,0,0,1234,0,0,0,0,0,0,0,0,0,0,0,2414,0,0,0,0,0,307,1,24578,3,0,0,4366336,0,0,0,0,0,302,66175,0,0,0,0,1250,0,0,0,1255,0,0,0,0,0,0,0,661,0,0,0,0,0,0,0,0,378,0,363,0,0,0,0,0,4268032,306,98946,0,0,0,0,0,0,0,0,0,0,0,0,0,728,0,0,0,0,122880,0,4268032,0,0,0,0,0,0,0,0,0,0,0,0,2310144,0,0,0,0,307,4857856,4874240,0,0,4923392,0,0,0,0,0,0,0,0,0,528,528,3699,528,528,528,528,1,24578,3,0,0,0,0,0,0,0,0,0,0,0,0,304,0,304,0,304,304,304,295216,304,304,304,295216,295216,304,295216,304,304,131072,304,304,304,304,304,295216,304,304,304,304,295216,304,304,304,304,295286,295216,295216,295216,295216,295216,295216,304,304,304,304,304,0,0,304,304,295216,304,304,304,304,304,304,304,304,304,304,304,304,369,304,0,295216,304,295286,295216,295216,295216,304,304,304,295286,139264,147456,295216,295216,304,304,295216,295216,295216,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,295216,295286,295286,295286,295286,295286,295286,295286,295286,295286,295286,295286,295286,295286,295216,295216,295216,295216,295216,304,304,304,295216,304,304,304,304,304,304,304,295216,374,304,304,304,304,304,304,304,295216,304,295216,295216,295216,295216,295216,295216,295216,295216,295286,295286,295286,295286,295286,295286,295216,295216,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1267,0,0,0,0,0,0,0,0,0,0,0,3170,0,0,0,0,0,0,0,6275072,0,0,0,0,0,0,0,4399804,4399804,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4399804,0,0,319488,0,0,0,0,0,0,319488,319488,0,0,0,0,0,0,0,3696,0,528,528,528,528,528,528,528,528,528,528,528,3849,528,528,528,319488,0,0,0,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,0,24578,3,0,0,4366336,253952,0,0,0,0,302,303,0,0,0,0,1282,0,0,0,0,0,0,0,0,0,0,0,1241,0,0,0,0,368,425984,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4399805,0,0,0,6275072,0,0,0,0,0,0,0,368,0,0,0,0,0,0,2357,0,0,0,0,0,0,0,0,0,3461,0,0,0,0,0,0,0,327680,327680,327680,0,0,0,0,0,0,0,0,0,0,327680,327680,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,327680,327680,327680,327680,327680,335872,327680,327680,327680,335872,327680,327680,327680,327680,327680,327680,49723,0,0,0,0,0,0,0,49723,49723,0,0,0,0,0,0,0,1270,0,0,0,0,0,0,0,0,0,5627904,5652480,0,5701632,0,0,0,0,0,6275072,0,0,0,0,0,0,0,0,0,0,49152,990,0,0,0,0,0,3683,0,0,0,0,0,0,0,3690,0,0,0,0,0,3836,0,0,0,0,0,0,0,0,0,0,5242880,0,0,0,0,0,0,0,5341184,0,0,0,0,0,344064,344064,344064,0,0,0,0,0,0,0,0,0,0,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,352256,352256,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1309,0,0,0,0,0,0,0,0,1315,0,0,0,0,371,0,0,0,0,0,0,0,0,0,0,0,3438,0,0,3440,0,1,292,3,0,0,0,298,0,0,0,0,0,0,0,0,0,528,3698,528,528,528,3701,528,0,360448,360448,360448,0,0,0,0,0,0,0,0,0,0,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,1,0,3,155942,155942,296,0,636,0,0,0,302,303,0,1230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,368,528,528,1376,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2460,528,0,914,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60322,57943,57943,57943,57943,59004,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,57893,3998,0,4e3,528,528,528,528,58773,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,0,57916,57916,57916,57916,57916,528,528,528,2437,528,528,528,528,528,528,528,528,528,528,528,528,528,2446,528,2448,0,0,0,57893,57893,57893,57893,57893,57893,57893,59856,57893,57893,57893,57893,57893,57893,60873,57893,57893,57893,57893,57893,57893,57893,57893,57893,61213,57893,57893,57893,57893,61214,61215,57893,57893,57893,57893,60300,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,0,0,0,0,0,60432,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,0,0,0,3191,0,0,0,0,0,0,0,0,0,0,0,0,319,0,0,0,0,0,0,3682,0,0,0,0,0,0,0,0,0,0,0,0,338,0,0,0,528,57893,61069,57893,57893,57893,61072,57893,57893,57893,57893,57893,57893,57893,57893,57893,58331,0,57916,57916,57916,57916,57916,61080,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59358,61101,57916,57916,57916,57916,57916,57916,57916,57916,57916,61109,57916,57916,57916,57916,57916,57916,60360,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,60707,57943,57943,57943,57943,57943,57943,57943,57943,57943,61138,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59568,57943,57943,57943,528,528,3852,3853,528,528,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,58291,57893,57893,57943,57943,57943,61251,57943,57943,57943,57943,61252,61253,57943,57943,57943,57943,57943,57943,57943,58468,57943,57943,57943,57943,528,528,528,898,0,0,3675,0,0,3929,0,0,0,0,0,0,0,0,0,0,695,0,0,0,0,368,528,528,57893,57893,57893,57893,57893,57893,61299,57893,57893,57893,57893,57893,57893,61305,57893,57893,57893,61309,57893,57916,57916,57916,57916,57916,57916,61315,57916,57916,57916,57916,57916,57943,57943,61128,57943,57943,57943,57943,57943,57943,57943,57943,57943,60066,57943,57943,57943,57943,57943,57943,57916,57916,61321,57916,57916,57916,61325,57916,57943,57943,57943,57943,57943,57943,61331,57943,528,1951,528,2283,528,57893,59394,57893,59632,57893,2290,0,2291,0,0,0,0,0,417792,0,417792,0,0,0,0,310,0,0,0,0,0,316,0,0,0,0,0,0,0,0,0,0,1328,0,0,0,0,0,528,528,57893,57893,57893,57893,61511,57893,57893,57893,57893,57893,57893,57893,57893,57893,58826,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,61524,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,60024,57943,60026,57943,57943,57943,57943,57943,61537,57943,57943,57943,57943,57943,57943,57943,57943,57943,0,0,0,0,0,0,4244,528,528,528,57893,57893,57893,57893,57916,57916,57916,57916,57943,57943,57943,57943,0,0,0,0,1310,0,0,0,0,0,0,0,0,0,1316,1269,0,528,528,57893,57893,57916,57916,57943,57943,0,528,57893,57916,57943,0,528,57893,57916,57943,0,528,57893,57916,57943,0,0,0,0,376832,376832,376832,0,0,0,0,0,0,0,0,0,0,0,0,346,0,0,0,0,420,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1731,0,0,0,0,0,0,0,0,0,0,0,648,0,0,0,0,0,0,0,0,4268780,0,0,0,0,0,0,0,0,0,0,0,0,6119424,0,6168576,0,0,0,0,308,0,0,0,0,0,0,0,0,0,0,0,0,354,355,356,0,0,393685,393685,393685,0,0,0,0,0,0,0,0,0,0,0,0,368,0,0,245760,0,0,475136,0,0,0,0,0,0,0,0,0,0,0,0,0,761,0,0,305,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,411,0,421,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,0,1731,0,0,0,0,1738,0,1740,0,0,0,0,0,0,3180,0,0,0,0,0,0,0,0,0,352256,0,352256,352256,0,0,0,305,306,307,0,0,0,0,0,0,0,0,0,0,0,0,0,1185,0,0,0,0,0,748,421,0,0,0,0,0,0,0,0,0,0,0,337,0,0,0,0,57916,0,0,0,748,57893,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,528,3413,57893,57893,60760,1725,0,0,0,1731,1732,0,0,0,0,0,0,0,0,0,0,741,0,0,0,0,0,0,0,0,1252,1825,0,0,0,0,1259,1259,0,0,0,0,0,0,0,4083,0,4085,0,528,528,528,528,528,528,528,528,528,528,3848,528,528,528,528,0,0,2293,1732,2294,0,0,0,0,0,0,0,0,0,0,0,368,368,1212,0,0,528,528,2499,2932,0,0,0,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59860,528,528,528,2932,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,0,0,2592,0,0,417792,0,0,0,0,417792,0,0,0,0,0,310,0,310,0,0,0,0,0,4151,4152,4153,528,528,528,4156,528,4158,528,528,0,0,0,0,0,0,57893,57893,57893,57893,57893,57893,57893,60283,417792,417792,0,0,417792,417792,417792,417792,417792,417792,417792,417792,417792,417792,417792,417792,418102,417792,417792,418101,418102,417792,417792,418101,417792,418101,417792,0,417792,0,0,0,0,417792,0,0,0,0,0,0,0,0,0,0,0,310,310,310,0,418101,417792,1,24578,3,0,0,4366971,0,0,0,0,0,302,303,311296,4399805,0,0,0,311296,0,0,0,0,0,0,0,0,0,0,800,0,0,0,0,0,0,0,0,4268032,306,307,0,434176,0,0,0,0,0,0,0,0,0,0,0,381,0,384,0,0,0,0,0,6275072,0,0,0,0,0,0,0,0,4399805,0,0,0,0,0,363,0,0,0,0,0,0,368,0,296,0,0,914,913,913,913,913,913,4858769,4875153,913,913,913,913,913,913,913,913,913,5628817,5653393,913,5702545,913,913,913,913,5448593,913,5464977,913,5481361,5563281,913,913,913,5637009,913,5686161,913,913,5751697,913,6275985,913,913,913,913,913,913,913,913,913,0,0,990,989,989,989,989,6087645,4817809,4359057,4359057,4359057,4359057,6087569,0,5087232,0,5931008,4358144,989,989,5260253,989,989,989,989,989,989,989,989,5415901,989,5448669,989,5465053,989,5481437,5563357,989,989,989,5637085,989,5686237,989,989,5751773,989,989,989,989,989,989,6300637,989,989,989,989,989,989,989,989,989,989,5112797,989,989,989,989,989,989,5874653,989,989,989,989,989,989,989,989,989,989,989,6276061,989,989,989,4858845,4875229,989,989,989,989,989,989,989,989,989,989,989,989,989,5178333,989,989,4359057,5637009,4359057,5686161,4359057,4359057,5751697,4359057,4359057,4359057,4359057,4359057,5874577,4359057,4359057,4359057,4359057,5186449,4359057,5235601,5301137,4359057,4359057,5407633,5530513,4359057,4359057,4359057,4359057,4359057,6300561,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,5112721,4359057,4359057,4359057,4359057,989,989,5809041,4359057,4359057,4359057,4826001,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,5178257,4359057,4359057,4359057,4359057,4359057,5243793,4359057,4359057,4359057,4359057,4359057,4359057,4359057,5342097,4359057,4359057,4359057,4359057,4359057,4359057,5415825,4359057,5448593,4359057,5464977,4359057,5481361,5563281,4359057,4359057,0,0,0,913,913,913,913,913,913,913,913,913,913,913,4932497,4940689,913,913,6464401,0,0,0,0,989,989,989,989,989,989,989,989,989,4998109,989,989,5039069,989,989,989,5096413,989,5456861,989,989,989,989,989,5555165,5571549,5579741,5620701,5669853,989,989,989,5792733,5817309,989,5858269,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,4359057,4359057,4359057,6120413,989,6169565,989,989,989,989,989,6243293,989,6292445,989,6317021,989,989,989,989,989,5071837,989,989,989,989,989,989,989,5219293,989,5268445,4359057,4359057,4932497,4940689,4359057,4359057,4359057,4359057,4359057,4359057,5055377,4359057,4359057,4359057,4359057,4359057,4359057,6054801,4359057,4359057,4359057,0,0,0,0,5193728,0,4359057,5456785,4359057,4359057,4359057,4359057,4359057,5555089,5571473,5579665,5620625,5669777,4359057,4359057,4359057,5792657,5817233,4359057,5858193,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,0,5013504,0,6120337,4359057,6169489,4359057,4359057,4359057,4359057,4359057,6243217,4359057,6292369,4359057,6316945,4359057,4359057,4359057,5194641,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4907008,0,5079040,6094848,6430720,6438912,0,0,0,0,0,0,4785041,913,913,913,4850577,913,913,913,913,913,913,5055377,913,913,913,913,913,913,913,913,5211025,5489553,913,913,913,913,913,913,913,913,913,5800849,913,913,5882769,913,913,913,913,5219217,913,5268369,913,913,5309329,5317521,913,913,913,5432209,913,913,913,6333329,913,913,913,6390673,913,913,6431633,6439825,0,0,0,0,0,0,0,393685,0,393685,393685,393685,393685,393685,393685,393685,393685,393685,393685,393685,393685,393685,393685,0,393685,0,4785117,989,989,989,4850653,989,989,989,989,989,4916189,989,4957149,4973533,989,989,989,6030301,989,989,989,989,6161373,989,989,989,989,989,989,989,6325213,4359057,4359057,5006225,4359057,4359057,4359057,5120913,5137297,989,989,5309405,5317597,989,989,989,5432285,989,5489629,989,989,989,989,989,989,5325789,5374941,5538781,5546973,5587933,5735389,5972957,989,6046685,989,6104029,989,989,989,6185949,989,989,989,6284253,989,989,6333405,989,989,989,6390749,989,989,6431709,6439901,4785041,4359057,4359057,4359057,4850577,4359057,4359057,4359057,4359057,4359057,4916113,4359057,4358144,4358144,4358144,4358144,4358144,913,913,913,913,913,0,0,0,0,0,0,0,319488,0,0,0,0,0,0,0,0,0,0,319488,0,4957073,4973457,4359057,4359057,4359057,4359057,4359057,4359057,5071761,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,6275985,4359057,4359057,4359057,4359057,4359057,4359057,4359057,5219217,4359057,5268369,4359057,4359057,5309329,5317521,4359057,4359057,4359057,5432209,4359057,5489553,4359057,4359057,4359057,5211025,4359057,4359057,4359057,4359057,5292945,4359057,4359057,4359057,4359057,5366673,4359057,4359057,4359057,4359057,6390673,4359057,4359057,6431633,6439825,4358144,4358144,4358144,6266880,6488064,913,913,913,6267793,6488977,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,730,4358144,4358144,4358144,0,0,913,913,4842385,913,913,913,4899729,913,913,913,913,913,913,913,6103953,913,913,913,6185873,913,913,913,6284177,913,913,5473169,5522321,913,913,913,913,5596049,5710737,5718929,913,5825425,5866385,913,913,913,913,5243793,913,913,913,913,913,913,913,5342097,913,913,913,0,0,989,989,989,4826077,989,989,989,989,989,989,989,0,913,4359057,4359057,4359057,4359057,4359057,4858769,4875153,5923729,913,913,6022033,913,6038417,913,913,6079377,6112145,913,6177681,6210449,913,6235025,913,913,913,913,6243217,913,6292369,913,6316945,913,913,913,913,913,913,913,4998033,913,913,5038993,913,913,913,5096337,5104529,5284829,989,989,989,989,5473245,5522397,989,989,989,989,5596125,5710813,5719005,989,5825501,5866461,989,989,5923805,989,989,6022109,989,6038493,989,989,6079453,6112221,989,6177757,6210525,989,6235101,989,989,989,989,989,989,989,4359057,4359057,4842385,4359057,4359057,4359057,4899729,4359057,5284753,4359057,4359057,4359057,4359057,5473169,5522321,4359057,4359057,4359057,4359057,5596049,5710737,5718929,4359057,4359057,4359057,6103953,4359057,4359057,4359057,6185873,4359057,4359057,4359057,6284177,4359057,4359057,6333329,4359057,4359057,4923392,4358144,4358144,4358144,4358144,4358144,913,4924305,913,913,913,913,4366336,0,0,0,0,1779,0,0,0,0,0,0,0,0,0,0,0,3156,0,3157,0,0,5825425,5866385,4359057,4359057,5923729,4359057,4359057,6022033,4359057,6038417,4359057,4359057,6079377,6112145,4359057,6177681,6210449,4359057,6235025,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4358144,4358144,4358144,913,913,913,913,913,5194641,913,913,913,913,913,913,913,913,913,913,988,989,989,989,989,989,4358144,4358144,6029312,4358144,4358144,4358144,4358144,6160384,4358144,4358144,4358144,4358144,4358144,4358144,6406144,913,913,913,913,6325137,989,989,5006301,989,989,989,5120989,5137373,989,989,989,989,989,6226909,4359057,5063569,4359057,4359057,4359057,4359057,4359057,6226833,0,6086656,913,913,5202833,913,913,913,913,913,913,913,913,913,913,913,5890961,913,913,913,5555089,5571473,5579665,5620625,5669777,913,913,913,5792657,5817233,913,5858193,913,913,913,913,5292945,913,913,913,913,5366673,913,913,913,5456785,913,913,913,913,913,6308753,913,913,6357905,6382481,6398865,4801501,4809693,989,989,4891613,913,913,6030225,913,913,913,913,6161297,913,913,913,913,913,913,913,6407057,5104605,989,989,5202909,989,989,989,989,989,989,989,989,989,989,989,5891037,6407133,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4998033,4359057,4359057,5038993,4359057,4359057,4359057,5325713,5374865,5538705,5546897,5587857,5735313,5972881,4359057,6046609,4359057,6071185,4359057,4359057,5096337,5104529,4359057,4359057,5202833,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4358144,4358144,4358144,4358144,5890961,4359057,4359057,4359057,6030225,4359057,4359057,4359057,4359057,6161297,4359057,4359057,4359057,4359057,4359057,4359057,5800849,4359057,4359057,5882769,4359057,4359057,4359057,4359057,4359057,4359057,5628817,5653393,4359057,5702545,4359057,4359057,5809041,4359057,4359057,4359057,4359057,6407057,4358144,4358144,4358144,913,913,913,4890624,0,0,0,0,0,0,0,0,327680,0,0,0,0,0,0,0,0,319488,0,0,0,0,319488,0,319488,6397952,4801425,4809617,913,913,4891537,913,4948881,913,913,913,5047185,913,913,913,913,913,913,913,6300561,913,913,913,913,913,913,913,913,913,913,913,913,6120337,913,6169489,913,5186449,913,5235601,5301137,913,913,5407633,5530513,913,913,913,913,5899153,913,913,913,913,913,913,6054801,913,913,913,989,989,5014493,989,989,989,989,989,5194717,989,989,989,989,989,989,989,989,4359057,4359057,989,4948957,989,989,989,5047261,989,989,989,989,5186525,989,5235677,5301213,989,989,989,5211101,989,989,989,989,5293021,989,989,989,989,5366749,989,989,989,5243869,989,989,989,989,989,989,989,5342173,989,989,989,989,989,989,6464477,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,6325137,5914624,5915537,0,0,0,5407709,5530589,989,989,989,989,5899229,989,989,989,989,989,989,989,989,6308829,989,989,6357981,6382557,6398941,4801425,4809617,4359057,4359057,4891537,4359057,4948881,4359057,4359057,4359057,5047185,5899153,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,6308753,4359057,4359057,6357905,6382481,6398865,5021696,4358144,4358144,5022609,913,913,0,4980736,0,0,0,0,0,5373952,5734400,6045696,0,0,0,0,1792,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114688,0,5537792,5545984,5734400,5971968,4358144,6045696,4358144,6070272,4358144,4358144,4358144,6348800,913,4866961,4883345,913,913,4916113,913,4957073,4973457,913,913,913,913,913,913,5071761,913,913,913,913,913,913,5260177,913,913,913,913,913,913,913,913,5415825,4981649,913,913,913,913,913,913,913,913,5325713,5374865,5538705,5546897,5587857,5735313,5972881,913,6046609,913,6071185,913,913,913,913,6349713,989,4867037,4883421,989,4981725,989,989,989,5800925,989,989,5882845,989,989,989,989,989,989,989,989,989,5628893,5653469,989,5702621,989,989,989,989,6071261,989,989,989,989,6349789,4359057,4866961,4883345,4359057,4981649,4359057,4359057,4359057,4359057,4359057,4359057,6464401,4358144,4358144,4358144,4358144,4358144,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,5178257,913,4359057,4359057,6349713,4358144,6144e3,913,6144913,0,4988928,5005312,0,0,0,0,5775360,0,0,0,0,1795,0,0,1798,0,1800,0,0,0,0,0,1806,4358144,6324224,913,913,5006225,913,913,913,5120913,5137297,913,913,913,913,913,913,913,5112721,913,913,913,913,913,5284753,913,913,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6053888,4358144,4358144,913,913,5014417,913,913,913,913,913,5874577,913,913,913,913,913,913,913,913,913,913,913,913,913,989,989,989,4358144,6094848,913,4907921,913,5079953,913,5227409,913,5743505,913,913,913,6095761,913,989,989,4932573,4940765,989,989,989,989,989,989,5055453,989,989,989,989,989,989,6054877,989,989,989,4359057,4359057,5014417,4359057,4359057,4359057,4907997,989,5080029,989,5227485,989,5743581,989,989,989,6095837,989,4359057,4907921,4359057,5079953,4359057,5227409,4359057,5743505,4359057,4359057,4359057,6095761,4359057,5062656,0,0,0,0,0,4358144,4358144,0,913,913,913,913,913,913,0,0,0,0,0,0,0,0,4956160,4964352,0,0,0,0,0,0,0,0,4816896,4358144,4358144,4358144,4358144,6086656,4817809,913,913,913,913,6087569,4817885,5332992,5980160,4358144,913,5333905,5981073,913,989,5333981,5981149,989,4359057,5333905,5981073,4359057,0,0,0,0,1811,0,0,0,0,0,0,0,0,0,1820,0,0,0,0,1825,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,528,5439488,5128192,4358144,5129105,913,5129181,989,5129105,4359057,0,4358144,913,989,4359057,0,4358144,913,989,4359057,6004736,6004736,6005649,6005725,6005649,0,0,0,450560,450560,0,0,0,0,0,0,0,0,0,0,0,0,0,0,375,0,450560,450560,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1876,1877,0,0,0,0,0,0,0,0,0,0,1867,0,0,1870,0,0,0,0,0,196608,0,0,0,106496,0,0,4284416,0,0,0,0,0,0,0,417792,0,0,417792,0,0,417792,0,417792,0,0,0,0,139264,147456,417792,0,0,0,417792,196608,0,0,5816320,6291456,0,0,0,0,0,0,0,0,0,0,0,400,0,0,0,0,0,0,0,0,0,0,303,0,0,307,0,0,0,4956160,4964352,0,0,0,0,0,0,0,466944,0,0,0,0,0,0,0,0,0,5480448,0,0,0,0,0,0,6430720,6438912,914,0,0,0,914,0,4784128,0,0,0,4849664,0,0,0,0,0,648,0,0,0,0,0,0,818,0,0,0,0,0,658,659,0,0,0,0,0,0,0,0,0,1272,0,0,0,0,0,0,0,0,6332416,0,0,0,6389760,0,0,6430720,6438912,990,0,0,0,990,4358144,4358144,4358144,914,0,0,0,4841472,0,0,0,4898816,0,0,0,0,0,0,2383,0,0,0,0,0,0,0,0,0,2825,0,0,0,0,0,0,0,459222,459222,459222,459222,459222,459222,459222,459222,459222,459222,459222,459222,459222,459222,459222,459222,459222,459379,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1887,0,1889,1865,528,528,528,528,528,528,528,528,3516,528,528,3519,528,528,528,60866,4358144,4358144,483328,0,0,0,0,0,0,0,0,0,0,0,0,0,1243,0,0,1,24578,3,0,0,0,0,507904,0,0,0,507904,0,0,0,0,0,0,2398,0,0,0,0,0,0,0,0,0,49723,0,0,0,0,0,327680,0,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,2084,0,0,0,4825088,0,0,0,0,0,0,0,0,3423,0,0,0,0,0,0,0,0,3460,0,0,0,0,0,3465,0,4268032,306,307,0,0,442368,0,0,0,0,0,0,0,0,0,0,1168,1167,0,0,0,0,0,0,0,229376,0,491520,524288,0,0,0,0,0,0,0,0,0,678,0,0,0,0,0,0,4358144,4358144,491520,0,0,0,0,0,0,0,0,0,0,0,0,0,1275,0,1277,1,24578,3,0,0,0,0,0,516096,0,0,0,516096,0,0,0,0,0,0,0,0,0,0,0,0,368,0,296,0,0,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,1,24578,0,0,0,4366336,0,0,548864,0,0,302,303,0,0,0,0,2306,0,0,0,0,0,0,0,0,0,0,0,0,5627904,0,0,0,4268032,306,307,409600,0,0,0,0,0,0,0,0,0,0,0,0,368,0,308,0,0,0,5513216,5783552,0,40960,0,0,0,0,0,0,0,0,4358144,4358144,4358144,4358144,4358144,5193728,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4907008,0,5079040,6094848,1,24578,4227365,0,0,0,0,0,0,299,0,0,0,299,0,0,0,0,0,245760,0,245760,245760,0,0,0,245760,245760,0,0,0,0,0,0,245760,0,0,0,245760,0,0,245760,245760,245760,0,0,540672,0,0,540672,0,0,0,540672,0,0,0,0,0,0,0,540672,0,0,0,0,0,0,0,0,417792,0,0,0,417792,0,0,0,0,0,1,24578,4227365,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,2328,0,0,0,0,2332,0,0,0,0,0,0,0,1879,0,0,0,0,0,0,0,0,768,0,0,771,0,0,0,0,0,0,499712,0,0,0,0,0,0,0,0,0,0,0,0,0,1291,0,0,0,0,499712,0,0,0,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5111808,4358144,4358144,4358144,4358144,4358144,5283840,4358144,4358144,4358144,4358144,4358144,499712,0,0,0,0,0,0,0,0,0,0,0,0,0,1314,0,0,0,0,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,2355,0,0,0,0,0,0,0,0,0,0,0,1882,0,0,0,0,1,24578,3,155942,296,0,0,0,0,0,0,0,0,0,0,0,528,4087,528,4088,528,528,57893,528,57893,528,528,57893,528,528,57916,57893,528,528,57893,57893,57893,0,0,0,0,0,0,3821,0,0,0,0,57916,57893,57893,57893,57893,57893,57893,57893,57916,57916,57893,57893,57943,57893,57893,57893,0,0,0,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61529,57916,57916,57916,57943,57943,58773,914,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60631,0,0,2293,0,2294,0,0,0,0,0,0,0,0,0,0,0,664,0,0,0,0,3453,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,744,1825,0,0,0,0,0,0,0,0,0,0,0,2373,0,0,0,0,0,674,0,0,0,0,0,0,0,0,0,0,1182,0,0,0,0,0,0,0,1280,0,0,0,0,0,0,0,0,0,0,0,0,0,1788,0,0,528,57894,528,57894,528,528,57894,528,528,57917,57894,528,528,57894,57894,57894,57894,57944,57944,57894,57894,57894,57894,57944,57944,57894,528,57894,57894,57917,57894,57894,57894,57894,57894,57894,57894,57917,57917,57894,57894,57944,57894,57894,57894,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,1,24578,3,155943,296,0,0,0,0,0,0,0,0,0,0,0,740,661,0,0,528,0,573440,573440,573440,0,0,0,0,0,0,0,0,0,0,0,0,368,0,516096,0,0,0,5988352,0,0,6135808,6307840,0,5996544,4800512,0,6356992,3675,0,0,0,0,0,694,0,0,0,787,0,0,0,0,806,0,0,0,1,24578,3,0,0,4366336,0,0,0,0,0,637,303,0,0,0,0,2381,0,0,0,0,0,0,0,0,0,0,0,344064,0,0,0,0,4268032,640,307,0,0,0,0,0,0,0,0,0,0,0,0,0,1804,0,0,581632,0,0,0,581632,581632,581632,581632,581632,581632,581632,581632,581632,581632,581632,581632,581632,581632,581632,581632,0,581632,0,0,0,0,0,0,0,0,0,0,0,581632,0,581632,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,746,581632,581632,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,2397,0,0,0,0,0,0,0,0,0,0,0,1225,0,0,0,0,6258688,6447104,0,0,6127616,0,6348800,5906432,0,5537792,3827,4882432,0,0,0,0,0,0,2784,0,0,0,0,0,0,0,0,0,139264,147456,0,0,0,420,0,0,0,3926,0,0,0,0,0,0,5693440,0,6496256,5144576,5136384,0,5914624,0,0,5513216,5783552,0,3926,0,0,0,0,0,0,0,0,4358144,4358144,0,0,0,0,0,0,0,0,0,0,302,0,0,306,0,0,0,0,0,0,306,237983,147456,0,0,0,306,0,0,311,312,0,0,0,0,0,0,0,0,0,0,0,0,0,1819,0,0,312,0,311,311,312,0,0,0,0,0,0,0,0,0,0,0,311,409,312,0,458,472,472,472,485,485,485,485,485,485,485,485,485,506,485,485,485,485,485,524,485,485,485,524,485,485,485,485,485,485,529,57895,529,57895,529,529,57895,529,529,57918,57895,529,529,57895,57895,57895,57895,57945,57945,57895,57895,57895,57895,57945,57945,57895,529,57895,57895,57918,57895,57895,57895,57895,57895,57895,57895,57918,57918,57895,57895,57945,57895,57895,57895,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,306,307,0,0,0,0,0,645,0,0,648,649,0,0,0,0,0,736,0,0,0,0,0,0,0,0,0,745,368,368,0,0,704,0,0,0,0,0,0,0,711,0,0,0,0,0,750,0,0,0,0,645,0,0,0,0,0,0,0,6299648,0,0,0,0,0,0,0,0,0,777,0,0,781,0,0,0,0,0,0,0,789,0,0,0,0,0,0,2807,0,0,0,0,0,0,0,0,0,2310,0,0,0,0,0,0,793,0,0,0,0,0,0,0,797,0,0,0,0,0,0,0,0,557056,557056,0,0,0,0,0,0,0,833,793,0,0,0,0,0,837,838,0,0,0,0,793,528,528,0,57893,57893,57893,57893,57893,57893,155942,1151,0,0,1155,0,0,0,0,2295,0,1160,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1759,528,847,851,528,528,863,528,528,528,879,528,884,528,892,528,895,528,528,909,528,57893,57893,57893,58266,58270,57893,57893,58282,57893,57893,57893,58298,57893,58303,57893,58311,57893,58314,57893,57893,58328,57893,0,57916,57916,57916,58342,58346,57916,57916,58358,57916,57916,57916,58374,57916,58379,57916,58387,57916,58390,57916,57916,58404,57916,0,0,0,0,58303,57943,57943,57943,58417,58421,57943,57943,58433,57943,57943,528,528,528,57893,57893,57893,0,0,3655,0,3657,0,0,0,0,0,2356,0,2358,0,0,0,0,0,0,0,0,0,5693440,0,6496256,5144576,5136384,0,5914624,57943,58449,57943,58454,57943,58462,57943,58465,57943,57943,58479,57943,847,851,1141,895,1159,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,747,0,0,0,1320,0,0,0,0,0,0,0,0,0,0,0,0,368,302,0,0,528,528,528,1411,528,528,528,528,528,528,528,528,528,528,528,528,528,2470,528,528,0,0,1809,0,0,0,0,0,0,0,0,0,0,0,0,0,1842,0,0,1832,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1201,1885,0,0,1886,0,0,0,0,528,528,528,528,528,528,528,528,528,528,3225,528,528,528,1899,528,528,528,528,528,528,528,528,528,1912,528,528,528,0,0,57893,60609,57893,57893,57893,57893,57893,57893,57893,57893,57893,61085,57893,57893,57893,57893,57893,57893,528,528,528,528,58773,1985,57893,57893,57893,57893,57893,59336,57893,57893,57893,57893,57893,58822,57893,57893,57893,57893,58827,57893,57893,57893,57893,57893,58319,57893,57893,57893,57893,0,57916,57916,58341,57916,57916,57893,59342,57893,57893,57893,57893,57893,57893,57893,57893,57893,59355,57893,57893,57893,57893,57893,58859,57893,57893,57893,58866,57893,50676,58773,990,57916,57916,59442,57916,57916,57916,57916,57916,57916,57916,57916,57916,59455,57916,57916,57916,57916,57916,57916,60387,57916,57916,57916,57916,57916,57916,60394,57916,57916,57916,57916,57916,57916,59514,57916,57916,57916,57916,57916,57916,59520,57916,57916,57916,57916,57916,57943,61127,57943,57943,57943,61130,57943,57943,57943,57943,57943,57943,57943,60968,57943,57943,57943,57943,57943,57943,57943,57943,57943,60721,57943,57943,57943,57943,57943,57943,57943,57943,57943,59610,57943,57943,57943,57943,57943,57943,59616,57943,57943,57943,57943,57943,57943,57943,60982,60984,57943,57943,57943,57943,60988,57943,60990,0,0,2293,0,2294,0,0,0,0,0,0,0,0,0,2300,0,0,0,0,2806,0,0,0,0,0,2811,0,2813,2814,0,0,0,0,0,483328,0,0,0,0,0,0,0,0,0,0,801,0,0,0,0,0,0,2325,0,0,0,0,0,0,0,0,0,2334,0,0,0,0,0,0,2822,0,0,0,0,0,0,0,0,0,769,0,0,0,774,0,0,0,2407,0,0,0,0,0,0,0,0,0,0,0,0,0,0,702,528,2399,528,528,528,528,528,528,528,528,528,528,528,2429,528,528,2432,528,528,2475,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2471,528,57893,57893,59863,57893,57893,57893,57893,57893,57893,59871,57893,57893,57893,57893,57893,57893,0,0,57916,57916,57916,57916,57916,57916,57916,57916,60351,57916,57916,57916,57916,57916,57916,57893,59891,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60640,57916,57916,57916,59949,57916,57916,59952,57916,57916,57916,57916,57916,57916,59960,57916,57916,57893,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,0,0,0,0,57916,57916,60017,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,60417,57943,57943,57943,57943,57943,60032,57943,57943,60035,57943,57943,57943,57943,57943,57943,60043,57943,57943,528,528,528,57893,57893,57893,0,3654,0,0,0,0,0,0,0,1325,0,0,0,1329,0,0,0,0,57943,57943,60100,57943,57943,57943,57943,2760,528,528,528,528,60109,57893,57893,57893,0,0,0,0,57916,57916,57916,57916,57916,57916,57916,59945,57916,0,0,2781,0,0,0,0,0,0,0,0,0,0,0,0,0,1884,0,0,0,0,2794,0,0,0,0,0,2798,0,0,0,0,0,0,0,0,4784128,0,0,0,0,0,0,0,0,3181,0,0,0,0,0,3186,0,57893,60285,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60293,57893,57893,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,57943,57943,60461,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,4075,0,4076,57943,60472,57943,57943,57943,57943,57943,528,528,528,528,528,57893,57893,57893,57893,57893,0,0,0,0,0,0,0,3150,0,0,0,0,0,0,0,0,0,0,0,0,0,2299,0,0,0,3160,0,0,0,0,0,0,0,0,0,0,0,0,3173,0,0,0,0,2820,0,0,0,2824,0,0,0,0,0,0,0,703,0,0,0,0,0,0,0,0,2331,0,0,0,0,0,0,0,0,3189,0,0,0,0,0,0,0,0,0,0,0,0,3202,3203,0,0,3215,0,528,528,528,528,528,528,528,528,528,528,528,3226,528,528,3230,528,528,528,528,528,528,528,528,528,528,3239,528,528,0,0,0,0,0,0,57893,57893,60279,57893,57893,57893,57893,57893,58320,57893,57893,57893,57893,0,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,0,0,4289,0,528,60617,57893,57893,60621,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60630,57893,0,0,3137,3138,0,0,0,0,0,0,0,0,0,0,0,3199,0,0,0,0,57916,57916,57916,60666,57916,57916,60670,57916,57916,57916,57916,57916,57916,57916,57916,57916,58383,57916,57916,57916,57916,57916,57916,57916,60679,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60687,57916,0,0,0,0,57893,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,528,528,57893,57893,57893,57943,57943,57943,57943,60715,57943,57943,60719,57943,57943,57943,57943,57943,57943,57943,57943,57943,59582,57943,57943,57943,57943,57943,57943,57943,57943,60728,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60736,0,3430,0,0,0,0,0,0,0,0,0,0,0,0,0,0,729,0,528,3495,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2904,528,528,528,528,3512,528,3514,528,528,528,528,528,528,528,528,57893,57893,58259,57893,57893,57893,57893,57893,57893,58292,57893,57893,60879,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59389,57893,57893,57893,57893,60897,57893,60899,57893,57893,57893,57893,57893,57893,57893,57893,57893,59399,57893,57893,57893,57893,57893,57893,57916,60921,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,60963,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60457,57943,528,4015,528,528,528,528,528,528,528,528,528,528,528,57893,61372,57893,302,306,0,0,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,61374,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,61388,57916,0,0,0,0,57893,57943,57943,57943,57943,57943,57943,57943,57943,57943,58442,61390,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,61404,57943,528,2281,528,528,528,57893,59630,57893,57893,57893,2290,0,2291,0,0,0,0,0,262144,0,0,0,0,0,0,0,0,0,0,663,0,0,666,667,0,61406,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,0,0,0,0,0,0,528,4077,0,0,0,0,0,0,0,4084,0,0,528,528,528,528,4089,0,0,4148,0,4150,528,528,528,528,528,528,528,528,528,528,528,528,1399,528,528,528,0,0,0,313,314,315,0,0,0,0,0,0,0,0,0,0,1240,0,0,0,0,0,0,0,427,0,131072,0,0,0,0,427,0,0,0,0,0,427,459,0,0,0,459,459,459,459,459,459,459,459,459,459,459,459,523,459,523,523,523,459,523,523,523,523,523,523,530,57896,530,57896,530,530,57896,530,530,57919,57896,530,530,57896,57896,57896,57896,57946,57946,57896,57896,57896,57896,57946,57946,57896,621,57896,57973,57919,57896,57896,57896,57896,57896,57896,57896,57919,57919,57896,57896,57946,57896,57896,57896,57973,57973,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,0,2830,0,0,0,0,0,0,0,0,0,0,0,680,681,0,0,0,57893,57893,58307,57893,57893,57893,57893,57893,57893,57893,0,57916,57916,57916,57916,57916,57916,57916,60350,57916,57916,57916,57916,57916,57916,57916,60915,57916,57916,57916,57916,57916,57916,57916,57916,58942,57916,57916,57916,57916,57916,57916,57916,57916,60389,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,58458,57943,57943,57943,57943,57943,57943,57943,528,528,528,528,528,57893,57893,57893,57893,528,528,1965,528,528,528,528,528,528,1972,528,528,528,528,528,528,528,3501,528,3503,528,528,528,528,528,528,1360,528,528,528,528,528,528,528,528,528,2887,528,2889,528,528,528,528,57893,59408,57893,57893,57893,57893,57893,57893,59416,57893,57893,57893,57893,57893,57893,57893,58823,57893,57893,57893,57893,57893,57893,57893,57893,58840,57893,57893,57893,57893,57893,57893,57893,59508,57916,57916,57916,57916,57916,57916,59516,57916,57916,57916,57916,57916,57916,57916,57916,58909,57916,57916,57916,58912,57916,57916,57916,57893,57893,57893,60286,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58814,57893,57893,57893,60408,57916,57916,57916,57943,57943,57943,57943,57943,57943,60414,57943,57943,57943,57943,60418,57943,57943,57943,60473,57943,57943,57943,528,528,528,528,528,57893,57893,57893,57893,57893,0,0,0,0,2292,528,528,528,4093,528,4095,528,528,4097,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61077,57893,57893,57893,57893,61450,57893,61452,57893,57893,61454,57893,57893,57916,57916,57916,57916,57916,57916,58879,57916,57916,57916,57916,57916,58891,57916,57916,57916,57916,57916,61464,57916,61466,57916,57916,61468,57916,57916,57943,57943,57943,57943,57943,57943,60956,57943,57943,57943,57943,57943,60960,57943,57943,57943,57943,61478,57943,61480,57943,57943,61482,57943,57943,0,0,0,0,0,0,0,1766,0,0,1769,0,0,0,0,0,320,320,428,429,131072,436,429,437,439,428,436,437,0,316,437,455,460,473,473,473,486,486,486,486,486,486,486,486,486,486,508,508,521,521,522,522,508,522,522,522,508,522,522,522,522,522,522,531,57897,531,57897,531,531,57897,531,531,57920,57897,531,531,57897,57897,57897,57897,57947,57947,57897,57897,57897,57897,57947,57947,57897,622,57972,57972,57920,57897,57897,57897,57897,57897,57897,57897,57920,57920,57897,57897,57947,57897,57897,57897,57972,57972,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,0,3151,0,0,0,0,0,3155,0,0,0,0,0,0,814,0,0,0,0,0,0,819,0,0,0,686,0,0,0,0,0,0,0,0,0,0,0,0,0,368,0,0,0,368,368,702,0,0,0,0,0,0,0,0,0,0,0,0,0,2315,0,0,0,0,0,734,0,0,0,0,0,0,0,0,0,0,0,0,368,303,0,0,0,823,0,0,0,0,0,0,0,0,0,0,0,0,0,0,775,0,0,1174,0,0,0,0,0,0,0,0,0,0,0,0,0,0,804,0,0,0,0,1216,1174,0,0,0,0,0,0,0,0,0,0,0,0,0,2336,0,0,0,0,0,1281,0,0,0,0,0,0,0,0,0,0,0,0,368,342,296,0,0,0,1295,0,0,0,0,0,0,0,0,0,0,0,0,0,2363,0,0,1307,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1229,58773,914,57893,57893,58777,57893,57893,58781,57893,57893,57893,57893,57893,57893,57893,57893,58808,57893,57893,57893,57893,57893,57893,57893,58795,57893,58800,57893,57893,58804,57893,57893,58807,57893,57893,57893,57893,57893,57893,57893,58838,57893,57893,57893,57893,57893,57893,57893,57893,58841,57893,57893,57893,57893,57893,57893,57893,58872,57916,57916,58876,57916,57916,57916,57916,57916,57916,57916,57916,58890,57916,58895,57916,0,0,0,0,57893,57943,57943,57943,57943,57943,57943,58428,57943,57943,58444,57916,58899,57916,57916,58902,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59985,57916,57916,57916,1860,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1245,528,528,528,528,1902,528,528,528,528,528,528,528,528,528,1914,528,528,0,57893,57893,57893,57893,57893,57893,155942,1151,0,0,1156,0,0,0,0,327,327,377,0,0,0,0,0,0,0,0,0,1210,0,368,368,0,1213,0,1929,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,896,57893,57893,57893,59345,57893,57893,57893,57893,57893,57893,57893,57893,57893,59357,57893,57893,1,24578,3,155942,156282,296,0,0,0,0,0,302,303,0,57916,57916,59445,57916,57916,57916,57916,57916,57916,57916,57916,57916,59457,57916,57916,57916,57916,57916,59967,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,61474,57943,59541,57943,57943,57943,57943,57943,57943,57943,57943,57943,59553,57943,57943,57943,57943,57943,57943,57943,61152,57943,57943,57943,57943,57943,57943,57943,528,528,528,2763,2764,57893,57893,57893,60112,57943,57943,57943,59591,59592,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59601,57943,57943,57943,57893,59917,59918,59919,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58848,57893,57893,58852,57916,59989,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60002,57943,60072,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60085,57893,57893,60325,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58849,57893,57893,0,0,0,3216,528,528,528,528,528,528,528,528,528,528,528,528,528,2484,528,528,528,528,528,3243,528,528,528,528,528,528,528,528,528,528,528,528,528,2891,528,528,57893,57893,57893,57893,60634,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,0,2999,0,0,0,61125,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60962,528,528,4092,528,528,528,528,528,528,528,57893,61444,57893,61445,57893,57893,57893,2589,0,0,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,61106,57916,57916,57916,57916,57916,57916,57916,57916,59954,57916,57916,59958,57916,57916,57916,59962,57893,61449,57893,57893,57893,57893,57893,57893,57893,57893,57916,61458,57916,61459,57916,57916,57893,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59540,57916,61463,57916,57916,57916,57916,57916,57916,57916,57916,57943,61472,57943,61473,57943,57943,528,528,1715,528,528,1718,57893,57893,59064,57893,57893,59067,1151,0,57943,61477,57943,57943,57943,57943,57943,57943,57943,57943,0,0,0,0,0,0,0,1814,0,0,0,0,0,0,0,0,528,1338,528,528,528,528,528,528,528,528,4291,57893,57893,57893,61637,57916,57916,57916,61639,57943,57943,57943,61641,0,0,0,0,3178,0,0,0,0,0,0,0,0,0,0,0,1312,0,0,0,0,326,327,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1186,0,0,0,377,0,131072,0,0,0,440,377,0,0,445,451,0,377,461,474,474,474,487,487,487,487,487,487,487,487,487,487,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,532,57898,532,57898,532,532,57898,532,532,57921,57898,532,532,57898,57898,57898,57898,57948,57948,57898,57898,57898,57898,57948,57948,57898,532,57898,57898,57921,57898,57898,57898,57898,57898,57898,57898,57921,57921,57898,57898,57948,57898,57898,57898,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,1188,0,1190,1191,0,0,0,1193,1194,0,0,0,0,0,0,0,0,4997120,0,0,5038080,0,0,0,5095424,5103616,0,0,1232,1233,0,0,0,0,0,0,0,0,0,0,0,0,370,0,0,0,1263,1265,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1200,0,1317,0,0,0,0,0,0,0,0,0,1303,0,0,0,1331,1193,528,528,1390,528,528,1392,528,528,528,528,1397,528,528,528,528,528,528,3500,528,528,528,528,528,528,528,528,528,528,61443,57893,57893,57893,57893,57893,58773,914,57893,57893,58778,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,2588,2999,0,0,0,58831,57893,57893,57893,57893,58836,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58811,58813,57893,57893,57893,57893,58873,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60380,57916,58900,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58928,57916,57916,58915,57916,57916,57916,57916,57916,57916,57916,58924,57916,57916,58926,57916,57916,57916,57916,57916,59980,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61530,57916,57916,57943,57943,57916,58931,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58950,57916,57916,57916,58956,57916,57916,57916,57916,0,58831,57943,57943,58967,57943,57943,57943,57943,57943,57943,60464,57943,57943,57943,57943,57943,57943,57943,57943,60470,57943,57943,57943,57943,59018,57943,57943,59020,57943,57943,57943,57943,59026,57943,57943,57943,528,528,57893,57893,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2778,1963,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,901,0,0,2293,0,2294,0,0,0,0,0,2297,0,0,0,0,0,0,316,317,318,319,320,321,322,323,324,325,57893,59862,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60650,57893,59878,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58816,57893,59947,57916,57916,57916,57916,59951,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,61475,60015,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,61133,57943,60030,57943,57943,57943,57943,60034,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60723,57943,57943,57943,60098,57943,57943,57943,57943,57943,57943,528,528,528,528,528,57893,57893,57893,57893,57893,0,0,0,1729,0,0,0,0,2844,0,0,0,0,0,2849,0,0,0,0,0,0,0,1852,0,0,0,0,0,0,0,1859,0,57916,57916,57916,60347,57916,60348,57916,57916,57916,57916,57916,57916,57916,57916,57916,58385,57916,57916,57916,57916,58403,57916,0,0,3205,0,0,0,0,0,0,0,0,0,0,0,0,0,2374,0,0,528,528,528,528,3253,528,528,528,528,528,528,528,528,528,528,528,528,1926,528,528,528,57916,60688,57916,57916,57916,57916,57916,57916,57916,60694,57916,57916,57916,57916,57916,57916,58906,58908,57916,57916,57916,57916,57916,57916,57916,57916,59451,57916,57916,57916,57916,57916,57916,57916,57916,59498,57916,57916,57916,57916,57916,57916,57916,57916,60672,57916,57916,57916,57916,57916,57916,57916,57943,57943,60737,57943,57943,57943,57943,57943,57943,57943,60743,57943,57943,57943,57943,57943,57943,57943,61339,57943,57943,57943,528,57893,0,0,0,0,0,0,3671,0,0,0,0,0,0,0,0,0,0,0,0,665,0,0,668,57916,61126,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60961,57943,57916,57916,57916,61239,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60959,57943,57943,57943,57943,61258,57943,57943,528,528,57893,57893,0,0,0,0,0,0,0,0,0,0,0,0,2776,2777,0,528,528,528,528,4018,528,528,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,58280,57893,57893,57893,57893,57893,57893,57893,57893,61377,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,61223,57916,57916,57916,57916,57916,57916,61393,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,60025,57943,57943,57943,57943,57943,57943,57943,61409,57943,57943,57943,57943,57943,57943,57943,57943,57943,0,0,0,4241,0,4243,528,528,528,528,528,4094,528,528,528,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59372,57893,57893,57893,61451,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61318,57916,57916,57916,61465,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,61244,57943,57943,57943,57943,57943,57943,61479,57943,57943,57943,57943,57943,57943,0,0,0,0,0,0,0,1865,1866,0,0,0,1869,0,0,0,0,0,328,329,330,331,0,0,0,0,0,0,0,0,0,0,1855,1856,0,1857,1858,0,0,376,0,0,0,0,0,328,376,331,375,0,0,0,0,0,0,363,0,0,0,0,0,0,0,0,0,139264,147456,0,0,450560,0,0,0,331,0,0,0,0,0,0,376,0,0,0,0,0,0,0,0,5210112,0,5365760,0,5554176,5570560,5578752,0,462,475,475,475,488,488,488,488,499,501,488,488,499,488,510,510,510,510,510,525,510,510,510,525,510,510,510,510,510,510,533,57899,533,57899,533,533,57899,533,533,57922,57899,533,533,57899,57899,57899,57899,57949,57949,57899,57899,57899,57899,57949,57949,57899,533,57899,57899,57922,57899,57899,57899,57899,57899,57899,57899,57922,57922,57899,57899,57949,57899,57899,57899,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,670,671,0,0,0,0,0,0,0,0,0,0,0,683,684,685,0,0,0,689,0,0,0,0,0,0,0,0,0,0,368,368,0,0,0,0,0,0,707,708,0,0,0,0,0,714,0,0,0,718,0,720,0,0,0,0,0,0,727,0,0,0,0,0,1163,0,0,0,0,0,0,0,0,0,0,6152192,0,0,0,6316032,0,731,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1292,778,779,0,0,0,0,0,0,0,0,788,0,790,0,0,0,0,0,1201,0,0,0,0,0,0,0,0,0,0,3675,0,0,0,3830,0,822,0,0,0,0,0,822,822,825,0,0,0,790,0,0,0,0,0,1235,0,1237,0,0,0,0,1242,0,0,0,0,0,1268,0,0,0,0,0,0,0,0,0,0,3675,0,0,3829,0,0,0,0,834,0,0,0,0,0,0,0,788,0,0,0,834,528,528,0,57893,57893,57893,57893,57893,57893,155942,1151,0,302,0,0,306,1,24578,3,0,0,4366336,0,0,0,0,0,65536,303,0,528,848,528,854,528,528,869,528,528,880,528,885,528,528,894,897,902,528,910,528,57893,57893,57893,58267,57893,58273,57893,57893,58288,57893,57893,58299,57893,58304,57893,57893,58313,58316,58321,57893,58329,57893,0,57916,57916,57916,58343,57916,0,0,0,0,57893,57943,57943,57943,57943,57943,57943,58430,57943,57943,57943,57943,57943,59547,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61417,57943,0,0,0,58349,57916,57916,58364,57916,57916,58375,57916,58380,57916,57916,58389,58392,58397,57916,58405,57916,0,0,0,0,58304,57943,57943,57943,58418,57943,58424,57943,57943,58439,57943,1906,528,528,528,528,59349,57893,57893,57893,57893,0,0,0,0,0,3140,0,0,3143,3144,0,0,3147,3148,0,57943,58450,57943,58455,57943,57943,58464,58467,58472,57943,58480,57943,848,528,528,1142,902,528,0,57893,58267,57893,58492,58321,57893,155942,1151,0,0,0,0,0,0,364,365,366,367,0,0,368,0,296,0,0,0,0,1176,0,0,0,0,0,0,0,1183,0,0,0,0,0,0,3165,0,0,0,0,0,0,0,0,0,139264,147456,0,0,0,421,0,0,1203,1204,0,0,0,0,1208,0,0,0,368,368,0,0,0,0,0,0,0,0,0,0,0,0,713,0,0,1231,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1244,0,0,0,1248,0,0,1200,0,0,0,0,0,749,0,0,0,0,0,0,0,0,0,0,0,726,0,0,0,0,528,1347,528,528,528,528,528,528,1362,528,528,528,1367,528,528,528,528,528,2464,528,528,528,528,528,528,528,528,528,528,528,1910,528,528,528,528,58773,914,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58786,57893,57893,57893,0,0,0,0,57916,57916,57916,57916,57916,57916,59944,57916,57916,57893,57893,57893,58801,57893,57893,57893,58806,57893,57893,57893,57893,57893,57893,57893,57893,58809,57893,57893,57893,57893,57893,57893,57893,57893,57893,58854,57893,57893,57893,57893,57893,57893,58865,57893,50676,58773,990,57916,57916,57893,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59537,57943,57943,528,1351,528,1408,528,528,58790,57893,57893,58847,57893,57893,1151,0,57916,57916,57916,58901,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58391,57916,57916,57916,57916,57916,57916,58918,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58396,57916,57916,57916,57916,57916,57916,58933,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58949,57916,0,0,0,0,57893,57943,57943,57943,57943,57943,57943,58431,57943,57943,57943,57943,57943,60063,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60428,57943,60430,57943,57943,57943,57943,58975,57943,57943,57943,57943,57943,57943,58990,57943,57943,57943,58995,57943,2280,528,2282,528,528,59629,57893,59631,57893,57893,0,0,0,0,0,0,1298,0,0,0,0,1303,0,0,0,0,59055,57943,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,1151,1724,0,1760,0,0,1763,1764,1765,0,1767,1768,0,0,0,0,1773,0,0,0,0,3192,0,0,0,0,3197,0,0,0,0,0,0,0,2368,2369,0,0,0,0,0,0,0,692,0,0,0,0,0,0,699,368,1807,0,0,0,0,0,0,0,0,1816,1817,0,0,0,0,0,0,373,0,0,0,0,0,0,0,0,0,139264,147456,0,0,352256,0,0,0,1823,0,0,1825,0,0,0,0,0,0,0,0,1829,1830,1831,0,1870,0,0,0,1888,1740,1740,1890,528,1892,528,1893,1894,528,1896,528,528,528,1900,528,528,528,528,528,528,528,528,528,1913,528,528,0,0,0,0,0,0,57893,60278,57893,57893,57893,57893,57893,57893,0,2592,57916,57916,57916,57916,57916,57916,57916,57916,59969,57916,57916,57916,57916,57916,57916,59974,57916,528,528,1917,528,528,528,528,1921,528,1923,528,528,528,528,528,528,1393,528,1395,528,528,528,528,528,528,528,872,528,528,528,528,528,528,528,528,528,3710,528,528,528,528,528,528,528,528,528,528,1933,1934,1936,528,528,528,528,528,528,528,1944,1945,528,1947,528,528,1950,1951,528,528,528,528,528,528,528,1959,528,1961,528,1964,528,528,528,528,528,1971,528,528,1973,528,528,528,528,528,528,3855,528,528,528,528,528,57893,57893,57893,57893,57893,57893,58279,57893,57893,57893,57893,57893,528,528,528,528,58773,0,59332,57893,59334,57893,59335,57893,59337,57893,59339,57893,302,306,0,0,0,0,3141,0,0,0,3145,0,0,0,0,0,0,2832,0,0,0,0,0,0,0,0,0,2835,0,0,0,0,0,0,57893,57893,59343,57893,57893,57893,57893,57893,57893,57893,57893,57893,59356,57893,57893,57893,0,0,0,0,57916,57916,57916,57916,59942,57916,57916,57916,57916,57916,59515,57916,57916,59517,57916,57916,57916,57916,57916,57916,57916,0,57893,57943,57943,58966,57943,57943,58970,57943,57893,59360,57893,57893,57893,57893,59364,57893,59366,57893,57893,57893,57893,57893,57893,57893,58839,57893,57893,58846,57893,57893,57893,57893,57893,57893,57893,57893,59376,59377,59379,57893,57893,57893,57893,57893,57893,57893,59387,59388,57893,2770,2291,0,2771,2294,0,0,0,0,0,0,0,0,0,0,770,0,0,0,0,0,59390,57893,57893,59393,59394,57893,57893,57893,57893,57893,57893,57893,59402,57893,59404,57893,2770,2291,0,2771,2294,0,0,0,0,0,0,2775,0,0,0,0,0,784,0,0,679,0,0,0,0,0,0,0,660,661,0,0,0,0,0,0,0,384,0,139264,147456,0,406,0,0,406,59407,57893,57893,57893,57893,57893,59415,57893,57893,59417,57893,57893,57893,57893,57893,57893,0,0,57916,57916,57916,57916,60660,57916,57916,57916,57916,59443,57916,57916,57916,57916,57916,57916,57916,57916,57916,59456,57916,57916,57916,57916,57916,58878,57916,57916,57916,58882,57916,57916,58893,57916,57916,58897,59460,57916,57916,57916,57916,59464,57916,59466,57916,57916,57916,57916,57916,57916,57916,57916,59467,59468,57916,57916,57916,57916,57916,57916,57916,57916,59476,59477,59479,57916,57916,57916,57916,57916,57916,57916,59487,59488,57916,59490,57916,57916,59493,59494,57916,57916,57916,57916,57916,57916,57916,59502,57916,59504,57916,59507,57943,57943,57943,59560,57943,59562,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60987,57943,57943,57943,59572,59573,59575,57943,57943,57943,57943,57943,57943,57943,59583,59584,57943,57943,59586,57943,57943,57943,57943,57943,60731,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60081,57943,57943,57943,57943,57943,59589,59590,57943,57943,57943,57943,57943,57943,57943,59598,57943,59600,57943,59603,57943,57943,57943,57943,57943,60739,57943,57943,57943,60742,57943,60744,57943,57943,57943,57943,57943,57943,60740,57943,57943,57943,57943,57943,57943,57943,57943,57943,59023,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59611,57943,57943,59613,57943,57943,57943,57943,57943,57943,57943,57943,57943,60039,57943,57943,57943,57943,57943,57943,0,0,2293,0,2294,0,0,0,0,0,0,0,0,0,0,2301,0,0,2304,2305,0,0,0,2309,0,0,0,0,0,0,0,0,0,6406144,5357568,0,5505024,0,0,0,0,2352,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1276,0,1825,0,2365,0,0,0,0,0,0,0,0,2372,0,0,2375,0,0,0,0,3217,528,528,528,528,528,528,528,528,528,528,528,528,2929,528,528,528,0,2378,0,0,0,0,0,0,2385,0,2387,0,0,0,0,0,0,403,0,0,0,0,0,0,0,0,332,333,0,0,0,0,0,0,0,0,334,335,336,0,0,0,0,0,0,0,0,2396,0,0,0,0,0,0,0,0,0,0,0,0,697,698,0,368,2406,0,0,0,0,0,0,0,0,0,0,0,0,0,2417,0,0,0,0,3433,0,0,0,0,0,0,0,0,0,0,0,786,0,0,0,528,2433,528,2435,528,528,528,528,528,528,2443,528,2445,528,528,528,528,528,1414,528,528,528,528,528,528,528,528,528,528,1956,528,528,528,528,528,528,528,528,2451,528,528,528,528,528,528,528,528,528,528,528,528,528,2902,528,528,2473,528,528,528,528,528,528,2480,528,528,528,528,528,528,528,528,1906,528,528,528,528,528,528,528,57893,57893,57893,59864,57893,59866,57893,57893,57893,57893,57893,57893,59874,57893,59876,57893,2770,2291,0,2771,2294,0,0,2773,0,0,0,0,0,0,0,0,2359296,418,418,0,0,0,0,0,57893,57893,59904,59905,57893,57893,57893,57893,57893,57893,59912,57893,57893,57893,57893,57893,57893,60885,57893,60887,57893,57893,57893,57893,57893,57893,57893,59397,57893,57893,59400,57893,57893,57893,57893,57893,59930,59931,57893,0,0,0,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,58910,57916,57916,57916,57916,57916,57916,59963,57916,59965,57916,57916,57916,57916,57916,57916,57916,59971,57916,57916,57916,57916,57916,57916,60914,57916,57916,57916,57916,57916,60918,57916,57916,57916,57916,60016,57916,57916,60019,60020,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,0,4239,0,0,0,0,528,60046,57943,60048,57943,57943,57943,57943,57943,57943,57943,60054,57943,57943,57943,57943,57943,57943,58979,58986,57943,57943,57943,57943,57943,57943,57943,57943,57943,60079,57943,57943,57943,57943,57943,57943,57943,60099,57943,57943,60102,60103,57943,2435,528,2762,528,528,59866,57893,60111,57893,57893,57893,57893,57893,61083,57893,57893,57893,57893,57893,57893,57893,57893,61089,57893,57893,57893,57893,57893,61219,57893,57893,57893,57916,57916,57916,57916,57916,57916,57916,1272,57893,57943,57943,57943,57943,57943,57943,57943,528,3132,528,528,528,57893,60479,57893,57893,0,0,2829,0,0,0,0,2833,0,0,0,0,0,0,0,0,312,311,0,0,0,311,311,312,2905,528,528,528,528,2909,528,528,528,2914,528,528,528,528,528,528,1920,528,528,528,528,528,528,528,528,528,1908,528,528,528,528,528,528,528,528,2922,528,528,528,528,528,528,528,2927,528,528,528,528,528,528,3940,528,528,528,528,528,528,3946,528,528,60284,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59406,60296,57893,60298,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59403,57893,57893,57893,60324,57893,57893,57893,57893,57893,57893,57893,57893,60332,57893,57893,57893,57893,57893,57893,61096,57893,57893,57893,57893,57916,57916,57916,57916,57916,57916,60703,57916,57916,57943,57943,57943,57943,57943,57943,57943,58466,57943,57943,57943,57943,528,528,528,896,57893,57893,57893,60338,57893,57893,57893,57893,57893,57893,57893,0,2999,0,0,0,0,0,1323,0,0,0,0,0,0,0,0,0,0,2836,2837,0,0,0,0,57916,60382,57916,57916,57916,57916,60386,57916,57916,57916,60391,57916,57916,57916,57916,57916,57916,60926,57916,57916,57916,57916,57916,57916,57916,57916,57916,59956,57916,57916,57916,57916,57916,57916,57916,57916,57916,60399,57916,57916,57916,57916,57916,57916,57916,57916,60405,57916,57916,57916,57916,57916,59992,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58925,57916,57916,57916,57916,57916,57943,57943,57943,57943,60447,57943,57943,57943,57943,60451,57943,57943,57943,60456,57943,57943,528,1352,528,528,1717,528,58791,57893,57893,57893,59066,57893,1151,0,0,0,3177,0,0,0,0,0,0,0,0,0,0,0,0,0,2390,0,0,528,528,528,528,3232,528,528,528,528,528,528,528,528,528,528,528,528,1941,528,528,528,528,528,3251,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2892,528,57893,57893,57893,57893,60643,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,50676,58773,990,57916,57916,3442,3443,0,3444,0,3446,0,0,0,0,3448,0,0,0,0,0,0,737,0,0,0,0,0,0,0,0,0,2360,0,0,0,0,0,2364,3467,0,0,0,0,3472,3473,0,3475,0,0,3478,0,0,0,3481,528,528,528,528,3498,528,528,528,528,528,3504,528,528,528,528,528,528,4020,528,4022,4023,528,4025,528,57893,57893,57893,57893,57893,57893,60882,57893,57893,57893,57893,57893,60888,57893,57893,60891,57893,57893,57893,0,0,0,0,57916,57916,57916,59941,57916,59943,57916,57916,57916,57916,57916,60006,60007,60008,57916,57916,57916,57916,57916,57916,57916,57916,58943,57916,57916,58947,57916,57916,57916,57916,57916,57916,57916,57916,60924,57916,57916,57916,57916,57916,60930,57916,57916,60933,57916,57916,57893,57943,57943,57943,57943,57943,59532,57943,57943,57943,57943,57943,59538,57943,60991,57943,528,528,3650,57893,57893,60997,0,0,0,0,0,0,3659,0,0,0,0,3445,0,0,0,0,0,0,0,0,0,0,0,2812,0,0,2815,0,0,3662,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1306,0,3669,0,0,0,0,0,0,0,0,0,0,0,0,3676,0,3678,528,528,528,528,3705,528,528,528,528,528,528,528,528,528,528,528,528,2458,528,528,528,528,528,3715,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2903,528,528,57893,57893,57893,61071,57893,57893,57893,57893,57893,57893,57893,61076,57893,57893,57893,0,0,0,0,57916,57916,59940,57916,57916,57916,57916,57916,57916,59981,57916,57916,57916,57916,57916,57916,57916,57916,57916,59453,57916,57916,57916,57916,57916,57916,57893,57893,57893,57893,61095,57893,57893,57893,57893,57893,57893,57916,57916,57916,61100,57916,0,0,0,0,57893,57943,57943,57943,57943,57943,57943,58432,57943,57943,57943,57943,57943,60075,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59048,57943,57943,57943,57943,61134,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61145,3832,0,0,3835,0,0,0,0,0,0,0,0,0,0,0,0,772,0,0,0,57916,57916,61238,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61142,57943,57943,57943,3924,0,3675,0,0,0,0,0,3932,0,0,0,0,0,0,0,312,0,0,0,0,0,311,0,311,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,61301,57893,57893,57893,57893,57893,59363,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60315,57893,57893,57893,57893,60319,57893,57893,57943,61333,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,57893,0,0,0,0,0,1736,0,0,0,0,0,0,0,0,0,0,2334720,0,2334720,0,0,0,0,0,0,4079,0,0,0,0,0,0,0,528,528,528,528,528,528,528,4157,528,4159,528,528,4091,528,528,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,61448,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,57916,57916,57916,57916,61317,57916,61462,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,60028,57943,61476,57943,57943,57943,57943,57943,57943,57943,57943,57943,4141,4142,0,0,0,4145,528,528,61507,61508,61509,57893,57893,57893,61512,57893,61514,57893,57893,57893,57893,61519,61520,61521,61522,57916,57916,57916,61525,57916,61527,57916,57916,57916,57916,61532,61533,61534,61535,57943,57943,57943,61538,57943,61540,57943,57943,57943,57943,61545,0,0,0,0,0,0,3194,0,0,0,3198,0,3200,0,0,0,528,4245,528,528,528,4249,57893,57893,61595,57893,57893,57893,61599,57893,57916,57916,57893,57943,59529,57943,57943,57943,57943,57943,57943,57943,59536,57943,57943,57943,57943,57943,59040,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,3412,528,57893,60759,57893,61601,57916,57916,57916,61605,57916,57943,57943,61607,57943,57943,57943,61611,57943,0,0,0,0,0,2342912,0,0,0,0,0,0,0,0,0,4358144,4359058,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6275072,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,0,413,0,0,0,0,0,0,413,139264,147456,0,0,0,422,0,0,0,0,3456,0,0,0,0,0,0,0,0,0,0,0,749,0,0,0,0,372,372,0,430,131072,372,430,430,0,333,372,430,0,0,430,456,430,0,0,0,430,495,495,495,500,495,495,495,500,495,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,534,57900,534,57900,534,534,57900,534,534,57923,57900,534,534,57900,57900,57900,57900,57950,57950,57900,57900,57900,57900,57950,57950,57900,534,57900,57900,57923,57900,57900,57900,57900,57900,57900,57900,57923,57923,57900,57900,57950,57900,57900,57900,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,841,528,528,528,528,528,528,873,528,528,528,528,528,528,528,528,1939,528,528,528,528,528,528,528,0,0,1175,0,0,0,0,0,0,0,0,0,0,0,0,0,2416,0,0,0,0,0,1296,0,1175,0,0,0,0,0,0,0,0,0,0,2371,0,0,0,0,0,58773,914,57893,57893,57893,57893,57893,57893,57893,57893,58784,57893,57893,57893,57893,57893,57893,61210,57893,57893,57893,57893,57893,57893,57893,57893,57893,60626,57893,57893,60629,57893,57893,57893,58796,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59424,57943,58973,57943,57943,57943,57943,57943,58985,57943,57943,57943,57943,57943,57943,57943,57943,57943,60053,57943,57943,57943,57943,57943,57943,0,1873,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1743,1744,57943,60460,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60726,57943,61135,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61257,528,528,528,61636,57893,57893,57893,61638,57916,57916,57916,61640,57943,57943,57943,0,0,0,0,3471,0,0,0,0,0,0,0,0,0,0,0,1868,0,0,0,0,0,0,0,431,131072,0,431,431,0,0,0,431,446,0,431,0,0,0,0,3663,0,0,0,0,0,0,0,0,0,0,0,1289,0,0,0,0,431,476,476,476,489,489,489,489,489,489,489,489,489,489,489,489,489,489,489,489,535,57901,535,57901,535,535,57901,535,535,57924,57901,535,535,57901,57901,57901,57901,57951,57951,57901,57901,57901,57901,57951,57951,57901,535,57901,57901,57924,57901,57901,57901,57901,57901,57901,57901,57924,57924,57901,57901,57951,57901,57901,57901,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,528,528,528,528,58773,1986,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59353,57893,57893,57893,57893,57893,0,0,0,2327,0,0,0,0,0,0,0,0,0,0,0,0,773,0,0,776,2351,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1774,57893,57893,59892,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59900,57893,57893,0,0,0,2805,0,0,0,0,0,0,0,0,0,0,0,0,800,0,0,528,3175,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1790,0,0,3431,0,0,0,0,0,3437,0,0,0,0,0,0,0,331,0,139264,147456,0,0,0,0,0,3482,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,1372,57893,57893,57893,57893,60883,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60893,60908,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60396,60935,57916,57916,57916,57916,57916,57916,57916,57916,57916,60944,57916,57916,60947,57916,57916,57893,59528,57943,59530,57943,59531,57943,59533,57943,59535,57943,57943,57943,59539,57916,60950,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59012,57943,57943,60977,57943,57943,57943,57943,57943,57943,57943,57943,57943,60986,57943,57943,60989,57943,57943,57943,57943,57943,60966,57943,57943,57943,57943,57943,60972,57943,57943,60975,57943,57943,57943,57943,57943,60750,57943,57943,57943,57943,528,528,528,57893,57893,57893,0,0,0,0,0,0,0,3660,528,528,528,528,3716,528,3718,528,528,528,528,528,528,528,528,528,528,3491,528,528,528,528,528,528,57893,57893,61070,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59385,57893,57893,57893,57893,57893,57893,57893,61082,57893,57893,57893,57893,57893,57893,57893,57893,61088,57893,61090,57943,61146,57943,61148,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,57893,0,0,0,528,528,528,528,3854,528,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,58277,57893,57893,58293,57893,57893,61216,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61229,57916,57916,57916,57916,57916,57916,57916,57916,57916,61235,57916,57916,57916,57916,57916,61467,57916,57916,61469,57916,57943,57943,57943,57943,57943,57943,57943,60449,57943,57943,60453,57943,57943,57943,57943,57943,61248,57943,57943,57943,57943,57943,57943,57943,57943,57943,61254,57943,57943,57943,57943,57943,57943,58980,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60734,57943,57943,57943,57943,57943,57916,61625,61626,57916,57916,57943,57943,61629,61630,57943,57943,0,0,0,0,528,528,528,528,4275,528,57893,57893,57893,57893,61623,57893,57916,0,761,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1789,0,761,0,0,0,0,0,761,761,0,0,828,0,0,0,0,0,0,738,0,644,738,0,742,743,644,0,0,528,528,852,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2919,528,528,528,528,911,57893,57893,57893,57893,58271,57893,57893,57893,57893,57893,57893,57893,58862,57893,57893,57893,50676,58773,990,57916,58871,58406,0,0,0,0,57893,57943,57943,57943,57943,58422,57943,57943,57943,57943,57943,57943,58981,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60985,57943,57943,57943,57943,57943,528,911,0,58271,57893,57893,57893,57893,58330,155942,1151,0,0,0,0,0,0,751,0,0,0,0,0,0,0,0,0,139264,147456,0,0,319,0,0,0,1279,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2337,0,57943,59035,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59028,57943,528,528,528,1983,58773,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59418,57893,57893,57893,57893,57893,57893,57893,59427,50676,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60377,57916,57916,57916,57916,59527,57893,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60746,57943,59623,528,528,528,528,528,57893,57893,57893,57893,57893,0,0,0,0,0,0,0,3142,0,0,0,0,0,0,0,752,0,0,0,0,0,0,758,0,59861,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59889,57916,57916,57916,57916,59950,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60675,57916,57916,60678,57943,57943,57943,57943,60033,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60042,57943,57943,57943,3812,528,57893,61158,57893,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,386,57916,57916,57916,57916,61240,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61255,57943,57943,57943,57943,61259,57943,528,528,57893,57893,0,0,0,0,0,0,0,0,0,0,0,3146,0,0,0,0,0,334,0,0,0,0,0,0,0,0,0,0,0,334,385,387,0,0,0,0,0,0,0,0,0,0,0,0,0,402,0,0,0,0,3672,0,0,0,0,0,0,0,0,0,0,0,1786,0,0,0,0,334,0,0,0,0,0,0,0,0,0,0,0,0,334,0,0,139264,147456,0,0,0,0,0,425,425,0,0,131072,425,0,0,0,0,425,0,447,0,0,425,335,477,477,477,490,490,490,490,490,490,490,490,490,490,511,519,519,519,519,519,526,519,519,519,526,519,519,519,519,519,519,536,57902,536,57902,536,536,57902,536,536,57925,57902,536,536,57902,57902,57902,57902,57952,57952,57902,57902,57902,57902,57952,57952,57902,536,57902,57902,57925,57902,57902,57902,57902,57902,57902,57902,57925,57925,57902,57902,57952,57902,57902,57902,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,780,0,0,0,0,0,0,0,0,0,0,0,0,0,2789,2790,0,0,795,0,0,0,0,0,0,0,799,0,0,0,0,0,0,0,2330,0,0,0,0,0,0,0,0,1238,0,0,0,0,0,0,0,819,0,0,0,0,0,819,819,0,0,0,0,799,0,0,0,0,0,1750,0,0,0,0,0,0,0,0,0,0,2850,0,0,0,0,0,0,0,0,835,795,0,0,835,0,0,0,0,0,0,0,528,528,528,4154,528,528,528,528,528,528,528,3234,528,528,528,528,528,528,528,528,528,3942,528,528,528,528,528,528,528,528,528,855,528,864,528,528,528,528,528,528,528,528,528,528,528,3944,528,528,528,528,528,528,528,912,57893,57893,57893,57893,57893,58274,57893,58283,57893,57893,57893,57893,57893,59395,59396,57893,57893,57893,57893,57893,57893,57893,57893,57893,59897,57893,57893,57893,57893,57893,57893,58350,57916,58359,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58401,57916,57916,58407,0,0,0,0,57893,57943,57943,57943,57943,57943,58425,57943,58434,57943,57943,528,1354,528,528,528,528,58793,57893,57893,57893,57893,57893,1151,0,1143,912,0,57893,57893,57893,57893,58493,58331,155942,1151,0,0,0,0,0,0,790,0,802,0,816,0,0,0,0,810,1246,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1821,0,0,0,1308,0,0,0,0,0,0,0,0,1313,0,0,0,0,0,1796,0,0,0,0,0,0,0,0,0,0,1211,368,368,0,0,1214,528,528,528,1350,528,528,528,528,528,528,528,528,528,1369,528,528,0,0,0,2933,0,1986,57893,57893,57893,57893,57893,57893,57893,57893,59884,57893,57893,57893,57893,57893,57893,57893,528,1409,528,528,1413,528,528,528,528,528,1420,528,528,528,1427,528,528,0,57893,57893,57893,58315,57893,57893,155942,1151,0,0,0,0,0,0,0,6324224,4358144,4358144,5005312,4358144,4358144,4358144,512e4,5136384,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6119424,4358144,6168576,4358144,4358144,4358144,4358144,58773,914,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58789,57893,57893,57893,57893,57893,61379,57893,61381,61382,57893,61384,57893,61386,57916,57916,57916,57916,57916,60385,57916,57916,57916,57916,57916,57916,60393,57916,57916,57916,57916,57916,60691,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59484,57916,57916,57916,57916,57916,57893,57893,58818,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59914,57893,57893,57916,58954,57916,57916,57916,58961,57916,0,57893,57943,57943,57943,57943,57943,57943,57943,57943,61140,57943,57943,57943,57943,57943,57943,57943,57943,60969,57943,60971,57943,57943,57943,57943,57943,57943,57943,57943,59038,57943,57943,59042,57943,57943,57943,57943,57943,59049,57943,57943,57943,528,528,57893,57893,0,0,0,0,0,0,0,0,3923,59056,57943,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,1151,0,0,0,0,4003,3675,0,0,0,0,0,0,0,0,528,528,528,528,528,528,528,1345,1844,1845,0,1847,0,0,0,0,0,0,0,0,0,0,0,0,806,0,0,0,0,1861,0,1863,0,0,0,0,0,0,0,0,0,0,0,0,839,0,0,528,0,0,0,1875,0,0,0,0,0,0,0,0,0,0,0,0,990,0,0,0,0,0,1861,0,0,0,0,0,528,528,528,528,528,528,528,528,3223,528,528,528,528,528,528,1949,528,528,528,528,528,528,528,528,1958,528,528,528,528,528,2478,528,528,528,528,528,528,528,528,528,528,1421,528,528,528,528,528,528,528,528,1967,528,528,528,528,528,528,528,528,528,528,1977,1979,57893,57893,59392,57893,57893,57893,57893,57893,57893,57893,57893,59401,57893,57893,57893,57893,57893,59414,57893,57893,57893,57893,57893,57893,59420,57893,57893,57893,57893,57893,59410,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59421,59423,57893,57893,57893,57893,57893,61453,57893,57893,61455,57893,57916,57916,57916,57916,57916,57916,59482,57916,57916,57916,57916,57916,57916,57916,57916,57916,59983,57916,57916,57916,57916,57916,57916,57916,59492,57916,57916,57916,57916,57916,57916,57916,57916,59501,57916,57916,57916,57916,57916,57916,60940,60942,57916,57916,57916,57916,60946,57916,60948,60949,57916,59510,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59521,59523,57916,57916,57916,57916,57916,61570,57916,61571,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,60416,57943,57943,57943,59588,57943,57943,57943,57943,57943,57943,57943,57943,59597,57943,57943,57943,57943,57943,57943,57943,59043,57943,57943,57943,57943,57943,57943,57943,57943,58988,57943,57943,57943,57943,57943,57943,57943,59606,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59617,59619,57943,57943,57943,528,528,57893,57893,0,0,0,0,0,3921,0,0,0,0,0,1812,0,0,0,0,0,0,0,0,0,0,1839,0,0,0,0,0,0,0,2340,0,0,0,0,0,2346,0,0,0,0,0,0,0,372,0,0,0,380,382,0,0,0,0,0,0,2354,0,0,0,0,0,0,0,0,2362,0,0,0,0,0,1835,0,0,0,0,0,0,0,0,0,0,0,0,528,528,528,528,528,2424,528,528,528,528,528,528,528,528,528,528,3722,528,528,528,528,528,528,528,2436,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2930,528,528,528,2463,528,528,528,528,528,528,528,528,528,528,528,528,528,528,3240,3241,0,0,0,57893,57893,57893,57893,57893,57893,59855,57893,57893,57893,57893,57893,57893,0,0,57916,60658,57916,57916,57916,57916,57916,57916,58940,57916,57916,57916,57916,57916,57916,57916,57916,57916,59518,57916,57916,57916,57916,57916,57916,57916,60003,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58951,57916,57916,57916,57916,60018,57916,57916,57916,57943,57943,57943,57943,57943,57943,60027,57943,57943,528,1355,528,528,528,528,58794,57893,57893,57893,57893,57893,1151,0,57943,60086,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59570,57943,57943,57943,57943,60101,57943,57943,57943,2436,528,528,528,528,59867,57893,57893,57893,0,0,0,0,57916,59939,57916,57916,57916,57916,57916,57916,57916,60927,57916,60929,57916,57916,57916,57916,57916,57916,0,2793,0,2795,0,0,0,0,0,0,0,0,2800,0,0,2803,0,0,2818,0,0,0,0,0,0,0,2826,0,0,0,0,2828,0,2842,0,0,2845,0,0,0,0,0,0,0,0,0,0,2855,0,0,528,2869,528,528,528,528,528,528,528,528,528,528,528,528,528,2918,528,528,57893,57893,57893,57893,60327,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,61099,57916,57916,60336,57893,57893,57893,60339,57893,57893,57893,57893,57893,57893,0,0,0,0,0,0,2772,0,0,0,0,0,0,0,0,2359,0,0,0,0,0,0,0,0,57916,60345,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58894,57916,57916,57943,60433,57943,57943,57943,57943,57943,57943,57943,60438,57943,57943,57943,57943,57943,57943,57943,59549,57943,57943,57943,57943,57943,57943,57943,57943,57943,60067,57943,57943,57943,57943,57943,57943,57943,60444,57943,57943,57943,57943,57943,57943,57943,60452,57943,57943,57943,57943,57943,57943,57943,59595,57943,57943,57943,57943,57943,57943,57943,57943,57943,61543,57943,57943,0,0,0,0,60459,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60468,57943,57943,57943,528,528,57893,57893,0,0,0,3919,0,0,3922,0,0,60471,57943,57943,57943,57943,57943,57943,3131,528,528,528,528,60478,57893,57893,57893,0,0,0,0,59938,57916,57916,57916,57916,57916,57916,57916,59946,3204,0,0,0,3206,0,0,0,0,0,0,0,0,0,0,0,1818,0,0,0,0,528,528,528,528,3244,528,528,528,528,528,528,528,528,528,528,3249,528,528,528,3252,528,3254,528,528,528,528,528,528,528,3258,528,528,0,0,2503,0,0,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,59858,57893,57893,57893,60632,57893,57893,57893,57893,60635,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59924,57893,59926,57893,57893,57893,57893,60641,57893,57893,57893,60644,57893,60646,57893,57893,57893,57893,57893,57893,57893,57893,58843,57893,57893,57893,57893,57893,57893,57893,60651,57893,57893,57893,57893,57893,0,0,57916,57916,57916,60659,57916,57916,57916,57916,57916,58905,57916,58907,57916,57916,57916,57916,57916,57916,57916,57916,60362,57916,57916,57916,57916,57916,57916,57916,57916,60664,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59458,57916,57916,57916,60680,60681,57916,57916,57916,57916,60684,57916,57916,57916,57916,57916,57916,57916,57943,60022,57943,57943,57943,57943,57943,57943,57943,57943,61153,57943,57943,57943,57943,57943,57943,528,57916,57916,57916,57916,60690,57916,57916,57916,60693,57916,60695,57916,57916,57916,57916,57916,57916,61105,57916,57916,57916,57916,57916,57916,57916,57916,57916,58944,57916,57916,57916,57916,57916,58952,57916,57916,57916,60700,57916,57916,57916,57916,57916,57943,57943,57943,60708,57943,57943,57943,528,528,57893,57893,3918,0,0,0,3920,0,0,0,0,0,0,3695,0,3697,528,528,528,528,528,528,528,1905,528,528,528,528,528,528,528,528,2926,528,528,528,528,528,528,528,57943,57943,60713,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61144,57943,57943,57943,57943,60729,60730,57943,57943,57943,57943,60733,57943,57943,57943,57943,57943,57943,57943,60036,57943,60038,57943,57943,57943,57943,57943,57943,57943,58984,57943,58989,57943,57943,58993,57943,57943,58996,57943,57943,57943,57943,60749,57943,57943,57943,57943,57943,528,528,528,57893,57893,57893,0,0,0,0,0,0,0,0,0,0,0,3417,0,0,3420,3421,0,0,0,0,0,0,0,0,0,0,0,1827,0,0,0,0,528,528,528,528,3486,528,528,528,528,3490,528,528,528,528,528,528,1952,1953,528,528,528,528,528,528,528,528,528,3517,528,528,528,528,528,57893,528,3496,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2931,528,3510,528,528,528,528,528,528,528,528,528,528,528,528,528,57893,57893,57893,61204,57893,57893,57893,60870,57893,57893,57893,57893,60874,57893,57893,57893,57893,57893,57893,57893,58863,58864,57893,57893,50676,58773,990,57916,57916,60880,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59901,57893,60895,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58830,57893,57916,57916,57916,57916,60912,57916,57916,57916,57916,60916,57916,57916,57916,57916,57916,57916,58962,0,58963,58964,57943,57943,57943,57943,57943,58971,57916,60922,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59472,57916,57916,57916,60937,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58927,57916,58929,57916,57943,57943,57943,57943,60954,57943,57943,57943,57943,60958,57943,57943,57943,57943,57943,57943,58982,57943,57943,57943,57943,58992,57943,57943,57943,57943,57943,57943,60964,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61256,57943,57943,57943,57943,60979,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60974,57943,60976,528,528,57893,57893,57893,0,0,0,0,3819,0,0,0,0,0,3822,0,528,528,528,528,528,528,3844,528,528,528,528,528,528,528,528,2481,528,528,528,528,528,2485,2486,57893,57893,61206,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59927,57893,57893,57893,57893,61217,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,57916,61225,0,0,3675,0,0,0,0,0,0,0,0,0,0,0,3934,0,0,0,0,4080,0,0,0,0,0,0,528,528,528,528,528,528,4211,528,4212,528,528,528,57893,57893,57893,57893,57893,57893,61562,57893,61563,57893,57893,57893,57893,57916,57943,4313,4314,61659,61660,61661,0,528,57893,57916,57943,0,0,0,0,0,2382,0,0,0,0,0,0,0,0,0,0,4284416,0,0,0,0,0,57943,57943,61578,57943,61579,57943,57943,57943,57943,0,0,0,0,0,0,528,528,4273,4274,528,528,57893,57893,61621,61622,57893,57893,57916,0,528,528,57893,57893,57916,57916,57943,57943,4303,4304,61649,61650,61651,0,528,528,528,528,528,528,528,528,528,2428,528,528,528,528,528,528,4096,528,528,4098,57893,57893,57893,57893,57893,57893,58861,57893,57893,57893,57893,50676,58773,990,57916,57916,537,57903,537,57903,537,537,57903,537,537,57926,57903,537,537,57903,57903,57903,57903,57953,57953,57903,57903,57903,57903,57953,57953,57903,537,57903,57903,57926,57903,57903,57903,57903,57903,57903,57903,57926,57926,57903,57903,57953,57903,57903,57903,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,57893,57893,58833,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60649,57893,57893,57916,59948,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59489,57916,57943,60031,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60044,57943,0,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2404,0,0,340,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2854,0,0,0,406,0,0,0,0,0,0,0,0,0,0,0,0,406,0,0,0,432,131072,0,432,432,0,0,0,432,0,452,432,0,0,0,0,4206,0,528,528,528,528,528,528,528,528,528,528,528,528,2430,528,528,432,478,478,478,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,538,57904,538,57904,538,538,57904,538,538,57927,57904,538,538,57904,57904,57904,57904,57954,57954,57904,57904,57904,57904,57954,57954,57904,538,57904,57904,57927,57904,57904,57904,57904,57904,57904,57904,57927,57927,57904,57904,57954,57904,57904,57904,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,661,0,661,0,0,0,0,826,0,0,0,661,0,0,0,0,0,5218304,0,0,0,0,5799936,0,5881856,0,0,0,0,0,0,5029888,5038080,0,0,5103616,5201920,0,0,0,0,0,0,1878,0,0,0,0,0,0,0,0,0,2296,0,0,0,0,0,0,842,528,528,528,857,528,528,528,528,528,528,528,528,528,528,898,528,528,528,528,57893,57893,58260,57893,57893,57893,58276,57893,57893,57893,57893,57893,57893,61220,57893,57893,57916,57916,57916,57916,57916,57916,57916,0,57893,57943,57943,57943,57943,57943,57943,57943,57943,59022,57943,59024,57943,57943,57943,57943,57943,57916,58352,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58393,57916,57916,57916,57916,57916,60913,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61471,57943,57943,57943,57943,57943,1160,0,0,0,0,0,0,0,0,0,1167,1168,0,0,0,0,0,0,1299,0,0,0,0,0,0,0,0,528,528,1340,528,528,528,528,528,0,0,0,1249,0,0,0,0,0,0,0,0,0,1260,1261,0,0,0,0,131072,0,0,0,0,0,0,0,0,0,0,0,0,2415,0,0,2418,528,528,528,528,1351,1358,528,528,528,528,528,528,528,528,1371,528,528,0,57893,57893,57893,58317,57893,57893,294,1151,0,0,1155,0,0,0,0,0,5857280,0,6463488,4939776,0,0,5455872,0,0,0,0,0,5554176,5570560,5578752,5619712,5668864,0,0,0,5791744,5816320,0,5857280,0,1373,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,1406,1408,528,528,528,528,528,528,528,528,528,528,528,1423,528,528,528,528,528,2910,528,528,528,528,528,528,2917,528,528,528,528,528,2490,528,528,528,528,528,528,528,528,528,0,0,57893,57893,57893,57893,57893,60612,57893,60613,57893,57893,57893,58773,914,57893,58776,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58790,58797,57893,57893,57893,57893,57893,57893,57893,57893,58810,57893,58812,57893,57893,57893,57893,57893,59867,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59872,57893,57893,57893,57893,57893,57893,58832,57893,58834,57893,57893,57893,57893,57893,57893,57893,58847,57893,57893,57893,57893,57893,59881,57893,57893,57893,57893,57893,57893,57893,57893,59888,57893,57916,57916,57916,58957,57916,57916,57916,0,57893,57943,58965,57943,57943,57943,57943,57943,57943,59548,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61154,57943,57943,57943,57943,528,58999,57943,59001,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59027,57943,57943,57943,57943,59037,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59052,57943,57943,57943,57943,57943,61139,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60454,57943,57943,57943,57943,1946,528,528,528,528,528,528,528,528,1955,528,528,528,528,528,528,1970,528,528,528,528,528,528,1976,528,528,528,528,1982,528,58773,1986,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60648,57893,57893,57893,57893,57893,57893,57893,57893,57893,59346,59347,57893,57893,57893,57893,59354,57893,57893,57893,57893,57893,58315,57893,57893,57893,57893,0,57916,57916,57916,57916,57916,57916,60349,57916,57916,57916,57916,60353,57916,57916,57916,57893,59426,57893,50676,2086,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60932,57916,60934,57916,57916,57916,57916,59446,59447,57916,57916,57916,57916,59454,57916,57916,57916,57916,57916,57916,59449,57916,57916,57916,57916,57916,57916,57916,57916,57916,60390,57916,57916,57916,57916,57916,57916,59526,57916,57893,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59051,57943,57943,57943,59542,59543,57943,57943,57943,57943,59550,57943,57943,57943,57943,57943,57943,57943,57943,57943,60425,57943,57943,57943,57943,57943,57943,0,2313,0,0,0,0,0,0,0,0,0,2322,0,0,0,0,0,0,3208,0,0,0,0,0,0,0,0,0,3210,3211,0,0,0,0,0,528,528,528,528,2477,528,528,528,528,528,528,528,2483,528,528,528,528,528,2924,528,528,528,528,528,528,528,528,528,528,528,2496,528,528,528,0,528,528,528,2488,528,528,528,528,528,528,528,528,528,528,528,0,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,0,0,990,57916,57916,57916,57916,57916,60004,57916,57916,57916,57916,57916,57916,57916,60010,57916,57916,57916,57916,57916,58921,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60917,57916,57916,57916,57916,57916,57943,57943,57943,60087,57943,57943,57943,57943,57943,57943,57943,60093,57943,57943,57943,57943,57943,57943,60967,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60040,57943,57943,57943,57943,57943,0,0,0,2782,0,0,0,0,0,0,0,0,0,0,0,0,1169,1170,1171,1172,3159,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1871,528,528,528,3231,528,528,528,528,528,528,528,528,528,528,528,528,528,3248,528,528,528,3262,528,0,0,57893,57893,57893,57893,57893,57893,57893,57893,60614,57893,57893,57893,50676,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59441,57893,57893,57893,57893,60622,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,61098,57916,57916,57916,57893,57893,57893,57893,60655,57893,0,0,57916,57916,57916,57916,57916,57916,57916,57916,60928,57916,57916,57916,57916,57916,57916,57916,60663,57916,57916,57916,57916,57916,57916,60671,57916,57916,57916,57916,57916,57916,57916,57916,61118,57916,57916,57916,57916,57916,57916,57916,57943,60712,57943,57943,57943,57943,57943,57943,60720,57943,57943,57943,57943,57943,57943,57943,57943,61340,57943,57943,528,57893,0,0,0,57893,57893,57893,61094,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,57916,61232,57916,57916,57916,57916,61233,61234,57916,57916,57916,528,528,57893,57893,57893,57893,57893,57893,57893,61513,57893,61515,57893,57893,57893,57893,57893,59894,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,0,57916,57916,58335,57916,57916,528,528,61559,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61567,61624,57916,57916,57916,57916,57943,61628,57943,57943,57943,57943,0,0,0,0,528,4272,528,528,528,528,57893,61620,57893,57893,57893,57893,57916,0,389,341,0,0,0,0,0,0,0,0,0,0,0,0,0,2801,0,0,463,479,479,479,463,463,463,463,463,463,463,463,463,463,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,539,57905,539,57905,539,539,57905,539,539,57928,57905,539,539,57905,57905,57905,57905,57955,57955,57905,57905,57905,57905,57955,57955,57905,539,57905,57905,57928,57905,57905,57905,57905,57905,57905,57905,57928,57928,57905,57905,57955,57905,57905,57905,1,24578,3,155942,156282,296,0,0,0,0,0,302,303,0,0,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3427,0,0,0,662,0,662,0,0,0,0,0,0,0,0,662,0,0,0,0,0,6225920,4358144,5062656,4358144,4358144,4358144,4358144,4358144,6225920,0,6086656,528,528,528,528,858,528,528,874,528,528,528,528,528,528,528,528,2913,528,528,528,528,528,528,528,57916,58353,57916,57916,58369,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61575,57943,57943,57943,0,1189,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3451,0,0,1318,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3480,0,0,0,1334,0,0,0,0,0,528,528,528,528,528,528,528,528,2876,528,528,528,528,528,528,528,528,528,1352,528,528,528,528,528,528,528,528,528,528,528,528,2469,528,528,528,528,528,528,1391,528,528,528,528,528,528,528,528,528,528,528,528,528,3493,528,528,528,528,1410,528,528,528,528,528,1418,528,528,528,528,528,528,528,1379,528,528,528,528,528,528,528,528,1954,528,528,1957,528,528,528,528,58773,914,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58791,57893,57893,57893,58857,57893,57893,57893,57893,57893,57893,57893,50676,58773,990,57916,57916,57916,57916,57943,57943,57943,60412,57943,60413,57943,57943,57943,57943,57943,57943,57943,58471,57943,57943,57943,57943,528,528,528,901,57943,57943,57943,57943,59039,57943,57943,57943,57943,57943,59047,57943,57943,57943,57943,57943,57943,59563,59564,57943,57943,57943,57943,57943,57943,57943,57943,57943,61484,0,0,4143,4144,0,0,0,1727,0,0,0,0,1734,0,0,0,0,0,0,0,0,0,2370,0,0,0,0,0,0,528,1916,528,528,528,528,528,528,528,528,528,528,528,528,1927,528,528,0,57893,57893,57893,58319,57893,57893,155942,1151,0,302,0,0,306,307,0,0,0,0,0,0,0,0,0,0,650,0,0,0,0,0,2351104,0,0,0,0,0,0,0,0,0,4358144,59359,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59370,57893,57893,57893,50676,0,57916,59433,57916,57916,57916,57916,57916,57916,57916,59440,57916,57943,57943,57943,59544,57943,57943,57943,57943,57943,57943,57943,57943,57943,59555,57943,57943,528,1714,528,1716,528,528,59063,57893,57893,59065,57893,57893,1151,0,57943,57943,57943,59577,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61143,57943,57943,0,0,2379,2380,0,0,0,0,0,2386,0,0,0,0,0,0,0,2785,0,0,0,0,0,0,0,0,1753,0,0,0,0,0,0,0,528,2474,528,528,528,528,2479,528,528,528,528,528,528,528,528,528,1396,528,528,528,1403,1405,528,2501,0,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60878,57893,57893,57893,57893,57893,57893,59906,57893,57893,57893,57893,59911,57893,57893,57893,57893,57893,57893,2999,0,57916,57916,57916,57916,57916,57916,57916,57916,57943,61327,57943,57943,61329,57943,57943,57943,57916,59964,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59506,57916,57943,60047,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60070,60071,57916,57916,57916,57916,61115,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58885,58892,57916,57916,57916,0,3925,3675,0,0,0,0,0,0,0,0,0,0,0,0,0,2838,2839,0,3949,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58850,57893,57893,57893,61308,57893,57893,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58886,57916,57916,57916,57916,4001,0,0,0,0,3675,0,0,0,0,0,0,0,0,528,528,528,528,528,528,1895,528,528,528,4016,528,528,528,528,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,57893,61375,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,61461,57916,61391,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61407,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,0,0,0,0,0,2316,0,0,0,0,0,0,0,0,0,0,3838,0,0,0,0,0,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61566,57916,0,0,0,0,57893,57943,57943,58410,57943,57943,57943,57943,57943,57943,58443,0,0,0,390,391,393,343,0,0,0,0,0,0,342,0,0,0,343,0,0,0,0,0,0,0,0,0,2787,0,0,0,0,0,0,0,0,0,390,0,0,0,0,0,0,343,0,0,0,390,0,0,0,0,131072,0,0,0,0,0,0,0,0,0,310,0,0,0,0,1749,0,0,0,0,0,0,0,0,0,0,0,540672,0,0,0,0,0,0,480,480,480,480,496,496,496,496,496,496,496,496,496,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,540,57906,540,57906,540,540,57906,540,540,57929,57906,540,540,57906,57906,57906,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,57929,57906,57906,57906,57906,57906,57906,57906,57929,57929,57906,57942,57956,57942,57942,57942,57942,57956,57956,57942,57942,57942,57942,57956,57956,57942,540,57906,57906,368,368,0,0,0,0,0,706,0,0,0,0,0,0,0,0,740,0,0,0,0,740,0,746,715,0,717,0,0,0,0,0,0,0,725,0,0,0,0,0,0,804,0,0,0,0,0,0,804,0,528,0,0,813,0,796,0,0,815,0,667,0,792,0,0,0,0,0,836,0,0,0,0,796,663,840,0,528,0,792,815,0,815,813,0,0,0,827,0,0,0,663,830,0,0,0,0,131072,0,0,0,0,0,0,0,444,0,0,0,0,0,690,691,0,0,0,0,696,0,0,0,368,843,528,528,528,859,528,528,875,528,528,528,528,889,528,528,528,528,528,3245,528,528,528,528,528,528,528,528,528,528,528,1398,528,528,528,528,528,907,528,528,57893,57893,58261,57893,57893,57893,58278,57893,57893,58294,57893,57893,57893,50676,0,59432,57916,59434,57916,59435,57916,59437,57916,59439,57916,57916,57893,57943,57943,57943,57943,57943,57943,57943,59534,57943,57943,57943,57943,57943,57943,59594,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60467,57943,57943,57943,57943,57943,57893,57893,58308,57893,57893,57893,57893,58326,57893,57893,0,57916,57916,58337,57916,57916,57916,57916,57943,57943,60411,57943,57943,57943,57943,57943,57943,57943,57943,57943,59044,57943,57943,57943,57943,57943,57943,57916,58354,57916,57916,58370,57916,57916,57916,57916,58384,57916,57916,57916,57916,58402,57916,0,0,0,0,57893,57943,57943,58411,57943,57943,57943,58427,57943,57943,57943,57943,57943,59005,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59008,57943,57943,57943,57943,57943,57943,57943,57943,58459,57943,57943,57943,57943,58477,57943,57943,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,1151,0,0,0,1170,0,0,0,0,0,0,0,1172,0,0,0,0,0,0,806,0,0,0,0,787,0,806,0,528,1293,0,0,0,0,0,0,0,0,0,0,0,0,1305,0,0,0,0,0,6307840,0,0,6356992,6381568,6397952,4800512,4808704,0,0,4890624,0,4947968,0,0,0,5046272,0,0,0,0,5185536,0,5234688,5300224,0,0,0,0,1210,0,0,0,0,0,0,0,0,0,1305,0,0,0,0,0,2343,0,0,0,0,0,2347,0,0,2349,0,0,1333,0,0,0,0,0,0,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,1353,528,528,528,528,528,528,528,528,528,528,528,528,2901,528,528,528,528,528,528,1377,528,528,528,528,528,528,528,528,528,528,528,528,528,3724,528,528,58773,914,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58792,0,0,1777,0,0,1780,0,1782,0,0,0,0,0,0,0,0,753,0,0,0,0,0,0,0,0,1833,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3667,3668,528,1898,528,528,528,528,528,528,528,528,1909,528,528,528,528,528,868,528,528,528,528,528,887,528,528,528,528,59341,57893,57893,57893,57893,57893,57893,57893,57893,59352,57893,57893,57893,57893,57893,57893,58325,57893,57893,57893,0,57916,57916,57916,57916,57916,57943,57943,57943,57943,59578,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60056,57943,57943,57943,0,2394,0,0,0,0,0,0,0,0,0,0,0,0,0,2405,0,528,528,528,2422,2423,528,528,528,528,528,528,528,528,528,528,1366,528,528,528,528,528,0,0,0,57893,57893,57893,59852,57893,59854,57893,57893,57893,57893,57893,57893,57893,59349,57893,57893,57893,57893,57893,57893,57893,57893,60647,57893,57893,57893,57893,57893,57893,57893,57893,59903,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59405,57893,0,2780,0,0,2783,0,0,0,0,0,0,2788,0,0,0,2791,2792,0,0,0,0,0,0,0,0,0,0,0,0,0,2802,0,0,0,0,131072,0,0,0,0,0,0,0,448,0,0,0,0,0,2307,0,0,0,0,0,0,0,0,0,0,3674,0,0,0,0,0,0,2817,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3677,0,0,0,2843,0,0,0,0,0,0,0,0,2851,0,0,0,0,0,0,3448,0,0,0,0,0,0,0,0,0,1287,1288,0,0,0,0,0,0,2857,0,0,0,0,2860,0,0,0,0,0,0,0,0,0,2862,0,0,0,0,0,0,2868,0,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,57893,57893,57893,57893,2879,528,528,2882,2883,528,528,528,528,528,2888,528,2890,528,528,528,528,528,3487,528,528,528,528,528,528,528,528,528,528,2468,528,528,528,528,528,528,2894,528,528,528,528,528,528,528,528,528,2900,528,528,528,528,528,1903,1904,528,528,528,528,1911,528,528,528,528,528,1935,528,528,528,1940,528,528,528,528,528,528,2897,528,528,528,528,528,528,528,528,528,528,3858,528,57893,57893,57893,57893,528,528,528,528,2908,528,528,528,528,528,528,2916,528,528,528,528,528,2439,528,528,528,528,2444,528,528,528,528,528,528,61594,57893,57893,57893,57893,57893,57893,57893,61600,57916,528,2921,528,528,528,528,528,528,528,528,528,528,528,528,528,528,1387,528,57893,60297,57893,60299,57893,57893,57893,57893,60303,57893,57893,57893,57893,57893,57893,57893,59382,57893,57893,57893,57893,57893,57893,57893,57893,59398,57893,57893,57893,57893,57893,57893,57893,57893,57893,60309,57893,57893,57893,57893,57893,57893,57893,57893,57893,60318,57893,57893,57893,0,0,0,2593,57916,57916,57916,57916,57916,57916,57916,57916,57916,60704,57916,57943,57943,57943,57943,57943,57943,57943,60957,57943,57943,57943,57943,57943,57943,57943,57893,57893,57893,60326,57893,57893,57893,57893,57893,60331,57893,57893,57893,57893,57893,57893,58837,57893,57893,57893,57893,57893,57893,57893,58851,57893,60355,57916,57916,60358,60359,57916,57916,57916,57916,57916,60364,57916,60366,57916,57916,57916,57916,57916,60925,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58884,57916,57916,57916,57916,57916,57916,60370,57916,57916,57916,57916,57916,57916,57916,57916,57916,60376,57916,57916,57916,57916,57916,58960,57916,0,57893,57943,57943,57943,57943,57943,57943,57943,57943,60732,57943,57943,57943,57943,57943,57943,57943,57943,60450,57943,57943,57943,57943,57943,57943,60458,57916,57916,60398,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59505,57916,57916,57943,57943,57943,60420,57943,57943,60423,60424,57943,57943,57943,57943,57943,60429,57943,60431,57943,57943,57943,57943,60435,57943,57943,57943,57943,57943,57943,57943,57943,57943,60441,57943,57943,57943,57943,57943,61150,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,528,3133,528,528,57893,57893,60480,57893,0,0,3161,3162,3163,0,0,0,0,0,0,0,0,0,0,0,2311,0,0,0,0,0,3176,0,0,0,0,0,0,0,3182,0,3184,0,0,0,0,0,0,3458,0,0,0,0,0,0,0,0,0,786,0,0,0,0,0,0,0,0,0,0,0,802,0,807,0,810,3188,0,0,0,0,3193,0,0,3196,0,0,0,0,0,0,0,389,0,139264,147456,0,0,0,0,0,528,528,3263,0,0,60608,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61086,57893,57893,57893,57893,57893,57893,57893,60653,57893,57893,60656,0,0,60657,57916,57916,57916,57916,57916,57916,57916,58880,57916,57916,57916,58889,57916,57916,57916,57916,57916,57916,60689,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59986,57916,57916,57916,57916,60699,57916,57916,60702,57916,57916,60705,60706,57943,57943,57943,57943,57943,57943,57943,60052,57943,57943,57943,57943,57943,57943,60057,57943,60727,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59031,57943,57943,57943,60738,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,58994,57943,57943,57943,57943,57943,57943,60748,57943,57943,60751,57943,57943,60754,3411,528,528,60758,57893,57893,57893,50676,2085,57916,57916,57916,57916,57916,59436,57916,57916,57916,57916,57916,57916,60373,57916,57916,57916,57916,57916,57916,57916,60379,57916,3429,0,0,0,0,3434,0,0,0,0,0,0,0,0,0,0,3675,0,0,0,0,0,0,0,0,528,528,0,0,0,3470,0,0,0,0,0,0,3477,0,0,3479,0,0,0,0,306,0,0,0,0,0,0,306,0,0,0,0,0,0,0,0,0,0,0,0,2852,0,0,0,528,528,3484,528,528,528,528,528,528,528,528,528,528,528,528,528,528,3259,528,3509,528,528,3511,528,528,528,528,528,528,528,528,528,528,528,57893,57893,57893,57893,61446,57893,57893,60868,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59928,57893,60894,57893,57893,60896,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60877,57893,57893,57893,57916,57916,60910,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60012,57916,57916,57916,60936,57916,57916,60938,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59485,57916,57916,57916,57916,57916,57943,57943,60952,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59009,57943,57943,57943,57943,57943,60978,57943,57943,60980,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60055,57943,57943,57943,60058,3661,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2312,3679,0,0,0,0,0,0,0,0,0,0,0,0,0,3691,0,0,0,0,131072,0,0,0,0,0,0,0,450,0,0,0,0,0,3457,0,0,0,0,3462,0,0,0,0,3466,3702,3703,528,528,528,528,3707,3708,528,528,528,528,528,3712,528,528,0,2932,0,0,0,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59859,57893,57893,528,57893,57893,57893,57893,57893,57893,57893,61073,61074,57893,57893,57893,57893,61078,61079,57916,57916,61102,61103,57916,57916,57916,57916,61107,61108,57916,57916,57916,57916,57916,61112,57943,57943,61136,61137,57943,57943,57943,57943,57943,61141,57943,57943,57943,57943,57943,57943,57943,60436,57943,57943,57943,57943,57943,57943,57943,57943,58476,57943,57943,57943,1139,528,528,528,57943,57943,61147,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,528,528,528,528,528,57893,57893,57893,0,0,3817,0,0,0,0,0,0,0,0,1165,0,0,0,0,0,0,0,0,0,3834,0,0,0,0,0,0,0,0,0,0,0,0,0,2865,0,0,57916,57916,57916,57916,61230,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59486,57916,57916,57916,57916,57943,61249,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60096,57943,0,0,3675,0,3928,0,0,0,0,0,0,0,0,0,0,0,2361,0,0,0,0,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61303,57893,57893,57893,50676,2086,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61236,61319,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,0,0,57943,57943,57943,61335,57943,57943,57943,57943,57943,57943,57943,528,57893,0,3999,0,0,0,0,131072,0,0,0,0,0,0,0,450560,0,0,0,0,0,372,0,0,0,0,0,0,0,0,0,0,2333,0,0,0,0,2338,0,4002,0,0,0,3675,0,0,0,0,0,0,0,0,528,528,528,1341,528,528,528,528,4014,528,528,528,528,4019,528,528,528,528,4024,528,528,57893,57893,61373,57893,57893,57893,57893,61378,57893,57893,57893,57893,61383,57893,57893,57893,57916,57916,61389,57916,57916,57916,57916,61394,57916,57916,57916,57916,61399,57916,57916,57916,57943,57943,61405,57943,57943,57943,57943,61410,57943,57943,57943,57943,61415,57943,57943,57943,0,0,0,0,0,2366,0,0,0,0,0,0,0,0,0,0,352256,0,352256,0,0,0,0,0,0,4078,0,0,4081,0,0,0,0,0,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,57916,528,528,4246,4247,528,528,57893,57893,57893,61596,61597,57893,57893,57893,57916,57916,57916,57916,57943,60410,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,58481,528,852,528,528,57916,61602,61603,57916,57916,57916,57943,57943,57943,61608,61609,57943,57943,57943,0,0,0,0,306,306,306,306,306,306,306,306,306,306,306,306,306,0,306,0,0,0,0,345,346,347,348,349,0,0,0,0,0,0,0,0,1181,0,0,0,0,0,0,0,0,0,349,348,131072,347,348,348,0,349,347,348,0,347,348,457,464,481,481,481,492,492,492,498,492,492,498,498,492,498,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,541,57907,541,57907,541,541,57907,541,541,57930,57907,541,541,57907,57907,57907,57907,57957,57957,57907,57907,57907,57907,57957,57957,57907,541,57907,57907,57930,57907,57907,57907,57907,57907,57907,57907,57930,57930,57907,57907,57957,57907,57907,57907,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,306,307,0,0,0,0,0,0,646,0,0,0,0,651,652,653,654,655,656,657,0,0,0,0,0,0,0,0,0,0,0,2388,0,0,0,0,0,0,0,672,673,0,675,676,0,0,0,0,0,682,0,0,0,0,307,0,0,0,0,0,0,307,0,0,0,0,0,0,0,0,0,0,0,0,352256,0,0,0,0,0,0,0,716,0,0,719,0,721,0,723,0,0,0,0,0,0,0,394,0,0,0,0,0,0,0,0,1222,0,0,0,0,0,0,0,0,0,733,0,0,0,0,0,0,0,0,0,0,0,0,0,3172,0,0,0,0,0,763,764,0,766,767,675,0,0,0,0,0,0,0,395,0,0,0,0,0,0,0,0,2319,0,0,0,0,0,0,0,0,0,0,782,783,0,785,0,0,0,0,764,0,0,791,0,0,0,0,131072,0,0,0,0,0,245760,0,0,0,0,245760,0,0,0,0,0,0,0,0,0,0,0,0,3171,0,0,0,0,692,0,0,0,764,0,0,0,0,0,0,0,0,757,821,0,0,0,757,0,0,824,699,0,0,0,829,0,0,0,831,0,0,0,692,699,0,0,692,829,829,0,0,0,0,0,528,528,528,528,528,528,2874,528,528,528,528,528,528,528,3489,528,528,528,528,528,528,528,528,3256,528,528,528,528,528,528,528,528,849,853,856,528,865,528,528,528,881,883,886,528,528,528,899,903,528,528,528,57893,57893,57893,58268,58272,58275,57893,58284,57893,57893,57893,58300,58302,58305,57893,57893,57893,58318,58322,57893,57893,57893,0,57916,57916,57916,58344,58348,58351,57916,58360,57916,57916,57916,58376,58378,58381,57916,57916,57916,58394,58398,57916,57916,57916,57916,58367,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59999,57916,57916,57916,57916,0,0,0,0,58409,57943,57943,57943,58419,58423,58426,57943,58435,57943,57943,528,3649,528,57893,60996,57893,0,0,0,0,0,0,0,0,1254,0,0,0,0,0,0,0,57943,58451,58453,58456,57943,57943,57943,58469,58473,57943,57943,57943,849,1140,528,899,903,1144,0,58489,58268,57893,58318,58322,58494,155942,1151,0,0,0,0,0,0,1179,0,0,0,0,0,0,0,0,0,1239,0,0,0,0,0,0,1278,0,0,0,0,1283,0,0,0,0,0,0,0,0,0,0,3675,0,3828,0,0,0,0,0,0,1321,0,0,0,0,0,0,0,0,0,0,0,0,1198,0,0,0,528,1375,528,528,528,1378,528,528,528,528,528,528,528,1385,528,528,0,2932,0,0,0,0,57893,57893,57893,57893,57893,57893,60282,57893,1389,528,528,528,528,528,528,528,528,528,528,528,1400,528,528,1407,58817,57893,57893,57893,57893,57893,57893,57893,58824,57893,57893,58828,57893,57893,57893,57893,57893,59895,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59898,59899,57893,57893,57893,57893,57916,57916,57916,58934,57916,57916,58941,57916,57916,57916,57916,57916,57916,57916,57916,57916,59984,57916,57916,57916,57916,57916,57916,57916,58955,57916,57916,57916,57916,57916,0,57893,57943,57943,57943,57943,57943,57943,57943,57943,61542,57943,57943,57943,0,4202,0,0,57943,57943,57943,59003,57943,57943,57943,59006,57943,57943,57943,57943,57943,57943,57943,59013,57943,57943,59017,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59029,57943,57943,57943,57943,57943,61337,57943,57943,57943,61341,57943,528,57893,0,0,0,0,3139,0,0,0,0,0,0,0,0,0,3149,57943,59036,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59050,57943,57943,57943,57943,57943,59019,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,58482,528,528,528,528,1822,0,1824,0,0,0,1826,0,746,0,0,0,0,0,0,0,399,0,0,404,0,0,0,0,0,1872,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2350,0,1757,0,0,0,0,0,0,528,1891,528,528,528,528,528,528,2440,528,528,528,528,528,528,528,528,528,528,2495,528,528,528,528,0,1897,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,1428,528,528,528,528,1919,528,528,528,528,528,528,528,528,528,528,1928,528,528,528,1932,528,528,1937,528,528,528,528,528,528,528,528,528,1419,528,528,528,528,528,528,528,528,528,528,58773,0,57893,59333,57893,57893,57893,57893,57893,57893,57893,59340,57893,57893,57893,59362,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59371,57893,57893,57893,57893,57943,57943,57893,57893,57893,57893,57943,57943,57893,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,61075,57893,57893,57893,57893,57893,58821,57893,57893,57893,58825,57893,57893,57893,57893,57893,57893,59348,57893,57893,57893,57893,57893,57893,57893,57893,57893,60875,57893,57893,57893,57893,57893,57893,57893,57893,59375,57893,57893,59380,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61457,57916,57916,57916,57916,57916,57916,57916,59462,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59471,57916,57916,57916,57916,58368,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60011,57916,57916,57916,57916,59475,57916,57916,59480,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59972,57916,57916,57916,59975,59558,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59567,57943,57943,57943,59571,57943,57943,59576,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59569,57943,57943,57916,57916,57916,59990,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58948,57916,57916,57916,57943,57943,57943,60073,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59010,57943,57943,57943,2804,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2376,57916,60409,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59030,57943,57943,57943,57943,60474,57943,57943,528,528,528,528,528,57893,57893,57893,57893,57893,2290,0,2291,0,0,3214,0,0,0,528,3218,528,528,528,528,528,528,528,528,528,528,1383,528,528,528,528,1388,3242,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,1962,57893,60633,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60335,57893,57916,57916,57916,57916,60682,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59998,57916,57916,57916,57916,0,0,3419,0,0,0,0,0,0,0,0,0,3425,0,0,0,0,0,2410,0,0,0,0,0,0,0,0,0,0,417792,309,310,0,0,0,0,3841,528,528,528,528,528,528,528,3846,528,528,528,528,528,528,2465,528,528,528,528,528,528,528,528,528,528,3943,528,3945,528,528,528,57893,57893,57893,57893,61208,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59369,57893,57893,57893,57893,57916,61227,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59524,57916,0,0,3675,3927,0,0,0,0,0,0,0,0,0,0,0,0,1266,0,0,0,528,528,528,3937,528,528,528,528,3941,528,528,528,528,528,3947,528,528,0,57893,57893,57893,58320,57893,57893,155942,1151,0,0,0,0,0,0,1751,0,0,0,0,0,0,0,0,0,754,0,0,0,0,0,0,528,528,57893,57893,57893,61296,57893,57893,57893,57893,61300,57893,57893,57893,57893,57893,58317,57893,57893,57893,57893,0,57916,57916,58336,57916,57916,61306,57893,57893,57893,57893,57916,57916,57916,61312,57916,57916,57916,57916,61316,57916,57916,57916,57916,58371,58373,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58945,57916,57916,57916,57916,57916,57916,57916,57916,61322,57916,57916,57916,57916,57943,57943,57943,61328,57943,57943,57943,57943,57943,57943,60981,57943,60983,57943,57943,57943,57943,57943,57943,57943,57943,60078,57943,57943,57943,57943,60083,57943,57943,61332,57943,57943,57943,57943,57943,61338,57943,57943,57943,57943,528,57893,0,0,0,0,0,2797,0,0,0,0,0,0,0,0,0,0,1881,0,0,0,0,0,528,528,528,4017,528,528,528,4021,528,528,528,528,528,57893,57893,57893,57893,57893,57893,58281,57893,57893,57893,57893,57893,57893,57893,61376,57893,57893,57893,61380,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,60939,57916,60941,57916,57916,57916,57916,57916,57916,57916,57916,58881,57916,57916,57916,57916,57916,57916,58896,57916,57916,61392,57916,57916,57916,61396,57916,57916,57916,57916,57916,57916,57943,57943,57943,61242,57943,57943,57943,61245,57943,57943,57943,57943,61408,57943,57943,57943,61412,57943,57943,57943,57943,57943,57943,0,0,0,0,0,2821,0,0,0,0,0,0,0,0,0,0,1739,0,0,0,0,0,0,4270,0,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,57916,61311,57916,57916,61313,57916,57916,57916,57916,57916,57916,59497,57916,57916,59500,57916,57916,57916,57916,57916,57916,57916,61526,57916,61528,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,60415,57943,57943,57943,57943,0,528,528,57893,57893,57916,57916,57943,57943,0,528,57893,57916,57943,4308,4309,61654,61655,61656,0,528,57893,57916,57943,0,528,57893,57916,57943,0,0,0,0,0,2831,0,0,0,0,0,0,0,0,0,0,1257,0,0,0,0,1262,0,350,0,408,0,0,0,0,0,0,0,0,0,0,408,0,350,0,139264,147456,0,0,0,0,0,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,542,57908,542,57908,542,542,57908,542,542,57931,57908,542,542,57908,57908,57908,57908,57958,57958,57908,57908,57908,57908,57958,57958,57908,623,57908,57974,57931,57908,57908,57908,57908,57908,57908,57908,57931,57931,57908,57908,57958,57908,57908,57908,57974,57974,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,0,131072,0,0,0,328,0,0,330,0,0,0,0,0,0,2847,2848,0,0,0,0,0,0,0,0,0,5808128,0,0,0,0,4792320,4833280,844,528,528,528,528,528,528,528,528,528,528,528,890,528,528,528,528,528,3499,528,528,528,528,528,528,528,528,528,3508,528,908,528,528,57893,57893,58262,57893,57893,57893,57893,57893,57893,57893,57893,57893,61222,57916,57916,57916,57916,57916,57916,57893,57893,58309,57893,57893,57893,57893,58327,57893,57893,0,57916,57916,58338,57916,57916,57916,57916,58877,57916,57916,57916,57916,58883,57916,57916,57916,57916,57916,57916,59993,59994,57916,57916,57916,57916,57916,57916,60001,57916,57943,57943,57943,57943,58460,57943,57943,57943,57943,58478,57943,57943,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,1151,1724,1173,0,0,0,0,1178,0,0,0,0,0,0,0,0,0,0,2310144,0,368,0,0,0,0,0,1173,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2816,528,528,528,528,1354,528,528,528,528,1364,528,528,528,528,528,528,2491,528,2493,528,528,528,528,528,528,0,58773,914,57893,57893,57893,58779,57893,57893,57893,57893,57893,57893,57893,57893,57893,58793,57916,58874,57916,57916,57916,57916,57916,57916,57916,57916,57916,58888,57916,57916,57916,57916,57916,59448,57916,57916,57916,57916,57916,57916,57916,57916,57916,59459,58898,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59961,57916,58914,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59987,59988,58953,57916,57916,57916,57916,57916,57916,0,57893,57943,57943,57943,58968,57943,57943,57943,57943,57943,59041,57943,57943,57943,57943,57943,57943,57943,57943,59053,59054,0,1728,0,0,0,0,1735,0,0,0,0,0,0,0,0,0,3424,0,0,0,0,0,0,0,0,1761,0,0,0,0,0,0,0,0,0,0,0,0,0,3185,0,0,1775,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2840,0,0,2353,0,0,0,0,0,0,0,0,0,0,0,0,0,3201,0,0,2449,528,528,528,528,528,528,2454,528,2456,528,528,528,528,528,528,2884,528,528,528,528,528,528,528,528,528,528,2915,528,528,528,528,528,2502,0,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61387,57916,57916,57893,57893,57893,59880,57893,57893,57893,57893,57893,57893,59885,57893,59887,57893,57893,57893,0,0,2592,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,61470,57943,57943,57943,57943,57943,57943,59976,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60013,57916,60059,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59033,528,2906,528,528,528,528,528,528,528,528,528,528,528,528,528,528,1960,528,57916,57916,60383,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60367,57916,57916,0,0,3675,0,0,0,0,3931,0,0,3933,0,0,0,0,0,0,1192,0,0,0,1196,1197,0,0,0,0,528,3936,528,528,3938,528,528,528,528,528,528,528,528,528,528,528,528,3247,528,528,528,528,528,57893,61295,57893,57893,61297,57893,57893,57893,57893,57893,57893,57893,57893,57893,61456,57916,57916,57916,57916,57916,57916,0,0,800,0,800,0,0,0,0,0,0,0,0,800,0,0,0,0,307,307,307,307,307,307,307,307,307,307,307,307,307,0,307,0,528,528,528,528,860,528,528,528,528,528,528,528,528,528,528,528,528,3257,528,528,3260,57916,58355,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60368,57916,1161,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3174,528,528,528,528,58773,1987,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59910,57893,57893,57893,57893,57893,57893,57893,57943,57943,60445,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59585,57943,57943,57893,61081,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60639,57893,0,0,0,351,0,0,0,0,0,0,0,0,0,0,0,0,1746,0,0,0,0,0,0,352,0,0,0,0,0,0,0,0,0,0,0,0,1756,1757,0,0,0,0,353,351,131072,0,351,351,0,353,0,351,0,0,351,353,351,0,0,0,351,351,351,351,351,351,351,351,505,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,543,57909,543,57909,543,543,57909,543,543,57932,57909,543,543,57909,57909,57909,57909,57959,57959,57909,57909,57909,57909,57959,57959,57909,543,57909,57909,57932,57909,57909,57909,57909,57909,57909,57909,57932,57932,57909,57909,57959,57909,57909,57909,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,811,812,0,0,0,0,0,0,758,0,0,817,0,0,0,0,0,0,4082,0,0,0,0,528,528,528,528,528,3221,528,3222,528,528,528,528,0,817,0,664,0,0,0,0,0,0,0,0,0,0,0,0,1787,0,0,0,832,0,0,0,0,0,0,812,0,0,0,0,0,0,0,528,528,528,528,528,2873,528,528,528,528,2877,528,528,528,0,2503,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61087,57893,57893,57893,57893,528,850,528,528,528,866,870,528,528,528,528,528,891,893,528,528,0,2932,0,0,0,0,57893,57893,57893,60280,57893,60281,57893,57893,57893,50676,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59473,904,528,528,528,57893,57893,58263,58269,57893,57893,57893,58285,58289,57893,57893,57893,0,2590,0,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,59970,57916,57916,57916,57916,57916,57916,57893,57893,58310,58312,57893,57893,58323,57893,57893,57893,0,57916,57916,58339,58345,57916,0,0,0,0,57893,57943,57943,58412,57943,57943,57943,58429,57943,57943,58445,57916,57916,58361,58365,57916,57916,57916,57916,57916,58386,58388,57916,57916,58399,57916,57916,57916,57916,58904,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60945,57916,57916,57916,57916,57943,57943,57943,57943,58461,58463,57943,57943,58474,57943,57943,57943,850,528,893,528,528,0,58270,58266,58491,58314,57893,57893,155942,1151,0,0,1154,0,0,0,0,0,245760,245760,245760,245760,245760,245760,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4358144,4358144,4358144,904,528,0,57893,58269,58312,57893,58323,57893,155942,1151,0,302,0,0,306,307,0,0,0,0,0,0,0,0,0,0,0,0,0,1772,0,0,0,0,0,1217,0,1219,0,1221,0,0,0,0,0,0,0,0,1286,0,0,0,0,0,0,0,0,1247,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3839,0,1332,0,0,0,0,0,0,0,528,528,528,528,528,528,528,528,528,528,528,528,3850,528,528,1374,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2461,528,528,528,1412,528,528,528,528,528,528,528,528,1424,1425,528,528,0,57893,57893,57893,57893,57893,57893,294,1151,0,0,0,0,0,0,0,5480448,4358144,4358144,4358144,4358144,4857856,4874240,4358144,4358144,58773,914,57893,57893,57893,57893,58780,57893,57893,57893,57893,57893,57893,57893,57893,57893,60289,57893,57893,57893,57893,57893,60294,57893,57916,57916,58875,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60378,57916,57916,57916,57916,58932,57916,57916,57916,57916,57916,57916,57916,58946,57916,57916,57916,57916,57916,57916,61241,57943,57943,57943,57943,57943,57943,57943,61246,57943,57916,57916,57916,58958,58959,57916,57916,0,57893,57943,57943,57943,57943,58969,57943,57943,3648,528,528,60995,57893,57893,0,0,0,0,0,0,0,0,1815,0,0,0,0,0,0,0,57943,59e3,59002,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59602,57943,57943,0,1808,0,0,0,0,0,0,0,0,0,0,0,0,0,0,212992,0,528,528,1966,528,528,528,528,528,528,528,528,528,1975,528,528,528,528,528,3513,3515,528,528,528,3518,528,3520,3521,528,57893,528,1981,528,528,58773,0,57893,57893,57893,57893,57893,57893,57893,59338,57893,57893,57893,50676,2087,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60674,57916,57916,57916,57916,57893,59409,57893,57893,57893,57893,57893,57893,57893,57893,57893,59419,57893,57893,57893,57893,57893,59907,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,0,57916,57916,58340,57916,57916,59425,57893,57893,50676,0,57916,57916,57916,57916,57916,57916,57916,59438,57916,57916,57916,57916,57916,61116,57916,57916,57916,57916,57916,57916,57916,57916,61124,57916,59509,57916,57916,57916,57916,57916,57916,57916,57916,57916,59519,57916,57916,57916,57916,59525,57943,57943,59559,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59620,57943,57943,2393,0,2395,0,0,0,0,0,0,0,0,0,0,2403,0,0,0,0,343,390,0,0,0,139264,147456,0,0,0,423,0,0,0,2408,2409,0,0,0,0,0,2413,0,0,0,0,0,0,0,3153,0,0,0,0,0,0,0,0,378,0,0,0,0,0,0,0,0,2419,528,528,528,528,528,528,2426,528,528,528,528,528,528,528,1394,528,528,528,528,528,528,528,528,2886,528,528,528,528,528,528,528,528,528,2450,528,528,528,528,528,528,528,528,2457,528,2459,528,2462,528,528,528,2476,528,528,528,528,528,528,528,528,528,528,528,528,528,61371,57893,57893,0,0,0,59849,57893,57893,57893,57893,57893,57893,57893,59857,57893,57893,57893,57893,57893,60301,57893,57893,57893,57893,57893,57893,57893,60306,57893,57893,59890,57893,59893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60304,57893,57893,57893,57893,59902,57893,57893,57893,57893,57893,59908,57893,57893,57893,57893,57893,57893,57893,57893,57893,60330,57893,57893,57893,60333,60334,57893,57893,57916,57916,59977,57916,59979,57916,59982,57916,57916,57916,57916,57916,57916,57916,57916,57916,60363,57916,60365,57916,57916,57916,57916,57916,57916,57916,57916,59991,57916,57916,57916,57916,57916,59997,57916,57916,57916,57916,57916,57916,61606,57943,57943,57943,57943,57943,57943,57943,0,0,57943,57943,60060,57943,60062,57943,60065,57943,57943,57943,57943,57943,57943,57943,57943,57943,59007,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60074,57943,57943,57943,57943,57943,60080,57943,57943,57943,57943,57943,57943,59612,57943,57943,57943,57943,57943,57943,57943,57943,57943,0,0,4240,0,0,0,528,0,0,0,2819,0,0,0,0,0,0,0,0,0,0,2827,0,0,0,0,131072,0,0,0,357,0,0,0,0,359,0,0,400,0,0,0,0,0,139264,147456,400,411,0,424,411,2841,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3187,528,2880,528,528,528,528,528,2885,528,528,528,528,528,528,528,528,3502,528,528,528,528,528,528,528,57893,57893,57893,60310,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60628,57893,57893,57893,57893,57916,60356,57916,57916,57916,57916,57916,60361,57916,57916,57916,57916,57916,57916,57916,57916,59953,57916,59955,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,60421,57943,57943,57943,57943,57943,60426,57943,57943,57943,57943,57943,57943,60064,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59566,57943,57943,57943,57943,57943,57893,60652,57893,57893,57893,57893,0,0,57916,57916,57916,57916,57916,60661,57916,60662,57916,57916,57916,57916,60701,57916,57916,57916,57916,57943,57943,57943,57943,57943,60710,57943,57943,57943,57943,57943,61481,57943,57943,61483,57943,0,0,0,0,0,0,0,2808,0,0,0,0,0,0,0,0,350,0,0,0,0,0,0,0,60711,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59587,528,3483,528,528,528,528,528,528,528,528,528,528,528,528,528,528,1978,528,60867,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59929,57916,60909,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60395,57916,57916,57943,60951,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60069,57943,57943,0,3670,0,0,0,0,0,0,0,0,0,0,0,0,0,0,278528,0,0,0,3675,0,0,0,3930,0,0,0,0,0,0,0,0,0,3476,0,0,0,0,0,0,3935,528,528,528,528,3939,528,528,528,528,528,528,528,528,528,3948,528,528,61294,57893,57893,57893,57893,61298,57893,57893,57893,57893,57893,57893,57893,57893,60342,57893,57893,0,0,0,3e3,0,57893,61307,57893,57893,57893,61310,57916,57916,57916,57916,61314,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,0,0,0,0,528,528,528,3219,528,528,528,528,528,3224,528,528,57916,57916,57916,57916,61323,57916,57916,57916,61326,57943,57943,57943,57943,61330,57943,57943,57943,57943,57943,60089,60090,60091,57943,57943,57943,57943,57943,57943,57943,57943,57943,59615,57943,57943,57943,57943,59621,57943,4090,528,528,528,528,528,528,528,528,528,57893,57893,57893,57893,57893,61447,0,0,0,4149,0,528,528,528,528,528,528,528,528,528,528,528,528,528,3851,528,528,528,528,528,4248,528,57893,57893,57893,57893,57893,61598,57893,57893,57916,57916,57916,57916,58919,57916,57916,58923,57916,57916,57916,57916,57916,57916,57916,57916,61572,61573,57916,57916,57943,57943,57943,57943,57916,57916,57916,61604,57916,57916,57943,57943,57943,57943,57943,61610,57943,57943,0,0,0,0,363,0,0,0,0,139264,147456,0,0,0,0,0,0,1307,0,528,528,1339,528,1342,528,528,528,4269,0,4271,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,57916,0,0,0,0,57893,57943,57943,58413,57943,57943,57943,57943,57943,57943,57943,57943,61582,0,0,0,0,0,0,528,388,0,354,0,0,0,0,0,397,398,0,399,0,0,0,0,0,0,4208,528,528,528,528,528,528,528,528,528,1380,528,528,528,528,528,528,371,379,407,0,0,0,371,0,0,354,0,0,0,371,0,410,412,0,371,399,0,0,371,379,0,139264,147456,399,410,0,0,410,0,0,0,433,131072,0,433,433,443,0,0,433,0,412,433,0,0,0,0,131072,0,0,0,438,0,0,0,0,0,311,0,0,0,0,2796,0,0,0,0,0,0,0,0,0,0,0,450560,450560,0,0,0,465,0,0,0,493,493,493,493,493,493,493,493,493,493,515,515,515,515,515,527,515,515,515,527,515,515,515,515,515,515,544,57910,544,57910,544,544,57910,544,544,57933,57910,544,544,57910,57910,57910,57910,57960,57960,57910,57910,57910,57910,57960,57960,57910,624,57910,57975,57933,57910,57910,57910,57910,57910,57910,57910,57933,57933,57910,57910,57960,57910,57910,57910,57975,57975,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,0,131072,0,0,0,441,342,0,0,0,453,0,342,343,344,0,0,0,0,0,0,0,0,0,0,0,0,0,2853,0,0,0,306,307,0,0,0,643,0,0,0,0,0,0,0,0,0,3687,0,0,0,0,0,0,669,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3428,845,528,528,528,528,528,528,876,878,528,528,528,528,528,528,528,1415,528,528,528,528,528,528,1426,528,528,528,528,528,57893,57893,58264,57893,57893,57893,57893,57893,57893,58295,58297,57893,57893,57893,57893,58803,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59384,57893,57893,57893,57893,58448,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,528,528,528,528,57893,57893,57893,57893,57893,2290,1725,2291,0,0,0,0,0,1309,1335,1336,0,1309,528,528,528,528,528,528,1344,528,528,528,528,528,3706,528,528,528,528,528,528,528,528,528,528,528,1974,528,528,528,528,528,528,1348,528,528,1359,528,528,1363,528,528,528,528,528,528,528,1416,528,528,528,528,528,528,528,528,3709,528,528,528,528,528,528,528,58773,914,57893,57893,57893,57893,57893,57893,57893,58783,57893,57893,57893,58787,57893,57893,57893,57893,57893,60623,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58845,57893,57893,57893,57893,57893,58798,57893,57893,58802,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60638,57893,57893,57893,57893,57916,58916,57916,57916,57916,58920,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59469,57916,57916,57916,57916,57916,58972,57943,57943,57943,58976,57943,57943,58987,57943,57943,58991,57943,57943,57943,57943,57943,57943,60076,60077,57943,57943,57943,57943,57943,57943,60084,57943,59014,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59604,1745,1746,0,0,0,0,0,0,0,0,0,0,0,0,0,0,507904,0,0,0,0,1778,0,0,0,0,0,0,0,0,0,0,0,0,1828,0,0,0,1791,0,1793,0,0,0,1797,0,0,0,1801,0,0,0,1805,0,0,0,0,131072,0,0,0,442,0,0,0,449,0,0,0,0,0,2846,0,0,0,0,0,0,0,0,0,0,1224,0,0,0,0,0,1980,528,528,528,58773,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60625,57893,57893,57893,57893,57893,57893,57893,57943,57943,57943,57943,59545,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60068,57943,57943,57943,0,0,2314,0,2315,0,0,0,0,0,0,0,0,0,0,0,262738,0,0,0,0,2377,0,0,0,0,0,0,2384,0,0,0,0,0,0,0,0,1326,1327,0,0,1167,0,0,0,0,528,528,2421,528,528,528,528,528,528,528,528,528,528,528,528,888,528,528,528,528,528,528,528,2489,528,528,528,528,528,528,528,528,528,528,0,0,57893,57893,57893,57893,60611,57893,57893,57893,57893,57893,57893,59868,57893,57893,57893,57893,57893,57893,57893,57893,57893,58330,0,57916,57916,57916,57916,58347,0,0,0,57893,57893,59851,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60901,57893,57893,57893,57893,57893,57893,57893,60113,0,0,1729,0,0,1736,0,0,0,0,0,0,0,0,0,139264,147456,0,0,0,0,0,0,0,2858,0,0,0,0,0,0,0,0,0,2864,0,0,0,0,0,3152,0,0,0,0,0,0,0,0,0,3158,57893,57893,57893,57893,60311,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60890,57893,60892,57893,57893,60323,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60295,60443,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60455,57943,57943,57943,57943,57943,59593,57943,57943,59596,57943,57943,57943,57943,57943,57943,57943,57943,59551,57943,57943,57943,57943,57943,57943,57943,57943,59565,57943,57943,57943,57943,57943,57943,57943,57943,59580,57943,57943,57943,57943,57943,57943,57943,57943,59614,57943,57943,57943,57943,57943,57943,57943,57943,60037,57943,57943,60041,57943,57943,57943,60045,0,0,3190,0,0,0,0,3195,0,0,0,0,0,0,0,0,1783,1784,1785,0,0,0,0,0,3250,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2472,57893,57893,60642,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61385,57893,57916,57916,57916,0,3468,3469,0,0,0,0,3474,0,0,0,0,0,0,0,0,1799,0,0,0,0,0,0,0,0,0,3681,0,0,0,3684,0,0,0,0,0,0,0,0,3692,57893,61092,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,0,0,0,0,4290,528,3813,57893,57893,61159,3816,0,0,0,0,3820,0,0,0,0,0,0,1236,0,0,0,0,0,0,0,0,0,2799,0,0,0,0,0,0,0,3833,0,0,0,0,3837,0,0,0,0,0,0,0,0,3840,0,528,528,528,3842,528,528,528,3845,528,528,528,528,528,528,528,1938,528,528,528,528,528,528,528,528,3235,528,528,3238,528,528,528,528,57893,57893,57893,61207,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61084,57893,57893,57893,57893,57893,57893,57893,61226,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60407,57916,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61302,57893,61304,57893,57893,57893,57893,58819,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59913,57893,57893,57893,57893,57916,61320,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,4268,0,57943,57943,61334,57943,61336,57943,57943,57943,57943,57943,57943,528,57893,0,0,0,0,0,3164,0,0,0,0,3169,0,0,0,0,0,0,1220,0,0,0,0,0,1226,0,1228,0,4146,0,0,0,0,528,528,528,528,528,528,528,528,528,528,4160,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61516,57893,57893,57893,0,2591,0,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,59996,57916,57916,57916,57916,57916,57916,528,528,57893,57893,61560,57893,61561,57893,57893,57893,57893,57893,57893,57893,57893,57916,0,0,0,0,57893,57943,57943,58414,58420,57943,57943,57943,58436,58440,57943,57943,57943,57943,57943,61411,57943,61413,61414,57943,61416,57943,61418,0,0,0,0,0,1849,0,0,0,0,0,0,1748,0,0,0,0,0,1864,0,0,0,0,0,0,0,0,0,0,2401,0,0,0,0,0,57916,61568,57916,61569,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,61576,57943,57943,57943,57943,57943,61539,57943,61541,57943,57943,57943,57943,0,0,0,0,0,0,3435,0,0,0,0,0,0,0,0,0,1273,0,0,0,0,0,0,61577,57943,57943,57943,57943,57943,57943,57943,57943,0,0,0,0,0,0,528,528,528,2871,2872,528,528,528,528,528,528,528,528,528,528,3237,528,528,528,528,528,358,359,360,0,0,0,0,0,0,0,0,0,368,0,296,0,0,0,0,131072,0,352256,352256,0,0,0,352256,0,0,352256,0,352256,352256,352256,352256,352256,352256,352256,352256,352256,352256,352256,352256,352256,352256,352256,352256,0,482,482,482,0,0,0,0,0,0,0,0,0,0,516,516,520,520,520,520,520,516,520,520,520,516,520,520,520,520,520,520,545,57911,545,57911,545,545,57911,545,545,57934,57911,545,545,57911,57911,57911,57911,57961,57961,57911,57911,57911,57911,57961,57961,57911,625,57911,57976,57934,57911,57911,57911,57911,57911,57911,57911,57934,57934,57911,57911,57961,57911,57911,57911,57976,57976,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,0,245760,0,0,245760,0,0,245760,0,0,245760,0,245760,0,0,0,0,0,0,0,0,0,0,0,0,0,516567,516567,516567,0,306,307,0,0,0,0,644,0,0,0,0,0,0,0,0,1837,0,0,0,0,0,0,0,0,0,687,688,0,0,0,0,0,0,0,0,0,0,0,368,368,0,0,0,760,0,0,0,0,765,0,0,0,0,0,0,0,0,0,0,4841472,0,0,0,4898816,0,794,0,0,0,0,0,0,0,0,0,0,803,0,808,0,0,0,0,392,0,0,0,396,392,0,0,0,0,0,0,0,2823,0,0,0,0,0,0,0,0,677,0,0,0,0,0,0,0,0,0,0,820,0,0,0,0,0,644,0,0,0,0,0,0,0,3436,0,0,0,0,0,0,0,0,681,0,0,0,0,0,0,680,0,0,794,0,0,0,0,0,0,0,0,644,0,0,794,528,528,528,528,528,3717,528,528,528,528,528,528,528,528,528,528,1381,528,528,528,528,528,846,528,528,528,528,867,871,877,528,882,528,528,528,528,528,900,528,528,528,528,57893,57893,58265,57893,57893,57893,57893,58286,58290,58296,57893,58301,57916,57916,58362,58366,58372,57916,58377,57916,57916,57916,57916,57916,58395,57916,57916,57916,57916,57916,61231,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60686,57916,57916,57916,57916,57916,57943,58452,57943,57943,57943,57943,57943,58470,57943,57943,57943,57943,528,528,528,900,1215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3441,1264,0,0,0,0,0,1269,0,0,0,0,0,1274,0,0,0,0,0,3179,0,0,0,0,0,0,0,0,0,0,679,0,0,0,0,0,0,1294,0,0,1165,0,0,0,1300,0,1302,0,0,0,0,0,0,1284,0,0,0,0,0,0,0,0,0,1301,0,0,0,0,0,0,0,1300,1319,0,1322,0,0,0,1196,0,0,0,0,1330,0,0,1215,1330,1337,528,528,528,528,1343,528,528,528,528,1349,528,528,528,528,528,528,528,528,528,528,1370,528,528,0,57893,57893,57893,57893,57893,57893,155942,0,0,0,0,0,0,0,1285,0,0,0,0,1290,0,0,0,58773,914,58775,57893,57893,57893,57893,57893,58782,57893,57893,57893,57893,58788,57893,57893,57893,57893,57893,60872,57893,57893,57893,57893,57893,60876,57893,57893,57893,57893,57893,58860,57893,57893,57893,57893,57893,50676,58773,990,57916,57916,57916,58917,57916,57916,57916,57916,58922,57916,57916,57916,57916,57916,57916,57916,57916,57916,60403,57916,57916,57916,60406,57916,57916,58930,57916,57916,57916,58937,58939,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59957,57916,57916,57916,57916,57916,57943,57943,57943,57943,58977,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,58998,57943,59016,57943,57943,57943,57943,57943,59021,57943,57943,57943,59025,57943,57943,57943,59032,59034,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59622,57943,59057,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,1151,0,0,0,0,385024,0,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5259264,4358144,4358144,4358144,4358144,0,0,1729,0,0,0,0,1736,0,0,0,0,0,0,0,0,1880,0,0,0,0,0,0,0,0,0,1747,1748,0,0,0,0,0,1754,0,0,0,0,0,0,0,3447,0,0,0,0,0,3450,0,3452,0,1776,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5177344,0,0,0,0,0,1794,0,0,0,0,0,0,0,1802,1803,0,0,0,0,0,3207,0,0,0,0,0,0,0,0,0,0,3183,0,0,0,0,0,0,0,0,1810,0,0,0,0,0,0,0,0,0,0,0,0,1841,0,1843,0,0,0,1874,0,0,0,0,0,0,0,0,0,0,0,0,0,3213,0,0,528,528,528,1901,528,528,528,528,1907,528,528,528,528,528,528,528,2441,528,528,528,528,528,528,528,528,3720,528,528,528,528,528,528,528,528,528,528,1918,528,528,528,528,1922,528,528,528,528,528,528,528,2466,2467,528,528,528,528,528,528,528,1417,528,528,528,528,528,528,528,528,3856,528,528,528,57893,57893,57893,57893,528,528,528,528,1968,1969,528,528,528,528,528,528,528,528,528,528,1924,1925,528,528,528,528,57893,57893,59344,57893,57893,57893,57893,59350,57893,57893,57893,57893,57893,57893,57893,57893,61212,57893,57893,57893,57893,57893,57893,57893,57893,57893,59361,57893,57893,57893,57893,59365,57893,57893,57893,57893,57893,57893,57893,57893,59883,57893,57893,57893,59886,57893,57893,57893,57893,57893,57893,57893,57893,59378,57893,57893,57893,59383,57893,57893,57893,57893,57893,57893,57893,59909,57893,57893,57893,57893,57893,57893,57893,59915,57893,57893,57893,59412,59413,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59921,57893,57893,57893,57893,57893,57893,57893,57893,59351,57893,57893,57893,57893,57893,57893,57893,57916,59444,57916,57916,57916,57916,59450,57916,57916,57916,57916,57916,57916,57916,57916,57916,60685,57916,57916,57916,57916,57916,57916,57916,59461,57916,57916,57916,57916,59465,57916,57916,57916,57916,57916,57916,57916,57916,57916,60943,57916,57916,57916,57916,57916,57916,57916,57916,57916,59478,57916,57916,57916,59483,57916,57916,57916,57916,57916,57916,57916,57916,60021,57943,57943,57943,57943,57943,57943,57943,60029,57916,57916,59512,59513,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59470,57916,57916,57916,57943,57943,57943,57943,59546,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59557,57943,57943,57943,57943,59561,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60082,57943,57943,57943,57943,59574,57943,57943,57943,59579,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60735,57943,57943,57943,57943,57943,59608,59609,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60095,57943,57943,2302,2303,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5767168,0,2339,0,0,2341,2342,0,0,0,0,0,0,0,0,0,0,0,335872,0,0,0,0,528,2434,528,528,2438,528,528,528,2442,528,528,528,528,528,528,528,2912,528,528,528,528,528,528,528,528,528,3857,528,528,57893,57893,57893,57893,528,528,528,528,2452,528,528,528,2455,528,528,528,528,528,528,528,2925,528,528,528,2928,528,528,528,528,528,2487,528,528,528,528,528,2492,528,528,528,528,528,528,528,0,0,57893,57893,57893,60610,57893,57893,57893,57893,57893,60615,57893,0,2503,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60288,57893,57893,60291,60292,57893,57893,57893,57893,57893,57893,57893,57893,59865,57893,57893,59869,57893,57893,57893,59873,57893,57893,57893,57893,57893,60312,57893,57893,57893,57893,57893,57893,57893,60320,57893,57893,59916,57893,57893,57893,57893,59920,57893,57893,57893,57893,57893,59925,57893,57893,57893,57893,57893,60328,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58867,50676,58773,990,58870,57916,57916,57916,57916,57916,60005,57916,57916,57916,57916,60009,57916,57916,57916,57916,57916,60014,57943,57943,57943,57943,60088,57943,57943,57943,57943,60092,57943,57943,57943,57943,57943,60097,2856,0,0,0,0,0,0,0,0,0,0,2863,0,0,0,0,0,0,212992,0,0,0,0,0,212992,212992,212992,212992,2893,528,528,528,528,2896,528,528,2898,528,2899,528,528,528,528,528,1356,528,1361,528,528,1365,528,528,1368,528,528,528,528,528,2907,528,528,2911,528,528,528,528,528,528,528,528,528,2494,528,528,2497,2498,528,0,2920,528,528,528,2923,528,528,528,528,528,528,528,528,528,528,528,528,3506,3507,528,528,57893,60308,57893,57893,57893,57893,57893,57893,57893,57893,57893,60317,57893,57893,60321,57893,57893,57893,57893,58835,57893,57893,57893,58842,58844,57893,57893,57893,57893,57893,57893,59381,57893,57893,57893,57893,57893,57893,57893,57893,57893,60902,57893,57893,60905,57893,57893,57893,0,57916,57916,60346,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60354,60369,57916,57916,57916,57916,60372,57916,57916,60374,57916,60375,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,4288,0,0,0,528,57916,57916,57916,57916,60384,57916,57916,60388,57916,57916,57916,57916,57916,57916,57916,57916,60402,57916,57916,57916,57916,57916,57916,57916,57916,59995,57916,57916,57916,57916,6e4,57916,57916,57916,60397,57916,57916,57916,60400,60401,57916,57916,57916,57916,57916,57916,57916,57916,57916,60683,57916,57916,57916,57916,57916,57916,57916,57916,59452,57916,57916,57916,57916,57916,57916,57916,57943,57943,60419,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60469,57943,57943,57943,57943,57943,60434,57943,57943,57943,57943,60437,57943,57943,60439,57943,60440,57943,57943,57943,57943,57943,60422,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61155,57943,57943,57943,528,57943,57943,57943,57943,60462,57943,57943,57943,60465,60466,57943,57943,57943,57943,57943,57943,57943,60752,57943,57943,528,528,528,57893,57893,57893,0,0,0,0,0,3658,0,0,3228,528,528,528,528,3233,528,528,528,3236,528,528,528,528,528,528,3255,528,528,528,528,528,528,528,528,528,528,2482,528,528,528,528,528,3261,528,528,0,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60616,57893,60619,57893,57893,57893,57893,60624,57893,57893,57893,60627,57893,57893,57893,57893,57893,58805,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,61460,57916,57893,57893,57893,60654,57893,57893,0,0,57916,57916,57916,57916,57916,57916,57916,57916,60692,57916,57916,57916,57916,57916,57916,57916,57916,59499,57916,57916,57916,57916,57916,57916,57916,57916,57916,60665,57916,60668,57916,57916,57916,57916,60673,57916,57916,57916,60676,57916,57916,57916,57916,58935,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58887,57916,57916,57916,57916,57943,57943,57943,60714,57943,60717,57943,57943,57943,57943,60722,57943,57943,57943,60725,57943,57943,57943,57943,57943,61580,61581,57943,57943,0,0,0,0,4242,0,528,528,528,528,528,528,528,528,2427,528,528,528,528,2431,528,0,3454,0,3455,0,0,0,0,0,0,0,0,0,0,0,0,1883,0,0,0,528,528,528,3485,528,528,528,528,528,528,528,528,528,528,528,528,1384,528,528,528,528,528,3497,528,528,528,528,528,528,528,528,3505,528,528,528,528,528,2453,528,528,528,528,528,528,528,528,528,528,1382,528,528,528,1386,528,57893,57893,60869,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60637,57893,57893,57893,57893,57893,57893,57893,57893,60314,57893,57893,57893,57893,57893,57893,57893,57893,60341,57893,57893,57893,0,2999,0,0,0,57893,60881,57893,57893,57893,57893,57893,57893,57893,57893,60889,57893,57893,57893,57893,57893,58820,57893,57893,57893,57893,57893,57893,57893,58829,57893,57893,57916,57916,57916,60911,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59503,57916,57916,57916,57916,57916,60923,57916,57916,57916,57916,57916,57916,57916,57916,60931,57916,57916,57916,57916,57916,59481,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58911,57916,57916,57916,57916,57916,57916,57943,57943,57943,60953,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60094,57943,57943,57943,57943,57943,57943,60965,57943,57943,57943,57943,57943,57943,57943,57943,60973,57943,57943,57943,57943,57943,60050,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60745,57943,57943,57943,0,3680,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3439,0,0,0,0,0,3693,3694,0,0,0,0,528,528,528,528,528,528,528,2875,528,528,528,528,528,528,528,528,3704,528,528,528,528,528,528,528,528,528,528,528,528,528,528,3494,528,528,3714,528,528,528,528,528,3719,528,3721,528,528,528,528,528,528,3488,528,528,528,528,528,3492,528,528,528,61091,57893,61093,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,61131,61132,57943,57943,57916,57916,57916,57916,61104,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61110,57916,57916,57916,57916,57916,57916,57916,61114,57916,57916,57916,57916,57916,57916,61120,57916,61122,57916,57916,57916,57916,57916,61324,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,60970,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61149,57943,61151,57943,57943,57943,57943,57943,57943,57943,57943,528,2761,528,528,528,57893,60110,57893,57893,528,528,57893,57893,57893,0,0,0,3818,0,0,0,0,0,0,0,722,0,724,0,0,0,0,0,0,0,0,3823,0,0,0,0,0,0,0,3675,0,0,0,0,3831,0,528,528,528,528,528,3843,528,528,528,3847,528,528,528,528,528,1357,528,528,528,528,528,528,528,528,528,528,528,1422,528,528,528,528,57893,61205,57893,57893,57893,61209,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60886,57893,57893,57893,57893,57893,57893,57893,57893,59896,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61218,57893,57893,57893,57893,57916,57916,57916,57916,57916,61224,57916,0,0,0,0,57893,57943,57943,58415,57943,57943,57943,57943,57943,57943,58446,57916,57916,61228,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60697,57916,57916,57916,61237,57916,57916,57916,57916,57943,57943,57943,57943,57943,61243,57943,57943,57943,61247,528,4162,57893,57893,57893,61510,57893,57893,57893,57893,57893,57893,57893,57893,61518,57893,57893,57893,57893,58858,57893,57893,57893,57893,57893,57893,50676,58773,990,57916,57916,57916,57916,58903,57916,57916,57916,57916,57916,57916,57916,57916,57916,58913,57916,57916,57916,57916,61523,57916,57916,57916,57916,57916,57916,57916,57916,61531,57916,57943,57943,57943,57943,57943,60955,57943,57943,57943,57943,57943,57943,57943,57943,57943,59581,57943,57943,57943,57943,57943,57943,57943,61536,57943,57943,57943,57943,57943,57943,57943,57943,61544,57943,0,0,0,0,0,0,262144,262144,0,0,0,0,0,0,0,0,0,0,4203,4204,4205,0,4207,528,528,528,528,528,528,528,528,528,4213,4214,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,61564,61565,57893,57893,57916,0,0,0,0,57893,57943,57943,58416,57943,57943,57943,57943,58437,58441,58447,528,528,528,57893,57893,57893,57893,57916,57916,57916,57916,57943,57943,57943,57943,4298,0,528,4299,57893,61644,57916,61645,57943,61646,0,528,57893,57916,57943,0,528,528,528,528,528,528,2425,528,528,528,528,528,528,528,528,528,3246,528,528,528,528,528,528,0,0,0,361,362,0,0,0,0,0,0,0,368,0,296,0,0,0,0,393685,0,393685,393685,393685,0,393685,393685,393685,393685,393685,393685,0,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1731,0,0,0,0,0,0,0,1741,1742,0,0,0,0,0,278528,278528,0,0,0,0,0,0,0,0,0,416,416,0,0,0,0,0,426,426,0,0,131072,426,0,0,0,0,426,0,0,454,0,426,0,483,483,483,0,0,362,362,362,502,362,362,362,362,483,483,483,483,483,483,483,483,483,483,483,483,483,483,483,483,546,57912,546,57912,546,546,57912,546,546,57935,57912,546,546,57912,57912,57912,57912,57962,57962,57912,57912,57912,57912,57962,57962,57912,546,57912,57912,57935,57912,57912,57912,57912,57912,57912,57912,57935,57935,57912,57912,57962,57912,57912,57912,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,368,368,0,703,0,0,0,0,0,0,0,0,0,0,0,0,2298,0,0,0,905,528,528,528,57893,57893,57893,57893,57893,57893,57893,58287,57893,57893,57893,57893,57893,60340,57893,57893,57893,57893,57893,0,2999,0,0,0,57893,58306,57893,57893,57893,57893,58324,57893,57893,57893,0,57916,57916,57916,57916,57916,57943,57943,57943,61129,57943,57943,57943,57943,57943,57943,57943,57943,60741,57943,57943,57943,57943,57943,57943,57943,57943,60753,57943,528,528,528,57893,57893,57893,57916,57916,58363,57916,57916,57916,57916,57916,58382,57916,57916,57916,57916,58400,57916,57916,57916,57916,58936,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60392,57916,57916,57916,57916,57916,0,0,0,0,58306,57943,57943,57943,57943,57943,57943,57943,58438,57943,57943,57943,57943,57943,60448,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60427,57943,57943,57943,57943,57943,57943,57943,58457,57943,57943,57943,57943,58475,57943,57943,57943,528,528,528,528,2284,57893,57893,57893,57893,59633,2290,0,2291,0,0,905,528,0,57893,57893,57893,57893,58324,57893,155942,1151,0,1152,0,0,1157,0,0,0,1266,0,0,0,0,0,0,0,1266,0,0,0,0,0,0,450560,0,0,450560,0,450560,450560,450560,450560,450560,450560,450560,450560,450560,450560,450560,450560,450560,450560,450560,450560,1346,528,528,528,1355,528,528,528,528,528,528,528,528,528,528,528,528,3711,528,528,528,58773,914,57893,57893,57893,57893,57893,57893,57893,57893,57893,58785,57893,57893,57893,58794,57893,57893,58855,57893,57893,57893,57893,57893,57893,57893,57893,50676,58773,990,57916,57916,57916,57916,58938,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61121,57916,57916,57916,57916,57943,57943,58974,57943,57943,57943,58983,57943,57943,57943,57943,57943,57943,57943,57943,57943,59045,57943,57943,57943,57943,57943,57943,0,0,0,1730,0,0,0,0,1737,0,0,0,0,0,0,0,739,0,0,0,0,0,0,0,0,1271,0,0,0,0,0,0,0,0,0,0,1762,0,0,0,0,0,0,0,1770,1771,0,0,0,0,0,3422,0,0,0,0,0,0,0,3426,0,0,0,0,0,1834,0,0,0,0,0,0,0,1840,0,0,0,0,0,0,532480,0,0,0,0,0,0,0,0,0,694,0,0,0,0,0,368,0,0,1846,0,1848,0,0,0,0,0,0,0,0,0,0,0,376832,0,376832,0,0,1915,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2499,528,1930,528,528,528,528,528,528,528,528,528,528,528,1943,528,528,0,57893,57893,57893,57893,57893,57893,155942,1151,0,0,0,0,0,0,0,4857856,4874240,0,0,0,0,0,0,0,796,0,0,0,0,805,0,0,0,59373,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59386,57893,57893,57893,2588,0,0,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,60352,57916,57916,57916,57916,57916,57893,57893,59411,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59422,57893,57893,57893,57893,57893,60884,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60903,57893,57893,57893,57893,57893,57916,59511,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59522,57916,57916,57916,57916,57916,61395,57916,61397,61398,57916,61400,57916,61402,57943,57943,57943,3916,528,61261,57893,0,0,0,0,0,0,0,0,0,0,2774,0,0,0,0,59607,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59618,57943,57943,57943,57943,57943,58978,57943,57943,57943,57943,57943,57943,57943,57943,57943,58997,0,0,2326,0,0,0,0,0,0,0,0,0,0,0,0,0,221652,221652,221652,0,0,2504,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61097,57893,57893,57893,57916,57916,57916,57916,57916,528,3229,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2447,528,60618,57893,60620,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61211,57893,57893,57893,57893,57893,57893,57893,57893,59870,57893,57893,57893,57893,59875,57893,57893,57916,57916,57916,60667,57916,60669,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60404,57916,57916,57916,57916,57916,60698,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,60709,57943,57943,57943,57943,57943,60463,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59599,57943,57943,57943,59605,57943,57943,57943,57943,60716,57943,60718,57943,57943,57943,57943,57943,57943,57943,57943,57943,59046,57943,57943,57943,57943,57943,57943,57943,60747,57943,57943,57943,57943,57943,57943,57943,57943,528,528,528,57893,57893,57893,0,0,0,3656,0,0,0,0,0,0,0,3432,0,0,0,0,0,0,0,0,0,0,0,0,2323,2324,0,0,57943,57943,61250,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60724,57943,57943,0,4147,0,0,0,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,0,4161,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61517,57893,57893,57893,57893,57893,60898,60900,57893,57893,57893,57893,60904,57893,60906,60907,57893,57916,57916,57916,61627,57916,57943,57943,57943,57943,61631,57943,0,0,0,0,528,528,2870,528,528,528,528,528,528,528,528,528,528,2878,373,373,0,0,131072,373,0,0,0,0,373,0,0,0,0,373,547,57913,547,57913,547,547,57913,547,547,57936,57913,547,547,57913,57913,57913,57913,57963,57963,57913,57913,57913,57913,57963,57963,57913,547,57913,57913,57936,57913,57913,57913,57913,57913,57913,57913,57936,57936,57913,57913,57963,57913,57913,57913,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,528,528,528,528,861,528,528,528,528,528,528,528,528,528,528,528,528,3723,528,528,528,57916,58356,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60677,57916,57893,58799,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61221,57893,57916,57916,57916,57916,57916,57916,57916,57943,57943,60023,57943,57943,57943,57943,57943,57943,528,528,1931,528,528,528,528,528,528,528,528,528,528,528,528,528,1401,528,528,57893,59374,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59882,57893,57893,57893,57893,57893,57893,57893,57893,57893,60290,57893,57893,57893,57893,57893,57893,59474,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60920,57916,0,0,0,3824,0,3825,0,0,0,0,3675,0,0,0,0,0,0,0,0,0,0,0,0,0,1227,0,0,0,0,0,364,0,0,0,0,0,0,0,0,0,0,364,0,0,0,0,0,0,0,0,0,0,0,0,2335,0,0,0,365,0,0,0,0,364,0,0,0,139264,147456,0,0,0,0,0,0,1324,0,0,0,0,0,0,0,0,0,1166,0,0,0,0,0,0,0,0,0,434,131072,0,434,434,0,0,0,434,0,365,434,0,0,0,0,401408,0,0,0,0,0,0,0,0,0,0,0,0,6471680,0,0,0,466,0,0,0,494,494,497,497,497,497,503,504,497,497,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,548,57914,548,57914,548,548,57914,548,548,57937,57914,548,548,57914,57914,57914,57914,57964,57964,57914,57914,57914,57914,57964,57964,57914,626,57914,57977,57937,57914,57914,57914,57914,57914,57914,57914,57937,57937,57914,57914,57964,57914,57914,57914,57977,57977,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,0,459187,0,0,0,0,0,0,0,0,0,0,0,528,528,528,528,528,528,528,528,0,528,2420,528,528,528,528,528,528,528,528,528,528,528,528,528,1402,528,528,0,0,0,57893,59850,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60287,57893,57893,57893,57893,57893,57893,57893,57893,57893,60302,57893,57893,57893,57893,60305,57893,57893,60307,528,528,528,528,2895,528,528,528,528,528,528,528,528,528,528,528,528,4026,57893,57893,57893,57893,60337,57893,57893,57893,57893,57893,57893,57893,57893,57893,0,0,0,0,0,0,1781,0,0,0,0,0,0,0,0,0,139264,147456,0,0,335872,0,0,57916,57916,57916,57916,60371,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61401,57916,57943,57943,57943,368,368,0,0,0,0,705,0,0,0,0,0,0,0,0,0,139264,147456,0,0,540672,0,0,0,0,735,0,801,0,0,0,0,0,0,0,0,801,0,0,0,0,416,0,0,0,0,0,0,0,0,0,0,0,0,3464,0,0,0,528,528,528,528,862,528,528,528,528,528,528,528,528,528,528,528,528,61203,57893,57893,57893,57916,58357,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61111,57916,1202,0,0,0,0,0,0,0,0,0,0,368,368,0,0,0,0,0,0,0,0,709,0,0,0,0,0,0,1251,0,0,0,0,0,0,0,0,0,2810,0,0,0,0,0,0,58853,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,50676,58773,990,57916,57916,57916,57916,59463,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60696,57916,57916,57916,57916,59015,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60442,1726,0,0,0,0,1733,0,0,0,0,0,0,0,0,0,0,319488,319488,0,0,0,0,0,57916,57916,57916,59978,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59959,57916,57916,57916,57943,57943,57943,60061,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59011,57943,57943,57943,2779,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,245760,528,528,2881,528,528,528,528,528,528,528,528,528,528,528,528,528,1404,528,528,57916,57916,60357,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60919,57916,57916,0,306,307,0,0,0,0,0,0,0,647,0,0,0,0,0,0,1813,0,0,0,0,0,0,0,0,0,787,0,0,0,0,0,0,906,528,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,57916,57916,906,528,0,57893,58490,57893,57893,58325,57893,155942,1151,0,0,0,0,0,0,1836,0,0,1838,0,0,0,0,0,0,0,2861,2813,0,0,0,0,0,2866,0,57893,57893,58856,57893,57893,57893,57893,57893,57893,57893,57893,50676,58773,990,57916,57916,57916,57916,59495,59496,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61574,57943,57943,57943,57943,0,0,1862,0,0,0,0,0,0,0,0,0,0,0,0,0,327680,327680,327680,528,528,1948,528,528,528,528,528,528,528,528,528,528,528,528,528,1942,528,528,57893,59391,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60313,57893,57893,57893,57893,57893,57893,57893,57893,57893,59922,57893,57893,57893,57893,57893,57893,57893,59491,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61123,57916,57916,0,0,0,57893,57893,57893,57893,59853,57893,57893,57893,57893,57893,57893,57893,57893,60329,57893,57893,57893,57893,57893,57893,57893,57893,57893,59367,59368,57893,57893,57893,57893,57893,59877,57893,59879,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60636,57893,57893,57893,57893,57893,57893,57893,57893,57893,60316,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,59966,57916,59968,57916,57916,57916,57916,57916,57916,57916,57916,57916,61117,57916,61119,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,60049,57943,60051,57943,57943,57943,57943,57943,57943,57943,57943,57943,59552,57943,57943,57943,57943,59556,57943,60381,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61403,57943,57943,57943,57943,57943,60446,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59554,57943,57943,57943,0,3418,0,0,0,0,0,0,0,0,0,0,0,0,0,0,352256,352256,352256,57893,57893,57893,57893,60871,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60645,57893,57893,57893,57893,57893,57893,57893,57893,57893,59923,57893,57893,57893,57893,57893,57893,3713,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2500,57916,57916,61113,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59973,57916,57916,57916,0,0,0,2310144,0,0,0,0,0,0,2310144,0,0,0,0,0,0,0,0,0,0,0,2310144,0,0,2310144,0,0,0,0,0,0,0,2310144,2310144,0,0,0,0,0,0,0,0,2310144,0,0,0,2310144,0,0,0,0,0,2310144,0,2310144,0,0,0,0,0,0,2310144,2310561,2310561,0,2310144,0,0,2310144,0,0,2310144,0,2310144,2310144,0,2310144,0,2310144,2310144,0,0,0,0,0,0,2310561,0,0,0,0,0,0,0,0,0,0,0,2359296,368,0,0,0,0,2310144,0,0,2310740,2310740,2310740,2310740,2310740,2310740,2310740,2310740,2310740,2310740,2310740,2310740,2310740,2310144,2310740,2310144,2310144,2310740,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,459347,459347,459347,459347,459347,459347,459347,459347,459347,459347,459347,459347,459347,459222,459379,459222,2318336,0,0,0,4268032,0,0,0,0,0,0,0,0,0,0,0,4276224,0,0,0,0,4358144,4358144,4358144,4358144,0,914,0,0,0,0,0,0,0,0,0,0,4956160,4964352,0,0,0,0,0,467,2335204,2335204,2335204,467,467,467,467,467,467,467,467,467,467,2335238,2335238,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,467,0,0,0,0,0,0,0,0,0,0,2335238,2335204,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,0,0,0,2342912,0,0,0,0,0,0,0,0,0,0,0,0,2348,0,0,0,0,0,0,2326528,0,0,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5177344,4358144,4358144,4358144,4358144,0,0,0,2359296,0,2359296,0,0,0,2359296,0,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,573440,0,573440,573440,573440,0,573440,573440,573440,573440,573440,573440,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,2367488,0,0,4268032,0,0,0,0,0,0,0,0,0,0,0,4931584,0,0,0,0,0,0,2351104,0,0,0,0,0,0,0,0,0,0,0,0,0,507904,507904,507904,0,913,0,0,0,0,0,4857856,4874240,0,0,0,0,0,0,0,1180,0,0,0,0,1184,0,0,1187,0,6275072,0,0,0,0,0,0,0,0,0,0,0,989,0,0,0,0,913,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,5260177,4359057,4359057,0,0,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,0,573440,573440,573440,573440,573440,573440,573440,573440,573440,573440,573440,573440,573440,573440,573440,573440,212992,0,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,0,0,0,0,0,4366336,0,0,0,0,0,0,0,0,2412,0,0,0,0,0,0,0,0,0,0,6275072,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6258688,6447104,0,0,6127616,0,6348800,5906432,0,5537792,0,4882432,0,0,0,0,0,0,4825088,0,0,5177344,0,0,0,0,5701632,0,0,0,0,0,4358144,4358144,4358144,4825088,4358144,4358144,4358144,4358144,0,0,913,913,913,4826001,913,913,913,913,913,913,0,0,989,989,4842461,989,989,989,4899805,989,0,0,5513216,5783552,0,0,0,0,0,0,0,0,0,0,4358144,4358144,4358144,4358144,4358144,4857856,4874240],r.EXPECTED=[169,185,215,1326,231,1001,278,928,942,1085,320,247,263,307,336,352,368,384,400,914,2264,430,2264,2264,2264,2264,2264,2264,2264,2264,2264,2264,2264,2268,1707,1603,1403,460,1356,1591,491,507,517,533,1816,1031,2119,564,475,580,596,625,684,700,1905,716,1114,747,778,788,1693,1145,762,804,820,836,852,868,884,900,958,988,1017,972,1997,1047,1057,1073,1101,1130,2028,1562,1190,1205,1221,1237,1253,1269,1298,1314,1342,1174,1446,1372,1876,2073,1633,668,1388,1419,1434,1467,1483,1499,1515,609,1531,1547,1578,444,654,640,1619,1649,1662,1678,1723,1738,1754,1770,1786,1802,1832,1848,291,1864,2228,1892,1921,1937,199,2149,1953,1969,1985,1282,2013,2044,2060,2089,2105,548,2135,2165,2181,2197,2213,1160,2244,731,2260,2264,1457,412,2264,2264,2264,2264,2264,2264,2264,2264,2264,2264,2264,2264,2264,2264,419,2284,2288,2290,2290,2290,2291,2295,2290,2297,2301,2304,2311,2307,2315,2318,2322,2326,2330,2334,2338,2345,2345,3446,2344,2345,3427,2352,3605,2345,4169,2345,2345,2345,3950,4664,4990,4059,4582,2828,4588,2345,4069,4598,2345,4069,4603,2734,3100,2397,2497,2359,2366,2466,2372,2376,2345,2345,4266,2345,2345,2383,3820,2359,2359,2392,2419,2419,2419,2419,2405,2427,2345,2345,2345,2345,2345,2409,2455,3819,2345,2345,3099,3100,3100,3100,2495,2398,2398,2398,2504,2359,2359,2359,2482,2419,2419,2419,2517,2345,2345,2345,2457,2345,3100,3100,3101,2398,2398,2398,2359,2359,2359,2359,2359,2418,2419,2419,2419,2419,2419,2424,2437,2345,2345,2345,2345,4505,2729,2345,2345,2345,2345,4509,5101,4513,2345,2345,3904,2359,2359,2484,2419,2419,2519,2345,3864,2345,4865,3100,3100,2501,2398,2538,2359,2359,2359,2359,2359,2548,2419,2419,2419,2419,2395,2490,2345,2345,2359,2483,2419,2549,2508,3755,2345,4867,4911,2398,2400,2359,2515,2419,2525,3605,3100,2476,2401,2547,2550,2816,4868,2399,2481,2485,2735,2532,2503,2361,2368,4866,2476,2360,2420,4909,2537,2546,2486,2533,2362,2542,2554,2567,2571,2575,2579,2583,2586,2586,2586,2598,2591,2586,2587,2595,2602,2606,2610,2614,2618,2622,2626,2630,4594,2634,2345,2345,2903,2640,2345,2345,2999,2345,2345,2645,2345,2345,2345,2345,2345,2345,4208,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,4460,2655,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2655,2345,2345,2636,4128,2345,2345,2345,2345,2635,4127,2345,2345,2345,2345,2635,4127,2794,2345,2345,2345,3016,2798,2345,2345,2345,3017,2799,2345,2345,2345,2806,2729,2876,3308,2345,2915,2345,3310,2345,2922,2345,3536,2683,4475,3831,4927,2685,4422,2850,2345,2345,2345,2345,2345,2345,5004,2345,2345,2345,2345,4417,3024,3547,2854,5007,2861,2345,2345,2345,2345,4422,2869,2345,2345,2345,2345,2345,2868,2729,2345,2345,2345,2345,2345,2873,2345,2345,2345,4443,2345,3549,3338,2880,2345,2345,2345,2345,2887,2729,2345,2345,2345,2883,2880,2345,2345,4951,4956,2345,2345,2345,2345,4604,4971,4982,2345,2345,4805,4988,3762,2345,3965,2345,4436,4591,2907,2345,3192,2909,2345,4490,2345,3191,2908,2345,3491,4849,4476,4920,4920,4920,4849,2720,4477,4477,4477,4918,4922,2683,4476,4863,4478,2719,2684,2432,2429,2431,2563,2345,2345,2345,2345,2345,2345,2984,2345,2345,2345,2511,4068,4075,2345,2345,4081,2345,4085,2345,2345,4099,2345,3067,3768,2729,4088,2928,3046,2947,2932,2935,2938,2940,2940,2944,2345,2951,2956,2345,2345,5022,2729,2345,2345,2345,2345,4180,2345,2345,2345,2345,5023,2345,4654,2345,4496,2345,3077,4168,3570,5100,4176,2345,2345,2345,5024,2345,2345,4147,2345,2345,4258,2345,2345,2339,3845,2345,3726,3911,3122,3918,2345,4757,2345,4949,2345,2961,2974,2978,3641,3718,2988,2996,2722,3003,3008,2345,2998,4205,2345,2952,2345,2345,3697,2345,3015,4630,3021,3029,3033,2412,2991,2723,3040,3497,2345,2951,2956,2345,5067,4831,2345,3623,2964,3050,4101,2345,3156,3059,2345,2345,5115,3712,2387,4578,2345,5120,2458,2509,4221,2345,5107,2345,3202,2763,3060,2345,2345,2345,3733,2345,2951,2733,2345,4755,4856,3111,4236,2557,3086,2345,2348,3162,2345,2345,2527,3154,2345,2345,2347,3161,2345,2345,4684,3167,3432,4676,3096,2345,2345,2345,2345,2472,3106,2345,2345,2345,2345,2346,3105,2345,2345,2345,4878,3110,3119,2345,5067,4832,4234,3023,3126,4109,3602,3171,3176,2345,4069,3180,2345,4170,3176,2345,2345,3187,2345,4682,3217,4094,3257,3196,3972,3190,2345,3974,2345,3251,3209,2345,3973,2345,3214,3218,3223,3227,3231,4192,2345,3229,2345,3237,3606,3242,3246,4319,3250,3238,3230,3255,3261,3266,3266,3266,3274,3278,3262,3262,3262,3285,3289,4198,3290,4959,3294,4246,5038,3298,3302,3306,3316,3322,3329,2345,2345,2345,2345,3926,2345,2345,2875,3333,3337,4593,3342,3347,4397,3357,3361,3365,3366,3366,3370,2345,4118,3376,2345,4445,3382,4945,3392,2721,3398,2829,3406,3410,3417,3424,3004,3431,3947,2345,3426,2345,2345,3115,3658,4038,4560,2345,2345,2345,2345,2345,2345,2345,2650,2345,2345,2454,2345,2345,2345,4867,3100,3100,3100,3100,3101,2398,2398,2398,2398,2545,2359,2359,2359,2359,2359,2464,2419,2419,2419,2419,2419,2395,2470,4119,2345,2345,3437,3706,3578,3394,4115,2345,5085,3441,3522,4170,3451,2345,2345,3132,3489,2345,2345,2345,2345,3143,3495,2345,2345,2345,2345,4516,3484,2345,4070,3455,2345,2345,2345,4071,3456,2345,2345,2345,3460,3464,2345,2345,2345,3098,3100,3100,3100,3100,3100,2397,2398,2398,2398,2398,2398,2480,4118,3830,2345,3469,3584,3579,3476,4935,4215,3011,2345,2345,4515,3483,2345,2345,3191,2898,2345,2345,2345,2892,2345,2345,2345,2897,2345,2345,2345,3963,3232,2345,2345,2345,2345,3517,3490,2345,2345,2345,2345,4515,3520,2345,2345,2345,2345,3982,2345,3526,3585,3535,4117,2786,2345,2345,3541,2345,2345,2345,2345,4530,3545,2345,2345,2345,2345,3541,2345,2345,2345,2345,2456,2345,2345,4910,3100,3100,3100,3100,2476,2398,2398,2398,4531,3232,2345,2345,2345,3560,3565,3576,4115,3204,3583,2345,5095,2345,2345,2345,3163,3064,2345,2345,2345,2345,3219,3071,2345,2345,2345,2345,3157,5054,2345,2345,2345,5094,2345,2345,2345,5053,2345,2345,2345,3590,3966,3561,2345,2521,3137,2345,2345,3754,2981,3141,5078,4842,4667,2967,3147,2528,3155,2345,2751,5076,2686,5082,4996,5091,5099,2345,2345,5072,2345,2345,5105,2345,2345,4450,3818,2345,3825,2345,2460,3835,3839,2345,2345,2345,4069,3843,2345,4928,2345,3443,2345,3828,2345,4052,3148,2345,2386,3114,3150,4047,3149,3635,3635,4052,3113,3150,3150,3150,3980,3634,3112,3635,4053,3622,3635,3150,4974,4976,3627,4978,3631,3640,2345,2345,2345,2345,4428,3779,3723,2345,3595,3645,3649,4091,3655,3663,3667,3671,3675,3679,3680,3684,2345,2801,3689,2345,4841,3695,4295,2763,3350,3199,3691,5040,3485,3701,4584,3465,3705,4823,3710,3716,2345,2345,2802,3690,2345,4616,4756,3722,3731,3957,3201,3737,3750,3759,2345,3940,3766,2345,2345,2345,3312,4745,4749,4761,4765,4769,4773,4777,4781,4785,4788,4792,4795,3504,3232,2345,2345,2345,3505,2345,2345,2345,2646,3772,2345,2345,2345,4427,3778,2345,4164,4095,2345,3785,4903,2651,2345,3753,2345,2345,3793,2345,2345,2345,2345,3098,3100,3100,3100,3100,2398,2398,2398,2398,2478,2359,2359,2345,3797,2345,2345,2345,2345,2345,3801,2345,2345,2345,2345,2345,3805,2345,2345,3846,2810,5004,2345,2345,2345,2345,4151,2345,2815,2820,2833,4077,2838,3850,2345,2345,2345,2345,4737,2345,3855,2458,4716,3837,3863,2345,2345,3172,3871,3924,2345,2340,2345,2345,4149,2345,2339,3845,3723,3089,3789,2345,3930,4129,2345,2776,3914,4135,2728,2345,2345,2345,2345,3210,2345,2784,3082,3938,2345,2790,5046,2345,3935,2345,3944,2730,3877,2345,3352,2732,3955,2731,4157,4157,4157,3351,2732,2732,2732,3531,4156,4716,4157,4718,3878,4157,2732,2345,2345,2345,2345,3851,2345,2345,2345,2345,2345,3850,2345,2345,2345,2345,2345,2345,2345,3612,2663,2345,2345,2345,2345,2345,2345,2345,3780,3961,2345,2345,3920,3970,3978,3986,3990,3994,3998,4001,4005,4007,4011,2345,2345,2345,4015,2345,3606,4752,4107,3553,4020,4024,4643,4888,4028,2345,4851,2811,4032,4826,4037,4042,4046,2345,2345,4016,2345,3746,4051,3551,3877,4057,3636,4570,4063,2345,2345,2345,2780,2345,2345,2345,2510,4067,4105,2924,4156,4113,2386,4123,4538,2345,2345,2635,4127,2345,2345,2345,2345,2641,4133,2345,2345,2345,2345,2778,4181,2345,2457,2345,2345,4984,5025,2345,4139,2345,2855,3611,2345,2857,2345,2345,3386,2345,2856,2345,2345,3830,3616,2345,3445,2345,4145,2345,4670,3724,4155,3572,3114,4161,2345,2345,2345,3472,2729,2345,2345,2345,2345,2842,2345,2345,2345,2345,3081,2846,2345,2345,2345,2345,2345,2739,2692,3821,2749,2757,2345,2761,2767,2345,2771,4802,2345,4185,3077,3725,4231,3041,4220,2345,5087,2729,2345,2345,2911,4134,2345,2345,4172,2345,2345,2345,2354,3845,2345,3723,3606,2458,3787,3901,2345,3781,3537,4190,2345,2345,2910,4196,3378,3685,3607,4673,4202,2823,2345,4033,2729,2345,3931,2956,2345,3925,4214,4219,4225,4240,4244,4264,2345,4250,2345,4252,2345,2345,4256,2345,4251,3343,4538,4228,4262,2345,4270,3353,2345,4610,2345,3183,3130,2345,2345,2345,2346,3136,2345,2345,2345,2345,3183,3130,2345,2345,2673,2345,2345,2677,3814,2690,2696,2700,2704,2708,2712,2716,3744,2727,4275,4284,4288,4419,2668,3659,2733,4292,4308,4420,3556,3556,3556,4317,3530,4421,4335,4323,3555,3529,3568,3025,2669,3556,4330,4339,4341,4333,4326,4345,4349,4351,2345,2345,2345,2345,3897,2992,2345,4313,4355,4359,4390,4363,4367,4371,4375,4379,4381,4383,2345,2345,2345,4937,4387,4657,4394,4401,4460,2827,4636,4599,4278,4407,4411,5122,3727,4426,4432,2345,4440,4449,2345,2345,4938,3774,2657,4454,4458,3325,2345,3053,4464,4468,2345,2345,2345,5128,4474,2345,2345,2345,4482,2345,2345,4271,2888,2345,2345,2345,2345,3233,2345,2345,2345,4962,2864,3650,2893,2345,3727,4483,2345,2345,2345,3055,4487,4494,2345,2345,3890,4311,2433,2446,3618,2826,4186,5066,4947,2733,2345,2345,2345,3413,4500,2345,2345,2345,2345,3420,2800,4414,4622,4520,3318,2345,2970,5060,2345,2345,2345,2377,4524,2345,2345,2345,2345,3869,2345,2345,2345,2345,4171,3876,2345,2345,2345,4069,3870,2345,4952,4311,2443,4535,2827,3865,3433,2345,2345,2345,2379,4543,2345,2345,2345,3858,2345,2345,2345,2345,3859,2345,2345,2345,2957,3045,2345,2345,2377,4548,2345,2345,2345,2345,3281,4553,2345,2345,2345,2378,4549,4470,2345,4558,2440,4564,3203,4831,2345,2345,2377,4568,2345,2345,2345,3951,2345,2345,2345,4574,2345,4640,2345,4069,4647,2560,4651,4661,2345,4680,4539,4642,5031,2345,5014,4688,4830,4815,4403,3883,4642,4692,4628,4816,4696,4696,4702,4830,4706,4714,4714,4722,2414,2449,3808,4731,2414,4906,2450,4735,4725,4727,4741,4829,2345,2345,2345,2345,3925,2345,2772,3501,4141,3509,4115,4215,3074,2345,2345,3513,4799,2345,2345,2345,2345,4809,3015,4813,4820,4967,2388,2680,4210,4836,4554,2345,3372,2345,2345,3384,2345,2345,3372,2345,2345,2856,2345,2345,3589,3594,3599,4708,3872,4840,4846,2345,4710,4855,2345,2345,4544,4860,2834,3742,4965,3080,4872,4877,4882,2345,2345,2345,2345,3606,4886,2345,2345,2345,3478,4892,2345,2345,2345,3882,2663,2459,3092,3887,2345,2345,3894,2345,2345,2345,2355,2345,3479,2345,2345,2345,2345,4897,3616,2345,2345,4544,4915,3035,4280,2918,3446,4873,4698,4926,2345,2345,2345,2345,2345,4932,2345,2345,2345,2345,3606,4942,2345,2345,4435,3377,3907,2902,2345,4489,2729,2345,3651,2902,2345,3192,2909,2345,4994,5020,5001,3205,5011,2345,2345,2345,2345,2741,2745,2345,2345,2345,2345,4170,4608,2345,2345,4614,4989,4620,4626,3755,4950,2345,4634,2345,5013,2345,2744,2345,2345,2345,2345,2345,2743,2345,2345,2345,2345,2345,2743,4900,2345,4501,4915,3036,5018,3447,3864,5029,2345,2345,2345,4170,5035,2345,2345,2345,2345,4303,5044,2345,2345,2345,2345,5050,2345,2345,2345,2345,4304,4900,2345,3811,3740,4997,5058,5064,2345,2345,2345,5071,2345,2345,2345,3269,2345,2345,2345,4297,4301,2345,3402,2800,2345,2345,2345,2345,3401,4528,2345,2345,2345,2345,3401,4528,4470,4299,2345,2345,3270,2345,5111,4997,4577,2345,2345,2753,2345,4893,5116,2345,2752,2491,2458,2345,5126,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2661,3388,2667,2345,7267,5893,5132,5144,5141,5151,5153,5153,5153,5153,5148,5176,5152,5153,5153,5153,5159,5163,5176,5153,5153,5169,5164,5153,5180,5155,5154,5168,5151,6159,5173,5199,5205,5205,5205,5209,5209,5201,5213,5217,5220,5224,5228,5245,5232,5242,5234,5238,5236,5249,5252,7269,7026,5260,5273,5276,5276,5276,5255,5821,5295,5276,5276,5276,5276,5268,5730,6588,6270,5301,5276,5276,5254,6597,5821,6646,6646,6646,6646,5394,5396,5325,5449,5322,5396,5396,5325,5276,5384,5428,5333,5409,5274,5276,5276,5276,5286,5290,7174,5276,6844,7218,6005,5276,5276,5276,6390,6115,6646,6647,5323,5396,5397,5400,5428,5428,5428,5428,6645,6646,6646,5398,5400,5428,5345,6844,7217,5353,5276,5266,5276,5276,5388,7455,5457,5396,5396,5396,5396,5276,5399,5402,6779,5408,6667,5275,5276,5275,5276,5276,6239,5276,6839,5410,6667,5275,5276,5275,6561,5276,5275,6839,6843,7454,7155,5276,5276,7229,5276,5276,6466,5276,5276,6526,5276,5276,5276,5302,5276,5276,6646,5393,5396,5396,5396,5400,5407,6668,5276,5276,5268,6066,5402,5428,5428,5428,5429,6646,6646,6646,5395,5396,5396,5396,5326,5368,5419,5276,5276,5276,5305,5401,5428,5428,5428,5430,6646,5427,5428,5428,5428,6644,6646,6646,5402,5387,5276,5276,5276,5307,6771,6646,5394,5396,5396,5398,5427,5276,5276,5268,6630,5397,5403,5276,5276,5269,5731,6036,5400,5400,5402,5428,6644,5402,5428,5428,6643,6646,5368,5400,5427,6643,6646,6646,6646,5396,5396,5396,5397,5387,6646,5395,5324,5368,5276,5999,5276,5276,7234,6237,5276,6239,6237,5401,6643,5393,5324,5415,5434,5460,5464,5463,5462,5461,5326,7445,6108,6418,5509,5541,5438,5442,5508,5508,5508,5508,5486,5515,5454,5468,5472,5491,5543,5496,5508,5508,5538,5446,5582,5487,5506,5581,5513,5475,5519,5535,6805,6808,5547,6811,6814,6815,6816,5551,5554,5558,5569,5573,5579,5492,5586,5590,5594,5598,5605,5604,5601,5609,5613,5561,6981,5276,5276,5276,5308,5312,7372,5276,5276,5276,5309,7137,5276,5276,5276,5329,5276,6389,5276,5276,6557,5276,6391,5276,5276,5275,5276,6392,6392,5276,5276,5279,5276,6282,5276,5276,5276,5366,5276,6e3,6885,5910,7281,5626,5297,5629,5276,5276,7348,5276,5276,7354,5276,5276,5276,5631,5640,5899,5276,5647,5276,6987,5263,5186,5654,5657,5659,5660,5664,5668,5673,5672,5677,5679,5680,5680,5684,5686,5693,5688,5700,5688,5697,5689,5704,5276,5276,7355,5276,5276,5276,5648,6027,6933,6281,5898,5276,5276,5276,5367,5276,5276,5276,5368,5400,5708,6023,5276,5276,5281,7411,7471,7426,5276,5276,6043,5135,5276,5276,5281,7468,6467,5276,5716,5276,5276,5721,6061,5339,5276,5276,5304,5276,5341,5737,5745,5751,5749,5276,5276,5276,5369,6219,5751,5276,5276,5306,5310,6765,5276,5276,6988,5276,6526,5277,6886,6113,5784,5276,5793,7239,5808,5855,5812,5831,7055,5318,5276,5276,5276,5372,5348,7452,5827,5832,7056,5137,5276,5276,5276,5376,5368,5276,6525,5276,5414,5276,7452,7443,5276,5276,7419,6200,5276,5925,5276,5276,5276,7249,5717,5276,5276,5276,5387,5795,7243,5854,5845,7241,5851,5855,5846,7242,5852,5856,5317,5850,5854,5845,5898,5860,5276,5276,5276,5388,6362,5276,5854,5876,5318,5276,5276,7441,6519,7240,5851,5855,5877,5898,5881,5839,5276,5276,5370,5276,5276,5853,5885,5318,5276,5276,7452,6134,7239,6135,5854,5886,5898,6404,5870,6865,5276,5276,6117,5869,6864,5898,5276,6867,5276,5276,5276,5617,6117,5890,6866,5276,5276,5276,5620,6857,5276,6719,6723,5276,5276,7455,6886,6721,5898,5276,5276,5373,5276,5914,5276,5898,7023,5934,5938,5942,5945,5948,5949,5949,5950,5954,5954,5954,5954,5954,5958,5961,5276,5277,5921,5930,5276,6659,6079,5966,6872,6872,5276,5276,5276,5650,6487,5276,5711,6194,7445,7444,5368,5276,6e3,6525,5276,7025,5302,6259,5276,5370,5979,6510,5997,5276,6523,5276,5276,6660,6080,5967,5898,6890,5997,5276,6889,5276,5276,5276,5841,6010,5276,6606,5276,5276,5276,5822,6016,5276,5276,5276,5787,5276,6605,6017,5276,5277,5962,6001,7450,5276,5276,5276,5826,5831,5712,6195,7052,5276,5368,5276,5276,5366,5369,6121,5276,6513,5276,6559,5276,5276,5386,5282,5276,6093,5276,5276,5276,5864,6029,5276,5276,5276,5896,6848,5998,5276,6523,6792,5276,5276,6397,7112,6033,6047,6053,5898,5276,6034,6048,6054,5276,5278,5281,6211,6035,6049,6055,5276,5278,5909,5276,5279,6836,6888,5276,5276,5276,7452,5761,6526,6233,6268,5276,5280,5303,6536,5276,6268,6140,6038,6070,5276,5276,5400,5400,5400,5400,5401,6066,6588,6039,5894,5276,7456,5276,5276,5276,6002,5276,5276,5276,5975,5277,6078,6084,5367,6266,7445,6236,5999,6524,5276,6100,6037,6070,5276,5276,5477,5481,6630,6587,6090,5894,5276,6080,6086,5276,5276,5478,5482,6099,5276,5276,5276,6003,5276,5276,6036,6107,5276,5276,5276,6072,6033,6588,6106,5276,5276,5276,6073,6085,5276,5276,7023,6099,5276,5276,5281,6583,5728,5732,6105,5894,5729,5733,6106,5276,5281,6629,6586,5727,5731,6104,6108,5276,5276,5276,6117,5890,5371,6e3,6125,6268,6456,5276,6388,5276,5276,5276,6523,5276,7417,6416,5276,5276,5276,6119,5276,6524,6525,6659,6322,5276,5276,5276,6074,5363,7445,5276,5370,6e3,6236,5276,6320,5799,5803,5276,5276,5276,6127,6319,5798,5802,5276,5276,6321,5276,7260,7446,5368,6001,6320,5799,5801,5276,5276,6319,5797,5276,7073,5276,7258,7447,5276,7447,5302,7075,5803,5276,5276,7072,7076,5276,5281,7468,7477,5276,5276,7073,7260,7446,5276,7074,5802,5276,5285,5289,7173,6339,7258,7447,6339,7077,5276,6117,7076,5276,6342,5276,6117,6342,6139,6117,6200,6978,5276,6978,5276,6978,5276,7445,6197,5276,6237,6722,5276,5276,5372,7365,6199,6197,5276,6199,5276,5925,7445,6198,6198,6198,5276,5276,5926,6198,5276,6896,6896,5389,6536,5368,5525,6145,5276,5276,5276,6133,6358,5367,5276,5276,6198,6537,6199,6536,6200,5276,6537,5276,5276,5276,6480,6167,6152,6171,6175,6179,6181,6185,6185,6181,6189,6189,6189,6189,6189,6191,5276,5276,5564,6363,6206,5276,5276,5276,6199,6200,6251,5898,5276,5276,5565,5371,5276,5276,5575,6934,6200,5276,7454,5803,7356,5276,6293,5276,5804,5276,5287,5291,7160,7066,6196,5276,5285,6217,6223,7106,6232,5276,5287,7149,7129,6243,5276,7260,5276,5288,7150,7141,6257,5276,5789,5276,5276,5276,6202,6263,5276,5276,5276,6201,5367,5369,5387,6274,6253,5278,6018,5276,5276,5642,5276,5276,5276,6388,6113,5193,6286,6935,6040,6287,6936,6041,5276,5276,5191,5195,6288,6937,6042,5276,5276,5276,6226,5385,6114,6252,5276,5307,5311,5315,7420,7354,5276,5276,5739,7397,7403,6298,6329,5803,5276,5276,6006,6299,6330,5276,5276,5276,6265,6300,6331,5276,5276,5753,5752,5387,6275,5897,5276,5328,6552,6547,5803,6197,7453,7421,6267,6392,5479,6312,6329,5276,6458,5480,6313,6330,5276,5276,5764,5276,5385,6246,6253,5276,5363,5367,5276,5276,6536,6317,6267,5276,5276,5276,5621,6392,7412,6327,6332,6301,5803,5276,5276,5815,7444,6522,5276,5276,5375,5276,5276,5365,5276,5276,5916,5276,5276,5276,6294,5368,5386,6336,5276,5365,5276,6535,5276,6820,7444,5276,5276,6519,6308,5276,6198,5276,7452,5280,5276,5276,5276,6307,6197,5276,6843,5276,6356,6250,6678,5276,5276,5276,6368,5276,6844,5894,5276,5369,5998,6524,5276,5276,5276,5277,6208,6362,5276,5276,5276,6371,5276,6846,5276,5276,5898,5276,6005,5276,5276,6005,5276,5276,6846,6004,6002,6846,6005,6005,6005,5276,5276,6004,5276,5276,6005,6847,5276,5276,5995,6375,5894,5276,6520,6383,5276,5276,5276,6404,5871,6112,7024,6387,6111,5276,5276,5276,5363,6401,6761,6409,6972,6429,6432,6433,6434,6438,6438,6438,6438,6441,6443,6444,6444,6451,6451,6451,6451,6448,6452,5276,5276,5276,6425,5348,6566,5276,5276,5276,6463,6370,6494,5276,5276,5973,5276,5362,6468,5276,6469,6475,5276,5276,5276,6519,5276,6484,5276,5276,6e3,5389,6228,6477,5276,5276,6012,5276,6112,5276,5276,5276,6520,5276,5276,5276,6396,5304,6197,5276,5276,6060,6059,5276,6499,6507,5276,5386,5283,5276,5276,6395,5276,5276,5279,6208,6518,5276,5276,5359,5276,5276,5276,6524,5276,5276,6534,6534,5276,5388,5276,5284,6546,6618,5276,5276,6109,5903,6553,6548,5276,5276,6116,5998,5349,6567,5276,5276,5276,6392,6611,5305,6199,5276,6537,6265,5276,6236,6525,5276,6830,6573,5818,5276,6831,5501,5819,5276,6832,5502,5820,6830,5500,5818,5276,5422,6847,5276,5522,7448,5276,5636,6001,5998,6565,5276,5276,5276,6525,5276,5276,7449,6887,6493,5276,5641,6843,5276,5276,5276,6237,6537,5276,6268,6140,5276,6390,5276,6459,6571,6577,5821,5276,5276,5276,6657,5276,7285,5499,6578,5276,5276,6886,5279,5276,5649,6028,6094,5276,6458,5276,5276,5276,6526,7024,6877,5256,6579,5276,5276,5276,6528,6598,5276,5276,5276,6536,5276,6592,5276,5276,5276,6620,5276,6391,6459,5276,5739,7123,6938,5281,6583,6579,5276,5741,7125,6332,6602,5276,6459,5276,5741,7125,6522,5276,6404,5871,5280,5276,5302,5276,5757,5276,5356,6392,6526,5276,5276,6118,5279,6610,5276,5276,5276,6783,5367,6615,5276,5276,5276,6784,5276,6919,6923,5276,5777,5276,5276,5327,6542,5280,6537,6266,5276,5788,6264,5276,5288,7184,7189,5276,5277,5276,5367,5276,6268,6141,6712,6424,5276,5276,6126,5898,5276,5276,5632,6626,6634,5276,5276,6131,6414,6108,5276,5276,6395,5276,6844,5276,5276,5917,5276,6521,5276,6395,6522,6729,6846,5276,5375,6502,6651,6664,6672,6682,6685,6689,6693,6693,6693,6695,6697,6697,6697,6697,6701,6702,6702,6702,6703,6707,5276,6711,6423,5276,5276,5276,6735,5276,6716,5276,7351,5276,6727,5276,7420,6268,6969,6745,5276,5276,5276,6785,5450,5276,5276,5276,6793,6743,6094,5276,6750,6751,5276,5276,5276,6844,6212,5276,5276,5276,6847,5276,5276,6755,5276,5276,6238,5276,6524,6798,6267,6759,6771,6766,5276,5276,5276,6877,5194,6287,5276,7275,5276,5276,6248,5276,5276,6776,6772,6767,6790,5276,6792,5276,5907,5276,6269,5894,7260,7023,5276,5276,5276,6111,6392,6422,6847,5276,6100,5276,6888,5276,5276,6521,5276,5276,6194,7446,5368,7418,5276,5276,6293,5276,5276,5276,6269,6206,7033,6523,6797,6266,5312,5316,5276,5276,5276,6921,5313,5317,5276,5276,5276,6933,6792,6791,5276,5276,6305,5304,6420,6424,5276,5276,6319,6922,5276,5276,6118,5276,5374,5276,5276,6535,5276,5276,7034,7452,6826,5276,5908,5278,6495,5276,6519,5276,5276,5276,5281,5255,6598,5276,7033,5863,6828,6852,5314,5318,5276,5276,6913,5276,5276,5276,6958,6858,5318,5276,5276,6321,5800,6857,5317,5276,5276,6340,5802,6535,5276,6862,5276,6022,5753,5276,5278,5276,5276,7210,5276,6871,5276,5276,5276,7191,6199,6200,5276,5276,5276,7042,6425,5276,5276,6876,6887,5276,5367,6820,7444,5276,6002,5276,6194,7052,5276,6637,6520,5276,6536,5276,6822,5276,5276,6341,5276,7204,5276,5276,5276,7203,5367,5276,6786,5276,5276,6392,6921,6821,5276,5276,6904,5276,5276,6388,6391,6480,5276,5276,5276,7239,5276,6478,5367,5276,6095,5276,5276,6394,5276,6897,5276,5276,6883,6535,5276,5371,6904,5364,5276,6894,5276,6110,5276,5276,5981,7461,7451,5276,5276,5276,5983,7470,5990,5283,6536,6901,5276,6114,5276,6001,6911,5374,6535,5368,5803,5276,6392,6412,5369,5276,5276,5366,5364,6537,6364,5364,5276,5367,5371,5366,5364,5276,5276,6536,5365,5276,5366,5276,5366,5367,6538,6538,6538,5773,5767,5769,5771,5771,5772,5276,7445,5183,5276,5282,5917,7454,6113,6917,6942,7063,5336,6951,6962,6966,5531,6992,6995,6995,6998,7003,7002,7002,7004,7008,7009,7015,7013,7013,7013,7013,7019,7022,7030,5276,5276,6115,5375,5528,6927,5276,7445,6842,7453,6149,6156,6163,7038,6983,5276,5276,6392,7229,5277,5276,5276,7046,7060,5276,7070,5276,6116,5999,5276,6117,5276,5276,5364,5276,5276,5276,7240,7085,5276,5276,5276,7337,5349,5276,6906,7086,5276,6117,5368,5276,5276,6907,5276,7090,5276,6120,5276,5368,5389,6113,7094,5276,5276,5276,7338,6840,5276,6782,7444,6985,5276,5896,5276,6197,5276,5276,7024,5276,7104,5277,5276,5276,6947,6946,5276,6378,5276,5276,5276,7356,5276,5276,7356,6396,7111,7118,6379,5276,7119,6094,5276,5276,6405,5872,5898,6956,6954,5276,5276,6422,6847,7144,5276,5276,5276,7363,5285,5289,7113,7142,5286,7148,7114,7143,6201,5367,5276,5276,6458,5480,6298,7452,7154,5276,5895,5290,7159,7164,5318,7066,5318,5276,5276,6458,5481,6301,6676,5276,5276,6199,5276,5276,5276,6879,7180,5276,5276,5276,7364,5290,7174,7179,5276,5276,7178,5276,5276,5276,7380,5740,7169,5276,5276,6467,5276,6677,6197,5276,5924,7196,6975,5276,5276,6467,7049,5285,7195,7185,6391,6116,5276,5276,5276,7208,7454,5276,5276,6473,6477,6526,5276,7449,5276,6197,6520,5276,7446,5276,5375,7224,5276,5276,5276,7381,7214,5276,5276,5276,7408,7223,6847,5276,5276,6479,5276,7222,6425,5276,6201,6886,6492,7200,5276,6237,5276,5276,6841,6675,5276,5276,5387,5276,5276,6488,5276,6878,6781,5276,5276,6514,5276,5276,6879,7230,5276,5276,5276,7446,7228,5276,5276,6249,7452,5276,5389,5276,6198,6197,5276,6e3,5276,6238,5276,6524,6201,5276,6201,7449,5276,6193,7445,5276,5280,6209,6213,5276,6520,5276,5281,6065,6587,6879,7455,5276,5276,6525,6526,6659,6079,7450,5276,6395,7455,6621,6847,5276,7238,5276,6622,5276,5276,6526,7416,5276,6622,5276,7247,6620,7455,5276,5276,6530,5276,7391,6527,6621,6847,5276,5276,6537,5276,5276,6536,6621,6847,7455,5387,5388,6847,5388,7344,5276,5276,7229,7453,5386,5423,5389,5276,5276,6593,5276,5388,5276,5386,5388,7253,5276,7258,7446,6196,5276,5363,5276,6210,6887,5276,5894,5276,5276,5276,5971,7257,5276,5916,6640,7264,6258,5276,5189,5276,7260,5916,7259,6503,7097,7283,7273,5724,7100,7135,7279,6930,7132,7289,7293,7302,7295,7297,7306,7298,7317,7310,7311,7315,7318,7326,7326,7328,7324,7322,7332,7335,5276,6218,5750,5276,5276,7362,7366,7364,7342,5276,6467,5389,5281,5276,5276,6621,5276,5276,6393,5276,5915,5276,6227,6476,5276,5377,6746,5276,5386,5276,5276,5276,7449,5276,5276,7360,7370,7376,7385,5276,5276,5276,7450,5276,5276,6529,7386,5276,6265,5276,5276,5378,6094,7392,5276,5276,5276,7451,7342,7445,6201,5276,6266,5276,5276,5382,5400,5400,5400,5427,6389,6113,5276,5276,6235,6234,5276,5276,5276,7457,5276,6526,6716,7433,7396,7402,5276,5276,6733,6739,7403,5276,5276,5276,7466,7408,7398,7404,6844,5276,6847,5276,6267,6140,5276,5388,7230,5276,5414,5400,5400,5400,5428,7342,7447,7451,5276,6268,5276,6237,6268,5276,5276,7356,6110,6268,5276,5276,5276,5643,7409,5986,7425,5276,6292,5276,5276,5740,7124,7030,7410,5987,7426,5276,6306,5305,5276,5276,6201,5276,5276,5276,5739,7168,7411,5988,7427,5276,6323,7446,6117,5276,5371,5276,5276,7454,5276,6887,5276,5985,5989,6236,6846,6003,5276,6004,5276,6004,6002,5276,6845,5276,5276,5276,6802,5311,6560,7449,5276,5276,5281,7200,5276,6393,5276,7452,5276,5276,5276,6388,6113,5276,6233,5836,5898,5276,5276,7387,5868,7434,5276,5276,5276,6877,7228,6201,5276,7452,5962,5276,5276,5276,6853,5315,5898,5276,5276,7431,5276,5276,5276,6878,7229,5984,7471,5991,5276,6340,5803,5276,5780,5276,5990,5276,5276,5276,6920,5821,5982,7469,5989,5276,6346,6351,5276,5276,6388,6113,5276,5276,6946,5276,5276,7438,5276,5276,7024,5276,5276,5276,7467,7476,5276,5276,7477,5276,5276,5276,7025,5276,7450,5276,5388,5281,6279,5276,5276,5622,5315,5276,6389,6114,5276,6347,6352,5276,5276,5276,7444,5276,5276,5276,6945,7466,7475,5276,5276,7041,5276,5631,5276,5388,5282,7466,7462,5276,5276,5276,7040,5276,5276,5276,7081,5276,5303,5276,5276,5276,7110,6654,0,0,1075838976,2097152,-1845493760,0,0,2147483648,16777216,4194560,4196352,270532608,2097152,2097152,268435456,4194432,16777216,4194432,3145728,541065216,-2143289344,4194304,4194304,4194304,4194304,541065216,4194304,4194304,4194432,37748736,-1606418432,541065216,541065216,541065216,541065216,4194304,4194304,4196352,-1606418432,-1606418432,541065216,541065216,4194304,4198144,541065216,541065216,-2143289344,-2143289344,8425488,4194304,4194304,4194304,1,32768,0,2147483648,16,33554432,33554432,0,2,4,112,128,256,3584,16384,37748736,742391808,239075328,775946240,775946240,775946240,171966464,171966464,171966464,171966464,239075328,171966464,775946240,239075328,4718592,64,4718592,2097216,4720640,541589504,4194368,541589504,4194400,4194368,-2142763008,541589504,541065280,4194368,4194368,541065312,541065280,-2143289280,4194368,-2143285408,-2143285408,-2143285440,-2143285440,-2143285440,-2143285440,-1605890240,-2142761152,-2109731008,-1606414528,-2142761152,-1606414528,-2143285440,-2143285440,-1606414528,-1606414528,-2143285440,-2109731008,776470528,-1908404416,775946304,-1908404416,2,4,8,16,512,1024,4194304,128,128,0,2147483648,524288,5242880,2147483648,0,0,2,12,64,256,2048,2048,0,0,0,0,1,0,0,0,2,0,0,0,3,4,16,224,256,512,1024,16777216,16777216,0,0,2147483648,65536,1792,0,0,0,8,0,0,0,12,32,64,1024,2048,57344,262144,50331648,268435456,1073741824,2147483648,0,0,1536,64,524352,524352,524352,0,0,0,62,64,128,64,262144,1048576,0,2147483648,2097152,0,-2113929216,0,0,-1979711488,-1912602624,64,64,1048576,128,256,2048,262144,524288,4096,1024,1024,0,-570425344,32505856,0,0,48,25165824,0,0,0,33554432,268435456,0,0,0,524288,0,0,0,32,0,0,0,44,64576,319029248,0,524288,524288,524288,0,64,0,0,0,64,0,96,96,96,524352,524352,524352,524352,524288,524288,524288,524288,64,64,0,64,128,128,128,128,2048,2048,0,0,524288,524288,64,64,128,2048,0,0,64,128,8388608,524288,64,64,64,64,32,96,64,96,96,524352,96,160,1056,262176,1048608,2097184,4194336,536870944,40,262176,32,96,0,0,0,60,40,48,1120,96,96,64,524352,0,524288,64,96,524352,0,524288,4195360,6291488,2097184,2097184,4194336,4194336,4194336,32,56,0,4,16,32,64,128,256,1536,2048,40,262184,40,40,40,40,40,262176,32,32,6292512,4195360,2097184,32,128,1792,8192,16384,131072,524288,4195104,6292512,32,32,32,32,4,40,262184,32,32,34,34,262184,40,4196128,32,262144,524288,0,0,64,256,0,2097152,135790592,131073,4,393233,262184,34,42,32,524320,32,1073872896,32,32,40,1120,96,1056,4194336,32,2098208,-322695456,-322695456,-322695456,-322695456,-322597152,-320598176,-322597152,-322597144,-321548576,-320598168,-322597144,-321548568,-37482773,0,0,64,1536,32768,-322588952,-321548568,-322588952,-321548568,-322597144,32,0,32,64,65536,0,96,32,32,56,262184,40,41,262184,32,42,224,40,262176,42,106,293601323,293601323,293863467,293699627,293617707,293716011,293702203,293702203,293702203,297896507,293702203,293702203,293702203,293702267,293964347,293702267,297896507,293964347,297896507,297896507,-322597144,-37744981,0,32,524288,0,0,64,2048,16384,32768,0,0,262144,65536,262144,262144,0,4096,0,8,0,2,65536,262656,328192,0,0,0,1536,32768,0,5242880,0,0,0,1998,518144,8388608,-2147418112,5242880,-1842937664,201330721,201330721,-2111369023,-2111369023,-2111369023,-2111369023,-2111360575,-2111369023,-2111369023,-2111369023,-1977151295,-1977151293,-1910042431,-1893265183,-2111368509,-1893265183,-1893265183,-1893265183,-1893265183,-2111368509,-1893265183,-1893265183,-553689472,-553656704,-553689472,-553689472,-553656704,-553656704,-553656704,-553656704,-553656704,-553656672,-553656672,-553656672,-553656672,-536912159,-553656672,-553656672,-553656664,-553656664,-553656672,-553656672,-553656670,-553656672,-553656672,-553656670,-553656608,-553656671,-536879391,-536879391,-536879391,0,0,262656,0,0,65,1024,0,1,4096,201326592,0,0,0,0,462976,-2113929216,100663296,100663296,2,4,8,64,128,512,2048,8192,16384,458752,18874368,463488,0,0,1,2,4,32,0,0,1007232,15728640,104e4,15728640,-570425344,0,0,0,2014,0,0,0,32505856,-570425344,196608,2097152,301989888,0,0,80,268435456,0,268435456,0,268435456,268435456,268435456,268435456,0,0,0,4096,201326592,0,0,96,2260992,12288,0,2147483648,0,0,118,577408,22020096,1040187392,0,0,167772160,234881024,128,512,2048,196608,262144,33554432,536870912,0,0,0,557056,7168,16384,196608,786432,503316480,1073741824,2147483648,0,0,128,131072,524288,58720256,402653184,0,0,0,318767104,128,512,7168,16384,32768,32768,196608,786432,1048576,2097152,4194304,33554432,268435456,536870912,2147483648,0,0,1,256,8388608,234881024,268435456,1073741824,2147483648,4096,16384,32768,131072,524288,1048576,2097152,4194304,8388608,234881024,0,0,201326592,0,0,128,536870912,4194304,512,3072,16384,131072,524288,1048576,4194304,134217728,8388608,33554432,201326592,268435456,1073741824,0,1048576,4194304,268435456,4194304,8388608,134217728,268435456,1073741824,3072,131072,524288,1048576,1073741824,0,0,0,2147483648,0,0,0,-2147483646,16384,18432,67108864,1073741824,16384,8192,0,0,65536,262144,0,0,67108864,0,0,0,32768,0,1,18952,1024,0,0,192,0,0,0,65,1024,1024,100663298,18952,65,268436480,2101248,524288,1024,19017,-1744550912,8388624,8388624,8388624,-1739308032,-1739308032,-1739308032,-1739308032,-1736162288,-1736162288,-1736162288,-1736162288,-7868466,-7868466,-7868466,-7868466,-7868466,-7868450,-7868450,-7868450,-7868450,0,0,0,65536,2048,16384,67108864,134217728,268435456,0,0,1073741824,18432,0,0,1,285212672,0,585,0,0,2,8,16,64,128,3072,4096,8192,65536,131072,0,0,1024,5521408,-1744830464,0,0,0,262144,0,0,0,1024,0,0,0,112,1040,0,0,-1744830464,0,-1744830464,59238400,-67108864,0,0,0,327680,2014,0,0,0,328192,518144,8388608,50331648,201326592,805306368,-1073741824,768,1024,10240,16384,32768,458752,50331648,67108864,134217728,805306368,0,0,0,458880,32768,458752,8388608,50331648,67108864,134217728,67108864,134217728,805306368,1073741824,2147483648,0,0,220,0,0,0,471424,12,192,768,1024,2048,805306368,1073741824,0,0,2,204,768,1024,4,8,32,64,512,2048,512,2048,16384,67108864,0,0,458752,50331648,67108864,805306368,-1073741824,0,0,0,393240,0,1048576,4194304,0,0,16384,458752,50331648,67108864,536870912,1073741824,0,0,16384,0,0,0,256,0,0,0,512,0,0,0,585,16,0,0,1048576,4194304,2147483648,4,8,128,512,3072,16384,32768,131072,512,0,0,4096,1048576,2147483648,8192,2097152,268435456,2147483648,537395200,537395200,0,4196352,51380242,51380242,51380242,0,537395200,4196352,4196352,276901888,8540160,-1606418432,0,32768,537395200,4196352,1082130432,0,4196352,537427968,22022147,22349827,22349827,22349827,22366219,22349843,22349827,22349827,22366219,22349827,55576594,55576594,55576594,55576594,55576594,324012114,55576594,55576594,1062785014,1062785014,1062785014,1062785014,0,0,2,33554432,0,0,0,131072,0,0,0,8192,8392704,32768,268435456,0,0,2,67108864,12,16384,0,65536,0,22020096,0,0,0,104e4,15728640,0,0,329728,0,0,254,1792,2809856,58720256,19,0,0,0,1048576,0,0,0,2048,0,0,0,18,33554432,0,0,256,8192,0,0,8192,2097152,0,2147483648,0,82,301989888,0,0,0,2101248,22020096,1040187392,0,0,0,4194304,0,0,0,16384,1536,0,256,0,8192,2097152,16,1048576,16777216,33554432,268435456,536870912,2147483648,3584,16384,32768,524288,1048576,4194304,0,0,8388608,1073741824,0,0,1536,2048,16384,32768,524288,4194304,134217728,0,0,134217728,4096,0,8,0,256,1536,16384,32768,524288,128,536870912,0,0,4,8,512,2048,0,0,1536,32768,524288,4194304,33554432,134217728,536870912,0,0,8192,2097152,2147483648,0,0,512,2048,131072,536870912,0,0,16,64,1536,32768,32768,524288,134217728,0,0,0,524288,0,64,64,16392,1536,32768,524288,0,0,33554432,8192,0,65536,0,0,1,1,0,1,67174400,33554432,536870912,-1073741824,0,0,0,0,524288,134217728,67174400,0,0,0,16777216,0,0,0,4,0,0,0,7,16,16384,8,8,0,0,512,3072,131072,131072,268435456,134217728,8,512,2048,196608,262144,50331648,536870912,1073741824,0,4,8,2048,8192,32768,8388608,0,0,134217736,16908320,547389524,547389524,555909216,555909216,555909216,555909216,564297840,564297844,564297844,564297844,564297844,1001055742,1001056254,1001055742,1001055742,1001056254,1001056254,1001056254,1001056254,1001055742,1001056254,1001056254,1001056254,1001056254,0,1052672,2147483648,0,0,4,16,0,0,84,2129920,8388608,4096,0,0,0,116,0,254,1280,2809856,58720256,939524096,0,0,0,50331648,268435456,0,0,0,939524096,0,0,520,1024,0,0,1,0,67108864,1073741824,0,0,0,20,64,32768,8192,0,2048,0,2097152,8388608,536870912,0,0,1024,278528,0,0,0,393232,163840,0,0,0,134217728,0,0,0,16,0,0,0,15,208,15360,1245184,52,0,0,0,268435456,0,0,33554432,64,128,1280,24576,163840,524288,2097152,58720256,402653184,536870912,128,1792,24576,163840,524288,0,4,16,8388608,0,0,4096,32768,262144,524288,33554432,134217728,0,0,24,32,128,1280,8192,16384,8192,524288,16777216,33554432,402653184,0,4,8,16,1024,2048,8192,16384,32768,458752,0,262144,33554432,134217728,0,512,1024,16777216,33554432,402653184,0,4096,1048576,0,0,1998,59238400,-67108864,4,8,16,402653184,0,0,8,16,402653184,536870912,0,0,4,64,128,8388608,0,0,67108866,12,64,128,512,1024,4,16384,65536,67108864,0,65536,0,0,2048,64,64,64,96,96,96,96,0,8192,8192,268435460,32768,65536,2490368,16777216,2147483648,0,0,1,4,8,2048,8192,3670016,2048,2048,2048,2048,0,8192,34816,9216,4096,0,128,0,2097152,0,0,4096,4096,29696,29712,29840,29712,29712,29840,29840,536900624,4224144,144384,144384,144384,144384,-754647956,-754647956,-754647956,-754647956,-754647956,-754647940,-754647940,-754647940,-754647940,-754516884,-754647956,-754516884,-754516884,-754516884,4,8,256,512,2048,0,0,3670016,0,0,2048,131072,524288,4194304,2147483648,0,0,9216,0,0,4,134217728,0,29696,0,0,4,268435456,0,16,0,29824,0,60,64576,319029248,-1073741824,0,0,319160320,0,0,0,319160320,0,0,524288,3145728,0,12288,131072,0,8,131072,61440,262144,318767104,-1073741824,0,0,64,1024,2048,61440,262144,0,28,32,64,64,64,128,0,0,16384,32768,50331648,268435456,0,0,0,393216,0,0,0,486539264,0,128,0,536870912,0,0,12,16,32,327155712,34,1056,32,32,42,4457568,-326784344,-322851160,-322698144,-322698144,-322698144,-322698144,-322695456,0,0,524288,1048576,0,0,0,536870912,4194304,131072,0,0,6,56,128,1792,2,67108864,16384,0,0,4096,4194304,32768,0,0,0,8388608,0,0,0,72,0,8,64,2048,57344,16384,32768,262144,50331648,268435456,0,524288,1048576,2097152,4194304,134217728,2147483648,0,0,50331648,268435456,2147483648,0,0,1,0,0,2,4,16,64,1,0,2,0,0,65536,0,0,0,1040,8667136,0,131072,131072,0,131072,0,131072,0,0,524288,536870912,131072,0,0,7,27756528,-503316480,0,256,0,2048,32768,8388608,262144,2113536,0,0,8,16,512,402653184,0,0,0,256,32768,0,0,4224,65536,262144,1048576,4194304,16777216,33554432,67108864,134217728,0,0,256,262144,0,0,8192,268435456,0,0,0,4,131073,0,0,9728,268435456,0,0,16,393216,0,131073,131073,33554624,4,0,131073,0,0,13312,131072,4194304,-2146430976,131072,2097152,16777216,0,0,512,131072,1048576,2097152,0,1572864,0,0,0,2147483648,524288,0,1610612736,1610612736,1610612736,393241,393241,393241,393241,805707793,805707793,1879449617,805708049,1879449617,1879449617,1879449617,1879449617,-483948553,-475559945,-483948553,-475559945,-483948553,-483948553,-475559945,-475559945,-475559945,-475559945,-483948553,-483948553,-215504905,-475559945,-207116297,-207116297,0,0,0,1073741824,0,0,2097152,67108864,134217728,536870912,0,0,24576,0,0,0,2113536,0,0,8,64,0,0,0,401424,805306368,0,0,28672,0,0,4096,2097152,4194304,8388608,503316480,1073741824,0,0,1879048192,0,0,32768,2097152,8388608,16777216,33554432,0,401680,0,0,8,512,2048,131072,33554432,536870912,0,0,7,19367920,-503316480,27756528,-503316480,0,0,0,0,0,19376112,-234881024,0,27764720,-234881024,0,0,32768,33554436,0,0,33554436,24,0,0,0,11,346112,7,16,480,1536,32768,65536,393216,10485760,65536,10878976,16777216,33554432,536870912,4,32,524288,1048576,33554432,67108864,65536,393216,2097152,16777216,262400,65536,4224,4224,0,65536,201326592,2147483648,393216,10485760,16777216,33554432,1073741824,2147483648,0,16,224,256,1536,32768,65536,0,16384,2097152,0,0,1024,32768,65536,131072,262144,262144,2097152,16777216,33554432,4,32,524288,134217728,0,512,32768,131072,262144,2097152,2097152,8388608,16777216,1073741824,0,0,512,32768,131072,2097152,8388608,8388608,16777216,0,0,16,33554432,4,16,224,512,32768,4,524288,134217728,0,0,32768,50331648,268435456,4096,32768,0,0,16,536870912,16,192,32768,8388608,4096,4096,4096,1536,2,4,16,192,32768,0,16,64,128,8388608,0,0,0,2,4,134217728,4,0,0,128,512,3072,4096,16384,131072,4,128,0,0,18,17825792,524288,8388608,33554432,2147483648,8192,0,33554432,0,0,33554432,0,0,0,268435456,2,4,8,262144,262144,1048576,2048,32768,0,0,28,0,100663296,4224,65536,65536,262144,33554432,0,2,4,24,-1072627712,805306384,-1342177264,-1342177264,-1070006272,-1070006272,-1069989376,-1069989376,-258932720,-258932720,-258932720,-258932720,-225378288,-1069989376,-1069989360,-1065795072,-1061600768,-258932720,-225378288,-258932720,-258932720,1260767,34815199,1260767,34815199,1260767,34815199,34815199,1260767,1260767,34815199,1260767,1260767,169032927,-1978450721,169032927,-1978450721,169032927,169032927,169032927,169032927,1242774751,-1978450721,-1978450721,-225231649,-1173144353,-225231649,-91013921,0,0,32,128,256,262144,524288,8388608,0,64,0,0,1114112,1073741824,0,0,34816,0,0,2048,4194304,0,0,0,3735552,0,0,32,512,2048,32768,262144,524288,3751936,0,0,0,48,0,0,528,7946240,12140544,9502720,1610612736,0,0,0,15360,1245184,0,0,134217728,128,15,9633792,0,0,0,2,12,80,128,7168,8192,7168,8192,196608,1048576,0,0,0,1,2,12,16,64,128,256,0,0,3145728,0,0,0,536870912,0,0,8192,65536,131072,1048576,0,0,0,2097152,0,16384,0,4194304,0,0,2097152,16384,0,0,131072,2097152,0,0,0,4096,0,0,8192,0,0,0,128,0,0,0,208,0,64,128,1024,4096,0,0,2,8,64,128,1024,2048,4096,8192,128,1024,4096,8192,0,0],r.TOKEN=[\"(0)\",\"PragmaContents\",\"DirCommentContents\",\"DirPIContents\",\"CDataSection\",\"Wildcard\",\"EQName\",\"URILiteral\",\"IntegerLiteral\",\"DecimalLiteral\",\"DoubleLiteral\",\"StringLiteral\",\"PredefinedEntityRef\",\"'\\\"\\\"'\",\"EscapeApos\",\"ElementContentChar\",\"QuotAttrContentChar\",\"AposAttrContentChar\",\"PITarget\",\"NCName\",\"QName\",\"S\",\"S\",\"CharRef\",\"CommentContents\",\"EOF\",\"'!'\",\"'!='\",\"'\\\"'\",\"'#'\",\"'#)'\",\"'$'\",\"'$$'\",\"'%'\",\"''''\",\"'('\",\"'(#'\",\"'(:'\",\"')'\",\"'*'\",\"'*'\",\"'+'\",\"','\",\"'-'\",\"'-->'\",\"'.'\",\"'..'\",\"'/'\",\"'//'\",\"'/>'\",\"':'\",\"':)'\",\"'::'\",\"':='\",\"';'\",\"'<'\",\"'<!--'\",\"'</'\",\"'<<'\",\"'<='\",\"'<?'\",\"'='\",\"'>'\",\"'>='\",\"'>>'\",\"'?'\",\"'?>'\",\"'@'\",\"'NaN'\",\"'['\",\"']'\",\"'after'\",\"'all'\",\"'allowing'\",\"'ancestor'\",\"'ancestor-or-self'\",\"'and'\",\"'any'\",\"'append'\",\"'array'\",\"'as'\",\"'ascending'\",\"'at'\",\"'attribute'\",\"'base-uri'\",\"'before'\",\"'boundary-space'\",\"'break'\",\"'by'\",\"'case'\",\"'cast'\",\"'castable'\",\"'catch'\",\"'check'\",\"'child'\",\"'collation'\",\"'collection'\",\"'comment'\",\"'constraint'\",\"'construction'\",\"'contains'\",\"'content'\",\"'context'\",\"'continue'\",\"'copy'\",\"'copy-namespaces'\",\"'count'\",\"'decimal-format'\",\"'decimal-separator'\",\"'declare'\",\"'default'\",\"'delete'\",\"'descendant'\",\"'descendant-or-self'\",\"'descending'\",\"'diacritics'\",\"'different'\",\"'digit'\",\"'distance'\",\"'div'\",\"'document'\",\"'document-node'\",\"'element'\",\"'else'\",\"'empty'\",\"'empty-sequence'\",\"'encoding'\",\"'end'\",\"'entire'\",\"'eq'\",\"'every'\",\"'exactly'\",\"'except'\",\"'exit'\",\"'external'\",\"'false'\",\"'first'\",\"'following'\",\"'following-sibling'\",\"'for'\",\"'foreach'\",\"'foreign'\",\"'from'\",\"'ft-option'\",\"'ftand'\",\"'ftnot'\",\"'ftor'\",\"'function'\",\"'ge'\",\"'greatest'\",\"'group'\",\"'grouping-separator'\",\"'gt'\",\"'idiv'\",\"'if'\",\"'import'\",\"'in'\",\"'index'\",\"'infinity'\",\"'inherit'\",\"'insensitive'\",\"'insert'\",\"'instance'\",\"'integrity'\",\"'intersect'\",\"'into'\",\"'is'\",\"'item'\",\"'json'\",\"'json-item'\",\"'jsoniq'\",\"'key'\",\"'language'\",\"'last'\",\"'lax'\",\"'le'\",\"'least'\",\"'let'\",\"'levels'\",\"'loop'\",\"'lowercase'\",\"'lt'\",\"'minus-sign'\",\"'mod'\",\"'modify'\",\"'module'\",\"'most'\",\"'namespace'\",\"'namespace-node'\",\"'ne'\",\"'next'\",\"'no'\",\"'no-inherit'\",\"'no-preserve'\",\"'node'\",\"'nodes'\",\"'not'\",\"'null'\",\"'object'\",\"'occurs'\",\"'of'\",\"'on'\",\"'only'\",\"'option'\",\"'or'\",\"'order'\",\"'ordered'\",\"'ordering'\",\"'paragraph'\",\"'paragraphs'\",\"'parent'\",\"'pattern-separator'\",\"'per-mille'\",\"'percent'\",\"'phrase'\",\"'position'\",\"'preceding'\",\"'preceding-sibling'\",\"'preserve'\",\"'previous'\",\"'processing-instruction'\",\"'relationship'\",\"'rename'\",\"'replace'\",\"'return'\",\"'returning'\",\"'revalidation'\",\"'same'\",\"'satisfies'\",\"'schema'\",\"'schema-attribute'\",\"'schema-element'\",\"'score'\",\"'select'\",\"'self'\",\"'sensitive'\",\"'sentence'\",\"'sentences'\",\"'skip'\",\"'sliding'\",\"'some'\",\"'stable'\",\"'start'\",\"'stemming'\",\"'stop'\",\"'strict'\",\"'strip'\",\"'structured-item'\",\"'switch'\",\"'text'\",\"'then'\",\"'thesaurus'\",\"'times'\",\"'to'\",\"'treat'\",\"'true'\",\"'try'\",\"'tumbling'\",\"'type'\",\"'typeswitch'\",\"'union'\",\"'unique'\",\"'unordered'\",\"'updating'\",\"'uppercase'\",\"'using'\",\"'validate'\",\"'value'\",\"'variable'\",\"'version'\",\"'weight'\",\"'when'\",\"'where'\",\"'while'\",\"'wildcards'\",\"'window'\",\"'with'\",\"'without'\",\"'word'\",\"'words'\",\"'zero-digit'\",\"'{'\",\"'{{'\",\"'{|'\",\"'|'\",\"'||'\",\"'|}'\",\"'}'\",\"'}}'\"]},{}],10:[function(e,t,n){var r=n.XQueryParser=function i(e,t){function r(e,t){Vl=t,Ql=e,Gl=e.length,s(0,0,0)}function s(e,t,n){Dl=t,Pl=t,Hl=e,Bl=t,jl=n,Fl=0,Zl=n,Ul=-1,$l={},Vl.reset(Ql)}function o(){Vl.startNonterminal(\"Module\",Pl);switch(Hl){case 274:Ll(199);break;default:_l=Hl}(_l==64274||_l==134930)&&u(),kl(275);switch(Hl){case 182:Ll(194);break;default:_l=Hl}switch(_l){case 94390:Nl(),a();break;default:Nl(),Ra()}Vl.endNonterminal(\"Module\",Pl)}function u(){Vl.startNonterminal(\"VersionDecl\",Pl),Sl(274),kl(116);switch(Hl){case 125:Sl(125),kl(17),Sl(11);break;default:Sl(263),kl(17),Sl(11),kl(109),Hl==125&&(Sl(125),kl(17),Sl(11))}kl(28),Nl(),c(),Vl.endNonterminal(\"VersionDecl\",Pl)}function a(){Vl.startNonterminal(\"LibraryModule\",Pl),f(),kl(138),Nl(),l(),Vl.endNonterminal(\"LibraryModule\",Pl)}function f(){Vl.startNonterminal(\"ModuleDecl\",Pl),Sl(182),kl(61),Sl(184),kl(249),Nl(),Ia(),kl(29),Sl(60),kl(15),Sl(7),kl(28),Nl(),c(),Vl.endNonterminal(\"ModuleDecl\",Pl)}function l(){Vl.startNonterminal(\"Prolog\",Pl);for(;;){kl(275);switch(Hl){case 108:Ll(214);break;case 153:Ll(202);break;default:_l=Hl}if(_l!=42604&&_l!=43628&&_l!=50284&&_l!=53356&&_l!=54380&&_l!=55916&&_l!=72300&&_l!=93337&&_l!=94316&&_l!=104044&&_l!=113772&&_l!=115353)break;switch(Hl){case 108:Ll(179);break;default:_l=Hl}if(_l==55916){_l=Kl(0,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{_(),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(0,Pl,_l)}}switch(_l){case-1:Nl(),M();break;case 94316:Nl(),O();break;case 153:Nl(),C();break;case 72300:Nl(),D();break;default:Nl(),h()}kl(28),Nl(),c()}for(;;){kl(275);switch(Hl){case 108:Ll(211);break;default:_l=Hl}if(_l!=16492&&_l!=48748&&_l!=51820&&_l!=74348&&_l!=79468&&_l!=82540&&_l!=101996&&_l!=131692&&_l!=134252)break;switch(Hl){case 108:Ll(175);break;default:_l=Hl}switch(_l){case 51820:Nl(),R();break;case 101996:Nl(),Q();break;default:Nl(),P()}kl(28),Nl(),c()}Vl.endNonterminal(\"Prolog\",Pl)}function c(){Vl.startNonterminal(\"Separator\",Pl),Sl(53),Vl.endNonterminal(\"Separator\",Pl)}function h(){Vl.startNonterminal(\"Setter\",Pl);switch(Hl){case 108:Ll(172);break;default:_l=Hl}if(_l==55916){_l=Kl(1,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{v(),_l=-2}catch(a){try{Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),w(),_l=-6}catch(f){_l=-9}}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(1,Pl,_l)}}switch(_l){case 43628:p();break;case-2:d();break;case 42604:m();break;case 50284:g();break;case 104044:y();break;case-6:b();break;case 113772:ko();break;case 53356:E();break;default:T()}Vl.endNonterminal(\"Setter\",Pl)}function p(){Vl.startNonterminal(\"BoundarySpaceDecl\",Pl),Sl(108),kl(33),Sl(85),kl(133);switch(Hl){case 214:Sl(214);break;default:Sl(241)}Vl.endNonterminal(\"BoundarySpaceDecl\",Pl)}function d(){Vl.startNonterminal(\"DefaultCollationDecl\",Pl),Sl(108),kl(46),Sl(109),kl(38),Sl(94),kl(15),Sl(7),Vl.endNonterminal(\"DefaultCollationDecl\",Pl)}function v(){xl(108),kl(46),xl(109),kl(38),xl(94),kl(15),xl(7)}function m(){Vl.startNonterminal(\"BaseURIDecl\",Pl),Sl(108),kl(32),Sl(83),kl(15),Sl(7),Vl.endNonterminal(\"BaseURIDecl\",Pl)}function g(){Vl.startNonterminal(\"ConstructionDecl\",Pl),Sl(108),kl(41),Sl(98),kl(133);switch(Hl){case 241:Sl(241);break;default:Sl(214)}Vl.endNonterminal(\"ConstructionDecl\",Pl)}function y(){Vl.startNonterminal(\"OrderingModeDecl\",Pl),Sl(108),kl(68),Sl(203),kl(131);switch(Hl){case 202:Sl(202);break;default:Sl(256)}Vl.endNonterminal(\"OrderingModeDecl\",Pl)}function b(){Vl.startNonterminal(\"EmptyOrderDecl\",Pl),Sl(108),kl(46),Sl(109),kl(67),Sl(201),kl(49),Sl(123),kl(121);switch(Hl){case 147:Sl(147);break;default:Sl(173)}Vl.endNonterminal(\"EmptyOrderDecl\",Pl)}function w(){xl(108),kl(46),xl(109),kl(67),xl(201),kl(49),xl(123),kl(121);switch(Hl){case 147:xl(147);break;default:xl(173)}}function E(){Vl.startNonterminal(\"CopyNamespacesDecl\",Pl),Sl(108),kl(44),Sl(104),kl(128),Nl(),S(),kl(25),Sl(41),kl(123),Nl(),x(),Vl.endNonterminal(\"CopyNamespacesDecl\",Pl)}function S(){Vl.startNonterminal(\"PreserveMode\",Pl);switch(Hl){case 214:Sl(214);break;default:Sl(190)}Vl.endNonterminal(\"PreserveMode\",Pl)}function x(){Vl.startNonterminal(\"InheritMode\",Pl);switch(Hl){case 157:Sl(157);break;default:Sl(189)}Vl.endNonterminal(\"InheritMode\",Pl)}function T(){Vl.startNonterminal(\"DecimalFormatDecl\",Pl),Sl(108),kl(114);switch(Hl){case 106:Sl(106),kl(255),Nl(),Ha();break;default:Sl(109),kl(45),Sl(106)}for(;;){kl(181);if(Hl==53)break;Nl(),N(),kl(29),Sl(60),kl(17),Sl(11)}Vl.endNonterminal(\"DecimalFormatDecl\",Pl)}function N(){Vl.startNonterminal(\"DFPropertyName\",Pl);switch(Hl){case 107:Sl(107);break;case 149:Sl(149);break;case 156:Sl(156);break;case 179:Sl(179);break;case 67:Sl(67);break;case 209:Sl(209);break;case 208:Sl(208);break;case 275:Sl(275);break;case 116:Sl(116);break;default:Sl(207)}Vl.endNonterminal(\"DFPropertyName\",Pl)}function C(){Vl.startNonterminal(\"Import\",Pl);switch(Hl){case 153:Ll(126);break;default:_l=Hl}switch(_l){case 115353:k();break;default:A()}Vl.endNonterminal(\"Import\",Pl)}function k(){Vl.startNonterminal(\"SchemaImport\",Pl),Sl(153),kl(73),Sl(225),kl(137),Hl!=7&&(Nl(),L()),kl(15),Sl(7),kl(108);if(Hl==81){Sl(81),kl(15),Sl(7);for(;;){kl(103);if(Hl!=41)break;Sl(41),kl(15),Sl(7)}}Vl.endNonterminal(\"SchemaImport\",Pl)}function L(){Vl.startNonterminal(\"SchemaPrefix\",Pl);switch(Hl){case 184:Sl(184),kl(249),Nl(),Ia(),kl(29),Sl(60);break;default:Sl(109),kl(47),Sl(121),kl(61),Sl(184)}Vl.endNonterminal(\"SchemaPrefix\",Pl)}function A(){Vl.startNonterminal(\"ModuleImport\",Pl),Sl(153),kl(60),Sl(182),kl(90),Hl==184&&(Sl(184),kl(249),Nl(),Ia(),kl(29),Sl(60)),kl(15),Sl(7),kl(108);if(Hl==81){Sl(81),kl(15),Sl(7);for(;;){kl(103);if(Hl!=41)break;Sl(41),kl(15),Sl(7)}}Vl.endNonterminal(\"ModuleImport\",Pl)}function O(){Vl.startNonterminal(\"NamespaceDecl\",Pl),Sl(108),kl(61),Sl(184),kl(249),Nl(),Ia(),kl(29),Sl(60),kl(15),Sl(7),Vl.endNonterminal(\"NamespaceDecl\",Pl)}function M(){Vl.startNonterminal(\"DefaultNamespaceDecl\",Pl),Sl(108),kl(46),Sl(109),kl(115);switch(Hl){case 121:Sl(121);break;default:Sl(145)}kl(61),Sl(184),kl(15),Sl(7),Vl.endNonterminal(\"DefaultNamespaceDecl\",Pl)}function _(){xl(108),kl(46),xl(109),kl(115);switch(Hl){case 121:xl(121);break;default:xl(145)}kl(61),xl(184),kl(15),xl(7)}function D(){Vl.startNonterminal(\"FTOptionDecl\",Pl),Sl(108),kl(52),Sl(141),kl(81),Nl(),Fu(),Vl.endNonterminal(\"FTOptionDecl\",Pl)}function P(){Vl.startNonterminal(\"AnnotatedDecl\",Pl),Sl(108);for(;;){kl(170);if(Hl!=32&&Hl!=257)break;switch(Hl){case 257:Nl(),H();break;default:Nl(),B()}}switch(Hl){case 262:Nl(),F();break;case 145:Nl(),wl();break;case 95:Nl(),da();break;case 155:Nl(),xa();break;default:Nl(),Ta()}Vl.endNonterminal(\"AnnotatedDecl\",Pl)}function H(){Vl.startNonterminal(\"CompatibilityAnnotation\",Pl),Sl(257),Vl.endNonterminal(\"CompatibilityAnnotation\",Pl)}function B(){Vl.startNonterminal(\"Annotation\",Pl),Sl(32),kl(255),Nl(),Ha(),kl(171);if(Hl==34){Sl(34),kl(154),Nl(),oi();for(;;){kl(101);if(Hl!=41)break;Sl(41),kl(154),Nl(),oi()}Sl(37)}Vl.endNonterminal(\"Annotation\",Pl)}function j(){xl(32),kl(255),Ba(),kl(171);if(Hl==34){xl(34),kl(154),ui();for(;;){kl(101);if(Hl!=41)break;xl(41),kl(154),ui()}xl(37)}}function F(){Vl.startNonterminal(\"VarDecl\",Pl),Sl(262),kl(21),Sl(31),kl(255),Nl(),hi(),kl(147),Hl==79&&(Nl(),ds()),kl(106);switch(Hl){case 52:Sl(52),kl(267),Nl(),I();break;default:Sl(133),kl(104),Hl==52&&(Sl(52),kl(267),Nl(),q())}Vl.endNonterminal(\"VarDecl\",Pl)}function I(){Vl.startNonterminal(\"VarValue\",Pl),_f(),Vl.endNonterminal(\"VarValue\",Pl)}function q(){Vl.startNonterminal(\"VarDefaultValue\",Pl),_f(),Vl.endNonterminal(\"VarDefaultValue\",Pl)}function R(){Vl.startNonterminal(\"ContextItemDecl\",Pl),Sl(108),kl(43),Sl(101),kl(55),Sl(165),kl(147),Hl==79&&(Sl(79),kl(260),Nl(),ws()),kl(106);switch(Hl){case 52:Sl(52),kl(267),Nl(),I();break;default:Sl(133),kl(104),Hl==52&&(Sl(52),kl(267),Nl(),q())}Vl.endNonterminal(\"ContextItemDecl\",Pl)}function U(){Vl.startNonterminal(\"ParamList\",Pl),W();for(;;){kl(101);if(Hl!=41)break;Sl(41),kl(21),Nl(),W()}Vl.endNonterminal(\"ParamList\",Pl)}function z(){X();for(;;){kl(101);if(Hl!=41)break;xl(41),kl(21),X()}}function W(){Vl.startNonterminal(\"Param\",Pl),Sl(31),kl(255),Nl(),Ha(),kl(143),Hl==79&&(Nl(),ds()),Vl.endNonterminal(\"Param\",Pl)}function X(){xl(31),kl(255),Ba(),kl(143),Hl==79&&vs()}function V(){Vl.startNonterminal(\"FunctionBody\",Pl),J(),Vl.endNonterminal(\"FunctionBody\",Pl)}function $(){K()}function J(){Vl.startNonterminal(\"EnclosedExpr\",Pl),Sl(276),kl(267),Nl(),G(),Sl(282),Vl.endNonterminal(\"EnclosedExpr\",Pl)}function K(){xl(276),kl(267),Y(),xl(282)}function Q(){Vl.startNonterminal(\"OptionDecl\",Pl),Sl(108),kl(66),Sl(199),kl(255),Nl(),Ha(),kl(17),Sl(11),Vl.endNonterminal(\"OptionDecl\",Pl)}function G(){Vl.startNonterminal(\"Expr\",Pl),_f();for(;;){if(Hl!=41)break;Sl(41),kl(267),Nl(),_f()}Vl.endNonterminal(\"Expr\",Pl)}function Y(){Df();for(;;){if(Hl!=41)break;xl(41),kl(267),Df()}}function Z(){Vl.startNonterminal(\"FLWORExpr\",Pl),tt();for(;;){kl(173);if(Hl==220)break;Nl(),rt()}Nl(),rn(),Vl.endNonterminal(\"FLWORExpr\",Pl)}function et(){nt();for(;;){kl(173);if(Hl==220)break;it()}sn()}function tt(){Vl.startNonterminal(\"InitialClause\",Pl);switch(Hl){case 137:Ll(141);break;default:_l=Hl}switch(_l){case 16009:st();break;case 174:vt();break;default:bt()}Vl.endNonterminal(\"InitialClause\",Pl)}function nt(){switch(Hl){case 137:Ll(141);break;default:_l=Hl}switch(_l){case 16009:ot();break;case 174:mt();break;default:wt()}}function rt(){Vl.startNonterminal(\"IntermediateClause\",Pl);switch(Hl){case 137:case 174:tt();break;case 266:It();break;case 148:Rt();break;case 105:jt();break;default:Kt()}Vl.endNonterminal(\"IntermediateClause\",Pl)}function it(){switch(Hl){case 137:case 174:nt();break;case 266:qt();break;case 148:Ut();break;case 105:Ft();break;default:Qt()}}function st(){Vl.startNonterminal(\"ForClause\",Pl),Sl(137),kl(21),Nl(),ut();for(;;){if(Hl!=41)break;Sl(41),kl(21),Nl(),ut()}Vl.endNonterminal(\"ForClause\",Pl)}function ot(){xl(137),kl(21),at();for(;;){if(Hl!=41)break;xl(41),kl(21),at()}}function ut(){Vl.startNonterminal(\"ForBinding\",Pl),Sl(31),kl(255),Nl(),hi(),kl(164),Hl==79&&(Nl(),ds()),kl(158),Hl==72&&(Nl(),ft()),kl(150),Hl==81&&(Nl(),ct()),kl(122),Hl==228&&(Nl(),pt()),kl(53),Sl(154),kl(267),Nl(),_f(),Vl.endNonterminal(\"ForBinding\",Pl)}function at(){xl(31),kl(255),pi(),kl(164),Hl==79&&vs(),kl(158),Hl==72&&lt(),kl(150),Hl==81&&ht(),kl(122),Hl==228&&dt(),kl(53),xl(154),kl(267),Df()}function ft(){Vl.startNonterminal(\"AllowingEmpty\",Pl),Sl(72),kl(49),Sl(123),Vl.endNonterminal(\"AllowingEmpty\",Pl)}function lt(){xl(72),kl(49),xl(123)}function ct(){Vl.startNonterminal(\"PositionalVar\",Pl),Sl(81),kl(21),Sl(31),kl(255),Nl(),hi(),Vl.endNonterminal(\"PositionalVar\",Pl)}function ht(){xl(81),kl(21),xl(31),kl(255),pi()}function pt(){Vl.startNonterminal(\"FTScoreVar\",Pl),Sl(228),kl(21),Sl(31),kl(255),Nl(),hi(),Vl.endNonterminal(\"FTScoreVar\",Pl)}function dt(){xl(228),kl(21),xl(31),kl(255),pi()}function vt(){Vl.startNonterminal(\"LetClause\",Pl),Sl(174),kl(96),Nl(),gt();for(;;){if(Hl!=41)break;Sl(41),kl(96),Nl(),gt()}Vl.endNonterminal(\"LetClause\",Pl)}function mt(){xl(174),kl(96),yt();for(;;){if(Hl!=41)break;xl(41),kl(96),yt()}}function gt(){Vl.startNonterminal(\"LetBinding\",Pl);switch(Hl){case 31:Sl(31),kl(255),Nl(),hi(),kl(105),Hl==79&&(Nl(),ds());break;default:pt()}kl(27),Sl(52),kl(267),Nl(),_f(),Vl.endNonterminal(\"LetBinding\",Pl)}function yt(){switch(Hl){case 31:xl(31),kl(255),pi(),kl(105),Hl==79&&vs();break;default:dt()}kl(27),xl(52),kl(267),Df()}function bt(){Vl.startNonterminal(\"WindowClause\",Pl),Sl(137),kl(135);switch(Hl){case 251:Nl(),Et();break;default:Nl(),xt()}Vl.endNonterminal(\"WindowClause\",Pl)}function wt(){xl(137),kl(135);switch(Hl){case 251:St();break;default:Tt()}}function Et(){Vl.startNonterminal(\"TumblingWindowClause\",Pl),Sl(251),kl(85),Sl(269),kl(21),Sl(31),kl(255),Nl(),hi(),kl(110),Hl==79&&(Nl(),ds()),kl(53),Sl(154),kl(267),Nl(),_f(),Nl(),Nt();if(Hl==126||Hl==198)Nl(),kt();Vl.endNonterminal(\"TumblingWindowClause\",Pl)}function St(){xl(251),kl(85),xl(269),kl(21),xl(31),kl(255),pi(),kl(110),Hl==79&&vs(),kl(53),xl(154),kl(267),Df(),Ct(),(Hl==126||Hl==198)&&Lt()}function xt(){Vl.startNonterminal(\"SlidingWindowClause\",Pl),Sl(234),kl(85),Sl(269),kl(21),Sl(31),kl(255),Nl(),hi(),kl(110),Hl==79&&(Nl(),ds()),kl(53),Sl(154),kl(267),Nl(),_f(),Nl(),Nt(),Nl(),kt(),Vl.endNonterminal(\"SlidingWindowClause\",Pl)}function Tt(){xl(234),kl(85),xl(269),kl(21),xl(31),kl(255),pi(),kl(110),Hl==79&&vs(),kl(53),xl(154),kl(267),Df(),Ct(),Lt()}function Nt(){Vl.startNonterminal(\"WindowStartCondition\",Pl),Sl(237),kl(163),Nl(),At(),kl(83),Sl(265),kl(267),Nl(),_f(),Vl.endNonterminal(\"WindowStartCondition\",Pl)}function Ct(){xl(237),kl(163),Ot(),kl(83),xl(265),kl(267),Df()}function kt(){Vl.startNonterminal(\"WindowEndCondition\",Pl),Hl==198&&Sl(198),kl(50),Sl(126),kl(163),Nl(),At(),kl(83),Sl(265),kl(267),Nl(),_f(),Vl.endNonterminal(\"WindowEndCondition\",Pl)}function Lt(){Hl==198&&xl(198),kl(50),xl(126),kl(163),Ot(),kl(83),xl(265),kl(267),Df()}function At(){Vl.startNonterminal(\"WindowVars\",Pl),Hl==31&&(Sl(31),kl(255),Nl(),Mt()),kl(159),Hl==81&&(Nl(),ct()),kl(153),Hl==215&&(Sl(215),kl(21),Sl(31),kl(255),Nl(),Dt()),kl(127),Hl==187&&(Sl(187),kl(21),Sl(31),kl(255),Nl(),Ht()),Vl.endNonterminal(\"WindowVars\",Pl)}function Ot(){Hl==31&&(xl(31),kl(255),_t()),kl(159),Hl==81&&ht(),kl(153),Hl==215&&(xl(215),kl(21),xl(31),kl(255),Pt()),kl(127),Hl==187&&(xl(187),kl(21),xl(31),kl(255),Bt())}function Mt(){Vl.startNonterminal(\"CurrentItem\",Pl),Ha(),Vl.endNonterminal(\"CurrentItem\",Pl)}function _t(){Ba()}function Dt(){Vl.startNonterminal(\"PreviousItem\",Pl),Ha(),Vl.endNonterminal(\"PreviousItem\",Pl)}function Pt(){Ba()}function Ht(){Vl.startNonterminal(\"NextItem\",Pl),Ha(),Vl.endNonterminal(\"NextItem\",Pl)}function Bt(){Ba()}function jt(){Vl.startNonterminal(\"CountClause\",Pl),Sl(105),kl(21),Sl(31),kl(255),Nl(),hi(),Vl.endNonterminal(\"CountClause\",Pl)}function Ft(){xl(105),kl(21),xl(31),kl(255),pi()}function It(){Vl.startNonterminal(\"WhereClause\",Pl),Sl(266),kl(267),Nl(),_f(),Vl.endNonterminal(\"WhereClause\",Pl)}function qt(){xl(266),kl(267),Df()}function Rt(){Vl.startNonterminal(\"GroupByClause\",Pl),Sl(148),kl(34),Sl(87),kl(267),Nl(),zt(),Vl.endNonterminal(\"GroupByClause\",Pl)}function Ut(){xl(148),kl(34),xl(87),kl(267),Wt()}function zt(){Vl.startNonterminal(\"GroupingSpecList\",Pl),Xt();for(;;){kl(176);if(Hl!=41)break;Sl(41),kl(267),Nl(),Xt()}Vl.endNonterminal(\"GroupingSpecList\",Pl)}function Wt(){Vt();for(;;){kl(176);if(Hl!=41)break;xl(41),kl(267),Vt()}}function Xt(){Vl.startNonterminal(\"GroupingSpec\",Pl);switch(Hl){case 31:Ll(255);break;default:_l=Hl}if(_l==3103||_l==35871||_l==36895||_l==37407||_l==37919||_l==38431||_l==39455||_l==39967||_l==40479||_l==40991||_l==41503||_l==42015||_l==42527||_l==43039||_l==43551||_l==44063||_l==45087||_l==45599||_l==46111||_l==46623||_l==47647||_l==48159||_l==49183||_l==49695||_l==50207||_l==51743||_l==52255||_l==52767||_l==53279||_l==53791||_l==54303||_l==55327||_l==55839||_l==56351||_l==56863||_l==57375||_l==57887||_l==60447||_l==60959||_l==61471||_l==61983||_l==62495||_l==63007||_l==63519||_l==64031||_l==64543||_l==65567||_l==66079||_l==67103||_l==67615||_l==68127||_l==68639||_l==69151||_l==69663||_l==70175||_l==72223||_l==74271||_l==74783||_l==75807||_l==76831||_l==77343||_l==77855||_l==78367||_l==78879||_l==79391||_l==81439||_l==81951||_l==82463||_l==82975||_l==83487||_l==83999||_l==84511||_l==85023||_l==85535||_l==87071||_l==87583||_l==88095||_l==89119||_l==90143||_l==91167||_l==92191||_l==92703||_l==93215||_l==94239||_l==94751||_l==95263||_l==97823||_l==98335||_l==99359||_l==101407||_l==101919||_l==102431||_l==102943||_l==103455||_l==103967||_l==105503||_l==108575||_l==109087||_l==110623||_l==111647||_l==112159||_l==112671||_l==113183||_l==113695||_l==114719||_l==115231||_l==115743||_l==116255||_l==116767||_l==117279||_l==119839||_l==120351||_l==120863||_l==121375||_l==122911||_l==123935||_l==124447||_l==124959||_l==127007||_l==127519||_l==128031||_l==128543||_l==129055||_l==129567||_l==130079||_l==131103||_l==131615||_l==133151||_l==133663||_l==134175||_l==134687||_l==136223||_l==136735||_l==138271||_l==140319){_l=Kl(2,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Jt(),kl(183);if(Hl==52||Hl==79)Hl==79&&vs(),kl(27),xl(52),kl(267),Df();Hl==94&&(xl(94),kl(15),xl(7)),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(2,Pl,_l)}}switch(_l){case-1:$t(),kl(183);if(Hl==52||Hl==79)Hl==79&&(Nl(),ds()),kl(27),Sl(52),kl(267),Nl(),_f();Hl==94&&(Sl(94),kl(15),Sl(7));break;default:_f()}Vl.endNonterminal(\"GroupingSpec\",Pl)}function Vt(){switch(Hl){case 31:Ll(255);break;default:_l=Hl}if(_l==3103||_l==35871||_l==36895||_l==37407||_l==37919||_l==38431||_l==39455||_l==39967||_l==40479||_l==40991||_l==41503||_l==42015||_l==42527||_l==43039||_l==43551||_l==44063||_l==45087||_l==45599||_l==46111||_l==46623||_l==47647||_l==48159||_l==49183||_l==49695||_l==50207||_l==51743||_l==52255||_l==52767||_l==53279||_l==53791||_l==54303||_l==55327||_l==55839||_l==56351||_l==56863||_l==57375||_l==57887||_l==60447||_l==60959||_l==61471||_l==61983||_l==62495||_l==63007||_l==63519||_l==64031||_l==64543||_l==65567||_l==66079||_l==67103||_l==67615||_l==68127||_l==68639||_l==69151||_l==69663||_l==70175||_l==72223||_l==74271||_l==74783||_l==75807||_l==76831||_l==77343||_l==77855||_l==78367||_l==78879||_l==79391||_l==81439||_l==81951||_l==82463||_l==82975||_l==83487||_l==83999||_l==84511||_l==85023||_l==85535||_l==87071||_l==87583||_l==88095||_l==89119||_l==90143||_l==91167||_l==92191||_l==92703||_l==93215||_l==94239||_l==94751||_l==95263||_l==97823||_l==98335||_l==99359||_l==101407||_l==101919||_l==102431||_l==102943||_l==103455||_l==103967||_l==105503||_l==108575||_l==109087||_l==110623||_l==111647||_l==112159||_l==112671||_l==113183||_l==113695||_l==114719||_l==115231||_l==115743||_l==116255||_l==116767||_l==117279||_l==119839||_l==120351||_l==120863||_l==121375||_l==122911||_l==123935||_l==124447||_l==124959||_l==127007||_l==127519||_l==128031||_l==128543||_l==129055||_l==129567||_l==130079||_l==131103||_l==131615||_l==133151||_l==133663||_l==134175||_l==134687||_l==136223||_l==136735||_l==138271||_l==140319){_l=Kl(2,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Jt(),kl(183);if(Hl==52||Hl==79)Hl==79&&vs(),kl(27),xl(52),kl(267),Df();Hl==94&&(xl(94),kl(15),xl(7)),Jl(2,t,-1),_l=-3}catch(a){_l=-2,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(2,t,-2)}}}switch(_l){case-1:Jt(),kl(183);if(Hl==52||Hl==79)Hl==79&&vs(),kl(27),xl(52),kl(267),Df();Hl==94&&(xl(94),kl(15),xl(7));break;case-3:break;default:Df()}}function $t(){Vl.startNonterminal(\"GroupingVariable\",Pl),Sl(31),kl(255),Nl(),hi(),Vl.endNonterminal(\"GroupingVariable\",Pl)}function Jt(){xl(31),kl(255),pi()}function Kt(){Vl.startNonterminal(\"OrderByClause\",Pl);switch(Hl){case 201:Sl(201),kl(34),Sl(87);break;default:Sl(236),kl(67),Sl(201),kl(34),Sl(87)}kl(267),Nl(),Gt(),Vl.endNonterminal(\"OrderByClause\",Pl)}function Qt(){switch(Hl){case 201:xl(201),kl(34),xl(87);break;default:xl(236),kl(67),xl(201),kl(34),xl(87)}kl(267),Yt()}function Gt(){Vl.startNonterminal(\"OrderSpecList\",Pl),Zt();for(;;){kl(176);if(Hl!=41)break;Sl(41),kl(267),Nl(),Zt()}Vl.endNonterminal(\"OrderSpecList\",Pl)}function Yt(){en();for(;;){kl(176);if(Hl!=41)break;xl(41),kl(267),en()}}function Zt(){Vl.startNonterminal(\"OrderSpec\",Pl),_f(),Nl(),tn(),Vl.endNonterminal(\"OrderSpec\",Pl)}function en(){Df(),nn()}function tn(){Vl.startNonterminal(\"OrderModifier\",Pl);if(Hl==80||Hl==113)switch(Hl){case 80:Sl(80);break;default:Sl(113)}kl(180);if(Hl==123){Sl(123),kl(121);switch(Hl){case 147:Sl(147);break;default:Sl(173)}}kl(177),Hl==94&&(Sl(94),kl(15),Sl(7)),Vl.endNonterminal(\"OrderModifier\",Pl)}function nn(){if(Hl==80||Hl==113)switch(Hl){case 80:xl(80);break;default:xl(113)}kl(180);if(Hl==123){xl(123),kl(121);switch(Hl){case 147:xl(147);break;default:xl(173)}}kl(177),Hl==94&&(xl(94),kl(15),xl(7))}function rn(){Vl.startNonterminal(\"ReturnClause\",Pl),Sl(220),kl(267),Nl(),_f(),Vl.endNonterminal(\"ReturnClause\",Pl)}function sn(){xl(220),kl(267),Df()}function on(){Vl.startNonterminal(\"QuantifiedExpr\",Pl);switch(Hl){case 235:Sl(235);break;default:Sl(129)}kl(21),Nl(),an();for(;;){if(Hl!=41)break;Sl(41),kl(21),Nl(),an()}Sl(224),kl(267),Nl(),_f(),Vl.endNonterminal(\"QuantifiedExpr\",Pl)}function un(){switch(Hl){case 235:xl(235);break;default:xl(129)}kl(21),fn();for(;;){if(Hl!=41)break;xl(41),kl(21),fn()}xl(224),kl(267),Df()}function an(){Vl.startNonterminal(\"QuantifiedVarDecl\",Pl),Sl(31),kl(255),Nl(),hi(),kl(110),Hl==79&&(Nl(),ds()),kl(53),Sl(154),kl(267),Nl(),_f(),Vl.endNonterminal(\"QuantifiedVarDecl\",Pl)}function fn(){xl(31),kl(255),pi(),kl(110),Hl==79&&vs(),kl(53),xl(154),kl(267),Df()}function ln(){Vl.startNonterminal(\"SwitchExpr\",Pl),Sl(243),kl(22),Sl(34),kl(267),Nl(),G(),Sl(37);for(;;){kl(35),Nl(),hn();if(Hl!=88)break}Sl(109),kl(70),Sl(220),kl(267),Nl(),_f(),Vl.endNonterminal(\"SwitchExpr\",Pl)}function cn(){xl(243),kl(22),xl(34),kl(267),Y(),xl(37);for(;;){kl(35),pn();if(Hl!=88)break}xl(109),kl(70),xl(220),kl(267),Df()}function hn(){Vl.startNonterminal(\"SwitchCaseClause\",Pl);for(;;){Sl(88),kl(267),Nl(),dn();if(Hl!=88)break}Sl(220),kl(267),Nl(),_f(),Vl.endNonterminal(\"SwitchCaseClause\",Pl)}function pn(){for(;;){xl(88),kl(267),vn();if(Hl!=88)break}xl(220),kl(267),Df()}function dn(){Vl.startNonterminal(\"SwitchCaseOperand\",Pl),_f(),Vl.endNonterminal(\"SwitchCaseOperand\",Pl)}function vn(){Df()}function mn(){Vl.startNonterminal(\"TypeswitchExpr\",Pl),Sl(253),kl(22),Sl(34),kl(267),Nl(),G(),Sl(37);for(;;){kl(35),Nl(),yn();if(Hl!=88)break}Sl(109),kl(95),Hl==31&&(Sl(31),kl(255),Nl(),hi()),kl(70),Sl(220),kl(267),Nl(),_f(),Vl.endNonterminal(\"TypeswitchExpr\",Pl)}function gn(){xl(253),kl(22),xl(34),kl(267),Y(),xl(37);for(;;){kl(35),bn();if(Hl!=88)break}xl(109),kl(95),Hl==31&&(xl(31),kl(255),pi()),kl(70),xl(220),kl(267),Df()}function yn(){Vl.startNonterminal(\"CaseClause\",Pl),Sl(88),kl(262),Hl==31&&(Sl(31),kl(255),Nl(),hi(),kl(30),Sl(79)),kl(260),Nl(),wn(),Sl(220),kl(267),Nl(),_f(),Vl.endNonterminal(\"CaseClause\",Pl)}function bn(){xl(88),kl(262),Hl==31&&(xl(31),kl(255),pi(),kl(30),xl(79)),kl(260),En(),xl(220),kl(267),Df()}function wn(){Vl.startNonterminal(\"SequenceTypeUnion\",Pl),ms();for(;;){kl(134);if(Hl!=279)break;Sl(279),kl(260),Nl(),ms()}Vl.endNonterminal(\"SequenceTypeUnion\",Pl)}function En(){gs();for(;;){kl(134);if(Hl!=279)break;xl(279),kl(260),gs()}}function Sn(){Vl.startNonterminal(\"IfExpr\",Pl),Sl(152),kl(22),Sl(34),kl(267),Nl(),G(),Sl(37),kl(77),Sl(245),kl(267),Nl(),_f(),Sl(122),kl(267),Nl(),_f(),Vl.endNonterminal(\"IfExpr\",Pl)}function xn(){xl(152),kl(22),xl(34),kl(267),Y(),xl(37),kl(77),xl(245),kl(267),Df(),xl(122),kl(267),Df()}function Tn(){Vl.startNonterminal(\"TryCatchExpr\",Pl),Cn();for(;;){kl(36),Nl(),On(),kl(184);if(Hl!=91)break}Vl.endNonterminal(\"TryCatchExpr\",Pl)}function Nn(){kn();for(;;){kl(36),Mn(),kl(184);if(Hl!=91)break}}function Cn(){Vl.startNonterminal(\"TryClause\",Pl),Sl(250),kl(87),Sl(276),kl(267),Nl(),Ln(),Sl(282),Vl.endNonterminal(\"TryClause\",Pl)}function kn(){xl(250),kl(87),xl(276),kl(267),An(),xl(282)}function Ln(){Vl.startNonterminal(\"TryTargetExpr\",Pl),G(),Vl.endNonterminal(\"TryTargetExpr\",Pl)}function An(){Y()}function On(){Vl.startNonterminal(\"CatchClause\",Pl),Sl(91),kl(257),Nl(),_n(),Sl(276),kl(267),Nl(),G(),Sl(282),Vl.endNonterminal(\"CatchClause\",Pl)}function Mn(){xl(91),kl(257),Dn(),xl(276),kl(267),Y(),xl(282)}function _n(){Vl.startNonterminal(\"CatchErrorList\",Pl),Qr();for(;;){kl(136);if(Hl!=279)break;Sl(279),kl(257),Nl(),Qr()}Vl.endNonterminal(\"CatchErrorList\",Pl)}function Dn(){Gr();for(;;){kl(136);if(Hl!=279)break;xl(279),kl(257),Gr()}}function Pn(){Vl.startNonterminal(\"OrExpr\",Pl),Bn();for(;;){if(Hl!=200)break;Sl(200),kl(267),Nl(),Bn()}Vl.endNonterminal(\"OrExpr\",Pl)}function Hn(){jn();for(;;){if(Hl!=200)break;xl(200),kl(267),jn()}}function Bn(){Vl.startNonterminal(\"AndExpr\",Pl),Fn();for(;;){if(Hl!=75)break;Sl(75),kl(267),Nl(),Fn()}Vl.endNonterminal(\"AndExpr\",Pl)}function jn(){In();for(;;){if(Hl!=75)break;xl(75),kl(267),In()}}function Fn(){Vl.startNonterminal(\"ComparisonExpr\",Pl),qn();if(Hl==27||Hl==54||Hl==57||Hl==58||Hl==60||Hl==61||Hl==62||Hl==63||Hl==128||Hl==146||Hl==150||Hl==164||Hl==172||Hl==178||Hl==186){switch(Hl){case 128:case 146:case 150:case 172:case 178:case 186:Nl(),mr();break;case 57:case 63:case 164:Nl(),yr();break;default:Nl(),dr()}kl(267),Nl(),qn()}Vl.endNonterminal(\"ComparisonExpr\",Pl)}function In(){Rn();if(Hl==27||Hl==54||Hl==57||Hl==58||Hl==60||Hl==61||Hl==62||Hl==63||Hl==128||Hl==146||Hl==150||Hl==164||Hl==172||Hl==178||Hl==186){switch(Hl){case 128:case 146:case 150:case 172:case 178:case 186:gr();break;case 57:case 63:case 164:br();break;default:vr()}kl(267),Rn()}}function qn(){Vl.startNonterminal(\"FTContainsExpr\",Pl),Un(),Hl==99&&(Sl(99),kl(76),Sl(244),kl(162),Nl(),Jo(),Hl==271&&(Nl(),ha())),Vl.endNonterminal(\"FTContainsExpr\",Pl)}function Rn(){zn(),Hl==99&&(xl(99),kl(76),xl(244),kl(162),Ko(),Hl==271&&pa())}function Un(){Vl.startNonterminal(\"StringConcatExpr\",Pl),Wn();for(;;){if(Hl!=280)break;Sl(280),kl(267),Nl(),Wn()}Vl.endNonterminal(\"StringConcatExpr\",Pl)}function zn(){Xn();for(;;){if(Hl!=280)break;xl(280),kl(267),Xn()}}function Wn(){Vl.startNonterminal(\"RangeExpr\",Pl),Vn(),Hl==248&&(Sl(248),kl(267),Nl(),Vn()),Vl.endNonterminal(\"RangeExpr\",Pl)}function Xn(){$n(),Hl==248&&(xl(248),kl(267),$n())}function Vn(){Vl.startNonterminal(\"AdditiveExpr\",Pl),Jn();for(;;){if(Hl!=40&&Hl!=42)break;switch(Hl){case 40:Sl(40);break;default:Sl(42)}kl(267),Nl(),Jn()}Vl.endNonterminal(\"AdditiveExpr\",Pl)}function $n(){Kn();for(;;){if(Hl!=40&&Hl!=42)break;switch(Hl){case 40:xl(40);break;default:xl(42)}kl(267),Kn()}}function Jn(){Vl.startNonterminal(\"MultiplicativeExpr\",Pl),Qn();for(;;){if(Hl!=38&&Hl!=118&&Hl!=151&&Hl!=180)break;switch(Hl){case 38:Sl(38);break;case 118:Sl(118);break;case 151:Sl(151);break;default:Sl(180)}kl(267),Nl(),Qn()}Vl.endNonterminal(\"MultiplicativeExpr\",Pl)}function Kn(){Gn();for(;;){if(Hl!=38&&Hl!=118&&Hl!=151&&Hl!=180)break;switch(Hl){case 38:xl(38);break;case 118:xl(118);break;case 151:xl(151);break;default:xl(180)}kl(267),Gn()}}function Qn(){Vl.startNonterminal(\"UnionExpr\",Pl),Yn();for(;;){if(Hl!=254&&Hl!=279)break;switch(Hl){case 254:Sl(254);break;default:Sl(279)}kl(267),Nl(),Yn()}Vl.endNonterminal(\"UnionExpr\",Pl)}function Gn(){Zn();for(;;){if(Hl!=254&&Hl!=279)break;switch(Hl){case 254:xl(254);break;default:xl(279)}kl(267),Zn()}}function Yn(){Vl.startNonterminal(\"IntersectExceptExpr\",Pl),er();for(;;){kl(223);if(Hl!=131&&Hl!=162)break;switch(Hl){case 162:Sl(162);break;default:Sl(131)}kl(267),Nl(),er()}Vl.endNonterminal(\"IntersectExceptExpr\",Pl)}function Zn(){tr();for(;;){kl(223);if(Hl!=131&&Hl!=162)break;switch(Hl){case 162:xl(162);break;default:xl(131)}kl(267),tr()}}function er(){Vl.startNonterminal(\"InstanceofExpr\",Pl),nr(),kl(224),Hl==160&&(Sl(160),kl(64),Sl(196),kl(260),Nl(),ms()),Vl.endNonterminal(\"InstanceofExpr\",Pl)}function tr(){rr(),kl(224),Hl==160&&(xl(160),kl(64),xl(196),kl(260),gs())}function nr(){Vl.startNonterminal(\"TreatExpr\",Pl),ir(),kl(225),Hl==249&&(Sl(249),kl(30),Sl(79),kl(260),Nl(),ms()),Vl.endNonterminal(\"TreatExpr\",Pl)}function rr(){sr(),kl(225),Hl==249&&(xl(249),kl(30),xl(79),kl(260),gs())}function ir(){Vl.startNonterminal(\"CastableExpr\",Pl),or(),kl(226),Hl==90&&(Sl(90),kl(30),Sl(79),kl(255),Nl(),hs()),Vl.endNonterminal(\"CastableExpr\",Pl)}function sr(){ur(),kl(226),Hl==90&&(xl(90),kl(30),xl(79),kl(255),ps())}function or(){Vl.startNonterminal(\"CastExpr\",Pl),ar(),kl(228),Hl==89&&(Sl(89),kl(30),Sl(79),kl(255),Nl(),hs()),Vl.endNonterminal(\"CastExpr\",Pl)}function ur(){fr(),kl(228),Hl==89&&(xl(89),kl(30),xl(79),kl(255),ps())}function ar(){Vl.startNonterminal(\"UnaryExpr\",Pl);for(;;){kl(267);if(Hl!=40&&Hl!=42)break;switch(Hl){case 42:Sl(42);break;default:Sl(40)}}Nl(),lr(),Vl.endNonterminal(\"UnaryExpr\",Pl)}function fr(){for(;;){kl(267);if(Hl!=40&&Hl!=42)break;switch(Hl){case 42:xl(42);break;default:xl(40)}}cr()}function lr(){Vl.startNonterminal(\"ValueExpr\",Pl);switch(Hl){case 260:Ll(248);break;default:_l=Hl}switch(_l){case 87812:case 123140:case 129284:case 141572:wr();break;case 35:Tr();break;default:hr()}Vl.endNonterminal(\"ValueExpr\",Pl)}function cr(){switch(Hl){case 260:Ll(248);break;default:_l=Hl}switch(_l){case 87812:case 123140:case 129284:case 141572:Er();break;case 35:Nr();break;default:pr()}}function hr(){Vl.startNonterminal(\"SimpleMapExpr\",Pl),Lr();for(;;){if(Hl!=26)break;Sl(26),kl(266),Nl(),Lr()}Vl.endNonterminal(\"SimpleMapExpr\",Pl)}function pr(){Ar();for(;;){if(Hl!=26)break;xl(26),kl(266),Ar()}}function dr(){Vl.startNonterminal(\"GeneralComp\",Pl);switch(Hl){case 60:Sl(60);break;case 27:Sl(27);break;case 54:Sl(54);break;case 58:Sl(58);break;case 61:Sl(61);break;default:Sl(62)}Vl.endNonterminal(\"GeneralComp\",Pl)}function vr(){switch(Hl){case 60:xl(60);break;case 27:xl(27);break;case 54:xl(54);break;case 58:xl(58);break;case 61:xl(61);break;default:xl(62)}}function mr(){Vl.startNonterminal(\"ValueComp\",Pl);switch(Hl){case 128:Sl(128);break;case 186:Sl(186);break;case 178:Sl(178);break;case 172:Sl(172);break;case 150:Sl(150);break;default:Sl(146)}Vl.endNonterminal(\"ValueComp\",Pl)}function gr(){switch(Hl){case 128:xl(128);break;case 186:xl(186);break;case 178:xl(178);break;case 172:xl(172);break;case 150:xl(150);break;default:xl(146)}}function yr(){Vl.startNonterminal(\"NodeComp\",Pl);switch(Hl){case 164:Sl(164);break;case 57:Sl(57);break;default:Sl(63)}Vl.endNonterminal(\"NodeComp\",Pl)}function br(){switch(Hl){case 164:xl(164);break;case 57:xl(57);break;default:xl(63)}}function wr(){Vl.startNonterminal(\"ValidateExpr\",Pl),Sl(260),kl(160);if(Hl!=276)switch(Hl){case 252:Sl(252),kl(255),Nl(),go();break;default:Nl(),Sr()}kl(87),Sl(276),kl(267),Nl(),G(),Sl(282),Vl.endNonterminal(\"ValidateExpr\",Pl)}function Er(){xl(260),kl(160);if(Hl!=276)switch(Hl){case 252:xl(252),kl(255),yo();break;default:xr()}kl(87),xl(276),kl(267),Y(),xl(282)}function Sr(){Vl.startNonterminal(\"ValidationMode\",Pl);switch(Hl){case 171:Sl(171);break;default:Sl(240)}Vl.endNonterminal(\"ValidationMode\",Pl)}function xr(){switch(Hl){case 171:xl(171);break;default:xl(240)}}function Tr(){Vl.startNonterminal(\"ExtensionExpr\",Pl);for(;;){Nl(),Cr(),kl(100);if(Hl!=35)break}Sl(276),kl(274),Hl!=282&&(Nl(),G()),Sl(282),Vl.endNonterminal(\"ExtensionExpr\",Pl)}function Nr(){for(;;){kr(),kl(100);if(Hl!=35)break}xl(276),kl(274),Hl!=282&&Y(),xl(282)}function Cr(){Vl.startNonterminal(\"Pragma\",Pl),Sl(35),Al(252),Hl==21&&Sl(21),Ha(),Al(10),Hl==21&&(Sl(21),Al(0),Sl(1)),Al(5),Sl(30),Vl.endNonterminal(\"Pragma\",Pl)}function kr(){xl(35),Al(252),Hl==21&&xl(21),Ba(),Al(10),Hl==21&&(xl(21),Al(0),xl(1)),Al(5),xl(30)}function Lr(){Vl.startNonterminal(\"PathExpr\",Pl);switch(Hl){case 46:Sl(46),kl(286);switch(Hl){case 25:case 26:case 27:case 37:case 38:case 40:case 41:case 42:case 49:case 53:case 57:case 58:case 60:case 61:case 62:case 63:case 69:case 87:case 99:case 205:case 232:case 247:case 273:case 279:case 280:case 281:case 282:break;default:Nl(),Or()}break;case 47:Sl(47),kl(265),Nl(),Or();break;default:Or()}Vl.endNonterminal(\"PathExpr\",Pl)}function Ar(){switch(Hl){case 46:xl(46),kl(286);switch(Hl){case 25:case 26:case 27:case 37:case 38:case 40:case 41:case 42:case 49:case 53:case 57:case 58:case 60:case 61:case 62:case 63:case 69:case 87:case 99:case 205:case 232:case 247:case 273:case 279:case 280:case 281:case 282:break;default:Mr()}break;case 47:xl(47),kl(265),Mr();break;default:Mr()}}function Or(){Vl.startNonterminal(\"RelativePathExpr\",Pl),_r();for(;;){switch(Hl){case 26:Ll(266);break;default:_l=Hl}if(_l!=25&&_l!=27&&_l!=37&&_l!=38&&_l!=40&&_l!=41&&_l!=42&&_l!=46&&_l!=47&&_l!=49&&_l!=53&&_l!=54&&_l!=57&&_l!=58&&_l!=60&&_l!=61&&_l!=62&&_l!=63&&_l!=69&&_l!=70&&_l!=75&&_l!=79&&_l!=80&&_l!=81&&_l!=84&&_l!=87&&_l!=88&&_l!=89&&_l!=90&&_l!=94&&_l!=99&&_l!=105&&_l!=109&&_l!=113&&_l!=118&&_l!=122&&_l!=123&&_l!=126&&_l!=128&&_l!=131&&_l!=137&&_l!=146&&_l!=148&&_l!=150&&_l!=151&&_l!=160&&_l!=162&&_l!=163&&_l!=164&&_l!=172&&_l!=174&&_l!=178&&_l!=180&&_l!=181&&_l!=186&&_l!=198&&_l!=200&&_l!=201&&_l!=205&&_l!=220&&_l!=224&&_l!=232&&_l!=236&&_l!=237&&_l!=247&&_l!=248&&_l!=249&&_l!=254&&_l!=266&&_l!=270&&_l!=273&&_l!=279&&_l!=280&&_l!=281&&_l!=282&&_l!=23578&&_l!=24090){_l=Kl(3,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{switch(Hl){case 46:xl(46);break;case 47:xl(47);break;default:xl(26)}kl(265),Dr(),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(3,Pl,_l)}}if(_l!=-1&&_l!=46&&_l!=47)break;switch(Hl){case 46:Sl(46);break;case 47:Sl(47);break;default:Sl(26)}kl(265),Nl(),_r()}Vl.endNonterminal(\"RelativePathExpr\",Pl)}function Mr(){Dr();for(;;){switch(Hl){case 26:Ll(266);break;default:_l=Hl}if(_l!=25&&_l!=27&&_l!=37&&_l!=38&&_l!=40&&_l!=41&&_l!=42&&_l!=46&&_l!=47&&_l!=49&&_l!=53&&_l!=54&&_l!=57&&_l!=58&&_l!=60&&_l!=61&&_l!=62&&_l!=63&&_l!=69&&_l!=70&&_l!=75&&_l!=79&&_l!=80&&_l!=81&&_l!=84&&_l!=87&&_l!=88&&_l!=89&&_l!=90&&_l!=94&&_l!=99&&_l!=105&&_l!=109&&_l!=113&&_l!=118&&_l!=122&&_l!=123&&_l!=126&&_l!=128&&_l!=131&&_l!=137&&_l!=146&&_l!=148&&_l!=150&&_l!=151&&_l!=160&&_l!=162&&_l!=163&&_l!=164&&_l!=172&&_l!=174&&_l!=178&&_l!=180&&_l!=181&&_l!=186&&_l!=198&&_l!=200&&_l!=201&&_l!=205&&_l!=220&&_l!=224&&_l!=232&&_l!=236&&_l!=237&&_l!=247&&_l!=248&&_l!=249&&_l!=254&&_l!=266&&_l!=270&&_l!=273&&_l!=279&&_l!=280&&_l!=281&&_l!=282&&_l!=23578&&_l!=24090){_l=Kl(3,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{switch(Hl){case 46:xl(46);break;case 47:xl(47);break;default:xl(26)}kl(265),Dr(),Jl(3,t,-1);continue}catch(a){Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(3,t,-2);break}}}if(_l!=-1&&_l!=46&&_l!=47)break;switch(Hl){case 46:xl(46);break;case 47:xl(47);break;default:xl(26)}kl(265),Dr()}}function _r(){Vl.startNonterminal(\"StepExpr\",Pl);switch(Hl){case 82:Ll(285);break;case 121:Ll(283);break;case 184:case 216:Ll(282);break;case 96:case 119:case 202:case 244:case 256:Ll(247);break;case 78:case 124:case 152:case 165:case 167:case 242:case 243:case 253:Ll(240);break;case 73:case 74:case 93:case 111:case 112:case 135:case 136:case 206:case 212:case 213:case 229:Ll(246);break;case 6:case 70:case 72:case 75:case 77:case 79:case 80:case 81:case 83:case 84:case 85:case 86:case 88:case 89:case 90:case 91:case 94:case 97:case 98:case 101:case 102:case 103:case 104:case 105:case 106:case 108:case 109:case 110:case 113:case 118:case 120:case 122:case 123:case 125:case 126:case 128:case 129:case 131:case 132:case 133:case 134:case 137:case 141:case 145:case 146:case 148:case 150:case 151:case 153:case 154:case 155:case 159:case 160:case 161:case 162:case 163:case 164:case 166:case 170:case 171:case 172:case 174:case 176:case 178:case 180:case 181:case 182:case 185:case 186:case 191:case 192:case 194:case 198:case 199:case 200:case 201:case 203:case 218:case 219:case 220:case 221:case 222:case 224:case 225:case 226:case 227:case 228:case 234:case 235:case 236:case 237:case 240:case 248:case 249:case 250:case 251:case 252:case 254:case 257:case 260:case 261:case 262:case 263:case 266:case 267:case 270:case 274:Ll(244);break;default:_l=Hl}if(_l==35922||_l==35961||_l==36024||_l==36056||_l==38482||_l==38521||_l==38584||_l==38616||_l==40530||_l==40569||_l==40632||_l==40664||_l==41042||_l==41081||_l==41144||_l==41176||_l==41554||_l==41593||_l==41656||_l==41688||_l==43090||_l==43129||_l==43192||_l==43224||_l==45138||_l==45177||_l==45240||_l==45272||_l==45650||_l==45689||_l==45752||_l==45784||_l==46162||_l==46201||_l==46264||_l==46296||_l==48210||_l==48249||_l==48312||_l==48344||_l==53842||_l==53881||_l==53944||_l==53976||_l==55890||_l==55929||_l==55992||_l==56024||_l==57938||_l==57977||_l==58040||_l==58072||_l==60498||_l==60537||_l==60600||_l==60632||_l==62546||_l==62585||_l==62648||_l==62680||_l==63058||_l==63097||_l==63160||_l==63192||_l==64594||_l==64633||_l==64696||_l==64728||_l==65618||_l==65657||_l==65720||_l==65752||_l==67154||_l==67193||_l==67256||_l==67288||_l==70226||_l==70265||_l==70328||_l==70360||_l==74834||_l==74873||_l==74936||_l==74968||_l==75858||_l==75897||_l==75960||_l==75992||_l==76882||_l==76921||_l==76984||_l==77016||_l==77394||_l==77433||_l==77496||_l==77528||_l==82002||_l==82041||_l==82104||_l==82136||_l==83026||_l==83065||_l==83128||_l==83160||_l==83538||_l==83577||_l==83640||_l==83672||_l==84050||_l==84089||_l==84152||_l==84184||_l==88146||_l==88185||_l==88248||_l==88280||_l==89170||_l==89209||_l==89272||_l==89304||_l==91218||_l==91257||_l==91320||_l==91352||_l==92242||_l==92281||_l==92344||_l==92376||_l==92754||_l==92793||_l==92856||_l==92888||_l==95314||_l==95353||_l==95416||_l==95448||_l==101458||_l==101497||_l==101560||_l==101592||_l==102482||_l==102521||_l==102584||_l==102616||_l==102994||_l==103033||_l==103096||_l==103128||_l==112722||_l==112761||_l==112824||_l==112856||_l==114770||_l==114809||_l==114872||_l==114904||_l==120914||_l==120953||_l==121016||_l==121048||_l==121426||_l==121465||_l==121528||_l==121560||_l==127058||_l==127097||_l==127160||_l==127192||_l==127570||_l==127609||_l==127672||_l==127704||_l==130130||_l==130169||_l==130232||_l==130264||_l==136274||_l==136313||_l==136376||_l==136408||_l==138322||_l==138361||_l==138424||_l==138456){_l=Kl(4,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Zr(),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(4,Pl,_l)}}switch(_l){case-1:case 8:case 9:case 10:case 11:case 31:case 32:case 34:case 44:case 54:case 55:case 59:case 68:case 276:case 278:case 3154:case 3193:case 9912:case 9944:case 14854:case 14918:case 14920:case 14921:case 14922:case 14923:case 14925:case 14926:case 14927:case 14928:case 14929:case 14930:case 14931:case 14932:case 14933:case 14934:case 14936:case 14937:case 14938:case 14939:case 14941:case 14942:case 14944:case 14945:case 14946:case 14949:case 14950:case 14951:case 14952:case 14953:case 14954:case 14956:case 14957:case 14958:case 14959:case 14960:case 14961:case 14966:case 14967:case 14968:case 14969:case 14970:case 14971:case 14972:case 14973:case 14974:case 14976:case 14977:case 14979:case 14980:case 14981:case 14982:case 14983:case 14984:case 14985:case 14989:case 14993:case 14994:case 14996:case 14998:case 14999:case 15e3:case 15001:case 15002:case 15003:case 15007:case 15008:case 15009:case 15010:case 15011:case 15012:case 15013:case 15014:case 15015:case 15018:case 15019:case 15020:case 15022:case 15024:case 15026:case 15028:case 15029:case 15030:case 15032:case 15033:case 15034:case 15039:case 15040:case 15042:case 15046:case 15047:case 15048:case 15049:case 15050:case 15051:case 15054:case 15060:case 15061:case 15064:case 15066:case 15067:case 15068:case 15069:case 15070:case 15072:case 15073:case 15074:case 15075:case 15076:case 15077:case 15082:case 15083:case 15084:case 15085:case 15088:case 15090:case 15091:case 15092:case 15096:case 15097:case 15098:case 15099:case 15100:case 15101:case 15102:case 15104:case 15105:case 15108:case 15109:case 15110:case 15111:case 15114:case 15115:case 15118:case 15122:case 17414:case 17478:case 17480:case 17481:case 17482:case 17483:case 17485:case 17487:case 17488:case 17489:case 17491:case 17492:case 17493:case 17494:case 17496:case 17497:case 17498:case 17499:case 17501:case 17502:case 17505:case 17506:case 17509:case 17510:case 17511:case 17512:case 17513:case 17514:case 17516:case 17517:case 17518:case 17519:case 17520:case 17521:case 17526:case 17527:case 17530:case 17531:case 17533:case 17534:case 17536:case 17537:case 17539:case 17540:case 17541:case 17542:case 17543:case 17544:case 17545:case 17549:case 17553:case 17554:case 17556:case 17558:case 17559:case 17561:case 17562:case 17563:case 17567:case 17568:case 17569:case 17570:case 17571:case 17572:case 17574:case 17578:case 17579:case 17580:case 17582:case 17584:case 17586:case 17588:case 17589:case 17590:case 17592:case 17594:case 17600:case 17602:case 17606:case 17607:case 17608:case 17609:case 17610:case 17611:case 17614:case 17620:case 17621:case 17626:case 17627:case 17628:case 17629:case 17630:case 17632:case 17633:case 17636:case 17637:case 17642:case 17643:case 17644:case 17645:case 17648:case 17656:case 17657:case 17658:case 17659:case 17660:case 17662:case 17664:case 17665:case 17668:case 17669:case 17670:case 17671:case 17674:case 17675:case 17678:case 17682:case 36946:case 36985:case 37048:case 37080:case 37458:case 37497:case 37560:case 37592:case 37970:case 38009:case 38072:case 38104:case 39506:case 39545:case 39608:case 39640:case 40018:case 40057:case 42066:case 42105:case 42168:case 42200:case 42578:case 42617:case 42680:case 42712:case 43602:case 43641:case 43704:case 43736:case 44114:case 44153:case 44216:case 44248:case 46674:case 46713:case 46776:case 46808:case 47698:case 47737:case 47800:case 47832:case 49234:case 49273:case 49336:case 49368:case 49746:case 49785:case 49848:case 49880:case 50258:case 50297:case 50360:case 50392:case 51794:case 51833:case 51896:case 51928:case 52306:case 52345:case 52408:case 52440:case 52818:case 52857:case 52920:case 52952:case 53330:case 53369:case 53432:case 53464:case 54354:case 54393:case 54456:case 54488:case 55378:case 55417:case 55480:case 55512:case 56402:case 56441:case 56504:case 56536:case 56914:case 56953:case 57016:case 57048:case 57426:case 57465:case 57528:case 57560:case 61010:case 61049:case 61112:case 61144:case 61522:case 61561:case 61624:case 61656:case 62034:case 62073:case 62136:case 62168:case 63570:case 63609:case 63672:case 63704:case 64082:case 64121:case 64184:case 64216:case 66130:case 66169:case 66232:case 66264:case 67666:case 67705:case 67768:case 67800:case 68178:case 68217:case 68280:case 68312:case 68690:case 68729:case 68792:case 68824:case 69202:case 69241:case 69304:case 69336:case 69714:case 69753:case 69816:case 69848:case 72274:case 72313:case 72376:case 72408:case 74322:case 74361:case 74424:case 74456:case 77906:case 77945:case 78008:case 78040:case 78418:case 78457:case 78520:case 78552:case 78930:case 78969:case 79032:case 79064:case 79442:case 79481:case 79544:case 79576:case 81490:case 81529:case 81592:case 81624:case 82514:case 82553:case 82616:case 82648:case 84562:case 84601:case 84664:case 84696:case 85074:case 85113:case 85176:case 85208:case 85586:case 85625:case 87122:case 87161:case 87224:case 87256:case 87634:case 87673:case 87736:case 87768:case 90194:case 90233:case 90296:case 90328:case 93266:case 93305:case 93368:case 93400:case 94290:case 94329:case 94392:case 94424:case 94802:case 94841:case 94904:case 94936:case 97874:case 97913:case 97976:case 98008:case 98386:case 98425:case 98488:case 98520:case 99410:case 99449:case 99512:case 99544:case 101970:case 102009:case 102072:case 102104:case 103506:case 103545:case 103608:case 103640:case 104018:case 104057:case 104120:case 104152:case 105554:case 105593:case 105656:case 105688:case 108626:case 108665:case 108728:case 108760:case 109138:case 109177:case 109240:case 109272:case 110674:case 110713:case 110776:case 110808:case 111698:case 111737:case 111800:case 111832:case 112210:case 112249:case 112312:case 112344:case 113234:case 113273:case 113336:case 113368:case 113746:case 113785:case 113848:case 113880:case 115282:case 115321:case 115384:case 115416:case 115794:case 115833:case 115896:case 115928:case 116306:case 116345:case 116408:case 116440:case 116818:case 116857:case 116920:case 116952:case 117330:case 117369:case 117432:case 117464:case 119890:case 119929:case 119992:case 120024:case 120402:case 120441:case 120504:case 120536:case 122962:case 123001:case 123064:case 123096:case 123986:case 124025:case 124498:case 124537:case 124600:case 124632:case 125010:case 125049:case 125112:case 125144:case 128082:case 128121:case 128184:case 128216:case 128594:case 128633:case 128696:case 128728:case 129106:case 129145:case 129208:case 129240:case 129618:case 129657:case 129720:case 129752:case 131154:case 131193:case 131256:case 131288:case 131666:case 131705:case 131768:case 131800:case 133202:case 133241:case 133304:case 133336:case 133714:case 133753:case 133816:case 133848:case 134226:case 134265:case 134328:case 134360:case 134738:case 134777:case 134840:case 134872:case 136786:case 136825:case 136888:case 136920:case 140370:case 140409:case 140472:case 140504:case 141394:case 141408:case 141431:case 141433:case 141496:case 141514:case 141528:case 141556:case 141568:Yr();break;default:Pr()}Vl.endNonterminal(\"StepExpr\",Pl)}function Dr(){switch(Hl){case 82:Ll(285);break;case 121:Ll(283);break;case 184:case 216:Ll(282);break;case 96:case 119:case 202:case 244:case 256:Ll(247);break;case 78:case 124:case 152:case 165:case 167:case 242:case 243:case 253:Ll(240);break;case 73:case 74:case 93:case 111:case 112:case 135:case 136:case 206:case 212:case 213:case 229:Ll(246);break;case 6:case 70:case 72:case 75:case 77:case 79:case 80:case 81:case 83:case 84:case 85:case 86:case 88:case 89:case 90:case 91:case 94:case 97:case 98:case 101:case 102:case 103:case 104:case 105:case 106:case 108:case 109:case 110:case 113:case 118:case 120:case 122:case 123:case 125:case 126:case 128:case 129:case 131:case 132:case 133:case 134:case 137:case 141:case 145:case 146:case 148:case 150:case 151:case 153:case 154:case 155:case 159:case 160:case 161:case 162:case 163:case 164:case 166:case 170:case 171:case 172:case 174:case 176:case 178:case 180:case 181:case 182:case 185:case 186:case 191:case 192:case 194:case 198:case 199:case 200:case 201:case 203:case 218:case 219:case 220:case 221:case 222:case 224:case 225:case 226:case 227:case 228:case 234:case 235:case 236:case 237:case 240:case 248:case 249:case 250:case 251:case 252:case 254:case 257:case 260:case 261:case 262:case 263:case 266:case 267:case 270:case 274:Ll(244);break;default:_l=Hl}if(_l==35922||_l==35961||_l==36024||_l==36056||_l==38482||_l==38521||_l==38584||_l==38616||_l==40530||_l==40569||_l==40632||_l==40664||_l==41042||_l==41081||_l==41144||_l==41176||_l==41554||_l==41593||_l==41656||_l==41688||_l==43090||_l==43129||_l==43192||_l==43224||_l==45138||_l==45177||_l==45240||_l==45272||_l==45650||_l==45689||_l==45752||_l==45784||_l==46162||_l==46201||_l==46264||_l==46296||_l==48210||_l==48249||_l==48312||_l==48344||_l==53842||_l==53881||_l==53944||_l==53976||_l==55890||_l==55929||_l==55992||_l==56024||_l==57938||_l==57977||_l==58040||_l==58072||_l==60498||_l==60537||_l==60600||_l==60632||_l==62546||_l==62585||_l==62648||_l==62680||_l==63058||_l==63097||_l==63160||_l==63192||_l==64594||_l==64633||_l==64696||_l==64728||_l==65618||_l==65657||_l==65720||_l==65752||_l==67154||_l==67193||_l==67256||_l==67288||_l==70226||_l==70265||_l==70328||_l==70360||_l==74834||_l==74873||_l==74936||_l==74968||_l==75858||_l==75897||_l==75960||_l==75992||_l==76882||_l==76921||_l==76984||_l==77016||_l==77394||_l==77433||_l==77496||_l==77528||_l==82002||_l==82041||_l==82104||_l==82136||_l==83026||_l==83065||_l==83128||_l==83160||_l==83538||_l==83577||_l==83640||_l==83672||_l==84050||_l==84089||_l==84152||_l==84184||_l==88146||_l==88185||_l==88248||_l==88280||_l==89170||_l==89209||_l==89272||_l==89304||_l==91218||_l==91257||_l==91320||_l==91352||_l==92242||_l==92281||_l==92344||_l==92376||_l==92754||_l==92793||_l==92856||_l==92888||_l==95314||_l==95353||_l==95416||_l==95448||_l==101458||_l==101497||_l==101560||_l==101592||_l==102482||_l==102521||_l==102584||_l==102616||_l==102994||_l==103033||_l==103096||_l==103128||_l==112722||_l==112761||_l==112824||_l==112856||_l==114770||_l==114809||_l==114872||_l==114904||_l==120914||_l==120953||_l==121016||_l==121048||_l==121426||_l==121465||_l==121528||_l==121560||_l==127058||_l==127097||_l==127160||_l==127192||_l==127570||_l==127609||_l==127672||_l==127704||_l==130130||_l==130169||_l==130232||_l==130264||_l==136274||_l==136313||_l==136376||_l==136408||_l==138322||_l==138361||_l==138424||_l==138456){_l=Kl(4,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Zr(),Jl(4,t,-1),_l=-3}catch(a){_l=-2,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(4,t,-2)}}}switch(_l){case-1:case 8:case 9:case 10:case 11:case 31:case 32:case 34:case 44:case 54:case 55:case 59:case 68:case 276:case 278:case 3154:case 3193:case 9912:case 9944:case 14854:case 14918:case 14920:case 14921:case 14922:case 14923:case 14925:case 14926:case 14927:case 14928:case 14929:case 14930:case 14931:case 14932:case 14933:case 14934:case 14936:case 14937:case 14938:case 14939:case 14941:case 14942:case 14944:case 14945:case 14946:case 14949:case 14950:case 14951:case 14952:case 14953:case 14954:case 14956:case 14957:case 14958:case 14959:case 14960:case 14961:case 14966:case 14967:case 14968:case 14969:case 14970:case 14971:case 14972:case 14973:case 14974:case 14976:case 14977:case 14979:case 14980:case 14981:case 14982:case 14983:case 14984:case 14985:case 14989:case 14993:case 14994:case 14996:case 14998:case 14999:case 15e3:case 15001:case 15002:case 15003:case 15007:case 15008:case 15009:case 15010:case 15011:case 15012:case 15013:case 15014:case 15015:case 15018:case 15019:case 15020:case 15022:case 15024:case 15026:case 15028:case 15029:case 15030:case 15032:case 15033:case 15034:case 15039:case 15040:case 15042:case 15046:case 15047:case 15048:case 15049:case 15050:case 15051:case 15054:case 15060:case 15061:case 15064:case 15066:case 15067:case 15068:case 15069:case 15070:case 15072:case 15073:case 15074:case 15075:case 15076:case 15077:case 15082:case 15083:case 15084:case 15085:case 15088:case 15090:case 15091:case 15092:case 15096:case 15097:case 15098:case 15099:case 15100:case 15101:case 15102:case 15104:case 15105:case 15108:case 15109:case 15110:case 15111:case 15114:case 15115:case 15118:case 15122:case 17414:case 17478:case 17480:case 17481:case 17482:case 17483:case 17485:case 17487:case 17488:case 17489:case 17491:case 17492:case 17493:case 17494:case 17496:case 17497:case 17498:case 17499:case 17501:case 17502:case 17505:case 17506:case 17509:case 17510:case 17511:case 17512:case 17513:case 17514:case 17516:case 17517:case 17518:case 17519:case 17520:case 17521:case 17526:case 17527:case 17530:case 17531:case 17533:case 17534:case 17536:case 17537:case 17539:case 17540:case 17541:case 17542:case 17543:case 17544:case 17545:case 17549:case 17553:case 17554:case 17556:case 17558:case 17559:case 17561:case 17562:case 17563:case 17567:case 17568:case 17569:case 17570:case 17571:case 17572:case 17574:case 17578:case 17579:case 17580:case 17582:case 17584:case 17586:case 17588:case 17589:case 17590:case 17592:case 17594:case 17600:case 17602:case 17606:case 17607:case 17608:case 17609:case 17610:case 17611:case 17614:case 17620:case 17621:case 17626:case 17627:case 17628:case 17629:case 17630:case 17632:case 17633:case 17636:case 17637:case 17642:case 17643:case 17644:case 17645:case 17648:case 17656:case 17657:case 17658:case 17659:case 17660:case 17662:case 17664:case 17665:case 17668:case 17669:case 17670:case 17671:case 17674:case 17675:case 17678:case 17682:case 36946:case 36985:case 37048:case 37080:case 37458:case 37497:case 37560:case 37592:case 37970:case 38009:case 38072:case 38104:case 39506:case 39545:case 39608:case 39640:case 40018:case 40057:case 42066:case 42105:case 42168:case 42200:case 42578:case 42617:case 42680:case 42712:case 43602:case 43641:case 43704:case 43736:case 44114:case 44153:case 44216:case 44248:case 46674:case 46713:case 46776:case 46808:case 47698:case 47737:case 47800:case 47832:case 49234:case 49273:case 49336:case 49368:case 49746:case 49785:case 49848:case 49880:case 50258:case 50297:case 50360:case 50392:case 51794:case 51833:case 51896:case 51928:case 52306:case 52345:case 52408:case 52440:case 52818:case 52857:case 52920:case 52952:case 53330:case 53369:case 53432:case 53464:case 54354:case 54393:case 54456:case 54488:case 55378:case 55417:case 55480:case 55512:case 56402:case 56441:case 56504:case 56536:case 56914:case 56953:case 57016:case 57048:case 57426:case 57465:case 57528:case 57560:case 61010:case 61049:case 61112:case 61144:case 61522:case 61561:case 61624:case 61656:case 62034:case 62073:case 62136:case 62168:case 63570:case 63609:case 63672:case 63704:case 64082:case 64121:case 64184:case 64216:case 66130:case 66169:case 66232:case 66264:case 67666:case 67705:case 67768:case 67800:case 68178:case 68217:case 68280:case 68312:case 68690:case 68729:case 68792:case 68824:case 69202:case 69241:case 69304:case 69336:case 69714:case 69753:case 69816:case 69848:case 72274:case 72313:case 72376:case 72408:case 74322:case 74361:case 74424:case 74456:case 77906:case 77945:case 78008:case 78040:case 78418:case 78457:case 78520:case 78552:case 78930:case 78969:case 79032:case 79064:case 79442:case 79481:case 79544:case 79576:case 81490:case 81529:case 81592:case 81624:case 82514:case 82553:case 82616:case 82648:case 84562:case 84601:case 84664:case 84696:case 85074:case 85113:case 85176:case 85208:case 85586:case 85625:case 87122:case 87161:case 87224:case 87256:case 87634:case 87673:case 87736:case 87768:case 90194:case 90233:case 90296:case 90328:case 93266:case 93305:case 93368:case 93400:case 94290:case 94329:case 94392:case 94424:case 94802:case 94841:case 94904:case 94936:case 97874:case 97913:case 97976:case 98008:case 98386:case 98425:case 98488:case 98520:case 99410:case 99449:case 99512:case 99544:case 101970:case 102009:case 102072:case 102104:case 103506:case 103545:case 103608:case 103640:case 104018:case 104057:case 104120:case 104152:case 105554:case 105593:case 105656:case 105688:case 108626:case 108665:case 108728:case 108760:case 109138:case 109177:case 109240:case 109272:case 110674:case 110713:case 110776:case 110808:case 111698:case 111737:case 111800:case 111832:case 112210:case 112249:case 112312:case 112344:case 113234:case 113273:case 113336:case 113368:case 113746:case 113785:case 113848:case 113880:case 115282:case 115321:case 115384:case 115416:case 115794:case 115833:case 115896:case 115928:case 116306:case 116345:case 116408:case 116440:case 116818:case 116857:case 116920:case 116952:case 117330:case 117369:case 117432:case 117464:case 119890:case 119929:case 119992:case 120024:case 120402:case 120441:case 120504:case 120536:case 122962:case 123001:case 123064:case 123096:case 123986:case 124025:case 124498:case 124537:case 124600:case 124632:case 125010:case 125049:case 125112:case 125144:case 128082:case 128121:case 128184:case 128216:case 128594:case 128633:case 128696:case 128728:case 129106:case 129145:case 129208:case 129240:case 129618:case 129657:case 129720:case 129752:case 131154:case 131193:case 131256:case 131288:case 131666:case 131705:case 131768:case 131800:case 133202:case 133241:case 133304:case 133336:case 133714:case 133753:case 133816:case 133848:case 134226:case 134265:case 134328:case 134360:case 134738:case 134777:case 134840:case 134872:case 136786:case 136825:case 136888:case 136920:case 140370:case 140409:case 140472:case 140504:case 141394:case 141408:case 141431:case 141433:case 141496:case 141514:case 141528:case 141556:case 141568:Zr();break;case-3:break;default:Hr()}}function Pr(){Vl.startNonterminal(\"AxisStep\",Pl);switch(Hl){case 73:case 74:case 206:case 212:case 213:Ll(242);break;default:_l=Hl}switch(_l){case 45:case 26185:case 26186:case 26318:case 26324:case 26325:Ur();break;default:Br()}kl(238),Nl(),ni(),Vl.endNonterminal(\"AxisStep\",Pl)}function Hr(){switch(Hl){case 73:case 74:case 206:case 212:case 213:Ll(242);break;default:_l=Hl}switch(_l){case 45:case 26185:case 26186:case 26318:case 26324:case 26325:zr();break;default:jr()}kl(238),ri()}function Br(){Vl.startNonterminal(\"ForwardStep\",Pl);switch(Hl){case 82:Ll(245);break;case 93:case 111:case 112:case 135:case 136:case 229:Ll(242);break;default:_l=Hl}switch(_l){case 26194:case 26205:case 26223:case 26224:case 26247:case 26248:case 26341:Fr(),kl(257),Nl(),Jr();break;default:qr()}Vl.endNonterminal(\"ForwardStep\",Pl)}function jr(){switch(Hl){case 82:Ll(245);break;case 93:case 111:case 112:case 135:case 136:case 229:Ll(242);break;default:_l=Hl}switch(_l){case 26194:case 26205:case 26223:case 26224:case 26247:case 26248:case 26341:Ir(),kl(257),Kr();break;default:Rr()}}function Fr(){Vl.startNonterminal(\"ForwardAxis\",Pl);switch(Hl){case 93:Sl(93),kl(26),Sl(51);break;case 111:Sl(111),kl(26),Sl(51);break;case 82:Sl(82),kl(26),Sl(51);break;case 229:Sl(229),kl(26),Sl(51);break;case 112:Sl(112),kl(26),Sl(51);break;case 136:Sl(136),kl(26),Sl(51);break;default:Sl(135),kl(26),Sl(51)}Vl.endNonterminal(\"ForwardAxis\",Pl)}function Ir(){switch(Hl){case 93:xl(93),kl(26),xl(51);break;case 111:xl(111),kl(26),xl(51);break;case 82:xl(82),kl(26),xl(51);break;case 229:xl(229),kl(26),xl(51);break;case 112:xl(112),kl(26),xl(51);break;case 136:xl(136),kl(26),xl(51);break;default:xl(135),kl(26),xl(51)}}function qr(){Vl.startNonterminal(\"AbbrevForwardStep\",Pl),Hl==66&&Sl(66),kl(257),Nl(),Jr(),Vl.endNonterminal(\"AbbrevForwardStep\",Pl)}function Rr(){Hl==66&&xl(66),kl(257),Kr()}function Ur(){Vl.startNonterminal(\"ReverseStep\",Pl);switch(Hl){case 45:Vr();break;default:Wr(),kl(257),Nl(),Jr()}Vl.endNonterminal(\"ReverseStep\",Pl)}function zr(){switch(Hl){case 45:$r();break;default:Xr(),kl(257),Kr()}}function Wr(){Vl.startNonterminal(\"ReverseAxis\",Pl);switch(Hl){case 206:Sl(206),kl(26),Sl(51);break;case 73:Sl(73),kl(26),Sl(51);break;case 213:Sl(213),kl(26),Sl(51);break;case 212:Sl(212),kl(26),Sl(51);break;default:Sl(74),kl(26),Sl(51)}Vl.endNonterminal(\"ReverseAxis\",Pl)}function Xr(){switch(Hl){case 206:xl(206),kl(26),xl(51);break;case 73:xl(73),kl(26),xl(51);break;case 213:xl(213),kl(26),xl(51);break;case 212:xl(212),kl(26),xl(51);break;default:xl(74),kl(26),xl(51)}}function Vr(){Vl.startNonterminal(\"AbbrevReverseStep\",Pl),Sl(45),Vl.endNonterminal(\"AbbrevReverseStep\",Pl)}function $r(){xl(45)}function Jr(){Vl.startNonterminal(\"NodeTest\",Pl);switch(Hl){case 82:case 96:case 120:case 121:case 185:case 191:case 216:case 226:case 227:case 244:Ll(241);break;default:_l=Hl}switch(_l){case 17490:case 17504:case 17528:case 17529:case 17593:case 17599:case 17624:case 17634:case 17635:case 17652:Ps();break;default:Qr()}Vl.endNonterminal(\"NodeTest\",Pl)}function Kr(){switch(Hl){case 82:case 96:case 120:case 121:case 185:case 191:case 216:case 226:case 227:case 244:Ll(241);break;default:_l=Hl}switch(_l){case 17490:case 17504:case 17528:case 17529:case 17593:case 17599:case 17624:case 17634:case 17635:case 17652:Hs();break;default:Gr()}}function Qr(){Vl.startNonterminal(\"NameTest\",Pl);switch(Hl){case 5:Sl(5);break;default:Ha()}Vl.endNonterminal(\"NameTest\",Pl)}function Gr(){switch(Hl){case 5:xl(5);break;default:Ba()}}function Yr(){Vl.startNonterminal(\"PostfixExpr\",Pl),ol();for(;;){kl(241);if(Hl!=34&&Hl!=68)break;switch(Hl){case 68:Nl(),ii();break;default:Nl(),ei()}}Vl.endNonterminal(\"PostfixExpr\",Pl)}function Zr(){ul();for(;;){kl(241);if(Hl!=34&&Hl!=68)break;switch(Hl){case 68:si();break;default:ti()}}}function ei(){Vl.startNonterminal(\"ArgumentList\",Pl),Sl(34),kl(276);if(Hl!=37){Nl(),Ti();for(;;){kl(101);if(Hl!=41)break;Sl(41),kl(271),Nl(),Ti()}}Sl(37),Vl.endNonterminal(\"ArgumentList\",Pl)}function ti(){xl(34),kl(276);if(Hl!=37){Ni();for(;;){kl(101);if(Hl!=41)break;xl(41),kl(271),Ni()}}xl(37)}function ni(){Vl.startNonterminal(\"PredicateList\",Pl);for(;;){kl(238);if(Hl!=68)break;Nl(),ii()}Vl.endNonterminal(\"PredicateList\",Pl)}function ri(){for(;;){kl(238);if(Hl!=68)break;si()}}function ii(){Vl.startNonterminal(\"Predicate\",Pl),Sl(68),kl(267),Nl(),G(),Sl(69),Vl.endNonterminal(\"Predicate\",Pl)}function si(){xl(68),kl(267),Y(),xl(69)}function oi(){Vl.startNonterminal(\"Literal\",Pl);switch(Hl){case 11:Sl(11);break;default:ai()}Vl.endNonterminal(\"Literal\",Pl)}function ui(){switch(Hl){case 11:xl(11);break;default:fi()}}function ai(){Vl.startNonterminal(\"NumericLiteral\",Pl);switch(Hl){case 8:Sl(8);break;case 9:Sl(9);break;default:Sl(10)}Vl.endNonterminal(\"NumericLiteral\",Pl)}function fi(){switch(Hl){case 8:xl(8);break;case 9:xl(9);break;default:xl(10)}}function li(){Vl.startNonterminal(\"VarRef\",Pl),Sl(31),kl(255),Nl(),hi(),Vl.endNonterminal(\"VarRef\",Pl)}function ci(){xl(31),kl(255),pi()}function hi(){Vl.startNonterminal(\"VarName\",Pl),Ha(),Vl.endNonterminal(\"VarName\",Pl)}function pi(){Ba()}function di(){Vl.startNonterminal(\"ParenthesizedExpr\",Pl),Sl(34),kl(269),Hl!=37&&(Nl(),G()),Sl(37),Vl.endNonterminal(\"ParenthesizedExpr\",Pl)}function vi(){xl(34),kl(269),Hl!=37&&Y(),xl(37)}function mi(){Vl.startNonterminal(\"ContextItemExpr\",Pl),Sl(44),Vl.endNonterminal(\"ContextItemExpr\",Pl)}function gi(){xl(44)}function yi(){Vl.startNonterminal(\"OrderedExpr\",Pl),Sl(202),kl(87),Sl(276),kl(267),Nl(),G(),Sl(282),Vl.endNonterminal(\"OrderedExpr\",Pl)}function bi(){xl(202),kl(87),xl(276),kl(267),Y(),xl(282)}function wi(){Vl.startNonterminal(\"UnorderedExpr\",Pl),Sl(256),kl(87),Sl(276),kl(267),Nl(),G(),Sl(282),Vl.endNonterminal(\"UnorderedExpr\",Pl)}function Ei(){xl(256),kl(87),xl(276),kl(267),Y(),xl(282)}function Si(){Vl.startNonterminal(\"FunctionCall\",Pl),ja(),kl(22),Nl(),ei(),Vl.endNonterminal(\"FunctionCall\",Pl)}function xi(){Fa(),kl(22),ti()}function Ti(){Vl.startNonterminal(\"Argument\",Pl);switch(Hl){case 64:Ci();break;default:_f()}Vl.endNonterminal(\"Argument\",Pl)}function Ni(){switch(Hl){case 64:ki();break;default:Df()}}function Ci(){Vl.startNonterminal(\"ArgumentPlaceholder\",Pl),Sl(64),Vl.endNonterminal(\"ArgumentPlaceholder\",Pl)}function ki(){xl(64)}function Li(){Vl.startNonterminal(\"Constructor\",Pl);switch(Hl){case 54:case 55:case 59:Oi();break;default:Ji()}Vl.endNonterminal(\"Constructor\",Pl)}function Ai(){switch(Hl){case 54:case 55:case 59:Mi();break;default:Ki()}}function Oi(){Vl.startNonterminal(\"DirectConstructor\",Pl);switch(Hl){case 54:_i();break;case 55:Wi();break;default:Vi()}Vl.endNonterminal(\"DirectConstructor\",Pl)}function Mi(){switch(Hl){case 54:Di();break;case 55:Xi();break;default:$i()}}function _i(){Vl.startNonterminal(\"DirElemConstructor\",Pl),Sl(54),Al(4),Sl(20),Pi();switch(Hl){case 48:Sl(48);break;default:Sl(61);for(;;){Al(174);if(Hl==56)break;Ui()}Sl(56),Al(4),Sl(20),Al(12),Hl==21&&Sl(21),Al(8),Sl(61)}Vl.endNonterminal(\"DirElemConstructor\",Pl)}function Di(){xl(54),Al(4),xl(20),Hi();switch(Hl){case 48:xl(48);break;default:xl(61);for(;;){Al(174);if(Hl==56)break;zi()}xl(56),Al(4),xl(20),Al(12),Hl==21&&xl(21),Al(8),xl(61)}}function Pi(){Vl.startNonterminal(\"DirAttributeList\",Pl);for(;;){Al(19);if(Hl!=21)break;Sl(21),Al(91),Hl==20&&(Sl(20),Al(11),Hl==21&&Sl(21),Al(7),Sl(60),Al(18),Hl==21&&Sl(21),Bi())}Vl.endNonterminal(\"DirAttributeList\",Pl)}function Hi(){for(;;){Al(19);if(Hl!=21)break;xl(21),Al(91),Hl==20&&(xl(20),Al(11),Hl==21&&xl(21),Al(7),xl(60),Al(18),Hl==21&&xl(21),ji())}}function Bi(){Vl.startNonterminal(\"DirAttributeValue\",Pl),Al(14);switch(Hl){case 28:Sl(28);for(;;){Al(167);if(Hl==28)break;switch(Hl){case 13:Sl(13);break;default:Fi()}}Sl(28);break;default:Sl(33);for(;;){Al(168);if(Hl==33)break;switch(Hl){case 14:Sl(14);break;default:qi()}}Sl(33)}Vl.endNonterminal(\"DirAttributeValue\",Pl)}function ji(){Al(14);switch(Hl){case 28:xl(28);for(;;){Al(167);if(Hl==28)break;switch(Hl){case 13:xl(13);break;default:Ii()}}xl(28);break;default:xl(33);for(;;){Al(168);if(Hl==33)break;switch(Hl){case 14:xl(14);break;default:Ri()}}xl(33)}}function Fi(){Vl.startNonterminal(\"QuotAttrValueContent\",Pl);switch(Hl){case 16:Sl(16);break;default:Vf()}Vl.endNonterminal(\"QuotAttrValueContent\",Pl)}function Ii(){switch(Hl){case 16:xl(16);break;default:$f()}}function qi(){Vl.startNonterminal(\"AposAttrValueContent\",Pl);switch(Hl){case 17:Sl(17);break;default:Vf()}Vl.endNonterminal(\"AposAttrValueContent\",Pl)}function Ri(){switch(Hl){case 17:xl(17);break;default:$f()}}function Ui(){Vl.startNonterminal(\"DirElemContent\",Pl);switch(Hl){case 54:case 55:case 59:Oi();break;case 4:Sl(4);break;case 15:Sl(15);break;default:Vf()}Vl.endNonterminal(\"DirElemContent\",Pl)}function zi(){switch(Hl){case 54:case 55:case 59:Mi();break;case 4:xl(4);break;case 15:xl(15);break;default:$f()}}function Wi(){Vl.startNonterminal(\"DirCommentConstructor\",Pl),Sl(55),Al(1),Sl(2),Al(6),Sl(43),Vl.endNonterminal(\"DirCommentConstructor\",Pl)}function Xi(){xl(55),Al(1),xl(2),Al(6),xl(43)}function Vi(){Vl.startNonterminal(\"DirPIConstructor\",Pl),Sl(59),Al(3),Sl(18),Al(13),Hl==21&&(Sl(21),Al(2),Sl(3)),Al(9),Sl(65),Vl.endNonterminal(\"DirPIConstructor\",Pl)}function $i(){xl(59),Al(3),xl(18),Al(13),Hl==21&&(xl(21),Al(2),xl(3)),Al(9),xl(65)}function Ji(){Vl.startNonterminal(\"ComputedConstructor\",Pl);switch(Hl){case 119:Qf();break;case 121:Qi();break;case 82:Yf();break;case 184:Yi();break;case 244:il();break;case 96:nl();break;default:el()}Vl.endNonterminal(\"ComputedConstructor\",Pl)}function Ki(){switch(Hl){case 119:Gf();break;case 121:Gi();break;case 82:Zf();break;case 184:Zi();break;case 244:sl();break;case 96:rl();break;default:tl()}}function Qi(){Vl.startNonterminal(\"CompElemConstructor\",Pl),Sl(121),kl(258);switch(Hl){case 276:Sl(276),kl(267),Nl(),G(),Sl(282);break;default:Nl(),Ha()}kl(87),Sl(276),kl(277),Hl!=282&&(Nl(),Jf()),Sl(282),Vl.endNonterminal(\"CompElemConstructor\",Pl)}function Gi(){xl(121),kl(258);switch(Hl){case 276:xl(276),kl(267),Y(),xl(282);break;default:Ba()}kl(87),xl(276),kl(277),Hl!=282&&Kf(),xl(282)}function Yi(){Vl.startNonterminal(\"CompNamespaceConstructor\",Pl),Sl(184),kl(251);switch(Hl){case 276:Sl(276),kl(267),Nl(),ns(),Sl(282);break;default:Nl(),es()}kl(87),Sl(276),kl(267),Nl(),is(),Sl(282),Vl.endNonterminal(\"CompNamespaceConstructor\",Pl)}function Zi(){xl(184),kl(251);switch(Hl){case 276:xl(276),kl(267),rs(),xl(282);break;default:ts()}kl(87),xl(276),kl(267),ss(),xl(282)}function es(){Vl.startNonterminal(\"Prefix\",Pl),Ia(),Vl.endNonterminal(\"Prefix\",Pl)}function ts(){qa()}function ns(){Vl.startNonterminal(\"PrefixExpr\",Pl),G(),Vl.endNonterminal(\"PrefixExpr\",Pl)}function rs(){Y()}function is(){Vl.startNonterminal(\"URIExpr\",Pl),G(),Vl.endNonterminal(\"URIExpr\",Pl)}function ss(){Y()}function os(){Vl.startNonterminal(\"FunctionItemExpr\",Pl);switch(Hl){case 145:Ll(92);break;default:_l=Hl}switch(_l){case 32:case 17553:ls();break;default:as()}Vl.endNonterminal(\"FunctionItemExpr\",Pl)}function us(){switch(Hl){case 145:Ll(92);break;default:_l=Hl}switch(_l){case 32:case 17553:cs();break;default:fs()}}function as(){Vl.startNonterminal(\"NamedFunctionRef\",Pl),Ha(),kl(20),Sl(29),kl(16),Sl(8),Vl.endNonterminal(\"NamedFunctionRef\",Pl)}function fs(){Ba(),kl(20),xl(29),kl(16),xl(8)}function ls(){Vl.startNonterminal(\"InlineFunctionExpr\",Pl);for(;;){kl(97);if(Hl!=32)break;Nl(),B()}Sl(145),kl(22),Sl(34),kl(94),Hl==31&&(Nl(),U()),Sl(37),kl(111),Hl==79&&(Sl(79),kl(260),Nl(),ms()),kl(87),Nl(),V(),Vl.endNonterminal(\"InlineFunctionExpr\",Pl)}function cs(){for(;;){kl(97);if(Hl!=32)break;j()}xl(145),kl(22),xl(34),kl(94),Hl==31&&z(),xl(37),kl(111),Hl==79&&(xl(79),kl(260),gs()),kl(87),$()}function hs(){Vl.startNonterminal(\"SingleType\",Pl),vo(),kl(227),Hl==64&&Sl(64),Vl.endNonterminal(\"SingleType\",Pl)}function ps(){mo(),kl(227),Hl==64&&xl(64)}function ds(){Vl.startNonterminal(\"TypeDeclaration\",Pl),Sl(79),kl(260),Nl(),ms(),Vl.endNonterminal(\"TypeDeclaration\",Pl)}function vs(){xl(79),kl(260),gs()}function ms(){Vl.startNonterminal(\"SequenceType\",Pl);switch(Hl){case 124:Ll(243);break;default:_l=Hl}switch(_l){case 17532:Sl(124),kl(22),Sl(34),kl(23),Sl(37);break;default:ws(),kl(239);switch(Hl){case 39:case 40:case 64:Nl(),ys();break;default:}}Vl.endNonterminal(\"SequenceType\",Pl)}function gs(){switch(Hl){case 124:Ll(243);break;default:_l=Hl}switch(_l){case 17532:xl(124),kl(22),xl(34),kl(23),xl(37);break;default:Es(),kl(239);switch(Hl){case 39:case 40:case 64:bs();break;default:}}}function ys(){Vl.startNonterminal(\"OccurrenceIndicator\",Pl);switch(Hl){case 64:Sl(64);break;case 39:Sl(39);break;default:Sl(40)}Vl.endNonterminal(\"OccurrenceIndicator\",Pl)}function bs(){switch(Hl){case 64:xl(64);break;case 39:xl(39);break;default:xl(40)}}function ws(){Vl.startNonterminal(\"ItemType\",Pl);switch(Hl){case 78:case 82:case 96:case 120:case 121:case 145:case 165:case 167:case 185:case 191:case 194:case 216:case 226:case 227:case 242:case 244:Ll(243);break;default:_l=Hl}switch(_l){case 17490:case 17504:case 17528:case 17529:case 17593:case 17599:case 17624:case 17634:case 17635:case 17652:Ps();break;case 17573:Sl(165),kl(22),Sl(34),kl(23),Sl(37);break;case 32:case 17553:bo();break;case 34:No();break;case 17486:case 17575:case 17602:Ss();break;case 17650:Ts();break;default:_s()}Vl.endNonterminal(\"ItemType\",Pl)}function Es(){switch(Hl){case 78:case 82:case 96:case 120:case 121:case 145:case 165:case 167:case 185:case 191:case 194:case 216:case 226:case 227:case 242:case 244:Ll(243);break;default:_l=Hl}switch(_l){case 17490:case 17504:case 17528:case 17529:case 17593:case 17599:case 17624:case 17634:case 17635:case 17652:Hs();break;case 17573:xl(165),kl(22),xl(34),kl(23),xl(37);break;case 32:case 17553:wo();break;case 34:Co();break;case 17486:case 17575:case 17602:xs();break;case 17650:Ns();break;default:Ds()}}function Ss(){Vl.startNonterminal(\"JSONTest\",Pl);switch(Hl){case 167:Cs();break;case 194:Ls();break;default:Os()}Vl.endNonterminal(\"JSONTest\",Pl)}function xs(){switch(Hl){case 167:ks();break;case 194:As();break;default:Ms()}}function Ts(){Vl.startNonterminal(\"StructuredItemTest\",Pl),Sl(242),kl(22),Sl(34),kl(23),Sl(37),Vl.endNonterminal(\"StructuredItemTest\",Pl)}function Ns(){xl(242),kl(22),xl(34),kl(23),xl(37)}function Cs(){Vl.startNonterminal(\"JSONItemTest\",Pl),Sl(167),kl(22),Sl(34),kl(23),Sl(37),Vl.endNonterminal(\"JSONItemTest\",Pl)}function ks(){xl(167),kl(22),xl(34),kl(23),xl(37)}function Ls(){Vl.startNonterminal(\"JSONObjectTest\",Pl),Sl(194),kl(22),Sl(34),kl(23),Sl(37),Vl.endNonterminal(\"JSONObjectTest\",Pl)}function As(){xl(194),kl(22),xl(34),kl(23),xl(37)}function Os(){Vl.startNonterminal(\"JSONArrayTest\",Pl),Sl(78),kl(22),Sl(34),kl(23),Sl(37),Vl.endNonterminal(\"JSONArrayTest\",Pl)}function Ms(){xl(78),kl(22),xl(34),kl(23),xl(37)}function _s(){Vl.startNonterminal(\"AtomicOrUnionType\",Pl),Ha(),Vl.endNonterminal(\"AtomicOrUnionType\",Pl)}function Ds(){Ba()}function Ps(){Vl.startNonterminal(\"KindTest\",Pl);switch(Hl){case 120:Fs();break;case 121:no();break;case 82:Js();break;case 227:oo();break;case 226:Ys();break;case 216:Vs();break;case 96:Us();break;case 244:qs();break;case 185:Ws();break;default:Bs()}Vl.endNonterminal(\"KindTest\",Pl)}function Hs(){switch(Hl){case 120:Is();break;case 121:ro();break;case 82:Ks();break;case 227:uo();break;case 226:Zs();break;case 216:$s();break;case 96:zs();break;case 244:Rs();break;case 185:Xs();break;default:js()}}function Bs(){Vl.startNonterminal(\"AnyKindTest\",Pl),Sl(191),kl(22),Sl(34),kl(23),Sl(37),Vl.endNonterminal(\"AnyKindTest\",Pl)}function js(){xl(191),kl(22),xl(34),kl(23),xl(37)}function Fs(){Vl.startNonterminal(\"DocumentTest\",Pl),Sl(120),kl(22),Sl(34),kl(144);if(Hl!=37)switch(Hl){case 121:Nl(),no();break;default:Nl(),oo()}kl(23),Sl(37),Vl.endNonterminal(\"DocumentTest\",Pl)}function Is(){xl(120),kl(22),xl(34),kl(144);if(Hl!=37)switch(Hl){case 121:ro();break;default:uo()}kl(23),xl(37)}function qs(){Vl.startNonterminal(\"TextTest\",Pl),Sl(244),kl(22),Sl(34),kl(23),Sl(37),Vl.endNonterminal(\"TextTest\",Pl)}function Rs(){xl(244),kl(22),xl(34),kl(23),xl(37)}function Us(){Vl.startNonterminal(\"CommentTest\",Pl),Sl(96),kl(22),Sl(34),kl(23),Sl(37),Vl.endNonterminal(\"CommentTest\",Pl)}function zs(){xl(96),kl(22),xl(34),kl(23),xl(37)}function Ws(){Vl.startNonterminal(\"NamespaceNodeTest\",Pl),Sl(185),kl(22),Sl(34),kl(23),Sl(37),Vl.endNonterminal(\"NamespaceNodeTest\",Pl)}function Xs(){xl(185),kl(22),xl(34),kl(23),xl(37)}function Vs(){Vl.startNonterminal(\"PITest\",Pl),Sl(216),kl(22),Sl(34),kl(253);if(Hl!=37)switch(Hl){case 11:Sl(11);break;default:Nl(),Ia()}kl(23),Sl(37),Vl.endNonterminal(\"PITest\",Pl)}function $s(){xl(216),kl(22),xl(34),kl(253);if(Hl!=37)switch(Hl){case 11:xl(11);break;default:qa()}kl(23),xl(37)}function Js(){Vl.startNonterminal(\"AttributeTest\",Pl),Sl(82),kl(22),Sl(34),kl(261),Hl!=37&&(Nl(),Qs(),kl(101),Hl==41&&(Sl(41),kl(255),Nl(),go())),kl(23),Sl(37),Vl.endNonterminal(\"AttributeTest\",Pl)}function Ks(){xl(82),kl(22),xl(34),kl(261),Hl!=37&&(Gs(),kl(101),Hl==41&&(xl(41),kl(255),yo())),kl(23),xl(37)}function Qs(){Vl.startNonterminal(\"AttribNameOrWildcard\",Pl);switch(Hl){case 38:Sl(38);break;default:lo()}Vl.endNonterminal(\"AttribNameOrWildcard\",Pl)}function Gs(){switch(Hl){case 38:xl(38);break;default:co()}}function Ys(){Vl.startNonterminal(\"SchemaAttributeTest\",Pl),Sl(226),kl(22),Sl(34),kl(255),Nl(),eo(),kl(23),Sl(37),Vl.endNonterminal(\"SchemaAttributeTest\",Pl)}function Zs(){xl(226),kl(22),xl(34),kl(255),to(),kl(23),xl(37)}function eo(){Vl.startNonterminal(\"AttributeDeclaration\",Pl),lo(),Vl.endNonterminal(\"AttributeDeclaration\",Pl)}function to(){co()}function no(){Vl.startNonterminal(\"ElementTest\",Pl),Sl(121),kl(22),Sl(34),kl(261),Hl!=37&&(Nl(),io(),kl(101),Hl==41&&(Sl(41),kl(255),Nl(),go(),kl(102),Hl==64&&Sl(64))),kl(23),Sl(37),Vl.endNonterminal(\"ElementTest\",Pl)}function ro(){xl(121),kl(22),xl(34),kl(261),Hl!=37&&(so(),kl(101),Hl==41&&(xl(41),kl(255),yo(),kl(102),Hl==64&&xl(64))),kl(23),xl(37)}function io(){Vl.startNonterminal(\"ElementNameOrWildcard\",Pl);switch(Hl){case 38:Sl(38);break;default:ho()}Vl.endNonterminal(\"ElementNameOrWildcard\",Pl)}function so(){switch(Hl){case 38:xl(38);break;default:po()}}function oo(){Vl.startNonterminal(\"SchemaElementTest\",Pl),Sl(227),kl(22),Sl(34),kl(255),Nl(),ao(),kl(23),Sl(37),Vl.endNonterminal(\"SchemaElementTest\",Pl)}function uo(){xl(227),kl(22),xl(34),kl(255),fo(),kl(23),xl(37)}function ao(){Vl.startNonterminal(\"ElementDeclaration\",Pl),ho(),Vl.endNonterminal(\"ElementDeclaration\",Pl)}function fo(){po()}function lo(){Vl.startNonterminal(\"AttributeName\",Pl),Ha(),Vl.endNonterminal(\"AttributeName\",Pl)}function co(){Ba()}function ho(){Vl.startNonterminal(\"ElementName\",Pl),Ha(),Vl.endNonterminal(\"ElementName\",Pl)}function po(){Ba()}function vo(){Vl.startNonterminal(\"SimpleTypeName\",Pl),go(),Vl.endNonterminal(\"SimpleTypeName\",Pl)}function mo(){yo()}function go(){Vl.startNonterminal(\"TypeName\",Pl),Ha(),Vl.endNonterminal(\"TypeName\",Pl)}function yo(){Ba()}function bo(){Vl.startNonterminal(\"FunctionTest\",Pl);for(;;){kl(97);if(Hl!=32)break;Nl(),B()}switch(Hl){case 145:Ll(22);break;default:_l=Hl}_l=Kl(5,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{So(),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(5,Pl,_l)}switch(_l){case-1:Nl(),Eo();break;default:Nl(),xo()}Vl.endNonterminal(\"FunctionTest\",Pl)}function wo(){for(;;){kl(97);if(Hl!=32)break;j()}switch(Hl){case 145:Ll(22);break;default:_l=Hl}_l=Kl(5,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{So(),Jl(5,t,-1),_l=-3}catch(a){_l=-2,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(5,t,-2)}}switch(_l){case-1:So();break;case-3:break;default:To()}}function Eo(){Vl.startNonterminal(\"AnyFunctionTest\",Pl),Sl(145),kl(22),Sl(34),kl(24),Sl(38),kl(23),Sl(37),Vl.endNonterminal(\"AnyFunctionTest\",Pl)}function So(){xl(145),kl(22),xl(34),kl(24),xl(38),kl(23),xl(37)}function xo(){Vl.startNonterminal(\"TypedFunctionTest\",Pl),Sl(145),kl(22),Sl(34),kl(263);if(Hl!=37){Nl(),ms();for(;;){kl(101);if(Hl!=41)break;Sl(41),kl(260),Nl(),ms()}}Sl(37),kl(30),Sl(79),kl(260),Nl(),ms(),Vl.endNonterminal(\"TypedFunctionTest\",Pl)}function To(){xl(145),kl(22),xl(34),kl(263);if(Hl!=37){gs();for(;;){kl(101);if(Hl!=41)break;xl(41),kl(260),gs()}}xl(37),kl(30),xl(79),kl(260),gs()}function No(){Vl.startNonterminal(\"ParenthesizedItemType\",Pl),Sl(34),kl(260),Nl(),ws(),kl(23),Sl(37),Vl.endNonterminal(\"ParenthesizedItemType\",Pl)}function Co(){xl(34),kl(260),Es(),kl(23),xl(37)}function ko(){Vl.startNonterminal(\"RevalidationDecl\",Pl),Sl(108),kl(72),Sl(222),kl(152);switch(Hl){case 240:Sl(240);break;case 171:Sl(171);break;default:Sl(233)}Vl.endNonterminal(\"RevalidationDecl\",Pl)}function Lo(){Vl.startNonterminal(\"InsertExprTargetChoice\",Pl);switch(Hl){case 70:Sl(70);break;case 84:Sl(84);break;default:if(Hl==79){Sl(79),kl(119);switch(Hl){case 134:Sl(134);break;default:Sl(170)}}kl(54),Sl(163)}Vl.endNonterminal(\"InsertExprTargetChoice\",Pl)}function Ao(){switch(Hl){case 70:xl(70);break;case 84:xl(84);break;default:if(Hl==79){xl(79),kl(119);switch(Hl){case 134:xl(134);break;default:xl(170)}}kl(54),xl(163)}}function Oo(){Vl.startNonterminal(\"InsertExpr\",Pl),Sl(159),kl(129);switch(Hl){case 191:Sl(191);break;default:Sl(192)}kl(267),Nl(),Fo(),Nl(),Lo(),kl(267),Nl(),qo(),Vl.endNonterminal(\"InsertExpr\",Pl)}function Mo(){xl(159),kl(129);switch(Hl){case 191:xl(191);break;default:xl(192)}kl(267),Io(),Ao(),kl(267),Ro()}function _o(){Vl.startNonterminal(\"DeleteExpr\",Pl),Sl(110),kl(129);switch(Hl){case 191:Sl(191);break;default:Sl(192)}kl(267),Nl(),qo(),Vl.endNonterminal(\"DeleteExpr\",Pl)}function Do(){xl(110),kl(129);switch(Hl){case 191:xl(191);break;default:xl(192)}kl(267),Ro()}function Po(){Vl.startNonterminal(\"ReplaceExpr\",Pl),Sl(219),kl(130),Hl==261&&(Sl(261),kl(64),Sl(196)),kl(62),Sl(191),kl(267),Nl(),qo(),Sl(270),kl(267),Nl(),_f(),Vl.endNonterminal(\"ReplaceExpr\",Pl)}function Ho(){xl(219),kl(130),Hl==261&&(xl(261),kl(64),xl(196)),kl(62),xl(191),kl(267),Ro(),xl(270),kl(267),Df()}function Bo(){Vl.startNonterminal(\"RenameExpr\",Pl),Sl(218),kl(62),Sl(191),kl(267),Nl(),qo(),Sl(79),kl(267),Nl(),Uo(),Vl.endNonterminal(\"RenameExpr\",Pl)}function jo(){xl(218),kl(62),xl(191),kl(267),Ro(),xl(79),kl(267),zo()}function Fo(){Vl.startNonterminal(\"SourceExpr\",Pl),_f(),Vl.endNonterminal(\"SourceExpr\",Pl)}function Io(){Df()}function qo(){Vl.startNonterminal(\"TargetExpr\",Pl),_f(),Vl.endNonterminal(\"TargetExpr\",Pl)}function Ro(){Df()}function Uo(){Vl.startNonterminal(\"NewNameExpr\",Pl),_f(),Vl.endNonterminal(\"NewNameExpr\",Pl)}function zo(){Df()}function Wo(){Vl.startNonterminal(\"TransformExpr\",Pl),Sl(103),kl(21),Nl(),Vo();for(;;){if(Hl!=41)break;Sl(41),kl(21),Nl(),Vo()}Sl(181),kl(267),Nl(),_f(),Sl(220),kl(267),Nl(),_f(),Vl.endNonterminal(\"TransformExpr\",Pl)}function Xo(){xl(103),kl(21),$o();for(;;){if(Hl!=41)break;xl(41),kl(21),$o()}xl(181),kl(267),Df(),xl(220),kl(267),Df()}function Vo(){Vl.startNonterminal(\"TransformSpec\",Pl),Sl(31),kl(255),Nl(),hi(),kl(27),Sl(52),kl(267),Nl(),_f(),Vl.endNonterminal(\"TransformSpec\",Pl)}function $o(){xl(31),kl(255),pi(),kl(27),xl(52),kl(267),Df()}function Jo(){Vl.startNonterminal(\"FTSelection\",Pl),Yo();for(;;){kl(212);switch(Hl){case 81:Ll(151);break;default:_l=Hl}if(_l!=115&&_l!=117&&_l!=127&&_l!=202&&_l!=223&&_l!=269&&_l!=64593&&_l!=121425)break;Nl(),Su()}Vl.endNonterminal(\"FTSelection\",Pl)}function Ko(){Zo();for(;;){kl(212);switch(Hl){case 81:Ll(151);break;default:_l=Hl}if(_l!=115&&_l!=117&&_l!=127&&_l!=202&&_l!=223&&_l!=269&&_l!=64593&&_l!=121425)break;xu()}}function Qo(){Vl.startNonterminal(\"FTWeight\",Pl),Sl(264),kl(87),Sl(276),kl(267),Nl(),G(),Sl(282),Vl.endNonterminal(\"FTWeight\",Pl)}function Go(){xl(264),kl(87),xl(276),kl(267),Y(),xl(282)}function Yo(){Vl.startNonterminal(\"FTOr\",Pl),eu();for(;;){if(Hl!=144)break;Sl(144),kl(162),Nl(),eu()}Vl.endNonterminal(\"FTOr\",Pl)}function Zo(){tu();for(;;){if(Hl!=144)break;xl(144),kl(162),tu()}}function eu(){Vl.startNonterminal(\"FTAnd\",Pl),nu();for(;;){if(Hl!=142)break;Sl(142),kl(162),Nl(),nu()}Vl.endNonterminal(\"FTAnd\",Pl)}function tu(){ru();for(;;){if(Hl!=142)break;xl(142),kl(162),ru()}}function nu(){Vl.startNonterminal(\"FTMildNot\",Pl),iu();for(;;){kl(213);if(Hl!=193)break;Sl(193),kl(53),Sl(154),kl(162),Nl(),iu()}Vl.endNonterminal(\"FTMildNot\",Pl)}function ru(){su();for(;;){kl(213);if(Hl!=193)break;xl(193),kl(53),xl(154),kl(162),su()}}function iu(){Vl.startNonterminal(\"FTUnaryNot\",Pl),Hl==143&&Sl(143),kl(155),Nl(),ou(),Vl.endNonterminal(\"FTUnaryNot\",Pl)}function su(){Hl==143&&xl(143),kl(155),uu()}function ou(){Vl.startNonterminal(\"FTPrimaryWithOptions\",Pl),au(),kl(215),Hl==259&&(Nl(),Fu()),Hl==264&&(Nl(),Qo()),Vl.endNonterminal(\"FTPrimaryWithOptions\",Pl)}function uu(){fu(),kl(215),Hl==259&&Iu(),Hl==264&&Go()}function au(){Vl.startNonterminal(\"FTPrimary\",Pl);switch(Hl){case 34:Sl(34),kl(162),Nl(),Jo(),Sl(37);break;case 35:du();break;default:lu(),kl(216),Hl==195&&(Nl(),yu())}Vl.endNonterminal(\"FTPrimary\",Pl)}function fu(){switch(Hl){case 34:xl(34),kl(162),Ko(),xl(37);break;case 35:vu();break;default:cu(),kl(216),Hl==195&&bu()}}function lu(){Vl.startNonterminal(\"FTWords\",Pl),hu(),kl(222);if(Hl==71||Hl==76||Hl==210)Nl(),mu();Vl.endNonterminal(\"FTWords\",Pl)}function cu(){pu(),kl(222),(Hl==71||Hl==76||Hl==210)&&gu()}function hu(){Vl.startNonterminal(\"FTWordsValue\",Pl);switch(Hl){case 11:Sl(11);break;default:Sl(276),kl(267),Nl(),G(),Sl(282)}Vl.endNonterminal(\"FTWordsValue\",Pl)}function pu(){switch(Hl){case 11:xl(11);break;default:xl(276),kl(267),Y(),xl(282)}}function du(){Vl.startNonterminal(\"FTExtensionSelection\",Pl);for(;;){Nl(),Cr(),kl(100);if(Hl!=35)break}Sl(276),kl(166),Hl!=282&&(Nl(),Jo()),Sl(282),Vl.endNonterminal(\"FTExtensionSelection\",Pl)}function vu(){for(;;){kr(),kl(100);if(Hl!=35)break}xl(276),kl(166),Hl!=282&&Ko(),xl(282)}function mu(){Vl.startNonterminal(\"FTAnyallOption\",Pl);switch(Hl){case 76:Sl(76),kl(219),Hl==272&&Sl(272);break;case 71:Sl(71),kl(220),Hl==273&&Sl(273);break;default:Sl(210)}Vl.endNonterminal(\"FTAnyallOption\",Pl)}function gu(){switch(Hl){case 76:xl(76),kl(219),Hl==272&&xl(272);break;case 71:xl(71),kl(220),Hl==273&&xl(273);break;default:xl(210)}}function yu(){Vl.startNonterminal(\"FTTimes\",Pl),Sl(195),kl(149),Nl(),wu(),Sl(247),Vl.endNonterminal(\"FTTimes\",Pl)}function bu(){xl(195),kl(149),Eu(),xl(247)}function wu(){Vl.startNonterminal(\"FTRange\",Pl);switch(Hl){case 130:Sl(130),kl(267),Nl(),Vn();break;case 81:Sl(81),kl(125);switch(Hl){case 173:Sl(173),kl(267),Nl(),Vn();break;default:Sl(183),kl(267),Nl(),Vn()}break;default:Sl(140),kl(267),Nl(),Vn(),Sl(248),kl(267),Nl(),Vn()}Vl.endNonterminal(\"FTRange\",Pl)}function Eu(){switch(Hl){case 130:xl(130),kl(267),$n();break;case 81:xl(81),kl(125);switch(Hl){case 173:xl(173),kl(267),$n();break;default:xl(183),kl(267),$n()}break;default:xl(140),kl(267),$n(),xl(248),kl(267),$n()}}function Su(){Vl.startNonterminal(\"FTPosFilter\",Pl);switch(Hl){case 202:Tu();break;case 269:Cu();break;case 117:Lu();break;case 115:case 223:_u();break;default:Bu()}Vl.endNonterminal(\"FTPosFilter\",Pl)}function xu(){switch(Hl){case 202:Nu();break;case 269:ku();break;case 117:Au();break;case 115:case 223:Du();break;default:ju()}}function Tu(){Vl.startNonterminal(\"FTOrder\",Pl),Sl(202),Vl.endNonterminal(\"FTOrder\",Pl)}function Nu(){xl(202)}function Cu(){Vl.startNonterminal(\"FTWindow\",Pl),Sl(269),kl(267),Nl(),Vn(),Nl(),Ou(),Vl.endNonterminal(\"FTWindow\",Pl)}function ku(){xl(269),kl(267),$n(),Mu()}function Lu(){Vl.startNonterminal(\"FTDistance\",Pl),Sl(117),kl(149),Nl(),wu(),Nl(),Ou(),Vl.endNonterminal(\"FTDistance\",Pl)}function Au(){xl(117),kl(149),Eu(),Mu()}function Ou(){Vl.startNonterminal(\"FTUnit\",Pl);switch(Hl){case 273:Sl(273);break;case 232:Sl(232);break;default:Sl(205)}Vl.endNonterminal(\"FTUnit\",Pl)}function Mu(){switch(Hl){case 273:xl(273);break;case 232:xl(232);break;default:xl(205)}}function _u(){Vl.startNonterminal(\"FTScope\",Pl);switch(Hl){case 223:Sl(223);break;default:Sl(115)}kl(132),Nl(),Pu(),Vl.endNonterminal(\"FTScope\",Pl)}function Du(){switch(Hl){case 223:xl(223);break;default:xl(115)}kl(132),Hu()}function Pu(){Vl.startNonterminal(\"FTBigUnit\",Pl);switch(Hl){case 231:Sl(231);break;default:Sl(204)}Vl.endNonterminal(\"FTBigUnit\",Pl)}function Hu(){switch(Hl){case 231:xl(231);break;default:xl(204)}}function Bu(){Vl.startNonterminal(\"FTContent\",Pl);switch(Hl){case 81:Sl(81),kl(117);switch(Hl){case 237:Sl(237);break;default:Sl(126)}break;default:Sl(127),kl(42),Sl(100)}Vl.endNonterminal(\"FTContent\",Pl)}function ju(){switch(Hl){case 81:xl(81),kl(117);switch(Hl){case 237:xl(237);break;default:xl(126)}break;default:xl(127),kl(42),xl(100)}}function Fu(){Vl.startNonterminal(\"FTMatchOptions\",Pl);for(;;){Sl(259),kl(182),Nl(),qu(),kl(215);if(Hl!=259)break}Vl.endNonterminal(\"FTMatchOptions\",Pl)}function Iu(){for(;;){xl(259),kl(182),Ru(),kl(215);if(Hl!=259)break}}function qu(){Vl.startNonterminal(\"FTMatchOption\",Pl);switch(Hl){case 188:Ll(161);break;default:_l=Hl}switch(_l){case 169:oa();break;case 268:case 137404:aa();break;case 246:case 126140:Ju();break;case 238:case 122044:Vu();break;case 114:Wu();break;case 239:case 122556:ea();break;case 199:la();break;default:Uu()}Vl.endNonterminal(\"FTMatchOption\",Pl)}function Ru(){switch(Hl){case 188:Ll(161);break;default:_l=Hl}switch(_l){case 169:ua();break;case 268:case 137404:fa();break;case 246:case 126140:Ku();break;case 238:case 122044:$u();break;case 114:Xu();break;case 239:case 122556:ta();break;case 199:ca();break;default:zu()}}function Uu(){Vl.startNonterminal(\"FTCaseOption\",Pl);switch(Hl){case 88:Sl(88),kl(124);switch(Hl){case 158:Sl(158);break;default:Sl(230)}break;case 177:Sl(177);break;default:Sl(258)}Vl.endNonterminal(\"FTCaseOption\",Pl)}function zu(){switch(Hl){case 88:xl(88),kl(124);switch(Hl){case 158:xl(158);break;default:xl(230)}break;case 177:xl(177);break;default:xl(258)}}function Wu(){Vl.startNonterminal(\"FTDiacriticsOption\",Pl),Sl(114),kl(124);switch(Hl){case 158:Sl(158);break;default:Sl(230)}Vl.endNonterminal(\"FTDiacriticsOption\",Pl)}function Xu(){xl(114),kl(124);switch(Hl){case 158:xl(158);break;default:xl(230)}}function Vu(){Vl.startNonterminal(\"FTStemOption\",Pl);switch(Hl){case 238:Sl(238);break;default:Sl(188),kl(74),Sl(238)}Vl.endNonterminal(\"FTStemOption\",Pl)}function $u(){switch(Hl){case 238:xl(238);break;default:xl(188),kl(74),xl(238)}}function Ju(){Vl.startNonterminal(\"FTThesaurusOption\",Pl);switch(Hl){case 246:Sl(246),kl(142);switch(Hl){case 81:Nl(),Qu();break;case 109:Sl(109);break;default:Sl(34),kl(112);switch(Hl){case 81:Nl(),Qu();break;default:Sl(109)}for(;;){kl(101);if(Hl!=41)break;Sl(41),kl(31),Nl(),Qu()}Sl(37)}break;default:Sl(188),kl(78),Sl(246)}Vl.endNonterminal(\"FTThesaurusOption\",Pl)}function Ku(){switch(Hl){case 246:xl(246),kl(142);switch(Hl){case 81:Gu();break;case 109:xl(109);break;default:xl(34),kl(112);switch(Hl){case 81:Gu();break;default:xl(109)}for(;;){kl(101);if(Hl!=41)break;xl(41),kl(31),Gu()}xl(37)}break;default:xl(188),kl(78),xl(246)}}function Qu(){Vl.startNonterminal(\"FTThesaurusID\",Pl),Sl(81),kl(15),Sl(7),kl(221),Hl==217&&(Sl(217),kl(17),Sl(11)),kl(217);switch(Hl){case 81:Ll(165);break;default:_l=Hl}if(_l==130||_l==140||_l==88657||_l==93777)Nl(),Yu(),kl(58),Sl(175);Vl.endNonterminal(\"FTThesaurusID\",Pl)}function Gu(){xl(81),kl(15),xl(7),kl(221),Hl==217&&(xl(217),kl(17),xl(11)),kl(217);switch(Hl){case 81:Ll(165);break;default:_l=Hl}if(_l==130||_l==140||_l==88657||_l==93777)Zu(),kl(58),xl(175)}function Yu(){Vl.startNonterminal(\"FTLiteralRange\",Pl);switch(Hl){case 130:Sl(130),kl(16),Sl(8);break;case 81:Sl(81),kl(125);switch(Hl){case 173:Sl(173),kl(16),Sl(8);break;default:Sl(183),kl(16),Sl(8)}break;default:Sl(140),kl(16),Sl(8),kl(79),Sl(248),kl(16),Sl(8)}Vl.endNonterminal(\"FTLiteralRange\",Pl)}function Zu(){switch(Hl){case 130:xl(130),kl(16),xl(8);break;case 81:xl(81),kl(125);switch(Hl){case 173:xl(173),kl(16),xl(8);break;default:xl(183),kl(16),xl(8)}break;default:xl(140),kl(16),xl(8),kl(79),xl(248),kl(16),xl(8)}}function ea(){Vl.startNonterminal(\"FTStopWordOption\",Pl);switch(Hl){case 239:Sl(239),kl(86),Sl(273),kl(142);switch(Hl){case 109:Sl(109);for(;;){kl(218);if(Hl!=131&&Hl!=254)break;Nl(),ia()}break;default:Nl(),na();for(;;){kl(218);if(Hl!=131&&Hl!=254)break;Nl(),ia()}}break;default:Sl(188),kl(75),Sl(239),kl(86),Sl(273)}Vl.endNonterminal(\"FTStopWordOption\",Pl)}function ta(){switch(Hl){case 239:xl(239),kl(86),xl(273),kl(142);switch(Hl){case 109:xl(109);for(;;){kl(218);if(Hl!=131&&Hl!=254)break;sa()}break;default:ra();for(;;){kl(218);if(Hl!=131&&Hl!=254)break;sa()}}break;default:xl(188),kl(75),xl(239),kl(86),xl(273)}}function na(){Vl.startNonterminal(\"FTStopWords\",Pl);switch(Hl){case 81:Sl(81),kl(15),Sl(7);break;default:Sl(34),kl(17),Sl(11);for(;;){kl(101);if(Hl!=41)break;Sl(41),kl(17),Sl(11)}Sl(37)}Vl.endNonterminal(\"FTStopWords\",Pl)}function ra(){switch(Hl){case 81:xl(81),kl(15),xl(7);break;default:xl(34),kl(17),xl(11);for(;;){kl(101);if(Hl!=41)break;xl(41),kl(17),xl(11)}xl(37)}}function ia(){Vl.startNonterminal(\"FTStopWordsInclExcl\",Pl);switch(Hl){case 254:Sl(254);break;default:Sl(131)}kl(99),Nl(),na(),Vl.endNonterminal(\"FTStopWordsInclExcl\",Pl)}function sa(){switch(Hl){case 254:xl(254);break;default:xl(131)}kl(99),ra()}function oa(){Vl.startNonterminal(\"FTLanguageOption\",Pl),Sl(169),kl(17),Sl(11),Vl.endNonterminal(\"FTLanguageOption\",Pl)}function ua(){xl(169),kl(17),xl(11)}function aa(){Vl.startNonterminal(\"FTWildCardOption\",Pl);switch(Hl){case 268:Sl(268);break;default:Sl(188),kl(84),Sl(268)}Vl.endNonterminal(\"FTWildCardOption\",Pl)}function fa(){switch(Hl){case 268:xl(268);break;default:xl(188),kl(84),xl(268)}}function la(){Vl.startNonterminal(\"FTExtensionOption\",Pl),Sl(199),kl(255),Nl(),Ha(),kl(17),Sl(11),Vl.endNonterminal(\"FTExtensionOption\",Pl)}function ca(){xl(199),kl(255),Ba(),kl(17),xl(11)}function ha(){Vl.startNonterminal(\"FTIgnoreOption\",Pl),Sl(271),kl(42),Sl(100),kl(267),Nl(),Qn(),Vl.endNonterminal(\"FTIgnoreOption\",Pl)}function pa(){xl(271),kl(42),xl(100),kl(267),Gn()}function da(){Vl.startNonterminal(\"CollectionDecl\",Pl),Sl(95),kl(255),Nl(),Ha(),kl(107),Hl==79&&(Nl(),va()),Vl.endNonterminal(\"CollectionDecl\",Pl)}function va(){Vl.startNonterminal(\"CollectionTypeDecl\",Pl),Sl(79),kl(178),Nl(),Ps(),kl(156),Hl!=53&&(Nl(),ys()),Vl.endNonterminal(\"CollectionTypeDecl\",Pl)}function ma(){Vl.startNonterminal(\"IndexName\",Pl),Ha(),Vl.endNonterminal(\"IndexName\",Pl)}function ga(){Vl.startNonterminal(\"IndexDomainExpr\",Pl),Lr(),Vl.endNonterminal(\"IndexDomainExpr\",Pl)}function ya(){Vl.startNonterminal(\"IndexKeySpec\",Pl),ba(),Hl==79&&(Nl(),wa()),kl(146),Hl==94&&(Nl(),Sa()),Vl.endNonterminal(\"IndexKeySpec\",Pl)}function ba(){Vl.startNonterminal(\"IndexKeyExpr\",Pl),Lr(),Vl.endNonterminal(\"IndexKeyExpr\",Pl)}function wa(){Vl.startNonterminal(\"IndexKeyTypeDecl\",Pl),Sl(79),kl(255),Nl(),Ea(),kl(169);if(Hl==39||Hl==40||Hl==64)Nl(),ys();Vl.endNonterminal(\"IndexKeyTypeDecl\",Pl)}function Ea(){Vl.startNonterminal(\"AtomicType\",Pl),Ha(),Vl.endNonterminal(\"AtomicType\",Pl)}function Sa(){Vl.startNonterminal(\"IndexKeyCollation\",Pl),Sl(94),kl(15),Sl(7),Vl.endNonterminal(\"IndexKeyCollation\",Pl)}function xa(){Vl.startNonterminal(\"IndexDecl\",Pl),Sl(155),kl(255),Nl(),ma(),kl(65),Sl(197),kl(63),Sl(192),kl(266),Nl(),ga(),Sl(87),kl(266),Nl(),ya();for(;;){kl(103);if(Hl!=41)break;Sl(41),kl(266),Nl(),ya()}Vl.endNonterminal(\"IndexDecl\",Pl)}function Ta(){Vl.startNonterminal(\"ICDecl\",Pl),Sl(161),kl(40),Sl(97),kl(255),Nl(),Ha(),kl(120);switch(Hl){case 197:Nl(),Na();break;default:Nl(),Aa()}Vl.endNonterminal(\"ICDecl\",Pl)}function Na(){Vl.startNonterminal(\"ICCollection\",Pl),Sl(197),kl(39),Sl(95),kl(255),Nl(),Ha(),kl(140);switch(Hl){case 31:Nl(),Ca();break;case 191:Nl(),ka();break;default:Nl(),La()}Vl.endNonterminal(\"ICCollection\",Pl)}function Ca(){Vl.startNonterminal(\"ICCollSequence\",Pl),li(),kl(37),Sl(92),kl(267),Nl(),_f(),Vl.endNonterminal(\"ICCollSequence\",Pl)}function ka(){Vl.startNonterminal(\"ICCollSequenceUnique\",Pl),Sl(191),kl(21),Nl(),li(),kl(37),Sl(92),kl(80),Sl(255),kl(57),Sl(168),kl(266),Nl(),Lr(),Vl.endNonterminal(\"ICCollSequenceUnique\",Pl)}function La(){Vl.startNonterminal(\"ICCollNode\",Pl),Sl(138),kl(62),Sl(191),kl(21),Nl(),li(),kl(37),Sl(92),kl(267),Nl(),_f(),Vl.endNonterminal(\"ICCollNode\",Pl)}function Aa(){Vl.startNonterminal(\"ICForeignKey\",Pl),Sl(139),kl(57),Sl(168),kl(51),Nl(),Oa(),Nl(),Ma(),Vl.endNonterminal(\"ICForeignKey\",Pl)}function Oa(){Vl.startNonterminal(\"ICForeignKeySource\",Pl),Sl(140),kl(39),Nl(),_a(),Vl.endNonterminal(\"ICForeignKeySource\",Pl)}function Ma(){Vl.startNonterminal(\"ICForeignKeyTarget\",Pl),Sl(248),kl(39),Nl(),_a(),Vl.endNonterminal(\"ICForeignKeyTarget\",Pl)}function _a(){Vl.startNonterminal(\"ICForeignKeyValues\",Pl),Sl(95),kl(255),Nl(),Ha(),kl(62),Sl(191),kl(21),Nl(),li(),kl(57),Sl(168),kl(266),Nl(),Lr(),Vl.endNonterminal(\"ICForeignKeyValues\",Pl)}function Da(){xl(36);for(;;){Al(89);if(Hl==50)break;switch(Hl){case 24:xl(24);break;default:Da()}}xl(50)}function Pa(){switch(Hl){case 22:xl(22);break;default:Da()}}function Ha(){Vl.startNonterminal(\"EQName\",Pl),Al(250);switch(Hl){case 82:Sl(82);break;case 96:Sl(96);break;case 120:Sl(120);break;case 121:Sl(121);break;case 124:Sl(124);break;case 145:Sl(145);break;case 152:Sl(152);break;case 165:Sl(165);break;case 185:Sl(185);break;case 191:Sl(191);break;case 216:Sl(216);break;case 226:Sl(226);break;case 227:Sl(227);break;case 243:Sl(243);break;case 244:Sl(244);break;case 253:Sl(253);break;case 78:Sl(78);break;case 167:Sl(167);break;case 242:Sl(242);break;default:ja()}Vl.endNonterminal(\"EQName\",Pl)}function Ba(){Al(250);switch(Hl){case 82:xl(82);break;case 96:xl(96);break;case 120:xl(120);break;case 121:xl(121);break;case 124:xl(124);break;case 145:xl(145);break;case 152:xl(152);break;case 165:xl(165);break;case 185:xl(185);break;case 191:xl(191);break;case 216:xl(216);break;case 226:xl(226);break;case 227:xl(227);break;case 243:xl(243);break;case 244:xl(244);break;case 253:xl(253);break;case 78:xl(78);break;case 167:xl(167);break;case 242:xl(242);break;default:Fa()}}function ja(){Vl.startNonterminal(\"FunctionName\",Pl);switch(Hl){case 6:Sl(6);break;case 70:Sl(70);break;case 73:Sl(73);break;case 74:Sl(74);break;case 75:Sl(75);break;case 79:Sl(79);break;case 80:Sl(80);break;case 84:Sl(84);break;case 88:Sl(88);break;case 89:Sl(89);break;case 90:Sl(90);break;case 93:Sl(93);break;case 94:Sl(94);break;case 103:Sl(103);break;case 105:Sl(105);break;case 108:Sl(108);break;case 109:Sl(109);break;case 110:Sl(110);break;case 111:Sl(111);break;case 112:Sl(112);break;case 113:Sl(113);break;case 118:Sl(118);break;case 119:Sl(119);break;case 122:Sl(122);break;case 123:Sl(123);break;case 126:Sl(126);break;case 128:Sl(128);break;case 129:Sl(129);break;case 131:Sl(131);break;case 134:Sl(134);break;case 135:Sl(135);break;case 136:Sl(136);break;case 137:Sl(137);break;case 146:Sl(146);break;case 148:Sl(148);break;case 150:Sl(150);break;case 151:Sl(151);break;case 153:Sl(153);break;case 159:Sl(159);break;case 160:Sl(160);break;case 162:Sl(162);break;case 163:Sl(163);break;case 164:Sl(164);break;case 170:Sl(170);break;case 172:Sl(172);break;case 174:Sl(174);break;case 178:Sl(178);break;case 180:Sl(180);break;case 181:Sl(181);break;case 182:Sl(182);break;case 184:Sl(184);break;case 186:Sl(186);break;case 198:Sl(198);break;case 200:Sl(200);break;case 201:Sl(201);break;case 202:Sl(202);break;case 206:Sl(206);break;case 212:Sl(212);break;case 213:Sl(213);break;case 218:Sl(218);break;case 219:Sl(219);break;case 220:Sl(220);break;case 224:Sl(224);break;case 229:Sl(229);break;case 235:Sl(235);break;case 236:Sl(236);break;case 237:Sl(237);break;case 248:Sl(248);break;case 249:Sl(249);break;case 250:Sl(250);break;case 254:Sl(254);break;case 256:Sl(256);break;case 260:Sl(260);break;case 266:Sl(266);break;case 270:Sl(270);break;case 274:Sl(274);break;case 72:Sl(72);break;case 81:Sl(81);break;case 83:Sl(83);break;case 85:Sl(85);break;case 86:Sl(86);break;case 91:Sl(91);break;case 98:Sl(98);break;case 101:Sl(101);break;case 102:Sl(102);break;case 104:Sl(104);break;case 106:Sl(106);break;case 125:Sl(125);break;case 132:Sl(132);break;case 133:Sl(133);break;case 141:Sl(141);break;case 154:Sl(154);break;case 155:Sl(155);break;case 161:Sl(161);break;case 171:Sl(171);break;case 192:Sl(192);break;case 199:Sl(199);break;case 203:Sl(203);break;case 222:Sl(222);break;case 225:Sl(225);break;case 228:Sl(228);break;case 234:Sl(234);break;case 240:Sl(240);break;case 251:Sl(251);break;case 252:Sl(252);break;case 257:Sl(257);break;case 261:Sl(261);break;case 262:Sl(262);break;case 263:Sl(263);break;case 267:Sl(267);break;case 97:Sl(97);break;case 176:Sl(176);break;case 221:Sl(221);break;case 77:Sl(77);break;case 166:Sl(166);break;default:Sl(194)}Vl.endNonterminal(\"FunctionName\",Pl)}function Fa(){switch(Hl){case 6:xl(6);break;case 70:xl(70);break;case 73:xl(73);break;case 74:xl(74);break;case 75:xl(75);break;case 79:xl(79);break;case 80:xl(80);break;case 84:xl(84);break;case 88:xl(88);break;case 89:xl(89);break;case 90:xl(90);break;case 93:xl(93);break;case 94:xl(94);break;case 103:xl(103);break;case 105:xl(105);break;case 108:xl(108);break;case 109:xl(109);break;case 110:xl(110);break;case 111:xl(111);break;case 112:xl(112);break;case 113:xl(113);break;case 118:xl(118);break;case 119:xl(119);break;case 122:xl(122);break;case 123:xl(123);break;case 126:xl(126);break;case 128:xl(128);break;case 129:xl(129);break;case 131:xl(131);break;case 134:xl(134);break;case 135:xl(135);break;case 136:xl(136);break;case 137:xl(137);break;case 146:xl(146);break;case 148:xl(148);break;case 150:xl(150);break;case 151:xl(151);break;case 153:xl(153);break;case 159:xl(159);break;case 160:xl(160);break;case 162:xl(162);break;case 163:xl(163);break;case 164:xl(164);break;case 170:xl(170);break;case 172:xl(172);break;case 174:xl(174);break;case 178:xl(178);break;case 180:xl(180);break;case 181:xl(181);break;case 182:xl(182);break;case 184:xl(184);break;case 186:xl(186);break;case 198:xl(198);break;case 200:xl(200);break;case 201:xl(201);break;case 202:xl(202);break;case 206:xl(206);break;case 212:xl(212);break;case 213:xl(213);break;case 218:xl(218);break;case 219:xl(219);break;case 220:xl(220);break;case 224:xl(224);break;case 229:xl(229);break;case 235:xl(235);break;case 236:xl(236);break;case 237:xl(237);break;case 248:xl(248);break;case 249:xl(249);break;case 250:xl(250);break;case 254:xl(254);break;case 256:xl(256);break;case 260:xl(260);break;case 266:xl(266);break;case 270:xl(270);break;case 274:xl(274);break;case 72:xl(72);break;case 81:xl(81);break;case 83:xl(83);break;case 85:xl(85);break;case 86:xl(86);break;case 91:xl(91);break;case 98:xl(98);break;case 101:xl(101);break;case 102:xl(102);break;case 104:xl(104);break;case 106:xl(106);break;case 125:xl(125);break;case 132:xl(132);break;case 133:xl(133);break;case 141:xl(141);break;case 154:xl(154);break;case 155:xl(155);break;case 161:xl(161);break;case 171:xl(171);break;case 192:xl(192);break;case 199:xl(199);break;case 203:xl(203);break;case 222:xl(222);break;case 225:xl(225);break;case 228:xl(228);break;case 234:xl(234);break;case 240:xl(240);break;case 251:xl(251);break;case 252:xl(252);break;case 257:xl(257);break;case 261:xl(261);break;case 262:xl(262);break;case 263:xl(263);break;case 267:xl(267);break;case 97:xl(97);break;case 176:xl(176);break;case 221:xl(221);break;case 77:xl(77);break;case 166:xl(166);break;default:xl(194)}}function Ia(){Vl.startNonterminal(\"NCName\",Pl);switch(Hl){case 19:Sl(19);break;case 70:Sl(70);break;case 75:Sl(75);break;case 79:Sl(79);break;case 80:Sl(80);break;case 84:Sl(84);break;case 88:Sl(88);break;case 89:Sl(89);break;case 90:Sl(90);break;case 94:Sl(94);break;case 105:Sl(105);break;case 109:Sl(109);break;case 113:Sl(113);break;case 118:Sl(118);break;case 122:Sl(122);break;case 123:Sl(123);break;case 126:Sl(126);break;case 128:Sl(128);break;case 131:Sl(131);break;case 137:Sl(137);break;case 146:Sl(146);break;case 148:Sl(148);break;case 150:Sl(150);break;case 151:Sl(151);break;case 160:Sl(160);break;case 162:Sl(162);break;case 163:Sl(163);break;case 164:Sl(164);break;case 172:Sl(172);break;case 174:Sl(174);break;case 178:Sl(178);break;case 180:Sl(180);break;case 181:Sl(181);break;case 186:Sl(186);break;case 198:Sl(198);break;case 200:Sl(200);break;case 201:Sl(201);break;case 220:Sl(220);break;case 224:Sl(224);break;case 236:Sl(236);break;case 237:Sl(237);break;case 248:Sl(248);break;case 249:Sl(249);break;case 254:Sl(254);break;case 266:Sl(266);break;case 270:Sl(270);break;case 73:Sl(73);break;case 74:Sl(74);break;case 82:Sl(82);break;case 93:Sl(93);break;case 96:Sl(96);break;case 103:Sl(103);break;case 108:Sl(108);break;case 110:Sl(110);break;case 111:Sl(111);break;case 112:Sl(112);break;case 119:Sl(119);break;case 120:Sl(120);break;case 121:Sl(121);break;case 124:Sl(124);break;case 129:Sl(129);break;case 134:Sl(134);break;case 135:Sl(135);break;case 136:Sl(136);break;case 145:Sl(145);break;case 152:Sl(152);break;case 153:Sl(153);break;case 159:Sl(159);break;case 165:Sl(165);break;case 170:Sl(170);break;case 182:Sl(182);break;case 184:Sl(184);break;case 185:Sl(185);break;case 191:Sl(191);break;case 202:Sl(202);break;case 206:Sl(206);break;case 212:Sl(212);break;case 213:Sl(213);break;case 216:Sl(216);break;case 218:Sl(218);break;case 219:Sl(219);break;case 226:Sl(226);break;case 227:Sl(227);break;case 229:Sl(229);break;case 235:Sl(235);break;case 243:Sl(243);break;case 244:Sl(244);break;case 250:Sl(250);break;case 253:Sl(253);break;case 256:Sl(256);break;case 260:Sl(260);break;case 262:Sl(262);break;case 274:Sl(274);break;case 72:Sl(72);break;case 81:Sl(81);break;case 83:Sl(83);break;case 85:Sl(85);break;case 86:Sl(86);break;case 91:Sl(91);break;case 98:Sl(98);break;case 101:Sl(101);break;case 102:Sl(102);break;case 104:Sl(104);break;case 106:Sl(106);break;case 125:Sl(125);break;case 132:Sl(132);break;case 133:Sl(133);break;case 141:Sl(141);break;case 154:Sl(154);break;case 155:Sl(155);break;case 161:Sl(161);break;case 171:Sl(171);break;case 192:Sl(192);break;case 199:Sl(199);break;case 203:Sl(203);break;case 222:Sl(222);break;case 225:Sl(225);break;case 228:Sl(228);break;case 234:Sl(234);break;case 240:Sl(240);break;case 251:Sl(251);break;case 252:Sl(252);break;case 257:Sl(257);break;case 261:Sl(261);break;case 263:Sl(263);break;case 267:Sl(267);break;case 97:Sl(97);break;case 176:Sl(176);break;case 221:Sl(221);break;case 77:Sl(77);break;case 166:Sl(166);break;default:Sl(194)}Vl.endNonterminal(\"NCName\",Pl)}function qa(){switch(Hl){case 19:xl(19);break;case 70:xl(70);break;case 75:xl(75);break;case 79:xl(79);break;case 80:xl(80);break;case 84:xl(84);break;case 88:xl(88);break;case 89:xl(89);break;case 90:xl(90);break;case 94:xl(94);break;case 105:xl(105);break;case 109:xl(109);break;case 113:xl(113);break;case 118:xl(118);break;case 122:xl(122);break;case 123:xl(123);break;case 126:xl(126);break;case 128:xl(128);break;case 131:xl(131);break;case 137:xl(137);break;case 146:xl(146);break;case 148:xl(148);break;case 150:xl(150);break;case 151:xl(151);break;case 160:xl(160);break;case 162:xl(162);break;case 163:xl(163);break;case 164:xl(164);break;case 172:xl(172);break;case 174:xl(174);break;case 178:xl(178);break;case 180:xl(180);break;case 181:xl(181);break;case 186:xl(186);break;case 198:xl(198);break;case 200:xl(200);break;case 201:xl(201);break;case 220:xl(220);break;case 224:xl(224);break;case 236:xl(236);break;case 237:xl(237);break;case 248:xl(248);break;case 249:xl(249);break;case 254:xl(254);break;case 266:xl(266);break;case 270:xl(270);break;case 73:xl(73);break;case 74:xl(74);break;case 82:xl(82);break;case 93:xl(93);break;case 96:xl(96);break;case 103:xl(103);break;case 108:xl(108);break;case 110:xl(110);break;case 111:xl(111);break;case 112:xl(112);break;case 119:xl(119);break;case 120:xl(120);break;case 121:xl(121);break;case 124:xl(124);break;case 129:xl(129);break;case 134:xl(134);break;case 135:xl(135);break;case 136:xl(136);break;case 145:xl(145);break;case 152:xl(152);break;case 153:xl(153);break;case 159:xl(159);break;case 165:xl(165);break;case 170:xl(170);break;case 182:xl(182);break;case 184:xl(184);break;case 185:xl(185);break;case 191:xl(191);break;case 202:xl(202);break;case 206:xl(206);break;case 212:xl(212);break;case 213:xl(213);break;case 216:xl(216);break;case 218:xl(218);break;case 219:xl(219);break;case 226:xl(226);break;case 227:xl(227);break;case 229:xl(229);break;case 235:xl(235);break;case 243:xl(243);break;case 244:xl(244);break;case 250:xl(250);break;case 253:xl(253);break;case 256:xl(256);break;case 260:xl(260);break;case 262:xl(262);break;case 274:xl(274);break;case 72:xl(72);break;case 81:xl(81);break;case 83:xl(83);break;case 85:xl(85);break;case 86:xl(86);break;case 91:xl(91);break;case 98:xl(98);break;case 101:xl(101);break;case 102:xl(102);break;case 104:xl(104);break;case 106:xl(106);break;case 125:xl(125);break;case 132:xl(132);break;case 133:xl(133);break;case 141:xl(141);break;case 154:xl(154);break;case 155:xl(155);break;case 161:xl(161);break;case 171:xl(171);break;case 192:xl(192);break;case 199:xl(199);break;case 203:xl(203);break;case 222:xl(222);break;case 225:xl(225);break;case 228:xl(228);break;case 234:xl(234);break;case 240:xl(240);break;case 251:xl(251);break;case 252:xl(252);break;case 257:xl(257);break;case 261:xl(261);break;case 263:xl(263);break;case 267:xl(267);break;case 97:xl(97);break;case 176:xl(176);break;case 221:xl(221);break;case 77:xl(77);break;case 166:xl(166);break;default:xl(194)}}function Ra(){Vl.startNonterminal(\"MainModule\",Pl),l(),Nl(),Ua(),Vl.endNonterminal(\"MainModule\",Pl)}function Ua(){Vl.startNonterminal(\"Program\",Pl),$a(),Vl.endNonterminal(\"Program\",Pl)}function za(){Vl.startNonterminal(\"Statements\",Pl);for(;;){kl(278);switch(Hl){case 34:Ll(269);break;case 35:Ol(252);break;case 46:Ll(284);break;case 47:Ll(265);break;case 54:Ol(4);break;case 55:Ol(1);break;case 59:Ol(3);break;case 66:Ll(257);break;case 68:Ll(272);break;case 77:Ll(200);break;case 82:Ll(281);break;case 121:Ll(280);break;case 132:Ll(203);break;case 137:Ll(208);break;case 174:Ll(205);break;case 218:Ll(206);break;case 219:Ll(207);break;case 260:Ll(210);break;case 276:Ll(277);break;case 278:Ll(273);break;case 5:case 45:Ll(186);break;case 31:case 32:Ll(255);break;case 40:case 42:Ll(267);break;case 86:case 102:Ll(201);break;case 110:case 159:Ll(209);break;case 184:case 216:Ll(268);break;case 103:case 129:case 235:case 262:Ll(197);break;case 8:case 9:case 10:case 11:case 44:Ll(192);break;case 78:case 124:case 165:case 167:case 242:Ll(191);break;case 96:case 119:case 202:case 244:case 250:case 256:Ll(204);break;case 73:case 74:case 93:case 111:case 112:case 135:case 136:case 206:case 212:case 213:case 229:Ll(198);break;case 6:case 70:case 72:case 75:case 79:case 80:case 81:case 83:case 84:case 85:case 88:case 89:case 90:case 91:case 94:case 97:case 98:case 101:case 104:case 105:case 106:case 108:case 109:case 113:case 118:case 120:case 122:case 123:case 125:case 126:case 128:case 131:case 133:case 134:case 141:case 145:case 146:case 148:case 150:case 151:case 152:case 153:case 154:case 155:case 160:case 161:case 162:case 163:case 164:case 166:case 170:case 171:case 172:case 176:case 178:case 180:case 181:case 182:case 185:case 186:case 191:case 192:case 194:case 198:case 199:case 200:case 201:case 203:case 220:case 221:case 222:case 224:case 225:case 226:case 227:case 228:case 234:case 236:case 237:case 240:case 243:case 248:case 249:case 251:case 252:case 253:case 254:case 257:case 261:case 263:case 266:case 267:case 270:case 274:Ll(195);break;default:_l=Hl}if(_l!=25&&_l!=53&&_l!=282&&_l!=12805&&_l!=12806&&_l!=12808&&_l!=12809&&_l!=12810&&_l!=12811&&_l!=12844&&_l!=12845&&_l!=12846&&_l!=12870&&_l!=12872&&_l!=12873&&_l!=12874&&_l!=12875&&_l!=12877&&_l!=12878&&_l!=12879&&_l!=12880&&_l!=12881&&_l!=12882&&_l!=12883&&_l!=12884&&_l!=12885&&_l!=12886&&_l!=12888&&_l!=12889&&_l!=12890&&_l!=12891&&_l!=12893&&_l!=12894&&_l!=12896&&_l!=12897&&_l!=12898&&_l!=12901&&_l!=12902&&_l!=12903&&_l!=12904&&_l!=12905&&_l!=12906&&_l!=12908&&_l!=12909&&_l!=12910&&_l!=12911&&_l!=12912&&_l!=12913&&_l!=12918&&_l!=12919&&_l!=12920&&_l!=12921&&_l!=12922&&_l!=12923&&_l!=12924&&_l!=12925&&_l!=12926&&_l!=12928&&_l!=12929&&_l!=12931&&_l!=12932&&_l!=12933&&_l!=12934&&_l!=12935&&_l!=12936&&_l!=12937&&_l!=12941&&_l!=12945&&_l!=12946&&_l!=12948&&_l!=12950&&_l!=12951&&_l!=12952&&_l!=12953&&_l!=12954&&_l!=12955&&_l!=12959&&_l!=12960&&_l!=12961&&_l!=12962&&_l!=12963&&_l!=12964&&_l!=12965&&_l!=12966&&_l!=12967&&_l!=12970&&_l!=12971&&_l!=12972&&_l!=12974&&_l!=12976&&_l!=12978&&_l!=12980&&_l!=12981&&_l!=12982&&_l!=12984&&_l!=12985&&_l!=12986&&_l!=12991&&_l!=12992&&_l!=12994&&_l!=12998&&_l!=12999&&_l!=13e3&&_l!=13001&&_l!=13002&&_l!=13003&&_l!=13006&&_l!=13012&&_l!=13013&&_l!=13016&&_l!=13018&&_l!=13019&&_l!=13020&&_l!=13021&&_l!=13022&&_l!=13024&&_l!=13025&&_l!=13026&&_l!=13027&&_l!=13028&&_l!=13029&&_l!=13034&&_l!=13035&&_l!=13036&&_l!=13037&&_l!=13040&&_l!=13042&&_l!=13043&&_l!=13044&&_l!=13048&&_l!=13049&&_l!=13050&&_l!=13051&&_l!=13052&&_l!=13053&&_l!=13054&&_l!=13056&&_l!=13057&&_l!=13060&&_l!=13061&&_l!=13062&&_l!=13063&&_l!=13066&&_l!=13067&&_l!=13070&&_l!=13074&&_l!=16134&&_l!=20997&&_l!=20998&&_l!=21e3&&_l!=21001&&_l!=21002&&_l!=21003&&_l!=21036&&_l!=21037&&_l!=21038&&_l!=21062&&_l!=21064&&_l!=21065&&_l!=21066&&_l!=21067&&_l!=21069&&_l!=21070&&_l!=21071&&_l!=21072&&_l!=21073&&_l!=21074&&_l!=21075&&_l!=21076&&_l!=21077&&_l!=21078&&_l!=21080&&_l!=21081&&_l!=21082&&_l!=21083&&_l!=21085&&_l!=21086&&_l!=21088&&_l!=21089&&_l!=21090&&_l!=21093&&_l!=21094&&_l!=21095&&_l!=21096&&_l!=21097&&_l!=21098&&_l!=21100&&_l!=21101&&_l!=21102&&_l!=21103&&_l!=21104&&_l!=21105&&_l!=21110&&_l!=21111&&_l!=21112&&_l!=21113&&_l!=21114&&_l!=21115&&_l!=21116&&_l!=21117&&_l!=21118&&_l!=21120&&_l!=21121&&_l!=21123&&_l!=21124&&_l!=21125&&_l!=21126&&_l!=21127&&_l!=21128&&_l!=21129&&_l!=21133&&_l!=21137&&_l!=21138&&_l!=21140&&_l!=21142&&_l!=21143&&_l!=21144&&_l!=21145&&_l!=21146&&_l!=21147&&_l!=21151&&_l!=21152&&_l!=21153&&_l!=21154&&_l!=21155&&_l!=21156&&_l!=21157&&_l!=21158&&_l!=21159&&_l!=21162&&_l!=21163&&_l!=21164&&_l!=21166&&_l!=21168&&_l!=21170&&_l!=21172&&_l!=21173&&_l!=21174&&_l!=21176&&_l!=21177&&_l!=21178&&_l!=21183&&_l!=21184&&_l!=21186&&_l!=21190&&_l!=21191&&_l!=21192&&_l!=21193&&_l!=21194&&_l!=21195&&_l!=21198&&_l!=21204&&_l!=21205&&_l!=21208&&_l!=21210&&_l!=21211&&_l!=21212&&_l!=21213&&_l!=21214&&_l!=21216&&_l!=21217&&_l!=21218&&_l!=21219&&_l!=21220&&_l!=21221&&_l!=21226&&_l!=21227&&_l!=21228&&_l!=21229&&_l!=21232&&_l!=21234&&_l!=21235&&_l!=21236&&_l!=21240&&_l!=21241&&_l!=21242&&_l!=21243&&_l!=21244&&_l!=21245&&_l!=21246&&_l!=21248&&_l!=21249&&_l!=21252&&_l!=21253&&_l!=21254&&_l!=21255&&_l!=21258&&_l!=21259&&_l!=21262&&_l!=21266&&_l!=27141&&_l!=27142&&_l!=27144&&_l!=27145&&_l!=27146&&_l!=27147&&_l!=27180&&_l!=27181&&_l!=27182&&_l!=27206&&_l!=27208&&_l!=27209&&_l!=27210&&_l!=27211&&_l!=27213&&_l!=27214&&_l!=27215&&_l!=27216&&_l!=27217&&_l!=27218&&_l!=27219&&_l!=27220&&_l!=27221&&_l!=27222&&_l!=27224&&_l!=27225&&_l!=27226&&_l!=27227&&_l!=27229&&_l!=27230&&_l!=27232&&_l!=27233&&_l!=27234&&_l!=27237&&_l!=27238&&_l!=27239&&_l!=27240&&_l!=27241&&_l!=27242&&_l!=27244&&_l!=27245&&_l!=27246&&_l!=27247&&_l!=27248&&_l!=27249&&_l!=27254&&_l!=27255&&_l!=27256&&_l!=27257&&_l!=27258&&_l!=27259&&_l!=27260&&_l!=27261&&_l!=27262&&_l!=27264&&_l!=27265&&_l!=27267&&_l!=27268&&_l!=27269&&_l!=27270&&_l!=27271&&_l!=27272&&_l!=27273&&_l!=27277&&_l!=27281&&_l!=27282&&_l!=27284&&_l!=27286&&_l!=27287&&_l!=27288&&_l!=27289&&_l!=27290&&_l!=27291&&_l!=27295&&_l!=27296&&_l!=27297&&_l!=27298&&_l!=27299&&_l!=27300&&_l!=27301&&_l!=27302&&_l!=27303&&_l!=27306&&_l!=27307&&_l!=27308&&_l!=27310&&_l!=27312&&_l!=27314&&_l!=27316&&_l!=27317&&_l!=27318&&_l!=27320&&_l!=27321&&_l!=27322&&_l!=27327&&_l!=27328&&_l!=27330&&_l!=27334&&_l!=27335&&_l!=27336&&_l!=27337&&_l!=27338&&_l!=27339&&_l!=27342&&_l!=27348&&_l!=27349&&_l!=27352&&_l!=27354&&_l!=27355&&_l!=27356&&_l!=27357&&_l!=27358&&_l!=27360&&_l!=27361&&_l!=27362&&_l!=27363&&_l!=27364&&_l!=27365&&_l!=27370&&_l!=27371&&_l!=27372&&_l!=27373&&_l!=27376&&_l!=27378&&_l!=27379&&_l!=27380&&_l!=27384&&_l!=27385&&_l!=27386&&_l!=27387&&_l!=27388&&_l!=27389&&_l!=27390&&_l!=27392&&_l!=27393&&_l!=27396&&_l!=27397&&_l!=27398&&_l!=27399&&_l!=27402&&_l!=27403&&_l!=27406&&_l!=27410&&_l!=90198&&_l!=90214&&_l!=113284&&_l!=144389&&_l!=144390&&_l!=144392&&_l!=144393&&_l!=144394&&_l!=144395&&_l!=144428&&_l!=144429&&_l!=144430&&_l!=144454&&_l!=144456&&_l!=144457&&_l!=144458&&_l!=144459&&_l!=144461&&_l!=144462&&_l!=144463&&_l!=144464&&_l!=144465&&_l!=144466&&_l!=144467&&_l!=144468&&_l!=144469&&_l!=144470&&_l!=144472&&_l!=144473&&_l!=144474&&_l!=144475&&_l!=144477&&_l!=144478&&_l!=144480&&_l!=144481&&_l!=144482&&_l!=144485&&_l!=144486&&_l!=144487&&_l!=144488&&_l!=144489&&_l!=144490&&_l!=144492&&_l!=144493&&_l!=144494&&_l!=144495&&_l!=144496&&_l!=144497&&_l!=144502&&_l!=144503&&_l!=144504&&_l!=144505&&_l!=144506&&_l!=144507&&_l!=144508&&_l!=144509&&_l!=144510&&_l!=144512&&_l!=144513&&_l!=144515&&_l!=144516&&_l!=144517&&_l!=144518&&_l!=144519&&_l!=144520&&_l!=144521&&_l!=144525&&_l!=144529&&_l!=144530&&_l!=144532&&_l!=144534&&_l!=144535&&_l!=144536&&_l!=144537&&_l!=144538&&_l!=144539&&_l!=144543&&_l!=144544&&_l!=144545&&_l!=144546&&_l!=144547&&_l!=144548&&_l!=144549&&_l!=144550&&_l!=144551&&_l!=144554&&_l!=144555&&_l!=144556&&_l!=144558&&_l!=144560&&_l!=144562&&_l!=144564&&_l!=144565&&_l!=144566&&_l!=144568&&_l!=144569&&_l!=144570&&_l!=144575&&_l!=144576&&_l!=144578&&_l!=144582&&_l!=144583&&_l!=144584&&_l!=144585&&_l!=144586&&_l!=144587&&_l!=144590&&_l!=144596&&_l!=144597&&_l!=144600&&_l!=144602&&_l!=144603&&_l!=144604&&_l!=144605&&_l!=144606&&_l!=144608&&_l!=144609&&_l!=144610&&_l!=144611&&_l!=144612&&_l!=144613&&_l!=144618&&_l!=144619&&_l!=144620&&_l!=144621&&_l!=144624&&_l!=144626&&_l!=144627&&_l!=144628&&_l!=144632&&_l!=144633&&_l!=144634&&_l!=144635&&_l!=144636&&_l!=144637&&_l!=144638&&_l!=144640&&_l!=144641&&_l!=144644&&_l!=144645&&_l!=144646&&_l!=144647&&_l!=144650&&_l!=144651&&_l!=144654&&_l!=144658){_l=Kl(6,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Qa(),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(6,Pl,_l)}}if(_l!=-1&&_l!=53&&_l!=16134&&_l!=27141&&_l!=27142&&_l!=27144&&_l!=27145&&_l!=27146&&_l!=27147&&_l!=27180&&_l!=27181&&_l!=27182&&_l!=27206&&_l!=27208&&_l!=27209&&_l!=27210&&_l!=27211&&_l!=27213&&_l!=27214&&_l!=27215&&_l!=27216&&_l!=27217&&_l!=27218&&_l!=27219&&_l!=27220&&_l!=27221&&_l!=27222&&_l!=27224&&_l!=27225&&_l!=27226&&_l!=27227&&_l!=27229&&_l!=27230&&_l!=27232&&_l!=27233&&_l!=27234&&_l!=27237&&_l!=27238&&_l!=27239&&_l!=27240&&_l!=27241&&_l!=27242&&_l!=27244&&_l!=27245&&_l!=27246&&_l!=27247&&_l!=27248&&_l!=27249&&_l!=27254&&_l!=27255&&_l!=27256&&_l!=27257&&_l!=27258&&_l!=27259&&_l!=27260&&_l!=27261&&_l!=27262&&_l!=27264&&_l!=27265&&_l!=27267&&_l!=27268&&_l!=27269&&_l!=27270&&_l!=27271&&_l!=27272&&_l!=27273&&_l!=27277&&_l!=27281&&_l!=27282&&_l!=27284&&_l!=27286&&_l!=27287&&_l!=27288&&_l!=27289&&_l!=27290&&_l!=27291&&_l!=27295&&_l!=27296&&_l!=27297&&_l!=27298&&_l!=27299&&_l!=27300&&_l!=27301&&_l!=27302&&_l!=27303&&_l!=27306&&_l!=27307&&_l!=27308&&_l!=27310&&_l!=27312&&_l!=27314&&_l!=27316&&_l!=27317&&_l!=27318&&_l!=27320&&_l!=27321&&_l!=27322&&_l!=27327&&_l!=27328&&_l!=27330&&_l!=27334&&_l!=27335&&_l!=27336&&_l!=27337&&_l!=27338&&_l!=27339&&_l!=27342&&_l!=27348&&_l!=27349&&_l!=27352&&_l!=27354&&_l!=27355&&_l!=27356&&_l!=27357&&_l!=27358&&_l!=27360&&_l!=27361&&_l!=27362&&_l!=27363&&_l!=27364&&_l!=27365&&_l!=27370&&_l!=27371&&_l!=27372&&_l!=27373&&_l!=27376&&_l!=27378&&_l!=27379&&_l!=27380&&_l!=27384&&_l!=27385&&_l!=27386&&_l!=27387&&_l!=27388&&_l!=27389&&_l!=27390&&_l!=27392&&_l!=27393&&_l!=27396&&_l!=27397&&_l!=27398&&_l!=27399&&_l!=27402&&_l!=27403&&_l!=27406&&_l!=27410&&_l!=90198&&_l!=90214&&_l!=113284)break;Nl(),Ka()}Vl.endNonterminal(\"Statements\",Pl)}function Wa(){for(;;){kl(278);switch(Hl){case 34:Ll(269);break;case 35:Ol(252);break;case 46:Ll(284);break;case 47:Ll(265);break;case 54:Ol(4);break;case 55:Ol(1);break;case 59:Ol(3);break;case 66:Ll(257);break;case 68:Ll(272);break;case 77:Ll(200);break;case 82:Ll(281);break;case 121:Ll(280);break;case 132:Ll(203);break;case 137:Ll(208);break;case 174:Ll(205);break;case 218:Ll(206);break;case 219:Ll(207);break;case 260:Ll(210);break;case 276:Ll(277);break;case 278:Ll(273);break;case 5:case 45:Ll(186);break;case 31:case 32:Ll(255);break;case 40:case 42:Ll(267);break;case 86:case 102:Ll(201);break;case 110:case 159:Ll(209);break;case 184:case 216:Ll(268);break;case 103:case 129:case 235:case 262:Ll(197);break;case 8:case 9:case 10:case 11:case 44:Ll(192);break;case 78:case 124:case 165:case 167:case 242:Ll(191);break;case 96:case 119:case 202:case 244:case 250:case 256:Ll(204);break;case 73:case 74:case 93:case 111:case 112:case 135:case 136:case 206:case 212:case 213:case 229:Ll(198);break;case 6:case 70:case 72:case 75:case 79:case 80:case 81:case 83:case 84:case 85:case 88:case 89:case 90:case 91:case 94:case 97:case 98:case 101:case 104:case 105:case 106:case 108:case 109:case 113:case 118:case 120:case 122:case 123:case 125:case 126:case 128:case 131:case 133:case 134:case 141:case 145:case 146:case 148:case 150:case 151:case 152:case 153:case 154:case 155:case 160:case 161:case 162:case 163:case 164:case 166:case 170:case 171:case 172:case 176:case 178:case 180:case 181:case 182:case 185:case 186:case 191:case 192:case 194:case 198:case 199:case 200:case 201:case 203:case 220:case 221:case 222:case 224:case 225:case 226:case 227:case 228:case 234:case 236:case 237:case 240:case 243:case 248:case 249:case 251:case 252:case 253:case 254:case 257:case 261:case 263:case 266:case 267:case 270:case 274:Ll(195);break;default:_l=Hl}if(_l!=25&&_l!=53&&_l!=282&&_l!=12805&&_l!=12806&&_l!=12808&&_l!=12809&&_l!=12810&&_l!=12811&&_l!=12844&&_l!=12845&&_l!=12846&&_l!=12870&&_l!=12872&&_l!=12873&&_l!=12874&&_l!=12875&&_l!=12877&&_l!=12878&&_l!=12879&&_l!=12880&&_l!=12881&&_l!=12882&&_l!=12883&&_l!=12884&&_l!=12885&&_l!=12886&&_l!=12888&&_l!=12889&&_l!=12890&&_l!=12891&&_l!=12893&&_l!=12894&&_l!=12896&&_l!=12897&&_l!=12898&&_l!=12901&&_l!=12902&&_l!=12903&&_l!=12904&&_l!=12905&&_l!=12906&&_l!=12908&&_l!=12909&&_l!=12910&&_l!=12911&&_l!=12912&&_l!=12913&&_l!=12918&&_l!=12919&&_l!=12920&&_l!=12921&&_l!=12922&&_l!=12923&&_l!=12924&&_l!=12925&&_l!=12926&&_l!=12928&&_l!=12929&&_l!=12931&&_l!=12932&&_l!=12933&&_l!=12934&&_l!=12935&&_l!=12936&&_l!=12937&&_l!=12941&&_l!=12945&&_l!=12946&&_l!=12948&&_l!=12950&&_l!=12951&&_l!=12952&&_l!=12953&&_l!=12954&&_l!=12955&&_l!=12959&&_l!=12960&&_l!=12961&&_l!=12962&&_l!=12963&&_l!=12964&&_l!=12965&&_l!=12966&&_l!=12967&&_l!=12970&&_l!=12971&&_l!=12972&&_l!=12974&&_l!=12976&&_l!=12978&&_l!=12980&&_l!=12981&&_l!=12982&&_l!=12984&&_l!=12985&&_l!=12986&&_l!=12991&&_l!=12992&&_l!=12994&&_l!=12998&&_l!=12999&&_l!=13e3&&_l!=13001&&_l!=13002&&_l!=13003&&_l!=13006&&_l!=13012&&_l!=13013&&_l!=13016&&_l!=13018&&_l!=13019&&_l!=13020&&_l!=13021&&_l!=13022&&_l!=13024&&_l!=13025&&_l!=13026&&_l!=13027&&_l!=13028&&_l!=13029&&_l!=13034&&_l!=13035&&_l!=13036&&_l!=13037&&_l!=13040&&_l!=13042&&_l!=13043&&_l!=13044&&_l!=13048&&_l!=13049&&_l!=13050&&_l!=13051&&_l!=13052&&_l!=13053&&_l!=13054&&_l!=13056&&_l!=13057&&_l!=13060&&_l!=13061&&_l!=13062&&_l!=13063&&_l!=13066&&_l!=13067&&_l!=13070&&_l!=13074&&_l!=16134&&_l!=20997&&_l!=20998&&_l!=21e3&&_l!=21001&&_l!=21002&&_l!=21003&&_l!=21036&&_l!=21037&&_l!=21038&&_l!=21062&&_l!=21064&&_l!=21065&&_l!=21066&&_l!=21067&&_l!=21069&&_l!=21070&&_l!=21071&&_l!=21072&&_l!=21073&&_l!=21074&&_l!=21075&&_l!=21076&&_l!=21077&&_l!=21078&&_l!=21080&&_l!=21081&&_l!=21082&&_l!=21083&&_l!=21085&&_l!=21086&&_l!=21088&&_l!=21089&&_l!=21090&&_l!=21093&&_l!=21094&&_l!=21095&&_l!=21096&&_l!=21097&&_l!=21098&&_l!=21100&&_l!=21101&&_l!=21102&&_l!=21103&&_l!=21104&&_l!=21105&&_l!=21110&&_l!=21111&&_l!=21112&&_l!=21113&&_l!=21114&&_l!=21115&&_l!=21116&&_l!=21117&&_l!=21118&&_l!=21120&&_l!=21121&&_l!=21123&&_l!=21124&&_l!=21125&&_l!=21126&&_l!=21127&&_l!=21128&&_l!=21129&&_l!=21133&&_l!=21137&&_l!=21138&&_l!=21140&&_l!=21142&&_l!=21143&&_l!=21144&&_l!=21145&&_l!=21146&&_l!=21147&&_l!=21151&&_l!=21152&&_l!=21153&&_l!=21154&&_l!=21155&&_l!=21156&&_l!=21157&&_l!=21158&&_l!=21159&&_l!=21162&&_l!=21163&&_l!=21164&&_l!=21166&&_l!=21168&&_l!=21170&&_l!=21172&&_l!=21173&&_l!=21174&&_l!=21176&&_l!=21177&&_l!=21178&&_l!=21183&&_l!=21184&&_l!=21186&&_l!=21190&&_l!=21191&&_l!=21192&&_l!=21193&&_l!=21194&&_l!=21195&&_l!=21198&&_l!=21204&&_l!=21205&&_l!=21208&&_l!=21210&&_l!=21211&&_l!=21212&&_l!=21213&&_l!=21214&&_l!=21216&&_l!=21217&&_l!=21218&&_l!=21219&&_l!=21220&&_l!=21221&&_l!=21226&&_l!=21227&&_l!=21228&&_l!=21229&&_l!=21232&&_l!=21234&&_l!=21235&&_l!=21236&&_l!=21240&&_l!=21241&&_l!=21242&&_l!=21243&&_l!=21244&&_l!=21245&&_l!=21246&&_l!=21248&&_l!=21249&&_l!=21252&&_l!=21253&&_l!=21254&&_l!=21255&&_l!=21258&&_l!=21259&&_l!=21262&&_l!=21266&&_l!=27141&&_l!=27142&&_l!=27144&&_l!=27145&&_l!=27146&&_l!=27147&&_l!=27180&&_l!=27181&&_l!=27182&&_l!=27206&&_l!=27208&&_l!=27209&&_l!=27210&&_l!=27211&&_l!=27213&&_l!=27214&&_l!=27215&&_l!=27216&&_l!=27217&&_l!=27218&&_l!=27219&&_l!=27220&&_l!=27221&&_l!=27222&&_l!=27224&&_l!=27225&&_l!=27226&&_l!=27227&&_l!=27229&&_l!=27230&&_l!=27232&&_l!=27233&&_l!=27234&&_l!=27237&&_l!=27238&&_l!=27239&&_l!=27240&&_l!=27241&&_l!=27242&&_l!=27244&&_l!=27245&&_l!=27246&&_l!=27247&&_l!=27248&&_l!=27249&&_l!=27254&&_l!=27255&&_l!=27256&&_l!=27257&&_l!=27258&&_l!=27259&&_l!=27260&&_l!=27261&&_l!=27262&&_l!=27264&&_l!=27265&&_l!=27267&&_l!=27268&&_l!=27269&&_l!=27270&&_l!=27271&&_l!=27272&&_l!=27273&&_l!=27277&&_l!=27281&&_l!=27282&&_l!=27284&&_l!=27286&&_l!=27287&&_l!=27288&&_l!=27289&&_l!=27290&&_l!=27291&&_l!=27295&&_l!=27296&&_l!=27297&&_l!=27298&&_l!=27299&&_l!=27300&&_l!=27301&&_l!=27302&&_l!=27303&&_l!=27306&&_l!=27307&&_l!=27308&&_l!=27310&&_l!=27312&&_l!=27314&&_l!=27316&&_l!=27317&&_l!=27318&&_l!=27320&&_l!=27321&&_l!=27322&&_l!=27327&&_l!=27328&&_l!=27330&&_l!=27334&&_l!=27335&&_l!=27336&&_l!=27337&&_l!=27338&&_l!=27339&&_l!=27342&&_l!=27348&&_l!=27349&&_l!=27352&&_l!=27354&&_l!=27355&&_l!=27356&&_l!=27357&&_l!=27358&&_l!=27360&&_l!=27361&&_l!=27362&&_l!=27363&&_l!=27364&&_l!=27365&&_l!=27370&&_l!=27371&&_l!=27372&&_l!=27373&&_l!=27376&&_l!=27378&&_l!=27379&&_l!=27380&&_l!=27384&&_l!=27385&&_l!=27386&&_l!=27387&&_l!=27388&&_l!=27389&&_l!=27390&&_l!=27392&&_l!=27393&&_l!=27396&&_l!=27397&&_l!=27398&&_l!=27399&&_l!=27402&&_l!=27403&&_l!=27406&&_l!=27410&&_l!=90198&&_l!=90214&&_l!=113284&&_l!=144389&&_l!=144390&&_l!=144392&&_l!=144393&&_l!=144394&&_l!=144395&&_l!=144428&&_l!=144429&&_l!=144430&&_l!=144454&&_l!=144456&&_l!=144457&&_l!=144458&&_l!=144459&&_l!=144461&&_l!=144462&&_l!=144463&&_l!=144464&&_l!=144465&&_l!=144466&&_l!=144467&&_l!=144468&&_l!=144469&&_l!=144470&&_l!=144472&&_l!=144473&&_l!=144474&&_l!=144475&&_l!=144477&&_l!=144478&&_l!=144480&&_l!=144481&&_l!=144482&&_l!=144485&&_l!=144486&&_l!=144487&&_l!=144488&&_l!=144489&&_l!=144490&&_l!=144492&&_l!=144493&&_l!=144494&&_l!=144495&&_l!=144496&&_l!=144497&&_l!=144502&&_l!=144503&&_l!=144504&&_l!=144505&&_l!=144506&&_l!=144507&&_l!=144508&&_l!=144509&&_l!=144510&&_l!=144512&&_l!=144513&&_l!=144515&&_l!=144516&&_l!=144517&&_l!=144518&&_l!=144519&&_l!=144520&&_l!=144521&&_l!=144525&&_l!=144529&&_l!=144530&&_l!=144532&&_l!=144534&&_l!=144535&&_l!=144536&&_l!=144537&&_l!=144538&&_l!=144539&&_l!=144543&&_l!=144544&&_l!=144545&&_l!=144546&&_l!=144547&&_l!=144548&&_l!=144549&&_l!=144550&&_l!=144551&&_l!=144554&&_l!=144555&&_l!=144556&&_l!=144558&&_l!=144560&&_l!=144562&&_l!=144564&&_l!=144565&&_l!=144566&&_l!=144568&&_l!=144569&&_l!=144570&&_l!=144575&&_l!=144576&&_l!=144578&&_l!=144582&&_l!=144583&&_l!=144584&&_l!=144585&&_l!=144586&&_l!=144587&&_l!=144590&&_l!=144596&&_l!=144597&&_l!=144600&&_l!=144602&&_l!=144603&&_l!=144604&&_l!=144605&&_l!=144606&&_l!=144608&&_l!=144609&&_l!=144610&&_l!=144611&&_l!=144612&&_l!=144613&&_l!=144618&&_l!=144619&&_l!=144620&&_l!=144621&&_l!=144624&&_l!=144626&&_l!=144627&&_l!=144628&&_l!=144632&&_l!=144633&&_l!=144634&&_l!=144635&&_l!=144636&&_l!=144637&&_l!=144638&&_l!=144640&&_l!=144641&&_l!=144644&&_l!=144645&&_l!=144646&&_l!=144647&&_l!=144650&&_l!=144651&&_l!=144654&&_l!=144658){_l=Kl(6,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Qa(),Jl(6,t,-1);continue}catch(a){Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(6,t,-2);break}}}if(_l!=-1&&_l!=53&&_l!=16134&&_l!=27141&&_l!=27142&&_l!=27144&&_l!=27145&&_l!=27146&&_l!=27147&&_l!=27180&&_l!=27181&&_l!=27182&&_l!=27206&&_l!=27208&&_l!=27209&&_l!=27210&&_l!=27211&&_l!=27213&&_l!=27214&&_l!=27215&&_l!=27216&&_l!=27217&&_l!=27218&&_l!=27219&&_l!=27220&&_l!=27221&&_l!=27222&&_l!=27224&&_l!=27225&&_l!=27226&&_l!=27227&&_l!=27229&&_l!=27230&&_l!=27232&&_l!=27233&&_l!=27234&&_l!=27237&&_l!=27238&&_l!=27239&&_l!=27240&&_l!=27241&&_l!=27242&&_l!=27244&&_l!=27245&&_l!=27246&&_l!=27247&&_l!=27248&&_l!=27249&&_l!=27254&&_l!=27255&&_l!=27256&&_l!=27257&&_l!=27258&&_l!=27259&&_l!=27260&&_l!=27261&&_l!=27262&&_l!=27264&&_l!=27265&&_l!=27267&&_l!=27268&&_l!=27269&&_l!=27270&&_l!=27271&&_l!=27272&&_l!=27273&&_l!=27277&&_l!=27281&&_l!=27282&&_l!=27284&&_l!=27286&&_l!=27287&&_l!=27288&&_l!=27289&&_l!=27290&&_l!=27291&&_l!=27295&&_l!=27296&&_l!=27297&&_l!=27298&&_l!=27299&&_l!=27300&&_l!=27301&&_l!=27302&&_l!=27303&&_l!=27306&&_l!=27307&&_l!=27308&&_l!=27310&&_l!=27312&&_l!=27314&&_l!=27316&&_l!=27317&&_l!=27318&&_l!=27320&&_l!=27321&&_l!=27322&&_l!=27327&&_l!=27328&&_l!=27330&&_l!=27334&&_l!=27335&&_l!=27336&&_l!=27337&&_l!=27338&&_l!=27339&&_l!=27342&&_l!=27348&&_l!=27349&&_l!=27352&&_l!=27354&&_l!=27355&&_l!=27356&&_l!=27357&&_l!=27358&&_l!=27360&&_l!=27361&&_l!=27362&&_l!=27363&&_l!=27364&&_l!=27365&&_l!=27370&&_l!=27371&&_l!=27372&&_l!=27373&&_l!=27376&&_l!=27378&&_l!=27379&&_l!=27380&&_l!=27384&&_l!=27385&&_l!=27386&&_l!=27387&&_l!=27388&&_l!=27389&&_l!=27390&&_l!=27392&&_l!=27393&&_l!=27396&&_l!=27397&&_l!=27398&&_l!=27399&&_l!=27402&&_l!=27403&&_l!=27406&&_l!=27410&&_l!=90198&&_l!=90214&&_l!=113284)break;Qa()}}function Xa(){Vl.startNonterminal(\"StatementsAndExpr\",Pl),za(),Nl(),G(),Vl.endNonterminal(\"StatementsAndExpr\",Pl)}function Va(){Wa(),Y()}function $a(){Vl.startNonterminal(\"StatementsAndOptionalExpr\",Pl),za(),Hl!=25&&Hl!=282&&(Nl(),G()),Vl.endNonterminal(\"StatementsAndOptionalExpr\",Pl)}function Ja(){Wa(),Hl!=25&&Hl!=282&&Y()}function Ka(){Vl.startNonterminal(\"Statement\",Pl);switch(Hl){case 132:Ll(189);break;case 137:Ll(196);break;case 174:Ll(193);break;case 250:Ll(190);break;case 262:Ll(187);break;case 276:Ll(277);break;case 31:case 32:Ll(255);break;case 86:case 102:Ll(188);break;case 152:case 243:case 253:case 267:Ll(185);break;default:_l=Hl}if(_l==2836||_l==3103||_l==3104||_l==3348||_l==4372||_l==4884||_l==5396||_l==5908||_l==16148||_l==16660||_l==17675||_l==17684||_l==18196||_l==20756||_l==21780||_l==22804||_l==23316||_l==23828||_l==24340||_l==27412||_l==27924||_l==28436||_l==30484||_l==34068||_l==35092||_l==35871||_l==35872||_l==36116||_l==36895||_l==36896||_l==37140||_l==37407||_l==37408||_l==37652||_l==37919||_l==37920||_l==38164||_l==38431||_l==38432||_l==38676||_l==39455||_l==39456||_l==39700||_l==39967||_l==39968||_l==40212||_l==40479||_l==40480||_l==40724||_l==40991||_l==40992||_l==41236||_l==41503||_l==41504||_l==41748||_l==42015||_l==42016||_l==42260||_l==42527||_l==42528||_l==42772||_l==43039||_l==43040||_l==43284||_l==43551||_l==43552||_l==43796||_l==44063||_l==44064||_l==44308||_l==45087||_l==45088||_l==45332||_l==45599||_l==45600||_l==45844||_l==46111||_l==46112||_l==46356||_l==46623||_l==46624||_l==46868||_l==47647||_l==47648||_l==47892||_l==48159||_l==48160||_l==48404||_l==49183||_l==49184||_l==49428||_l==49695||_l==49696||_l==49940||_l==50207||_l==50208||_l==50452||_l==51743||_l==51744||_l==51988||_l==52255||_l==52256||_l==52500||_l==52767||_l==52768||_l==53012||_l==53279||_l==53280||_l==53524||_l==53791||_l==53792||_l==54036||_l==54303||_l==54304||_l==54548||_l==55327||_l==55328||_l==55572||_l==55839||_l==55840||_l==56084||_l==56351||_l==56352||_l==56596||_l==56863||_l==56864||_l==57108||_l==57375||_l==57376||_l==57620||_l==57887||_l==57888||_l==58132||_l==60447||_l==60448||_l==60692||_l==60959||_l==60960||_l==61204||_l==61471||_l==61472||_l==61716||_l==61983||_l==61984||_l==62228||_l==62495||_l==62496||_l==62740||_l==63007||_l==63008||_l==63252||_l==63519||_l==63520||_l==63764||_l==64031||_l==64032||_l==64276||_l==64543||_l==64544||_l==64788||_l==65567||_l==65568||_l==65812||_l==66079||_l==66080||_l==66324||_l==67103||_l==67104||_l==67348||_l==67615||_l==67616||_l==67860||_l==68127||_l==68128||_l==68372||_l==68639||_l==68640||_l==68884||_l==69151||_l==69152||_l==69396||_l==69663||_l==69664||_l==69908||_l==70175||_l==70176||_l==70420||_l==72223||_l==72224||_l==72468||_l==74271||_l==74272||_l==74516||_l==74783||_l==74784||_l==75028||_l==75807||_l==75808||_l==76052||_l==76831||_l==76832||_l==77076||_l==77343||_l==77344||_l==77588||_l==77855||_l==77856||_l==78100||_l==78367||_l==78368||_l==78612||_l==78879||_l==78880||_l==79124||_l==79391||_l==79392||_l==79636||_l==81439||_l==81440||_l==81684||_l==81951||_l==81952||_l==82196||_l==82463||_l==82464||_l==82708||_l==82975||_l==82976||_l==83220||_l==83487||_l==83488||_l==83732||_l==83999||_l==84e3||_l==84244||_l==84511||_l==84512||_l==84756||_l==85023||_l==85024||_l==85268||_l==85535||_l==85536||_l==85780||_l==87071||_l==87072||_l==87316||_l==87583||_l==87584||_l==87828||_l==88095||_l==88096||_l==88340||_l==89119||_l==89120||_l==89364||_l==90143||_l==90144||_l==90388||_l==91167||_l==91168||_l==91412||_l==92191||_l==92192||_l==92436||_l==92703||_l==92704||_l==92948||_l==93215||_l==93216||_l==93460||_l==94239||_l==94240||_l==94484||_l==94751||_l==94752||_l==94996||_l==95263||_l==95264||_l==95508||_l==97823||_l==97824||_l==98068||_l==98335||_l==98336||_l==98580||_l==99359||_l==99360||_l==99604||_l==101407||_l==101408||_l==101652||_l==101919||_l==101920||_l==102164||_l==102431||_l==102432||_l==102676||_l==102943||_l==102944||_l==103188||_l==103455||_l==103456||_l==103700||_l==103967||_l==103968||_l==104212||_l==105503||_l==105504||_l==105748||_l==108575||_l==108576||_l==108820||_l==109087||_l==109088||_l==109332||_l==110623||_l==110624||_l==110868||_l==111647||_l==111648||_l==111892||_l==112159||_l==112160||_l==112404||_l==112671||_l==112672||_l==112916||_l==113183||_l==113184||_l==113428||_l==113695||_l==113696||_l==113940||_l==114719||_l==114720||_l==114964||_l==115231||_l==115232||_l==115476||_l==115743||_l==115744||_l==115988||_l==116255||_l==116256||_l==116500||_l==116767||_l==116768||_l==117012||_l==117279||_l==117280||_l==117524||_l==119839||_l==119840||_l==120084||_l==120351||_l==120352||_l==120596||_l==120863||_l==120864||_l==121108||_l==121375||_l==121376||_l==121620||_l==122911||_l==122912||_l==123156||_l==123935||_l==123936||_l==124180||_l==124447||_l==124448||_l==124692||_l==124959||_l==124960||_l==125204||_l==127007||_l==127008||_l==127252||_l==127519||_l==127520||_l==127764||_l==128031||_l==128032||_l==128276||_l==128543||_l==128544||_l==128788||_l==129055||_l==129056||_l==129300||_l==129567||_l==129568||_l==129812||_l==130079||_l==130080||_l==130324||_l==131103||_l==131104||_l==131348||_l==131615||_l==131616||_l==131860||_l==133151||_l==133152||_l==133396||_l==133663||_l==133664||_l==133908||_l==134175||_l==134176||_l==134420||_l==134687||_l==134688||_l==134932||_l==136223||_l==136224||_l==136468||_l==136735||_l==136736||_l==136980||_l==138271||_l==138272||_l==138516||_l==140319||_l==140320||_l==140564||_l==141588||_l==142612||_l==144660){_l=Kl(7,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Ya(),_l=-1}catch(a){try{Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),ef(),_l=-2}catch(f){try{Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),nf(),_l=-3}catch(l){try{Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),kf(),_l=-12}catch(c){_l=-13}}}}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(7,Pl,_l)}}switch(_l){case-2:Za();break;case-3:tf();break;case 90198:rf();break;case 90214:of();break;case 113284:af();break;case 16009:case 16046:case 116910:case 119945:case 128649:lf();break;case 17560:df();break;case 17651:mf();break;case 141562:wf();break;case 17661:Sf();break;case-12:case 16134:Cf();break;case-13:Lf();break;case 53:Of();break;default:Ga()}Vl.endNonterminal(\"Statement\",Pl)}function Qa(){switch(Hl){case 132:Ll(189);break;case 137:Ll(196);break;case 174:Ll(193);break;case 250:Ll(190);break;case 262:Ll(187);break;case 276:Ll(277);break;case 31:case 32:Ll(255);break;case 86:case 102:Ll(188);break;case 152:case 243:case 253:case 267:Ll(185);break;default:_l=Hl}if(_l==2836||_l==3103||_l==3104||_l==3348||_l==4372||_l==4884||_l==5396||_l==5908||_l==16148||_l==16660||_l==17675||_l==17684||_l==18196||_l==20756||_l==21780||_l==22804||_l==23316||_l==23828||_l==24340||_l==27412||_l==27924||_l==28436||_l==30484||_l==34068||_l==35092||_l==35871||_l==35872||_l==36116||_l==36895||_l==36896||_l==37140||_l==37407||_l==37408||_l==37652||_l==37919||_l==37920||_l==38164||_l==38431||_l==38432||_l==38676||_l==39455||_l==39456||_l==39700||_l==39967||_l==39968||_l==40212||_l==40479||_l==40480||_l==40724||_l==40991||_l==40992||_l==41236||_l==41503||_l==41504||_l==41748||_l==42015||_l==42016||_l==42260||_l==42527||_l==42528||_l==42772||_l==43039||_l==43040||_l==43284||_l==43551||_l==43552||_l==43796||_l==44063||_l==44064||_l==44308||_l==45087||_l==45088||_l==45332||_l==45599||_l==45600||_l==45844||_l==46111||_l==46112||_l==46356||_l==46623||_l==46624||_l==46868||_l==47647||_l==47648||_l==47892||_l==48159||_l==48160||_l==48404||_l==49183||_l==49184||_l==49428||_l==49695||_l==49696||_l==49940||_l==50207||_l==50208||_l==50452||_l==51743||_l==51744||_l==51988||_l==52255||_l==52256||_l==52500||_l==52767||_l==52768||_l==53012||_l==53279||_l==53280||_l==53524||_l==53791||_l==53792||_l==54036||_l==54303||_l==54304||_l==54548||_l==55327||_l==55328||_l==55572||_l==55839||_l==55840||_l==56084||_l==56351||_l==56352||_l==56596||_l==56863||_l==56864||_l==57108||_l==57375||_l==57376||_l==57620||_l==57887||_l==57888||_l==58132||_l==60447||_l==60448||_l==60692||_l==60959||_l==60960||_l==61204||_l==61471||_l==61472||_l==61716||_l==61983||_l==61984||_l==62228||_l==62495||_l==62496||_l==62740||_l==63007||_l==63008||_l==63252||_l==63519||_l==63520||_l==63764||_l==64031||_l==64032||_l==64276||_l==64543||_l==64544||_l==64788||_l==65567||_l==65568||_l==65812||_l==66079||_l==66080||_l==66324||_l==67103||_l==67104||_l==67348||_l==67615||_l==67616||_l==67860||_l==68127||_l==68128||_l==68372||_l==68639||_l==68640||_l==68884||_l==69151||_l==69152||_l==69396||_l==69663||_l==69664||_l==69908||_l==70175||_l==70176||_l==70420||_l==72223||_l==72224||_l==72468||_l==74271||_l==74272||_l==74516||_l==74783||_l==74784||_l==75028||_l==75807||_l==75808||_l==76052||_l==76831||_l==76832||_l==77076||_l==77343||_l==77344||_l==77588||_l==77855||_l==77856||_l==78100||_l==78367||_l==78368||_l==78612||_l==78879||_l==78880||_l==79124||_l==79391||_l==79392||_l==79636||_l==81439||_l==81440||_l==81684||_l==81951||_l==81952||_l==82196||_l==82463||_l==82464||_l==82708||_l==82975||_l==82976||_l==83220||_l==83487||_l==83488||_l==83732||_l==83999||_l==84e3||_l==84244||_l==84511||_l==84512||_l==84756||_l==85023||_l==85024||_l==85268||_l==85535||_l==85536||_l==85780||_l==87071||_l==87072||_l==87316||_l==87583||_l==87584||_l==87828||_l==88095||_l==88096||_l==88340||_l==89119||_l==89120||_l==89364||_l==90143||_l==90144||_l==90388||_l==91167||_l==91168||_l==91412||_l==92191||_l==92192||_l==92436||_l==92703||_l==92704||_l==92948||_l==93215||_l==93216||_l==93460||_l==94239||_l==94240||_l==94484||_l==94751||_l==94752||_l==94996||_l==95263||_l==95264||_l==95508||_l==97823||_l==97824||_l==98068||_l==98335||_l==98336||_l==98580||_l==99359||_l==99360||_l==99604||_l==101407||_l==101408||_l==101652||_l==101919||_l==101920||_l==102164||_l==102431||_l==102432||_l==102676||_l==102943||_l==102944||_l==103188||_l==103455||_l==103456||_l==103700||_l==103967||_l==103968||_l==104212||_l==105503||_l==105504||_l==105748||_l==108575||_l==108576||_l==108820||_l==109087||_l==109088||_l==109332||_l==110623||_l==110624||_l==110868||_l==111647||_l==111648||_l==111892||_l==112159||_l==112160||_l==112404||_l==112671||_l==112672||_l==112916||_l==113183||_l==113184||_l==113428||_l==113695||_l==113696||_l==113940||_l==114719||_l==114720||_l==114964||_l==115231||_l==115232||_l==115476||_l==115743||_l==115744||_l==115988||_l==116255||_l==116256||_l==116500||_l==116767||_l==116768||_l==117012||_l==117279||_l==117280||_l==117524||_l==119839||_l==119840||_l==120084||_l==120351||_l==120352||_l==120596||_l==120863||_l==120864||_l==121108||_l==121375||_l==121376||_l==121620||_l==122911||_l==122912||_l==123156||_l==123935||_l==123936||_l==124180||_l==124447||_l==124448||_l==124692||_l==124959||_l==124960||_l==125204||_l==127007||_l==127008||_l==127252||_l==127519||_l==127520||_l==127764||_l==128031||_l==128032||_l==128276||_l==128543||_l==128544||_l==128788||_l==129055||_l==129056||_l==129300||_l==129567||_l==129568||_l==129812||_l==130079||_l==130080||_l==130324||_l==131103||_l==131104||_l==131348||_l==131615||_l==131616||_l==131860||_l==133151||_l==133152||_l==133396||_l==133663||_l==133664||_l==133908||_l==134175||_l==134176||_l==134420||_l==134687||_l==134688||_l==134932||_l==136223||_l==136224||_l==136468||_l==136735||_l==136736||_l==136980||_l==138271||_l==138272||_l==138516||_l==140319||_l==140320||_l==140564||_l==141588||_l==142612||_l==144660){_l=Kl(7,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Ya(),Jl(7,t,-1),_l=-15}catch(a){try{Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),ef(),Jl(7,t,-2),_l=-15}catch(f){try{Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),nf(),Jl(7,t,-3),_l=-15}catch(l){try{Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),kf(),Jl(7,t,-12),_l=-15}catch(c){_l=-13,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(7,t,-13)}}}}}}switch(_l){case-2:ef();break;case-3:nf();break;case 90198:sf();break;case 90214:uf();break;case 113284:ff();break;case 16009:case 16046:case 116910:case 119945:case 128649:cf();break;case 17560:vf();break;case 17651:gf();break;case 141562:Ef();break;case 17661:xf();break;case-12:case 16134:kf();break;case-13:Af();break;case 53:Mf();break;case-15:break;default:Ya()}}function Ga(){Vl.startNonterminal(\"ApplyStatement\",Pl),Pf(),Sl(53),Vl.endNonterminal(\"ApplyStatement\",Pl)}function Ya(){Hf(),xl(53)}function Za(){Vl.startNonterminal(\"AssignStatement\",Pl),Sl(31),kl(255),Nl(),hi(),kl(27),Sl(52),kl(267),Nl(),_f(),Sl(53),Vl.endNonterminal(\"AssignStatement\",Pl)}function ef(){xl(31),kl(255),pi(),kl(27),xl(52),kl(267),Df(),xl(53)}function tf(){Vl.startNonterminal(\"BlockStatement\",Pl),Sl(276),kl(277),Nl(),za(),Sl(282),Vl.endNonterminal(\"BlockStatement\",Pl)}function nf(){xl(276),kl(277),Wa(),xl(282)}function rf(){Vl.startNonterminal(\"BreakStatement\",Pl),Sl(86),kl(59),Sl(176),kl(28),Sl(53),Vl.endNonterminal(\"BreakStatement\",Pl)}function sf(){xl(86),kl(59),xl(176),kl(28),xl(53)}function of(){Vl.startNonterminal(\"ContinueStatement\",Pl),Sl(102),kl(59),Sl(176),kl(28),Sl(53),Vl.endNonterminal(\"ContinueStatement\",Pl)}function uf(){xl(102),kl(59),xl(176),kl(28),xl(53)}function af(){Vl.startNonterminal(\"ExitStatement\",Pl),Sl(132),kl(71),Sl(221),kl(267),Nl(),_f(),Sl(53),Vl.endNonterminal(\"ExitStatement\",Pl)}function ff(){xl(132),kl(71),xl(221),kl(267),Df(),xl(53)}function lf(){Vl.startNonterminal(\"FLWORStatement\",Pl),tt();for(;;){kl(173);if(Hl==220)break;Nl(),rt()}Nl(),hf(),Vl.endNonterminal(\"FLWORStatement\",Pl)}function cf(){nt();for(;;){kl(173);if(Hl==220)break;it()}pf()}function hf(){Vl.startNonterminal(\"ReturnStatement\",Pl),Sl(220),kl(270),Nl(),Ka(),Vl.endNonterminal(\"ReturnStatement\",Pl)}function pf(){xl(220),kl(270),Qa()}function df(){Vl.startNonterminal(\"IfStatement\",Pl),Sl(152),kl(22),Sl(34),kl(267),Nl(),G(),Sl(37),kl(77),Sl(245),kl(270),Nl(),Ka(),kl(48),Sl(122),kl(270),Nl(),Ka(),Vl.endNonterminal(\"IfStatement\",Pl)}function vf(){xl(152),kl(22),xl(34),kl(267),Y(),xl(37),kl(77),xl(245),kl(270),Qa(),kl(48),xl(122),kl(270),Qa()}function mf(){Vl.startNonterminal(\"SwitchStatement\",Pl),Sl(243),kl(22),Sl(34),kl(267),Nl(),G(),Sl(37);for(;;){kl(35),Nl(),yf(),kl(113);if(Hl!=88)break}Sl(109),kl(70),Sl(220),kl(270),Nl(),Ka(),Vl.endNonterminal(\"SwitchStatement\",Pl)}function gf(){xl(243),kl(22),xl(34),kl(267),Y(),xl(37);for(;;){kl(35),bf(),kl(113);if(Hl!=88)break}xl(109),kl(70),xl(220),kl(270),Qa()}function yf(){Vl.startNonterminal(\"SwitchCaseStatement\",Pl);for(;;){Sl(88),kl(267),Nl(),dn();if(Hl!=88)break}Sl(220),kl(270),Nl(),Ka(),Vl.endNonterminal(\"SwitchCaseStatement\",Pl)}function bf(){for(;;){xl(88),kl(267),vn();if(Hl!=88)break}xl(220),kl(270),Qa()}function wf(){Vl.startNonterminal(\"TryCatchStatement\",Pl),Sl(250),kl(87),Nl(),tf();for(;;){kl(36),Sl(91),kl(257),Nl(),_n(),Nl(),tf(),kl(278);switch(Hl){case 91:Ll(279);break;default:_l=Hl}if(_l==38491||_l==45659||_l==46171||_l==60507||_l==65627||_l==67163||_l==74843||_l==76891||_l==77403||_l==82011||_l==83035||_l==84059||_l==88155||_l==91227||_l==92251||_l==95323||_l==102491||_l==127067||_l==127579||_l==130139){_l=Kl(8,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{kl(36),xl(91),kl(257),Dn(),nf(),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(8,Pl,_l)}}if(_l!=-1&&_l!=2651&&_l!=3163&&_l!=35931&&_l!=36955&&_l!=37467&&_l!=37979&&_l!=39515&&_l!=40027&&_l!=40539&&_l!=41051&&_l!=41563&&_l!=42075&&_l!=42587&&_l!=43099&&_l!=43611&&_l!=44123&&_l!=45147&&_l!=46683&&_l!=47707&&_l!=48219&&_l!=49243&&_l!=49755&&_l!=50267&&_l!=51803&&_l!=52315&&_l!=52827&&_l!=53339&&_l!=53851&&_l!=54363&&_l!=55387&&_l!=55899&&_l!=56411&&_l!=56923&&_l!=57435&&_l!=57947&&_l!=61019&&_l!=61531&&_l!=62043&&_l!=62555&&_l!=63067&&_l!=63579&&_l!=64091&&_l!=64603&&_l!=66139&&_l!=67675&&_l!=68187&&_l!=68699&&_l!=69211&&_l!=69723&&_l!=70235&&_l!=72283&&_l!=74331&&_l!=75867&&_l!=77915&&_l!=78427&&_l!=78939&&_l!=79451&&_l!=81499&&_l!=82523&&_l!=83547&&_l!=84571&&_l!=85083&&_l!=85595&&_l!=87131&&_l!=87643&&_l!=89179&&_l!=90203&&_l!=92763&&_l!=93275&&_l!=94299&&_l!=94811&&_l!=97883&&_l!=98395&&_l!=99419&&_l!=101467&&_l!=101979&&_l!=103003&&_l!=103515&&_l!=104027&&_l!=105563&&_l!=108635&&_l!=109147&&_l!=110683&&_l!=111707&&_l!=112219&&_l!=112731&&_l!=113243&&_l!=113755&&_l!=114779&&_l!=115291&&_l!=115803&&_l!=116315&&_l!=116827&&_l!=117339&&_l!=119899&&_l!=120411&&_l!=120923&&_l!=121435&&_l!=122971&&_l!=123995&&_l!=124507&&_l!=125019&&_l!=128091&&_l!=128603&&_l!=129115&&_l!=129627&&_l!=131163&&_l!=131675&&_l!=133211&&_l!=133723&&_l!=134235&&_l!=134747&&_l!=136283&&_l!=136795&&_l!=138331&&_l!=140379)break}Vl.endNonterminal(\"TryCatchStatement\",Pl)}function Ef(){xl(250),kl(87),nf(),kl(36),xl(91),kl(257),Dn(),nf();for(;;){kl(278);switch(Hl){case 91:Ll(279);break;default:_l=Hl}if(_l==38491||_l==45659||_l==46171||_l==60507||_l==65627||_l==67163||_l==74843||_l==76891||_l==77403||_l==82011||_l==83035||_l==84059||_l==88155||_l==91227||_l==92251||_l==95323||_l==102491||_l==127067||_l==127579||_l==130139){_l=Kl(8,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{kl(36),xl(91),kl(257),Dn(),nf(),Jl(8,t,-1);continue}catch(a){Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(8,t,-2);break}}}if(_l!=-1&&_l!=2651&&_l!=3163&&_l!=35931&&_l!=36955&&_l!=37467&&_l!=37979&&_l!=39515&&_l!=40027&&_l!=40539&&_l!=41051&&_l!=41563&&_l!=42075&&_l!=42587&&_l!=43099&&_l!=43611&&_l!=44123&&_l!=45147&&_l!=46683&&_l!=47707&&_l!=48219&&_l!=49243&&_l!=49755&&_l!=50267&&_l!=51803&&_l!=52315&&_l!=52827&&_l!=53339&&_l!=53851&&_l!=54363&&_l!=55387&&_l!=55899&&_l!=56411&&_l!=56923&&_l!=57435&&_l!=57947&&_l!=61019&&_l!=61531&&_l!=62043&&_l!=62555&&_l!=63067&&_l!=63579&&_l!=64091&&_l!=64603&&_l!=66139&&_l!=67675&&_l!=68187&&_l!=68699&&_l!=69211&&_l!=69723&&_l!=70235&&_l!=72283&&_l!=74331&&_l!=75867&&_l!=77915&&_l!=78427&&_l!=78939&&_l!=79451&&_l!=81499&&_l!=82523&&_l!=83547&&_l!=84571&&_l!=85083&&_l!=85595&&_l!=87131&&_l!=87643&&_l!=89179&&_l!=90203&&_l!=92763&&_l!=93275&&_l!=94299&&_l!=94811&&_l!=97883&&_l!=98395&&_l!=99419&&_l!=101467&&_l!=101979&&_l!=103003&&_l!=103515&&_l!=104027&&_l!=105563&&_l!=108635&&_l!=109147&&_l!=110683&&_l!=111707&&_l!=112219&&_l!=112731&&_l!=113243&&_l!=113755&&_l!=114779&&_l!=115291&&_l!=115803&&_l!=116315&&_l!=116827&&_l!=117339&&_l!=119899&&_l!=120411&&_l!=120923&&_l!=121435&&_l!=122971&&_l!=123995&&_l!=124507&&_l!=125019&&_l!=128091&&_l!=128603&&_l!=129115&&_l!=129627&&_l!=131163&&_l!=131675&&_l!=133211&&_l!=133723&&_l!=134235&&_l!=134747&&_l!=136283&&_l!=136795&&_l!=138331&&_l!=140379)break;kl(36),xl(91),kl(257),Dn(),nf()}}function Sf(){Vl.startNonterminal(\"TypeswitchStatement\",Pl),Sl(253),kl(22),Sl(34),kl(267),Nl(),G(),Sl(37);for(;;){kl(35),Nl(),Tf(),kl(113);if(Hl!=88)break}Sl(109),kl(95),Hl==31&&(Sl(31),kl(255),Nl(),hi()),kl(70),Sl(220),kl(270),Nl(),Ka(),Vl.endNonterminal(\"TypeswitchStatement\",Pl)}function xf(){xl(253),kl(22),xl(34),kl(267),Y(),xl(37);for(;;){kl(35),Nf(),kl(113);if(Hl!=88)break}xl(109),kl(95),Hl==31&&(xl(31),kl(255),pi()),kl(70),xl(220),kl(270),Qa()}function Tf(){Vl.startNonterminal(\"CaseStatement\",Pl),Sl(88),kl(262),Hl==31&&(Sl(31),kl(255),Nl(),hi(),kl(30),Sl(79)),kl(260),Nl(),ms(),kl(70),Sl(220),kl(270),Nl(),Ka(),Vl.endNonterminal(\"CaseStatement\",Pl)}function Nf(){xl(88),kl(262),Hl==31&&(xl(31),kl(255),pi(),kl(30),xl(79)),kl(260),gs(),kl(70),xl(220),kl(270),Qa()}function Cf(){Vl.startNonterminal(\"VarDeclStatement\",Pl);for(;;){kl(98);if(Hl!=32)break;Nl(),B()}Sl(262),kl(21),Sl(31),kl(255),Nl(),hi(),kl(157),Hl==79&&(Nl(),ds()),kl(145),Hl==52&&(Sl(52),kl(267),Nl(),_f());for(;;){if(Hl!=41)break;Sl(41),kl(21),Sl(31),kl(255),Nl(),hi(),kl(157),Hl==79&&(Nl(),ds()),kl(145),Hl==52&&(Sl(52),kl(267),Nl(),_f())}Sl(53),Vl.endNonterminal(\"VarDeclStatement\",Pl)}function kf(){for(;;){kl(98);if(Hl!=32)break;j()}xl(262),kl(21),xl(31),kl(255),pi(),kl(157),Hl==79&&vs(),kl(145),Hl==52&&(xl(52),kl(267),Df());for(;;){if(Hl!=41)break;xl(41),kl(21),xl(31),kl(255),pi(),kl(157),Hl==79&&vs(),kl(145),Hl==52&&(xl(52),kl(267),Df())}xl(53)}function Lf(){Vl.startNonterminal(\"WhileStatement\",Pl),Sl(267),kl(22),Sl(34),kl(267),Nl(),G(),Sl(37),kl(270),Nl(),Ka(),Vl.endNonterminal(\"WhileStatement\",Pl)}function Af(){xl(267),kl(22),xl(34),kl(267),Y(),xl(37),kl(270),Qa()}function Of(){Vl.startNonterminal(\"VoidStatement\",Pl),Sl(53),Vl.endNonterminal(\"VoidStatement\",Pl)}function Mf(){xl(53)}function _f(){Vl.startNonterminal(\"ExprSingle\",Pl);switch(Hl){case 137:Ll(236);break;case 174:Ll(233);break;case 250:Ll(232);break;case 152:case 243:case 253:Ll(229);break;default:_l=Hl}switch(_l){case 16009:case 16046:case 116910:case 119945:case 128649:Z();break;case 17560:Sn();break;case 17651:ln();break;case 141562:Tn();break;case 17661:mn();break;default:Pf()}Vl.endNonterminal(\"ExprSingle\",Pl)}function Df(){switch(Hl){case 137:Ll(236);break;case 174:Ll(233);break;case 250:Ll(232);break;case 152:case 243:case 253:Ll(229);break;default:_l=Hl}switch(_l){case 16009:case 16046:case 116910:case 119945:case 128649:et();break;case 17560:xn();break;case 17651:cn();break;case 141562:Nn();break;case 17661:gn();break;default:Hf()}}function Pf(){Vl.startNonterminal(\"ExprSimple\",Pl);switch(Hl){case 77:Ll(231);break;case 218:Ll(234);break;case 219:Ll(235);break;case 110:case 159:Ll(237);break;case 103:case 129:case 235:Ll(230);break;default:_l=Hl}if(_l==133851){_l=Kl(9,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Ho(),_l=-6}catch(a){_l=-11}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(9,Pl,_l)}}switch(_l){case 16001:case 16107:on();break;case 97951:case 98463:Oo();break;case 97902:case 98414:_o();break;case 98010:Bo();break;case-6:case 98011:Po();break;case 15975:Wo();break;case 85102:Bf();break;case 85151:Ff();break;case 85210:qf();break;case-11:Uf();break;case 85069:Wf();break;default:Pn()}Vl.endNonterminal(\"ExprSimple\",Pl)}function Hf(){switch(Hl){case 77:Ll(231);break;case 218:Ll(234);break;case 219:Ll(235);break;case 110:case 159:Ll(237);break;case 103:case 129:case 235:Ll(230);break;default:_l=Hl}if(_l==133851){_l=Kl(9,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Ho(),Jl(9,t,-6),_l=-13}catch(a){_l=-11,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(9,t,-11)}}}switch(_l){case 16001:case 16107:un();break;case 97951:case 98463:Mo();break;case 97902:case 98414:Do();break;case 98010:jo();break;case-6:case 98011:Ho();break;case 15975:Xo();break;case 85102:jf();break;case 85151:If();break;case 85210:Rf();break;case-11:zf();break;case 85069:Xf();break;case-13:break;default:Hn()}}function Bf(){Vl.startNonterminal(\"JSONDeleteExpr\",Pl),Sl(110),kl(56),Sl(166),kl(264),Nl(),Yr(),Vl.endNonterminal(\"JSONDeleteExpr\",Pl)}function jf(){xl(110),kl(56),xl(166),kl(264),Zr()}function Ff(){Vl.startNonterminal(\"JSONInsertExpr\",Pl);switch(Hl){case 159:Ll(56);break;default:_l=Hl}_l=Kl(10,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{xl(159),kl(56),xl(166),kl(267),Df(),xl(163),kl(267),Df();switch(Hl){case 81:Ll(69);break;default:_l=Hl}if(_l==108113){_l=Kl(11,Pl);if(_l==0){var a=Dl,f=Pl,l=Hl,c=Bl,h=jl,p=Fl,d=Il,v=ql;try{xl(81),kl(69),xl(211),kl(267),Df(),Jl(11,f,-1)}catch(m){Dl=a,Pl=f,Hl=l,Hl==0?Zl=f:(Bl=c,jl=h,Fl=p,Fl==0?Zl=h:(Il=d,ql=v,Zl=v)),Jl(11,f,-2)}_l=-2}}_l==-1&&(xl(81),kl(69),xl(211),kl(267),Df()),_l=-1}catch(g){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(10,Pl,_l)}switch(_l){case-1:Sl(159),kl(56),Sl(166),kl(267),Nl(),_f(),Sl(163),kl(267),Nl(),_f();switch(Hl){case 81:Ll(69);break;default:_l=Hl}if(_l==108113){_l=Kl(11,Pl);if(_l==0){var a=Dl,f=Pl,l=Hl,c=Bl,h=jl,p=Fl,d=Il,v=ql;try{xl(81),kl(69),xl(211),kl(267),Df(),_l=-1}catch(m){_l=-2}Dl=a,Pl=f,Hl=l,Hl==0?Zl=f:(Bl=c,jl=h,Fl=p,Fl==0?Zl=h:(Il=d,ql=v,Zl=v)),Jl(11,Pl,_l)}}_l==-1&&(Sl(81),kl(69),Sl(211),kl(267),Nl(),_f());break;default:Sl(159),kl(56),Sl(166),kl(267),Nl(),hl(),Sl(163),kl(267),Nl(),_f()}Vl.endNonterminal(\"JSONInsertExpr\",Pl)}function If(){switch(Hl){case 159:Ll(56);break;default:_l=Hl}_l=Kl(10,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{xl(159),kl(56),xl(166),kl(267),Df(),xl(163),kl(267),Df();switch(Hl){case 81:Ll(69);break;default:_l=Hl}if(_l==108113){_l=Kl(11,Pl);if(_l==0){var a=Dl,f=Pl,l=Hl,c=Bl,h=jl,p=Fl,d=Il,v=ql;try{xl(81),kl(69),xl(211),kl(267),Df(),Jl(11,f,-1)}catch(m){Dl=a,Pl=f,Hl=l,Hl==0?Zl=f:(Bl=c,jl=h,Fl=p,Fl==0?Zl=h:(Il=d,ql=v,Zl=v)),Jl(11,f,-2)}_l=-2}}_l==-1&&(xl(81),kl(69),xl(211),kl(267),Df()),Jl(10,t,-1),_l=-3}catch(g){_l=-2,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(10,t,-2)}}switch(_l){case-1:xl(159),kl(56),xl(166),kl(267),Df(),xl(163),kl(267),Df();switch(Hl){case 81:Ll(69);break;default:_l=Hl}if(_l==108113){_l=Kl(11,Pl);if(_l==0){var a=Dl,f=Pl,l=Hl,c=Bl,h=jl,p=Fl,d=Il,v=ql;try{xl(81),kl(69),xl(211),kl(267),Df(),Jl(11,f,-1)}catch(m){Dl=a,Pl=f,Hl=l,Hl==0?Zl=f:(Bl=c,jl=h,Fl=p,Fl==0?Zl=h:(Il=d,ql=v,Zl=v)),Jl(11,f,-2)}_l=-2}}_l==-1&&(xl(81),kl(69),xl(211),kl(267),Df());break;case-3:break;default:xl(159),kl(56),xl(166),kl(267),pl(),xl(163),kl(267),Df()}}function qf(){Vl.startNonterminal(\"JSONRenameExpr\",Pl),Sl(218),kl(56),Sl(166),kl(264),Nl(),Yr(),Sl(79),kl(267),Nl(),_f(),Vl.endNonterminal(\"JSONRenameExpr\",Pl)}function Rf(){xl(218),kl(56),xl(166),kl(264),Zr(),xl(79),kl(267),Df()}function Uf(){Vl.startNonterminal(\"JSONReplaceExpr\",Pl),Sl(219),kl(82),Sl(261),kl(64),Sl(196),kl(56),Sl(166),kl(264),Nl(),Yr(),Sl(270),kl(267),Nl(),_f(),Vl.endNonterminal(\"JSONReplaceExpr\",Pl)}function zf(){xl(219),kl(82),xl(261),kl(64),xl(196),kl(56),xl(166),kl(264),Zr(),xl(270),kl(267),Df()}function Wf(){Vl.startNonterminal(\"JSONAppendExpr\",Pl),Sl(77),kl(56),Sl(166),kl(267),Nl(),_f(),Sl(163),kl(267),Nl(),_f(),Vl.endNonterminal(\"JSONAppendExpr\",Pl)}function Xf(){xl(77),kl(56),xl(166),kl(267),Df(),xl(163),kl(267),Df()}function Vf(){Vl.startNonterminal(\"CommonContent\",Pl);switch(Hl){case 12:Sl(12);break;case 23:Sl(23);break;case 277:Sl(277);break;case 283:Sl(283);break;default:yl()}Vl.endNonterminal(\"CommonContent\",Pl)}function $f(){switch(Hl){case 12:xl(12);break;case 23:xl(23);break;case 277:xl(277);break;case 283:xl(283);break;default:bl()}}function Jf(){Vl.startNonterminal(\"ContentExpr\",Pl),Xa(),Vl.endNonterminal(\"ContentExpr\",Pl)}function Kf(){Va()}function Qf(){Vl.startNonterminal(\"CompDocConstructor\",Pl),Sl(119),kl(87),Nl(),yl(),Vl.endNonterminal(\"CompDocConstructor\",Pl)}function Gf(){xl(119),kl(87),bl()}function Yf(){Vl.startNonterminal(\"CompAttrConstructor\",Pl),Sl(82),kl(258);switch(Hl){case 276:Sl(276),kl(267),Nl(),G(),Sl(282);break;default:Nl(),Ha()}kl(87);switch(Hl){case 276:Ll(277);break;default:_l=Hl}if(_l==144660){_l=Kl(12,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{xl(276),kl(88),xl(282),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(12,Pl,_l)}}switch(_l){case-1:Sl(276),kl(88),Sl(282);break;default:Nl(),yl()}Vl.endNonterminal(\"CompAttrConstructor\",Pl)}function Zf(){xl(82),kl(258);switch(Hl){case 276:xl(276),kl(267),Y(),xl(282);break;default:Ba()}kl(87);switch(Hl){case 276:Ll(277);break;default:_l=Hl}if(_l==144660){_l=Kl(12,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{xl(276),kl(88),xl(282),Jl(12,t,-1),_l=-3}catch(a){_l=-2,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(12,t,-2)}}}switch(_l){case-1:xl(276),kl(88),xl(282);break;case-3:break;default:bl()}}function el(){Vl.startNonterminal(\"CompPIConstructor\",Pl),Sl(216),kl(251);switch(Hl){case 276:Sl(276),kl(267),Nl(),G(),Sl(282);break;default:Nl(),Ia()}kl(87);switch(Hl){case 276:Ll(277);break;default:_l=Hl}if(_l==144660){_l=Kl(13,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{xl(276),kl(88),xl(282),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(13,Pl,_l)}}switch(_l){case-1:Sl(276),kl(88),Sl(282);break;default:Nl(),yl()}Vl.endNonterminal(\"CompPIConstructor\",Pl)}function tl(){xl(216),kl(251);switch(Hl){case 276:xl(276),kl(267),Y(),xl(282);break;default:qa()}kl(87);switch(Hl){case 276:Ll(277);break;default:_l=Hl}if(_l==144660){_l=Kl(13,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{xl(276),kl(88),xl(282),Jl(13,t,-1),_l=-3}catch(a){_l=-2,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(13,t,-2)}}}switch(_l){case-1:xl(276),kl(88),xl(282);break;case-3:break;default:bl()}}function nl(){Vl.startNonterminal(\"CompCommentConstructor\",Pl),Sl(96),kl(87),Nl(),yl(),Vl.endNonterminal(\"CompCommentConstructor\",Pl)}function rl(){xl(96),kl(87),bl()}function il(){Vl.startNonterminal(\"CompTextConstructor\",Pl),Sl(244),kl(87),Nl(),yl(),Vl.endNonterminal(\"CompTextConstructor\",Pl)}function sl(){xl(244),kl(87),bl()}function ol(){Vl.startNonterminal(\"PrimaryExpr\",Pl);switch(Hl){case 184:Ll(256);break;case 216:Ll(254);break;case 276:Ll(277);break;case 82:case 121:Ll(259);break;case 96:case 244:Ll(93);break;case 119:case 202:case 256:Ll(139);break;case 6:case 70:case 72:case 73:case 74:case 75:case 77:case 79:case 80:case 81:case 83:case 84:case 85:case 86:case 88:case 89:case 90:case 91:case 93:case 94:case 97:case 98:case 101:case 102:case 103:case 104:case 105:case 106:case 108:case 109:case 110:case 111:case 112:case 113:case 118:case 122:case 123:case 125:case 126:case 128:case 129:case 131:case 132:case 133:case 134:case 135:case 136:case 137:case 141:case 146:case 148:case 150:case 151:case 153:case 154:case 155:case 159:case 160:case 161:case 162:case 163:case 164:case 166:case 170:case 171:case 172:case 174:case 176:case 178:case 180:case 181:case 182:case 186:case 192:case 194:case 198:case 199:case 200:case 201:case 203:case 206:case 212:case 213:case 218:case 219:case 220:case 221:case 222:case 224:case 225:case 228:case 229:case 234:case 235:case 236:case 237:case 240:case 248:case 249:case 250:case 251:case 252:case 254:case 257:case 260:case 261:case 262:case 263:case 266:case 267:case 270:case 274:Ll(92);break;default:_l=Hl}if(_l==2836||_l==3348||_l==4372||_l==4884||_l==5396||_l==5908||_l==16148||_l==16660||_l==17684||_l==18196||_l==20756||_l==21780||_l==22804||_l==23316||_l==23828||_l==24340||_l==27924||_l==28436||_l==30484||_l==34068||_l==35092||_l==36116||_l==37140||_l==37652||_l==38164||_l==38676||_l==39700||_l==40212||_l==40724||_l==41236||_l==41748||_l==42260||_l==42772||_l==43284||_l==43796||_l==44308||_l==45332||_l==45844||_l==46356||_l==46868||_l==47892||_l==48404||_l==49428||_l==49940||_l==50452||_l==51988||_l==52500||_l==53012||_l==53524||_l==54036||_l==54548||_l==55572||_l==56084||_l==56596||_l==57108||_l==57620||_l==58132||_l==60692||_l==61204||_l==61716||_l==62228||_l==62740||_l==63252||_l==63764||_l==64276||_l==64788||_l==65812||_l==66324||_l==67348||_l==67860||_l==68372||_l==68884||_l==69396||_l==69908||_l==70420||_l==72468||_l==74516||_l==75028||_l==76052||_l==77076||_l==77588||_l==78100||_l==78612||_l==79124||_l==79636||_l==81684||_l==82196||_l==82708||_l==83220||_l==83732||_l==84244||_l==84756||_l==85268||_l==85780||_l==87316||_l==87828||_l==88340||_l==89364||_l==90388||_l==91412||_l==92436||_l==92948||_l==93460||_l==94484||_l==94996||_l==95508||_l==98068||_l==98580||_l==99604||_l==101652||_l==102164||_l==102676||_l==103188||_l==103700||_l==104212||_l==105748||_l==108820||_l==109332||_l==110868||_l==111892||_l==112404||_l==112916||_l==113428||_l==113940||_l==114964||_l==115476||_l==115988||_l==116500||_l==117012||_l==117524||_l==120084||_l==120596||_l==121108||_l==121620||_l==123156||_l==124180||_l==124692||_l==125204||_l==127252||_l==127764||_l==128276||_l==128788||_l==129300||_l==129812||_l==130324||_l==131348||_l==131860||_l==133396||_l==133908||_l==134420||_l==134932||_l==136468||_l==136980||_l==138516||_l==140564||_l==141588||_l==142612||_l==144660){_l=Kl(14,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{bl(),_l=-10}catch(a){_l=-11}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(14,Pl,_l)}}switch(_l){case 8:case 9:case 10:case 11:oi();break;case 31:li();break;case 34:di();break;case 44:mi();break;case 17414:case 17478:case 17480:case 17481:case 17482:case 17483:case 17485:case 17487:case 17488:case 17489:case 17491:case 17492:case 17493:case 17494:case 17496:case 17497:case 17498:case 17499:case 17501:case 17502:case 17505:case 17506:case 17509:case 17510:case 17511:case 17512:case 17513:case 17514:case 17516:case 17517:case 17518:case 17519:case 17520:case 17521:case 17526:case 17527:case 17530:case 17531:case 17533:case 17534:case 17536:case 17537:case 17539:case 17540:case 17541:case 17542:case 17543:case 17544:case 17545:case 17549:case 17554:case 17556:case 17558:case 17559:case 17561:case 17562:case 17563:case 17567:case 17568:case 17569:case 17570:case 17571:case 17572:case 17574:case 17578:case 17579:case 17580:case 17582:case 17584:case 17586:case 17588:case 17589:case 17590:case 17592:case 17594:case 17600:case 17602:case 17606:case 17607:case 17608:case 17609:case 17610:case 17611:case 17614:case 17620:case 17621:case 17626:case 17627:case 17628:case 17629:case 17630:case 17632:case 17633:case 17636:case 17637:case 17642:case 17643:case 17644:case 17645:case 17648:case 17656:case 17657:case 17658:case 17659:case 17660:case 17662:case 17664:case 17665:case 17668:case 17669:case 17670:case 17671:case 17674:case 17675:case 17678:case 17682:Si();break;case 141514:yi();break;case 141568:wi();break;case 32:case 78:case 120:case 124:case 145:case 152:case 165:case 167:case 185:case 191:case 226:case 227:case 242:case 243:case 253:case 14854:case 14918:case 14920:case 14921:case 14922:case 14923:case 14925:case 14927:case 14928:case 14929:case 14930:case 14931:case 14932:case 14933:case 14934:case 14936:case 14937:case 14938:case 14939:case 14941:case 14942:case 14944:case 14945:case 14946:case 14949:case 14950:case 14951:case 14952:case 14953:case 14954:case 14956:case 14957:case 14958:case 14959:case 14960:case 14961:case 14966:case 14967:case 14969:case 14970:case 14971:case 14973:case 14974:case 14976:case 14977:case 14979:case 14980:case 14981:case 14982:case 14983:case 14984:case 14985:case 14989:case 14994:case 14996:case 14998:case 14999:case 15001:case 15002:case 15003:case 15007:case 15008:case 15009:case 15010:case 15011:case 15012:case 15014:case 15018:case 15019:case 15020:case 15022:case 15024:case 15026:case 15028:case 15029:case 15030:case 15032:case 15034:case 15040:case 15042:case 15046:case 15047:case 15048:case 15049:case 15050:case 15051:case 15054:case 15060:case 15061:case 15064:case 15066:case 15067:case 15068:case 15069:case 15070:case 15072:case 15073:case 15076:case 15077:case 15082:case 15083:case 15084:case 15085:case 15088:case 15092:case 15096:case 15097:case 15098:case 15099:case 15100:case 15102:case 15104:case 15105:case 15108:case 15109:case 15110:case 15111:case 15114:case 15115:case 15118:case 15122:os();break;case-10:case 27412:yl();break;case-11:ll();break;case 68:ml();break;case 278:al();break;default:Li()}Vl.endNonterminal(\"PrimaryExpr\",Pl)}function ul(){switch(Hl){case 184:Ll(256);break;case 216:Ll(254);break;case 276:Ll(277);break;case 82:case 121:Ll(259);break;case 96:case 244:Ll(93);break;case 119:case 202:case 256:Ll(139);break;case 6:case 70:case 72:case 73:case 74:case 75:case 77:case 79:case 80:case 81:case 83:case 84:case 85:case 86:case 88:case 89:case 90:case 91:case 93:case 94:case 97:case 98:case 101:case 102:case 103:case 104:case 105:case 106:case 108:case 109:case 110:case 111:case 112:case 113:case 118:case 122:case 123:case 125:case 126:case 128:case 129:case 131:case 132:case 133:case 134:case 135:case 136:case 137:case 141:case 146:case 148:case 150:case 151:case 153:case 154:case 155:case 159:case 160:case 161:case 162:case 163:case 164:case 166:case 170:case 171:case 172:case 174:case 176:case 178:case 180:case 181:case 182:case 186:case 192:case 194:case 198:case 199:case 200:case 201:case 203:case 206:case 212:case 213:case 218:case 219:case 220:case 221:case 222:case 224:case 225:case 228:case 229:case 234:case 235:case 236:case 237:case 240:case 248:case 249:case 250:case 251:case 252:case 254:case 257:case 260:case 261:case 262:case 263:case 266:case 267:case 270:case 274:Ll(92);break;default:_l=Hl}if(_l==2836||_l==3348||_l==4372||_l==4884||_l==5396||_l==5908||_l==16148||_l==16660||_l==17684||_l==18196||_l==20756||_l==21780||_l==22804||_l==23316||_l==23828||_l==24340||_l==27924||_l==28436||_l==30484||_l==34068||_l==35092||_l==36116||_l==37140||_l==37652||_l==38164||_l==38676||_l==39700||_l==40212||_l==40724||_l==41236||_l==41748||_l==42260||_l==42772||_l==43284||_l==43796||_l==44308||_l==45332||_l==45844||_l==46356||_l==46868||_l==47892||_l==48404||_l==49428||_l==49940||_l==50452||_l==51988||_l==52500||_l==53012||_l==53524||_l==54036||_l==54548||_l==55572||_l==56084||_l==56596||_l==57108||_l==57620||_l==58132||_l==60692||_l==61204||_l==61716||_l==62228||_l==62740||_l==63252||_l==63764||_l==64276||_l==64788||_l==65812||_l==66324||_l==67348||_l==67860||_l==68372||_l==68884||_l==69396||_l==69908||_l==70420||_l==72468||_l==74516||_l==75028||_l==76052||_l==77076||_l==77588||_l==78100||_l==78612||_l==79124||_l==79636||_l==81684||_l==82196||_l==82708||_l==83220||_l==83732||_l==84244||_l==84756||_l==85268||_l==85780||_l==87316||_l==87828||_l==88340||_l==89364||_l==90388||_l==91412||_l==92436||_l==92948||_l==93460||_l==94484||_l==94996||_l==95508||_l==98068||_l==98580||_l==99604||_l==101652||_l==102164||_l==102676||_l==103188||_l==103700||_l==104212||_l==105748||_l==108820||_l==109332||_l==110868||_l==111892||_l==112404||_l==112916||_l==113428||_l==113940||_l==114964||_l==115476||_l==115988||_l==116500||_l==117012||_l==117524||_l==120084||_l==120596||_l==121108||_l==121620||_l==123156||_l==124180||_l==124692||_l==125204||_l==127252||_l==127764||_l==128276||_l==128788||_l==129300||_l==129812||_l==130324||_l==131348||_l==131860||_l==133396||_l==133908||_l==134420||_l==134932||_l==136468||_l==136980||_l==138516||_l==140564||_l==141588||_l==142612||_l==144660){_l=Kl(14,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{bl(),Jl(14,t,-10),_l=-14}catch(a){_l=-11,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(14,t,-11)}}}switch(_l){case 8:case 9:case 10:case 11:ui();break;case 31:ci();break;case 34:vi();break;case 44:gi();break;case 17414:case 17478:case 17480:case 17481:case 17482:case 17483:case 17485:case 17487:case 17488:case 17489:case 17491:case 17492:case 17493:case 17494:case 17496:case 17497:case 17498:case 17499:case 17501:case 17502:case 17505:case 17506:case 17509:case 17510:case 17511:case 17512:case 17513:case 17514:case 17516:case 17517:case 17518:case 17519:case 17520:case 17521:case 17526:case 17527:case 17530:case 17531:case 17533:case 17534:case 17536:case 17537:case 17539:case 17540:case 17541:case 17542:case 17543:case 17544:case 17545:case 17549:case 17554:case 17556:case 17558:case 17559:case 17561:case 17562:case 17563:case 17567:case 17568:case 17569:case 17570:case 17571:case 17572:case 17574:case 17578:case 17579:case 17580:case 17582:case 17584:case 17586:case 17588:case 17589:case 17590:case 17592:case 17594:case 17600:case 17602:case 17606:case 17607:case 17608:case 17609:case 17610:case 17611:case 17614:case 17620:case 17621:case 17626:case 17627:case 17628:case 17629:case 17630:case 17632:case 17633:case 17636:case 17637:case 17642:case 17643:case 17644:case 17645:case 17648:case 17656:case 17657:case 17658:case 17659:case 17660:case 17662:case 17664:case 17665:case 17668:case 17669:case 17670:case 17671:case 17674:case 17675:case 17678:case 17682:xi();break;case 141514:bi();break;case 141568:Ei();break;case 32:case 78:case 120:case 124:case 145:case 152:case 165:case 167:case 185:case 191:case 226:case 227:case 242:case 243:case 253:case 14854:case 14918:case 14920:case 14921:case 14922:case 14923:case 14925:case 14927:case 14928:case 14929:case 14930:case 14931:case 14932:case 14933:case 14934:case 14936:case 14937:case 14938:case 14939:case 14941:case 14942:case 14944:case 14945:case 14946:case 14949:case 14950:case 14951:case 14952:case 14953:case 14954:case 14956:case 14957:case 14958:case 14959:case 14960:case 14961:case 14966:case 14967:case 14969:case 14970:case 14971:case 14973:case 14974:case 14976:case 14977:case 14979:case 14980:case 14981:case 14982:case 14983:case 14984:case 14985:case 14989:case 14994:case 14996:case 14998:case 14999:case 15001:case 15002:case 15003:case 15007:case 15008:case 15009:case 15010:case 15011:case 15012:case 15014:case 15018:case 15019:case 15020:case 15022:case 15024:case 15026:case 15028:case 15029:case 15030:case 15032:case 15034:case 15040:case 15042:case 15046:case 15047:case 15048:case 15049:case 15050:case 15051:case 15054:case 15060:case 15061:case 15064:case 15066:case 15067:case 15068:case 15069:case 15070:case 15072:case 15073:case 15076:case 15077:case 15082:case 15083:case 15084:case 15085:case 15088:case 15092:case 15096:case 15097:case 15098:case 15099:case 15100:case 15102:case 15104:case 15105:case 15108:case 15109:case 15110:case 15111:case 15114:case 15115:case 15118:case 15122:us();break;case-10:case 27412:bl();break;case-11:cl();break;case 68:gl();break;case 278:fl();break;case-14:break;default:Ai()}}function al(){Vl.startNonterminal(\"JSONSimpleObjectUnion\",Pl),Sl(278),kl(273),Hl!=281&&(Nl(),G()),Sl(281),Vl.endNonterminal(\"JSONSimpleObjectUnion\",Pl)}function fl(){xl(278),kl(273),Hl!=281&&Y(),xl(281)}function ll(){Vl.startNonterminal(\"ObjectConstructor\",Pl),Sl(276),kl(274),Hl!=282&&(Nl(),hl()),Sl(282),Vl.endNonterminal(\"ObjectConstructor\",Pl)}function cl(){xl(276),kl(274),Hl!=282&&pl(),xl(282)}function hl(){Vl.startNonterminal(\"PairConstructorList\",Pl),dl();for(;;){if(Hl!=41)break;Sl(41),kl(267),Nl(),dl()}Vl.endNonterminal(\"PairConstructorList\",Pl)}function pl(){vl();for(;;){if(Hl!=41)break;xl(41),kl(267),vl()}}function dl(){Vl.startNonterminal(\"PairConstructor\",Pl),_f(),Sl(49),kl(267),Nl(),_f(),Vl.endNonterminal(\"PairConstructor\",Pl)}function vl(){Df(),xl(49),kl(267),Df()}function ml(){Vl.startNonterminal(\"ArrayConstructor\",Pl),Sl(68),kl(272),Hl!=69&&(Nl(),G()),Sl(69),Vl.endNonterminal(\"ArrayConstructor\",Pl)}function gl(){xl(68),kl(272),Hl!=69&&Y(),xl(69)}function yl(){Vl.startNonterminal(\"BlockExpr\",Pl),Sl(276),kl(277),Nl(),$a(),Sl(282),Vl.endNonterminal(\"BlockExpr\",Pl)}function bl(){xl(276),kl(277),Ja(),xl(282)}function wl(){Vl.startNonterminal(\"FunctionDecl\",Pl),Sl(145),kl(255),Nl(),Ha(),kl(22),Sl(34),kl(94),Hl==31&&(Nl(),U()),Sl(37),kl(148),Hl==79&&(Nl(),El()),kl(118);switch(Hl){case 276:Sl(276),kl(277),Nl(),$a(),Sl(282);break;default:Sl(133)}Vl.endNonterminal(\"FunctionDecl\",Pl)}function El(){Vl.startNonterminal(\"ReturnType\",Pl),Sl(79),kl(260),Nl(),ms(),Vl.endNonterminal(\"ReturnType\",Pl)}function Sl(e){Hl==e?(Nl(),Vl.terminal(i.TOKEN[Hl],Bl,jl>Gl?Gl:jl),Dl=Bl,Pl=jl,Hl=Fl,Hl!=0&&(Bl=Il,jl=ql,Fl=0)):Ml(Bl,jl,0,Hl,e)}function xl(e){Hl==e?(Dl=Bl,Pl=jl,Hl=Fl,Hl!=0&&(Bl=Il,jl=ql,Fl=0)):Ml(Bl,jl,0,Hl,e)}function Tl(e){var t=Dl,n=Pl,r=Hl,i=Bl,s=jl;Hl=e,Bl=Yl,jl=Zl,Fl=0,Pa(),Dl=t,Pl=n,Hl=r,Hl!=0&&(Bl=i,jl=s)}function Nl(){Pl!=Bl&&(Dl=Pl,Pl=Bl,Vl.whitespace(Dl,Pl))}function Cl(e){var t;for(;;){t=ec(e);if(t!=22){if(t!=36)break;Tl(t)}}return t}function kl(e){Hl==0&&(Hl=Cl(e),Bl=Yl,jl=Zl)}function Ll(e){Fl==0&&(Fl=Cl(e),Il=Yl,ql=Zl),_l=Fl<<9|Hl}function Al(e){Hl==0&&(Hl=ec(e),Bl=Yl,jl=Zl)}function Ol(e){Fl==0&&(Fl=ec(e),Il=Yl,ql=Zl),_l=Fl<<9|Hl}function Ml(e,t,r,i,s){throw t>Ul&&(Rl=e,Ul=t,zl=r,Wl=i,Xl=s),new n.ParseException(Rl,Ul,zl,Wl,Xl)}function Jl(e,t,n){$l[(t<<4)+e]=n}function Kl(e,t){var n=$l[(t<<4)+e];return typeof n!=\"undefined\"?n:0}function ec(e){var t=!1;Yl=Zl;var n=Zl,r=i.INITIAL[e],s=0;for(var o=r&4095;o!=0;){var u,a=n<Gl?Ql.charCodeAt(n):0;++n;if(a<128)u=i.MAP0[a];else if(a<55296){var f=a>>4;u=i.MAP1[(a&15)+i.MAP1[(f&31)+i.MAP1[f>>5]]]}else{if(a<56320){var f=n<Gl?Ql.charCodeAt(n):0;f>=56320&&f<57344&&(++n,a=((a&1023)<<10)+(f&1023)+65536,t=!0)}var l=0,c=5;for(var h=3;;h=c+l>>1){if(i.MAP2[h]>a)c=h-1;else{if(!(i.MAP2[6+h]<a)){u=i.MAP2[12+h];break}l=h+1}if(l>c){u=0;break}}}s=o;var p=(u<<12)+o-1;o=i.TRANSITION[(p&15)+i.TRANSITION[p>>4]],o>4095&&(r=o,o&=4095,Zl=n)}r>>=12;if(r==0){Zl=n-1;var f=Zl<Gl?Ql.charCodeAt(Zl):0;return f>=56320&&f<57344&&--Zl,Ml(Yl,Zl,s,-1,-1)}if(t)for(var d=r>>9;d>0;--d){--Zl;var f=Zl<Gl?Ql.charCodeAt(Zl):0;f>=56320&&f<57344&&--Zl}else Zl-=r>>9;return(r&511)-1}r(e,t);var n=this;this.ParseException=function(e,t,n,r,i){var s=e,o=t,u=n,a=r,f=i;this.getBegin=function(){return s},this.getEnd=function(){return o},this.getState=function(){return u},this.getExpected=function(){return f},this.getOffending=function(){return a},this.getMessage=function(){return a<0?\"lexical analysis failed\":\"syntax error\"}},this.getInput=function(){return Ql},this.getOffendingToken=function(e){var t=e.getOffending();return t>=0?i.TOKEN[t]:null},this.getExpectedTokenSet=function(e){var t;return e.getExpected()<0?t=i.getTokenSet(-e.getState()):t=[i.TOKEN[e.getExpected()]],t},this.getErrorMessage=function(e){var t=this.getExpectedTokenSet(e),n=this.getOffendingToken(e),r=Ql.substring(0,e.getBegin()),i=r.split(\"\\n\"),s=i.length,o=i[s-1].length+1,u=e.getEnd()-e.getBegin();return e.getMessage()+(n==null?\"\":\", found \"+n)+\"\\nwhile expecting \"+(t.length==1?t[0]:\"[\"+t.join(\", \")+\"]\")+\"\\n\"+(u==0||n!=null?\"\":\"after successfully scanning \"+u+\" characters beginning \")+\"at line \"+s+\", column \"+o+\":\\n...\"+Ql.substring(e.getBegin(),Math.min(Ql.length,e.getBegin()+64))+\"...\"},this.parse_XQuery=function(){Vl.startNonterminal(\"XQuery\",Pl),kl(275),Nl(),o(),Sl(25),Vl.endNonterminal(\"XQuery\",Pl)};var _l,Dl,Pl,Hl,Bl,jl,Fl,Il,ql,Rl,Ul,zl,Wl,Xl,Vl,$l,Ql,Gl,Yl,Zl};r.getTokenSet=function(e){var t=[],n=e<0?-e:INITIAL[e]&4095;for(var i=0;i<284;i+=32){var s=i,o=(i>>5)*3694+n-1,u=o>>1,a=u>>2,f=r.EXPECTED[(o&1)+r.EXPECTED[(u&3)+r.EXPECTED[(a&3)+r.EXPECTED[a>>2]]]];for(;f!=0;f>>>=1,++s)(f&1)!=0&&t.push(r.TOKEN[s])}return t},r.MAP0=[70,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,17,17,17,17,17,17,17,17,17,18,19,20,21,22,23,24,25,26,27,28,29,26,30,30,30,30,30,31,32,33,30,30,34,30,30,35,30,30,30,36,30,30,37,38,39,38,30,38,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,38,38],r.MAP1=[108,124,214,214,214,214,214,214,214,214,214,214,214,214,214,214,156,181,181,181,181,181,214,215,213,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,247,261,277,293,309,355,371,387,423,423,423,415,339,331,339,331,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,440,440,440,440,440,440,440,324,339,339,339,339,339,339,339,339,401,423,423,424,422,423,423,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,338,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,423,70,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,17,17,17,17,17,17,17,17,17,18,19,20,21,22,23,24,25,26,27,28,29,26,30,30,30,30,30,31,32,33,30,30,30,30,30,30,30,30,30,30,30,30,30,30,38,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,34,30,30,35,30,30,30,36,30,30,37,38,39,38,30,38,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,38,38,38,38,38,38,38,38,38,38,38,38,30,30,38,38,38,38,38,38,38,69,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69],r.MAP2=[57344,63744,64976,65008,65536,983040,63743,64975,65007,65533,983039,1114111,38,30,38,30,30,38],r.INITIAL=[1,12290,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287],r.TRANSITION=[42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,25651,25666,25670,25670,25670,18189,25670,25670,25670,25670,18201,25670,25670,25670,25670,18176,25670,25671,18217,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,42516,25917,18730,20976,20988,20999,21015,25420,18732,21040,42516,42516,42516,27632,42516,42516,51474,31122,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,21056,21084,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,23286,21107,42516,42516,42516,39416,42516,42516,43470,47286,25568,42516,42516,42516,42516,23672,41495,21126,21160,42516,42516,42516,27632,42516,42516,35938,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,25556,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21176,21248,42516,42516,42516,50595,42516,42516,42445,42516,25917,23619,21211,21279,21269,21226,21240,44419,21040,42516,42516,42516,27632,21302,42516,32247,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,19871,21321,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,21344,26008,18612,18632,18596,21349,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42510,42516,42516,42516,48894,42515,42516,51366,42516,21365,42504,21403,42515,21410,42516,27599,27612,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,21426,42516,42516,42516,22170,42516,42516,21445,42516,42516,21468,21481,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,42516,24484,42516,42516,42516,42516,42516,42516,42517,21497,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,21513,25598,18486,18508,51408,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,25358,21538,42516,42516,42516,29996,42516,42516,26519,46446,25383,42516,42516,42516,42516,25736,28473,18232,21557,42516,42516,42516,27632,42516,42516,51474,21573,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,19060,21591,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,23074,23089,21619,21619,21619,21672,21614,21619,21624,23096,21640,21745,21688,21665,21655,21732,21703,21716,21040,42516,42516,42516,33326,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,21761,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,45317,42516,42516,42516,49458,21798,42516,22640,21804,25917,45316,42516,21821,21844,21828,21860,21869,21885,42516,42516,42516,29550,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,21901,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,21944,42516,42516,42516,48069,42516,42516,42516,26308,36543,25445,25454,21937,25455,21960,21985,21998,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,18888,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,26329,37275,42655,22014,22031,22014,22046,42653,22015,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,22071,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,26891,42516,42516,42516,48069,22092,42516,23653,22130,40293,22116,22186,22191,22191,22207,26888,44587,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,18247,42516,42516,42516,42516,48069,42516,42516,42516,42516,25917,35843,22232,22249,22232,22264,35841,22233,22289,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,46363,42516,33841,42516,34304,43899,22305,22071,36154,42516,42516,42516,42516,28243,22657,22322,22657,22657,22341,33347,46316,46316,39789,38147,35514,38147,38147,22359,22382,42516,42516,42516,42516,42516,28815,42516,22405,22426,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,47355,26569,42516,42516,42516,42516,42516,45225,42516,42516,32981,50880,22657,22657,22657,30360,22467,39622,46316,22501,46316,22343,36422,42625,38147,22520,38147,27826,41766,42516,42516,42516,42516,42516,49148,42516,23255,22657,44467,22657,22657,30361,22539,42077,46316,46316,46316,30525,38147,40186,38147,38147,34440,41769,42516,42516,20027,37487,42516,28242,22657,22657,36250,37745,46316,46316,44329,37798,38147,38147,43834,27827,30836,42516,42516,19405,22558,38368,22576,22657,40730,22597,46316,36583,22617,38147,40469,22638,42516,25905,42516,34153,22656,33064,46073,46316,22674,22710,27827,22690,51145,42516,32408,22729,37572,22752,32120,22683,29050,30609,22771,38961,22813,36803,22874,22893,22911,28238,43147,27775,22913,22451,22736,46400,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,50215,25917,42516,42516,42516,42516,42516,45715,23059,23112,42516,42516,42516,27632,42516,42516,37325,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,23128,46363,42516,42516,42516,34304,42516,42516,18360,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,22341,46316,46316,46316,39789,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,28815,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,23154,42516,42516,42516,46371,42516,42516,42516,42516,25917,35960,23175,23206,23195,23229,35959,23179,21040,42516,42516,42516,27632,42516,42516,51474,27227,42516,43023,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,23254,42516,42516,42516,48069,42516,42516,42516,19968,25917,42516,42516,42516,42516,42516,42762,23271,23302,42516,42516,42516,27632,42516,42516,21380,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,23318,46363,42516,42516,42516,34304,42516,42516,23344,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,22341,46316,46316,46316,39789,38147,38147,38147,38147,40896,23370,23409,42516,42516,42516,42516,38331,23429,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,23450,23383,42516,42516,42516,42516,42516,23487,42516,42516,42516,38370,22657,22657,22657,22657,50700,22540,46316,46316,46316,46316,47852,30533,38147,38147,38147,38147,27826,35762,23510,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,29796,22539,46316,46316,46316,46316,23533,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,46191,46316,46316,46316,32038,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,48371,42516,42516,42516,31492,32078,42516,42516,23557,25917,18721,49121,23587,23594,23610,42516,43878,23635,23651,42516,42516,33439,23669,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,25038,24355,23991,25028,23804,18270,40105,18293,23688,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,23724,24084,23749,23789,24317,23827,23849,23904,24015,23917,23946,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,23969,24689,24310,25086,25092,23974,23990,24416,24845,24007,23833,24977,24993,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,24031,23930,24046,24073,24057,24100,24137,24664,24240,24198,24251,24225,24986,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,24267,24283,24299,24348,24333,24371,24167,24428,24402,23773,24444,24474,35639,19379,39467,19401,41728,19421,19500,24458,19544,24500,24558,24572,24588,24604,24182,24745,24620,24636,24767,19696,19712,19728,19753,19773,19830,19435,19514,24680,24514,19528,24705,24152,24757,19947,19984,20043,20080,20119,20157,20667,24542,24528,24731,24830,24209,24939,20235,20264,20301,24783,24799,24815,24715,24861,20381,20397,19814,23733,24877,24893,20503,25039,24968,23864,24927,24955,25015,20652,18443,23763,24386,25055,24651,25071,25108,25159,25175,25191,25243,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,27003,42516,42516,42516,48069,25296,42516,42516,25291,40518,25312,25320,25320,25320,25327,27168,25343,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25399,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,18963,25373,18652,18689,18711,18748,18695,25415,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,19337,25436,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,25471,25509,25525,20579,19301,19596,25541,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,25584,19614,19632,19650,25620,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,42516,21541,28730,28739,28739,28739,28746,47533,25636,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,27653,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,25687,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51268,23158,42516,42516,42516,48069,42516,42516,42516,42516,25917,22795,25710,25710,25710,25717,23159,22797,21040,25733,42516,42516,27632,42516,42516,51474,42516,42516,44769,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,25752,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,26066,26075,42516,42516,42516,42907,42516,42516,42516,42516,25917,26405,25775,25775,25775,25782,28588,26407,25798,25814,42516,42516,27632,42516,42516,51474,42516,42516,23413,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,25831,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,25857,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,25891,42516,42516,42516,42516,48069,25942,42516,42516,28970,33768,42516,42516,42516,25933,25960,26180,25944,25980,42516,42516,42516,27632,42516,42516,51474,27927,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,25996,26028,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,42516,25917,42516,42516,42516,42516,42516,41865,26051,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,23487,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,26115,26152,42516,42516,42516,42516,42516,23487,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,35762,23510,42516,42516,42516,42516,26178,42516,23255,22657,22657,22657,22657,22877,22539,46316,46316,46316,46316,32774,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,46191,46316,46316,46316,32038,38147,38147,38147,27827,22690,42516,42516,23464,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,23487,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,26115,26152,42516,42516,42516,42516,42516,23487,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,35762,23510,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,22877,22539,46316,46316,46316,46316,32774,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,46191,46316,46316,46316,32038,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,23487,26196,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,26115,26152,42516,42516,42516,42516,42516,23487,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,35762,23510,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,22877,22539,46316,46316,46316,46316,32774,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,46191,46316,46316,46316,32038,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,23487,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,26115,26152,42516,42516,42516,42516,42516,26216,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,35762,23510,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,22877,22539,46316,46316,46316,46316,32774,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,46191,46316,46316,46316,32038,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,31151,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,31154,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,23487,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,26115,26152,42516,42516,42516,42516,42516,23487,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,35762,23510,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,22877,22539,46316,46316,46316,46316,32774,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,46191,46316,46316,46316,32038,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,22786,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26258,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,48694,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,28605,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,47769,26274,26287,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,26303,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,26324,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,42516,25917,35004,26345,26373,26362,26396,35005,26346,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,37963,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,26423,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,42516,25917,42516,42516,42516,42516,42516,42516,42517,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,42516,25917,47727,42516,26460,26483,26467,42516,47735,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,26499,20264,20301,20317,20346,20333,20349,20365,26535,20397,20422,20606,20438,26551,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,29068,42516,42516,42516,51537,26585,26616,29663,26601,26633,26690,26699,26715,26730,26742,26758,26771,26099,19999,42516,26787,26162,26806,41856,26832,26883,26907,26946,30733,26962,26998,27019,27054,46783,31896,27070,46885,46348,36728,27120,42516,42516,34304,27137,37896,42516,27163,34995,39190,42516,27184,43650,22657,22657,22657,27203,27401,46316,46316,41985,48318,38147,38147,38147,37213,40896,22382,42516,27222,48046,42516,27243,27263,27280,42516,42516,27038,20763,27308,27328,22657,22657,27363,27386,27419,35266,46316,30482,27448,27495,27524,27566,38147,35889,38740,46095,27585,26152,27628,42516,45564,42516,47310,23487,42516,46936,27648,27669,27685,34339,22657,27729,22984,44673,27748,45967,46316,27773,39768,32782,27791,37607,38147,27824,22485,27843,27859,27882,27899,42516,27922,31758,27943,23255,33056,27962,22657,42185,33093,27982,30091,46316,35423,43042,32774,28017,38147,38147,42363,28033,23138,28062,40096,28115,41486,28137,21969,22956,28160,22657,46191,35558,28176,28197,32038,49740,47969,28214,27827,28233,42899,42516,21253,42516,38368,42934,43766,40730,37393,48025,36583,51021,44713,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,28260,28298,33550,28320,28341,28379,28401,28421,26921,40729,36585,44924,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,28445,42516,42516,51537,42516,42516,42516,42516,31409,28464,42516,28489,28496,28512,28528,28541,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,42942,46314,28557,30860,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,28583,23487,28604,45602,42516,42516,38368,22657,22657,22657,44648,28621,22541,46316,46316,46316,40008,44805,38147,38147,38147,38147,41449,32923,26115,26152,42516,42516,42516,42516,42516,23487,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,35762,23510,42516,32305,42516,42516,28652,43395,23255,28671,22657,22657,22657,28690,28706,46316,46316,46316,37589,32774,28762,38147,38147,38147,44356,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,46191,46316,46316,46316,32038,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,23013,26674,44310,41661,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,28784,42516,42516,51537,42516,28813,42516,28831,36313,28851,28860,28876,28891,28903,28919,28932,26099,42516,42516,33807,29427,42516,42516,28948,42516,28965,42516,42516,42516,25275,42516,28986,44283,46314,29021,22622,37863,32069,42516,29066,42516,34304,29084,49128,42516,45291,29103,36853,42516,39408,30216,37513,22657,22657,22657,29138,29162,46316,46316,48917,29187,29203,38147,38147,40896,22382,23471,42516,42516,37970,42516,41320,23487,39926,29222,42516,42516,38368,29257,38293,22657,29296,38374,29315,31567,38618,38779,46316,44805,42631,29346,29367,48610,38147,32923,26115,26152,42516,42516,35359,42516,36267,23487,42516,42516,42516,38370,22657,22657,38875,29587,30360,22540,46316,46316,49716,48753,22343,30533,38147,38147,47896,47206,27826,35762,29388,42516,42516,42516,29423,42516,29443,23255,22657,22657,22657,43545,22877,22539,46316,46316,49625,46316,32774,38147,38147,38147,29464,34440,41769,42516,42516,19074,42516,46902,29483,22657,45738,22657,46191,46316,28001,46316,32038,38147,48630,38147,27827,29518,29546,42516,39530,20864,38368,29566,29583,46250,46316,29603,36583,29623,29640,40469,42516,42516,42516,29661,38373,22657,29679,46316,51108,36586,38147,50541,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,29702,29722,29738,29754,28244,40729,36585,22448,28385,36584,34366,22755,31692,34720,29778,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,26790,42516,42516,51537,42516,29812,25227,42516,31450,29831,29840,29856,29871,29878,29894,29907,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,31072,31070,42516,32276,32283,40826,29686,35273,29923,34810,28721,42516,35352,29943,34304,42516,29968,36872,42516,42516,29988,30012,34471,30028,22581,34160,30064,24121,30107,48780,30128,30172,30191,29624,22523,47650,28217,40896,22382,42516,42516,42516,42735,42516,30232,23487,42516,42516,42516,27906,38368,22657,22657,22657,26867,38374,22541,46316,46316,46316,37425,44805,38147,38147,38147,38147,30252,50615,30272,30304,42516,42516,42516,30320,30338,23487,42516,42516,27104,21782,30358,30377,22657,22657,30395,30434,30481,30498,46316,46316,30515,51071,30551,30568,38147,38147,30585,35762,23510,42516,42516,42516,42516,42516,30625,23255,30648,22657,22657,30668,22877,30687,46316,46316,34855,46316,32837,38147,38147,43217,38147,34440,41769,45029,42516,30729,42516,21024,28242,29299,22657,30749,46191,50174,46316,30776,32038,38147,30812,48472,27827,22690,23708,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,37071,42516,42516,38373,22657,31523,46316,43307,36586,38147,39352,22690,34920,42516,38372,43148,46316,38137,38147,30829,36804,38368,28385,28404,30535,27085,28354,31634,30852,30600,30074,38197,42103,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,21805,30876,42516,51537,49762,30895,42516,30918,43094,30942,30951,30967,30982,30994,31010,31023,26099,42516,31039,39573,31055,20844,31088,31151,40795,31438,31118,31138,31170,31208,31224,31259,31325,39316,31341,31357,42305,39859,31243,31397,39944,31425,33906,31466,31484,36903,42516,42516,38844,42516,28243,31508,40831,43064,26242,31546,31583,49551,32501,35578,43001,31607,35023,30465,31623,22382,40777,39e3,31658,40711,31716,41838,31747,42230,41234,31783,31813,31829,31873,31912,31936,31952,31988,32019,35868,32054,38034,47598,32094,32110,32136,39813,32152,32186,47170,32233,26152,32263,42516,49503,42516,32299,32321,32337,32365,32386,32406,32424,22657,35078,32463,30760,22540,32487,46316,47681,50971,43200,30533,32517,38147,37625,38481,40265,32560,23510,18666,32576,32596,39698,32624,37664,32645,31965,32706,47478,32693,32731,32762,40433,46316,32798,32825,32774,32853,32872,49013,32893,32919,41769,42516,21429,46706,42516,42516,32939,25143,43551,27695,46191,47568,50517,33128,32038,44391,37914,44027,27827,22690,51501,22158,32960,23571,32997,33045,33080,33109,33144,33160,33196,33225,33259,33289,25257,41794,33305,33321,22943,47433,44826,33342,33363,33392,45913,37247,22690,23238,33434,38372,47456,46316,49977,38147,33455,33478,32944,28385,33515,33536,30206,38372,33571,38971,31372,39304,33587,33611,33627,33643,33674,33720,28385,36584,33273,33742,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,33784,42516,51537,33805,33823,29972,43389,33866,33897,42516,33882,33940,33947,33963,33976,26099,42516,42516,20279,27632,42516,42516,42516,42516,42516,41269,42516,41261,42516,41268,25123,41628,38176,37400,33992,34810,28721,42516,34012,42516,34304,34012,42516,42516,42516,34029,34013,37295,42516,28243,34045,22657,22657,22657,34069,34103,46316,46316,48318,47159,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,23487,42516,42516,45931,42516,38368,22657,22657,22657,44213,38374,22541,46316,46316,46316,42968,44805,38147,38147,38147,38147,34120,32923,26115,26152,42516,42516,42516,42516,42516,23487,42516,46602,42516,38370,22657,22657,30041,22657,30360,22540,46316,46316,42268,46316,22343,30533,38147,38147,44e3,38147,27826,35762,23510,42516,42516,42516,42516,42516,39273,23255,22657,22657,22657,37139,22877,22539,46316,46316,49643,46316,32774,38147,38147,38147,48815,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,46191,46316,46316,46316,32038,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,46733,42516,42516,42516,36647,22657,28384,27995,46316,49984,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,44874,43254,31692,29762,34139,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,38852,42516,42516,51280,34176,34185,34201,34208,34215,34231,34244,26099,42516,42516,42516,27632,42516,42516,34401,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,37878,42057,42516,42516,34304,42516,42516,42516,42516,34260,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,34278,42516,28081,38368,22657,22657,22657,22657,38374,42076,46316,46316,46316,46316,46212,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,47761,42516,34299,19108,42516,42516,19113,34320,22657,22657,34338,22657,30360,22540,46316,34104,46316,46316,22343,30533,38147,42837,38147,38147,27826,34355,42516,42516,42516,34399,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,38663,42516,34417,28242,22657,22657,38760,37745,46316,46316,50996,37798,38147,38147,38147,34438,22690,34456,18364,34487,34538,24114,31309,31274,34559,34565,27432,34581,44559,30458,34604,22076,42516,19757,34657,29792,34679,47804,33555,31559,34736,35451,34758,22690,41150,39051,35676,32439,38610,34776,34795,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,34833,34871,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,18277,42516,42516,34899,42516,42516,42516,36062,42516,36065,42516,42516,34947,34936,36697,22657,34963,27757,38148,48007,34986,42516,42516,29815,34304,21387,19116,42516,38636,42516,42516,42516,42516,28243,22657,22657,43325,22657,27401,46316,46316,30705,48318,38147,38147,38147,35021,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,35376,42516,35039,38368,22657,22657,22657,22657,50945,22541,46316,46316,46316,46316,38717,38147,38147,38147,38147,38147,41757,22444,42516,35059,42516,42516,42516,42516,42516,42516,42516,39196,38370,35077,22657,22657,22657,30360,46821,46316,46316,46316,46316,22343,23541,38147,38147,38147,38147,27826,41766,42516,42516,42516,50318,42516,42516,42516,23255,22657,22657,22657,46040,30361,22539,46316,46316,46316,34080,30525,38147,38147,38147,42204,34440,41769,42516,42516,46608,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,23434,42516,22428,38373,22657,28384,46316,46316,36586,38147,27827,35094,34920,22560,38372,50497,46316,40393,38147,43581,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,44978,42516,51537,30322,33499,42482,50012,50022,18763,18772,35115,35131,35143,35159,35172,26099,42516,42516,42516,36498,41847,42516,42516,42516,31671,41803,35188,36161,35205,35221,43491,35237,35256,29171,35289,37464,35305,42516,42516,42516,35339,42516,28090,35375,42516,42516,28949,35314,39266,28243,48989,48108,22657,35392,47509,37433,35422,34970,35439,27808,35467,38147,35501,35536,22382,42516,35594,39908,48509,34515,35614,42516,18299,18417,42516,35655,35672,48116,22657,43129,29280,37184,22541,48019,46316,38117,35692,47637,38147,35719,38147,35737,27472,35753,22444,42516,42516,42516,42516,35778,48535,35820,42516,42516,42516,23024,36244,22657,22657,29502,38418,35859,41980,46316,46316,48733,41934,49389,35884,38147,38147,40673,49832,35905,42516,36909,35924,35976,35997,18673,36033,34522,36081,47410,36098,36117,36141,36177,46316,36198,32809,43953,30446,38147,43626,42012,36214,36230,23328,20636,45205,36266,36283,36301,35981,36329,26662,46771,36350,36390,48253,35703,36411,36456,40231,38454,41461,37653,42516,42516,37028,36479,40577,43121,45398,22366,37772,48725,38205,36432,50457,40469,42516,25485,42516,36514,38373,22657,28384,46316,46316,36586,38147,27827,36626,36531,42516,28996,31885,36559,36579,36602,36619,36804,36642,28385,28404,30535,42423,49897,44263,36663,36694,43147,27775,22913,28244,40729,36585,22448,36713,36744,34366,22755,31692,28429,36774,36790,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,39935,42516,51537,42516,42516,42516,42516,25917,42516,29952,39942,19158,38671,36820,36833,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,44206,22657,27401,46316,46317,46316,48318,38147,38147,34588,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,19484,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,36849,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,36869,42516,42516,42516,42516,42516,42516,42516,42516,46294,22657,22657,22657,22657,30360,49232,46316,46316,46316,46316,22343,30796,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,46996,42516,51537,42516,23354,42516,42753,36888,36925,36938,36954,36961,36977,36993,37006,26099,42516,37022,42516,27632,42516,41516,26816,42516,42516,37044,42516,37049,18537,37065,37087,37117,44086,37200,37235,39844,33658,37263,42516,42516,35791,42516,42516,34914,28072,42516,37291,22389,37311,18926,37716,37348,43712,48153,37366,37382,46316,37416,40607,40193,49587,35520,37449,27508,37480,37934,42516,42516,42516,42516,41144,42516,42516,42516,42516,42516,38368,37503,36125,22657,37529,39594,37550,37566,48265,46316,37588,30713,29645,37605,37623,38799,38147,37641,22444,42516,42516,37688,42516,42516,49494,24999,42516,42516,42516,38370,22657,22657,29494,37704,37740,22540,46316,46316,40001,37761,37795,30533,38147,38147,37825,37814,37848,41766,42516,37894,42516,42516,51139,42516,42516,23255,22657,41398,22657,22657,30361,22539,42274,46316,46316,46316,30525,38147,37912,38147,38147,34440,41769,37930,36490,42516,34663,37950,28242,37986,22657,22657,46812,38013,46316,46316,45485,49261,38147,38147,48821,22690,49311,42516,42516,38050,38368,41404,22657,40730,47057,46316,36583,48937,38147,40469,42516,21575,42516,42516,38373,22657,38069,46316,45780,36586,38147,40463,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,38089,46273,22694,23034,40134,34366,22755,38105,38164,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,26200,42516,51537,42516,27946,42516,42516,47834,20951,20960,38221,38236,38243,38259,38272,26258,42516,38551,42516,27632,42516,34262,42516,42516,42516,38553,42516,38546,21091,38552,21774,38288,31700,35273,38309,34810,28721,42516,42516,38329,34304,42516,29241,23811,23953,42516,42516,42516,38347,38364,33022,22657,38390,38410,28636,46316,29607,39628,38434,42370,38147,48603,38470,47663,38504,38541,39253,39681,42516,42516,42516,42516,41197,42516,42516,42516,38368,31857,22657,38569,22657,38374,22541,38589,28198,46316,46316,44805,29206,27800,32877,38147,38147,32923,22444,42516,28144,42516,38634,42516,45188,42516,38652,42516,42516,38370,39723,22657,22657,38687,30379,22540,23043,46316,46316,38710,22895,30533,49398,38147,38147,38733,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,33462,42516,42516,42516,42516,38368,38756,22657,40730,38776,46316,36583,38795,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,38815,36586,49663,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,49485,38368,44256,40047,45820,38834,38868,32210,38891,28238,43147,27775,22913,28244,40729,36585,22448,28385,38914,38935,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,27187,42516,30926,42516,34543,38987,37672,39016,39067,39107,39092,39111,39076,39127,39140,26099,42516,25841,23701,20829,39222,20009,42516,39156,41252,39175,39212,32746,21195,39238,26847,39289,45668,39332,39368,34810,28721,32390,42516,42516,26444,30879,36010,28099,40787,39398,38525,26035,39432,39483,44460,39503,41633,22657,32003,22601,46316,49709,48318,47976,47889,30552,38147,33209,39523,39917,39159,42516,39546,42516,42516,40976,42516,42516,42516,39568,39487,37157,22657,39589,22657,38374,39610,45436,46316,39644,46316,44805,27542,39661,38313,38147,38147,32923,22444,42516,42516,42516,42516,30632,42516,42516,21187,39678,39697,39714,22657,22657,50559,22657,39739,39760,46316,46316,38818,46316,39784,39805,38147,38147,32856,38147,39829,41766,46006,39893,48391,49682,42516,39960,34641,39976,38394,40024,37997,33010,30361,22539,40063,40121,43817,40157,30525,40868,40175,40209,40247,34760,44916,20285,40281,34623,40309,51090,50324,48429,40325,40344,40364,39645,40409,40428,40449,38147,40485,49825,39382,22690,40506,42516,42516,22216,40534,39507,48098,30083,50926,38024,33595,45640,28567,40469,40559,42516,40087,26129,45371,31289,28384,40593,41927,40637,40665,40689,34614,41203,40707,27312,43148,48295,28405,40861,22683,50287,38368,40727,40746,40649,40767,40811,22827,40847,33407,49334,48207,33243,28244,40729,36585,22448,28385,36584,41673,40884,31692,28429,22929,40922,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,40951,51537,42516,42744,40972,42516,27292,40992,41001,41017,41032,41039,41055,41068,26099,20248,41084,41102,41129,21286,41166,42516,41182,41219,41286,31731,41302,41336,41352,41368,41384,34883,41420,41436,48349,41477,42516,42240,27121,34422,42516,41511,25267,41532,41575,42516,42516,41594,28243,22657,31843,41613,34053,27401,40159,35568,34847,41649,38147,27550,41689,41744,40896,22382,42516,26380,42516,41578,42516,44762,41785,42516,41828,27866,41270,19255,22657,41881,41897,22657,35406,41916,43971,44095,46316,46316,41950,22851,37219,42001,38147,29467,32923,42028,42044,42516,46644,19385,42516,42516,42516,42516,42516,34632,38370,22657,27339,43920,22657,30360,22540,46316,44514,36395,46316,22343,30533,38147,35478,49592,38147,27826,41766,42516,42516,21305,42516,31235,42516,42516,23255,22657,22657,22657,22657,20064,42074,46316,46316,46316,46316,42093,38147,38147,38147,38147,50734,41769,50664,35952,42516,42516,42516,41113,22657,42177,22657,45759,46316,43945,46316,45799,38147,45843,38147,27827,29041,42127,42516,42516,42516,48412,30671,22657,38073,44692,46316,33520,45533,38147,40469,42146,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,43588,34920,42516,42166,40348,33173,48271,42201,22683,42220,41559,42256,42290,42321,33756,44448,35547,42352,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,32531,22755,42386,28429,22929,42410,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,39045,51537,42516,42516,42439,19363,42461,42498,42516,31468,42533,42547,42563,42576,26099,42516,42516,25867,27632,42516,42516,42516,42592,26617,42516,42516,26436,25867,42516,30236,31920,49620,42612,36440,34810,28721,42516,42647,42516,34304,42516,44608,36046,42516,35598,42516,42516,36057,51481,44194,32471,36334,37148,42671,32033,42687,33121,42706,38488,30256,30569,29372,32199,42722,42778,42516,42799,42516,49524,50043,35835,42516,42516,42516,42516,38368,22657,22657,37175,22657,38374,22541,46316,46316,47563,46316,44805,38147,38147,38147,42836,38147,32923,42853,42888,35656,42516,42516,42516,50763,30902,39460,48700,42516,38370,22657,42923,22657,22657,37350,22540,46316,42958,46316,46316,27403,30533,38147,42991,38147,38147,27826,41766,42516,29233,42516,42516,42516,43017,42516,23255,22657,22657,49093,22657,22325,22539,46316,46316,43039,46316,30788,38147,38147,35485,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,36017,42516,42516,43058,22657,22657,40730,46316,46316,36583,38147,38147,48843,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,46409,43080,43110,32715,30112,30535,40935,43145,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,35061,42516,42516,42516,28279,28282,18254,28275,31684,43164,43182,29146,43216,43233,29330,43270,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,43287,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,43306,46316,46316,46316,46316,50852,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,43323,28384,43789,46316,36586,43341,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,50278,22100,42516,42516,50243,42516,29530,43375,33789,43361,43411,43418,43434,43447,26099,42516,33915,33924,27632,40956,43463,43486,41243,43507,26512,26972,26982,27147,41812,42783,43531,49966,43567,43604,44058,40078,42516,42516,42516,23213,43642,34502,43666,43684,38517,42516,42516,35323,43702,22657,43728,30048,43746,43782,42975,46316,43805,34708,43833,43850,27569,49274,49874,43871,42516,42516,42516,45270,35189,42516,42516,43894,43668,42516,42814,33726,22657,43915,22657,37724,49041,43936,46316,43969,46316,45680,43987,44022,33996,38147,38147,44043,44074,22444,42516,42516,19081,42516,44111,44127,42516,43290,44154,44166,44182,22657,37101,44229,44279,30652,44299,46316,42336,45461,44326,40412,44345,38147,44372,45987,44388,34123,41766,28121,42516,42516,24911,44407,50085,42516,44435,27732,44483,22975,22657,30361,22539,44504,42690,46316,46316,30525,28768,44537,44554,38147,40691,44575,42516,44603,44624,42516,42516,28242,44645,22657,22657,44664,44689,46316,46316,49378,44708,38147,38147,49798,22690,42516,44729,42516,42516,20056,22657,22657,34376,46316,51047,22477,38147,44538,40469,42516,22273,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,44749,26230,34694,49922,44785,36803,38372,46315,38146,47702,44821,44842,44862,21913,40729,36585,22448,28385,36584,40621,44890,44940,42111,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,46959,51537,45028,47264,44964,45002,45045,45083,45015,45108,45123,45139,45155,45168,26099,45184,28448,42516,28797,42516,42516,30342,42516,42516,45204,45221,31185,28655,31192,26648,48147,38948,50978,45241,34810,28721,45262,45286,25875,34304,35804,42516,42516,42516,42516,45307,45333,42516,45362,45387,27370,22657,22657,45422,45457,45477,46316,48318,45501,22713,45531,38147,40896,22382,41086,42516,42516,45549,45580,42516,42516,42516,42516,42516,41312,38368,32670,37166,22657,22657,33029,22541,45618,47052,46316,46316,45690,35721,38147,45637,38147,38147,45656,22444,42516,42516,45593,44733,42516,45600,35835,45706,27030,38348,45731,22657,22657,40543,26861,45754,45775,46316,46316,43191,44800,45796,45815,38147,38147,40256,45836,45859,28046,42867,49429,42516,25220,42516,19477,43271,20461,22657,22657,27347,45890,30361,22539,46316,48577,44521,46316,30525,38147,38147,46850,45910,34440,41769,42516,50831,45929,19737,42516,28242,22657,45947,43759,50887,46316,45965,46065,28181,38147,45983,46857,27827,22690,42516,42516,46003,44138,38368,22657,22657,40730,46316,46316,36583,38147,38147,29031,51383,46022,26136,47337,46039,22657,46056,46316,34383,36586,38147,46089,46111,34920,46149,46173,43148,46207,44846,46228,32903,36804,38368,46247,46266,45515,36803,38372,46315,38146,35099,35240,22504,22913,46289,46310,46333,36758,46387,47879,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,27247,51537,42516,42516,23393,42516,46425,46462,46474,46490,46505,46521,46537,46550,26099,46566,25493,25815,46587,26561,21328,46624,21598,42516,46636,46660,46669,46685,46722,46757,46799,32544,46837,46873,41704,47524,33832,37332,35627,34304,46901,42516,44629,46918,39031,46952,46975,47012,47022,48184,31972,27713,43730,47038,31642,47073,47098,47607,47121,47145,47186,47202,47222,47250,47280,47302,42058,42516,47326,47353,42516,42516,47371,47388,46928,47404,47426,47449,47472,29567,47494,47549,47584,47623,47679,36182,44805,36463,37832,40141,38147,32161,32170,47697,42516,45060,42596,50682,47718,42130,47751,46440,36515,21144,38370,47785,29270,22657,44488,47820,47850,47868,40376,46316,45441,47912,47938,47958,43617,38147,38919,47992,41766,29407,48041,42516,27096,48062,42516,50062,40568,48085,38573,48132,48169,30361,48200,48223,48241,48287,48311,47922,47129,22858,48334,43855,34440,40906,48365,50193,42516,22144,48387,48407,44243,48428,22657,49223,47234,48445,46316,47082,50795,48488,38147,33704,22690,42516,48504,48525,42516,20103,22966,48559,32447,40385,48575,48593,50156,48626,48646,48680,42516,33850,39552,21921,26930,48716,48749,48769,48802,45246,48837,48960,48859,48887,32658,28363,48910,33376,48933,48953,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,45621,46231,48976,39991,49005,49029,40039,49057,44903,22755,31692,28429,49073,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,49109,42516,42516,49144,42516,32608,18328,18337,49164,18337,18344,49180,49193,26099,42516,42516,42516,27632,20863,28835,42516,42516,42516,42516,28834,42516,20857,42516,28241,49209,31530,22841,49248,36678,30143,33493,42516,42516,34304,42516,42516,35043,49290,42516,42516,42516,38053,28243,49327,22657,22657,22658,49350,46316,46316,46316,31591,33687,38147,38147,38147,49366,49414,49451,42516,49474,49519,42516,42516,43686,45346,42516,46571,46157,38368,45949,40328,45406,25137,29005,22541,48786,34087,38601,49540,48459,38147,33697,39345,49573,33236,49608,22444,42516,19180,42516,50588,42516,42516,42516,18791,42516,42516,38370,38694,22657,22657,22657,30360,49641,32217,46316,46316,46316,22343,49659,38898,38147,38147,38147,27826,41766,46990,42516,49679,42516,42516,42516,42516,20094,31303,22657,22657,22657,30361,49698,46316,46316,46316,46316,30525,49732,38147,38147,38147,34440,35908,42516,42516,46023,49756,42516,29706,37130,22657,22657,39744,38128,46316,46316,49778,49814,38147,38147,49848,22690,22055,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,34322,43148,47105,28405,38446,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,49890,49913,49938,22448,28385,36584,34366,34779,33418,49954,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,5e4,50082,50038,50059,42516,32349,42516,20487,50078,34283,44986,50101,50114,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,50130,42394,35273,50148,34810,28721,42516,36285,32580,34304,42516,42516,42516,42516,42516,25759,42516,42516,28243,27704,22657,37534,22657,27401,50172,46316,38188,48318,29351,38147,30813,38147,40896,22382,42516,42516,42516,42516,42516,41597,42516,42516,42516,42476,42516,38368,22657,50132,22657,22657,38374,22541,46316,49557,46316,46316,44805,38147,38147,50449,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,50190,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,50209,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,50231,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,50266,42516,22306,42516,45067,50303,50340,42516,50365,50380,50394,50410,50423,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,45894,46314,50439,28325,41965,36365,42516,42516,42516,34304,42516,42516,42516,42516,25694,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,50473,42516,42516,42516,50491,22657,22657,22657,22657,30360,50513,46316,46316,46316,46316,22343,50533,38147,38147,38147,38147,27826,41766,42516,42516,29399,42516,42516,42516,42516,23255,22657,22657,50557,22657,50575,22539,46316,43245,46316,33180,30525,38147,47942,38147,38147,50611,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,26324,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,48543,50631,50644,26099,42516,42516,42516,27632,50660,42516,50680,42516,42516,42516,29122,42516,21452,29118,32973,50698,44948,35273,50716,34810,28721,42516,42516,42516,50750,27264,27883,43515,42516,42516,42516,42516,42516,28243,22657,43166,22657,49088,27401,46316,30696,30175,48318,38147,38147,50786,27533,40896,50811,50827,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,51530,42516,42516,42516,38370,22657,27966,22657,22657,27206,22540,46316,36563,46316,46316,48225,30533,38147,43345,38147,38147,27826,41766,21110,42516,42516,42516,42516,42516,42516,23255,36082,22657,22657,22657,30361,22539,50847,46316,46316,46316,30525,40490,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,24903,42516,42516,27632,42516,42516,20017,42516,42516,42516,42516,20023,42516,42516,50868,36101,46314,27462,29927,45874,41719,42516,29087,42516,34304,42516,42516,42516,42516,42516,42516,42516,42872,28243,22657,22657,22657,47797,27401,46316,46316,22542,48318,38147,38147,38147,27479,40896,22382,42516,50903,42516,42516,42516,42516,42516,42516,42150,42516,42516,38368,46183,22657,41900,22657,38374,22541,50922,46316,37779,46316,44805,36603,38147,38147,40222,38147,32923,22444,42516,50475,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,50942,22657,22657,30360,50961,30499,50994,46316,46316,22343,49789,39662,51012,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,48664,23255,22657,22657,32677,22657,28304,22539,46316,46316,51045,46316,51063,38147,38147,50725,38147,44006,41769,42516,42516,50906,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,48656,42516,42516,47372,42516,31381,22657,22657,34817,46316,46316,40751,38147,38147,40469,42516,42516,51087,42516,38373,28681,28384,46316,51106,36586,34742,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,19962,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,46123,30288,30286,49299,30156,51124,22408,22410,49308,30152,46133,51161,51174,21040,42516,42516,42516,27632,42516,42516,31797,42516,42516,42516,42516,42516,42516,42516,32629,20505,20792,18990,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,51190,25598,18486,18508,19308,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,30409,42516,25917,39868,39877,51215,51230,51237,29448,51253,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,23517,42516,42516,23514,32629,20505,21066,18953,21068,18866,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,36374,42516,42516,42516,42516,31102,50349,51296,51323,51307,51330,32370,51346,21040,42516,42516,42516,27632,42516,42516,51474,51382,42516,26083,42516,42516,42516,26079,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,51399,25598,18486,18508,21522,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,42516,25917,42516,42516,42516,42516,42516,42516,42517,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,46363,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,22341,46316,46316,46316,39789,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,23494,42516,42516,45092,51424,51429,51429,51451,23492,51445,51467,42516,42516,42516,42516,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,51497,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,51190,25598,18486,18508,19308,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,51517,20264,20301,20317,20346,20333,20349,20365,51553,20397,20422,20606,20438,20453,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,94506,94506,94506,94506,94506,94506,94506,94506,94506,94506,0,94506,90409,94506,94506,94506,94506,94506,94506,94506,94506,94506,365,94506,90409,94506,94506,94506,94506,94506,94506,94506,69632,73728,94506,94506,94506,94506,94506,65536,94506,12290,3,0,0,2183168,0,0,0,90409,94506,299,300,0,2134016,303,304,304,304,304,304,304,304,0,0,0,0,0,304,0,304,1,289,3,0,0,0,295,0,0,0,0,0,0,0,0,0,0,796,0,796,0,0,0,0,0,2424832,2433024,0,0,2457600,0,0,0,0,0,0,0,0,0,0,650,0,0,0,0,0,0,0,0,0,2904064,2908160,0,0,0,0,0,0,0,0,0,0,0,1685,1686,0,1688,0,0,0,0,3117056,0,0,0,0,0,0,0,365,365,0,0,0,0,0,0,448,0,0,474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,559,582,559,582,559,559,582,0,0,0,2138112,0,0,0,0,0,0,0,0,0,0,0,0,0,2991,0,0,0,2772992,2805760,2830336,0,2863104,2920448,0,0,0,0,0,0,0,2805760,2920448,0,0,0,0,0,0,0,2732032,0,2179072,2179072,2179072,2179072,2424832,2433024,0,0,0,0,0,2920448,0,0,0,0,0,0,0,0,0,0,0,1702,0,1704,0,0,2179072,2830336,2179072,2179072,2863104,2179072,2179072,2179072,2179072,2920448,2179072,2179072,2179072,2179072,2179072,2179072,2126737,2126737,2126737,2126737,2126737,2593681,2126737,2126737,2126737,2126737,0,914,2125824,2125824,2125824,2125824,2125824,2424832,2433024,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,0,2125824,2125824,2125824,2125824,2723840,2125824,2732032,2772992,2125824,2125824,2125824,2805760,2125824,2830336,2125824,2125824,2863104,2125824,2125824,2125824,2125824,2920448,2125824,2125824,2125824,2125824,2125824,2920448,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3117056,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2457600,2125824,2125824,2125824,2125824,2183168,0,0,0,0,0,0,0,0,0,0,661,0,661,0,0,0,2408448,0,0,2584576,0,0,0,0,2838528,0,0,2838528,0,0,0,0,0,2179072,2179072,2179072,2408448,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2625536,2179072,2179072,0,2125824,2125824,2125824,2408448,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3125248,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2662400,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2801664,2813952,2125824,2125824,2801664,2813952,2125824,2838528,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2461696,0,0,0,0,0,0,0,0,0,0,0,0,2600960,0,0,0,0,0,0,2441,0,0,0,0,0,0,0,0,0,0,2493,2494,0,0,2497,0,2768896,2777088,2781184,0,2822144,0,0,2883584,0,0,0,0,0,0,0,0,0,0,0,0,3055616,0,0,0,3080192,3100672,3104768,0,0,0,0,3186688,0,0,0,0,0,0,0,307,204800,0,0,0,0,0,0,0,0,0,111051,111051,111051,111051,111051,111051,111051,111051,1,0,0,0,0,0,2797568,0,0,0,0,0,0,0,2850816,2867200,0,0,0,0,0,441,0,0,332,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,0,0,3133440,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2131,0,0,0,0,0,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2461696,2465792,2179072,2768896,2777088,2781184,2797568,2822144,2179072,2179072,2179072,2883584,2179072,2912256,2179072,2179072,2179072,2179072,2179072,2179072,2523136,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2600960,0,0,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2461696,2465792,2125824,0,1142784,0,2179072,2125824,2125824,2179072,2179072,2179072,2179072,2179072,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2592768,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,24576,988,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2523136,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2600960,2125824,0,2125824,2125824,2125824,2125824,2125824,0,0,0,0,0,0,0,0,0,0,541,1272,541,541,541,541,2125824,2125824,2125824,2641920,2125824,2125824,2125824,2125824,2125824,2125824,2719744,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,2125824,2125824,2125824,2125824,2125824,2125824,299,0,0,0,299,0,300,0,0,0,2768896,2777088,2781184,2797568,2822144,2125824,2125824,2125824,2883584,2125824,2912256,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,2125824,2126812,2125824,2125824,2125824,2125824,2125824,2125824,3133440,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3207168,2125824,0,0,0,2179072,2125824,2125824,2179072,2179072,2179072,2179072,2179072,2125824,2125824,2125824,2125824,0,0,0,0,0,0,2510848,2514944,0,0,2125824,2125824,3133440,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3207168,2125824,2179072,2125824,0,2125824,2125824,2125824,2125824,2125824,0,0,0,0,0,0,300,0,0,0,0,0,0,2764,0,0,0,0,0,0,0,0,0,0,2059,2060,0,2062,2063,0,0,0,0,2605056,0,0,0,0,2887680,0,2924544,0,0,0,0,0,0,0,2108,0,0,0,0,0,0,0,0,0,0,0,0,0,1177,0,0,0,0,0,0,3162112,3170304,0,0,3219456,3035136,0,0,0,0,0,3072e3,3190784,0,0,0,0,0,0,0,0,2576384,0,0,0,0,0,0,0,334,0,0,334,0,0,334,0,0,0,0,0,0,0,2387968,0,0,0,0,0,0,0,0,0,0,0,2050,0,0,0,0,3121152,3141632,0,0,0,2924544,0,2682880,0,0,0,0,0,0,3112960,2387968,2924544,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3035136,2179072,2179072,3072e3,2179072,2179072,2179072,2179072,2699264,2179072,2715648,2179072,2723840,2179072,2732032,2772992,2179072,2179072,2179072,2805760,3121152,2179072,2179072,3141632,2179072,2179072,2179072,3170304,2179072,2179072,3190784,3194880,2179072,0,0,0,0,0,0,541,1734,541,541,541,541,541,541,1740,541,2125824,3190784,3194880,2125824,0,0,0,0,0,0,2387968,2125824,2125824,2125824,2420736,2125824,2125824,2125824,2125824,2125824,2453504,2125824,2473984,2125824,2736128,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2887680,2125824,2125824,2924544,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,0,0,2125824,2125824,2125824,2125824,2125824,3141632,2125824,2125824,2125824,3170304,2125824,2125824,3190784,3194880,2125824,2179072,2125824,2125824,2179072,2179072,2179072,2179072,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,299,0,300,3112960,3219456,2125824,2125824,3112960,3219456,2125824,2125824,3112960,3219456,0,0,0,0,0,0,0,347,0,405,0,0,0,0,0,405,3022848,0,0,3145728,0,3203072,0,0,0,0,0,0,0,0,0,0,0,2072,0,0,0,0,0,0,0,3067904,0,0,0,0,0,0,0,0,0,0,0,0,0,3003,0,0,0,0,0,2621440,0,3182592,2899968,0,2961408,0,0,2179072,2179072,2416640,2179072,2179072,2179072,2179072,2928640,2179072,2179072,2179072,2998272,2179072,2179072,2179072,2179072,3059712,2179072,2179072,2179072,2179072,3178496,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2494464,2125824,2125824,0,2179072,2125824,2125824,0,2179072,2125824,2125824,2985984,2985984,2985984,2985984,0,0,0,0,0,0,2490,0,0,0,0,0,0,0,0,0,335,0,0,0,0,0,0,2179072,2445312,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2551808,2179072,2179072,2179072,2179072,3178496,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2495377,2126737,2126737,2126737,2126737,2126737,3179409,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2495451,2126811,2895872,2916352,2179072,2179072,2945024,2179072,2179072,2994176,2179072,3002368,2179072,2179072,3022848,2179072,3067904,3084288,2125824,3096576,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3223552,0,0,2125824,2125824,2416640,3096576,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3223552,0,0,2125824,2125824,2416640,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3035136,2125824,2125824,3072e3,2125824,2125824,2125824,3121152,2125824,2125824,3141632,2125824,2125824,2125824,3170304,2125824,2125824,2125824,2125824,2445312,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2551808,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2637824,2125824,2125824,2125824,2125824,2727936,2752512,2125824,2125824,2125824,2125824,2842624,2846720,2842624,2846720,2125824,2895872,2916352,2125824,2125824,2945024,2125824,2125824,2994176,2125824,3002368,2125824,2125824,3022848,2125824,3067904,2125824,3067904,3084288,2125824,3096576,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3223552,2179072,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3039232,2125824,3063808,2125824,2125824,2125824,2125824,2125824,3100672,2547712,2596864,0,0,0,0,0,0,0,0,0,0,0,0,0,3178496,2670592,0,2744320,0,0,0,0,0,2928640,0,0,0,3059712,0,2543616,2666496,0,2633728,0,0,0,0,0,0,2494464,0,0,0,0,0,0,0,0,0,2780,0,0,0,0,2785,0,0,0,0,2957312,0,0,0,0,0,0,0,0,0,0,0,0,0,3188,0,0,0,0,3211264,0,0,0,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2494464,2179072,2179072,2179072,2707456,2179072,2736128,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2887680,2179072,2179072,2179072,2179072,2641920,2179072,2179072,2179072,2179072,2179072,2179072,2719744,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3137536,2126737,2126737,2499473,2126737,2126737,2126737,2556817,2565009,2179072,2514944,2179072,2179072,2179072,2543616,2547712,2179072,2179072,2596864,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3039232,2179072,3063808,2179072,2179072,2179072,2179072,3100672,2125824,2125824,2125824,2125824,2125824,3178496,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2494464,2125824,0,2125824,2125824,2125824,2125824,2125824,0,0,0,0,1080,1084,0,0,1088,2125824,2514944,2125824,2125824,2125824,2543616,2547712,2125824,2125824,2596864,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2928640,2125824,2125824,2125824,2998272,2125824,2125824,2125824,2125824,3059712,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3178496,2179072,2125824,2125824,2179072,2179072,2125824,2125824,2125824,2125824,0,2486272,0,0,0,0,0,2678784,2854912,3006464,2441216,0,0,0,0,0,0,0,0,0,2932736,2965504,0,0,3076096,0,0,0,0,0,444,0,0,0,0,0,0,0,0,0,0,407,0,0,0,0,0,0,2695168,3174400,2646016,2613248,2703360,0,0,0,0,2977792,0,0,3047424,3129344,0,0,0,0,0,645,0,0,648,649,0,0,0,0,0,0,0,725,0,0,0,0,0,0,0,0,0,743,0,0,0,0,0,0,0,0,0,0,0,0,2769,0,0,0,2981888,2396160,0,3153920,0,0,0,0,0,0,0,0,2740224,0,0,0,0,0,0,541,3027,541,541,541,541,541,541,541,541,541,2584,541,541,541,0,0,0,0,0,2793472,0,0,0,0,0,2469888,2506752,2756608,0,0,2580480,0,0,0,0,0,0,2517,0,0,0,0,0,0,0,0,541,541,541,3029,541,541,541,541,541,541,0,2396160,2400256,2179072,2179072,2441216,2179072,2469888,2179072,2179072,2179072,2519040,2179072,2179072,2179072,2179072,2179072,2179072,2801664,2813952,2179072,2838528,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2453504,2179072,2473984,2482176,2179072,2179072,2179072,2179072,2588672,2179072,2613248,2646016,2179072,2179072,2695168,2756608,2179072,2179072,2179072,2932736,2179072,2179072,2179072,2179072,2179072,3117056,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2584576,2179072,2179072,2125824,2125824,2125824,2519040,2125824,2125824,2125824,2125824,2588672,2125824,2613248,2646016,2125824,2125824,2695168,2756608,2125824,2125824,2125824,2125824,2932736,2125824,2125824,2125824,2125824,2125824,2932736,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3129344,2125824,2125824,3153920,3166208,3174400,2506752,2506752,2506752,0,3108864,3198976,0,0,3043328,0,3149824,2936832,0,2760704,3180,2437120,0,0,0,0,0,0,646,0,0,0,0,651,652,653,654,655,0,0,0,0,0,2953216,0,0,2826240,3158016,2428928,0,3018752,2764800,2572288,0,0,0,0,0,677,0,0,0,0,0,0,0,0,0,0,0,2741,0,0,0,0,0,3051520,2179072,2428928,2437120,2179072,2486272,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2654208,2678784,2760704,2764800,2854912,2969600,2179072,3006464,2179072,3018752,2179072,2179072,2179072,3149824,2125824,2428928,2437120,2969600,2125824,3006464,2125824,3018752,2125824,2125824,2125824,2125824,3149824,2125824,2428928,2437120,2125824,2486272,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2654208,2678784,2760704,2764800,2785280,2854912,2969600,2125824,3006464,2125824,3018752,2125824,2125824,2125824,2125824,3149824,2179072,3051520,2125824,3051520,2125824,3051520,0,2490368,2498560,0,0,0,0,2875392,0,0,0,3180,0,0,0,0,0,0,2834432,0,3227648,2568192,2564096,0,2940928,2179072,2179072,2498560,2179072,2179072,2179072,2555904,2564096,2179072,2179072,2179072,2617344,2179072,2179072,2179072,2179072,2179072,2179072,2662400,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3137536,2125824,2125824,2498560,2125824,2125824,2125824,2555904,2564096,2125824,2555904,2564096,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3137536,2940928,2940928,0,0,0,0,0,2748416,2879488,0,0,0,0,0,0,0,0,0,2519,0,0,0,0,0,541,2940928,0,0,0,0,0,2748416,2879488,0,3180,0,0,0,0,0,0,0,375,0,0,0,0,0,0,0,360,0,0,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2125824,0,2502656,0,0,3010560,0,0,0,0,0,0,0,0,2990080,2179072,2179072,2179072,3129344,2179072,2179072,3153920,3166208,3174400,2396160,2400256,2125824,2125824,2441216,2125824,2469888,2125824,2125824,2125824,2519040,2125824,2125824,2179072,2502656,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3010560,2179072,2179072,2125824,2125824,2125824,2125824,2125824,2125824,2605056,2125824,2629632,2125824,2125824,2650112,2125824,2125824,2125824,2707456,2125824,2736128,2125824,2125824,2125824,2125824,2125824,2502656,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3010560,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3137536,2125824,2125824,2498560,2125824,2125824,2502656,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3010560,2125824,2125824,2125824,0,0,0,0,0,0,2739,0,0,0,0,0,0,0,2743,0,0,0,2592768,0,0,0,0,0,0,2179072,2179072,2179072,2179072,2179072,2592768,2179072,2179072,2179072,3129344,2179072,2179072,3153920,3166208,3174400,2397073,2401169,2126737,2126737,2442129,2126737,2470801,2125824,2125824,2449408,0,2535424,3031040,2859008,0,0,0,0,0,2179072,2449408,2179072,2535424,2179072,2609152,2179072,2859008,2179072,2179072,2179072,3031040,2125824,2449408,2125824,2535424,2125824,2609152,2125824,2859008,2125824,2125824,2125824,3031040,2125824,2125824,2449408,2125824,2535424,2125824,2609152,2125824,2859008,2125824,2125824,2125824,0,2179072,2125824,2125824,2457600,2179072,2179072,2179072,2179072,2457600,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2179072,2125824,2125824,2179072,2179072,2179072,2179072,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,0,0,0,0,0,0,0,0,0,0,1727,0,0,1728,0,3031040,2125824,2527232,0,0,0,0,0,2179072,2527232,2179072,2179072,2179072,2179072,2179072,2125824,2126738,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3125248,2125824,2125824,2125824,2125824,2125824,2527232,2125824,2125824,2125824,2125824,2125824,3092480,2125824,2527232,2125824,2125824,2125824,2125824,2125824,3092480,0,0,0,0,0,693,0,0,0,0,0,0,365,365,365,0,0,0,0,0,707,708,0,0,0,0,0,714,0,0,0,0,0,0,703,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3020,3026944,0,0,0,2404352,2179072,2179072,2179072,2179072,3026944,2404352,2125824,2125824,2125824,2125824,3026944,0,2539520,0,2949120,2179072,2658304,2973696,2179072,2125824,2658304,2973696,2125824,2125824,2658304,2973696,2125824,0,2711552,256e4,2179072,256e4,2125824,256e4,2125824,0,2179072,2179072,2531328,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2605056,2179072,2629632,2179072,2179072,2650112,0,0,2809856,0,0,0,0,0,0,0,0,0,0,3088384,0,0,0,0,0,442,0,0,454,470,470,470,470,470,470,470,470,470,470,480,470,470,470,470,470,111051,111051,111051,111051,111051,111051,111051,111051,111051,111051,111051,111051,111051,111051,111051,111051,459,459,111051,459,459,459,459,459,459,459,459,459,111051,111051,111051,111051,111051,111051,111051,111051,111051,111051,459,111051,111051,111051,459,111051,111051,111051,111051,111051,0,0,0,0,0,0,0,0,0,2795,0,0,0,0,0,0,12290,3,0,0,2183168,0,0,0,0,0,299,300,0,2134016,303,304,2125824,1060,0,0,2179072,2125824,2125824,2179072,2179072,2179072,2179072,2179072,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,1060,2125824,2125824,2125824,2125824,2125824,0,0,0,0,0,0,0,0,0,0,662,0,662,0,0,0,0,303,118784,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2434,0,303,303,303,303,303,303,303,0,0,0,0,0,303,0,303,1,12290,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2155,0,12290,3,0,0,2183168,0,0,0,0,0,33403,300,0,2134016,49791,304,2105632,12290,3,0,0,294,0,0,0,0,294,0,0,0,0,0,0,0,2124,0,0,0,0,0,0,0,0,0,788,814,0,814,809,0,0,0,122880,122880,122880,122880,122880,122880,122880,122880,122880,122880,122880,122880,122880,122880,122880,0,0,0,122880,0,122880,122880,122880,0,0,0,0,0,122880,0,0,122880,0,0,0,0,0,0,0,0,122880,0,0,0,0,0,0,0,0,0,0,0,0,3002,0,0,0,0,0,0,0,0,122880,122880,122880,122880,122880,122880,122880,122880,122880,0,0,122880,0,0,0,0,0,0,0,0,0,0,712,0,0,0,716,0,0,0,147456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2459,0,1092,0,2424832,2433024,0,0,2457600,0,0,0,0,0,0,0,0,0,0,728,0,0,0,0,0,1823,2125824,2125824,2125824,2408448,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,1919,2125824,2125824,2125824,0,0,0,131072,0,0,0,69632,73728,0,0,0,0,0,65536,0,0,0,0,0,740,407,0,0,0,0,0,0,0,0,0,0,1158,0,0,0,0,0,0,131072,0,0,131072,131072,0,0,0,0,0,0,0,131072,0,0,131072,0,0,131072,0,0,0,0,135168,135168,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2756,0,0,0,0,135168,0,0,135168,0,0,0,0,0,0,0,0,0,0,735,0,797,0,0,0,0,0,0,0,135168,0,135168,135168,135168,135168,135168,135168,0,135168,135168,135168,135168,135168,135168,135168,0,0,0,0,0,135168,0,135168,1,12290,3,0,0,2183168,0,0,0,0,0,636,637,0,2134016,640,641,0,1361,2125824,2125824,2125824,2125824,2125824,2424832,2433024,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,0,987,2125824,2125824,2125824,2125824,0,304,139264,0,0,0,0,0,0,0,0,0,0,0,0,0,0,225709,0,12290,3,0,0,2183168,0,0,0,0,0,299,33406,0,2134016,303,49794,0,61440,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3178,0,304,2424832,2433024,0,0,2457600,0,0,0,0,0,0,0,0,0,0,757,0,0,0,0,762,301,301,301,143661,371,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,143661,301,301,143661,301,301,301,143731,301,301,301,143731,69632,73728,301,301,143661,301,301,65536,301,301,301,301,301,143661,143661,143661,143661,143661,143661,143661,143661,143661,301,301,143661,301,301,301,301,301,301,301,301,301,366,301,0,143661,301,301,301,143661,143661,143661,143661,143661,143661,143661,143661,143661,143661,143661,143661,143661,143661,143661,143661,301,301,301,143661,301,143661,143661,143661,143661,143661,143731,143661,143731,143731,143731,143731,143731,143731,143731,143661,143661,143661,143661,143661,143661,143661,143661,1,301,143661,301,143661,143661,143661,143661,143661,143661,301,0,301,0,301,301,301,301,301,301,301,301,301,143661,301,143661,143661,143661,143661,301,0,0,0,3117056,0,0,0,0,0,0,0,2200252,2200252,0,0,0,0,0,0,662,0,0,0,0,0,541,541,541,541,541,541,541,541,2168,541,541,541,0,0,0,0,0,155648,155648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,325,0,0,0,0,155648,155648,0,155648,155648,155648,155648,155648,155648,155648,155648,155648,0,0,0,0,155648,0,0,155648,155648,155648,155648,155648,155648,155648,155648,155648,155648,155648,155648,155648,155648,155648,155648,0,0,0,0,0,155648,0,155648,0,0,0,0,0,155648,0,0,0,0,0,155648,155648,0,155648,155648,0,12290,3,0,0,2183168,126976,0,0,0,0,299,300,0,2134016,303,304,0,0,0,3117056,0,0,0,0,0,0,0,365,0,0,0,0,0,0,0,3563,0,541,541,541,541,541,541,541,541,541,3209,541,541,541,541,541,159744,159744,159744,159744,0,0,159744,0,0,0,0,0,0,0,0,159744,0,0,0,0,0,0,0,159744,159744,159744,163840,159744,159744,159744,159744,159744,0,0,0,0,0,0,0,0,0,2805,0,541,541,541,541,541,0,25162,0,0,0,159744,0,0,0,25162,25162,25162,159744,25162,25162,25162,25162,25162,25162,25162,25162,159744,159744,159744,159744,25162,159744,25162,1,167936,167936,167936,167936,167936,167936,167936,167936,167936,167936,167936,167936,167936,167936,167936,167936,1,167936,167936,167936,167936,0,0,167936,0,0,0,0,0,0,0,0,167936,167936,167936,167936,167936,167936,167936,167936,167936,0,0,0,0,0,0,0,0,0,2976,0,0,0,0,0,0,0,0,0,2138112,1183,0,0,0,0,0,0,0,0,0,0,0,0,3168,0,0,0,0,0,0,0,0,172032,0,172032,0,0,0,0,0,0,0,0,0,365,0,293,0,0,0,348,172032,172032,0,0,172032,0,0,172032,172032,0,172032,0,0,0,0,172032,172032,0,0,0,0,0,0,0,0,0,0,172032,0,0,0,0,0,0,2777,0,0,0,0,0,0,2784,0,0,0,0,0,0,2986,2987,0,2988,0,2990,0,0,0,0,0,0,0,69632,73728,0,135168,135168,0,0,65536,135168,172032,0,172032,172032,0,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,0,0,0,0,0,0,0,0,0,3014,0,0,0,0,0,0,176128,176128,176128,176128,176128,176128,176128,176128,176128,176128,176128,176128,176128,176128,176128,176128,1,176128,176128,176128,176128,0,0,176128,0,0,0,0,0,0,0,0,176128,176128,176128,176128,176128,176128,176128,176128,176128,0,0,0,0,0,0,0,0,0,3175,0,0,0,0,0,0,0,3,78115,78115,293,0,634,0,0,0,299,300,0,2134016,303,304,1164,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,361,541,541,1308,541,541,541,541,541,541,541,541,541,541,541,541,541,0,0,2242,0,914,563,563,563,563,563,563,563,563,563,563,563,563,563,563,0,0,587,587,587,1203,541,587,563,541,541,541,541,541,563,563,563,563,3070,563,563,563,563,3074,563,563,587,587,587,587,587,1079,0,0,0,0,0,0,0,0,0,0,1102,0,0,0,0,0,0,0,229376,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1134592,0,0,0,0,1691,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3201,563,563,587,587,587,587,0,0,0,0,0,0,0,0,0,0,541,541,541,541,3569,541,541,0,0,563,563,563,563,563,563,563,2251,563,563,563,563,563,563,587,3109,587,587,587,587,587,587,587,587,2407,587,587,587,587,587,2412,2413,563,563,2288,563,563,563,563,563,563,563,563,563,563,563,563,563,563,3541,587,587,587,2375,587,587,587,587,587,587,587,587,587,587,587,587,587,1497,587,587,0,0,0,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,1439,0,3007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3317,541,541,541,541,3038,541,541,541,541,541,541,541,541,541,541,541,541,1300,541,541,541,563,563,563,3078,563,563,563,563,563,563,563,563,563,563,563,563,1401,563,563,563,587,587,587,587,3120,587,587,587,587,587,587,587,587,587,587,587,1042,587,587,587,587,0,3159,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,155648,3214,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1359,563,563,563,587,3259,587,587,587,3262,587,587,587,587,587,587,587,541,541,563,563,587,587,0,0,0,0,0,0,0,0,0,0,3609,541,541,541,587,587,3270,587,587,587,587,587,587,587,587,587,587,587,587,587,1498,587,587,541,541,541,3330,3331,541,541,541,541,541,541,541,541,563,563,563,563,3581,563,563,563,563,563,3349,563,563,563,563,563,563,563,563,563,587,587,587,587,587,587,587,587,0,541,541,541,3406,541,541,541,541,563,563,563,563,563,563,3415,563,0,587,587,587,587,587,291,1079,0,0,0,0,0,0,0,0,0,249856,249856,249856,249856,249856,249856,249856,249856,1,587,3431,587,587,587,587,587,587,3437,587,587,587,3441,587,541,563,563,3473,563,563,563,563,3478,563,563,563,563,3483,563,563,563,563,977,563,563,563,563,0,587,587,587,587,587,587,1931,587,587,587,587,587,587,587,587,587,2678,587,587,587,2681,587,587,0,0,3456,541,541,541,541,541,541,541,541,541,541,541,541,541,0,2586,0,541,3471,563,563,563,563,563,563,563,563,563,563,563,563,563,563,0,2327,563,3487,587,587,587,587,587,587,587,587,587,587,587,587,587,587,0,0,563,563,587,587,587,587,0,0,541,541,563,563,587,587,0,541,541,541,3205,541,541,541,541,541,541,541,3210,541,541,541,541,541,541,2816,541,541,2820,541,541,541,541,541,541,541,541,3041,541,541,541,541,541,541,541,541,2556,541,541,541,541,541,541,541,541,2233,541,541,541,541,541,0,0,563,587,0,541,563,587,0,541,563,587,0,541,563,587,0,0,0,0,0,0,0,0,0,3510,0,0,0,0,541,541,541,541,541,2165,541,541,541,541,541,541,541,541,3616,563,563,563,563,563,563,563,2265,563,563,563,563,2270,563,563,563,184932,184932,184932,184932,184932,184932,184932,0,0,0,0,0,184932,0,184932,1,12290,3,0,0,0,0,0,0,0,0,0,0,0,0,301,301,0,0,301,301,143661,301,301,301,301,301,301,301,301,301,301,301,143731,301,301,301,301,12290,3,78115,78115,293,0,0,0,0,0,299,300,0,2134016,303,304,587,0,0,188416,541,587,563,541,541,541,541,541,563,563,563,563,587,587,587,587,0,0,0,0,2731,0,0,0,0,305,0,0,0,0,0,0,0,0,0,0,0,0,0,249856,0,0,0,192972,192972,192972,192972,192972,192972,192972,192972,192972,192972,192972,192972,192972,192972,192972,192972,0,192972,0,1,0,0,0,0,0,192972,192972,192972,192972,192972,192972,192972,192972,192972,192972,0,0,192972,0,0,0,0,0,0,0,0,0,0,1145,365,365,0,0,1148,192972,192972,192972,0,192972,192972,192972,192972,192972,0,0,0,0,0,0,0,0,0,3304,0,3180,0,0,0,0,302,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,541,407,407,407,407,407,407,407,0,0,0,0,0,407,0,407,1,12290,3,0,0,0,0,0,0,0,0,0,0,0,118784,299,12290,3,78115,78115,293,0,0,0,0,0,299,300,0,302,303,304,587,0,0,740,541,587,563,541,541,541,541,541,563,563,563,563,587,587,587,587,0,0,2729,0,0,0,0,0,0,740,1184,0,0,0,0,1188,0,0,0,0,0,0,0,378,0,381,0,0,0,381,0,0,563,587,587,587,587,587,1079,1559,0,0,0,1565,0,0,0,1571,2034,0,0,0,0,1577,2036,0,0,0,0,0,0,0,397,0,0,0,0,0,397,0,0,0,0,0,1577,0,0,0,0,0,0,0,0,0,0,0,0,0,262144,0,0,0,0,0,1188,1669,0,0,0,0,0,0,0,0,0,0,0,0,3177,0,0,0,563,563,587,587,587,587,1559,2030,0,0,0,0,1565,2032,0,0,0,0,0,0,2997,0,0,0,0,0,0,0,0,0,0,1586,1587,0,0,0,0,0,0,0,0,1669,0,0,0,0,0,0,0,0,0,0,0,0,106496,0,0,0,0,0,0,2034,0,2036,0,0,0,0,0,0,0,0,0,0,0,0,0,1150976,0,0,0,0,0,563,563,563,563,2325,2652,0,0,0,0,587,587,587,587,587,587,587,587,587,587,587,587,587,2343,0,307,0,307,0,0,0,0,0,0,0,0,0,307,0,0,0,0,0,0,3011,0,0,0,0,3016,3017,0,3019,0,0,0,0,0,204800,204800,0,204800,204800,204800,204800,204800,204800,204800,204800,204800,204800,204800,204800,204800,204800,204800,205107,204800,204800,205106,205107,204800,205106,205106,204800,204800,0,0,0,0,0,0,0,0,0,122880,0,122880,122880,122880,122880,122880,12290,3,0,0,2183801,0,0,0,0,0,299,300,151552,2134016,303,304,0,212992,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172032,0,0,151552,0,0,0,0,0,0,0,0,0,0,0,0,0,303,0,0,0,0,0,3117056,0,0,0,0,0,0,0,0,2200253,0,0,0,0,0,0,678,0,0,0,0,0,0,0,0,0,0,2977,0,0,0,0,0,0,914,2126737,2126737,2126737,2126737,2126737,2425745,2433937,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,3138449,2126811,2126811,2499547,2126811,2126811,2126737,2724753,2126737,2732945,2773905,2126737,2126737,2126737,2806673,2126737,2831249,2126737,2126737,2864017,2126737,2126737,2126737,2126737,2126811,2126811,2126811,2126811,2126811,2593755,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3036123,2126811,2126811,3072987,2126811,2126811,2126811,3122139,2126811,2126737,2126737,2921361,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,3117969,2126737,0,2126811,2126811,2126811,2126811,2126811,0,0,0,0,0,0,0,0,0,0,1190,0,0,0,0,0,2126811,2425819,2434011,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3126235,2126811,2126811,2126811,2126811,2126811,2626523,2126811,2126811,2126811,2126811,2126811,2126811,2700251,2126811,2716635,2126811,2724827,2126811,2733019,2773979,2126811,0,2502656,0,0,3010560,0,0,0,0,0,0,0,0,2990080,2179072,2179072,3125248,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2125824,2125824,2125824,2125824,2125824,2592768,2125824,2125824,2125824,2125824,2126811,2126811,2806747,2126811,2831323,2126811,2126811,2864091,2126811,2126811,2126811,2126811,2921435,2126811,2126811,2126811,0,2179072,2126811,2126737,2457600,2179072,2179072,2179072,2179072,2458513,2126737,2126737,2126737,2126737,2126737,2524049,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2601873,2126737,2126737,2458587,2126811,2126811,2126811,2126811,2183168,0,0,0,0,0,0,0,0,0,0,1206,0,1208,0,0,0,0,2126737,2126737,2126737,2409361,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,0,0,2126811,2126811,2126811,2409435,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2839515,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3118043,2126811,2126811,2126811,2126811,2126811,2126811,2126811,0,0,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2462609,2466705,2126737,2126737,2126737,2642833,2126737,2126737,2126737,2126737,2126737,2126737,2720657,2126737,2126737,2126737,2126737,2126737,2126737,2126737,3040145,2126737,3064721,2126737,2126737,2126737,2126737,2126737,3101585,2769809,2778001,2782097,2798481,2823057,2126737,2126737,2126737,2884497,2126737,2913169,2126737,2126737,2126737,2126737,2126737,2126737,2626449,2126737,2126737,2126737,2126737,2126737,2126737,2700177,2126737,2716561,2126737,2126737,3134353,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,3208081,2126737,0,0,0,0,0,0,3026,541,541,541,541,541,541,541,541,541,541,1352,541,541,541,541,541,0,0,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2462683,2466779,2126811,2126811,2126811,2126811,2126811,2929627,2126811,2126811,2126811,2999259,2126811,2126811,2126811,2126811,3060699,2126811,2126811,2126811,2126811,2454491,2126811,2474971,2483163,2126811,2126811,2126811,2126811,2126811,2126811,2532315,2126811,2126811,2126811,2446299,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2552795,2769883,2778075,2782171,2798555,2823131,2126811,2126811,2126811,2884571,2126811,2913243,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3130331,2126811,2126811,3154907,3167195,3175387,2506752,2507739,2507665,2126811,2126811,3134427,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3208155,2126811,2179072,2126811,2126811,2126811,2642907,2126811,2126811,2126811,2126811,2126811,2126811,2720731,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3040219,2126811,3064795,2126811,2126811,2126811,2126811,2126811,3101659,0,0,0,2388881,2126737,2126737,2126737,2421649,2126737,2126737,2126737,2126737,2126737,2454417,2126737,2474897,2483089,2126737,2126737,2126737,2126737,2126737,2126737,2532241,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2605969,2126737,2630545,2126737,2126737,2651025,2126737,2126737,2126737,2708369,2126737,2737041,2126737,2126737,2126737,2126737,2126737,2126737,2663313,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,0,0,988,2126811,2126811,2126811,2126811,3036049,2126737,2126737,3072913,2126737,2126737,2126737,3122065,2126737,2126737,3142545,2126737,2126737,2126737,3171217,2126737,2126737,2126737,2888593,2126737,2126737,2925457,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,986,2126811,2126811,2126811,2126811,2126811,2126811,2126737,3191697,3195793,2126737,0,0,0,0,0,0,2388955,2126811,2126811,2126811,2421723,2126811,2126811,2449408,0,2535424,3031040,2859008,0,0,0,0,0,2179072,2449408,2179072,2535424,2126811,2737115,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2888667,2126811,2126811,2925531,2126811,2126811,2126811,2126811,2126811,2585563,2126811,2126811,2126811,2126811,2126811,2618331,2126811,2126811,2126811,2126811,2126811,2126811,2606043,2126811,2630619,2126811,2126811,2651099,2126811,2126811,2126811,2708443,2126811,3142619,2126811,2126811,2126811,3171291,2126811,2126811,3191771,3195867,2126811,2179072,2126811,2126737,2179072,2179072,2179072,2637824,2179072,2179072,2179072,2179072,2727936,2752512,2179072,2179072,2179072,2842624,2846720,2179072,3112960,3219456,2126737,2126737,3113873,3220369,2126811,2126811,3113947,3220443,0,0,0,0,0,0,0,415,415,0,0,0,0,0,415,0,3096576,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3223552,0,0,2126737,2126737,2417553,2126737,2126737,2126737,2126737,2929553,2126737,2126737,2126737,2999185,2126737,2126737,2126737,2126737,3060625,2126737,2126737,2126737,2126737,2933649,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,3130257,2126737,2126737,2126737,2519953,2126737,2126737,2126737,2126737,2589585,2126737,2614161,2646929,2126737,2126737,2696081,2757521,2126737,2446225,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2552721,2126737,2126737,2126737,2638737,2126737,2126737,2126737,2126737,2728849,2753425,2126737,2126737,2126737,2126737,2843537,2847633,2126737,2896785,2917265,2126737,2126737,2945937,2126737,2126737,2995089,2126737,3003281,2126737,2126737,3023761,2126737,3068817,3085201,2126737,3097489,2126737,2126737,2126737,2126737,2126737,2126737,2126737,3224465,0,0,2126811,2126811,2417627,2843611,2847707,2126811,2896859,2917339,2126811,2126811,2946011,2126811,2126811,2995163,2126811,3003355,2126811,2126811,3023835,2126811,3068891,3085275,2126811,3097563,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3224539,2179072,2126811,2126737,2126737,2126737,3031953,2126737,2126811,2450395,2126811,2536411,2126811,2610139,2126811,2859995,2126811,2126811,2126811,2126811,2126811,2524123,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2601947,2126811,2515857,2126737,2126737,2126737,2544529,2548625,2126737,2126737,2597777,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2585489,2126737,2126737,2126737,2126737,2126737,2618257,2126811,2515931,2126811,2126811,2126811,2544603,2548699,2126811,2126811,2597851,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2655195,2679771,2761691,2765787,2786267,2855899,2970587,2126811,3007451,3154833,3167121,3175313,2397147,2401243,2126811,2126811,2442203,2126811,2470875,2126811,2126811,2126811,2520027,2126811,2126811,2126811,2126811,2126811,2638811,2126811,2126811,2126811,2126811,2728923,2753499,2126811,2126811,2126811,2126811,2126811,2126811,3179483,2179072,2126811,2126737,2179072,2179072,2126737,2126737,2126811,2126811,0,0,0,0,0,0,2510848,2514944,0,0,2678784,2760704,2764800,2854912,2969600,2179072,3006464,2179072,3018752,2179072,2179072,2179072,3149824,2126737,2429841,2438033,2126737,2487185,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2655121,2679697,2761617,2765713,2786193,2855825,2970513,2126737,3007377,2126737,3019665,2126737,2126737,2126737,2126737,3150737,2126811,2429915,2438107,2126811,2487259,2126811,2126811,2589659,2126811,2614235,2647003,2126811,2126811,2696155,2757595,2126811,2126811,2126811,2126811,2933723,2126811,2126811,2663387,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2802651,2814939,2126811,3019739,2126811,2126811,2126811,2126811,3150811,2179072,3051520,2126737,3052433,2126811,3052507,0,2490368,2498560,2126811,2556891,2565083,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3138523,2940928,2941841,2941915,0,0,0,0,0,2748416,2879488,0,3180,0,0,0,0,0,0,0,647,0,0,0,0,0,0,0,0,0,2467,0,0,2470,0,0,0,2179072,2502656,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3010560,2179072,2179072,2126737,2126737,2126811,2126811,0,2486272,0,0,0,0,0,2678784,2854912,3006464,2503569,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,3011473,2126737,2126737,2126737,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2179072,2126811,2126737,2179072,2179072,2179072,2179072,2126737,2126737,2126737,2126737,2126811,2126811,2126811,2126811,0,0,0,0,0,0,0,0,0,0,0,2112,0,0,0,0,2503643,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3011547,2126811,2126811,2126811,0,0,0,2179072,2126811,2126737,2179072,2179072,2179072,2179072,2179072,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2179072,2609152,2179072,2859008,2179072,2179072,2179072,3031040,2126737,2450321,2126737,2536337,2126737,2610065,2126737,2859921,3032027,2126811,2527232,0,0,0,0,0,2179072,2527232,2179072,2179072,2179072,2179072,2179072,2126737,2126737,2802577,2814865,2126737,2839441,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,3126161,2126737,2528145,2126737,2126737,2126737,2126737,2126737,3093393,2126811,2528219,2126811,2126811,2126811,2126811,2126811,3093467,0,0,0,0,0,782,0,0,0,0,0,0,541,843,541,541,541,541,541,1796,541,541,541,541,541,541,541,541,541,541,541,2822,541,541,541,541,3026944,0,0,0,2404352,2179072,2179072,2179072,2179072,3026944,2405265,2126737,2126737,2126737,2126737,3027857,2405339,2126811,2126811,2126811,2126811,3027931,0,2539520,0,2949120,2179072,2658304,2973696,2179072,2126737,2659217,2974609,2126737,2126811,2659291,2974683,2126811,0,2711552,256e4,2179072,2560913,2126737,2560987,2126811,0,2179072,2179072,3133440,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3207168,2179072,0,0,0,0,0,0,2464,0,0,0,0,0,0,0,0,0,324,398,0,0,0,324,0,2126737,2126811,0,2179072,2126737,2126811,0,2179072,2126737,2126811,2985984,2985984,2986897,2986971,0,0,0,0,0,0,3164,0,0,3167,0,0,0,0,0,0,0,1135,0,0,0,0,0,0,0,0,0,824,0,0,0,0,0,0,0,221184,221184,0,0,0,0,0,0,0,0,0,221184,221184,0,0,221184,221184,221184,0,0,0,0,0,0,0,221184,0,0,221184,221184,221184,221184,221184,221184,221184,221184,221184,221184,221184,221184,221184,221184,221184,221184,0,0,0,0,0,0,0,0,0,0,221184,0,221184,221184,221184,221184,221184,221184,221184,221184,221184,221184,1,12290,3,0,0,0,0,0,0,0,0,0,0,0,139264,300,0,303,0,0,0,303,0,304,0,0,0,304,0,0,0,304,69632,139682,0,0,0,0,0,65536,0,0,0,0,98304,0,0,0,53248,0,0,0,0,0,2662400,0,2813952,0,0,3133440,0,98304,0,0,0,0,0,0,0,0,0,0,0,0,111051,0,0,0,0,303,0,304,0,0,0,2473984,2478080,0,0,0,0,0,0,0,0,0,159744,159744,159744,159744,159744,159744,159744,159744,159744,159744,159744,159744,159744,159744,159744,159744,163840,3121152,2179072,2179072,3141632,2179072,2179072,2179072,3170304,2179072,2179072,3190784,3194880,2179072,914,0,0,0,0,0,0,3172,3173,0,0,0,0,0,0,0,0,0,665,0,0,668,0,0,0,0,914,0,2387968,2125824,2125824,2125824,2420736,2125824,2125824,2125824,2125824,2125824,2453504,2125824,2473984,2482176,2125824,2125824,2125824,2125824,2125824,2125824,2531328,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2605056,2125824,3190784,3194880,2125824,988,0,0,0,988,0,2387968,2125824,2125824,2125824,2420736,2125824,0,2125824,2125824,2125824,2125824,2125824,0,0,0,299,0,0,0,303,0,0,0,303,119198,73728,0,0,0,0,0,65536,0,3096576,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3223552,914,0,2125824,2125824,2416640,2125824,2125824,2125824,2125824,2125824,2125824,2625536,2125824,2125824,2125824,2125824,2125824,2125824,2699264,2125824,2715648,2125824,2723840,2125824,2732032,2772992,2125824,3084288,2125824,3096576,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3223552,988,0,2125824,2125824,2416640,225890,225890,225890,225890,225890,225890,225890,225741,225741,225741,225741,225741,225906,225741,225906,1,12290,3,0,0,0,0,0,0,0,90409,90409,90409,90409,0,94506,94506,90409,90409,94506,94506,94506,94506,94506,94506,94506,94506,94506,94506,94506,94506,94506,94506,94506,94506,1,2125824,237568,2125824,2125824,2125824,2125824,2125824,0,0,0,0,0,0,0,0,0,0,1222,0,0,0,0,0,249856,249856,249856,249856,249856,249856,249856,249856,249856,249856,249856,249856,249856,249856,249856,249856,0,0,0,0,0,0,0,0,0,217088,0,0,0,0,0,0,0,0,0,0,0,0,0,304,0,0,2125824,241664,2125824,2125824,2125824,2125824,2125824,0,0,0,0,0,0,0,0,0,0,1236,0,0,0,0,0,254414,254414,254414,254414,254414,254414,254414,254414,254414,254414,254414,254414,254414,254414,254414,254414,0,0,0,0,0,0,0,12290,0,0,0,2183168,0,0,270336,0,0,299,300,0,2134016,303,304,200704,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,687,2125824,0,2125824,2125824,2125824,2125824,2125824,0,0,180224,0,0,0,0,0,0,0,663,0,0,666,667,0,0,0,0,2940928,0,0,0,0,0,2748416,2879488,0,20480,0,0,0,0,0,0,0,679,0,0,0,0,0,0,0,0,0,1129,0,0,0,0,0,0,1,12290,2113826,0,0,0,0,0,0,296,0,0,0,296,0,0,0,0,0,0,3182,0,0,0,0,3187,0,0,0,0,0,0,0,69632,73728,0,0,0,0,0,65536,0,0,0,0,266240,0,0,0,0,0,0,0,0,0,0,0,266240,0,0,0,0,0,0,0,0,0,0,1,0,0,0,266240,0,0,0,0,0,0,0,0,0,0,0,0,0,2662400,0,2813952,12290,2113826,0,0,2183168,0,0,0,0,0,299,300,0,2134016,303,304,2125824,245760,0,0,2179072,2125824,2125824,2179072,2179072,2179072,2179072,2179072,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2584576,2125824,2125824,2125824,2125824,2125824,2617344,2125824,2125824,2125824,2125824,2125824,245760,2125824,2125824,2125824,2125824,2125824,0,0,0,0,0,0,0,0,0,0,1245,0,0,0,0,0,274432,274432,274432,274432,274432,274432,274432,0,0,0,0,0,274432,0,274432,1,12290,3,0,0,0,0,0,253952,0,0,0,253952,0,0,0,0,0,0,0,0,0,0,0,0,0,1155072,0,0,0,0,0,0,12290,3,78115,78115,293,0,0,0,0,0,299,300,0,0,303,304,563,563,587,587,587,587,0,2030,0,0,0,0,0,2032,0,0,0,0,0,0,3196,0,0,0,0,0,0,0,0,0,0,3186,0,0,0,3189,0,0,0,0,2034,0,0,0,0,0,2036,0,0,0,0,0,0,0,695,0,0,0,0,365,365,365,0,0,2485,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,266240,0,0,0,1678,0,0,0,0,0,0,0,0,0,0,0,0,338,0,0,0,0,0,0,0,1669,0,0,0,0,0,0,0,0,2114,0,0,0,0,0,0,3395,541,541,541,541,3399,541,541,541,541,541,541,1346,541,541,541,541,541,541,1356,541,541,12290,3,78115,78456,293,0,0,0,0,0,299,300,0,0,303,304,541,588,564,564,564,564,564,564,564,588,588,588,541,588,588,588,588,588,588,588,588,564,564,541,564,588,564,588,1,0,0,0,0,2775,0,0,0,0,0,0,0,0,0,0,0,0,163840,0,0,0,1,12290,3,78116,293,0,0,0,0,0,0,0,0,0,0,0,0,167936,0,0,0,282624,282624,282624,282624,282624,282624,282624,282624,282624,282624,282624,282624,282624,282624,282624,282624,1,0,0,0,0,0,282624,282624,282624,282624,282624,282624,282624,282624,282624,282624,0,0,282624,0,0,0,0,0,0,0,0,0,0,1600,1601,0,0,0,0,282624,282624,282624,0,282624,282624,282624,282624,282624,0,0,0,0,0,0,0,0,0,254414,254414,254414,254414,254414,254414,254414,254414,1,2981888,2396160,0,3153920,3180,0,0,0,0,0,0,0,2740224,0,0,0,0,0,0,679,751,0,0,0,0,0,0,0,0,0,1144,0,365,365,0,1147,0,0,0,0,0,286720,286720,0,286720,286720,286720,286720,286720,286720,286720,286720,286720,0,0,0,0,0,0,0,286720,286720,286720,286720,286720,286720,286720,286720,286720,286720,286720,286720,286720,286720,286720,286720,0,3108864,3198976,0,0,3043328,0,3149824,2936832,0,2760704,3305,2437120,0,0,0,0,0,0,680,0,0,0,0,0,0,0,0,0,300,0,0,0,0,0,0,0,0,0,0,2875392,0,0,0,3386,0,0,0,0,0,0,2834432,2940928,0,0,0,0,0,2748416,2879488,0,3386,0,0,0,0,0,0,0,709,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,309,0,0,0,0,0,308,0,308,309,0,308,308,0,0,0,308,308,309,309,0,0,0,0,0,0,308,408,309,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,781,0,0,0,309,413,0,0,69632,73728,0,0,0,0,0,65536,0,0,0,0,0,783,0,802,0,0,0,0,541,847,541,541,541,541,541,2830,2831,541,541,541,541,2834,541,541,541,541,541,541,541,3521,541,3523,541,541,3525,541,563,563,0,0,432,0,0,0,0,308,449,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,489,489,463,489,489,489,489,489,489,489,514,489,489,489,489,489,489,489,489,489,489,489,489,489,489,489,534,489,489,489,489,489,542,565,542,565,542,542,565,542,589,565,565,565,565,565,565,565,589,589,589,542,589,589,589,589,589,589,589,589,565,565,542,565,589,565,589,1,0,0,674,0,0,0,0,0,0,0,0,0,0,0,0,0,323,324,0,0,704,0,0,0,0,0,0,0,711,0,0,0,0,0,0,0,742,0,0,0,0,742,0,748,0,0,0,736,0,0,0,0,0,0,0,0,0,0,0,747,0,0,0,0,0,792,663,841,0,0,0,0,541,845,541,541,541,541,541,2217,541,541,541,541,541,541,541,541,541,541,541,1802,541,541,541,541,0,0,0,0,645,0,0,0,0,0,0,0,0,0,0,0,0,172032,0,0,0,0,0,0,0,0,765,0,0,768,0,0,0,0,774,0,0,778,0,0,0,0,0,0,3562,0,3564,541,541,541,541,541,541,541,541,541,3219,541,541,541,541,541,3224,0,0,785,0,0,0,0,789,0,0,0,0,0,0,0,793,0,0,736,0,793,0,0,0,0,648,0,0,0,0,0,0,0,807,808,0,0,0,0,808,0,0,807,0,0,0,0,0,755,0,0,816,817,0,0,0,793,0,0,0,0,0,0,0,0,0,0,0,0,221184,0,0,0,0,0,0,648,0,0,0,0,0,834,789,0,0,0,0,0,0,0,2139,0,0,0,0,0,0,0,0,0,1712,0,0,0,0,0,0,838,839,789,789,0,0,0,0,789,736,789,0,541,541,849,853,563,964,563,967,563,563,981,563,563,0,587,587,587,996,1e3,587,0,0,0,0,0,0,0,0,3180,3448,0,0,0,0,0,0,0,2465,0,0,0,0,0,0,0,0,0,2152,0,0,0,0,0,0,1093,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1135,0,0,0,0,1152,0,0,0,0,1157,0,0,0,0,0,0,0,822,0,816,0,664,0,0,0,0,0,0,0,0,1201,0,0,0,0,0,0,0,0,0,0,0,0,221184,0,221184,0,0,0,1253,0,0,0,0,0,0,0,0,0,0,0,0,0,339,340,341,541,541,1342,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2239,0,0,0,0,0,1596,0,0,0,0,0,0,0,0,0,0,0,0,233472,0,0,0,0,0,0,1640,0,0,0,0,0,0,0,0,0,0,0,0,354,355,356,357,1653,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1163,0,0,0,0,1669,0,0,0,0,0,0,1673,0,0,0,0,0,0,0,69632,73728,0,0,0,346,345,65536,344,0,1729,0,0,0,0,541,541,541,541,541,541,541,541,541,541,541,3327,541,541,1742,541,541,541,541,541,541,541,541,541,1755,541,541,541,541,541,541,541,2193,541,541,541,541,541,541,541,541,541,2557,541,541,541,541,541,541,541,541,541,1794,541,541,1797,541,541,541,541,541,541,541,541,541,541,1314,541,541,541,1318,541,541,1809,541,541,541,541,541,1814,541,541,541,541,541,541,541,1360,914,563,563,563,563,563,563,563,563,563,563,563,563,563,563,0,2328,1824,563,563,563,563,563,1831,563,563,563,563,563,1837,563,563,563,563,563,3093,563,563,563,563,563,563,563,563,563,3102,563,563,1892,563,563,563,563,563,563,563,563,563,563,1905,563,563,563,563,978,563,563,563,563,0,587,587,587,587,587,587,1997,587,587,587,587,587,587,587,587,587,1531,587,587,587,587,587,587,563,563,563,1910,563,563,563,563,563,563,563,26028,1920,587,587,587,0,1285,1469,1377,541,541,1339,541,541,563,563,1431,563,587,587,1927,587,587,587,587,587,1933,587,587,587,587,587,587,587,1529,587,587,587,587,587,587,587,587,1932,587,587,587,587,587,587,587,587,1494,587,587,587,587,587,587,587,587,587,1946,587,587,587,587,587,587,587,587,587,587,587,587,587,1513,587,587,563,563,2026,587,587,587,0,2030,0,0,0,0,0,2032,0,0,0,0,0,0,131072,0,131072,131072,131072,131072,0,131072,131072,131072,131072,131072,131072,131072,0,0,0,0,0,131072,0,131072,1,0,0,0,2042,0,0,0,0,0,0,0,0,0,0,0,0,365,365,365,0,0,2141,0,0,2148,0,0,0,0,0,0,0,0,0,0,0,0,237568,0,0,0,0,0,0,2140,541,541,541,541,541,541,541,541,541,541,541,2170,541,541,2173,541,541,541,541,541,541,2181,541,541,541,541,541,541,541,541,2841,541,541,541,541,541,541,541,541,1294,541,541,541,541,541,541,541,541,1327,541,541,541,1334,1336,541,541,541,541,2214,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2535,541,563,2258,563,563,563,563,563,563,2266,563,563,563,563,563,563,563,983,563,0,587,587,587,587,1001,587,563,2300,563,563,563,563,563,563,563,563,563,563,563,563,563,563,587,587,587,2345,587,587,587,587,587,587,2353,587,587,587,587,587,587,587,1950,587,587,587,587,587,587,587,587,1468,587,587,587,587,587,587,587,587,2387,587,587,587,587,587,587,587,587,587,587,587,587,587,587,541,587,563,2414,541,541,541,541,563,563,563,563,587,587,587,587,2030,0,2032,0,2034,0,2036,0,0,2428,0,0,0,0,0,0,0,0,0,0,1713,0,0,0,0,0,2436,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1179,2449,0,0,0,0,0,2453,0,0,0,0,0,0,0,0,0,0,1726,0,0,0,0,0,0,0,0,0,2477,0,0,0,0,0,0,0,0,0,0,0,0,245760,0,0,0,0,0,2501,0,0,0,0,0,0,0,0,0,0,0,0,0,386,338,0,541,541,541,2539,541,541,541,541,541,541,541,541,541,541,541,541,541,2198,541,541,0,0,0,563,563,563,563,563,563,563,563,563,2595,563,563,563,563,563,3238,563,563,563,563,563,563,563,563,563,563,2880,563,563,563,563,563,587,587,587,2661,587,587,587,587,587,587,587,587,587,587,587,2669,587,587,587,587,2714,587,587,587,587,587,587,541,587,563,541,541,2417,2418,563,563,2421,2422,587,587,2425,2426,0,1563,0,0,0,2735,0,0,0,0,0,0,2740,0,0,0,0,0,0,0,1102,1101,0,0,0,0,0,0,0,0,1724,0,0,0,0,0,0,0,0,1172,0,0,0,0,0,0,0,0,1187,0,0,0,0,0,0,1104,0,0,0,0,0,2763,0,0,0,0,0,0,0,0,0,0,0,2431,2432,0,0,0,0,0,0,0,0,2792,2793,0,0,0,0,0,0,0,0,0,0,2049,0,0,0,0,0,541,541,541,541,2829,541,541,541,541,541,541,541,541,541,541,2836,563,563,563,563,2876,563,563,563,563,563,563,563,563,563,563,563,0,2329,587,587,587,2884,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,1874,587,587,2933,587,587,587,587,587,587,587,587,587,587,587,587,587,1536,587,587,2955,541,2957,563,2959,587,0,0,0,0,0,0,0,0,0,0,0,0,0,0,541,541,541,541,541,541,541,587,3442,0,3444,0,0,0,0,0,3180,0,0,0,0,3452,0,0,0,0,0,796,0,0,0,0,0,0,0,0,0,0,0,0,796,0,0,0,0,3454,0,541,3457,541,3459,541,541,541,541,541,541,541,541,541,541,541,541,2585,0,0,0,563,587,3488,587,3490,587,587,587,587,587,587,587,587,587,587,587,1047,587,587,587,587,587,0,0,0,3505,0,0,0,0,0,0,0,3512,0,0,541,541,541,541,541,541,3462,541,541,541,541,541,541,541,541,541,3334,541,541,541,563,563,563,541,541,541,3517,541,541,541,541,541,541,541,541,541,541,563,563,563,563,563,563,563,563,563,563,3530,563,563,563,563,563,563,563,563,563,563,563,587,587,587,587,587,587,587,587,3544,587,587,587,587,587,587,587,587,587,587,587,0,0,0,0,541,541,541,541,563,563,310,311,312,0,0,0,0,0,0,0,0,0,0,0,0,0,669,0,0,0,0,0,421,0,0,0,0,450,0,0,0,0,0,0,0,0,304,304,304,304,0,304,304,304,0,0,0,0,450,450,421,450,450,450,450,450,450,450,450,450,450,450,450,450,450,533,450,533,533,533,450,533,533,533,533,450,543,566,543,566,543,543,566,543,590,566,566,566,566,566,566,566,590,590,590,543,590,590,590,590,590,590,590,590,566,566,616,621,590,621,627,1,960,563,563,563,563,563,563,563,563,0,587,587,587,587,587,587,587,3136,587,587,3138,587,587,587,587,587,0,0,0,0,1657,0,0,0,0,0,0,0,0,0,0,0,0,254414,0,0,0,1676,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1211,541,541,541,1810,541,541,541,541,541,541,541,541,541,541,541,1360,914,563,563,563,563,563,563,563,563,563,563,563,563,563,1378,0,0,2486,0,0,0,0,0,0,0,0,0,0,0,0,0,694,0,0,541,541,541,541,2528,541,541,541,541,2532,541,541,541,541,541,541,541,541,3218,541,541,541,541,541,541,541,541,2583,541,541,541,541,0,2586,0,0,0,0,563,563,563,563,563,563,2592,563,563,563,563,2596,563,0,587,587,587,587,587,78115,1079,0,0,0,0,0,0,0,0,0,225741,225741,225741,225741,225741,225741,225741,225741,225741,225741,225741,225741,225741,225741,225741,225741,0,0,0,0,0,0,0,2658,587,587,587,587,2662,587,587,587,587,587,587,587,587,587,587,2665,587,587,587,587,587,0,0,0,313,314,315,316,317,318,319,320,321,322,0,0,0,0,0,0,694,0,0,0,0,0,365,365,365,0,0,313,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2142208,0,0,316,0,0,0,0,0,0,0,0,0,0,0,0,0,730,0,0,0,423,431,433,422,431,0,313,431,451,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,485,490,490,501,490,490,490,490,490,490,490,490,516,516,529,529,530,530,530,530,530,530,530,530,530,530,530,516,530,530,530,530,530,544,567,544,567,544,544,567,544,591,567,567,567,567,567,567,567,591,591,591,613,591,591,591,591,591,591,591,614,615,615,613,615,614,615,614,1,734,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1238,0,0,0,0,767,0,0,0,0,0,0,0,0,0,0,0,0,266240,0,0,0,0,0,702,0,0,0,0,0,702,0,0,0,541,541,541,541,541,541,3322,541,541,541,541,541,541,541,541,1816,541,541,541,541,541,541,1360,563,563,563,968,563,563,563,563,563,0,587,587,587,587,587,587,587,3150,3151,3152,541,541,563,563,587,587,0,0,2963,0,0,0,0,0,0,0,0,3180,0,0,3389,0,0,0,0,0,1108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,308,309,0,1150,1108,0,0,0,0,0,0,0,0,0,0,0,0,0,1119,0,0,1212,0,0,0,0,0,0,0,0,0,0,0,0,0,1225,0,0,0,0,0,797,0,0,0,0,0,0,0,0,0,0,0,0,797,0,1360,914,563,563,1364,563,563,1368,563,563,563,563,563,563,563,563,985,0,587,587,587,587,587,587,1382,563,1387,563,563,1391,563,563,1394,563,563,563,563,563,563,563,984,563,0,587,587,587,587,587,1004,587,1460,587,587,587,587,587,587,587,587,1474,587,1479,587,587,1483,587,587,1486,587,587,587,587,587,587,587,587,587,587,587,587,587,1939,587,587,0,1692,0,1694,0,0,0,0,0,0,1701,0,0,0,0,0,0,0,2442,0,0,0,0,0,0,0,0,0,1173,0,0,0,0,0,0,541,541,1745,541,541,541,541,541,541,541,541,541,1757,541,541,541,541,541,541,2192,541,541,2195,541,541,541,541,541,541,541,1798,541,541,541,541,541,541,1806,541,541,1792,1793,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2824,541,0,563,563,563,563,563,563,563,563,563,563,563,563,563,1840,563,0,587,587,587,587,587,78115,1079,0,0,1083,1087,0,0,1091,587,587,587,587,1948,587,587,587,587,587,587,587,587,587,587,587,1478,587,587,587,587,587,587,587,587,1961,587,587,587,587,587,587,587,587,587,587,587,1533,587,587,587,587,0,2034,0,2036,0,0,0,0,0,0,2430,0,0,0,0,0,0,0,2454,0,0,0,0,0,0,0,0,0,2429,0,0,0,0,0,0,0,0,0,2476,0,0,0,0,0,0,0,0,0,0,0,0,365,365,365,702,0,0,0,2502,2503,0,0,0,0,0,0,0,0,0,0,0,0,1147355,0,0,0,587,587,2700,587,587,587,587,587,587,587,587,587,587,587,587,587,2004,587,587,0,0,2802,0,0,0,0,0,0,0,2806,541,541,541,541,541,541,541,2204,541,541,541,541,541,541,541,541,541,2220,541,541,541,541,541,541,541,2956,563,2958,587,2960,0,0,0,0,0,2966,0,0,0,0,0,0,0,69632,73728,0,0,0,350,348,65536,0,0,0,0,2970,0,0,0,0,0,0,0,0,0,0,0,0,365,365,208896,0,3035,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1807,541,541,3050,3051,541,541,541,541,541,541,541,541,541,541,541,541,541,2223,2224,541,563,3090,563,3092,563,563,563,563,563,563,563,563,563,563,563,563,1415,563,563,563,3117,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,1484,587,587,3132,587,3134,587,587,587,587,587,587,587,587,587,587,587,1937,1938,587,587,587,0,3192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,309,308,541,541,541,541,3228,541,541,541,541,563,563,563,563,563,563,563,563,563,945,563,563,563,563,587,3503,0,3504,0,0,0,0,0,0,0,0,0,0,0,541,541,541,541,2810,3515,541,3516,541,541,541,3520,541,541,541,541,541,541,541,563,3528,563,3529,563,563,563,3533,563,563,563,563,563,563,563,563,587,3542,587,3543,587,587,587,3547,587,587,587,587,587,587,587,587,0,0,0,0,3673,541,541,541,3675,563,563,3676,587,587,587,3678,0,0,541,541,563,563,587,587,0,541,541,3204,541,541,541,541,541,541,541,541,541,541,541,541,541,2238,2586,0,324,324,374,0,0,0,0,0,0,0,0,0,0,0,0,0,1133,0,0,0,0,434,374,0,439,445,0,452,465,465,465,465,465,465,465,465,465,465,465,465,465,465,465,465,465,465,465,465,491,491,502,491,491,491,491,491,491,491,491,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,545,568,545,568,545,545,568,545,592,568,568,568,568,568,568,568,592,592,592,545,592,592,592,592,592,592,592,592,568,568,545,568,592,568,592,1,587,587,587,1019,587,587,587,587,587,587,587,587,587,587,587,587,1052,587,587,587,1122,0,1124,1125,0,0,0,1127,1128,0,0,0,0,0,0,0,0,334,0,0,0,0,0,334,0,0,0,1166,1167,0,0,0,0,0,0,0,0,0,0,0,0,400,0,0,0,0,0,1228,0,0,0,0,1233,0,0,0,0,0,0,0,0,0,365,300,0,0,0,0,0,0,0,0,0,1241,0,0,0,0,1244,0,1194,0,1113,0,1250,1127,0,0,0,0,0,0,0,0,0,541,541,1274,541,541,541,541,541,541,2203,541,541,541,541,541,541,541,541,541,541,1329,541,541,541,541,541,541,541,1322,541,541,1324,541,541,541,1328,541,541,541,541,541,541,541,541,3522,541,541,541,541,541,563,563,3068,563,563,563,563,563,563,563,563,2603,563,563,563,563,563,563,563,1360,914,563,563,1365,563,563,563,563,563,563,563,563,563,563,563,587,3427,587,587,3429,563,563,563,1405,563,563,563,563,563,563,563,1414,563,563,1416,563,0,587,587,587,1051,587,78115,1079,0,0,0,0,0,0,0,0,1134592,0,0,0,0,0,0,1134592,0,0,0,0,563,563,1420,563,563,563,563,563,563,563,563,563,563,563,563,563,1437,563,563,563,563,563,1444,563,563,563,563,563,26028,1360,988,587,587,1457,587,0,0,0,0,0,0,0,3447,3180,0,0,0,0,0,0,0,1237,0,0,541,541,1273,541,1276,541,0,0,0,1656,0,0,0,0,0,0,0,0,0,0,0,0,541,846,541,541,587,587,587,1993,587,587,587,587,587,587,587,587,587,587,587,587,1496,587,587,587,563,2025,587,587,587,2029,0,2030,0,0,0,0,0,2032,0,0,0,0,0,0,1134592,0,0,0,0,0,0,0,0,0,0,1134592,0,0,0,2034,0,0,0,0,0,2036,0,0,0,0,0,2039,0,2078,0,0,0,0,0,0,0,0,0,0,0,0,0,0,331,0,0,0,0,2092,0,0,0,0,0,0,0,0,0,0,0,0,643,0,0,0,541,2172,541,541,541,541,541,541,541,541,541,541,541,541,541,541,0,0,0,541,2188,541,541,541,541,541,541,541,541,541,541,541,541,541,541,0,2240,541,541,541,541,2229,541,2231,541,541,541,541,541,541,541,0,0,0,0,0,0,1146880,0,1146880,0,0,0,0,0,0,0,0,2617344,0,0,0,0,0,2789376,0,0,0,563,563,563,563,563,563,563,563,563,2253,563,563,563,563,0,0,0,0,0,0,587,2654,587,587,587,587,587,587,3135,587,587,587,587,587,587,587,587,587,1530,587,587,587,587,587,587,2257,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,1889,2273,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2272,563,563,563,563,2316,563,2318,563,563,563,563,563,563,563,0,0,0,0,0,0,587,587,587,587,587,587,587,587,587,587,587,587,587,587,541,563,2344,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,1516,2360,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,1517,587,587,587,587,2403,587,2405,587,587,587,587,587,587,587,541,587,0,0,0,0,0,0,0,3508,0,0,0,0,0,0,541,541,541,541,541,541,3400,541,541,541,2499,0,0,0,0,0,2504,0,0,0,0,0,0,0,0,0,0,2086,2087,0,0,0,0,541,541,2526,2527,541,541,541,541,541,541,541,541,541,541,541,541,541,2237,0,0,541,541,2566,541,541,541,541,541,541,541,541,541,541,541,541,541,541,3046,541,0,0,0,563,563,563,2590,563,2591,563,563,563,563,563,563,563,1411,563,563,563,563,563,563,563,563,1429,563,563,563,563,563,563,563,563,1916,563,563,26028,1921,587,587,587,0,0,0,2761,0,0,0,0,0,0,0,0,0,0,0,0,674,0,0,0,541,541,2837,541,541,541,541,541,541,541,2843,541,541,541,541,541,541,541,2232,541,541,2235,2236,541,541,0,0,563,563,563,2885,563,563,563,563,563,563,563,2891,563,563,563,563,0,0,2329,0,0,0,587,587,587,587,587,587,587,587,587,587,2341,587,587,587,2920,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,1519,587,587,587,587,3373,587,587,541,541,563,563,587,587,0,0,0,0,0,0,0,0,0,2968,563,587,587,587,587,587,587,3493,587,587,587,587,587,587,587,587,1034,587,587,587,587,587,587,587,326,327,328,0,0,0,0,0,0,0,0,0,0,0,0,0,1161,0,0,0,0,0,325,373,328,372,0,0,0,0,0,0,0,0,0,0,2111,0,0,0,0,0,325,0,0,372,372,402,0,328,0,0,0,0,0,0,0,0,0,365,339,293,0,0,0,0,0,0,325,0,327,0,0,0,453,466,466,466,466,466,466,466,479,466,466,466,466,466,466,466,466,466,466,466,466,492,492,466,492,492,507,509,492,492,507,492,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,535,518,518,518,518,518,546,569,546,569,546,546,569,546,593,569,569,569,569,569,569,569,593,593,593,546,593,593,593,593,593,593,593,593,569,569,546,569,593,569,593,1,0,0,658,659,0,0,0,0,0,0,0,0,0,0,670,671,0,689,0,0,0,0,0,0,0,0,0,0,365,365,365,0,0,0,0,0,800,0,0,0,0,0,0,0,0,0,0,0,0,718,0,720,0,0,0,0,0,0,727,0,0,0,731,0,0,0,0,0,0,1159168,417,417,0,0,0,0,0,417,0,0,784,0,786,0,0,0,0,0,0,0,0,0,0,0,0,759,0,0,0,0,0,798,0,803,0,806,0,0,0,0,803,806,0,0,0,0,0,0,741,0,0,0,0,0,0,0,0,0,0,0,0,806,806,803,0,0,0,0,0,0,0,786,0,798,0,815,0,0,0,0,0,802,0,0,783,0,0,0,0,802,0,0,0,0,0,0,0,802,0,0,0,0,806,0,707,0,0,823,0,0,0,0,0,823,823,826,0,0,0,786,0,0,0,0,0,835,0,0,0,0,0,0,0,2480,0,0,0,0,0,0,0,0,0,1100,0,0,0,0,0,0,0,0,0,0,784,0,0,0,835,815,835,0,541,541,850,541,541,541,541,541,3052,541,541,541,541,541,541,541,541,3060,541,541,541,541,541,3217,541,541,541,541,541,541,541,3222,541,541,541,541,541,2529,541,541,541,541,541,541,541,541,541,541,541,3043,541,541,541,541,856,541,541,869,541,541,880,541,885,541,541,893,896,901,541,909,563,563,966,969,974,563,982,563,563,0,587,587,587,997,587,1003,587,587,1016,587,587,1027,587,1032,587,587,1040,1043,1048,587,1056,587,0,0,0,0,0,0,3507,0,0,0,0,0,0,0,541,541,541,541,541,3031,541,541,541,541,0,0,0,1110,0,0,0,0,0,0,0,1117,0,0,0,0,0,0,0,69632,73728,0,0,0,421,0,65536,0,0,1137,1138,0,0,0,0,1142,0,0,0,365,365,0,0,0,0,0,0,769,0,0,0,775,776,0,0,0,0,0,0,0,69632,73728,0,0,0,374,0,65536,0,0,1165,0,0,0,0,0,0,0,0,0,0,0,0,0,0,515,522,0,0,1182,741,0,0,0,1134,0,0,0,0,0,0,0,0,0,367,0,0,0,0,0,0,541,541,541,1281,541,541,541,541,541,541,1296,541,541,541,1301,541,541,541,541,541,3229,541,541,541,563,563,563,563,563,563,563,941,563,563,563,563,563,563,1360,914,563,563,563,563,563,563,563,563,563,563,1373,563,563,563,563,563,3249,563,3251,563,563,563,563,563,563,563,563,1852,563,563,563,563,563,563,563,563,563,563,1388,563,563,563,1393,563,563,563,563,563,563,563,563,1451,26028,1360,988,587,587,587,587,587,1485,587,587,587,587,587,587,587,587,587,587,587,587,587,1500,1540,587,587,0,541,587,563,541,541,541,541,541,563,563,563,563,563,563,3477,563,563,563,563,563,563,563,563,1396,563,563,563,563,563,563,563,0,0,1607,1608,1609,0,1611,1612,0,0,0,0,1617,0,0,0,0,0,0,770,0,0,773,0,0,777,0,0,0,0,0,0,796,0,0,0,0,0,541,541,541,541,541,541,563,563,563,563,563,563,933,563,563,947,563,563,563,563,0,0,1639,0,0,1642,0,1644,0,0,0,0,0,1650,1651,0,0,0,0,0,805,0,0,692,0,0,672,0,692,0,810,0,1667,0,0,1669,0,0,0,0,1671,1672,0,0,0,0,0,0,0,2491,2492,0,0,0,0,0,0,0,0,0,2686976,2736128,0,0,2531328,2707456,0,0,0,0,0,1708,0,0,1711,0,0,0,0,0,1715,0,0,0,0,0,0,2134016,0,0,0,0,0,0,0,0,1138688,0,1719,1720,0,0,0,0,0,0,0,0,0,0,0,0,1711,0,0,0,1731,1585,1585,1733,541,1735,541,1736,1737,541,1739,541,541,541,541,541,1310,541,541,541,541,541,541,541,1317,541,541,541,541,541,1748,541,541,541,541,541,541,541,541,541,1759,541,1743,541,541,541,541,541,541,541,541,541,1756,541,541,541,541,541,541,541,3333,541,541,541,541,541,563,563,563,922,926,563,563,563,563,563,563,952,563,957,1760,541,541,541,541,1764,541,1766,541,541,541,541,541,541,541,541,541,889,541,541,541,541,907,541,1774,1775,1777,541,541,541,541,541,541,541,1785,1786,1787,541,541,1790,1791,541,541,541,541,541,541,541,1799,541,541,541,1803,541,541,541,541,541,541,2530,541,541,541,541,541,541,541,541,541,541,1315,541,541,541,541,1320,541,541,541,541,1811,541,541,541,541,541,541,541,541,541,1822,1360,914,563,563,563,563,563,563,563,563,563,563,563,563,563,1379,0,1827,563,1829,563,1830,563,1832,563,1834,563,563,563,1838,563,563,563,563,1390,563,563,563,563,563,563,563,563,563,563,563,2652,0,587,587,587,563,1859,563,1861,563,563,563,563,563,563,563,563,1869,1870,1872,563,0,587,587,1042,587,587,78115,1079,0,0,0,0,0,0,0,0,307,307,307,0,0,0,0,0,1907,563,563,563,563,563,563,563,563,563,1918,26028,0,1923,587,1925,587,1926,587,1928,587,1930,587,587,587,1934,587,587,587,587,587,587,587,3366,587,587,587,587,3367,3368,587,587,587,587,587,1947,587,587,587,587,1951,587,587,587,587,1955,587,1957,587,587,1976,1977,1978,587,587,1981,1982,587,587,587,587,587,587,587,1999,2e3,587,587,587,587,587,587,587,2015,2016,2017,541,2019,541,541,563,2023,1990,587,587,587,1994,587,587,587,587,587,587,587,2003,587,587,587,0,1288,1472,1380,541,541,541,541,541,563,563,563,563,3475,563,563,563,563,563,563,563,563,563,563,2267,563,563,563,563,563,563,2024,563,1982,587,2028,587,0,2030,0,0,0,0,0,2032,0,0,0,0,0,0,2134016,0,0,0,0,0,0,0,746,0,0,0,0,0,2043,0,0,2046,2047,0,0,0,2051,0,0,0,0,0,0,800,0,0,0,0,0,0,0,800,0,0,0,0,541,541,541,541,2090,0,0,0,0,2094,0,0,0,0,0,0,0,0,0,0,0,2456,0,0,0,0,0,0,0,0,1669,0,0,0,0,0,0,0,2113,0,0,2116,0,0,2119,0,0,0,0,0,0,2126,0,2128,0,0,0,0,0,0,0,69632,73728,0,370,370,0,0,65536,370,0,0,0,0,2137,0,0,0,0,0,0,0,0,0,0,0,0,1159168,0,0,0,0,2047,0,2147,0,0,0,0,0,0,0,0,0,0,0,0,1103,1104,1105,1106,0,2158,0,0,541,541,541,541,541,541,541,541,541,541,541,541,541,3329,541,541,541,2174,541,2176,541,541,541,541,541,541,2184,541,2186,541,541,541,541,541,3332,541,541,541,541,541,541,541,563,563,563,3069,563,563,563,563,563,563,563,2212,541,541,541,541,541,541,2219,541,541,541,541,541,541,541,541,541,1312,541,541,541,541,541,541,563,563,2259,563,2261,563,563,563,563,563,563,2269,563,2271,563,563,563,563,1422,563,563,563,563,563,563,563,563,563,563,1438,587,587,2346,587,2348,587,587,587,587,587,587,2356,587,2358,587,587,0,0,0,3634,0,3636,541,541,541,541,541,541,541,563,563,921,563,563,563,563,940,944,950,563,955,563,563,2261,541,2416,541,541,563,2420,563,563,587,2424,587,587,2030,0,2032,0,0,0,2452,0,0,0,0,0,0,0,0,0,0,0,0,1132,0,0,0,0,0,2461,0,0,0,0,0,2466,0,2468,2469,0,0,0,0,0,0,0,69632,73728,0,420,420,0,0,65536,420,0,0,0,0,2488,0,0,0,0,0,0,0,0,0,0,0,0,2179072,2179072,2179072,2179072,0,0,0,0,2516,2468,0,0,0,0,0,2521,0,0,0,541,541,541,541,541,3321,541,541,541,3325,541,541,541,541,541,541,1749,541,541,541,541,541,541,541,541,541,541,2558,541,541,541,541,541,2563,541,541,541,2568,541,541,541,541,541,541,541,2575,541,541,541,541,541,541,2542,541,2544,541,541,541,541,541,541,541,541,563,3411,563,563,3413,563,563,563,541,541,541,541,2580,541,541,541,541,541,541,541,541,0,2586,0,0,0,0,0,812,0,809,792,0,0,814,0,667,0,788,0,0,0,563,563,563,563,563,563,563,563,2594,563,563,563,563,0,2652,0,0,0,0,587,587,587,587,587,587,587,587,587,587,587,587,2342,587,563,2624,563,563,563,563,2628,563,563,563,2633,563,563,563,563,563,563,2629,563,563,563,563,563,563,2636,563,563,563,563,2640,563,563,563,563,563,563,563,563,2646,563,563,563,563,0,2652,0,0,0,0,587,587,587,2656,587,2657,587,587,2660,587,587,587,587,587,587,587,587,587,587,587,587,587,2383,587,587,587,587,2672,587,2674,587,587,587,587,587,587,587,587,587,587,587,1970,587,587,587,587,587,2699,587,587,587,587,587,587,587,2706,587,587,587,587,587,587,587,3375,541,3376,563,3377,587,0,0,0,587,587,2712,587,587,587,587,587,587,587,587,541,587,563,541,541,541,541,563,563,2800,2801,0,0,0,0,0,0,0,0,0,541,541,541,541,541,541,541,541,541,3402,2992,0,0,0,0,0,0,0,0,0,0,0,2992,0,0,0,0,0,0,840,0,0,0,0,0,541,541,541,541,541,541,2166,541,541,541,541,541,0,3022,0,0,0,3025,541,541,541,541,541,541,3032,541,541,541,541,541,541,2570,541,541,541,541,2574,541,541,541,541,541,541,1286,541,541,541,541,541,541,541,541,541,541,1818,541,541,541,541,1360,541,541,3036,541,541,541,541,541,541,541,3042,541,541,541,541,541,541,541,2531,541,541,541,541,541,541,541,541,541,563,3230,563,563,563,3233,563,3048,541,541,541,541,541,541,541,541,541,541,3057,3059,541,541,541,541,541,541,2582,541,541,541,541,541,541,0,2586,0,3062,541,3064,3065,541,563,563,563,563,563,563,3072,563,563,563,563,563,1425,563,563,563,563,563,563,563,563,563,563,2889,563,563,563,563,563,563,563,3076,563,563,563,563,563,563,563,3082,563,563,563,563,563,3088,563,563,3091,563,563,563,563,563,563,563,563,3098,3100,563,563,563,563,563,3342,563,563,563,563,563,563,563,563,563,563,2645,563,563,563,563,563,563,563,3104,563,3106,3107,563,587,587,587,587,587,587,3114,587,587,587,0,1544,1545,1546,541,541,1548,541,541,563,563,1552,563,587,587,3118,587,587,587,587,587,587,587,3124,587,587,587,587,587,587,1998,587,587,587,587,587,587,587,587,587,3551,587,587,3553,587,0,0,3130,587,587,3133,587,587,587,587,587,587,587,587,3140,3142,587,587,0,0,3633,0,0,0,541,541,3638,541,541,541,3642,563,587,587,3146,587,3148,3149,587,541,587,563,541,3154,563,3156,587,3158,0,0,0,0,0,3181,0,3183,0,0,0,0,0,0,0,3190,0,0,0,3193,3194,0,0,0,0,0,0,0,0,0,0,0,0,2200252,2200252,2200252,0,563,563,563,563,3237,563,563,563,563,563,563,563,563,563,563,563,1400,563,563,563,563,563,563,563,3248,563,563,563,563,563,563,563,563,3256,563,563,563,563,563,3352,563,563,563,563,587,587,587,587,587,3358,563,563,563,587,587,587,3261,587,587,587,587,587,587,587,3266,587,0,0,0,0,0,3506,0,0,3509,0,0,0,0,0,541,541,541,541,3662,541,563,563,563,563,3666,563,0,3310,0,0,3313,0,0,0,0,0,0,0,0,0,0,0,0,2200253,151552,2200253,0,587,587,587,3372,587,587,587,541,541,563,563,587,587,0,0,0,0,0,0,0,0,2967,0,0,0,0,0,0,3383,3384,0,3180,0,0,0,0,0,3392,0,0,0,0,0,1097,0,0,0,0,0,0,0,0,0,0,331,382,384,0,0,0,563,3417,563,563,563,563,563,563,563,563,563,587,587,587,587,587,587,587,3115,587,587,587,587,587,587,3433,587,587,587,587,587,587,587,587,587,541,563,3472,563,3474,563,563,563,563,563,563,563,563,563,563,563,563,3243,563,563,563,3470,563,563,563,563,563,563,563,563,563,563,563,563,563,563,3485,563,563,563,563,3532,563,563,563,563,563,563,563,563,563,587,587,3110,587,587,587,587,587,587,587,587,587,587,587,3546,587,587,587,587,587,587,587,587,587,3555,3556,0,0,0,3559,0,0,0,0,0,3565,3566,3567,541,541,541,3570,541,3572,541,541,541,541,3577,3578,3579,563,563,563,3582,563,3584,563,0,587,587,1044,587,587,291,1079,0,0,1082,1086,0,0,1090,563,563,563,3589,3590,3591,3592,587,587,587,3595,587,3597,587,587,587,587,587,1464,587,587,587,1473,587,587,587,587,587,587,1949,587,587,587,587,587,587,587,587,587,2949,587,587,587,541,587,563,587,3602,0,0,0,0,0,0,0,0,0,0,541,541,541,541,541,541,1738,541,541,541,563,3644,563,563,563,3648,563,587,587,3650,587,587,587,3654,587,0,0,0,0,0,0,0,0,3180,0,3449,0,0,0,0,0,0,0,69632,73728,266240,0,0,0,0,65536,0,0,0,0,329,330,0,0,0,0,0,0,0,0,0,0,0,349,0,0,0,0,0,369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,686,0,0,0,0,369,0,0,0,377,379,0,0,0,0,0,0,0,0,1099,0,0,0,0,0,0,0,0,1115,0,0,0,0,0,0,0,0,0,3185,0,0,0,0,0,0,0,0,412,0,0,0,412,69632,73728,0,369,369,0,424,65536,369,0,0,0,369,424,499,503,499,499,508,499,499,499,508,499,424,424,0,330,424,0,0,424,424,0,0,0,0,0,0,0,0,1156,0,0,0,0,0,0,0,0,664,0,0,0,0,0,0,0,0,680,681,0,0,0,0,0,0,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,547,570,547,570,547,547,570,547,594,570,570,570,570,570,570,570,594,594,594,547,594,594,594,594,594,594,594,594,570,570,547,570,594,570,594,1,587,587,587,1020,587,587,587,587,587,587,587,587,587,587,587,587,1954,587,587,587,0,0,1109,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1215,0,0,0,0,0,0,0,0,0,0,0,1226,541,1279,541,541,541,541,541,1291,541,541,541,541,541,541,541,541,541,1351,541,541,541,541,541,541,1360,914,563,563,563,563,563,563,563,563,1371,563,563,563,563,563,563,2643,563,563,563,563,563,563,563,563,563,1866,563,563,563,563,563,563,1383,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2286,587,587,1992,587,587,587,587,587,587,587,587,587,587,587,587,587,2411,541,587,563,563,3677,587,587,587,0,0,541,541,563,563,587,587,0,541,3203,541,541,541,3206,541,541,541,541,541,541,541,541,541,541,1313,541,541,541,541,541,425,425,0,0,425,440,0,425,425,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,493,493,467,493,493,493,493,493,493,493,493,493,493,493,493,493,493,493,493,548,571,548,571,548,548,571,548,595,571,571,571,571,571,571,571,595,595,595,548,595,595,595,595,595,595,595,595,571,571,548,571,595,571,595,1,0,1213,0,0,0,0,0,0,0,0,0,0,0,0,0,0,732,0,0,0,0,0,1695,0,0,0,0,0,0,0,0,0,0,0,360,0,0,0,0,0,0,0,0,2093,0,0,0,0,0,0,0,0,0,0,0,365,365,0,0,0,2157,0,0,0,541,541,541,541,541,541,541,541,541,541,541,541,3328,541,2201,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2200,563,2415,541,541,541,2419,563,563,563,2423,587,587,587,0,0,0,0,0,0,541,541,541,541,541,541,541,563,3067,563,563,563,563,563,563,563,563,563,3253,563,563,563,563,563,563,0,2460,0,0,0,0,0,0,0,0,0,0,0,0,0,0,748,0,0,0,0,0,2791,0,0,0,0,0,0,0,0,0,0,0,365,365,1146,0,0,2943,587,587,587,587,587,587,587,587,587,587,587,587,541,587,563,541,541,0,0,0,0,2971,0,0,0,2975,0,0,0,0,0,2981,0,0,0,0,0,1128,0,0,0,0,0,1233,0,0,0,1265,0,0,0,2994,0,2996,0,0,0,0,0,0,0,0,3004,0,0,0,0,0,1169,0,1171,0,0,0,0,1176,0,0,0,0,0,0,1643,0,0,0,0,0,0,0,0,0,0,2520,0,0,0,0,541,0,0,0,0,3009,0,0,0,0,0,0,0,0,0,0,0,383,0,0,0,387,541,3063,541,541,541,3066,563,563,563,563,563,563,563,563,563,563,3083,563,563,563,563,563,563,563,3105,563,563,563,3108,587,587,587,587,587,587,587,587,587,1509,587,587,587,587,587,587,3144,587,587,3147,587,587,587,541,587,563,541,541,563,563,587,587,0,0,3295,0,0,0,0,0,0,0,0,2766,0,0,0,0,0,0,0,0,2151,0,0,0,0,0,0,0,0,2506,0,0,0,0,0,2512,0,0,0,0,0,0,3195,0,0,0,0,0,0,0,0,0,0,0,2782,0,0,0,0,541,541,541,541,3216,541,541,541,541,541,541,541,3221,541,3223,541,541,541,541,541,3408,541,541,3410,563,563,563,563,3414,563,563,563,563,1446,1447,563,563,563,26028,1360,988,587,587,587,587,587,587,3671,0,0,0,541,541,541,3674,563,563,563,563,563,587,587,3260,587,587,587,587,587,587,587,587,587,587,3274,587,587,587,587,587,587,3280,587,587,587,587,587,587,587,587,587,587,587,541,587,563,541,2722,563,3350,563,563,563,563,563,563,563,563,587,587,587,587,587,587,587,587,3655,587,587,587,587,3363,587,587,587,587,587,587,587,587,587,3369,587,0,0,0,541,587,563,541,541,541,541,541,563,563,563,563,563,3071,563,563,563,563,563,0,0,0,0,541,541,3660,3661,541,541,563,563,3664,3665,563,563,563,563,1423,563,563,1430,563,563,563,563,563,563,563,563,2631,563,563,563,563,563,563,563,587,587,3668,3669,587,587,0,0,0,0,541,541,541,541,563,563,563,924,928,931,563,939,563,563,563,954,956,959,0,0,690,691,0,0,0,0,696,0,0,0,365,365,365,0,0,0,0,0,1185,0,0,0,0,0,0,0,0,0,0,0,3180,0,0,0,0,0,0,829,0,0,0,0,0,0,0,0,0,758,0,0,0,0,0,0,758,0,0,0,0,0,758,758,910,541,563,563,563,563,927,563,563,563,563,563,563,563,563,563,1432,563,563,1436,563,563,563,983,0,587,587,587,587,1057,78115,1079,0,0,0,0,0,0,0,0,1220,0,0,0,0,0,0,0,0,0,282624,282624,282624,282624,282624,282624,282624,282624,587,1521,587,587,587,587,587,587,587,587,587,587,587,587,587,587,1514,587,0,0,0,1721,0,0,0,0,0,0,0,0,0,0,0,0,1193,0,0,0,0,2040,0,0,0,0,0,0,0,0,0,0,0,0,0,0,749,0,2171,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2211,3288,541,3290,563,3292,587,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3514,468,468,468,486,494,494,486,494,494,494,494,494,494,494,494,519,527,527,527,527,527,527,527,527,527,527,527,527,527,527,527,536,527,527,527,527,527,549,572,549,572,549,549,572,549,596,572,572,572,572,572,572,572,596,596,596,549,596,596,596,596,596,596,596,596,572,572,549,572,596,572,596,1,795,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1652,0,818,0,0,0,795,0,0,818,0,0,0,0,0,818,818,0,0,0,0,795,0,0,0,0,0,0,836,791,0,0,836,857,541,865,541,541,541,541,541,541,541,541,541,541,541,541,541,541,3527,563,911,541,563,563,563,563,563,930,563,938,563,563,563,563,563,563,1850,563,563,563,563,563,563,563,563,563,0,587,587,587,587,587,587,587,1012,587,587,587,587,587,587,587,587,587,587,587,587,587,1058,984,0,587,587,587,1077,1058,78115,1079,0,0,0,0,0,0,0,0,1243,0,0,0,0,0,0,0,0,1259,0,0,0,1263,0,0,0,0,0,0,0,1139,1140,0,0,0,0,0,365,365,0,0,0,0,0,0,1113,0,0,0,0,0,0,0,0,0,0,2071,0,0,0,0,0,1180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1705,1340,541,541,1344,541,541,541,541,541,1350,541,541,541,1357,541,541,541,541,541,1812,541,541,541,541,541,541,541,541,541,1360,1403,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2638,563,563,1442,563,563,563,1449,563,563,26028,1360,988,587,587,587,587,587,587,3272,587,587,587,587,587,587,587,587,3278,587,587,1487,587,587,587,587,587,587,587,1495,587,587,587,587,587,587,2365,587,587,587,587,587,587,587,587,587,2691,587,587,587,587,587,587,587,587,587,1524,587,587,1528,587,587,587,587,587,1534,587,587,587,587,587,1492,587,587,587,587,587,587,587,587,587,587,1510,587,587,587,587,587,1541,587,587,0,541,587,563,541,541,541,541,541,563,563,563,563,563,3476,563,563,563,3480,563,563,563,563,563,563,2863,563,563,2867,563,563,563,563,563,563,1409,563,563,1413,563,563,563,563,563,563,1448,563,563,26028,1360,988,587,587,587,587,0,0,0,1595,0,0,0,0,0,0,0,0,0,0,0,0,1223,0,0,0,0,0,1655,0,0,0,0,0,0,0,0,0,1664,0,0,0,0,0,0,1126,0,0,0,1130,1131,0,0,0,0,0,0,0,2818048,2846720,0,2916352,0,0,3002368,0,0,1718,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2053,1702,0,0,0,0,0,541,541,541,541,541,541,541,541,541,541,3326,541,541,541,563,563,563,1893,563,563,563,563,563,563,1901,563,563,563,563,563,563,2887,563,563,563,2890,563,2892,563,563,563,587,1944,587,587,587,587,587,587,587,587,587,587,587,587,587,587,1940,587,587,1974,587,587,587,587,1980,587,587,587,587,587,587,587,587,1989,2007,2009,587,587,587,587,587,541,587,563,541,541,541,541,563,563,563,563,587,587,587,587,2030,0,2032,0,0,2079,0,0,0,2082,0,0,0,0,0,2088,0,0,0,0,0,0,1141,0,1143,0,0,365,365,0,0,0,0,0,0,1154,0,0,0,0,0,1160,0,1162,0,2104,0,0,0,0,0,0,0,0,0,0,0,0,0,2115,0,0,0,0,0,1192,0,0,0,0,0,0,0,0,0,0,0,176128,176128,176128,176128,176128,176128,176128,0,0,563,563,563,563,563,563,2250,563,563,563,563,563,563,563,1851,563,563,563,563,1855,563,563,563,587,587,587,587,2349,587,587,587,587,587,587,587,587,587,587,587,1985,587,587,1988,587,2262,541,541,541,541,563,563,563,563,587,587,587,587,0,0,0,0,0,2732,0,2450,0,0,0,0,0,0,0,0,2455,0,0,2458,0,0,0,0,0,0,2134016,0,0,0,0,0,0,57344,0,0,0,0,0,0,2748,0,0,0,0,0,0,0,0,0,0,192972,192972,192972,192972,192972,192972,192972,0,0,0,0,2462,0,0,0,0,0,0,0,0,0,0,0,541,541,541,2809,541,2473,0,0,0,0,0,0,0,2481,0,0,0,2483,0,0,0,0,0,0,1170,0,0,0,0,0,0,0,0,0,0,2989,0,0,0,0,0,0,2500,0,0,0,0,0,0,0,0,0,0,2510,0,0,0,0,0,0,1186,0,0,0,1191,0,0,0,0,1107,0,0,0,0,0,0,0,0,0,0,0,758,0,0,0,0,0,0,0,2524,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2536,541,541,2552,541,541,541,541,541,541,541,541,541,541,541,541,541,905,541,541,2564,541,541,541,541,541,541,2571,541,541,541,541,541,541,541,541,541,1768,541,541,541,541,541,541,541,2578,541,541,541,2581,541,541,541,541,541,541,541,0,0,0,0,0,0,1203,0,0,0,0,0,0,0,0,0,0,813,0,0,0,0,0,0,0,0,563,2588,563,563,563,563,563,563,563,563,563,563,563,1903,1904,563,563,563,2611,563,563,563,563,563,563,2616,563,563,563,563,563,563,563,2622,587,587,587,587,2702,587,587,587,587,587,587,587,587,587,587,2710,587,587,587,2713,587,587,587,587,587,587,587,2718,2719,2720,541,541,541,541,541,2177,541,541,541,541,541,541,541,541,541,541,541,541,2845,541,541,541,2758,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2103,0,2773,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1120,0,0,0,2789,0,0,0,0,2794,0,0,0,2796,0,0,0,0,0,0,0,69632,73728,316,317,317,422,423,65536,430,541,541,541,541,2814,541,541,541,541,541,541,541,541,541,541,541,541,1333,541,541,541,541,541,2848,541,541,541,541,541,541,0,0,563,563,563,2856,563,0,587,587,1047,587,587,78115,1079,0,0,0,0,0,0,0,0,1159168,365,0,0,0,0,0,0,563,563,563,563,2861,563,563,563,563,563,563,563,563,563,563,563,2294,563,563,563,563,563,563,563,563,2897,563,563,563,563,563,563,0,0,587,587,587,587,587,587,587,2338,587,587,587,587,587,587,587,3122,587,587,587,587,587,587,587,587,1036,587,587,587,587,1054,587,587,2905,587,587,587,587,587,2910,587,587,587,587,587,587,587,587,587,1935,587,587,587,587,1941,587,3006,0,0,0,0,3010,0,0,0,0,3015,0,0,0,0,0,0,0,2749,0,0,0,0,0,0,0,0,0,697,698,0,365,365,365,0,3191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2145,3300,0,0,0,0,0,0,0,0,0,0,3180,0,0,0,0,0,0,0,69632,73728,163840,0,0,0,0,65536,0,563,563,563,3340,563,563,563,563,563,563,563,563,563,563,563,563,2283,563,563,563,563,563,563,3351,563,563,563,563,563,563,587,587,587,587,587,587,587,587,587,587,587,587,587,3359,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,1942,3370,587,587,587,587,587,587,541,541,563,563,587,587,0,0,0,0,3297,0,0,0,0,0,0,0,0,0,3394,0,541,541,541,541,541,541,541,541,541,541,541,541,3211,541,541,3486,587,587,587,587,587,587,587,587,3495,587,3497,3498,587,3500,587,0,0,0,541,587,563,541,541,541,904,541,563,563,563,977,3502,0,0,0,0,0,0,0,0,0,0,0,0,0,0,541,541,541,854,541,541,3612,541,3613,541,541,541,563,563,563,563,563,563,3619,563,0,996,1075,1041,587,587,78115,1079,0,0,1081,1085,0,0,1089,3620,563,563,563,563,587,587,587,587,587,587,3627,587,3628,587,587,0,3603,0,0,0,0,0,0,0,0,541,541,3610,541,563,563,587,587,587,587,0,0,541,541,563,563,587,587,3683,3684,3685,3686,0,541,563,587,0,541,563,587,0,541,563,587,0,0,0,0,0,0,0,0,3180,0,0,0,0,0,0,0,550,597,573,573,573,573,573,573,573,597,597,597,550,597,597,597,597,597,597,597,597,573,573,550,573,597,573,597,1,0,0,0,737,0,0,0,0,0,0,0,0,0,0,0,0,1237,0,0,0,0,0,2041,0,0,0,0,0,0,0,0,0,0,0,0,0,1194,1196,0,403,0,0,0,0,381,0,69632,73728,0,0,0,0,426,65536,0,0,0,0,0,1202,0,0,0,0,0,0,0,0,0,0,0,2444,2445,0,0,2448,426,426,0,0,426,0,446,426,426,469,469,469,476,469,469,469,469,469,469,469,469,469,476,469,469,469,469,469,469,469,469,483,469,495,495,469,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,538,551,574,551,574,551,551,574,551,598,574,574,574,574,574,574,574,598,598,598,551,598,598,598,598,598,598,598,598,574,574,551,574,598,574,598,1,0,0,0,0,660,661,0,0,0,0,0,0,0,0,0,0,0,3001,0,0,0,0,0,0,0,0,661,0,0,0,0,0,0,0,0,0,0,0,661,0,0,0,0,0,827,0,0,0,661,0,0,0,0,0,0,0,0,0,0,0,3176,0,0,0,0,0,0,0,729,0,742,661,0,0,0,0,0,541,844,541,541,541,541,541,2191,541,541,541,541,541,541,2197,541,2199,541,541,859,541,541,541,541,541,541,541,541,541,541,897,541,541,541,541,541,541,2817,541,2819,541,541,541,541,541,541,541,541,2572,541,541,541,541,541,541,541,541,1349,541,541,541,541,541,541,541,541,1752,541,541,541,541,541,541,541,541,1767,541,541,541,541,541,541,541,541,1782,541,541,541,541,541,541,541,541,1815,1817,541,541,541,541,541,1360,563,563,563,970,563,563,563,563,563,0,587,587,990,587,587,587,587,587,1526,587,587,587,587,587,587,587,587,587,587,1953,587,587,587,587,587,1006,587,587,587,587,587,587,587,587,587,587,1044,587,587,587,587,587,587,3285,587,587,587,587,587,587,541,587,563,1094,0,0,0,0,0,0,0,0,0,1101,1102,0,0,0,0,0,0,0,69632,73728,167936,0,0,0,0,65536,0,0,0,0,1229,0,0,0,0,0,0,0,0,0,0,0,0,1247,0,0,0,0,0,0,0,1102,0,0,0,0,1260,1261,0,0,1101,0,0,0,0,0,0,2134756,0,0,0,0,0,0,0,0,0,0,1116,0,0,0,0,0,541,1306,541,541,541,541,541,541,541,541,541,541,541,541,541,541,0,2241,1360,914,563,1363,563,563,563,563,563,563,563,563,563,563,563,1377,1384,563,563,563,563,563,563,563,563,563,1398,563,563,563,563,563,563,3079,563,563,563,563,563,563,563,563,563,0,587,587,989,587,587,587,1418,563,563,563,563,563,563,563,1431,563,563,563,563,563,563,563,1897,563,563,563,563,563,563,563,563,1395,563,563,563,563,563,563,563,587,587,1523,587,587,587,587,587,587,587,587,587,587,587,1537,587,0,0,0,541,587,563,541,541,541,1067,911,563,563,563,1072,563,587,587,1523,587,587,1079,0,0,0,0,0,0,0,0,0,0,2781,0,0,0,0,0,541,541,541,1746,1747,541,541,541,541,1754,541,541,541,541,541,541,541,1290,541,1295,541,541,1299,541,541,1302,541,541,541,541,1795,541,541,541,541,541,541,541,541,541,541,541,541,1335,541,541,541,1825,563,563,563,563,563,563,563,563,563,563,563,563,563,563,1841,1842,563,563,563,563,1849,563,563,563,563,563,563,563,563,563,563,3347,563,563,563,563,3348,1890,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2649,587,1945,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2372,587,587,1959,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2384,2385,587,587,587,587,2012,587,587,541,587,563,541,541,541,541,563,563,587,587,2961,0,0,2964,2965,0,0,0,0,0,0,0,2505,0,0,0,0,0,0,0,0,0,387,0,0,0,0,0,387,0,0,0,2054,0,2055,0,0,0,0,0,0,0,0,0,2064,541,541,541,541,2216,541,541,541,541,541,541,2221,541,541,541,541,541,541,1285,1292,541,541,541,541,541,541,541,541,541,1800,541,541,541,1805,541,541,541,2226,541,541,541,541,541,541,541,541,541,541,541,541,0,0,563,563,563,563,563,563,563,563,2302,563,563,563,563,563,563,2307,563,563,563,563,563,563,3080,563,563,563,563,563,563,563,563,563,1883,563,563,563,563,563,563,563,2313,563,563,563,563,563,563,563,563,563,563,563,563,0,0,587,587,587,587,587,587,2389,587,587,587,587,587,587,2394,587,587,587,587,587,587,2377,587,587,587,587,587,587,587,587,587,1952,587,587,587,587,1956,587,587,2400,587,587,587,587,587,587,587,587,587,587,587,587,541,587,0,0,0,541,587,563,541,541,895,541,541,563,563,968,563,0,587,587,587,587,587,78115,1079,0,0,1082,1086,0,0,1090,0,2437,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1178,0,587,2671,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2931,587,0,0,0,2736,0,0,0,0,0,0,0,0,0,0,0,0,1588,1589,0,0,2787,0,0,0,0,0,0,0,0,0,0,0,2797,0,0,0,0,0,0,1204,0,0,0,0,0,0,0,0,0,0,1631,0,0,0,0,0,541,541,541,2813,541,541,541,541,541,541,2821,541,541,541,541,541,541,541,2555,541,541,541,541,541,541,541,2562,563,563,563,2860,563,563,563,563,563,563,2868,563,563,563,563,563,563,3094,563,563,3096,563,563,563,563,563,563,1880,1881,1882,563,563,1885,1886,563,563,563,0,0,3008,0,0,0,0,0,0,0,0,0,0,0,0,0,1197,0,0,541,541,3227,541,541,541,541,541,541,563,563,563,563,563,563,563,3073,563,563,563,3571,541,3573,541,541,541,563,563,563,563,563,563,563,3583,563,3585,0,0,0,0,541,3659,541,541,541,541,563,3663,563,563,563,563,563,1878,563,563,563,563,1884,563,563,563,563,563,563,2864,563,2866,563,563,563,563,563,563,563,3354,563,563,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,1057,587,3667,587,587,587,587,0,0,0,0,541,541,541,541,563,563,915,563,563,563,563,563,563,946,563,563,563,563,563,1427,563,563,563,563,563,563,563,563,563,563,3535,563,563,563,563,563,563,587,587,587,587,3112,587,587,587,587,3116,470,470,470,470,454,454,470,454,454,454,454,454,454,454,454,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,552,575,552,575,552,552,575,552,599,575,575,575,575,575,575,575,599,599,599,552,599,599,599,599,599,599,599,599,575,575,552,575,599,575,599,1,541,860,541,541,874,541,541,541,541,541,541,541,541,541,541,541,541,1770,541,541,541,1007,587,587,1021,587,587,587,587,587,587,587,587,587,587,587,587,1971,587,587,587,0,1123,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1184,1184,1251,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2156,0,0,0,1268,0,0,0,0,0,0,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1360,541,541,541,1323,541,541,541,541,541,541,541,541,541,541,541,541,541,2534,541,541,541,1341,541,541,541,541,541,1348,541,541,541,541,541,541,541,541,541,2234,541,541,541,541,0,0,1440,563,563,563,563,563,563,563,563,26028,1360,988,587,587,587,587,587,587,3365,587,587,587,587,587,587,587,587,587,2936,587,587,587,2939,587,2941,587,587,587,587,587,1525,587,587,587,587,587,1532,587,587,587,587,587,587,2392,587,587,587,587,587,587,587,587,587,1472,587,587,587,587,1482,587,563,587,587,587,1557,587,1079,0,1561,0,0,0,1567,0,0,0,0,0,0,1218,1219,0,0,0,0,0,0,0,0,0,1235,0,0,0,0,0,0,1573,0,0,0,1579,0,0,0,0,0,0,0,0,0,0,0,662,0,0,0,0,0,0,0,0,0,0,0,541,541,541,1779,541,541,541,541,541,541,541,541,541,541,541,541,541,2548,541,541,563,1843,563,563,563,563,563,563,563,563,563,1854,563,563,563,563,563,1879,563,563,563,563,563,563,563,563,563,563,3344,563,563,563,563,563,563,563,563,1865,563,563,563,563,563,563,563,2065,2066,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1210,0,2117,0,0,2120,2121,0,0,0,0,0,2127,0,0,0,0,0,0,0,2765,0,0,0,0,0,0,0,0,0,550,573,550,573,550,550,573,541,2213,541,541,541,541,2218,541,541,541,541,541,541,541,541,541,541,2182,541,541,541,541,541,2299,563,563,563,563,2304,563,563,563,563,563,563,563,563,563,563,1917,563,26028,0,587,587,587,2386,587,587,587,587,2391,587,587,587,587,587,587,587,587,587,587,2001,587,587,587,587,587,2006,541,541,541,3037,541,541,541,541,541,541,541,541,541,541,541,541,541,2846,541,541,563,563,3077,563,563,563,563,563,563,563,563,563,563,563,563,563,1887,1888,563,587,587,587,3119,587,587,587,587,587,587,587,587,587,587,587,587,1986,587,587,587,563,563,3247,563,563,563,563,563,563,563,563,563,563,563,563,563,2296,563,563,587,0,0,0,3445,0,0,0,0,3180,0,0,0,0,0,0,0,1242,0,0,0,0,0,0,0,0,0,380,0,0,0,0,0,0,0,0,541,541,541,541,3460,541,541,541,541,541,541,541,541,541,541,2207,541,541,541,541,541,563,587,587,587,587,3491,587,587,587,587,587,587,587,587,587,587,2354,587,587,587,587,587,587,563,563,563,563,3623,587,587,587,587,587,587,587,587,587,587,587,2395,587,587,587,587,587,3631,0,0,0,0,0,0,541,541,541,541,541,541,541,563,563,920,563,563,563,563,563,563,949,951,563,563,563,563,563,3421,563,563,563,3425,563,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3501,388,390,340,0,0,0,0,0,0,339,0,0,340,0,0,0,0,0,0,1598,0,0,0,0,0,0,0,0,1604,0,0,0,387,0,0,0,69632,73728,0,0,0,0,0,65536,0,0,0,0,0,1217,0,0,0,0,0,0,0,1224,0,0,0,0,0,347,0,0,0,0,0,0,0,0,0,0,0,3316,0,0,0,0,0,0,435,339,0,0,447,0,0,471,471,471,471,471,471,471,471,471,553,576,553,576,553,553,576,471,482,471,471,471,500,477,500,500,500,500,500,500,500,500,471,471,477,471,471,471,471,471,471,471,471,471,471,471,481,481,471,482,471,471,553,600,576,576,576,576,576,576,576,600,600,600,553,600,600,600,600,600,600,600,600,576,576,553,576,600,576,600,1,0,0,750,0,0,0,0,0,0,0,0,0,0,0,0,0,1603,0,0,0,0,0,0,663,0,788,0,0,0,0,0,0,0,792,0,0,0,0,0,1231,0,0,0,0,0,0,0,0,0,0,0,2153,0,0,0,0,0,0,0,801,0,0,0,0,0,809,0,0,0,0,706,0,0,0,0,0,0,0,0,715,0,717,0,828,0,0,0,663,831,0,788,0,0,0,0,0,837,0,0,0,0,0,1597,0,0,0,577536,0,0,1602,0,0,0,0,0,0,1257,0,0,0,0,0,0,0,0,0,0,2508,0,0,0,0,0,541,861,541,541,875,541,541,541,541,888,541,541,541,541,906,541,541,541,541,541,3519,541,541,541,541,541,541,541,541,563,563,563,923,563,929,563,563,942,563,563,953,563,958,961,563,563,563,563,979,563,563,563,0,587,587,991,587,587,587,587,587,1962,587,587,587,587,587,587,587,587,587,587,3287,587,587,587,541,587,563,1008,587,587,1022,587,587,587,587,1035,587,587,587,587,1053,587,587,587,587,587,2945,587,587,2948,587,587,2951,587,2952,2953,2954,0,0,0,0,1216,0,0,0,0,1221,0,0,0,0,0,0,0,1258,0,0,0,0,0,0,0,0,0,365,299,0,0,0,0,0,0,1144,0,0,1256,0,0,0,0,0,0,0,0,1235,0,0,0,0,0,0,2891776,0,0,0,0,0,2392064,2412544,0,0,0,0,0,0,2123,0,0,0,0,0,0,0,0,0,0,2727936,0,0,0,3084288,0,0,0,1267,0,0,0,0,0,0,0,541,541,541,541,541,541,541,541,541,1741,541,541,541,1309,541,541,541,541,541,541,541,541,541,541,541,541,541,3045,541,3047,563,587,587,1556,587,587,1079,0,0,0,0,0,0,0,0,0,0,3e3,0,0,0,0,0,1621,0,0,1624,0,1626,0,0,0,0,0,0,0,0,0,0,0,3198,3199,0,0,0,0,0,0,0,1722,0,0,0,0,0,0,0,0,0,0,0,683,684,685,0,0,541,541,541,541,1780,541,541,541,541,541,541,541,541,541,541,541,541,1820,541,541,1360,0,563,563,563,563,563,563,563,563,563,563,1836,563,563,563,563,563,2263,563,563,563,563,563,563,563,563,563,563,1433,563,563,563,563,563,1875,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2872,1943,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2359,0,0,2135,0,0,0,0,0,0,0,0,0,0,0,0,0,1618,0,0,2146,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2484,0,0,0,0,541,541,541,2163,2164,541,541,541,541,541,541,541,541,2180,541,541,541,541,2185,541,541,541,541,541,2228,541,541,541,541,541,541,541,541,541,541,0,0,563,563,563,563,2857,0,0,563,563,563,2247,563,2249,563,563,563,563,563,563,563,563,2320,563,563,563,563,563,0,0,563,563,563,2315,563,563,563,563,563,563,563,563,563,563,0,0,988,587,587,587,587,0,0,587,587,587,2334,587,2336,587,587,587,587,587,587,587,587,1965,1966,1968,587,587,587,587,587,587,587,587,2402,587,587,587,587,587,587,587,587,587,587,541,587,0,0,0,541,587,563,541,541,897,541,541,563,563,970,563,0,997,587,1076,1048,587,78115,1079,0,0,0,0,0,0,0,0,458,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,0,0,2438,0,0,0,0,0,0,2443,0,0,0,2446,2447,0,0,0,0,0,1610,0,0,1613,0,0,0,0,0,0,0,0,1584,0,0,0,0,0,0,0,0,1683,0,0,0,0,0,0,0,0,334,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1134,0,0,0,0,2487,0,0,0,0,0,0,0,0,0,0,0,2498,0,0,0,2515,0,0,0,0,0,0,0,0,0,2523,0,541,541,541,541,541,3576,563,563,563,3580,563,563,563,563,563,563,2290,563,563,563,563,563,563,563,563,563,1899,563,563,563,563,563,1906,2537,2538,541,541,541,541,541,2543,541,2545,541,541,541,541,2549,541,541,541,541,541,3614,3615,541,563,563,563,563,563,563,563,563,3424,563,563,587,587,587,587,587,563,563,2598,563,563,2601,2602,563,563,563,563,563,2607,563,2609,563,0,999,1039,587,1050,587,78115,1079,0,0,0,0,0,0,0,0,3184,0,0,0,0,0,0,0,0,2750,0,0,0,0,0,0,0,0,0,2732032,0,0,0,0,0,0,563,563,563,2613,563,563,563,563,563,563,563,563,2619,563,563,563,563,563,3624,587,587,587,587,587,587,587,587,587,587,1967,587,587,587,1972,587,587,563,2639,563,563,563,563,563,563,563,563,563,563,563,563,563,563,1402,563,587,587,587,2673,587,2675,587,587,587,587,2679,587,587,587,587,587,587,2676,587,587,587,587,587,587,587,587,587,1469,1476,587,587,587,587,587,587,587,587,2685,587,587,587,587,587,587,587,587,2693,587,587,587,587,587,1979,587,587,587,587,587,587,587,587,587,587,2926,2927,587,587,587,587,2930,587,587,587,587,587,2701,587,587,587,587,2705,587,587,587,587,587,587,587,2378,2379,587,587,587,587,587,587,587,2406,587,587,2409,2410,587,587,2176,2348,0,2745,0,0,0,0,0,0,0,2751,2752,2753,0,0,0,0,0,0,0,69632,73728,172032,0,0,0,0,65536,0,2772,0,2774,0,0,0,0,2778,0,0,0,0,2783,0,0,2786,541,541,2828,541,541,541,541,541,541,541,541,541,541,541,541,541,1771,541,541,541,541,541,2838,541,541,541,541,541,541,541,541,541,541,541,541,541,3337,563,563,541,2847,541,541,2850,541,541,2853,541,0,0,2854,563,563,563,563,563,2277,563,563,2280,563,563,563,563,563,563,563,3081,563,563,563,563,563,563,563,563,3355,563,587,587,587,587,587,587,563,563,2875,563,563,563,563,563,563,563,563,563,563,563,563,563,2324,0,0,563,563,563,563,2886,563,563,563,563,563,563,563,563,563,563,563,2606,563,2608,563,563,563,563,563,2896,563,563,2899,563,563,2902,563,0,0,2903,587,587,587,587,587,3284,587,587,587,587,587,587,587,541,587,563,541,541,563,563,587,587,587,2921,587,587,2924,587,587,587,587,587,587,587,587,587,587,587,2666,587,587,587,587,0,0,0,0,0,2972,2973,0,0,0,0,2978,0,0,0,0,0,0,0,69632,73728,221184,0,0,0,0,65536,0,3021,0,0,3023,0,0,541,541,3028,541,541,541,541,541,541,541,541,2205,2206,541,541,541,541,541,541,0,0,3160,0,3162,0,0,0,3166,0,0,0,0,0,0,0,0,2518,0,0,0,0,0,0,541,541,541,541,3030,541,541,541,541,3034,3234,3235,563,563,563,563,3239,3240,563,563,563,563,563,3244,563,563,563,563,1445,563,563,563,563,26028,1360,988,587,1455,587,587,0,3632,0,0,0,0,541,541,541,541,541,3641,541,563,563,563,563,587,587,587,587,587,587,587,3263,3264,587,587,587,587,587,587,3435,587,587,587,587,587,587,587,541,563,3268,3269,587,587,587,587,587,3273,587,587,587,587,587,587,587,587,2393,587,587,587,587,587,587,587,3279,587,587,587,587,587,587,587,587,587,587,587,587,541,587,563,2721,541,0,0,0,3312,0,0,0,0,0,0,0,0,0,0,0,0,1633,0,0,0,541,3404,541,541,541,541,541,541,563,563,563,563,563,563,563,563,563,563,563,563,563,563,3419,563,563,563,563,563,563,563,587,587,587,587,587,3113,587,587,587,587,587,0,3443,0,0,3446,0,0,0,3180,0,0,0,0,0,0,0,1583,0,1585,0,0,0,0,0,0,0,1106,0,0,0,0,0,0,0,0,0,756,0,0,0,0,0,0,0,0,541,541,3458,541,541,541,541,3463,541,541,541,541,3468,541,541,541,541,872,541,541,541,541,541,541,541,541,541,541,541,541,1316,541,541,541,563,587,587,3489,587,587,587,587,3494,587,587,587,587,3499,587,587,587,587,587,3364,587,587,587,587,587,587,587,587,587,587,2664,587,587,2667,2668,587,587,563,563,3645,3646,563,563,563,587,587,587,3651,3652,587,587,587,0,541,587,563,541,541,541,541,541,563,563,563,563,587,587,587,587,0,0,0,2730,0,0,563,587,0,541,563,587,3691,3692,3693,3694,0,541,563,587,0,0,0,0,0,0,0,0,3180,0,0,0,0,0,3453,342,343,344,345,346,0,0,0,0,0,0,0,0,0,0,0,713,0,0,0,0,0,0,0,391,0,0,0,0,0,0,0,0,0,0,0,0,1674,0,0,0,345,345,0,346,345,0,344,345,455,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,487,496,496,504,496,506,496,496,506,506,496,506,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,554,577,554,577,554,554,577,554,601,577,577,577,577,577,577,577,601,601,601,554,601,601,601,601,601,601,601,601,577,577,554,577,601,577,601,1,656,657,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1590,1591,672,673,0,675,676,0,0,0,0,0,682,0,0,0,0,0,0,0,2804,0,0,0,541,2808,541,541,541,0,0,0,0,692,0,0,0,0,0,0,699,365,365,365,0,0,0,0,0,1658,0,0,0,0,0,0,0,0,0,0,0,3180,0,0,0,3308,0,719,0,721,0,723,0,0,0,0,0,0,0,0,0,733,0,0,0,0,646,752,753,754,0,0,0,0,0,760,761,0,0,0,0,0,1680,0,0,0,0,0,0,0,0,0,0,0,3180,0,3306,0,0,763,764,675,0,0,0,0,0,0,0,0,0,0,779,780,0,0,0,0,0,1696,1697,1698,1699,0,0,0,0,0,0,0,0,755,0,0,0,0,0,0,0,0,772,0,0,0,0,0,0,0,0,782,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1601,0,0,761,0,0,787,0,0,0,0,0,0,0,0,0,794,675,723,0,692,811,0,0,0,0,761,0,0,0,0,0,0,0,1591,0,0,0,0,0,0,0,0,0,1662,0,0,0,0,0,0,0,0,754,820,821,0,0,0,0,0,0,754,0,0,825,699,0,0,0,830,0,0,0,832,0,0,0,692,699,0,0,692,830,830,0,0,0,0,0,0,0,0,0,692,541,541,851,855,858,541,866,541,541,541,881,883,886,541,541,541,898,902,541,541,541,541,541,2541,541,541,541,541,541,541,541,541,541,541,541,541,3044,541,541,541,563,563,563,971,975,563,563,563,563,0,587,587,587,998,1002,1005,587,1013,587,587,587,1028,1030,1033,587,587,587,1045,1049,587,587,587,587,587,1995,587,587,587,587,587,2002,587,587,587,587,587,587,2946,587,587,587,587,587,587,541,587,563,1073,0,998,587,1045,1049,1078,78115,1079,0,0,0,0,0,0,0,0,2779,0,0,0,0,0,0,0,0,303,303,303,303,0,303,303,303,0,0,0,0,1168,0,0,0,0,0,0,0,0,0,0,0,729,0,0,0,0,0,0,1199,0,0,0,0,0,0,0,0,0,0,1209,0,0,0,0,0,0,2912256,0,3207168,2465792,0,0,2719744,0,0,0,0,0,0,541,541,541,3397,541,541,541,541,3401,541,0,0,1214,0,0,0,0,0,0,0,0,0,0,0,0,0,1634,0,0,0,0,1254,0,0,0,0,0,0,0,0,0,0,0,0,0,1665,0,0,1321,541,541,541,541,541,541,541,541,541,541,1331,541,541,1338,541,541,541,541,873,541,541,541,541,541,541,541,541,541,541,541,541,1332,541,541,541,563,563,1443,563,563,563,563,563,563,26028,1360,988,587,587,587,587,587,587,3548,587,3550,587,587,3552,587,587,0,0,0,0,0,0,541,541,541,3639,3640,541,541,563,1501,587,587,1505,587,587,587,587,587,587,587,587,587,587,1515,587,0,0,0,541,587,563,541,541,899,541,541,563,563,972,563,0,1074,587,587,1052,587,78115,1079,0,0,0,0,0,0,0,0,2445312,0,2842624,0,0,0,2637824,0,587,1522,587,587,587,587,587,587,587,587,587,587,1535,587,587,587,587,587,2013,587,541,587,563,541,541,541,541,563,563,563,563,587,587,587,587,0,0,0,0,0,0,1666,0,1668,0,0,0,1670,0,748,0,0,0,0,0,0,0,0,3174,0,0,0,0,0,0,0,0,791,0,0,0,0,0,0,0,0,833,0,0,0,0,0,0,808,0,0,1693,0,0,0,0,0,0,1700,0,0,0,0,0,0,0,1660,1661,0,0,0,0,0,0,0,0,710,0,0,0,0,0,0,0,0,726,0,0,0,0,0,0,0,0,0,274432,274432,274432,0,274432,274432,274432,541,541,1762,541,541,541,541,541,541,541,541,1769,541,541,541,1773,541,541,1778,541,541,541,541,541,541,541,541,541,541,541,541,541,1788,541,541,0,563,1828,563,563,563,563,563,563,563,1835,563,563,563,563,563,563,3250,563,563,563,563,563,563,563,563,563,2321,563,563,563,563,0,0,563,1908,563,563,563,563,563,563,563,563,563,26028,0,587,1924,587,0,0,0,541,587,563,541,541,900,541,541,563,563,973,563,563,563,563,2262,563,563,563,563,563,563,563,563,563,563,563,1434,563,563,563,563,587,587,587,1960,587,587,587,1964,587,587,1969,587,587,587,587,587,587,2688,587,587,587,587,587,587,2695,587,587,563,563,587,587,587,587,0,0,0,2031,0,1082,0,0,0,2033,0,1086,0,0,0,2035,0,1090,0,0,0,2037,0,1094,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1620,2587,0,1825,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2610,2650,563,563,563,0,0,0,2653,0,1921,587,587,587,587,587,587,587,3549,587,587,587,587,587,587,0,0,3672,0,541,541,541,541,563,563,0,0,2969,0,0,0,0,0,0,0,0,0,0,0,0,0,2102,0,0,0,0,0,3161,0,0,0,0,0,0,0,0,0,0,0,0,1703,0,0,0,0,0,3319,541,541,541,541,541,541,541,3324,541,541,541,541,541,541,541,2832,541,541,541,541,541,541,541,541,541,2573,541,541,541,541,541,541,587,587,3361,587,587,587,587,587,587,587,587,587,587,587,587,587,2709,587,587,3379,0,0,3382,0,0,0,0,3180,3387,0,0,0,0,0,0,0,1682,0,1684,0,0,0,0,0,0,0,1114,0,0,0,0,1118,0,0,1121,541,541,541,541,3407,541,541,541,563,563,563,3412,563,563,563,563,563,2289,563,563,563,563,563,563,563,563,563,563,2605,563,563,563,563,563,3416,563,563,563,563,563,3422,563,563,563,563,587,587,587,3428,587,0,0,0,541,587,563,850,541,1066,901,541,923,563,1071,974,587,587,587,3432,587,587,587,587,587,3438,587,587,587,587,541,563,563,563,563,2276,563,563,563,563,563,563,2282,563,2284,563,2287,563,587,587,587,587,587,3492,587,587,587,3496,587,587,587,587,587,587,2704,587,587,587,587,587,587,587,587,587,1470,587,587,587,587,587,587,0,0,3657,0,541,541,541,541,541,541,563,563,563,563,563,563,936,563,563,563,563,563,563,563,563,587,3687,3688,3689,3690,0,541,563,587,0,541,563,587,0,0,0,0,0,0,0,0,3180,0,0,3450,3451,0,0,389,0,0,0,393,389,0,0,0,0,0,0,0,0,0,0,0,122880,0,0,0,0,0,0,0,405,0,347,0,69632,73728,0,0,0,0,0,65536,0,0,0,0,0,1709,0,0,0,0,0,0,0,0,0,0,399,0,0,0,0,0,0,0,436,0,0,443,0,0,0,0,0,0,0,0,0,0,0,131072,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,522,522,522,522,522,0,0,0,0,0,0,0,0,0,522,522,522,522,522,522,522,522,522,555,578,555,578,555,555,578,555,602,578,578,578,578,578,578,578,602,602,602,555,602,602,602,602,602,602,602,602,578,578,617,622,602,622,628,1,0,0,0,751,0,0,0,0,0,0,0,0,0,0,0,0,2061,0,0,0,962,563,563,563,563,980,563,563,563,0,587,587,992,587,587,587,587,587,2350,587,587,587,587,587,587,587,587,587,587,1936,587,587,587,587,587,1107,0,0,0,0,1112,0,0,0,0,0,0,0,0,0,0,0,167936,167936,167936,167936,167936,167936,167936,1360,914,563,563,563,1366,563,563,563,563,563,563,563,563,563,1380,563,563,1404,563,563,563,563,563,563,563,563,563,563,563,563,563,2620,563,563,563,1441,563,563,563,563,563,563,563,26028,1360,988,587,587,587,1458,563,587,587,587,587,587,1079,0,1562,0,0,0,1568,0,0,0,0,0,0,1627,1628,1629,0,0,0,0,0,0,0,0,343,0,0,0,0,0,0,0,0,403,0,0,0,0,0,0,0,0,407,407,407,407,0,407,407,407,1574,0,0,0,1580,0,0,0,0,0,0,0,0,0,0,0,808,541,541,852,541,1605,0,0,0,0,0,0,0,0,0,0,0,0,0,1619,0,0,0,0,0,1723,0,0,0,0,0,0,0,0,0,0,0,2625536,0,2699264,2715648,0,1973,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2373,563,563,587,587,587,587,0,0,1563,0,0,0,0,0,1569,0,1575,0,1581,0,0,0,0,0,0,0,0,0,0,0,1262,0,0,0,0,0,0,0,0,1575,0,0,0,0,0,1581,0,0,0,0,0,0,0,2974,0,0,0,0,0,0,0,0,0,365,0,253952,0,0,0,0,541,541,541,2190,541,541,541,541,2194,541,2196,541,541,541,541,541,541,541,3039,541,541,541,541,541,541,541,541,541,887,541,541,541,541,541,541,563,563,2275,563,563,563,563,2279,563,2281,563,563,563,563,563,563,1896,563,563,563,563,563,563,563,563,563,1397,1399,563,563,563,563,563,587,587,2362,587,587,587,587,2366,587,2368,587,587,587,587,587,587,1465,587,587,587,587,587,587,1480,587,587,0,0,0,0,0,2489,0,0,0,0,0,0,0,0,0,0,0,196608,0,0,0,0,563,563,2625,563,563,563,563,563,563,563,563,563,563,563,563,563,2648,563,563,0,0,0,0,3024,0,541,541,541,541,541,541,541,541,541,541,541,1330,541,541,541,541,0,3380,0,0,0,0,0,0,3180,0,0,0,0,3391,0,0,0,0,0,328,0,69632,73728,0,0,0,0,0,65536,0,3393,0,0,0,0,0,541,3396,541,541,3398,541,541,541,541,541,541,541,3040,541,541,541,541,541,541,541,541,541,1783,541,541,541,541,1789,541,0,3455,541,541,541,541,541,541,541,541,541,541,541,541,541,541,563,563,563,541,862,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1319,541,541,912,563,563,563,563,563,563,935,563,563,563,563,563,563,563,2291,2292,563,563,563,563,563,563,563,2319,563,563,2322,2323,563,563,0,0,1009,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2697,1059,0,0,0,541,587,563,541,541,541,541,541,563,563,563,563,563,2614,563,563,563,563,563,563,563,563,563,563,3649,587,587,587,587,587,587,587,0,1095,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2513,0,0,1623,0,0,0,0,0,0,0,0,0,0,0,0,0,2130,0,2132,1826,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,3258,541,3215,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1337,541,587,587,587,3271,587,587,587,587,587,587,587,587,587,587,587,587,2370,587,587,587,0,0,0,0,348,348,350,348,348,348,348,348,348,513,348,348,0,350,348,0,0,348,348,0,0,0,0,349,0,0,0,0,0,329,0,0,0,0,0,0,0,0,0,0,0,2509,0,0,0,0,348,348,348,348,348,348,348,348,348,348,348,348,348,348,348,348,556,579,556,579,556,556,579,556,603,579,579,579,579,579,579,579,603,603,603,556,603,603,603,603,603,603,603,603,579,579,556,579,603,579,603,1,0,0,0,0,722,0,724,0,0,0,0,0,0,0,0,0,299,0,0,0,0,0,0,0,0,0,0,739,0,0,0,0,0,0,0,0,0,0,0,836,541,541,541,541,0,0,0,766,0,0,0,771,0,0,0,0,0,0,0,0,0,1189,0,0,0,0,0,0,541,541,541,870,541,541,541,541,541,890,892,541,541,903,541,541,541,541,541,2569,541,541,541,541,541,541,541,541,541,541,541,541,2835,541,541,541,963,965,563,563,976,563,563,563,563,0,587,587,993,999,587,587,587,587,587,3374,587,541,541,563,563,587,587,0,0,0,0,0,0,3299,0,0,0,587,587,1017,587,587,587,587,587,1037,1039,587,587,1050,587,587,587,587,587,2364,587,587,2367,587,587,587,587,587,587,587,2677,587,587,587,587,587,587,2682,587,0,0,0,1151,0,1153,0,1155,0,0,0,0,0,0,0,0,0,1231,541,541,541,541,541,541,0,1181,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1636,0,0,1198,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1675,0,0,1266,0,0,0,0,0,0,0,1181,541,541,541,541,541,541,541,1326,541,541,541,541,541,541,541,1339,1305,1307,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1358,541,541,541,1343,541,541,541,541,541,541,541,541,1354,1355,541,541,541,541,541,541,2840,541,541,541,541,541,541,541,541,541,541,3056,541,3058,541,541,541,1360,914,563,563,563,563,1367,563,563,563,563,563,563,563,563,563,3242,563,563,563,563,563,563,563,563,563,1421,563,563,563,563,563,563,563,1435,563,563,563,563,563,2627,563,563,563,563,563,563,2635,563,563,563,1459,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2942,587,587,587,1489,1491,587,587,587,587,587,587,587,587,587,587,587,2707,2708,587,587,587,1554,587,1555,587,587,1558,1079,0,0,0,0,0,0,0,0,0,306,204800,204800,0,205106,204800,1,0,1677,0,0,1679,0,0,0,0,0,0,0,0,0,0,0,1159,0,0,0,0,541,541,541,541,1763,541,541,541,541,541,541,541,541,541,541,541,541,2208,541,541,541,0,563,563,563,563,563,563,563,1833,563,563,563,563,563,563,563,2879,563,563,563,563,563,563,563,563,2644,563,563,563,2647,563,563,563,1858,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,1857,563,563,563,1909,563,563,563,563,1915,563,563,563,26028,0,587,587,587,587,587,2376,587,587,587,587,587,587,587,587,587,587,2717,541,587,563,541,541,587,587,587,587,1929,587,587,587,587,587,587,587,587,587,587,587,2938,587,587,587,587,587,1991,587,587,587,1996,587,587,587,587,587,587,587,587,2005,587,0,0,0,541,587,563,852,892,541,903,541,925,965,563,976,587,587,587,2011,587,587,587,541,587,563,541,541,541,541,563,563,916,563,563,563,932,563,563,563,563,563,563,563,1864,563,563,563,1868,563,563,1873,563,2077,0,0,0,0,0,0,0,0,2085,0,0,0,0,0,2089,0,0,2091,0,0,0,0,0,0,0,2099,0,0,0,0,0,0,0,3012,3013,0,0,0,0,3018,0,0,2133,2134,0,2136,0,0,0,0,0,0,0,0,0,0,2144,0,0,2149,2150,0,0,0,0,0,2154,0,0,0,0,0,0,0,2160,541,541,541,541,541,541,2167,541,541,541,541,541,541,1288,541,541,541,541,1298,541,541,541,541,541,541,1325,541,541,541,541,541,541,541,541,541,541,1801,541,541,541,541,541,2202,541,541,541,541,541,541,541,541,541,541,541,541,2209,541,541,541,541,541,2815,541,2818,541,541,541,541,2823,541,541,541,541,541,541,3409,541,563,563,563,563,563,563,563,563,3479,563,3481,3482,563,3484,563,541,541,541,2215,541,541,541,541,541,541,541,541,541,541,541,541,895,541,541,541,0,0,2244,563,563,563,563,563,563,563,2252,563,563,563,563,563,563,3534,563,3536,563,563,3538,563,563,587,587,563,563,2301,563,563,563,563,563,563,563,563,563,563,563,563,563,2893,563,563,0,0,2331,587,587,587,587,587,587,587,2339,587,587,587,587,587,587,2715,587,587,587,587,541,587,563,541,541,587,587,587,587,2363,587,587,587,587,587,587,2369,587,2371,587,2374,587,587,2388,587,587,587,587,587,587,587,587,587,587,587,587,587,2918,587,587,0,2474,0,0,0,0,0,0,0,0,0,2482,0,0,0,0,0,0,0,122880,122880,122880,122880,122880,0,122880,0,2105632,0,0,2514,0,0,0,0,0,0,0,0,0,2522,0,0,541,541,541,541,541,3461,541,541,541,3465,541,541,541,541,541,541,1287,541,541,541,541,541,541,541,541,541,541,2546,541,541,541,541,541,541,541,541,541,2540,541,541,541,541,541,541,541,541,541,541,541,541,2222,541,541,541,563,563,563,2599,563,563,563,563,563,2604,563,563,563,563,563,563,2278,563,563,563,563,563,563,563,563,563,2632,563,563,563,563,563,563,2670,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3143,587,587,587,587,2686,587,587,587,587,587,587,587,587,587,587,587,3125,587,587,587,587,541,541,2723,563,563,563,2725,587,587,587,2727,2728,0,0,0,0,0,0,0,172032,172032,172032,172032,172032,172032,172032,172032,1,0,0,2746,0,2747,0,0,0,0,0,0,0,0,0,0,0,1175,0,0,0,0,0,0,0,0,2762,0,0,0,0,0,0,0,0,0,0,0,1192,0,1195,0,0,2811,541,2812,541,541,541,541,541,541,541,541,541,541,541,541,541,1804,541,541,541,541,541,2849,541,541,541,541,541,0,0,563,563,563,563,563,563,563,563,563,563,563,563,2255,563,2858,563,2859,563,563,563,563,563,563,563,563,563,563,563,563,563,3086,563,563,587,587,2907,587,2908,587,587,587,587,587,587,587,587,587,587,587,3139,587,3141,587,587,0,0,0,2983,0,0,0,0,0,0,0,0,0,0,0,0,2073,0,0,0,0,0,3381,0,0,0,0,0,3180,0,0,0,3390,0,0,0,0,0,0,1659,0,0,0,0,0,0,0,0,0,0,114688,0,241664,258048,0,0,3430,587,587,587,587,587,587,587,587,587,3439,587,587,587,541,563,563,563,563,2303,563,563,563,563,563,563,563,563,563,563,563,26028,0,587,587,587,541,541,541,541,3518,541,541,541,541,541,541,541,541,541,563,563,563,3232,563,563,563,563,563,563,3531,563,563,563,563,563,563,563,563,563,563,587,587,587,3357,587,587,587,587,587,3545,587,587,587,587,587,587,587,587,587,587,0,0,0,0,0,0,3637,541,541,541,541,541,541,3643,563,563,563,563,3647,563,563,587,587,587,587,587,3653,587,587,0,0,0,0,3635,0,541,541,541,541,541,541,541,563,2724,563,563,587,2726,587,587,0,0,0,0,0,0,0,0,3607,0,541,541,541,541,0,3656,0,3658,541,541,541,541,541,541,563,563,563,563,563,563,937,563,563,563,563,563,563,563,0,0,0,0,394,395,0,396,0,0,0,0,0,396,0,0,0,0,0,331,332,333,0,0,0,0,0,0,0,0,0,560,583,560,583,560,560,583,401,0,0,0,0,0,368,376,404,0,0,0,0,0,368,0,0,396,0,0,0,0,0,351,0,0,368,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2744,409,411,0,0,368,376,0,69632,73728,0,0,0,0,427,65536,0,0,0,0,0,2044,2045,0,0,0,0,0,0,0,0,0,361,0,0,0,0,0,361,427,427,437,0,427,0,411,427,456,0,0,0,0,0,0,0,0,106496,0,106496,0,0,0,0,106496,396,0,409,0,497,497,0,497,497,497,497,497,497,497,497,523,523,523,523,523,456,456,456,456,531,456,456,532,456,523,537,523,523,523,537,523,523,523,523,539,557,580,557,580,557,557,580,557,604,580,580,580,580,580,580,580,604,604,604,557,604,604,604,604,604,604,604,604,580,580,618,623,604,623,629,1,0,0,0,643,0,0,0,0,0,0,0,0,0,0,0,0,2101,0,0,0,783,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2757,0,0,0,802,0,0,0,0,0,0,0,0,0,0,0,0,2129,0,0,0,587,587,587,1023,1025,587,587,587,587,587,587,587,587,587,587,587,3275,587,587,587,587,0,0,0,0,1096,0,0,1098,0,0,0,0,0,0,0,0,0,1630,0,0,0,0,0,1636,0,0,0,0,1111,0,0,0,0,0,0,0,0,0,0,0,1207,0,0,0,0,1098,1227,0,0,0,0,0,0,1234,0,0,0,0,0,0,0,0,155648,0,0,0,0,0,0,0,0,1239,0,0,0,0,0,0,0,0,0,0,1239,1248,0,0,0,0,0,0,1681,0,0,0,0,0,0,1687,0,1689,0,0,0,0,1239,1269,1270,0,1239,0,541,541,541,541,541,541,541,3207,3208,541,541,541,541,3212,3213,1278,541,541,541,1282,541,541,1293,541,541,1297,541,541,541,541,541,541,541,3054,541,541,541,541,541,541,541,541,541,1784,541,541,541,541,541,541,1360,914,563,563,563,563,563,563,563,1370,563,563,563,1374,563,563,563,563,1847,563,563,563,563,563,563,563,563,563,563,563,2308,563,563,563,563,1385,563,563,1389,563,563,563,563,563,563,563,563,563,563,563,563,2295,563,563,563,563,563,563,1406,563,563,563,1410,563,563,563,563,563,563,563,563,2901,563,563,0,0,587,587,587,587,587,587,1462,587,587,587,1466,587,587,1477,587,587,1481,587,587,587,587,587,3434,587,3436,587,587,587,587,587,587,541,563,587,1502,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3128,587,0,1622,0,0,0,0,0,0,0,0,0,0,0,0,1635,0,0,0,0,0,2067,0,0,0,0,0,0,0,0,0,2076,1637,0,0,0,1641,0,0,0,1645,0,0,0,1649,0,0,0,0,0,0,2056,0,2057,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1676,0,563,563,1844,563,563,563,563,563,563,563,563,563,563,563,563,563,3540,587,587,1958,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3127,587,3129,587,587,2010,587,587,587,587,1749,1940,1844,541,541,541,541,563,563,917,563,563,563,934,563,563,948,563,563,563,563,563,1895,563,563,563,1900,563,563,563,563,563,563,1914,563,563,563,563,26028,0,587,587,587,0,2118,0,0,0,0,0,0,2125,0,0,0,0,0,0,0,0,184726,184932,184932,184932,0,184932,184932,184932,0,0,2159,0,541,541,2162,541,541,541,541,541,541,541,541,541,541,2833,541,541,541,541,541,541,541,2227,541,541,541,541,541,541,541,541,541,541,541,0,0,563,2855,563,563,563,0,0,563,563,2246,563,563,563,563,563,563,563,563,563,563,563,3255,563,563,563,563,563,563,2314,563,563,563,563,563,563,563,563,563,563,563,0,0,587,2904,587,0,0,587,587,2333,587,587,587,587,587,587,587,587,587,587,587,3440,587,587,541,563,587,587,587,587,2390,587,587,587,587,587,587,587,587,587,587,587,2928,587,587,587,587,587,587,587,587,2401,587,587,587,587,587,587,587,587,587,587,587,541,587,0,0,0,541,587,563,1064,541,541,905,541,1069,563,563,978,541,541,541,2567,541,541,541,541,541,541,541,541,541,541,541,541,900,541,541,541,2698,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3277,587,587,0,2759,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1716,0,541,2827,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1758,541,563,2874,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2285,563,587,587,587,2923,587,587,587,587,587,587,587,587,587,587,587,587,2382,587,587,587,0,0,2993,0,0,0,0,0,0,0,0,0,0,0,0,0,2433,0,2435,3171,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2771,3202,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2577,3225,541,541,541,541,541,541,541,541,563,563,563,563,563,563,563,2888,563,563,563,563,563,563,563,563,3241,563,563,563,563,563,563,563,587,587,587,3282,587,587,587,587,587,587,587,587,587,541,587,563,2018,541,541,541,2022,563,541,3289,563,3291,587,3293,3294,0,0,0,0,3298,0,0,0,0,0,0,0,1134592,0,365,0,0,0,1134592,0,0,0,1134592,1134592,0,0,1134592,0,0,1134592,0,0,0,3311,0,0,0,0,3315,0,0,0,0,0,0,0,0,0,1725,0,0,0,0,0,0,3318,0,541,541,541,3320,541,541,541,3323,541,541,541,541,541,541,541,1751,541,541,541,541,541,541,541,541,541,2586,0,563,563,563,563,563,3338,563,563,563,3341,563,563,563,563,563,563,563,563,563,563,563,26028,1921,587,587,587,587,3360,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3554,0,0,3403,541,3405,541,541,541,541,541,563,563,563,563,563,563,563,563,563,563,3075,563,563,3418,563,3420,563,563,563,563,563,563,587,587,587,587,587,587,587,3596,587,3598,587,587,0,0,0,0,3560,0,0,0,0,541,541,541,541,541,541,541,541,541,2169,541,541,541,541,541,3574,541,541,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,1417,3586,563,563,563,587,587,587,587,587,587,587,587,587,587,3599,587,0,0,0,853,1e3,926,849,1065,894,541,541,922,1070,967,563,0,587,587,587,587,587,78115,0,0,0,0,0,0,0,0,0,365,0,305,0,0,0,0,3611,541,541,541,541,541,541,541,563,563,3617,563,3618,563,563,563,563,587,587,587,587,3594,587,587,587,587,587,587,587,541,541,563,563,587,587,3378,0,0,410,356,0,0,0,0,0,69632,73728,0,0,0,0,0,65536,0,0,0,0,0,2122,0,0,0,0,0,0,0,0,0,0,304,304,0,0,0,0,0,0,354,0,0,0,356,0,0,473,473,473,473,473,473,473,478,473,473,473,473,473,473,473,473,473,473,473,478,473,484,473,0,0,473,0,0,0,0,0,0,0,0,524,528,528,528,528,473,473,473,473,473,473,473,478,473,528,524,528,528,528,524,528,528,528,528,540,558,581,558,581,558,558,581,558,605,581,581,581,581,581,581,581,605,605,605,558,605,605,605,605,605,605,605,605,581,581,619,624,605,624,630,1,0,0,0,0,644,0,0,0,0,0,0,0,0,0,0,0,1606,0,0,0,0,688,0,0,0,0,0,0,0,0,0,0,0,365,365,365,0,0,0,0,0,2138,0,0,0,0,0,0,0,0,0,0,0,2768,0,0,0,0,0,0,0,738,0,0,0,644,738,0,744,745,644,0,0,0,0,0,0,790,0,0,0,0,0,0,0,0,0,2058,0,0,0,0,0,0,0,0,799,0,804,0,0,0,0,0,0,804,0,0,0,0,0,644,0,0,0,799,0,804,0,790,0,819,0,0,0,665,0,0,0,0,819,0,0,0,0,0,0,0,2473984,2478080,0,0,0,0,0,0,0,0,0,2767,0,0,0,0,0,0,0,644,0,0,0,0,0,0,0,0,790,0,0,0,0,0,0,0,3165,0,0,0,0,0,0,0,0,0,541,563,541,563,541,541,563,0,0,790,790,0,644,0,0,790,804,842,0,541,848,541,541,541,541,541,2839,541,541,541,2842,541,2844,541,541,541,541,541,541,879,541,884,541,891,541,894,541,541,908,541,541,867,871,877,541,882,541,541,541,541,541,899,541,541,541,541,541,541,2852,541,541,0,0,563,563,563,563,563,563,563,563,563,563,563,563,563,2256,563,563,563,972,563,563,563,563,563,0,587,587,995,587,587,587,587,587,2687,587,587,587,587,587,587,587,587,587,587,2937,587,587,587,587,587,587,587,1014,1018,1024,587,1029,587,587,587,587,587,1046,587,587,587,587,587,1026,587,1031,587,1038,587,1041,587,587,1055,587,1149,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2799,0,0,0,1200,0,0,0,0,0,1205,0,0,0,0,0,0,0,1714,0,0,0,0,0,0,0,0,0,2140,2141,0,0,2143,0,0,1099,0,0,0,1230,0,1232,0,0,0,0,0,0,0,0,0,351,352,353,0,0,0,0,1240,0,0,0,0,0,0,0,0,0,0,1246,0,1249,1200,0,0,0,0,0,2427,0,0,0,0,0,0,0,0,0,0,336,337,0,0,0,0,1230,1252,0,1255,0,0,0,0,0,1130,0,0,0,0,1264,0,0,1149,1264,0,1271,541,541,541,541,1277,1360,914,1362,563,563,563,563,563,1369,563,563,563,563,1375,563,563,563,563,1862,563,563,563,563,563,563,563,563,563,563,563,3084,563,563,563,563,563,563,563,1407,563,563,563,563,1412,563,563,563,563,563,563,563,2900,563,563,563,0,0,587,587,587,563,1419,563,563,563,1426,1428,563,563,563,563,563,563,563,563,563,3346,563,563,563,563,563,563,587,587,1461,587,587,587,587,1467,587,587,587,587,587,587,587,587,2663,587,587,587,587,587,587,587,587,587,1488,587,587,587,587,587,587,587,587,587,587,1499,587,587,587,587,1463,587,587,587,587,587,1475,587,587,587,587,587,587,2014,541,587,563,1791,541,2020,541,1886,563,587,587,1504,587,587,587,587,587,587,587,587,1511,587,587,587,1518,1520,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2396,2397,2398,587,587,1542,587,0,541,587,563,541,541,541,541,541,563,563,563,563,563,2862,563,2865,563,563,563,563,2870,563,563,563,563,587,587,587,587,587,1079,0,0,1563,0,0,0,1569,0,0,0,0,0,376,0,0,0,0,368,0,385,0,351,0,0,1575,0,0,0,1581,0,0,0,0,0,0,0,0,0,0,303,303,0,0,0,0,1592,1593,0,0,0,0,0,1599,0,0,0,0,0,0,0,0,0,2098,0,2100,0,0,0,0,0,1638,0,0,0,0,0,0,0,1646,1647,0,0,0,0,0,0,0,3197,0,0,0,0,0,0,3200,0,0,1654,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2038,0,1690,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3005,0,1706,1707,0,0,0,1710,0,0,0,0,0,1714,0,0,1717,0,0,1730,0,1732,1706,541,541,541,541,541,541,541,541,541,541,541,2547,541,541,541,541,541,1744,541,541,541,541,1750,541,541,541,541,541,541,541,541,541,541,3220,541,541,541,541,541,541,1761,541,541,541,541,1765,541,541,541,541,541,541,541,541,541,541,3335,541,541,563,563,563,541,1776,541,541,541,1781,541,541,541,541,541,541,541,541,541,541,541,2559,541,541,541,541,1808,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1360,914,563,563,563,563,563,563,563,563,563,563,563,563,1376,563,0,587,587,1046,587,587,78115,1079,0,0,0,0,0,0,0,0,225890,225890,225890,225890,225741,225890,225890,225890,0,563,563,563,563,563,563,563,563,563,563,563,563,1839,563,563,563,563,1877,563,563,563,563,563,563,563,563,563,563,563,2869,563,563,563,563,563,563,1845,563,563,563,563,563,563,563,563,563,563,1856,563,563,563,563,1894,563,563,563,1898,563,563,563,563,563,563,563,1450,563,26028,1360,988,1454,587,587,587,563,563,1860,563,563,563,563,563,563,563,563,563,563,1871,563,563,563,563,1911,1913,563,563,563,563,563,26028,0,587,587,587,587,587,1506,587,587,1508,587,587,587,1512,587,587,587,0,1286,1470,1378,541,541,541,1549,541,563,563,563,1553,563,1876,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2297,2298,563,563,587,2027,587,587,0,0,0,0,0,0,0,0,0,0,3511,0,3513,0,541,0,0,0,2080,2081,0,0,2083,2084,0,0,0,0,0,0,0,0,286720,0,0,0,0,0,0,0,0,0,286720,286720,0,286720,286720,1,0,0,0,2106,0,0,0,0,2109,2110,0,0,0,0,0,0,0,2069,0,0,0,0,0,0,0,0,0,541,564,541,564,541,541,564,541,541,541,541,2175,541,541,2179,541,541,541,2183,541,541,541,541,541,541,1347,541,541,541,541,541,541,541,541,541,563,563,3231,563,563,563,563,2225,541,541,541,541,2230,541,541,541,541,541,541,541,541,0,0,0,0,0,386,0,69632,73728,0,0,0,0,0,65536,0,2242,0,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2325,0,563,563,563,2260,563,563,2264,563,563,563,2268,563,563,563,563,563,587,587,3625,587,3626,587,587,587,587,587,587,1493,587,587,587,587,587,587,587,587,587,2380,587,587,587,587,587,587,2312,563,563,563,563,2317,563,563,563,563,563,563,563,563,0,0,0,0,0,0,587,587,2655,587,587,587,2329,0,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2680,587,587,587,587,587,587,2347,587,587,2351,587,587,587,2355,587,587,587,587,587,587,2925,587,587,587,587,587,587,587,587,587,1471,587,587,587,587,587,587,2399,587,587,587,587,2404,587,587,587,587,587,587,587,587,541,587,0,0,0,854,1001,927,541,541,541,541,910,563,563,563,563,563,1848,563,563,563,563,563,563,563,563,563,563,3097,563,3099,563,563,563,0,0,0,0,2439,0,0,0,0,0,0,0,0,0,0,0,1616,0,0,0,0,0,0,2475,0,0,0,2479,0,0,0,0,0,0,0,0,0,365,0,0,0,0,0,0,541,2525,541,541,541,541,541,541,541,541,541,541,2533,541,541,541,541,541,541,3053,541,541,3055,541,541,541,541,541,541,541,1311,541,541,541,541,541,541,541,541,541,1753,541,541,541,541,541,541,541,2551,541,541,2553,541,2554,541,541,541,541,541,541,541,2561,541,541,541,541,876,878,541,541,541,541,541,541,541,541,541,541,541,1353,541,541,541,541,541,2565,541,541,541,541,541,541,541,541,541,541,541,541,2576,541,541,541,541,1283,541,541,541,541,541,541,541,541,541,541,1304,0,0,0,563,563,2589,563,563,563,563,563,563,563,563,563,563,3537,563,563,3539,563,587,587,563,2597,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2326,0,563,563,2612,563,563,563,2615,563,563,2617,563,2618,563,563,563,563,563,2877,2878,563,563,563,563,2881,563,563,563,563,563,1863,563,563,563,563,563,563,563,563,563,563,3356,587,587,587,587,587,563,563,563,563,2626,563,563,2630,563,563,563,563,563,563,563,563,3345,563,563,563,563,563,563,563,563,563,563,563,2641,2642,563,563,563,563,563,563,563,563,563,563,26028,1360,988,587,587,587,587,2683,587,2684,587,587,587,587,587,587,587,587,2692,587,587,2696,587,0,0,0,1061,1062,1063,851,541,898,902,1068,924,563,971,975,2733,2734,0,0,2737,2738,0,0,0,0,0,0,0,0,0,0,306,307,0,0,0,0,0,2788,0,2790,0,0,0,0,0,0,0,0,0,0,0,0,2457,0,0,0,0,0,0,0,2803,0,0,0,0,0,0,541,541,541,541,541,541,541,3033,541,541,2826,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2825,2873,563,563,563,563,563,563,563,563,563,563,563,563,2883,563,563,563,563,1912,563,563,563,563,563,563,26028,0,587,587,587,587,587,2934,587,587,587,587,587,587,587,2940,587,587,587,587,2922,587,587,587,587,587,587,587,587,587,587,587,587,2932,0,2982,0,0,2984,0,0,0,0,0,0,0,0,0,0,0,1632,0,0,0,0,0,0,0,0,2995,0,0,2998,0,2999,0,0,0,0,0,0,0,2096,0,0,0,0,0,0,0,0,0,562,585,562,585,562,562,585,541,3049,541,541,541,541,541,541,541,541,541,541,541,541,541,3061,3089,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2621,563,3103,563,563,563,563,563,587,587,587,3111,587,587,587,587,587,587,1507,587,587,587,587,587,587,587,587,587,1983,1984,587,587,587,587,587,587,3131,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2929,587,587,587,587,3145,587,587,587,587,587,541,587,563,541,541,563,563,587,587,0,2962,0,0,0,0,0,0,0,0,0,2507,0,0,0,0,0,0,0,0,0,0,0,3163,0,0,0,0,0,0,0,3169,0,0,0,0,0,438,0,0,0,0,0,0,0,0,0,0,0,2142,0,0,0,0,541,3226,541,541,541,541,541,541,541,563,563,563,563,563,563,563,3095,563,563,563,563,563,563,563,563,2306,563,563,563,563,563,563,563,563,563,3236,563,563,563,563,563,563,563,563,563,563,563,563,563,2309,2310,2311,563,563,3246,563,563,563,563,563,563,3252,563,3254,563,563,563,563,563,1392,563,563,563,563,563,563,563,563,563,563,1853,563,563,563,563,563,563,563,563,587,587,587,587,587,587,587,587,587,3265,587,587,587,587,587,2703,587,587,587,587,587,587,587,587,587,587,2950,587,587,541,587,563,587,587,3281,587,3283,587,587,587,587,587,587,587,587,541,587,563,3153,541,3155,563,3157,587,0,0,0,3301,0,0,0,0,0,0,0,3180,0,0,0,0,0,0,0,3014656,3207168,0,2691072,0,0,3215360,0,0,3309,0,0,0,0,0,3314,0,0,0,0,0,0,0,0,0,365,0,0,0,0,131072,131072,563,563,3339,563,563,563,3343,563,563,563,563,563,563,563,563,563,26028,1360,988,587,587,1456,587,587,587,587,3362,587,587,587,587,587,587,587,587,587,587,587,587,3126,587,587,587,587,587,3371,587,587,587,587,541,541,563,563,587,587,0,0,0,3296,0,0,0,0,0,0,3557,3558,0,0,0,0,0,0,0,541,541,541,3568,541,541,541,541,541,1284,541,541,541,541,541,541,541,541,541,1303,563,563,3588,563,587,587,587,3593,587,587,587,587,587,587,587,587,2690,587,587,587,587,2694,587,587,3601,587,0,0,0,0,0,3604,3605,3606,0,3608,541,541,541,541,541,541,1813,541,541,541,541,1819,541,541,541,1360,563,3621,3622,563,563,587,587,587,587,587,587,587,587,587,3629,3630,563,563,587,587,587,587,3679,0,541,3680,563,3681,587,3682,0,541,541,541,541,1345,541,541,541,541,541,541,541,541,541,541,541,541,2560,541,541,541,358,359,0,0,0,0,0,0,0,365,0,293,0,0,0,0,0,0,306,0,0,0,0,0,0,0,0,0,0,1174,0,0,0,0,0,0,0,0,392,0,0,0,0,0,0,0,0,0,0,0,0,2495,0,0,0,474,474,474,488,0,0,488,359,359,359,510,359,359,359,359,474,559,606,582,582,582,582,582,582,582,606,606,606,559,606,606,606,606,606,606,606,606,582,582,559,582,606,582,606,1,541,541,868,541,541,541,541,541,541,541,541,541,541,904,541,541,541,541,541,2851,541,541,541,0,0,563,563,563,563,563,563,563,563,563,563,2254,563,563,563,587,1015,587,587,587,587,587,587,587,587,587,587,1051,587,587,587,587,587,2909,587,587,587,587,587,587,2917,587,587,587,587,587,1527,587,587,587,587,587,587,587,587,1538,1539,1197,0,0,0,0,0,0,0,1197,0,0,0,0,0,0,0,0,1134592,0,0,1134592,0,0,0,0,0,0,0,0,0,0,0,0,0,2980,0,0,541,541,1280,541,541,541,1289,541,541,541,541,541,541,541,541,541,541,3524,541,541,3526,563,563,1360,914,563,563,563,563,563,563,563,563,563,1372,563,563,563,1381,587,587,1543,0,1289,1473,1381,541,541,541,541,541,563,563,563,563,563,2898,563,563,563,563,563,0,0,587,587,587,587,587,587,2337,587,587,587,587,587,587,587,2352,587,587,587,587,2357,587,587,587,563,587,587,587,587,587,1079,0,0,0,1564,0,0,0,1570,0,0,0,0,0,2440,0,0,0,0,0,0,0,0,0,0,0,2871296,0,0,2424832,0,0,0,1576,0,0,0,1582,0,0,0,0,0,0,0,0,0,365,0,0,0,0,155648,0,0,1606,0,0,0,0,0,0,0,1614,1615,0,0,0,0,0,0,0,3385,3180,0,0,0,0,0,0,0,0,2097,0,0,0,0,0,0,0,0,2070,0,0,0,0,2074,0,0,0,0,0,0,1625,0,0,0,0,0,0,0,0,0,0,0,1648,0,0,0,0,563,1891,563,563,563,563,563,563,563,563,1902,563,563,563,563,563,1408,563,563,563,563,563,563,563,563,563,563,1867,563,563,563,563,563,587,1975,587,587,587,587,587,587,587,587,587,587,587,1987,587,587,587,587,1490,587,587,587,587,587,587,587,587,587,587,587,2381,587,587,587,587,2008,587,587,587,587,587,587,541,587,563,541,541,541,541,563,563,918,563,563,563,563,563,563,563,563,563,563,563,2634,563,563,563,563,0,2243,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2637,563,0,2330,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3276,587,587,587,0,0,2451,0,0,0,0,0,0,0,0,0,0,0,0,0,2471,0,2472,0,0,0,563,563,563,563,563,563,563,2593,563,563,563,563,563,1424,563,563,563,563,563,563,563,563,563,563,2293,563,563,563,563,563,563,587,2659,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2912,587,587,2916,587,587,587,587,0,0,0,0,0,2776,0,0,0,0,0,0,0,0,0,0,372,0,0,373,0,0,563,2895,563,563,563,563,563,563,563,563,563,0,0,587,587,587,587,2335,587,587,587,587,587,587,587,587,587,2947,587,587,587,587,587,541,587,563,587,2906,587,587,587,587,587,587,2913,587,2915,587,587,587,587,587,587,2935,587,587,587,587,587,587,587,587,587,2408,587,587,587,587,2177,2349,587,587,587,2944,587,587,587,587,587,587,587,587,587,541,587,563,563,563,563,563,563,563,587,587,587,541,587,587,587,0,541,587,563,541,1547,541,541,1550,563,1551,563,563,0,0,0,0,0,3561,0,0,0,541,541,541,541,541,541,541,541,3464,541,3466,3467,541,3469,541,541,541,541,3575,541,563,563,563,563,563,563,563,563,563,563,3423,563,563,563,3426,587,587,587,587,563,3587,563,563,587,587,587,587,587,587,587,587,587,587,587,3600,587,587,587,587,3670,587,0,0,0,0,541,541,541,541,563,563,919,925,563,563,563,563,943,563,563,563,563,563,563,3353,563,563,563,587,587,587,587,587,587,587,587,587,587,587,587,3267,0,0,360,0,0,0,0,0,0,365,0,293,0,0,0,0,0,0,331,0,0,0,0,0,0,0,331,0,0,69632,73728,0,419,419,0,0,65536,419,0,0,0,0,375,0,0,0,0,0,0,0,0,0,0,0,1663,0,0,0,0,0,0,360,0,0,0,0,0,0,0,0,0,0,0,0,0,2511,0,0,0,0,0,370,0,0,370,0,0,0,0,0,0,0,0,0,0,0,0,0,2496,0,0,560,607,583,583,583,583,583,583,583,607,607,607,560,607,607,607,607,607,607,607,607,583,583,560,583,607,583,607,1,541,863,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1772,541,1010,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3123,587,587,587,587,587,587,587,563,1386,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2871,563,0,0,2760,0,0,0,0,0,0,0,0,0,0,0,0,0,2755,0,0,0,0,0,0,0,2985,0,0,0,0,0,0,0,0,0,0,406,0,0,0,0,0,0,0,0,0,3302,0,3303,0,0,0,0,3180,0,0,0,0,0,0,348,0,0,0,0,0,0,0,0,0,0,2801664,0,0,0,0,2142208,0,0,0,361,362,363,364,0,0,365,0,293,0,0,0,0,0,0,348,349,350,0,0,0,0,0,0,0,0,3180,0,3388,0,0,0,0,0,0,362,0,361,0,0,0,69632,73728,0,0,0,0,428,65536,0,0,0,0,0,2463,0,0,0,0,0,0,0,0,0,0,0,2807,541,541,541,541,428,428,0,0,428,0,362,428,457,0,0,0,0,0,0,0,0,1159168,0,1159168,0,0,0,0,1159168,0,0,0,0,498,498,0,505,505,505,505,511,512,505,505,525,525,525,525,525,457,457,457,457,457,457,457,457,457,525,525,525,525,525,525,525,525,525,561,584,561,584,561,561,584,561,608,584,584,584,584,584,584,584,608,608,608,561,608,608,608,608,608,608,608,608,584,584,620,625,608,625,631,1,563,563,563,973,563,563,563,563,563,0,587,587,587,587,587,587,1963,587,587,587,587,587,587,587,587,587,3137,587,587,587,587,587,587,587,0,2105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2052,0,0,0,0,0,541,2161,541,541,541,541,541,541,541,541,541,541,541,3336,541,563,563,563,0,0,563,2245,563,563,563,563,563,563,563,563,563,563,563,563,2882,563,563,563,0,0,587,2332,587,587,587,587,587,587,587,587,587,587,587,587,3286,587,587,587,587,541,587,563,2550,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2210,541,541,541,2579,541,541,541,541,541,541,541,541,541,541,0,0,0,0,0,0,2068,0,0,0,0,0,0,0,0,0,365,0,0,122880,122880,0,0,2711,587,587,587,587,587,587,587,587,587,587,541,587,563,541,541,541,2021,563,563,562,609,585,585,585,585,585,585,585,609,609,609,562,609,609,609,609,609,609,609,609,585,585,562,585,609,585,609,1,0,0,0,705,0,0,0,0,0,0,0,0,0,0,0,0,2742,0,0,0,0,735,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2075,0,541,864,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2238,0,1011,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2689,587,587,587,587,587,587,587,587,2716,587,587,587,541,587,563,541,541,1136,0,0,0,0,0,0,0,0,0,0,365,365,0,0,0,0,0,0,2095,0,0,0,0,0,0,0,0,0,0,2375680,0,0,0,0,0,587,1503,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2911,587,2914,587,587,587,587,2919,587,563,587,587,587,587,587,1079,1560,0,0,0,1566,0,0,0,1572,0,0,0,1578,0,0,0,0,0,0,0,0,0,0,0,0,2754,0,0,0,563,563,563,563,2600,563,563,563,563,563,563,563,563,563,563,563,26028,1922,587,587,587,0,0,0,0,647,0,0,0,0,0,0,743,541,541,541,541,541,541,2178,541,541,541,541,541,541,541,541,541,0,2242,563,563,563,563,563,0,0,1594,0,0,0,0,0,0,0,0,0,0,0,0,0,2770,0,0,563,563,563,1846,563,563,563,563,563,563,563,563,563,563,563,563,3085,563,3087,563,2187,541,2189,541,541,541,541,541,541,541,541,541,541,541,541,541,1821,541,1360,0,0,563,563,563,563,2248,563,563,563,563,563,563,563,563,563,2305,563,563,563,563,563,563,563,563,563,0,587,587,994,587,587,587,563,2274,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2894,563,587,2361,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3121,587,587,587,587,587,587,587,587,563,563,541,563,587,563,587,1,2623,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,3101,563,563,563,563,2651,0,0,0,0,0,0,587,587,587,587,587,587,587,587,587,2340,587,587,587,587,0,0,3179,0,0,0,0,0,0,0,0,0,0,0,0,0,2798,0,0,3245,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,3257,563,1134592,0,1134592,0,0,0,1134592,1135008,1135008,0,0,0,0,0,1135008,0,0,0,0,0,2478,0,0,0,0,0,0,0,0,0,0,0,3180,0,0,3307,0,1134592,0,1134592,1134592,0,0,0,0,1135203,1135203,1135203,1135203,1134592,1135203,1135203,1135203,1135203,1135203,1135203,1135203,0,1134592,1134592,1134592,1134592,1135203,1134592,1135203,1,0,0,2125824,2125824,2125824,2125824,2125824,2424832,2433024,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,0,988,2125824,2125824,2125824,2125824,1147355,1147355,1147355,1147355,458,458,1147355,458,458,458,458,458,458,458,458,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,0,0,0,0,0,0,0,0,458,0,0,0,0,0,1147355,1147355,1147355,1147406,1147406,1147355,1147406,1147406,1,12290,3,0,0,0,0,249856,0,0,0,249856,0,0,0,0,0,0,0,69632,73728,0,0,0,0,425,65536,0,1159168,0,0,1159168,0,1159168,1159168,0,1159168,1159168,0,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,0,1159168,1159168,0,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,0,0,0,0,0,0,0,0,0,1159168,0,0,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1,12290,3,78115,293,0,0,0,0,0,0,0,0,0,0,0,0,131072,131072,0,0,1163264,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3170,0,913,2125824,2125824,2125824,2125824,2125824,2424832,2433024,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,0,1453,2125824,2125824,2125824,2125824,106496,0,106496,106496,0,106496,106496,106496,106496,106496,106496,106496,106496,106496,106496,106496,106496,106496,106496,106496,106496,0,0,0,106496,0,0,106496,106496,106496,106496,106496,106496,106496,106496,106496,0,0,0,0,0,0,0,0,0,0,0,2183168,0,0,0,0,0,0,0,0,2134016,0,0,0,0,0,0,0,0,0,0,541,541,541,1275,541,541,0,0,0,3117056,0,0,0,0,0,0,0,0,0,0,0,0,2979,0,0,0,0,3108864,3198976,0,0,3043328,0,3149824,2936832,0,2760704,0,2437120,0,0,0,0,0,0,2107,0,0,0,0,0,0,0,0,0,365,0,293,0,0,0,0,0,0,0,0,2875392,0,0,0,0,0,0,0,0,0,0,2834432],r.EXPECTED=[1039,1047,1048,1046,1042,1052,1056,1060,1064,1068,1446,1074,2948,2053,1092,1446,2490,1670,1213,1080,1084,1085,1446,1089,1446,1446,2818,1098,1103,1108,1187,1181,1181,1114,1118,1446,1933,1123,1446,1136,1098,1098,1204,1108,1108,1171,1181,1181,1130,1134,1446,1446,1140,1446,1147,1098,1152,1108,1108,1109,1181,1181,1182,1158,1446,1446,1238,1668,1098,1148,1108,1108,1206,1181,1181,1165,1446,3130,2162,1098,1099,1108,1177,1181,1215,1219,2143,1136,1098,1186,1110,1181,1191,3130,2153,1099,1108,1180,1217,2659,2819,1197,1173,1201,1104,1235,1210,1224,1154,1228,1232,1168,1243,1247,1251,1255,1259,1261,1266,1262,1270,1274,1278,1282,1286,1290,1220,1295,1890,1296,1446,1446,1446,1446,1375,2489,1446,1446,1446,2385,1446,1446,1446,1446,1446,1446,1446,1446,1076,1446,1446,1446,1446,2986,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1300,1304,1305,1309,1405,1315,1318,1322,1326,1330,1446,1446,1804,1334,2315,1338,2350,1142,1143,1342,1346,1446,1446,2834,1352,1362,1369,1446,1126,1446,2386,1379,1446,1384,1390,1446,2987,2588,1396,2688,1457,1446,1518,1446,1446,2269,1446,1446,1446,1402,1446,1441,1897,1409,1413,1446,1447,1419,1446,1447,1419,1446,1446,1193,1446,2988,3136,2482,1446,2617,1425,1446,1448,1431,1446,1918,1446,2648,1436,1457,1348,1457,1380,1440,1446,1445,3050,1452,1446,1456,1311,1446,1916,2325,1463,2125,1347,1472,2317,1909,1478,3010,2343,2076,2746,2758,1482,2765,2077,1799,1486,2744,1493,1358,1446,1446,2131,1446,2559,1386,1365,1497,1501,1505,1509,1515,2369,1569,2450,1522,2538,1526,1530,1536,2479,2088,1457,1971,1540,1544,1548,1552,1557,1446,2103,1446,1532,1446,2479,2082,1563,1568,2137,1573,1577,3026,1446,1446,2116,1446,1446,3027,1446,1586,1938,1584,2123,1647,1590,1432,1594,1446,2517,1600,1446,2517,1600,1446,2872,1606,1612,1616,1620,1626,1446,1239,1633,1446,1596,1640,3118,2782,1645,1651,1863,1446,1863,1446,1602,1446,2675,2173,1655,2685,1559,1866,2685,3124,1659,1665,2904,2903,3055,2673,1674,1678,3047,2266,2239,1682,1686,1690,1694,1698,2892,1702,1715,1719,1723,1727,1731,1446,2332,1773,1737,1744,1748,1751,1755,1758,1446,1772,2979,1777,1781,2506,1788,1792,1635,1636,1446,2668,2874,1796,1808,2784,1815,1819,1823,2304,1828,1446,2430,1446,1446,2334,1853,2583,1834,1843,1446,2069,1446,1446,1954,1446,1446,2070,1446,1446,1622,1608,1847,1851,1857,1641,1871,1446,2225,1956,1446,2225,1956,1446,2374,1885,1876,1811,1446,1883,1446,1947,1889,1446,1511,1446,1291,2287,1894,1901,1906,1446,1906,1446,1913,1446,1740,1922,1446,1932,1733,1446,1932,1830,1094,1732,1446,1937,2066,2439,2671,1945,1942,2455,1489,2323,1951,1709,1711,1629,1161,1962,1968,1977,1980,1984,1446,1119,1994,1999,2003,2007,2011,2015,2019,2023,1986,1872,2093,1928,2028,2032,2036,1802,2040,1446,1446,2044,1580,2050,2059,2063,2074,2046,1446,2024,2081,1446,2086,1446,1446,1988,2092,2097,2109,2113,1446,2120,1446,1446,2129,1446,1558,2135,1446,1446,2141,2535,2866,2147,1446,1990,1446,1446,3096,1446,1446,3096,1446,1446,1466,2151,2157,2204,1458,2161,1446,2914,1446,1446,1764,1446,3053,2166,2170,1446,2182,1446,2187,1446,2916,1957,2192,2202,2305,1446,2210,2496,1824,3112,2217,1761,1459,1558,2224,2229,2841,2969,2682,2815,2233,2248,2236,2243,1837,1839,2247,2252,2100,1446,1446,1446,1446,2918,1766,2256,2260,2273,2277,2281,2284,1446,2889,1902,2985,2524,2433,2299,2576,2212,2213,2303,1415,1457,2309,1958,2321,2329,1446,2976,1446,1398,1446,1553,2338,2342,2751,1446,2347,2503,2354,2358,1558,2363,1446,1995,2368,1446,1421,2364,2373,2733,2378,2383,2390,3044,1446,2715,1446,1446,1860,1446,1446,1860,2719,2733,2397,2176,2401,1946,2461,1446,1446,2405,1446,1473,2717,2413,2417,2427,2437,3061,1446,2105,1446,1973,2407,2443,2447,2454,2459,2379,1446,2465,2472,2476,2486,2511,2494,2701,2409,2500,2510,2516,2521,2528,2220,2532,2542,2546,2198,2312,2550,2554,2563,2567,2571,2575,1446,2580,2592,2596,2600,2604,2608,2612,2616,1446,2621,2393,1372,2628,2632,2636,2640,2652,3103,1446,2708,2468,2656,2665,2679,2692,1558,2699,1446,2705,1446,2998,2712,1446,2723,2624,1768,1879,3159,1446,2205,2727,1446,1468,2732,1446,2206,2982,1446,3004,2737,2741,3109,2750,1446,2755,1446,1446,2762,1446,1446,2762,2769,3037,2775,2420,2779,1446,2788,1446,1446,2795,1446,1427,2801,3020,2805,2646,1446,2812,1446,2809,1446,3067,2853,2823,2643,2183,2827,2863,2512,2832,2838,1707,1070,2359,2845,2851,2857,1964,1474,3084,2557,2878,2955,3090,2882,2293,2295,2886,2896,2900,2908,2912,1446,1446,1446,2922,2926,2930,2934,2938,2942,2946,1446,2055,2952,1355,2791,2178,2959,1867,2963,1784,2967,1446,2973,2423,2992,2996,3002,1446,2728,1446,1446,3008,1446,3014,3018,1446,3024,2188,3031,3147,1446,1446,2694,1446,1446,2847,1446,1446,2695,3035,1446,3041,3078,3141,3059,1446,1446,3065,1446,1446,3065,1446,1446,3071,1446,3075,1925,3153,1446,1446,3082,1446,1564,3088,1446,1661,3094,3100,2195,3116,1446,3122,1446,3128,1446,3134,1705,3140,2586,2797,1446,3145,2771,1392,3151,1446,3157,2290,2828,2661,2869,2422,3106,2860,2263,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1473,3163,3166,3170,3182,3186,3182,3189,3181,3182,3182,3182,3182,3177,3173,3193,3182,3197,3201,3204,3210,3214,3216,3206,3220,3224,3228,3232,3235,3239,3243,3729,3929,3929,3246,3929,3929,5383,3929,3929,3300,3929,3261,3562,3273,4078,3734,3929,3929,3929,3277,3287,3294,4847,3929,3250,3929,3929,3344,3929,4873,4873,4873,4873,3266,4873,4873,3564,3564,3567,3564,3564,3564,3564,3267,3256,3305,3562,3568,3335,4081,3929,3929,3929,3323,4919,3377,4693,3929,3252,3722,3750,3365,3315,3269,3334,4080,3732,3929,3929,3559,4873,5799,4692,3929,3929,3688,3929,3929,3560,4873,4873,4873,4195,4873,4873,4873,4874,3564,3267,3264,3331,3339,3929,3342,3929,3738,3256,3367,3317,3321,3560,4873,3564,3309,3256,3256,3365,3371,3564,3564,3564,3567,3256,3256,3256,3256,3327,4195,3564,3564,3564,3310,3365,3359,3929,3929,3813,3929,3564,3564,3564,3364,3929,5741,3559,4873,4194,3564,3564,3268,3256,4193,4873,3266,3564,3310,3256,3256,3256,3366,3348,3929,3929,3929,3505,3383,3256,3373,3766,3256,3384,3929,4872,4874,3564,3268,3256,3257,3373,4694,3929,3929,3929,3355,3566,3256,3321,4194,3565,3311,3560,3563,3384,3561,3319,3360,3388,3390,4109,3394,3401,3405,3429,3429,3429,3429,3424,3430,3412,3416,3420,3428,3434,3438,3442,3397,3446,3450,3453,3457,3460,3463,3465,3469,3473,3408,3477,3481,3485,3696,3498,4473,3929,3929,3929,3512,3511,3929,3929,3929,3517,4964,4966,3929,3523,3527,3929,3929,3929,3752,3534,3543,3929,3929,3850,3854,3578,3582,3586,3589,3590,3594,3597,3601,3604,3608,3611,3614,3618,3622,3626,4965,3648,3636,5178,3647,5820,3654,4257,3659,3929,3669,4219,3694,3703,3929,5714,3525,3929,3929,3929,3770,3790,3929,5539,3707,3929,3342,5695,3904,3929,3289,3290,3906,3929,4658,4464,5227,4306,3936,3718,3726,3743,3929,3375,3631,3929,3548,5050,5064,3749,3929,3929,3929,3836,3758,3298,3929,3929,3915,3927,4893,3528,3929,3929,3921,4548,5744,4281,3929,3929,3932,5019,3929,5587,5178,3929,3553,3557,3572,5826,3929,3929,4530,3789,3794,3929,3929,3972,4899,3798,3806,3929,3929,3972,5040,3817,3826,3929,3929,3972,5490,3785,3929,3929,3929,3869,4728,4203,3770,3790,4142,3929,3929,3929,3894,4001,3929,3929,3929,3929,3252,3798,4127,4203,3850,3854,4139,3744,3929,3929,3929,3844,5313,5832,4137,4141,3929,3650,3929,3929,4854,4858,4140,3929,3929,3929,3930,5557,3873,3929,3929,3883,3929,5107,3929,5107,4780,3929,4781,5020,3929,3929,3738,5109,3929,3290,3904,3940,3947,3946,3942,3951,3955,3956,3956,3960,3962,3963,3962,3967,3971,3929,3929,4017,4021,4708,3978,3988,3929,3683,3781,3802,3995,4392,3929,5597,5363,3530,3929,4135,4005,4013,3929,3929,4065,4070,4026,3929,3929,4026,3375,3929,3929,4049,4056,4576,3997,5403,5596,3929,3856,4795,3529,3929,3929,3929,3931,4061,3929,3929,3929,3972,4199,3911,3929,3929,3929,3974,5170,3929,3929,4704,3929,4075,5320,4248,5165,3855,4657,4085,3929,3690,4699,5178,3978,3251,3929,3929,4101,3929,5319,4247,5772,5010,4113,3981,3929,3929,4164,4148,4148,4120,3929,3929,4165,4115,4709,4132,3929,3929,4247,4459,5170,3929,3929,4706,3879,4572,4576,5321,4249,4655,3929,3929,4274,3929,3972,4146,4150,3929,3735,3929,3735,4154,4158,3929,3929,4396,3929,3929,3982,3929,3929,3929,4029,4107,3929,4706,3929,4366,4574,4181,5320,5850,4644,4180,5319,4886,4217,4208,4673,3929,3929,4424,5855,3279,5321,4215,3929,3766,4873,4873,3563,3564,4228,3929,4451,4182,4233,4305,4240,4273,4435,4246,4434,4245,4708,4241,3929,3699,4502,3698,4255,5609,4272,5609,4272,3699,5199,5610,4273,4253,3281,4246,4270,3929,3809,3929,4549,3737,3929,3896,3929,5021,3770,4271,3771,4182,5163,5161,3929,3283,5762,3710,4279,4279,4211,4127,4128,4405,3712,4286,3929,3929,3929,4052,3929,5548,3754,4301,3929,3842,3574,4534,4651,5125,3745,4537,4310,4314,4318,4319,4323,4327,4333,4334,4331,4338,4339,4339,4340,3929,3844,4827,3929,3846,3929,3929,4905,3929,3376,5780,4202,3929,3929,3929,4235,4524,5352,5187,4364,4473,3342,4273,3929,3888,5737,4840,4356,4374,4378,4842,5051,4864,3929,4387,4491,3929,4413,3929,3892,5107,3929,3665,3929,3929,4681,3640,4265,4472,3929,4802,3929,4518,3670,4266,4421,3929,4204,4203,3929,4718,4428,4432,3929,3929,3929,4451,4440,4445,3929,3929,4450,4541,4470,3929,3343,3929,3897,3929,4294,3929,4296,3929,5616,3929,5461,4463,3929,5347,4362,5468,4800,3929,3929,4457,4461,5243,3929,4484,3929,3931,5074,3929,3972,4166,4116,3929,3929,3929,4035,4737,3929,3929,3929,4505,3929,5347,4495,3929,3972,5410,5415,4015,4019,3929,3929,4457,4490,4499,3929,3929,3929,4624,5347,3929,4801,3929,3997,3929,5743,4160,3929,3929,3929,4628,3929,5704,4529,3929,3998,5353,5435,3929,5703,4528,3929,4e3,3929,3929,3999,3528,4505,5352,4800,3929,4007,4653,3929,4009,3929,4642,5697,3929,3929,3929,4695,4052,3929,3929,3929,4708,4545,3929,3929,3301,4450,3929,3929,3929,4734,3929,5303,3342,3929,4030,4480,3929,3929,3929,4516,4994,3894,3929,3895,3929,3929,3351,3892,3737,3735,3929,4039,3929,3929,4086,5090,3895,5020,3895,3737,5022,3736,3737,4554,4556,3929,3929,4638,4794,3929,3929,4668,4806,4689,3929,3929,3929,4752,4504,3929,3929,5097,4566,4022,5334,4383,5691,4570,4582,4586,4590,4594,4598,4602,4605,4608,4612,4614,4618,4634,4632,4634,4621,3929,3929,3929,4757,4725,4816,3929,4648,4662,4666,5081,4672,3929,5344,4398,4352,4678,3929,3929,4678,4687,5178,3929,3929,4745,4749,4210,3929,4965,4768,5739,3929,3929,3322,5689,3899,5181,4703,5110,5214,4713,4722,3929,4051,3558,3929,4028,4478,4500,3929,5400,4741,3929,3929,4780,3929,4780,4762,3929,3929,3929,4821,4756,4761,3929,3929,4818,4822,4505,3863,3867,3929,3341,3341,3929,4766,4294,3929,3899,3929,4066,3929,3929,4087,5091,3767,5433,4817,4683,4716,3929,5809,3929,4091,4095,3751,3972,4773,4777,3929,4107,3929,3929,4137,4141,4786,4775,3929,3929,4820,3910,4788,4777,3929,3929,4828,3972,3322,4792,3929,3929,4847,3929,5432,4816,4833,4799,3929,5147,3929,3929,4872,4873,4966,4295,4304,4814,4826,3929,3929,3929,4871,4674,3929,4708,3897,5180,5433,4832,3929,4159,3929,3377,3299,3929,4503,4708,3929,4837,3929,3929,3929,4913,5207,3929,3929,3929,4965,3929,5148,3929,4008,3929,4408,3929,4172,3929,4172,3900,5432,3628,3929,3929,3929,4856,4860,3844,5313,3929,3929,4982,3929,5086,3768,5434,3630,3929,4174,3929,4562,5312,3929,3929,3929,5003,4502,5148,4878,4885,4293,3929,3929,4296,3929,4296,3929,4229,5198,5520,3928,3929,3928,3897,4293,3929,3898,3929,5228,3899,3898,3929,4296,3929,5547,3519,4911,3929,5584,4917,3769,3929,3929,3929,4240,4273,3929,3779,3800,3744,4923,4927,4934,4935,4930,4939,4943,4949,4953,4945,4957,4957,4958,4962,3929,4247,4511,3929,3972,5871,3929,3983,3929,5572,5591,3929,4731,4359,5861,5581,4990,3929,3929,3929,5111,4846,5503,4707,5051,3929,4263,4465,3929,4282,3929,3929,3860,3929,5742,3929,3929,3737,3929,3894,5322,3929,5e3,5007,3507,3929,4290,3929,3929,4449,3929,5018,3929,3929,3642,5026,3929,3929,3929,5177,4628,3929,3300,3929,4346,3674,3681,3547,3929,3539,5030,5034,3929,3929,3929,5337,5040,3822,3929,3929,3641,5042,3929,3929,3929,5368,3643,3929,3929,3929,5405,5793,3929,3929,3929,5453,4626,3377,5052,3929,3929,3929,3721,4501,4368,3929,3546,3490,5496,5308,5793,3929,3929,5485,4370,3929,3929,5068,3972,5073,4863,3929,3513,4450,5122,3375,5406,3842,3929,3655,5793,3929,3739,4707,5781,3929,3990,3929,3929,4006,3299,4452,4369,3929,4439,4444,3929,3895,4547,3886,3929,5078,3929,3929,5048,5304,3929,5095,3929,5486,5051,4451,4368,3929,4474,4050,4057,4293,4450,3929,3929,5228,3929,5453,3929,3929,5072,4862,3929,5101,3929,3512,5742,3929,5241,5105,4986,3751,5323,3296,4502,4381,3929,4486,4034,3929,3684,3783,3744,5062,3929,3929,4209,3929,3929,3929,3560,3929,5118,3929,3929,5111,4852,4515,4382,5129,3929,4502,4176,3929,4350,5314,3549,3929,5797,3929,3929,3929,5526,5795,3929,3929,3929,5603,5136,5144,5227,4451,4236,3929,4975,3676,5063,4465,3744,4042,4464,5152,3929,4507,3865,3929,4121,5622,4297,4174,3342,5169,3342,5169,4514,3537,4561,4558,3929,4559,4453,3929,5213,4466,3929,4520,3929,3929,5170,4045,5196,5187,5174,4560,5185,4558,5193,5203,5211,5218,5221,5222,5226,3929,3929,3929,5725,3929,5232,4690,3929,4524,5352,3677,3929,3929,3929,5771,3929,5740,3929,4274,4848,5238,5247,5773,5254,5251,4704,3918,5260,5266,5262,5268,5272,5276,5280,5284,5287,5291,5294,5293,5298,5302,3929,3929,3929,5742,5425,3929,4694,5050,3546,3490,3494,3929,5318,3929,5327,3923,4464,4390,5227,3929,5816,5331,5341,3929,5782,3744,3929,4547,3770,3929,4547,3929,3736,5322,3929,5189,3929,3929,5189,5361,5367,3374,3929,4693,3929,3929,3829,3929,5372,3929,5411,3929,4704,4292,3929,3892,3929,3929,4517,5713,4819,4170,3929,5416,3991,3929,4708,4852,3929,4186,4190,3929,3765,3775,3800,5841,5084,3929,3929,5111,5157,3753,5377,5381,3929,3929,5117,3929,3929,5388,3821,3929,4708,5234,4550,3929,5393,5392,3929,4751,5041,3744,3929,3929,5048,5036,3929,5373,5397,4693,3501,3929,3929,3929,5766,4862,3929,3929,3929,5789,5048,4769,3378,3492,5429,4705,5779,3929,4781,4779,3929,4505,5110,3876,3929,3929,3929,5791,3972,5439,3839,3929,4815,3929,4778,5514,5443,3839,3929,4815,3929,5108,5841,5843,3929,3929,5139,3929,5050,5457,3492,4485,5465,3770,3878,3929,4821,3929,3929,4417,3929,3929,5472,5477,3929,4881,3929,5701,5473,5482,3929,3929,5140,3929,5478,3929,5420,3877,3546,5494,3714,3632,3929,5514,5508,3929,4907,5500,3929,4890,4880,3929,4193,4873,4873,4195,5742,3379,5773,3631,5525,3929,3929,3929,5870,5524,3760,3896,3929,5819,4519,5513,3488,5530,5351,3929,4708,4846,4159,3929,3929,3929,5155,5159,5336,5518,3761,3929,3929,5512,5536,4519,4522,3989,3929,3929,3929,4913,5518,3929,4964,4293,5179,5352,3929,3929,4125,3929,3929,4247,4402,4086,3353,3929,5556,5570,3929,5570,5578,3983,3929,5573,3929,4971,3751,3929,4253,3929,4261,5594,4522,3929,5601,3984,3929,5574,3929,4978,4224,3929,3929,5608,5571,5607,5351,5349,3929,3929,3929,5206,4827,3929,3929,4897,4901,5733,5834,3662,4782,5757,3879,5132,5614,5467,5620,5626,5630,5634,5638,5642,5646,5650,5654,5658,5662,5666,5670,5673,5677,5681,5685,3929,3929,5256,4275,5756,3929,3972,3929,4996,3929,5561,5708,5718,3929,5722,5729,3929,3888,3998,5749,3929,3929,3929,5311,3929,5731,5753,5459,3929,5014,4985,3929,4344,4461,3929,3875,5420,3929,3878,3929,3929,3929,3736,4071,4506,3929,3766,4521,4967,3929,3929,3929,5387,3820,5761,4485,3929,3929,5424,4691,5113,3998,3929,3929,5435,3873,3929,5112,5770,4234,5849,3929,3929,3929,5447,3929,5732,5805,3929,3972,4093,4097,3929,3905,3929,4408,3670,5786,3929,3929,3929,5447,4693,4517,5803,5807,3929,5046,5056,3929,4434,4245,3929,3770,5321,3929,3649,3929,3929,4977,4223,3929,5830,3929,3929,5450,5042,4423,5838,3929,3929,5507,4159,4423,5838,4248,5847,4578,5805,3929,4548,3929,3929,5813,4423,5854,3929,3929,5552,5542,5859,3929,3929,3929,5564,3929,5786,4235,3929,3929,5566,4810,4103,5807,3990,3929,5059,5357,3929,4549,3929,3929,4549,5416,3929,4674,3929,4868,5532,3929,3929,3929,5710,3929,3831,3998,3929,3929,5712,4818,3973,5866,3929,3929,5739,3929,3972,5865,3929,3929,5745,3929,4964,3929,5180,4523,5824,3832,3929,3929,3929,5777,5545,4965,3929,4409,3929,3675,3738,3973,3547,3929,3929,5841,3929,6277,6502,5875,6282,5878,6547,6266,5881,6546,5889,6232,5882,6232,5892,6221,6267,5888,5883,5884,6232,6232,6232,6232,6414,5887,5883,6232,5891,6232,6232,5894,6232,6232,5922,5937,5949,5938,5939,5949,5944,5950,5944,5944,5940,5944,5941,5952,5941,5944,5946,5945,5946,5946,5946,5946,5947,5941,5948,5952,5948,5944,5942,5954,5956,5958,5962,5960,5959,5964,5966,5967,5971,5967,5968,5967,5969,5974,5973,5976,5978,6293,5998,5875,6282,5896,6871,6437,6282,6321,6282,6282,6282,5917,6456,6456,6456,6456,5991,5906,6379,6455,5990,6019,5991,5904,5904,5904,6456,6456,5926,5899,6456,6456,5997,6282,6408,6410,6282,5932,6282,5933,6464,6024,6282,6282,6379,5924,6282,6282,5924,6282,6362,6010,5984,6282,6003,6282,6362,6282,6282,6282,6004,6456,5906,6455,5990,5904,5902,6456,6456,6456,5906,6457,6019,6019,5904,5904,6456,6456,6282,6282,6282,5980,5917,6456,6456,6456,6455,5905,6456,6445,5926,5926,5926,5926,6032,6032,6008,5932,6282,6282,6282,6434,6024,6282,6019,5904,6456,6282,5896,6873,6282,6282,6282,6474,5903,6457,6019,5904,6456,6229,5904,6456,6456,6456,6018,6457,6019,5991,5905,5906,6282,6282,6282,5984,6282,6282,6282,5925,6543,5905,6456,6456,6456,6282,5905,6229,5905,6229,5905,6282,6650,6437,6043,6515,6056,6672,6088,6052,6515,6520,6054,6060,6058,6515,6515,6083,6528,6101,6761,6518,6521,6516,6517,6063,6065,6068,6061,6057,6515,6515,6519,6515,6070,6072,6066,6515,6515,6515,6515,6125,6522,6074,6515,6515,6076,6515,6523,6079,6082,6515,6081,6055,6091,6089,6090,6093,6114,6092,6113,6114,6114,6114,6114,6115,6117,6116,6117,6117,6118,6119,6120,6121,6121,6095,6097,6099,6122,6123,6124,6524,5900,6515,6518,6103,6108,6110,6104,6105,6109,6106,6112,6121,6127,6129,6282,5899,6282,5925,6463,6321,6282,6294,6006,6378,6282,6508,6282,6449,6646,6218,6604,6282,6524,6291,6282,6774,6282,6270,6282,6282,6282,6e3,6e3,6027,6161,6282,6282,5895,6375,6282,6312,6230,6366,6265,5876,6282,6282,6282,6015,6406,6282,6284,6027,6027,6137,6282,6282,6379,6281,6372,6028,6159,6282,5899,6282,6282,6282,6573,6282,6282,6467,6282,6311,6312,6372,6282,6282,6282,6019,6019,5904,5904,5904,5904,5905,6456,6456,6031,6154,6158,6282,6149,6273,6282,6163,6282,6677,6280,6166,6279,6682,6685,6501,6173,6175,6178,6178,6178,6178,6176,6181,6180,6181,6181,6183,6181,6185,6187,6188,6188,6188,6194,6193,6194,6193,6193,6189,6191,6190,6190,6196,6196,6198,6203,6202,6204,6208,6203,6205,6199,6200,6210,6206,6212,6282,6282,5896,6282,6282,6282,6512,6282,6150,6135,6320,6500,6163,6282,6282,6282,6026,6282,6026,6166,6282,6282,6282,6027,6221,6282,6505,6282,6282,6282,6032,6238,6282,6241,6282,5899,6451,6282,5913,6669,6401,6238,6282,6282,6282,6037,6245,6282,6282,6282,6040,6282,6282,6225,6248,6282,6282,5916,6722,6377,6247,6249,6282,6282,5924,6370,6252,6253,6282,6282,5932,6282,6282,6530,5924,6254,6282,6282,6254,6282,6322,6228,6282,5933,6378,6282,6378,6282,6452,6282,6432,6317,6282,5917,6086,6725,6727,6216,6086,6726,6450,6231,5926,5933,6008,6008,6008,6282,6282,6282,5918,6282,6282,6282,5923,6309,6683,6282,6282,6282,6148,6216,6308,6310,6282,6282,6282,6149,6282,5903,6397,6605,6282,6282,5933,5933,5933,6780,6282,6282,6282,6229,6282,6282,6282,5933,5924,6316,5917,6723,6377,5916,6722,6323,6448,6454,6216,6332,6436,6683,6282,5917,6328,6465,6450,6217,6231,6160,6436,6683,6328,6448,6454,6216,6610,6436,6683,6282,6221,6602,6310,6282,5984,5899,5925,6229,6435,6500,6281,6722,6013,6465,6450,6160,6603,6683,6282,6282,6231,6218,6310,6282,5984,6282,6283,6043,5914,6282,5933,6328,6465,6450,6647,6604,6282,6e3,6282,6282,6283,6277,6707,6733,6282,6722,6465,6230,6396,6282,6282,6282,6235,6686,6282,6708,6281,6282,6e3,6437,6362,6338,6279,6282,6282,6283,6444,6145,6683,6282,6282,5933,6003,6282,6282,6282,6006,6375,6465,6708,6282,6005,6282,6282,6287,6289,6282,6548,6282,6282,5933,6282,6282,6282,6137,6282,6282,6020,6282,6375,6282,6282,6282,6281,6471,6218,6683,6282,6282,6282,6370,5984,6282,6010,6795,5984,5899,6282,6282,6661,6282,6e3,6137,6282,6282,6282,6282,5896,5914,6704,6273,5928,6340,6344,6503,6348,6349,6349,6350,6355,6352,6349,6349,6349,6349,6354,6355,6355,6355,6356,6357,6357,6357,6357,6357,6358,6359,6359,6359,6359,6383,6360,6382,6382,6382,6361,6282,6282,6282,6283,6043,5903,5897,6485,6376,6395,6425,6282,6282,6282,6293,6291,6338,6282,6282,6282,6284,6282,6282,6345,6282,6282,6291,6282,6282,6282,6230,5876,6282,6407,6282,6282,6282,6286,6282,6282,6037,6411,6417,6282,6282,5979,5903,6470,6313,6647,6281,6282,6282,6408,6416,6418,6282,6282,5979,6525,6458,6342,6422,6282,6282,6282,6288,6282,6664,6731,6282,6012,6e3,6282,6012,6335,6310,5985,6504,6282,6282,6273,6470,6372,6273,6504,6385,6282,6282,6412,6257,6598,6600,6282,6411,6413,6597,6599,6599,6282,6282,6282,6291,6410,6282,6322,6451,5926,5926,6008,6008,6008,5932,6236,6282,6282,6282,6292,5982,6282,6283,6442,6050,6013,6609,6259,6424,6310,6282,5919,5920,6282,6282,6011,5916,6282,6664,6282,6282,6023,6437,6459,5983,6013,6594,6700,6437,6282,6424,6437,6282,6282,6235,6480,6481,6282,6282,6133,6282,6282,6485,6376,6647,6282,6016,6282,6282,5933,6330,6454,6217,6683,6282,6282,6484,5917,5929,6011,6608,6259,6425,6282,6486,5983,6013,6594,6786,6437,6282,6282,6282,6294,6282,6283,6484,5917,5983,6013,6531,6471,6282,6282,6146,6683,6282,6282,6155,6282,6282,6385,6282,6322,6282,6282,6275,6493,5917,5983,6324,6259,6729,6282,6019,6019,6019,5991,5904,6277,5903,6531,6011,6148,6282,6282,6282,6234,6531,6282,6282,6282,6322,6282,6133,6372,6505,6282,6230,6282,6282,6171,6756,6531,6046,6834,6437,6282,6282,6285,6530,5924,6282,6684,6282,6149,6282,6282,6282,6325,6285,6530,6045,6159,6024,6046,6386,6282,6282,6282,6372,6282,6294,6282,6530,6464,6386,6282,6282,6215,6224,5933,5924,6410,6282,6040,6282,6482,6282,6282,6282,6531,6536,6024,6282,6282,6282,6370,5987,6282,6535,6282,6282,6227,6282,6282,6282,6378,6378,6378,6282,6452,5994,6282,6282,6282,6394,6282,6282,6282,6404,6539,6333,6683,6282,6020,6282,6282,6282,6341,6282,6570,6300,6569,6301,6370,6545,6300,6302,6303,6303,6303,6303,6303,6304,6551,6554,6552,6561,6552,6555,6563,6564,6563,6563,6563,6563,6564,6556,6557,6557,6557,6557,6558,6372,6273,6282,6282,6243,6282,6509,6566,6282,6282,6271,6213,6282,6283,6568,6282,6021,6041,6282,6027,6282,6321,6282,6006,6282,6282,6027,6462,6282,6282,6282,6572,6282,6168,6282,6575,6510,6282,6029,6282,6282,6282,6588,5907,5909,5911,6282,6036,6282,6282,6388,6407,5908,5910,6282,6282,6272,6282,6526,6282,5916,6322,6282,6378,6282,6020,6282,6278,6282,6282,6394,5924,6278,6282,6283,6502,6365,6282,6579,6282,6282,6275,6525,5914,5992,6371,6048,6365,6367,6369,6282,6282,6277,6531,6046,6275,6583,5993,6047,6256,6256,6366,6368,6282,6282,6452,6e3,6282,6282,6282,6408,6282,6027,6282,6372,6526,6282,5899,6539,6664,6682,6282,6282,6282,6146,6282,6482,6282,6006,6451,6282,6282,6282,5985,6458,6342,6313,6136,6152,6282,6037,6378,6282,6282,6282,6421,6584,6020,6437,6683,6282,6027,6321,6282,6451,6646,6152,6282,6282,6282,6410,6282,6282,6282,6375,6282,6e3,6526,6322,6533,6682,6282,6408,6282,6282,6282,6505,6282,6282,6278,6282,6282,6282,6143,6371,6472,6282,6282,6282,6423,6539,6437,6683,6282,6040,6148,6040,6149,6273,6229,6682,6282,6470,6282,6282,6283,6282,6282,6282,6524,6548,5933,6282,5933,6282,6434,6410,6282,6282,6434,6537,6282,6664,6491,6866,5876,6482,6491,6282,6282,6283,6410,6282,6427,6282,6282,5980,6011,6276,6037,6285,6038,6590,6783,6607,6612,6620,6619,6620,6620,6616,6620,6620,6618,6622,6620,6614,6613,6624,6627,6626,6627,6627,6628,6630,6630,6634,6630,6632,6631,6630,6630,6630,6636,6638,6638,6637,6637,6640,6641,6282,6132,6282,6282,5895,5924,5984,6282,6640,6637,6640,6640,6640,6640,6505,5903,6644,6331,6649,6282,6282,6229,5879,6282,6527,6653,6148,6282,6137,5924,6282,6282,6282,6230,6281,6282,6282,6306,6402,6433,6346,6656,6658,6549,6282,6282,6283,6475,6423,6282,6282,6282,6437,6682,5912,6668,6400,6282,6157,6282,6282,5896,6451,5980,5917,6029,6221,6281,6282,6282,6524,6282,6282,6282,5930,6664,6282,6264,6683,6694,6282,6282,6282,6452,6282,6282,6282,6285,5897,6453,6654,6282,6346,6295,6282,6282,6283,6582,6297,6282,6681,6282,6164,6024,6282,6133,6451,6282,5988,6281,6285,5980,6458,6371,6263,6647,6281,6282,6676,6282,6676,6514,5903,6680,6465,6489,5995,6282,6282,6283,6496,6085,6282,6513,6525,6679,6688,6688,6399,6713,6281,6282,6286,6282,6037,6282,6282,6282,5899,6691,6497,6724,6488,6734,6282,6282,6282,6498,6282,6282,6282,6255,6282,6283,6691,6696,6724,6488,6698,6331,6222,6282,6282,6282,6431,6296,6282,6282,6282,6499,6282,6282,5903,6464,6231,6734,6696,6134,6733,6281,6693,6282,6282,6434,6282,6282,6282,6277,6525,6531,6471,6218,6231,6490,6282,6282,6282,6504,6548,6282,6283,6278,6282,6275,6710,6733,6282,6169,6282,6282,6509,6003,6712,6282,6282,6282,6508,5899,6702,6490,6282,6282,6283,6861,6854,6033,6858,6646,6218,6604,6282,6282,6282,6577,6286,6282,6394,6282,6229,6019,6019,6019,6019,5904,6286,6282,6137,6282,6229,6282,6292,6229,6282,6282,6372,6505,6282,6437,6683,6282,6229,6146,6265,6282,6283,6525,5927,6539,6729,6683,6282,6282,6650,6282,6282,6283,6863,6364,6024,6282,6282,6283,6869,6282,6362,6282,6362,6363,6010,6592,5925,6719,6591,6593,6718,6721,5934,5934,5935,6469,6736,5934,5934,5934,6736,6738,6742,6740,6739,6744,6746,6751,6751,6752,6753,6747,6748,6748,6748,6749,6751,6751,6751,6753,6753,6753,6753,6758,6754,6755,6282,6282,6285,6282,6282,6282,6014,6760,5981,6007,6728,6282,6763,6282,6282,6285,6496,6531,6282,6283,6768,6770,6282,6282,6282,6539,6392,6282,6282,6392,6027,6156,6282,6282,6293,6586,6282,6373,6281,6285,6507,5903,6470,6326,6505,6659,6282,6234,6229,5879,6283,6496,6703,6776,6704,6777,6282,6282,6282,6548,6282,5918,6025,6282,6282,6026,6282,6286,6505,6394,6282,6291,6370,6282,6370,6282,6496,6085,6831,6147,6603,6683,6282,6380,6282,6282,6370,6282,6282,6282,6003,6282,6294,6336,6e3,6282,6239,6846,6282,6260,6282,6282,6282,6642,6379,6282,6505,6336,6283,6702,6782,6319,6218,6604,6282,6785,5999,6282,6269,6663,6282,6140,6282,6282,6393,6282,5982,6724,6319,6218,6604,6539,6310,6282,6282,6375,6370,6375,6788,6320,6310,6e3,6e3,6282,6282,6375,6548,6282,6282,6282,6275,6084,6447,6282,6788,6429,6683,6282,6282,6664,6683,6282,6273,6541,6148,6282,6394,6e3,6282,6274,6282,6003,6318,6429,6683,6282,6275,5898,5915,6282,6282,6370,6370,6370,6664,6282,6683,6282,6410,6282,6699,6282,6275,5901,5982,6724,6291,6282,6282,6531,6689,6282,6282,6220,6282,6537,6282,6282,6282,6664,6146,6282,6282,6434,6281,6282,6282,6282,6020,6282,6006,6410,6408,6282,6027,6282,6282,6250,6843,6434,6410,6282,6434,6410,6282,6408,6282,6322,6282,6410,6410,6027,6282,6275,6702,6231,6490,6146,6282,6146,6282,6282,6282,6671,6146,6410,6408,6408,6409,6409,6409,6409,6409,6282,6282,6282,6682,6282,6282,6285,6039,6216,6221,6281,6286,6282,6282,6790,6543,6282,6505,6003,6282,6559,6282,6282,6559,6508,6792,6282,6077,6139,6282,6282,6379,6374,6793,6806,6798,6798,6801,6799,6798,6799,6798,6797,6803,6808,6807,6808,6805,6808,6809,6810,6813,6814,6815,6816,6815,6818,6811,6813,6811,6813,6820,6822,6822,6821,6821,6824,6824,6824,6824,6821,6824,6824,6828,6825,6826,6282,6282,6282,6683,6282,6282,6689,6439,6282,6277,6715,6282,6282,6282,6510,6035,6282,6282,6282,6684,6282,6282,6282,6233,6282,6716,6282,6580,6419,6282,6836,6282,6281,6282,6282,6283,6293,6337,6282,6838,6840,6282,6282,6666,6282,6143,6292,6282,6282,6292,6282,6282,6282,6378,6845,6282,6282,6845,6282,6487,6282,6282,6391,6391,6651,6282,6282,6282,6730,6512,6282,6282,6282,6830,6853,5931,6141,6428,6602,6604,6282,6282,6409,6410,6282,6852,6854,6856,6450,6002,6282,6001,6003,6282,6645,6231,6281,6282,6282,6674,6282,6167,6282,6282,6e3,6282,6e3,6034,6282,6282,6282,6848,6282,6394,6683,6282,6282,5933,6003,5933,6003,6282,6830,6645,6231,6222,6487,6282,6024,6282,6282,6693,6282,6282,6282,6464,6861,6854,6009,6377,6525,5931,6011,6465,6282,6830,5885,6282,6282,6702,5931,6319,6436,6683,5916,6282,6282,5925,6282,6282,6448,6282,6282,6931,6282,6282,6451,6282,6282,6282,6860,6044,6011,6465,6449,6647,6310,6282,6282,6142,6436,6683,6282,6282,6732,5924,5984,6861,5983,6377,6454,5982,6321,6282,6294,6138,6282,6461,6151,6437,6282,6282,6732,6772,6860,5983,6465,6151,6437,6282,6865,6282,6282,6282,6860,6337,6437,6282,6282,6466,6282,6144,6436,6282,6282,6282,6868,6219,6282,6282,6282,6468,6282,6282,6732,6282,5916,6262,6299,6282,5918,5918,5918,6378,6282,6282,6526,6282,6148,6282,6283,6293,6586,6292,6502,6437,6282,6282,6282,6294,6282,6292,6294,6282,6282,6474,5980,6293,6291,6282,6282,6292,6502,6282,6278,6294,6282,6278,6282,6282,6765,6282,6229,6362,6282,6230,6320,6500,6282,6505,6282,6292,6502,6282,6505,6233,6282,6282,6293,6282,6282,6282,6474,6478,6291,6278,6282,6282,6292,6531,6536,6875,6255,6282,6282,6476,6282,6006,6255,6282,6006,6390,6282,6314,6049,6282,6877,6878,6881,6375,6880,5930,6282,6532,6542,6883,6596,6258,6885,6596,6595,6595,6886,6889,6595,6888,6890,6889,6892,6897,6893,6894,6895,6899,6900,6905,6905,6901,6902,6912,6903,6902,6906,6905,6906,6905,6906,6907,6909,6908,6910,6914,6908,6908,6922,6922,6921,6922,6923,6916,6917,6918,6920,6926,6925,6928,6460,6371,6282,6282,6482,5932,6321,6285,6282,6282,6494,6371,6930,6282,6282,6282,6505,6494,6371,6130,6282,6282,6282,6505,6506,6282,6282,6282,6312,6933,6282,6505,6935,6282,6282,6937,6282,6282,6767,6769,6290,6282,6282,6282,6505,6692,6011,6313,6291,6233,6282,6282,6508,6282,6282,6282,5916,6030,6282,6423,6170,6282,6282,6170,6011,6372,6282,5916,6282,6282,5915,6451,6440,6282,6282,5918,6322,6283,6939,6446,6705,6447,6291,6282,6282,6294,6282,6282,6282,6438,6282,6282,6511,6282,6282,6282,6842,6149,6282,6149,6282,6282,6779,6007,6728,6310,6282,6282,6319,6310,6282,6282,6363,6282,6692,6011,6372,5916,6282,5915,6282,6282,6511,6268,6286,6282,5924,6282,6282,6833,6282,6279,6398,6282,6282,6014,6282,6282,6282,6601,6282,6439,5933,6133,6282,6148,6282,6255,6282,5914,5931,6705,6282,6282,6850,6282,6850,6282,6372,6282,6372,6282,6149,6282,6505,5914,5931,6291,6282,6282,5982,6585,6282,6282,6660,6291,6043,5914,6291,6282,6282,6283,6043,5899,6282,6282,1048576,1073741824,2147483648,1075838976,2097152,2147483648,4194560,4196352,-2143289344,-2143289344,4194304,2147483648,37748736,541065216,541065216,-2143289344,4198144,4196352,276901888,8540160,4194304,1,4,16,64,0,48,64,32,64,64,96,0,59,140224,5505024,-1887436800,0,63,64,128,0,64,256,0,110,110,8425488,4194304,1024,0,128,128,512,512,1024,1024,2048,0,256,256,257,37748736,742391808,742391808,775946240,-1371537408,775946240,4718592,775946240,775946240,171966464,171966464,775946240,239075328,-1405091840,-1371537408,239075328,171966464,64,4718592,2097216,4720640,541589504,4194368,4194368,541065280,541589504,4194400,-2143289280,4194368,-2143285440,-2143285408,-2143285408,-2109730976,775946336,776470528,-2143285408,776470528,775946304,775946304,-1908404384,775946304,-1908404384,2,8,32,128,1024,4096,0,260,8392704,0,1856,64,524288,64,896,8192,67108864,2147483648,96,262144,262144,8192,0,288,8388608,0,384,0,512,2048,2048,4096,4096,8192,8192,16384,0,520,520,96,524288,524288,0,2432,2048,268435456,0,24576,0,32768,32768,65536,1048576,128,2048,12288,0,12289,0,16384,16384,32768,0,1864,2,16,1024,98304,131072,262144,1048576,512,5120,2,536936448,80,528,528,2097168,2097168,268435472,524304,1048592,2097168,24,560,48,2097680,1048592,3145744,1048592,20,560,48,3146256,2097552,3146256,28,16,8192,2,2098064,163577856,17,21,112,128,3584,8192,2228784,-161430188,-161430188,-161429680,-161430188,-161429676,-161430188,-161298576,-160299088,-161298576,-161298572,-160774288,-160299084,146804757,146812949,146862101,146863389,146863389,148960541,-161429740,-161429676,146863421,148960541,146863389,-161429676,-160905388,-161429676,-161429676,-161429675,-161349072,-161349072,-161347728,-161347728,-161298572,-161298572,-160774284,-161298572,16,262160,-18860267,-160774284,-18729163,0,58368,159383552,0,65536,2097152,8388608,33554432,0,66048,0,77824,524288,33554432,1024,262144,2097152,16777216,67108864,0,131072,524288,134217728,2147483648,1,32768,196608,0,131328,131072,16777216,100663296,-1073741824,164096,0,131584,2621440,0,139264,0,150528,0,235712,16777216,1073774592,1226014816,100665360,-2046818288,100665360,100665360,-2044196848,1091799136,1091799136,1091803360,1091799136,1158908e3,1158908001,1192462432,1192462448,1192462448,1870638912,1870655296,1870638912,1200851056,1200851056,1091799393,1870655296,1870655296,1870655312,1870655316,1870655312,1870655312,1870638928,1870655316,1870655316,1870655317,1870655316,1879043952,1870655348,1870655316,1879027568,1879043952,1879043956,0,284672,229440,1048576,2097152,67108864,134217728,8,4194304,16777216,2147483648,1224736768,0,503616,2048,100663296,0,524288,2097152,4194304,4194304,0,40,0,44,-2046820352,0,605503,231488,1090519040,1157627904,1191182336,9437184,231744,52e4,7864320,1862270976,0,867391,1862270976,1862270976,16252928,0,1048576,4194304,25165824,25165824,33554432,8192,98304,1048576,8388608,134217728,268435456,4194432,3145728,0,24,0,29,0,32,1,2,2,4,0,2147483648,2147483648,0,0,1,0,2,0,3,240,19456,262144,0,4,8,0,6,0,7,150994944,0,1049088,1049088,12845065,12845065,147193865,128,6144,4194304,251658240,536870912,1073741824,32768,131072,1048576,4096,83886080,117440512,0,3145728,16777216,134217728,0,2048,8192,229376,0,2304,1536,8192,1536,65536,4194304,67108864,536870912,9216,33554432,262144,134217728,1073741824,50331649,9476,512,8192,134218240,1050624,0,5242880,1275208192,4194312,4194312,4194344,4194312,541065224,4203820,-869654016,-869654016,1279402504,1279402504,2143549415,2143549415,2143549423,0,8388608,4096,4194304,8388608,16777216,33554432,-1946157056,0,8192,131072,0,1792,0,1024,8192,65536,0,1536,2147483648,2143549423,2143549423,2143549415,1,16777216,268435456,512,139264,2760704,-872415232,0,19947520,0,33554432,67108864,1073741824,1073741824,262144,7340032,-2030043136,0,331776,300,4203520,4333568,1275068416,0,16777216,16777216,0,999,259072,4194304,4194432,999,29619200,2113929216,0,58720256,1007,1007,0,67108864,402653184,536870912,2048,1048576,16777216,536870912,300,0,83886080,0,2097152,134217728,536870912,0,49152,0,57344,102,384,6,96,128,3072,16384,65536,524288,1048576,0,4096,262144,524288,96,96,64,384,512,4096,65536,131072,1024,65536,262144,131072,32768,256,384,8192,33554432,2147483648,1,6,8,8388608,96,384,104,104,0,134217728,6,32,256,512,65536,7340032,50331648,0,8396800,4,32,384,4,64,1024,2097152,268435456,1073741824,8,262144,512,0,8,8,16,0,9,0,12,0,15,16,16,17,20,16,20,48,16,28,0,16,32,0,21,53,4,256,1024,524288,536870912,256,65536,16777216,1073741824,2048,524288,32,4100,1024,134217728,1049088,270532608,2097152,2097152,0,23,5505537,5587457,5591557,147202057,5587457,13894153,-1881791493,-1881791493,0,134218752,5587465,5587457,13894153,13894153,81003049,4456448,8388608,5505024,0,134348800,134348800,82432,0,142606336,5,86528,41,75497472,81920,0,184549376,2,56,64,2048,262144,536870912,2048,134217728,-2113929216,16777216,1073743872,268435968,229376,25165824,92274688,25165824,100663296,402653184,1610612736,0,100663296,134217728,805306368,1073741824,8388608,268567040,16384,229376,4194304,117440512,2113544,68423701,-2079059883,-2079059947,85200917,68423701,68423765,68489237,68423701,68423701,72618005,68423701,68425749,68423703,85200919,69488664,69488664,70537244,70537245,70537245,-2076946339,-2076946403,70537245,70537309,70539293,-2022351745,-2022351617,-2022351745,-2022351617,-2022351617,0,243269632,256,32768,1048576,33554432,134217728,-2113929216,0,268435456,49152,266240,1048576,67108864,-2080374784,-2080374784,268288,0,301989888,0,318767104,282624,0,536870912,28,3145728,192,351232,7340032,5,16,1049104,12,3145728,13,0,1073741825,192,3072,20480,0,1073741824,0,262144,2621440,-1073741824,20480,65536,268435456,14,32,512,131072,268435456,192,1024,64,32768,33554432,268435456,4,128,3840,16384,262144,128,2097152,1073741824,4,2097152,4,50331648,67108864,128,50331648,1073741824,128,268435968,268435968,268436032,256,1536,2048,16384,98304,393216,524288,268435456,536870912,9216,0,4194304,50331648,2147483648,256,536871168,-1879046336,-1879046334,-1879046326,-1879046334,1073744256,-1879046334,-1879046326,-1845491902,-1878784182,268444480,268436288,268436288,268436289,268444480,268444480,2100318149,2100318149,2100326341,0,1090519040,2100326341,2100326341,1,16,536936448,576,0,832,8192,1,4036,19939328,2080374784,0,1,1024,768,8192,16384,19922944,2080374784,1,128,4096,3584,16384,524288,8,33554432,402653184,2048,3145728,128,131072,268500992,4243456,4096,1048588,0,1258292224,1124073472,1124073472,1124073488,1124073474,1124073472,1392574464,1124073472,1073754113,12289,1124073472,12289,12289,1098920193,1132474625,1098920209,1132474625,1132474625,1124085761,1124085761,1124085777,1258304513,1124085761,1400975617,2132360255,2132622399,2132360255,2132622399,2132622399,2141011263,0,2140749119,2141011263,2,16384,3145728,12545,25165824,268435456,12305,13313,12561,0,78081,327155712,605247,1058013184,1073741824,867647,1066401792,0,1,12288,256,8388608,1,30,32,1024,2048,339968,327680,524288,1,14,16,14,1024,16384,4194304,134217728,1,12,1024,8,134217728,8,536870912,9437184,0,68157440,137363456,0,137363456,66,66,100680704,25165824,26214400,92274688,25165952,93323264,92274688,92274688,92274720,93323264,25165890,100721928,100721928,100787464,100721664,100721664,100853e3,100721928,125977600,125846528,125846528,125846560,125977600,125977600,127026176,281843,281843,1330419,281843,126895104,125846528,1330419,1330419,72633587,5524723,72633587,92556531,93605107,93605107,5524723,5524723,39079155,97799411,127290611,127290611,131484915,0,17408,33554432,1073741824,58624,0,124160,189696,148480,50331648,2,112],r.TOKEN=[\"(0)\",\"PragmaContents\",\"DirCommentContents\",\"DirPIContents\",\"CDataSection\",\"Wildcard\",\"EQName\",\"URILiteral\",\"IntegerLiteral\",\"DecimalLiteral\",\"DoubleLiteral\",\"StringLiteral\",\"PredefinedEntityRef\",\"'\\\"\\\"'\",\"EscapeApos\",\"ElementContentChar\",\"QuotAttrContentChar\",\"AposAttrContentChar\",\"PITarget\",\"NCName\",\"QName\",\"S\",\"S\",\"CharRef\",\"CommentContents\",\"EOF\",\"'!'\",\"'!='\",\"'\\\"'\",\"'#'\",\"'#)'\",\"'$'\",\"'%'\",\"''''\",\"'('\",\"'(#'\",\"'(:'\",\"')'\",\"'*'\",\"'*'\",\"'+'\",\"','\",\"'-'\",\"'-->'\",\"'.'\",\"'..'\",\"'/'\",\"'//'\",\"'/>'\",\"':'\",\"':)'\",\"'::'\",\"':='\",\"';'\",\"'<'\",\"'<!--'\",\"'</'\",\"'<<'\",\"'<='\",\"'<?'\",\"'='\",\"'>'\",\"'>='\",\"'>>'\",\"'?'\",\"'?>'\",\"'@'\",\"'NaN'\",\"'['\",\"']'\",\"'after'\",\"'all'\",\"'allowing'\",\"'ancestor'\",\"'ancestor-or-self'\",\"'and'\",\"'any'\",\"'append'\",\"'array'\",\"'as'\",\"'ascending'\",\"'at'\",\"'attribute'\",\"'base-uri'\",\"'before'\",\"'boundary-space'\",\"'break'\",\"'by'\",\"'case'\",\"'cast'\",\"'castable'\",\"'catch'\",\"'check'\",\"'child'\",\"'collation'\",\"'collection'\",\"'comment'\",\"'constraint'\",\"'construction'\",\"'contains'\",\"'content'\",\"'context'\",\"'continue'\",\"'copy'\",\"'copy-namespaces'\",\"'count'\",\"'decimal-format'\",\"'decimal-separator'\",\"'declare'\",\"'default'\",\"'delete'\",\"'descendant'\",\"'descendant-or-self'\",\"'descending'\",\"'diacritics'\",\"'different'\",\"'digit'\",\"'distance'\",\"'div'\",\"'document'\",\"'document-node'\",\"'element'\",\"'else'\",\"'empty'\",\"'empty-sequence'\",\"'encoding'\",\"'end'\",\"'entire'\",\"'eq'\",\"'every'\",\"'exactly'\",\"'except'\",\"'exit'\",\"'external'\",\"'first'\",\"'following'\",\"'following-sibling'\",\"'for'\",\"'foreach'\",\"'foreign'\",\"'from'\",\"'ft-option'\",\"'ftand'\",\"'ftnot'\",\"'ftor'\",\"'function'\",\"'ge'\",\"'greatest'\",\"'group'\",\"'grouping-separator'\",\"'gt'\",\"'idiv'\",\"'if'\",\"'import'\",\"'in'\",\"'index'\",\"'infinity'\",\"'inherit'\",\"'insensitive'\",\"'insert'\",\"'instance'\",\"'integrity'\",\"'intersect'\",\"'into'\",\"'is'\",\"'item'\",\"'json'\",\"'json-item'\",\"'key'\",\"'language'\",\"'last'\",\"'lax'\",\"'le'\",\"'least'\",\"'let'\",\"'levels'\",\"'loop'\",\"'lowercase'\",\"'lt'\",\"'minus-sign'\",\"'mod'\",\"'modify'\",\"'module'\",\"'most'\",\"'namespace'\",\"'namespace-node'\",\"'ne'\",\"'next'\",\"'no'\",\"'no-inherit'\",\"'no-preserve'\",\"'node'\",\"'nodes'\",\"'not'\",\"'object'\",\"'occurs'\",\"'of'\",\"'on'\",\"'only'\",\"'option'\",\"'or'\",\"'order'\",\"'ordered'\",\"'ordering'\",\"'paragraph'\",\"'paragraphs'\",\"'parent'\",\"'pattern-separator'\",\"'per-mille'\",\"'percent'\",\"'phrase'\",\"'position'\",\"'preceding'\",\"'preceding-sibling'\",\"'preserve'\",\"'previous'\",\"'processing-instruction'\",\"'relationship'\",\"'rename'\",\"'replace'\",\"'return'\",\"'returning'\",\"'revalidation'\",\"'same'\",\"'satisfies'\",\"'schema'\",\"'schema-attribute'\",\"'schema-element'\",\"'score'\",\"'self'\",\"'sensitive'\",\"'sentence'\",\"'sentences'\",\"'skip'\",\"'sliding'\",\"'some'\",\"'stable'\",\"'start'\",\"'stemming'\",\"'stop'\",\"'strict'\",\"'strip'\",\"'structured-item'\",\"'switch'\",\"'text'\",\"'then'\",\"'thesaurus'\",\"'times'\",\"'to'\",\"'treat'\",\"'try'\",\"'tumbling'\",\"'type'\",\"'typeswitch'\",\"'union'\",\"'unique'\",\"'unordered'\",\"'updating'\",\"'uppercase'\",\"'using'\",\"'validate'\",\"'value'\",\"'variable'\",\"'version'\",\"'weight'\",\"'when'\",\"'where'\",\"'while'\",\"'wildcards'\",\"'window'\",\"'with'\",\"'without'\",\"'word'\",\"'words'\",\"'xquery'\",\"'zero-digit'\",\"'{'\",\"'{{'\",\"'{|'\",\"'|'\",\"'||'\",\"'|}'\",\"'}'\",\"'}}'\"]},{}],11:[function(e,t,n){\"use strict\";n.TreeOps={flatten:function(e){var t=this,n=\"\";if(!e)throw new Error(\"Invalid node found\");return e.value===undefined?e.children.forEach(function(e){n+=t.flatten(e)}):n+=e.value,n},concat:function(e,t,n){var r=n?{}:e;n&&Object.keys(e).forEach(function(t){r[t]=e[t]});var i=Object.keys(t);return i.forEach(function(e){r[e]=t[e]}),r},removeParentPtr:function(e){e.getParent!==undefined&&delete e.getParent;for(var t in e.children){var n=e.children[t];this.removeParentPtr(n)}},inRange:function(e,t,n){if(e&&e.sl<=t.line&&t.line<=e.el){if(e.sl<t.line&&t.line<e.el)return!0;if(e.sl===t.line&&t.line<e.el)return e.sc<=t.col;if(e.sl===t.line&&e.el===t.line)return e.sc<=t.col&&t.col<=e.ec+(n?1:0);if(e.sl<t.line&&e.el===t.line)return t.col<=e.ec+(n?1:0)}},findNode:function(e,t){if(!e)return;var n=e.pos;if(this.inRange(n,t)===!0){for(var r in e.children){var i=e.children[r],s=this.findNode(i,t);if(s!==undefined)return s}return e}return},astAsXML:function(e,t){var n=\"\";t=t?t:\"\",e.value&&(n+=t+\"<\"+e.name+\">\"+e.value+\"</\"+e.name+\">\\n\"),n+=t+\"<\"+e.name+\">\\n\";var r=this;return e.children.forEach(function(e){n+=r.astAsXML(e,t+\"  \")}),n+=t+\"</\"+e.name+\">\\n\",n}}},{}],12:[function(e,t,n){\"use strict\";var r=e(\"./parsers/JSONiqParser\").JSONiqParser,i=e(\"./parsers/XQueryParser\").XQueryParser,s=e(\"./parsers/JSONParseTreeHandler\").JSONParseTreeHandler,o=e(\"./compiler/translator\").Translator,u=e(\"./formatter/style_checker\").StyleChecker,a=e(\"../lib/completion/completer\"),f=n.createStaticContext=function(){var t=e(\"./compiler/static_context\").StaticContext;return new t},l=function(e,t){return e?(Object.keys(t).forEach(function(n){e[n]===undefined&&(e[n]=t[n])}),e):t},c=function(e,t,n){var r=e.substring(0,t),i=e.substring(0,n),s=r.split(\"\\n\").length,o=t-r.lastIndexOf(\"\\n\"),u=i.split(\"\\n\").length,a=n-i.lastIndexOf(\"\\n\"),f={sl:s-1,sc:o-1,el:u-1,ec:a-1};return f};n.XQLint=function(e,t){t=t?t:{},t=l(t,{styleCheck:!1});var n;this.getAST=function(){return n};var h=[];this.getMarkers=function(){return h},this.getMarkers=function(e){var t=[];return h.forEach(function(n){(n.type===e||e===undefined)&&t.push(n)}),t},this.getErrors=function(){return this.getMarkers(\"error\")},this.getWarnings=function(){return this.getMarkers(\"warning\")},this.getCompletions=function(t){return a.complete(e,n,d,t)};var p=!1;this.hasSyntaxError=function(){return p};var d=t.staticContext?t.staticContext:f(),v=t.fileName?t.fileName:\"\",m=v.substring(v.length-\".jq\".length).indexOf(\".jq\")!==-1&&e.indexOf(\"xquery version\")!==0||e.indexOf(\"jsoniq version\")===0,g=new s(e),y=m?new r(e,g):new i(e,g);try{y.parse_XQuery()}catch(b){if(!(b instanceof y.ParseException))throw b;p=!0,g.closeParseTree();var w=c(e,b.getBegin(),b.getEnd()),E=y.getErrorMessage(b);w.sc===w.ec&&w.ec++,h.push({pos:w,type:\"error\",level:\"error\",message:E})}n=g.getParseTree(),t.styleCheck&&(h=h.concat((new u(n,e)).getMarkers()));var S=new o(d,n);h=h.concat(S.getMarkers())}},{\"../lib/completion/completer\":6,\"./compiler/static_context\":4,\"./compiler/translator\":5,\"./formatter/style_checker\":7,\"./parsers/JSONParseTreeHandler\":8,\"./parsers/JSONiqParser\":9,\"./parsers/XQueryParser\":10}]},{},[12])(12)}),ace.define(\"ace/mode/xquery_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/xquery/xqlint\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../worker/mirror\").Mirror,s=e(\"./xquery/xqlint\"),o=s.XQLint,u=function(e){return function(t){var n=e,r=n[t],i={},s={};return r.functions.forEach(function(e){s[t+\"#\"+e.name+\"#\"+e.arity]={params:[]},e.parameters.forEach(function(n){s[t+\"#\"+e.name+\"#\"+e.arity].params.push(\"$\"+n.name)})}),r.variables.forEach(function(e){var n=e.name.substring(e.name.indexOf(\":\")+1);i[t+\"#\"+n]={type:\"VarDecl\",annotations:[]}}),{variables:i,functions:s}}},a=t.XQueryWorker=function(e){i.call(this,e),this.setTimeout(200),this.opts={styleCheck:!1};var t=this;this.sender.on(\"complete\",function(e){if(t.xqlint){var n={line:e.data.pos.row,col:e.data.pos.column},r=t.xqlint.getCompletions(n);t.sender.emit(\"complete\",r)}}),this.sender.on(\"setAvailableModuleNamespaces\",function(e){t.availableModuleNamespaces=e.data}),this.sender.on(\"setModuleResolver\",function(e){t.moduleResolver=u(e.data)})};r.inherits(a,i),function(){this.onUpdate=function(){this.sender.emit(\"start\");var e=this.doc.getValue(),t=s.createStaticContext();this.moduleResolver&&t.setModuleResolver(this.moduleResolver),this.availableModuleNamespaces&&(t.availableModuleNamespaces=this.availableModuleNamespaces);var n={styleCheck:this.styleCheck,staticContext:t};this.xqlint=new o(e,n),this.sender.emit(\"markers\",this.xqlint.getMarkers())}}.call(a.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,\"sentinel\",{}),\"sentinel\"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t===\"undefined\"||t===\"boolean\"||t===\"number\"||t===\"string\"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n==\"function\"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r==\"function\"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!=\"function\")throw new TypeError(\"Function.prototype.bind called on incompatible \"+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,\"__defineGetter__\"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,\"XXX\"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)==\"[object Array]\"});var m=Object(\"a\"),g=m[0]!=\"a\"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduce of empty array with no initial value\");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError(\"reduce of empty array with no initial value\")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduceRight of empty array with no initial value\");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError(\"reduceRight of empty array with no initial value\")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!=\"object\")throw new TypeError(\"typeof prototype[\"+typeof t+\"] != 'object'\");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document==\"undefined\"||w(document.createElement(\"div\"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T=\"Property description must be an object: \",N=\"Object.defineProperty called on non-object: \",C=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(t,n,r){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(N+t);if(typeof r!=\"object\"&&typeof r!=\"function\"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,\"value\"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,\"get\")&&l(t,n,r.get),f(r,\"set\")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n==\"function\"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n=\"\";while(f(t,n))n+=\"?\";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!=\"object\"&&typeof e!=\"function\"||e===null)throw new TypeError(\"Object.keys called on a non-object\");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=\"\t\\n\u000b\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\";if(!String.prototype.trim||_.trim()){_=\"[\"+_+\"]\";var D=new RegExp(\"^\"+_+_+\"*\"),P=new RegExp(_+_+\"*$\");String.prototype.trim=function(){return String(this).replace(D,\"\").replace(P,\"\")}}var F=function(e){if(e==null)throw new TypeError(\"can't convert \"+e+\" to object\");return Object(e)}})"
  },
  {
    "path": "lib/src-min-noconflict-old/ace.js",
    "content": "(function(){function o(n){var i=e;n&&(e[n]||(e[n]={}),i=e[n]);if(!i.define||!i.define.packaged)t.original=i.define,i.define=t,i.define.packaged=!0;if(!i.require||!i.require.packaged)r.original=i.require,i.require=r,i.require.packaged=!0}var ACE_NAMESPACE = \"ace\",e=function(){return this}();!e&&typeof window!=\"undefined\"&&(e=window);if(!ACE_NAMESPACE&&typeof requirejs!=\"undefined\")return;var t=function(e,n,r){if(typeof e!=\"string\"){t.original?t.original.apply(this,arguments):(console.error(\"dropping module because define wasn't a string.\"),console.trace());return}arguments.length==2&&(r=n),t.modules[e]||(t.payloads[e]=r,t.modules[e]=null)};t.modules={},t.payloads={};var n=function(e,t,n){if(typeof t==\"string\"){var i=s(e,t);if(i!=undefined)return n&&n(),i}else if(Object.prototype.toString.call(t)===\"[object Array]\"){var o=[];for(var u=0,a=t.length;u<a;++u){var f=s(e,t[u]);if(f==undefined&&r.original)return;o.push(f)}return n&&n.apply(null,o)||!0}},r=function(e,t){var i=n(\"\",e,t);return i==undefined&&r.original?r.original.apply(this,arguments):i},i=function(e,t){if(t.indexOf(\"!\")!==-1){var n=t.split(\"!\");return i(e,n[0])+\"!\"+i(e,n[1])}if(t.charAt(0)==\".\"){var r=e.split(\"/\").slice(0,-1).join(\"/\");t=r+\"/\"+t;while(t.indexOf(\".\")!==-1&&s!=t){var s=t;t=t.replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return t},s=function(e,r){r=i(e,r);var s=t.modules[r];if(!s){s=t.payloads[r];if(typeof s==\"function\"){var o={},u={id:r,uri:\"\",exports:o,packaged:!0},a=function(e,t){return n(r,e,t)},f=s(a,o,u);o=f||u.exports,t.modules[r]=o,delete t.payloads[r]}s=t.modules[r]=o||s}return s};o(ACE_NAMESPACE)})(),ace.define(\"ace/lib/regexp\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function o(e){return(e.global?\"g\":\"\")+(e.ignoreCase?\"i\":\"\")+(e.multiline?\"m\":\"\")+(e.extended?\"x\":\"\")+(e.sticky?\"y\":\"\")}function u(e,t,n){if(Array.prototype.indexOf)return e.indexOf(t,n);for(var r=n||0;r<e.length;r++)if(e[r]===t)return r;return-1}var r={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},i=r.exec.call(/()??/,\"\")[1]===undefined,s=function(){var e=/^/g;return r.test.call(e,\"\"),!e.lastIndex}();if(s&&i)return;RegExp.prototype.exec=function(e){var t=r.exec.apply(this,arguments),n,a;if(typeof e==\"string\"&&t){!i&&t.length>1&&u(t,\"\")>-1&&(a=RegExp(this.source,r.replace.call(o(this),\"g\",\"\")),r.replace.call(e.slice(t.index),a,function(){for(var e=1;e<arguments.length-2;e++)arguments[e]===undefined&&(t[e]=undefined)}));if(this._xregexp&&this._xregexp.captureNames)for(var f=1;f<t.length;f++)n=this._xregexp.captureNames[f-1],n&&(t[n]=t[f]);!s&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--}return t},s||(RegExp.prototype.test=function(e){var t=r.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t})}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,\"sentinel\",{}),\"sentinel\"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t===\"undefined\"||t===\"boolean\"||t===\"number\"||t===\"string\"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n==\"function\"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r==\"function\"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!=\"function\")throw new TypeError(\"Function.prototype.bind called on incompatible \"+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,\"__defineGetter__\"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,\"XXX\"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)==\"[object Array]\"});var m=Object(\"a\"),g=m[0]!=\"a\"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduce of empty array with no initial value\");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError(\"reduce of empty array with no initial value\")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduceRight of empty array with no initial value\");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError(\"reduceRight of empty array with no initial value\")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!=\"object\")throw new TypeError(\"typeof prototype[\"+typeof t+\"] != 'object'\");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document==\"undefined\"||w(document.createElement(\"div\"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T=\"Property description must be an object: \",N=\"Object.defineProperty called on non-object: \",C=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(t,n,r){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(N+t);if(typeof r!=\"object\"&&typeof r!=\"function\"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,\"value\"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,\"get\")&&l(t,n,r.get),f(r,\"set\")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n==\"function\"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n=\"\";while(f(t,n))n+=\"?\";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!=\"object\"&&typeof e!=\"function\"||e===null)throw new TypeError(\"Object.keys called on a non-object\");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=\"\t\\n\u000b\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\";if(!String.prototype.trim||_.trim()){_=\"[\"+_+\"]\";var D=new RegExp(\"^\"+_+_+\"*\"),P=new RegExp(_+_+\"*$\");String.prototype.trim=function(){return String(this).replace(D,\"\").replace(P,\"\")}}var F=function(e){if(e==null)throw new TypeError(\"can't convert \"+e+\" to object\");return Object(e)}}),ace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/regexp\",\"ace/lib/es5-shim\"],function(e,t,n){\"use strict\";e(\"./regexp\"),e(\"./es5-shim\")}),ace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=\"http://www.w3.org/1999/xhtml\";t.getDocumentHead=function(e){return e||(e=document),e.head||e.getElementsByTagName(\"head\")[0]||e.documentElement},t.createElement=function(e,t){return document.createElementNS?document.createElementNS(t||r,e):document.createElement(e)},t.hasCssClass=function(e,t){var n=(e.className||\"\").split(/\\s+/g);return n.indexOf(t)!==-1},t.addCssClass=function(e,n){t.hasCssClass(e,n)||(e.className+=\" \"+n)},t.removeCssClass=function(e,t){var n=e.className.split(/\\s+/g);for(;;){var r=n.indexOf(t);if(r==-1)break;n.splice(r,1)}e.className=n.join(\" \")},t.toggleCssClass=function(e,t){var n=e.className.split(/\\s+/g),r=!0;for(;;){var i=n.indexOf(t);if(i==-1)break;r=!1,n.splice(i,1)}return r&&n.push(t),e.className=n.join(\" \"),r},t.setCssClass=function(e,n,r){r?t.addCssClass(e,n):t.removeCssClass(e,n)},t.hasCssString=function(e,t){var n=0,r;t=t||document;if(t.createStyleSheet&&(r=t.styleSheets)){while(n<r.length)if(r[n++].owningElement.id===e)return!0}else if(r=t.getElementsByTagName(\"style\"))while(n<r.length)if(r[n++].id===e)return!0;return!1},t.importCssString=function(n,r,i){i=i||document;if(r&&t.hasCssString(r,i))return null;var s;r&&(n+=\"\\n/*# sourceURL=ace/css/\"+r+\" */\"),i.createStyleSheet?(s=i.createStyleSheet(),s.cssText=n,r&&(s.owningElement.id=r)):(s=t.createElement(\"style\"),s.appendChild(i.createTextNode(n)),r&&(s.id=r),t.getDocumentHead(i).appendChild(s))},t.importCssStylsheet=function(e,n){if(n.createStyleSheet)n.createStyleSheet(e);else{var r=t.createElement(\"link\");r.rel=\"stylesheet\",r.href=e,t.getDocumentHead(n).appendChild(r)}},t.getInnerWidth=function(e){return parseInt(t.computedStyle(e,\"paddingLeft\"),10)+parseInt(t.computedStyle(e,\"paddingRight\"),10)+e.clientWidth},t.getInnerHeight=function(e){return parseInt(t.computedStyle(e,\"paddingTop\"),10)+parseInt(t.computedStyle(e,\"paddingBottom\"),10)+e.clientHeight},t.scrollbarWidth=function(e){var n=t.createElement(\"ace_inner\");n.style.width=\"100%\",n.style.minWidth=\"0px\",n.style.height=\"200px\",n.style.display=\"block\";var r=t.createElement(\"ace_outer\"),i=r.style;i.position=\"absolute\",i.left=\"-10000px\",i.overflow=\"hidden\",i.width=\"200px\",i.minWidth=\"0px\",i.height=\"150px\",i.display=\"block\",r.appendChild(n);var s=e.documentElement;s.appendChild(r);var o=n.offsetWidth;i.overflow=\"scroll\";var u=n.offsetWidth;return o==u&&(u=r.clientWidth),s.removeChild(r),o-u};if(typeof document==\"undefined\"){t.importCssString=function(){};return}window.pageYOffset!==undefined?(t.getPageScrollTop=function(){return window.pageYOffset},t.getPageScrollLeft=function(){return window.pageXOffset}):(t.getPageScrollTop=function(){return document.body.scrollTop},t.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?t.computedStyle=function(e,t){return t?(window.getComputedStyle(e,\"\")||{})[t]||\"\":window.getComputedStyle(e,\"\")||{}}:t.computedStyle=function(e,t){return t?e.currentStyle[t]:e.currentStyle},t.setInnerHtml=function(e,t){var n=e.cloneNode(!1);return n.innerHTML=t,e.parentNode.replaceChild(n,e),n},\"textContent\"in document.documentElement?(t.setInnerText=function(e,t){e.textContent=t},t.getInnerText=function(e){return e.textContent}):(t.setInnerText=function(e,t){e.innerText=t},t.getInnerText=function(e){return e.innerText}),t.getParentWindow=function(e){return e.defaultView||e.parentWindow}}),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\"],function(e,t,n){\"use strict\";e(\"./fixoldbrowsers\");var r=e(\"./oop\"),i=function(){var e={MODIFIER_KEYS:{16:\"Shift\",17:\"Ctrl\",18:\"Alt\",224:\"Meta\"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,\"super\":8,meta:8,command:8,cmd:8},FUNCTION_KEYS:{8:\"Backspace\",9:\"Tab\",13:\"Return\",19:\"Pause\",27:\"Esc\",32:\"Space\",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"Left\",38:\"Up\",39:\"Right\",40:\"Down\",44:\"Print\",45:\"Insert\",46:\"Delete\",96:\"Numpad0\",97:\"Numpad1\",98:\"Numpad2\",99:\"Numpad3\",100:\"Numpad4\",101:\"Numpad5\",102:\"Numpad6\",103:\"Numpad7\",104:\"Numpad8\",105:\"Numpad9\",\"-13\":\"NumpadEnter\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"Numlock\",145:\"Scrolllock\"},PRINTABLE_KEYS:{32:\" \",48:\"0\",49:\"1\",50:\"2\",51:\"3\",52:\"4\",53:\"5\",54:\"6\",55:\"7\",56:\"8\",57:\"9\",59:\";\",61:\"=\",65:\"a\",66:\"b\",67:\"c\",68:\"d\",69:\"e\",70:\"f\",71:\"g\",72:\"h\",73:\"i\",74:\"j\",75:\"k\",76:\"l\",77:\"m\",78:\"n\",79:\"o\",80:\"p\",81:\"q\",82:\"r\",83:\"s\",84:\"t\",85:\"u\",86:\"v\",87:\"w\",88:\"x\",89:\"y\",90:\"z\",107:\"+\",109:\"-\",110:\".\",186:\";\",187:\"=\",188:\",\",189:\"-\",190:\".\",191:\"/\",192:\"`\",219:\"[\",220:\"\\\\\",221:\"]\",222:\"'\",111:\"/\",106:\"*\"}},t,n;for(n in e.FUNCTION_KEYS)t=e.FUNCTION_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);for(n in e.PRINTABLE_KEYS)t=e.PRINTABLE_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);return r.mixin(e,e.MODIFIER_KEYS),r.mixin(e,e.PRINTABLE_KEYS),r.mixin(e,e.FUNCTION_KEYS),e.enter=e[\"return\"],e.escape=e.esc,e.del=e[\"delete\"],e[173]=\"-\",function(){var t=[\"cmd\",\"ctrl\",\"alt\",\"shift\"];for(var n=Math.pow(2,t.length);n--;)e.KEY_MODS[n]=t.filter(function(t){return n&e.KEY_MODS[t]}).join(\"-\")+\"-\"}(),e.KEY_MODS[0]=\"\",e.KEY_MODS[-1]=\"input-\",e}();r.mixin(t,i),t.keyCodeToString=function(e){var t=i[e];return typeof t!=\"string\"&&(t=String.fromCharCode(e)),t.toLowerCase()}}),ace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.OS={LINUX:\"LINUX\",MAC:\"MAC\",WINDOWS:\"WINDOWS\"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};if(typeof navigator!=\"object\")return;var r=(navigator.platform.match(/mac|win|linux/i)||[\"other\"])[0].toLowerCase(),i=navigator.userAgent;t.isWin=r==\"win\",t.isMac=r==\"mac\",t.isLinux=r==\"linux\",t.isIE=navigator.appName==\"Microsoft Internet Explorer\"||navigator.appName.indexOf(\"MSAppHost\")>=0?parseFloat((i.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1]):parseFloat((i.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&window.navigator.product===\"Gecko\",t.isOldGecko=t.isGecko&&parseInt((i.match(/rv\\:(\\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&Object.prototype.toString.call(window.opera)==\"[object Opera]\",t.isWebKit=parseFloat(i.split(\"WebKit/\")[1])||undefined,t.isChrome=parseFloat(i.split(\" Chrome/\")[1])||undefined,t.isAIR=i.indexOf(\"AdobeAIR\")>=0,t.isIPad=i.indexOf(\"iPad\")>=0,t.isTouchPad=i.indexOf(\"TouchPad\")>=0,t.isChromeOS=i.indexOf(\" CrOS \")>=0}),ace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"],function(e,t,n){\"use strict\";function a(e,t,n){var a=u(t);if(!i.isMac&&s){s.OSKey&&(a|=8);if(s.altGr){if((3&a)==3)return;s.altGr=0}if(n===18||n===17){var f=\"location\"in t?t.location:t.keyLocation;if(n===17&&f===1)s[n]==1&&(o=t.timeStamp);else if(n===18&&a===3&&f===2){var l=t.timeStamp-o;l<50&&(s.altGr=!0)}}}n in r.MODIFIER_KEYS&&(n=-1),a&8&&n>=91&&n<=93&&(n=-1);if(!a&&n===13){var f=\"location\"in t?t.location:t.keyLocation;if(f===3){e(t,a,-n);if(t.defaultPrevented)return}}if(i.isChromeOS&&a&8){e(t,a,n);if(t.defaultPrevented)return;a&=-9}return!!a||n in r.FUNCTION_KEYS||n in r.PRINTABLE_KEYS?e(t,a,n):!1}function f(){s=Object.create(null),s.count=0,s.lastT=0}var r=e(\"./keys\"),i=e(\"./useragent\"),s=null,o=0;t.addListener=function(e,t,n){if(e.addEventListener)return e.addEventListener(t,n,!1);if(e.attachEvent){var r=function(){n.call(e,window.event)};n._wrapper=r,e.attachEvent(\"on\"+t,r)}},t.removeListener=function(e,t,n){if(e.removeEventListener)return e.removeEventListener(t,n,!1);e.detachEvent&&e.detachEvent(\"on\"+t,n._wrapper||n)},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return e.type==\"dblclick\"?0:e.type==\"contextmenu\"||i.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,n,r){function i(e){n&&n(e),r&&r(e),t.removeListener(document,\"mousemove\",n,!0),t.removeListener(document,\"mouseup\",i,!0),t.removeListener(document,\"dragstart\",i,!0)}return t.addListener(document,\"mousemove\",n,!0),t.addListener(document,\"mouseup\",i,!0),t.addListener(document,\"dragstart\",i,!0),i},t.addTouchMoveListener=function(e,n){if(\"ontouchmove\"in e){var r,i;t.addListener(e,\"touchstart\",function(e){var t=e.changedTouches[0];r=t.clientX,i=t.clientY}),t.addListener(e,\"touchmove\",function(e){var t=1,s=e.changedTouches[0];e.wheelX=-(s.clientX-r)/t,e.wheelY=-(s.clientY-i)/t,r=s.clientX,i=s.clientY,n(e)})}},t.addMouseWheelListener=function(e,n){\"onmousewheel\"in e?t.addListener(e,\"mousewheel\",function(e){var t=8;e.wheelDeltaX!==undefined?(e.wheelX=-e.wheelDeltaX/t,e.wheelY=-e.wheelDeltaY/t):(e.wheelX=0,e.wheelY=-e.wheelDelta/t),n(e)}):\"onwheel\"in e?t.addListener(e,\"wheel\",function(e){var t=.35;switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=e.deltaX*t||0,e.wheelY=e.deltaY*t||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=(e.deltaX||0)*5,e.wheelY=(e.deltaY||0)*5}n(e)}):t.addListener(e,\"DOMMouseScroll\",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=(e.detail||0)*5,e.wheelY=0):(e.wheelX=0,e.wheelY=(e.detail||0)*5),n(e)})},t.addMultiMouseDownListener=function(e,n,r,s){function c(e){t.getButton(e)!==0?o=0:e.detail>1?(o++,o>4&&(o=1)):o=1;if(i.isIE){var c=Math.abs(e.clientX-u)>5||Math.abs(e.clientY-a)>5;if(!f||c)o=1;f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),o==1&&(u=e.clientX,a=e.clientY)}e._clicks=o,r[s](\"mousedown\",e);if(o>4)o=0;else if(o>1)return r[s](l[o],e)}function h(e){o=2,f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),r[s](\"mousedown\",e),r[s](l[o],e)}var o=0,u,a,f,l={2:\"dblclick\",3:\"tripleclick\",4:\"quadclick\"};Array.isArray(e)||(e=[e]),e.forEach(function(e){t.addListener(e,\"mousedown\",c),i.isOldIE&&t.addListener(e,\"dblclick\",h)})};var u=!i.isMac||!i.isOpera||\"KeyboardEvent\"in window?function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}:function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)};t.getModifierString=function(e){return r.KEY_MODS[u(e)]},t.addCommandKeyListener=function(e,n){var r=t.addListener;if(i.isOldGecko||i.isOpera&&!(\"KeyboardEvent\"in window)){var o=null;r(e,\"keydown\",function(e){o=e.keyCode}),r(e,\"keypress\",function(e){return a(n,e,o)})}else{var u=null;r(e,\"keydown\",function(e){var t=e.keyCode;s[t]=(s[t]||0)+1,t==91||t==92?s.OSKey=!0:s.OSKey&&e.timeStamp-s.lastT>200&&s.count==1&&f(),s[t]==1&&s.count++,s.lastT=e.timeStamp;var r=a(n,e,t);return u=e.defaultPrevented,r}),r(e,\"keypress\",function(e){u&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),u=null)}),r(e,\"keyup\",function(e){var t=e.keyCode;s[t]?s.count=Math.max(s.count-1,0):f();if(t==91||t==92)s.OSKey=!1;s[t]=null}),s||(f(),r(window,\"focus\",f))}};if(typeof window==\"object\"&&window.postMessage&&!i.isOldIE){var l=1;t.nextTick=function(e,n){n=n||window;var r=\"zero-timeout-message-\"+l;t.addListener(n,\"message\",function i(s){s.data==r&&(t.stopPropagation(s),t.removeListener(n,\"message\",i),e())}),n.postMessage(r,\"*\")}}t.nextFrame=typeof window==\"object\"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split(\"\").reverse().join(\"\")},t.stringRepeat=function(e,t){var n=\"\";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\\s\\s*/,i=/\\s\\s*$/;t.stringTrimLeft=function(e){return e.replace(r,\"\")},t.stringTrimRight=function(e){return e.replace(i,\"\")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]==\"object\"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!=\"object\"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}var r=e.constructor;if(r===RegExp)return e;t=r();for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},t.escapeHTML=function(e){return e.replace(/&/g,\"&#38;\").replace(/\"/g,\"&#34;\").replace(/'/g,\"&#39;\").replace(/</g,\"&#60;\")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../lib/event\"),i=e(\"../lib/useragent\"),s=e(\"../lib/dom\"),o=e(\"../lib/lang\"),u=i.isChrome<18,a=i.isIE,f=function(e,t){function b(e){if(h)return;h=!0;if(k)t=0,r=e?0:n.value.length-1;else var t=e?2:1,r=2;try{n.setSelectionRange(t,r)}catch(i){}h=!1}function w(){if(h)return;n.value=f,i.isWebKit&&y.schedule()}function R(){clearTimeout(q),q=setTimeout(function(){p&&(n.style.cssText=p,p=\"\"),t.renderer.$keepTextAreaAtCursor==null&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())},i.isOldIE?200:0)}var n=s.createElement(\"textarea\");n.className=\"ace_text-input\",i.isTouchPad&&n.setAttribute(\"x-palm-disable-auto-cap\",!0),n.setAttribute(\"wrap\",\"off\"),n.setAttribute(\"autocorrect\",\"off\"),n.setAttribute(\"autocapitalize\",\"off\"),n.setAttribute(\"spellcheck\",!1),n.style.opacity=\"0\",i.isOldIE&&(n.style.top=\"-1000px\"),e.insertBefore(n,e.firstChild);var f=\"\u0001\u0001\",l=!1,c=!1,h=!1,p=\"\",d=!0;try{var v=document.activeElement===n}catch(m){}r.addListener(n,\"blur\",function(e){t.onBlur(e),v=!1}),r.addListener(n,\"focus\",function(e){v=!0,t.onFocus(e),b()}),this.focus=function(){if(p)return n.focus();var e=n.style.top;n.style.position=\"fixed\",n.style.top=\"0px\",n.focus(),setTimeout(function(){n.style.position=\"\",n.style.top==\"0px\"&&(n.style.top=e)},0)},this.blur=function(){n.blur()},this.isFocused=function(){return v};var g=o.delayedCall(function(){v&&b(d)}),y=o.delayedCall(function(){h||(n.value=f,v&&b())});i.isWebKit||t.addEventListener(\"changeSelection\",function(){t.selection.isEmpty()!=d&&(d=!d,g.schedule())}),w(),v&&t.onFocus();var E=function(e){return e.selectionStart===0&&e.selectionEnd===e.value.length};!n.setSelectionRange&&n.createTextRange&&(n.setSelectionRange=function(e,t){var n=this.createTextRange();n.collapse(!0),n.moveStart(\"character\",e),n.moveEnd(\"character\",t),n.select()},E=function(e){try{var t=e.ownerDocument.selection.createRange()}catch(n){}return!t||t.parentElement()!=e?!1:t.text==e.value});if(i.isOldIE){var S=!1,x=function(e){if(S)return;var t=n.value;if(h||!t||t==f)return;if(e&&t==f[0])return T.schedule();A(t),S=!0,w(),S=!1},T=o.delayedCall(x);r.addListener(n,\"propertychange\",x);var N={13:1,27:1};r.addListener(n,\"keyup\",function(e){h&&(!n.value||N[e.keyCode])&&setTimeout(F,0);if((n.value.charCodeAt(0)||0)<129)return T.call();h?j():B()}),r.addListener(n,\"keydown\",function(e){T.schedule(50)})}var C=function(e){l?l=!1:E(n)?(t.selectAll(),b()):k&&b(t.selection.isEmpty())},k=null;this.setInputHandler=function(e){k=e},this.getInputHandler=function(){return k};var L=!1,A=function(e){k&&(e=k(e),k=null),c?(b(),e&&t.onPaste(e),c=!1):e==f.charAt(0)?L?t.execCommand(\"del\",{source:\"ace\"}):t.execCommand(\"backspace\",{source:\"ace\"}):(e.substring(0,2)==f?e=e.substr(2):e.charAt(0)==f.charAt(0)?e=e.substr(1):e.charAt(e.length-1)==f.charAt(0)&&(e=e.slice(0,-1)),e.charAt(e.length-1)==f.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),L&&(L=!1)},O=function(e){if(h)return;var t=n.value;A(t),w()},M=function(e,t){var n=e.clipboardData||window.clipboardData;if(!n||u)return;var r=a?\"Text\":\"text/plain\";return t?n.setData(r,t)!==!1:n.getData(r)},_=function(e,i){var s=t.getCopyText();if(!s)return r.preventDefault(e);M(e,s)?(i?t.onCut():t.onCopy(),r.preventDefault(e)):(l=!0,n.value=s,n.select(),setTimeout(function(){l=!1,w(),b(),i?t.onCut():t.onCopy()}))},D=function(e){_(e,!0)},P=function(e){_(e,!1)},H=function(e){var s=M(e);typeof s==\"string\"?(s&&t.onPaste(s,e),i.isIE&&setTimeout(b),r.preventDefault(e)):(n.value=\"\",c=!0)};r.addCommandKeyListener(n,t.onCommandKey.bind(t)),r.addListener(n,\"select\",C),r.addListener(n,\"input\",O),r.addListener(n,\"cut\",D),r.addListener(n,\"copy\",P),r.addListener(n,\"paste\",H),(!(\"oncut\"in n)||!(\"oncopy\"in n)||!(\"onpaste\"in n))&&r.addListener(e,\"keydown\",function(e){if(i.isMac&&!e.metaKey||!e.ctrlKey)return;switch(e.keyCode){case 67:P(e);break;case 86:H(e);break;case 88:D(e)}});var B=function(e){if(h||!t.onCompositionStart||t.$readOnly)return;h={},t.onCompositionStart(),setTimeout(j,0),t.on(\"mousedown\",F),t.selection.isEmpty()||(t.insert(\"\"),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup()},j=function(){if(!h||!t.onCompositionUpdate||t.$readOnly)return;var e=n.value.replace(/\\x01/g,\"\");if(h.lastValue===e)return;t.onCompositionUpdate(e),h.lastValue&&t.undo(),h.lastValue=e;if(h.lastValue){var r=t.selection.getRange();t.insert(h.lastValue),t.session.markUndoGroup(),h.range=t.selection.getRange(),t.selection.setRange(r),t.selection.clearSelection()}},F=function(e){if(!t.onCompositionEnd||t.$readOnly)return;var r=h;h=!1;var i=setTimeout(function(){i=null;var e=n.value.replace(/\\x01/g,\"\");if(h)return;e==r.lastValue?w():!r.lastValue&&e&&(w(),A(e))});k=function(n){return i&&clearTimeout(i),n=n.replace(/\\x01/g,\"\"),n==r.lastValue?\"\":(r.lastValue&&i&&t.undo(),n)},t.onCompositionEnd(),t.removeListener(\"mousedown\",F),e.type==\"compositionend\"&&r.range&&t.selection.setRange(r.range)},I=o.delayedCall(j,50);r.addListener(n,\"compositionstart\",B),i.isGecko?r.addListener(n,\"text\",function(){I.schedule()}):(r.addListener(n,\"keyup\",function(){I.schedule()}),r.addListener(n,\"keydown\",function(){I.schedule()})),r.addListener(n,\"compositionend\",F),this.getElement=function(){return n},this.setReadOnly=function(e){n.readOnly=e},this.onContextMenu=function(e){L=!0,b(t.selection.isEmpty()),t._emit(\"nativecontextmenu\",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,o){if(!o&&i.isOldIE)return;p||(p=n.style.cssText),n.style.cssText=(o?\"z-index:100000;\":\"\")+\"height:\"+n.style.height+\";\"+(i.isIE?\"opacity:0.1;\":\"\");var u=t.container.getBoundingClientRect(),a=s.computedStyle(t.container),f=u.top+(parseInt(a.borderTopWidth)||0),l=u.left+(parseInt(u.borderLeftWidth)||0),c=u.bottom-f-n.clientHeight-2,h=function(e){n.style.left=e.clientX-l-2+\"px\",n.style.top=Math.min(e.clientY-f-2,c)+\"px\"};h(e);if(e.type!=\"mousedown\")return;t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(q),i.isWin&&!i.isOldIE&&r.capture(t.container,h,R)},this.onContextMenuClose=R;var q,U=function(e){t.textInput.onContextMenu(e),R()};r.addListener(n,\"mouseup\",U),r.addListener(n,\"mousedown\",function(e){e.preventDefault(),R()}),r.addListener(t.renderer.scroller,\"contextmenu\",U),r.addListener(n,\"contextmenu\",U)};t.TextInput=f}),ace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"],function(e,t,n){\"use strict\";function u(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler(\"mousedown\",this.onMouseDown.bind(e)),t.setDefaultHandler(\"dblclick\",this.onDoubleClick.bind(e)),t.setDefaultHandler(\"tripleclick\",this.onTripleClick.bind(e)),t.setDefaultHandler(\"quadclick\",this.onQuadClick.bind(e)),t.setDefaultHandler(\"mousewheel\",this.onMouseWheel.bind(e)),t.setDefaultHandler(\"touchmove\",this.onTouchMove.bind(e));var n=[\"select\",\"startSelect\",\"selectEnd\",\"selectAllEnd\",\"selectByWordsEnd\",\"selectByLinesEnd\",\"dragWait\",\"dragWaitEnd\",\"focusWait\"];n.forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,\"getLineRange\"),e.selectByWords=this.extendSelectionBy.bind(e,\"getWordRange\")}function a(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}function f(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row==e.end.row-1&&!e.start.column&&!e.end.column)var n=t.column-4;else var n=2*t.row-e.start.row-e.end.row;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var r=e(\"../lib/dom\"),i=e(\"../lib/event\"),s=e(\"../lib/useragent\"),o=0;(function(){this.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var r=this.editor,i=e.getButton();if(i!==0){var s=r.getSelectionRange(),o=s.isEmpty();r.$blockScrolling++,(o||i==1)&&r.selection.moveToPosition(n),r.$blockScrolling--,i==2&&r.textInput.onContextMenu(e.domEvent);return}this.mousedownEvent.time=Date.now();if(t&&!r.isFocused()){r.focus();if(this.$focusTimout&&!this.$clickSelection&&!r.inMultiSelectMode){this.setState(\"focusWait\"),this.captureMouse(e);return}}return this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;n.$blockScrolling++,this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.renderer.scroller.setCapture&&n.renderer.scroller.setCapture(),n.setStyle(\"ace_selecting\"),this.setState(\"select\"),n.$blockScrolling--},this.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);t.$blockScrolling++;if(this.$clickSelection){var r=this.$clickSelection.comparePoint(n);if(r==-1)e=this.$clickSelection.end;else if(r==1)e=this.$clickSelection.start;else{var i=f(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.$blockScrolling--,t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,n=this.editor,r=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](r.row,r.column);n.$blockScrolling++;if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),o=this.$clickSelection.comparePoint(i.end);if(s==-1&&o<=0){t=this.$clickSelection.end;if(i.end.row!=r.row||i.end.column!=r.column)r=i.start}else if(o==1&&s>=0){t=this.$clickSelection.start;if(i.start.row!=r.row||i.start.column!=r.column)r=i.end}else if(s==-1&&o==1)r=i.end,t=i.start;else{var u=f(this.$clickSelection,r);r=u.cursor,t=u.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(r),n.$blockScrolling--,n.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle(\"ace_selecting\"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>o||t-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,r=n.session,i=r.getBracketRange(t);i?(i.isEmpty()&&(i.start.column--,i.end.column++),this.setState(\"select\")):(i=n.selection.getWordRange(t.row,t.column),this.setState(\"selectByWords\")),this.$clickSelection=i,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState(\"selectByLines\");var r=n.getSelectionRange();r.isMultiLine()&&r.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(r.start.row),this.$clickSelection.end=n.selection.getLineRange(r.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState(\"selectAll\")},this.onMouseWheel=function(e){if(e.getAccelKey())return;e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=e.domEvent.timeStamp,n=t-(this.$lastScrollTime||0),r=this.editor,i=r.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed);if(i||n<200)return this.$lastScrollTime=t,r.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()},this.onTouchMove=function(e){var t=e.domEvent.timeStamp,n=t-(this.$lastScrollTime||0),r=this.editor,i=r.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed);if(i||n<200)return this.$lastScrollTime=t,r.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()}}).call(u.prototype),t.DefaultHandlers=u}),ace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";function s(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var r=e(\"./lib/oop\"),i=e(\"./lib/dom\");(function(){this.$init=function(){return this.$element=i.createElement(\"div\"),this.$element.className=\"ace_tooltip\",this.$element.style.display=\"none\",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){i.setInnerText(this.getElement(),e)},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+\"px\",this.getElement().style.top=t+\"px\"},this.setClassName=function(e){i.addCssClass(this.getElement(),e)},this.show=function(e,t,n){e!=null&&this.setText(e),t!=null&&n!=null&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display=\"block\",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display=\"none\",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth}}).call(s.prototype),t.Tooltip=s}),ace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event\",\"ace/tooltip\"],function(e,t,n){\"use strict\";function u(e){function l(){var r=u.getDocumentPosition().row,s=n.$annotations[r];if(!s)return c();var o=t.session.getLength();if(r==o){var a=t.renderer.pixelToScreenCoordinates(0,u.y).row,l=u.$pos;if(a>t.session.documentToScreenRow(l.row,l.column))return c()}if(f==s)return;f=s.text.join(\"<br/>\"),i.setHtml(f),i.show(),t.on(\"mousewheel\",c);if(e.$tooltipFollowsMouse)h(u);else{var p=u.domEvent.target,d=p.getBoundingClientRect(),v=i.getElement().style;v.left=d.right+\"px\",v.top=d.bottom+\"px\"}}function c(){o&&(o=clearTimeout(o)),f&&(i.hide(),f=null,t.removeEventListener(\"mousewheel\",c))}function h(e){i.setPosition(e.x,e.y)}var t=e.editor,n=t.renderer.$gutterLayer,i=new a(t.container);e.editor.setDefaultHandler(\"guttermousedown\",function(r){if(!t.isFocused()||r.getButton()!=0)return;var i=n.getRegion(r);if(i==\"foldWidgets\")return;var s=r.getDocumentPosition().row,o=t.session.selection;if(r.getShiftKey())o.selectTo(s,0);else{if(r.domEvent.detail==2)return t.selectAll(),r.preventDefault();e.$clickSelection=t.selection.getLineRange(s)}return e.setState(\"selectByLines\"),e.captureMouse(r),r.preventDefault()});var o,u,f;e.editor.setDefaultHandler(\"guttermousemove\",function(t){var n=t.domEvent.target||t.domEvent.srcElement;if(r.hasCssClass(n,\"ace_fold-widget\"))return c();f&&e.$tooltipFollowsMouse&&h(t),u=t;if(o)return;o=setTimeout(function(){o=null,u&&!e.isMousePressed?l():c()},50)}),s.addListener(t.renderer.$gutter,\"mouseout\",function(e){u=null;if(!f||o)return;o=setTimeout(function(){o=null,c()},50)}),t.on(\"changeSession\",c)}function a(e){o.call(this,e)}var r=e(\"../lib/dom\"),i=e(\"../lib/oop\"),s=e(\"../lib/event\"),o=e(\"../tooltip\").Tooltip;i.inherits(a,o),function(){this.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),s=this.getHeight();e+=15,t+=15,e+i>n&&(e-=e+i-n),t+s>r&&(t-=20+s),o.prototype.setPosition.call(this,e,t)}}.call(a.prototype),t.GutterHandler=u}),ace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/event\"),i=e(\"../lib/useragent\"),s=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){r.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){r.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(this.$inSelection!==null)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var n=this.getDocumentPosition();this.$inSelection=t.contains(n.row,n.column)}return this.$inSelection},this.getButton=function(){return r.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=i.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(s.prototype)}),ace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"],function(e,t,n){\"use strict\";function f(e){function T(e,n){var r=Date.now(),i=!n||e.row!=n.row,s=!n||e.column!=n.column;if(!S||i||s)t.$blockScrolling+=1,t.moveCursorToPosition(e),t.$blockScrolling-=1,S=r,x={x:p,y:d};else{var o=l(x.x,x.y,p,d);o>a?S=null:r-S>=u&&(t.renderer.scrollCursorIntoView(),S=null)}}function N(e,n){var r=Date.now(),i=t.renderer.layerConfig.lineHeight,s=t.renderer.layerConfig.characterWidth,u=t.renderer.scroller.getBoundingClientRect(),a={x:{left:p-u.left,right:u.right-p},y:{top:d-u.top,bottom:u.bottom-d}},f=Math.min(a.x.left,a.x.right),l=Math.min(a.y.top,a.y.bottom),c={row:e.row,column:e.column};f/s<=2&&(c.column+=a.x.left<a.x.right?-3:2),l/i<=1&&(c.row+=a.y.top<a.y.bottom?-1:1);var h=e.row!=c.row,v=e.column!=c.column,m=!n||e.row!=n.row;h||v&&!m?E?r-E>=o&&t.renderer.scrollCursorIntoView(c):E=r:E=null}function C(){var e=g;g=t.renderer.screenToTextCoordinates(p,d),T(g,e),N(g,e)}function k(){m=t.selection.toOrientedRange(),h=t.session.addMarker(m,\"ace_selection\",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(v),C(),v=setInterval(C,20),y=0,i.addListener(document,\"mousemove\",O)}function L(){clearInterval(v),t.session.removeMarker(h),h=null,t.$blockScrolling+=1,t.selection.fromOrientedRange(m),t.$blockScrolling-=1,t.isFocused()&&!w&&t.renderer.$cursorLayer.setBlinking(!t.getReadOnly()),m=null,g=null,y=0,E=null,S=null,i.removeListener(document,\"mousemove\",O)}function O(){A==null&&(A=setTimeout(function(){A!=null&&h&&L()},20))}function M(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return e==\"text/plain\"||e==\"Text\"})}function _(e){var t=[\"copy\",\"copymove\",\"all\",\"uninitialized\"],n=[\"move\",\"copymove\",\"linkmove\",\"all\",\"uninitialized\"],r=s.isMac?e.altKey:e.ctrlKey,i=\"uninitialized\";try{i=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o=\"none\";return r&&t.indexOf(i)>=0?o=\"copy\":n.indexOf(i)>=0?o=\"move\":t.indexOf(i)>=0&&(o=\"copy\"),o}var t=e.editor,n=r.createElement(\"img\");n.src=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\",s.isOpera&&(n.style.cssText=\"width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;\");var f=[\"dragWait\",\"dragWaitEnd\",\"startDrag\",\"dragReadyEnd\",\"onMouseDrag\"];f.forEach(function(t){e[t]=this[t]},this),t.addEventListener(\"mousedown\",this.onMouseDown.bind(e));var c=t.container,h,p,d,v,m,g,y=0,b,w,E,S,x;this.onDragStart=function(e){if(this.cancelDrag||!c.draggable){var r=this;return setTimeout(function(){r.startSelect(),r.captureMouse(e)},0),e.preventDefault()}m=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?\"copy\":\"copyMove\",s.isOpera&&(t.container.appendChild(n),n.scrollTop=0),i.setDragImage&&i.setDragImage(n,0,0),s.isOpera&&t.container.removeChild(n),i.clearData(),i.setData(\"Text\",t.session.getTextRange()),w=!0,this.setState(\"drag\")},this.onDragEnd=function(e){c.draggable=!1,w=!1,this.setState(null);if(!t.getReadOnly()){var n=e.dataTransfer.dropEffect;!b&&n==\"move\"&&t.session.remove(t.getSelectionRange()),t.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle(\"ace_dragging\"),this.editor.renderer.setCursorStyle(\"\")},this.onDragEnter=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||k(),y++,e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragOver=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||(k(),y++),A!==null&&(A=null),e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragLeave=function(e){y--;if(y<=0&&h)return L(),b=null,i.preventDefault(e)},this.onDrop=function(e){if(!g)return;var n=e.dataTransfer;if(w)switch(b){case\"move\":m.contains(g.row,g.column)?m={start:g,end:g}:m=t.moveText(m,g);break;case\"copy\":m=t.moveText(m,g,!0)}else{var r=n.getData(\"Text\");m={start:g,end:t.session.insert(g,r)},t.focus(),b=null}return L(),i.preventDefault(e)},i.addListener(c,\"dragstart\",this.onDragStart.bind(e)),i.addListener(c,\"dragend\",this.onDragEnd.bind(e)),i.addListener(c,\"dragenter\",this.onDragEnter.bind(e)),i.addListener(c,\"dragover\",this.onDragOver.bind(e)),i.addListener(c,\"dragleave\",this.onDragLeave.bind(e)),i.addListener(c,\"drop\",this.onDrop.bind(e));var A=null}function l(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}var r=e(\"../lib/dom\"),i=e(\"../lib/event\"),s=e(\"../lib/useragent\"),o=200,u=200,a=5;(function(){this.dragWait=function(){var e=Date.now()-this.mousedownEvent.time;e>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle(\"ace_dragging\"),this.editor.renderer.setCursorStyle(\"\"),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor,t=e.container;t.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle(\"ace_dragging\");var n=s.isWin?\"default\":\"move\";e.renderer.setCursorStyle(n),this.setState(\"dragReady\")},this.onMouseDrag=function(e){var t=this.editor.container;if(s.isIE&&this.state==\"dragReady\"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>3&&t.dragDrop()}if(this.state===\"dragWait\"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(!this.$dragEnabled)return;this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),r=e.getButton(),i=e.domEvent.detail||1;if(i===1&&r===0&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var o=e.domEvent.target||e.domEvent.srcElement;\"unselectable\"in o&&(o.unselectable=\"on\");if(t.getDragDelay()){if(s.isWebKit){this.cancelDrag=!0;var u=t.container;u.draggable=!0}this.setState(\"dragWait\")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}).call(f.prototype),t.DragdropHandler=f}),ace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";var r=e(\"./dom\");t.get=function(e,t){var n=new XMLHttpRequest;n.open(\"GET\",e,!0),n.onreadystatechange=function(){n.readyState===4&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=r.getDocumentHead(),i=document.createElement(\"script\");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){if(n||!i.readyState||i.readyState==\"loaded\"||i.readyState==\"complete\")i=i.onload=i.onreadystatechange=null,n||t()}},t.qualifyURL=function(e){var t=document.createElement(\"a\");return t.href=e,t.href}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!=\"object\"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?\"unshift\":\"push\"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define(\"ace/lib/app_config\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"no use strict\";function o(e){typeof console!=\"undefined\"&&console.warn&&console.warn.apply(console,arguments)}function u(e,t){var n=new Error(e);n.data=t,typeof console==\"object\"&&console.error&&console.error(n),setTimeout(function(){throw n})}var r=e(\"./oop\"),i=e(\"./event_emitter\").EventEmitter,s={setOptions:function(e){Object.keys(e).forEach(function(t){this.setOption(t,e[t])},this)},getOptions:function(e){var t={};return e?Array.isArray(e)||(t=e,e=Object.keys(t)):e=Object.keys(this.$options),e.forEach(function(e){t[e]=this.getOption(e)},this),t},setOption:function(e,t){if(this[\"$\"+e]===t)return;var n=this.$options[e];if(!n)return o('misspelled option \"'+e+'\"');if(n.forwardTo)return this[n.forwardTo]&&this[n.forwardTo].setOption(e,t);n.handlesSet||(this[\"$\"+e]=t),n&&n.set&&n.set.call(this,t)},getOption:function(e){var t=this.$options[e];return t?t.forwardTo?this[t.forwardTo]&&this[t.forwardTo].getOption(e):t&&t.get?t.get.call(this):this[\"$\"+e]:o('misspelled option \"'+e+'\"')}},a=function(){this.$defaultOptions={}};(function(){r.implement(this,i),this.defineOptions=function(e,t,n){return e.$options||(this.$defaultOptions[t]=e.$options={}),Object.keys(n).forEach(function(t){var r=n[t];typeof r==\"string\"&&(r={forwardTo:r}),r.name||(r.name=t),e.$options[r.name]=r,\"initialValue\"in r&&(e[\"$\"+r.name]=r.initialValue)}),r.implement(e,s),this},this.resetOptions=function(e){Object.keys(e.$options).forEach(function(t){var n=e.$options[t];\"value\"in n&&e.setOption(t,n.value)})},this.setDefaultValue=function(e,t,n){var r=this.$defaultOptions[e]||(this.$defaultOptions[e]={});r[t]&&(r.forwardTo?this.setDefaultValue(r.forwardTo,t,n):r[t].value=n)},this.setDefaultValues=function(e,t){Object.keys(t).forEach(function(n){this.setDefaultValue(e,n,t[n])},this)},this.warn=o,this.reportError=u}).call(a.prototype),t.AppConfig=a}),ace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/app_config\"],function(e,t,n){\"no use strict\";function f(r){if(!u||!u.document)return;a.packaged=r||e.packaged||n.packaged||u.define&&define.packaged;var i={},s=\"\",o=document.currentScript||document._currentScript,f=o&&o.ownerDocument||document,c=f.getElementsByTagName(\"script\");for(var h=0;h<c.length;h++){var p=c[h],d=p.src||p.getAttribute(\"src\");if(!d)continue;var v=p.attributes;for(var m=0,g=v.length;m<g;m++){var y=v[m];y.name.indexOf(\"data-ace-\")===0&&(i[l(y.name.replace(/^data-ace-/,\"\"))]=y.value)}var b=d.match(/^(.*)\\/ace(\\-\\w+)?\\.js(\\?|$)/);b&&(s=b[1])}s&&(i.base=i.base||s,i.packaged=!0),i.basePath=i.base,i.workerPath=i.workerPath||i.base,i.modePath=i.modePath||i.base,i.themePath=i.themePath||i.base,delete i.base;for(var w in i)typeof i[w]!=\"undefined\"&&t.set(w,i[w])}function l(e){return e.replace(/-(.)/g,function(e,t){return t.toUpperCase()})}var r=e(\"./lib/lang\"),i=e(\"./lib/oop\"),s=e(\"./lib/net\"),o=e(\"./lib/app_config\").AppConfig;n.exports=t=new o;var u=function(){return this||typeof window!=\"undefined\"&&window}(),a={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:\"\",suffix:\".js\",$moduleUrls:{}};t.get=function(e){if(!a.hasOwnProperty(e))throw new Error(\"Unknown config key: \"+e);return a[e]},t.set=function(e,t){if(!a.hasOwnProperty(e))throw new Error(\"Unknown config key: \"+e);a[e]=t},t.all=function(){return r.copyObject(a)},t.moduleUrl=function(e,t){if(a.$moduleUrls[e])return a.$moduleUrls[e];var n=e.split(\"/\");t=t||n[n.length-2]||\"\";var r=t==\"snippets\"?\"/\":\"-\",i=n[n.length-1];if(t==\"worker\"&&r==\"-\"){var s=new RegExp(\"^\"+t+\"[\\\\-_]|[\\\\-_]\"+t+\"$\",\"g\");i=i.replace(s,\"\")}(!i||i==t)&&n.length>1&&(i=n[n.length-2]);var o=a[t+\"Path\"];return o==null?o=a.basePath:r==\"/\"&&(t=r=\"\"),o&&o.slice(-1)!=\"/\"&&(o+=\"/\"),o+t+r+i+this.get(\"suffix\")},t.setModuleUrl=function(e,t){return a.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(n,r){var i,o;Array.isArray(n)&&(o=n[0],n=n[1]);try{i=e(n)}catch(u){}if(i&&!t.$loading[n])return r&&r(i);t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(r);if(t.$loading[n].length>1)return;var a=function(){e([n],function(e){t._emit(\"load.module\",{name:n,module:e});var r=t.$loading[n];t.$loading[n]=null,r.forEach(function(t){t&&t(e)})})};if(!t.get(\"packaged\"))return a();s.loadScript(t.moduleUrl(n,o),a)},t.init=f}),ace.define(\"ace/mouse/mouse_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/mouse/default_handlers\",\"ace/mouse/default_gutter_handler\",\"ace/mouse/mouse_event\",\"ace/mouse/dragdrop_handler\",\"ace/config\"],function(e,t,n){\"use strict\";var r=e(\"../lib/event\"),i=e(\"../lib/useragent\"),s=e(\"./default_handlers\").DefaultHandlers,o=e(\"./default_gutter_handler\").GutterHandler,u=e(\"./mouse_event\").MouseEvent,a=e(\"./dragdrop_handler\").DragdropHandler,f=e(\"../config\"),l=function(e){var t=this;this.editor=e,new s(this),new o(this),new a(this);var n=function(t){var n=!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement());n&&window.focus(),e.focus()},u=e.renderer.getMouseEventTarget();r.addListener(u,\"click\",this.onMouseEvent.bind(this,\"click\")),r.addListener(u,\"mousemove\",this.onMouseMove.bind(this,\"mousemove\")),r.addMultiMouseDownListener([u,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,\"onMouseEvent\"),r.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,\"mousewheel\")),r.addTouchMoveListener(e.container,this.onTouchMove.bind(this,\"touchmove\"));var f=e.renderer.$gutter;r.addListener(f,\"mousedown\",this.onMouseEvent.bind(this,\"guttermousedown\")),r.addListener(f,\"click\",this.onMouseEvent.bind(this,\"gutterclick\")),r.addListener(f,\"dblclick\",this.onMouseEvent.bind(this,\"gutterdblclick\")),r.addListener(f,\"mousemove\",this.onMouseEvent.bind(this,\"guttermousemove\")),r.addListener(u,\"mousedown\",n),r.addListener(f,\"mousedown\",n),i.isIE&&e.renderer.scrollBarV&&(r.addListener(e.renderer.scrollBarV.element,\"mousedown\",n),r.addListener(e.renderer.scrollBarH.element,\"mousedown\",n)),e.on(\"mousemove\",function(n){if(t.state||t.$dragDelay||!t.$dragEnabled)return;var r=e.renderer.screenToTextCoordinates(n.x,n.y),i=e.session.selection.getRange(),s=e.renderer;!i.isEmpty()&&i.insideStart(r.row,r.column)?s.setCursorStyle(\"default\"):s.setCursorStyle(\"\")})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new u(t,this.editor))},this.onMouseMove=function(e,t){var n=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;if(!n||!n.length)return;this.editor._emit(e,new u(t,this.editor))},this.onMouseWheel=function(e,t){var n=new u(t,this.editor);n.speed=this.$scrollSpeed*2,n.wheelX=t.wheelX,n.wheelY=t.wheelY,this.editor._emit(e,n)},this.onTouchMove=function(e,t){var n=new u(t,this.editor);n.speed=1,n.wheelX=t.wheelX,n.wheelY=t.wheelY,this.editor._emit(e,n)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var n=this.editor.renderer;n.$keepTextAreaAtCursor&&(n.$keepTextAreaAtCursor=null);var s=this,o=function(e){if(!e)return;if(i.isWebKit&&!e.which&&s.releaseMouse)return s.releaseMouse();s.x=e.clientX,s.y=e.clientY,t&&t(e),s.mouseEvent=new u(e,s.editor),s.$mouseMoved=!0},a=function(e){clearInterval(l),f(),s[s.state+\"End\"]&&s[s.state+\"End\"](e),s.state=\"\",n.$keepTextAreaAtCursor==null&&(n.$keepTextAreaAtCursor=!0,n.$moveTextAreaToCursor()),s.isMousePressed=!1,s.$onCaptureMouseMove=s.releaseMouse=null,e&&s.onMouseEvent(\"mouseup\",e)},f=function(){s[s.state]&&s[s.state](),s.$mouseMoved=!1};if(i.isOldIE&&e.domEvent.type==\"dblclick\")return setTimeout(function(){a(e)});s.$onCaptureMouseMove=o,s.releaseMouse=r.capture(this.editor.container,o,a);var l=setInterval(f,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){if(t&&t.domEvent&&t.domEvent.type!=\"contextmenu\")return;this.editor.off(\"nativecontextmenu\",e),t&&t.domEvent&&r.stopEvent(t.domEvent)}.bind(this);setTimeout(e,10),this.editor.on(\"nativecontextmenu\",e)}}).call(l.prototype),f.defineOptions(l.prototype,\"mouseHandler\",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:i.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=l}),ace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e){e.on(\"click\",function(t){var n=t.getDocumentPosition(),r=e.session,i=r.getFoldAt(n.row,n.column,1);i&&(t.getAccelKey()?r.removeFold(i):r.expandFold(i),t.stop())}),e.on(\"gutterclick\",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n==\"foldWidgets\"){var r=t.getDocumentPosition().row,i=e.session;i.foldWidgets&&i.foldWidgets[r]&&e.session.onFoldWidgetClick(r,t),e.isFocused()||e.focus(),t.stop()}}),e.on(\"gutterdblclick\",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n==\"foldWidgets\"){var r=t.getDocumentPosition().row,i=e.session,s=i.getParentFoldRangeData(r,!0),o=s.range||s.firstRange;if(o){r=o.start.row;var u=i.getFoldAt(r,i.getLine(r).length,1);u?i.removeFold(u):(i.addFold(\"...\",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}})}t.FoldHandler=r}),ace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"],function(e,t,n){\"use strict\";var r=e(\"../lib/keys\"),i=e(\"../lib/event\"),s=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]==e)return;while(t[t.length-1]&&t[t.length-1]!=this.$defaultHandler)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)},this.addKeyboardHandler=function(e,t){if(!e)return;typeof e==\"function\"&&!e.handleKeyboard&&(e.handleKeyboard=e);var n=this.$handlers.indexOf(e);n!=-1&&this.$handlers.splice(n,1),t==undefined?this.$handlers.push(e):this.$handlers.splice(t,0,e),n==-1&&e.attach&&e.attach(this.$editor)},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return t==-1?!1:(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map(function(n){return n.getStatusText&&n.getStatusText(t,e)||\"\"}).filter(Boolean).join(\" \")},this.$callKeyboardHandlers=function(e,t,n,r){var s,o=!1,u=this.$editor.commands;for(var a=this.$handlers.length;a--;){s=this.$handlers[a].handleKeyboard(this.$data,e,t,n,r);if(!s||!s.command)continue;s.command==\"null\"?o=!0:o=u.exec(s.command,this.$editor,s.args,r),o&&r&&e!=-1&&s.passEvent!=1&&s.command.passEvent!=1&&i.stopEvent(r);if(o)break}return!o&&e==-1&&(s={command:\"insertstring\"},o=u.exec(\"insertstring\",this.$editor,t)),o&&this.$editor._signal(\"keyboardActivity\",s),o},this.onCommandKey=function(e,t,n){var i=r.keyCodeToString(n);this.$callKeyboardHandlers(t,i,n,e)},this.onTextInput=function(e){this.$callKeyboardHandlers(-1,e)}}).call(s.prototype),t.KeyBinding=s}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e==\"object\"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e==\"object\"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/lang\"),s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=function(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.lead=this.selectionLead=this.doc.createAnchor(0,0),this.anchor=this.selectionAnchor=this.doc.createAnchor(0,0);var t=this;this.lead.on(\"change\",function(e){t._emit(\"changeCursor\"),t.$isEmpty||t._emit(\"changeSelection\"),!t.$keepDesiredColumnOnChange&&e.old.column!=e.value.column&&(t.$desiredColumn=null)}),this.selectionAnchor.on(\"change\",function(){t.$isEmpty||t._emit(\"changeSelection\")})};(function(){r.implement(this,s),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return this.isEmpty()?!1:this.getRange().isMultiLine()},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(e,t){this.anchor.setPosition(e,t),this.$isEmpty&&(this.$isEmpty=!1,this._emit(\"changeSelection\"))},this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},this.shiftSelection=function(e){if(this.$isEmpty){this.moveCursorTo(this.lead.row,this.lead.column+e);return}var t=this.getSelectionAnchor(),n=this.getSelectionLead(),r=this.isBackwards();(!r||t.column!==0)&&this.setSelectionAnchor(t.row,t.column+e),(r||n.column!==0)&&this.$moveSelection(function(){this.moveCursorTo(n.row,n.column+e)})},this.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.isEmpty()?o.fromPoints(t,t):this.isBackwards()?o.fromPoints(t,e):o.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit(\"changeSelection\"))},this.selectAll=function(){var e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(typeof t==\"undefined\"){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var n=typeof e==\"number\"?e:this.lead.row,r,i=this.session.getFoldLine(n);return i?(n=i.start.row,r=i.end.row):r=n,t===!0?new o(n,0,r,this.session.getLine(r).length):new o(n,0,r+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,-1))this.moveCursorTo(t.start.row,t.start.column);else if(e.column===0)e.row>0&&this.moveCursorTo(e.row-1,this.doc.getLine(e.row-1).length);else{var n=this.session.getTabSize();this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(e.column-n,e.column).split(\" \").length-1==n?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,1))this.moveCursorTo(t.end.row,t.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row<this.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var n=this.session.getTabSize(),e=this.lead;this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(e.column,e.column+n).split(\" \").length-1==n?this.moveCursorBy(0,n):this.moveCursorBy(0,1)}},this.moveCursorLineStart=function(){var e=this.lead.row,t=this.lead.column,n=this.session.documentToScreenRow(e,t),r=this.session.screenToDocumentPosition(n,0),i=this.session.getDisplayLine(e,null,r.row,r.column),s=i.match(/^\\s*/);s[0].length!=t&&!this.session.$useEmacsStyleLineStart&&(r.column+=s[0].length),this.moveCursorToPosition(r)},this.moveCursorLineEnd=function(){var e=this.lead,t=this.session.getDocumentLastRowColumnPosition(e.row,e.column);if(this.lead.column==t.column){var n=this.session.getLine(t.row);if(t.column==n.length){var r=n.search(/\\s+$/);r>0&&(t.column=r)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i;this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var s=this.session.getFoldAt(e,t,1);if(s){this.moveCursorTo(s.end.row,s.end.column);return}if(i=this.session.nonTokenRe.exec(r))t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,r=n.substring(t);if(t>=n.length){this.moveCursorTo(e,n.length),this.moveCursorRight(),e<this.doc.getLength()-1&&this.moveCursorWordRight();return}if(i=this.session.tokenRe.exec(r))t+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(e,t)},this.moveCursorLongWordLeft=function(){var e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1)){this.moveCursorTo(n.start.row,n.start.column);return}var r=this.session.getFoldStringAt(e,t,-1);r==null&&(r=this.doc.getLine(e).substring(0,t));var s=i.stringReverse(r),o;this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;if(o=this.session.nonTokenRe.exec(s))t-=this.session.nonTokenRe.lastIndex,s=s.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0;if(t<=0){this.moveCursorTo(e,0),this.moveCursorLeft(),e>0&&this.moveCursorWordLeft();return}if(o=this.session.tokenRe.exec(s))t-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(e,t)},this.$shortWordEndIndex=function(e){var t,n=0,r,i=/\\s/,s=this.session.tokenRe;s.lastIndex=0;if(t=this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{while((r=e[n])&&i.test(r))n++;if(n<1){s.lastIndex=0;while((r=e[n])&&!s.test(r)){s.lastIndex=0,n++;if(i.test(r)){if(n>2){n--;break}while((r=e[n])&&i.test(r))n++;if(n>2)break}}}}return s.lastIndex=0,n},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var s=this.doc.getLength();do e++,r=this.doc.getLine(e);while(e<s&&/^\\s*$/.test(r));/^\\s+/.test(r)||(r=\"\"),t=0}var o=this.$shortWordEndIndex(r);this.moveCursorTo(e,t+o)},this.moveCursorShortWordLeft=function(){var e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1))return this.moveCursorTo(n.start.row,n.start.column);var r=this.session.getLine(e).substring(0,t);if(t===0){do e--,r=this.doc.getLine(e);while(e>0&&/^\\s*$/.test(r));t=r.length,/\\s+$/.test(r)||(r=\"\")}var s=i.stringReverse(r),o=this.$shortWordEndIndex(s);return this.moveCursorTo(e,t-o)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var n=this.session.documentToScreenPosition(this.lead.row,this.lead.column);t===0&&(this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var r=this.session.screenToDocumentPosition(n.row+e,n.column);e!==0&&t===0&&r.row===this.lead.row&&r.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[r.row]&&(r.row>0||e>0)&&r.row++,this.moveCursorTo(r.row,r.column+t,t===0)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,n){var r=this.session.getFoldAt(e,t,1);r&&(e=r.start.row,t=r.start.column),this.$keepDesiredColumnOnChange=!0,this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,n){var r=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(r.row,r.column,n)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return o.fromPoints(t,n)}catch(r){return o.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(e.start==undefined){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=o.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(u.prototype),t.Selection=u}),ace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/config\"],function(e,t,n){\"use strict\";var r=e(\"./config\"),i=2e3,s=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){var n=this.states[t],r=[],i=0,s=this.matchMappings[t]={defaultToken:\"text\"},o=\"g\",u=[];for(var a=0;a<n.length;a++){var f=n[a];f.defaultToken&&(s.defaultToken=f.defaultToken),f.caseInsensitive&&(o=\"gi\");if(f.regex==null)continue;f.regex instanceof RegExp&&(f.regex=f.regex.toString().slice(1,-1));var l=f.regex,c=(new RegExp(\"(?:(\"+l+\")|(.))\")).exec(\"a\").length-2;Array.isArray(f.token)?f.token.length==1||c==1?f.token=f.token[0]:c-1!=f.token.length?(this.reportError(\"number of classes and regexp groups doesn't match\",{rule:f,groupCount:c-1}),f.token=f.token[0]):(f.tokenArray=f.token,f.token=null,f.onMatch=this.$arrayTokens):typeof f.token==\"function\"&&!f.onMatch&&(c>1?f.onMatch=this.$applyToken:f.onMatch=f.token),c>1&&(/\\\\\\d/.test(f.regex)?l=f.regex.replace(/\\\\([0-9]+)/g,function(e,t){return\"\\\\\"+(parseInt(t,10)+i+1)}):(c=1,l=this.removeCapturingGroups(f.regex)),!f.splitRegex&&typeof f.token!=\"string\"&&u.push(f)),s[i]=a,i+=c,r.push(l),f.onMatch||(f.onMatch=null)}r.length||(s[0]=0,r.push(\"$\")),u.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,o)},this),this.regExps[t]=new RegExp(\"(\"+r.join(\")|(\")+\")|($)\",o)}};(function(){this.$setMaxTokenCount=function(e){i=e|0},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if(typeof n==\"string\")return[{type:n,value:e}];var r=[];for(var i=0,s=n.length;i<s;i++)t[i]&&(r[r.length]={type:n[i],value:t[i]});return r},this.$arrayTokens=function(e){if(!e)return[];var t=this.splitRegex.exec(e);if(!t)return\"text\";var n=[],r=this.tokenArray;for(var i=0,s=r.length;i<s;i++)t[i+1]&&(n[n.length]={type:r[i],value:t[i+1]});return n},this.removeCapturingGroups=function(e){var t=e.replace(/\\[(?:\\\\.|[^\\]])*?\\]|\\\\.|\\(\\?[:=!]|(\\()/g,function(e,t){return t?\"(?:\":e});return t},this.createSplitterRegexp=function(e,t){if(e.indexOf(\"(?=\")!=-1){var n=0,r=!1,i={};e.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g,function(e,t,s,o,u,a){return r?r=u!=\"]\":u?r=!0:o?(n==i.stack&&(i.end=a+1,i.stack=-1),n--):s&&(n++,s.length!=1&&(i.stack=n,i.start=a)),e}),i.end!=null&&/^\\)*$/.test(e.substr(i.end))&&(e=e.substring(0,i.start)+e.substr(i.end))}return e.charAt(0)!=\"^\"&&(e=\"^\"+e),e.charAt(e.length-1)!=\"$\"&&(e+=\"$\"),new RegExp(e,(t||\"\").replace(\"g\",\"\"))},this.getLineTokens=function(e,t){if(t&&typeof t!=\"string\"){var n=t.slice(0);t=n[0],t===\"#tmp\"&&(n.shift(),t=n.shift())}else var n=[];var r=t||\"start\",s=this.states[r];s||(r=\"start\",s=this.states[r]);var o=this.matchMappings[r],u=this.regExps[r];u.lastIndex=0;var a,f=[],l=0,c=0,h={type:null,value:\"\"};while(a=u.exec(e)){var p=o.defaultToken,d=null,v=a[0],m=u.lastIndex;if(m-v.length>l){var g=e.substring(l,m-v.length);h.type==p?h.value+=g:(h.type&&f.push(h),h={type:p,value:g})}for(var y=0;y<a.length-2;y++){if(a[y+1]===undefined)continue;d=s[o[y]],d.onMatch?p=d.onMatch(v,r,n):p=d.token,d.next&&(typeof d.next==\"string\"?r=d.next:r=d.next(r,n),s=this.states[r],s||(this.reportError(\"state doesn't exist\",r),r=\"start\",s=this.states[r]),o=this.matchMappings[r],l=m,u=this.regExps[r],u.lastIndex=m);break}if(v)if(typeof p==\"string\")!!d&&d.merge===!1||h.type!==p?(h.type&&f.push(h),h={type:p,value:v}):h.value+=v;else if(p){h.type&&f.push(h),h={type:null,value:\"\"};for(var y=0;y<p.length;y++)f.push(p[y])}if(l==e.length)break;l=m;if(c++>i){c>2*e.length&&this.reportError(\"infinite loop with in ace tokenizer\",{startState:t,line:e});while(l<e.length)h.type&&f.push(h),h={value:e.substring(l,l+=2e3),type:\"overflow\"};r=\"start\",n=[];break}}return h.type&&f.push(h),n.length>1&&n[0]!==r&&n.unshift(\"#tmp\",r),{tokens:f,state:n.length?n:r}},this.reportError=r.reportError}).call(s.prototype),t.Tokenizer=s}),ace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../lib/lang\"),i=function(){this.$rules={start:[{token:\"empty_line\",regex:\"^$\"},{defaultToken:\"text\"}]}};(function(){this.addRules=function(e,t){if(!t){for(var n in e)this.$rules[n]=e[n];return}for(var n in e){var r=e[n];for(var i=0;i<r.length;i++){var s=r[i];if(s.next||s.onMatch)typeof s.next==\"string\"&&s.next.indexOf(t)!==0&&(s.next=t+s.next),s.nextState&&s.nextState.indexOf(t)!==0&&(s.nextState=t+s.nextState)}this.$rules[t+n]=r}},this.getRules=function(){return this.$rules},this.embedRules=function(e,t,n,i,s){var o=typeof e==\"function\"?(new e).getRules():e;if(i)for(var u=0;u<i.length;u++)i[u]=t+i[u];else{i=[];for(var a in o)i.push(t+a)}this.addRules(o,t);if(n){var f=Array.prototype[s?\"push\":\"unshift\"];for(var u=0;u<i.length;u++)f.apply(this.$rules[i[u]],r.deepCopy(n))}this.$embeds||(this.$embeds=[]),this.$embeds.push(t)},this.getEmbeds=function(){return this.$embeds};var e=function(e,t){return(e!=\"start\"||t.length)&&t.unshift(this.nextState,e),this.nextState},t=function(e,t){return t.shift(),t.shift()||\"start\"};this.normalizeRules=function(){function i(s){var o=r[s];o.processed=!0;for(var u=0;u<o.length;u++){var a=o[u],f=null;Array.isArray(a)&&(f=a,a={}),!a.regex&&a.start&&(a.regex=a.start,a.next||(a.next=[]),a.next.push({defaultToken:a.token},{token:a.token+\".end\",regex:a.end||a.start,next:\"pop\"}),a.token=a.token+\".start\",a.push=!0);var l=a.next||a.push;if(l&&Array.isArray(l)){var c=a.stateName;c||(c=a.token,typeof c!=\"string\"&&(c=c[0]||\"\"),r[c]&&(c+=n++)),r[c]=l,a.next=c,i(c)}else l==\"pop\"&&(a.next=t);a.push&&(a.nextState=a.next||a.push,a.next=e,delete a.push);if(a.rules)for(var h in a.rules)r[h]?r[h].push&&r[h].push.apply(r[h],a.rules[h]):r[h]=a.rules[h];var p=typeof a==\"string\"?a:typeof a.include==\"string\"?a.include:\"\";p&&(f=r[p]);if(f){var d=[u,1].concat(f);a.noEscape&&(d=d.filter(function(e){return!e.next})),o.splice.apply(o,d),u--}a.keywordMap&&(a.token=this.createKeywordMapper(a.keywordMap,a.defaultToken||\"text\",a.caseInsensitive),delete a.defaultToken)}}var n=0,r=this.$rules;Object.keys(r).forEach(i,this)},this.createKeywordMapper=function(e,t,n,r){var i=Object.create(null);return Object.keys(e).forEach(function(t){var s=e[t];n&&(s=s.toLowerCase());var o=s.split(r||\"|\");for(var u=o.length;u--;)i[o[u]]=t}),Object.getPrototypeOf(i)&&(i.__proto__=null),this.$keywordList=Object.keys(i),e=null,n?function(e){return i[e.toLowerCase()]||t}:function(e){return i[e]||t}},this.getKeywords=function(){return this.$keywords}}).call(i.prototype),t.TextHighlightRules=i}),ace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(){this.$behaviours={}};(function(){this.add=function(e,t,n){switch(undefined){case this.$behaviours:this.$behaviours={};case this.$behaviours[e]:this.$behaviours[e]={}}this.$behaviours[e][t]=n},this.addBehaviours=function(e){for(var t in e)for(var n in e[t])this.add(t,n,e[t][n])},this.remove=function(e){this.$behaviours&&this.$behaviours[e]&&delete this.$behaviours[e]},this.inherit=function(e,t){if(typeof e==\"function\")var n=(new e).getBehaviours(t);else var n=e.getBehaviours(t);this.addBehaviours(n)},this.getBehaviours=function(e){if(!e)return this.$behaviours;var t={};for(var n=0;n<e.length;n++)this.$behaviours[e[n]]&&(t[e[n]]=this.$behaviours[e[n]]);return t}}).call(r.prototype),t.Behaviour=r}),ace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e){var n=/\\w{4}/g;for(var r in e)t.packages[r]=e[r].replace(n,\"\\\\u$&\")}t.packages={},r({L:\"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",Ll:\"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A\",Lu:\"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A\",Lt:\"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC\",Lm:\"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F\",Lo:\"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",M:\"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26\",Mn:\"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26\",Mc:\"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC\",Me:\"0488048906DE20DD-20E020E2-20E4A670-A672\",N:\"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",Nd:\"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",Nl:\"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF\",No:\"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835\",P:\"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65\",Pd:\"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D\",Ps:\"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62\",Pe:\"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63\",Pi:\"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20\",Pf:\"00BB2019201D203A2E032E052E0A2E0D2E1D2E21\",Pc:\"005F203F20402054FE33FE34FE4D-FE4FFF3F\",Po:\"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65\",S:\"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD\",Sm:\"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC\",Sc:\"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6\",Sk:\"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3\",So:\"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD\",Z:\"002000A01680180E2000-200A20282029202F205F3000\",Zs:\"002000A01680180E2000-200A202F205F3000\",Zl:\"2028\",Zp:\"2029\",C:\"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF\",Cc:\"0000-001F007F-009F\",Cf:\"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB\",Co:\"E000-F8FF\",Cs:\"D800-DFFF\",Cn:\"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF\"})}),ace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(e,t,n){this.$session=e,this.$row=t,this.$rowTokens=e.getTokens(t);var r=e.getTokenAt(t,n);this.$tokenIndex=r?r.index:-1};(function(){this.stepBackward=function(){this.$tokenIndex-=1;while(this.$tokenIndex<0){this.$row-=1;if(this.$row<0)return this.$row=0,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]},this.stepForward=function(){this.$tokenIndex+=1;var e;while(this.$tokenIndex>=this.$rowTokens.length){this.$row+=1,e||(e=this.$session.getLength());if(this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(n!==undefined)return n;n=0;while(t>0)t-=1,n+=e[t].value.length;return n},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}}}).call(r.prototype),t.TokenIterator=r}),ace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../tokenizer\").Tokenizer,i=e(\"./text_highlight_rules\").TextHighlightRules,s=e(\"./behaviour\").Behaviour,o=e(\"../unicode\"),u=e(\"../lib/lang\"),a=e(\"../token_iterator\").TokenIterator,f=e(\"../range\").Range,l=function(){this.HighlightRules=i,this.$behaviour=new s};(function(){this.tokenRe=new RegExp(\"^[\"+o.packages.L+o.packages.Mn+o.packages.Mc+o.packages.Nd+o.packages.Pc+\"\\\\$_]+\",\"g\"),this.nonTokenRe=new RegExp(\"^(?:[^\"+o.packages.L+o.packages.Mn+o.packages.Mc+o.packages.Nd+o.packages.Pc+\"\\\\$_]|\\\\s])+\",\"g\"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules,this.$tokenizer=new r(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart=\"\",this.blockComment=\"\",this.toggleCommentLines=function(e,t,n,r){function w(e){for(var t=n;t<=r;t++)e(i.getLine(t),t)}var i=t.doc,s=!0,o=!0,a=Infinity,f=t.getTabSize(),l=!1;if(!this.lineCommentStart){if(!this.blockComment)return!1;var c=this.blockComment.start,h=this.blockComment.end,p=new RegExp(\"^(\\\\s*)(?:\"+u.escapeRegExp(c)+\")\"),d=new RegExp(\"(?:\"+u.escapeRegExp(h)+\")\\\\s*$\"),v=function(e,t){if(g(e,t))return;if(!s||/\\S/.test(e))i.insertInLine({row:t,column:e.length},h),i.insertInLine({row:t,column:a},c)},m=function(e,t){var n;(n=e.match(d))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(p))&&i.removeInLine(t,n[1].length,n[0].length)},g=function(e,n){if(p.test(e))return!0;var r=t.getTokens(n);for(var i=0;i<r.length;i++)if(r[i].type===\"comment\")return!0}}else{if(Array.isArray(this.lineCommentStart))var p=this.lineCommentStart.map(u.escapeRegExp).join(\"|\"),c=this.lineCommentStart[0];else var p=u.escapeRegExp(this.lineCommentStart),c=this.lineCommentStart;p=new RegExp(\"^(\\\\s*)(?:\"+p+\") ?\"),l=t.getUseSoftTabs();var m=function(e,t){var n=e.match(p);if(!n)return;var r=n[1].length,s=n[0].length;!b(e,r,s)&&n[0][s-1]==\" \"&&s--,i.removeInLine(t,r,s)},y=c+\" \",v=function(e,t){if(!s||/\\S/.test(e))b(e,a,a)?i.insertInLine({row:t,column:a},y):i.insertInLine({row:t,column:a},c)},g=function(e,t){return p.test(e)},b=function(e,t,n){var r=0;while(t--&&e.charAt(t)==\" \")r++;if(r%f!=0)return!1;var r=0;while(e.charAt(n++)==\" \")r++;return f>2?r%f!=f-1:r%f==0}}var E=Infinity;w(function(e,t){var n=e.search(/\\S/);n!==-1?(n<a&&(a=n),o&&!g(e,t)&&(o=!1)):E>e.length&&(E=e.length)}),a==Infinity&&(a=E,s=!1,o=!1),l&&a%f!=0&&(a=Math.floor(a/f)*f),w(o?m:v)},this.toggleBlockComment=function(e,t,n,r){var i=this.blockComment;if(!i)return;!i.start&&i[0]&&(i=i[0]);var s=new a(t,r.row,r.column),o=s.getCurrentToken(),u=t.selection,l=t.selection.toOrientedRange(),c,h;if(o&&/comment/.test(o.type)){var p,d;while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.start);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;p=new f(m,g,m,g+i.start.length);break}o=s.stepBackward()}var s=new a(t,r.row,r.column),o=s.getCurrentToken();while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.end);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;d=new f(m,g,m,g+i.end.length);break}o=s.stepForward()}d&&t.remove(d),p&&(t.remove(p),c=p.start.row,h=-i.start.length)}else h=i.start.length,c=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);l.start.row==c&&(l.start.column+=h),l.end.row==c&&(l.end.column+=h),t.selection.fromOrientedRange(l)},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);var n=[\"toggleBlockComment\",\"toggleCommentLines\",\"getNextLineIndent\",\"checkOutdent\",\"autoOutdent\",\"transformAction\",\"getCompletions\"];for(var t=0;t<n.length;t++)(function(e){var r=n[t],i=e[r];e[n[t]]=function(){return this.$delegator(r,arguments,i)}})(this)},this.$delegator=function(e,t,n){var r=t[0];typeof r!=\"string\"&&(r=r[0]);for(var i=0;i<this.$embeds.length;i++){if(!this.$modes[this.$embeds[i]])continue;var s=r.split(this.$embeds[i]);if(!s[0]&&s[1]){t[0]=s[1];var o=this.$modes[this.$embeds[i]];return o[e].apply(o,t)}}var u=n.apply(this,t);return n?u:undefined},this.transformAction=function(e,t,n,r,i){if(this.$behaviour){var s=this.$behaviour.getBehaviours();for(var o in s)if(s[o][t]){var u=s[o][t].apply(this,arguments);if(u)return u}}},this.getKeywords=function(e){if(!this.completionKeywords){var t=this.$tokenizer.rules,n=[];for(var r in t){var i=t[r];for(var s=0,o=i.length;s<o;s++)if(typeof i[s].token==\"string\")/keyword|support|storage/.test(i[s].token)&&n.push(i[s].regex);else if(typeof i[s].token==\"object\")for(var u=0,a=i[s].token.length;u<a;u++)if(/keyword|support|storage/.test(i[s].token[u])){var r=i[s].regex.match(/\\(.+?\\)/g)[u];n.push(r.substr(1,r.length-2))}}this.completionKeywords=n}return e?n.concat(this.$keywordList||[]):this.$keywordList},this.$createKeywordList=function(){return this.$highlightRules||this.getTokenizer(),this.$keywordList=this.$highlightRules.$keywordList||[]},this.getCompletions=function(e,t,n,r){var i=this.$keywordList||this.$createKeywordList();return i.map(function(e){return{name:e,value:e,score:0,meta:\"keyword\"}})},this.$id=\"ace/mode/text\"}).call(l.prototype),t.Mode=l}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e,t){throw console.log(\"Invalid Delta:\",e),\"Invalid Delta: \"+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!=\"insert\"&&t.action!=\"remove\"&&r(t,\"delta.action must be 'insert' or 'remove'\"),t.lines instanceof Array||r(t,\"delta.lines must be an Array\"),(!t.start||!t.end)&&r(t,\"delta.start/end must be an present\");var n=t.start;i(e,t.start)||r(t,\"delta.start must be contained in document\");var s=t.end;t.action==\"remove\"&&!i(e,s)&&r(t,\"delta.end must contained in document for 'remove' actions\");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,\"delta.range must match delta lines\")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||\"\";switch(t.action){case\"insert\":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case\"remove\":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n==\"undefined\"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action==\"insert\",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal(\"change\",{old:i,value:r})},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./apply_delta\").applyDelta,s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=function(e){this.$lines=[\"\"],e.length===0?this.$lines=[\"\"]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},\"aaa\".split(/a/).length===0?this.$split=function(e){return e.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:this.$split=function(e){return e.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=t?t[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal(\"changeNewLineMode\")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==\"\\r\\n\"||e==\"\\r\"||e==\"\\n\"},this.getLine=function(e){return this.$lines[e]||\"\"},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||\"\").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(e,[\"\",\"\"])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:\"insert\",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([\"\"]),n=0):(t=[\"\"].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:\"insert\",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:\"remove\",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:\"remove\",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:\"remove\",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action==\"insert\";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal(\"change\",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(\"\"),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action==\"insert\"?\"remove\":\"insert\",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),ace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=function(e,t){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=e;var n=this;this.$worker=function(){if(!n.running)return;var e=new Date,t=n.currentLine,r=-1,i=n.doc,s=t;while(n.lines[t])t++;var o=i.getLength(),u=0;n.running=!1;while(t<o){n.$tokenizeRow(t),r=t;do t++;while(n.lines[t]);u++;if(u%5===0&&new Date-e>20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,s<=r&&n.fireUpdateEvent(s,r)}};(function(){r.implement(this,i),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal(\"update\",{data:n})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.lines[t]=null;else if(e.action==\"remove\")this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.lines.splice.apply(this.lines,r),this.states.splice.apply(this.states,r)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||\"start\"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],r=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+\"\"!=r.state+\"\"?(this.states[e]=r.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=r.tokens}}).call(s.prototype),t.BackgroundTokenizer=s}),ace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"./lib/lang\"),i=e(\"./lib/oop\"),s=e(\"./range\").Range,o=function(e,t,n){this.setRegexp(e),this.clazz=t,this.type=n||\"text\"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){if(this.regExp+\"\"==e+\"\")return;this.regExp=e,this.cache=[]},this.update=function(e,t,n,i){if(!this.regExp)return;var o=i.firstRow,u=i.lastRow;for(var a=o;a<=u;a++){var f=this.cache[a];f==null&&(f=r.getMatchOffsets(n.getLine(a),this.regExp),f.length>this.MAX_RANGES&&(f=f.slice(0,this.MAX_RANGES)),f=f.map(function(e){return new s(a,e.offset,a,e.offset+e.length)}),this.cache[a]=f.length?f:\"\");for(var l=f.length;l--;)t.drawSingleLineMarker(e,f[l].toScreenRange(n),this.clazz,i)}}}).call(o.prototype),t.SearchHighlight=o}),ace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";function i(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var n=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,n.end.row,n.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var r=e(\"../range\").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.row<this.startRow||e.endRow>this.endRow)throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,n){var r=0,i=this.folds,s,o,u,a=!0;t==null&&(t=this.end.row,n=this.end.column);for(var f=0;f<i.length;f++){s=i[f],o=s.range.compareStart(t,n);if(o==-1){e(null,t,n,r,a);return}u=e(null,s.start.row,s.start.column,r,a),u=!u&&e(s.placeholder,s.start.row,s.start.column,r);if(u||o===0)return;a=!s.sameRow,r=s.end.column}e(null,t,n,r,a)},this.getNextFoldTo=function(e,t){var n,r;for(var i=0;i<this.folds.length;i++){n=this.folds[i],r=n.range.compareEnd(e,t);if(r==-1)return{fold:n,kind:\"after\"};if(r===0)return{fold:n,kind:\"inside\"}}return null},this.addRemoveChars=function(e,t,n){var r=this.getNextFoldTo(e,t),i,s;if(r){i=r.fold;if(r.kind==\"inside\"&&i.start.column!=t&&i.start.row!=e)window.console&&window.console.log(e,t,i);else if(i.start.row==e){s=this.folds;var o=s.indexOf(i);o===0&&(this.start.column+=n);for(o;o<s.length;o++){i=s[o],i.start.column+=n;if(!i.sameRow)return;i.end.column+=n}this.end.column+=n}}},this.split=function(e,t){var n=this.getNextFoldTo(e,t);if(!n||n.kind==\"inside\")return null;var r=n.fold,s=this.folds,o=this.foldData,u=s.indexOf(r),a=s[u-1];this.end.row=a.end.row,this.end.column=a.end.column,s=s.splice(u,s.length-u);var f=new i(o,s);return o.splice(o.indexOf(this)+1,0,f),f},this.merge=function(e){var t=e.folds;for(var n=0;n<t.length;n++)this.addFold(t[n]);var r=this.foldData;r.splice(r.indexOf(e),1)},this.toString=function(){var e=[this.range.toString()+\": [\"];return this.folds.forEach(function(t){e.push(\"  \"+t.toString())}),e.push(\"]\"),e.join(\"\\n\")},this.idxToPosition=function(e){var t=0;for(var n=0;n<this.folds.length;n++){var r=this.folds[n];e-=r.start.column-t;if(e<0)return{row:r.start.row,column:r.start.column+e};e-=r.placeholder.length;if(e<0)return r.start;t=r.end.column}return{row:this.end.row,column:this.end.column+e}}}).call(i.prototype),t.FoldLine=i}),ace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"./range\").Range,i=r.comparePoints,s=function(){this.ranges=[]};(function(){this.comparePoints=i,this.pointIndex=function(e,t,n){var r=this.ranges;for(var s=n||0;s<r.length;s++){var o=r[s],u=i(e,o.end);if(u>0)continue;var a=i(e,o.start);return u===0?t&&a!==0?-s-2:s:a>0||a===0&&!t?s:-s-1}return-s-1},this.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var r=this.pointIndex(e.end,t,n);return r<0?r=-r-1:r++,this.ranges.splice(n,r-n,e)},this.addList=function(e){var t=[];for(var n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return i(e.start,t.start)});var n=t[0],r;for(var s=1;s<t.length;s++){r=n,n=t[s];var o=i(r.end,n.start);if(o<0)continue;if(o==0&&!r.isEmpty()&&!n.isEmpty())continue;i(r.end,n.end)<0&&(r.end.row=n.end.row,r.end.column=n.end.column),t.splice(s,1),e.push(n),n=r,s--}return this.ranges=t,e},this.contains=function(e,t){return this.pointIndex({row:e,column:t})>=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row<e)return[];var r=this.pointIndex({row:e,column:0});r<0&&(r=-r-1);var i=this.pointIndex({row:t,column:0},r);i<0&&(i=-i-1);var s=[];for(var o=r;o<i;o++)s.push(n[o]);return s},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(e){this.session&&this.detach(),this.session=e,this.onChange=this.$onChange.bind(this),this.session.on(\"change\",this.onChange)},this.detach=function(){if(!this.session)return;this.session.removeListener(\"change\",this.onChange),this.session=null},this.$onChange=function(e){if(e.action==\"insert\")var t=e.start,n=e.end;else var n=e.start,t=e.end;var r=t.row,i=n.row,s=i-r,o=-t.column+n.column,u=this.ranges;for(var a=0,f=u.length;a<f;a++){var l=u[a];if(l.end.row<r)continue;if(l.start.row>r)break;l.start.row==r&&l.start.column>=t.column&&(l.start.column!=t.column||!this.$insertRight)&&(l.start.column+=o,l.start.row+=s);if(l.end.row==r&&l.end.column>=t.column){if(l.end.column==t.column&&this.$insertRight)continue;l.end.column==t.column&&o>0&&a<f-1&&l.end.column>l.start.column&&l.end.column==u[a+1].start.column&&(l.end.column-=o),l.end.column+=o,l.end.row+=s}}if(s!=0&&a<f)for(;a<f;a++){var l=u[a];l.start.row+=s,l.end.row+=s}}}).call(s.prototype),t.RangeList=s}),ace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/range_list\",\"ace/lib/oop\"],function(e,t,n){\"use strict\";function u(e,t){e.row-=t.row,e.row==0&&(e.column-=t.column)}function a(e,t){u(e.start,t),u(e.end,t)}function f(e,t){e.row==0&&(e.column+=t.column),e.row+=t.row}function l(e,t){f(e.start,t),f(e.end,t)}var r=e(\"../range\").Range,i=e(\"../range_list\").RangeList,s=e(\"../lib/oop\"),o=t.Fold=function(e,t){this.foldLine=null,this.placeholder=t,this.range=e,this.start=e.start,this.end=e.end,this.sameRow=e.start.row==e.end.row,this.subFolds=this.ranges=[]};s.inherits(o,i),function(){this.toString=function(){return'\"'+this.placeholder+'\" '+this.range.toString()},this.setFoldLine=function(e){this.foldLine=e,this.subFolds.forEach(function(t){t.setFoldLine(e)})},this.clone=function(){var e=this.range.clone(),t=new o(e,this.placeholder);return this.subFolds.forEach(function(e){t.subFolds.push(e.clone())}),t.collapseChildren=this.collapseChildren,t},this.addSubFold=function(e){if(this.range.isEqual(e))return;if(!this.range.containsRange(e))throw new Error(\"A fold can't intersect already existing fold\"+e.range+this.range);a(e,this.start);var t=e.start.row,n=e.start.column;for(var r=0,i=-1;r<this.subFolds.length;r++){i=this.subFolds[r].range.compare(t,n);if(i!=1)break}var s=this.subFolds[r];if(i==0)return s.addSubFold(e);var t=e.range.end.row,n=e.range.end.column;for(var o=r,i=-1;o<this.subFolds.length;o++){i=this.subFolds[o].range.compare(t,n);if(i!=1)break}var u=this.subFolds[o];if(i==0)throw new Error(\"A fold can't intersect already existing fold\"+e.range+this.range);var f=this.subFolds.splice(r,o-r,e);return e.setFoldLine(this.foldLine),e},this.restoreRange=function(e){return l(e,this.start)}}.call(o.prototype)}),ace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function u(){this.getFoldAt=function(e,t,n){var r=this.getFoldLine(e);if(!r)return null;var i=r.folds;for(var s=0;s<i.length;s++){var o=i[s];if(o.range.contains(e,t)){if(n==1&&o.range.isEnd(e,t))continue;if(n==-1&&o.range.isStart(e,t))continue;return o}}},this.getFoldsInRange=function(e){var t=e.start,n=e.end,r=this.$foldData,i=[];t.column+=1,n.column-=1;for(var s=0;s<r.length;s++){var o=r[s].range.compareRange(e);if(o==2)continue;if(o==-2)break;var u=r[s].folds;for(var a=0;a<u.length;a++){var f=u[a];o=f.range.compareRange(e);if(o==-2)break;if(o==2)continue;if(o==42)break;i.push(f)}}return t.column-=1,n.column+=1,i},this.getFoldsInRangeList=function(e){if(Array.isArray(e)){var t=[];e.forEach(function(e){t=t.concat(this.getFoldsInRange(e))},this)}else var t=this.getFoldsInRange(e);return t},this.getAllFolds=function(){var e=[],t=this.$foldData;for(var n=0;n<t.length;n++)for(var r=0;r<t[n].folds.length;r++)e.push(t[n].folds[r]);return e},this.getFoldStringAt=function(e,t,n,r){r=r||this.getFoldLine(e);if(!r)return null;var i={end:{column:0}},s,o;for(var u=0;u<r.folds.length;u++){o=r.folds[u];var a=o.range.compareEnd(e,t);if(a==-1){s=this.getLine(o.start.row).substring(i.end.column,o.start.column);break}if(a===0)return null;i=o}return s||(s=this.getLine(o.start.row).substring(i.end.column)),n==-1?s.substring(0,t-i.end.column):n==1?s.substring(t-i.end.column):s},this.getFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r<n.length;r++){var i=n[r];if(i.start.row<=e&&i.end.row>=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r<n.length;r++){var i=n[r];if(i.end.row>=e)return i}return null},this.getFoldedRowCount=function(e,t){var n=this.$foldData,r=t-e+1;for(var i=0;i<n.length;i++){var s=n[i],o=s.end.row,u=s.start.row;if(o>=t){u<t&&(u>=e?r-=t-u:r=0);break}o>=e&&(u>=e?r-=o-u:r-=o-e+1)}return r},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var n=this.$foldData,r=!1,o;e instanceof s?o=e:(o=new s(t,e),o.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(o.range);var u=o.start.row,a=o.start.column,f=o.end.row,l=o.end.column;if(u<f||u==f&&a<=l-2){var c=this.getFoldAt(u,a,1),h=this.getFoldAt(f,l,-1);if(c&&h==c)return c.addSubFold(o);c&&!c.range.isStart(u,a)&&this.removeFold(c),h&&!h.range.isEnd(f,l)&&this.removeFold(h);var p=this.getFoldsInRange(o.range);p.length>0&&(this.removeFolds(p),p.forEach(function(e){o.addSubFold(e)}));for(var d=0;d<n.length;d++){var v=n[d];if(f==v.start.row){v.addFold(o),r=!0;break}if(u==v.end.row){v.addFold(o),r=!0;if(!o.sameRow){var m=n[d+1];if(m&&m.start.row==f){v.merge(m);break}}break}if(f<=v.start.row)break}return r||(v=this.$addFoldLine(new i(this.$foldData,o))),this.$useWrapMode?this.$updateWrapData(v.start.row,v.start.row):this.$updateRowLengthCache(v.start.row,v.start.row),this.$modified=!0,this._signal(\"changeFold\",{data:o,action:\"add\"}),o}throw new Error(\"The range has to be at least 2 characters width\")},this.addFolds=function(e){e.forEach(function(e){this.addFold(e)},this)},this.removeFold=function(e){var t=e.foldLine,n=t.start.row,r=t.end.row,i=this.$foldData,s=t.folds;if(s.length==1)i.splice(i.indexOf(t),1);else if(t.range.isEnd(e.end.row,e.end.column))s.pop(),t.end.row=s[s.length-1].end.row,t.end.column=s[s.length-1].end.column;else if(t.range.isStart(e.start.row,e.start.column))s.shift(),t.start.row=s[0].start.row,t.start.column=s[0].start.column;else if(e.sameRow)s.splice(s.indexOf(e),1);else{var o=t.split(e.start.row,e.start.column);s=o.folds,s.shift(),o.start.row=s[0].start.row,o.start.column=s[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(n,r):this.$updateRowLengthCache(n,r)),this.$modified=!0,this._signal(\"changeFold\",{data:e,action:\"remove\"})},this.removeFolds=function(e){var t=[];for(var n=0;n<e.length;n++)t.push(e[n]);t.forEach(function(e){this.removeFold(e)},this),this.$modified=!0},this.expandFold=function(e){this.removeFold(e),e.subFolds.forEach(function(t){e.restoreRange(t),this.addFold(t)},this),e.collapseChildren>0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var n,i;e==null?(n=new r(0,0,this.getLength(),0),t=!0):typeof e==\"number\"?n=new r(e,0,e,this.getLine(e).length):\"row\"in e?n=r.fromPoints(e,e):n=e,i=this.getFoldsInRangeList(n);if(t)this.removeFolds(i);else{var s=i;while(s.length)this.expandFolds(s),s=this.getFoldsInRangeList(n)}if(i.length)return i},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,r,i){r==null&&(r=e.start.row),i==null&&(i=0),t==null&&(t=e.end.row),n==null&&(n=this.getLine(t).length);var s=this.doc,o=\"\";return e.walk(function(e,t,n,u){if(t<r)return;if(t==r){if(n<i)return;u=Math.max(i,u)}e!=null?o+=e:o+=s.getLine(t).substring(u,n)},t,n),o},this.getDisplayLine=function(e,t,n,r){var i=this.getFoldLine(e);if(!i){var s;return s=this.doc.getLine(e),s.substring(r||0,t||s.length)}return this.getFoldDisplayLine(i,e,t,n,r)},this.$cloneFoldData=function(){var e=[];return e=this.$foldData.map(function(t){var n=t.folds.map(function(e){return e.clone()});return new i(e,n)}),e},this.toggleFold=function(e){var t=this.selection,n=t.getRange(),r,i;if(n.isEmpty()){var s=n.start;r=this.getFoldAt(s.row,s.column);if(r){this.expandFold(r);return}(i=this.findMatchingBracket(s))?n.comparePoint(i)==1?n.end=i:(n.start=i,n.start.column++,n.end.column--):(i=this.findMatchingBracket({row:s.row,column:s.column+1}))?(n.comparePoint(i)==1?n.end=i:n.start=i,n.start.column++):n=this.getCommentFoldRange(s.row,s.column)||n}else{var o=this.getFoldsInRange(n);if(e&&o.length){this.expandFolds(o);return}o.length==1&&(r=o[0])}r||(r=this.getFoldAt(n.start.row,n.start.column));if(r&&r.range.toString()==n.toString()){this.expandFold(r);return}var u=\"...\";if(!n.isMultiLine()){u=this.getTextRange(n);if(u.length<4)return;u=u.trim().substring(0,2)+\"..\"}this.addFold(u,n)},this.getCommentFoldRange=function(e,t,n){var i=new o(this,e,t),s=i.getCurrentToken();if(s&&/^comment|string/.test(s.type)){var u=new r,a=new RegExp(s.type.replace(/\\..*/,\"\\\\.\"));if(n!=1){do s=i.stepBackward();while(s&&a.test(s.type));i.stepForward()}u.start.row=i.getCurrentTokenRow(),u.start.column=i.getCurrentTokenColumn()+2,i=new o(this,e,t);if(n!=-1){do s=i.stepForward();while(s&&a.test(s.type));s=i.stepBackward()}else s=i.getCurrentToken();return u.end.row=i.getCurrentTokenRow(),u.end.column=i.getCurrentTokenColumn()+s.value.length-2,u}},this.foldAll=function(e,t,n){n==undefined&&(n=1e5);var r=this.foldWidgets;if(!r)return;t=t||this.getLength(),e=e||0;for(var i=e;i<t;i++){r[i]==null&&(r[i]=this.getFoldWidget(i));if(r[i]!=\"start\")continue;var s=this.getFoldWidgetRange(i);if(s&&s.isMultiLine()&&s.end.row<=t&&s.start.row>=e){i=s.end.row;try{var o=this.addFold(\"...\",s);o&&(o.collapseChildren=n)}catch(u){}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle=\"markbegin\",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error(\"invalid fold style: \"+e+\"[\"+Object.keys(this.$foldStyles).join(\", \")+\"]\");if(this.$foldStyle==e)return;this.$foldStyle=e,e==\"manual\"&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)},this.$setFolding=function(e){if(this.$foldMode==e)return;this.$foldMode=e,this.off(\"change\",this.$updateFoldWidgets),this.off(\"tokenizerUpdate\",this.$tokenizerUpdateFoldWidgets),this._signal(\"changeAnnotation\");if(!e||this.$foldStyle==\"manual\"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on(\"change\",this.$updateFoldWidgets),this.on(\"tokenizerUpdate\",this.$tokenizerUpdateFoldWidgets)},this.getParentFoldRangeData=function(e,t){var n=this.foldWidgets;if(!n||t&&n[e])return{};var r=e-1,i;while(r>=0){var s=n[r];s==null&&(s=n[r]=this.getFoldWidget(r));if(s==\"start\"){var o=this.getFoldWidgetRange(r);i||(i=o);if(o&&o.end.row>=e)break}r--}return{range:r!==-1&&o,firstRange:i}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey},r=this.$toggleFoldWidget(e,n);if(!r){var i=t.target||t.srcElement;i&&/ace_fold-widget/.test(i.className)&&(i.className+=\" ace_invalid\")}},this.$toggleFoldWidget=function(e,t){if(!this.getFoldWidget)return;var n=this.getFoldWidget(e),r=this.getLine(e),i=n===\"end\"?-1:1,s=this.getFoldAt(e,i===-1?0:r.length,i);if(s){t.children||t.all?this.removeFold(s):this.expandFold(s);return}var o=this.getFoldWidgetRange(e,!0);if(o&&!o.isMultiLine()){s=this.getFoldAt(o.start.row,o.start.column,1);if(s&&o.isEqual(s.range)){this.removeFold(s);return}}if(t.siblings){var u=this.getParentFoldRangeData(e);if(u.range)var a=u.range.start.row+1,f=u.range.end.row;this.foldAll(a,f,t.all?1e4:0)}else t.children?(f=o?o.end.row:this.getLength(),this.foldAll(e+1,f,t.all?1e4:0)):o&&(t.all&&(o.collapseChildren=1e4),this.addFold(\"...\",o));return o},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(n)return;var r=this.getParentFoldRangeData(t,!0);n=r.range||r.firstRange;if(n){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold(\"...\",n)}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.foldWidgets[t]=null;else if(e.action==\"remove\")this.foldWidgets.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,r)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e(\"../range\").Range,i=e(\"./fold_line\").FoldLine,s=e(\"./fold\").Fold,o=e(\"../token_iterator\").TokenIterator;t.Folding=u}),ace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"],function(e,t,n){\"use strict\";function s(){this.findMatchingBracket=function(e,t){if(e.column==0)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(n==\"\")return null;var r=n.match(/([\\(\\[\\{])|([\\)\\]\\}])/);return r?r[1]?this.$findClosingBracket(r[1],e):this.$findOpeningBracket(r[2],e):null},this.getBracketRange=function(e){var t=this.getLine(e.row),n=!0,r,s=t.charAt(e.column-1),o=s&&s.match(/([\\(\\[\\{])|([\\)\\]\\}])/);o||(s=t.charAt(e.column),e={row:e.row,column:e.column+1},o=s&&s.match(/([\\(\\[\\{])|([\\)\\]\\}])/),n=!1);if(!o)return null;if(o[1]){var u=this.$findClosingBracket(o[1],e);if(!u)return null;r=i.fromPoints(e,u),n||(r.end.column++,r.start.column--),r.cursor=r.end}else{var u=this.$findOpeningBracket(o[2],e);if(!u)return null;r=i.fromPoints(u,e),n||(r.start.column++,r.end.column--),r.cursor=r.start}return r},this.$brackets={\")\":\"(\",\"(\":\")\",\"]\":\"[\",\"[\":\"]\",\"{\":\"}\",\"}\":\"{\"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp(\"(\\\\.?\"+u.type.replace(\".\",\"\\\\.\").replace(\"rparen\",\".paren\").replace(/\\b(?:end)\\b/,\"(?:start|begin|end)\")+\")+\"));var a=t.column-o.getCurrentTokenColumn()-2,f=u.value;for(;;){while(a>=0){var l=f.charAt(a);if(l==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else l==e&&(s+=1);a-=1}do u=o.stepBackward();while(u&&!n.test(u.type));if(u==null)break;f=u.value,a=f.length-1}return null},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp(\"(\\\\.?\"+u.type.replace(\".\",\"\\\\.\").replace(\"lparen\",\".paren\").replace(/\\b(?:start|begin)\\b/,\"(?:start|begin|end)\")+\")+\"));var a=t.column-o.getCurrentTokenColumn();for(;;){var f=u.value,l=f.length;while(a<l){var c=f.charAt(a);if(c==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else c==e&&(s+=1);a+=1}do u=o.stepForward();while(u&&!n.test(u.type));if(u==null)break;a=0}return null}}var r=e(\"../token_iterator\").TokenIterator,i=e(\"../range\").Range;t.BracketMatch=s}),ace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/lang\"),s=e(\"./config\"),o=e(\"./lib/event_emitter\").EventEmitter,u=e(\"./selection\").Selection,a=e(\"./mode/text\").Mode,f=e(\"./range\").Range,l=e(\"./document\").Document,c=e(\"./background_tokenizer\").BackgroundTokenizer,h=e(\"./search_highlight\").SearchHighlight,p=function(e,t){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.$foldData.toString=function(){return this.join(\"\\n\")},this.on(\"changeFold\",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this);if(typeof e!=\"object\"||!e.getLine)e=new l(e);this.setDocument(e),this.selection=new u(this),s.resetOptions(this),this.setMode(t),s._signal(\"session\",this)};(function(){function m(e){return e<4352?!1:e>=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510}r.implement(this,o),this.setDocument=function(e){this.doc&&this.doc.removeListener(\"change\",this.$onChange),this.doc=e,e.on(\"change\",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e){this.$docRowCache=[],this.$screenRowCache=[];return}var t=this.$docRowCache.length,n=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>n&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},this.$getRowCacheIndex=function(e,t){var n=0,r=e.length-1;while(n<=r){var i=n+r>>1,s=e[i];if(t>s)n=i+1;else{if(!(t<s))return i;r=i-1}}return n-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.bgTokenizer&&this.bgTokenizer.start(0)},this.onChangeFold=function(e){var t=e.data;this.$resetRowCache(t.start.row)},this.onChange=function(e){this.$modified=!0,this.$resetRowCache(e.start.row);var t=this.$updateInternalDataOnChange(e);!this.$fromUndo&&this.$undoManager&&!e.ignore&&(this.$deltasDoc.push(e),t&&t.length!=0&&this.$deltasFold.push({action:\"removeFolds\",folds:t}),this.$informUndoManager.schedule()),this.bgTokenizer&&this.bgTokenizer.$updateOnChange(e),this._signal(\"change\",e)},this.setValue=function(e){this.doc.setValue(e),this.selection.moveTo(0,0),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.setUndoManager(this.$undoManager),this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(e){return this.bgTokenizer.getState(e)},this.getTokens=function(e){return this.bgTokenizer.getTokens(e)},this.getTokenAt=function(e,t){var n=this.bgTokenizer.getTokens(e),r,i=0;if(t==null)s=n.length-1,i=this.getLine(e).length;else for(var s=0;s<n.length;s++){i+=n[s].value.length;if(i>=t)break}return r=n[s],r?(r.index=s,r.start=i-r.value.length,r):null},this.setUndoManager=function(e){this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(e){var t=this;this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.$deltasFold.length&&(t.$deltas.push({group:\"fold\",deltas:t.$deltasFold}),t.$deltasFold=[]),t.$deltasDoc.length&&(t.$deltas.push({group:\"doc\",deltas:t.$deltasDoc}),t.$deltasDoc=[]),t.$deltas.length>0&&e.execute({action:\"aceupdate\",args:[t.$deltas,t],merge:t.mergeUndoDeltas}),t.mergeUndoDeltas=!1,t.$deltas=[]},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(\" \",this.getTabSize()):\"\t\"},this.setUseSoftTabs=function(e){this.setOption(\"useSoftTabs\",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption(\"tabSize\",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize===0},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption(\"overwrite\",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=\"\"),this.$decorations[e]+=\" \"+t,this._signal(\"changeBreakpoint\",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||\"\").replace(\" \"+t,\"\"),this._signal(\"changeBreakpoint\",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t<e.length;t++)this.$breakpoints[e[t]]=\"ace_breakpoint\";this._signal(\"changeBreakpoint\",{})},this.clearBreakpoints=function(){this.$breakpoints=[],this._signal(\"changeBreakpoint\",{})},this.setBreakpoint=function(e,t){t===undefined&&(t=\"ace_breakpoint\"),t?this.$breakpoints[e]=t:delete this.$breakpoints[e],this._signal(\"changeBreakpoint\",{})},this.clearBreakpoint=function(e){delete this.$breakpoints[e],this._signal(\"changeBreakpoint\",{})},this.addMarker=function(e,t,n,r){var i=this.$markerId++,s={range:e,type:n||\"line\",renderer:typeof n==\"function\"?n:null,clazz:t,inFront:!!r,id:i};return r?(this.$frontMarkers[i]=s,this._signal(\"changeFrontMarker\")):(this.$backMarkers[i]=s,this._signal(\"changeBackMarker\")),i},this.addDynamicMarker=function(e,t){if(!e.update)return;var n=this.$markerId++;return e.id=n,e.inFront=!!t,t?(this.$frontMarkers[n]=e,this._signal(\"changeFrontMarker\")):(this.$backMarkers[n]=e,this._signal(\"changeBackMarker\")),e},this.removeMarker=function(e){var t=this.$frontMarkers[e]||this.$backMarkers[e];if(!t)return;var n=t.inFront?this.$frontMarkers:this.$backMarkers;t&&(delete n[e],this._signal(t.inFront?\"changeFrontMarker\":\"changeBackMarker\"))},this.getMarkers=function(e){return e?this.$frontMarkers:this.$backMarkers},this.highlight=function(e){if(!this.$searchHighlight){var t=new h(null,\"ace_selected-word\",\"text\");this.$searchHighlight=this.addDynamicMarker(t)}this.$searchHighlight.setRegexp(e)},this.highlightLines=function(e,t,n,r){typeof t!=\"number\"&&(n=t,t=e),n||(n=\"ace_step\");var i=new f(e,0,t,Infinity);return i.id=this.addMarker(i,n,\"fullLine\",r),i},this.setAnnotations=function(e){this.$annotations=e,this._signal(\"changeAnnotation\",{})},this.getAnnotations=function(){return this.$annotations||[]},this.clearAnnotations=function(){this.setAnnotations([])},this.$detectNewLine=function(e){var t=e.match(/^.*?(\\r?\\n)/m);t?this.$autoNewLine=t[1]:this.$autoNewLine=\"\\n\"},this.getWordRange=function(e,t){var n=this.getLine(e),r=!1;t>0&&(r=!!n.charAt(t-1).match(this.tokenRe)),r||(r=!!n.charAt(t).match(this.tokenRe));if(r)var i=this.tokenRe;else if(/^\\s+$/.test(n.slice(t-1,t+1)))var i=/\\s/;else var i=this.nonTokenRe;var s=t;if(s>0){do s--;while(s>=0&&n.charAt(s).match(i));s++}var o=t;while(o<n.length&&n.charAt(o).match(i))o++;return new f(e,s,e,o)},this.getAWordRange=function(e,t){var n=this.getWordRange(e,t),r=this.getLine(n.end.row);while(r.charAt(n.end.column).match(/[ \\t]/))n.end.column+=1;return n},this.setNewLineMode=function(e){this.doc.setNewLineMode(e)},this.getNewLineMode=function(){return this.doc.getNewLineMode()},this.setUseWorker=function(e){this.setOption(\"useWorker\",e)},this.getUseWorker=function(){return this.$useWorker},this.onReloadTokenizer=function(e){var t=e.data;this.bgTokenizer.start(t.first),this._signal(\"tokenizerUpdate\",e)},this.$modes={},this.$mode=null,this.$modeId=null,this.setMode=function(e,t){if(e&&typeof e==\"object\"){if(e.getTokenizer)return this.$onChangeMode(e);var n=e,r=n.path}else r=e||\"ace/mode/text\";this.$modes[\"ace/mode/text\"]||(this.$modes[\"ace/mode/text\"]=new a);if(this.$modes[r]&&!n){this.$onChangeMode(this.$modes[r]),t&&t();return}this.$modeId=r,s.loadModule([\"mode\",r],function(e){if(this.$modeId!==r)return t&&t();this.$modes[r]&&!n?this.$onChangeMode(this.$modes[r]):e&&e.Mode&&(e=new e.Mode(n),n||(this.$modes[r]=e,e.$id=r),this.$onChangeMode(e)),t&&t()}.bind(this)),this.$mode||this.$onChangeMode(this.$modes[\"ace/mode/text\"],!0)},this.$onChangeMode=function(e,t){t||(this.$modeId=e.$id);if(this.$mode===e)return;this.$mode=e,this.$stopWorker(),this.$useWorker&&this.$startWorker();var n=e.getTokenizer();if(n.addEventListener!==undefined){var r=this.onReloadTokenizer.bind(this);n.addEventListener(\"update\",r)}if(!this.bgTokenizer){this.bgTokenizer=new c(n);var i=this;this.bgTokenizer.addEventListener(\"update\",function(e){i._signal(\"tokenizerUpdate\",e)})}else this.bgTokenizer.setTokenizer(n);this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=e.tokenRe,this.nonTokenRe=e.nonTokenRe,t||(e.attachToSession&&e.attachToSession(this),this.$options.wrapMethod.set.call(this,this.$wrapMethod),this.$setFolding(e.foldingRules),this.bgTokenizer.start(0),this._emit(\"changeMode\"))},this.$stopWorker=function(){this.$worker&&(this.$worker.terminate(),this.$worker=null)},this.$startWorker=function(){try{this.$worker=this.$mode.createWorker(this)}catch(e){s.warn(\"Could not load worker\",e),this.$worker=null}},this.getMode=function(){return this.$mode},this.$scrollTop=0,this.setScrollTop=function(e){if(this.$scrollTop===e||isNaN(e))return;this.$scrollTop=e,this._signal(\"changeScrollTop\",e)},this.getScrollTop=function(){return this.$scrollTop},this.$scrollLeft=0,this.setScrollLeft=function(e){if(this.$scrollLeft===e||isNaN(e))return;this.$scrollLeft=e,this._signal(\"changeScrollLeft\",e)},this.getScrollLeft=function(){return this.$scrollLeft},this.getScreenWidth=function(){return this.$computeWidth(),this.lineWidgets?Math.max(this.getLineWidgetMaxWidth(),this.screenWidth):this.screenWidth},this.getLineWidgetMaxWidth=function(){if(this.lineWidgetsWidth!=null)return this.lineWidgetsWidth;var e=0;return this.lineWidgets.forEach(function(t){t&&t.screenWidth>e&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){this.$modified=!1;if(this.$useWrapMode)return this.screenWidth=this.$wrapLimit;var t=this.doc.getAllLines(),n=this.$rowLengthCache,r=0,i=0,s=this.$foldData[i],o=s?s.start.row:Infinity,u=t.length;for(var a=0;a<u;a++){if(a>o){a=s.end.row+1;if(a>=u)break;s=this.$foldData[i++],o=s?s.start.row:Infinity}n[a]==null&&(n[a]=this.$getStringScreenWidth(t[a])[0]),n[a]>r&&(r=n[a])}this.screenWidth=r}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;var n=null;for(var r=e.length-1;r!=-1;r--){var i=e[r];i.group==\"doc\"?(this.doc.revertDeltas(i.deltas),n=this.$getUndoSelection(i.deltas,!0,n)):i.deltas.forEach(function(e){this.addFolds(e.folds)},this)}return this.$fromUndo=!1,n&&this.$undoSelect&&!t&&this.selection.setSelectionRange(n),n},this.redoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;var n=null;for(var r=0;r<e.length;r++){var i=e[r];i.group==\"doc\"&&(this.doc.applyDeltas(i.deltas),n=this.$getUndoSelection(i.deltas,!1,n))}return this.$fromUndo=!1,n&&this.$undoSelect&&!t&&this.selection.setSelectionRange(n),n},this.setUndoSelect=function(e){this.$undoSelect=e},this.$getUndoSelection=function(e,t,n){function r(e){return t?e.action!==\"insert\":e.action===\"insert\"}var i=e[0],s,o,u=!1;r(i)?(s=f.fromPoints(i.start,i.end),u=!0):(s=f.fromPoints(i.start,i.start),u=!1);for(var a=1;a<e.length;a++)i=e[a],r(i)?(o=i.start,s.compare(o.row,o.column)==-1&&s.setStart(o),o=i.end,s.compare(o.row,o.column)==1&&s.setEnd(o),u=!0):(o=i.start,s.compare(o.row,o.column)==-1&&(s=f.fromPoints(i.start,i.start)),u=!1);if(n!=null){f.comparePoints(n.start,s.start)===0&&(n.start.column+=s.end.column-s.start.column,n.end.column+=s.end.column-s.start.column);var l=n.compareRange(s);l==1?s.setStart(n.start):l==-1&&s.setEnd(n.end)}return s},this.replace=function(e,t){return this.doc.replace(e,t)},this.moveText=function(e,t,n){var r=this.getTextRange(e),i=this.getFoldsInRange(e),s=f.fromPoints(t,t);if(!n){this.remove(e);var o=e.start.row-e.end.row,u=o?-e.end.column:e.start.column-e.end.column;u&&(s.start.row==e.end.row&&s.start.column>e.end.column&&(s.start.column+=u),s.end.row==e.end.row&&s.end.column>e.end.column&&(s.end.column+=u)),o&&s.start.row>=e.end.row&&(s.start.row+=o,s.end.row+=o)}s.end=this.insert(s.start,r);if(i.length){var a=e.start,l=s.start,o=l.row-a.row,u=l.column-a.column;this.addFolds(i.map(function(e){return e=e.clone(),e.start.row==a.row&&(e.start.column+=u),e.end.row==a.row&&(e.end.column+=u),e.start.row+=o,e.end.row+=o,e}))}return s},this.indentRows=function(e,t,n){n=n.replace(/\\t/g,this.getTabString());for(var r=e;r<=t;r++)this.doc.insertInLine({row:r,column:0},n)},this.outdentRows=function(e){var t=e.collapseRows(),n=new f(0,0,0,0),r=this.getTabSize();for(var i=t.start.row;i<=t.end.row;++i){var s=this.getLine(i);n.start.row=i,n.end.row=i;for(var o=0;o<r;++o)if(s.charAt(o)!=\" \")break;o<r&&s.charAt(o)==\"\t\"?(n.start.column=o,n.end.column=o+1):(n.start.column=0,n.end.column=o),this.remove(n)}},this.$moveLines=function(e,t,n){e=this.getRowFoldStart(e),t=this.getRowFoldEnd(t);if(n<0){var r=this.getRowFoldStart(e+n);if(r<0)return 0;var i=r-e}else if(n>0){var r=this.getRowFoldEnd(t+n);if(r>this.doc.getLength()-1)return 0;var i=r-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var i=t-e+1}var s=new f(e,0,t,Number.MAX_VALUE),o=this.getFoldsInRange(s).map(function(e){return e=e.clone(),e.start.row+=i,e.end.row+=i,e}),u=n==0?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+i,u),o.length&&this.addFolds(o),i},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){t=Math.max(0,t);if(e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0);if(e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal(\"changeWrapMode\")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){if(this.$wrapLimitRange.min!==e||this.$wrapLimitRange.max!==t)this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$useWrapMode&&this._signal(\"changeWrapMode\")},this.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var r=this.$constrainWrapLimit(e,n.min,n.max);return r!=this.$wrapLimit&&r>1?(this.$wrapLimit=r,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal(\"changeWrapLimit\")),!0):!1},this.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,r=e.start,i=e.end,s=r.row,o=i.row,u=o-s,a=null;this.$updating=!0;if(u!=0)if(n===\"remove\"){this[t?\"$wrapData\":\"$rowLengthCache\"].splice(s,u);var f=this.$foldData;a=this.getFoldsInRange(e),this.removeFolds(a);var l=this.getFoldLine(i.row),c=0;if(l){l.addRemoveChars(i.row,i.column,r.column-i.column),l.shiftRow(-u);var h=this.getFoldLine(s);h&&h!==l&&(h.merge(l),l=h),c=f.indexOf(l)+1}for(c;c<f.length;c++){var l=f[c];l.start.row>=i.row&&l.shiftRow(-u)}o=s}else{var p=Array(u);p.unshift(s,0);var d=t?this.$wrapData:this.$rowLengthCache;d.splice.apply(d,p);var f=this.$foldData,l=this.getFoldLine(s),c=0;if(l){var v=l.range.compareInside(r.row,r.column);v==0?(l=l.split(r.row,r.column),l&&(l.shiftRow(u),l.addRemoveChars(o,0,i.column-r.column))):v==-1&&(l.addRemoveChars(s,0,i.column-r.column),l.shiftRow(u)),c=f.indexOf(l)+1}for(c;c<f.length;c++){var l=f[c];l.start.row>=s&&l.shiftRow(u)}}else{u=Math.abs(e.start.column-e.end.column),n===\"remove\"&&(a=this.getFoldsInRange(e),this.removeFolds(a),u=-u);var l=this.getFoldLine(s);l&&l.addRemoveChars(s,r.column,u)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error(\"doc.getLength() and $wrapData.length have to be the same!\"),this.$updating=!1,t?this.$updateWrapData(s,o):this.$updateRowLengthCache(s,o),a},this.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,t){var r=this.doc.getAllLines(),i=this.getTabSize(),s=this.$wrapData,o=this.$wrapLimit,a,f,l=e;t=Math.min(t,r.length-1);while(l<=t)f=this.getFoldLine(l,f),f?(a=[],f.walk(function(e,t,i,s){var o;if(e!=null){o=this.$getDisplayTokens(e,a.length),o[0]=n;for(var f=1;f<o.length;f++)o[f]=u}else o=this.$getDisplayTokens(r[t].substring(s,i),a.length);a=a.concat(o)}.bind(this),f.end.row,r[f.end.row].length+1),s[f.start.row]=this.$computeWrapSplits(a,o,i),l=f.end.row+1):(a=this.$getDisplayTokens(r[l]),s[l]=this.$computeWrapSplits(a,o,i),l++)};var e=1,t=2,n=3,u=4,l=9,p=10,d=11,v=12;this.$computeWrapSplits=function(e,r,i){function g(){var t=0;if(m===0)return t;if(h)for(var n=0;n<e.length;n++){var r=e[n];if(r==p)t+=1;else{if(r!=d){if(r==v)continue;break}t+=i}}return c&&h!==!1&&(t+=i),Math.min(t,m)}function y(t){var n=e.slice(a,t),r=n.length;n.join(\"\").replace(/12/g,function(){r-=1}).replace(/2/g,function(){r-=1}),s.length||(b=g(),s.indent=b),f+=r,s.push(f),a=t}if(e.length==0)return[];var s=[],o=e.length,a=0,f=0,c=this.$wrapAsCode,h=this.$indentedSoftWrap,m=r<=Math.max(2*i,8)||h===!1?0:Math.floor(r/2),b=0;while(o-a>r-b){var w=a+r-b;if(e[w-1]>=p&&e[w]>=p){y(w);continue}if(e[w]==n||e[w]==u){for(w;w!=a-1;w--)if(e[w]==n)break;if(w>a){y(w);continue}w=a+r;for(w;w<e.length;w++)if(e[w]!=u)break;if(w==e.length)break;y(w);continue}var E=Math.max(w-(r-(r>>2)),a-1);while(w>E&&e[w]<n)w--;if(c){while(w>E&&e[w]<n)w--;while(w>E&&e[w]==l)w--}else while(w>E&&e[w]<p)w--;if(w>E){y(++w);continue}w=a+r,e[w]==t&&w--,y(w-b)}return s},this.$getDisplayTokens=function(n,r){var i=[],s;r=r||0;for(var o=0;o<n.length;o++){var u=n.charCodeAt(o);if(u==9){s=this.getScreenTabSize(i.length+r),i.push(d);for(var a=1;a<s;a++)i.push(v)}else u==32?i.push(p):u>39&&u<48||u>57&&u<64?i.push(l):u>=4352&&m(u)?i.push(e,t):i.push(e)}return i},this.$getStringScreenWidth=function(e,t,n){if(t==0)return[0,0];t==null&&(t=Infinity),n=n||0;var r,i;for(i=0;i<e.length;i++){r=e.charCodeAt(i),r==9?n+=this.getScreenTabSize(n):r>=4352&&m(r)?n+=2:n+=1;if(n>t)break}return[n,i]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.getRowLineCount=function(e){return!this.$useWrapMode||!this.$wrapData[e]?1:this.$wrapData[e].length+1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]<t.column?n.indent:0}return 0},this.getScreenLastRowColumn=function(e){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE);return this.documentToScreenColumn(t.row,t.column)},this.getDocumentLastRowColumn=function(e,t){var n=this.documentToScreenRow(e,t);return this.getScreenLastRowColumn(n)},this.getDocumentLastRowColumnPosition=function(e,t){var n=this.documentToScreenRow(e,t);return this.screenToDocumentPosition(n,Number.MAX_VALUE/10)},this.getRowSplitData=function(e){return this.$useWrapMode?this.$wrapData[e]:undefined},this.getScreenTabSize=function(e){return this.$tabSize-e%this.$tabSize},this.screenToDocumentRow=function(e,t){return this.screenToDocumentPosition(e,t).row},this.screenToDocumentColumn=function(e,t){return this.screenToDocumentPosition(e,t).column},this.screenToDocumentPosition=function(e,t){if(e<0)return{row:0,column:0};var n,r=0,i=0,s,o=0,u=0,a=this.$screenRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var o=a[f],r=this.$docRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getLength()-1,p=this.getNextFoldLine(r),d=p?p.start.row:Infinity;while(o<=e){u=this.getRowLength(r);if(o+u>e||r>=h)break;o+=u,r++,r>d&&(r=p.end.row+1,p=this.getNextFoldLine(r,p),d=p?p.start.row:Infinity),c&&(this.$docRowCache.push(r),this.$screenRowCache.push(o))}if(p&&p.start.row<=r)n=this.getFoldDisplayLine(p),r=p.start.row;else{if(o+u<=e||r>h)return{row:h,column:this.getLine(h).length};n=this.getLine(r),p=null}var v=0;if(this.$useWrapMode){var m=this.$wrapData[r];if(m){var g=Math.floor(e-o);s=m[g],g>0&&m.length&&(v=m.indent,i=m[g-1]||m[m.length-1],n=n.substring(i))}}return i+=this.$getStringScreenWidth(n,t-v)[1],this.$useWrapMode&&i>=s&&(i=s-1),p?p.idxToPosition(i):{row:r,column:i}},this.documentToScreenPosition=function(e,t){if(typeof t==\"undefined\")var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var r=0,i=null,s=null;s=this.getFoldAt(e,t,1),s&&(e=s.start.row,t=s.start.column);var o,u=0,a=this.$docRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var u=a[f],r=this.$screenRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getNextFoldLine(u),p=h?h.start.row:Infinity;while(u<e){if(u>=p){o=h.end.row+1;if(o>e)break;h=this.getNextFoldLine(o,h),p=h?h.start.row:Infinity}else o=u+1;r+=this.getRowLength(u),u=o,c&&(this.$docRowCache.push(u),this.$screenRowCache.push(r))}var d=\"\";h&&u>=p?(d=this.getFoldDisplayLine(h,e,t),i=h.start.row):(d=this.getLine(e).substring(0,t),i=e);var v=0;if(this.$useWrapMode){var m=this.$wrapData[i];if(m){var g=0;while(d.length>=m[g])r++,g++;d=d.substring(m[g-1]||0,d.length),v=g>0?m.indent:0}}return{row:r,column:v+this.$getStringScreenWidth(d)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(!this.$useWrapMode){e=this.getLength();var n=this.$foldData;for(var r=0;r<n.length;r++)t=n[r],e-=t.end.row-t.start.row}else{var i=this.$wrapData.length,s=0,r=0,t=this.$foldData[r++],o=t?t.start.row:Infinity;while(s<i){var u=this.$wrapData[s];e+=u?u.length+1:1,s++,s>o&&(s=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:Infinity)}}return this.lineWidgets&&(e+=this.$getWidgetScreenLength()),e},this.$setFontMetrics=function(e){if(!this.$enableVarChar)return;this.$getStringScreenWidth=function(t,n,r){if(n===0)return[0,0];n||(n=Infinity),r=r||0;var i,s;for(s=0;s<t.length;s++){i=t.charAt(s),i===\"\t\"?r+=this.getScreenTabSize(r):r+=e.getCharacterWidth(i);if(r>n)break}return[r,s]}},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()}}).call(p.prototype),e(\"./edit_session/folding\").Folding.call(p.prototype),e(\"./edit_session/bracket_match\").BracketMatch.call(p.prototype),s.defineOptions(p.prototype,\"session\",{wrap:{set:function(e){!e||e==\"off\"?e=!1:e==\"free\"?e=!0:e==\"printMargin\"?e=-1:typeof e==\"string\"&&(e=parseInt(e,10)||!1);if(this.$wrap==e)return;this.$wrap=e;if(!e)this.setUseWrapMode(!1);else{var t=typeof e==\"number\"?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?\"printMargin\":this.getWrapLimitRange().min?this.$wrap:\"free\":\"off\"},handlesSet:!0},wrapMethod:{set:function(e){e=e==\"auto\"?this.$mode.type!=\"text\":e!=\"text\",e!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:\"auto\"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal(\"changeBreakpoint\")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){if(isNaN(e)||this.$tabSize===e)return;this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal(\"changeTabSize\")},initialValue:4,handlesSet:!0},overwrite:{set:function(e){this._signal(\"changeOverwrite\")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId}}}),t.EditSession=p}),ace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"./lib/lang\"),i=e(\"./lib/oop\"),s=e(\"./range\").Range,o=function(){this.$options={}};(function(){this.set=function(e){return i.mixin(this.$options,e),this},this.getOptions=function(){return r.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var r=null;return n.forEach(function(e,n,i){if(!e.start){var o=e.offset+(i||0);r=new s(n,o,n,o+e.length);if(!e.length&&t.start&&t.start.start&&t.skipCurrent!=0&&r.isEqual(t.start))return r=null,!1}else r=e;return!0}),r},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),o=[],u=t.re;if(t.$isMultiLine){var a=u.length,f=i.length-a,l;e:for(var c=u.offset||0;c<=f;c++){for(var h=0;h<a;h++)if(i[c+h].search(u[h])==-1)continue e;var p=i[c],d=i[c+a-1],v=p.length-p.match(u[0])[0].length,m=d.match(u[a-1])[0].length;if(l&&l.end.row===c&&l.end.column>v)continue;o.push(l=new s(c,v,c+a-1,m)),a>2&&(c=c+a-2)}}else for(var g=0;g<i.length;g++){var y=r.getMatchOffsets(i[g],u);for(var h=0;h<y.length;h++){var b=y[h];o.push(new s(g,b.offset,g,b.offset+b.length))}}if(n){var w=n.start.column,E=n.start.column,g=0,h=o.length-1;while(g<h&&o[g].start.column<w&&o[g].start.row==n.start.row)g++;while(g<h&&o[h].end.column>E&&o[h].end.row==n.end.row)h--;o=o.slice(g,h+1);for(g=0,h=o.length;g<h;g++)o[g].start.row+=n.start.row,o[g].end.row+=n.start.row}return o},this.replace=function(e,t){var n=this.$options,r=this.$assembleRegExp(n);if(n.$isMultiLine)return t;if(!r)return;var i=r.exec(e);if(!i||i[0].length!=e.length)return null;t=e.replace(r,t);if(n.preserveCase){t=t.split(\"\");for(var s=Math.min(e.length,e.length);s--;){var o=e[s];o&&o.toLowerCase()!=o?t[s]=t[s].toUpperCase():t[s]=t[s].toLowerCase()}t=t.join(\"\")}return t},this.$matchIterator=function(e,t){var n=this.$assembleRegExp(t);if(!n)return!1;var i;if(t.$isMultiLine)var o=n.length,u=function(t,r,u){var a=t.search(n[0]);if(a==-1)return;for(var f=1;f<o;f++){t=e.getLine(r+f);if(t.search(n[f])==-1)return}var l=t.match(n[o-1])[0].length,c=new s(r,a,r+o-1,l);n.offset==1?(c.start.row--,c.start.column=Number.MAX_VALUE):u&&(c.start.column+=u);if(i(c))return!0};else if(t.backwards)var u=function(e,t,s){var o=r.getMatchOffsets(e,n);for(var u=o.length-1;u>=0;u--)if(i(o[u],t,s))return!0};else var u=function(e,t,s){var o=r.getMatchOffsets(e,n);for(var u=0;u<o.length;u++)if(i(o[u],t,s))return!0};var a=this.$lineIterator(e,t);return{forEach:function(e){i=e,a.forEach(u)}}},this.$assembleRegExp=function(e,t){if(e.needle instanceof RegExp)return e.re=e.needle;var n=e.needle;if(!e.needle)return e.re=!1;e.regExp||(n=r.escapeRegExp(n)),e.wholeWord&&(n=\"\\\\b\"+n+\"\\\\b\");var i=e.caseSensitive?\"gm\":\"gmi\";e.$isMultiLine=!t&&/[\\n\\r]/.test(n);if(e.$isMultiLine)return e.re=this.$assembleMultilineRegExp(n,i);try{var s=new RegExp(n,i)}catch(o){s=!1}return e.re=s},this.$assembleMultilineRegExp=function(e,t){var n=e.replace(/\\r\\n|\\r|\\n/g,\"$\\n^\").split(\"\\n\"),r=[];for(var i=0;i<n.length;i++)try{r.push(new RegExp(n[i],t))}catch(s){return!1}return n[0]==\"\"?(r.shift(),r.offset=1):r.offset=0,r},this.$lineIterator=function(e,t){var n=t.backwards==1,r=t.skipCurrent!=0,i=t.range,s=t.start;s||(s=i?i[n?\"end\":\"start\"]:e.selection.getRange()),s.start&&(s=s[r!=n?\"end\":\"start\"]);var o=i?i.start.row:0,u=i?i.end.row:e.getLength()-1,a=n?function(n){var r=s.row,i=e.getLine(r).substring(0,s.column);if(n(i,r))return;for(r--;r>=o;r--)if(n(e.getLine(r),r))return;if(t.wrap==0)return;for(r=u,o=s.row;r>=o;r--)if(n(e.getLine(r),r))return}:function(n){var r=s.row,i=e.getLine(r).substr(s.column);if(n(i,r,s.column))return;for(r+=1;r<=u;r++)if(n(e.getLine(r),r))return;if(t.wrap==0)return;for(r=o,u=s.row;r<=u;r++)if(n(e.getLine(r),r))return};return{forEach:a}}}).call(o.prototype),t.Search=o}),ace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"],function(e,t,n){\"use strict\";function o(e,t){this.platform=t||(i.isMac?\"mac\":\"win\"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function u(e,t){o.call(this,e,t),this.$singleCommand=!1}var r=e(\"../lib/keys\"),i=e(\"../lib/useragent\"),s=r.KEY_MODS;u.prototype=o.prototype,function(){function e(e){return typeof e==\"object\"&&e.bindKey&&e.bindKey.position||0}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var n=e&&(typeof e==\"string\"?e:e.name);e=this.commands[n],t||delete this.commands[n];var r=this.commandKeyBinding;for(var i in r){var s=r[i];if(s==e)delete r[i];else if(Array.isArray(s)){var o=s.indexOf(e);o!=-1&&(s.splice(o,1),s.length==1&&(r[i]=s[0]))}}},this.bindKey=function(e,t,n){typeof e==\"object\"&&e&&(n==undefined&&(n=e.position),e=e[this.platform]);if(!e)return;if(typeof t==\"function\")return this.addCommand({exec:t,bindKey:e,name:t.name||e});e.split(\"|\").forEach(function(e){var r=\"\";if(e.indexOf(\" \")!=-1){var i=e.split(/\\s+/);e=i.pop(),i.forEach(function(e){var t=this.parseKeys(e),n=s[t.hashId]+t.key;r+=(r?\" \":\"\")+n,this._addCommandToBinding(r,\"chainKeys\")},this),r+=\" \"}var o=this.parseKeys(e),u=s[o.hashId]+o.key;this._addCommandToBinding(r+u,t,n)},this)},this._addCommandToBinding=function(t,n,r){var i=this.commandKeyBinding,s;if(!n)delete i[t];else if(!i[t]||this.$singleCommand)i[t]=n;else{Array.isArray(i[t])?(s=i[t].indexOf(n))!=-1&&i[t].splice(s,1):i[t]=[i[t]],typeof r!=\"number\"&&(r||n.isDefault?r=-100:r=e(n));var o=i[t];for(s=0;s<o.length;s++){var u=o[s],a=e(u);if(a>r)break}o.splice(s,0,n)}},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var n=e[t];if(!n)return;if(typeof n==\"string\")return this.bindKey(n,t);typeof n==\"function\"&&(n={exec:n});if(typeof n!=\"object\")return;n.name||(n.name=t),this.addCommand(n)},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function(e){return e}),n=t.pop(),i=r[n];if(r.FUNCTION_KEYS[i])n=r.FUNCTION_KEYS[i].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(t.length==1&&t[0]==\"shift\")return{key:n.toUpperCase(),hashId:-1}}var s=0;for(var o=t.length;o--;){var u=r.KEY_MODS[t[o]];if(u==null)return typeof console!=\"undefined\"&&console.error(\"invalid modifier \"+t[o]+\" in \"+e),!1;s|=u}return{key:n,hashId:s}},this.findKeyCommand=function(t,n){var r=s[t]+n;return this.commandKeyBinding[r]},this.handleKeyboard=function(e,t,n,r){if(r<0)return;var i=s[t]+n,o=this.commandKeyBinding[i];e.$keyChain&&(e.$keyChain+=\" \"+i,o=this.commandKeyBinding[e.$keyChain]||o);if(o)if(o==\"chainKeys\"||o[o.length-1]==\"chainKeys\")return e.$keyChain=e.$keyChain||i,{command:\"null\"};if(e.$keyChain)if(!!t&&t!=4||n.length!=1){if(t==-1||r>0)e.$keyChain=\"\"}else e.$keyChain=e.$keyChain.slice(0,-i.length-1);return{command:o}},this.getStatusText=function(e,t){return t.$keyChain||\"\"}}.call(o.prototype),t.HashHandler=o,t.MultiHashHandler=u}),ace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../keyboard/hash_handler\").MultiHashHandler,s=e(\"../lib/event_emitter\").EventEmitter,o=function(e,t){i.call(this,t,e),this.byName=this.commands,this.setDefaultHandler(\"exec\",function(e){return e.command.exec(e.editor,e.args||{})})};r.inherits(o,i),function(){r.implement(this,s),this.exec=function(e,t,n){if(Array.isArray(e)){for(var r=e.length;r--;)if(this.exec(e[r],t,n))return!0;return!1}typeof e==\"string\"&&(e=this.commands[e]);if(!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit(\"exec\",i),this._signal(\"afterExec\",i),i.returnValue===!1?!1:!0},this.toggleRecording=function(e){if(this.$inReplay)return;return e&&e._emit(\"changeStatus\"),this.recording?(this.macro.pop(),this.removeEventListener(\"exec\",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on(\"exec\",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(this.$inReplay||!this.macro)return;if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t==\"string\"?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}},this.trimMacro=function(e){return e.map(function(e){return typeof e[0]!=\"string\"&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(o.prototype),t.CommandManager=o}),ace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"],function(e,t,n){\"use strict\";function o(e,t){return{win:e,mac:t}}var r=e(\"../lib/lang\"),i=e(\"../config\"),s=e(\"../range\").Range;t.commands=[{name:\"showSettingsMenu\",bindKey:o(\"Ctrl-,\",\"Command-,\"),exec:function(e){i.loadModule(\"ace/ext/settings_menu\",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:\"goToNextError\",bindKey:o(\"Alt-E\",\"Ctrl-E\"),exec:function(e){i.loadModule(\"ace/ext/error_marker\",function(t){t.showErrorMarker(e,1)})},scrollIntoView:\"animate\",readOnly:!0},{name:\"goToPreviousError\",bindKey:o(\"Alt-Shift-E\",\"Ctrl-Shift-E\"),exec:function(e){i.loadModule(\"ace/ext/error_marker\",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:\"animate\",readOnly:!0},{name:\"selectall\",bindKey:o(\"Ctrl-A\",\"Command-A\"),exec:function(e){e.selectAll()},readOnly:!0},{name:\"centerselection\",bindKey:o(null,\"Ctrl-L\"),exec:function(e){e.centerSelection()},readOnly:!0},{name:\"gotoline\",bindKey:o(\"Ctrl-L\",\"Command-L\"),exec:function(e){var t=parseInt(prompt(\"Enter line number:\"),10);isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:\"fold\",bindKey:o(\"Alt-L|Ctrl-F1\",\"Command-Alt-L|Command-F1\"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:\"forEach\",scrollIntoView:\"center\",readOnly:!0},{name:\"unfold\",bindKey:o(\"Alt-Shift-L|Ctrl-Shift-F1\",\"Command-Alt-Shift-L|Command-Shift-F1\"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:\"forEach\",scrollIntoView:\"center\",readOnly:!0},{name:\"toggleFoldWidget\",bindKey:o(\"F2\",\"F2\"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:\"forEach\",scrollIntoView:\"center\",readOnly:!0},{name:\"toggleParentFoldWidget\",bindKey:o(\"Alt-F2\",\"Alt-F2\"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:\"forEach\",scrollIntoView:\"center\",readOnly:!0},{name:\"foldall\",bindKey:o(null,\"Ctrl-Command-Option-0\"),exec:function(e){e.session.foldAll()},scrollIntoView:\"center\",readOnly:!0},{name:\"foldOther\",bindKey:o(\"Alt-0\",\"Command-Option-0\"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:\"center\",readOnly:!0},{name:\"unfoldall\",bindKey:o(\"Alt-Shift-0\",\"Command-Option-Shift-0\"),exec:function(e){e.session.unfold()},scrollIntoView:\"center\",readOnly:!0},{name:\"findnext\",bindKey:o(\"Ctrl-K\",\"Command-G\"),exec:function(e){e.findNext()},multiSelectAction:\"forEach\",scrollIntoView:\"center\",readOnly:!0},{name:\"findprevious\",bindKey:o(\"Ctrl-Shift-K\",\"Command-Shift-G\"),exec:function(e){e.findPrevious()},multiSelectAction:\"forEach\",scrollIntoView:\"center\",readOnly:!0},{name:\"selectOrFindNext\",bindKey:o(\"Alt-K\",\"Ctrl-G\"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:\"selectOrFindPrevious\",bindKey:o(\"Alt-Shift-K\",\"Ctrl-Shift-G\"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:\"find\",bindKey:o(\"Ctrl-F\",\"Command-F\"),exec:function(e){i.loadModule(\"ace/ext/searchbox\",function(t){t.Search(e)})},readOnly:!0},{name:\"overwrite\",bindKey:\"Insert\",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:\"selecttostart\",bindKey:o(\"Ctrl-Shift-Home\",\"Command-Shift-Up\"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:\"forEach\",readOnly:!0,scrollIntoView:\"animate\",aceCommandGroup:\"fileJump\"},{name:\"gotostart\",bindKey:o(\"Ctrl-Home\",\"Command-Home|Command-Up\"),exec:function(e){e.navigateFileStart()},multiSelectAction:\"forEach\",readOnly:!0,scrollIntoView:\"animate\",aceCommandGroup:\"fileJump\"},{name:\"selectup\",bindKey:o(\"Shift-Up\",\"Shift-Up\"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"golineup\",bindKey:o(\"Up\",\"Up|Ctrl-P\"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selecttoend\",bindKey:o(\"Ctrl-Shift-End\",\"Command-Shift-Down\"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:\"forEach\",readOnly:!0,scrollIntoView:\"animate\",aceCommandGroup:\"fileJump\"},{name:\"gotoend\",bindKey:o(\"Ctrl-End\",\"Command-End|Command-Down\"),exec:function(e){e.navigateFileEnd()},multiSelectAction:\"forEach\",readOnly:!0,scrollIntoView:\"animate\",aceCommandGroup:\"fileJump\"},{name:\"selectdown\",bindKey:o(\"Shift-Down\",\"Shift-Down\"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"golinedown\",bindKey:o(\"Down\",\"Down|Ctrl-N\"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectwordleft\",bindKey:o(\"Ctrl-Shift-Left\",\"Option-Shift-Left\"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"gotowordleft\",bindKey:o(\"Ctrl-Left\",\"Option-Left\"),exec:function(e){e.navigateWordLeft()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selecttolinestart\",bindKey:o(\"Alt-Shift-Left\",\"Command-Shift-Left\"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"gotolinestart\",bindKey:o(\"Alt-Left|Home\",\"Command-Left|Home|Ctrl-A\"),exec:function(e){e.navigateLineStart()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectleft\",bindKey:o(\"Shift-Left\",\"Shift-Left\"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"gotoleft\",bindKey:o(\"Left\",\"Left|Ctrl-B\"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectwordright\",bindKey:o(\"Ctrl-Shift-Right\",\"Option-Shift-Right\"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"gotowordright\",bindKey:o(\"Ctrl-Right\",\"Option-Right\"),exec:function(e){e.navigateWordRight()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selecttolineend\",bindKey:o(\"Alt-Shift-Right\",\"Command-Shift-Right\"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"gotolineend\",bindKey:o(\"Alt-Right|End\",\"Command-Right|End|Ctrl-E\"),exec:function(e){e.navigateLineEnd()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectright\",bindKey:o(\"Shift-Right\",\"Shift-Right\"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"gotoright\",bindKey:o(\"Right\",\"Right|Ctrl-F\"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectpagedown\",bindKey:\"Shift-PageDown\",exec:function(e){e.selectPageDown()},readOnly:!0},{name:\"pagedown\",bindKey:o(null,\"Option-PageDown\"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:\"gotopagedown\",bindKey:o(\"PageDown\",\"PageDown|Ctrl-V\"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:\"selectpageup\",bindKey:\"Shift-PageUp\",exec:function(e){e.selectPageUp()},readOnly:!0},{name:\"pageup\",bindKey:o(null,\"Option-PageUp\"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:\"gotopageup\",bindKey:\"PageUp\",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:\"scrollup\",bindKey:o(\"Ctrl-Up\",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:\"scrolldown\",bindKey:o(\"Ctrl-Down\",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:\"selectlinestart\",bindKey:\"Shift-Home\",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectlineend\",bindKey:\"Shift-End\",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"togglerecording\",bindKey:o(\"Ctrl-Alt-E\",\"Command-Option-E\"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:\"replaymacro\",bindKey:o(\"Ctrl-Shift-E\",\"Command-Shift-E\"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:\"jumptomatching\",bindKey:o(\"Ctrl-P\",\"Ctrl-P\"),exec:function(e){e.jumpToMatching()},multiSelectAction:\"forEach\",scrollIntoView:\"animate\",readOnly:!0},{name:\"selecttomatching\",bindKey:o(\"Ctrl-Shift-P\",\"Ctrl-Shift-P\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:\"forEach\",scrollIntoView:\"animate\",readOnly:!0},{name:\"expandToMatching\",bindKey:o(\"Ctrl-Shift-M\",\"Ctrl-Shift-M\"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:\"forEach\",scrollIntoView:\"animate\",readOnly:!0},{name:\"passKeysToBrowser\",bindKey:o(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:\"copy\",exec:function(e){},readOnly:!0},{name:\"cut\",exec:function(e){var t=e.getSelectionRange();e._emit(\"cut\",t),e.selection.isEmpty()||(e.session.remove(t),e.clearSelection())},scrollIntoView:\"cursor\",multiSelectAction:\"forEach\"},{name:\"paste\",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:\"cursor\"},{name:\"removeline\",bindKey:o(\"Ctrl-D\",\"Command-D\"),exec:function(e){e.removeLines()},scrollIntoView:\"cursor\",multiSelectAction:\"forEachLine\"},{name:\"duplicateSelection\",bindKey:o(\"Ctrl-Shift-D\",\"Command-Shift-D\"),exec:function(e){e.duplicateSelection()},scrollIntoView:\"cursor\",multiSelectAction:\"forEach\"},{name:\"sortlines\",bindKey:o(\"Ctrl-Alt-S\",\"Command-Alt-S\"),exec:function(e){e.sortLines()},scrollIntoView:\"selection\",multiSelectAction:\"forEachLine\"},{name:\"togglecomment\",bindKey:o(\"Ctrl-/\",\"Command-/\"),exec:function(e){e.toggleCommentLines()},multiSelectAction:\"forEachLine\",scrollIntoView:\"selectionPart\"},{name:\"toggleBlockComment\",bindKey:o(\"Ctrl-Shift-/\",\"Command-Shift-/\"),exec:function(e){e.toggleBlockComment()},multiSelectAction:\"forEach\",scrollIntoView:\"selectionPart\"},{name:\"modifyNumberUp\",bindKey:o(\"Ctrl-Shift-Up\",\"Alt-Shift-Up\"),exec:function(e){e.modifyNumber(1)},scrollIntoView:\"cursor\",multiSelectAction:\"forEach\"},{name:\"modifyNumberDown\",bindKey:o(\"Ctrl-Shift-Down\",\"Alt-Shift-Down\"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:\"cursor\",multiSelectAction:\"forEach\"},{name:\"replace\",bindKey:o(\"Ctrl-H\",\"Command-Option-F\"),exec:function(e){i.loadModule(\"ace/ext/searchbox\",function(t){t.Search(e,!0)})}},{name:\"undo\",bindKey:o(\"Ctrl-Z\",\"Command-Z\"),exec:function(e){e.undo()}},{name:\"redo\",bindKey:o(\"Ctrl-Shift-Z|Ctrl-Y\",\"Command-Shift-Z|Command-Y\"),exec:function(e){e.redo()}},{name:\"copylinesup\",bindKey:o(\"Alt-Shift-Up\",\"Command-Option-Up\"),exec:function(e){e.copyLinesUp()},scrollIntoView:\"cursor\"},{name:\"movelinesup\",bindKey:o(\"Alt-Up\",\"Option-Up\"),exec:function(e){e.moveLinesUp()},scrollIntoView:\"cursor\"},{name:\"copylinesdown\",bindKey:o(\"Alt-Shift-Down\",\"Command-Option-Down\"),exec:function(e){e.copyLinesDown()},scrollIntoView:\"cursor\"},{name:\"movelinesdown\",bindKey:o(\"Alt-Down\",\"Option-Down\"),exec:function(e){e.moveLinesDown()},scrollIntoView:\"cursor\"},{name:\"del\",bindKey:o(\"Delete\",\"Delete|Ctrl-D|Shift-Delete\"),exec:function(e){e.remove(\"right\")},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"backspace\",bindKey:o(\"Shift-Backspace|Backspace\",\"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"),exec:function(e){e.remove(\"left\")},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"cut_or_delete\",bindKey:o(\"Shift-Delete\",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove(\"left\")},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"removetolinestart\",bindKey:o(\"Alt-Backspace\",\"Command-Backspace\"),exec:function(e){e.removeToLineStart()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"removetolineend\",bindKey:o(\"Alt-Delete\",\"Ctrl-K\"),exec:function(e){e.removeToLineEnd()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"removewordleft\",bindKey:o(\"Ctrl-Backspace\",\"Alt-Backspace|Ctrl-Alt-Backspace\"),exec:function(e){e.removeWordLeft()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"removewordright\",bindKey:o(\"Ctrl-Delete\",\"Alt-Delete\"),exec:function(e){e.removeWordRight()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"outdent\",bindKey:o(\"Shift-Tab\",\"Shift-Tab\"),exec:function(e){e.blockOutdent()},multiSelectAction:\"forEach\",scrollIntoView:\"selectionPart\"},{name:\"indent\",bindKey:o(\"Tab\",\"Tab\"),exec:function(e){e.indent()},multiSelectAction:\"forEach\",scrollIntoView:\"selectionPart\"},{name:\"blockoutdent\",bindKey:o(\"Ctrl-[\",\"Ctrl-[\"),exec:function(e){e.blockOutdent()},multiSelectAction:\"forEachLine\",scrollIntoView:\"selectionPart\"},{name:\"blockindent\",bindKey:o(\"Ctrl-]\",\"Ctrl-]\"),exec:function(e){e.blockIndent()},multiSelectAction:\"forEachLine\",scrollIntoView:\"selectionPart\"},{name:\"insertstring\",exec:function(e,t){e.insert(t)},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"inserttext\",exec:function(e,t){e.insert(r.stringRepeat(t.text||\"\",t.times||1))},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"splitline\",bindKey:o(null,\"Ctrl-O\"),exec:function(e){e.splitLine()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"transposeletters\",bindKey:o(\"Ctrl-T\",\"Ctrl-T\"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:\"cursor\"},{name:\"touppercase\",bindKey:o(\"Ctrl-U\",\"Ctrl-U\"),exec:function(e){e.toUpperCase()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"tolowercase\",bindKey:o(\"Ctrl-Shift-U\",\"Ctrl-Shift-U\"),exec:function(e){e.toLowerCase()},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\"},{name:\"expandtoline\",bindKey:o(\"Ctrl-Shift-L\",\"Command-Shift-L\"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:\"forEach\",scrollIntoView:\"cursor\",readOnly:!0},{name:\"joinlines\",bindKey:o(null,null),exec:function(e){var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(n.row).length,u=e.session.doc.getTextRange(e.selection.getRange()),a=u.replace(/\\n\\s*/,\" \").length,f=e.session.doc.getLine(n.row);for(var l=n.row+1;l<=i.row+1;l++){var c=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(l)));c.length!==0&&(c=\" \"+c),f+=c}i.row+1<e.session.doc.getLength()-1&&(f+=e.session.doc.getNewLineCharacter()),e.clearSelection(),e.session.doc.replace(new s(n.row,0,i.row+2,0),f),a>0?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(o=e.session.doc.getLine(n.row).length>o?o+1:o,e.selection.moveCursorTo(n.row,o))},multiSelectAction:\"forEach\",readOnly:!0},{name:\"invertSelection\",bindKey:o(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,r=e.selection.rangeList.ranges,i=[];r.length<1&&(r=[e.selection.getRange()]);for(var o=0;o<r.length;o++)o==r.length-1&&(r[o].end.row!==t||r[o].end.column!==n)&&i.push(new s(r[o].end.row,r[o].end.column,t,n)),o===0?(r[o].start.row!==0||r[o].start.column!==0)&&i.push(new s(0,0,r[o].start.row,r[o].start.column)):i.push(new s(r[o-1].end.row,r[o-1].end.column,r[o].start.row,r[o].start.column));e.exitMultiSelectMode(),e.clearSelection();for(var o=0;o<i.length;o++)e.selection.addRange(i[o],!1)},readOnly:!0,scrollIntoView:\"none\"}]}),ace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";e(\"./lib/fixoldbrowsers\");var r=e(\"./lib/oop\"),i=e(\"./lib/dom\"),s=e(\"./lib/lang\"),o=e(\"./lib/useragent\"),u=e(\"./keyboard/textinput\").TextInput,a=e(\"./mouse/mouse_handler\").MouseHandler,f=e(\"./mouse/fold_handler\").FoldHandler,l=e(\"./keyboard/keybinding\").KeyBinding,c=e(\"./edit_session\").EditSession,h=e(\"./search\").Search,p=e(\"./range\").Range,d=e(\"./lib/event_emitter\").EventEmitter,v=e(\"./commands/command_manager\").CommandManager,m=e(\"./commands/default_commands\").commands,g=e(\"./config\"),y=e(\"./token_iterator\").TokenIterator,b=function(e,t){var n=e.getContainerElement();this.container=n,this.renderer=e,this.commands=new v(o.isMac?\"mac\":\"win\",m),this.textInput=new u(e.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.keyBinding=new l(this),this.$mouseHandler=new a(this),new f(this),this.$blockScrolling=0,this.$search=(new h).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on(\"exec\",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal(\"input\",{}),this.session&&this.session.bgTokenizer&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on(\"change\",function(e,t){t._$emitInputEvent.schedule(31)}),this.setSession(t||new c(\"\")),g.resetOptions(this),g._signal(\"editor\",this)};(function(){r.implement(this,d),this.$initOperationListeners=function(){function e(e){return e[e.length-1]}this.selections=[],this.commands.on(\"exec\",this.startOperation.bind(this),!0),this.commands.on(\"afterExec\",this.endOperation.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this)),this.on(\"change\",function(){this.curOp||this.startOperation(),this.curOp.docChanged=!0}.bind(this),!0),this.on(\"changeSelection\",function(){this.curOp||this.startOperation(),this.curOp.selectionChanged=!0}.bind(this),!0)},this.curOp=null,this.prevOp={},this.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.command.name&&this.curOp.command.scrollIntoView!==undefined&&this.$blockScrolling++},this.endOperation=function(e){if(this.curOp){if(e&&e.returnValue===!1)return this.curOp=null;this._signal(\"beforeEndOperation\");var t=this.curOp.command;t.name&&this.$blockScrolling>0&&this.$blockScrolling--;var n=t&&t.scrollIntoView;if(n){switch(n){case\"center-animate\":n=\"animate\";case\"center\":this.renderer.scrollCursorIntoView(null,.5);break;case\"animate\":case\"cursor\":this.renderer.scrollCursorIntoView();break;case\"selectionPart\":var r=this.selection.getRange(),i=this.renderer.layerConfig;(r.start.row>=i.lastRow||r.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:}n==\"animate\"&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=[\"backspace\",\"del\",\"insertstring\"],this.$historyTracker=function(e){if(!this.$mergeUndoDeltas)return;var t=this.prevOp,n=this.$mergeableCommands,r=t.command&&e.command.name==t.command.name;if(e.command.name==\"insertstring\"){var i=e.args;this.mergeNextCommand===undefined&&(this.mergeNextCommand=!0),r=r&&this.mergeNextCommand&&(!/\\s/.test(i)||/\\s/.test(t.args)),this.mergeNextCommand=!0}else r=r&&n.indexOf(e.command.name)!==-1;this.$mergeUndoDeltas!=\"always\"&&Date.now()-this.sequenceStartTime>2e3&&(r=!1),r?this.session.mergeUndoDeltas=!0:n.indexOf(e.command.name)!==-1&&(this.sequenceStartTime=Date.now())},this.setKeyboardHandler=function(e,t){if(e&&typeof e==\"string\"){this.$keybindingId=e;var n=this;g.loadModule([\"keybinding\",e],function(r){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(r&&r.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session==e)return;this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off(\"change\",this.$onDocumentChange),this.session.off(\"changeMode\",this.$onChangeMode),this.session.off(\"tokenizerUpdate\",this.$onTokenizerUpdate),this.session.off(\"changeTabSize\",this.$onChangeTabSize),this.session.off(\"changeWrapLimit\",this.$onChangeWrapLimit),this.session.off(\"changeWrapMode\",this.$onChangeWrapMode),this.session.off(\"changeFold\",this.$onChangeFold),this.session.off(\"changeFrontMarker\",this.$onChangeFrontMarker),this.session.off(\"changeBackMarker\",this.$onChangeBackMarker),this.session.off(\"changeBreakpoint\",this.$onChangeBreakpoint),this.session.off(\"changeAnnotation\",this.$onChangeAnnotation),this.session.off(\"changeOverwrite\",this.$onCursorChange),this.session.off(\"changeScrollTop\",this.$onScrollTopChange),this.session.off(\"changeScrollLeft\",this.$onScrollLeftChange);var n=this.session.getSelection();n.off(\"changeCursor\",this.$onCursorChange),n.off(\"changeSelection\",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on(\"change\",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on(\"changeMode\",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on(\"tokenizerUpdate\",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on(\"changeTabSize\",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on(\"changeWrapLimit\",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on(\"changeWrapMode\",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on(\"changeFold\",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on(\"changeFrontMarker\",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on(\"changeBackMarker\",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on(\"changeBreakpoint\",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on(\"changeAnnotation\",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on(\"changeOverwrite\",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on(\"changeScrollTop\",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on(\"changeScrollLeft\",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on(\"changeCursor\",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on(\"changeSelection\",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal(\"changeSession\",{session:e,oldSession:t}),this.curOp=null,t&&t._signal(\"changeEditor\",{oldEditor:this}),e&&e._signal(\"changeEditor\",{editor:this})},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?t==1?this.navigateFileEnd():t==-1&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption(\"fontSize\")||i.computedStyle(this.container,\"fontSize\")},this.setFontSize=function(e){this.setOption(\"fontSize\",e)},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(this.$highlightPending)return;var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=t.findMatchingBracket(e.getCursorPosition());if(n)var r=new p(n.row,n.column,n.row,n.column+1);else if(t.$mode.getMatching)var r=t.$mode.getMatching(e.session);r&&(t.$bracketHighlight=t.addMarker(r,\"ace_bracket\",\"text\"))},50)},this.$highlightTags=function(){if(this.$highlightTagPending)return;var e=this;this.$highlightTagPending=!0,setTimeout(function(){e.$highlightTagPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=e.getCursorPosition(),r=new y(e.session,n.row,n.column),i=r.getCurrentToken();if(!i||!/\\b(?:tag-open|tag-name)/.test(i.type)){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}if(i.type.indexOf(\"tag-open\")!=-1){i=r.stepForward();if(!i)return}var s=i.value,o=0,u=r.stepBackward();if(u.value==\"<\"){do u=i,i=r.stepForward(),i&&i.value===s&&i.type.indexOf(\"tag-name\")!==-1&&(u.value===\"<\"?o++:u.value===\"</\"&&o--);while(i&&o>=0)}else{do i=u,u=r.stepBackward(),i&&i.value===s&&i.type.indexOf(\"tag-name\")!==-1&&(u.value===\"<\"?o++:u.value===\"</\"&&o--);while(u&&o<=0);r.stepForward()}if(!i){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}var a=r.getCurrentTokenRow(),f=r.getCurrentTokenColumn(),l=new p(a,f,a,f+i.value.length);t.$tagHighlight&&l.compareRange(t.$backMarkers[t.$tagHighlight].range)!==0&&(t.removeMarker(t.$tagHighlight),t.$tagHighlight=null),l&&!t.$tagHighlight&&(t.$tagHighlight=t.addMarker(l,\"ace_bracket\",\"text\"))},50)},this.focus=function(){var e=this;setTimeout(function(){e.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(e){if(this.$isFocused)return;this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit(\"focus\",e)},this.onBlur=function(e){if(!this.$isFocused)return;this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit(\"blur\",e)},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:Infinity;this.renderer.updateLines(e.start.row,n,t),this._signal(\"change\",e),this.$cursorChange(),this.$updateHighlightActiveLine()},this.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$blockScrolling||(g.warn(\"Automatically scrolling cursor into view after selection change\",\"this will be disabled in the next version\",\"set editor.$blockScrolling = Infinity to disable this message\"),this.renderer.scrollCursorIntoView()),this.$highlightBrackets(),this.$highlightTags(),this.$updateHighlightActiveLine(),this._signal(\"changeSelection\")},this.$updateHighlightActiveLine=function(){var e=this.getSession(),t;if(this.$highlightActiveLine){if(this.$selectionStyle!=\"line\"||!this.selection.isMultiLine())t=this.getCursorPosition();this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(t=!1)}if(e.$highlightLineMarker&&!t)e.removeMarker(e.$highlightLineMarker.id),e.$highlightLineMarker=null;else if(!e.$highlightLineMarker&&t){var n=new p(t.row,t.column,t.row,Infinity);n.id=e.addMarker(n,\"ace_active-line\",\"screenLine\"),e.$highlightLineMarker=n}else t&&(e.$highlightLineMarker.start.row=t.row,e.$highlightLineMarker.end.row=t.row,e.$highlightLineMarker.start.column=t.column,e._signal(\"changeBackMarker\"))},this.onSelectionChange=function(e){var t=this.session;t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null;if(!this.selection.isEmpty()){var n=this.selection.getRange(),r=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,\"ace_selection\",r)}else this.$updateHighlightActiveLine();var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal(\"changeSelection\")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(t.isEmpty()||t.isMultiLine())return;var n=t.start.column-1,r=t.end.column+1,i=e.getLine(t.start.row),s=i.length,o=i.substring(Math.max(n,0),Math.min(r,s));if(n>=0&&/^[\\w\\d]/.test(o)||r<=s&&/[\\w\\d]$/.test(o))return;o=i.substring(t.start.column,t.end.column);if(!/^[\\w\\d]+$/.test(o))return;var u=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:o});return u},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit(\"changeMode\",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText();return this._signal(\"copy\",e),e},this.onCopy=function(){this.commands.exec(\"copy\",this)},this.onCut=function(){this.commands.exec(\"cut\",this)},this.onPaste=function(e,t){var n={text:e,event:t};this.commands.exec(\"paste\",this,n)},this.$handlePaste=function(e){typeof e==\"string\"&&(e={text:e}),this._signal(\"paste\",e);var t=e.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(t);else{var n=t.split(/\\r\\n|\\r|\\n/),r=this.selection.rangeList.ranges;if(n.length>r.length||n.length<2||!n[1])return this.commands.exec(\"insertstring\",this,t);for(var i=r.length;i--;){var s=r[i];s.isEmpty()||this.session.remove(s),this.session.insert(s.start,n[i])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var n=this.session,r=n.getMode(),i=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var s=r.transformAction(n.getState(i.row),\"insertion\",this,n,e);s&&(e!==s.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=s.text)}e==\"\t\"&&(e=this.session.getTabString());if(!this.selection.isEmpty()){var o=this.getSelectionRange();i=this.session.remove(o),this.clearSelection()}else if(this.session.getOverwrite()){var o=new p.fromPoints(i,i);o.end.column+=e.length,this.session.remove(o)}if(e==\"\\n\"||e==\"\\r\\n\"){var u=n.getLine(i.row);if(i.column>u.search(/\\S|$/)){var a=u.substr(i.column).search(/\\S|$/);n.doc.removeInLine(i.row,i.column,i.column+a)}}this.clearSelection();var f=i.column,l=n.getState(i.row),u=n.getLine(i.row),c=r.checkOutdent(l,u,e),h=n.insert(i,e);s&&s.selection&&(s.selection.length==2?this.selection.setSelectionRange(new p(i.row,f+s.selection[0],i.row,f+s.selection[1])):this.selection.setSelectionRange(new p(i.row+s.selection[0],s.selection[1],i.row+s.selection[2],s.selection[3])));if(n.getDocument().isNewLine(e)){var d=r.getNextLineIndent(l,u.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},d)}c&&r.autoOutdent(l,n,i.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,n){this.keyBinding.onCommandKey(e,t,n)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption(\"scrollSpeed\",e)},this.getScrollSpeed=function(){return this.getOption(\"scrollSpeed\")},this.setDragDelay=function(e){this.setOption(\"dragDelay\",e)},this.getDragDelay=function(){return this.getOption(\"dragDelay\")},this.setSelectionStyle=function(e){this.setOption(\"selectionStyle\",e)},this.getSelectionStyle=function(){return this.getOption(\"selectionStyle\")},this.setHighlightActiveLine=function(e){this.setOption(\"highlightActiveLine\",e)},this.getHighlightActiveLine=function(){return this.getOption(\"highlightActiveLine\")},this.setHighlightGutterLine=function(e){this.setOption(\"highlightGutterLine\",e)},this.getHighlightGutterLine=function(){return this.getOption(\"highlightGutterLine\")},this.setHighlightSelectedWord=function(e){this.setOption(\"highlightSelectedWord\",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption(\"readOnly\",e)},this.getReadOnly=function(){return this.getOption(\"readOnly\")},this.setBehavioursEnabled=function(e){this.setOption(\"behavioursEnabled\",e)},this.getBehavioursEnabled=function(){return this.getOption(\"behavioursEnabled\")},this.setWrapBehavioursEnabled=function(e){this.setOption(\"wrapBehavioursEnabled\",e)},this.getWrapBehavioursEnabled=function(){return this.getOption(\"wrapBehavioursEnabled\")},this.setShowFoldWidgets=function(e){this.setOption(\"showFoldWidgets\",e)},this.getShowFoldWidgets=function(){return this.getOption(\"showFoldWidgets\")},this.setFadeFoldWidgets=function(e){this.setOption(\"fadeFoldWidgets\",e)},this.getFadeFoldWidgets=function(){return this.getOption(\"fadeFoldWidgets\")},this.remove=function(e){this.selection.isEmpty()&&(e==\"left\"?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,r=n.getState(t.start.row),i=n.getMode().transformAction(r,\"deletion\",this,n,t);if(t.end.column===0){var s=n.getTextRange(t);if(s[s.length-1]==\"\\n\"){var o=n.getLine(t.end.row);/^\\s+$/.test(o)&&(t.end.column=o.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert(\"\\n\"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(!this.selection.isEmpty())return;var e=this.getCursorPosition(),t=e.column;if(t===0)return;var n=this.session.getLine(e.row),r,i;t<n.length?(r=n.charAt(t)+n.charAt(t-1),i=new p(e.row,t-1,e.row,t+1)):(r=n.charAt(t-1)+n.charAt(t-2),i=new p(e.row,t-2,e.row,t)),this.session.replace(i,r)},this.toLowerCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toLowerCase()),this.selection.setSelectionRange(e)},this.toUpperCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toUpperCase()),this.selection.setSelectionRange(e)},this.indent=function(){var e=this.session,t=this.getSelectionRange();if(t.start.row<t.end.row){var n=this.$getSelectedRows();e.indentRows(n.first,n.last,\"\t\");return}if(t.start.column<t.end.column){var r=e.getTextRange(t);if(!/^\\s+$/.test(r)){var n=this.$getSelectedRows();e.indentRows(n.first,n.last,\"\t\");return}}var i=e.getLine(t.start.row),o=t.start,u=e.getTabSize(),a=e.documentToScreenColumn(o.row,o.column);if(this.session.getUseSoftTabs())var f=u-a%u,l=s.stringRepeat(\" \",f);else{var f=a%u;while(i[t.start.column]==\" \"&&f)t.start.column--,f--;this.selection.setSelectionRange(t),l=\"\t\"}return this.insert(l)},this.blockIndent=function(){var e=this.$getSelectedRows();this.session.indentRows(e.first,e.last,\"\t\")},this.blockOutdent=function(){var e=this.session.getSelection();this.session.outdentRows(e.getRange())},this.sortLines=function(){var e=this.$getSelectedRows(),t=this.session,n=[];for(i=e.first;i<=e.last;i++)n.push(t.getLine(i));n.sort(function(e,t){return e.toLowerCase()<t.toLowerCase()?-1:e.toLowerCase()>t.toLowerCase()?1:0});var r=new p(0,0,0,0);for(var i=e.first;i<=e.last;i++){var s=t.getLine(i);r.start.row=i,r.end.row=i,r.end.column=s.length,t.replace(r,n[i-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},this.getNumberAt=function(e,t){var n=/[\\-]?[0-9]+(?:\\.[0-9]+)?/g;n.lastIndex=0;var r=this.session.getLine(e);while(n.lastIndex<t){var i=n.exec(r);if(i.index<=t&&i.index+i[0].length>=t){var s={value:i[0],start:i.index,end:i.index+i[0].length};return s}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,r=new p(t,n-1,t,n),i=this.session.getTextRange(r);if(!isNaN(parseFloat(i))&&isFinite(i)){var s=this.getNumberAt(t,n);if(s){var o=s.value.indexOf(\".\")>=0?s.start+s.value.indexOf(\".\")+1:s.end,u=s.start+s.value.length-o,a=parseFloat(s.value);a*=Math.pow(10,u),o!==s.end&&n<o?e*=Math.pow(10,s.end-n-1):e*=Math.pow(10,s.end-n),a+=e,a/=Math.pow(10,u);var f=a.toFixed(u),l=new p(t,s.start,t,s.end);this.session.replace(l,f),this.moveCursorTo(t,Math.max(s.start+1,n+f.length-s.value.length))}}},this.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},this.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),r=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var s=r?n.start:n.end,o=t.insert(s,t.getTextRange(n),!1);n.start=s,n.end=o,e.setSelectionRange(n,r)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(e,t,n){return this.session.moveText(e,t,n)},this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(e,t){var n,r,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var s=i.toOrientedRange();n=this.$getSelectedRows(s),r=this.session.$moveLines(n.first,n.last,t?0:e),t&&e==-1&&(r=0),s.moveBy(r,0),i.fromOrientedRange(s)}else{var o=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;var u=0,a=0,f=o.length;for(var l=0;l<f;l++){var c=l;o[l].moveBy(u,0),n=this.$getSelectedRows(o[l]);var h=n.first,p=n.last;while(++l<f){a&&o[l].moveBy(a,0);var d=this.$getSelectedRows(o[l]);if(t&&d.first!=p)break;if(!t&&d.first>p+1)break;p=d.last}l--,u=this.session.$moveLines(h,p,t?0:e),t&&e==-1&&(c=l+1);while(c<=l)o[c].moveBy(u,0),c++;t||(u=0),a+=u}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var n=this.renderer,r=this.renderer.layerConfig,i=e*Math.floor(r.height/r.lineHeight);this.$blockScrolling++,t===!0?this.selection.$moveSelection(function(){this.moveCursorBy(i,0)}):t===!1&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection()),this.$blockScrolling--;var s=n.scrollTop;n.scrollBy(0,i*r.lineHeight),t!=null&&n.scrollCursorIntoView(null,.5),n.animateScrolling(s)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,n,r){this.renderer.scrollToLine(e,t,n,r)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var n=this.getCursorPosition(),r=new y(this.session,n.row,n.column),i=r.getCurrentToken(),s=i||r.stepForward();if(!s)return;var o,u=!1,a={},f=n.column-s.start,l,c={\")\":\"(\",\"(\":\"(\",\"]\":\"[\",\"[\":\"[\",\"{\":\"{\",\"}\":\"{\"};do{if(s.value.match(/[{}()\\[\\]]/g))for(;f<s.value.length&&!u;f++){if(!c[s.value[f]])continue;l=c[s.value[f]]+\".\"+s.type.replace(\"rparen\",\"lparen\"),isNaN(a[l])&&(a[l]=0);switch(s.value[f]){case\"(\":case\"[\":case\"{\":a[l]++;break;case\")\":case\"]\":case\"}\":a[l]--,a[l]===-1&&(o=\"bracket\",u=!0)}}else s&&s.type.indexOf(\"tag-name\")!==-1&&(isNaN(a[s.value])&&(a[s.value]=0),i.value===\"<\"?a[s.value]++:i.value===\"</\"&&a[s.value]--,a[s.value]===-1&&(o=\"tag\",u=!0));u||(i=s,s=r.stepForward(),f=0)}while(s&&!u);if(!o)return;var h,d;if(o===\"bracket\"){h=this.session.getBracketRange(n);if(!h){h=new p(r.getCurrentTokenRow(),r.getCurrentTokenColumn()+f-1,r.getCurrentTokenRow(),r.getCurrentTokenColumn()+f-1),d=h.start;if(t||d.row===n.row&&Math.abs(d.column-n.column)<2)h=this.session.getBracketRange(d)}}else if(o===\"tag\"){if(!s||s.type.indexOf(\"tag-name\")===-1)return;var v=s.value;h=new p(r.getCurrentTokenRow(),r.getCurrentTokenColumn()-2,r.getCurrentTokenRow(),r.getCurrentTokenColumn()-2);if(h.compare(n.row,n.column)===0){u=!1;do s=i,i=r.stepBackward(),i&&(i.type.indexOf(\"tag-close\")!==-1&&h.setEnd(r.getCurrentTokenRow(),r.getCurrentTokenColumn()+1),s.value===v&&s.type.indexOf(\"tag-name\")!==-1&&(i.value===\"<\"?a[v]++:i.value===\"</\"&&a[v]--,a[v]===0&&(u=!0)));while(i&&!u)}s&&s.type.indexOf(\"tag-name\")&&(d=h.start,d.row==n.row&&Math.abs(d.column-n.column)<2&&(d=h.end))}d=h&&h.cursor||d,d&&(e?h&&t?this.selection.setRange(h):h&&h.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(d.row,d.column):this.selection.moveTo(d.row,d.column))},this.gotoLine=function(e,t,n){this.selection.clearSelection(),this.session.unfold({row:e-1,column:t||0}),this.$blockScrolling+=1,this.exitMultiSelectMode&&this.exitMultiSelectMode(),this.moveCursorTo(e-1,t||0),this.$blockScrolling-=1,this.isRowFullyVisible(e-1)||this.scrollToLine(e-1,!0,n)},this.navigateTo=function(e,t){this.selection.moveTo(e,t)},this.navigateUp=function(e){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(-e||-1,0)},this.navigateDown=function(e){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(e||1,0)},this.navigateLeft=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().start;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().end;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(e,t){t&&this.$search.set(t);var n=this.$search.find(this.session),r=0;return n?(this.$tryReplace(n,e)&&(r=1),n!==null&&(this.selection.setSelectionRange(n),this.renderer.scrollSelectionIntoView(n.start,n.end)),r):r},this.replaceAll=function(e,t){t&&this.$search.set(t);var n=this.$search.findAll(this.session),r=0;if(!n.length)return r;this.$blockScrolling+=1;var i=this.getSelectionRange();this.selection.moveTo(0,0);for(var s=n.length-1;s>=0;--s)this.$tryReplace(n[s],e)&&r++;return this.selection.setSelectionRange(i),this.$blockScrolling-=1,r},this.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return t=this.$search.replace(n,t),t!==null?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,n){t||(t={}),typeof e==\"string\"||e instanceof RegExp?t.needle=e:typeof e==\"object\"&&r.mixin(t,e);var i=this.selection.getRange();t.needle==null&&(e=this.session.getTextRange(i)||this.$search.$options.needle,e||(i=this.session.getWordRange(i.start.row,i.start.column),e=this.session.getTextRange(i)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:i});var s=this.$search.find(this.session);if(t.preventScroll)return s;if(s)return this.revealRange(s,n),s;t.backwards?i.start=i.end:i.end=i.start,this.selection.setRange(i)},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.$blockScrolling+=1,this.session.unfold(e),this.selection.setSelectionRange(e),this.$blockScrolling-=1;var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),t!==!1&&this.renderer.animateScrolling(n)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal(\"destroy\",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(!e)return;var t,n=this,r=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement(\"div\"));var i=this.$scrollAnchor;i.style.cssText=\"position:absolute\",this.container.insertBefore(i,this.container.firstChild);var s=this.on(\"changeSelection\",function(){r=!0}),o=this.renderer.on(\"beforeRender\",function(){r&&(t=n.renderer.container.getBoundingClientRect())}),u=this.renderer.on(\"afterRender\",function(){if(r&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,s=e.$cursorLayer.$pixelPos,o=e.layerConfig,u=s.top-o.offset;s.top>=0&&u+t.top<0?r=!0:s.top<o.height&&s.top+t.top+o.lineHeight>window.innerHeight?r=!1:r=null,r!=null&&(i.style.top=u+\"px\",i.style.left=s.left+\"px\",i.style.height=o.lineHeight+\"px\",i.scrollIntoView(r)),r=t=null}});this.setAutoScrollEditorIntoView=function(e){if(e)return;delete this.setAutoScrollEditorIntoView,this.off(\"changeSelection\",s),this.renderer.off(\"afterRender\",u),this.renderer.off(\"beforeRender\",o)}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||\"ace\",t=this.renderer.$cursorLayer;if(!t)return;t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&e!=\"wide\",i.setCssClass(t.element,\"ace_slim-cursors\",/slim/.test(e))}}).call(b.prototype),g.defineOptions(b.prototype,\"editor\",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal(\"changeSelectionStyle\",{data:e})},initialValue:\"line\"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:[\"ace\",\"slim\",\"smooth\",\"wide\"],initialValue:\"ace\"},mergeUndoDeltas:{values:[!1,!0,\"always\"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.keybindingId},handlesSet:!0},hScrollBarAlwaysVisible:\"renderer\",vScrollBarAlwaysVisible:\"renderer\",highlightGutterLine:\"renderer\",animatedScroll:\"renderer\",showInvisibles:\"renderer\",showPrintMargin:\"renderer\",printMarginColumn:\"renderer\",printMargin:\"renderer\",fadeFoldWidgets:\"renderer\",showFoldWidgets:\"renderer\",showLineNumbers:\"renderer\",showGutter:\"renderer\",displayIndentGuides:\"renderer\",fontSize:\"renderer\",fontFamily:\"renderer\",maxLines:\"renderer\",minLines:\"renderer\",scrollPastEnd:\"renderer\",fixedWidthGutter:\"renderer\",theme:\"renderer\",scrollSpeed:\"$mouseHandler\",dragDelay:\"$mouseHandler\",dragEnabled:\"$mouseHandler\",focusTimout:\"$mouseHandler\",tooltipFollowsMouse:\"$mouseHandler\",firstLineNumber:\"session\",overwrite:\"session\",newLineMode:\"session\",useWorker:\"session\",useSoftTabs:\"session\",tabSize:\"session\",wrap:\"session\",indentedSoftWrap:\"session\",foldStyle:\"session\",mode:\"session\"}),t.Editor=b}),ace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(){this.reset()};(function(){function e(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines.length==1?null:e.lines,text:e.lines.length==1?e.lines[0]:null}}function t(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines||[e.text]}}function n(e,t){var n=new Array(e.length);for(var r=0;r<e.length;r++){var i=e[r],s={group:i.group,deltas:new Array(i.length)};for(var o=0;o<i.deltas.length;o++){var u=i.deltas[o];s.deltas[o]=t(u)}n[r]=s}return n}this.execute=function(e){var t=e.args[0];this.$doc=e.args[1],e.merge&&this.hasUndo()&&(this.dirtyCounter--,t=this.$undoStack.pop().concat(t)),this.$undoStack.push(t),this.$redoStack=[],this.dirtyCounter<0&&(this.dirtyCounter=NaN),this.dirtyCounter++},this.undo=function(e){var t=this.$undoStack.pop(),n=null;return t&&(n=this.$doc.undoChanges(t,e),this.$redoStack.push(t),this.dirtyCounter--),n},this.redo=function(e){var t=this.$redoStack.pop(),n=null;return t&&(n=this.$doc.redoChanges(this.$deserializeDeltas(t),e),this.$undoStack.push(t),this.dirtyCounter++),n},this.reset=function(){this.$undoStack=[],this.$redoStack=[],this.dirtyCounter=0},this.hasUndo=function(){return this.$undoStack.length>0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return this.dirtyCounter===0},this.$serializeDeltas=function(t){return n(t,e)},this.$deserializeDeltas=function(e){return n(e,t)}}).call(r.prototype),t.UndoManager=r}),ace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"../lib/dom\"),i=e(\"../lib/oop\"),s=e(\"../lib/lang\"),o=e(\"../lib/event_emitter\").EventEmitter,u=function(e){this.element=r.createElement(\"div\"),this.element.className=\"ace_layer ace_gutter-layer\",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){i.implement(this,o),this.setSession=function(e){this.session&&this.session.removeEventListener(\"change\",this.$updateAnnotations),this.session=e,e&&e.on(\"change\",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn(\"deprecated use session.addGutterDecoration\"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn(\"deprecated use session.removeGutterDecoration\"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;t<e.length;t++){var n=e[t],r=n.row,i=this.$annotations[r];i||(i=this.$annotations[r]={text:[]});var o=n.text;o=o?s.escapeHTML(o):n.html||\"\",i.text.indexOf(o)===-1&&i.text.push(o);var u=n.type;u==\"error\"?i.className=\" ace_error\":u==\"warning\"&&i.className!=\" ace_error\"?i.className=\" ace_warning\":u==\"info\"&&!i.className&&(i.className=\" ace_info\")}},this.$updateAnnotations=function(e){if(!this.$annotations.length)return;var t=e.start.row,n=e.end.row-t;if(n!==0)if(e.action==\"remove\")this.$annotations.splice(t,n+1,null);else{var r=new Array(n+1);r.unshift(t,1),this.$annotations.splice.apply(this.$annotations,r)}},this.update=function(e){var t=this.session,n=e.firstRow,i=Math.min(e.lastRow+e.gutterOffset,t.getLength()-1),s=t.getNextFoldLine(n),o=s?s.start.row:Infinity,u=this.$showFoldWidgets&&t.foldWidgets,a=t.$breakpoints,f=t.$decorations,l=t.$firstLineNumber,c=0,h=t.gutterRenderer||this.$renderer,p=null,d=-1,v=n;for(;;){v>o&&(v=s.end.row+1,s=t.getNextFoldLine(v,s),o=s?s.start.row:Infinity);if(v>i){while(this.$cells.length>d+1)p=this.$cells.pop(),this.element.removeChild(p.element);break}p=this.$cells[++d],p||(p={element:null,textNode:null,foldWidget:null},p.element=r.createElement(\"div\"),p.textNode=document.createTextNode(\"\"),p.element.appendChild(p.textNode),this.element.appendChild(p.element),this.$cells[d]=p);var m=\"ace_gutter-cell \";a[v]&&(m+=a[v]),f[v]&&(m+=f[v]),this.$annotations[v]&&(m+=this.$annotations[v].className),p.element.className!=m&&(p.element.className=m);var g=t.getRowLength(v)*e.lineHeight+\"px\";g!=p.element.style.height&&(p.element.style.height=g);if(u){var y=u[v];y==null&&(y=u[v]=t.getFoldWidget(v))}if(y){p.foldWidget||(p.foldWidget=r.createElement(\"span\"),p.element.appendChild(p.foldWidget));var m=\"ace_fold-widget ace_\"+y;y==\"start\"&&v==o&&v<s.end.row?m+=\" ace_closed\":m+=\" ace_open\",p.foldWidget.className!=m&&(p.foldWidget.className=m);var g=e.lineHeight+\"px\";p.foldWidget.style.height!=g&&(p.foldWidget.style.height=g)}else p.foldWidget&&(p.element.removeChild(p.foldWidget),p.foldWidget=null);var b=c=h?h.getText(t,v):v+l;b!=p.textNode.data&&(p.textNode.data=b),v++}this.element.style.height=e.minHeight+\"px\";if(this.$fixedWidth||t.$useWrapMode)c=t.getLength()+l;var w=h?h.getWidth(t,c,e):c.toString().length*e.characterWidth,E=this.$padding||this.$computePadding();w+=E.left+E.right,w!==this.gutterWidth&&!isNaN(w)&&(this.gutterWidth=w,this.element.style.width=Math.ceil(this.gutterWidth)+\"px\",this._emit(\"changeGutterWidth\",w))},this.$fixedWidth=!1,this.$showLineNumbers=!0,this.$renderer=\"\",this.setShowLineNumbers=function(e){this.$renderer=!e&&{getWidth:function(){return\"\"},getText:function(){return\"\"}}},this.getShowLineNumbers=function(){return this.$showLineNumbers},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(e){e?r.addCssClass(this.element,\"ace_folding-enabled\"):r.removeCssClass(this.element,\"ace_folding-enabled\"),this.$showFoldWidgets=e,this.$padding=null},this.getShowFoldWidgets=function(){return this.$showFoldWidgets},this.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var e=r.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=parseInt(e.paddingLeft)+1||0,this.$padding.right=parseInt(e.paddingRight)||0,this.$padding},this.getRegion=function(e){var t=this.$padding||this.$computePadding(),n=this.element.getBoundingClientRect();if(e.x<t.left+n.left)return\"markers\";if(this.$showFoldWidgets&&e.x>n.right-t.right)return\"foldWidgets\"}}).call(u.prototype),t.Gutter=u}),ace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=e(\"../lib/dom\"),s=function(e){this.element=i.createElement(\"div\"),this.element.className=\"ace_layer ace_marker-layer\",e.appendChild(this.element)};(function(){function e(e,t,n,r){return(e?1:0)|(t?2:0)|(n?4:0)|(r?8:0)}this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){var e=e||this.config;if(!e)return;this.config=e;var t=[];for(var n in this.markers){var r=this.markers[n];if(!r.range){r.update(t,this,this.session,e);continue}var i=r.range.clipRows(e.firstRow,e.lastRow);if(i.isEmpty())continue;i=i.toScreenRange(this.session);if(r.renderer){var s=this.$getTop(i.start.row,e),o=this.$padding+i.start.column*e.characterWidth;r.renderer(t,i,o,s,e)}else r.type==\"fullLine\"?this.drawFullLineMarker(t,i,r.clazz,e):r.type==\"screenLine\"?this.drawScreenLineMarker(t,i,r.clazz,e):i.isMultiLine()?r.type==\"text\"?this.drawTextMarker(t,i,r.clazz,e):this.drawMultiLineMarker(t,i,r.clazz,e):this.drawSingleLineMarker(t,i,r.clazz+\" ace_start\"+\" ace_br15\",e)}this.element.innerHTML=t.join(\"\")},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(t,n,i,s,o){var u=this.session,a=n.start.row,f=n.end.row,l=a,c=0,h=0,p=u.getScreenLastRowColumn(l),d=new r(l,n.start.column,l,h);for(;l<=f;l++)d.start.row=d.end.row=l,d.start.column=l==a?n.start.column:u.getRowWrapIndent(l),d.end.column=p,c=h,h=p,p=l+1<f?u.getScreenLastRowColumn(l+1):l==f?0:n.end.column,this.drawSingleLineMarker(t,d,i+(l==a?\" ace_start\":\"\")+\" ace_br\"+e(l==a||l==a+1&&n.start.column,c<h,h>p,l==f),s,l==f?0:1,o)},this.drawMultiLineMarker=function(e,t,n,r,i){var s=this.$padding,o=r.lineHeight,u=this.$getTop(t.start.row,r),a=s+t.start.column*r.characterWidth;i=i||\"\",e.push(\"<div class='\",n,\" ace_br1 ace_start' style='\",\"height:\",o,\"px;\",\"right:0;\",\"top:\",u,\"px;\",\"left:\",a,\"px;\",i,\"'></div>\"),u=this.$getTop(t.end.row,r);var f=t.end.column*r.characterWidth;e.push(\"<div class='\",n,\" ace_br12' style='\",\"height:\",o,\"px;\",\"width:\",f,\"px;\",\"top:\",u,\"px;\",\"left:\",s,\"px;\",i,\"'></div>\"),o=(t.end.row-t.start.row-1)*r.lineHeight;if(o<=0)return;u=this.$getTop(t.start.row+1,r);var l=(t.start.column?1:0)|(t.end.column?0:8);e.push(\"<div class='\",n,l?\" ace_br\"+l:\"\",\"' style='\",\"height:\",o,\"px;\",\"right:0;\",\"top:\",u,\"px;\",\"left:\",s,\"px;\",i,\"'></div>\")},this.drawSingleLineMarker=function(e,t,n,r,i,s){var o=r.lineHeight,u=(t.end.column+(i||0)-t.start.column)*r.characterWidth,a=this.$getTop(t.start.row,r),f=this.$padding+t.start.column*r.characterWidth;e.push(\"<div class='\",n,\"' style='\",\"height:\",o,\"px;\",\"width:\",u,\"px;\",\"top:\",a,\"px;\",\"left:\",f,\"px;\",s||\"\",\"'></div>\")},this.drawFullLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,r)-s),e.push(\"<div class='\",n,\"' style='\",\"height:\",o,\"px;\",\"top:\",s,\"px;\",\"left:0;right:0;\",i||\"\",\"'></div>\")},this.drawScreenLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;e.push(\"<div class='\",n,\"' style='\",\"height:\",o,\"px;\",\"top:\",s,\"px;\",\"left:0;right:0;\",i||\"\",\"'></div>\")}}).call(s.prototype),t.Marker=s}),ace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/dom\"),s=e(\"../lib/lang\"),o=e(\"../lib/useragent\"),u=e(\"../lib/event_emitter\").EventEmitter,a=function(e){this.element=i.createElement(\"div\"),this.element.className=\"ace_layer ace_text-layer\",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){r.implement(this,u),this.EOF_CHAR=\"\\u00b6\",this.EOL_CHAR_LF=\"\\u00ac\",this.EOL_CHAR_CRLF=\"\\u00a4\",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR=\"\\u2014\",this.SPACE_CHAR=\"\\u00b7\",this.$padding=0,this.$updateEolChar=function(){var e=this.session.doc.getNewLineCharacter()==\"\\n\"?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!0},this.setPadding=function(e){this.$padding=e,this.element.style.padding=\"0 \"+e+\"px\"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on(\"changeCharacterSize\",function(e){this._signal(\"changeCharacterSize\",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;var t=this.$tabStrings=[0];for(var n=1;n<e+1;n++)this.showInvisibles?t.push(\"<span class='ace_invisible ace_invisible_tab'>\"+s.stringRepeat(this.TAB_CHAR,n)+\"</span>\"):t.push(s.stringRepeat(\" \",n));if(this.displayIndentGuides){this.$indentGuideRe=/\\s\\S| \\t|\\t |\\s$/;var r=\"ace_indent-guide\",i=\"\",o=\"\";if(this.showInvisibles){r+=\" ace_invisible\",i=\" ace_invisible_space\",o=\" ace_invisible_tab\";var u=s.stringRepeat(this.SPACE_CHAR,this.tabSize),a=s.stringRepeat(this.TAB_CHAR,this.tabSize)}else var u=s.stringRepeat(\" \",this.tabSize),a=u;this.$tabStrings[\" \"]=\"<span class='\"+r+i+\"'>\"+u+\"</span>\",this.$tabStrings[\"\t\"]=\"<span class='\"+r+o+\"'>\"+a+\"</span>\"}},this.updateLines=function(e,t,n){(this.config.lastRow!=e.lastRow||this.config.firstRow!=e.firstRow)&&this.scrollLines(e),this.config=e;var r=Math.max(t,e.firstRow),i=Math.min(n,e.lastRow),s=this.element.childNodes,o=0;for(var u=e.firstRow;u<r;u++){var a=this.session.getFoldLine(u);if(a){if(a.containsRow(r)){r=a.start.row;break}u=a.end.row}o++}var u=r,a=this.session.getNextFoldLine(u),f=a?a.start.row:Infinity;for(;;){u>f&&(u=a.end.row+1,a=this.session.getNextFoldLine(u,a),f=a?a.start.row:Infinity);if(u>i)break;var l=s[o++];if(l){var c=[];this.$renderLine(c,u,!this.$useLineGroups(),u==f?a:!1),l.style.height=e.lineHeight*this.session.getRowLength(u)+\"px\",l.innerHTML=c.join(\"\")}u++}},this.scrollLines=function(e){var t=this.config;this.config=e;if(!t||t.lastRow<e.firstRow)return this.update(e);if(e.lastRow<t.firstRow)return this.update(e);var n=this.element;if(t.firstRow<e.firstRow)for(var r=this.session.getFoldedRowCount(t.firstRow,e.firstRow-1);r>0;r--)n.removeChild(n.firstChild);if(t.lastRow>e.lastRow)for(var r=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);r>0;r--)n.removeChild(n.lastChild);if(e.firstRow<t.firstRow){var i=this.$renderLinesFragment(e,e.firstRow,t.firstRow-1);n.firstChild?n.insertBefore(i,n.firstChild):n.appendChild(i)}if(e.lastRow>t.lastRow){var i=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);n.appendChild(i)}},this.$renderLinesFragment=function(e,t,n){var r=this.element.ownerDocument.createDocumentFragment(),s=t,o=this.session.getNextFoldLine(s),u=o?o.start.row:Infinity;for(;;){s>u&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),u=o?o.start.row:Infinity);if(s>n)break;var a=i.createElement(\"div\"),f=[];this.$renderLine(f,s,!1,s==u?o:!1),a.innerHTML=f.join(\"\");if(this.$useLineGroups())a.className=\"ace_line_group\",r.appendChild(a),a.style.height=e.lineHeight*this.session.getRowLength(s)+\"px\";else while(a.firstChild)r.appendChild(a.firstChild);s++}return r},this.update=function(e){this.config=e;var t=[],n=e.firstRow,r=e.lastRow,i=n,s=this.session.getNextFoldLine(i),o=s?s.start.row:Infinity;for(;;){i>o&&(i=s.end.row+1,s=this.session.getNextFoldLine(i,s),o=s?s.start.row:Infinity);if(i>r)break;this.$useLineGroups()&&t.push(\"<div class='ace_line_group' style='height:\",e.lineHeight*this.session.getRowLength(i),\"px'>\"),this.$renderLine(t,i,!1,i==o?s:!1),this.$useLineGroups()&&t.push(\"</div>\"),i++}this.element.innerHTML=t.join(\"\")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,n,r){var i=this,o=/\\t|&|<|>|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF\\uFFF9-\\uFFFC])|[\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3000-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]/g,u=function(e,n,r,o,u){if(n)return i.showInvisibles?\"<span class='ace_invisible ace_invisible_space'>\"+s.stringRepeat(i.SPACE_CHAR,e.length)+\"</span>\":e;if(e==\"&\")return\"&#38;\";if(e==\"<\")return\"&#60;\";if(e==\">\")return\"&#62;\";if(e==\"\t\"){var a=i.session.getScreenTabSize(t+o);return t+=a-1,i.$tabStrings[a]}if(e==\"\\u3000\"){var f=i.showInvisibles?\"ace_cjk ace_invisible ace_invisible_space\":\"ace_cjk\",l=i.showInvisibles?i.SPACE_CHAR:\"\";return t+=1,\"<span class='\"+f+\"' style='width:\"+i.config.characterWidth*2+\"px'>\"+l+\"</span>\"}return r?\"<span class='ace_invisible ace_invisible_space ace_invalid'>\"+i.SPACE_CHAR+\"</span>\":(t+=1,\"<span class='ace_cjk' style='width:\"+i.config.characterWidth*2+\"px'>\"+e+\"</span>\")},a=r.replace(o,u);if(!this.$textToken[n.type]){var f=\"ace_\"+n.type.replace(/\\./g,\" ace_\"),l=\"\";n.type==\"fold\"&&(l=\" style='width:\"+n.value.length*this.config.characterWidth+\"px;' \"),e.push(\"<span class='\",f,\"'\",l,\">\",a,\"</span>\")}else e.push(a);return t+r.length},this.renderIndentGuide=function(e,t,n){var r=t.search(this.$indentGuideRe);return r<=0||r>=n?t:t[0]==\" \"?(r-=r%this.tabSize,e.push(s.stringRepeat(this.$tabStrings[\" \"],r/this.tabSize)),t.substr(r)):t[0]==\"\t\"?(e.push(s.stringRepeat(this.$tabStrings[\"\t\"],r)),t.substr(r)):t},this.$renderWrappedLine=function(e,t,n,r){var i=0,o=0,u=n[0],a=0;for(var f=0;f<t.length;f++){var l=t[f],c=l.value;if(f==0&&this.displayIndentGuides){i=c.length,c=this.renderIndentGuide(e,c,u);if(!c)continue;i-=c.length}if(i+c.length<u)a=this.$renderToken(e,a,l,c),i+=c.length;else{while(i+c.length>=u)a=this.$renderToken(e,a,l,c.substring(0,u-i)),c=c.substring(u-i),i=u,r||e.push(\"</div>\",\"<div class='ace_line' style='height:\",this.config.lineHeight,\"px'>\"),e.push(s.stringRepeat(\"\\u00a0\",n.indent)),o++,a=0,u=n[o]||Number.MAX_VALUE;c.length!=0&&(i+=c.length,a=this.$renderToken(e,a,l,c))}}},this.$renderSimpleLine=function(e,t){var n=0,r=t[0],i=r.value;this.displayIndentGuides&&(i=this.renderIndentGuide(e,i)),i&&(n=this.$renderToken(e,n,r,i));for(var s=1;s<t.length;s++)r=t[s],i=r.value,n=this.$renderToken(e,n,r,i)},this.$renderLine=function(e,t,n,r){!r&&r!=0&&(r=this.session.getFoldLine(t));if(r)var i=this.$getFoldLineTokens(t,r);else var i=this.session.getTokens(t);n||e.push(\"<div class='ace_line' style='height:\",this.config.lineHeight*(this.$useLineGroups()?1:this.session.getRowLength(t)),\"px'>\");if(i.length){var s=this.session.getRowSplitData(t);s&&s.length?this.$renderWrappedLine(e,i,s,n):this.$renderSimpleLine(e,i)}this.showInvisibles&&(r&&(t=r.end.row),e.push(\"<span class='ace_invisible ace_invisible_eol'>\",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,\"</span>\")),n||e.push(\"</div>\")},this.$getFoldLineTokens=function(e,t){function i(e,t,n){var i=0,s=0;while(s+e[i].value.length<t){s+=e[i].value.length,i++;if(i==e.length)return}if(s!=t){var o=e[i].value.substring(t-s);o.length>n-t&&(o=o.substring(0,n-t)),r.push({type:e[i].type,value:o}),s=t+o.length,i+=1}while(s<n&&i<e.length){var o=e[i].value;o.length+s>n?r.push({type:e[i].type,value:o.substring(0,n-s)}):r.push(e[i]),s+=o.length,i+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,u,a){e!=null?r.push({type:\"fold\",value:e}):(a&&(s=n.getTokens(t)),s.length&&i(s,u,o))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(a.prototype),t.Text=a}),ace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";var r=e(\"../lib/dom\"),i,s=function(e){this.element=r.createElement(\"div\"),this.element.className=\"ace_layer ace_cursor-layer\",e.appendChild(this.element),i===undefined&&(i=!(\"opacity\"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,\"ace_hidden-cursors\"),this.$updateCursors=(i?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(e){var t=this.cursors;for(var n=t.length;n--;)t[n].style.visibility=e?\"\":\"hidden\"},this.$updateOpacity=function(e){var t=this.cursors;for(var n=t.length;n--;)t[n].style.opacity=e?\"\":\"0\"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e!=this.smoothBlinking&&!i&&(this.smoothBlinking=e,r.setCssClass(this.element,\"ace_smooth-blinking\",e),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement(\"div\");return e.className=\"ace_cursor\",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,\"ace_hidden-cursors\"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,\"ace_hidden-cursors\"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,\"ace_smooth-blinking\"),e(!0);if(!this.isBlinking||!this.blinkInterval||!this.isVisible)return;this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,\"ace_smooth-blinking\")}.bind(this));var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e),r=this.$padding+n.column*this.config.characterWidth,i=(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:r,top:i}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,n=0,r=0;if(t===undefined||t.length===0)t=[{cursor:null}];for(var n=0,i=t.length;n<i;n++){var s=this.getPixelPosition(t[n].cursor,!0);if((s.top>e.height+e.offset||s.top<0)&&n>1)continue;var o=(this.cursors[r++]||this.addCursor()).style;this.drawCursor?this.drawCursor(o,s,e,t[n],this.session):(o.left=s.left+\"px\",o.top=s.top+\"px\",o.width=e.characterWidth+\"px\",o.height=e.lineHeight+\"px\")}while(this.cursors.length>r)this.removeCursor();var u=this.session.getOverwrite();this.$setOverwrite(u),this.$pixelPos=s,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,\"ace_overwrite-cursors\"):r.removeCssClass(this.element,\"ace_overwrite-cursors\"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(s.prototype),t.Cursor=s}),ace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/dom\"),s=e(\"./lib/event\"),o=e(\"./lib/event_emitter\").EventEmitter,u=function(e){this.element=i.createElement(\"div\"),this.element.className=\"ace_scrollbar ace_scrollbar\"+this.classSuffix,this.inner=i.createElement(\"div\"),this.inner.className=\"ace_scrollbar-inner\",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,s.addListener(this.element,\"scroll\",this.onScroll.bind(this)),s.addListener(this.element,\"mousedown\",s.preventDefault)};(function(){r.implement(this,o),this.setVisible=function(e){this.element.style.display=e?\"\":\"none\",this.isVisible=e}}).call(u.prototype);var a=function(e,t){u.call(this,e),this.scrollTop=0,t.$scrollbarWidth=this.width=i.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+\"px\"};r.inherits(a,u),function(){this.classSuffix=\"-v\",this.onScroll=function(){this.skipEvent||(this.scrollTop=this.element.scrollTop,this._emit(\"scroll\",{data:this.scrollTop})),this.skipEvent=!1},this.getWidth=function(){return this.isVisible?this.width:0},this.setHeight=function(e){this.element.style.height=e+\"px\"},this.setInnerHeight=function(e){this.inner.style.height=e+\"px\"},this.setScrollHeight=function(e){this.inner.style.height=e+\"px\"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=this.element.scrollTop=e)}}.call(a.prototype);var f=function(e,t){u.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+\"px\"};r.inherits(f,u),function(){this.classSuffix=\"-h\",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit(\"scroll\",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+\"px\"},this.setInnerWidth=function(e){this.inner.style.width=e+\"px\"},this.setScrollWidth=function(e){this.inner.style.width=e+\"px\"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(f.prototype),t.ScrollBar=a,t.ScrollBarV=a,t.ScrollBarH=f,t.VScrollBar=a,t.HScrollBar=f}),ace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"],function(e,t,n){\"use strict\";var r=e(\"./lib/event\"),i=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){this.changes=this.changes|e;if(!this.pending&&this.changes){this.pending=!0;var t=this;r.nextFrame(function(){t.pending=!1;var e;while(e=t.changes)t.changes=0,t.onRender(e)},this.window)}}}).call(i.prototype),t.RenderLoop=i}),ace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../lib/dom\"),s=e(\"../lib/lang\"),o=e(\"../lib/useragent\"),u=e(\"../lib/event_emitter\").EventEmitter,a=0,f=t.FontMetrics=function(e){this.el=i.createElement(\"div\"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement(\"div\"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement(\"div\"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),a||this.$testFractionalRect(),this.$measureNode.innerHTML=s.stringRepeat(\"X\",a),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){r.implement(this,u),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=i.createElement(\"div\");this.$setMeasureNodeStyles(e.style),e.style.width=\"0.2px\",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;t>0&&t<1?a=50:a=100,e.parentNode.removeChild(e)},this.$setMeasureNodeStyles=function(e,t){e.width=e.height=\"auto\",e.left=e.top=\"0px\",e.visibility=\"hidden\",e.position=\"absolute\",e.whiteSpace=\"pre\",o.isIE<8?e[\"font-family\"]=\"inherit\":e.font=\"inherit\",e.overflow=t?\"hidden\":\"visible\"},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight=\"bold\";var t=this.$measureSizes();this.$measureNode.style.fontWeight=\"\",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit(\"changeCharacterSize\",{data:e})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=setInterval(function(){e.checkForSizeChanges()},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(a===50){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(t){e={width:0,height:0}}var n={height:e.height,width:e.width/a}}else var n={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/a};return n.width===0||n.height===0?null:n},this.$measureCharWidth=function(e){this.$main.innerHTML=s.stringRepeat(e,a);var t=this.$main.getBoundingClientRect();return t.width/a},this.getCharacterWidth=function(e){var t=this.charSizes[e];return t===undefined&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(f.prototype)}),ace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/config\",\"ace/lib/useragent\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/dom\"),s=e(\"./config\"),o=e(\"./lib/useragent\"),u=e(\"./layer/gutter\").Gutter,a=e(\"./layer/marker\").Marker,f=e(\"./layer/text\").Text,l=e(\"./layer/cursor\").Cursor,c=e(\"./scrollbar\").HScrollBar,h=e(\"./scrollbar\").VScrollBar,p=e(\"./renderloop\").RenderLoop,d=e(\"./layer/font_metrics\").FontMetrics,v=e(\"./lib/event_emitter\").EventEmitter,m='.ace_editor {position: relative;overflow: hidden;font: 12px/normal \\'Monaco\\', \\'Menlo\\', \\'Ubuntu Mono\\', \\'Consolas\\', \\'source-code-pro\\', monospace;direction: ltr;}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;min-width: 100%;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \\'\\';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==\");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==\");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=\");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC\");}.ace_scrollbar {position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;text-indent: -1em;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;white-space: pre!important;}.ace_text-input.ace_composition {background: inherit;color: inherit;z-index: 1000;opacity: 1;text-indent: 0;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;}.ace_text-layer {font: inherit !important;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;border-left: 2px solid;transform: translatez(0);}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_smooth-blinking .ace_cursor {-webkit-transition: opacity 0.18s;transition: opacity 0.18s;}.ace_editor.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_line .ace_fold {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\"),url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\"),url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\");}.ace_tooltip {background-color: #FFF;background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block;   }.ace_fold-widget.ace_end {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\");}.ace_fold-widget.ace_closed {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}.ace_dark .ace_fold-widget {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\");}.ace_dark .ace_fold-widget.ace_end {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\");}.ace_dark .ace_fold-widget.ace_closed {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {-webkit-transition: opacity 0.4s ease 0.05s;transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {-webkit-transition: opacity 0.05s ease 0.05s;transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}.ace_br1 {border-top-left-radius    : 3px;}.ace_br2 {border-top-right-radius   : 3px;}.ace_br3 {border-top-left-radius    : 3px; border-top-right-radius:    3px;}.ace_br4 {border-bottom-right-radius: 3px;}.ace_br5 {border-top-left-radius    : 3px; border-bottom-right-radius: 3px;}.ace_br6 {border-top-right-radius   : 3px; border-bottom-right-radius: 3px;}.ace_br7 {border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-right-radius: 3px;}.ace_br8 {border-bottom-left-radius : 3px;}.ace_br9 {border-top-left-radius    : 3px; border-bottom-left-radius:  3px;}.ace_br10{border-top-right-radius   : 3px; border-bottom-left-radius:  3px;}.ace_br11{border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-left-radius:  3px;}.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}.ace_br13{border-top-left-radius    : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}.ace_br14{border-top-right-radius   : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}.ace_br15{border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}';i.importCssString(m,\"ace_editor.css\");var g=function(e,t){var n=this;this.container=e||i.createElement(\"div\"),this.$keepTextAreaAtCursor=!o.isOldIE,i.addCssClass(this.container,\"ace_editor\"),this.setTheme(t),this.$gutter=i.createElement(\"div\"),this.$gutter.className=\"ace_gutter\",this.container.appendChild(this.$gutter),this.scroller=i.createElement(\"div\"),this.scroller.className=\"ace_scroller\",this.container.appendChild(this.scroller),this.content=i.createElement(\"div\"),this.content.className=\"ace_content\",this.scroller.appendChild(this.content),this.$gutterLayer=new u(this.$gutter),this.$gutterLayer.on(\"changeGutterWidth\",this.onGutterResize.bind(this)),this.$markerBack=new a(this.content);var r=this.$textLayer=new f(this.content);this.canvas=r.element,this.$markerFront=new a(this.content),this.$cursorLayer=new l(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new h(this.container,this),this.scrollBarH=new c(this.container,this),this.scrollBarV.addEventListener(\"scroll\",function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)}),this.scrollBarH.addEventListener(\"scroll\",function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new d(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener(\"changeCharacterSize\",function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal(\"changeCharacterSize\",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$loop=new p(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),s.resetOptions(this),s._emit(\"renderer\",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,r.implement(this,v),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle(\"ace_nobold\",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session&&this.session.doc.off(\"changeNewLineMode\",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e);if(!e)return;this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on(\"changeNewLineMode\",this.onChangeNewLineMode)},this.updateLines=function(e,t,n){t===undefined&&(t=Infinity),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRow<t&&(this.$changedLines.lastRow=t)):this.$changedLines={firstRow:e,lastRow:t};if(this.$changedLines.lastRow<this.layerConfig.firstRow){if(!n)return;this.$changedLines.lastRow=this.layerConfig.lastRow}if(this.$changedLines.firstRow>this.layerConfig.lastRow)return;this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar()},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,n,r){if(this.resizing>2)return;this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;r||(r=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var s=this.$updateCachedSize(e,t,n,r);if(!this.$size.scrollerHeight||!n&&!r)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(s|this.$changes,!0):this.$loop.schedule(s|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null},this.$updateCachedSize=function(e,t,n,r){r-=this.$extraHeight||0;var i=0,s=this.$size,o={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};r&&(e||s.height!=r)&&(s.height=r,i|=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+\"px\",i|=this.CHANGE_SCROLL);if(n&&(e||s.width!=n)){i|=this.CHANGE_SIZE,s.width=n,t==null&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+\"px\",s.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+\"px\",this.scroller.style.bottom=this.scrollBarH.getHeight()+\"px\";if(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)i|=this.CHANGE_FULL}return s.$dirty=!n||!r,i&&this._signal(\"resize\",o),i},this.onGutterResize=function(){var e=this.$showGutter?this.$gutter.offsetWidth:0;e!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,e,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-this.$padding*2,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption(\"animatedScroll\",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption(\"showInvisibles\",e)},this.getShowInvisibles=function(){return this.getOption(\"showInvisibles\")},this.getDisplayIndentGuides=function(){return this.getOption(\"displayIndentGuides\")},this.setDisplayIndentGuides=function(e){this.setOption(\"displayIndentGuides\",e)},this.setShowPrintMargin=function(e){this.setOption(\"showPrintMargin\",e)},this.getShowPrintMargin=function(){return this.getOption(\"showPrintMargin\")},this.setPrintMarginColumn=function(e){this.setOption(\"printMarginColumn\",e)},this.getPrintMarginColumn=function(){return this.getOption(\"printMarginColumn\")},this.getShowGutter=function(){return this.getOption(\"showGutter\")},this.setShowGutter=function(e){return this.setOption(\"showGutter\",e)},this.getFadeFoldWidgets=function(){return this.getOption(\"fadeFoldWidgets\")},this.setFadeFoldWidgets=function(e){this.setOption(\"fadeFoldWidgets\",e)},this.setHighlightGutterLine=function(e){this.setOption(\"highlightGutterLine\",e)},this.getHighlightGutterLine=function(){return this.getOption(\"highlightGutterLine\")},this.$updateGutterLineHighlight=function(){var e=this.$cursorLayer.$pixelPos,t=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var n=this.session.selection.getCursor();n.column=0,e=this.$cursorLayer.getPixelPosition(n,!0),t*=this.session.getRowLength(n.row)}this.$gutterLineHighlight.style.top=e.top-this.layerConfig.offset+\"px\",this.$gutterLineHighlight.style.height=t+\"px\"},this.$updatePrintMargin=function(){if(!this.$showPrintMargin&&!this.$printMarginEl)return;if(!this.$printMarginEl){var e=i.createElement(\"div\");e.className=\"ace_layer ace_print-margin-layer\",this.$printMarginEl=i.createElement(\"div\"),this.$printMarginEl.className=\"ace_print-margin\",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=this.characterWidth*this.$printMarginColumn+this.$padding+\"px\",t.visibility=this.$showPrintMargin?\"visible\":\"hidden\",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(!this.$keepTextAreaAtCursor)return;var e=this.layerConfig,t=this.$cursorLayer.$pixelPos.top,n=this.$cursorLayer.$pixelPos.left;t-=e.offset;var r=this.textarea.style,i=this.lineHeight;if(t<0||t>e.height-i){r.top=r.left=\"0\";return}var s=this.characterWidth;if(this.$composition){var o=this.textarea.value.replace(/^\\x01+/,\"\");s*=this.session.$getStringScreenWidth(o)[0]+2,i+=2}n-=this.scrollLeft,n>this.$size.scrollerWidth-s&&(n=this.$size.scrollerWidth-s),n+=this.gutterWidth,r.height=i+\"px\",r.width=s+\"px\",r.left=Math.min(n,this.$size.scrollerWidth-s)+\"px\",r.top=Math.min(t,this.$size.height-i)+\"px\"},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow,n=this.session.documentToScreenRow(t,0)*e.lineHeight;return n-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,n,r){var i=this.scrollMargin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption(\"hScrollBarAlwaysVisible\",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption(\"vScrollBarAlwaysVisible\",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){this.$changes&&(e|=this.$changes,this.$changes=0);if(!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t){this.$changes|=e;return}if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal(\"beforeRender\");var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){e|=this.$computeLayerConfig();if(n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var r=this.scrollTop+(n.firstRow-this.layerConfig.firstRow)*this.lineHeight;r>0&&(this.scrollTop=r,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-n.offset+\"px\",this.content.style.marginTop=-n.offset+\"px\",this.content.style.width=n.width+2*this.$padding+\"px\",this.content.style.height=n.minHeight+\"px\"}e&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+\"px\",this.scroller.className=this.scrollLeft<=0?\"ace_scroller\":\"ace_scroller ace_scroll-left\");if(e&this.CHANGE_FULL){this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this._signal(\"afterRender\");return}if(e&this.CHANGE_SCROLL){e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),this._signal(\"afterRender\");return}e&this.CHANGE_TEXT?(this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(n),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal(\"afterRender\")},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var r=e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||r!=this.$vScroll){r!=this.$vScroll&&(this.$vScroll=r,this.scrollBarV.setVisible(r));var i=this.container.clientWidth;this.container.style.height=n+\"px\",this.$updateCachedSize(!0,this.$gutterWidth,i,n),this.desiredHeight=n,this._signal(\"autosize\")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,r=this.session.getScreenLength(),i=r*this.lineHeight,s=this.$getLongestLine(),o=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-s-2*this.$padding<0),u=this.$horizScroll!==o;u&&(this.$horizScroll=o,this.scrollBarH.setVisible(o));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var f=this.scrollTop%this.lineHeight,l=t.scrollerHeight+this.lineHeight,c=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;i+=c;var h=this.scrollMargin;this.session.setScrollTop(Math.max(-h.top,Math.min(this.scrollTop,i-t.scrollerHeight+h.bottom))),this.session.setScrollLeft(Math.max(-h.left,Math.min(this.scrollLeft,s+2*this.$padding-t.scrollerWidth+h.right)));var p=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-i+c<0||this.scrollTop>h.top),d=a!==p;d&&(this.$vScroll=p,this.scrollBarV.setVisible(p));var v=Math.ceil(l/this.lineHeight)-1,m=Math.max(0,Math.round((this.scrollTop-f)/this.lineHeight)),g=m+v,y,b,w=this.lineHeight;m=e.screenToDocumentRow(m,0);var E=e.getFoldLine(m);E&&(m=E.start.row),y=e.documentToScreenRow(m,0),b=e.getRowLength(m)*w,g=Math.min(e.screenToDocumentRow(g,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(g)*w+b,f=this.scrollTop-y*w;var S=0;this.layerConfig.width!=s&&(S=this.CHANGE_H_SCROLL);if(u||d)S=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal(\"scrollbarVisibilityChanged\"),d&&(s=this.$getLongestLine());return this.layerConfig={width:s,padding:this.$padding,firstRow:m,firstRowScreen:y,lastRow:g,lineHeight:w,characterWidth:this.characterWidth,minHeight:l,maxHeight:i,offset:f,gutterOffset:Math.max(0,Math.ceil((f+t.height-t.scrollerHeight)/w)),height:this.$size.scrollerHeight},S},this.$updateLines=function(){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(e>n.lastRow+1)return;if(t<n.firstRow)return;if(t===Infinity){this.$showGutter&&this.$gutterLayer.update(n),this.$textLayer.update(n);return}return this.$textLayer.updateLines(n,e,t),!0},this.$getLongestLine=function(){var e=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(e+=1),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},this.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},this.scrollCursorIntoView=function(e,t,n){if(this.$size.scrollerHeight===0)return;var r=this.$cursorLayer.getPixelPosition(e),i=r.left,s=r.top,o=n&&n.top||0,u=n&&n.bottom||0,a=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;a+o>s?(t&&a+o>s+this.lineHeight&&(s-=t*this.$size.scrollerHeight),s===0&&(s=-this.scrollMargin.top),this.session.setScrollTop(s)):a+this.$size.scrollerHeight-u<s+this.lineHeight&&(t&&a+this.$size.scrollerHeight-u<s-this.lineHeight&&(s+=t*this.$size.scrollerHeight),this.session.setScrollTop(s+this.lineHeight-this.$size.scrollerHeight));var f=this.scrollLeft;f>i?(i<this.$padding+2*this.layerConfig.characterWidth&&(i=-this.scrollMargin.left),this.session.setScrollLeft(i)):f+this.$size.scrollerWidth<i+this.characterWidth?this.session.setScrollLeft(Math.round(i+this.characterWidth-this.$size.scrollerWidth)):f<=this.$padding&&i-f<this.characterWidth&&this.session.setScrollLeft(0)},this.getScrollTop=function(){return this.session.getScrollTop()},this.getScrollLeft=function(){return this.session.getScrollLeft()},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(e){this.session.setScrollTop(e*this.lineHeight)},this.alignCursor=function(e,t){typeof e==\"number\"&&(e={row:e,column:0});var n=this.$cursorLayer.getPixelPosition(e),r=this.$size.scrollerHeight-this.lineHeight,i=n.top-r*(t||0);return this.session.setScrollTop(i),i},this.STEPS=8,this.$calcSteps=function(e,t){var n=0,r=this.STEPS,i=[],s=function(e,t,n){return n*(Math.pow(e-1,3)+1)+t};for(n=0;n<r;++n)i.push(s(n/this.STEPS,e,t-e));return i},this.scrollToLine=function(e,t,n,r){var i=this.$cursorLayer.getPixelPosition({row:e,column:0}),s=i.top;t&&(s-=this.$size.scrollerHeight/2);var o=this.scrollTop;this.session.setScrollTop(s),n!==!1&&this.animateScrolling(o,r)},this.animateScrolling=function(e,t){var n=this.scrollTop;if(!this.$animatedScroll)return;var r=this;if(e==n)return;if(this.$scrollAnimation){var i=this.$scrollAnimation.steps;if(i.length){e=i[0];if(e==n)return}}var s=r.$calcSteps(e,n);this.$scrollAnimation={from:e,to:n,steps:s},clearInterval(this.$timer),r.session.setScrollTop(s.shift()),r.session.$scrollTop=n,this.$timer=setInterval(function(){s.length?(r.session.setScrollTop(s.shift()),r.session.$scrollTop=n):n!=null?(r.session.$scrollTop=-1,r.session.setScrollTop(n),n=null):(r.$timer=clearInterval(r.$timer),r.$scrollAnimation=null,t&&t())},10)},this.scrollToY=function(e){this.scrollTop!==e&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=e)},this.scrollToX=function(e){this.scrollLeft!==e&&(this.scrollLeft=e),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollTo=function(e,t){this.session.setScrollTop(t),this.session.setScrollLeft(t)},this.scrollBy=function(e,t){t&&this.session.setScrollTop(this.session.getScrollTop()+t),e&&this.session.setScrollLeft(this.session.getScrollLeft()+e)},this.isScrollableBy=function(e,t){if(t<0&&this.session.getScrollTop()>=1-this.scrollMargin.top)return!0;if(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom)return!0;if(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left)return!0;if(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},this.pixelToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=(e+this.scrollLeft-n.left-this.$padding)/this.characterWidth,i=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),s=Math.round(r);return{row:i,column:s,side:r-s>0?1:-1}},this.screenToTextCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=Math.round((e+this.scrollLeft-n.left-this.$padding)/this.characterWidth),i=(t+this.scrollTop-n.top)/this.lineHeight;return this.session.screenToDocumentPosition(i,Math.max(r,0))},this.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=this.session.documentToScreenPosition(e,t),i=this.$padding+Math.round(r.column*this.characterWidth),s=r.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+s-this.scrollTop}},this.visualizeFocus=function(){i.addCssClass(this.container,\"ace_focus\")},this.visualizeBlur=function(){i.removeCssClass(this.container,\"ace_focus\")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,i.addCssClass(this.textarea,\"ace_composition\"),this.textarea.style.cssText=\"\",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){if(!this.$composition)return;i.removeCssClass(this.textarea,\"ace_composition\"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null},this.setTheme=function(e,t){function o(r){if(n.$themeId!=e)return t&&t();if(!r.cssClass)return;i.importCssString(r.cssText,r.cssClass,n.container.ownerDocument),n.theme&&i.removeCssClass(n.container,n.theme.cssClass);var s=\"padding\"in r?r.padding:\"padding\"in(n.theme||{})?4:n.$padding;n.$padding&&s!=n.$padding&&n.setPadding(s),n.$theme=r.cssClass,n.theme=r,i.addCssClass(n.container,r.cssClass),i.setCssClass(n.container,\"ace_dark\",r.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent(\"themeLoaded\",{theme:r}),t&&t()}var n=this;this.$themeId=e,n._dispatchEvent(\"themeChange\",{theme:e});if(!e||typeof e==\"string\"){var r=e||this.$options.theme.initialValue;s.loadModule([\"theme\",r],o)}else o(e)},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){i.setCssClass(this.container,e,t!==!1)},this.unsetStyle=function(e){i.removeCssClass(this.container,e)},this.setCursorStyle=function(e){this.scroller.style.cursor!=e&&(this.scroller.style.cursor=e)},this.setMouseCursor=function(e){this.scroller.style.cursor=e},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(g.prototype),s.defineOptions(g.prototype,\"renderer\",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){typeof e==\"number\"&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?\"block\":\"none\",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,\"ace_fade-fold-widgets\",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e)},initialValue:!0},showLineNumbers:{set:function(e){this.$gutterLayer.setShowLineNumbers(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){if(!this.$gutterLineHighlight){this.$gutterLineHighlight=i.createElement(\"div\"),this.$gutterLineHighlight.className=\"ace_gutter-active-line\",this.$gutter.appendChild(this.$gutterLineHighlight);return}this.$gutterLineHighlight.style.display=e?\"\":\"none\",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(e){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){typeof e==\"number\"&&(e+=\"px\"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0;if(this.$scrollPastEnd==e)return;this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:\"./theme/textmate\",handlesSet:!0}}),t.VirtualRenderer=g}),ace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/net\"),s=e(\"../lib/event_emitter\").EventEmitter,o=e(\"../config\"),u=function(t,n,r,i){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl);if(o.get(\"packaged\")||!e.toUrl)i=i||o.moduleUrl(n,\"worker\");else{var s=this.$normalizePath;i=i||s(e.toUrl(\"ace/worker/worker.js\",null,\"_\"));var u={};t.forEach(function(t){u[t]=s(e.toUrl(t,null,\"_\").replace(/(\\.js)?(\\?.*)?$/,\"\"))})}try{this.$worker=new Worker(i)}catch(a){if(!(a instanceof window.DOMException))throw a;var f=this.$workerBlob(i),l=window.URL||window.webkitURL,c=l.createObjectURL(f);this.$worker=new Worker(c),l.revokeObjectURL(c)}this.$worker.postMessage({init:!0,tlns:u,module:n,classname:r}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){r.implement(this,s),this.onMessage=function(e){var t=e.data;switch(t.type){case\"event\":this._signal(t.name,{data:t.data});break;case\"call\":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case\"error\":this.reportError(t.data);break;case\"log\":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal(\"terminate\",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off(\"change\",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var r=this.callbackId++;this.callbacks[r]=n,t.push(r)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(n){console.error(n.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call(\"setValue\",[e.getValue()]),e.on(\"change\",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),e.action==\"insert\"?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;if(!e)return;this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call(\"setValue\",[this.$doc.getValue()]):this.emit(\"change\",{data:e})},this.$workerBlob=function(e){var t=\"importScripts('\"+i.qualifyURL(e)+\"');\";try{return new Blob([t],{type:\"application/javascript\"})}catch(n){var r=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,s=new r;return s.append(t),s.getBlob(\"application/javascript\")}}}).call(u.prototype);var a=function(e,t,n){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var r=null,i=!1,u=Object.create(s),a=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){a.messageBuffer.push(e),r&&(i?setTimeout(f):f())},this.setEmitSync=function(e){i=e};var f=function(){var e=a.messageBuffer.shift();e.command?r[e.command].apply(r,e.args):e.event&&u._signal(e.event,e.data)};u.postMessage=function(e){a.onMessage({data:e})},u.callback=function(e,t){this.postMessage({type:\"call\",id:t,data:e})},u.emit=function(e,t){this.postMessage({type:\"event\",name:e,data:t})},o.loadModule([\"worker\",t],function(e){r=new e[n](u);while(a.messageBuffer.length)f()})};a.prototype=u.prototype,t.UIWorkerClient=a,t.WorkerClient=u}),ace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"],function(e,t,n){\"use strict\";var r=e(\"./range\").Range,i=e(\"./lib/event_emitter\").EventEmitter,s=e(\"./lib/oop\"),o=function(e,t,n,r,i,s){var o=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on(\"change\",this.$onUpdate),this.$others=r,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=n;var u=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=u.length,this.setup(),e.selection.on(\"changeCursor\",this.$onCursorChange)};(function(){s.implement(this,i),this.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new r(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(n){var r=t.createAnchor(n.row,n.column);r.$insertRight=!0,r.detach(),e.others.push(r)}),n.setUndoSelect(!1)},this.showOtherMarkers=function(){if(this.othersActive)return;var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new r(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)})},this.hideOtherMarkers=function(){if(!this.othersActive)return;this.othersActive=!1;for(var e=0;e<this.others.length;e++)this.session.removeMarker(this.others[e].markerId)},this.onUpdate=function(e){if(this.$updating)return this.updateAnchors(e);var t=e;if(t.start.row!==t.end.row)return;if(t.start.row!==this.pos.row)return;this.$updating=!0;var n=e.action===\"insert\"?t.end.column-t.start.column:t.start.column-t.end.column,i=t.start.column>=this.pos.column&&t.start.column<=this.pos.column+this.length+1,s=t.start.column-this.pos.column;this.updateAnchors(e),i&&(this.length+=n);if(i&&!this.session.$fromUndo)if(e.action===\"insert\")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.insertMergedLines(a,e.lines)}else if(e.action===\"remove\")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.remove(new r(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(this.$updating)return;var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new r(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)},this.onCursorChange=function(e){if(this.$updating||!this.session)return;var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit(\"cursorEnter\",e)):(this.hideOtherMarkers(),this._emit(\"cursorLeave\",e))},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener(\"change\",this.$onUpdate),this.session.selection.removeEventListener(\"changeCursor\",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(this.$undoStackDepth===-1)return;var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth;for(var n=0;n<t;n++)e.undo(!0);this.selectionBefore&&this.session.selection.fromJSON(this.selectionBefore)}}).call(o.prototype),t.PlaceHolder=o}),ace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"],function(e,t,n){function s(e,t){return e.row==t.row&&e.column==t.column}function o(e){var t=e.domEvent,n=t.altKey,o=t.shiftKey,u=t.ctrlKey,a=e.getAccelKey(),f=e.getButton();u&&i.isMac&&(f=t.button);if(e.editor.inMultiSelectMode&&f==2){e.editor.textInput.onContextMenu(e.domEvent);return}if(!u&&!n&&!a){f===0&&e.editor.inMultiSelectMode&&e.editor.exitMultiSelectMode();return}if(f!==0)return;var l=e.editor,c=l.selection,h=l.inMultiSelectMode,p=e.getDocumentPosition(),d=c.getCursor(),v=e.inSelection()||c.isEmpty()&&s(p,d),m=e.x,g=e.y,y=function(e){m=e.clientX,g=e.clientY},b=l.session,w=l.renderer.pixelToScreenCoordinates(m,g),E=w,S;if(l.$mouseHandler.$enableJumpToDef)u&&n||a&&n?S=o?\"block\":\"add\":n&&l.$blockSelectEnabled&&(S=\"block\");else if(a&&!n){S=\"add\";if(!h&&o)return}else n&&l.$blockSelectEnabled&&(S=\"block\");S&&i.isMac&&t.ctrlKey&&l.$mouseHandler.cancelContextMenu();if(S==\"add\"){if(!h&&v)return;if(!h){var x=c.toOrientedRange();l.addSelectionMarker(x)}var T=c.rangeList.rangeAtPoint(p);l.$blockScrolling++,l.inVirtualSelectionMode=!0,o&&(T=null,x=c.ranges[0]||x,l.removeSelectionMarker(x)),l.once(\"mouseup\",function(){var e=c.toOrientedRange();T&&e.isEmpty()&&s(T.cursor,e.cursor)?c.substractPoint(e.cursor):(o?c.substractPoint(x.cursor):x&&(l.removeSelectionMarker(x),c.addRange(x)),c.addRange(e)),l.$blockScrolling--,l.inVirtualSelectionMode=!1})}else if(S==\"block\"){e.stop(),l.inVirtualSelectionMode=!0;var N,C=[],k=function(){var e=l.renderer.pixelToScreenCoordinates(m,g),t=b.screenToDocumentPosition(e.row,e.column);if(s(E,e)&&s(t,c.lead))return;E=e,l.$blockScrolling++,l.selection.moveToPosition(t),l.renderer.scrollCursorIntoView(),l.removeSelectionMarkers(C),C=c.rectangularRangeBlock(E,w),l.$mouseHandler.$clickSelection&&C.length==1&&C[0].isEmpty()&&(C[0]=l.$mouseHandler.$clickSelection.clone()),C.forEach(l.addSelectionMarker,l),l.updateSelectionMarkers(),l.$blockScrolling--};l.$blockScrolling++,h&&!a?c.toSingleRange():!h&&a&&(N=c.toOrientedRange(),l.addSelectionMarker(N)),o?w=b.documentToScreenPosition(c.lead):c.moveToPosition(p),l.$blockScrolling--,E={row:-1,column:-1};var L=function(e){clearInterval(O),l.removeSelectionMarkers(C),C.length||(C=[c.toOrientedRange()]),l.$blockScrolling++,N&&(l.removeSelectionMarker(N),c.toSingleRange(N));for(var t=0;t<C.length;t++)c.addRange(C[t]);l.inVirtualSelectionMode=!1,l.$mouseHandler.$clickSelection=null,l.$blockScrolling--},A=k;r.capture(l.container,y,L);var O=setInterval(function(){A()},20);return e.preventDefault()}}var r=e(\"../lib/event\"),i=e(\"../lib/useragent\");t.onMouseDown=o}),ace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"],function(e,t,n){t.defaultCommands=[{name:\"addCursorAbove\",exec:function(e){e.selectMoreLines(-1)},bindKey:{win:\"Ctrl-Alt-Up\",mac:\"Ctrl-Alt-Up\"},scrollIntoView:\"cursor\",readOnly:!0},{name:\"addCursorBelow\",exec:function(e){e.selectMoreLines(1)},bindKey:{win:\"Ctrl-Alt-Down\",mac:\"Ctrl-Alt-Down\"},scrollIntoView:\"cursor\",readOnly:!0},{name:\"addCursorAboveSkipCurrent\",exec:function(e){e.selectMoreLines(-1,!0)},bindKey:{win:\"Ctrl-Alt-Shift-Up\",mac:\"Ctrl-Alt-Shift-Up\"},scrollIntoView:\"cursor\",readOnly:!0},{name:\"addCursorBelowSkipCurrent\",exec:function(e){e.selectMoreLines(1,!0)},bindKey:{win:\"Ctrl-Alt-Shift-Down\",mac:\"Ctrl-Alt-Shift-Down\"},scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectMoreBefore\",exec:function(e){e.selectMore(-1)},bindKey:{win:\"Ctrl-Alt-Left\",mac:\"Ctrl-Alt-Left\"},scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectMoreAfter\",exec:function(e){e.selectMore(1)},bindKey:{win:\"Ctrl-Alt-Right\",mac:\"Ctrl-Alt-Right\"},scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectNextBefore\",exec:function(e){e.selectMore(-1,!0)},bindKey:{win:\"Ctrl-Alt-Shift-Left\",mac:\"Ctrl-Alt-Shift-Left\"},scrollIntoView:\"cursor\",readOnly:!0},{name:\"selectNextAfter\",exec:function(e){e.selectMore(1,!0)},bindKey:{win:\"Ctrl-Alt-Shift-Right\",mac:\"Ctrl-Alt-Shift-Right\"},scrollIntoView:\"cursor\",readOnly:!0},{name:\"splitIntoLines\",exec:function(e){e.multiSelect.splitIntoLines()},bindKey:{win:\"Ctrl-Alt-L\",mac:\"Ctrl-Alt-L\"},readOnly:!0},{name:\"alignCursors\",exec:function(e){e.alignCursors()},bindKey:{win:\"Ctrl-Alt-A\",mac:\"Ctrl-Alt-A\"},scrollIntoView:\"cursor\"},{name:\"findAll\",exec:function(e){e.findAll()},bindKey:{win:\"Ctrl-Alt-K\",mac:\"Ctrl-Alt-G\"},scrollIntoView:\"cursor\",readOnly:!0}],t.multiSelectCommands=[{name:\"singleSelection\",bindKey:\"esc\",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:\"cursor\",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var r=e(\"../keyboard/hash_handler\").HashHandler;t.keyboardHandler=new r(t.multiSelectCommands)}),ace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"],function(e,t,n){function h(e,t,n){return c.$options.wrap=!0,c.$options.needle=t,c.$options.backwards=n==-1,c.find(e)}function v(e,t){return e.row==t.row&&e.column==t.column}function m(e){if(e.$multiselectOnSessionChange)return;e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on(\"changeSession\",e.$multiselectOnSessionChange),e.on(\"mousedown\",o),e.commands.addCommands(f.defaultCommands),g(e)}function g(e){function r(t){n&&(e.renderer.setMouseCursor(\"\"),n=!1)}var t=e.textInput.getElement(),n=!1;u.addListener(t,\"keydown\",function(t){var i=t.keyCode==18&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor(\"crosshair\"),n=!0):n&&r()}),u.addListener(t,\"keyup\",r),u.addListener(t,\"blur\",r)}var r=e(\"./range_list\").RangeList,i=e(\"./range\").Range,s=e(\"./selection\").Selection,o=e(\"./mouse/multi_select_handler\").onMouseDown,u=e(\"./lib/event\"),a=e(\"./lib/lang\"),f=e(\"./commands/multi_select_commands\");t.commands=f.defaultCommands.concat(f.multiSelectCommands);var l=e(\"./search\").Search,c=new l,p=e(\"./edit_session\").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(p.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(!e)return;if(!this.inMultiSelectMode&&this.rangeCount===0){var n=this.toOrientedRange();this.rangeList.add(n),this.rangeList.add(e);if(this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var r=this.rangeList.add(e);return this.$onAddRange(e),r.length&&this.$onRemoveRange(r),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal(\"multiSelect\"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal(\"addRange\",{range:e})},this.$onRemoveRange=function(e){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var r=this.ranges.indexOf(e[n]);this.ranges.splice(r,1)}this._signal(\"removeRange\",{ranges:e}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal(\"singleSelect\"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),t=t||this.ranges[0],t&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new r,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var n=this.getRange(),r=this.isBackwards(),s=n.start.row,o=n.end.row;if(s==o){if(r)var u=n.end,a=n.start;else var u=n.start,a=n.end;this.addRange(i.fromPoints(a,a)),this.addRange(i.fromPoints(u,u));return}var f=[],l=this.getLineRange(s,!0);l.start.column=n.start.column,f.push(l);for(var c=s+1;c<o;c++)f.push(this.getLineRange(c,!0));l=this.getLineRange(o,!0),l.end.column=n.end.column,f.push(l),f.forEach(this.addRange,this)}},this.toggleBlockSelection=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var r=this.session.documentToScreenPosition(this.selectionLead),s=this.session.documentToScreenPosition(this.selectionAnchor),o=this.rectangularRangeBlock(r,s);o.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var r=[],s=e.column<t.column;if(s)var o=e.column,u=t.column;else var o=t.column,u=e.column;var a=e.row<t.row;if(a)var f=e.row,l=t.row;else var f=t.row,l=e.row;o<0&&(o=0),f<0&&(f=0),f==l&&(n=!0);for(var c=f;c<=l;c++){var h=i.fromPoints(this.session.screenToDocumentPosition(c,o),this.session.screenToDocumentPosition(c,u));if(h.isEmpty()){if(p&&v(h.end,p))break;var p=h.end}h.cursor=s?h.start:h.end,r.push(h)}a&&r.reverse();if(!n){var d=r.length-1;while(r[d].isEmpty()&&d>0)d--;if(d>0){var m=0;while(r[m].isEmpty())m++}for(var g=d;g>=m;g--)r[g].isEmpty()&&r.splice(g,1)}return r}}.call(s.prototype);var d=e(\"./editor\").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,\"ace_selection\",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(!e.marker)return;this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);t!=-1&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(e){var t=this.session.$selectionMarkers;for(var n=e.length;n--;){var r=e[n];if(!r.marker)continue;this.session.removeMarker(r.marker);var i=t.indexOf(r);i!=-1&&t.splice(i,1)}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle(\"ace_multiselect\"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler(\"exec\",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(e){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle(\"ace_multiselect\"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler(\"exec\",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit(\"changeSelection\")},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(!n.multiSelect)return;if(!t.multiSelectAction){var r=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}else t.multiSelectAction==\"forEach\"?r=n.forEachSelection(t,e.args):t.multiSelectAction==\"forEachLine\"?r=n.forEachSelection(t,e.args,!0):t.multiSelectAction==\"single\"?(n.exitMultiSelectMode(),r=t.exec(n,e.args||{})):r=t.multiSelectAction(n,e.args||{});return r},this.forEachSelection=function(e,t,n){if(this.inVirtualSelectionMode)return;var r=n&&n.keepOrder,i=n==1||n&&n.$byLines,o=this.session,u=this.selection,a=u.rangeList,f=(r?u:a).ranges,l;if(!f.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var c=u._eventRegistry;u._eventRegistry={};var h=new s(o);this.inVirtualSelectionMode=!0;for(var p=f.length;p--;){if(i)while(p>0&&f[p].start.row==f[p-1].end.row)p--;h.fromOrientedRange(f[p]),h.index=p,this.selection=o.selection=h;var d=e.exec?e.exec(this,t||{}):e(this,t||{});!l&&d!==undefined&&(l=d),h.toOrientedRange(f[p])}h.detach(),this.selection=o.selection=u,this.inVirtualSelectionMode=!1,u._eventRegistry=c,u.mergeOverlappingRanges();var v=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),v&&v.from==v.to&&this.renderer.animateScrolling(v.from),l},this.exitMultiSelectMode=function(){if(!this.inMultiSelectMode||this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e=\"\";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var t=this.multiSelect.rangeList.ranges,n=[];for(var r=0;r<t.length;r++)n.push(this.session.getTextRange(t[r]));var i=this.session.getDocument().getNewLineCharacter();e=n.join(i),e.length==(n.length-1)*i.length&&(e=\"\")}else this.selection.isEmpty()||(e=this.session.getTextRange(this.getSelectionRange()));return e},this.$checkMultiselectChange=function(e,t){if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var n=this.multiSelect.ranges[0];if(this.multiSelect.isEmpty()&&t==this.multiSelect.anchor)return;var r=t==this.multiSelect.anchor?n.cursor==n.start?n.end:n.start:n.cursor;(r.row!=t.row||this.session.$clipPositionToDocument(r.row,r.column).column!=t.column)&&this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange())}},this.findAll=function(e,t,n){t=t||{},t.needle=e||t.needle;if(t.needle==undefined){var r=this.selection.isEmpty()?this.selection.getWordRange():this.selection.getRange();t.needle=this.session.getTextRange(r)}this.$search.set(t);var i=this.$search.findAll(this.session);if(!i.length)return 0;this.$blockScrolling+=1;var s=this.multiSelect;n||s.toSingleRange(i[0]);for(var o=i.length;o--;)s.addRange(i[o],!0);return r&&s.rangeList.rangeAtPoint(r.start)&&s.addRange(r,!0),this.$blockScrolling-=1,i.length},this.selectMoreLines=function(e,t){var n=this.selection.toOrientedRange(),r=n.cursor==n.end,s=this.session.documentToScreenPosition(n.cursor);this.selection.$desiredColumn&&(s.column=this.selection.$desiredColumn);var o=this.session.screenToDocumentPosition(s.row+e,s.column);if(!n.isEmpty())var u=this.session.documentToScreenPosition(r?n.end:n.start),a=this.session.screenToDocumentPosition(u.row+e,u.column);else var a=o;if(r){var f=i.fromPoints(o,a);f.cursor=f.start}else{var f=i.fromPoints(a,o);f.cursor=f.end}f.desiredColumn=s.column;if(!this.selection.inMultiSelectMode)this.selection.addRange(n);else if(t)var l=n.cursor;this.selection.addRange(f),l&&this.selection.substractPoint(l)},this.transposeSelections=function(e){var t=this.session,n=t.multiSelect,r=n.ranges;for(var i=r.length;i--;){var s=r[i];if(s.isEmpty()){var o=t.getWordRange(s.start.row,s.start.column);s.start.row=o.start.row,s.start.column=o.start.column,s.end.row=o.end.row,s.end.column=o.end.column}}n.mergeOverlappingRanges();var u=[];for(var i=r.length;i--;){var s=r[i];u.unshift(t.getTextRange(s))}e<0?u.unshift(u.pop()):u.push(u.shift());for(var i=r.length;i--;){var s=r[i],o=s.clone();t.replace(s,u[i]),s.start.row=o.start.row,s.start.column=o.start.column}},this.selectMore=function(e,t,n){var r=this.session,i=r.multiSelect,s=i.toOrientedRange();if(s.isEmpty()){s=r.getWordRange(s.start.row,s.start.column),s.cursor=e==-1?s.start:s.end,this.multiSelect.addRange(s);if(n)return}var o=r.getTextRange(s),u=h(r,o,e);u&&(u.cursor=e==-1?u.start:u.end,this.$blockScrolling+=1,this.session.unfold(u),this.multiSelect.addRange(u),this.$blockScrolling-=1,this.renderer.scrollCursorIntoView(null,.5)),t&&this.multiSelect.substractPoint(s.cursor)},this.alignCursors=function(){var e=this.session,t=e.multiSelect,n=t.ranges,r=-1,s=n.filter(function(e){if(e.cursor.row==r)return!0;r=e.cursor.row});if(!n.length||s.length==n.length-1){var o=this.selection.getRange(),u=o.start.row,f=o.end.row,l=u==f;if(l){var c=this.session.getLength(),h;do h=this.session.getLine(f);while(/[=:]/.test(h)&&++f<c);do h=this.session.getLine(u);while(/[=:]/.test(h)&&--u>0);u<0&&(u=0),f>=c&&(f=c-1)}var p=this.session.removeFullLines(u,f);p=this.$reAlignText(p,l),this.session.insert({row:u,column:0},p.join(\"\\n\")+\"\\n\"),l||(o.start.column=0,o.end.column=p[p.length-1].length),this.selection.setRange(o)}else{s.forEach(function(e){t.substractPoint(e.cursor)});var d=0,v=Infinity,m=n.map(function(t){var n=t.cursor,r=e.getLine(n.row),i=r.substr(n.column).search(/\\S/g);return i==-1&&(i=0),n.column>d&&(d=n.column),i<v&&(v=i),i});n.forEach(function(t,n){var r=t.cursor,s=d-r.column,o=m[n]-v;s>o?e.insert(r,a.stringRepeat(\" \",s-o)):e.remove(new i(r.row,r.column,r.row,r.column-s+o)),t.start.column=t.end.column=d,t.start.row=t.end.row=r.row,t.cursor=t.end}),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(e,t){function u(e){return a.stringRepeat(\" \",e)}function f(e){return e[2]?u(i)+e[2]+u(s-e[2].length+o)+e[4].replace(/^([=:])\\s+/,\"$1 \"):e[0]}function l(e){return e[2]?u(i+s-e[2].length)+e[2]+u(o,\" \")+e[4].replace(/^([=:])\\s+/,\"$1 \"):e[0]}function c(e){return e[2]?u(i)+e[2]+u(o)+e[4].replace(/^([=:])\\s+/,\"$1 \"):e[0]}var n=!0,r=!0,i,s,o;return e.map(function(e){var t=e.match(/(\\s*)(.*?)(\\s*)([=:].*)/);return t?i==null?(i=t[1].length,s=t[2].length,o=t[3].length,t):(i+s+o!=t[1].length+t[2].length+t[3].length&&(r=!1),i!=t[1].length&&(n=!1),i>t[1].length&&(i=t[1].length),s<t[2].length&&(s=t[2].length),o>t[3].length&&(o=t[3].length),t):[e]}).map(t?f:n?r?l:f:c)}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off(\"addRange\",this.$onAddRange),n.multiSelect.off(\"removeRange\",this.$onRemoveRange),n.multiSelect.off(\"multiSelect\",this.$onMultiSelect),n.multiSelect.off(\"singleSelect\",this.$onSingleSelect),n.multiSelect.lead.off(\"change\",this.$checkMultiselectChange),n.multiSelect.anchor.off(\"change\",this.$checkMultiselectChange)),t&&(t.multiSelect.on(\"addRange\",this.$onAddRange),t.multiSelect.on(\"removeRange\",this.$onRemoveRange),t.multiSelect.on(\"multiSelect\",this.$onMultiSelect),t.multiSelect.on(\"singleSelect\",this.$onSingleSelect),t.multiSelect.lead.on(\"change\",this.$checkMultiselectChange),t.multiSelect.anchor.on(\"change\",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=m,e(\"./config\").defineOptions(d.prototype,\"editor\",{enableMultiselect:{set:function(e){m(this),e?(this.on(\"changeSession\",this.$multiselectOnSessionChange),this.on(\"mousedown\",o)):(this.off(\"changeSession\",this.$multiselectOnSessionChange),this.off(\"mousedown\",o))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),ace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../range\").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?\"start\":t==\"markbeginend\"&&this.foldingStopMarker&&this.foldingStopMarker.test(r)?\"end\":\"\"},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\\S/,s=e.getLine(t),o=s.search(i);if(o==-1)return;var u=n||s.length,a=e.getLength(),f=t,l=t;while(++t<a){var c=e.getLine(t).search(i);if(c==-1)continue;if(c<=o)break;l=t}if(l>f){var h=e.getLine(l).length;return new r(f,u,l,h)}},this.openingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i+1},u=e.$findClosingBracket(t,o,s);if(!u)return;var a=e.foldWidgets[u.row];return a==null&&(a=e.getFoldWidget(u.row)),a==\"start\"&&u.row>o.row&&(u.row--,u.column=e.getLine(u.row).length),r.fromPoints(o,u)},this.closingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i},u=e.$findOpeningBracket(t,o);if(!u)return;return u.column++,o.column--,r.fromPoints(u,o)}}).call(i.prototype)}),ace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";t.isDark=!1,t.cssClass=\"ace-tm\",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;}';var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)}),ace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/range\"],function(e,t,n){\"use strict\";function o(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on(\"change\",this.updateOnChange),this.session.on(\"changeFold\",this.updateOnFold),this.session.on(\"changeEditor\",this.$onChangeEditor)}var r=e(\"./lib/oop\"),i=e(\"./lib/dom\"),s=e(\"./range\").Range;(function(){this.getRowLength=function(e){var t;return this.lineWidgets?t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:t=0,!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)}),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach();if(this.editor==e)return;this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on(\"beforeRender\",this.measureWidgets),e.renderer.on(\"afterRender\",this.renderWidgets))},this.detach=function(e){var t=this.editor;if(!t)return;this.editor=null,t.widgetManager=null,t.renderer.off(\"beforeRender\",this.measureWidgets),t.renderer.off(\"afterRender\",this.renderWidgets);var n=this.session.lineWidgets;n&&n.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})},this.updateOnFold=function(e,t){var n=t.lineWidgets;if(!n||!e.action)return;var r=e.data,i=r.start.row,s=r.end.row,o=e.action==\"add\";for(var u=i+1;u<s;u++)n[u]&&(n[u].hidden=o);n[s]&&(o?n[i]?n[s].hidden=o:n[i]=n[s]:(n[i]==n[s]&&(n[i]=undefined),n[s].hidden=o))},this.updateOnChange=function(e){var t=this.session.lineWidgets;if(!t)return;var n=e.start.row,r=e.end.row-n;if(r!==0)if(e.action==\"remove\"){var i=t.splice(n+1,r);i.forEach(function(e){e&&this.removeLineWidget(e)},this),this.$updateRows()}else{var s=new Array(r);s.unshift(n,0),t.splice.apply(t,s),this.$updateRows()}},this.$updateRows=function(){var e=this.session.lineWidgets;if(!e)return;var t=!0;e.forEach(function(e,n){if(e){t=!1,e.row=n;while(e.$oldWidget)e.$oldWidget.row=n,e=e.$oldWidget}}),t&&(this.session.lineWidgets=null)},this.addLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e.session=this.session;var n=this.editor.renderer;e.html&&!e.el&&(e.el=i.createElement(\"div\"),e.el.innerHTML=e.html),e.el&&(i.addCssClass(e.el,\"ace_lineWidgetContainer\"),e.el.style.position=\"absolute\",e.el.style.zIndex=5,n.container.appendChild(e.el),e._inDocument=!0),e.coverGutter||(e.el.style.zIndex=3),e.pixelHeight||(e.pixelHeight=e.el.offsetHeight),e.rowCount==null&&(e.rowCount=e.pixelHeight/n.layerConfig.lineHeight);var r=this.session.getFoldAt(e.row,0);e.$fold=r;if(r){var s=this.session.lineWidgets;e.row==r.end.row&&!s[r.start.row]?s[r.start.row]=e:e.hidden=!0}return this.session._emit(\"changeFold\",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,n),this.onWidgetChanged(e),e},this.removeLineWidget=function(e){e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el);if(e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(t){}if(this.session.lineWidgets){var n=this.session.lineWidgets[e.row];if(n==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else while(n){if(n.$oldWidget==e){n.$oldWidget=e.$oldWidget;break}n=n.$oldWidget}}this.session._emit(\"changeFold\",{data:{start:{row:e.row}}}),this.$updateRows()},this.getWidgetsAtRow=function(e){var t=this.session.lineWidgets,n=t&&t[e],r=[];while(n)r.push(n),n=n.$oldWidget;return r},this.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(e,t){var n=this.session._changedWidgets,r=t.layerConfig;if(!n||!n.length)return;var i=Infinity;for(var s=0;s<n.length;s++){var o=n[s];if(!o||!o.el)continue;if(o.session!=this.session)continue;if(!o._inDocument){if(this.session.lineWidgets[o.row]!=o)continue;o._inDocument=!0,t.container.appendChild(o.el)}o.h=o.el.offsetHeight,o.fixedWidth||(o.w=o.el.offsetWidth,o.screenWidth=Math.ceil(o.w/r.characterWidth));var u=o.h/r.lineHeight;o.coverLine&&(u-=this.session.getRowLineCount(o.row),u<0&&(u=0)),o.rowCount!=u&&(o.rowCount=u,o.row<i&&(i=o.row))}i!=Infinity&&(this.session._emit(\"changeFold\",{data:{start:{row:i}}}),this.session.lineWidgetWidth=null),this.session._changedWidgets=[]},this.renderWidgets=function(e,t){var n=t.layerConfig,r=this.session.lineWidgets;if(!r)return;var i=Math.min(this.firstRow,n.firstRow),s=Math.max(this.lastRow,n.lastRow,r.length);while(i>0&&!r[i])i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var o=i;o<=s;o++){var u=r[o];if(!u||!u.el)continue;if(u.hidden){u.el.style.top=-100-(u.pixelHeight||0)+\"px\";continue}u._inDocument||(u._inDocument=!0,t.container.appendChild(u.el));var a=t.$cursorLayer.getPixelPosition({row:o,column:0},!0).top;u.coverLine||(a+=n.lineHeight*this.session.getRowLineCount(u.row)),u.el.style.top=a-n.offset+\"px\";var f=u.coverGutter?0:t.gutterWidth;u.fixedWidth||(f-=t.scrollLeft),u.el.style.left=f+\"px\",u.fullWidth&&u.screenWidth&&(u.el.style.minWidth=n.width+2*n.padding+\"px\"),u.fixedWidth?u.el.style.right=t.scrollBar.getWidth()+\"px\":u.el.style.right=\"\"}}}).call(o.prototype),t.LineWidgets=o}),ace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\"],function(e,t,n){\"use strict\";function o(e,t,n){var r=0,i=e.length-1;while(r<=i){var s=r+i>>1,o=n(t,e[s]);if(o>0)r=s+1;else{if(!(o<0))return s;i=s-1}}return-(r+1)}function u(e,t,n){var r=e.getAnnotations().sort(s.comparePoints);if(!r.length)return;var i=o(r,{row:t,column:-1},s.comparePoints);i<0&&(i=-i-1),i>=r.length?i=n>0?0:r.length-1:i===0&&n<0&&(i=r.length-1);var u=r[i];if(!u||!n)return;if(u.row===t){do u=r[i+=n];while(u&&u.row===t);if(!u)return r.slice()}var a=[];t=u.row;do a[n<0?\"unshift\":\"push\"](u),u=r[i+=n];while(u&&u.row==t);return a.length&&a}var r=e(\"../line_widgets\").LineWidgets,i=e(\"../lib/dom\"),s=e(\"../range\").Range;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new r(n),n.widgetManager.attach(e));var s=e.getCursorPosition(),o=s.row,a=n.widgetManager.getWidgetsAtRow(o).filter(function(e){return e.type==\"errorMarker\"})[0];a?a.destroy():o-=t;var f=u(n,o,t),l;if(f){var c=f[0];s.column=(c.pos&&typeof c.column!=\"number\"?c.pos.sc:c.column)||0,s.row=c.row,l=e.renderer.$gutterLayer.$annotations[s.row]}else{if(a)return;l={text:[\"Looks good!\"],className:\"ace_ok\"}}e.session.unfold(s.row),e.selection.moveToPosition(s);var h={row:s.row,fixedWidth:!0,coverGutter:!0,el:i.createElement(\"div\"),type:\"errorMarker\"},p=h.el.appendChild(i.createElement(\"div\")),d=h.el.appendChild(i.createElement(\"div\"));d.className=\"error_widget_arrow \"+l.className;var v=e.renderer.$cursorLayer.getPixelPosition(s).left;d.style.left=v+e.renderer.gutterWidth-5+\"px\",h.el.className=\"error_widget_wrapper\",p.className=\"error_widget \"+l.className,p.innerHTML=l.text.join(\"<br>\"),p.appendChild(i.createElement(\"div\"));var m=function(e,t,n){if(t===0&&(n===\"esc\"||n===\"return\"))return h.destroy(),{command:\"null\"}};h.destroy=function(){if(e.$mouseHandler.isMousePressed)return;e.keyBinding.removeKeyboardHandler(m),n.widgetManager.removeLineWidget(h),e.off(\"changeSelection\",h.destroy),e.off(\"changeSession\",h.destroy),e.off(\"mouseup\",h.destroy),e.off(\"change\",h.destroy)},e.keyBinding.addKeyboardHandler(m),e.on(\"changeSelection\",h.destroy),e.on(\"changeSession\",h.destroy),e.on(\"mouseup\",h.destroy),e.on(\"change\",h.destroy),e.session.widgetManager.addLineWidget(h),h.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:h.el.offsetHeight})},i.importCssString(\"    .error_widget_wrapper {        background: inherit;        color: inherit;        border:none    }    .error_widget {        border-top: solid 2px;        border-bottom: solid 2px;        margin: 5px 0;        padding: 10px 40px;        white-space: pre-wrap;    }    .error_widget.ace_error, .error_widget_arrow.ace_error{        border-color: #ff5a5a    }    .error_widget.ace_warning, .error_widget_arrow.ace_warning{        border-color: #F1D817    }    .error_widget.ace_info, .error_widget_arrow.ace_info{        border-color: #5a5a5a    }    .error_widget.ace_ok, .error_widget_arrow.ace_ok{        border-color: #5aaa5a    }    .error_widget_arrow {        position: absolute;        border: solid 5px;        border-top-color: transparent!important;        border-right-color: transparent!important;        border-left-color: transparent!important;        top: -5px;    }\",\"\")}),ace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\"],function(e,t,n){\"use strict\";e(\"./lib/fixoldbrowsers\");var r=e(\"./lib/dom\"),i=e(\"./lib/event\"),s=e(\"./editor\").Editor,o=e(\"./edit_session\").EditSession,u=e(\"./undomanager\").UndoManager,a=e(\"./virtual_renderer\").VirtualRenderer;e(\"./worker/worker_client\"),e(\"./keyboard/hash_handler\"),e(\"./placeholder\"),e(\"./multi_select\"),e(\"./mode/folding/fold_mode\"),e(\"./theme/textmate\"),e(\"./ext/error_marker\"),t.config=e(\"./config\"),t.require=e,t.edit=function(e){if(typeof e==\"string\"){var n=e;e=document.getElementById(n);if(!e)throw new Error(\"ace.edit can't find div #\"+n)}if(e&&e.env&&e.env.editor instanceof s)return e.env.editor;var o=\"\";if(e&&/input|textarea/i.test(e.tagName)){var u=e;o=u.value,e=r.createElement(\"pre\"),u.parentNode.replaceChild(e,u)}else e&&(o=r.getInnerText(e),e.innerHTML=\"\");var f=t.createEditSession(o),l=new s(new a(e));l.setSession(f);var c={document:f,editor:l,onResize:l.resize.bind(l,null)};return u&&(c.textarea=u),i.addListener(window,\"resize\",c.onResize),l.on(\"destroy\",function(){i.removeListener(window,\"resize\",c.onResize),c.editor.container.env=null}),l.container.env=l.env=c,l},t.createEditSession=function(e,t){var n=new o(e,t);return n.setUndoManager(new u),n},t.EditSession=o,t.UndoManager=u,t.version=\"1.2.3\"});\n            (function() {\n                ace.require([\"ace/ace\"], function(a) {\n                    a && a.config.init(true);\n                    if (!window.ace)\n                        window.ace = a;\n                    for (var key in a) if (a.hasOwnProperty(key))\n                        window.ace[key] = a[key];\n                });\n            })();\n        "
  },
  {
    "path": "lib/src-min-noconflict-old/ext-beautify.js",
    "content": "ace.define(\"ace/ext/beautify/php_rules\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"ace/token_iterator\").TokenIterator;t.newLines=[{type:\"support.php_tag\",value:\"<?php\"},{type:\"support.php_tag\",value:\"<?\"},{type:\"support.php_tag\",value:\"?>\"},{type:\"paren.lparen\",value:\"{\",indent:!0},{type:\"paren.rparen\",breakBefore:!0,value:\"}\",indent:!1},{type:\"paren.rparen\",breakBefore:!0,value:\"})\",indent:!1,dontBreak:!0},{type:\"comment\"},{type:\"text\",value:\";\"},{type:\"text\",value:\":\",context:\"php\"},{type:\"keyword\",value:\"case\",indent:!0,dontBreak:!0},{type:\"keyword\",value:\"default\",indent:!0,dontBreak:!0},{type:\"keyword\",value:\"break\",indent:!1,dontBreak:!0},{type:\"punctuation.doctype.end\",value:\">\"},{type:\"meta.tag.punctuation.end\",value:\">\"},{type:\"meta.tag.punctuation.begin\",value:\"<\",blockTag:!0,indent:!0,dontBreak:!0},{type:\"meta.tag.punctuation.begin\",value:\"</\",indent:!1,breakBefore:!0,dontBreak:!0},{type:\"punctuation.operator\",value:\";\"}],t.spaces=[{type:\"xml-pe\",prepend:!0},{type:\"entity.other.attribute-name\",prepend:!0},{type:\"storage.type\",value:\"var\",append:!0},{type:\"storage.type\",value:\"function\",append:!0},{type:\"keyword.operator\",value:\"=\"},{type:\"keyword\",value:\"as\",prepend:!0,append:!0},{type:\"keyword\",value:\"function\",append:!0},{type:\"support.function\",next:/[^\\(]/,append:!0},{type:\"keyword\",value:\"or\",append:!0,prepend:!0},{type:\"keyword\",value:\"and\",append:!0,prepend:!0},{type:\"keyword\",value:\"case\",append:!0},{type:\"keyword.operator\",value:\"||\",append:!0,prepend:!0},{type:\"keyword.operator\",value:\"&&\",append:!0,prepend:!0}],t.singleTags=[\"!doctype\",\"area\",\"base\",\"br\",\"hr\",\"input\",\"img\",\"link\",\"meta\"],t.transform=function(e,n,r){var i=e.getCurrentToken(),s=t.newLines,o=t.spaces,u=t.singleTags,a=\"\",f=0,l=!1,c,h,p={},d,v={},m=!1,g=\"\";while(i!==null){console.log(i);if(!i){i=e.stepForward();continue}i.type==\"support.php_tag\"&&i.value!=\"?>\"?r=\"php\":i.type==\"support.php_tag\"&&i.value==\"?>\"?r=\"html\":i.type==\"meta.tag.name.style\"&&r!=\"css\"?r=\"css\":i.type==\"meta.tag.name.style\"&&r==\"css\"?r=\"html\":i.type==\"meta.tag.name.script\"&&r!=\"js\"?r=\"js\":i.type==\"meta.tag.name.script\"&&r==\"js\"&&(r=\"html\"),v=e.stepForward(),v&&v.type.indexOf(\"meta.tag.name\")==0&&(d=v.value),p.type==\"support.php_tag\"&&p.value==\"<?=\"&&(l=!0),i.type==\"meta.tag.name\"&&(i.value=i.value.toLowerCase()),i.type==\"text\"&&(i.value=i.value.trim());if(!i.value){i=v;continue}g=i.value;for(var y in o)i.type==o[y].type&&(!o[y].value||i.value==o[y].value)&&v&&(!o[y].next||o[y].next.test(v.value))&&(o[y].prepend&&(g=\" \"+i.value),o[y].append&&(g+=\" \"));i.type.indexOf(\"meta.tag.name\")==0&&(c=i.value),m=!1;for(y in s)if(i.type==s[y].type&&(!s[y].value||i.value==s[y].value)&&(!s[y].blockTag||u.indexOf(d)===-1)&&(!s[y].context||s[y].context===r)){s[y].indent===!1&&f--;if(s[y].breakBefore&&(!s[y].prev||s[y].prev.test(p.value))){a+=\"\\n\",m=!0;for(y=0;y<f;y++)a+=\"\t\"}break}if(l===!1)for(y in s)if(p.type==s[y].type&&(!s[y].value||p.value==s[y].value)&&(!s[y].blockTag||u.indexOf(c)===-1)&&(!s[y].context||s[y].context===r)){s[y].indent===!0&&f++;if(!s[y].dontBreak&&!m){a+=\"\\n\";for(y=0;y<f;y++)a+=\"\t\"}break}a+=g,p.type==\"support.php_tag\"&&p.value==\"?>\"&&(l=!1),h=c,p=i,i=v;if(i===null)break}return a}}),ace.define(\"ace/ext/beautify\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/ext/beautify/php_rules\"],function(e,t,n){\"use strict\";var r=e(\"ace/token_iterator\").TokenIterator,i=e(\"./beautify/php_rules\").transform;t.beautify=function(e){var t=new r(e,0,0),n=t.getCurrentToken(),s=e.$modeId.split(\"/\").pop(),o=i(t,s);e.doc.setValue(o)},t.commands=[{name:\"beautify\",exec:function(e){t.beautify(e.session)},bindKey:\"Ctrl-Shift-B\"}]});\n                (function() {\n                    ace.require([\"ace/ext/beautify\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict-old/ext-chromevox.js",
    "content": "ace.define(\"ace/ext/chromevox\",[\"require\",\"exports\",\"module\",\"ace/editor\",\"ace/config\"],function(e,t,n){function gt(){return typeof cvox!=\"undefined\"&&cvox&&cvox.Api}function wt(e){if(gt())mt(e);else{yt++;if(yt>=bt)return;window.setTimeout(wt,500,e)}}var r={};r.SpeechProperty,r.Cursor,r.Token,r.Annotation;var i={rate:.8,pitch:.4,volume:.9},s={rate:1,pitch:.5,volume:.9},o={rate:.8,pitch:.8,volume:.9},u={rate:.8,pitch:.3,volume:.9},a={rate:.8,pitch:.7,volume:.9},f={rate:.8,pitch:.8,volume:.9},l={punctuationEcho:\"none\",relativePitch:-0.6},c=\"ALERT_NONMODAL\",h=\"ALERT_MODAL\",p=\"INVALID_KEYPRESS\",d=\"insertMode\",v=\"start\",m=[{substr:\";\",newSubstr:\" semicolon \"},{substr:\":\",newSubstr:\" colon \"}],g={SPEAK_ANNOT:\"annots\",SPEAK_ALL_ANNOTS:\"all_annots\",TOGGLE_LOCATION:\"toggle_location\",SPEAK_MODE:\"mode\",SPEAK_ROW_COL:\"row_col\",TOGGLE_DISPLACEMENT:\"toggle_displacement\",FOCUS_TEXT:\"focus_text\"},y=\"CONTROL + SHIFT \";r.editor=null;var b=null,w={},E=!1,S=!1,x=!1,T=null,N={},C={},k=function(e){return y+String.fromCharCode(e)},L=function(){var e=r.editor.keyBinding.getKeyboardHandler();return e.$id===\"ace/keyboard/vim\"},A=function(e){return r.editor.getSession().getTokenAt(e.row,e.column+1)},O=function(e){return r.editor.getSession().getLine(e.row)},M=function(e){w[e.row]&&cvox.Api.playEarcon(c),E?(cvox.Api.stop(),W(e),R(A(e)),I(e.row,1)):I(e.row,0)},_=function(e){var t=O(e),n=t.substr(e.column-1);e.column===0&&(n=\" \"+t);var r=/^\\W(\\w+)/,i=r.exec(n);return i!==null},D={constant:{prop:i},entity:{prop:o},keyword:{prop:u},storage:{prop:a},variable:{prop:f},meta:{prop:s,replace:[{substr:\"</\",newSubstr:\" closing tag \"},{substr:\"/>\",newSubstr:\" close tag \"},{substr:\"<\",newSubstr:\" tag start \"},{substr:\">\",newSubstr:\" tag end \"}]}},P={prop:P},H=function(e,t){var n=e;for(var r=0;r<t.length;r++){var i=t[r],s=new RegExp(i.substr,\"g\");n=n.replace(s,i.newSubstr)}return n},B=function(e,t,n){var r={};r.value=\"\",r.type=e[t].type;for(var i=t;i<n;i++)r.value+=e[i].value;return r},j=function(e){if(e.length<=1)return e;var t=[],n=0;for(var r=1;r<e.length;r++){var i=e[n],s=e[r];U(i)!==U(s)&&(t.push(B(e,n,r)),n=r)}return t.push(B(e,n,e.length)),t},F=function(e){var t=r.editor.getSession().getLine(e),n=/^\\s*$/;return n.exec(t)!==null},I=function(e,t){var n=r.editor.getSession().getTokens(e);if(n.length===0||F(e)){cvox.Api.playEarcon(\"EDITABLE_TEXT\");return}n=j(n);var i=n[0];n=n.filter(function(e){return e!==i}),z(i,t),n.forEach(R)},q=function(e){z(e,0)},R=function(e){z(e,1)},U=function(e){if(!e||!e.type)return;var t=e.type.split(\".\");if(t.length===0)return;var n=t[0],r=D[n];return r?r:P},z=function(e,t){var n=U(e),r=H(e.value,m);n.replace&&(r=H(r,n.replace)),cvox.Api.speak(r,t,n.prop)},W=function(e){var t=O(e);cvox.Api.speak(t[e.column],1)},X=function(e,t){var n=O(t),r=n.substring(e.column,t.column);r=r.replace(/ /g,\" space \"),cvox.Api.speak(r)},V=function(e,t){if(Math.abs(e.column-t.column)!==1){var n=O(t).length;if(t.column===0||t.column===n){I(t.row,0);return}if(_(t)){cvox.Api.stop(),R(A(t));return}}W(t)},$=function(e,t){r.editor.selection.isEmpty()?S?X(e,t):V(e,t):(X(e,t),cvox.Api.speak(\"selected\",1))},J=function(e){if(x){x=!1;return}var t=r.editor.selection.getCursor();t.row!==b.row?M(t):$(b,t),b=t},K=function(e){r.editor.selection.isEmpty()&&cvox.Api.speak(\"unselected\")},Q=function(e){switch(e.action){case\"remove\":cvox.Api.speak(e.text,0,l),x=!0;break;case\"insert\":cvox.Api.speak(e.text,0),x=!0}},G=function(e){var t=e.row,n=e.column;return!w[t]||!w[t][n]},Y=function(e){w={};for(var t=0;t<e.length;t++){var n=e[t],r=n.row,i=n.column;w[r]||(w[r]={}),w[r][i]=n}},Z=function(e){var t=r.editor.getSession().getAnnotations(),n=t.filter(G);n.length>0&&cvox.Api.playEarcon(c),Y(t)},et=function(e){var t=e.type+\" \"+e.text+\" on \"+nt(e.row,e.column);t=t.replace(\";\",\"semicolon\"),cvox.Api.speak(t,1)},tt=function(e){var t=w[e];for(var n in t)et(t[n])},nt=function(e,t){return\"row \"+(e+1)+\" column \"+(t+1)},rt=function(){cvox.Api.speak(nt(b.row,b.column))},it=function(){for(var e in w)tt(e)},st=function(){if(!L())return;switch(r.editor.keyBinding.$data.state){case d:cvox.Api.speak(\"Insert mode\");break;case v:cvox.Api.speak(\"Command mode\")}},ot=function(){E=!E,E?cvox.Api.speak(\"Speak location on row change enabled.\"):cvox.Api.speak(\"Speak location on row change disabled.\")},ut=function(){S=!S,S?cvox.Api.speak(\"Speak displacement on column changes.\"):cvox.Api.speak(\"Speak current character or word on column changes.\")},at=function(e){if(e.ctrlKey&&e.shiftKey){var t=N[e.keyCode];t&&t.func()}},ft=function(e,t){if(!L())return;var n=t.keyBinding.$data.state;if(n===T)return;switch(n){case d:cvox.Api.playEarcon(h),cvox.Api.setKeyEcho(!0);break;case v:cvox.Api.playEarcon(h),cvox.Api.setKeyEcho(!1)}T=n},lt=function(e){var t=e.detail.customCommand,n=C[t];n&&(n.func(),r.editor.focus())},ct=function(){var e=dt.map(function(e){return{desc:e.desc+k(e.keyCode),cmd:e.cmd}}),t=document.querySelector(\"body\");t.setAttribute(\"contextMenuActions\",JSON.stringify(e)),t.addEventListener(\"ATCustomEvent\",lt,!0)},ht=function(e){e.match?I(b.row,0):cvox.Api.playEarcon(p)},pt=function(){r.editor.focus()},dt=[{keyCode:49,func:function(){tt(b.row)},cmd:g.SPEAK_ANNOT,desc:\"Speak annotations on line\"},{keyCode:50,func:it,cmd:g.SPEAK_ALL_ANNOTS,desc:\"Speak all annotations\"},{keyCode:51,func:st,cmd:g.SPEAK_MODE,desc:\"Speak Vim mode\"},{keyCode:52,func:ot,cmd:g.TOGGLE_LOCATION,desc:\"Toggle speak row location\"},{keyCode:53,func:rt,cmd:g.SPEAK_ROW_COL,desc:\"Speak row and column\"},{keyCode:54,func:ut,cmd:g.TOGGLE_DISPLACEMENT,desc:\"Toggle speak displacement\"},{keyCode:55,func:pt,cmd:g.FOCUS_TEXT,desc:\"Focus text\"}],vt=function(e,t){r.editor=t,t.getSession().selection.on(\"changeCursor\",J),t.getSession().selection.on(\"changeSelection\",K),t.getSession().on(\"change\",Q),t.getSession().on(\"changeAnnotation\",Z),t.on(\"changeStatus\",ft),t.on(\"findSearchBox\",ht),t.container.addEventListener(\"keydown\",at),b=t.selection.getCursor()},mt=function(e){vt(null,e),dt.forEach(function(e){N[e.keyCode]=e,C[e.cmd]=e}),e.on(\"focus\",vt),L()&&cvox.Api.setKeyEcho(!1),ct()},yt=0,bt=15,Et=e(\"../editor\").Editor;e(\"../config\").defineOptions(Et.prototype,\"editor\",{enableChromevoxEnhancements:{set:function(e){e&&wt(this)},value:!0}})});\n                (function() {\n                    ace.require([\"ace/ext/chromevox\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict-old/ext-elastic_tabstops_lite.js",
    "content": "ace.define(\"ace/ext/elastic_tabstops_lite\",[\"require\",\"exports\",\"module\",\"ace/editor\",\"ace/config\"],function(e,t,n){\"use strict\";var r=function(e){this.$editor=e;var t=this,n=[],r=!1;this.onAfterExec=function(){r=!1,t.processRows(n),n=[]},this.onExec=function(){r=!0},this.onChange=function(e){r&&(n.indexOf(e.start.row)==-1&&n.push(e.start.row),e.end.row!=e.start.row&&n.push(e.end.row))}};(function(){this.processRows=function(e){this.$inChange=!0;var t=[];for(var n=0,r=e.length;n<r;n++){var i=e[n];if(t.indexOf(i)>-1)continue;var s=this.$findCellWidthsForBlock(i),o=this.$setBlockCellWidthsToMax(s.cellWidths),u=s.firstRow;for(var a=0,f=o.length;a<f;a++){var l=o[a];t.push(u),this.$adjustRow(u,l),u++}}this.$inChange=!1},this.$findCellWidthsForBlock=function(e){var t=[],n,r=e;while(r>=0){n=this.$cellWidthsForRow(r);if(n.length==0)break;t.unshift(n),r--}var i=r+1;r=e;var s=this.$editor.session.getLength();while(r<s-1){r++,n=this.$cellWidthsForRow(r);if(n.length==0)break;t.push(n)}return{cellWidths:t,firstRow:i}},this.$cellWidthsForRow=function(e){var t=this.$selectionColumnsForRow(e),n=[-1].concat(this.$tabsForRow(e)),r=n.map(function(e){return 0}).slice(1),i=this.$editor.session.getLine(e);for(var s=0,o=n.length-1;s<o;s++){var u=n[s]+1,a=n[s+1],f=this.$rightmostSelectionInCell(t,a),l=i.substring(u,a);r[s]=Math.max(l.replace(/\\s+$/g,\"\").length,f-u)}return r},this.$selectionColumnsForRow=function(e){var t=[],n=this.$editor.getCursorPosition();return this.$editor.session.getSelection().isEmpty()&&e==n.row&&t.push(n.column),t},this.$setBlockCellWidthsToMax=function(e){var t=!0,n,r,i,s=this.$izip_longest(e);for(var o=0,u=s.length;o<u;o++){var a=s[o];if(!a.push){console.error(a);continue}a.push(NaN);for(var f=0,l=a.length;f<l;f++){var c=a[f];t&&(n=f,i=0,t=!1);if(isNaN(c)){r=f;for(var h=n;h<r;h++)e[h][o]=i;t=!0}i=Math.max(i,c)}}return e},this.$rightmostSelectionInCell=function(e,t){var n=0;if(e.length){var r=[];for(var i=0,s=e.length;i<s;i++)e[i]<=t?r.push(i):r.push(0);n=Math.max.apply(Math,r)}return n},this.$tabsForRow=function(e){var t=[],n=this.$editor.session.getLine(e),r=/\\t/g,i;while((i=r.exec(n))!=null)t.push(i.index);return t},this.$adjustRow=function(e,t){var n=this.$tabsForRow(e);if(n.length==0)return;var r=0,i=-1,s=this.$izip(t,n);for(var o=0,u=s.length;o<u;o++){var a=s[o][0],f=s[o][1];i+=1+a,f+=r;var l=i-f;if(l==0)continue;var c=this.$editor.session.getLine(e).substr(0,f),h=c.replace(/\\s*$/g,\"\"),p=c.length-h.length;l>0&&(this.$editor.session.getDocument().insertInLine({row:e,column:f+1},Array(l+1).join(\" \")+\"\t\"),this.$editor.session.getDocument().removeInLine(e,f,f+1),r+=l),l<0&&p>=-l&&(this.$editor.session.getDocument().removeInLine(e,f+l,f),r+=l)}},this.$izip_longest=function(e){if(!e[0])return[];var t=e[0].length,n=e.length;for(var r=1;r<n;r++){var i=e[r].length;i>t&&(t=i)}var s=[];for(var o=0;o<t;o++){var u=[];for(var r=0;r<n;r++)e[r][o]===\"\"?u.push(NaN):u.push(e[r][o]);s.push(u)}return s},this.$izip=function(e,t){var n=e.length>=t.length?t.length:e.length,r=[];for(var i=0;i<n;i++){var s=[e[i],t[i]];r.push(s)}return r}}).call(r.prototype),t.ElasticTabstopsLite=r;var i=e(\"../editor\").Editor;e(\"../config\").defineOptions(i.prototype,\"editor\",{useElasticTabstops:{set:function(e){e?(this.elasticTabstops||(this.elasticTabstops=new r(this)),this.commands.on(\"afterExec\",this.elasticTabstops.onAfterExec),this.commands.on(\"exec\",this.elasticTabstops.onExec),this.on(\"change\",this.elasticTabstops.onChange)):this.elasticTabstops&&(this.commands.removeListener(\"afterExec\",this.elasticTabstops.onAfterExec),this.commands.removeListener(\"exec\",this.elasticTabstops.onExec),this.removeListener(\"change\",this.elasticTabstops.onChange))}}})});\n                (function() {\n                    ace.require([\"ace/ext/elastic_tabstops_lite\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict-old/ext-emmet.js",
    "content": "ace.define(\"ace/snippets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/lib/lang\",\"ace/range\",\"ace/anchor\",\"ace/keyboard/hash_handler\",\"ace/tokenizer\",\"ace/lib/dom\",\"ace/editor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=e(\"./lib/lang\"),o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=e(\"./keyboard/hash_handler\").HashHandler,f=e(\"./tokenizer\").Tokenizer,l=o.comparePoints,c=function(){this.snippetMap={},this.snippetNameMap={}};(function(){r.implement(this,i),this.getTokenizer=function(){function e(e,t,n){return e=e.substr(1),/^\\d+$/.test(e)&&!n.inFormatString?[{tabstopId:parseInt(e,10)}]:[{text:e}]}function t(e){return\"(?:[^\\\\\\\\\"+e+\"]|\\\\\\\\.)\"}return c.$tokenizer=new f({start:[{regex:/:/,onMatch:function(e,t,n){return n.length&&n[0].expectIf?(n[0].expectIf=!1,n[0].elseBranch=n[0],[n[0]]):\":\"}},{regex:/\\\\./,onMatch:function(e,t,n){var r=e[1];return r==\"}\"&&n.length?e=r:\"`$\\\\\".indexOf(r)!=-1?e=r:n.inFormatString&&(r==\"n\"?e=\"\\n\":r==\"t\"?e=\"\\n\":\"ulULE\".indexOf(r)!=-1&&(e={changeCase:r,local:r>\"a\"})),[e]}},{regex:/}/,onMatch:function(e,t,n){return[n.length?n.shift():e]}},{regex:/\\$(?:\\d+|\\w+)/,onMatch:e},{regex:/\\$\\{[\\dA-Z_a-z]+/,onMatch:function(t,n,r){var i=e(t.substr(1),n,r);return r.unshift(i[0]),i},next:\"snippetVar\"},{regex:/\\n/,token:\"newline\",merge:!1}],snippetVar:[{regex:\"\\\\|\"+t(\"\\\\|\")+\"*\\\\|\",onMatch:function(e,t,n){n[0].choices=e.slice(1,-1).split(\",\")},next:\"start\"},{regex:\"/(\"+t(\"/\")+\"+)/(?:(\"+t(\"/\")+\"*)/)(\\\\w*):?\",onMatch:function(e,t,n){var r=n[0];return r.fmtString=e,e=this.splitRegex.exec(e),r.guard=e[1],r.fmt=e[2],r.flag=e[3],\"\"},next:\"start\"},{regex:\"`\"+t(\"`\")+\"*`\",onMatch:function(e,t,n){return n[0].code=e.splice(1,-1),\"\"},next:\"start\"},{regex:\"\\\\?\",onMatch:function(e,t,n){n[0]&&(n[0].expectIf=!0)},next:\"start\"},{regex:\"([^:}\\\\\\\\]|\\\\\\\\.)*:?\",token:\"\",next:\"start\"}],formatString:[{regex:\"/(\"+t(\"/\")+\"+)/\",token:\"regex\"},{regex:\"\",onMatch:function(e,t,n){n.inFormatString=!0},next:\"start\"}]}),c.prototype.getTokenizer=function(){return c.$tokenizer},c.$tokenizer},this.tokenizeTmSnippet=function(e,t){return this.getTokenizer().getLineTokens(e,t).tokens.map(function(e){return e.value||e})},this.$getDefaultValue=function(e,t){if(/^[A-Z]\\d+$/.test(t)){var n=t.substr(1);return(this.variables[t[0]+\"__\"]||{})[n]}if(/^\\d+$/.test(t))return(this.variables.__||{})[t];t=t.replace(/^TM_/,\"\");if(!e)return;var r=e.session;switch(t){case\"CURRENT_WORD\":var i=r.getWordRange();case\"SELECTION\":case\"SELECTED_TEXT\":return r.getTextRange(i);case\"CURRENT_LINE\":return r.getLine(e.getCursorPosition().row);case\"PREV_LINE\":return r.getLine(e.getCursorPosition().row-1);case\"LINE_INDEX\":return e.getCursorPosition().column;case\"LINE_NUMBER\":return e.getCursorPosition().row+1;case\"SOFT_TABS\":return r.getUseSoftTabs()?\"YES\":\"NO\";case\"TAB_SIZE\":return r.getTabSize();case\"FILENAME\":case\"FILEPATH\":return\"\";case\"FULLNAME\":return\"Ace\"}},this.variables={},this.getVariableValue=function(e,t){return this.variables.hasOwnProperty(t)?this.variables[t](e,t)||\"\":this.$getDefaultValue(e,t)||\"\"},this.tmStrFormat=function(e,t,n){var r=t.flag||\"\",i=t.guard;i=new RegExp(i,r.replace(/[^gi]/,\"\"));var s=this.tokenizeTmSnippet(t.fmt,\"formatString\"),o=this,u=e.replace(i,function(){o.variables.__=arguments;var e=o.resolveVariables(s,n),t=\"E\";for(var r=0;r<e.length;r++){var i=e[r];if(typeof i==\"object\"){e[r]=\"\";if(i.changeCase&&i.local){var u=e[r+1];u&&typeof u==\"string\"&&(i.changeCase==\"u\"?e[r]=u[0].toUpperCase():e[r]=u[0].toLowerCase(),e[r+1]=u.substr(1))}else i.changeCase&&(t=i.changeCase)}else t==\"U\"?e[r]=i.toUpperCase():t==\"L\"&&(e[r]=i.toLowerCase())}return e.join(\"\")});return this.variables.__=null,u},this.resolveVariables=function(e,t){function o(t){var n=e.indexOf(t,r+1);n!=-1&&(r=n)}var n=[];for(var r=0;r<e.length;r++){var i=e[r];if(typeof i==\"string\")n.push(i);else{if(typeof i!=\"object\")continue;if(i.skip)o(i);else{if(i.processed<r)continue;if(i.text){var s=this.getVariableValue(t,i.text);s&&i.fmtString&&(s=this.tmStrFormat(s,i)),i.processed=r,i.expectIf==null?s&&(n.push(s),o(i)):s?i.skip=i.elseBranch:o(i)}else i.tabstopId!=null?n.push(i):i.changeCase!=null&&n.push(i)}}}return n},this.insertSnippetForSelection=function(e,t){function f(e){var t=[];for(var n=0;n<e.length;n++){var r=e[n];if(typeof r==\"object\"){if(a[r.tabstopId])continue;var i=e.lastIndexOf(r,n-1);r=t[i]||{tabstopId:r.tabstopId}}t[n]=r}return t}var n=e.getCursorPosition(),r=e.session.getLine(n.row),i=e.session.getTabString(),s=r.match(/^\\s*/)[0];n.column<s.length&&(s=s.slice(0,n.column));var o=this.tokenizeTmSnippet(t);o=this.resolveVariables(o,e),o=o.map(function(e){return e==\"\\n\"?e+s:typeof e==\"string\"?e.replace(/\\t/g,i):e});var u=[];o.forEach(function(e,t){if(typeof e!=\"object\")return;var n=e.tabstopId,r=u[n];r||(r=u[n]=[],r.index=n,r.value=\"\");if(r.indexOf(e)!==-1)return;r.push(e);var i=o.indexOf(e,t+1);if(i===-1)return;var s=o.slice(t+1,i),a=s.some(function(e){return typeof e==\"object\"});a&&!r.value?r.value=s:s.length&&(!r.value||typeof r.value!=\"string\")&&(r.value=s.join(\"\"))}),u.forEach(function(e){e.length=0});var a={};for(var l=0;l<o.length;l++){var c=o[l];if(typeof c!=\"object\")continue;var p=c.tabstopId,d=o.indexOf(c,l+1);if(a[p]){a[p]===c&&(a[p]=null);continue}var v=u[p],m=typeof v.value==\"string\"?[v.value]:f(v.value);m.unshift(l+1,Math.max(0,d-l)),m.push(c),a[p]=c,o.splice.apply(o,m),v.indexOf(c)===-1&&v.push(c)}var g=0,y=0,b=\"\";o.forEach(function(e){typeof e==\"string\"?(e[0]===\"\\n\"?(y=e.length-1,g++):y+=e.length,b+=e):e.start?e.end={row:g,column:y}:e.start={row:g,column:y}});var w=e.getSelectionRange(),E=e.session.replace(w,b),S=new h(e),x=e.inVirtualSelectionMode&&e.selection.index;S.addTabstops(u,w.start,E,x)},this.insertSnippet=function(e,t){var n=this;if(e.inVirtualSelectionMode)return n.insertSnippetForSelection(e,t);e.forEachSelection(function(){n.insertSnippetForSelection(e,t)},null,{keepOrder:!0}),e.tabstopManager&&e.tabstopManager.tabNext()},this.$getScope=function(e){var t=e.session.$mode.$id||\"\";t=t.split(\"/\").pop();if(t===\"html\"||t===\"php\"){t===\"php\"&&!e.session.$mode.inlinePhp&&(t=\"html\");var n=e.getCursorPosition(),r=e.session.getState(n.row);typeof r==\"object\"&&(r=r[0]),r.substring&&(r.substring(0,3)==\"js-\"?t=\"javascript\":r.substring(0,4)==\"css-\"?t=\"css\":r.substring(0,4)==\"php-\"&&(t=\"php\"))}return t},this.getActiveScopes=function(e){var t=this.$getScope(e),n=[t],r=this.snippetMap;return r[t]&&r[t].includeScopes&&n.push.apply(n,r[t].includeScopes),n.push(\"_\"),n},this.expandWithTab=function(e,t){var n=this,r=e.forEachSelection(function(){return n.expandSnippetForSelection(e,t)},null,{keepOrder:!0});return r&&e.tabstopManager&&e.tabstopManager.tabNext(),r},this.expandSnippetForSelection=function(e,t){var n=e.getCursorPosition(),r=e.session.getLine(n.row),i=r.substring(0,n.column),s=r.substr(n.column),o=this.snippetMap,u;return this.getActiveScopes(e).some(function(e){var t=o[e];return t&&(u=this.findMatchingSnippet(t,i,s)),!!u},this),u?t&&t.dryRun?!0:(e.session.doc.removeInLine(n.row,n.column-u.replaceBefore.length,n.column+u.replaceAfter.length),this.variables.M__=u.matchBefore,this.variables.T__=u.matchAfter,this.insertSnippetForSelection(e,u.content),this.variables.M__=this.variables.T__=null,!0):!1},this.findMatchingSnippet=function(e,t,n){for(var r=e.length;r--;){var i=e[r];if(i.startRe&&!i.startRe.test(t))continue;if(i.endRe&&!i.endRe.test(n))continue;if(!i.startRe&&!i.endRe)continue;return i.matchBefore=i.startRe?i.startRe.exec(t):[\"\"],i.matchAfter=i.endRe?i.endRe.exec(n):[\"\"],i.replaceBefore=i.triggerRe?i.triggerRe.exec(t)[0]:\"\",i.replaceAfter=i.endTriggerRe?i.endTriggerRe.exec(n)[0]:\"\",i}},this.snippetMap={},this.snippetNameMap={},this.register=function(e,t){function o(e){return e&&!/^\\^?\\(.*\\)\\$?$|^\\\\b$/.test(e)&&(e=\"(?:\"+e+\")\"),e||\"\"}function u(e,t,n){return e=o(e),t=o(t),n?(e=t+e,e&&e[e.length-1]!=\"$\"&&(e+=\"$\")):(e+=t,e&&e[0]!=\"^\"&&(e=\"^\"+e)),new RegExp(e)}function a(e){e.scope||(e.scope=t||\"_\"),t=e.scope,n[t]||(n[t]=[],r[t]={});var o=r[t];if(e.name){var a=o[e.name];a&&i.unregister(a),o[e.name]=e}n[t].push(e),e.tabTrigger&&!e.trigger&&(!e.guard&&/^\\w/.test(e.tabTrigger)&&(e.guard=\"\\\\b\"),e.trigger=s.escapeRegExp(e.tabTrigger));if(!e.trigger&&!e.guard&&!e.endTrigger&&!e.endGuard)return;e.startRe=u(e.trigger,e.guard,!0),e.triggerRe=new RegExp(e.trigger,\"\",!0),e.endRe=u(e.endTrigger,e.endGuard,!0),e.endTriggerRe=new RegExp(e.endTrigger,\"\",!0)}var n=this.snippetMap,r=this.snippetNameMap,i=this;e||(e=[]),e&&e.content?a(e):Array.isArray(e)&&e.forEach(a),this._signal(\"registerSnippets\",{scope:t})},this.unregister=function(e,t){function i(e){var i=r[e.scope||t];if(i&&i[e.name]){delete i[e.name];var s=n[e.scope||t],o=s&&s.indexOf(e);o>=0&&s.splice(o,1)}}var n=this.snippetMap,r=this.snippetNameMap;e.content?i(e):Array.isArray(e)&&e.forEach(i)},this.parseSnippetFile=function(e){e=e.replace(/\\r/g,\"\");var t=[],n={},r=/^#.*|^({[\\s\\S]*})\\s*$|^(\\S+) (.*)$|^((?:\\n*\\t.*)+)/gm,i;while(i=r.exec(e)){if(i[1])try{n=JSON.parse(i[1]),t.push(n)}catch(s){}if(i[4])n.content=i[4].replace(/^\\t/gm,\"\"),t.push(n),n={};else{var o=i[2],u=i[3];if(o==\"regex\"){var a=/\\/((?:[^\\/\\\\]|\\\\.)*)|$/g;n.guard=a.exec(u)[1],n.trigger=a.exec(u)[1],n.endTrigger=a.exec(u)[1],n.endGuard=a.exec(u)[1]}else o==\"snippet\"?(n.tabTrigger=u.match(/^\\S*/)[0],n.name||(n.name=u)):n[o]=u}}return t},this.getSnippetByName=function(e,t){var n=this.snippetNameMap,r;return this.getActiveScopes(t).some(function(t){var i=n[t];return i&&(r=i[e]),!!r},this),r}}).call(c.prototype);var h=function(e){if(e.tabstopManager)return e.tabstopManager;e.tabstopManager=this,this.$onChange=this.onChange.bind(this),this.$onChangeSelection=s.delayedCall(this.onChangeSelection.bind(this)).schedule,this.$onChangeSession=this.onChangeSession.bind(this),this.$onAfterExec=this.onAfterExec.bind(this),this.attach(e)};(function(){this.attach=function(e){this.index=0,this.ranges=[],this.tabstops=[],this.$openTabstops=null,this.selectedTabstop=null,this.editor=e,this.editor.on(\"change\",this.$onChange),this.editor.on(\"changeSelection\",this.$onChangeSelection),this.editor.on(\"changeSession\",this.$onChangeSession),this.editor.commands.on(\"afterExec\",this.$onAfterExec),this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},this.detach=function(){this.tabstops.forEach(this.removeTabstopMarkers,this),this.ranges=null,this.tabstops=null,this.selectedTabstop=null,this.editor.removeListener(\"change\",this.$onChange),this.editor.removeListener(\"changeSelection\",this.$onChangeSelection),this.editor.removeListener(\"changeSession\",this.$onChangeSession),this.editor.commands.removeListener(\"afterExec\",this.$onAfterExec),this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.tabstopManager=null,this.editor=null},this.onChange=function(e){var t=e,n=e.action[0]==\"r\",r=e.start,i=e.end,s=r.row,o=i.row,u=o-s,a=i.column-r.column;n&&(u=-u,a=-a);if(!this.$inChange&&n){var f=this.selectedTabstop,c=f&&!f.some(function(e){return l(e.start,r)<=0&&l(e.end,i)>=0});if(c)return this.detach()}var h=this.ranges;for(var p=0;p<h.length;p++){var d=h[p];if(d.end.row<r.row)continue;if(n&&l(r,d.start)<0&&l(i,d.end)>0){this.removeRange(d),p--;continue}d.start.row==s&&d.start.column>r.column&&(d.start.column+=a),d.end.row==s&&d.end.column>=r.column&&(d.end.column+=a),d.start.row>=s&&(d.start.row+=u),d.end.row>=s&&(d.end.row+=u),l(d.start,d.end)>0&&this.removeRange(d)}h.length||this.detach()},this.updateLinkedFields=function(){var e=this.selectedTabstop;if(!e||!e.hasLinkedRanges)return;this.$inChange=!0;var n=this.editor.session,r=n.getTextRange(e.firstNonLinked);for(var i=e.length;i--;){var s=e[i];if(!s.linked)continue;var o=t.snippetManager.tmStrFormat(r,s.original);n.replace(s,o)}this.$inChange=!1},this.onAfterExec=function(e){e.command&&!e.command.readOnly&&this.updateLinkedFields()},this.onChangeSelection=function(){if(!this.editor)return;var e=this.editor.selection.lead,t=this.editor.selection.anchor,n=this.editor.selection.isEmpty();for(var r=this.ranges.length;r--;){if(this.ranges[r].linked)continue;var i=this.ranges[r].contains(e.row,e.column),s=n||this.ranges[r].contains(t.row,t.column);if(i&&s)return}this.detach()},this.onChangeSession=function(){this.detach()},this.tabNext=function(e){var t=this.tabstops.length,n=this.index+(e||1);n=Math.min(Math.max(n,1),t),n==t&&(n=0),this.selectTabstop(n),n===0&&this.detach()},this.selectTabstop=function(e){this.$openTabstops=null;var t=this.tabstops[this.index];t&&this.addTabstopMarkers(t),this.index=e,t=this.tabstops[this.index];if(!t||!t.length)return;this.selectedTabstop=t;if(!this.editor.inVirtualSelectionMode){var n=this.editor.multiSelect;n.toSingleRange(t.firstNonLinked.clone());for(var r=t.length;r--;){if(t.hasLinkedRanges&&t[r].linked)continue;n.addRange(t[r].clone(),!0)}n.ranges[0]&&n.addRange(n.ranges[0].clone())}else this.editor.selection.setRange(t.firstNonLinked);this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},this.addTabstops=function(e,t,n){this.$openTabstops||(this.$openTabstops=[]);if(!e[0]){var r=o.fromPoints(n,n);v(r.start,t),v(r.end,t),e[0]=[r],e[0].index=0}var i=this.index,s=[i+1,0],u=this.ranges;e.forEach(function(e,n){var r=this.$openTabstops[n]||e;for(var i=e.length;i--;){var a=e[i],f=o.fromPoints(a.start,a.end||a.start);d(f.start,t),d(f.end,t),f.original=a,f.tabstop=r,u.push(f),r!=e?r.unshift(f):r[i]=f,a.fmtString?(f.linked=!0,r.hasLinkedRanges=!0):r.firstNonLinked||(r.firstNonLinked=f)}r.firstNonLinked||(r.hasLinkedRanges=!1),r===e&&(s.push(r),this.$openTabstops[n]=r),this.addTabstopMarkers(r)},this),s.length>2&&(this.tabstops.length&&s.push(s.splice(2,1)[0]),this.tabstops.splice.apply(this.tabstops,s))},this.addTabstopMarkers=function(e){var t=this.editor.session;e.forEach(function(e){e.markerId||(e.markerId=t.addMarker(e,\"ace_snippet-marker\",\"text\"))})},this.removeTabstopMarkers=function(e){var t=this.editor.session;e.forEach(function(e){t.removeMarker(e.markerId),e.markerId=null})},this.removeRange=function(e){var t=e.tabstop.indexOf(e);e.tabstop.splice(t,1),t=this.ranges.indexOf(e),this.ranges.splice(t,1),this.editor.session.removeMarker(e.markerId),e.tabstop.length||(t=this.tabstops.indexOf(e.tabstop),t!=-1&&this.tabstops.splice(t,1),this.tabstops.length||this.detach())},this.keyboardHandler=new a,this.keyboardHandler.bindKeys({Tab:function(e){if(t.snippetManager&&t.snippetManager.expandWithTab(e))return;e.tabstopManager.tabNext(1)},\"Shift-Tab\":function(e){e.tabstopManager.tabNext(-1)},Esc:function(e){e.tabstopManager.detach()},Return:function(e){return!1}})}).call(h.prototype);var p={};p.onChange=u.prototype.onChange,p.setPosition=function(e,t){this.pos.row=e,this.pos.column=t},p.update=function(e,t,n){this.$insertRight=n,this.pos=e,this.onChange(t)};var d=function(e,t){e.row==0&&(e.column+=t.column),e.row+=t.row},v=function(e,t){e.row==t.row&&(e.column-=t.column),e.row-=t.row};e(\"./lib/dom\").importCssString(\".ace_snippet-marker {    -moz-box-sizing: border-box;    box-sizing: border-box;    background: rgba(194, 193, 208, 0.09);    border: 1px dotted rgba(211, 208, 235, 0.62);    position: absolute;}\"),t.snippetManager=new c;var m=e(\"./editor\").Editor;(function(){this.insertSnippet=function(e,n){return t.snippetManager.insertSnippet(this,e,n)},this.expandSnippet=function(e){return t.snippetManager.expandWithTab(this,e)}}).call(m.prototype)}),ace.define(\"ace/ext/emmet\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\",\"ace/editor\",\"ace/snippets\",\"ace/range\",\"resources\",\"resources\",\"range\",\"tabStops\",\"resources\",\"utils\",\"actions\",\"ace/config\",\"ace/config\"],function(e,t,n){\"use strict\";function f(){}var r=e(\"ace/keyboard/hash_handler\").HashHandler,i=e(\"ace/editor\").Editor,s=e(\"ace/snippets\").snippetManager,o=e(\"ace/range\").Range,u,a;f.prototype={setupContext:function(e){this.ace=e,this.indentation=e.session.getTabString(),u||(u=window.emmet),u.require(\"resources\").setVariable(\"indentation\",this.indentation),this.$syntax=null,this.$syntax=this.getSyntax()},getSelectionRange:function(){var e=this.ace.getSelectionRange(),t=this.ace.session.doc;return{start:t.positionToIndex(e.start),end:t.positionToIndex(e.end)}},createSelection:function(e,t){var n=this.ace.session.doc;this.ace.selection.setRange({start:n.indexToPosition(e),end:n.indexToPosition(t)})},getCurrentLineRange:function(){var e=this.ace,t=e.getCursorPosition().row,n=e.session.getLine(t).length,r=e.session.doc.positionToIndex({row:t,column:0});return{start:r,end:r+n}},getCaretPos:function(){var e=this.ace.getCursorPosition();return this.ace.session.doc.positionToIndex(e)},setCaretPos:function(e){var t=this.ace.session.doc.indexToPosition(e);this.ace.selection.moveToPosition(t)},getCurrentLine:function(){var e=this.ace.getCursorPosition().row;return this.ace.session.getLine(e)},replaceContent:function(e,t,n,r){n==null&&(n=t==null?this.getContent().length:t),t==null&&(t=0);var i=this.ace,u=i.session.doc,a=o.fromPoints(u.indexToPosition(t),u.indexToPosition(n));i.session.remove(a),a.end=a.start,e=this.$updateTabstops(e),s.insertSnippet(i,e)},getContent:function(){return this.ace.getValue()},getSyntax:function(){if(this.$syntax)return this.$syntax;var e=this.ace.session.$modeId.split(\"/\").pop();if(e==\"html\"||e==\"php\"){var t=this.ace.getCursorPosition(),n=this.ace.session.getState(t.row);typeof n!=\"string\"&&(n=n[0]),n&&(n=n.split(\"-\"),n.length>1?e=n[0]:e==\"php\"&&(e=\"html\"))}return e},getProfileName:function(){switch(this.getSyntax()){case\"css\":return\"css\";case\"xml\":case\"xsl\":return\"xml\";case\"html\":var e=u.require(\"resources\").getVariable(\"profile\");return e||(e=this.ace.session.getLines(0,2).join(\"\").search(/<!DOCTYPE[^>]+XHTML/i)!=-1?\"xhtml\":\"html\"),e;default:var t=this.ace.session.$mode;return t.emmetConfig&&t.emmetConfig.profile||\"xhtml\"}},prompt:function(e){return prompt(e)},getSelection:function(){return this.ace.session.getTextRange()},getFilePath:function(){return\"\"},$updateTabstops:function(e){var t=1e3,n=0,r=null,i=u.require(\"range\"),s=u.require(\"tabStops\"),o=u.require(\"resources\").getVocabulary(\"user\"),a={tabstop:function(e){var o=parseInt(e.group,10),u=o===0;u?o=++n:o+=t;var f=e.placeholder;f&&(f=s.processText(f,a));var l=\"${\"+o+(f?\":\"+f:\"\")+\"}\";return u&&(r=i.create(e.start,l)),l},escape:function(e){return e==\"$\"?\"\\\\$\":e==\"\\\\\"?\"\\\\\\\\\":e}};return e=s.processText(e,a),o.variables.insert_final_tabstop&&!/\\$\\{0\\}$/.test(e)?e+=\"${0}\":r&&(e=u.require(\"utils\").replaceSubstring(e,\"${0}\",r)),e}};var l={expand_abbreviation:{mac:\"ctrl+alt+e\",win:\"alt+e\"},match_pair_outward:{mac:\"ctrl+d\",win:\"ctrl+,\"},match_pair_inward:{mac:\"ctrl+j\",win:\"ctrl+shift+0\"},matching_pair:{mac:\"ctrl+alt+j\",win:\"alt+j\"},next_edit_point:\"alt+right\",prev_edit_point:\"alt+left\",toggle_comment:{mac:\"command+/\",win:\"ctrl+/\"},split_join_tag:{mac:\"shift+command+'\",win:\"shift+ctrl+`\"},remove_tag:{mac:\"command+'\",win:\"shift+ctrl+;\"},evaluate_math_expression:{mac:\"shift+command+y\",win:\"shift+ctrl+y\"},increment_number_by_1:\"ctrl+up\",decrement_number_by_1:\"ctrl+down\",increment_number_by_01:\"alt+up\",decrement_number_by_01:\"alt+down\",increment_number_by_10:{mac:\"alt+command+up\",win:\"shift+alt+up\"},decrement_number_by_10:{mac:\"alt+command+down\",win:\"shift+alt+down\"},select_next_item:{mac:\"shift+command+.\",win:\"shift+ctrl+.\"},select_previous_item:{mac:\"shift+command+,\",win:\"shift+ctrl+,\"},reflect_css_value:{mac:\"shift+command+r\",win:\"shift+ctrl+r\"},encode_decode_data_url:{mac:\"shift+ctrl+d\",win:\"ctrl+'\"},expand_abbreviation_with_tab:\"Tab\",wrap_with_abbreviation:{mac:\"shift+ctrl+a\",win:\"shift+ctrl+a\"}},c=new f;t.commands=new r,t.runEmmetCommand=function v(e){try{c.setupContext(e);var t=u.require(\"actions\");if(this.action==\"expand_abbreviation_with_tab\"){if(!e.selection.isEmpty())return!1;var n=e.selection.lead,r=e.session.getTokenAt(n.row,n.column);if(r&&/\\btag\\b/.test(r.type))return!1}if(this.action==\"wrap_with_abbreviation\")return setTimeout(function(){t.run(\"wrap_with_abbreviation\",c)},0);var i=t.run(this.action,c)}catch(s){if(!u)return d(v.bind(this,e)),!0;e._signal(\"changeStatus\",typeof s==\"string\"?s:s.message),console.log(s),i=!1}return i};for(var h in l)t.commands.addCommand({name:\"emmet:\"+h,action:h,bindKey:l[h],exec:t.runEmmetCommand,multiSelectAction:\"forEach\"});t.updateCommands=function(e,n){n?e.keyBinding.addKeyboardHandler(t.commands):e.keyBinding.removeKeyboardHandler(t.commands)},t.isSupportedMode=function(e){if(!e)return!1;if(e.emmetConfig)return!0;var t=e.$id||e;return/css|less|scss|sass|stylus|html|php|twig|ejs|handlebars/.test(t)},t.isAvailable=function(e,n){if(/(evaluate_math_expression|expand_abbreviation)$/.test(n))return!0;var r=e.session.$mode,i=t.isSupportedMode(r);if(i&&r.$modes)try{c.setupContext(e),/js|php/.test(c.getSyntax())&&(i=!1)}catch(s){}return i};var p=function(e,n){var r=n;if(!r)return;var i=t.isSupportedMode(r.session.$mode);e.enableEmmet===!1&&(i=!1),i&&d(),t.updateCommands(r,i)},d=function(t){typeof a==\"string\"&&e(\"ace/config\").loadModule(a,function(){a=null,t&&t()})};t.AceEmmetEditor=f,e(\"ace/config\").defineOptions(i.prototype,\"editor\",{enableEmmet:{set:function(e){this[e?\"on\":\"removeListener\"](\"changeMode\",p),p({enableEmmet:!!e},this)},value:!0}}),t.setCore=function(e){typeof e==\"string\"?a=e:u=e}});\n                (function() {\n                    ace.require([\"ace/ext/emmet\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict-old/ext-error_marker.js",
    "content": ";\n                (function() {\n                    ace.require([\"ace/ext/error_marker\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict-old/ext-keybinding_menu.js",
    "content": "ace.define(\"ace/ext/menu_tools/overlay_page\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/dom\"),i=\"#ace_settingsmenu, #kbshortcutmenu {background-color: #F7F7F7;color: black;box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);padding: 1em 0.5em 2em 1em;overflow: auto;position: absolute;margin: 0;bottom: 0;right: 0;top: 0;z-index: 9991;cursor: default;}.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);background-color: rgba(255, 255, 255, 0.6);color: black;}.ace_optionsMenuEntry:hover {background-color: rgba(100, 100, 100, 0.1);-webkit-transition: all 0.5s;transition: all 0.3s}.ace_closeButton {background: rgba(245, 146, 146, 0.5);border: 1px solid #F48A8A;border-radius: 50%;padding: 7px;position: absolute;right: -8px;top: -8px;z-index: 1000;}.ace_closeButton{background: rgba(245, 146, 146, 0.9);}.ace_optionsMenuKey {color: darkslateblue;font-weight: bold;}.ace_optionsMenuCommand {color: darkcyan;font-weight: normal;}\";r.importCssString(i),n.exports.overlayPage=function(t,n,i,s,o,u){function l(e){e.keyCode===27&&a.click()}i=i?\"top: \"+i+\";\":\"\",o=o?\"bottom: \"+o+\";\":\"\",s=s?\"right: \"+s+\";\":\"\",u=u?\"left: \"+u+\";\":\"\";var a=document.createElement(\"div\"),f=document.createElement(\"div\");a.style.cssText=\"margin: 0; padding: 0; position: fixed; top:0; bottom:0; left:0; right:0;z-index: 9990; background-color: rgba(0, 0, 0, 0.3);\",a.addEventListener(\"click\",function(){document.removeEventListener(\"keydown\",l),a.parentNode.removeChild(a),t.focus(),a=null}),document.addEventListener(\"keydown\",l),f.style.cssText=i+s+o+u,f.addEventListener(\"click\",function(e){e.stopPropagation()});var c=r.createElement(\"div\");c.style.position=\"relative\";var h=r.createElement(\"div\");h.className=\"ace_closeButton\",h.addEventListener(\"click\",function(){a.click()}),c.appendChild(h),f.appendChild(c),f.appendChild(n),a.appendChild(f),document.body.appendChild(a),t.blur()}}),ace.define(\"ace/ext/menu_tools/get_editor_keyboard_shortcuts\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/keys\");n.exports.getEditorKeybordShortcuts=function(e){var t=r.KEY_MODS,n=[],i={};return e.keyBinding.$handlers.forEach(function(e){var t=e.commandKeyBinding;for(var r in t){var s=r.replace(/(^|-)\\w/g,function(e){return e.toUpperCase()}),o=t[r];Array.isArray(o)||(o=[o]),o.forEach(function(e){typeof e!=\"string\"&&(e=e.name),i[e]?i[e].key+=\"|\"+s:(i[e]={key:s,command:e},n.push(i[e]))})}}),n}}),ace.define(\"ace/ext/keybinding_menu\",[\"require\",\"exports\",\"module\",\"ace/editor\",\"ace/ext/menu_tools/overlay_page\",\"ace/ext/menu_tools/get_editor_keyboard_shortcuts\"],function(e,t,n){\"use strict\";function i(t){if(!document.getElementById(\"kbshortcutmenu\")){var n=e(\"./menu_tools/overlay_page\").overlayPage,r=e(\"./menu_tools/get_editor_keyboard_shortcuts\").getEditorKeybordShortcuts,i=r(t),s=document.createElement(\"div\"),o=i.reduce(function(e,t){return e+'<div class=\"ace_optionsMenuEntry\"><span class=\"ace_optionsMenuCommand\">'+t.command+\"</span> : \"+'<span class=\"ace_optionsMenuKey\">'+t.key+\"</span></div>\"},\"\");s.id=\"kbshortcutmenu\",s.innerHTML=\"<h1>Keyboard Shortcuts</h1>\"+o+\"</div>\",n(t,s,\"0\",\"0\",\"0\",null)}}var r=e(\"ace/editor\").Editor;n.exports.init=function(e){r.prototype.showKeyboardShortcuts=function(){i(this)},e.commands.addCommands([{name:\"showKeyboardShortcuts\",bindKey:{win:\"Ctrl-Alt-h\",mac:\"Command-Alt-h\"},exec:function(e,t){e.showKeyboardShortcuts()}}])}});\n                (function() {\n                    ace.require([\"ace/ext/keybinding_menu\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict-old/ext-language_tools.js",
    "content": "ace.define(\"ace/snippets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/lib/lang\",\"ace/range\",\"ace/anchor\",\"ace/keyboard/hash_handler\",\"ace/tokenizer\",\"ace/lib/dom\",\"ace/editor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=e(\"./lib/lang\"),o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=e(\"./keyboard/hash_handler\").HashHandler,f=e(\"./tokenizer\").Tokenizer,l=o.comparePoints,c=function(){this.snippetMap={},this.snippetNameMap={}};(function(){r.implement(this,i),this.getTokenizer=function(){function e(e,t,n){return e=e.substr(1),/^\\d+$/.test(e)&&!n.inFormatString?[{tabstopId:parseInt(e,10)}]:[{text:e}]}function t(e){return\"(?:[^\\\\\\\\\"+e+\"]|\\\\\\\\.)\"}return c.$tokenizer=new f({start:[{regex:/:/,onMatch:function(e,t,n){return n.length&&n[0].expectIf?(n[0].expectIf=!1,n[0].elseBranch=n[0],[n[0]]):\":\"}},{regex:/\\\\./,onMatch:function(e,t,n){var r=e[1];return r==\"}\"&&n.length?e=r:\"`$\\\\\".indexOf(r)!=-1?e=r:n.inFormatString&&(r==\"n\"?e=\"\\n\":r==\"t\"?e=\"\\n\":\"ulULE\".indexOf(r)!=-1&&(e={changeCase:r,local:r>\"a\"})),[e]}},{regex:/}/,onMatch:function(e,t,n){return[n.length?n.shift():e]}},{regex:/\\$(?:\\d+|\\w+)/,onMatch:e},{regex:/\\$\\{[\\dA-Z_a-z]+/,onMatch:function(t,n,r){var i=e(t.substr(1),n,r);return r.unshift(i[0]),i},next:\"snippetVar\"},{regex:/\\n/,token:\"newline\",merge:!1}],snippetVar:[{regex:\"\\\\|\"+t(\"\\\\|\")+\"*\\\\|\",onMatch:function(e,t,n){n[0].choices=e.slice(1,-1).split(\",\")},next:\"start\"},{regex:\"/(\"+t(\"/\")+\"+)/(?:(\"+t(\"/\")+\"*)/)(\\\\w*):?\",onMatch:function(e,t,n){var r=n[0];return r.fmtString=e,e=this.splitRegex.exec(e),r.guard=e[1],r.fmt=e[2],r.flag=e[3],\"\"},next:\"start\"},{regex:\"`\"+t(\"`\")+\"*`\",onMatch:function(e,t,n){return n[0].code=e.splice(1,-1),\"\"},next:\"start\"},{regex:\"\\\\?\",onMatch:function(e,t,n){n[0]&&(n[0].expectIf=!0)},next:\"start\"},{regex:\"([^:}\\\\\\\\]|\\\\\\\\.)*:?\",token:\"\",next:\"start\"}],formatString:[{regex:\"/(\"+t(\"/\")+\"+)/\",token:\"regex\"},{regex:\"\",onMatch:function(e,t,n){n.inFormatString=!0},next:\"start\"}]}),c.prototype.getTokenizer=function(){return c.$tokenizer},c.$tokenizer},this.tokenizeTmSnippet=function(e,t){return this.getTokenizer().getLineTokens(e,t).tokens.map(function(e){return e.value||e})},this.$getDefaultValue=function(e,t){if(/^[A-Z]\\d+$/.test(t)){var n=t.substr(1);return(this.variables[t[0]+\"__\"]||{})[n]}if(/^\\d+$/.test(t))return(this.variables.__||{})[t];t=t.replace(/^TM_/,\"\");if(!e)return;var r=e.session;switch(t){case\"CURRENT_WORD\":var i=r.getWordRange();case\"SELECTION\":case\"SELECTED_TEXT\":return r.getTextRange(i);case\"CURRENT_LINE\":return r.getLine(e.getCursorPosition().row);case\"PREV_LINE\":return r.getLine(e.getCursorPosition().row-1);case\"LINE_INDEX\":return e.getCursorPosition().column;case\"LINE_NUMBER\":return e.getCursorPosition().row+1;case\"SOFT_TABS\":return r.getUseSoftTabs()?\"YES\":\"NO\";case\"TAB_SIZE\":return r.getTabSize();case\"FILENAME\":case\"FILEPATH\":return\"\";case\"FULLNAME\":return\"Ace\"}},this.variables={},this.getVariableValue=function(e,t){return this.variables.hasOwnProperty(t)?this.variables[t](e,t)||\"\":this.$getDefaultValue(e,t)||\"\"},this.tmStrFormat=function(e,t,n){var r=t.flag||\"\",i=t.guard;i=new RegExp(i,r.replace(/[^gi]/,\"\"));var s=this.tokenizeTmSnippet(t.fmt,\"formatString\"),o=this,u=e.replace(i,function(){o.variables.__=arguments;var e=o.resolveVariables(s,n),t=\"E\";for(var r=0;r<e.length;r++){var i=e[r];if(typeof i==\"object\"){e[r]=\"\";if(i.changeCase&&i.local){var u=e[r+1];u&&typeof u==\"string\"&&(i.changeCase==\"u\"?e[r]=u[0].toUpperCase():e[r]=u[0].toLowerCase(),e[r+1]=u.substr(1))}else i.changeCase&&(t=i.changeCase)}else t==\"U\"?e[r]=i.toUpperCase():t==\"L\"&&(e[r]=i.toLowerCase())}return e.join(\"\")});return this.variables.__=null,u},this.resolveVariables=function(e,t){function o(t){var n=e.indexOf(t,r+1);n!=-1&&(r=n)}var n=[];for(var r=0;r<e.length;r++){var i=e[r];if(typeof i==\"string\")n.push(i);else{if(typeof i!=\"object\")continue;if(i.skip)o(i);else{if(i.processed<r)continue;if(i.text){var s=this.getVariableValue(t,i.text);s&&i.fmtString&&(s=this.tmStrFormat(s,i)),i.processed=r,i.expectIf==null?s&&(n.push(s),o(i)):s?i.skip=i.elseBranch:o(i)}else i.tabstopId!=null?n.push(i):i.changeCase!=null&&n.push(i)}}}return n},this.insertSnippetForSelection=function(e,t){function f(e){var t=[];for(var n=0;n<e.length;n++){var r=e[n];if(typeof r==\"object\"){if(a[r.tabstopId])continue;var i=e.lastIndexOf(r,n-1);r=t[i]||{tabstopId:r.tabstopId}}t[n]=r}return t}var n=e.getCursorPosition(),r=e.session.getLine(n.row),i=e.session.getTabString(),s=r.match(/^\\s*/)[0];n.column<s.length&&(s=s.slice(0,n.column));var o=this.tokenizeTmSnippet(t);o=this.resolveVariables(o,e),o=o.map(function(e){return e==\"\\n\"?e+s:typeof e==\"string\"?e.replace(/\\t/g,i):e});var u=[];o.forEach(function(e,t){if(typeof e!=\"object\")return;var n=e.tabstopId,r=u[n];r||(r=u[n]=[],r.index=n,r.value=\"\");if(r.indexOf(e)!==-1)return;r.push(e);var i=o.indexOf(e,t+1);if(i===-1)return;var s=o.slice(t+1,i),a=s.some(function(e){return typeof e==\"object\"});a&&!r.value?r.value=s:s.length&&(!r.value||typeof r.value!=\"string\")&&(r.value=s.join(\"\"))}),u.forEach(function(e){e.length=0});var a={};for(var l=0;l<o.length;l++){var c=o[l];if(typeof c!=\"object\")continue;var p=c.tabstopId,d=o.indexOf(c,l+1);if(a[p]){a[p]===c&&(a[p]=null);continue}var v=u[p],m=typeof v.value==\"string\"?[v.value]:f(v.value);m.unshift(l+1,Math.max(0,d-l)),m.push(c),a[p]=c,o.splice.apply(o,m),v.indexOf(c)===-1&&v.push(c)}var g=0,y=0,b=\"\";o.forEach(function(e){typeof e==\"string\"?(e[0]===\"\\n\"?(y=e.length-1,g++):y+=e.length,b+=e):e.start?e.end={row:g,column:y}:e.start={row:g,column:y}});var w=e.getSelectionRange(),E=e.session.replace(w,b),S=new h(e),x=e.inVirtualSelectionMode&&e.selection.index;S.addTabstops(u,w.start,E,x)},this.insertSnippet=function(e,t){var n=this;if(e.inVirtualSelectionMode)return n.insertSnippetForSelection(e,t);e.forEachSelection(function(){n.insertSnippetForSelection(e,t)},null,{keepOrder:!0}),e.tabstopManager&&e.tabstopManager.tabNext()},this.$getScope=function(e){var t=e.session.$mode.$id||\"\";t=t.split(\"/\").pop();if(t===\"html\"||t===\"php\"){t===\"php\"&&!e.session.$mode.inlinePhp&&(t=\"html\");var n=e.getCursorPosition(),r=e.session.getState(n.row);typeof r==\"object\"&&(r=r[0]),r.substring&&(r.substring(0,3)==\"js-\"?t=\"javascript\":r.substring(0,4)==\"css-\"?t=\"css\":r.substring(0,4)==\"php-\"&&(t=\"php\"))}return t},this.getActiveScopes=function(e){var t=this.$getScope(e),n=[t],r=this.snippetMap;return r[t]&&r[t].includeScopes&&n.push.apply(n,r[t].includeScopes),n.push(\"_\"),n},this.expandWithTab=function(e,t){var n=this,r=e.forEachSelection(function(){return n.expandSnippetForSelection(e,t)},null,{keepOrder:!0});return r&&e.tabstopManager&&e.tabstopManager.tabNext(),r},this.expandSnippetForSelection=function(e,t){var n=e.getCursorPosition(),r=e.session.getLine(n.row),i=r.substring(0,n.column),s=r.substr(n.column),o=this.snippetMap,u;return this.getActiveScopes(e).some(function(e){var t=o[e];return t&&(u=this.findMatchingSnippet(t,i,s)),!!u},this),u?t&&t.dryRun?!0:(e.session.doc.removeInLine(n.row,n.column-u.replaceBefore.length,n.column+u.replaceAfter.length),this.variables.M__=u.matchBefore,this.variables.T__=u.matchAfter,this.insertSnippetForSelection(e,u.content),this.variables.M__=this.variables.T__=null,!0):!1},this.findMatchingSnippet=function(e,t,n){for(var r=e.length;r--;){var i=e[r];if(i.startRe&&!i.startRe.test(t))continue;if(i.endRe&&!i.endRe.test(n))continue;if(!i.startRe&&!i.endRe)continue;return i.matchBefore=i.startRe?i.startRe.exec(t):[\"\"],i.matchAfter=i.endRe?i.endRe.exec(n):[\"\"],i.replaceBefore=i.triggerRe?i.triggerRe.exec(t)[0]:\"\",i.replaceAfter=i.endTriggerRe?i.endTriggerRe.exec(n)[0]:\"\",i}},this.snippetMap={},this.snippetNameMap={},this.register=function(e,t){function o(e){return e&&!/^\\^?\\(.*\\)\\$?$|^\\\\b$/.test(e)&&(e=\"(?:\"+e+\")\"),e||\"\"}function u(e,t,n){return e=o(e),t=o(t),n?(e=t+e,e&&e[e.length-1]!=\"$\"&&(e+=\"$\")):(e+=t,e&&e[0]!=\"^\"&&(e=\"^\"+e)),new RegExp(e)}function a(e){e.scope||(e.scope=t||\"_\"),t=e.scope,n[t]||(n[t]=[],r[t]={});var o=r[t];if(e.name){var a=o[e.name];a&&i.unregister(a),o[e.name]=e}n[t].push(e),e.tabTrigger&&!e.trigger&&(!e.guard&&/^\\w/.test(e.tabTrigger)&&(e.guard=\"\\\\b\"),e.trigger=s.escapeRegExp(e.tabTrigger));if(!e.trigger&&!e.guard&&!e.endTrigger&&!e.endGuard)return;e.startRe=u(e.trigger,e.guard,!0),e.triggerRe=new RegExp(e.trigger,\"\",!0),e.endRe=u(e.endTrigger,e.endGuard,!0),e.endTriggerRe=new RegExp(e.endTrigger,\"\",!0)}var n=this.snippetMap,r=this.snippetNameMap,i=this;e||(e=[]),e&&e.content?a(e):Array.isArray(e)&&e.forEach(a),this._signal(\"registerSnippets\",{scope:t})},this.unregister=function(e,t){function i(e){var i=r[e.scope||t];if(i&&i[e.name]){delete i[e.name];var s=n[e.scope||t],o=s&&s.indexOf(e);o>=0&&s.splice(o,1)}}var n=this.snippetMap,r=this.snippetNameMap;e.content?i(e):Array.isArray(e)&&e.forEach(i)},this.parseSnippetFile=function(e){e=e.replace(/\\r/g,\"\");var t=[],n={},r=/^#.*|^({[\\s\\S]*})\\s*$|^(\\S+) (.*)$|^((?:\\n*\\t.*)+)/gm,i;while(i=r.exec(e)){if(i[1])try{n=JSON.parse(i[1]),t.push(n)}catch(s){}if(i[4])n.content=i[4].replace(/^\\t/gm,\"\"),t.push(n),n={};else{var o=i[2],u=i[3];if(o==\"regex\"){var a=/\\/((?:[^\\/\\\\]|\\\\.)*)|$/g;n.guard=a.exec(u)[1],n.trigger=a.exec(u)[1],n.endTrigger=a.exec(u)[1],n.endGuard=a.exec(u)[1]}else o==\"snippet\"?(n.tabTrigger=u.match(/^\\S*/)[0],n.name||(n.name=u)):n[o]=u}}return t},this.getSnippetByName=function(e,t){var n=this.snippetNameMap,r;return this.getActiveScopes(t).some(function(t){var i=n[t];return i&&(r=i[e]),!!r},this),r}}).call(c.prototype);var h=function(e){if(e.tabstopManager)return e.tabstopManager;e.tabstopManager=this,this.$onChange=this.onChange.bind(this),this.$onChangeSelection=s.delayedCall(this.onChangeSelection.bind(this)).schedule,this.$onChangeSession=this.onChangeSession.bind(this),this.$onAfterExec=this.onAfterExec.bind(this),this.attach(e)};(function(){this.attach=function(e){this.index=0,this.ranges=[],this.tabstops=[],this.$openTabstops=null,this.selectedTabstop=null,this.editor=e,this.editor.on(\"change\",this.$onChange),this.editor.on(\"changeSelection\",this.$onChangeSelection),this.editor.on(\"changeSession\",this.$onChangeSession),this.editor.commands.on(\"afterExec\",this.$onAfterExec),this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},this.detach=function(){this.tabstops.forEach(this.removeTabstopMarkers,this),this.ranges=null,this.tabstops=null,this.selectedTabstop=null,this.editor.removeListener(\"change\",this.$onChange),this.editor.removeListener(\"changeSelection\",this.$onChangeSelection),this.editor.removeListener(\"changeSession\",this.$onChangeSession),this.editor.commands.removeListener(\"afterExec\",this.$onAfterExec),this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.tabstopManager=null,this.editor=null},this.onChange=function(e){var t=e,n=e.action[0]==\"r\",r=e.start,i=e.end,s=r.row,o=i.row,u=o-s,a=i.column-r.column;n&&(u=-u,a=-a);if(!this.$inChange&&n){var f=this.selectedTabstop,c=f&&!f.some(function(e){return l(e.start,r)<=0&&l(e.end,i)>=0});if(c)return this.detach()}var h=this.ranges;for(var p=0;p<h.length;p++){var d=h[p];if(d.end.row<r.row)continue;if(n&&l(r,d.start)<0&&l(i,d.end)>0){this.removeRange(d),p--;continue}d.start.row==s&&d.start.column>r.column&&(d.start.column+=a),d.end.row==s&&d.end.column>=r.column&&(d.end.column+=a),d.start.row>=s&&(d.start.row+=u),d.end.row>=s&&(d.end.row+=u),l(d.start,d.end)>0&&this.removeRange(d)}h.length||this.detach()},this.updateLinkedFields=function(){var e=this.selectedTabstop;if(!e||!e.hasLinkedRanges)return;this.$inChange=!0;var n=this.editor.session,r=n.getTextRange(e.firstNonLinked);for(var i=e.length;i--;){var s=e[i];if(!s.linked)continue;var o=t.snippetManager.tmStrFormat(r,s.original);n.replace(s,o)}this.$inChange=!1},this.onAfterExec=function(e){e.command&&!e.command.readOnly&&this.updateLinkedFields()},this.onChangeSelection=function(){if(!this.editor)return;var e=this.editor.selection.lead,t=this.editor.selection.anchor,n=this.editor.selection.isEmpty();for(var r=this.ranges.length;r--;){if(this.ranges[r].linked)continue;var i=this.ranges[r].contains(e.row,e.column),s=n||this.ranges[r].contains(t.row,t.column);if(i&&s)return}this.detach()},this.onChangeSession=function(){this.detach()},this.tabNext=function(e){var t=this.tabstops.length,n=this.index+(e||1);n=Math.min(Math.max(n,1),t),n==t&&(n=0),this.selectTabstop(n),n===0&&this.detach()},this.selectTabstop=function(e){this.$openTabstops=null;var t=this.tabstops[this.index];t&&this.addTabstopMarkers(t),this.index=e,t=this.tabstops[this.index];if(!t||!t.length)return;this.selectedTabstop=t;if(!this.editor.inVirtualSelectionMode){var n=this.editor.multiSelect;n.toSingleRange(t.firstNonLinked.clone());for(var r=t.length;r--;){if(t.hasLinkedRanges&&t[r].linked)continue;n.addRange(t[r].clone(),!0)}n.ranges[0]&&n.addRange(n.ranges[0].clone())}else this.editor.selection.setRange(t.firstNonLinked);this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},this.addTabstops=function(e,t,n){this.$openTabstops||(this.$openTabstops=[]);if(!e[0]){var r=o.fromPoints(n,n);v(r.start,t),v(r.end,t),e[0]=[r],e[0].index=0}var i=this.index,s=[i+1,0],u=this.ranges;e.forEach(function(e,n){var r=this.$openTabstops[n]||e;for(var i=e.length;i--;){var a=e[i],f=o.fromPoints(a.start,a.end||a.start);d(f.start,t),d(f.end,t),f.original=a,f.tabstop=r,u.push(f),r!=e?r.unshift(f):r[i]=f,a.fmtString?(f.linked=!0,r.hasLinkedRanges=!0):r.firstNonLinked||(r.firstNonLinked=f)}r.firstNonLinked||(r.hasLinkedRanges=!1),r===e&&(s.push(r),this.$openTabstops[n]=r),this.addTabstopMarkers(r)},this),s.length>2&&(this.tabstops.length&&s.push(s.splice(2,1)[0]),this.tabstops.splice.apply(this.tabstops,s))},this.addTabstopMarkers=function(e){var t=this.editor.session;e.forEach(function(e){e.markerId||(e.markerId=t.addMarker(e,\"ace_snippet-marker\",\"text\"))})},this.removeTabstopMarkers=function(e){var t=this.editor.session;e.forEach(function(e){t.removeMarker(e.markerId),e.markerId=null})},this.removeRange=function(e){var t=e.tabstop.indexOf(e);e.tabstop.splice(t,1),t=this.ranges.indexOf(e),this.ranges.splice(t,1),this.editor.session.removeMarker(e.markerId),e.tabstop.length||(t=this.tabstops.indexOf(e.tabstop),t!=-1&&this.tabstops.splice(t,1),this.tabstops.length||this.detach())},this.keyboardHandler=new a,this.keyboardHandler.bindKeys({Tab:function(e){if(t.snippetManager&&t.snippetManager.expandWithTab(e))return;e.tabstopManager.tabNext(1)},\"Shift-Tab\":function(e){e.tabstopManager.tabNext(-1)},Esc:function(e){e.tabstopManager.detach()},Return:function(e){return!1}})}).call(h.prototype);var p={};p.onChange=u.prototype.onChange,p.setPosition=function(e,t){this.pos.row=e,this.pos.column=t},p.update=function(e,t,n){this.$insertRight=n,this.pos=e,this.onChange(t)};var d=function(e,t){e.row==0&&(e.column+=t.column),e.row+=t.row},v=function(e,t){e.row==t.row&&(e.column-=t.column),e.row-=t.row};e(\"./lib/dom\").importCssString(\".ace_snippet-marker {    -moz-box-sizing: border-box;    box-sizing: border-box;    background: rgba(194, 193, 208, 0.09);    border: 1px dotted rgba(211, 208, 235, 0.62);    position: absolute;}\"),t.snippetManager=new c;var m=e(\"./editor\").Editor;(function(){this.insertSnippet=function(e,n){return t.snippetManager.insertSnippet(this,e,n)},this.expandSnippet=function(e){return t.snippetManager.expandWithTab(this,e)}}).call(m.prototype)}),ace.define(\"ace/autocomplete/popup\",[\"require\",\"exports\",\"module\",\"ace/virtual_renderer\",\"ace/editor\",\"ace/range\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";var r=e(\"../virtual_renderer\").VirtualRenderer,i=e(\"../editor\").Editor,s=e(\"../range\").Range,o=e(\"../lib/event\"),u=e(\"../lib/lang\"),a=e(\"../lib/dom\"),f=function(e){var t=new r(e);t.$maxLines=4;var n=new i(t);return n.setHighlightActiveLine(!1),n.setShowPrintMargin(!1),n.renderer.setShowGutter(!1),n.renderer.setHighlightGutterLine(!1),n.$mouseHandler.$focusWaitTimout=0,n.$highlightTagPending=!0,n},l=function(e){var t=a.createElement(\"div\"),n=new f(t);e&&e.appendChild(t),t.style.display=\"none\",n.renderer.content.style.cursor=\"default\",n.renderer.setStyle(\"ace_autocomplete\"),n.setOption(\"displayIndentGuides\",!1),n.setOption(\"dragDelay\",150);var r=function(){};n.focus=r,n.$isFocused=!0,n.renderer.$cursorLayer.restartTimer=r,n.renderer.$cursorLayer.element.style.opacity=0,n.renderer.$maxLines=8,n.renderer.$keepTextAreaAtCursor=!1,n.setHighlightActiveLine(!1),n.session.highlight(\"\"),n.session.$searchHighlight.clazz=\"ace_highlight-marker\",n.on(\"mousedown\",function(e){var t=e.getDocumentPosition();n.selection.moveToPosition(t),c.start.row=c.end.row=t.row,e.stop()});var i,l=new s(-1,0,-1,Infinity),c=new s(-1,0,-1,Infinity);c.id=n.session.addMarker(c,\"ace_active-line\",\"fullLine\"),n.setSelectOnHover=function(e){e?l.id&&(n.session.removeMarker(l.id),l.id=null):l.id=n.session.addMarker(l,\"ace_line-hover\",\"fullLine\")},n.setSelectOnHover(!1),n.on(\"mousemove\",function(e){if(!i){i=e;return}if(i.x==e.x&&i.y==e.y)return;i=e,i.scrollTop=n.renderer.scrollTop;var t=i.getDocumentPosition().row;l.start.row!=t&&(l.id||n.setRow(t),p(t))}),n.renderer.on(\"beforeRender\",function(){if(i&&l.start.row!=-1){i.$pos=null;var e=i.getDocumentPosition().row;l.id||n.setRow(e),p(e,!0)}}),n.renderer.on(\"afterRender\",function(){var e=n.getRow(),t=n.renderer.$textLayer,r=t.element.childNodes[e-t.config.firstRow];if(r==t.selectedNode)return;t.selectedNode&&a.removeCssClass(t.selectedNode,\"ace_selected\"),t.selectedNode=r,r&&a.addCssClass(r,\"ace_selected\")});var h=function(){p(-1)},p=function(e,t){e!==l.start.row&&(l.start.row=l.end.row=e,t||n.session._emit(\"changeBackMarker\"),n._emit(\"changeHoverMarker\"))};n.getHoveredRow=function(){return l.start.row},o.addListener(n.container,\"mouseout\",h),n.on(\"hide\",h),n.on(\"changeSelection\",h),n.session.doc.getLength=function(){return n.data.length},n.session.doc.getLine=function(e){var t=n.data[e];return typeof t==\"string\"?t:t&&t.value||\"\"};var d=n.session.bgTokenizer;return d.$tokenizeRow=function(e){var t=n.data[e],r=[];if(!t)return r;typeof t==\"string\"&&(t={value:t}),t.caption||(t.caption=t.value||t.name);var i=-1,s,o;for(var u=0;u<t.caption.length;u++)o=t.caption[u],s=t.matchMask&1<<u?1:0,i!==s?(r.push({type:t.className||\"\"+(s?\"completion-highlight\":\"\"),value:o}),i=s):r[r.length-1].value+=o;if(t.meta){var a=n.renderer.$size.scrollerWidth/n.renderer.layerConfig.characterWidth,f=t.meta;f.length+t.caption.length>a-2&&(f=f.substr(0,a-t.caption.length-3)+\"\\u2026\"),r.push({type:\"rightAlignedText\",value:f})}return r},d.$updateOnChange=r,d.start=r,n.session.$computeWidth=function(){return this.screenWidth=0},n.$blockScrolling=Infinity,n.isOpen=!1,n.isTopdown=!1,n.data=[],n.setData=function(e){n.setValue(u.stringRepeat(\"\\n\",e.length),-1),n.data=e||[],n.setRow(0)},n.getData=function(e){return n.data[e]},n.getRow=function(){return c.start.row},n.setRow=function(e){e=Math.max(0,Math.min(this.data.length,e)),c.start.row!=e&&(n.selection.clearSelection(),c.start.row=c.end.row=e||0,n.session._emit(\"changeBackMarker\"),n.moveCursorTo(e||0,0),n.isOpen&&n._signal(\"select\"))},n.on(\"changeSelection\",function(){n.isOpen&&n.setRow(n.selection.lead.row),n.renderer.scrollCursorIntoView()}),n.hide=function(){this.container.style.display=\"none\",this._signal(\"hide\"),n.isOpen=!1},n.show=function(e,t,r){var s=this.container,o=window.innerHeight,u=window.innerWidth,a=this.renderer,f=a.$maxLines*t*1.4,l=e.top+this.$borderSize,c=l>o/2&&!r;c&&l+t+f>o?(a.$maxPixelHeight=l-2*this.$borderSize,s.style.top=\"\",s.style.bottom=o-l+\"px\",n.isTopdown=!1):(l+=t,a.$maxPixelHeight=o-l-.2*t,s.style.top=l+\"px\",s.style.bottom=\"\",n.isTopdown=!0),s.style.display=\"\",this.renderer.$textLayer.checkForSizeChanges();var h=e.left;h+s.offsetWidth>u&&(h=u-s.offsetWidth),s.style.left=h+\"px\",this._signal(\"show\"),i=null,n.isOpen=!0},n.getTextLeftOffset=function(){return this.$borderSize+this.renderer.$padding+this.$imageSize},n.$imageSize=0,n.$borderSize=1,n};a.importCssString(\".ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {    background-color: #CAD6FA;    z-index: 1;}.ace_editor.ace_autocomplete .ace_line-hover {    border: 1px solid #abbffe;    margin-top: -1px;    background: rgba(233,233,253,0.4);}.ace_editor.ace_autocomplete .ace_line-hover {    position: absolute;    z-index: 2;}.ace_editor.ace_autocomplete .ace_scroller {   background: none;   border: none;   box-shadow: none;}.ace_rightAlignedText {    color: gray;    display: inline-block;    position: absolute;    right: 4px;    text-align: right;    z-index: -1;}.ace_editor.ace_autocomplete .ace_completion-highlight{    color: #000;    text-shadow: 0 0 0.01em;}.ace_editor.ace_autocomplete {    width: 280px;    z-index: 200000;    background: #fbfbfb;    color: #444;    border: 1px lightgray solid;    position: fixed;    box-shadow: 2px 3px 5px rgba(0,0,0,.2);    line-height: 1.4;}\"),t.AcePopup=l}),ace.define(\"ace/autocomplete/util\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.parForEach=function(e,t,n){var r=0,i=e.length;i===0&&n();for(var s=0;s<i;s++)t(e[s],function(e,t){r++,r===i&&n(e,t)})};var r=/[a-zA-Z_0-9\\$\\-\\u00A2-\\uFFFF]/;t.retrievePrecedingIdentifier=function(e,t,n){n=n||r;var i=[];for(var s=t-1;s>=0;s--){if(!n.test(e[s]))break;i.push(e[s])}return i.reverse().join(\"\")},t.retrieveFollowingIdentifier=function(e,t,n){n=n||r;var i=[];for(var s=t;s<e.length;s++){if(!n.test(e[s]))break;i.push(e[s])}return i},t.getCompletionPrefix=function(e){var t=e.getCursorPosition(),n=e.session.getLine(t.row),r;return e.completers.forEach(function(e){e.identifierRegexps&&e.identifierRegexps.forEach(function(e){!r&&e&&(r=this.retrievePrecedingIdentifier(n,t.column,e))}.bind(this))}.bind(this)),r||this.retrievePrecedingIdentifier(n,t.column)}}),ace.define(\"ace/autocomplete\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\",\"ace/autocomplete/popup\",\"ace/autocomplete/util\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/lib/dom\",\"ace/snippets\"],function(e,t,n){\"use strict\";var r=e(\"./keyboard/hash_handler\").HashHandler,i=e(\"./autocomplete/popup\").AcePopup,s=e(\"./autocomplete/util\"),o=e(\"./lib/event\"),u=e(\"./lib/lang\"),a=e(\"./lib/dom\"),f=e(\"./snippets\").snippetManager,l=function(){this.autoInsert=!1,this.autoSelect=!0,this.exactMatch=!1,this.gatherCompletionsId=0,this.keyboardHandler=new r,this.keyboardHandler.bindKeys(this.commands),this.blurListener=this.blurListener.bind(this),this.changeListener=this.changeListener.bind(this),this.mousedownListener=this.mousedownListener.bind(this),this.mousewheelListener=this.mousewheelListener.bind(this),this.changeTimer=u.delayedCall(function(){this.updateCompletions(!0)}.bind(this)),this.tooltipTimer=u.delayedCall(this.updateDocTooltip.bind(this),50)};(function(){this.$init=function(){return this.popup=new i(document.body||document.documentElement),this.popup.on(\"click\",function(e){this.insertMatch(),e.stop()}.bind(this)),this.popup.focus=this.editor.focus.bind(this.editor),this.popup.on(\"show\",this.tooltipTimer.bind(null,null)),this.popup.on(\"select\",this.tooltipTimer.bind(null,null)),this.popup.on(\"changeHoverMarker\",this.tooltipTimer.bind(null,null)),this.popup},this.getPopup=function(){return this.popup||this.$init()},this.openPopup=function(e,t,n){this.popup||this.$init(),this.popup.setData(this.completions.filtered),e.keyBinding.addKeyboardHandler(this.keyboardHandler);var r=e.renderer;this.popup.setRow(this.autoSelect?0:-1);if(!n){this.popup.setTheme(e.getTheme()),this.popup.setFontSize(e.getFontSize());var i=r.layerConfig.lineHeight,s=r.$cursorLayer.getPixelPosition(this.base,!0);s.left-=this.popup.getTextLeftOffset();var o=e.container.getBoundingClientRect();s.top+=o.top-r.layerConfig.offset,s.left+=o.left-e.renderer.scrollLeft,s.left+=r.gutterWidth,this.popup.show(s,i)}else n&&!t&&this.detach()},this.detach=function(){this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.off(\"changeSelection\",this.changeListener),this.editor.off(\"blur\",this.blurListener),this.editor.off(\"mousedown\",this.mousedownListener),this.editor.off(\"mousewheel\",this.mousewheelListener),this.changeTimer.cancel(),this.hideDocTooltip(),this.gatherCompletionsId+=1,this.popup&&this.popup.isOpen&&this.popup.hide(),this.base&&this.base.detach(),this.activated=!1,this.completions=this.base=null},this.changeListener=function(e){var t=this.editor.selection.lead;(t.row!=this.base.row||t.column<this.base.column)&&this.detach(),this.activated?this.changeTimer.schedule():this.detach()},this.blurListener=function(e){var t=document.activeElement,n=this.editor.textInput.getElement(),r=e.relatedTarget&&e.relatedTarget==this.tooltipNode,i=this.popup&&this.popup.container;t!=n&&t.parentNode!=i&&!r&&t!=this.tooltipNode&&e.relatedTarget!=n&&this.detach()},this.mousedownListener=function(e){this.detach()},this.mousewheelListener=function(e){this.detach()},this.goTo=function(e){var t=this.popup.getRow(),n=this.popup.session.getLength()-1;switch(e){case\"up\":t=t<=0?n:t-1;break;case\"down\":t=t>=n?-1:t+1;break;case\"start\":t=0;break;case\"end\":t=n}this.popup.setRow(t)},this.insertMatch=function(e,t){e||(e=this.popup.getData(this.popup.getRow()));if(!e)return!1;if(e.completer&&e.completer.insertMatch)e.completer.insertMatch(this.editor,e);else{if(this.completions.filterText){var n=this.editor.selection.getAllRanges();for(var r=0,i;i=n[r];r++)i.start.column-=this.completions.filterText.length,this.editor.session.remove(i)}e.snippet?f.insertSnippet(this.editor,e.snippet):this.editor.execCommand(\"insertstring\",e.value||e)}this.detach()},this.commands={Up:function(e){e.completer.goTo(\"up\")},Down:function(e){e.completer.goTo(\"down\")},\"Ctrl-Up|Ctrl-Home\":function(e){e.completer.goTo(\"start\")},\"Ctrl-Down|Ctrl-End\":function(e){e.completer.goTo(\"end\")},Esc:function(e){e.completer.detach()},Return:function(e){return e.completer.insertMatch()},\"Shift-Return\":function(e){e.completer.insertMatch(null,{deleteSuffix:!0})},Tab:function(e){var t=e.completer.insertMatch();if(!!t||!!e.tabstopManager)return t;e.completer.goTo(\"down\")},PageUp:function(e){e.completer.popup.gotoPageUp()},PageDown:function(e){e.completer.popup.gotoPageDown()}},this.gatherCompletions=function(e,t){var n=e.getSession(),r=e.getCursorPosition(),i=n.getLine(r.row),o=s.getCompletionPrefix(e);this.base=n.doc.createAnchor(r.row,r.column-o.length),this.base.$insertRight=!0;var u=[],a=e.completers.length;return e.completers.forEach(function(i,s){i.getCompletions(e,n,r,o,function(r,i){!r&&i&&(u=u.concat(i));var s=e.getCursorPosition(),f=n.getLine(s.row);t(null,{prefix:o,matches:u,finished:--a===0})})}),!0},this.showPopup=function(e){this.editor&&this.detach(),this.activated=!0,this.editor=e,e.completer!=this&&(e.completer&&e.completer.detach(),e.completer=this),e.on(\"changeSelection\",this.changeListener),e.on(\"blur\",this.blurListener),e.on(\"mousedown\",this.mousedownListener),e.on(\"mousewheel\",this.mousewheelListener),this.updateCompletions()},this.updateCompletions=function(e){if(e&&this.base&&this.completions){var t=this.editor.getCursorPosition(),n=this.editor.session.getTextRange({start:this.base,end:t});if(n==this.completions.filterText)return;this.completions.setFilter(n);if(!this.completions.filtered.length)return this.detach();if(this.completions.filtered.length==1&&this.completions.filtered[0].value==n&&!this.completions.filtered[0].snippet)return this.detach();this.openPopup(this.editor,n,e);return}var r=this.gatherCompletionsId;this.gatherCompletions(this.editor,function(t,n){var i=function(){if(!n.finished)return;return this.detach()}.bind(this),s=n.prefix,o=n&&n.matches;if(!o||!o.length)return i();if(s.indexOf(n.prefix)!==0||r!=this.gatherCompletionsId)return;this.completions=new c(o),this.exactMatch&&(this.completions.exactMatch=!0),this.completions.setFilter(s);var u=this.completions.filtered;if(!u.length)return i();if(u.length==1&&u[0].value==s&&!u[0].snippet)return i();if(this.autoInsert&&u.length==1&&n.finished)return this.insertMatch(u[0]);this.openPopup(this.editor,s,e)}.bind(this))},this.cancelContextMenu=function(){this.editor.$mouseHandler.cancelContextMenu()},this.updateDocTooltip=function(){var e=this.popup,t=e.data,n=t&&(t[e.getHoveredRow()]||t[e.getRow()]),r=null;if(!n||!this.editor||!this.popup.isOpen)return this.hideDocTooltip();this.editor.completers.some(function(e){return e.getDocTooltip&&(r=e.getDocTooltip(n)),r}),r||(r=n),typeof r==\"string\"&&(r={docText:r});if(!r||!r.docHTML&&!r.docText)return this.hideDocTooltip();this.showDocTooltip(r)},this.showDocTooltip=function(e){this.tooltipNode||(this.tooltipNode=a.createElement(\"div\"),this.tooltipNode.className=\"ace_tooltip ace_doc-tooltip\",this.tooltipNode.style.margin=0,this.tooltipNode.style.pointerEvents=\"auto\",this.tooltipNode.tabIndex=-1,this.tooltipNode.onblur=this.blurListener.bind(this));var t=this.tooltipNode;e.docHTML?t.innerHTML=e.docHTML:e.docText&&(t.textContent=e.docText),t.parentNode||document.body.appendChild(t);var n=this.popup,r=n.container.getBoundingClientRect();t.style.top=n.container.style.top,t.style.bottom=n.container.style.bottom,window.innerWidth-r.right<320?(t.style.right=window.innerWidth-r.left+\"px\",t.style.left=\"\"):(t.style.left=r.right+1+\"px\",t.style.right=\"\"),t.style.display=\"block\"},this.hideDocTooltip=function(){this.tooltipTimer.cancel();if(!this.tooltipNode)return;var e=this.tooltipNode;!this.editor.isFocused()&&document.activeElement==e&&this.editor.focus(),this.tooltipNode=null,e.parentNode&&e.parentNode.removeChild(e)}}).call(l.prototype),l.startCommand={name:\"startAutocomplete\",exec:function(e){e.completer||(e.completer=new l),e.completer.autoInsert=!1,e.completer.autoSelect=!0,e.completer.showPopup(e),e.completer.cancelContextMenu()},bindKey:\"Ctrl-Space|Ctrl-Shift-Space|Alt-Space\"};var c=function(e,t){this.all=e,this.filtered=e,this.filterText=t||\"\",this.exactMatch=!1};(function(){this.setFilter=function(e){if(e.length>this.filterText&&e.lastIndexOf(this.filterText,0)===0)var t=this.filtered;else var t=this.all;this.filterText=e,t=this.filterCompletions(t,this.filterText),t=t.sort(function(e,t){return t.exactMatch-e.exactMatch||t.score-e.score});var n=null;t=t.filter(function(e){var t=e.snippet||e.caption||e.value;return t===n?!1:(n=t,!0)}),this.filtered=t},this.filterCompletions=function(e,t){var n=[],r=t.toUpperCase(),i=t.toLowerCase();e:for(var s=0,o;o=e[s];s++){var u=o.value||o.caption||o.snippet;if(!u)continue;var a=-1,f=0,l=0,c,h;if(this.exactMatch){if(t!==u.substr(0,t.length))continue e}else for(var p=0;p<t.length;p++){var d=u.indexOf(i[p],a+1),v=u.indexOf(r[p],a+1);c=d>=0?v<0||d<v?d:v:v;if(c<0)continue e;h=c-a-1,h>0&&(a===-1&&(l+=10),l+=h),f|=1<<c,a=c}o.matchMask=f,o.exactMatch=l?0:1,o.score=(o.score||0)-l,n.push(o)}return n}}).call(c.prototype),t.Autocomplete=l,t.FilteredList=c}),ace.define(\"ace/autocomplete/text_completer\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){function s(e,t){var n=e.getTextRange(r.fromPoints({row:0,column:0},t));return n.split(i).length-1}function o(e,t){var n=s(e,t),r=e.getValue().split(i),o=Object.create(null),u=r[n];return r.forEach(function(e,t){if(!e||e===u)return;var i=Math.abs(n-t),s=r.length-i;o[e]?o[e]=Math.max(s,o[e]):o[e]=s}),o}var r=e(\"../range\").Range,i=/[^a-zA-Z_0-9\\$\\-\\u00C0-\\u1FFF\\u2C00-\\uD7FF\\w]+/;t.getCompletions=function(e,t,n,r,i){var s=o(t,n,r),u=Object.keys(s);i(null,u.map(function(e){return{caption:e,value:e,score:s[e],meta:\"local\"}}))}}),ace.define(\"ace/ext/language_tools\",[\"require\",\"exports\",\"module\",\"ace/snippets\",\"ace/autocomplete\",\"ace/config\",\"ace/lib/lang\",\"ace/autocomplete/util\",\"ace/autocomplete/text_completer\",\"ace/editor\",\"ace/config\"],function(e,t,n){\"use strict\";var r=e(\"../snippets\").snippetManager,i=e(\"../autocomplete\").Autocomplete,s=e(\"../config\"),o=e(\"../lib/lang\"),u=e(\"../autocomplete/util\"),a=e(\"../autocomplete/text_completer\"),f={getCompletions:function(e,t,n,r,i){if(t.$mode.completer)return t.$mode.completer.getCompletions(e,t,n,r,i);var s=e.session.getState(n.row),o=t.$mode.getCompletions(s,t,n,r);i(null,o)}},l={getCompletions:function(e,t,n,i,s){var o=r.snippetMap,u=[];r.getActiveScopes(e).forEach(function(e){var t=o[e]||[];for(var n=t.length;n--;){var r=t[n],i=r.name||r.tabTrigger;if(!i)continue;u.push({caption:i,snippet:r.content,meta:r.tabTrigger&&!r.name?r.tabTrigger+\"\\u21e5 \":\"snippet\",type:\"snippet\"})}},this),s(null,u)},getDocTooltip:function(e){e.type==\"snippet\"&&!e.docHTML&&(e.docHTML=[\"<b>\",o.escapeHTML(e.caption),\"</b>\",\"<hr></hr>\",o.escapeHTML(e.snippet)].join(\"\"))}},c=[l,a,f];t.setCompleters=function(e){c.length=0,e&&c.push.apply(c,e)},t.addCompleter=function(e){c.push(e)},t.textCompleter=a,t.keyWordCompleter=f,t.snippetCompleter=l;var h={name:\"expandSnippet\",exec:function(e){return r.expandWithTab(e)},bindKey:\"Tab\"},p=function(e,t){d(t.session.$mode)},d=function(e){var t=e.$id;r.files||(r.files={}),v(t),e.modes&&e.modes.forEach(d)},v=function(e){if(!e||r.files[e])return;var t=e.replace(\"mode\",\"snippets\");r.files[e]={},s.loadModule(t,function(t){t&&(r.files[e]=t,!t.snippets&&t.snippetText&&(t.snippets=r.parseSnippetFile(t.snippetText)),r.register(t.snippets||[],t.scope),t.includeScopes&&(r.snippetMap[t.scope].includeScopes=t.includeScopes,t.includeScopes.forEach(function(e){v(\"ace/mode/\"+e)})))})},m=function(e){var t=e.editor,n=t.completer&&t.completer.activated;if(e.command.name===\"backspace\")n&&!u.getCompletionPrefix(t)&&t.completer.detach();else if(e.command.name===\"insertstring\"){var r=u.getCompletionPrefix(t);r&&!n&&(t.completer||(t.completer=new i),t.completer.autoInsert=!1,t.completer.showPopup(t))}},g=e(\"../editor\").Editor;e(\"../config\").defineOptions(g.prototype,\"editor\",{enableBasicAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:c),this.commands.addCommand(i.startCommand)):this.commands.removeCommand(i.startCommand)},value:!1},enableLiveAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:c),this.commands.on(\"afterExec\",m)):this.commands.removeListener(\"afterExec\",m)},value:!1},enableSnippets:{set:function(e){e?(this.commands.addCommand(h),this.on(\"changeMode\",p),p(null,this)):(this.commands.removeCommand(h),this.off(\"changeMode\",p))},value:!1}})});\n                (function() {\n                    ace.require([\"ace/ext/language_tools\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict-old/ext-linking.js",
    "content": "ace.define(\"ace/ext/linking\",[\"require\",\"exports\",\"module\",\"ace/editor\",\"ace/config\"],function(e,t,n){function i(e){var t=e.editor,n=e.getAccelKey();if(n){var t=e.editor,r=e.getDocumentPosition(),i=t.session,s=i.getTokenAt(r.row,r.column);t._emit(\"linkHover\",{position:r,token:s})}}function s(e){var t=e.getAccelKey(),n=e.getButton();if(n==0&&t){var r=e.editor,i=e.getDocumentPosition(),s=r.session,o=s.getTokenAt(i.row,i.column);r._emit(\"linkClick\",{position:i,token:o})}}var r=e(\"ace/editor\").Editor;e(\"../config\").defineOptions(r.prototype,\"editor\",{enableLinking:{set:function(e){e?(this.on(\"click\",s),this.on(\"mousemove\",i)):(this.off(\"click\",s),this.off(\"mousemove\",i))},value:!1}})});\n                (function() {\n                    ace.require([\"ace/ext/linking\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict-old/ext-modelist.js",
    "content": "ace.define(\"ace/ext/modelist\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function i(e){var t=a.text,n=e.split(/[\\/\\\\]/).pop();for(var i=0;i<r.length;i++)if(r[i].supportsFile(n)){t=r[i];break}return t}var r=[],s=function(e,t,n){this.name=e,this.caption=t,this.mode=\"ace/mode/\"+e,this.extensions=n;var r;/\\^/.test(n)?r=n.replace(/\\|(\\^)?/g,function(e,t){return\"$|\"+(t?\"^\":\"^.*\\\\.\")})+\"$\":r=\"^.*\\\\.(\"+n+\")$\",this.extRe=new RegExp(r,\"gi\")};s.prototype.supportsFile=function(e){return e.match(this.extRe)};var o={ABAP:[\"abap\"],ABC:[\"abc\"],ActionScript:[\"as\"],ADA:[\"ada|adb\"],Apache_Conf:[\"^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd\"],AsciiDoc:[\"asciidoc|adoc\"],Assembly_x86:[\"asm|a\"],AutoHotKey:[\"ahk\"],BatchFile:[\"bat|cmd\"],C_Cpp:[\"cpp|c|cc|cxx|h|hh|hpp|ino\"],C9Search:[\"c9search_results\"],Cirru:[\"cirru|cr\"],Clojure:[\"clj|cljs\"],Cobol:[\"CBL|COB\"],coffee:[\"coffee|cf|cson|^Cakefile\"],ColdFusion:[\"cfm\"],CSharp:[\"cs\"],CSS:[\"css\"],Curly:[\"curly\"],D:[\"d|di\"],Dart:[\"dart\"],Diff:[\"diff|patch\"],Dockerfile:[\"^Dockerfile\"],Dot:[\"dot\"],Dummy:[\"dummy\"],DummySyntax:[\"dummy\"],Eiffel:[\"e|ge\"],EJS:[\"ejs\"],Elixir:[\"ex|exs\"],Elm:[\"elm\"],Erlang:[\"erl|hrl\"],Forth:[\"frt|fs|ldr\"],Fortran:[\"f|f90\"],FTL:[\"ftl\"],Gcode:[\"gcode\"],Gherkin:[\"feature\"],Gitignore:[\"^.gitignore\"],Glsl:[\"glsl|frag|vert\"],Gobstones:[\"gbs\"],golang:[\"go\"],Groovy:[\"groovy\"],HAML:[\"haml\"],Handlebars:[\"hbs|handlebars|tpl|mustache\"],Haskell:[\"hs\"],haXe:[\"hx\"],HTML:[\"html|htm|xhtml\"],HTML_Elixir:[\"eex|html.eex\"],HTML_Ruby:[\"erb|rhtml|html.erb\"],INI:[\"ini|conf|cfg|prefs\"],Io:[\"io\"],Jack:[\"jack\"],Jade:[\"jade\"],Java:[\"java\"],JavaScript:[\"js|jsm|jsx\"],JSON:[\"json\"],JSONiq:[\"jq\"],JSP:[\"jsp\"],JSX:[\"jsx\"],Julia:[\"jl\"],LaTeX:[\"tex|latex|ltx|bib\"],Lean:[\"lean|hlean\"],LESS:[\"less\"],Liquid:[\"liquid\"],Lisp:[\"lisp\"],LiveScript:[\"ls\"],LogiQL:[\"logic|lql\"],LSL:[\"lsl\"],Lua:[\"lua\"],LuaPage:[\"lp\"],Lucene:[\"lucene\"],Makefile:[\"^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make\"],Markdown:[\"md|markdown\"],Mask:[\"mask\"],MATLAB:[\"matlab\"],Maze:[\"mz\"],MEL:[\"mel\"],MUSHCode:[\"mc|mush\"],MySQL:[\"mysql\"],Nix:[\"nix\"],NSIS:[\"nsi|nsh\"],ObjectiveC:[\"m|mm\"],OCaml:[\"ml|mli\"],Pascal:[\"pas|p\"],Perl:[\"pl|pm\"],pgSQL:[\"pgsql\"],PHP:[\"php|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module\"],Powershell:[\"ps1\"],Praat:[\"praat|praatscript|psc|proc\"],Prolog:[\"plg|prolog\"],Properties:[\"properties\"],Protobuf:[\"proto\"],Python:[\"py\"],R:[\"r\"],Razor:[\"cshtml\"],RDoc:[\"Rd\"],RHTML:[\"Rhtml\"],RST:[\"rst\"],Ruby:[\"rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile\"],Rust:[\"rs\"],SASS:[\"sass\"],SCAD:[\"scad\"],Scala:[\"scala\"],Scheme:[\"scm|sm|rkt|oak|scheme\"],SCSS:[\"scss\"],SH:[\"sh|bash|^.bashrc\"],SJS:[\"sjs\"],Smarty:[\"smarty|tpl\"],snippets:[\"snippets\"],Soy_Template:[\"soy\"],Space:[\"space\"],SQL:[\"sql\"],SQLServer:[\"sqlserver\"],Stylus:[\"styl|stylus\"],SVG:[\"svg\"],Swift:[\"swift\"],Tcl:[\"tcl\"],Tex:[\"tex\"],Text:[\"txt\"],Textile:[\"textile\"],Toml:[\"toml\"],Twig:[\"twig|swig\"],Typescript:[\"ts|typescript|str\"],Vala:[\"vala\"],VBScript:[\"vbs|vb\"],Velocity:[\"vm\"],Verilog:[\"v|vh|sv|svh\"],VHDL:[\"vhd|vhdl\"],Wollok:[\"wlk|wpgm|wtest\"],XML:[\"xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml\"],XQuery:[\"xq\"],YAML:[\"yaml|yml\"],Django:[\"html\"]},u={ObjectiveC:\"Objective-C\",CSharp:\"C#\",golang:\"Go\",C_Cpp:\"C and C++\",coffee:\"CoffeeScript\",HTML_Ruby:\"HTML (Ruby)\",HTML_Elixir:\"HTML (Elixir)\",FTL:\"FreeMarker\"},a={};for(var f in o){var l=o[f],c=(u[f]||f).replace(/_/g,\" \"),h=f.toLowerCase(),p=new s(h,c,l[0]);a[h]=p,r.push(p)}n.exports={getModeForPath:i,modes:r,modesByName:a}});\n                (function() {\n                    ace.require([\"ace/ext/modelist\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict-old/ext-old_ie.js",
    "content": "ace.define(\"ace/ext/searchbox\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\"],function(e,t,n){\"use strict\";var r=e(\"../lib/dom\"),i=e(\"../lib/lang\"),s=e(\"../lib/event\"),o=\".ace_search {background-color: #ddd;border: 1px solid #cbcbcb;border-top: 0 none;max-width: 325px;overflow: hidden;margin: 0;padding: 4px;padding-right: 6px;padding-bottom: 0;position: absolute;top: 0px;z-index: 99;white-space: normal;}.ace_search.left {border-left: 0 none;border-radius: 0px 0px 5px 0px;left: 0;}.ace_search.right {border-radius: 0px 0px 0px 5px;border-right: 0 none;right: 0;}.ace_search_form, .ace_replace_form {border-radius: 3px;border: 1px solid #cbcbcb;float: left;margin-bottom: 4px;overflow: hidden;}.ace_search_form.ace_nomatch {outline: 1px solid red;}.ace_search_field {background-color: white;border-right: 1px solid #cbcbcb;border: 0 none;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;float: left;height: 22px;outline: 0;padding: 0 7px;width: 214px;margin: 0;}.ace_searchbtn,.ace_replacebtn {background: #fff;border: 0 none;border-left: 1px solid #dcdcdc;cursor: pointer;float: left;height: 22px;margin: 0;position: relative;}.ace_searchbtn:last-child,.ace_replacebtn:last-child {border-top-right-radius: 3px;border-bottom-right-radius: 3px;}.ace_searchbtn:disabled {background: none;cursor: default;}.ace_searchbtn {background-position: 50% 50%;background-repeat: no-repeat;width: 27px;}.ace_searchbtn.prev {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiSU1NZUAC/6E0I0yACYskCpsJiySKIiY0SUZk40FyTEgCjGgKwTRAgAEAQJUIPCE+qfkAAAAASUVORK5CYII=);    }.ace_searchbtn.next {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiTE1NZQCC/0DMyIAKwGJMUAYDEo3M/s+EpvM/mkKwCQxYjIeLMaELoLMBAgwAU7UJObTKsvAAAAAASUVORK5CYII=);    }.ace_searchbtn_close {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;border-radius: 50%;border: 0 none;color: #656565;cursor: pointer;float: right;font: 16px/16px Arial;height: 14px;margin: 5px 1px 9px 5px;padding: 0;text-align: center;width: 14px;}.ace_searchbtn_close:hover {background-color: #656565;background-position: 50% 100%;color: white;}.ace_replacebtn.prev {width: 54px}.ace_replacebtn.next {width: 27px}.ace_button {margin-left: 2px;cursor: pointer;-webkit-user-select: none;-moz-user-select: none;-o-user-select: none;-ms-user-select: none;user-select: none;overflow: hidden;opacity: 0.7;border: 1px solid rgba(100,100,100,0.23);padding: 1px;-moz-box-sizing: border-box;box-sizing:    border-box;color: black;}.ace_button:hover {background-color: #eee;opacity:1;}.ace_button:active {background-color: #ddd;}.ace_button.checked {border-color: #3399ff;opacity:1;}.ace_search_options{margin-bottom: 3px;text-align: right;-webkit-user-select: none;-moz-user-select: none;-o-user-select: none;-ms-user-select: none;user-select: none;}\",u=e(\"../keyboard/hash_handler\").HashHandler,a=e(\"../lib/keys\");r.importCssString(o,\"ace_searchbox\");var f='<div class=\"ace_search right\">    <button type=\"button\" action=\"hide\" class=\"ace_searchbtn_close\"></button>    <div class=\"ace_search_form\">        <input class=\"ace_search_field\" placeholder=\"Search for\" spellcheck=\"false\"></input>        <button type=\"button\" action=\"findNext\" class=\"ace_searchbtn next\"></button>        <button type=\"button\" action=\"findPrev\" class=\"ace_searchbtn prev\"></button>        <button type=\"button\" action=\"findAll\" class=\"ace_searchbtn\" title=\"Alt-Enter\">All</button>    </div>    <div class=\"ace_replace_form\">        <input class=\"ace_search_field\" placeholder=\"Replace with\" spellcheck=\"false\"></input>        <button type=\"button\" action=\"replaceAndFindNext\" class=\"ace_replacebtn\">Replace</button>        <button type=\"button\" action=\"replaceAll\" class=\"ace_replacebtn\">All</button>    </div>    <div class=\"ace_search_options\">        <span action=\"toggleRegexpMode\" class=\"ace_button\" title=\"RegExp Search\">.*</span>        <span action=\"toggleCaseSensitive\" class=\"ace_button\" title=\"CaseSensitive Search\">Aa</span>        <span action=\"toggleWholeWords\" class=\"ace_button\" title=\"Whole Word Search\">\\\\b</span>    </div></div>'.replace(/>\\s+/g,\">\"),l=function(e,t,n){var i=r.createElement(\"div\");i.innerHTML=f,this.element=i.firstChild,this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.container.appendChild(this.element),this.editor=e},this.$initElements=function(e){this.searchBox=e.querySelector(\".ace_search_form\"),this.replaceBox=e.querySelector(\".ace_replace_form\"),this.searchOptions=e.querySelector(\".ace_search_options\"),this.regExpOption=e.querySelector(\"[action=toggleRegexpMode]\"),this.caseSensitiveOption=e.querySelector(\"[action=toggleCaseSensitive]\"),this.wholeWordOption=e.querySelector(\"[action=toggleWholeWords]\"),this.searchInput=this.searchBox.querySelector(\".ace_search_field\"),this.replaceInput=this.replaceBox.querySelector(\".ace_search_field\")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;s.addListener(e,\"mousedown\",function(e){setTimeout(function(){t.activeInput.focus()},0),s.stopPropagation(e)}),s.addListener(e,\"click\",function(e){var n=e.target||e.srcElement,r=n.getAttribute(\"action\");r&&t[r]?t[r]():t.$searchBarKb.commands[r]&&t.$searchBarKb.commands[r].exec(t),s.stopPropagation(e)}),s.addCommandKeyListener(e,function(e,n,r){var i=a.keyCodeToString(r),o=t.$searchBarKb.findKeyCommand(n,i);o&&o.exec&&(o.exec(t),s.stopEvent(e))}),this.$onChange=i.delayedCall(function(){t.find(!1,!1)}),s.addListener(this.searchInput,\"input\",function(){t.$onChange.schedule(20)}),s.addListener(this.searchInput,\"focus\",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),s.addListener(this.replaceInput,\"focus\",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new u([{bindKey:\"Esc\",name:\"closeSearchBar\",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new u,this.$searchBarKb.bindKeys({\"Ctrl-f|Command-f\":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?\"\":\"none\",e.searchInput.focus()},\"Ctrl-H|Command-Option-F\":function(e){e.replaceBox.style.display=\"\",e.replaceInput.focus()},\"Ctrl-G|Command-G\":function(e){e.findNext()},\"Ctrl-Shift-G|Command-Shift-G\":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},\"Shift-Return\":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},\"Alt-Return\":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:\"toggleRegexpMode\",bindKey:{win:\"Alt-R|Alt-/\",mac:\"Ctrl-Alt-R|Ctrl-Alt-/\"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:\"toggleCaseSensitive\",bindKey:{win:\"Alt-C|Alt-I\",mac:\"Ctrl-Alt-R|Ctrl-Alt-I\"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:\"toggleWholeWords\",bindKey:{win:\"Alt-B|Alt-W\",mac:\"Ctrl-Alt-B|Ctrl-Alt-W\"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}}]),this.$syncOptions=function(){r.setCssClass(this.regExpOption,\"checked\",this.regExpOption.checked),r.setCssClass(this.wholeWordOption,\"checked\",this.wholeWordOption.checked),r.setCssClass(this.caseSensitiveOption,\"checked\",this.caseSensitiveOption.checked),this.find(!1,!1)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t,n){var i=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n}),s=!i&&this.searchInput.value;r.setCssClass(this.searchBox,\"ace_nomatch\",s),this.editor._emit(\"findSearchBox\",{match:!s}),this.highlight()},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;r.setCssClass(this.searchBox,\"ace_nomatch\",t),this.editor._emit(\"findSearchBox\",{match:!t}),this.highlight(),this.hide()},this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.element.style.display=\"none\",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.element.style.display=\"\",this.replaceBox.style.display=t?\"\":\"none\",this.isReplace=t,e&&(this.searchInput.value=e),this.find(!1,!1,!0),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(l.prototype),t.SearchBox=l,t.Search=function(e,t){var n=e.searchBox||new l(e);n.show(e.session.getTextRange(),t)}}),ace.define(\"ace/ext/old_ie\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\",\"ace/tokenizer\",\"ace/ext/searchbox\",\"ace/mode/text\"],function(require,exports,module){\"use strict\";function patch(obj,name,regexp,replacement){eval(\"obj['\"+name+\"']=\"+obj[name].toString().replace(regexp,replacement))}var MAX_TOKEN_COUNT=1e3,useragent=require(\"../lib/useragent\"),TokenizerModule=require(\"../tokenizer\");useragent.isIE&&useragent.isIE<10&&window.top.document.compatMode===\"BackCompat\"&&(useragent.isOldIE=!0);if(typeof document!=\"undefined\"&&!document.documentElement.querySelector){useragent.isOldIE=!0;var qs=function(e,t){if(t.charAt(0)==\".\")var n=t.slice(1);else var r=t.match(/(\\w+)=(\\w+)/),i=r&&r[1],s=r&&r[2];for(var o=0;o<e.all.length;o++){var u=e.all[o];if(n){if(u.className.indexOf(n)!=-1)return u}else if(i&&u.getAttribute(i)==s)return u}},sb=require(\"./searchbox\").SearchBox.prototype;patch(sb,\"$initElements\",/([^\\s=]*).querySelector\\((\".*?\")\\)/g,\"qs($1, $2)\")}var compliantExecNpcg=/()??/.exec(\"\")[1]===undefined;if(compliantExecNpcg)return;var proto=TokenizerModule.Tokenizer.prototype;TokenizerModule.Tokenizer_orig=TokenizerModule.Tokenizer,proto.getLineTokens_orig=proto.getLineTokens,patch(TokenizerModule,\"Tokenizer\",\"ruleRegExps.push(adjustedregex);\\n\",function(e){return e+'        if (state[i].next && RegExp(adjustedregex).test(\"\"))\\n            rule._qre = RegExp(adjustedregex, \"g\");\\n        '}),TokenizerModule.Tokenizer.prototype=proto,patch(proto,\"getLineTokens\",/if \\(match\\[i \\+ 1\\] === undefined\\)\\s*continue;/,\"if (!match[i + 1]) {\\n        if (value)continue;\\n        var qre = state[mapping[i]]._qre;\\n        if (!qre) continue;\\n        qre.lastIndex = lastIndex;\\n        if (!qre.exec(line) || qre.lastIndex != lastIndex)\\n            continue;\\n    }\"),patch(require(\"../mode/text\").Mode.prototype,\"getTokenizer\",/Tokenizer/,\"TokenizerModule.Tokenizer\"),useragent.isOldIE=!0});\n                (function() {\n                    ace.require([\"ace/ext/old_ie\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict-old/ext-searchbox.js",
    "content": "ace.define(\"ace/ext/searchbox\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\"],function(e,t,n){\"use strict\";var r=e(\"../lib/dom\"),i=e(\"../lib/lang\"),s=e(\"../lib/event\"),o=\".ace_search {background-color: #ddd;border: 1px solid #cbcbcb;border-top: 0 none;max-width: 325px;overflow: hidden;margin: 0;padding: 4px;padding-right: 6px;padding-bottom: 0;position: absolute;top: 0px;z-index: 99;white-space: normal;}.ace_search.left {border-left: 0 none;border-radius: 0px 0px 5px 0px;left: 0;}.ace_search.right {border-radius: 0px 0px 0px 5px;border-right: 0 none;right: 0;}.ace_search_form, .ace_replace_form {border-radius: 3px;border: 1px solid #cbcbcb;float: left;margin-bottom: 4px;overflow: hidden;}.ace_search_form.ace_nomatch {outline: 1px solid red;}.ace_search_field {background-color: white;border-right: 1px solid #cbcbcb;border: 0 none;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;float: left;height: 22px;outline: 0;padding: 0 7px;width: 214px;margin: 0;}.ace_searchbtn,.ace_replacebtn {background: #fff;border: 0 none;border-left: 1px solid #dcdcdc;cursor: pointer;float: left;height: 22px;margin: 0;position: relative;}.ace_searchbtn:last-child,.ace_replacebtn:last-child {border-top-right-radius: 3px;border-bottom-right-radius: 3px;}.ace_searchbtn:disabled {background: none;cursor: default;}.ace_searchbtn {background-position: 50% 50%;background-repeat: no-repeat;width: 27px;}.ace_searchbtn.prev {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiSU1NZUAC/6E0I0yACYskCpsJiySKIiY0SUZk40FyTEgCjGgKwTRAgAEAQJUIPCE+qfkAAAAASUVORK5CYII=);    }.ace_searchbtn.next {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiTE1NZQCC/0DMyIAKwGJMUAYDEo3M/s+EpvM/mkKwCQxYjIeLMaELoLMBAgwAU7UJObTKsvAAAAAASUVORK5CYII=);    }.ace_searchbtn_close {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;border-radius: 50%;border: 0 none;color: #656565;cursor: pointer;float: right;font: 16px/16px Arial;height: 14px;margin: 5px 1px 9px 5px;padding: 0;text-align: center;width: 14px;}.ace_searchbtn_close:hover {background-color: #656565;background-position: 50% 100%;color: white;}.ace_replacebtn.prev {width: 54px}.ace_replacebtn.next {width: 27px}.ace_button {margin-left: 2px;cursor: pointer;-webkit-user-select: none;-moz-user-select: none;-o-user-select: none;-ms-user-select: none;user-select: none;overflow: hidden;opacity: 0.7;border: 1px solid rgba(100,100,100,0.23);padding: 1px;-moz-box-sizing: border-box;box-sizing:    border-box;color: black;}.ace_button:hover {background-color: #eee;opacity:1;}.ace_button:active {background-color: #ddd;}.ace_button.checked {border-color: #3399ff;opacity:1;}.ace_search_options{margin-bottom: 3px;text-align: right;-webkit-user-select: none;-moz-user-select: none;-o-user-select: none;-ms-user-select: none;user-select: none;}\",u=e(\"../keyboard/hash_handler\").HashHandler,a=e(\"../lib/keys\");r.importCssString(o,\"ace_searchbox\");var f='<div class=\"ace_search right\">    <button type=\"button\" action=\"hide\" class=\"ace_searchbtn_close\"></button>    <div class=\"ace_search_form\">        <input class=\"ace_search_field\" placeholder=\"Search for\" spellcheck=\"false\"></input>        <button type=\"button\" action=\"findNext\" class=\"ace_searchbtn next\"></button>        <button type=\"button\" action=\"findPrev\" class=\"ace_searchbtn prev\"></button>        <button type=\"button\" action=\"findAll\" class=\"ace_searchbtn\" title=\"Alt-Enter\">All</button>    </div>    <div class=\"ace_replace_form\">        <input class=\"ace_search_field\" placeholder=\"Replace with\" spellcheck=\"false\"></input>        <button type=\"button\" action=\"replaceAndFindNext\" class=\"ace_replacebtn\">Replace</button>        <button type=\"button\" action=\"replaceAll\" class=\"ace_replacebtn\">All</button>    </div>    <div class=\"ace_search_options\">        <span action=\"toggleRegexpMode\" class=\"ace_button\" title=\"RegExp Search\">.*</span>        <span action=\"toggleCaseSensitive\" class=\"ace_button\" title=\"CaseSensitive Search\">Aa</span>        <span action=\"toggleWholeWords\" class=\"ace_button\" title=\"Whole Word Search\">\\\\b</span>    </div></div>'.replace(/>\\s+/g,\">\"),l=function(e,t,n){var i=r.createElement(\"div\");i.innerHTML=f,this.element=i.firstChild,this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.container.appendChild(this.element),this.editor=e},this.$initElements=function(e){this.searchBox=e.querySelector(\".ace_search_form\"),this.replaceBox=e.querySelector(\".ace_replace_form\"),this.searchOptions=e.querySelector(\".ace_search_options\"),this.regExpOption=e.querySelector(\"[action=toggleRegexpMode]\"),this.caseSensitiveOption=e.querySelector(\"[action=toggleCaseSensitive]\"),this.wholeWordOption=e.querySelector(\"[action=toggleWholeWords]\"),this.searchInput=this.searchBox.querySelector(\".ace_search_field\"),this.replaceInput=this.replaceBox.querySelector(\".ace_search_field\")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;s.addListener(e,\"mousedown\",function(e){setTimeout(function(){t.activeInput.focus()},0),s.stopPropagation(e)}),s.addListener(e,\"click\",function(e){var n=e.target||e.srcElement,r=n.getAttribute(\"action\");r&&t[r]?t[r]():t.$searchBarKb.commands[r]&&t.$searchBarKb.commands[r].exec(t),s.stopPropagation(e)}),s.addCommandKeyListener(e,function(e,n,r){var i=a.keyCodeToString(r),o=t.$searchBarKb.findKeyCommand(n,i);o&&o.exec&&(o.exec(t),s.stopEvent(e))}),this.$onChange=i.delayedCall(function(){t.find(!1,!1)}),s.addListener(this.searchInput,\"input\",function(){t.$onChange.schedule(20)}),s.addListener(this.searchInput,\"focus\",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),s.addListener(this.replaceInput,\"focus\",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new u([{bindKey:\"Esc\",name:\"closeSearchBar\",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new u,this.$searchBarKb.bindKeys({\"Ctrl-f|Command-f\":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?\"\":\"none\",e.searchInput.focus()},\"Ctrl-H|Command-Option-F\":function(e){e.replaceBox.style.display=\"\",e.replaceInput.focus()},\"Ctrl-G|Command-G\":function(e){e.findNext()},\"Ctrl-Shift-G|Command-Shift-G\":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},\"Shift-Return\":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},\"Alt-Return\":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:\"toggleRegexpMode\",bindKey:{win:\"Alt-R|Alt-/\",mac:\"Ctrl-Alt-R|Ctrl-Alt-/\"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:\"toggleCaseSensitive\",bindKey:{win:\"Alt-C|Alt-I\",mac:\"Ctrl-Alt-R|Ctrl-Alt-I\"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:\"toggleWholeWords\",bindKey:{win:\"Alt-B|Alt-W\",mac:\"Ctrl-Alt-B|Ctrl-Alt-W\"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}}]),this.$syncOptions=function(){r.setCssClass(this.regExpOption,\"checked\",this.regExpOption.checked),r.setCssClass(this.wholeWordOption,\"checked\",this.wholeWordOption.checked),r.setCssClass(this.caseSensitiveOption,\"checked\",this.caseSensitiveOption.checked),this.find(!1,!1)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t,n){var i=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n}),s=!i&&this.searchInput.value;r.setCssClass(this.searchBox,\"ace_nomatch\",s),this.editor._emit(\"findSearchBox\",{match:!s}),this.highlight()},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;r.setCssClass(this.searchBox,\"ace_nomatch\",t),this.editor._emit(\"findSearchBox\",{match:!t}),this.highlight(),this.hide()},this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.element.style.display=\"none\",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.element.style.display=\"\",this.replaceBox.style.display=t?\"\":\"none\",this.isReplace=t,e&&(this.searchInput.value=e),this.find(!1,!1,!0),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(l.prototype),t.SearchBox=l,t.Search=function(e,t){var n=e.searchBox||new l(e);n.show(e.session.getTextRange(),t)}});\n                (function() {\n                    ace.require([\"ace/ext/searchbox\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict-old/ext-settings_menu.js",
    "content": "ace.define(\"ace/ext/menu_tools/element_generator\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";n.exports.createOption=function(t){var n,r=document.createElement(\"option\");for(n in t)t.hasOwnProperty(n)&&(n===\"selected\"?r.setAttribute(n,t[n]):r[n]=t[n]);return r},n.exports.createCheckbox=function(t,n,r){var i=document.createElement(\"input\");return i.setAttribute(\"type\",\"checkbox\"),i.setAttribute(\"id\",t),i.setAttribute(\"name\",t),i.setAttribute(\"value\",n),i.setAttribute(\"class\",r),n&&i.setAttribute(\"checked\",\"checked\"),i},n.exports.createInput=function(t,n,r){var i=document.createElement(\"input\");return i.setAttribute(\"type\",\"text\"),i.setAttribute(\"id\",t),i.setAttribute(\"name\",t),i.setAttribute(\"value\",n),i.setAttribute(\"class\",r),i},n.exports.createLabel=function(t,n){var r=document.createElement(\"label\");return r.setAttribute(\"for\",n),r.textContent=t,r},n.exports.createSelection=function(t,r,i){var s=document.createElement(\"select\");return s.setAttribute(\"id\",t),s.setAttribute(\"name\",t),s.setAttribute(\"class\",i),r.forEach(function(e){s.appendChild(n.exports.createOption(e))}),s}}),ace.define(\"ace/ext/modelist\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function i(e){var t=a.text,n=e.split(/[\\/\\\\]/).pop();for(var i=0;i<r.length;i++)if(r[i].supportsFile(n)){t=r[i];break}return t}var r=[],s=function(e,t,n){this.name=e,this.caption=t,this.mode=\"ace/mode/\"+e,this.extensions=n;var r;/\\^/.test(n)?r=n.replace(/\\|(\\^)?/g,function(e,t){return\"$|\"+(t?\"^\":\"^.*\\\\.\")})+\"$\":r=\"^.*\\\\.(\"+n+\")$\",this.extRe=new RegExp(r,\"gi\")};s.prototype.supportsFile=function(e){return e.match(this.extRe)};var o={ABAP:[\"abap\"],ABC:[\"abc\"],ActionScript:[\"as\"],ADA:[\"ada|adb\"],Apache_Conf:[\"^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd\"],AsciiDoc:[\"asciidoc|adoc\"],Assembly_x86:[\"asm|a\"],AutoHotKey:[\"ahk\"],BatchFile:[\"bat|cmd\"],C_Cpp:[\"cpp|c|cc|cxx|h|hh|hpp|ino\"],C9Search:[\"c9search_results\"],Cirru:[\"cirru|cr\"],Clojure:[\"clj|cljs\"],Cobol:[\"CBL|COB\"],coffee:[\"coffee|cf|cson|^Cakefile\"],ColdFusion:[\"cfm\"],CSharp:[\"cs\"],CSS:[\"css\"],Curly:[\"curly\"],D:[\"d|di\"],Dart:[\"dart\"],Diff:[\"diff|patch\"],Dockerfile:[\"^Dockerfile\"],Dot:[\"dot\"],Dummy:[\"dummy\"],DummySyntax:[\"dummy\"],Eiffel:[\"e|ge\"],EJS:[\"ejs\"],Elixir:[\"ex|exs\"],Elm:[\"elm\"],Erlang:[\"erl|hrl\"],Forth:[\"frt|fs|ldr\"],Fortran:[\"f|f90\"],FTL:[\"ftl\"],Gcode:[\"gcode\"],Gherkin:[\"feature\"],Gitignore:[\"^.gitignore\"],Glsl:[\"glsl|frag|vert\"],Gobstones:[\"gbs\"],golang:[\"go\"],Groovy:[\"groovy\"],HAML:[\"haml\"],Handlebars:[\"hbs|handlebars|tpl|mustache\"],Haskell:[\"hs\"],haXe:[\"hx\"],HTML:[\"html|htm|xhtml\"],HTML_Elixir:[\"eex|html.eex\"],HTML_Ruby:[\"erb|rhtml|html.erb\"],INI:[\"ini|conf|cfg|prefs\"],Io:[\"io\"],Jack:[\"jack\"],Jade:[\"jade\"],Java:[\"java\"],JavaScript:[\"js|jsm|jsx\"],JSON:[\"json\"],JSONiq:[\"jq\"],JSP:[\"jsp\"],JSX:[\"jsx\"],Julia:[\"jl\"],LaTeX:[\"tex|latex|ltx|bib\"],Lean:[\"lean|hlean\"],LESS:[\"less\"],Liquid:[\"liquid\"],Lisp:[\"lisp\"],LiveScript:[\"ls\"],LogiQL:[\"logic|lql\"],LSL:[\"lsl\"],Lua:[\"lua\"],LuaPage:[\"lp\"],Lucene:[\"lucene\"],Makefile:[\"^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make\"],Markdown:[\"md|markdown\"],Mask:[\"mask\"],MATLAB:[\"matlab\"],Maze:[\"mz\"],MEL:[\"mel\"],MUSHCode:[\"mc|mush\"],MySQL:[\"mysql\"],Nix:[\"nix\"],NSIS:[\"nsi|nsh\"],ObjectiveC:[\"m|mm\"],OCaml:[\"ml|mli\"],Pascal:[\"pas|p\"],Perl:[\"pl|pm\"],pgSQL:[\"pgsql\"],PHP:[\"php|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module\"],Powershell:[\"ps1\"],Praat:[\"praat|praatscript|psc|proc\"],Prolog:[\"plg|prolog\"],Properties:[\"properties\"],Protobuf:[\"proto\"],Python:[\"py\"],R:[\"r\"],Razor:[\"cshtml\"],RDoc:[\"Rd\"],RHTML:[\"Rhtml\"],RST:[\"rst\"],Ruby:[\"rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile\"],Rust:[\"rs\"],SASS:[\"sass\"],SCAD:[\"scad\"],Scala:[\"scala\"],Scheme:[\"scm|sm|rkt|oak|scheme\"],SCSS:[\"scss\"],SH:[\"sh|bash|^.bashrc\"],SJS:[\"sjs\"],Smarty:[\"smarty|tpl\"],snippets:[\"snippets\"],Soy_Template:[\"soy\"],Space:[\"space\"],SQL:[\"sql\"],SQLServer:[\"sqlserver\"],Stylus:[\"styl|stylus\"],SVG:[\"svg\"],Swift:[\"swift\"],Tcl:[\"tcl\"],Tex:[\"tex\"],Text:[\"txt\"],Textile:[\"textile\"],Toml:[\"toml\"],Twig:[\"twig|swig\"],Typescript:[\"ts|typescript|str\"],Vala:[\"vala\"],VBScript:[\"vbs|vb\"],Velocity:[\"vm\"],Verilog:[\"v|vh|sv|svh\"],VHDL:[\"vhd|vhdl\"],Wollok:[\"wlk|wpgm|wtest\"],XML:[\"xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml\"],XQuery:[\"xq\"],YAML:[\"yaml|yml\"],Django:[\"html\"]},u={ObjectiveC:\"Objective-C\",CSharp:\"C#\",golang:\"Go\",C_Cpp:\"C and C++\",coffee:\"CoffeeScript\",HTML_Ruby:\"HTML (Ruby)\",HTML_Elixir:\"HTML (Elixir)\",FTL:\"FreeMarker\"},a={};for(var f in o){var l=o[f],c=(u[f]||f).replace(/_/g,\" \"),h=f.toLowerCase(),p=new s(h,c,l[0]);a[h]=p,r.push(p)}n.exports={getModeForPath:i,modes:r,modesByName:a}}),ace.define(\"ace/ext/themelist\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\"],function(e,t,n){\"use strict\";e(\"ace/lib/fixoldbrowsers\");var r=[[\"Chrome\"],[\"Clouds\"],[\"Crimson Editor\"],[\"Dawn\"],[\"Dreamweaver\"],[\"Eclipse\"],[\"GitHub\"],[\"IPlastic\"],[\"Solarized Light\"],[\"TextMate\"],[\"Tomorrow\"],[\"XCode\"],[\"Kuroir\"],[\"KatzenMilch\"],[\"SQL Server\",\"sqlserver\",\"light\"],[\"Ambiance\",\"ambiance\",\"dark\"],[\"Chaos\",\"chaos\",\"dark\"],[\"Clouds Midnight\",\"clouds_midnight\",\"dark\"],[\"Cobalt\",\"cobalt\",\"dark\"],[\"idle Fingers\",\"idle_fingers\",\"dark\"],[\"krTheme\",\"kr_theme\",\"dark\"],[\"Merbivore\",\"merbivore\",\"dark\"],[\"Merbivore Soft\",\"merbivore_soft\",\"dark\"],[\"Mono Industrial\",\"mono_industrial\",\"dark\"],[\"Monokai\",\"monokai\",\"dark\"],[\"Pastel on dark\",\"pastel_on_dark\",\"dark\"],[\"Solarized Dark\",\"solarized_dark\",\"dark\"],[\"Terminal\",\"terminal\",\"dark\"],[\"Tomorrow Night\",\"tomorrow_night\",\"dark\"],[\"Tomorrow Night Blue\",\"tomorrow_night_blue\",\"dark\"],[\"Tomorrow Night Bright\",\"tomorrow_night_bright\",\"dark\"],[\"Tomorrow Night 80s\",\"tomorrow_night_eighties\",\"dark\"],[\"Twilight\",\"twilight\",\"dark\"],[\"Vibrant Ink\",\"vibrant_ink\",\"dark\"]];t.themesByName={},t.themes=r.map(function(e){var n=e[1]||e[0].replace(/ /g,\"_\").toLowerCase(),r={caption:e[0],theme:\"ace/theme/\"+n,isDark:e[2]==\"dark\",name:n};return t.themesByName[n]=r,r})}),ace.define(\"ace/ext/menu_tools/add_editor_menu_options\",[\"require\",\"exports\",\"module\",\"ace/ext/modelist\",\"ace/ext/themelist\"],function(e,t,n){\"use strict\";n.exports.addEditorMenuOptions=function(n){var r=e(\"../modelist\"),i=e(\"../themelist\");n.menuOptions={setNewLineMode:[{textContent:\"unix\",value:\"unix\"},{textContent:\"windows\",value:\"windows\"},{textContent:\"auto\",value:\"auto\"}],setTheme:[],setMode:[],setKeyboardHandler:[{textContent:\"ace\",value:\"\"},{textContent:\"vim\",value:\"ace/keyboard/vim\"},{textContent:\"emacs\",value:\"ace/keyboard/emacs\"},{textContent:\"textarea\",value:\"ace/keyboard/textarea\"},{textContent:\"sublime\",value:\"ace/keyboard/sublime\"}]},n.menuOptions.setTheme=i.themes.map(function(e){return{textContent:e.caption,value:e.theme}}),n.menuOptions.setMode=r.modes.map(function(e){return{textContent:e.name,value:e.mode}})}}),ace.define(\"ace/ext/menu_tools/get_set_functions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";n.exports.getSetFunctions=function(t){var n=[],r={editor:t,session:t.session,renderer:t.renderer},i=[],s=[\"setOption\",\"setUndoManager\",\"setDocument\",\"setValue\",\"setBreakpoints\",\"setScrollTop\",\"setScrollLeft\",\"setSelectionStyle\",\"setWrapLimitRange\"];return[\"renderer\",\"session\",\"editor\"].forEach(function(e){var t=r[e],o=e;for(var u in t)s.indexOf(u)===-1&&/^set/.test(u)&&i.indexOf(u)===-1&&(i.push(u),n.push({functionName:u,parentObj:t,parentName:o}))}),n}}),ace.define(\"ace/ext/menu_tools/generate_settings_menu\",[\"require\",\"exports\",\"module\",\"ace/ext/menu_tools/element_generator\",\"ace/ext/menu_tools/add_editor_menu_options\",\"ace/ext/menu_tools/get_set_functions\",\"ace/ace\"],function(e,t,n){\"use strict\";var r=e(\"./element_generator\"),i=e(\"./add_editor_menu_options\").addEditorMenuOptions,s=e(\"./get_set_functions\").getSetFunctions;n.exports.generateSettingsMenu=function(n){function u(){o.sort(function(e,t){var n=e.getAttribute(\"contains\"),r=t.getAttribute(\"contains\");return n.localeCompare(r)})}function a(){var t=document.createElement(\"div\");t.setAttribute(\"id\",\"ace_settingsmenu\"),o.forEach(function(e){t.appendChild(e)});var n=t.appendChild(document.createElement(\"div\")),r=e(\"../../ace\").version;return n.style.padding=\"1em\",n.textContent=\"Ace version \"+r,t}function f(e,t,i,s){var o,u=document.createElement(\"div\");return u.setAttribute(\"contains\",i),u.setAttribute(\"class\",\"ace_optionsMenuEntry\"),u.setAttribute(\"style\",\"clear: both;\"),u.appendChild(r.createLabel(i.replace(/^set/,\"\").replace(/([A-Z])/g,\" $1\").trim(),i)),Array.isArray(s)?(o=r.createSelection(i,s,t),o.addEventListener(\"change\",function(t){try{n.menuOptions[t.target.id].forEach(function(e){e.textContent!==t.target.textContent&&delete e.selected}),e[t.target.id](t.target.value)}catch(r){throw new Error(r)}})):typeof s==\"boolean\"?(o=r.createCheckbox(i,s,t),o.addEventListener(\"change\",function(t){try{e[t.target.id](!!t.target.checked)}catch(n){throw new Error(n)}})):(o=r.createInput(i,s,t),o.addEventListener(\"change\",function(t){try{t.target.value===\"true\"?e[t.target.id](!0):t.target.value===\"false\"?e[t.target.id](!1):e[t.target.id](t.target.value)}catch(n){throw new Error(n)}})),o.style.cssText=\"float:right;\",u.appendChild(o),u}function l(e,t,r,i){var s=n.menuOptions[e],o=t[i]();return typeof o==\"object\"&&(o=o.$id),s.forEach(function(e){e.value===o&&(e.selected=\"selected\")}),f(t,r,e,s)}function c(e){var t=e.functionName,r=e.parentObj,i=e.parentName,s,u=t.replace(/^set/,\"get\");if(n.menuOptions[t]!==undefined)o.push(l(t,r,i,u));else if(typeof r[u]==\"function\")try{s=r[u](),typeof s==\"object\"&&(s=s.$id),o.push(f(r,i,t,s))}catch(a){}}var o=[];return i(n),s(n).forEach(function(e){c(e)}),u(),a()}}),ace.define(\"ace/ext/menu_tools/overlay_page\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/dom\"),i=\"#ace_settingsmenu, #kbshortcutmenu {background-color: #F7F7F7;color: black;box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);padding: 1em 0.5em 2em 1em;overflow: auto;position: absolute;margin: 0;bottom: 0;right: 0;top: 0;z-index: 9991;cursor: default;}.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);background-color: rgba(255, 255, 255, 0.6);color: black;}.ace_optionsMenuEntry:hover {background-color: rgba(100, 100, 100, 0.1);-webkit-transition: all 0.5s;transition: all 0.3s}.ace_closeButton {background: rgba(245, 146, 146, 0.5);border: 1px solid #F48A8A;border-radius: 50%;padding: 7px;position: absolute;right: -8px;top: -8px;z-index: 1000;}.ace_closeButton{background: rgba(245, 146, 146, 0.9);}.ace_optionsMenuKey {color: darkslateblue;font-weight: bold;}.ace_optionsMenuCommand {color: darkcyan;font-weight: normal;}\";r.importCssString(i),n.exports.overlayPage=function(t,n,i,s,o,u){function l(e){e.keyCode===27&&a.click()}i=i?\"top: \"+i+\";\":\"\",o=o?\"bottom: \"+o+\";\":\"\",s=s?\"right: \"+s+\";\":\"\",u=u?\"left: \"+u+\";\":\"\";var a=document.createElement(\"div\"),f=document.createElement(\"div\");a.style.cssText=\"margin: 0; padding: 0; position: fixed; top:0; bottom:0; left:0; right:0;z-index: 9990; background-color: rgba(0, 0, 0, 0.3);\",a.addEventListener(\"click\",function(){document.removeEventListener(\"keydown\",l),a.parentNode.removeChild(a),t.focus(),a=null}),document.addEventListener(\"keydown\",l),f.style.cssText=i+s+o+u,f.addEventListener(\"click\",function(e){e.stopPropagation()});var c=r.createElement(\"div\");c.style.position=\"relative\";var h=r.createElement(\"div\");h.className=\"ace_closeButton\",h.addEventListener(\"click\",function(){a.click()}),c.appendChild(h),f.appendChild(c),f.appendChild(n),a.appendChild(f),document.body.appendChild(a),t.blur()}}),ace.define(\"ace/ext/settings_menu\",[\"require\",\"exports\",\"module\",\"ace/ext/menu_tools/generate_settings_menu\",\"ace/ext/menu_tools/overlay_page\",\"ace/editor\"],function(e,t,n){\"use strict\";function s(e){var t=document.getElementById(\"ace_settingsmenu\");t||i(e,r(e),\"0\",\"0\",\"0\")}var r=e(\"./menu_tools/generate_settings_menu\").generateSettingsMenu,i=e(\"./menu_tools/overlay_page\").overlayPage;n.exports.init=function(t){var n=e(\"ace/editor\").Editor;n.prototype.showSettingsMenu=function(){s(this)}}});\n                (function() {\n                    ace.require([\"ace/ext/settings_menu\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict-old/ext-spellcheck.js",
    "content": "ace.define(\"ace/ext/spellcheck\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/editor\",\"ace/config\"],function(e,t,n){\"use strict\";var r=e(\"../lib/event\");t.contextMenuHandler=function(e){var t=e.target,n=t.textInput.getElement();if(!t.selection.isEmpty())return;var i=t.getCursorPosition(),s=t.session.getWordRange(i.row,i.column),o=t.session.getTextRange(s);t.session.tokenRe.lastIndex=0;if(!t.session.tokenRe.test(o))return;var u=\"\u0001\u0001\",a=o+\" \"+u;n.value=a,n.setSelectionRange(o.length,o.length+1),n.setSelectionRange(0,0),n.setSelectionRange(0,o.length);var f=!1;r.addListener(n,\"keydown\",function l(){r.removeListener(n,\"keydown\",l),f=!0}),t.textInput.setInputHandler(function(e){console.log(e,a,n.selectionStart,n.selectionEnd);if(e==a)return\"\";if(e.lastIndexOf(a,0)===0)return e.slice(a.length);if(e.substr(n.selectionEnd)==a)return e.slice(0,-a.length);if(e.slice(-2)==u){var r=e.slice(0,-2);if(r.slice(-1)==\" \")return f?r.substring(0,n.selectionEnd):(r=r.slice(0,-1),t.session.replace(s,r),\"\")}return e})};var i=e(\"../editor\").Editor;e(\"../config\").defineOptions(i.prototype,\"editor\",{spellcheck:{set:function(e){var n=this.textInput.getElement();n.spellcheck=!!e,e?this.on(\"nativecontextmenu\",t.contextMenuHandler):this.removeListener(\"nativecontextmenu\",t.contextMenuHandler)},value:!0}})});\n                (function() {\n                    ace.require([\"ace/ext/spellcheck\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict-old/ext-split.js",
    "content": "ace.define(\"ace/split\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/editor\",\"ace/virtual_renderer\",\"ace/edit_session\"],function(e,t,n){\"use strict\";function l(e,t){this.$u=e,this.$doc=t}var r=e(\"./lib/oop\"),i=e(\"./lib/lang\"),s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./editor\").Editor,u=e(\"./virtual_renderer\").VirtualRenderer,a=e(\"./edit_session\").EditSession,f=function(e,t,n){this.BELOW=1,this.BESIDE=0,this.$container=e,this.$theme=t,this.$splits=0,this.$editorCSS=\"\",this.$editors=[],this.$orientation=this.BESIDE,this.setSplits(n||1),this.$cEditor=this.$editors[0],this.on(\"focus\",function(e){this.$cEditor=e}.bind(this))};(function(){r.implement(this,s),this.$createEditor=function(){var e=document.createElement(\"div\");e.className=this.$editorCSS,e.style.cssText=\"position: absolute; top:0px; bottom:0px\",this.$container.appendChild(e);var t=new o(new u(e,this.$theme));return t.on(\"focus\",function(){this._emit(\"focus\",t)}.bind(this)),this.$editors.push(t),t.setFontSize(this.$fontSize),t},this.setSplits=function(e){var t;if(e<1)throw\"The number of splits have to be > 0!\";if(e==this.$splits)return;if(e>this.$splits){while(this.$splits<this.$editors.length&&this.$splits<e)t=this.$editors[this.$splits],this.$container.appendChild(t.container),t.setFontSize(this.$fontSize),this.$splits++;while(this.$splits<e)this.$createEditor(),this.$splits++}else while(this.$splits>e)t=this.$editors[this.$splits-1],this.$container.removeChild(t.container),this.$splits--;this.resize()},this.getSplits=function(){return this.$splits},this.getEditor=function(e){return this.$editors[e]},this.getCurrentEditor=function(){return this.$cEditor},this.focus=function(){this.$cEditor.focus()},this.blur=function(){this.$cEditor.blur()},this.setTheme=function(e){this.$editors.forEach(function(t){t.setTheme(e)})},this.setKeyboardHandler=function(e){this.$editors.forEach(function(t){t.setKeyboardHandler(e)})},this.forEach=function(e,t){this.$editors.forEach(e,t)},this.$fontSize=\"\",this.setFontSize=function(e){this.$fontSize=e,this.forEach(function(t){t.setFontSize(e)})},this.$cloneSession=function(e){var t=new a(e.getDocument(),e.getMode()),n=e.getUndoManager();if(n){var r=new l(n,t);t.setUndoManager(r)}return t.$informUndoManager=i.delayedCall(function(){t.$deltas=[]}),t.setTabSize(e.getTabSize()),t.setUseSoftTabs(e.getUseSoftTabs()),t.setOverwrite(e.getOverwrite()),t.setBreakpoints(e.getBreakpoints()),t.setUseWrapMode(e.getUseWrapMode()),t.setUseWorker(e.getUseWorker()),t.setWrapLimitRange(e.$wrapLimitRange.min,e.$wrapLimitRange.max),t.$foldData=e.$cloneFoldData(),t},this.setSession=function(e,t){var n;t==null?n=this.$cEditor:n=this.$editors[t];var r=this.$editors.some(function(t){return t.session===e});return r&&(e=this.$cloneSession(e)),n.setSession(e),e},this.getOrientation=function(){return this.$orientation},this.setOrientation=function(e){if(this.$orientation==e)return;this.$orientation=e,this.resize()},this.resize=function(){var e=this.$container.clientWidth,t=this.$container.clientHeight,n;if(this.$orientation==this.BESIDE){var r=e/this.$splits;for(var i=0;i<this.$splits;i++)n=this.$editors[i],n.container.style.width=r+\"px\",n.container.style.top=\"0px\",n.container.style.left=i*r+\"px\",n.container.style.height=t+\"px\",n.resize()}else{var s=t/this.$splits;for(var i=0;i<this.$splits;i++)n=this.$editors[i],n.container.style.width=e+\"px\",n.container.style.top=i*s+\"px\",n.container.style.left=\"0px\",n.container.style.height=s+\"px\",n.resize()}}}).call(f.prototype),function(){this.execute=function(e){this.$u.execute(e)},this.undo=function(){var e=this.$u.undo(!0);e&&this.$doc.selection.setSelectionRange(e)},this.redo=function(){var e=this.$u.redo(!0);e&&this.$doc.selection.setSelectionRange(e)},this.reset=function(){this.$u.reset()},this.hasUndo=function(){return this.$u.hasUndo()},this.hasRedo=function(){return this.$u.hasRedo()}}.call(l.prototype),t.Split=f}),ace.define(\"ace/ext/split\",[\"require\",\"exports\",\"module\",\"ace/split\"],function(e,t,n){\"use strict\";n.exports=e(\"../split\")});\n                (function() {\n                    ace.require([\"ace/ext/split\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict-old/ext-static_highlight.js",
    "content": "ace.define(\"ace/ext/static_highlight\",[\"require\",\"exports\",\"module\",\"ace/edit_session\",\"ace/layer/text\",\"ace/config\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";var r=e(\"../edit_session\").EditSession,i=e(\"../layer/text\").Text,s=\".ace_static_highlight {font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', 'Droid Sans Mono', monospace;font-size: 12px;white-space: pre-wrap}.ace_static_highlight .ace_gutter {width: 2em;text-align: right;padding: 0 3px 0 0;margin-right: 3px;}.ace_static_highlight.ace_show_gutter .ace_line {padding-left: 2.6em;}.ace_static_highlight .ace_line { position: relative; }.ace_static_highlight .ace_gutter-cell {-moz-user-select: -moz-none;-khtml-user-select: none;-webkit-user-select: none;user-select: none;top: 0;bottom: 0;left: 0;position: absolute;}.ace_static_highlight .ace_gutter-cell:before {content: counter(ace_line, decimal);counter-increment: ace_line;}.ace_static_highlight {counter-reset: ace_line;}\",o=e(\"../config\"),u=e(\"../lib/dom\"),a=function(){this.config={}};a.prototype=i.prototype;var f=function(e,t,n){var r=e.className.match(/lang-(\\w+)/),i=t.mode||r&&\"ace/mode/\"+r[1];if(!i)return!1;var s=t.theme||\"ace/theme/textmate\",o=\"\",a=[];if(e.firstElementChild){var l=0;for(var c=0;c<e.childNodes.length;c++){var h=e.childNodes[c];h.nodeType==3?(l+=h.data.length,o+=h.data):a.push(l,h)}}else o=u.getInnerText(e),t.trim&&(o=o.trim());f.render(o,i,s,t.firstLineNumber,!t.showGutter,function(t){u.importCssString(t.css,\"ace_highlight\"),e.innerHTML=t.html;var r=e.firstChild.firstChild;for(var i=0;i<a.length;i+=2){var s=t.session.doc.indexToPosition(a[i]),o=a[i+1],f=r.children[s.row];f&&f.appendChild(o)}n&&n()})};f.render=function(e,t,n,i,s,u){function h(){var r=f.renderSync(e,t,n,i,s);return u?u(r):r}var a=1,l=r.prototype.$modes;typeof n==\"string\"&&(a++,o.loadModule([\"theme\",n],function(e){n=e,--a||h()}));var c;return t&&typeof t==\"object\"&&!t.getTokenizer&&(c=t,t=c.path),typeof t==\"string\"&&(a++,o.loadModule([\"mode\",t],function(e){if(!l[t]||c)l[t]=new e.Mode(c);t=l[t],--a||h()})),--a||h()},f.renderSync=function(e,t,n,i,o){i=parseInt(i||1,10);var u=new r(\"\");u.setUseWorker(!1),u.setMode(t);var f=new a;f.setSession(u),u.setValue(e);var l=[],c=u.getLength();for(var h=0;h<c;h++)l.push(\"<div class='ace_line'>\"),o||l.push(\"<span class='ace_gutter ace_gutter-cell' unselectable='on'></span>\"),f.$renderLine(l,h,!0,!1),l.push(\"\\n</div>\");var p=\"<div class='\"+n.cssClass+\"'>\"+\"<div class='ace_static_highlight\"+(o?\"\":\" ace_show_gutter\")+\"' style='counter-reset:ace_line \"+(i-1)+\"'>\"+l.join(\"\")+\"</div>\"+\"</div>\";return f.destroy(),{css:s+n.cssText,html:p,session:u}},n.exports=f,n.exports.highlight=f});\n                (function() {\n                    ace.require([\"ace/ext/static_highlight\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict-old/ext-statusbar.js",
    "content": "ace.define(\"ace/ext/statusbar\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"ace/lib/dom\"),i=e(\"ace/lib/lang\"),s=function(e,t){this.element=r.createElement(\"div\"),this.element.className=\"ace_status-indicator\",this.element.style.cssText=\"display: inline-block;\",t.appendChild(this.element);var n=i.delayedCall(function(){this.updateStatus(e)}.bind(this)).schedule.bind(null,100);e.on(\"changeStatus\",n),e.on(\"changeSelection\",n),e.on(\"keyboardActivity\",n)};(function(){this.updateStatus=function(e){function n(e,n){e&&t.push(e,n||\"|\")}var t=[];n(e.keyBinding.getStatusText(e)),e.commands.recording&&n(\"REC\");var r=e.selection,i=r.lead;if(!r.isEmpty()){var s=e.getSelectionRange();n(\"(\"+(s.end.row-s.start.row)+\":\"+(s.end.column-s.start.column)+\")\",\" \")}n(i.row+\":\"+i.column,\" \"),r.rangeCount&&n(\"[\"+r.rangeCount+\"]\",\" \"),t.pop(),this.element.textContent=t.join(\"\")}}).call(s.prototype),t.StatusBar=s});\n                (function() {\n                    ace.require([\"ace/ext/statusbar\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict-old/ext-textarea.js",
    "content": "ace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";t.isDark=!1,t.cssClass=\"ace-tm\",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;}';var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)}),ace.define(\"ace/ext/textarea\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/net\",\"ace/ace\",\"ace/theme/textmate\"],function(e,t,n){\"use strict\";function a(e,t){for(var n in t)e.style[n]=t[n]}function f(e,t){if(e.type!=\"textarea\")throw new Error(\"Textarea required!\");var n=e.parentNode,i=document.createElement(\"div\"),s=function(){var t=\"position:relative;\";[\"margin-top\",\"margin-left\",\"margin-right\",\"margin-bottom\"].forEach(function(n){t+=n+\":\"+u(e,i,n)+\";\"});var n=u(e,i,\"width\")||e.clientWidth+\"px\",r=u(e,i,\"height\")||e.clientHeight+\"px\";t+=\"height:\"+r+\";width:\"+n+\";\",t+=\"display:inline-block;\",i.setAttribute(\"style\",t)};r.addListener(window,\"resize\",s),s(),n.insertBefore(i,e.nextSibling);while(n!==document){if(n.tagName.toUpperCase()===\"FORM\"){var o=n.onsubmit;n.onsubmit=function(n){e.value=t(),o&&o.call(this,n)};break}n=n.parentNode}return i}function l(t,n,r){s.loadScript(t,function(){e([n],r)})}function c(e,t,n,r,i,s){function a(e){return e===\"true\"||e==1}var o=e.getSession(),u=e.renderer;return s=s||l,e.setDisplaySettings=function(t){t==null&&(t=n.style.display==\"none\"),t?(n.style.display=\"block\",n.hideButton.focus(),e.on(\"focus\",function r(){e.removeListener(\"focus\",r),n.style.display=\"none\"})):e.focus()},e.$setOption=e.setOption,e.$getOption=e.getOption,e.setOption=function(t,n){switch(t){case\"mode\":e.$setOption(\"mode\",\"ace/mode/\"+n);break;case\"theme\":e.$setOption(\"theme\",\"ace/theme/\"+n);break;case\"keybindings\":switch(n){case\"vim\":e.setKeyboardHandler(\"ace/keyboard/vim\");break;case\"emacs\":e.setKeyboardHandler(\"ace/keyboard/emacs\");break;default:e.setKeyboardHandler(null)}break;case\"softWrap\":case\"fontSize\":e.$setOption(t,n);break;default:e.$setOption(t,a(n))}},e.getOption=function(t){switch(t){case\"mode\":return e.$getOption(\"mode\").substr(\"ace/mode/\".length);case\"theme\":return e.$getOption(\"theme\").substr(\"ace/theme/\".length);case\"keybindings\":var n=e.getKeyboardHandler();switch(n&&n.$id){case\"ace/keyboard/vim\":return\"vim\";case\"ace/keyboard/emacs\":return\"emacs\";default:return\"ace\"}break;default:return e.$getOption(t)}},e.setOptions(i),e}function h(e,n,i){function f(e,t,n,r){if(!n){e.push(\"<input type='checkbox' title='\",t,\"' \",r+\"\"==\"true\"?\"checked='true'\":\"\",\"'></input>\");return}e.push(\"<select title='\"+t+\"'>\");for(var i in n)e.push(\"<option value='\"+i+\"' \"),r==i&&e.push(\" selected \"),e.push(\">\",n[i],\"</option>\");e.push(\"</select>\")}var s=null,o={mode:\"Mode:\",wrap:\"Soft Wrap:\",theme:\"Theme:\",fontSize:\"Font Size:\",showGutter:\"Display Gutter:\",keybindings:\"Keyboard\",showPrintMargin:\"Show Print Margin:\",useSoftTabs:\"Use Soft Tabs:\",showInvisibles:\"Show Invisibles\"},u={mode:{text:\"Plain\",javascript:\"JavaScript\",xml:\"XML\",html:\"HTML\",css:\"CSS\",scss:\"SCSS\",python:\"Python\",php:\"PHP\",java:\"Java\",ruby:\"Ruby\",c_cpp:\"C/C++\",coffee:\"CoffeeScript\",json:\"json\",perl:\"Perl\",clojure:\"Clojure\",ocaml:\"OCaml\",csharp:\"C#\",haxe:\"haXe\",svg:\"SVG\",textile:\"Textile\",groovy:\"Groovy\",liquid:\"Liquid\",Scala:\"Scala\"},theme:{clouds:\"Clouds\",clouds_midnight:\"Clouds Midnight\",cobalt:\"Cobalt\",crimson_editor:\"Crimson Editor\",dawn:\"Dawn\",eclipse:\"Eclipse\",idle_fingers:\"Idle Fingers\",kr_theme:\"Kr Theme\",merbivore:\"Merbivore\",merbivore_soft:\"Merbivore Soft\",mono_industrial:\"Mono Industrial\",monokai:\"Monokai\",pastel_on_dark:\"Pastel On Dark\",solarized_dark:\"Solarized Dark\",solarized_light:\"Solarized Light\",textmate:\"Textmate\",twilight:\"Twilight\",vibrant_ink:\"Vibrant Ink\"},showGutter:s,fontSize:{\"10px\":\"10px\",\"11px\":\"11px\",\"12px\":\"12px\",\"14px\":\"14px\",\"16px\":\"16px\"},wrap:{off:\"Off\",40:\"40\",80:\"80\",free:\"Free\"},keybindings:{ace:\"ace\",vim:\"vim\",emacs:\"emacs\"},showPrintMargin:s,useSoftTabs:s,showInvisibles:s},a=[];a.push(\"<table><tr><th>Setting</th><th>Value</th></tr>\");for(var l in t.defaultOptions)a.push(\"<tr><td>\",o[l],\"</td>\"),a.push(\"<td>\"),f(a,l,u[l],i.getOption(l)),a.push(\"</td></tr>\");a.push(\"</table>\"),e.innerHTML=a.join(\"\");var c=function(e){var t=e.currentTarget;i.setOption(t.title,t.value)},h=function(e){var t=e.currentTarget;i.setOption(t.title,t.checked)},p=e.getElementsByTagName(\"select\");for(var d=0;d<p.length;d++)p[d].onchange=c;var v=e.getElementsByTagName(\"input\");for(var d=0;d<v.length;d++)v[d].onclick=h;var m=document.createElement(\"input\");m.type=\"button\",m.value=\"Hide\",r.addListener(m,\"click\",function(){i.setDisplaySettings(!1)}),e.appendChild(m),e.hideButton=m}var r=e(\"../lib/event\"),i=e(\"../lib/useragent\"),s=e(\"../lib/net\"),o=e(\"../ace\");e(\"../theme/textmate\"),n.exports=t=o;var u=function(e,t,n){var r=e.style[n];r||(window.getComputedStyle?r=window.getComputedStyle(e,\"\").getPropertyValue(n):r=e.currentStyle[n]);if(!r||r==\"auto\"||r==\"intrinsic\")r=t.style[n];return r};t.transformTextarea=function(e,n){var s,u=f(e,function(){return s.getValue()});e.style.display=\"none\",u.style.background=\"white\";var p=document.createElement(\"div\");a(p,{top:\"0px\",left:\"0px\",right:\"0px\",bottom:\"0px\",border:\"1px solid gray\",position:\"absolute\"}),u.appendChild(p);var d=document.createElement(\"div\");a(d,{position:\"absolute\",right:\"0px\",bottom:\"0px\",background:\"red\",cursor:\"nw-resize\",borderStyle:\"solid\",borderWidth:\"9px 8px 10px 9px\",width:\"2px\",borderColor:\"lightblue gray gray lightblue\",zIndex:101});var v=document.createElement(\"div\"),m={top:\"0px\",left:\"20%\",right:\"0px\",bottom:\"0px\",position:\"absolute\",padding:\"5px\",zIndex:100,color:\"white\",display:\"none\",overflow:\"auto\",fontSize:\"14px\",boxShadow:\"-5px 2px 3px gray\"};i.isOldIE?m.backgroundColor=\"#333\":m.backgroundColor=\"rgba(0, 0, 0, 0.6)\",a(v,m),u.appendChild(v),n=n||t.defaultOptions;var g=o.edit(p);s=g.getSession(),s.setValue(e.value||e.innerHTML),g.focus(),u.appendChild(d),c(g,p,v,o,n,l),h(v,d,g);var y=\"\";return r.addListener(d,\"mousemove\",function(e){var t=this.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;n+r<(t.width+t.height)/2?(this.style.cursor=\"pointer\",y=\"toggle\"):(y=\"resize\",this.style.cursor=\"nw-resize\")}),r.addListener(d,\"mousedown\",function(e){if(y==\"toggle\"){g.setDisplaySettings();return}u.style.zIndex=1e5;var t=u.getBoundingClientRect(),n=t.width+t.left-e.clientX,i=t.height+t.top-e.clientY;r.capture(d,function(e){u.style.width=e.clientX-t.left+n+\"px\",u.style.height=e.clientY-t.top+i+\"px\",g.resize()},function(){})}),g},t.defaultOptions={mode:\"javascript\",theme:\"textmate\",wrap:\"off\",fontSize:\"12px\",showGutter:\"false\",keybindings:\"ace\",showPrintMargin:\"false\",useSoftTabs:\"true\",showInvisibles:\"false\"}});\n                (function() {\n                    ace.require([\"ace/ext/textarea\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict-old/ext-themelist.js",
    "content": "ace.define(\"ace/ext/themelist\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\"],function(e,t,n){\"use strict\";e(\"ace/lib/fixoldbrowsers\");var r=[[\"Chrome\"],[\"Clouds\"],[\"Crimson Editor\"],[\"Dawn\"],[\"Dreamweaver\"],[\"Eclipse\"],[\"GitHub\"],[\"IPlastic\"],[\"Solarized Light\"],[\"TextMate\"],[\"Tomorrow\"],[\"XCode\"],[\"Kuroir\"],[\"KatzenMilch\"],[\"SQL Server\",\"sqlserver\",\"light\"],[\"Ambiance\",\"ambiance\",\"dark\"],[\"Chaos\",\"chaos\",\"dark\"],[\"Clouds Midnight\",\"clouds_midnight\",\"dark\"],[\"Cobalt\",\"cobalt\",\"dark\"],[\"idle Fingers\",\"idle_fingers\",\"dark\"],[\"krTheme\",\"kr_theme\",\"dark\"],[\"Merbivore\",\"merbivore\",\"dark\"],[\"Merbivore Soft\",\"merbivore_soft\",\"dark\"],[\"Mono Industrial\",\"mono_industrial\",\"dark\"],[\"Monokai\",\"monokai\",\"dark\"],[\"Pastel on dark\",\"pastel_on_dark\",\"dark\"],[\"Solarized Dark\",\"solarized_dark\",\"dark\"],[\"Terminal\",\"terminal\",\"dark\"],[\"Tomorrow Night\",\"tomorrow_night\",\"dark\"],[\"Tomorrow Night Blue\",\"tomorrow_night_blue\",\"dark\"],[\"Tomorrow Night Bright\",\"tomorrow_night_bright\",\"dark\"],[\"Tomorrow Night 80s\",\"tomorrow_night_eighties\",\"dark\"],[\"Twilight\",\"twilight\",\"dark\"],[\"Vibrant Ink\",\"vibrant_ink\",\"dark\"]];t.themesByName={},t.themes=r.map(function(e){var n=e[1]||e[0].replace(/ /g,\"_\").toLowerCase(),r={caption:e[0],theme:\"ace/theme/\"+n,isDark:e[2]==\"dark\",name:n};return t.themesByName[n]=r,r})});\n                (function() {\n                    ace.require([\"ace/ext/themelist\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict-old/ext-whitespace.js",
    "content": "ace.define(\"ace/ext/whitespace\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../lib/lang\");t.$detectIndentation=function(e,t){function c(e){var t=0;for(var r=e;r<n.length;r+=e)t+=n[r]||0;return t}var n=[],r=[],i=0,s=0,o=Math.min(e.length,1e3);for(var u=0;u<o;u++){var a=e[u];if(!/^\\s*[^*+\\-\\s]/.test(a))continue;if(a[0]==\"\t\")i++,s=-Number.MAX_VALUE;else{var f=a.match(/^ */)[0].length;if(f&&a[f]!=\"\t\"){var l=f-s;l>0&&!(s%l)&&!(f%l)&&(r[l]=(r[l]||0)+1),n[f]=(n[f]||0)+1}s=f}while(u<o&&a[a.length-1]==\"\\\\\")a=e[u++]}var h=r.reduce(function(e,t){return e+t},0),p={score:0,length:0},d=0;for(var u=1;u<12;u++){var v=c(u);u==1?(d=v,v=n[1]?.9:.8,n.length||(v=0)):v/=d,r[u]&&(v+=r[u]/h),v>p.score&&(p={score:v,length:u})}if(p.score&&p.score>1.4)var m=p.length;if(i>d+1){if(m==1||d<i/4||p.score<1.8)m=undefined;return{ch:\"\t\",length:m}}if(d>i+1)return{ch:\" \",length:m}},t.detectIndentation=function(e){var n=e.getLines(0,1e3),r=t.$detectIndentation(n)||{};return r.ch&&e.setUseSoftTabs(r.ch==\" \"),r.length&&e.setTabSize(r.length),r},t.trimTrailingSpace=function(e,t){var n=e.getDocument(),r=n.getAllLines(),i=t?-1:0;for(var s=0,o=r.length;s<o;s++){var u=r[s],a=u.search(/\\s+$/);a>i&&n.removeInLine(s,a,u.length)}},t.convertIndentation=function(e,t,n){var i=e.getTabString()[0],s=e.getTabSize();n||(n=s),t||(t=i);var o=t==\"\t\"?t:r.stringRepeat(t,n),u=e.doc,a=u.getAllLines(),f={},l={};for(var c=0,h=a.length;c<h;c++){var p=a[c],d=p.match(/^\\s*/)[0];if(d){var v=e.$getStringScreenWidth(d)[0],m=Math.floor(v/s),g=v%s,y=f[m]||(f[m]=r.stringRepeat(o,m));y+=l[g]||(l[g]=r.stringRepeat(\" \",g)),y!=d&&(u.removeInLine(c,0,d.length),u.insertInLine({row:c,column:0},y))}}e.setTabSize(n),e.setUseSoftTabs(t==\" \")},t.$parseStringArg=function(e){var t={};/t/.test(e)?t.ch=\"\t\":/s/.test(e)&&(t.ch=\" \");var n=e.match(/\\d+/);return n&&(t.length=parseInt(n[0],10)),t},t.$parseArg=function(e){return e?typeof e==\"string\"?t.$parseStringArg(e):typeof e.text==\"string\"?t.$parseStringArg(e.text):e:{}},t.commands=[{name:\"detectIndentation\",exec:function(e){t.detectIndentation(e.session)}},{name:\"trimTrailingSpace\",exec:function(e){t.trimTrailingSpace(e.session)}},{name:\"convertIndentation\",exec:function(e,n){var r=t.$parseArg(n);t.convertIndentation(e.session,r.ch,r.length)}},{name:\"setIndentation\",exec:function(e,n){var r=t.$parseArg(n);r.length&&e.session.setTabSize(r.length),r.ch&&e.session.setUseSoftTabs(r.ch==\" \")}}]});\n                (function() {\n                    ace.require([\"ace/ext/whitespace\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-min-noconflict-old/keybinding-emacs.js",
    "content": "ace.define(\"ace/occur\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/search\",\"ace/edit_session\",\"ace/search_highlight\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";function a(){}var r=e(\"./lib/oop\"),i=e(\"./range\").Range,s=e(\"./search\").Search,o=e(\"./edit_session\").EditSession,u=e(\"./search_highlight\").SearchHighlight;r.inherits(a,s),function(){this.enter=function(e,t){if(!t.needle)return!1;var n=e.getCursorPosition();this.displayOccurContent(e,t);var r=this.originalToOccurPosition(e.session,n);return e.moveCursorToPosition(r),!0},this.exit=function(e,t){var n=t.translatePosition&&e.getCursorPosition(),r=n&&this.occurToOriginalPosition(e.session,n);return this.displayOriginalContent(e),r&&e.moveCursorToPosition(r),!0},this.highlight=function(e,t){var n=e.$occurHighlight=e.$occurHighlight||e.addDynamicMarker(new u(null,\"ace_occur-highlight\",\"text\"));n.setRegexp(t),e._emit(\"changeBackMarker\")},this.displayOccurContent=function(e,t){this.$originalSession=e.session;var n=this.matchingLines(e.session,t),r=n.map(function(e){return e.content}),i=new o(r.join(\"\\n\"));i.$occur=this,i.$occurMatchingLines=n,e.setSession(i),this.$useEmacsStyleLineStart=this.$originalSession.$useEmacsStyleLineStart,i.$useEmacsStyleLineStart=this.$useEmacsStyleLineStart,this.highlight(i,t.re),i._emit(\"changeBackMarker\")},this.displayOriginalContent=function(e){e.setSession(this.$originalSession),this.$originalSession.$useEmacsStyleLineStart=this.$useEmacsStyleLineStart},this.originalToOccurPosition=function(e,t){var n=e.$occurMatchingLines,r={row:0,column:0};if(!n)return r;for(var i=0;i<n.length;i++)if(n[i].row===t.row)return{row:i,column:t.column};return r},this.occurToOriginalPosition=function(e,t){var n=e.$occurMatchingLines;return!n||!n[t.row]?t:{row:n[t.row].row,column:t.column}},this.matchingLines=function(e,t){t=r.mixin({},t);if(!e||!t.needle)return[];var n=new s;return n.set(t),n.findAll(e).reduce(function(t,n){var r=n.start.row,i=t[t.length-1];return i&&i.row===r?t:t.concat({row:r,content:e.getLine(r)})},[])}}.call(a.prototype);var f=e(\"./lib/dom\");f.importCssString(\".ace_occur-highlight {\\n    border-radius: 4px;\\n    background-color: rgba(87, 255, 8, 0.25);\\n    position: absolute;\\n    z-index: 4;\\n    -moz-box-sizing: border-box;\\n    -webkit-box-sizing: border-box;\\n    box-sizing: border-box;\\n    box-shadow: 0 0 4px rgb(91, 255, 50);\\n}\\n.ace_dark .ace_occur-highlight {\\n    background-color: rgb(80, 140, 85);\\n    box-shadow: 0 0 4px rgb(60, 120, 70);\\n}\\n\",\"incremental-occur-highlighting\"),t.Occur=a}),ace.define(\"ace/commands/occur_commands\",[\"require\",\"exports\",\"module\",\"ace/config\",\"ace/occur\",\"ace/keyboard/hash_handler\",\"ace/lib/oop\"],function(e,t,n){function f(){}var r=e(\"../config\"),i=e(\"../occur\").Occur,s={name:\"occur\",exec:function(e,t){var n=!!e.session.$occur,r=(new i).enter(e,t);r&&!n&&f.installIn(e)},readOnly:!0},o=[{name:\"occurexit\",bindKey:\"esc|Ctrl-G\",exec:function(e){var t=e.session.$occur;if(!t)return;t.exit(e,{}),e.session.$occur||f.uninstallFrom(e)},readOnly:!0},{name:\"occuraccept\",bindKey:\"enter\",exec:function(e){var t=e.session.$occur;if(!t)return;t.exit(e,{translatePosition:!0}),e.session.$occur||f.uninstallFrom(e)},readOnly:!0}],u=e(\"../keyboard/hash_handler\").HashHandler,a=e(\"../lib/oop\");a.inherits(f,u),function(){this.isOccurHandler=!0,this.attach=function(e){u.call(this,o,e.commands.platform),this.$editor=e};var e=this.handleKeyboard;this.handleKeyboard=function(t,n,r,i){var s=e.call(this,t,n,r,i);return s&&s.command?s:undefined}}.call(f.prototype),f.installIn=function(e){var t=new this;e.keyBinding.addKeyboardHandler(t),e.commands.addCommands(o)},f.uninstallFrom=function(e){e.commands.removeCommands(o);var t=e.getKeyboardHandler();t.isOccurHandler&&e.keyBinding.removeKeyboardHandler(t)},t.occurStartCommand=s}),ace.define(\"ace/commands/incremental_search_commands\",[\"require\",\"exports\",\"module\",\"ace/config\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/commands/occur_commands\"],function(e,t,n){function u(e){this.$iSearch=e}var r=e(\"../config\"),i=e(\"../lib/oop\"),s=e(\"../keyboard/hash_handler\").HashHandler,o=e(\"./occur_commands\").occurStartCommand;t.iSearchStartCommands=[{name:\"iSearch\",bindKey:{win:\"Ctrl-F\",mac:\"Command-F\"},exec:function(e,t){r.loadModule([\"core\",\"ace/incremental_search\"],function(n){var r=n.iSearch=n.iSearch||new n.IncrementalSearch;r.activate(e,t.backwards),t.jumpToFirstMatch&&r.next(t)})},readOnly:!0},{name:\"iSearchBackwards\",exec:function(e,t){e.execCommand(\"iSearch\",{backwards:!0})},readOnly:!0},{name:\"iSearchAndGo\",bindKey:{win:\"Ctrl-K\",mac:\"Command-G\"},exec:function(e,t){e.execCommand(\"iSearch\",{jumpToFirstMatch:!0,useCurrentOrPrevSearch:!0})},readOnly:!0},{name:\"iSearchBackwardsAndGo\",bindKey:{win:\"Ctrl-Shift-K\",mac:\"Command-Shift-G\"},exec:function(e){e.execCommand(\"iSearch\",{jumpToFirstMatch:!0,backwards:!0,useCurrentOrPrevSearch:!0})},readOnly:!0}],t.iSearchCommands=[{name:\"restartSearch\",bindKey:{win:\"Ctrl-F\",mac:\"Command-F\"},exec:function(e){e.cancelSearch(!0)}},{name:\"searchForward\",bindKey:{win:\"Ctrl-S|Ctrl-K\",mac:\"Ctrl-S|Command-G\"},exec:function(e,t){t.useCurrentOrPrevSearch=!0,e.next(t)}},{name:\"searchBackward\",bindKey:{win:\"Ctrl-R|Ctrl-Shift-K\",mac:\"Ctrl-R|Command-Shift-G\"},exec:function(e,t){t.useCurrentOrPrevSearch=!0,t.backwards=!0,e.next(t)}},{name:\"extendSearchTerm\",exec:function(e,t){e.addString(t)}},{name:\"extendSearchTermSpace\",bindKey:\"space\",exec:function(e){e.addString(\" \")}},{name:\"shrinkSearchTerm\",bindKey:\"backspace\",exec:function(e){e.removeChar()}},{name:\"confirmSearch\",bindKey:\"return\",exec:function(e){e.deactivate()}},{name:\"cancelSearch\",bindKey:\"esc|Ctrl-G\",exec:function(e){e.deactivate(!0)}},{name:\"occurisearch\",bindKey:\"Ctrl-O\",exec:function(e){var t=i.mixin({},e.$options);e.deactivate(),o.exec(e.$editor,t)}},{name:\"yankNextWord\",bindKey:\"Ctrl-w\",exec:function(e){var t=e.$editor,n=t.selection.getRangeOfMovements(function(e){e.moveCursorWordRight()}),r=t.session.getTextRange(n);e.addString(r)}},{name:\"yankNextChar\",bindKey:\"Ctrl-Alt-y\",exec:function(e){var t=e.$editor,n=t.selection.getRangeOfMovements(function(e){e.moveCursorRight()}),r=t.session.getTextRange(n);e.addString(r)}},{name:\"recenterTopBottom\",bindKey:\"Ctrl-l\",exec:function(e){e.$editor.execCommand(\"recenterTopBottom\")}},{name:\"selectAllMatches\",bindKey:\"Ctrl-space\",exec:function(e){var t=e.$editor,n=t.session.$isearchHighlight,r=n&&n.cache?n.cache.reduce(function(e,t){return e.concat(t?t:[])},[]):[];e.deactivate(!1),r.forEach(t.selection.addRange.bind(t.selection))}},{name:\"searchAsRegExp\",bindKey:\"Alt-r\",exec:function(e){e.convertNeedleToRegExp()}}].map(function(e){return e.readOnly=!0,e.isIncrementalSearchCommand=!0,e.scrollIntoView=\"animate-cursor\",e}),i.inherits(u,s),function(){this.attach=function(e){var n=this.$iSearch;s.call(this,t.iSearchCommands,e.commands.platform),this.$commandExecHandler=e.commands.addEventListener(\"exec\",function(t){if(!t.command.isIncrementalSearchCommand)return n.deactivate();t.stopPropagation(),t.preventDefault();var r=e.session.getScrollTop(),i=t.command.exec(n,t.args||{});return e.renderer.scrollCursorIntoView(null,.5),e.renderer.animateScrolling(r),i})},this.detach=function(e){if(!this.$commandExecHandler)return;e.commands.removeEventListener(\"exec\",this.$commandExecHandler),delete this.$commandExecHandler};var e=this.handleKeyboard;this.handleKeyboard=function(t,n,r,i){if((n===1||n===8)&&r===\"v\"||n===1&&r===\"y\")return null;var s=e.call(this,t,n,r,i);if(s.command)return s;if(n==-1){var o=this.commands.extendSearchTerm;if(o)return{command:o,args:r}}return!1}}.call(u.prototype),t.IncrementalSearchKeyboardHandler=u}),ace.define(\"ace/incremental_search\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/search\",\"ace/search_highlight\",\"ace/commands/incremental_search_commands\",\"ace/lib/dom\",\"ace/commands/command_manager\",\"ace/editor\",\"ace/config\"],function(e,t,n){\"use strict\";function f(){this.$options={wrap:!1,skipCurrent:!1},this.$keyboardHandler=new a(this)}function l(e){return e instanceof RegExp}function c(e){var t=String(e),n=t.indexOf(\"/\"),r=t.lastIndexOf(\"/\");return{expression:t.slice(n+1,r),flags:t.slice(r+1)}}function h(e,t){try{return new RegExp(e,t)}catch(n){return e}}function p(e){return h(e.expression,e.flags)}var r=e(\"./lib/oop\"),i=e(\"./range\").Range,s=e(\"./search\").Search,o=e(\"./search_highlight\").SearchHighlight,u=e(\"./commands/incremental_search_commands\"),a=u.IncrementalSearchKeyboardHandler;r.inherits(f,s),function(){this.activate=function(e,t){this.$editor=e,this.$startPos=this.$currentPos=e.getCursorPosition(),this.$options.needle=\"\",this.$options.backwards=t,e.keyBinding.addKeyboardHandler(this.$keyboardHandler),this.$originalEditorOnPaste=e.onPaste,e.onPaste=this.onPaste.bind(this),this.$mousedownHandler=e.addEventListener(\"mousedown\",this.onMouseDown.bind(this)),this.selectionFix(e),this.statusMessage(!0)},this.deactivate=function(e){this.cancelSearch(e);var t=this.$editor;t.keyBinding.removeKeyboardHandler(this.$keyboardHandler),this.$mousedownHandler&&(t.removeEventListener(\"mousedown\",this.$mousedownHandler),delete this.$mousedownHandler),t.onPaste=this.$originalEditorOnPaste,this.message(\"\")},this.selectionFix=function(e){e.selection.isEmpty()&&!e.session.$emacsMark&&e.clearSelection()},this.highlight=function(e){var t=this.$editor.session,n=t.$isearchHighlight=t.$isearchHighlight||t.addDynamicMarker(new o(null,\"ace_isearch-result\",\"text\"));n.setRegexp(e),t._emit(\"changeBackMarker\")},this.cancelSearch=function(e){var t=this.$editor;return this.$prevNeedle=this.$options.needle,this.$options.needle=\"\",e?(t.moveCursorToPosition(this.$startPos),this.$currentPos=this.$startPos):t.pushEmacsMark&&t.pushEmacsMark(this.$startPos,!1),this.highlight(null),i.fromPoints(this.$currentPos,this.$currentPos)},this.highlightAndFindWithNeedle=function(e,t){if(!this.$editor)return null;var n=this.$options;t&&(n.needle=t.call(this,n.needle||\"\")||\"\");if(n.needle.length===0)return this.statusMessage(!0),this.cancelSearch(!0);n.start=this.$currentPos;var r=this.$editor.session,s=this.find(r),o=this.$editor.emacsMark?!!this.$editor.emacsMark():!this.$editor.selection.isEmpty();return s&&(n.backwards&&(s=i.fromPoints(s.end,s.start)),this.$editor.selection.setRange(i.fromPoints(o?this.$startPos:s.end,s.end)),e&&(this.$currentPos=s.end),this.highlight(n.re)),this.statusMessage(s),s},this.addString=function(e){return this.highlightAndFindWithNeedle(!1,function(t){if(!l(t))return t+e;var n=c(t);return n.expression+=e,p(n)})},this.removeChar=function(e){return this.highlightAndFindWithNeedle(!1,function(e){if(!l(e))return e.substring(0,e.length-1);var t=c(e);return t.expression=t.expression.substring(0,t.expression.length-1),p(t)})},this.next=function(e){return e=e||{},this.$options.backwards=!!e.backwards,this.$currentPos=this.$editor.getCursorPosition(),this.highlightAndFindWithNeedle(!0,function(t){return e.useCurrentOrPrevSearch&&t.length===0?this.$prevNeedle||\"\":t})},this.onMouseDown=function(e){return this.deactivate(),!0},this.onPaste=function(e){this.addString(e)},this.convertNeedleToRegExp=function(){return this.highlightAndFindWithNeedle(!1,function(e){return l(e)?e:h(e,\"ig\")})},this.convertNeedleToString=function(){return this.highlightAndFindWithNeedle(!1,function(e){return l(e)?c(e).expression:e})},this.statusMessage=function(e){var t=this.$options,n=\"\";n+=t.backwards?\"reverse-\":\"\",n+=\"isearch: \"+t.needle,n+=e?\"\":\" (not found)\",this.message(n)},this.message=function(e){this.$editor.showCommandLine?(this.$editor.showCommandLine(e),this.$editor.focus()):console.log(e)}}.call(f.prototype),t.IncrementalSearch=f;var d=e(\"./lib/dom\");d.importCssString&&d.importCssString(\".ace_marker-layer .ace_isearch-result {  position: absolute;  z-index: 6;  -moz-box-sizing: border-box;  -webkit-box-sizing: border-box;  box-sizing: border-box;}div.ace_isearch-result {  border-radius: 4px;  background-color: rgba(255, 200, 0, 0.5);  box-shadow: 0 0 4px rgb(255, 200, 0);}.ace_dark div.ace_isearch-result {  background-color: rgb(100, 110, 160);  box-shadow: 0 0 4px rgb(80, 90, 140);}\",\"incremental-search-highlighting\");var v=e(\"./commands/command_manager\");(function(){this.setupIncrementalSearch=function(e,t){if(this.usesIncrementalSearch==t)return;this.usesIncrementalSearch=t;var n=u.iSearchStartCommands,r=t?\"addCommands\":\"removeCommands\";this[r](n)}}).call(v.CommandManager.prototype);var m=e(\"./editor\").Editor;e(\"./config\").defineOptions(m.prototype,\"editor\",{useIncrementalSearch:{set:function(e){this.keyBinding.$handlers.forEach(function(t){t.setupIncrementalSearch&&t.setupIncrementalSearch(this,e)}),this._emit(\"incrementalSearchSettingChanged\",{isEnabled:e})}}})}),ace.define(\"ace/keyboard/emacs\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/incremental_search\",\"ace/commands/incremental_search_commands\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\"],function(e,t,n){\"use strict\";var r=e(\"../lib/dom\");e(\"../incremental_search\");var i=e(\"../commands/incremental_search_commands\"),s=function(e,t){var n=this.scroller.getBoundingClientRect(),r=Math.floor((e+this.scrollLeft-n.left-this.$padding)/this.characterWidth),i=Math.floor((t+this.scrollTop-n.top)/this.lineHeight);return this.session.screenToDocumentPosition(i,r)},o=e(\"./hash_handler\").HashHandler;t.handler=new o,t.handler.isEmacs=!0,t.handler.$id=\"ace/keyboard/emacs\";var u=!1,a,f;t.handler.attach=function(e){u||(u=!0,r.importCssString(\"            .emacs-mode .ace_cursor{                border: 1px rgba(50,250,50,0.8) solid!important;                -moz-box-sizing: border-box!important;                -webkit-box-sizing: border-box!important;                box-sizing: border-box!important;                background-color: rgba(0,250,0,0.9);                opacity: 0.5;            }            .emacs-mode .ace_hidden-cursors .ace_cursor{                opacity: 1;                background-color: transparent;            }            .emacs-mode .ace_overwrite-cursors .ace_cursor {                opacity: 1;                background-color: transparent;                border-width: 0 0 2px 2px !important;            }            .emacs-mode .ace_text-layer {                z-index: 4            }            .emacs-mode .ace_cursor-layer {                z-index: 2            }\",\"emacsMode\")),a=e.session.$selectLongWords,e.session.$selectLongWords=!0,f=e.session.$useEmacsStyleLineStart,e.session.$useEmacsStyleLineStart=!0,e.session.$emacsMark=null,e.session.$emacsMarkRing=e.session.$emacsMarkRing||[],e.emacsMark=function(){return this.session.$emacsMark},e.setEmacsMark=function(e){this.session.$emacsMark=e},e.pushEmacsMark=function(e,t){var n=this.session.$emacsMark;n&&this.session.$emacsMarkRing.push(n),!e||t?this.setEmacsMark(e):this.session.$emacsMarkRing.push(e)},e.popEmacsMark=function(){var e=this.emacsMark();return e?(this.setEmacsMark(null),e):this.session.$emacsMarkRing.pop()},e.getLastEmacsMark=function(e){return this.session.$emacsMark||this.session.$emacsMarkRing.slice(-1)[0]},e.emacsMarkForSelection=function(e){var t=this.selection,n=this.multiSelect?this.multiSelect.getAllRanges().length:1,r=t.index||0,i=this.session.$emacsMarkRing,s=i.length-(n-r),o=i[s]||t.anchor;return e&&i.splice(s,1,\"row\"in e&&\"column\"in e?e:undefined),o},e.on(\"click\",c),e.on(\"changeSession\",l),e.renderer.screenToTextCoordinates=s,e.setStyle(\"emacs-mode\"),e.commands.addCommands(v),t.handler.platform=e.commands.platform,e.$emacsModeHandler=this,e.addEventListener(\"copy\",this.onCopy),e.addEventListener(\"paste\",this.onPaste)},t.handler.detach=function(e){delete e.renderer.screenToTextCoordinates,e.session.$selectLongWords=a,e.session.$useEmacsStyleLineStart=f,e.removeEventListener(\"click\",c),e.removeEventListener(\"changeSession\",l),e.unsetStyle(\"emacs-mode\"),e.commands.removeCommands(v),e.removeEventListener(\"copy\",this.onCopy),e.removeEventListener(\"paste\",this.onPaste),e.$emacsModeHandler=null};var l=function(e){e.oldSession&&(e.oldSession.$selectLongWords=a,e.oldSession.$useEmacsStyleLineStart=f),a=e.session.$selectLongWords,e.session.$selectLongWords=!0,f=e.session.$useEmacsStyleLineStart,e.session.$useEmacsStyleLineStart=!0,e.session.hasOwnProperty(\"$emacsMark\")||(e.session.$emacsMark=null),e.session.hasOwnProperty(\"$emacsMarkRing\")||(e.session.$emacsMarkRing=[])},c=function(e){e.editor.session.$emacsMark=null},h=e(\"../lib/keys\").KEY_MODS,p={C:\"ctrl\",S:\"shift\",M:\"alt\",CMD:\"command\"},d=[\"C-S-M-CMD\",\"S-M-CMD\",\"C-M-CMD\",\"C-S-CMD\",\"C-S-M\",\"M-CMD\",\"S-CMD\",\"S-M\",\"C-CMD\",\"C-M\",\"C-S\",\"CMD\",\"M\",\"S\",\"C\"];d.forEach(function(e){var t=0;e.split(\"-\").forEach(function(e){t|=h[p[e]]}),p[t]=e.toLowerCase()+\"-\"}),t.handler.onCopy=function(e,n){if(n.$handlesEmacsOnCopy)return;n.$handlesEmacsOnCopy=!0,t.handler.commands.killRingSave.exec(n),n.$handlesEmacsOnCopy=!1},t.handler.onPaste=function(e,t){t.pushEmacsMark(t.getCursorPosition())},t.handler.bindKey=function(e,t){typeof e==\"object\"&&(e=e[this.platform]);if(!e)return;var n=this.commandKeyBinding;e.split(\"|\").forEach(function(e){e=e.toLowerCase(),n[e]=t;var r=e.split(\" \").slice(0,-1);r.reduce(function(e,t,n){var r=e[n-1]?e[n-1]+\" \":\"\";return e.concat([r+t])},[]).forEach(function(e){n[e]||(n[e]=\"null\")})},this)},t.handler.getStatusText=function(e,t){var n=\"\";return t.count&&(n+=t.count),t.keyChain&&(n+=\" \"+t.keyChain),n},t.handler.handleKeyboard=function(e,t,n,r){if(r===-1)return undefined;var i=e.editor;i._signal(\"changeStatus\");if(t==-1){i.pushEmacsMark();if(e.count){var s=(new Array(e.count+1)).join(n);return e.count=null,{command:\"insertstring\",args:s}}}var o=p[t];if(o==\"c-\"||e.count){var u=parseInt(n[n.length-1]);if(typeof u==\"number\"&&!isNaN(u))return e.count=Math.max(e.count,0)||0,e.count=10*e.count+u,{command:\"null\"}}o&&(n=o+n),e.keyChain&&(n=e.keyChain+=\" \"+n);var a=this.commandKeyBinding[n];e.keyChain=a==\"null\"?n:\"\";if(!a)return undefined;if(a===\"null\")return{command:\"null\"};if(a===\"universalArgument\")return e.count=-4,{command:\"null\"};var f;typeof a!=\"string\"&&(f=a.args,a.command&&(a=a.command),a===\"goorselect\"&&(a=i.emacsMark()?f[1]:f[0],f=null));if(typeof a==\"string\"){(a===\"insertstring\"||a===\"splitline\"||a===\"togglecomment\")&&i.pushEmacsMark(),a=this.commands[a]||i.commands.commands[a];if(!a)return undefined}!a.readOnly&&!a.isYank&&(e.lastCommand=null),!a.readOnly&&i.emacsMark()&&i.setEmacsMark(null);if(e.count){var u=e.count;e.count=0;if(!a||!a.handlesCount)return{args:f,command:{exec:function(e,t){for(var n=0;n<u;n++)a.exec(e,t)},multiSelectAction:a.multiSelectAction}};f||(f={}),typeof f==\"object\"&&(f.count=u)}return{command:a,args:f}},t.emacsKeys={\"Up|C-p\":{command:\"goorselect\",args:[\"golineup\",\"selectup\"]},\"Down|C-n\":{command:\"goorselect\",args:[\"golinedown\",\"selectdown\"]},\"Left|C-b\":{command:\"goorselect\",args:[\"gotoleft\",\"selectleft\"]},\"Right|C-f\":{command:\"goorselect\",args:[\"gotoright\",\"selectright\"]},\"C-Left|M-b\":{command:\"goorselect\",args:[\"gotowordleft\",\"selectwordleft\"]},\"C-Right|M-f\":{command:\"goorselect\",args:[\"gotowordright\",\"selectwordright\"]},\"Home|C-a\":{command:\"goorselect\",args:[\"gotolinestart\",\"selecttolinestart\"]},\"End|C-e\":{command:\"goorselect\",args:[\"gotolineend\",\"selecttolineend\"]},\"C-Home|S-M-,\":{command:\"goorselect\",args:[\"gotostart\",\"selecttostart\"]},\"C-End|S-M-.\":{command:\"goorselect\",args:[\"gotoend\",\"selecttoend\"]},\"S-Up|S-C-p\":\"selectup\",\"S-Down|S-C-n\":\"selectdown\",\"S-Left|S-C-b\":\"selectleft\",\"S-Right|S-C-f\":\"selectright\",\"S-C-Left|S-M-b\":\"selectwordleft\",\"S-C-Right|S-M-f\":\"selectwordright\",\"S-Home|S-C-a\":\"selecttolinestart\",\"S-End|S-C-e\":\"selecttolineend\",\"S-C-Home\":\"selecttostart\",\"S-C-End\":\"selecttoend\",\"C-l\":\"recenterTopBottom\",\"M-s\":\"centerselection\",\"M-g\":\"gotoline\",\"C-x C-p\":\"selectall\",\"C-Down\":{command:\"goorselect\",args:[\"gotopagedown\",\"selectpagedown\"]},\"C-Up\":{command:\"goorselect\",args:[\"gotopageup\",\"selectpageup\"]},\"PageDown|C-v\":{command:\"goorselect\",args:[\"gotopagedown\",\"selectpagedown\"]},\"PageUp|M-v\":{command:\"goorselect\",args:[\"gotopageup\",\"selectpageup\"]},\"S-C-Down\":\"selectpagedown\",\"S-C-Up\":\"selectpageup\",\"C-s\":\"iSearch\",\"C-r\":\"iSearchBackwards\",\"M-C-s\":\"findnext\",\"M-C-r\":\"findprevious\",\"S-M-5\":\"replace\",Backspace:\"backspace\",\"Delete|C-d\":\"del\",\"Return|C-m\":{command:\"insertstring\",args:\"\\n\"},\"C-o\":\"splitline\",\"M-d|C-Delete\":{command:\"killWord\",args:\"right\"},\"C-Backspace|M-Backspace|M-Delete\":{command:\"killWord\",args:\"left\"},\"C-k\":\"killLine\",\"C-y|S-Delete\":\"yank\",\"M-y\":\"yankRotate\",\"C-g\":\"keyboardQuit\",\"C-w|C-S-W\":\"killRegion\",\"M-w\":\"killRingSave\",\"C-Space\":\"setMark\",\"C-x C-x\":\"exchangePointAndMark\",\"C-t\":\"transposeletters\",\"M-u\":\"touppercase\",\"M-l\":\"tolowercase\",\"M-/\":\"autocomplete\",\"C-u\":\"universalArgument\",\"M-;\":\"togglecomment\",\"C-/|C-x u|S-C--|C-z\":\"undo\",\"S-C-/|S-C-x u|C--|S-C-z\":\"redo\",\"C-x r\":\"selectRectangularRegion\",\"M-x\":{command:\"focusCommandLine\",args:\"M-x \"}},t.handler.bindKeys(t.emacsKeys),t.handler.addCommands({recenterTopBottom:function(e){var t=e.renderer,n=t.$cursorLayer.getPixelPosition(),r=t.$size.scrollerHeight-t.lineHeight,i=t.scrollTop;Math.abs(n.top-i)<2?i=n.top-r:Math.abs(n.top-i-r*.5)<2?i=n.top:i=n.top-r*.5,e.session.setScrollTop(i)},selectRectangularRegion:function(e){e.multiSelect.toggleBlockSelection()},setMark:{exec:function(e,t){function u(){var t=e.popEmacsMark();t&&e.moveCursorToPosition(t)}if(t&&t.count){e.inMultiSelectMode?e.forEachSelection(u):u(),u();return}var n=e.emacsMark(),r=e.selection.getAllRanges(),i=r.map(function(e){return{row:e.start.row,column:e.start.column}}),s=!0,o=r.every(function(e){return e.isEmpty()});if(s&&(n||!o)){e.inMultiSelectMode?e.forEachSelection({exec:e.clearSelection.bind(e)}):e.clearSelection(),n&&e.pushEmacsMark(null);return}if(!n){i.forEach(function(t){e.pushEmacsMark(t)}),e.setEmacsMark(i[i.length-1]);return}},readOnly:!0,handlesCount:!0},exchangePointAndMark:{exec:function(t,n){var r=t.selection;if(!n.count&&!r.isEmpty()){r.setSelectionRange(r.getRange(),!r.isBackwards());return}if(n.count){var i={row:r.lead.row,column:r.lead.column};r.clearSelection(),r.moveCursorToPosition(t.emacsMarkForSelection(i))}else r.selectToPosition(t.emacsMarkForSelection())},readOnly:!0,handlesCount:!0,multiSelectAction:\"forEach\"},killWord:{exec:function(e,n){e.clearSelection(),n==\"left\"?e.selection.selectWordLeft():e.selection.selectWordRight();var r=e.getSelectionRange(),i=e.session.getTextRange(r);t.killRing.add(i),e.session.remove(r),e.clearSelection()},multiSelectAction:\"forEach\"},killLine:function(e){e.pushEmacsMark(null),e.clearSelection();var n=e.getSelectionRange(),r=e.session.getLine(n.start.row);n.end.column=r.length,r=r.substr(n.start.column);var i=e.session.getFoldLine(n.start.row);i&&n.end.row!=i.end.row&&(n.end.row=i.end.row,r=\"x\"),/^\\s*$/.test(r)&&(n.end.row++,r=e.session.getLine(n.end.row),n.end.column=/^\\s*$/.test(r)?r.length:0);var s=e.session.getTextRange(n);e.prevOp.command==this?t.killRing.append(s):t.killRing.add(s),e.session.remove(n),e.clearSelection()},yank:function(e){e.onPaste(t.killRing.get()||\"\"),e.keyBinding.$data.lastCommand=\"yank\"},yankRotate:function(e){if(e.keyBinding.$data.lastCommand!=\"yank\")return;e.undo(),e.session.$emacsMarkRing.pop(),e.onPaste(t.killRing.rotate()),e.keyBinding.$data.lastCommand=\"yank\"},killRegion:{exec:function(e){t.killRing.add(e.getCopyText()),e.commands.byName.cut.exec(e),e.setEmacsMark(null)},readOnly:!0,multiSelectAction:\"forEach\"},killRingSave:{exec:function(e){e.$handlesEmacsOnCopy=!0;var n=e.session.$emacsMarkRing.slice(),r=[];t.killRing.add(e.getCopyText()),setTimeout(function(){function t(){var t=e.selection,n=t.getRange(),i=t.isBackwards()?n.end:n.start;r.push({row:i.row,column:i.column}),t.clearSelection()}e.$handlesEmacsOnCopy=!1,e.inMultiSelectMode?e.forEachSelection({exec:t}):t(),e.session.$emacsMarkRing=n.concat(r.reverse())},0)},readOnly:!0},keyboardQuit:function(e){e.selection.clearSelection(),e.setEmacsMark(null),e.keyBinding.$data.count=null},focusCommandLine:function(e,t){e.showCommandLine&&e.showCommandLine(t)}}),t.handler.addCommands(i.iSearchStartCommands);var v=t.handler.commands;v.yank.isYank=!0,v.yankRotate.isYank=!0,t.killRing={$data:[],add:function(e){e&&this.$data.push(e),this.$data.length>30&&this.$data.shift()},append:function(e){var t=this.$data.length-1,n=this.$data[t]||\"\";e&&(n+=e),n&&(this.$data[t]=n)},get:function(e){return e=e||1,this.$data.slice(this.$data.length-e,this.$data.length).reverse().join(\"\\n\")},pop:function(){return this.$data.length>1&&this.$data.pop(),this.get()},rotate:function(){return this.$data.unshift(this.$data.pop()),this.get()}}})"
  },
  {
    "path": "lib/src-min-noconflict-old/keybinding-vim.js",
    "content": "ace.define(\"ace/keyboard/vim\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/keys\",\"ace/lib/event\",\"ace/search\",\"ace/lib/useragent\",\"ace/search_highlight\",\"ace/commands/multi_select_commands\",\"ace/mode/text\",\"ace/multi_select\"],function(e,t,n){\"use strict\";function r(){function t(e){return typeof e!=\"object\"?e+\"\":\"line\"in e?e.line+\":\"+e.ch:\"anchor\"in e?t(e.anchor)+\"->\"+t(e.head):Array.isArray(e)?\"[\"+e.map(function(e){return t(e)})+\"]\":JSON.stringify(e)}var e=\"\";for(var n=0;n<arguments.length;n++){var r=arguments[n],i=t(r);e+=i+\"  \"}console.log(e)}function m(e){return{row:e.line,column:e.ch}}function g(e){return new E(e.row,e.column)}function x(e){e.setOption(\"disableInput\",!0),e.setOption(\"showCursorWhenSelecting\",!1),v.signal(e,\"vim-mode-change\",{mode:\"normal\"}),e.on(\"cursorActivity\",Jn),tt(e),v.on(e.getInputField(),\"paste\",M(e))}function T(e){e.setOption(\"disableInput\",!1),e.off(\"cursorActivity\",Jn),v.off(e.getInputField(),\"paste\",M(e)),e.state.vim=null}function N(e,t){this==v.keyMap.vim&&v.rmClass(e.getWrapperElement(),\"cm-fat-cursor\"),(!t||t.attach!=C)&&T(e,!1)}function C(e,t){this==v.keyMap.vim&&v.addClass(e.getWrapperElement(),\"cm-fat-cursor\"),(!t||t.attach!=C)&&x(e)}function k(e,t){if(!t)return undefined;var n=O(e);if(!n)return!1;var r=v.Vim.findKey(t,n);return typeof r==\"function\"&&v.signal(t,\"vim-keypress\",n),r}function O(e){if(e.charAt(0)==\"'\")return e.charAt(1);var t=e.split(/-(?!$)/),n=t[t.length-1];if(t.length==1&&t[0].length==1)return!1;if(t.length==2&&t[0]==\"Shift\"&&n.length==1)return!1;var r=!1;for(var i=0;i<t.length;i++){var s=t[i];s in L?t[i]=L[s]:r=!0,s in A&&(t[i]=A[s])}return r?(X(n)&&(t[t.length-1]=n.toLowerCase()),\"<\"+t.join(\"-\")+\">\"):!1}function M(e){var t=e.state.vim;return t.onPasteFn||(t.onPasteFn=function(){t.insertMode||(e.setCursor(St(e.getCursor(),0,1)),yt.enterInsertMode(e,{},t))}),t.onPasteFn}function H(e,t){var n=[];for(var r=e;r<e+t;r++)n.push(String.fromCharCode(r));return n}function R(e,t){return t>=e.firstLine()&&t<=e.lastLine()}function U(e){return/^[a-z]$/.test(e)}function z(e){return\"()[]{}\".indexOf(e)!=-1}function W(e){return _.test(e)}function X(e){return/^[A-Z]$/.test(e)}function V(e){return/^\\s*$/.test(e)}function $(e,t){for(var n=0;n<t.length;n++)if(t[n]==e)return!0;return!1}function K(e,t,n,r,i){if(t===undefined&&!i)throw Error(\"defaultValue is required unless callback is provided\");n||(n=\"string\"),J[e]={type:n,defaultValue:t,callback:i};if(r)for(var s=0;s<r.length;s++)J[r[s]]=J[e];t&&Q(e,t)}function Q(e,t,n,r){var i=J[e];r=r||{};var s=r.scope;if(!i)throw Error(\"Unknown option: \"+e);if(i.type==\"boolean\"){if(t&&t!==!0)throw Error(\"Invalid argument: \"+e+\"=\"+t);t!==!1&&(t=!0)}i.callback?(s!==\"local\"&&i.callback(t,undefined),s!==\"global\"&&n&&i.callback(t,n)):(s!==\"local\"&&(i.value=i.type==\"boolean\"?!!t:t),s!==\"global\"&&n&&(n.state.vim.options[e]={value:t}))}function G(e,t,n){var r=J[e];n=n||{};var i=n.scope;if(!r)throw Error(\"Unknown option: \"+e);if(r.callback){var s=t&&r.callback(undefined,t);if(i!==\"global\"&&s!==undefined)return s;if(i!==\"local\")return r.callback();return}var s=i!==\"global\"&&t&&t.state.vim.options[e];return(s||i!==\"local\"&&r||{}).value}function et(){this.latestRegister=undefined,this.isPlaying=!1,this.isRecording=!1,this.replaySearchQueries=[],this.onRecordingDone=undefined,this.lastInsertModeChanges=Z()}function tt(e){return e.state.vim||(e.state.vim={inputState:new ot,lastEditInputState:undefined,lastEditActionCommand:undefined,lastHPos:-1,lastHSPos:-1,lastMotion:null,marks:{},fakeCursor:null,insertMode:!1,insertModeRepeat:undefined,visualMode:!1,visualLine:!1,visualBlock:!1,lastSelection:null,lastPastedText:null,sel:{},options:{}}),e.state.vim}function rt(){nt={searchQuery:null,searchIsReversed:!1,lastSubstituteReplacePart:undefined,jumpList:Y(),macroModeState:new et,lastChararacterSearch:{increment:0,forward:!0,selectedCharacter:\"\"},registerController:new lt({}),searchHistoryController:new ct({}),exCommandHistoryController:new ct({})};for(var e in J){var t=J[e];t.value=t.defaultValue}}function ot(){this.prefixRepeat=[],this.motionRepeat=[],this.operator=null,this.operatorArgs=null,this.motion=null,this.motionArgs=null,this.keyBuffer=[],this.registerName=null}function ut(e,t){e.state.vim.inputState=new ot,v.signal(e,\"vim-command-done\",t)}function at(e,t,n){this.clear(),this.keyBuffer=[e||\"\"],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!!t,this.blockwise=!!n}function ft(e,t){var n=nt.registerController.registers[e];if(!e||e.length!=1)throw Error(\"Register name must be 1 character\");n[e]=t,q.push(e)}function lt(e){this.registers=e,this.unnamedRegister=e['\"']=new at,e[\".\"]=new at,e[\":\"]=new at,e[\"/\"]=new at}function ct(){this.historyBuffer=[],this.iterator,this.initialPrefix=null}function dt(e,t){pt[e]=t}function vt(e,t){var n=[];for(var r=0;r<t;r++)n.push(e);return n}function gt(e,t){mt[e]=t}function bt(e,t){yt[e]=t}function wt(e,t,n){var r=Math.min(Math.max(e.firstLine(),t.line),e.lastLine()),i=Pt(e,r)-1;i=n?i+1:i;var s=Math.min(Math.max(0,t.ch),i);return E(r,s)}function Et(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function St(e,t,n){return typeof t==\"object\"&&(n=t.ch,t=t.line),E(e.line+t,e.ch+n)}function xt(e,t){return{line:t.line-e.line,ch:t.line-e.line}}function Tt(e,t,n,r){var i,s=[],o=[];for(var u=0;u<t.length;u++){var a=t[u];if(n==\"insert\"&&a.context!=\"insert\"||a.context&&a.context!=n||r.operator&&a.type==\"action\"||!(i=Nt(e,a.keys)))continue;i==\"partial\"&&s.push(a),i==\"full\"&&o.push(a)}return{partial:s.length&&s,full:o.length&&o}}function Nt(e,t){if(t.slice(-11)==\"<character>\"){var n=t.length-11,r=e.slice(0,n),i=t.slice(0,n);return r==i&&e.length>n?\"full\":i.indexOf(r)==0?\"partial\":!1}return e==t?\"full\":t.indexOf(e)==0?\"partial\":!1}function Ct(e){var t=/^.*(<[\\w\\-]+>)$/.exec(e),n=t?t[1]:e.slice(-1);if(n.length>1)switch(n){case\"<CR>\":n=\"\\n\";break;case\"<Space>\":n=\" \";break;default:}return n}function kt(e,t,n){return function(){for(var r=0;r<n;r++)t(e)}}function Lt(e){return E(e.line,e.ch)}function At(e,t){return e.ch==t.ch&&e.line==t.line}function Ot(e,t){return e.line<t.line?!0:e.line==t.line&&e.ch<t.ch?!0:!1}function Mt(e,t){return arguments.length>2&&(t=Mt.apply(undefined,Array.prototype.slice.call(arguments,1))),Ot(e,t)?e:t}function _t(e,t){return arguments.length>2&&(t=_t.apply(undefined,Array.prototype.slice.call(arguments,1))),Ot(e,t)?t:e}function Dt(e,t,n){var r=Ot(e,t),i=Ot(t,n);return r&&i}function Pt(e,t){return e.getLine(t).length}function Ht(e){return e.trim?e.trim():e.replace(/^\\s+|\\s+$/g,\"\")}function Bt(e){return e.replace(/([.?*+$\\[\\]\\/\\\\(){}|\\-])/g,\"\\\\$1\")}function jt(e,t,n){var r=Pt(e,t),i=(new Array(n-r+1)).join(\" \");e.setCursor(E(t,r)),e.replaceRange(i,e.getCursor())}function Ft(e,t){var n=[],r=e.listSelections(),i=Lt(e.clipPos(t)),s=!At(t,i),o=e.getCursor(\"head\"),u=qt(r,o),a=At(r[u].head,r[u].anchor),f=r.length-1,l=f-u>u?f:0,c=r[l].anchor,h=Math.min(c.line,i.line),p=Math.max(c.line,i.line),d=c.ch,v=i.ch,m=r[l].head.ch-d,g=v-d;m>0&&g<=0?(d++,s||v--):m<0&&g>=0?(d--,a||v++):m<0&&g==-1&&(d--,v++);for(var y=h;y<=p;y++){var b={anchor:new E(y,d),head:new E(y,v)};n.push(b)}return u=i.line==p?n.length-1:0,e.setSelections(n),t.ch=v,c.ch=d,c}function It(e,t,n){var r=[];for(var i=0;i<n;i++){var s=St(t,i,0);r.push({anchor:s,head:s})}e.setSelections(r,0)}function qt(e,t,n){for(var r=0;r<e.length;r++){var i=n!=\"head\"&&At(e[r].anchor,t),s=n!=\"anchor\"&&At(e[r].head,t);if(i||s)return r}return-1}function Rt(e,t){var n=t.lastSelection,r=function(){var t=e.listSelections(),n=t[0],r=t[t.length-1],i=Ot(n.anchor,n.head)?n.anchor:n.head,s=Ot(r.anchor,r.head)?r.head:r.anchor;return[i,s]},i=function(){var t=e.getCursor(),r=e.getCursor(),i=n.visualBlock;if(i){var s=i.width,o=i.height;r=E(t.line+o,t.ch+s);var u=[];for(var a=t.line;a<r.line;a++){var f=E(a,t.ch),l=E(a,r.ch),c={anchor:f,head:l};u.push(c)}e.setSelections(u)}else{var h=n.anchorMark.find(),p=n.headMark.find(),d=p.line-h.line,v=p.ch-h.ch;r={line:r.line+d,ch:d?r.ch:v+r.ch},n.visualLine&&(t=E(t.line,0),r=E(r.line,Pt(e,r.line))),e.setSelection(t,r)}return[t,r]};return t.visualMode?r():i()}function Ut(e,t){var n=t.sel.anchor,r=t.sel.head;t.lastPastedText&&(r=e.posFromIndex(e.indexFromPos(n)+t.lastPastedText.length),t.lastPastedText=null),t.lastSelection={anchorMark:e.setBookmark(n),headMark:e.setBookmark(r),anchor:Lt(n),head:Lt(r),visualMode:t.visualMode,visualLine:t.visualLine,visualBlock:t.visualBlock}}function zt(e,t,n){var r=e.state.vim.sel,i=r.head,s=r.anchor,o;return Ot(n,t)&&(o=n,n=t,t=o),Ot(i,s)?(i=Mt(t,i),s=_t(s,n)):(s=Mt(t,s),i=_t(i,n),i=St(i,0,-1),i.ch==-1&&i.line!=e.firstLine()&&(i=E(i.line-1,Pt(e,i.line-1)))),[s,i]}function Wt(e,t,n){var r=e.state.vim;t=t||r.sel;var n=n||r.visualLine?\"line\":r.visualBlock?\"block\":\"char\",i=Xt(e,t,n);e.setSelections(i.ranges,i.primary),Kn(e)}function Xt(e,t,n,r){var i=Lt(t.head),s=Lt(t.anchor);if(n==\"char\"){var o=!r&&!Ot(t.head,t.anchor)?1:0,u=Ot(t.head,t.anchor)?1:0;return i=St(t.head,0,o),s=St(t.anchor,0,u),{ranges:[{anchor:s,head:i}],primary:0}}if(n==\"line\"){if(!Ot(t.head,t.anchor)){s.ch=0;var a=e.lastLine();i.line>a&&(i.line=a),i.ch=Pt(e,i.line)}else i.ch=0,s.ch=Pt(e,s.line);return{ranges:[{anchor:s,head:i}],primary:0}}if(n==\"block\"){var f=Math.min(s.line,i.line),l=Math.min(s.ch,i.ch),c=Math.max(s.line,i.line),h=Math.max(s.ch,i.ch)+1,p=c-f+1,d=i.line==f?0:p-1,v=[];for(var m=0;m<p;m++)v.push({anchor:E(f+m,l),head:E(f+m,h)});return{ranges:v,primary:d}}}function Vt(e){var t=e.getCursor(\"head\");return e.getSelection().length==1&&(t=Mt(t,e.getCursor(\"anchor\"))),t}function $t(e,t){var n=e.state.vim;t!==!1&&e.setCursor(wt(e,n.sel.head)),Ut(e,n),n.visualMode=!1,n.visualLine=!1,n.visualBlock=!1,v.signal(e,\"vim-mode-change\",{mode:\"normal\"}),n.fakeCursor&&n.fakeCursor.clear()}function Jt(e,t,n){var r=e.getRange(t,n);if(/\\n\\s*$/.test(r)){var i=r.split(\"\\n\");i.pop();var s;for(var s=i.pop();i.length>0&&s&&V(s);s=i.pop())n.line--,n.ch=0;s?(n.line--,n.ch=Pt(e,n.line)):n.ch=0}}function Kt(e,t,n){t.ch=0,n.ch=0,n.line++}function Qt(e){if(!e)return 0;var t=e.search(/\\S/);return t==-1?e.length:t}function Gt(e,t,n,r,i){var s=Vt(e),o=e.getLine(s.line),u=s.ch,a=i?D[0]:P[0];while(!a(o.charAt(u))){u++;if(u>=o.length)return null}r?a=P[0]:(a=D[0],a(o.charAt(u))||(a=D[1]));var f=u,l=u;while(a(o.charAt(f))&&f<o.length)f++;while(a(o.charAt(l))&&l>=0)l--;l++;if(t){var c=f;while(/\\s/.test(o.charAt(f))&&f<o.length)f++;if(c==f){var h=l;while(/\\s/.test(o.charAt(l-1))&&l>0)l--;l||(l=h)}}return{start:E(s.line,l),end:E(s.line,f)}}function Yt(e,t,n){At(t,n)||nt.jumpList.add(e,t,n)}function Zt(e,t){nt.lastChararacterSearch.increment=e,nt.lastChararacterSearch.forward=t.forward,nt.lastChararacterSearch.selectedCharacter=t.selectedCharacter}function nn(e,t,n,r){var i=Lt(e.getCursor()),s=n?1:-1,o=n?e.lineCount():-1,u=i.ch,a=i.line,f=e.getLine(a),l={lineText:f,nextCh:f.charAt(u),lastCh:null,index:u,symb:r,reverseSymb:(n?{\")\":\"(\",\"}\":\"{\"}:{\"(\":\")\",\"{\":\"}\"})[r],forward:n,depth:0,curMoveThrough:!1},c=en[r];if(!c)return i;var h=tn[c].init,p=tn[c].isComplete;h&&h(l);while(a!==o&&t){l.index+=s,l.nextCh=l.lineText.charAt(l.index);if(!l.nextCh){a+=s,l.lineText=e.getLine(a)||\"\";if(s>0)l.index=0;else{var d=l.lineText.length;l.index=d>0?d-1:0}l.nextCh=l.lineText.charAt(l.index)}p(l)&&(i.line=a,i.ch=l.index,t--)}return l.nextCh||l.curMoveThrough?E(a,l.index):i}function rn(e,t,n,r,i){var s=t.line,o=t.ch,u=e.getLine(s),a=n?1:-1,f=r?P:D;if(i&&u==\"\"){s+=a,u=e.getLine(s);if(!R(e,s))return null;o=n?0:u.length}for(;;){if(i&&u==\"\")return{from:0,to:0,line:s};var l=a>0?u.length:-1,c=l,h=l;while(o!=l){var p=!1;for(var d=0;d<f.length&&!p;++d)if(f[d](u.charAt(o))){c=o;while(o!=l&&f[d](u.charAt(o)))o+=a;h=o,p=c!=h;if(c==t.ch&&s==t.line&&h==c+a)continue;return{from:Math.min(c,h+1),to:Math.max(c,h),line:s}}p||(o+=a)}s+=a;if(!R(e,s))return null;u=e.getLine(s),o=a>0?0:u.length}throw new Error(\"The impossible happened.\")}function sn(e,t,n,r,i,s){var o=Lt(t),u=[];(r&&!i||!r&&i)&&n++;var a=!r||!i;for(var f=0;f<n;f++){var l=rn(e,t,r,s,a);if(!l){var c=Pt(e,e.lastLine());u.push(r?{line:e.lastLine(),from:c,to:c}:{line:0,from:0,to:0});break}u.push(l),t=E(l.line,r?l.to-1:l.from)}var h=u.length!=n,p=u[0],d=u.pop();return r&&!i?(!h&&(p.from!=o.ch||p.line!=o.line)&&(d=u.pop()),E(d.line,d.from)):r&&i?E(d.line,d.to-1):!r&&i?(!h&&(p.to!=o.ch||p.line!=o.line)&&(d=u.pop()),E(d.line,d.to)):E(d.line,d.from)}function on(e,t,n,r){var i=e.getCursor(),s=i.ch,o;for(var u=0;u<t;u++){var a=e.getLine(i.line);o=fn(s,a,r,n,!0);if(o==-1)return null;s=o}return E(e.getCursor().line,o)}function un(e,t){var n=e.getCursor().line;return wt(e,E(n,t-1))}function an(e,t,n,r){if(!$(n,I))return;t.marks[n]&&t.marks[n].clear(),t.marks[n]=e.setBookmark(r)}function fn(e,t,n,r,i){var s;return r?(s=t.indexOf(n,e+1),s!=-1&&!i&&(s-=1)):(s=t.lastIndexOf(n,e-1),s!=-1&&!i&&(s+=1)),s}function ln(e,t,n,r,i){function c(t){return!/\\S/.test(e.getLine(t))}function h(e,t,n){return n?c(e)!=c(e+t):!c(e)&&c(e+t)}function p(t){r=r>0?1:-1;var n=e.ace.session.getFoldLine(t);n&&t+r>n.start.row&&t+r<n.end.row&&(r=(r>0?n.end.row:n.start.row)-t)}var s=t.line,o=e.firstLine(),u=e.lastLine(),a,f,l=s;if(r){while(o<=l&&l<=u&&n>0)p(l),h(l,r)&&n--,l+=r;return new E(l,0)}var d=e.state.vim;if(d.visualLine&&h(s,1,!0)){var v=d.sel.anchor;h(v.line,-1,!0)&&(!i||v.line!=s)&&(s+=1)}var m=c(s);for(l=s;l<=u&&n;l++)h(l,1,!0)&&(!i||c(l)!=m)&&n--;f=new E(l,0),l>u&&!m?m=!0:i=!1;for(l=s;l>o;l--)if(!i||c(l)==m||l==s)if(h(l,-1,!0))break;return a=new E(l,0),{start:a,end:f}}function cn(e,t,n,r){var i=t,s,o,u={\"(\":/[()]/,\")\":/[()]/,\"[\":/[[\\]]/,\"]\":/[[\\]]/,\"{\":/[{}]/,\"}\":/[{}]/}[n],a={\"(\":\"(\",\")\":\"(\",\"[\":\"[\",\"]\":\"[\",\"{\":\"{\",\"}\":\"{\"}[n],f=e.getLine(i.line).charAt(i.ch),l=f===a?1:0;s=e.scanForBracket(E(i.line,i.ch+l),-1,null,{bracketRegex:u}),o=e.scanForBracket(E(i.line,i.ch+l),1,null,{bracketRegex:u});if(!s||!o)return{start:i,end:i};s=s.pos,o=o.pos;if(s.line==o.line&&s.ch>o.ch||s.line>o.line){var c=s;s=o,o=c}return r?o.ch+=1:s.ch+=1,{start:s,end:o}}function hn(e,t,n,r){var i=Lt(t),s=e.getLine(i.line),o=s.split(\"\"),u,a,f,l,c=o.indexOf(n);i.ch<c?i.ch=c:c<i.ch&&o[i.ch]==n&&(a=i.ch,--i.ch);if(o[i.ch]==n&&!a)u=i.ch+1;else for(f=i.ch;f>-1&&!u;f--)o[f]==n&&(u=f+1);if(u&&!a)for(f=u,l=o.length;f<l&&!a;f++)o[f]==n&&(a=f);return!u||!a?{start:i,end:i}:(r&&(--u,++a),{start:E(i.line,u),end:E(i.line,a)})}function pn(){}function dn(e){var t=e.state.vim;return t.searchState_||(t.searchState_=new pn)}function vn(e,t,n,r,i){e.openDialog?e.openDialog(t,r,{bottom:!0,value:i.value,onKeyDown:i.onKeyDown,onKeyUp:i.onKeyUp,selectValueOnOpen:!1}):r(prompt(n,\"\"))}function mn(e){var t=gn(e)||[];if(!t.length)return[];var n=[];if(t[0]!==0)return;for(var r=0;r<t.length;r++)typeof t[r]==\"number\"&&n.push(e.substring(t[r]+1,t[r+1]));return n}function gn(e){var t=!1,n=[];for(var r=0;r<e.length;r++){var i=e.charAt(r);!t&&i==\"/\"&&n.push(r),t=!t&&i==\"\\\\\"}return n}function yn(e){var t=\"|(){\",n=\"}\",r=!1,i=[];for(var s=-1;s<e.length;s++){var o=e.charAt(s)||\"\",u=e.charAt(s+1)||\"\",a=u&&t.indexOf(u)!=-1;r?((o!==\"\\\\\"||!a)&&i.push(o),r=!1):o===\"\\\\\"?(r=!0,u&&n.indexOf(u)!=-1&&(a=!0),(!a||u===\"\\\\\")&&i.push(o)):(i.push(o),a&&u!==\"\\\\\"&&i.push(\"\\\\\"))}return i.join(\"\")}function wn(e){var t=!1,n=[];for(var r=-1;r<e.length;r++){var i=e.charAt(r)||\"\",s=e.charAt(r+1)||\"\";bn[i+s]?(n.push(bn[i+s]),r++):t?(n.push(i),t=!1):i===\"\\\\\"?(t=!0,W(s)||s===\"$\"?n.push(\"$\"):s!==\"/\"&&s!==\"\\\\\"&&n.push(\"\\\\\")):(i===\"$\"&&n.push(\"$\"),n.push(i),s===\"/\"&&n.push(\"\\\\\"))}return n.join(\"\")}function Sn(e){var t=new v.StringStream(e),n=[];while(!t.eol()){while(t.peek()&&t.peek()!=\"\\\\\")n.push(t.next());var r=!1;for(var i in En)if(t.match(i,!0)){r=!0,n.push(En[i]);break}r||n.push(t.next())}return n.join(\"\")}function xn(e,t,n){var r=nt.registerController.getRegister(\"/\");r.setText(e);if(e instanceof RegExp)return e;var i=gn(e),s,o;if(!i.length)s=e;else{s=e.substring(0,i[0]);var u=e.substring(i[0]);o=u.indexOf(\"i\")!=-1}if(!s)return null;G(\"pcre\")||(s=yn(s)),n&&(t=/^[^A-Z]*$/.test(s));var a=new RegExp(s,t||o?\"i\":undefined);return a}function Tn(e,t){e.openNotification?e.openNotification('<span style=\"color: red\">'+t+\"</span>\",{bottom:!0,duration:5e3}):alert(t)}function Nn(e,t){var n=\"\";return e&&(n+='<span style=\"font-family: monospace\">'+e+\"</span>\"),n+='<input type=\"text\"/> <span style=\"color: #888\">',t&&(n+='<span style=\"color: #888\">',n+=t,n+=\"</span>\"),n}function kn(e,t){var n=(t.prefix||\"\")+\" \"+(t.desc||\"\"),r=Nn(t.prefix,t.desc);vn(e,r,n,t.onClose,t)}function Ln(e,t){if(e instanceof RegExp&&t instanceof RegExp){var n=[\"global\",\"multiline\",\"ignoreCase\",\"source\"];for(var r=0;r<n.length;r++){var i=n[r];if(e[i]!==t[i])return!1}return!0}return!1}function An(e,t,n,r){if(!t)return;var i=dn(e),s=xn(t,!!n,!!r);if(!s)return;return Mn(e,s),Ln(s,i.getQuery())?s:(i.setQuery(s),s)}function On(e){if(e.source.charAt(0)==\"^\")var t=!0;return{token:function(n){if(t&&!n.sol()){n.skipToEnd();return}var r=n.match(e,!1);if(r){if(r[0].length==0)return n.next(),\"searching\";if(!n.sol()){n.backUp(1);if(!e.exec(n.next()+r[0]))return n.next(),null}return n.match(e),\"searching\"}while(!n.eol()){n.next();if(n.match(e,!1))break}},query:e}}function Mn(e,t){var n=dn(e),r=n.getOverlay();if(!r||t!=r.query)r&&e.removeOverlay(r),r=On(t),e.addOverlay(r),e.showMatchesOnScrollbar&&(n.getScrollbarAnnotate()&&n.getScrollbarAnnotate().clear(),n.setScrollbarAnnotate(e.showMatchesOnScrollbar(t))),n.setOverlay(r)}function _n(e,t,n,r){return r===undefined&&(r=1),e.operation(function(){var i=e.getCursor(),s=e.getSearchCursor(n,i);for(var o=0;o<r;o++){var u=s.find(t);o==0&&u&&At(s.from(),i)&&(u=s.find(t));if(!u){s=e.getSearchCursor(n,t?E(e.lastLine()):E(e.firstLine(),0));if(!s.find(t))return}}return s.from()})}function Dn(e){var t=dn(e);e.removeOverlay(dn(e).getOverlay()),t.setOverlay(null),t.getScrollbarAnnotate()&&(t.getScrollbarAnnotate().clear(),t.setScrollbarAnnotate(null))}function Pn(e,t,n){return typeof e!=\"number\"&&(e=e.line),t instanceof Array?$(e,t):n?e>=t&&e<=n:e==t}function Hn(e){var t=e.ace.renderer;return{top:t.getFirstFullyVisibleRow(),bottom:t.getLastFullyVisibleRow()}}function In(e,t,n,r,i,s,o,u,a){function c(){e.operation(function(){while(!f)h(),p();d()})}function h(){var t=e.getRange(s.from(),s.to()),n=t.replace(o,u);s.replace(n)}function p(){while(s.findNext()&&Pn(s.from(),r,i)){if(!n&&l&&s.from().line==l.line)continue;e.scrollIntoView(s.from(),30),e.setSelection(s.from(),s.to()),l=s.from(),f=!1;return}f=!0}function d(t){t&&t(),e.focus();if(l){e.setCursor(l);var n=e.state.vim;n.exMode=!1,n.lastHPos=n.lastHSPos=l.ch}a&&a()}function m(t,n,r){v.e_stop(t);var i=v.keyName(t);switch(i){case\"Y\":h(),p();break;case\"N\":p();break;case\"A\":var s=a;a=undefined,e.operation(c),a=s;break;case\"L\":h();case\"Q\":case\"Esc\":case\"Ctrl-C\":case\"Ctrl-[\":d(r)}return f&&d(r),!0}e.state.vim.exMode=!0;var f=!1,l=s.from();p();if(f){Tn(e,\"No matches for \"+o.source);return}if(!t){c(),a&&a();return}kn(e,{prefix:\"replace with <strong>\"+u+\"</strong> (y/n/a/q/l)\",onKeyDown:m})}function qn(e){var t=e.state.vim,n=nt.macroModeState,r=nt.registerController.getRegister(\".\"),i=n.isPlaying,s=n.lastInsertModeChanges,o=[];if(!i){var u=s.inVisualBlock?t.lastSelection.visualBlock.height:1,a=s.changes,o=[],f=0;while(f<a.length)o.push(a[f]),a[f]instanceof Gn?f++:f+=u;s.changes=o,e.off(\"change\",$n),v.off(e.getInputField(),\"keydown\",Yn)}!i&&t.insertModeRepeat>1&&(Zn(e,t,t.insertModeRepeat-1,!0),t.lastEditInputState.repeatOverride=t.insertModeRepeat),delete t.insertModeRepeat,t.insertMode=!1,e.setCursor(e.getCursor().line,e.getCursor().ch-1),e.setOption(\"keyMap\",\"vim\"),e.setOption(\"disableInput\",!0),e.toggleOverwrite(!1),r.setText(s.changes.join(\"\")),v.signal(e,\"vim-mode-change\",{mode:\"normal\"}),n.isRecording&&Xn(n)}function Rn(e){b.unshift(e)}function Un(e,t,n,r,i){var s={keys:e,type:t};s[t]=n,s[t+\"Args\"]=r;for(var o in i)s[o]=i[o];Rn(s)}function zn(e,t,n,r){var i=nt.registerController.getRegister(r);if(r==\":\"){i.keyBuffer[0]&&Fn.processCommand(e,i.keyBuffer[0]),n.isPlaying=!1;return}var s=i.keyBuffer,o=0;n.isPlaying=!0,n.replaySearchQueries=i.searchQueries.slice(0);for(var u=0;u<s.length;u++){var a=s[u],f,l;while(a){f=/<\\w+-.+?>|<\\w+>|./.exec(a),l=f[0],a=a.substring(f.index+l.length),v.Vim.handleKey(e,l,\"macro\");if(t.insertMode){var c=i.insertModeChanges[o++].changes;nt.macroModeState.lastInsertModeChanges.changes=c,er(e,c,1),qn(e)}}}n.isPlaying=!1}function Wn(e,t){if(e.isPlaying)return;var n=e.latestRegister,r=nt.registerController.getRegister(n);r&&r.pushText(t)}function Xn(e){if(e.isPlaying)return;var t=e.latestRegister,n=nt.registerController.getRegister(t);n&&n.pushInsertModeChanges&&n.pushInsertModeChanges(e.lastInsertModeChanges)}function Vn(e,t){if(e.isPlaying)return;var n=e.latestRegister,r=nt.registerController.getRegister(n);r&&r.pushSearchQuery&&r.pushSearchQuery(t)}function $n(e,t){var n=nt.macroModeState,r=n.lastInsertModeChanges;if(!n.isPlaying)while(t){r.expectCursorActivityForChange=!0;if(t.origin==\"+input\"||t.origin==\"paste\"||t.origin===undefined){var i=t.text.join(\"\\n\");r.changes.push(i)}t=t.next}}function Jn(e){var t=e.state.vim;if(t.insertMode){var n=nt.macroModeState;if(n.isPlaying)return;var r=n.lastInsertModeChanges;r.expectCursorActivityForChange?r.expectCursorActivityForChange=!1:r.changes=[]}else e.curOp.isVimOp||Qn(e,t);t.visualMode&&Kn(e)}function Kn(e){var t=e.state.vim,n=wt(e,Lt(t.sel.head)),r=St(n,0,1);t.fakeCursor&&t.fakeCursor.clear(),t.fakeCursor=e.markText(n,r,{className:\"cm-animate-fat-cursor\"})}function Qn(e,t){var n=e.getCursor(\"anchor\"),r=e.getCursor(\"head\");t.visualMode&&!e.somethingSelected()?$t(e,!1):!t.visualMode&&!t.insertMode&&e.somethingSelected()&&(t.visualMode=!0,t.visualLine=!1,v.signal(e,\"vim-mode-change\",{mode:\"visual\"}));if(t.visualMode){var i=Ot(r,n)?0:-1,s=Ot(r,n)?-1:0;r=St(r,0,i),n=St(n,0,s),t.sel={anchor:n,head:r},an(e,t,\"<\",Mt(r,n)),an(e,t,\">\",_t(r,n))}else t.insertMode||(t.lastHPos=e.getCursor().ch)}function Gn(e){this.keyName=e}function Yn(e){function i(){return n.changes.push(new Gn(r)),!0}var t=nt.macroModeState,n=t.lastInsertModeChanges,r=v.keyName(e);if(!r)return;(r.indexOf(\"Delete\")!=-1||r.indexOf(\"Backspace\")!=-1)&&v.lookupKey(r,\"vim-insert\",i)}function Zn(e,t,n,r){function u(){s?ht.processAction(e,t,t.lastEditActionCommand):ht.evalInput(e,t)}function a(n){if(i.lastInsertModeChanges.changes.length>0){n=t.lastEditActionCommand?n:1;var r=i.lastInsertModeChanges;er(e,r.changes,n)}}var i=nt.macroModeState;i.isPlaying=!0;var s=!!t.lastEditActionCommand,o=t.inputState;t.inputState=t.lastEditInputState;if(s&&t.lastEditActionCommand.interlaceInsertRepeat)for(var f=0;f<n;f++)u(),a(1);else r||u(),a(n);t.inputState=o,t.insertMode&&!r&&qn(e),i.isPlaying=!1}function er(e,t,n){function r(t){return typeof t==\"string\"?v.commands[t](e):t(e),!0}var i=e.getCursor(\"head\"),s=nt.macroModeState.lastInsertModeChanges.inVisualBlock;if(s){var o=e.state.vim,u=o.lastSelection,a=xt(u.anchor,u.head);It(e,i,a.line+1),n=e.listSelections().length,e.setCursor(i)}for(var f=0;f<n;f++){s&&e.setCursor(St(i,f,0));for(var l=0;l<t.length;l++){var c=t[l];if(c instanceof Gn)v.lookupKey(c.keyName,\"vim-insert\",r);else{var h=e.getCursor();e.replaceRange(c,h,h)}}}s&&e.setCursor(St(i,0,1))}function nr(e,t,n){t.length>1&&t[0]==\"n\"&&(t=t.replace(\"numpad\",\"\")),t=tr[t]||t;var r=\"\";return n.ctrlKey&&(r+=\"C-\"),n.altKey&&(r+=\"A-\"),n.shiftKey&&(r+=\"S-\"),r+=t,r.length>1&&(r=\"<\"+r+\">\"),r}function ir(e){var t=new e.constructor;return Object.keys(e).forEach(function(n){var r=e[n];Array.isArray(r)?r=r.slice():r&&typeof r==\"object\"&&r.constructor!=Object&&(r=ir(r)),t[n]=r}),e.sel&&(t.sel={head:e.sel.head&&Lt(e.sel.head),anchor:e.sel.anchor&&Lt(e.sel.anchor)}),t}function sr(e,t,n){var r=!1,i=S.maybeInitVimState_(e),s=i.visualBlock||i.wasInVisualBlock;i.wasInVisualBlock&&!e.ace.inMultiSelectMode?i.wasInVisualBlock=!1:e.ace.inMultiSelectMode&&i.visualBlock&&(i.wasInVisualBlock=!0);if(t==\"<Esc>\"&&!i.insertMode&&!i.visualMode&&e.ace.inMultiSelectMode)e.ace.exitMultiSelectMode();else if(s||!e.ace.inMultiSelectMode||e.ace.inVirtualSelectionMode)r=S.handleKey(e,t,n);else{var o=ir(i);e.operation(function(){e.ace.forEachSelection(function(){var i=e.ace.selection;e.state.vim.lastHPos=i.$desiredColumn==null?i.lead.column:i.$desiredColumn;var s=e.getCursor(\"head\"),u=e.getCursor(\"anchor\"),a=Ot(s,u)?0:-1,f=Ot(s,u)?-1:0;s=St(s,0,a),u=St(u,0,f),e.state.vim.sel.head=s,e.state.vim.sel.anchor=u,r=rr(e,t,n),i.$desiredColumn=e.state.vim.lastHPos==-1?null:e.state.vim.lastHPos,e.virtualSelectionMode()&&(e.state.vim=ir(o))}),e.curOp.cursorActivity&&!r&&(e.curOp.cursorActivity=!1)},!0)}return r}function ar(e,t){t.off(\"beforeEndOperation\",ar);var n=t.state.cm.vimCmd;n&&t.execCommand(n.exec?n:n.name,n.args),t.curOp=t.prevOp}var i=e(\"../range\").Range,s=e(\"../lib/event_emitter\").EventEmitter,o=e(\"../lib/dom\"),u=e(\"../lib/oop\"),a=e(\"../lib/keys\"),f=e(\"../lib/event\"),l=e(\"../search\").Search,c=e(\"../lib/useragent\"),h=e(\"../search_highlight\").SearchHighlight,p=e(\"../commands/multi_select_commands\"),d=e(\"../mode/text\").Mode.prototype.tokenRe;e(\"../multi_select\");var v=function(e){this.ace=e,this.state={},this.marks={},this.$uid=0,this.onChange=this.onChange.bind(this),this.onSelectionChange=this.onSelectionChange.bind(this),this.onBeforeEndOperation=this.onBeforeEndOperation.bind(this),this.ace.on(\"change\",this.onChange),this.ace.on(\"changeSelection\",this.onSelectionChange),this.ace.on(\"beforeEndOperation\",this.onBeforeEndOperation)};v.Pos=function(e,t){if(!(this instanceof E))return new E(e,t);this.line=e,this.ch=t},v.defineOption=function(e,t,n){},v.commands={redo:function(e){e.ace.redo()},undo:function(e){e.ace.undo()},newlineAndIndent:function(e){e.ace.insert(\"\\n\")}},v.keyMap={},v.addClass=v.rmClass=v.e_stop=function(){},v.keyName=function(e){if(e.key)return e.key;var t=a[e.keyCode]||\"\";return t.length==1&&(t=t.toUpperCase()),t=f.getModifierString(e).replace(/(^|-)\\w/g,function(e){return e.toUpperCase()})+t,t},v.keyMap[\"default\"]=function(e){return function(t){var n=t.ace.commands.commandKeyBinding[e.toLowerCase()];return n&&t.ace.execCommand(n)!==!1}},v.lookupKey=function fr(e,t,n){typeof t==\"string\"&&(t=v.keyMap[t]);var r=typeof t==\"function\"?t(e):t[e];if(r===!1)return\"nothing\";if(r===\"...\")return\"multi\";if(r!=null&&n(r))return\"handled\";if(t.fallthrough){if(!Array.isArray(t.fallthrough))return fr(e,t.fallthrough,n);for(var i=0;i<t.fallthrough.length;i++){var s=fr(e,t.fallthrough[i],n);if(s)return s}}},v.signal=function(e,t,n){return e._signal(t,n)},v.on=f.addListener,v.off=f.removeListener,v.isWordChar=function(e){return e<\"\"?/^\\w$/.test(e):(d.lastIndex=0,d.test(e))},function(){u.implement(v.prototype,s),this.destroy=function(){this.ace.off(\"change\",this.onChange),this.ace.off(\"changeSelection\",this.onSelectionChange),this.ace.off(\"beforeEndOperation\",this.onBeforeEndOperation),this.removeOverlay()},this.virtualSelectionMode=function(){return this.ace.inVirtualSelectionMode&&this.ace.selection.index},this.onChange=function(e){if(e.action[0]==\"i\"){var t={text:e.lines},n=this.curOp=this.curOp||{};n.changeHandlers||(n.changeHandlers=this._eventRegistry.change&&this._eventRegistry.change.slice());if(this.virtualSelectionMode())return;n.lastChange?n.lastChange.next=n.lastChange=t:n.lastChange=n.change=t}this.$updateMarkers(e)},this.onSelectionChange=function(){var e=this.curOp=this.curOp||{};e.cursorActivityHandlers||(e.cursorActivityHandlers=this._eventRegistry.cursorActivity&&this._eventRegistry.cursorActivity.slice()),this.curOp.cursorActivity=!0,this.ace.inMultiSelectMode&&this.ace.keyBinding.removeKeyboardHandler(p.keyboardHandler)},this.operation=function(e,t){if(!t&&this.curOp||t&&this.curOp&&this.curOp.force)return e();(t||!this.ace.curOp)&&this.curOp&&this.onBeforeEndOperation();if(!this.ace.curOp){var n=this.ace.prevOp;this.ace.startOperation({command:{name:\"vim\",scrollIntoView:\"cursor\"}})}var r=this.curOp=this.curOp||{};this.curOp.force=t;var i=e();return this.ace.curOp&&this.ace.curOp.command.name==\"vim\"&&(this.ace.endOperation(),!r.cursorActivity&&!r.lastChange&&n&&(this.ace.prevOp=n)),(t||!this.ace.curOp)&&this.curOp&&this.onBeforeEndOperation(),i},this.onBeforeEndOperation=function(){var e=this.curOp;e&&(e.change&&this.signal(\"change\",e.change,e),e&&e.cursorActivity&&this.signal(\"cursorActivity\",null,e),this.curOp=null)},this.signal=function(e,t,n){var r=n?n[e+\"Handlers\"]:(this._eventRegistry||{})[e];if(!r)return;r=r.slice();for(var i=0;i<r.length;i++)r[i](this,t)},this.firstLine=function(){return 0},this.lastLine=function(){return this.ace.session.getLength()-1},this.lineCount=function(){return this.ace.session.getLength()},this.setCursor=function(e,t){typeof e==\"object\"&&(t=e.ch,e=e.line),this.ace.inVirtualSelectionMode||this.ace.exitMultiSelectMode(),this.ace.session.unfold({row:e,column:t}),this.ace.selection.moveTo(e,t)},this.getCursor=function(e){var t=this.ace.selection,n=e==\"anchor\"?t.isEmpty()?t.lead:t.anchor:e==\"head\"||!e?t.lead:t.getRange()[e];return g(n)},this.listSelections=function(e){var t=this.ace.multiSelect.rangeList.ranges;return!t.length||this.ace.inVirtualSelectionMode?[{anchor:this.getCursor(\"anchor\"),head:this.getCursor(\"head\")}]:t.map(function(e){return{anchor:this.clipPos(g(e.cursor==e.end?e.start:e.end)),head:this.clipPos(g(e.cursor))}},this)},this.setSelections=function(e,t){var n=this.ace.multiSelect,r=e.map(function(e){var t=m(e.anchor),n=m(e.head),r=i.comparePoints(t,n)<0?new i.fromPoints(t,n):new i.fromPoints(n,t);return r.cursor=i.comparePoints(r.start,n)?r.end:r.start,r});if(this.ace.inVirtualSelectionMode){this.ace.selection.fromOrientedRange(r[0]);return}t?r[t]&&r.push(r.splice(t,1)[0]):r=r.reverse(),n.toSingleRange(r[0].clone());var s=this.ace.session;for(var o=0;o<r.length;o++){var u=s.$clipRangeToDocument(r[o]);n.addRange(u)}},this.setSelection=function(e,t,n){var r=this.ace.selection;r.moveTo(e.line,e.ch),r.selectTo(t.line,t.ch),n&&n.origin==\"*mouse\"&&this.onBeforeEndOperation()},this.somethingSelected=function(e){return!this.ace.selection.isEmpty()},this.clipPos=function(e){var t=this.ace.session.$clipPositionToDocument(e.line,e.ch);return g(t)},this.markText=function(e){return{clear:function(){},find:function(){}}},this.$updateMarkers=function(e){var t=e.action==\"insert\",n=e.start,r=e.end,s=(r.row-n.row)*(t?1:-1),o=(r.column-n.column)*(t?1:-1);t&&(r=n);for(var u in this.marks){var a=this.marks[u],f=i.comparePoints(a,n);if(f<0)continue;if(f===0&&t){if(a.bias!=1){a.bias==-1;continue}f=1}var l=t?f:i.comparePoints(a,r);if(l>0){a.row+=s,a.column+=a.row==r.row?o:0;continue}!t&&l<=0&&(a.row=n.row,a.column=n.column,l===0&&(a.bias=1))}};var e=function(e,t,n,r){this.cm=e,this.id=t,this.row=n,this.column=r,e.marks[this.id]=this};e.prototype.clear=function(){delete this.cm.marks[this.id]},e.prototype.find=function(){return g(this)},this.setBookmark=function(t,n){var r=new e(this,this.$uid++,t.line,t.ch);if(!n||!n.insertLeft)r.$insertRight=!0;return this.marks[r.id]=r,r},this.moveH=function(e,t){if(t==\"char\"){var n=this.ace.selection;n.clearSelection(),n.moveCursorBy(0,e)}},this.findPosV=function(e,t,n,r){if(n==\"page\"){var i=this.ace.renderer,s=i.layerConfig;t*=Math.floor(s.height/s.lineHeight),n=\"line\"}if(n==\"line\"){var o=this.ace.session.documentToScreenPosition(e.line,e.ch);r!=null&&(o.column=r),o.row+=t,o.row=Math.min(Math.max(0,o.row),this.ace.session.getScreenLength()-1);var u=this.ace.session.screenToDocumentPosition(o.row,o.column);return g(u)}debugger},this.charCoords=function(e,t){if(t==\"div\"||!t){var n=this.ace.session.documentToScreenPosition(e.line,e.ch);return{left:n.column,top:n.row}}if(t==\"local\"){var r=this.ace.renderer,n=this.ace.session.documentToScreenPosition(e.line,e.ch),i=r.layerConfig.lineHeight,s=r.layerConfig.characterWidth,o=i*n.row;return{left:n.column*s,top:o,bottom:o+i}}},this.coordsChar=function(e,t){var n=this.ace.renderer;if(t==\"local\"){var r=Math.max(0,Math.floor(e.top/n.lineHeight)),i=Math.max(0,Math.floor(e.left/n.characterWidth)),s=n.session.screenToDocumentPosition(r,i);return g(s)}if(t==\"div\")throw\"not implemented\"},this.getSearchCursor=function(e,t,n){var r=!1,i=!1;e instanceof RegExp&&!e.global&&(r=!e.ignoreCase,e=e.source,i=!0);var s=new l;t.ch==undefined&&(t.ch=Number.MAX_VALUE);var o={row:t.line,column:t.ch},u=this,a=null;return{findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(t){s.setOptions({needle:e,caseSensitive:r,wrap:!1,backwards:t,regExp:i,start:a||o});var n=s.find(u.ace.session);return n&&n.isEmpty()&&u.getLine(n.start.row).length==n.start.column&&(s.$options.start=n,n=s.find(u.ace.session)),a=n,a},from:function(){return a&&g(a.start)},to:function(){return a&&g(a.end)},replace:function(e){a&&(a.end=u.ace.session.doc.replace(a,e))}}},this.scrollTo=function(e,t){var n=this.ace.renderer,r=n.layerConfig,i=r.maxHeight;i-=(n.$size.scrollerHeight-n.lineHeight)*n.$scrollPastEnd,t!=null&&this.ace.session.setScrollTop(Math.max(0,Math.min(t,i))),e!=null&&this.ace.session.setScrollLeft(Math.max(0,Math.min(e,r.width)))},this.scrollInfo=function(){return 0},this.scrollIntoView=function(e,t){if(e){var n=this.ace.renderer,r={top:0,bottom:t};n.scrollCursorIntoView(m(e),n.lineHeight*2/n.$size.scrollerHeight,r)}},this.getLine=function(e){return this.ace.session.getLine(e)},this.getRange=function(e,t){return this.ace.session.getTextRange(new i(e.line,e.ch,t.line,t.ch))},this.replaceRange=function(e,t,n){return n||(n=t),this.ace.session.replace(new i(t.line,t.ch,n.line,n.ch),e)},this.replaceSelections=function(e){var t=this.ace.selection;if(this.ace.inVirtualSelectionMode){this.ace.session.replace(t.getRange(),e[0]||\"\");return}t.inVirtualSelectionMode=!0;var n=t.rangeList.ranges;n.length||(n=[this.ace.multiSelect.getRange()]);for(var r=n.length;r--;)this.ace.session.replace(n[r],e[r]||\"\");t.inVirtualSelectionMode=!1},this.getSelection=function(){return this.ace.getSelectedText()},this.getSelections=function(){return this.listSelections().map(function(e){return this.getRange(e.anchor,e.head)},this)},this.getInputField=function(){return this.ace.textInput.getElement()},this.getWrapperElement=function(){return this.ace.containter};var t={indentWithTabs:\"useSoftTabs\",indentUnit:\"tabSize\",tabSize:\"tabSize\",firstLineNumber:\"firstLineNumber\",readOnly:\"readOnly\"};this.setOption=function(e,n){this.state[e]=n;switch(e){case\"indentWithTabs\":e=t[e],n=!n;break;default:e=t[e]}e&&this.ace.setOption(e,n)},this.getOption=function(e,n){var r=t[e];r&&(n=this.ace.getOption(r));switch(e){case\"indentWithTabs\":return e=t[e],!n}return r?n:this.state[e]},this.toggleOverwrite=function(e){return this.state.overwrite=e,this.ace.setOverwrite(e)},this.addOverlay=function(e){if(!this.$searchHighlight||!this.$searchHighlight.session){var t=new h(null,\"ace_highlight-marker\",\"text\"),n=this.ace.session.addDynamicMarker(t);t.id=n.id,t.session=this.ace.session,t.destroy=function(e){t.session.off(\"change\",t.updateOnChange),t.session.off(\"changeEditor\",t.destroy),t.session.removeMarker(t.id),t.session=null},t.updateOnChange=function(e){var n=e.start.row;n==e.end.row?t.cache[n]=undefined:t.cache.splice(n,t.cache.length)},t.session.on(\"changeEditor\",t.destroy),t.session.on(\"change\",t.updateOnChange)}var r=new RegExp(e.query.source,\"gmi\");this.$searchHighlight=e.highlight=t,this.$searchHighlight.setRegexp(r),this.ace.renderer.updateBackMarkers()},this.removeOverlay=function(e){this.$searchHighlight&&this.$searchHighlight.session&&this.$searchHighlight.destroy()},this.getScrollInfo=function(){var e=this.ace.renderer,t=e.layerConfig;return{left:e.scrollLeft,top:e.scrollTop,height:t.maxHeight,width:t.width,clientHeight:t.height,clientWidth:t.width}},this.getValue=function(){return this.ace.getValue()},this.setValue=function(e){return this.ace.setValue(e)},this.getTokenTypeAt=function(e){var t=this.ace.session.getTokenAt(e.line,e.ch);return t&&/comment|string/.test(t.type)?\"string\":\"\"},this.findMatchingBracket=function(e){var t=this.ace.session.findMatchingBracket(m(e));return{to:t&&g(t)}},this.indentLine=function(e,t){t===!0?this.ace.session.indentRows(e,e,\"\t\"):t===!1&&this.ace.session.outdentRows(new i(e,0,e,0))},this.indexFromPos=function(e){return this.ace.session.doc.positionToIndex(m(e))},this.posFromIndex=function(e){return g(this.ace.session.doc.indexToPosition(e))},this.focus=function(e){return this.ace.focus()},this.blur=function(e){return this.ace.blur()},this.defaultTextHeight=function(e){return this.ace.renderer.layerConfig.lineHeight},this.scanForBracket=function(e,t,n,r){var i=r.bracketRegex.source;if(t==1)var s=this.ace.session.$findClosingBracket(i.slice(1,2),m(e),/paren|text/);else var s=this.ace.session.$findOpeningBracket(i.slice(-2,-1),{row:e.line,column:e.ch+1},/paren|text/);return s&&{pos:g(s)}},this.refresh=function(){return this.ace.resize(!0)},this.getMode=function(){return{name:this.getOption(\"mode\")}}}.call(v.prototype);var y=v.StringStream=function(e,t){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0};y.prototype={eol:function(){return this.pos>=this.string.length},sol:function(){return this.pos==this.lineStart},peek:function(){return this.string.charAt(this.pos)||undefined},next:function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},eat:function(e){var t=this.string.charAt(this.pos);if(typeof e==\"string\")var n=t==e;else var n=t&&(e.test?e.test(t):e(t));if(n)return++this.pos,t},eatWhile:function(e){var t=this.pos;while(this.eat(e));return this.pos>t},eatSpace:function(){var e=this.pos;while(/[\\s\\u00a0]/.test(this.string.charAt(this.pos)))++this.pos;return this.pos>e},skipToEnd:function(){this.pos=this.string.length},skipTo:function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},backUp:function(e){this.pos-=e},column:function(){throw\"not implemented\"},indentation:function(){throw\"not implemented\"},match:function(e,t,n){if(typeof e!=\"string\"){var s=this.string.slice(this.pos).match(e);return s&&s.index>0?null:(s&&t!==!1&&(this.pos+=s[0].length),s)}var r=function(e){return n?e.toLowerCase():e},i=this.string.substr(this.pos,e.length);if(r(i)==r(e))return t!==!1&&(this.pos+=e.length),!0},current:function(){return this.string.slice(this.start,this.pos)},hideFirstChars:function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}}},v.defineExtension=function(e,t){v.prototype[e]=t},o.importCssString(\".normal-mode .ace_cursor{  border: 1px solid red;  background-color: red;  opacity: 0.5;}.normal-mode .ace_hidden-cursors .ace_cursor{  background-color: transparent;}.ace_dialog {  position: absolute;  left: 0; right: 0;  background: white;  z-index: 15;  padding: .1em .8em;  overflow: hidden;  color: #333;}.ace_dialog-top {  border-bottom: 1px solid #eee;  top: 0;}.ace_dialog-bottom {  border-top: 1px solid #eee;  bottom: 0;}.ace_dialog input {  border: none;  outline: none;  background: transparent;  width: 20em;  color: inherit;  font-family: monospace;}\",\"vimMode\"),function(){function e(e,t,n){var r=e.ace.container,i;return i=r.appendChild(document.createElement(\"div\")),n?i.className=\"ace_dialog ace_dialog-bottom\":i.className=\"ace_dialog ace_dialog-top\",typeof t==\"string\"?i.innerHTML=t:i.appendChild(t),i}function t(e,t){e.state.currentNotificationClose&&e.state.currentNotificationClose(),e.state.currentNotificationClose=t}v.defineExtension(\"openDialog\",function(n,r,i){function a(e){if(typeof e==\"string\")f.value=e;else{if(o)return;o=!0,s.parentNode.removeChild(s),u.focus(),i.onClose&&i.onClose(s)}}if(this.virtualSelectionMode())return;i||(i={}),t(this,null);var s=e(this,n,i.bottom),o=!1,u=this,f=s.getElementsByTagName(\"input\")[0],l;if(f)i.value&&(f.value=i.value,i.select!==!1&&f.select()),i.onInput&&v.on(f,\"input\",function(e){i.onInput(e,f.value,a)}),i.onKeyUp&&v.on(f,\"keyup\",function(e){i.onKeyUp(e,f.value,a)}),v.on(f,\"keydown\",function(e){if(i&&i.onKeyDown&&i.onKeyDown(e,f.value,a))return;if(e.keyCode==27||i.closeOnEnter!==!1&&e.keyCode==13)f.blur(),v.e_stop(e),a();e.keyCode==13&&r(f.value)}),i.closeOnBlur!==!1&&v.on(f,\"blur\",a),f.focus();else if(l=s.getElementsByTagName(\"button\")[0])v.on(l,\"click\",function(){a(),u.focus()}),i.closeOnBlur!==!1&&v.on(l,\"blur\",a),l.focus();return a}),v.defineExtension(\"openNotification\",function(n,r){function a(){if(s)return;s=!0,clearTimeout(o),i.parentNode.removeChild(i)}if(this.virtualSelectionMode())return;t(this,a);var i=e(this,n,r&&r.bottom),s=!1,o,u=r&&typeof r.duration!=\"undefined\"?r.duration:5e3;return v.on(i,\"click\",function(e){v.e_preventDefault(e),a()}),u&&(o=setTimeout(a,u)),a})}();var b=[{keys:\"<Left>\",type:\"keyToKey\",toKeys:\"h\"},{keys:\"<Right>\",type:\"keyToKey\",toKeys:\"l\"},{keys:\"<Up>\",type:\"keyToKey\",toKeys:\"k\"},{keys:\"<Down>\",type:\"keyToKey\",toKeys:\"j\"},{keys:\"<Space>\",type:\"keyToKey\",toKeys:\"l\"},{keys:\"<BS>\",type:\"keyToKey\",toKeys:\"h\",context:\"normal\"},{keys:\"<C-Space>\",type:\"keyToKey\",toKeys:\"W\"},{keys:\"<C-BS>\",type:\"keyToKey\",toKeys:\"B\",context:\"normal\"},{keys:\"<S-Space>\",type:\"keyToKey\",toKeys:\"w\"},{keys:\"<S-BS>\",type:\"keyToKey\",toKeys:\"b\",context:\"normal\"},{keys:\"<C-n>\",type:\"keyToKey\",toKeys:\"j\"},{keys:\"<C-p>\",type:\"keyToKey\",toKeys:\"k\"},{keys:\"<C-[>\",type:\"keyToKey\",toKeys:\"<Esc>\"},{keys:\"<C-c>\",type:\"keyToKey\",toKeys:\"<Esc>\"},{keys:\"<C-[>\",type:\"keyToKey\",toKeys:\"<Esc>\",context:\"insert\"},{keys:\"<C-c>\",type:\"keyToKey\",toKeys:\"<Esc>\",context:\"insert\"},{keys:\"s\",type:\"keyToKey\",toKeys:\"cl\",context:\"normal\"},{keys:\"s\",type:\"keyToKey\",toKeys:\"xi\",context:\"visual\"},{keys:\"S\",type:\"keyToKey\",toKeys:\"cc\",context:\"normal\"},{keys:\"S\",type:\"keyToKey\",toKeys:\"dcc\",context:\"visual\"},{keys:\"<Home>\",type:\"keyToKey\",toKeys:\"0\"},{keys:\"<End>\",type:\"keyToKey\",toKeys:\"$\"},{keys:\"<PageUp>\",type:\"keyToKey\",toKeys:\"<C-b>\"},{keys:\"<PageDown>\",type:\"keyToKey\",toKeys:\"<C-f>\"},{keys:\"<CR>\",type:\"keyToKey\",toKeys:\"j^\",context:\"normal\"},{keys:\"H\",type:\"motion\",motion:\"moveToTopLine\",motionArgs:{linewise:!0,toJumplist:!0}},{keys:\"M\",type:\"motion\",motion:\"moveToMiddleLine\",motionArgs:{linewise:!0,toJumplist:!0}},{keys:\"L\",type:\"motion\",motion:\"moveToBottomLine\",motionArgs:{linewise:!0,toJumplist:!0}},{keys:\"h\",type:\"motion\",motion:\"moveByCharacters\",motionArgs:{forward:!1}},{keys:\"l\",type:\"motion\",motion:\"moveByCharacters\",motionArgs:{forward:!0}},{keys:\"j\",type:\"motion\",motion:\"moveByLines\",motionArgs:{forward:!0,linewise:!0}},{keys:\"k\",type:\"motion\",motion:\"moveByLines\",motionArgs:{forward:!1,linewise:!0}},{keys:\"gj\",type:\"motion\",motion:\"moveByDisplayLines\",motionArgs:{forward:!0}},{keys:\"gk\",type:\"motion\",motion:\"moveByDisplayLines\",motionArgs:{forward:!1}},{keys:\"w\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!0,wordEnd:!1}},{keys:\"W\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!0,wordEnd:!1,bigWord:!0}},{keys:\"e\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!0,wordEnd:!0,inclusive:!0}},{keys:\"E\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!0,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:\"b\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!1,wordEnd:!1}},{keys:\"B\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!1,wordEnd:!1,bigWord:!0}},{keys:\"ge\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!1,wordEnd:!0,inclusive:!0}},{keys:\"gE\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!1,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:\"{\",type:\"motion\",motion:\"moveByParagraph\",motionArgs:{forward:!1,toJumplist:!0}},{keys:\"}\",type:\"motion\",motion:\"moveByParagraph\",motionArgs:{forward:!0,toJumplist:!0}},{keys:\"<C-f>\",type:\"motion\",motion:\"moveByPage\",motionArgs:{forward:!0}},{keys:\"<C-b>\",type:\"motion\",motion:\"moveByPage\",motionArgs:{forward:!1}},{keys:\"<C-d>\",type:\"motion\",motion:\"moveByScroll\",motionArgs:{forward:!0,explicitRepeat:!0}},{keys:\"<C-u>\",type:\"motion\",motion:\"moveByScroll\",motionArgs:{forward:!1,explicitRepeat:!0}},{keys:\"gg\",type:\"motion\",motion:\"moveToLineOrEdgeOfDocument\",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:\"G\",type:\"motion\",motion:\"moveToLineOrEdgeOfDocument\",motionArgs:{forward:!0,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:\"0\",type:\"motion\",motion:\"moveToStartOfLine\"},{keys:\"^\",type:\"motion\",motion:\"moveToFirstNonWhiteSpaceCharacter\"},{keys:\"+\",type:\"motion\",motion:\"moveByLines\",motionArgs:{forward:!0,toFirstChar:!0}},{keys:\"-\",type:\"motion\",motion:\"moveByLines\",motionArgs:{forward:!1,toFirstChar:!0}},{keys:\"_\",type:\"motion\",motion:\"moveByLines\",motionArgs:{forward:!0,toFirstChar:!0,repeatOffset:-1}},{keys:\"$\",type:\"motion\",motion:\"moveToEol\",motionArgs:{inclusive:!0}},{keys:\"%\",type:\"motion\",motion:\"moveToMatchedSymbol\",motionArgs:{inclusive:!0,toJumplist:!0}},{keys:\"f<character>\",type:\"motion\",motion:\"moveToCharacter\",motionArgs:{forward:!0,inclusive:!0}},{keys:\"F<character>\",type:\"motion\",motion:\"moveToCharacter\",motionArgs:{forward:!1}},{keys:\"t<character>\",type:\"motion\",motion:\"moveTillCharacter\",motionArgs:{forward:!0,inclusive:!0}},{keys:\"T<character>\",type:\"motion\",motion:\"moveTillCharacter\",motionArgs:{forward:!1}},{keys:\";\",type:\"motion\",motion:\"repeatLastCharacterSearch\",motionArgs:{forward:!0}},{keys:\",\",type:\"motion\",motion:\"repeatLastCharacterSearch\",motionArgs:{forward:!1}},{keys:\"'<character>\",type:\"motion\",motion:\"goToMark\",motionArgs:{toJumplist:!0,linewise:!0}},{keys:\"`<character>\",type:\"motion\",motion:\"goToMark\",motionArgs:{toJumplist:!0}},{keys:\"]`\",type:\"motion\",motion:\"jumpToMark\",motionArgs:{forward:!0}},{keys:\"[`\",type:\"motion\",motion:\"jumpToMark\",motionArgs:{forward:!1}},{keys:\"]'\",type:\"motion\",motion:\"jumpToMark\",motionArgs:{forward:!0,linewise:!0}},{keys:\"['\",type:\"motion\",motion:\"jumpToMark\",motionArgs:{forward:!1,linewise:!0}},{keys:\"]p\",type:\"action\",action:\"paste\",isEdit:!0,actionArgs:{after:!0,isEdit:!0,matchIndent:!0}},{keys:\"[p\",type:\"action\",action:\"paste\",isEdit:!0,actionArgs:{after:!1,isEdit:!0,matchIndent:!0}},{keys:\"]<character>\",type:\"motion\",motion:\"moveToSymbol\",motionArgs:{forward:!0,toJumplist:!0}},{keys:\"[<character>\",type:\"motion\",motion:\"moveToSymbol\",motionArgs:{forward:!1,toJumplist:!0}},{keys:\"|\",type:\"motion\",motion:\"moveToColumn\"},{keys:\"o\",type:\"motion\",motion:\"moveToOtherHighlightedEnd\",context:\"visual\"},{keys:\"O\",type:\"motion\",motion:\"moveToOtherHighlightedEnd\",motionArgs:{sameLine:!0},context:\"visual\"},{keys:\"d\",type:\"operator\",operator:\"delete\"},{keys:\"y\",type:\"operator\",operator:\"yank\"},{keys:\"c\",type:\"operator\",operator:\"change\"},{keys:\">\",type:\"operator\",operator:\"indent\",operatorArgs:{indentRight:!0}},{keys:\"<\",type:\"operator\",operator:\"indent\",operatorArgs:{indentRight:!1}},{keys:\"g~\",type:\"operator\",operator:\"changeCase\"},{keys:\"gu\",type:\"operator\",operator:\"changeCase\",operatorArgs:{toLower:!0},isEdit:!0},{keys:\"gU\",type:\"operator\",operator:\"changeCase\",operatorArgs:{toLower:!1},isEdit:!0},{keys:\"n\",type:\"motion\",motion:\"findNext\",motionArgs:{forward:!0,toJumplist:!0}},{keys:\"N\",type:\"motion\",motion:\"findNext\",motionArgs:{forward:!1,toJumplist:!0}},{keys:\"x\",type:\"operatorMotion\",operator:\"delete\",motion:\"moveByCharacters\",motionArgs:{forward:!0},operatorMotionArgs:{visualLine:!1}},{keys:\"X\",type:\"operatorMotion\",operator:\"delete\",motion:\"moveByCharacters\",motionArgs:{forward:!1},operatorMotionArgs:{visualLine:!0}},{keys:\"D\",type:\"operatorMotion\",operator:\"delete\",motion:\"moveToEol\",motionArgs:{inclusive:!0},context:\"normal\"},{keys:\"D\",type:\"operator\",operator:\"delete\",operatorArgs:{linewise:!0},context:\"visual\"},{keys:\"Y\",type:\"operatorMotion\",operator:\"yank\",motion:\"moveToEol\",motionArgs:{inclusive:!0},context:\"normal\"},{keys:\"Y\",type:\"operator\",operator:\"yank\",operatorArgs:{linewise:!0},context:\"visual\"},{keys:\"C\",type:\"operatorMotion\",operator:\"change\",motion:\"moveToEol\",motionArgs:{inclusive:!0},context:\"normal\"},{keys:\"C\",type:\"operator\",operator:\"change\",operatorArgs:{linewise:!0},context:\"visual\"},{keys:\"~\",type:\"operatorMotion\",operator:\"changeCase\",motion:\"moveByCharacters\",motionArgs:{forward:!0},operatorArgs:{shouldMoveCursor:!0},context:\"normal\"},{keys:\"~\",type:\"operator\",operator:\"changeCase\",context:\"visual\"},{keys:\"<C-w>\",type:\"operatorMotion\",operator:\"delete\",motion:\"moveByWords\",motionArgs:{forward:!1,wordEnd:!1},context:\"insert\"},{keys:\"<C-i>\",type:\"action\",action:\"jumpListWalk\",actionArgs:{forward:!0}},{keys:\"<C-o>\",type:\"action\",action:\"jumpListWalk\",actionArgs:{forward:!1}},{keys:\"<C-e>\",type:\"action\",action:\"scroll\",actionArgs:{forward:!0,linewise:!0}},{keys:\"<C-y>\",type:\"action\",action:\"scroll\",actionArgs:{forward:!1,linewise:!0}},{keys:\"a\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"charAfter\"},context:\"normal\"},{keys:\"A\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"eol\"},context:\"normal\"},{keys:\"A\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"endOfSelectedArea\"},context:\"visual\"},{keys:\"i\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"inplace\"},context:\"normal\"},{keys:\"I\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"firstNonBlank\"},context:\"normal\"},{keys:\"I\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"startOfSelectedArea\"},context:\"visual\"},{keys:\"o\",type:\"action\",action:\"newLineAndEnterInsertMode\",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!0},context:\"normal\"},{keys:\"O\",type:\"action\",action:\"newLineAndEnterInsertMode\",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!1},context:\"normal\"},{keys:\"v\",type:\"action\",action:\"toggleVisualMode\"},{keys:\"V\",type:\"action\",action:\"toggleVisualMode\",actionArgs:{linewise:!0}},{keys:\"<C-v>\",type:\"action\",action:\"toggleVisualMode\",actionArgs:{blockwise:!0}},{keys:\"gv\",type:\"action\",action:\"reselectLastSelection\"},{keys:\"J\",type:\"action\",action:\"joinLines\",isEdit:!0},{keys:\"p\",type:\"action\",action:\"paste\",isEdit:!0,actionArgs:{after:!0,isEdit:!0}},{keys:\"P\",type:\"action\",action:\"paste\",isEdit:!0,actionArgs:{after:!1,isEdit:!0}},{keys:\"r<character>\",type:\"action\",action:\"replace\",isEdit:!0},{keys:\"@<character>\",type:\"action\",action:\"replayMacro\"},{keys:\"q<character>\",type:\"action\",action:\"enterMacroRecordMode\"},{keys:\"R\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{replace:!0}},{keys:\"u\",type:\"action\",action:\"undo\",context:\"normal\"},{keys:\"u\",type:\"operator\",operator:\"changeCase\",operatorArgs:{toLower:!0},context:\"visual\",isEdit:!0},{keys:\"U\",type:\"operator\",operator:\"changeCase\",operatorArgs:{toLower:!1},context:\"visual\",isEdit:!0},{keys:\"<C-r>\",type:\"action\",action:\"redo\"},{keys:\"m<character>\",type:\"action\",action:\"setMark\"},{keys:'\"<character>',type:\"action\",action:\"setRegister\"},{keys:\"zz\",type:\"action\",action:\"scrollToCursor\",actionArgs:{position:\"center\"}},{keys:\"z.\",type:\"action\",action:\"scrollToCursor\",actionArgs:{position:\"center\"},motion:\"moveToFirstNonWhiteSpaceCharacter\"},{keys:\"zt\",type:\"action\",action:\"scrollToCursor\",actionArgs:{position:\"top\"}},{keys:\"z<CR>\",type:\"action\",action:\"scrollToCursor\",actionArgs:{position:\"top\"},motion:\"moveToFirstNonWhiteSpaceCharacter\"},{keys:\"z-\",type:\"action\",action:\"scrollToCursor\",actionArgs:{position:\"bottom\"}},{keys:\"zb\",type:\"action\",action:\"scrollToCursor\",actionArgs:{position:\"bottom\"},motion:\"moveToFirstNonWhiteSpaceCharacter\"},{keys:\".\",type:\"action\",action:\"repeatLastEdit\"},{keys:\"<C-a>\",type:\"action\",action:\"incrementNumberToken\",isEdit:!0,actionArgs:{increase:!0,backtrack:!1}},{keys:\"<C-x>\",type:\"action\",action:\"incrementNumberToken\",isEdit:!0,actionArgs:{increase:!1,backtrack:!1}},{keys:\"a<character>\",type:\"motion\",motion:\"textObjectManipulation\"},{keys:\"i<character>\",type:\"motion\",motion:\"textObjectManipulation\",motionArgs:{textObjectInner:!0}},{keys:\"/\",type:\"search\",searchArgs:{forward:!0,querySrc:\"prompt\",toJumplist:!0}},{keys:\"?\",type:\"search\",searchArgs:{forward:!1,querySrc:\"prompt\",toJumplist:!0}},{keys:\"*\",type:\"search\",searchArgs:{forward:!0,querySrc:\"wordUnderCursor\",wholeWordOnly:!0,toJumplist:!0}},{keys:\"#\",type:\"search\",searchArgs:{forward:!1,querySrc:\"wordUnderCursor\",wholeWordOnly:!0,toJumplist:!0}},{keys:\"g*\",type:\"search\",searchArgs:{forward:!0,querySrc:\"wordUnderCursor\",toJumplist:!0}},{keys:\"g#\",type:\"search\",searchArgs:{forward:!1,querySrc:\"wordUnderCursor\",toJumplist:!0}},{keys:\":\",type:\"ex\"}],w=[{name:\"colorscheme\",shortName:\"colo\"},{name:\"map\"},{name:\"imap\",shortName:\"im\"},{name:\"nmap\",shortName:\"nm\"},{name:\"vmap\",shortName:\"vm\"},{name:\"unmap\"},{name:\"write\",shortName:\"w\"},{name:\"undo\",shortName:\"u\"},{name:\"redo\",shortName:\"red\"},{name:\"set\",shortName:\"se\"},{name:\"set\",shortName:\"se\"},{name:\"setlocal\",shortName:\"setl\"},{name:\"setglobal\",shortName:\"setg\"},{name:\"sort\",shortName:\"sor\"},{name:\"substitute\",shortName:\"s\",possiblyAsync:!0},{name:\"nohlsearch\",shortName:\"noh\"},{name:\"delmarks\",shortName:\"delm\"},{name:\"registers\",shortName:\"reg\",excludeFromCommandHistory:!0},{name:\"global\",shortName:\"g\"}],E=v.Pos,S=function(){return st};v.defineOption(\"vimMode\",!1,function(e,t,n){t&&e.getOption(\"keyMap\")!=\"vim\"?e.setOption(\"keyMap\",\"vim\"):!t&&n!=v.Init&&/^vim/.test(e.getOption(\"keyMap\"))&&e.setOption(\"keyMap\",\"default\")});var L={Shift:\"S\",Ctrl:\"C\",Alt:\"A\",Cmd:\"D\",Mod:\"A\"},A={Enter:\"CR\",Backspace:\"BS\",Delete:\"Del\"},_=/[\\d]/,D=[v.isWordChar,function(e){return e&&!v.isWordChar(e)&&!/\\s/.test(e)}],P=[function(e){return/\\S/.test(e)}],B=H(65,26),j=H(97,26),F=H(48,10),I=[].concat(B,j,F,[\"<\",\">\"]),q=[].concat(B,j,F,[\"-\",'\"',\".\",\":\",\"/\"]),J={};K(\"filetype\",undefined,\"string\",[\"ft\"],function(e,t){if(t===undefined)return;if(e===undefined){var n=t.getOption(\"mode\");return n==\"null\"?\"\":n}var n=e==\"\"?\"null\":e;t.setOption(\"mode\",n)});var Y=function(){function s(s,o,u){function l(n){var r=++t%e,o=i[r];o&&o.clear(),i[r]=s.setBookmark(n)}var a=t%e,f=i[a];if(f){var c=f.find();c&&!At(c,o)&&l(o)}else l(o);l(u),n=t,r=t-e+1,r<0&&(r=0)}function o(s,o){t+=o,t>n?t=n:t<r&&(t=r);var u=i[(e+t)%e];if(u&&!u.find()){var a=o>0?1:-1,f,l=s.getCursor();do{t+=a,u=i[(e+t)%e];if(u&&(f=u.find())&&!At(l,f))break}while(t<n&&t>r)}return u}var e=100,t=-1,n=0,r=0,i=new Array(e);return{cachedCursor:undefined,add:s,move:o}},Z=function(e){return e?{changes:e.changes,expectCursorActivityForChange:e.expectCursorActivityForChange}:{changes:[],expectCursorActivityForChange:!1}};et.prototype={exitMacroRecordMode:function(){var e=nt.macroModeState;e.onRecordingDone&&e.onRecordingDone(),e.onRecordingDone=undefined,e.isRecording=!1},enterMacroRecordMode:function(e,t){var n=nt.registerController.getRegister(t);n&&(n.clear(),this.latestRegister=t,e.openDialog&&(this.onRecordingDone=e.openDialog(\"(recording)[\"+t+\"]\",null,{bottom:!0})),this.isRecording=!0)}};var nt,it,st={buildKeyMap:function(){},getRegisterController:function(){return nt.registerController},resetVimGlobalState_:rt,getVimGlobalState_:function(){return nt},maybeInitVimState_:tt,suppressErrorLogging:!1,InsertModeKey:Gn,map:function(e,t,n){Fn.map(e,t,n)},unmap:function(e,t){Fn.unmap(e,t||\"normal\")},setOption:Q,getOption:G,defineOption:K,defineEx:function(e,t,n){if(!t)t=e;else if(e.indexOf(t)!==0)throw new Error('(Vim.defineEx) \"'+t+'\" is not a prefix of \"'+e+'\", command not registered');jn[e]=n,Fn.commandMap_[t]={name:e,shortName:t,type:\"api\"}},handleKey:function(e,t,n){var r=this.findKey(e,t,n);if(typeof r==\"function\")return r()},findKey:function(e,t,n){function i(){var r=nt.macroModeState;if(r.isRecording){if(t==\"q\")return r.exitMacroRecordMode(),ut(e),!0;n!=\"mapping\"&&Wn(r,t)}}function s(){if(t==\"<Esc>\")return ut(e),r.visualMode?$t(e):r.insertMode&&qn(e),!0}function o(n){var r;while(n)r=/<\\w+-.+?>|<\\w+>|./.exec(n),t=r[0],n=n.substring(r.index+t.length),v.Vim.handleKey(e,t,\"mapping\")}function u(){if(s())return!0;var n=r.inputState.keyBuffer=r.inputState.keyBuffer+t,i=t.length==1,o=ht.matchCommand(n,b,r.inputState,\"insert\");while(n.length>1&&o.type!=\"full\"){var n=r.inputState.keyBuffer=n.slice(1),u=ht.matchCommand(n,b,r.inputState,\"insert\");u.type!=\"none\"&&(o=u)}if(o.type==\"none\")return ut(e),!1;if(o.type==\"partial\")return it&&window.clearTimeout(it),it=window.setTimeout(function(){r.insertMode&&r.inputState.keyBuffer&&ut(e)},G(\"insertModeEscKeysTimeout\")),!i;it&&window.clearTimeout(it);if(i){var a=e.getCursor();e.replaceRange(\"\",St(a,0,-(n.length-1)),a,\"+input\")}return ut(e),o.command}function a(){if(i()||s())return!0;var n=r.inputState.keyBuffer=r.inputState.keyBuffer+t;if(/^[1-9]\\d*$/.test(n))return!0;var o=/^(\\d*)(.*)$/.exec(n);if(!o)return ut(e),!1;var u=r.visualMode?\"visual\":\"normal\",a=ht.matchCommand(o[2]||o[1],b,r.inputState,u);if(a.type==\"none\")return ut(e),!1;if(a.type==\"partial\")return!0;r.inputState.keyBuffer=\"\";var o=/^(\\d*)(.*)$/.exec(n);return o[1]&&o[1]!=\"0\"&&r.inputState.pushRepeatDigit(o[1]),a.command}var r=tt(e),f;return r.insertMode?f=u():f=a(),f===!1?undefined:f===!0?function(){return!0}:function(){if((f.operator||f.isEdit)&&e.getOption(\"readOnly\"))return;return e.operation(function(){e.curOp.isVimOp=!0;try{f.type==\"keyToKey\"?o(f.toKeys):ht.processCommand(e,r,f)}catch(t){throw e.state.vim=undefined,tt(e),v.Vim.suppressErrorLogging||console.log(t),t}return!0})}},handleEx:function(e,t){Fn.processCommand(e,t)},defineMotion:dt,defineAction:bt,defineOperator:gt,mapCommand:Un,_mapCommand:Rn,defineRegister:ft,exitVisualMode:$t,exitInsertMode:qn};ot.prototype.pushRepeatDigit=function(e){this.operator?this.motionRepeat=this.motionRepeat.concat(e):this.prefixRepeat=this.prefixRepeat.concat(e)},ot.prototype.getRepeat=function(){var e=0;if(this.prefixRepeat.length>0||this.motionRepeat.length>0)e=1,this.prefixRepeat.length>0&&(e*=parseInt(this.prefixRepeat.join(\"\"),10)),this.motionRepeat.length>0&&(e*=parseInt(this.motionRepeat.join(\"\"),10));return e},at.prototype={setText:function(e,t,n){this.keyBuffer=[e||\"\"],this.linewise=!!t,this.blockwise=!!n},pushText:function(e,t){t&&(this.linewise||this.keyBuffer.push(\"\\n\"),this.linewise=!0),this.keyBuffer.push(e)},pushInsertModeChanges:function(e){this.insertModeChanges.push(Z(e))},pushSearchQuery:function(e){this.searchQueries.push(e)},clear:function(){this.keyBuffer=[],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!1},toString:function(){return this.keyBuffer.join(\"\")}},lt.prototype={pushText:function(e,t,n,r,i){r&&n.charAt(0)==\"\\n\"&&(n=n.slice(1)+\"\\n\"),r&&n.charAt(n.length-1)!==\"\\n\"&&(n+=\"\\n\");var s=this.isValidRegister(e)?this.getRegister(e):null;if(!s){switch(t){case\"yank\":this.registers[0]=new at(n,r,i);break;case\"delete\":case\"change\":n.indexOf(\"\\n\")==-1?this.registers[\"-\"]=new at(n,r):(this.shiftNumericRegisters_(),this.registers[1]=new at(n,r))}this.unnamedRegister.setText(n,r,i);return}var o=X(e);o?s.pushText(n,r):s.setText(n,r,i),this.unnamedRegister.setText(s.toString(),r)},getRegister:function(e){return this.isValidRegister(e)?(e=e.toLowerCase(),this.registers[e]||(this.registers[e]=new at),this.registers[e]):this.unnamedRegister},isValidRegister:function(e){return e&&$(e,q)},shiftNumericRegisters_:function(){for(var e=9;e>=2;e--)this.registers[e]=this.getRegister(\"\"+(e-1))}},ct.prototype={nextMatch:function(e,t){var n=this.historyBuffer,r=t?-1:1;this.initialPrefix===null&&(this.initialPrefix=e);for(var i=this.iterator+r;t?i>=0:i<n.length;i+=r){var s=n[i];for(var o=0;o<=s.length;o++)if(this.initialPrefix==s.substring(0,o))return this.iterator=i,s}if(i>=n.length)return this.iterator=n.length,this.initialPrefix;if(i<0)return e},pushInput:function(e){var t=this.historyBuffer.indexOf(e);t>-1&&this.historyBuffer.splice(t,1),e.length&&this.historyBuffer.push(e)},reset:function(){this.initialPrefix=null,this.iterator=this.historyBuffer.length}};var ht={matchCommand:function(e,t,n,r){var i=Tt(e,t,r,n);if(!i.full&&!i.partial)return{type:\"none\"};if(!i.full&&i.partial)return{type:\"partial\"};var s;for(var o=0;o<i.full.length;o++){var u=i.full[o];s||(s=u)}return s.keys.slice(-11)==\"<character>\"&&(n.selectedCharacter=Ct(e)),{type:\"full\",command:s}},processCommand:function(e,t,n){t.inputState.repeatOverride=n.repeatOverride;switch(n.type){case\"motion\":this.processMotion(e,t,n);break;case\"operator\":this.processOperator(e,t,n);break;case\"operatorMotion\":this.processOperatorMotion(e,t,n);break;case\"action\":this.processAction(e,t,n);break;case\"search\":this.processSearch(e,t,n);break;case\"ex\":case\"keyToEx\":this.processEx(e,t,n);break;default:}},processMotion:function(e,t,n){t.inputState.motion=n.motion,t.inputState.motionArgs=Et(n.motionArgs),this.evalInput(e,t)},processOperator:function(e,t,n){var r=t.inputState;if(r.operator){if(r.operator==n.operator){r.motion=\"expandToLine\",r.motionArgs={linewise:!0},this.evalInput(e,t);return}ut(e)}r.operator=n.operator,r.operatorArgs=Et(n.operatorArgs),t.visualMode&&this.evalInput(e,t)},processOperatorMotion:function(e,t,n){var r=t.visualMode,i=Et(n.operatorMotionArgs);i&&r&&i.visualLine&&(t.visualLine=!0),this.processOperator(e,t,n),r||this.processMotion(e,t,n)},processAction:function(e,t,n){var r=t.inputState,i=r.getRepeat(),s=!!i,o=Et(n.actionArgs)||{};r.selectedCharacter&&(o.selectedCharacter=r.selectedCharacter),n.operator&&this.processOperator(e,t,n),n.motion&&this.processMotion(e,t,n),(n.motion||n.operator)&&this.evalInput(e,t),o.repeat=i||1,o.repeatIsExplicit=s,o.registerName=r.registerName,ut(e),t.lastMotion=null,n.isEdit&&this.recordLastEdit(t,r,n),yt[n.action](e,o,t)},processSearch:function(e,t,n){function a(r,i,s){nt.searchHistoryController.pushInput(r),nt.searchHistoryController.reset();try{An(e,r,i,s)}catch(o){Tn(e,\"Invalid regex: \"+r),ut(e);return}ht.processMotion(e,t,{type:\"motion\",motion:\"findNext\",motionArgs:{forward:!0,toJumplist:n.searchArgs.toJumplist}})}function f(t){e.scrollTo(u.left,u.top),a(t,!0,!0);var n=nt.macroModeState;n.isRecording&&Vn(n,t)}function l(t,n,i){var s=v.keyName(t),o;s==\"Up\"||s==\"Down\"?(o=s==\"Up\"?!0:!1,n=nt.searchHistoryController.nextMatch(n,o)||\"\",i(n)):s!=\"Left\"&&s!=\"Right\"&&s!=\"Ctrl\"&&s!=\"Alt\"&&s!=\"Shift\"&&nt.searchHistoryController.reset();var a;try{a=An(e,n,!0,!0)}catch(t){}a?e.scrollIntoView(_n(e,!r,a),30):(Dn(e),e.scrollTo(u.left,u.top))}function c(t,n,r){var i=v.keyName(t);i==\"Esc\"||i==\"Ctrl-C\"||i==\"Ctrl-[\"||i==\"Backspace\"&&n==\"\"?(nt.searchHistoryController.pushInput(n),nt.searchHistoryController.reset(),An(e,o),Dn(e),e.scrollTo(u.left,u.top),v.e_stop(t),ut(e),r(),e.focus()):i==\"Ctrl-U\"&&(v.e_stop(t),r(\"\"))}if(!e.getSearchCursor)return;var r=n.searchArgs.forward,i=n.searchArgs.wholeWordOnly;dn(e).setReversed(!r);var s=r?\"/\":\"?\",o=dn(e).getQuery(),u=e.getScrollInfo();switch(n.searchArgs.querySrc){case\"prompt\":var h=nt.macroModeState;if(h.isPlaying){var p=h.replaySearchQueries.shift();a(p,!0,!1)}else kn(e,{onClose:f,prefix:s,desc:Cn,onKeyUp:l,onKeyDown:c});break;case\"wordUnderCursor\":var d=Gt(e,!1,!0,!1,!0),m=!0;d||(d=Gt(e,!1,!0,!1,!1),m=!1);if(!d)return;var p=e.getLine(d.start.line).substring(d.start.ch,d.end.ch);m&&i?p=\"\\\\b\"+p+\"\\\\b\":p=Bt(p),nt.jumpList.cachedCursor=e.getCursor(),e.setCursor(d.start),a(p,!0,!1)}},processEx:function(e,t,n){function r(t){nt.exCommandHistoryController.pushInput(t),nt.exCommandHistoryController.reset(),Fn.processCommand(e,t)}function i(t,n,r){var i=v.keyName(t),s;if(i==\"Esc\"||i==\"Ctrl-C\"||i==\"Ctrl-[\"||i==\"Backspace\"&&n==\"\")nt.exCommandHistoryController.pushInput(n),nt.exCommandHistoryController.reset(),v.e_stop(t),ut(e),r(),e.focus();i==\"Up\"||i==\"Down\"?(s=i==\"Up\"?!0:!1,n=nt.exCommandHistoryController.nextMatch(n,s)||\"\",r(n)):i==\"Ctrl-U\"?(v.e_stop(t),r(\"\")):i!=\"Left\"&&i!=\"Right\"&&i!=\"Ctrl\"&&i!=\"Alt\"&&i!=\"Shift\"&&nt.exCommandHistoryController.reset()}n.type==\"keyToEx\"?Fn.processCommand(e,n.exArgs.input):t.visualMode?kn(e,{onClose:r,prefix:\":\",value:\"'<,'>\",onKeyDown:i}):kn(e,{onClose:r,prefix:\":\",onKeyDown:i})},evalInput:function(e,t){var n=t.inputState,r=n.motion,i=n.motionArgs||{},s=n.operator,o=n.operatorArgs||{},u=n.registerName,a=t.sel,f=Lt(t.visualMode?wt(e,a.head):e.getCursor(\"head\")),l=Lt(t.visualMode?wt(e,a.anchor):e.getCursor(\"anchor\")),c=Lt(f),h=Lt(l),p,d,v;s&&this.recordLastEdit(t,n),n.repeatOverride!==undefined?v=n.repeatOverride:v=n.getRepeat();if(v>0&&i.explicitRepeat)i.repeatIsExplicit=!0;else if(i.noRepeat||!i.explicitRepeat&&v===0)v=1,i.repeatIsExplicit=!1;n.selectedCharacter&&(i.selectedCharacter=o.selectedCharacter=n.selectedCharacter),i.repeat=v,ut(e);if(r){var m=pt[r](e,f,i,t);t.lastMotion=pt[r];if(!m)return;if(i.toJumplist){!s&&e.ace.curOp!=null&&(e.ace.curOp.command.scrollIntoView=\"center-animate\");var g=nt.jumpList,y=g.cachedCursor;y?(Yt(e,y,m),delete g.cachedCursor):Yt(e,f,m)}m instanceof Array?(d=m[0],p=m[1]):p=m,p||(p=Lt(f));if(t.visualMode){if(!t.visualBlock||p.ch!==Infinity)p=wt(e,p,t.visualBlock);d&&(d=wt(e,d,!0)),d=d||h,a.anchor=d,a.head=p,Wt(e),an(e,t,\"<\",Ot(d,p)?d:p),an(e,t,\">\",Ot(d,p)?p:d)}else s||(p=wt(e,p),e.setCursor(p.line,p.ch))}if(s){if(o.lastSel){d=h;var b=o.lastSel,w=Math.abs(b.head.line-b.anchor.line),S=Math.abs(b.head.ch-b.anchor.ch);b.visualLine?p=E(h.line+w,h.ch):b.visualBlock?p=E(h.line+w,h.ch+S):b.head.line==b.anchor.line?p=E(h.line,h.ch+S):p=E(h.line+w,h.ch),t.visualMode=!0,t.visualLine=b.visualLine,t.visualBlock=b.visualBlock,a=t.sel={anchor:d,head:p},Wt(e)}else t.visualMode&&(o.lastSel={anchor:Lt(a.anchor),head:Lt(a.head),visualBlock:t.visualBlock,visualLine:t.visualLine});var x,T,N,C,k;if(t.visualMode){x=Mt(a.head,a.anchor),T=_t(a.head,a.anchor),N=t.visualLine||o.linewise,C=t.visualBlock?\"block\":N?\"line\":\"char\",k=Xt(e,{anchor:x,head:T},C);if(N){var L=k.ranges;if(C==\"block\")for(var A=0;A<L.length;A++)L[A].head.ch=Pt(e,L[A].head.line);else C==\"line\"&&(L[0].head=E(L[0].head.line+1,0))}}else{x=Lt(d||h),T=Lt(p||c);if(Ot(T,x)){var O=x;x=T,T=O}N=i.linewise||o.linewise,N?Kt(e,x,T):i.forward&&Jt(e,x,T),C=\"char\";var M=!i.inclusive||N;k=Xt(e,{anchor:x,head:T},C,M)}e.setSelections(k.ranges,k.primary),t.lastMotion=null,o.repeat=v,o.registerName=u,o.linewise=N;var _=mt[s](e,o,k.ranges,h,p);t.visualMode&&$t(e,_!=null),_&&e.setCursor(_)}},recordLastEdit:function(e,t,n){var r=nt.macroModeState;if(r.isPlaying)return;e.lastEditInputState=t,e.lastEditActionCommand=n,r.lastInsertModeChanges.changes=[],r.lastInsertModeChanges.expectCursorActivityForChange=!1}},pt={moveToTopLine:function(e,t,n){var r=Hn(e).top+n.repeat-1;return E(r,Qt(e.getLine(r)))},moveToMiddleLine:function(e){var t=Hn(e),n=Math.floor((t.top+t.bottom)*.5);return E(n,Qt(e.getLine(n)))},moveToBottomLine:function(e,t,n){var r=Hn(e).bottom-n.repeat+1;return E(r,Qt(e.getLine(r)))},expandToLine:function(e,t,n){var r=t;return E(r.line+n.repeat-1,Infinity)},findNext:function(e,t,n){var r=dn(e),i=r.getQuery();if(!i)return;var s=!n.forward;return s=r.isReversed()?!s:s,Mn(e,i),_n(e,s,i,n.repeat)},goToMark:function(e,t,n,r){var i=r.marks[n.selectedCharacter];if(i){var s=i.find();return n.linewise?{line:s.line,ch:Qt(e.getLine(s.line))}:s}return null},moveToOtherHighlightedEnd:function(e,t,n,r){if(r.visualBlock&&n.sameLine){var i=r.sel;return[wt(e,E(i.anchor.line,i.head.ch)),wt(e,E(i.head.line,i.anchor.ch))]}return[r.sel.head,r.sel.anchor]},jumpToMark:function(e,t,n,r){var i=t;for(var s=0;s<n.repeat;s++){var o=i;for(var u in r.marks){if(!U(u))continue;var a=r.marks[u].find(),f=n.forward?Ot(a,o):Ot(o,a);if(f)continue;if(n.linewise&&a.line==o.line)continue;var l=At(o,i),c=n.forward?Dt(o,a,i):Dt(i,a,o);if(l||c)i=a}}return n.linewise&&(i=E(i.line,Qt(e.getLine(i.line)))),i},moveByCharacters:function(e,t,n){var r=t,i=n.repeat,s=n.forward?r.ch+i:r.ch-i;return E(r.line,s)},moveByLines:function(e,t,n,r){var i=t,s=i.ch;switch(r.lastMotion){case this.moveByLines:case this.moveByDisplayLines:case this.moveByScroll:case this.moveToColumn:case this.moveToEol:s=r.lastHPos;break;default:r.lastHPos=s}var o=n.repeat+(n.repeatOffset||0),u=n.forward?i.line+o:i.line-o,a=e.firstLine(),f=e.lastLine();if(u<a&&i.line==a||u>f&&i.line==f)return;var l=e.ace.session.getFoldLine(u);return l&&(n.forward?u>l.start.row&&(u=l.end.row+1):u=l.start.row),n.toFirstChar&&(s=Qt(e.getLine(u)),r.lastHPos=s),r.lastHSPos=e.charCoords(E(u,s),\"div\").left,E(u,s)},moveByDisplayLines:function(e,t,n,r){var i=t;switch(r.lastMotion){case this.moveByDisplayLines:case this.moveByScroll:case this.moveByLines:case this.moveToColumn:case this.moveToEol:break;default:r.lastHSPos=e.charCoords(i,\"div\").left}var s=n.repeat,o=e.findPosV(i,n.forward?s:-s,\"line\",r.lastHSPos);if(o.hitSide)if(n.forward)var u=e.charCoords(o,\"div\"),a={top:u.top+8,left:r.lastHSPos},o=e.coordsChar(a,\"div\");else{var f=e.charCoords(E(e.firstLine(),0),\"div\");f.left=r.lastHSPos,o=e.coordsChar(f,\"div\")}return r.lastHPos=o.ch,o},moveByPage:function(e,t,n){var r=t,i=n.repeat;return e.findPosV(r,n.forward?i:-i,\"page\")},moveByParagraph:function(e,t,n){var r=n.forward?1:-1;return ln(e,t,n.repeat,r)},moveByScroll:function(e,t,n,r){var i=e.getScrollInfo(),s=null,o=n.repeat;o||(o=i.clientHeight/(2*e.defaultTextHeight()));var u=e.charCoords(t,\"local\");n.repeat=o;var s=pt.moveByDisplayLines(e,t,n,r);if(!s)return null;var a=e.charCoords(s,\"local\");return e.scrollTo(null,i.top+a.top-u.top),s},moveByWords:function(e,t,n){return sn(e,t,n.repeat,!!n.forward,!!n.wordEnd,!!n.bigWord)},moveTillCharacter:function(e,t,n){var r=n.repeat,i=on(e,r,n.forward,n.selectedCharacter),s=n.forward?-1:1;return Zt(s,n),i?(i.ch+=s,i):null},moveToCharacter:function(e,t,n){var r=n.repeat;return Zt(0,n),on(e,r,n.forward,n.selectedCharacter)||t},moveToSymbol:function(e,t,n){var r=n.repeat;return nn(e,r,n.forward,n.selectedCharacter)||t},moveToColumn:function(e,t,n,r){var i=n.repeat;return r.lastHPos=i-1,r.lastHSPos=e.charCoords(t,\"div\").left,un(e,i)},moveToEol:function(e,t,n,r){var i=t;r.lastHPos=Infinity;var s=E(i.line+n.repeat-1,Infinity),o=e.clipPos(s);return o.ch--,r.lastHSPos=e.charCoords(o,\"div\").left,s},moveToFirstNonWhiteSpaceCharacter:function(e,t){var n=t;return E(n.line,Qt(e.getLine(n.line)))},moveToMatchedSymbol:function(e,t){var n=t,r=n.line,i=n.ch,s=e.getLine(r),o;do{o=s.charAt(i++);if(o&&z(o)){var u=e.getTokenTypeAt(E(r,i));if(u!==\"string\"&&u!==\"comment\")break}}while(o);if(o){var a=e.findMatchingBracket(E(r,i));return a.to}return n},moveToStartOfLine:function(e,t){return E(t.line,0)},moveToLineOrEdgeOfDocument:function(e,t,n){var r=n.forward?e.lastLine():e.firstLine();return n.repeatIsExplicit&&(r=n.repeat-e.getOption(\"firstLineNumber\")),E(r,Qt(e.getLine(r)))},textObjectManipulation:function(e,t,n,r){var i={\"(\":\")\",\")\":\"(\",\"{\":\"}\",\"}\":\"{\",\"[\":\"]\",\"]\":\"[\"},s={\"'\":!0,'\"':!0},o=n.selectedCharacter;o==\"b\"?o=\"(\":o==\"B\"&&(o=\"{\");var u=!n.textObjectInner,a;if(i[o])a=cn(e,t,o,u);else if(s[o])a=hn(e,t,o,u);else if(o===\"W\")a=Gt(e,u,!0,!0);else if(o===\"w\")a=Gt(e,u,!0,!1);else{if(o!==\"p\")return null;a=ln(e,t,n.repeat,0,u),n.linewise=!0;if(r.visualMode)r.visualLine||(r.visualLine=!0);else{var f=r.inputState.operatorArgs;f&&(f.linewise=!0),a.end.line--}}return e.state.vim.visualMode?zt(e,a.start,a.end):[a.start,a.end]},repeatLastCharacterSearch:function(e,t,n){var r=nt.lastChararacterSearch,i=n.repeat,s=n.forward===r.forward,o=(r.increment?1:0)*(s?-1:1);e.moveH(-o,\"char\"),n.inclusive=s?!0:!1;var u=on(e,i,s,r.selectedCharacter);return u?(u.ch+=o,u):(e.moveH(o,\"char\"),t)}},mt={change:function(e,t,n){var r,i,s=e.state.vim;nt.macroModeState.lastInsertModeChanges.inVisualBlock=s.visualBlock;if(!s.visualMode){var o=n[0].anchor,u=n[0].head;i=e.getRange(o,u);var a=s.lastEditInputState||{};if(a.motion==\"moveByWords\"&&!V(i)){var f=/\\s+$/.exec(i);f&&a.motionArgs&&a.motionArgs.forward&&(u=St(u,0,-f[0].length),i=i.slice(0,-f[0].length))}var l=new E(o.line-1,Number.MAX_VALUE),c=e.firstLine()==e.lastLine();u.line>e.lastLine()&&t.linewise&&!c?e.replaceRange(\"\",l,u):e.replaceRange(\"\",o,u),t.linewise&&(c||(e.setCursor(l),v.commands.newlineAndIndent(e)),o.ch=Number.MAX_VALUE),r=o}else{i=e.getSelection();var h=vt(\"\",n.length);e.replaceSelections(h),r=Mt(n[0].head,n[0].anchor)}nt.registerController.pushText(t.registerName,\"change\",i,t.linewise,n.length>1),yt.enterInsertMode(e,{head:r},e.state.vim)},\"delete\":function(e,t,n){var r,i,s=e.state.vim;if(!s.visualBlock){var o=n[0].anchor,u=n[0].head;t.linewise&&u.line!=e.firstLine()&&o.line==e.lastLine()&&o.line==u.line-1&&(o.line==e.firstLine()?o.ch=0:o=E(o.line-1,Pt(e,o.line-1))),i=e.getRange(o,u),e.replaceRange(\"\",o,u),r=o,t.linewise&&(r=pt.moveToFirstNonWhiteSpaceCharacter(e,o))}else{i=e.getSelection();var a=vt(\"\",n.length);e.replaceSelections(a),r=n[0].anchor}return nt.registerController.pushText(t.registerName,\"delete\",i,t.linewise,s.visualBlock),wt(e,r)},indent:function(e,t,n){var r=e.state.vim,i=n[0].anchor.line,s=r.visualBlock?n[n.length-1].anchor.line:n[0].head.line,o=r.visualMode?t.repeat:1;t.linewise&&s--;for(var u=i;u<=s;u++)for(var a=0;a<o;a++)e.indentLine(u,t.indentRight);return pt.moveToFirstNonWhiteSpaceCharacter(e,n[0].anchor)},changeCase:function(e,t,n,r,i){var s=e.getSelections(),o=[],u=t.toLower;for(var a=0;a<s.length;a++){var f=s[a],l=\"\";if(u===!0)l=f.toLowerCase();else if(u===!1)l=f.toUpperCase();else for(var c=0;c<f.length;c++){var h=f.charAt(c);l+=X(h)?h.toLowerCase():h.toUpperCase()}o.push(l)}return e.replaceSelections(o),t.shouldMoveCursor?i:!e.state.vim.visualMode&&t.linewise&&n[0].anchor.line+1==n[0].head.line?pt.moveToFirstNonWhiteSpaceCharacter(e,r):t.linewise?r:Mt(n[0].anchor,n[0].head)},yank:function(e,t,n,r){var i=e.state.vim,s=e.getSelection(),o=i.visualMode?Mt(i.sel.anchor,i.sel.head,n[0].head,n[0].anchor):r;return nt.registerController.pushText(t.registerName,\"yank\",s,t.linewise,i.visualBlock),o}},yt={jumpListWalk:function(e,t,n){if(n.visualMode)return;var r=t.repeat,i=t.forward,s=nt.jumpList,o=s.move(e,i?r:-r),u=o?o.find():undefined;u=u?u:e.getCursor(),e.setCursor(u),e.ace.curOp.command.scrollIntoView=\"center-animate\"},scroll:function(e,t,n){if(n.visualMode)return;var r=t.repeat||1,i=e.defaultTextHeight(),s=e.getScrollInfo().top,o=i*r,u=t.forward?s+o:s-o,a=Lt(e.getCursor()),f=e.charCoords(a,\"local\");if(t.forward)u>f.top?(a.line+=(u-f.top)/i,a.line=Math.ceil(a.line),e.setCursor(a),f=e.charCoords(a,\"local\"),e.scrollTo(null,f.top)):e.scrollTo(null,u);else{var l=u+e.getScrollInfo().clientHeight;l<f.bottom?(a.line-=(f.bottom-l)/i,a.line=Math.floor(a.line),e.setCursor(a),f=e.charCoords(a,\"local\"),e.scrollTo(null,f.bottom-e.getScrollInfo().clientHeight)):e.scrollTo(null,u)}},scrollToCursor:function(e,t){var n=e.getCursor().line,r=e.charCoords(E(n,0),\"local\"),i=e.getScrollInfo().clientHeight,s=r.top,o=r.bottom-s;switch(t.position){case\"center\":s=s-i/2+o;break;case\"bottom\":s=s-i+o*1.4;break;case\"top\":s+=o*.4}e.scrollTo(null,s)},replayMacro:function(e,t,n){var r=t.selectedCharacter,i=t.repeat,s=nt.macroModeState;r==\"@\"&&(r=s.latestRegister);while(i--)zn(e,n,s,r)},enterMacroRecordMode:function(e,t){var n=nt.macroModeState,r=t.selectedCharacter;n.enterMacroRecordMode(e,r)},enterInsertMode:function(e,t,n){if(e.getOption(\"readOnly\"))return;n.insertMode=!0,n.insertModeRepeat=t&&t.repeat||1;var r=t?t.insertAt:null,i=n.sel,s=t.head||e.getCursor(\"head\"),o=e.listSelections().length;if(r==\"eol\")s=E(s.line,Pt(e,s.line));else if(r==\"charAfter\")s=St(s,0,1);else if(r==\"firstNonBlank\")s=pt.moveToFirstNonWhiteSpaceCharacter(e,s);else if(r==\"startOfSelectedArea\")n.visualBlock?(s=E(Math.min(i.head.line,i.anchor.line),Math.min(i.head.ch,i.anchor.ch)),o=Math.abs(i.head.line-i.anchor.line)+1):i.head.line<i.anchor.line?s=i.head:s=E(i.anchor.line,0);else if(r==\"endOfSelectedArea\")n.visualBlock?(s=E(Math.min(i.head.line,i.anchor.line),Math.max(i.head.ch+1,i.anchor.ch)),o=Math.abs(i.head.line-i.anchor.line)+1):i.head.line>=i.anchor.line?s=St(i.head,0,1):s=E(i.anchor.line,0);else if(r==\"inplace\"&&n.visualMode)return;e.setOption(\"keyMap\",\"vim-insert\"),e.setOption(\"disableInput\",!1),t&&t.replace?(e.toggleOverwrite(!0),e.setOption(\"keyMap\",\"vim-replace\"),v.signal(e,\"vim-mode-change\",{mode:\"replace\"})):(e.setOption(\"keyMap\",\"vim-insert\"),v.signal(e,\"vim-mode-change\",{mode:\"insert\"})),nt.macroModeState.isPlaying||(e.on(\"change\",$n),v.on(e.getInputField(),\"keydown\",Yn)),n.visualMode&&$t(e),It(e,s,o)},toggleVisualMode:function(e,t,n){var r=t.repeat,i=e.getCursor(),s;n.visualMode?n.visualLine^t.linewise||n.visualBlock^t.blockwise?(n.visualLine=!!t.linewise,n.visualBlock=!!t.blockwise,v.signal(e,\"vim-mode-change\",{mode:\"visual\",subMode:n.visualLine?\"linewise\":n.visualBlock?\"blockwise\":\"\"}),Wt(e)):$t(e):(n.visualMode=!0,n.visualLine=!!t.linewise,n.visualBlock=!!t.blockwise,s=wt(e,E(i.line,i.ch+r-1),!0),n.sel={anchor:i,head:s},v.signal(e,\"vim-mode-change\",{mode:\"visual\",subMode:n.visualLine?\"linewise\":n.visualBlock?\"blockwise\":\"\"}),Wt(e),an(e,n,\"<\",Mt(i,s)),an(e,n,\">\",_t(i,s)))},reselectLastSelection:function(e,t,n){var r=n.lastSelection;n.visualMode&&Ut(e,n);if(r){var i=r.anchorMark.find(),s=r.headMark.find();if(!i||!s)return;n.sel={anchor:i,head:s},n.visualMode=!0,n.visualLine=r.visualLine,n.visualBlock=r.visualBlock,Wt(e),an(e,n,\"<\",Mt(i,s)),an(e,n,\">\",_t(i,s)),v.signal(e,\"vim-mode-change\",{mode:\"visual\",subMode:n.visualLine?\"linewise\":n.visualBlock?\"blockwise\":\"\"})}},joinLines:function(e,t,n){var r,i;if(n.visualMode){r=e.getCursor(\"anchor\"),i=e.getCursor(\"head\");if(Ot(i,r)){var s=i;i=r,r=s}i.ch=Pt(e,i.line)-1}else{var o=Math.max(t.repeat,2);r=e.getCursor(),i=wt(e,E(r.line+o-1,Infinity))}var u=0;for(var a=r.line;a<i.line;a++){u=Pt(e,r.line);var s=E(r.line+1,Pt(e,r.line+1)),f=e.getRange(r,s);f=f.replace(/\\n\\s*/g,\" \"),e.replaceRange(f,r,s)}var l=E(r.line,u);n.visualMode&&$t(e,!1),e.setCursor(l)},newLineAndEnterInsertMode:function(e,t,n){n.insertMode=!0;var r=Lt(e.getCursor());if(r.line===e.firstLine()&&!t.after)e.replaceRange(\"\\n\",E(e.firstLine(),0)),e.setCursor(e.firstLine(),0);else{r.line=t.after?r.line:r.line-1,r.ch=Pt(e,r.line),e.setCursor(r);var i=v.commands.newlineAndIndentContinueComment||v.commands.newlineAndIndent;i(e)}this.enterInsertMode(e,{repeat:t.repeat},n)},paste:function(e,t,n){var r=Lt(e.getCursor()),i=nt.registerController.getRegister(t.registerName),s=i.toString();if(!s)return;if(t.matchIndent){var o=e.getOption(\"tabSize\"),u=function(e){var t=e.split(\"\t\").length-1,n=e.split(\" \").length-1;return t*o+n*1},a=e.getLine(e.getCursor().line),f=u(a.match(/^\\s*/)[0]),l=s.replace(/\\n$/,\"\"),c=s!==l,h=u(s.match(/^\\s*/)[0]),s=l.replace(/^\\s*/gm,function(t){var n=f+(u(t)-h);if(n<0)return\"\";if(e.getOption(\"indentWithTabs\")){var r=Math.floor(n/o);return Array(r+1).join(\"\t\")}return Array(n+1).join(\" \")});s+=c?\"\\n\":\"\"}if(t.repeat>1)var s=Array(t.repeat+1).join(s);var p=i.linewise,d=i.blockwise;if(p&&!d)n.visualMode?s=n.visualLine?s.slice(0,-1):\"\\n\"+s.slice(0,s.length-1)+\"\\n\":t.after?(s=\"\\n\"+s.slice(0,s.length-1),r.ch=Pt(e,r.line)):r.ch=0;else{if(d){s=s.split(\"\\n\");for(var v=0;v<s.length;v++)s[v]=s[v]==\"\"?\" \":s[v]}r.ch+=t.after?1:0}var m,g;if(n.visualMode){n.lastPastedText=s;var y,b=Rt(e,n),w=b[0],S=b[1],x=e.getSelection(),T=e.listSelections(),N=(new Array(T.length)).join(\"1\").split(\"1\");n.lastSelection&&(y=n.lastSelection.headMark.find()),nt.registerController.unnamedRegister.setText(x),d?(e.replaceSelections(N),S=E(w.line+s.length-1,w.ch),e.setCursor(w),Ft(e,S),e.replaceSelections(s),m=w):n.visualBlock?(e.replaceSelections(N),e.setCursor(w),e.replaceRange(s,w,w),m=w):(e.replaceRange(s,w,S),m=e.posFromIndex(e.indexFromPos(w)+s.length-1)),y&&(n.lastSelection.headMark=e.setBookmark(y)),p&&(m.ch=0)}else if(d){e.setCursor(r);for(var v=0;v<s.length;v++){var C=r.line+v;C>e.lastLine()&&e.replaceRange(\"\\n\",E(C,0));var k=Pt(e,C);k<r.ch&&jt(e,C,r.ch)}e.setCursor(r),Ft(e,E(r.line+s.length-1,r.ch)),e.replaceSelections(s),m=r}else e.replaceRange(s,r),p&&t.after?m=E(r.line+1,Qt(e.getLine(r.line+1))):p&&!t.after?m=E(r.line,Qt(e.getLine(r.line))):!p&&t.after?(g=e.indexFromPos(r),m=e.posFromIndex(g+s.length-1)):(g=e.indexFromPos(r),m=e.posFromIndex(g+s.length));n.visualMode&&$t(e,!1),e.setCursor(m)},undo:function(e,t){e.operation(function(){kt(e,v.commands.undo,t.repeat)(),e.setCursor(e.getCursor(\"anchor\"))})},redo:function(e,t){kt(e,v.commands.redo,t.repeat)()},setRegister:function(e,t,n){n.inputState.registerName=t.selectedCharacter},setMark:function(e,t,n){var r=t.selectedCharacter;an(e,n,r,e.getCursor())},replace:function(e,t,n){var r=t.selectedCharacter,i=e.getCursor(),s,o,u=e.listSelections();if(n.visualMode)i=e.getCursor(\"start\"),o=e.getCursor(\"end\");else{var a=e.getLine(i.line);s=i.ch+t.repeat,s>a.length&&(s=a.length),o=E(i.line,s)}if(r==\"\\n\")n.visualMode||e.replaceRange(\"\",i,o),(v.commands.newlineAndIndentContinueComment||v.commands.newlineAndIndent)(e);else{var f=e.getRange(i,o);f=f.replace(/[^\\n]/g,r);if(n.visualBlock){var l=(new Array(e.getOption(\"tabSize\")+1)).join(\" \");f=e.getSelection(),f=f.replace(/\\t/g,l).replace(/[^\\n]/g,r).split(\"\\n\"),e.replaceSelections(f)}else e.replaceRange(f,i,o);n.visualMode?(i=Ot(u[0].anchor,u[0].head)?u[0].anchor:u[0].head,e.setCursor(i),$t(e,!1)):e.setCursor(St(o,0,-1))}},incrementNumberToken:function(e,t){var n=e.getCursor(),r=e.getLine(n.line),i=/-?\\d+/g,s,o,u,a,f;while((s=i.exec(r))!==null){f=s[0],o=s.index,u=o+f.length;if(n.ch<u)break}if(!t.backtrack&&u<=n.ch)return;if(!f)return;var l=t.increase?1:-1,c=parseInt(f)+l*t.repeat,h=E(n.line,o),p=E(n.line,u);a=c.toString(),e.replaceRange(a,h,p),e.setCursor(E(n.line,o+a.length-1))},repeatLastEdit:function(e,t,n){var r=n.lastEditInputState;if(!r)return;var i=t.repeat;i&&t.repeatIsExplicit?n.lastEditInputState.repeatOverride=i:i=n.lastEditInputState.repeatOverride||i,Zn(e,n,i,!1)},exitInsertMode:qn},en={\"(\":\"bracket\",\")\":\"bracket\",\"{\":\"bracket\",\"}\":\"bracket\",\"[\":\"section\",\"]\":\"section\",\"*\":\"comment\",\"/\":\"comment\",m:\"method\",M:\"method\",\"#\":\"preprocess\"},tn={bracket:{isComplete:function(e){if(e.nextCh===e.symb){e.depth++;if(e.depth>=1)return!0}else e.nextCh===e.reverseSymb&&e.depth--;return!1}},section:{init:function(e){e.curMoveThrough=!0,e.symb=(e.forward?\"]\":\"[\")===e.symb?\"{\":\"}\"},isComplete:function(e){return e.index===0&&e.nextCh===e.symb}},comment:{isComplete:function(e){var t=e.lastCh===\"*\"&&e.nextCh===\"/\";return e.lastCh=e.nextCh,t}},method:{init:function(e){e.symb=e.symb===\"m\"?\"{\":\"}\",e.reverseSymb=e.symb===\"{\"?\"}\":\"{\"},isComplete:function(e){return e.nextCh===e.symb?!0:!1}},preprocess:{init:function(e){e.index=0},isComplete:function(e){if(e.nextCh===\"#\"){var t=e.lineText.match(/#(\\w+)/)[1];if(t===\"endif\"){if(e.forward&&e.depth===0)return!0;e.depth++}else if(t===\"if\"){if(!e.forward&&e.depth===0)return!0;e.depth--}if(t===\"else\"&&e.depth===0)return!0}return!1}}};K(\"pcre\",!0,\"boolean\"),pn.prototype={getQuery:function(){return nt.query},setQuery:function(e){nt.query=e},getOverlay:function(){return this.searchOverlay},setOverlay:function(e){this.searchOverlay=e},isReversed:function(){return nt.isReversed},setReversed:function(e){nt.isReversed=e},getScrollbarAnnotate:function(){return this.annotate},setScrollbarAnnotate:function(e){this.annotate=e}};var bn={\"\\\\n\":\"\\n\",\"\\\\r\":\"\\r\",\"\\\\t\":\"\t\"},En={\"\\\\/\":\"/\",\"\\\\\\\\\":\"\\\\\",\"\\\\n\":\"\\n\",\"\\\\r\":\"\\r\",\"\\\\t\":\"\t\"},Cn=\"(Javascript regexp)\",Bn=function(){this.buildCommandMap_()};Bn.prototype={processCommand:function(e,t,n){var r=this;e.operation(function(){e.curOp.isVimOp=!0,r._processCommand(e,t,n)})},_processCommand:function(e,t,n){var r=e.state.vim,i=nt.registerController.getRegister(\":\"),s=i.toString();r.visualMode&&$t(e);var o=new v.StringStream(t);i.setText(t);var u=n||{};u.input=t;try{this.parseInput_(e,o,u)}catch(a){throw Tn(e,a),a}var f,l;if(!u.commandName)u.line!==undefined&&(l=\"move\");else{f=this.matchCommand_(u.commandName);if(f){l=f.name,f.excludeFromCommandHistory&&i.setText(s),this.parseCommandArgs_(o,u,f);if(f.type==\"exToKey\"){for(var c=0;c<f.toKeys.length;c++)v.Vim.handleKey(e,f.toKeys[c],\"mapping\");return}if(f.type==\"exToEx\"){this.processCommand(e,f.toInput);return}}}if(!l){Tn(e,'Not an editor command \":'+t+'\"');return}try{jn[l](e,u),(!f||!f.possiblyAsync)&&u.callback&&u.callback()}catch(a){throw Tn(e,a),a}},parseInput_:function(e,t,n){t.eatWhile(\":\"),t.eat(\"%\")?(n.line=e.firstLine(),n.lineEnd=e.lastLine()):(n.line=this.parseLineSpec_(e,t),n.line!==undefined&&t.eat(\",\")&&(n.lineEnd=this.parseLineSpec_(e,t)));var r=t.match(/^(\\w+)/);return r?n.commandName=r[1]:n.commandName=t.match(/.*/)[0],n},parseLineSpec_:function(e,t){var n=t.match(/^(\\d+)/);if(n)return parseInt(n[1],10)-1;switch(t.next()){case\".\":return e.getCursor().line;case\"$\":return e.lastLine();case\"'\":var r=e.state.vim.marks[t.next()];if(r&&r.find())return r.find().line;throw new Error(\"Mark not set\");default:return t.backUp(1),undefined}},parseCommandArgs_:function(e,t,n){if(e.eol())return;t.argString=e.match(/.*/)[0];var r=n.argDelimiter||/\\s+/,i=Ht(t.argString).split(r);i.length&&i[0]&&(t.args=i)},matchCommand_:function(e){for(var t=e.length;t>0;t--){var n=e.substring(0,t);if(this.commandMap_[n]){var r=this.commandMap_[n];if(r.name.indexOf(e)===0)return r}}return null},buildCommandMap_:function(){this.commandMap_={};for(var e=0;e<w.length;e++){var t=w[e],n=t.shortName||t.name;this.commandMap_[n]=t}},map:function(e,t,n){if(e!=\":\"&&e.charAt(0)==\":\"){if(n)throw Error(\"Mode not supported for ex mappings\");var r=e.substring(1);t!=\":\"&&t.charAt(0)==\":\"?this.commandMap_[r]={name:r,type:\"exToEx\",toInput:t.substring(1),user:!0}:this.commandMap_[r]={name:r,type:\"exToKey\",toKeys:t,user:!0}}else if(t!=\":\"&&t.charAt(0)==\":\"){var i={keys:e,type:\"keyToEx\",exArgs:{input:t.substring(1)},user:!0};n&&(i.context=n),b.unshift(i)}else{var i={keys:e,type:\"keyToKey\",toKeys:t,user:!0};n&&(i.context=n),b.unshift(i)}},unmap:function(e,t){if(e!=\":\"&&e.charAt(0)==\":\"){if(t)throw Error(\"Mode not supported for ex mappings\");var n=e.substring(1);if(this.commandMap_[n]&&this.commandMap_[n].user){delete this.commandMap_[n];return}}else{var r=e;for(var i=0;i<b.length;i++)if(r==b[i].keys&&b[i].context===t&&b[i].user){b.splice(i,1);return}}throw Error(\"No such mapping.\")}};var jn={colorscheme:function(e,t){if(!t.args||t.args.length<1){Tn(e,e.getOption(\"theme\"));return}e.setOption(\"theme\",t.args[0])},map:function(e,t,n){var r=t.args;if(!r||r.length<2){e&&Tn(e,\"Invalid mapping: \"+t.input);return}Fn.map(r[0],r[1],n)},imap:function(e,t){this.map(e,t,\"insert\")},nmap:function(e,t){this.map(e,t,\"normal\")},vmap:function(e,t){this.map(e,t,\"visual\")},unmap:function(e,t,n){var r=t.args;if(!r||r.length<1){e&&Tn(e,\"No such mapping: \"+t.input);return}Fn.unmap(r[0],n)},move:function(e,t){ht.processCommand(e,e.state.vim,{type:\"motion\",motion:\"moveToLineOrEdgeOfDocument\",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0},repeatOverride:t.line+1})},set:function(e,t){var n=t.args,r=t.setCfg||{};if(!n||n.length<1){e&&Tn(e,\"Invalid mapping: \"+t.input);return}var i=n[0].split(\"=\"),s=i[0],o=i[1],u=!1;if(s.charAt(s.length-1)==\"?\"){if(o)throw Error(\"Trailing characters: \"+t.argString);s=s.substring(0,s.length-1),u=!0}o===undefined&&s.substring(0,2)==\"no\"&&(s=s.substring(2),o=!1);var a=J[s]&&J[s].type==\"boolean\";a&&o==undefined&&(o=!0);if(!a&&o===undefined||u){var f=G(s,e,r);f===!0||f===!1?Tn(e,\" \"+(f?\"\":\"no\")+s):Tn(e,\"  \"+s+\"=\"+f)}else Q(s,o,e,r)},setlocal:function(e,t){t.setCfg={scope:\"local\"},this.set(e,t)},setglobal:function(e,t){t.setCfg={scope:\"global\"},this.set(e,t)},registers:function(e,t){var n=t.args,r=nt.registerController.registers,i=\"----------Registers----------<br><br>\";if(!n)for(var s in r){var o=r[s].toString();o.length&&(i+='\"'+s+\"    \"+o+\"<br>\")}else{var s;n=n.join(\"\");for(var u=0;u<n.length;u++){s=n.charAt(u);if(!nt.registerController.isValidRegister(s))continue;var a=r[s]||new at;i+='\"'+s+\"    \"+a.toString()+\"<br>\"}}Tn(e,i)},sort:function(e,t){function o(){if(t.argString){var e=new v.StringStream(t.argString);e.eat(\"!\")&&(n=!0);if(e.eol())return;if(!e.eatSpace())return\"Invalid arguments\";var o=e.match(/[a-z]+/);if(o){o=o[0],r=o.indexOf(\"i\")!=-1,i=o.indexOf(\"u\")!=-1;var u=o.indexOf(\"d\")!=-1&&1,a=o.indexOf(\"x\")!=-1&&1,f=o.indexOf(\"o\")!=-1&&1;if(u+a+f>1)return\"Invalid arguments\";s=u&&\"decimal\"||a&&\"hex\"||f&&\"octal\"}if(e.match(/\\/.*\\//))return\"patterns not supported\"}}function b(e,t){if(n){var i;i=e,e=t,t=i}r&&(e=e.toLowerCase(),t=t.toLowerCase());var o=s&&p.exec(e),u=s&&p.exec(t);return o?(o=parseInt((o[1]+o[2]).toLowerCase(),d),u=parseInt((u[1]+u[2]).toLowerCase(),d),o-u):e<t?-1:1}var n,r,i,s,u=o();if(u){Tn(e,u+\": \"+t.argString);return}var a=t.line||e.firstLine(),f=t.lineEnd||t.line||e.lastLine();if(a==f)return;var l=E(a,0),c=E(f,Pt(e,f)),h=e.getRange(l,c).split(\"\\n\"),p=s==\"decimal\"?/(-?)([\\d]+)/:s==\"hex\"?/(-?)(?:0x)?([0-9a-f]+)/i:s==\"octal\"?/([0-7]+)/:null,d=s==\"decimal\"?10:s==\"hex\"?16:s==\"octal\"?8:null,m=[],g=[];if(s)for(var y=0;y<h.length;y++)p.exec(h[y])?m.push(h[y]):g.push(h[y]);else g=h;m.sort(b),g.sort(b),h=n?m.concat(g):g.concat(m);if(i){var w=h,S;h=[];for(var y=0;y<w.length;y++)w[y]!=S&&h.push(w[y]),S=w[y]}e.replaceRange(h.join(\"\\n\"),l,c)},global:function(e,t){var n=t.argString;if(!n){Tn(e,\"Regular Expression missing from global\");return}var r=t.line!==undefined?t.line:e.firstLine(),i=t.lineEnd||t.line||e.lastLine(),s=mn(n),o=n,u;s.length&&(o=s[0],u=s.slice(1,s.length).join(\"/\"));if(o)try{An(e,o,!0,!0)}catch(a){Tn(e,\"Invalid regex: \"+o);return}var f=dn(e).getQuery(),l=[],c=\"\";for(var h=r;h<=i;h++){var p=f.test(e.getLine(h));p&&(l.push(h+1),c+=e.getLine(h)+\"<br>\")}if(!u){Tn(e,c);return}var d=0,v=function(){if(d<l.length){var t=l[d]+u;Fn.processCommand(e,t,{callback:v})}d++};v()},substitute:function(e,t){if(!e.getSearchCursor)throw new Error(\"Search feature not available. Requires searchcursor.js or any other getSearchCursor implementation.\");var n=t.argString,r=n?mn(n):[],i,s=\"\",o,u,a,f=!1,l=!1;if(r.length)i=r[0],s=r[1],s!==undefined&&(G(\"pcre\")?s=Sn(s):s=wn(s),nt.lastSubstituteReplacePart=s),o=r[2]?r[2].split(\" \"):[];else if(n&&n.length){Tn(e,\"Substitutions should be of the form :s/pattern/replace/\");return}o&&(u=o[0],a=parseInt(o[1]),u&&(u.indexOf(\"c\")!=-1&&(f=!0,u.replace(\"c\",\"\")),u.indexOf(\"g\")!=-1&&(l=!0,u.replace(\"g\",\"\")),i=i+\"/\"+u));if(i)try{An(e,i,!0,!0)}catch(c){Tn(e,\"Invalid regex: \"+i);return}s=s||nt.lastSubstituteReplacePart;if(s===undefined){Tn(e,\"No previous substitute regular expression\");return}var h=dn(e),p=h.getQuery(),d=t.line!==undefined?t.line:e.getCursor().line,v=t.lineEnd||d;d==e.firstLine()&&v==e.lastLine()&&(v=Infinity),a&&(d=v,v=d+a-1);var m=wt(e,E(d,0)),g=e.getSearchCursor(p,m);In(e,f,l,d,v,g,p,s,t.callback)},redo:v.commands.redo,undo:v.commands.undo,write:function(e){v.commands.save?v.commands.save(e):e.save()},nohlsearch:function(e){Dn(e)},delmarks:function(e,t){if(!t.argString||!Ht(t.argString)){Tn(e,\"Argument required\");return}var n=e.state.vim,r=new v.StringStream(Ht(t.argString));while(!r.eol()){r.eatSpace();var i=r.pos;if(!r.match(/[a-zA-Z]/,!1)){Tn(e,\"Invalid argument: \"+t.argString.substring(i));return}var s=r.next();if(r.match(\"-\",!0)){if(!r.match(/[a-zA-Z]/,!1)){Tn(e,\"Invalid argument: \"+t.argString.substring(i));return}var o=s,u=r.next();if(!(U(o)&&U(u)||X(o)&&X(u))){Tn(e,\"Invalid argument: \"+o+\"-\");return}var a=o.charCodeAt(0),f=u.charCodeAt(0);if(a>=f){Tn(e,\"Invalid argument: \"+t.argString.substring(i));return}for(var l=0;l<=f-a;l++){var c=String.fromCharCode(a+l);delete n.marks[c]}}else delete n.marks[s]}}},Fn=new Bn;v.keyMap.vim={attach:C,detach:N,call:k},K(\"insertModeEscKeysTimeout\",200,\"number\"),v.keyMap[\"vim-insert\"]={\"Ctrl-N\":\"autocomplete\",\"Ctrl-P\":\"autocomplete\",Enter:function(e){var t=v.commands.newlineAndIndentContinueComment||v.commands.newlineAndIndent;t(e)},fallthrough:[\"default\"],attach:C,detach:N,call:k},v.keyMap[\"vim-replace\"]={Backspace:\"goCharLeft\",fallthrough:[\"vim-insert\"],attach:C,detach:N,call:k},rt(),v.Vim=S(),S=v.Vim;var tr={\"return\":\"CR\",backspace:\"BS\",\"delete\":\"Del\",esc:\"Esc\",left:\"Left\",right:\"Right\",up:\"Up\",down:\"Down\",space:\"Space\",home:\"Home\",end:\"End\",pageup:\"PageUp\",pagedown:\"PageDown\",enter:\"CR\"},rr=S.handleKey.bind(S);S.handleKey=function(e,t,n){return e.operation(function(){return rr(e,t,n)},!0)},t.CodeMirror=v;var or=S.maybeInitVimState_;t.handler={$id:\"ace/keyboard/vim\",drawCursor:function(e,t,n,r,s){var o=this.state.vim||{},u=n.characterWidth,a=n.lineHeight,f=t.top,l=t.left;if(!o.insertMode){var c=r.cursor?i.comparePoints(r.cursor,r.start)<=0:s.selection.isBackwards()||s.selection.isEmpty();!c&&l>u&&(l-=u)}!o.insertMode&&o.status&&(a/=2,f+=a),e.left=l+\"px\",e.top=f+\"px\",e.width=u+\"px\",e.height=a+\"px\"},handleKeyboard:function(e,t,n,r,i){var s=e.editor,o=s.state.cm,u=or(o);if(r==-1)return;if(n==\"c\"&&t==1){if(!c.isMac&&s.getCopyText())return s.once(\"copy\",function(){s.selection.clearSelection()}),{command:\"null\",passEvent:!0}}else u.insertMode||c.isMac&&this.handleMacRepeat(e,t,n)&&(t=-1,n=e.inputChar);if(t==-1||t&1||t===0&&n.length>1){var a=u.insertMode,f=nr(t,n,i||{});u.status==null&&(u.status=\"\");var l=sr(o,f,\"user\");u=or(o),l&&u.status!=null?u.status+=f:u.status==null&&(u.status=\"\"),o._signal(\"changeStatus\");if(!l&&(t!=-1||a))return;return{command:\"null\",passEvent:!l}}},attach:function(e){e.state||(e.state={});var t=new v(e);e.state.cm=t,e.$vimModeHandler=this,v.keyMap.vim.attach(t),or(t).status=null,t.on(\"vim-command-done\",function(){if(t.virtualSelectionMode())return;or(t).status=null,t.ace._signal(\"changeStatus\"),t.ace.session.markUndoGroup()}),t.on(\"changeStatus\",function(){t.ace.renderer.updateCursor(),t.ace._signal(\"changeStatus\")}),t.on(\"vim-mode-change\",function(){if(t.virtualSelectionMode())return;t.ace.renderer.setStyle(\"normal-mode\",!or(t).insertMode),t._signal(\"changeStatus\")}),t.ace.renderer.setStyle(\"normal-mode\",!or(t).insertMode),e.renderer.$cursorLayer.drawCursor=this.drawCursor.bind(t),this.updateMacCompositionHandlers(e,!0)},detach:function(e){var t=e.state.cm;v.keyMap.vim.detach(t),t.destroy(),e.state.cm=null,e.$vimModeHandler=null,e.renderer.$cursorLayer.drawCursor=null,e.renderer.setStyle(\"normal-mode\",!1),this.updateMacCompositionHandlers(e,!1)},getStatusText:function(e){var t=e.state.cm,n=or(t);if(n.insertMode)return\"INSERT\";var r=\"\";return n.visualMode&&(r+=\"VISUAL\",n.visualLine&&(r+=\" LINE\"),n.visualBlock&&(r+=\" BLOCK\")),n.status&&(r+=(r?\" \":\"\")+n.status),r},handleMacRepeat:function(e,t,n){if(t==-1)e.inputChar=n,e.lastEvent=\"input\";else if(e.inputChar&&e.$lastHash==t&&e.$lastKey==n){if(e.lastEvent==\"input\")e.lastEvent=\"input1\";else if(e.lastEvent==\"input1\")return!0}else e.$lastHash=t,e.$lastKey=n,e.lastEvent=\"keypress\"},updateMacCompositionHandlers:function(e,t){var n=function(t){var n=e.state.cm,r=or(n);if(!r.insertMode){var i=this.textInput.getElement();i.blur(),i.focus(),i.value=t}else this.onCompositionUpdateOrig(t)},r=function(t){var n=e.state.cm,r=or(n);r.insertMode||this.onCompositionStartOrig(t)};t?e.onCompositionUpdateOrig||(e.onCompositionUpdateOrig=e.onCompositionUpdate,e.onCompositionUpdate=n,e.onCompositionStartOrig=e.onCompositionStart,e.onCompositionStart=r):e.onCompositionUpdateOrig&&(e.onCompositionUpdate=e.onCompositionUpdateOrig,e.onCompositionUpdateOrig=null,e.onCompositionStart=e.onCompositionStartOrig,e.onCompositionStartOrig=null)}};var ur={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?\"\\u00b7\":\"\"))+\"\"},getWidth:function(e,t,n){return e.getLength().toString().length*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on(\"changeSelection\",this.update)},detach:function(e){e.renderer.$gutterLayer.$renderer=null,e.off(\"changeSelection\",this.update)}};S.defineOption({name:\"wrap\",set:function(e,t){t&&t.ace.setOption(\"wrap\",e)},type:\"boolean\"},!1),S.defineEx(\"write\",\"w\",function(){console.log(\":write is not implemented\")}),b.push({keys:\"zc\",type:\"action\",action:\"fold\",actionArgs:{open:!1}},{keys:\"zC\",type:\"action\",action:\"fold\",actionArgs:{open:!1,all:!0}},{keys:\"zo\",type:\"action\",action:\"fold\",actionArgs:{open:!0}},{keys:\"zO\",type:\"action\",action:\"fold\",actionArgs:{open:!0,all:!0}},{keys:\"za\",type:\"action\",action:\"fold\",actionArgs:{toggle:!0}},{keys:\"zA\",type:\"action\",action:\"fold\",actionArgs:{toggle:!0,all:!0}},{keys:\"zf\",type:\"action\",action:\"fold\",actionArgs:{open:!0,all:!0}},{keys:\"zd\",type:\"action\",action:\"fold\",actionArgs:{open:!0,all:!0}},{keys:\"<C-A-k>\",type:\"action\",action:\"aceCommand\",actionArgs:{name:\"addCursorAbove\"}},{keys:\"<C-A-j>\",type:\"action\",action:\"aceCommand\",actionArgs:{name:\"addCursorBelow\"}},{keys:\"<C-A-S-k>\",type:\"action\",action:\"aceCommand\",actionArgs:{name:\"addCursorAboveSkipCurrent\"}},{keys:\"<C-A-S-j>\",type:\"action\",action:\"aceCommand\",actionArgs:{name:\"addCursorBelowSkipCurrent\"}},{keys:\"<C-A-h>\",type:\"action\",action:\"aceCommand\",actionArgs:{name:\"selectMoreBefore\"}},{keys:\"<C-A-l>\",type:\"action\",action:\"aceCommand\",actionArgs:{name:\"selectMoreAfter\"}},{keys:\"<C-A-S-h>\",type:\"action\",action:\"aceCommand\",actionArgs:{name:\"selectNextBefore\"}},{keys:\"<C-A-S-l>\",type:\"action\",action:\"aceCommand\",actionArgs:{name:\"selectNextAfter\"}}),yt.aceCommand=function(e,t,n){e.vimCmd=t,e.ace.inVirtualSelectionMode?e.ace.on(\"beforeEndOperation\",ar):ar(null,e.ace)},yt.fold=function(e,t,n){e.ace.execCommand([\"toggleFoldWidget\",\"toggleFoldWidget\",\"foldOther\",\"unfoldall\"][(t.all?2:0)+(t.open?1:0)])},t.handler.defaultKeymap=b,t.handler.actions=yt,t.Vim=S,S.map(\"Y\",\"yy\",\"normal\")})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-abap.js",
    "content": "ace.define(\"ace/mode/abap_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=this.createKeywordMapper({\"variable.language\":\"this\",keyword:\"ADD ALIAS ALIASES ASCENDING ASSERT ASSIGN ASSIGNING AT BACK CALL CASE CATCH CHECK CLASS CLEAR CLOSE CNT COLLECT COMMIT COMMUNICATION COMPUTE CONCATENATE CONDENSE CONSTANTS CONTINUE CONTROLS CONVERT CREATE CURRENCY DATA DEFINE DEFINITION DEFERRED DELETE DESCENDING DESCRIBE DETAIL DIVIDE DO ELSE ELSEIF ENDAT ENDCASE ENDCLASS ENDDO ENDEXEC ENDFORM ENDFUNCTION ENDIF ENDIFEND ENDINTERFACE ENDLOOP ENDMETHOD ENDMODULE ENDON ENDPROVIDE ENDSELECT ENDTRY ENDWHILE EVENT EVENTS EXEC EXIT EXPORT EXPORTING EXTRACT FETCH FIELDS FORM FORMAT FREE FROM FUNCTION GENERATE GET HIDE IF IMPORT IMPORTING INDEX INFOTYPES INITIALIZATION INTERFACE INTERFACES INPUT INSERT IMPLEMENTATION LEAVE LIKE LINE LOAD LOCAL LOOP MESSAGE METHOD METHODS MODIFY MODULE MOVE MULTIPLY ON OVERLAY OPTIONAL OTHERS PACK PARAMETERS PERFORM POSITION PROGRAM PROVIDE PUT RAISE RANGES READ RECEIVE RECEIVING REDEFINITION REFERENCE REFRESH REJECT REPLACE REPORT RESERVE RESTORE RETURN RETURNING ROLLBACK SCAN SCROLL SEARCH SELECT SET SHIFT SKIP SORT SORTED SPLIT STANDARD STATICS STEP STOP SUBMIT SUBTRACT SUM SUMMARY SUPPRESS TABLES TIMES TRANSFER TRANSLATE TRY TYPE TYPES UNASSIGN ULINE UNPACK UPDATE WHEN WHILE WINDOW WRITE OCCURS STRUCTURE OBJECT PROPERTY CASTING APPEND RAISING VALUE COLOR CHANGING EXCEPTION EXCEPTIONS DEFAULT CHECKBOX COMMENT ID NUMBER FOR TITLE OUTPUT WITH EXIT USING INTO WHERE GROUP BY HAVING ORDER BY SINGLE APPENDING CORRESPONDING FIELDS OF TABLE LEFT RIGHT OUTER INNER JOIN AS CLIENT SPECIFIED BYPASSING BUFFER UP TO ROWS CONNECTING EQ NE LT LE GT GE NOT AND OR XOR IN LIKE BETWEEN\",\"constant.language\":\"TRUE FALSE NULL SPACE\",\"support.type\":\"c n i p f d t x string xstring decfloat16 decfloat34\",\"keyword.operator\":\"abs sign ceil floor trunc frac acos asin atan cos sin tan abapOperator cosh sinh tanh exp log log10 sqrt strlen xstrlen charlen numofchar dbmaxlen lines\"},\"text\",!0,\" \"),t=\"WITH\\\\W+(?:HEADER\\\\W+LINE|FRAME|KEY)|NO\\\\W+STANDARD\\\\W+PAGE\\\\W+HEADING|EXIT\\\\W+FROM\\\\W+STEP\\\\W+LOOP|BEGIN\\\\W+OF\\\\W+(?:BLOCK|LINE)|BEGIN\\\\W+OF|END\\\\W+OF\\\\W+(?:BLOCK|LINE)|END\\\\W+OF|NO\\\\W+INTERVALS|RESPECTING\\\\W+BLANKS|SEPARATED\\\\W+BY|USING\\\\W+(?:EDIT\\\\W+MASK)|WHERE\\\\W+(?:LINE)|RADIOBUTTON\\\\W+GROUP|REF\\\\W+TO|(?:PUBLIC|PRIVATE|PROTECTED)(?:\\\\W+SECTION)?|DELETING\\\\W+(?:TRAILING|LEADING)(?:ALL\\\\W+OCCURRENCES)|(?:FIRST|LAST)\\\\W+OCCURRENCE|INHERITING\\\\W+FROM|LINE-COUNT|ADD-CORRESPONDING|AUTHORITY-CHECK|BREAK-POINT|CLASS-DATA|CLASS-METHODS|CLASS-METHOD|DIVIDE-CORRESPONDING|EDITOR-CALL|END-OF-DEFINITION|END-OF-PAGE|END-OF-SELECTION|FIELD-GROUPS|FIELD-SYMBOLS|FUNCTION-POOL|MOVE-CORRESPONDING|MULTIPLY-CORRESPONDING|NEW-LINE|NEW-PAGE|NEW-SECTION|PRINT-CONTROL|RP-PROVIDE-FROM-LAST|SELECT-OPTIONS|SELECTION-SCREEN|START-OF-SELECTION|SUBTRACT-CORRESPONDING|SYNTAX-CHECK|SYNTAX-TRACE|TOP-OF-PAGE|TYPE-POOL|TYPE-POOLS|LINE-SIZE|LINE-COUNT|MESSAGE-ID|DISPLAY-MODE|READ(?:-ONLY)?|IS\\\\W+(?:NOT\\\\W+)?(?:ASSIGNED|BOUND|INITIAL|SUPPLIED)\";this.$rules={start:[{token:\"string\",regex:\"`\",next:\"string\"},{token:\"string\",regex:\"'\",next:\"qstring\"},{token:\"doc.comment\",regex:/^\\*.+/},{token:\"comment\",regex:/\".+$/},{token:\"invalid\",regex:\"\\\\.{2,}\"},{token:\"keyword.operator\",regex:/\\W[\\-+\\%=<>*]\\W|\\*\\*|[~:,\\.&$]|->*?|=>/},{token:\"paren.lparen\",regex:\"[\\\\[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+\\\\b\"},{token:\"variable.parameter\",regex:/sy|pa?\\d\\d\\d\\d\\|t\\d\\d\\d\\.|innnn/},{token:\"keyword\",regex:t},{token:\"variable.parameter\",regex:/\\w+-\\w+(?:-\\w+)*/},{token:e,regex:\"\\\\b\\\\w+\\\\b\"},{caseInsensitive:!0}],qstring:[{token:\"constant.language.escape\",regex:\"''\"},{token:\"string\",regex:\"'\",next:\"start\"},{defaultToken:\"string\"}],string:[{token:\"constant.language.escape\",regex:\"``\"},{token:\"string\",regex:\"`\",next:\"start\"},{defaultToken:\"string\"}]}};r.inherits(s,i),t.AbapHighlightRules=s}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/abap\",[\"require\",\"exports\",\"module\",\"ace/mode/abap_highlight_rules\",\"ace/mode/folding/coffee\",\"ace/range\",\"ace/mode/text\",\"ace/lib/oop\"],function(e,t,n){\"use strict\";function a(){this.HighlightRules=r,this.foldingRules=new i}var r=e(\"./abap_highlight_rules\").AbapHighlightRules,i=e(\"./folding/coffee\").FoldMode,s=e(\"../range\").Range,o=e(\"./text\").Mode,u=e(\"../lib/oop\");u.inherits(a,o),function(){this.lineCommentStart='\"',this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);return r},this.$id=\"ace/mode/abap\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-abc.js",
    "content": "ace.define(\"ace/mode/abc_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:[\"zupfnoter.information.comment.line.percentage\",\"information.keyword\",\"in formation.keyword.embedded\"],regex:\"(%%%%)(hn\\\\.[a-z]*)(.*)\",comment:\"Instruction Comment\"},{token:[\"information.comment.line.percentage\",\"information.keyword.embedded\"],regex:\"(%%)(.*)\",comment:\"Instruction Comment\"},{token:\"comment.line.percentage\",regex:\"%.*\",comment:\"Comments\"},{token:\"barline.keyword.operator\",regex:\"[\\\\[:]*[|:][|\\\\]:]*(?:\\\\[?[0-9]+)?|\\\\[[0-9]+\",comment:\"Bar lines\"},{token:[\"information.keyword.embedded\",\"information.argument.string.unquoted\"],regex:\"(\\\\[[A-Za-z]:)([^\\\\]]*\\\\])\",comment:\"embedded Header lines\"},{token:[\"information.keyword\",\"information.argument.string.unquoted\"],regex:\"^([A-Za-z]:)([^%\\\\\\\\]*)\",comment:\"Header lines\"},{token:[\"text\",\"entity.name.function\",\"string.unquoted\",\"text\"],regex:\"(\\\\[)([A-Z]:)(.*?)(\\\\])\",comment:\"Inline fields\"},{token:[\"accent.constant.language\",\"pitch.constant.numeric\",\"duration.constant.numeric\"],regex:\"([\\\\^=_]*)([A-Ga-gz][,']*)([0-9]*/*[><0-9]*)\",comment:\"Notes\"},{token:\"zupfnoter.jumptarget.string.quoted\",regex:'[\\\\\"!]\\\\^\\\\:.*?[\\\\\"!]',comment:\"Zupfnoter jumptarget\"},{token:\"zupfnoter.goto.string.quoted\",regex:'[\\\\\"!]\\\\^\\\\@.*?[\\\\\"!]',comment:\"Zupfnoter goto\"},{token:\"zupfnoter.annotation.string.quoted\",regex:'[\\\\\"!]\\\\^\\\\!.*?[\\\\\"!]',comment:\"Zupfnoter annoation\"},{token:\"zupfnoter.annotationref.string.quoted\",regex:'[\\\\\"!]\\\\^\\\\#.*?[\\\\\"!]',comment:\"Zupfnoter annotation reference\"},{token:\"chordname.string.quoted\",regex:'[\\\\\"!]\\\\^.*?[\\\\\"!]',comment:\"abc chord\"},{token:\"string.quoted\",regex:'[\\\\\"!].*?[\\\\\"!]',comment:\"abc annotation\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"abc\"],name:\"ABC\",scopeName:\"text.abcnotation\"},r.inherits(s,i),t.ABCHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/abc\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/abc_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./abc_highlight_rules\").ABCHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.$id=\"ace/mode/abc\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-actionscript.js",
    "content": "ace.define(\"ace/mode/actionscript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"support.class.actionscript.2\",regex:\"\\\\b(?:R(?:ecordset|DBMSResolver|adioButton(?:Group)?)|X(?:ML(?:Socket|Node|Connector)?|UpdateResolverDataHolder)|M(?:M(?:Save|Execute)|icrophoneMicrophone|o(?:use|vieClip(?:Loader)?)|e(?:nu(?:Bar)?|dia(?:Controller|Display|Playback))|ath)|B(?:yName|inding|utton)|S(?:haredObject|ystem|crollPane|t(?:yleSheet|age|ream)|ound|e(?:ndEvent|rviceObject)|OAPCall|lide)|N(?:umericStepper|et(?:stream|S(?:tream|ervices)|Connection|Debug(?:Config)?))|C(?:heckBox|o(?:ntextMenu(?:Item)?|okie|lor|m(?:ponentMixins|boBox))|ustomActions|lient|amera)|T(?:ypedValue|ext(?:Snapshot|Input|F(?:ield|ormat)|Area)|ree|AB)|Object|D(?:ownload|elta(?:Item|Packet)?|at(?:e(?:Chooser|Field)?|a(?:G(?:lue|rid)|Set|Type)))|U(?:RL|TC|IScrollBar)|P(?:opUpManager|endingCall|r(?:intJob|o(?:duct|gressBar)))|E(?:ndPoint|rror)|Video|Key|F(?:RadioButton|GridColumn|MessageBox|BarChart|S(?:croll(?:Bar|Pane)|tyleFormat|plitView)|orm|C(?:heckbox|omboBox|alendar)|unction|T(?:icker|ooltip(?:Lite)?|ree(?:Node)?)|IconButton|D(?:ataGrid|raggablePane)|P(?:ieChart|ushButton|ro(?:gressBar|mptBox))|L(?:i(?:stBox|neChart)|oadingBox)|AdvancedMessageBox)|W(?:indow|SDLURL|ebService(?:Connector)?)|L(?:ist|o(?:calConnection|ad(?:er|Vars)|g)|a(?:unch|bel))|A(?:sBroadcaster|cc(?:ordion|essibility)|S(?:Set(?:Native|PropFlags)|N(?:ew|ative)|C(?:onstructor|lamp(?:2)?)|InstanceOf)|pplication|lert|rray))\\\\b\"},{token:\"support.function.actionscript.2\",regex:\"\\\\b(?:s(?:h(?:ift|ow(?:GridLines|Menu|Border|Settings|Headers|ColumnHeaders|Today|Preferences)?|ad(?:ow|ePane))|c(?:hema|ale(?:X|Mode|Y|Content)|r(?:oll(?:Track|Drag)?|een(?:Resolution|Color|DPI)))|t(?:yleSheet|op(?:Drag|A(?:nimation|llSounds|gent))?|epSize|a(?:tus|rt(?:Drag|A(?:nimation|gent))?))|i(?:n|ze|lence(?:TimeOut|Level))|o(?:ngname|urce|rt(?:Items(?:By)?|On(?:HeaderRelease)?|able(?:Columns)?)?)|u(?:ppressInvalidCalls|bstr(?:ing)?)|p(?:li(?:ce|t)|aceCol(?:umnsEqually|lumnsEqually))|e(?:nd(?:DefaultPushButtonEvent|AndLoad)?|curity|t(?:R(?:GB|o(?:otNode|w(?:Height|Count))|esizable(?:Columns)?|a(?:nge|te))|G(?:ain|roupName)|X(?:AxisTitle)?|M(?:i(?:n(?:imum|utes)|lliseconds)|o(?:nth(?:Names)?|tionLevel|de)|ultilineMode|e(?:ssage|nu(?:ItemEnabled(?:At)?|EnabledAt)|dia)|a(?:sk|ximum))|B(?:u(?:tton(?:s|Width)|fferTime)|a(?:seTabIndex|ndwidthLimit|ckground))|S(?:howAsDisabled|croll(?:ing|Speed|Content|Target|P(?:osition|roperties)|barState|Location)|t(?:yle(?:Property)?|opOnFocus|at(?:us|e))|i(?:ze|lenceLevel)|ort(?:able(?:Columns)?|Function)|p(?:litterBarPosition|acing)|e(?:conds|lect(?:Multiple|ion(?:Required|Type)?|Style|Color|ed(?:Node(?:s)?|Cell|I(?:nd(?:ices|ex)|tem(?:s)?))?|able))|kin|m(?:oothness|allScroll))|H(?:ighlight(?:s|Color)|Scroll|o(?:urs|rizontal)|eader(?:Symbol|Height|Text|Property|Format|Width|Location)?|as(?:Shader|CloseBox))|Y(?:ear|AxisTitle)?|N(?:ode(?:Properties|ExpansionHandler)|ewTextFormat)|C(?:h(?:ildNodes|a(?:ngeHandler|rt(?:Title|EventHandler)))|o(?:ntent(?:Size)?|okie|lumns)|ell(?:Symbol|Data)|l(?:i(?:ckHandler|pboard)|oseHandler)|redentials)|T(?:ype(?:dVaule)?|i(?:tle(?:barHeight)?|p(?:Target|Offset)?|me(?:out(?:Handler)?)?)|oggle|extFormat|ransform)|I(?:s(?:Branch|Open)|n(?:terval|putProperty)|con(?:SymbolName)?|te(?:rator|m(?:ByKey|Symbol)))|Orientation|D(?:i(?:splay(?:Range|Graphics|Mode|Clip|Text|edMonth)|rection)|uration|e(?:pth(?:Below|To|Above)|fault(?:GatewayURL|Mappings|NodeIconSymbolName)|l(?:iveryMode|ay)|bug(?:ID)?)|a(?:yOfWeekNames|t(?:e(?:Filter)?|a(?:Mapping(?:s)?|Item(?:Text|Property|Format)|Provider|All(?:Height|Property|Format|Width))?))|ra(?:wConnectors|gContent))|U(?:se(?:Shadow|HandCursor|EchoSuppression|rInput|Fade)|TC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear))|P(?:osition|ercentComplete|an(?:e(?:M(?:inimumSize|aximumSize)|Size|Title))?|ro(?:pert(?:y(?:Data)?|iesAt)|gress))|E(?:nabled|dit(?:Handler|able)|xpand(?:NodeTrigger|erSymbolName))|V(?:Scroll|olume|alue(?:Source)?)|KeyFrameInterval|Quality|F(?:i(?:eld|rst(?:DayOfWeek|VisibleNode))|ocus|ullYear|ps|ade(?:InLength|OutLength)|rame(?:Color|Width))|Width|L(?:ine(?:Color|Weight)|o(?:opback|adTarget)|a(?:rgeScroll|bel(?:Source|Placement)?))|A(?:s(?:Boolean|String|Number)|n(?:yTypedValue|imation)|ctiv(?:e(?:State(?:Handler)?|Handler)|ateHandler)|utoH(?:ideScrollBar|eight)))?|paratorBefore|ek|lect(?:ion(?:Disabled|Unfocused)?|ed(?:Node(?:s)?|Child|I(?:nd(?:ices|ex)|tem(?:s)?)|Dat(?:e|a))?|able(?:Ranges)?)|rver(?:String)?)|kip|qrt|wapDepths|lice|aveToSharedObj|moothing)|h(?:scroll(?:Policy)?|tml(?:Text)?|i(?:t(?:Test(?:TextNearPos)?|Area)|de(?:BuiltInItems|Child)?|ghlight(?:2D|3D)?)|orizontal|e(?:ight|ader(?:Re(?:nderer|lease)|Height|Text))|P(?:osition|ageScrollSize)|a(?:s(?:childNodes|MP3|S(?:creen(?:Broadcast|Playback)|treaming(?:Video|Audio)|ort)|Next|OwnProperty|Pr(?:inting|evious)|EmbeddedVideo|VideoEncoder|A(?:ccesibility|udio(?:Encoder)?))|ndlerName)|LineScrollSize)|ye(?:sLabel|ar)|n(?:o(?:t|de(?:Name|Close|Type|Open|Value)|Label)|u(?:llValue|mChild(?:S(?:creens|lides)|ren|Forms))|e(?:w(?:Item|line|Value|LocationDialog)|xt(?:S(?:cene|ibling|lide)|TabIndex|Value|Frame)?)?|ame(?:s)?)|c(?:h(?:ildNodes|eck|a(?:nge(?:sPending)?|r(?:CodeAt|At))|r)|o(?:s|n(?:st(?:ant|ructor)|nect|c(?:urrency|at)|t(?:ent(?:Type|Path)?|ains|rol(?:Placement|lerPolicy))|denseWhite|version)|py|l(?:or|umn(?:Stretch|Name(?:s)?|Count))|m(?:p(?:onent|lete)|ment))|u(?:stomItems|ePoint(?:s)?|r(?:veTo|Value|rent(?:Slide|ChildSlide|Item|F(?:ocused(?:S(?:creen|lide)|Form)|ps))))|e(?:il|ll(?:Renderer|Press|Edit|Focus(?:In|Out)))|l(?:i(?:ck|ents)|o(?:se(?:Button|Pane)?|ne(?:Node)?)|ear(?:S(?:haredObjects|treams)|Timeout|Interval)?)|a(?:ncelLabel|tch|p(?:tion|abilities)|l(?:cFields|l(?:e(?:e|r))?))|reate(?:GatewayConnection|Menu|Se(?:rver|gment)|C(?:hild(?:AtDepth)?|l(?:ient|ass(?:ChildAtDepth|Object(?:AtDepth)?))|all)|Text(?:Node|Field)|Item|Object(?:AtDepth)?|PopUp|E(?:lement|mptyMovieClip)))|t(?:h(?:is|row)|ype(?:of|Name)?|i(?:tle(?:StyleDeclaration)?|me(?:out)?)|o(?:talTime|String|olTipText|p|UpperCase|ggle(?:HighQuality)?|Lo(?:caleString|werCase))|e(?:st|llTarget|xt(?:RightMargin|Bold|S(?:ize|elected)|Height|Color|I(?:ndent|talic)|Disabled|Underline|F(?:ield|ont)|Width|LeftMargin|Align)?)|a(?:n|rget(?:Path)?|b(?:Stops|Children|Index|Enabled|leName))|r(?:y|igger|ac(?:e|k(?:AsMenu)?)))|i(?:s(?:Running|Branch|NaN|Con(?:soleOpen|nected)|Toggled|Installed|Open|D(?:own|ebugger)|P(?:urchased|ro(?:totypeOf|pertyEnumerable))|Empty|F(?:inite|ullyPopulated)|Local|Active)|n(?:s(?:tall|ertBefore)|cludeDeltaPacketInfo|t|it(?:ialize|Component|Pod|A(?:pplication|gent))?|de(?:nt|terminate|x(?:InParent(?:Slide|Form)?|Of)?)|put|validate|finity|LocalInternetCache)?|con(?:F(?:ield|unction))?|t(?:e(?:ratorScrolled|m(?:s|RollO(?:ut|ver)|ClassName))|alic)|d3|p|fFrameLoaded|gnore(?:Case|White))|o(?:s|n(?:R(?:ollO(?:ut|ver)|e(?:s(?:ize|ult)|l(?:ease(?:Outside)?|aseOutside)))|XML|Mouse(?:Move|Down|Up|Wheel)|S(?:ync|croller|tatus|oundComplete|e(?:tFocus|lect(?:edItem)?))|N(?:oticeEvent|etworkChange)|C(?:hanged|onnect|l(?:ipEvent|ose))|ID3|D(?:isconnect|eactivate|ata|ragO(?:ut|ver))|Un(?:install|load)|P(?:aymentResult|ress)|EnterFrame|K(?:illFocus|ey(?:Down|Up))|Fault|Lo(?:ad|g)|A(?:ctiv(?:ity|ate)|ppSt(?:op|art)))?|pe(?:n|ration)|verLayChildren|kLabel|ldValue|r(?:d)?)|d(?:i(?:s(?:connect|play(?:Normal|ed(?:Month|Year)|Full)|able(?:Shader|d(?:Ranges|Days)|CloseBox|Events))|rection)|o(?:cTypeDecl|tall|Decoding|main|LazyDecoding)|u(?:plicateMovieClip|ration)|e(?:stroy(?:ChildAt|Object)|code|fault(?:PushButton(?:Enabled)?|KeydownHandler)?|l(?:ta(?:Packet(?:Changed)?)?|ete(?:PopUp|All)?)|blocking)|a(?:shBoardSave|yNames|ta(?:Provider)?|rkshadow)|r(?:opdown(?:Width)?|a(?:w|gO(?:ut|ver))))|u(?:se(?:Sort|HandCursor|Codepage|EchoSuppression)|n(?:shift|install|derline|escape|format|watch|lo(?:ck|ad(?:Movie(?:Num)?)?))|pdate(?:Results|Mode|I(?:nputProperties|tem(?:ByIndex)?)|P(?:acket|roperties)|View|AfterEvent)|rl)|join|p(?:ixelAspectRatio|o(?:sition|p|w)|u(?:sh|rge|blish)|ercen(?:tComplete|Loaded)|lay(?:head(?:Change|Time)|ing|Hidden|erType)?|a(?:ssword|use|r(?:se(?:XML|CSS|Int|Float)|ent(?:Node|Is(?:S(?:creen|lide)|Form))|ams))|r(?:int(?:Num|AsBitmap(?:Num)?)?|o(?:to(?:type)?|pert(?:y|ies)|gress)|e(?:ss|v(?:ious(?:S(?:ibling|lide)|Value)?|Scene|Frame)|ferred(?:Height|Width))))|e(?:scape|n(?:code(?:r)?|ter(?:Frame)?|dFill|able(?:Shader|d|CloseBox|Events))|dit(?:able|Field|LocationDialog)|v(?:ent|al(?:uate)?)|q|x(?:tended|p|ec(?:ute)?|actSettings)|m(?:phasized(?:StyleDeclaration)?|bedFonts))|v(?:i(?:sible|ewPod)|ScrollPolicy|o(?:id|lume)|ersion|P(?:osition|ageScrollSize)|a(?:l(?:idat(?:ionError|e(?:Property|ActivationKey)?)|ue(?:Of)?)|riable)|LineScrollSize)|k(?:ind|ey(?:Down|Up|Press|FrameInterval))|q(?:sort|uality)|f(?:scommand|i(?:n(?:d(?:Text|First|Last)?|ally)|eldInfo|lter(?:ed|Func)?|rst(?:Slide|Child|DayOfWeek|VisibleNode)?)|o(?:nt|cus(?:In|edCell|Out|Enabled)|r(?:egroundDisabled|mat(?:ter)?))|unctionName|ps|l(?:oor|ush)|ace|romCharCode)|w(?:i(?:th|dth)|ordWrap|atch|riteAccess)|l(?:t|i(?:st(?:Owner)?|ne(?:Style|To))|o(?:c(?:k|a(?:t(?:ion|eByld)|l(?:ToGlobal|FileReadDisable)))|opback|ad(?:Movie(?:Num)?|S(?:crollContent|ound)|ed|Variables(?:Num)?|Application)?|g(?:Changes)?)|e(?:ngth|ft(?:Margin)?|ading)?|a(?:st(?:Slide|Child|Index(?:Of)?)?|nguage|b(?:el(?:Placement|F(?:ield|unction))?|leField)))|a(?:s(?:scociate(?:Controller|Display)|in|pectRatio|function)|nd|c(?:ceptConnection|tiv(?:ityLevel|ePlayControl)|os)|t(?:t(?:ach(?:Movie|Sound|Video|Audio)|ributes)|an(?:2)?)|dd(?:header|RequestHeader|Menu(?:Item(?:At)?|At)?|Sort|Header|No(?:tice|de(?:At)?)|C(?:olumn(?:At)?|uePoint)|T(?:oLocalInternetCache|reeNode(?:At)?)|I(?:con|tem(?:s(?:At)?|At)?)|DeltaItem|P(?:od|age|roperty)|EventListener|View|FieldInfo|Listener|Animation)?|uto(?:Size|Play|KeyNav|Load)|pp(?:endChild|ly(?:Changes|Updates)?)|vHardwareDisable|fterLoaded|l(?:ternateRowColors|ign|l(?:ow(?:InsecureDomain|Domain)|Transitions(?:InDone|OutDone))|bum)|r(?:tist|row|g(?:uments|List))|gent|bs)|r(?:ight(?:Margin)?|o(?:ot(?:S(?:creen|lide)|Form)|und|w(?:Height|Count)|llO(?:ut|ver))|e(?:s(?:yncDepth|t(?:orePane|artAnimation|rict)|iz(?:e|able(?:Columns)?)|olveDelta|ult(?:s)?|ponse)|c(?:o(?:ncile(?:Results|Updates)|rd)|eive(?:Video|Audio))|draw|jectConnection|place(?:Sel|ItemAt|AllItems)?|ve(?:al(?:Child)?|rse)|quest(?:SizeChange|Payment)?|f(?:errer|resh(?:ScrollContent|Destinations|Pane|FromSources)?)|lease(?:Outside)?|ad(?:Only|Access)|gister(?:SkinElement|C(?:olor(?:Style|Name)|lass)|InheritingStyle|Proxy)|move(?:Range|M(?:ovieClip|enu(?:Item(?:At)?|At))|Background|Sort|No(?:tice|de(?:sAt|At)?)|C(?:olum(?:nAt|At)|uePoints)|T(?:extField|reeNode(?:At)?)|Item(?:At)?|Pod|EventListener|FromLocalInternetCache|Listener|All(?:C(?:olumns|uePoints)|Items)?))|a(?:ndom|te|dioDot))|g(?:t|oto(?:Slide|NextSlide|PreviousSlide|FirstSlide|LastSlide|And(?:Stop|Play))|e(?:nre|t(?:R(?:GB|o(?:otNode|wCount)|e(?:sizable|mote))|X(?:AxisTitle)?|M(?:i(?:n(?:imum(?:Size)?|utes)|lliseconds)|onth(?:Names)?|ultilineMode|e(?:ssage|nu(?:ItemAt|EnabledAt|At))|aximum(?:Size)?)|B(?:ytes(?:Total|Loaded)|ounds|utton(?:s|Width)|eginIndex|a(?:ndwidthLimit|ckground))|S(?:howAsDisabled|croll(?:ing|Speed|Content|Position|barState|Location)|t(?:yle(?:Names)?|opOnFocus|ate)|ize|o(?:urce|rtState)|p(?:litterBarPosition|acing)|e(?:conds|lect(?:Multiple|ion(?:Required|Type)|Style|ed(?:Node(?:s)?|Cell|Text|I(?:nd(?:ices|ex)|tem(?:s)?))?)|rvice)|moothness|WFVersion)|H(?:ighlight(?:s|Color)|ours|e(?:ight|ader(?:Height|Text|Property|Format|Width|Location)?)|as(?:Shader|CloseBox))|Y(?:ear|AxisTitle)?|N(?:o(?:tices|de(?:DisplayedAt|At))|um(?:Children|berAvailable)|e(?:wTextFormat|xtHighestDepth))|C(?:h(?:ild(?:S(?:creen|lide)|Nodes|Form|At)|artTitle)|o(?:n(?:tent|figInfo)|okie|de|unt|lumn(?:Names|Count|Index|At))|uePoint|ellIndex|loseHandler|a(?:ll|retIndex))|T(?:ypedValue|i(?:tle(?:barHeight)?|p(?:Target|Offset)?|me(?:stamp|zoneOffset|out(?:State|Handler)|r)?)|oggle|ext(?:Extent|Format)?|r(?:ee(?:NodeAt|Length)|ans(?:form|actionId)))|I(?:s(?:Branch|Open)|n(?:stanceAtDepth|d(?:icesByKey|exByKey))|con(?:SymbolName)?|te(?:rator|m(?:sByKey|By(?:Name|Key)|id|ID|At))|d)|O(?:utput(?:Parameter(?:s|ByName)?|Value(?:s)?)|peration|ri(?:entation|ginalCellData))|D(?:i(?:s(?:play(?:Range|Mode|Clip|Index|edMonth)|kUsage)|rection)|uration|e(?:pth|faultNodeIconSymbolName|l(?:taPacket|ay)|bug(?:Config|ID)?)|a(?:y(?:OfWeekNames)?|t(?:e|a(?:Mapping(?:s)?|Item(?:Text|Property|Format)|Label|All(?:Height|Property|Format|Width))?))|rawConnectors)|U(?:se(?:Shadow|HandCursor|rInput|Fade)|RL|TC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear))|P(?:o(?:sition|ds)|ercentComplete|a(?:n(?:e(?:M(?:inimums|aximums)|Height|Title|Width))?|rentNode)|r(?:operty(?:Name|Data)?|efer(?:ences|red(?:Height|Width))))|E(?:n(?:dIndex|abled)|ditingData|x(?:panderSymbolName|andNodeTrigger))|V(?:iewed(?:Pods|Applications)|olume|ersion|alue(?:Source)?)|F(?:i(?:eld|rst(?:DayOfWeek|VisibleNode))|o(?:ntList|cus)|ullYear|ade(?:InLength|OutLength)|rame(?:Color|Width))|Width|L(?:ine(?:Color|Weight)|o(?:cal|adTarget)|ength|a(?:stTabIndex|bel(?:Source)?))|A(?:s(?:cii|Boolean|String|Number)|n(?:yTypedValue|imation)|ctiv(?:eState(?:Handler)?|ateHandler)|utoH(?:ideScrollBar|eight)|llItems|gent))?)?|lobal(?:StyleFormat|ToLocal)?|ain|roupName)|x(?:updatePackety|mlDecl)?|m(?:y(?:MethodName|Call)|in(?:imum)?|o(?:nthNames|tion(?:TimeOut|Level)|de(?:lChanged)?|use(?:Move|O(?:ut|ver)|Down(?:Somewhere|Outside)?|Up(?:Somewhere)?|WheelEnabled)|ve(?:To)?)|u(?:ted|lti(?:pleS(?:imultaneousAllowed|elections)|line))|e(?:ssage|nu(?:Show|Hide)?|th(?:od)?|diaType)|a(?:nufacturer|tch|x(?:scroll|hscroll|imum|HPosition|Chars|VPosition)?)|b(?:substring|chr|ord|length))|b(?:ytes(?:Total|Loaded)|indFormat(?:Strings|Function)|o(?:ttom(?:Scroll)?|ld|rder(?:Color)?)|u(?:tton(?:Height|Width)|iltInItems|ffer(?:Time|Length)|llet)|e(?:foreApplyUpdates|gin(?:GradientFill|Fill))|lockIndent|a(?:ndwidth|ckground(?:Style|Color|Disabled)?)|roadcastMessage)|onHTTPStatus)\\\\b\"},{token:\"support.constant.actionscript.2\",regex:\"\\\\b(?:__proto__|__resolve|_accProps|_alpha|_changed|_currentframe|_droptarget|_flash|_focusrect|_framesloaded|_global|_height|_highquality|_level|_listeners|_lockroot|_name|_parent|_quality|_root|_rotation|_soundbuftime|_target|_totalframes|_url|_visible|_width|_x|_xmouse|_xscale|_y|_ymouse|_yscale)\\\\b\"},{token:\"keyword.control.actionscript.2\",regex:\"\\\\b(?:dynamic|extends|import|implements|interface|public|private|new|static|super|var|for|in|break|continue|while|do|return|if|else|case|switch)\\\\b\"},{token:\"storage.type.actionscript.2\",regex:\"\\\\b(?:Boolean|Number|String|Void)\\\\b\"},{token:\"constant.language.actionscript.2\",regex:\"\\\\b(?:null|undefined|true|false)\\\\b\"},{token:\"constant.numeric.actionscript.2\",regex:\"\\\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\\\.?[0-9]*|\\\\.[0-9]+)(?:(?:e|E)(?:\\\\+|-)?[0-9]+)?)(?:L|l|UL|ul|u|U|F|f)?\\\\b\"},{token:\"punctuation.definition.string.begin.actionscript.2\",regex:'\"',push:[{token:\"punctuation.definition.string.end.actionscript.2\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.actionscript.2\",regex:\"\\\\\\\\.\"},{defaultToken:\"string.quoted.double.actionscript.2\"}]},{token:\"punctuation.definition.string.begin.actionscript.2\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.actionscript.2\",regex:\"'\",next:\"pop\"},{token:\"constant.character.escape.actionscript.2\",regex:\"\\\\\\\\.\"},{defaultToken:\"string.quoted.single.actionscript.2\"}]},{token:\"support.constant.actionscript.2\",regex:\"\\\\b(?:BACKSPACE|CAPSLOCK|CONTROL|DELETEKEY|DOWN|END|ENTER|HOME|INSERT|LEFT|LN10|LN2|LOG10E|LOG2E|MAX_VALUE|MIN_VALUE|NEGATIVE_INFINITY|NaN|PGDN|PGUP|PI|POSITIVE_INFINITY|RIGHT|SPACE|SQRT1_2|SQRT2|UP)\\\\b\"},{token:\"punctuation.definition.comment.actionscript.2\",regex:\"/\\\\*\",push:[{token:\"punctuation.definition.comment.actionscript.2\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.actionscript.2\"}]},{token:\"punctuation.definition.comment.actionscript.2\",regex:\"//.*$\",push_:[{token:\"comment.line.double-slash.actionscript.2\",regex:\"$\",next:\"pop\"},{defaultToken:\"comment.line.double-slash.actionscript.2\"}]},{token:\"keyword.operator.actionscript.2\",regex:\"\\\\binstanceof\\\\b\"},{token:\"keyword.operator.symbolic.actionscript.2\",regex:\"[-!%&*+=/?:]\"},{token:[\"meta.preprocessor.actionscript.2\",\"punctuation.definition.preprocessor.actionscript.2\",\"meta.preprocessor.actionscript.2\"],regex:\"^([ \\\\t]*)(#)([a-zA-Z]+)\"},{token:[\"storage.type.function.actionscript.2\",\"meta.function.actionscript.2\",\"entity.name.function.actionscript.2\",\"meta.function.actionscript.2\",\"punctuation.definition.parameters.begin.actionscript.2\"],regex:\"\\\\b(function)(\\\\s+)([a-zA-Z_]\\\\w*)(\\\\s*)(\\\\()\",push:[{token:\"punctuation.definition.parameters.end.actionscript.2\",regex:\"\\\\)\",next:\"pop\"},{token:\"variable.parameter.function.actionscript.2\",regex:\"[^,)$]+\"},{defaultToken:\"meta.function.actionscript.2\"}]},{token:[\"storage.type.class.actionscript.2\",\"meta.class.actionscript.2\",\"entity.name.type.class.actionscript.2\",\"meta.class.actionscript.2\",\"storage.modifier.extends.actionscript.2\",\"meta.class.actionscript.2\",\"entity.other.inherited-class.actionscript.2\"],regex:\"\\\\b(class)(\\\\s+)([a-zA-Z_](?:\\\\w|\\\\.)*)(?:(\\\\s+)(extends)(\\\\s+)([a-zA-Z_](?:\\\\w|\\\\.)*))?\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"as\"],keyEquivalent:\"^~A\",name:\"ActionScript\",scopeName:\"source.actionscript.2\"},r.inherits(s,i),t.ActionScriptHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/actionscript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/actionscript_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./actionscript_highlight_rules\").ActionScriptHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/actionscript\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-ada.js",
    "content": "ace.define(\"ace/mode/ada_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"abort|else|new|return|abs|elsif|not|reverse|abstract|end|null|accept|entry|select|access|exception|of|separate|aliased|exit|or|some|all|others|subtype|and|for|out|synchronized|array|function|overriding|at|tagged|generic|package|task|begin|goto|pragma|terminate|body|private|then|if|procedure|type|case|in|protected|constant|interface|until||is|raise|use|declare|range|delay|limited|record|when|delta|loop|rem|while|digits|renames|with|do|mod|requeue|xor\",t=\"true|false|null\",n=\"count|min|max|avg|sum|rank|now|coalesce|main\",r=this.createKeywordMapper({\"support.function\":n,keyword:e,\"constant.language\":t},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\"--.*$\"},{token:\"string\",regex:'\".*?\"'},{token:\"string\",regex:\"'.*?'\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"text\",regex:\"\\\\s+\"}]}};r.inherits(s,i),t.AdaHighlightRules=s}),ace.define(\"ace/mode/ada\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ada_highlight_rules\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./ada_highlight_rules\").AdaHighlightRules,o=e(\"../range\").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.$id=\"ace/mode/ada\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-apache_conf.js",
    "content": "ace.define(\"ace/mode/apache_conf_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:[\"punctuation.definition.comment.apacheconf\",\"comment.line.hash.ini\",\"comment.line.hash.ini\"],regex:\"^((?:\\\\s)*)(#)(.*$)\"},{token:[\"punctuation.definition.tag.apacheconf\",\"entity.tag.apacheconf\",\"text\",\"string.value.apacheconf\",\"punctuation.definition.tag.apacheconf\"],regex:\"(<)(Proxy|ProxyMatch|IfVersion|Directory|DirectoryMatch|Files|FilesMatch|IfDefine|IfModule|Limit|LimitExcept|Location|LocationMatch|VirtualHost)(?:(\\\\s)(.+?))?(>)\"},{token:[\"punctuation.definition.tag.apacheconf\",\"entity.tag.apacheconf\",\"punctuation.definition.tag.apacheconf\"],regex:\"(</)(Proxy|ProxyMatch|IfVersion|Directory|DirectoryMatch|Files|FilesMatch|IfDefine|IfModule|Limit|LimitExcept|Location|LocationMatch|VirtualHost)(>)\"},{token:[\"keyword.alias.apacheconf\",\"text\",\"string.regexp.apacheconf\",\"text\",\"string.replacement.apacheconf\",\"text\"],regex:\"(Rewrite(?:Rule|Cond))(\\\\s+)(.+?)(\\\\s+)(.+?)($|\\\\s)\"},{token:[\"keyword.alias.apacheconf\",\"text\",\"entity.status.apacheconf\",\"text\",\"string.regexp.apacheconf\",\"text\",\"string.path.apacheconf\",\"text\"],regex:\"(RedirectMatch)(?:(\\\\s+)(\\\\d\\\\d\\\\d|permanent|temp|seeother|gone))?(\\\\s+)(.+?)(\\\\s+)(?:(.+?)($|\\\\s))?\"},{token:[\"keyword.alias.apacheconf\",\"text\",\"entity.status.apacheconf\",\"text\",\"string.path.apacheconf\",\"text\",\"string.path.apacheconf\",\"text\"],regex:\"(Redirect)(?:(\\\\s+)(\\\\d\\\\d\\\\d|permanent|temp|seeother|gone))?(\\\\s+)(.+?)(\\\\s+)(?:(.+?)($|\\\\s))?\"},{token:[\"keyword.alias.apacheconf\",\"text\",\"string.regexp.apacheconf\",\"text\",\"string.path.apacheconf\",\"text\"],regex:\"(ScriptAliasMatch|AliasMatch)(\\\\s+)(.+?)(\\\\s+)(?:(.+?)(\\\\s))?\"},{token:[\"keyword.alias.apacheconf\",\"text\",\"string.path.apacheconf\",\"text\",\"string.path.apacheconf\",\"text\"],regex:\"(RedirectPermanent|RedirectTemp|ScriptAlias|Alias)(\\\\s+)(.+?)(\\\\s+)(?:(.+?)($|\\\\s))?\"},{token:\"keyword.core.apacheconf\",regex:\"\\\\b(?:AcceptPathInfo|AccessFileName|AddDefaultCharset|AddOutputFilterByType|AllowEncodedSlashes|AllowOverride|AuthName|AuthType|CGIMapExtension|ContentDigest|DefaultType|DocumentRoot|EnableMMAP|EnableSendfile|ErrorDocument|ErrorLog|FileETag|ForceType|HostnameLookups|IdentityCheck|Include|KeepAlive|KeepAliveTimeout|LimitInternalRecursion|LimitRequestBody|LimitRequestFields|LimitRequestFieldSize|LimitRequestLine|LimitXMLRequestBody|LogLevel|MaxKeepAliveRequests|NameVirtualHost|Options|Require|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScriptInterpreterSource|ServerAdmin|ServerAlias|ServerName|ServerPath|ServerRoot|ServerSignature|ServerTokens|SetHandler|SetInputFilter|SetOutputFilter|TimeOut|TraceEnable|UseCanonicalName)\\\\b\"},{token:\"keyword.mpm.apacheconf\",regex:\"\\\\b(?:AcceptMutex|AssignUserID|BS2000Account|ChildPerUserID|CoreDumpDirectory|EnableExceptionHook|Group|Listen|ListenBacklog|LockFile|MaxClients|MaxMemFree|MaxRequestsPerChild|MaxRequestsPerThread|MaxSpareServers|MaxSpareThreads|MaxThreads|MaxThreadsPerChild|MinSpareServers|MinSpareThreads|NumServers|PidFile|ReceiveBufferSize|ScoreBoardFile|SendBufferSize|ServerLimit|StartServers|StartThreads|ThreadLimit|ThreadsPerChild|ThreadStackSize|User|Win32DisableAcceptEx)\\\\b\"},{token:\"keyword.access.apacheconf\",regex:\"\\\\b(?:Allow|Deny|Order)\\\\b\"},{token:\"keyword.actions.apacheconf\",regex:\"\\\\b(?:Action|Script)\\\\b\"},{token:\"keyword.alias.apacheconf\",regex:\"\\\\b(?:Alias|AliasMatch|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ScriptAlias|ScriptAliasMatch)\\\\b\"},{token:\"keyword.auth.apacheconf\",regex:\"\\\\b(?:AuthAuthoritative|AuthGroupFile|AuthUserFile)\\\\b\"},{token:\"keyword.auth_anon.apacheconf\",regex:\"\\\\b(?:Anonymous|Anonymous_Authoritative|Anonymous_LogEmail|Anonymous_MustGiveEmail|Anonymous_NoUserID|Anonymous_VerifyEmail)\\\\b\"},{token:\"keyword.auth_dbm.apacheconf\",regex:\"\\\\b(?:AuthDBMAuthoritative|AuthDBMGroupFile|AuthDBMType|AuthDBMUserFile)\\\\b\"},{token:\"keyword.auth_digest.apacheconf\",regex:\"\\\\b(?:AuthDigestAlgorithm|AuthDigestDomain|AuthDigestFile|AuthDigestGroupFile|AuthDigestNcCheck|AuthDigestNonceFormat|AuthDigestNonceLifetime|AuthDigestQop|AuthDigestShmemSize)\\\\b\"},{token:\"keyword.auth_ldap.apacheconf\",regex:\"\\\\b(?:AuthLDAPAuthoritative|AuthLDAPBindDN|AuthLDAPBindPassword|AuthLDAPCharsetConfig|AuthLDAPCompareDNOnServer|AuthLDAPDereferenceAliases|AuthLDAPEnabled|AuthLDAPFrontPageHack|AuthLDAPGroupAttribute|AuthLDAPGroupAttributeIsDN|AuthLDAPRemoteUserIsDN|AuthLDAPUrl)\\\\b\"},{token:\"keyword.autoindex.apacheconf\",regex:\"\\\\b(?:AddAlt|AddAltByEncoding|AddAltByType|AddDescription|AddIcon|AddIconByEncoding|AddIconByType|DefaultIcon|HeaderName|IndexIgnore|IndexOptions|IndexOrderDefault|ReadmeName)\\\\b\"},{token:\"keyword.cache.apacheconf\",regex:\"\\\\b(?:CacheDefaultExpire|CacheDisable|CacheEnable|CacheForceCompletion|CacheIgnoreCacheControl|CacheIgnoreHeaders|CacheIgnoreNoLastMod|CacheLastModifiedFactor|CacheMaxExpire)\\\\b\"},{token:\"keyword.cern_meta.apacheconf\",regex:\"\\\\b(?:MetaDir|MetaFiles|MetaSuffix)\\\\b\"},{token:\"keyword.cgi.apacheconf\",regex:\"\\\\b(?:ScriptLog|ScriptLogBuffer|ScriptLogLength)\\\\b\"},{token:\"keyword.cgid.apacheconf\",regex:\"\\\\b(?:ScriptLog|ScriptLogBuffer|ScriptLogLength|ScriptSock)\\\\b\"},{token:\"keyword.charset_lite.apacheconf\",regex:\"\\\\b(?:CharsetDefault|CharsetOptions|CharsetSourceEnc)\\\\b\"},{token:\"keyword.dav.apacheconf\",regex:\"\\\\b(?:Dav|DavDepthInfinity|DavMinTimeout|DavLockDB)\\\\b\"},{token:\"keyword.deflate.apacheconf\",regex:\"\\\\b(?:DeflateBufferSize|DeflateCompressionLevel|DeflateFilterNote|DeflateMemLevel|DeflateWindowSize)\\\\b\"},{token:\"keyword.dir.apacheconf\",regex:\"\\\\b(?:DirectoryIndex|DirectorySlash)\\\\b\"},{token:\"keyword.disk_cache.apacheconf\",regex:\"\\\\b(?:CacheDirLength|CacheDirLevels|CacheExpiryCheck|CacheGcClean|CacheGcDaily|CacheGcInterval|CacheGcMemUsage|CacheGcUnused|CacheMaxFileSize|CacheMinFileSize|CacheRoot|CacheSize|CacheTimeMargin)\\\\b\"},{token:\"keyword.dumpio.apacheconf\",regex:\"\\\\b(?:DumpIOInput|DumpIOOutput)\\\\b\"},{token:\"keyword.env.apacheconf\",regex:\"\\\\b(?:PassEnv|SetEnv|UnsetEnv)\\\\b\"},{token:\"keyword.expires.apacheconf\",regex:\"\\\\b(?:ExpiresActive|ExpiresByType|ExpiresDefault)\\\\b\"},{token:\"keyword.ext_filter.apacheconf\",regex:\"\\\\b(?:ExtFilterDefine|ExtFilterOptions)\\\\b\"},{token:\"keyword.file_cache.apacheconf\",regex:\"\\\\b(?:CacheFile|MMapFile)\\\\b\"},{token:\"keyword.headers.apacheconf\",regex:\"\\\\b(?:Header|RequestHeader)\\\\b\"},{token:\"keyword.imap.apacheconf\",regex:\"\\\\b(?:ImapBase|ImapDefault|ImapMenu)\\\\b\"},{token:\"keyword.include.apacheconf\",regex:\"\\\\b(?:SSIEndTag|SSIErrorMsg|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|XBitHack)\\\\b\"},{token:\"keyword.isapi.apacheconf\",regex:\"\\\\b(?:ISAPIAppendLogToErrors|ISAPIAppendLogToQuery|ISAPICacheFile|ISAPIFakeAsync|ISAPILogNotSupported|ISAPIReadAheadBuffer)\\\\b\"},{token:\"keyword.ldap.apacheconf\",regex:\"\\\\b(?:LDAPCacheEntries|LDAPCacheTTL|LDAPConnectionTimeout|LDAPOpCacheEntries|LDAPOpCacheTTL|LDAPSharedCacheFile|LDAPSharedCacheSize|LDAPTrustedCA|LDAPTrustedCAType)\\\\b\"},{token:\"keyword.log.apacheconf\",regex:\"\\\\b(?:BufferedLogs|CookieLog|CustomLog|LogFormat|TransferLog|ForensicLog)\\\\b\"},{token:\"keyword.mem_cache.apacheconf\",regex:\"\\\\b(?:MCacheMaxObjectCount|MCacheMaxObjectSize|MCacheMaxStreamingBuffer|MCacheMinObjectSize|MCacheRemovalAlgorithm|MCacheSize)\\\\b\"},{token:\"keyword.mime.apacheconf\",regex:\"\\\\b(?:AddCharset|AddEncoding|AddHandler|AddInputFilter|AddLanguage|AddOutputFilter|AddType|DefaultLanguage|ModMimeUsePathInfo|MultiviewsMatch|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|TypesConfig)\\\\b\"},{token:\"keyword.misc.apacheconf\",regex:\"\\\\b(?:ProtocolEcho|Example|AddModuleInfo|MimeMagicFile|CheckSpelling|ExtendedStatus|SuexecUserGroup|UserDir)\\\\b\"},{token:\"keyword.negotiation.apacheconf\",regex:\"\\\\b(?:CacheNegotiatedDocs|ForceLanguagePriority|LanguagePriority)\\\\b\"},{token:\"keyword.nw_ssl.apacheconf\",regex:\"\\\\b(?:NWSSLTrustedCerts|NWSSLUpgradeable|SecureListen)\\\\b\"},{token:\"keyword.proxy.apacheconf\",regex:\"\\\\b(?:AllowCONNECT|NoProxy|ProxyBadHeader|ProxyBlock|ProxyDomain|ProxyErrorOverride|ProxyFtpDirCharset|ProxyIOBufferSize|ProxyMaxForwards|ProxyPass|ProxyPassReverse|ProxyPreserveHost|ProxyReceiveBufferSize|ProxyRemote|ProxyRemoteMatch|ProxyRequests|ProxyTimeout|ProxyVia)\\\\b\"},{token:\"keyword.rewrite.apacheconf\",regex:\"\\\\b(?:RewriteBase|RewriteCond|RewriteEngine|RewriteLock|RewriteLog|RewriteLogLevel|RewriteMap|RewriteOptions|RewriteRule)\\\\b\"},{token:\"keyword.setenvif.apacheconf\",regex:\"\\\\b(?:BrowserMatch|BrowserMatchNoCase|SetEnvIf|SetEnvIfNoCase)\\\\b\"},{token:\"keyword.so.apacheconf\",regex:\"\\\\b(?:LoadFile|LoadModule)\\\\b\"},{token:\"keyword.ssl.apacheconf\",regex:\"\\\\b(?:SSLCACertificateFile|SSLCACertificatePath|SSLCARevocationFile|SSLCARevocationPath|SSLCertificateChainFile|SSLCertificateFile|SSLCertificateKeyFile|SSLCipherSuite|SSLEngine|SSLMutex|SSLOptions|SSLPassPhraseDialog|SSLProtocol|SSLProxyCACertificateFile|SSLProxyCACertificatePath|SSLProxyCARevocationFile|SSLProxyCARevocationPath|SSLProxyCipherSuite|SSLProxyEngine|SSLProxyMachineCertificateFile|SSLProxyMachineCertificatePath|SSLProxyProtocol|SSLProxyVerify|SSLProxyVerifyDepth|SSLRandomSeed|SSLRequire|SSLRequireSSL|SSLSessionCache|SSLSessionCacheTimeout|SSLUserName|SSLVerifyClient|SSLVerifyDepth)\\\\b\"},{token:\"keyword.usertrack.apacheconf\",regex:\"\\\\b(?:CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking)\\\\b\"},{token:\"keyword.vhost_alias.apacheconf\",regex:\"\\\\b(?:VirtualDocumentRoot|VirtualDocumentRootIP|VirtualScriptAlias|VirtualScriptAliasIP)\\\\b\"},{token:[\"keyword.php.apacheconf\",\"text\",\"entity.property.apacheconf\",\"text\",\"string.value.apacheconf\",\"text\"],regex:\"\\\\b(php_value|php_flag)\\\\b(?:(\\\\s+)(.+?)(?:(\\\\s+)(.+?))?)?(\\\\s)\"},{token:[\"punctuation.variable.apacheconf\",\"variable.env.apacheconf\",\"variable.misc.apacheconf\",\"punctuation.variable.apacheconf\"],regex:\"(%\\\\{)(?:(HTTP_USER_AGENT|HTTP_REFERER|HTTP_COOKIE|HTTP_FORWARDED|HTTP_HOST|HTTP_PROXY_CONNECTION|HTTP_ACCEPT|REMOTE_ADDR|REMOTE_HOST|REMOTE_PORT|REMOTE_USER|REMOTE_IDENT|REQUEST_METHOD|SCRIPT_FILENAME|PATH_INFO|QUERY_STRING|AUTH_TYPE|DOCUMENT_ROOT|SERVER_ADMIN|SERVER_NAME|SERVER_ADDR|SERVER_PORT|SERVER_PROTOCOL|SERVER_SOFTWARE|TIME_YEAR|TIME_MON|TIME_DAY|TIME_HOUR|TIME_MIN|TIME_SEC|TIME_WDAY|TIME|API_VERSION|THE_REQUEST|REQUEST_URI|REQUEST_FILENAME|IS_SUBREQ|HTTPS)|(.*?))(\\\\})\"},{token:[\"entity.mime-type.apacheconf\",\"text\"],regex:\"\\\\b((?:text|image|application|video|audio)/.+?)(\\\\s)\"},{token:\"entity.helper.apacheconf\",regex:\"\\\\b(?:from|unset|set|on|off)\\\\b\",caseInsensitive:!0},{token:\"constant.integer.apacheconf\",regex:\"\\\\b\\\\d+\\\\b\"},{token:[\"text\",\"punctuation.definition.flag.apacheconf\",\"string.flag.apacheconf\",\"punctuation.definition.flag.apacheconf\",\"text\"],regex:\"(\\\\s)(\\\\[)(.*?)(\\\\])(\\\\s)\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"conf\",\"CONF\",\"htaccess\",\"HTACCESS\",\"htgroups\",\"HTGROUPS\",\"htpasswd\",\"HTPASSWD\",\".htaccess\",\".HTACCESS\",\".htgroups\",\".HTGROUPS\",\".htpasswd\",\".HTPASSWD\"],name:\"Apache Conf\",scopeName:\"source.apacheconf\"},r.inherits(s,i),t.ApacheConfHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/apache_conf\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/apache_conf_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./apache_conf_highlight_rules\").ApacheConfHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"#\",this.$id=\"ace/mode/apache_conf\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-applescript.js",
    "content": "ace.define(\"ace/mode/applescript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"about|above|after|against|and|around|as|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|contain|contains|continue|copy|div|does|eighth|else|end|equal|equals|error|every|exit|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|into|is|it|its|last|local|me|middle|mod|my|ninth|not|of|on|onto|or|over|prop|property|put|ref|reference|repeat|returning|script|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|try|until|where|while|whose|with|without\",t=\"AppleScript|false|linefeed|return|pi|quote|result|space|tab|true\",n=\"activate|beep|count|delay|launch|log|offset|read|round|run|say|summarize|write\",r=\"alias|application|boolean|class|constant|date|file|integer|list|number|real|record|string|text|character|characters|contents|day|frontmost|id|item|length|month|name|paragraph|paragraphs|rest|reverse|running|time|version|weekday|word|words|year\",i=this.createKeywordMapper({\"support.function\":n,\"constant.language\":t,\"support.type\":r,keyword:e},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"--.*$\"},{token:\"comment\",regex:\"\\\\(\\\\*\",next:\"comment\"},{token:\"string\",regex:'\".*?\"'},{token:\"support.type\",regex:\"\\\\b(POSIX file|POSIX path|(date|time) string|quoted form)\\\\b\"},{token:\"support.function\",regex:\"\\\\b(clipboard info|the clipboard|info for|list (disks|folder)|mount volume|path to|(close|open for) access|(get|set) eof|current date|do shell script|get volume settings|random number|set volume|system attribute|system info|time to GMT|(load|run|store) script|scripting components|ASCII (character|number)|localized string|choose (application|color|file|file name|folder|from list|remote application|URL)|display (alert|dialog))\\\\b|^\\\\s*return\\\\b\"},{token:\"constant.language\",regex:\"\\\\b(text item delimiters|current application|missing value)\\\\b\"},{token:\"keyword\",regex:\"\\\\b(apart from|aside from|instead of|out of|greater than|isn't|(doesn't|does not) (equal|come before|come after|contain)|(greater|less) than( or equal)?|(starts?|ends|begins?) with|contained by|comes (before|after)|a (ref|reference))\\\\b\"},{token:i,regex:\"[a-zA-Z][a-zA-Z0-9_]*\\\\b\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\)\",next:\"start\"},{defaultToken:\"comment\"}]},this.normalizeRules()};r.inherits(s,i),t.AppleScriptHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/applescript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/tokenizer\",\"ace/mode/applescript_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"../tokenizer\").Tokenizer,o=e(\"./applescript_highlight_rules\").AppleScriptHighlightRules,u=e(\"./folding/cstyle\").FoldMode,a=function(){this.HighlightRules=o,this.foldingRules=new u};r.inherits(a,i),function(){this.lineCommentStart=\"--\",this.blockComment={start:\"(*\",end:\"*)\"},this.$id=\"ace/mode/applescript\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-asciidoc.js",
    "content": "ace.define(\"ace/mode/asciidoc_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){function t(e){var t=/\\w/.test(e)?\"\\\\b\":\"(?:\\\\B|^)\";return t+e+\"[^\"+e+\"].*?\"+e+\"(?![\\\\w*])\"}var e=\"[a-zA-Z\\u00a1-\\uffff]+\\\\b\";this.$rules={start:[{token:\"empty\",regex:/$/},{token:\"literal\",regex:/^\\.{4,}\\s*$/,next:\"listingBlock\"},{token:\"literal\",regex:/^-{4,}\\s*$/,next:\"literalBlock\"},{token:\"string\",regex:/^\\+{4,}\\s*$/,next:\"passthroughBlock\"},{token:\"keyword\",regex:/^={4,}\\s*$/},{token:\"text\",regex:/^\\s*$/},{token:\"empty\",regex:\"\",next:\"dissallowDelimitedBlock\"}],dissallowDelimitedBlock:[{include:\"paragraphEnd\"},{token:\"comment\",regex:\"^//.+$\"},{token:\"keyword\",regex:\"^(?:NOTE|TIP|IMPORTANT|WARNING|CAUTION):\"},{include:\"listStart\"},{token:\"literal\",regex:/^\\s+.+$/,next:\"indentedBlock\"},{token:\"empty\",regex:\"\",next:\"text\"}],paragraphEnd:[{token:\"doc.comment\",regex:/^\\/{4,}\\s*$/,next:\"commentBlock\"},{token:\"tableBlock\",regex:/^\\s*[|!]=+\\s*$/,next:\"tableBlock\"},{token:\"keyword\",regex:/^(?:--|''')\\s*$/,next:\"start\"},{token:\"option\",regex:/^\\[.*\\]\\s*$/,next:\"start\"},{token:\"pageBreak\",regex:/^>{3,}$/,next:\"start\"},{token:\"literal\",regex:/^\\.{4,}\\s*$/,next:\"listingBlock\"},{token:\"titleUnderline\",regex:/^(?:={2,}|-{2,}|~{2,}|\\^{2,}|\\+{2,})\\s*$/,next:\"start\"},{token:\"singleLineTitle\",regex:/^={1,5}\\s+\\S.*$/,next:\"start\"},{token:\"otherBlock\",regex:/^(?:\\*{2,}|_{2,})\\s*$/,next:\"start\"},{token:\"optionalTitle\",regex:/^\\.[^.\\s].+$/,next:\"start\"}],listStart:[{token:\"keyword\",regex:/^\\s*(?:\\d+\\.|[a-zA-Z]\\.|[ixvmIXVM]+\\)|\\*{1,5}|-|\\.{1,5})\\s/,next:\"listText\"},{token:\"meta.tag\",regex:/^.+(?::{2,4}|;;)(?: |$)/,next:\"listText\"},{token:\"support.function.list.callout\",regex:/^(?:<\\d+>|\\d+>|>) /,next:\"text\"},{token:\"keyword\",regex:/^\\+\\s*$/,next:\"start\"}],text:[{token:[\"link\",\"variable.language\"],regex:/((?:https?:\\/\\/|ftp:\\/\\/|file:\\/\\/|mailto:|callto:)[^\\s\\[]+)(\\[.*?\\])/},{token:\"link\",regex:/(?:https?:\\/\\/|ftp:\\/\\/|file:\\/\\/|mailto:|callto:)[^\\s\\[]+/},{token:\"link\",regex:/\\b[\\w\\.\\/\\-]+@[\\w\\.\\/\\-]+\\b/},{include:\"macros\"},{include:\"paragraphEnd\"},{token:\"literal\",regex:/\\+{3,}/,next:\"smallPassthrough\"},{token:\"escape\",regex:/\\((?:C|TM|R)\\)|\\.{3}|->|<-|=>|<=|&#(?:\\d+|x[a-fA-F\\d]+);|(?: |^)--(?=\\s+\\S)/},{token:\"escape\",regex:/\\\\[_*'`+#]|\\\\{2}[_*'`+#]{2}/},{token:\"keyword\",regex:/\\s\\+$/},{token:\"text\",regex:e},{token:[\"keyword\",\"string\",\"keyword\"],regex:/(<<[\\w\\d\\-$]+,)(.*?)(>>|$)/},{token:\"keyword\",regex:/<<[\\w\\d\\-$]+,?|>>/},{token:\"constant.character\",regex:/\\({2,3}.*?\\){2,3}/},{token:\"keyword\",regex:/\\[\\[.+?\\]\\]/},{token:\"support\",regex:/^\\[{3}[\\w\\d =\\-]+\\]{3}/},{include:\"quotes\"},{token:\"empty\",regex:/^\\s*$/,next:\"start\"}],listText:[{include:\"listStart\"},{include:\"text\"}],indentedBlock:[{token:\"literal\",regex:/^[\\s\\w].+$/,next:\"indentedBlock\"},{token:\"literal\",regex:\"\",next:\"start\"}],listingBlock:[{token:\"literal\",regex:/^\\.{4,}\\s*$/,next:\"dissallowDelimitedBlock\"},{token:\"constant.numeric\",regex:\"<\\\\d+>\"},{token:\"literal\",regex:\"[^<]+\"},{token:\"literal\",regex:\"<\"}],literalBlock:[{token:\"literal\",regex:/^-{4,}\\s*$/,next:\"dissallowDelimitedBlock\"},{token:\"constant.numeric\",regex:\"<\\\\d+>\"},{token:\"literal\",regex:\"[^<]+\"},{token:\"literal\",regex:\"<\"}],passthroughBlock:[{token:\"literal\",regex:/^\\+{4,}\\s*$/,next:\"dissallowDelimitedBlock\"},{token:\"literal\",regex:e+\"|\\\\d+\"},{include:\"macros\"},{token:\"literal\",regex:\".\"}],smallPassthrough:[{token:\"literal\",regex:/[+]{3,}/,next:\"dissallowDelimitedBlock\"},{token:\"literal\",regex:/^\\s*$/,next:\"dissallowDelimitedBlock\"},{token:\"literal\",regex:e+\"|\\\\d+\"},{include:\"macros\"}],commentBlock:[{token:\"doc.comment\",regex:/^\\/{4,}\\s*$/,next:\"dissallowDelimitedBlock\"},{token:\"doc.comment\",regex:\"^.*$\"}],tableBlock:[{token:\"tableBlock\",regex:/^\\s*\\|={3,}\\s*$/,next:\"dissallowDelimitedBlock\"},{token:\"tableBlock\",regex:/^\\s*!={3,}\\s*$/,next:\"innerTableBlock\"},{token:\"tableBlock\",regex:/\\|/},{include:\"text\",noEscape:!0}],innerTableBlock:[{token:\"tableBlock\",regex:/^\\s*!={3,}\\s*$/,next:\"tableBlock\"},{token:\"tableBlock\",regex:/^\\s*|={3,}\\s*$/,next:\"dissallowDelimitedBlock\"},{token:\"tableBlock\",regex:/\\!/}],macros:[{token:\"macro\",regex:/{[\\w\\-$]+}/},{token:[\"text\",\"string\",\"text\",\"constant.character\",\"text\"],regex:/({)([\\w\\-$]+)(:)?(.+)?(})/},{token:[\"text\",\"markup.list.macro\",\"keyword\",\"string\"],regex:/(\\w+)(footnote(?:ref)?::?)([^\\s\\[]+)?(\\[.*?\\])?/},{token:[\"markup.list.macro\",\"keyword\",\"string\"],regex:/([a-zA-Z\\-][\\w\\.\\/\\-]*::?)([^\\s\\[]+)(\\[.*?\\])?/},{token:[\"markup.list.macro\",\"keyword\"],regex:/([a-zA-Z\\-][\\w\\.\\/\\-]+::?)(\\[.*?\\])/},{token:\"keyword\",regex:/^:.+?:(?= |$)/}],quotes:[{token:\"string.italic\",regex:/__[^_\\s].*?__/},{token:\"string.italic\",regex:t(\"_\")},{token:\"keyword.bold\",regex:/\\*\\*[^*\\s].*?\\*\\*/},{token:\"keyword.bold\",regex:t(\"\\\\*\")},{token:\"literal\",regex:t(\"\\\\+\")},{token:\"literal\",regex:/\\+\\+[^+\\s].*?\\+\\+/},{token:\"literal\",regex:/\\$\\$.+?\\$\\$/},{token:\"literal\",regex:t(\"`\")},{token:\"keyword\",regex:t(\"^\")},{token:\"keyword\",regex:t(\"~\")},{token:\"keyword\",regex:/##?/},{token:\"keyword\",regex:/(?:\\B|^)``|\\b''/}]};var n={macro:\"constant.character\",tableBlock:\"doc.comment\",titleUnderline:\"markup.heading\",singleLineTitle:\"markup.heading\",pageBreak:\"string\",option:\"string.regexp\",otherBlock:\"markup.list\",literal:\"support.function\",optionalTitle:\"constant.numeric\",escape:\"constant.language.escape\",link:\"markup.underline.list\"};for(var r in this.$rules){var i=this.$rules[r];for(var s=i.length;s--;){var o=i[s];if(o.include||typeof o==\"string\"){var u=[s,1].concat(this.$rules[o.include||o]);o.noEscape&&(u=u.filter(function(e){return!e.next})),i.splice.apply(i,u)}else o.token in n&&(o.token=n[o.token])}}};r.inherits(s,i),t.AsciidocHighlightRules=s}),ace.define(\"ace/mode/folding/asciidoc\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.foldingStartMarker=/^(?:\\|={10,}|[\\.\\/=\\-~^+]{4,}\\s*$|={1,5} )/,this.singleLineHeadingRe=/^={1,5}(?=\\s+\\S)/,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?r[0]==\"=\"?this.singleLineHeadingRe.test(r)?\"start\":e.getLine(n-1).length!=e.getLine(n).length?\"\":\"start\":e.bgTokenizer.getState(n)==\"dissallowDelimitedBlock\"?\"end\":\"start\":\"\"},this.getFoldWidgetRange=function(e,t,n){function l(t){return f=e.getTokens(t)[0],f&&f.type}function d(){var t=f.value.match(p);if(t)return t[0].length;var r=c.indexOf(f.value[0])+1;return r==1&&e.getLine(n-1).length!=e.getLine(n).length?Infinity:r}var r=e.getLine(n),i=r.length,o=e.getLength(),u=n,a=n;if(!r.match(this.foldingStartMarker))return;var f,c=[\"=\",\"-\",\"~\",\"^\",\"+\"],h=\"markup.heading\",p=this.singleLineHeadingRe;if(l(n)==h){var v=d();while(++n<o){if(l(n)!=h)continue;var m=d();if(m<=v)break}var g=f&&f.value.match(this.singleLineHeadingRe);a=g?n-1:n-2;if(a>u)while(a>u&&(!l(a)||f.value[0]==\"[\"))a--;if(a>u){var y=e.getLine(a).length;return new s(u,i,a,y)}}else{var b=e.bgTokenizer.getState(n);if(b==\"dissallowDelimitedBlock\"){while(n-->0)if(e.bgTokenizer.getState(n).lastIndexOf(\"Block\")==-1)break;a=n+1;if(a<u){var y=e.getLine(n).length;return new s(a,5,u,i-5)}}else{while(++n<o)if(e.bgTokenizer.getState(n)==\"dissallowDelimitedBlock\")break;a=n;if(a>u){var y=e.getLine(n).length;return new s(u,5,a,y-5)}}}}}.call(o.prototype)}),ace.define(\"ace/mode/asciidoc\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/asciidoc_highlight_rules\",\"ace/mode/folding/asciidoc\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./asciidoc_highlight_rules\").AsciidocHighlightRules,o=e(\"./folding/asciidoc\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.type=\"text\",this.getNextLineIndent=function(e,t,n){if(e==\"listblock\"){var r=/^((?:.+)?)([-+*][ ]+)/.exec(t);return r?(new Array(r[1].length+1)).join(\" \")+r[2]:\"\"}return this.$getIndent(t)},this.$id=\"ace/mode/asciidoc\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-assembly_x86.js",
    "content": "ace.define(\"ace/mode/assembly_x86_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"keyword.control.assembly\",regex:\"\\\\b(?:aaa|aad|aam|aas|adc|add|addpd|addps|addsd|addss|addsubpd|addsubps|aesdec|aesdeclast|aesenc|aesenclast|aesimc|aeskeygenassist|and|andpd|andps|andnpd|andnps|arpl|blendpd|blendps|blendvpd|blendvps|bound|bsf|bsr|bswap|bt|btc|btr|bts|cbw|cwde|cdqe|clc|cld|cflush|clts|cmc|cmov(?:n?e|ge?|ae?|le?|be?|n?o|n?z)|cmp|cmppd|cmpps|cmps|cnpsb|cmpsw|cmpsd|cmpsq|cmpss|cmpxchg|cmpxchg8b|cmpxchg16b|comisd|comiss|cpuid|crc32|cvtdq2pd|cvtdq2ps|cvtpd2dq|cvtpd2pi|cvtpd2ps|cvtpi2pd|cvtpi2ps|cvtps2dq|cvtps2pd|cvtps2pi|cvtsd2si|cvtsd2ss|cvts2sd|cvtsi2ss|cvtss2sd|cvtss2si|cvttpd2dq|cvtpd2pi|cvttps2dq|cvttps2pi|cvttps2dq|cvttps2pi|cvttsd2si|cvttss2si|cwd|cdq|cqo|daa|das|dec|div|divpd|divps|divsd|divss|dppd|dpps|emms|enter|extractps|f2xm1|fabs|fadd|faddp|fiadd|fbld|fbstp|fchs|fclex|fnclex|fcmov(?:n?e|ge?|ae?|le?|be?|n?o|n?z)|fcom|fcmop|fcompp|fcomi|fcomip|fucomi|fucomip|fcos|fdecstp|fdiv|fdivp|fidiv|fdivr|fdivrp|fidivr|ffree|ficom|ficomp|fild|fincstp|finit|fnint|fist|fistp|fisttp|fld|fld1|fldl2t|fldl2e|fldpi|fldlg2|fldln2|fldz|fldcw|fldenv|fmul|fmulp|fimul|fnop|fpatan|fprem|fprem1|fptan|frndint|frstor|fsave|fnsave|fscale|fsin|fsincos|fsqrt|fst|fstp|fstcw|fnstcw|fstenv|fnstenv|fsts|fnstsw|fsub|fsubp|fisub|fsubr|fsubrp|fisubr|ftst|fucom|fucomp|fucompp|fxam|fxch|fxrstor|fxsave|fxtract|fyl2x|fyl2xp1|haddpd|haddps|husbpd|hsubps|idiv|imul|in|inc|ins|insb|insw|insd|insertps|int|into|invd|invplg|invpcid|iret|iretd|iretq|lahf|lar|lddqu|ldmxcsr|lds|les|lfs|lgs|lss|lea|leave|lfence|lgdt|lidt|llgdt|lmsw|lock|lods|lodsb|lodsw|lodsd|lodsq|lsl|ltr|maskmovdqu|maskmovq|maxpd|maxps|maxsd|maxss|mfence|minpd|minps|minsd|minss|monitor|mov|movapd|movaps|movbe|movd|movq|movddup|movdqa|movdqu|movq2q|movhlps|movhpd|movhps|movlhps|movlpd|movlps|movmskpd|movmskps|movntdqa|movntdq|movnti|movntpd|movntps|movntq|movq|movq2dq|movs|movsb|movsw|movsd|movsq|movsd|movshdup|movsldup|movss|movsx|movsxd|movupd|movups|movzx|mpsadbw|mul|mulpd|mulps|mulsd|mulss|mwait|neg|not|or|orpd|orps|out|outs|outsb|outsw|outsd|pabsb|pabsw|pabsd|packsswb|packssdw|packusdw|packuswbpaddb|paddw|paddd|paddq|paddsb|paddsw|paddusb|paddusw|palignr|pand|pandn|pause|pavgb|pavgw|pblendvb|pblendw|pclmulqdq|pcmpeqb|pcmpeqw|pcmpeqd|pcmpeqq|pcmpestri|pcmpestrm|pcmptb|pcmptgw|pcmpgtd|pcmpgtq|pcmpistri|pcmpisrm|pextrb|pextrd|pextrq|pextrw|phaddw|phaddd|phaddsw|phinposuw|phsubw|phsubd|phsubsw|pinsrb|pinsrd|pinsrq|pinsrw|pmaddubsw|pmadddwd|pmaxsb|pmaxsd|pmaxsw|pmaxsw|pmaxub|pmaxud|pmaxuw|pminsb|pminsd|pminsw|pminub|pminud|pminuw|pmovmskb|pmovsx|pmovzx|pmuldq|pmulhrsw|pmulhuw|pmulhw|pmulld|pmullw|pmuludw|pop|popa|popad|popcnt|popf|popfd|popfq|por|prefetch|psadbw|pshufb|pshufd|pshufhw|pshuflw|pshufw|psignb|psignw|psignd|pslldq|psllw|pslld|psllq|psraw|psrad|psrldq|psrlw|psrld|psrlq|psubb|psubw|psubd|psubq|psubsb|psubsw|psubusb|psubusw|test|ptest|punpckhbw|punpckhwd|punpckhdq|punpckhddq|punpcklbw|punpcklwd|punpckldq|punpckldqd|push|pusha|pushad|pushf|pushfd|pxor|prcl|rcr|rol|ror|rcpps|rcpss|rdfsbase|rdgsbase|rdmsr|rdpmc|rdrand|rdtsc|rdtscp|rep|repe|repz|repne|repnz|roundpd|roundps|roundsd|roundss|rsm|rsqrps|rsqrtss|sahf|sal|sar|shl|shr|sbb|scas|scasb|scasw|scasd|set(?:n?e|ge?|ae?|le?|be?|n?o|n?z)|sfence|sgdt|shld|shrd|shufpd|shufps|sidt|sldt|smsw|sqrtpd|sqrtps|sqrtsd|sqrtss|stc|std|stmxcsr|stos|stosb|stosw|stosd|stosq|str|sub|subpd|subps|subsd|subss|swapgs|syscall|sysenter|sysexit|sysret|teset|ucomisd|ucomiss|ud2|unpckhpd|unpckhps|unpcklpd|unpcklps|vbroadcast|vcvtph2ps|vcvtp2sph|verr|verw|vextractf128|vinsertf128|vmaskmov|vpermilpd|vpermilps|vperm2f128|vtestpd|vtestps|vzeroall|vzeroupper|wait|fwait|wbinvd|wrfsbase|wrgsbase|wrmsr|xadd|xchg|xgetbv|xlat|xlatb|xor|xorpd|xorps|xrstor|xsave|xsaveopt|xsetbv|lzcnt|extrq|insertq|movntsd|movntss|vfmaddpd|vfmaddps|vfmaddsd|vfmaddss|vfmaddsubbpd|vfmaddsubps|vfmsubaddpd|vfmsubaddps|vfmsubpd|vfmsubps|vfmsubsd|vfnmaddpd|vfnmaddps|vfnmaddsd|vfnmaddss|vfnmsubpd|vfnmusbps|vfnmusbsd|vfnmusbss|cvt|xor|cli|sti|hlt|nop|lock|wait|enter|leave|ret|loop(?:n?e|n?z)?|call|j(?:mp|n?e|ge?|ae?|le?|be?|n?o|n?z))\\\\b\",caseInsensitive:!0},{token:\"variable.parameter.register.assembly\",regex:\"\\\\b(?:CS|DS|ES|FS|GS|SS|RAX|EAX|RBX|EBX|RCX|ECX|RDX|EDX|RCX|RIP|EIP|IP|RSP|ESP|SP|RSI|ESI|SI|RDI|EDI|DI|RFLAGS|EFLAGS|FLAGS|R8-15|(?:Y|X)MM(?:[0-9]|10|11|12|13|14|15)|(?:A|B|C|D)(?:X|H|L)|CR(?:[0-4]|DR(?:[0-7]|TR6|TR7|EFER)))\\\\b\",caseInsensitive:!0},{token:\"constant.character.decimal.assembly\",regex:\"\\\\b[0-9]+\\\\b\"},{token:\"constant.character.hexadecimal.assembly\",regex:\"\\\\b0x[A-F0-9]+\\\\b\",caseInsensitive:!0},{token:\"constant.character.hexadecimal.assembly\",regex:\"\\\\b[A-F0-9]+h\\\\b\",caseInsensitive:!0},{token:\"string.assembly\",regex:/'([^\\\\']|\\\\.)*'/},{token:\"string.assembly\",regex:/\"([^\\\\\"]|\\\\.)*\"/},{token:\"support.function.directive.assembly\",regex:\"^\\\\[\",push:[{token:\"support.function.directive.assembly\",regex:\"\\\\]$\",next:\"pop\"},{defaultToken:\"support.function.directive.assembly\"}]},{token:[\"support.function.directive.assembly\",\"support.function.directive.assembly\",\"entity.name.function.assembly\"],regex:\"(^struc)( )([_a-zA-Z][_a-zA-Z0-9]*)\"},{token:\"support.function.directive.assembly\",regex:\"^endstruc\\\\b\"},{token:[\"support.function.directive.assembly\",\"entity.name.function.assembly\",\"support.function.directive.assembly\",\"constant.character.assembly\"],regex:\"^(%macro )([_a-zA-Z][_a-zA-Z0-9]*)( )([0-9]+)\"},{token:\"support.function.directive.assembly\",regex:\"^%endmacro\"},{token:[\"text\",\"support.function.directive.assembly\",\"text\",\"entity.name.function.assembly\"],regex:\"(\\\\s*)(%define|%xdefine|%idefine|%undef|%assign|%defstr|%strcat|%strlen|%substr|%00|%0|%rotate|%rep|%endrep|%include|\\\\$\\\\$|\\\\$|%unmacro|%if|%elif|%else|%endif|%(?:el)?ifdef|%(?:el)?ifmacro|%(?:el)?ifctx|%(?:el)?ifidn|%(?:el)?ifidni|%(?:el)?ifid|%(?:el)?ifnum|%(?:el)?ifstr|%(?:el)?iftoken|%(?:el)?ifempty|%(?:el)?ifenv|%pathsearch|%depend|%use|%push|%pop|%repl|%arg|%stacksize|%local|%error|%warning|%fatal|%line|%!|%comment|%endcomment|__NASM_VERSION_ID__|__NASM_VER__|__FILE__|__LINE__|__BITS__|__OUTPUT_FORMAT__|__DATE__|__TIME__|__DATE_NUM__|_TIME__NUM__|__UTC_DATE__|__UTC_TIME__|__UTC_DATE_NUM__|__UTC_TIME_NUM__|__POSIX_TIME__|__PASS__|ISTRUC|AT|IEND|BITS 16|BITS 32|BITS 64|USE16|USE32|__SECT__|ABSOLUTE|EXTERN|GLOBAL|COMMON|CPU|FLOAT)\\\\b( ?)((?:[_a-zA-Z][_a-zA-Z0-9]*)?)\",caseInsensitive:!0},{token:\"support.function.directive.assembly\",regex:\"\\\\b(?:d[bwdqtoy]|res[bwdqto]|equ|times|align|alignb|sectalign|section|ptr|byte|word|dword|qword|incbin)\\\\b\",caseInsensitive:!0},{token:\"entity.name.function.assembly\",regex:\"^\\\\s*%%[\\\\w.]+?:$\"},{token:\"entity.name.function.assembly\",regex:\"^\\\\s*%\\\\$[\\\\w.]+?:$\"},{token:\"entity.name.function.assembly\",regex:\"^[\\\\w.]+?:\"},{token:\"entity.name.function.assembly\",regex:\"^[\\\\w.]+?\\\\b\"},{token:\"comment.assembly\",regex:\";.*$\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"asm\"],name:\"Assembly x86\",scopeName:\"source.assembly\"},r.inherits(s,i),t.AssemblyX86HighlightRules=s}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/assembly_x86\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/assembly_x86_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./assembly_x86_highlight_rules\").AssemblyX86HighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\";\",this.$id=\"ace/mode/assembly_x86\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-autohotkey.js",
    "content": "ace.define(\"ace/mode/autohotkey_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"And|ByRef|Case|Const|ContinueCase|ContinueLoop|Default|Dim|Do|Else|ElseIf|EndFunc|EndIf|EndSelect|EndSwitch|EndWith|Enum|Exit|ExitLoop|False|For|Func|Global|If|In|Local|Next|Not|Or|ReDim|Return|Select|Step|Switch|Then|To|True|Until|WEnd|While|With|Abs|ACos|AdlibDisable|AdlibEnable|Asc|AscW|ASin|Assign|ATan|AutoItSetOption|AutoItWinGetTitle|AutoItWinSetTitle|Beep|Binary|BinaryLen|BinaryMid|BinaryToString|BitAND|BitNOT|BitOR|BitRotate|BitShift|BitXOR|BlockInput|Break|Call|CDTray|Ceiling|Chr|ChrW|ClipGet|ClipPut|ConsoleRead|ConsoleWrite|ConsoleWriteError|ControlClick|ControlCommand|ControlDisable|ControlEnable|ControlFocus|ControlGetFocus|ControlGetHandle|ControlGetPos|ControlGetText|ControlHide|ControlListView|ControlMove|ControlSend|ControlSetText|ControlShow|ControlTreeView|Cos|Dec|DirCopy|DirCreate|DirGetSize|DirMove|DirRemove|DllCall|DllCallbackFree|DllCallbackGetPtr|DllCallbackRegister|DllClose|DllOpen|DllStructCreate|DllStructGetData|DllStructGetPtr|DllStructGetSize|DllStructSetData|DriveGetDrive|DriveGetFileSystem|DriveGetLabel|DriveGetSerial|DriveGetType|DriveMapAdd|DriveMapDel|DriveMapGet|DriveSetLabel|DriveSpaceFree|DriveSpaceTotal|DriveStatus|EnvGet|EnvSet|EnvUpdate|Eval|Execute|Exp|FileChangeDir|FileClose|FileCopy|FileCreateNTFSLink|FileCreateShortcut|FileDelete|FileExists|FileFindFirstFile|FileFindNextFile|FileGetAttrib|FileGetLongName|FileGetShortcut|FileGetShortName|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileOpen|FileOpenDialog|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileSaveDialog|FileSelectFolder|FileSetAttrib|FileSetTime|FileWrite|FileWriteLine|Floor|FtpSetProxy|GUICreate|GUICtrlCreateAvi|GUICtrlCreateButton|GUICtrlCreateCheckbox|GUICtrlCreateCombo|GUICtrlCreateContextMenu|GUICtrlCreateDate|GUICtrlCreateDummy|GUICtrlCreateEdit|GUICtrlCreateGraphic|GUICtrlCreateGroup|GUICtrlCreateIcon|GUICtrlCreateInput|GUICtrlCreateLabel|GUICtrlCreateList|GUICtrlCreateListView|GUICtrlCreateListViewItem|GUICtrlCreateMenu|GUICtrlCreateMenuItem|GUICtrlCreateMonthCal|GUICtrlCreateObj|GUICtrlCreatePic|GUICtrlCreateProgress|GUICtrlCreateRadio|GUICtrlCreateSlider|GUICtrlCreateTab|GUICtrlCreateTabItem|GUICtrlCreateTreeView|GUICtrlCreateTreeViewItem|GUICtrlCreateUpdown|GUICtrlDelete|GUICtrlGetHandle|GUICtrlGetState|GUICtrlRead|GUICtrlRecvMsg|GUICtrlRegisterListViewSort|GUICtrlSendMsg|GUICtrlSendToDummy|GUICtrlSetBkColor|GUICtrlSetColor|GUICtrlSetCursor|GUICtrlSetData|GUICtrlSetFont|GUICtrlSetDefColor|GUICtrlSetDefBkColor|GUICtrlSetGraphic|GUICtrlSetImage|GUICtrlSetLimit|GUICtrlSetOnEvent|GUICtrlSetPos|GUICtrlSetResizing|GUICtrlSetState|GUICtrlSetStyle|GUICtrlSetTip|GUIDelete|GUIGetCursorInfo|GUIGetMsg|GUIGetStyle|GUIRegisterMsg|GUISetAccelerators()|GUISetBkColor|GUISetCoord|GUISetCursor|GUISetFont|GUISetHelp|GUISetIcon|GUISetOnEvent|GUISetState|GUISetStyle|GUIStartGroup|GUISwitch|Hex|HotKeySet|HttpSetProxy|HWnd|InetGet|InetGetSize|IniDelete|IniRead|IniReadSection|IniReadSectionNames|IniRenameSection|IniWrite|IniWriteSection|InputBox|Int|IsAdmin|IsArray|IsBinary|IsBool|IsDeclared|IsDllStruct|IsFloat|IsHWnd|IsInt|IsKeyword|IsNumber|IsObj|IsPtr|IsString|Log|MemGetStats|Mod|MouseClick|MouseClickDrag|MouseDown|MouseGetCursor|MouseGetPos|MouseMove|MouseUp|MouseWheel|MsgBox|Number|ObjCreate|ObjEvent|ObjGet|ObjName|Opt|Ping|PixelChecksum|PixelGetColor|PixelSearch|PluginClose|PluginOpen|ProcessClose|ProcessExists|ProcessGetStats|ProcessList|ProcessSetPriority|ProcessWait|ProcessWaitClose|ProgressOff|ProgressOn|ProgressSet|Ptr|Random|RegDelete|RegEnumKey|RegEnumVal|RegRead|RegWrite|Round|Run|RunAs|RunAsWait|RunWait|Send|SendKeepActive|SetError|SetExtended|ShellExecute|ShellExecuteWait|Shutdown|Sin|Sleep|SoundPlay|SoundSetWaveVolume|SplashImageOn|SplashOff|SplashTextOn|Sqrt|SRandom|StatusbarGetText|StderrRead|StdinWrite|StdioClose|StdoutRead|String|StringAddCR|StringCompare|StringFormat|StringInStr|StringIsAlNum|StringIsAlpha|StringIsASCII|StringIsDigit|StringIsFloat|StringIsInt|StringIsLower|StringIsSpace|StringIsUpper|StringIsXDigit|StringLeft|StringLen|StringLower|StringMid|StringRegExp|StringRegExpReplace|StringReplace|StringRight|StringSplit|StringStripCR|StringStripWS|StringToBinary|StringTrimLeft|StringTrimRight|StringUpper|Tan|TCPAccept|TCPCloseSocket|TCPConnect|TCPListen|TCPNameToIP|TCPRecv|TCPSend|TCPShutdown|TCPStartup|TimerDiff|TimerInit|ToolTip|TrayCreateItem|TrayCreateMenu|TrayGetMsg|TrayItemDelete|TrayItemGetHandle|TrayItemGetState|TrayItemGetText|TrayItemSetOnEvent|TrayItemSetState|TrayItemSetText|TraySetClick|TraySetIcon|TraySetOnEvent|TraySetPauseIcon|TraySetState|TraySetToolTip|TrayTip|UBound|UDPBind|UDPCloseSocket|UDPOpen|UDPRecv|UDPSend|UDPShutdown|UDPStartup|VarGetType|WinActivate|WinActive|WinClose|WinExists|WinFlash|WinGetCaretPos|WinGetClassList|WinGetClientSize|WinGetHandle|WinGetPos|WinGetProcess|WinGetState|WinGetText|WinGetTitle|WinKill|WinList|WinMenuSelectItem|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinSetOnTop|WinSetState|WinSetTitle|WinSetTrans|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive|ArrayAdd|ArrayBinarySearch|ArrayConcatenate|ArrayDelete|ArrayDisplay|ArrayFindAll|ArrayInsert|ArrayMax|ArrayMaxIndex|ArrayMin|ArrayMinIndex|ArrayPop|ArrayPush|ArrayReverse|ArraySearch|ArraySort|ArraySwap|ArrayToClip|ArrayToString|ArrayTrim|ChooseColor|ChooseFont|ClipBoard_ChangeChain|ClipBoard_Close|ClipBoard_CountFormats|ClipBoard_Empty|ClipBoard_EnumFormats|ClipBoard_FormatStr|ClipBoard_GetData|ClipBoard_GetDataEx|ClipBoard_GetFormatName|ClipBoard_GetOpenWindow|ClipBoard_GetOwner|ClipBoard_GetPriorityFormat|ClipBoard_GetSequenceNumber|ClipBoard_GetViewer|ClipBoard_IsFormatAvailable|ClipBoard_Open|ClipBoard_RegisterFormat|ClipBoard_SetData|ClipBoard_SetDataEx|ClipBoard_SetViewer|ClipPutFile|ColorConvertHSLtoRGB|ColorConvertRGBtoHSL|ColorGetBlue|ColorGetGreen|ColorGetRed|Date_Time_CompareFileTime|Date_Time_DOSDateTimeToArray|Date_Time_DOSDateTimeToFileTime|Date_Time_DOSDateTimeToStr|Date_Time_DOSDateToArray|Date_Time_DOSDateToStr|Date_Time_DOSTimeToArray|Date_Time_DOSTimeToStr|Date_Time_EncodeFileTime|Date_Time_EncodeSystemTime|Date_Time_FileTimeToArray|Date_Time_FileTimeToDOSDateTime|Date_Time_FileTimeToLocalFileTime|Date_Time_FileTimeToStr|Date_Time_FileTimeToSystemTime|Date_Time_GetFileTime|Date_Time_GetLocalTime|Date_Time_GetSystemTime|Date_Time_GetSystemTimeAdjustment|Date_Time_GetSystemTimeAsFileTime|Date_Time_GetSystemTimes|Date_Time_GetTickCount|Date_Time_GetTimeZoneInformation|Date_Time_LocalFileTimeToFileTime|Date_Time_SetFileTime|Date_Time_SetLocalTime|Date_Time_SetSystemTime|Date_Time_SetSystemTimeAdjustment|Date_Time_SetTimeZoneInformation|Date_Time_SystemTimeToArray|Date_Time_SystemTimeToDateStr|Date_Time_SystemTimeToDateTimeStr|Date_Time_SystemTimeToFileTime|Date_Time_SystemTimeToTimeStr|Date_Time_SystemTimeToTzSpecificLocalTime|Date_Time_TzSpecificLocalTimeToSystemTime|DateAdd|DateDayOfWeek|DateDaysInMonth|DateDiff|DateIsLeapYear|DateIsValid|DateTimeFormat|DateTimeSplit|DateToDayOfWeek|DateToDayOfWeekISO|DateToDayValue|DateToMonth|DayValueToDate|DebugBugReportEnv|DebugOut|DebugSetup|Degree|EventLog__Backup|EventLog__Clear|EventLog__Close|EventLog__Count|EventLog__DeregisterSource|EventLog__Full|EventLog__Notify|EventLog__Oldest|EventLog__Open|EventLog__OpenBackup|EventLog__Read|EventLog__RegisterSource|EventLog__Report|FileCountLines|FileCreate|FileListToArray|FilePrint|FileReadToArray|FileWriteFromArray|FileWriteLog|FileWriteToLine|GDIPlus_ArrowCapCreate|GDIPlus_ArrowCapDispose|GDIPlus_ArrowCapGetFillState|GDIPlus_ArrowCapGetHeight|GDIPlus_ArrowCapGetMiddleInset|GDIPlus_ArrowCapGetWidth|GDIPlus_ArrowCapSetFillState|GDIPlus_ArrowCapSetHeight|GDIPlus_ArrowCapSetMiddleInset|GDIPlus_ArrowCapSetWidth|GDIPlus_BitmapCloneArea|GDIPlus_BitmapCreateFromFile|GDIPlus_BitmapCreateFromGraphics|GDIPlus_BitmapCreateFromHBITMAP|GDIPlus_BitmapCreateHBITMAPFromBitmap|GDIPlus_BitmapDispose|GDIPlus_BitmapLockBits|GDIPlus_BitmapUnlockBits|GDIPlus_BrushClone|GDIPlus_BrushCreateSolid|GDIPlus_BrushDispose|GDIPlus_BrushGetType|GDIPlus_CustomLineCapDispose|GDIPlus_Decoders|GDIPlus_DecodersGetCount|GDIPlus_DecodersGetSize|GDIPlus_Encoders|GDIPlus_EncodersGetCLSID|GDIPlus_EncodersGetCount|GDIPlus_EncodersGetParamList|GDIPlus_EncodersGetParamListSize|GDIPlus_EncodersGetSize|GDIPlus_FontCreate|GDIPlus_FontDispose|GDIPlus_FontFamilyCreate|GDIPlus_FontFamilyDispose|GDIPlus_GraphicsClear|GDIPlus_GraphicsCreateFromHDC|GDIPlus_GraphicsCreateFromHWND|GDIPlus_GraphicsDispose|GDIPlus_GraphicsDrawArc|GDIPlus_GraphicsDrawBezier|GDIPlus_GraphicsDrawClosedCurve|GDIPlus_GraphicsDrawCurve|GDIPlus_GraphicsDrawEllipse|GDIPlus_GraphicsDrawImage|GDIPlus_GraphicsDrawImageRect|GDIPlus_GraphicsDrawImageRectRect|GDIPlus_GraphicsDrawLine|GDIPlus_GraphicsDrawPie|GDIPlus_GraphicsDrawPolygon|GDIPlus_GraphicsDrawRect|GDIPlus_GraphicsDrawString|GDIPlus_GraphicsDrawStringEx|GDIPlus_GraphicsFillClosedCurve|GDIPlus_GraphicsFillEllipse|GDIPlus_GraphicsFillPie|GDIPlus_GraphicsFillRect|GDIPlus_GraphicsGetDC|GDIPlus_GraphicsGetSmoothingMode|GDIPlus_GraphicsMeasureString|GDIPlus_GraphicsReleaseDC|GDIPlus_GraphicsSetSmoothingMode|GDIPlus_GraphicsSetTransform|GDIPlus_ImageDispose|GDIPlus_ImageGetGraphicsContext|GDIPlus_ImageGetHeight|GDIPlus_ImageGetWidth|GDIPlus_ImageLoadFromFile|GDIPlus_ImageSaveToFile|GDIPlus_ImageSaveToFileEx|GDIPlus_MatrixCreate|GDIPlus_MatrixDispose|GDIPlus_MatrixRotate|GDIPlus_ParamAdd|GDIPlus_ParamInit|GDIPlus_PenCreate|GDIPlus_PenDispose|GDIPlus_PenGetAlignment|GDIPlus_PenGetColor|GDIPlus_PenGetCustomEndCap|GDIPlus_PenGetDashCap|GDIPlus_PenGetDashStyle|GDIPlus_PenGetEndCap|GDIPlus_PenGetWidth|GDIPlus_PenSetAlignment|GDIPlus_PenSetColor|GDIPlus_PenSetCustomEndCap|GDIPlus_PenSetDashCap|GDIPlus_PenSetDashStyle|GDIPlus_PenSetEndCap|GDIPlus_PenSetWidth|GDIPlus_RectFCreate|GDIPlus_Shutdown|GDIPlus_Startup|GDIPlus_StringFormatCreate|GDIPlus_StringFormatDispose|GetIP|GUICtrlAVI_Close|GUICtrlAVI_Create|GUICtrlAVI_Destroy|GUICtrlAVI_Open|GUICtrlAVI_OpenEx|GUICtrlAVI_Play|GUICtrlAVI_Seek|GUICtrlAVI_Show|GUICtrlAVI_Stop|GUICtrlButton_Click|GUICtrlButton_Create|GUICtrlButton_Destroy|GUICtrlButton_Enable|GUICtrlButton_GetCheck|GUICtrlButton_GetFocus|GUICtrlButton_GetIdealSize|GUICtrlButton_GetImage|GUICtrlButton_GetImageList|GUICtrlButton_GetState|GUICtrlButton_GetText|GUICtrlButton_GetTextMargin|GUICtrlButton_SetCheck|GUICtrlButton_SetFocus|GUICtrlButton_SetImage|GUICtrlButton_SetImageList|GUICtrlButton_SetSize|GUICtrlButton_SetState|GUICtrlButton_SetStyle|GUICtrlButton_SetText|GUICtrlButton_SetTextMargin|GUICtrlButton_Show|GUICtrlComboBox_AddDir|GUICtrlComboBox_AddString|GUICtrlComboBox_AutoComplete|GUICtrlComboBox_BeginUpdate|GUICtrlComboBox_Create|GUICtrlComboBox_DeleteString|GUICtrlComboBox_Destroy|GUICtrlComboBox_EndUpdate|GUICtrlComboBox_FindString|GUICtrlComboBox_FindStringExact|GUICtrlComboBox_GetComboBoxInfo|GUICtrlComboBox_GetCount|GUICtrlComboBox_GetCurSel|GUICtrlComboBox_GetDroppedControlRect|GUICtrlComboBox_GetDroppedControlRectEx|GUICtrlComboBox_GetDroppedState|GUICtrlComboBox_GetDroppedWidth|GUICtrlComboBox_GetEditSel|GUICtrlComboBox_GetEditText|GUICtrlComboBox_GetExtendedUI|GUICtrlComboBox_GetHorizontalExtent|GUICtrlComboBox_GetItemHeight|GUICtrlComboBox_GetLBText|GUICtrlComboBox_GetLBTextLen|GUICtrlComboBox_GetList|GUICtrlComboBox_GetListArray|GUICtrlComboBox_GetLocale|GUICtrlComboBox_GetLocaleCountry|GUICtrlComboBox_GetLocaleLang|GUICtrlComboBox_GetLocalePrimLang|GUICtrlComboBox_GetLocaleSubLang|GUICtrlComboBox_GetMinVisible|GUICtrlComboBox_GetTopIndex|GUICtrlComboBox_InitStorage|GUICtrlComboBox_InsertString|GUICtrlComboBox_LimitText|GUICtrlComboBox_ReplaceEditSel|GUICtrlComboBox_ResetContent|GUICtrlComboBox_SelectString|GUICtrlComboBox_SetCurSel|GUICtrlComboBox_SetDroppedWidth|GUICtrlComboBox_SetEditSel|GUICtrlComboBox_SetEditText|GUICtrlComboBox_SetExtendedUI|GUICtrlComboBox_SetHorizontalExtent|GUICtrlComboBox_SetItemHeight|GUICtrlComboBox_SetMinVisible|GUICtrlComboBox_SetTopIndex|GUICtrlComboBox_ShowDropDown|GUICtrlComboBoxEx_AddDir|GUICtrlComboBoxEx_AddString|GUICtrlComboBoxEx_BeginUpdate|GUICtrlComboBoxEx_Create|GUICtrlComboBoxEx_CreateSolidBitMap|GUICtrlComboBoxEx_DeleteString|GUICtrlComboBoxEx_Destroy|GUICtrlComboBoxEx_EndUpdate|GUICtrlComboBoxEx_FindStringExact|GUICtrlComboBoxEx_GetComboBoxInfo|GUICtrlComboBoxEx_GetComboControl|GUICtrlComboBoxEx_GetCount|GUICtrlComboBoxEx_GetCurSel|GUICtrlComboBoxEx_GetDroppedControlRect|GUICtrlComboBoxEx_GetDroppedControlRectEx|GUICtrlComboBoxEx_GetDroppedState|GUICtrlComboBoxEx_GetDroppedWidth|GUICtrlComboBoxEx_GetEditControl|GUICtrlComboBoxEx_GetEditSel|GUICtrlComboBoxEx_GetEditText|GUICtrlComboBoxEx_GetExtendedStyle|GUICtrlComboBoxEx_GetExtendedUI|GUICtrlComboBoxEx_GetImageList|GUICtrlComboBoxEx_GetItem|GUICtrlComboBoxEx_GetItemEx|GUICtrlComboBoxEx_GetItemHeight|GUICtrlComboBoxEx_GetItemImage|GUICtrlComboBoxEx_GetItemIndent|GUICtrlComboBoxEx_GetItemOverlayImage|GUICtrlComboBoxEx_GetItemParam|GUICtrlComboBoxEx_GetItemSelectedImage|GUICtrlComboBoxEx_GetItemText|GUICtrlComboBoxEx_GetItemTextLen|GUICtrlComboBoxEx_GetList|GUICtrlComboBoxEx_GetListArray|GUICtrlComboBoxEx_GetLocale|GUICtrlComboBoxEx_GetLocaleCountry|GUICtrlComboBoxEx_GetLocaleLang|GUICtrlComboBoxEx_GetLocalePrimLang|GUICtrlComboBoxEx_GetLocaleSubLang|GUICtrlComboBoxEx_GetMinVisible|GUICtrlComboBoxEx_GetTopIndex|GUICtrlComboBoxEx_InitStorage|GUICtrlComboBoxEx_InsertString|GUICtrlComboBoxEx_LimitText|GUICtrlComboBoxEx_ReplaceEditSel|GUICtrlComboBoxEx_ResetContent|GUICtrlComboBoxEx_SetCurSel|GUICtrlComboBoxEx_SetDroppedWidth|GUICtrlComboBoxEx_SetEditSel|GUICtrlComboBoxEx_SetEditText|GUICtrlComboBoxEx_SetExtendedStyle|GUICtrlComboBoxEx_SetExtendedUI|GUICtrlComboBoxEx_SetImageList|GUICtrlComboBoxEx_SetItem|GUICtrlComboBoxEx_SetItemEx|GUICtrlComboBoxEx_SetItemHeight|GUICtrlComboBoxEx_SetItemImage|GUICtrlComboBoxEx_SetItemIndent|GUICtrlComboBoxEx_SetItemOverlayImage|GUICtrlComboBoxEx_SetItemParam|GUICtrlComboBoxEx_SetItemSelectedImage|GUICtrlComboBoxEx_SetMinVisible|GUICtrlComboBoxEx_SetTopIndex|GUICtrlComboBoxEx_ShowDropDown|GUICtrlDTP_Create|GUICtrlDTP_Destroy|GUICtrlDTP_GetMCColor|GUICtrlDTP_GetMCFont|GUICtrlDTP_GetMonthCal|GUICtrlDTP_GetRange|GUICtrlDTP_GetRangeEx|GUICtrlDTP_GetSystemTime|GUICtrlDTP_GetSystemTimeEx|GUICtrlDTP_SetFormat|GUICtrlDTP_SetMCColor|GUICtrlDTP_SetMCFont|GUICtrlDTP_SetRange|GUICtrlDTP_SetRangeEx|GUICtrlDTP_SetSystemTime|GUICtrlDTP_SetSystemTimeEx|GUICtrlEdit_AppendText|GUICtrlEdit_BeginUpdate|GUICtrlEdit_CanUndo|GUICtrlEdit_CharFromPos|GUICtrlEdit_Create|GUICtrlEdit_Destroy|GUICtrlEdit_EmptyUndoBuffer|GUICtrlEdit_EndUpdate|GUICtrlEdit_Find|GUICtrlEdit_FmtLines|GUICtrlEdit_GetFirstVisibleLine|GUICtrlEdit_GetLimitText|GUICtrlEdit_GetLine|GUICtrlEdit_GetLineCount|GUICtrlEdit_GetMargins|GUICtrlEdit_GetModify|GUICtrlEdit_GetPasswordChar|GUICtrlEdit_GetRECT|GUICtrlEdit_GetRECTEx|GUICtrlEdit_GetSel|GUICtrlEdit_GetText|GUICtrlEdit_GetTextLen|GUICtrlEdit_HideBalloonTip|GUICtrlEdit_InsertText|GUICtrlEdit_LineFromChar|GUICtrlEdit_LineIndex|GUICtrlEdit_LineLength|GUICtrlEdit_LineScroll|GUICtrlEdit_PosFromChar|GUICtrlEdit_ReplaceSel|GUICtrlEdit_Scroll|GUICtrlEdit_SetLimitText|GUICtrlEdit_SetMargins|GUICtrlEdit_SetModify|GUICtrlEdit_SetPasswordChar|GUICtrlEdit_SetReadOnly|GUICtrlEdit_SetRECT|GUICtrlEdit_SetRECTEx|GUICtrlEdit_SetRECTNP|GUICtrlEdit_SetRectNPEx|GUICtrlEdit_SetSel|GUICtrlEdit_SetTabStops|GUICtrlEdit_SetText|GUICtrlEdit_ShowBalloonTip|GUICtrlEdit_Undo|GUICtrlHeader_AddItem|GUICtrlHeader_ClearFilter|GUICtrlHeader_ClearFilterAll|GUICtrlHeader_Create|GUICtrlHeader_CreateDragImage|GUICtrlHeader_DeleteItem|GUICtrlHeader_Destroy|GUICtrlHeader_EditFilter|GUICtrlHeader_GetBitmapMargin|GUICtrlHeader_GetImageList|GUICtrlHeader_GetItem|GUICtrlHeader_GetItemAlign|GUICtrlHeader_GetItemBitmap|GUICtrlHeader_GetItemCount|GUICtrlHeader_GetItemDisplay|GUICtrlHeader_GetItemFlags|GUICtrlHeader_GetItemFormat|GUICtrlHeader_GetItemImage|GUICtrlHeader_GetItemOrder|GUICtrlHeader_GetItemParam|GUICtrlHeader_GetItemRect|GUICtrlHeader_GetItemRectEx|GUICtrlHeader_GetItemText|GUICtrlHeader_GetItemWidth|GUICtrlHeader_GetOrderArray|GUICtrlHeader_GetUnicodeFormat|GUICtrlHeader_HitTest|GUICtrlHeader_InsertItem|GUICtrlHeader_Layout|GUICtrlHeader_OrderToIndex|GUICtrlHeader_SetBitmapMargin|GUICtrlHeader_SetFilterChangeTimeout|GUICtrlHeader_SetHotDivider|GUICtrlHeader_SetImageList|GUICtrlHeader_SetItem|GUICtrlHeader_SetItemAlign|GUICtrlHeader_SetItemBitmap|GUICtrlHeader_SetItemDisplay|GUICtrlHeader_SetItemFlags|GUICtrlHeader_SetItemFormat|GUICtrlHeader_SetItemImage|GUICtrlHeader_SetItemOrder|GUICtrlHeader_SetItemParam|GUICtrlHeader_SetItemText|GUICtrlHeader_SetItemWidth|GUICtrlHeader_SetOrderArray|GUICtrlHeader_SetUnicodeFormat|GUICtrlIpAddress_ClearAddress|GUICtrlIpAddress_Create|GUICtrlIpAddress_Destroy|GUICtrlIpAddress_Get|GUICtrlIpAddress_GetArray|GUICtrlIpAddress_GetEx|GUICtrlIpAddress_IsBlank|GUICtrlIpAddress_Set|GUICtrlIpAddress_SetArray|GUICtrlIpAddress_SetEx|GUICtrlIpAddress_SetFocus|GUICtrlIpAddress_SetFont|GUICtrlIpAddress_SetRange|GUICtrlIpAddress_ShowHide|GUICtrlListBox_AddFile|GUICtrlListBox_AddString|GUICtrlListBox_BeginUpdate|GUICtrlListBox_Create|GUICtrlListBox_DeleteString|GUICtrlListBox_Destroy|GUICtrlListBox_Dir|GUICtrlListBox_EndUpdate|GUICtrlListBox_FindInText|GUICtrlListBox_FindString|GUICtrlListBox_GetAnchorIndex|GUICtrlListBox_GetCaretIndex|GUICtrlListBox_GetCount|GUICtrlListBox_GetCurSel|GUICtrlListBox_GetHorizontalExtent|GUICtrlListBox_GetItemData|GUICtrlListBox_GetItemHeight|GUICtrlListBox_GetItemRect|GUICtrlListBox_GetItemRectEx|GUICtrlListBox_GetListBoxInfo|GUICtrlListBox_GetLocale|GUICtrlListBox_GetLocaleCountry|GUICtrlListBox_GetLocaleLang|GUICtrlListBox_GetLocalePrimLang|GUICtrlListBox_GetLocaleSubLang|GUICtrlListBox_GetSel|GUICtrlListBox_GetSelCount|GUICtrlListBox_GetSelItems|GUICtrlListBox_GetSelItemsText|GUICtrlListBox_GetText|GUICtrlListBox_GetTextLen|GUICtrlListBox_GetTopIndex|GUICtrlListBox_InitStorage|GUICtrlListBox_InsertString|GUICtrlListBox_ItemFromPoint|GUICtrlListBox_ReplaceString|GUICtrlListBox_ResetContent|GUICtrlListBox_SelectString|GUICtrlListBox_SelItemRange|GUICtrlListBox_SelItemRangeEx|GUICtrlListBox_SetAnchorIndex|GUICtrlListBox_SetCaretIndex|GUICtrlListBox_SetColumnWidth|GUICtrlListBox_SetCurSel|GUICtrlListBox_SetHorizontalExtent|GUICtrlListBox_SetItemData|GUICtrlListBox_SetItemHeight|GUICtrlListBox_SetLocale|GUICtrlListBox_SetSel|GUICtrlListBox_SetTabStops|GUICtrlListBox_SetTopIndex|GUICtrlListBox_Sort|GUICtrlListBox_SwapString|GUICtrlListBox_UpdateHScroll|GUICtrlListView_AddArray|GUICtrlListView_AddColumn|GUICtrlListView_AddItem|GUICtrlListView_AddSubItem|GUICtrlListView_ApproximateViewHeight|GUICtrlListView_ApproximateViewRect|GUICtrlListView_ApproximateViewWidth|GUICtrlListView_Arrange|GUICtrlListView_BeginUpdate|GUICtrlListView_CancelEditLabel|GUICtrlListView_ClickItem|GUICtrlListView_CopyItems|GUICtrlListView_Create|GUICtrlListView_CreateDragImage|GUICtrlListView_CreateSolidBitMap|GUICtrlListView_DeleteAllItems|GUICtrlListView_DeleteColumn|GUICtrlListView_DeleteItem|GUICtrlListView_DeleteItemsSelected|GUICtrlListView_Destroy|GUICtrlListView_DrawDragImage|GUICtrlListView_EditLabel|GUICtrlListView_EnableGroupView|GUICtrlListView_EndUpdate|GUICtrlListView_EnsureVisible|GUICtrlListView_FindInText|GUICtrlListView_FindItem|GUICtrlListView_FindNearest|GUICtrlListView_FindParam|GUICtrlListView_FindText|GUICtrlListView_GetBkColor|GUICtrlListView_GetBkImage|GUICtrlListView_GetCallbackMask|GUICtrlListView_GetColumn|GUICtrlListView_GetColumnCount|GUICtrlListView_GetColumnOrder|GUICtrlListView_GetColumnOrderArray|GUICtrlListView_GetColumnWidth|GUICtrlListView_GetCounterPage|GUICtrlListView_GetEditControl|GUICtrlListView_GetExtendedListViewStyle|GUICtrlListView_GetGroupInfo|GUICtrlListView_GetGroupViewEnabled|GUICtrlListView_GetHeader|GUICtrlListView_GetHotCursor|GUICtrlListView_GetHotItem|GUICtrlListView_GetHoverTime|GUICtrlListView_GetImageList|GUICtrlListView_GetISearchString|GUICtrlListView_GetItem|GUICtrlListView_GetItemChecked|GUICtrlListView_GetItemCount|GUICtrlListView_GetItemCut|GUICtrlListView_GetItemDropHilited|GUICtrlListView_GetItemEx|GUICtrlListView_GetItemFocused|GUICtrlListView_GetItemGroupID|GUICtrlListView_GetItemImage|GUICtrlListView_GetItemIndent|GUICtrlListView_GetItemParam|GUICtrlListView_GetItemPosition|GUICtrlListView_GetItemPositionX|GUICtrlListView_GetItemPositionY|GUICtrlListView_GetItemRect|GUICtrlListView_GetItemRectEx|GUICtrlListView_GetItemSelected|GUICtrlListView_GetItemSpacing|GUICtrlListView_GetItemSpacingX|GUICtrlListView_GetItemSpacingY|GUICtrlListView_GetItemState|GUICtrlListView_GetItemStateImage|GUICtrlListView_GetItemText|GUICtrlListView_GetItemTextArray|GUICtrlListView_GetItemTextString|GUICtrlListView_GetNextItem|GUICtrlListView_GetNumberOfWorkAreas|GUICtrlListView_GetOrigin|GUICtrlListView_GetOriginX|GUICtrlListView_GetOriginY|GUICtrlListView_GetOutlineColor|GUICtrlListView_GetSelectedColumn|GUICtrlListView_GetSelectedCount|GUICtrlListView_GetSelectedIndices|GUICtrlListView_GetSelectionMark|GUICtrlListView_GetStringWidth|GUICtrlListView_GetSubItemRect|GUICtrlListView_GetTextBkColor|GUICtrlListView_GetTextColor|GUICtrlListView_GetToolTips|GUICtrlListView_GetTopIndex|GUICtrlListView_GetUnicodeFormat|GUICtrlListView_GetView|GUICtrlListView_GetViewDetails|GUICtrlListView_GetViewLarge|GUICtrlListView_GetViewList|GUICtrlListView_GetViewRect|GUICtrlListView_GetViewSmall|GUICtrlListView_GetViewTile|GUICtrlListView_HideColumn|GUICtrlListView_HitTest|GUICtrlListView_InsertColumn|GUICtrlListView_InsertGroup|GUICtrlListView_InsertItem|GUICtrlListView_JustifyColumn|GUICtrlListView_MapIDToIndex|GUICtrlListView_MapIndexToID|GUICtrlListView_RedrawItems|GUICtrlListView_RegisterSortCallBack|GUICtrlListView_RemoveAllGroups|GUICtrlListView_RemoveGroup|GUICtrlListView_Scroll|GUICtrlListView_SetBkColor|GUICtrlListView_SetBkImage|GUICtrlListView_SetCallBackMask|GUICtrlListView_SetColumn|GUICtrlListView_SetColumnOrder|GUICtrlListView_SetColumnOrderArray|GUICtrlListView_SetColumnWidth|GUICtrlListView_SetExtendedListViewStyle|GUICtrlListView_SetGroupInfo|GUICtrlListView_SetHotItem|GUICtrlListView_SetHoverTime|GUICtrlListView_SetIconSpacing|GUICtrlListView_SetImageList|GUICtrlListView_SetItem|GUICtrlListView_SetItemChecked|GUICtrlListView_SetItemCount|GUICtrlListView_SetItemCut|GUICtrlListView_SetItemDropHilited|GUICtrlListView_SetItemEx|GUICtrlListView_SetItemFocused|GUICtrlListView_SetItemGroupID|GUICtrlListView_SetItemImage|GUICtrlListView_SetItemIndent|GUICtrlListView_SetItemParam|GUICtrlListView_SetItemPosition|GUICtrlListView_SetItemPosition32|GUICtrlListView_SetItemSelected|GUICtrlListView_SetItemState|GUICtrlListView_SetItemStateImage|GUICtrlListView_SetItemText|GUICtrlListView_SetOutlineColor|GUICtrlListView_SetSelectedColumn|GUICtrlListView_SetSelectionMark|GUICtrlListView_SetTextBkColor|GUICtrlListView_SetTextColor|GUICtrlListView_SetToolTips|GUICtrlListView_SetUnicodeFormat|GUICtrlListView_SetView|GUICtrlListView_SetWorkAreas|GUICtrlListView_SimpleSort|GUICtrlListView_SortItems|GUICtrlListView_SubItemHitTest|GUICtrlListView_UnRegisterSortCallBack|GUICtrlMenu_AddMenuItem|GUICtrlMenu_AppendMenu|GUICtrlMenu_CheckMenuItem|GUICtrlMenu_CheckRadioItem|GUICtrlMenu_CreateMenu|GUICtrlMenu_CreatePopup|GUICtrlMenu_DeleteMenu|GUICtrlMenu_DestroyMenu|GUICtrlMenu_DrawMenuBar|GUICtrlMenu_EnableMenuItem|GUICtrlMenu_FindItem|GUICtrlMenu_FindParent|GUICtrlMenu_GetItemBmp|GUICtrlMenu_GetItemBmpChecked|GUICtrlMenu_GetItemBmpUnchecked|GUICtrlMenu_GetItemChecked|GUICtrlMenu_GetItemCount|GUICtrlMenu_GetItemData|GUICtrlMenu_GetItemDefault|GUICtrlMenu_GetItemDisabled|GUICtrlMenu_GetItemEnabled|GUICtrlMenu_GetItemGrayed|GUICtrlMenu_GetItemHighlighted|GUICtrlMenu_GetItemID|GUICtrlMenu_GetItemInfo|GUICtrlMenu_GetItemRect|GUICtrlMenu_GetItemRectEx|GUICtrlMenu_GetItemState|GUICtrlMenu_GetItemStateEx|GUICtrlMenu_GetItemSubMenu|GUICtrlMenu_GetItemText|GUICtrlMenu_GetItemType|GUICtrlMenu_GetMenu|GUICtrlMenu_GetMenuBackground|GUICtrlMenu_GetMenuBarInfo|GUICtrlMenu_GetMenuContextHelpID|GUICtrlMenu_GetMenuData|GUICtrlMenu_GetMenuDefaultItem|GUICtrlMenu_GetMenuHeight|GUICtrlMenu_GetMenuInfo|GUICtrlMenu_GetMenuStyle|GUICtrlMenu_GetSystemMenu|GUICtrlMenu_InsertMenuItem|GUICtrlMenu_InsertMenuItemEx|GUICtrlMenu_IsMenu|GUICtrlMenu_LoadMenu|GUICtrlMenu_MapAccelerator|GUICtrlMenu_MenuItemFromPoint|GUICtrlMenu_RemoveMenu|GUICtrlMenu_SetItemBitmaps|GUICtrlMenu_SetItemBmp|GUICtrlMenu_SetItemBmpChecked|GUICtrlMenu_SetItemBmpUnchecked|GUICtrlMenu_SetItemChecked|GUICtrlMenu_SetItemData|GUICtrlMenu_SetItemDefault|GUICtrlMenu_SetItemDisabled|GUICtrlMenu_SetItemEnabled|GUICtrlMenu_SetItemGrayed|GUICtrlMenu_SetItemHighlighted|GUICtrlMenu_SetItemID|GUICtrlMenu_SetItemInfo|GUICtrlMenu_SetItemState|GUICtrlMenu_SetItemSubMenu|GUICtrlMenu_SetItemText|GUICtrlMenu_SetItemType|GUICtrlMenu_SetMenu|GUICtrlMenu_SetMenuBackground|GUICtrlMenu_SetMenuContextHelpID|GUICtrlMenu_SetMenuData|GUICtrlMenu_SetMenuDefaultItem|GUICtrlMenu_SetMenuHeight|GUICtrlMenu_SetMenuInfo|GUICtrlMenu_SetMenuStyle|GUICtrlMenu_TrackPopupMenu|GUICtrlMonthCal_Create|GUICtrlMonthCal_Destroy|GUICtrlMonthCal_GetColor|GUICtrlMonthCal_GetColorArray|GUICtrlMonthCal_GetCurSel|GUICtrlMonthCal_GetCurSelStr|GUICtrlMonthCal_GetFirstDOW|GUICtrlMonthCal_GetFirstDOWStr|GUICtrlMonthCal_GetMaxSelCount|GUICtrlMonthCal_GetMaxTodayWidth|GUICtrlMonthCal_GetMinReqHeight|GUICtrlMonthCal_GetMinReqRect|GUICtrlMonthCal_GetMinReqRectArray|GUICtrlMonthCal_GetMinReqWidth|GUICtrlMonthCal_GetMonthDelta|GUICtrlMonthCal_GetMonthRange|GUICtrlMonthCal_GetMonthRangeMax|GUICtrlMonthCal_GetMonthRangeMaxStr|GUICtrlMonthCal_GetMonthRangeMin|GUICtrlMonthCal_GetMonthRangeMinStr|GUICtrlMonthCal_GetMonthRangeSpan|GUICtrlMonthCal_GetRange|GUICtrlMonthCal_GetRangeMax|GUICtrlMonthCal_GetRangeMaxStr|GUICtrlMonthCal_GetRangeMin|GUICtrlMonthCal_GetRangeMinStr|GUICtrlMonthCal_GetSelRange|GUICtrlMonthCal_GetSelRangeMax|GUICtrlMonthCal_GetSelRangeMaxStr|GUICtrlMonthCal_GetSelRangeMin|GUICtrlMonthCal_GetSelRangeMinStr|GUICtrlMonthCal_GetToday|GUICtrlMonthCal_GetTodayStr|GUICtrlMonthCal_GetUnicodeFormat|GUICtrlMonthCal_HitTest|GUICtrlMonthCal_SetColor|GUICtrlMonthCal_SetCurSel|GUICtrlMonthCal_SetDayState|GUICtrlMonthCal_SetFirstDOW|GUICtrlMonthCal_SetMaxSelCount|GUICtrlMonthCal_SetMonthDelta|GUICtrlMonthCal_SetRange|GUICtrlMonthCal_SetSelRange|GUICtrlMonthCal_SetToday|GUICtrlMonthCal_SetUnicodeFormat|GUICtrlRebar_AddBand|GUICtrlRebar_AddToolBarBand|GUICtrlRebar_BeginDrag|GUICtrlRebar_Create|GUICtrlRebar_DeleteBand|GUICtrlRebar_Destroy|GUICtrlRebar_DragMove|GUICtrlRebar_EndDrag|GUICtrlRebar_GetBandBackColor|GUICtrlRebar_GetBandBorders|GUICtrlRebar_GetBandBordersEx|GUICtrlRebar_GetBandChildHandle|GUICtrlRebar_GetBandChildSize|GUICtrlRebar_GetBandCount|GUICtrlRebar_GetBandForeColor|GUICtrlRebar_GetBandHeaderSize|GUICtrlRebar_GetBandID|GUICtrlRebar_GetBandIdealSize|GUICtrlRebar_GetBandLength|GUICtrlRebar_GetBandLParam|GUICtrlRebar_GetBandMargins|GUICtrlRebar_GetBandMarginsEx|GUICtrlRebar_GetBandRect|GUICtrlRebar_GetBandRectEx|GUICtrlRebar_GetBandStyle|GUICtrlRebar_GetBandStyleBreak|GUICtrlRebar_GetBandStyleChildEdge|GUICtrlRebar_GetBandStyleFixedBMP|GUICtrlRebar_GetBandStyleFixedSize|GUICtrlRebar_GetBandStyleGripperAlways|GUICtrlRebar_GetBandStyleHidden|GUICtrlRebar_GetBandStyleHideTitle|GUICtrlRebar_GetBandStyleNoGripper|GUICtrlRebar_GetBandStyleTopAlign|GUICtrlRebar_GetBandStyleUseChevron|GUICtrlRebar_GetBandStyleVariableHeight|GUICtrlRebar_GetBandText|GUICtrlRebar_GetBarHeight|GUICtrlRebar_GetBKColor|GUICtrlRebar_GetColorScheme|GUICtrlRebar_GetRowCount|GUICtrlRebar_GetRowHeight|GUICtrlRebar_GetTextColor|GUICtrlRebar_GetToolTips|GUICtrlRebar_GetUnicodeFormat|GUICtrlRebar_HitTest|GUICtrlRebar_IDToIndex|GUICtrlRebar_MaximizeBand|GUICtrlRebar_MinimizeBand|GUICtrlRebar_MoveBand|GUICtrlRebar_SetBandBackColor|GUICtrlRebar_SetBandForeColor|GUICtrlRebar_SetBandHeaderSize|GUICtrlRebar_SetBandID|GUICtrlRebar_SetBandIdealSize|GUICtrlRebar_SetBandLength|GUICtrlRebar_SetBandLParam|GUICtrlRebar_SetBandStyle|GUICtrlRebar_SetBandStyleBreak|GUICtrlRebar_SetBandStyleChildEdge|GUICtrlRebar_SetBandStyleFixedBMP|GUICtrlRebar_SetBandStyleFixedSize|GUICtrlRebar_SetBandStyleGripperAlways|GUICtrlRebar_SetBandStyleHidden|GUICtrlRebar_SetBandStyleHideTitle|GUICtrlRebar_SetBandStyleNoGripper|GUICtrlRebar_SetBandStyleTopAlign|GUICtrlRebar_SetBandStyleUseChevron|GUICtrlRebar_SetBandStyleVariableHeight|GUICtrlRebar_SetBandText|GUICtrlRebar_SetBKColor|GUICtrlRebar_SetColorScheme|GUICtrlRebar_SetTextColor|GUICtrlRebar_SetToolTips|GUICtrlRebar_SetUnicodeFormat|GUICtrlRebar_ShowBand|GUICtrlSlider_ClearSel|GUICtrlSlider_ClearTics|GUICtrlSlider_Create|GUICtrlSlider_Destroy|GUICtrlSlider_GetBuddy|GUICtrlSlider_GetChannelRect|GUICtrlSlider_GetLineSize|GUICtrlSlider_GetNumTics|GUICtrlSlider_GetPageSize|GUICtrlSlider_GetPos|GUICtrlSlider_GetPTics|GUICtrlSlider_GetRange|GUICtrlSlider_GetRangeMax|GUICtrlSlider_GetRangeMin|GUICtrlSlider_GetSel|GUICtrlSlider_GetSelEnd|GUICtrlSlider_GetSelStart|GUICtrlSlider_GetThumbLength|GUICtrlSlider_GetThumbRect|GUICtrlSlider_GetThumbRectEx|GUICtrlSlider_GetTic|GUICtrlSlider_GetTicPos|GUICtrlSlider_GetToolTips|GUICtrlSlider_GetUnicodeFormat|GUICtrlSlider_SetBuddy|GUICtrlSlider_SetLineSize|GUICtrlSlider_SetPageSize|GUICtrlSlider_SetPos|GUICtrlSlider_SetRange|GUICtrlSlider_SetRangeMax|GUICtrlSlider_SetRangeMin|GUICtrlSlider_SetSel|GUICtrlSlider_SetSelEnd|GUICtrlSlider_SetSelStart|GUICtrlSlider_SetThumbLength|GUICtrlSlider_SetTic|GUICtrlSlider_SetTicFreq|GUICtrlSlider_SetTipSide|GUICtrlSlider_SetToolTips|GUICtrlSlider_SetUnicodeFormat|GUICtrlStatusBar_Create|GUICtrlStatusBar_Destroy|GUICtrlStatusBar_EmbedControl|GUICtrlStatusBar_GetBorders|GUICtrlStatusBar_GetBordersHorz|GUICtrlStatusBar_GetBordersRect|GUICtrlStatusBar_GetBordersVert|GUICtrlStatusBar_GetCount|GUICtrlStatusBar_GetHeight|GUICtrlStatusBar_GetIcon|GUICtrlStatusBar_GetParts|GUICtrlStatusBar_GetRect|GUICtrlStatusBar_GetRectEx|GUICtrlStatusBar_GetText|GUICtrlStatusBar_GetTextFlags|GUICtrlStatusBar_GetTextLength|GUICtrlStatusBar_GetTextLengthEx|GUICtrlStatusBar_GetTipText|GUICtrlStatusBar_GetUnicodeFormat|GUICtrlStatusBar_GetWidth|GUICtrlStatusBar_IsSimple|GUICtrlStatusBar_Resize|GUICtrlStatusBar_SetBkColor|GUICtrlStatusBar_SetIcon|GUICtrlStatusBar_SetMinHeight|GUICtrlStatusBar_SetParts|GUICtrlStatusBar_SetSimple|GUICtrlStatusBar_SetText|GUICtrlStatusBar_SetTipText|GUICtrlStatusBar_SetUnicodeFormat|GUICtrlStatusBar_ShowHide|GUICtrlTab_Create|GUICtrlTab_DeleteAllItems|GUICtrlTab_DeleteItem|GUICtrlTab_DeselectAll|GUICtrlTab_Destroy|GUICtrlTab_FindTab|GUICtrlTab_GetCurFocus|GUICtrlTab_GetCurSel|GUICtrlTab_GetDisplayRect|GUICtrlTab_GetDisplayRectEx|GUICtrlTab_GetExtendedStyle|GUICtrlTab_GetImageList|GUICtrlTab_GetItem|GUICtrlTab_GetItemCount|GUICtrlTab_GetItemImage|GUICtrlTab_GetItemParam|GUICtrlTab_GetItemRect|GUICtrlTab_GetItemRectEx|GUICtrlTab_GetItemState|GUICtrlTab_GetItemText|GUICtrlTab_GetRowCount|GUICtrlTab_GetToolTips|GUICtrlTab_GetUnicodeFormat|GUICtrlTab_HighlightItem|GUICtrlTab_HitTest|GUICtrlTab_InsertItem|GUICtrlTab_RemoveImage|GUICtrlTab_SetCurFocus|GUICtrlTab_SetCurSel|GUICtrlTab_SetExtendedStyle|GUICtrlTab_SetImageList|GUICtrlTab_SetItem|GUICtrlTab_SetItemImage|GUICtrlTab_SetItemParam|GUICtrlTab_SetItemSize|GUICtrlTab_SetItemState|GUICtrlTab_SetItemText|GUICtrlTab_SetMinTabWidth|GUICtrlTab_SetPadding|GUICtrlTab_SetToolTips|GUICtrlTab_SetUnicodeFormat|GUICtrlToolbar_AddBitmap|GUICtrlToolbar_AddButton|GUICtrlToolbar_AddButtonSep|GUICtrlToolbar_AddString|GUICtrlToolbar_ButtonCount|GUICtrlToolbar_CheckButton|GUICtrlToolbar_ClickAccel|GUICtrlToolbar_ClickButton|GUICtrlToolbar_ClickIndex|GUICtrlToolbar_CommandToIndex|GUICtrlToolbar_Create|GUICtrlToolbar_Customize|GUICtrlToolbar_DeleteButton|GUICtrlToolbar_Destroy|GUICtrlToolbar_EnableButton|GUICtrlToolbar_FindToolbar|GUICtrlToolbar_GetAnchorHighlight|GUICtrlToolbar_GetBitmapFlags|GUICtrlToolbar_GetButtonBitmap|GUICtrlToolbar_GetButtonInfo|GUICtrlToolbar_GetButtonInfoEx|GUICtrlToolbar_GetButtonParam|GUICtrlToolbar_GetButtonRect|GUICtrlToolbar_GetButtonRectEx|GUICtrlToolbar_GetButtonSize|GUICtrlToolbar_GetButtonState|GUICtrlToolbar_GetButtonStyle|GUICtrlToolbar_GetButtonText|GUICtrlToolbar_GetColorScheme|GUICtrlToolbar_GetDisabledImageList|GUICtrlToolbar_GetExtendedStyle|GUICtrlToolbar_GetHotImageList|GUICtrlToolbar_GetHotItem|GUICtrlToolbar_GetImageList|GUICtrlToolbar_GetInsertMark|GUICtrlToolbar_GetInsertMarkColor|GUICtrlToolbar_GetMaxSize|GUICtrlToolbar_GetMetrics|GUICtrlToolbar_GetPadding|GUICtrlToolbar_GetRows|GUICtrlToolbar_GetString|GUICtrlToolbar_GetStyle|GUICtrlToolbar_GetStyleAltDrag|GUICtrlToolbar_GetStyleCustomErase|GUICtrlToolbar_GetStyleFlat|GUICtrlToolbar_GetStyleList|GUICtrlToolbar_GetStyleRegisterDrop|GUICtrlToolbar_GetStyleToolTips|GUICtrlToolbar_GetStyleTransparent|GUICtrlToolbar_GetStyleWrapable|GUICtrlToolbar_GetTextRows|GUICtrlToolbar_GetToolTips|GUICtrlToolbar_GetUnicodeFormat|GUICtrlToolbar_HideButton|GUICtrlToolbar_HighlightButton|GUICtrlToolbar_HitTest|GUICtrlToolbar_IndexToCommand|GUICtrlToolbar_InsertButton|GUICtrlToolbar_InsertMarkHitTest|GUICtrlToolbar_IsButtonChecked|GUICtrlToolbar_IsButtonEnabled|GUICtrlToolbar_IsButtonHidden|GUICtrlToolbar_IsButtonHighlighted|GUICtrlToolbar_IsButtonIndeterminate|GUICtrlToolbar_IsButtonPressed|GUICtrlToolbar_LoadBitmap|GUICtrlToolbar_LoadImages|GUICtrlToolbar_MapAccelerator|GUICtrlToolbar_MoveButton|GUICtrlToolbar_PressButton|GUICtrlToolbar_SetAnchorHighlight|GUICtrlToolbar_SetBitmapSize|GUICtrlToolbar_SetButtonBitMap|GUICtrlToolbar_SetButtonInfo|GUICtrlToolbar_SetButtonInfoEx|GUICtrlToolbar_SetButtonParam|GUICtrlToolbar_SetButtonSize|GUICtrlToolbar_SetButtonState|GUICtrlToolbar_SetButtonStyle|GUICtrlToolbar_SetButtonText|GUICtrlToolbar_SetButtonWidth|GUICtrlToolbar_SetCmdID|GUICtrlToolbar_SetColorScheme|GUICtrlToolbar_SetDisabledImageList|GUICtrlToolbar_SetDrawTextFlags|GUICtrlToolbar_SetExtendedStyle|GUICtrlToolbar_SetHotImageList|GUICtrlToolbar_SetHotItem|GUICtrlToolbar_SetImageList|GUICtrlToolbar_SetIndent|GUICtrlToolbar_SetIndeterminate|GUICtrlToolbar_SetInsertMark|GUICtrlToolbar_SetInsertMarkColor|GUICtrlToolbar_SetMaxTextRows|GUICtrlToolbar_SetMetrics|GUICtrlToolbar_SetPadding|GUICtrlToolbar_SetParent|GUICtrlToolbar_SetRows|GUICtrlToolbar_SetStyle|GUICtrlToolbar_SetStyleAltDrag|GUICtrlToolbar_SetStyleCustomErase|GUICtrlToolbar_SetStyleFlat|GUICtrlToolbar_SetStyleList|GUICtrlToolbar_SetStyleRegisterDrop|GUICtrlToolbar_SetStyleToolTips|GUICtrlToolbar_SetStyleTransparent|GUICtrlToolbar_SetStyleWrapable|GUICtrlToolbar_SetToolTips|GUICtrlToolbar_SetUnicodeFormat|GUICtrlToolbar_SetWindowTheme|GUICtrlTreeView_Add|GUICtrlTreeView_AddChild|GUICtrlTreeView_AddChildFirst|GUICtrlTreeView_AddFirst|GUICtrlTreeView_BeginUpdate|GUICtrlTreeView_ClickItem|GUICtrlTreeView_Create|GUICtrlTreeView_CreateDragImage|GUICtrlTreeView_CreateSolidBitMap|GUICtrlTreeView_Delete|GUICtrlTreeView_DeleteAll|GUICtrlTreeView_DeleteChildren|GUICtrlTreeView_Destroy|GUICtrlTreeView_DisplayRect|GUICtrlTreeView_DisplayRectEx|GUICtrlTreeView_EditText|GUICtrlTreeView_EndEdit|GUICtrlTreeView_EndUpdate|GUICtrlTreeView_EnsureVisible|GUICtrlTreeView_Expand|GUICtrlTreeView_ExpandedOnce|GUICtrlTreeView_FindItem|GUICtrlTreeView_FindItemEx|GUICtrlTreeView_GetBkColor|GUICtrlTreeView_GetBold|GUICtrlTreeView_GetChecked|GUICtrlTreeView_GetChildCount|GUICtrlTreeView_GetChildren|GUICtrlTreeView_GetCount|GUICtrlTreeView_GetCut|GUICtrlTreeView_GetDropTarget|GUICtrlTreeView_GetEditControl|GUICtrlTreeView_GetExpanded|GUICtrlTreeView_GetFirstChild|GUICtrlTreeView_GetFirstItem|GUICtrlTreeView_GetFirstVisible|GUICtrlTreeView_GetFocused|GUICtrlTreeView_GetHeight|GUICtrlTreeView_GetImageIndex|GUICtrlTreeView_GetImageListIconHandle|GUICtrlTreeView_GetIndent|GUICtrlTreeView_GetInsertMarkColor|GUICtrlTreeView_GetISearchString|GUICtrlTreeView_GetItemByIndex|GUICtrlTreeView_GetItemHandle|GUICtrlTreeView_GetItemParam|GUICtrlTreeView_GetLastChild|GUICtrlTreeView_GetLineColor|GUICtrlTreeView_GetNext|GUICtrlTreeView_GetNextChild|GUICtrlTreeView_GetNextSibling|GUICtrlTreeView_GetNextVisible|GUICtrlTreeView_GetNormalImageList|GUICtrlTreeView_GetParentHandle|GUICtrlTreeView_GetParentParam|GUICtrlTreeView_GetPrev|GUICtrlTreeView_GetPrevChild|GUICtrlTreeView_GetPrevSibling|GUICtrlTreeView_GetPrevVisible|GUICtrlTreeView_GetScrollTime|GUICtrlTreeView_GetSelected|GUICtrlTreeView_GetSelectedImageIndex|GUICtrlTreeView_GetSelection|GUICtrlTreeView_GetSiblingCount|GUICtrlTreeView_GetState|GUICtrlTreeView_GetStateImageIndex|GUICtrlTreeView_GetStateImageList|GUICtrlTreeView_GetText|GUICtrlTreeView_GetTextColor|GUICtrlTreeView_GetToolTips|GUICtrlTreeView_GetTree|GUICtrlTreeView_GetUnicodeFormat|GUICtrlTreeView_GetVisible|GUICtrlTreeView_GetVisibleCount|GUICtrlTreeView_HitTest|GUICtrlTreeView_HitTestEx|GUICtrlTreeView_HitTestItem|GUICtrlTreeView_Index|GUICtrlTreeView_InsertItem|GUICtrlTreeView_IsFirstItem|GUICtrlTreeView_IsParent|GUICtrlTreeView_Level|GUICtrlTreeView_SelectItem|GUICtrlTreeView_SelectItemByIndex|GUICtrlTreeView_SetBkColor|GUICtrlTreeView_SetBold|GUICtrlTreeView_SetChecked|GUICtrlTreeView_SetCheckedByIndex|GUICtrlTreeView_SetChildren|GUICtrlTreeView_SetCut|GUICtrlTreeView_SetDropTarget|GUICtrlTreeView_SetFocused|GUICtrlTreeView_SetHeight|GUICtrlTreeView_SetIcon|GUICtrlTreeView_SetImageIndex|GUICtrlTreeView_SetIndent|GUICtrlTreeView_SetInsertMark|GUICtrlTreeView_SetInsertMarkColor|GUICtrlTreeView_SetItemHeight|GUICtrlTreeView_SetItemParam|GUICtrlTreeView_SetLineColor|GUICtrlTreeView_SetNormalImageList|GUICtrlTreeView_SetScrollTime|GUICtrlTreeView_SetSelected|GUICtrlTreeView_SetSelectedImageIndex|GUICtrlTreeView_SetState|GUICtrlTreeView_SetStateImageIndex|GUICtrlTreeView_SetStateImageList|GUICtrlTreeView_SetText|GUICtrlTreeView_SetTextColor|GUICtrlTreeView_SetToolTips|GUICtrlTreeView_SetUnicodeFormat|GUICtrlTreeView_Sort|GUIImageList_Add|GUIImageList_AddBitmap|GUIImageList_AddIcon|GUIImageList_AddMasked|GUIImageList_BeginDrag|GUIImageList_Copy|GUIImageList_Create|GUIImageList_Destroy|GUIImageList_DestroyIcon|GUIImageList_DragEnter|GUIImageList_DragLeave|GUIImageList_DragMove|GUIImageList_Draw|GUIImageList_DrawEx|GUIImageList_Duplicate|GUIImageList_EndDrag|GUIImageList_GetBkColor|GUIImageList_GetIcon|GUIImageList_GetIconHeight|GUIImageList_GetIconSize|GUIImageList_GetIconSizeEx|GUIImageList_GetIconWidth|GUIImageList_GetImageCount|GUIImageList_GetImageInfoEx|GUIImageList_Remove|GUIImageList_ReplaceIcon|GUIImageList_SetBkColor|GUIImageList_SetIconSize|GUIImageList_SetImageCount|GUIImageList_Swap|GUIScrollBars_EnableScrollBar|GUIScrollBars_GetScrollBarInfoEx|GUIScrollBars_GetScrollBarRect|GUIScrollBars_GetScrollBarRGState|GUIScrollBars_GetScrollBarXYLineButton|GUIScrollBars_GetScrollBarXYThumbBottom|GUIScrollBars_GetScrollBarXYThumbTop|GUIScrollBars_GetScrollInfo|GUIScrollBars_GetScrollInfoEx|GUIScrollBars_GetScrollInfoMax|GUIScrollBars_GetScrollInfoMin|GUIScrollBars_GetScrollInfoPage|GUIScrollBars_GetScrollInfoPos|GUIScrollBars_GetScrollInfoTrackPos|GUIScrollBars_GetScrollPos|GUIScrollBars_GetScrollRange|GUIScrollBars_Init|GUIScrollBars_ScrollWindow|GUIScrollBars_SetScrollInfo|GUIScrollBars_SetScrollInfoMax|GUIScrollBars_SetScrollInfoMin|GUIScrollBars_SetScrollInfoPage|GUIScrollBars_SetScrollInfoPos|GUIScrollBars_SetScrollRange|GUIScrollBars_ShowScrollBar|GUIToolTip_Activate|GUIToolTip_AddTool|GUIToolTip_AdjustRect|GUIToolTip_BitsToTTF|GUIToolTip_Create|GUIToolTip_DelTool|GUIToolTip_Destroy|GUIToolTip_EnumTools|GUIToolTip_GetBubbleHeight|GUIToolTip_GetBubbleSize|GUIToolTip_GetBubbleWidth|GUIToolTip_GetCurrentTool|GUIToolTip_GetDelayTime|GUIToolTip_GetMargin|GUIToolTip_GetMarginEx|GUIToolTip_GetMaxTipWidth|GUIToolTip_GetText|GUIToolTip_GetTipBkColor|GUIToolTip_GetTipTextColor|GUIToolTip_GetTitleBitMap|GUIToolTip_GetTitleText|GUIToolTip_GetToolCount|GUIToolTip_GetToolInfo|GUIToolTip_HitTest|GUIToolTip_NewToolRect|GUIToolTip_Pop|GUIToolTip_PopUp|GUIToolTip_SetDelayTime|GUIToolTip_SetMargin|GUIToolTip_SetMaxTipWidth|GUIToolTip_SetTipBkColor|GUIToolTip_SetTipTextColor|GUIToolTip_SetTitle|GUIToolTip_SetToolInfo|GUIToolTip_SetWindowTheme|GUIToolTip_ToolExists|GUIToolTip_ToolToArray|GUIToolTip_TrackActivate|GUIToolTip_TrackPosition|GUIToolTip_TTFToBits|GUIToolTip_Update|GUIToolTip_UpdateTipText|HexToString|IE_Example|IE_Introduction|IE_VersionInfo|IEAction|IEAttach|IEBodyReadHTML|IEBodyReadText|IEBodyWriteHTML|IECreate|IECreateEmbedded|IEDocGetObj|IEDocInsertHTML|IEDocInsertText|IEDocReadHTML|IEDocWriteHTML|IEErrorHandlerDeRegister|IEErrorHandlerRegister|IEErrorNotify|IEFormElementCheckBoxSelect|IEFormElementGetCollection|IEFormElementGetObjByName|IEFormElementGetValue|IEFormElementOptionSelect|IEFormElementRadioSelect|IEFormElementSetValue|IEFormGetCollection|IEFormGetObjByName|IEFormImageClick|IEFormReset|IEFormSubmit|IEFrameGetCollection|IEFrameGetObjByName|IEGetObjById|IEGetObjByName|IEHeadInsertEventScript|IEImgClick|IEImgGetCollection|IEIsFrameSet|IELinkClickByIndex|IELinkClickByText|IELinkGetCollection|IELoadWait|IELoadWaitTimeout|IENavigate|IEPropertyGet|IEPropertySet|IEQuit|IETableGetCollection|IETableWriteToArray|IETagNameAllGetCollection|IETagNameGetCollection|Iif|INetExplorerCapable|INetGetSource|INetMail|INetSmtpMail|IsPressed|MathCheckDiv|Max|MemGlobalAlloc|MemGlobalFree|MemGlobalLock|MemGlobalSize|MemGlobalUnlock|MemMoveMemory|MemMsgBox|MemShowError|MemVirtualAlloc|MemVirtualAllocEx|MemVirtualFree|MemVirtualFreeEx|Min|MouseTrap|NamedPipes_CallNamedPipe|NamedPipes_ConnectNamedPipe|NamedPipes_CreateNamedPipe|NamedPipes_CreatePipe|NamedPipes_DisconnectNamedPipe|NamedPipes_GetNamedPipeHandleState|NamedPipes_GetNamedPipeInfo|NamedPipes_PeekNamedPipe|NamedPipes_SetNamedPipeHandleState|NamedPipes_TransactNamedPipe|NamedPipes_WaitNamedPipe|Net_Share_ConnectionEnum|Net_Share_FileClose|Net_Share_FileEnum|Net_Share_FileGetInfo|Net_Share_PermStr|Net_Share_ResourceStr|Net_Share_SessionDel|Net_Share_SessionEnum|Net_Share_SessionGetInfo|Net_Share_ShareAdd|Net_Share_ShareCheck|Net_Share_ShareDel|Net_Share_ShareEnum|Net_Share_ShareGetInfo|Net_Share_ShareSetInfo|Net_Share_StatisticsGetSvr|Net_Share_StatisticsGetWrk|Now|NowCalc|NowCalcDate|NowDate|NowTime|PathFull|PathMake|PathSplit|ProcessGetName|ProcessGetPriority|Radian|ReplaceStringInFile|RunDOS|ScreenCapture_Capture|ScreenCapture_CaptureWnd|ScreenCapture_SaveImage|ScreenCapture_SetBMPFormat|ScreenCapture_SetJPGQuality|ScreenCapture_SetTIFColorDepth|ScreenCapture_SetTIFCompression|Security__AdjustTokenPrivileges|Security__GetAccountSid|Security__GetLengthSid|Security__GetTokenInformation|Security__ImpersonateSelf|Security__IsValidSid|Security__LookupAccountName|Security__LookupAccountSid|Security__LookupPrivilegeValue|Security__OpenProcessToken|Security__OpenThreadToken|Security__OpenThreadTokenEx|Security__SetPrivilege|Security__SidToStringSid|Security__SidTypeStr|Security__StringSidToSid|SendMessage|SendMessageA|SetDate|SetTime|Singleton|SoundClose|SoundLength|SoundOpen|SoundPause|SoundPlay|SoundPos|SoundResume|SoundSeek|SoundStatus|SoundStop|SQLite_Changes|SQLite_Close|SQLite_Display2DResult|SQLite_Encode|SQLite_ErrCode|SQLite_ErrMsg|SQLite_Escape|SQLite_Exec|SQLite_FetchData|SQLite_FetchNames|SQLite_GetTable|SQLite_GetTable2d|SQLite_LastInsertRowID|SQLite_LibVersion|SQLite_Open|SQLite_Query|SQLite_QueryFinalize|SQLite_QueryReset|SQLite_QuerySingleRow|SQLite_SaveMode|SQLite_SetTimeout|SQLite_Shutdown|SQLite_SQLiteExe|SQLite_Startup|SQLite_TotalChanges|StringAddComma|StringBetween|StringEncrypt|StringInsert|StringProper|StringRepeat|StringReverse|StringSplit|StringToHex|TCPIpToName|TempFile|TicksToTime|Timer_Diff|Timer_GetTimerID|Timer_Init|Timer_KillAllTimers|Timer_KillTimer|Timer_SetTimer|TimeToTicks|VersionCompare|viClose|viExecCommand|viFindGpib|viGpibBusReset|viGTL|viOpen|viSetAttribute|viSetTimeout|WeekNumberISO|WinAPI_AttachConsole|WinAPI_AttachThreadInput|WinAPI_Beep|WinAPI_BitBlt|WinAPI_CallNextHookEx|WinAPI_Check|WinAPI_ClientToScreen|WinAPI_CloseHandle|WinAPI_CommDlgExtendedError|WinAPI_CopyIcon|WinAPI_CreateBitmap|WinAPI_CreateCompatibleBitmap|WinAPI_CreateCompatibleDC|WinAPI_CreateEvent|WinAPI_CreateFile|WinAPI_CreateFont|WinAPI_CreateFontIndirect|WinAPI_CreateProcess|WinAPI_CreateSolidBitmap|WinAPI_CreateSolidBrush|WinAPI_CreateWindowEx|WinAPI_DefWindowProc|WinAPI_DeleteDC|WinAPI_DeleteObject|WinAPI_DestroyIcon|WinAPI_DestroyWindow|WinAPI_DrawEdge|WinAPI_DrawFrameControl|WinAPI_DrawIcon|WinAPI_DrawIconEx|WinAPI_DrawText|WinAPI_EnableWindow|WinAPI_EnumDisplayDevices|WinAPI_EnumWindows|WinAPI_EnumWindowsPopup|WinAPI_EnumWindowsTop|WinAPI_ExpandEnvironmentStrings|WinAPI_ExtractIconEx|WinAPI_FatalAppExit|WinAPI_FillRect|WinAPI_FindExecutable|WinAPI_FindWindow|WinAPI_FlashWindow|WinAPI_FlashWindowEx|WinAPI_FloatToInt|WinAPI_FlushFileBuffers|WinAPI_FormatMessage|WinAPI_FrameRect|WinAPI_FreeLibrary|WinAPI_GetAncestor|WinAPI_GetAsyncKeyState|WinAPI_GetClassName|WinAPI_GetClientHeight|WinAPI_GetClientRect|WinAPI_GetClientWidth|WinAPI_GetCurrentProcess|WinAPI_GetCurrentProcessID|WinAPI_GetCurrentThread|WinAPI_GetCurrentThreadId|WinAPI_GetCursorInfo|WinAPI_GetDC|WinAPI_GetDesktopWindow|WinAPI_GetDeviceCaps|WinAPI_GetDIBits|WinAPI_GetDlgCtrlID|WinAPI_GetDlgItem|WinAPI_GetFileSizeEx|WinAPI_GetFocus|WinAPI_GetForegroundWindow|WinAPI_GetIconInfo|WinAPI_GetLastError|WinAPI_GetLastErrorMessage|WinAPI_GetModuleHandle|WinAPI_GetMousePos|WinAPI_GetMousePosX|WinAPI_GetMousePosY|WinAPI_GetObject|WinAPI_GetOpenFileName|WinAPI_GetOverlappedResult|WinAPI_GetParent|WinAPI_GetProcessAffinityMask|WinAPI_GetSaveFileName|WinAPI_GetStdHandle|WinAPI_GetStockObject|WinAPI_GetSysColor|WinAPI_GetSysColorBrush|WinAPI_GetSystemMetrics|WinAPI_GetTextExtentPoint32|WinAPI_GetWindow|WinAPI_GetWindowDC|WinAPI_GetWindowHeight|WinAPI_GetWindowLong|WinAPI_GetWindowRect|WinAPI_GetWindowText|WinAPI_GetWindowThreadProcessId|WinAPI_GetWindowWidth|WinAPI_GetXYFromPoint|WinAPI_GlobalMemStatus|WinAPI_GUIDFromString|WinAPI_GUIDFromStringEx|WinAPI_HiWord|WinAPI_InProcess|WinAPI_IntToFloat|WinAPI_InvalidateRect|WinAPI_IsClassName|WinAPI_IsWindow|WinAPI_IsWindowVisible|WinAPI_LoadBitmap|WinAPI_LoadImage|WinAPI_LoadLibrary|WinAPI_LoadLibraryEx|WinAPI_LoadShell32Icon|WinAPI_LoadString|WinAPI_LocalFree|WinAPI_LoWord|WinAPI_MakeDWord|WinAPI_MAKELANGID|WinAPI_MAKELCID|WinAPI_MakeLong|WinAPI_MessageBeep|WinAPI_Mouse_Event|WinAPI_MoveWindow|WinAPI_MsgBox|WinAPI_MulDiv|WinAPI_MultiByteToWideChar|WinAPI_MultiByteToWideCharEx|WinAPI_OpenProcess|WinAPI_PointFromRect|WinAPI_PostMessage|WinAPI_PrimaryLangId|WinAPI_PtInRect|WinAPI_ReadFile|WinAPI_ReadProcessMemory|WinAPI_RectIsEmpty|WinAPI_RedrawWindow|WinAPI_RegisterWindowMessage|WinAPI_ReleaseCapture|WinAPI_ReleaseDC|WinAPI_ScreenToClient|WinAPI_SelectObject|WinAPI_SetBkColor|WinAPI_SetCapture|WinAPI_SetCursor|WinAPI_SetDefaultPrinter|WinAPI_SetDIBits|WinAPI_SetEvent|WinAPI_SetFocus|WinAPI_SetFont|WinAPI_SetHandleInformation|WinAPI_SetLastError|WinAPI_SetParent|WinAPI_SetProcessAffinityMask|WinAPI_SetSysColors|WinAPI_SetTextColor|WinAPI_SetWindowLong|WinAPI_SetWindowPos|WinAPI_SetWindowsHookEx|WinAPI_SetWindowText|WinAPI_ShowCursor|WinAPI_ShowError|WinAPI_ShowMsg|WinAPI_ShowWindow|WinAPI_StringFromGUID|WinAPI_SubLangId|WinAPI_SystemParametersInfo|WinAPI_TwipsPerPixelX|WinAPI_TwipsPerPixelY|WinAPI_UnhookWindowsHookEx|WinAPI_UpdateLayeredWindow|WinAPI_UpdateWindow|WinAPI_ValidateClassName|WinAPI_WaitForInputIdle|WinAPI_WaitForMultipleObjects|WinAPI_WaitForSingleObject|WinAPI_WideCharToMultiByte|WinAPI_WindowFromPoint|WinAPI_WriteConsole|WinAPI_WriteFile|WinAPI_WriteProcessMemory|WinNet_AddConnection|WinNet_AddConnection2|WinNet_AddConnection3|WinNet_CancelConnection|WinNet_CancelConnection2|WinNet_CloseEnum|WinNet_ConnectionDialog|WinNet_ConnectionDialog1|WinNet_DisconnectDialog|WinNet_DisconnectDialog1|WinNet_EnumResource|WinNet_GetConnection|WinNet_GetConnectionPerformance|WinNet_GetLastError|WinNet_GetNetworkInformation|WinNet_GetProviderName|WinNet_GetResourceInformation|WinNet_GetResourceParent|WinNet_GetUniversalName|WinNet_GetUser|WinNet_OpenEnum|WinNet_RestoreConnection|WinNet_UseConnection|Word_VersionInfo|WordAttach|WordCreate|WordDocAdd|WordDocAddLink|WordDocAddPicture|WordDocClose|WordDocFindReplace|WordDocGetCollection|WordDocLinkGetCollection|WordDocOpen|WordDocPrint|WordDocPropertyGet|WordDocPropertySet|WordDocSave|WordDocSaveAs|WordErrorHandlerDeRegister|WordErrorHandlerRegister|WordErrorNotify|WordMacroRun|WordPropertyGet|WordPropertySet|WordQuit|ce|comments-end|comments-start|cs|include|include-once|NoTrayIcon|RequireAdmin|AutoIt3Wrapper_Au3Check_Parameters|AutoIt3Wrapper_Au3Check_Stop_OnWarning|AutoIt3Wrapper_Change2CUI|AutoIt3Wrapper_Compression|AutoIt3Wrapper_cvsWrapper_Parameters|AutoIt3Wrapper_Icon|AutoIt3Wrapper_Outfile|AutoIt3Wrapper_Outfile_Type|AutoIt3Wrapper_Plugin_Funcs|AutoIt3Wrapper_Res_Comment|AutoIt3Wrapper_Res_Description|AutoIt3Wrapper_Res_Field|AutoIt3Wrapper_Res_File_Add|AutoIt3Wrapper_Res_Fileversion|AutoIt3Wrapper_Res_FileVersion_AutoIncrement|AutoIt3Wrapper_Res_Icon_Add|AutoIt3Wrapper_Res_Language|AutoIt3Wrapper_Res_LegalCopyright|AutoIt3Wrapper_res_requestedExecutionLevel|AutoIt3Wrapper_Res_SaveSource|AutoIt3Wrapper_Run_After|AutoIt3Wrapper_Run_Au3check|AutoIt3Wrapper_Run_Before|AutoIt3Wrapper_Run_cvsWrapper|AutoIt3Wrapper_Run_Debug_Mode|AutoIt3Wrapper_Run_Obfuscator|AutoIt3Wrapper_Run_Tidy|AutoIt3Wrapper_Tidy_Stop_OnError|AutoIt3Wrapper_UseAnsi|AutoIt3Wrapper_UseUpx|AutoIt3Wrapper_UseX64|AutoIt3Wrapper_Version|EndRegion|forceref|Obfuscator_Ignore_Funcs|Obfuscator_Ignore_Variables|Obfuscator_Parameters|Region|Tidy_Parameters\",t=\"AppDataCommonDir|AppDataDir|AutoItExe|AutoItPID|AutoItUnicode|AutoItVersion|AutoItX64|COM_EventObj|CommonFilesDir|Compiled|ComputerName|ComSpec|CR|CRLF|DesktopCommonDir|DesktopDepth|DesktopDir|DesktopHeight|DesktopRefresh|DesktopWidth|DocumentsCommonDir|error|exitCode|exitMethod|extended|FavoritesCommonDir|FavoritesDir|GUI_CtrlHandle|GUI_CtrlId|GUI_DragFile|GUI_DragId|GUI_DropId|GUI_WinHandle|HomeDrive|HomePath|HomeShare|HotKeyPressed|HOUR|InetGetActive|InetGetBytesRead|IPAddress1|IPAddress2|IPAddress3|IPAddress4|KBLayout|LF|LogonDNSDomain|LogonDomain|LogonServer|MDAY|MIN|MON|MyDocumentsDir|NumParams|OSBuild|OSLang|OSServicePack|OSTYPE|OSVersion|ProcessorArch|ProgramFilesDir|ProgramsCommonDir|ProgramsDir|ScriptDir|ScriptFullPath|ScriptLineNumber|ScriptName|SEC|StartMenuCommonDir|StartMenuDir|StartupCommonDir|StartupDir|SW_DISABLE|SW_ENABLE|SW_HIDE|SW_LOCK|SW_MAXIMIZE|SW_MINIMIZE|SW_RESTORE|SW_SHOW|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWMINNOACTIVE|SW_SHOWNA|SW_SHOWNOACTIVATE|SW_SHOWNORMAL|SW_UNLOCK|SystemDir|TAB|TempDir|TRAY_ID|TrayIconFlashing|TrayIconVisible|UserName|UserProfileDir|WDAY|WindowsDir|WorkingDir|YDAY|YEAR\";this.$rules={start:[{token:\"comment.line.ahk\",regex:\"(?:^| );.*$\"},{token:\"comment.block.ahk\",regex:\"/\\\\*\",push:[{token:\"comment.block.ahk\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.ahk\"}]},{token:\"doc.comment.ahk\",regex:\"#cs\",push:[{token:\"doc.comment.ahk\",regex:\"#ce\",next:\"pop\"},{defaultToken:\"doc.comment.ahk\"}]},{token:\"keyword.command.ahk\",regex:\"(?:\\\\b|^)(?:allowsamelinecomments|clipboardtimeout|commentflag|errorstdout|escapechar|hotkeyinterval|hotkeymodifiertimeout|hotstring|include|includeagain|installkeybdhook|installmousehook|keyhistory|ltrim|maxhotkeysperinterval|maxmem|maxthreads|maxthreadsbuffer|maxthreadsperhotkey|noenv|notrayicon|persistent|singleinstance|usehook|winactivateforce|autotrim|blockinput|click|clipwait|continue|control|controlclick|controlfocus|controlget|controlgetfocus|controlgetpos|controlgettext|controlmove|controlsend|controlsendraw|controlsettext|coordmode|critical|detecthiddentext|detecthiddenwindows|drive|driveget|drivespacefree|edit|endrepeat|envadd|envdiv|envget|envmult|envset|envsub|envupdate|exit|exitapp|fileappend|filecopy|filecopydir|filecreatedir|filecreateshortcut|filedelete|filegetattrib|filegetshortcut|filegetsize|filegettime|filegetversion|fileinstall|filemove|filemovedir|fileread|filereadline|filerecycle|filerecycleempty|fileremovedir|fileselectfile|fileselectfolder|filesetattrib|filesettime|formattime|getkeystate|gosub|goto|groupactivate|groupadd|groupclose|groupdeactivate|gui|guicontrol|guicontrolget|hideautoitwin|hotkey|ifequal|ifexist|ifgreater|ifgreaterorequal|ifinstring|ifless|iflessorequal|ifmsgbox|ifnotequal|ifnotexist|ifnotinstring|ifwinactive|ifwinexist|ifwinnotactive|ifwinnotexist|imagesearch|inidelete|iniread|iniwrite|input|inputbox|keyhistory|keywait|listhotkeys|listlines|listvars|menu|mouseclick|mouseclickdrag|mousegetpos|mousemove|msgbox|onexit|outputdebug|pause|pixelgetcolor|pixelsearch|postmessage|process|progress|random|regdelete|regread|regwrite|reload|repeat|run|runas|runwait|send|sendevent|sendinput|sendmode|sendplay|sendmessage|sendraw|setbatchlines|setcapslockstate|setcontroldelay|setdefaultmousespeed|setenv|setformat|setkeydelay|setmousedelay|setnumlockstate|setscrolllockstate|setstorecapslockmode|settimer|settitlematchmode|setwindelay|setworkingdir|shutdown|sleep|sort|soundbeep|soundget|soundgetwavevolume|soundplay|soundset|soundsetwavevolume|splashimage|splashtextoff|splashtexton|splitpath|statusbargettext|statusbarwait|stringcasesense|stringgetpos|stringleft|stringlen|stringlower|stringmid|stringreplace|stringright|stringsplit|stringtrimleft|stringtrimright|stringupper|suspend|sysget|thread|tooltip|transform|traytip|urldownloadtofile|while|winactivate|winactivatebottom|winclose|winget|wingetactivestats|wingetactivetitle|wingetclass|wingetpos|wingettext|wingettitle|winhide|winkill|winmaximize|winmenuselectitem|winminimize|winminimizeall|winminimizeallundo|winmove|winrestore|winset|winsettitle|winshow|winwait|winwaitactive|winwaitclose|winwaitnotactive)\\\\b\",caseInsensitive:!0},{token:\"keyword.control.ahk\",regex:\"(?:\\\\b|^)(?:if|else|return|loop|break|for|while|global|local|byref)\\\\b\",caseInsensitive:!0},{token:\"support.function.ahk\",regex:\"(?:\\\\b|^)(?:abs|acos|asc|asin|atan|ceil|chr|cos|dllcall|exp|fileexist|floor|getkeystate|il_add|il_create|il_destroy|instr|substr|isfunc|islabel|ln|log|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|onmessage|numget|numput|registercallback|regexmatch|regexreplace|round|sin|tan|sqrt|strlen|sb_seticon|sb_setparts|sb_settext|tv_add|tv_delete|tv_getchild|tv_getcount|tv_getnext|tv_get|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist)\\\\b\",caseInsensitive:!0},{token:\"variable.predefined.ahk\",regex:\"(?:\\\\b|^)(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_formatfloat|a_formatinteger|a_gui|a_guievent|a_guicontrol|a_guicontrolevent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|programfiles|a_programfiles|a_programs|a_programscommon|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel)\\\\b\",caseInsensitive:!0},{token:\"support.constant.ahk\",regex:\"(?:\\\\b|^)(?:shift|lshift|rshift|alt|lalt|ralt|control|lcontrol|rcontrol|ctrl|lctrl|rctrl|lwin|rwin|appskey|altdown|altup|shiftdown|shiftup|ctrldown|ctrlup|lwindown|lwinup|rwindown|rwinup|lbutton|rbutton|mbutton|wheelup|wheelleft|wheelright|wheeldown|xbutton1|xbutton2|joy1|joy2|joy3|joy4|joy5|joy6|joy7|joy8|joy9|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy30|joy31|joy32|joyx|joyy|joyz|joyr|joyu|joyv|joypov|joyname|joybuttons|joyaxes|joyinfo|space|tab|enter|escape|esc|backspace|bs|delete|del|insert|ins|pgup|pgdn|home|end|up|down|left|right|printscreen|ctrlbreak|pause|scrolllock|capslock|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadmult|numpadadd|numpadsub|numpaddiv|numpaddot|numpaddel|numpadins|numpadclear|numpadup|numpaddown|numpadleft|numpadright|numpadhome|numpadend|numpadpgup|numpadpgdn|numpadenter|f1|f2|f3|f4|f5|f6|f7|f8|f9|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f20|f21|f22|f23|f24|browser_back|browser_forward|browser_refresh|browser_stop|browser_search|browser_favorites|browser_home|volume_mute|volume_down|volume_up|media_next|media_prev|media_stop|media_play_pause|launch_mail|launch_media|launch_app1|launch_app2)\\\\b\",caseInsensitive:!0},{token:\"variable.parameter\",regex:\"(?:\\\\b|^)(?:pixel|mouse|screen|relative|rgb|ltrim|rtrim|join|low|belownormal|normal|abovenormal|high|realtime|ahk_id|ahk_pid|ahk_class|ahk_group|between|contains|in|is|integer|float|integerfast|floatfast|number|digit|xdigit|alpha|upper|lower|alnum|time|date|not|or|and|alwaysontop|topmost|top|bottom|transparent|transcolor|redraw|region|id|idlast|processname|minmax|controllist|count|list|capacity|statuscd|eject|lock|unlock|label|filesystem|label|setlabel|serial|type|status|static|seconds|minutes|hours|days|read|parse|logoff|close|error|single|tray|add|rename|check|uncheck|togglecheck|enable|disable|toggleenable|default|nodefault|standard|nostandard|color|delete|deleteall|icon|noicon|tip|click|show|mainwindow|nomainwindow|useerrorlevel|text|picture|pic|groupbox|button|checkbox|radio|dropdownlist|ddl|combobox|listbox|listview|datetime|monthcal|updown|slider|tab|tab2|statusbar|treeview|iconsmall|tile|report|sortdesc|nosort|nosorthdr|grid|hdr|autosize|range|xm|ym|ys|xs|xp|yp|font|resize|owner|submit|nohide|minimize|maximize|restore|noactivate|na|cancel|destroy|center|margin|maxsize|minsize|owndialogs|guiescape|guiclose|guisize|guicontextmenu|guidropfiles|tabstop|section|altsubmit|wrap|hscroll|vscroll|border|top|bottom|buttons|expand|first|imagelist|lines|wantctrla|wantf2|vis|visfirst|number|uppercase|lowercase|limit|password|multi|wantreturn|group|background|bold|italic|strike|underline|norm|backgroundtrans|theme|caption|delimiter|minimizebox|maximizebox|sysmenu|toolwindow|flash|style|exstyle|check3|checked|checkedgray|readonly|password|hidden|left|right|center|notab|section|move|focus|hide|choose|choosestring|text|pos|enabled|disabled|visible|lastfound|lastfoundexist|alttab|shiftalttab|alttabmenu|alttabandmenu|alttabmenudismiss|notimers|interrupt|priority|waitclose|blind|raw|unicode|deref|pow|bitnot|bitand|bitor|bitxor|bitshiftleft|bitshiftright|yes|no|ok|cancel|abort|retry|ignore|tryagain|on|off|all|hkey_local_machine|hkey_users|hkey_current_user|hkey_classes_root|hkey_current_config|hklm|hku|hkcu|hkcr|hkcc|reg_sz|reg_expand_sz|reg_multi_sz|reg_dword|reg_qword|reg_binary|reg_link|reg_resource_list|reg_full_resource_descriptor|reg_resource_requirements_list|reg_dword_big_endian)\\\\b\",caseInsensitive:!0},{keywordMap:{\"constant.language\":e},regex:\"\\\\w+\\\\b\"},{keywordMap:{\"variable.function\":t},regex:\"@\\\\w+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"keyword.operator.ahk\",regex:\"=|==|<>|:=|<|>|\\\\*|\\\\/|\\\\+|:|\\\\?|\\\\-\"},{token:\"punctuation.ahk\",regex:\"#|`|::|,|\\\\{|\\\\}|\\\\(|\\\\)|\\\\%\"},{token:[\"punctuation.quote.double\",\"string.quoted.ahk\",\"punctuation.quote.double\"],regex:'(\")((?:[^\"]|\"\")*)(\")'},{token:[\"label.ahk\",\"punctuation.definition.label.ahk\"],regex:\"^([^: ]+)(:)(?!:)\"}]},this.normalizeRules()};s.metaData={name:\"AutoHotKey\",scopeName:\"source.ahk\",fileTypes:[\"ahk\"],foldingStartMarker:\"^\\\\s*/\\\\*|^(?![^{]*?;|[^{]*?/\\\\*(?!.*?\\\\*/.*?\\\\{)).*?\\\\{\\\\s*($|;|/\\\\*(?!.*?\\\\*/.*\\\\S))\",foldingStopMarker:\"^\\\\s*\\\\*/|^\\\\s*\\\\}\"},r.inherits(s,i),t.AutoHotKeyHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/autohotkey\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/autohotkey_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./autohotkey_highlight_rules\").AutoHotKeyHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\";\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/autohotkey\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-batchfile.js",
    "content": "ace.define(\"ace/mode/batchfile_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"keyword.command.dosbatch\",regex:\"\\\\b(?:append|assoc|at|attrib|break|cacls|cd|chcp|chdir|chkdsk|chkntfs|cls|cmd|color|comp|compact|convert|copy|date|del|dir|diskcomp|diskcopy|doskey|echo|endlocal|erase|fc|find|findstr|format|ftype|graftabl|help|keyb|label|md|mkdir|mode|more|move|path|pause|popd|print|prompt|pushd|rd|recover|ren|rename|replace|restore|rmdir|set|setlocal|shift|sort|start|subst|time|title|tree|type|ver|verify|vol|xcopy)\\\\b\",caseInsensitive:!0},{token:\"keyword.control.statement.dosbatch\",regex:\"\\\\b(?:goto|call|exit)\\\\b\",caseInsensitive:!0},{token:\"keyword.control.conditional.if.dosbatch\",regex:\"\\\\bif\\\\s+not\\\\s+(?:exist|defined|errorlevel|cmdextversion)\\\\b\",caseInsensitive:!0},{token:\"keyword.control.conditional.dosbatch\",regex:\"\\\\b(?:if|else)\\\\b\",caseInsensitive:!0},{token:\"keyword.control.repeat.dosbatch\",regex:\"\\\\bfor\\\\b\",caseInsensitive:!0},{token:\"keyword.operator.dosbatch\",regex:\"\\\\b(?:EQU|NEQ|LSS|LEQ|GTR|GEQ)\\\\b\"},{token:[\"doc.comment\",\"comment\"],regex:\"(?:^|\\\\b)(rem)($|\\\\s.*$)\",caseInsensitive:!0},{token:\"comment.line.colons.dosbatch\",regex:\"::.*$\"},{include:\"variable\"},{token:\"punctuation.definition.string.begin.shell\",regex:'\"',push:[{token:\"punctuation.definition.string.end.shell\",regex:'\"',next:\"pop\"},{include:\"variable\"},{defaultToken:\"string.quoted.double.dosbatch\"}]},{token:\"keyword.operator.pipe.dosbatch\",regex:\"[|]\"},{token:\"keyword.operator.redirect.shell\",regex:\"&>|\\\\d*>&\\\\d*|\\\\d*(?:>>|>|<)|\\\\d*<&|\\\\d*<>\"}],variable:[{token:\"constant.numeric\",regex:\"%%\\\\w+|%[*\\\\d]|%\\\\w+%\"},{token:\"constant.numeric\",regex:\"%~\\\\d+\"},{token:[\"markup.list\",\"constant.other\",\"markup.list\"],regex:\"(%)(\\\\w+)(%?)\"}]},this.normalizeRules()};s.metaData={name:\"Batch File\",scopeName:\"source.dosbatch\",fileTypes:[\"bat\"]},r.inherits(s,i),t.BatchFileHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/batchfile\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/batchfile_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./batchfile_highlight_rules\").BatchFileHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"::\",this.blockComment=\"\",this.$id=\"ace/mode/batchfile\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-c9search.js",
    "content": "ace.define(\"ace/mode/c9search_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function o(e,t){try{return new RegExp(e,t)}catch(n){}}var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){this.$rules={start:[{tokenNames:[\"c9searchresults.constant.numeric\",\"c9searchresults.text\",\"c9searchresults.text\",\"c9searchresults.keyword\"],regex:/(^\\s+[0-9]+)(:)(\\d*\\s?)([^\\r\\n]+)/,onMatch:function(e,t,n){var r=this.splitRegex.exec(e),i=this.tokenNames,s=[{type:i[0],value:r[1]},{type:i[1],value:r[2]}];r[3]&&(r[3]==\" \"?s[1]={type:i[1],value:r[2]+\" \"}:s.push({type:i[1],value:r[3]}));var o=n[1],u=r[4],a,f=0;if(o&&o.exec){o.lastIndex=0;while(a=o.exec(u)){var l=u.substring(f,a.index);f=o.lastIndex,l&&s.push({type:i[2],value:l});if(a[0])s.push({type:i[3],value:a[0]});else if(!l)break}}return f<u.length&&s.push({type:i[2],value:u.substr(f)}),s}},{regex:\"^Searching for [^\\\\r\\\\n]*$\",onMatch:function(e,t,n){var r=e.split(\"\u0001\");if(r.length<3)return\"text\";var s,u,a,f=0,l=[{value:r[f++]+\"'\",type:\"text\"},{value:u=r[f++],type:\"text\"},{value:\"'\"+r[f++],type:\"text\"}];r[2]!==\" in\"&&(a=r[f],l.push({value:\"'\"+r[f++]+\"'\",type:\"text\"},{value:r[f++],type:\"text\"})),l.push({value:\" \"+r[f++]+\" \",type:\"text\"}),r[f+1]?(s=r[f+1],l.push({value:\"(\"+r[f+1]+\")\",type:\"text\"}),f+=1):f-=1;while(f++<r.length)r[f]&&l.push({value:r[f],type:\"text\"});a&&(u=a,s=\"\"),u&&(/regex/.test(s)||(u=i.escapeRegExp(u)),/whole/.test(s)&&(u=\"\\\\b\"+u+\"\\\\b\"));var c=u&&o(\"(\"+u+\")\",/ sensitive/.test(s)?\"g\":\"ig\");return c&&(n[0]=t,n[1]=c),l}},{regex:\"^(?=Found \\\\d+ matches)\",token:\"text\",next:\"numbers\"},{token:\"string\",regex:\"^\\\\S:?[^:]+\",next:\"numbers\"}],numbers:[{regex:\"\\\\d+\",token:\"constant.numeric\"},{regex:\"$\",token:\"text\",next:\"start\"}]},this.normalizeRules()};r.inherits(u,s),t.C9SearchHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/c9search\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/^(\\S.*\\:|Searching for.*)$/,this.foldingStopMarker=/^(\\s+|Found.*)$/,this.getFoldWidgetRange=function(e,t,n){var r=e.doc.getAllLines(n),s=r[n],o=/^(Found.*|Searching for.*)$/,u=/^(\\S.*\\:|\\s*)$/,a=o.test(s)?o:u,f=n,l=n;if(this.foldingStartMarker.test(s)){for(var c=n+1,h=e.getLength();c<h;c++)if(a.test(r[c]))break;l=c}else if(this.foldingStopMarker.test(s)){for(var c=n-1;c>=0;c--){s=r[c];if(a.test(s))break}f=c}if(f!=l){var p=s.length;return a===o&&(p=s.search(/\\(Found[^)]+\\)$|$/)),new i(f,p,l,0)}}}.call(o.prototype)}),ace.define(\"ace/mode/c9search\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c9search_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/c9search\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./c9search_highlight_rules\").C9SearchHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./folding/c9search\").FoldMode,a=function(){this.HighlightRules=s,this.$outdent=new o,this.foldingRules=new u};r.inherits(a,i),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/c9search\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-c_cpp.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.cFunctions=\"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\",u=function(){var e=\"break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using\",t=\"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t\",n=\"const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\",r=\"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eqconst_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\",s=\"NULL|true|false|TRUE|FALSE|nullptr\",u=this.$keywords=this.createKeywordMapper({\"keyword.control\":e,\"storage.type\":t,\"storage.modifier\":n,\"keyword.operator\":r,\"variable.language\":\"this\",\"constant.language\":s},\"identifier\"),a=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Zd\\\\$_\\u00a1-\\uffff]*\\\\b\",f=/\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source;this.$rules={start:[{token:\"comment\",regex:\"//$\",next:\"start\"},{token:\"comment\",regex:\"//\",next:\"singleLineComment\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:\"'(?:\"+f+\"|.)'\"},{token:\"string.start\",regex:'\"',stateName:\"qqstring\",next:[{token:\"string\",regex:/\\\\\\s*$/,next:\"qqstring\"},{token:\"constant.language.escape\",regex:f},{token:\"constant.language.escape\",regex:/%[^'\"\\\\]/},{token:\"string.end\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'R\"\\\\(',stateName:\"rawString\",next:[{token:\"string.end\",regex:'\\\\)\"',next:\"start\"},{defaultToken:\"string\"}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"keyword\",regex:\"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",next:\"directive\"},{token:\"keyword\",regex:\"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"},{token:\"support.function.C99.c\",regex:o},{token:u,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\"},{token:\"keyword.operator\",regex:/--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],singleLineComment:[{token:\"comment\",regex:/\\\\$/,next:\"singleLineComment\"},{token:\"comment\",regex:/$/,next:\"start\"},{defaultToken:\"comment\"}],directive:[{token:\"constant.other.multiline\",regex:/\\\\/},{token:\"constant.other.multiline\",regex:/.*\\\\/},{token:\"constant.other\",regex:\"\\\\s*<.+?>\",next:\"start\"},{token:\"constant.other\",regex:'\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',next:\"start\"},{token:\"constant.other\",regex:\"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",next:\"start\"},{token:\"constant.other\",regex:/[^\\\\\\/]+/,next:\"start\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/c_cpp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c_cpp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./c_cpp_highlight_rules\").c_cppHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/c_cpp\"}.call(l.prototype),t.Mode=l})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-cirru.js",
    "content": "ace.define(\"ace/mode/cirru_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"constant.numeric\",regex:/[\\d\\.]+/},{token:\"comment.line.double-dash\",regex:/--/,next:\"comment\"},{token:\"storage.modifier\",regex:/\\(/},{token:\"storage.modifier\",regex:/\\,/,next:\"line\"},{token:\"support.function\",regex:/[^\\(\\)\\\"\\s]+/,next:\"line\"},{token:\"string.quoted.double\",regex:/\"/,next:\"string\"},{token:\"storage.modifier\",regex:/\\)/}],comment:[{token:\"comment.line.double-dash\",regex:/\\ +[^\\n]+/,next:\"start\"}],string:[{token:\"string.quoted.double\",regex:/\"/,next:\"line\"},{token:\"constant.character.escape\",regex:/\\\\/,next:\"escape\"},{token:\"string.quoted.double\",regex:/[^\\\\\\\"]+/}],escape:[{token:\"constant.character.escape\",regex:/./,next:\"string\"}],line:[{token:\"constant.numeric\",regex:/[\\d\\.]+/},{token:\"markup.raw\",regex:/^\\s*/,next:\"start\"},{token:\"storage.modifier\",regex:/\\$/,next:\"start\"},{token:\"variable.parameter\",regex:/[^\\(\\)\\\"\\s]+/},{token:\"storage.modifier\",regex:/\\(/,next:\"start\"},{token:\"storage.modifier\",regex:/\\)/},{token:\"markup.raw\",regex:/^\\ */,next:\"start\"},{token:\"string.quoted.double\",regex:/\"/,next:\"string\"}]}};r.inherits(s,i),t.CirruHighlightRules=s}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/cirru\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/cirru_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./cirru_highlight_rules\").CirruHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.$id=\"ace/mode/cirru\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-clojure.js",
    "content": "ace.define(\"ace/mode/clojure_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"* *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* *command-line-args* *compile-files* *compile-path* *e *err* *file* *flush-on-newline* *in* *macro-meta* *math-context* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-readably* *read-eval* *source-path* *use-context-classloader* *warn-on-reflection* + - -> ->> .. / < <= = == > &gt; >= &gt;= accessor aclone add-classpath add-watch agent agent-errors aget alength alias all-ns alter alter-meta! alter-var-root amap ancestors and apply areduce array-map aset aset-boolean aset-byte aset-char aset-double aset-float aset-int aset-long aset-short assert assoc assoc! assoc-in associative? atom await await-for await1 bases bean bigdec bigint binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array booleans bound-fn bound-fn* butlast byte byte-array bytes cast char char-array char-escape-string char-name-string char? chars chunk chunk-append chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? class class? clear-agent-errors clojure-version coll? comment commute comp comparator compare compare-and-set! compile complement concat cond condp conj conj! cons constantly construct-proxy contains? count counted? create-ns create-struct cycle dec decimal? declare definline defmacro defmethod defmulti defn defn- defonce defstruct delay delay? deliver deref derive descendants destructure disj disj! dissoc dissoc! distinct distinct? doall doc dorun doseq dosync dotimes doto double double-array doubles drop drop-last drop-while empty empty? ensure enumeration-seq eval even? every? false? ffirst file-seq filter find find-doc find-ns find-var first float float-array float? floats flush fn fn? fnext for force format future future-call future-cancel future-cancelled? future-done? future? gen-class gen-interface gensym get get-in get-method get-proxy-class get-thread-bindings get-validator hash hash-map hash-set identical? identity if-let if-not ifn? import in-ns inc init-proxy instance? int int-array integer? interleave intern interpose into into-array ints io! isa? iterate iterator-seq juxt key keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list* list? load load-file load-reader load-string loaded-libs locking long long-array longs loop macroexpand macroexpand-1 make-array make-hierarchy map map? mapcat max max-key memfn memoize merge merge-with meta method-sig methods min min-key mod name namespace neg? newline next nfirst nil? nnext not not-any? not-empty not-every? not= ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth nthnext num number? odd? or parents partial partition pcalls peek persistent! pmap pop pop! pop-thread-bindings pos? pr pr-str prefer-method prefers primitives-classnames print print-ctor print-doc print-dup print-method print-namespace-doc print-simple print-special-doc print-str printf println println-str prn prn-str promise proxy proxy-call-with-super proxy-mappings proxy-name proxy-super push-thread-bindings pvalues quot rand rand-int range ratio? rational? rationalize re-find re-groups re-matcher re-matches re-pattern re-seq read read-line read-string reduce ref ref-history-count ref-max-history ref-min-history ref-set refer refer-clojure release-pending-sends rem remove remove-method remove-ns remove-watch repeat repeatedly replace replicate require reset! reset-meta! resolve rest resultset-seq reverse reversible? rseq rsubseq second select-keys send send-off seq seq? seque sequence sequential? set set-validator! set? short short-array shorts shutdown-agents slurp some sort sort-by sorted-map sorted-map-by sorted-set sorted-set-by sorted? special-form-anchor special-symbol? split-at split-with str stream? string? struct struct-map subs subseq subvec supers swap! symbol symbol? sync syntax-symbol-anchor take take-last take-nth take-while test the-ns time to-array to-array-2d trampoline transient tree-seq true? type unchecked-add unchecked-dec unchecked-divide unchecked-inc unchecked-multiply unchecked-negate unchecked-remainder unchecked-subtract underive unquote unquote-splicing update-in update-proxy use val vals var-get var-set var? vary-meta vec vector vector? when when-first when-let when-not while with-bindings with-bindings* with-in-str with-loading-context with-local-vars with-meta with-open with-out-str with-precision xml-seq zero? zipmap\",t=\"throw try var def do fn if let loop monitor-enter monitor-exit new quote recur set!\",n=\"true false nil\",r=this.createKeywordMapper({keyword:t,\"constant.language\":n,\"support.function\":e},\"identifier\",!1,\" \");this.$rules={start:[{token:\"comment\",regex:\";.*$\"},{token:\"keyword\",regex:\"[\\\\(|\\\\)]\"},{token:\"keyword\",regex:\"[\\\\'\\\\(]\"},{token:\"keyword\",regex:\"[\\\\[|\\\\]]\"},{token:\"keyword\",regex:\"[\\\\{|\\\\}|\\\\#\\\\{|\\\\#\\\\}]\"},{token:\"keyword\",regex:\"[\\\\&]\"},{token:\"keyword\",regex:\"[\\\\#\\\\^\\\\{]\"},{token:\"keyword\",regex:\"[\\\\%]\"},{token:\"keyword\",regex:\"[@]\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language\",regex:\"[!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+||=|!=|<=|>=|<>|<|>|!|&&]\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$\\\\-]*\\\\b\"},{token:\"string\",regex:'\"',next:\"string\"},{token:\"constant\",regex:/:[^()\\[\\]{}'\"\\^%`,;\\s]+/},{token:\"string.regexp\",regex:'/#\"(?:\\\\.|(?:\\\\\")|[^\"\"\\n])*\"/g'}],string:[{token:\"constant.language.escape\",regex:\"\\\\\\\\.|\\\\\\\\$\"},{token:\"string\",regex:'[^\"\\\\\\\\]+'},{token:\"string\",regex:'\"',next:\"start\"}]}};r.inherits(s,i),t.ClojureHighlightRules=s}),ace.define(\"ace/mode/matching_parens_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\)/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\))/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\\s+)/);return t?t[1]:\"\"}}).call(i.prototype),t.MatchingParensOutdent=i}),ace.define(\"ace/mode/clojure\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/clojure_highlight_rules\",\"ace/mode/matching_parens_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./clojure_highlight_rules\").ClojureHighlightRules,o=e(\"./matching_parens_outdent\").MatchingParensOutdent,u=function(){this.HighlightRules=s,this.$outdent=new o};r.inherits(u,i),function(){this.lineCommentStart=\";\",this.minorIndentFunctions=[\"defn\",\"defn-\",\"defmacro\",\"def\",\"deftest\",\"testing\"],this.$toIndent=function(e){return e.split(\"\").map(function(e){return/\\s/.exec(e)?e:\" \"}).join(\"\")},this.$calculateIndent=function(e,t){var n=this.$getIndent(e),r=0,i,s;for(var o=e.length-1;o>=0;o--){s=e[o],s===\"(\"?(r--,i=!0):s===\"(\"||s===\"[\"||s===\"{\"?(r--,i=!1):(s===\")\"||s===\"]\"||s===\"}\")&&r++;if(r<0)break}if(!(r<0&&i))return r<0&&!i?this.$toIndent(e.substring(0,o+1)):r>0?(n=n.substring(0,n.length-t.length),n):n;o+=1;var u=o,a=\"\";for(;;){s=e[o];if(s===\" \"||s===\"\t\")return this.minorIndentFunctions.indexOf(a)!==-1?this.$toIndent(e.substring(0,u-1)+t):this.$toIndent(e.substring(0,o+1));if(s===undefined)return this.$toIndent(e.substring(0,u-1)+t);a+=e[o],o++}},this.getNextLineIndent=function(e,t,n){return this.$calculateIndent(t,n)},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/clojure\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-cobol.js",
    "content": "ace.define(\"ace/mode/cobol_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"ACCEPT|MERGE|SUM|ADD||MESSAGE|TABLE|ADVANCING|MODE|TAPE|AFTER|MULTIPLY|TEST|ALL|NEGATIVE|TEXT|ALPHABET|NEXT|THAN|ALSO|NO|THEN|ALTERNATE|NOT|THROUGH|AND|NUMBER|THRU|ANY|OCCURS|TIME|ARE|OF|TO|AREA|OFF|TOP||ASCENDING|OMITTED|TRUE|ASSIGN|ON|TYPE|AT|OPEN|UNIT|AUTHOR|OR|UNTIL|BEFORE|OTHER|UP|BLANK|OUTPUT|USE|BLOCK|PAGE|USING|BOTTOM|PERFORM|VALUE|BY|PIC|VALUES|CALL|PICTURE|WHEN|CANCEL|PLUS|WITH|CD|POINTER|WRITE|CHARACTER|POSITION||ZERO|CLOSE|POSITIVE|ZEROS|COLUMN|PROCEDURE|ZEROES|COMMA|PROGRAM|COMMON|PROGRAM-ID|COMMUNICATION|QUOTE|COMP|RANDOM|COMPUTE|READ|CONTAINS|RECEIVE|CONFIGURATION|RECORD|CONTINUE|REDEFINES|CONTROL|REFERENCE|COPY|REMAINDER|COUNT|REPLACE|DATA|REPORT|DATE|RESERVE|DAY|RESET|DELETE|RETURN|DESTINATION|REWIND|DISABLE|REWRITE|DISPLAY|RIGHT|DIVIDE|RUN|DOWN|SAME|ELSE|SEARCH|ENABLE|SECTION|END|SELECT|ENVIRONMENT|SENTENCE|EQUAL|SET|ERROR|SIGN|EXIT|SEQUENTIAL|EXTERNAL|SIZE|FLASE|SORT|FILE|SOURCE|LENGTH|SPACE|LESS|STANDARD|LIMIT|START|LINE|STOP|LOCK|STRING|LOW-VALUE|SUBTRACT\",t=\"true|false|null\",n=\"count|min|max|avg|sum|rank|now|coalesce|main\",r=this.createKeywordMapper({\"support.function\":n,keyword:e,\"constant.language\":t},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\*.*$\"},{token:\"string\",regex:'\".*?\"'},{token:\"string\",regex:\"'.*?'\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"text\",regex:\"\\\\s+\"}]}};r.inherits(s,i),t.CobolHighlightRules=s}),ace.define(\"ace/mode/cobol\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/cobol_highlight_rules\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./cobol_highlight_rules\").CobolHighlightRules,o=e(\"../range\").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart=\"*\",this.$id=\"ace/mode/cobol\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-coffee.js",
    "content": "ace.define(\"ace/mode/coffee_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function s(){var e=\"[$A-Za-z_\\\\x7f-\\\\uffff][$\\\\w\\\\x7f-\\\\uffff]*\",t=\"this|throw|then|try|typeof|super|switch|return|break|by|continue|catch|class|in|instanceof|is|isnt|if|else|extends|for|own|finally|function|while|when|new|no|not|delete|debugger|do|loop|of|off|or|on|unless|until|and|yes\",n=\"true|false|null|undefined|NaN|Infinity\",r=\"case|const|default|function|var|void|with|enum|export|implements|interface|let|package|private|protected|public|static|yield|__hasProp|slice|bind|indexOf\",i=\"Array|Boolean|Date|Function|Number|Object|RegExp|ReferenceError|String|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray\",s=\"Math|JSON|isNaN|isFinite|parseInt|parseFloat|encodeURI|encodeURIComponent|decodeURI|decodeURIComponent|String|\",o=\"window|arguments|prototype|document\",u=this.createKeywordMapper({keyword:t,\"constant.language\":n,\"invalid.illegal\":r,\"language.support.class\":i,\"language.support.function\":s,\"variable.language\":o},\"identifier\"),a={token:[\"paren.lparen\",\"variable.parameter\",\"paren.rparen\",\"text\",\"storage.type\"],regex:/(?:(\\()((?:\"[^\")]*?\"|'[^')]*?'|\\/[^\\/)]*?\\/|[^()\\\"'\\/])*?)(\\))(\\s*))?([\\-=]>)/.source},f=/\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)/;this.$rules={start:[{token:\"constant.numeric\",regex:\"(?:0x[\\\\da-fA-F]+|(?:\\\\d+(?:\\\\.\\\\d+)?|\\\\.\\\\d+)(?:[eE][+-]?\\\\d+)?)\"},{stateName:\"qdoc\",token:\"string\",regex:\"'''\",next:[{token:\"string\",regex:\"'''\",next:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{stateName:\"qqdoc\",token:\"string\",regex:'\"\"\"',next:[{token:\"string\",regex:'\"\"\"',next:\"start\"},{token:\"paren.string\",regex:\"#{\",push:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{stateName:\"qstring\",token:\"string\",regex:\"'\",next:[{token:\"string\",regex:\"'\",next:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{stateName:\"qqstring\",token:\"string.start\",regex:'\"',next:[{token:\"string.end\",regex:'\"',next:\"start\"},{token:\"paren.string\",regex:\"#{\",push:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{stateName:\"js\",token:\"string\",regex:\"`\",next:[{token:\"string\",regex:\"`\",next:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{regex:\"[{}]\",onMatch:function(e,t,n){this.next=\"\";if(e==\"{\"&&n.length)return n.unshift(\"start\",t),\"paren\";if(e==\"}\"&&n.length){n.shift(),this.next=n.shift()||\"\";if(this.next.indexOf(\"string\")!=-1)return\"paren.string\"}return\"paren\"}},{token:\"string.regex\",regex:\"///\",next:\"heregex\"},{token:\"string.regex\",regex:/(?:\\/(?![\\s=])[^[\\/\\n\\\\]*(?:(?:\\\\[\\s\\S]|\\[[^\\]\\n\\\\]*(?:\\\\[\\s\\S][^\\]\\n\\\\]*)*])[^[\\/\\n\\\\]*)*\\/)(?:[imgy]{0,4})(?!\\w)/},{token:\"comment\",regex:\"###(?!#)\",next:\"comment\"},{token:\"comment\",regex:\"#.*\"},{token:[\"punctuation.operator\",\"text\",\"identifier\"],regex:\"(\\\\.)(\\\\s*)(\"+r+\")\"},{token:\"punctuation.operator\",regex:\"\\\\.{1,3}\"},{token:[\"keyword\",\"text\",\"language.support.class\",\"text\",\"keyword\",\"text\",\"language.support.class\"],regex:\"(class)(\\\\s+)(\"+e+\")(?:(\\\\s+)(extends)(\\\\s+)(\"+e+\"))?\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\"].concat(a.token),regex:\"(\"+e+\")(\\\\s*)([=:])(\\\\s*)\"+a.regex},a,{token:\"variable\",regex:\"@(?:\"+e+\")?\"},{token:u,regex:e},{token:\"punctuation.operator\",regex:\"\\\\,|\\\\.\"},{token:\"storage.type\",regex:\"[\\\\-=]>\"},{token:\"keyword.operator\",regex:\"(?:[-+*/%<>&|^!?=]=|>>>=?|\\\\-\\\\-|\\\\+\\\\+|::|&&=|\\\\|\\\\|=|<<=|>>=|\\\\?\\\\.|\\\\.{2,3}|[!*+-=><])\"},{token:\"paren.lparen\",regex:\"[({[]\"},{token:\"paren.rparen\",regex:\"[\\\\]})]\"},{token:\"text\",regex:\"\\\\s+\"}],heregex:[{token:\"string.regex\",regex:\".*?///[imgy]{0,4}\",next:\"start\"},{token:\"comment.regex\",regex:\"\\\\s+(?:#.*)?\"},{token:\"string.regex\",regex:\"\\\\S+\"}],comment:[{token:\"comment\",regex:\"###\",next:\"start\"},{defaultToken:\"comment\"}]},this.normalizeRules()}var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules;r.inherits(s,i),t.CoffeeHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/coffee\",[\"require\",\"exports\",\"module\",\"ace/mode/coffee_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/coffee\",\"ace/range\",\"ace/mode/text\",\"ace/worker/worker_client\",\"ace/lib/oop\"],function(e,t,n){\"use strict\";function l(){this.HighlightRules=r,this.$outdent=new i,this.foldingRules=new s}var r=e(\"./coffee_highlight_rules\").CoffeeHighlightRules,i=e(\"./matching_brace_outdent\").MatchingBraceOutdent,s=e(\"./folding/coffee\").FoldMode,o=e(\"../range\").Range,u=e(\"./text\").Mode,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"../lib/oop\");f.inherits(l,u),function(){var e=/(?:[({[=:]|[-=]>|\\b(?:else|try|(?:swi|ca)tch(?:\\s+[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*)?|finally))\\s*$|^\\s*(else\\b\\s*)?(?:if|for|while|loop)\\b(?!.*\\bthen\\b)/;this.lineCommentStart=\"#\",this.blockComment={start:\"###\",end:\"###\"},this.getNextLineIndent=function(t,n,r){var i=this.$getIndent(n),s=this.getTokenizer().getLineTokens(n,t).tokens;return(!s.length||s[s.length-1].type!==\"comment\")&&t===\"start\"&&e.test(n)&&(i+=r),i},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/coffee_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/coffee\"}.call(l.prototype),t.Mode=l})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-coldfusion.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[A-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/coldfusion_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,s=e(\"./html_highlight_rules\").HtmlHighlightRules,o=function(){s.call(this),this.$rules.tag[2].token=function(e,t){var n=t.slice(0,2)==\"cf\"?\"keyword\":\"meta.tag\";return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",n+\".tag-name.xml\"]};var e=Object.keys(this.$rules).filter(function(e){return/^(js|css)-/.test(e)});this.embedRules({cfmlComment:[{regex:\"<!---\",token:\"comment.start\",push:\"cfmlComment\"},{regex:\"--->\",token:\"comment.end\",next:\"pop\"},{defaultToken:\"comment\"}]},\"\",[{regex:\"<!---\",token:\"comment.start\",push:\"cfmlComment\"}],[\"comment\",\"start\",\"tag_whitespace\",\"cdata\"].concat(e)),this.$rules.cfTag=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"pop\"}];var t={token:function(e,t){return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"keyword.tag-name.xml\"]},regex:\"(</?)(cf[-_a-zA-Z0-9:.]+)\",push:\"cfTag\"};e.forEach(function(e){this.$rules[e].unshift(t)},this),this.embedTagRules((new i({noJSX:!0})).getRules(),\"cfjs-\",\"cfscript\"),this.normalizeRules()};r.inherits(o,s),t.ColdfusionHighlightRules=o}),ace.define(\"ace/mode/coldfusion\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/html\",\"ace/mode/coldfusion_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./html\").Mode,o=e(\"./coldfusion_highlight_rules\").ColdfusionHighlightRules,u=\"cfabort|cfapplication|cfargument|cfassociate|cfbreak|cfcache|cfcollection|cfcookie|cfdbinfo|cfdirectory|cfdump|cfelse|cfelseif|cferror|cfexchangecalendar|cfexchangeconnection|cfexchangecontact|cfexchangefilter|cfexchangetask|cfexit|cffeed|cffile|cfflush|cfftp|cfheader|cfhtmlhead|cfhttpparam|cfimage|cfimport|cfinclude|cfindex|cfinsert|cfinvokeargument|cflocation|cflog|cfmailparam|cfNTauthenticate|cfobject|cfobjectcache|cfparam|cfpdfformparam|cfprint|cfprocparam|cfprocresult|cfproperty|cfqueryparam|cfregistry|cfreportparam|cfrethrow|cfreturn|cfschedule|cfsearch|cfset|cfsetting|cfthrow|cfzipparam)\".split(\"|\"),a=function(){s.call(this),this.HighlightRules=o};r.inherits(a,s),function(){this.voidElements=r.mixin(i.arrayToMap(u),this.voidElements),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.$id=\"ace/mode/coldfusion\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-csharp.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/csharp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=this.createKeywordMapper({\"variable.language\":\"this\",keyword:\"abstract|event|new|struct|as|explicit|null|switch|base|extern|object|this|bool|false|operator|throw|break|finally|out|true|byte|fixed|override|try|case|float|params|typeof|catch|for|private|uint|char|foreach|protected|ulong|checked|goto|public|unchecked|class|if|readonly|unsafe|const|implicit|ref|ushort|continue|in|return|using|decimal|int|sbyte|virtual|default|interface|sealed|volatile|delegate|internal|short|void|do|is|sizeof|while|double|lock|stackalloc|else|long|static|enum|namespace|string|var|dynamic\",\"constant.language\":\"null|true|false\"},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:/'(?:.|\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n]))'/},{token:\"string\",start:'\"',end:'\"|$',next:[{token:\"constant.language.escape\",regex:/\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n])/},{token:\"invalid\",regex:/\\\\./}]},{token:\"string\",start:'@\"',end:'\"',next:[{token:\"constant.language.escape\",regex:'\"\"'}]},{token:\"string\",start:/\\$\"/,end:'\"|$',next:[{token:\"constant.language.escape\",regex:/\\\\(:?$)|{{/},{token:\"constant.language.escape\",regex:/\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n])/},{token:\"invalid\",regex:/\\\\./}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:e,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"keyword\",regex:\"^\\\\s*#(if|else|elif|endif|define|undef|warning|error|line|region|endregion|pragma)\"},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(o,s),t.CSharpHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/folding/csharp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./cstyle\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.usingRe=/^\\s*using \\S/,this.getFoldWidgetRangeBase=this.getFoldWidgetRange,this.getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=this.getFoldWidgetBase(e,t,n);if(!r){var i=e.getLine(n);if(/^\\s*#region\\b/.test(i))return\"start\";var s=this.usingRe;if(s.test(i)){var o=e.getLine(n-1),u=e.getLine(n+1);if(!s.test(o)&&s.test(u))return\"start\"}}return r},this.getFoldWidgetRange=function(e,t,n){var r=this.getFoldWidgetRangeBase(e,t,n);if(r)return r;var i=e.getLine(n);if(this.usingRe.test(i))return this.getUsingStatementBlock(e,i,n);if(/^\\s*#region\\b/.test(i))return this.getRegionBlock(e,i,n)},this.getUsingStatementBlock=function(e,t,n){var r=t.match(this.usingRe)[0].length-1,s=e.getLength(),o=n,u=n;while(++n<s){t=e.getLine(n);if(/^\\s*$/.test(t))continue;if(!this.usingRe.test(t))break;u=n}if(u>o){var a=e.getLine(u).length;return new i(o,r,u,a)}},this.getRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*#(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/csharp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/csharp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/csharp\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./csharp_highlight_rules\").CSharpHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/csharp\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[]\\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){return null},this.$id=\"ace/mode/csharp\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-css.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-curly.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[A-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/curly_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=function(){i.call(this),this.$rules.start.unshift({token:\"variable\",regex:\"{{\",push:\"curly-start\"}),this.$rules[\"curly-start\"]=[{token:\"variable\",regex:\"}}\",next:\"pop\"}],this.normalizeRules()};r.inherits(s,i),t.CurlyHighlightRules=s}),ace.define(\"ace/mode/curly\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/matching_brace_outdent\",\"ace/mode/html_highlight_rules\",\"ace/mode/folding/html\",\"ace/mode/curly_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./matching_brace_outdent\").MatchingBraceOutdent,o=e(\"./html_highlight_rules\").HtmlHighlightRules,u=e(\"./folding/html\").FoldMode,a=e(\"./curly_highlight_rules\").CurlyHighlightRules,f=function(){i.call(this),this.HighlightRules=a,this.$outdent=new s,this.foldingRules=new u};r.inherits(f,i),function(){this.$id=\"ace/mode/curly\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-d.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/d_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"this|super|import|module|body|mixin|__traits|invariant|alias|asm|delete|typeof|typeid|sizeof|cast|new|in|is|typedef|__vector|__parameters\",t=\"break|case|continue|default|do|else|for|foreach|foreach_reverse|goto|if|return|switch|while|catch|try|throw|finally|version|assert|unittest|with\",n=\"auto|bool|char|dchar|wchar|byte|ubyte|float|double|real|cfloat|creal|cdouble|cent|ifloat|ireal|idouble|int|long|short|void|uint|ulong|ushort|ucent|function|delegate|string|wstring|dstring|size_t|ptrdiff_t|hash_t|Object\",r=\"abstract|align|debug|deprecated|export|extern|const|final|in|inout|out|ref|immutable|lazy|nothrow|override|package|pragma|private|protected|public|pure|scope|shared|__gshared|synchronized|static|volatile\",s=\"class|struct|union|template|interface|enum|macro\",o={token:\"constant.language.escape\",regex:\"\\\\\\\\(?:(?:x[0-9A-F]{2})|(?:[0-7]{1,3})|(?:['\\\"\\\\?0abfnrtv\\\\\\\\])|(?:u[0-9a-fA-F]{4})|(?:U[0-9a-fA-F]{8}))\"},u=\"null|true|false|__DATE__|__EOF__|__TIME__|__TIMESTAMP__|__VENDOR__|__VERSION__|__FILE__|__MODULE__|__LINE__|__FUNCTION__|__PRETTY_FUNCTION__\",a=\"/|/\\\\=|&|&\\\\=|&&|\\\\|\\\\|\\\\=|\\\\|\\\\||\\\\-|\\\\-\\\\=|\\\\-\\\\-|\\\\+|\\\\+\\\\=|\\\\+\\\\+|\\\\<|\\\\<\\\\=|\\\\<\\\\<|\\\\<\\\\<\\\\=|\\\\<\\\\>|\\\\<\\\\>\\\\=|\\\\>|\\\\>\\\\=|\\\\>\\\\>\\\\=|\\\\>\\\\>\\\\>\\\\=|\\\\>\\\\>|\\\\>\\\\>\\\\>|\\\\!|\\\\!\\\\=|\\\\!\\\\<\\\\>|\\\\!\\\\<\\\\>\\\\=|\\\\!\\\\<|\\\\!\\\\<\\\\=|\\\\!\\\\>|\\\\!\\\\>\\\\=|\\\\?|\\\\$|\\\\=|\\\\=\\\\=|\\\\*|\\\\*\\\\=|%|%\\\\=|\\\\^|\\\\^\\\\=|\\\\^\\\\^|\\\\^\\\\^\\\\=|~|~\\\\=|\\\\=\\\\>|#\",f=this.$keywords=this.createKeywordMapper({\"keyword.modifier\":r,\"keyword.control\":t,\"keyword.type\":n,keyword:e,\"keyword.storage\":s,punctation:\"\\\\.|\\\\,|;|\\\\.\\\\.|\\\\.\\\\.\\\\.\",\"keyword.operator\":a,\"constant.language\":u},\"identifier\"),l=\"[a-zA-Z_\\u00a1-\\uffff][a-zA-Z\\\\d_\\u00a1-\\uffff]*\\\\b\";this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"star-comment\"},{token:\"comment.shebang\",regex:\"^s*#!.*\"},{token:\"comment\",regex:\"\\\\/\\\\+\",next:\"plus-comment\"},{onMatch:function(e,t,n){return n.unshift(this.next,e.substr(2)),\"string\"},regex:'q\"(?:[\\\\[\\\\(\\\\{\\\\<]+)',next:\"operator-heredoc-string\"},{onMatch:function(e,t,n){return n.unshift(this.next,e.substr(2)),\"string\"},regex:'q\"(?:[a-zA-Z_]+)$',next:\"identifier-heredoc-string\"},{token:\"string\",regex:'[xr]?\"',next:\"quote-string\"},{token:\"string\",regex:\"[xr]?`\",next:\"backtick-string\"},{token:\"string\",regex:\"[xr]?['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?['][cdw]?\"},{token:[\"keyword\",\"text\",\"paren.lparen\"],regex:/(asm)(\\s*)({)/,next:\"d-asm\"},{token:[\"keyword\",\"text\",\"paren.lparen\",\"constant.language\"],regex:\"(__traits)(\\\\s*)(\\\\()(\"+l+\")\"},{token:[\"keyword\",\"text\",\"variable.module\"],regex:\"(import|module)(\\\\s+)((?:\"+l+\"\\\\.?)*)\"},{token:[\"keyword.storage\",\"text\",\"entity.name.type\"],regex:\"(\"+s+\")(\\\\s*)(\"+l+\")\"},{token:[\"keyword\",\"text\",\"variable.storage\",\"text\"],regex:\"(alias|typedef)(\\\\s*)(\"+l+\")(\\\\s*)\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F_]+(l|ul|u|f|F|L|U|UL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d[\\\\d_]*(?:(?:\\\\.[\\\\d_]*)?(?:[eE][+-]?[\\\\d_]+)?)?(l|ul|u|f|F|L|U|UL)?\\\\b\"},{token:\"entity.other.attribute-name\",regex:\"@\"+l},{token:f,regex:\"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\"},{token:\"keyword.operator\",regex:a},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.|\\\\:\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],\"star-comment\":[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],\"plus-comment\":[{token:\"comment\",regex:\"\\\\+\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],\"quote-string\":[o,{token:\"string\",regex:'\"[cdw]?',next:\"start\"},{defaultToken:\"string\"}],\"backtick-string\":[o,{token:\"string\",regex:\"`[cdw]?\",next:\"start\"},{defaultToken:\"string\"}],\"operator-heredoc-string\":[{onMatch:function(e,t,n){e=e.substring(e.length-2,e.length-1);var r={\">\":\"<\",\"]\":\"[\",\")\":\"(\",\"}\":\"{\"};return Object.keys(r).indexOf(e)!=-1&&(e=r[e]),e!=n[1]?\"string\":(n.shift(),n.shift(),\"string\")},regex:'(?:[\\\\]\\\\)}>]+)\"',next:\"start\"},{token:\"string\",regex:\"[^\\\\]\\\\)}>]+\"}],\"identifier-heredoc-string\":[{onMatch:function(e,t,n){return e=e.substring(0,e.length-1),e!=n[1]?\"string\":(n.shift(),n.shift(),\"string\")},regex:'^(?:[A-Za-z_][a-zA-Z0-9]+)\"',next:\"start\"},{token:\"string\",regex:\"[^\\\\]\\\\)}>]+\"}],\"d-asm\":[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"start\"},{token:\"keyword.instruction\",regex:\"[a-zA-Z]+\",next:\"d-asm-instruction\"},{token:\"text\",regex:\"\\\\s+\"}],\"d-asm-instruction\":[{token:\"constant.language\",regex:/AL|AH|AX|EAX|BL|BH|BX|EBX|CL|CH|CX|ECX|DL|DH|DX|EDX|BP|EBP|SP|ESP|DI|EDI|SI|ESI/i},{token:\"identifier\",regex:\"[a-zA-Z]+\"},{token:\"string\",regex:'\".*\"'},{token:\"comment\",regex:\"//.*$\"},{token:\"constant.numeric\",regex:\"[0-9.xA-F]+\"},{token:\"punctuation.operator\",regex:\"\\\\,\"},{token:\"punctuation.operator\",regex:\";\",next:\"d-asm\"},{token:\"text\",regex:\"\\\\s+\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};o.metaData={comment:\"D language\",fileTypes:[\"d\",\"di\"],firstLineMatch:\"^#!.*\\\\b[glr]?dmd\\\\b.\",foldingStartMarker:\"(?x)/\\\\*\\\\*(?!\\\\*)|^(?![^{]*?//|[^{]*?/\\\\*(?!.*?\\\\*/.*?\\\\{)).*?\\\\{\\\\s*($|//|/\\\\*(?!.*?\\\\*/.*\\\\S))\",foldingStopMarker:\"(?<!\\\\*)\\\\*\\\\*/|^\\\\s*\\\\}\",keyEquivalent:\"^~D\",name:\"D\",scopeName:\"source.d\"},r.inherits(o,s),t.DHighlightRules=o}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/d\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/d_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./d_highlight_rules\").DHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/d\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-dart.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.cFunctions=\"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\",u=function(){var e=\"break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using\",t=\"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t\",n=\"const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\",r=\"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eqconst_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\",s=\"NULL|true|false|TRUE|FALSE|nullptr\",u=this.$keywords=this.createKeywordMapper({\"keyword.control\":e,\"storage.type\":t,\"storage.modifier\":n,\"keyword.operator\":r,\"variable.language\":\"this\",\"constant.language\":s},\"identifier\"),a=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Zd\\\\$_\\u00a1-\\uffff]*\\\\b\",f=/\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source;this.$rules={start:[{token:\"comment\",regex:\"//$\",next:\"start\"},{token:\"comment\",regex:\"//\",next:\"singleLineComment\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:\"'(?:\"+f+\"|.)'\"},{token:\"string.start\",regex:'\"',stateName:\"qqstring\",next:[{token:\"string\",regex:/\\\\\\s*$/,next:\"qqstring\"},{token:\"constant.language.escape\",regex:f},{token:\"constant.language.escape\",regex:/%[^'\"\\\\]/},{token:\"string.end\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'R\"\\\\(',stateName:\"rawString\",next:[{token:\"string.end\",regex:'\\\\)\"',next:\"start\"},{defaultToken:\"string\"}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"keyword\",regex:\"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",next:\"directive\"},{token:\"keyword\",regex:\"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"},{token:\"support.function.C99.c\",regex:o},{token:u,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\"},{token:\"keyword.operator\",regex:/--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],singleLineComment:[{token:\"comment\",regex:/\\\\$/,next:\"singleLineComment\"},{token:\"comment\",regex:/$/,next:\"start\"},{defaultToken:\"comment\"}],directive:[{token:\"constant.other.multiline\",regex:/\\\\/},{token:\"constant.other.multiline\",regex:/.*\\\\/},{token:\"constant.other\",regex:\"\\\\s*<.+?>\",next:\"start\"},{token:\"constant.other\",regex:'\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',next:\"start\"},{token:\"constant.other\",regex:\"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",next:\"start\"},{token:\"constant.other\",regex:/[^\\\\\\/]+/,next:\"start\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/c_cpp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c_cpp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./c_cpp_highlight_rules\").c_cppHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/c_cpp\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/dart_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"true|false|null\",t=\"this|super\",n=\"try|catch|finally|throw|rethrow|assert|break|case|continue|default|do|else|for|if|in|return|switch|while|new|deferred|async|await\",r=\"abstract|class|extends|external|factory|implements|get|native|operator|set|typedef|with|enum\",s=\"static|final|const\",o=\"void|bool|num|int|double|dynamic|var|String\",u=this.createKeywordMapper({\"constant.language.dart\":e,\"variable.language.dart\":t,\"keyword.control.dart\":n,\"keyword.declaration.dart\":r,\"storage.modifier.dart\":s,\"storage.type.primitive.dart\":o},\"identifier\"),a={token:\"string\",regex:\".+\"};this.$rules={start:[{token:\"comment\",regex:/\\/\\/.*$/},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:/\\/\\*/,next:\"comment\"},{token:[\"meta.preprocessor.script.dart\"],regex:\"^(#!.*)$\"},{token:\"keyword.other.import.dart\",regex:\"(?:\\\\b)(?:library|import|export|part|of|show|hide)(?:\\\\b)\"},{token:[\"keyword.other.import.dart\",\"text\"],regex:\"(?:\\\\b)(prefix)(\\\\s*:)\"},{regex:\"\\\\bas\\\\b\",token:\"keyword.cast.dart\"},{regex:\"\\\\?|:\",token:\"keyword.control.ternary.dart\"},{regex:\"(?:\\\\b)(is\\\\!?)(?:\\\\b)\",token:[\"keyword.operator.dart\"]},{regex:\"(<<|>>>?|~|\\\\^|\\\\||&)\",token:[\"keyword.operator.bitwise.dart\"]},{regex:\"((?:&|\\\\^|\\\\||<<|>>>?)=)\",token:[\"keyword.operator.assignment.bitwise.dart\"]},{regex:\"(===?|!==?|<=?|>=?)\",token:[\"keyword.operator.comparison.dart\"]},{regex:\"((?:[+*/%-]|\\\\~)=)\",token:[\"keyword.operator.assignment.arithmetic.dart\"]},{regex:\"=\",token:\"keyword.operator.assignment.dart\"},{token:\"string\",regex:\"'''\",next:\"qdoc\"},{token:\"string\",regex:'\"\"\"',next:\"qqdoc\"},{token:\"string\",regex:\"'\",next:\"qstring\"},{token:\"string\",regex:'\"',next:\"qqstring\"},{regex:\"(\\\\-\\\\-|\\\\+\\\\+)\",token:[\"keyword.operator.increment-decrement.dart\"]},{regex:\"(\\\\-|\\\\+|\\\\*|\\\\/|\\\\~\\\\/|%)\",token:[\"keyword.operator.arithmetic.dart\"]},{regex:\"(!|&&|\\\\|\\\\|)\",token:[\"keyword.operator.logical.dart\"]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:u,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],qdoc:[{token:\"string\",regex:\".*?'''\",next:\"start\"},a],qqdoc:[{token:\"string\",regex:'.*?\"\"\"',next:\"start\"},a],qstring:[{token:\"string\",regex:\"[^\\\\\\\\']*(?:\\\\\\\\.[^\\\\\\\\']*)*'\",next:\"start\"},a],qqstring:[{token:\"string\",regex:'[^\\\\\\\\\"]*(?:\\\\\\\\.[^\\\\\\\\\"]*)*\"',next:\"start\"},a]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.DartHighlightRules=o}),ace.define(\"ace/mode/dart\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/c_cpp\",\"ace/mode/dart_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./c_cpp\").Mode,s=e(\"./dart_highlight_rules\").DartHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){i.call(this),this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/dart\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-diff.js",
    "content": "ace.define(\"ace/mode/diff_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{regex:\"^(?:\\\\*{15}|={67}|-{3}|\\\\+{3})$\",token:\"punctuation.definition.separator.diff\",name:\"keyword\"},{regex:\"^(@@)(\\\\s*.+?\\\\s*)(@@)(.*)$\",token:[\"constant\",\"constant.numeric\",\"constant\",\"comment.doc.tag\"]},{regex:\"^(\\\\d+)([,\\\\d]+)(a|d|c)(\\\\d+)([,\\\\d]+)(.*)$\",token:[\"constant.numeric\",\"punctuation.definition.range.diff\",\"constant.function\",\"constant.numeric\",\"punctuation.definition.range.diff\",\"invalid\"],name:\"meta.\"},{regex:\"^(\\\\-{3}|\\\\+{3}|\\\\*{3})( .+)$\",token:[\"constant.numeric\",\"meta.tag\"]},{regex:\"^([!+>])(.*?)(\\\\s*)$\",token:[\"support.constant\",\"text\",\"invalid\"]},{regex:\"^([<\\\\-])(.*?)(\\\\s*)$\",token:[\"support.function\",\"string\",\"invalid\"]},{regex:\"^(diff)(\\\\s+--\\\\w+)?(.+?)( .+)?$\",token:[\"variable\",\"variable\",\"keyword\",\"variable\"]},{regex:\"^Index.+$\",token:\"variable\"},{regex:\"^\\\\s+$\",token:\"text\"},{regex:\"\\\\s*$\",token:\"invalid\"},{defaultToken:\"invisible\",caseInsensitive:!0}]}};r.inherits(s,i),t.DiffHighlightRules=s}),ace.define(\"ace/mode/folding/diff\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(e,t){this.regExpList=e,this.flag=t,this.foldingStartMarker=RegExp(\"^(\"+e.join(\"|\")+\")\",this.flag)};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i={row:n,column:r.length},o=this.regExpList;for(var u=1;u<=o.length;u++){var a=RegExp(\"^(\"+o.slice(0,u).join(\"|\")+\")\",this.flag);if(a.test(r))break}for(var f=e.getLength();++n<f;){r=e.getLine(n);if(a.test(r))break}if(n==i.row+1)return;return s.fromPoints(i,{row:n-1,column:r.length})}}.call(o.prototype)}),ace.define(\"ace/mode/diff\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/diff_highlight_rules\",\"ace/mode/folding/diff\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./diff_highlight_rules\").DiffHighlightRules,o=e(\"./folding/diff\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o([\"diff\",\"index\",\"\\\\+{3}\",\"@@|\\\\*{5}\"],\"i\")};r.inherits(u,i),function(){this.$id=\"ace/mode/diff\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-django.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[A-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/django\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/html_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./html_highlight_rules\").HtmlHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){this.$rules={start:[{token:\"string\",regex:'\".*?\"'},{token:\"string\",regex:\"'.*?'\"},{token:\"constant\",regex:\"[0-9]+\"},{token:\"variable\",regex:\"[-_a-zA-Z0-9:]+\"}],comment:[{token:\"comment.block\",merge:!0,regex:\".+?\"}],tag:[{token:\"entity.name.function\",regex:\"[a-zA-Z][_a-zA-Z0-9]*\",next:\"start\"}]}};r.inherits(u,o);var a=function(){this.$rules=(new s).getRules();for(var e in this.$rules)this.$rules[e].unshift({token:\"comment.line\",regex:\"\\\\{#.*?#\\\\}\"},{token:\"comment.block\",regex:\"\\\\{\\\\%\\\\s*comment\\\\s*\\\\%\\\\}\",merge:!0,next:\"django-comment\"},{token:\"constant.language\",regex:\"\\\\{\\\\{\",next:\"django-start\"},{token:\"constant.language\",regex:\"\\\\{\\\\%\",next:\"django-tag\"}),this.embedRules(u,\"django-\",[{token:\"comment.block\",regex:\"\\\\{\\\\%\\\\s*endcomment\\\\s*\\\\%\\\\}\",merge:!0,next:\"start\"},{token:\"constant.language\",regex:\"\\\\%\\\\}\",next:\"start\"},{token:\"constant.language\",regex:\"\\\\}\\\\}\",next:\"start\"}])};r.inherits(a,s);var f=function(){i.call(this),this.HighlightRules=a};r.inherits(f,i),function(){this.$id=\"ace/mode/django\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-dockerfile.js",
    "content": "ace.define(\"ace/mode/sh_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=t.reservedKeywords=\"!|{|}|case|do|done|elif|else|esac|fi|for|if|in|then|until|while|&|;|export|local|read|typeset|unset|elif|select|set|function|declare|readonly\",o=t.languageConstructs=\"[|]|alias|bg|bind|break|builtin|cd|command|compgen|complete|continue|dirs|disown|echo|enable|eval|exec|exit|fc|fg|getopts|hash|help|history|jobs|kill|let|logout|popd|printf|pushd|pwd|return|set|shift|shopt|source|suspend|test|times|trap|type|ulimit|umask|unalias|wait\",u=function(){var e=this.createKeywordMapper({keyword:s,\"support.function.builtin\":o,\"invalid.deprecated\":\"debugger\"},\"identifier\"),t=\"(?:(?:[1-9]\\\\d*)|(?:0))\",n=\"(?:\\\\.\\\\d+)\",r=\"(?:\\\\d+)\",i=\"(?:(?:\"+r+\"?\"+n+\")|(?:\"+r+\"\\\\.))\",u=\"(?:(?:\"+i+\"|\"+r+\")\"+\")\",a=\"(?:\"+u+\"|\"+i+\")\",f=\"(?:&\"+r+\")\",l=\"[a-zA-Z_][a-zA-Z0-9_]*\",c=\"(?:\"+l+\"=)\",h=\"(?:\\\\$(?:SHLVL|\\\\$|\\\\!|\\\\?))\",p=\"(?:\"+l+\"\\\\s*\\\\(\\\\))\";this.$rules={start:[{token:\"constant\",regex:/\\\\./},{token:[\"text\",\"comment\"],regex:/(^|\\s)(#.*)$/},{token:\"string\",regex:'\"',push:[{token:\"constant.language.escape\",regex:/\\\\(?:[$`\"\\\\]|$)/},{include:\"variables\"},{token:\"keyword.operator\",regex:/`/},{token:\"string\",regex:'\"',next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string\",regex:\"\\\\$'\",push:[{token:\"constant.language.escape\",regex:/\\\\(?:[abeEfnrtv\\\\'\"]|x[a-fA-F\\d]{1,2}|u[a-fA-F\\d]{4}([a-fA-F\\d]{4})?|c.|\\d{1,3})/},{token:\"string\",regex:\"'\",next:\"pop\"},{defaultToken:\"string\"}]},{regex:\"<<<\",token:\"keyword.operator\"},{stateName:\"heredoc\",regex:\"(<<-?)(\\\\s*)(['\\\"`]?)([\\\\w\\\\-]+)(['\\\"`]?)\",onMatch:function(e,t,n){var r=e[2]==\"-\"?\"indentedHeredoc\":\"heredoc\",i=e.split(this.splitRegex);return n.push(r,i[4]),[{type:\"constant\",value:i[1]},{type:\"text\",value:i[2]},{type:\"string\",value:i[3]},{type:\"support.class\",value:i[4]},{type:\"string\",value:i[5]}]},rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}],indentedHeredoc:[{token:\"string\",regex:\"^\t+\"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}]}},{regex:\"$\",token:\"empty\",next:function(e,t){return t[0]===\"heredoc\"||t[0]===\"indentedHeredoc\"?t[0]:e}},{token:[\"keyword\",\"text\",\"text\",\"text\",\"variable\"],regex:/(declare|local|readonly)(\\s+)(?:(-[fixar]+)(\\s+))?([a-zA-Z_][a-zA-Z0-9_]*\\b)/},{token:\"variable.language\",regex:h},{token:\"variable\",regex:c},{include:\"variables\"},{token:\"support.function\",regex:p},{token:\"support.function\",regex:f},{token:\"string\",start:\"'\",end:\"'\"},{token:\"constant.numeric\",regex:a},{token:\"constant.numeric\",regex:t+\"\\\\b\"},{token:e,regex:\"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|~|<|>|<=|=>|=|!=|[%&|`]\"},{token:\"punctuation.operator\",regex:\";\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]]\"},{token:\"paren.rparen\",regex:\"[\\\\)\\\\}]\",next:\"pop\"}],variables:[{token:\"variable\",regex:/(\\$)(\\w+)/},{token:[\"variable\",\"paren.lparen\"],regex:/(\\$)(\\()/,push:\"start\"},{token:[\"variable\",\"paren.lparen\",\"keyword.operator\",\"variable\",\"keyword.operator\"],regex:/(\\$)(\\{)([#!]?)(\\w+|[*@#?\\-$!0_])(:[?+\\-=]?|##?|%%?|,,?\\/|\\^\\^?)?/,push:\"start\"},{token:\"variable\",regex:/\\$[*@#?\\-$!0_]/},{token:[\"variable\",\"paren.lparen\"],regex:/(\\$)(\\{)/,push:\"start\"}]},this.normalizeRules()};r.inherits(u,i),t.ShHighlightRules=u}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/sh\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/sh_highlight_rules\",\"ace/range\",\"ace/mode/folding/cstyle\",\"ace/mode/behaviour/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./sh_highlight_rules\").ShHighlightRules,o=e(\"../range\").Range,u=e(\"./folding/cstyle\").FoldMode,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=function(){this.HighlightRules=s,this.foldingRules=new u,this.$behaviour=new a};r.inherits(f,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[\\:]\\s*$/);o&&(r+=n)}return r};var e={pass:1,\"return\":1,raise:1,\"break\":1,\"continue\":1};this.checkOutdent=function(t,n,r){if(r!==\"\\r\\n\"&&r!==\"\\r\"&&r!==\"\\n\")return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do var s=i.pop();while(s&&(s.type==\"comment\"||s.type==\"text\"&&s.value.match(/^\\s+$/)));return s?s.type==\"keyword\"&&e[s.value]:!1},this.autoOutdent=function(e,t,n){n+=1;var r=this.$getIndent(t.getLine(n)),i=t.getTabString();r.slice(-i.length)==i&&t.remove(new o(n,r.length-i.length,n,r.length))},this.$id=\"ace/mode/sh\"}.call(f.prototype),t.Mode=f}),ace.define(\"ace/mode/dockerfile_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/sh_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./sh_highlight_rules\").ShHighlightRules,s=function(){i.call(this);var e=this.$rules.start;for(var t=0;t<e.length;t++)if(e[t].token==\"variable.language\"){e.splice(t,0,{token:\"constant.language\",regex:\"(?:^(?:FROM|MAINTAINER|RUN|CMD|EXPOSE|ENV|ADD|ENTRYPOINT|VOLUME|USER|WORKDIR|ONBUILD|COPY|LABEL)\\\\b)\",caseInsensitive:!0});break}};r.inherits(s,i),t.DockerfileHighlightRules=s}),ace.define(\"ace/mode/dockerfile\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/sh\",\"ace/mode/dockerfile_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./sh\").Mode,s=e(\"./dockerfile_highlight_rules\").DockerfileHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){i.call(this),this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.$id=\"ace/mode/dockerfile\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-dot.js",
    "content": "ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/dot_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/doc_comment_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,u=function(){var e=i.arrayToMap(\"strict|node|edge|graph|digraph|subgraph\".split(\"|\")),t=i.arrayToMap(\"damping|k|url|area|arrowhead|arrowsize|arrowtail|aspect|bb|bgcolor|center|charset|clusterrank|color|colorscheme|comment|compound|concentrate|constraint|decorate|defaultdist|dim|dimen|dir|diredgeconstraints|distortion|dpi|edgeurl|edgehref|edgetarget|edgetooltip|epsilon|esep|fillcolor|fixedsize|fontcolor|fontname|fontnames|fontpath|fontsize|forcelabels|gradientangle|group|headurl|head_lp|headclip|headhref|headlabel|headport|headtarget|headtooltip|height|href|id|image|imagepath|imagescale|label|labelurl|label_scheme|labelangle|labeldistance|labelfloat|labelfontcolor|labelfontname|labelfontsize|labelhref|labeljust|labelloc|labeltarget|labeltooltip|landscape|layer|layerlistsep|layers|layerselect|layersep|layout|len|levels|levelsgap|lhead|lheight|lp|ltail|lwidth|margin|maxiter|mclimit|mindist|minlen|mode|model|mosek|nodesep|nojustify|normalize|nslimit|nslimit1|ordering|orientation|outputorder|overlap|overlap_scaling|pack|packmode|pad|page|pagedir|pencolor|penwidth|peripheries|pin|pos|quadtree|quantum|rank|rankdir|ranksep|ratio|rects|regular|remincross|repulsiveforce|resolution|root|rotate|rotation|samehead|sametail|samplepoints|scale|searchsize|sep|shape|shapefile|showboxes|sides|size|skew|smoothing|sortv|splines|start|style|stylesheet|tailurl|tail_lp|tailclip|tailhref|taillabel|tailport|tailtarget|tailtooltip|target|tooltip|truecolor|vertices|viewport|voro_margin|weight|width|xlabel|xlp|z\".split(\"|\"));this.$rules={start:[{token:\"comment\",regex:/\\/\\/.*$/},{token:\"comment\",regex:/#.*$/},{token:\"comment\",merge:!0,regex:/\\/\\*/,next:\"comment\"},{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/[+\\-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?)?\\b/},{token:\"keyword.operator\",regex:/\\+|=|\\->/},{token:\"punctuation.operator\",regex:/,|;/},{token:\"paren.lparen\",regex:/[\\[{]/},{token:\"paren.rparen\",regex:/[\\]}]/},{token:\"comment\",regex:/^#!.*$/},{token:function(n){return e.hasOwnProperty(n.toLowerCase())?\"keyword\":t.hasOwnProperty(n.toLowerCase())?\"variable\":\"text\"},regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",merge:!0,next:\"start\"},{token:\"comment\",merge:!0,regex:\".+\"}],qqstring:[{token:\"string\",regex:'[^\"\\\\\\\\]+',merge:!0},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\",merge:!0},{token:\"string\",regex:'\"|$',next:\"start\",merge:!0}],qstring:[{token:\"string\",regex:\"[^'\\\\\\\\]+\",merge:!0},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\",merge:!0},{token:\"string\",regex:\"'|$\",next:\"start\",merge:!0}]}};r.inherits(u,s),t.DotHighlightRules=u}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/dot\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/matching_brace_outdent\",\"ace/mode/dot_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./matching_brace_outdent\").MatchingBraceOutdent,o=e(\"./dot_highlight_rules\").DotHighlightRules,u=e(\"./folding/cstyle\").FoldMode,a=function(){this.HighlightRules=o,this.$outdent=new s,this.foldingRules=new u};r.inherits(a,i),function(){this.lineCommentStart=[\"//\",\"#\"],this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/dot\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-eiffel.js",
    "content": "ace.define(\"ace/mode/eiffel_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"across|agent|alias|all|attached|as|assign|attribute|check|class|convert|create|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|Precursor|redefine|rename|require|rescue|retry|select|separate|some|then|undefine|until|variant|when\",t=\"and|implies|or|xor\",n=\"Void\",r=\"True|False\",i=\"Current|Result\",s=this.createKeywordMapper({\"constant.language\":n,\"constant.language.boolean\":r,\"variable.language\":i,\"keyword.operator\":t,keyword:e},\"identifier\",!0),o=/(?:[^\"%\\b\\f\\v]|%[A-DFHLNQR-V%'\"()<>]|%\\/(?:0[xX][\\da-fA-F](?:_*[\\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\\d(?:_*\\d)*)\\/)+?/;this.$rules={start:[{token:\"string.quoted.other\",regex:/\"\\[/,next:\"aligned_verbatim_string\"},{token:\"string.quoted.other\",regex:/\"\\{/,next:\"non-aligned_verbatim_string\"},{token:\"string.quoted.double\",regex:/\"(?:[^%\\b\\f\\n\\r\\v]|%[A-DFHLNQR-V%'\"()<>]|%\\/(?:0[xX][\\da-fA-F](?:_*[\\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\\d(?:_*\\d)*)\\/)*?\"/},{token:\"comment.line.double-dash\",regex:/--.*/},{token:\"constant.character\",regex:/'(?:[^%\\b\\f\\n\\r\\t\\v]|%[A-DFHLNQR-V%'\"()<>]|%\\/(?:0[xX][\\da-fA-F](?:_*[\\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\\d(?:_*\\d)*)\\/)'/},{token:\"constant.numeric\",regex:/\\b0(?:[xX][\\da-fA-F](?:_*[\\da-fA-F])*|[cC][0-7](?:_*[0-7])*|[bB][01](?:_*[01])*)\\b/},{token:\"constant.numeric\",regex:/(?:\\d(?:_*\\d)*)?\\.(?:(?:\\d(?:_*\\d)*)?[eE][+-]?)?\\d(?:_*\\d)*|\\d(?:_*\\d)*\\.?/},{token:\"paren.lparen\",regex:/[\\[({]|<<|\\|\\(/},{token:\"paren.rparen\",regex:/[\\])}]|>>|\\|\\)/},{token:\"keyword.operator\",regex:/:=|->|\\.(?=\\w)|[;,:?]/},{token:\"keyword.operator\",regex:/\\\\\\\\|\\|\\.\\.\\||\\.\\.|\\/[~\\/]?|[><\\/]=?|[-+*^=~]/},{token:function(e){var t=s(e);return t===\"identifier\"&&e===e.toUpperCase()&&(t=\"entity.name.type\"),t},regex:/[a-zA-Z][a-zA-Z\\d_]*\\b/},{token:\"text\",regex:/\\s+/}],aligned_verbatim_string:[{token:\"string\",regex:/]\"/,next:\"start\"},{token:\"string\",regex:o}],\"non-aligned_verbatim_string\":[{token:\"string.quoted.other\",regex:/}\"/,next:\"start\"},{token:\"string.quoted.other\",regex:o}]}};r.inherits(s,i),t.EiffelHighlightRules=s}),ace.define(\"ace/mode/eiffel\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/eiffel_highlight_rules\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./eiffel_highlight_rules\").EiffelHighlightRules,o=e(\"../range\").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.$id=\"ace/mode/eiffel\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-ejs.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[A-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/ruby_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=t.constantOtherSymbol={token:\"constant.other.symbol.ruby\",regex:\"[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?\"},o=t.qString={token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},u=t.qqString={token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},a=t.tString={token:\"string\",regex:\"[`](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[`]\"},f=t.constantNumericHex={token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\\\b\"},l=t.constantNumericFloat={token:\"constant.numeric\",regex:\"[+-]?\\\\d(?:\\\\d|_(?=\\\\d))*(?:(?:\\\\.\\\\d(?:\\\\d|_(?=\\\\d))*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},c=function(){var e=\"abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|validates_inclusion_of|validates_numericality_of|validates_with|validates_each|authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|cache|expire_fragment|expire_cache_for|observe|cache_sweeper|has_many|has_one|belongs_to|has_and_belongs_to_many\",t=\"alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield\",n=\"true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING\",r=\"$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|$!|root_url|flash|session|cookies|params|request|response|logger|self\",i=this.$keywords=this.createKeywordMapper({keyword:t,\"constant.language\":n,\"variable.language\":r,\"support.function\":e,\"invalid.deprecated\":\"debugger\"},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"comment\",regex:\"^=begin(?:$|\\\\s.*$)\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},[{regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)return n.unshift(\"start\",t),\"paren.lparen\";if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1)return\"paren.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.start\",regex:/\"/,push:[{token:\"constant.language.escape\",regex:/\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/},{token:\"paren.start\",regex:/\\#{/,push:\"start\"},{token:\"string.end\",regex:/\"/,next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:/\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/},{token:\"paren.start\",regex:/\\#{/,push:\"start\"},{token:\"string.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:/'/,push:[{token:\"constant.language.escape\",regex:/\\\\['\\\\]/},{token:\"string.end\",regex:/'/,next:\"pop\"},{defaultToken:\"string\"}]}],{token:\"text\",regex:\"::\"},{token:\"variable.instance\",regex:\"@{1,2}[a-zA-Z_\\\\d]+\"},{token:\"support.class\",regex:\"[A-Z][a-zA-Z_\\\\d]+\"},s,f,l,{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:i,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"punctuation.separator.key-value\",regex:\"=>\"},{stateName:\"heredoc\",onMatch:function(e,t,n){var r=e[2]==\"-\"?\"indentedHeredoc\":\"heredoc\",i=e.split(this.splitRegex);return n.push(r,i[3]),[{type:\"constant\",value:i[1]},{type:\"string\",value:i[2]},{type:\"support.class\",value:i[3]},{type:\"string\",value:i[4]}]},regex:\"(<<-?)(['\\\"`]?)([\\\\w]+)(['\\\"`]?)\",rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}],indentedHeredoc:[{token:\"string\",regex:\"^ +\"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}]}},{regex:\"$\",token:\"empty\",next:function(e,t){return t[0]===\"heredoc\"||t[0]===\"indentedHeredoc\"?t[0]:e}},{token:\"string.character\",regex:\"\\\\B\\\\?.\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"^=end(?:$|\\\\s.*$)\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.normalizeRules()};r.inherits(c,i),t.RubyHighlightRules=c}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/ruby\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ruby_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./ruby_highlight_rules\").RubyHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/coffee\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[]\\s*$/),u=t.match(/^\\s*(class|def|module)\\s.*$/),a=t.match(/.*do(\\s*|\\s+\\|.*\\|\\s*)$/),f=t.match(/^\\s*(if|else|when)\\s*/);if(o||u||a||f)r+=n}return r},this.checkOutdent=function(e,t,n){return/^\\s+(end|else)$/.test(t+n)||this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){var r=t.getLine(n);if(/}/.test(r))return this.$outdent.autoOutdent(t,n);var i=this.$getIndent(r),s=t.getLine(n-1),o=this.$getIndent(s),a=t.getTabString();o.length<=i.length&&i.slice(-a.length)==a&&t.remove(new u(n,i.length-a.length,n,i.length))},this.$id=\"ace/mode/ruby\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/ejs\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/ruby\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=function(e,t){i.call(this),e||(e=\"(?:<%|<\\\\?|{{)\"),t||(t=\"(?:%>|\\\\?>|}})\");for(var n in this.$rules)this.$rules[n].unshift({token:\"markup.list.meta.tag\",regex:e+\"(?![>}])[-=]?\",push:\"ejs-start\"});this.embedRules(s,\"ejs-\",[{token:\"markup.list.meta.tag\",regex:\"-?\"+t,next:\"pop\"},{token:\"comment\",regex:\"//.*?\"+t,next:\"pop\"}]),this.normalizeRules()};r.inherits(o,i),t.EjsHighlightRules=o;var r=e(\"../lib/oop\"),u=e(\"./html\").Mode,a=e(\"./javascript\").Mode,f=e(\"./css\").Mode,l=e(\"./ruby\").Mode,c=function(){u.call(this),this.HighlightRules=o,this.createModeDelegates({\"js-\":a,\"css-\":f,\"ejs-\":a})};r.inherits(c,u),function(){this.$id=\"ace/mode/ejs\"}.call(c.prototype),t.Mode=c})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-elixir.js",
    "content": "ace.define(\"ace/mode/elixir_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:[\"meta.module.elixir\",\"keyword.control.module.elixir\",\"meta.module.elixir\",\"entity.name.type.module.elixir\"],regex:\"^(\\\\s*)(defmodule)(\\\\s+)((?:[A-Z]\\\\w*\\\\s*\\\\.\\\\s*)*[A-Z]\\\\w*)\"},{token:\"comment.documentation.heredoc\",regex:'@(?:module|type)?doc (?:~[a-z])?\"\"\"',push:[{token:\"comment.documentation.heredoc\",regex:'\\\\s*\"\"\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"comment.documentation.heredoc\"}],comment:\"@doc with heredocs is treated as documentation\"},{token:\"comment.documentation.heredoc\",regex:'@(?:module|type)?doc ~[A-Z]\"\"\"',push:[{token:\"comment.documentation.heredoc\",regex:'\\\\s*\"\"\"',next:\"pop\"},{defaultToken:\"comment.documentation.heredoc\"}],comment:\"@doc with heredocs is treated as documentation\"},{token:\"comment.documentation.heredoc\",regex:\"@(?:module|type)?doc (?:~[a-z])?'''\",push:[{token:\"comment.documentation.heredoc\",regex:\"\\\\s*'''\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"comment.documentation.heredoc\"}],comment:\"@doc with heredocs is treated as documentation\"},{token:\"comment.documentation.heredoc\",regex:\"@(?:module|type)?doc ~[A-Z]'''\",push:[{token:\"comment.documentation.heredoc\",regex:\"\\\\s*'''\",next:\"pop\"},{defaultToken:\"comment.documentation.heredoc\"}],comment:\"@doc with heredocs is treated as documentation\"},{token:\"comment.documentation.false\",regex:\"@(?:module|type)?doc false\",comment:\"@doc false is treated as documentation\"},{token:\"comment.documentation.string\",regex:'@(?:module|type)?doc \"',push:[{token:\"comment.documentation.string\",regex:'\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"comment.documentation.string\"}],comment:\"@doc with string is treated as documentation\"},{token:\"keyword.control.elixir\",regex:\"\\\\b(?:do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\\\\b(?![?!])\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!\\\\.)\\\\b(do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\\\\b(?![?!])\"},{token:\"keyword.operator.elixir\",regex:\"\\\\b(?:and|not|or|when|xor|in|inlist|inbits)\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!\\\\.)\\\\b(and|not|or|when|xor|in|inlist|inbits)\\\\b\",comment:\" as above, just doesn't need a 'end' and does a logic operation\"},{token:\"constant.language.elixir\",regex:\"\\\\b(?:nil|true|false)\\\\b(?![?!])\"},{token:\"variable.language.elixir\",regex:\"\\\\b__(?:CALLER|ENV|MODULE|DIR)__\\\\b(?![?!])\"},{token:[\"punctuation.definition.variable.elixir\",\"variable.other.readwrite.module.elixir\"],regex:\"(@)([a-zA-Z_]\\\\w*)\"},{token:[\"punctuation.definition.variable.elixir\",\"variable.other.anonymous.elixir\"],regex:\"(&)(\\\\d*)\"},{token:\"variable.other.constant.elixir\",regex:\"\\\\b[A-Z]\\\\w*\\\\b\"},{token:\"constant.numeric.elixir\",regex:\"\\\\b(?:0x[\\\\da-fA-F](?:_?[\\\\da-fA-F])*|\\\\d(?:_?\\\\d)*(?:\\\\.(?![^[:space:][:digit:]])(?:_?\\\\d)*)?(?:[eE][-+]?\\\\d(?:_?\\\\d)*)?|0b[01]+|0o[0-7]+)\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"\\\\b(0x\\\\h(?>_?\\\\h)*|\\\\d(?>_?\\\\d)*(\\\\.(?![^[:space:][:digit:]])(?>_?\\\\d)*)?([eE][-+]?\\\\d(?>_?\\\\d)*)?|0b[01]+|0o[0-7]+)\\\\b\"},{token:\"punctuation.definition.constant.elixir\",regex:\":'\",push:[{token:\"punctuation.definition.constant.elixir\",regex:\"'\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"constant.other.symbol.single-quoted.elixir\"}]},{token:\"punctuation.definition.constant.elixir\",regex:':\"',push:[{token:\"punctuation.definition.constant.elixir\",regex:'\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"constant.other.symbol.double-quoted.elixir\"}]},{token:\"punctuation.definition.string.begin.elixir\",regex:\"(?:''')\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?>''')\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"^\\\\s*'''\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"support.function.variable.quoted.single.heredoc.elixir\"}],comment:\"Single-quoted heredocs\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"'\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"support.function.variable.quoted.single.elixir\"}],comment:\"single quoted string (allows for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:'(?:\"\"\")',TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:'(?>\"\"\")',push:[{token:\"punctuation.definition.string.end.elixir\",regex:'^\\\\s*\"\"\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.quoted.double.heredoc.elixir\"}],comment:\"Double-quoted heredocs\"},{token:\"punctuation.definition.string.begin.elixir\",regex:'\"',push:[{token:\"punctuation.definition.string.end.elixir\",regex:'\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.quoted.double.elixir\"}],comment:\"double quoted string (allows for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:'~[a-z](?:\"\"\")',TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:'~[a-z](?>\"\"\")',push:[{token:\"punctuation.definition.string.end.elixir\",regex:'^\\\\s*\"\"\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.quoted.double.heredoc.elixir\"}],comment:\"Double-quoted heredocs sigils\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z]\\\\{\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\}[a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z]\\\\[\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\][a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z]\\\\<\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\>[a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z]\\\\(\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\)[a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z][^\\\\w]\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"[^\\\\w][a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:'~[A-Z](?:\"\"\")',TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:'~[A-Z](?>\"\"\")',push:[{token:\"punctuation.definition.string.end.elixir\",regex:'^\\\\s*\"\"\"',next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"Double-quoted heredocs sigils\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z]\\\\{\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\}[a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z]\\\\[\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\][a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z]\\\\<\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\>[a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z]\\\\(\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\)[a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z][^\\\\w]\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"[^\\\\w][a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:[\"punctuation.definition.constant.elixir\",\"constant.other.symbol.elixir\"],regex:\"(:)([a-zA-Z_][\\\\w@]*(?:[?!]|=(?![>=]))?|\\\\<\\\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\\\-|\\\\|>|=>|~|~=|=|/|\\\\\\\\\\\\\\\\|\\\\*\\\\*?|\\\\.\\\\.?\\\\.?|>=?|<=?|&&?&?|\\\\+\\\\+?|\\\\-\\\\-?|\\\\|\\\\|?\\\\|?|\\\\!|@|\\\\%?\\\\{\\\\}|%|\\\\[\\\\]|\\\\^(?:\\\\^\\\\^)?)\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!:)(:)(?>[a-zA-Z_][\\\\w@]*(?>[?!]|=(?![>=]))?|\\\\<\\\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\\\-|\\\\|>|=>|~|~=|=|/|\\\\\\\\\\\\\\\\|\\\\*\\\\*?|\\\\.\\\\.?\\\\.?|>=?|<=?|&&?&?|\\\\+\\\\+?|\\\\-\\\\-?|\\\\|\\\\|?\\\\|?|\\\\!|@|\\\\%?\\\\{\\\\}|%|\\\\[\\\\]|\\\\^(\\\\^\\\\^)?)\",comment:\"symbols\"},{token:\"punctuation.definition.constant.elixir\",regex:\"(?:[a-zA-Z_][\\\\w@]*(?:[?!])?):(?!:)\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?>[a-zA-Z_][\\\\w@]*(?>[?!])?)(:)(?!:)\",comment:\"symbols\"},{token:[\"punctuation.definition.comment.elixir\",\"comment.line.number-sign.elixir\"],regex:\"(#)(.*)\"},{token:\"constant.numeric.elixir\",regex:\"\\\\?(?:\\\\\\\\(?:x[\\\\da-fA-F]{1,2}(?![\\\\da-fA-F])\\\\b|[^xMC])|[^\\\\s\\\\\\\\])\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!\\\\w)\\\\?(\\\\\\\\(x\\\\h{1,2}(?!\\\\h)\\\\b|[^xMC])|[^\\\\s\\\\\\\\])\",comment:'\\n\t\t\tmatches questionmark-letters.\\n\\n\t\t\texamples (1st alternation = hex):\\n\t\t\t?\\\\x1     ?\\\\x61\\n\\n\t\t\texamples (2rd alternation = escaped):\\n\t\t\t?\\\\n      ?\\\\b\\n\\n\t\t\texamples (3rd alternation = normal):\\n\t\t\t?a       ?A       ?0 \\n\t\t\t?*       ?\"       ?( \\n\t\t\t?.       ?#\\n\t\t\t\\n\t\t\tthe negative lookbehind prevents against matching\\n\t\t\tp(42.tainted?)\\n\t\t\t'},{token:\"keyword.operator.assignment.augmented.elixir\",regex:\"\\\\+=|\\\\-=|\\\\|\\\\|=|~=|&&=\"},{token:\"keyword.operator.comparison.elixir\",regex:\"===?|!==?|<=?|>=?\"},{token:\"keyword.operator.bitwise.elixir\",regex:\"\\\\|{3}|&{3}|\\\\^{3}|<{3}|>{3}|~{3}\"},{token:\"keyword.operator.logical.elixir\",regex:\"!+|\\\\bnot\\\\b|&&|\\\\band\\\\b|\\\\|\\\\||\\\\bor\\\\b|\\\\bxor\\\\b\",originalRegex:\"(?<=[ \\\\t])!+|\\\\bnot\\\\b|&&|\\\\band\\\\b|\\\\|\\\\||\\\\bor\\\\b|\\\\bxor\\\\b\"},{token:\"keyword.operator.arithmetic.elixir\",regex:\"\\\\*|\\\\+|\\\\-|/\"},{token:\"keyword.operator.other.elixir\",regex:\"\\\\||\\\\+\\\\+|\\\\-\\\\-|\\\\*\\\\*|\\\\\\\\\\\\\\\\|\\\\<\\\\-|\\\\<\\\\>|\\\\<\\\\<|\\\\>\\\\>|\\\\:\\\\:|\\\\.\\\\.|\\\\|>|~|=>\"},{token:\"keyword.operator.assignment.elixir\",regex:\"=\"},{token:\"punctuation.separator.other.elixir\",regex:\":\"},{token:\"punctuation.separator.statement.elixir\",regex:\"\\\\;\"},{token:\"punctuation.separator.object.elixir\",regex:\",\"},{token:\"punctuation.separator.method.elixir\",regex:\"\\\\.\"},{token:\"punctuation.section.scope.elixir\",regex:\"\\\\{|\\\\}\"},{token:\"punctuation.section.array.elixir\",regex:\"\\\\[|\\\\]\"},{token:\"punctuation.section.function.elixir\",regex:\"\\\\(|\\\\)\"}],\"#escaped_char\":[{token:\"constant.character.escape.elixir\",regex:\"\\\\\\\\(?:x[\\\\da-fA-F]{1,2}|.)\"}],\"#interpolated_elixir\":[{token:[\"source.elixir.embedded.source\",\"source.elixir.embedded.source.empty\"],regex:\"(#\\\\{)(\\\\})\"},{todo:{token:\"punctuation.section.embedded.elixir\",regex:\"#\\\\{\",push:[{token:\"punctuation.section.embedded.elixir\",regex:\"\\\\}\",next:\"pop\"},{include:\"#nest_curly_and_self\"},{include:\"$self\"},{defaultToken:\"source.elixir.embedded.source\"}]}}],\"#nest_curly_and_self\":[{token:\"punctuation.section.scope.elixir\",regex:\"\\\\{\",push:[{token:\"punctuation.section.scope.elixir\",regex:\"\\\\}\",next:\"pop\"},{include:\"#nest_curly_and_self\"}]},{include:\"$self\"}],\"#regex_sub\":[{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{token:[\"punctuation.definition.arbitrary-repitition.elixir\",\"string.regexp.arbitrary-repitition.elixir\",\"string.regexp.arbitrary-repitition.elixir\",\"punctuation.definition.arbitrary-repitition.elixir\"],regex:\"(\\\\{)(\\\\d+)((?:,\\\\d+)?)(\\\\})\"},{token:\"punctuation.definition.character-class.elixir\",regex:\"\\\\[(?:\\\\^?\\\\])?\",push:[{token:\"punctuation.definition.character-class.elixir\",regex:\"\\\\]\",next:\"pop\"},{include:\"#escaped_char\"},{defaultToken:\"string.regexp.character-class.elixir\"}]},{token:\"punctuation.definition.group.elixir\",regex:\"\\\\(\",push:[{token:\"punctuation.definition.group.elixir\",regex:\"\\\\)\",next:\"pop\"},{include:\"#regex_sub\"},{defaultToken:\"string.regexp.group.elixir\"}]},{token:[\"punctuation.definition.comment.elixir\",\"comment.line.number-sign.elixir\"],regex:\"(?:^|\\\\s)(#)(\\\\s[[a-zA-Z0-9,. \\\\t?!-][^\\\\x00-\\\\x7F]]*$)\",originalRegex:\"(?<=^|\\\\s)(#)\\\\s[[a-zA-Z0-9,. \\\\t?!-][^\\\\x{00}-\\\\x{7F}]]*$\",comment:\"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.\"}]},this.normalizeRules()};s.metaData={comment:\"Textmate bundle for Elixir Programming Language.\",fileTypes:[\"ex\",\"exs\"],firstLineMatch:\"^#!/.*\\\\belixir\",foldingStartMarker:\"(after|else|catch|rescue|\\\\-\\\\>|\\\\{|\\\\[|do)\\\\s*$\",foldingStopMarker:\"^\\\\s*((\\\\}|\\\\]|after|else|catch|rescue)\\\\s*$|end\\\\b)\",keyEquivalent:\"^~E\",name:\"Elixir\",scopeName:\"source.elixir\"},r.inherits(s,i),t.ElixirHighlightRules=s}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/elixir\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/elixir_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./elixir_highlight_rules\").ElixirHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"#\",this.$id=\"ace/mode/elixir\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-elm.js",
    "content": "ace.define(\"ace/mode/elm_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=this.createKeywordMapper({keyword:\"as|case|class|data|default|deriving|do|else|export|foreign|hiding|jsevent|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|open|then|type|where|_|port|\\u03bb\"},\"identifier\"),t=/\\\\(\\d+|['\"\\\\&trnbvf])/,n=/[a-z_]/.source,r=/[A-Z]/.source,i=/[a-z_A-Z0-9\\']/.source;this.$rules={start:[{token:\"string.start\",regex:'\"',next:\"string\"},{token:\"string.character\",regex:\"'(?:\"+t.source+\"|.)'?\"},{regex:/0(?:[xX][0-9A-Fa-f]+|[oO][0-7]+)|\\d+(\\.\\d+)?([eE][-+]?\\d*)?/,token:\"constant.numeric\"},{token:\"comment\",regex:\"--.*\"},{token:\"keyword\",regex:/\\.\\.|\\||:|=|\\\\|\\\"|->|<-|\\u2192/},{token:\"keyword.operator\",regex:/[-!#$%&*+.\\/<=>?@\\\\^|~:\\u03BB\\u2192]+/},{token:\"operator.punctuation\",regex:/[,;`]/},{regex:r+i+\"+\\\\.?\",token:function(e){return e[e.length-1]==\".\"?\"entity.name.function\":\"constant.language\"}},{regex:\"^\"+n+i+\"+\",token:function(e){return\"constant.language\"}},{token:e,regex:\"[\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]+\\\\b\"},{regex:\"{-#?\",token:\"comment.start\",onMatch:function(e,t,n){return this.next=e.length==2?\"blockComment\":\"docComment\",this.token}},{token:\"variable.language\",regex:/\\[markdown\\|/,next:\"markdown\"},{token:\"paren.lparen\",regex:/[\\[({]/},{token:\"paren.rparen\",regex:/[\\])}]/}],markdown:[{regex:/\\|\\]/,next:\"start\"},{defaultToken:\"string\"}],blockComment:[{regex:\"{-\",token:\"comment.start\",push:\"blockComment\"},{regex:\"-}\",token:\"comment.end\",next:\"pop\"},{defaultToken:\"comment\"}],docComment:[{regex:\"{-\",token:\"comment.start\",push:\"docComment\"},{regex:\"-}\",token:\"comment.end\",next:\"pop\"},{defaultToken:\"doc.comment\"}],string:[{token:\"constant.language.escape\",regex:t},{token:\"text\",regex:/\\\\(\\s|$)/,next:\"stringGap\"},{token:\"string.end\",regex:'\"',next:\"start\"}],stringGap:[{token:\"text\",regex:/\\\\/,next:\"string\"},{token:\"error\",regex:\"\",next:\"start\"}]},this.normalizeRules()};r.inherits(s,i),t.ElmHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/elm\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/elm_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./elm_highlight_rules\").ElmHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.blockComment={start:\"{-\",end:\"-}\",nestable:!0},this.$id=\"ace/mode/elm\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-erlang.js",
    "content": "ace.define(\"ace/mode/erlang_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{include:\"#module-directive\"},{include:\"#import-export-directive\"},{include:\"#behaviour-directive\"},{include:\"#record-directive\"},{include:\"#define-directive\"},{include:\"#macro-directive\"},{include:\"#directive\"},{include:\"#function\"},{include:\"#everything-else\"}],\"#atom\":[{token:\"punctuation.definition.symbol.begin.erlang\",regex:\"'\",push:[{token:\"punctuation.definition.symbol.end.erlang\",regex:\"'\",next:\"pop\"},{token:[\"punctuation.definition.escape.erlang\",\"constant.other.symbol.escape.erlang\",\"punctuation.definition.escape.erlang\",\"constant.other.symbol.escape.erlang\",\"constant.other.symbol.escape.erlang\"],regex:\"(\\\\\\\\)(?:([bdefnrstv\\\\\\\\'\\\"])|(\\\\^)([@-_])|([0-7]{1,3}))\"},{token:\"invalid.illegal.atom.erlang\",regex:\"\\\\\\\\\\\\^?.?\"},{defaultToken:\"constant.other.symbol.quoted.single.erlang\"}]},{token:\"constant.other.symbol.unquoted.erlang\",regex:\"[a-z][a-zA-Z\\\\d@_]*\"}],\"#behaviour-directive\":[{token:[\"meta.directive.behaviour.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.behaviour.erlang\",\"keyword.control.directive.behaviour.erlang\",\"meta.directive.behaviour.erlang\",\"punctuation.definition.parameters.begin.erlang\",\"meta.directive.behaviour.erlang\",\"entity.name.type.class.behaviour.definition.erlang\",\"meta.directive.behaviour.erlang\",\"punctuation.definition.parameters.end.erlang\",\"meta.directive.behaviour.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(behaviour)(\\\\s*)(\\\\()(\\\\s*)([a-z][a-zA-Z\\\\d@_]*)(\\\\s*)(\\\\))(\\\\s*)(\\\\.)\"}],\"#binary\":[{token:\"punctuation.definition.binary.begin.erlang\",regex:\"<<\",push:[{token:\"punctuation.definition.binary.end.erlang\",regex:\">>\",next:\"pop\"},{token:[\"punctuation.separator.binary.erlang\",\"punctuation.separator.value-size.erlang\"],regex:\"(,)|(:)\"},{include:\"#internal-type-specifiers\"},{include:\"#everything-else\"},{defaultToken:\"meta.structure.binary.erlang\"}]}],\"#character\":[{token:[\"punctuation.definition.character.erlang\",\"punctuation.definition.escape.erlang\",\"constant.character.escape.erlang\",\"punctuation.definition.escape.erlang\",\"constant.character.escape.erlang\",\"constant.character.escape.erlang\"],regex:\"(\\\\$)(\\\\\\\\)(?:([bdefnrstv\\\\\\\\'\\\"])|(\\\\^)([@-_])|([0-7]{1,3}))\"},{token:\"invalid.illegal.character.erlang\",regex:\"\\\\$\\\\\\\\\\\\^?.?\"},{token:[\"punctuation.definition.character.erlang\",\"constant.character.erlang\"],regex:\"(\\\\$)(\\\\S)\"},{token:\"invalid.illegal.character.erlang\",regex:\"\\\\$.?\"}],\"#comment\":[{token:\"punctuation.definition.comment.erlang\",regex:\"%.*$\",push_:[{token:\"comment.line.percentage.erlang\",regex:\"$\",next:\"pop\"},{defaultToken:\"comment.line.percentage.erlang\"}]}],\"#define-directive\":[{token:[\"meta.directive.define.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.define.erlang\",\"keyword.control.directive.define.erlang\",\"meta.directive.define.erlang\",\"punctuation.definition.parameters.begin.erlang\",\"meta.directive.define.erlang\",\"entity.name.function.macro.definition.erlang\",\"meta.directive.define.erlang\",\"punctuation.separator.parameters.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(define)(\\\\s*)(\\\\()(\\\\s*)([a-zA-Z\\\\d@_]+)(\\\\s*)(,)\",push:[{token:[\"punctuation.definition.parameters.end.erlang\",\"meta.directive.define.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"(\\\\))(\\\\s*)(\\\\.)\",next:\"pop\"},{include:\"#everything-else\"},{defaultToken:\"meta.directive.define.erlang\"}]},{token:\"meta.directive.define.erlang\",regex:\"(?=^\\\\s*-\\\\s*define\\\\s*\\\\(\\\\s*[a-zA-Z\\\\d@_]+\\\\s*\\\\()\",push:[{token:[\"punctuation.definition.parameters.end.erlang\",\"meta.directive.define.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"(\\\\))(\\\\s*)(\\\\.)\",next:\"pop\"},{token:[\"text\",\"punctuation.section.directive.begin.erlang\",\"text\",\"keyword.control.directive.define.erlang\",\"text\",\"punctuation.definition.parameters.begin.erlang\",\"text\",\"entity.name.function.macro.definition.erlang\",\"text\",\"punctuation.definition.parameters.begin.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(define)(\\\\s*)(\\\\()(\\\\s*)([a-zA-Z\\\\d@_]+)(\\\\s*)(\\\\()\",push:[{token:[\"punctuation.definition.parameters.end.erlang\",\"text\",\"punctuation.separator.parameters.erlang\"],regex:\"(\\\\))(\\\\s*)(,)\",next:\"pop\"},{token:\"punctuation.separator.parameters.erlang\",regex:\",\"},{include:\"#everything-else\"}]},{token:\"punctuation.separator.define.erlang\",regex:\"\\\\|\\\\||\\\\||:|;|,|\\\\.|->\"},{include:\"#everything-else\"},{defaultToken:\"meta.directive.define.erlang\"}]}],\"#directive\":[{token:[\"meta.directive.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.erlang\",\"keyword.control.directive.erlang\",\"meta.directive.erlang\",\"punctuation.definition.parameters.begin.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)([a-z][a-zA-Z\\\\d@_]*)(\\\\s*)(\\\\(?)\",push:[{token:[\"punctuation.definition.parameters.end.erlang\",\"meta.directive.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"(\\\\)?)(\\\\s*)(\\\\.)\",next:\"pop\"},{include:\"#everything-else\"},{defaultToken:\"meta.directive.erlang\"}]},{token:[\"meta.directive.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.erlang\",\"keyword.control.directive.erlang\",\"meta.directive.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)([a-z][a-zA-Z\\\\d@_]*)(\\\\s*)(\\\\.)\"}],\"#everything-else\":[{include:\"#comment\"},{include:\"#record-usage\"},{include:\"#macro-usage\"},{include:\"#expression\"},{include:\"#keyword\"},{include:\"#textual-operator\"},{include:\"#function-call\"},{include:\"#tuple\"},{include:\"#list\"},{include:\"#binary\"},{include:\"#parenthesized-expression\"},{include:\"#character\"},{include:\"#number\"},{include:\"#atom\"},{include:\"#string\"},{include:\"#symbolic-operator\"},{include:\"#variable\"}],\"#expression\":[{token:\"keyword.control.if.erlang\",regex:\"\\\\bif\\\\b\",push:[{token:\"keyword.control.end.erlang\",regex:\"\\\\bend\\\\b\",next:\"pop\"},{include:\"#internal-expression-punctuation\"},{include:\"#everything-else\"},{defaultToken:\"meta.expression.if.erlang\"}]},{token:\"keyword.control.case.erlang\",regex:\"\\\\bcase\\\\b\",push:[{token:\"keyword.control.end.erlang\",regex:\"\\\\bend\\\\b\",next:\"pop\"},{include:\"#internal-expression-punctuation\"},{include:\"#everything-else\"},{defaultToken:\"meta.expression.case.erlang\"}]},{token:\"keyword.control.receive.erlang\",regex:\"\\\\breceive\\\\b\",push:[{token:\"keyword.control.end.erlang\",regex:\"\\\\bend\\\\b\",next:\"pop\"},{include:\"#internal-expression-punctuation\"},{include:\"#everything-else\"},{defaultToken:\"meta.expression.receive.erlang\"}]},{token:[\"keyword.control.fun.erlang\",\"text\",\"entity.name.type.class.module.erlang\",\"text\",\"punctuation.separator.module-function.erlang\",\"text\",\"entity.name.function.erlang\",\"text\",\"punctuation.separator.function-arity.erlang\"],regex:\"\\\\b(fun)(\\\\s*)(?:([a-z][a-zA-Z\\\\d@_]*)(\\\\s*)(:)(\\\\s*))?([a-z][a-zA-Z\\\\d@_]*)(\\\\s*)(/)\"},{token:\"keyword.control.fun.erlang\",regex:\"\\\\bfun\\\\b\",push:[{token:\"keyword.control.end.erlang\",regex:\"\\\\bend\\\\b\",next:\"pop\"},{token:\"text\",regex:\"(?=\\\\()\",push:[{token:\"punctuation.separator.clauses.erlang\",regex:\";|(?=\\\\bend\\\\b)\",next:\"pop\"},{include:\"#internal-function-parts\"}]},{include:\"#everything-else\"},{defaultToken:\"meta.expression.fun.erlang\"}]},{token:\"keyword.control.try.erlang\",regex:\"\\\\btry\\\\b\",push:[{token:\"keyword.control.end.erlang\",regex:\"\\\\bend\\\\b\",next:\"pop\"},{include:\"#internal-expression-punctuation\"},{include:\"#everything-else\"},{defaultToken:\"meta.expression.try.erlang\"}]},{token:\"keyword.control.begin.erlang\",regex:\"\\\\bbegin\\\\b\",push:[{token:\"keyword.control.end.erlang\",regex:\"\\\\bend\\\\b\",next:\"pop\"},{include:\"#internal-expression-punctuation\"},{include:\"#everything-else\"},{defaultToken:\"meta.expression.begin.erlang\"}]},{token:\"keyword.control.query.erlang\",regex:\"\\\\bquery\\\\b\",push:[{token:\"keyword.control.end.erlang\",regex:\"\\\\bend\\\\b\",next:\"pop\"},{include:\"#everything-else\"},{defaultToken:\"meta.expression.query.erlang\"}]}],\"#function\":[{token:[\"meta.function.erlang\",\"entity.name.function.definition.erlang\",\"meta.function.erlang\"],regex:\"^(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)(?=\\\\()\",push:[{token:\"punctuation.terminator.function.erlang\",regex:\"\\\\.\",next:\"pop\"},{token:[\"text\",\"entity.name.function.erlang\",\"text\"],regex:\"^(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)(?=\\\\()\"},{token:\"text\",regex:\"(?=\\\\()\",push:[{token:\"punctuation.separator.clauses.erlang\",regex:\";|(?=\\\\.)\",next:\"pop\"},{include:\"#parenthesized-expression\"},{include:\"#internal-function-parts\"}]},{include:\"#everything-else\"},{defaultToken:\"meta.function.erlang\"}]}],\"#function-call\":[{token:\"meta.function-call.erlang\",regex:\"(?=(?:[a-z][a-zA-Z\\\\d@_]*|'[^']*')\\\\s*(?:\\\\(|:\\\\s*(?:[a-z][a-zA-Z\\\\d@_]*|'[^']*')\\\\s*\\\\())\",push:[{token:\"punctuation.definition.parameters.end.erlang\",regex:\"\\\\)\",next:\"pop\"},{token:[\"entity.name.type.class.module.erlang\",\"text\",\"punctuation.separator.module-function.erlang\",\"text\",\"entity.name.function.guard.erlang\",\"text\",\"punctuation.definition.parameters.begin.erlang\"],regex:\"(?:(erlang)(\\\\s*)(:)(\\\\s*))?(is_atom|is_binary|is_constant|is_float|is_function|is_integer|is_list|is_number|is_pid|is_port|is_reference|is_tuple|is_record|abs|element|hd|length|node|round|self|size|tl|trunc)(\\\\s*)(\\\\()\",push:[{token:\"text\",regex:\"(?=\\\\))\",next:\"pop\"},{token:\"punctuation.separator.parameters.erlang\",regex:\",\"},{include:\"#everything-else\"}]},{token:[\"entity.name.type.class.module.erlang\",\"text\",\"punctuation.separator.module-function.erlang\",\"text\",\"entity.name.function.erlang\",\"text\",\"punctuation.definition.parameters.begin.erlang\"],regex:\"(?:([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)(:)(\\\\s*))?([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)(\\\\()\",push:[{token:\"text\",regex:\"(?=\\\\))\",next:\"pop\"},{token:\"punctuation.separator.parameters.erlang\",regex:\",\"},{include:\"#everything-else\"}]},{defaultToken:\"meta.function-call.erlang\"}]}],\"#import-export-directive\":[{token:[\"meta.directive.import.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.import.erlang\",\"keyword.control.directive.import.erlang\",\"meta.directive.import.erlang\",\"punctuation.definition.parameters.begin.erlang\",\"meta.directive.import.erlang\",\"entity.name.type.class.module.erlang\",\"meta.directive.import.erlang\",\"punctuation.separator.parameters.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(import)(\\\\s*)(\\\\()(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)(,)\",push:[{token:[\"punctuation.definition.parameters.end.erlang\",\"meta.directive.import.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"(\\\\))(\\\\s*)(\\\\.)\",next:\"pop\"},{include:\"#internal-function-list\"},{defaultToken:\"meta.directive.import.erlang\"}]},{token:[\"meta.directive.export.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.export.erlang\",\"keyword.control.directive.export.erlang\",\"meta.directive.export.erlang\",\"punctuation.definition.parameters.begin.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(export)(\\\\s*)(\\\\()\",push:[{token:[\"punctuation.definition.parameters.end.erlang\",\"meta.directive.export.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"(\\\\))(\\\\s*)(\\\\.)\",next:\"pop\"},{include:\"#internal-function-list\"},{defaultToken:\"meta.directive.export.erlang\"}]}],\"#internal-expression-punctuation\":[{token:[\"punctuation.separator.clause-head-body.erlang\",\"punctuation.separator.clauses.erlang\",\"punctuation.separator.expressions.erlang\"],regex:\"(->)|(;)|(,)\"}],\"#internal-function-list\":[{token:\"punctuation.definition.list.begin.erlang\",regex:\"\\\\[\",push:[{token:\"punctuation.definition.list.end.erlang\",regex:\"\\\\]\",next:\"pop\"},{token:[\"entity.name.function.erlang\",\"text\",\"punctuation.separator.function-arity.erlang\"],regex:\"([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)(/)\",push:[{token:\"punctuation.separator.list.erlang\",regex:\",|(?=\\\\])\",next:\"pop\"},{include:\"#everything-else\"}]},{include:\"#everything-else\"},{defaultToken:\"meta.structure.list.function.erlang\"}]}],\"#internal-function-parts\":[{token:\"text\",regex:\"(?=\\\\()\",push:[{token:\"punctuation.separator.clause-head-body.erlang\",regex:\"->\",next:\"pop\"},{token:\"punctuation.definition.parameters.begin.erlang\",regex:\"\\\\(\",push:[{token:\"punctuation.definition.parameters.end.erlang\",regex:\"\\\\)\",next:\"pop\"},{token:\"punctuation.separator.parameters.erlang\",regex:\",\"},{include:\"#everything-else\"}]},{token:\"punctuation.separator.guards.erlang\",regex:\",|;\"},{include:\"#everything-else\"}]},{token:\"punctuation.separator.expressions.erlang\",regex:\",\"},{include:\"#everything-else\"}],\"#internal-record-body\":[{token:\"punctuation.definition.class.record.begin.erlang\",regex:\"\\\\{\",push:[{token:\"meta.structure.record.erlang\",regex:\"(?=\\\\})\",next:\"pop\"},{token:[\"variable.other.field.erlang\",\"variable.language.omitted.field.erlang\",\"text\",\"keyword.operator.assignment.erlang\"],regex:\"(?:([a-z][a-zA-Z\\\\d@_]*|'[^']*')|(_))(\\\\s*)(=|::)\",push:[{token:\"punctuation.separator.class.record.erlang\",regex:\",|(?=\\\\})\",next:\"pop\"},{include:\"#everything-else\"}]},{token:[\"variable.other.field.erlang\",\"text\",\"punctuation.separator.class.record.erlang\"],regex:\"([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)((?:,)?)\"},{include:\"#everything-else\"},{defaultToken:\"meta.structure.record.erlang\"}]}],\"#internal-type-specifiers\":[{token:\"punctuation.separator.value-type.erlang\",regex:\"/\",push:[{token:\"text\",regex:\"(?=,|:|>>)\",next:\"pop\"},{token:[\"storage.type.erlang\",\"storage.modifier.signedness.erlang\",\"storage.modifier.endianness.erlang\",\"storage.modifier.unit.erlang\",\"punctuation.separator.type-specifiers.erlang\"],regex:\"(integer|float|binary|bytes|bitstring|bits)|(signed|unsigned)|(big|little|native)|(unit)|(-)\"}]}],\"#keyword\":[{token:\"keyword.control.erlang\",regex:\"\\\\b(?:after|begin|case|catch|cond|end|fun|if|let|of|query|try|receive|when)\\\\b\"}],\"#list\":[{token:\"punctuation.definition.list.begin.erlang\",regex:\"\\\\[\",push:[{token:\"punctuation.definition.list.end.erlang\",regex:\"\\\\]\",next:\"pop\"},{token:\"punctuation.separator.list.erlang\",regex:\"\\\\||\\\\|\\\\||,\"},{include:\"#everything-else\"},{defaultToken:\"meta.structure.list.erlang\"}]}],\"#macro-directive\":[{token:[\"meta.directive.ifdef.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.ifdef.erlang\",\"keyword.control.directive.ifdef.erlang\",\"meta.directive.ifdef.erlang\",\"punctuation.definition.parameters.begin.erlang\",\"meta.directive.ifdef.erlang\",\"entity.name.function.macro.erlang\",\"meta.directive.ifdef.erlang\",\"punctuation.definition.parameters.end.erlang\",\"meta.directive.ifdef.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(ifdef)(\\\\s*)(\\\\()(\\\\s*)([a-zA-z\\\\d@_]+)(\\\\s*)(\\\\))(\\\\s*)(\\\\.)\"},{token:[\"meta.directive.ifndef.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.ifndef.erlang\",\"keyword.control.directive.ifndef.erlang\",\"meta.directive.ifndef.erlang\",\"punctuation.definition.parameters.begin.erlang\",\"meta.directive.ifndef.erlang\",\"entity.name.function.macro.erlang\",\"meta.directive.ifndef.erlang\",\"punctuation.definition.parameters.end.erlang\",\"meta.directive.ifndef.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(ifndef)(\\\\s*)(\\\\()(\\\\s*)([a-zA-z\\\\d@_]+)(\\\\s*)(\\\\))(\\\\s*)(\\\\.)\"},{token:[\"meta.directive.undef.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.undef.erlang\",\"keyword.control.directive.undef.erlang\",\"meta.directive.undef.erlang\",\"punctuation.definition.parameters.begin.erlang\",\"meta.directive.undef.erlang\",\"entity.name.function.macro.erlang\",\"meta.directive.undef.erlang\",\"punctuation.definition.parameters.end.erlang\",\"meta.directive.undef.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(undef)(\\\\s*)(\\\\()(\\\\s*)([a-zA-z\\\\d@_]+)(\\\\s*)(\\\\))(\\\\s*)(\\\\.)\"}],\"#macro-usage\":[{token:[\"keyword.operator.macro.erlang\",\"meta.macro-usage.erlang\",\"entity.name.function.macro.erlang\"],regex:\"(\\\\?\\\\??)(\\\\s*)([a-zA-Z\\\\d@_]+)\"}],\"#module-directive\":[{token:[\"meta.directive.module.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.module.erlang\",\"keyword.control.directive.module.erlang\",\"meta.directive.module.erlang\",\"punctuation.definition.parameters.begin.erlang\",\"meta.directive.module.erlang\",\"entity.name.type.class.module.definition.erlang\",\"meta.directive.module.erlang\",\"punctuation.definition.parameters.end.erlang\",\"meta.directive.module.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(module)(\\\\s*)(\\\\()(\\\\s*)([a-z][a-zA-Z\\\\d@_]*)(\\\\s*)(\\\\))(\\\\s*)(\\\\.)\"}],\"#number\":[{token:\"text\",regex:\"(?=\\\\d)\",push:[{token:\"text\",regex:\"(?!\\\\d)\",next:\"pop\"},{token:[\"constant.numeric.float.erlang\",\"punctuation.separator.integer-float.erlang\",\"constant.numeric.float.erlang\",\"punctuation.separator.float-exponent.erlang\"],regex:\"(\\\\d+)(\\\\.)(\\\\d+)((?:[eE][\\\\+\\\\-]?\\\\d+)?)\"},{token:[\"constant.numeric.integer.binary.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.binary.erlang\"],regex:\"(2)(#)([0-1]+)\"},{token:[\"constant.numeric.integer.base-3.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-3.erlang\"],regex:\"(3)(#)([0-2]+)\"},{token:[\"constant.numeric.integer.base-4.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-4.erlang\"],regex:\"(4)(#)([0-3]+)\"},{token:[\"constant.numeric.integer.base-5.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-5.erlang\"],regex:\"(5)(#)([0-4]+)\"},{token:[\"constant.numeric.integer.base-6.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-6.erlang\"],regex:\"(6)(#)([0-5]+)\"},{token:[\"constant.numeric.integer.base-7.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-7.erlang\"],regex:\"(7)(#)([0-6]+)\"},{token:[\"constant.numeric.integer.octal.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.octal.erlang\"],regex:\"(8)(#)([0-7]+)\"},{token:[\"constant.numeric.integer.base-9.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-9.erlang\"],regex:\"(9)(#)([0-8]+)\"},{token:[\"constant.numeric.integer.decimal.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.decimal.erlang\"],regex:\"(10)(#)(\\\\d+)\"},{token:[\"constant.numeric.integer.base-11.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-11.erlang\"],regex:\"(11)(#)([\\\\daA]+)\"},{token:[\"constant.numeric.integer.base-12.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-12.erlang\"],regex:\"(12)(#)([\\\\da-bA-B]+)\"},{token:[\"constant.numeric.integer.base-13.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-13.erlang\"],regex:\"(13)(#)([\\\\da-cA-C]+)\"},{token:[\"constant.numeric.integer.base-14.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-14.erlang\"],regex:\"(14)(#)([\\\\da-dA-D]+)\"},{token:[\"constant.numeric.integer.base-15.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-15.erlang\"],regex:\"(15)(#)([\\\\da-eA-E]+)\"},{token:[\"constant.numeric.integer.hexadecimal.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.hexadecimal.erlang\"],regex:\"(16)(#)([\\\\da-fA-F]+)\"},{token:[\"constant.numeric.integer.base-17.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-17.erlang\"],regex:\"(17)(#)([\\\\da-gA-G]+)\"},{token:[\"constant.numeric.integer.base-18.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-18.erlang\"],regex:\"(18)(#)([\\\\da-hA-H]+)\"},{token:[\"constant.numeric.integer.base-19.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-19.erlang\"],regex:\"(19)(#)([\\\\da-iA-I]+)\"},{token:[\"constant.numeric.integer.base-20.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-20.erlang\"],regex:\"(20)(#)([\\\\da-jA-J]+)\"},{token:[\"constant.numeric.integer.base-21.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-21.erlang\"],regex:\"(21)(#)([\\\\da-kA-K]+)\"},{token:[\"constant.numeric.integer.base-22.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-22.erlang\"],regex:\"(22)(#)([\\\\da-lA-L]+)\"},{token:[\"constant.numeric.integer.base-23.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-23.erlang\"],regex:\"(23)(#)([\\\\da-mA-M]+)\"},{token:[\"constant.numeric.integer.base-24.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-24.erlang\"],regex:\"(24)(#)([\\\\da-nA-N]+)\"},{token:[\"constant.numeric.integer.base-25.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-25.erlang\"],regex:\"(25)(#)([\\\\da-oA-O]+)\"},{token:[\"constant.numeric.integer.base-26.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-26.erlang\"],regex:\"(26)(#)([\\\\da-pA-P]+)\"},{token:[\"constant.numeric.integer.base-27.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-27.erlang\"],regex:\"(27)(#)([\\\\da-qA-Q]+)\"},{token:[\"constant.numeric.integer.base-28.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-28.erlang\"],regex:\"(28)(#)([\\\\da-rA-R]+)\"},{token:[\"constant.numeric.integer.base-29.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-29.erlang\"],regex:\"(29)(#)([\\\\da-sA-S]+)\"},{token:[\"constant.numeric.integer.base-30.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-30.erlang\"],regex:\"(30)(#)([\\\\da-tA-T]+)\"},{token:[\"constant.numeric.integer.base-31.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-31.erlang\"],regex:\"(31)(#)([\\\\da-uA-U]+)\"},{token:[\"constant.numeric.integer.base-32.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-32.erlang\"],regex:\"(32)(#)([\\\\da-vA-V]+)\"},{token:[\"constant.numeric.integer.base-33.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-33.erlang\"],regex:\"(33)(#)([\\\\da-wA-W]+)\"},{token:[\"constant.numeric.integer.base-34.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-34.erlang\"],regex:\"(34)(#)([\\\\da-xA-X]+)\"},{token:[\"constant.numeric.integer.base-35.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-35.erlang\"],regex:\"(35)(#)([\\\\da-yA-Y]+)\"},{token:[\"constant.numeric.integer.base-36.erlang\",\"punctuation.separator.base-integer.erlang\",\"constant.numeric.integer.base-36.erlang\"],regex:\"(36)(#)([\\\\da-zA-Z]+)\"},{token:\"invalid.illegal.integer.erlang\",regex:\"\\\\d+#[\\\\da-zA-Z]+\"},{token:\"constant.numeric.integer.decimal.erlang\",regex:\"\\\\d+\"}]}],\"#parenthesized-expression\":[{token:\"punctuation.section.expression.begin.erlang\",regex:\"\\\\(\",push:[{token:\"punctuation.section.expression.end.erlang\",regex:\"\\\\)\",next:\"pop\"},{include:\"#everything-else\"},{defaultToken:\"meta.expression.parenthesized\"}]}],\"#record-directive\":[{token:[\"meta.directive.record.erlang\",\"punctuation.section.directive.begin.erlang\",\"meta.directive.record.erlang\",\"keyword.control.directive.import.erlang\",\"meta.directive.record.erlang\",\"punctuation.definition.parameters.begin.erlang\",\"meta.directive.record.erlang\",\"entity.name.type.class.record.definition.erlang\",\"meta.directive.record.erlang\",\"punctuation.separator.parameters.erlang\"],regex:\"^(\\\\s*)(-)(\\\\s*)(record)(\\\\s*)(\\\\()(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)(,)\",push:[{token:[\"punctuation.definition.class.record.end.erlang\",\"meta.directive.record.erlang\",\"punctuation.definition.parameters.end.erlang\",\"meta.directive.record.erlang\",\"punctuation.section.directive.end.erlang\"],regex:\"(\\\\})(\\\\s*)(\\\\))(\\\\s*)(\\\\.)\",next:\"pop\"},{include:\"#internal-record-body\"},{defaultToken:\"meta.directive.record.erlang\"}]}],\"#record-usage\":[{token:[\"keyword.operator.record.erlang\",\"meta.record-usage.erlang\",\"entity.name.type.class.record.erlang\",\"meta.record-usage.erlang\",\"punctuation.separator.record-field.erlang\",\"meta.record-usage.erlang\",\"variable.other.field.erlang\"],regex:\"(#)(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|'[^']*')(\\\\s*)(\\\\.)(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|'[^']*')\"},{token:[\"keyword.operator.record.erlang\",\"meta.record-usage.erlang\",\"entity.name.type.class.record.erlang\"],regex:\"(#)(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|'[^']*')\",push:[{token:\"punctuation.definition.class.record.end.erlang\",regex:\"\\\\}\",next:\"pop\"},{include:\"#internal-record-body\"},{defaultToken:\"meta.record-usage.erlang\"}]}],\"#string\":[{token:\"punctuation.definition.string.begin.erlang\",regex:'\"',push:[{token:\"punctuation.definition.string.end.erlang\",regex:'\"',next:\"pop\"},{token:[\"punctuation.definition.escape.erlang\",\"constant.character.escape.erlang\",\"punctuation.definition.escape.erlang\",\"constant.character.escape.erlang\",\"constant.character.escape.erlang\"],regex:\"(\\\\\\\\)(?:([bdefnrstv\\\\\\\\'\\\"])|(\\\\^)([@-_])|([0-7]{1,3}))\"},{token:\"invalid.illegal.string.erlang\",regex:\"\\\\\\\\\\\\^?.?\"},{token:[\"punctuation.definition.placeholder.erlang\",\"punctuation.separator.placeholder-parts.erlang\",\"constant.other.placeholder.erlang\",\"punctuation.separator.placeholder-parts.erlang\",\"punctuation.separator.placeholder-parts.erlang\",\"constant.other.placeholder.erlang\",\"punctuation.separator.placeholder-parts.erlang\",\"punctuation.separator.placeholder-parts.erlang\",\"punctuation.separator.placeholder-parts.erlang\",\"constant.other.placeholder.erlang\",\"constant.other.placeholder.erlang\"],regex:\"(~)(?:((?:\\\\-)?)(\\\\d+)|(\\\\*))?(?:(\\\\.)(?:(\\\\d+)|(\\\\*)))?(?:(\\\\.)(?:(\\\\*)|(.)))?([~cfegswpWPBX#bx\\\\+ni])\"},{token:[\"punctuation.definition.placeholder.erlang\",\"punctuation.separator.placeholder-parts.erlang\",\"constant.other.placeholder.erlang\",\"constant.other.placeholder.erlang\"],regex:\"(~)((?:\\\\*)?)((?:\\\\d+)?)([~du\\\\-#fsacl])\"},{token:\"invalid.illegal.string.erlang\",regex:\"~.?\"},{defaultToken:\"string.quoted.double.erlang\"}]}],\"#symbolic-operator\":[{token:\"keyword.operator.symbolic.erlang\",regex:\"\\\\+\\\\+|\\\\+|--|-|\\\\*|/=|/|=/=|=:=|==|=<|=|<-|<|>=|>|!|::\"}],\"#textual-operator\":[{token:\"keyword.operator.textual.erlang\",regex:\"\\\\b(?:andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\\\\b\"}],\"#tuple\":[{token:\"punctuation.definition.tuple.begin.erlang\",regex:\"\\\\{\",push:[{token:\"punctuation.definition.tuple.end.erlang\",regex:\"\\\\}\",next:\"pop\"},{token:\"punctuation.separator.tuple.erlang\",regex:\",\"},{include:\"#everything-else\"},{defaultToken:\"meta.structure.tuple.erlang\"}]}],\"#variable\":[{token:[\"variable.other.erlang\",\"variable.language.omitted.erlang\"],regex:\"(_[a-zA-Z\\\\d@_]+|[A-Z][a-zA-Z\\\\d@_]*)|(_)\"}]},this.normalizeRules()};s.metaData={comment:\"The recognition of function definitions and compiler directives (such as module, record and macro definitions) requires that each of the aforementioned constructs must be the first string inside a line (except for whitespace).  Also, the function/module/record/macro names must be given unquoted.  -- desp\",fileTypes:[\"erl\",\"hrl\"],keyEquivalent:\"^~E\",name:\"Erlang\",scopeName:\"source.erlang\"},r.inherits(s,i),t.ErlangHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/erlang\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/erlang_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./erlang_highlight_rules\").ErlangHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"%\",this.blockComment=null,this.$id=\"ace/mode/erlang\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-forth.js",
    "content": "ace.define(\"ace/mode/forth_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{include:\"#forth\"}],\"#comment\":[{token:\"comment.line.double-dash.forth\",regex:\"(?:^|\\\\s)--\\\\s.*$\",comment:\"line comments for iForth\"},{token:\"comment.line.backslash.forth\",regex:\"(?:^|\\\\s)\\\\\\\\[\\\\s\\\\S]*$\",comment:\"ANSI line comment\"},{token:\"comment.line.backslash-g.forth\",regex:\"(?:^|\\\\s)\\\\\\\\[Gg] .*$\",comment:\"gForth line comment\"},{token:\"comment.block.forth\",regex:\"(?:^|\\\\s)\\\\(\\\\*(?=\\\\s|$)\",push:[{token:\"comment.block.forth\",regex:\"(?:^|\\\\s)\\\\*\\\\)(?=\\\\s|$)\",next:\"pop\"},{defaultToken:\"comment.block.forth\"}],comment:\"multiline comments for iForth\"},{token:\"comment.block.documentation.forth\",regex:\"\\\\bDOC\\\\b\",caseInsensitive:!0,push:[{token:\"comment.block.documentation.forth\",regex:\"\\\\bENDDOC\\\\b\",caseInsensitive:!0,next:\"pop\"},{defaultToken:\"comment.block.documentation.forth\"}],comment:\"documentation comments for iForth\"},{token:\"comment.line.parentheses.forth\",regex:\"(?:^|\\\\s)\\\\.?\\\\( [^)]*\\\\)\",comment:\"ANSI line comment\"}],\"#constant\":[{token:\"constant.language.forth\",regex:\"(?:^|\\\\s)(?:TRUE|FALSE|BL|PI|CELL|C/L|R/O|W/O|R/W)(?=\\\\s|$)\",caseInsensitive:!0},{token:\"constant.numeric.forth\",regex:\"(?:^|\\\\s)[$#%]?[-+]?[0-9]+(?:\\\\.[0-9]*e-?[0-9]+|\\\\.?[0-9a-fA-F]*)(?=\\\\s|$)\"},{token:\"constant.character.forth\",regex:\"(?:^|\\\\s)(?:[&^]\\\\S|(?:\\\"|')\\\\S(?:\\\"|'))(?=\\\\s|$)\"}],\"#forth\":[{include:\"#constant\"},{include:\"#comment\"},{include:\"#string\"},{include:\"#word\"},{include:\"#variable\"},{include:\"#storage\"},{include:\"#word-def\"}],\"#storage\":[{token:\"storage.type.forth\",regex:\"(?:^|\\\\s)(?:2CONSTANT|2VARIABLE|ALIAS|CONSTANT|CREATE-INTERPRET/COMPILE[:]?|CREATE|DEFER|FCONSTANT|FIELD|FVARIABLE|USER|VALUE|VARIABLE|VOCABULARY)(?=\\\\s|$)\",caseInsensitive:!0}],\"#string\":[{token:\"string.quoted.double.forth\",regex:'(ABORT\" |BREAK\" |\\\\.\" |C\" |0\"|S\\\\\\\\?\" )([^\"]+\")',caseInsensitive:!0},{token:\"string.unquoted.forth\",regex:\"(?:INCLUDE|NEEDS|REQUIRE|USE)[ ]\\\\S+(?=\\\\s|$)\",caseInsensitive:!0}],\"#variable\":[{token:\"variable.language.forth\",regex:\"\\\\b(?:I|J)\\\\b\",caseInsensitive:!0}],\"#word\":[{token:\"keyword.control.immediate.forth\",regex:\"(?:^|\\\\s)\\\\[(?:\\\\?DO|\\\\+LOOP|AGAIN|BEGIN|DEFINED|DO|ELSE|ENDIF|FOR|IF|IFDEF|IFUNDEF|LOOP|NEXT|REPEAT|THEN|UNTIL|WHILE)\\\\](?=\\\\s|$)\",caseInsensitive:!0},{token:\"keyword.other.immediate.forth\",regex:\"(?:^|\\\\s)(?:COMPILE-ONLY|IMMEDIATE|IS|RESTRICT|TO|WHAT'S|])(?=\\\\s|$)\",caseInsensitive:!0},{token:\"keyword.control.compile-only.forth\",regex:'(?:^|\\\\s)(?:-DO|\\\\-LOOP|\\\\?DO|\\\\?LEAVE|\\\\+DO|\\\\+LOOP|ABORT\\\\\"|AGAIN|AHEAD|BEGIN|CASE|DO|ELSE|ENDCASE|ENDIF|ENDOF|ENDTRY\\\\-IFERROR|ENDTRY|FOR|IF|IFERROR|LEAVE|LOOP|NEXT|RECOVER|REPEAT|RESTORE|THEN|TRY|U\\\\-DO|U\\\\+DO|UNTIL|WHILE)(?=\\\\s|$)',caseInsensitive:!0},{token:\"keyword.other.compile-only.forth\",regex:\"(?:^|\\\\s)(?:\\\\?DUP-0=-IF|\\\\?DUP-IF|\\\\)|\\\\[|\\\\['\\\\]|\\\\[CHAR\\\\]|\\\\[COMPILE\\\\]|\\\\[IS\\\\]|\\\\[TO\\\\]|<COMPILATION|<INTERPRETATION|ASSERT\\\\(|ASSERT0\\\\(|ASSERT1\\\\(|ASSERT2\\\\(|ASSERT3\\\\(|COMPILATION>|DEFERS|DOES>|INTERPRETATION>|OF|POSTPONE)(?=\\\\s|$)\",caseInsensitive:!0},{token:\"keyword.other.non-immediate.forth\",regex:\"(?:^|\\\\s)(?:'|<IS>|<TO>|CHAR|END-STRUCT|INCLUDE[D]?|LOAD|NEEDS|REQUIRE[D]?|REVISION|SEE|STRUCT|THRU|USE)(?=\\\\s|$)\",caseInsensitive:!0},{token:\"keyword.other.warning.forth\",regex:'(?:^|\\\\s)(?:~~|BREAK:|BREAK\"|DBG)(?=\\\\s|$)',caseInsensitive:!0}],\"#word-def\":[{token:[\"keyword.other.compile-only.forth\",\"keyword.other.compile-only.forth\",\"meta.block.forth\",\"entity.name.function.forth\"],regex:\"(:NONAME)|(^:|\\\\s:)(\\\\s)(\\\\S+)(?=\\\\s|$)\",caseInsensitive:!0,push:[{token:\"keyword.other.compile-only.forth\",regex:\";(?:CODE)?\",caseInsensitive:!0,next:\"pop\"},{include:\"#constant\"},{include:\"#comment\"},{include:\"#string\"},{include:\"#word\"},{include:\"#variable\"},{include:\"#storage\"},{defaultToken:\"meta.block.forth\"}]}]},this.normalizeRules()};s.metaData={fileTypes:[\"frt\",\"fs\",\"ldr\"],foldingStartMarker:\"/\\\\*\\\\*|\\\\{\\\\s*$\",foldingStopMarker:\"\\\\*\\\\*/|^\\\\s*\\\\}\",keyEquivalent:\"^~F\",name:\"Forth\",scopeName:\"source.forth\"},r.inherits(s,i),t.ForthHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/forth\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/forth_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./forth_highlight_rules\").ForthHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.blockComment=null,this.$id=\"ace/mode/forth\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-fortran.js",
    "content": "ace.define(\"ace/mode/fortran_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"call|case|contains|continue|cycle|do|else|elseif|end|enddo|endif|function|if|implicit|in|include|inout|intent|module|none|only|out|print|program|return|select|status|stop|subroutine|return|then|use|while|write|CALL|CASE|CONTAINS|CONTINUE|CYCLE|DO|ELSE|ELSEIF|END|ENDDO|ENDIF|FUNCTION|IF|IMPLICIT|IN|INCLUDE|INOUT|INTENT|MODULE|NONE|ONLY|OUT|PRINT|PROGRAM|RETURN|SELECT|STATUS|STOP|SUBROUTINE|RETURN|THEN|USE|WHILE|WRITE\",t=\"and|or|not|eq|ne|gt|ge|lt|le|AND|OR|NOT|EQ|NE|GT|GE|LT|LE\",n=\"true|false|TRUE|FALSE\",r=\"abs|achar|acos|acosh|adjustl|adjustr|aimag|aint|all|allocate|anint|any|asin|asinh|associated|atan|atan2|atanh|bessel_j0|bessel_j1|bessel_jn|bessel_y0|bessel_y1|bessel_yn|bge|bgt|bit_size|ble|blt|btest|ceiling|char|cmplx|conjg|cos|cosh|count|cpu_time|cshift|date_and_time|dble|deallocate|digits|dim|dot_product|dprod|dshiftl|dshiftr|dsqrt|eoshift|epsilon|erf|erfc|erfc_scaled|exp|float|floor|format|fraction|gamma|input|len|lge|lgt|lle|llt|log|log10|maskl|maskr|matmul|max|maxloc|maxval|merge|min|minloc|minval|mod|modulo|nint|not|norm2|null|nullify|pack|parity|popcnt|poppar|precision|present|product|radix|random_number|random_seed|range|repeat|reshape|round|rrspacing|same_type_as|scale|scan|selected_char_kind|selected_int_kind|selected_real_kind|set_exponent|shape|shifta|shiftl|shiftr|sign|sin|sinh|size|sngl|spacing|spread|sqrt|sum|system_clock|tan|tanh|tiny|trailz|transfer|transpose|trim|ubound|unpack|verify|ABS|ACHAR|ACOS|ACOSH|ADJUSTL|ADJUSTR|AIMAG|AINT|ALL|ALLOCATE|ANINT|ANY|ASIN|ASINH|ASSOCIATED|ATAN|ATAN2|ATANH|BESSEL_J0|BESSEL_J1|BESSEL_JN|BESSEL_Y0|BESSEL_Y1|BESSEL_YN|BGE|BGT|BIT_SIZE|BLE|BLT|BTEST|CEILING|CHAR|CMPLX|CONJG|COS|COSH|COUNT|CPU_TIME|CSHIFT|DATE_AND_TIME|DBLE|DEALLOCATE|DIGITS|DIM|DOT_PRODUCT|DPROD|DSHIFTL|DSHIFTR|DSQRT|EOSHIFT|EPSILON|ERF|ERFC|ERFC_SCALED|EXP|FLOAT|FLOOR|FORMAT|FRACTION|GAMMA|INPUT|LEN|LGE|LGT|LLE|LLT|LOG|LOG10|MASKL|MASKR|MATMUL|MAX|MAXLOC|MAXVAL|MERGE|MIN|MINLOC|MINVAL|MOD|MODULO|NINT|NOT|NORM2|NULL|NULLIFY|PACK|PARITY|POPCNT|POPPAR|PRECISION|PRESENT|PRODUCT|RADIX|RANDOM_NUMBER|RANDOM_SEED|RANGE|REPEAT|RESHAPE|ROUND|RRSPACING|SAME_TYPE_AS|SCALE|SCAN|SELECTED_CHAR_KIND|SELECTED_INT_KIND|SELECTED_REAL_KIND|SET_EXPONENT|SHAPE|SHIFTA|SHIFTL|SHIFTR|SIGN|SIN|SINH|SIZE|SNGL|SPACING|SPREAD|SQRT|SUM|SYSTEM_CLOCK|TAN|TANH|TINY|TRAILZ|TRANSFER|TRANSPOSE|TRIM|UBOUND|UNPACK|VERIFY\",i=\"logical|character|integer|real|type|LOGICAL|CHARACTER|INTEGER|REAL|TYPE\",s=\"allocatable|dimension|intent|parameter|pointer|target|private|public|ALLOCATABLE|DIMENSION|INTENT|PARAMETER|POINTER|TARGET|PRIVATE|PUBLIC\",o=this.createKeywordMapper({\"invalid.deprecated\":\"debugger\",\"support.function\":r,\"constant.language\":n,keyword:e,\"keyword.operator\":t,\"storage.type\":i,\"storage.modifier\":s},\"identifier\"),u=\"(?:r|u|ur|R|U|UR|Ur|uR)?\",a=\"(?:(?:[1-9]\\\\d*)|(?:0))\",f=\"(?:0[oO]?[0-7]+)\",l=\"(?:0[xX][\\\\dA-Fa-f]+)\",c=\"(?:0[bB][01]+)\",h=\"(?:\"+a+\"|\"+f+\"|\"+l+\"|\"+c+\")\",p=\"(?:[eE][+-]?\\\\d+)\",d=\"(?:\\\\.\\\\d+)\",v=\"(?:\\\\d+)\",m=\"(?:(?:\"+v+\"?\"+d+\")|(?:\"+v+\"\\\\.))\",g=\"(?:(?:\"+m+\"|\"+v+\")\"+p+\")\",y=\"(?:\"+g+\"|\"+m+\")\",b=\"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";this.$rules={start:[{token:\"comment\",regex:\"!.*$\"},{token:\"string\",regex:u+'\"{3}',next:\"qqstring3\"},{token:\"string\",regex:u+'\"(?=.)',next:\"qqstring\"},{token:\"string\",regex:u+\"'{3}\",next:\"qstring3\"},{token:\"string\",regex:u+\"'(?=.)\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"(?:\"+y+\"|\\\\d+)[jJ]\\\\b\"},{token:\"constant.numeric\",regex:y},{token:\"constant.numeric\",regex:h+\"[lL]\\\\b\"},{token:\"constant.numeric\",regex:h+\"\\\\b\"},{token:\"keyword\",regex:\"#\\\\s*(?:include|import|define|undef|INCLUDE|IMPORT|DEFINE|UNDEF)\\\\b\"},{token:\"keyword\",regex:\"#\\\\s*(?:endif|ifdef|else|elseif|ifndef|ENDIF|IFDEF|ELSE|ELSEIF|IFNDEF)\\\\b\"},{token:o,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text\",regex:\"\\\\s+\"}],qqstring3:[{token:\"constant.language.escape\",regex:b},{token:\"string\",regex:'\"{3}',next:\"start\"},{defaultToken:\"string\"}],qstring3:[{token:\"constant.language.escape\",regex:b},{token:\"string\",regex:'\"{3}',next:\"start\"},{defaultToken:\"string\"}],qqstring:[{token:\"constant.language.escape\",regex:b},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:b},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"start\"},{defaultToken:\"string\"}]}};r.inherits(s,i),t.FortranHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/fortran\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/fortran_highlight_rules\",\"ace/mode/folding/cstyle\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./fortran_highlight_rules\").FortranHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=e(\"../range\").Range,a=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(a,i),function(){this.lineCommentStart=\"!\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[\\:]\\s*$/);o&&(r+=n)}return r};var e={\"return\":1,\"break\":1,\"continue\":1,RETURN:1,BREAK:1,CONTINUE:1};this.checkOutdent=function(t,n,r){if(r!==\"\\r\\n\"&&r!==\"\\r\"&&r!==\"\\n\")return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do var s=i.pop();while(s&&(s.type==\"comment\"||s.type==\"text\"&&s.value.match(/^\\s+$/)));return s?s.type==\"keyword\"&&e[s.value]:!1},this.autoOutdent=function(e,t,n){n+=1;var r=this.$getIndent(t.getLine(n)),i=t.getTabString();r.slice(-i.length)==i&&t.remove(new u(n,r.length-i.length,n,r.length))},this.$id=\"ace/mode/fortran\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-ftl.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/ftl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"\\\\?|substring|cap_first|uncap_first|capitalize|chop_linebreak|date|time|datetime|ends_with|html|groups|index_of|j_string|js_string|json_string|last_index_of|length|lower_case|left_pad|right_pad|contains|matches|number|replace|rtf|url|split|starts_with|string|trim|upper_case|word_list|xhtml|xml\",t=\"c|round|floor|ceiling\",n=\"iso_[a-z_]+\",r=\"first|last|seq_contains|seq_index_of|seq_last_index_of|reverse|size|sort|sort_by|chunk\",i=\"keys|values\",s=\"children|parent|root|ancestors|node_name|node_type|node_namespace\",o=\"byte|double|float|int|long|short|number_to_date|number_to_time|number_to_datetime|eval|has_content|interpret|is_[a-z_]+|namespacenew\",u=e+t+n+r+i+s+o,a=\"default|exists|if_exists|web_safe\",f=\"data_model|error|globals|lang|locale|locals|main|namespace|node|current_node|now|output_encoding|template_name|url_escaping_charset|vars|version\",l=\"gt|gte|lt|lte|as|in|using\",c=\"true|false\",h=\"encoding|parse|locale|number_format|date_format|time_format|datetime_format|time_zone|url_escaping_charset|classic_compatible|strip_whitespace|strip_text|strict_syntax|ns_prefixes|attributes\";this.$rules={start:[{token:\"constant.character.entity\",regex:/&[^;]+;/},{token:\"support.function\",regex:\"\\\\?(\"+u+\")\"},{token:\"support.function.deprecated\",regex:\"\\\\?(\"+a+\")\"},{token:\"language.variable\",regex:\"\\\\.(?:\"+f+\")\"},{token:\"constant.language\",regex:\"\\\\b(\"+c+\")\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\b(?:\"+l+\")\\\\b\"},{token:\"entity.other.attribute-name\",regex:h},{token:\"string\",regex:/['\"]/,next:\"qstring\"},{token:function(e){return e.match(\"^[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?$\")?\"constant.numeric\":\"variable\"},regex:/[\\w.+\\-]+/},{token:\"keyword.operator\",regex:\"!|\\\\.|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],qstring:[{token:\"constant.character.escape\",regex:'\\\\\\\\[nrtvef\\\\\\\\\"$]'},{token:\"string\",regex:/['\"]/,next:\"start\"},{defaultToken:\"string\"}]}};r.inherits(o,s);var u=function(){i.call(this);var e=\"assign|attempt|break|case|compress|default|elseif|else|escape|fallback|function|flush|ftl|global|if|import|include|list|local|lt|macro|nested|noescape|noparse|nt|recover|recurse|return|rt|setting|stop|switch|t|visit\",t=[{token:\"comment\",regex:\"<#--\",next:\"ftl-dcomment\"},{token:\"string.interpolated\",regex:\"\\\\${\",push:\"ftl-start\"},{token:\"keyword.function\",regex:\"</?#(\"+e+\")\",push:\"ftl-start\"},{token:\"keyword.other\",regex:\"</?@[a-zA-Z\\\\.]+\",push:\"ftl-start\"}],n=[{token:\"keyword\",regex:\"/?>\",next:\"pop\"},{token:\"string.interpolated\",regex:\"}\",next:\"pop\"}];for(var r in this.$rules)this.$rules[r].unshift.apply(this.$rules[r],t);this.embedRules(o,\"ftl-\",n,[\"start\"]),this.addRules({\"ftl-dcomment\":[{token:\"comment\",regex:\".*?-->\",next:\"pop\"},{token:\"comment\",regex:\".+\"}]}),this.normalizeRules()};r.inherits(u,i),t.FtlHighlightRules=u}),ace.define(\"ace/mode/ftl\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ftl_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./ftl_highlight_rules\").FtlHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.$id=\"ace/mode/ftl\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-gcode.js",
    "content": "ace.define(\"ace/mode/gcode_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"IF|DO|WHILE|ENDWHILE|CALL|ENDIF|SUB|ENDSUB|GOTO|REPEAT|ENDREPEAT|CALL\",t=\"PI\",n=\"ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN\",r=this.createKeywordMapper({\"support.function\":n,keyword:e,\"constant.language\":t},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\(.*\\\\)\"},{token:\"comment\",regex:\"([N])([0-9]+)\"},{token:\"string\",regex:\"([G])([0-9]+\\\\.?[0-9]?)\"},{token:\"string\",regex:\"([M])([0-9]+\\\\.?[0-9]?)\"},{token:\"constant.numeric\",regex:\"([-+]?([0-9]*\\\\.?[0-9]+\\\\.?))|(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)\"},{token:r,regex:\"[A-Z]\"},{token:\"keyword.operator\",regex:\"EQ|LT|GT|NE|GE|LE|OR|XOR\"},{token:\"paren.lparen\",regex:\"[\\\\[]\"},{token:\"paren.rparen\",regex:\"[\\\\]]\"},{token:\"text\",regex:\"\\\\s+\"}]}};r.inherits(s,i),t.GcodeHighlightRules=s}),ace.define(\"ace/mode/gcode\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/gcode_highlight_rules\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./gcode_highlight_rules\").GcodeHighlightRules,o=e(\"../range\").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.$id=\"ace/mode/gcode\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-gherkin.js",
    "content": "ace.define(\"ace/mode/gherkin_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=\"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\",o=function(){var e=[{name:\"en\",labels:\"Feature|Background|Scenario(?: Outline)?|Examples\",keywords:\"Given|When|Then|And|But\"}],t=e.map(function(e){return e.labels}).join(\"|\"),n=e.map(function(e){return e.keywords}).join(\"|\");this.$rules={start:[{token:\"constant.numeric\",regex:\"(?:(?:[1-9]\\\\d*)|(?:0))\"},{token:\"comment\",regex:\"#.*$\"},{token:\"keyword\",regex:\"(?:\"+t+\"):|(?:\"+n+\")\\\\b\"},{token:\"keyword\",regex:\"\\\\*\"},{token:\"string\",regex:'\"{3}',next:\"qqstring3\"},{token:\"string\",regex:'\"',next:\"qqstring\"},{token:\"text\",regex:\"^\\\\s*(?=@[\\\\w])\",next:[{token:\"text\",regex:\"\\\\s+\"},{token:\"variable.parameter\",regex:\"@[\\\\w]+\"},{token:\"empty\",regex:\"\",next:\"start\"}]},{token:\"comment\",regex:\"<[^>]+>\"},{token:\"comment\",regex:\"\\\\|(?=.)\",next:\"table-item\"},{token:\"comment\",regex:\"\\\\|$\",next:\"start\"}],qqstring3:[{token:\"constant.language.escape\",regex:s},{token:\"string\",regex:'\"{3}',next:\"start\"},{defaultToken:\"string\"}],qqstring:[{token:\"constant.language.escape\",regex:s},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}],\"table-item\":[{token:\"comment\",regex:/$/,next:\"start\"},{token:\"comment\",regex:/\\|/},{token:\"string\",regex:/\\\\./},{defaultToken:\"string\"}]},this.normalizeRules()};r.inherits(o,i),t.GherkinHighlightRules=o}),ace.define(\"ace/mode/gherkin\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/gherkin_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./gherkin_highlight_rules\").GherkinHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.lineCommentStart=\"#\",this.$id=\"ace/mode/gherkin\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=\"  \",s=this.getTokenizer().getLineTokens(t,e),o=s.tokens;return console.log(e),t.match(\"[ ]*\\\\|\")&&(r+=\"| \"),o.length&&o[o.length-1].type==\"comment\"?r:(e==\"start\"&&(t.match(\"Scenario:|Feature:|Scenario Outline:|Background:\")?r+=i:t.match(\"(Given|Then).+(:)$|Examples:\")?r+=i:t.match(\"\\\\*.+\")&&(r+=\"* \")),r)}}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-gitignore.js",
    "content": "ace.define(\"ace/mode/gitignore_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment\",regex:/^\\s*#.*$/},{token:\"keyword\",regex:/^\\s*!.*$/}]},this.normalizeRules()};s.metaData={fileTypes:[\"gitignore\"],name:\"Gitignore\"},r.inherits(s,i),t.GitignoreHighlightRules=s}),ace.define(\"ace/mode/gitignore\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/gitignore_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./gitignore_highlight_rules\").GitignoreHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.lineCommentStart=\"#\",this.$id=\"ace/mode/gitignore\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-glsl.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.cFunctions=\"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\",u=function(){var e=\"break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using\",t=\"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t\",n=\"const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\",r=\"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eqconst_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\",s=\"NULL|true|false|TRUE|FALSE|nullptr\",u=this.$keywords=this.createKeywordMapper({\"keyword.control\":e,\"storage.type\":t,\"storage.modifier\":n,\"keyword.operator\":r,\"variable.language\":\"this\",\"constant.language\":s},\"identifier\"),a=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Zd\\\\$_\\u00a1-\\uffff]*\\\\b\",f=/\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source;this.$rules={start:[{token:\"comment\",regex:\"//$\",next:\"start\"},{token:\"comment\",regex:\"//\",next:\"singleLineComment\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:\"'(?:\"+f+\"|.)'\"},{token:\"string.start\",regex:'\"',stateName:\"qqstring\",next:[{token:\"string\",regex:/\\\\\\s*$/,next:\"qqstring\"},{token:\"constant.language.escape\",regex:f},{token:\"constant.language.escape\",regex:/%[^'\"\\\\]/},{token:\"string.end\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'R\"\\\\(',stateName:\"rawString\",next:[{token:\"string.end\",regex:'\\\\)\"',next:\"start\"},{defaultToken:\"string\"}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"keyword\",regex:\"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",next:\"directive\"},{token:\"keyword\",regex:\"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"},{token:\"support.function.C99.c\",regex:o},{token:u,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\"},{token:\"keyword.operator\",regex:/--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],singleLineComment:[{token:\"comment\",regex:/\\\\$/,next:\"singleLineComment\"},{token:\"comment\",regex:/$/,next:\"start\"},{defaultToken:\"comment\"}],directive:[{token:\"constant.other.multiline\",regex:/\\\\/},{token:\"constant.other.multiline\",regex:/.*\\\\/},{token:\"constant.other\",regex:\"\\\\s*<.+?>\",next:\"start\"},{token:\"constant.other\",regex:'\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',next:\"start\"},{token:\"constant.other\",regex:\"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",next:\"start\"},{token:\"constant.other\",regex:/[^\\\\\\/]+/,next:\"start\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/c_cpp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c_cpp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./c_cpp_highlight_rules\").c_cppHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/c_cpp\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/glsl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/c_cpp_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./c_cpp_highlight_rules\").c_cppHighlightRules,s=function(){var e=\"attribute|const|uniform|varying|break|continue|do|for|while|if|else|in|out|inout|float|int|void|bool|true|false|lowp|mediump|highp|precision|invariant|discard|return|mat2|mat3|mat4|vec2|vec3|vec4|ivec2|ivec3|ivec4|bvec2|bvec3|bvec4|sampler2D|samplerCube|struct\",t=\"radians|degrees|sin|cos|tan|asin|acos|atan|pow|exp|log|exp2|log2|sqrt|inversesqrt|abs|sign|floor|ceil|fract|mod|min|max|clamp|mix|step|smoothstep|length|distance|dot|cross|normalize|faceforward|reflect|refract|matrixCompMult|lessThan|lessThanEqual|greaterThan|greaterThanEqual|equal|notEqual|any|all|not|dFdx|dFdy|fwidth|texture2D|texture2DProj|texture2DLod|texture2DProjLod|textureCube|textureCubeLod|gl_MaxVertexAttribs|gl_MaxVertexUniformVectors|gl_MaxVaryingVectors|gl_MaxVertexTextureImageUnits|gl_MaxCombinedTextureImageUnits|gl_MaxTextureImageUnits|gl_MaxFragmentUniformVectors|gl_MaxDrawBuffers|gl_DepthRangeParameters|gl_DepthRange|gl_Position|gl_PointSize|gl_FragCoord|gl_FrontFacing|gl_PointCoord|gl_FragColor|gl_FragData\",n=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"constant.language\":t},\"identifier\");this.$rules=(new i).$rules,this.$rules.start.forEach(function(e){typeof e.token==\"function\"&&(e.token=n)})};r.inherits(s,i),t.glslHighlightRules=s}),ace.define(\"ace/mode/glsl\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/c_cpp\",\"ace/mode/glsl_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./c_cpp\").Mode,s=e(\"./glsl_highlight_rules\").glslHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.$id=\"ace/mode/glsl\"}.call(l.prototype),t.Mode=l})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-gobstones.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/gobstones_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"program|procedure|function|interactive|if|then|else|switch|repeat|while|foreach|in|not|div|mod|Skip|return\",t=\"False|True\",n=\"Poner|Sacar|Mover|IrAlBorde|VaciarTablero|nroBolitas|hayBolitas|puedeMover|siguiente|previo|opuesto|minBool|maxBool|minDir|maxDir|minColor|maxColor\",r=\"Verde|Rojo|Azul|Negro|Norte|Sur|Este|Oeste\",s=this.createKeywordMapper({keyword:e,\"constant.language\":t,\"support.function\":n,\"support.type\":r},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment\",regex:\"\\\\-\\\\-.*$\"},{token:\"comment\",regex:\"#.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.[\\d_]*)?(?:[eE][+-]?[\\d_]+)?)?[LlSsDdFfYy]?\\b/},{token:\"constant.language.boolean\",regex:\"(?:True|False)\\\\b\"},{token:\"keyword.operator\",regex:\":=|\\\\.\\\\.|,|;|\\\\|\\\\||\\\\/\\\\/|\\\\+|\\\\-|\\\\^|\\\\*|>|<|>=|=>|==|&&\"},{token:s,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.GobstonesHighlightRules=o}),ace.define(\"ace/mode/gobstones\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/gobstones_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript\").Mode,s=e(\"./gobstones_highlight_rules\").GobstonesHighlightRules,o=function(){i.call(this),this.HighlightRules=s};r.inherits(o,i),function(){this.createWorker=function(e){return null},this.$id=\"ace/mode/gobstones\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-golang.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/golang_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"else|break|case|return|goto|if|const|select|continue|struct|default|switch|for|range|func|import|package|chan|defer|fallthrough|go|interface|map|range|select|type|var\",t=\"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error\",n=\"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append\",r=\"nil|true|false|iota\",s=this.createKeywordMapper({keyword:e,\"constant.language\":r,\"support.function\":n,\"support.type\":t},\"\"),o=\"\\\\\\\\(?:[0-7]{3}|x\\\\h{2}|u{4}|U\\\\h{6}|[abfnrtv'\\\"\\\\\\\\])\".replace(/\\\\h/g,\"[a-fA-F\\\\d]\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment.start\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:/\"(?:[^\"\\\\]|\\\\.)*?\"/},{token:\"string\",regex:\"`\",next:\"bqstring\"},{token:\"constant.numeric\",regex:\"'(?:[^\\\\'\\ud800-\\udbff]|[\\ud800-\\udbff][\\udc00-\\udfff]|\"+o.replace('\"',\"\")+\")'\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:[\"keyword\",\"text\",\"entity.name.function\"],regex:\"(func)(\\\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\\\b\"},{token:function(e){return e[e.length-1]==\"(\"?[{type:s(e.slice(0,-1))||\"support.function\",value:e.slice(0,-1)},{type:\"paren.lparen\",value:e.slice(-1)}]:s(e)||\"identifier\"},regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\\\\(?\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=\"},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment.end\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],bqstring:[{token:\"string\",regex:\"`\",next:\"start\"},{defaultToken:\"string\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.GolangHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/golang\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/golang_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./golang_highlight_rules\").GolangHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.foldingRules=new a,this.$behaviour=new u};r.inherits(f,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/golang\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-groovy.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/groovy_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"assert|with|abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|def|float|native|super|while\",t=\"null|Infinity|NaN|undefined\",n=\"AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object\",r=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"support.function\":n,\"constant.language\":t},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'\"\"\"',next:\"qqstring\"},{token:\"string\",regex:\"'''\",next:\"qstring\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\?:|\\\\?\\\\.|\\\\*\\\\.|<=>|=~|==~|\\\\.@|\\\\*\\\\.@|\\\\.&|as|in|is|!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],qqstring:[{token:\"constant.language.escape\",regex:/\\\\(?:u[0-9A-Fa-f]{4}|.|$)/},{token:\"constant.language.escape\",regex:/\\$[\\w\\d]+/},{token:\"constant.language.escape\",regex:/\\$\\{[^\"\\}]+\\}?/},{token:\"string\",regex:'\"{3,5}',next:\"start\"},{token:\"string\",regex:\".+?\"}],qstring:[{token:\"constant.language.escape\",regex:/\\\\(?:u[0-9A-Fa-f]{4}|.|$)/},{token:\"string\",regex:\"'{3,5}\",next:\"start\"},{token:\"string\",regex:\".+?\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.GroovyHighlightRules=o}),ace.define(\"ace/mode/groovy\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/groovy_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript\").Mode,s=e(\"./groovy_highlight_rules\").GroovyHighlightRules,o=function(){i.call(this),this.HighlightRules=s};r.inherits(o,i),function(){this.createWorker=function(e){return null},this.$id=\"ace/mode/groovy\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-haml.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/ruby_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=t.constantOtherSymbol={token:\"constant.other.symbol.ruby\",regex:\"[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?\"},o=t.qString={token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},u=t.qqString={token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},a=t.tString={token:\"string\",regex:\"[`](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[`]\"},f=t.constantNumericHex={token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\\\b\"},l=t.constantNumericFloat={token:\"constant.numeric\",regex:\"[+-]?\\\\d(?:\\\\d|_(?=\\\\d))*(?:(?:\\\\.\\\\d(?:\\\\d|_(?=\\\\d))*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},c=function(){var e=\"abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|validates_inclusion_of|validates_numericality_of|validates_with|validates_each|authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|cache|expire_fragment|expire_cache_for|observe|cache_sweeper|has_many|has_one|belongs_to|has_and_belongs_to_many\",t=\"alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield\",n=\"true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING\",r=\"$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|$!|root_url|flash|session|cookies|params|request|response|logger|self\",i=this.$keywords=this.createKeywordMapper({keyword:t,\"constant.language\":n,\"variable.language\":r,\"support.function\":e,\"invalid.deprecated\":\"debugger\"},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"comment\",regex:\"^=begin(?:$|\\\\s.*$)\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},[{regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)return n.unshift(\"start\",t),\"paren.lparen\";if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1)return\"paren.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.start\",regex:/\"/,push:[{token:\"constant.language.escape\",regex:/\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/},{token:\"paren.start\",regex:/\\#{/,push:\"start\"},{token:\"string.end\",regex:/\"/,next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:/\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/},{token:\"paren.start\",regex:/\\#{/,push:\"start\"},{token:\"string.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:/'/,push:[{token:\"constant.language.escape\",regex:/\\\\['\\\\]/},{token:\"string.end\",regex:/'/,next:\"pop\"},{defaultToken:\"string\"}]}],{token:\"text\",regex:\"::\"},{token:\"variable.instance\",regex:\"@{1,2}[a-zA-Z_\\\\d]+\"},{token:\"support.class\",regex:\"[A-Z][a-zA-Z_\\\\d]+\"},s,f,l,{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:i,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"punctuation.separator.key-value\",regex:\"=>\"},{stateName:\"heredoc\",onMatch:function(e,t,n){var r=e[2]==\"-\"?\"indentedHeredoc\":\"heredoc\",i=e.split(this.splitRegex);return n.push(r,i[3]),[{type:\"constant\",value:i[1]},{type:\"string\",value:i[2]},{type:\"support.class\",value:i[3]},{type:\"string\",value:i[4]}]},regex:\"(<<-?)(['\\\"`]?)([\\\\w]+)(['\\\"`]?)\",rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}],indentedHeredoc:[{token:\"string\",regex:\"^ +\"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}]}},{regex:\"$\",token:\"empty\",next:function(e,t){return t[0]===\"heredoc\"||t[0]===\"indentedHeredoc\"?t[0]:e}},{token:\"string.character\",regex:\"\\\\B\\\\?.\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"^=end(?:$|\\\\s.*$)\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.normalizeRules()};r.inherits(c,i),t.RubyHighlightRules=c}),ace.define(\"ace/mode/haml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/ruby_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=e(\"./ruby_highlight_rules\"),o=s.RubyHighlightRules,u=function(){i.call(this),this.$rules.start.unshift({token:\"punctuation.section.comment\",regex:/^\\s*\\/.*/},{token:\"string.quoted.double\",regex:\"==.+?==\"},{token:\"keyword.other.doctype\",regex:\"^!!!\\\\s*(?:[a-zA-Z0-9-_]+)?\"},s.qString,s.qqString,s.tString,{token:\"character.escape.haml\",regex:\"^\\\\s*\\\\\\\\.\"},{token:\"text\",regex:/^\\s*/,next:\"tag_single\"},s.constantNumericHex,s.constantNumericFloat,s.constantOtherSymbol,{token:\"text\",regex:\"=|-|~\",next:\"embedded_ruby\"}),this.$rules.tag_single=[{token:\"meta.tag.haml\",regex:/(%[\\w:\\-]+)/},{token:\"keyword.attribute-name.class.haml\",regex:\"\\\\.[\\\\w-]+\"},{token:\"keyword.attribute-name.id.haml\",regex:\"#[\\\\w-]+\"},{token:\"punctuation.section\",regex:\"\\\\{\",next:\"section\"},s.constantOtherSymbol,{token:\"text\",regex:/\\s/,next:\"start\"},{token:\"empty\",regex:\"$|(?!\\\\.|#|\\\\{|\\\\[|=|-|~|\\\\/)\",next:\"start\"}],this.$rules.section=[s.constantOtherSymbol,s.qString,s.qqString,s.tString,s.constantNumericHex,s.constantNumericFloat,{token:\"punctuation.section\",regex:\"\\\\}\",next:\"start\"}],this.$rules.embedded_ruby=[s.constantNumericHex,s.constantNumericFloat,{token:\"support.class\",regex:\"[A-Z][a-zA-Z_\\\\d]+\"},{token:(new o).getKeywords(),regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:[\"keyword\",\"text\",\"text\"],regex:\"(?:do|\\\\{)(?: \\\\|[^|]+\\\\|)?$\",next:\"start\"},{token:[\"text\"],regex:\"^$\",next:\"start\"},{token:[\"text\"],regex:\"^(?!.*\\\\|\\\\s*$)\",next:\"start\"}],this.normalizeRules()};r.inherits(u,i),t.HamlHighlightRules=u}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/haml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/haml_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./haml_highlight_rules\").HamlHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.$id=\"ace/mode/haml\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-handlebars.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[A-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/handlebars_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";function s(e,t){return t.splice(0,3),t.shift()||\"start\"}var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,o=function(){i.call(this);var e={regex:\"(?={{)\",push:\"handlebars\"};for(var t in this.$rules)this.$rules[t].unshift(e);this.$rules.handlebars=[{token:\"comment.start\",regex:\"{{!--\",push:[{token:\"comment.end\",regex:\"--}}\",next:s},{defaultToken:\"comment\"}]},{token:\"comment.start\",regex:\"{{!\",push:[{token:\"comment.end\",regex:\"}}\",next:s},{defaultToken:\"comment\"}]},{token:\"support.function\",regex:\"{{{\",push:[{token:\"support.function\",regex:\"}}}\",next:s},{token:\"variable.parameter\",regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\"}]},{token:\"storage.type.start\",regex:\"{{[#\\\\^/&]?\",push:[{token:\"storage.type.end\",regex:\"}}\",next:s},{token:\"variable.parameter\",regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\"}]}],this.normalizeRules()};r.inherits(o,i),t.HandlebarsHighlightRules=o}),ace.define(\"ace/mode/behaviour/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour/xml\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour/xml\").XmlBehaviour,s=function(){i.call(this)};r.inherits(s,i),t.HtmlBehaviour=s}),ace.define(\"ace/mode/handlebars\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/handlebars_highlight_rules\",\"ace/mode/behaviour/html\",\"ace/mode/folding/html\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./handlebars_highlight_rules\").HandlebarsHighlightRules,o=e(\"./behaviour/html\").HtmlBehaviour,u=e(\"./folding/html\").FoldMode,a=function(){i.call(this),this.HighlightRules=s,this.$behaviour=new o,this.foldingRules=new u};r.inherits(a,i),function(){this.blockComment={start:\"{{!--\",end:\"--}}\"},this.$id=\"ace/mode/handlebars\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-haskell.js",
    "content": "ace.define(\"ace/mode/haskell_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:[\"punctuation.definition.entity.haskell\",\"keyword.operator.function.infix.haskell\",\"punctuation.definition.entity.haskell\"],regex:\"(`)([a-zA-Z_']*?)(`)\",comment:\"In case this regex seems unusual for an infix operator, note that Haskell allows any ordinary function application (elem 4 [1..10]) to be rewritten as an infix expression (4 `elem` [1..10]).\"},{token:\"constant.language.unit.haskell\",regex:\"\\\\(\\\\)\"},{token:\"constant.language.empty-list.haskell\",regex:\"\\\\[\\\\]\"},{token:\"keyword.other.haskell\",regex:\"\\\\bmodule\\\\b\",push:[{token:\"keyword.other.haskell\",regex:\"\\\\bwhere\\\\b\",next:\"pop\"},{include:\"#module_name\"},{include:\"#module_exports\"},{token:\"invalid\",regex:\"[a-z]+\"},{defaultToken:\"meta.declaration.module.haskell\"}]},{token:\"keyword.other.haskell\",regex:\"\\\\bclass\\\\b\",push:[{token:\"keyword.other.haskell\",regex:\"\\\\bwhere\\\\b\",next:\"pop\"},{token:\"support.class.prelude.haskell\",regex:\"\\\\b(?:Monad|Functor|Eq|Ord|Read|Show|Num|(?:Frac|Ra)tional|Enum|Bounded|Real(?:Frac|Float)?|Integral|Floating)\\\\b\"},{token:\"entity.other.inherited-class.haskell\",regex:\"[A-Z][A-Za-z_']*\"},{token:\"variable.other.generic-type.haskell\",regex:\"\\\\b[a-z][a-zA-Z0-9_']*\\\\b\"},{defaultToken:\"meta.declaration.class.haskell\"}]},{token:\"keyword.other.haskell\",regex:\"\\\\binstance\\\\b\",push:[{token:\"keyword.other.haskell\",regex:\"\\\\bwhere\\\\b|$\",next:\"pop\"},{include:\"#type_signature\"},{defaultToken:\"meta.declaration.instance.haskell\"}]},{token:\"keyword.other.haskell\",regex:\"import\",push:[{token:\"meta.import.haskell\",regex:\"$|;\",next:\"pop\"},{token:\"keyword.other.haskell\",regex:\"qualified|as|hiding\"},{include:\"#module_name\"},{include:\"#module_exports\"},{defaultToken:\"meta.import.haskell\"}]},{token:[\"keyword.other.haskell\",\"meta.deriving.haskell\"],regex:\"(deriving)(\\\\s*\\\\()\",push:[{token:\"meta.deriving.haskell\",regex:\"\\\\)\",next:\"pop\"},{token:\"entity.other.inherited-class.haskell\",regex:\"\\\\b[A-Z][a-zA-Z_']*\"},{defaultToken:\"meta.deriving.haskell\"}]},{token:\"keyword.other.haskell\",regex:\"\\\\b(?:deriving|where|data|type|case|of|let|in|newtype|default)\\\\b\"},{token:\"keyword.operator.haskell\",regex:\"\\\\binfix[lr]?\\\\b\"},{token:\"keyword.control.haskell\",regex:\"\\\\b(?:do|if|then|else)\\\\b\"},{token:\"constant.numeric.float.haskell\",regex:\"\\\\b(?:[0-9]+\\\\.[0-9]+(?:[eE][+-]?[0-9]+)?|[0-9]+[eE][+-]?[0-9]+)\\\\b\",comment:\"Floats are always decimal\"},{token:\"constant.numeric.haskell\",regex:\"\\\\b(?:[0-9]+|0(?:[xX][0-9a-fA-F]+|[oO][0-7]+))\\\\b\"},{token:[\"meta.preprocessor.c\",\"punctuation.definition.preprocessor.c\",\"meta.preprocessor.c\"],regex:\"^(\\\\s*)(#)(\\\\s*\\\\w+)\",comment:'In addition to Haskell\\'s \"native\" syntax, GHC permits the C preprocessor to be run on a source file.'},{include:\"#pragma\"},{token:\"punctuation.definition.string.begin.haskell\",regex:'\"',push:[{token:\"punctuation.definition.string.end.haskell\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.haskell\",regex:\"\\\\\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\\\\\\\\\"'\\\\&])\"},{token:\"constant.character.escape.octal.haskell\",regex:\"\\\\\\\\o[0-7]+|\\\\\\\\x[0-9A-Fa-f]+|\\\\\\\\[0-9]+\"},{token:\"constant.character.escape.control.haskell\",regex:\"\\\\^[A-Z@\\\\[\\\\]\\\\\\\\\\\\^_]\"},{defaultToken:\"string.quoted.double.haskell\"}]},{token:[\"punctuation.definition.string.begin.haskell\",\"string.quoted.single.haskell\",\"constant.character.escape.haskell\",\"constant.character.escape.octal.haskell\",\"constant.character.escape.hexadecimal.haskell\",\"constant.character.escape.control.haskell\",\"punctuation.definition.string.end.haskell\"],regex:\"(')(?:([\\\\ -\\\\[\\\\]-~])|(\\\\\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\\\\\\\\\"'\\\\&]))|(\\\\\\\\o[0-7]+)|(\\\\\\\\x[0-9A-Fa-f]+)|(\\\\^[A-Z@\\\\[\\\\]\\\\\\\\\\\\^_]))(')\"},{token:[\"meta.function.type-declaration.haskell\",\"entity.name.function.haskell\",\"meta.function.type-declaration.haskell\",\"keyword.other.double-colon.haskell\"],regex:\"^(\\\\s*)([a-z_][a-zA-Z0-9_']*|\\\\([|!%$+\\\\-.,=</>]+\\\\))(\\\\s*)(::)\",push:[{token:\"meta.function.type-declaration.haskell\",regex:\"$\",next:\"pop\"},{include:\"#type_signature\"},{defaultToken:\"meta.function.type-declaration.haskell\"}]},{token:\"support.constant.haskell\",regex:\"\\\\b(?:Just|Nothing|Left|Right|True|False|LT|EQ|GT|\\\\(\\\\)|\\\\[\\\\])\\\\b\"},{token:\"constant.other.haskell\",regex:\"\\\\b[A-Z]\\\\w*\\\\b\"},{include:\"#comments\"},{token:\"support.function.prelude.haskell\",regex:\"\\\\b(?:abs|acos|acosh|all|and|any|appendFile|applyM|asTypeOf|asin|asinh|atan|atan2|atanh|break|catch|ceiling|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|div|divMod|drop|dropWhile|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromEnum|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|head|id|init|interact|ioError|isDenormalized|isIEEE|isInfinite|isNaN|isNegativeZero|iterate|last|lcm|length|lex|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|odd|or|otherwise|pi|pred|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|read|readFile|readIO|readList|readLn|readParen|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showList|showParen|showString|shows|showsPrec|significand|signum|sin|sinh|snd|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|toEnum|toInteger|toRational|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\\\\b\"},{include:\"#infix_op\"},{token:\"keyword.operator.haskell\",regex:\"[|!%$?~+:\\\\-.=</>\\\\\\\\]+\",comment:\"In case this regex seems overly general, note that Haskell permits the definition of new operators which can be nearly any string of punctuation characters, such as $%^&*.\"},{token:\"punctuation.separator.comma.haskell\",regex:\",\"}],\"#block_comment\":[{token:\"punctuation.definition.comment.haskell\",regex:\"\\\\{-(?!#)\",push:[{include:\"#block_comment\"},{token:\"punctuation.definition.comment.haskell\",regex:\"-\\\\}\",next:\"pop\"},{defaultToken:\"comment.block.haskell\"}]}],\"#comments\":[{token:\"punctuation.definition.comment.haskell\",regex:\"--.*\",push_:[{token:\"comment.line.double-dash.haskell\",regex:\"$\",next:\"pop\"},{defaultToken:\"comment.line.double-dash.haskell\"}]},{include:\"#block_comment\"}],\"#infix_op\":[{token:\"entity.name.function.infix.haskell\",regex:\"\\\\([|!%$+:\\\\-.=</>]+\\\\)|\\\\(,+\\\\)\"}],\"#module_exports\":[{token:\"meta.declaration.exports.haskell\",regex:\"\\\\(\",push:[{token:\"meta.declaration.exports.haskell\",regex:\"\\\\)\",next:\"pop\"},{token:\"entity.name.function.haskell\",regex:\"\\\\b[a-z][a-zA-Z_']*\"},{token:\"storage.type.haskell\",regex:\"\\\\b[A-Z][A-Za-z_']*\"},{token:\"punctuation.separator.comma.haskell\",regex:\",\"},{include:\"#infix_op\"},{token:\"meta.other.unknown.haskell\",regex:\"\\\\(.*?\\\\)\",comment:\"So named because I don't know what to call this.\"},{defaultToken:\"meta.declaration.exports.haskell\"}]}],\"#module_name\":[{token:\"support.other.module.haskell\",regex:\"[A-Z][A-Za-z._']*\"}],\"#pragma\":[{token:\"meta.preprocessor.haskell\",regex:\"\\\\{-#\",push:[{token:\"meta.preprocessor.haskell\",regex:\"#-\\\\}\",next:\"pop\"},{token:\"keyword.other.preprocessor.haskell\",regex:\"\\\\b(?:LANGUAGE|UNPACK|INLINE)\\\\b\"},{defaultToken:\"meta.preprocessor.haskell\"}]}],\"#type_signature\":[{token:[\"meta.class-constraint.haskell\",\"entity.other.inherited-class.haskell\",\"meta.class-constraint.haskell\",\"variable.other.generic-type.haskell\",\"meta.class-constraint.haskell\",\"keyword.other.big-arrow.haskell\"],regex:\"(\\\\(\\\\s*)([A-Z][A-Za-z]*)(\\\\s+)([a-z][A-Za-z_']*)(\\\\)\\\\s*)(=>)\"},{include:\"#pragma\"},{token:\"keyword.other.arrow.haskell\",regex:\"->\"},{token:\"keyword.other.big-arrow.haskell\",regex:\"=>\"},{token:\"support.type.prelude.haskell\",regex:\"\\\\b(?:Int(?:eger)?|Maybe|Either|Bool|Float|Double|Char|String|Ordering|ShowS|ReadS|FilePath|IO(?:Error)?)\\\\b\"},{token:\"variable.other.generic-type.haskell\",regex:\"\\\\b[a-z][a-zA-Z0-9_']*\\\\b\"},{token:\"storage.type.haskell\",regex:\"\\\\b[A-Z][a-zA-Z0-9_']*\\\\b\"},{token:\"support.constant.unit.haskell\",regex:\"\\\\(\\\\)\"},{include:\"#comments\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"hs\"],keyEquivalent:\"^~H\",name:\"Haskell\",scopeName:\"source.haskell\"},r.inherits(s,i),t.HaskellHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/haskell\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/haskell_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./haskell_highlight_rules\").HaskellHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.blockComment=null,this.$id=\"ace/mode/haskell\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-haxe.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/haxe_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"break|case|cast|catch|class|continue|default|else|enum|extends|for|function|if|implements|import|in|inline|interface|new|override|package|private|public|return|static|super|switch|this|throw|trace|try|typedef|untyped|var|while|Array|Void|Bool|Int|UInt|Float|Dynamic|String|List|Hash|IntHash|Error|Unknown|Type|Std\",t=\"null|true|false\",n=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"constant.language\":t},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:n,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({<]\"},{token:\"paren.rparen\",regex:\"[\\\\])}>]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.HaxeHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/haxe\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/haxe_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./haxe_highlight_rules\").HaxeHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[]\\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/haxe\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-html.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[A-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-html_elixir.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/elixir_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:[\"meta.module.elixir\",\"keyword.control.module.elixir\",\"meta.module.elixir\",\"entity.name.type.module.elixir\"],regex:\"^(\\\\s*)(defmodule)(\\\\s+)((?:[A-Z]\\\\w*\\\\s*\\\\.\\\\s*)*[A-Z]\\\\w*)\"},{token:\"comment.documentation.heredoc\",regex:'@(?:module|type)?doc (?:~[a-z])?\"\"\"',push:[{token:\"comment.documentation.heredoc\",regex:'\\\\s*\"\"\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"comment.documentation.heredoc\"}],comment:\"@doc with heredocs is treated as documentation\"},{token:\"comment.documentation.heredoc\",regex:'@(?:module|type)?doc ~[A-Z]\"\"\"',push:[{token:\"comment.documentation.heredoc\",regex:'\\\\s*\"\"\"',next:\"pop\"},{defaultToken:\"comment.documentation.heredoc\"}],comment:\"@doc with heredocs is treated as documentation\"},{token:\"comment.documentation.heredoc\",regex:\"@(?:module|type)?doc (?:~[a-z])?'''\",push:[{token:\"comment.documentation.heredoc\",regex:\"\\\\s*'''\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"comment.documentation.heredoc\"}],comment:\"@doc with heredocs is treated as documentation\"},{token:\"comment.documentation.heredoc\",regex:\"@(?:module|type)?doc ~[A-Z]'''\",push:[{token:\"comment.documentation.heredoc\",regex:\"\\\\s*'''\",next:\"pop\"},{defaultToken:\"comment.documentation.heredoc\"}],comment:\"@doc with heredocs is treated as documentation\"},{token:\"comment.documentation.false\",regex:\"@(?:module|type)?doc false\",comment:\"@doc false is treated as documentation\"},{token:\"comment.documentation.string\",regex:'@(?:module|type)?doc \"',push:[{token:\"comment.documentation.string\",regex:'\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"comment.documentation.string\"}],comment:\"@doc with string is treated as documentation\"},{token:\"keyword.control.elixir\",regex:\"\\\\b(?:do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\\\\b(?![?!])\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!\\\\.)\\\\b(do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\\\\b(?![?!])\"},{token:\"keyword.operator.elixir\",regex:\"\\\\b(?:and|not|or|when|xor|in|inlist|inbits)\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!\\\\.)\\\\b(and|not|or|when|xor|in|inlist|inbits)\\\\b\",comment:\" as above, just doesn't need a 'end' and does a logic operation\"},{token:\"constant.language.elixir\",regex:\"\\\\b(?:nil|true|false)\\\\b(?![?!])\"},{token:\"variable.language.elixir\",regex:\"\\\\b__(?:CALLER|ENV|MODULE|DIR)__\\\\b(?![?!])\"},{token:[\"punctuation.definition.variable.elixir\",\"variable.other.readwrite.module.elixir\"],regex:\"(@)([a-zA-Z_]\\\\w*)\"},{token:[\"punctuation.definition.variable.elixir\",\"variable.other.anonymous.elixir\"],regex:\"(&)(\\\\d*)\"},{token:\"variable.other.constant.elixir\",regex:\"\\\\b[A-Z]\\\\w*\\\\b\"},{token:\"constant.numeric.elixir\",regex:\"\\\\b(?:0x[\\\\da-fA-F](?:_?[\\\\da-fA-F])*|\\\\d(?:_?\\\\d)*(?:\\\\.(?![^[:space:][:digit:]])(?:_?\\\\d)*)?(?:[eE][-+]?\\\\d(?:_?\\\\d)*)?|0b[01]+|0o[0-7]+)\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"\\\\b(0x\\\\h(?>_?\\\\h)*|\\\\d(?>_?\\\\d)*(\\\\.(?![^[:space:][:digit:]])(?>_?\\\\d)*)?([eE][-+]?\\\\d(?>_?\\\\d)*)?|0b[01]+|0o[0-7]+)\\\\b\"},{token:\"punctuation.definition.constant.elixir\",regex:\":'\",push:[{token:\"punctuation.definition.constant.elixir\",regex:\"'\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"constant.other.symbol.single-quoted.elixir\"}]},{token:\"punctuation.definition.constant.elixir\",regex:':\"',push:[{token:\"punctuation.definition.constant.elixir\",regex:'\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"constant.other.symbol.double-quoted.elixir\"}]},{token:\"punctuation.definition.string.begin.elixir\",regex:\"(?:''')\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?>''')\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"^\\\\s*'''\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"support.function.variable.quoted.single.heredoc.elixir\"}],comment:\"Single-quoted heredocs\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"'\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"support.function.variable.quoted.single.elixir\"}],comment:\"single quoted string (allows for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:'(?:\"\"\")',TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:'(?>\"\"\")',push:[{token:\"punctuation.definition.string.end.elixir\",regex:'^\\\\s*\"\"\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.quoted.double.heredoc.elixir\"}],comment:\"Double-quoted heredocs\"},{token:\"punctuation.definition.string.begin.elixir\",regex:'\"',push:[{token:\"punctuation.definition.string.end.elixir\",regex:'\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.quoted.double.elixir\"}],comment:\"double quoted string (allows for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:'~[a-z](?:\"\"\")',TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:'~[a-z](?>\"\"\")',push:[{token:\"punctuation.definition.string.end.elixir\",regex:'^\\\\s*\"\"\"',next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.quoted.double.heredoc.elixir\"}],comment:\"Double-quoted heredocs sigils\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z]\\\\{\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\}[a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z]\\\\[\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\][a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z]\\\\<\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\>[a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z]\\\\(\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\)[a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[a-z][^\\\\w]\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"[^\\\\w][a-z]*\",next:\"pop\"},{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{include:\"#escaped_char\"},{defaultToken:\"string.interpolated.elixir\"}],comment:\"sigil (allow for interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:'~[A-Z](?:\"\"\")',TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:'~[A-Z](?>\"\"\")',push:[{token:\"punctuation.definition.string.end.elixir\",regex:'^\\\\s*\"\"\"',next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"Double-quoted heredocs sigils\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z]\\\\{\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\}[a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z]\\\\[\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\][a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z]\\\\<\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\>[a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z]\\\\(\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"\\\\)[a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:\"punctuation.definition.string.begin.elixir\",regex:\"~[A-Z][^\\\\w]\",push:[{token:\"punctuation.definition.string.end.elixir\",regex:\"[^\\\\w][a-z]*\",next:\"pop\"},{defaultToken:\"string.quoted.other.literal.upper.elixir\"}],comment:\"sigil (without interpolation)\"},{token:[\"punctuation.definition.constant.elixir\",\"constant.other.symbol.elixir\"],regex:\"(:)([a-zA-Z_][\\\\w@]*(?:[?!]|=(?![>=]))?|\\\\<\\\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\\\-|\\\\|>|=>|~|~=|=|/|\\\\\\\\\\\\\\\\|\\\\*\\\\*?|\\\\.\\\\.?\\\\.?|>=?|<=?|&&?&?|\\\\+\\\\+?|\\\\-\\\\-?|\\\\|\\\\|?\\\\|?|\\\\!|@|\\\\%?\\\\{\\\\}|%|\\\\[\\\\]|\\\\^(?:\\\\^\\\\^)?)\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!:)(:)(?>[a-zA-Z_][\\\\w@]*(?>[?!]|=(?![>=]))?|\\\\<\\\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\\\-|\\\\|>|=>|~|~=|=|/|\\\\\\\\\\\\\\\\|\\\\*\\\\*?|\\\\.\\\\.?\\\\.?|>=?|<=?|&&?&?|\\\\+\\\\+?|\\\\-\\\\-?|\\\\|\\\\|?\\\\|?|\\\\!|@|\\\\%?\\\\{\\\\}|%|\\\\[\\\\]|\\\\^(\\\\^\\\\^)?)\",comment:\"symbols\"},{token:\"punctuation.definition.constant.elixir\",regex:\"(?:[a-zA-Z_][\\\\w@]*(?:[?!])?):(?!:)\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?>[a-zA-Z_][\\\\w@]*(?>[?!])?)(:)(?!:)\",comment:\"symbols\"},{token:[\"punctuation.definition.comment.elixir\",\"comment.line.number-sign.elixir\"],regex:\"(#)(.*)\"},{token:\"constant.numeric.elixir\",regex:\"\\\\?(?:\\\\\\\\(?:x[\\\\da-fA-F]{1,2}(?![\\\\da-fA-F])\\\\b|[^xMC])|[^\\\\s\\\\\\\\])\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!\\\\w)\\\\?(\\\\\\\\(x\\\\h{1,2}(?!\\\\h)\\\\b|[^xMC])|[^\\\\s\\\\\\\\])\",comment:'\\n\t\t\tmatches questionmark-letters.\\n\\n\t\t\texamples (1st alternation = hex):\\n\t\t\t?\\\\x1     ?\\\\x61\\n\\n\t\t\texamples (2rd alternation = escaped):\\n\t\t\t?\\\\n      ?\\\\b\\n\\n\t\t\texamples (3rd alternation = normal):\\n\t\t\t?a       ?A       ?0 \\n\t\t\t?*       ?\"       ?( \\n\t\t\t?.       ?#\\n\t\t\t\\n\t\t\tthe negative lookbehind prevents against matching\\n\t\t\tp(42.tainted?)\\n\t\t\t'},{token:\"keyword.operator.assignment.augmented.elixir\",regex:\"\\\\+=|\\\\-=|\\\\|\\\\|=|~=|&&=\"},{token:\"keyword.operator.comparison.elixir\",regex:\"===?|!==?|<=?|>=?\"},{token:\"keyword.operator.bitwise.elixir\",regex:\"\\\\|{3}|&{3}|\\\\^{3}|<{3}|>{3}|~{3}\"},{token:\"keyword.operator.logical.elixir\",regex:\"!+|\\\\bnot\\\\b|&&|\\\\band\\\\b|\\\\|\\\\||\\\\bor\\\\b|\\\\bxor\\\\b\",originalRegex:\"(?<=[ \\\\t])!+|\\\\bnot\\\\b|&&|\\\\band\\\\b|\\\\|\\\\||\\\\bor\\\\b|\\\\bxor\\\\b\"},{token:\"keyword.operator.arithmetic.elixir\",regex:\"\\\\*|\\\\+|\\\\-|/\"},{token:\"keyword.operator.other.elixir\",regex:\"\\\\||\\\\+\\\\+|\\\\-\\\\-|\\\\*\\\\*|\\\\\\\\\\\\\\\\|\\\\<\\\\-|\\\\<\\\\>|\\\\<\\\\<|\\\\>\\\\>|\\\\:\\\\:|\\\\.\\\\.|\\\\|>|~|=>\"},{token:\"keyword.operator.assignment.elixir\",regex:\"=\"},{token:\"punctuation.separator.other.elixir\",regex:\":\"},{token:\"punctuation.separator.statement.elixir\",regex:\"\\\\;\"},{token:\"punctuation.separator.object.elixir\",regex:\",\"},{token:\"punctuation.separator.method.elixir\",regex:\"\\\\.\"},{token:\"punctuation.section.scope.elixir\",regex:\"\\\\{|\\\\}\"},{token:\"punctuation.section.array.elixir\",regex:\"\\\\[|\\\\]\"},{token:\"punctuation.section.function.elixir\",regex:\"\\\\(|\\\\)\"}],\"#escaped_char\":[{token:\"constant.character.escape.elixir\",regex:\"\\\\\\\\(?:x[\\\\da-fA-F]{1,2}|.)\"}],\"#interpolated_elixir\":[{token:[\"source.elixir.embedded.source\",\"source.elixir.embedded.source.empty\"],regex:\"(#\\\\{)(\\\\})\"},{todo:{token:\"punctuation.section.embedded.elixir\",regex:\"#\\\\{\",push:[{token:\"punctuation.section.embedded.elixir\",regex:\"\\\\}\",next:\"pop\"},{include:\"#nest_curly_and_self\"},{include:\"$self\"},{defaultToken:\"source.elixir.embedded.source\"}]}}],\"#nest_curly_and_self\":[{token:\"punctuation.section.scope.elixir\",regex:\"\\\\{\",push:[{token:\"punctuation.section.scope.elixir\",regex:\"\\\\}\",next:\"pop\"},{include:\"#nest_curly_and_self\"}]},{include:\"$self\"}],\"#regex_sub\":[{include:\"#interpolated_elixir\"},{include:\"#escaped_char\"},{token:[\"punctuation.definition.arbitrary-repitition.elixir\",\"string.regexp.arbitrary-repitition.elixir\",\"string.regexp.arbitrary-repitition.elixir\",\"punctuation.definition.arbitrary-repitition.elixir\"],regex:\"(\\\\{)(\\\\d+)((?:,\\\\d+)?)(\\\\})\"},{token:\"punctuation.definition.character-class.elixir\",regex:\"\\\\[(?:\\\\^?\\\\])?\",push:[{token:\"punctuation.definition.character-class.elixir\",regex:\"\\\\]\",next:\"pop\"},{include:\"#escaped_char\"},{defaultToken:\"string.regexp.character-class.elixir\"}]},{token:\"punctuation.definition.group.elixir\",regex:\"\\\\(\",push:[{token:\"punctuation.definition.group.elixir\",regex:\"\\\\)\",next:\"pop\"},{include:\"#regex_sub\"},{defaultToken:\"string.regexp.group.elixir\"}]},{token:[\"punctuation.definition.comment.elixir\",\"comment.line.number-sign.elixir\"],regex:\"(?:^|\\\\s)(#)(\\\\s[[a-zA-Z0-9,. \\\\t?!-][^\\\\x00-\\\\x7F]]*$)\",originalRegex:\"(?<=^|\\\\s)(#)\\\\s[[a-zA-Z0-9,. \\\\t?!-][^\\\\x{00}-\\\\x{7F}]]*$\",comment:\"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.\"}]},this.normalizeRules()};s.metaData={comment:\"Textmate bundle for Elixir Programming Language.\",fileTypes:[\"ex\",\"exs\"],firstLineMatch:\"^#!/.*\\\\belixir\",foldingStartMarker:\"(after|else|catch|rescue|\\\\-\\\\>|\\\\{|\\\\[|do)\\\\s*$\",foldingStopMarker:\"^\\\\s*((\\\\}|\\\\]|after|else|catch|rescue)\\\\s*$|end\\\\b)\",keyEquivalent:\"^~E\",name:\"Elixir\",scopeName:\"source.elixir\"},r.inherits(s,i),t.ElixirHighlightRules=s}),ace.define(\"ace/mode/html_elixir_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/elixir_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=e(\"./elixir_highlight_rules\").ElixirHighlightRules,o=function(){i.call(this);var e=[{regex:\"<%%|%%>\",token:\"constant.language.escape\"},{token:\"comment.start.eex\",regex:\"<%#\",push:[{token:\"comment.end.eex\",regex:\"%>\",next:\"pop\",defaultToken:\"comment\"}]},{token:\"support.elixir_tag\",regex:\"<%+(?!>)[-=]?\",push:\"elixir-start\"}],t=[{token:\"support.elixir_tag\",regex:\"%>\",next:\"pop\"},{token:\"comment\",regex:\"#(?:[^%]|%[^>])*\"}];for(var n in this.$rules)this.$rules[n].unshift.apply(this.$rules[n],e);this.embedRules(s,\"elixir-\",t,[\"start\"]),this.normalizeRules()};r.inherits(o,i),t.HtmlElixirHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[A-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/elixir\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/elixir_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./elixir_highlight_rules\").ElixirHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"#\",this.$id=\"ace/mode/elixir\"}.call(u.prototype),t.Mode=u}),ace.define(\"ace/mode/html_elixir\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_elixir_highlight_rules\",\"ace/mode/html\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/elixir\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_elixir_highlight_rules\").HtmlElixirHighlightRules,s=e(\"./html\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./elixir\").Mode,f=function(){s.call(this),this.HighlightRules=i,this.createModeDelegates({\"js-\":o,\"css-\":u,\"elixir-\":a})};r.inherits(f,s),function(){this.$id=\"ace/mode/html_elixir\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-html_ruby.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/ruby_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=t.constantOtherSymbol={token:\"constant.other.symbol.ruby\",regex:\"[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?\"},o=t.qString={token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},u=t.qqString={token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},a=t.tString={token:\"string\",regex:\"[`](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[`]\"},f=t.constantNumericHex={token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\\\b\"},l=t.constantNumericFloat={token:\"constant.numeric\",regex:\"[+-]?\\\\d(?:\\\\d|_(?=\\\\d))*(?:(?:\\\\.\\\\d(?:\\\\d|_(?=\\\\d))*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},c=function(){var e=\"abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|validates_inclusion_of|validates_numericality_of|validates_with|validates_each|authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|cache|expire_fragment|expire_cache_for|observe|cache_sweeper|has_many|has_one|belongs_to|has_and_belongs_to_many\",t=\"alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield\",n=\"true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING\",r=\"$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|$!|root_url|flash|session|cookies|params|request|response|logger|self\",i=this.$keywords=this.createKeywordMapper({keyword:t,\"constant.language\":n,\"variable.language\":r,\"support.function\":e,\"invalid.deprecated\":\"debugger\"},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"comment\",regex:\"^=begin(?:$|\\\\s.*$)\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},[{regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)return n.unshift(\"start\",t),\"paren.lparen\";if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1)return\"paren.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.start\",regex:/\"/,push:[{token:\"constant.language.escape\",regex:/\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/},{token:\"paren.start\",regex:/\\#{/,push:\"start\"},{token:\"string.end\",regex:/\"/,next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:/\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/},{token:\"paren.start\",regex:/\\#{/,push:\"start\"},{token:\"string.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:/'/,push:[{token:\"constant.language.escape\",regex:/\\\\['\\\\]/},{token:\"string.end\",regex:/'/,next:\"pop\"},{defaultToken:\"string\"}]}],{token:\"text\",regex:\"::\"},{token:\"variable.instance\",regex:\"@{1,2}[a-zA-Z_\\\\d]+\"},{token:\"support.class\",regex:\"[A-Z][a-zA-Z_\\\\d]+\"},s,f,l,{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:i,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"punctuation.separator.key-value\",regex:\"=>\"},{stateName:\"heredoc\",onMatch:function(e,t,n){var r=e[2]==\"-\"?\"indentedHeredoc\":\"heredoc\",i=e.split(this.splitRegex);return n.push(r,i[3]),[{type:\"constant\",value:i[1]},{type:\"string\",value:i[2]},{type:\"support.class\",value:i[3]},{type:\"string\",value:i[4]}]},regex:\"(<<-?)(['\\\"`]?)([\\\\w]+)(['\\\"`]?)\",rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}],indentedHeredoc:[{token:\"string\",regex:\"^ +\"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}]}},{regex:\"$\",token:\"empty\",next:function(e,t){return t[0]===\"heredoc\"||t[0]===\"indentedHeredoc\"?t[0]:e}},{token:\"string.character\",regex:\"\\\\B\\\\?.\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"^=end(?:$|\\\\s.*$)\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.normalizeRules()};r.inherits(c,i),t.RubyHighlightRules=c}),ace.define(\"ace/mode/html_ruby_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/ruby_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=e(\"./ruby_highlight_rules\").RubyHighlightRules,o=function(){i.call(this);var e=[{regex:\"<%%|%%>\",token:\"constant.language.escape\"},{token:\"comment.start.erb\",regex:\"<%#\",push:[{token:\"comment.end.erb\",regex:\"%>\",next:\"pop\",defaultToken:\"comment\"}]},{token:\"support.ruby_tag\",regex:\"<%+(?!>)[-=]?\",push:\"ruby-start\"}],t=[{token:\"support.ruby_tag\",regex:\"%>\",next:\"pop\"},{token:\"comment\",regex:\"#(?:[^%]|%[^>])*\"}];for(var n in this.$rules)this.$rules[n].unshift.apply(this.$rules[n],e);this.embedRules(s,\"ruby-\",t,[\"start\"]),this.normalizeRules()};r.inherits(o,i),t.HtmlRubyHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[A-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/ruby\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ruby_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./ruby_highlight_rules\").RubyHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/coffee\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[]\\s*$/),u=t.match(/^\\s*(class|def|module)\\s.*$/),a=t.match(/.*do(\\s*|\\s+\\|.*\\|\\s*)$/),f=t.match(/^\\s*(if|else|when)\\s*/);if(o||u||a||f)r+=n}return r},this.checkOutdent=function(e,t,n){return/^\\s+(end|else)$/.test(t+n)||this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){var r=t.getLine(n);if(/}/.test(r))return this.$outdent.autoOutdent(t,n);var i=this.$getIndent(r),s=t.getLine(n-1),o=this.$getIndent(s),a=t.getTabString();o.length<=i.length&&i.slice(-a.length)==a&&t.remove(new u(n,i.length-a.length,n,i.length))},this.$id=\"ace/mode/ruby\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/html_ruby\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_ruby_highlight_rules\",\"ace/mode/html\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/ruby\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_ruby_highlight_rules\").HtmlRubyHighlightRules,s=e(\"./html\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./ruby\").Mode,f=function(){s.call(this),this.HighlightRules=i,this.createModeDelegates({\"js-\":o,\"css-\":u,\"ruby-\":a})};r.inherits(f,s),function(){this.$id=\"ace/mode/html_ruby\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-ini.js",
    "content": "ace.define(\"ace/mode/ini_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=\"\\\\\\\\(?:[\\\\\\\\0abtrn;#=:]|x[a-fA-F\\\\d]{4})\",o=function(){this.$rules={start:[{token:\"punctuation.definition.comment.ini\",regex:\"#.*\",push_:[{token:\"comment.line.number-sign.ini\",regex:\"$|^\",next:\"pop\"},{defaultToken:\"comment.line.number-sign.ini\"}]},{token:\"punctuation.definition.comment.ini\",regex:\";.*\",push_:[{token:\"comment.line.semicolon.ini\",regex:\"$|^\",next:\"pop\"},{defaultToken:\"comment.line.semicolon.ini\"}]},{token:[\"keyword.other.definition.ini\",\"text\",\"punctuation.separator.key-value.ini\"],regex:\"\\\\b([a-zA-Z0-9_.-]+)\\\\b(\\\\s*)(=)\"},{token:[\"punctuation.definition.entity.ini\",\"constant.section.group-title.ini\",\"punctuation.definition.entity.ini\"],regex:\"^(\\\\[)(.*?)(\\\\])\"},{token:\"punctuation.definition.string.begin.ini\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.ini\",regex:\"'\",next:\"pop\"},{token:\"constant.language.escape\",regex:s},{defaultToken:\"string.quoted.single.ini\"}]},{token:\"punctuation.definition.string.begin.ini\",regex:'\"',push:[{token:\"constant.language.escape\",regex:s},{token:\"punctuation.definition.string.end.ini\",regex:'\"',next:\"pop\"},{defaultToken:\"string.quoted.double.ini\"}]}]},this.normalizeRules()};o.metaData={fileTypes:[\"ini\",\"conf\"],keyEquivalent:\"^~I\",name:\"Ini\",scopeName:\"source.ini\"},r.inherits(o,i),t.IniHighlightRules=o}),ace.define(\"ace/mode/folding/ini\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/^\\s*\\[([^\\])]*)]\\s*(?:$|[;#])/,this.getFoldWidgetRange=function(e,t,n){var r=this.foldingStartMarker,s=e.getLine(n),o=s.match(r);if(!o)return;var u=o[1]+\".\",a=s.length,f=e.getLength(),l=n,c=n;while(++n<f){s=e.getLine(n);if(/^\\s*$/.test(s))continue;o=s.match(r);if(o&&o[1].lastIndexOf(u,0)!==0)break;c=n}if(c>l){var h=e.getLine(c).length;return new i(l,a,c,h)}}}.call(o.prototype)}),ace.define(\"ace/mode/ini\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ini_highlight_rules\",\"ace/mode/folding/ini\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./ini_highlight_rules\").IniHighlightRules,o=e(\"./folding/ini\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\";\",this.blockComment=null,this.$id=\"ace/mode/ini\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-io.js",
    "content": "ace.define(\"ace/mode/io_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:[\"text\",\"meta.empty-parenthesis.io\"],regex:\"(\\\\()(\\\\))\",comment:\"we match this to overload return inside () --Allan; scoping rules for what gets the scope have changed, so we now group the ) instead of the ( -- Rob\"},{token:[\"text\",\"meta.comma-parenthesis.io\"],regex:\"(\\\\,)(\\\\))\",comment:\"We want to do the same for ,) -- Seckar; same as above -- Rob\"},{token:\"keyword.control.io\",regex:\"\\\\b(?:if|ifTrue|ifFalse|ifTrueIfFalse|for|loop|reverseForeach|foreach|map|continue|break|while|do|return)\\\\b\"},{token:\"punctuation.definition.comment.io\",regex:\"/\\\\*\",push:[{token:\"punctuation.definition.comment.io\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.io\"}]},{token:\"punctuation.definition.comment.io\",regex:\"//\",push:[{token:\"comment.line.double-slash.io\",regex:\"$\",next:\"pop\"},{defaultToken:\"comment.line.double-slash.io\"}]},{token:\"punctuation.definition.comment.io\",regex:\"#\",push:[{token:\"comment.line.number-sign.io\",regex:\"$\",next:\"pop\"},{defaultToken:\"comment.line.number-sign.io\"}]},{token:\"variable.language.io\",regex:\"\\\\b(?:self|sender|target|proto|protos|parent)\\\\b\",comment:\"I wonder if some of this isn't variable.other.language? --Allan; scoping this as variable.language to match Objective-C's handling of 'self', which is inconsistent with C++'s handling of 'this' but perhaps intentionally so -- Rob\"},{token:\"keyword.operator.io\",regex:\"<=|>=|=|:=|\\\\*|\\\\||\\\\|\\\\||\\\\+|-|/|&|&&|>|<|\\\\?|@|@@|\\\\b(?:and|or)\\\\b\"},{token:\"constant.other.io\",regex:\"\\\\bGL[\\\\w_]+\\\\b\"},{token:\"support.class.io\",regex:\"\\\\b[A-Z](?:\\\\w+)?\\\\b\"},{token:\"support.function.io\",regex:\"\\\\b(?:clone|call|init|method|list|vector|block|\\\\w+(?=\\\\s*\\\\())\\\\b\"},{token:\"support.function.open-gl.io\",regex:\"\\\\bgl(?:u|ut)?[A-Z]\\\\w+\\\\b\"},{token:\"punctuation.definition.string.begin.io\",regex:'\"\"\"',push:[{token:\"punctuation.definition.string.end.io\",regex:'\"\"\"',next:\"pop\"},{token:\"constant.character.escape.io\",regex:\"\\\\\\\\.\"},{defaultToken:\"string.quoted.triple.io\"}]},{token:\"punctuation.definition.string.begin.io\",regex:'\"',push:[{token:\"punctuation.definition.string.end.io\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.io\",regex:\"\\\\\\\\.\"},{defaultToken:\"string.quoted.double.io\"}]},{token:\"constant.numeric.io\",regex:\"\\\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\\\.?[0-9]*|\\\\.[0-9]+)(?:(?:e|E)(?:\\\\+|-)?[0-9]+)?)(?:L|l|UL|ul|u|U|F|f)?\\\\b\"},{token:\"variable.other.global.io\",regex:\"Lobby\\\\b\"},{token:\"constant.language.io\",regex:\"\\\\b(?:TRUE|true|FALSE|false|NULL|null|Null|Nil|nil|YES|NO)\\\\b\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"io\"],keyEquivalent:\"^~I\",name:\"Io\",scopeName:\"source.io\"},r.inherits(s,i),t.IoHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/io\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/tokenizer\",\"ace/mode/io_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"../tokenizer\").Tokenizer,o=e(\"./io_highlight_rules\").IoHighlightRules,u=e(\"./folding/cstyle\").FoldMode,a=function(){this.HighlightRules=o,this.foldingRules=new u};r.inherits(a,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/io\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-jack.js",
    "content": "ace.define(\"ace/mode/jack_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"string\",regex:'\"',next:\"string2\"},{token:\"string\",regex:\"'\",next:\"string1\"},{token:\"constant.numeric\",regex:\"-?0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"(?:0|[-+]?[1-9][0-9]*)\\\\b\"},{token:\"constant.binary\",regex:\"<[0-9A-Fa-f][0-9A-Fa-f](\\\\s+[0-9A-Fa-f][0-9A-Fa-f])*>\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:\"constant.language.null\",regex:\"null\\\\b\"},{token:\"storage.type\",regex:\"(?:Integer|Boolean|Null|String|Buffer|Tuple|List|Object|Function|Coroutine|Form)\\\\b\"},{token:\"keyword\",regex:\"(?:return|abort|vars|for|delete|in|is|escape|exec|split|and|if|elif|else|while)\\\\b\"},{token:\"language.builtin\",regex:\"(?:lines|source|parse|read-stream|interval|substr|parseint|write|print|range|rand|inspect|bind|i-values|i-pairs|i-map|i-filter|i-chunk|i-all\\\\?|i-any\\\\?|i-collect|i-zip|i-merge|i-each)\\\\b\"},{token:\"comment\",regex:\"--.*$\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"storage.form\",regex:\"@[a-z]+\"},{token:\"constant.other.symbol\",regex:\":+[a-zA-Z_]([-]?[a-zA-Z0-9_])*[?!]?\"},{token:\"variable\",regex:\"[a-zA-Z_]([-]?[a-zA-Z0-9_])*[?!]?\"},{token:\"keyword.operator\",regex:\"\\\\|\\\\||\\\\^\\\\^|&&|!=|==|<=|<|>=|>|\\\\+|-|\\\\*|\\\\/|\\\\^|\\\\%|\\\\#|\\\\!\"},{token:\"text\",regex:\"\\\\s+\"}],string1:[{token:\"constant.language.escape\",regex:/\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|['\"\\\\\\/bfnrt])/},{token:\"string\",regex:\"[^'\\\\\\\\]+\"},{token:\"string\",regex:\"'\",next:\"start\"},{token:\"string\",regex:\"\",next:\"start\"}],string2:[{token:\"constant.language.escape\",regex:/\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|['\"\\\\\\/bfnrt])/},{token:\"string\",regex:'[^\"\\\\\\\\]+'},{token:\"string\",regex:'\"',next:\"start\"},{token:\"string\",regex:\"\",next:\"start\"}]}};r.inherits(s,i),t.JackHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/jack\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jack_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./jack_highlight_rules\").JackHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart=\"--\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if(e==\"start\"){var i=t.match(/^.*[\\{\\(\\[]\\s*$/);i&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/jack\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-jade.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/markdown_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\",\"ace/mode/html_highlight_rules\",\"ace/mode/css_highlight_rules\"],function(e,t,n){\"use strict\";function c(e,t){return{token:\"support.function\",regex:\"^\\\\s*```\"+e+\"\\\\s*$\",push:t+\"start\"}}var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./css_highlight_rules\").CssHighlightRules,l=function(e){return\"(?:[^\"+i.escapeRegExp(e)+\"\\\\\\\\]|\\\\\\\\.)*\"},h=function(){a.call(this),this.$rules.start.unshift({token:\"empty_line\",regex:\"^$\",next:\"allowBlock\"},{token:\"markup.heading.1\",regex:\"^=+(?=\\\\s*$)\"},{token:\"markup.heading.2\",regex:\"^\\\\-+(?=\\\\s*$)\"},{token:function(e){return\"markup.heading.\"+e.length},regex:/^#{1,6}(?=\\s*[^ #]|\\s+#.)/,next:\"header\"},c(\"(?:javascript|js)\",\"jscode-\"),c(\"xml\",\"xmlcode-\"),c(\"html\",\"htmlcode-\"),c(\"css\",\"csscode-\"),{token:\"support.function\",regex:\"^\\\\s*```\\\\s*\\\\S*(?:{.*?\\\\})?\\\\s*$\",next:\"githubblock\"},{token:\"string.blockquote\",regex:\"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",next:\"blockquote\"},{token:\"constant\",regex:\"^ {0,2}(?:(?: ?\\\\* ?){3,}|(?: ?\\\\- ?){3,}|(?: ?\\\\_ ?){3,})\\\\s*$\",next:\"allowBlock\"},{token:\"markup.list\",regex:\"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",next:\"listblock-start\"},{include:\"basic\"}),this.addRules({basic:[{token:\"constant.language.escape\",regex:/\\\\[\\\\`*_{}\\[\\]()#+\\-.!]/},{token:\"support.function\",regex:\"(`+)(.*?[^`])(\\\\1)\"},{token:[\"text\",\"constant\",\"text\",\"url\",\"string\",\"text\"],regex:'^([ ]{0,3}\\\\[)([^\\\\]]+)(\\\\]:\\\\s*)([^ ]+)(\\\\s*(?:[\"][^\"]+[\"])?(\\\\s*))$'},{token:[\"text\",\"string\",\"text\",\"constant\",\"text\"],regex:\"(\\\\[)(\"+l(\"]\")+\")(\\\\]s*\\\\[)(\"+l(\"]\")+\")(\\\\])\"},{token:[\"text\",\"string\",\"text\",\"markup.underline\",\"string\",\"text\"],regex:\"(\\\\[)(\"+l(\"]\")+\")(\\\\]\\\\()\"+'((?:[^\\\\)\\\\s\\\\\\\\]|\\\\\\\\.|\\\\s(?=[^\"]))*)'+'(\\\\s*\"'+l('\"')+'\"\\\\s*)?'+\"(\\\\))\"},{token:\"string.strong\",regex:\"([*]{2}|[_]{2}(?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"},{token:\"string.emphasis\",regex:\"([*]|[_](?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"},{token:[\"text\",\"url\",\"text\"],regex:\"(<)((?:https?|ftp|dict):[^'\\\">\\\\s]+|(?:mailto:)?[-.\\\\w]+\\\\@[-a-z0-9]+(?:\\\\.[-a-z0-9]+)*\\\\.[a-z]+)(>)\"}],allowBlock:[{token:\"support.function\",regex:\"^ {4}.+\",next:\"allowBlock\"},{token:\"empty_line\",regex:\"^$\",next:\"allowBlock\"},{token:\"empty\",regex:\"\",next:\"start\"}],header:[{regex:\"$\",next:\"start\"},{include:\"basic\"},{defaultToken:\"heading\"}],\"listblock-start\":[{token:\"support.variable\",regex:/(?:\\[[ x]\\])?/,next:\"listblock\"}],listblock:[{token:\"empty_line\",regex:\"^$\",next:\"start\"},{token:\"markup.list\",regex:\"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",next:\"listblock-start\"},{include:\"basic\",noEscape:!0},{token:\"support.function\",regex:\"^\\\\s*```\\\\s*[a-zA-Z]*(?:{.*?\\\\})?\\\\s*$\",next:\"githubblock\"},{defaultToken:\"list\"}],blockquote:[{token:\"empty_line\",regex:\"^\\\\s*$\",next:\"start\"},{token:\"string.blockquote\",regex:\"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",next:\"blockquote\"},{include:\"basic\",noEscape:!0},{defaultToken:\"string.blockquote\"}],githubblock:[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"start\"},{token:\"support.function\",regex:\".+\"}]}),this.embedRules(o,\"jscode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(a,\"htmlcode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(f,\"csscode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(u,\"xmlcode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.normalizeRules()};r.inherits(h,s),t.MarkdownHighlightRules=h}),ace.define(\"ace/mode/scss_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=i.arrayToMap(function(){var e=\"-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-\".split(\"|\"),t=\"appearance|background-clip|background-inline-policy|background-origin|background-size|binding|border-bottom-colors|border-left-colors|border-right-colors|border-top-colors|border-end|border-end-color|border-end-style|border-end-width|border-image|border-start|border-start-color|border-start-style|border-start-width|box-align|box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|box-pack|box-sizing|column-count|column-gap|column-width|column-rule|column-rule-width|column-rule-style|column-rule-color|float-edge|font-feature-settings|font-language-override|force-broken-image-icon|image-region|margin-end|margin-start|opacity|outline|outline-color|outline-offset|outline-radius|outline-radius-bottomleft|outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|outline-style|outline-width|padding-end|padding-start|stack-sizing|tab-size|text-blink|text-decoration-color|text-decoration-line|text-decoration-style|transform|transform-origin|transition|transition-delay|transition-duration|transition-property|transition-timing-function|user-focus|user-input|user-modify|user-select|window-shadow|border-radius\".split(\"|\"),n=\"azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index\".split(\"|\"),r=[];for(var i=0,s=e.length;i<s;i++)Array.prototype.push.apply(r,(e[i]+t.join(\"|\"+e[i])).split(\"|\"));return Array.prototype.push.apply(r,t),Array.prototype.push.apply(r,n),r}()),t=i.arrayToMap(\"hsl|hsla|rgb|rgba|url|attr|counter|counters|abs|adjust_color|adjust_hue|alpha|join|blue|ceil|change_color|comparable|complement|darken|desaturate|floor|grayscale|green|hue|if|invert|join|length|lighten|lightness|mix|nth|opacify|opacity|percentage|quote|red|round|saturate|saturation|scale_color|transparentize|type_of|unit|unitless|unqoute\".split(\"|\")),n=i.arrayToMap(\"absolute|all-scroll|always|armenian|auto|baseline|below|bidi-override|block|bold|bolder|border-box|both|bottom|break-all|break-word|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|content-box|crosshair|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|overline|pointer|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|zero\".split(\"|\")),r=i.arrayToMap(\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\".split(\"|\")),s=i.arrayToMap(\"@mixin|@extend|@include|@import|@media|@debug|@warn|@if|@for|@each|@while|@else|@font-face|@-webkit-keyframes|if|and|!default|module|def|end|declare\".split(\"|\")),o=i.arrayToMap(\"a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp\".split(\"|\")),u=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:'[\"].*\\\\\\\\$',next:\"qqstring\"},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"string\",regex:\"['].*\\\\\\\\$\",next:\"qstring\"},{token:\"constant.numeric\",regex:u+\"(?:em|ex|px|cm|mm|in|pt|pc|deg|rad|grad|ms|s|hz|khz|%)\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:\"constant.numeric\",regex:u},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:function(i){return e.hasOwnProperty(i.toLowerCase())?\"support.type\":s.hasOwnProperty(i)?\"keyword\":n.hasOwnProperty(i)?\"constant.language\":t.hasOwnProperty(i)?\"support.function\":r.hasOwnProperty(i.toLowerCase())?\"support.constant.color\":o.hasOwnProperty(i.toLowerCase())?\"variable.language\":\"text\"},regex:\"\\\\-?[@a-z_][@a-z0-9_\\\\-]*\"},{token:\"variable\",regex:\"[a-z_\\\\-$][a-z0-9_\\\\-$]*\\\\b\"},{token:\"variable.language\",regex:\"#[a-z0-9-_]+\"},{token:\"variable.language\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"variable.language\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{token:\"keyword.operator\",regex:\"<|>|<=|>=|==|!=|-|%|#|\\\\+|\\\\$|\\\\+|\\\\*\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],qqstring:[{token:\"string\",regex:'(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',next:\"start\"},{token:\"string\",regex:\".+\"}],qstring:[{token:\"string\",regex:\"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",next:\"start\"},{token:\"string\",regex:\".+\"}]}};r.inherits(o,s),t.ScssHighlightRules=o}),ace.define(\"ace/mode/less_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/css_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=e(\"./css_highlight_rules\"),o=function(){var e=\"@import|@media|@font-face|@keyframes|@-webkit-keyframes|@supports|@charset|@plugin|@namespace|@document|@page|@viewport|@-ms-viewport|or|and|when|not\",t=e.split(\"|\"),n=s.supportType.split(\"|\"),r=this.createKeywordMapper({\"support.constant\":s.supportConstant,keyword:e,\"support.constant.color\":s.supportConstantColor,\"support.constant.fonts\":s.supportConstantFonts},\"identifier\",!0),i=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+i+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:\"constant.numeric\",regex:i},{token:[\"support.function\",\"paren.lparen\",\"string\",\"paren.rparen\"],regex:\"(url)(\\\\()(.*)(\\\\))\"},{token:[\"support.function\",\"paren.lparen\"],regex:\"(:extend|[a-z0-9_\\\\-]+)(\\\\()\"},{token:function(e){return t.indexOf(e.toLowerCase())>-1?\"keyword\":\"variable\"},regex:\"[@\\\\$][a-z0-9_\\\\-@\\\\$]*\\\\b\"},{token:\"variable\",regex:\"[@\\\\$]\\\\{[a-z0-9_\\\\-@\\\\$]*\\\\}\"},{token:function(e,t){return n.indexOf(e.toLowerCase())>-1?[\"support.type.property\",\"text\"]:[\"support.type.unknownProperty\",\"text\"]},regex:\"([a-z0-9-_]+)(\\\\s*:)\"},{token:\"keyword\",regex:\"&\"},{token:r,regex:\"\\\\-?[@a-z_][@a-z0-9_\\\\-]*\"},{token:\"variable.language\",regex:\"#[a-z0-9-_]+\"},{token:\"variable.language\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"variable.language\",regex:\":[a-z_][a-z0-9-_]*\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{token:\"keyword.operator\",regex:\"<|>|<=|>=|=|!=|-|%|\\\\+|\\\\*\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.normalizeRules()};r.inherits(o,i),t.LessHighlightRules=o}),ace.define(\"ace/mode/coffee_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function s(){var e=\"[$A-Za-z_\\\\x7f-\\\\uffff][$\\\\w\\\\x7f-\\\\uffff]*\",t=\"this|throw|then|try|typeof|super|switch|return|break|by|continue|catch|class|in|instanceof|is|isnt|if|else|extends|for|own|finally|function|while|when|new|no|not|delete|debugger|do|loop|of|off|or|on|unless|until|and|yes\",n=\"true|false|null|undefined|NaN|Infinity\",r=\"case|const|default|function|var|void|with|enum|export|implements|interface|let|package|private|protected|public|static|yield|__hasProp|slice|bind|indexOf\",i=\"Array|Boolean|Date|Function|Number|Object|RegExp|ReferenceError|String|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray\",s=\"Math|JSON|isNaN|isFinite|parseInt|parseFloat|encodeURI|encodeURIComponent|decodeURI|decodeURIComponent|String|\",o=\"window|arguments|prototype|document\",u=this.createKeywordMapper({keyword:t,\"constant.language\":n,\"invalid.illegal\":r,\"language.support.class\":i,\"language.support.function\":s,\"variable.language\":o},\"identifier\"),a={token:[\"paren.lparen\",\"variable.parameter\",\"paren.rparen\",\"text\",\"storage.type\"],regex:/(?:(\\()((?:\"[^\")]*?\"|'[^')]*?'|\\/[^\\/)]*?\\/|[^()\\\"'\\/])*?)(\\))(\\s*))?([\\-=]>)/.source},f=/\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)/;this.$rules={start:[{token:\"constant.numeric\",regex:\"(?:0x[\\\\da-fA-F]+|(?:\\\\d+(?:\\\\.\\\\d+)?|\\\\.\\\\d+)(?:[eE][+-]?\\\\d+)?)\"},{stateName:\"qdoc\",token:\"string\",regex:\"'''\",next:[{token:\"string\",regex:\"'''\",next:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{stateName:\"qqdoc\",token:\"string\",regex:'\"\"\"',next:[{token:\"string\",regex:'\"\"\"',next:\"start\"},{token:\"paren.string\",regex:\"#{\",push:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{stateName:\"qstring\",token:\"string\",regex:\"'\",next:[{token:\"string\",regex:\"'\",next:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{stateName:\"qqstring\",token:\"string.start\",regex:'\"',next:[{token:\"string.end\",regex:'\"',next:\"start\"},{token:\"paren.string\",regex:\"#{\",push:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{stateName:\"js\",token:\"string\",regex:\"`\",next:[{token:\"string\",regex:\"`\",next:\"start\"},{token:\"constant.language.escape\",regex:f},{defaultToken:\"string\"}]},{regex:\"[{}]\",onMatch:function(e,t,n){this.next=\"\";if(e==\"{\"&&n.length)return n.unshift(\"start\",t),\"paren\";if(e==\"}\"&&n.length){n.shift(),this.next=n.shift()||\"\";if(this.next.indexOf(\"string\")!=-1)return\"paren.string\"}return\"paren\"}},{token:\"string.regex\",regex:\"///\",next:\"heregex\"},{token:\"string.regex\",regex:/(?:\\/(?![\\s=])[^[\\/\\n\\\\]*(?:(?:\\\\[\\s\\S]|\\[[^\\]\\n\\\\]*(?:\\\\[\\s\\S][^\\]\\n\\\\]*)*])[^[\\/\\n\\\\]*)*\\/)(?:[imgy]{0,4})(?!\\w)/},{token:\"comment\",regex:\"###(?!#)\",next:\"comment\"},{token:\"comment\",regex:\"#.*\"},{token:[\"punctuation.operator\",\"text\",\"identifier\"],regex:\"(\\\\.)(\\\\s*)(\"+r+\")\"},{token:\"punctuation.operator\",regex:\"\\\\.{1,3}\"},{token:[\"keyword\",\"text\",\"language.support.class\",\"text\",\"keyword\",\"text\",\"language.support.class\"],regex:\"(class)(\\\\s+)(\"+e+\")(?:(\\\\s+)(extends)(\\\\s+)(\"+e+\"))?\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\"].concat(a.token),regex:\"(\"+e+\")(\\\\s*)([=:])(\\\\s*)\"+a.regex},a,{token:\"variable\",regex:\"@(?:\"+e+\")?\"},{token:u,regex:e},{token:\"punctuation.operator\",regex:\"\\\\,|\\\\.\"},{token:\"storage.type\",regex:\"[\\\\-=]>\"},{token:\"keyword.operator\",regex:\"(?:[-+*/%<>&|^!?=]=|>>>=?|\\\\-\\\\-|\\\\+\\\\+|::|&&=|\\\\|\\\\|=|<<=|>>=|\\\\?\\\\.|\\\\.{2,3}|[!*+-=><])\"},{token:\"paren.lparen\",regex:\"[({[]\"},{token:\"paren.rparen\",regex:\"[\\\\]})]\"},{token:\"text\",regex:\"\\\\s+\"}],heregex:[{token:\"string.regex\",regex:\".*?///[imgy]{0,4}\",next:\"start\"},{token:\"comment.regex\",regex:\"\\\\s+(?:#.*)?\"},{token:\"string.regex\",regex:\"\\\\S+\"}],comment:[{token:\"comment\",regex:\"###\",next:\"start\"},{defaultToken:\"comment\"}]},this.normalizeRules()}var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules;r.inherits(s,i),t.CoffeeHighlightRules=s}),ace.define(\"ace/mode/jade_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/markdown_highlight_rules\",\"ace/mode/scss_highlight_rules\",\"ace/mode/less_highlight_rules\",\"ace/mode/coffee_highlight_rules\",\"ace/mode/javascript_highlight_rules\"],function(e,t,n){\"use strict\";function l(e,t){return{token:\"entity.name.function.jade\",regex:\"^\\\\s*\\\\:\"+e,next:t+\"start\"}}var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=e(\"./markdown_highlight_rules\").MarkdownHighlightRules,o=e(\"./scss_highlight_rules\").ScssHighlightRules,u=e(\"./less_highlight_rules\").LessHighlightRules,a=e(\"./coffee_highlight_rules\").CoffeeHighlightRules,f=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,c=function(){var e=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)\";this.$rules={start:[{token:\"keyword.control.import.include.jade\",regex:\"\\\\s*\\\\binclude\\\\b\"},{token:\"keyword.other.doctype.jade\",regex:\"^!!!\\\\s*(?:[a-zA-Z0-9-_]+)?\"},{onMatch:function(e,t,n){return n.unshift(this.next,e.length-2,t),\"comment\"},regex:/^\\s*\\/\\//,next:\"comment_block\"},l(\"markdown\",\"markdown-\"),l(\"sass\",\"sass-\"),l(\"less\",\"less-\"),l(\"coffee\",\"coffee-\"),{token:[\"storage.type.function.jade\",\"entity.name.function.jade\",\"punctuation.definition.parameters.begin.jade\",\"variable.parameter.function.jade\",\"punctuation.definition.parameters.end.jade\"],regex:\"^(\\\\s*mixin)( [\\\\w\\\\-]+)(\\\\s*\\\\()(.*?)(\\\\))\"},{token:[\"storage.type.function.jade\",\"entity.name.function.jade\"],regex:\"^(\\\\s*mixin)( [\\\\w\\\\-]+)\"},{token:\"source.js.embedded.jade\",regex:\"^\\\\s*(?:-|=|!=)\",next:\"js-start\"},{token:\"string.interpolated.jade\",regex:\"[#!]\\\\{[^\\\\}]+\\\\}\"},{token:\"meta.tag.any.jade\",regex:/^\\s*(?!\\w+\\:)(?:[\\w-]+|(?=\\.|#)])/,next:\"tag_single\"},{token:\"suport.type.attribute.id.jade\",regex:\"#\\\\w+\"},{token:\"suport.type.attribute.class.jade\",regex:\"\\\\.\\\\w+\"},{token:\"punctuation\",regex:\"\\\\s*(?:\\\\()\",next:\"tag_attributes\"}],comment_block:[{regex:/^\\s*(?:\\/\\/)?/,onMatch:function(e,t,n){return e.length<=n[1]?e.slice(-1)==\"/\"?(n[1]=e.length-2,this.next=\"\",\"comment\"):(n.shift(),n.shift(),this.next=n.shift(),\"text\"):(this.next=\"\",\"comment\")},next:\"start\"},{defaultToken:\"comment\"}],tag_single:[{token:\"entity.other.attribute-name.class.jade\",regex:\"\\\\.[\\\\w-]+\"},{token:\"entity.other.attribute-name.id.jade\",regex:\"#[\\\\w-]+\"},{token:[\"text\",\"punctuation\"],regex:\"($)|((?!\\\\.|#|=|-))\",next:\"start\"}],tag_attributes:[{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:[\"entity.other.attribute-name.jade\",\"punctuation\"],regex:\"([a-zA-Z:\\\\.-]+)(=)?\",next:\"attribute_strings\"},{token:\"punctuation\",regex:\"\\\\)\",next:\"start\"}],attribute_strings:[{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"string\",regex:\"(?=\\\\S)\",next:\"tag_attributes\"}],qqstring:[{token:\"constant.language.escape\",regex:e},{token:\"string\",regex:'[^\"\\\\\\\\]+'},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"tag_attributes\"}],qstring:[{token:\"constant.language.escape\",regex:e},{token:\"string\",regex:\"[^'\\\\\\\\]+\"},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"tag_attributes\"}]},this.embedRules(f,\"js-\",[{token:\"text\",regex:\".$\",next:\"start\"}])};r.inherits(c,i),t.JadeHighlightRules=c}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/jade\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jade_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./jade_highlight_rules\").JadeHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.$id=\"ace/mode/jade\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-java.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/java_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while\",t=\"null|Infinity|NaN|undefined\",n=\"AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object\",r=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"constant.language\":t,\"support.function\":n},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.[\\d_]*)?(?:[eE][+-]?[\\d_]+)?)?[LlSsDdFfYy]?\\b/},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.JavaHighlightRules=o}),ace.define(\"ace/mode/java\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/java_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript\").Mode,s=e(\"./java_highlight_rules\").JavaHighlightRules,o=function(){i.call(this),this.HighlightRules=s};r.inherits(o,i),function(){this.createWorker=function(e){return null},this.$id=\"ace/mode/java\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-javascript.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-json.js",
    "content": "ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"variable\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'},{token:\"string\",regex:'\"',next:\"string\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:\"invalid.illegal\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"invalid.illegal\",regex:\"\\\\/\\\\/.*$\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],string:[{token:\"constant.language.escape\",regex:/\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/},{token:\"string\",regex:'[^\"\\\\\\\\]+'},{token:\"string\",regex:'\"',next:\"start\"},{token:\"string\",regex:\"\",next:\"start\"}]}};r.inherits(s,i),t.JsonHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./json_highlight_rules\").JsonHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=e(\"../worker/worker_client\").WorkerClient,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,i),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if(e==\"start\"){var i=t.match(/^.*[\\{\\(\\[]\\s*$/);i&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new f([\"ace\"],\"ace/mode/json_worker\",\"JsonWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/json\"}.call(l.prototype),t.Mode=l})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-jsoniq.js",
    "content": "ace.define(\"ace/mode/xquery/jsoniq_lexer\",[\"require\",\"exports\",\"module\"],function(e,t,n){n.exports=function r(t,n,i){function s(u,a){if(!n[u]){if(!t[u]){var f=typeof e==\"function\"&&e;if(!a&&f)return f(u,!0);if(o)return o(u,!0);throw new Error(\"Cannot find module '\"+u+\"'\")}var l=n[u]={exports:{}};t[u][0].call(l.exports,function(e){var n=t[u][1][e];return s(n?n:e)},l,l.exports,r,t,n,i)}return n[u].exports}var o=typeof e==\"function\"&&e;for(var u=0;u<i.length;u++)s(i[u]);return s}({1:[function(e,t,n){var r=n.JSONiqTokenizer=function i(e,t){function r(e,t){E=t,S=e,x=e.length,s(0,0,0)}function s(e,t,n){m=t,g=t,y=e,b=t,w=n,N=n,E.reset(S)}function o(){E.startNonterminal(\"EQName\",g);switch(y){case 80:f(80);break;case 94:f(94);break;case 118:f(118);break;case 119:f(119);break;case 122:f(122);break;case 143:f(143);break;case 150:f(150);break;case 163:f(163);break;case 183:f(183);break;case 189:f(189);break;case 214:f(214);break;case 224:f(224);break;case 225:f(225);break;case 241:f(241);break;case 242:f(242);break;case 251:f(251);break;default:u()}E.endNonterminal(\"EQName\",g)}function u(){E.startNonterminal(\"FunctionName\",g);switch(y){case 17:f(17);break;case 68:f(68);break;case 71:f(71);break;case 72:f(72);break;case 73:f(73);break;case 77:f(77);break;case 78:f(78);break;case 82:f(82);break;case 86:f(86);break;case 87:f(87);break;case 88:f(88);break;case 91:f(91);break;case 92:f(92);break;case 101:f(101);break;case 103:f(103);break;case 106:f(106);break;case 107:f(107);break;case 108:f(108);break;case 109:f(109);break;case 110:f(110);break;case 111:f(111);break;case 116:f(116);break;case 117:f(117);break;case 120:f(120);break;case 121:f(121);break;case 124:f(124);break;case 126:f(126);break;case 127:f(127);break;case 129:f(129);break;case 132:f(132);break;case 133:f(133);break;case 134:f(134);break;case 135:f(135);break;case 144:f(144);break;case 146:f(146);break;case 148:f(148);break;case 149:f(149);break;case 151:f(151);break;case 157:f(157);break;case 158:f(158);break;case 160:f(160);break;case 161:f(161);break;case 162:f(162);break;case 168:f(168);break;case 170:f(170);break;case 172:f(172);break;case 176:f(176);break;case 178:f(178);break;case 179:f(179);break;case 180:f(180);break;case 182:f(182);break;case 184:f(184);break;case 196:f(196);break;case 198:f(198);break;case 199:f(199);break;case 200:f(200);break;case 204:f(204);break;case 210:f(210);break;case 211:f(211);break;case 216:f(216);break;case 217:f(217);break;case 218:f(218);break;case 222:f(222);break;case 227:f(227);break;case 233:f(233);break;case 234:f(234);break;case 235:f(235);break;case 246:f(246);break;case 247:f(247);break;case 248:f(248);break;case 252:f(252);break;case 254:f(254);break;case 258:f(258);break;case 264:f(264);break;case 268:f(268);break;case 272:f(272);break;case 70:f(70);break;case 79:f(79);break;case 81:f(81);break;case 83:f(83);break;case 84:f(84);break;case 89:f(89);break;case 96:f(96);break;case 99:f(99);break;case 100:f(100);break;case 102:f(102);break;case 104:f(104);break;case 123:f(123);break;case 130:f(130);break;case 131:f(131);break;case 139:f(139);break;case 152:f(152);break;case 153:f(153);break;case 159:f(159);break;case 169:f(169);break;case 190:f(190);break;case 197:f(197);break;case 201:f(201);break;case 220:f(220);break;case 223:f(223);break;case 226:f(226);break;case 232:f(232);break;case 238:f(238);break;case 249:f(249);break;case 250:f(250);break;case 255:f(255);break;case 259:f(259);break;case 260:f(260);break;case 261:f(261);break;case 265:f(265);break;case 95:f(95);break;case 174:f(174);break;default:f(219)}E.endNonterminal(\"FunctionName\",g)}function a(){E.startNonterminal(\"NCName\",g);switch(y){case 28:f(28);break;case 68:f(68);break;case 73:f(73);break;case 77:f(77);break;case 78:f(78);break;case 82:f(82);break;case 86:f(86);break;case 87:f(87);break;case 88:f(88);break;case 92:f(92);break;case 103:f(103);break;case 107:f(107);break;case 111:f(111);break;case 116:f(116);break;case 120:f(120);break;case 121:f(121);break;case 124:f(124);break;case 126:f(126);break;case 129:f(129);break;case 135:f(135);break;case 144:f(144);break;case 146:f(146);break;case 148:f(148);break;case 149:f(149);break;case 158:f(158);break;case 160:f(160);break;case 161:f(161);break;case 162:f(162);break;case 170:f(170);break;case 172:f(172);break;case 176:f(176);break;case 178:f(178);break;case 179:f(179);break;case 184:f(184);break;case 196:f(196);break;case 198:f(198);break;case 199:f(199);break;case 218:f(218);break;case 222:f(222);break;case 234:f(234);break;case 235:f(235);break;case 246:f(246);break;case 247:f(247);break;case 252:f(252);break;case 264:f(264);break;case 268:f(268);break;case 71:f(71);break;case 72:f(72);break;case 80:f(80);break;case 91:f(91);break;case 94:f(94);break;case 101:f(101);break;case 106:f(106);break;case 108:f(108);break;case 109:f(109);break;case 110:f(110);break;case 117:f(117);break;case 118:f(118);break;case 119:f(119);break;case 122:f(122);break;case 127:f(127);break;case 132:f(132);break;case 133:f(133);break;case 134:f(134);break;case 143:f(143);break;case 150:f(150);break;case 151:f(151);break;case 157:f(157);break;case 163:f(163);break;case 168:f(168);break;case 180:f(180);break;case 182:f(182);break;case 183:f(183);break;case 189:f(189);break;case 200:f(200);break;case 204:f(204);break;case 210:f(210);break;case 211:f(211);break;case 214:f(214);break;case 216:f(216);break;case 217:f(217);break;case 224:f(224);break;case 225:f(225);break;case 227:f(227);break;case 233:f(233);break;case 241:f(241);break;case 242:f(242);break;case 248:f(248);break;case 251:f(251);break;case 254:f(254);break;case 258:f(258);break;case 260:f(260);break;case 272:f(272);break;case 70:f(70);break;case 79:f(79);break;case 81:f(81);break;case 83:f(83);break;case 84:f(84);break;case 89:f(89);break;case 96:f(96);break;case 99:f(99);break;case 100:f(100);break;case 102:f(102);break;case 104:f(104);break;case 123:f(123);break;case 130:f(130);break;case 131:f(131);break;case 139:f(139);break;case 152:f(152);break;case 153:f(153);break;case 159:f(159);break;case 169:f(169);break;case 190:f(190);break;case 197:f(197);break;case 201:f(201);break;case 220:f(220);break;case 223:f(223);break;case 226:f(226);break;case 232:f(232);break;case 238:f(238);break;case 249:f(249);break;case 250:f(250);break;case 255:f(255);break;case 259:f(259);break;case 261:f(261);break;case 265:f(265);break;case 95:f(95);break;case 174:f(174);break;default:f(219)}E.endNonterminal(\"NCName\",g)}function f(e){y==e?(l(),E.terminal(i.TOKEN[y],b,w>x?x:w),m=b,g=w,y=0):d(b,w,0,y,e)}function l(){g!=b&&(m=g,g=b,E.whitespace(m,g))}function c(e){var t;for(;;){t=C(e);if(t!=30)break}return t}function h(e){y==0&&(y=c(e),b=T,w=N)}function p(e){y==0&&(y=C(e),b=T,w=N)}function d(e,t,r,i,s){throw new n.ParseException(e,t,r,i,s)}function C(e){var t=!1;T=N;var n=N,r=i.INITIAL[e],s=0;for(var o=r&4095;o!=0;){var u,a=n<x?S.charCodeAt(n):0;++n;if(a<128)u=i.MAP0[a];else if(a<55296){var f=a>>4;u=i.MAP1[(a&15)+i.MAP1[(f&31)+i.MAP1[f>>5]]]}else{if(a<56320){var f=n<x?S.charCodeAt(n):0;f>=56320&&f<57344&&(++n,a=((a&1023)<<10)+(f&1023)+65536,t=!0)}var l=0,c=5;for(var h=3;;h=c+l>>1){if(i.MAP2[h]>a)c=h-1;else{if(!(i.MAP2[6+h]<a)){u=i.MAP2[12+h];break}l=h+1}if(l>c){u=0;break}}}s=o;var p=(u<<12)+o-1;o=i.TRANSITION[(p&15)+i.TRANSITION[p>>4]],o>4095&&(r=o,o&=4095,N=n)}r>>=12;if(r==0){N=n-1;var f=N<x?S.charCodeAt(N):0;return f>=56320&&f<57344&&--N,d(T,N,s,-1,-1)}if(t)for(var v=r>>9;v>0;--v){--N;var f=N<x?S.charCodeAt(N):0;f>=56320&&f<57344&&--N}else N-=r>>9;return(r&511)-1}r(e,t);var n=this;this.ParseException=function(e,t,n,r,i){var s=e,o=t,u=n,a=r,f=i;this.getBegin=function(){return s},this.getEnd=function(){return o},this.getState=function(){return u},this.getExpected=function(){return f},this.getOffending=function(){return a},this.getMessage=function(){return a<0?\"lexical analysis failed\":\"syntax error\"}},this.getInput=function(){return S},this.getOffendingToken=function(e){var t=e.getOffending();return t>=0?i.TOKEN[t]:null},this.getExpectedTokenSet=function(e){var t;return e.getExpected()<0?t=i.getTokenSet(-e.getState()):t=[i.TOKEN[e.getExpected()]],t},this.getErrorMessage=function(e){var t=this.getExpectedTokenSet(e),n=this.getOffendingToken(e),r=S.substring(0,e.getBegin()),i=r.split(\"\\n\"),s=i.length,o=i[s-1].length+1,u=e.getEnd()-e.getBegin();return e.getMessage()+(n==null?\"\":\", found \"+n)+\"\\nwhile expecting \"+(t.length==1?t[0]:\"[\"+t.join(\", \")+\"]\")+\"\\n\"+(u==0||n!=null?\"\":\"after successfully scanning \"+u+\" characters beginning \")+\"at line \"+s+\", column \"+o+\":\\n...\"+S.substring(e.getBegin(),Math.min(S.length,e.getBegin()+64))+\"...\"},this.parse_start=function(){E.startNonterminal(\"start\",g),h(14);switch(y){case 58:f(58);break;case 57:f(57);break;case 59:f(59);break;case 43:f(43);break;case 45:f(45);break;case 44:f(44);break;case 37:f(37);break;case 41:f(41);break;case 277:f(277);break;case 274:f(274);break;case 42:f(42);break;case 46:f(46);break;case 52:f(52);break;case 65:f(65);break;case 66:f(66);break;case 49:f(49);break;case 51:f(51);break;case 56:f(56);break;case 54:f(54);break;case 36:f(36);break;case 276:f(276);break;case 40:f(40);break;case 5:f(5);break;case 4:f(4);break;case 6:f(6);break;case 15:f(15);break;case 16:f(16);break;case 18:f(18);break;case 19:f(19);break;case 20:f(20);break;case 8:f(8);break;case 9:f(9);break;case 7:f(7);break;case 35:f(35);break;default:o()}E.endNonterminal(\"start\",g)},this.parse_StartTag=function(){E.startNonterminal(\"StartTag\",g),h(8);switch(y){case 61:f(61);break;case 53:f(53);break;case 29:f(29);break;case 60:f(60);break;case 37:f(37);break;case 41:f(41);break;default:f(35)}E.endNonterminal(\"StartTag\",g)},this.parse_TagContent=function(){E.startNonterminal(\"TagContent\",g),p(11);switch(y){case 25:f(25);break;case 9:f(9);break;case 10:f(10);break;case 58:f(58);break;case 57:f(57);break;case 21:f(21);break;case 31:f(31);break;case 275:f(275);break;case 278:f(278);break;case 274:f(274);break;default:f(35)}E.endNonterminal(\"TagContent\",g)},this.parse_AposAttr=function(){E.startNonterminal(\"AposAttr\",g),p(10);switch(y){case 23:f(23);break;case 27:f(27);break;case 21:f(21);break;case 31:f(31);break;case 275:f(275);break;case 278:f(278);break;case 274:f(274);break;case 41:f(41);break;default:f(35)}E.endNonterminal(\"AposAttr\",g)},this.parse_QuotAttr=function(){E.startNonterminal(\"QuotAttr\",g),p(9);switch(y){case 22:f(22);break;case 26:f(26);break;case 21:f(21);break;case 31:f(31);break;case 275:f(275);break;case 278:f(278);break;case 274:f(274);break;case 37:f(37);break;default:f(35)}E.endNonterminal(\"QuotAttr\",g)},this.parse_CData=function(){E.startNonterminal(\"CData\",g),p(1);switch(y){case 14:f(14);break;case 67:f(67);break;default:f(35)}E.endNonterminal(\"CData\",g)},this.parse_XMLComment=function(){E.startNonterminal(\"XMLComment\",g),p(0);switch(y){case 12:f(12);break;case 50:f(50);break;default:f(35)}E.endNonterminal(\"XMLComment\",g)},this.parse_PI=function(){E.startNonterminal(\"PI\",g),p(3);switch(y){case 13:f(13);break;case 62:f(62);break;case 63:f(63);break;default:f(35)}E.endNonterminal(\"PI\",g)},this.parse_Pragma=function(){E.startNonterminal(\"Pragma\",g),p(2);switch(y){case 11:f(11);break;case 38:f(38);break;case 39:f(39);break;default:f(35)}E.endNonterminal(\"Pragma\",g)},this.parse_Comment=function(){E.startNonterminal(\"Comment\",g),p(4);switch(y){case 55:f(55);break;case 44:f(44);break;case 32:f(32);break;default:f(35)}E.endNonterminal(\"Comment\",g)},this.parse_CommentDoc=function(){E.startNonterminal(\"CommentDoc\",g),p(6);switch(y){case 33:f(33);break;case 34:f(34);break;case 55:f(55);break;case 44:f(44);break;default:f(35)}E.endNonterminal(\"CommentDoc\",g)},this.parse_QuotString=function(){E.startNonterminal(\"QuotString\",g),p(5);switch(y){case 3:f(3);break;case 2:f(2);break;case 1:f(1);break;case 37:f(37);break;default:f(35)}E.endNonterminal(\"QuotString\",g)},this.parse_AposString=function(){E.startNonterminal(\"AposString\",g),p(7);switch(y){case 21:f(21);break;case 31:f(31);break;case 23:f(23);break;case 24:f(24);break;case 41:f(41);break;default:f(35)}E.endNonterminal(\"AposString\",g)},this.parse_Prefix=function(){E.startNonterminal(\"Prefix\",g),h(13),l(),a(),E.endNonterminal(\"Prefix\",g)},this.parse__EQName=function(){E.startNonterminal(\"_EQName\",g),h(12),l(),o(),E.endNonterminal(\"_EQName\",g)};var v,m,g,y,b,w,E,S,x,T,N};r.getTokenSet=function(e){var t=[],n=e<0?-e:INITIAL[e]&4095;for(var i=0;i<279;i+=32){var s=i,o=(i>>5)*2066+n-1,u=o>>2,a=u>>2,f=r.EXPECTED[(o&3)+r.EXPECTED[(u&3)+r.EXPECTED[(a&3)+r.EXPECTED[a>>2]]]];for(;f!=0;f>>>=1,++s)(f&1)!=0&&t.push(r.TOKEN[s])}return t},r.MAP0=[67,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,18,18,18,18,18,18,18,18,18,19,20,21,22,23,24,25,26,27,28,29,30,27,31,31,31,31,31,31,31,31,31,31,32,31,31,33,31,31,31,31,31,31,34,35,36,37,31,37,38,39,40,41,42,43,44,45,46,31,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,31,62,63,64,65,37],r.MAP1=[108,124,214,214,214,214,214,214,214,214,214,214,214,214,214,214,156,181,181,181,181,181,214,215,213,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,247,261,277,293,309,347,363,379,416,416,416,408,331,323,331,323,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,433,433,433,433,433,433,433,316,331,331,331,331,331,331,331,331,394,416,416,417,415,416,416,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,330,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,416,67,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,18,18,18,18,18,18,18,18,18,19,20,21,22,23,24,25,26,27,28,29,30,27,31,31,31,31,31,31,31,31,31,31,31,31,31,31,37,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,32,31,31,33,31,31,31,31,31,31,34,35,36,37,31,37,38,39,40,41,42,43,44,45,46,31,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,31,62,63,64,65,37,37,37,37,37,37,37,37,37,37,37,37,31,31,37,37,37,37,37,37,37,66,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66],r.MAP2=[57344,63744,64976,65008,65536,983040,63743,64975,65007,65533,983039,1114111,37,31,37,31,31,37],r.INITIAL=[1,2,49155,57348,5,6,7,8,9,10,11,12,13,14,15],r.TRANSITION=[19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,17408,19288,17439,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,22126,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17672,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,19469,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,36919,18234,18262,18278,18294,18320,18336,18361,18397,18419,18432,18304,18448,18485,18523,18553,18583,18599,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,18825,18841,18871,18906,18944,18960,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19074,36169,17439,36866,17466,36890,36866,22314,19105,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,22126,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17672,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,19469,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,36919,18234,18262,18278,18294,18320,18336,18361,18397,18419,18432,18304,18448,18485,18523,18553,18583,18599,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,18825,18841,18871,18906,18944,18960,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22182,19288,19121,36866,17466,18345,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19273,19552,19304,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19332,17423,19363,36866,17466,17537,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,18614,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,19391,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,19427,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36154,19288,19457,36866,17466,17740,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22780,19288,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22375,22197,18469,36866,17466,36890,36866,21991,24018,22987,17556,17575,22288,17486,17509,17525,18373,21331,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,19485,19501,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19537,22390,19568,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19596,19611,19457,36866,17466,36890,36866,18246,19627,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22242,20553,19457,36866,17466,36890,36866,18648,30477,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36472,19288,19457,36866,17466,17809,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,21770,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,19643,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,19672,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,20538,19288,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,17975,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22345,19288,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19726,19742,21529,24035,23112,26225,23511,27749,27397,24035,34360,24035,24036,23114,35166,23114,23114,19758,23511,35247,23511,23511,28447,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,24254,19821,23511,23511,23511,23511,23512,19441,36539,24035,24035,24035,24035,19846,19869,23114,23114,23114,28618,32187,19892,23511,23511,23511,34585,20402,36647,24035,24035,24036,23114,33757,23114,23114,23029,20271,23511,27070,23511,23511,30562,24035,24035,29274,26576,23114,23114,31118,23036,29695,23511,23511,32431,23634,30821,24035,23110,19913,23114,23467,31261,23261,34299,19932,24035,32609,19965,35389,19984,27689,19830,29391,29337,20041,22643,35619,33728,20062,20121,20166,35100,26145,20211,23008,19876,20208,20227,25670,20132,26578,27685,20141,20243,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36094,19288,19457,36866,17466,21724,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22735,19552,20287,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22750,19288,21529,24035,23112,28056,23511,29483,28756,24035,24035,24035,24036,23114,23114,23114,23114,20327,23511,23511,23511,23511,31156,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,24254,20371,23511,23511,23511,23511,27443,20395,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,29457,29700,23511,23511,23511,23511,33444,20402,24035,24035,24035,24036,23114,23114,23114,23114,28350,20421,23511,23511,23511,23511,25645,24035,24035,24035,26576,23114,23114,23114,20447,20475,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,20523,22257,20569,20783,21715,17603,20699,20837,20614,20630,21149,20670,21405,17486,17509,17525,18373,19179,20695,20716,20732,20755,19194,18042,21641,20592,20779,20598,21412,17470,17591,20896,17468,17619,20799,20700,21031,20744,20699,20828,18075,21259,20581,20853,18048,20868,20884,17756,17784,17800,17825,17854,21171,21200,20931,20947,21378,20955,20971,18086,20645,21002,20986,18178,17960,18012,18381,18064,29176,21044,21438,21018,21122,21393,21060,21844,21094,20654,17493,18150,18166,18214,25967,20763,21799,21110,21830,21138,21246,21301,18336,18361,21165,21187,20812,21216,21232,21287,21317,18553,21347,21363,21428,21454,21271,21483,21499,21515,21575,21467,18712,21591,21633,21078,18189,18198,20679,21657,21701,21074,21687,21740,21756,21786,21815,21860,21876,21892,21946,21962,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36457,19288,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,36813,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,21981,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,22151,22007,18884,17900,17922,17944,18178,17960,18012,18381,18064,27898,17884,18890,17906,17928,22042,25022,18130,36931,36963,17493,18150,18166,22070,22112,25026,18134,36935,18262,18278,18294,18320,18336,18361,22142,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36109,19288,18469,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22167,19288,19457,36866,17466,17768,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22227,36487,22273,36866,17466,36890,36866,19316,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18749,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,22304,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,19580,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22330,19089,19457,36866,17466,18721,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22765,19347,19457,36866,17466,36890,36866,18114,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,29483,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,29116,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,27443,22493,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34541,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,22839,23511,23511,23511,23511,25645,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,22540,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,29483,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,29116,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,27443,22493,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34564,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,22839,23511,23511,23511,23511,25645,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,29483,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,29908,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,27443,22493,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34564,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,22839,23511,23511,23511,23511,25645,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,29483,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,29116,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,27443,22561,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34564,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,22839,23511,23511,23511,23511,25645,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,23837,23511,29483,29939,24035,24035,24035,24036,23114,23114,23114,23114,22584,23511,23511,23511,23511,29116,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,27443,22493,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34564,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,22839,23511,23511,23511,23511,25645,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,31507,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,23512,24694,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36442,19288,21605,24035,23112,28137,23511,31507,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,23512,24694,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,31507,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,23512,24694,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,31568,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22690,19288,19457,36866,17466,36890,36866,21991,27584,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,22659,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22360,19552,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22675,22811,19457,36866,17466,36890,36866,19133,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,22827,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36139,19288,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36064,19288,22865,22881,32031,22897,22913,22956,29939,24035,24035,24035,23003,23114,23114,23114,23024,22420,23511,23511,23511,23052,29116,23073,29268,24035,25563,26915,23106,23131,23114,23114,23159,23181,23197,23248,23511,23511,23282,23305,22493,32364,24035,33472,30138,26325,31770,33508,27345,33667,23114,23321,23473,23351,35793,36576,23511,23375,22500,24145,24035,29197,20192,24533,23440,23114,19017,23459,22839,23489,23510,23511,33563,23528,32076,25389,24035,26576,23561,23583,23114,32683,22516,23622,23655,23511,23634,35456,37144,23110,23683,34153,20499,32513,25824,23705,24035,24035,23111,23114,19874,27078,33263,19830,24035,23112,19872,27741,23266,24036,23114,30243,20507,32241,20150,31862,27464,35108,23727,23007,35895,34953,26578,27685,20141,24569,31691,19787,33967,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36427,19552,21605,24035,23112,32618,23511,29483,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,29116,19803,24035,24035,24035,27027,26576,23114,23114,23114,31471,23756,22468,23511,23511,23511,34687,23772,22493,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34564,23788,24035,24035,24035,21559,23828,23114,23114,23114,25086,22839,23853,23511,23511,23511,23876,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,31761,23909,23953,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36049,19288,21605,30825,23112,23987,23511,24003,31001,27617,24034,24035,24036,24052,24089,23114,23114,22420,24109,24168,23511,23511,29116,24188,27609,20017,29516,24035,26576,24222,19968,23114,24252,33811,22468,24270,33587,23511,24320,27443,22493,24035,24035,24035,24035,24339,23113,23114,23114,23114,28128,28618,29700,23511,23511,23511,28276,34564,20402,24035,24035,32929,24036,23114,23114,23114,24357,23029,22839,23511,23511,23511,24377,25645,24035,34112,24035,26576,23114,26643,23114,32683,22516,23511,25638,23511,23711,24035,24395,27809,23114,24414,20499,24432,30917,23628,24035,30680,23111,23114,30233,27078,25748,24452,24035,23112,19872,27741,23266,24036,23114,24475,19829,26577,26597,26154,24519,24556,24596,23007,20046,20132,26578,24634,20141,24569,31691,24679,24727,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36412,19288,21605,19943,34861,32618,26027,29483,32016,32050,36233,24776,35574,24801,24819,32671,31289,22420,24868,24886,20087,26849,29116,19803,24035,24035,24035,36228,26576,23114,23114,23114,24981,33811,22468,23511,23511,23511,29028,27443,22493,24923,27965,24035,24035,32797,24946,23443,23114,23114,29636,24997,22849,28252,23511,23511,23511,25042,25110,24035,24035,34085,24036,25133,23114,23114,25152,23029,22839,25169,23511,36764,23511,25645,30403,24035,25186,26576,31806,24093,25212,32683,22516,32713,26245,34293,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,24035,32406,23111,23114,28676,30944,27689,25234,24035,23112,19872,37063,23266,24036,23114,30243,20379,26100,29218,20211,30105,25257,25284,23007,20046,20132,26578,27685,20141,24569,24834,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36034,19288,21671,25314,25072,25330,25346,25362,29939,29951,35288,29984,23812,27216,25405,25424,30456,22584,26292,25461,25480,31592,29116,25516,34963,25545,27007,25579,33937,25614,25661,25686,34872,25702,25718,25734,25769,25795,25811,25840,22493,26533,25856,24035,25876,30763,27481,25909,23114,28987,25936,25954,29700,25983,23511,31412,26043,26063,22568,29241,29592,26116,31216,35383,26170,34783,26194,26221,22839,26241,26261,22477,26283,26308,27306,31035,24655,26576,29854,33386,26341,32683,22516,32153,30926,26361,19996,26381,35463,26397,26424,34646,26478,35605,31386,26494,35567,31964,22940,23689,25218,30309,32289,19830,33605,23112,32109,27733,27084,24496,35886,35221,26525,36602,26549,26558,26574,26594,26613,26629,26666,26700,26578,27685,23740,24285,31691,26733,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36397,19552,18991,25887,28117,32618,26776,29483,29939,26802,24035,24035,24036,28664,23114,23114,23114,22420,30297,23511,23511,23511,29116,19803,24035,24035,24035,25559,26576,23114,23114,23114,30525,33811,22468,23511,23511,23511,28725,27443,22493,24035,24035,27249,24035,24035,23113,23114,23114,26827,23114,28618,29700,23511,23511,26845,23511,34564,20402,24035,24035,26979,24036,23114,23114,23114,24974,23029,22839,23511,23511,23511,26865,25645,24035,24035,24035,26576,23114,23114,23114,32683,22516,23511,23511,23511,23634,24035,24035,23110,23114,23114,20499,23511,23261,23628,33305,24035,25598,23114,19874,34253,27689,19830,24035,23112,19872,27741,23266,24036,23114,26886,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,26931,24569,26439,26947,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36019,19288,26995,24035,23112,32618,23511,31507,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,27043,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,27061,23511,23511,23511,23511,23512,24694,24035,24035,29978,24035,24035,23113,23114,33114,23114,23114,30010,29700,23511,35913,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,27155,26576,23114,23114,30447,23036,29695,23511,23511,30935,20099,24152,25529,27100,34461,27121,22625,29156,26009,27137,30422,31903,31655,28870,27171,32439,31731,19830,27232,22612,27265,26786,25494,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,20342,27288,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,27322,27339,28020,27361,27382,29939,24035,24035,32581,24036,23114,23114,23114,27425,22420,23511,23511,23511,27442,28306,19803,24035,24035,24035,24035,26710,23114,23114,23114,23114,32261,22468,23511,23511,23511,23511,35719,24694,29510,24035,24035,24035,24035,26717,23114,23114,23114,23114,28618,32217,23511,23511,23511,23511,34585,20402,24035,24035,24035,27459,23114,23114,23114,36252,23029,20271,23511,23511,23511,28840,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,27480,34483,28401,29761,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36382,19288,21605,27497,27517,28504,28898,27569,29939,29401,27600,27323,27633,19025,27662,23114,27705,22420,20483,27721,23511,27765,28306,19803,23540,24035,24610,27781,27805,26650,23114,28573,32990,25920,22468,26870,23511,26684,34262,34737,25057,34622,24035,24035,23971,24206,27825,27847,23114,23114,27865,27885,35766,27914,23511,23511,32766,32844,27934,28795,26909,27955,26092,27988,25445,28005,28036,28052,21965,23511,32196,19897,28072,28102,36534,21541,23801,28153,28180,28197,28221,23036,32695,28251,28268,28292,23667,34825,23930,24580,28322,28344,31627,28366,25996,23628,24035,24035,23111,23114,19874,27078,27689,35625,33477,33359,27674,28393,33992,24036,23114,30243,19829,28417,28433,28463,23008,19876,20208,23007,20046,20132,28489,28520,20141,24569,31691,19787,28550,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,24035,23112,32618,23511,31507,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,23512,24694,28589,24035,24035,24035,24035,28608,23114,23114,23114,23114,28618,20431,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36004,19288,28634,31951,28565,28702,28718,28741,32544,20175,28792,32086,20105,28811,29059,29862,28856,22420,28886,30354,23359,28922,28306,28952,23888,26320,36506,24035,29331,28968,36609,23114,29003,31661,27061,30649,27366,23511,29023,27918,24694,24035,24035,23893,33094,30867,23113,23114,23114,29044,34184,30010,29700,23511,23511,29081,29102,34585,20402,27789,24035,24035,24036,23114,29132,23114,23114,23029,20271,23511,29153,23511,23511,30562,30174,24035,24035,27409,25438,23114,23114,29172,36668,31332,23511,23511,29192,30144,24035,23110,30203,23114,23467,31544,23261,23628,24035,22545,23111,23114,29213,27078,27689,29234,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,29257,23008,19876,20208,28768,29290,29320,34776,29353,20141,22435,29378,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36367,19288,21605,34616,19006,32618,31497,31507,36216,20184,24035,34393,29424,34668,23114,34900,29447,22420,30360,23511,37089,29473,28306,19803,29499,24398,24035,24035,26576,31799,29532,29550,23114,33811,22468,32298,29571,31184,23511,23512,37127,36628,29589,24035,24135,24035,23113,29608,23114,27831,29634,28618,29652,30037,23511,24172,29671,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,29555,29690,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,29719,24035,23110,29738,23114,23467,34035,29756,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,29777,34364,28181,30243,29799,31920,27272,27185,23008,31126,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29828,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,35989,19552,19687,35139,28649,29878,29894,29924,29939,23224,23085,31969,24036,35173,24752,24803,23114,22420,31190,30318,24870,23511,28306,29967,23967,24035,24035,24035,26576,3e4,23114,23114,23114,33811,22468,30026,23511,23511,23511,23512,26078,24035,24035,24035,30053,37137,30071,23114,23114,33368,25136,28618,30723,23511,23511,37096,31356,34585,20402,30092,30127,30160,24036,35740,30219,24960,30259,23029,20271,34042,30285,30342,30376,23289,30055,30400,30419,30438,32640,33532,33514,30472,18792,26267,24323,23057,30493,23639,20008,30196,33188,30517,20075,23511,30541,23628,30578,33928,28776,30594,19874,30610,30637,19830,30677,27646,19872,25779,23266,23232,35016,30243,30696,29812,30712,30746,27206,30779,30807,23007,33395,20132,26578,27685,31703,22928,31691,19787,31079,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36352,19288,23335,30841,26131,30888,30904,30986,29939,24035,24704,31017,20025,23114,26178,31051,31095,22420,23511,22524,31142,31172,28534,31206,35497,25196,24035,28592,24503,23114,31239,31285,23114,31305,31321,31355,31372,31407,23511,30556,24694,24035,27501,19805,24035,24035,23113,23114,31428,24066,23114,28618,29700,23511,31837,18809,23511,34585,31448,24035,24035,24035,23090,23114,23114,23114,23114,31619,35038,23511,23511,23511,23511,33714,24035,33085,24035,29431,23114,31467,23114,23143,31487,23511,31523,23511,35195,36783,24035,30111,23567,23114,23467,31543,31560,23628,24035,24035,23111,23114,19874,30953,31584,34508,24035,31608,26345,37055,23266,31643,31677,31719,31747,31786,31822,26898,23008,19876,31859,23007,20046,20132,26578,27685,20141,24569,31691,31878,31936,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,35974,19288,21605,27972,35663,31985,29655,32001,36715,24785,25893,23545,31912,19853,19916,25938,24540,22420,31843,29674,29573,32735,28936,19803,24035,24035,32047,24035,26576,23114,23114,27544,23114,33811,22468,23511,23511,32161,23511,23512,32066,24035,33313,24035,24035,24035,23113,27426,32102,23114,23114,28618,32125,23511,32144,23511,23511,33569,20402,24035,27045,24035,24036,23114,23114,28328,23114,30076,32177,23511,23511,30384,23511,30562,24035,24035,24035,26576,23114,23114,23114,23595,32212,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,22635,25753,32233,32257,32277,19829,26577,26597,20211,23008,19876,32322,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,32352,35285,32380,34196,33016,30661,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,32404,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,32422,23511,23511,23511,23511,23512,24694,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,30269,29700,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,19949,24035,23111,32455,19874,31269,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36337,19552,19209,21617,26509,32475,32491,32529,29939,24035,32578,25241,32597,23114,32634,29007,32656,22420,23511,32729,26365,32751,28306,32788,32882,24035,24035,32813,36727,23114,33182,23114,27553,33235,32829,23511,32706,23511,28906,28377,26962,32881,32904,32898,32920,24035,32953,23114,32977,26408,23114,28164,33006,23511,33039,35774,23511,32306,20402,33076,30872,24035,24036,25408,33110,28979,23114,23029,20271,35835,33130,33054,23511,30562,33148,24035,24035,33167,23114,23114,33775,23036,20459,23511,23511,25464,24646,24035,24035,22446,23114,23114,25627,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,31391,33204,33220,33251,33287,26577,26597,20211,33329,19876,33345,23007,20046,20132,26578,27685,28473,22599,31691,33411,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,35959,19288,21907,27243,29843,32618,33427,31507,29939,33460,34090,24035,24036,33493,24416,33530,23114,22420,33548,24379,33585,23511,28306,19803,33603,24202,24035,24035,25593,33749,28205,23114,23114,32388,22468,33853,33060,23511,23511,31339,33621,24035,24035,34397,24618,30757,33663,23114,23114,33683,35684,28618,26678,23511,23511,32506,33699,34585,20402,24035,32562,26973,24036,23114,23114,33377,33773,23029,20271,23511,23511,30621,23511,23860,24035,33791,21553,26576,36558,23114,33809,23036,32857,26047,23511,33827,23634,24035,24035,23110,23114,23114,31252,23511,33845,23628,24035,24459,23111,23114,33869,27078,30791,29783,24035,24742,19872,33895,23266,26462,19710,33879,33919,26577,26597,24123,24930,21930,20208,30501,33953,25268,20252,33983,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36322,19552,23390,33634,35154,34008,34024,34058,35544,34106,34128,26811,33151,34144,34169,34212,23114,34228,34244,34278,34315,23511,34331,34347,34380,34413,24035,24663,26576,34429,34453,34477,29534,33811,22468,34499,34524,34557,25170,34580,35436,23937,34601,24035,24341,26453,23113,34638,34662,23114,24236,28618,34684,34703,34729,23511,35352,34753,34799,24035,34815,32558,34848,34888,35814,34923,23165,29137,23606,30326,30730,34939,33023,30562,36848,34979,24035,24847,34996,23114,23114,35032,29695,35054,23511,23511,35091,33296,35124,24296,28235,24361,36276,32772,35067,35189,27301,30855,24852,22452,35211,35237,35316,25500,35270,23405,24304,35304,29362,24036,23114,35332,19829,26577,26597,20211,23008,19876,20208,35368,28823,23920,32336,35405,20141,24569,31691,35421,35479,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,35944,22795,21605,33647,35877,35513,30962,35529,34073,35557,24035,24035,20405,31107,23114,23114,23114,35590,34713,23511,23511,23511,35641,19803,29408,32937,25298,24035,35657,23115,27849,24760,35679,26205,22468,23511,35700,24907,24901,35075,31893,34980,24035,24035,24035,24035,23113,35009,23114,23114,23114,28618,35716,30970,23511,23511,23511,34585,23215,24035,24035,24035,24036,35735,23114,23114,23114,27105,35756,35790,23511,23511,23511,35254,35446,24035,24035,31223,35809,23114,23114,23036,36825,35830,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,31031,20355,19872,33903,23266,24036,23114,28686,19829,26577,26597,20211,23008,23424,20208,24711,31065,24486,26578,27685,20141,19773,35851,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36307,19288,21605,35494,19702,32618,33437,31507,29939,25117,24035,27939,24036,27869,23114,26829,23114,22420,23494,23511,33132,23511,28306,19803,24035,34832,24035,24035,26576,23114,25153,23114,23114,33811,22468,23511,23511,35911,23511,23512,24694,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,35929,19288,21605,25860,23112,36185,23511,36201,29939,24035,24035,24035,24036,23114,23114,23114,23114,22420,23511,23511,23511,23511,28306,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,23512,26748,24035,24035,24035,24035,24035,36249,23114,23114,23114,23114,28618,28835,23511,23511,23511,23511,34585,20402,24035,27151,24035,26760,23114,27989,23114,23114,36268,20271,23511,24436,23511,29703,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36292,19288,21605,36503,21922,32618,34534,31507,36522,24035,33793,24035,35864,23114,23114,36555,23417,22420,23511,23511,36574,26020,28306,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,33811,22468,23511,23511,23511,23511,23512,36592,24035,24035,36625,24035,24035,23113,23114,32961,23114,23114,29618,29700,23511,29086,23511,23511,34585,20402,36644,24035,24035,24036,29740,23114,23114,23114,29065,36663,31527,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36079,19288,21605,31451,23112,36684,23511,36700,29939,24035,24035,24035,30185,23114,23114,23114,27526,22420,23511,23511,23511,32865,28306,19803,36743,24035,27017,24035,26576,27535,23114,31432,23114,33811,22468,33271,23511,32128,23511,23512,24694,24035,27196,24035,24035,24035,23113,32459,23114,23114,23114,28618,29700,33829,36762,23511,23511,34585,20402,24035,36746,24035,29722,23114,23114,34437,23114,34907,20271,23511,23511,18801,23511,23206,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,36837,24035,24035,33739,23114,23114,25094,23511,23261,23628,24035,36780,23111,24073,19874,27078,35344,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22720,19288,36799,36866,17466,36890,36864,21991,22211,22987,17556,17575,22288,17486,17509,17525,18373,17631,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,36883,36906,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,22705,19288,19457,36866,17466,36890,36866,19375,22971,22987,17556,17575,22288,17486,17509,17525,18373,18855,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36124,19288,36951,36866,17466,36890,36866,21991,22404,22987,17556,17575,22288,17486,17509,17525,18373,18567,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,36979,36995,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36139,19288,19457,36866,17466,36890,36866,21991,22971,22987,17556,17575,22288,17486,17509,17525,18373,18027,22984,17553,17572,22285,18462,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,17619,22083,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,36139,19288,21529,24035,23112,23033,23511,31507,25377,24035,24035,24035,24036,23114,23114,23114,23114,37040,23511,23511,23511,23511,28086,19803,24035,24035,24035,24035,26576,23114,23114,23114,23114,24254,37079,23511,23511,23511,23511,23512,34766,24035,24035,24035,24035,24035,23113,23114,23114,23114,23114,28618,29700,23511,23511,23511,23511,34585,20402,24035,24035,24035,24036,23114,23114,23114,23114,23029,20271,23511,23511,23511,23511,30562,24035,24035,24035,26576,23114,23114,23114,23036,29695,23511,23511,23511,23634,24035,24035,23110,23114,23114,23467,23511,23261,23628,24035,24035,23111,23114,19874,27078,27689,19830,24035,23112,19872,27741,23266,24036,23114,30243,19829,26577,26597,20211,23008,19876,20208,23007,20046,20132,26578,27685,20141,24569,31691,19787,29304,20268,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,37112,37160,18469,36866,17466,36890,36866,17656,37174,22987,17556,17575,22288,17486,17509,17525,18373,18537,22984,17553,17572,22285,18780,17990,18622,19411,20306,17996,17689,17470,17591,20896,17468,36883,36906,36867,19404,20299,36866,17647,17862,18921,19514,17705,20311,37017,17728,17756,17784,17800,17825,17854,18403,18928,19521,17712,37008,37024,17878,18884,17900,17922,17944,18178,17960,18012,18381,18064,18218,17884,18890,17906,17928,18102,25022,18130,36931,36963,17493,18150,18166,18214,25010,25026,18134,36935,18262,18278,18294,18320,18336,18361,18397,18274,22096,18304,18448,18485,18523,18553,18583,19149,18638,18497,19656,18664,18680,18507,18696,19164,18712,18737,17681,22026,20906,20915,22054,17838,17450,22022,18765,19225,18841,18871,18906,19241,19257,18976,19041,19056,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,19058,53264,18,49172,57366,24,8192,28,102432,127011,110630,114730,106539,127011,127011,127011,53264,18,18,0,0,57366,0,24,24,24,0,28,28,28,28,102432,0,0,127011,0,2220032,110630,0,0,0,114730,106539,0,2170880,2170880,2170880,2170880,0,0,0,2170880,2170880,2170880,3002368,2170880,2170880,2170880,2170880,2170880,2170880,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2576384,2215936,2215936,2215936,2416640,2424832,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2543616,2215936,2215936,2215936,2215936,2215936,2629632,2215936,2617344,2215936,2215936,2215936,2215936,2215936,2215936,2691072,2215936,2707456,2215936,2715648,2215936,2723840,2764800,2215936,2215936,2797568,2215936,2822144,2215936,2215936,2854912,2215936,2215936,2215936,2912256,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,180224,0,0,2174976,0,0,2170880,2617344,2170880,2170880,2170880,2170880,2170880,2170880,2691072,2170880,2707456,2170880,2715648,2170880,2723840,2764800,2170880,2170880,2797568,2170880,2170880,2797568,2170880,2822144,2170880,2170880,2854912,2170880,2170880,2170880,2912256,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2215936,2215936,2215936,2215936,2609152,2215936,2215936,2215936,2215936,2215936,2215936,2654208,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,184599,280,0,2174976,0,0,2215936,3117056,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,544,0,546,0,0,2179072,0,0,0,552,0,0,2170880,2170880,2170880,3117056,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,0,0,0,2158592,2158592,2232320,2232320,0,2240512,2240512,0,0,0,644,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,3129344,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2215936,2215936,2215936,2400256,2215936,2215936,2215936,2215936,2711552,2170880,2170880,2170880,2170880,2170880,2760704,2768896,2789376,2813952,2170880,2170880,2170880,2875392,2904064,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2453504,2457600,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,167936,0,0,0,0,2174976,0,0,2215936,2215936,2514944,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2592768,2215936,2215936,2215936,2215936,2215936,2215936,2215936,32768,0,0,0,0,0,2174976,32768,0,2633728,2215936,2215936,2215936,2215936,2215936,2215936,2711552,2215936,2215936,2215936,2215936,2215936,2760704,2768896,2789376,2813952,2215936,2215936,2215936,2875392,2904064,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,0,0,0,2174976,0,65819,2215936,2215936,3031040,2215936,3055616,2215936,2215936,2215936,2215936,3092480,2215936,2215936,3125248,2215936,2215936,2215936,2215936,2215936,2215936,3002368,2215936,2215936,2170880,2170880,2494464,2170880,2170880,0,0,2215936,2215936,2215936,2215936,2215936,2215936,3198976,2215936,0,0,0,0,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,0,0,0,2379776,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2445312,2170880,2465792,2473984,2170880,2170880,2170880,2170880,2170880,2170880,2523136,2170880,2170880,2641920,2170880,2170880,2170880,2699264,2170880,2727936,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2879488,2170880,2916352,2170880,2170880,2170880,2879488,2170880,2916352,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3026944,2170880,2170880,3063808,2170880,2170880,3112960,2170880,2170880,3133440,2170880,2170880,3112960,2170880,2170880,3133440,2170880,2170880,2170880,3162112,2170880,2170880,3182592,3186688,2170880,2379776,2215936,2523136,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2596864,2215936,2621440,2215936,2215936,2641920,2215936,2215936,0,0,0,0,0,0,2179072,548,0,0,0,0,287,2170880,0,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3117056,2170880,2170880,2170880,2170880,2215936,2215936,2699264,2215936,2727936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2879488,2215936,2916352,2215936,2215936,0,0,0,0,188416,0,2179072,0,0,0,0,0,287,2170880,0,2171019,2171019,2171019,2400395,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3031179,2171019,3055755,2171019,2171019,2215936,3133440,2215936,2215936,2215936,3162112,2215936,2215936,3182592,3186688,2215936,0,0,0,0,0,0,0,0,0,0,2171019,2171019,2171019,2171019,2171019,2171019,2523275,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2597003,2171019,2621579,2170880,2170880,2170880,3162112,2170880,2170880,3182592,3186688,2170880,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,0,18,18,24,24,0,4337664,28,2170880,2170880,2170880,2629632,2170880,2170880,2170880,2170880,2719744,2744320,2170880,2170880,2170880,2834432,2838528,2170880,2908160,2170880,2170880,2936832,2215936,2215936,2215936,2215936,2719744,2744320,2215936,2215936,2215936,2834432,2838528,2215936,2908160,2215936,2215936,2936832,2215936,2215936,2985984,2215936,2994176,2215936,2215936,3014656,2215936,3059712,3076096,3088384,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2445312,2215936,2465792,2473984,2215936,2215936,2215936,2215936,2215936,2215936,2171166,2171166,2171166,2171166,2171166,0,0,0,2171166,2171166,2171166,2171166,2171166,2171166,2171019,2171019,2494603,2171019,2171019,2215936,2215936,2215936,3215360,0,0,0,0,0,0,0,0,0,0,0,0,0,2379776,2170880,2170880,2170880,2170880,2985984,2170880,2994176,2170880,2170880,3016168,2170880,3059712,3076096,3088384,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,0,18,18,124,124,0,128,128,2170880,2170880,2170880,3215360,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2486272,2170880,2170880,2506752,2170880,2170880,2170880,2535424,2539520,2170880,2170880,2588672,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2920448,2170880,2170880,2170880,2990080,2170880,2170880,2170880,2170880,3051520,2170880,2170880,2170880,2170880,2170880,2170880,3170304,0,2387968,2392064,2170880,2170880,2433024,2170880,2170880,2170880,3170304,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2486272,2215936,2215936,2506752,2215936,2215936,2215936,2535424,2539520,2215936,2215936,2588672,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,0,0,0,2174976,136,0,2215936,2215936,2920448,2215936,2215936,2215936,2990080,2215936,2215936,2215936,2215936,3051520,2215936,2215936,2215936,2215936,2215936,2215936,2215936,3108864,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,3026944,2215936,2215936,3063808,2215936,2215936,3112960,2215936,2215936,2215936,3170304,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2453504,2457600,2170880,2170880,2170880,2486272,2170880,2170880,2506752,2170880,2170880,2170880,2537049,2539520,2170880,2170880,2588672,2170880,2170880,2170880,1508,2170880,2170880,2170880,1512,2170880,2920448,2170880,2170880,2170880,2990080,2170880,2170880,2170880,2461696,2170880,2170880,2170880,2510848,2170880,2170880,2170880,2170880,2580480,2170880,2605056,2637824,2170880,2170880,18,0,0,0,0,0,0,0,0,2220032,0,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2686976,2748416,2170880,2170880,2170880,2924544,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3121152,2170880,2170880,3145728,3158016,3166208,2170880,2420736,2428928,2170880,2478080,2170880,2170880,2170880,2170880,0,0,2170880,2170880,2170880,2170880,2646016,2670592,0,0,3145728,3158016,3166208,2387968,2392064,2215936,2215936,2433024,2215936,2461696,2215936,2215936,2215936,2510848,2215936,2215936,0,0,0,0,0,0,2179072,0,0,0,0,0,0,2170880,2215936,2215936,2580480,2215936,2605056,2637824,2215936,2215936,2686976,2748416,2215936,2215936,2215936,2924544,2215936,2215936,0,0,0,0,0,0,2179072,0,0,0,0,0,286,2170880,2215936,2215936,2215936,2215936,2215936,3121152,2215936,2215936,3145728,3158016,3166208,2387968,2392064,2170880,2170880,2433024,2170880,2461696,2170880,2170880,2170880,2510848,2170880,2170880,1625,2170880,2170880,2580480,2170880,2605056,2637824,2170880,647,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2576384,2170880,2170880,2170880,2170880,2170880,2609152,2170880,2170880,2686976,0,0,2748416,2170880,2170880,0,2170880,2924544,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,0,18,18,24,0,0,28,28,2170880,3141632,2215936,2420736,2428928,2215936,2478080,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2646016,2670592,2752512,2756608,2846720,2961408,2215936,2998272,2215936,3010560,2215936,2215936,2215936,3141632,2170880,2420736,2428928,2752512,2756608,0,2846720,2961408,2170880,2998272,2170880,3010560,2170880,2170880,2170880,3141632,2170880,2170880,2490368,2215936,2490368,2215936,2215936,2215936,2547712,2555904,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,0,0,0,2174976,245760,0,3129344,2170880,2170880,2490368,2170880,2170880,2170880,0,0,2547712,2555904,2170880,2170880,2170880,0,0,0,0,0,0,0,0,0,2220032,0,0,45056,0,2584576,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2170880,2170880,2170880,2170880,0,0,0,2170880,2170880,2158592,0,0,0,0,0,0,0,0,2220032,0,0,0,0,0,0,0,0,1482,97,97,97,97,97,97,97,1354,97,97,97,97,97,97,97,97,1148,97,97,97,97,97,97,97,2584576,2170880,2170880,1512,0,2170880,2170880,2170880,2170880,2170880,2170880,2441216,2170880,2527232,2170880,2600960,2170880,2850816,2170880,2170880,2170880,3022848,2215936,2441216,2215936,2527232,2215936,2600960,2215936,2850816,2215936,2215936,0,0,0,0,0,0,2179072,0,0,0,0,0,287,2170880,2215936,3022848,2170880,2441216,2170880,2527232,0,0,2170880,2600960,2170880,0,2850816,2170880,2170880,2170880,2170880,2170880,2523136,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2596864,2170880,2621440,2170880,2170880,2641920,2170880,2170880,2170880,3022848,2170880,2519040,2170880,2170880,2170880,2170880,2170880,2215936,2519040,2215936,2215936,2215936,2215936,2215936,2170880,2170880,2170880,2453504,2457600,2170880,2170880,2170880,2170880,2170880,2170880,2514944,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2592768,2170880,2170880,2519040,0,2024,2170880,2170880,0,2170880,2170880,2170880,2396160,2170880,2170880,2170880,2170880,3018752,2396160,2215936,2215936,2215936,2215936,3018752,2396160,0,2024,2170880,2170880,2170880,2170880,3018752,2170880,2650112,2965504,2170880,2215936,2650112,2965504,2215936,0,0,2170880,2650112,2965504,2170880,2551808,2170880,2551808,2215936,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,141,45,45,67,67,67,67,67,224,67,67,238,67,67,67,67,67,67,67,1288,67,67,67,67,67,67,67,67,67,469,67,67,67,67,67,67,0,2551808,2170880,2170880,2215936,0,2170880,2170880,2215936,0,2170880,2170880,2215936,0,2170880,2977792,2977792,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53264,18,49172,57366,24,8192,29,102432,127011,110630,114730,106539,127011,127011,127011,53264,18,18,49172,0,0,0,24,24,24,0,28,28,28,28,102432,127,0,0,0,0,0,0,0,0,0,0,140,2170880,2170880,2170880,2416640,0,0,0,0,2220032,110630,0,0,0,114730,106539,136,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,0,4256099,4256099,24,24,0,28,28,2170880,2461696,2170880,2170880,2170880,2510848,2170880,2170880,0,2170880,2170880,2580480,2170880,2605056,2637824,2170880,2170880,2170880,2547712,2555904,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3129344,2215936,2215936,543,543,545,545,0,0,2179072,0,550,551,551,0,287,2171166,2171166,18,0,0,0,0,0,0,0,0,2220032,0,0,645,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,149,2584576,2170880,2170880,0,0,2170880,2170880,2170880,2170880,2170880,2170880,2441216,2170880,2527232,2170880,2600960,2519040,0,0,2170880,2170880,0,2170880,2170880,2170880,2396160,2170880,2170880,2170880,2170880,3018752,2396160,2215936,2215936,2215936,2215936,3018752,2396160,0,0,2170880,2170880,2170880,2170880,3018752,2170880,2650112,2965504,53264,18,49172,57366,24,155648,28,102432,155648,155687,114730,106539,0,0,155648,53264,18,18,49172,0,57366,0,24,24,24,0,28,28,28,28,102432,0,0,0,0,2220032,0,94208,0,0,114730,106539,0,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,208896,18,278528,24,24,0,28,28,53264,18,159765,57366,24,8192,28,102432,0,110630,114730,106539,0,0,0,53264,18,18,49172,0,57366,0,24,24,24,0,28,139394,28,28,102432,131,0,0,0,2220032,110630,0,0,0,114730,106539,0,2170880,2170880,2170880,2170880,2170880,2170880,32768,53264,0,18,18,24,24,0,28,28,0,546,0,0,2183168,0,0,552,832,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,2170880,2609152,2170880,2170880,2170880,2170880,2170880,2170880,2654208,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2215936,2215936,2215936,2215936,2215936,2215936,3198976,2215936,0,1084,0,1088,0,1092,0,0,0,0,0,41606,0,0,0,0,45,45,45,45,45,937,0,0,0,0,2220032,110630,0,0,0,114730,106539,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3198976,2170880,0,0,644,0,0,0,2215936,3117056,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,826,0,828,0,0,2183168,0,0,830,0,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,2592768,2170880,2170880,2170880,2170880,2633728,2170880,2170880,2170880,2170880,2170880,2170880,2711552,2170880,2170880,2170880,2170880,2170880,2760704,53264,18,49172,57366,24,8192,28,172066,172032,110630,172066,106539,0,0,172032,53264,18,18,49172,0,57366,0,24,24,24,16384,28,28,28,28,102432,0,98304,0,0,2220032,110630,0,0,0,0,106539,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3198976,2170880,0,0,45056,0,0,0,53264,18,49172,57366,25,8192,30,102432,0,110630,114730,106539,0,0,176219,53264,18,18,49172,0,57366,0,124,124,124,0,128,128,128,128,102432,128,0,0,0,0,0,0,0,0,0,0,140,2170880,2170880,2170880,2416640,0,546,0,0,2183168,0,65536,552,0,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,2646016,2670592,2752512,2756608,2846720,2961408,2170880,2998272,2170880,3010560,2170880,2170880,2215936,2215936,2215936,2215936,2215936,2215936,3198976,2215936,0,0,0,0,0,0,65536,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,143,45,45,67,67,67,67,67,227,67,67,67,67,67,67,67,67,67,1824,67,1826,67,67,67,67,17,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,32768,120,121,18,18,49172,0,57366,0,24,24,24,0,28,28,28,28,102432,67,67,37139,37139,24853,24853,0,0,2179072,548,0,65820,65820,0,287,97,0,0,97,97,0,97,97,97,45,45,45,45,2033,45,67,67,67,67,0,0,97,97,97,97,45,45,67,67,0,369,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,978,0,546,70179,0,2183168,0,0,552,0,97,97,97,97,97,97,97,45,45,45,45,45,45,45,45,45,45,67,67,67,67,67,1013,67,67,67,67,67,67,67,67,67,67,473,67,67,67,67,483,67,67,1025,67,67,67,67,67,67,67,67,67,67,67,67,67,97,97,97,97,97,0,0,97,97,97,97,1119,97,97,97,97,97,97,97,97,97,97,97,97,1359,97,97,97,67,67,1584,67,67,67,67,67,67,67,67,67,67,67,67,67,497,67,67,1659,45,45,45,45,45,45,45,45,45,1667,45,45,45,45,45,169,45,45,45,45,45,45,45,45,45,45,45,1668,45,45,45,45,67,67,1694,67,67,67,67,67,67,67,67,67,67,67,67,67,774,67,67,1713,97,97,97,97,97,97,97,0,97,97,1723,97,97,97,97,0,45,45,45,45,45,45,1538,45,45,45,45,45,1559,45,45,1561,45,45,45,45,45,45,45,687,45,45,45,45,45,45,45,45,448,45,45,45,45,45,45,67,67,67,67,1771,1772,67,67,67,67,67,67,67,67,97,97,97,97,0,0,0,97,67,67,67,67,67,1821,67,67,67,67,67,67,1827,67,67,67,0,0,0,0,0,0,97,97,1614,97,97,97,97,97,603,97,97,605,97,97,608,97,97,97,97,0,1532,45,45,45,45,45,45,45,45,45,45,450,45,45,45,45,67,67,97,97,97,97,97,97,0,0,1839,97,97,97,97,0,0,97,97,97,97,97,45,45,45,45,45,45,45,67,67,67,67,67,67,67,97,1883,97,1885,97,0,1888,0,97,97,0,97,97,1848,97,97,97,97,1852,45,45,45,45,45,45,45,384,391,45,45,45,45,45,45,45,385,45,45,45,45,45,45,45,45,1237,45,45,45,45,45,45,67,0,97,97,97,97,0,0,0,97,97,97,97,97,97,45,45,45,45,45,45,45,1951,45,45,45,45,45,45,45,45,67,67,67,67,1963,97,2023,0,97,97,0,97,97,97,45,45,45,45,45,45,67,67,1994,67,1995,67,67,67,67,67,67,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,97,97,0,0,0,0,2220032,110630,0,0,0,114730,106539,137,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2793472,2805760,2170880,2830336,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3031040,2170880,3055616,2170880,2170880,67,67,37139,37139,24853,24853,0,0,281,549,0,65820,65820,0,287,97,0,0,97,97,0,97,97,97,45,45,2031,2032,45,45,67,67,67,67,67,67,67,67,67,67,67,67,1769,67,0,546,70179,549,549,0,0,552,0,97,97,97,97,97,97,97,45,45,45,45,45,45,1858,45,641,0,0,0,0,41606,926,0,0,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,456,67,0,0,0,1313,0,0,0,1096,1319,0,0,0,0,97,97,97,97,97,97,97,97,1110,97,97,97,97,67,67,67,67,1301,1476,0,0,0,0,1307,1478,0,0,0,0,0,0,0,0,97,97,97,97,1486,97,1487,97,1313,1480,0,0,0,0,1319,0,97,97,97,97,97,97,97,97,97,566,97,97,97,97,97,97,67,67,67,1476,0,1478,0,1480,0,97,97,97,97,97,97,97,45,1853,45,1855,45,45,45,45,53264,18,49172,57366,26,8192,31,102432,0,110630,114730,106539,0,0,225368,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,32768,53264,18,18,49172,163840,57366,0,24,24,229376,0,28,28,28,229376,102432,0,0,0,0,2220167,110630,0,0,0,114730,106539,0,2171019,2171019,2171019,2171019,2592907,2171019,2171019,2171019,2171019,2633867,2171019,2171019,2171019,2171019,2171019,2171019,2654347,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3117195,2171019,2171019,2171019,2171019,2240641,0,0,0,0,0,0,0,0,368,0,140,2171019,2171019,2171019,2416779,2424971,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2617483,2171019,2171019,2642059,2171019,2171019,2171019,2699403,2171019,2728075,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3215499,2215936,2215936,2215936,2215936,2215936,2437120,2215936,2215936,2171019,2822283,2171019,2171019,2855051,2171019,2171019,2171019,2912395,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3002507,2171019,2171019,2215936,2215936,2494464,2215936,2215936,2215936,2171166,2171166,2416926,2425118,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2576670,2171166,2617630,2171166,2171166,2171166,2171166,2171166,2171166,2691358,2171166,2707742,2171166,2715934,2171166,2724126,2765086,2171166,2171166,2797854,2171166,2822430,2171166,2171166,2855198,2171166,2171166,2171166,2912542,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2793758,2806046,2171166,2830622,2171166,2171166,2171166,2171166,2171166,2171166,2171166,3109150,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2543902,2171166,2171166,2171166,2171166,2171166,2629918,2793611,2805899,2171019,2830475,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,0,546,0,0,2183168,0,0,552,0,2171166,2171166,2171166,2400542,2171166,2171166,2171166,0,2171166,2171166,2171166,0,2171166,2920734,2171166,2171166,2171166,2990366,2171166,2171166,2171166,2171166,3117342,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,0,53264,0,18,18,4329472,2232445,0,2240641,4337664,2711691,2171019,2171019,2171019,2171019,2171019,2760843,2769035,2789515,2814091,2171019,2171019,2171019,2875531,2904203,2171019,2171019,3092619,2171019,2171019,3125387,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3199115,2171019,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2453504,2457600,2215936,2215936,2215936,2215936,2215936,2215936,2793472,2805760,2215936,2830336,2215936,2215936,2215936,2215936,2215936,2215936,2170880,2170880,2170880,2170880,2170880,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2494464,2170880,2170880,2171166,2171166,2634014,2171166,2171166,2171166,2171166,2171166,2171166,2711838,2171166,2171166,2171166,2171166,2171166,2760990,2769182,2789662,2814238,2171166,2171166,2171166,2875678,2904350,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,3199262,2171166,0,0,0,0,0,0,0,0,0,2379915,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2445451,2171019,2465931,2474123,2171019,2171019,3113099,2171019,2171019,3133579,2171019,2171019,2171019,3162251,2171019,2171019,3182731,3186827,2171019,2379776,2879627,2171019,2916491,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3027083,2171019,2171019,3063947,2699550,2171166,2728222,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2879774,2171166,2916638,2171166,2171166,2171166,2171166,2171166,2609438,2171166,2171166,2171166,2171166,2171166,2171166,2654494,2171166,2171166,2171166,2171166,2171166,2445598,2171166,2466078,2474270,2171166,2171166,2171166,2171166,2171166,2171166,2523422,2171019,2437259,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2543755,2171019,2171019,2171019,2584715,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2908299,2171019,2171019,2936971,2171019,2171019,2986123,2171019,2994315,2171019,2171019,3014795,2171019,3059851,3076235,3088523,2171166,2171166,2986270,2171166,2994462,2171166,2171166,3014942,2171166,3059998,3076382,3088670,2171166,2171166,2171166,2171166,2171166,2171166,3027230,2171166,2171166,3064094,2171166,2171166,3113246,2171166,2171166,3133726,2506891,2171019,2171019,2171019,2535563,2539659,2171019,2171019,2588811,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2691211,2171019,2707595,2171019,2715787,2171019,2723979,2764939,2171019,2171019,2797707,2215936,2215936,3170304,0,0,0,0,0,0,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2453790,2457886,2171166,2171166,2171166,2486558,2171166,2171166,2507038,2171166,2171166,2171166,2535710,2539806,2171166,2171166,2588958,2171166,2171166,2171166,2171166,2515230,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2593054,2171166,2171166,2171166,2171166,3051806,2171166,2171166,2171166,2171166,2171166,2171166,3170590,0,2388107,2392203,2171019,2171019,2433163,2171019,2461835,2171019,2171019,2171019,2510987,2171019,2171019,2171019,2171019,2580619,2171019,2605195,2637963,2171019,2171019,2171019,2920587,2171019,2171019,2171019,2990219,2171019,2171019,2171019,2171019,3051659,2171019,2171019,2171019,2453643,2457739,2171019,2171019,2171019,2171019,2171019,2171019,2515083,2171019,2171019,2171019,2171019,2646155,2670731,2752651,2756747,2846859,2961547,2171019,2998411,2171019,3010699,2171019,2171019,2687115,2748555,2171019,2171019,2171019,2924683,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3121291,2171019,2171019,2171019,3170443,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2486272,2215936,2215936,2506752,3145867,3158155,3166347,2387968,2392064,2215936,2215936,2433024,2215936,2461696,2215936,2215936,2215936,2510848,2215936,2215936,0,0,0,0,0,0,2179072,0,0,0,0,0,553,2170880,2215936,2215936,2215936,2215936,2215936,3121152,2215936,2215936,3145728,3158016,3166208,2388254,2392350,2171166,2171166,2433310,2171166,2461982,2171166,2171166,2171166,2511134,2171166,2171166,0,2171166,2171166,2580766,2171166,2605342,2638110,2171166,2171166,2171166,2171166,3031326,2171166,3055902,2171166,2171166,2171166,2171166,3092766,2171166,2171166,3125534,2171166,2171166,2171166,3162398,2171166,2171166,3182878,3186974,2171166,0,0,0,2171019,2171019,2171019,2171019,3109003,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2215936,2215936,2215936,2400256,2215936,2215936,2215936,2215936,2171166,2687262,0,0,2748702,2171166,2171166,0,2171166,2924830,2171166,2171166,2171166,2171166,2171166,2171166,2171166,2597150,2171166,2621726,2171166,2171166,2642206,2171166,2171166,2171166,2171166,3121438,2171166,2171166,3146014,3158302,3166494,2171019,2420875,2429067,2171019,2478219,2171019,2171019,2171019,2171019,2547851,2556043,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,3129483,2215936,2171019,3141771,2215936,2420736,2428928,2215936,2478080,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2646016,2670592,2752512,2756608,2846720,2961408,2215936,2998272,2215936,3010560,2215936,2215936,2215936,3141632,2171166,2421022,2429214,2171166,2478366,2171166,2171166,2171166,2171166,0,0,2171166,2171166,2171166,2171166,2646302,2670878,0,0,0,0,37,110630,0,0,0,114730,106539,0,45,45,45,45,45,1405,1406,45,45,45,45,1409,45,45,45,45,45,1415,45,45,45,45,45,45,45,45,45,45,1238,45,45,45,45,67,2752798,2756894,0,2847006,2961694,2171166,2998558,2171166,3010846,2171166,2171166,2171166,3141918,2171019,2171019,2490507,3129344,2171166,2171166,2490654,2171166,2171166,2171166,0,0,2547998,2556190,2171166,2171166,2171166,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,45,167,45,45,45,45,185,187,45,45,198,45,45,0,2171166,2171166,2171166,2171166,2171166,2171166,3129630,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2576523,2171019,2171019,2171019,2171019,2171019,2609291,2171019,2215936,2215936,2215936,2215936,2215936,2215936,3002368,2215936,2215936,2171166,2171166,2494750,2171166,2171166,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,147,2584576,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2171166,2171166,2171166,2171166,0,0,0,2171166,2171166,2171166,2171166,0,0,0,2171166,2171166,2171166,3002654,2171166,2171166,2171019,2171019,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,0,0,0,2175257,0,0,2584862,2171166,2171166,0,0,2171166,2171166,2171166,2171166,2171166,2171019,2441355,2171019,2527371,2171019,2601099,2171019,2850955,2171019,2171019,2171019,3022987,2215936,2441216,2215936,2527232,2215936,2600960,2215936,2850816,2215936,2215936,0,0,0,0,0,0,2179072,0,0,0,0,69632,287,2170880,2215936,3022848,2171166,2441502,2171166,2527518,0,0,2171166,2601246,2171166,0,2851102,2171166,2171166,2171166,2171166,2720030,2744606,2171166,2171166,2171166,2834718,2838814,2171166,2908446,2171166,2171166,2937118,3023134,2171019,2519179,2171019,2171019,2171019,2171019,2171019,2215936,2519040,2215936,2215936,2215936,2215936,2215936,2171166,2171166,2171166,3215646,0,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2171019,2486411,2171019,2171019,2171019,2629771,2171019,2171019,2171019,2171019,2719883,2744459,2171019,2171019,2171019,2834571,2838667,2171019,2519326,0,0,2171166,2171166,0,2171166,2171166,2171166,2396299,2171019,2171019,2171019,2171019,3018891,2396160,2215936,2215936,2215936,2215936,3018752,2396446,0,0,2171166,2171166,2171166,2171166,3019038,2171019,2650251,2965643,2171019,2215936,2650112,2965504,2215936,0,0,2171166,2650398,2965790,2171166,2551947,2171019,2551808,2215936,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,144,45,45,67,67,67,67,67,228,67,67,67,67,67,67,67,67,67,1929,97,97,97,97,0,0,0,2552094,2171166,2171019,2215936,0,2171166,2171019,2215936,0,2171166,2171019,2215936,0,2171166,2977931,2977792,2978078,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,1321,97,131072,0,0,0,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,0,18,18,24,24,0,28,28,0,140,0,2379776,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2445312,2170880,2465792,2473984,2170880,2170880,2170880,2584576,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2170880,2170880,2170880,3162112,2170880,2170880,3182592,3186688,2170880,0,140,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3002368,2170880,2170880,2215936,2215936,2494464,2215936,2215936,2215936,2215936,2215936,2215936,3215360,544,0,0,0,544,0,546,0,0,0,546,0,0,2183168,0,0,552,0,2170880,2170880,2170880,2400256,2170880,2170880,2170880,0,2170880,2170880,2170880,0,2170880,2920448,2170880,2170880,2170880,2990080,2170880,2170880,552,0,0,0,552,0,287,0,2170880,2170880,2170880,2170880,2170880,2437120,2170880,2170880,18,0,0,0,0,0,0,0,0,2220032,0,0,644,0,2215936,2215936,3170304,544,0,546,0,552,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3198976,2170880,0,0,0,140,0,0,53264,18,49172,57366,24,8192,28,102432,249856,110630,114730,106539,0,0,32768,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,151640,53264,18,18,49172,0,57366,0,24,24,24,0,28,28,28,28,0,0,0,0,0,0,0,0,0,0,0,2170880,2170880,2170880,2416640,53264,18,49172,57366,24,8192,28,102432,253952,110630,114730,106539,0,0,32856,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,192512,53264,18,18,49172,0,57366,0,2232445,184320,2232445,0,2240641,2240641,184320,2240641,102432,0,0,0,221184,2220032,110630,0,0,0,114730,106539,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3108864,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2215936,0,0,0,45056,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,0,53264,0,18,18,24,24,0,127,127,53264,18,49172,258071,24,8192,28,102432,0,110630,114730,106539,0,0,32768,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,204800,53264,18,49172,57366,24,27,28,102432,0,110630,114730,106539,0,0,0,53264,18,49172,57366,24,8192,28,33,0,33,33,33,0,0,0,53264,18,18,49172,0,57366,0,24,24,24,16384,28,28,28,28,0,0,0,0,0,0,0,0,0,0,139,2170880,2170880,2170880,2416640,67,67,37139,37139,24853,24853,0,70179,0,0,0,65820,65820,369,287,97,0,0,97,97,0,97,97,97,45,2030,45,45,45,45,67,1573,67,67,67,67,67,67,67,67,67,67,67,1699,67,67,67,67,25403,546,70179,0,0,66365,66365,552,0,97,97,97,97,97,97,97,97,1355,97,97,97,1358,97,97,97,641,0,0,0,925,41606,0,0,0,0,45,45,45,45,45,45,45,1187,45,45,45,45,45,0,1480,0,0,0,0,1319,0,97,97,97,97,97,97,97,97,97,592,97,97,97,97,97,97,97,97,97,97,1531,45,45,45,45,45,45,45,45,45,45,45,45,1680,45,45,45,641,0,924,0,925,41606,0,0,0,0,45,45,45,45,45,45,1186,45,45,45,45,45,45,67,67,37139,37139,24853,24853,0,70179,282,0,0,65820,65820,369,287,97,0,0,97,97,0,97,2028,97,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,1767,67,67,67,0,0,0,0,0,0,1612,97,97,97,97,97,97,0,1785,97,97,97,97,97,97,0,0,97,97,97,97,1790,97,0,0,2170880,2170880,3051520,2170880,2170880,2170880,2170880,2170880,2170880,3170304,241664,2387968,2392064,2170880,2170880,2433024,53264,19,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,274432,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,270336,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,1134711,53264,18,49172,57366,24,8192,28,102432,0,1126440,1126440,1126440,0,0,1126400,53264,18,49172,57366,24,8192,28,102432,36,110630,114730,106539,0,0,217088,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,94,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,96,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,24666,53264,18,18,49172,0,57366,0,24,24,24,126,28,28,28,28,102432,53264,122,123,49172,0,57366,0,24,24,24,0,28,28,28,28,102432,2170880,2170880,4256099,0,0,0,0,0,0,0,0,2220032,0,0,0,0,0,0,0,0,1319,0,0,0,0,97,97,97,97,97,97,97,1109,97,97,97,97,1113,132,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,146,150,45,45,45,45,45,175,45,180,45,186,45,189,45,45,203,67,256,67,67,270,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,97,293,297,97,97,97,97,97,322,97,327,97,333,97,0,0,97,2026,0,2027,97,97,45,45,45,45,45,45,67,67,67,1685,67,67,67,67,67,67,67,1690,67,336,97,97,350,97,97,0,53264,0,18,18,24,24,356,28,28,0,0,0,0,0,0,0,0,0,0,140,2170880,2170880,2170880,2416640,2424832,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2617344,2170880,45,439,45,45,45,45,45,45,45,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,525,67,67,67,67,67,67,67,67,67,67,67,0,0,0,0,0,0,0,0,0,0,0,0,97,97,97,97,622,97,97,97,97,97,97,97,97,97,97,97,97,1524,97,97,1527,369,648,45,45,45,45,45,45,45,45,45,659,45,45,45,45,408,45,45,45,45,45,45,45,45,45,45,45,1239,45,45,45,67,729,45,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,762,67,746,67,67,67,67,67,67,67,67,67,759,67,67,67,67,0,0,0,1477,0,1086,0,0,0,1479,0,1090,67,67,796,67,67,799,67,67,67,67,67,67,67,67,67,67,67,67,1291,67,67,67,811,67,67,67,67,67,816,67,67,67,67,67,67,67,37689,544,25403,546,70179,0,0,66365,66365,552,833,97,97,97,97,97,97,97,97,1380,0,0,0,45,45,45,45,45,1185,45,45,45,45,45,45,45,386,45,45,45,45,45,45,45,45,1810,45,45,45,45,45,45,67,97,97,844,97,97,97,97,97,97,97,97,97,857,97,97,97,0,97,97,97,0,97,97,97,97,97,97,97,97,97,97,45,45,45,97,97,97,894,97,97,897,97,97,97,97,97,97,97,97,97,0,0,0,1382,45,45,45,97,909,97,97,97,97,97,914,97,97,97,97,97,97,97,923,67,67,1079,67,67,67,67,67,37689,1085,25403,1089,66365,1093,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,148,1114,97,97,97,97,97,97,1122,97,97,97,97,97,97,97,97,97,606,97,97,97,97,97,97,97,97,97,97,1173,97,97,97,97,97,12288,0,925,0,1179,0,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,145,45,45,67,67,67,67,67,1762,67,67,67,1766,67,67,67,67,67,67,528,67,67,67,67,67,67,67,67,67,97,97,97,97,97,0,1934,67,67,1255,67,67,67,67,67,67,67,67,67,67,67,67,67,1035,67,67,67,67,67,67,1297,67,67,67,67,67,67,0,0,0,0,0,0,97,97,97,97,97,97,97,97,97,97,1111,97,97,97,97,97,97,1327,97,97,97,97,97,97,97,97,97,97,97,97,33344,97,97,97,1335,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,0,97,97,1377,97,97,97,97,97,97,0,1179,0,45,45,45,45,670,45,45,45,45,45,45,45,45,45,45,45,430,45,45,45,45,67,67,1438,67,67,1442,67,67,67,67,67,67,67,67,67,67,67,67,1592,67,67,67,1451,67,67,67,67,67,67,67,67,67,67,1458,67,67,67,67,0,0,1305,0,0,0,0,0,1311,0,0,0,1317,0,0,0,0,0,0,0,97,97,1322,97,97,1491,97,97,1495,97,97,97,97,97,97,97,97,97,97,0,45,45,45,45,45,45,45,45,45,45,45,45,1551,45,1553,45,1504,97,97,97,97,97,97,97,97,97,97,1513,97,97,97,97,0,45,45,45,45,1536,45,45,45,45,1540,45,67,67,67,67,67,1585,67,67,67,67,67,67,67,67,67,67,67,67,1700,67,67,67,97,1648,97,97,97,97,97,97,97,97,0,45,45,45,45,45,45,45,45,45,45,1541,0,97,97,97,97,0,1940,0,97,97,97,97,97,97,45,45,2011,45,45,45,2015,67,67,2017,67,67,67,2021,97,67,67,812,67,67,67,67,67,67,67,67,67,67,67,37689,544,97,97,97,910,97,97,97,97,97,97,97,97,97,97,97,923,0,0,0,45,45,45,45,1184,45,45,45,45,1188,45,45,45,45,1414,45,45,45,1417,45,1419,45,45,45,45,45,443,45,45,45,45,45,45,453,45,45,67,67,67,67,1244,67,67,67,67,1248,67,67,67,67,67,67,67,0,37139,24853,0,0,0,282,41098,65820,97,1324,97,97,97,97,1328,97,97,97,97,97,97,97,97,97,0,0,930,45,45,45,45,97,97,97,97,1378,97,97,97,97,0,1179,0,45,45,45,45,671,45,45,45,45,45,45,45,45,45,45,45,975,45,45,45,45,67,67,1923,67,1925,67,67,1927,67,97,97,97,97,97,0,0,97,97,97,97,1985,45,45,45,45,45,45,1560,45,45,45,45,45,45,45,45,45,946,45,45,950,45,45,45,0,97,97,97,1939,0,0,0,97,1943,97,97,1945,97,45,45,45,669,45,45,45,45,45,45,45,45,45,45,45,45,990,45,45,45,67,257,67,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,337,97,97,97,97,97,0,53264,0,18,18,24,24,356,28,28,0,0,0,0,0,0,0,0,0,0,370,2170880,2170880,2170880,2416640,401,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,67,67,459,461,67,67,67,67,67,67,67,67,475,67,480,67,67,67,67,67,67,1054,67,67,67,67,67,67,67,67,67,67,1698,67,67,67,67,67,484,67,67,487,67,67,67,67,67,67,67,67,67,67,67,67,67,1459,67,67,97,556,558,97,97,97,97,97,97,97,97,572,97,577,97,97,0,0,1896,97,97,97,97,97,97,1903,45,45,45,45,983,45,45,45,45,988,45,45,45,45,45,45,1195,45,45,45,45,45,45,45,45,45,45,1549,45,45,45,45,45,581,97,97,584,97,97,97,97,97,97,97,97,97,97,97,97,97,1153,97,97,369,0,45,45,45,45,45,45,45,45,45,45,45,662,45,45,45,684,45,45,45,45,45,45,45,45,45,45,45,45,1004,45,45,45,67,67,67,749,67,67,67,67,67,67,67,67,67,761,67,67,67,67,67,67,1068,67,67,67,1071,67,67,67,67,1076,794,795,67,67,67,67,67,67,67,67,67,67,67,67,67,67,0,544,97,97,97,97,847,97,97,97,97,97,97,97,97,97,859,97,0,0,2025,97,20480,97,97,2029,45,45,45,45,45,45,67,67,67,1575,67,67,67,67,67,67,67,67,67,1775,67,67,67,97,97,97,97,892,893,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1515,97,993,994,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,992,67,67,67,1284,67,67,67,67,67,67,67,67,67,67,67,67,67,1607,67,67,97,1364,97,97,97,97,97,97,97,97,97,97,97,97,97,97,596,97,45,1556,1557,45,45,45,45,45,45,45,45,45,45,45,45,45,45,696,45,1596,1597,67,67,67,67,67,67,67,67,67,67,67,67,67,67,499,67,97,97,97,1621,97,97,97,97,97,97,97,97,97,97,97,97,97,1346,97,97,97,97,1740,97,97,97,97,45,45,45,45,45,45,45,45,45,45,1678,45,45,45,45,45,67,97,97,97,97,97,97,1836,0,97,97,97,97,97,0,0,97,97,97,1984,97,45,45,45,45,45,45,1808,45,45,45,45,45,45,45,45,67,739,67,67,67,67,67,744,45,45,1909,45,45,45,45,45,45,45,67,1917,67,1918,67,67,67,67,67,67,1247,67,67,67,67,67,67,67,67,67,67,532,67,67,67,67,67,67,1922,67,67,67,67,67,67,67,97,1930,97,1931,97,0,0,97,97,0,97,97,97,45,45,45,45,45,45,67,67,67,67,1576,67,67,67,67,1580,67,67,0,97,97,1938,97,0,0,0,97,97,97,97,97,97,45,45,45,699,45,45,45,704,45,45,45,45,45,45,45,45,987,45,45,45,45,45,45,45,67,67,97,97,97,97,0,0,97,97,97,2006,97,97,97,97,0,45,1533,45,45,45,45,45,45,45,45,45,1416,45,45,45,45,45,45,45,45,722,723,45,45,45,45,45,45,2045,67,67,67,2047,0,0,97,97,97,2051,45,45,67,67,0,0,0,0,925,41606,0,0,0,0,45,45,45,45,45,45,409,45,45,45,45,45,45,45,45,45,1957,45,67,67,67,67,67,1836,97,97,45,67,0,97,45,67,0,97,45,67,0,97,45,45,67,67,67,1761,67,67,67,1764,67,67,67,67,67,67,67,494,67,67,67,67,67,67,67,67,67,787,67,67,67,67,67,67,45,45,420,45,45,422,45,45,425,45,45,45,45,45,45,45,387,45,45,45,45,397,45,45,45,67,460,67,67,67,67,67,67,67,67,67,67,67,67,67,67,515,67,485,67,67,67,67,67,67,67,67,67,67,67,67,67,498,67,67,67,67,67,97,0,2039,97,97,97,97,97,45,45,45,45,1426,45,45,45,67,67,67,67,67,67,67,67,67,1689,67,67,67,97,557,97,97,97,97,97,97,97,97,97,97,97,97,97,97,612,97,582,97,97,97,97,97,97,97,97,97,97,97,97,97,595,97,97,97,97,97,896,97,97,97,97,97,97,97,97,97,97,885,97,97,97,97,97,45,939,45,45,45,45,943,45,45,45,45,45,45,45,45,45,45,1916,67,67,67,67,67,45,67,67,67,67,67,67,67,1015,67,67,67,67,1019,67,67,67,67,67,67,1271,67,67,67,67,67,67,1277,67,67,67,67,67,67,1287,67,67,67,67,67,67,67,67,67,67,804,67,67,67,67,67,1077,67,67,67,67,67,67,67,37689,0,25403,0,66365,0,0,0,0,0,0,0,0,2170880,2170880,2170880,2170880,2170880,2437120,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2543616,2170880,2170880,2170880,2170880,2170880,2629632,1169,97,1171,97,97,97,97,97,97,97,12288,0,925,0,1179,0,0,0,0,925,41606,0,0,0,0,45,45,45,45,936,45,45,67,67,214,67,220,67,67,233,67,243,67,248,67,67,67,67,67,67,1298,67,67,67,67,0,0,0,0,0,0,97,97,97,97,97,1617,97,0,0,0,45,45,45,1183,45,45,45,45,45,45,45,45,45,393,45,45,45,45,45,45,67,67,1243,67,67,67,67,67,67,67,67,67,67,67,67,67,1074,67,67,1281,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,776,1323,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,907,45,1412,45,45,45,45,45,45,45,1418,45,45,45,45,45,45,686,45,45,45,690,45,45,695,45,45,67,67,67,67,67,1465,67,67,67,67,67,67,67,67,67,67,67,97,97,97,1712,97,97,97,97,1741,97,97,97,45,45,45,45,45,45,45,45,45,426,45,45,45,45,45,45,67,67,67,1924,67,67,67,67,67,97,97,97,97,97,0,0,97,97,1983,97,97,45,45,1987,45,1988,45,0,97,97,97,97,0,0,0,1942,97,97,97,97,97,45,45,45,700,45,45,45,45,45,45,45,45,45,45,711,45,45,153,45,45,166,45,176,45,181,45,45,188,191,196,45,204,255,258,263,67,271,67,67,0,37139,24853,0,0,0,282,41098,65820,97,97,97,294,97,300,97,97,313,97,323,97,328,97,97,335,338,343,97,351,97,97,0,53264,0,18,18,24,24,356,28,28,0,0,0,0,0,0,0,0,41098,0,140,45,45,45,45,1404,45,45,45,45,45,45,45,45,45,45,1411,67,67,486,67,67,67,67,67,67,67,67,67,67,67,67,67,1251,67,67,501,67,67,67,67,67,67,67,67,67,67,67,67,513,67,67,67,67,67,67,1443,67,67,67,67,67,67,67,67,67,67,1263,67,67,67,67,67,97,97,583,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1526,97,598,97,97,97,97,97,97,97,97,97,97,97,97,610,97,97,0,97,97,1796,97,97,97,97,97,97,97,45,45,45,45,45,1744,45,45,45,369,0,651,45,653,45,654,45,656,45,45,45,660,45,45,45,45,1558,45,45,45,45,45,45,45,45,1566,45,45,681,45,683,45,45,45,45,45,45,45,45,691,692,694,45,45,45,716,45,45,45,45,45,45,45,45,45,45,45,45,709,45,45,712,45,714,45,45,45,718,45,45,45,45,45,45,45,726,45,45,45,733,45,45,45,45,67,67,67,67,67,67,67,67,67,67,67,67,1691,67,67,747,67,67,67,67,67,67,67,67,67,760,67,67,67,0,0,0,0,0,0,97,1613,97,97,97,97,97,97,1509,97,97,97,97,97,97,97,97,97,0,1179,0,45,45,45,45,67,764,67,67,67,67,768,67,770,67,67,67,67,67,67,67,67,97,97,97,97,0,0,0,1977,67,778,779,781,67,67,67,67,67,67,788,789,67,67,792,793,67,67,67,813,67,67,67,67,67,67,67,67,67,824,37689,544,25403,546,70179,0,0,66365,66365,552,0,836,97,838,97,839,97,841,97,97,97,845,97,97,97,97,97,97,97,97,97,858,97,97,0,1728,97,97,97,0,97,97,97,97,97,97,97,97,97,97,45,1802,45,97,97,862,97,97,97,97,866,97,868,97,97,97,97,97,97,0,0,97,97,1788,97,97,97,0,0,97,97,876,877,879,97,97,97,97,97,97,886,887,97,97,890,891,97,97,97,97,97,97,97,899,97,97,97,903,97,97,97,0,97,97,97,0,97,97,97,97,97,97,97,1646,97,97,97,97,911,97,97,97,97,97,97,97,97,97,922,923,45,955,45,957,45,45,45,45,45,45,45,45,45,45,45,45,195,45,45,45,45,45,981,982,45,45,45,45,45,45,989,45,45,45,45,45,170,45,45,45,45,45,45,45,45,45,45,411,45,45,45,45,45,67,1023,67,67,67,67,67,67,1031,67,1033,67,67,67,67,67,67,67,817,819,67,67,67,67,67,37689,544,67,1065,67,67,67,67,67,67,67,67,67,67,67,67,67,67,516,67,67,1078,67,67,1081,1082,67,67,37689,0,25403,0,66365,0,0,0,0,0,0,0,0,2171166,2171166,2171166,2171166,2171166,2437406,2171166,2171166,97,1115,97,1117,97,97,97,97,97,97,1125,97,1127,97,97,97,0,97,97,97,0,97,97,97,97,1644,97,97,97,0,97,97,97,0,97,97,1642,97,97,97,97,97,97,625,97,97,97,97,97,97,97,97,97,316,97,97,97,97,97,97,97,97,97,1159,97,97,97,97,97,97,97,97,97,97,97,97,97,1502,97,97,97,97,97,1172,97,97,1175,1176,97,97,12288,0,925,0,1179,0,0,0,0,925,41606,0,0,0,0,45,45,45,935,45,45,45,1233,45,45,45,1236,45,45,45,45,45,45,45,67,67,67,67,67,67,1873,67,67,45,45,1218,45,45,45,1223,45,45,45,45,45,45,45,1230,45,45,67,67,215,219,222,67,230,67,67,244,246,249,67,67,67,67,67,67,1882,97,97,97,97,0,0,0,97,97,97,97,97,97,45,1904,45,1905,45,67,67,67,67,67,1258,67,1260,67,67,67,67,67,67,67,67,67,495,67,67,67,67,67,67,67,67,1283,67,67,67,67,67,67,67,1290,67,67,67,67,67,67,67,818,67,67,67,67,67,67,37689,544,67,67,1295,67,67,67,67,67,67,67,67,0,0,0,0,0,0,2174976,0,0,97,97,97,1326,97,97,97,97,97,97,97,97,97,97,97,97,97,1514,97,97,97,97,97,1338,97,1340,97,97,97,97,97,97,97,97,97,97,97,1500,97,97,1503,97,1363,97,97,97,97,97,97,97,1370,97,97,97,97,97,97,97,563,97,97,97,97,97,97,578,97,1375,97,97,97,97,97,97,97,97,0,1179,0,45,45,45,45,685,45,45,45,45,45,45,45,45,45,45,45,1003,45,45,45,45,67,67,67,1463,67,67,67,67,67,67,67,67,67,67,67,67,67,1778,97,97,97,97,97,1518,97,97,97,97,97,97,97,97,97,97,97,97,609,97,97,97,45,1542,45,45,45,45,45,45,45,1548,45,45,45,45,45,1554,45,1570,1571,45,67,67,67,67,67,67,1578,67,67,67,67,67,67,67,1055,67,67,67,67,67,1061,67,67,1582,67,67,67,67,67,67,67,1588,67,67,67,67,67,1594,67,67,67,67,67,97,2038,0,97,97,97,97,97,2044,45,45,45,995,45,45,45,45,1e3,45,45,45,45,45,45,45,1809,45,1811,45,45,45,45,45,67,1610,1611,67,1476,0,1478,0,1480,0,97,97,97,97,97,97,1618,1647,1649,97,97,97,1652,97,1654,1655,97,0,45,45,45,1658,45,45,67,67,216,67,67,67,67,234,67,67,67,67,252,254,1845,97,97,97,97,97,97,97,45,45,45,45,45,45,45,45,945,45,947,45,45,45,45,45,67,67,67,67,67,1881,97,97,97,97,97,0,0,0,97,97,97,97,97,1902,45,45,45,45,45,45,1908,45,45,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,1921,67,67,67,67,67,67,67,67,97,97,97,97,97,0,0,0,97,97,0,97,1937,97,97,1940,0,0,97,97,97,97,97,97,1947,1948,1949,45,45,45,1952,45,1954,45,45,45,45,1959,1960,1961,67,67,67,67,67,67,1455,67,67,67,67,67,67,67,67,67,67,757,67,67,67,67,67,67,1964,67,1966,67,67,67,67,1971,1972,1973,97,0,0,0,97,97,1104,97,97,97,97,97,97,97,97,97,97,884,97,97,97,889,97,97,1978,97,0,0,1981,97,97,97,97,45,45,45,45,45,45,736,45,67,67,67,67,67,67,67,67,67,67,67,1018,67,67,67,45,67,67,67,67,0,2049,97,97,97,97,45,45,67,67,0,0,0,0,925,41606,0,0,0,0,45,933,45,45,45,45,1234,45,45,45,45,45,45,45,45,45,45,67,97,97,288,97,97,97,97,97,97,317,97,97,97,97,97,97,0,0,97,1787,97,97,97,97,0,0,45,45,378,45,45,45,45,45,390,45,45,45,45,45,45,45,424,45,45,45,431,433,45,45,45,67,1050,67,67,67,67,67,67,67,67,67,67,67,67,67,67,518,67,97,97,97,1144,97,97,97,97,97,97,97,97,97,97,97,97,632,97,97,97,97,97,97,97,1367,97,97,97,97,97,97,97,97,97,97,97,855,97,97,97,97,67,97,97,97,97,97,97,1837,0,97,97,97,97,97,0,0,0,1897,97,97,97,97,97,45,45,45,45,45,1208,45,45,45,45,45,45,45,45,45,45,724,45,45,45,45,45,97,2010,45,45,45,45,45,45,2016,67,67,67,67,67,67,2022,45,2046,67,67,67,0,0,2050,97,97,97,45,45,67,67,0,0,0,0,925,41606,0,0,0,0,932,45,45,45,45,45,1222,45,45,45,45,45,45,45,45,45,45,1227,45,45,45,45,45,133,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,45,701,702,45,45,705,706,45,45,45,45,45,45,703,45,45,45,45,45,45,45,45,45,719,45,45,45,45,45,725,45,45,45,369,649,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1216,25403,546,70179,0,0,66365,66365,552,834,97,97,97,97,97,97,97,1342,97,97,97,97,97,97,97,97,0,97,97,97,97,97,97,97,1799,97,97,45,45,45,1569,45,45,45,1572,67,67,67,67,67,67,67,67,67,67,67,0,0,0,1306,0,67,67,67,1598,67,67,67,67,67,67,67,67,1606,67,67,1609,97,97,97,1650,97,97,1653,97,97,97,0,45,45,1657,45,45,45,1206,45,45,45,45,45,45,45,45,45,45,45,45,1421,45,45,45,1703,67,67,67,67,67,67,67,67,67,67,97,97,1711,97,97,0,1895,0,97,97,97,97,97,97,45,45,45,45,45,958,45,960,45,45,45,45,45,45,45,45,1913,45,45,1915,67,67,67,67,67,67,67,466,67,67,67,67,67,67,481,67,45,1749,45,45,45,45,45,45,45,45,1755,45,45,45,45,45,173,45,45,45,45,45,45,45,45,45,45,974,45,45,45,45,45,67,67,67,67,67,1773,67,67,67,67,67,67,67,97,97,97,97,1886,0,0,0,97,97,67,2035,2036,67,67,97,0,0,97,2041,2042,97,97,45,45,45,45,1662,45,45,45,45,45,45,45,45,45,45,45,1397,45,45,45,45,151,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,437,205,45,67,67,67,218,67,67,67,67,67,67,67,67,67,67,67,1047,67,67,67,67,97,97,97,97,298,97,97,97,97,97,97,97,97,97,97,97,870,97,97,97,97,97,97,97,97,352,97,0,53264,0,18,18,24,24,0,28,28,0,0,0,0,0,0,365,0,41098,0,140,45,45,45,45,45,1427,45,45,67,67,67,67,67,67,67,1435,520,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1037,617,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,923,45,1232,45,45,45,45,45,45,45,45,45,45,45,45,45,67,67,67,67,1919,67,1759,45,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1021,45,154,45,162,45,45,45,45,45,45,45,45,45,45,45,45,964,45,45,45,206,45,67,67,67,67,221,67,229,67,67,67,67,67,67,67,67,530,67,67,67,67,67,67,67,67,755,67,67,67,67,67,67,67,67,785,67,67,67,67,67,67,67,67,802,67,67,67,807,67,67,67,97,97,97,97,353,97,0,53264,0,18,18,24,24,0,28,28,0,0,0,0,0,0,366,0,0,0,140,2170880,2170880,2170880,2416640,402,45,45,45,45,45,45,45,410,45,45,45,45,45,45,45,674,45,45,45,45,45,45,45,45,389,45,394,45,45,398,45,45,45,45,441,45,45,45,45,45,447,45,45,45,454,45,45,67,67,67,67,67,67,67,67,67,67,67,1768,67,67,67,67,67,488,67,67,67,67,67,67,67,496,67,67,67,67,67,67,67,1774,67,67,67,67,67,97,97,97,97,0,0,97,97,97,0,97,97,97,97,97,97,97,97,67,67,523,67,67,527,67,67,67,67,67,533,67,67,67,540,97,97,97,585,97,97,97,97,97,97,97,593,97,97,97,97,97,97,1784,0,97,97,97,97,97,97,0,0,97,97,97,97,97,97,0,0,0,18,18,24,24,0,28,28,97,97,620,97,97,624,97,97,97,97,97,630,97,97,97,637,713,45,45,45,45,45,45,721,45,45,45,45,45,45,45,45,1197,45,45,45,45,45,45,45,45,730,732,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,1581,67,45,67,67,67,67,1012,67,67,67,67,67,67,67,67,67,67,67,1059,67,67,67,67,67,1024,67,67,67,67,67,67,67,67,67,67,67,67,67,67,775,67,67,67,67,1066,67,67,67,67,67,67,67,67,67,67,67,67,479,67,67,67,67,67,67,1080,67,67,67,67,37689,0,25403,0,66365,0,0,0,0,0,0,0,287,0,0,0,287,0,2379776,2170880,2170880,97,97,97,1118,97,97,97,97,97,97,97,97,97,97,97,97,920,97,97,0,0,0,0,45,1181,45,45,45,45,45,45,45,45,45,45,45,432,45,45,45,45,45,45,1219,45,45,45,45,45,45,1226,45,45,45,45,45,45,959,45,45,45,45,45,45,45,45,45,184,45,45,45,45,202,45,1241,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1266,67,1268,67,67,67,67,67,67,67,67,67,67,67,67,1279,67,67,67,67,67,272,67,0,37139,24853,0,0,0,0,41098,65820,67,67,67,67,67,1286,67,67,67,67,67,67,67,67,67,1293,67,67,67,1296,67,67,67,67,67,67,67,0,0,0,0,0,281,94,0,0,97,97,97,1366,97,97,97,97,97,97,97,97,97,1373,97,97,18,0,139621,0,0,0,0,0,0,364,0,0,367,0,97,1376,97,97,97,97,97,97,97,0,0,0,45,45,1384,45,45,67,208,67,67,67,67,67,67,237,67,67,67,67,67,67,67,1069,1070,67,67,67,67,67,67,67,0,37140,24854,0,0,0,0,41098,65821,45,1423,45,45,45,45,45,45,67,67,1431,67,67,67,67,67,67,67,1083,37689,0,25403,0,66365,0,0,0,1436,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1830,67,1452,1453,67,67,67,67,1456,67,67,67,67,67,67,67,67,67,771,67,67,67,67,67,67,1461,67,67,67,1464,67,1466,67,67,67,67,67,67,1470,67,67,67,67,67,67,1587,67,67,67,67,67,67,67,67,1595,1489,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1129,97,1505,1506,97,97,97,97,1510,97,97,97,97,97,97,97,97,97,1163,1164,97,97,97,97,97,1516,97,97,97,1519,97,1521,97,97,97,97,97,97,1525,97,97,18,0,139621,0,0,0,0,0,0,364,0,0,367,41606,67,67,67,67,67,1586,67,67,67,67,67,67,67,67,67,67,67,1276,67,67,67,67,67,67,67,67,67,1600,67,67,67,67,67,67,67,67,67,67,67,1301,0,0,0,1307,97,97,1620,97,97,97,97,97,97,97,1627,97,97,97,97,97,97,913,97,97,97,97,919,97,97,97,0,97,97,97,1781,97,97,0,0,97,97,97,97,97,97,0,0,97,97,97,97,97,97,0,1792,1860,45,1862,1863,45,1865,45,67,67,67,67,67,67,67,67,1875,67,1877,1878,67,1880,67,97,97,97,97,97,1887,0,1889,97,97,18,0,139621,0,0,0,0,0,0,364,237568,0,367,0,97,1893,0,0,0,97,1898,1899,97,1901,97,45,45,45,45,45,2014,45,67,67,67,67,67,2020,67,97,1989,45,1990,45,45,45,67,67,67,67,67,67,1996,67,1997,67,67,67,67,67,273,67,0,37139,24853,0,0,0,0,41098,65820,67,67,97,97,97,97,0,0,97,97,2005,0,97,2007,97,97,18,0,139621,0,0,0,642,0,133,364,0,0,367,41606,0,97,97,2056,2057,0,2059,45,67,0,97,45,67,0,97,45,45,67,209,67,67,67,223,67,67,67,67,67,67,67,67,67,786,67,67,67,791,67,67,45,45,940,45,45,45,45,45,45,45,45,45,45,45,45,45,45,727,45,45,67,67,67,67,67,67,67,67,1016,67,67,67,67,67,67,67,67,37689,0,25403,0,66365,0,0,0,133,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,142,45,45,67,210,67,67,67,225,67,67,239,67,67,67,250,67,67,67,67,67,464,67,67,67,67,67,476,67,67,67,67,67,67,67,1709,67,67,67,97,97,97,97,97,97,0,0,97,97,97,97,97,1843,0,67,259,67,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,289,97,97,97,303,97,97,97,97,97,97,97,97,97,97,901,97,97,97,97,97,339,97,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,0,358,0,0,0,0,0,0,41098,0,140,45,45,45,45,45,1953,45,1955,45,45,45,67,67,67,67,67,67,67,1687,1688,67,67,67,67,45,45,405,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1203,45,458,67,67,67,67,67,67,67,67,67,470,477,67,67,67,67,67,67,67,1970,97,97,97,1974,0,0,0,97,1103,97,97,97,97,97,97,97,97,97,97,97,1372,97,97,97,97,67,522,67,67,67,67,67,67,67,67,67,67,67,536,67,67,67,67,67,67,1696,67,67,67,67,67,67,67,1701,67,555,97,97,97,97,97,97,97,97,97,567,574,97,97,97,97,97,301,97,309,97,97,97,97,97,97,97,97,97,900,97,97,97,905,97,97,97,619,97,97,97,97,97,97,97,97,97,97,97,633,97,97,18,0,139621,0,0,362,0,0,0,364,0,0,367,41606,369,649,45,45,45,45,45,45,45,45,45,45,45,45,663,664,67,67,67,67,750,751,67,67,67,67,758,67,67,67,67,67,67,67,1272,67,67,67,67,67,67,67,67,67,1057,1058,67,67,67,67,67,67,67,67,797,67,67,67,67,67,67,67,67,67,67,67,67,512,67,67,67,97,97,97,97,895,97,97,97,97,97,97,97,97,97,97,97,902,97,97,97,97,67,67,1051,67,67,67,67,67,67,67,67,67,67,67,1062,67,67,67,67,67,491,67,67,67,67,67,67,67,67,67,67,67,1302,0,0,0,1308,97,97,97,97,1145,97,97,97,97,97,97,97,97,97,97,97,1139,97,97,97,97,1156,97,97,97,97,97,97,1161,97,97,97,97,97,1166,97,97,18,640,139621,0,641,0,0,0,0,364,0,0,367,41606,67,67,67,67,1257,67,67,67,67,67,67,67,67,67,67,67,0,0,1305,0,0,97,97,1337,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1630,97,67,1474,67,67,0,0,0,0,0,0,0,0,0,0,0,0,0,2380062,2171166,2171166,97,1529,97,97,0,45,45,45,45,45,45,45,45,45,45,45,1228,45,45,45,45,67,67,67,67,1707,67,67,67,67,67,67,97,97,97,97,97,0,0,0,97,1891,1739,97,97,97,97,97,97,45,45,45,45,45,45,45,45,45,1198,45,1200,45,45,45,45,97,97,1894,0,0,97,97,97,97,97,97,45,45,45,45,45,672,45,45,45,45,45,45,45,45,45,45,45,1420,45,45,45,45,67,67,1965,67,1967,67,67,67,97,97,97,97,0,1976,0,97,97,45,67,0,97,45,67,0,97,45,67,0,97,45,97,97,1979,0,0,97,1982,97,97,97,1986,45,45,45,45,45,735,45,45,67,67,67,67,67,67,67,67,67,67,67,67,67,1770,67,67,2e3,97,97,97,2002,0,97,97,97,0,97,97,97,97,97,97,1798,97,97,97,45,45,45,2034,67,67,67,67,97,0,0,2040,97,97,97,97,45,45,45,45,1752,45,45,45,1753,1754,45,45,45,45,45,45,383,45,45,45,45,45,45,45,45,45,675,45,45,45,45,45,45,438,45,45,45,45,45,445,45,45,45,45,45,45,45,45,67,1430,67,67,67,67,67,67,67,67,67,524,67,67,67,67,67,531,67,67,67,67,67,67,67,67,37689,0,25403,0,66365,0,0,1096,97,97,97,621,97,97,97,97,97,628,97,97,97,97,97,97,0,53264,0,18,18,24,24,356,28,28,665,45,45,45,45,45,45,45,45,45,676,45,45,45,45,45,942,45,45,45,45,45,45,45,45,45,45,707,708,45,45,45,45,763,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,809,810,67,67,67,67,783,67,67,67,67,67,67,67,67,67,67,67,0,1303,0,0,0,97,861,97,97,97,97,97,97,97,97,97,97,97,97,97,97,613,97,45,45,956,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1215,45,67,67,67,67,1027,67,67,67,67,1032,67,67,67,67,67,67,67,67,37689,0,25403,0,66365,0,0,1097,1064,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1075,67,1098,0,0,97,97,97,97,97,97,97,97,97,97,97,97,97,331,97,97,97,97,1158,97,97,97,97,97,97,97,97,97,97,97,97,97,594,97,97,1309,0,0,0,1315,0,0,0,0,0,0,0,0,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1374,97,45,45,1543,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1240,67,67,1583,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1252,67,97,97,97,1635,97,97,97,0,97,97,97,97,97,97,97,97,1800,97,45,45,45,97,97,1793,97,97,97,97,97,97,97,97,97,97,45,45,45,1743,45,45,45,1746,45,0,97,97,97,97,97,1851,97,45,45,45,45,1856,45,45,45,45,1864,45,45,67,67,1869,67,67,67,67,1874,67,0,97,97,45,67,2058,97,45,67,0,97,45,67,0,97,45,45,67,211,67,67,67,67,67,67,240,67,67,67,67,67,67,67,1444,67,67,67,67,67,67,67,67,67,509,67,67,67,67,67,67,67,67,67,268,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,290,97,97,97,305,97,97,319,97,97,97,330,97,97,18,640,139621,0,641,0,0,0,0,364,0,643,367,41606,97,97,348,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,0,0,0,364,0,367,41098,369,140,45,45,45,45,380,45,45,45,45,45,45,395,45,45,45,400,369,0,45,45,45,45,45,45,45,45,658,45,45,45,45,45,972,45,45,45,45,45,45,45,45,45,45,427,45,45,45,45,45,745,67,67,67,67,67,67,67,67,756,67,67,67,67,67,67,67,67,37689,1086,25403,1090,66365,1094,0,0,97,843,97,97,97,97,97,97,97,97,854,97,97,97,97,97,97,1121,97,97,97,97,1126,97,97,97,97,45,980,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1400,45,67,67,67,1011,67,67,67,67,67,67,67,67,67,67,67,0,1304,0,0,0,1190,45,45,1193,1194,45,45,45,45,45,1199,45,1201,45,45,45,45,1911,45,45,45,45,45,67,67,67,67,67,67,67,1579,67,67,67,67,45,1205,45,45,45,45,45,45,45,45,1211,45,45,45,45,45,984,45,45,45,45,45,45,45,45,45,45,45,1550,45,45,45,45,45,1217,45,45,45,45,45,45,1225,45,45,45,45,1229,45,45,45,1388,45,45,45,45,45,45,1396,45,45,45,45,45,444,45,45,45,45,45,45,45,45,45,67,67,1574,67,67,67,67,67,67,67,67,67,67,1590,67,67,67,67,67,1254,67,67,67,67,67,1259,67,1261,67,67,67,67,1265,67,67,67,67,67,67,1708,67,67,67,67,97,97,97,97,97,97,0,0,97,97,97,97,97,0,0,67,67,67,67,1285,67,67,67,67,1289,67,67,67,67,67,67,67,67,37689,1087,25403,1091,66365,1095,0,0,97,97,97,97,1339,97,1341,97,97,97,97,1345,97,97,97,97,97,561,97,97,97,97,97,573,97,97,97,97,97,97,1717,97,0,97,97,97,97,97,97,97,591,97,97,97,97,97,97,97,97,97,1329,97,97,97,97,97,97,97,97,97,97,1351,97,97,97,97,97,97,1357,97,97,97,97,97,588,97,97,97,97,97,97,97,97,97,97,568,97,97,97,97,97,97,97,1365,97,97,97,97,1369,97,97,97,97,97,97,97,97,97,1356,97,97,97,97,97,97,45,45,1403,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1399,45,45,45,1413,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1669,45,1422,45,45,1425,45,45,1428,45,1429,67,67,67,67,67,67,67,67,1468,67,67,67,67,67,67,67,67,529,67,67,67,67,67,67,539,67,67,1475,67,0,0,0,0,0,0,0,0,0,0,0,0,140,2170880,2170880,2170880,2416640,97,97,1530,97,0,45,45,1534,45,45,45,45,45,45,45,45,1956,45,45,67,67,67,67,67,67,67,67,67,1599,67,67,1601,67,67,67,67,67,67,67,67,67,803,67,67,67,67,67,67,1632,97,1634,0,97,97,97,1640,97,97,97,1643,97,97,1645,97,97,97,97,97,912,97,97,97,97,97,97,97,97,97,0,0,0,45,45,45,45,45,45,1660,1661,45,45,45,45,1665,1666,45,45,45,45,45,1670,1692,1693,67,67,67,67,67,1697,67,67,67,67,67,67,67,1702,97,97,1714,1715,97,97,97,97,0,1721,1722,97,97,97,97,97,97,1353,97,97,97,97,97,97,97,97,1362,1726,97,0,0,97,97,97,0,97,97,97,1734,97,97,97,97,97,848,849,97,97,97,97,856,97,97,97,97,97,354,0,53264,0,18,18,24,24,0,28,28,45,45,1750,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1681,45,0,1846,97,97,97,97,97,97,45,45,1854,45,45,45,45,1859,67,67,67,1879,67,67,97,97,1884,97,97,0,0,0,97,97,97,1105,97,97,97,97,97,97,97,97,97,97,1344,97,97,97,1347,97,1892,97,0,0,0,97,97,97,1900,97,97,45,45,45,45,45,997,45,45,45,45,45,45,45,45,45,45,1002,45,45,1005,1006,45,67,67,67,67,67,1926,67,67,1928,97,97,97,97,97,0,0,97,97,97,0,97,97,97,97,97,97,1737,97,0,97,97,97,97,0,0,0,97,97,1944,97,97,1946,45,45,45,1544,45,45,45,45,45,45,45,45,45,45,45,45,190,45,45,45,152,155,45,163,45,45,177,179,182,45,45,45,193,197,45,45,45,1672,45,45,45,45,45,1677,45,1679,45,45,45,45,996,45,45,45,45,45,45,45,45,45,45,45,1212,45,45,45,45,67,260,264,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,97,295,299,302,97,310,97,97,324,326,329,97,97,97,0,97,97,1639,0,1641,97,97,97,97,97,97,97,97,1511,97,97,97,97,97,97,97,97,1523,97,97,97,97,97,97,97,97,1719,97,97,97,97,97,97,97,97,1720,97,97,97,97,97,97,97,312,97,97,97,97,97,97,97,97,1123,97,97,97,97,97,97,97,340,344,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,0,0,0,364,0,367,41098,369,140,45,45,373,375,419,45,45,45,45,45,45,45,45,45,428,45,45,435,45,45,45,1751,45,45,45,45,45,45,45,45,45,45,45,45,1410,45,45,45,67,67,67,505,67,67,67,67,67,67,67,67,67,514,67,67,67,67,67,67,1969,67,97,97,97,97,0,0,0,97,97,45,67,0,97,45,67,0,97,2064,2065,0,2066,45,521,67,67,67,67,67,67,67,67,67,67,534,67,67,67,67,67,67,465,67,67,67,474,67,67,67,67,67,67,67,1467,67,67,67,67,67,67,67,67,67,97,97,97,97,97,1933,0,97,97,97,602,97,97,97,97,97,97,97,97,97,611,97,97,18,640,139621,358,641,0,0,0,0,364,0,0,367,0,618,97,97,97,97,97,97,97,97,97,97,631,97,97,97,97,97,881,97,97,97,97,97,97,97,97,97,97,569,97,97,97,97,97,369,0,45,652,45,45,45,45,45,657,45,45,45,45,45,45,1235,45,45,45,45,45,45,45,45,67,67,67,1432,67,67,67,67,67,67,67,766,67,67,67,67,67,67,67,67,773,67,67,67,0,1305,0,1311,0,1317,97,97,97,97,97,97,97,1624,97,97,97,97,97,97,97,97,0,97,97,97,1724,97,97,97,777,67,67,782,67,67,67,67,67,67,67,67,67,67,67,67,535,67,67,67,67,67,67,67,814,67,67,67,67,67,67,67,67,67,37689,544,25403,546,70179,0,0,66365,66365,552,0,97,837,97,97,97,97,97,97,1496,97,97,97,97,97,97,97,97,97,97,918,97,97,97,97,0,842,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1168,97,97,97,97,864,97,97,97,97,97,97,97,97,871,97,97,97,0,1637,97,97,0,97,97,97,97,97,97,97,97,97,97,1801,45,45,97,875,97,97,880,97,97,97,97,97,97,97,97,97,97,97,1151,1152,97,97,97,67,67,67,1040,67,67,67,67,67,67,67,67,67,67,67,67,790,67,67,67,1180,0,649,45,45,45,45,45,45,45,45,45,45,45,45,45,200,45,45,67,67,67,1454,67,67,67,67,67,67,67,67,67,67,67,67,806,67,67,67,0,0,0,1481,0,1094,0,0,97,1483,97,97,97,97,97,97,304,97,97,318,97,97,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,97,97,97,1507,97,97,97,97,97,97,97,97,97,97,97,97,1332,97,97,97,1619,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1631,97,1633,97,0,97,97,97,0,97,97,97,97,97,97,97,97,97,1381,0,0,45,45,45,45,97,97,1727,0,97,97,97,0,97,97,97,97,97,97,97,97,626,97,97,97,97,97,97,636,45,45,1760,67,67,67,67,67,67,67,1765,67,67,67,67,67,67,67,1299,67,67,67,0,0,0,0,0,0,97,97,97,97,1616,97,97,1803,45,45,45,45,1807,45,45,45,45,45,1813,45,45,45,67,67,1684,67,67,67,67,67,67,67,67,67,67,67,822,67,67,37689,544,67,67,1818,67,67,67,67,1822,67,67,67,67,67,1828,67,67,67,67,67,97,0,0,97,97,97,97,97,45,45,45,2012,2013,45,45,67,67,67,2018,2019,67,67,97,67,97,97,97,1833,97,97,0,0,97,97,1840,97,97,0,0,97,97,97,0,97,97,1733,97,1735,97,97,97,0,97,97,97,1849,97,97,97,45,45,45,45,45,1857,45,45,45,1910,45,1912,45,45,1914,45,67,67,67,67,67,67,67,67,67,67,1017,67,67,1020,67,45,1861,45,45,45,45,45,67,67,67,67,67,1872,67,67,67,67,67,67,752,67,67,67,67,67,67,67,67,67,67,1446,67,67,67,67,67,1876,67,67,67,67,67,97,97,97,97,97,0,0,0,1890,97,97,97,97,97,1134,97,97,97,97,97,97,97,97,97,97,570,97,97,97,97,580,1935,97,97,97,97,0,0,0,97,97,97,97,97,97,45,45,45,45,1906,45,67,67,67,67,2048,0,97,97,97,97,45,45,67,67,0,0,0,0,925,41606,0,0,0,931,45,45,45,45,45,45,1674,45,1676,45,45,45,45,45,45,45,446,45,45,45,45,45,45,45,67,67,67,67,1871,67,67,67,67,0,97,97,45,67,0,97,2060,2061,0,2063,45,67,0,97,45,45,156,45,45,45,45,45,45,45,45,45,192,45,45,45,45,1673,45,45,45,45,45,45,45,45,45,45,45,429,45,45,45,45,67,67,67,269,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,349,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,0,0,0,364,0,367,41098,369,140,45,45,374,45,45,67,67,213,217,67,67,67,67,67,242,67,247,67,253,45,45,698,45,45,45,45,45,45,45,45,45,45,45,45,45,399,45,45,0,0,0,0,925,41606,0,929,0,0,45,45,45,45,45,45,1391,45,45,1395,45,45,45,45,45,45,423,45,45,45,45,45,45,45,436,45,67,67,67,67,1041,67,1043,67,67,67,67,67,67,67,67,67,67,1776,67,67,97,97,97,1099,0,0,97,97,97,97,97,97,97,97,97,97,97,97,97,888,97,97,97,1131,97,97,97,97,1135,97,1137,97,97,97,97,97,97,97,1497,97,97,97,97,97,97,97,97,97,883,97,97,97,97,97,97,1310,0,0,0,1316,0,0,0,0,1100,0,0,0,97,97,97,97,97,1107,97,97,97,97,97,97,97,97,1343,97,97,97,97,97,97,1348,0,0,1317,0,0,0,0,0,97,97,97,97,97,97,97,97,97,97,97,1112,97,45,1804,45,45,45,45,45,45,45,45,45,45,45,45,45,67,1868,67,1870,67,67,67,67,67,1817,67,67,1819,67,67,67,67,67,67,67,67,67,67,67,67,823,67,37689,544,67,97,1832,97,97,1834,97,0,0,97,97,97,97,97,0,0,97,97,97,0,1732,97,97,97,97,97,97,97,850,97,97,97,97,97,97,97,97,97,1177,0,0,925,0,0,0,0,97,97,97,97,0,0,1941,97,97,97,97,97,97,45,45,45,1991,1992,45,67,67,67,67,67,67,67,67,67,1998,134,0,0,0,37,110630,0,0,0,114730,106539,41098,45,45,45,45,941,45,45,944,45,45,45,45,45,45,952,45,45,207,67,67,67,67,67,226,67,67,67,67,67,67,67,67,67,820,67,67,67,67,37689,544,369,650,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1682,25403,546,70179,0,0,66365,66365,552,835,97,97,97,97,97,97,97,1522,97,97,97,97,97,97,97,97,0,97,97,97,97,97,97,1725,67,67,67,1695,67,67,67,67,67,67,67,67,67,67,67,67,1034,67,1036,67,67,67,265,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,97,296,97,97,97,97,314,97,97,97,97,332,334,97,97,97,97,97,1146,1147,97,97,97,97,97,97,97,97,97,97,1626,97,97,97,97,97,97,345,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,0,0,0,364,0,367,41098,369,140,45,372,45,45,45,1220,45,45,45,45,45,45,45,45,45,45,45,45,1213,45,45,45,45,404,406,45,45,45,45,45,45,45,45,45,45,45,45,45,434,45,45,45,440,45,45,45,45,45,45,45,45,451,452,45,45,45,67,1683,67,67,67,1686,67,67,67,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,67,67,67,67,490,492,67,67,67,67,67,67,67,67,67,67,67,1447,67,67,1450,67,67,67,67,67,526,67,67,67,67,67,67,67,67,537,538,67,67,67,67,67,506,67,67,508,67,67,511,67,67,67,67,0,1476,0,0,0,0,0,1478,0,0,0,0,0,0,0,0,97,97,1484,97,97,97,97,97,97,865,97,97,97,97,97,97,97,97,97,97,1499,97,97,97,97,97,97,97,97,97,587,589,97,97,97,97,97,97,97,97,97,97,629,97,97,97,97,97,97,97,97,97,623,97,97,97,97,97,97,97,97,634,635,97,97,97,97,97,1160,97,97,97,97,97,97,97,97,97,97,97,1628,97,97,97,97,369,0,45,45,45,45,45,655,45,45,45,45,45,45,45,45,999,45,1001,45,45,45,45,45,45,45,45,715,45,45,45,720,45,45,45,45,45,45,45,45,728,25403,546,70179,0,0,66365,66365,552,0,97,97,97,97,97,840,97,97,97,97,97,1174,97,97,97,97,0,0,925,0,0,0,0,0,0,0,1100,97,97,97,97,97,97,97,97,627,97,97,97,97,97,97,97,938,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,680,45,968,45,970,45,973,45,45,45,45,45,45,45,45,45,45,962,45,45,45,45,45,979,45,45,45,45,45,985,45,45,45,45,45,45,45,45,45,1224,45,45,45,45,45,45,45,45,688,45,45,45,45,45,45,45,1007,1008,67,67,67,67,67,1014,67,67,67,67,67,67,67,67,67,1045,67,67,67,67,67,67,67,1038,67,67,67,67,67,67,1044,67,1046,67,1049,67,67,67,67,67,67,800,67,67,67,67,67,67,808,67,67,0,0,0,1102,97,97,97,97,97,1108,97,97,97,97,97,97,306,97,97,97,97,97,97,97,97,97,97,1371,97,97,97,97,97,97,97,97,1132,97,97,97,97,97,97,1138,97,1140,97,1143,97,97,97,97,97,1352,97,97,97,97,97,97,97,97,97,97,869,97,97,97,97,97,45,1191,45,45,45,45,45,1196,45,45,45,45,45,45,45,45,1407,45,45,45,45,45,45,45,45,986,45,45,45,45,45,45,991,45,67,67,67,1256,67,67,67,67,67,67,67,67,67,67,67,67,1048,67,67,67,97,1336,97,97,97,97,97,97,97,97,97,97,97,97,97,97,615,97,1386,45,1387,45,45,45,45,45,45,45,45,45,45,45,45,45,455,45,457,45,45,1424,45,45,45,45,45,67,67,67,67,1433,67,1434,67,67,67,67,67,767,67,67,67,67,67,67,67,67,67,67,67,1591,67,1593,67,67,45,45,1805,45,45,45,45,45,45,45,45,45,1814,45,45,1816,67,67,67,67,1820,67,67,67,67,67,67,67,67,67,1829,67,67,67,67,67,815,67,67,67,67,821,67,67,67,37689,544,67,1831,97,97,97,97,1835,0,0,97,97,97,97,97,0,0,97,97,97,1731,97,97,97,97,97,97,97,97,97,853,97,97,97,97,97,97,0,97,97,97,97,1850,97,97,45,45,45,45,45,45,45,45,1547,45,45,45,45,45,45,45,45,1664,45,45,45,45,45,45,45,45,961,45,45,45,45,965,45,967,1907,45,45,45,45,45,45,45,45,45,67,67,67,67,67,1920,0,1936,97,97,97,0,0,0,97,97,97,97,97,97,45,45,67,67,67,67,67,67,1763,67,67,67,67,67,67,67,67,1056,67,67,67,67,67,67,67,67,1273,67,67,67,67,67,67,67,67,1457,67,67,67,67,67,67,67,67,97,97,97,97,0,0,28672,97,45,67,67,67,67,0,0,97,97,97,97,45,45,67,67,2054,97,97,291,97,97,97,97,97,97,320,97,97,97,97,97,97,307,97,97,97,97,97,97,97,97,97,97,12288,0,925,926,1179,0,45,377,45,45,45,381,45,45,392,45,45,396,45,45,45,45,971,45,45,45,45,45,45,45,45,45,45,45,45,1756,45,45,45,67,67,67,67,463,67,67,67,467,67,67,478,67,67,482,67,67,67,67,67,1028,67,67,67,67,67,67,67,67,67,67,67,67,1469,67,67,1472,67,502,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1460,67,97,97,97,97,560,97,97,97,564,97,97,575,97,97,579,97,97,97,97,97,1368,97,97,97,97,97,97,97,97,97,97,0,0,925,0,0,930,97,599,97,97,97,97,97,97,97,97,97,97,97,97,97,97,872,97,45,666,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1758,0,362,0,0,925,41606,0,0,0,0,45,45,934,45,45,45,164,168,174,178,45,45,45,45,45,194,45,45,45,165,45,45,45,45,45,45,45,45,45,199,45,45,45,67,67,1010,67,67,67,67,67,67,67,67,67,67,67,67,1060,67,67,67,67,67,67,1052,1053,67,67,67,67,67,67,67,67,67,67,1063,97,1157,97,97,97,97,97,97,97,97,97,97,97,97,1167,97,97,97,97,97,1379,97,97,97,0,0,0,45,1383,45,45,45,1806,45,45,45,45,45,45,1812,45,45,45,45,67,67,67,67,67,1577,67,67,67,67,67,67,67,753,67,67,67,67,67,67,67,67,67,1262,67,67,67,67,67,67,67,1282,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1471,67,45,1402,45,45,45,45,45,45,45,45,45,45,45,45,45,45,417,45,67,1462,67,67,67,67,67,67,67,67,67,67,67,67,67,67,37689,544,97,1517,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1128,97,97,97,97,1636,97,97,97,0,97,97,97,97,97,97,97,97,851,97,97,97,97,97,97,97,67,67,1705,67,67,67,67,67,67,67,67,97,97,97,97,97,97,0,0,97,97,97,97,1842,0,0,1779,97,97,97,1782,97,0,0,97,97,97,97,97,97,0,0,97,97,97,1789,97,97,0,0,0,97,1847,97,97,97,97,97,45,45,45,45,45,45,45,45,1675,45,45,45,45,45,45,45,45,737,738,67,740,67,741,67,743,67,67,67,67,67,67,1968,67,67,97,97,97,97,0,0,0,97,97,45,67,0,97,45,67,2062,97,45,67,0,97,45,67,67,97,97,2001,97,0,0,2004,97,97,0,97,97,97,97,1797,97,97,97,97,97,45,45,45,67,261,67,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,97,292,97,97,97,97,311,315,321,325,97,97,97,97,97,97,1623,97,97,97,97,97,97,97,97,97,97,1330,97,97,1333,1334,97,341,97,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,0,0,363,364,0,367,41098,369,140,45,45,45,45,1221,45,45,45,45,45,45,45,45,45,45,45,413,45,45,416,45,376,45,45,45,45,382,45,45,45,45,45,45,45,45,45,45,1408,45,45,45,45,45,403,45,45,45,45,45,45,45,45,45,45,414,45,45,45,418,67,67,67,462,67,67,67,67,468,67,67,67,67,67,67,67,67,1602,67,1604,67,67,67,67,67,67,67,67,489,67,67,67,67,67,67,67,67,67,67,500,67,67,67,67,67,1067,67,67,67,67,67,1072,67,67,67,67,67,67,274,0,37139,24853,0,0,0,0,41098,65820,67,67,504,67,67,67,67,67,67,67,510,67,67,67,517,519,541,67,37139,37139,24853,24853,0,70179,0,0,0,65820,65820,369,287,554,97,97,97,559,97,97,97,97,565,97,97,97,97,97,97,97,1718,0,97,97,97,97,97,97,97,898,97,97,97,97,97,97,906,97,97,97,97,586,97,97,97,97,97,97,97,97,97,97,597,97,97,97,97,97,1520,97,97,97,97,97,97,97,97,97,97,0,45,1656,45,45,45,97,97,601,97,97,97,97,97,97,97,607,97,97,97,614,616,638,97,18,0,139621,0,0,0,0,0,0,364,0,0,367,41606,369,0,45,45,45,45,45,45,45,45,45,45,661,45,45,45,407,45,45,45,45,45,45,45,45,45,45,45,45,45,1815,45,67,45,667,45,45,45,45,45,45,45,45,45,45,678,45,45,45,421,45,45,45,45,45,45,45,45,45,45,45,45,976,977,45,45,45,682,45,45,45,45,45,45,45,45,45,45,693,45,45,697,67,67,748,67,67,67,67,754,67,67,67,67,67,67,67,67,67,1274,67,67,67,67,67,67,67,67,765,67,67,67,67,769,67,67,67,67,67,67,67,67,67,1589,67,67,67,67,67,67,67,67,780,67,67,784,67,67,67,67,67,67,67,67,67,67,67,1777,67,97,97,97,97,97,97,846,97,97,97,97,852,97,97,97,97,97,97,97,1742,45,45,45,45,45,45,45,1747,97,97,97,863,97,97,97,97,867,97,97,97,97,97,97,97,308,97,97,97,97,97,97,97,97,97,97,12288,1178,925,0,1179,0,97,97,97,878,97,97,882,97,97,97,97,97,97,97,97,97,97,12288,0,925,0,1179,0,908,97,97,97,97,97,97,97,97,97,97,97,97,97,97,0,0,925,0,0,0,954,45,45,45,45,45,45,45,45,45,45,963,45,45,966,45,45,157,45,45,171,45,45,45,45,45,45,45,45,45,45,948,45,45,45,45,45,1022,67,67,1026,67,67,67,1030,67,67,67,67,67,67,67,67,67,1603,1605,67,67,67,1608,67,67,67,1039,67,67,1042,67,67,67,67,67,67,67,67,67,67,471,67,67,67,67,67,0,1100,0,97,97,97,97,97,97,97,97,97,97,97,97,97,904,97,97,97,97,1116,97,97,1120,97,97,97,1124,97,97,97,97,97,97,562,97,97,97,571,97,97,97,97,97,97,97,97,97,1133,97,97,1136,97,97,97,97,97,97,97,97,915,917,97,97,97,97,97,0,97,1170,97,97,97,97,97,97,97,97,0,0,925,0,0,0,0,0,41606,0,0,0,0,45,45,45,45,45,45,1993,67,67,67,67,67,67,67,67,67,67,1275,67,67,67,1278,67,0,0,0,45,45,1182,45,45,45,45,45,45,45,45,45,1189,1204,45,45,45,1207,45,45,1209,45,1210,45,45,45,45,45,45,1546,45,45,45,45,45,45,45,45,45,689,45,45,45,45,45,45,1231,45,45,45,45,45,45,45,45,45,45,45,45,45,45,67,67,67,67,67,67,67,67,236,67,67,67,67,67,67,67,801,67,67,67,805,67,67,67,67,67,1242,67,67,67,67,67,67,67,67,67,1249,67,67,67,67,67,67,507,67,67,67,67,67,67,67,67,67,67,1300,0,0,0,0,0,1267,67,67,1269,67,1270,67,67,67,67,67,67,67,67,67,1280,97,1349,97,1350,97,97,97,97,97,97,97,97,97,1360,97,97,97,0,1980,97,97,97,97,97,45,45,45,45,45,45,673,45,45,45,45,677,45,45,45,45,1401,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,953,67,1437,67,1440,67,67,67,67,1445,67,67,67,1448,67,67,67,67,67,67,1029,67,67,67,67,67,67,67,67,67,67,1825,67,67,67,67,67,1473,67,67,67,0,0,0,0,0,0,0,0,0,0,0,0,1320,0,834,97,97,97,97,1490,97,1493,97,97,97,97,1498,97,97,97,1501,97,97,97,0,97,1638,97,0,97,97,97,97,97,97,97,97,916,97,97,97,97,97,97,0,1528,97,97,97,0,45,45,45,1535,45,45,45,45,45,45,45,1867,67,67,67,67,67,67,67,67,67,97,97,97,97,1932,0,0,1555,45,45,45,45,45,45,45,45,45,45,45,45,45,1567,45,45,158,45,45,172,45,45,45,183,45,45,45,45,201,45,45,67,212,67,67,67,67,231,235,241,245,67,67,67,67,67,67,493,67,67,67,67,67,67,67,67,67,67,472,67,67,67,67,67,97,97,97,97,1651,97,97,97,97,97,0,45,45,45,45,45,45,45,1539,45,45,45,67,1704,67,1706,67,67,67,67,67,67,67,97,97,97,97,97,97,0,0,97,97,97,1841,97,0,1844,97,97,97,97,1716,97,97,97,0,97,97,97,97,97,97,97,590,97,97,97,97,97,97,97,97,97,0,0,0,45,45,45,1385,1748,45,45,45,45,45,45,45,45,45,45,45,45,45,1757,45,45,159,45,45,45,45,45,45,45,45,45,45,45,45,45,415,45,45,97,97,1780,97,97,97,0,0,1786,97,97,97,97,97,0,0,97,97,1730,0,97,97,97,97,97,1736,97,1738,67,97,97,97,97,97,97,0,1838,97,97,97,97,97,0,0,97,1729,97,0,97,97,97,97,97,97,97,97,1162,97,97,97,1165,97,97,97,45,1950,45,45,45,45,45,45,45,45,1958,67,67,67,1962,67,67,67,67,67,1246,67,67,67,67,67,67,67,67,67,67,67,97,1710,97,97,97,1999,67,97,97,97,97,0,2003,97,97,97,0,97,97,2008,2009,45,67,67,67,67,0,0,97,97,97,97,45,2052,67,2053,0,0,0,0,925,41606,0,0,930,0,45,45,45,45,45,45,1392,45,1394,45,45,45,45,45,45,45,1545,45,45,45,45,45,45,45,45,45,45,1563,1565,45,45,45,1568,0,97,2055,45,67,0,97,45,67,0,97,45,67,28672,97,45,45,160,45,45,45,45,45,45,45,45,45,45,45,45,45,679,45,45,67,67,266,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,346,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,0,362,0,364,0,367,41098,369,140,371,45,45,45,379,45,45,45,388,45,45,45,45,45,45,45,45,1663,45,45,45,45,45,45,45,45,45,449,45,45,45,45,45,67,67,542,37139,37139,24853,24853,0,70179,0,0,0,65820,65820,369,287,97,97,97,97,97,1622,97,97,97,97,97,97,97,1629,97,97,0,1794,1795,97,97,97,97,97,97,97,97,45,45,45,45,45,45,1745,45,45,97,639,18,0,139621,0,0,0,0,0,0,364,0,0,367,41606,45,731,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,67,67,251,67,67,67,67,67,798,67,67,67,67,67,67,67,67,67,67,67,67,1073,67,67,67,860,97,97,97,97,97,97,97,97,97,97,97,97,97,97,873,0,0,1101,97,97,97,97,97,97,97,97,97,97,97,97,97,921,97,0,67,67,67,67,1245,67,67,67,67,67,67,67,67,67,67,67,67,1250,67,67,1253,0,0,1312,0,0,0,1318,0,0,0,0,0,0,97,97,97,97,1106,97,97,97,97,97,97,97,97,97,1149,97,97,97,97,97,1155,97,97,1325,97,97,97,97,97,97,97,97,97,97,97,97,97,1141,97,97,67,67,1439,67,1441,67,67,67,67,67,67,67,67,67,67,67,67,1264,67,67,67,97,97,1492,97,1494,97,97,97,97,97,97,97,97,97,97,97,1331,97,97,97,97,67,67,67,2037,67,97,0,0,97,97,97,2043,97,45,45,45,442,45,45,45,45,45,45,45,45,45,45,45,67,67,67,67,67,67,232,67,67,67,67,67,67,67,67,1823,67,67,67,67,67,67,67,67,97,97,97,97,1975,0,0,97,874,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1142,97,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,65,86,117,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,63,84,115,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,61,82,113,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,59,80,111,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,57,78,109,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,55,76,107,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,53,74,105,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,51,72,103,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,49,70,101,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,47,68,99,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,45,67,97,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,213085,53264,18,49172,57366,24,8192,28,102432,0,0,0,44,0,0,32863,53264,18,49172,57366,24,8192,28,102432,0,41,41,41,0,0,1138688,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,0,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,89,53264,18,18,49172,0,57366,0,24,24,24,0,127,127,127,127,102432,67,262,67,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,342,97,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,360,0,0,364,0,367,41098,369,140,45,45,45,45,717,45,45,45,45,45,45,45,45,45,45,45,412,45,45,45,45,45,67,1009,67,67,67,67,67,67,67,67,67,67,67,67,67,1292,67,67,1294,67,67,67,67,67,67,67,67,67,67,0,0,0,0,0,0,97,97,97,1615,97,97,97,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,66,87,118,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,64,85,116,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,62,83,114,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,60,81,112,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,58,79,110,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,56,77,108,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,54,75,106,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,52,73,104,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,50,71,102,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,48,69,100,53264,18,49172,57366,24,8192,28,102432,37,110630,114730,106539,46,67,98,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,233472,53264,18,49172,57366,24,8192,28,102432,0,110630,114730,106539,0,0,69724,53264,18,18,49172,0,57366,262144,24,24,24,0,28,28,28,28,102432,45,45,161,45,45,45,45,45,45,45,45,45,45,45,45,45,710,45,45,28,139621,359,0,0,0,364,0,367,41098,369,140,45,45,45,45,1389,45,45,45,45,45,45,45,45,45,45,45,949,45,45,45,45,67,503,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1449,67,67,97,600,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1154,97,0,0,0,0,925,41606,927,0,0,0,45,45,45,45,45,45,1866,67,67,67,67,67,67,67,67,67,67,772,67,67,67,67,67,45,45,969,45,45,45,45,45,45,45,45,45,45,45,45,45,951,45,45,45,45,1192,45,45,45,45,45,45,45,45,45,45,45,45,45,1202,45,45,0,0,0,1314,0,0,0,0,0,0,0,0,0,97,97,97,97,97,97,97,1488,67,67,267,67,67,67,67,0,37139,24853,0,0,0,0,41098,65820,97,347,97,97,97,97,0,53264,0,18,18,24,24,0,28,28,139621,0,361,0,0,364,0,367,41098,369,140,45,45,45,45,734,45,45,45,67,67,67,67,67,742,67,67,45,45,668,45,45,45,45,45,45,45,45,45,45,45,45,45,1214,45,45,1130,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1361,97,45,45,1671,45,45,45,45,45,45,45,45,45,45,45,45,45,1552,45,45,0,0,0,0,2220032,0,0,1130496,0,0,0,0,2170880,2171020,2170880,2170880,18,0,0,131072,0,0,0,90112,0,2220032,0,0,0,0,0,0,0,0,97,97,97,1485,97,97,97,97,0,45,45,45,45,45,1537,45,45,45,45,45,1390,45,1393,45,45,45,45,1398,45,45,45,2170880,2171167,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2576384,2215936,3117056,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,0,0,0,0,0,2174976,0,0,0,0,0,0,2183168,0,0,0,0,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,2721252,2744320,2170880,2170880,2170880,2834432,2840040,2170880,2908160,2170880,2170880,2936832,2170880,2170880,2985984,2170880,2994176,2170880,2170880,3014656,2170880,3059712,3076096,3088384,2170880,2170880,2170880,2170880,0,0,0,0,2220032,0,0,0,1142784,0,0,0,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3215360,2215936,2215936,2215936,2215936,2215936,2437120,2215936,2215936,2215936,3117056,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,2215936,0,543,0,545,0,0,2183168,0,0,831,0,2170880,2170880,2170880,2400256,2170880,2170880,2170880,2170880,3031040,2170880,3055616,2170880,2170880,2170880,2170880,3092480,2170880,2170880,3125248,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,2170880,3198976,2170880,0,0,0,0,0,0,67,67,37139,37139,24853,24853,0,0,0,0,0,65820,65820,0,287,97,97,97,97,97,1783,0,0,97,97,97,97,97,97,0,0,97,97,97,97,97,97,1791,0,0,546,70179,0,0,0,0,552,0,97,97,97,97,97,97,97,604,97,97,97,97,97,97,97,97,97,97,1150,97,97,97,97,97,147456,147456,147456,147456,147456,147456,147456,147456,147456,147456,147456,147456,0,0,147456,0,0,0,0,925,41606,0,928,0,0,45,45,45,45,45,45,998,45,45,45,45,45,45,45,45,45,1562,45,1564,45,45,45,45,0,2158592,2158592,0,0,0,0,2232320,2232320,2232320,0,2240512,2240512,2240512,2240512,0,0,0,0,0,0,0,0,0,0,0,2170880,2170880,2170880,2416640],r.EXPECTED=[291,300,304,341,315,309,305,295,319,323,327,329,296,333,337,339,342,346,350,294,356,360,312,367,352,371,363,375,379,383,387,391,395,726,399,405,518,684,405,405,405,405,808,405,405,405,512,405,405,405,431,405,405,406,405,405,404,405,405,405,405,405,405,405,908,631,410,415,405,414,419,608,405,429,602,405,435,443,405,441,641,478,405,447,451,450,456,643,461,460,762,679,465,469,741,473,477,482,486,492,932,931,523,498,504,720,405,510,596,405,516,941,580,522,929,527,590,589,897,939,534,538,547,551,555,559,563,567,571,969,575,708,690,689,579,584,634,405,594,731,405,600,882,405,606,895,786,452,612,405,615,620,876,624,628,638,647,651,655,659,663,667,676,683,688,695,694,791,405,699,437,405,706,714,405,712,825,870,405,718,724,769,768,823,730,735,745,751,422,755,759,425,766,902,810,587,775,888,887,405,773,992,405,779,962,405,785,781,986,790,795,797,506,500,499,801,805,814,820,829,833,837,841,845,849,853,857,861,616,865,869,868,488,405,874,816,405,880,738,405,886,892,543,405,901,906,913,912,918,494,541,922,926,936,945,949,953,957,530,966,973,960,702,701,405,979,981,405,985,747,405,990,998,914,405,996,1004,672,975,974,1014,1002,1008,670,1012,405,405,405,405,405,401,1018,1022,1026,1106,1071,1111,1111,1111,1082,1145,1030,1101,1034,1038,1106,1106,1106,1106,1046,1206,1052,1106,1072,1111,1111,1042,1134,1065,1111,1112,1056,1160,1207,1062,1204,1208,1069,1106,1106,1106,1076,1111,1207,1161,1122,1205,1064,1094,1106,1106,1107,1111,1111,1111,1078,1086,1207,1092,1098,1046,1058,1106,1106,1110,1111,1111,1116,1120,1161,1126,1202,1104,1106,1145,1146,1129,1138,1088,1151,1048,1157,1153,1132,1141,1165,1107,1111,1172,1179,1109,1183,1175,1143,1147,1187,1108,1191,1195,1144,1199,1168,1212,1216,1220,1224,1228,1232,1236,1557,1247,1241,1241,1038,1434,1241,1241,1241,1241,1254,1275,1617,1241,1280,1287,1241,1241,1241,1287,1241,2114,1291,1241,1243,1241,2049,1824,2094,2095,1520,1309,1241,1241,1302,1241,1321,1311,1241,1241,1313,1778,1325,1336,1241,1241,1325,1330,1353,1241,1241,1695,1354,1241,1241,1241,1294,1686,1331,1241,1696,1368,1241,1338,1370,1241,1392,1399,1364,2017,1406,2016,1405,1716,1406,1407,1422,1417,1421,1241,1241,1241,1349,1426,1241,1774,1756,1241,1773,1241,1241,1345,1964,1812,1432,1241,1241,1345,1993,1459,1241,1241,1241,1395,1848,1767,1465,1241,1241,1394,1847,1242,1477,1241,1241,1428,1241,1445,1492,1241,1241,1438,1241,1499,1241,1241,1241,1455,1241,1818,1448,1241,1250,1241,2026,1623,1449,1241,1612,1616,1241,1614,1241,1257,1241,1241,1985,1292,1586,1512,1241,1517,2050,1526,1674,1519,1524,1647,2051,1532,1537,1551,1544,1550,1555,1561,1571,1578,1584,1590,1591,1653,1595,1602,1606,1610,1634,1628,1640,1633,1645,1241,1241,1241,1469,1241,1970,1651,1241,1270,1241,1241,1819,1449,1241,1293,1664,1241,1241,1481,1485,1574,1672,1241,1241,1513,1317,1487,1684,1241,1241,1533,1299,1694,1241,1241,1295,1241,1241,1241,1546,1700,1241,1241,1707,1241,1713,1241,1849,1715,1241,1720,1241,1276,1267,1241,1241,2107,1657,1864,1241,1881,1241,1326,1292,1241,1685,1358,1724,1338,1241,1363,1362,1342,1340,1361,1339,1833,1372,1360,1833,1833,1342,1343,1835,1341,1731,1738,1344,1241,1745,1241,1379,1241,1241,2092,1241,1388,1761,1754,1241,1386,1241,1400,1760,1241,1241,1241,1598,1734,1241,1241,1241,1635,1645,1241,1780,1766,1241,1241,1332,1771,1241,1241,1629,2079,1241,1242,1784,1241,1241,1680,1639,2063,1790,1241,1241,1741,1241,1241,1800,1241,1241,1762,1473,1241,1806,1241,1241,1786,1240,1709,1241,1241,1241,1668,1811,1241,1940,1241,1401,1974,1241,1408,1413,1382,1241,1816,1241,1241,1802,2086,1811,1241,1817,1945,1823,2095,2095,2047,2094,2046,2080,1241,1409,1312,1376,2096,2048,1241,1241,1807,1241,1241,1241,2035,1241,1241,1828,1241,2057,2061,1241,1241,1843,1241,2059,1241,1241,1241,1690,1847,1241,1241,1241,1703,2102,1848,1241,1241,1853,1292,1848,1241,2016,1857,1241,2002,1868,1241,1436,1241,1241,1271,1305,1241,1874,1241,1241,1884,2037,1892,1241,1890,1241,1461,1241,1241,1795,1241,1241,1891,1241,1878,1241,1888,1241,1888,1905,1896,2087,1912,1903,1241,1911,1906,1916,1905,2027,1863,1925,2088,1859,1861,1922,1927,1931,1935,1494,1241,1241,1918,1907,1939,1917,1944,1949,1241,1241,1451,1955,1241,1241,1241,1796,1727,2061,1241,1241,1899,1241,1660,1968,1241,1241,1951,1678,1978,1241,1241,1241,1839,1241,1241,1984,1982,1241,1488,1241,1241,1624,1450,1989,1241,1241,1241,1870,1995,1292,1241,1241,1958,1261,1241,1996,1241,1241,1241,2039,2008,1241,1241,1750,2e3,1241,1256,2001,1960,1241,1564,1241,1504,1241,1241,1442,1241,1241,1564,1528,1263,1241,1508,1241,1241,1468,1498,2006,1540,2015,1539,2014,1748,2013,1539,1831,2014,2012,1500,1567,2022,2021,1241,1580,1241,1241,2033,2037,1791,2045,2031,1241,1621,1241,1641,2044,1241,1241,1241,2093,1241,1241,2055,1241,1241,2067,1241,1283,1241,1241,1241,2101,2071,1241,1241,1241,2073,1848,2040,1241,1241,1241,2077,1241,1241,2106,1241,1241,2084,1241,2111,1241,1241,1381,1380,1241,1241,1241,2100,1241,2129,2118,2122,2126,2197,2133,3010,2825,2145,2698,2156,2226,2160,2161,2165,2174,2293,2194,2630,2201,2203,2152,3019,2226,2263,2209,2213,2218,2269,2292,2269,2269,2184,2226,2238,2148,2151,3017,2245,2214,2269,2269,2185,2226,2292,2269,2291,2269,2269,2269,2292,2205,3019,2226,2226,2160,2160,2160,2261,2160,2160,2160,2262,2276,2160,2160,2277,2216,2283,2216,2269,2269,2268,2269,2267,2269,2269,2269,2271,2568,2292,2269,2293,2269,2182,2190,2269,2186,2226,2226,2226,2226,2227,2160,2160,2160,2160,2263,2160,2275,2277,2282,2215,2217,2269,2269,2291,2269,2269,2293,2291,2269,2220,2269,2295,2294,2269,2269,2305,2233,2262,2278,2218,2269,2234,2226,2226,2228,2160,2160,2160,2289,2220,2294,2294,2269,2269,2304,2269,2160,2160,2287,2269,2269,2305,2269,2269,2312,2269,2269,2225,2226,2160,2287,2289,2219,2304,2295,2314,2234,2226,2314,2269,2226,2226,2160,2288,2219,2222,2304,2296,2269,2224,2160,2160,2269,2302,2294,2314,2224,2226,2288,2220,2294,2269,2290,2269,2269,2293,2269,2269,2269,2269,2270,2221,2313,2225,2227,2160,2300,2269,2225,2261,2309,2234,2229,2223,2318,2318,2318,2328,2336,2340,2344,2350,2637,2712,2358,2362,2372,2135,2378,2398,2135,2135,2135,2135,2136,2417,2241,2135,2378,2135,2135,2980,2984,2135,3006,2135,2135,2135,2945,2931,2425,2400,2135,2135,2135,2954,2135,2481,2433,2135,2135,2988,2824,2135,2135,2482,2434,2135,2135,2440,2445,2452,2135,2135,2998,3002,2961,2441,2446,2453,2463,2974,2135,2135,2135,2140,2642,2709,2459,2470,2465,2135,2135,3005,2135,2135,2987,2823,2458,2469,2464,2975,2135,2135,2135,2353,2488,2447,2324,2974,2135,2409,2459,2448,2135,2961,2487,2446,2476,2323,2973,2135,2135,2135,2354,2476,2974,2135,2135,2135,2957,2135,2135,2960,2135,2135,2135,2363,2409,2459,2474,2465,2487,2571,2973,2135,2135,2168,2973,2135,2135,2135,2959,2135,2135,2135,2506,2135,2957,2488,2170,2135,2135,2135,2960,2135,2818,2493,2135,2135,3033,2135,2135,2135,2934,2819,2494,2135,2135,2135,2976,2780,2499,2135,2135,2135,3e3,2968,2135,2935,2135,2135,2135,2364,2507,2135,2135,2934,2135,2135,2780,2492,2507,2135,2135,2506,2780,2135,2135,2782,2780,2135,2782,2135,2783,2374,2514,2135,2135,2135,3007,2530,2974,2135,2135,2135,3008,2135,2135,2134,2135,2526,2531,2975,2135,2135,3042,2581,2575,2956,2135,2135,2135,2394,2135,2508,2535,2840,2844,2495,2135,2135,2136,2684,2537,2842,2846,2135,2136,2561,2581,2551,2536,2841,2845,2975,3043,2582,2843,2555,2135,3040,3044,2538,2844,2975,2135,2135,2253,2644,2672,2542,2554,2135,2135,2346,2873,2551,2555,2135,2135,2135,2381,2559,2565,2538,2553,2135,2560,2914,2576,2590,2135,2135,2135,2408,2136,2596,2624,2135,2135,2135,2409,2135,2618,2597,3008,2135,2135,2380,2956,2601,2135,2135,2135,2410,2620,2624,2135,2136,2383,2135,2135,2783,2623,2135,2135,2393,2888,2136,2621,3008,2135,2618,2618,2622,2135,2135,2405,2414,2619,2384,2624,2135,2136,2950,2135,2138,2135,2139,2135,2604,2623,2135,2140,2878,2665,2957,2622,2135,2135,2428,2762,2606,2612,2135,2135,2501,2586,2604,3038,2135,2604,3036,2387,2958,2386,2135,2141,2135,2421,2387,2385,2135,2385,2384,2384,2135,2386,2628,2384,2135,2135,2501,2596,2591,2135,2135,2135,2400,2135,2634,2135,2135,2559,2580,2575,2648,2135,2135,2135,2429,2649,2135,2135,2135,2435,2654,2658,2135,2135,2135,2436,2649,2178,2659,2135,2135,2595,2601,2669,2677,2135,2135,2616,2957,2879,2665,2691,2135,2363,2367,2900,2878,2664,2690,2975,2877,2643,2670,2974,2671,2975,2135,2135,2619,2608,2669,2673,2135,2135,2653,2177,2672,2135,2135,2135,2486,2168,2251,2255,2695,2974,2709,2135,2135,2135,2487,2169,2399,2716,2975,2135,2363,2770,2776,2640,2717,2135,2135,2729,2135,2135,2641,2718,2135,2135,2135,2505,2135,2640,2257,2974,2135,2727,2975,2135,2365,2332,2895,2957,2135,2959,2135,2365,2749,2754,2959,2958,2958,2135,2380,2793,2799,2135,2735,2738,2135,2381,2135,2135,2940,2974,2135,2744,2135,2135,2739,2519,2976,2745,2135,2135,2135,2509,2755,2135,2135,2135,2510,2772,2778,2135,2135,2740,2520,2135,2771,2777,2135,2135,2759,2750,2792,2798,2135,2135,2781,2392,2779,2135,2135,2135,2521,2135,2679,2248,2135,2135,2681,2480,2135,2135,2786,3e3,2135,2679,2683,2135,2135,2416,2135,2135,2135,2525,2135,2730,2135,2135,2135,2560,2581,2135,2805,2135,2135,2804,2962,2832,2974,2135,2382,2135,2135,2958,2135,2135,2960,2135,2829,2833,2975,2961,2965,2969,2973,2968,2972,2135,2135,2135,2641,2135,2515,2966,2970,2851,2478,2135,2135,2808,2135,2809,2135,2135,2135,2722,2852,2479,2135,2135,2815,2135,2135,2766,2853,2480,2135,2857,2479,2135,2388,2723,2135,2364,2331,2894,2858,2480,2135,2135,2850,2478,2135,2135,2135,2806,2864,2135,2399,2256,2974,2865,2135,2135,2862,2135,2135,2135,2685,2807,2865,2135,2135,2807,2863,2135,2135,2135,2686,2884,2807,2135,2809,2807,2135,2135,2807,2806,2705,2810,2808,2700,2869,2702,2702,2702,2704,2883,2135,2135,2135,2730,2884,2135,2135,2135,2731,2321,2546,2135,2135,2876,2255,2889,2322,2547,2135,2401,2135,2135,2135,2949,2367,2893,2544,2973,2906,2973,2135,2135,2877,2663,2368,2901,2907,2974,2366,2899,2905,2972,2920,2974,2135,2135,2911,2900,2920,2363,2913,2918,2465,2941,2975,2135,2135,2924,2928,2974,2945,2931,2135,2135,2135,2765,2136,2955,2135,2135,2939,2931,2380,2135,2135,2380,2135,2135,2135,2780,2507,2137,2135,2137,2135,2139,2135,2806,2810,2135,2135,2135,2992,2135,2135,2962,2966,2970,2974,2135,2135,2787,3014,2135,2521,2993,2135,2135,2135,2803,2135,2135,2135,2618,2607,2997,3001,2135,2135,2963,2967,2971,2975,2135,2135,2791,2797,2135,3009,2999,3003,2787,3001,2135,2135,2964,2968,2785,2999,3003,2135,2135,2135,2804,2785,2999,3004,2135,2135,2135,2807,2135,2135,3023,2135,2135,2135,2811,2135,2135,3027,2135,2135,2135,2837,2968,3028,2135,2135,2135,2875,2135,2784,3029,2135,2408,2457,2446,0,14,0,-2120220672,1610612736,-2074083328,-2002780160,-2111830528,1073872896,1342177280,1075807216,4096,16384,2048,8192,0,8192,0,0,0,0,1,0,0,0,2,0,-2145386496,8388608,1073741824,0,2147483648,2147483648,2097152,2097152,2097152,536870912,0,0,134217728,33554432,1536,268435456,268435456,268435456,268435456,128,256,32,0,65536,131072,524288,16777216,268435456,2147483648,1572864,1835008,640,32768,65536,262144,1048576,2097152,196608,196800,196608,196608,0,131072,131072,131072,196608,196624,196608,196624,196608,196608,128,4096,16384,16384,2048,0,4,0,0,2147483648,2097152,0,1024,32,32,0,65536,1572864,1048576,32768,32768,32768,32768,196608,196608,196608,64,64,196608,196608,131072,131072,131072,131072,268435456,268435456,64,196736,196608,196608,196608,131072,196608,196608,16384,4,4,4,2,32,32,65536,1048576,12582912,1073741824,0,0,2,8,16,96,2048,32768,0,0,131072,268435456,268435456,268435456,256,256,196608,196672,196608,196608,196608,196608,4,0,256,256,256,256,32,32,32768,32,32,32,32,32768,268435456,268435456,268435456,196608,196608,196608,196624,196608,196608,196608,16,16,16,268435456,196608,64,64,64,196608,196608,196608,196672,268435456,64,64,196608,196608,16,196608,196608,196608,268435456,64,196608,131072,262144,4194304,25165824,33554432,134217728,268435456,268435456,196608,262152,8,256,512,3072,16384,200,-1073741816,8392713,40,8392718,520,807404072,40,520,100663304,0,0,-540651761,-540651761,257589048,0,262144,0,0,3,8,256,0,4,6,4100,8388612,0,0,0,3,4,8,256,512,1024,0,2097152,0,0,-537854471,-537854471,0,100663296,0,0,1,2,0,0,0,16384,0,0,0,96,14336,0,0,0,7,8,234881024,0,0,0,8,0,0,0,0,262144,0,0,16,64,384,512,0,1,1,0,12582912,0,0,0,0,33554432,67108864,-606084144,-606084144,-606084138,0,0,28,32,768,1966080,-608174080,0,0,0,14,35056,16,64,896,24576,98304,98304,131072,262144,524288,1048576,4194304,25165824,1048576,62914560,134217728,-805306368,0,384,512,16384,65536,131072,262144,29360128,33554432,134217728,268435456,1073741824,2147483648,262144,524288,1048576,29360128,33554432,524288,1048576,16777216,33554432,134217728,268435456,1073741824,0,0,0,123856,1966080,0,64,384,16384,65536,131072,16384,65536,524288,268435456,2147483648,0,0,524288,2147483648,0,0,1,16,0,256,524288,0,0,0,25,96,128,-537854471,0,0,0,32,7404800,-545259520,0,0,0,60,0,249,64768,1048576,6291456,6291456,25165824,100663296,402653184,1073741824,96,128,1280,2048,4096,57344,6291456,57344,6291456,8388608,16777216,33554432,201326592,1342177280,2147483648,0,57344,6291456,8388608,100663296,134217728,2147483648,0,0,0,1,8,16,64,128,64,128,256,1024,131072,131072,131072,262144,524288,16777216,57344,6291456,8388608,67108864,134217728,64,256,1024,2048,4096,57344,64,256,0,24576,32768,6291456,67108864,134217728,0,1,64,256,24576,32768,4194304,32768,4194304,67108864,0,0,64,256,0,0,24576,32768,0,16384,4194304,67108864,64,16384,0,0,1,64,256,16384,4194304,67108864,0,0,0,16384,0,16384,16384,0,-470447874,-470447874,-470447874,0,0,128,0,0,8,96,2048,32768,262144,8388608,35056,1376256,-471859200,0,0,14,16,224,2048,32768,2097152,4194304,8388608,-486539264,0,96,128,2048,32768,262144,2097152,262144,2097152,8388608,33554432,536870912,1073741824,2147483648,0,1610612736,2147483648,0,0,1,524288,1048576,12582912,0,0,0,151311,264503296,2097152,8388608,33554432,1610612736,2147483648,262144,8388608,33554432,536870912,67108864,4194304,0,4194304,0,4194304,4194304,0,0,524288,8388608,536870912,1073741824,2147483648,1,4097,8388609,96,2048,32768,1073741824,2147483648,0,96,2048,2147483648,0,0,96,2048,0,0,1,12582912,0,0,0,0,1641895695,1641895695,0,0,0,249,7404800,15,87808,1835008,1639972864,0,768,5120,16384,65536,1835008,1835008,12582912,16777216,1610612736,0,3,4,8,768,4096,65536,0,0,256,512,786432,8,256,512,4096,16384,1835008,16384,1835008,12582912,1610612736,0,0,0,256,0,0,0,4,8,16,32,1,2,8,256,16384,524288,16384,524288,1048576,12582912,1610612736,0,0,0,8388608,0,0,0,524288,4194304,0,0,0,8388608,-548662288,-548662288,-548662288,0,0,256,16384,65536,520093696,-1073741824,0,0,0,16777216,0,16,32,960,4096,4980736,520093696,1073741824,0,32,896,4096,57344,1048576,6291456,8388608,16777216,100663296,134217728,268435456,2147483648,0,512,786432,4194304,33554432,134217728,268435456,0,786432,4194304,134217728,268435456,0,524288,4194304,268435456,0,0,0,0,0,4194304,4194304,-540651761,0,0,0,2,4,8,16,96,128,264503296,-805306368,0,0,0,8,256,512,19456,131072,3072,16384,131072,262144,8388608,16777216,512,1024,2048,16384,131072,262144,131072,262144,8388608,33554432,201326592,268435456,0,3,4,256,1024,2048,57344,16384,131072,8388608,33554432,134217728,268435456,0,3,256,1024,16384,131072,33554432,134217728,1073741824,2147483648,0,0,256,524288,2147483648,0,3,256,33554432,134217728,1073741824,0,1,2,33554432,1,2,134217728,1073741824,0,1,2,134217728,0,0,0,64,0,0,0,16,32,896,4096,786432,4194304,16777216,33554432,201326592,268435456,1073741824,2147483648,0,0,0,15,0,4980736,4980736,4980736,70460,70460,3478332,0,0,1008,4984832,520093696,60,4864,65536,0,0,0,12,16,32,256,512,4096,65536,0,0,0,67108864,0,0,0,12,0,256,512,65536,0,0,1024,512,131072,131072,4,16,32,65536,0,4,16,32,0,0,0,4,16,0,0,16384,67108864,0,0,1,24,96,128,256,1024],r.TOKEN=[\"(0)\",\"JSONChar\",\"JSONCharRef\",\"JSONPredefinedCharRef\",\"ModuleDecl\",\"Annotation\",\"OptionDecl\",\"Operator\",\"Variable\",\"Tag\",\"EndTag\",\"PragmaContents\",\"DirCommentContents\",\"DirPIContents\",\"CDataSectionContents\",\"AttrTest\",\"Wildcard\",\"EQName\",\"IntegerLiteral\",\"DecimalLiteral\",\"DoubleLiteral\",\"PredefinedEntityRef\",\"'\\\"\\\"'\",\"EscapeApos\",\"AposChar\",\"ElementContentChar\",\"QuotAttrContentChar\",\"AposAttrContentChar\",\"NCName\",\"QName\",\"S\",\"CharRef\",\"CommentContents\",\"DocTag\",\"DocCommentContents\",\"EOF\",\"'!'\",\"'\\\"'\",\"'#'\",\"'#)'\",\"'$$'\",\"''''\",\"'('\",\"'(#'\",\"'(:'\",\"'(:~'\",\"')'\",\"'*'\",\"'*'\",\"','\",\"'-->'\",\"'.'\",\"'/'\",\"'/>'\",\"':'\",\"':)'\",\"';'\",\"'<!--'\",\"'<![CDATA['\",\"'<?'\",\"'='\",\"'>'\",\"'?'\",\"'?>'\",\"'NaN'\",\"'['\",\"']'\",\"']]>'\",\"'after'\",\"'all'\",\"'allowing'\",\"'ancestor'\",\"'ancestor-or-self'\",\"'and'\",\"'any'\",\"'append'\",\"'array'\",\"'as'\",\"'ascending'\",\"'at'\",\"'attribute'\",\"'base-uri'\",\"'before'\",\"'boundary-space'\",\"'break'\",\"'by'\",\"'case'\",\"'cast'\",\"'castable'\",\"'catch'\",\"'check'\",\"'child'\",\"'collation'\",\"'collection'\",\"'comment'\",\"'constraint'\",\"'construction'\",\"'contains'\",\"'content'\",\"'context'\",\"'continue'\",\"'copy'\",\"'copy-namespaces'\",\"'count'\",\"'decimal-format'\",\"'decimal-separator'\",\"'declare'\",\"'default'\",\"'delete'\",\"'descendant'\",\"'descendant-or-self'\",\"'descending'\",\"'diacritics'\",\"'different'\",\"'digit'\",\"'distance'\",\"'div'\",\"'document'\",\"'document-node'\",\"'element'\",\"'else'\",\"'empty'\",\"'empty-sequence'\",\"'encoding'\",\"'end'\",\"'entire'\",\"'eq'\",\"'every'\",\"'exactly'\",\"'except'\",\"'exit'\",\"'external'\",\"'first'\",\"'following'\",\"'following-sibling'\",\"'for'\",\"'foreach'\",\"'foreign'\",\"'from'\",\"'ft-option'\",\"'ftand'\",\"'ftnot'\",\"'ftor'\",\"'function'\",\"'ge'\",\"'greatest'\",\"'group'\",\"'grouping-separator'\",\"'gt'\",\"'idiv'\",\"'if'\",\"'import'\",\"'in'\",\"'index'\",\"'infinity'\",\"'inherit'\",\"'insensitive'\",\"'insert'\",\"'instance'\",\"'integrity'\",\"'intersect'\",\"'into'\",\"'is'\",\"'item'\",\"'json'\",\"'json-item'\",\"'key'\",\"'language'\",\"'last'\",\"'lax'\",\"'le'\",\"'least'\",\"'let'\",\"'levels'\",\"'loop'\",\"'lowercase'\",\"'lt'\",\"'minus-sign'\",\"'mod'\",\"'modify'\",\"'module'\",\"'most'\",\"'namespace'\",\"'namespace-node'\",\"'ne'\",\"'next'\",\"'no'\",\"'no-inherit'\",\"'no-preserve'\",\"'node'\",\"'nodes'\",\"'not'\",\"'object'\",\"'occurs'\",\"'of'\",\"'on'\",\"'only'\",\"'option'\",\"'or'\",\"'order'\",\"'ordered'\",\"'ordering'\",\"'paragraph'\",\"'paragraphs'\",\"'parent'\",\"'pattern-separator'\",\"'per-mille'\",\"'percent'\",\"'phrase'\",\"'position'\",\"'preceding'\",\"'preceding-sibling'\",\"'preserve'\",\"'previous'\",\"'processing-instruction'\",\"'relationship'\",\"'rename'\",\"'replace'\",\"'return'\",\"'returning'\",\"'revalidation'\",\"'same'\",\"'satisfies'\",\"'schema'\",\"'schema-attribute'\",\"'schema-element'\",\"'score'\",\"'self'\",\"'sensitive'\",\"'sentence'\",\"'sentences'\",\"'skip'\",\"'sliding'\",\"'some'\",\"'stable'\",\"'start'\",\"'stemming'\",\"'stop'\",\"'strict'\",\"'strip'\",\"'structured-item'\",\"'switch'\",\"'text'\",\"'then'\",\"'thesaurus'\",\"'times'\",\"'to'\",\"'treat'\",\"'try'\",\"'tumbling'\",\"'type'\",\"'typeswitch'\",\"'union'\",\"'unique'\",\"'unordered'\",\"'updating'\",\"'uppercase'\",\"'using'\",\"'validate'\",\"'value'\",\"'variable'\",\"'version'\",\"'weight'\",\"'when'\",\"'where'\",\"'while'\",\"'wildcards'\",\"'window'\",\"'with'\",\"'without'\",\"'word'\",\"'words'\",\"'xquery'\",\"'zero-digit'\",\"'{'\",\"'{{'\",\"'|'\",\"'}'\",\"'}}'\"]},{}],2:[function(e,t,n){\"use strict\";var r=e(\"./JSONiqTokenizer\").JSONiqTokenizer,i=e(\"./lexer\").Lexer,s=\"NaN|after|allowing|ancestor|ancestor-or-self|and|append|array|as|ascending|at|attribute|base-uri|before|boundary-space|break|by|case|cast|castable|catch|child|collation|comment|constraint|construction|contains|context|continue|copy|copy-namespaces|count|decimal-format|decimal-separator|declare|default|delete|descendant|descendant-or-self|descending|digit|div|document|document-node|element|else|empty|empty-sequence|encoding|end|eq|every|except|exit|external|false|first|following|following-sibling|for|from|ft-option|function|ge|greatest|group|grouping-separator|gt|idiv|if|import|in|index|infinity|insert|instance|integrity|intersect|into|is|item|json|json-item|jsoniq|last|lax|le|least|let|loop|lt|minus-sign|mod|modify|module|namespace|namespace-node|ne|next|node|nodes|not|null|object|of|only|option|or|order|ordered|ordering|paragraphs|parent|pattern-separator|per-mille|percent|preceding|preceding-sibling|previous|processing-instruction|rename|replace|return|returning|revalidation|satisfies|schema|schema-attribute|schema-element|score|select|self|sentences|sliding|some|stable|start|strict|switch|text|then|times|to|treat|true|try|tumbling|type|typeswitch|union|unordered|updating|validate|value|variable|version|when|where|while|window|with|words|xquery|zero-digit\".split(\"|\"),o=s.map(function(e){return{name:\"'\"+e+\"'\",token:\"keyword\"}}),u=s.map(function(e){return{name:\"'\"+e+\"'\",token:\"text\",next:function(e){e.pop()}}}),a=\"constant.language\",f=\"constant\",l=\"comment\",c=\"xml-pe\",h=\"constant.buildin\",p=function(e){return\"'\"+e+\"'\"},d={start:[{name:p(\"(#\"),token:h,next:function(e){e.push(\"Pragma\")}},{name:p(\"(:\"),token:\"comment\",next:function(e){e.push(\"Comment\")}},{name:p(\"(:~\"),token:\"comment.doc\",next:function(e){e.push(\"CommentDoc\")}},{name:p(\"<!--\"),token:l,next:function(e){e.push(\"XMLComment\")}},{name:p(\"<?\"),token:c,next:function(e){e.push(\"PI\")}},{name:p(\"''\"),token:\"string\",next:function(e){e.push(\"AposString\")}},{name:p('\"'),token:\"string\",next:function(e){e.push(\"QuotString\")}},{name:\"Annotation\",token:\"support.function\"},{name:\"ModuleDecl\",token:\"keyword\",next:function(e){e.push(\"Prefix\")}},{name:\"OptionDecl\",token:\"keyword\",next:function(e){e.push(\"_EQName\")}},{name:\"AttrTest\",token:\"support.type\"},{name:\"Variable\",token:\"variable\"},{name:p(\"<![CDATA[\"),token:a,next:function(e){e.push(\"CData\")}},{name:\"IntegerLiteral\",token:f},{name:\"DecimalLiteral\",token:f},{name:\"DoubleLiteral\",token:f},{name:\"Operator\",token:\"keyword.operator\"},{name:\"EQName\",token:function(e){return s.indexOf(e)!==-1?\"keyword\":\"support.function\"}},{name:p(\"(\"),token:\"lparen\"},{name:p(\")\"),token:\"rparen\"},{name:\"Tag\",token:\"meta.tag\",next:function(e){e.push(\"StartTag\")}},{name:p(\"}\"),token:\"text\",next:function(e){e.length>1&&e.pop()}},{name:p(\"{\"),token:\"text\",next:function(e){e.push(\"start\")}}].concat(o),_EQName:[{name:\"EQName\",token:\"text\",next:function(e){e.pop()}}].concat(u),Prefix:[{name:\"NCName\",token:\"text\",next:function(e){e.pop()}}].concat(u),StartTag:[{name:p(\">\"),token:\"meta.tag\",next:function(e){e.push(\"TagContent\")}},{name:\"QName\",token:\"entity.other.attribute-name\"},{name:p(\"=\"),token:\"text\"},{name:p(\"''\"),token:\"string\",next:function(e){e.push(\"AposAttr\")}},{name:p('\"'),token:\"string\",next:function(e){e.push(\"QuotAttr\")}},{name:p(\"/>\"),token:\"meta.tag.r\",next:function(e){e.pop()}}],TagContent:[{name:\"ElementContentChar\",token:\"text\"},{name:p(\"<![CDATA[\"),token:a,next:function(e){e.push(\"CData\")}},{name:p(\"<!--\"),token:l,next:function(e){e.push(\"XMLComment\")}},{name:\"Tag\",token:\"meta.tag\",next:function(e){e.push(\"StartTag\")}},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:p(\"{{\"),token:\"text\"},{name:p(\"}}\"),token:\"text\"},{name:p(\"{\"),token:\"text\",next:function(e){e.push(\"start\")}},{name:\"EndTag\",token:\"meta.tag\",next:function(e){e.pop(),e.pop()}}],AposAttr:[{name:p(\"''\"),token:\"string\",next:function(e){e.pop()}},{name:\"EscapeApos\",token:\"constant.language.escape\"},{name:\"AposAttrContentChar\",token:\"string\"},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:p(\"{{\"),token:\"string\"},{name:p(\"}}\"),token:\"string\"},{name:p(\"{\"),token:\"text\",next:function(e){e.push(\"start\")}}],QuotAttr:[{name:p('\"'),token:\"string\",next:function(e){e.pop()}},{name:\"EscapeQuot\",token:\"constant.language.escape\"},{name:\"QuotAttrContentChar\",token:\"string\"},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:p(\"{{\"),token:\"string\"},{name:p(\"}}\"),token:\"string\"},{name:p(\"{\"),token:\"text\",next:function(e){e.push(\"start\")}}],Pragma:[{name:\"PragmaContents\",token:h},{name:p(\"#\"),token:h},{name:p(\"#)\"),token:h,next:function(e){e.pop()}}],Comment:[{name:\"CommentContents\",token:\"comment\"},{name:p(\"(:\"),token:\"comment\",next:function(e){e.push(\"Comment\")}},{name:p(\":)\"),token:\"comment\",next:function(e){e.pop()}}],CommentDoc:[{name:\"DocCommentContents\",token:\"comment.doc\"},{name:\"DocTag\",token:\"comment.doc.tag\"},{name:p(\"(:\"),token:\"comment.doc\",next:function(e){e.push(\"CommentDoc\")}},{name:p(\":)\"),token:\"comment.doc\",next:function(e){e.pop()}}],XMLComment:[{name:\"DirCommentContents\",token:l},{name:p(\"-->\"),token:l,next:function(e){e.pop()}}],CData:[{name:\"CDataSectionContents\",token:a},{name:p(\"]]>\"),token:a,next:function(e){e.pop()}}],PI:[{name:\"DirPIContents\",token:c},{name:p(\"?\"),token:c},{name:p(\"?>\"),token:c,next:function(e){e.pop()}}],AposString:[{name:p(\"''\"),token:\"string\",next:function(e){e.pop()}},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:\"EscapeApos\",token:\"constant.language.escape\"},{name:\"AposChar\",token:\"string\"}],QuotString:[{name:p('\"'),token:\"string\",next:function(e){e.pop()}},{name:\"JSONPredefinedCharRef\",token:\"constant.language.escape\"},{name:\"JSONCharRef\",token:\"constant.language.escape\"},{name:\"JSONChar\",token:\"string\"}]};n.JSONiqLexer=function(){return new i(r,d)}},{\"./JSONiqTokenizer\":1,\"./lexer\":3}],3:[function(e,t,n){\"use strict\";var r=function(e){var t=e;this.tokens=[],this.reset=function(){t=t,this.tokens=[]},this.startNonterminal=function(){},this.endNonterminal=function(){},this.terminal=function(e,n,r){this.tokens.push({name:e,value:t.substring(n,r)})},this.whitespace=function(e,n){this.tokens.push({name:\"WS\",value:t.substring(e,n)})}};n.Lexer=function(e,t){this.tokens=[],this.getLineTokens=function(n,i){i=i===\"start\"||!i?'[\"start\"]':i;var s=JSON.parse(i),o=new r(n),u=new e(n,o),a=[];for(;;){var f=s[s.length-1];try{o.tokens=[],u[\"parse_\"+f]();var l=null;o.tokens.length>1&&o.tokens[0].name===\"WS\"&&(a.push({type:\"text\",value:o.tokens[0].value}),o.tokens.splice(0,1));var c=o.tokens[0],h=t[f];for(var p=0;p<h.length;p++){var d=t[f][p];if(typeof d.name==\"function\"&&d.name(c)||d.name===c.name){l=d;break}}if(c.name===\"EOF\")break;if(c.value===\"\")throw\"Encountered empty string lexical rule.\";a.push({type:l===null?\"text\":typeof l.token==\"function\"?l.token(c.value):l.token,value:c.value}),l&&l.next&&l.next(s)}catch(v){if(v instanceof u.ParseException){var m=0;for(var g=0;g<a.length;g++)m+=a[g].value.length;return a.push({type:\"text\",value:n.substring(m)}),{tokens:a,state:JSON.stringify([\"start\"])}}throw v}}return{tokens:a,state:JSON.stringify(s)}}}},{}]},{},[2])(2)}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/behaviour/xquery\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/mode/behaviour/xml\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function a(e,t){var n=!0,r=e.type.split(\".\"),i=t.split(\".\");return i.forEach(function(e){if(r.indexOf(e)==-1)return n=!1,!1}),n}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../behaviour/xml\").XmlBehaviour,u=e(\"../../token_iterator\").TokenIterator,f=function(){this.inherit(s,[\"braces\",\"parens\",\"string_dquotes\"]),this.inherit(o),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var s=n.getCursorPosition(),o=new u(r,s.row,s.column),f=o.getCurrentToken(),l=!1,e=JSON.parse(e).pop();if(f&&f.value===\">\"||e!==\"StartTag\")return;if(!f||!a(f,\"meta.tag\")&&(!a(f,\"text\")||!f.value.match(\"/\"))){do f=o.stepBackward();while(f&&(a(f,\"string\")||a(f,\"keyword.operator\")||a(f,\"entity.attribute-name\")||a(f,\"text\")))}else l=!0;var c=o.stepBackward();if(!f||!a(f,\"meta.tag\")||c!==null&&c.value.match(\"/\"))return;var h=f.value.substring(1);if(l)var h=h.substring(0,s.column-f.start);return{text:\"></\"+h+\">\",selection:[1,1]}}})};r.inherits(f,i),t.XQueryBehaviour=f}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/jsoniq\",[\"require\",\"exports\",\"module\",\"ace/worker/worker_client\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/xquery/jsoniq_lexer\",\"ace/range\",\"ace/mode/behaviour/xquery\",\"ace/mode/folding/cstyle\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"../worker/worker_client\").WorkerClient,i=e(\"../lib/oop\"),s=e(\"./text\").Mode,o=e(\"./text_highlight_rules\").TextHighlightRules,u=e(\"./xquery/jsoniq_lexer\").JSONiqLexer,a=e(\"../range\").Range,f=e(\"./behaviour/xquery\").XQueryBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=e(\"../anchor\").Anchor,h=function(){this.$tokenizer=new u,this.$behaviour=new f,this.foldingRules=new l,this.$highlightRules=new o};i.inherits(h,s),function(){this.completer={getCompletions:function(e,t,n,r,i){if(!t.$worker)return i();t.$worker.emit(\"complete\",{data:{pos:n,prefix:r}}),t.$worker.on(\"complete\",function(e){i(null,e.data)})}},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=t.match(/\\s*(?:then|else|return|[{\\(]|<\\w+>)\\s*$/);return i&&(r+=n),r},this.checkOutdent=function(e,t,n){return/^\\s+$/.test(t)?/^\\s*[\\}\\)]/.test(n):!1},this.autoOutdent=function(e,t,n){var r=t.getLine(n),i=r.match(/^(\\s*[\\}\\)])/);if(!i)return 0;var s=i[1].length,o=t.findMatchingBracket({row:n,column:s});if(!o||o.row==n)return 0;var u=this.$getIndent(t.getLine(o.row));t.replace(new a(n,0,n,s-1),u)},this.toggleCommentLines=function(e,t,n,r){var i,s,o=!0,u=/^\\s*\\(:(.*):\\)/;for(i=n;i<=r;i++)if(!u.test(t.getLine(i))){o=!1;break}var f=new a(0,0,0,0);for(i=n;i<=r;i++)s=t.getLine(i),f.start.row=i,f.end.row=i,f.end.column=s.length,t.replace(f,o?s.match(u)[1]:\"(:\"+s+\":)\")},this.createWorker=function(e){var t=new r([\"ace\"],\"ace/mode/xquery_worker\",\"XQueryWorker\"),n=this;return t.attachToDocument(e.getDocument()),t.on(\"ok\",function(t){e.clearAnnotations()}),t.on(\"markers\",function(t){e.clearAnnotations(),n.addMarkers(t.data,e)}),t},this.removeMarkers=function(e){var t=e.getMarkers(!1);for(var n in t)t[n].clazz.indexOf(\"language_highlight_\")===0&&e.removeMarker(n);for(var r=0;r<e.markerAnchors.length;r++)e.markerAnchors[r].detach();e.markerAnchors=[]},this.addMarkers=function(e,t){var n=this;t.markerAnchors||(t.markerAnchors=[]),this.removeMarkers(t),t.languageAnnos=[],e.forEach(function(e){function u(i){r&&t.removeMarker(r),o.row=n.row;if(e.pos.sc!==undefined&&e.pos.ec!==undefined){var s=new a(e.pos.sl,e.pos.sc,e.pos.el,e.pos.ec);r=t.addMarker(s,\"language_highlight_\"+(e.type?e.type:\"default\"))}i&&t.setAnnotations(t.languageAnnos)}var n=new c(t.getDocument(),e.pos.sl,e.pos.sc||0);t.markerAnchors.push(n);var r,i=e.pos.ec-e.pos.sc,s=e.pos.el-e.pos.sl,o={guttertext:e.message,type:e.level||\"warning\",text:e.message};u(),n.on(\"change\",function(){u(!0)}),e.message&&t.languageAnnos.push(o)}),t.setAnnotations(t.languageAnnos)},this.$id=\"ace/mode/jsoniq\"}.call(h.prototype),t.Mode=h})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-jsp.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/java_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while\",t=\"null|Infinity|NaN|undefined\",n=\"AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object\",r=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"constant.language\":t,\"support.function\":n},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.[\\d_]*)?(?:[eE][+-]?[\\d_]+)?)?[LlSsDdFfYy]?\\b/},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.JavaHighlightRules=o}),ace.define(\"ace/mode/jsp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/java_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=e(\"./java_highlight_rules\").JavaHighlightRules,o=function(){i.call(this);var e=\"request|response|out|session|application|config|pageContext|page|Exception\",t=\"page|include|taglib\",n=[{token:\"comment\",regex:\"<%--\",push:\"jsp-dcomment\"},{token:\"meta.tag\",regex:\"<%@?|<%=?|<%!?|<jsp:[^>]+>\",push:\"jsp-start\"}],r=[{token:\"meta.tag\",regex:\"%>|<\\\\/jsp:[^>]+>\",next:\"pop\"},{token:\"variable.language\",regex:e},{token:\"keyword\",regex:t}];for(var o in this.$rules)this.$rules[o].unshift.apply(this.$rules[o],n);this.embedRules(s,\"jsp-\",r,[\"start\"]),this.addRules({\"jsp-dcomment\":[{token:\"comment\",regex:\".*?--%>\",next:\"pop\"}]}),this.normalizeRules()};r.inherits(o,i),t.JspHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/jsp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jsp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./jsp_highlight_rules\").JspHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.$id=\"ace/mode/jsp\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-jsx.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/jsx_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){var e=i.arrayToMap(\"break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|if|throw|delete|in|try|class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|number|int|string|boolean|variant|log|assert\".split(\"|\")),t=i.arrayToMap(\"null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined\".split(\"|\")),n=i.arrayToMap(\"debugger|with|const|export|let|private|public|yield|protected|extern|native|as|operator|__fake__|__readonly__\".split(\"|\")),r=\"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\";this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},s.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:[\"storage.type\",\"text\",\"entity.name.function\"],regex:\"(function)(\\\\s+)(\"+r+\")\"},{token:function(r){return r==\"this\"?\"variable.language\":r==\"function\"?\"storage.type\":e.hasOwnProperty(r)||n.hasOwnProperty(r)?\"keyword\":t.hasOwnProperty(r)?\"constant.language\":/^_?[A-Z][a-zA-Z0-9_]*$/.test(r)?\"language.support.class\":\"identifier\"},regex:r},{token:\"keyword.operator\",regex:\"!|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({<]\"},{token:\"paren.rparen\",regex:\"[\\\\])}>]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.embedRules(s,\"doc-\",[s.getEndRule(\"start\")])};r.inherits(u,o),t.JsxHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/jsx\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jsx_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";function f(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a}var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./jsx_highlight_rules\").JsxHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode;r.inherits(f,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[]\\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/jsx\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-julia.js",
    "content": "ace.define(\"ace/mode/julia_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{include:\"#function_decl\"},{include:\"#function_call\"},{include:\"#type_decl\"},{include:\"#keyword\"},{include:\"#operator\"},{include:\"#number\"},{include:\"#string\"},{include:\"#comment\"}],\"#bracket\":[{token:\"keyword.bracket.julia\",regex:\"\\\\(|\\\\)|\\\\[|\\\\]|\\\\{|\\\\}|,\"}],\"#comment\":[{token:[\"punctuation.definition.comment.julia\",\"comment.line.number-sign.julia\"],regex:\"(#)(?!\\\\{)(.*$)\"}],\"#function_call\":[{token:[\"support.function.julia\",\"text\"],regex:\"([a-zA-Z0-9_]+!?)([\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]*\\\\()\"}],\"#function_decl\":[{token:[\"keyword.other.julia\",\"meta.function.julia\",\"entity.name.function.julia\",\"meta.function.julia\",\"text\"],regex:\"(function|macro)(\\\\s*)([a-zA-Z0-9_\\\\{]+!?)([\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]*)([(\\\\\\\\{])\"}],\"#keyword\":[{token:\"keyword.other.julia\",regex:\"\\\\b(?:function|type|immutable|macro|quote|abstract|bitstype|typealias|module|baremodule|new)\\\\b\"},{token:\"keyword.control.julia\",regex:\"\\\\b(?:if|else|elseif|while|for|in|begin|let|end|do|try|catch|finally|return|break|continue)\\\\b\"},{token:\"storage.modifier.variable.julia\",regex:\"\\\\b(?:global|local|const|export|import|importall|using)\\\\b\"},{token:\"variable.macro.julia\",regex:\"@[\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]+\\\\b\"}],\"#number\":[{token:\"constant.numeric.julia\",regex:\"\\\\b0(?:x|X)[0-9a-fA-F]*|(?:\\\\b[0-9]+\\\\.?[0-9]*|\\\\.[0-9]+)(?:(?:e|E)(?:\\\\+|-)?[0-9]*)?(?:im)?|\\\\bInf(?:32)?\\\\b|\\\\bNaN(?:32)?\\\\b|\\\\btrue\\\\b|\\\\bfalse\\\\b\"}],\"#operator\":[{token:\"keyword.operator.update.julia\",regex:\"=|:=|\\\\+=|-=|\\\\*=|/=|//=|\\\\.//=|\\\\.\\\\*=|\\\\\\\\=|\\\\.\\\\\\\\=|^=|\\\\.^=|%=|\\\\|=|&=|\\\\$=|<<=|>>=\"},{token:\"keyword.operator.ternary.julia\",regex:\"\\\\?|:\"},{token:\"keyword.operator.boolean.julia\",regex:\"\\\\|\\\\||&&|!\"},{token:\"keyword.operator.arrow.julia\",regex:\"->|<-|-->\"},{token:\"keyword.operator.relation.julia\",regex:\">|<|>=|<=|==|!=|\\\\.>|\\\\.<|\\\\.>=|\\\\.>=|\\\\.==|\\\\.!=|\\\\.=|\\\\.!|<:|:>\"},{token:\"keyword.operator.range.julia\",regex:\":\"},{token:\"keyword.operator.shift.julia\",regex:\"<<|>>\"},{token:\"keyword.operator.bitwise.julia\",regex:\"\\\\||\\\\&|~\"},{token:\"keyword.operator.arithmetic.julia\",regex:\"\\\\+|-|\\\\*|\\\\.\\\\*|/|\\\\./|//|\\\\.//|%|\\\\.%|\\\\\\\\|\\\\.\\\\\\\\|\\\\^|\\\\.\\\\^\"},{token:\"keyword.operator.isa.julia\",regex:\"::\"},{token:\"keyword.operator.dots.julia\",regex:\"\\\\.(?=[a-zA-Z])|\\\\.\\\\.+\"},{token:\"keyword.operator.interpolation.julia\",regex:\"\\\\$#?(?=.)\"},{token:[\"variable\",\"keyword.operator.transposed-variable.julia\"],regex:\"([\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]+)((?:'|\\\\.')*\\\\.?')\"},{token:\"text\",regex:\"\\\\[|\\\\(\"},{token:[\"text\",\"keyword.operator.transposed-matrix.julia\"],regex:\"([\\\\]\\\\)])((?:'|\\\\.')*\\\\.?')\"}],\"#string\":[{token:\"punctuation.definition.string.begin.julia\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.julia\",regex:\"'\",next:\"pop\"},{include:\"#string_escaped_char\"},{defaultToken:\"string.quoted.single.julia\"}]},{token:\"punctuation.definition.string.begin.julia\",regex:'\"',push:[{token:\"punctuation.definition.string.end.julia\",regex:'\"',next:\"pop\"},{include:\"#string_escaped_char\"},{defaultToken:\"string.quoted.double.julia\"}]},{token:\"punctuation.definition.string.begin.julia\",regex:'\\\\b[\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]+\"',push:[{token:\"punctuation.definition.string.end.julia\",regex:'\"[\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]*',next:\"pop\"},{include:\"#string_custom_escaped_char\"},{defaultToken:\"string.quoted.custom-double.julia\"}]},{token:\"punctuation.definition.string.begin.julia\",regex:\"`\",push:[{token:\"punctuation.definition.string.end.julia\",regex:\"`\",next:\"pop\"},{include:\"#string_escaped_char\"},{defaultToken:\"string.quoted.backtick.julia\"}]}],\"#string_custom_escaped_char\":[{token:\"constant.character.escape.julia\",regex:'\\\\\\\\\"'}],\"#string_escaped_char\":[{token:\"constant.character.escape.julia\",regex:\"\\\\\\\\(?:\\\\\\\\|[0-3]\\\\d{,2}|[4-7]\\\\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8}|.)\"}],\"#type_decl\":[{token:[\"keyword.control.type.julia\",\"meta.type.julia\",\"entity.name.type.julia\",\"entity.other.inherited-class.julia\",\"punctuation.separator.inheritance.julia\",\"entity.other.inherited-class.julia\"],regex:\"(type|immutable)(\\\\s+)([a-zA-Z0-9_]+)(?:(\\\\s*)(<:)(\\\\s*[.a-zA-Z0-9_:]+))?\"},{token:[\"other.typed-variable.julia\",\"support.type.julia\"],regex:\"([a-zA-Z0-9_]+)(::[a-zA-Z0-9_{}]+)\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"jl\"],firstLineMatch:\"^#!.*\\\\bjulia\\\\s*$\",foldingStartMarker:\"^\\\\s*(?:if|while|for|begin|function|macro|module|baremodule|type|immutable|let)\\\\b(?!.*\\\\bend\\\\b).*$\",foldingStopMarker:\"^\\\\s*(?:end)\\\\b.*$\",name:\"Julia\",scopeName:\"source.julia\"},r.inherits(s,i),t.JuliaHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/julia\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/julia_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./julia_highlight_rules\").JuliaHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"#\",this.blockComment=\"\",this.$id=\"ace/mode/julia\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-latex.js",
    "content": "ace.define(\"ace/mode/latex_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment\",regex:\"%.*$\"},{token:[\"keyword\",\"lparen\",\"variable.parameter\",\"rparen\",\"lparen\",\"storage.type\",\"rparen\"],regex:\"(\\\\\\\\(?:documentclass|usepackage|input))(?:(\\\\[)([^\\\\]]*)(\\\\]))?({)([^}]*)(})\"},{token:[\"keyword\",\"lparen\",\"variable.parameter\",\"rparen\"],regex:\"(\\\\\\\\(?:label|v?ref|cite(?:[^{]*)))(?:({)([^}]*)(}))?\"},{token:[\"storage.type\",\"lparen\",\"variable.parameter\",\"rparen\"],regex:\"(\\\\\\\\(?:begin|end))({)(\\\\w*)(})\"},{token:\"storage.type\",regex:\"\\\\\\\\[a-zA-Z]+\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"constant.character.escape\",regex:\"\\\\\\\\[^a-zA-Z]?\"},{token:\"string\",regex:\"\\\\${1,2}\",next:\"equation\"}],equation:[{token:\"comment\",regex:\"%.*$\"},{token:\"string\",regex:\"\\\\${1,2}\",next:\"start\"},{token:\"constant.character.escape\",regex:\"\\\\\\\\(?:[^a-zA-Z]|[a-zA-Z]+)\"},{token:\"error\",regex:\"^\\\\s*$\",next:\"start\"},{defaultToken:\"string\"}]}};r.inherits(s,i),t.LatexHighlightRules=s}),ace.define(\"ace/mode/folding/latex\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=e(\"../../token_iterator\").TokenIterator,u=t.FoldMode=function(){};r.inherits(u,i),function(){this.foldingStartMarker=/^\\s*\\\\(begin)|(section|subsection|paragraph)\\b|{\\s*$/,this.foldingStopMarker=/^\\s*\\\\(end)\\b|^\\s*}/,this.getFoldWidgetRange=function(e,t,n){var r=e.doc.getLine(n),i=this.foldingStartMarker.exec(r);if(i)return i[1]?this.latexBlock(e,n,i[0].length-1):i[2]?this.latexSection(e,n,i[0].length-1):this.openingBracketBlock(e,\"{\",n,i.index);var i=this.foldingStopMarker.exec(r);if(i)return i[1]?this.latexBlock(e,n,i[0].length-1):this.closingBracketBlock(e,\"}\",n,i.index+i[0].length)},this.latexBlock=function(e,t,n){var r={\"\\\\begin\":1,\"\\\\end\":-1},i=new o(e,t,n),u=i.getCurrentToken();if(!u||u.type!=\"storage.type\"&&u.type!=\"constant.character.escape\")return;var a=u.value,f=r[a],l=function(){var e=i.stepForward(),t=e.type==\"lparen\"?i.stepForward().value:\"\";return f===-1&&(i.stepBackward(),t&&i.stepBackward()),t},c=[l()],h=f===-1?i.getCurrentTokenColumn():e.getLine(t).length,p=t;i.step=f===-1?i.stepBackward:i.stepForward;while(u=i.step()){if(!u||u.type!=\"storage.type\"&&u.type!=\"constant.character.escape\")continue;var d=r[u.value];if(!d)continue;var v=l();if(d===f)c.unshift(v);else if(c.shift()!==v||!c.length)break}if(c.length)return;var t=i.getCurrentTokenRow();return f===-1?new s(t,e.getLine(t).length,p,h):(i.stepBackward(),new s(p,h,t,i.getCurrentTokenColumn()))},this.latexSection=function(e,t,n){var r=[\"\\\\subsection\",\"\\\\section\",\"\\\\begin\",\"\\\\end\",\"\\\\paragraph\"],i=new o(e,t,n),u=i.getCurrentToken();if(!u||u.type!=\"storage.type\")return;var a=r.indexOf(u.value),f=0,l=t;while(u=i.stepForward()){if(u.type!==\"storage.type\")continue;var c=r.indexOf(u.value);if(c>=2){f||(l=i.getCurrentTokenRow()-1),f+=c==2?1:-1;if(f<0)break}else if(c>=a)break}f||(l=i.getCurrentTokenRow()-1);while(l>t&&!/\\S/.test(e.getLine(l)))l--;return new s(t,e.getLine(t).length,l,e.getLine(l).length)}}.call(u.prototype)}),ace.define(\"ace/mode/latex\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/latex_highlight_rules\",\"ace/mode/folding/latex\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./latex_highlight_rules\").LatexHighlightRules,o=e(\"./folding/latex\").FoldMode,u=e(\"../range\").Range,a=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(a,i),function(){this.type=\"text\",this.lineCommentStart=\"%\",this.$id=\"ace/mode/latex\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-lean.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/lean_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=[\"add_rewrite\",\"alias\",\"as\",\"assume\",\"attribute\",\"begin\",\"by\",\"calc\",\"calc_refl\",\"calc_subst\",\"calc_trans\",\"check\",\"classes\",\"coercions\",\"conjecture\",\"constants\",\"context\",\"corollary\",\"else\",\"end\",\"environment\",\"eval\",\"example\",\"exists\",\"exit\",\"export\",\"exposing\",\"extends\",\"fields\",\"find_decl\",\"forall\",\"from\",\"fun\",\"have\",\"help\",\"hiding\",\"if\",\"import\",\"in\",\"infix\",\"infixl\",\"infixr\",\"instances\",\"let\",\"local\",\"match\",\"namespace\",\"notation\",\"obtain\",\"obtains\",\"omit\",\"opaque\",\"open\",\"options\",\"parameter\",\"parameters\",\"postfix\",\"precedence\",\"prefix\",\"premise\",\"premises\",\"print\",\"private\",\"proof\",\"protected\",\"qed\",\"raw\",\"renaming\",\"section\",\"set_option\",\"show\",\"tactic_hint\",\"take\",\"then\",\"universe\",\"universes\",\"using\",\"variable\",\"variables\",\"with\"].join(\"|\"),t=[\"inductive\",\"structure\",\"record\",\"theorem\",\"axiom\",\"axioms\",\"lemma\",\"hypothesis\",\"definition\",\"constant\"].join(\"|\"),n=[\"Prop\",\"Type\",\"Type'\",\"Type\\u208a\",\"Type\\u2081\",\"Type\\u2082\",\"Type\\u2083\"].join(\"|\"),r=\"\\\\[(\"+[\"abbreviations\",\"all-transparent\",\"begin-end-hints\",\"class\",\"classes\",\"coercion\",\"coercions\",\"declarations\",\"decls\",\"instance\",\"irreducible\",\"multiple-instances\",\"notation\",\"notations\",\"parsing-only\",\"persistent\",\"reduce-hints\",\"reducible\",\"tactic-hints\",\"visible\",\"wf\",\"whnf\"].join(\"|\")+\")\\\\]\",s=[].join(\"|\"),o=this.$keywords=this.createKeywordMapper({\"keyword.control\":e,\"storage.type\":n,\"keyword.operator\":s,\"variable.language\":\"sorry\"},\"identifier\"),u=\"[A-Za-z_\\u03b1-\\u03ba\\u03bc-\\u03fb\\u1f00-\\u1ffe\\u2100-\\u214f][A-Za-z0-9_'\\u03b1-\\u03ba\\u03bc-\\u03fb\\u1f00-\\u1ffe\\u2070-\\u2079\\u207f-\\u2089\\u2090-\\u209c\\u2100-\\u214f]*\",a=new RegExp([\"#\",\"@\",\"->\",\"\\u223c\",\"\\u2194\",\"/\",\"==\",\"=\",\":=\",\"<->\",\"/\\\\\",\"\\\\/\",\"\\u2227\",\"\\u2228\",\"\\u2260\",\"<\",\">\",\"\\u2264\",\"\\u2265\",\"\\u00ac\",\"<=\",\">=\",\"\\u207b\\u00b9\",\"\\u2b1d\",\"\\u25b8\",\"\\\\+\",\"\\\\*\",\"-\",\"/\",\"\\u03bb\",\"\\u2192\",\"\\u2203\",\"\\u2200\",\":=\"].join(\"|\"));this.$rules={start:[{token:\"comment\",regex:\"--.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/-\",next:\"comment\"},{stateName:\"qqstring\",token:\"string.start\",regex:'\"',next:[{token:\"string.end\",regex:'\"',next:\"start\"},{token:\"constant.language.escape\",regex:/\\\\[n\"\\\\]/},{defaultToken:\"string\"}]},{token:\"keyword.control\",regex:t,next:[{token:\"variable.language\",regex:u,next:\"start\"}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"storage.modifier\",regex:r},{token:o,regex:u},{token:\"operator\",regex:a},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"-/\",next:\"start\"},{defaultToken:\"comment\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(o,s),t.leanHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/lean\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/lean_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./lean_highlight_rules\").leanHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=function(){this.HighlightRules=s,this.$outdent=new o};r.inherits(a,i),function(){this.lineCommentStart=\"--\",this.blockComment={start:\"/-\",end:\"-/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"- \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/lean\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-less.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/less_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/css_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=e(\"./css_highlight_rules\"),o=function(){var e=\"@import|@media|@font-face|@keyframes|@-webkit-keyframes|@supports|@charset|@plugin|@namespace|@document|@page|@viewport|@-ms-viewport|or|and|when|not\",t=e.split(\"|\"),n=s.supportType.split(\"|\"),r=this.createKeywordMapper({\"support.constant\":s.supportConstant,keyword:e,\"support.constant.color\":s.supportConstantColor,\"support.constant.fonts\":s.supportConstantFonts},\"identifier\",!0),i=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+i+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:\"constant.numeric\",regex:i},{token:[\"support.function\",\"paren.lparen\",\"string\",\"paren.rparen\"],regex:\"(url)(\\\\()(.*)(\\\\))\"},{token:[\"support.function\",\"paren.lparen\"],regex:\"(:extend|[a-z0-9_\\\\-]+)(\\\\()\"},{token:function(e){return t.indexOf(e.toLowerCase())>-1?\"keyword\":\"variable\"},regex:\"[@\\\\$][a-z0-9_\\\\-@\\\\$]*\\\\b\"},{token:\"variable\",regex:\"[@\\\\$]\\\\{[a-z0-9_\\\\-@\\\\$]*\\\\}\"},{token:function(e,t){return n.indexOf(e.toLowerCase())>-1?[\"support.type.property\",\"text\"]:[\"support.type.unknownProperty\",\"text\"]},regex:\"([a-z0-9-_]+)(\\\\s*:)\"},{token:\"keyword\",regex:\"&\"},{token:r,regex:\"\\\\-?[@a-z_][@a-z0-9_\\\\-]*\"},{token:\"variable.language\",regex:\"#[a-z0-9-_]+\"},{token:\"variable.language\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"variable.language\",regex:\":[a-z_][a-z0-9-_]*\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{token:\"keyword.operator\",regex:\"<|>|<=|>=|=|!=|-|%|\\\\+|\\\\*\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.normalizeRules()};r.inherits(o,i),t.LessHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/less\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/less_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/css\",\"ace/mode/css_completions\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./less_highlight_rules\").LessHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/css\").CssBehaviour,a=e(\"./css_completions\").CssCompletions,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.$completer=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(\"ruleset\",t,n,r)},this.$id=\"ace/mode/less\"}.call(l.prototype),t.Mode=l})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-liquid.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/liquid_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=e(\"./html_highlight_rules\").HtmlHighlightRules,o=function(){s.call(this);var e=\"date|capitalize|downcase|upcase|first|last|join|sort|map|size|escape|escape_once|strip_html|strip_newlines|newline_to_br|replace|replace_first|truncate|truncatewords|prepend|append|minus|plus|times|divided_by|split\",t=\"capture|endcapture|case|endcase|when|comment|endcomment|cycle|for|endfor|in|reversed|if|endif|else|elsif|include|endinclude|unless|endunless|style|text|image|widget|plugin|marker|endmarker|tablerow|endtablerow\",n=\"forloop|tablerowloop\",r=\"assign\",i=this.createKeywordMapper({\"variable.language\":n,keyword:t,\"support.function\":e,\"keyword.definition\":r},\"identifier\");for(var o in this.$rules)this.$rules[o].unshift({token:\"variable\",regex:\"{%\",push:\"liquid-start\"},{token:\"variable\",regex:\"{{\",push:\"liquid-start\"});this.addRules({\"liquid-start\":[{token:\"variable\",regex:\"}}\",next:\"pop\"},{token:\"variable\",regex:\"%}\",next:\"pop\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:i,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"/|\\\\*|\\\\-|\\\\+|=|!=|\\\\?\\\\:\"},{token:\"paren.lparen\",regex:/[\\[\\({]/},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"text\",regex:\"\\\\s+\"}]}),this.normalizeRules()};r.inherits(o,i),t.LiquidHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/liquid\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/liquid_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./liquid_highlight_rules\").LiquidHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=function(){this.HighlightRules=s,this.$outdent=new o};r.inherits(a,i),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/liquid\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-lisp.js",
    "content": "ace.define(\"ace/mode/lisp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"case|do|let|loop|if|else|when\",t=\"eq|neq|and|or\",n=\"null|nil\",r=\"cons|car|cdr|cond|lambda|format|setq|setf|quote|eval|append|list|listp|memberp|t|load|progn\",i=this.createKeywordMapper({\"keyword.control\":e,\"keyword.operator\":t,\"constant.language\":n,\"support.function\":r},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\";.*$\"},{token:[\"storage.type.function-type.lisp\",\"text\",\"entity.name.function.lisp\"],regex:\"(?:\\\\b(?:(defun|defmethod|defmacro))\\\\b)(\\\\s+)((?:\\\\w|\\\\-|\\\\!|\\\\?)*)\"},{token:[\"punctuation.definition.constant.character.lisp\",\"constant.character.lisp\"],regex:\"(#)((?:\\\\w|[\\\\\\\\+-=<>'\\\"&#])+)\"},{token:[\"punctuation.definition.variable.lisp\",\"variable.other.global.lisp\",\"punctuation.definition.variable.lisp\"],regex:\"(\\\\*)(\\\\S*)(\\\\*)\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+(?:L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(?:L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:i,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"}],qqstring:[{token:\"constant.character.escape.lisp\",regex:\"\\\\\\\\.\"},{token:\"string\",regex:'[^\"\\\\\\\\]+'},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"start\"}]}};r.inherits(s,i),t.LispHighlightRules=s}),ace.define(\"ace/mode/lisp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/lisp_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./lisp_highlight_rules\").LispHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.lineCommentStart=\";\",this.$id=\"ace/mode/lisp\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-live_script.js",
    "content": "ace.define(\"ace/mode/live_script_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"punctuation.definition.comment.livescript\",regex:\"\\\\/\\\\*\",push:[{token:\"punctuation.definition.comment.livescript\",regex:\"\\\\*\\\\/\",next:\"pop\"},{token:\"storage.type.annotation.livescriptscript\",regex:\"@\\\\w*\"},{defaultToken:\"comment.block.livescript\"}]},{token:[\"punctuation.definition.comment.livescript\",\"comment.line.number-sign.livescript\"],regex:\"(#)(?!\\\\{)(.*$)\"},{token:[\"variable.parameter.function.livescript\",\"meta.inline.function.livescript\",\"storage.type.function.livescript\",\"meta.inline.function.livescript\",\"variable.parameter.function.livescript\",\"meta.inline.function.livescript\",\"storage.type.function.livescript\"],regex:\"(\\\\s*\\\\!?\\\\(\\\\s*[^()]*?\\\\))(\\\\s*)(!?[~-]{1,2}>)|(\\\\s*\\\\!?)(\\\\(?[^()]*?\\\\)?)(\\\\s*)(<[~-]{1,2}!?)\",comment:\"match stuff like: a -> \\u2026 \"},{token:[\"keyword.operator.new.livescript\",\"meta.class.instance.constructor\",\"entity.name.type.instance.livescript\"],regex:\"(new)(\\\\s+)(\\\\w+(?:\\\\.\\\\w*)*)\"},{token:\"keyword.illegal.livescript\",regex:\"\\\\bp(?:ackage|r(?:ivate|otected)|ublic)|interface|enum|static|yield\\\\b\"},{token:\"punctuation.definition.string.begin.livescript\",regex:\"'''\",push:[{token:\"punctuation.definition.string.end.livescript\",regex:\"'''\",next:\"pop\"},{defaultToken:\"string.quoted.heredoc.livescript\"}]},{token:\"punctuation.definition.string.begin.livescript\",regex:'\"\"\"',push:[{token:\"punctuation.definition.string.end.livescript\",regex:'\"\"\"',next:\"pop\"},{token:\"constant.character.escape.livescript\",regex:\"\\\\\\\\.\"},{include:\"#interpolated_livescript\"},{defaultToken:\"string.quoted.double.heredoc.livescript\"}]},{token:\"punctuation.definition.string.begin.livescript\",regex:\"``\",push:[{token:\"punctuation.definition.string.end.livescript\",regex:\"``\",next:\"pop\"},{token:\"constant.character.escape.livescript\",regex:\"\\\\\\\\(?:x[\\\\da-fA-F]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)\"},{defaultToken:\"string.quoted.script.livescript\"}]},{token:\"string.array-literal.livescript\",regex:\"<\\\\[\",push:[{token:\"string.array-literal.livescript\",regex:\"\\\\]>\",next:\"pop\"},{defaultToken:\"string.array-literal.livescript\"}]},{token:\"string.regexp.livescript\",regex:\"/{2}(?![\\\\s=/*+{}?]).*?[^\\\\\\\\]/[igmy]{0,4}(?![a-zA-Z0-9])/{2}\"},{token:\"string.regexp.livescript\",regex:\"/{2}$\",push:[{token:\"string.regexp.livescript\",regex:\"/{2}[imgy]{0,4}\",next:\"pop\"},{include:\"#embedded_spaced_comment\"},{include:\"#interpolated_livescript\"},{defaultToken:\"string.regexp.livescript\"}]},{token:\"string.regexp.livescript\",regex:\"/{2}\",push:[{token:\"string.regexp.livescript\",regex:\"/{2}[imgy]{0,4}\",next:\"pop\"},{token:\"constant.character.escape.livescript\",regex:\"\\\\\\\\(?:x[\\\\da-fA-F]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)\"},{include:\"#interpolated_livescript\"},{defaultToken:\"string.regexp.livescript\"}]},{token:\"string.regexp.livescript\",regex:\"/(?![\\\\s=/*+{}?]).*?[^\\\\\\\\]/[igmy]{0,4}(?![a-zA-Z0-9])\"},{token:\"keyword.control.livescript\",regex:\"\\\\b(?<![\\\\.\\\\$\\\\-])(?:t(?:h(?:is|row|en)|ry|ypeof!?|il|o)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\\\s+own)?|inally|unction|rom|allthrough)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith|hen)|o(?:f|r|therwise)|return|break|let|var|loop|match|by)(?!\\\\-|\\\\s*:)\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?x)\\n\t\t\t\t\\\\b(?<![\\\\.\\\\$\\\\-])(?:\\n\t\t        t(?:h(?:is|row|en)|ry|ypeof!?|il|o)\\n\t\t        |c(?:on(?:tinue|st)|a(?:se|tch)|lass)\\n\t\t        |i(?:n(?:stanceof)?|mp(?:ort(?:\\\\s+all)?|lements)|[fs])\\n\t\t        |d(?:e(?:fault|lete|bugger)|o)\\n\t\t        |f(?:or(?:\\\\s+own)?|inally|unction|rom|allthrough)\\n\t\t        |s(?:uper|witch)\\n\t\t        |e(?:lse|x(?:tends|port)|val)\\n\t\t        |a(?:nd|rguments)\\n\t\t        |n(?:ew|ot)\\n\t\t        |un(?:less|til)\\n\t\t        |w(?:hile|ith|hen)\\n\t\t        |o(?:f|r|therwise)\\n\t\t        |return|break|let|var|loop\\n\t\t        |match\\n\t\t        |by\\n\t\t\t\t)(?!\\\\-|\\\\s*:)\\\\b\\n\t\t\t\"},{token:\"keyword.operator.livescript\",regex:\"\\\\b(?<![\\\\.\\\\$\\\\-])(?:instanceof|new|delete|typeof|and|or|is|isnt|not)(?!\\\\-|\\\\s*:)\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?x)\\n\t\t\t\t\\\\b(?<![\\\\.\\\\$\\\\-])(\\n\t\t\t\t\tinstanceof|new|delete|typeof|and|or|is|isnt|not\\n\t\t\t\t)(?!\\\\-|\\\\s*:)\\\\b\\n\t\t\t\"},{token:\"keyword.operator.livescript\",regex:\"and=|or=|%|&|\\\\^|\\\\*|\\\\/|(?<![a-zA-Z$_])(?:\\\\-)?\\\\-(?!\\\\-?>)|\\\\+\\\\+|\\\\+|~(?!~?>)|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<(?!\\\\[)|(?<!\\\\])>|(?<!\\\\w)!(?!(?:[~\\\\-]+)?>)|&&|\\\\.\\\\.(?:\\\\.)?|\\\\s\\\\.\\\\s|\\\\?|\\\\||\\\\|\\\\||\\\\:|\\\\*=|(?<!\\\\()/=|%=|\\\\+=|\\\\-=|\\\\.=|&=|\\\\(\\\\.|\\\\.\\\\)|\\\\^=\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?x)\\n\t\t\t\tand=|or=|%|&|\\\\^|\\\\*|\\\\/|(?<![a-zA-Z$_])(\\\\-)?\\\\-(?!\\\\-?>)|\\\\+\\\\+|\\\\+|\\n\t\t\t\t~(?!~?>)|==|=|!=|<=|>=|<<=|>>=|\\n\t\t\t\t>>>=|<>|<(?!\\\\[)|(?<!\\\\])>|(?<!\\\\w)!(?!([~\\\\-]+)?>)|&&|\\\\.\\\\.(\\\\.)?|\\\\s\\\\.\\\\s|\\\\?|\\\\||\\\\|\\\\||\\\\:|\\\\*=|(?<!\\\\()/=|%=|\\\\+=|\\\\-=|\\\\.=|&=|\\\\(\\\\.|\\\\.\\\\)|\\n\t\t\t\t\\\\^=\\n\t\t\t\"},{token:[\"variable.assignment.livescript\",\"variable.assignment.livescript\",\"variable.assignment.livescript\",\"punctuation.separator.key-value\",\"keyword.operator.livescript\",\"variable.assignment.livescript\"],regex:\"([a-zA-Z\\\\$_])((?:[\\\\w$.-])*)(\\\\s*)(?!\\\\::)(?:(:)|(=))(\\\\s*)(?!(?:\\\\s*!?\\\\s*\\\\(.*\\\\))?\\\\s*!?[~-]{1,2}>)\"},{token:\"keyword.operator.livescript\",regex:\"(?<=\\\\s|^)[\\\\[\\\\{](?=.*?[\\\\]\\\\}]\\\\s+[:=])\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<=\\\\s|^)([\\\\[\\\\{])(?=.*?[\\\\]\\\\}]\\\\s+[:=])\",push:[{token:\"keyword.operator.livescript\",regex:\"[\\\\]\\\\}]\\\\s*[:=]\",next:\"pop\"},{include:\"#variable_name\"},{include:\"#instance_variable\"},{include:\"#single_quoted_string\"},{include:\"#double_quoted_string\"},{include:\"#numeric\"},{defaultToken:\"meta.variable.assignment.destructured.livescript\"}]},{token:[\"meta.function.livescript\",\"entity.name.function.livescript\",\"entity.name.function.livescript\",\"entity.name.function.livescript\",\"entity.name.function.livescript\",\"variable.parameter.function.livescript\",\"entity.name.function.livescript\",\"storage.type.function.livescript\"],regex:\"(\\\\s*)(?=[a-zA-Z\\\\$_])([a-zA-Z\\\\$_])((?:[\\\\w$.:-])*)(\\\\s*)([:=])((?:\\\\s*!?\\\\s*\\\\(.*\\\\))?)(\\\\s*)(!?[~-]{1,2}>)\"},{token:\"storage.type.function.livescript\",regex:\"!?[~-]{1,2}>\"},{token:\"constant.language.boolean.true.livescript\",regex:\"\\\\b(?<!\\\\.)(?:true|on|yes)(?!\\\\s*[:=])\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"\\\\b(?<!\\\\.)(true|on|yes)(?!\\\\s*[:=])\\\\b\"},{token:\"constant.language.boolean.false.livescript\",regex:\"\\\\b(?<!\\\\.)(?:false|off|no)(?!\\\\s*[:=])\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"\\\\b(?<!\\\\.)(false|off|no)(?!\\\\s*[:=])\\\\b\"},{token:\"constant.language.null.livescript\",regex:\"\\\\b(?<!\\\\.)(?:null|void)(?!\\\\s*[:=])\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"\\\\b(?<!\\\\.)(null|void)(?!\\\\s*[:=])\\\\b\"},{token:\"variable.language.livescript\",regex:\"\\\\b(?<!\\\\.)(?:super|this|extends)(?!\\\\s*[:=])\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"\\\\b(?<!\\\\.)(super|this|extends)(?!\\\\s*[:=])\\\\b\"},{token:[\"storage.type.class.livescript\",\"meta.class.livescript\",\"entity.name.type.class.livescript\",\"meta.class.livescript\",\"keyword.control.inheritance.livescript\",\"meta.class.livescript\",\"entity.other.inherited-class.livescript\"],regex:\"(class\\\\b)(\\\\s+)((?:@?[a-zA-Z$_][\\\\w$.-]*)?)(?:(\\\\s+)(extends)(\\\\s+)(@?[a-zA-Z$_][\\\\w$.-]*))?\"},{token:\"keyword.other.livescript\",regex:\"\\\\b(?:debugger|\\\\\\\\)\\\\b\"},{token:\"support.class.livescript\",regex:\"\\\\b(?:Array|ArrayBuffer|Blob|Boolean|Date|document|event|Function|Int(?:8|16|32|64)Array|Math|Map|Number|Object|Proxy|RegExp|Set|String|WeakMap|window|Uint(?:8|16|32|64)Array|XMLHttpRequest)\\\\b\"},{token:\"entity.name.type.object.livescript\",regex:\"\\\\bconsole\\\\b\"},{token:\"support.function.console.livescript\",regex:\"(?<=console\\\\.)(?:debug|warn|info|log|error|time(?:End|-end)|assert)\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"((?<=console\\\\.)(debug|warn|info|log|error|time(End|-end)|assert))\\\\b\"},{token:\"support.function.livescript\",regex:\"\\\\b(?:decodeURI(?:Component)?|encodeURI(?:Component)?|eval|parse(?:Float|Int)|require)\\\\b\"},{token:\"support.function.prelude.livescript\",regex:\"(?<![.-])\\\\b(?:map|filter|reject|partition|find|each|head|tail|last|initial|empty|values|keys|length|cons|append|join|reverse|fold(?:l|r)?1?|unfoldr|and(?:List|-list)|or(?:List|-list)|any|all|unique|sum|product|mean|compact|concat(?:Map|-map)?|maximum|minimum|scan(?:l|r)?1?|replicate|slice|apply|split(?:At|-at)?|take(?:While|-while)?|drop(?:While|-while)?|span|first|break(?:It|-it)|list(?:ToObj|-to-obj)|obj(?:ToFunc|-to-func)|pairs(?:ToObj|-to-obj)|obj(?:ToPairs|-to-pairs|ToLists|-to-lists)|zip(?:All|-all)?(?:With|-with)?|compose|curry|partial|flip|fix|sort(?:With|-with|By|-by)?|group(?:By|-by)|break(?:List|-list|Str|-str)|difference|intersection|union|average|flatten|chars|unchars|repeat|lines|unlines|words|unwords|max|min|negate|abs|signum|quot|rem|div|mod|recip|pi|tau|exp|sqrt|ln|pow|sin|cos|tan|asin|acos|atan|atan2|truncate|round|ceiling|floor|is(?:It|-it)NaN|even|odd|gcd|lcm|disabled__id)\\\\b(?![.-])\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?x)(?<![.-])\\\\b(\\n\t\t\t\tmap|filter|reject|partition|find|each|head|tail|last|initial|empty|\\n\t\t\t\tvalues|keys|length|cons|append|join|reverse|fold(l|r)?1?|unfoldr|\\n\t\t\t\tand(List|-list)|or(List|-list)|any|all|unique|sum|product|mean|compact|\\n\t\t\t\tconcat(Map|-map)?|maximum|minimum|scan(l|r)?1?|replicate|slice|apply|\\n\t\t\t\tsplit(At|-at)?|take(While|-while)?|drop(While|-while)?|span|first|\\n\t\t\t\tbreak(It|-it)|list(ToObj|-to-obj)|obj(ToFunc|-to-func)|\\n\t\t\t\tpairs(ToObj|-to-obj)|obj(ToPairs|-to-pairs|ToLists|-to-lists)|\\n\t\t\t\tzip(All|-all)?(With|-with)?|compose|curry|partial|flip|fix|\\n\t\t\t\tsort(With|-with|By|-by)?|group(By|-by)|break(List|-list|Str|-str)|\\n\t\t\t\tdifference|intersection|union|average|flatten|chars|unchars|repeat|\\n\t\t\t\tlines|unlines|words|unwords|max|min|negate|abs|signum|quot|rem|div|mod|\\n\t\t\t\trecip|pi|tau|exp|sqrt|ln|pow|sin|cos|tan|asin|acos|atan|atan2|truncate|\\n\t\t\t\tround|ceiling|floor|is(It|-it)NaN|even|odd|gcd|lcm|disabled__id\\n\t\t\t)\\\\b(?![.-])\",comment:'Generated by DOM query from http://gkz.github.com/prelude-ls/:\\n\t      [].slice\\n\t        .call(document.querySelectorAll(\".nav-pills li a\"))\\n\t        .map(function(_) {return _.innerText})\\n\t        .filter(function(_) {return _.trim() !== \\'})\\n\t        .slice(2)\\n\t        .join(\"|\")\\n     \t\t'},{token:\"support.function.semireserved.livescript\",regex:\"(?<![.-])\\\\b(?:that|it|e)\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?x)(?<![.-])\\\\b(that|it|e)\\\\b\"},{token:\"support.function.method.array.livescript\",regex:\"(?<=(?:\\\\.|\\\\]|\\\\)))(?:apply|call|concat|every|filter|for(?:Each|-each)|from|has(?:Own|-own)(?:Property|-property)|index(?:Of|-of)|is(?:Prototype|-prototype)(?:Of|-of)|join|last(?:Index|-index)(?:Of|-of)|map|of|pop|property(?:Is|-is)(?:Enumerable|-enumerable)|push|reduce(?:Right|-right)?|reverse|shift|slice|some|sort|splice|to(?:Locale|-locale)?(?:String|-string)|unshift|valueOf)\\\\b(?!-)\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?x)((?<=(\\\\.|\\\\]|\\\\)))(\\n\t\t\t\tapply|call|concat|every|filter|for(Each|-each)|\\n\t\t\t\tfrom|has(Own|-own)(Property|-property)|index(Of|-of)|\\n\t\t\t\tis(Prototype|-prototype)(Of|-of)|join|last(Index|-index)(Of|-of)|\\n\t\t\t\tmap|of|pop|property(Is|-is)(Enumerable|-enumerable)|push|\\n\t\t\t\treduce(Right|-right)?|reverse|shift|slice|some|sort|\\n\t\t\t\tsplice|to(Locale|-locale)?(String|-string)|unshift|valueOf\\n\t\t\t))\\\\b(?!-) \"},{token:\"support.function.static.array.livescript\",regex:\"(?<=Array\\\\.)isArray\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?x)((?<=Array\\\\.)(\\n\t\t\t\tisArray\\n\t\t\t))\\\\b\"},{token:\"support.function.static.object.livescript\",regex:\"(?<=Object\\\\.)(?:create|ace.define(?:Propert|-propert)(?:ies|y)|freeze|get(?:Own|-own)(?:Property|-property)(?:Descriptors?|Names)|get(?:Property|-property)(?:Descriptor|Names)|getPrototypeOf|is(?:(?:Extensible|-extensible)|(?:Frozen|-frozen)|(?:Sealed|-sealed))?|keys|prevent(?:Extensions|-extensions)|seal)\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?x)((?<=Object\\\\.)(\\n\t\t\t\tcreate|ace.define(Propert|-propert)(ies|y)|freeze|\\n\t\t\t\tget(Own|-own)(Property|-property)(Descriptors?|Names)|\\n\t\t\t\tget(Property|-property)(Descriptor|Names)|getPrototypeOf|\\n\t\t\t\tis((Extensible|-extensible)|(Frozen|-frozen)|(Sealed|-sealed))?|\\n\t\t\t\tkeys|prevent(Extensions|-extensions)|seal\\n\t\t\t))\\\\b\"},{token:\"support.function.static.math.livescript\",regex:\"(?<=Math\\\\.)(?:abs|acos|acosh|asin|asinh|atan|atan2|atanh|ceil|cos|cosh|exp|expm1|floor|hypot|log|log10|log1p|log2|max|min|pow|random|round|sign|sin|sinh|sqrt|tan|tanh|trunc)\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?x)((?<=Math\\\\.)(\\n\t\t\t\tabs|acos|acosh|asin|asinh|atan|atan2|atanh|ceil|cos|cosh|exp|expm1|floor|\\n\t\t\t\thypot|log|log10|log1p|log2|max|min|pow|random|round|sign|sin|sinh|sqrt|\\n\t\t\t\ttan|tanh|trunc\\n\t\t\t))\\\\b\"},{token:\"support.function.static.number.livescript\",regex:\"(?<=Number\\\\.)(?:is(?:Finite|Integer|NaN)|to(?:Integer|-integer))\\\\b\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?x)((?<=Number\\\\.)(\\n\t\t\t\tis(Finite|Integer|NaN)|to(Integer|-integer)\\n\t\t\t))\\\\b\"},{token:\"constant.language.livescript\",regex:\"\\\\b(?:Infinity|NaN|undefined)\\\\b\"},{token:\"punctuation.terminator.statement.livescript\",regex:\"\\\\;\"},{token:\"meta.delimiter.object.comma.livescript\",regex:\",[ |\\\\t]*\"},{token:\"meta.delimiter.method.period.livescript\",regex:\"\\\\.\"},{token:\"meta.brace.curly.livescript\",regex:\"\\\\{|\\\\}\"},{token:\"meta.brace.round.livescript\",regex:\"\\\\(|\\\\)\"},{token:\"meta.brace.square.livescript\",regex:\"\\\\[|\\\\]\\\\s*\"},{include:\"#instance_variable\"},{include:\"#backslash_string\"},{include:\"#single_quoted_string\"},{include:\"#double_quoted_string\"},{include:\"#numeric\"}],\"#backslash_string\":[{token:\"string.quoted.single.livescript\",regex:\"\\\\\\\\(?:[\\\\\\\\)\\\\s,\\\\};\\\\]])?\",push:[{token:\"punctuation.definition.string.end.livescript\",regex:\"[\\\\\\\\)\\\\s,\\\\};\\\\]]\",next:\"pop\"},{defaultToken:\"string.quoted.single.livescript\"}]}],\"#double_quoted_string\":[{token:\"punctuation.definition.string.begin.livescript\",regex:'\"',push:[{token:\"punctuation.definition.string.end.livescript\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.livescript\",regex:\"\\\\\\\\(?:x[\\\\da-fA-F]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)\"},{include:\"#interpolated_livescript\"},{defaultToken:\"string.quoted.double.livescript\"}]}],\"#embedded_comment\":[{token:[\"punctuation.definition.comment.livescript\",\"comment.line.number-sign.livescript\"],regex:\"(?<!\\\\\\\\)(#)(.*$)\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!\\\\\\\\)(#).*$\\\\n\"}],\"#embedded_spaced_comment\":[{token:[\"punctuation.definition.comment.livescript\",\"comment.line.number-sign.livescript\"],regex:\"(?<!\\\\\\\\)(#\\\\s)(.*$)\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!\\\\\\\\)(#\\\\s).*$\\\\n\"}],\"#constructor_variable\":[{token:\"variable.other.readwrite.constructor.livescript\",regex:\"[a-zA-Z$_][\\\\w$-]*@{2}(?:[a-zA-Z$_][\\\\w$-]*)?\"}],\"#instance_variable\":[{token:\"variable.other.readwrite.instance.livescript\",regex:\"(?<!\\\\S)@(?:[a-zA-Z$_][\\\\w$-]*)?\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<!\\\\S)(@)([a-zA-Z$_][\\\\w$-]*)?\"}],\"#interpolated_livescript\":[{todo:{token:\"punctuation.section.embedded.livescript\",regex:\"\\\\#\\\\{\",push:[{token:\"punctuation.section.embedded.livescript\",regex:\"\\\\}\",next:\"pop\"},{include:\"$self\"},{defaultToken:\"source.livescript.embedded.source\"}]}},{todo:{token:\"source.livescript.embedded.source.simple\",regex:\"\\\\#\",push:[{token:\"source.livescript.embedded.source.simple\",regex:\"\",next:\"pop\"},{include:\"$self\"},{defaultToken:\"source.livescript.embedded.source.simple\"}]}}],\"#numeric\":[{token:\"constant.numeric.livescript\",regex:\"(?<![\\\\$@a-zA-Z_])(?:[0-9]+r[0-9_]+|(?:16r|0[xX])[0-9a-fA-F_]+|[0-9]+(?:\\\\.[0-9_]+)?(?:e[+\\\\-]?[0-9_]+)?[_a-zA-Z]*)\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<![\\\\$@a-zA-Z_])(([0-9]+r[0-9_]+)|((16r|0[xX])[0-9a-fA-F_]+)|([0-9]+(\\\\.[0-9_]+)?(e[+\\\\-]?[0-9_]+)?)[_a-zA-Z]*)\"}],\"#single_quoted_string\":[{token:\"punctuation.definition.string.begin.livescript\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.livescript\",regex:\"'\",next:\"pop\"},{token:\"constant.character.escape.livescript\",regex:\"\\\\\\\\(?:x[\\\\da-fA-F]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)\"},{defaultToken:\"string.quoted.single.livescript\"}]}],\"#variable_name\":[{token:\"variable.assignment.livescript\",regex:\"[a-zA-Z\\\\$_][\\\\w$-]*(?:\\\\.\\\\w+)*(?!\\\\-)\"}]},this.normalizeRules()};s.metaData={comment:\"LiveScript Syntax: version 1\",fileTypes:[\"ls\",\"Slakefile\",\"ls.erb\"],firstLineMatch:\"^#!.*\\\\bls\",foldingStartMarker:\"^\\\\s*class\\\\s+\\\\S.*$|.*(->|=>)\\\\s*$|.*[\\\\[{]\\\\s*$\",foldingStopMarker:\"^\\\\s*$|^\\\\s*[}\\\\]]\\\\s*$\",keyEquivalent:\"^~C\",name:\"LiveScript\",scopeName:\"source.livescript\"},r.inherits(s,i),t.LiveScriptHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/)#(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/live_script\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/live_script_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./live_script_highlight_rules\").LiveScriptHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.$id=\"ace/mode/live_script\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-livescript.js",
    "content": "ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/livescript\",[\"require\",\"exports\",\"module\",\"ace/tokenizer\",\"ace/mode/matching_brace_outdent\",\"ace/mode/text\"],function(e,t,n){function u(e,t){function n(){}return n.prototype=(e.superclass=t).prototype,(e.prototype=new n).constructor=e,typeof t.extended==\"function\"&&t.extended(e),e}function a(e,t){var n={}.hasOwnProperty;for(var r in t)n.call(t,r)&&(e[r]=t[r]);return e}var r,i,s,o;r=\"(?![\\\\d\\\\s])[$\\\\w\\\\xAA-\\\\uFFDC](?:(?!\\\\s)[$\\\\w\\\\xAA-\\\\uFFDC]|-[A-Za-z])*\",t.Mode=i=function(t){function o(){var t;this.$tokenizer=new(e(\"../tokenizer\").Tokenizer)(o.Rules);if(t=e(\"../mode/matching_brace_outdent\"))this.$outdent=new t.MatchingBraceOutdent;this.$id=\"ace/mode/livescript\"}var n,i=u((a(o,t).displayName=\"LiveScriptMode\",o),t).prototype,s=o;return n=RegExp(\"(?:[({[=:]|[-~]>|\\\\b(?:e(?:lse|xport)|d(?:o|efault)|t(?:ry|hen)|finally|import(?:\\\\s*all)?|const|var|let|new|catch(?:\\\\s*\"+r+\")?))\\\\s*$\"),i.getNextLineIndent=function(e,t,r){var i,s;return i=this.$getIndent(t),s=this.$tokenizer.getLineTokens(t,e).tokens,(!s.length||s[s.length-1].type!==\"comment\")&&e===\"start\"&&n.test(t)&&(i+=r),i},i.lineCommentStart=\"#\",i.blockComment={start:\"###\",end:\"###\"},i.checkOutdent=function(e,t,n){var r;return(r=this.$outdent)!=null?r.checkOutdent(t,n):void 8},i.autoOutdent=function(e,t,n){var r;return(r=this.$outdent)!=null?r.autoOutdent(t,n):void 8},o}(e(\"../mode/text\").Mode),s=\"(?![$\\\\w]|-[A-Za-z]|\\\\s*:(?![:=]))\",o={defaultToken:\"string\"},i.Rules={start:[{token:\"keyword\",regex:\"(?:t(?:h(?:is|row|en)|ry|ypeof!?)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\\\s+own)?|inally|unction)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith)|o[fr]|return|break|let|var|loop)\"+s},{token:\"constant.language\",regex:\"(?:true|false|yes|no|on|off|null|void|undefined)\"+s},{token:\"invalid.illegal\",regex:\"(?:p(?:ackage|r(?:ivate|otected)|ublic)|i(?:mplements|nterface)|enum|static|yield)\"+s},{token:\"language.support.class\",regex:\"(?:R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|Array|Boolean|Date|Function|Number|Object|TypeError|URIError)\"+s},{token:\"language.support.function\",regex:\"(?:is(?:NaN|Finite)|parse(?:Int|Float)|Math|JSON|(?:en|de)codeURI(?:Component)?)\"+s},{token:\"variable.language\",regex:\"(?:t(?:hat|il|o)|f(?:rom|allthrough)|it|by|e)\"+s},{token:\"identifier\",regex:r+\"\\\\s*:(?![:=])\"},{token:\"variable\",regex:r},{token:\"keyword.operator\",regex:\"(?:\\\\.{3}|\\\\s+\\\\?)\"},{token:\"keyword.variable\",regex:\"(?:@+|::|\\\\.\\\\.)\",next:\"key\"},{token:\"keyword.operator\",regex:\"\\\\.\\\\s*\",next:\"key\"},{token:\"string\",regex:\"\\\\\\\\\\\\S[^\\\\s,;)}\\\\]]*\"},{token:\"string.doc\",regex:\"'''\",next:\"qdoc\"},{token:\"string.doc\",regex:'\"\"\"',next:\"qqdoc\"},{token:\"string\",regex:\"'\",next:\"qstring\"},{token:\"string\",regex:'\"',next:\"qqstring\"},{token:\"string\",regex:\"`\",next:\"js\"},{token:\"string\",regex:\"<\\\\[\",next:\"words\"},{token:\"string.regex\",regex:\"//\",next:\"heregex\"},{token:\"comment.doc\",regex:\"/\\\\*\",next:\"comment\"},{token:\"comment\",regex:\"#.*\"},{token:\"string.regex\",regex:\"\\\\/(?:[^[\\\\/\\\\n\\\\\\\\]*(?:(?:\\\\\\\\.|\\\\[[^\\\\]\\\\n\\\\\\\\]*(?:\\\\\\\\.[^\\\\]\\\\n\\\\\\\\]*)*\\\\])[^[\\\\/\\\\n\\\\\\\\]*)*)\\\\/[gimy$]{0,4}\",next:\"key\"},{token:\"constant.numeric\",regex:\"(?:0x[\\\\da-fA-F][\\\\da-fA-F_]*|(?:[2-9]|[12]\\\\d|3[0-6])r[\\\\da-zA-Z][\\\\da-zA-Z_]*|(?:\\\\d[\\\\d_]*(?:\\\\.\\\\d[\\\\d_]*)?|\\\\.\\\\d[\\\\d_]*)(?:e[+-]?\\\\d[\\\\d_]*)?[\\\\w$]*)\"},{token:\"lparen\",regex:\"[({[]\"},{token:\"rparen\",regex:\"[)}\\\\]]\",next:\"key\"},{token:\"keyword.operator\",regex:\"[\\\\^!|&%+\\\\-]+\"},{token:\"text\",regex:\"\\\\s+\"}],heregex:[{token:\"string.regex\",regex:\".*?//[gimy$?]{0,4}\",next:\"start\"},{token:\"string.regex\",regex:\"\\\\s*#{\"},{token:\"comment.regex\",regex:\"\\\\s+(?:#.*)?\"},{defaultToken:\"string.regex\"}],key:[{token:\"keyword.operator\",regex:\"[.?@!]+\"},{token:\"identifier\",regex:r,next:\"start\"},{token:\"text\",regex:\"\",next:\"start\"}],comment:[{token:\"comment.doc\",regex:\".*?\\\\*/\",next:\"start\"},{defaultToken:\"comment.doc\"}],qdoc:[{token:\"string\",regex:\".*?'''\",next:\"key\"},o],qqdoc:[{token:\"string\",regex:'.*?\"\"\"',next:\"key\"},o],qstring:[{token:\"string\",regex:\"[^\\\\\\\\']*(?:\\\\\\\\.[^\\\\\\\\']*)*'\",next:\"key\"},o],qqstring:[{token:\"string\",regex:'[^\\\\\\\\\"]*(?:\\\\\\\\.[^\\\\\\\\\"]*)*\"',next:\"key\"},o],js:[{token:\"string\",regex:\"[^\\\\\\\\`]*(?:\\\\\\\\.[^\\\\\\\\`]*)*`\",next:\"key\"},o],words:[{token:\"string\",regex:\".*?\\\\]>\",next:\"key\"},o]}})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-logiql.js",
    "content": "ace.define(\"ace/mode/logiql_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.block\",regex:\"/\\\\*\",push:[{token:\"comment.block\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block\"}]},{token:\"comment.single\",regex:\"//.*\"},{token:\"constant.numeric\",regex:\"\\\\d+(?:\\\\.\\\\d+)?(?:[eE][+-]?\\\\d+)?[fd]?\"},{token:\"string\",regex:'\"',push:[{token:\"string\",regex:'\"',next:\"pop\"},{defaultToken:\"string\"}]},{token:\"constant.language\",regex:\"\\\\b(true|false)\\\\b\"},{token:\"entity.name.type.logicblox\",regex:\"`[a-zA-Z_:]+(\\\\d|\\\\a)*\\\\b\"},{token:\"keyword.start\",regex:\"->\",comment:\"Constraint\"},{token:\"keyword.start\",regex:\"-->\",comment:\"Level 1 Constraint\"},{token:\"keyword.start\",regex:\"<-\",comment:\"Rule\"},{token:\"keyword.start\",regex:\"<--\",comment:\"Level 1 Rule\"},{token:\"keyword.end\",regex:\"\\\\.\",comment:\"Terminator\"},{token:\"keyword.other\",regex:\"!\",comment:\"Negation\"},{token:\"keyword.other\",regex:\",\",comment:\"Conjunction\"},{token:\"keyword.other\",regex:\";\",comment:\"Disjunction\"},{token:\"keyword.operator\",regex:\"<=|>=|!=|<|>\",comment:\"Equality\"},{token:\"keyword.other\",regex:\"@\",comment:\"Equality\"},{token:\"keyword.operator\",regex:\"\\\\+|-|\\\\*|/\",comment:\"Arithmetic operations\"},{token:\"keyword\",regex:\"::\",comment:\"Colon colon\"},{token:\"support.function\",regex:\"\\\\b(agg\\\\s*<<)\",push:[{include:\"$self\"},{token:\"support.function\",regex:\">>\",next:\"pop\"}]},{token:\"storage.modifier\",regex:\"\\\\b(lang:[\\\\w:]*)\"},{token:[\"storage.type\",\"text\"],regex:\"(export|sealed|clauses|block|alias|alias_all)(\\\\s*\\\\()(?=`)\"},{token:\"entity.name\",regex:\"[a-zA-Z_][a-zA-Z_0-9:]*(@prev|@init|@final)?(?=(\\\\(|\\\\[))\"},{token:\"variable.parameter\",regex:\"([a-zA-Z][a-zA-Z_0-9]*|_)\\\\s*(?=(,|\\\\.|<-|->|\\\\)|\\\\]|=))\"}]},this.normalizeRules()};r.inherits(s,i),t.LogiQLHighlightRules=s}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/logiql\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/logiql_highlight_rules\",\"ace/mode/folding/coffee\",\"ace/token_iterator\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./logiql_highlight_rules\").LogiQLHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=e(\"../token_iterator\").TokenIterator,a=e(\"../range\").Range,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./matching_brace_outdent\").MatchingBraceOutdent,c=function(){this.HighlightRules=s,this.foldingRules=new o,this.$outdent=new l,this.$behaviour=new f};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(/comment|string/.test(o))return r;if(s.length&&s[s.length-1].type==\"comment.single\")return r;var u=t.match();return/(-->|<--|<-|->|{)\\s*$/.test(t)&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)?!0:n!==\"\\n\"&&n!==\"\\r\\n\"?!1:/^\\s+/.test(t)?!0:!1},this.autoOutdent=function(e,t,n){if(this.$outdent.autoOutdent(t,n))return;var r=t.getLine(n),i=r.match(/^\\s+/),s=r.lastIndexOf(\".\")+1;if(!i||!n||!s)return 0;var o=t.getLine(n+1),u=this.getMatching(t,{row:n,column:s});if(!u||u.start.row==n)return 0;s=i[0].length;var f=this.$getIndent(t.getLine(u.start.row));t.replace(new a(n+1,0,n+1,s),f)},this.getMatching=function(e,t,n){t==undefined&&(t=e.selection.lead),typeof t==\"object\"&&(n=t.column,t=t.row);var r=e.getTokenAt(t,n),i=\"keyword.start\",s=\"keyword.end\",o;if(!r)return;if(r.type==i){var f=new u(e,t,n);f.step=f.stepForward}else{if(r.type!=s)return;var f=new u(e,t,n);f.step=f.stepBackward}while(o=f.step())if(o.type==i||o.type==s)break;if(!o||o.type==r.type)return;var l=f.getCurrentTokenColumn(),t=f.getCurrentTokenRow();return new a(t,l,t,l+o.value.length)},this.$id=\"ace/mode/logiql\"}.call(c.prototype),t.Mode=c})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-lsl.js",
    "content": "ace.define(\"ace/mode/lsl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function s(){var e=this.createKeywordMapper({\"constant.language.float.lsl\":\"DEG_TO_RAD|PI|PI_BY_TWO|RAD_TO_DEG|SQRT2|TWO_PI\",\"constant.language.integer.lsl\":\"ACTIVE|AGENT|AGENT_ALWAYS_RUN|AGENT_ATTACHMENTS|AGENT_AUTOPILOT|AGENT_AWAY|AGENT_BUSY|AGENT_BY_LEGACY_NAME|AGENT_BY_USERNAME|AGENT_CROUCHING|AGENT_FLYING|AGENT_IN_AIR|AGENT_LIST_PARCEL|AGENT_LIST_PARCEL_OWNER|AGENT_LIST_REGION|AGENT_MOUSELOOK|AGENT_ON_OBJECT|AGENT_SCRIPTED|AGENT_SITTING|AGENT_TYPING|AGENT_WALKING|ALL_SIDES|ANIM_ON|ATTACH_AVATAR_CENTER|ATTACH_BACK|ATTACH_BELLY|ATTACH_CHEST|ATTACH_CHIN|ATTACH_HEAD|ATTACH_HUD_BOTTOM|ATTACH_HUD_BOTTOM_LEFT|ATTACH_HUD_BOTTOM_RIGHT|ATTACH_HUD_CENTER_1|ATTACH_HUD_CENTER_2|ATTACH_HUD_TOP_CENTER|ATTACH_HUD_TOP_LEFT|ATTACH_HUD_TOP_RIGHT|ATTACH_LEAR|ATTACH_LEFT_PEC|ATTACH_LEYE|ATTACH_LFOOT|ATTACH_LHAND|ATTACH_LHIP|ATTACH_LLARM|ATTACH_LLLEG|ATTACH_LSHOULDER|ATTACH_LUARM|ATTACH_LULEG|ATTACH_MOUTH|ATTACH_NECK|ATTACH_NOSE|ATTACH_PELVIS|ATTACH_REAR|ATTACH_REYE|ATTACH_RFOOT|ATTACH_RHAND|ATTACH_RHIP|ATTACH_RIGHT_PEC|ATTACH_RLARM|ATTACH_RLLEG|ATTACH_RSHOULDER|ATTACH_RUARM|ATTACH_RULEG|AVOID_CHARACTERS|AVOID_DYNAMIC_OBSTACLES|AVOID_NONE|CAMERA_ACTIVE|CAMERA_BEHINDNESS_ANGLE|CAMERA_BEHINDNESS_LAG|CAMERA_DISTANCE|CAMERA_FOCUS|CAMERA_FOCUS_LAG|CAMERA_FOCUS_LOCKED|CAMERA_FOCUS_OFFSET|CAMERA_FOCUS_THRESHOLD|CAMERA_PITCH|CAMERA_POSITION|CAMERA_POSITION_LAG|CAMERA_POSITION_LOCKED|CAMERA_POSITION_THRESHOLD|CHANGED_ALLOWED_DROP|CHANGED_COLOR|CHANGED_INVENTORY|CHANGED_LINK|CHANGED_MEDIA|CHANGED_OWNER|CHANGED_REGION|CHANGED_REGION_START|CHANGED_SCALE|CHANGED_SHAPE|CHANGED_TELEPORT|CHANGED_TEXTURE|CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES|CHARACTER_AVOIDANCE_MODE|CHARACTER_CMD_JUMP|CHARACTER_CMD_SMOOTH_STOP|CHARACTER_CMD_STOP|CHARACTER_DESIRED_SPEED|CHARACTER_DESIRED_TURN_SPEED|CHARACTER_LENGTH|CHARACTER_MAX_ACCEL|CHARACTER_MAX_DECEL|CHARACTER_MAX_SPEED|CHARACTER_MAX_TURN_RADIUS|CHARACTER_ORIENTATION|CHARACTER_RADIUS|CHARACTER_STAY_WITHIN_PARCEL|CHARACTER_TYPE|CHARACTER_TYPE_A|CHARACTER_TYPE_B|CHARACTER_TYPE_C|CHARACTER_TYPE_D|CHARACTER_TYPE_NONE|CLICK_ACTION_BUY|CLICK_ACTION_NONE|CLICK_ACTION_OPEN|CLICK_ACTION_OPEN_MEDIA|CLICK_ACTION_PAY|CLICK_ACTION_PLAY|CLICK_ACTION_SIT|CLICK_ACTION_TOUCH|CONTENT_TYPE_ATOM|CONTENT_TYPE_FORM|CONTENT_TYPE_HTML|CONTENT_TYPE_JSON|CONTENT_TYPE_LLSD|CONTENT_TYPE_RSS|CONTENT_TYPE_TEXT|CONTENT_TYPE_XHTML|CONTENT_TYPE_XML|CONTROL_BACK|CONTROL_DOWN|CONTROL_FWD|CONTROL_LBUTTON|CONTROL_LEFT|CONTROL_ML_LBUTTON|CONTROL_RIGHT|CONTROL_ROT_LEFT|CONTROL_ROT_RIGHT|CONTROL_UP|DATA_BORN|DATA_NAME|DATA_ONLINE|DATA_PAYINFO|DATA_SIM_POS|DATA_SIM_RATING|DATA_SIM_STATUS|DEBUG_CHANNEL|DENSITY|ERR_GENERIC|ERR_MALFORMED_PARAMS|ERR_PARCEL_PERMISSIONS|ERR_RUNTIME_PERMISSIONS|ERR_THROTTLED|ESTATE_ACCESS_ALLOWED_AGENT_ADD|ESTATE_ACCESS_ALLOWED_AGENT_REMOVE|ESTATE_ACCESS_ALLOWED_GROUP_ADD|ESTATE_ACCESS_ALLOWED_GROUP_REMOVE|ESTATE_ACCESS_BANNED_AGENT_ADD|ESTATE_ACCESS_BANNED_AGENT_REMOVE|FALSE|FORCE_DIRECT_PATH|FRICTION|GCNP_RADIUS|GCNP_STATIC|GRAVITY_MULTIPLIER|HORIZONTAL|HTTP_BODY_MAXLENGTH|HTTP_BODY_TRUNCATED|HTTP_CUSTOM_HEADER|HTTP_METHOD|HTTP_MIMETYPE|HTTP_PRAGMA_NO_CACHE|HTTP_VERBOSE_THROTTLE|HTTP_VERIFY_CERT|INVENTORY_ALL|INVENTORY_ANIMATION|INVENTORY_BODYPART|INVENTORY_CLOTHING|INVENTORY_GESTURE|INVENTORY_LANDMARK|INVENTORY_NONE|INVENTORY_NOTECARD|INVENTORY_OBJECT|INVENTORY_SCRIPT|INVENTORY_SOUND|INVENTORY_TEXTURE|JSON_APPEND|KFM_CMD_PAUSE|KFM_CMD_PLAY|KFM_CMD_SET_MODE|KFM_CMD_STOP|KFM_COMMAND|KFM_DATA|KFM_FORWARD|KFM_LOOP|KFM_MODE|KFM_PING_PONG|KFM_REVERSE|KFM_ROTATION|KFM_TRANSLATION|LAND_LEVEL|LAND_LOWER|LAND_NOISE|LAND_RAISE|LAND_REVERT|LAND_SMOOTH|LINK_ALL_CHILDREN|LINK_ALL_OTHERS|LINK_ROOT|LINK_SET|LINK_THIS|LIST_STAT_GEOMETRIC_MEAN|LIST_STAT_MAX|LIST_STAT_MEAN|LIST_STAT_MEDIAN|LIST_STAT_MIN|LIST_STAT_NUM_COUNT|LIST_STAT_RANGE|LIST_STAT_STD_DEV|LIST_STAT_SUM|LIST_STAT_SUM_SQUARES|LOOP|MASK_BASE|MASK_EVERYONE|MASK_GROUP|MASK_NEXT|MASK_OWNER|OBJECT_ATTACHED_POINT|OBJECT_BODY_SHAPE_TYPE|OBJECT_CHARACTER_TIME|OBJECT_CLICK_ACTION|OBJECT_CREATOR|OBJECT_DESC|OBJECT_GROUP|OBJECT_HOVER_HEIGHT|OBJECT_LAST_OWNER_ID|OBJECT_NAME|OBJECT_OWNER|OBJECT_PATHFINDING_TYPE|OBJECT_PHANTOM|OBJECT_PHYSICS|OBJECT_PHYSICS_COST|OBJECT_POS|OBJECT_PRIM_EQUIVALENCE|OBJECT_RENDER_WEIGHT|OBJECT_RETURN_PARCEL|OBJECT_RETURN_PARCEL_OWNER|OBJECT_RETURN_REGION|OBJECT_ROOT|OBJECT_ROT|OBJECT_RUNNING_SCRIPT_COUNT|OBJECT_SCRIPT_MEMORY|OBJECT_SCRIPT_TIME|OBJECT_SERVER_COST|OBJECT_STREAMING_COST|OBJECT_TEMP_ON_REZ|OBJECT_TOTAL_SCRIPT_COUNT|OBJECT_UNKNOWN_DETAIL|OBJECT_VELOCITY|OPT_AVATAR|OPT_CHARACTER|OPT_EXCLUSION_VOLUME|OPT_LEGACY_LINKSET|OPT_MATERIAL_VOLUME|OPT_OTHER|OPT_STATIC_OBSTACLE|OPT_WALKABLE|PARCEL_COUNT_GROUP|PARCEL_COUNT_OTHER|PARCEL_COUNT_OWNER|PARCEL_COUNT_SELECTED|PARCEL_COUNT_TEMP|PARCEL_COUNT_TOTAL|PARCEL_DETAILS_AREA|PARCEL_DETAILS_DESC|PARCEL_DETAILS_GROUP|PARCEL_DETAILS_ID|PARCEL_DETAILS_NAME|PARCEL_DETAILS_OWNER|PARCEL_DETAILS_SEE_AVATARS|PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY|PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS|PARCEL_FLAG_ALLOW_CREATE_OBJECTS|PARCEL_FLAG_ALLOW_DAMAGE|PARCEL_FLAG_ALLOW_FLY|PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY|PARCEL_FLAG_ALLOW_GROUP_SCRIPTS|PARCEL_FLAG_ALLOW_LANDMARK|PARCEL_FLAG_ALLOW_SCRIPTS|PARCEL_FLAG_ALLOW_TERRAFORM|PARCEL_FLAG_LOCAL_SOUND_ONLY|PARCEL_FLAG_RESTRICT_PUSHOBJECT|PARCEL_FLAG_USE_ACCESS_GROUP|PARCEL_FLAG_USE_ACCESS_LIST|PARCEL_FLAG_USE_BAN_LIST|PARCEL_FLAG_USE_LAND_PASS_LIST|PARCEL_MEDIA_COMMAND_AGENT|PARCEL_MEDIA_COMMAND_AUTO_ALIGN|PARCEL_MEDIA_COMMAND_DESC|PARCEL_MEDIA_COMMAND_LOOP|PARCEL_MEDIA_COMMAND_LOOP_SET|PARCEL_MEDIA_COMMAND_PAUSE|PARCEL_MEDIA_COMMAND_PLAY|PARCEL_MEDIA_COMMAND_SIZE|PARCEL_MEDIA_COMMAND_STOP|PARCEL_MEDIA_COMMAND_TEXTURE|PARCEL_MEDIA_COMMAND_TIME|PARCEL_MEDIA_COMMAND_TYPE|PARCEL_MEDIA_COMMAND_UNLOAD|PARCEL_MEDIA_COMMAND_URL|PASS_ALWAYS|PASS_IF_NOT_HANDLED|PASS_NEVER|PASSIVE|PATROL_PAUSE_AT_WAYPOINTS|PAYMENT_INFO_ON_FILE|PAYMENT_INFO_USED|PAY_DEFAULT|PAY_HIDE|PERMISSION_ATTACH|PERMISSION_CHANGE_LINKS|PERMISSION_CONTROL_CAMERA|PERMISSION_DEBIT|PERMISSION_OVERRIDE_ANIMATIONS|PERMISSION_RETURN_OBJECTS|PERMISSION_SILENT_ESTATE_MANAGEMENT|PERMISSION_TAKE_CONTROLS|PERMISSION_TELEPORT|PERMISSION_TRACK_CAMERA|PERMISSION_TRIGGER_ANIMATION|PERM_ALL|PERM_COPY|PERM_MODIFY|PERM_MOVE|PERM_TRANSFER|PING_PONG|PRIM_ALPHA_MODE|PRIM_ALPHA_MODE_BLEND|PRIM_ALPHA_MODE_EMISSIVE|PRIM_ALPHA_MODE_MASK|PRIM_ALPHA_MODE_NONE|PRIM_BUMP_BARK|PRIM_BUMP_BLOBS|PRIM_BUMP_BRICKS|PRIM_BUMP_BRIGHT|PRIM_BUMP_CHECKER|PRIM_BUMP_CONCRETE|PRIM_BUMP_DARK|PRIM_BUMP_DISKS|PRIM_BUMP_GRAVEL|PRIM_BUMP_LARGETILE|PRIM_BUMP_NONE|PRIM_BUMP_SHINY|PRIM_BUMP_SIDING|PRIM_BUMP_STONE|PRIM_BUMP_STUCCO|PRIM_BUMP_SUCTION|PRIM_BUMP_TILE|PRIM_BUMP_WEAVE|PRIM_BUMP_WOOD|PRIM_COLOR|PRIM_DESC|PRIM_FLEXIBLE|PRIM_FULLBRIGHT|PRIM_GLOW|PRIM_HOLE_CIRCLE|PRIM_HOLE_DEFAULT|PRIM_HOLE_SQUARE|PRIM_HOLE_TRIANGLE|PRIM_LINK_TARGET|PRIM_MATERIAL|PRIM_MATERIAL_FLESH|PRIM_MATERIAL_GLASS|PRIM_MATERIAL_METAL|PRIM_MATERIAL_PLASTIC|PRIM_MATERIAL_RUBBER|PRIM_MATERIAL_STONE|PRIM_MATERIAL_WOOD|PRIM_MEDIA_ALT_IMAGE_ENABLE|PRIM_MEDIA_AUTO_LOOP|PRIM_MEDIA_AUTO_PLAY|PRIM_MEDIA_AUTO_SCALE|PRIM_MEDIA_AUTO_ZOOM|PRIM_MEDIA_CONTROLS|PRIM_MEDIA_CONTROLS_MINI|PRIM_MEDIA_CONTROLS_STANDARD|PRIM_MEDIA_CURRENT_URL|PRIM_MEDIA_FIRST_CLICK_INTERACT|PRIM_MEDIA_HEIGHT_PIXELS|PRIM_MEDIA_HOME_URL|PRIM_MEDIA_MAX_HEIGHT_PIXELS|PRIM_MEDIA_MAX_URL_LENGTH|PRIM_MEDIA_MAX_WHITELIST_COUNT|PRIM_MEDIA_MAX_WHITELIST_SIZE|PRIM_MEDIA_MAX_WIDTH_PIXELS|PRIM_MEDIA_PARAM_MAX|PRIM_MEDIA_PERMS_CONTROL|PRIM_MEDIA_PERMS_INTERACT|PRIM_MEDIA_PERM_ANYONE|PRIM_MEDIA_PERM_GROUP|PRIM_MEDIA_PERM_NONE|PRIM_MEDIA_PERM_OWNER|PRIM_MEDIA_WHITELIST|PRIM_MEDIA_WHITELIST_ENABLE|PRIM_MEDIA_WIDTH_PIXELS|PRIM_NAME|PRIM_NORMAL|PRIM_OMEGA|PRIM_PHANTOM|PRIM_PHYSICS|PRIM_PHYSICS_SHAPE_CONVEX|PRIM_PHYSICS_SHAPE_NONE|PRIM_PHYSICS_SHAPE_PRIM|PRIM_PHYSICS_SHAPE_TYPE|PRIM_POINT_LIGHT|PRIM_POSITION|PRIM_POS_LOCAL|PRIM_ROTATION|PRIM_ROT_LOCAL|PRIM_SCULPT_FLAG_INVERT|PRIM_SCULPT_FLAG_MIRROR|PRIM_SCULPT_TYPE_CYLINDER|PRIM_SCULPT_TYPE_MASK|PRIM_SCULPT_TYPE_PLANE|PRIM_SCULPT_TYPE_SPHERE|PRIM_SCULPT_TYPE_TORUS|PRIM_SHINY_HIGH|PRIM_SHINY_LOW|PRIM_SHINY_MEDIUM|PRIM_SHINY_NONE|PRIM_SIZE|PRIM_SLICE|PRIM_SPECULAR|PRIM_TEMP_ON_REZ|PRIM_TEXGEN|PRIM_TEXGEN_DEFAULT|PRIM_TEXGEN_PLANAR|PRIM_TEXT|PRIM_TEXTURE|PRIM_TYPE|PRIM_TYPE_BOX|PRIM_TYPE_CYLINDER|PRIM_TYPE_PRISM|PRIM_TYPE_RING|PRIM_TYPE_SCULPT|PRIM_TYPE_SPHERE|PRIM_TYPE_TORUS|PRIM_TYPE_TUBE|PROFILE_NONE|PROFILE_SCRIPT_MEMORY|PSYS_PART_BF_DEST_COLOR|PSYS_PART_BF_ONE|PSYS_PART_BF_ONE_MINUS_DEST_COLOR|PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA|PSYS_PART_BF_ONE_MINUS_SOURCE_COLOR|PSYS_PART_BF_SOURCE_ALPHA|PSYS_PART_BF_SOURCE_COLOR|PSYS_PART_BF_ZERO|PSYS_PART_BLEND_FUNC_DEST|PSYS_PART_BLEND_FUNC_SOURCE|PSYS_PART_BOUNCE_MASK|PSYS_PART_EMISSIVE_MASK|PSYS_PART_END_ALPHA|PSYS_PART_END_COLOR|PSYS_PART_END_GLOW|PSYS_PART_END_SCALE|PSYS_PART_FLAGS|PSYS_PART_FOLLOW_SRC_MASK|PSYS_PART_FOLLOW_VELOCITY_MASK|PSYS_PART_INTERP_COLOR_MASK|PSYS_PART_INTERP_SCALE_MASK|PSYS_PART_MAX_AGE|PSYS_PART_RIBBON_MASK|PSYS_PART_START_ALPHA|PSYS_PART_START_COLOR|PSYS_PART_START_GLOW|PSYS_PART_START_SCALE|PSYS_PART_TARGET_LINEAR_MASK|PSYS_PART_TARGET_POS_MASK|PSYS_PART_WIND_MASK|PSYS_SRC_ACCEL|PSYS_SRC_ANGLE_BEGIN|PSYS_SRC_ANGLE_END|PSYS_SRC_BURST_PART_COUNT|PSYS_SRC_BURST_RADIUS|PSYS_SRC_BURST_RATE|PSYS_SRC_BURST_SPEED_MAX|PSYS_SRC_BURST_SPEED_MIN|PSYS_SRC_MAX_AGE|PSYS_SRC_OMEGA|PSYS_SRC_PATTERN|PSYS_SRC_PATTERN_ANGLE|PSYS_SRC_PATTERN_ANGLE_CONE|PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY|PSYS_SRC_PATTERN_DROP|PSYS_SRC_PATTERN_EXPLODE|PSYS_SRC_TARGET_KEY|PSYS_SRC_TEXTURE|PUBLIC_CHANNEL|PURSUIT_FUZZ_FACTOR|PURSUIT_GOAL_TOLERANCE|PURSUIT_INTERCEPT|PURSUIT_OFFSET|PU_EVADE_HIDDEN|PU_EVADE_SPOTTED|PU_FAILURE_DYNAMIC_PATHFINDING_DISABLED|PU_FAILURE_INVALID_GOAL|PU_FAILURE_INVALID_START|PU_FAILURE_NO_NAVMESH|PU_FAILURE_NO_VALID_DESTINATION|PU_FAILURE_OTHER|PU_FAILURE_PARCEL_UNREACHABLE|PU_FAILURE_TARGET_GONE|PU_FAILURE_UNREACHABLE|PU_GOAL_REACHED|PU_SLOWDOWN_DISTANCE_REACHED|RCERR_CAST_TIME_EXCEEDED|RCERR_SIM_PERF_LOW|RCERR_UNKNOWN|RC_DATA_FLAGS|RC_DETECT_PHANTOM|RC_GET_LINK_NUM|RC_GET_NORMAL|RC_GET_ROOT_KEY|RC_MAX_HITS|RC_REJECT_AGENTS|RC_REJECT_LAND|RC_REJECT_NONPHYSICAL|RC_REJECT_PHYSICAL|RC_REJECT_TYPES|REGION_FLAG_ALLOW_DAMAGE|REGION_FLAG_ALLOW_DIRECT_TELEPORT|REGION_FLAG_BLOCK_FLY|REGION_FLAG_BLOCK_TERRAFORM|REGION_FLAG_DISABLE_COLLISIONS|REGION_FLAG_DISABLE_PHYSICS|REGION_FLAG_FIXED_SUN|REGION_FLAG_RESTRICT_PUSHOBJECT|REGION_FLAG_SANDBOX|REMOTE_DATA_CHANNEL|REMOTE_DATA_REPLY|REMOTE_DATA_REQUEST|REQUIRE_LINE_OF_SIGHT|RESTITUTION|REVERSE|ROTATE|SCALE|SCRIPTED|SIM_STAT_PCT_CHARS_STEPPED|SMOOTH|STATUS_BLOCK_GRAB|STATUS_BLOCK_GRAB_OBJECT|STATUS_BOUNDS_ERROR|STATUS_CAST_SHADOWS|STATUS_DIE_AT_EDGE|STATUS_INTERNAL_ERROR|STATUS_MALFORMED_PARAMS|STATUS_NOT_FOUND|STATUS_NOT_SUPPORTED|STATUS_OK|STATUS_PHANTOM|STATUS_PHYSICS|STATUS_RETURN_AT_EDGE|STATUS_ROTATE_X|STATUS_ROTATE_Y|STATUS_ROTATE_Z|STATUS_SANDBOX|STATUS_TYPE_MISMATCH|STATUS_WHITELIST_FAILED|STRING_TRIM|STRING_TRIM_HEAD|STRING_TRIM_TAIL|TOUCH_INVALID_FACE|TRAVERSAL_TYPE|TRAVERSAL_TYPE_FAST|TRAVERSAL_TYPE_NONE|TRAVERSAL_TYPE_SLOW|TRUE|TYPE_FLOAT|TYPE_INTEGER|TYPE_INVALID|TYPE_KEY|TYPE_ROTATION|TYPE_STRING|TYPE_VECTOR|VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY|VEHICLE_ANGULAR_DEFLECTION_TIMESCALE|VEHICLE_ANGULAR_FRICTION_TIMESCALE|VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE|VEHICLE_ANGULAR_MOTOR_DIRECTION|VEHICLE_ANGULAR_MOTOR_TIMESCALE|VEHICLE_BANKING_EFFICIENCY|VEHICLE_BANKING_MIX|VEHICLE_BANKING_TIMESCALE|VEHICLE_BUOYANCY|VEHICLE_FLAG_CAMERA_DECOUPLED|VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT|VEHICLE_FLAG_HOVER_TERRAIN_ONLY|VEHICLE_FLAG_HOVER_UP_ONLY|VEHICLE_FLAG_HOVER_WATER_ONLY|VEHICLE_FLAG_LIMIT_MOTOR_UP|VEHICLE_FLAG_LIMIT_ROLL_ONLY|VEHICLE_FLAG_MOUSELOOK_BANK|VEHICLE_FLAG_MOUSELOOK_STEER|VEHICLE_FLAG_NO_DEFLECTION_UP|VEHICLE_HOVER_EFFICIENCY|VEHICLE_HOVER_HEIGHT|VEHICLE_HOVER_TIMESCALE|VEHICLE_LINEAR_DEFLECTION_EFFICIENCY|VEHICLE_LINEAR_DEFLECTION_TIMESCALE|VEHICLE_LINEAR_FRICTION_TIMESCALE|VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE|VEHICLE_LINEAR_MOTOR_DIRECTION|VEHICLE_LINEAR_MOTOR_OFFSET|VEHICLE_LINEAR_MOTOR_TIMESCALE|VEHICLE_REFERENCE_FRAME|VEHICLE_TYPE_AIRPLANE|VEHICLE_TYPE_BALLOON|VEHICLE_TYPE_BOAT|VEHICLE_TYPE_CAR|VEHICLE_TYPE_NONE|VEHICLE_TYPE_SLED|VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY|VEHICLE_VERTICAL_ATTRACTION_TIMESCALE|VERTICAL|WANDER_PAUSE_AT_WAYPOINTS|XP_ERROR_EXPERIENCES_DISABLED|XP_ERROR_EXPERIENCE_DISABLED|XP_ERROR_EXPERIENCE_SUSPENDED|XP_ERROR_INVALID_EXPERIENCE|XP_ERROR_INVALID_PARAMETERS|XP_ERROR_KEY_NOT_FOUND|XP_ERROR_MATURITY_EXCEEDED|XP_ERROR_NONE|XP_ERROR_NOT_FOUND|XP_ERROR_NOT_PERMITTED|XP_ERROR_NO_EXPERIENCE|XP_ERROR_QUOTA_EXCEEDED|XP_ERROR_RETRY_UPDATE|XP_ERROR_STORAGE_EXCEPTION|XP_ERROR_STORE_DISABLED|XP_ERROR_THROTTLED|XP_ERROR_UNKNOWN_ERROR\",\"constant.language.integer.boolean.lsl\":\"FALSE|TRUE\",\"constant.language.quaternion.lsl\":\"ZERO_ROTATION\",\"constant.language.string.lsl\":\"EOF|JSON_ARRAY|JSON_DELETE|JSON_FALSE|JSON_INVALID|JSON_NULL|JSON_NUMBER|JSON_OBJECT|JSON_STRING|JSON_TRUE|NULL_KEY|TEXTURE_BLANK|TEXTURE_DEFAULT|TEXTURE_MEDIA|TEXTURE_PLYWOOD|TEXTURE_TRANSPARENT|URL_REQUEST_DENIED|URL_REQUEST_GRANTED\",\"constant.language.vector.lsl\":\"TOUCH_INVALID_TEXCOORD|TOUCH_INVALID_VECTOR|ZERO_VECTOR\",\"invalid.broken.lsl\":\"LAND_LARGE_BRUSH|LAND_MEDIUM_BRUSH|LAND_SMALL_BRUSH\",\"invalid.deprecated.lsl\":\"ATTACH_LPEC|ATTACH_RPEC|DATA_RATING|OBJECT_ATTACHMENT_GEOMETRY_BYTES|OBJECT_ATTACHMENT_SURFACE_AREA|PRIM_CAST_SHADOWS|PRIM_MATERIAL_LIGHT|PRIM_TYPE_LEGACY|PSYS_SRC_INNERANGLE|PSYS_SRC_OUTERANGLE|VEHICLE_FLAG_NO_FLY_UP|llClearExperiencePermissions|llCloud|llGetExperienceList|llMakeExplosion|llMakeFire|llMakeFountain|llMakeSmoke|llRemoteDataSetRegion|llSound|llSoundPreload|llXorBase64Strings|llXorBase64StringsCorrect\",\"invalid.illegal.lsl\":\"event\",\"invalid.unimplemented.lsl\":\"CHARACTER_MAX_ANGULAR_ACCEL|CHARACTER_MAX_ANGULAR_SPEED|CHARACTER_TURN_SPEED_MULTIPLIER|PERMISSION_CHANGE_JOINTS|PERMISSION_CHANGE_PERMISSIONS|PERMISSION_EXPERIENCE|PERMISSION_RELEASE_OWNERSHIP|PERMISSION_REMAP_CONTROLS|PRIM_PHYSICS_MATERIAL|PSYS_SRC_OBJ_REL_MASK|llCollisionSprite|llPointAt|llRefreshPrimURL|llReleaseCamera|llRemoteLoadScript|llSetPrimURL|llStopPointAt|llTakeCamera\",\"reserved.godmode.lsl\":\"llGodLikeRezObject|llSetInventoryPermMask|llSetObjectPermMask\",\"reserved.log.lsl\":\"print\",\"keyword.control.lsl\":\"do|else|for|if|jump|return|while\",\"storage.type.lsl\":\"float|integer|key|list|quaternion|rotation|string|vector\",\"support.function.lsl\":\"llAbs|llAcos|llAddToLandBanList|llAddToLandPassList|llAdjustSoundVolume|llAgentInExperience|llAllowInventoryDrop|llAngleBetween|llApplyImpulse|llApplyRotationalImpulse|llAsin|llAtan2|llAttachToAvatar|llAttachToAvatarTemp|llAvatarOnLinkSitTarget|llAvatarOnSitTarget|llAxes2Rot|llAxisAngle2Rot|llBase64ToInteger|llBase64ToString|llBreakAllLinks|llBreakLink|llCSV2List|llCastRay|llCeil|llClearCameraParams|llClearLinkMedia|llClearPrimMedia|llCloseRemoteDataChannel|llCollisionFilter|llCollisionSound|llCos|llCreateCharacter|llCreateKeyValue|llCreateLink|llDataSizeKeyValue|llDeleteCharacter|llDeleteKeyValue|llDeleteSubList|llDeleteSubString|llDetachFromAvatar|llDetectedGrab|llDetectedGroup|llDetectedKey|llDetectedLinkNumber|llDetectedName|llDetectedOwner|llDetectedPos|llDetectedRot|llDetectedTouchBinormal|llDetectedTouchFace|llDetectedTouchNormal|llDetectedTouchPos|llDetectedTouchST|llDetectedTouchUV|llDetectedType|llDetectedVel|llDialog|llDie|llDumpList2String|llEdgeOfWorld|llEjectFromLand|llEmail|llEscapeURL|llEuler2Rot|llEvade|llExecCharacterCmd|llFabs|llFleeFrom|llFloor|llForceMouselook|llFrand|llGenerateKey|llGetAccel|llGetAgentInfo|llGetAgentLanguage|llGetAgentList|llGetAgentSize|llGetAlpha|llGetAndResetTime|llGetAnimation|llGetAnimationList|llGetAnimationOverride|llGetAttached|llGetAttachedList|llGetBoundingBox|llGetCameraPos|llGetCameraRot|llGetCenterOfMass|llGetClosestNavPoint|llGetColor|llGetCreator|llGetDate|llGetDisplayName|llGetEnergy|llGetEnv|llGetExperienceDetails|llGetExperienceErrorMessage|llGetForce|llGetFreeMemory|llGetFreeURLs|llGetGMTclock|llGetGeometricCenter|llGetHTTPHeader|llGetInventoryCreator|llGetInventoryKey|llGetInventoryName|llGetInventoryNumber|llGetInventoryPermMask|llGetInventoryType|llGetKey|llGetLandOwnerAt|llGetLinkKey|llGetLinkMedia|llGetLinkName|llGetLinkNumber|llGetLinkNumberOfSides|llGetLinkPrimitiveParams|llGetListEntryType|llGetListLength|llGetLocalPos|llGetLocalRot|llGetMass|llGetMassMKS|llGetMaxScaleFactor|llGetMemoryLimit|llGetMinScaleFactor|llGetNextEmail|llGetNotecardLine|llGetNumberOfNotecardLines|llGetNumberOfPrims|llGetNumberOfSides|llGetObjectDesc|llGetObjectDetails|llGetObjectMass|llGetObjectName|llGetObjectPermMask|llGetObjectPrimCount|llGetOmega|llGetOwner|llGetOwnerKey|llGetParcelDetails|llGetParcelFlags|llGetParcelMaxPrims|llGetParcelMusicURL|llGetParcelPrimCount|llGetParcelPrimOwners|llGetPermissions|llGetPermissionsKey|llGetPhysicsMaterial|llGetPos|llGetPrimMediaParams|llGetPrimitiveParams|llGetRegionAgentCount|llGetRegionCorner|llGetRegionFPS|llGetRegionFlags|llGetRegionName|llGetRegionTimeDilation|llGetRootPosition|llGetRootRotation|llGetRot|llGetSPMaxMemory|llGetScale|llGetScriptName|llGetScriptState|llGetSimStats|llGetSimulatorHostname|llGetStartParameter|llGetStaticPath|llGetStatus|llGetSubString|llGetSunDirection|llGetTexture|llGetTextureOffset|llGetTextureRot|llGetTextureScale|llGetTime|llGetTimeOfDay|llGetTimestamp|llGetTorque|llGetUnixTime|llGetUsedMemory|llGetUsername|llGetVel|llGetWallclock|llGiveInventory|llGiveInventoryList|llGiveMoney|llGround|llGroundContour|llGroundNormal|llGroundRepel|llGroundSlope|llHTTPRequest|llHTTPResponse|llInsertString|llInstantMessage|llIntegerToBase64|llJson2List|llJsonGetValue|llJsonSetValue|llJsonValueType|llKey2Name|llKeyCountKeyValue|llKeysKeyValue|llLinkParticleSystem|llLinkSitTarget|llList2CSV|llList2Float|llList2Integer|llList2Json|llList2Key|llList2List|llList2ListStrided|llList2Rot|llList2String|llList2Vector|llListFindList|llListInsertList|llListRandomize|llListReplaceList|llListSort|llListStatistics|llListen|llListenControl|llListenRemove|llLoadURL|llLog|llLog10|llLookAt|llLoopSound|llLoopSoundMaster|llLoopSoundSlave|llMD5String|llManageEstateAccess|llMapDestination|llMessageLinked|llMinEventDelay|llModPow|llModifyLand|llMoveToTarget|llNavigateTo|llOffsetTexture|llOpenRemoteDataChannel|llOverMyLand|llOwnerSay|llParcelMediaCommandList|llParcelMediaQuery|llParseString2List|llParseStringKeepNulls|llParticleSystem|llPassCollisions|llPassTouches|llPatrolPoints|llPlaySound|llPlaySoundSlave|llPow|llPreloadSound|llPursue|llPushObject|llReadKeyValue|llRegionSay|llRegionSayTo|llReleaseControls|llReleaseURL|llRemoteDataReply|llRemoteLoadScriptPin|llRemoveFromLandBanList|llRemoveFromLandPassList|llRemoveInventory|llRemoveVehicleFlags|llRequestAgentData|llRequestDisplayName|llRequestExperiencePermissions|llRequestInventoryData|llRequestPermissions|llRequestSecureURL|llRequestSimulatorData|llRequestURL|llRequestUsername|llResetAnimationOverride|llResetLandBanList|llResetLandPassList|llResetOtherScript|llResetScript|llResetTime|llReturnObjectsByID|llReturnObjectsByOwner|llRezAtRoot|llRezObject|llRot2Angle|llRot2Axis|llRot2Euler|llRot2Fwd|llRot2Left|llRot2Up|llRotBetween|llRotLookAt|llRotTarget|llRotTargetRemove|llRotateTexture|llRound|llSHA1String|llSameGroup|llSay|llScaleByFactor|llScaleTexture|llScriptDanger|llScriptProfiler|llSendRemoteData|llSensor|llSensorRemove|llSensorRepeat|llSetAlpha|llSetAngularVelocity|llSetAnimationOverride|llSetBuoyancy|llSetCameraAtOffset|llSetCameraEyeOffset|llSetCameraParams|llSetClickAction|llSetColor|llSetContentType|llSetDamage|llSetForce|llSetForceAndTorque|llSetHoverHeight|llSetKeyframedMotion|llSetLinkAlpha|llSetLinkCamera|llSetLinkColor|llSetLinkMedia|llSetLinkPrimitiveParams|llSetLinkPrimitiveParamsFast|llSetLinkTexture|llSetLinkTextureAnim|llSetLocalRot|llSetMemoryLimit|llSetObjectDesc|llSetObjectName|llSetParcelMusicURL|llSetPayPrice|llSetPhysicsMaterial|llSetPos|llSetPrimMediaParams|llSetPrimitiveParams|llSetRegionPos|llSetRemoteScriptAccessPin|llSetRot|llSetScale|llSetScriptState|llSetSitText|llSetSoundQueueing|llSetSoundRadius|llSetStatus|llSetText|llSetTexture|llSetTextureAnim|llSetTimerEvent|llSetTorque|llSetTouchText|llSetVehicleFlags|llSetVehicleFloatParam|llSetVehicleRotationParam|llSetVehicleType|llSetVehicleVectorParam|llSetVelocity|llShout|llSin|llSitTarget|llSleep|llSqrt|llStartAnimation|llStopAnimation|llStopHover|llStopLookAt|llStopMoveToTarget|llStopSound|llStringLength|llStringToBase64|llStringTrim|llSubStringIndex|llTakeControls|llTan|llTarget|llTargetOmega|llTargetRemove|llTeleportAgent|llTeleportAgentGlobalCoords|llTeleportAgentHome|llTextBox|llToLower|llToUpper|llTransferLindenDollars|llTriggerSound|llTriggerSoundLimited|llUnSit|llUnescapeURL|llUpdateCharacter|llUpdateKeyValue|llVecDist|llVecMag|llVecNorm|llVolumeDetect|llWanderWithin|llWater|llWhisper|llWind|llXorBase64\",\"support.function.event.lsl\":\"at_rot_target|at_target|attach|changed|collision|collision_end|collision_start|control|dataserver|email|experience_permissions|experience_permissions_denied|http_request|http_response|land_collision|land_collision_end|land_collision_start|link_message|listen|money|moving_end|moving_start|no_sensor|not_at_rot_target|not_at_target|object_rez|on_rez|path_update|remote_data|run_time_permissions|sensor|state_entry|state_exit|timer|touch|touch_end|touch_start|transaction_result\"},\"identifier\");this.$rules={start:[{token:\"comment.line.double-slash.lsl\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment.block.begin.lsl\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string.quoted.double.lsl\",start:'\"',end:'\"',next:[{token:\"constant.character.escape.lsl\",regex:/\\\\[tn\"\\\\]/}]},{token:\"constant.numeric.lsl\",regex:\"(0[xX][0-9a-fA-F]+|[+-]?[0-9]+(?:(?:\\\\.[0-9]*)?(?:[eE][+-]?[0-9]+)?)?)\\\\b\"},{token:\"entity.name.state.lsl\",regex:\"\\\\b((state)\\\\s+[A-Za-z_]\\\\w*|default)\\\\b\"},{token:e,regex:\"\\\\b[a-zA-Z_][a-zA-Z0-9_]*\\\\b\"},{token:\"support.function.user-defined.lsl\",regex:/\\b([a-zA-Z_]\\w*)(?=\\(.*?\\))/},{token:\"keyword.operator.lsl\",regex:\"\\\\+\\\\+|\\\\-\\\\-|<<|>>|&&?|\\\\|\\\\|?|\\\\^|~|[!%<>=*+\\\\-\\\\/]=?\"},{token:\"invalid.illegal.keyword.operator.lsl\",regex:\":=?\"},{token:\"punctuation.operator.lsl\",regex:\"\\\\,|\\\\;\"},{token:\"paren.lparen.lsl\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen.lsl\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text.lsl\",regex:\"\\\\s+\"}],comment:[{token:\"comment.block.end.lsl\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment.block.lsl\"}]},this.normalizeRules()}var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules;r.inherits(s,i),t.LSLHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/lsl\",[\"require\",\"exports\",\"module\",\"ace/mode/lsl_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/text\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/lib/oop\"],function(e,t,n){\"use strict\";var r=e(\"./lsl_highlight_rules\").LSLHighlightRules,i=e(\"./matching_brace_outdent\").MatchingBraceOutdent,s=e(\"../range\").Range,o=e(\"./text\").Mode,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=e(\"../lib/oop\"),l=function(){this.HighlightRules=r,this.$outdent=new i,this.$behaviour=new u,this.foldingRules=new a};f.inherits(l,o),function(){this.lineCommentStart=[\"//\"],this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type===\"comment.block.lsl\")return r;if(e===\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/lsl\"}.call(l.prototype),t.Mode=l})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-lua.js",
    "content": "ace.define(\"ace/mode/lua_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"break|do|else|elseif|end|for|function|if|in|local|repeat|return|then|until|while|or|and|not\",t=\"true|false|nil|_G|_VERSION\",n=\"string|xpcall|package|tostring|print|os|unpack|require|getfenv|setmetatable|next|assert|tonumber|io|rawequal|collectgarbage|getmetatable|module|rawset|math|debug|pcall|table|newproxy|type|coroutine|_G|select|gcinfo|pairs|rawget|loadstring|ipairs|_VERSION|dofile|setfenv|load|error|loadfile|sub|upper|len|gfind|rep|find|match|char|dump|gmatch|reverse|byte|format|gsub|lower|preload|loadlib|loaded|loaders|cpath|config|path|seeall|exit|setlocale|date|getenv|difftime|remove|time|clock|tmpname|rename|execute|lines|write|close|flush|open|output|type|read|stderr|stdin|input|stdout|popen|tmpfile|log|max|acos|huge|ldexp|pi|cos|tanh|pow|deg|tan|cosh|sinh|random|randomseed|frexp|ceil|floor|rad|abs|sqrt|modf|asin|min|mod|fmod|log10|atan2|exp|sin|atan|getupvalue|debug|sethook|getmetatable|gethook|setmetatable|setlocal|traceback|setfenv|getinfo|setupvalue|getlocal|getregistry|getfenv|setn|insert|getn|foreachi|maxn|foreach|concat|sort|remove|resume|yield|status|wrap|create|running|__add|__sub|__mod|__unm|__concat|__lt|__index|__call|__gc|__metatable|__mul|__div|__pow|__len|__eq|__le|__newindex|__tostring|__mode|__tonumber\",r=\"string|package|os|io|math|debug|table|coroutine\",i=\"setn|foreach|foreachi|gcinfo|log10|maxn\",s=this.createKeywordMapper({keyword:e,\"support.function\":n,\"keyword.deprecated\":i,\"constant.library\":r,\"constant.language\":t,\"variable.language\":\"self\"},\"identifier\"),o=\"(?:(?:[1-9]\\\\d*)|(?:0))\",u=\"(?:0[xX][\\\\dA-Fa-f]+)\",a=\"(?:\"+o+\"|\"+u+\")\",f=\"(?:\\\\.\\\\d+)\",l=\"(?:\\\\d+)\",c=\"(?:(?:\"+l+\"?\"+f+\")|(?:\"+l+\"\\\\.))\",h=\"(?:\"+c+\")\";this.$rules={start:[{stateName:\"bracketedComment\",onMatch:function(e,t,n){return n.unshift(this.next,e.length-2,t),\"comment\"},regex:/\\-\\-\\[=*\\[/,next:[{onMatch:function(e,t,n){return e.length==n[1]?(n.shift(),n.shift(),this.next=n.shift()):this.next=\"\",\"comment\"},regex:/\\]=*\\]/,next:\"start\"},{defaultToken:\"comment\"}]},{token:\"comment\",regex:\"\\\\-\\\\-.*$\"},{stateName:\"bracketedString\",onMatch:function(e,t,n){return n.unshift(this.next,e.length,t),\"comment\"},regex:/\\[=*\\[/,next:[{onMatch:function(e,t,n){return e.length==n[1]?(n.shift(),n.shift(),this.next=n.shift()):this.next=\"\",\"comment\"},regex:/\\]=*\\]/,next:\"start\"},{defaultToken:\"comment\"}]},{token:\"string\",regex:'\"(?:[^\\\\\\\\]|\\\\\\\\.)*?\"'},{token:\"string\",regex:\"'(?:[^\\\\\\\\]|\\\\\\\\.)*?'\"},{token:\"constant.numeric\",regex:h},{token:\"constant.numeric\",regex:a+\"\\\\b\"},{token:s,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\/|%|\\\\#|\\\\^|~|<|>|<=|=>|==|~=|=|\\\\:|\\\\.\\\\.\\\\.|\\\\.\\\\.\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text\",regex:\"\\\\s+|\\\\w+\"}]},this.normalizeRules()};r.inherits(s,i),t.LuaHighlightRules=s}),ace.define(\"ace/mode/folding/lua\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=e(\"../../token_iterator\").TokenIterator,u=t.FoldMode=function(){};r.inherits(u,i),function(){this.foldingStartMarker=/\\b(function|then|do|repeat)\\b|{\\s*$|(\\[=*\\[)/,this.foldingStopMarker=/\\bend\\b|^\\s*}|\\]=*\\]/,this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=this.foldingStartMarker.test(r),s=this.foldingStopMarker.test(r);if(i&&!s){var o=r.match(this.foldingStartMarker);if(o[1]==\"then\"&&/\\belseif\\b/.test(r))return;if(o[1]){if(e.getTokenAt(n,o.index+1).type===\"keyword\")return\"start\"}else{if(!o[2])return\"start\";var u=e.bgTokenizer.getState(n)||\"\";if(u[0]==\"bracketedComment\"||u[0]==\"bracketedString\")return\"start\"}}if(t!=\"markbeginend\"||!s||i&&s)return\"\";var o=r.match(this.foldingStopMarker);if(o[0]===\"end\"){if(e.getTokenAt(n,o.index+1).type===\"keyword\")return\"end\"}else{if(o[0][0]!==\"]\")return\"end\";var u=e.bgTokenizer.getState(n-1)||\"\";if(u[0]==\"bracketedComment\"||u[0]==\"bracketedString\")return\"end\"}},this.getFoldWidgetRange=function(e,t,n){var r=e.doc.getLine(n),i=this.foldingStartMarker.exec(r);if(i)return i[1]?this.luaBlock(e,n,i.index+1):i[2]?e.getCommentFoldRange(n,i.index+1):this.openingBracketBlock(e,\"{\",n,i.index);var i=this.foldingStopMarker.exec(r);if(i)return i[0]===\"end\"&&e.getTokenAt(n,i.index+1).type===\"keyword\"?this.luaBlock(e,n,i.index+1):i[0][0]===\"]\"?e.getCommentFoldRange(n,i.index+1):this.closingBracketBlock(e,\"}\",n,i.index+i[0].length)},this.luaBlock=function(e,t,n){var r=new o(e,t,n),i={\"function\":1,\"do\":1,then:1,elseif:-1,end:-1,repeat:1,until:-1},u=r.getCurrentToken();if(!u||u.type!=\"keyword\")return;var a=u.value,f=[a],l=i[a];if(!l)return;var c=l===-1?r.getCurrentTokenColumn():e.getLine(t).length,h=t;r.step=l===-1?r.stepBackward:r.stepForward;while(u=r.step()){if(u.type!==\"keyword\")continue;var p=l*i[u.value];if(p>0)f.unshift(u.value);else if(p<=0){f.shift();if(!f.length&&u.value!=\"elseif\")break;p===0&&f.unshift(u.value)}}var t=r.getCurrentTokenRow();return l===-1?new s(t,e.getLine(t).length,h,c):new s(h,c,t,r.getCurrentTokenColumn())}}.call(u.prototype)}),ace.define(\"ace/mode/lua\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/lua_highlight_rules\",\"ace/mode/folding/lua\",\"ace/range\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./lua_highlight_rules\").LuaHighlightRules,o=e(\"./folding/lua\").FoldMode,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(f,i),function(){function n(t){var n=0;for(var r=0;r<t.length;r++){var i=t[r];i.type==\"keyword\"?i.value in e&&(n+=e[i.value]):i.type==\"paren.lparen\"?n+=i.value.length:i.type==\"paren.rparen\"&&(n-=i.value.length)}return n<0?-1:n>0?1:0}this.lineCommentStart=\"--\",this.blockComment={start:\"--[\",end:\"]--\"};var e={\"function\":1,then:1,\"do\":1,\"else\":1,elseif:1,repeat:1,end:-1,until:-1},t=[\"else\",\"elseif\",\"end\",\"until\"];this.getNextLineIndent=function(e,t,r){var i=this.$getIndent(t),s=0,o=this.getTokenizer().getLineTokens(t,e),u=o.tokens;return e==\"start\"&&(s=n(u)),s>0?i+r:s<0&&i.substr(i.length-r.length)==r&&!this.checkOutdent(e,t,\"\\n\")?i.substr(0,i.length-r.length):i},this.checkOutdent=function(e,n,r){if(r!=\"\\n\"&&r!=\"\\r\"&&r!=\"\\r\\n\")return!1;if(n.match(/^\\s*[\\)\\}\\]]$/))return!0;var i=this.getTokenizer().getLineTokens(n.trim(),e).tokens;return!i||!i.length?!1:i[0].type==\"keyword\"&&t.indexOf(i[0].value)!=-1},this.autoOutdent=function(e,t,r){var i=t.getLine(r-1),s=this.$getIndent(i).length,o=this.getTokenizer().getLineTokens(i,\"start\").tokens,a=t.getTabString().length,f=s+a*n(o),l=this.$getIndent(t.getLine(r)).length;if(l<f)return;t.outdentRows(new u(r,0,r+2,0))},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/lua_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/lua\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-luapage.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[A-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/lua_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"break|do|else|elseif|end|for|function|if|in|local|repeat|return|then|until|while|or|and|not\",t=\"true|false|nil|_G|_VERSION\",n=\"string|xpcall|package|tostring|print|os|unpack|require|getfenv|setmetatable|next|assert|tonumber|io|rawequal|collectgarbage|getmetatable|module|rawset|math|debug|pcall|table|newproxy|type|coroutine|_G|select|gcinfo|pairs|rawget|loadstring|ipairs|_VERSION|dofile|setfenv|load|error|loadfile|sub|upper|len|gfind|rep|find|match|char|dump|gmatch|reverse|byte|format|gsub|lower|preload|loadlib|loaded|loaders|cpath|config|path|seeall|exit|setlocale|date|getenv|difftime|remove|time|clock|tmpname|rename|execute|lines|write|close|flush|open|output|type|read|stderr|stdin|input|stdout|popen|tmpfile|log|max|acos|huge|ldexp|pi|cos|tanh|pow|deg|tan|cosh|sinh|random|randomseed|frexp|ceil|floor|rad|abs|sqrt|modf|asin|min|mod|fmod|log10|atan2|exp|sin|atan|getupvalue|debug|sethook|getmetatable|gethook|setmetatable|setlocal|traceback|setfenv|getinfo|setupvalue|getlocal|getregistry|getfenv|setn|insert|getn|foreachi|maxn|foreach|concat|sort|remove|resume|yield|status|wrap|create|running|__add|__sub|__mod|__unm|__concat|__lt|__index|__call|__gc|__metatable|__mul|__div|__pow|__len|__eq|__le|__newindex|__tostring|__mode|__tonumber\",r=\"string|package|os|io|math|debug|table|coroutine\",i=\"setn|foreach|foreachi|gcinfo|log10|maxn\",s=this.createKeywordMapper({keyword:e,\"support.function\":n,\"keyword.deprecated\":i,\"constant.library\":r,\"constant.language\":t,\"variable.language\":\"self\"},\"identifier\"),o=\"(?:(?:[1-9]\\\\d*)|(?:0))\",u=\"(?:0[xX][\\\\dA-Fa-f]+)\",a=\"(?:\"+o+\"|\"+u+\")\",f=\"(?:\\\\.\\\\d+)\",l=\"(?:\\\\d+)\",c=\"(?:(?:\"+l+\"?\"+f+\")|(?:\"+l+\"\\\\.))\",h=\"(?:\"+c+\")\";this.$rules={start:[{stateName:\"bracketedComment\",onMatch:function(e,t,n){return n.unshift(this.next,e.length-2,t),\"comment\"},regex:/\\-\\-\\[=*\\[/,next:[{onMatch:function(e,t,n){return e.length==n[1]?(n.shift(),n.shift(),this.next=n.shift()):this.next=\"\",\"comment\"},regex:/\\]=*\\]/,next:\"start\"},{defaultToken:\"comment\"}]},{token:\"comment\",regex:\"\\\\-\\\\-.*$\"},{stateName:\"bracketedString\",onMatch:function(e,t,n){return n.unshift(this.next,e.length,t),\"comment\"},regex:/\\[=*\\[/,next:[{onMatch:function(e,t,n){return e.length==n[1]?(n.shift(),n.shift(),this.next=n.shift()):this.next=\"\",\"comment\"},regex:/\\]=*\\]/,next:\"start\"},{defaultToken:\"comment\"}]},{token:\"string\",regex:'\"(?:[^\\\\\\\\]|\\\\\\\\.)*?\"'},{token:\"string\",regex:\"'(?:[^\\\\\\\\]|\\\\\\\\.)*?'\"},{token:\"constant.numeric\",regex:h},{token:\"constant.numeric\",regex:a+\"\\\\b\"},{token:s,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\/|%|\\\\#|\\\\^|~|<|>|<=|=>|==|~=|=|\\\\:|\\\\.\\\\.\\\\.|\\\\.\\\\.\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text\",regex:\"\\\\s+|\\\\w+\"}]},this.normalizeRules()};r.inherits(s,i),t.LuaHighlightRules=s}),ace.define(\"ace/mode/folding/lua\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=e(\"../../token_iterator\").TokenIterator,u=t.FoldMode=function(){};r.inherits(u,i),function(){this.foldingStartMarker=/\\b(function|then|do|repeat)\\b|{\\s*$|(\\[=*\\[)/,this.foldingStopMarker=/\\bend\\b|^\\s*}|\\]=*\\]/,this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=this.foldingStartMarker.test(r),s=this.foldingStopMarker.test(r);if(i&&!s){var o=r.match(this.foldingStartMarker);if(o[1]==\"then\"&&/\\belseif\\b/.test(r))return;if(o[1]){if(e.getTokenAt(n,o.index+1).type===\"keyword\")return\"start\"}else{if(!o[2])return\"start\";var u=e.bgTokenizer.getState(n)||\"\";if(u[0]==\"bracketedComment\"||u[0]==\"bracketedString\")return\"start\"}}if(t!=\"markbeginend\"||!s||i&&s)return\"\";var o=r.match(this.foldingStopMarker);if(o[0]===\"end\"){if(e.getTokenAt(n,o.index+1).type===\"keyword\")return\"end\"}else{if(o[0][0]!==\"]\")return\"end\";var u=e.bgTokenizer.getState(n-1)||\"\";if(u[0]==\"bracketedComment\"||u[0]==\"bracketedString\")return\"end\"}},this.getFoldWidgetRange=function(e,t,n){var r=e.doc.getLine(n),i=this.foldingStartMarker.exec(r);if(i)return i[1]?this.luaBlock(e,n,i.index+1):i[2]?e.getCommentFoldRange(n,i.index+1):this.openingBracketBlock(e,\"{\",n,i.index);var i=this.foldingStopMarker.exec(r);if(i)return i[0]===\"end\"&&e.getTokenAt(n,i.index+1).type===\"keyword\"?this.luaBlock(e,n,i.index+1):i[0][0]===\"]\"?e.getCommentFoldRange(n,i.index+1):this.closingBracketBlock(e,\"}\",n,i.index+i[0].length)},this.luaBlock=function(e,t,n){var r=new o(e,t,n),i={\"function\":1,\"do\":1,then:1,elseif:-1,end:-1,repeat:1,until:-1},u=r.getCurrentToken();if(!u||u.type!=\"keyword\")return;var a=u.value,f=[a],l=i[a];if(!l)return;var c=l===-1?r.getCurrentTokenColumn():e.getLine(t).length,h=t;r.step=l===-1?r.stepBackward:r.stepForward;while(u=r.step()){if(u.type!==\"keyword\")continue;var p=l*i[u.value];if(p>0)f.unshift(u.value);else if(p<=0){f.shift();if(!f.length&&u.value!=\"elseif\")break;p===0&&f.unshift(u.value)}}var t=r.getCurrentTokenRow();return l===-1?new s(t,e.getLine(t).length,h,c):new s(h,c,t,r.getCurrentTokenColumn())}}.call(u.prototype)}),ace.define(\"ace/mode/lua\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/lua_highlight_rules\",\"ace/mode/folding/lua\",\"ace/range\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./lua_highlight_rules\").LuaHighlightRules,o=e(\"./folding/lua\").FoldMode,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(f,i),function(){function n(t){var n=0;for(var r=0;r<t.length;r++){var i=t[r];i.type==\"keyword\"?i.value in e&&(n+=e[i.value]):i.type==\"paren.lparen\"?n+=i.value.length:i.type==\"paren.rparen\"&&(n-=i.value.length)}return n<0?-1:n>0?1:0}this.lineCommentStart=\"--\",this.blockComment={start:\"--[\",end:\"]--\"};var e={\"function\":1,then:1,\"do\":1,\"else\":1,elseif:1,repeat:1,end:-1,until:-1},t=[\"else\",\"elseif\",\"end\",\"until\"];this.getNextLineIndent=function(e,t,r){var i=this.$getIndent(t),s=0,o=this.getTokenizer().getLineTokens(t,e),u=o.tokens;return e==\"start\"&&(s=n(u)),s>0?i+r:s<0&&i.substr(i.length-r.length)==r&&!this.checkOutdent(e,t,\"\\n\")?i.substr(0,i.length-r.length):i},this.checkOutdent=function(e,n,r){if(r!=\"\\n\"&&r!=\"\\r\"&&r!=\"\\r\\n\")return!1;if(n.match(/^\\s*[\\)\\}\\]]$/))return!0;var i=this.getTokenizer().getLineTokens(n.trim(),e).tokens;return!i||!i.length?!1:i[0].type==\"keyword\"&&t.indexOf(i[0].value)!=-1},this.autoOutdent=function(e,t,r){var i=t.getLine(r-1),s=this.$getIndent(i).length,o=this.getTokenizer().getLineTokens(i,\"start\").tokens,a=t.getTabString().length,f=s+a*n(o),l=this.$getIndent(t.getLine(r)).length;if(l<f)return;t.outdentRows(new u(r,0,r+2,0))},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/lua_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/lua\"}.call(f.prototype),t.Mode=f}),ace.define(\"ace/mode/luapage_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/lua_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=e(\"./lua_highlight_rules\").LuaHighlightRules,o=function(){i.call(this);var e=[{token:\"keyword\",regex:\"<\\\\%\\\\=?\",push:\"lua-start\"},{token:\"keyword\",regex:\"<\\\\?lua\\\\=?\",push:\"lua-start\"}],t=[{token:\"keyword\",regex:\"\\\\%>\",next:\"pop\"},{token:\"keyword\",regex:\"\\\\?>\",next:\"pop\"}];this.embedRules(s,\"lua-\",t,[\"start\"]);for(var n in this.$rules)this.$rules[n].unshift.apply(this.$rules[n],e);this.normalizeRules()};r.inherits(o,i),t.LuaPageHighlightRules=o}),ace.define(\"ace/mode/luapage\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/lua\",\"ace/mode/luapage_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./lua\").Mode,o=e(\"./luapage_highlight_rules\").LuaPageHighlightRules,u=function(){i.call(this),this.HighlightRules=o,this.createModeDelegates({\"lua-\":s})};r.inherits(u,i),function(){this.$id=\"ace/mode/luapage\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-lucene.js",
    "content": "ace.define(\"ace/mode/lucene_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){this.$rules={start:[{token:\"constant.character.negation\",regex:\"[\\\\-]\"},{token:\"constant.character.interro\",regex:\"[\\\\?]\"},{token:\"constant.character.asterisk\",regex:\"[\\\\*]\"},{token:\"constant.character.proximity\",regex:\"~[0-9]+\\\\b\"},{token:\"keyword.operator\",regex:\"(?:AND|OR|NOT)\\\\b\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"keyword\",regex:\"[\\\\S]+:\"},{token:\"string\",regex:'\".*?\"'},{token:\"text\",regex:\"\\\\s+\"}]}};r.inherits(o,s),t.LuceneHighlightRules=o}),ace.define(\"ace/mode/lucene\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/lucene_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./lucene_highlight_rules\").LuceneHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.$id=\"ace/mode/lucene\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-makefile.js",
    "content": "ace.define(\"ace/mode/sh_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=t.reservedKeywords=\"!|{|}|case|do|done|elif|else|esac|fi|for|if|in|then|until|while|&|;|export|local|read|typeset|unset|elif|select|set|function|declare|readonly\",o=t.languageConstructs=\"[|]|alias|bg|bind|break|builtin|cd|command|compgen|complete|continue|dirs|disown|echo|enable|eval|exec|exit|fc|fg|getopts|hash|help|history|jobs|kill|let|logout|popd|printf|pushd|pwd|return|set|shift|shopt|source|suspend|test|times|trap|type|ulimit|umask|unalias|wait\",u=function(){var e=this.createKeywordMapper({keyword:s,\"support.function.builtin\":o,\"invalid.deprecated\":\"debugger\"},\"identifier\"),t=\"(?:(?:[1-9]\\\\d*)|(?:0))\",n=\"(?:\\\\.\\\\d+)\",r=\"(?:\\\\d+)\",i=\"(?:(?:\"+r+\"?\"+n+\")|(?:\"+r+\"\\\\.))\",u=\"(?:(?:\"+i+\"|\"+r+\")\"+\")\",a=\"(?:\"+u+\"|\"+i+\")\",f=\"(?:&\"+r+\")\",l=\"[a-zA-Z_][a-zA-Z0-9_]*\",c=\"(?:\"+l+\"=)\",h=\"(?:\\\\$(?:SHLVL|\\\\$|\\\\!|\\\\?))\",p=\"(?:\"+l+\"\\\\s*\\\\(\\\\))\";this.$rules={start:[{token:\"constant\",regex:/\\\\./},{token:[\"text\",\"comment\"],regex:/(^|\\s)(#.*)$/},{token:\"string\",regex:'\"',push:[{token:\"constant.language.escape\",regex:/\\\\(?:[$`\"\\\\]|$)/},{include:\"variables\"},{token:\"keyword.operator\",regex:/`/},{token:\"string\",regex:'\"',next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string\",regex:\"\\\\$'\",push:[{token:\"constant.language.escape\",regex:/\\\\(?:[abeEfnrtv\\\\'\"]|x[a-fA-F\\d]{1,2}|u[a-fA-F\\d]{4}([a-fA-F\\d]{4})?|c.|\\d{1,3})/},{token:\"string\",regex:\"'\",next:\"pop\"},{defaultToken:\"string\"}]},{regex:\"<<<\",token:\"keyword.operator\"},{stateName:\"heredoc\",regex:\"(<<-?)(\\\\s*)(['\\\"`]?)([\\\\w\\\\-]+)(['\\\"`]?)\",onMatch:function(e,t,n){var r=e[2]==\"-\"?\"indentedHeredoc\":\"heredoc\",i=e.split(this.splitRegex);return n.push(r,i[4]),[{type:\"constant\",value:i[1]},{type:\"text\",value:i[2]},{type:\"string\",value:i[3]},{type:\"support.class\",value:i[4]},{type:\"string\",value:i[5]}]},rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}],indentedHeredoc:[{token:\"string\",regex:\"^\t+\"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}]}},{regex:\"$\",token:\"empty\",next:function(e,t){return t[0]===\"heredoc\"||t[0]===\"indentedHeredoc\"?t[0]:e}},{token:[\"keyword\",\"text\",\"text\",\"text\",\"variable\"],regex:/(declare|local|readonly)(\\s+)(?:(-[fixar]+)(\\s+))?([a-zA-Z_][a-zA-Z0-9_]*\\b)/},{token:\"variable.language\",regex:h},{token:\"variable\",regex:c},{include:\"variables\"},{token:\"support.function\",regex:p},{token:\"support.function\",regex:f},{token:\"string\",start:\"'\",end:\"'\"},{token:\"constant.numeric\",regex:a},{token:\"constant.numeric\",regex:t+\"\\\\b\"},{token:e,regex:\"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|~|<|>|<=|=>|=|!=|[%&|`]\"},{token:\"punctuation.operator\",regex:\";\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]]\"},{token:\"paren.rparen\",regex:\"[\\\\)\\\\}]\",next:\"pop\"}],variables:[{token:\"variable\",regex:/(\\$)(\\w+)/},{token:[\"variable\",\"paren.lparen\"],regex:/(\\$)(\\()/,push:\"start\"},{token:[\"variable\",\"paren.lparen\",\"keyword.operator\",\"variable\",\"keyword.operator\"],regex:/(\\$)(\\{)([#!]?)(\\w+|[*@#?\\-$!0_])(:[?+\\-=]?|##?|%%?|,,?\\/|\\^\\^?)?/,push:\"start\"},{token:\"variable\",regex:/\\$[*@#?\\-$!0_]/},{token:[\"variable\",\"paren.lparen\"],regex:/(\\$)(\\{)/,push:\"start\"}]},this.normalizeRules()};r.inherits(u,i),t.ShHighlightRules=u}),ace.define(\"ace/mode/makefile_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/sh_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=e(\"./sh_highlight_rules\"),o=function(){var e=this.createKeywordMapper({keyword:s.reservedKeywords,\"support.function.builtin\":s.languageConstructs,\"invalid.deprecated\":\"debugger\"},\"string\");this.$rules={start:[{token:\"string.interpolated.backtick.makefile\",regex:\"`\",next:\"shell-start\"},{token:\"punctuation.definition.comment.makefile\",regex:/#(?=.)/,next:\"comment\"},{token:[\"keyword.control.makefile\"],regex:\"^(?:\\\\s*\\\\b)(\\\\-??include|ifeq|ifneq|ifdef|ifndef|else|endif|vpath|export|unexport|define|endef|override)(?:\\\\b)\"},{token:[\"entity.name.function.makefile\",\"text\"],regex:\"^([^\\\\t ]+(?:\\\\s[^\\\\t ]+)*:)(\\\\s*.*)\"}],comment:[{token:\"punctuation.definition.comment.makefile\",regex:/.+\\\\/},{token:\"punctuation.definition.comment.makefile\",regex:\".+\",next:\"start\"}],\"shell-start\":[{token:e,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"string\",regex:\"\\\\w+\"},{token:\"string.interpolated.backtick.makefile\",regex:\"`\",next:\"start\"}]}};r.inherits(o,i),t.MakefileHighlightRules=o}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/makefile\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/makefile_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./makefile_highlight_rules\").MakefileHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"#\",this.$indentWithTabs=!0,this.$id=\"ace/mode/makefile\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-markdown.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./xml_highlight_rules\").XmlHighlightRules,u=e(\"./behaviour/xml\").XmlBehaviour,a=e(\"./folding/xml\").FoldMode,f=e(\"../worker/worker_client\").WorkerClient,l=function(){this.HighlightRules=o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,s),function(){this.voidElements=i.arrayToMap([]),this.blockComment={start:\"<!--\",end:\"-->\"},this.createWorker=function(e){var t=new f([\"ace\"],\"ace/mode/xml_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/xml\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[A-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/markdown_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\",\"ace/mode/html_highlight_rules\",\"ace/mode/css_highlight_rules\"],function(e,t,n){\"use strict\";function c(e,t){return{token:\"support.function\",regex:\"^\\\\s*```\"+e+\"\\\\s*$\",push:t+\"start\"}}var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./css_highlight_rules\").CssHighlightRules,l=function(e){return\"(?:[^\"+i.escapeRegExp(e)+\"\\\\\\\\]|\\\\\\\\.)*\"},h=function(){a.call(this),this.$rules.start.unshift({token:\"empty_line\",regex:\"^$\",next:\"allowBlock\"},{token:\"markup.heading.1\",regex:\"^=+(?=\\\\s*$)\"},{token:\"markup.heading.2\",regex:\"^\\\\-+(?=\\\\s*$)\"},{token:function(e){return\"markup.heading.\"+e.length},regex:/^#{1,6}(?=\\s*[^ #]|\\s+#.)/,next:\"header\"},c(\"(?:javascript|js)\",\"jscode-\"),c(\"xml\",\"xmlcode-\"),c(\"html\",\"htmlcode-\"),c(\"css\",\"csscode-\"),{token:\"support.function\",regex:\"^\\\\s*```\\\\s*\\\\S*(?:{.*?\\\\})?\\\\s*$\",next:\"githubblock\"},{token:\"string.blockquote\",regex:\"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",next:\"blockquote\"},{token:\"constant\",regex:\"^ {0,2}(?:(?: ?\\\\* ?){3,}|(?: ?\\\\- ?){3,}|(?: ?\\\\_ ?){3,})\\\\s*$\",next:\"allowBlock\"},{token:\"markup.list\",regex:\"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",next:\"listblock-start\"},{include:\"basic\"}),this.addRules({basic:[{token:\"constant.language.escape\",regex:/\\\\[\\\\`*_{}\\[\\]()#+\\-.!]/},{token:\"support.function\",regex:\"(`+)(.*?[^`])(\\\\1)\"},{token:[\"text\",\"constant\",\"text\",\"url\",\"string\",\"text\"],regex:'^([ ]{0,3}\\\\[)([^\\\\]]+)(\\\\]:\\\\s*)([^ ]+)(\\\\s*(?:[\"][^\"]+[\"])?(\\\\s*))$'},{token:[\"text\",\"string\",\"text\",\"constant\",\"text\"],regex:\"(\\\\[)(\"+l(\"]\")+\")(\\\\]s*\\\\[)(\"+l(\"]\")+\")(\\\\])\"},{token:[\"text\",\"string\",\"text\",\"markup.underline\",\"string\",\"text\"],regex:\"(\\\\[)(\"+l(\"]\")+\")(\\\\]\\\\()\"+'((?:[^\\\\)\\\\s\\\\\\\\]|\\\\\\\\.|\\\\s(?=[^\"]))*)'+'(\\\\s*\"'+l('\"')+'\"\\\\s*)?'+\"(\\\\))\"},{token:\"string.strong\",regex:\"([*]{2}|[_]{2}(?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"},{token:\"string.emphasis\",regex:\"([*]|[_](?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"},{token:[\"text\",\"url\",\"text\"],regex:\"(<)((?:https?|ftp|dict):[^'\\\">\\\\s]+|(?:mailto:)?[-.\\\\w]+\\\\@[-a-z0-9]+(?:\\\\.[-a-z0-9]+)*\\\\.[a-z]+)(>)\"}],allowBlock:[{token:\"support.function\",regex:\"^ {4}.+\",next:\"allowBlock\"},{token:\"empty_line\",regex:\"^$\",next:\"allowBlock\"},{token:\"empty\",regex:\"\",next:\"start\"}],header:[{regex:\"$\",next:\"start\"},{include:\"basic\"},{defaultToken:\"heading\"}],\"listblock-start\":[{token:\"support.variable\",regex:/(?:\\[[ x]\\])?/,next:\"listblock\"}],listblock:[{token:\"empty_line\",regex:\"^$\",next:\"start\"},{token:\"markup.list\",regex:\"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",next:\"listblock-start\"},{include:\"basic\",noEscape:!0},{token:\"support.function\",regex:\"^\\\\s*```\\\\s*[a-zA-Z]*(?:{.*?\\\\})?\\\\s*$\",next:\"githubblock\"},{defaultToken:\"list\"}],blockquote:[{token:\"empty_line\",regex:\"^\\\\s*$\",next:\"start\"},{token:\"string.blockquote\",regex:\"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",next:\"blockquote\"},{include:\"basic\",noEscape:!0},{defaultToken:\"string.blockquote\"}],githubblock:[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"start\"},{token:\"support.function\",regex:\".+\"}]}),this.embedRules(o,\"jscode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(a,\"htmlcode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(f,\"csscode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(u,\"xmlcode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.normalizeRules()};r.inherits(h,s),t.MarkdownHighlightRules=h}),ace.define(\"ace/mode/folding/markdown\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.foldingStartMarker=/^(?:[=-]+\\s*$|#{1,6} |`{3})/,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?r[0]==\"`\"?e.bgTokenizer.getState(n)==\"start\"?\"end\":\"start\":\"start\":\"\"},this.getFoldWidgetRange=function(e,t,n){function l(t){return f=e.getTokens(t)[0],f&&f.type.lastIndexOf(c,0)===0}function h(){var e=f.value[0];return e==\"=\"?6:e==\"-\"?5:7-f.value.search(/[^#]/)}var r=e.getLine(n),i=r.length,o=e.getLength(),u=n,a=n;if(!r.match(this.foldingStartMarker))return;if(r[0]==\"`\"){if(e.bgTokenizer.getState(n)!==\"start\"){while(++n<o){r=e.getLine(n);if(r[0]==\"`\"&r.substring(0,3)==\"```\")break}return new s(u,i,n,0)}while(n-->0){r=e.getLine(n);if(r[0]==\"`\"&r.substring(0,3)==\"```\")break}return new s(n,r.length,u,0)}var f,c=\"markup.heading\";if(l(n)){var p=h();while(++n<o){if(!l(n))continue;var d=h();if(d>=p)break}a=n-(!f||[\"=\",\"-\"].indexOf(f.value[0])==-1?1:2);if(a>u)while(a>u&&/^\\s*$/.test(e.getLine(a)))a--;if(a>u){var v=e.getLine(a).length;return new s(u,i,a,v)}}}}.call(o.prototype)}),ace.define(\"ace/mode/markdown\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/xml\",\"ace/mode/html\",\"ace/mode/markdown_highlight_rules\",\"ace/mode/folding/markdown\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript\").Mode,o=e(\"./xml\").Mode,u=e(\"./html\").Mode,a=e(\"./markdown_highlight_rules\").MarkdownHighlightRules,f=e(\"./folding/markdown\").FoldMode,l=function(){this.HighlightRules=a,this.createModeDelegates({\"js-\":s,\"xml-\":o,\"html-\":u}),this.foldingRules=new f};r.inherits(l,i),function(){this.type=\"text\",this.blockComment={start:\"<!--\",end:\"-->\"},this.getNextLineIndent=function(e,t,n){if(e==\"listblock\"){var r=/^(\\s*)(?:([-+*])|(\\d+)\\.)(\\s+)/.exec(t);if(!r)return\"\";var i=r[2];return i||(i=parseInt(r[3],10)+1+\".\"),r[1]+i+r[4]}return this.$getIndent(t)},this.$id=\"ace/mode/markdown\"}.call(l.prototype),t.Mode=l})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-mask.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/markdown_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\",\"ace/mode/html_highlight_rules\",\"ace/mode/css_highlight_rules\"],function(e,t,n){\"use strict\";function c(e,t){return{token:\"support.function\",regex:\"^\\\\s*```\"+e+\"\\\\s*$\",push:t+\"start\"}}var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./css_highlight_rules\").CssHighlightRules,l=function(e){return\"(?:[^\"+i.escapeRegExp(e)+\"\\\\\\\\]|\\\\\\\\.)*\"},h=function(){a.call(this),this.$rules.start.unshift({token:\"empty_line\",regex:\"^$\",next:\"allowBlock\"},{token:\"markup.heading.1\",regex:\"^=+(?=\\\\s*$)\"},{token:\"markup.heading.2\",regex:\"^\\\\-+(?=\\\\s*$)\"},{token:function(e){return\"markup.heading.\"+e.length},regex:/^#{1,6}(?=\\s*[^ #]|\\s+#.)/,next:\"header\"},c(\"(?:javascript|js)\",\"jscode-\"),c(\"xml\",\"xmlcode-\"),c(\"html\",\"htmlcode-\"),c(\"css\",\"csscode-\"),{token:\"support.function\",regex:\"^\\\\s*```\\\\s*\\\\S*(?:{.*?\\\\})?\\\\s*$\",next:\"githubblock\"},{token:\"string.blockquote\",regex:\"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",next:\"blockquote\"},{token:\"constant\",regex:\"^ {0,2}(?:(?: ?\\\\* ?){3,}|(?: ?\\\\- ?){3,}|(?: ?\\\\_ ?){3,})\\\\s*$\",next:\"allowBlock\"},{token:\"markup.list\",regex:\"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",next:\"listblock-start\"},{include:\"basic\"}),this.addRules({basic:[{token:\"constant.language.escape\",regex:/\\\\[\\\\`*_{}\\[\\]()#+\\-.!]/},{token:\"support.function\",regex:\"(`+)(.*?[^`])(\\\\1)\"},{token:[\"text\",\"constant\",\"text\",\"url\",\"string\",\"text\"],regex:'^([ ]{0,3}\\\\[)([^\\\\]]+)(\\\\]:\\\\s*)([^ ]+)(\\\\s*(?:[\"][^\"]+[\"])?(\\\\s*))$'},{token:[\"text\",\"string\",\"text\",\"constant\",\"text\"],regex:\"(\\\\[)(\"+l(\"]\")+\")(\\\\]s*\\\\[)(\"+l(\"]\")+\")(\\\\])\"},{token:[\"text\",\"string\",\"text\",\"markup.underline\",\"string\",\"text\"],regex:\"(\\\\[)(\"+l(\"]\")+\")(\\\\]\\\\()\"+'((?:[^\\\\)\\\\s\\\\\\\\]|\\\\\\\\.|\\\\s(?=[^\"]))*)'+'(\\\\s*\"'+l('\"')+'\"\\\\s*)?'+\"(\\\\))\"},{token:\"string.strong\",regex:\"([*]{2}|[_]{2}(?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"},{token:\"string.emphasis\",regex:\"([*]|[_](?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"},{token:[\"text\",\"url\",\"text\"],regex:\"(<)((?:https?|ftp|dict):[^'\\\">\\\\s]+|(?:mailto:)?[-.\\\\w]+\\\\@[-a-z0-9]+(?:\\\\.[-a-z0-9]+)*\\\\.[a-z]+)(>)\"}],allowBlock:[{token:\"support.function\",regex:\"^ {4}.+\",next:\"allowBlock\"},{token:\"empty_line\",regex:\"^$\",next:\"allowBlock\"},{token:\"empty\",regex:\"\",next:\"start\"}],header:[{regex:\"$\",next:\"start\"},{include:\"basic\"},{defaultToken:\"heading\"}],\"listblock-start\":[{token:\"support.variable\",regex:/(?:\\[[ x]\\])?/,next:\"listblock\"}],listblock:[{token:\"empty_line\",regex:\"^$\",next:\"start\"},{token:\"markup.list\",regex:\"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",next:\"listblock-start\"},{include:\"basic\",noEscape:!0},{token:\"support.function\",regex:\"^\\\\s*```\\\\s*[a-zA-Z]*(?:{.*?\\\\})?\\\\s*$\",next:\"githubblock\"},{defaultToken:\"list\"}],blockquote:[{token:\"empty_line\",regex:\"^\\\\s*$\",next:\"start\"},{token:\"string.blockquote\",regex:\"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",next:\"blockquote\"},{include:\"basic\",noEscape:!0},{defaultToken:\"string.blockquote\"}],githubblock:[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"start\"},{token:\"support.function\",regex:\".+\"}]}),this.embedRules(o,\"jscode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(a,\"htmlcode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(f,\"csscode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.embedRules(u,\"xmlcode-\",[{token:\"support.function\",regex:\"^\\\\s*```\",next:\"pop\"}]),this.normalizeRules()};r.inherits(h,s),t.MarkdownHighlightRules=h}),ace.define(\"ace/mode/mask_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/css_highlight_rules\",\"ace/mode/markdown_highlight_rules\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";function N(){function t(e,t,n){var r=\"js-\"+e+\"-\",i=e===\"block\"?[\"start\"]:[\"start\",\"no_regex\"];s(o,r,t,i,n)}function n(){s(u,\"css-block-\",/\\}/)}function r(){s(a,\"md-multiline-\",/(\"\"\"|''')/,[])}function i(){s(f,\"html-multiline-\",/(\"\"\"|''')/)}function s(t,n,r,i,s){var o=\"pop\",u=i||[\"start\"];u.length===0&&(u=null),/block|multiline/.test(n)&&(o=n+\"end\",e.$rules[o]=[k(\"empty\",\"\",\"start\")]),e.embedRules(t,n,[k(s||w,r,o)],u,u==null?!0:!1)}this.$rules={start:[k(\"comment\",\"\\\\/\\\\/.*$\"),k(\"comment\",\"\\\\/\\\\*\",[k(\"comment\",\".*?\\\\*\\\\/\",\"start\"),k(\"comment\",\".+\")]),C.string(\"'''\"),C.string('\"\"\"'),C.string('\"'),C.string(\"'\"),C.syntax(/(markdown|md)\\b/,\"md-multiline\",\"multiline\"),C.syntax(/html\\b/,\"html-multiline\",\"multiline\"),C.syntax(/(slot|event)\\b/,\"js-block\",\"block\"),C.syntax(/style\\b/,\"css-block\",\"block\"),C.syntax(/var\\b/,\"js-statement\",\"attr\"),C.tag(),k(b,\"[[({>]\"),k(w,\"[\\\\])};]\",\"start\"),{caseInsensitive:!0}]};var e=this;t(\"interpolation\",/\\]/,w+\".\"+g),t(\"statement\",/\\)|}|;/),t(\"block\",/\\}/),n(),r(),i(),this.normalizeRules()}function k(e,t,n){var r,i,s;return arguments.length===4?(r=n,i=arguments[3]):typeof n==\"string\"?i=n:r=n,typeof e==\"function\"&&(s=e,e=\"empty\"),{token:e,regex:t,push:r,next:i,onMatch:s}}t.MaskHighlightRules=N;var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./css_highlight_rules\").CssHighlightRules,a=e(\"./markdown_highlight_rules\").MarkdownHighlightRules,f=e(\"./html_highlight_rules\").HtmlHighlightRules,l=\"keyword.support.constant.language\",c=\"support.function.markup.bold\",h=\"keyword\",p=\"constant.language\",d=\"keyword.control.markup.italic\",v=\"support.variable.class\",m=\"keyword.operator\",g=\"markup.italic\",y=\"markup.bold\",b=\"paren.lparen\",w=\"paren.rparen\",E,S,x,T;(function(){E=i.arrayToMap(\"log\".split(\"|\")),x=i.arrayToMap(\":dualbind|:bind|:import|slot|event|style|html|markdown|md\".split(\"|\")),S=i.arrayToMap(\"debugger|define|var|if|each|for|of|else|switch|case|with|visible|+if|+each|+for|+switch|+with|+visible|include|import\".split(\"|\")),T=i.arrayToMap(\"a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp\".split(\"|\"))})(),r.inherits(N,s);var C={string:function(e,t){var n=k(\"string.start\",e,[k(b+\".\"+g,/~\\[/,C.interpolation()),k(\"string.end\",e,\"pop\"),{defaultToken:\"string\"}],t);if(e.length===1){var r=k(\"string.escape\",\"\\\\\\\\\"+e);n.push.unshift(r)}return n},interpolation:function(){return[k(d,/\\s*\\w*\\s*:/),\"js-interpolation-start\"]},tagHead:function(e){return k(v,e,[k(v,/[\\w\\-_]+/),k(b+\".\"+g,/~\\[/,C.interpolation()),C.goUp()])},tag:function(){return{token:\"tag\",onMatch:function(e){return void 0!==S[e]?h:void 0!==x[e]?p:void 0!==E[e]?\"support.function\":void 0!==T[e.toLowerCase()]?l:c},regex:/([@\\w\\-_:+]+)|((^|\\s)(?=\\s*(\\.|#)))/,push:[C.tagHead(/\\./),C.tagHead(/\\#/),C.expression(),C.attribute(),k(b,/[;>{]/,\"pop\")]}},syntax:function(e,t,n){return{token:p,regex:e,push:{attr:[t+\"-start\",k(m,/;/,\"start\")],multiline:[C.tagHead(/\\./),C.tagHead(/\\#/),C.attribute(),C.expression(),k(b,/[>\\{]/),k(m,/;/,\"start\"),k(b,/'''|\"\"\"/,[t+\"-start\"])],block:[C.tagHead(/\\./),C.tagHead(/\\#/),C.attribute(),C.expression(),k(b,/\\{/,[t+\"-start\"])]}[n]}},attribute:function(){return k(function(e){return/^x\\-/.test(e)?v+\".\"+y:v},/[\\w_-]+/,[k(m,/\\s*=\\s*/,[C.string('\"'),C.string(\"'\"),C.word(),C.goUp()]),C.goUp()])},expression:function(){return k(b,/\\(/,[\"js-statement-start\"])},word:function(){return k(\"string\",/[\\w-_]+/)},goUp:function(){return k(\"text\",\"\",\"pop\")},goStart:function(){return k(\"text\",\"\",\"start\")}}}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/mask\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/mask_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./mask_highlight_rules\").MaskHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/css\").CssBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/mask\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-matlab.js",
    "content": "ace.define(\"ace/mode/matlab_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"break|case|catch|classdef|continue|else|elseif|end|for|function|global|if|otherwise|parfor|persistent|return|spmd|switch|try|while\",t=\"true|false|inf|Inf|nan|NaN|eps|pi|ans|nargin|nargout|varargin|varargout\",n=\"abs|accumarray|acos(?:d|h)?|acot(?:d|h)?|acsc(?:d|h)?|actxcontrol(?:list|select)?|actxGetRunningServer|actxserver|addlistener|addpath|addpref|addtodate|airy|align|alim|all|allchild|alpha|alphamap|amd|ancestor|and|angle|annotation|any|area|arrayfun|asec(?:d|h)?|asin(?:d|h)?|assert|assignin|atan(?:2|d|h)?|audiodevinfo|audioplayer|audiorecorder|aufinfo|auread|autumn|auwrite|avifile|aviinfo|aviread|axes|axis|balance|bar(?:3|3h|h)?|base2dec|beep|BeginInvoke|bench|bessel(?:h|i|j|k|y)|beta|betainc|betaincinv|betaln|bicg|bicgstab|bicgstabl|bin2dec|bitand|bitcmp|bitget|bitmax|bitnot|bitor|bitset|bitshift|bitxor|blanks|blkdiag|bone|box|brighten|brush|bsxfun|builddocsearchdb|builtin|bvp4c|bvp5c|bvpget|bvpinit|bvpset|bvpxtend|calendar|calllib|callSoapService|camdolly|cameratoolbar|camlight|camlookat|camorbit|campan|campos|camproj|camroll|camtarget|camup|camva|camzoom|cart2pol|cart2sph|cast|cat|caxis|cd|cdf2rdf|cdfepoch|cdfinfo|cdflib(?:.(?:close|closeVar|computeEpoch|computeEpoch16|create|createAttr|createVar|delete|deleteAttr|deleteAttrEntry|deleteAttrgEntry|deleteVar|deleteVarRecords|epoch16Breakdown|epochBreakdown|getAttrEntry|getAttrgEntry|getAttrMaxEntry|getAttrMaxgEntry|getAttrName|getAttrNum|getAttrScope|getCacheSize|getChecksum|getCompression|getCompressionCacheSize|getConstantNames|getConstantValue|getCopyright|getFileBackward|getFormat|getLibraryCopyright|getLibraryVersion|getMajority|getName|getNumAttrEntries|getNumAttrgEntries|getNumAttributes|getNumgAttributes|getReadOnlyMode|getStageCacheSize|getValidate|getVarAllocRecords|getVarBlockingFactor|getVarCacheSize|getVarCompression|getVarData|getVarMaxAllocRecNum|getVarMaxWrittenRecNum|getVarName|getVarNum|getVarNumRecsWritten|getVarPadValue|getVarRecordData|getVarReservePercent|getVarsMaxWrittenRecNum|getVarSparseRecords|getVersion|hyperGetVarData|hyperPutVarData|inquire|inquireAttr|inquireAttrEntry|inquireAttrgEntry|inquireVar|open|putAttrEntry|putAttrgEntry|putVarData|putVarRecordData|renameAttr|renameVar|setCacheSize|setChecksum|setCompression|setCompressionCacheSize|setFileBackward|setFormat|setMajority|setReadOnlyMode|setStageCacheSize|setValidate|setVarAllocBlockRecords|setVarBlockingFactor|setVarCacheSize|setVarCompression|setVarInitialRecs|setVarPadValue|SetVarReservePercent|setVarsCacheSize|setVarSparseRecords))?|cdfread|cdfwrite|ceil|cell2mat|cell2struct|celldisp|cellfun|cellplot|cellstr|cgs|checkcode|checkin|checkout|chol|cholinc|cholupdate|circshift|cla|clabel|class|clc|clear|clearvars|clf|clipboard|clock|close|closereq|cmopts|cmpermute|cmunique|colamd|colon|colorbar|colordef|colormap|colormapeditor|colperm|Combine|comet|comet3|commandhistory|commandwindow|compan|compass|complex|computer|cond|condeig|condest|coneplot|conj|containers.Map|contour(?:3|c|f|slice)?|contrast|conv|conv2|convhull|convhulln|convn|cool|copper|copyfile|copyobj|corrcoef|cos(?:d|h)?|cot(?:d|h)?|cov|cplxpair|cputime|createClassFromWsdl|createSoapMessage|cross|csc(?:d|h)?|csvread|csvwrite|ctranspose|cumprod|cumsum|cumtrapz|curl|customverctrl|cylinder|daqread|daspect|datacursormode|datatipinfo|date|datenum|datestr|datetick|datevec|dbclear|dbcont|dbdown|dblquad|dbmex|dbquit|dbstack|dbstatus|dbstep|dbstop|dbtype|dbup|dde23|ddeget|ddesd|ddeset|deal|deblank|dec2base|dec2bin|dec2hex|decic|deconv|del2|delaunay|delaunay3|delaunayn|DelaunayTri|delete|demo|depdir|depfun|det|detrend|deval|diag|dialog|diary|diff|diffuse|dir|disp|display|dither|divergence|dlmread|dlmwrite|dmperm|doc|docsearch|dos|dot|dragrect|drawnow|dsearch|dsearchn|dynamicprops|echo|echodemo|edit|eig|eigs|ellipj|ellipke|ellipsoid|empty|enableNETfromNetworkDrive|enableservice|EndInvoke|enumeration|eomday|eq|erf|erfc|erfcinv|erfcx|erfinv|error|errorbar|errordlg|etime|etree|etreeplot|eval|evalc|evalin|event.(?:EventData|listener|PropertyEvent|proplistener)|exifread|exist|exit|exp|expint|expm|expm1|export2wsdlg|eye|ezcontour|ezcontourf|ezmesh|ezmeshc|ezplot|ezplot3|ezpolar|ezsurf|ezsurfc|factor|factorial|fclose|feather|feature|feof|ferror|feval|fft|fft2|fftn|fftshift|fftw|fgetl|fgets|fieldnames|figure|figurepalette|fileattrib|filebrowser|filemarker|fileparts|fileread|filesep|fill|fill3|filter|filter2|find|findall|findfigs|findobj|findstr|finish|fitsdisp|fitsinfo|fitsread|fitswrite|fix|flag|flipdim|fliplr|flipud|floor|flow|fminbnd|fminsearch|fopen|format|fplot|fprintf|frame2im|fread|freqspace|frewind|fscanf|fseek|ftell|FTP|full|fullfile|func2str|functions|funm|fwrite|fzero|gallery|gamma|gammainc|gammaincinv|gammaln|gca|gcbf|gcbo|gcd|gcf|gco|ge|genpath|genvarname|get|getappdata|getenv|getfield|getframe|getpixelposition|getpref|ginput|gmres|gplot|grabcode|gradient|gray|graymon|grid|griddata(?:3|n)?|griddedInterpolant|gsvd|gt|gtext|guidata|guide|guihandles|gunzip|gzip|h5create|h5disp|h5info|h5read|h5readatt|h5write|h5writeatt|hadamard|handle|hankel|hdf|hdf5|hdf5info|hdf5read|hdf5write|hdfinfo|hdfread|hdftool|help|helpbrowser|helpdesk|helpdlg|helpwin|hess|hex2dec|hex2num|hgexport|hggroup|hgload|hgsave|hgsetget|hgtransform|hidden|hilb|hist|histc|hold|home|horzcat|hostid|hot|hsv|hsv2rgb|hypot|ichol|idivide|ifft|ifft2|ifftn|ifftshift|ilu|im2frame|im2java|imag|image|imagesc|imapprox|imfinfo|imformats|import|importdata|imread|imwrite|ind2rgb|ind2sub|inferiorto|info|inline|inmem|inpolygon|input|inputdlg|inputname|inputParser|inspect|instrcallback|instrfind|instrfindall|int2str|integral(?:2|3)?|interp(?:1|1q|2|3|ft|n)|interpstreamspeed|intersect|intmax|intmin|inv|invhilb|ipermute|isa|isappdata|iscell|iscellstr|ischar|iscolumn|isdir|isempty|isequal|isequaln|isequalwithequalnans|isfield|isfinite|isfloat|isglobal|ishandle|ishghandle|ishold|isinf|isinteger|isjava|iskeyword|isletter|islogical|ismac|ismatrix|ismember|ismethod|isnan|isnumeric|isobject|isocaps|isocolors|isonormals|isosurface|ispc|ispref|isprime|isprop|isreal|isrow|isscalar|issorted|isspace|issparse|isstr|isstrprop|isstruct|isstudent|isunix|isvarname|isvector|javaaddpath|javaArray|javachk|javaclasspath|javacomponent|javaMethod|javaMethodEDT|javaObject|javaObjectEDT|javarmpath|jet|keyboard|kron|lasterr|lasterror|lastwarn|lcm|ldivide|ldl|le|legend|legendre|length|libfunctions|libfunctionsview|libisloaded|libpointer|libstruct|license|light|lightangle|lighting|lin2mu|line|lines|linkaxes|linkdata|linkprop|linsolve|linspace|listdlg|listfonts|load|loadlibrary|loadobj|log|log10|log1p|log2|loglog|logm|logspace|lookfor|lower|ls|lscov|lsqnonneg|lsqr|lt|lu|luinc|magic|makehgtform|mat2cell|mat2str|material|matfile|matlab.io.MatFile|matlab.mixin.(?:Copyable|Heterogeneous(?:.getDefaultScalarElement)?)|matlabrc|matlabroot|max|maxNumCompThreads|mean|median|membrane|memmapfile|memory|menu|mesh|meshc|meshgrid|meshz|meta.(?:class(?:.fromName)?|DynamicProperty|EnumeratedValue|event|MetaData|method|package(?:.(?:fromName|getAllPackages))?|property)|metaclass|methods|methodsview|mex(?:.getCompilerConfigurations)?|MException|mexext|mfilename|min|minres|minus|mislocked|mkdir|mkpp|mldivide|mlint|mlintrpt|mlock|mmfileinfo|mmreader|mod|mode|more|move|movefile|movegui|movie|movie2avi|mpower|mrdivide|msgbox|mtimes|mu2lin|multibandread|multibandwrite|munlock|namelengthmax|nargchk|narginchk|nargoutchk|native2unicode|nccreate|ncdisp|nchoosek|ncinfo|ncread|ncreadatt|ncwrite|ncwriteatt|ncwriteschema|ndgrid|ndims|ne|NET(?:.(?:addAssembly|Assembly|convertArray|createArray|createGeneric|disableAutoRelease|enableAutoRelease|GenericClass|invokeGenericMethod|NetException|setStaticProperty))?|netcdf.(?:abort|close|copyAtt|create|defDim|defGrp|defVar|defVarChunking|defVarDeflate|defVarFill|defVarFletcher32|delAtt|endDef|getAtt|getChunkCache|getConstant|getConstantNames|getVar|inq|inqAtt|inqAttID|inqAttName|inqDim|inqDimID|inqDimIDs|inqFormat|inqGrpName|inqGrpNameFull|inqGrpParent|inqGrps|inqLibVers|inqNcid|inqUnlimDims|inqVar|inqVarChunking|inqVarDeflate|inqVarFill|inqVarFletcher32|inqVarID|inqVarIDs|open|putAtt|putVar|reDef|renameAtt|renameDim|renameVar|setChunkCache|setDefaultFormat|setFill|sync)|newplot|nextpow2|nnz|noanimate|nonzeros|norm|normest|not|notebook|now|nthroot|null|num2cell|num2hex|num2str|numel|nzmax|ode(?:113|15i|15s|23|23s|23t|23tb|45)|odeget|odeset|odextend|onCleanup|ones|open|openfig|opengl|openvar|optimget|optimset|or|ordeig|orderfields|ordqz|ordschur|orient|orth|pack|padecoef|pagesetupdlg|pan|pareto|parseSoapResponse|pascal|patch|path|path2rc|pathsep|pathtool|pause|pbaspect|pcg|pchip|pcode|pcolor|pdepe|pdeval|peaks|perl|perms|permute|pie|pink|pinv|planerot|playshow|plot|plot3|plotbrowser|plotedit|plotmatrix|plottools|plotyy|plus|pol2cart|polar|poly|polyarea|polyder|polyeig|polyfit|polyint|polyval|polyvalm|pow2|power|ppval|prefdir|preferences|primes|print|printdlg|printopt|printpreview|prod|profile|profsave|propedit|propertyeditor|psi|publish|PutCharArray|PutFullMatrix|PutWorkspaceData|pwd|qhull|qmr|qr|qrdelete|qrinsert|qrupdate|quad|quad2d|quadgk|quadl|quadv|questdlg|quit|quiver|quiver3|qz|rand|randi|randn|randperm|RandStream(?:.(?:create|getDefaultStream|getGlobalStream|list|setDefaultStream|setGlobalStream))?|rank|rat|rats|rbbox|rcond|rdivide|readasync|real|reallog|realmax|realmin|realpow|realsqrt|record|rectangle|rectint|recycle|reducepatch|reducevolume|refresh|refreshdata|regexp|regexpi|regexprep|regexptranslate|rehash|rem|Remove|RemoveAll|repmat|reset|reshape|residue|restoredefaultpath|rethrow|rgb2hsv|rgb2ind|rgbplot|ribbon|rmappdata|rmdir|rmfield|rmpath|rmpref|rng|roots|rose|rosser|rot90|rotate|rotate3d|round|rref|rsf2csf|run|save|saveas|saveobj|savepath|scatter|scatter3|schur|sec|secd|sech|selectmoveresize|semilogx|semilogy|sendmail|serial|set|setappdata|setdiff|setenv|setfield|setpixelposition|setpref|setstr|setxor|shading|shg|shiftdim|showplottool|shrinkfaces|sign|sin(?:d|h)?|size|slice|smooth3|snapnow|sort|sortrows|sound|soundsc|spalloc|spaugment|spconvert|spdiags|specular|speye|spfun|sph2cart|sphere|spinmap|spline|spones|spparms|sprand|sprandn|sprandsym|sprank|spring|sprintf|spy|sqrt|sqrtm|squeeze|ss2tf|sscanf|stairs|startup|std|stem|stem3|stopasync|str2double|str2func|str2mat|str2num|strcat|strcmp|strcmpi|stream2|stream3|streamline|streamparticles|streamribbon|streamslice|streamtube|strfind|strjust|strmatch|strncmp|strncmpi|strread|strrep|strtok|strtrim|struct2cell|structfun|strvcat|sub2ind|subplot|subsasgn|subsindex|subspace|subsref|substruct|subvolume|sum|summer|superclasses|superiorto|support|surf|surf2patch|surface|surfc|surfl|surfnorm|svd|svds|swapbytes|symamd|symbfact|symmlq|symrcm|symvar|system|tan(?:d|h)?|tar|tempdir|tempname|tetramesh|texlabel|text|textread|textscan|textwrap|tfqmr|throw|tic|Tiff(?:.(?:getTagNames|getVersion))?|timer|timerfind|timerfindall|times|timeseries|title|toc|todatenum|toeplitz|toolboxdir|trace|transpose|trapz|treelayout|treeplot|tril|trimesh|triplequad|triplot|TriRep|TriScatteredInterp|trisurf|triu|tscollection|tsearch|tsearchn|tstool|type|typecast|uibuttongroup|uicontextmenu|uicontrol|uigetdir|uigetfile|uigetpref|uiimport|uimenu|uiopen|uipanel|uipushtool|uiputfile|uiresume|uisave|uisetcolor|uisetfont|uisetpref|uistack|uitable|uitoggletool|uitoolbar|uiwait|uminus|undocheckout|unicode2native|union|unique|unix|unloadlibrary|unmesh|unmkpp|untar|unwrap|unzip|uplus|upper|urlread|urlwrite|usejava|userpath|validateattributes|validatestring|vander|var|vectorize|ver|verctrl|verLessThan|version|vertcat|VideoReader(?:.isPlatformSupported)?|VideoWriter(?:.getProfiles)?|view|viewmtx|visdiff|volumebounds|voronoi|voronoin|wait|waitbar|waitfor|waitforbuttonpress|warndlg|warning|waterfall|wavfinfo|wavplay|wavread|wavrecord|wavwrite|web|weekday|what|whatsnew|which|whitebg|who|whos|wilkinson|winopen|winqueryreg|winter|wk1finfo|wk1read|wk1write|workspace|xlabel|xlim|xlsfinfo|xlsread|xlswrite|xmlread|xmlwrite|xor|xslt|ylabel|ylim|zeros|zip|zlabel|zlim|zoom|addedvarplot|andrewsplot|anova(?:1|2|n)|ansaribradley|aoctool|barttest|bbdesign|beta(?:cdf|fit|inv|like|pdf|rnd|stat)|bino(?:cdf|fit|inv|pdf|rnd|stat)|biplot|bootci|bootstrp|boxplot|candexch|candgen|canoncorr|capability|capaplot|caseread|casewrite|categorical|ccdesign|cdfplot|chi2(?:cdf|gof|inv|pdf|rnd|stat)|cholcov|Classification(?:BaggedEnsemble|Discriminant(?:.(?:fit|make|template))?|Ensemble|KNN(?:.(?:fit|template))?|PartitionedEnsemble|PartitionedModel|Tree(?:.(?:fit|template))?)|classify|classregtree|cluster|clusterdata|cmdscale|combnk|Compact(?:Classification(?:Discriminant|Ensemble|Tree)|Regression(?:Ensemble|Tree)|TreeBagger)|confusionmat|controlchart|controlrules|cophenet|copula(?:cdf|fit|param|pdf|rnd|stat)|cordexch|corr|corrcov|coxphfit|createns|crosstab|crossval|cvpartition|datasample|dataset|daugment|dcovary|dendrogram|dfittool|disttool|dummyvar|dwtest|ecdf|ecdfhist|ev(?:cdf|fit|inv|like|pdf|rnd|stat)|ExhaustiveSearcher|exp(?:cdf|fit|inv|like|pdf|rnd|stat)|factoran|fcdf|ff2n|finv|fitdist|fitensemble|fpdf|fracfact|fracfactgen|friedman|frnd|fstat|fsurfht|fullfact|gagerr|gam(?:cdf|fit|inv|like|pdf|rnd|stat)|GeneralizedLinearModel(?:.fit)?|geo(?:cdf|inv|mean|pdf|rnd|stat)|gev(?:cdf|fit|inv|like|pdf|rnd|stat)|gline|glmfit|glmval|glyphplot|gmdistribution(?:.fit)?|gname|gp(?:cdf|fit|inv|like|pdf|rnd|stat)|gplotmatrix|grp2idx|grpstats|gscatter|haltonset|harmmean|hist3|histfit|hmm(?:decode|estimate|generate|train|viterbi)|hougen|hyge(?:cdf|inv|pdf|rnd|stat)|icdf|inconsistent|interactionplot|invpred|iqr|iwishrnd|jackknife|jbtest|johnsrnd|KDTreeSearcher|kmeans|knnsearch|kruskalwallis|ksdensity|kstest|kstest2|kurtosis|lasso|lassoglm|lassoPlot|leverage|lhsdesign|lhsnorm|lillietest|LinearModel(?:.fit)?|linhyptest|linkage|logn(?:cdf|fit|inv|like|pdf|rnd|stat)|lsline|mad|mahal|maineffectsplot|manova1|manovacluster|mdscale|mhsample|mle|mlecov|mnpdf|mnrfit|mnrnd|mnrval|moment|multcompare|multivarichart|mvn(?:cdf|pdf|rnd)|mvregress|mvregresslike|mvt(?:cdf|pdf|rnd)|NaiveBayes(?:.fit)?|nan(?:cov|max|mean|median|min|std|sum|var)|nbin(?:cdf|fit|inv|pdf|rnd|stat)|ncf(?:cdf|inv|pdf|rnd|stat)|nct(?:cdf|inv|pdf|rnd|stat)|ncx2(?:cdf|inv|pdf|rnd|stat)|NeighborSearcher|nlinfit|nlintool|nlmefit|nlmefitsa|nlparci|nlpredci|nnmf|nominal|NonLinearModel(?:.fit)?|norm(?:cdf|fit|inv|like|pdf|rnd|stat)|normplot|normspec|ordinal|outlierMeasure|parallelcoords|paretotails|partialcorr|pcacov|pcares|pdf|pdist|pdist2|pearsrnd|perfcurve|perms|piecewisedistribution|plsregress|poiss(?:cdf|fit|inv|pdf|rnd|tat)|polyconf|polytool|prctile|princomp|ProbDist(?:Kernel|Parametric|UnivKernel|UnivParam)?|probplot|procrustes|qqplot|qrandset|qrandstream|quantile|randg|random|randsample|randtool|range|rangesearch|ranksum|rayl(?:cdf|fit|inv|pdf|rnd|stat)|rcoplot|refcurve|refline|regress|Regression(?:BaggedEnsemble|Ensemble|PartitionedEnsemble|PartitionedModel|Tree(?:.(?:fit|template))?)|regstats|relieff|ridge|robustdemo|robustfit|rotatefactors|rowexch|rsmdemo|rstool|runstest|sampsizepwr|scatterhist|sequentialfs|signrank|signtest|silhouette|skewness|slicesample|sobolset|squareform|statget|statset|stepwise|stepwisefit|surfht|tabulate|tblread|tblwrite|tcdf|tdfread|tiedrank|tinv|tpdf|TreeBagger|treedisp|treefit|treeprune|treetest|treeval|trimmean|trnd|tstat|ttest|ttest2|unid(?:cdf|inv|pdf|rnd|stat)|unif(?:cdf|inv|it|pdf|rnd|stat)|vartest(?:2|n)?|wbl(?:cdf|fit|inv|like|pdf|rnd|stat)|wblplot|wishrnd|x2fx|xptread|zscore|ztestadapthisteq|analyze75info|analyze75read|applycform|applylut|axes2pix|bestblk|blockproc|bwarea|bwareaopen|bwboundaries|bwconncomp|bwconvhull|bwdist|bwdistgeodesic|bweuler|bwhitmiss|bwlabel|bwlabeln|bwmorph|bwpack|bwperim|bwselect|bwtraceboundary|bwulterode|bwunpack|checkerboard|col2im|colfilt|conndef|convmtx2|corner|cornermetric|corr2|cp2tform|cpcorr|cpselect|cpstruct2pairs|dct2|dctmtx|deconvblind|deconvlucy|deconvreg|deconvwnr|decorrstretch|demosaic|dicom(?:anon|dict|info|lookup|read|uid|write)|edge|edgetaper|entropy|entropyfilt|fan2para|fanbeam|findbounds|fliptform|freqz2|fsamp2|fspecial|ftrans2|fwind1|fwind2|getheight|getimage|getimagemodel|getline|getneighbors|getnhood|getpts|getrangefromclass|getrect|getsequence|gray2ind|graycomatrix|graycoprops|graydist|grayslice|graythresh|hdrread|hdrwrite|histeq|hough|houghlines|houghpeaks|iccfind|iccread|iccroot|iccwrite|idct2|ifanbeam|im2bw|im2col|im2double|im2int16|im2java2d|im2single|im2uint16|im2uint8|imabsdiff|imadd|imadjust|ImageAdapter|imageinfo|imagemodel|imapplymatrix|imattributes|imbothat|imclearborder|imclose|imcolormaptool|imcomplement|imcontour|imcontrast|imcrop|imdilate|imdisplayrange|imdistline|imdivide|imellipse|imerode|imextendedmax|imextendedmin|imfill|imfilter|imfindcircles|imfreehand|imfuse|imgca|imgcf|imgetfile|imhandles|imhist|imhmax|imhmin|imimposemin|imlincomb|imline|immagbox|immovie|immultiply|imnoise|imopen|imoverview|imoverviewpanel|impixel|impixelinfo|impixelinfoval|impixelregion|impixelregionpanel|implay|impoint|impoly|impositionrect|improfile|imputfile|impyramid|imreconstruct|imrect|imregconfig|imregionalmax|imregionalmin|imregister|imresize|imroi|imrotate|imsave|imscrollpanel|imshow|imshowpair|imsubtract|imtool|imtophat|imtransform|imview|ind2gray|ind2rgb|interfileinfo|interfileread|intlut|ippl|iptaddcallback|iptcheckconn|iptcheckhandle|iptcheckinput|iptcheckmap|iptchecknargin|iptcheckstrs|iptdemos|iptgetapi|iptGetPointerBehavior|iptgetpref|ipticondir|iptnum2ordinal|iptPointerManager|iptprefs|iptremovecallback|iptSetPointerBehavior|iptsetpref|iptwindowalign|iradon|isbw|isflat|isgray|isicc|isind|isnitf|isrgb|isrset|lab2double|lab2uint16|lab2uint8|label2rgb|labelmatrix|makecform|makeConstrainToRectFcn|makehdr|makelut|makeresampler|maketform|mat2gray|mean2|medfilt2|montage|nitfinfo|nitfread|nlfilter|normxcorr2|ntsc2rgb|openrset|ordfilt2|otf2psf|padarray|para2fan|phantom|poly2mask|psf2otf|qtdecomp|qtgetblk|qtsetblk|radon|rangefilt|reflect|regionprops|registration.metric.(?:MattesMutualInformation|MeanSquares)|registration.optimizer.(?:OnePlusOneEvolutionary|RegularStepGradientDescent)|rgb2gray|rgb2ntsc|rgb2ycbcr|roicolor|roifill|roifilt2|roipoly|rsetwrite|std2|stdfilt|strel|stretchlim|subimage|tformarray|tformfwd|tforminv|tonemap|translate|truesize|uintlut|viscircles|warp|watershed|whitepoint|wiener2|xyz2double|xyz2uint16|ycbcr2rgb|bintprog|color|fgoalattain|fminbnd|fmincon|fminimax|fminsearch|fminunc|fseminf|fsolve|fzero|fzmult|gangstr|ktrlink|linprog|lsqcurvefit|lsqlin|lsqnonlin|lsqnonneg|optimget|optimset|optimtool|quadprog\",r=\"cell|struct|char|double|single|logical|u?int(?:8|16|32|64)|sparse\",i=this.createKeywordMapper({\"storage.type\":r,\"support.function\":n,keyword:e,\"constant.language\":t},\"identifier\",!0);this.$rules={start:[{token:\"string\",regex:\"'\",stateName:\"qstring\",next:[{token:\"constant.language.escape\",regex:\"''\"},{token:\"string\",regex:\"'|$\",next:\"start\"},{defaultToken:\"string\"}]},{token:\"text\",regex:\"\\\\s+\"},{regex:\"\",next:\"noQstring\"}],noQstring:[{regex:\"^\\\\s*%{\\\\s*$\",token:\"comment.start\",push:\"blockComment\"},{token:\"comment\",regex:\"%[^\\r\\n]*\"},{token:\"string\",regex:'\"',stateName:\"qqstring\",next:[{token:\"constant.language.escape\",regex:/\\\\./},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:i,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\",next:\"start\"},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\",next:\"start\"},{token:\"paren.lparen\",regex:\"[({\\\\[]\",next:\"start\"},{token:\"paren.rparen\",regex:\"[\\\\]})]\"},{token:\"text\",regex:\"\\\\s+\"},{token:\"text\",regex:\"$\",next:\"start\"}],blockComment:[{regex:\"^\\\\s*%{\\\\s*$\",token:\"comment.start\",push:\"blockComment\"},{regex:\"^\\\\s*%}\\\\s*$\",token:\"comment.end\",next:\"pop\"},{defaultToken:\"comment\"}]},this.normalizeRules()};r.inherits(s,i),t.MatlabHighlightRules=s}),ace.define(\"ace/mode/matlab\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/matlab_highlight_rules\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./matlab_highlight_rules\").MatlabHighlightRules,o=e(\"../range\").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart=\"%\",this.blockComment={start:\"%{\",end:\"%}\"},this.$id=\"ace/mode/matlab\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-maze.js",
    "content": "ace.define(\"ace/mode/maze_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"keyword.control\",regex:/##|``/,comment:\"Wall\"},{token:\"entity.name.tag\",regex:/\\.\\./,comment:\"Path\"},{token:\"keyword.control\",regex:/<>/,comment:\"Splitter\"},{token:\"entity.name.tag\",regex:/\\*[\\*A-Za-z0-9]/,comment:\"Signal\"},{token:\"constant.numeric\",regex:/[0-9]{2}/,comment:\"Pause\"},{token:\"keyword.control\",regex:/\\^\\^/,comment:\"Start\"},{token:\"keyword.control\",regex:/\\(\\)/,comment:\"Hole\"},{token:\"support.function\",regex:/>>/,comment:\"Out\"},{token:\"support.function\",regex:/>\\//,comment:\"Ln Out\"},{token:\"support.function\",regex:/<</,comment:\"In\"},{token:\"keyword.control\",regex:/--/,comment:\"One use\"},{token:\"constant.language\",regex:/%[LRUDNlrudn]/,comment:\"Direction\"},{token:[\"entity.name.function\",\"keyword.other\",\"keyword.operator\",\"keyword.other\",\"keyword.operator\",\"constant.numeric\",\"keyword.operator\",\"keyword.other\",\"keyword.operator\",\"constant.numeric\",\"string.quoted.double\",\"string.quoted.single\"],regex:/([A-Za-z][A-Za-z0-9])( *-> *)(?:([-+*\\/]=)( *)((?:-)?)([0-9]+)|(=)( *)(?:((?:-)?)([0-9]+)|(\"[^\"]*\")|('[^']*')))/,comment:\"Assignment function\"},{token:[\"entity.name.function\",\"keyword.other\",\"keyword.control\",\"keyword.other\",\"keyword.operator\",\"keyword.other\",\"keyword.operator\",\"constant.numeric\",\"entity.name.tag\",\"keyword.other\",\"keyword.control\",\"keyword.other\",\"constant.language\",\"keyword.other\",\"keyword.control\",\"keyword.other\",\"constant.language\"],regex:/([A-Za-z][A-Za-z0-9])( *-> *)(IF|if)( *)(?:([<>]=?|==)( *)((?:-)?)([0-9]+)|(\\*[\\*A-Za-z0-9]))( *)(THEN|then)( *)(%[LRUDNlrudn])(?:( *)(ELSE|else)( *)(%[LRUDNlrudn]))?/,comment:\"Equality Function\"},{token:\"entity.name.function\",regex:/[A-Za-z][A-Za-z0-9]/,comment:\"Function cell\"},{token:\"comment.line.double-slash\",regex:/ *\\/\\/.*/,comment:\"Comment\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"mz\"],name:\"Maze\",scopeName:\"source.maze\"},r.inherits(s,i),t.MazeHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/maze\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/maze_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./maze_highlight_rules\").MazeHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.$id=\"ace/mode/maze\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-mel.js",
    "content": "ace.define(\"ace/mode/mel_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{caseInsensitive:!0,token:\"storage.type.mel\",regex:\"\\\\b(matrix|string|vector|float|int|void)\\\\b\"},{caseInsensitive:!0,token:\"support.function.mel\",regex:\"\\\\b((s(h(ow(ManipCtx|S(hadingGroupAttrEditor|electionInTitle)|H(idden|elp)|Window)|el(f(Button|TabLayout|Layout)|lField)|ading(GeometryRelCtx|Node|Connection|LightRelCtx))|y(s(tem|File)|mbol(Button|CheckBox))|nap(shot|Mode|2to2 |TogetherCtx|Key)|c(ulpt|ene(UIReplacement|Editor)|ale(BrushBrightness |Constraint|Key(Ctx)?)?|r(ipt(Node|Ctx|Table|edPanel(Type)?|Job|EditorInfo)|oll(Field|Layout))|mh)|t(itch(Surface(Points)?|AndExplodeShell )|a(ckTrace|rt(sWith |String ))|r(cmp|i(ng(ToStringArray |Array(Remove(Duplicates | )|C(ount |atenate )|ToString |Intersector))|p )|oke))|i(n(gleProfileBirailSurface)?|ze|gn|mplify)|o(u(nd(Control)?|rce)|ft(Mod(Ctx)?)?|rt)|u(perCtx|rface(S(haderList|ampler))?|b(st(itute(Geometry|AllString )?|ring)|d(M(irror|a(tchTopology|p(SewMove|Cut)))|iv(Crease|DisplaySmoothness)?|C(ollapse|leanTopology)|T(o(Blind|Poly)|ransferUVsToCache)|DuplicateAndConnect|EditUV|ListComponentConversion|AutoProjection)))|p(h(ere|rand)|otLight(PreviewPort)?|aceLocator|r(ing|eadSheetEditor))|e(t(s|MenuMode|Sta(te |rtupMessage|mpDensity )|NodeTypeFlag|ConstraintRestPosition |ToolTo|In(putDeviceMapping|finity)|D(ynamic|efaultShadingGroup|rivenKeyframe)|UITemplate|P(ar(ticleAttr|ent)|roject )|E(scapeCtx|dit(or|Ctx))|Key(Ctx|frame|Path)|F(ocus|luidAttr)|Attr(Mapping)?)|parator|ed|l(ect(Mode|ionConnection|Context|Type|edNodes|Pr(iority|ef)|Key(Ctx)?)?|LoadSettings)|archPathArray )|kin(Cluster|Percent)|q(uareSurface|rt)|w(itchTable|atchDisplayPort)|a(ve(Menu|Shelf|ToolSettings|I(nitialState|mage)|Pref(s|Objects)|Fluid|A(ttrPreset |llShelves))|mpleImage)|rtContext|mooth(step|Curve|TangentSurface))|h(sv_to_rgb|yp(ot|er(Graph|Shade|Panel))|i(tTest|de|lite)|ot(Box|key(Check)?)|ud(Button|Slider(Button)?)|e(lp(Line)?|adsUpDisplay|rmite)|wRe(nder(Load)?|flectionMap)|ard(enPointCurve|ware(RenderPanel)?))|n(o(nLinear|ise|de(Type|IconButton|Outliner|Preset)|rmal(ize |Constraint))|urbs(Boolean|S(elect|quare)|C(opyUVSet|ube)|To(Subdiv|Poly(gonsPref)?)|Plane|ViewDirectionVector )|ew(ton|PanelItems)|ame(space(Info)?|Command|Field))|c(h(oice|dir|eck(Box(Grp)?|DefaultRenderGlobals)|a(n(nelBox|geSubdiv(Region|ComponentDisplayLevel))|racter(Map|OutlineEditor)?))|y(cleCheck|linder)|tx(Completion|Traverse|EditMode|Abort)|irc(ularFillet|le)|o(s|n(str(uctionHistory|ain(Value)?)|nect(ionInfo|Control|Dynamic|Joint|Attr)|t(extInfo|rol)|dition|e|vert(SolidTx|Tessellation|Unit|FromOldLayers |Lightmap)|firmDialog)|py(SkinWeights|Key|Flexor|Array )|l(or(Slider(Grp|ButtonGrp)|Index(SliderGrp)?|Editor|AtPoint)?|umnLayout|lision)|arsenSubdivSelectionList|m(p(onentEditor|utePolysetVolume |actHairSystem )|mand(Port|Echo|Line)))|u(tKey|r(ve(MoveEPCtx|SketchCtx|CVCtx|Intersect|OnSurface|E(ditorCtx|PCtx)|AddPtCtx)?|rent(Ctx|Time(Ctx)?|Unit)))|p(GetSolverAttr|Button|S(olver(Types)?|e(t(SolverAttr|Edit)|am))|C(o(nstraint|llision)|ache)|Tool|P(anel|roperty))|eil|l(ip(Schedule(rOutliner)?|TrimBefore |Editor(CurrentTimeCtx)?)?|ose(Surface|Curve)|uster|ear(Cache)?|amp)|a(n(CreateManip|vas)|tch(Quiet)?|pitalizeString |mera(View)?)|r(oss(Product )?|eate(RenderLayer|MotionField |SubdivRegion|N(ode|ewShelf )|D(isplayLayer|rawCtx)|Editor))|md(Shell|FileOutput))|M(R(ender(ShadowData|Callback|Data|Util|View|Line(Array)?)|ampAttribute)|G(eometryData|lobal)|M(odelMessage|essage|a(nipData|t(erial|rix)))|BoundingBox|S(yntax|ceneMessage|t(atus|ring(Array)?)|imple|pace|elect(ion(Mask|List)|Info)|watchRender(Register|Base))|H(ardwareRenderer|WShaderSwatchGenerator)|NodeMessage|C(o(nditionMessage|lor(Array)?|m(putation|mand(Result|Message)))|ursor|loth(Material|S(ystem|olverRegister)|Con(straint|trol)|Triangle|Particle|Edge|Force)|allbackIdArray)|T(ypeId|ime(r(Message)?|Array)?|oolsInfo|esselationParams|r(imBoundaryArray|ansformationMatrix))|I(ntArray|t(Geometry|Mesh(Polygon|Edge|Vertex|FaceVertex)|S(urfaceCV|electionList)|CurveCV|Instancer|eratorType|D(ependency(Graph|Nodes)|ag)|Keyframe)|k(System|HandleGroup)|mage)|3dView|Object(SetMessage|Handle|Array)?|D(G(M(odifier|essage)|Context)|ynSwept(Triangle|Line)|istance|oubleArray|evice(State|Channel)|a(ta(Block|Handle)|g(M(odifier|essage)|Path(Array)?))|raw(Request(Queue)?|Info|Data|ProcedureBase))|U(serEventMessage|i(nt(Array|64Array)|Message))|P(o(int(Array)?|lyMessage)|lug(Array)?|rogressWindow|x(G(eometry(Iterator|Data)|lBuffer)|M(idiInputDevice|odelEditorCommand|anipContainer)|S(urfaceShape(UI)?|pringNode|electionContext)|HwShaderNode|Node|Co(ntext(Command)?|m(ponentShape|mand))|T(oolCommand|ransform(ationMatrix)?)|IkSolver(Node)?|3dModelView|ObjectSet|D(eformerNode|ata|ragAndDropBehavior)|PolyT(weakUVCommand|rg)|EmitterNode|F(i(eldNode|leTranslator)|luidEmitterNode)|LocatorNode))|E(ulerRotation|vent(Message)?)|ayatomr|Vector(Array)?|Quaternion|F(n(R(otateManip|eflectShader|adialField)|G(e(nericAttribute|ometry(Data|Filter))|ravityField)|M(otionPath|es(sageAttribute|h(Data)?)|a(nip3D|trix(Data|Attribute)))|B(l(innShader|endShapeDeformer)|ase)|S(caleManip|t(ateManip|ring(Data|ArrayData))|ingleIndexedComponent|ubd(Names|Data)?|p(hereData|otLight)|et|kinCluster)|HikEffector|N(on(ExtendedLight|AmbientLight)|u(rbs(Surface(Data)?|Curve(Data)?)|meric(Data|Attribute))|ewtonField)|C(haracter|ircleSweepManip|ompo(nent(ListData)?|undAttribute)|urveSegmentManip|lip|amera)|T(ypedAttribute|oggleManip|urbulenceField|r(ipleIndexedComponent|ansform))|I(ntArrayData|k(Solver|Handle|Joint|Effector))|D(ynSweptGeometryData|i(s(cManip|tanceManip)|rection(Manip|alLight))|ouble(IndexedComponent|ArrayData)|ependencyNode|a(ta|gNode)|ragField)|U(ni(tAttribute|formField)|Int64ArrayData)|P(hong(Shader|EShader)|oint(On(SurfaceManip|CurveManip)|Light|ArrayData)|fxGeometry|lugin(Data)?|arti(cleSystem|tion))|E(numAttribute|xpression)|V(o(lume(Light|AxisField)|rtexField)|ectorArrayData)|KeyframeDelta(Move|B(lockAddRemove|reakdown)|Scale|Tangent|InfType|Weighted|AddRemove)?|F(ield|luid|reePointTriadManip)|W(ireDeformer|eightGeometryFilter)|L(ight(DataAttribute)?|a(yeredShader|ttice(D(eformer|ata))?|mbertShader))|A(ni(sotropyShader|mCurve)|ttribute|irField|r(eaLight|rayAttrsData)|mbientLight))?|ile(IO|Object)|eedbackLine|loat(Matrix|Point(Array)?|Vector(Array)?|Array))|L(i(ghtLinks|brary)|ockMessage)|A(n(im(Message|C(ontrol|urveC(hange|lipboard(Item(Array)?)?))|Util)|gle)|ttribute(Spec(Array)?|Index)|r(rayData(Builder|Handle)|g(Database|Parser|List))))|t(hreePointArcCtx|ime(Control|Port|rX)|o(ol(Button|HasOptions|Collection|Dropped|PropertyWindow)|NativePath |upper|kenize(List )?|l(ower|erance)|rus|ggle(WindowVisibility|Axis)?)|u(rbulence|mble(Ctx)?)|ex(RotateContext|M(oveContext|anipContext)|t(ScrollList|Curves|ure(HairColor |DisplacePlane |PlacementContext|Window)|ToShelf |Field(Grp|ButtonGrp)?)?|S(caleContext|electContext|mudgeUVContext)|WinToolCtx)|woPointArcCtx|a(n(gentConstraint)?|bLayout)|r(im|unc(ate(HairCache|FluidCache))?|a(ns(formLimits|lator)|c(e|k(Ctx)?))))|i(s(olateSelect|Connected|True|Dirty|ParentOf |Valid(String |ObjectName |UiName )|AnimCurve )|n(s(tance(r)?|ert(Joint(Ctx)?|K(not(Surface|Curve)|eyCtx)))|heritTransform|t(S(crollBar|lider(Grp)?)|er(sect|nalVar|ToUI )|Field(Grp)?))|conText(Radio(Button|Collection)|Button|StaticLabel|CheckBox)|temFilter(Render|Type|Attr)?|prEngine|k(S(ystem(Info)?|olver|plineHandleCtx)|Handle(Ctx|DisplayScale)?|fkDisplayMethod)|m(portComposerCurves |fPlugins|age))|o(ceanNurbsPreviewPlane |utliner(Panel|Editor)|p(tion(Menu(Grp)?|Var)|en(GLExtension|MayaPref))|verrideModifier|ffset(Surface|Curve(OnSurface)?)|r(ientConstraint|bit(Ctx)?)|b(soleteProc |j(ect(Center|Type(UI)?|Layer )|Exists)))|d(yn(RelEd(itor|Panel)|Globals|C(ontrol|ache)|P(a(intEditor|rticleCtx)|ref)|Exp(ort|ression)|amicLoad)|i(s(connect(Joint|Attr)|tanceDim(Context|ension)|pla(y(RGBColor|S(tats|urface|moothness)|C(olor|ull)|Pref|LevelOfDetail|Affected)|cementToPoly)|kCache|able)|r(name |ect(ionalLight|KeyCtx)|map)|mWhen)|o(cServer|Blur|t(Product )?|ubleProfileBirailSurface|peSheetEditor|lly(Ctx)?)|uplicate(Surface|Curve)?|e(tach(Surface|Curve|DeviceAttr)|vice(Panel|Editor)|f(ine(DataServer|VirtualDevice)|ormer|ault(Navigation|LightListCheckBox))|l(ete(Sh(elfTab |adingGroupsAndMaterials )|U(nusedBrushes |I)|Attr)?|randstr)|g_to_rad)|agPose|r(opoffLocator|ag(gerContext)?)|g(timer|dirty|Info|eval))|CBG |u(serCtx|n(t(angleUV|rim)|i(t|form)|do(Info)?|loadPlugin|assignInputDevice|group)|iTemplate|p(dateAE |Axis)|v(Snapshot|Link))|joint(C(tx|luster)|DisplayScale|Lattice)?|p(sd(ChannelOutliner|TextureFile|E(ditTextureFile|xport))|close|i(c(ture|kWalk)|xelMove)|o(se|int(MatrixMult |C(onstraint|urveConstraint)|On(Surface|Curve)|Position|Light)|p(upMenu|en)|w|l(y(Reduce|GeoSampler|M(irrorFace|ove(UV|Edge|Vertex|Facet(UV)?)|erge(UV|Edge(Ctx)?|Vertex|Facet(Ctx)?)|ap(Sew(Move)?|Cut|Del))|B(oolOp|evel|l(indData|endColor))|S(traightenUVBorder|oftEdge|u(perCtx|bdivide(Edge|Facet))|p(her(icalProjection|e)|lit(Ring|Ctx|Edge|Vertex)?)|e(tToFaceNormal|parate|wEdge|lect(Constraint(Monitor)?|EditCtx))|mooth)|Normal(izeUV|PerVertex)?|C(hipOff|ylind(er|ricalProjection)|o(ne|pyUV|l(or(BlindData|Set|PerVertex)|lapse(Edge|Facet)))|u(t(Ctx)?|be)|l(ipboard|oseBorder)|acheMonitor|rea(seEdge|teFacet(Ctx)?))|T(o(Subdiv|rus)|r(iangulate|ansfer))|In(stallAction|fo)|Options|D(uplicate(Edge|AndConnect)|el(Edge|Vertex|Facet))|U(nite|VSet)|P(yramid|oke|lan(e|arProjection)|r(ism|ojection))|E(ditUV|valuate|xtrude(Edge|Facet))|Qu(eryBlindData|ad)|F(orceUV|lip(UV|Edge))|WedgeFace|L(istComponentConversion|ayoutUV)|A(utoProjection|ppend(Vertex|FacetCtx)?|verage(Normal|Vertex)))|eVectorConstraint))|utenv|er(cent|formanceOptions)|fxstrokes|wd|l(uginInfo|a(y(b(last|ackOptions))?|n(e|arSrf)))|a(steKey|ne(l(History|Configuration)?|Layout)|thAnimation|irBlend|use|lettePort|r(ti(cle(RenderInfo|Instancer|Exists)?|tion)|ent(Constraint)?|am(Dim(Context|ension)|Locator)))|r(int|o(j(ect(ion(Manip|Context)|Curve|Tangent)|FileViewer)|pMo(dCtx|ve)|gress(Bar|Window)|mptDialog)|eloadRefEd))|e(n(codeString|d(sWith |String )|v|ableDevice)|dit(RenderLayer(Globals|Members)|or(Template)?|DisplayLayer(Globals|Members)|AttrLimits )|v(ent|al(Deferred|Echo)?)|quivalent(Tol | )|ffector|r(f|ror)|x(clusiveLightCheckBox|t(end(Surface|Curve)|rude)|ists|p(ortComposerCurves |ression(EditorListen)?)?|ec(uteForEachObject )?|actWorldBoundingBox)|mit(ter)?)|v(i(sor|ew(Set|HeadOn|2dToolCtx|C(lipPlane|amera)|Place|Fit|LookAt))|o(lumeAxis|rtex)|e(ctorize|rifyCmd )|alidateShelfName )|key(Tangent|frame(Region(MoveKeyCtx|S(caleKeyCtx|e(tKeyCtx|lectKeyCtx))|CurrentTimeCtx|TrackCtx|InsertKeyCtx|D(irectKeyCtx|ollyCtx))|Stats|Outliner)?)|qu(it|erySubdiv)|f(c(heck|lose)|i(nd(RelatedSkinCluster |MenuItem |er|Keyframe|AllIntersections )|tBspline|l(ter(StudioImport|Curve|Expand)?|e(BrowserDialog|test|Info|Dialog|Extension )?|letCurve)|rstParentOf )|o(ntDialog|pen|rmLayout)|print|eof|flush|write|l(o(or|w|at(S(crollBar|lider(Grp|ButtonGrp|2)?)|Eq |Field(Grp)?))|u(shUndo|id(CacheInfo|Emitter|VoxelInfo))|exor)|r(omNativePath |e(eFormFillet|wind|ad)|ameLayout)|get(word|line)|mod)|w(hatIs|i(ndow(Pref)?|re(Context)?)|orkspace|ebBrowser(Prefs)?|a(itCursor|rning)|ri(nkle(Context)?|teTake))|l(s(T(hroughFilter|ype )|UI)?|i(st(Relatives|MenuAnnotation |Sets|History|NodeTypes|C(onnections|ameras)|Transforms |InputDevice(s|Buttons|Axes)|erEditor|DeviceAttachments|Unselected |A(nimatable|ttr))|n(step|eIntersection )|ght(link|List(Panel|Editor)?))|o(ckNode|okThru|ft|ad(NewShelf |P(lugin|refObjects)|Fluid)|g)|a(ssoContext|y(out|er(Button|ed(ShaderPort|TexturePort)))|ttice(DeformKeyCtx)?|unch(ImageEditor)?))|a(ssign(Command|InputDevice)|n(notate|im(C(one|urveEditor)|Display|View)|gle(Between)?)|tt(ach(Surface|Curve|DeviceAttr)|r(ibute(Menu|Info|Exists|Query)|NavigationControlGrp|Co(ntrolGrp|lorSliderGrp|mpatibility)|PresetEditWin|EnumOptionMenu(Grp)?|Field(Grp|SliderGrp)))|i(r|mConstraint)|d(d(NewShelfTab|Dynamic|PP|Attr(ibuteEditorNodeHelp)?)|vanceToNextDrivenKey)|uto(Place|Keyframe)|pp(endStringArray|l(y(Take|AttrPreset)|icationName))|ffect(s|edNet)|l(i(as(Attr)?|gn(Surface|C(tx|urve))?)|lViewFit)|r(c(len|Len(DimContext|gthDimension))|t(BuildPaintMenu|Se(tPaintCtx|lectCtx)|3dPaintCtx|UserPaintCtx|PuttyCtx|FluidAttrCtx|Attr(SkinPaintCtx|Ctx|PaintVertexCtx))|rayMapper)|mbientLight|b(s|out))|r(igid(Body|Solver)|o(t(at(ionInterpolation|e))?|otOf |undConstantRadius|w(ColumnLayout|Layout)|ll(Ctx)?)|un(up|TimeCommand)|e(s(olutionNode|et(Tool|AE )|ampleFluid)|hash|n(der(GlobalsNode|Manip|ThumbnailUpdate|Info|er|Partition|QualityNode|Window(SelectContext|Editor)|LayerButton)?|ame(SelectionList |UI|Attr)?)|cord(Device|Attr)|target|order(Deformers)?|do|v(olve|erse(Surface|Curve))|quires|f(ineSubdivSelectionList|erence(Edit|Query)?|resh(AE )?)|loadImage|adTake|root|move(MultiInstance|Joint)|build(Surface|Curve))|a(n(d(state|omizeFollicles )?|geControl)|d(i(o(MenuItemCollection|Button(Grp)?|Collection)|al)|_to_deg)|mpColorPort)|gb_to_hsv)|g(o(toBindPose |al)|e(t(M(odifiers|ayaPanelTypes )|Classification|InputDeviceRange|pid|env|DefaultBrush|Pa(nel|rticleAttr)|F(ileList|luidAttr)|A(ttr|pplicationVersionAsFloat ))|ometryConstraint)|l(Render(Editor)?|obalStitch)|a(uss|mma)|r(id(Layout)?|oup(ObjectsByName )?|a(dientControl(NoAttr)?|ph(SelectContext|TrackCtx|DollyCtx)|vity|bColor))|match)|x(pmPicker|form|bmLangPathList )|m(i(n(imizeApp)?|rrorJoint)|o(del(CurrentTimeCtx|Panel|Editor)|use|v(In|e(IKtoFK |VertexAlongDirection|KeyCtx)?|Out))|u(te|ltiProfileBirailSurface)|e(ssageLine|nu(BarLayout|Item(ToShelf )?|Editor)?|mory)|a(nip(Rotate(Context|LimitsCtx)|Move(Context|LimitsCtx)|Scale(Context|LimitsCtx)|Options)|tch|ke(Roll |SingleSurface|TubeOn |Identity|Paintable|bot|Live)|rker|g|x))|b(in(Membership|d(Skin|Pose))|o(neLattice|undary|x(ZoomCtx|DollyCtx))|u(tton(Manip)?|ild(BookmarkMenu|KeyframeMenu)|fferCurve)|e(ssel|vel(Plus)?)|l(indDataType|end(Shape(Panel|Editor)?|2|TwoAttr))|a(sename(Ex | )|tchRender|ke(Results|Simulation|Clip|PartialHistory|FluidShading )))))\\\\b\"},{caseInsensitive:!0,token:\"support.constant.mel\",regex:\"\\\\b(s(h(ellTessellate|a(d(ing(Map|Engine)|erGlow)|pe))|n(ow|apshot(Shape)?)|c(ulpt|aleConstraint|ript)|t(yleCurve|itch(Srf|AsNurbsShell)|u(cco|dioClearCoat)|encil|roke(Globals)?)|i(ngleShadingSwitch|mpleVolumeShader)|o(ftMod(Manip|Handle)?|lidFractal)|u(rface(Sha(der|pe)|Info|EdManip|VarGroup|Luminance)|b(Surface|d(M(odifier(UV|World)?|ap(SewMove|Cut|pingManip))|B(lindData|ase)|iv(ReverseFaces|SurfaceVarGroup|Co(llapse|mponentId)|To(Nurbs|Poly))?|HierBlind|CleanTopology|Tweak(UV)?|P(lanarProj|rojManip)|LayoutUV|A(ddTopology|utoProj))|Curve))|p(BirailSrf|otLight|ring)|e(tRange|lectionListOperator)|k(inCluster|etchPlane)|quareSrf|ampler(Info)?|m(ooth(Curve|TangentSrf)|ear))|h(svToRgb|yper(GraphInfo|View|Layout)|ik(Solver|Handle|Effector)|oldMatrix|eightField|w(Re(nderGlobals|flectionMap)|Shader)|a(ir(System|Constraint|TubeShader)|rd(enPoint|wareRenderGlobals)))|n(o(n(ExtendedLightShapeNode|Linear|AmbientLightShapeNode)|ise|rmalConstraint)|urbs(Surface|Curve|T(oSubdiv(Proc)?|essellate)|DimShape)|e(twork|wtonField))|c(h(o(ice|oser)|ecker|aracter(Map|Offset)?)|o(n(straint|tr(olPoint|ast)|dition)|py(ColorSet|UVSet))|urve(Range|Shape|Normalizer(Linear|Angle)?|In(tersect|fo)|VarGroup|From(Mesh(CoM|Edge)?|Su(rface(Bnd|CoS|Iso)?|bdiv(Edge|Face)?)))|l(ip(Scheduler|Library)|o(se(stPointOnSurface|Surface|Curve)|th|ud)|uster(Handle)?|amp)|amera(View)?|r(eate(BPManip|ColorSet|UVSet)|ater))|t(ime(ToUnitConversion|Function)?|oo(nLineAttributes|lDrawManip)|urbulenceField|ex(BaseDeformManip|ture(BakeSet|2d|ToGeom|3d|Env)|SmudgeUVManip|LatticeDeformManip)|weak|angentConstraint|r(i(pleShadingSwitch|m(WithBoundaries)?)|ansform(Geometry)?))|i(n(s(tancer|ertKnot(Surface|Curve))|tersectSurface)|k(RPsolver|MCsolver|S(ystem|olver|Csolver|plineSolver)|Handle|PASolver|Effector)|m(plicit(Box|Sphere|Cone)|agePlane))|o(cean(Shader)?|pticalFX|ffset(Surface|C(os|urve))|ldBlindDataBase|rient(Constraint|ationMarker)|bject(RenderFilter|MultiFilter|BinFilter|S(criptFilter|et)|NameFilter|TypeFilter|Filter|AttrFilter))|d(yn(Globals|Base)|i(s(tance(Between|DimShape)|pla(yLayer(Manager)?|cementShader)|kCache)|rect(ionalLight|edDisc)|mensionShape)|o(ubleShadingSwitch|f)|pBirailSrf|e(tach(Surface|Curve)|pendNode|f(orm(Bend|S(ine|quash)|Twist|ableShape|F(unc|lare)|Wave)|ault(RenderUtilityList|ShaderList|TextureList|LightList))|lete(Co(lorSet|mponent)|UVSet))|ag(Node|Pose)|r(opoffLocator|agField))|u(seBackground|n(trim|i(t(Conversion|ToTimeConversion)|formField)|known(Transform|Dag)?)|vChooser)|j(iggle|oint(Cluster|Ffd|Lattice)?)|p(sdFileTex|hong(E)?|o(s(tProcessList|itionMarker)|int(MatrixMult|Constraint|On(SurfaceInfo|CurveInfo)|Emitter|Light)|l(y(Reduce|M(irror|o(difier(UV|World)?|ve(UV|Edge|Vertex|Face(tUV)?))|erge(UV|Edge|Vert|Face)|ap(Sew(Move)?|Cut|Del))|B(oolOp|evel|lindData|ase)|S(traightenUVBorder|oftEdge|ubd(Edge|Face)|p(h(ere|Proj)|lit(Ring|Edge|Vert)?)|e(parate|wEdge)|mooth(Proxy|Face)?)|Normal(izeUV|PerVertex)?|C(hipOff|yl(inder|Proj)|o(ne|pyUV|l(orPerVertex|lapse(Edge|F)))|u(t(Manip(Container)?)?|be)|loseBorder|rea(seEdge|t(or|eFace)))|T(o(Subdiv|rus)|weak(UV)?|r(iangulate|ansfer))|OptUvs|D(uplicateEdge|el(Edge|Vertex|Facet))|Unite|P(yramid|oke(Manip)?|lan(e|arProj)|r(i(sm|mitive)|oj))|Extrude(Edge|Vertex|Face)|VertexNormalManip|Quad|Flip(UV|Edge)|WedgeFace|LayoutUV|A(utoProj|ppend(Vertex)?|verageVertex))|eVectorConstraint))|fx(Geometry|Hair|Toon)|l(usMinusAverage|a(n(e|arTrimSurface)|ce(2dTexture|3dTexture)))|a(ssMatrix|irBlend|r(ti(cle(SamplerInfo|C(olorMapper|loud)|TranspMapper|IncandMapper|AgeMapper)?|tion)|ent(Constraint|Tessellate)|amDimension))|r(imitive|o(ject(ion|Curve|Tangent)|xyManager)))|e(n(tity|v(Ball|ironmentFog|S(phere|ky)|C(hrome|ube)|Fog))|x(t(end(Surface|Curve)|rude)|p(lodeNurbsShell|ression)))|v(iewManip|o(lume(Shader|Noise|Fog|Light|AxisField)|rtexField)|e(ctor(RenderGlobals|Product)|rtexBakeSet))|quadShadingSwitch|f(i(tBspline|eld|l(ter(Resample|Simplify|ClosestSample|Euler)?|e|letCurve))|o(urByFourMatrix|llicle)|urPointOn(MeshInfo|Subd)|f(BlendSrf(Obsolete)?|d|FilletSrf)|l(ow|uid(S(hape|liceManip)|Texture(2D|3D)|Emitter)|exorShape)|ra(ctal|meCache))|w(tAddMatrix|ire|ood|eightGeometryFilter|ater|rap)|l(ight(Info|Fog|Li(st|nker))?|o(cator|okAt|d(Group|Thresholds)|ft)|uminance|ea(stSquaresModifier|ther)|a(yered(Shader|Texture)|ttice|mbert))|a(n(notationShape|i(sotropic|m(Blend(InOut)?|C(urve(T(T|U|L|A)|U(T|U|L|A))?|lip)))|gleBetween)|tt(ach(Surface|Curve)|rHierarchyTest)|i(rField|mConstraint)|dd(Matrix|DoubleLinear)|udio|vg(SurfacePoints|NurbsSurfacePoints|Curves)|lign(Manip|Surface|Curve)|r(cLengthDimension|tAttrPaintTest|eaLight|rayMapper)|mbientLight|bstractBase(NurbsConversion|Create))|r(igid(Body|Solver|Constraint)|o(ck|undConstantRadius)|e(s(olution|ultCurve(TimeTo(Time|Unitless|Linear|Angular))?)|nder(Rect|Globals(List)?|Box|Sphere|Cone|Quality|L(ight|ayer(Manager)?))|cord|v(olve(dPrimitive)?|erse(Surface|Curve)?)|f(erence|lect)|map(Hsv|Color|Value)|build(Surface|Curve))|a(dialField|mp(Shader)?)|gbToHsv|bfSrf)|g(uide|eo(Connect(or|able)|metry(Shape|Constraint|VarGroup|Filter))|lobal(Stitch|CacheControl)|ammaCorrect|r(id|oup(Id|Parts)|a(nite|vityField)))|Fur(Globals|Description|Feedback|Attractors)|xformManip|m(o(tionPath|untain|vie)|u(te|lt(Matrix|i(plyDivide|listerLight)|DoubleLinear))|pBirailSrf|e(sh(VarGroup)?|ntalray(Texture|IblShape))|a(terialInfo|ke(Group|Nurb(sSquare|Sphere|C(ylinder|ircle|one|ube)|Torus|Plane)|CircularArc|T(hreePointCircularArc|extCurves|woPointCircularArc))|rble))|b(irailSrf|o(neLattice|olean|undary(Base)?)|u(lge|mp(2d|3d))|evel(Plus)?|l(in(n|dDataTemplate)|end(Shape|Color(s|Sets)|TwoAttr|Device|Weighted)?)|a(se(GeometryVarGroup|ShadingSwitch|Lattice)|keSet)|r(ownian|ush)))\\\\b\"},{caseInsensitive:!0,token:\"keyword.control.mel\",regex:\"\\\\b(if|in|else|for|while|break|continue|case|default|do|switch|return|switch|case|source|catch|alias)\\\\b\"},{token:\"keyword.other.mel\",regex:\"\\\\b(global)\\\\b\"},{caseInsensitive:!0,token:\"constant.language.mel\",regex:\"\\\\b(null|undefined)\\\\b\"},{token:\"constant.numeric.mel\",regex:\"\\\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\\\.?[0-9]*)|(\\\\.[0-9]+))((e|E)(\\\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\\\b\"},{token:\"punctuation.definition.string.begin.mel\",regex:'\"',push:[{token:\"constant.character.escape.mel\",regex:\"\\\\\\\\.\"},{token:\"punctuation.definition.string.end.mel\",regex:'\"',next:\"pop\"},{defaultToken:\"string.quoted.double.mel\"}]},{token:[\"variable.other.mel\",\"punctuation.definition.variable.mel\"],regex:\"(\\\\$)([a-zA-Z_\\\\x7f-\\\\xff][a-zA-Z0-9_\\\\x7f-\\\\xff]*?\\\\b)\"},{token:\"punctuation.definition.string.begin.mel\",regex:\"'\",push:[{token:\"constant.character.escape.mel\",regex:\"\\\\\\\\.\"},{token:\"punctuation.definition.string.end.mel\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.quoted.single.mel\"}]},{token:\"constant.language.mel\",regex:\"\\\\b(false|true|yes|no|on|off)\\\\b\"},{token:\"punctuation.definition.comment.mel\",regex:\"/\\\\*\",push:[{token:\"punctuation.definition.comment.mel\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.mel\"}]},{token:[\"comment.line.double-slash.mel\",\"punctuation.definition.comment.mel\"],regex:\"(//)(.*$\\\\n?)\"},{caseInsensitive:!0,token:\"keyword.operator.mel\",regex:\"\\\\b(instanceof)\\\\b\"},{token:\"keyword.operator.symbolic.mel\",regex:\"[-\\\\!\\\\%\\\\&\\\\*\\\\+\\\\=\\\\/\\\\?\\\\:]\"},{token:[\"meta.preprocessor.mel\",\"punctuation.definition.preprocessor.mel\"],regex:\"(^[ \\\\t]*)((?:#)[a-zA-Z]+)\"},{token:[\"meta.function.mel\",\"keyword.other.mel\",\"storage.type.mel\",\"entity.name.function.mel\",\"punctuation.section.function.mel\"],regex:\"(global\\\\s*)?(proc\\\\s*)(\\\\w+\\\\s*\\\\[?\\\\]?\\\\s+|\\\\s+)([A-Za-z_][A-Za-z0-9_\\\\.]*)(\\\\s*\\\\()\",push:[{include:\"$self\"},{token:\"punctuation.section.function.mel\",regex:\"\\\\)\",next:\"pop\"},{defaultToken:\"meta.function.mel\"}]}]},this.normalizeRules()};r.inherits(s,i),t.MELHighlightRules=s}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/mel\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/mel_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./mel_highlight_rules\").MELHighlightRules,o=e(\"./behaviour/cstyle\").CstyleBehaviour,u=e(\"./folding/cstyle\").FoldMode,a=function(){this.HighlightRules=s,this.$behaviour=new o,this.foldingRules=new u};r.inherits(a,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/mel\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-mips_assembler.js",
    "content": "ace.define(\"ace/mode/mips_assembler_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"support.function.pseudo.mips\",regex:\"\\\\b(?:mul|abs|div|divu|mulo|mulou|neg|negu|not|rem|remu|rol|ror|li|seq|sge|sgeu|sgt|sgtu|sle|sleu|sne|b|beqz|bge|bgeu|bgt|bgtu|ble|bleu|blt|bltu|bnez|la|ld|ulh|ulhu|ulw|sd|ush|usw|move|mfc1\\\\.d|l\\\\.d|l\\\\.s|s\\\\.d|s\\\\.s)\\\\b\",comment:\"ok actually this are instructions, but one also could call them funtions\\u2026\"},{token:\"support.function.mips\",regex:\"\\\\b(?:abs\\\\.d|abs\\\\.s|add|add\\\\.d|add\\\\.s|addi|addiu|addu|and|andi|bc1f|bc1t|beq|bgez|bgezal|bgtz|blez|bltz|bltzal|bne|break|c\\\\.eq\\\\.d|c\\\\.eq\\\\.s|c\\\\.le\\\\.d|c\\\\.le\\\\.s|c\\\\.lt\\\\.d|c\\\\.lt\\\\.s|ceil\\\\.w\\\\.d|ceil\\\\.w\\\\.s|clo|clz|cvt\\\\.d\\\\.s|cvt\\\\.d\\\\.w|cvt\\\\.s\\\\.d|cvt\\\\.s\\\\.w|cvt\\\\.w\\\\.d|cvt\\\\.w\\\\.s|div|div\\\\.d|div\\\\.s|divu|eret|floor\\\\.w\\\\.d|floor\\\\.w\\\\.s|j|jal|jalr|jr|lb|lbu|lh|lhu|ll|lui|lw|lwc1|lwl|lwr|madd|maddu|mfc0|mfc1|mfhi|mflo|mov\\\\.d|mov\\\\.s|movf|movf\\\\.d|movf\\\\.s|movn|movn\\\\.d|movn\\\\.s|movt|movt\\\\.d|movt\\\\.s|movz|movz\\\\.d|movz\\\\.s|msub|mtc0|mtc1|mthi|mtlo|mul|mul\\\\.d|mul\\\\.s|mult|multu|neg\\\\.d|neg\\\\.s|nop|nor|or|ori|round\\\\.w\\\\.d|round\\\\.w\\\\.s|sb|sc|sdc1|sh|sll|sllv|slt|slti|sltiu|sltu|sqrt\\\\.d|sqrt\\\\.s|sra|srav|srl|srlv|sub|sub\\\\.d|sub\\\\.s|subu|sw|swc1|swl|swr|syscall|teq|teqi|tge|tgei|tgeiu|tgeu|tlt|tlti|tltiu|tltu|trunc\\\\.w\\\\.d|trunc\\\\.w\\\\.s|xor|xori)\\\\b\"},{token:\"storage.type.mips\",regex:\"\\\\.(?:ascii|asciiz|byte|data|double|float|half|kdata|ktext|space|text|word|set\\\\s*(?:noat|at))\\\\b\"},{token:\"storage.modifier.mips\",regex:\"\\\\.(?:align|extern||globl)\\\\b\"},{token:[\"entity.name.function.label.mips\",\"meta.function.label.mips\"],regex:\"\\\\b([A-Za-z0-9_]+)(:)\"},{token:[\"punctuation.definition.variable.mips\",\"variable.other.register.usable.by-number.mips\"],regex:\"(\\\\$)(0|[2-9]|1[0-9]|2[0-5]|2[89]|3[0-1])\\\\b\"},{token:[\"punctuation.definition.variable.mips\",\"variable.other.register.usable.by-name.mips\"],regex:\"(\\\\$)(zero|v[01]|a[0-3]|t[0-9]|s[0-7]|gp|sp|fp|ra)\\\\b\"},{token:[\"punctuation.definition.variable.mips\",\"variable.other.register.reserved.mips\"],regex:\"(\\\\$)(at|k[01]|1|2[67])\\\\b\"},{token:[\"punctuation.definition.variable.mips\",\"variable.other.register.usable.floating-point.mips\",\"variable.other.register.usable.floating-point.mips\"],regex:\"(\\\\$)(f)([0-9]|1[0-9]|2[0-9]|3[0-1])\\\\b\"},{token:\"constant.numeric.float.mips\",regex:\"\\\\b\\\\d+\\\\.\\\\d+\\\\b\"},{token:\"constant.numeric.integer.mips\",regex:\"\\\\b(?:\\\\d+|0(?:x|X)[a-fA-F0-9]+)\\\\b\"},{token:\"punctuation.definition.string.begin.mips\",regex:'\"',push:[{token:\"punctuation.definition.string.end.mips\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.mips\",regex:'\\\\\\\\[rnt\\\\\\\\\"]'},{defaultToken:\"string.quoted.double.mips\"}]},{token:\"punctuation.definition.comment.mips\",regex:\"#\",push:[{token:\"comment.line.number-sign.mips\",regex:\"$\",next:\"pop\"},{defaultToken:\"comment.line.number-sign.mips\"}]}]},this.normalizeRules()};s.metaData={fileTypes:[\"s\",\"mips\",\"spim\",\"asm\"],keyEquivalent:\"^~M\",name:\"MIPS Assembler\",scopeName:\"source.mips\"},r.inherits(s,i),t.MIPSAssemblerHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/)#(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/mips_assembler\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/mips_assembler_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./mips_assembler_highlight_rules\").MIPSAssemblerHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.$id=\"ace/mode/mips_assembler\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-mipsassembler.js",
    "content": "ace.define(\"ace/mode/mipsassembler_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"string.start\",regex:'\"',next:\"qstring\"}],qstring:[{token:\"escape\",regex:/\\\\./},{token:\"string.end\",regex:'\"',next:\"start\"}]},this.normalizeRules()};s.metaData=r.inherits(s,i),t.mipsassemblerHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/)#(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/mipsassembler\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/mipsassembler_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./mipsassembler_highlight_rules\").HighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.$id=\"ace/mode/mipsassembler\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-mushcode.js",
    "content": "ace.define(\"ace/mode/mushcode_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"@if|@ifelse|@switch|@halt|@dolist|@create|@scent|@sound|@touch|@ataste|@osound|@ahear|@aahear|@amhear|@otouch|@otaste|@drop|@odrop|@adrop|@dropfail|@odropfail|@smell|@oemit|@emit|@pemit|@parent|@clone|@taste|whisper|page|say|pose|semipose|teach|touch|taste|smell|listen|look|move|go|home|follow|unfollow|desert|dismiss|@tel\",t=\"=#0\",n=\"default|edefault|eval|get_eval|get|grep|grepi|hasattr|hasattrp|hasattrval|hasattrpval|lattr|nattr|poss|udefault|ufun|u|v|uldefault|xget|zfun|band|bnand|bnot|bor|bxor|shl|shr|and|cand|cor|eq|gt|gte|lt|lte|nand|neq|nor|not|or|t|xor|con|entrances|exit|followers|home|lcon|lexits|loc|locate|lparent|lsearch|next|num|owner|parent|pmatch|rloc|rnum|room|where|zone|worn|held|carried|acos|asin|atan|ceil|cos|e|exp|fdiv|fmod|floor|log|ln|pi|power|round|sin|sqrt|tan|aposs|andflags|conn|commandssent|controls|doing|elock|findable|flags|fullname|hasflag|haspower|hastype|hidden|idle|isbaker|lock|lstats|money|who|name|nearby|obj|objflags|photo|poll|powers|pendingtext|receivedtext|restarts|restarttime|subj|shortestpath|tmoney|type|visible|cat|element|elements|extract|filter|filterbool|first|foreach|fold|grab|graball|index|insert|itemize|items|iter|last|ldelete|map|match|matchall|member|mix|munge|pick|remove|replace|rest|revwords|setdiff|setinter|setunion|shuffle|sort|sortby|splice|step|wordpos|words|add|lmath|max|mean|median|min|mul|percent|sign|stddev|sub|val|bound|abs|inc|dec|dist2d|dist3d|div|floordiv|mod|modulo|remainder|vadd|vdim|vdot|vmag|vmax|vmin|vmul|vsub|vunit|regedit|regeditall|regeditalli|regediti|regmatch|regmatchi|regrab|regraball|regraballi|regrabi|regrep|regrepi|after|alphamin|alphamax|art|before|brackets|capstr|case|caseall|center|containsfansi|comp|decompose|decrypt|delete|edit|encrypt|escape|if|ifelse|lcstr|left|lit|ljust|merge|mid|ostrlen|pos|repeat|reverse|right|rjust|scramble|secure|space|spellnum|squish|strcat|strmatch|strinsert|stripansi|stripfansi|strlen|switch|switchall|table|tr|trim|ucstr|unsafe|wrap|ctitle|cwho|channels|clock|cflags|ilev|itext|inum|convsecs|convutcsecs|convtime|ctime|etimefmt|isdaylight|mtime|secs|msecs|starttime|time|timefmt|timestring|utctime|atrlock|clone|create|cook|dig|emit|lemit|link|oemit|open|pemit|remit|set|tel|wipe|zemit|fbcreate|fbdestroy|fbwrite|fbclear|fbcopy|fbcopyto|fbclip|fbdump|fbflush|fbhset|fblist|fbstats|qentries|qentry|play|ansi|break|c|asc|die|isdbref|isint|isnum|isletters|linecoords|localize|lnum|nameshort|null|objeval|r|rand|s|setq|setr|soundex|soundslike|valid|vchart|vchart2|vlabel|@@|bakerdays|bodybuild|box|capall|catalog|children|ctrailer|darttime|debt|detailbar|exploredroom|fansitoansi|fansitoxansi|fullbar|halfbar|isdarted|isnewbie|isword|lambda|lobjects|lplayers|lthings|lvexits|lvobjects|lvplayers|lvthings|newswrap|numsuffix|playerson|playersthisweek|randomad|randword|realrandword|replacechr|second|splitamount|strlenall|text|third|tofansi|totalac|unique|getaddressroom|listpropertycomm|listpropertyres|lotowner|lotrating|lotratingcount|lotvalue|boughtproduct|companyabb|companyicon|companylist|companyname|companyowners|companyvalue|employees|invested|productlist|productname|productowners|productrating|productratingcount|productsoldat|producttype|ratedproduct|soldproduct|topproducts|totalspentonproduct|totalstock|transfermoney|uniquebuyercount|uniqueproductsbought|validcompany|deletepicture|fbsave|getpicturesecurity|haspicture|listpictures|picturesize|replacecolor|rgbtocolor|savepicture|setpicturesecurity|showpicture|piechart|piechartlabel|createmaze|drawmaze|drawwireframe\",r=this.createKeywordMapper({\"invalid.deprecated\":\"debugger\",\"support.function\":n,\"constant.language\":t,keyword:e},\"identifier\"),i=\"(?:r|u|ur|R|U|UR|Ur|uR)?\",s=\"(?:(?:[1-9]\\\\d*)|(?:0))\",o=\"(?:0[oO]?[0-7]+)\",u=\"(?:0[xX][\\\\dA-Fa-f]+)\",a=\"(?:0[bB][01]+)\",f=\"(?:\"+s+\"|\"+o+\"|\"+u+\"|\"+a+\")\",l=\"(?:[eE][+-]?\\\\d+)\",c=\"(?:\\\\.\\\\d+)\",h=\"(?:\\\\d+)\",p=\"(?:(?:\"+h+\"?\"+c+\")|(?:\"+h+\"\\\\.))\",d=\"(?:(?:\"+p+\"|\"+h+\")\"+l+\")\",v=\"(?:\"+d+\"|\"+p+\")\";this.$rules={start:[{token:\"variable\",regex:\"%[0-9]{1}\"},{token:\"variable\",regex:\"%q[0-9A-Za-z]{1}\"},{token:\"variable\",regex:\"%[a-zA-Z]{1}\"},{token:\"variable.language\",regex:\"%[a-z0-9-_]+\"},{token:\"constant.numeric\",regex:\"(?:\"+v+\"|\\\\d+)[jJ]\\\\b\"},{token:\"constant.numeric\",regex:v},{token:\"constant.numeric\",regex:f+\"[lL]\\\\b\"},{token:\"constant.numeric\",regex:f+\"\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|#|%|<<|>>|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text\",regex:\"\\\\s+\"}]}};r.inherits(s,i),t.MushCodeRules=s}),ace.define(\"ace/mode/folding/pythonic\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e){this.foldingStartMarker=new RegExp(\"([\\\\[{])(?:\\\\s*)$|(\"+e+\")(?:\\\\s*)(?:#.*)?$\")};r.inherits(s,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i)return i[1]?this.openingBracketBlock(e,i[1],n,i.index):i[2]?this.indentationBlock(e,n,i.index+i[2].length):this.indentationBlock(e,n)}}.call(s.prototype)}),ace.define(\"ace/mode/mushcode\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/mushcode_highlight_rules\",\"ace/mode/folding/pythonic\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./mushcode_highlight_rules\").MushCodeRules,o=e(\"./folding/pythonic\").FoldMode,u=e(\"../range\").Range,a=function(){this.HighlightRules=s,this.foldingRules=new o(\"\\\\:\")};r.inherits(a,i),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[\\:]\\s*$/);o&&(r+=n)}return r};var e={pass:1,\"return\":1,raise:1,\"break\":1,\"continue\":1};this.checkOutdent=function(t,n,r){if(r!==\"\\r\\n\"&&r!==\"\\r\"&&r!==\"\\n\")return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do var s=i.pop();while(s&&(s.type==\"comment\"||s.type==\"text\"&&s.value.match(/^\\s+$/)));return s?s.type==\"keyword\"&&e[s.value]:!1},this.autoOutdent=function(e,t,n){n+=1;var r=this.$getIndent(t.getLine(n)),i=t.getTabString();r.slice(-i.length)==i&&t.remove(new u(n,r.length-i.length,n,r.length))},this.$id=\"ace/mode/mushcode\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-mysql.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/mysql_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){function i(e){var t=e.start,n=e.escape;return{token:\"string.start\",regex:t,next:[{token:\"constant.language.escape\",regex:n},{token:\"string.end\",next:\"start\",regex:t},{defaultToken:\"string\"}]}}var e=\"alter|and|as|asc|between|count|create|delete|desc|distinct|drop|from|having|in|insert|into|is|join|like|not|on|or|order|select|set|table|union|update|values|where|accessible|action|add|after|algorithm|all|analyze|asensitive|at|authors|auto_increment|autocommit|avg|avg_row_length|before|binary|binlog|both|btree|cache|call|cascade|cascaded|case|catalog_name|chain|change|changed|character|check|checkpoint|checksum|class_origin|client_statistics|close|coalesce|code|collate|collation|collations|column|columns|comment|commit|committed|completion|concurrent|condition|connection|consistent|constraint|contains|continue|contributors|convert|cross|current_date|current_time|current_timestamp|current_user|cursor|data|database|databases|day_hour|day_microsecond|day_minute|day_second|deallocate|dec|declare|default|delay_key_write|delayed|delimiter|des_key_file|describe|deterministic|dev_pop|dev_samp|deviance|directory|disable|discard|distinctrow|div|dual|dumpfile|each|elseif|enable|enclosed|end|ends|engine|engines|enum|errors|escape|escaped|even|event|events|every|execute|exists|exit|explain|extended|fast|fetch|field|fields|first|flush|for|force|foreign|found_rows|full|fulltext|function|general|global|grant|grants|group|groupby_concat|handler|hash|help|high_priority|hosts|hour_microsecond|hour_minute|hour_second|if|ignore|ignore_server_ids|import|index|index_statistics|infile|inner|innodb|inout|insensitive|insert_method|install|interval|invoker|isolation|iterate|key|keys|kill|language|last|leading|leave|left|level|limit|linear|lines|list|load|local|localtime|localtimestamp|lock|logs|low_priority|master|master_heartbeat_period|master_ssl_verify_server_cert|masters|match|max|max_rows|maxvalue|message_text|middleint|migrate|min|min_rows|minute_microsecond|minute_second|mod|mode|modifies|modify|mutex|mysql_errno|natural|next|no|no_write_to_binlog|offline|offset|one|online|open|optimize|option|optionally|out|outer|outfile|pack_keys|parser|partition|partitions|password|phase|plugin|plugins|prepare|preserve|prev|primary|privileges|procedure|processlist|profile|profiles|purge|query|quick|range|read|read_write|reads|real|rebuild|recover|references|regexp|relaylog|release|remove|rename|reorganize|repair|repeatable|replace|require|resignal|restrict|resume|return|returns|revoke|right|rlike|rollback|rollup|row|row_format|rtree|savepoint|schedule|schema|schema_name|schemas|second_microsecond|security|sensitive|separator|serializable|server|session|share|show|signal|slave|slow|smallint|snapshot|soname|spatial|specific|sql|sql_big_result|sql_buffer_result|sql_cache|sql_calc_found_rows|sql_no_cache|sql_small_result|sqlexception|sqlstate|sqlwarning|ssl|start|starting|starts|status|std|stddev|stddev_pop|stddev_samp|storage|straight_join|subclass_origin|sum|suspend|table_name|table_statistics|tables|tablespace|temporary|terminated|to|trailing|transaction|trigger|triggers|truncate|uncommitted|undo|uninstall|unique|unlock|upgrade|usage|use|use_frm|user|user_resources|user_statistics|using|utc_date|utc_time|utc_timestamp|value|variables|varying|view|views|warnings|when|while|with|work|write|xa|xor|year_month|zerofill|begin|do|then|else|loop|repeat\",t=\"by|bool|boolean|bit|blob|decimal|double|enum|float|long|longblob|longtext|medium|mediumblob|mediumint|mediumtext|time|timestamp|tinyblob|tinyint|tinytext|text|bigint|int|int1|int2|int3|int4|int8|integer|float|float4|float8|double|char|varbinary|varchar|varcharacter|precision|date|datetime|year|unsigned|signed|numeric|ucase|lcase|mid|len|round|rank|now|format|coalesce|ifnull|isnull|nvl\",n=\"charset|clear|connect|edit|ego|exit|go|help|nopager|notee|nowarning|pager|print|prompt|quit|rehash|source|status|system|tee\",r=this.createKeywordMapper({\"support.function\":t,keyword:e,constant:\"false|true|null|unknown|date|time|timestamp|ODBCdotTable|zerolessFloat\",\"variable.language\":n},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\"(?:-- |#).*$\"},i({start:'\"',escape:/\\\\[0'\"bnrtZ\\\\%_]?/}),i({start:\"'\",escape:/\\\\[0'\"bnrtZ\\\\%_]?/}),s.getStartRule(\"doc-start\"),{token:\"comment\",regex:/\\/\\*/,next:\"comment\"},{token:\"constant.numeric\",regex:/0[xX][0-9a-fA-F]+|[xX]'[0-9a-fA-F]+'|0[bB][01]+|[bB]'[01]+'/},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"constant.class\",regex:\"@@?[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"constant.buildin\",regex:\"`[^`]*`\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}]},this.embedRules(s,\"doc-\",[s.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(u,o),t.MysqlHighlightRules=u}),ace.define(\"ace/mode/mysql\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/mysql_highlight_rules\",\"ace/range\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../mode/text\").Mode,s=e(\"./mysql_highlight_rules\").MysqlHighlightRules,o=e(\"../range\").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart=[\"--\",\"#\"],this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/mysql\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-nix.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.cFunctions=\"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\",u=function(){var e=\"break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using\",t=\"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t\",n=\"const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\",r=\"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eqconst_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\",s=\"NULL|true|false|TRUE|FALSE|nullptr\",u=this.$keywords=this.createKeywordMapper({\"keyword.control\":e,\"storage.type\":t,\"storage.modifier\":n,\"keyword.operator\":r,\"variable.language\":\"this\",\"constant.language\":s},\"identifier\"),a=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Zd\\\\$_\\u00a1-\\uffff]*\\\\b\",f=/\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source;this.$rules={start:[{token:\"comment\",regex:\"//$\",next:\"start\"},{token:\"comment\",regex:\"//\",next:\"singleLineComment\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:\"'(?:\"+f+\"|.)'\"},{token:\"string.start\",regex:'\"',stateName:\"qqstring\",next:[{token:\"string\",regex:/\\\\\\s*$/,next:\"qqstring\"},{token:\"constant.language.escape\",regex:f},{token:\"constant.language.escape\",regex:/%[^'\"\\\\]/},{token:\"string.end\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'R\"\\\\(',stateName:\"rawString\",next:[{token:\"string.end\",regex:'\\\\)\"',next:\"start\"},{defaultToken:\"string\"}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"keyword\",regex:\"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",next:\"directive\"},{token:\"keyword\",regex:\"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"},{token:\"support.function.C99.c\",regex:o},{token:u,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\"},{token:\"keyword.operator\",regex:/--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],singleLineComment:[{token:\"comment\",regex:/\\\\$/,next:\"singleLineComment\"},{token:\"comment\",regex:/$/,next:\"start\"},{defaultToken:\"comment\"}],directive:[{token:\"constant.other.multiline\",regex:/\\\\/},{token:\"constant.other.multiline\",regex:/.*\\\\/},{token:\"constant.other\",regex:\"\\\\s*<.+?>\",next:\"start\"},{token:\"constant.other\",regex:'\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',next:\"start\"},{token:\"constant.other\",regex:\"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",next:\"start\"},{token:\"constant.other\",regex:/[^\\\\\\/]+/,next:\"start\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/c_cpp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c_cpp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./c_cpp_highlight_rules\").c_cppHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/c_cpp\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/nix_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"true|false\",t=\"with|import|if|else|then|inherit\",n=\"let|in|rec\",r=this.createKeywordMapper({\"constant.language.nix\":e,\"keyword.control.nix\":t,\"keyword.declaration.nix\":n},\"identifier\");this.$rules={start:[{token:\"comment\",regex:/#.*$/},{token:\"comment\",regex:/\\/\\*/,next:\"comment\"},{token:\"constant\",regex:\"<[^>]+>\"},{regex:\"(==|!=|<=?|>=?)\",token:[\"keyword.operator.comparison.nix\"]},{regex:\"((?:[+*/%-]|\\\\~)=)\",token:[\"keyword.operator.assignment.arithmetic.nix\"]},{regex:\"=\",token:\"keyword.operator.assignment.nix\"},{token:\"string\",regex:\"''\",next:\"qqdoc\"},{token:\"string\",regex:\"'\",next:\"qstring\"},{token:\"string\",regex:'\"',push:\"qqstring\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{regex:\"}\",token:function(e,t,n){return n[1]&&n[1].charAt(0)==\"q\"?\"constant.language.escape\":\"text\"},next:\"pop\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],qqdoc:[{token:\"constant.language.escape\",regex:/\\$\\{/,push:\"start\"},{token:\"string\",regex:\"''\",next:\"pop\"},{defaultToken:\"string\"}],qqstring:[{token:\"constant.language.escape\",regex:/\\$\\{/,push:\"start\"},{token:\"string\",regex:'\"',next:\"pop\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:/\\$\\{/,push:\"start\"},{token:\"string\",regex:\"'\",next:\"pop\"},{defaultToken:\"string\"}]},this.normalizeRules()};r.inherits(s,i),t.NixHighlightRules=s}),ace.define(\"ace/mode/nix\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/c_cpp\",\"ace/mode/nix_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./c_cpp\").Mode,s=e(\"./nix_highlight_rules\").NixHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){i.call(this),this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"#\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/nix\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-nsis.js",
    "content": "ace.define(\"ace/mode/nsis_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"keyword.compiler.nsis\",regex:/(?:\\b|^\\s*)\\!(?:include|addincludedir|addplugindir|appendfile|cd|delfile|echo|error|execute|packhdr|finalize|getdllversion|system|tempfile|warning|verbose|define|undef|insertmacro|macro|macroend|makensis|searchparse|searchreplace)\\b/,caseInsensitive:!0},{token:\"keyword.command.nsis\",regex:/(?:\\b|^\\s*)(?:Abort|AddBrandingImage|AddSize|AllowRootDirInstall|AllowSkipFiles|AutoCloseWindow|BGFont|BGGradient|BrandingText|BringToFront|Call|CallInstDLL|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|CreateDirectory|CreateFont|CreateShortCut|Delete|DeleteINISec|DeleteINIStr|DeleteRegKey|DeleteRegValue|DetailPrint|DetailsButtonText|DirText|DirVar|DirVerify|EnableWindow|EnumRegKey|EnumRegValue|Exch|Exec|ExecShell|ExecWait|ExpandEnvStrings|File|FileBufSize|FileClose|FileErrorText|FileOpen|FileRead|FileReadByte|FileReadUTF16LE|FileReadWord|FileWriteUTF16LE|FileSeek|FileWrite|FileWriteByte|FileWriteWord|FindClose|FindFirst|FindNext|FindWindow|FlushINI|GetCurInstType|GetCurrentAddress|GetDlgItem|GetDLLVersion|GetDLLVersionLocal|GetErrorLevel|GetFileTime|GetFileTimeLocal|GetFullPathName|GetFunctionAddress|GetInstDirError|GetLabelAddress|GetTempFileName|Goto|HideWindow|Icon|IfAbort|IfErrors|IfFileExists|IfRebootFlag|IfSilent|InitPluginsDir|InstallButtonText|InstallColors|InstallDir|InstallDirRegKey|InstProgressFlags|InstType|InstTypeGetText|InstTypeSetText|IntCmp|IntCmpU|IntFmt|IntOp|IsWindow|LangString|LicenseBkColor|LicenseData|LicenseForceSelection|LicenseLangString|LicenseText|LoadLanguageFile|LockWindow|LogSet|LogText|ManifestDPIAware|ManifestSupportedOS|MessageBox|MiscButtonText|Name|Nop|OutFile|Page|PageCallbacks|Pop|Push|Quit|ReadEnvStr|ReadINIStr|ReadRegDWORD|ReadRegStr|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|SectionGetFlags|SectionGetInstTypes|SectionGetSize|SectionGetText|SectionIn|SectionSetFlags|SectionSetInstTypes|SectionSetSize|SectionSetText|SendMessage|SetAutoClose|SetBrandingImage|SetCompress|SetCompressor|SetCompressorDictSize|SetCtlColors|SetCurInstType|SetDatablockOptimize|SetDateSave|SetDetailsPrint|SetDetailsView|SetErrorLevel|SetErrors|SetFileAttributes|SetFont|SetOutPath|SetOverwrite|SetPluginUnload|SetRebootFlag|SetRegView|SetShellVarContext|SetSilent|ShowInstDetails|ShowUninstDetails|ShowWindow|SilentInstall|SilentUnInstall|Sleep|SpaceTexts|StrCmp|StrCmpS|StrCpy|StrLen|SubCaption|Unicode|UninstallButtonText|UninstallCaption|UninstallIcon|UninstallSubCaption|UninstallText|UninstPage|UnRegDLL|Var|VIAddVersionKey|VIFileVersion|VIProductVersion|WindowIcon|WriteINIStr|WriteRegBin|WriteRegDWORD|WriteRegExpandStr|WriteRegStr|WriteUninstaller|XPStyle)\\b/,caseInsensitive:!0},{token:\"keyword.control.nsis\",regex:/(?:\\b|^\\s*)\\!(?:ifdef|ifndef|if|ifmacrodef|ifmacrondef|else|endif)\\b/,caseInsensitive:!0},{token:\"keyword.plugin.nsis\",regex:/(?:\\b|^\\s*)\\w+\\:\\:\\w+/,caseInsensitive:!0},{token:\"keyword.operator.comparison.nsis\",regex:/[!<>]?=|<>|<|>/},{token:\"support.function.nsis\",regex:/(?:\\b|^\\s*)(?:Function|FunctionEnd|Section|SectionEnd|SectionGroup|SectionGroupEnd|SubSection|SubSectionEnd|PageEx|PageExEnd)\\b/,caseInsensitive:!0},{token:\"support.library.nsis\",regex:/\\${[\\w]+}/},{token:\"constant.nsis\",regex:/(?:\\b|^\\s*)(?:ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HIDDEN|HKCC|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|IDD_DIR|IDD_INST|IDD_INSTFILES|IDD_LICENSE|IDD_SELCOM|IDD_UNINST|IDD_VERIFY|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|MB_YESNOCANCEL|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SW_HIDE|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWNORMAL|SYSTEM|TEMPORARY)\\b/,caseInsensitive:!0},{token:\"constant.library.nsis\",regex:/\\${(?:AtLeastServicePack|AtLeastWin7|AtLeastWin8|AtLeastWin10|AtLeastWin95|AtLeastWin98|AtLeastWin2000|AtLeastWin2003|AtLeastWin2008|AtLeastWin2008R2|AtLeastWinME|AtLeastWinNT4|AtLeastWinVista|AtLeastWinXP|AtMostServicePack|AtMostWin7|AtMostWin8|AtMostWin10|AtMostWin95|AtMostWin98|AtMostWin2000|AtMostWin2003|AtMostWin2008|AtMostWin2008R2|AtMostWinME|AtMostWinNT4|AtMostWinVista|AtMostWinXP|IsNT|IsServer|IsServicePack|IsWin7|IsWin8|IsWin10|IsWin95|IsWin98|IsWin2000|IsWin2003|IsWin2008|IsWin2008R2|IsWinME|IsWinNT4|IsWinVista|IsWinXP)}/},{token:\"constant.language.boolean.true.nsis\",regex:/\\b(?:true|on)\\b/},{token:\"constant.language.boolean.false.nsis\",regex:/\\b(?:false|off)\\b/},{token:\"constant.language.option.nsis\",regex:/(?:\\b|^\\s*)(?:(?:un\\.)?components|(?:un\\.)?custom|(?:un\\.)?directory|(?:un\\.)?instfiles|(?:un\\.)?license|uninstConfirm|admin|all|auto|both|bottom|bzip2|current|force|hide|highest|ifdiff|ifnewer|lastused|leave|left|listonly|lzma|nevershow|none|normal|notset|right|show|silent|silentlog|textonly|top|try|user|Win10|Win7|Win8|WinVista|zlib)\\b/,caseInsensitive:!0},{token:\"constant.language.slash-option.nsis\",regex:/\\/(?:a|BRANDING|CENTER|COMPONENTSONLYONCUSTOM|CUSTOMSTRING\\=|date|e|ENABLECANCEL|FILESONLY|file|FINAL|GLOBAL|gray|ifempty|ifndef|ignorecase|IMGID\\=|ITALIC|LANG\\=|NOCUSTOM|noerrors|NONFATAL|nonfatal|oname\\=|o|REBOOTOK|redef|RESIZETOFIT|r|SHORT|SILENT|SOLID|STRIKE|TRIM|UNDERLINE|utcdate|windows|x)\\b/,caseInsensitive:!0},{token:\"constant.numeric.nsis\",regex:/\\b(?:0(?:x|X)[0-9a-fA-F]+|[0-9]+(?:\\.[0-9]+)?)\\b/},{token:\"entity.name.function.nsis\",regex:/\\${[\\w]+}/},{token:\"storage.type.function.nsis\",regex:/\\$[\\w]+/},{token:\"punctuation.definition.string.begin.nsis\",regex:/`/,push:[{token:\"punctuation.definition.string.end.nsis\",regex:/`/,next:\"pop\"},{token:\"constant.character.escape.nsis\",regex:/\\$\\\\./},{defaultToken:\"string.quoted.back.nsis\"}]},{token:\"punctuation.definition.string.begin.nsis\",regex:/\"/,push:[{token:\"punctuation.definition.string.end.nsis\",regex:/\"/,next:\"pop\"},{token:\"constant.character.escape.nsis\",regex:/\\$\\\\./},{defaultToken:\"string.quoted.double.nsis\"}]},{token:\"punctuation.definition.string.begin.nsis\",regex:/'/,push:[{token:\"punctuation.definition.string.end.nsis\",regex:/'/,next:\"pop\"},{token:\"constant.character.escape.nsis\",regex:/\\$\\\\./},{defaultToken:\"string.quoted.single.nsis\"}]},{token:[\"punctuation.definition.comment.nsis\",\"comment.line.nsis\"],regex:/(;|#)(.*$)/},{token:\"punctuation.definition.comment.nsis\",regex:/\\/\\*/,push:[{token:\"punctuation.definition.comment.nsis\",regex:/\\*\\//,next:\"pop\"},{defaultToken:\"comment.block.nsis\"}]},{token:\"text\",regex:/(?:\\!include|\\!insertmacro)\\b/}]},this.normalizeRules()};s.metaData={comment:\"\\n\ttodo: - highlight functions\\n\t\",fileTypes:[\"nsi\",\"nsh\"],name:\"NSIS\",scopeName:\"source.nsis\"},r.inherits(s,i),t.NSISHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/nsis\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/nsis_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./nsis_highlight_rules\").NSISHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=[\";\",\"#\"],this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/nsis\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-objectivec.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.cFunctions=\"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\",u=function(){var e=\"break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using\",t=\"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t\",n=\"const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\",r=\"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eqconst_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\",s=\"NULL|true|false|TRUE|FALSE|nullptr\",u=this.$keywords=this.createKeywordMapper({\"keyword.control\":e,\"storage.type\":t,\"storage.modifier\":n,\"keyword.operator\":r,\"variable.language\":\"this\",\"constant.language\":s},\"identifier\"),a=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Zd\\\\$_\\u00a1-\\uffff]*\\\\b\",f=/\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source;this.$rules={start:[{token:\"comment\",regex:\"//$\",next:\"start\"},{token:\"comment\",regex:\"//\",next:\"singleLineComment\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:\"'(?:\"+f+\"|.)'\"},{token:\"string.start\",regex:'\"',stateName:\"qqstring\",next:[{token:\"string\",regex:/\\\\\\s*$/,next:\"qqstring\"},{token:\"constant.language.escape\",regex:f},{token:\"constant.language.escape\",regex:/%[^'\"\\\\]/},{token:\"string.end\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'R\"\\\\(',stateName:\"rawString\",next:[{token:\"string.end\",regex:'\\\\)\"',next:\"start\"},{defaultToken:\"string\"}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"keyword\",regex:\"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",next:\"directive\"},{token:\"keyword\",regex:\"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"},{token:\"support.function.C99.c\",regex:o},{token:u,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\"},{token:\"keyword.operator\",regex:/--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],singleLineComment:[{token:\"comment\",regex:/\\\\$/,next:\"singleLineComment\"},{token:\"comment\",regex:/$/,next:\"start\"},{defaultToken:\"comment\"}],directive:[{token:\"constant.other.multiline\",regex:/\\\\/},{token:\"constant.other.multiline\",regex:/.*\\\\/},{token:\"constant.other\",regex:\"\\\\s*<.+?>\",next:\"start\"},{token:\"constant.other\",regex:'\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',next:\"start\"},{token:\"constant.other\",regex:\"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",next:\"start\"},{token:\"constant.other\",regex:/[^\\\\\\/]+/,next:\"start\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define(\"ace/mode/objectivec_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/c_cpp_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./c_cpp_highlight_rules\"),o=s.c_cppHighlightRules,u=function(){var e=\"\\\\\\\\(?:[abefnrtv'\\\"?\\\\\\\\]|[0-3]\\\\d{1,2}|[4-7]\\\\d?|222|x[a-zA-Z0-9]+)\",t=[{regex:\"\\\\b_cmd\\\\b\",token:\"variable.other.selector.objc\"},{regex:\"\\\\b(?:self|super)\\\\b\",token:\"variable.language.objc\"}],n=new o,r=n.getRules();this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:[\"storage.type.objc\",\"punctuation.definition.storage.type.objc\",\"entity.name.type.objc\",\"text\",\"entity.other.inherited-class.objc\"],regex:\"(@)(interface|protocol)(?!.+;)(\\\\s+[A-Za-z_][A-Za-z0-9_]*)(\\\\s*:\\\\s*)([A-Za-z]+)\"},{token:[\"storage.type.objc\"],regex:\"(@end)\"},{token:[\"storage.type.objc\",\"entity.name.type.objc\",\"entity.other.inherited-class.objc\"],regex:\"(@implementation)(\\\\s+[A-Za-z_][A-Za-z0-9_]*)(\\\\s*?::\\\\s*(?:[A-Za-z][A-Za-z0-9]*))?\"},{token:\"string.begin.objc\",regex:'@\"',next:\"constant_NSString\"},{token:\"storage.type.objc\",regex:\"\\\\bid\\\\s*<\",next:\"protocol_list\"},{token:\"keyword.control.macro.objc\",regex:\"\\\\bNS_DURING|NS_HANDLER|NS_ENDHANDLER\\\\b\"},{token:[\"punctuation.definition.keyword.objc\",\"keyword.control.exception.objc\"],regex:\"(@)(try|catch|finally|throw)\\\\b\"},{token:[\"punctuation.definition.keyword.objc\",\"keyword.other.objc\"],regex:\"(@)(defs|encode)\\\\b\"},{token:[\"storage.type.id.objc\",\"text\"],regex:\"(\\\\bid\\\\b)(\\\\s|\\\\n)?\"},{token:\"storage.type.objc\",regex:\"\\\\bIBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class\\\\b\"},{token:[\"punctuation.definition.storage.type.objc\",\"storage.type.objc\"],regex:\"(@)(class|protocol)\\\\b\"},{token:[\"punctuation.definition.storage.type.objc\",\"punctuation\"],regex:\"(@selector)(\\\\s*\\\\()\",next:\"selectors\"},{token:[\"punctuation.definition.storage.modifier.objc\",\"storage.modifier.objc\"],regex:\"(@)(synchronized|public|private|protected|package)\\\\b\"},{token:\"constant.language.objc\",regex:\"\\\\bYES|NO|Nil|nil\\\\b\"},{token:\"support.variable.foundation\",regex:\"\\\\bNSApp\\\\b\"},{token:[\"support.function.cocoa.leopard\"],regex:\"(?:\\\\b)(NS(?:Rect(?:ToCGRect|FromCGRect)|MakeCollectable|S(?:tringFromProtocol|ize(?:ToCGSize|FromCGSize))|Draw(?:NinePartImage|ThreePartImage)|P(?:oint(?:ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))(?:\\\\b)\"},{token:[\"support.function.cocoa\"],regex:\"(?:\\\\b)(NS(?:R(?:ound(?:DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(?:CriticalAlertPanel(?:RelativeToWindow)?|InformationalAlertPanel(?:RelativeToWindow)?|AlertPanel(?:RelativeToWindow)?)|e(?:set(?:MapTable|HashTable)|c(?:ycleZone|t(?:Clip(?:List)?|F(?:ill(?:UsingOperation|List(?:UsingOperation|With(?:Grays|Colors(?:UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(?:dPixel|l(?:MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(?:SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(?:s)?|WindowServerMemory|AlertPanel)|M(?:i(?:n(?:X|Y)|d(?:X|Y))|ouseInRect|a(?:p(?:Remove|Get|Member|Insert(?:IfAbsent|KnownAbsent)?)|ke(?:R(?:ect|ange)|Size|Point)|x(?:Range|X|Y)))|B(?:itsPer(?:SampleFromDepth|PixelFromDepth)|e(?:stDepth|ep|gin(?:CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(?:ho(?:uldRetainWithZone|w(?:sServicesMenuItem|AnimationEffect))|tringFrom(?:R(?:ect|ange)|MapTable|S(?:ize|elector)|HashTable|Class|Point)|izeFromString|e(?:t(?:ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(?:Big(?:ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(?:ToHost|LongToHost))|Short|Host(?:ShortTo(?:Big|Little)|IntTo(?:Big|Little)|DoubleTo(?:Big|Little)|FloatTo(?:Big|Little)|Long(?:To(?:Big|Little)|LongTo(?:Big|Little)))|Int|Double|Float|L(?:ittle(?:ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(?:ToHost|LongToHost))|ong(?:Long)?)))|H(?:ighlightRect|o(?:stByteOrder|meDirectory(?:ForUser)?)|eight|ash(?:Remove|Get|Insert(?:IfAbsent|KnownAbsent)?)|FSType(?:CodeFromFileType|OfFile))|N(?:umberOfColorComponents|ext(?:MapEnumeratorPair|HashEnumeratorItem))|C(?:o(?:n(?:tainsRect|vert(?:GlyphsToPackedGlyphs|Swapped(?:DoubleToHost|FloatToHost)|Host(?:DoubleToSwapped|FloatToSwapped)))|unt(?:MapTable|HashTable|Frames|Windows(?:ForContext)?)|py(?:M(?:emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(?:MapTables|HashTables))|lassFromString|reate(?:MapTable(?:WithZone)?|HashTable(?:WithZone)?|Zone|File(?:namePboardType|ContentsPboardType)))|TemporaryDirectory|I(?:s(?:ControllerMarker|EmptyRect|FreedObject)|n(?:setRect|crementExtraRefCount|te(?:r(?:sect(?:sRect|ionR(?:ect|ange))|faceStyleForKey)|gralRect)))|Zone(?:Realloc|Malloc|Name|Calloc|Fr(?:omPointer|ee))|O(?:penStepRootDirectory|ffsetRect)|D(?:i(?:sableScreenUpdates|videRect)|ottedFrameRect|e(?:c(?:imal(?:Round|Multiply|S(?:tring|ubtract)|Normalize|Co(?:py|mpa(?:ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(?:MemoryPages|Object))|raw(?:Gr(?:oove|ayBezel)|B(?:itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(?:hiteBezel|indowBackground)|LightBezel))|U(?:serName|n(?:ionR(?:ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(?:Bundle(?:Setup|Cleanup)|Setup(?:VirtualMachine)?|Needs(?:ToLoadClasses|VirtualMachine)|ClassesF(?:orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(?:oint(?:InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(?:n(?:d(?:MapTableEnumeration|HashTableEnumeration)|umerate(?:MapTable|HashTable)|ableScreenUpdates)|qual(?:R(?:ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(?:ileTypeForHFSTypeCode|ullUserName|r(?:ee(?:MapTable|HashTable)|ame(?:Rect(?:WithWidth(?:UsingOperation)?)?|Address)))|Wi(?:ndowList(?:ForContext)?|dth)|Lo(?:cationInRange|g(?:v|PageSize)?)|A(?:ccessibility(?:R(?:oleDescription(?:ForUIElement)?|aiseBadArgumentException)|Unignored(?:Children(?:ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(?:Main|Load)|vailableWindowDepths|ll(?:MapTable(?:Values|Keys)|HashTableObjects|ocate(?:MemoryPages|Collectable|Object)))))(?:\\\\b)\"},{token:[\"support.class.cocoa.leopard\"],regex:\"(?:\\\\b)(NS(?:RuleEditor|G(?:arbageCollector|radient)|MapTable|HashTable|Co(?:ndition|llectionView(?:Item)?)|T(?:oolbarItemGroup|extInputClient|r(?:eeNode|ackingArea))|InvocationOperation|Operation(?:Queue)?|D(?:ictionaryController|ockTile)|P(?:ointer(?:Functions|Array)|athC(?:o(?:ntrol(?:Delegate)?|mponentCell)|ell(?:Delegate)?)|r(?:intPanelAccessorizing|edicateEditor(?:RowTemplate)?))|ViewController|FastEnumeration|Animat(?:ionContext|ablePropertyContainer)))(?:\\\\b)\"},{token:[\"support.class.cocoa\"],regex:\"(?:\\\\b)(NS(?:R(?:u(?:nLoop|ler(?:Marker|View))|e(?:sponder|cursiveLock|lativeSpecifier)|an(?:domSpecifier|geSpecifier))|G(?:etCommand|lyph(?:Generator|Storage|Info)|raphicsContext)|XML(?:Node|D(?:ocument|TD(?:Node)?)|Parser|Element)|M(?:iddleSpecifier|ov(?:ie(?:View)?|eCommand)|utable(?:S(?:tring|et)|C(?:haracterSet|opying)|IndexSet|D(?:ictionary|ata)|URLRequest|ParagraphStyle|A(?:ttributedString|rray))|e(?:ssagePort(?:NameServer)?|nu(?:Item(?:Cell)?|View)?|t(?:hodSignature|adata(?:Item|Query(?:ResultGroup|AttributeValueTuple)?)))|a(?:ch(?:BootstrapServer|Port)|trix))|B(?:itmapImageRep|ox|u(?:ndle|tton(?:Cell)?)|ezierPath|rowser(?:Cell)?)|S(?:hadow|c(?:anner|r(?:ipt(?:SuiteRegistry|C(?:o(?:ercionHandler|mmand(?:Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(?:er|View)|een))|t(?:epper(?:Cell)?|atus(?:Bar|Item)|r(?:ing|eam))|imple(?:HorizontalTypesetter|CString)|o(?:cketPort(?:NameServer)?|und|rtDescriptor)|p(?:e(?:cifierTest|ech(?:Recognizer|Synthesizer)|ll(?:Server|Checker))|litView)|e(?:cureTextField(?:Cell)?|t(?:Command)?|archField(?:Cell)?|rializer|gmentedC(?:ontrol|ell))|lider(?:Cell)?|avePanel)|H(?:ost|TTP(?:Cookie(?:Storage)?|URLResponse)|elpManager)|N(?:ib(?:Con(?:nector|trolConnector)|OutletConnector)?|otification(?:Center|Queue)?|u(?:ll|mber(?:Formatter)?)|etService(?:Browser)?|ameSpecifier)|C(?:ha(?:ngeSpelling|racterSet)|o(?:n(?:stantString|nection|trol(?:ler)?|ditionLock)|d(?:ing|er)|unt(?:Command|edSet)|pying|lor(?:Space|P(?:ick(?:ing(?:Custom|Default)|er)|anel)|Well|List)?|m(?:p(?:oundPredicate|arisonPredicate)|boBox(?:Cell)?))|u(?:stomImageRep|rsor)|IImageRep|ell|l(?:ipView|o(?:seCommand|neCommand)|assDescription)|a(?:ched(?:ImageRep|URLResponse)|lendar(?:Date)?)|reateCommand)|T(?:hread|ypesetter|ime(?:Zone|r)|o(?:olbar(?:Item(?:Validations)?)?|kenField(?:Cell)?)|ext(?:Block|Storage|Container|Tab(?:le(?:Block)?)?|Input|View|Field(?:Cell)?|List|Attachment(?:Cell)?)?|a(?:sk|b(?:le(?:Header(?:Cell|View)|Column|View)|View(?:Item)?))|reeController)|I(?:n(?:dex(?:S(?:pecifier|et)|Path)|put(?:Manager|S(?:tream|erv(?:iceProvider|er(?:MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(?:Rep|Cell|View)?)|O(?:ut(?:putStream|lineView)|pen(?:GL(?:Context|Pixel(?:Buffer|Format)|View)|Panel)|bj(?:CTypeSerializationCallBack|ect(?:Controller)?))|D(?:i(?:st(?:antObject(?:Request)?|ributed(?:NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(?:Controller)?|e(?:serializer|cimalNumber(?:Behaviors|Handler)?|leteCommand)|at(?:e(?:Components|Picker(?:Cell)?|Formatter)?|a)|ra(?:wer|ggingInfo))|U(?:ser(?:InterfaceValidations|Defaults(?:Controller)?)|RL(?:Re(?:sponse|quest)|Handle(?:Client)?|C(?:onnection|ache|redential(?:Storage)?)|Download(?:Delegate)?|Prot(?:ocol(?:Client)?|ectionSpace)|AuthenticationChallenge(?:Sender)?)?|n(?:iqueIDSpecifier|doManager|archiver))|P(?:ipe|o(?:sitionalSpecifier|pUpButton(?:Cell)?|rt(?:Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(?:steboard|nel|ragraphStyle|geLayout)|r(?:int(?:Info|er|Operation|Panel)|o(?:cessInfo|tocolChecker|perty(?:Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(?:numerator|vent|PSImageRep|rror|x(?:ception|istsCommand|pression))|V(?:iew(?:Animation)?|al(?:idated(?:ToobarItem|UserInterfaceItem)|ue(?:Transformer)?))|Keyed(?:Unarchiver|Archiver)|Qui(?:ckDrawView|tCommand)|F(?:ile(?:Manager|Handle|Wrapper)|o(?:nt(?:Manager|Descriptor|Panel)?|rm(?:Cell|atter)))|W(?:hoseSpecifier|indow(?:Controller)?|orkspace)|L(?:o(?:c(?:k(?:ing)?|ale)|gicalTest)|evelIndicator(?:Cell)?|ayoutManager)|A(?:ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(?:ication|e(?:Script|Event(?:Manager|Descriptor)))|ffineTransform|lert|r(?:chiver|ray(?:Controller)?))))(?:\\\\b)\"},{token:[\"support.type.cocoa.leopard\"],regex:\"(?:\\\\b)(NS(?:R(?:u(?:nLoop|ler(?:Marker|View))|e(?:sponder|cursiveLock|lativeSpecifier)|an(?:domSpecifier|geSpecifier))|G(?:etCommand|lyph(?:Generator|Storage|Info)|raphicsContext)|XML(?:Node|D(?:ocument|TD(?:Node)?)|Parser|Element)|M(?:iddleSpecifier|ov(?:ie(?:View)?|eCommand)|utable(?:S(?:tring|et)|C(?:haracterSet|opying)|IndexSet|D(?:ictionary|ata)|URLRequest|ParagraphStyle|A(?:ttributedString|rray))|e(?:ssagePort(?:NameServer)?|nu(?:Item(?:Cell)?|View)?|t(?:hodSignature|adata(?:Item|Query(?:ResultGroup|AttributeValueTuple)?)))|a(?:ch(?:BootstrapServer|Port)|trix))|B(?:itmapImageRep|ox|u(?:ndle|tton(?:Cell)?)|ezierPath|rowser(?:Cell)?)|S(?:hadow|c(?:anner|r(?:ipt(?:SuiteRegistry|C(?:o(?:ercionHandler|mmand(?:Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(?:er|View)|een))|t(?:epper(?:Cell)?|atus(?:Bar|Item)|r(?:ing|eam))|imple(?:HorizontalTypesetter|CString)|o(?:cketPort(?:NameServer)?|und|rtDescriptor)|p(?:e(?:cifierTest|ech(?:Recognizer|Synthesizer)|ll(?:Server|Checker))|litView)|e(?:cureTextField(?:Cell)?|t(?:Command)?|archField(?:Cell)?|rializer|gmentedC(?:ontrol|ell))|lider(?:Cell)?|avePanel)|H(?:ost|TTP(?:Cookie(?:Storage)?|URLResponse)|elpManager)|N(?:ib(?:Con(?:nector|trolConnector)|OutletConnector)?|otification(?:Center|Queue)?|u(?:ll|mber(?:Formatter)?)|etService(?:Browser)?|ameSpecifier)|C(?:ha(?:ngeSpelling|racterSet)|o(?:n(?:stantString|nection|trol(?:ler)?|ditionLock)|d(?:ing|er)|unt(?:Command|edSet)|pying|lor(?:Space|P(?:ick(?:ing(?:Custom|Default)|er)|anel)|Well|List)?|m(?:p(?:oundPredicate|arisonPredicate)|boBox(?:Cell)?))|u(?:stomImageRep|rsor)|IImageRep|ell|l(?:ipView|o(?:seCommand|neCommand)|assDescription)|a(?:ched(?:ImageRep|URLResponse)|lendar(?:Date)?)|reateCommand)|T(?:hread|ypesetter|ime(?:Zone|r)|o(?:olbar(?:Item(?:Validations)?)?|kenField(?:Cell)?)|ext(?:Block|Storage|Container|Tab(?:le(?:Block)?)?|Input|View|Field(?:Cell)?|List|Attachment(?:Cell)?)?|a(?:sk|b(?:le(?:Header(?:Cell|View)|Column|View)|View(?:Item)?))|reeController)|I(?:n(?:dex(?:S(?:pecifier|et)|Path)|put(?:Manager|S(?:tream|erv(?:iceProvider|er(?:MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(?:Rep|Cell|View)?)|O(?:ut(?:putStream|lineView)|pen(?:GL(?:Context|Pixel(?:Buffer|Format)|View)|Panel)|bj(?:CTypeSerializationCallBack|ect(?:Controller)?))|D(?:i(?:st(?:antObject(?:Request)?|ributed(?:NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(?:Controller)?|e(?:serializer|cimalNumber(?:Behaviors|Handler)?|leteCommand)|at(?:e(?:Components|Picker(?:Cell)?|Formatter)?|a)|ra(?:wer|ggingInfo))|U(?:ser(?:InterfaceValidations|Defaults(?:Controller)?)|RL(?:Re(?:sponse|quest)|Handle(?:Client)?|C(?:onnection|ache|redential(?:Storage)?)|Download(?:Delegate)?|Prot(?:ocol(?:Client)?|ectionSpace)|AuthenticationChallenge(?:Sender)?)?|n(?:iqueIDSpecifier|doManager|archiver))|P(?:ipe|o(?:sitionalSpecifier|pUpButton(?:Cell)?|rt(?:Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(?:steboard|nel|ragraphStyle|geLayout)|r(?:int(?:Info|er|Operation|Panel)|o(?:cessInfo|tocolChecker|perty(?:Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(?:numerator|vent|PSImageRep|rror|x(?:ception|istsCommand|pression))|V(?:iew(?:Animation)?|al(?:idated(?:ToobarItem|UserInterfaceItem)|ue(?:Transformer)?))|Keyed(?:Unarchiver|Archiver)|Qui(?:ckDrawView|tCommand)|F(?:ile(?:Manager|Handle|Wrapper)|o(?:nt(?:Manager|Descriptor|Panel)?|rm(?:Cell|atter)))|W(?:hoseSpecifier|indow(?:Controller)?|orkspace)|L(?:o(?:c(?:k(?:ing)?|ale)|gicalTest)|evelIndicator(?:Cell)?|ayoutManager)|A(?:ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(?:ication|e(?:Script|Event(?:Manager|Descriptor)))|ffineTransform|lert|r(?:chiver|ray(?:Controller)?))))(?:\\\\b)\"},{token:[\"support.class.quartz\"],regex:\"(?:\\\\b)(C(?:I(?:Sampler|Co(?:ntext|lor)|Image(?:Accumulator)?|PlugIn(?:Registration)?|Vector|Kernel|Filter(?:Generator|Shape)?)|A(?:Renderer|MediaTiming(?:Function)?|BasicAnimation|ScrollLayer|Constraint(?:LayoutManager)?|T(?:iledLayer|extLayer|rans(?:ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(?:nimation(?:Group)?|ction))))(?:\\\\b)\"},{token:[\"support.type.quartz\"],regex:\"(?:\\\\b)(C(?:G(?:Float|Point|Size|Rect)|IFormat|AConstraintAttribute))(?:\\\\b)\"},{token:[\"support.type.cocoa\"],regex:\"(?:\\\\b)(NS(?:R(?:ect(?:Edge)?|ange)|G(?:lyph(?:Relation|LayoutMode)?|radientType)|M(?:odalSession|a(?:trixMode|p(?:Table|Enumerator)))|B(?:itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(?:cr(?:oll(?:er(?:Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(?:Granularity|Direction|Affinity)|wapped(?:Double|Float)|aveOperationType)|Ha(?:sh(?:Table|Enumerator)|ndler(?:2)?)|C(?:o(?:ntrol(?:Size|Tint)|mp(?:ositingOperation|arisonResult))|ell(?:State|Type|ImagePosition|Attribute))|T(?:hreadPrivate|ypesetterGlyphInfo|i(?:ckMarkPosition|tlePosition|meInterval)|o(?:ol(?:TipTag|bar(?:SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(?:TabType|Alignment)|ab(?:State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(?:ContextAuxiliary|PixelFormatAuxiliary)|D(?:ocumentChangeType|atePickerElementFlags|ra(?:werState|gOperation))|UsableScrollerParts|P(?:oint|r(?:intingPageOrder|ogressIndicator(?:Style|Th(?:ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(?:nt(?:SymbolicTraits|TraitMask|Action)|cusRingType)|W(?:indow(?:OrderingMode|Depth)|orkspace(?:IconCreationOptions|LaunchOptions)|ritingDirection)|L(?:ineBreakMode|ayout(?:Status|Direction))|A(?:nimation(?:Progress|Effect)|ppl(?:ication(?:TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle)))(?:\\\\b)\"},{token:[\"support.constant.cocoa\"],regex:\"(?:\\\\b)(NS(?:NotFound|Ordered(?:Ascending|Descending|Same)))(?:\\\\b)\"},{token:[\"support.constant.notification.cocoa.leopard\"],regex:\"(?:\\\\b)(NS(?:MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification)(?:\\\\b)\"},{token:[\"support.constant.notification.cocoa\"],regex:\"(?:\\\\b)(NS(?:Menu(?:Did(?:RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(?:ystemColorsDidChange|plitView(?:DidResizeSubviews|WillResizeSubviews))|C(?:o(?:nt(?:extHelpModeDid(?:Deactivate|Activate)|rolT(?:intDidChange|extDid(?:BeginEditing|Change|EndEditing)))|lor(?:PanelColorDidChange|ListDidChange)|mboBox(?:Selection(?:IsChanging|DidChange)|Will(?:Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(?:oolbar(?:DidRemoveItem|WillAddItem)|ext(?:Storage(?:DidProcessEditing|WillProcessEditing)|Did(?:BeginEditing|Change|EndEditing)|View(?:DidChange(?:Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(?:Selection(?:IsChanging|DidChange)|ColumnDid(?:Resize|Move)))|ImageRepRegistryDidChange|OutlineView(?:Selection(?:IsChanging|DidChange)|ColumnDid(?:Resize|Move)|Item(?:Did(?:Collapse|Expand)|Will(?:Collapse|Expand)))|Drawer(?:Did(?:Close|Open)|Will(?:Close|Open))|PopUpButton(?:CellWillPopUp|WillPopUp)|View(?:GlobalFrameDidChange|BoundsDidChange|F(?:ocusDidChange|rameDidChange))|FontSetChanged|W(?:indow(?:Did(?:Resi(?:ze|gn(?:Main|Key))|M(?:iniaturize|ove)|Become(?:Main|Key)|ChangeScreen(?:|Profile)|Deminiaturize|Update|E(?:ndSheet|xpose))|Will(?:M(?:iniaturize|ove)|BeginSheet|Close))|orkspace(?:SessionDid(?:ResignActive|BecomeActive)|Did(?:Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(?:Sleep|Unmount|PowerOff|LaunchApplication)))|A(?:ntialiasThresholdChanged|ppl(?:ication(?:Did(?:ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(?:nhide|pdate)|FinishLaunching)|Will(?:ResignActive|BecomeActive|Hide|Terminate|U(?:nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification)(?:\\\\b)\"},{token:[\"support.constant.cocoa.leopard\"],regex:\"(?:\\\\b)(NS(?:RuleEditor(?:RowType(?:Simple|Compound)|NestingMode(?:Si(?:ngle|mple)|Compound|List))|GradientDraws(?:BeforeStartingLocation|AfterEndingLocation)|M(?:inusSetExpressionType|a(?:chPortDeallocate(?:ReceiveRight|SendRight|None)|pTable(?:StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(?:oxCustom|undleExecutableArchitecture(?:X86|I386|PPC(?:64)?)|etweenPredicateOperatorType|ackgroundStyle(?:Raised|Dark|L(?:ight|owered)))|S(?:tring(?:DrawingTruncatesLastVisibleLine|EncodingConversion(?:ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(?:e(?:ech(?:SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(?:GrammarFlag|SpellingFlag))|litViewDividerStyleThi(?:n|ck))|e(?:rvice(?:RequestTimedOutError|M(?:iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(?:inimum|aximum)|Application(?:NotFoundError|LaunchFailedError))|gmentStyle(?:Round(?:Rect|ed)|SmallSquare|Capsule|Textured(?:Rounded|Square)|Automatic)))|H(?:UDWindowMask|ashTable(?:StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(?:oModeColorPanel|etServiceNoAutoRename)|C(?:hangeRedone|o(?:ntainsPredicateOperatorType|l(?:orRenderingIntent(?:RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(?:None|ContentArea|TrackableArea|EditableTextArea))|T(?:imeZoneNameStyle(?:S(?:hort(?:Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(?:Regular|SourceList)|racking(?:Mouse(?:Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(?:ssumeInside|ctive(?:In(?:KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(?:n(?:tersectSetExpressionType|dexedColorSpaceModel)|mageScale(?:None|Proportionally(?:Down|UpOrDown)|AxesIndependently))|Ope(?:nGLPFAAllowOfflineRenderers|rationQueue(?:DefaultMaxConcurrentOperationCount|Priority(?:High|Normal|Very(?:High|Low)|Low)))|D(?:iacriticInsensitiveSearch|ownloadsDirectory)|U(?:nionSetExpressionType|TF(?:16(?:BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(?:BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(?:ointerFunctions(?:Ma(?:chVirtualMemory|llocMemory)|Str(?:ongMemory|uctPersonality)|C(?:StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(?:paque(?:Memory|Personality)|bjectP(?:ointerPersonality|ersonality)))|at(?:hStyle(?:Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(?:Scaling|Copies|Orientation|P(?:a(?:perSize|ge(?:Range|SetupAccessory))|review)))|Executable(?:RuntimeMismatchError|NotLoadableError|ErrorM(?:inimum|aximum)|L(?:inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(?:Initial|Prior)|F(?:i(?:ndPanelSubstringMatchType(?:StartsWith|Contains|EndsWith|FullWord)|leRead(?:TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(?:ndow(?:BackingLocation(?:MainMemory|Default|VideoMemory)|Sharing(?:Read(?:Only|Write)|None)|CollectionBehavior(?:MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType))(?:\\\\b)\"},{token:[\"support.constant.cocoa\"],regex:\"(?:\\\\b)(NS(?:R(?:GB(?:ModeColorPanel|ColorSpaceModel)|ight(?:Mouse(?:D(?:own(?:Mask)?|ragged(?:Mask)?)|Up(?:Mask)?)|T(?:ext(?:Movement|Alignment)|ab(?:sBezelBorder|StopType))|ArrowFunctionKey)|ound(?:RectBezelStyle|Bankers|ed(?:BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(?:CapStyle|JoinStyle))|un(?:StoppedResponse|ContinuesResponse|AbortedResponse)|e(?:s(?:izableWindowMask|et(?:CursorRectsRunLoopOrdering|FunctionKey))|ce(?:ssedBezelStyle|iver(?:sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(?:evancyLevelIndicatorStyle|ative(?:Before|After))|gular(?:SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(?:n(?:domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(?:ModeMatrix|Button)))|G(?:IFFileType|lyph(?:Below|Inscribe(?:B(?:elow|ase)|Over(?:strike|Below)|Above)|Layout(?:WithPrevious|A(?:tAPoint|gainstAPoint))|A(?:ttribute(?:BidiLevel|Soft|Inscribe|Elastic)|bove))|r(?:ooveBorder|eaterThan(?:Comparison|OrEqualTo(?:Comparison|PredicateOperatorType)|PredicateOperatorType)|a(?:y(?:ModeColorPanel|ColorSpaceModel)|dient(?:None|Con(?:cave(?:Strong|Weak)|vex(?:Strong|Weak)))|phiteControlTint)))|XML(?:N(?:o(?:tationDeclarationKind|de(?:CompactEmptyElement|IsCDATA|OptionsNone|Use(?:SingleQuotes|DoubleQuotes)|Pre(?:serve(?:NamespaceOrder|C(?:haracterReferences|DATA)|DTD|Prefixes|E(?:ntities|mptyElements)|Quotes|Whitespace|A(?:ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(?:ocument(?:X(?:MLKind|HTMLKind|Include)|HTMLKind|T(?:idy(?:XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(?:arser(?:GTRequiredError|XMLDeclNot(?:StartedError|FinishedError)|Mi(?:splaced(?:XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(?:StartedError|FinishedError))|S(?:t(?:andaloneValueError|ringNot(?:StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(?:MTOKENRequiredError|o(?:t(?:ationNot(?:StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(?:haracterRef(?:In(?:DTDError|PrologError|EpilogError)|AtEOFError)|o(?:nditionalSectionNot(?:StartedError|FinishedError)|mment(?:NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(?:ternalError|valid(?:HexCharacterRefError|C(?:haracter(?:RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(?:NameError|Error)))|OutOfMemoryError|D(?:ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(?:RI(?:RequiredError|FragmentError)|n(?:declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(?:CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(?:MissingSemiError|NoNameError|In(?:Internal(?:SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(?:ocessingInstructionNot(?:StartedError|FinishedError)|ematureDocumentEndError))|E(?:n(?:codingNotSupportedError|tity(?:Ref(?:In(?:DTDError|PrologError|EpilogError)|erence(?:MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(?:StartedError|FinishedError)|Is(?:ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(?:StartedError|FinishedError)|xt(?:ernalS(?:tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(?:iteralNot(?:StartedError|FinishedError)|T(?:RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(?:RedefinedError|HasNoValueError|Not(?:StartedError|FinishedError)|ListNot(?:StartedError|FinishedError)))|rocessingInstructionKind)|E(?:ntity(?:GeneralKind|DeclarationKind|UnparsedKind|P(?:ar(?:sedKind|ameterKind)|redefined))|lement(?:Declaration(?:MixedKind|UndefinedKind|E(?:lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(?:N(?:MToken(?:sKind|Kind)|otationKind)|CDATAKind|ID(?:Ref(?:sKind|Kind)|Kind)|DeclarationKind|En(?:tit(?:yKind|iesKind)|umerationKind)|Kind))|M(?:i(?:n(?:XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(?:nthCalendarUnit|deSwitchFunctionKey|use(?:Moved(?:Mask)?|E(?:ntered(?:Mask)?|ventSubtype|xited(?:Mask)?))|veToBezierPathElement|mentary(?:ChangeButton|Push(?:Button|InButton)|Light(?:Button)?))|enuFunctionKey|a(?:c(?:intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(?:XEdge|YEdge))|ACHOperatingSystem)|B(?:MPFileType|o(?:ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(?:Se(?:condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(?:zelBorder|velLineJoinStyle|low(?:Bottom|Top)|gin(?:sWith(?:Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(?:spaceCharacter|tabTextMovement|ingStore(?:Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(?:owser(?:NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(?:h(?:ift(?:JISStringEncoding|KeyMask)|ow(?:ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(?:s(?:ReqFunctionKey|tem(?:D(?:omainMask|efined(?:Mask)?)|FunctionKey))|mbolStringEncoding)|c(?:a(?:nnedOption|le(?:None|ToFit|Proportionally))|r(?:oll(?:er(?:NoPart|Increment(?:Page|Line|Arrow)|Decrement(?:Page|Line|Arrow)|Knob(?:Slot)?|Arrows(?:M(?:inEnd|axEnd)|None|DefaultSetting))|Wheel(?:Mask)?|LockFunctionKey)|eenChangedEventType))|t(?:opFunctionKey|r(?:ingDrawing(?:OneShot|DisableScreenFontSubstitution|Uses(?:DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(?:Status(?:Reading|NotOpen|Closed|Open(?:ing)?|Error|Writing|AtEnd)|Event(?:Has(?:BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(?:ndEncountered|rrorOccurred)))))|i(?:ngle(?:DateMode|UnderlineStyle)|ze(?:DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(?:condCalendarUnit|lect(?:By(?:Character|Paragraph|Word)|i(?:ng(?:Next|Previous)|onAffinity(?:Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(?:Momentary|Select(?:One|Any)))|quareLineCapStyle|witchButton|ave(?:ToOperation|Op(?:tions(?:Yes|No|Ask)|eration)|AsOperation)|mall(?:SquareBezelStyle|C(?:ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(?:ighlightModeMatrix|SBModeColorPanel|o(?:ur(?:Minute(?:SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(?:Never|OnlyFromMainDocumentDomain|Always)|e(?:lp(?:ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(?:MonthDa(?:yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(?:o(?:n(?:StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(?:ification(?:SuspensionBehavior(?:Hold|Coalesce|D(?:eliverImmediately|rop))|NoCoalescing|CoalescingOn(?:Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(?:cr(?:iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(?:itle|opLevelContainersSpecifierError|abs(?:BezelBorder|NoBorder|LineBorder))|I(?:nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(?:ll(?:Glyph|CellType)|m(?:eric(?:Search|PadKeyMask)|berFormatter(?:Round(?:Half(?:Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(?:10|Default)|S(?:cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(?:ercentStyle|ad(?:Before(?:Suffix|Prefix)|After(?:Suffix|Prefix))))))|e(?:t(?:Services(?:BadArgumentError|NotFoundError|C(?:ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(?:StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(?:t(?:iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(?:hange(?:ReadOtherContents|GrayCell(?:Mask)?|BackgroundCell(?:Mask)?|Cleared|Done|Undone|Autosaved)|MYK(?:ModeColorPanel|ColorSpaceModel)|ircular(?:BezelStyle|Slider)|o(?:n(?:stantValueExpressionType|t(?:inuousCapacityLevelIndicatorStyle|entsCellMask|ain(?:sComparison|erSpecifierError)|rol(?:Glyph|KeyMask))|densedFontMask)|lor(?:Panel(?:RGBModeMask|GrayModeMask|HSBModeMask|C(?:MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(?:p(?:osite(?:XOR|Source(?:In|O(?:ut|ver)|Atop)|Highlight|C(?:opy|lear)|Destination(?:In|O(?:ut|ver)|Atop)|Plus(?:Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(?:stom(?:SelectorPredicateOperatorType|PaletteModeColorPanel)|r(?:sor(?:Update(?:Mask)?|PointingDevice)|veToBezierPathElement))|e(?:nterT(?:extAlignment|abStopType)|ll(?:State|H(?:ighlighted|as(?:Image(?:Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(?:Bordered|InsetButton)|Disabled|Editable|LightsBy(?:Gray|Background|Contents)|AllowsMixedState))|l(?:ipPagination|o(?:s(?:ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(?:ControlTint|DisplayFunctionKey|LineFunctionKey))|a(?:seInsensitive(?:Search|PredicateOption)|n(?:notCreateScriptCommandError|cel(?:Button|TextMovement))|chesDirectory|lculation(?:NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(?:itical(?:Request|AlertStyle)|ayonModeColorPanel))|T(?:hick(?:SquareBezelStyle|erSquareBezelStyle)|ypesetter(?:Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(?:ineBreakAction|atestBehavior))|i(?:ckMark(?:Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(?:olbarItemVisibilityPriority(?:Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(?:Compression(?:N(?:one|EXT)|CCITTFAX(?:3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(?:rminate(?:Now|Cancel|Later)|xt(?:Read(?:InapplicableDocumentTypeError|WriteErrorM(?:inimum|aximum))|Block(?:M(?:i(?:nimum(?:Height|Width)|ddleAlignment)|a(?:rgin|ximum(?:Height|Width)))|B(?:o(?:ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(?:ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(?:Characters|Attributes)|CellType|ured(?:RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(?:FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(?:RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(?:Character|TextMovement|le(?:tP(?:oint(?:Mask|EventSubtype)?|roximity(?:Mask|EventSubtype)?)|Column(?:NoResizing|UserResizingMask|AutoresizingMask)|View(?:ReverseSequentialColumnAutoresizingStyle|GridNone|S(?:olid(?:HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(?:n(?:sert(?:CharFunctionKey|FunctionKey|LineFunctionKey)|t(?:Type|ernalS(?:criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(?:Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(?:2022JPStringEncoding|Latin(?:1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(?:R(?:ight|ep(?:MatchesDevice|LoadStatus(?:ReadingHeader|Completed|InvalidData|Un(?:expectedEOF|knownType)|WillNeedAllData)))|Below|C(?:ellType|ache(?:BySize|Never|Default|Always))|Interpolation(?:High|None|Default|Low)|O(?:nly|verlaps)|Frame(?:Gr(?:oove|ayBezel)|Button|None|Photo)|L(?:oadStatus(?:ReadError|C(?:ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(?:lign(?:Right|Bottom(?:Right|Left)?|Center|Top(?:Right|Left)?|Left)|bove)))|O(?:n(?:State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(?:Mouse(?:D(?:own(?:Mask)?|ragged(?:Mask)?)|Up(?:Mask)?)|TextMovement)|SF1OperatingSystem|pe(?:n(?:GL(?:GO(?:Re(?:setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(?:R(?:obust|endererID)|M(?:inimumPolicy|ulti(?:sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(?:creenMask|te(?:ncilSize|reo)|ingleRenderer|upersample|ample(?:s|Buffers|Alpha))|NoRecovery|C(?:o(?:lor(?:Size|Float)|mpliant)|losestPolicy)|OffScreen|D(?:oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(?:cc(?:umSize|elerated)|ux(?:Buffers|DepthStencil)|l(?:phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(?:criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(?:B(?:itfield|oolType)|S(?:hortType|tr(?:ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(?:Type|longType)|ArrayType))|D(?:i(?:s(?:c(?:losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(?:Selection|PredicateModifier))|o(?:c(?:ModalWindowMask|ument(?:Directory|ationDirectory))|ubleType|wn(?:TextMovement|ArrowFunctionKey))|e(?:s(?:cendingPageOrder|ktopDirectory)|cimalTabStopType|v(?:ice(?:NColorSpaceModel|IndependentModifierFlagsMask)|eloper(?:Directory|ApplicationDirectory))|fault(?:ControlTint|TokenStyle)|lete(?:Char(?:acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(?:yCalendarUnit|teFormatter(?:MediumStyle|Behavior(?:10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(?:wer(?:Clos(?:ingState|edState)|Open(?:ingState|State))|gOperation(?:Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(?:ser(?:CancelledError|D(?:irectory|omainMask)|FunctionKey)|RL(?:Handle(?:NotLoaded|Load(?:Succeeded|InProgress|Failed))|CredentialPersistence(?:None|Permanent|ForSession))|n(?:scaledWindowMask|cachedRead|i(?:codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(?:o(?:CloseGroupingRunLoopOrdering|FunctionKey)|e(?:finedDateComponent|rline(?:Style(?:Single|None|Thick|Double)|Pattern(?:Solid|D(?:ot|ash(?:Dot(?:Dot)?)?)))))|known(?:ColorSpaceModel|P(?:ointingDevice|ageOrder)|KeyS(?:criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(?:dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(?:ustifiedTextAlignment|PEG(?:2000FileType|FileType)|apaneseEUC(?:GlyphPacking|StringEncoding))|P(?:o(?:s(?:t(?:Now|erFontMask|WhenIdle|ASAP)|iti(?:on(?:Replace|Be(?:fore|ginning)|End|After)|ve(?:IntType|DoubleType|FloatType)))|pUp(?:NoArrow|ArrowAt(?:Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(?:InCell(?:Mask)?|OnPushOffButton)|e(?:n(?:TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(?:Mask)?)|P(?:S(?:caleField|tatus(?:Title|Field)|aveButton)|N(?:ote(?:Title|Field)|ame(?:Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(?:a(?:perFeedButton|ge(?:Range(?:To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(?:useFunctionKey|ragraphSeparatorCharacter|ge(?:DownFunctionKey|UpFunctionKey))|r(?:int(?:ing(?:ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(?:NotFound|OK|Error)|FunctionKey)|o(?:p(?:ertyList(?:XMLFormat|MutableContainers(?:AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(?:BarStyle|SpinningStyle|Preferred(?:SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(?:ssedTab|vFunctionKey))|L(?:HeightForm|CancelButton|TitleField|ImageButton|O(?:KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(?:n(?:terCharacter|d(?:sWith(?:Comparison|PredicateOperatorType)|FunctionKey))|v(?:e(?:nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(?:Comparison|PredicateOperatorType)|ra(?:serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(?:clude(?:10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(?:i(?:ew(?:M(?:in(?:XMargin|YMargin)|ax(?:XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(?:lidationErrorM(?:inimum|aximum)|riableExpressionType))|Key(?:SpecifierEvaluationScriptError|Down(?:Mask)?|Up(?:Mask)?|PathExpressionType|Value(?:MinusSetMutation|SetSetMutation|Change(?:Re(?:placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(?:New|Old)|UnionSetMutation|ValidationError))|QTMovie(?:NormalPlayback|Looping(?:BackAndForthPlayback|Playback))|F(?:1(?:1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(?:nd(?:PanelAction(?:Replace(?:A(?:ndFind|ll(?:InSelection)?))?|S(?:howFindPanel|e(?:tFindString|lectAll(?:InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(?:Read(?:No(?:SuchFileError|PermissionError)|CorruptFileError|In(?:validFileNameError|applicableStringEncodingError)|Un(?:supportedSchemeError|knownError))|HandlingPanel(?:CancelButton|OKButton)|NoSuchFileError|ErrorM(?:inimum|aximum)|Write(?:NoPermissionError|In(?:validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(?:supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(?:1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(?:nt(?:Mo(?:noSpaceTrait|dernSerifsClass)|BoldTrait|S(?:ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(?:o(?:ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(?:ntegerAdvancementsRenderingMode|talicTrait)|O(?:ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(?:nknownClass|IOptimizedTrait)|Panel(?:S(?:hadowEffectModeMask|t(?:andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(?:ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(?:amilyClassMask|reeformSerifsClass)|Antialiased(?:RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(?:Below|Type(?:None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(?:attingError(?:M(?:inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(?:ExpressionType|KeyMask)|3(?:1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(?:RevertButton|S(?:ize(?:Title|Field)|etButton)|CurrentField|Preview(?:Button|Field))|l(?:oat(?:ingPointSamplesBitmapFormat|Type)|agsChanged(?:Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(?:heelModeColorPanel|indow(?:s(?:NTOperatingSystem|CP125(?:1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(?:InterfaceStyle|OperatingSystem))|M(?:iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(?:NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(?:ctivation|ddingToRecents)|A(?:sync|nd(?:Hide(?:Others)?|Print)|llowingClassicStartup))|eek(?:day(?:CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(?:ntsBidiLevels|rningAlertStyle)|r(?:itingDirection(?:RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(?:i(?:stModeMatrix|ne(?:Moves(?:Right|Down|Up|Left)|B(?:order|reakBy(?:C(?:harWrapping|lipping)|Truncating(?:Middle|Head|Tail)|WordWrapping))|S(?:eparatorCharacter|weep(?:Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(?:ssThan(?:Comparison|OrEqualTo(?:Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(?:Mouse(?:D(?:own(?:Mask)?|ragged(?:Mask)?)|Up(?:Mask)?)|T(?:ext(?:Movement|Alignment)|ab(?:sBezelBorder|StopType))|ArrowFunctionKey))|a(?:yout(?:RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(?:sc(?:iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(?:y(?:Type|PredicateModifier|EventMask)|choredSearch|imation(?:Blocking|Nonblocking(?:Threaded)?|E(?:ffect(?:DisappearingItemDefault|Poof)|ase(?:In(?:Out)?|Out))|Linear)|dPredicateType)|t(?:Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(?:obe(?:GB1CharacterCollection|CNS1CharacterCollection|Japan(?:1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(?:saveOperation|Pagination)|pp(?:lication(?:SupportDirectory|D(?:irectory|e(?:fined(?:Mask)?|legateReply(?:Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(?:Mask)?)|l(?:ternateKeyMask|pha(?:ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(?:SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(?:ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(?:sWrongScriptError|EvaluationScriptError)|bove(?:Bottom|Top)|WTEventType)))(?:\\\\b)\"},{token:\"support.function.C99.c\",regex:s.cFunctions},{token:n.getKeywords(),regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"punctuation.section.scope.begin.objc\",regex:\"\\\\[\",next:\"bracketed_content\"},{token:\"meta.function.objc\",regex:\"^(?:-|\\\\+)\\\\s*\"}],constant_NSString:[{token:\"constant.character.escape.objc\",regex:e},{token:\"invalid.illegal.unknown-escape.objc\",regex:\"\\\\\\\\.\"},{token:\"string\",regex:'[^\"\\\\\\\\]+'},{token:\"punctuation.definition.string.end\",regex:'\"',next:\"start\"}],protocol_list:[{token:\"punctuation.section.scope.end.objc\",regex:\">\",next:\"start\"},{token:\"support.other.protocol.objc\",regex:\"\\bNS(?:GlyphStorage|M(?:utableCopying|enuItem)|C(?:hangeSpelling|o(?:ding|pying|lorPicking(?:Custom|Default)))|T(?:oolbarItemValidations|ext(?:Input|AttachmentCell))|I(?:nputServ(?:iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(?:CTypeSerializationCallBack|ect)|D(?:ecimalNumberBehaviors|raggingInfo)|U(?:serInterfaceValidations|RL(?:HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(?:ToobarItem|UserInterfaceItem)|Locking)\\b\"}],selectors:[{token:\"support.function.any-method.name-of-parameter.objc\",regex:\"\\\\b(?:[a-zA-Z_:][\\\\w]*)+\"},{token:\"punctuation\",regex:\"\\\\)\",next:\"start\"}],bracketed_content:[{token:\"punctuation.section.scope.end.objc\",regex:\"]\",next:\"start\"},{token:[\"support.function.any-method.objc\"],regex:\"(?:predicateWithFormat:| NSPredicate predicateWithFormat:)\",next:\"start\"},{token:\"support.function.any-method.objc\",regex:\"\\\\w+(?::|(?=]))\",next:\"start\"}],bracketed_strings:[{token:\"punctuation.section.scope.end.objc\",regex:\"]\",next:\"start\"},{token:\"keyword.operator.logical.predicate.cocoa\",regex:\"\\\\b(?:AND|OR|NOT|IN)\\\\b\"},{token:[\"invalid.illegal.unknown-method.objc\",\"punctuation.separator.arguments.objc\"],regex:\"\\\\b(w+)(:)\"},{regex:\"\\\\b(?:ALL|ANY|SOME|NONE)\\\\b\",token:\"constant.language.predicate.cocoa\"},{regex:\"\\\\b(?:NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\\\b\",token:\"constant.language.predicate.cocoa\"},{regex:\"\\\\b(?:MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\\\b\",token:\"keyword.operator.comparison.predicate.cocoa\"},{regex:\"\\\\bC(?:ASEINSENSITIVE|I)\\\\b\",token:\"keyword.other.modifier.predicate.cocoa\"},{regex:\"\\\\b(?:ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\\\b\",token:\"keyword.other.predicate.cocoa\"},{regex:e,token:\"constant.character.escape.objc\"},{regex:\"\\\\\\\\.\",token:\"invalid.illegal.unknown-escape.objc\"},{token:\"string\",regex:'[^\"\\\\\\\\]'},{token:\"punctuation.definition.string.end.objc\",regex:'\"',next:\"predicates\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],methods:[{token:\"meta.function.objc\",regex:\"(?=\\\\{|#)|;\",next:\"start\"}]};for(var u in r)this.$rules[u]?this.$rules[u].push&&this.$rules[u].push.apply(this.$rules[u],r[u]):this.$rules[u]=r[u];this.$rules.bracketed_content=this.$rules.bracketed_content.concat(this.$rules.start,t),this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(u,o),t.ObjectiveCHighlightRules=u}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/objectivec\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/objectivec_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./objectivec_highlight_rules\").ObjectiveCHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/objectivec\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-ocaml.js",
    "content": "ace.define(\"ace/mode/ocaml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|or|private|rec|sig|struct|then|to|try|type|val|virtual|when|while|with\",t=\"true|false\",n=\"abs|abs_big_int|abs_float|abs_num|abstract_tag|accept|access|acos|add|add_available_units|add_big_int|add_buffer|add_channel|add_char|add_initializer|add_int_big_int|add_interfaces|add_num|add_string|add_substitute|add_substring|alarm|allocated_bytes|allow_only|allow_unsafe_modules|always|append|appname_get|appname_set|approx_num_exp|approx_num_fix|arg|argv|arith_status|array|array1_of_genarray|array2_of_genarray|array3_of_genarray|asin|asr|assoc|assq|at_exit|atan|atan2|auto_synchronize|background|basename|beginning_of_input|big_int_of_int|big_int_of_num|big_int_of_string|bind|bind_class|bind_tag|bits|bits_of_float|black|blit|blit_image|blue|bool|bool_of_string|bounded_full_split|bounded_split|bounded_split_delim|bprintf|break|broadcast|bscanf|button_down|c_layout|capitalize|cardinal|cardinal|catch|catch_break|ceil|ceiling_num|channel|char|char_of_int|chdir|check|check_suffix|chmod|choose|chop_extension|chop_suffix|chown|chown|chr|chroot|classify_float|clear|clear_available_units|clear_close_on_exec|clear_graph|clear_nonblock|clear_parser|close|close|closeTk|close_box|close_graph|close_in|close_in_noerr|close_out|close_out_noerr|close_process|close_process|close_process_full|close_process_in|close_process_out|close_subwindow|close_tag|close_tbox|closedir|closedir|closure_tag|code|combine|combine|combine|command|compact|compare|compare_big_int|compare_num|complex32|complex64|concat|conj|connect|contains|contains_from|contents|copy|cos|cosh|count|count|counters|create|create_alarm|create_image|create_matrix|create_matrix|create_matrix|create_object|create_object_and_run_initializers|create_object_opt|create_process|create_process|create_process_env|create_process_env|create_table|current|current_dir_name|current_point|current_x|current_y|curveto|custom_tag|cyan|data_size|decr|decr_num|default_available_units|delay|delete_alarm|descr_of_in_channel|descr_of_out_channel|destroy|diff|dim|dim1|dim2|dim3|dims|dirname|display_mode|div|div_big_int|div_num|double_array_tag|double_tag|draw_arc|draw_char|draw_circle|draw_ellipse|draw_image|draw_poly|draw_poly_line|draw_rect|draw_segments|draw_string|dummy_pos|dummy_table|dump_image|dup|dup2|elements|empty|end_of_input|environment|eprintf|epsilon_float|eq_big_int|eq_num|equal|err_formatter|error_message|escaped|establish_server|executable_name|execv|execve|execvp|execvpe|exists|exists2|exit|exp|failwith|fast_sort|fchmod|fchown|field|file|file_exists|fill|fill_arc|fill_circle|fill_ellipse|fill_poly|fill_rect|filter|final_tag|finalise|find|find_all|first_chars|firstkey|flatten|float|float32|float64|float_of_big_int|float_of_bits|float_of_int|float_of_num|float_of_string|floor|floor_num|flush|flush_all|flush_input|flush_str_formatter|fold|fold_left|fold_left2|fold_right|fold_right2|for_all|for_all2|force|force_newline|force_val|foreground|fork|format_of_string|formatter_of_buffer|formatter_of_out_channel|fortran_layout|forward_tag|fprintf|frexp|from|from_channel|from_file|from_file_bin|from_function|from_string|fscanf|fst|fstat|ftruncate|full_init|full_major|full_split|gcd_big_int|ge_big_int|ge_num|genarray_of_array1|genarray_of_array2|genarray_of_array3|get|get_all_formatter_output_functions|get_approx_printing|get_copy|get_ellipsis_text|get_error_when_null_denominator|get_floating_precision|get_formatter_output_functions|get_formatter_tag_functions|get_image|get_margin|get_mark_tags|get_max_boxes|get_max_indent|get_method|get_method_label|get_normalize_ratio|get_normalize_ratio_when_printing|get_print_tags|get_state|get_variable|getcwd|getegid|getegid|getenv|getenv|getenv|geteuid|geteuid|getgid|getgid|getgrgid|getgrgid|getgrnam|getgrnam|getgroups|gethostbyaddr|gethostbyname|gethostname|getitimer|getlogin|getpeername|getpid|getppid|getprotobyname|getprotobynumber|getpwnam|getpwuid|getservbyname|getservbyport|getsockname|getsockopt|getsockopt_float|getsockopt_int|getsockopt_optint|gettimeofday|getuid|global_replace|global_substitute|gmtime|green|grid|group_beginning|group_end|gt_big_int|gt_num|guard|handle_unix_error|hash|hash_param|hd|header_size|i|id|ignore|in_channel_length|in_channel_of_descr|incr|incr_num|index|index_from|inet_addr_any|inet_addr_of_string|infinity|infix_tag|init|init_class|input|input_binary_int|input_byte|input_char|input_line|input_value|int|int16_signed|int16_unsigned|int32|int64|int8_signed|int8_unsigned|int_of_big_int|int_of_char|int_of_float|int_of_num|int_of_string|integer_num|inter|interactive|inv|invalid_arg|is_block|is_empty|is_implicit|is_int|is_int_big_int|is_integer_num|is_relative|iter|iter2|iteri|join|junk|key_pressed|kill|kind|kprintf|kscanf|land|last_chars|layout|lazy_from_fun|lazy_from_val|lazy_is_val|lazy_tag|ldexp|le_big_int|le_num|length|lexeme|lexeme_char|lexeme_end|lexeme_end_p|lexeme_start|lexeme_start_p|lineto|link|list|listen|lnot|loadfile|loadfile_private|localtime|lock|lockf|log|log10|logand|lognot|logor|logxor|lor|lower_window|lowercase|lseek|lsl|lsr|lstat|lt_big_int|lt_num|lxor|magenta|magic|mainLoop|major|major_slice|make|make_formatter|make_image|make_lexer|make_matrix|make_self_init|map|map2|map_file|mapi|marshal|match_beginning|match_end|matched_group|matched_string|max|max_array_length|max_big_int|max_elt|max_float|max_int|max_num|max_string_length|mem|mem_assoc|mem_assq|memq|merge|min|min_big_int|min_elt|min_float|min_int|min_num|minor|minus_big_int|minus_num|minus_one|mkdir|mkfifo|mktime|mod|mod_big_int|mod_float|mod_num|modf|mouse_pos|moveto|mul|mult_big_int|mult_int_big_int|mult_num|nan|narrow|nat_of_num|nativeint|neg|neg_infinity|new_block|new_channel|new_method|new_variable|next|nextkey|nice|nice|no_scan_tag|norm|norm2|not|npeek|nth|nth_dim|num_digits_big_int|num_dims|num_of_big_int|num_of_int|num_of_nat|num_of_ratio|num_of_string|O|obj|object_tag|ocaml_version|of_array|of_channel|of_float|of_int|of_int32|of_list|of_nativeint|of_string|one|openTk|open_box|open_connection|open_graph|open_hbox|open_hovbox|open_hvbox|open_in|open_in_bin|open_in_gen|open_out|open_out_bin|open_out_gen|open_process|open_process_full|open_process_in|open_process_out|open_subwindow|open_tag|open_tbox|open_temp_file|open_vbox|opendbm|opendir|openfile|or|os_type|out_channel_length|out_channel_of_descr|output|output_binary_int|output_buffer|output_byte|output_char|output_string|output_value|over_max_boxes|pack|params|parent_dir_name|parse|parse_argv|partition|pause|peek|pipe|pixels|place|plot|plots|point_color|polar|poll|pop|pos_in|pos_out|pow|power_big_int_positive_big_int|power_big_int_positive_int|power_int_positive_big_int|power_int_positive_int|power_num|pp_close_box|pp_close_tag|pp_close_tbox|pp_force_newline|pp_get_all_formatter_output_functions|pp_get_ellipsis_text|pp_get_formatter_output_functions|pp_get_formatter_tag_functions|pp_get_margin|pp_get_mark_tags|pp_get_max_boxes|pp_get_max_indent|pp_get_print_tags|pp_open_box|pp_open_hbox|pp_open_hovbox|pp_open_hvbox|pp_open_tag|pp_open_tbox|pp_open_vbox|pp_over_max_boxes|pp_print_as|pp_print_bool|pp_print_break|pp_print_char|pp_print_cut|pp_print_float|pp_print_flush|pp_print_if_newline|pp_print_int|pp_print_newline|pp_print_space|pp_print_string|pp_print_tab|pp_print_tbreak|pp_set_all_formatter_output_functions|pp_set_ellipsis_text|pp_set_formatter_out_channel|pp_set_formatter_output_functions|pp_set_formatter_tag_functions|pp_set_margin|pp_set_mark_tags|pp_set_max_boxes|pp_set_max_indent|pp_set_print_tags|pp_set_tab|pp_set_tags|pred|pred_big_int|pred_num|prerr_char|prerr_endline|prerr_float|prerr_int|prerr_newline|prerr_string|print|print_as|print_bool|print_break|print_char|print_cut|print_endline|print_float|print_flush|print_if_newline|print_int|print_newline|print_space|print_stat|print_string|print_tab|print_tbreak|printf|prohibit|public_method_label|push|putenv|quo_num|quomod_big_int|quote|raise|raise_window|ratio_of_num|rcontains_from|read|read_float|read_int|read_key|read_line|readdir|readdir|readlink|really_input|receive|recv|recvfrom|red|ref|regexp|regexp_case_fold|regexp_string|regexp_string_case_fold|register|register_exception|rem|remember_mode|remove|remove_assoc|remove_assq|rename|replace|replace_first|replace_matched|repr|reset|reshape|reshape_1|reshape_2|reshape_3|rev|rev_append|rev_map|rev_map2|rewinddir|rgb|rhs_end|rhs_end_pos|rhs_start|rhs_start_pos|rindex|rindex_from|rlineto|rmdir|rmoveto|round_num|run_initializers|run_initializers_opt|scanf|search_backward|search_forward|seek_in|seek_out|select|self|self_init|send|sendto|set|set_all_formatter_output_functions|set_approx_printing|set_binary_mode_in|set_binary_mode_out|set_close_on_exec|set_close_on_exec|set_color|set_ellipsis_text|set_error_when_null_denominator|set_field|set_floating_precision|set_font|set_formatter_out_channel|set_formatter_output_functions|set_formatter_tag_functions|set_line_width|set_margin|set_mark_tags|set_max_boxes|set_max_indent|set_method|set_nonblock|set_nonblock|set_normalize_ratio|set_normalize_ratio_when_printing|set_print_tags|set_signal|set_state|set_tab|set_tag|set_tags|set_text_size|set_window_title|setgid|setgid|setitimer|setitimer|setsid|setsid|setsockopt|setsockopt|setsockopt_float|setsockopt_float|setsockopt_int|setsockopt_int|setsockopt_optint|setsockopt_optint|setuid|setuid|shift_left|shift_left|shift_left|shift_right|shift_right|shift_right|shift_right_logical|shift_right_logical|shift_right_logical|show_buckets|shutdown|shutdown|shutdown_connection|shutdown_connection|sigabrt|sigalrm|sigchld|sigcont|sigfpe|sighup|sigill|sigint|sigkill|sign_big_int|sign_num|signal|signal|sigpending|sigpending|sigpipe|sigprocmask|sigprocmask|sigprof|sigquit|sigsegv|sigstop|sigsuspend|sigsuspend|sigterm|sigtstp|sigttin|sigttou|sigusr1|sigusr2|sigvtalrm|sin|singleton|sinh|size|size|size_x|size_y|sleep|sleep|sleep|slice_left|slice_left|slice_left_1|slice_left_2|slice_right|slice_right|slice_right_1|slice_right_2|snd|socket|socket|socket|socketpair|socketpair|sort|sound|split|split_delim|sprintf|sprintf|sqrt|sqrt|sqrt_big_int|square_big_int|square_num|sscanf|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stat|stat|stat|stat|stat|stats|stats|std_formatter|stdbuf|stderr|stderr|stderr|stdib|stdin|stdin|stdin|stdout|stdout|stdout|str_formatter|string|string_after|string_before|string_match|string_of_big_int|string_of_bool|string_of_float|string_of_format|string_of_inet_addr|string_of_inet_addr|string_of_int|string_of_num|string_partial_match|string_tag|sub|sub|sub_big_int|sub_left|sub_num|sub_right|subset|subset|substitute_first|substring|succ|succ|succ|succ|succ_big_int|succ_num|symbol_end|symbol_end_pos|symbol_start|symbol_start_pos|symlink|symlink|sync|synchronize|system|system|system|tag|take|tan|tanh|tcdrain|tcdrain|tcflow|tcflow|tcflush|tcflush|tcgetattr|tcgetattr|tcsendbreak|tcsendbreak|tcsetattr|tcsetattr|temp_file|text_size|time|time|time|timed_read|timed_write|times|times|tl|tl|tl|to_buffer|to_channel|to_float|to_hex|to_int|to_int32|to_list|to_list|to_list|to_nativeint|to_string|to_string|to_string|to_string|to_string|top|top|total_size|transfer|transp|truncate|truncate|truncate|truncate|truncate|truncate|try_lock|umask|umask|uncapitalize|uncapitalize|uncapitalize|union|union|unit_big_int|unlink|unlink|unlock|unmarshal|unsafe_blit|unsafe_fill|unsafe_get|unsafe_get|unsafe_set|unsafe_set|update|uppercase|uppercase|uppercase|uppercase|usage|utimes|utimes|wait|wait|wait|wait|wait_next_event|wait_pid|wait_read|wait_signal|wait_timed_read|wait_timed_write|wait_write|waitpid|white|widen|window_id|word_size|wrap|wrap_abort|write|yellow|yield|zero|zero_big_int|Arg|Arith_status|Array|Array1|Array2|Array3|ArrayLabels|Big_int|Bigarray|Buffer|Callback|CamlinternalOO|Char|Complex|Condition|Dbm|Digest|Dynlink|Event|Filename|Format|Gc|Genarray|Genlex|Graphics|GraphicsX11|Hashtbl|Int32|Int64|LargeFile|Lazy|Lexing|List|ListLabels|Make|Map|Marshal|MoreLabels|Mutex|Nativeint|Num|Obj|Oo|Parsing|Pervasives|Printexc|Printf|Queue|Random|Scanf|Scanning|Set|Sort|Stack|State|StdLabels|Str|Stream|String|StringLabels|Sys|Thread|ThreadUnix|Tk|Unix|UnixLabels|Weak\",r=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"constant.language\":t,\"support.function\":n},\"identifier\"),i=\"(?:(?:[1-9]\\\\d*)|(?:0))\",s=\"(?:0[oO]?[0-7]+)\",o=\"(?:0[xX][\\\\dA-Fa-f]+)\",u=\"(?:0[bB][01]+)\",a=\"(?:\"+i+\"|\"+s+\"|\"+o+\"|\"+u+\")\",f=\"(?:[eE][+-]?\\\\d+)\",l=\"(?:\\\\.\\\\d+)\",c=\"(?:\\\\d+)\",h=\"(?:(?:\"+c+\"?\"+l+\")|(?:\"+c+\"\\\\.))\",p=\"(?:(?:\"+h+\"|\"+c+\")\"+f+\")\",d=\"(?:\"+p+\"|\"+h+\")\";this.$rules={start:[{token:\"comment\",regex:\"\\\\(\\\\*.*?\\\\*\\\\)\\\\s*?$\"},{token:\"comment\",regex:\"\\\\(\\\\*.*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"'.'\"},{token:\"string\",regex:'\"',next:\"qstring\"},{token:\"constant.numeric\",regex:\"(?:\"+d+\"|\\\\d+)[jJ]\\\\b\"},{token:\"constant.numeric\",regex:d},{token:\"constant.numeric\",regex:a+\"\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+\\\\.|\\\\-\\\\.|\\\\*\\\\.|\\\\/\\\\.|#|;;|\\\\+|\\\\-|\\\\*|\\\\*\\\\*\\\\/|\\\\/\\\\/|%|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|<-|=\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\)\",next:\"start\"},{token:\"comment\",regex:\".+\"}],qstring:[{token:\"string\",regex:'\"',next:\"start\"},{token:\"string\",regex:\".+\"}]}};r.inherits(s,i),t.OcamlHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/ocaml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ocaml_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./ocaml_highlight_rules\").OcamlHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=function(){this.HighlightRules=s,this.$outdent=new o};r.inherits(a,i);var f=/(?:[({[=:]|[-=]>|\\b(?:else|try|with))\\s*$/;(function(){this.toggleCommentLines=function(e,t,n,r){var i,s,o=!0,a=/^\\s*\\(\\*(.*)\\*\\)/;for(i=n;i<=r;i++)if(!a.test(t.getLine(i))){o=!1;break}var f=new u(0,0,0,0);for(i=n;i<=r;i++)s=t.getLine(i),f.start.row=i,f.end.row=i,f.end.column=s.length,t.replace(f,o?s.match(a)[1]:\"(*\"+s+\"*)\")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;return(!i.length||i[i.length-1].type!==\"comment\")&&e===\"start\"&&f.test(t)&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/ocaml\"}).call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-pascal.js",
    "content": "ace.define(\"ace/mode/pascal_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{caseInsensitive:!0,token:\"keyword.control.pascal\",regex:\"\\\\b(?:(absolute|abstract|all|and|and_then|array|as|asm|attribute|begin|bindable|case|class|const|constructor|destructor|div|do|do|else|end|except|export|exports|external|far|file|finalization|finally|for|forward|goto|if|implementation|import|in|inherited|initialization|interface|interrupt|is|label|library|mod|module|name|near|nil|not|object|of|only|operator|or|or_else|otherwise|packed|pow|private|program|property|protected|public|published|qualified|record|repeat|resident|restricted|segment|set|shl|shr|then|to|try|type|unit|until|uses|value|var|view|virtual|while|with|xor))\\\\b\"},{caseInsensitive:!0,token:[\"variable.pascal\",\"text\",\"storage.type.prototype.pascal\",\"entity.name.function.prototype.pascal\"],regex:\"\\\\b(function|procedure)(\\\\s+)(\\\\w+)(\\\\.\\\\w+)?(?=(?:\\\\(.*?\\\\))?;\\\\s*(?:attribute|forward|external))\"},{caseInsensitive:!0,token:[\"variable.pascal\",\"text\",\"storage.type.function.pascal\",\"entity.name.function.pascal\"],regex:\"\\\\b(function|procedure)(\\\\s+)(\\\\w+)(\\\\.\\\\w+)?\"},{token:\"constant.numeric.pascal\",regex:\"\\\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\\\.?[0-9]*)|(\\\\.[0-9]+))((e|E)(\\\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"punctuation.definition.comment.pascal\",regex:\"--.*$\",push_:[{token:\"comment.line.double-dash.pascal.one\",regex:\"$\",next:\"pop\"},{defaultToken:\"comment.line.double-dash.pascal.one\"}]},{token:\"punctuation.definition.comment.pascal\",regex:\"//.*$\",push_:[{token:\"comment.line.double-slash.pascal.two\",regex:\"$\",next:\"pop\"},{defaultToken:\"comment.line.double-slash.pascal.two\"}]},{token:\"punctuation.definition.comment.pascal\",regex:\"\\\\(\\\\*\",push:[{token:\"punctuation.definition.comment.pascal\",regex:\"\\\\*\\\\)\",next:\"pop\"},{defaultToken:\"comment.block.pascal.one\"}]},{token:\"punctuation.definition.comment.pascal\",regex:\"\\\\{\",push:[{token:\"punctuation.definition.comment.pascal\",regex:\"\\\\}\",next:\"pop\"},{defaultToken:\"comment.block.pascal.two\"}]},{token:\"punctuation.definition.string.begin.pascal\",regex:'\"',push:[{token:\"constant.character.escape.pascal\",regex:\"\\\\\\\\.\"},{token:\"punctuation.definition.string.end.pascal\",regex:'\"',next:\"pop\"},{defaultToken:\"string.quoted.double.pascal\"}]},{token:\"punctuation.definition.string.begin.pascal\",regex:\"'\",push:[{token:\"constant.character.escape.apostrophe.pascal\",regex:\"''\"},{token:\"punctuation.definition.string.end.pascal\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.quoted.single.pascal\"}]},{token:\"keyword.operator\",regex:\"[+\\\\-;,/*%]|:=|=\"}]},this.normalizeRules()};r.inherits(s,i),t.PascalHighlightRules=s}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/pascal\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/pascal_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./pascal_highlight_rules\").PascalHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=[\"--\",\"//\"],this.blockComment=[{start:\"(*\",end:\"*)\"},{start:\"{\",end:\"}\"}],this.$id=\"ace/mode/pascal\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-perl.js",
    "content": "ace.define(\"ace/mode/perl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars\",t=\"ARGV|ENV|INC|SIG\",n=\"getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|getpeername|setpriority|getprotoent|setprotoent|getpriority|endprotoent|getservent|setservent|endservent|sethostent|socketpair|getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|map|die|uc|lc|do\",r=this.createKeywordMapper({keyword:e,\"constant.language\":t,\"support.function\":n},\"identifier\");this.$rules={start:[{token:\"comment.doc\",regex:\"^=(?:begin|item)\\\\b\",next:\"block_comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:'[\"].*\\\\\\\\$',next:\"qqstring\"},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"string\",regex:\"['].*\\\\\\\\$\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"0x[0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"%#|\\\\$#|\\\\.\\\\.\\\\.|\\\\|\\\\|=|>>=|<<=|<=>|&&=|=>|!~|\\\\^=|&=|\\\\|=|\\\\.=|x=|%=|\\\\/=|\\\\*=|\\\\-=|\\\\+=|=~|\\\\*\\\\*|\\\\-\\\\-|\\\\.\\\\.|\\\\|\\\\||&&|\\\\+\\\\+|\\\\->|!=|==|>=|<=|>>|<<|,|=|\\\\?\\\\:|\\\\^|\\\\||x|%|\\\\/|\\\\*|<|&|\\\\\\\\|~|!|>|\\\\.|\\\\-|\\\\+|\\\\-C|\\\\-b|\\\\-S|\\\\-u|\\\\-t|\\\\-p|\\\\-l|\\\\-d|\\\\-f|\\\\-g|\\\\-s|\\\\-z|\\\\-k|\\\\-e|\\\\-O|\\\\-T|\\\\-B|\\\\-M|\\\\-A|\\\\-X|\\\\-W|\\\\-c|\\\\-R|\\\\-o|\\\\-x|\\\\-w|\\\\-r|\\\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)\"},{token:\"comment\",regex:\"#.*$\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],qqstring:[{token:\"string\",regex:'(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',next:\"start\"},{token:\"string\",regex:\".+\"}],qstring:[{token:\"string\",regex:\"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",next:\"start\"},{token:\"string\",regex:\".+\"}],block_comment:[{token:\"comment.doc\",regex:\"^=cut\\\\b\",next:\"start\"},{defaultToken:\"comment.doc\"}]}};r.inherits(s,i),t.PerlHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/perl\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/perl_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./perl_highlight_rules\").PerlHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.foldingRules=new a({start:\"^=(begin|item)\\\\b\",end:\"^=(cut)\\\\b\"})};r.inherits(f,i),function(){this.lineCommentStart=\"#\",this.blockComment=[{start:\"=begin\",end:\"=cut\",lineStartOnly:!0},{start:\"=item\",end:\"=cut\",lineStartOnly:!0}],this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[\\:]\\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/perl\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-pgsql.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/perl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars\",t=\"ARGV|ENV|INC|SIG\",n=\"getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|getpeername|setpriority|getprotoent|setprotoent|getpriority|endprotoent|getservent|setservent|endservent|sethostent|socketpair|getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|map|die|uc|lc|do\",r=this.createKeywordMapper({keyword:e,\"constant.language\":t,\"support.function\":n},\"identifier\");this.$rules={start:[{token:\"comment.doc\",regex:\"^=(?:begin|item)\\\\b\",next:\"block_comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:'[\"].*\\\\\\\\$',next:\"qqstring\"},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"string\",regex:\"['].*\\\\\\\\$\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"0x[0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"%#|\\\\$#|\\\\.\\\\.\\\\.|\\\\|\\\\|=|>>=|<<=|<=>|&&=|=>|!~|\\\\^=|&=|\\\\|=|\\\\.=|x=|%=|\\\\/=|\\\\*=|\\\\-=|\\\\+=|=~|\\\\*\\\\*|\\\\-\\\\-|\\\\.\\\\.|\\\\|\\\\||&&|\\\\+\\\\+|\\\\->|!=|==|>=|<=|>>|<<|,|=|\\\\?\\\\:|\\\\^|\\\\||x|%|\\\\/|\\\\*|<|&|\\\\\\\\|~|!|>|\\\\.|\\\\-|\\\\+|\\\\-C|\\\\-b|\\\\-S|\\\\-u|\\\\-t|\\\\-p|\\\\-l|\\\\-d|\\\\-f|\\\\-g|\\\\-s|\\\\-z|\\\\-k|\\\\-e|\\\\-O|\\\\-T|\\\\-B|\\\\-M|\\\\-A|\\\\-X|\\\\-W|\\\\-c|\\\\-R|\\\\-o|\\\\-x|\\\\-w|\\\\-r|\\\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)\"},{token:\"comment\",regex:\"#.*$\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],qqstring:[{token:\"string\",regex:'(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',next:\"start\"},{token:\"string\",regex:\".+\"}],qstring:[{token:\"string\",regex:\"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",next:\"start\"},{token:\"string\",regex:\".+\"}],block_comment:[{token:\"comment.doc\",regex:\"^=cut\\\\b\",next:\"start\"},{defaultToken:\"comment.doc\"}]}};r.inherits(s,i),t.PerlHighlightRules=s}),ace.define(\"ace/mode/python_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield\",t=\"True|False|None|NotImplemented|Ellipsis|__debug__\",n=\"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|set|apply|delattr|help|next|setattr|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern\",r=this.createKeywordMapper({\"invalid.deprecated\":\"debugger\",\"support.function\":n,\"constant.language\":t,keyword:e},\"identifier\"),i=\"(?:r|u|ur|R|U|UR|Ur|uR)?\",s=\"(?:(?:[1-9]\\\\d*)|(?:0))\",o=\"(?:0[oO]?[0-7]+)\",u=\"(?:0[xX][\\\\dA-Fa-f]+)\",a=\"(?:0[bB][01]+)\",f=\"(?:\"+s+\"|\"+o+\"|\"+u+\"|\"+a+\")\",l=\"(?:[eE][+-]?\\\\d+)\",c=\"(?:\\\\.\\\\d+)\",h=\"(?:\\\\d+)\",p=\"(?:(?:\"+h+\"?\"+c+\")|(?:\"+h+\"\\\\.))\",d=\"(?:(?:\"+p+\"|\"+h+\")\"+l+\")\",v=\"(?:\"+d+\"|\"+p+\")\",m=\"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"string\",regex:i+'\"{3}',next:\"qqstring3\"},{token:\"string\",regex:i+'\"(?=.)',next:\"qqstring\"},{token:\"string\",regex:i+\"'{3}\",next:\"qstring3\"},{token:\"string\",regex:i+\"'(?=.)\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"(?:\"+v+\"|\\\\d+)[jJ]\\\\b\"},{token:\"constant.numeric\",regex:v},{token:\"constant.numeric\",regex:f+\"[lL]\\\\b\"},{token:\"constant.numeric\",regex:f+\"\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text\",regex:\"\\\\s+\"}],qqstring3:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:'\"{3}',next:\"start\"},{defaultToken:\"string\"}],qstring3:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:\"'{3}\",next:\"start\"},{defaultToken:\"string\"}],qqstring:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"start\"},{defaultToken:\"string\"}]}};r.inherits(s,i),t.PythonHighlightRules=s}),ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"variable\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'},{token:\"string\",regex:'\"',next:\"string\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:\"invalid.illegal\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"invalid.illegal\",regex:\"\\\\/\\\\/.*$\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],string:[{token:\"constant.language.escape\",regex:/\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/},{token:\"string\",regex:'[^\"\\\\\\\\]+'},{token:\"string\",regex:'\"',next:\"start\"},{token:\"string\",regex:\"\",next:\"start\"}]}};r.inherits(s,i),t.JsonHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/pgsql_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\",\"ace/mode/perl_highlight_rules\",\"ace/mode/python_highlight_rules\",\"ace/mode/json_highlight_rules\",\"ace/mode/javascript_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=e(\"./perl_highlight_rules\").PerlHighlightRules,a=e(\"./python_highlight_rules\").PythonHighlightRules,f=e(\"./json_highlight_rules\").JsonHighlightRules,l=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,c=function(){var e=\"abort|absolute|abstime|access|aclitem|action|add|admin|after|aggregate|all|also|alter|always|analyse|analyze|and|any|anyarray|anyelement|anyenum|anynonarray|anyrange|array|as|asc|assertion|assignment|asymmetric|at|attribute|authorization|backward|before|begin|between|bigint|binary|bit|bool|boolean|both|box|bpchar|by|bytea|cache|called|cascade|cascaded|case|cast|catalog|chain|char|character|characteristics|check|checkpoint|cid|cidr|circle|class|close|cluster|coalesce|collate|collation|column|comment|comments|commit|committed|concurrently|configuration|connection|constraint|constraints|content|continue|conversion|copy|cost|create|cross|cstring|csv|current|current_catalog|current_date|current_role|current_schema|current_time|current_timestamp|current_user|cursor|cycle|data|database|date|daterange|day|deallocate|dec|decimal|declare|default|defaults|deferrable|deferred|definer|delete|delimiter|delimiters|desc|dictionary|disable|discard|distinct|do|document|domain|double|drop|each|else|enable|encoding|encrypted|end|enum|escape|event|event_trigger|except|exclude|excluding|exclusive|execute|exists|explain|extension|external|extract|false|family|fdw_handler|fetch|first|float|float4|float8|following|for|force|foreign|forward|freeze|from|full|function|functions|global|grant|granted|greatest|group|gtsvector|handler|having|header|hold|hour|identity|if|ilike|immediate|immutable|implicit|in|including|increment|index|indexes|inet|inherit|inherits|initially|inline|inner|inout|input|insensitive|insert|instead|int|int2|int2vector|int4|int4range|int8|int8range|integer|internal|intersect|interval|into|invoker|is|isnull|isolation|join|json|key|label|language|language_handler|large|last|lateral|lc_collate|lc_ctype|leading|leakproof|least|left|level|like|limit|line|listen|load|local|localtime|localtimestamp|location|lock|lseg|macaddr|mapping|match|materialized|maxvalue|minute|minvalue|mode|money|month|move|name|names|national|natural|nchar|next|no|none|not|nothing|notify|notnull|nowait|null|nullif|nulls|numeric|numrange|object|of|off|offset|oid|oids|oidvector|on|only|opaque|operator|option|options|or|order|out|outer|over|overlaps|overlay|owned|owner|parser|partial|partition|passing|password|path|pg_attribute|pg_auth_members|pg_authid|pg_class|pg_database|pg_node_tree|pg_proc|pg_type|placing|plans|point|polygon|position|preceding|precision|prepare|prepared|preserve|primary|prior|privileges|procedural|procedure|program|quote|range|read|real|reassign|recheck|record|recursive|ref|refcursor|references|refresh|regclass|regconfig|regdictionary|regoper|regoperator|regproc|regprocedure|regtype|reindex|relative|release|reltime|rename|repeatable|replace|replica|reset|restart|restrict|returning|returns|revoke|right|role|rollback|row|rows|rule|savepoint|schema|scroll|search|second|security|select|sequence|sequences|serializable|server|session|session_user|set|setof|share|show|similar|simple|smallint|smgr|snapshot|some|stable|standalone|start|statement|statistics|stdin|stdout|storage|strict|strip|substring|symmetric|sysid|system|table|tables|tablespace|temp|template|temporary|text|then|tid|time|timestamp|timestamptz|timetz|tinterval|to|trailing|transaction|treat|trigger|trim|true|truncate|trusted|tsquery|tsrange|tstzrange|tsvector|txid_snapshot|type|types|unbounded|uncommitted|unencrypted|union|unique|unknown|unlisten|unlogged|until|update|user|using|uuid|vacuum|valid|validate|validator|value|values|varbit|varchar|variadic|varying|verbose|version|view|void|volatile|when|where|whitespace|window|with|without|work|wrapper|write|xid|xml|xmlattributes|xmlconcat|xmlelement|xmlexists|xmlforest|xmlparse|xmlpi|xmlroot|xmlserialize|year|yes|zone\",t=\"RI_FKey_cascade_del|RI_FKey_cascade_upd|RI_FKey_check_ins|RI_FKey_check_upd|RI_FKey_noaction_del|RI_FKey_noaction_upd|RI_FKey_restrict_del|RI_FKey_restrict_upd|RI_FKey_setdefault_del|RI_FKey_setdefault_upd|RI_FKey_setnull_del|RI_FKey_setnull_upd|abbrev|abs|abstime|abstimeeq|abstimege|abstimegt|abstimein|abstimele|abstimelt|abstimene|abstimeout|abstimerecv|abstimesend|aclcontains|acldefault|aclexplode|aclinsert|aclitemeq|aclitemin|aclitemout|aclremove|acos|age|any_in|any_out|anyarray_in|anyarray_out|anyarray_recv|anyarray_send|anyelement_in|anyelement_out|anyenum_in|anyenum_out|anynonarray_in|anynonarray_out|anyrange_in|anyrange_out|anytextcat|area|areajoinsel|areasel|array_agg|array_agg_finalfn|array_agg_transfn|array_append|array_cat|array_dims|array_eq|array_fill|array_ge|array_gt|array_in|array_larger|array_le|array_length|array_lower|array_lt|array_ndims|array_ne|array_out|array_prepend|array_recv|array_remove|array_replace|array_send|array_smaller|array_to_json|array_to_string|array_typanalyze|array_upper|arraycontained|arraycontains|arraycontjoinsel|arraycontsel|arrayoverlap|ascii|ascii_to_mic|ascii_to_utf8|asin|atan|atan2|avg|big5_to_euc_tw|big5_to_mic|big5_to_utf8|bit_and|bit_in|bit_length|bit_or|bit_out|bit_recv|bit_send|bitand|bitcat|bitcmp|biteq|bitge|bitgt|bitle|bitlt|bitne|bitnot|bitor|bitshiftleft|bitshiftright|bittypmodin|bittypmodout|bitxor|bool|bool_and|bool_or|booland_statefunc|booleq|boolge|boolgt|boolin|boolle|boollt|boolne|boolor_statefunc|boolout|boolrecv|boolsend|box|box_above|box_above_eq|box_add|box_below|box_below_eq|box_center|box_contain|box_contain_pt|box_contained|box_distance|box_div|box_eq|box_ge|box_gt|box_in|box_intersect|box_le|box_left|box_lt|box_mul|box_out|box_overabove|box_overbelow|box_overlap|box_overleft|box_overright|box_recv|box_right|box_same|box_send|box_sub|bpchar_larger|bpchar_pattern_ge|bpchar_pattern_gt|bpchar_pattern_le|bpchar_pattern_lt|bpchar_smaller|bpcharcmp|bpchareq|bpcharge|bpchargt|bpchariclike|bpcharicnlike|bpcharicregexeq|bpcharicregexne|bpcharin|bpcharle|bpcharlike|bpcharlt|bpcharne|bpcharnlike|bpcharout|bpcharrecv|bpcharregexeq|bpcharregexne|bpcharsend|bpchartypmodin|bpchartypmodout|broadcast|btabstimecmp|btarraycmp|btbeginscan|btboolcmp|btbpchar_pattern_cmp|btbuild|btbuildempty|btbulkdelete|btcanreturn|btcharcmp|btcostestimate|btendscan|btfloat48cmp|btfloat4cmp|btfloat4sortsupport|btfloat84cmp|btfloat8cmp|btfloat8sortsupport|btgetbitmap|btgettuple|btinsert|btint24cmp|btint28cmp|btint2cmp|btint2sortsupport|btint42cmp|btint48cmp|btint4cmp|btint4sortsupport|btint82cmp|btint84cmp|btint8cmp|btint8sortsupport|btmarkpos|btnamecmp|btnamesortsupport|btoidcmp|btoidsortsupport|btoidvectorcmp|btoptions|btrecordcmp|btreltimecmp|btrescan|btrestrpos|btrim|bttext_pattern_cmp|bttextcmp|bttidcmp|bttintervalcmp|btvacuumcleanup|bytea_string_agg_finalfn|bytea_string_agg_transfn|byteacat|byteacmp|byteaeq|byteage|byteagt|byteain|byteale|bytealike|bytealt|byteane|byteanlike|byteaout|bytearecv|byteasend|cash_cmp|cash_div_cash|cash_div_flt4|cash_div_flt8|cash_div_int2|cash_div_int4|cash_eq|cash_ge|cash_gt|cash_in|cash_le|cash_lt|cash_mi|cash_mul_flt4|cash_mul_flt8|cash_mul_int2|cash_mul_int4|cash_ne|cash_out|cash_pl|cash_recv|cash_send|cash_words|cashlarger|cashsmaller|cbrt|ceil|ceiling|center|char|char_length|character_length|chareq|charge|chargt|charin|charle|charlt|charne|charout|charrecv|charsend|chr|cideq|cidin|cidout|cidr|cidr_in|cidr_out|cidr_recv|cidr_send|cidrecv|cidsend|circle|circle_above|circle_add_pt|circle_below|circle_center|circle_contain|circle_contain_pt|circle_contained|circle_distance|circle_div_pt|circle_eq|circle_ge|circle_gt|circle_in|circle_le|circle_left|circle_lt|circle_mul_pt|circle_ne|circle_out|circle_overabove|circle_overbelow|circle_overlap|circle_overleft|circle_overright|circle_recv|circle_right|circle_same|circle_send|circle_sub_pt|clock_timestamp|close_lb|close_ls|close_lseg|close_pb|close_pl|close_ps|close_sb|close_sl|col_description|concat|concat_ws|contjoinsel|contsel|convert|convert_from|convert_to|corr|cos|cot|count|covar_pop|covar_samp|cstring_in|cstring_out|cstring_recv|cstring_send|cume_dist|current_database|current_query|current_schema|current_schemas|current_setting|current_user|currtid|currtid2|currval|cursor_to_xml|cursor_to_xmlschema|database_to_xml|database_to_xml_and_xmlschema|database_to_xmlschema|date|date_cmp|date_cmp_timestamp|date_cmp_timestamptz|date_eq|date_eq_timestamp|date_eq_timestamptz|date_ge|date_ge_timestamp|date_ge_timestamptz|date_gt|date_gt_timestamp|date_gt_timestamptz|date_in|date_larger|date_le|date_le_timestamp|date_le_timestamptz|date_lt|date_lt_timestamp|date_lt_timestamptz|date_mi|date_mi_interval|date_mii|date_ne|date_ne_timestamp|date_ne_timestamptz|date_out|date_part|date_pl_interval|date_pli|date_recv|date_send|date_smaller|date_sortsupport|date_trunc|daterange|daterange_canonical|daterange_subdiff|datetime_pl|datetimetz_pl|dcbrt|decode|degrees|dense_rank|dexp|diagonal|diameter|dispell_init|dispell_lexize|dist_cpoly|dist_lb|dist_pb|dist_pc|dist_pl|dist_ppath|dist_ps|dist_sb|dist_sl|div|dlog1|dlog10|domain_in|domain_recv|dpow|dround|dsimple_init|dsimple_lexize|dsnowball_init|dsnowball_lexize|dsqrt|dsynonym_init|dsynonym_lexize|dtrunc|elem_contained_by_range|encode|enum_cmp|enum_eq|enum_first|enum_ge|enum_gt|enum_in|enum_larger|enum_last|enum_le|enum_lt|enum_ne|enum_out|enum_range|enum_recv|enum_send|enum_smaller|eqjoinsel|eqsel|euc_cn_to_mic|euc_cn_to_utf8|euc_jis_2004_to_shift_jis_2004|euc_jis_2004_to_utf8|euc_jp_to_mic|euc_jp_to_sjis|euc_jp_to_utf8|euc_kr_to_mic|euc_kr_to_utf8|euc_tw_to_big5|euc_tw_to_mic|euc_tw_to_utf8|event_trigger_in|event_trigger_out|every|exp|factorial|family|fdw_handler_in|fdw_handler_out|first_value|float4|float48div|float48eq|float48ge|float48gt|float48le|float48lt|float48mi|float48mul|float48ne|float48pl|float4_accum|float4abs|float4div|float4eq|float4ge|float4gt|float4in|float4larger|float4le|float4lt|float4mi|float4mul|float4ne|float4out|float4pl|float4recv|float4send|float4smaller|float4um|float4up|float8|float84div|float84eq|float84ge|float84gt|float84le|float84lt|float84mi|float84mul|float84ne|float84pl|float8_accum|float8_avg|float8_corr|float8_covar_pop|float8_covar_samp|float8_regr_accum|float8_regr_avgx|float8_regr_avgy|float8_regr_intercept|float8_regr_r2|float8_regr_slope|float8_regr_sxx|float8_regr_sxy|float8_regr_syy|float8_stddev_pop|float8_stddev_samp|float8_var_pop|float8_var_samp|float8abs|float8div|float8eq|float8ge|float8gt|float8in|float8larger|float8le|float8lt|float8mi|float8mul|float8ne|float8out|float8pl|float8recv|float8send|float8smaller|float8um|float8up|floor|flt4_mul_cash|flt8_mul_cash|fmgr_c_validator|fmgr_internal_validator|fmgr_sql_validator|format|format_type|gb18030_to_utf8|gbk_to_utf8|generate_series|generate_subscripts|get_bit|get_byte|get_current_ts_config|getdatabaseencoding|getpgusername|gin_cmp_prefix|gin_cmp_tslexeme|gin_extract_tsquery|gin_extract_tsvector|gin_tsquery_consistent|ginarrayconsistent|ginarrayextract|ginbeginscan|ginbuild|ginbuildempty|ginbulkdelete|gincostestimate|ginendscan|gingetbitmap|gininsert|ginmarkpos|ginoptions|ginqueryarrayextract|ginrescan|ginrestrpos|ginvacuumcleanup|gist_box_compress|gist_box_consistent|gist_box_decompress|gist_box_penalty|gist_box_picksplit|gist_box_same|gist_box_union|gist_circle_compress|gist_circle_consistent|gist_point_compress|gist_point_consistent|gist_point_distance|gist_poly_compress|gist_poly_consistent|gistbeginscan|gistbuild|gistbuildempty|gistbulkdelete|gistcostestimate|gistendscan|gistgetbitmap|gistgettuple|gistinsert|gistmarkpos|gistoptions|gistrescan|gistrestrpos|gistvacuumcleanup|gtsquery_compress|gtsquery_consistent|gtsquery_decompress|gtsquery_penalty|gtsquery_picksplit|gtsquery_same|gtsquery_union|gtsvector_compress|gtsvector_consistent|gtsvector_decompress|gtsvector_penalty|gtsvector_picksplit|gtsvector_same|gtsvector_union|gtsvectorin|gtsvectorout|has_any_column_privilege|has_column_privilege|has_database_privilege|has_foreign_data_wrapper_privilege|has_function_privilege|has_language_privilege|has_schema_privilege|has_sequence_privilege|has_server_privilege|has_table_privilege|has_tablespace_privilege|has_type_privilege|hash_aclitem|hash_array|hash_numeric|hash_range|hashbeginscan|hashbpchar|hashbuild|hashbuildempty|hashbulkdelete|hashchar|hashcostestimate|hashendscan|hashenum|hashfloat4|hashfloat8|hashgetbitmap|hashgettuple|hashinet|hashinsert|hashint2|hashint2vector|hashint4|hashint8|hashmacaddr|hashmarkpos|hashname|hashoid|hashoidvector|hashoptions|hashrescan|hashrestrpos|hashtext|hashvacuumcleanup|hashvarlena|height|host|hostmask|iclikejoinsel|iclikesel|icnlikejoinsel|icnlikesel|icregexeqjoinsel|icregexeqsel|icregexnejoinsel|icregexnesel|inet_client_addr|inet_client_port|inet_in|inet_out|inet_recv|inet_send|inet_server_addr|inet_server_port|inetand|inetmi|inetmi_int8|inetnot|inetor|inetpl|initcap|int2|int24div|int24eq|int24ge|int24gt|int24le|int24lt|int24mi|int24mul|int24ne|int24pl|int28div|int28eq|int28ge|int28gt|int28le|int28lt|int28mi|int28mul|int28ne|int28pl|int2_accum|int2_avg_accum|int2_mul_cash|int2_sum|int2abs|int2and|int2div|int2eq|int2ge|int2gt|int2in|int2larger|int2le|int2lt|int2mi|int2mod|int2mul|int2ne|int2not|int2or|int2out|int2pl|int2recv|int2send|int2shl|int2shr|int2smaller|int2um|int2up|int2vectoreq|int2vectorin|int2vectorout|int2vectorrecv|int2vectorsend|int2xor|int4|int42div|int42eq|int42ge|int42gt|int42le|int42lt|int42mi|int42mul|int42ne|int42pl|int48div|int48eq|int48ge|int48gt|int48le|int48lt|int48mi|int48mul|int48ne|int48pl|int4_accum|int4_avg_accum|int4_mul_cash|int4_sum|int4abs|int4and|int4div|int4eq|int4ge|int4gt|int4in|int4inc|int4larger|int4le|int4lt|int4mi|int4mod|int4mul|int4ne|int4not|int4or|int4out|int4pl|int4range|int4range_canonical|int4range_subdiff|int4recv|int4send|int4shl|int4shr|int4smaller|int4um|int4up|int4xor|int8|int82div|int82eq|int82ge|int82gt|int82le|int82lt|int82mi|int82mul|int82ne|int82pl|int84div|int84eq|int84ge|int84gt|int84le|int84lt|int84mi|int84mul|int84ne|int84pl|int8_accum|int8_avg|int8_avg_accum|int8_sum|int8abs|int8and|int8div|int8eq|int8ge|int8gt|int8in|int8inc|int8inc_any|int8inc_float8_float8|int8larger|int8le|int8lt|int8mi|int8mod|int8mul|int8ne|int8not|int8or|int8out|int8pl|int8pl_inet|int8range|int8range_canonical|int8range_subdiff|int8recv|int8send|int8shl|int8shr|int8smaller|int8um|int8up|int8xor|integer_pl_date|inter_lb|inter_sb|inter_sl|internal_in|internal_out|interval_accum|interval_avg|interval_cmp|interval_div|interval_eq|interval_ge|interval_gt|interval_hash|interval_in|interval_larger|interval_le|interval_lt|interval_mi|interval_mul|interval_ne|interval_out|interval_pl|interval_pl_date|interval_pl_time|interval_pl_timestamp|interval_pl_timestamptz|interval_pl_timetz|interval_recv|interval_send|interval_smaller|interval_transform|interval_um|intervaltypmodin|intervaltypmodout|intinterval|isclosed|isempty|isfinite|ishorizontal|iso8859_1_to_utf8|iso8859_to_utf8|iso_to_koi8r|iso_to_mic|iso_to_win1251|iso_to_win866|isopen|isparallel|isperp|isvertical|johab_to_utf8|json_agg|json_agg_finalfn|json_agg_transfn|json_array_element|json_array_element_text|json_array_elements|json_array_length|json_each|json_each_text|json_extract_path|json_extract_path_op|json_extract_path_text|json_extract_path_text_op|json_in|json_object_field|json_object_field_text|json_object_keys|json_out|json_populate_record|json_populate_recordset|json_recv|json_send|justify_days|justify_hours|justify_interval|koi8r_to_iso|koi8r_to_mic|koi8r_to_utf8|koi8r_to_win1251|koi8r_to_win866|koi8u_to_utf8|lag|language_handler_in|language_handler_out|last_value|lastval|latin1_to_mic|latin2_to_mic|latin2_to_win1250|latin3_to_mic|latin4_to_mic|lead|left|length|like|like_escape|likejoinsel|likesel|line|line_distance|line_eq|line_horizontal|line_in|line_interpt|line_intersect|line_out|line_parallel|line_perp|line_recv|line_send|line_vertical|ln|lo_close|lo_creat|lo_create|lo_export|lo_import|lo_lseek|lo_lseek64|lo_open|lo_tell|lo_tell64|lo_truncate|lo_truncate64|lo_unlink|log|loread|lower|lower_inc|lower_inf|lowrite|lpad|lseg|lseg_center|lseg_distance|lseg_eq|lseg_ge|lseg_gt|lseg_horizontal|lseg_in|lseg_interpt|lseg_intersect|lseg_le|lseg_length|lseg_lt|lseg_ne|lseg_out|lseg_parallel|lseg_perp|lseg_recv|lseg_send|lseg_vertical|ltrim|macaddr_and|macaddr_cmp|macaddr_eq|macaddr_ge|macaddr_gt|macaddr_in|macaddr_le|macaddr_lt|macaddr_ne|macaddr_not|macaddr_or|macaddr_out|macaddr_recv|macaddr_send|makeaclitem|masklen|max|md5|mic_to_ascii|mic_to_big5|mic_to_euc_cn|mic_to_euc_jp|mic_to_euc_kr|mic_to_euc_tw|mic_to_iso|mic_to_koi8r|mic_to_latin1|mic_to_latin2|mic_to_latin3|mic_to_latin4|mic_to_sjis|mic_to_win1250|mic_to_win1251|mic_to_win866|min|mktinterval|mod|money|mul_d_interval|name|nameeq|namege|namegt|nameiclike|nameicnlike|nameicregexeq|nameicregexne|namein|namele|namelike|namelt|namene|namenlike|nameout|namerecv|nameregexeq|nameregexne|namesend|neqjoinsel|neqsel|netmask|network|network_cmp|network_eq|network_ge|network_gt|network_le|network_lt|network_ne|network_sub|network_subeq|network_sup|network_supeq|nextval|nlikejoinsel|nlikesel|notlike|now|npoints|nth_value|ntile|numeric_abs|numeric_accum|numeric_add|numeric_avg|numeric_avg_accum|numeric_cmp|numeric_div|numeric_div_trunc|numeric_eq|numeric_exp|numeric_fac|numeric_ge|numeric_gt|numeric_in|numeric_inc|numeric_larger|numeric_le|numeric_ln|numeric_log|numeric_lt|numeric_mod|numeric_mul|numeric_ne|numeric_out|numeric_power|numeric_recv|numeric_send|numeric_smaller|numeric_sqrt|numeric_stddev_pop|numeric_stddev_samp|numeric_sub|numeric_transform|numeric_uminus|numeric_uplus|numeric_var_pop|numeric_var_samp|numerictypmodin|numerictypmodout|numnode|numrange|numrange_subdiff|obj_description|octet_length|oid|oideq|oidge|oidgt|oidin|oidlarger|oidle|oidlt|oidne|oidout|oidrecv|oidsend|oidsmaller|oidvectoreq|oidvectorge|oidvectorgt|oidvectorin|oidvectorle|oidvectorlt|oidvectorne|oidvectorout|oidvectorrecv|oidvectorsend|oidvectortypes|on_pb|on_pl|on_ppath|on_ps|on_sb|on_sl|opaque_in|opaque_out|overlaps|overlay|path|path_add|path_add_pt|path_center|path_contain_pt|path_distance|path_div_pt|path_in|path_inter|path_length|path_mul_pt|path_n_eq|path_n_ge|path_n_gt|path_n_le|path_n_lt|path_npoints|path_out|path_recv|path_send|path_sub_pt|pclose|percent_rank|pg_advisory_lock|pg_advisory_lock_shared|pg_advisory_unlock|pg_advisory_unlock_all|pg_advisory_unlock_shared|pg_advisory_xact_lock|pg_advisory_xact_lock_shared|pg_available_extension_versions|pg_available_extensions|pg_backend_pid|pg_backup_start_time|pg_cancel_backend|pg_char_to_encoding|pg_client_encoding|pg_collation_for|pg_collation_is_visible|pg_column_is_updatable|pg_column_size|pg_conf_load_time|pg_conversion_is_visible|pg_create_restore_point|pg_current_xlog_insert_location|pg_current_xlog_location|pg_cursor|pg_database_size|pg_describe_object|pg_encoding_max_length|pg_encoding_to_char|pg_event_trigger_dropped_objects|pg_export_snapshot|pg_extension_config_dump|pg_extension_update_paths|pg_function_is_visible|pg_get_constraintdef|pg_get_expr|pg_get_function_arguments|pg_get_function_identity_arguments|pg_get_function_result|pg_get_functiondef|pg_get_indexdef|pg_get_keywords|pg_get_multixact_members|pg_get_ruledef|pg_get_serial_sequence|pg_get_triggerdef|pg_get_userbyid|pg_get_viewdef|pg_has_role|pg_identify_object|pg_indexes_size|pg_is_in_backup|pg_is_in_recovery|pg_is_other_temp_schema|pg_is_xlog_replay_paused|pg_last_xact_replay_timestamp|pg_last_xlog_receive_location|pg_last_xlog_replay_location|pg_listening_channels|pg_lock_status|pg_ls_dir|pg_my_temp_schema|pg_node_tree_in|pg_node_tree_out|pg_node_tree_recv|pg_node_tree_send|pg_notify|pg_opclass_is_visible|pg_operator_is_visible|pg_opfamily_is_visible|pg_options_to_table|pg_postmaster_start_time|pg_prepared_statement|pg_prepared_xact|pg_read_binary_file|pg_read_file|pg_relation_filenode|pg_relation_filepath|pg_relation_is_updatable|pg_relation_size|pg_reload_conf|pg_rotate_logfile|pg_sequence_parameters|pg_show_all_settings|pg_size_pretty|pg_sleep|pg_start_backup|pg_stat_clear_snapshot|pg_stat_file|pg_stat_get_activity|pg_stat_get_analyze_count|pg_stat_get_autoanalyze_count|pg_stat_get_autovacuum_count|pg_stat_get_backend_activity|pg_stat_get_backend_activity_start|pg_stat_get_backend_client_addr|pg_stat_get_backend_client_port|pg_stat_get_backend_dbid|pg_stat_get_backend_idset|pg_stat_get_backend_pid|pg_stat_get_backend_start|pg_stat_get_backend_userid|pg_stat_get_backend_waiting|pg_stat_get_backend_xact_start|pg_stat_get_bgwriter_buf_written_checkpoints|pg_stat_get_bgwriter_buf_written_clean|pg_stat_get_bgwriter_maxwritten_clean|pg_stat_get_bgwriter_requested_checkpoints|pg_stat_get_bgwriter_stat_reset_time|pg_stat_get_bgwriter_timed_checkpoints|pg_stat_get_blocks_fetched|pg_stat_get_blocks_hit|pg_stat_get_buf_alloc|pg_stat_get_buf_fsync_backend|pg_stat_get_buf_written_backend|pg_stat_get_checkpoint_sync_time|pg_stat_get_checkpoint_write_time|pg_stat_get_db_blk_read_time|pg_stat_get_db_blk_write_time|pg_stat_get_db_blocks_fetched|pg_stat_get_db_blocks_hit|pg_stat_get_db_conflict_all|pg_stat_get_db_conflict_bufferpin|pg_stat_get_db_conflict_lock|pg_stat_get_db_conflict_snapshot|pg_stat_get_db_conflict_startup_deadlock|pg_stat_get_db_conflict_tablespace|pg_stat_get_db_deadlocks|pg_stat_get_db_numbackends|pg_stat_get_db_stat_reset_time|pg_stat_get_db_temp_bytes|pg_stat_get_db_temp_files|pg_stat_get_db_tuples_deleted|pg_stat_get_db_tuples_fetched|pg_stat_get_db_tuples_inserted|pg_stat_get_db_tuples_returned|pg_stat_get_db_tuples_updated|pg_stat_get_db_xact_commit|pg_stat_get_db_xact_rollback|pg_stat_get_dead_tuples|pg_stat_get_function_calls|pg_stat_get_function_self_time|pg_stat_get_function_total_time|pg_stat_get_last_analyze_time|pg_stat_get_last_autoanalyze_time|pg_stat_get_last_autovacuum_time|pg_stat_get_last_vacuum_time|pg_stat_get_live_tuples|pg_stat_get_numscans|pg_stat_get_tuples_deleted|pg_stat_get_tuples_fetched|pg_stat_get_tuples_hot_updated|pg_stat_get_tuples_inserted|pg_stat_get_tuples_returned|pg_stat_get_tuples_updated|pg_stat_get_vacuum_count|pg_stat_get_wal_senders|pg_stat_get_xact_blocks_fetched|pg_stat_get_xact_blocks_hit|pg_stat_get_xact_function_calls|pg_stat_get_xact_function_self_time|pg_stat_get_xact_function_total_time|pg_stat_get_xact_numscans|pg_stat_get_xact_tuples_deleted|pg_stat_get_xact_tuples_fetched|pg_stat_get_xact_tuples_hot_updated|pg_stat_get_xact_tuples_inserted|pg_stat_get_xact_tuples_returned|pg_stat_get_xact_tuples_updated|pg_stat_reset|pg_stat_reset_shared|pg_stat_reset_single_function_counters|pg_stat_reset_single_table_counters|pg_stop_backup|pg_switch_xlog|pg_table_is_visible|pg_table_size|pg_tablespace_databases|pg_tablespace_location|pg_tablespace_size|pg_terminate_backend|pg_timezone_abbrevs|pg_timezone_names|pg_total_relation_size|pg_trigger_depth|pg_try_advisory_lock|pg_try_advisory_lock_shared|pg_try_advisory_xact_lock|pg_try_advisory_xact_lock_shared|pg_ts_config_is_visible|pg_ts_dict_is_visible|pg_ts_parser_is_visible|pg_ts_template_is_visible|pg_type_is_visible|pg_typeof|pg_xlog_location_diff|pg_xlog_replay_pause|pg_xlog_replay_resume|pg_xlogfile_name|pg_xlogfile_name_offset|pi|plainto_tsquery|plpgsql_call_handler|plpgsql_inline_handler|plpgsql_validator|point|point_above|point_add|point_below|point_distance|point_div|point_eq|point_horiz|point_in|point_left|point_mul|point_ne|point_out|point_recv|point_right|point_send|point_sub|point_vert|poly_above|poly_below|poly_center|poly_contain|poly_contain_pt|poly_contained|poly_distance|poly_in|poly_left|poly_npoints|poly_out|poly_overabove|poly_overbelow|poly_overlap|poly_overleft|poly_overright|poly_recv|poly_right|poly_same|poly_send|polygon|popen|position|positionjoinsel|positionsel|postgresql_fdw_validator|pow|power|prsd_end|prsd_headline|prsd_lextype|prsd_nexttoken|prsd_start|pt_contained_circle|pt_contained_poly|query_to_xml|query_to_xml_and_xmlschema|query_to_xmlschema|querytree|quote_ident|quote_literal|quote_nullable|radians|radius|random|range_adjacent|range_after|range_before|range_cmp|range_contained_by|range_contains|range_contains_elem|range_eq|range_ge|range_gist_compress|range_gist_consistent|range_gist_decompress|range_gist_penalty|range_gist_picksplit|range_gist_same|range_gist_union|range_gt|range_in|range_intersect|range_le|range_lt|range_minus|range_ne|range_out|range_overlaps|range_overleft|range_overright|range_recv|range_send|range_typanalyze|range_union|rangesel|rank|record_eq|record_ge|record_gt|record_in|record_le|record_lt|record_ne|record_out|record_recv|record_send|regclass|regclassin|regclassout|regclassrecv|regclasssend|regconfigin|regconfigout|regconfigrecv|regconfigsend|regdictionaryin|regdictionaryout|regdictionaryrecv|regdictionarysend|regexeqjoinsel|regexeqsel|regexnejoinsel|regexnesel|regexp_matches|regexp_replace|regexp_split_to_array|regexp_split_to_table|regoperatorin|regoperatorout|regoperatorrecv|regoperatorsend|regoperin|regoperout|regoperrecv|regopersend|regprocedurein|regprocedureout|regprocedurerecv|regproceduresend|regprocin|regprocout|regprocrecv|regprocsend|regr_avgx|regr_avgy|regr_count|regr_intercept|regr_r2|regr_slope|regr_sxx|regr_sxy|regr_syy|regtypein|regtypeout|regtyperecv|regtypesend|reltime|reltimeeq|reltimege|reltimegt|reltimein|reltimele|reltimelt|reltimene|reltimeout|reltimerecv|reltimesend|repeat|replace|reverse|right|round|row_number|row_to_json|rpad|rtrim|scalargtjoinsel|scalargtsel|scalarltjoinsel|scalarltsel|schema_to_xml|schema_to_xml_and_xmlschema|schema_to_xmlschema|session_user|set_bit|set_byte|set_config|set_masklen|setseed|setval|setweight|shell_in|shell_out|shift_jis_2004_to_euc_jis_2004|shift_jis_2004_to_utf8|shobj_description|sign|similar_escape|sin|sjis_to_euc_jp|sjis_to_mic|sjis_to_utf8|slope|smgreq|smgrin|smgrne|smgrout|spg_kd_choose|spg_kd_config|spg_kd_inner_consistent|spg_kd_picksplit|spg_quad_choose|spg_quad_config|spg_quad_inner_consistent|spg_quad_leaf_consistent|spg_quad_picksplit|spg_range_quad_choose|spg_range_quad_config|spg_range_quad_inner_consistent|spg_range_quad_leaf_consistent|spg_range_quad_picksplit|spg_text_choose|spg_text_config|spg_text_inner_consistent|spg_text_leaf_consistent|spg_text_picksplit|spgbeginscan|spgbuild|spgbuildempty|spgbulkdelete|spgcanreturn|spgcostestimate|spgendscan|spggetbitmap|spggettuple|spginsert|spgmarkpos|spgoptions|spgrescan|spgrestrpos|spgvacuumcleanup|split_part|sqrt|statement_timestamp|stddev|stddev_pop|stddev_samp|string_agg|string_agg_finalfn|string_agg_transfn|string_to_array|strip|strpos|substr|substring|sum|suppress_redundant_updates_trigger|table_to_xml|table_to_xml_and_xmlschema|table_to_xmlschema|tan|text|text_ge|text_gt|text_larger|text_le|text_lt|text_pattern_ge|text_pattern_gt|text_pattern_le|text_pattern_lt|text_smaller|textanycat|textcat|texteq|texticlike|texticnlike|texticregexeq|texticregexne|textin|textlen|textlike|textne|textnlike|textout|textrecv|textregexeq|textregexne|textsend|thesaurus_init|thesaurus_lexize|tideq|tidge|tidgt|tidin|tidlarger|tidle|tidlt|tidne|tidout|tidrecv|tidsend|tidsmaller|time_cmp|time_eq|time_ge|time_gt|time_hash|time_in|time_larger|time_le|time_lt|time_mi_interval|time_mi_time|time_ne|time_out|time_pl_interval|time_recv|time_send|time_smaller|time_transform|timedate_pl|timemi|timenow|timeofday|timepl|timestamp_cmp|timestamp_cmp_date|timestamp_cmp_timestamptz|timestamp_eq|timestamp_eq_date|timestamp_eq_timestamptz|timestamp_ge|timestamp_ge_date|timestamp_ge_timestamptz|timestamp_gt|timestamp_gt_date|timestamp_gt_timestamptz|timestamp_hash|timestamp_in|timestamp_larger|timestamp_le|timestamp_le_date|timestamp_le_timestamptz|timestamp_lt|timestamp_lt_date|timestamp_lt_timestamptz|timestamp_mi|timestamp_mi_interval|timestamp_ne|timestamp_ne_date|timestamp_ne_timestamptz|timestamp_out|timestamp_pl_interval|timestamp_recv|timestamp_send|timestamp_smaller|timestamp_sortsupport|timestamp_transform|timestamptypmodin|timestamptypmodout|timestamptz_cmp|timestamptz_cmp_date|timestamptz_cmp_timestamp|timestamptz_eq|timestamptz_eq_date|timestamptz_eq_timestamp|timestamptz_ge|timestamptz_ge_date|timestamptz_ge_timestamp|timestamptz_gt|timestamptz_gt_date|timestamptz_gt_timestamp|timestamptz_in|timestamptz_larger|timestamptz_le|timestamptz_le_date|timestamptz_le_timestamp|timestamptz_lt|timestamptz_lt_date|timestamptz_lt_timestamp|timestamptz_mi|timestamptz_mi_interval|timestamptz_ne|timestamptz_ne_date|timestamptz_ne_timestamp|timestamptz_out|timestamptz_pl_interval|timestamptz_recv|timestamptz_send|timestamptz_smaller|timestamptztypmodin|timestamptztypmodout|timetypmodin|timetypmodout|timetz_cmp|timetz_eq|timetz_ge|timetz_gt|timetz_hash|timetz_in|timetz_larger|timetz_le|timetz_lt|timetz_mi_interval|timetz_ne|timetz_out|timetz_pl_interval|timetz_recv|timetz_send|timetz_smaller|timetzdate_pl|timetztypmodin|timetztypmodout|timezone|tinterval|tintervalct|tintervalend|tintervaleq|tintervalge|tintervalgt|tintervalin|tintervalle|tintervalleneq|tintervallenge|tintervallengt|tintervallenle|tintervallenlt|tintervallenne|tintervallt|tintervalne|tintervalout|tintervalov|tintervalrecv|tintervalrel|tintervalsame|tintervalsend|tintervalstart|to_ascii|to_char|to_date|to_hex|to_json|to_number|to_timestamp|to_tsquery|to_tsvector|transaction_timestamp|translate|trigger_in|trigger_out|trunc|ts_debug|ts_headline|ts_lexize|ts_match_qv|ts_match_tq|ts_match_tt|ts_match_vq|ts_parse|ts_rank|ts_rank_cd|ts_rewrite|ts_stat|ts_token_type|ts_typanalyze|tsmatchjoinsel|tsmatchsel|tsq_mcontained|tsq_mcontains|tsquery_and|tsquery_cmp|tsquery_eq|tsquery_ge|tsquery_gt|tsquery_le|tsquery_lt|tsquery_ne|tsquery_not|tsquery_or|tsqueryin|tsqueryout|tsqueryrecv|tsquerysend|tsrange|tsrange_subdiff|tstzrange|tstzrange_subdiff|tsvector_cmp|tsvector_concat|tsvector_eq|tsvector_ge|tsvector_gt|tsvector_le|tsvector_lt|tsvector_ne|tsvector_update_trigger|tsvector_update_trigger_column|tsvectorin|tsvectorout|tsvectorrecv|tsvectorsend|txid_current|txid_current_snapshot|txid_snapshot_in|txid_snapshot_out|txid_snapshot_recv|txid_snapshot_send|txid_snapshot_xip|txid_snapshot_xmax|txid_snapshot_xmin|txid_visible_in_snapshot|uhc_to_utf8|unique_key_recheck|unknownin|unknownout|unknownrecv|unknownsend|unnest|upper|upper_inc|upper_inf|utf8_to_ascii|utf8_to_big5|utf8_to_euc_cn|utf8_to_euc_jis_2004|utf8_to_euc_jp|utf8_to_euc_kr|utf8_to_euc_tw|utf8_to_gb18030|utf8_to_gbk|utf8_to_iso8859|utf8_to_iso8859_1|utf8_to_johab|utf8_to_koi8r|utf8_to_koi8u|utf8_to_shift_jis_2004|utf8_to_sjis|utf8_to_uhc|utf8_to_win|uuid_cmp|uuid_eq|uuid_ge|uuid_gt|uuid_hash|uuid_in|uuid_le|uuid_lt|uuid_ne|uuid_out|uuid_recv|uuid_send|var_pop|var_samp|varbit_in|varbit_out|varbit_recv|varbit_send|varbit_transform|varbitcmp|varbiteq|varbitge|varbitgt|varbitle|varbitlt|varbitne|varbittypmodin|varbittypmodout|varchar_transform|varcharin|varcharout|varcharrecv|varcharsend|varchartypmodin|varchartypmodout|variance|version|void_in|void_out|void_recv|void_send|width|width_bucket|win1250_to_latin2|win1250_to_mic|win1251_to_iso|win1251_to_koi8r|win1251_to_mic|win1251_to_win866|win866_to_iso|win866_to_koi8r|win866_to_mic|win866_to_win1251|win_to_utf8|xideq|xideqint4|xidin|xidout|xidrecv|xidsend|xml|xml_in|xml_is_well_formed|xml_is_well_formed_content|xml_is_well_formed_document|xml_out|xml_recv|xml_send|xmlagg|xmlcomment|xmlconcat2|xmlexists|xmlvalidate|xpath|xpath_exists\",n=this.createKeywordMapper({\"support.function\":t,keyword:e},\"identifier\",!0),r=[{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"variable.language\",regex:'\".*?\"'},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:n,regex:\"[a-zA-Z_][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|!!|!~|!~\\\\*|!~~|!~~\\\\*|#|##|#<|#<=|#<>|#=|#>|#>=|%|\\\\&|\\\\&\\\\&|\\\\&<|\\\\&<\\\\||\\\\&>|\\\\*|\\\\+|\\\\-|/|<|<#>|<\\\\->|<<|<<=|<<\\\\||<=|<>|<\\\\?>|<@|<\\\\^|=|>|>=|>>|>>=|>\\\\^|\\\\?#|\\\\?\\\\-|\\\\?\\\\-\\\\||\\\\?\\\\||\\\\?\\\\|\\\\||@|@\\\\-@|@>|@@|@@@|\\\\^|\\\\||\\\\|\\\\&>|\\\\|/|\\\\|>>|\\\\|\\\\||\\\\|\\\\|/|~|~\\\\*|~<=~|~<~|~=|~>=~|~>~|~~|~~\\\\*\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"text\",regex:\"\\\\s+\"}];this.$rules={start:[{token:\"comment\",regex:\"--.*$\"},s.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"keyword.statementBegin\",regex:\"^[a-zA-Z]+\",next:\"statement\"},{token:\"support.buildin\",regex:\"^\\\\\\\\[\\\\S]+.*$\"}],statement:[{token:\"comment\",regex:\"--.*$\"},{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"commentStatement\"},{token:\"statementEnd\",regex:\";\",next:\"start\"},{token:\"string\",regex:\"\\\\$perl\\\\$\",next:\"perl-start\"},{token:\"string\",regex:\"\\\\$python\\\\$\",next:\"python-start\"},{token:\"string\",regex:\"\\\\$json\\\\$\",next:\"json-start\"},{token:\"string\",regex:\"\\\\$(js|javascript)\\\\$\",next:\"javascript-start\"},{token:\"string\",regex:\"\\\\$[\\\\w_0-9]*\\\\$$\",next:\"dollarSql\"},{token:\"string\",regex:\"\\\\$[\\\\w_0-9]*\\\\$\",next:\"dollarStatementString\"}].concat(r),dollarSql:[{token:\"comment\",regex:\"--.*$\"},{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"commentDollarSql\"},{token:\"string\",regex:\"^\\\\$[\\\\w_0-9]*\\\\$\",next:\"statement\"},{token:\"string\",regex:\"\\\\$[\\\\w_0-9]*\\\\$\",next:\"dollarSqlString\"}].concat(r),comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],commentStatement:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"statement\"},{token:\"comment\",regex:\".+\"}],commentDollarSql:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"dollarSql\"},{token:\"comment\",regex:\".+\"}],dollarStatementString:[{token:\"string\",regex:\".*?\\\\$[\\\\w_0-9]*\\\\$\",next:\"statement\"},{token:\"string\",regex:\".+\"}],dollarSqlString:[{token:\"string\",regex:\".*?\\\\$[\\\\w_0-9]*\\\\$\",next:\"dollarSql\"},{token:\"string\",regex:\".+\"}]},this.embedRules(s,\"doc-\",[s.getEndRule(\"start\")]),this.embedRules(u,\"perl-\",[{token:\"string\",regex:\"\\\\$perl\\\\$\",next:\"statement\"}]),this.embedRules(a,\"python-\",[{token:\"string\",regex:\"\\\\$python\\\\$\",next:\"statement\"}]),this.embedRules(f,\"json-\",[{token:\"string\",regex:\"\\\\$json\\\\$\",next:\"statement\"}]),this.embedRules(l,\"javascript-\",[{token:\"string\",regex:\"\\\\$(js|javascript)\\\\$\",next:\"statement\"}])};r.inherits(c,o),t.PgsqlHighlightRules=c}),ace.define(\"ace/mode/pgsql\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/pgsql_highlight_rules\",\"ace/range\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../mode/text\").Mode,s=e(\"./pgsql_highlight_rules\").PgsqlHighlightRules,o=e(\"../range\").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){return e==\"start\"||e==\"keyword.statementEnd\"?\"\":this.$getIndent(t)},this.$id=\"ace/mode/pgsql\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-php.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/php_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=e(\"./html_highlight_rules\").HtmlHighlightRules,a=function(){var e=s,t=i.arrayToMap(\"abs|acos|acosh|addcslashes|addslashes|aggregate|aggregate_info|aggregate_methods|aggregate_methods_by_list|aggregate_methods_by_regexp|aggregate_properties|aggregate_properties_by_list|aggregate_properties_by_regexp|aggregation_info|amqpconnection|amqpexchange|amqpqueue|apache_child_terminate|apache_get_modules|apache_get_version|apache_getenv|apache_lookup_uri|apache_note|apache_request_headers|apache_reset_timeout|apache_response_headers|apache_setenv|apc_add|apc_bin_dump|apc_bin_dumpfile|apc_bin_load|apc_bin_loadfile|apc_cache_info|apc_cas|apc_clear_cache|apc_compile_file|apc_dec|apc_define_constants|apc_delete|apc_delete_file|apc_exists|apc_fetch|apc_inc|apc_load_constants|apc_sma_info|apc_store|apciterator|apd_breakpoint|apd_callstack|apd_clunk|apd_continue|apd_croak|apd_dump_function_table|apd_dump_persistent_resources|apd_dump_regular_resources|apd_echo|apd_get_active_symbols|apd_set_pprof_trace|apd_set_session|apd_set_session_trace|apd_set_session_trace_socket|appenditerator|array|array_change_key_case|array_chunk|array_combine|array_count_values|array_diff|array_diff_assoc|array_diff_key|array_diff_uassoc|array_diff_ukey|array_fill|array_fill_keys|array_filter|array_flip|array_intersect|array_intersect_assoc|array_intersect_key|array_intersect_uassoc|array_intersect_ukey|array_key_exists|array_keys|array_map|array_merge|array_merge_recursive|array_multisort|array_pad|array_pop|array_product|array_push|array_rand|array_reduce|array_replace|array_replace_recursive|array_reverse|array_search|array_shift|array_slice|array_splice|array_sum|array_udiff|array_udiff_assoc|array_udiff_uassoc|array_uintersect|array_uintersect_assoc|array_uintersect_uassoc|array_unique|array_unshift|array_values|array_walk|array_walk_recursive|arrayaccess|arrayiterator|arrayobject|arsort|asin|asinh|asort|assert|assert_options|atan|atan2|atanh|audioproperties|badfunctioncallexception|badmethodcallexception|base64_decode|base64_encode|base_convert|basename|bbcode_add_element|bbcode_add_smiley|bbcode_create|bbcode_destroy|bbcode_parse|bbcode_set_arg_parser|bbcode_set_flags|bcadd|bccomp|bcdiv|bcmod|bcmul|bcompiler_load|bcompiler_load_exe|bcompiler_parse_class|bcompiler_read|bcompiler_write_class|bcompiler_write_constant|bcompiler_write_exe_footer|bcompiler_write_file|bcompiler_write_footer|bcompiler_write_function|bcompiler_write_functions_from_file|bcompiler_write_header|bcompiler_write_included_filename|bcpow|bcpowmod|bcscale|bcsqrt|bcsub|bin2hex|bind_textdomain_codeset|bindec|bindtextdomain|bson_decode|bson_encode|bumpValue|bzclose|bzcompress|bzdecompress|bzerrno|bzerror|bzerrstr|bzflush|bzopen|bzread|bzwrite|cachingiterator|cairo|cairo_create|cairo_font_face_get_type|cairo_font_face_status|cairo_font_options_create|cairo_font_options_equal|cairo_font_options_get_antialias|cairo_font_options_get_hint_metrics|cairo_font_options_get_hint_style|cairo_font_options_get_subpixel_order|cairo_font_options_hash|cairo_font_options_merge|cairo_font_options_set_antialias|cairo_font_options_set_hint_metrics|cairo_font_options_set_hint_style|cairo_font_options_set_subpixel_order|cairo_font_options_status|cairo_format_stride_for_width|cairo_image_surface_create|cairo_image_surface_create_for_data|cairo_image_surface_create_from_png|cairo_image_surface_get_data|cairo_image_surface_get_format|cairo_image_surface_get_height|cairo_image_surface_get_stride|cairo_image_surface_get_width|cairo_matrix_create_scale|cairo_matrix_create_translate|cairo_matrix_invert|cairo_matrix_multiply|cairo_matrix_rotate|cairo_matrix_transform_distance|cairo_matrix_transform_point|cairo_matrix_translate|cairo_pattern_add_color_stop_rgb|cairo_pattern_add_color_stop_rgba|cairo_pattern_create_for_surface|cairo_pattern_create_linear|cairo_pattern_create_radial|cairo_pattern_create_rgb|cairo_pattern_create_rgba|cairo_pattern_get_color_stop_count|cairo_pattern_get_color_stop_rgba|cairo_pattern_get_extend|cairo_pattern_get_filter|cairo_pattern_get_linear_points|cairo_pattern_get_matrix|cairo_pattern_get_radial_circles|cairo_pattern_get_rgba|cairo_pattern_get_surface|cairo_pattern_get_type|cairo_pattern_set_extend|cairo_pattern_set_filter|cairo_pattern_set_matrix|cairo_pattern_status|cairo_pdf_surface_create|cairo_pdf_surface_set_size|cairo_ps_get_levels|cairo_ps_level_to_string|cairo_ps_surface_create|cairo_ps_surface_dsc_begin_page_setup|cairo_ps_surface_dsc_begin_setup|cairo_ps_surface_dsc_comment|cairo_ps_surface_get_eps|cairo_ps_surface_restrict_to_level|cairo_ps_surface_set_eps|cairo_ps_surface_set_size|cairo_scaled_font_create|cairo_scaled_font_extents|cairo_scaled_font_get_ctm|cairo_scaled_font_get_font_face|cairo_scaled_font_get_font_matrix|cairo_scaled_font_get_font_options|cairo_scaled_font_get_scale_matrix|cairo_scaled_font_get_type|cairo_scaled_font_glyph_extents|cairo_scaled_font_status|cairo_scaled_font_text_extents|cairo_surface_copy_page|cairo_surface_create_similar|cairo_surface_finish|cairo_surface_flush|cairo_surface_get_content|cairo_surface_get_device_offset|cairo_surface_get_font_options|cairo_surface_get_type|cairo_surface_mark_dirty|cairo_surface_mark_dirty_rectangle|cairo_surface_set_device_offset|cairo_surface_set_fallback_resolution|cairo_surface_show_page|cairo_surface_status|cairo_surface_write_to_png|cairo_svg_surface_create|cairo_svg_surface_restrict_to_version|cairo_svg_version_to_string|cairoantialias|cairocontent|cairocontext|cairoexception|cairoextend|cairofillrule|cairofilter|cairofontface|cairofontoptions|cairofontslant|cairofonttype|cairofontweight|cairoformat|cairogradientpattern|cairohintmetrics|cairohintstyle|cairoimagesurface|cairolineargradient|cairolinecap|cairolinejoin|cairomatrix|cairooperator|cairopath|cairopattern|cairopatterntype|cairopdfsurface|cairopslevel|cairopssurface|cairoradialgradient|cairoscaledfont|cairosolidpattern|cairostatus|cairosubpixelorder|cairosurface|cairosurfacepattern|cairosurfacetype|cairosvgsurface|cairosvgversion|cairotoyfontface|cal_days_in_month|cal_from_jd|cal_info|cal_to_jd|calcul_hmac|calculhmac|call_user_func|call_user_func_array|call_user_method|call_user_method_array|callbackfilteriterator|ceil|chdb|chdb_create|chdir|checkdate|checkdnsrr|chgrp|chmod|chop|chown|chr|chroot|chunk_split|class_alias|class_exists|class_implements|class_parents|class_uses|classkit_import|classkit_method_add|classkit_method_copy|classkit_method_redefine|classkit_method_remove|classkit_method_rename|clearstatcache|clone|closedir|closelog|collator|com|com_addref|com_create_guid|com_event_sink|com_get|com_get_active_object|com_invoke|com_isenum|com_load|com_load_typelib|com_message_pump|com_print_typeinfo|com_propget|com_propput|com_propset|com_release|com_set|compact|connection_aborted|connection_status|connection_timeout|constant|construct|construct|construct|convert_cyr_string|convert_uudecode|convert_uuencode|copy|cos|cosh|count|count_chars|countable|counter_bump|counter_bump_value|counter_create|counter_get|counter_get_meta|counter_get_named|counter_get_value|counter_reset|counter_reset_value|crack_check|crack_closedict|crack_getlastmessage|crack_opendict|crc32|create_function|crypt|ctype_alnum|ctype_alpha|ctype_cntrl|ctype_digit|ctype_graph|ctype_lower|ctype_print|ctype_punct|ctype_space|ctype_upper|ctype_xdigit|cubrid_affected_rows|cubrid_bind|cubrid_client_encoding|cubrid_close|cubrid_close_prepare|cubrid_close_request|cubrid_col_get|cubrid_col_size|cubrid_column_names|cubrid_column_types|cubrid_commit|cubrid_connect|cubrid_connect_with_url|cubrid_current_oid|cubrid_data_seek|cubrid_db_name|cubrid_disconnect|cubrid_drop|cubrid_errno|cubrid_error|cubrid_error_code|cubrid_error_code_facility|cubrid_error_msg|cubrid_execute|cubrid_fetch|cubrid_fetch_array|cubrid_fetch_assoc|cubrid_fetch_field|cubrid_fetch_lengths|cubrid_fetch_object|cubrid_fetch_row|cubrid_field_flags|cubrid_field_len|cubrid_field_name|cubrid_field_seek|cubrid_field_table|cubrid_field_type|cubrid_free_result|cubrid_get|cubrid_get_autocommit|cubrid_get_charset|cubrid_get_class_name|cubrid_get_client_info|cubrid_get_db_parameter|cubrid_get_server_info|cubrid_insert_id|cubrid_is_instance|cubrid_list_dbs|cubrid_load_from_glo|cubrid_lob_close|cubrid_lob_export|cubrid_lob_get|cubrid_lob_send|cubrid_lob_size|cubrid_lock_read|cubrid_lock_write|cubrid_move_cursor|cubrid_new_glo|cubrid_next_result|cubrid_num_cols|cubrid_num_fields|cubrid_num_rows|cubrid_ping|cubrid_prepare|cubrid_put|cubrid_query|cubrid_real_escape_string|cubrid_result|cubrid_rollback|cubrid_save_to_glo|cubrid_schema|cubrid_send_glo|cubrid_seq_drop|cubrid_seq_insert|cubrid_seq_put|cubrid_set_add|cubrid_set_autocommit|cubrid_set_db_parameter|cubrid_set_drop|cubrid_unbuffered_query|cubrid_version|curl_close|curl_copy_handle|curl_errno|curl_error|curl_exec|curl_getinfo|curl_init|curl_multi_add_handle|curl_multi_close|curl_multi_exec|curl_multi_getcontent|curl_multi_info_read|curl_multi_init|curl_multi_remove_handle|curl_multi_select|curl_setopt|curl_setopt_array|curl_version|current|cyrus_authenticate|cyrus_bind|cyrus_close|cyrus_connect|cyrus_query|cyrus_unbind|date|date_add|date_create|date_create_from_format|date_date_set|date_default_timezone_get|date_default_timezone_set|date_diff|date_format|date_get_last_errors|date_interval_create_from_date_string|date_interval_format|date_isodate_set|date_modify|date_offset_get|date_parse|date_parse_from_format|date_sub|date_sun_info|date_sunrise|date_sunset|date_time_set|date_timestamp_get|date_timestamp_set|date_timezone_get|date_timezone_set|dateinterval|dateperiod|datetime|datetimezone|db2_autocommit|db2_bind_param|db2_client_info|db2_close|db2_column_privileges|db2_columns|db2_commit|db2_conn_error|db2_conn_errormsg|db2_connect|db2_cursor_type|db2_escape_string|db2_exec|db2_execute|db2_fetch_array|db2_fetch_assoc|db2_fetch_both|db2_fetch_object|db2_fetch_row|db2_field_display_size|db2_field_name|db2_field_num|db2_field_precision|db2_field_scale|db2_field_type|db2_field_width|db2_foreign_keys|db2_free_result|db2_free_stmt|db2_get_option|db2_last_insert_id|db2_lob_read|db2_next_result|db2_num_fields|db2_num_rows|db2_pclose|db2_pconnect|db2_prepare|db2_primary_keys|db2_procedure_columns|db2_procedures|db2_result|db2_rollback|db2_server_info|db2_set_option|db2_special_columns|db2_statistics|db2_stmt_error|db2_stmt_errormsg|db2_table_privileges|db2_tables|dba_close|dba_delete|dba_exists|dba_fetch|dba_firstkey|dba_handlers|dba_insert|dba_key_split|dba_list|dba_nextkey|dba_open|dba_optimize|dba_popen|dba_replace|dba_sync|dbase_add_record|dbase_close|dbase_create|dbase_delete_record|dbase_get_header_info|dbase_get_record|dbase_get_record_with_names|dbase_numfields|dbase_numrecords|dbase_open|dbase_pack|dbase_replace_record|dbplus_add|dbplus_aql|dbplus_chdir|dbplus_close|dbplus_curr|dbplus_errcode|dbplus_errno|dbplus_find|dbplus_first|dbplus_flush|dbplus_freealllocks|dbplus_freelock|dbplus_freerlocks|dbplus_getlock|dbplus_getunique|dbplus_info|dbplus_last|dbplus_lockrel|dbplus_next|dbplus_open|dbplus_prev|dbplus_rchperm|dbplus_rcreate|dbplus_rcrtexact|dbplus_rcrtlike|dbplus_resolve|dbplus_restorepos|dbplus_rkeys|dbplus_ropen|dbplus_rquery|dbplus_rrename|dbplus_rsecindex|dbplus_runlink|dbplus_rzap|dbplus_savepos|dbplus_setindex|dbplus_setindexbynumber|dbplus_sql|dbplus_tcl|dbplus_tremove|dbplus_undo|dbplus_undoprepare|dbplus_unlockrel|dbplus_unselect|dbplus_update|dbplus_xlockrel|dbplus_xunlockrel|dbx_close|dbx_compare|dbx_connect|dbx_error|dbx_escape_string|dbx_fetch_row|dbx_query|dbx_sort|dcgettext|dcngettext|deaggregate|debug_backtrace|debug_print_backtrace|debug_zval_dump|decbin|dechex|decoct|define|define_syslog_variables|defined|deg2rad|delete|dgettext|die|dio_close|dio_fcntl|dio_open|dio_read|dio_seek|dio_stat|dio_tcsetattr|dio_truncate|dio_write|dir|directoryiterator|dirname|disk_free_space|disk_total_space|diskfreespace|dl|dngettext|dns_check_record|dns_get_mx|dns_get_record|dom_import_simplexml|domainexception|domattr|domattribute_name|domattribute_set_value|domattribute_specified|domattribute_value|domcharacterdata|domcomment|domdocument|domdocument_add_root|domdocument_create_attribute|domdocument_create_cdata_section|domdocument_create_comment|domdocument_create_element|domdocument_create_element_ns|domdocument_create_entity_reference|domdocument_create_processing_instruction|domdocument_create_text_node|domdocument_doctype|domdocument_document_element|domdocument_dump_file|domdocument_dump_mem|domdocument_get_element_by_id|domdocument_get_elements_by_tagname|domdocument_html_dump_mem|domdocument_xinclude|domdocumentfragment|domdocumenttype|domdocumenttype_entities|domdocumenttype_internal_subset|domdocumenttype_name|domdocumenttype_notations|domdocumenttype_public_id|domdocumenttype_system_id|domelement|domelement_get_attribute|domelement_get_attribute_node|domelement_get_elements_by_tagname|domelement_has_attribute|domelement_remove_attribute|domelement_set_attribute|domelement_set_attribute_node|domelement_tagname|domentity|domentityreference|domexception|domimplementation|domnamednodemap|domnode|domnode_add_namespace|domnode_append_child|domnode_append_sibling|domnode_attributes|domnode_child_nodes|domnode_clone_node|domnode_dump_node|domnode_first_child|domnode_get_content|domnode_has_attributes|domnode_has_child_nodes|domnode_insert_before|domnode_is_blank_node|domnode_last_child|domnode_next_sibling|domnode_node_name|domnode_node_type|domnode_node_value|domnode_owner_document|domnode_parent_node|domnode_prefix|domnode_previous_sibling|domnode_remove_child|domnode_replace_child|domnode_replace_node|domnode_set_content|domnode_set_name|domnode_set_namespace|domnode_unlink_node|domnodelist|domnotation|domprocessinginstruction|domprocessinginstruction_data|domprocessinginstruction_target|domtext|domxml_new_doc|domxml_open_file|domxml_open_mem|domxml_version|domxml_xmltree|domxml_xslt_stylesheet|domxml_xslt_stylesheet_doc|domxml_xslt_stylesheet_file|domxml_xslt_version|domxpath|domxsltstylesheet_process|domxsltstylesheet_result_dump_file|domxsltstylesheet_result_dump_mem|dotnet|dotnet_load|doubleval|each|easter_date|easter_days|echo|empty|emptyiterator|enchant_broker_describe|enchant_broker_dict_exists|enchant_broker_free|enchant_broker_free_dict|enchant_broker_get_error|enchant_broker_init|enchant_broker_list_dicts|enchant_broker_request_dict|enchant_broker_request_pwl_dict|enchant_broker_set_ordering|enchant_dict_add_to_personal|enchant_dict_add_to_session|enchant_dict_check|enchant_dict_describe|enchant_dict_get_error|enchant_dict_is_in_session|enchant_dict_quick_check|enchant_dict_store_replacement|enchant_dict_suggest|end|ereg|ereg_replace|eregi|eregi_replace|error_get_last|error_log|error_reporting|errorexception|escapeshellarg|escapeshellcmd|eval|event_add|event_base_free|event_base_loop|event_base_loopbreak|event_base_loopexit|event_base_new|event_base_priority_init|event_base_set|event_buffer_base_set|event_buffer_disable|event_buffer_enable|event_buffer_fd_set|event_buffer_free|event_buffer_new|event_buffer_priority_set|event_buffer_read|event_buffer_set_callback|event_buffer_timeout_set|event_buffer_watermark_set|event_buffer_write|event_del|event_free|event_new|event_set|exception|exec|exif_imagetype|exif_read_data|exif_tagname|exif_thumbnail|exit|exp|expect_expectl|expect_popen|explode|expm1|export|export|extension_loaded|extract|ezmlm_hash|fam_cancel_monitor|fam_close|fam_monitor_collection|fam_monitor_directory|fam_monitor_file|fam_next_event|fam_open|fam_pending|fam_resume_monitor|fam_suspend_monitor|fbsql_affected_rows|fbsql_autocommit|fbsql_blob_size|fbsql_change_user|fbsql_clob_size|fbsql_close|fbsql_commit|fbsql_connect|fbsql_create_blob|fbsql_create_clob|fbsql_create_db|fbsql_data_seek|fbsql_database|fbsql_database_password|fbsql_db_query|fbsql_db_status|fbsql_drop_db|fbsql_errno|fbsql_error|fbsql_fetch_array|fbsql_fetch_assoc|fbsql_fetch_field|fbsql_fetch_lengths|fbsql_fetch_object|fbsql_fetch_row|fbsql_field_flags|fbsql_field_len|fbsql_field_name|fbsql_field_seek|fbsql_field_table|fbsql_field_type|fbsql_free_result|fbsql_get_autostart_info|fbsql_hostname|fbsql_insert_id|fbsql_list_dbs|fbsql_list_fields|fbsql_list_tables|fbsql_next_result|fbsql_num_fields|fbsql_num_rows|fbsql_password|fbsql_pconnect|fbsql_query|fbsql_read_blob|fbsql_read_clob|fbsql_result|fbsql_rollback|fbsql_rows_fetched|fbsql_select_db|fbsql_set_characterset|fbsql_set_lob_mode|fbsql_set_password|fbsql_set_transaction|fbsql_start_db|fbsql_stop_db|fbsql_table_name|fbsql_tablename|fbsql_username|fbsql_warnings|fclose|fdf_add_doc_javascript|fdf_add_template|fdf_close|fdf_create|fdf_enum_values|fdf_errno|fdf_error|fdf_get_ap|fdf_get_attachment|fdf_get_encoding|fdf_get_file|fdf_get_flags|fdf_get_opt|fdf_get_status|fdf_get_value|fdf_get_version|fdf_header|fdf_next_field_name|fdf_open|fdf_open_string|fdf_remove_item|fdf_save|fdf_save_string|fdf_set_ap|fdf_set_encoding|fdf_set_file|fdf_set_flags|fdf_set_javascript_action|fdf_set_on_import_javascript|fdf_set_opt|fdf_set_status|fdf_set_submit_form_action|fdf_set_target_frame|fdf_set_value|fdf_set_version|feof|fflush|fgetc|fgetcsv|fgets|fgetss|file|file_exists|file_get_contents|file_put_contents|fileatime|filectime|filegroup|fileinode|filemtime|fileowner|fileperms|filepro|filepro_fieldcount|filepro_fieldname|filepro_fieldtype|filepro_fieldwidth|filepro_retrieve|filepro_rowcount|filesize|filesystemiterator|filetype|filter_has_var|filter_id|filter_input|filter_input_array|filter_list|filter_var|filter_var_array|filteriterator|finfo_buffer|finfo_close|finfo_file|finfo_open|finfo_set_flags|floatval|flock|floor|flush|fmod|fnmatch|fopen|forward_static_call|forward_static_call_array|fpassthru|fprintf|fputcsv|fputs|fread|frenchtojd|fribidi_log2vis|fscanf|fseek|fsockopen|fstat|ftell|ftok|ftp_alloc|ftp_cdup|ftp_chdir|ftp_chmod|ftp_close|ftp_connect|ftp_delete|ftp_exec|ftp_fget|ftp_fput|ftp_get|ftp_get_option|ftp_login|ftp_mdtm|ftp_mkdir|ftp_nb_continue|ftp_nb_fget|ftp_nb_fput|ftp_nb_get|ftp_nb_put|ftp_nlist|ftp_pasv|ftp_put|ftp_pwd|ftp_quit|ftp_raw|ftp_rawlist|ftp_rename|ftp_rmdir|ftp_set_option|ftp_site|ftp_size|ftp_ssl_connect|ftp_systype|ftruncate|func_get_arg|func_get_args|func_num_args|function_exists|fwrite|gc_collect_cycles|gc_disable|gc_enable|gc_enabled|gd_info|gearmanclient|gearmanjob|gearmantask|gearmanworker|geoip_continent_code_by_name|geoip_country_code3_by_name|geoip_country_code_by_name|geoip_country_name_by_name|geoip_database_info|geoip_db_avail|geoip_db_filename|geoip_db_get_all_info|geoip_id_by_name|geoip_isp_by_name|geoip_org_by_name|geoip_record_by_name|geoip_region_by_name|geoip_region_name_by_code|geoip_time_zone_by_country_and_region|getMeta|getNamed|getValue|get_browser|get_called_class|get_cfg_var|get_class|get_class_methods|get_class_vars|get_current_user|get_declared_classes|get_declared_interfaces|get_declared_traits|get_defined_constants|get_defined_functions|get_defined_vars|get_extension_funcs|get_headers|get_html_translation_table|get_include_path|get_included_files|get_loaded_extensions|get_magic_quotes_gpc|get_magic_quotes_runtime|get_meta_tags|get_object_vars|get_parent_class|get_required_files|get_resource_type|getallheaders|getconstant|getconstants|getconstructor|getcwd|getdate|getdefaultproperties|getdoccomment|getendline|getenv|getextension|getextensionname|getfilename|gethostbyaddr|gethostbyname|gethostbynamel|gethostname|getimagesize|getinterfacenames|getinterfaces|getlastmod|getmethod|getmethods|getmodifiers|getmxrr|getmygid|getmyinode|getmypid|getmyuid|getname|getnamespacename|getopt|getparentclass|getproperties|getproperty|getprotobyname|getprotobynumber|getrandmax|getrusage|getservbyname|getservbyport|getshortname|getstartline|getstaticproperties|getstaticpropertyvalue|gettext|gettimeofday|gettype|glob|globiterator|gmagick|gmagickdraw|gmagickpixel|gmdate|gmmktime|gmp_abs|gmp_add|gmp_and|gmp_clrbit|gmp_cmp|gmp_com|gmp_div|gmp_div_q|gmp_div_qr|gmp_div_r|gmp_divexact|gmp_fact|gmp_gcd|gmp_gcdext|gmp_hamdist|gmp_init|gmp_intval|gmp_invert|gmp_jacobi|gmp_legendre|gmp_mod|gmp_mul|gmp_neg|gmp_nextprime|gmp_or|gmp_perfect_square|gmp_popcount|gmp_pow|gmp_powm|gmp_prob_prime|gmp_random|gmp_scan0|gmp_scan1|gmp_setbit|gmp_sign|gmp_sqrt|gmp_sqrtrem|gmp_strval|gmp_sub|gmp_testbit|gmp_xor|gmstrftime|gnupg_adddecryptkey|gnupg_addencryptkey|gnupg_addsignkey|gnupg_cleardecryptkeys|gnupg_clearencryptkeys|gnupg_clearsignkeys|gnupg_decrypt|gnupg_decryptverify|gnupg_encrypt|gnupg_encryptsign|gnupg_export|gnupg_geterror|gnupg_getprotocol|gnupg_import|gnupg_init|gnupg_keyinfo|gnupg_setarmor|gnupg_seterrormode|gnupg_setsignmode|gnupg_sign|gnupg_verify|gopher_parsedir|grapheme_extract|grapheme_stripos|grapheme_stristr|grapheme_strlen|grapheme_strpos|grapheme_strripos|grapheme_strrpos|grapheme_strstr|grapheme_substr|gregoriantojd|gupnp_context_get_host_ip|gupnp_context_get_port|gupnp_context_get_subscription_timeout|gupnp_context_host_path|gupnp_context_new|gupnp_context_set_subscription_timeout|gupnp_context_timeout_add|gupnp_context_unhost_path|gupnp_control_point_browse_start|gupnp_control_point_browse_stop|gupnp_control_point_callback_set|gupnp_control_point_new|gupnp_device_action_callback_set|gupnp_device_info_get|gupnp_device_info_get_service|gupnp_root_device_get_available|gupnp_root_device_get_relative_location|gupnp_root_device_new|gupnp_root_device_set_available|gupnp_root_device_start|gupnp_root_device_stop|gupnp_service_action_get|gupnp_service_action_return|gupnp_service_action_return_error|gupnp_service_action_set|gupnp_service_freeze_notify|gupnp_service_info_get|gupnp_service_info_get_introspection|gupnp_service_introspection_get_state_variable|gupnp_service_notify|gupnp_service_proxy_action_get|gupnp_service_proxy_action_set|gupnp_service_proxy_add_notify|gupnp_service_proxy_callback_set|gupnp_service_proxy_get_subscribed|gupnp_service_proxy_remove_notify|gupnp_service_proxy_set_subscribed|gupnp_service_thaw_notify|gzclose|gzcompress|gzdecode|gzdeflate|gzencode|gzeof|gzfile|gzgetc|gzgets|gzgetss|gzinflate|gzopen|gzpassthru|gzputs|gzread|gzrewind|gzseek|gztell|gzuncompress|gzwrite|halt_compiler|haruannotation|haruannotation_setborderstyle|haruannotation_sethighlightmode|haruannotation_seticon|haruannotation_setopened|harudestination|harudestination_setfit|harudestination_setfitb|harudestination_setfitbh|harudestination_setfitbv|harudestination_setfith|harudestination_setfitr|harudestination_setfitv|harudestination_setxyz|harudoc|harudoc_addpage|harudoc_addpagelabel|harudoc_construct|harudoc_createoutline|harudoc_getcurrentencoder|harudoc_getcurrentpage|harudoc_getencoder|harudoc_getfont|harudoc_getinfoattr|harudoc_getpagelayout|harudoc_getpagemode|harudoc_getstreamsize|harudoc_insertpage|harudoc_loadjpeg|harudoc_loadpng|harudoc_loadraw|harudoc_loadttc|harudoc_loadttf|harudoc_loadtype1|harudoc_output|harudoc_readfromstream|harudoc_reseterror|harudoc_resetstream|harudoc_save|harudoc_savetostream|harudoc_setcompressionmode|harudoc_setcurrentencoder|harudoc_setencryptionmode|harudoc_setinfoattr|harudoc_setinfodateattr|harudoc_setopenaction|harudoc_setpagelayout|harudoc_setpagemode|harudoc_setpagesconfiguration|harudoc_setpassword|harudoc_setpermission|harudoc_usecnsencodings|harudoc_usecnsfonts|harudoc_usecntencodings|harudoc_usecntfonts|harudoc_usejpencodings|harudoc_usejpfonts|harudoc_usekrencodings|harudoc_usekrfonts|haruencoder|haruencoder_getbytetype|haruencoder_gettype|haruencoder_getunicode|haruencoder_getwritingmode|haruexception|harufont|harufont_getascent|harufont_getcapheight|harufont_getdescent|harufont_getencodingname|harufont_getfontname|harufont_gettextwidth|harufont_getunicodewidth|harufont_getxheight|harufont_measuretext|haruimage|haruimage_getbitspercomponent|haruimage_getcolorspace|haruimage_getheight|haruimage_getsize|haruimage_getwidth|haruimage_setcolormask|haruimage_setmaskimage|haruoutline|haruoutline_setdestination|haruoutline_setopened|harupage|harupage_arc|harupage_begintext|harupage_circle|harupage_closepath|harupage_concat|harupage_createdestination|harupage_createlinkannotation|harupage_createtextannotation|harupage_createurlannotation|harupage_curveto|harupage_curveto2|harupage_curveto3|harupage_drawimage|harupage_ellipse|harupage_endpath|harupage_endtext|harupage_eofill|harupage_eofillstroke|harupage_fill|harupage_fillstroke|harupage_getcharspace|harupage_getcmykfill|harupage_getcmykstroke|harupage_getcurrentfont|harupage_getcurrentfontsize|harupage_getcurrentpos|harupage_getcurrenttextpos|harupage_getdash|harupage_getfillingcolorspace|harupage_getflatness|harupage_getgmode|harupage_getgrayfill|harupage_getgraystroke|harupage_getheight|harupage_gethorizontalscaling|harupage_getlinecap|harupage_getlinejoin|harupage_getlinewidth|harupage_getmiterlimit|harupage_getrgbfill|harupage_getrgbstroke|harupage_getstrokingcolorspace|harupage_gettextleading|harupage_gettextmatrix|harupage_gettextrenderingmode|harupage_gettextrise|harupage_gettextwidth|harupage_gettransmatrix|harupage_getwidth|harupage_getwordspace|harupage_lineto|harupage_measuretext|harupage_movetextpos|harupage_moveto|harupage_movetonextline|harupage_rectangle|harupage_setcharspace|harupage_setcmykfill|harupage_setcmykstroke|harupage_setdash|harupage_setflatness|harupage_setfontandsize|harupage_setgrayfill|harupage_setgraystroke|harupage_setheight|harupage_sethorizontalscaling|harupage_setlinecap|harupage_setlinejoin|harupage_setlinewidth|harupage_setmiterlimit|harupage_setrgbfill|harupage_setrgbstroke|harupage_setrotate|harupage_setsize|harupage_setslideshow|harupage_settextleading|harupage_settextmatrix|harupage_settextrenderingmode|harupage_settextrise|harupage_setwidth|harupage_setwordspace|harupage_showtext|harupage_showtextnextline|harupage_stroke|harupage_textout|harupage_textrect|hasconstant|hash|hash_algos|hash_copy|hash_file|hash_final|hash_hmac|hash_hmac_file|hash_init|hash_update|hash_update_file|hash_update_stream|hasmethod|hasproperty|header|header_register_callback|header_remove|headers_list|headers_sent|hebrev|hebrevc|hex2bin|hexdec|highlight_file|highlight_string|html_entity_decode|htmlentities|htmlspecialchars|htmlspecialchars_decode|http_build_cookie|http_build_query|http_build_str|http_build_url|http_cache_etag|http_cache_last_modified|http_chunked_decode|http_date|http_deflate|http_get|http_get_request_body|http_get_request_body_stream|http_get_request_headers|http_head|http_inflate|http_match_etag|http_match_modified|http_match_request_header|http_negotiate_charset|http_negotiate_content_type|http_negotiate_language|http_parse_cookie|http_parse_headers|http_parse_message|http_parse_params|http_persistent_handles_clean|http_persistent_handles_count|http_persistent_handles_ident|http_post_data|http_post_fields|http_put_data|http_put_file|http_put_stream|http_redirect|http_request|http_request_body_encode|http_request_method_exists|http_request_method_name|http_request_method_register|http_request_method_unregister|http_response_code|http_send_content_disposition|http_send_content_type|http_send_data|http_send_file|http_send_last_modified|http_send_status|http_send_stream|http_support|http_throttle|httpdeflatestream|httpdeflatestream_construct|httpdeflatestream_factory|httpdeflatestream_finish|httpdeflatestream_flush|httpdeflatestream_update|httpinflatestream|httpinflatestream_construct|httpinflatestream_factory|httpinflatestream_finish|httpinflatestream_flush|httpinflatestream_update|httpmessage|httpmessage_addheaders|httpmessage_construct|httpmessage_detach|httpmessage_factory|httpmessage_fromenv|httpmessage_fromstring|httpmessage_getbody|httpmessage_getheader|httpmessage_getheaders|httpmessage_gethttpversion|httpmessage_getparentmessage|httpmessage_getrequestmethod|httpmessage_getrequesturl|httpmessage_getresponsecode|httpmessage_getresponsestatus|httpmessage_gettype|httpmessage_guesscontenttype|httpmessage_prepend|httpmessage_reverse|httpmessage_send|httpmessage_setbody|httpmessage_setheaders|httpmessage_sethttpversion|httpmessage_setrequestmethod|httpmessage_setrequesturl|httpmessage_setresponsecode|httpmessage_setresponsestatus|httpmessage_settype|httpmessage_tomessagetypeobject|httpmessage_tostring|httpquerystring|httpquerystring_construct|httpquerystring_get|httpquerystring_mod|httpquerystring_set|httpquerystring_singleton|httpquerystring_toarray|httpquerystring_tostring|httpquerystring_xlate|httprequest|httprequest_addcookies|httprequest_addheaders|httprequest_addpostfields|httprequest_addpostfile|httprequest_addputdata|httprequest_addquerydata|httprequest_addrawpostdata|httprequest_addssloptions|httprequest_clearhistory|httprequest_construct|httprequest_enablecookies|httprequest_getcontenttype|httprequest_getcookies|httprequest_getheaders|httprequest_gethistory|httprequest_getmethod|httprequest_getoptions|httprequest_getpostfields|httprequest_getpostfiles|httprequest_getputdata|httprequest_getputfile|httprequest_getquerydata|httprequest_getrawpostdata|httprequest_getrawrequestmessage|httprequest_getrawresponsemessage|httprequest_getrequestmessage|httprequest_getresponsebody|httprequest_getresponsecode|httprequest_getresponsecookies|httprequest_getresponsedata|httprequest_getresponseheader|httprequest_getresponseinfo|httprequest_getresponsemessage|httprequest_getresponsestatus|httprequest_getssloptions|httprequest_geturl|httprequest_resetcookies|httprequest_send|httprequest_setcontenttype|httprequest_setcookies|httprequest_setheaders|httprequest_setmethod|httprequest_setoptions|httprequest_setpostfields|httprequest_setpostfiles|httprequest_setputdata|httprequest_setputfile|httprequest_setquerydata|httprequest_setrawpostdata|httprequest_setssloptions|httprequest_seturl|httprequestpool|httprequestpool_attach|httprequestpool_construct|httprequestpool_destruct|httprequestpool_detach|httprequestpool_getattachedrequests|httprequestpool_getfinishedrequests|httprequestpool_reset|httprequestpool_send|httprequestpool_socketperform|httprequestpool_socketselect|httpresponse|httpresponse_capture|httpresponse_getbuffersize|httpresponse_getcache|httpresponse_getcachecontrol|httpresponse_getcontentdisposition|httpresponse_getcontenttype|httpresponse_getdata|httpresponse_getetag|httpresponse_getfile|httpresponse_getgzip|httpresponse_getheader|httpresponse_getlastmodified|httpresponse_getrequestbody|httpresponse_getrequestbodystream|httpresponse_getrequestheaders|httpresponse_getstream|httpresponse_getthrottledelay|httpresponse_guesscontenttype|httpresponse_redirect|httpresponse_send|httpresponse_setbuffersize|httpresponse_setcache|httpresponse_setcachecontrol|httpresponse_setcontentdisposition|httpresponse_setcontenttype|httpresponse_setdata|httpresponse_setetag|httpresponse_setfile|httpresponse_setgzip|httpresponse_setheader|httpresponse_setlastmodified|httpresponse_setstream|httpresponse_setthrottledelay|httpresponse_status|hw_array2objrec|hw_changeobject|hw_children|hw_childrenobj|hw_close|hw_connect|hw_connection_info|hw_cp|hw_deleteobject|hw_docbyanchor|hw_docbyanchorobj|hw_document_attributes|hw_document_bodytag|hw_document_content|hw_document_setcontent|hw_document_size|hw_dummy|hw_edittext|hw_error|hw_errormsg|hw_free_document|hw_getanchors|hw_getanchorsobj|hw_getandlock|hw_getchildcoll|hw_getchildcollobj|hw_getchilddoccoll|hw_getchilddoccollobj|hw_getobject|hw_getobjectbyquery|hw_getobjectbyquerycoll|hw_getobjectbyquerycollobj|hw_getobjectbyqueryobj|hw_getparents|hw_getparentsobj|hw_getrellink|hw_getremote|hw_getremotechildren|hw_getsrcbydestobj|hw_gettext|hw_getusername|hw_identify|hw_incollections|hw_info|hw_inscoll|hw_insdoc|hw_insertanchors|hw_insertdocument|hw_insertobject|hw_mapid|hw_modifyobject|hw_mv|hw_new_document|hw_objrec2array|hw_output_document|hw_pconnect|hw_pipedocument|hw_root|hw_setlinkroot|hw_stat|hw_unlock|hw_who|hwapi_attribute|hwapi_attribute_key|hwapi_attribute_langdepvalue|hwapi_attribute_value|hwapi_attribute_values|hwapi_checkin|hwapi_checkout|hwapi_children|hwapi_content|hwapi_content_mimetype|hwapi_content_read|hwapi_copy|hwapi_dbstat|hwapi_dcstat|hwapi_dstanchors|hwapi_dstofsrcanchor|hwapi_error_count|hwapi_error_reason|hwapi_find|hwapi_ftstat|hwapi_hgcsp|hwapi_hwstat|hwapi_identify|hwapi_info|hwapi_insert|hwapi_insertanchor|hwapi_insertcollection|hwapi_insertdocument|hwapi_link|hwapi_lock|hwapi_move|hwapi_new_content|hwapi_object|hwapi_object_assign|hwapi_object_attreditable|hwapi_object_count|hwapi_object_insert|hwapi_object_new|hwapi_object_remove|hwapi_object_title|hwapi_object_value|hwapi_objectbyanchor|hwapi_parents|hwapi_reason_description|hwapi_reason_type|hwapi_remove|hwapi_replace|hwapi_setcommittedversion|hwapi_srcanchors|hwapi_srcsofdst|hwapi_unlock|hwapi_user|hwapi_userlist|hypot|ibase_add_user|ibase_affected_rows|ibase_backup|ibase_blob_add|ibase_blob_cancel|ibase_blob_close|ibase_blob_create|ibase_blob_echo|ibase_blob_get|ibase_blob_import|ibase_blob_info|ibase_blob_open|ibase_close|ibase_commit|ibase_commit_ret|ibase_connect|ibase_db_info|ibase_delete_user|ibase_drop_db|ibase_errcode|ibase_errmsg|ibase_execute|ibase_fetch_assoc|ibase_fetch_object|ibase_fetch_row|ibase_field_info|ibase_free_event_handler|ibase_free_query|ibase_free_result|ibase_gen_id|ibase_maintain_db|ibase_modify_user|ibase_name_result|ibase_num_fields|ibase_num_params|ibase_param_info|ibase_pconnect|ibase_prepare|ibase_query|ibase_restore|ibase_rollback|ibase_rollback_ret|ibase_server_info|ibase_service_attach|ibase_service_detach|ibase_set_event_handler|ibase_timefmt|ibase_trans|ibase_wait_event|iconv|iconv_get_encoding|iconv_mime_decode|iconv_mime_decode_headers|iconv_mime_encode|iconv_set_encoding|iconv_strlen|iconv_strpos|iconv_strrpos|iconv_substr|id3_get_frame_long_name|id3_get_frame_short_name|id3_get_genre_id|id3_get_genre_list|id3_get_genre_name|id3_get_tag|id3_get_version|id3_remove_tag|id3_set_tag|id3v2attachedpictureframe|id3v2frame|id3v2tag|idate|idn_to_ascii|idn_to_unicode|idn_to_utf8|ifx_affected_rows|ifx_blobinfile_mode|ifx_byteasvarchar|ifx_close|ifx_connect|ifx_copy_blob|ifx_create_blob|ifx_create_char|ifx_do|ifx_error|ifx_errormsg|ifx_fetch_row|ifx_fieldproperties|ifx_fieldtypes|ifx_free_blob|ifx_free_char|ifx_free_result|ifx_get_blob|ifx_get_char|ifx_getsqlca|ifx_htmltbl_result|ifx_nullformat|ifx_num_fields|ifx_num_rows|ifx_pconnect|ifx_prepare|ifx_query|ifx_textasvarchar|ifx_update_blob|ifx_update_char|ifxus_close_slob|ifxus_create_slob|ifxus_free_slob|ifxus_open_slob|ifxus_read_slob|ifxus_seek_slob|ifxus_tell_slob|ifxus_write_slob|ignore_user_abort|iis_add_server|iis_get_dir_security|iis_get_script_map|iis_get_server_by_comment|iis_get_server_by_path|iis_get_server_rights|iis_get_service_state|iis_remove_server|iis_set_app_settings|iis_set_dir_security|iis_set_script_map|iis_set_server_rights|iis_start_server|iis_start_service|iis_stop_server|iis_stop_service|image2wbmp|image_type_to_extension|image_type_to_mime_type|imagealphablending|imageantialias|imagearc|imagechar|imagecharup|imagecolorallocate|imagecolorallocatealpha|imagecolorat|imagecolorclosest|imagecolorclosestalpha|imagecolorclosesthwb|imagecolordeallocate|imagecolorexact|imagecolorexactalpha|imagecolormatch|imagecolorresolve|imagecolorresolvealpha|imagecolorset|imagecolorsforindex|imagecolorstotal|imagecolortransparent|imageconvolution|imagecopy|imagecopymerge|imagecopymergegray|imagecopyresampled|imagecopyresized|imagecreate|imagecreatefromgd|imagecreatefromgd2|imagecreatefromgd2part|imagecreatefromgif|imagecreatefromjpeg|imagecreatefrompng|imagecreatefromstring|imagecreatefromwbmp|imagecreatefromxbm|imagecreatefromxpm|imagecreatetruecolor|imagedashedline|imagedestroy|imageellipse|imagefill|imagefilledarc|imagefilledellipse|imagefilledpolygon|imagefilledrectangle|imagefilltoborder|imagefilter|imagefontheight|imagefontwidth|imageftbbox|imagefttext|imagegammacorrect|imagegd|imagegd2|imagegif|imagegrabscreen|imagegrabwindow|imageinterlace|imageistruecolor|imagejpeg|imagelayereffect|imageline|imageloadfont|imagepalettecopy|imagepng|imagepolygon|imagepsbbox|imagepsencodefont|imagepsextendfont|imagepsfreefont|imagepsloadfont|imagepsslantfont|imagepstext|imagerectangle|imagerotate|imagesavealpha|imagesetbrush|imagesetpixel|imagesetstyle|imagesetthickness|imagesettile|imagestring|imagestringup|imagesx|imagesy|imagetruecolortopalette|imagettfbbox|imagettftext|imagetypes|imagewbmp|imagexbm|imagick|imagick_adaptiveblurimage|imagick_adaptiveresizeimage|imagick_adaptivesharpenimage|imagick_adaptivethresholdimage|imagick_addimage|imagick_addnoiseimage|imagick_affinetransformimage|imagick_animateimages|imagick_annotateimage|imagick_appendimages|imagick_averageimages|imagick_blackthresholdimage|imagick_blurimage|imagick_borderimage|imagick_charcoalimage|imagick_chopimage|imagick_clear|imagick_clipimage|imagick_clippathimage|imagick_clone|imagick_clutimage|imagick_coalesceimages|imagick_colorfloodfillimage|imagick_colorizeimage|imagick_combineimages|imagick_commentimage|imagick_compareimagechannels|imagick_compareimagelayers|imagick_compareimages|imagick_compositeimage|imagick_construct|imagick_contrastimage|imagick_contraststretchimage|imagick_convolveimage|imagick_cropimage|imagick_cropthumbnailimage|imagick_current|imagick_cyclecolormapimage|imagick_decipherimage|imagick_deconstructimages|imagick_deleteimageartifact|imagick_despeckleimage|imagick_destroy|imagick_displayimage|imagick_displayimages|imagick_distortimage|imagick_drawimage|imagick_edgeimage|imagick_embossimage|imagick_encipherimage|imagick_enhanceimage|imagick_equalizeimage|imagick_evaluateimage|imagick_extentimage|imagick_flattenimages|imagick_flipimage|imagick_floodfillpaintimage|imagick_flopimage|imagick_frameimage|imagick_fximage|imagick_gammaimage|imagick_gaussianblurimage|imagick_getcolorspace|imagick_getcompression|imagick_getcompressionquality|imagick_getcopyright|imagick_getfilename|imagick_getfont|imagick_getformat|imagick_getgravity|imagick_gethomeurl|imagick_getimage|imagick_getimagealphachannel|imagick_getimageartifact|imagick_getimagebackgroundcolor|imagick_getimageblob|imagick_getimageblueprimary|imagick_getimagebordercolor|imagick_getimagechanneldepth|imagick_getimagechanneldistortion|imagick_getimagechanneldistortions|imagick_getimagechannelextrema|imagick_getimagechannelmean|imagick_getimagechannelrange|imagick_getimagechannelstatistics|imagick_getimageclipmask|imagick_getimagecolormapcolor|imagick_getimagecolors|imagick_getimagecolorspace|imagick_getimagecompose|imagick_getimagecompression|imagick_getimagecompressionquality|imagick_getimagedelay|imagick_getimagedepth|imagick_getimagedispose|imagick_getimagedistortion|imagick_getimageextrema|imagick_getimagefilename|imagick_getimageformat|imagick_getimagegamma|imagick_getimagegeometry|imagick_getimagegravity|imagick_getimagegreenprimary|imagick_getimageheight|imagick_getimagehistogram|imagick_getimageindex|imagick_getimageinterlacescheme|imagick_getimageinterpolatemethod|imagick_getimageiterations|imagick_getimagelength|imagick_getimagemagicklicense|imagick_getimagematte|imagick_getimagemattecolor|imagick_getimageorientation|imagick_getimagepage|imagick_getimagepixelcolor|imagick_getimageprofile|imagick_getimageprofiles|imagick_getimageproperties|imagick_getimageproperty|imagick_getimageredprimary|imagick_getimageregion|imagick_getimagerenderingintent|imagick_getimageresolution|imagick_getimagesblob|imagick_getimagescene|imagick_getimagesignature|imagick_getimagesize|imagick_getimagetickspersecond|imagick_getimagetotalinkdensity|imagick_getimagetype|imagick_getimageunits|imagick_getimagevirtualpixelmethod|imagick_getimagewhitepoint|imagick_getimagewidth|imagick_getinterlacescheme|imagick_getiteratorindex|imagick_getnumberimages|imagick_getoption|imagick_getpackagename|imagick_getpage|imagick_getpixeliterator|imagick_getpixelregioniterator|imagick_getpointsize|imagick_getquantumdepth|imagick_getquantumrange|imagick_getreleasedate|imagick_getresource|imagick_getresourcelimit|imagick_getsamplingfactors|imagick_getsize|imagick_getsizeoffset|imagick_getversion|imagick_hasnextimage|imagick_haspreviousimage|imagick_identifyimage|imagick_implodeimage|imagick_labelimage|imagick_levelimage|imagick_linearstretchimage|imagick_liquidrescaleimage|imagick_magnifyimage|imagick_mapimage|imagick_mattefloodfillimage|imagick_medianfilterimage|imagick_mergeimagelayers|imagick_minifyimage|imagick_modulateimage|imagick_montageimage|imagick_morphimages|imagick_mosaicimages|imagick_motionblurimage|imagick_negateimage|imagick_newimage|imagick_newpseudoimage|imagick_nextimage|imagick_normalizeimage|imagick_oilpaintimage|imagick_opaquepaintimage|imagick_optimizeimagelayers|imagick_orderedposterizeimage|imagick_paintfloodfillimage|imagick_paintopaqueimage|imagick_painttransparentimage|imagick_pingimage|imagick_pingimageblob|imagick_pingimagefile|imagick_polaroidimage|imagick_posterizeimage|imagick_previewimages|imagick_previousimage|imagick_profileimage|imagick_quantizeimage|imagick_quantizeimages|imagick_queryfontmetrics|imagick_queryfonts|imagick_queryformats|imagick_radialblurimage|imagick_raiseimage|imagick_randomthresholdimage|imagick_readimage|imagick_readimageblob|imagick_readimagefile|imagick_recolorimage|imagick_reducenoiseimage|imagick_removeimage|imagick_removeimageprofile|imagick_render|imagick_resampleimage|imagick_resetimagepage|imagick_resizeimage|imagick_rollimage|imagick_rotateimage|imagick_roundcorners|imagick_sampleimage|imagick_scaleimage|imagick_separateimagechannel|imagick_sepiatoneimage|imagick_setbackgroundcolor|imagick_setcolorspace|imagick_setcompression|imagick_setcompressionquality|imagick_setfilename|imagick_setfirstiterator|imagick_setfont|imagick_setformat|imagick_setgravity|imagick_setimage|imagick_setimagealphachannel|imagick_setimageartifact|imagick_setimagebackgroundcolor|imagick_setimagebias|imagick_setimageblueprimary|imagick_setimagebordercolor|imagick_setimagechanneldepth|imagick_setimageclipmask|imagick_setimagecolormapcolor|imagick_setimagecolorspace|imagick_setimagecompose|imagick_setimagecompression|imagick_setimagecompressionquality|imagick_setimagedelay|imagick_setimagedepth|imagick_setimagedispose|imagick_setimageextent|imagick_setimagefilename|imagick_setimageformat|imagick_setimagegamma|imagick_setimagegravity|imagick_setimagegreenprimary|imagick_setimageindex|imagick_setimageinterlacescheme|imagick_setimageinterpolatemethod|imagick_setimageiterations|imagick_setimagematte|imagick_setimagemattecolor|imagick_setimageopacity|imagick_setimageorientation|imagick_setimagepage|imagick_setimageprofile|imagick_setimageproperty|imagick_setimageredprimary|imagick_setimagerenderingintent|imagick_setimageresolution|imagick_setimagescene|imagick_setimagetickspersecond|imagick_setimagetype|imagick_setimageunits|imagick_setimagevirtualpixelmethod|imagick_setimagewhitepoint|imagick_setinterlacescheme|imagick_setiteratorindex|imagick_setlastiterator|imagick_setoption|imagick_setpage|imagick_setpointsize|imagick_setresolution|imagick_setresourcelimit|imagick_setsamplingfactors|imagick_setsize|imagick_setsizeoffset|imagick_settype|imagick_shadeimage|imagick_shadowimage|imagick_sharpenimage|imagick_shaveimage|imagick_shearimage|imagick_sigmoidalcontrastimage|imagick_sketchimage|imagick_solarizeimage|imagick_spliceimage|imagick_spreadimage|imagick_steganoimage|imagick_stereoimage|imagick_stripimage|imagick_swirlimage|imagick_textureimage|imagick_thresholdimage|imagick_thumbnailimage|imagick_tintimage|imagick_transformimage|imagick_transparentpaintimage|imagick_transposeimage|imagick_transverseimage|imagick_trimimage|imagick_uniqueimagecolors|imagick_unsharpmaskimage|imagick_valid|imagick_vignetteimage|imagick_waveimage|imagick_whitethresholdimage|imagick_writeimage|imagick_writeimagefile|imagick_writeimages|imagick_writeimagesfile|imagickdraw|imagickdraw_affine|imagickdraw_annotation|imagickdraw_arc|imagickdraw_bezier|imagickdraw_circle|imagickdraw_clear|imagickdraw_clone|imagickdraw_color|imagickdraw_comment|imagickdraw_composite|imagickdraw_construct|imagickdraw_destroy|imagickdraw_ellipse|imagickdraw_getclippath|imagickdraw_getcliprule|imagickdraw_getclipunits|imagickdraw_getfillcolor|imagickdraw_getfillopacity|imagickdraw_getfillrule|imagickdraw_getfont|imagickdraw_getfontfamily|imagickdraw_getfontsize|imagickdraw_getfontstyle|imagickdraw_getfontweight|imagickdraw_getgravity|imagickdraw_getstrokeantialias|imagickdraw_getstrokecolor|imagickdraw_getstrokedasharray|imagickdraw_getstrokedashoffset|imagickdraw_getstrokelinecap|imagickdraw_getstrokelinejoin|imagickdraw_getstrokemiterlimit|imagickdraw_getstrokeopacity|imagickdraw_getstrokewidth|imagickdraw_gettextalignment|imagickdraw_gettextantialias|imagickdraw_gettextdecoration|imagickdraw_gettextencoding|imagickdraw_gettextundercolor|imagickdraw_getvectorgraphics|imagickdraw_line|imagickdraw_matte|imagickdraw_pathclose|imagickdraw_pathcurvetoabsolute|imagickdraw_pathcurvetoquadraticbezierabsolute|imagickdraw_pathcurvetoquadraticbezierrelative|imagickdraw_pathcurvetoquadraticbeziersmoothabsolute|imagickdraw_pathcurvetoquadraticbeziersmoothrelative|imagickdraw_pathcurvetorelative|imagickdraw_pathcurvetosmoothabsolute|imagickdraw_pathcurvetosmoothrelative|imagickdraw_pathellipticarcabsolute|imagickdraw_pathellipticarcrelative|imagickdraw_pathfinish|imagickdraw_pathlinetoabsolute|imagickdraw_pathlinetohorizontalabsolute|imagickdraw_pathlinetohorizontalrelative|imagickdraw_pathlinetorelative|imagickdraw_pathlinetoverticalabsolute|imagickdraw_pathlinetoverticalrelative|imagickdraw_pathmovetoabsolute|imagickdraw_pathmovetorelative|imagickdraw_pathstart|imagickdraw_point|imagickdraw_polygon|imagickdraw_polyline|imagickdraw_pop|imagickdraw_popclippath|imagickdraw_popdefs|imagickdraw_poppattern|imagickdraw_push|imagickdraw_pushclippath|imagickdraw_pushdefs|imagickdraw_pushpattern|imagickdraw_rectangle|imagickdraw_render|imagickdraw_rotate|imagickdraw_roundrectangle|imagickdraw_scale|imagickdraw_setclippath|imagickdraw_setcliprule|imagickdraw_setclipunits|imagickdraw_setfillalpha|imagickdraw_setfillcolor|imagickdraw_setfillopacity|imagickdraw_setfillpatternurl|imagickdraw_setfillrule|imagickdraw_setfont|imagickdraw_setfontfamily|imagickdraw_setfontsize|imagickdraw_setfontstretch|imagickdraw_setfontstyle|imagickdraw_setfontweight|imagickdraw_setgravity|imagickdraw_setstrokealpha|imagickdraw_setstrokeantialias|imagickdraw_setstrokecolor|imagickdraw_setstrokedasharray|imagickdraw_setstrokedashoffset|imagickdraw_setstrokelinecap|imagickdraw_setstrokelinejoin|imagickdraw_setstrokemiterlimit|imagickdraw_setstrokeopacity|imagickdraw_setstrokepatternurl|imagickdraw_setstrokewidth|imagickdraw_settextalignment|imagickdraw_settextantialias|imagickdraw_settextdecoration|imagickdraw_settextencoding|imagickdraw_settextundercolor|imagickdraw_setvectorgraphics|imagickdraw_setviewbox|imagickdraw_skewx|imagickdraw_skewy|imagickdraw_translate|imagickpixel|imagickpixel_clear|imagickpixel_construct|imagickpixel_destroy|imagickpixel_getcolor|imagickpixel_getcolorasstring|imagickpixel_getcolorcount|imagickpixel_getcolorvalue|imagickpixel_gethsl|imagickpixel_issimilar|imagickpixel_setcolor|imagickpixel_setcolorvalue|imagickpixel_sethsl|imagickpixeliterator|imagickpixeliterator_clear|imagickpixeliterator_construct|imagickpixeliterator_destroy|imagickpixeliterator_getcurrentiteratorrow|imagickpixeliterator_getiteratorrow|imagickpixeliterator_getnextiteratorrow|imagickpixeliterator_getpreviousiteratorrow|imagickpixeliterator_newpixeliterator|imagickpixeliterator_newpixelregioniterator|imagickpixeliterator_resetiterator|imagickpixeliterator_setiteratorfirstrow|imagickpixeliterator_setiteratorlastrow|imagickpixeliterator_setiteratorrow|imagickpixeliterator_synciterator|imap_8bit|imap_alerts|imap_append|imap_base64|imap_binary|imap_body|imap_bodystruct|imap_check|imap_clearflag_full|imap_close|imap_create|imap_createmailbox|imap_delete|imap_deletemailbox|imap_errors|imap_expunge|imap_fetch_overview|imap_fetchbody|imap_fetchheader|imap_fetchmime|imap_fetchstructure|imap_fetchtext|imap_gc|imap_get_quota|imap_get_quotaroot|imap_getacl|imap_getmailboxes|imap_getsubscribed|imap_header|imap_headerinfo|imap_headers|imap_last_error|imap_list|imap_listmailbox|imap_listscan|imap_listsubscribed|imap_lsub|imap_mail|imap_mail_compose|imap_mail_copy|imap_mail_move|imap_mailboxmsginfo|imap_mime_header_decode|imap_msgno|imap_num_msg|imap_num_recent|imap_open|imap_ping|imap_qprint|imap_rename|imap_renamemailbox|imap_reopen|imap_rfc822_parse_adrlist|imap_rfc822_parse_headers|imap_rfc822_write_address|imap_savebody|imap_scan|imap_scanmailbox|imap_search|imap_set_quota|imap_setacl|imap_setflag_full|imap_sort|imap_status|imap_subscribe|imap_thread|imap_timeout|imap_uid|imap_undelete|imap_unsubscribe|imap_utf7_decode|imap_utf7_encode|imap_utf8|implementsinterface|implode|import_request_variables|in_array|include|include_once|inclued_get_data|inet_ntop|inet_pton|infiniteiterator|ingres_autocommit|ingres_autocommit_state|ingres_charset|ingres_close|ingres_commit|ingres_connect|ingres_cursor|ingres_errno|ingres_error|ingres_errsqlstate|ingres_escape_string|ingres_execute|ingres_fetch_array|ingres_fetch_assoc|ingres_fetch_object|ingres_fetch_proc_return|ingres_fetch_row|ingres_field_length|ingres_field_name|ingres_field_nullable|ingres_field_precision|ingres_field_scale|ingres_field_type|ingres_free_result|ingres_next_error|ingres_num_fields|ingres_num_rows|ingres_pconnect|ingres_prepare|ingres_query|ingres_result_seek|ingres_rollback|ingres_set_environment|ingres_unbuffered_query|ini_alter|ini_get|ini_get_all|ini_restore|ini_set|innamespace|inotify_add_watch|inotify_init|inotify_queue_len|inotify_read|inotify_rm_watch|interface_exists|intl_error_name|intl_get_error_code|intl_get_error_message|intl_is_failure|intldateformatter|intval|invalidargumentexception|invoke|invokeargs|ip2long|iptcembed|iptcparse|is_a|is_array|is_bool|is_callable|is_dir|is_double|is_executable|is_file|is_finite|is_float|is_infinite|is_int|is_integer|is_link|is_long|is_nan|is_null|is_numeric|is_object|is_readable|is_real|is_resource|is_scalar|is_soap_fault|is_string|is_subclass_of|is_uploaded_file|is_writable|is_writeable|isabstract|iscloneable|isdisabled|isfinal|isinstance|isinstantiable|isinterface|isinternal|isiterateable|isset|issubclassof|isuserdefined|iterator|iterator_apply|iterator_count|iterator_to_array|iteratoraggregate|iteratoriterator|java_last_exception_clear|java_last_exception_get|jddayofweek|jdmonthname|jdtofrench|jdtogregorian|jdtojewish|jdtojulian|jdtounix|jewishtojd|join|jpeg2wbmp|json_decode|json_encode|json_last_error|jsonserializable|judy|judy_type|judy_version|juliantojd|kadm5_chpass_principal|kadm5_create_principal|kadm5_delete_principal|kadm5_destroy|kadm5_flush|kadm5_get_policies|kadm5_get_principal|kadm5_get_principals|kadm5_init_with_password|kadm5_modify_principal|key|krsort|ksort|lcfirst|lcg_value|lchgrp|lchown|ldap_8859_to_t61|ldap_add|ldap_bind|ldap_close|ldap_compare|ldap_connect|ldap_count_entries|ldap_delete|ldap_dn2ufn|ldap_err2str|ldap_errno|ldap_error|ldap_explode_dn|ldap_first_attribute|ldap_first_entry|ldap_first_reference|ldap_free_result|ldap_get_attributes|ldap_get_dn|ldap_get_entries|ldap_get_option|ldap_get_values|ldap_get_values_len|ldap_list|ldap_mod_add|ldap_mod_del|ldap_mod_replace|ldap_modify|ldap_next_attribute|ldap_next_entry|ldap_next_reference|ldap_parse_reference|ldap_parse_result|ldap_read|ldap_rename|ldap_sasl_bind|ldap_search|ldap_set_option|ldap_set_rebind_proc|ldap_sort|ldap_start_tls|ldap_t61_to_8859|ldap_unbind|lengthexception|levenshtein|libxml_clear_errors|libxml_disable_entity_loader|libxml_get_errors|libxml_get_last_error|libxml_set_streams_context|libxml_use_internal_errors|libxmlerror|limititerator|link|linkinfo|list|locale|localeconv|localtime|log|log10|log1p|logicexception|long2ip|lstat|ltrim|lzf_compress|lzf_decompress|lzf_optimized_for|m_checkstatus|m_completeauthorizations|m_connect|m_connectionerror|m_deletetrans|m_destroyconn|m_destroyengine|m_getcell|m_getcellbynum|m_getcommadelimited|m_getheader|m_initconn|m_initengine|m_iscommadelimited|m_maxconntimeout|m_monitor|m_numcolumns|m_numrows|m_parsecommadelimited|m_responsekeys|m_responseparam|m_returnstatus|m_setblocking|m_setdropfile|m_setip|m_setssl|m_setssl_cafile|m_setssl_files|m_settimeout|m_sslcert_gen_hash|m_transactionssent|m_transinqueue|m_transkeyval|m_transnew|m_transsend|m_uwait|m_validateidentifier|m_verifyconnection|m_verifysslcert|magic_quotes_runtime|mail|mailparse_determine_best_xfer_encoding|mailparse_msg_create|mailparse_msg_extract_part|mailparse_msg_extract_part_file|mailparse_msg_extract_whole_part_file|mailparse_msg_free|mailparse_msg_get_part|mailparse_msg_get_part_data|mailparse_msg_get_structure|mailparse_msg_parse|mailparse_msg_parse_file|mailparse_rfc822_parse_addresses|mailparse_stream_encode|mailparse_uudecode_all|main|max|maxdb_affected_rows|maxdb_autocommit|maxdb_bind_param|maxdb_bind_result|maxdb_change_user|maxdb_character_set_name|maxdb_client_encoding|maxdb_close|maxdb_close_long_data|maxdb_commit|maxdb_connect|maxdb_connect_errno|maxdb_connect_error|maxdb_data_seek|maxdb_debug|maxdb_disable_reads_from_master|maxdb_disable_rpl_parse|maxdb_dump_debug_info|maxdb_embedded_connect|maxdb_enable_reads_from_master|maxdb_enable_rpl_parse|maxdb_errno|maxdb_error|maxdb_escape_string|maxdb_execute|maxdb_fetch|maxdb_fetch_array|maxdb_fetch_assoc|maxdb_fetch_field|maxdb_fetch_field_direct|maxdb_fetch_fields|maxdb_fetch_lengths|maxdb_fetch_object|maxdb_fetch_row|maxdb_field_count|maxdb_field_seek|maxdb_field_tell|maxdb_free_result|maxdb_get_client_info|maxdb_get_client_version|maxdb_get_host_info|maxdb_get_metadata|maxdb_get_proto_info|maxdb_get_server_info|maxdb_get_server_version|maxdb_info|maxdb_init|maxdb_insert_id|maxdb_kill|maxdb_master_query|maxdb_more_results|maxdb_multi_query|maxdb_next_result|maxdb_num_fields|maxdb_num_rows|maxdb_options|maxdb_param_count|maxdb_ping|maxdb_prepare|maxdb_query|maxdb_real_connect|maxdb_real_escape_string|maxdb_real_query|maxdb_report|maxdb_rollback|maxdb_rpl_parse_enabled|maxdb_rpl_probe|maxdb_rpl_query_type|maxdb_select_db|maxdb_send_long_data|maxdb_send_query|maxdb_server_end|maxdb_server_init|maxdb_set_opt|maxdb_sqlstate|maxdb_ssl_set|maxdb_stat|maxdb_stmt_affected_rows|maxdb_stmt_bind_param|maxdb_stmt_bind_result|maxdb_stmt_close|maxdb_stmt_close_long_data|maxdb_stmt_data_seek|maxdb_stmt_errno|maxdb_stmt_error|maxdb_stmt_execute|maxdb_stmt_fetch|maxdb_stmt_free_result|maxdb_stmt_init|maxdb_stmt_num_rows|maxdb_stmt_param_count|maxdb_stmt_prepare|maxdb_stmt_reset|maxdb_stmt_result_metadata|maxdb_stmt_send_long_data|maxdb_stmt_sqlstate|maxdb_stmt_store_result|maxdb_store_result|maxdb_thread_id|maxdb_thread_safe|maxdb_use_result|maxdb_warning_count|mb_check_encoding|mb_convert_case|mb_convert_encoding|mb_convert_kana|mb_convert_variables|mb_decode_mimeheader|mb_decode_numericentity|mb_detect_encoding|mb_detect_order|mb_encode_mimeheader|mb_encode_numericentity|mb_encoding_aliases|mb_ereg|mb_ereg_match|mb_ereg_replace|mb_ereg_search|mb_ereg_search_getpos|mb_ereg_search_getregs|mb_ereg_search_init|mb_ereg_search_pos|mb_ereg_search_regs|mb_ereg_search_setpos|mb_eregi|mb_eregi_replace|mb_get_info|mb_http_input|mb_http_output|mb_internal_encoding|mb_language|mb_list_encodings|mb_output_handler|mb_parse_str|mb_preferred_mime_name|mb_regex_encoding|mb_regex_set_options|mb_send_mail|mb_split|mb_strcut|mb_strimwidth|mb_stripos|mb_stristr|mb_strlen|mb_strpos|mb_strrchr|mb_strrichr|mb_strripos|mb_strrpos|mb_strstr|mb_strtolower|mb_strtoupper|mb_strwidth|mb_substitute_character|mb_substr|mb_substr_count|mcrypt_cbc|mcrypt_cfb|mcrypt_create_iv|mcrypt_decrypt|mcrypt_ecb|mcrypt_enc_get_algorithms_name|mcrypt_enc_get_block_size|mcrypt_enc_get_iv_size|mcrypt_enc_get_key_size|mcrypt_enc_get_modes_name|mcrypt_enc_get_supported_key_sizes|mcrypt_enc_is_block_algorithm|mcrypt_enc_is_block_algorithm_mode|mcrypt_enc_is_block_mode|mcrypt_enc_self_test|mcrypt_encrypt|mcrypt_generic|mcrypt_generic_deinit|mcrypt_generic_end|mcrypt_generic_init|mcrypt_get_block_size|mcrypt_get_cipher_name|mcrypt_get_iv_size|mcrypt_get_key_size|mcrypt_list_algorithms|mcrypt_list_modes|mcrypt_module_close|mcrypt_module_get_algo_block_size|mcrypt_module_get_algo_key_size|mcrypt_module_get_supported_key_sizes|mcrypt_module_is_block_algorithm|mcrypt_module_is_block_algorithm_mode|mcrypt_module_is_block_mode|mcrypt_module_open|mcrypt_module_self_test|mcrypt_ofb|md5|md5_file|mdecrypt_generic|memcache|memcache_debug|memcached|memory_get_peak_usage|memory_get_usage|messageformatter|metaphone|method_exists|mhash|mhash_count|mhash_get_block_size|mhash_get_hash_name|mhash_keygen_s2k|microtime|mime_content_type|min|ming_keypress|ming_setcubicthreshold|ming_setscale|ming_setswfcompression|ming_useconstants|ming_useswfversion|mkdir|mktime|money_format|mongo|mongobindata|mongocode|mongocollection|mongoconnectionexception|mongocursor|mongocursorexception|mongocursortimeoutexception|mongodate|mongodb|mongodbref|mongoexception|mongogridfs|mongogridfscursor|mongogridfsexception|mongogridfsfile|mongoid|mongoint32|mongoint64|mongomaxkey|mongominkey|mongoregex|mongotimestamp|move_uploaded_file|mpegfile|mqseries_back|mqseries_begin|mqseries_close|mqseries_cmit|mqseries_conn|mqseries_connx|mqseries_disc|mqseries_get|mqseries_inq|mqseries_open|mqseries_put|mqseries_put1|mqseries_set|mqseries_strerror|msession_connect|msession_count|msession_create|msession_destroy|msession_disconnect|msession_find|msession_get|msession_get_array|msession_get_data|msession_inc|msession_list|msession_listvar|msession_lock|msession_plugin|msession_randstr|msession_set|msession_set_array|msession_set_data|msession_timeout|msession_uniq|msession_unlock|msg_get_queue|msg_queue_exists|msg_receive|msg_remove_queue|msg_send|msg_set_queue|msg_stat_queue|msql|msql_affected_rows|msql_close|msql_connect|msql_create_db|msql_createdb|msql_data_seek|msql_db_query|msql_dbname|msql_drop_db|msql_error|msql_fetch_array|msql_fetch_field|msql_fetch_object|msql_fetch_row|msql_field_flags|msql_field_len|msql_field_name|msql_field_seek|msql_field_table|msql_field_type|msql_fieldflags|msql_fieldlen|msql_fieldname|msql_fieldtable|msql_fieldtype|msql_free_result|msql_list_dbs|msql_list_fields|msql_list_tables|msql_num_fields|msql_num_rows|msql_numfields|msql_numrows|msql_pconnect|msql_query|msql_regcase|msql_result|msql_select_db|msql_tablename|mssql_bind|mssql_close|mssql_connect|mssql_data_seek|mssql_execute|mssql_fetch_array|mssql_fetch_assoc|mssql_fetch_batch|mssql_fetch_field|mssql_fetch_object|mssql_fetch_row|mssql_field_length|mssql_field_name|mssql_field_seek|mssql_field_type|mssql_free_result|mssql_free_statement|mssql_get_last_message|mssql_guid_string|mssql_init|mssql_min_error_severity|mssql_min_message_severity|mssql_next_result|mssql_num_fields|mssql_num_rows|mssql_pconnect|mssql_query|mssql_result|mssql_rows_affected|mssql_select_db|mt_getrandmax|mt_rand|mt_srand|multipleiterator|mysql_affected_rows|mysql_client_encoding|mysql_close|mysql_connect|mysql_create_db|mysql_data_seek|mysql_db_name|mysql_db_query|mysql_drop_db|mysql_errno|mysql_error|mysql_escape_string|mysql_fetch_array|mysql_fetch_assoc|mysql_fetch_field|mysql_fetch_lengths|mysql_fetch_object|mysql_fetch_row|mysql_field_flags|mysql_field_len|mysql_field_name|mysql_field_seek|mysql_field_table|mysql_field_type|mysql_free_result|mysql_get_client_info|mysql_get_host_info|mysql_get_proto_info|mysql_get_server_info|mysql_info|mysql_insert_id|mysql_list_dbs|mysql_list_fields|mysql_list_processes|mysql_list_tables|mysql_num_fields|mysql_num_rows|mysql_pconnect|mysql_ping|mysql_query|mysql_real_escape_string|mysql_result|mysql_select_db|mysql_set_charset|mysql_stat|mysql_tablename|mysql_thread_id|mysql_unbuffered_query|mysqli|mysqli_bind_param|mysqli_bind_result|mysqli_client_encoding|mysqli_connect|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_driver|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_escape_string|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_report|mysqli_result|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_set_opt|mysqli_slave_query|mysqli_stmt|mysqli_warning|mysqlnd_ms_get_stats|mysqlnd_ms_query_is_select|mysqlnd_ms_set_user_pick_server|mysqlnd_qc_change_handler|mysqlnd_qc_clear_cache|mysqlnd_qc_get_cache_info|mysqlnd_qc_get_core_stats|mysqlnd_qc_get_handler|mysqlnd_qc_get_query_trace_log|mysqlnd_qc_set_user_handlers|natcasesort|natsort|ncurses_addch|ncurses_addchnstr|ncurses_addchstr|ncurses_addnstr|ncurses_addstr|ncurses_assume_default_colors|ncurses_attroff|ncurses_attron|ncurses_attrset|ncurses_baudrate|ncurses_beep|ncurses_bkgd|ncurses_bkgdset|ncurses_border|ncurses_bottom_panel|ncurses_can_change_color|ncurses_cbreak|ncurses_clear|ncurses_clrtobot|ncurses_clrtoeol|ncurses_color_content|ncurses_color_set|ncurses_curs_set|ncurses_def_prog_mode|ncurses_def_shell_mode|ncurses_define_key|ncurses_del_panel|ncurses_delay_output|ncurses_delch|ncurses_deleteln|ncurses_delwin|ncurses_doupdate|ncurses_echo|ncurses_echochar|ncurses_end|ncurses_erase|ncurses_erasechar|ncurses_filter|ncurses_flash|ncurses_flushinp|ncurses_getch|ncurses_getmaxyx|ncurses_getmouse|ncurses_getyx|ncurses_halfdelay|ncurses_has_colors|ncurses_has_ic|ncurses_has_il|ncurses_has_key|ncurses_hide_panel|ncurses_hline|ncurses_inch|ncurses_init|ncurses_init_color|ncurses_init_pair|ncurses_insch|ncurses_insdelln|ncurses_insertln|ncurses_insstr|ncurses_instr|ncurses_isendwin|ncurses_keyok|ncurses_keypad|ncurses_killchar|ncurses_longname|ncurses_meta|ncurses_mouse_trafo|ncurses_mouseinterval|ncurses_mousemask|ncurses_move|ncurses_move_panel|ncurses_mvaddch|ncurses_mvaddchnstr|ncurses_mvaddchstr|ncurses_mvaddnstr|ncurses_mvaddstr|ncurses_mvcur|ncurses_mvdelch|ncurses_mvgetch|ncurses_mvhline|ncurses_mvinch|ncurses_mvvline|ncurses_mvwaddstr|ncurses_napms|ncurses_new_panel|ncurses_newpad|ncurses_newwin|ncurses_nl|ncurses_nocbreak|ncurses_noecho|ncurses_nonl|ncurses_noqiflush|ncurses_noraw|ncurses_pair_content|ncurses_panel_above|ncurses_panel_below|ncurses_panel_window|ncurses_pnoutrefresh|ncurses_prefresh|ncurses_putp|ncurses_qiflush|ncurses_raw|ncurses_refresh|ncurses_replace_panel|ncurses_reset_prog_mode|ncurses_reset_shell_mode|ncurses_resetty|ncurses_savetty|ncurses_scr_dump|ncurses_scr_init|ncurses_scr_restore|ncurses_scr_set|ncurses_scrl|ncurses_show_panel|ncurses_slk_attr|ncurses_slk_attroff|ncurses_slk_attron|ncurses_slk_attrset|ncurses_slk_clear|ncurses_slk_color|ncurses_slk_init|ncurses_slk_noutrefresh|ncurses_slk_refresh|ncurses_slk_restore|ncurses_slk_set|ncurses_slk_touch|ncurses_standend|ncurses_standout|ncurses_start_color|ncurses_termattrs|ncurses_termname|ncurses_timeout|ncurses_top_panel|ncurses_typeahead|ncurses_ungetch|ncurses_ungetmouse|ncurses_update_panels|ncurses_use_default_colors|ncurses_use_env|ncurses_use_extended_names|ncurses_vidattr|ncurses_vline|ncurses_waddch|ncurses_waddstr|ncurses_wattroff|ncurses_wattron|ncurses_wattrset|ncurses_wborder|ncurses_wclear|ncurses_wcolor_set|ncurses_werase|ncurses_wgetch|ncurses_whline|ncurses_wmouse_trafo|ncurses_wmove|ncurses_wnoutrefresh|ncurses_wrefresh|ncurses_wstandend|ncurses_wstandout|ncurses_wvline|newinstance|newinstanceargs|newt_bell|newt_button|newt_button_bar|newt_centered_window|newt_checkbox|newt_checkbox_get_value|newt_checkbox_set_flags|newt_checkbox_set_value|newt_checkbox_tree|newt_checkbox_tree_add_item|newt_checkbox_tree_find_item|newt_checkbox_tree_get_current|newt_checkbox_tree_get_entry_value|newt_checkbox_tree_get_multi_selection|newt_checkbox_tree_get_selection|newt_checkbox_tree_multi|newt_checkbox_tree_set_current|newt_checkbox_tree_set_entry|newt_checkbox_tree_set_entry_value|newt_checkbox_tree_set_width|newt_clear_key_buffer|newt_cls|newt_compact_button|newt_component_add_callback|newt_component_takes_focus|newt_create_grid|newt_cursor_off|newt_cursor_on|newt_delay|newt_draw_form|newt_draw_root_text|newt_entry|newt_entry_get_value|newt_entry_set|newt_entry_set_filter|newt_entry_set_flags|newt_finished|newt_form|newt_form_add_component|newt_form_add_components|newt_form_add_hot_key|newt_form_destroy|newt_form_get_current|newt_form_run|newt_form_set_background|newt_form_set_height|newt_form_set_size|newt_form_set_timer|newt_form_set_width|newt_form_watch_fd|newt_get_screen_size|newt_grid_add_components_to_form|newt_grid_basic_window|newt_grid_free|newt_grid_get_size|newt_grid_h_close_stacked|newt_grid_h_stacked|newt_grid_place|newt_grid_set_field|newt_grid_simple_window|newt_grid_v_close_stacked|newt_grid_v_stacked|newt_grid_wrapped_window|newt_grid_wrapped_window_at|newt_init|newt_label|newt_label_set_text|newt_listbox|newt_listbox_append_entry|newt_listbox_clear|newt_listbox_clear_selection|newt_listbox_delete_entry|newt_listbox_get_current|newt_listbox_get_selection|newt_listbox_insert_entry|newt_listbox_item_count|newt_listbox_select_item|newt_listbox_set_current|newt_listbox_set_current_by_key|newt_listbox_set_data|newt_listbox_set_entry|newt_listbox_set_width|newt_listitem|newt_listitem_get_data|newt_listitem_set|newt_open_window|newt_pop_help_line|newt_pop_window|newt_push_help_line|newt_radio_get_current|newt_radiobutton|newt_redraw_help_line|newt_reflow_text|newt_refresh|newt_resize_screen|newt_resume|newt_run_form|newt_scale|newt_scale_set|newt_scrollbar_set|newt_set_help_callback|newt_set_suspend_callback|newt_suspend|newt_textbox|newt_textbox_get_num_lines|newt_textbox_reflowed|newt_textbox_set_height|newt_textbox_set_text|newt_vertical_scrollbar|newt_wait_for_key|newt_win_choice|newt_win_entries|newt_win_menu|newt_win_message|newt_win_messagev|newt_win_ternary|next|ngettext|nl2br|nl_langinfo|norewinditerator|normalizer|notes_body|notes_copy_db|notes_create_db|notes_create_note|notes_drop_db|notes_find_note|notes_header_info|notes_list_msgs|notes_mark_read|notes_mark_unread|notes_nav_create|notes_search|notes_unread|notes_version|nsapi_request_headers|nsapi_response_headers|nsapi_virtual|nthmac|number_format|numberformatter|oauth|oauth_get_sbs|oauth_urlencode|oauthexception|oauthprovider|ob_clean|ob_deflatehandler|ob_end_clean|ob_end_flush|ob_etaghandler|ob_flush|ob_get_clean|ob_get_contents|ob_get_flush|ob_get_length|ob_get_level|ob_get_status|ob_gzhandler|ob_iconv_handler|ob_implicit_flush|ob_inflatehandler|ob_list_handlers|ob_start|ob_tidyhandler|oci_bind_array_by_name|oci_bind_by_name|oci_cancel|oci_client_version|oci_close|oci_collection_append|oci_collection_assign|oci_collection_element_assign|oci_collection_element_get|oci_collection_free|oci_collection_max|oci_collection_size|oci_collection_trim|oci_commit|oci_connect|oci_define_by_name|oci_error|oci_execute|oci_fetch|oci_fetch_all|oci_fetch_array|oci_fetch_assoc|oci_fetch_object|oci_fetch_row|oci_field_is_null|oci_field_name|oci_field_precision|oci_field_scale|oci_field_size|oci_field_type|oci_field_type_raw|oci_free_statement|oci_internal_debug|oci_lob_append|oci_lob_close|oci_lob_copy|oci_lob_eof|oci_lob_erase|oci_lob_export|oci_lob_flush|oci_lob_free|oci_lob_getbuffering|oci_lob_import|oci_lob_is_equal|oci_lob_load|oci_lob_read|oci_lob_rewind|oci_lob_save|oci_lob_savefile|oci_lob_seek|oci_lob_setbuffering|oci_lob_size|oci_lob_tell|oci_lob_truncate|oci_lob_write|oci_lob_writetemporary|oci_lob_writetofile|oci_new_collection|oci_new_connect|oci_new_cursor|oci_new_descriptor|oci_num_fields|oci_num_rows|oci_parse|oci_password_change|oci_pconnect|oci_result|oci_rollback|oci_server_version|oci_set_action|oci_set_client_identifier|oci_set_client_info|oci_set_edition|oci_set_module_name|oci_set_prefetch|oci_statement_type|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|octdec|odbc_autocommit|odbc_binmode|odbc_close|odbc_close_all|odbc_columnprivileges|odbc_columns|odbc_commit|odbc_connect|odbc_cursor|odbc_data_source|odbc_do|odbc_error|odbc_errormsg|odbc_exec|odbc_execute|odbc_fetch_array|odbc_fetch_into|odbc_fetch_object|odbc_fetch_row|odbc_field_len|odbc_field_name|odbc_field_num|odbc_field_precision|odbc_field_scale|odbc_field_type|odbc_foreignkeys|odbc_free_result|odbc_gettypeinfo|odbc_longreadlen|odbc_next_result|odbc_num_fields|odbc_num_rows|odbc_pconnect|odbc_prepare|odbc_primarykeys|odbc_procedurecolumns|odbc_procedures|odbc_result|odbc_result_all|odbc_rollback|odbc_setoption|odbc_specialcolumns|odbc_statistics|odbc_tableprivileges|odbc_tables|openal_buffer_create|openal_buffer_data|openal_buffer_destroy|openal_buffer_get|openal_buffer_loadwav|openal_context_create|openal_context_current|openal_context_destroy|openal_context_process|openal_context_suspend|openal_device_close|openal_device_open|openal_listener_get|openal_listener_set|openal_source_create|openal_source_destroy|openal_source_get|openal_source_pause|openal_source_play|openal_source_rewind|openal_source_set|openal_source_stop|openal_stream|opendir|openlog|openssl_cipher_iv_length|openssl_csr_export|openssl_csr_export_to_file|openssl_csr_get_public_key|openssl_csr_get_subject|openssl_csr_new|openssl_csr_sign|openssl_decrypt|openssl_dh_compute_key|openssl_digest|openssl_encrypt|openssl_error_string|openssl_free_key|openssl_get_cipher_methods|openssl_get_md_methods|openssl_get_privatekey|openssl_get_publickey|openssl_open|openssl_pkcs12_export|openssl_pkcs12_export_to_file|openssl_pkcs12_read|openssl_pkcs7_decrypt|openssl_pkcs7_encrypt|openssl_pkcs7_sign|openssl_pkcs7_verify|openssl_pkey_export|openssl_pkey_export_to_file|openssl_pkey_free|openssl_pkey_get_details|openssl_pkey_get_private|openssl_pkey_get_public|openssl_pkey_new|openssl_private_decrypt|openssl_private_encrypt|openssl_public_decrypt|openssl_public_encrypt|openssl_random_pseudo_bytes|openssl_seal|openssl_sign|openssl_verify|openssl_x509_check_private_key|openssl_x509_checkpurpose|openssl_x509_export|openssl_x509_export_to_file|openssl_x509_free|openssl_x509_parse|openssl_x509_read|ord|outeriterator|outofboundsexception|outofrangeexception|output_add_rewrite_var|output_reset_rewrite_vars|overflowexception|overload|override_function|ovrimos_close|ovrimos_commit|ovrimos_connect|ovrimos_cursor|ovrimos_exec|ovrimos_execute|ovrimos_fetch_into|ovrimos_fetch_row|ovrimos_field_len|ovrimos_field_name|ovrimos_field_num|ovrimos_field_type|ovrimos_free_result|ovrimos_longreadlen|ovrimos_num_fields|ovrimos_num_rows|ovrimos_prepare|ovrimos_result|ovrimos_result_all|ovrimos_rollback|pack|parentiterator|parse_ini_file|parse_ini_string|parse_str|parse_url|parsekit_compile_file|parsekit_compile_string|parsekit_func_arginfo|passthru|pathinfo|pclose|pcntl_alarm|pcntl_exec|pcntl_fork|pcntl_getpriority|pcntl_setpriority|pcntl_signal|pcntl_signal_dispatch|pcntl_sigprocmask|pcntl_sigtimedwait|pcntl_sigwaitinfo|pcntl_wait|pcntl_waitpid|pcntl_wexitstatus|pcntl_wifexited|pcntl_wifsignaled|pcntl_wifstopped|pcntl_wstopsig|pcntl_wtermsig|pdf_activate_item|pdf_add_annotation|pdf_add_bookmark|pdf_add_launchlink|pdf_add_locallink|pdf_add_nameddest|pdf_add_note|pdf_add_outline|pdf_add_pdflink|pdf_add_table_cell|pdf_add_textflow|pdf_add_thumbnail|pdf_add_weblink|pdf_arc|pdf_arcn|pdf_attach_file|pdf_begin_document|pdf_begin_font|pdf_begin_glyph|pdf_begin_item|pdf_begin_layer|pdf_begin_page|pdf_begin_page_ext|pdf_begin_pattern|pdf_begin_template|pdf_begin_template_ext|pdf_circle|pdf_clip|pdf_close|pdf_close_image|pdf_close_pdi|pdf_close_pdi_page|pdf_closepath|pdf_closepath_fill_stroke|pdf_closepath_stroke|pdf_concat|pdf_continue_text|pdf_create_3dview|pdf_create_action|pdf_create_annotation|pdf_create_bookmark|pdf_create_field|pdf_create_fieldgroup|pdf_create_gstate|pdf_create_pvf|pdf_create_textflow|pdf_curveto|pdf_define_layer|pdf_delete|pdf_delete_pvf|pdf_delete_table|pdf_delete_textflow|pdf_encoding_set_char|pdf_end_document|pdf_end_font|pdf_end_glyph|pdf_end_item|pdf_end_layer|pdf_end_page|pdf_end_page_ext|pdf_end_pattern|pdf_end_template|pdf_endpath|pdf_fill|pdf_fill_imageblock|pdf_fill_pdfblock|pdf_fill_stroke|pdf_fill_textblock|pdf_findfont|pdf_fit_image|pdf_fit_pdi_page|pdf_fit_table|pdf_fit_textflow|pdf_fit_textline|pdf_get_apiname|pdf_get_buffer|pdf_get_errmsg|pdf_get_errnum|pdf_get_font|pdf_get_fontname|pdf_get_fontsize|pdf_get_image_height|pdf_get_image_width|pdf_get_majorversion|pdf_get_minorversion|pdf_get_parameter|pdf_get_pdi_parameter|pdf_get_pdi_value|pdf_get_value|pdf_info_font|pdf_info_matchbox|pdf_info_table|pdf_info_textflow|pdf_info_textline|pdf_initgraphics|pdf_lineto|pdf_load_3ddata|pdf_load_font|pdf_load_iccprofile|pdf_load_image|pdf_makespotcolor|pdf_moveto|pdf_new|pdf_open_ccitt|pdf_open_file|pdf_open_gif|pdf_open_image|pdf_open_image_file|pdf_open_jpeg|pdf_open_memory_image|pdf_open_pdi|pdf_open_pdi_document|pdf_open_pdi_page|pdf_open_tiff|pdf_pcos_get_number|pdf_pcos_get_stream|pdf_pcos_get_string|pdf_place_image|pdf_place_pdi_page|pdf_process_pdi|pdf_rect|pdf_restore|pdf_resume_page|pdf_rotate|pdf_save|pdf_scale|pdf_set_border_color|pdf_set_border_dash|pdf_set_border_style|pdf_set_char_spacing|pdf_set_duration|pdf_set_gstate|pdf_set_horiz_scaling|pdf_set_info|pdf_set_info_author|pdf_set_info_creator|pdf_set_info_keywords|pdf_set_info_subject|pdf_set_info_title|pdf_set_layer_dependency|pdf_set_leading|pdf_set_parameter|pdf_set_text_matrix|pdf_set_text_pos|pdf_set_text_rendering|pdf_set_text_rise|pdf_set_value|pdf_set_word_spacing|pdf_setcolor|pdf_setdash|pdf_setdashpattern|pdf_setflat|pdf_setfont|pdf_setgray|pdf_setgray_fill|pdf_setgray_stroke|pdf_setlinecap|pdf_setlinejoin|pdf_setlinewidth|pdf_setmatrix|pdf_setmiterlimit|pdf_setpolydash|pdf_setrgbcolor|pdf_setrgbcolor_fill|pdf_setrgbcolor_stroke|pdf_shading|pdf_shading_pattern|pdf_shfill|pdf_show|pdf_show_boxed|pdf_show_xy|pdf_skew|pdf_stringwidth|pdf_stroke|pdf_suspend_page|pdf_translate|pdf_utf16_to_utf8|pdf_utf32_to_utf16|pdf_utf8_to_utf16|pdo|pdo_cubrid_schema|pdo_pgsqllobcreate|pdo_pgsqllobopen|pdo_pgsqllobunlink|pdo_sqlitecreateaggregate|pdo_sqlitecreatefunction|pdoexception|pdostatement|pfsockopen|pg_affected_rows|pg_cancel_query|pg_client_encoding|pg_close|pg_connect|pg_connection_busy|pg_connection_reset|pg_connection_status|pg_convert|pg_copy_from|pg_copy_to|pg_dbname|pg_delete|pg_end_copy|pg_escape_bytea|pg_escape_string|pg_execute|pg_fetch_all|pg_fetch_all_columns|pg_fetch_array|pg_fetch_assoc|pg_fetch_object|pg_fetch_result|pg_fetch_row|pg_field_is_null|pg_field_name|pg_field_num|pg_field_prtlen|pg_field_size|pg_field_table|pg_field_type|pg_field_type_oid|pg_free_result|pg_get_notify|pg_get_pid|pg_get_result|pg_host|pg_insert|pg_last_error|pg_last_notice|pg_last_oid|pg_lo_close|pg_lo_create|pg_lo_export|pg_lo_import|pg_lo_open|pg_lo_read|pg_lo_read_all|pg_lo_seek|pg_lo_tell|pg_lo_unlink|pg_lo_write|pg_meta_data|pg_num_fields|pg_num_rows|pg_options|pg_parameter_status|pg_pconnect|pg_ping|pg_port|pg_prepare|pg_put_line|pg_query|pg_query_params|pg_result_error|pg_result_error_field|pg_result_seek|pg_result_status|pg_select|pg_send_execute|pg_send_prepare|pg_send_query|pg_send_query_params|pg_set_client_encoding|pg_set_error_verbosity|pg_trace|pg_transaction_status|pg_tty|pg_unescape_bytea|pg_untrace|pg_update|pg_version|php_check_syntax|php_ini_loaded_file|php_ini_scanned_files|php_logo_guid|php_sapi_name|php_strip_whitespace|php_uname|phpcredits|phpinfo|phpversion|pi|png2wbmp|popen|pos|posix_access|posix_ctermid|posix_errno|posix_get_last_error|posix_getcwd|posix_getegid|posix_geteuid|posix_getgid|posix_getgrgid|posix_getgrnam|posix_getgroups|posix_getlogin|posix_getpgid|posix_getpgrp|posix_getpid|posix_getppid|posix_getpwnam|posix_getpwuid|posix_getrlimit|posix_getsid|posix_getuid|posix_initgroups|posix_isatty|posix_kill|posix_mkfifo|posix_mknod|posix_setegid|posix_seteuid|posix_setgid|posix_setpgid|posix_setsid|posix_setuid|posix_strerror|posix_times|posix_ttyname|posix_uname|pow|preg_filter|preg_grep|preg_last_error|preg_match|preg_match_all|preg_quote|preg_replace|preg_replace_callback|preg_split|prev|print|print_r|printer_abort|printer_close|printer_create_brush|printer_create_dc|printer_create_font|printer_create_pen|printer_delete_brush|printer_delete_dc|printer_delete_font|printer_delete_pen|printer_draw_bmp|printer_draw_chord|printer_draw_elipse|printer_draw_line|printer_draw_pie|printer_draw_rectangle|printer_draw_roundrect|printer_draw_text|printer_end_doc|printer_end_page|printer_get_option|printer_list|printer_logical_fontheight|printer_open|printer_select_brush|printer_select_font|printer_select_pen|printer_set_option|printer_start_doc|printer_start_page|printer_write|printf|proc_close|proc_get_status|proc_nice|proc_open|proc_terminate|property_exists|ps_add_bookmark|ps_add_launchlink|ps_add_locallink|ps_add_note|ps_add_pdflink|ps_add_weblink|ps_arc|ps_arcn|ps_begin_page|ps_begin_pattern|ps_begin_template|ps_circle|ps_clip|ps_close|ps_close_image|ps_closepath|ps_closepath_stroke|ps_continue_text|ps_curveto|ps_delete|ps_end_page|ps_end_pattern|ps_end_template|ps_fill|ps_fill_stroke|ps_findfont|ps_get_buffer|ps_get_parameter|ps_get_value|ps_hyphenate|ps_include_file|ps_lineto|ps_makespotcolor|ps_moveto|ps_new|ps_open_file|ps_open_image|ps_open_image_file|ps_open_memory_image|ps_place_image|ps_rect|ps_restore|ps_rotate|ps_save|ps_scale|ps_set_border_color|ps_set_border_dash|ps_set_border_style|ps_set_info|ps_set_parameter|ps_set_text_pos|ps_set_value|ps_setcolor|ps_setdash|ps_setflat|ps_setfont|ps_setgray|ps_setlinecap|ps_setlinejoin|ps_setlinewidth|ps_setmiterlimit|ps_setoverprintmode|ps_setpolydash|ps_shading|ps_shading_pattern|ps_shfill|ps_show|ps_show2|ps_show_boxed|ps_show_xy|ps_show_xy2|ps_string_geometry|ps_stringwidth|ps_stroke|ps_symbol|ps_symbol_name|ps_symbol_width|ps_translate|pspell_add_to_personal|pspell_add_to_session|pspell_check|pspell_clear_session|pspell_config_create|pspell_config_data_dir|pspell_config_dict_dir|pspell_config_ignore|pspell_config_mode|pspell_config_personal|pspell_config_repl|pspell_config_runtogether|pspell_config_save_repl|pspell_new|pspell_new_config|pspell_new_personal|pspell_save_wordlist|pspell_store_replacement|pspell_suggest|putenv|px_close|px_create_fp|px_date2string|px_delete|px_delete_record|px_get_field|px_get_info|px_get_parameter|px_get_record|px_get_schema|px_get_value|px_insert_record|px_new|px_numfields|px_numrecords|px_open_fp|px_put_record|px_retrieve_record|px_set_blob_file|px_set_parameter|px_set_tablename|px_set_targetencoding|px_set_value|px_timestamp2string|px_update_record|qdom_error|qdom_tree|quoted_printable_decode|quoted_printable_encode|quotemeta|rad2deg|radius_acct_open|radius_add_server|radius_auth_open|radius_close|radius_config|radius_create_request|radius_cvt_addr|radius_cvt_int|radius_cvt_string|radius_demangle|radius_demangle_mppe_key|radius_get_attr|radius_get_vendor_attr|radius_put_addr|radius_put_attr|radius_put_int|radius_put_string|radius_put_vendor_addr|radius_put_vendor_attr|radius_put_vendor_int|radius_put_vendor_string|radius_request_authenticator|radius_send_request|radius_server_secret|radius_strerror|rand|range|rangeexception|rar_wrapper_cache_stats|rararchive|rarentry|rarexception|rawurldecode|rawurlencode|read_exif_data|readdir|readfile|readgzfile|readline|readline_add_history|readline_callback_handler_install|readline_callback_handler_remove|readline_callback_read_char|readline_clear_history|readline_completion_function|readline_info|readline_list_history|readline_on_new_line|readline_read_history|readline_redisplay|readline_write_history|readlink|realpath|realpath_cache_get|realpath_cache_size|recode|recode_file|recode_string|recursivearrayiterator|recursivecachingiterator|recursivecallbackfilteriterator|recursivedirectoryiterator|recursivefilteriterator|recursiveiterator|recursiveiteratoriterator|recursiveregexiterator|recursivetreeiterator|reflection|reflectionclass|reflectionexception|reflectionextension|reflectionfunction|reflectionfunctionabstract|reflectionmethod|reflectionobject|reflectionparameter|reflectionproperty|reflector|regexiterator|register_shutdown_function|register_tick_function|rename|rename_function|require|require_once|reset|resetValue|resourcebundle|restore_error_handler|restore_exception_handler|restore_include_path|return|rewind|rewinddir|rmdir|round|rpm_close|rpm_get_tag|rpm_is_valid|rpm_open|rpm_version|rrd_create|rrd_error|rrd_fetch|rrd_first|rrd_graph|rrd_info|rrd_last|rrd_lastupdate|rrd_restore|rrd_tune|rrd_update|rrd_xport|rrdcreator|rrdgraph|rrdupdater|rsort|rtrim|runkit_class_adopt|runkit_class_emancipate|runkit_constant_add|runkit_constant_redefine|runkit_constant_remove|runkit_function_add|runkit_function_copy|runkit_function_redefine|runkit_function_remove|runkit_function_rename|runkit_import|runkit_lint|runkit_lint_file|runkit_method_add|runkit_method_copy|runkit_method_redefine|runkit_method_remove|runkit_method_rename|runkit_return_value_used|runkit_sandbox_output_handler|runkit_superglobals|runtimeexception|samconnection_commit|samconnection_connect|samconnection_constructor|samconnection_disconnect|samconnection_errno|samconnection_error|samconnection_isconnected|samconnection_peek|samconnection_peekall|samconnection_receive|samconnection_remove|samconnection_rollback|samconnection_send|samconnection_setDebug|samconnection_subscribe|samconnection_unsubscribe|sammessage_body|sammessage_constructor|sammessage_header|sca_createdataobject|sca_getservice|sca_localproxy_createdataobject|sca_soapproxy_createdataobject|scandir|sdo_das_changesummary_beginlogging|sdo_das_changesummary_endlogging|sdo_das_changesummary_getchangeddataobjects|sdo_das_changesummary_getchangetype|sdo_das_changesummary_getoldcontainer|sdo_das_changesummary_getoldvalues|sdo_das_changesummary_islogging|sdo_das_datafactory_addpropertytotype|sdo_das_datafactory_addtype|sdo_das_datafactory_getdatafactory|sdo_das_dataobject_getchangesummary|sdo_das_relational_applychanges|sdo_das_relational_construct|sdo_das_relational_createrootdataobject|sdo_das_relational_executepreparedquery|sdo_das_relational_executequery|sdo_das_setting_getlistindex|sdo_das_setting_getpropertyindex|sdo_das_setting_getpropertyname|sdo_das_setting_getvalue|sdo_das_setting_isset|sdo_das_xml_addtypes|sdo_das_xml_create|sdo_das_xml_createdataobject|sdo_das_xml_createdocument|sdo_das_xml_document_getrootdataobject|sdo_das_xml_document_getrootelementname|sdo_das_xml_document_getrootelementuri|sdo_das_xml_document_setencoding|sdo_das_xml_document_setxmldeclaration|sdo_das_xml_document_setxmlversion|sdo_das_xml_loadfile|sdo_das_xml_loadstring|sdo_das_xml_savefile|sdo_das_xml_savestring|sdo_datafactory_create|sdo_dataobject_clear|sdo_dataobject_createdataobject|sdo_dataobject_getcontainer|sdo_dataobject_getsequence|sdo_dataobject_gettypename|sdo_dataobject_gettypenamespaceuri|sdo_exception_getcause|sdo_list_insert|sdo_model_property_getcontainingtype|sdo_model_property_getdefault|sdo_model_property_getname|sdo_model_property_gettype|sdo_model_property_iscontainment|sdo_model_property_ismany|sdo_model_reflectiondataobject_construct|sdo_model_reflectiondataobject_export|sdo_model_reflectiondataobject_getcontainmentproperty|sdo_model_reflectiondataobject_getinstanceproperties|sdo_model_reflectiondataobject_gettype|sdo_model_type_getbasetype|sdo_model_type_getname|sdo_model_type_getnamespaceuri|sdo_model_type_getproperties|sdo_model_type_getproperty|sdo_model_type_isabstracttype|sdo_model_type_isdatatype|sdo_model_type_isinstance|sdo_model_type_isopentype|sdo_model_type_issequencedtype|sdo_sequence_getproperty|sdo_sequence_insert|sdo_sequence_move|seekableiterator|sem_acquire|sem_get|sem_release|sem_remove|serializable|serialize|session_cache_expire|session_cache_limiter|session_commit|session_decode|session_destroy|session_encode|session_get_cookie_params|session_id|session_is_registered|session_module_name|session_name|session_pgsql_add_error|session_pgsql_get_error|session_pgsql_get_field|session_pgsql_reset|session_pgsql_set_field|session_pgsql_status|session_regenerate_id|session_register|session_save_path|session_set_cookie_params|session_set_save_handler|session_start|session_unregister|session_unset|session_write_close|setCounterClass|set_error_handler|set_exception_handler|set_file_buffer|set_include_path|set_magic_quotes_runtime|set_socket_blocking|set_time_limit|setcookie|setlocale|setproctitle|setrawcookie|setstaticpropertyvalue|setthreadtitle|settype|sha1|sha1_file|shell_exec|shm_attach|shm_detach|shm_get_var|shm_has_var|shm_put_var|shm_remove|shm_remove_var|shmop_close|shmop_delete|shmop_open|shmop_read|shmop_size|shmop_write|show_source|shuffle|signeurlpaiement|similar_text|simplexml_import_dom|simplexml_load_file|simplexml_load_string|simplexmlelement|simplexmliterator|sin|sinh|sizeof|sleep|snmp|snmp2_get|snmp2_getnext|snmp2_real_walk|snmp2_set|snmp2_walk|snmp3_get|snmp3_getnext|snmp3_real_walk|snmp3_set|snmp3_walk|snmp_get_quick_print|snmp_get_valueretrieval|snmp_read_mib|snmp_set_enum_print|snmp_set_oid_numeric_print|snmp_set_oid_output_format|snmp_set_quick_print|snmp_set_valueretrieval|snmpget|snmpgetnext|snmprealwalk|snmpset|snmpwalk|snmpwalkoid|soapclient|soapfault|soapheader|soapparam|soapserver|soapvar|socket_accept|socket_bind|socket_clear_error|socket_close|socket_connect|socket_create|socket_create_listen|socket_create_pair|socket_get_option|socket_get_status|socket_getpeername|socket_getsockname|socket_last_error|socket_listen|socket_read|socket_recv|socket_recvfrom|socket_select|socket_send|socket_sendto|socket_set_block|socket_set_blocking|socket_set_nonblock|socket_set_option|socket_set_timeout|socket_shutdown|socket_strerror|socket_write|solr_get_version|solrclient|solrclientexception|solrdocument|solrdocumentfield|solrexception|solrgenericresponse|solrillegalargumentexception|solrillegaloperationexception|solrinputdocument|solrmodifiableparams|solrobject|solrparams|solrpingresponse|solrquery|solrqueryresponse|solrresponse|solrupdateresponse|solrutils|sort|soundex|sphinxclient|spl_autoload|spl_autoload_call|spl_autoload_extensions|spl_autoload_functions|spl_autoload_register|spl_autoload_unregister|spl_classes|spl_object_hash|splbool|spldoublylinkedlist|splenum|splfileinfo|splfileobject|splfixedarray|splfloat|splheap|splint|split|spliti|splmaxheap|splminheap|splobjectstorage|splobserver|splpriorityqueue|splqueue|splstack|splstring|splsubject|spltempfileobject|spoofchecker|sprintf|sql_regcase|sqlite3|sqlite3result|sqlite3stmt|sqlite_array_query|sqlite_busy_timeout|sqlite_changes|sqlite_close|sqlite_column|sqlite_create_aggregate|sqlite_create_function|sqlite_current|sqlite_error_string|sqlite_escape_string|sqlite_exec|sqlite_factory|sqlite_fetch_all|sqlite_fetch_array|sqlite_fetch_column_types|sqlite_fetch_object|sqlite_fetch_single|sqlite_fetch_string|sqlite_field_name|sqlite_has_more|sqlite_has_prev|sqlite_key|sqlite_last_error|sqlite_last_insert_rowid|sqlite_libencoding|sqlite_libversion|sqlite_next|sqlite_num_fields|sqlite_num_rows|sqlite_open|sqlite_popen|sqlite_prev|sqlite_query|sqlite_rewind|sqlite_seek|sqlite_single_query|sqlite_udf_decode_binary|sqlite_udf_encode_binary|sqlite_unbuffered_query|sqlite_valid|sqrt|srand|sscanf|ssdeep_fuzzy_compare|ssdeep_fuzzy_hash|ssdeep_fuzzy_hash_filename|ssh2_auth_hostbased_file|ssh2_auth_none|ssh2_auth_password|ssh2_auth_pubkey_file|ssh2_connect|ssh2_exec|ssh2_fetch_stream|ssh2_fingerprint|ssh2_methods_negotiated|ssh2_publickey_add|ssh2_publickey_init|ssh2_publickey_list|ssh2_publickey_remove|ssh2_scp_recv|ssh2_scp_send|ssh2_sftp|ssh2_sftp_lstat|ssh2_sftp_mkdir|ssh2_sftp_readlink|ssh2_sftp_realpath|ssh2_sftp_rename|ssh2_sftp_rmdir|ssh2_sftp_stat|ssh2_sftp_symlink|ssh2_sftp_unlink|ssh2_shell|ssh2_tunnel|stat|stats_absolute_deviation|stats_cdf_beta|stats_cdf_binomial|stats_cdf_cauchy|stats_cdf_chisquare|stats_cdf_exponential|stats_cdf_f|stats_cdf_gamma|stats_cdf_laplace|stats_cdf_logistic|stats_cdf_negative_binomial|stats_cdf_noncentral_chisquare|stats_cdf_noncentral_f|stats_cdf_poisson|stats_cdf_t|stats_cdf_uniform|stats_cdf_weibull|stats_covariance|stats_den_uniform|stats_dens_beta|stats_dens_cauchy|stats_dens_chisquare|stats_dens_exponential|stats_dens_f|stats_dens_gamma|stats_dens_laplace|stats_dens_logistic|stats_dens_negative_binomial|stats_dens_normal|stats_dens_pmf_binomial|stats_dens_pmf_hypergeometric|stats_dens_pmf_poisson|stats_dens_t|stats_dens_weibull|stats_harmonic_mean|stats_kurtosis|stats_rand_gen_beta|stats_rand_gen_chisquare|stats_rand_gen_exponential|stats_rand_gen_f|stats_rand_gen_funiform|stats_rand_gen_gamma|stats_rand_gen_ibinomial|stats_rand_gen_ibinomial_negative|stats_rand_gen_int|stats_rand_gen_ipoisson|stats_rand_gen_iuniform|stats_rand_gen_noncenral_chisquare|stats_rand_gen_noncentral_f|stats_rand_gen_noncentral_t|stats_rand_gen_normal|stats_rand_gen_t|stats_rand_get_seeds|stats_rand_phrase_to_seeds|stats_rand_ranf|stats_rand_setall|stats_skew|stats_standard_deviation|stats_stat_binomial_coef|stats_stat_correlation|stats_stat_gennch|stats_stat_independent_t|stats_stat_innerproduct|stats_stat_noncentral_t|stats_stat_paired_t|stats_stat_percentile|stats_stat_powersum|stats_variance|stomp|stomp_connect_error|stomp_version|stompexception|stompframe|str_getcsv|str_ireplace|str_pad|str_repeat|str_replace|str_rot13|str_shuffle|str_split|str_word_count|strcasecmp|strchr|strcmp|strcoll|strcspn|stream_bucket_append|stream_bucket_make_writeable|stream_bucket_new|stream_bucket_prepend|stream_context_create|stream_context_get_default|stream_context_get_options|stream_context_get_params|stream_context_set_default|stream_context_set_option|stream_context_set_params|stream_copy_to_stream|stream_encoding|stream_filter_append|stream_filter_prepend|stream_filter_register|stream_filter_remove|stream_get_contents|stream_get_filters|stream_get_line|stream_get_meta_data|stream_get_transports|stream_get_wrappers|stream_is_local|stream_notification_callback|stream_register_wrapper|stream_resolve_include_path|stream_select|stream_set_blocking|stream_set_read_buffer|stream_set_timeout|stream_set_write_buffer|stream_socket_accept|stream_socket_client|stream_socket_enable_crypto|stream_socket_get_name|stream_socket_pair|stream_socket_recvfrom|stream_socket_sendto|stream_socket_server|stream_socket_shutdown|stream_supports_lock|stream_wrapper_register|stream_wrapper_restore|stream_wrapper_unregister|streamwrapper|strftime|strip_tags|stripcslashes|stripos|stripslashes|stristr|strlen|strnatcasecmp|strnatcmp|strncasecmp|strncmp|strpbrk|strpos|strptime|strrchr|strrev|strripos|strrpos|strspn|strstr|strtok|strtolower|strtotime|strtoupper|strtr|strval|substr|substr_compare|substr_count|substr_replace|svm|svmmodel|svn_add|svn_auth_get_parameter|svn_auth_set_parameter|svn_blame|svn_cat|svn_checkout|svn_cleanup|svn_client_version|svn_commit|svn_delete|svn_diff|svn_export|svn_fs_abort_txn|svn_fs_apply_text|svn_fs_begin_txn2|svn_fs_change_node_prop|svn_fs_check_path|svn_fs_contents_changed|svn_fs_copy|svn_fs_delete|svn_fs_dir_entries|svn_fs_file_contents|svn_fs_file_length|svn_fs_is_dir|svn_fs_is_file|svn_fs_make_dir|svn_fs_make_file|svn_fs_node_created_rev|svn_fs_node_prop|svn_fs_props_changed|svn_fs_revision_prop|svn_fs_revision_root|svn_fs_txn_root|svn_fs_youngest_rev|svn_import|svn_log|svn_ls|svn_mkdir|svn_repos_create|svn_repos_fs|svn_repos_fs_begin_txn_for_commit|svn_repos_fs_commit_txn|svn_repos_hotcopy|svn_repos_open|svn_repos_recover|svn_revert|svn_status|svn_update|swf_actiongeturl|swf_actiongotoframe|swf_actiongotolabel|swf_actionnextframe|swf_actionplay|swf_actionprevframe|swf_actionsettarget|swf_actionstop|swf_actiontogglequality|swf_actionwaitforframe|swf_addbuttonrecord|swf_addcolor|swf_closefile|swf_definebitmap|swf_definefont|swf_defineline|swf_definepoly|swf_definerect|swf_definetext|swf_endbutton|swf_enddoaction|swf_endshape|swf_endsymbol|swf_fontsize|swf_fontslant|swf_fonttracking|swf_getbitmapinfo|swf_getfontinfo|swf_getframe|swf_labelframe|swf_lookat|swf_modifyobject|swf_mulcolor|swf_nextid|swf_oncondition|swf_openfile|swf_ortho|swf_ortho2|swf_perspective|swf_placeobject|swf_polarview|swf_popmatrix|swf_posround|swf_pushmatrix|swf_removeobject|swf_rotate|swf_scale|swf_setfont|swf_setframe|swf_shapearc|swf_shapecurveto|swf_shapecurveto3|swf_shapefillbitmapclip|swf_shapefillbitmaptile|swf_shapefilloff|swf_shapefillsolid|swf_shapelinesolid|swf_shapelineto|swf_shapemoveto|swf_showframe|swf_startbutton|swf_startdoaction|swf_startshape|swf_startsymbol|swf_textwidth|swf_translate|swf_viewport|swfaction|swfbitmap|swfbutton|swfdisplayitem|swffill|swffont|swffontchar|swfgradient|swfmorph|swfmovie|swfprebuiltclip|swfshape|swfsound|swfsoundinstance|swfsprite|swftext|swftextfield|swfvideostream|swish_construct|swish_getmetalist|swish_getpropertylist|swish_prepare|swish_query|swishresult_getmetalist|swishresult_stem|swishresults_getparsedwords|swishresults_getremovedstopwords|swishresults_nextresult|swishresults_seekresult|swishsearch_execute|swishsearch_resetlimit|swishsearch_setlimit|swishsearch_setphrasedelimiter|swishsearch_setsort|swishsearch_setstructure|sybase_affected_rows|sybase_close|sybase_connect|sybase_data_seek|sybase_deadlock_retry_count|sybase_fetch_array|sybase_fetch_assoc|sybase_fetch_field|sybase_fetch_object|sybase_fetch_row|sybase_field_seek|sybase_free_result|sybase_get_last_message|sybase_min_client_severity|sybase_min_error_severity|sybase_min_message_severity|sybase_min_server_severity|sybase_num_fields|sybase_num_rows|sybase_pconnect|sybase_query|sybase_result|sybase_select_db|sybase_set_message_handler|sybase_unbuffered_query|symlink|sys_get_temp_dir|sys_getloadavg|syslog|system|tag|tan|tanh|tcpwrap_check|tempnam|textdomain|tidy|tidy_access_count|tidy_config_count|tidy_diagnose|tidy_error_count|tidy_get_error_buffer|tidy_get_output|tidy_load_config|tidy_reset_config|tidy_save_config|tidy_set_encoding|tidy_setopt|tidy_warning_count|tidynode|time|time_nanosleep|time_sleep_until|timezone_abbreviations_list|timezone_identifiers_list|timezone_location_get|timezone_name_from_abbr|timezone_name_get|timezone_offset_get|timezone_open|timezone_transitions_get|timezone_version_get|tmpfile|token_get_all|token_name|tokyotyrant|tokyotyrantquery|tokyotyranttable|tostring|tostring|touch|trait_exists|transliterator|traversable|trigger_error|trim|uasort|ucfirst|ucwords|udm_add_search_limit|udm_alloc_agent|udm_alloc_agent_array|udm_api_version|udm_cat_list|udm_cat_path|udm_check_charset|udm_check_stored|udm_clear_search_limits|udm_close_stored|udm_crc32|udm_errno|udm_error|udm_find|udm_free_agent|udm_free_ispell_data|udm_free_res|udm_get_doc_count|udm_get_res_field|udm_get_res_param|udm_hash32|udm_load_ispell_data|udm_open_stored|udm_set_agent_param|uksort|umask|underflowexception|unexpectedvalueexception|uniqid|unixtojd|unlink|unpack|unregister_tick_function|unserialize|unset|urldecode|urlencode|use_soap_error_handler|user_error|usleep|usort|utf8_decode|utf8_encode|v8js|v8jsexception|var_dump|var_export|variant|variant_abs|variant_add|variant_and|variant_cast|variant_cat|variant_cmp|variant_date_from_timestamp|variant_date_to_timestamp|variant_div|variant_eqv|variant_fix|variant_get_type|variant_idiv|variant_imp|variant_int|variant_mod|variant_mul|variant_neg|variant_not|variant_or|variant_pow|variant_round|variant_set|variant_set_type|variant_sub|variant_xor|version_compare|vfprintf|virtual|vpopmail_add_alias_domain|vpopmail_add_alias_domain_ex|vpopmail_add_domain|vpopmail_add_domain_ex|vpopmail_add_user|vpopmail_alias_add|vpopmail_alias_del|vpopmail_alias_del_domain|vpopmail_alias_get|vpopmail_alias_get_all|vpopmail_auth_user|vpopmail_del_domain|vpopmail_del_domain_ex|vpopmail_del_user|vpopmail_error|vpopmail_passwd|vpopmail_set_user_quota|vprintf|vsprintf|w32api_deftype|w32api_init_dtype|w32api_invoke_function|w32api_register_function|w32api_set_call_method|wddx_add_vars|wddx_deserialize|wddx_packet_end|wddx_packet_start|wddx_serialize_value|wddx_serialize_vars|win32_continue_service|win32_create_service|win32_delete_service|win32_get_last_control_message|win32_pause_service|win32_ps_list_procs|win32_ps_stat_mem|win32_ps_stat_proc|win32_query_service_status|win32_set_service_status|win32_start_service|win32_start_service_ctrl_dispatcher|win32_stop_service|wincache_fcache_fileinfo|wincache_fcache_meminfo|wincache_lock|wincache_ocache_fileinfo|wincache_ocache_meminfo|wincache_refresh_if_changed|wincache_rplist_fileinfo|wincache_rplist_meminfo|wincache_scache_info|wincache_scache_meminfo|wincache_ucache_add|wincache_ucache_cas|wincache_ucache_clear|wincache_ucache_dec|wincache_ucache_delete|wincache_ucache_exists|wincache_ucache_get|wincache_ucache_inc|wincache_ucache_info|wincache_ucache_meminfo|wincache_ucache_set|wincache_unlock|wordwrap|xattr_get|xattr_list|xattr_remove|xattr_set|xattr_supported|xdiff_file_bdiff|xdiff_file_bdiff_size|xdiff_file_bpatch|xdiff_file_diff|xdiff_file_diff_binary|xdiff_file_merge3|xdiff_file_patch|xdiff_file_patch_binary|xdiff_file_rabdiff|xdiff_string_bdiff|xdiff_string_bdiff_size|xdiff_string_bpatch|xdiff_string_diff|xdiff_string_diff_binary|xdiff_string_merge3|xdiff_string_patch|xdiff_string_patch_binary|xdiff_string_rabdiff|xhprof_disable|xhprof_enable|xhprof_sample_disable|xhprof_sample_enable|xml_error_string|xml_get_current_byte_index|xml_get_current_column_number|xml_get_current_line_number|xml_get_error_code|xml_parse|xml_parse_into_struct|xml_parser_create|xml_parser_create_ns|xml_parser_free|xml_parser_get_option|xml_parser_set_option|xml_set_character_data_handler|xml_set_default_handler|xml_set_element_handler|xml_set_end_namespace_decl_handler|xml_set_external_entity_ref_handler|xml_set_notation_decl_handler|xml_set_object|xml_set_processing_instruction_handler|xml_set_start_namespace_decl_handler|xml_set_unparsed_entity_decl_handler|xmlreader|xmlrpc_decode|xmlrpc_decode_request|xmlrpc_encode|xmlrpc_encode_request|xmlrpc_get_type|xmlrpc_is_fault|xmlrpc_parse_method_descriptions|xmlrpc_server_add_introspection_data|xmlrpc_server_call_method|xmlrpc_server_create|xmlrpc_server_destroy|xmlrpc_server_register_introspection_callback|xmlrpc_server_register_method|xmlrpc_set_type|xmlwriter_end_attribute|xmlwriter_end_cdata|xmlwriter_end_comment|xmlwriter_end_document|xmlwriter_end_dtd|xmlwriter_end_dtd_attlist|xmlwriter_end_dtd_element|xmlwriter_end_dtd_entity|xmlwriter_end_element|xmlwriter_end_pi|xmlwriter_flush|xmlwriter_full_end_element|xmlwriter_open_memory|xmlwriter_open_uri|xmlwriter_output_memory|xmlwriter_set_indent|xmlwriter_set_indent_string|xmlwriter_start_attribute|xmlwriter_start_attribute_ns|xmlwriter_start_cdata|xmlwriter_start_comment|xmlwriter_start_document|xmlwriter_start_dtd|xmlwriter_start_dtd_attlist|xmlwriter_start_dtd_element|xmlwriter_start_dtd_entity|xmlwriter_start_element|xmlwriter_start_element_ns|xmlwriter_start_pi|xmlwriter_text|xmlwriter_write_attribute|xmlwriter_write_attribute_ns|xmlwriter_write_cdata|xmlwriter_write_comment|xmlwriter_write_dtd|xmlwriter_write_dtd_attlist|xmlwriter_write_dtd_element|xmlwriter_write_dtd_entity|xmlwriter_write_element|xmlwriter_write_element_ns|xmlwriter_write_pi|xmlwriter_write_raw|xpath_eval|xpath_eval_expression|xpath_new_context|xpath_register_ns|xpath_register_ns_auto|xptr_eval|xptr_new_context|xslt_backend_info|xslt_backend_name|xslt_backend_version|xslt_create|xslt_errno|xslt_error|xslt_free|xslt_getopt|xslt_process|xslt_set_base|xslt_set_encoding|xslt_set_error_handler|xslt_set_log|xslt_set_object|xslt_set_sax_handler|xslt_set_sax_handlers|xslt_set_scheme_handler|xslt_set_scheme_handlers|xslt_setopt|xsltprocessor|yaml_emit|yaml_emit_file|yaml_parse|yaml_parse_file|yaml_parse_url|yaz_addinfo|yaz_ccl_conf|yaz_ccl_parse|yaz_close|yaz_connect|yaz_database|yaz_element|yaz_errno|yaz_error|yaz_es|yaz_es_result|yaz_get_option|yaz_hits|yaz_itemorder|yaz_present|yaz_range|yaz_record|yaz_scan|yaz_scan_result|yaz_schema|yaz_search|yaz_set_option|yaz_sort|yaz_syntax|yaz_wait|yp_all|yp_cat|yp_err_string|yp_errno|yp_first|yp_get_default_domain|yp_master|yp_match|yp_next|yp_order|zend_logo_guid|zend_thread_id|zend_version|zip_close|zip_entry_close|zip_entry_compressedsize|zip_entry_compressionmethod|zip_entry_filesize|zip_entry_name|zip_entry_open|zip_entry_read|zip_open|zip_read|ziparchive|ziparchive_addemptydir|ziparchive_addfile|ziparchive_addfromstring|ziparchive_close|ziparchive_deleteindex|ziparchive_deletename|ziparchive_extractto|ziparchive_getarchivecomment|ziparchive_getcommentindex|ziparchive_getcommentname|ziparchive_getfromindex|ziparchive_getfromname|ziparchive_getnameindex|ziparchive_getstatusstring|ziparchive_getstream|ziparchive_locatename|ziparchive_open|ziparchive_renameindex|ziparchive_renamename|ziparchive_setCommentName|ziparchive_setarchivecomment|ziparchive_setcommentindex|ziparchive_statindex|ziparchive_statname|ziparchive_unchangeall|ziparchive_unchangearchive|ziparchive_unchangeindex|ziparchive_unchangename|zlib_get_coding_type\".split(\"|\")),n=i.arrayToMap(\"abstract|and|array|as|break|case|catch|class|clone|const|continue|declare|default|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|final|for|foreach|function|global|goto|if|implements|interface|instanceof|namespace|new|or|private|protected|public|static|switch|throw|trait|try|use|var|while|xor\".split(\"|\")),r=i.arrayToMap(\"die|echo|empty|exit|eval|include|include_once|isset|list|require|require_once|return|print|unset\".split(\"|\")),o=i.arrayToMap(\"true|TRUE|false|FALSE|null|NULL|__CLASS__|__DIR__|__FILE__|__LINE__|__METHOD__|__FUNCTION__|__NAMESPACE__\".split(\"|\")),u=i.arrayToMap(\"$GLOBALS|$_SERVER|$_GET|$_POST|$_FILES|$_REQUEST|$_SESSION|$_ENV|$_COOKIE|$php_errormsg|$HTTP_RAW_POST_DATA|$http_response_header|$argc|$argv\".split(\"|\")),a=i.arrayToMap(\"key_exists|cairo_matrix_create_scale|cairo_matrix_create_translate|call_user_method|call_user_method_array|com_addref|com_get|com_invoke|com_isenum|com_load|com_release|com_set|connection_timeout|cubrid_load_from_glo|cubrid_new_glo|cubrid_save_to_glo|cubrid_send_glo|define_syslog_variables|dl|ereg|ereg_replace|eregi|eregi_replace|hw_documentattributes|hw_documentbodytag|hw_documentsize|hw_outputdocument|imagedashedline|maxdb_bind_param|maxdb_bind_result|maxdb_client_encoding|maxdb_close_long_data|maxdb_execute|maxdb_fetch|maxdb_get_metadata|maxdb_param_count|maxdb_send_long_data|mcrypt_ecb|mcrypt_generic_end|mime_content_type|mysql_createdb|mysql_dbname|mysql_db_query|mysql_drop_db|mysql_dropdb|mysql_escape_string|mysql_fieldflags|mysql_fieldflags|mysql_fieldname|mysql_fieldtable|mysql_fieldtype|mysql_freeresult|mysql_listdbs|mysql_list_fields|mysql_listfields|mysql_list_tables|mysql_listtables|mysql_numfields|mysql_numrows|mysql_selectdb|mysql_tablename|mysqli_bind_param|mysqli_bind_result|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_slave_query|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|PDF_add_annotation|PDF_add_bookmark|PDF_add_launchlink|PDF_add_locallink|PDF_add_note|PDF_add_outline|PDF_add_pdflink|PDF_add_weblink|PDF_attach_file|PDF_begin_page|PDF_begin_template|PDF_close_pdi|PDF_close|PDF_findfont|PDF_get_font|PDF_get_fontname|PDF_get_fontsize|PDF_get_image_height|PDF_get_image_width|PDF_get_majorversion|PDF_get_minorversion|PDF_get_pdi_parameter|PDF_get_pdi_value|PDF_open_ccitt|PDF_open_file|PDF_open_gif|PDF_open_image_file|PDF_open_image|PDF_open_jpeg|PDF_open_pdi|PDF_open_tiff|PDF_place_image|PDF_place_pdi_page|PDF_set_border_color|PDF_set_border_dash|PDF_set_border_style|PDF_set_char_spacing|PDF_set_duration|PDF_set_horiz_scaling|PDF_set_info_author|PDF_set_info_creator|PDF_set_info_keywords|PDF_set_info_subject|PDF_set_info_title|PDF_set_leading|PDF_set_text_matrix|PDF_set_text_rendering|PDF_set_text_rise|PDF_set_word_spacing|PDF_setgray_fill|PDF_setgray_stroke|PDF_setgray|PDF_setpolydash|PDF_setrgbcolor_fill|PDF_setrgbcolor_stroke|PDF_setrgbcolor|PDF_show_boxed|php_check_syntax|px_set_tablename|px_set_targetencoding|runkit_sandbox_output_handler|session_is_registered|session_register|session_unregisterset_magic_quotes_runtime|magic_quotes_runtime|set_socket_blocking|socket_set_blocking|set_socket_timeout|socket_set_timeout|split|spliti|sql_regcase\".split(\"|\")),f=i.arrayToMap(\"cfunction|old_function\".split(\"|\")),l=i.arrayToMap([]);this.$rules={start:[{token:\"comment\",regex:/(?:#|\\/\\/)(?:[^?]|\\?[^>])*/},e.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/][gimy]*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'\"',next:\"qqstring\"},{token:\"string\",regex:\"'\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language\",regex:\"\\\\b(?:DEFAULT_INCLUDE_PATH|E_(?:ALL|CO(?:MPILE_(?:ERROR|WARNING)|RE_(?:ERROR|WARNING))|ERROR|NOTICE|PARSE|STRICT|USER_(?:ERROR|NOTICE|WARNING)|WARNING)|P(?:EAR_(?:EXTENSION_DIR|INSTALL_DIR)|HP_(?:BINDIR|CONFIG_FILE_(?:PATH|SCAN_DIR)|DATADIR|E(?:OL|XTENSION_DIR)|INT_(?:MAX|SIZE)|L(?:IBDIR|OCALSTATEDIR)|O(?:S|UTPUT_HANDLER_(?:CONT|END|START))|PREFIX|S(?:API|HLIB_SUFFIX|YSCONFDIR)|VERSION))|__COMPILER_HALT_OFFSET__)\\\\b\"},{token:[\"keyword\",\"text\",\"support.class\"],regex:\"\\\\b(new)(\\\\s+)(\\\\w+)\"},{token:[\"support.class\",\"keyword.operator\"],regex:\"\\\\b(\\\\w+)(::)\"},{token:\"constant.language\",regex:\"\\\\b(?:A(?:B(?:DAY_(?:1|2|3|4|5|6|7)|MON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9))|LT_DIGITS|M_STR|SSERT_(?:ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(?:ASE_(?:LOWER|UPPER)|HAR_MAX|O(?:DESET|NNECTION_(?:ABORTED|NORMAL|TIMEOUT)|UNT_(?:NORMAL|RECURSIVE))|R(?:EDITS_(?:ALL|DOCS|FULLPAGE|G(?:ENERAL|ROUP)|MODULES|QA|SAPI)|NCYSTR|YPT_(?:BLOWFISH|EXT_DES|MD5|S(?:ALT_LENGTH|TD_DES)))|URRENCY_SYMBOL)|D(?:AY_(?:1|2|3|4|5|6|7)|ECIMAL_POINT|IRECTORY_SEPARATOR|_(?:FMT|T_FMT))|E(?:NT_(?:COMPAT|NOQUOTES|QUOTES)|RA(?:_(?:D_(?:FMT|T_FMT)|T_FMT|YEAR)|)|XTR_(?:IF_EXISTS|OVERWRITE|PREFIX_(?:ALL|I(?:F_EXISTS|NVALID)|SAME)|SKIP))|FRAC_DIGITS|GROUPING|HTML_(?:ENTITIES|SPECIALCHARS)|IN(?:FO_(?:ALL|C(?:ONFIGURATION|REDITS)|ENVIRONMENT|GENERAL|LICENSE|MODULES|VARIABLES)|I_(?:ALL|PERDIR|SYSTEM|USER)|T_(?:CURR_SYMBOL|FRAC_DIGITS))|L(?:C_(?:ALL|C(?:OLLATE|TYPE)|M(?:ESSAGES|ONETARY)|NUMERIC|TIME)|O(?:CK_(?:EX|NB|SH|UN)|G_(?:A(?:LERT|UTH(?:PRIV|))|C(?:ONS|R(?:IT|ON))|D(?:AEMON|EBUG)|E(?:MERG|RR)|INFO|KERN|L(?:OCAL(?:0|1|2|3|4|5|6|7)|PR)|MAIL|N(?:DELAY|EWS|O(?:TICE|WAIT))|ODELAY|P(?:ERROR|ID)|SYSLOG|U(?:SER|UCP)|WARNING)))|M(?:ON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|_(?:1_PI|2_(?:PI|SQRTPI)|E|L(?:N(?:10|2)|OG(?:10E|2E))|PI(?:_(?:2|4)|)|SQRT(?:1_2|2)))|N(?:EGATIVE_SIGN|O(?:EXPR|STR)|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|P(?:ATH(?:INFO_(?:BASENAME|DIRNAME|EXTENSION)|_SEPARATOR)|M_STR|OSITIVE_SIGN|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|RADIXCHAR|S(?:EEK_(?:CUR|END|SET)|ORT_(?:ASC|DESC|NUMERIC|REGULAR|STRING)|TR_PAD_(?:BOTH|LEFT|RIGHT))|T(?:HOUS(?:ANDS_SEP|EP)|_FMT(?:_AMPM|))|YES(?:EXPR|STR)|STD(?:IN|OUT|ERR))\\\\b\"},{token:function(e){return n.hasOwnProperty(e)?\"keyword\":o.hasOwnProperty(e)?\"constant.language\":u.hasOwnProperty(e)?\"variable.language\":l.hasOwnProperty(e)?\"invalid.illegal\":t.hasOwnProperty(e)?\"support.function\":e==\"debugger\"?\"invalid.deprecated\":e.match(/^(\\$[a-zA-Z_\\x7f-\\uffff][a-zA-Z0-9_\\x7f-\\uffff]*|self|parent)$/)?\"variable\":\"identifier\"},regex:/[a-zA-Z_$\\x7f-\\uffff][a-zA-Z0-9_\\x7f-\\uffff]*/},{onMatch:function(e,t,n){e=e.substr(3);if(e[0]==\"'\"||e[0]=='\"')e=e.slice(1,-1);return n.unshift(this.next,e),\"markup.list\"},regex:/<<<(?:\\w+|'\\w+'|\"\\w+\")$/,next:\"heredoc\"},{token:\"keyword.operator\",regex:\"::|!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|!=|!==|<=|>=|=>|<<=|>>=|>>>=|<>|<|>|=|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],heredoc:[{onMatch:function(e,t,n){return n[1]!=e?\"string\":(n.shift(),n.shift(),\"markup.list\")},regex:\"^\\\\w+(?=;?$)\",next:\"start\"},{token:\"string\",regex:\".*\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],qqstring:[{token:\"constant.language.escape\",regex:'\\\\\\\\(?:[nrtvef\\\\\\\\\"$]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2})'},{token:\"variable\",regex:/\\$[\\w]+(?:\\[[\\w\\]+]|[=\\-]>\\w+)?/},{token:\"variable\",regex:/\\$\\{[^\"\\}]+\\}?/},{token:\"string\",regex:'\"',next:\"start\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:/\\\\['\\\\]/},{token:\"string\",regex:\"'\",next:\"start\"},{defaultToken:\"string\"}]},this.embedRules(s,\"doc-\",[s.getEndRule(\"start\")])};r.inherits(a,o);var f=function(){u.call(this);var e=[{token:\"support.php_tag\",regex:\"<\\\\?(?:php|=)?\",push:\"php-start\"}],t=[{token:\"support.php_tag\",regex:\"\\\\?>\",next:\"pop\"}];for(var n in this.$rules)this.$rules[n].unshift.apply(this.$rules[n],e);this.embedRules(a,\"php-\",t,[\"start\"]),this.normalizeRules()};r.inherits(f,u),t.PhpHighlightRules=f,t.PhpLangHighlightRules=a}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/php_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function s(e,t){return e.type.lastIndexOf(t)>-1}var r={abs:[\"int abs(int number)\",\"Return the absolute value of the number\"],acos:[\"float acos(float number)\",\"Return the arc cosine of the number in radians\"],acosh:[\"float acosh(float number)\",\"Returns the inverse hyperbolic cosine of the number, i.e. the value whose hyperbolic cosine is number\"],addGlob:[\"bool addGlob(string pattern[,int flags [, array options]])\",\"Add files matching the glob pattern. See php's glob for the pattern syntax.\"],addPattern:[\"bool addPattern(string pattern[, string path [, array options]])\",\"Add files matching the pcre pattern. See php's pcre for the pattern syntax.\"],addcslashes:[\"string addcslashes(string str, string charlist)\",\"Escapes all chars mentioned in charlist with backslash. It creates octal representations if asked to backslash characters with 8th bit set or with ASCII<32 (except '\\\\n', '\\\\r', '\\\\t' etc...)\"],addslashes:[\"string addslashes(string str)\",\"Escapes single quote, double quotes and backslash characters in a string with backslashes\"],apache_child_terminate:[\"bool apache_child_terminate(void)\",\"Terminate apache process after this request\"],apache_get_modules:[\"array apache_get_modules(void)\",\"Get a list of loaded Apache modules\"],apache_get_version:[\"string apache_get_version(void)\",\"Fetch Apache version\"],apache_getenv:[\"bool apache_getenv(string variable [, bool walk_to_top])\",\"Get an Apache subprocess_env variable\"],apache_lookup_uri:[\"object apache_lookup_uri(string URI)\",\"Perform a partial request of the given URI to obtain information about it\"],apache_note:[\"string apache_note(string note_name [, string note_value])\",\"Get and set Apache request notes\"],apache_request_auth_name:[\"string apache_request_auth_name()\",\"\"],apache_request_auth_type:[\"string apache_request_auth_type()\",\"\"],apache_request_discard_request_body:[\"long apache_request_discard_request_body()\",\"\"],apache_request_err_headers_out:[\"array apache_request_err_headers_out([{string name|array list} [, string value [, bool replace = false]]])\",\"* fetch all headers that go out in case of an error or a subrequest\"],apache_request_headers:[\"array apache_request_headers(void)\",\"Fetch all HTTP request headers\"],apache_request_headers_in:[\"array apache_request_headers_in()\",\"* fetch all incoming request headers\"],apache_request_headers_out:[\"array apache_request_headers_out([{string name|array list} [, string value [, bool replace = false]]])\",\"* fetch all outgoing request headers\"],apache_request_is_initial_req:[\"bool apache_request_is_initial_req()\",\"\"],apache_request_log_error:[\"boolean apache_request_log_error(string message, [long facility])\",\"\"],apache_request_meets_conditions:[\"long apache_request_meets_conditions()\",\"\"],apache_request_remote_host:[\"int apache_request_remote_host([int type])\",\"\"],apache_request_run:[\"long apache_request_run()\",\"This is a wrapper for ap_sub_run_req and ap_destory_sub_req.  It takes      sub_request, runs it, destroys it, and returns it's status.\"],apache_request_satisfies:[\"long apache_request_satisfies()\",\"\"],apache_request_server_port:[\"int apache_request_server_port()\",\"\"],apache_request_set_etag:[\"void apache_request_set_etag()\",\"\"],apache_request_set_last_modified:[\"void apache_request_set_last_modified()\",\"\"],apache_request_some_auth_required:[\"bool apache_request_some_auth_required()\",\"\"],apache_request_sub_req_lookup_file:[\"object apache_request_sub_req_lookup_file(string file)\",\"Returns sub-request for the specified file.  You would     need to run it yourself with run().\"],apache_request_sub_req_lookup_uri:[\"object apache_request_sub_req_lookup_uri(string uri)\",\"Returns sub-request for the specified uri.  You would     need to run it yourself with run()\"],apache_request_sub_req_method_uri:[\"object apache_request_sub_req_method_uri(string method, string uri)\",\"Returns sub-request for the specified file.  You would     need to run it yourself with run().\"],apache_request_update_mtime:[\"long apache_request_update_mtime([int dependency_mtime])\",\"\"],apache_reset_timeout:[\"bool apache_reset_timeout(void)\",\"Reset the Apache write timer\"],apache_response_headers:[\"array apache_response_headers(void)\",\"Fetch all HTTP response headers\"],apache_setenv:[\"bool apache_setenv(string variable, string value [, bool walk_to_top])\",\"Set an Apache subprocess_env variable\"],array_change_key_case:[\"array array_change_key_case(array input [, int case=CASE_LOWER])\",\"Retuns an array with all string keys lowercased [or uppercased]\"],array_chunk:[\"array array_chunk(array input, int size [, bool preserve_keys])\",\"Split array into chunks\"],array_combine:[\"array array_combine(array keys, array values)\",\"Creates an array by using the elements of the first parameter as keys and the elements of the second as the corresponding values\"],array_count_values:[\"array array_count_values(array input)\",\"Return the value as key and the frequency of that value in input as value\"],array_diff:[\"array array_diff(array arr1, array arr2 [, array ...])\",\"Returns the entries of arr1 that have values which are not present in any of the others arguments.\"],array_diff_assoc:[\"array array_diff_assoc(array arr1, array arr2 [, array ...])\",\"Returns the entries of arr1 that have values which are not present in any of the others arguments but do additional checks whether the keys are equal\"],array_diff_key:[\"array array_diff_key(array arr1, array arr2 [, array ...])\",\"Returns the entries of arr1 that have keys which are not present in any of the others arguments. This function is like array_diff() but works on the keys instead of the values. The associativity is preserved.\"],array_diff_uassoc:[\"array array_diff_uassoc(array arr1, array arr2 [, array ...], callback data_comp_func)\",\"Returns the entries of arr1 that have values which are not present in any of the others arguments but do additional checks whether the keys are equal. Elements are compared by user supplied function.\"],array_diff_ukey:[\"array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func)\",\"Returns the entries of arr1 that have keys which are not present in any of the others arguments. User supplied function is used for comparing the keys. This function is like array_udiff() but works on the keys instead of the values. The associativity is preserved.\"],array_fill:[\"array array_fill(int start_key, int num, mixed val)\",\"Create an array containing num elements starting with index start_key each initialized to val\"],array_fill_keys:[\"array array_fill_keys(array keys, mixed val)\",\"Create an array using the elements of the first parameter as keys each initialized to val\"],array_filter:[\"array array_filter(array input [, mixed callback])\",\"Filters elements from the array via the callback.\"],array_flip:[\"array array_flip(array input)\",\"Return array with key <-> value flipped\"],array_intersect:[\"array array_intersect(array arr1, array arr2 [, array ...])\",\"Returns the entries of arr1 that have values which are present in all the other arguments\"],array_intersect_assoc:[\"array array_intersect_assoc(array arr1, array arr2 [, array ...])\",\"Returns the entries of arr1 that have values which are present in all the other arguments. Keys are used to do more restrictive check\"],array_intersect_key:[\"array array_intersect_key(array arr1, array arr2 [, array ...])\",\"Returns the entries of arr1 that have keys which are present in all the other arguments. Kind of equivalent to array_diff(array_keys($arr1), array_keys($arr2)[,array_keys(...)]). Equivalent of array_intersect_assoc() but does not do compare of the data.\"],array_intersect_uassoc:[\"array array_intersect_uassoc(array arr1, array arr2 [, array ...], callback key_compare_func)\",\"Returns the entries of arr1 that have values which are present in all the other arguments. Keys are used to do more restrictive check and they are compared by using an user-supplied callback.\"],array_intersect_ukey:[\"array array_intersect_ukey(array arr1, array arr2 [, array ...], callback key_compare_func)\",\"Returns the entries of arr1 that have keys which are present in all the other arguments. Kind of equivalent to array_diff(array_keys($arr1), array_keys($arr2)[,array_keys(...)]). The comparison of the keys is performed by a user supplied function. Equivalent of array_intersect_uassoc() but does not do compare of the data.\"],array_key_exists:[\"bool array_key_exists(mixed key, array search)\",\"Checks if the given key or index exists in the array\"],array_keys:[\"array array_keys(array input [, mixed search_value[, bool strict]])\",\"Return just the keys from the input array, optionally only for the specified search_value\"],array_map:[\"array array_map(mixed callback, array input1 [, array input2 ,...])\",\"Applies the callback to the elements in given arrays.\"],array_merge:[\"array array_merge(array arr1, array arr2 [, array ...])\",\"Merges elements from passed arrays into one array\"],array_merge_recursive:[\"array array_merge_recursive(array arr1, array arr2 [, array ...])\",\"Recursively merges elements from passed arrays into one array\"],array_multisort:[\"bool array_multisort(array ar1 [, SORT_ASC|SORT_DESC [, SORT_REGULAR|SORT_NUMERIC|SORT_STRING]] [, array ar2 [, SORT_ASC|SORT_DESC [, SORT_REGULAR|SORT_NUMERIC|SORT_STRING]], ...])\",\"Sort multiple arrays at once similar to how ORDER BY clause works in SQL\"],array_pad:[\"array array_pad(array input, int pad_size, mixed pad_value)\",\"Returns a copy of input array padded with pad_value to size pad_size\"],array_pop:[\"mixed array_pop(array stack)\",\"Pops an element off the end of the array\"],array_product:[\"mixed array_product(array input)\",\"Returns the product of the array entries\"],array_push:[\"int array_push(array stack, mixed var [, mixed ...])\",\"Pushes elements onto the end of the array\"],array_rand:[\"mixed array_rand(array input [, int num_req])\",\"Return key/keys for random entry/entries in the array\"],array_reduce:[\"mixed array_reduce(array input, mixed callback [, mixed initial])\",\"Iteratively reduce the array to a single value via the callback.\"],array_replace:[\"array array_replace(array arr1, array arr2 [, array ...])\",\"Replaces elements from passed arrays into one array\"],array_replace_recursive:[\"array array_replace_recursive(array arr1, array arr2 [, array ...])\",\"Recursively replaces elements from passed arrays into one array\"],array_reverse:[\"array array_reverse(array input [, bool preserve keys])\",\"Return input as a new array with the order of the entries reversed\"],array_search:[\"mixed array_search(mixed needle, array haystack [, bool strict])\",\"Searches the array for a given value and returns the corresponding key if successful\"],array_shift:[\"mixed array_shift(array stack)\",\"Pops an element off the beginning of the array\"],array_slice:[\"array array_slice(array input, int offset [, int length [, bool preserve_keys]])\",\"Returns elements specified by offset and length\"],array_splice:[\"array array_splice(array input, int offset [, int length [, array replacement]])\",\"Removes the elements designated by offset and length and replace them with supplied array\"],array_sum:[\"mixed array_sum(array input)\",\"Returns the sum of the array entries\"],array_udiff:[\"array array_udiff(array arr1, array arr2 [, array ...], callback data_comp_func)\",\"Returns the entries of arr1 that have values which are not present in any of the others arguments. Elements are compared by user supplied function.\"],array_udiff_assoc:[\"array array_udiff_assoc(array arr1, array arr2 [, array ...], callback key_comp_func)\",\"Returns the entries of arr1 that have values which are not present in any of the others arguments but do additional checks whether the keys are equal. Keys are compared by user supplied function.\"],array_udiff_uassoc:[\"array array_udiff_uassoc(array arr1, array arr2 [, array ...], callback data_comp_func, callback key_comp_func)\",\"Returns the entries of arr1 that have values which are not present in any of the others arguments but do additional checks whether the keys are equal. Keys and elements are compared by user supplied functions.\"],array_uintersect:[\"array array_uintersect(array arr1, array arr2 [, array ...], callback data_compare_func)\",\"Returns the entries of arr1 that have values which are present in all the other arguments. Data is compared by using an user-supplied callback.\"],array_uintersect_assoc:[\"array array_uintersect_assoc(array arr1, array arr2 [, array ...], callback data_compare_func)\",\"Returns the entries of arr1 that have values which are present in all the other arguments. Keys are used to do more restrictive check. Data is compared by using an user-supplied callback.\"],array_uintersect_uassoc:[\"array array_uintersect_uassoc(array arr1, array arr2 [, array ...], callback data_compare_func, callback key_compare_func)\",\"Returns the entries of arr1 that have values which are present in all the other arguments. Keys are used to do more restrictive check. Both data and keys are compared by using user-supplied callbacks.\"],array_unique:[\"array array_unique(array input [, int sort_flags])\",\"Removes duplicate values from array\"],array_unshift:[\"int array_unshift(array stack, mixed var [, mixed ...])\",\"Pushes elements onto the beginning of the array\"],array_values:[\"array array_values(array input)\",\"Return just the values from the input array\"],array_walk:[\"bool array_walk(array input, string funcname [, mixed userdata])\",\"Apply a user function to every member of an array\"],array_walk_recursive:[\"bool array_walk_recursive(array input, string funcname [, mixed userdata])\",\"Apply a user function recursively to every member of an array\"],arsort:[\"bool arsort(array &array_arg [, int sort_flags])\",\"Sort an array in reverse order and maintain index association\"],asin:[\"float asin(float number)\",\"Returns the arc sine of the number in radians\"],asinh:[\"float asinh(float number)\",\"Returns the inverse hyperbolic sine of the number, i.e. the value whose hyperbolic sine is number\"],asort:[\"bool asort(array &array_arg [, int sort_flags])\",\"Sort an array and maintain index association\"],assert:[\"int assert(string|bool assertion)\",\"Checks if assertion is false\"],assert_options:[\"mixed assert_options(int what [, mixed value])\",\"Set/get the various assert flags\"],atan:[\"float atan(float number)\",\"Returns the arc tangent of the number in radians\"],atan2:[\"float atan2(float y, float x)\",\"Returns the arc tangent of y/x, with the resulting quadrant determined by the signs of y and x\"],atanh:[\"float atanh(float number)\",\"Returns the inverse hyperbolic tangent of the number, i.e. the value whose hyperbolic tangent is number\"],attachIterator:[\"void attachIterator(Iterator iterator[, mixed info])\",\"Attach a new iterator\"],base64_decode:[\"string base64_decode(string str[, bool strict])\",\"Decodes string using MIME base64 algorithm\"],base64_encode:[\"string base64_encode(string str)\",\"Encodes string using MIME base64 algorithm\"],base_convert:[\"string base_convert(string number, int frombase, int tobase)\",\"Converts a number in a string from any base <= 36 to any base <= 36\"],basename:[\"string basename(string path [, string suffix])\",\"Returns the filename component of the path\"],bcadd:[\"string bcadd(string left_operand, string right_operand [, int scale])\",\"Returns the sum of two arbitrary precision numbers\"],bccomp:[\"int bccomp(string left_operand, string right_operand [, int scale])\",\"Compares two arbitrary precision numbers\"],bcdiv:[\"string bcdiv(string left_operand, string right_operand [, int scale])\",\"Returns the quotient of two arbitrary precision numbers (division)\"],bcmod:[\"string bcmod(string left_operand, string right_operand)\",\"Returns the modulus of the two arbitrary precision operands\"],bcmul:[\"string bcmul(string left_operand, string right_operand [, int scale])\",\"Returns the multiplication of two arbitrary precision numbers\"],bcpow:[\"string bcpow(string x, string y [, int scale])\",\"Returns the value of an arbitrary precision number raised to the power of another\"],bcpowmod:[\"string bcpowmod(string x, string y, string mod [, int scale])\",\"Returns the value of an arbitrary precision number raised to the power of another reduced by a modulous\"],bcscale:[\"bool bcscale(int scale)\",\"Sets default scale parameter for all bc math functions\"],bcsqrt:[\"string bcsqrt(string operand [, int scale])\",\"Returns the square root of an arbitray precision number\"],bcsub:[\"string bcsub(string left_operand, string right_operand [, int scale])\",\"Returns the difference between two arbitrary precision numbers\"],bin2hex:[\"string bin2hex(string data)\",\"Converts the binary representation of data to hex\"],bind_textdomain_codeset:[\"string bind_textdomain_codeset (string domain, string codeset)\",\"Specify the character encoding in which the messages from the DOMAIN message catalog will be returned.\"],bindec:[\"int bindec(string binary_number)\",\"Returns the decimal equivalent of the binary number\"],bindtextdomain:[\"string bindtextdomain(string domain_name, string dir)\",\"Bind to the text domain domain_name, looking for translations in dir. Returns the current domain\"],birdstep_autocommit:[\"bool birdstep_autocommit(int index)\",\"\"],birdstep_close:[\"bool birdstep_close(int id)\",\"\"],birdstep_commit:[\"bool birdstep_commit(int index)\",\"\"],birdstep_connect:[\"int birdstep_connect(string server, string user, string pass)\",\"\"],birdstep_exec:[\"int birdstep_exec(int index, string exec_str)\",\"\"],birdstep_fetch:[\"bool birdstep_fetch(int index)\",\"\"],birdstep_fieldname:[\"string birdstep_fieldname(int index, int col)\",\"\"],birdstep_fieldnum:[\"int birdstep_fieldnum(int index)\",\"\"],birdstep_freeresult:[\"bool birdstep_freeresult(int index)\",\"\"],birdstep_off_autocommit:[\"bool birdstep_off_autocommit(int index)\",\"\"],birdstep_result:[\"mixed birdstep_result(int index, mixed col)\",\"\"],birdstep_rollback:[\"bool birdstep_rollback(int index)\",\"\"],bzcompress:[\"string bzcompress(string source [, int blocksize100k [, int workfactor]])\",\"Compresses a string into BZip2 encoded data\"],bzdecompress:[\"string bzdecompress(string source [, int small])\",\"Decompresses BZip2 compressed data\"],bzerrno:[\"int bzerrno(resource bz)\",\"Returns the error number\"],bzerror:[\"array bzerror(resource bz)\",\"Returns the error number and error string in an associative array\"],bzerrstr:[\"string bzerrstr(resource bz)\",\"Returns the error string\"],bzopen:[\"resource bzopen(string|int file|fp, string mode)\",\"Opens a new BZip2 stream\"],bzread:[\"string bzread(resource bz[, int length])\",\"Reads up to length bytes from a BZip2 stream, or 1024 bytes if length is not specified\"],cal_days_in_month:[\"int cal_days_in_month(int calendar, int month, int year)\",\"Returns the number of days in a month for a given year and calendar\"],cal_from_jd:[\"array cal_from_jd(int jd, int calendar)\",\"Converts from Julian Day Count to a supported calendar and return extended information\"],cal_info:[\"array cal_info([int calendar])\",\"Returns information about a particular calendar\"],cal_to_jd:[\"int cal_to_jd(int calendar, int month, int day, int year)\",\"Converts from a supported calendar to Julian Day Count\"],call_user_func:[\"mixed call_user_func(mixed function_name [, mixed parmeter] [, mixed ...])\",\"Call a user function which is the first parameter\"],call_user_func_array:[\"mixed call_user_func_array(string function_name, array parameters)\",\"Call a user function which is the first parameter with the arguments contained in array\"],call_user_method:[\"mixed call_user_method(string method_name, mixed object [, mixed parameter] [, mixed ...])\",\"Call a user method on a specific object or class\"],call_user_method_array:[\"mixed call_user_method_array(string method_name, mixed object, array params)\",\"Call a user method on a specific object or class using a parameter array\"],ceil:[\"float ceil(float number)\",\"Returns the next highest integer value of the number\"],chdir:[\"bool chdir(string directory)\",\"Change the current directory\"],checkdate:[\"bool checkdate(int month, int day, int year)\",\"Returns true(1) if it is a valid date in gregorian calendar\"],chgrp:[\"bool chgrp(string filename, mixed group)\",\"Change file group\"],chmod:[\"bool chmod(string filename, int mode)\",\"Change file mode\"],chown:[\"bool chown (string filename, mixed user)\",\"Change file owner\"],chr:[\"string chr(int ascii)\",\"Converts ASCII code to a character\"],chroot:[\"bool chroot(string directory)\",\"Change root directory\"],chunk_split:[\"string chunk_split(string str [, int chunklen [, string ending]])\",\"Returns split line\"],class_alias:[\"bool class_alias(string user_class_name , string alias_name [, bool autoload])\",\"Creates an alias for user defined class\"],class_exists:[\"bool class_exists(string classname [, bool autoload])\",\"Checks if the class exists\"],class_implements:[\"array class_implements(mixed what [, bool autoload ])\",\"Return all classes and interfaces implemented by SPL\"],class_parents:[\"array class_parents(object instance [, boolean autoload = true])\",\"Return an array containing the names of all parent classes\"],clearstatcache:[\"void clearstatcache([bool clear_realpath_cache[, string filename]])\",\"Clear file stat cache\"],closedir:[\"void closedir([resource dir_handle])\",\"Close directory connection identified by the dir_handle\"],closelog:[\"bool closelog(void)\",\"Close connection to system logger\"],collator_asort:[\"bool collator_asort( Collator $coll, array(string) $arr )\",\"* Sort array using specified collator, maintaining index association.\"],collator_compare:[\"int collator_compare( Collator $coll, string $str1, string $str2 )\",\"* Compare two strings.\"],collator_create:[\"Collator collator_create( string $locale )\",\"* Create collator.\"],collator_get_attribute:[\"int collator_get_attribute( Collator $coll, int $attr )\",\"* Get collation attribute value.\"],collator_get_error_code:[\"int collator_get_error_code( Collator $coll )\",\"* Get collator's last error code.\"],collator_get_error_message:[\"string collator_get_error_message( Collator $coll )\",\"* Get text description for collator's last error code.\"],collator_get_locale:[\"string collator_get_locale( Collator $coll, int $type )\",\"* Gets the locale name of the collator.\"],collator_get_sort_key:[\"bool collator_get_sort_key( Collator $coll, string $str )\",\"* Get a sort key for a string from a Collator. }}}\"],collator_get_strength:[\"int collator_get_strength(Collator coll)\",\"* Returns the current collation strength.\"],collator_set_attribute:[\"bool collator_set_attribute( Collator $coll, int $attr, int $val )\",\"* Set collation attribute.\"],collator_set_strength:[\"bool collator_set_strength(Collator coll, int strength)\",\"* Set the collation strength.\"],collator_sort:[\"bool collator_sort(  Collator $coll, array(string) $arr [, int $sort_flags] )\",\"* Sort array using specified collator.\"],collator_sort_with_sort_keys:[\"bool collator_sort_with_sort_keys( Collator $coll, array(string) $arr )\",\"* Equivalent to standard PHP sort using Collator.  * Uses ICU ucol_getSortKey for performance.\"],com_create_guid:[\"string com_create_guid()\",\"Generate a globally unique identifier (GUID)\"],com_event_sink:[\"bool com_event_sink(object comobject, object sinkobject [, mixed sinkinterface])\",\"Connect events from a COM object to a PHP object\"],com_get_active_object:[\"object com_get_active_object(string progid [, int code_page ])\",\"Returns a handle to an already running instance of a COM object\"],com_load_typelib:[\"bool com_load_typelib(string typelib_name [, int case_insensitive])\",\"Loads a Typelibrary and registers its constants\"],com_message_pump:[\"bool com_message_pump([int timeoutms])\",\"Process COM messages, sleeping for up to timeoutms milliseconds\"],com_print_typeinfo:[\"bool com_print_typeinfo(object comobject | string typelib, string dispinterface, bool wantsink)\",\"Print out a PHP class definition for a dispatchable interface\"],compact:[\"array compact(mixed var_names [, mixed ...])\",\"Creates a hash containing variables and their values\"],compose_locale:[\"static string compose_locale($array)\",\"* Creates a locale by combining the parts of locale-ID passed  * }}}\"],confirm_extname_compiled:[\"string confirm_extname_compiled(string arg)\",\"Return a string to confirm that the module is compiled in\"],connection_aborted:[\"int connection_aborted(void)\",\"Returns true if client disconnected\"],connection_status:[\"int connection_status(void)\",\"Returns the connection status bitfield\"],constant:[\"mixed constant(string const_name)\",\"Given the name of a constant this function will return the constant's associated value\"],convert_cyr_string:[\"string convert_cyr_string(string str, string from, string to)\",\"Convert from one Cyrillic character set to another\"],convert_uudecode:[\"string convert_uudecode(string data)\",\"decode a uuencoded string\"],convert_uuencode:[\"string convert_uuencode(string data)\",\"uuencode a string\"],copy:[\"bool copy(string source_file, string destination_file [, resource context])\",\"Copy a file\"],cos:[\"float cos(float number)\",\"Returns the cosine of the number in radians\"],cosh:[\"float cosh(float number)\",\"Returns the hyperbolic cosine of the number, defined as (exp(number) + exp(-number))/2\"],count:[\"int count(mixed var [, int mode])\",\"Count the number of elements in a variable (usually an array)\"],count_chars:[\"mixed count_chars(string input [, int mode])\",\"Returns info about what characters are used in input\"],crc32:[\"string crc32(string str)\",\"Calculate the crc32 polynomial of a string\"],create_function:[\"string create_function(string args, string code)\",\"Creates an anonymous function, and returns its name (funny, eh?)\"],crypt:[\"string crypt(string str [, string salt])\",\"Hash a string\"],ctype_alnum:[\"bool ctype_alnum(mixed c)\",\"Checks for alphanumeric character(s)\"],ctype_alpha:[\"bool ctype_alpha(mixed c)\",\"Checks for alphabetic character(s)\"],ctype_cntrl:[\"bool ctype_cntrl(mixed c)\",\"Checks for control character(s)\"],ctype_digit:[\"bool ctype_digit(mixed c)\",\"Checks for numeric character(s)\"],ctype_graph:[\"bool ctype_graph(mixed c)\",\"Checks for any printable character(s) except space\"],ctype_lower:[\"bool ctype_lower(mixed c)\",\"Checks for lowercase character(s)\"],ctype_print:[\"bool ctype_print(mixed c)\",\"Checks for printable character(s)\"],ctype_punct:[\"bool ctype_punct(mixed c)\",\"Checks for any printable character which is not whitespace or an alphanumeric character\"],ctype_space:[\"bool ctype_space(mixed c)\",\"Checks for whitespace character(s)\"],ctype_upper:[\"bool ctype_upper(mixed c)\",\"Checks for uppercase character(s)\"],ctype_xdigit:[\"bool ctype_xdigit(mixed c)\",\"Checks for character(s) representing a hexadecimal digit\"],curl_close:[\"void curl_close(resource ch)\",\"Close a cURL session\"],curl_copy_handle:[\"resource curl_copy_handle(resource ch)\",\"Copy a cURL handle along with all of it's preferences\"],curl_errno:[\"int curl_errno(resource ch)\",\"Return an integer containing the last error number\"],curl_error:[\"string curl_error(resource ch)\",\"Return a string contain the last error for the current session\"],curl_exec:[\"bool curl_exec(resource ch)\",\"Perform a cURL session\"],curl_getinfo:[\"mixed curl_getinfo(resource ch [, int option])\",\"Get information regarding a specific transfer\"],curl_init:[\"resource curl_init([string url])\",\"Initialize a cURL session\"],curl_multi_add_handle:[\"int curl_multi_add_handle(resource mh, resource ch)\",\"Add a normal cURL handle to a cURL multi handle\"],curl_multi_close:[\"void curl_multi_close(resource mh)\",\"Close a set of cURL handles\"],curl_multi_exec:[\"int curl_multi_exec(resource mh, int &still_running)\",\"Run the sub-connections of the current cURL handle\"],curl_multi_getcontent:[\"string curl_multi_getcontent(resource ch)\",\"Return the content of a cURL handle if CURLOPT_RETURNTRANSFER is set\"],curl_multi_info_read:[\"array curl_multi_info_read(resource mh [, long msgs_in_queue])\",\"Get information about the current transfers\"],curl_multi_init:[\"resource curl_multi_init(void)\",\"Returns a new cURL multi handle\"],curl_multi_remove_handle:[\"int curl_multi_remove_handle(resource mh, resource ch)\",\"Remove a multi handle from a set of cURL handles\"],curl_multi_select:[\"int curl_multi_select(resource mh[, double timeout])\",'Get all the sockets associated with the cURL extension, which can then be \"selected\"'],curl_setopt:[\"bool curl_setopt(resource ch, int option, mixed value)\",\"Set an option for a cURL transfer\"],curl_setopt_array:[\"bool curl_setopt_array(resource ch, array options)\",\"Set an array of option for a cURL transfer\"],curl_version:[\"array curl_version([int version])\",\"Return cURL version information.\"],current:[\"mixed current(array array_arg)\",\"Return the element currently pointed to by the internal array pointer\"],date:[\"string date(string format [, long timestamp])\",\"Format a local date/time\"],date_add:[\"DateTime date_add(DateTime object, DateInterval interval)\",\"Adds an interval to the current date in object.\"],date_create:[\"DateTime date_create([string time[, DateTimeZone object]])\",\"Returns new DateTime object\"],date_create_from_format:[\"DateTime date_create_from_format(string format, string time[, DateTimeZone object])\",\"Returns new DateTime object formatted according to the specified format\"],date_date_set:[\"DateTime date_date_set(DateTime object, long year, long month, long day)\",\"Sets the date.\"],date_default_timezone_get:[\"string date_default_timezone_get()\",\"Gets the default timezone used by all date/time functions in a script\"],date_default_timezone_set:[\"bool date_default_timezone_set(string timezone_identifier)\",\"Sets the default timezone used by all date/time functions in a script\"],date_diff:[\"DateInterval date_diff(DateTime object [, bool absolute])\",\"Returns the difference between two DateTime objects.\"],date_format:[\"string date_format(DateTime object, string format)\",\"Returns date formatted according to given format\"],date_get_last_errors:[\"array date_get_last_errors()\",\"Returns the warnings and errors found while parsing a date/time string.\"],date_interval_create_from_date_string:[\"DateInterval date_interval_create_from_date_string(string time)\",\"Uses the normal date parsers and sets up a DateInterval from the relative parts of the parsed string\"],date_interval_format:[\"string date_interval_format(DateInterval object, string format)\",\"Formats the interval.\"],date_isodate_set:[\"DateTime date_isodate_set(DateTime object, long year, long week[, long day])\",\"Sets the ISO date.\"],date_modify:[\"DateTime date_modify(DateTime object, string modify)\",\"Alters the timestamp.\"],date_offset_get:[\"long date_offset_get(DateTime object)\",\"Returns the DST offset.\"],date_parse:[\"array date_parse(string date)\",\"Returns associative array with detailed info about given date\"],date_parse_from_format:[\"array date_parse_from_format(string format, string date)\",\"Returns associative array with detailed info about given date\"],date_sub:[\"DateTime date_sub(DateTime object, DateInterval interval)\",\"Subtracts an interval to the current date in object.\"],date_sun_info:[\"array date_sun_info(long time, float latitude, float longitude)\",\"Returns an array with information about sun set/rise and twilight begin/end\"],date_sunrise:[\"mixed date_sunrise(mixed time [, int format [, float latitude [, float longitude [, float zenith [, float gmt_offset]]]]])\",\"Returns time of sunrise for a given day and location\"],date_sunset:[\"mixed date_sunset(mixed time [, int format [, float latitude [, float longitude [, float zenith [, float gmt_offset]]]]])\",\"Returns time of sunset for a given day and location\"],date_time_set:[\"DateTime date_time_set(DateTime object, long hour, long minute[, long second])\",\"Sets the time.\"],date_timestamp_get:[\"long date_timestamp_get(DateTime object)\",\"Gets the Unix timestamp.\"],date_timestamp_set:[\"DateTime date_timestamp_set(DateTime object, long unixTimestamp)\",\"Sets the date and time based on an Unix timestamp.\"],date_timezone_get:[\"DateTimeZone date_timezone_get(DateTime object)\",\"Return new DateTimeZone object relative to give DateTime\"],date_timezone_set:[\"DateTime date_timezone_set(DateTime object, DateTimeZone object)\",\"Sets the timezone for the DateTime object.\"],datefmt_create:[\"IntlDateFormatter datefmt_create(string $locale, long date_type, long time_type[, string $timezone_str, long $calendar, string $pattern] )\",\"* Create formatter.\"],datefmt_format:[\"string datefmt_format( [mixed]int $args or array $args )\",\"* Format the time value as a string. }}}\"],datefmt_get_calendar:[\"string datefmt_get_calendar( IntlDateFormatter $mf )\",\"* Get formatter calendar.\"],datefmt_get_datetype:[\"string datefmt_get_datetype( IntlDateFormatter $mf )\",\"* Get formatter datetype.\"],datefmt_get_error_code:[\"int datefmt_get_error_code( IntlDateFormatter $nf )\",\"* Get formatter's last error code.\"],datefmt_get_error_message:[\"string datefmt_get_error_message( IntlDateFormatter $coll )\",\"* Get text description for formatter's last error code.\"],datefmt_get_locale:[\"string datefmt_get_locale(IntlDateFormatter $mf)\",\"* Get formatter locale.\"],datefmt_get_pattern:[\"string datefmt_get_pattern( IntlDateFormatter $mf )\",\"* Get formatter pattern.\"],datefmt_get_timetype:[\"string datefmt_get_timetype( IntlDateFormatter $mf )\",\"* Get formatter timetype.\"],datefmt_get_timezone_id:[\"string datefmt_get_timezone_id( IntlDateFormatter $mf )\",\"* Get formatter timezone_id.\"],datefmt_isLenient:[\"string datefmt_isLenient(IntlDateFormatter $mf)\",\"* Get formatter locale.\"],datefmt_localtime:[\"integer datefmt_localtime( IntlDateFormatter $fmt, string $text_to_parse[, int $parse_pos ])\",\"* Parse the string $value to a localtime array  }}}\"],datefmt_parse:[\"integer datefmt_parse( IntlDateFormatter $fmt, string $text_to_parse [, int $parse_pos] )\",\"* Parse the string $value starting at parse_pos to a Unix timestamp -int }}}\"],datefmt_setLenient:[\"string datefmt_setLenient(IntlDateFormatter $mf)\",\"* Set formatter lenient.\"],datefmt_set_calendar:[\"bool datefmt_set_calendar( IntlDateFormatter $mf, int $calendar )\",\"* Set formatter calendar.\"],datefmt_set_pattern:[\"bool datefmt_set_pattern( IntlDateFormatter $mf, string $pattern )\",\"* Set formatter pattern.\"],datefmt_set_timezone_id:[\"boolean datefmt_set_timezone_id( IntlDateFormatter $mf,$timezone_id)\",\"* Set formatter timezone_id.\"],dba_close:[\"void dba_close(resource handle)\",\"Closes database\"],dba_delete:[\"bool dba_delete(string key, resource handle)\",\"Deletes the entry associated with key    If inifile: remove all other key lines\"],dba_exists:[\"bool dba_exists(string key, resource handle)\",\"Checks, if the specified key exists\"],dba_fetch:[\"string dba_fetch(string key, [int skip ,] resource handle)\",\"Fetches the data associated with key\"],dba_firstkey:[\"string dba_firstkey(resource handle)\",\"Resets the internal key pointer and returns the first key\"],dba_handlers:[\"array dba_handlers([bool full_info])\",\"List configured database handlers\"],dba_insert:[\"bool dba_insert(string key, string value, resource handle)\",\"If not inifile: Insert value as key, return false, if key exists already     If inifile: Add vakue as key (next instance of key)\"],dba_key_split:[\"array|false dba_key_split(string key)\",\"Splits an inifile key into an array of the form array(0=>group,1=>value_name) but returns false if input is false or null\"],dba_list:[\"array dba_list()\",\"List opened databases\"],dba_nextkey:[\"string dba_nextkey(resource handle)\",\"Returns the next key\"],dba_open:[\"resource dba_open(string path, string mode [, string handlername, string ...])\",\"Opens path using the specified handler in mode\"],dba_optimize:[\"bool dba_optimize(resource handle)\",\"Optimizes (e.g. clean up, vacuum) database\"],dba_popen:[\"resource dba_popen(string path, string mode [, string handlername, string ...])\",\"Opens path using the specified handler in mode persistently\"],dba_replace:[\"bool dba_replace(string key, string value, resource handle)\",\"Inserts value as key, replaces key, if key exists already    If inifile: remove all other key lines\"],dba_sync:[\"bool dba_sync(resource handle)\",\"Synchronizes database\"],dcgettext:[\"string dcgettext(string domain_name, string msgid, long category)\",\"Return the translation of msgid for domain_name and category, or msgid unaltered if a translation does not exist\"],dcngettext:[\"string dcngettext (string domain, string msgid1, string msgid2, int n, int category)\",\"Plural version of dcgettext()\"],debug_backtrace:[\"array debug_backtrace([bool provide_object])\",\"Return backtrace as array\"],debug_print_backtrace:[\"void debug_print_backtrace(void) */\",\"ZEND_FUNCTION(debug_print_backtrace) {  zend_execute_data *ptr, *skip;  int lineno;  char *function_name;  char *filename;  char *class_name = NULL;  char *call_type;  char *include_filename = NULL;  zval *arg_array = NULL;  int indent = 0;   if (zend_parse_parameters_none() == FAILURE) {   return;  }   ptr = EG(current_execute_data);   /* skip debug_backtrace()\"],debug_zval_dump:[\"void debug_zval_dump(mixed var)\",\"Dumps a string representation of an internal zend value to output.\"],decbin:[\"string decbin(int decimal_number)\",\"Returns a string containing a binary representation of the number\"],dechex:[\"string dechex(int decimal_number)\",\"Returns a string containing a hexadecimal representation of the given number\"],decoct:[\"string decoct(int decimal_number)\",\"Returns a string containing an octal representation of the given number\"],define:[\"bool define(string constant_name, mixed value, boolean case_insensitive=false)\",\"Define a new constant\"],define_syslog_variables:[\"void define_syslog_variables(void)\",\"Initializes all syslog-related variables\"],defined:[\"bool defined(string constant_name)\",\"Check whether a constant exists\"],deg2rad:[\"float deg2rad(float number)\",\"Converts the number in degrees to the radian equivalent\"],dgettext:[\"string dgettext(string domain_name, string msgid)\",\"Return the translation of msgid for domain_name, or msgid unaltered if a translation does not exist\"],die:[\"void die([mixed status])\",\"Output a message and terminate the current script\"],dir:[\"object dir(string directory[, resource context])\",\"Directory class with properties, handle and class and methods read, rewind and close\"],dirname:[\"string dirname(string path)\",\"Returns the directory name component of the path\"],disk_free_space:[\"float disk_free_space(string path)\",\"Get free disk space for filesystem that path is on\"],disk_total_space:[\"float disk_total_space(string path)\",\"Get total disk space for filesystem that path is on\"],display_disabled_function:[\"void display_disabled_function(void)\",\"Dummy function which displays an error when a disabled function is called.\"],dl:[\"int dl(string extension_filename)\",\"Load a PHP extension at runtime\"],dngettext:[\"string dngettext (string domain, string msgid1, string msgid2, int count)\",\"Plural version of dgettext()\"],dns_check_record:[\"bool dns_check_record(string host [, string type])\",\"Check DNS records corresponding to a given Internet host name or IP address\"],dns_get_mx:[\"bool dns_get_mx(string hostname, array mxhosts [, array weight])\",\"Get MX records corresponding to a given Internet host name\"],dns_get_record:[\"array|false dns_get_record(string hostname [, int type[, array authns, array addtl]])\",\"Get any Resource Record corresponding to a given Internet host name\"],dom_attr_is_id:[\"boolean dom_attr_is_id();\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Attr-isId Since: DOM Level 3\"],dom_characterdata_append_data:[\"void dom_characterdata_append_data(string arg);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-32791A2F Since:\"],dom_characterdata_delete_data:[\"void dom_characterdata_delete_data(int offset, int count);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-7C603781 Since:\"],dom_characterdata_insert_data:[\"void dom_characterdata_insert_data(int offset, string arg);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-3EDB695F Since:\"],dom_characterdata_replace_data:[\"void dom_characterdata_replace_data(int offset, int count, string arg);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-E5CBA7FB Since:\"],dom_characterdata_substring_data:[\"string dom_characterdata_substring_data(int offset, int count);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-6531BCCF Since:\"],dom_document_adopt_node:[\"DOMNode dom_document_adopt_node(DOMNode source);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Document3-adoptNode Since: DOM Level 3\"],dom_document_create_attribute:[\"DOMAttr dom_document_create_attribute(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1084891198 Since:\"],dom_document_create_attribute_ns:[\"DOMAttr dom_document_create_attribute_ns(string namespaceURI, string qualifiedName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-DocCrAttrNS Since: DOM Level 2\"],dom_document_create_cdatasection:[\"DOMCdataSection dom_document_create_cdatasection(string data);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-D26C0AF8 Since:\"],dom_document_create_comment:[\"DOMComment dom_document_create_comment(string data);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1334481328 Since:\"],dom_document_create_document_fragment:[\"DOMDocumentFragment dom_document_create_document_fragment();\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-35CB04B5 Since:\"],dom_document_create_element:[\"DOMElement dom_document_create_element(string tagName [, string value]);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-2141741547 Since:\"],dom_document_create_element_ns:[\"DOMElement dom_document_create_element_ns(string namespaceURI, string qualifiedName [,string value]);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-DocCrElNS Since: DOM Level 2\"],dom_document_create_entity_reference:[\"DOMEntityReference dom_document_create_entity_reference(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-392B75AE Since:\"],dom_document_create_processing_instruction:[\"DOMProcessingInstruction dom_document_create_processing_instruction(string target, string data);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-135944439 Since:\"],dom_document_create_text_node:[\"DOMText dom_document_create_text_node(string data);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1975348127 Since:\"],dom_document_get_element_by_id:[\"DOMElement dom_document_get_element_by_id(string elementId);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-getElBId Since: DOM Level 2\"],dom_document_get_elements_by_tag_name:[\"DOMNodeList dom_document_get_elements_by_tag_name(string tagname);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-A6C9094 Since:\"],dom_document_get_elements_by_tag_name_ns:[\"DOMNodeList dom_document_get_elements_by_tag_name_ns(string namespaceURI, string localName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-getElBTNNS Since: DOM Level 2\"],dom_document_import_node:[\"DOMNode dom_document_import_node(DOMNode importedNode, boolean deep);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Core-Document-importNode Since: DOM Level 2\"],dom_document_load:[\"DOMNode dom_document_load(string source [, int options]);\",\"URL: http://www.w3.org/TR/DOM-Level-3-LS/load-save.html#LS-DocumentLS-load Since: DOM Level 3\"],dom_document_load_html:[\"DOMNode dom_document_load_html(string source);\",\"Since: DOM extended\"],dom_document_load_html_file:[\"DOMNode dom_document_load_html_file(string source);\",\"Since: DOM extended\"],dom_document_loadxml:[\"DOMNode dom_document_loadxml(string source [, int options]);\",\"URL: http://www.w3.org/TR/DOM-Level-3-LS/load-save.html#LS-DocumentLS-loadXML Since: DOM Level 3\"],dom_document_normalize_document:[\"void dom_document_normalize_document();\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Document3-normalizeDocument Since: DOM Level 3\"],dom_document_relaxNG_validate_file:[\"boolean dom_document_relaxNG_validate_file(string filename); */\",\"PHP_FUNCTION(dom_document_relaxNG_validate_file) {  _dom_document_relaxNG_validate(INTERNAL_FUNCTION_PARAM_PASSTHRU, DOM_LOAD_FILE); } /* }}} end dom_document_relaxNG_validate_file\"],dom_document_relaxNG_validate_xml:[\"boolean dom_document_relaxNG_validate_xml(string source); */\",\"PHP_FUNCTION(dom_document_relaxNG_validate_xml) {  _dom_document_relaxNG_validate(INTERNAL_FUNCTION_PARAM_PASSTHRU, DOM_LOAD_STRING); } /* }}} end dom_document_relaxNG_validate_xml\"],dom_document_rename_node:[\"DOMNode dom_document_rename_node(node n, string namespaceURI, string qualifiedName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Document3-renameNode Since: DOM Level 3\"],dom_document_save:[\"int dom_document_save(string file);\",\"Convenience method to save to file\"],dom_document_save_html:[\"string dom_document_save_html();\",\"Convenience method to output as html\"],dom_document_save_html_file:[\"int dom_document_save_html_file(string file);\",\"Convenience method to save to file as html\"],dom_document_savexml:[\"string dom_document_savexml([node n]);\",\"URL: http://www.w3.org/TR/DOM-Level-3-LS/load-save.html#LS-DocumentLS-saveXML Since: DOM Level 3\"],dom_document_schema_validate:[\"boolean dom_document_schema_validate(string source); */\",\"PHP_FUNCTION(dom_document_schema_validate_xml) {  _dom_document_schema_validate(INTERNAL_FUNCTION_PARAM_PASSTHRU, DOM_LOAD_STRING); } /* }}} end dom_document_schema_validate\"],dom_document_schema_validate_file:[\"boolean dom_document_schema_validate_file(string filename); */\",\"PHP_FUNCTION(dom_document_schema_validate_file) {  _dom_document_schema_validate(INTERNAL_FUNCTION_PARAM_PASSTHRU, DOM_LOAD_FILE); } /* }}} end dom_document_schema_validate_file\"],dom_document_validate:[\"boolean dom_document_validate();\",\"Since: DOM extended\"],dom_document_xinclude:[\"int dom_document_xinclude([int options])\",\"Substitutues xincludes in a DomDocument\"],dom_domconfiguration_can_set_parameter:[\"boolean dom_domconfiguration_can_set_parameter(string name, domuserdata value);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMConfiguration-canSetParameter Since:\"],dom_domconfiguration_get_parameter:[\"domdomuserdata dom_domconfiguration_get_parameter(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMConfiguration-getParameter Since:\"],dom_domconfiguration_set_parameter:[\"dom_void dom_domconfiguration_set_parameter(string name, domuserdata value);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMConfiguration-property Since:\"],dom_domerrorhandler_handle_error:[\"dom_boolean dom_domerrorhandler_handle_error(domerror error);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-ERRORS-DOMErrorHandler-handleError Since:\"],dom_domimplementation_create_document:[\"DOMDocument dom_domimplementation_create_document(string namespaceURI, string qualifiedName, DOMDocumentType doctype);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Level-2-Core-DOM-createDocument Since: DOM Level 2\"],dom_domimplementation_create_document_type:[\"DOMDocumentType dom_domimplementation_create_document_type(string qualifiedName, string publicId, string systemId);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Level-2-Core-DOM-createDocType Since: DOM Level 2\"],dom_domimplementation_get_feature:[\"DOMNode dom_domimplementation_get_feature(string feature, string version);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMImplementation3-getFeature Since: DOM Level 3\"],dom_domimplementation_has_feature:[\"boolean dom_domimplementation_has_feature(string feature, string version);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-5CED94D7 Since:\"],dom_domimplementationlist_item:[\"domdomimplementation dom_domimplementationlist_item(int index);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMImplementationList-item Since:\"],dom_domimplementationsource_get_domimplementation:[\"domdomimplementation dom_domimplementationsource_get_domimplementation(string features);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-getDOMImpl Since:\"],dom_domimplementationsource_get_domimplementations:[\"domimplementationlist dom_domimplementationsource_get_domimplementations(string features);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-getDOMImpls Since:\"],dom_domstringlist_item:[\"domstring dom_domstringlist_item(int index);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMStringList-item Since:\"],dom_element_get_attribute:[\"string dom_element_get_attribute(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-666EE0F9 Since:\"],dom_element_get_attribute_node:[\"DOMAttr dom_element_get_attribute_node(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-217A91B8 Since:\"],dom_element_get_attribute_node_ns:[\"DOMAttr dom_element_get_attribute_node_ns(string namespaceURI, string localName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElGetAtNodeNS Since: DOM Level 2\"],dom_element_get_attribute_ns:[\"string dom_element_get_attribute_ns(string namespaceURI, string localName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElGetAttrNS Since: DOM Level 2\"],dom_element_get_elements_by_tag_name:[\"DOMNodeList dom_element_get_elements_by_tag_name(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1938918D Since:\"],dom_element_get_elements_by_tag_name_ns:[\"DOMNodeList dom_element_get_elements_by_tag_name_ns(string namespaceURI, string localName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-A6C90942 Since: DOM Level 2\"],dom_element_has_attribute:[\"boolean dom_element_has_attribute(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElHasAttr Since: DOM Level 2\"],dom_element_has_attribute_ns:[\"boolean dom_element_has_attribute_ns(string namespaceURI, string localName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElHasAttrNS Since: DOM Level 2\"],dom_element_remove_attribute:[\"void dom_element_remove_attribute(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-6D6AC0F9 Since:\"],dom_element_remove_attribute_node:[\"DOMAttr dom_element_remove_attribute_node(DOMAttr oldAttr);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-D589198 Since:\"],dom_element_remove_attribute_ns:[\"void dom_element_remove_attribute_ns(string namespaceURI, string localName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElRemAtNS Since: DOM Level 2\"],dom_element_set_attribute:[\"void dom_element_set_attribute(string name, string value);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-F68F082 Since:\"],dom_element_set_attribute_node:[\"DOMAttr dom_element_set_attribute_node(DOMAttr newAttr);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-887236154 Since:\"],dom_element_set_attribute_node_ns:[\"DOMAttr dom_element_set_attribute_node_ns(DOMAttr newAttr);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetAtNodeNS Since: DOM Level 2\"],dom_element_set_attribute_ns:[\"void dom_element_set_attribute_ns(string namespaceURI, string qualifiedName, string value);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetAttrNS Since: DOM Level 2\"],dom_element_set_id_attribute:[\"void dom_element_set_id_attribute(string name, boolean isId);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetIdAttr Since: DOM Level 3\"],dom_element_set_id_attribute_node:[\"void dom_element_set_id_attribute_node(attr idAttr, boolean isId);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetIdAttrNode Since: DOM Level 3\"],dom_element_set_id_attribute_ns:[\"void dom_element_set_id_attribute_ns(string namespaceURI, string localName, boolean isId);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetIdAttrNS Since: DOM Level 3\"],dom_import_simplexml:[\"somNode dom_import_simplexml(sxeobject node)\",\"Get a simplexml_element object from dom to allow for processing\"],dom_namednodemap_get_named_item:[\"DOMNode dom_namednodemap_get_named_item(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1074577549 Since:\"],dom_namednodemap_get_named_item_ns:[\"DOMNode dom_namednodemap_get_named_item_ns(string namespaceURI, string localName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-getNamedItemNS Since: DOM Level 2\"],dom_namednodemap_item:[\"DOMNode dom_namednodemap_item(int index);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-349467F9 Since:\"],dom_namednodemap_remove_named_item:[\"DOMNode dom_namednodemap_remove_named_item(string name);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-D58B193 Since:\"],dom_namednodemap_remove_named_item_ns:[\"DOMNode dom_namednodemap_remove_named_item_ns(string namespaceURI, string localName);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-removeNamedItemNS Since: DOM Level 2\"],dom_namednodemap_set_named_item:[\"DOMNode dom_namednodemap_set_named_item(DOMNode arg);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1025163788 Since:\"],dom_namednodemap_set_named_item_ns:[\"DOMNode dom_namednodemap_set_named_item_ns(DOMNode arg);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-setNamedItemNS Since: DOM Level 2\"],dom_namelist_get_name:[\"string dom_namelist_get_name(int index);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#NameList-getName Since:\"],dom_namelist_get_namespace_uri:[\"string dom_namelist_get_namespace_uri(int index);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#NameList-getNamespaceURI Since:\"],dom_node_append_child:[\"DomNode dom_node_append_child(DomNode newChild);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-184E7107 Since:\"],dom_node_clone_node:[\"DomNode dom_node_clone_node(boolean deep);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-3A0ED0A4 Since:\"],dom_node_compare_document_position:[\"short dom_node_compare_document_position(DomNode other);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-compareDocumentPosition Since: DOM Level 3\"],dom_node_get_feature:[\"DomNode dom_node_get_feature(string feature, string version);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-getFeature Since: DOM Level 3\"],dom_node_get_user_data:[\"mixed dom_node_get_user_data(string key);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-getUserData Since: DOM Level 3\"],dom_node_has_attributes:[\"boolean dom_node_has_attributes();\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-NodeHasAttrs Since: DOM Level 2\"],dom_node_has_child_nodes:[\"boolean dom_node_has_child_nodes();\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-810594187 Since:\"],dom_node_insert_before:[\"domnode dom_node_insert_before(DomNode newChild, DomNode refChild);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-952280727 Since:\"],dom_node_is_default_namespace:[\"boolean dom_node_is_default_namespace(string namespaceURI);\",\"URL: http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-isDefaultNamespace Since: DOM Level 3\"],dom_node_is_equal_node:[\"boolean dom_node_is_equal_node(DomNode arg);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-isEqualNode Since: DOM Level 3\"],dom_node_is_same_node:[\"boolean dom_node_is_same_node(DomNode other);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-isSameNode Since: DOM Level 3\"],dom_node_is_supported:[\"boolean dom_node_is_supported(string feature, string version);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Level-2-Core-Node-supports Since: DOM Level 2\"],dom_node_lookup_namespace_uri:[\"string dom_node_lookup_namespace_uri(string prefix);\",\"URL: http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespaceURI Since: DOM Level 3\"],dom_node_lookup_prefix:[\"string dom_node_lookup_prefix(string namespaceURI);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-lookupNamespacePrefix Since: DOM Level 3\"],dom_node_normalize:[\"void dom_node_normalize();\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-normalize Since:\"],dom_node_remove_child:[\"DomNode dom_node_remove_child(DomNode oldChild);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1734834066 Since:\"],dom_node_replace_child:[\"DomNode dom_node_replace_child(DomNode newChild, DomNode oldChild);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-785887307 Since:\"],dom_node_set_user_data:[\"mixed dom_node_set_user_data(string key, mixed data, userdatahandler handler);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-setUserData Since: DOM Level 3\"],dom_nodelist_item:[\"DOMNode dom_nodelist_item(int index);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-844377136 Since:\"],dom_string_extend_find_offset16:[\"int dom_string_extend_find_offset16(int offset32);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#i18n-methods-StringExtend-findOffset16 Since:\"],dom_string_extend_find_offset32:[\"int dom_string_extend_find_offset32(int offset16);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#i18n-methods-StringExtend-findOffset32 Since:\"],dom_text_is_whitespace_in_element_content:[\"boolean dom_text_is_whitespace_in_element_content();\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Text3-isWhitespaceInElementContent Since: DOM Level 3\"],dom_text_replace_whole_text:[\"DOMText dom_text_replace_whole_text(string content);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Text3-replaceWholeText Since: DOM Level 3\"],dom_text_split_text:[\"DOMText dom_text_split_text(int offset);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-38853C1D Since:\"],dom_userdatahandler_handle:[\"dom_void dom_userdatahandler_handle(short operation, string key, domobject data, node src, node dst);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-handleUserDataEvent Since:\"],dom_xpath_evaluate:[\"mixed dom_xpath_evaluate(string expr [,DOMNode context]); */\",\"PHP_FUNCTION(dom_xpath_evaluate) {  php_xpath_eval(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_DOM_XPATH_EVALUATE); } /* }}} end dom_xpath_evaluate\"],dom_xpath_query:[\"DOMNodeList dom_xpath_query(string expr [,DOMNode context]); */\",\"PHP_FUNCTION(dom_xpath_query) {  php_xpath_eval(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_DOM_XPATH_QUERY); } /* }}} end dom_xpath_query\"],dom_xpath_register_ns:[\"boolean dom_xpath_register_ns(string prefix, string uri); */\",'PHP_FUNCTION(dom_xpath_register_ns) {  zval *id;  xmlXPathContextPtr ctxp;  int prefix_len, ns_uri_len;  dom_xpath_object *intern;  unsigned char *prefix, *ns_uri;   if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), \"Oss\", &id, dom_xpath_class_entry, &prefix, &prefix_len, &ns_uri, &ns_uri_len) == FAILURE) {   return;  }   intern = (dom_xpath_object *)zend_object_store_get_object(id TSRMLS_CC);   ctxp = (xmlXPathContextPtr) intern->ptr;  if (ctxp == NULL) {   php_error_docref(NULL TSRMLS_CC, E_WARNING, \"Invalid XPath Context\");   RETURN_FALSE;  }   if (xmlXPathRegisterNs(ctxp, prefix, ns_uri) != 0) {   RETURN_FALSE  }  RETURN_TRUE; } /* }}}'],dom_xpath_register_php_functions:[\"void dom_xpath_register_php_functions() */\",'PHP_FUNCTION(dom_xpath_register_php_functions) {  zval *id;  dom_xpath_object *intern;  zval *array_value, **entry, *new_string;  int  name_len = 0;  char *name;   DOM_GET_THIS(id);    if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, \"a\",  &array_value) == SUCCESS) {   intern = (dom_xpath_object *)zend_object_store_get_object(id TSRMLS_CC);   zend_hash_internal_pointer_reset(Z_ARRVAL_P(array_value));    while (zend_hash_get_current_data(Z_ARRVAL_P(array_value), (void **)&entry) == SUCCESS) {    SEPARATE_ZVAL(entry);    convert_to_string_ex(entry);     MAKE_STD_ZVAL(new_string);    ZVAL_LONG(new_string,1);       zend_hash_update(intern->registered_phpfunctions, Z_STRVAL_PP(entry), Z_STRLEN_PP(entry) + 1, &new_string, sizeof(zval*), NULL);    zend_hash_move_forward(Z_ARRVAL_P(array_value));   }   intern->registerPhpFunctions = 2;   RETURN_TRUE;   } else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, \"s\",  &name, &name_len) == SUCCESS) {   intern = (dom_xpath_object *)zend_object_store_get_object(id TSRMLS_CC);      MAKE_STD_ZVAL(new_string);   ZVAL_LONG(new_string,1);   zend_hash_update(intern->registered_phpfunctions, name, name_len + 1, &new_string, sizeof(zval*), NULL);   intern->registerPhpFunctions = 2;     } else {   intern = (dom_xpath_object *)zend_object_store_get_object(id TSRMLS_CC);   intern->registerPhpFunctions = 1;  }   } /* }}} end dom_xpath_register_php_functions'],each:[\"array each(array arr)\",\"Return the currently pointed key..value pair in the passed array, and advance the pointer to the next element\"],easter_date:[\"int easter_date([int year])\",\"Return the timestamp of midnight on Easter of a given year (defaults to current year)\"],easter_days:[\"int easter_days([int year, [int method]])\",\"Return the number of days after March 21 that Easter falls on for a given year (defaults to current year)\"],echo:[\"void echo(string arg1 [, string ...])\",\"Output one or more strings\"],empty:[\"bool empty( mixed var )\",\"Determine whether a variable is empty\"],enchant_broker_describe:[\"array enchant_broker_describe(resource broker)\",\"Enumerates the Enchant providers and tells you some rudimentary information about them. The same info is provided through phpinfo()\"],enchant_broker_dict_exists:[\"bool enchant_broker_dict_exists(resource broker, string tag)\",\"Wether a dictionary exists or not. Using non-empty tag\"],enchant_broker_free:[\"boolean enchant_broker_free(resource broker)\",\"Destroys the broker object and its dictionnaries\"],enchant_broker_free_dict:[\"resource enchant_broker_free_dict(resource dict)\",\"Free the dictionary resource\"],enchant_broker_get_dict_path:[\"string enchant_broker_get_dict_path(resource broker, int dict_type)\",\"Get the directory path for a given backend, works with ispell and myspell\"],enchant_broker_get_error:[\"string enchant_broker_get_error(resource broker)\",\"Returns the last error of the broker\"],enchant_broker_init:[\"resource enchant_broker_init()\",\"create a new broker object capable of requesting\"],enchant_broker_list_dicts:[\"string enchant_broker_list_dicts(resource broker)\",\"Lists the dictionaries available for the given broker\"],enchant_broker_request_dict:[\"resource enchant_broker_request_dict(resource broker, string tag)\",'create a new dictionary using tag, the non-empty language tag you wish to request  a dictionary for (\"en_US\", \"de_DE\", ...)'],enchant_broker_request_pwl_dict:[\"resource enchant_broker_request_pwl_dict(resource broker, string filename)\",\"creates a dictionary using a PWL file. A PWL file is personal word file one word per line. It must exist before the call.\"],enchant_broker_set_dict_path:[\"bool enchant_broker_set_dict_path(resource broker, int dict_type, string value)\",\"Set the directory path for a given backend, works with ispell and myspell\"],enchant_broker_set_ordering:[\"bool enchant_broker_set_ordering(resource broker, string tag, string ordering)\",\"Declares a preference of dictionaries to use for the language  described/referred to by 'tag'. The ordering is a comma delimited  list of provider names. As a special exception, the \\\"*\\\" tag can  be used as a language tag to declare a default ordering for any  language that does not explictly declare an ordering.\"],enchant_dict_add_to_personal:[\"void enchant_dict_add_to_personal(resource dict, string word)\",\"add 'word' to personal word list\"],enchant_dict_add_to_session:[\"void enchant_dict_add_to_session(resource dict, string word)\",\"add 'word' to this spell-checking session\"],enchant_dict_check:[\"bool enchant_dict_check(resource dict, string word)\",\"If the word is correctly spelled return true, otherwise return false\"],enchant_dict_describe:[\"array enchant_dict_describe(resource dict)\",\"Describes an individual dictionary 'dict'\"],enchant_dict_get_error:[\"string enchant_dict_get_error(resource dict)\",\"Returns the last error of the current spelling-session\"],enchant_dict_is_in_session:[\"bool enchant_dict_is_in_session(resource dict, string word)\",\"whether or not 'word' exists in this spelling-session\"],enchant_dict_quick_check:[\"bool enchant_dict_quick_check(resource dict, string word [, array &suggestions])\",\"If the word is correctly spelled return true, otherwise return false, if suggestions variable     is provided, fill it with spelling alternatives.\"],enchant_dict_store_replacement:[\"void enchant_dict_store_replacement(resource dict, string mis, string cor)\",\"add a correction for 'mis' using 'cor'.  Notes that you replaced @mis with @cor, so it's possibly more likely  that future occurrences of @mis will be replaced with @cor. So it might  bump @cor up in the suggestion list.\"],enchant_dict_suggest:[\"array enchant_dict_suggest(resource dict, string word)\",\"Will return a list of values if any of those pre-conditions are not met.\"],end:[\"mixed end(array array_arg)\",\"Advances array argument's internal pointer to the last element and return it\"],ereg:[\"int ereg(string pattern, string string [, array registers])\",\"Regular expression match\"],ereg_replace:[\"string ereg_replace(string pattern, string replacement, string string)\",\"Replace regular expression\"],eregi:[\"int eregi(string pattern, string string [, array registers])\",\"Case-insensitive regular expression match\"],eregi_replace:[\"string eregi_replace(string pattern, string replacement, string string)\",\"Case insensitive replace regular expression\"],error_get_last:[\"array error_get_last()\",\"Get the last occurred error as associative array. Returns NULL if there hasn't been an error yet.\"],error_log:[\"bool error_log(string message [, int message_type [, string destination [, string extra_headers]]])\",\"Send an error message somewhere\"],error_reporting:[\"int error_reporting([int new_error_level])\",\"Return the current error_reporting level, and if an argument was passed - change to the new level\"],escapeshellarg:[\"string escapeshellarg(string arg)\",\"Quote and escape an argument for use in a shell command\"],escapeshellcmd:[\"string escapeshellcmd(string command)\",\"Escape shell metacharacters\"],exec:[\"string exec(string command [, array &output [, int &return_value]])\",\"Execute an external program\"],exif_imagetype:[\"int exif_imagetype(string imagefile)\",\"Get the type of an image\"],exif_read_data:[\"array exif_read_data(string filename [, sections_needed [, sub_arrays[, read_thumbnail]]])\",\"Reads header data from the JPEG/TIFF image filename and optionally reads the internal thumbnails\"],exif_tagname:[\"string exif_tagname(index)\",\"Get headername for index or false if not defined\"],exif_thumbnail:[\"string exif_thumbnail(string filename [, &width, &height [, &imagetype]])\",\"Reads the embedded thumbnail\"],exit:[\"void exit([mixed status])\",\"Output a message and terminate the current script\"],exp:[\"float exp(float number)\",\"Returns e raised to the power of the number\"],explode:[\"array explode(string separator, string str [, int limit])\",\"Splits a string on string separator and return array of components. If limit is positive only limit number of components is returned. If limit is negative all components except the last abs(limit) are returned.\"],expm1:[\"float expm1(float number)\",\"Returns exp(number) - 1, computed in a way that accurate even when the value of number is close to zero\"],extension_loaded:[\"bool extension_loaded(string extension_name)\",\"Returns true if the named extension is loaded\"],extract:[\"int extract(array var_array [, int extract_type [, string prefix]])\",\"Imports variables into symbol table from an array\"],ezmlm_hash:[\"int ezmlm_hash(string addr)\",\"Calculate EZMLM list hash value.\"],fclose:[\"bool fclose(resource fp)\",\"Close an open file pointer\"],feof:[\"bool feof(resource fp)\",\"Test for end-of-file on a file pointer\"],fflush:[\"bool fflush(resource fp)\",\"Flushes output\"],fgetc:[\"string fgetc(resource fp)\",\"Get a character from file pointer\"],fgetcsv:[\"array fgetcsv(resource fp [,int length [, string delimiter [, string enclosure [, string escape]]]])\",\"Get line from file pointer and parse for CSV fields\"],fgets:[\"string fgets(resource fp[, int length])\",\"Get a line from file pointer\"],fgetss:[\"string fgetss(resource fp [, int length [, string allowable_tags]])\",\"Get a line from file pointer and strip HTML tags\"],file:[\"array file(string filename [, int flags[, resource context]])\",\"Read entire file into an array\"],file_exists:[\"bool file_exists(string filename)\",\"Returns true if filename exists\"],file_get_contents:[\"string file_get_contents(string filename [, bool use_include_path [, resource context [, long offset [, long maxlen]]]])\",\"Read the entire file into a string\"],file_put_contents:[\"int file_put_contents(string file, mixed data [, int flags [, resource context]])\",\"Write/Create a file with contents data and return the number of bytes written\"],fileatime:[\"int fileatime(string filename)\",\"Get last access time of file\"],filectime:[\"int filectime(string filename)\",\"Get inode modification time of file\"],filegroup:[\"int filegroup(string filename)\",\"Get file group\"],fileinode:[\"int fileinode(string filename)\",\"Get file inode\"],filemtime:[\"int filemtime(string filename)\",\"Get last modification time of file\"],fileowner:[\"int fileowner(string filename)\",\"Get file owner\"],fileperms:[\"int fileperms(string filename)\",\"Get file permissions\"],filesize:[\"int filesize(string filename)\",\"Get file size\"],filetype:[\"string filetype(string filename)\",\"Get file type\"],filter_has_var:[\"mixed filter_has_var(constant type, string variable_name)\",\"* Returns true if the variable with the name 'name' exists in source.\"],filter_input:[\"mixed filter_input(constant type, string variable_name [, long filter [, mixed options]])\",\"* Returns the filtered variable 'name'* from source `type`.\"],filter_input_array:[\"mixed filter_input_array(constant type, [, mixed options]])\",\"* Returns an array with all arguments defined in 'definition'.\"],filter_var:[\"mixed filter_var(mixed variable [, long filter [, mixed options]])\",\"* Returns the filtered version of the vriable.\"],filter_var_array:[\"mixed filter_var_array(array data, [, mixed options]])\",\"* Returns an array with all arguments defined in 'definition'.\"],finfo_buffer:[\"string finfo_buffer(resource finfo, char *string [, int options [, resource context]])\",\"Return infromation about a string buffer.\"],finfo_close:[\"resource finfo_close(resource finfo)\",\"Close fileinfo resource.\"],finfo_file:[\"string finfo_file(resource finfo, char *file_name [, int options [, resource context]])\",\"Return information about a file.\"],finfo_open:[\"resource finfo_open([int options [, string arg]])\",\"Create a new fileinfo resource.\"],finfo_set_flags:[\"bool finfo_set_flags(resource finfo, int options)\",\"Set libmagic configuration options.\"],floatval:[\"float floatval(mixed var)\",\"Get the float value of a variable\"],flock:[\"bool flock(resource fp, int operation [, int &wouldblock])\",\"Portable file locking\"],floor:[\"float floor(float number)\",\"Returns the next lowest integer value from the number\"],flush:[\"void flush(void)\",\"Flush the output buffer\"],fmod:[\"float fmod(float x, float y)\",\"Returns the remainder of dividing x by y as a float\"],fnmatch:[\"bool fnmatch(string pattern, string filename [, int flags])\",\"Match filename against pattern\"],fopen:[\"resource fopen(string filename, string mode [, bool use_include_path [, resource context]])\",\"Open a file or a URL and return a file pointer\"],forward_static_call:[\"mixed forward_static_call(mixed function_name [, mixed parmeter] [, mixed ...])\",\"Call a user function which is the first parameter\"],fpassthru:[\"int fpassthru(resource fp)\",\"Output all remaining data from a file pointer\"],fprintf:[\"int fprintf(resource stream, string format [, mixed arg1 [, mixed ...]])\",\"Output a formatted string into a stream\"],fputcsv:[\"int fputcsv(resource fp, array fields [, string delimiter [, string enclosure]])\",\"Format line as CSV and write to file pointer\"],fread:[\"string fread(resource fp, int length)\",\"Binary-safe file read\"],frenchtojd:[\"int frenchtojd(int month, int day, int year)\",\"Converts a french republic calendar date to julian day count\"],fscanf:[\"mixed fscanf(resource stream, string format [, string ...])\",\"Implements a mostly ANSI compatible fscanf()\"],fseek:[\"int fseek(resource fp, int offset [, int whence])\",\"Seek on a file pointer\"],fsockopen:[\"resource fsockopen(string hostname, int port [, int errno [, string errstr [, float timeout]]])\",\"Open Internet or Unix domain socket connection\"],fstat:[\"array fstat(resource fp)\",\"Stat() on a filehandle\"],ftell:[\"int ftell(resource fp)\",\"Get file pointer's read/write position\"],ftok:[\"int ftok(string pathname, string proj)\",\"Convert a pathname and a project identifier to a System V IPC key\"],ftp_alloc:[\"bool ftp_alloc(resource stream, int size[, &response])\",\"Attempt to allocate space on the remote FTP server\"],ftp_cdup:[\"bool ftp_cdup(resource stream)\",\"Changes to the parent directory\"],ftp_chdir:[\"bool ftp_chdir(resource stream, string directory)\",\"Changes directories\"],ftp_chmod:[\"int ftp_chmod(resource stream, int mode, string filename)\",\"Sets permissions on a file\"],ftp_close:[\"bool ftp_close(resource stream)\",\"Closes the FTP stream\"],ftp_connect:[\"resource ftp_connect(string host [, int port [, int timeout]])\",\"Opens a FTP stream\"],ftp_delete:[\"bool ftp_delete(resource stream, string file)\",\"Deletes a file\"],ftp_exec:[\"bool ftp_exec(resource stream, string command)\",\"Requests execution of a program on the FTP server\"],ftp_fget:[\"bool ftp_fget(resource stream, resource fp, string remote_file, int mode[, int resumepos])\",\"Retrieves a file from the FTP server and writes it to an open file\"],ftp_fput:[\"bool ftp_fput(resource stream, string remote_file, resource fp, int mode[, int startpos])\",\"Stores a file from an open file to the FTP server\"],ftp_get:[\"bool ftp_get(resource stream, string local_file, string remote_file, int mode[, int resume_pos])\",\"Retrieves a file from the FTP server and writes it to a local file\"],ftp_get_option:[\"mixed ftp_get_option(resource stream, int option)\",\"Gets an FTP option\"],ftp_login:[\"bool ftp_login(resource stream, string username, string password)\",\"Logs into the FTP server\"],ftp_mdtm:[\"int ftp_mdtm(resource stream, string filename)\",\"Returns the last modification time of the file, or -1 on error\"],ftp_mkdir:[\"string ftp_mkdir(resource stream, string directory)\",\"Creates a directory and returns the absolute path for the new directory or false on error\"],ftp_nb_continue:[\"int ftp_nb_continue(resource stream)\",\"Continues retrieving/sending a file nbronously\"],ftp_nb_fget:[\"int ftp_nb_fget(resource stream, resource fp, string remote_file, int mode[, int resumepos])\",\"Retrieves a file from the FTP server asynchronly and writes it to an open file\"],ftp_nb_fput:[\"int ftp_nb_fput(resource stream, string remote_file, resource fp, int mode[, int startpos])\",\"Stores a file from an open file to the FTP server nbronly\"],ftp_nb_get:[\"int ftp_nb_get(resource stream, string local_file, string remote_file, int mode[, int resume_pos])\",\"Retrieves a file from the FTP server nbhronly and writes it to a local file\"],ftp_nb_put:[\"int ftp_nb_put(resource stream, string remote_file, string local_file, int mode[, int startpos])\",\"Stores a file on the FTP server\"],ftp_nlist:[\"array ftp_nlist(resource stream, string directory)\",\"Returns an array of filenames in the given directory\"],ftp_pasv:[\"bool ftp_pasv(resource stream, bool pasv)\",\"Turns passive mode on or off\"],ftp_put:[\"bool ftp_put(resource stream, string remote_file, string local_file, int mode[, int startpos])\",\"Stores a file on the FTP server\"],ftp_pwd:[\"string ftp_pwd(resource stream)\",\"Returns the present working directory\"],ftp_raw:[\"array ftp_raw(resource stream, string command)\",\"Sends a literal command to the FTP server\"],ftp_rawlist:[\"array ftp_rawlist(resource stream, string directory [, bool recursive])\",\"Returns a detailed listing of a directory as an array of output lines\"],ftp_rename:[\"bool ftp_rename(resource stream, string src, string dest)\",\"Renames the given file to a new path\"],ftp_rmdir:[\"bool ftp_rmdir(resource stream, string directory)\",\"Removes a directory\"],ftp_set_option:[\"bool ftp_set_option(resource stream, int option, mixed value)\",\"Sets an FTP option\"],ftp_site:[\"bool ftp_site(resource stream, string cmd)\",\"Sends a SITE command to the server\"],ftp_size:[\"int ftp_size(resource stream, string filename)\",\"Returns the size of the file, or -1 on error\"],ftp_ssl_connect:[\"resource ftp_ssl_connect(string host [, int port [, int timeout]])\",\"Opens a FTP-SSL stream\"],ftp_systype:[\"string ftp_systype(resource stream)\",\"Returns the system type identifier\"],ftruncate:[\"bool ftruncate(resource fp, int size)\",\"Truncate file to 'size' length\"],func_get_arg:[\"mixed func_get_arg(int arg_num)\",\"Get the $arg_num'th argument that was passed to the function\"],func_get_args:[\"array func_get_args()\",\"Get an array of the arguments that were passed to the function\"],func_num_args:[\"int func_num_args(void)\",\"Get the number of arguments that were passed to the function\"],function_exists:[\"bool function_exists(string function_name)\",\"Checks if the function exists\"],fwrite:[\"int fwrite(resource fp, string str [, int length])\",\"Binary-safe file write\"],gc_collect_cycles:[\"int gc_collect_cycles(void)\",\"Forces collection of any existing garbage cycles.    Returns number of freed zvals\"],gc_disable:[\"void gc_disable(void)\",\"Deactivates the circular reference collector\"],gc_enable:[\"void gc_enable(void)\",\"Activates the circular reference collector\"],gc_enabled:[\"void gc_enabled(void)\",\"Returns status of the circular reference collector\"],gd_info:[\"array gd_info()\",\"\"],getKeywords:[\"static array getKeywords(string $locale) {\",\"* return an associative array containing keyword-value  * pairs for this locale. The keys are keys to the array (doh!)  * }}}\"],get_browser:[\"mixed get_browser([string browser_name [, bool return_array]])\",\"Get information about the capabilities of a browser. If browser_name is omitted or null, HTTP_USER_AGENT is used. Returns an object by default; if return_array is true, returns an array.\"],get_called_class:[\"string get_called_class()\",'Retrieves the \"Late Static Binding\" class name'],get_cfg_var:[\"mixed get_cfg_var(string option_name)\",\"Get the value of a PHP configuration option\"],get_class:[\"string get_class([object object])\",\"Retrieves the class name\"],get_class_methods:[\"array get_class_methods(mixed class)\",\"Returns an array of method names for class or class instance.\"],get_class_vars:[\"array get_class_vars(string class_name)\",\"Returns an array of default properties of the class.\"],get_current_user:[\"string get_current_user(void)\",\"Get the name of the owner of the current PHP script\"],get_declared_classes:[\"array get_declared_classes()\",\"Returns an array of all declared classes.\"],get_declared_interfaces:[\"array get_declared_interfaces()\",\"Returns an array of all declared interfaces.\"],get_defined_constants:[\"array get_defined_constants([bool categorize])\",\"Return an array containing the names and values of all defined constants\"],get_defined_functions:[\"array get_defined_functions(void)\",\"Returns an array of all defined functions\"],get_defined_vars:[\"array get_defined_vars(void)\",\"Returns an associative array of names and values of all currently defined variable names (variables in the current scope)\"],get_display_language:[\"static string get_display_language($locale[, $in_locale = null])\",\"* gets the language for the $locale in $in_locale or default_locale\"],get_display_name:[\"static string get_display_name($locale[, $in_locale = null])\",\"* gets the name for the $locale in $in_locale or default_locale\"],get_display_region:[\"static string get_display_region($locale, $in_locale = null)\",\"* gets the region for the $locale in $in_locale or default_locale\"],get_display_script:[\"static string get_display_script($locale, $in_locale = null)\",\"* gets the script for the $locale in $in_locale or default_locale\"],get_extension_funcs:[\"array get_extension_funcs(string extension_name)\",\"Returns an array with the names of functions belonging to the named extension\"],get_headers:[\"array get_headers(string url[, int format])\",\"fetches all the headers sent by the server in response to a HTTP request\"],get_html_translation_table:[\"array get_html_translation_table([int table [, int quote_style]])\",\"Returns the internal translation table used by htmlspecialchars and htmlentities\"],get_include_path:[\"string get_include_path()\",\"Get the current include_path configuration option\"],get_included_files:[\"array get_included_files(void)\",\"Returns an array with the file names that were include_once()'d\"],get_loaded_extensions:[\"array get_loaded_extensions([bool zend_extensions])\",\"Return an array containing names of loaded extensions\"],get_magic_quotes_gpc:[\"int get_magic_quotes_gpc(void)\",\"Get the current active configuration setting of magic_quotes_gpc\"],get_magic_quotes_runtime:[\"int get_magic_quotes_runtime(void)\",\"Get the current active configuration setting of magic_quotes_runtime\"],get_meta_tags:[\"array get_meta_tags(string filename [, bool use_include_path])\",\"Extracts all meta tag content attributes from a file and returns an array\"],get_object_vars:[\"array get_object_vars(object obj)\",\"Returns an array of object properties\"],get_parent_class:[\"string get_parent_class([mixed object])\",\"Retrieves the parent class name for object or class or current scope.\"],get_resource_type:[\"string get_resource_type(resource res)\",\"Get the resource type name for a given resource\"],getallheaders:[\"array getallheaders(void)\",\"\"],getcwd:[\"mixed getcwd(void)\",\"Gets the current directory\"],getdate:[\"array getdate([int timestamp])\",\"Get date/time information\"],getenv:[\"string getenv(string varname)\",\"Get the value of an environment variable\"],gethostbyaddr:[\"string gethostbyaddr(string ip_address)\",\"Get the Internet host name corresponding to a given IP address\"],gethostbyname:[\"string gethostbyname(string hostname)\",\"Get the IP address corresponding to a given Internet host name\"],gethostbynamel:[\"array gethostbynamel(string hostname)\",\"Return a list of IP addresses that a given hostname resolves to.\"],gethostname:[\"string gethostname()\",\"Get the host name of the current machine\"],getimagesize:[\"array getimagesize(string imagefile [, array info])\",\"Get the size of an image as 4-element array\"],getlastmod:[\"int getlastmod(void)\",\"Get time of last page modification\"],getmygid:[\"int getmygid(void)\",\"Get PHP script owner's GID\"],getmyinode:[\"int getmyinode(void)\",\"Get the inode of the current script being parsed\"],getmypid:[\"int getmypid(void)\",\"Get current process ID\"],getmyuid:[\"int getmyuid(void)\",\"Get PHP script owner's UID\"],getopt:[\"array getopt(string options [, array longopts])\",\"Get options from the command line argument list\"],getprotobyname:[\"int getprotobyname(string name)\",\"Returns protocol number associated with name as per /etc/protocols\"],getprotobynumber:[\"string getprotobynumber(int proto)\",\"Returns protocol name associated with protocol number proto\"],getrandmax:[\"int getrandmax(void)\",\"Returns the maximum value a random number can have\"],getrusage:[\"array getrusage([int who])\",\"Returns an array of usage statistics\"],getservbyname:[\"int getservbyname(string service, string protocol)\",'Returns port associated with service. Protocol must be \"tcp\" or \"udp\"'],getservbyport:[\"string getservbyport(int port, string protocol)\",'Returns service name associated with port. Protocol must be \"tcp\" or \"udp\"'],gettext:[\"string gettext(string msgid)\",\"Return the translation of msgid for the current domain, or msgid unaltered if a translation does not exist\"],gettimeofday:[\"array gettimeofday([bool get_as_float])\",\"Returns the current time as array\"],gettype:[\"string gettype(mixed var)\",\"Returns the type of the variable\"],glob:[\"array glob(string pattern [, int flags])\",\"Find pathnames matching a pattern\"],gmdate:[\"string gmdate(string format [, long timestamp])\",\"Format a GMT date/time\"],gmmktime:[\"int gmmktime([int hour [, int min [, int sec [, int mon [, int day [, int year]]]]]])\",\"Get UNIX timestamp for a GMT date\"],gmp_abs:[\"resource gmp_abs(resource a)\",\"Calculates absolute value\"],gmp_add:[\"resource gmp_add(resource a, resource b)\",\"Add a and b\"],gmp_and:[\"resource gmp_and(resource a, resource b)\",\"Calculates logical AND of a and b\"],gmp_clrbit:[\"void gmp_clrbit(resource &a, int index)\",\"Clears bit in a\"],gmp_cmp:[\"int gmp_cmp(resource a, resource b)\",\"Compares two numbers\"],gmp_com:[\"resource gmp_com(resource a)\",\"Calculates one's complement of a\"],gmp_div_q:[\"resource gmp_div_q(resource a, resource b [, int round])\",\"Divide a by b, returns quotient only\"],gmp_div_qr:[\"array gmp_div_qr(resource a, resource b [, int round])\",\"Divide a by b, returns quotient and reminder\"],gmp_div_r:[\"resource gmp_div_r(resource a, resource b [, int round])\",\"Divide a by b, returns reminder only\"],gmp_divexact:[\"resource gmp_divexact(resource a, resource b)\",\"Divide a by b using exact division algorithm\"],gmp_fact:[\"resource gmp_fact(int a)\",\"Calculates factorial function\"],gmp_gcd:[\"resource gmp_gcd(resource a, resource b)\",\"Computes greatest common denominator (gcd) of a and b\"],gmp_gcdext:[\"array gmp_gcdext(resource a, resource b)\",\"Computes G, S, and T, such that AS + BT = G = `gcd' (A, B)\"],gmp_hamdist:[\"int gmp_hamdist(resource a, resource b)\",\"Calculates hamming distance between a and b\"],gmp_init:[\"resource gmp_init(mixed number [, int base])\",\"Initializes GMP number\"],gmp_intval:[\"int gmp_intval(resource gmpnumber)\",\"Gets signed long value of GMP number\"],gmp_invert:[\"resource gmp_invert(resource a, resource b)\",\"Computes the inverse of a modulo b\"],gmp_jacobi:[\"int gmp_jacobi(resource a, resource b)\",\"Computes Jacobi symbol\"],gmp_legendre:[\"int gmp_legendre(resource a, resource b)\",\"Computes Legendre symbol\"],gmp_mod:[\"resource gmp_mod(resource a, resource b)\",\"Computes a modulo b\"],gmp_mul:[\"resource gmp_mul(resource a, resource b)\",\"Multiply a and b\"],gmp_neg:[\"resource gmp_neg(resource a)\",\"Negates a number\"],gmp_nextprime:[\"resource gmp_nextprime(resource a)\",\"Finds next prime of a\"],gmp_or:[\"resource gmp_or(resource a, resource b)\",\"Calculates logical OR of a and b\"],gmp_perfect_square:[\"bool gmp_perfect_square(resource a)\",\"Checks if a is an exact square\"],gmp_popcount:[\"int gmp_popcount(resource a)\",\"Calculates the population count of a\"],gmp_pow:[\"resource gmp_pow(resource base, int exp)\",\"Raise base to power exp\"],gmp_powm:[\"resource gmp_powm(resource base, resource exp, resource mod)\",\"Raise base to power exp and take result modulo mod\"],gmp_prob_prime:[\"int gmp_prob_prime(resource a[, int reps])\",'Checks if a is \"probably prime\"'],gmp_random:[\"resource gmp_random([int limiter])\",\"Gets random number\"],gmp_scan0:[\"int gmp_scan0(resource a, int start)\",\"Finds first zero bit\"],gmp_scan1:[\"int gmp_scan1(resource a, int start)\",\"Finds first non-zero bit\"],gmp_setbit:[\"void gmp_setbit(resource &a, int index[, bool set_clear])\",\"Sets or clear bit in a\"],gmp_sign:[\"int gmp_sign(resource a)\",\"Gets the sign of the number\"],gmp_sqrt:[\"resource gmp_sqrt(resource a)\",\"Takes integer part of square root of a\"],gmp_sqrtrem:[\"array gmp_sqrtrem(resource a)\",\"Square root with remainder\"],gmp_strval:[\"string gmp_strval(resource gmpnumber [, int base])\",\"Gets string representation of GMP number\"],gmp_sub:[\"resource gmp_sub(resource a, resource b)\",\"Subtract b from a\"],gmp_testbit:[\"bool gmp_testbit(resource a, int index)\",\"Tests if bit is set in a\"],gmp_xor:[\"resource gmp_xor(resource a, resource b)\",\"Calculates logical exclusive OR of a and b\"],gmstrftime:[\"string gmstrftime(string format [, int timestamp])\",\"Format a GMT/UCT time/date according to locale settings\"],grapheme_extract:[\"string grapheme_extract(string str, int size[, int extract_type[, int start[, int next]]])\",\"Function to extract a sequence of default grapheme clusters\"],grapheme_stripos:[\"int grapheme_stripos(string haystack, string needle [, int offset ])\",\"Find position of first occurrence of a string within another, ignoring case differences\"],grapheme_stristr:[\"string grapheme_stristr(string haystack, string needle[, bool part])\",\"Finds first occurrence of a string within another\"],grapheme_strlen:[\"int grapheme_strlen(string str)\",\"Get number of graphemes in a string\"],grapheme_strpos:[\"int grapheme_strpos(string haystack, string needle [, int offset ])\",\"Find position of first occurrence of a string within another\"],grapheme_strripos:[\"int grapheme_strripos(string haystack, string needle [, int offset])\",\"Find position of last occurrence of a string within another, ignoring case\"],grapheme_strrpos:[\"int grapheme_strrpos(string haystack, string needle [, int offset])\",\"Find position of last occurrence of a string within another\"],grapheme_strstr:[\"string grapheme_strstr(string haystack, string needle[, bool part])\",\"Finds first occurrence of a string within another\"],grapheme_substr:[\"string grapheme_substr(string str, int start [, int length])\",\"Returns part of a string\"],gregoriantojd:[\"int gregoriantojd(int month, int day, int year)\",\"Converts a gregorian calendar date to julian day count\"],gzcompress:[\"string gzcompress(string data [, int level])\",\"Gzip-compress a string\"],gzdeflate:[\"string gzdeflate(string data [, int level])\",\"Gzip-compress a string\"],gzencode:[\"string gzencode(string data [, int level [, int encoding_mode]])\",\"GZ encode a string\"],gzfile:[\"array gzfile(string filename [, int use_include_path])\",\"Read und uncompress entire .gz-file into an array\"],gzinflate:[\"string gzinflate(string data [, int length])\",\"Unzip a gzip-compressed string\"],gzopen:[\"resource gzopen(string filename, string mode [, int use_include_path])\",\"Open a .gz-file and return a .gz-file pointer\"],gzuncompress:[\"string gzuncompress(string data [, int length])\",\"Unzip a gzip-compressed string\"],hash:[\"string hash(string algo, string data[, bool raw_output = false])\",\"Generate a hash of a given input string Returns lowercase hexits by default\"],hash_algos:[\"array hash_algos(void)\",\"Return a list of registered hashing algorithms\"],hash_copy:[\"resource hash_copy(resource context)\",\"Copy hash resource\"],hash_file:[\"string hash_file(string algo, string filename[, bool raw_output = false])\",\"Generate a hash of a given file Returns lowercase hexits by default\"],hash_final:[\"string hash_final(resource context[, bool raw_output=false])\",\"Output resulting digest\"],hash_hmac:[\"string hash_hmac(string algo, string data, string key[, bool raw_output = false])\",\"Generate a hash of a given input string with a key using HMAC Returns lowercase hexits by default\"],hash_hmac_file:[\"string hash_hmac_file(string algo, string filename, string key[, bool raw_output = false])\",\"Generate a hash of a given file with a key using HMAC Returns lowercase hexits by default\"],hash_init:[\"resource hash_init(string algo[, int options, string key])\",\"Initialize a hashing context\"],hash_update:[\"bool hash_update(resource context, string data)\",\"Pump data into the hashing algorithm\"],hash_update_file:[\"bool hash_update_file(resource context, string filename[, resource context])\",\"Pump data into the hashing algorithm from a file\"],hash_update_stream:[\"int hash_update_stream(resource context, resource handle[, integer length])\",\"Pump data into the hashing algorithm from an open stream\"],header:[\"void header(string header [, bool replace, [int http_response_code]])\",\"Sends a raw HTTP header\"],header_remove:[\"void header_remove([string name])\",\"Removes an HTTP header previously set using header()\"],headers_list:[\"array headers_list(void)\",\"Return list of headers to be sent / already sent\"],headers_sent:[\"bool headers_sent([string &$file [, int &$line]])\",\"Returns true if headers have already been sent, false otherwise\"],hebrev:[\"string hebrev(string str [, int max_chars_per_line])\",\"Converts logical Hebrew text to visual text\"],hebrevc:[\"string hebrevc(string str [, int max_chars_per_line])\",\"Converts logical Hebrew text to visual text with newline conversion\"],hexdec:[\"int hexdec(string hexadecimal_number)\",\"Returns the decimal equivalent of the hexadecimal number\"],highlight_file:[\"bool highlight_file(string file_name [, bool return] )\",\"Syntax highlight a source file\"],highlight_string:[\"bool highlight_string(string string [, bool return] )\",\"Syntax highlight a string or optionally return it\"],html_entity_decode:[\"string html_entity_decode(string string [, int quote_style][, string charset])\",\"Convert all HTML entities to their applicable characters\"],htmlentities:[\"string htmlentities(string string [, int quote_style[, string charset[, bool double_encode]]])\",\"Convert all applicable characters to HTML entities\"],htmlspecialchars:[\"string htmlspecialchars(string string [, int quote_style[, string charset[, bool double_encode]]])\",\"Convert special characters to HTML entities\"],htmlspecialchars_decode:[\"string htmlspecialchars_decode(string string [, int quote_style])\",\"Convert special HTML entities back to characters\"],http_build_query:[\"string http_build_query(mixed formdata [, string prefix [, string arg_separator]])\",\"Generates a form-encoded query string from an associative array or object.\"],hypot:[\"float hypot(float num1, float num2)\",\"Returns sqrt(num1*num1 + num2*num2)\"],ibase_add_user:[\"bool ibase_add_user(resource service_handle, string user_name, string password [, string first_name [, string middle_name [, string last_name]]])\",\"Add a user to security database\"],ibase_affected_rows:[\"int ibase_affected_rows( [ resource link_identifier ] )\",\"Returns the number of rows affected by the previous INSERT, UPDATE or DELETE statement\"],ibase_backup:[\"mixed ibase_backup(resource service_handle, string source_db, string dest_file [, int options [, bool verbose]])\",\"Initiates a backup task in the service manager and returns immediately\"],ibase_blob_add:[\"bool ibase_blob_add(resource blob_handle, string data)\",\"Add data into created blob\"],ibase_blob_cancel:[\"bool ibase_blob_cancel(resource blob_handle)\",\"Cancel creating blob\"],ibase_blob_close:[\"string ibase_blob_close(resource blob_handle)\",\"Close blob\"],ibase_blob_create:[\"resource ibase_blob_create([resource link_identifier])\",\"Create blob for adding data\"],ibase_blob_echo:[\"bool ibase_blob_echo([ resource link_identifier, ] string blob_id)\",\"Output blob contents to browser\"],ibase_blob_get:[\"string ibase_blob_get(resource blob_handle, int len)\",\"Get len bytes data from open blob\"],ibase_blob_import:[\"string ibase_blob_import([ resource link_identifier, ] resource file)\",\"Create blob, copy file in it, and close it\"],ibase_blob_info:[\"array ibase_blob_info([ resource link_identifier, ] string blob_id)\",\"Return blob length and other useful info\"],ibase_blob_open:[\"resource ibase_blob_open([ resource link_identifier, ] string blob_id)\",\"Open blob for retrieving data parts\"],ibase_close:[\"bool ibase_close([resource link_identifier])\",\"Close an InterBase connection\"],ibase_commit:[\"bool ibase_commit( resource link_identifier )\",\"Commit transaction\"],ibase_commit_ret:[\"bool ibase_commit_ret( resource link_identifier )\",\"Commit transaction and retain the transaction context\"],ibase_connect:[\"resource ibase_connect(string database [, string username [, string password [, string charset [, int buffers [, int dialect [, string role]]]]]])\",\"Open a connection to an InterBase database\"],ibase_db_info:[\"string ibase_db_info(resource service_handle, string db, int action [, int argument])\",\"Request statistics about a database\"],ibase_delete_user:[\"bool ibase_delete_user(resource service_handle, string user_name, string password [, string first_name [, string middle_name [, string last_name]]])\",\"Delete a user from security database\"],ibase_drop_db:[\"bool ibase_drop_db([resource link_identifier])\",\"Drop an InterBase database\"],ibase_errcode:[\"int ibase_errcode(void)\",\"Return error code\"],ibase_errmsg:[\"string ibase_errmsg(void)\",\"Return error message\"],ibase_execute:[\"mixed ibase_execute(resource query [, mixed bind_arg [, mixed bind_arg [, ...]]])\",\"Execute a previously prepared query\"],ibase_fetch_assoc:[\"array ibase_fetch_assoc(resource result [, int fetch_flags])\",\"Fetch a row  from the results of a query\"],ibase_fetch_object:[\"object ibase_fetch_object(resource result [, int fetch_flags])\",\"Fetch a object from the results of a query\"],ibase_fetch_row:[\"array ibase_fetch_row(resource result [, int fetch_flags])\",\"Fetch a row  from the results of a query\"],ibase_field_info:[\"array ibase_field_info(resource query_result, int field_number)\",\"Get information about a field\"],ibase_free_event_handler:[\"bool ibase_free_event_handler(resource event)\",\"Frees the event handler set by ibase_set_event_handler()\"],ibase_free_query:[\"bool ibase_free_query(resource query)\",\"Free memory used by a query\"],ibase_free_result:[\"bool ibase_free_result(resource result)\",\"Free the memory used by a result\"],ibase_gen_id:[\"int ibase_gen_id(string generator [, int increment [, resource link_identifier ]])\",\"Increments the named generator and returns its new value\"],ibase_maintain_db:[\"bool ibase_maintain_db(resource service_handle, string db, int action [, int argument])\",\"Execute a maintenance command on the database server\"],ibase_modify_user:[\"bool ibase_modify_user(resource service_handle, string user_name, string password [, string first_name [, string middle_name [, string last_name]]])\",\"Modify a user in security database\"],ibase_name_result:[\"bool ibase_name_result(resource result, string name)\",\"Assign a name to a result for use with ... WHERE CURRENT OF <name> statements\"],ibase_num_fields:[\"int ibase_num_fields(resource query_result)\",\"Get the number of fields in result\"],ibase_num_params:[\"int ibase_num_params(resource query)\",\"Get the number of params in a prepared query\"],ibase_num_rows:[\"int ibase_num_rows( resource result_identifier )\",\"Return the number of rows that are available in a result\"],ibase_param_info:[\"array ibase_param_info(resource query, int field_number)\",\"Get information about a parameter\"],ibase_pconnect:[\"resource ibase_pconnect(string database [, string username [, string password [, string charset [, int buffers [, int dialect [, string role]]]]]])\",\"Open a persistent connection to an InterBase database\"],ibase_prepare:[\"resource ibase_prepare(resource link_identifier[, string query [, resource trans_identifier ]])\",\"Prepare a query for later execution\"],ibase_query:[\"mixed ibase_query([resource link_identifier, [ resource link_identifier, ]] string query [, mixed bind_arg [, mixed bind_arg [, ...]]])\",\"Execute a query\"],ibase_restore:[\"mixed ibase_restore(resource service_handle, string source_file, string dest_db [, int options [, bool verbose]])\",\"Initiates a restore task in the service manager and returns immediately\"],ibase_rollback:[\"bool ibase_rollback( resource link_identifier )\",\"Rollback transaction\"],ibase_rollback_ret:[\"bool ibase_rollback_ret( resource link_identifier )\",\"Rollback transaction and retain the transaction context\"],ibase_server_info:[\"string ibase_server_info(resource service_handle, int action)\",\"Request information about a database server\"],ibase_service_attach:[\"resource ibase_service_attach(string host, string dba_username, string dba_password)\",\"Connect to the service manager\"],ibase_service_detach:[\"bool ibase_service_detach(resource service_handle)\",\"Disconnect from the service manager\"],ibase_set_event_handler:[\"resource ibase_set_event_handler([resource link_identifier,] callback handler, string event [, string event [, ...]])\",\"Register the callback for handling each of the named events\"],ibase_trans:[\"resource ibase_trans([int trans_args [, resource link_identifier [, ... ], int trans_args [, resource link_identifier [, ... ]] [, ...]]])\",\"Start a transaction over one or several databases\"],ibase_wait_event:[\"string ibase_wait_event([resource link_identifier,] string event [, string event [, ...]])\",\"Waits for any one of the passed Interbase events to be posted by the database, and returns its name\"],iconv:[\"string iconv(string in_charset, string out_charset, string str)\",\"Returns str converted to the out_charset character set\"],iconv_get_encoding:[\"mixed iconv_get_encoding([string type])\",\"Get internal encoding and output encoding for ob_iconv_handler()\"],iconv_mime_decode:[\"string iconv_mime_decode(string encoded_string [, int mode, string charset])\",\"Decodes a mime header field\"],iconv_mime_decode_headers:[\"array iconv_mime_decode_headers(string headers [, int mode, string charset])\",\"Decodes multiple mime header fields\"],iconv_mime_encode:[\"string iconv_mime_encode(string field_name, string field_value [, array preference])\",\"Composes a mime header field with field_name and field_value in a specified scheme\"],iconv_set_encoding:[\"bool iconv_set_encoding(string type, string charset)\",\"Sets internal encoding and output encoding for ob_iconv_handler()\"],iconv_strlen:[\"int iconv_strlen(string str [, string charset])\",\"Returns the character count of str\"],iconv_strpos:[\"int iconv_strpos(string haystack, string needle [, int offset [, string charset]])\",\"Finds position of first occurrence of needle within part of haystack beginning with offset\"],iconv_strrpos:[\"int iconv_strrpos(string haystack, string needle [, string charset])\",\"Finds position of last occurrence of needle within part of haystack beginning with offset\"],iconv_substr:[\"string iconv_substr(string str, int offset, [int length, string charset])\",\"Returns specified part of a string\"],idate:[\"int idate(string format [, int timestamp])\",\"Format a local time/date as integer\"],idn_to_ascii:[\"int idn_to_ascii(string domain[, int options])\",\"Converts an Unicode domain to ASCII representation, as defined in the IDNA RFC\"],idn_to_utf8:[\"int idn_to_utf8(string domain[, int options])\",\"Converts an ASCII representation of the domain to Unicode (UTF-8), as defined in the IDNA RFC\"],ignore_user_abort:[\"int ignore_user_abort([string value])\",\"Set whether we want to ignore a user abort event or not\"],image2wbmp:[\"bool image2wbmp(resource im [, string filename [, int threshold]])\",\"Output WBMP image to browser or file\"],image_type_to_extension:[\"string image_type_to_extension(int imagetype [, bool include_dot])\",\"Get file extension for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype\"],image_type_to_mime_type:[\"string image_type_to_mime_type(int imagetype)\",\"Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype\"],imagealphablending:[\"bool imagealphablending(resource im, bool on)\",\"Turn alpha blending mode on or off for the given image\"],imageantialias:[\"bool imageantialias(resource im, bool on)\",\"Should antialiased functions used or not\"],imagearc:[\"bool imagearc(resource im, int cx, int cy, int w, int h, int s, int e, int col)\",\"Draw a partial ellipse\"],imagechar:[\"bool imagechar(resource im, int font, int x, int y, string c, int col)\",\"Draw a character\"],imagecharup:[\"bool imagecharup(resource im, int font, int x, int y, string c, int col)\",\"Draw a character rotated 90 degrees counter-clockwise\"],imagecolorallocate:[\"int imagecolorallocate(resource im, int red, int green, int blue)\",\"Allocate a color for an image\"],imagecolorallocatealpha:[\"int imagecolorallocatealpha(resource im, int red, int green, int blue, int alpha)\",\"Allocate a color with an alpha level.  Works for true color and palette based images\"],imagecolorat:[\"int imagecolorat(resource im, int x, int y)\",\"Get the index of the color of a pixel\"],imagecolorclosest:[\"int imagecolorclosest(resource im, int red, int green, int blue)\",\"Get the index of the closest color to the specified color\"],imagecolorclosestalpha:[\"int imagecolorclosestalpha(resource im, int red, int green, int blue, int alpha)\",\"Find the closest matching colour with alpha transparency\"],imagecolorclosesthwb:[\"int imagecolorclosesthwb(resource im, int red, int green, int blue)\",\"Get the index of the color which has the hue, white and blackness nearest to the given color\"],imagecolordeallocate:[\"bool imagecolordeallocate(resource im, int index)\",\"De-allocate a color for an image\"],imagecolorexact:[\"int imagecolorexact(resource im, int red, int green, int blue)\",\"Get the index of the specified color\"],imagecolorexactalpha:[\"int imagecolorexactalpha(resource im, int red, int green, int blue, int alpha)\",\"Find exact match for colour with transparency\"],imagecolormatch:[\"bool imagecolormatch(resource im1, resource im2)\",\"Makes the colors of the palette version of an image more closely match the true color version\"],imagecolorresolve:[\"int imagecolorresolve(resource im, int red, int green, int blue)\",\"Get the index of the specified color or its closest possible alternative\"],imagecolorresolvealpha:[\"int imagecolorresolvealpha(resource im, int red, int green, int blue, int alpha)\",\"Resolve/Allocate a colour with an alpha level.  Works for true colour and palette based images\"],imagecolorset:[\"void imagecolorset(resource im, int col, int red, int green, int blue)\",\"Set the color for the specified palette index\"],imagecolorsforindex:[\"array imagecolorsforindex(resource im, int col)\",\"Get the colors for an index\"],imagecolorstotal:[\"int imagecolorstotal(resource im)\",\"Find out the number of colors in an image's palette\"],imagecolortransparent:[\"int imagecolortransparent(resource im [, int col])\",\"Define a color as transparent\"],imageconvolution:[\"resource imageconvolution(resource src_im, array matrix3x3, double div, double offset)\",\"Apply a 3x3 convolution matrix, using coefficient div and offset\"],imagecopy:[\"bool imagecopy(resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h)\",\"Copy part of an image\"],imagecopymerge:[\"bool imagecopymerge(resource src_im, resource dst_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct)\",\"Merge one part of an image with another\"],imagecopymergegray:[\"bool imagecopymergegray(resource src_im, resource dst_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct)\",\"Merge one part of an image with another\"],imagecopyresampled:[\"bool imagecopyresampled(resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h)\",\"Copy and resize part of an image using resampling to help ensure clarity\"],imagecopyresized:[\"bool imagecopyresized(resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h)\",\"Copy and resize part of an image\"],imagecreate:[\"resource imagecreate(int x_size, int y_size)\",\"Create a new image\"],imagecreatefromgd:[\"resource imagecreatefromgd(string filename)\",\"Create a new image from GD file or URL\"],imagecreatefromgd2:[\"resource imagecreatefromgd2(string filename)\",\"Create a new image from GD2 file or URL\"],imagecreatefromgd2part:[\"resource imagecreatefromgd2part(string filename, int srcX, int srcY, int width, int height)\",\"Create a new image from a given part of GD2 file or URL\"],imagecreatefromgif:[\"resource imagecreatefromgif(string filename)\",\"Create a new image from GIF file or URL\"],imagecreatefromjpeg:[\"resource imagecreatefromjpeg(string filename)\",\"Create a new image from JPEG file or URL\"],imagecreatefrompng:[\"resource imagecreatefrompng(string filename)\",\"Create a new image from PNG file or URL\"],imagecreatefromstring:[\"resource imagecreatefromstring(string image)\",\"Create a new image from the image stream in the string\"],imagecreatefromwbmp:[\"resource imagecreatefromwbmp(string filename)\",\"Create a new image from WBMP file or URL\"],imagecreatefromxbm:[\"resource imagecreatefromxbm(string filename)\",\"Create a new image from XBM file or URL\"],imagecreatefromxpm:[\"resource imagecreatefromxpm(string filename)\",\"Create a new image from XPM file or URL\"],imagecreatetruecolor:[\"resource imagecreatetruecolor(int x_size, int y_size)\",\"Create a new true color image\"],imagedashedline:[\"bool imagedashedline(resource im, int x1, int y1, int x2, int y2, int col)\",\"Draw a dashed line\"],imagedestroy:[\"bool imagedestroy(resource im)\",\"Destroy an image\"],imageellipse:[\"bool imageellipse(resource im, int cx, int cy, int w, int h, int color)\",\"Draw an ellipse\"],imagefill:[\"bool imagefill(resource im, int x, int y, int col)\",\"Flood fill\"],imagefilledarc:[\"bool imagefilledarc(resource im, int cx, int cy, int w, int h, int s, int e, int col, int style)\",\"Draw a filled partial ellipse\"],imagefilledellipse:[\"bool imagefilledellipse(resource im, int cx, int cy, int w, int h, int color)\",\"Draw an ellipse\"],imagefilledpolygon:[\"bool imagefilledpolygon(resource im, array point, int num_points, int col)\",\"Draw a filled polygon\"],imagefilledrectangle:[\"bool imagefilledrectangle(resource im, int x1, int y1, int x2, int y2, int col)\",\"Draw a filled rectangle\"],imagefilltoborder:[\"bool imagefilltoborder(resource im, int x, int y, int border, int col)\",\"Flood fill to specific color\"],imagefilter:[\"bool imagefilter(resource src_im, int filtertype, [args] )\",\"Applies Filter an image using a custom angle\"],imagefontheight:[\"int imagefontheight(int font)\",\"Get font height\"],imagefontwidth:[\"int imagefontwidth(int font)\",\"Get font width\"],imageftbbox:[\"array imageftbbox(float size, float angle, string font_file, string text [, array extrainfo])\",\"Give the bounding box of a text using fonts via freetype2\"],imagefttext:[\"array imagefttext(resource im, float size, float angle, int x, int y, int col, string font_file, string text [, array extrainfo])\",\"Write text to the image using fonts via freetype2\"],imagegammacorrect:[\"bool imagegammacorrect(resource im, float inputgamma, float outputgamma)\",\"Apply a gamma correction to a GD image\"],imagegd:[\"bool imagegd(resource im [, string filename])\",\"Output GD image to browser or file\"],imagegd2:[\"bool imagegd2(resource im [, string filename, [, int chunk_size, [, int type]]])\",\"Output GD2 image to browser or file\"],imagegif:[\"bool imagegif(resource im [, string filename])\",\"Output GIF image to browser or file\"],imagegrabscreen:[\"resource imagegrabscreen()\",\"Grab a screenshot\"],imagegrabwindow:[\"resource imagegrabwindow(int window_handle [, int client_area])\",\"Grab a window or its client area using a windows handle (HWND property in COM instance)\"],imageinterlace:[\"int imageinterlace(resource im [, int interlace])\",\"Enable or disable interlace\"],imageistruecolor:[\"bool imageistruecolor(resource im)\",\"return true if the image uses truecolor\"],imagejpeg:[\"bool imagejpeg(resource im [, string filename [, int quality]])\",\"Output JPEG image to browser or file\"],imagelayereffect:[\"bool imagelayereffect(resource im, int effect)\",\"Set the alpha blending flag to use the bundled libgd layering effects\"],imageline:[\"bool imageline(resource im, int x1, int y1, int x2, int y2, int col)\",\"Draw a line\"],imageloadfont:[\"int imageloadfont(string filename)\",\"Load a new font\"],imagepalettecopy:[\"void imagepalettecopy(resource dst, resource src)\",\"Copy the palette from the src image onto the dst image\"],imagepng:[\"bool imagepng(resource im [, string filename])\",\"Output PNG image to browser or file\"],imagepolygon:[\"bool imagepolygon(resource im, array point, int num_points, int col)\",\"Draw a polygon\"],imagepsbbox:[\"array imagepsbbox(string text, resource font, int size [, int space, int tightness, float angle])\",\"Return the bounding box needed by a string if rasterized\"],imagepscopyfont:[\"int imagepscopyfont(int font_index)\",\"Make a copy of a font for purposes like extending or reenconding\"],imagepsencodefont:[\"bool imagepsencodefont(resource font_index, string filename)\",\"To change a fonts character encoding vector\"],imagepsextendfont:[\"bool imagepsextendfont(resource font_index, float extend)\",\"Extend or or condense (if extend < 1) a font\"],imagepsfreefont:[\"bool imagepsfreefont(resource font_index)\",\"Free memory used by a font\"],imagepsloadfont:[\"resource imagepsloadfont(string pathname)\",\"Load a new font from specified file\"],imagepsslantfont:[\"bool imagepsslantfont(resource font_index, float slant)\",\"Slant a font\"],imagepstext:[\"array imagepstext(resource image, string text, resource font, int size, int foreground, int background, int xcoord, int ycoord [, int space [, int tightness [, float angle [, int antialias])\",\"Rasterize a string over an image\"],imagerectangle:[\"bool imagerectangle(resource im, int x1, int y1, int x2, int y2, int col)\",\"Draw a rectangle\"],imagerotate:[\"resource imagerotate(resource src_im, float angle, int bgdcolor [, int ignoretransparent])\",\"Rotate an image using a custom angle\"],imagesavealpha:[\"bool imagesavealpha(resource im, bool on)\",\"Include alpha channel to a saved image\"],imagesetbrush:[\"bool imagesetbrush(resource image, resource brush)\",'Set the brush image to $brush when filling $image with the \"IMG_COLOR_BRUSHED\" color'],imagesetpixel:[\"bool imagesetpixel(resource im, int x, int y, int col)\",\"Set a single pixel\"],imagesetstyle:[\"bool imagesetstyle(resource im, array styles)\",\"Set the line drawing styles for use with imageline and IMG_COLOR_STYLED.\"],imagesetthickness:[\"bool imagesetthickness(resource im, int thickness)\",\"Set line thickness for drawing lines, ellipses, rectangles, polygons etc.\"],imagesettile:[\"bool imagesettile(resource image, resource tile)\",'Set the tile image to $tile when filling $image with the \"IMG_COLOR_TILED\" color'],imagestring:[\"bool imagestring(resource im, int font, int x, int y, string str, int col)\",\"Draw a string horizontally\"],imagestringup:[\"bool imagestringup(resource im, int font, int x, int y, string str, int col)\",\"Draw a string vertically - rotated 90 degrees counter-clockwise\"],imagesx:[\"int imagesx(resource im)\",\"Get image width\"],imagesy:[\"int imagesy(resource im)\",\"Get image height\"],imagetruecolortopalette:[\"void imagetruecolortopalette(resource im, bool ditherFlag, int colorsWanted)\",\"Convert a true colour image to a palette based image with a number of colours, optionally using dithering.\"],imagettfbbox:[\"array imagettfbbox(float size, float angle, string font_file, string text)\",\"Give the bounding box of a text using TrueType fonts\"],imagettftext:[\"array imagettftext(resource im, float size, float angle, int x, int y, int col, string font_file, string text)\",\"Write text to the image using a TrueType font\"],imagetypes:[\"int imagetypes(void)\",\"Return the types of images supported in a bitfield - 1=GIF, 2=JPEG, 4=PNG, 8=WBMP, 16=XPM\"],imagewbmp:[\"bool imagewbmp(resource im [, string filename, [, int foreground]])\",\"Output WBMP image to browser or file\"],imagexbm:[\"int imagexbm(int im, string filename [, int foreground])\",\"Output XBM image to browser or file\"],imap_8bit:[\"string imap_8bit(string text)\",\"Convert an 8-bit string to a quoted-printable string\"],imap_alerts:[\"array imap_alerts(void)\",\"Returns an array of all IMAP alerts that have been generated since the last page load or since the last imap_alerts() call, whichever came last. The alert stack is cleared after imap_alerts() is called.\"],imap_append:[\"bool imap_append(resource stream_id, string folder, string message [, string options [, string internal_date]])\",\"Append a new message to a specified mailbox\"],imap_base64:[\"string imap_base64(string text)\",\"Decode BASE64 encoded text\"],imap_binary:[\"string imap_binary(string text)\",\"Convert an 8bit string to a base64 string\"],imap_body:[\"string imap_body(resource stream_id, int msg_no [, int options])\",\"Read the message body\"],imap_bodystruct:[\"object imap_bodystruct(resource stream_id, int msg_no, string section)\",\"Read the structure of a specified body section of a specific message\"],imap_check:[\"object imap_check(resource stream_id)\",\"Get mailbox properties\"],imap_clearflag_full:[\"bool imap_clearflag_full(resource stream_id, string sequence, string flag [, int options])\",\"Clears flags on messages\"],imap_close:[\"bool imap_close(resource stream_id [, int options])\",\"Close an IMAP stream\"],imap_createmailbox:[\"bool imap_createmailbox(resource stream_id, string mailbox)\",\"Create a new mailbox\"],imap_delete:[\"bool imap_delete(resource stream_id, int msg_no [, int options])\",\"Mark a message for deletion\"],imap_deletemailbox:[\"bool imap_deletemailbox(resource stream_id, string mailbox)\",\"Delete a mailbox\"],imap_errors:[\"array imap_errors(void)\",\"Returns an array of all IMAP errors generated since the last page load, or since the last imap_errors() call, whichever came last. The error stack is cleared after imap_errors() is called.\"],imap_expunge:[\"bool imap_expunge(resource stream_id)\",\"Permanently delete all messages marked for deletion\"],imap_fetch_overview:[\"array imap_fetch_overview(resource stream_id, string sequence [, int options])\",\"Read an overview of the information in the headers of the given message sequence\"],imap_fetchbody:[\"string imap_fetchbody(resource stream_id, int msg_no, string section [, int options])\",\"Get a specific body section\"],imap_fetchheader:[\"string imap_fetchheader(resource stream_id, int msg_no [, int options])\",\"Get the full unfiltered header for a message\"],imap_fetchstructure:[\"object imap_fetchstructure(resource stream_id, int msg_no [, int options])\",\"Read the full structure of a message\"],imap_gc:[\"bool imap_gc(resource stream_id, int flags)\",\"This function garbage collects (purges) the cache of entries of a specific type.\"],imap_get_quota:[\"array imap_get_quota(resource stream_id, string qroot)\",\"Returns the quota set to the mailbox account qroot\"],imap_get_quotaroot:[\"array imap_get_quotaroot(resource stream_id, string mbox)\",\"Returns the quota set to the mailbox account mbox\"],imap_getacl:[\"array imap_getacl(resource stream_id, string mailbox)\",\"Gets the ACL for a given mailbox\"],imap_getmailboxes:[\"array imap_getmailboxes(resource stream_id, string ref, string pattern)\",\"Reads the list of mailboxes and returns a full array of objects containing name, attributes, and delimiter\"],imap_getsubscribed:[\"array imap_getsubscribed(resource stream_id, string ref, string pattern)\",\"Return a list of subscribed mailboxes, in the same format as imap_getmailboxes()\"],imap_headerinfo:[\"object imap_headerinfo(resource stream_id, int msg_no [, int from_length [, int subject_length [, string default_host]]])\",\"Read the headers of the message\"],imap_headers:[\"array imap_headers(resource stream_id)\",\"Returns headers for all messages in a mailbox\"],imap_last_error:[\"string imap_last_error(void)\",\"Returns the last error that was generated by an IMAP function. The error stack is NOT cleared after this call.\"],imap_list:[\"array imap_list(resource stream_id, string ref, string pattern)\",\"Read the list of mailboxes\"],imap_listscan:[\"array imap_listscan(resource stream_id, string ref, string pattern, string content)\",\"Read list of mailboxes containing a certain string\"],imap_lsub:[\"array imap_lsub(resource stream_id, string ref, string pattern)\",\"Return a list of subscribed mailboxes\"],imap_mail:[\"bool imap_mail(string to, string subject, string message [, string additional_headers [, string cc [, string bcc [, string rpath]]]])\",\"Send an email message\"],imap_mail_compose:[\"string imap_mail_compose(array envelope, array body)\",\"Create a MIME message based on given envelope and body sections\"],imap_mail_copy:[\"bool imap_mail_copy(resource stream_id, string msglist, string mailbox [, int options])\",\"Copy specified message to a mailbox\"],imap_mail_move:[\"bool imap_mail_move(resource stream_id, string sequence, string mailbox [, int options])\",\"Move specified message to a mailbox\"],imap_mailboxmsginfo:[\"object imap_mailboxmsginfo(resource stream_id)\",\"Returns info about the current mailbox\"],imap_mime_header_decode:[\"array imap_mime_header_decode(string str)\",\"Decode mime header element in accordance with RFC 2047 and return array of objects containing 'charset' encoding and decoded 'text'\"],imap_msgno:[\"int imap_msgno(resource stream_id, int unique_msg_id)\",\"Get the sequence number associated with a UID\"],imap_mutf7_to_utf8:[\"string imap_mutf7_to_utf8(string in)\",\"Decode a modified UTF-7 string to UTF-8\"],imap_num_msg:[\"int imap_num_msg(resource stream_id)\",\"Gives the number of messages in the current mailbox\"],imap_num_recent:[\"int imap_num_recent(resource stream_id)\",\"Gives the number of recent messages in current mailbox\"],imap_open:[\"resource imap_open(string mailbox, string user, string password [, int options [, int n_retries]])\",\"Open an IMAP stream to a mailbox\"],imap_ping:[\"bool imap_ping(resource stream_id)\",\"Check if the IMAP stream is still active\"],imap_qprint:[\"string imap_qprint(string text)\",\"Convert a quoted-printable string to an 8-bit string\"],imap_renamemailbox:[\"bool imap_renamemailbox(resource stream_id, string old_name, string new_name)\",\"Rename a mailbox\"],imap_reopen:[\"bool imap_reopen(resource stream_id, string mailbox [, int options [, int n_retries]])\",\"Reopen an IMAP stream to a new mailbox\"],imap_rfc822_parse_adrlist:[\"array imap_rfc822_parse_adrlist(string address_string, string default_host)\",\"Parses an address string\"],imap_rfc822_parse_headers:[\"object imap_rfc822_parse_headers(string headers [, string default_host])\",\"Parse a set of mail headers contained in a string, and return an object similar to imap_headerinfo()\"],imap_rfc822_write_address:[\"string imap_rfc822_write_address(string mailbox, string host, string personal)\",\"Returns a properly formatted email address given the mailbox, host, and personal info\"],imap_savebody:['bool imap_savebody(resource stream_id, string|resource file, int msg_no[, string section = \"\"[, int options = 0]])',\"Save a specific body section to a file\"],imap_search:[\"array imap_search(resource stream_id, string criteria [, int options [, string charset]])\",\"Return a list of messages matching the given criteria\"],imap_set_quota:[\"bool imap_set_quota(resource stream_id, string qroot, int mailbox_size)\",\"Will set the quota for qroot mailbox\"],imap_setacl:[\"bool imap_setacl(resource stream_id, string mailbox, string id, string rights)\",\"Sets the ACL for a given mailbox\"],imap_setflag_full:[\"bool imap_setflag_full(resource stream_id, string sequence, string flag [, int options])\",\"Sets flags on messages\"],imap_sort:[\"array imap_sort(resource stream_id, int criteria, int reverse [, int options [, string search_criteria [, string charset]]])\",\"Sort an array of message headers, optionally including only messages that meet specified criteria.\"],imap_status:[\"object imap_status(resource stream_id, string mailbox, int options)\",\"Get status info from a mailbox\"],imap_subscribe:[\"bool imap_subscribe(resource stream_id, string mailbox)\",\"Subscribe to a mailbox\"],imap_thread:[\"array imap_thread(resource stream_id [, int options])\",\"Return threaded by REFERENCES tree\"],imap_timeout:[\"mixed imap_timeout(int timeout_type [, int timeout])\",\"Set or fetch imap timeout\"],imap_uid:[\"int imap_uid(resource stream_id, int msg_no)\",\"Get the unique message id associated with a standard sequential message number\"],imap_undelete:[\"bool imap_undelete(resource stream_id, int msg_no [, int flags])\",\"Remove the delete flag from a message\"],imap_unsubscribe:[\"bool imap_unsubscribe(resource stream_id, string mailbox)\",\"Unsubscribe from a mailbox\"],imap_utf7_decode:[\"string imap_utf7_decode(string buf)\",\"Decode a modified UTF-7 string\"],imap_utf7_encode:[\"string imap_utf7_encode(string buf)\",\"Encode a string in modified UTF-7\"],imap_utf8:[\"string imap_utf8(string mime_encoded_text)\",\"Convert a mime-encoded text to UTF-8\"],imap_utf8_to_mutf7:[\"string imap_utf8_to_mutf7(string in)\",\"Encode a UTF-8 string to modified UTF-7\"],implode:[\"string implode([string glue,] array pieces)\",\"Joins array elements placing glue string between items and return one string\"],import_request_variables:[\"bool import_request_variables(string types [, string prefix])\",\"Import GET/POST/Cookie variables into the global scope\"],in_array:[\"bool in_array(mixed needle, array haystack [, bool strict])\",\"Checks if the given value exists in the array\"],include:[\"bool include(string path)\",\"Includes and evaluates the specified file\"],include_once:[\"bool include_once(string path)\",\"Includes and evaluates the specified file\"],inet_ntop:[\"string inet_ntop(string in_addr)\",\"Converts a packed inet address to a human readable IP address string\"],inet_pton:[\"string inet_pton(string ip_address)\",\"Converts a human readable IP address to a packed binary string\"],ini_get:[\"string ini_get(string varname)\",\"Get a configuration option\"],ini_get_all:[\"array ini_get_all([string extension[, bool details = true]])\",\"Get all configuration options\"],ini_restore:[\"void ini_restore(string varname)\",\"Restore the value of a configuration option specified by varname\"],ini_set:[\"string ini_set(string varname, string newvalue)\",\"Set a configuration option, returns false on error and the old value of the configuration option on success\"],interface_exists:[\"bool interface_exists(string classname [, bool autoload])\",\"Checks if the class exists\"],intl_error_name:[\"string intl_error_name()\",\"* Return a string for a given error code.  * The string will be the same as the name of the error code constant.\"],intl_get_error_code:[\"int intl_get_error_code()\",\"* Get code of the last occured error.\"],intl_get_error_message:[\"string intl_get_error_message()\",\"* Get text description of the last occured error.\"],intl_is_failure:[\"bool intl_is_failure()\",\"* Check whether the given error code indicates a failure.  * Returns true if it does, and false if the code  * indicates success or a warning.\"],intval:[\"int intval(mixed var [, int base])\",\"Get the integer value of a variable using the optional base for the conversion\"],ip2long:[\"int ip2long(string ip_address)\",\"Converts a string containing an (IPv4) Internet Protocol dotted address into a proper address\"],iptcembed:[\"array iptcembed(string iptcdata, string jpeg_file_name [, int spool])\",\"Embed binary IPTC data into a JPEG image.\"],iptcparse:[\"array iptcparse(string iptcdata)\",\"Parse binary IPTC-data into associative array\"],is_a:[\"bool is_a(object object, string class_name)\",\"Returns true if the object is of this class or has this class as one of its parents\"],is_array:[\"bool is_array(mixed var)\",\"Returns true if variable is an array\"],is_bool:[\"bool is_bool(mixed var)\",\"Returns true if variable is a boolean\"],is_callable:[\"bool is_callable(mixed var [, bool syntax_only [, string callable_name]])\",\"Returns true if var is callable.\"],is_dir:[\"bool is_dir(string filename)\",\"Returns true if file is directory\"],is_executable:[\"bool is_executable(string filename)\",\"Returns true if file is executable\"],is_file:[\"bool is_file(string filename)\",\"Returns true if file is a regular file\"],is_finite:[\"bool is_finite(float val)\",\"Returns whether argument is finite\"],is_float:[\"bool is_float(mixed var)\",\"Returns true if variable is float point\"],is_infinite:[\"bool is_infinite(float val)\",\"Returns whether argument is infinite\"],is_link:[\"bool is_link(string filename)\",\"Returns true if file is symbolic link\"],is_long:[\"bool is_long(mixed var)\",\"Returns true if variable is a long (integer)\"],is_nan:[\"bool is_nan(float val)\",\"Returns whether argument is not a number\"],is_null:[\"bool is_null(mixed var)\",\"Returns true if variable is null\"],is_numeric:[\"bool is_numeric(mixed value)\",\"Returns true if value is a number or a numeric string\"],is_object:[\"bool is_object(mixed var)\",\"Returns true if variable is an object\"],is_readable:[\"bool is_readable(string filename)\",\"Returns true if file can be read\"],is_resource:[\"bool is_resource(mixed var)\",\"Returns true if variable is a resource\"],is_scalar:[\"bool is_scalar(mixed value)\",\"Returns true if value is a scalar\"],is_string:[\"bool is_string(mixed var)\",\"Returns true if variable is a string\"],is_subclass_of:[\"bool is_subclass_of(object object, string class_name)\",\"Returns true if the object has this class as one of its parents\"],is_uploaded_file:[\"bool is_uploaded_file(string path)\",\"Check if file was created by rfc1867 upload\"],is_writable:[\"bool is_writable(string filename)\",\"Returns true if file can be written\"],isset:[\"bool isset(mixed var [, mixed var])\",\"Determine whether a variable is set\"],iterator_apply:[\"int iterator_apply(Traversable it, mixed function [, mixed params])\",\"Calls a function for every element in an iterator\"],iterator_count:[\"int iterator_count(Traversable it)\",\"Count the elements in an iterator\"],iterator_to_array:[\"array iterator_to_array(Traversable it [, bool use_keys = true])\",\"Copy the iterator into an array\"],jddayofweek:[\"mixed jddayofweek(int juliandaycount [, int mode])\",\"Returns name or number of day of week from julian day count\"],jdmonthname:[\"string jdmonthname(int juliandaycount, int mode)\",\"Returns name of month for julian day count\"],jdtofrench:[\"string jdtofrench(int juliandaycount)\",\"Converts a julian day count to a french republic calendar date\"],jdtogregorian:[\"string jdtogregorian(int juliandaycount)\",\"Converts a julian day count to a gregorian calendar date\"],jdtojewish:[\"string jdtojewish(int juliandaycount [, bool hebrew [, int fl]])\",\"Converts a julian day count to a jewish calendar date\"],jdtojulian:[\"string jdtojulian(int juliandaycount)\",\"Convert a julian day count to a julian calendar date\"],jdtounix:[\"int jdtounix(int jday)\",\"Convert Julian Day to UNIX timestamp\"],jewishtojd:[\"int jewishtojd(int month, int day, int year)\",\"Converts a jewish calendar date to a julian day count\"],join:[\"string join(array src, string glue)\",\"An alias for implode\"],jpeg2wbmp:[\"bool jpeg2wbmp (string f_org, string f_dest, int d_height, int d_width, int threshold)\",\"Convert JPEG image to WBMP image\"],json_decode:[\"mixed json_decode(string json [, bool assoc [, long depth]])\",\"Decodes the JSON representation into a PHP value\"],json_encode:[\"string json_encode(mixed data [, int options])\",\"Returns the JSON representation of a value\"],json_last_error:[\"int json_last_error()\",\"Returns the error code of the last json_decode().\"],juliantojd:[\"int juliantojd(int month, int day, int year)\",\"Converts a julian calendar date to julian day count\"],key:[\"mixed key(array array_arg)\",\"Return the key of the element currently pointed to by the internal array pointer\"],krsort:[\"bool krsort(array &array_arg [, int sort_flags])\",\"Sort an array by key value in reverse order\"],ksort:[\"bool ksort(array &array_arg [, int sort_flags])\",\"Sort an array by key\"],lcfirst:[\"string lcfirst(string str)\",\"Make a string's first character lowercase\"],lcg_value:[\"float lcg_value()\",\"Returns a value from the combined linear congruential generator\"],lchgrp:[\"bool lchgrp(string filename, mixed group)\",\"Change symlink group\"],ldap_8859_to_t61:[\"string ldap_8859_to_t61(string value)\",\"Translate 8859 characters to t61 characters\"],ldap_add:[\"bool ldap_add(resource link, string dn, array entry)\",\"Add entries to LDAP directory\"],ldap_bind:[\"bool ldap_bind(resource link [, string dn [, string password]])\",\"Bind to LDAP directory\"],ldap_compare:[\"bool ldap_compare(resource link, string dn, string attr, string value)\",\"Determine if an entry has a specific value for one of its attributes\"],ldap_connect:[\"resource ldap_connect([string host [, int port [, string wallet [, string wallet_passwd [, int authmode]]]]])\",\"Connect to an LDAP server\"],ldap_count_entries:[\"int ldap_count_entries(resource link, resource result)\",\"Count the number of entries in a search result\"],ldap_delete:[\"bool ldap_delete(resource link, string dn)\",\"Delete an entry from a directory\"],ldap_dn2ufn:[\"string ldap_dn2ufn(string dn)\",\"Convert DN to User Friendly Naming format\"],ldap_err2str:[\"string ldap_err2str(int errno)\",\"Convert error number to error string\"],ldap_errno:[\"int ldap_errno(resource link)\",\"Get the current ldap error number\"],ldap_error:[\"string ldap_error(resource link)\",\"Get the current ldap error string\"],ldap_explode_dn:[\"array ldap_explode_dn(string dn, int with_attrib)\",\"Splits DN into its component parts\"],ldap_first_attribute:[\"string ldap_first_attribute(resource link, resource result_entry)\",\"Return first attribute\"],ldap_first_entry:[\"resource ldap_first_entry(resource link, resource result)\",\"Return first result id\"],ldap_first_reference:[\"resource ldap_first_reference(resource link, resource result)\",\"Return first reference\"],ldap_free_result:[\"bool ldap_free_result(resource result)\",\"Free result memory\"],ldap_get_attributes:[\"array ldap_get_attributes(resource link, resource result_entry)\",\"Get attributes from a search result entry\"],ldap_get_dn:[\"string ldap_get_dn(resource link, resource result_entry)\",\"Get the DN of a result entry\"],ldap_get_entries:[\"array ldap_get_entries(resource link, resource result)\",\"Get all result entries\"],ldap_get_option:[\"bool ldap_get_option(resource link, int option, mixed retval)\",\"Get the current value of various session-wide parameters\"],ldap_get_values_len:[\"array ldap_get_values_len(resource link, resource result_entry, string attribute)\",\"Get all values with lengths from a result entry\"],ldap_list:[\"resource ldap_list(resource|array link, string base_dn, string filter [, array attrs [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])\",\"Single-level search\"],ldap_mod_add:[\"bool ldap_mod_add(resource link, string dn, array entry)\",\"Add attribute values to current\"],ldap_mod_del:[\"bool ldap_mod_del(resource link, string dn, array entry)\",\"Delete attribute values\"],ldap_mod_replace:[\"bool ldap_mod_replace(resource link, string dn, array entry)\",\"Replace attribute values with new ones\"],ldap_next_attribute:[\"string ldap_next_attribute(resource link, resource result_entry)\",\"Get the next attribute in result\"],ldap_next_entry:[\"resource ldap_next_entry(resource link, resource result_entry)\",\"Get next result entry\"],ldap_next_reference:[\"resource ldap_next_reference(resource link, resource reference_entry)\",\"Get next reference\"],ldap_parse_reference:[\"bool ldap_parse_reference(resource link, resource reference_entry, array referrals)\",\"Extract information from reference entry\"],ldap_parse_result:[\"bool ldap_parse_result(resource link, resource result, int errcode, string matcheddn, string errmsg, array referrals)\",\"Extract information from result\"],ldap_read:[\"resource ldap_read(resource|array link, string base_dn, string filter [, array attrs [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])\",\"Read an entry\"],ldap_rename:[\"bool ldap_rename(resource link, string dn, string newrdn, string newparent, bool deleteoldrdn);\",\"Modify the name of an entry\"],ldap_sasl_bind:[\"bool ldap_sasl_bind(resource link [, string binddn [, string password [, string sasl_mech [, string sasl_realm [, string sasl_authc_id [, string sasl_authz_id [, string props]]]]]]])\",\"Bind to LDAP directory using SASL\"],ldap_search:[\"resource ldap_search(resource|array link, string base_dn, string filter [, array attrs [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])\",\"Search LDAP tree under base_dn\"],ldap_set_option:[\"bool ldap_set_option(resource link, int option, mixed newval)\",\"Set the value of various session-wide parameters\"],ldap_set_rebind_proc:[\"bool ldap_set_rebind_proc(resource link, string callback)\",\"Set a callback function to do re-binds on referral chasing.\"],ldap_sort:[\"bool ldap_sort(resource link, resource result, string sortfilter)\",\"Sort LDAP result entries\"],ldap_start_tls:[\"bool ldap_start_tls(resource link)\",\"Start TLS\"],ldap_t61_to_8859:[\"string ldap_t61_to_8859(string value)\",\"Translate t61 characters to 8859 characters\"],ldap_unbind:[\"bool ldap_unbind(resource link)\",\"Unbind from LDAP directory\"],leak:[\"void leak(int num_bytes=3)\",\"Cause an intentional memory leak, for testing/debugging purposes\"],levenshtein:[\"int levenshtein(string str1, string str2[, int cost_ins, int cost_rep, int cost_del])\",\"Calculate Levenshtein distance between two strings\"],libxml_clear_errors:[\"void libxml_clear_errors()\",\"Clear last error from libxml\"],libxml_disable_entity_loader:[\"bool libxml_disable_entity_loader([boolean disable])\",\"Disable/Enable ability to load external entities\"],libxml_get_errors:[\"object libxml_get_errors()\",\"Retrieve array of errors\"],libxml_get_last_error:[\"object libxml_get_last_error()\",\"Retrieve last error from libxml\"],libxml_set_streams_context:[\"void libxml_set_streams_context(resource streams_context)\",\"Set the streams context for the next libxml document load or write\"],libxml_use_internal_errors:[\"bool libxml_use_internal_errors([boolean use_errors])\",\"Disable libxml errors and allow user to fetch error information as needed\"],link:[\"int link(string target, string link)\",\"Create a hard link\"],linkinfo:[\"int linkinfo(string filename)\",\"Returns the st_dev field of the UNIX C stat structure describing the link\"],litespeed_request_headers:[\"array litespeed_request_headers(void)\",\"Fetch all HTTP request headers\"],litespeed_response_headers:[\"array litespeed_response_headers(void)\",\"Fetch all HTTP response headers\"],locale_accept_from_http:[\"string locale_accept_from_http(string $http_accept)\",null],locale_canonicalize:[\"static string locale_canonicalize(Locale $loc, string $locale)\",\"* @param string $locale The locale string to canonicalize\"],locale_filter_matches:[\"boolean locale_filter_matches(string $langtag, string $locale[, bool $canonicalize])\",\"* Checks if a $langtag filter matches with $locale according to RFC 4647's basic filtering algorithm\"],locale_get_all_variants:[\"static array locale_get_all_variants($locale)\",\"* gets an array containing the list of variants, or null\"],locale_get_default:[\"static string locale_get_default( )\",\"Get default locale\"],locale_get_keywords:[\"static array locale_get_keywords(string $locale) {\",\"* return an associative array containing keyword-value  * pairs for this locale. The keys are keys to the array (doh!)\"],locale_get_primary_language:[\"static string locale_get_primary_language($locale)\",\"* gets the primary language for the $locale\"],locale_get_region:[\"static string locale_get_region($locale)\",\"* gets the region for the $locale\"],locale_get_script:[\"static string locale_get_script($locale)\",\"* gets the script for the $locale\"],locale_lookup:[\"string locale_lookup(array $langtag, string $locale[, bool $canonicalize[, string $default = null]])\",\"* Searchs the items in $langtag for the best match to the language * range\"],locale_set_default:[\"static string locale_set_default( string $locale )\",\"Set default locale\"],localeconv:[\"array localeconv(void)\",\"Returns numeric formatting information based on the current locale\"],localtime:[\"array localtime([int timestamp [, bool associative_array]])\",\"Returns the results of the C system call localtime as an associative array if the associative_array argument is set to 1 other wise it is a regular array\"],log:[\"float log(float number, [float base])\",\"Returns the natural logarithm of the number, or the base log if base is specified\"],log10:[\"float log10(float number)\",\"Returns the base-10 logarithm of the number\"],log1p:[\"float log1p(float number)\",\"Returns log(1 + number), computed in a way that accurate even when the value of number is close to zero\"],long2ip:[\"string long2ip(int proper_address)\",\"Converts an (IPv4) Internet network address into a string in Internet standard dotted format\"],lstat:[\"array lstat(string filename)\",\"Give information about a file or symbolic link\"],ltrim:[\"string ltrim(string str [, string character_mask])\",\"Strips whitespace from the beginning of a string\"],mail:[\"int mail(string to, string subject, string message [, string additional_headers [, string additional_parameters]])\",\"Send an email message\"],max:[\"mixed max(mixed arg1 [, mixed arg2 [, mixed ...]])\",\"Return the highest value in an array or a series of arguments\"],mb_check_encoding:[\"bool mb_check_encoding([string var[, string encoding]])\",\"Check if the string is valid for the specified encoding\"],mb_convert_case:[\"string mb_convert_case(string sourcestring, int mode [, string encoding])\",\"Returns a case-folded version of sourcestring\"],mb_convert_encoding:[\"string mb_convert_encoding(string str, string to-encoding [, mixed from-encoding])\",\"Returns converted string in desired encoding\"],mb_convert_kana:[\"string mb_convert_kana(string str [, string option] [, string encoding])\",\"Conversion between full-width character and half-width character (Japanese)\"],mb_convert_variables:[\"string mb_convert_variables(string to-encoding, mixed from-encoding, mixed vars [, ...])\",\"Converts the string resource in variables to desired encoding\"],mb_decode_mimeheader:[\"string mb_decode_mimeheader(string string)\",'Decodes the MIME \"encoded-word\" in the string'],mb_decode_numericentity:[\"string mb_decode_numericentity(string string, array convmap [, string encoding])\",\"Converts HTML numeric entities to character code\"],mb_detect_encoding:[\"string mb_detect_encoding(string str [, mixed encoding_list [, bool strict]])\",\"Encodings of the given string is returned (as a string)\"],mb_detect_order:[\"bool|array mb_detect_order([mixed encoding-list])\",\"Sets the current detect_order or Return the current detect_order as a array\"],mb_encode_mimeheader:[\"string mb_encode_mimeheader(string str [, string charset [, string transfer-encoding [, string linefeed [, int indent]]]])\",'Converts the string to MIME \"encoded-word\" in the format of =?charset?(B|Q)?encoded_string?='],mb_encode_numericentity:[\"string mb_encode_numericentity(string string, array convmap [, string encoding])\",\"Converts specified characters to HTML numeric entities\"],mb_encoding_aliases:[\"array mb_encoding_aliases(string encoding)\",\"Returns an array of the aliases of a given encoding name\"],mb_ereg:[\"int mb_ereg(string pattern, string string [, array registers])\",\"Regular expression match for multibyte string\"],mb_ereg_match:[\"bool mb_ereg_match(string pattern, string string [,string option])\",\"Regular expression match for multibyte string\"],mb_ereg_replace:[\"string mb_ereg_replace(string pattern, string replacement, string string [, string option])\",\"Replace regular expression for multibyte string\"],mb_ereg_search:[\"bool mb_ereg_search([string pattern[, string option]])\",\"Regular expression search for multibyte string\"],mb_ereg_search_getpos:[\"int mb_ereg_search_getpos(void)\",\"Get search start position\"],mb_ereg_search_getregs:[\"array mb_ereg_search_getregs(void)\",\"Get matched substring of the last time\"],mb_ereg_search_init:[\"bool mb_ereg_search_init(string string [, string pattern[, string option]])\",\"Initialize string and regular expression for search.\"],mb_ereg_search_pos:[\"array mb_ereg_search_pos([string pattern[, string option]])\",\"Regular expression search for multibyte string\"],mb_ereg_search_regs:[\"array mb_ereg_search_regs([string pattern[, string option]])\",\"Regular expression search for multibyte string\"],mb_ereg_search_setpos:[\"bool mb_ereg_search_setpos(int position)\",\"Set search start position\"],mb_eregi:[\"int mb_eregi(string pattern, string string [, array registers])\",\"Case-insensitive regular expression match for multibyte string\"],mb_eregi_replace:[\"string mb_eregi_replace(string pattern, string replacement, string string)\",\"Case insensitive replace regular expression for multibyte string\"],mb_get_info:[\"mixed mb_get_info([string type])\",\"Returns the current settings of mbstring\"],mb_http_input:[\"mixed mb_http_input([string type])\",\"Returns the input encoding\"],mb_http_output:[\"string mb_http_output([string encoding])\",\"Sets the current output_encoding or returns the current output_encoding as a string\"],mb_internal_encoding:[\"string mb_internal_encoding([string encoding])\",\"Sets the current internal encoding or Returns the current internal encoding as a string\"],mb_language:[\"string mb_language([string language])\",\"Sets the current language or Returns the current language as a string\"],mb_list_encodings:[\"mixed mb_list_encodings()\",\"Returns an array of all supported entity encodings\"],mb_output_handler:[\"string mb_output_handler(string contents, int status)\",\"Returns string in output buffer converted to the http_output encoding\"],mb_parse_str:[\"bool mb_parse_str(string encoded_string [, array result])\",\"Parses GET/POST/COOKIE data and sets global variables\"],mb_preferred_mime_name:[\"string mb_preferred_mime_name(string encoding)\",\"Return the preferred MIME name (charset) as a string\"],mb_regex_encoding:[\"string mb_regex_encoding([string encoding])\",\"Returns the current encoding for regex as a string.\"],mb_regex_set_options:[\"string mb_regex_set_options([string options])\",\"Set or get the default options for mbregex functions\"],mb_send_mail:[\"int mb_send_mail(string to, string subject, string message [, string additional_headers [, string additional_parameters]])\",\"*  Sends an email message with MIME scheme\"],mb_split:[\"array mb_split(string pattern, string string [, int limit])\",\"split multibyte string into array by regular expression\"],mb_strcut:[\"string mb_strcut(string str, int start [, int length [, string encoding]])\",\"Returns part of a string\"],mb_strimwidth:[\"string mb_strimwidth(string str, int start, int width [, string trimmarker [, string encoding]])\",\"Trim the string in terminal width\"],mb_stripos:[\"int mb_stripos(string haystack, string needle [, int offset [, string encoding]])\",\"Finds position of first occurrence of a string within another, case insensitive\"],mb_stristr:[\"string mb_stristr(string haystack, string needle[, bool part[, string encoding]])\",\"Finds first occurrence of a string within another, case insensitive\"],mb_strlen:[\"int mb_strlen(string str [, string encoding])\",\"Get character numbers of a string\"],mb_strpos:[\"int mb_strpos(string haystack, string needle [, int offset [, string encoding]])\",\"Find position of first occurrence of a string within another\"],mb_strrchr:[\"string mb_strrchr(string haystack, string needle[, bool part[, string encoding]])\",\"Finds the last occurrence of a character in a string within another\"],mb_strrichr:[\"string mb_strrichr(string haystack, string needle[, bool part[, string encoding]])\",\"Finds the last occurrence of a character in a string within another, case insensitive\"],mb_strripos:[\"int mb_strripos(string haystack, string needle [, int offset [, string encoding]])\",\"Finds position of last occurrence of a string within another, case insensitive\"],mb_strrpos:[\"int mb_strrpos(string haystack, string needle [, int offset [, string encoding]])\",\"Find position of last occurrence of a string within another\"],mb_strstr:[\"string mb_strstr(string haystack, string needle[, bool part[, string encoding]])\",\"Finds first occurrence of a string within another\"],mb_strtolower:[\"string mb_strtolower(string sourcestring [, string encoding])\",\"*  Returns a lowercased version of sourcestring\"],mb_strtoupper:[\"string mb_strtoupper(string sourcestring [, string encoding])\",\"*  Returns a uppercased version of sourcestring\"],mb_strwidth:[\"int mb_strwidth(string str [, string encoding])\",\"Gets terminal width of a string\"],mb_substitute_character:[\"mixed mb_substitute_character([mixed substchar])\",\"Sets the current substitute_character or returns the current substitute_character\"],mb_substr:[\"string mb_substr(string str, int start [, int length [, string encoding]])\",\"Returns part of a string\"],mb_substr_count:[\"int mb_substr_count(string haystack, string needle [, string encoding])\",\"Count the number of substring occurrences\"],mcrypt_cbc:[\"string mcrypt_cbc(int cipher, string key, string data, int mode, string iv)\",\"CBC crypt/decrypt data using key key with cipher cipher starting with iv\"],mcrypt_cfb:[\"string mcrypt_cfb(int cipher, string key, string data, int mode, string iv)\",\"CFB crypt/decrypt data using key key with cipher cipher starting with iv\"],mcrypt_create_iv:[\"string mcrypt_create_iv(int size, int source)\",\"Create an initialization vector (IV)\"],mcrypt_decrypt:[\"string mcrypt_decrypt(string cipher, string key, string data, string mode, string iv)\",\"OFB crypt/decrypt data using key key with cipher cipher starting with iv\"],mcrypt_ecb:[\"string mcrypt_ecb(int cipher, string key, string data, int mode, string iv)\",\"ECB crypt/decrypt data using key key with cipher cipher starting with iv\"],mcrypt_enc_get_algorithms_name:[\"string mcrypt_enc_get_algorithms_name(resource td)\",\"Returns the name of the algorithm specified by the descriptor td\"],mcrypt_enc_get_block_size:[\"int mcrypt_enc_get_block_size(resource td)\",\"Returns the block size of the cipher specified by the descriptor td\"],mcrypt_enc_get_iv_size:[\"int mcrypt_enc_get_iv_size(resource td)\",\"Returns the size of the IV in bytes of the algorithm specified by the descriptor td\"],mcrypt_enc_get_key_size:[\"int mcrypt_enc_get_key_size(resource td)\",\"Returns the maximum supported key size in bytes of the algorithm specified by the descriptor td\"],mcrypt_enc_get_modes_name:[\"string mcrypt_enc_get_modes_name(resource td)\",\"Returns the name of the mode specified by the descriptor td\"],mcrypt_enc_get_supported_key_sizes:[\"array mcrypt_enc_get_supported_key_sizes(resource td)\",\"This function decrypts the crypttext\"],mcrypt_enc_is_block_algorithm:[\"bool mcrypt_enc_is_block_algorithm(resource td)\",\"Returns TRUE if the alrogithm is a block algorithms\"],mcrypt_enc_is_block_algorithm_mode:[\"bool mcrypt_enc_is_block_algorithm_mode(resource td)\",\"Returns TRUE if the mode is for use with block algorithms\"],mcrypt_enc_is_block_mode:[\"bool mcrypt_enc_is_block_mode(resource td)\",\"Returns TRUE if the mode outputs blocks\"],mcrypt_enc_self_test:[\"int mcrypt_enc_self_test(resource td)\",\"This function runs the self test on the algorithm specified by the descriptor td\"],mcrypt_encrypt:[\"string mcrypt_encrypt(string cipher, string key, string data, string mode, string iv)\",\"OFB crypt/decrypt data using key key with cipher cipher starting with iv\"],mcrypt_generic:[\"string mcrypt_generic(resource td, string data)\",\"This function encrypts the plaintext\"],mcrypt_generic_deinit:[\"bool mcrypt_generic_deinit(resource td)\",\"This function terminates encrypt specified by the descriptor td\"],mcrypt_generic_init:[\"int mcrypt_generic_init(resource td, string key, string iv)\",\"This function initializes all buffers for the specific module\"],mcrypt_get_block_size:[\"int mcrypt_get_block_size(string cipher, string module)\",\"Get the key size of cipher\"],mcrypt_get_cipher_name:[\"string mcrypt_get_cipher_name(string cipher)\",\"Get the key size of cipher\"],mcrypt_get_iv_size:[\"int mcrypt_get_iv_size(string cipher, string module)\",\"Get the IV size of cipher (Usually the same as the blocksize)\"],mcrypt_get_key_size:[\"int mcrypt_get_key_size(string cipher, string module)\",\"Get the key size of cipher\"],mcrypt_list_algorithms:[\"array mcrypt_list_algorithms([string lib_dir])\",'List all algorithms in \"module_dir\"'],mcrypt_list_modes:[\"array mcrypt_list_modes([string lib_dir])\",'List all modes \"module_dir\"'],mcrypt_module_close:[\"bool mcrypt_module_close(resource td)\",\"Free the descriptor td\"],mcrypt_module_get_algo_block_size:[\"int mcrypt_module_get_algo_block_size(string algorithm [, string lib_dir])\",\"Returns the block size of the algorithm\"],mcrypt_module_get_algo_key_size:[\"int mcrypt_module_get_algo_key_size(string algorithm [, string lib_dir])\",\"Returns the maximum supported key size of the algorithm\"],mcrypt_module_get_supported_key_sizes:[\"array mcrypt_module_get_supported_key_sizes(string algorithm [, string lib_dir])\",\"This function decrypts the crypttext\"],mcrypt_module_is_block_algorithm:[\"bool mcrypt_module_is_block_algorithm(string algorithm [, string lib_dir])\",\"Returns TRUE if the algorithm is a block algorithm\"],mcrypt_module_is_block_algorithm_mode:[\"bool mcrypt_module_is_block_algorithm_mode(string mode [, string lib_dir])\",\"Returns TRUE if the mode is for use with block algorithms\"],mcrypt_module_is_block_mode:[\"bool mcrypt_module_is_block_mode(string mode [, string lib_dir])\",\"Returns TRUE if the mode outputs blocks of bytes\"],mcrypt_module_open:[\"resource mcrypt_module_open(string cipher, string cipher_directory, string mode, string mode_directory)\",\"Opens the module of the algorithm and the mode to be used\"],mcrypt_module_self_test:[\"bool mcrypt_module_self_test(string algorithm [, string lib_dir])\",'Does a self test of the module \"module\"'],mcrypt_ofb:[\"string mcrypt_ofb(int cipher, string key, string data, int mode, string iv)\",\"OFB crypt/decrypt data using key key with cipher cipher starting with iv\"],md5:[\"string md5(string str, [ bool raw_output])\",\"Calculate the md5 hash of a string\"],md5_file:[\"string md5_file(string filename [, bool raw_output])\",\"Calculate the md5 hash of given filename\"],mdecrypt_generic:[\"string mdecrypt_generic(resource td, string data)\",\"This function decrypts the plaintext\"],memory_get_peak_usage:[\"int memory_get_peak_usage([real_usage])\",\"Returns the peak allocated by PHP memory\"],memory_get_usage:[\"int memory_get_usage([real_usage])\",\"Returns the allocated by PHP memory\"],metaphone:[\"string metaphone(string text[, int phones])\",\"Break english phrases down into their phonemes\"],method_exists:[\"bool method_exists(object object, string method)\",\"Checks if the class method exists\"],mhash:[\"string mhash(int hash, string data [, string key])\",\"Hash data with hash\"],mhash_count:[\"int mhash_count(void)\",\"Gets the number of available hashes\"],mhash_get_block_size:[\"int mhash_get_block_size(int hash)\",\"Gets the block size of hash\"],mhash_get_hash_name:[\"string mhash_get_hash_name(int hash)\",\"Gets the name of hash\"],mhash_keygen_s2k:[\"string mhash_keygen_s2k(int hash, string input_password, string salt, int bytes)\",\"Generates a key using hash functions\"],microtime:[\"mixed microtime([bool get_as_float])\",\"Returns either a string or a float containing the current time in seconds and microseconds\"],mime_content_type:[\"string mime_content_type(string filename|resource stream)\",\"Return content-type for file\"],min:[\"mixed min(mixed arg1 [, mixed arg2 [, mixed ...]])\",\"Return the lowest value in an array or a series of arguments\"],mkdir:[\"bool mkdir(string pathname [, int mode [, bool recursive [, resource context]]])\",\"Create a directory\"],mktime:[\"int mktime([int hour [, int min [, int sec [, int mon [, int day [, int year]]]]]])\",\"Get UNIX timestamp for a date\"],money_format:[\"string money_format(string format , float value)\",\"Convert monetary value(s) to string\"],move_uploaded_file:[\"bool move_uploaded_file(string path, string new_path)\",\"Move a file if and only if it was created by an upload\"],msg_get_queue:[\"resource msg_get_queue(int key [, int perms])\",\"Attach to a message queue\"],msg_queue_exists:[\"bool msg_queue_exists(int key)\",\"Check wether a message queue exists\"],msg_receive:[\"mixed msg_receive(resource queue, int desiredmsgtype, int &msgtype, int maxsize, mixed message [, bool unserialize=true [, int flags=0 [, int errorcode]]])\",\"Send a message of type msgtype (must be > 0) to a message queue\"],msg_remove_queue:[\"bool msg_remove_queue(resource queue)\",\"Destroy the queue\"],msg_send:[\"bool msg_send(resource queue, int msgtype, mixed message [, bool serialize=true [, bool blocking=true [, int errorcode]]])\",\"Send a message of type msgtype (must be > 0) to a message queue\"],msg_set_queue:[\"bool msg_set_queue(resource queue, array data)\",\"Set information for a message queue\"],msg_stat_queue:[\"array msg_stat_queue(resource queue)\",\"Returns information about a message queue\"],msgfmt_create:[\"MessageFormatter msgfmt_create( string $locale, string $pattern )\",\"* Create formatter.\"],msgfmt_format:[\"mixed msgfmt_format( MessageFormatter $nf, array $args )\",\"* Format a message.\"],msgfmt_format_message:[\"mixed msgfmt_format_message( string $locale, string $pattern, array $args )\",\"* Format a message.\"],msgfmt_get_error_code:[\"int msgfmt_get_error_code( MessageFormatter $nf )\",\"* Get formatter's last error code.\"],msgfmt_get_error_message:[\"string msgfmt_get_error_message( MessageFormatter $coll )\",\"* Get text description for formatter's last error code.\"],msgfmt_get_locale:[\"string msgfmt_get_locale(MessageFormatter $mf)\",\"* Get formatter locale.\"],msgfmt_get_pattern:[\"string msgfmt_get_pattern( MessageFormatter $mf )\",\"* Get formatter pattern.\"],msgfmt_parse:[\"array msgfmt_parse( MessageFormatter $nf, string $source )\",\"* Parse a message.\"],msgfmt_set_pattern:[\"bool msgfmt_set_pattern( MessageFormatter $mf, string $pattern )\",\"* Set formatter pattern.\"],mssql_bind:[\"bool mssql_bind(resource stmt, string param_name, mixed var, int type [, bool is_output [, bool is_null [, int maxlen]]])\",\"Adds a parameter to a stored procedure or a remote stored procedure\"],mssql_close:[\"bool mssql_close([resource conn_id])\",\"Closes a connection to a MS-SQL server\"],mssql_connect:[\"int mssql_connect([string servername [, string username [, string password [, bool new_link]]]])\",\"Establishes a connection to a MS-SQL server\"],mssql_data_seek:[\"bool mssql_data_seek(resource result_id, int offset)\",\"Moves the internal row pointer of the MS-SQL result associated with the specified result identifier to pointer to the specified row number\"],mssql_execute:[\"mixed mssql_execute(resource stmt [, bool skip_results = false])\",\"Executes a stored procedure on a MS-SQL server database\"],mssql_fetch_array:[\"array mssql_fetch_array(resource result_id [, int result_type])\",\"Returns an associative array of the current row in the result set specified by result_id\"],mssql_fetch_assoc:[\"array mssql_fetch_assoc(resource result_id)\",\"Returns an associative array of the current row in the result set specified by result_id\"],mssql_fetch_batch:[\"int mssql_fetch_batch(resource result_index)\",\"Returns the next batch of records\"],mssql_fetch_field:[\"object mssql_fetch_field(resource result_id [, int offset])\",\"Gets information about certain fields in a query result\"],mssql_fetch_object:[\"object mssql_fetch_object(resource result_id)\",\"Returns a pseudo-object of the current row in the result set specified by result_id\"],mssql_fetch_row:[\"array mssql_fetch_row(resource result_id)\",\"Returns an array of the current row in the result set specified by result_id\"],mssql_field_length:[\"int mssql_field_length(resource result_id [, int offset])\",\"Get the length of a MS-SQL field\"],mssql_field_name:[\"string mssql_field_name(resource result_id [, int offset])\",\"Returns the name of the field given by offset in the result set given by result_id\"],mssql_field_seek:[\"bool mssql_field_seek(resource result_id, int offset)\",\"Seeks to the specified field offset\"],mssql_field_type:[\"string mssql_field_type(resource result_id [, int offset])\",\"Returns the type of a field\"],mssql_free_result:[\"bool mssql_free_result(resource result_index)\",\"Free a MS-SQL result index\"],mssql_free_statement:[\"bool mssql_free_statement(resource result_index)\",\"Free a MS-SQL statement index\"],mssql_get_last_message:[\"string mssql_get_last_message(void)\",\"Gets the last message from the MS-SQL server\"],mssql_guid_string:[\"string mssql_guid_string(string binary [,bool short_format])\",\"Converts a 16 byte binary GUID to a string\"],mssql_init:[\"int mssql_init(string sp_name [, resource conn_id])\",\"Initializes a stored procedure or a remote stored procedure\"],mssql_min_error_severity:[\"void mssql_min_error_severity(int severity)\",\"Sets the lower error severity\"],mssql_min_message_severity:[\"void mssql_min_message_severity(int severity)\",\"Sets the lower message severity\"],mssql_next_result:[\"bool mssql_next_result(resource result_id)\",\"Move the internal result pointer to the next result\"],mssql_num_fields:[\"int mssql_num_fields(resource mssql_result_index)\",\"Returns the number of fields fetched in from the result id specified\"],mssql_num_rows:[\"int mssql_num_rows(resource mssql_result_index)\",\"Returns the number of rows fetched in from the result id specified\"],mssql_pconnect:[\"int mssql_pconnect([string servername [, string username [, string password [, bool new_link]]]])\",\"Establishes a persistent connection to a MS-SQL server\"],mssql_query:[\"resource mssql_query(string query [, resource conn_id [, int batch_size]])\",\"Perform an SQL query on a MS-SQL server database\"],mssql_result:[\"string mssql_result(resource result_id, int row, mixed field)\",\"Returns the contents of one cell from a MS-SQL result set\"],mssql_rows_affected:[\"int mssql_rows_affected(resource conn_id)\",\"Returns the number of records affected by the query\"],mssql_select_db:[\"bool mssql_select_db(string database_name [, resource conn_id])\",\"Select a MS-SQL database\"],mt_getrandmax:[\"int mt_getrandmax(void)\",\"Returns the maximum value a random number from Mersenne Twister can have\"],mt_rand:[\"int mt_rand([int min, int max])\",\"Returns a random number from Mersenne Twister\"],mt_srand:[\"void mt_srand([int seed])\",\"Seeds Mersenne Twister random number generator\"],mysql_affected_rows:[\"int mysql_affected_rows([int link_identifier])\",\"Gets number of affected rows in previous MySQL operation\"],mysql_client_encoding:[\"string mysql_client_encoding([int link_identifier])\",\"Returns the default character set for the current connection\"],mysql_close:[\"bool mysql_close([int link_identifier])\",\"Close a MySQL connection\"],mysql_connect:[\"resource mysql_connect([string hostname[:port][:/path/to/socket] [, string username [, string password [, bool new [, int flags]]]]])\",\"Opens a connection to a MySQL Server\"],mysql_create_db:[\"bool mysql_create_db(string database_name [, int link_identifier])\",\"Create a MySQL database\"],mysql_data_seek:[\"bool mysql_data_seek(resource result, int row_number)\",\"Move internal result pointer\"],mysql_db_query:[\"resource mysql_db_query(string database_name, string query [, int link_identifier])\",\"Sends an SQL query to MySQL\"],mysql_drop_db:[\"bool mysql_drop_db(string database_name [, int link_identifier])\",\"Drops (delete) a MySQL database\"],mysql_errno:[\"int mysql_errno([int link_identifier])\",\"Returns the number of the error message from previous MySQL operation\"],mysql_error:[\"string mysql_error([int link_identifier])\",\"Returns the text of the error message from previous MySQL operation\"],mysql_escape_string:[\"string mysql_escape_string(string to_be_escaped)\",\"Escape string for mysql query\"],mysql_fetch_array:[\"array mysql_fetch_array(resource result [, int result_type])\",\"Fetch a result row as an array (associative, numeric or both)\"],mysql_fetch_assoc:[\"array mysql_fetch_assoc(resource result)\",\"Fetch a result row as an associative array\"],mysql_fetch_field:[\"object mysql_fetch_field(resource result [, int field_offset])\",\"Gets column information from a result and return as an object\"],mysql_fetch_lengths:[\"array mysql_fetch_lengths(resource result)\",\"Gets max data size of each column in a result\"],mysql_fetch_object:[\"object mysql_fetch_object(resource result [, string class_name [, NULL|array ctor_params]])\",\"Fetch a result row as an object\"],mysql_fetch_row:[\"array mysql_fetch_row(resource result)\",\"Gets a result row as an enumerated array\"],mysql_field_flags:[\"string mysql_field_flags(resource result, int field_offset)\",\"Gets the flags associated with the specified field in a result\"],mysql_field_len:[\"int mysql_field_len(resource result, int field_offset)\",\"Returns the length of the specified field\"],mysql_field_name:[\"string mysql_field_name(resource result, int field_index)\",\"Gets the name of the specified field in a result\"],mysql_field_seek:[\"bool mysql_field_seek(resource result, int field_offset)\",\"Sets result pointer to a specific field offset\"],mysql_field_table:[\"string mysql_field_table(resource result, int field_offset)\",\"Gets name of the table the specified field is in\"],mysql_field_type:[\"string mysql_field_type(resource result, int field_offset)\",\"Gets the type of the specified field in a result\"],mysql_free_result:[\"bool mysql_free_result(resource result)\",\"Free result memory\"],mysql_get_client_info:[\"string mysql_get_client_info(void)\",\"Returns a string that represents the client library version\"],mysql_get_host_info:[\"string mysql_get_host_info([int link_identifier])\",\"Returns a string describing the type of connection in use, including the server host name\"],mysql_get_proto_info:[\"int mysql_get_proto_info([int link_identifier])\",\"Returns the protocol version used by current connection\"],mysql_get_server_info:[\"string mysql_get_server_info([int link_identifier])\",\"Returns a string that represents the server version number\"],mysql_info:[\"string mysql_info([int link_identifier])\",\"Returns a string containing information about the most recent query\"],mysql_insert_id:[\"int mysql_insert_id([int link_identifier])\",\"Gets the ID generated from the previous INSERT operation\"],mysql_list_dbs:[\"resource mysql_list_dbs([int link_identifier])\",\"List databases available on a MySQL server\"],mysql_list_fields:[\"resource mysql_list_fields(string database_name, string table_name [, int link_identifier])\",\"List MySQL result fields\"],mysql_list_processes:[\"resource mysql_list_processes([int link_identifier])\",\"Returns a result set describing the current server threads\"],mysql_list_tables:[\"resource mysql_list_tables(string database_name [, int link_identifier])\",\"List tables in a MySQL database\"],mysql_num_fields:[\"int mysql_num_fields(resource result)\",\"Gets number of fields in a result\"],mysql_num_rows:[\"int mysql_num_rows(resource result)\",\"Gets number of rows in a result\"],mysql_pconnect:[\"resource mysql_pconnect([string hostname[:port][:/path/to/socket] [, string username [, string password [, int flags]]]])\",\"Opens a persistent connection to a MySQL Server\"],mysql_ping:[\"bool mysql_ping([int link_identifier])\",\"Ping a server connection. If no connection then reconnect.\"],mysql_query:[\"resource mysql_query(string query [, int link_identifier])\",\"Sends an SQL query to MySQL\"],mysql_real_escape_string:[\"string mysql_real_escape_string(string to_be_escaped [, int link_identifier])\",\"Escape special characters in a string for use in a SQL statement, taking into account the current charset of the connection\"],mysql_result:[\"mixed mysql_result(resource result, int row [, mixed field])\",\"Gets result data\"],mysql_select_db:[\"bool mysql_select_db(string database_name [, int link_identifier])\",\"Selects a MySQL database\"],mysql_set_charset:[\"bool mysql_set_charset(string csname [, int link_identifier])\",\"sets client character set\"],mysql_stat:[\"string mysql_stat([int link_identifier])\",\"Returns a string containing status information\"],mysql_thread_id:[\"int mysql_thread_id([int link_identifier])\",\"Returns the thread id of current connection\"],mysql_unbuffered_query:[\"resource mysql_unbuffered_query(string query [, int link_identifier])\",\"Sends an SQL query to MySQL, without fetching and buffering the result rows\"],mysqli_affected_rows:[\"mixed mysqli_affected_rows(object link)\",\"Get number of affected rows in previous MySQL operation\"],mysqli_autocommit:[\"bool mysqli_autocommit(object link, bool mode)\",\"Turn auto commit on or of\"],mysqli_cache_stats:[\"array mysqli_cache_stats(void)\",\"Returns statistics about the zval cache\"],mysqli_change_user:[\"bool mysqli_change_user(object link, string user, string password, string database)\",\"Change logged-in user of the active connection\"],mysqli_character_set_name:[\"string mysqli_character_set_name(object link)\",\"Returns the name of the character set used for this connection\"],mysqli_close:[\"bool mysqli_close(object link)\",\"Close connection\"],mysqli_commit:[\"bool mysqli_commit(object link)\",\"Commit outstanding actions and close transaction\"],mysqli_connect:[\"object mysqli_connect([string hostname [,string username [,string passwd [,string dbname [,int port [,string socket]]]]]])\",\"Open a connection to a mysql server\"],mysqli_connect_errno:[\"int mysqli_connect_errno(void)\",\"Returns the numerical value of the error message from last connect command\"],mysqli_connect_error:[\"string mysqli_connect_error(void)\",\"Returns the text of the error message from previous MySQL operation\"],mysqli_data_seek:[\"bool mysqli_data_seek(object result, int offset)\",\"Move internal result pointer\"],mysqli_debug:[\"void mysqli_debug(string debug)\",\"\"],mysqli_dump_debug_info:[\"bool mysqli_dump_debug_info(object link)\",\"\"],mysqli_embedded_server_end:[\"void mysqli_embedded_server_end(void)\",\"\"],mysqli_embedded_server_start:[\"bool mysqli_embedded_server_start(bool start, array arguments, array groups)\",\"initialize and start embedded server\"],mysqli_errno:[\"int mysqli_errno(object link)\",\"Returns the numerical value of the error message from previous MySQL operation\"],mysqli_error:[\"string mysqli_error(object link)\",\"Returns the text of the error message from previous MySQL operation\"],mysqli_fetch_all:[\"mixed mysqli_fetch_all (object result [,int resulttype])\",\"Fetches all result rows as an associative array, a numeric array, or both\"],mysqli_fetch_array:[\"mixed mysqli_fetch_array (object result [,int resulttype])\",\"Fetch a result row as an associative array, a numeric array, or both\"],mysqli_fetch_assoc:[\"mixed mysqli_fetch_assoc (object result)\",\"Fetch a result row as an associative array\"],mysqli_fetch_field:[\"mixed mysqli_fetch_field (object result)\",\"Get column information from a result and return as an object\"],mysqli_fetch_field_direct:[\"mixed mysqli_fetch_field_direct (object result, int offset)\",\"Fetch meta-data for a single field\"],mysqli_fetch_fields:[\"mixed mysqli_fetch_fields (object result)\",\"Return array of objects containing field meta-data\"],mysqli_fetch_lengths:[\"mixed mysqli_fetch_lengths (object result)\",\"Get the length of each output in a result\"],mysqli_fetch_object:[\"mixed mysqli_fetch_object (object result [, string class_name [, NULL|array ctor_params]])\",\"Fetch a result row as an object\"],mysqli_fetch_row:[\"array mysqli_fetch_row (object result)\",\"Get a result row as an enumerated array\"],mysqli_field_count:[\"int mysqli_field_count(object link)\",\"Fetch the number of fields returned by the last query for the given link\"],mysqli_field_seek:[\"int mysqli_field_seek(object result, int fieldnr)\",\"Set result pointer to a specified field offset\"],mysqli_field_tell:[\"int mysqli_field_tell(object result)\",\"Get current field offset of result pointer\"],mysqli_free_result:[\"void mysqli_free_result(object result)\",\"Free query result memory for the given result handle\"],mysqli_get_charset:[\"object mysqli_get_charset(object link)\",\"returns a character set object\"],mysqli_get_client_info:[\"string mysqli_get_client_info(void)\",\"Get MySQL client info\"],mysqli_get_client_stats:[\"array mysqli_get_client_stats(void)\",\"Returns statistics about the zval cache\"],mysqli_get_client_version:[\"int mysqli_get_client_version(void)\",\"Get MySQL client info\"],mysqli_get_connection_stats:[\"array mysqli_get_connection_stats(void)\",\"Returns statistics about the zval cache\"],mysqli_get_host_info:[\"string mysqli_get_host_info (object link)\",\"Get MySQL host info\"],mysqli_get_proto_info:[\"int mysqli_get_proto_info(object link)\",\"Get MySQL protocol information\"],mysqli_get_server_info:[\"string mysqli_get_server_info(object link)\",\"Get MySQL server info\"],mysqli_get_server_version:[\"int mysqli_get_server_version(object link)\",\"Return the MySQL version for the server referenced by the given link\"],mysqli_get_warnings:[\"object mysqli_get_warnings(object link) */\",'PHP_FUNCTION(mysqli_get_warnings) {  MY_MYSQL   *mysql;  zval    *mysql_link;  MYSQLI_RESOURCE  *mysqli_resource;  MYSQLI_WARNING  *w;   if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), \"O\", &mysql_link, mysqli_link_class_entry) == FAILURE) {   return;  }  MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL*, &mysql_link, \"mysqli_link\", MYSQLI_STATUS_VALID);   if (mysql_warning_count(mysql->mysql)) {   w = php_get_warnings(mysql->mysql TSRMLS_CC);   } else {   RETURN_FALSE;  }  mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));  mysqli_resource->ptr = mysqli_resource->info = (void *)w;  mysqli_resource->status = MYSQLI_STATUS_VALID;  MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_warning_class_entry);  } /* }}}'],mysqli_info:[\"string mysqli_info(object link)\",\"Get information about the most recent query\"],mysqli_init:[\"resource mysqli_init(void)\",\"Initialize mysqli and return a resource for use with mysql_real_connect\"],mysqli_insert_id:[\"mixed mysqli_insert_id(object link)\",\"Get the ID generated from the previous INSERT operation\"],mysqli_kill:[\"bool mysqli_kill(object link, int processid)\",\"Kill a mysql process on the server\"],mysqli_link_construct:[\"object mysqli_link_construct()\",\"\"],mysqli_more_results:[\"bool mysqli_more_results(object link)\",\"check if there any more query results from a multi query\"],mysqli_multi_query:[\"bool mysqli_multi_query(object link, string query)\",\"allows to execute multiple queries\"],mysqli_next_result:[\"bool mysqli_next_result(object link)\",\"read next result from multi_query\"],mysqli_num_fields:[\"int mysqli_num_fields(object result)\",\"Get number of fields in result\"],mysqli_num_rows:[\"mixed mysqli_num_rows(object result)\",\"Get number of rows in result\"],mysqli_options:[\"bool mysqli_options(object link, int flags, mixed values)\",\"Set options\"],mysqli_ping:[\"bool mysqli_ping(object link)\",\"Ping a server connection or reconnect if there is no connection\"],mysqli_poll:[\"int mysqli_poll(array read, array write, array error, long sec [, long usec])\",\"Poll connections\"],mysqli_prepare:[\"mixed mysqli_prepare(object link, string query)\",\"Prepare a SQL statement for execution\"],mysqli_query:[\"mixed mysqli_query(object link, string query [,int resultmode]) */\",'PHP_FUNCTION(mysqli_query) {  MY_MYSQL   *mysql;  zval    *mysql_link;  MYSQLI_RESOURCE  *mysqli_resource;  MYSQL_RES    *result;  char    *query = NULL;  unsigned int   query_len;  unsigned long   resultmode = MYSQLI_STORE_RESULT;   if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), \"Os|l\", &mysql_link, mysqli_link_class_entry, &query, &query_len, &resultmode) == FAILURE) {   return;  }   if (!query_len) {   php_error_docref(NULL TSRMLS_CC, E_WARNING, \"Empty query\");   RETURN_FALSE;  }  if ((resultmode & ~MYSQLI_ASYNC) != MYSQLI_USE_RESULT && (resultmode & ~MYSQLI_ASYNC) != MYSQLI_STORE_RESULT) {   php_error_docref(NULL TSRMLS_CC, E_WARNING, \"Invalid value for resultmode\");   RETURN_FALSE;  }   MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL*, &mysql_link, \"mysqli_link\", MYSQLI_STATUS_VALID);   MYSQLI_DISABLE_MQ;   #ifdef MYSQLI_USE_MYSQLND  if (resultmode & MYSQLI_ASYNC) {   if (mysqli_async_query(mysql->mysql, query, query_len)) {    MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);    RETURN_FALSE;   }   mysql->async_result_fetch_type = resultmode & ~MYSQLI_ASYNC;   RETURN_TRUE;  } #endif   if (mysql_real_query(mysql->mysql, query, query_len)) {   MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);   RETURN_FALSE;  }   if (!mysql_field_count(mysql->mysql)) {   /* no result set - not a SELECT'],mysqli_real_connect:[\"bool mysqli_real_connect(object link [,string hostname [,string username [,string passwd [,string dbname [,int port [,string socket [,int flags]]]]]]])\",\"Open a connection to a mysql server\"],mysqli_real_escape_string:[\"string mysqli_real_escape_string(object link, string escapestr)\",\"Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection\"],mysqli_real_query:[\"bool mysqli_real_query(object link, string query)\",\"Binary-safe version of mysql_query()\"],mysqli_reap_async_query:[\"int mysqli_reap_async_query(object link)\",\"Poll connections\"],mysqli_refresh:[\"bool mysqli_refresh(object link, long options)\",\"Flush tables or caches, or reset replication server information\"],mysqli_report:[\"bool mysqli_report(int flags)\",\"sets report level\"],mysqli_rollback:[\"bool mysqli_rollback(object link)\",\"Undo actions from current transaction\"],mysqli_select_db:[\"bool mysqli_select_db(object link, string dbname)\",\"Select a MySQL database\"],mysqli_set_charset:[\"bool mysqli_set_charset(object link, string csname)\",\"sets client character set\"],mysqli_set_local_infile_default:[\"void mysqli_set_local_infile_default(object link)\",\"unsets user defined handler for load local infile command\"],mysqli_set_local_infile_handler:[\"bool mysqli_set_local_infile_handler(object link, callback read_func)\",\"Set callback functions for LOAD DATA LOCAL INFILE\"],mysqli_sqlstate:[\"string mysqli_sqlstate(object link)\",\"Returns the SQLSTATE error from previous MySQL operation\"],mysqli_ssl_set:[\"bool mysqli_ssl_set(object link ,string key ,string cert ,string ca ,string capath ,string cipher])\",\"\"],mysqli_stat:[\"mixed mysqli_stat(object link)\",\"Get current system status\"],mysqli_stmt_affected_rows:[\"mixed mysqli_stmt_affected_rows(object stmt)\",\"Return the number of rows affected in the last query for the given link\"],mysqli_stmt_attr_get:[\"int mysqli_stmt_attr_get(object stmt, long attr)\",\"\"],mysqli_stmt_attr_set:[\"int mysqli_stmt_attr_set(object stmt, long attr, long mode)\",\"\"],mysqli_stmt_bind_param:[\"bool mysqli_stmt_bind_param(object stmt, string types, mixed variable [,mixed,....])\",\"Bind variables to a prepared statement as parameters\"],mysqli_stmt_bind_result:[\"bool mysqli_stmt_bind_result(object stmt, mixed var, [,mixed, ...])\",\"Bind variables to a prepared statement for result storage\"],mysqli_stmt_close:[\"bool mysqli_stmt_close(object stmt)\",\"Close statement\"],mysqli_stmt_data_seek:[\"void mysqli_stmt_data_seek(object stmt, int offset)\",\"Move internal result pointer\"],mysqli_stmt_errno:[\"int mysqli_stmt_errno(object stmt)\",\"\"],mysqli_stmt_error:[\"string mysqli_stmt_error(object stmt)\",\"\"],mysqli_stmt_execute:[\"bool mysqli_stmt_execute(object stmt)\",\"Execute a prepared statement\"],mysqli_stmt_fetch:[\"mixed mysqli_stmt_fetch(object stmt)\",\"Fetch results from a prepared statement into the bound variables\"],mysqli_stmt_field_count:[\"int mysqli_stmt_field_count(object stmt) {\",\"Return the number of result columns for the given statement\"],mysqli_stmt_free_result:[\"void mysqli_stmt_free_result(object stmt)\",\"Free stored result memory for the given statement handle\"],mysqli_stmt_get_result:[\"object mysqli_stmt_get_result(object link)\",\"Buffer result set on client\"],mysqli_stmt_get_warnings:[\"object mysqli_stmt_get_warnings(object link) */\",'PHP_FUNCTION(mysqli_stmt_get_warnings) {  MY_STMT    *stmt;  zval    *stmt_link;  MYSQLI_RESOURCE  *mysqli_resource;  MYSQLI_WARNING  *w;   if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), \"O\", &stmt_link, mysqli_stmt_class_entry) == FAILURE) {   return;  }  MYSQLI_FETCH_RESOURCE(stmt, MY_STMT*, &stmt_link, \"mysqli_stmt\", MYSQLI_STATUS_VALID);   if (mysqli_stmt_warning_count(stmt->stmt)) {   w = php_get_warnings(mysqli_stmt_get_connection(stmt->stmt) TSRMLS_CC);   } else {   RETURN_FALSE;  }  mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));  mysqli_resource->ptr = mysqli_resource->info = (void *)w;  mysqli_resource->status = MYSQLI_STATUS_VALID;  MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_warning_class_entry); } /* }}}'],mysqli_stmt_init:[\"mixed mysqli_stmt_init(object link)\",\"Initialize statement object\"],mysqli_stmt_insert_id:[\"mixed mysqli_stmt_insert_id(object stmt)\",\"Get the ID generated from the previous INSERT operation\"],mysqli_stmt_next_result:[\"bool mysqli_stmt_next_result(object link)\",\"read next result from multi_query\"],mysqli_stmt_num_rows:[\"mixed mysqli_stmt_num_rows(object stmt)\",\"Return the number of rows in statements result set\"],mysqli_stmt_param_count:[\"int mysqli_stmt_param_count(object stmt)\",\"Return the number of parameter for the given statement\"],mysqli_stmt_prepare:[\"bool mysqli_stmt_prepare(object stmt, string query)\",\"prepare server side statement with query\"],mysqli_stmt_reset:[\"bool mysqli_stmt_reset(object stmt)\",\"reset a prepared statement\"],mysqli_stmt_result_metadata:[\"mixed mysqli_stmt_result_metadata(object stmt)\",\"return result set from statement\"],mysqli_stmt_send_long_data:[\"bool mysqli_stmt_send_long_data(object stmt, int param_nr, string data)\",\"\"],mysqli_stmt_sqlstate:[\"string mysqli_stmt_sqlstate(object stmt)\",\"\"],mysqli_stmt_store_result:[\"bool mysqli_stmt_store_result(stmt)\",\"\"],mysqli_store_result:[\"object mysqli_store_result(object link)\",\"Buffer result set on client\"],mysqli_thread_id:[\"int mysqli_thread_id(object link)\",\"Return the current thread ID\"],mysqli_thread_safe:[\"bool mysqli_thread_safe(void)\",\"Return whether thread safety is given or not\"],mysqli_use_result:[\"mixed mysqli_use_result(object link)\",\"Directly retrieve query results - do not buffer results on client side\"],mysqli_warning_count:[\"int mysqli_warning_count (object link)\",\"Return number of warnings from the last query for the given link\"],natcasesort:[\"void natcasesort(array &array_arg)\",\"Sort an array using case-insensitive natural sort\"],natsort:[\"void natsort(array &array_arg)\",\"Sort an array using natural sort\"],next:[\"mixed next(array array_arg)\",\"Move array argument's internal pointer to the next element and return it\"],ngettext:[\"string ngettext(string MSGID1, string MSGID2, int N)\",\"Plural version of gettext()\"],nl2br:[\"string nl2br(string str [, bool is_xhtml])\",\"Converts newlines to HTML line breaks\"],nl_langinfo:[\"string nl_langinfo(int item)\",\"Query language and locale information\"],normalizer_is_normalize:[\"bool normalizer_is_normalize( string $input [, string $form = FORM_C] )\",\"* Test if a string is in a given normalization form.\"],normalizer_normalize:[\"string normalizer_normalize( string $input [, string $form = FORM_C] )\",\"* Normalize a string.\"],nsapi_request_headers:[\"array nsapi_request_headers(void)\",\"Get all headers from the request\"],nsapi_response_headers:[\"array nsapi_response_headers(void)\",\"Get all headers from the response\"],nsapi_virtual:[\"bool nsapi_virtual(string uri)\",\"Perform an NSAPI sub-request\"],number_format:[\"string number_format(float number [, int num_decimal_places [, string dec_seperator, string thousands_seperator]])\",\"Formats a number with grouped thousands\"],numfmt_create:[\"NumberFormatter numfmt_create( string $locale, int style[, string $pattern ] )\",\"* Create number formatter.\"],numfmt_format:[\"mixed numfmt_format( NumberFormatter $nf, mixed $num[, int type] )\",\"* Format a number.\"],numfmt_format_currency:[\"mixed numfmt_format_currency( NumberFormatter $nf, double $num, string $currency )\",\"* Format a number as currency.\"],numfmt_get_attribute:[\"mixed numfmt_get_attribute( NumberFormatter $nf, int $attr )\",\"* Get formatter attribute value.\"],numfmt_get_error_code:[\"int numfmt_get_error_code( NumberFormatter $nf )\",\"* Get formatter's last error code.\"],numfmt_get_error_message:[\"string numfmt_get_error_message( NumberFormatter $nf )\",\"* Get text description for formatter's last error code.\"],numfmt_get_locale:[\"string numfmt_get_locale( NumberFormatter $nf[, int type] )\",\"* Get formatter locale.\"],numfmt_get_pattern:[\"string numfmt_get_pattern( NumberFormatter $nf )\",\"* Get formatter pattern.\"],numfmt_get_symbol:[\"string numfmt_get_symbol( NumberFormatter $nf, int $attr )\",\"* Get formatter symbol value.\"],numfmt_get_text_attribute:[\"string numfmt_get_text_attribute( NumberFormatter $nf, int $attr )\",\"* Get formatter attribute value.\"],numfmt_parse:[\"mixed numfmt_parse( NumberFormatter $nf, string $str[, int $type, int &$position ])\",\"* Parse a number.\"],numfmt_parse_currency:[\"double numfmt_parse_currency( NumberFormatter $nf, string $str, string $&currency[, int $&position] )\",\"* Parse a number as currency.\"],numfmt_parse_message:[\"array numfmt_parse_message( string $locale, string $pattern, string $source )\",\"* Parse a message.\"],numfmt_set_attribute:[\"bool numfmt_set_attribute( NumberFormatter $nf, int $attr, mixed $value )\",\"* Get formatter attribute value.\"],numfmt_set_pattern:[\"bool numfmt_set_pattern( NumberFormatter $nf, string $pattern )\",\"* Set formatter pattern.\"],numfmt_set_symbol:[\"bool numfmt_set_symbol( NumberFormatter $nf, int $attr, string $symbol )\",\"* Set formatter symbol value.\"],numfmt_set_text_attribute:[\"bool numfmt_set_text_attribute( NumberFormatter $nf, int $attr, string $value )\",\"* Get formatter attribute value.\"],ob_clean:[\"bool ob_clean(void)\",\"Clean (delete) the current output buffer\"],ob_end_clean:[\"bool ob_end_clean(void)\",\"Clean the output buffer, and delete current output buffer\"],ob_end_flush:[\"bool ob_end_flush(void)\",\"Flush (send) the output buffer, and delete current output buffer\"],ob_flush:[\"bool ob_flush(void)\",\"Flush (send) contents of the output buffer. The last buffer content is sent to next buffer\"],ob_get_clean:[\"bool ob_get_clean(void)\",\"Get current buffer contents and delete current output buffer\"],ob_get_contents:[\"string ob_get_contents(void)\",\"Return the contents of the output buffer\"],ob_get_flush:[\"bool ob_get_flush(void)\",\"Get current buffer contents, flush (send) the output buffer, and delete current output buffer\"],ob_get_length:[\"int ob_get_length(void)\",\"Return the length of the output buffer\"],ob_get_level:[\"int ob_get_level(void)\",\"Return the nesting level of the output buffer\"],ob_get_status:[\"false|array ob_get_status([bool full_status])\",\"Return the status of the active or all output buffers\"],ob_gzhandler:[\"string ob_gzhandler(string str, int mode)\",\"Encode str based on accept-encoding setting - designed to be called from ob_start()\"],ob_iconv_handler:[\"string ob_iconv_handler(string contents, int status)\",\"Returns str in output buffer converted to the iconv.output_encoding character set\"],ob_implicit_flush:[\"void ob_implicit_flush([int flag])\",\"Turn implicit flush on/off and is equivalent to calling flush() after every output call\"],ob_list_handlers:[\"false|array ob_list_handlers()\",\"*  List all output_buffers in an array\"],ob_start:[\"bool ob_start([ string|array user_function [, int chunk_size [, bool erase]]])\",\"Turn on Output Buffering (specifying an optional output handler).\"],oci_bind_array_by_name:[\"bool oci_bind_array_by_name(resource stmt, string name, array &var, int max_table_length [, int max_item_length [, int type ]])\",\"Bind a PHP array to an Oracle PL/SQL type by name\"],oci_bind_by_name:[\"bool oci_bind_by_name(resource stmt, string name, mixed &var, [, int maxlength [, int type]])\",\"Bind a PHP variable to an Oracle placeholder by name\"],oci_cancel:[\"bool oci_cancel(resource stmt)\",\"Cancel reading from a cursor\"],oci_close:[\"bool oci_close(resource connection)\",\"Disconnect from database\"],oci_collection_append:[\"bool oci_collection_append(string value)\",\"Append an object to the collection\"],oci_collection_assign:[\"bool oci_collection_assign(object from)\",\"Assign a collection from another existing collection\"],oci_collection_element_assign:[\"bool oci_collection_element_assign(int index, string val)\",\"Assign element val to collection at index ndx\"],oci_collection_element_get:[\"string oci_collection_element_get(int ndx)\",\"Retrieve the value at collection index ndx\"],oci_collection_max:[\"int oci_collection_max()\",\"Return the max value of a collection. For a varray this is the maximum length of the array\"],oci_collection_size:[\"int oci_collection_size()\",\"Return the size of a collection\"],oci_collection_trim:[\"bool oci_collection_trim(int num)\",\"Trim num elements from the end of a collection\"],oci_commit:[\"bool oci_commit(resource connection)\",\"Commit the current context\"],oci_connect:[\"resource oci_connect(string user, string pass [, string db [, string charset [, int session_mode ]])\",\"Connect to an Oracle database and log on. Returns a new session.\"],oci_define_by_name:[\"bool oci_define_by_name(resource stmt, string name, mixed &var [, int type])\",\"Define a PHP variable to an Oracle column by name\"],oci_error:[\"array oci_error([resource stmt|connection|global])\",\"Return the last error of stmt|connection|global. If no error happened returns false.\"],oci_execute:[\"bool oci_execute(resource stmt [, int mode])\",\"Execute a parsed statement\"],oci_fetch:[\"bool oci_fetch(resource stmt)\",\"Prepare a new row of data for reading\"],oci_fetch_all:[\"int oci_fetch_all(resource stmt, array &output[, int skip[, int maxrows[, int flags]]])\",\"Fetch all rows of result data into an array\"],oci_fetch_array:[\"array oci_fetch_array( resource stmt [, int mode ])\",\"Fetch a result row as an array\"],oci_fetch_assoc:[\"array oci_fetch_assoc( resource stmt )\",\"Fetch a result row as an associative array\"],oci_fetch_object:[\"object oci_fetch_object( resource stmt )\",\"Fetch a result row as an object\"],oci_fetch_row:[\"array oci_fetch_row( resource stmt )\",\"Fetch a result row as an enumerated array\"],oci_field_is_null:[\"bool oci_field_is_null(resource stmt, int col)\",\"Tell whether a column is NULL\"],oci_field_name:[\"string oci_field_name(resource stmt, int col)\",\"Tell the name of a column\"],oci_field_precision:[\"int oci_field_precision(resource stmt, int col)\",\"Tell the precision of a column\"],oci_field_scale:[\"int oci_field_scale(resource stmt, int col)\",\"Tell the scale of a column\"],oci_field_size:[\"int oci_field_size(resource stmt, int col)\",\"Tell the maximum data size of a column\"],oci_field_type:[\"mixed oci_field_type(resource stmt, int col)\",\"Tell the data type of a column\"],oci_field_type_raw:[\"int oci_field_type_raw(resource stmt, int col)\",\"Tell the raw oracle data type of a column\"],oci_free_collection:[\"bool oci_free_collection()\",\"Deletes collection object\"],oci_free_descriptor:[\"bool oci_free_descriptor()\",\"Deletes large object description\"],oci_free_statement:[\"bool oci_free_statement(resource stmt)\",\"Free all resources associated with a statement\"],oci_internal_debug:[\"void oci_internal_debug(int onoff)\",\"Toggle internal debugging output for the OCI extension\"],oci_lob_append:[\"bool oci_lob_append( object lob )\",\"Appends data from a LOB to another LOB\"],oci_lob_close:[\"bool oci_lob_close()\",\"Closes lob descriptor\"],oci_lob_copy:[\"bool oci_lob_copy( object lob_to, object lob_from [, int length ] )\",\"Copies data from a LOB to another LOB\"],oci_lob_eof:[\"bool oci_lob_eof()\",\"Checks if EOF is reached\"],oci_lob_erase:[\"int oci_lob_erase( [ int offset [, int length ] ] )\",\"Erases a specified portion of the internal LOB, starting at a specified offset\"],oci_lob_export:[\"bool oci_lob_export([string filename [, int start [, int length]]])\",\"Writes a large object into a file\"],oci_lob_flush:[\"bool oci_lob_flush( [ int flag ] )\",\"Flushes the LOB buffer\"],oci_lob_import:[\"bool oci_lob_import( string filename )\",\"Loads file into a LOB\"],oci_lob_is_equal:[\"bool oci_lob_is_equal( object lob1, object lob2 )\",\"Tests to see if two LOB/FILE locators are equal\"],oci_lob_load:[\"string oci_lob_load()\",\"Loads a large object\"],oci_lob_read:[\"string oci_lob_read( int length )\",\"Reads particular part of a large object\"],oci_lob_rewind:[\"bool oci_lob_rewind()\",\"Rewind pointer of a LOB\"],oci_lob_save:[\"bool oci_lob_save( string data [, int offset ])\",\"Saves a large object\"],oci_lob_seek:[\"bool oci_lob_seek( int offset [, int whence ])\",\"Moves the pointer of a LOB\"],oci_lob_size:[\"int oci_lob_size()\",\"Returns size of a large object\"],oci_lob_tell:[\"int oci_lob_tell()\",\"Tells LOB pointer position\"],oci_lob_truncate:[\"bool oci_lob_truncate( [ int length ])\",\"Truncates a LOB\"],oci_lob_write:[\"int oci_lob_write( string string [, int length ])\",\"Writes data to current position of a LOB\"],oci_lob_write_temporary:[\"bool oci_lob_write_temporary(string var [, int lob_type])\",\"Writes temporary blob\"],oci_new_collection:[\"object oci_new_collection(resource connection, string tdo [, string schema])\",\"Initialize a new collection\"],oci_new_connect:[\"resource oci_new_connect(string user, string pass [, string db])\",\"Connect to an Oracle database and log on. Returns a new session.\"],oci_new_cursor:[\"resource oci_new_cursor(resource connection)\",\"Return a new cursor (Statement-Handle) - use this to bind ref-cursors!\"],oci_new_descriptor:[\"object oci_new_descriptor(resource connection [, int type])\",\"Initialize a new empty descriptor LOB/FILE (LOB is default)\"],oci_num_fields:[\"int oci_num_fields(resource stmt)\",\"Return the number of result columns in a statement\"],oci_num_rows:[\"int oci_num_rows(resource stmt)\",\"Return the row count of an OCI statement\"],oci_parse:[\"resource oci_parse(resource connection, string query)\",\"Parse a query and return a statement\"],oci_password_change:[\"bool oci_password_change(resource connection, string username, string old_password, string new_password)\",\"Changes the password of an account\"],oci_pconnect:[\"resource oci_pconnect(string user, string pass [, string db [, string charset ]])\",\"Connect to an Oracle database using a persistent connection and log on. Returns a new session.\"],oci_result:[\"string oci_result(resource stmt, mixed column)\",\"Return a single column of result data\"],oci_rollback:[\"bool oci_rollback(resource connection)\",\"Rollback the current context\"],oci_server_version:[\"string oci_server_version(resource connection)\",\"Return a string containing server version information\"],oci_set_action:[\"bool oci_set_action(resource connection, string value)\",\"Sets the action attribute on the connection\"],oci_set_client_identifier:[\"bool oci_set_client_identifier(resource connection, string value)\",\"Sets the client identifier attribute on the connection\"],oci_set_client_info:[\"bool oci_set_client_info(resource connection, string value)\",\"Sets the client info attribute on the connection\"],oci_set_edition:[\"bool oci_set_edition(string value)\",\"Sets the edition attribute for all subsequent connections created\"],oci_set_module_name:[\"bool oci_set_module_name(resource connection, string value)\",\"Sets the module attribute on the connection\"],oci_set_prefetch:[\"bool oci_set_prefetch(resource stmt, int prefetch_rows)\",\"Sets the number of rows to be prefetched on execute to prefetch_rows for stmt\"],oci_statement_type:[\"string oci_statement_type(resource stmt)\",\"Return the query type of an OCI statement\"],ocifetchinto:[\"int ocifetchinto(resource stmt, array &output [, int mode])\",\"Fetch a row of result data into an array\"],ocigetbufferinglob:[\"bool ocigetbufferinglob()\",\"Returns current state of buffering for a LOB\"],ocisetbufferinglob:[\"bool ocisetbufferinglob( boolean flag )\",\"Enables/disables buffering for a LOB\"],octdec:[\"int octdec(string octal_number)\",\"Returns the decimal equivalent of an octal string\"],odbc_autocommit:[\"mixed odbc_autocommit(resource connection_id [, int OnOff])\",\"Toggle autocommit mode or get status\"],odbc_binmode:[\"bool odbc_binmode(int result_id, int mode)\",\"Handle binary column data\"],odbc_close:[\"void odbc_close(resource connection_id)\",\"Close an ODBC connection\"],odbc_close_all:[\"void odbc_close_all(void)\",\"Close all ODBC connections\"],odbc_columnprivileges:[\"resource odbc_columnprivileges(resource connection_id, string catalog, string schema, string table, string column)\",\"Returns a result identifier that can be used to fetch a list of columns and associated privileges for the specified table\"],odbc_columns:[\"resource odbc_columns(resource connection_id [, string qualifier [, string owner [, string table_name [, string column_name]]]])\",\"Returns a result identifier that can be used to fetch a list of column names in specified tables\"],odbc_commit:[\"bool odbc_commit(resource connection_id)\",\"Commit an ODBC transaction\"],odbc_connect:[\"resource odbc_connect(string DSN, string user, string password [, int cursor_option])\",\"Connect to a datasource\"],odbc_cursor:[\"string odbc_cursor(resource result_id)\",\"Get cursor name\"],odbc_data_source:[\"array odbc_data_source(resource connection_id, int fetch_type)\",\"Return information about the currently connected data source\"],odbc_error:[\"string odbc_error([resource connection_id])\",\"Get the last error code\"],odbc_errormsg:[\"string odbc_errormsg([resource connection_id])\",\"Get the last error message\"],odbc_exec:[\"resource odbc_exec(resource connection_id, string query [, int flags])\",\"Prepare and execute an SQL statement\"],odbc_execute:[\"bool odbc_execute(resource result_id [, array parameters_array])\",\"Execute a prepared statement\"],odbc_fetch_array:[\"array odbc_fetch_array(int result [, int rownumber])\",\"Fetch a result row as an associative array\"],odbc_fetch_into:[\"int odbc_fetch_into(resource result_id, array &result_array, [, int rownumber])\",\"Fetch one result row into an array\"],odbc_fetch_object:[\"object odbc_fetch_object(int result [, int rownumber])\",\"Fetch a result row as an object\"],odbc_fetch_row:[\"bool odbc_fetch_row(resource result_id [, int row_number])\",\"Fetch a row\"],odbc_field_len:[\"int odbc_field_len(resource result_id, int field_number)\",\"Get the length (precision) of a column\"],odbc_field_name:[\"string odbc_field_name(resource result_id, int field_number)\",\"Get a column name\"],odbc_field_num:[\"int odbc_field_num(resource result_id, string field_name)\",\"Return column number\"],odbc_field_scale:[\"int odbc_field_scale(resource result_id, int field_number)\",\"Get the scale of a column\"],odbc_field_type:[\"string odbc_field_type(resource result_id, int field_number)\",\"Get the datatype of a column\"],odbc_foreignkeys:[\"resource odbc_foreignkeys(resource connection_id, string pk_qualifier, string pk_owner, string pk_table, string fk_qualifier, string fk_owner, string fk_table)\",\"Returns a result identifier to either a list of foreign keys in the specified table or a list of foreign keys in other tables that refer to the primary key in the specified table\"],odbc_free_result:[\"bool odbc_free_result(resource result_id)\",\"Free resources associated with a result\"],odbc_gettypeinfo:[\"resource odbc_gettypeinfo(resource connection_id [, int data_type])\",\"Returns a result identifier containing information about data types supported by the data source\"],odbc_longreadlen:[\"bool odbc_longreadlen(int result_id, int length)\",\"Handle LONG columns\"],odbc_next_result:[\"bool odbc_next_result(resource result_id)\",\"Checks if multiple results are avaiable\"],odbc_num_fields:[\"int odbc_num_fields(resource result_id)\",\"Get number of columns in a result\"],odbc_num_rows:[\"int odbc_num_rows(resource result_id)\",\"Get number of rows in a result\"],odbc_pconnect:[\"resource odbc_pconnect(string DSN, string user, string password [, int cursor_option])\",\"Establish a persistent connection to a datasource\"],odbc_prepare:[\"resource odbc_prepare(resource connection_id, string query)\",\"Prepares a statement for execution\"],odbc_primarykeys:[\"resource odbc_primarykeys(resource connection_id, string qualifier, string owner, string table)\",\"Returns a result identifier listing the column names that comprise the primary key for a table\"],odbc_procedurecolumns:[\"resource odbc_procedurecolumns(resource connection_id [, string qualifier, string owner, string proc, string column])\",\"Returns a result identifier containing the list of input and output parameters, as well as the columns that make up the result set for the specified procedures\"],odbc_procedures:[\"resource odbc_procedures(resource connection_id [, string qualifier, string owner, string name])\",\"Returns a result identifier containg the list of procedure names in a datasource\"],odbc_result:[\"mixed odbc_result(resource result_id, mixed field)\",\"Get result data\"],odbc_result_all:[\"int odbc_result_all(resource result_id [, string format])\",\"Print result as HTML table\"],odbc_rollback:[\"bool odbc_rollback(resource connection_id)\",\"Rollback a transaction\"],odbc_setoption:[\"bool odbc_setoption(resource conn_id|result_id, int which, int option, int value)\",\"Sets connection or statement options\"],odbc_specialcolumns:[\"resource odbc_specialcolumns(resource connection_id, int type, string qualifier, string owner, string table, int scope, int nullable)\",\"Returns a result identifier containing either the optimal set of columns that uniquely identifies a row in the table or columns that are automatically updated when any value in the row is updated by a transaction\"],odbc_statistics:[\"resource odbc_statistics(resource connection_id, string qualifier, string owner, string name, int unique, int accuracy)\",\"Returns a result identifier that contains statistics about a single table and the indexes associated with the table\"],odbc_tableprivileges:[\"resource odbc_tableprivileges(resource connection_id, string qualifier, string owner, string name)\",\"Returns a result identifier containing a list of tables and the privileges associated with each table\"],odbc_tables:[\"resource odbc_tables(resource connection_id [, string qualifier [, string owner [, string name [, string table_types]]]])\",\"Call the SQLTables function\"],opendir:[\"mixed opendir(string path[, resource context])\",\"Open a directory and return a dir_handle\"],openlog:[\"bool openlog(string ident, int option, int facility)\",\"Open connection to system logger\"],openssl_csr_export:[\"bool openssl_csr_export(resource csr, string &out [, bool notext=true])\",\"Exports a CSR to file or a var\"],openssl_csr_export_to_file:[\"bool openssl_csr_export_to_file(resource csr, string outfilename [, bool notext=true])\",\"Exports a CSR to file\"],openssl_csr_get_public_key:[\"mixed openssl_csr_get_public_key(mixed csr)\",\"Returns the subject of a CERT or FALSE on error\"],openssl_csr_get_subject:[\"mixed openssl_csr_get_subject(mixed csr)\",\"Returns the subject of a CERT or FALSE on error\"],openssl_csr_new:[\"bool openssl_csr_new(array dn, resource &privkey [, array configargs [, array extraattribs]])\",\"Generates a privkey and CSR\"],openssl_csr_sign:[\"resource openssl_csr_sign(mixed csr, mixed x509, mixed priv_key, long days [, array config_args [, long serial]])\",\"Signs a cert with another CERT\"],openssl_decrypt:[\"string openssl_decrypt(string data, string method, string password [, bool raw_input=false])\",\"Takes raw or base64 encoded string and dectupt it using given method and key\"],openssl_dh_compute_key:[\"string openssl_dh_compute_key(string pub_key, resource dh_key)\",\"Computes shared sicret for public value of remote DH key and local DH key\"],openssl_digest:[\"string openssl_digest(string data, string method [, bool raw_output=false])\",\"Computes digest hash value for given data using given method, returns raw or binhex encoded string\"],openssl_encrypt:[\"string openssl_encrypt(string data, string method, string password [, bool raw_output=false])\",\"Encrypts given data with given method and key, returns raw or base64 encoded string\"],openssl_error_string:[\"mixed openssl_error_string(void)\",\"Returns a description of the last error, and alters the index of the error messages. Returns false when the are no more messages\"],openssl_get_cipher_methods:[\"array openssl_get_cipher_methods([bool aliases = false])\",\"Return array of available cipher methods\"],openssl_get_md_methods:[\"array openssl_get_md_methods([bool aliases = false])\",\"Return array of available digest methods\"],openssl_open:[\"bool openssl_open(string data, &string opendata, string ekey, mixed privkey)\",\"Opens data\"],openssl_pkcs12_export:[\"bool openssl_pkcs12_export(mixed x509, string &out, mixed priv_key, string pass[, array args])\",\"Creates and exports a PKCS12 to a var\"],openssl_pkcs12_export_to_file:[\"bool openssl_pkcs12_export_to_file(mixed x509, string filename, mixed priv_key, string pass[, array args])\",\"Creates and exports a PKCS to file\"],openssl_pkcs12_read:[\"bool openssl_pkcs12_read(string PKCS12, array &certs, string pass)\",\"Parses a PKCS12 to an array\"],openssl_pkcs7_decrypt:[\"bool openssl_pkcs7_decrypt(string infilename, string outfilename, mixed recipcert [, mixed recipkey])\",\"Decrypts the S/MIME message in the file name infilename and output the results to the file name outfilename.  recipcert is a CERT for one of the recipients. recipkey specifies the private key matching recipcert, if recipcert does not include the key\"],openssl_pkcs7_encrypt:[\"bool openssl_pkcs7_encrypt(string infile, string outfile, mixed recipcerts, array headers [, long flags [, long cipher]])\",\"Encrypts the message in the file named infile with the certificates in recipcerts and output the result to the file named outfile\"],openssl_pkcs7_sign:[\"bool openssl_pkcs7_sign(string infile, string outfile, mixed signcert, mixed signkey, array headers [, long flags [, string extracertsfilename]])\",\"Signs the MIME message in the file named infile with signcert/signkey and output the result to file name outfile. headers lists plain text headers to exclude from the signed portion of the message, and should include to, from and subject as a minimum\"],openssl_pkcs7_verify:[\"bool openssl_pkcs7_verify(string filename, long flags [, string signerscerts [, array cainfo [, string extracerts [, string content]]]])\",\"Verifys that the data block is intact, the signer is who they say they are, and returns the CERTs of the signers\"],openssl_pkey_export:[\"bool openssl_pkey_export(mixed key, &mixed out [, string passphrase [, array config_args]])\",\"Gets an exportable representation of a key into a string or file\"],openssl_pkey_export_to_file:[\"bool openssl_pkey_export_to_file(mixed key, string outfilename [, string passphrase, array config_args)\",\"Gets an exportable representation of a key into a file\"],openssl_pkey_free:[\"void openssl_pkey_free(int key)\",\"Frees a key\"],openssl_pkey_get_details:[\"resource openssl_pkey_get_details(resource key)\",\"returns an array with the key details (bits, pkey, type)\"],openssl_pkey_get_private:[\"int openssl_pkey_get_private(string key [, string passphrase])\",\"Gets private keys\"],openssl_pkey_get_public:[\"int openssl_pkey_get_public(mixed cert)\",\"Gets public key from X.509 certificate\"],openssl_pkey_new:[\"resource openssl_pkey_new([array configargs])\",\"Generates a new private key\"],openssl_private_decrypt:[\"bool openssl_private_decrypt(string data, string &decrypted, mixed key [, int padding])\",\"Decrypts data with private key\"],openssl_private_encrypt:[\"bool openssl_private_encrypt(string data, string &crypted, mixed key [, int padding])\",\"Encrypts data with private key\"],openssl_public_decrypt:[\"bool openssl_public_decrypt(string data, string &crypted, resource key [, int padding])\",\"Decrypts data with public key\"],openssl_public_encrypt:[\"bool openssl_public_encrypt(string data, string &crypted, mixed key [, int padding])\",\"Encrypts data with public key\"],openssl_random_pseudo_bytes:[\"string openssl_random_pseudo_bytes(integer length [, &bool returned_strong_result])\",\"Returns a string of the length specified filled with random pseudo bytes\"],openssl_seal:[\"int openssl_seal(string data, &string sealdata, &array ekeys, array pubkeys)\",\"Seals data\"],openssl_sign:[\"bool openssl_sign(string data, &string signature, mixed key[, mixed method])\",\"Signs data\"],openssl_verify:[\"int openssl_verify(string data, string signature, mixed key[, mixed method])\",\"Verifys data\"],openssl_x509_check_private_key:[\"bool openssl_x509_check_private_key(mixed cert, mixed key)\",\"Checks if a private key corresponds to a CERT\"],openssl_x509_checkpurpose:[\"int openssl_x509_checkpurpose(mixed x509cert, int purpose, array cainfo [, string untrustedfile])\",\"Checks the CERT to see if it can be used for the purpose in purpose. cainfo holds information about trusted CAs\"],openssl_x509_export:[\"bool openssl_x509_export(mixed x509, string &out [, bool notext = true])\",\"Exports a CERT to file or a var\"],openssl_x509_export_to_file:[\"bool openssl_x509_export_to_file(mixed x509, string outfilename [, bool notext = true])\",\"Exports a CERT to file or a var\"],openssl_x509_free:[\"void openssl_x509_free(resource x509)\",\"Frees X.509 certificates\"],openssl_x509_parse:[\"array openssl_x509_parse(mixed x509 [, bool shortnames=true])\",\"Returns an array of the fields/values of the CERT\"],openssl_x509_read:[\"resource openssl_x509_read(mixed cert)\",\"Reads X.509 certificates\"],ord:[\"int ord(string character)\",\"Returns ASCII value of character\"],output_add_rewrite_var:[\"bool output_add_rewrite_var(string name, string value)\",\"Add URL rewriter values\"],output_reset_rewrite_vars:[\"bool output_reset_rewrite_vars(void)\",\"Reset(clear) URL rewriter values\"],pack:[\"string pack(string format, mixed arg1 [, mixed arg2 [, mixed ...]])\",\"Takes one or more arguments and packs them into a binary string according to the format argument\"],parse_ini_file:[\"array parse_ini_file(string filename [, bool process_sections [, int scanner_mode]])\",\"Parse configuration file\"],parse_ini_string:[\"array parse_ini_string(string ini_string [, bool process_sections [, int scanner_mode]])\",\"Parse configuration string\"],parse_locale:[\"static array parse_locale($locale)\",\"* parses a locale-id into an array the different parts of it\"],parse_str:[\"void parse_str(string encoded_string [, array result])\",\"Parses GET/POST/COOKIE data and sets global variables\"],parse_url:[\"mixed parse_url(string url, [int url_component])\",\"Parse a URL and return its components\"],passthru:[\"void passthru(string command [, int &return_value])\",\"Execute an external program and display raw output\"],pathinfo:[\"array pathinfo(string path[, int options])\",\"Returns information about a certain string\"],pclose:[\"int pclose(resource fp)\",\"Close a file pointer opened by popen()\"],pcnlt_sigwaitinfo:[\"int pcnlt_sigwaitinfo(array set[, array &siginfo])\",\"Synchronously wait for queued signals\"],pcntl_alarm:[\"int pcntl_alarm(int seconds)\",\"Set an alarm clock for delivery of a signal\"],pcntl_exec:[\"bool pcntl_exec(string path [, array args [, array envs]])\",\"Executes specified program in current process space as defined by exec(2)\"],pcntl_fork:[\"int pcntl_fork(void)\",\"Forks the currently running process following the same behavior as the UNIX fork() system call\"],pcntl_getpriority:[\"int pcntl_getpriority([int pid [, int process_identifier]])\",\"Get the priority of any process\"],pcntl_setpriority:[\"bool pcntl_setpriority(int priority [, int pid [, int process_identifier]])\",\"Change the priority of any process\"],pcntl_signal:[\"bool pcntl_signal(int signo, callback handle [, bool restart_syscalls])\",\"Assigns a system signal handler to a PHP function\"],pcntl_signal_dispatch:[\"bool pcntl_signal_dispatch()\",\"Dispatch signals to signal handlers\"],pcntl_sigprocmask:[\"bool pcntl_sigprocmask(int how, array set[, array &oldset])\",\"Examine and change blocked signals\"],pcntl_sigtimedwait:[\"int pcntl_sigtimedwait(array set[, array &siginfo[, int seconds[, int nanoseconds]]])\",\"Wait for queued signals\"],pcntl_wait:[\"int pcntl_wait(int &status)\",\"Waits on or returns the status of a forked child as defined by the waitpid() system call\"],pcntl_waitpid:[\"int pcntl_waitpid(int pid, int &status, int options)\",\"Waits on or returns the status of a forked child as defined by the waitpid() system call\"],pcntl_wexitstatus:[\"int pcntl_wexitstatus(int status)\",\"Returns the status code of a child's exit\"],pcntl_wifexited:[\"bool pcntl_wifexited(int status)\",\"Returns true if the child status code represents a successful exit\"],pcntl_wifsignaled:[\"bool pcntl_wifsignaled(int status)\",\"Returns true if the child status code represents a process that was terminated due to a signal\"],pcntl_wifstopped:[\"bool pcntl_wifstopped(int status)\",\"Returns true if the child status code represents a stopped process (WUNTRACED must have been used with waitpid)\"],pcntl_wstopsig:[\"int pcntl_wstopsig(int status)\",\"Returns the number of the signal that caused the process to stop who's status code is passed\"],pcntl_wtermsig:[\"int pcntl_wtermsig(int status)\",\"Returns the number of the signal that terminated the process who's status code is passed\"],pdo_drivers:[\"array pdo_drivers()\",\"Return array of available PDO drivers\"],pfsockopen:[\"resource pfsockopen(string hostname, int port [, int errno [, string errstr [, float timeout]]])\",\"Open persistent Internet or Unix domain socket connection\"],pg_affected_rows:[\"int pg_affected_rows(resource result)\",\"Returns the number of affected tuples\"],pg_cancel_query:[\"bool pg_cancel_query(resource connection)\",\"Cancel request\"],pg_client_encoding:[\"string pg_client_encoding([resource connection])\",\"Get the current client encoding\"],pg_close:[\"bool pg_close([resource connection])\",\"Close a PostgreSQL connection\"],pg_connect:[\"resource pg_connect(string connection_string[, int connect_type] | [string host, string port [, string options [, string tty,]]] string database)\",\"Open a PostgreSQL connection\"],pg_connection_busy:[\"bool pg_connection_busy(resource connection)\",\"Get connection is busy or not\"],pg_connection_reset:[\"bool pg_connection_reset(resource connection)\",\"Reset connection (reconnect)\"],pg_connection_status:[\"int pg_connection_status(resource connnection)\",\"Get connection status\"],pg_convert:[\"array pg_convert(resource db, string table, array values[, int options])\",\"Check and convert values for PostgreSQL SQL statement\"],pg_copy_from:[\"bool pg_copy_from(resource connection, string table_name , array rows [, string delimiter [, string null_as]])\",\"Copy table from array\"],pg_copy_to:[\"array pg_copy_to(resource connection, string table_name [, string delimiter [, string null_as]])\",\"Copy table to array\"],pg_dbname:[\"string pg_dbname([resource connection])\",\"Get the database name\"],pg_delete:[\"mixed pg_delete(resource db, string table, array ids[, int options])\",\"Delete records has ids (id=>value)\"],pg_end_copy:[\"bool pg_end_copy([resource connection])\",\"Sync with backend. Completes the Copy command\"],pg_escape_bytea:[\"string pg_escape_bytea([resource connection,] string data)\",\"Escape binary for bytea type\"],pg_escape_string:[\"string pg_escape_string([resource connection,] string data)\",\"Escape string for text/char type\"],pg_execute:[\"resource pg_execute([resource connection,] string stmtname, array params)\",\"Execute a prepared query\"],pg_fetch_all:[\"array pg_fetch_all(resource result)\",\"Fetch all rows into array\"],pg_fetch_all_columns:[\"array pg_fetch_all_columns(resource result [, int column_number])\",\"Fetch all rows into array\"],pg_fetch_array:[\"array pg_fetch_array(resource result [, int row [, int result_type]])\",\"Fetch a row as an array\"],pg_fetch_assoc:[\"array pg_fetch_assoc(resource result [, int row])\",\"Fetch a row as an assoc array\"],pg_fetch_object:[\"object pg_fetch_object(resource result [, int row [, string class_name [, NULL|array ctor_params]]])\",\"Fetch a row as an object\"],pg_fetch_result:[\"mixed pg_fetch_result(resource result, [int row_number,] mixed field_name)\",\"Returns values from a result identifier\"],pg_fetch_row:[\"array pg_fetch_row(resource result [, int row [, int result_type]])\",\"Get a row as an enumerated array\"],pg_field_is_null:[\"int pg_field_is_null(resource result, [int row,] mixed field_name_or_number)\",\"Test if a field is NULL\"],pg_field_name:[\"string pg_field_name(resource result, int field_number)\",\"Returns the name of the field\"],pg_field_num:[\"int pg_field_num(resource result, string field_name)\",\"Returns the field number of the named field\"],pg_field_prtlen:[\"int pg_field_prtlen(resource result, [int row,] mixed field_name_or_number)\",\"Returns the printed length\"],pg_field_size:[\"int pg_field_size(resource result, int field_number)\",\"Returns the internal size of the field\"],pg_field_table:[\"mixed pg_field_table(resource result, int field_number[, bool oid_only])\",\"Returns the name of the table field belongs to, or table's oid if oid_only is true\"],pg_field_type:[\"string pg_field_type(resource result, int field_number)\",\"Returns the type name for the given field\"],pg_field_type_oid:[\"string pg_field_type_oid(resource result, int field_number)\",\"Returns the type oid for the given field\"],pg_free_result:[\"bool pg_free_result(resource result)\",\"Free result memory\"],pg_get_notify:[\"array pg_get_notify([resource connection[, result_type]])\",\"Get asynchronous notification\"],pg_get_pid:[\"int pg_get_pid([resource connection)\",\"Get backend(server) pid\"],pg_get_result:[\"resource pg_get_result(resource connection)\",\"Get asynchronous query result\"],pg_host:[\"string pg_host([resource connection])\",\"Returns the host name associated with the connection\"],pg_insert:[\"mixed pg_insert(resource db, string table, array values[, int options])\",\"Insert values (filed=>value) to table\"],pg_last_error:[\"string pg_last_error([resource connection])\",\"Get the error message string\"],pg_last_notice:[\"string pg_last_notice(resource connection)\",\"Returns the last notice set by the backend\"],pg_last_oid:[\"string pg_last_oid(resource result)\",\"Returns the last object identifier\"],pg_lo_close:[\"bool pg_lo_close(resource large_object)\",\"Close a large object\"],pg_lo_create:[\"mixed pg_lo_create([resource connection],[mixed large_object_oid])\",\"Create a large object\"],pg_lo_export:[\"bool pg_lo_export([resource connection, ] int objoid, string filename)\",\"Export large object direct to filesystem\"],pg_lo_import:[\"int pg_lo_import([resource connection, ] string filename [, mixed oid])\",\"Import large object direct from filesystem\"],pg_lo_open:[\"resource pg_lo_open([resource connection,] int large_object_oid, string mode)\",\"Open a large object and return fd\"],pg_lo_read:[\"string pg_lo_read(resource large_object [, int len])\",\"Read a large object\"],pg_lo_read_all:[\"int pg_lo_read_all(resource large_object)\",\"Read a large object and send straight to browser\"],pg_lo_seek:[\"bool pg_lo_seek(resource large_object, int offset [, int whence])\",\"Seeks position of large object\"],pg_lo_tell:[\"int pg_lo_tell(resource large_object)\",\"Returns current position of large object\"],pg_lo_unlink:[\"bool pg_lo_unlink([resource connection,] string large_object_oid)\",\"Delete a large object\"],pg_lo_write:[\"int pg_lo_write(resource large_object, string buf [, int len])\",\"Write a large object\"],pg_meta_data:[\"array pg_meta_data(resource db, string table)\",\"Get meta_data\"],pg_num_fields:[\"int pg_num_fields(resource result)\",\"Return the number of fields in the result\"],pg_num_rows:[\"int pg_num_rows(resource result)\",\"Return the number of rows in the result\"],pg_options:[\"string pg_options([resource connection])\",\"Get the options associated with the connection\"],pg_parameter_status:[\"string|false pg_parameter_status([resource connection,] string param_name)\",\"Returns the value of a server parameter\"],pg_pconnect:[\"resource pg_pconnect(string connection_string | [string host, string port [, string options [, string tty,]]] string database)\",\"Open a persistent PostgreSQL connection\"],pg_ping:[\"bool pg_ping([resource connection])\",\"Ping database. If connection is bad, try to reconnect.\"],pg_port:[\"int pg_port([resource connection])\",\"Return the port number associated with the connection\"],pg_prepare:[\"resource pg_prepare([resource connection,] string stmtname, string query)\",\"Prepare a query for future execution\"],pg_put_line:[\"bool pg_put_line([resource connection,] string query)\",\"Send null-terminated string to backend server\"],pg_query:[\"resource pg_query([resource connection,] string query)\",\"Execute a query\"],pg_query_params:[\"resource pg_query_params([resource connection,] string query, array params)\",\"Execute a query\"],pg_result_error:[\"string pg_result_error(resource result)\",\"Get error message associated with result\"],pg_result_error_field:[\"string pg_result_error_field(resource result, int fieldcode)\",\"Get error message field associated with result\"],pg_result_seek:[\"bool pg_result_seek(resource result, int offset)\",\"Set internal row offset\"],pg_result_status:[\"mixed pg_result_status(resource result[, long result_type])\",\"Get status of query result\"],pg_select:[\"mixed pg_select(resource db, string table, array ids[, int options])\",\"Select records that has ids (id=>value)\"],pg_send_execute:[\"bool pg_send_execute(resource connection, string stmtname, array params)\",\"Executes prevriously prepared stmtname asynchronously\"],pg_send_prepare:[\"bool pg_send_prepare(resource connection, string stmtname, string query)\",\"Asynchronously prepare a query for future execution\"],pg_send_query:[\"bool pg_send_query(resource connection, string query)\",\"Send asynchronous query\"],pg_send_query_params:[\"bool pg_send_query_params(resource connection, string query, array params)\",\"Send asynchronous parameterized query\"],pg_set_client_encoding:[\"int pg_set_client_encoding([resource connection,] string encoding)\",\"Set client encoding\"],pg_set_error_verbosity:[\"int pg_set_error_verbosity([resource connection,] int verbosity)\",\"Set error verbosity\"],pg_trace:[\"bool pg_trace(string filename [, string mode [, resource connection]])\",\"Enable tracing a PostgreSQL connection\"],pg_transaction_status:[\"int pg_transaction_status(resource connnection)\",\"Get transaction status\"],pg_tty:[\"string pg_tty([resource connection])\",\"Return the tty name associated with the connection\"],pg_unescape_bytea:[\"string pg_unescape_bytea(string data)\",\"Unescape binary for bytea type\"],pg_untrace:[\"bool pg_untrace([resource connection])\",\"Disable tracing of a PostgreSQL connection\"],pg_update:[\"mixed pg_update(resource db, string table, array fields, array ids[, int options])\",\"Update table using values (field=>value) and ids (id=>value)\"],pg_version:[\"array pg_version([resource connection])\",\"Returns an array with client, protocol and server version (when available)\"],php_egg_logo_guid:[\"string php_egg_logo_guid(void)\",\"Return the special ID used to request the PHP logo in phpinfo screens\"],php_ini_loaded_file:[\"string php_ini_loaded_file(void)\",\"Return the actual loaded ini filename\"],php_ini_scanned_files:[\"string php_ini_scanned_files(void)\",\"Return comma-separated string of .ini files parsed from the additional ini dir\"],php_logo_guid:[\"string php_logo_guid(void)\",\"Return the special ID used to request the PHP logo in phpinfo screens\"],php_real_logo_guid:[\"string php_real_logo_guid(void)\",\"Return the special ID used to request the PHP logo in phpinfo screens\"],php_sapi_name:[\"string php_sapi_name(void)\",\"Return the current SAPI module name\"],php_snmpv3:[\"void php_snmpv3(INTERNAL_FUNCTION_PARAMETERS, int st)\",\"* * Generic SNMPv3 object fetcher * From here is passed on the the common internal object fetcher. * * st=SNMP_CMD_GET   snmp3_get() - query an agent and return a single value. * st=SNMP_CMD_GETNEXT   snmp3_getnext() - query an agent and return the next single value. * st=SNMP_CMD_WALK   snmp3_walk() - walk the mib and return a single dimensional array  *                       containing the values. * st=SNMP_CMD_REALWALK   snmp3_real_walk() - walk the mib and return an  *                            array of oid,value pairs. * st=SNMP_CMD_SET  snmp3_set() - query an agent and set a single value *\"],php_strip_whitespace:[\"string php_strip_whitespace(string file_name)\",\"Return source with stripped comments and whitespace\"],php_uname:[\"string php_uname(void)\",\"Return information about the system PHP was built on\"],phpcredits:[\"void phpcredits([int flag])\",\"Prints the list of people who've contributed to the PHP project\"],phpinfo:[\"void phpinfo([int what])\",\"Output a page of useful information about PHP and the current request\"],phpversion:[\"string phpversion([string extension])\",\"Return the current PHP version\"],pi:[\"float pi(void)\",\"Returns an approximation of pi\"],png2wbmp:[\"bool png2wbmp (string f_org, string f_dest, int d_height, int d_width, int threshold)\",\"Convert PNG image to WBMP image\"],popen:[\"resource popen(string command, string mode)\",\"Execute a command and open either a read or a write pipe to it\"],posix_access:[\"bool posix_access(string file [, int mode])\",\"Determine accessibility of a file (POSIX.1 5.6.3)\"],posix_ctermid:[\"string posix_ctermid(void)\",\"Generate terminal path name (POSIX.1, 4.7.1)\"],posix_get_last_error:[\"int posix_get_last_error(void)\",\"Retrieve the error number set by the last posix function which failed.\"],posix_getcwd:[\"string posix_getcwd(void)\",\"Get working directory pathname (POSIX.1, 5.2.2)\"],posix_getegid:[\"int posix_getegid(void)\",\"Get the current effective group id (POSIX.1, 4.2.1)\"],posix_geteuid:[\"int posix_geteuid(void)\",\"Get the current effective user id (POSIX.1, 4.2.1)\"],posix_getgid:[\"int posix_getgid(void)\",\"Get the current group id (POSIX.1, 4.2.1)\"],posix_getgrgid:[\"array posix_getgrgid(long gid)\",\"Group database access (POSIX.1, 9.2.1)\"],posix_getgrnam:[\"array posix_getgrnam(string groupname)\",\"Group database access (POSIX.1, 9.2.1)\"],posix_getgroups:[\"array posix_getgroups(void)\",\"Get supplementary group id's (POSIX.1, 4.2.3)\"],posix_getlogin:[\"string posix_getlogin(void)\",\"Get user name (POSIX.1, 4.2.4)\"],posix_getpgid:[\"int posix_getpgid(void)\",\"Get the process group id of the specified process (This is not a POSIX function, but a SVR4ism, so we compile conditionally)\"],posix_getpgrp:[\"int posix_getpgrp(void)\",\"Get current process group id (POSIX.1, 4.3.1)\"],posix_getpid:[\"int posix_getpid(void)\",\"Get the current process id (POSIX.1, 4.1.1)\"],posix_getppid:[\"int posix_getppid(void)\",\"Get the parent process id (POSIX.1, 4.1.1)\"],posix_getpwnam:[\"array posix_getpwnam(string groupname)\",\"User database access (POSIX.1, 9.2.2)\"],posix_getpwuid:[\"array posix_getpwuid(long uid)\",\"User database access (POSIX.1, 9.2.2)\"],posix_getrlimit:[\"array posix_getrlimit(void)\",\"Get system resource consumption limits (This is not a POSIX function, but a BSDism and a SVR4ism. We compile conditionally)\"],posix_getsid:[\"int posix_getsid(void)\",\"Get process group id of session leader (This is not a POSIX function, but a SVR4ism, so be compile conditionally)\"],posix_getuid:[\"int posix_getuid(void)\",\"Get the current user id (POSIX.1, 4.2.1)\"],posix_initgroups:[\"bool posix_initgroups(string name, int base_group_id)\",\"Calculate the group access list for the user specified in name.\"],posix_isatty:[\"bool posix_isatty(int fd)\",\"Determine if filedesc is a tty (POSIX.1, 4.7.1)\"],posix_kill:[\"bool posix_kill(int pid, int sig)\",\"Send a signal to a process (POSIX.1, 3.3.2)\"],posix_mkfifo:[\"bool posix_mkfifo(string pathname, int mode)\",\"Make a FIFO special file (POSIX.1, 5.4.2)\"],posix_mknod:[\"bool posix_mknod(string pathname, int mode [, int major [, int minor]])\",\"Make a special or ordinary file (POSIX.1)\"],posix_setegid:[\"bool posix_setegid(long uid)\",\"Set effective group id\"],posix_seteuid:[\"bool posix_seteuid(long uid)\",\"Set effective user id\"],posix_setgid:[\"bool posix_setgid(int uid)\",\"Set group id (POSIX.1, 4.2.2)\"],posix_setpgid:[\"bool posix_setpgid(int pid, int pgid)\",\"Set process group id for job control (POSIX.1, 4.3.3)\"],posix_setsid:[\"int posix_setsid(void)\",\"Create session and set process group id (POSIX.1, 4.3.2)\"],posix_setuid:[\"bool posix_setuid(long uid)\",\"Set user id (POSIX.1, 4.2.2)\"],posix_strerror:[\"string posix_strerror(int errno)\",\"Retrieve the system error message associated with the given errno.\"],posix_times:[\"array posix_times(void)\",\"Get process times (POSIX.1, 4.5.2)\"],posix_ttyname:[\"string posix_ttyname(int fd)\",\"Determine terminal device name (POSIX.1, 4.7.2)\"],posix_uname:[\"array posix_uname(void)\",\"Get system name (POSIX.1, 4.4.1)\"],pow:[\"number pow(number base, number exponent)\",\"Returns base raised to the power of exponent. Returns integer result when possible\"],preg_filter:[\"mixed preg_filter(mixed regex, mixed replace, mixed subject [, int limit [, int &count]])\",\"Perform Perl-style regular expression replacement and only return matches.\"],preg_grep:[\"array preg_grep(string regex, array input [, int flags])\",\"Searches array and returns entries which match regex\"],preg_last_error:[\"int preg_last_error()\",\"Returns the error code of the last regexp execution.\"],preg_match:[\"int preg_match(string pattern, string subject [, array &subpatterns [, int flags [, int offset]]])\",\"Perform a Perl-style regular expression match\"],preg_match_all:[\"int preg_match_all(string pattern, string subject, array &subpatterns [, int flags [, int offset]])\",\"Perform a Perl-style global regular expression match\"],preg_quote:[\"string preg_quote(string str [, string delim_char])\",\"Quote regular expression characters plus an optional character\"],preg_replace:[\"mixed preg_replace(mixed regex, mixed replace, mixed subject [, int limit [, int &count]])\",\"Perform Perl-style regular expression replacement.\"],preg_replace_callback:[\"mixed preg_replace_callback(mixed regex, mixed callback, mixed subject [, int limit [, int &count]])\",\"Perform Perl-style regular expression replacement using replacement callback.\"],preg_split:[\"array preg_split(string pattern, string subject [, int limit [, int flags]])\",\"Split string into an array using a perl-style regular expression as a delimiter\"],prev:[\"mixed prev(array array_arg)\",\"Move array argument's internal pointer to the previous element and return it\"],print:[\"int print(string arg)\",\"Output a string\"],print_r:[\"mixed print_r(mixed var [, bool return])\",\"Prints out or returns information about the specified variable\"],printf:[\"int printf(string format [, mixed arg1 [, mixed ...]])\",\"Output a formatted string\"],proc_close:[\"int proc_close(resource process)\",\"close a process opened by proc_open\"],proc_get_status:[\"array proc_get_status(resource process)\",\"get information about a process opened by proc_open\"],proc_nice:[\"bool proc_nice(int priority)\",\"Change the priority of the current process\"],proc_open:[\"resource proc_open(string command, array descriptorspec, array &pipes [, string cwd [, array env [, array other_options]]])\",\"Run a process with more control over it's file descriptors\"],proc_terminate:[\"bool proc_terminate(resource process [, long signal])\",\"kill a process opened by proc_open\"],property_exists:[\"bool property_exists(mixed object_or_class, string property_name)\",\"Checks if the object or class has a property\"],pspell_add_to_personal:[\"bool pspell_add_to_personal(int pspell, string word)\",\"Adds a word to a personal list\"],pspell_add_to_session:[\"bool pspell_add_to_session(int pspell, string word)\",\"Adds a word to the current session\"],pspell_check:[\"bool pspell_check(int pspell, string word)\",\"Returns true if word is valid\"],pspell_clear_session:[\"bool pspell_clear_session(int pspell)\",\"Clears the current session\"],pspell_config_create:[\"int pspell_config_create(string language [, string spelling [, string jargon [, string encoding]]])\",\"Create a new config to be used later to create a manager\"],pspell_config_data_dir:[\"bool pspell_config_data_dir(int conf, string directory)\",\"location of language data files\"],pspell_config_dict_dir:[\"bool pspell_config_dict_dir(int conf, string directory)\",\"location of the main word list\"],pspell_config_ignore:[\"bool pspell_config_ignore(int conf, int ignore)\",\"Ignore words <= n chars\"],pspell_config_mode:[\"bool pspell_config_mode(int conf, long mode)\",\"Select mode for config (PSPELL_FAST, PSPELL_NORMAL or PSPELL_BAD_SPELLERS)\"],pspell_config_personal:[\"bool pspell_config_personal(int conf, string personal)\",\"Use a personal dictionary for this config\"],pspell_config_repl:[\"bool pspell_config_repl(int conf, string repl)\",\"Use a personal dictionary with replacement pairs for this config\"],pspell_config_runtogether:[\"bool pspell_config_runtogether(int conf, bool runtogether)\",\"Consider run-together words as valid components\"],pspell_config_save_repl:[\"bool pspell_config_save_repl(int conf, bool save)\",\"Save replacement pairs when personal list is saved for this config\"],pspell_new:[\"int pspell_new(string language [, string spelling [, string jargon [, string encoding [, int mode]]]])\",\"Load a dictionary\"],pspell_new_config:[\"int pspell_new_config(int config)\",\"Load a dictionary based on the given config\"],pspell_new_personal:[\"int pspell_new_personal(string personal, string language [, string spelling [, string jargon [, string encoding [, int mode]]]])\",\"Load a dictionary with a personal wordlist\"],pspell_save_wordlist:[\"bool pspell_save_wordlist(int pspell)\",\"Saves the current (personal) wordlist\"],pspell_store_replacement:[\"bool pspell_store_replacement(int pspell, string misspell, string correct)\",\"Notify the dictionary of a user-selected replacement\"],pspell_suggest:[\"array pspell_suggest(int pspell, string word)\",\"Returns array of suggestions\"],putenv:[\"bool putenv(string setting)\",\"Set the value of an environment variable\"],quoted_printable_decode:[\"string quoted_printable_decode(string str)\",\"Convert a quoted-printable string to an 8 bit string\"],quoted_printable_encode:[\"string quoted_printable_encode(string str) */\",'PHP_FUNCTION(quoted_printable_encode) {  char *str, *new_str;  int str_len;  size_t new_str_len;   if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, \"s\", &str, &str_len) != SUCCESS) {   return;  }   if (!str_len) {   RETURN_EMPTY_STRING();  }   new_str = (char *)php_quot_print_encode((unsigned char *)str, (size_t)str_len, &new_str_len);  RETURN_STRINGL(new_str, new_str_len, 0); } /* }}}'],quotemeta:[\"string quotemeta(string str)\",\"Quotes meta characters\"],rad2deg:[\"float rad2deg(float number)\",\"Converts the radian number to the equivalent number in degrees\"],rand:[\"int rand([int min, int max])\",\"Returns a random number\"],range:[\"array range(mixed low, mixed high[, int step])\",\"Create an array containing the range of integers or characters from low to high (inclusive)\"],rawurldecode:[\"string rawurldecode(string str)\",\"Decodes URL-encodes string\"],rawurlencode:[\"string rawurlencode(string str)\",\"URL-encodes string\"],readdir:[\"string readdir([resource dir_handle])\",\"Read directory entry from dir_handle\"],readfile:[\"int readfile(string filename [, bool use_include_path[, resource context]])\",\"Output a file or a URL\"],readgzfile:[\"int readgzfile(string filename [, int use_include_path])\",\"Output a .gz-file\"],readline:[\"string readline([string prompt])\",\"Reads a line\"],readline_add_history:[\"bool readline_add_history(string prompt)\",\"Adds a line to the history\"],readline_callback_handler_install:[\"void readline_callback_handler_install(string prompt, mixed callback)\",\"Initializes the readline callback interface and terminal, prints the prompt and returns immediately\"],readline_callback_handler_remove:[\"bool readline_callback_handler_remove()\",\"Removes a previously installed callback handler and restores terminal settings\"],readline_callback_read_char:[\"void readline_callback_read_char()\",\"Informs the readline callback interface that a character is ready for input\"],readline_clear_history:[\"bool readline_clear_history(void)\",\"Clears the history\"],readline_completion_function:[\"bool readline_completion_function(string funcname)\",\"Readline completion function?\"],readline_info:[\"mixed readline_info([string varname [, string newvalue]])\",\"Gets/sets various internal readline variables.\"],readline_list_history:[\"array readline_list_history(void)\",\"Lists the history\"],readline_on_new_line:[\"void readline_on_new_line(void)\",\"Inform readline that the cursor has moved to a new line\"],readline_read_history:[\"bool readline_read_history([string filename])\",\"Reads the history\"],readline_redisplay:[\"void readline_redisplay(void)\",\"Ask readline to redraw the display\"],readline_write_history:[\"bool readline_write_history([string filename])\",\"Writes the history\"],readlink:[\"string readlink(string filename)\",\"Return the target of a symbolic link\"],realpath:[\"string realpath(string path)\",\"Return the resolved path\"],realpath_cache_get:[\"bool realpath_cache_get()\",\"Get current size of realpath cache\"],realpath_cache_size:[\"bool realpath_cache_size()\",\"Get current size of realpath cache\"],recode_file:[\"bool recode_file(string request, resource input, resource output)\",\"Recode file input into file output according to request\"],recode_string:[\"string recode_string(string request, string str)\",\"Recode string str according to request string\"],register_shutdown_function:[\"void register_shutdown_function(string function_name)\",\"Register a user-level function to be called on request termination\"],register_tick_function:[\"bool register_tick_function(string function_name [, mixed arg [, mixed ... ]])\",\"Registers a tick callback function\"],rename:[\"bool rename(string old_name, string new_name[, resource context])\",\"Rename a file\"],require:[\"bool require(string path)\",\"Includes and evaluates the specified file, erroring if the file cannot be included\"],require_once:[\"bool require_once(string path)\",\"Includes and evaluates the specified file, erroring if the file cannot be included\"],reset:[\"mixed reset(array array_arg)\",\"Set array argument's internal pointer to the first element and return it\"],restore_error_handler:[\"void restore_error_handler(void)\",\"Restores the previously defined error handler function\"],restore_exception_handler:[\"void restore_exception_handler(void)\",\"Restores the previously defined exception handler function\"],restore_include_path:[\"void restore_include_path()\",\"Restore the value of the include_path configuration option\"],rewind:[\"bool rewind(resource fp)\",\"Rewind the position of a file pointer\"],rewinddir:[\"void rewinddir([resource dir_handle])\",\"Rewind dir_handle back to the start\"],rmdir:[\"bool rmdir(string dirname[, resource context])\",\"Remove a directory\"],round:[\"float round(float number [, int precision [, int mode]])\",\"Returns the number rounded to specified precision\"],rsort:[\"bool rsort(array &array_arg [, int sort_flags])\",\"Sort an array in reverse order\"],rtrim:[\"string rtrim(string str [, string character_mask])\",\"Removes trailing whitespace\"],scandir:[\"array scandir(string dir [, int sorting_order [, resource context]])\",\"List files & directories inside the specified path\"],sem_acquire:[\"bool sem_acquire(resource id)\",\"Acquires the semaphore with the given id, blocking if necessary\"],sem_get:[\"resource sem_get(int key [, int max_acquire [, int perm [, int auto_release]])\",\"Return an id for the semaphore with the given key, and allow max_acquire (default 1) processes to acquire it simultaneously\"],sem_release:[\"bool sem_release(resource id)\",\"Releases the semaphore with the given id\"],sem_remove:[\"bool sem_remove(resource id)\",\"Removes semaphore from Unix systems\"],serialize:[\"string serialize(mixed variable)\",\"Returns a string representation of variable (which can later be unserialized)\"],session_cache_expire:[\"int session_cache_expire([int new_cache_expire])\",\"Return the current cache expire. If new_cache_expire is given, the current cache_expire is replaced with new_cache_expire\"],session_cache_limiter:[\"string session_cache_limiter([string new_cache_limiter])\",\"Return the current cache limiter. If new_cache_limited is given, the current cache_limiter is replaced with new_cache_limiter\"],session_decode:[\"bool session_decode(string data)\",\"Deserializes data and reinitializes the variables\"],session_destroy:[\"bool session_destroy(void)\",\"Destroy the current session and all data associated with it\"],session_encode:[\"string session_encode(void)\",\"Serializes the current setup and returns the serialized representation\"],session_get_cookie_params:[\"array session_get_cookie_params(void)\",\"Return the session cookie parameters\"],session_id:[\"string session_id([string newid])\",\"Return the current session id. If newid is given, the session id is replaced with newid\"],session_is_registered:[\"bool session_is_registered(string varname)\",\"Checks if a variable is registered in session\"],session_module_name:[\"string session_module_name([string newname])\",\"Return the current module name used for accessing session data. If newname is given, the module name is replaced with newname\"],session_name:[\"string session_name([string newname])\",\"Return the current session name. If newname is given, the session name is replaced with newname\"],session_regenerate_id:[\"bool session_regenerate_id([bool delete_old_session])\",\"Update the current session id with a newly generated one. If delete_old_session is set to true, remove the old session.\"],session_register:[\"bool session_register(mixed var_names [, mixed ...])\",\"Adds varname(s) to the list of variables which are freezed at the session end\"],session_save_path:[\"string session_save_path([string newname])\",\"Return the current save path passed to module_name. If newname is given, the save path is replaced with newname\"],session_set_cookie_params:[\"void session_set_cookie_params(int lifetime [, string path [, string domain [, bool secure[, bool httponly]]]])\",\"Set session cookie parameters\"],session_set_save_handler:[\"void session_set_save_handler(string open, string close, string read, string write, string destroy, string gc)\",\"Sets user-level functions\"],session_start:[\"bool session_start(void)\",\"Begin session - reinitializes freezed variables, registers browsers etc\"],session_unregister:[\"bool session_unregister(string varname)\",\"Removes varname from the list of variables which are freezed at the session end\"],session_unset:[\"void session_unset(void)\",\"Unset all registered variables\"],session_write_close:[\"void session_write_close(void)\",\"Write session data and end session\"],set_error_handler:[\"string set_error_handler(string error_handler [, int error_types])\",\"Sets a user-defined error handler function.  Returns the previously defined error handler, or false on error\"],set_exception_handler:[\"string set_exception_handler(callable exception_handler)\",\"Sets a user-defined exception handler function.  Returns the previously defined exception handler, or false on error\"],set_include_path:[\"string set_include_path(string new_include_path)\",\"Sets the include_path configuration option\"],set_magic_quotes_runtime:[\"bool set_magic_quotes_runtime(int new_setting)\",\"Set the current active configuration setting of magic_quotes_runtime and return previous\"],set_time_limit:[\"bool set_time_limit(int seconds)\",\"Sets the maximum time a script can run\"],setcookie:[\"bool setcookie(string name [, string value [, int expires [, string path [, string domain [, bool secure[, bool httponly]]]]]])\",\"Send a cookie\"],setlocale:[\"string setlocale(mixed category, string locale [, string ...])\",\"Set locale information\"],setrawcookie:[\"bool setrawcookie(string name [, string value [, int expires [, string path [, string domain [, bool secure[, bool httponly]]]]]])\",\"Send a cookie with no url encoding of the value\"],settype:[\"bool settype(mixed var, string type)\",\"Set the type of the variable\"],sha1:[\"string sha1(string str [, bool raw_output])\",\"Calculate the sha1 hash of a string\"],sha1_file:[\"string sha1_file(string filename [, bool raw_output])\",\"Calculate the sha1 hash of given filename\"],shell_exec:[\"string shell_exec(string cmd)\",\"Execute command via shell and return complete output as string\"],shm_attach:[\"int shm_attach(int key [, int memsize [, int perm]])\",\"Creates or open a shared memory segment\"],shm_detach:[\"bool shm_detach(resource shm_identifier)\",\"Disconnects from shared memory segment\"],shm_get_var:[\"mixed shm_get_var(resource id, int variable_key)\",\"Returns a variable from shared memory\"],shm_has_var:[\"bool shm_has_var(resource id, int variable_key)\",\"Checks whether a specific entry exists\"],shm_put_var:[\"bool shm_put_var(resource shm_identifier, int variable_key, mixed variable)\",\"Inserts or updates a variable in shared memory\"],shm_remove:[\"bool shm_remove(resource shm_identifier)\",\"Removes shared memory from Unix systems\"],shm_remove_var:[\"bool shm_remove_var(resource id, int variable_key)\",\"Removes variable from shared memory\"],shmop_close:[\"void shmop_close (int shmid)\",\"closes a shared memory segment\"],shmop_delete:[\"bool shmop_delete (int shmid)\",\"mark segment for deletion\"],shmop_open:[\"int shmop_open (int key, string flags, int mode, int size)\",\"gets and attaches a shared memory segment\"],shmop_read:[\"string shmop_read (int shmid, int start, int count)\",\"reads from a shm segment\"],shmop_size:[\"int shmop_size (int shmid)\",\"returns the shm size\"],shmop_write:[\"int shmop_write (int shmid, string data, int offset)\",\"writes to a shared memory segment\"],shuffle:[\"bool shuffle(array array_arg)\",\"Randomly shuffle the contents of an array\"],similar_text:[\"int similar_text(string str1, string str2 [, float percent])\",\"Calculates the similarity between two strings\"],simplexml_import_dom:[\"simplemxml_element simplexml_import_dom(domNode node [, string class_name])\",\"Get a simplexml_element object from dom to allow for processing\"],simplexml_load_file:[\"simplemxml_element simplexml_load_file(string filename [, string class_name [, int options [, string ns [, bool is_prefix]]]])\",\"Load a filename and return a simplexml_element object to allow for processing\"],simplexml_load_string:[\"simplemxml_element simplexml_load_string(string data [, string class_name [, int options [, string ns [, bool is_prefix]]]])\",\"Load a string and return a simplexml_element object to allow for processing\"],sin:[\"float sin(float number)\",\"Returns the sine of the number in radians\"],sinh:[\"float sinh(float number)\",\"Returns the hyperbolic sine of the number, defined as (exp(number) - exp(-number))/2\"],sleep:[\"void sleep(int seconds)\",\"Delay for a given number of seconds\"],smfi_addheader:[\"bool smfi_addheader(string headerf, string headerv)\",\"Adds a header to the current message.\"],smfi_addrcpt:[\"bool smfi_addrcpt(string rcpt)\",\"Add a recipient to the message envelope.\"],smfi_chgheader:[\"bool smfi_chgheader(string headerf, string headerv)\",\"Changes a header's value for the current message.\"],smfi_delrcpt:[\"bool smfi_delrcpt(string rcpt)\",\"Removes the named recipient from the current message's envelope.\"],smfi_getsymval:[\"string smfi_getsymval(string macro)\",\"Returns the value of the given macro or NULL if the macro is not defined.\"],smfi_replacebody:[\"bool smfi_replacebody(string body)\",\"Replaces the body of the current message. If called more than once,    subsequent calls result in data being appended to the new body.\"],smfi_setflags:[\"void smfi_setflags(long flags)\",\"Sets the flags describing the actions the filter may take.\"],smfi_setreply:[\"bool smfi_setreply(string rcode, string xcode, string message)\",\"Directly set the SMTP error reply code for this connection.    This code will be used on subsequent error replies resulting from actions taken by this filter.\"],smfi_settimeout:[\"void smfi_settimeout(long timeout)\",\"Sets the number of seconds libmilter will wait for an MTA connection before timing out a socket.\"],snmp2_get:[\"string snmp2_get(string host, string community, string object_id [, int timeout [, int retries]])\",\"Fetch a SNMP object\"],snmp2_getnext:[\"string snmp2_getnext(string host, string community, string object_id [, int timeout [, int retries]])\",\"Fetch a SNMP object\"],snmp2_real_walk:[\"array snmp2_real_walk(string host, string community, string object_id [, int timeout [, int retries]])\",\"Return all objects including their respective object id withing the specified one\"],snmp2_set:[\"int snmp2_set(string host, string community, string object_id, string type, mixed value [, int timeout [, int retries]])\",\"Set the value of a SNMP object\"],snmp2_walk:[\"array snmp2_walk(string host, string community, string object_id [, int timeout [, int retries]])\",\"Return all objects under the specified object id\"],snmp3_get:[\"int snmp3_get(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id [, int timeout [, int retries]])\",\"Fetch the value of a SNMP object\"],snmp3_getnext:[\"int snmp3_getnext(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id [, int timeout [, int retries]])\",\"Fetch the value of a SNMP object\"],snmp3_real_walk:[\"int snmp3_real_walk(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id [, int timeout [, int retries]])\",\"Fetch the value of a SNMP object\"],snmp3_set:[\"int snmp3_set(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id, string type, mixed value [, int timeout [, int retries]])\",\"Fetch the value of a SNMP object\"],snmp3_walk:[\"int snmp3_walk(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id [, int timeout [, int retries]])\",\"Fetch the value of a SNMP object\"],snmp_get_quick_print:[\"bool snmp_get_quick_print(void)\",\"Return the current status of quick_print\"],snmp_get_valueretrieval:[\"int snmp_get_valueretrieval()\",\"Return the method how the SNMP values will be returned\"],snmp_read_mib:[\"int snmp_read_mib(string filename)\",\"Reads and parses a MIB file into the active MIB tree.\"],snmp_set_enum_print:[\"void snmp_set_enum_print(int enum_print)\",\"Return all values that are enums with their enum value instead of the raw integer\"],snmp_set_oid_output_format:[\"void snmp_set_oid_output_format(int oid_format)\",\"Set the OID output format.\"],snmp_set_quick_print:[\"void snmp_set_quick_print(int quick_print)\",\"Return all objects including their respective object id withing the specified one\"],snmp_set_valueretrieval:[\"void snmp_set_valueretrieval(int method)\",\"Specify the method how the SNMP values will be returned\"],snmpget:[\"string snmpget(string host, string community, string object_id [, int timeout [, int retries]])\",\"Fetch a SNMP object\"],snmpgetnext:[\"string snmpgetnext(string host, string community, string object_id [, int timeout [, int retries]])\",\"Fetch a SNMP object\"],snmprealwalk:[\"array snmprealwalk(string host, string community, string object_id [, int timeout [, int retries]])\",\"Return all objects including their respective object id withing the specified one\"],snmpset:[\"int snmpset(string host, string community, string object_id, string type, mixed value [, int timeout [, int retries]])\",\"Set the value of a SNMP object\"],snmpwalk:[\"array snmpwalk(string host, string community, string object_id [, int timeout [, int retries]])\",\"Return all objects under the specified object id\"],socket_accept:[\"resource socket_accept(resource socket)\",\"Accepts a connection on the listening socket fd\"],socket_bind:[\"bool socket_bind(resource socket, string addr [, int port])\",\"Binds an open socket to a listening port, port is only specified in AF_INET family.\"],socket_clear_error:[\"void socket_clear_error([resource socket])\",\"Clears the error on the socket or the last error code.\"],socket_close:[\"void socket_close(resource socket)\",\"Closes a file descriptor\"],socket_connect:[\"bool socket_connect(resource socket, string addr [, int port])\",\"Opens a connection to addr:port on the socket specified by socket\"],socket_create:[\"resource socket_create(int domain, int type, int protocol)\",\"Creates an endpoint for communication in the domain specified by domain, of type specified by type\"],socket_create_listen:[\"resource socket_create_listen(int port[, int backlog])\",\"Opens a socket on port to accept connections\"],socket_create_pair:[\"bool socket_create_pair(int domain, int type, int protocol, array &fd)\",\"Creates a pair of indistinguishable sockets and stores them in fds.\"],socket_get_option:[\"mixed socket_get_option(resource socket, int level, int optname)\",\"Gets socket options for the socket\"],socket_getpeername:[\"bool socket_getpeername(resource socket, string &addr[, int &port])\",\"Queries the remote side of the given socket which may either result in host/port or in a UNIX filesystem path, dependent on its type.\"],socket_getsockname:[\"bool socket_getsockname(resource socket, string &addr[, int &port])\",\"Queries the remote side of the given socket which may either result in host/port or in a UNIX filesystem path, dependent on its type.\"],socket_last_error:[\"int socket_last_error([resource socket])\",\"Returns the last socket error (either the last used or the provided socket resource)\"],socket_listen:[\"bool socket_listen(resource socket[, int backlog])\",\"Sets the maximum number of connections allowed to be waited for on the socket specified by fd\"],socket_read:[\"string socket_read(resource socket, int length [, int type])\",\"Reads a maximum of length bytes from socket\"],socket_recv:[\"int socket_recv(resource socket, string &buf, int len, int flags)\",\"Receives data from a connected socket\"],socket_recvfrom:[\"int socket_recvfrom(resource socket, string &buf, int len, int flags, string &name [, int &port])\",\"Receives data from a socket, connected or not\"],socket_select:[\"int socket_select(array &read_fds, array &write_fds, array &except_fds, int tv_sec[, int tv_usec])\",\"Runs the select() system call on the sets mentioned with a timeout specified by tv_sec and tv_usec\"],socket_send:[\"int socket_send(resource socket, string buf, int len, int flags)\",\"Sends data to a connected socket\"],socket_sendto:[\"int socket_sendto(resource socket, string buf, int len, int flags, string addr [, int port])\",\"Sends a message to a socket, whether it is connected or not\"],socket_set_block:[\"bool socket_set_block(resource socket)\",\"Sets blocking mode on a socket resource\"],socket_set_nonblock:[\"bool socket_set_nonblock(resource socket)\",\"Sets nonblocking mode on a socket resource\"],socket_set_option:[\"bool socket_set_option(resource socket, int level, int optname, int|array optval)\",\"Sets socket options for the socket\"],socket_shutdown:[\"bool socket_shutdown(resource socket[, int how])\",\"Shuts down a socket for receiving, sending, or both.\"],socket_strerror:[\"string socket_strerror(int errno)\",\"Returns a string describing an error\"],socket_write:[\"int socket_write(resource socket, string buf[, int length])\",\"Writes the buffer to the socket resource, length is optional\"],solid_fetch_prev:[\"bool solid_fetch_prev(resource result_id)\",\"\"],sort:[\"bool sort(array &array_arg [, int sort_flags])\",\"Sort an array\"],soundex:[\"string soundex(string str)\",\"Calculate the soundex key of a string\"],spl_autoload:[\"void spl_autoload(string class_name [, string file_extensions])\",\"Default implementation for __autoload()\"],spl_autoload_call:[\"void spl_autoload_call(string class_name)\",\"Try all registerd autoload function to load the requested class\"],spl_autoload_extensions:[\"string spl_autoload_extensions([string file_extensions])\",\"Register and return default file extensions for spl_autoload\"],spl_autoload_functions:[\"false|array spl_autoload_functions()\",\"Return all registered __autoload() functionns\"],spl_autoload_register:['bool spl_autoload_register([mixed autoload_function = \"spl_autoload\" [, throw = true [, prepend]]])',\"Register given function as __autoload() implementation\"],spl_autoload_unregister:[\"bool spl_autoload_unregister(mixed autoload_function)\",\"Unregister given function as __autoload() implementation\"],spl_classes:[\"array spl_classes()\",\"Return an array containing the names of all clsses and interfaces defined in SPL\"],spl_object_hash:[\"string spl_object_hash(object obj)\",\"Return hash id for given object\"],split:[\"array split(string pattern, string string [, int limit])\",\"Split string into array by regular expression\"],spliti:[\"array spliti(string pattern, string string [, int limit])\",\"Split string into array by regular expression case-insensitive\"],sprintf:[\"string sprintf(string format [, mixed arg1 [, mixed ...]])\",\"Return a formatted string\"],sql_regcase:[\"string sql_regcase(string string)\",\"Make regular expression for case insensitive match\"],sqlite_array_query:[\"array sqlite_array_query(resource db, string query [ , int result_type [, bool decode_binary]])\",\"Executes a query against a given database and returns an array of arrays.\"],sqlite_busy_timeout:[\"void sqlite_busy_timeout(resource db, int ms)\",\"Set busy timeout duration. If ms <= 0, all busy handlers are disabled.\"],sqlite_changes:[\"int sqlite_changes(resource db)\",\"Returns the number of rows that were changed by the most recent SQL statement.\"],sqlite_close:[\"void sqlite_close(resource db)\",\"Closes an open sqlite database.\"],sqlite_column:[\"mixed sqlite_column(resource result, mixed index_or_name [, bool decode_binary])\",\"Fetches a column from the current row of a result set.\"],sqlite_create_aggregate:[\"bool sqlite_create_aggregate(resource db, string funcname, mixed step_func, mixed finalize_func[, long num_args])\",\"Registers an aggregate function for queries.\"],sqlite_create_function:[\"bool sqlite_create_function(resource db, string funcname, mixed callback[, long num_args])\",'Registers a \"regular\" function for queries.'],sqlite_current:[\"array sqlite_current(resource result [, int result_type [, bool decode_binary]])\",\"Fetches the current row from a result set as an array.\"],sqlite_error_string:[\"string sqlite_error_string(int error_code)\",\"Returns the textual description of an error code.\"],sqlite_escape_string:[\"string sqlite_escape_string(string item)\",\"Escapes a string for use as a query parameter.\"],sqlite_exec:[\"boolean sqlite_exec(string query, resource db[, string &error_message])\",\"Executes a result-less query against a given database\"],sqlite_factory:[\"object sqlite_factory(string filename [, int mode [, string &error_message]])\",\"Opens a SQLite database and creates an object for it. Will create the database if it does not exist.\"],sqlite_fetch_all:[\"array sqlite_fetch_all(resource result [, int result_type [, bool decode_binary]])\",\"Fetches all rows from a result set as an array of arrays.\"],sqlite_fetch_array:[\"array sqlite_fetch_array(resource result [, int result_type [, bool decode_binary]])\",\"Fetches the next row from a result set as an array.\"],sqlite_fetch_column_types:[\"resource sqlite_fetch_column_types(string table_name, resource db [, int result_type])\",\"Return an array of column types from a particular table.\"],sqlite_fetch_object:[\"object sqlite_fetch_object(resource result [, string class_name [, NULL|array ctor_params [, bool decode_binary]]])\",\"Fetches the next row from a result set as an object.\"],sqlite_fetch_single:[\"string sqlite_fetch_single(resource result [, bool decode_binary])\",\"Fetches the first column of a result set as a string.\"],sqlite_field_name:[\"string sqlite_field_name(resource result, int field_index)\",\"Returns the name of a particular field of a result set.\"],sqlite_has_prev:[\"bool sqlite_has_prev(resource result)\",\"* Returns whether a previous row is available.\"],sqlite_key:[\"int sqlite_key(resource result)\",\"Return the current row index of a buffered result.\"],sqlite_last_error:[\"int sqlite_last_error(resource db)\",\"Returns the error code of the last error for a database.\"],sqlite_last_insert_rowid:[\"int sqlite_last_insert_rowid(resource db)\",\"Returns the rowid of the most recently inserted row.\"],sqlite_libencoding:[\"string sqlite_libencoding()\",\"Returns the encoding (iso8859 or UTF-8) of the linked SQLite library.\"],sqlite_libversion:[\"string sqlite_libversion()\",\"Returns the version of the linked SQLite library.\"],sqlite_next:[\"bool sqlite_next(resource result)\",\"Seek to the next row number of a result set.\"],sqlite_num_fields:[\"int sqlite_num_fields(resource result)\",\"Returns the number of fields in a result set.\"],sqlite_num_rows:[\"int sqlite_num_rows(resource result)\",\"Returns the number of rows in a buffered result set.\"],sqlite_open:[\"resource sqlite_open(string filename [, int mode [, string &error_message]])\",\"Opens a SQLite database. Will create the database if it does not exist.\"],sqlite_popen:[\"resource sqlite_popen(string filename [, int mode [, string &error_message]])\",\"Opens a persistent handle to a SQLite database. Will create the database if it does not exist.\"],sqlite_prev:[\"bool sqlite_prev(resource result)\",\"* Seek to the previous row number of a result set.\"],sqlite_query:[\"resource sqlite_query(string query, resource db [, int result_type [, string &error_message]])\",\"Executes a query against a given database and returns a result handle.\"],sqlite_rewind:[\"bool sqlite_rewind(resource result)\",\"Seek to the first row number of a buffered result set.\"],sqlite_seek:[\"bool sqlite_seek(resource result, int row)\",\"Seek to a particular row number of a buffered result set.\"],sqlite_single_query:[\"array sqlite_single_query(resource db, string query [, bool first_row_only [, bool decode_binary]])\",\"Executes a query and returns either an array for one single column or the value of the first row.\"],sqlite_udf_decode_binary:[\"string sqlite_udf_decode_binary(string data)\",\"Decode binary encoding on a string parameter passed to an UDF.\"],sqlite_udf_encode_binary:[\"string sqlite_udf_encode_binary(string data)\",\"Apply binary encoding (if required) to a string to return from an UDF.\"],sqlite_unbuffered_query:[\"resource sqlite_unbuffered_query(string query, resource db [ , int result_type [, string &error_message]])\",\"Executes a query that does not prefetch and buffer all data.\"],sqlite_valid:[\"bool sqlite_valid(resource result)\",\"Returns whether more rows are available.\"],sqrt:[\"float sqrt(float number)\",\"Returns the square root of the number\"],srand:[\"void srand([int seed])\",\"Seeds random number generator\"],sscanf:[\"mixed sscanf(string str, string format [, string ...])\",\"Implements an ANSI C compatible sscanf\"],stat:[\"array stat(string filename)\",\"Give information about a file\"],str_getcsv:[\"array str_getcsv(string input[, string delimiter[, string enclosure[, string escape]]])\",\"Parse a CSV string into an array\"],str_ireplace:[\"mixed str_ireplace(mixed search, mixed replace, mixed subject [, int &replace_count])\",\"Replaces all occurrences of search in haystack with replace / case-insensitive\"],str_pad:[\"string str_pad(string input, int pad_length [, string pad_string [, int pad_type]])\",\"Returns input string padded on the left or right to specified length with pad_string\"],str_repeat:[\"string str_repeat(string input, int mult)\",\"Returns the input string repeat mult times\"],str_replace:[\"mixed str_replace(mixed search, mixed replace, mixed subject [, int &replace_count])\",\"Replaces all occurrences of search in haystack with replace\"],str_rot13:[\"string str_rot13(string str)\",\"Perform the rot13 transform on a string\"],str_shuffle:[\"void str_shuffle(string str)\",\"Shuffles string. One permutation of all possible is created\"],str_split:[\"array str_split(string str [, int split_length])\",\"Convert a string to an array. If split_length is specified, break the string down into chunks each split_length characters long.\"],str_word_count:[\"mixed str_word_count(string str, [int format [, string charlist]])\",'Counts the number of words inside a string. If format of 1 is specified,     then the function will return an array containing all the words     found inside the string. If format of 2 is specified, then the function     will return an associated array where the position of the word is the key     and the word itself is the value.          For the purpose of this function, \\'word\\' is defined as a locale dependent     string containing alphabetic characters, which also may contain, but not start     with \"\\'\" and \"-\" characters.'],strcasecmp:[\"int strcasecmp(string str1, string str2)\",\"Binary safe case-insensitive string comparison\"],strchr:[\"string strchr(string haystack, string needle)\",\"An alias for strstr\"],strcmp:[\"int strcmp(string str1, string str2)\",\"Binary safe string comparison\"],strcoll:[\"int strcoll(string str1, string str2)\",\"Compares two strings using the current locale\"],strcspn:[\"int strcspn(string str, string mask [, start [, len]])\",\"Finds length of initial segment consisting entirely of characters not found in mask. If start or/and length is provide works like strcspn(substr($s,$start,$len),$bad_chars)\"],stream_bucket_append:[\"void stream_bucket_append(resource brigade, resource bucket)\",\"Append bucket to brigade\"],stream_bucket_make_writeable:[\"object stream_bucket_make_writeable(resource brigade)\",\"Return a bucket object from the brigade for operating on\"],stream_bucket_new:[\"resource stream_bucket_new(resource stream, string buffer)\",\"Create a new bucket for use on the current stream\"],stream_bucket_prepend:[\"void stream_bucket_prepend(resource brigade, resource bucket)\",\"Prepend bucket to brigade\"],stream_context_create:[\"resource stream_context_create([array options[, array params]])\",\"Create a file context and optionally set parameters\"],stream_context_get_default:[\"resource stream_context_get_default([array options])\",\"Get a handle on the default file/stream context and optionally set parameters\"],stream_context_get_options:[\"array stream_context_get_options(resource context|resource stream)\",\"Retrieve options for a stream/wrapper/context\"],stream_context_get_params:[\"array stream_context_get_params(resource context|resource stream)\",\"Get parameters of a file context\"],stream_context_set_default:[\"resource stream_context_set_default(array options)\",\"Set default file/stream context, returns the context as a resource\"],stream_context_set_option:[\"bool stream_context_set_option(resource context|resource stream, string wrappername, string optionname, mixed value)\",\"Set an option for a wrapper\"],stream_context_set_params:[\"bool stream_context_set_params(resource context|resource stream, array options)\",\"Set parameters for a file context\"],stream_copy_to_stream:[\"long stream_copy_to_stream(resource source, resource dest [, long maxlen [, long pos]])\",\"Reads up to maxlen bytes from source stream and writes them to dest stream.\"],stream_filter_append:[\"resource stream_filter_append(resource stream, string filtername[, int read_write[, string filterparams]])\",\"Append a filter to a stream\"],stream_filter_prepend:[\"resource stream_filter_prepend(resource stream, string filtername[, int read_write[, string filterparams]])\",\"Prepend a filter to a stream\"],stream_filter_register:[\"bool stream_filter_register(string filtername, string classname)\",\"Registers a custom filter handler class\"],stream_filter_remove:[\"bool stream_filter_remove(resource stream_filter)\",\"Flushes any data in the filter's internal buffer, removes it from the chain, and frees the resource\"],stream_get_contents:[\"string stream_get_contents(resource source [, long maxlen [, long offset]])\",\"Reads all remaining bytes (or up to maxlen bytes) from a stream and returns them as a string.\"],stream_get_filters:[\"array stream_get_filters(void)\",\"Returns a list of registered filters\"],stream_get_line:[\"string stream_get_line(resource stream, int maxlen [, string ending])\",\"Read up to maxlen bytes from a stream or until the ending string is found\"],stream_get_meta_data:[\"array stream_get_meta_data(resource fp)\",\"Retrieves header/meta data from streams/file pointers\"],stream_get_transports:[\"array stream_get_transports()\",\"Retrieves list of registered socket transports\"],stream_get_wrappers:[\"array stream_get_wrappers()\",\"Retrieves list of registered stream wrappers\"],stream_is_local:[\"bool stream_is_local(resource stream|string url)\",\"\"],stream_resolve_include_path:[\"string stream_resolve_include_path(string filename)\",\"Determine what file will be opened by calls to fopen() with a relative path\"],stream_select:[\"int stream_select(array &read_streams, array &write_streams, array &except_streams, int tv_sec[, int tv_usec])\",\"Runs the select() system call on the sets of streams with a timeout specified by tv_sec and tv_usec\"],stream_set_blocking:[\"bool stream_set_blocking(resource socket, int mode)\",\"Set blocking/non-blocking mode on a socket or stream\"],stream_set_timeout:[\"bool stream_set_timeout(resource stream, int seconds [, int microseconds])\",\"Set timeout on stream read to seconds + microseonds\"],stream_set_write_buffer:[\"int stream_set_write_buffer(resource fp, int buffer)\",\"Set file write buffer\"],stream_socket_accept:[\"resource stream_socket_accept(resource serverstream, [ double timeout [, string &peername ]])\",\"Accept a client connection from a server socket\"],stream_socket_client:[\"resource stream_socket_client(string remoteaddress [, long &errcode [, string &errstring [, double timeout [, long flags [, resource context]]]]])\",\"Open a client connection to a remote address\"],stream_socket_enable_crypto:[\"int stream_socket_enable_crypto(resource stream, bool enable [, int cryptokind [, resource sessionstream]])\",\"Enable or disable a specific kind of crypto on the stream\"],stream_socket_get_name:[\"string stream_socket_get_name(resource stream, bool want_peer)\",\"Returns either the locally bound or remote name for a socket stream\"],stream_socket_pair:[\"array stream_socket_pair(int domain, int type, int protocol)\",\"Creates a pair of connected, indistinguishable socket streams\"],stream_socket_recvfrom:[\"string stream_socket_recvfrom(resource stream, long amount [, long flags [, string &remote_addr]])\",\"Receives data from a socket stream\"],stream_socket_sendto:[\"long stream_socket_sendto(resouce stream, string data [, long flags [, string target_addr]])\",\"Send data to a socket stream.  If target_addr is specified it must be in dotted quad (or [ipv6]) format\"],stream_socket_server:[\"resource stream_socket_server(string localaddress [, long &errcode [, string &errstring [, long flags [, resource context]]]])\",\"Create a server socket bound to localaddress\"],stream_socket_shutdown:[\"int stream_socket_shutdown(resource stream, int how)\",\"causes all or part of a full-duplex connection on the socket associated  with stream to be shut down.  If how is SHUT_RD,  further receptions will  be disallowed. If how is SHUT_WR, further transmissions will be disallowed.  If how is SHUT_RDWR,  further  receptions and transmissions will be  disallowed.\"],stream_supports_lock:[\"bool stream_supports_lock(resource stream)\",\"Tells wether the stream supports locking through flock().\"],stream_wrapper_register:[\"bool stream_wrapper_register(string protocol, string classname[, integer flags])\",\"Registers a custom URL protocol handler class\"],stream_wrapper_restore:[\"bool stream_wrapper_restore(string protocol)\",\"Restore the original protocol handler, overriding if necessary\"],stream_wrapper_unregister:[\"bool stream_wrapper_unregister(string protocol)\",\"Unregister a wrapper for the life of the current request.\"],strftime:[\"string strftime(string format [, int timestamp])\",\"Format a local time/date according to locale settings\"],strip_tags:[\"string strip_tags(string str [, string allowable_tags])\",\"Strips HTML and PHP tags from a string\"],stripcslashes:[\"string stripcslashes(string str)\",\"Strips backslashes from a string. Uses C-style conventions\"],stripos:[\"int stripos(string haystack, string needle [, int offset])\",\"Finds position of first occurrence of a string within another, case insensitive\"],stripslashes:[\"string stripslashes(string str)\",\"Strips backslashes from a string\"],stristr:[\"string stristr(string haystack, string needle[, bool part])\",\"Finds first occurrence of a string within another, case insensitive\"],strlen:[\"int strlen(string str)\",\"Get string length\"],strnatcasecmp:[\"int strnatcasecmp(string s1, string s2)\",\"Returns the result of case-insensitive string comparison using 'natural' algorithm\"],strnatcmp:[\"int strnatcmp(string s1, string s2)\",\"Returns the result of string comparison using 'natural' algorithm\"],strncasecmp:[\"int strncasecmp(string str1, string str2, int len)\",\"Binary safe string comparison\"],strncmp:[\"int strncmp(string str1, string str2, int len)\",\"Binary safe string comparison\"],strpbrk:[\"array strpbrk(string haystack, string char_list)\",\"Search a string for any of a set of characters\"],strpos:[\"int strpos(string haystack, string needle [, int offset])\",\"Finds position of first occurrence of a string within another\"],strptime:[\"string strptime(string timestamp, string format)\",\"Parse a time/date generated with strftime()\"],strrchr:[\"string strrchr(string haystack, string needle)\",\"Finds the last occurrence of a character in a string within another\"],strrev:[\"string strrev(string str)\",\"Reverse a string\"],strripos:[\"int strripos(string haystack, string needle [, int offset])\",\"Finds position of last occurrence of a string within another string\"],strrpos:[\"int strrpos(string haystack, string needle [, int offset])\",\"Finds position of last occurrence of a string within another string\"],strspn:[\"int strspn(string str, string mask [, start [, len]])\",\"Finds length of initial segment consisting entirely of characters found in mask. If start or/and length is provided works like strspn(substr($s,$start,$len),$good_chars)\"],strstr:[\"string strstr(string haystack, string needle[, bool part])\",\"Finds first occurrence of a string within another\"],strtok:[\"string strtok([string str,] string token)\",\"Tokenize a string\"],strtolower:[\"string strtolower(string str)\",\"Makes a string lowercase\"],strtotime:[\"int strtotime(string time [, int now ])\",\"Convert string representation of date and time to a timestamp\"],strtoupper:[\"string strtoupper(string str)\",\"Makes a string uppercase\"],strtr:[\"string strtr(string str, string from[, string to])\",\"Translates characters in str using given translation tables\"],strval:[\"string strval(mixed var)\",\"Get the string value of a variable\"],substr:[\"string substr(string str, int start [, int length])\",\"Returns part of a string\"],substr_compare:[\"int substr_compare(string main_str, string str, int offset [, int length [, bool case_sensitivity]])\",\"Binary safe optionally case insensitive comparison of 2 strings from an offset, up to length characters\"],substr_count:[\"int substr_count(string haystack, string needle [, int offset [, int length]])\",\"Returns the number of times a substring occurs in the string\"],substr_replace:[\"mixed substr_replace(mixed str, mixed repl, mixed start [, mixed length])\",\"Replaces part of a string with another string\"],sybase_affected_rows:[\"int sybase_affected_rows([resource link_id])\",\"Get number of affected rows in last query\"],sybase_close:[\"bool sybase_close([resource link_id])\",\"Close Sybase connection\"],sybase_connect:[\"int sybase_connect([string host [, string user [, string password [, string charset [, string appname [, bool new]]]]]])\",\"Open Sybase server connection\"],sybase_data_seek:[\"bool sybase_data_seek(resource result, int offset)\",\"Move internal row pointer\"],sybase_deadlock_retry_count:[\"void sybase_deadlock_retry_count(int retry_count)\",\"Sets deadlock retry count\"],sybase_fetch_array:[\"array sybase_fetch_array(resource result)\",\"Fetch row as array\"],sybase_fetch_assoc:[\"array sybase_fetch_assoc(resource result)\",\"Fetch row as array without numberic indices\"],sybase_fetch_field:[\"object sybase_fetch_field(resource result [, int offset])\",\"Get field information\"],sybase_fetch_object:[\"object sybase_fetch_object(resource result [, mixed object])\",\"Fetch row as object\"],sybase_fetch_row:[\"array sybase_fetch_row(resource result)\",\"Get row as enumerated array\"],sybase_field_seek:[\"bool sybase_field_seek(resource result, int offset)\",\"Set field offset\"],sybase_free_result:[\"bool sybase_free_result(resource result)\",\"Free result memory\"],sybase_get_last_message:[\"string sybase_get_last_message(void)\",\"Returns the last message from server (over min_message_severity)\"],sybase_min_client_severity:[\"void sybase_min_client_severity(int severity)\",\"Sets minimum client severity\"],sybase_min_server_severity:[\"void sybase_min_server_severity(int severity)\",\"Sets minimum server severity\"],sybase_num_fields:[\"int sybase_num_fields(resource result)\",\"Get number of fields in result\"],sybase_num_rows:[\"int sybase_num_rows(resource result)\",\"Get number of rows in result\"],sybase_pconnect:[\"int sybase_pconnect([string host [, string user [, string password [, string charset [, string appname]]]]])\",\"Open persistent Sybase connection\"],sybase_query:[\"int sybase_query(string query [, resource link_id])\",\"Send Sybase query\"],sybase_result:[\"string sybase_result(resource result, int row, mixed field)\",\"Get result data\"],sybase_select_db:[\"bool sybase_select_db(string database [, resource link_id])\",\"Select Sybase database\"],sybase_set_message_handler:[\"bool sybase_set_message_handler(mixed error_func [, resource connection])\",\"Set the error handler, to be called when a server message is raised.     If error_func is NULL the handler will be deleted\"],sybase_unbuffered_query:[\"int sybase_unbuffered_query(string query [, resource link_id])\",\"Send Sybase query\"],symlink:[\"int symlink(string target, string link)\",\"Create a symbolic link\"],sys_get_temp_dir:[\"string sys_get_temp_dir()\",\"Returns directory path used for temporary files\"],sys_getloadavg:[\"array sys_getloadavg()\",\"\"],syslog:[\"bool syslog(int priority, string message)\",\"Generate a system log message\"],system:[\"int system(string command [, int &return_value])\",\"Execute an external program and display output\"],tan:[\"float tan(float number)\",\"Returns the tangent of the number in radians\"],tanh:[\"float tanh(float number)\",\"Returns the hyperbolic tangent of the number, defined as sinh(number)/cosh(number)\"],tempnam:[\"string tempnam(string dir, string prefix)\",\"Create a unique filename in a directory\"],textdomain:[\"string textdomain(string domain)\",'Set the textdomain to \"domain\". Returns the current domain'],tidy_access_count:[\"int tidy_access_count()\",\"Returns the Number of Tidy accessibility warnings encountered for specified document.\"],tidy_clean_repair:[\"boolean tidy_clean_repair()\",\"Execute configured cleanup and repair operations on parsed markup\"],tidy_config_count:[\"int tidy_config_count()\",\"Returns the Number of Tidy configuration errors encountered for specified document.\"],tidy_diagnose:[\"boolean tidy_diagnose()\",\"Run configured diagnostics on parsed and repaired markup.\"],tidy_error_count:[\"int tidy_error_count()\",\"Returns the Number of Tidy errors encountered for specified document.\"],tidy_get_body:[\"TidyNode tidy_get_body(resource tidy)\",\"Returns a TidyNode Object starting from the <BODY> tag of the tidy parse tree\"],tidy_get_config:[\"array tidy_get_config()\",\"Get current Tidy configuarion\"],tidy_get_error_buffer:[\"string tidy_get_error_buffer([boolean detailed])\",\"Return warnings and errors which occured parsing the specified document\"],tidy_get_head:[\"TidyNode tidy_get_head()\",\"Returns a TidyNode Object starting from the <HEAD> tag of the tidy parse tree\"],tidy_get_html:[\"TidyNode tidy_get_html()\",\"Returns a TidyNode Object starting from the <HTML> tag of the tidy parse tree\"],tidy_get_html_ver:[\"int tidy_get_html_ver()\",\"Get the Detected HTML version for the specified document.\"],tidy_get_opt_doc:[\"string tidy_get_opt_doc(tidy resource, string optname)\",\"Returns the documentation for the given option name\"],tidy_get_output:[\"string tidy_get_output()\",\"Return a string representing the parsed tidy markup\"],tidy_get_release:[\"string tidy_get_release()\",\"Get release date (version) for Tidy library\"],tidy_get_root:[\"TidyNode tidy_get_root()\",\"Returns a TidyNode Object representing the root of the tidy parse tree\"],tidy_get_status:[\"int tidy_get_status()\",\"Get status of specfied document.\"],tidy_getopt:[\"mixed tidy_getopt(string option)\",\"Returns the value of the specified configuration option for the tidy document.\"],tidy_is_xhtml:[\"boolean tidy_is_xhtml()\",\"Indicates if the document is a XHTML document.\"],tidy_is_xml:[\"boolean tidy_is_xml()\",\"Indicates if the document is a generic (non HTML/XHTML) XML document.\"],tidy_parse_file:[\"boolean tidy_parse_file(string file [, mixed config_options [, string encoding [, bool use_include_path]]])\",\"Parse markup in file or URI\"],tidy_parse_string:[\"bool tidy_parse_string(string input [, mixed config_options [, string encoding]])\",\"Parse a document stored in a string\"],tidy_repair_file:[\"boolean tidy_repair_file(string filename [, mixed config_file [, string encoding [, bool use_include_path]]])\",\"Repair a file using an optionally provided configuration file\"],tidy_repair_string:[\"boolean tidy_repair_string(string data [, mixed config_file [, string encoding]])\",\"Repair a string using an optionally provided configuration file\"],tidy_warning_count:[\"int tidy_warning_count()\",\"Returns the Number of Tidy warnings encountered for specified document.\"],time:[\"int time(void)\",\"Return current UNIX timestamp\"],time_nanosleep:[\"mixed time_nanosleep(long seconds, long nanoseconds)\",\"Delay for a number of seconds and nano seconds\"],time_sleep_until:[\"mixed time_sleep_until(float timestamp)\",\"Make the script sleep until the specified time\"],timezone_abbreviations_list:[\"array timezone_abbreviations_list()\",\"Returns associative array containing dst, offset and the timezone name\"],timezone_identifiers_list:[\"array timezone_identifiers_list([long what[, string country]])\",\"Returns numerically index array with all timezone identifiers.\"],timezone_location_get:[\"array timezone_location_get()\",\"Returns location information for a timezone, including country code, latitude/longitude and comments\"],timezone_name_from_abbr:[\"string timezone_name_from_abbr(string abbr[, long gmtOffset[, long isdst]])\",\"Returns the timezone name from abbrevation\"],timezone_name_get:[\"string timezone_name_get(DateTimeZone object)\",\"Returns the name of the timezone.\"],timezone_offset_get:[\"long timezone_offset_get(DateTimeZone object, DateTime object)\",\"Returns the timezone offset.\"],timezone_open:[\"DateTimeZone timezone_open(string timezone)\",\"Returns new DateTimeZone object\"],timezone_transitions_get:[\"array timezone_transitions_get(DateTimeZone object [, long timestamp_begin [, long timestamp_end ]])\",\"Returns numerically indexed array containing associative array for all transitions in the specified range for the timezone.\"],timezone_version_get:[\"array timezone_version_get()\",\"Returns the Olson database version number.\"],tmpfile:[\"resource tmpfile(void)\",\"Create a temporary file that will be deleted automatically after use\"],token_get_all:[\"array token_get_all(string source)\",\"\"],token_name:[\"string token_name(int type)\",\"\"],touch:[\"bool touch(string filename [, int time [, int atime]])\",\"Set modification time of file\"],trigger_error:[\"void trigger_error(string messsage [, int error_type])\",\"Generates a user-level error/warning/notice message\"],trim:[\"string trim(string str [, string character_mask])\",\"Strips whitespace from the beginning and end of a string\"],uasort:[\"bool uasort(array array_arg, string cmp_function)\",\"Sort an array with a user-defined comparison function and maintain index association\"],ucfirst:[\"string ucfirst(string str)\",\"Make a string's first character lowercase\"],ucwords:[\"string ucwords(string str)\",\"Uppercase the first character of every word in a string\"],uksort:[\"bool uksort(array array_arg, string cmp_function)\",\"Sort an array by keys using a user-defined comparison function\"],umask:[\"int umask([int mask])\",\"Return or change the umask\"],uniqid:[\"string uniqid([string prefix [, bool more_entropy]])\",\"Generates a unique ID\"],unixtojd:[\"int unixtojd([int timestamp])\",\"Convert UNIX timestamp to Julian Day\"],unlink:[\"bool unlink(string filename[, context context])\",\"Delete a file\"],unpack:[\"array unpack(string format, string input)\",\"Unpack binary string into named array elements according to format argument\"],unregister_tick_function:[\"void unregister_tick_function(string function_name)\",\"Unregisters a tick callback function\"],unserialize:[\"mixed unserialize(string variable_representation)\",\"Takes a string representation of variable and recreates it\"],unset:[\"void unset (mixed var [, mixed var])\",\"Unset a given variable\"],urldecode:[\"string urldecode(string str)\",\"Decodes URL-encoded string\"],urlencode:[\"string urlencode(string str)\",\"URL-encodes string\"],usleep:[\"void usleep(int micro_seconds)\",\"Delay for a given number of micro seconds\"],usort:[\"bool usort(array array_arg, string cmp_function)\",\"Sort an array by values using a user-defined comparison function\"],utf8_decode:[\"string utf8_decode(string data)\",\"Converts a UTF-8 encoded string to ISO-8859-1\"],utf8_encode:[\"string utf8_encode(string data)\",\"Encodes an ISO-8859-1 string to UTF-8\"],var_dump:[\"void var_dump(mixed var)\",\"Dumps a string representation of variable to output\"],var_export:[\"mixed var_export(mixed var [, bool return])\",\"Outputs or returns a string representation of a variable\"],variant_abs:[\"mixed variant_abs(mixed left)\",\"Returns the absolute value of a variant\"],variant_add:[\"mixed variant_add(mixed left, mixed right)\",'\"Adds\" two variant values together and returns the result'],variant_and:[\"mixed variant_and(mixed left, mixed right)\",\"performs a bitwise AND operation between two variants and returns the result\"],variant_cast:[\"object variant_cast(object variant, int type)\",\"Convert a variant into a new variant object of another type\"],variant_cat:[\"mixed variant_cat(mixed left, mixed right)\",\"concatenates two variant values together and returns the result\"],variant_cmp:[\"int variant_cmp(mixed left, mixed right [, int lcid [, int flags]])\",\"Compares two variants\"],variant_date_from_timestamp:[\"object variant_date_from_timestamp(int timestamp)\",\"Returns a variant date representation of a unix timestamp\"],variant_date_to_timestamp:[\"int variant_date_to_timestamp(object variant)\",\"Converts a variant date/time value to unix timestamp\"],variant_div:[\"mixed variant_div(mixed left, mixed right)\",\"Returns the result from dividing two variants\"],variant_eqv:[\"mixed variant_eqv(mixed left, mixed right)\",\"Performs a bitwise equivalence on two variants\"],variant_fix:[\"mixed variant_fix(mixed left)\",\"Returns the integer part ? of a variant\"],variant_get_type:[\"int variant_get_type(object variant)\",\"Returns the VT_XXX type code for a variant\"],variant_idiv:[\"mixed variant_idiv(mixed left, mixed right)\",\"Converts variants to integers and then returns the result from dividing them\"],variant_imp:[\"mixed variant_imp(mixed left, mixed right)\",\"Performs a bitwise implication on two variants\"],variant_int:[\"mixed variant_int(mixed left)\",\"Returns the integer portion of a variant\"],variant_mod:[\"mixed variant_mod(mixed left, mixed right)\",\"Divides two variants and returns only the remainder\"],variant_mul:[\"mixed variant_mul(mixed left, mixed right)\",\"multiplies the values of the two variants and returns the result\"],variant_neg:[\"mixed variant_neg(mixed left)\",\"Performs logical negation on a variant\"],variant_not:[\"mixed variant_not(mixed left)\",\"Performs bitwise not negation on a variant\"],variant_or:[\"mixed variant_or(mixed left, mixed right)\",\"Performs a logical disjunction on two variants\"],variant_pow:[\"mixed variant_pow(mixed left, mixed right)\",\"Returns the result of performing the power function with two variants\"],variant_round:[\"mixed variant_round(mixed left, int decimals)\",\"Rounds a variant to the specified number of decimal places\"],variant_set:[\"void variant_set(object variant, mixed value)\",\"Assigns a new value for a variant object\"],variant_set_type:[\"void variant_set_type(object variant, int type)\",'Convert a variant into another type.  Variant is modified \"in-place\"'],variant_sub:[\"mixed variant_sub(mixed left, mixed right)\",\"subtracts the value of the right variant from the left variant value and returns the result\"],variant_xor:[\"mixed variant_xor(mixed left, mixed right)\",\"Performs a logical exclusion on two variants\"],version_compare:[\"int version_compare(string ver1, string ver2 [, string oper])\",'Compares two \"PHP-standardized\" version number strings'],vfprintf:[\"int vfprintf(resource stream, string format, array args)\",\"Output a formatted string into a stream\"],virtual:[\"bool virtual(string filename)\",\"Perform an Apache sub-request\"],vprintf:[\"int vprintf(string format, array args)\",\"Output a formatted string\"],vsprintf:[\"string vsprintf(string format, array args)\",\"Return a formatted string\"],wddx_add_vars:[\"int wddx_add_vars(resource packet_id,  mixed var_names [, mixed ...])\",\"Serializes given variables and adds them to packet given by packet_id\"],wddx_deserialize:[\"mixed wddx_deserialize(mixed packet)\",\"Deserializes given packet and returns a PHP value\"],wddx_packet_end:[\"string wddx_packet_end(resource packet_id)\",\"Ends specified WDDX packet and returns the string containing the packet\"],wddx_packet_start:[\"resource wddx_packet_start([string comment])\",\"Starts a WDDX packet with optional comment and returns the packet id\"],wddx_serialize_value:[\"string wddx_serialize_value(mixed var [, string comment])\",\"Creates a new packet and serializes the given value\"],wddx_serialize_vars:[\"string wddx_serialize_vars(mixed var_name [, mixed ...])\",\"Creates a new packet and serializes given variables into a struct\"],wordwrap:[\"string wordwrap(string str [, int width [, string break [, boolean cut]]])\",\"Wraps buffer to selected number of characters using string break char\"],xml_error_string:[\"string xml_error_string(int code)\",\"Get XML parser error string\"],xml_get_current_byte_index:[\"int xml_get_current_byte_index(resource parser)\",\"Get current byte index for an XML parser\"],xml_get_current_column_number:[\"int xml_get_current_column_number(resource parser)\",\"Get current column number for an XML parser\"],xml_get_current_line_number:[\"int xml_get_current_line_number(resource parser)\",\"Get current line number for an XML parser\"],xml_get_error_code:[\"int xml_get_error_code(resource parser)\",\"Get XML parser error code\"],xml_parse:[\"int xml_parse(resource parser, string data [, int isFinal])\",\"Start parsing an XML document\"],xml_parse_into_struct:[\"int xml_parse_into_struct(resource parser, string data, array &values [, array &index ])\",\"Parsing a XML document\"],xml_parser_create:[\"resource xml_parser_create([string encoding])\",\"Create an XML parser\"],xml_parser_create_ns:[\"resource xml_parser_create_ns([string encoding [, string sep]])\",\"Create an XML parser\"],xml_parser_free:[\"int xml_parser_free(resource parser)\",\"Free an XML parser\"],xml_parser_get_option:[\"int xml_parser_get_option(resource parser, int option)\",\"Get options from an XML parser\"],xml_parser_set_option:[\"int xml_parser_set_option(resource parser, int option, mixed value)\",\"Set options in an XML parser\"],xml_set_character_data_handler:[\"int xml_set_character_data_handler(resource parser, string hdl)\",\"Set up character data handler\"],xml_set_default_handler:[\"int xml_set_default_handler(resource parser, string hdl)\",\"Set up default handler\"],xml_set_element_handler:[\"int xml_set_element_handler(resource parser, string shdl, string ehdl)\",\"Set up start and end element handlers\"],xml_set_end_namespace_decl_handler:[\"int xml_set_end_namespace_decl_handler(resource parser, string hdl)\",\"Set up character data handler\"],xml_set_external_entity_ref_handler:[\"int xml_set_external_entity_ref_handler(resource parser, string hdl)\",\"Set up external entity reference handler\"],xml_set_notation_decl_handler:[\"int xml_set_notation_decl_handler(resource parser, string hdl)\",\"Set up notation declaration handler\"],xml_set_object:[\"int xml_set_object(resource parser, object &obj)\",\"Set up object which should be used for callbacks\"],xml_set_processing_instruction_handler:[\"int xml_set_processing_instruction_handler(resource parser, string hdl)\",\"Set up processing instruction (PI) handler\"],xml_set_start_namespace_decl_handler:[\"int xml_set_start_namespace_decl_handler(resource parser, string hdl)\",\"Set up character data handler\"],xml_set_unparsed_entity_decl_handler:[\"int xml_set_unparsed_entity_decl_handler(resource parser, string hdl)\",\"Set up unparsed entity declaration handler\"],xmlrpc_decode:[\"array xmlrpc_decode(string xml [, string encoding])\",\"Decodes XML into native PHP types\"],xmlrpc_decode_request:[\"array xmlrpc_decode_request(string xml, string& method [, string encoding])\",\"Decodes XML into native PHP types\"],xmlrpc_encode:[\"string xmlrpc_encode(mixed value)\",\"Generates XML for a PHP value\"],xmlrpc_encode_request:[\"string xmlrpc_encode_request(string method, mixed params [, array output_options])\",\"Generates XML for a method request\"],xmlrpc_get_type:[\"string xmlrpc_get_type(mixed value)\",\"Gets xmlrpc type for a PHP value. Especially useful for base64 and datetime strings\"],xmlrpc_is_fault:[\"bool xmlrpc_is_fault(array)\",\"Determines if an array value represents an XMLRPC fault.\"],xmlrpc_parse_method_descriptions:[\"array xmlrpc_parse_method_descriptions(string xml)\",\"Decodes XML into a list of method descriptions\"],xmlrpc_server_add_introspection_data:[\"int xmlrpc_server_add_introspection_data(resource server, array desc)\",\"Adds introspection documentation\"],xmlrpc_server_call_method:[\"mixed xmlrpc_server_call_method(resource server, string xml, mixed user_data [, array output_options])\",\"Parses XML requests and call methods\"],xmlrpc_server_create:[\"resource xmlrpc_server_create(void)\",\"Creates an xmlrpc server\"],xmlrpc_server_destroy:[\"int xmlrpc_server_destroy(resource server)\",\"Destroys server resources\"],xmlrpc_server_register_introspection_callback:[\"bool xmlrpc_server_register_introspection_callback(resource server, string function)\",\"Register a PHP function to generate documentation\"],xmlrpc_server_register_method:[\"bool xmlrpc_server_register_method(resource server, string method_name, string function)\",\"Register a PHP function to handle method matching method_name\"],xmlrpc_set_type:[\"bool xmlrpc_set_type(string value, string type)\",\"Sets xmlrpc type, base64 or datetime, for a PHP string value\"],xmlwriter_end_attribute:[\"bool xmlwriter_end_attribute(resource xmlwriter)\",\"End attribute - returns FALSE on error\"],xmlwriter_end_cdata:[\"bool xmlwriter_end_cdata(resource xmlwriter)\",\"End current CDATA - returns FALSE on error\"],xmlwriter_end_comment:[\"bool xmlwriter_end_comment(resource xmlwriter)\",\"Create end comment - returns FALSE on error\"],xmlwriter_end_document:[\"bool xmlwriter_end_document(resource xmlwriter)\",\"End current document - returns FALSE on error\"],xmlwriter_end_dtd:[\"bool xmlwriter_end_dtd(resource xmlwriter)\",\"End current DTD - returns FALSE on error\"],xmlwriter_end_dtd_attlist:[\"bool xmlwriter_end_dtd_attlist(resource xmlwriter)\",\"End current DTD AttList - returns FALSE on error\"],xmlwriter_end_dtd_element:[\"bool xmlwriter_end_dtd_element(resource xmlwriter)\",\"End current DTD element - returns FALSE on error\"],xmlwriter_end_dtd_entity:[\"bool xmlwriter_end_dtd_entity(resource xmlwriter)\",\"End current DTD Entity - returns FALSE on error\"],xmlwriter_end_element:[\"bool xmlwriter_end_element(resource xmlwriter)\",\"End current element - returns FALSE on error\"],xmlwriter_end_pi:[\"bool xmlwriter_end_pi(resource xmlwriter)\",\"End current PI - returns FALSE on error\"],xmlwriter_flush:[\"mixed xmlwriter_flush(resource xmlwriter [,bool empty])\",\"Output current buffer\"],xmlwriter_full_end_element:[\"bool xmlwriter_full_end_element(resource xmlwriter)\",\"End current element - returns FALSE on error\"],xmlwriter_open_memory:[\"resource xmlwriter_open_memory()\",\"Create new xmlwriter using memory for string output\"],xmlwriter_open_uri:[\"resource xmlwriter_open_uri(resource xmlwriter, string source)\",\"Create new xmlwriter using source uri for output\"],xmlwriter_output_memory:[\"string xmlwriter_output_memory(resource xmlwriter [,bool flush])\",\"Output current buffer as string\"],xmlwriter_set_indent:[\"bool xmlwriter_set_indent(resource xmlwriter, bool indent)\",\"Toggle indentation on/off - returns FALSE on error\"],xmlwriter_set_indent_string:[\"bool xmlwriter_set_indent_string(resource xmlwriter, string indentString)\",\"Set string used for indenting - returns FALSE on error\"],xmlwriter_start_attribute:[\"bool xmlwriter_start_attribute(resource xmlwriter, string name)\",\"Create start attribute - returns FALSE on error\"],xmlwriter_start_attribute_ns:[\"bool xmlwriter_start_attribute_ns(resource xmlwriter, string prefix, string name, string uri)\",\"Create start namespaced attribute - returns FALSE on error\"],xmlwriter_start_cdata:[\"bool xmlwriter_start_cdata(resource xmlwriter)\",\"Create start CDATA tag - returns FALSE on error\"],xmlwriter_start_comment:[\"bool xmlwriter_start_comment(resource xmlwriter)\",\"Create start comment - returns FALSE on error\"],xmlwriter_start_document:[\"bool xmlwriter_start_document(resource xmlwriter, string version, string encoding, string standalone)\",\"Create document tag - returns FALSE on error\"],xmlwriter_start_dtd:[\"bool xmlwriter_start_dtd(resource xmlwriter, string name, string pubid, string sysid)\",\"Create start DTD tag - returns FALSE on error\"],xmlwriter_start_dtd_attlist:[\"bool xmlwriter_start_dtd_attlist(resource xmlwriter, string name)\",\"Create start DTD AttList - returns FALSE on error\"],xmlwriter_start_dtd_element:[\"bool xmlwriter_start_dtd_element(resource xmlwriter, string name)\",\"Create start DTD element - returns FALSE on error\"],xmlwriter_start_dtd_entity:[\"bool xmlwriter_start_dtd_entity(resource xmlwriter, string name, bool isparam)\",\"Create start DTD Entity - returns FALSE on error\"],xmlwriter_start_element:[\"bool xmlwriter_start_element(resource xmlwriter, string name)\",\"Create start element tag - returns FALSE on error\"],xmlwriter_start_element_ns:[\"bool xmlwriter_start_element_ns(resource xmlwriter, string prefix, string name, string uri)\",\"Create start namespaced element tag - returns FALSE on error\"],xmlwriter_start_pi:[\"bool xmlwriter_start_pi(resource xmlwriter, string target)\",\"Create start PI tag - returns FALSE on error\"],xmlwriter_text:[\"bool xmlwriter_text(resource xmlwriter, string content)\",\"Write text - returns FALSE on error\"],xmlwriter_write_attribute:[\"bool xmlwriter_write_attribute(resource xmlwriter, string name, string content)\",\"Write full attribute - returns FALSE on error\"],xmlwriter_write_attribute_ns:[\"bool xmlwriter_write_attribute_ns(resource xmlwriter, string prefix, string name, string uri, string content)\",\"Write full namespaced attribute - returns FALSE on error\"],xmlwriter_write_cdata:[\"bool xmlwriter_write_cdata(resource xmlwriter, string content)\",\"Write full CDATA tag - returns FALSE on error\"],xmlwriter_write_comment:[\"bool xmlwriter_write_comment(resource xmlwriter, string content)\",\"Write full comment tag - returns FALSE on error\"],xmlwriter_write_dtd:[\"bool xmlwriter_write_dtd(resource xmlwriter, string name, string pubid, string sysid, string subset)\",\"Write full DTD tag - returns FALSE on error\"],xmlwriter_write_dtd_attlist:[\"bool xmlwriter_write_dtd_attlist(resource xmlwriter, string name, string content)\",\"Write full DTD AttList tag - returns FALSE on error\"],xmlwriter_write_dtd_element:[\"bool xmlwriter_write_dtd_element(resource xmlwriter, string name, string content)\",\"Write full DTD element tag - returns FALSE on error\"],xmlwriter_write_dtd_entity:[\"bool xmlwriter_write_dtd_entity(resource xmlwriter, string name, string content [, int pe [, string pubid [, string sysid [, string ndataid]]]])\",\"Write full DTD Entity tag - returns FALSE on error\"],xmlwriter_write_element:[\"bool xmlwriter_write_element(resource xmlwriter, string name[, string content])\",\"Write full element tag - returns FALSE on error\"],xmlwriter_write_element_ns:[\"bool xmlwriter_write_element_ns(resource xmlwriter, string prefix, string name, string uri[, string content])\",\"Write full namesapced element tag - returns FALSE on error\"],xmlwriter_write_pi:[\"bool xmlwriter_write_pi(resource xmlwriter, string target, string content)\",\"Write full PI tag - returns FALSE on error\"],xmlwriter_write_raw:[\"bool xmlwriter_write_raw(resource xmlwriter, string content)\",\"Write text - returns FALSE on error\"],xsl_xsltprocessor_get_parameter:[\"string xsl_xsltprocessor_get_parameter(string namespace, string name);\",\"\"],xsl_xsltprocessor_has_exslt_support:[\"bool xsl_xsltprocessor_has_exslt_support();\",\"\"],xsl_xsltprocessor_import_stylesheet:[\"void xsl_xsltprocessor_import_stylesheet(domdocument doc);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html# Since:\"],xsl_xsltprocessor_register_php_functions:[\"void xsl_xsltprocessor_register_php_functions([mixed $restrict]);\",\"\"],xsl_xsltprocessor_remove_parameter:[\"bool xsl_xsltprocessor_remove_parameter(string namespace, string name);\",\"\"],xsl_xsltprocessor_set_parameter:[\"bool xsl_xsltprocessor_set_parameter(string namespace, mixed name [, string value]);\",\"\"],xsl_xsltprocessor_set_profiling:[\"bool xsl_xsltprocessor_set_profiling(string filename) */\",'PHP_FUNCTION(xsl_xsltprocessor_set_profiling) {  zval *id;  xsl_object *intern;  char *filename = NULL;  int filename_len;  DOM_GET_THIS(id);   if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, \"s!\", &filename, &filename_len) == SUCCESS) {   intern = (xsl_object *)zend_object_store_get_object(id TSRMLS_CC);   if (intern->profiling) {    efree(intern->profiling);   }   if (filename != NULL) {    intern->profiling = estrndup(filename,filename_len);   } else {    intern->profiling = NULL;   }   RETURN_TRUE;  } else {   WRONG_PARAM_COUNT;  } } /* }}} end xsl_xsltprocessor_set_profiling'],xsl_xsltprocessor_transform_to_doc:[\"domdocument xsl_xsltprocessor_transform_to_doc(domnode doc);\",\"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html# Since:\"],xsl_xsltprocessor_transform_to_uri:[\"int xsl_xsltprocessor_transform_to_uri(domdocument doc, string uri);\",\"\"],xsl_xsltprocessor_transform_to_xml:[\"string xsl_xsltprocessor_transform_to_xml(domdocument doc);\",\"\"],zend_logo_guid:[\"string zend_logo_guid(void)\",\"Return the special ID used to request the Zend logo in phpinfo screens\"],zend_version:[\"string zend_version(void)\",\"Get the version of the Zend Engine\"],zip_close:[\"void zip_close(resource zip)\",\"Close a Zip archive\"],zip_entry_close:[\"void zip_entry_close(resource zip_ent)\",\"Close a zip entry\"],zip_entry_compressedsize:[\"int zip_entry_compressedsize(resource zip_entry)\",\"Return the compressed size of a ZZip entry\"],zip_entry_compressionmethod:[\"string zip_entry_compressionmethod(resource zip_entry)\",\"Return a string containing the compression method used on a particular entry\"],zip_entry_filesize:[\"int zip_entry_filesize(resource zip_entry)\",\"Return the actual filesize of a ZZip entry\"],zip_entry_name:[\"string zip_entry_name(resource zip_entry)\",\"Return the name given a ZZip entry\"],zip_entry_open:[\"bool zip_entry_open(resource zip_dp, resource zip_entry [, string mode])\",\"Open a Zip File, pointed by the resource entry\"],zip_entry_read:[\"mixed zip_entry_read(resource zip_entry [, int len])\",\"Read from an open directory entry\"],zip_open:[\"resource zip_open(string filename)\",\"Create new zip using source uri for output\"],zip_read:[\"resource zip_read(resource zip)\",\"Returns the next file in the archive\"],zlib_get_coding_type:[\"string zlib_get_coding_type(void)\",\"Returns the coding type used for output compression\"]},i={$_COOKIE:{type:\"array\"},$_ENV:{type:\"array\"},$_FILES:{type:\"array\"},$_GET:{type:\"array\"},$_POST:{type:\"array\"},$_REQUEST:{type:\"array\"},$_SERVER:{type:\"array\",value:{DOCUMENT_ROOT:1,GATEWAY_INTERFACE:1,HTTP_ACCEPT:1,HTTP_ACCEPT_CHARSET:1,HTTP_ACCEPT_ENCODING:1,HTTP_ACCEPT_LANGUAGE:1,HTTP_CONNECTION:1,HTTP_HOST:1,HTTP_REFERER:1,HTTP_USER_AGENT:1,PATH_TRANSLATED:1,PHP_SELF:1,QUERY_STRING:1,REMOTE_ADDR:1,REMOTE_PORT:1,REQUEST_METHOD:1,REQUEST_URI:1,SCRIPT_FILENAME:1,SCRIPT_NAME:1,SERVER_ADMIN:1,SERVER_NAME:1,SERVER_PORT:1,SERVER_PROTOCOL:1,SERVER_SIGNATURE:1,SERVER_SOFTWARE:1}},$_SESSION:{type:\"array\"},$GLOBALS:{type:\"array\"}},o=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(i.type===\"identifier\")return this.getFunctionCompletions(e,t,n,r);if(s(i,\"variable\"))return this.getVariableCompletions(e,t,n,r);var o=t.getLine(n.row).substr(0,n.column);return i.type===\"string\"&&/(\\$[\\w]*)\\[[\"']([^'\"]*)$/i.test(o)?this.getArrayKeyCompletions(e,t,n,r):[]},this.getFunctionCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\"($0)\",meta:\"php function\",score:Number.MAX_VALUE,docHTML:r[e][1]}})},this.getVariableCompletions=function(e,t,n,r){var s=Object.keys(i);return s.map(function(e){return{caption:e,value:e,meta:\"php variable\",score:Number.MAX_VALUE}})},this.getArrayKeyCompletions=function(e,t,n,r){var s=t.getLine(n.row).substr(0,n.column),o=s.match(/(\\$[\\w]*)\\[[\"']([^'\"]*)$/i)[1];if(!i[o])return[];var u=[];return i[o].type===\"array\"&&i[o].value&&(u=Object.keys(i[o].value)),u.map(function(e){return{caption:e,value:e,meta:\"php array key\",score:Number.MAX_VALUE}})}}).call(o.prototype),t.PhpCompletions=o}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[A-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/php\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/php_highlight_rules\",\"ace/mode/php_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/php_completions\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/unicode\",\"ace/mode/html\",\"ace/mode/javascript\",\"ace/mode/css\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./php_highlight_rules\").PhpHighlightRules,o=e(\"./php_highlight_rules\").PhpLangHighlightRules,u=e(\"./matching_brace_outdent\").MatchingBraceOutdent,a=e(\"../range\").Range,f=e(\"../worker/worker_client\").WorkerClient,l=e(\"./php_completions\").PhpCompletions,c=e(\"./behaviour/cstyle\").CstyleBehaviour,h=e(\"./folding/cstyle\").FoldMode,p=e(\"../unicode\"),d=e(\"./html\").Mode,v=e(\"./javascript\").Mode,m=e(\"./css\").Mode,g=function(e){this.HighlightRules=o,this.$outdent=new u,this.$behaviour=new c,this.$completer=new l,this.foldingRules=new h};r.inherits(g,i),function(){this.tokenRe=new RegExp(\"^[\"+p.packages.L+p.packages.Mn+p.packages.Mc+p.packages.Nd+p.packages.Pc+\"_]+\",\"g\"),this.nonTokenRe=new RegExp(\"^(?:[^\"+p.packages.L+p.packages.Mn+p.packages.Mc+p.packages.Nd+p.packages.Pc+\"_]|s])+\",\"g\"),this.lineCommentStart=[\"//\",\"#\"],this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[\\:]\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o!=\"doc-start\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.$id=\"ace/mode/php-inline\"}.call(g.prototype);var y=function(e){if(e&&e.inline){var t=new g;return t.createWorker=this.createWorker,t.inlinePhp=!0,t}d.call(this),this.HighlightRules=s,this.createModeDelegates({\"js-\":v,\"css-\":m,\"php-\":g}),this.foldingRules.subModes[\"php-\"]=new h};r.inherits(y,d),function(){this.createWorker=function(e){var t=new f([\"ace\"],\"ace/mode/php_worker\",\"PhpWorker\");return t.attachToDocument(e.getDocument()),this.inlinePhp&&t.call(\"setOptions\",[{inline:!0}]),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/php\"}.call(y.prototype),t.Mode=y})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-plain_text.js",
    "content": "ace.define(\"ace/mode/plain_text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./behaviour\").Behaviour,u=function(){this.HighlightRules=s,this.$behaviour=new o};r.inherits(u,i),function(){this.type=\"text\",this.getNextLineIndent=function(e,t,n){return\"\"},this.$id=\"ace/mode/plain_text\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-powershell.js",
    "content": "ace.define(\"ace/mode/powershell_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"begin|break|catch|continue|data|do|dynamicparam|else|elseif|end|exit|filter|finally|for|foreach|from|function|if|in|inlinescript|hidden|parallel|param|process|return|sequence|switch|throw|trap|try|until|while|workflow\",t=\"Get-AppBackgroundTask|Start-AppBackgroundTask|Unregister-AppBackgroundTask|Disable-AppBackgroundTaskDiagnosticLog|Enable-AppBackgroundTaskDiagnosticLog|Set-AppBackgroundTaskResourcePolicy|Get-AppLockerFileInformation|Get-AppLockerPolicy|New-AppLockerPolicy|Set-AppLockerPolicy|Test-AppLockerPolicy|Get-AppxLastError|Get-AppxLog|Add-AppxPackage|Add-AppxVolume|Dismount-AppxVolume|Get-AppxDefaultVolume|Get-AppxPackage|Get-AppxPackageManifest|Get-AppxVolume|Mount-AppxVolume|Move-AppxPackage|Remove-AppxPackage|Remove-AppxVolume|Set-AppxDefaultVolume|Clear-AssignedAccess|Get-AssignedAccess|Set-AssignedAccess|Add-BitLockerKeyProtector|Backup-BitLockerKeyProtector|Clear-BitLockerAutoUnlock|Disable-BitLocker|Disable-BitLockerAutoUnlock|Enable-BitLocker|Enable-BitLockerAutoUnlock|Get-BitLockerVolume|Lock-BitLocker|Remove-BitLockerKeyProtector|Resume-BitLocker|Suspend-BitLocker|Unlock-BitLocker|Add-BitsFile|Complete-BitsTransfer|Get-BitsTransfer|Remove-BitsTransfer|Resume-BitsTransfer|Set-BitsTransfer|Start-BitsTransfer|Suspend-BitsTransfer|Add-BCDataCacheExtension|Clear-BCCache|Disable-BC|Disable-BCDowngrading|Disable-BCServeOnBattery|Enable-BCDistributed|Enable-BCDowngrading|Enable-BCHostedClient|Enable-BCHostedServer|Enable-BCLocal|Enable-BCServeOnBattery|Export-BCCachePackage|Export-BCSecretKey|Get-BCClientConfiguration|Get-BCContentServerConfiguration|Get-BCDataCache|Get-BCDataCacheExtension|Get-BCHashCache|Get-BCHostedCacheServerConfiguration|Get-BCNetworkConfiguration|Get-BCStatus|Import-BCCachePackage|Import-BCSecretKey|Publish-BCFileContent|Publish-BCWebContent|Remove-BCDataCacheExtension|Reset-BC|Set-BCAuthentication|Set-BCCache|Set-BCDataCacheEntryMaxAge|Set-BCMinSMBLatency|Set-BCSecretKey|Export-BinaryMiLog|Get-CimAssociatedInstance|Get-CimClass|Get-CimInstance|Get-CimSession|Import-BinaryMiLog|Invoke-CimMethod|New-CimInstance|New-CimSession|New-CimSessionOption|Register-CimIndicationEvent|Remove-CimInstance|Remove-CimSession|Set-CimInstance|ConvertFrom-CIPolicy|Add-SignerRule|Edit-CIPolicyRule|Get-CIPolicy|Get-CIPolicyInfo|Get-SystemDriver|Merge-CIPolicy|New-CIPolicy|New-CIPolicyRule|Remove-CIPolicyRule|Set-CIPolicyVersion|Set-HVCIOptions|Set-RuleOption|Add-MpPreference|Get-MpComputerStatus|Get-MpPreference|Get-MpThreat|Get-MpThreatCatalog|Get-MpThreatDetection|Remove-MpPreference|Remove-MpThreat|Set-MpPreference|Start-MpScan|Start-MpWDOScan|Update-MpSignature|Disable-DAManualEntryPointSelection|Enable-DAManualEntryPointSelection|Get-DAClientExperienceConfiguration|Get-DAEntryPointTableItem|New-DAEntryPointTableItem|Remove-DAEntryPointTableItem|Rename-DAEntryPointTableItem|Reset-DAClientExperienceConfiguration|Reset-DAEntryPointTableItem|Set-DAClientExperienceConfiguration|Set-DAEntryPointTableItem|Add-ProvisionedAppxPackage|Apply-WindowsUnattend|Get-ProvisionedAppxPackage|Remove-ProvisionedAppxPackage|Add-AppxProvisionedPackage|Add-WindowsCapability|Add-WindowsDriver|Add-WindowsImage|Add-WindowsPackage|Clear-WindowsCorruptMountPoint|Disable-WindowsOptionalFeature|Dismount-WindowsImage|Enable-WindowsOptionalFeature|Expand-WindowsCustomDataImage|Expand-WindowsImage|Export-WindowsDriver|Export-WindowsImage|Get-AppxProvisionedPackage|Get-WIMBootEntry|Get-WindowsCapability|Get-WindowsDriver|Get-WindowsEdition|Get-WindowsImage|Get-WindowsImageContent|Get-WindowsOptionalFeature|Get-WindowsPackage|Mount-WindowsImage|New-WindowsCustomImage|New-WindowsImage|Optimize-WindowsImage|Remove-AppxProvisionedPackage|Remove-WindowsCapability|Remove-WindowsDriver|Remove-WindowsImage|Remove-WindowsPackage|Repair-WindowsImage|Save-WindowsImage|Set-AppXProvisionedDataFile|Set-WindowsEdition|Set-WindowsProductKey|Split-WindowsImage|Update-WIMBootEntry|Use-WindowsUnattend|Add-DnsClientNrptRule|Clear-DnsClientCache|Get-DnsClient|Get-DnsClientCache|Get-DnsClientGlobalSetting|Get-DnsClientNrptGlobal|Get-DnsClientNrptPolicy|Get-DnsClientNrptRule|Get-DnsClientServerAddress|Register-DnsClient|Remove-DnsClientNrptRule|Set-DnsClient|Set-DnsClientGlobalSetting|Set-DnsClientNrptGlobal|Set-DnsClientNrptRule|Set-DnsClientServerAddress|Resolve-DnsName|Add-EtwTraceProvider|Get-AutologgerConfig|Get-EtwTraceProvider|Get-EtwTraceSession|New-AutologgerConfig|New-EtwTraceSession|Remove-AutologgerConfig|Remove-EtwTraceProvider|Remove-EtwTraceSession|Send-EtwTraceSession|Set-AutologgerConfig|Set-EtwTraceProvider|Set-EtwTraceSession|Get-WinAcceptLanguageFromLanguageListOptOut|Get-WinCultureFromLanguageListOptOut|Get-WinDefaultInputMethodOverride|Get-WinHomeLocation|Get-WinLanguageBarOption|Get-WinSystemLocale|Get-WinUILanguageOverride|Get-WinUserLanguageList|New-WinUserLanguageList|Set-Culture|Set-WinAcceptLanguageFromLanguageListOptOut|Set-WinCultureFromLanguageListOptOut|Set-WinDefaultInputMethodOverride|Set-WinHomeLocation|Set-WinLanguageBarOption|Set-WinSystemLocale|Set-WinUILanguageOverride|Set-WinUserLanguageList|Connect-IscsiTarget|Disconnect-IscsiTarget|Get-IscsiConnection|Get-IscsiSession|Get-IscsiTarget|Get-IscsiTargetPortal|New-IscsiTargetPortal|Register-IscsiSession|Remove-IscsiTargetPortal|Set-IscsiChapSecret|Unregister-IscsiSession|Update-IscsiTarget|Update-IscsiTargetPortal|Get-IseSnippet|Import-IseSnippet|New-IseSnippet|Add-KdsRootKey|Clear-KdsCache|Get-KdsConfiguration|Get-KdsRootKey|Set-KdsConfiguration|Test-KdsRootKey|Compress-Archive|Expand-Archive|Export-Counter|Get-Counter|Get-WinEvent|Import-Counter|New-WinEvent|Start-Transcript|Stop-Transcript|Add-Computer|Add-Content|Checkpoint-Computer|Clear-Content|Clear-EventLog|Clear-Item|Clear-ItemProperty|Clear-RecycleBin|Complete-Transaction|Convert-Path|Copy-Item|Copy-ItemProperty|Debug-Process|Disable-ComputerRestore|Enable-ComputerRestore|Get-ChildItem|Get-Clipboard|Get-ComputerRestorePoint|Get-Content|Get-ControlPanelItem|Get-EventLog|Get-HotFix|Get-Item|Get-ItemProperty|Get-ItemPropertyValue|Get-Location|Get-Process|Get-PSDrive|Get-PSProvider|Get-Service|Get-Transaction|Get-WmiObject|Invoke-Item|Invoke-WmiMethod|Join-Path|Limit-EventLog|Move-Item|Move-ItemProperty|New-EventLog|New-Item|New-ItemProperty|New-PSDrive|New-Service|New-WebServiceProxy|Pop-Location|Push-Location|Register-WmiEvent|Remove-Computer|Remove-EventLog|Remove-Item|Remove-ItemProperty|Remove-PSDrive|Remove-WmiObject|Rename-Computer|Rename-Item|Rename-ItemProperty|Reset-ComputerMachinePassword|Resolve-Path|Restart-Computer|Restart-Service|Restore-Computer|Resume-Service|Set-Clipboard|Set-Content|Set-Item|Set-ItemProperty|Set-Location|Set-Service|Set-WmiInstance|Show-ControlPanelItem|Show-EventLog|Split-Path|Start-Process|Start-Service|Start-Transaction|Stop-Computer|Stop-Process|Stop-Service|Suspend-Service|Test-ComputerSecureChannel|Test-Connection|Test-Path|Undo-Transaction|Use-Transaction|Wait-Process|Write-EventLog|Export-ODataEndpointProxy|ConvertFrom-SecureString|ConvertTo-SecureString|Get-Acl|Get-AuthenticodeSignature|Get-CmsMessage|Get-Credential|Get-ExecutionPolicy|Get-PfxCertificate|Protect-CmsMessage|Set-Acl|Set-AuthenticodeSignature|Set-ExecutionPolicy|Unprotect-CmsMessage|ConvertFrom-SddlString|Format-Hex|Get-FileHash|Import-PowerShellDataFile|New-Guid|New-TemporaryFile|Add-Member|Add-Type|Clear-Variable|Compare-Object|ConvertFrom-Csv|ConvertFrom-Json|ConvertFrom-String|ConvertFrom-StringData|Convert-String|ConvertTo-Csv|ConvertTo-Html|ConvertTo-Json|ConvertTo-Xml|Debug-Runspace|Disable-PSBreakpoint|Disable-RunspaceDebug|Enable-PSBreakpoint|Enable-RunspaceDebug|Export-Alias|Export-Clixml|Export-Csv|Export-FormatData|Export-PSSession|Format-Custom|Format-List|Format-Table|Format-Wide|Get-Alias|Get-Culture|Get-Date|Get-Event|Get-EventSubscriber|Get-FormatData|Get-Host|Get-Member|Get-PSBreakpoint|Get-PSCallStack|Get-Random|Get-Runspace|Get-RunspaceDebug|Get-TraceSource|Get-TypeData|Get-UICulture|Get-Unique|Get-Variable|Group-Object|Import-Alias|Import-Clixml|Import-Csv|Import-LocalizedData|Import-PSSession|Invoke-Expression|Invoke-RestMethod|Invoke-WebRequest|Measure-Command|Measure-Object|New-Alias|New-Event|New-Object|New-TimeSpan|New-Variable|Out-File|Out-GridView|Out-Printer|Out-String|Read-Host|Register-EngineEvent|Register-ObjectEvent|Remove-Event|Remove-PSBreakpoint|Remove-TypeData|Remove-Variable|Select-Object|Select-String|Select-Xml|Send-MailMessage|Set-Alias|Set-Date|Set-PSBreakpoint|Set-TraceSource|Set-Variable|Show-Command|Sort-Object|Start-Sleep|Tee-Object|Trace-Command|Unblock-File|Unregister-Event|Update-FormatData|Update-List|Update-TypeData|Wait-Debugger|Wait-Event|Write-Debug|Write-Error|Write-Host|Write-Information|Write-Output|Write-Progress|Write-Verbose|Write-Warning|Connect-WSMan|Disable-WSManCredSSP|Disconnect-WSMan|Enable-WSManCredSSP|Get-WSManCredSSP|Get-WSManInstance|Invoke-WSManAction|New-WSManInstance|New-WSManSessionOption|Remove-WSManInstance|Set-WSManInstance|Set-WSManQuickConfig|Test-WSMan|Debug-MMAppPrelaunch|Disable-MMAgent|Enable-MMAgent|Get-MMAgent|Set-MMAgent|Add-DtcClusterTMMapping|Get-Dtc|Get-DtcAdvancedHostSetting|Get-DtcAdvancedSetting|Get-DtcClusterDefault|Get-DtcClusterTMMapping|Get-DtcDefault|Get-DtcLog|Get-DtcNetworkSetting|Get-DtcTransaction|Get-DtcTransactionsStatistics|Get-DtcTransactionsTraceSession|Get-DtcTransactionsTraceSetting|Install-Dtc|Remove-DtcClusterTMMapping|Reset-DtcLog|Set-DtcAdvancedHostSetting|Set-DtcAdvancedSetting|Set-DtcClusterDefault|Set-DtcClusterTMMapping|Set-DtcDefault|Set-DtcLog|Set-DtcNetworkSetting|Set-DtcTransaction|Set-DtcTransactionsTraceSession|Set-DtcTransactionsTraceSetting|Start-Dtc|Start-DtcTransactionsTraceSession|Stop-Dtc|Stop-DtcTransactionsTraceSession|Test-Dtc|Uninstall-Dtc|Write-DtcTransactionsTraceSession|Complete-DtcDiagnosticTransaction|Join-DtcDiagnosticResourceManager|New-DtcDiagnosticTransaction|Receive-DtcDiagnosticTransaction|Send-DtcDiagnosticTransaction|Start-DtcDiagnosticResourceManager|Stop-DtcDiagnosticResourceManager|Undo-DtcDiagnosticTransaction|Disable-NetAdapter|Disable-NetAdapterBinding|Disable-NetAdapterChecksumOffload|Disable-NetAdapterEncapsulatedPacketTaskOffload|Disable-NetAdapterIPsecOffload|Disable-NetAdapterLso|Disable-NetAdapterPacketDirect|Disable-NetAdapterPowerManagement|Disable-NetAdapterQos|Disable-NetAdapterRdma|Disable-NetAdapterRsc|Disable-NetAdapterRss|Disable-NetAdapterSriov|Disable-NetAdapterVmq|Enable-NetAdapter|Enable-NetAdapterBinding|Enable-NetAdapterChecksumOffload|Enable-NetAdapterEncapsulatedPacketTaskOffload|Enable-NetAdapterIPsecOffload|Enable-NetAdapterLso|Enable-NetAdapterPacketDirect|Enable-NetAdapterPowerManagement|Enable-NetAdapterQos|Enable-NetAdapterRdma|Enable-NetAdapterRsc|Enable-NetAdapterRss|Enable-NetAdapterSriov|Enable-NetAdapterVmq|Get-NetAdapter|Get-NetAdapterAdvancedProperty|Get-NetAdapterBinding|Get-NetAdapterChecksumOffload|Get-NetAdapterEncapsulatedPacketTaskOffload|Get-NetAdapterHardwareInfo|Get-NetAdapterIPsecOffload|Get-NetAdapterLso|Get-NetAdapterPacketDirect|Get-NetAdapterPowerManagement|Get-NetAdapterQos|Get-NetAdapterRdma|Get-NetAdapterRsc|Get-NetAdapterRss|Get-NetAdapterSriov|Get-NetAdapterSriovVf|Get-NetAdapterStatistics|Get-NetAdapterVmq|Get-NetAdapterVmqQueue|Get-NetAdapterVPort|New-NetAdapterAdvancedProperty|Remove-NetAdapterAdvancedProperty|Rename-NetAdapter|Reset-NetAdapterAdvancedProperty|Restart-NetAdapter|Set-NetAdapter|Set-NetAdapterAdvancedProperty|Set-NetAdapterBinding|Set-NetAdapterChecksumOffload|Set-NetAdapterEncapsulatedPacketTaskOffload|Set-NetAdapterIPsecOffload|Set-NetAdapterLso|Set-NetAdapterPacketDirect|Set-NetAdapterPowerManagement|Set-NetAdapterQos|Set-NetAdapterRdma|Set-NetAdapterRsc|Set-NetAdapterRss|Set-NetAdapterSriov|Set-NetAdapterVmq|Get-NetConnectionProfile|Set-NetConnectionProfile|Add-NetEventNetworkAdapter|Add-NetEventPacketCaptureProvider|Add-NetEventProvider|Add-NetEventVmNetworkAdapter|Add-NetEventVmSwitch|Add-NetEventWFPCaptureProvider|Get-NetEventNetworkAdapter|Get-NetEventPacketCaptureProvider|Get-NetEventProvider|Get-NetEventSession|Get-NetEventVmNetworkAdapter|Get-NetEventVmSwitch|Get-NetEventWFPCaptureProvider|New-NetEventSession|Remove-NetEventNetworkAdapter|Remove-NetEventPacketCaptureProvider|Remove-NetEventProvider|Remove-NetEventSession|Remove-NetEventVmNetworkAdapter|Remove-NetEventVmSwitch|Remove-NetEventWFPCaptureProvider|Set-NetEventPacketCaptureProvider|Set-NetEventProvider|Set-NetEventSession|Set-NetEventWFPCaptureProvider|Start-NetEventSession|Stop-NetEventSession|Add-NetLbfoTeamMember|Add-NetLbfoTeamNic|Get-NetLbfoTeam|Get-NetLbfoTeamMember|Get-NetLbfoTeamNic|New-NetLbfoTeam|Remove-NetLbfoTeam|Remove-NetLbfoTeamMember|Remove-NetLbfoTeamNic|Rename-NetLbfoTeam|Set-NetLbfoTeam|Set-NetLbfoTeamMember|Set-NetLbfoTeamNic|Add-NetNatExternalAddress|Add-NetNatStaticMapping|Get-NetNat|Get-NetNatExternalAddress|Get-NetNatGlobal|Get-NetNatSession|Get-NetNatStaticMapping|New-NetNat|Remove-NetNat|Remove-NetNatExternalAddress|Remove-NetNatStaticMapping|Set-NetNat|Set-NetNatGlobal|Get-NetQosPolicy|New-NetQosPolicy|Remove-NetQosPolicy|Set-NetQosPolicy|Copy-NetFirewallRule|Copy-NetIPsecMainModeCryptoSet|Copy-NetIPsecMainModeRule|Copy-NetIPsecPhase1AuthSet|Copy-NetIPsecPhase2AuthSet|Copy-NetIPsecQuickModeCryptoSet|Copy-NetIPsecRule|Disable-NetFirewallRule|Disable-NetIPsecMainModeRule|Disable-NetIPsecRule|Enable-NetFirewallRule|Enable-NetIPsecMainModeRule|Enable-NetIPsecRule|Find-NetIPsecRule|Get-NetFirewallAddressFilter|Get-NetFirewallApplicationFilter|Get-NetFirewallInterfaceFilter|Get-NetFirewallInterfaceTypeFilter|Get-NetFirewallPortFilter|Get-NetFirewallProfile|Get-NetFirewallRule|Get-NetFirewallSecurityFilter|Get-NetFirewallServiceFilter|Get-NetFirewallSetting|Get-NetIPsecDospSetting|Get-NetIPsecMainModeCryptoSet|Get-NetIPsecMainModeRule|Get-NetIPsecMainModeSA|Get-NetIPsecPhase1AuthSet|Get-NetIPsecPhase2AuthSet|Get-NetIPsecQuickModeCryptoSet|Get-NetIPsecQuickModeSA|Get-NetIPsecRule|New-NetFirewallRule|New-NetIPsecDospSetting|New-NetIPsecMainModeCryptoSet|New-NetIPsecMainModeRule|New-NetIPsecPhase1AuthSet|New-NetIPsecPhase2AuthSet|New-NetIPsecQuickModeCryptoSet|New-NetIPsecRule|Open-NetGPO|Remove-NetFirewallRule|Remove-NetIPsecDospSetting|Remove-NetIPsecMainModeCryptoSet|Remove-NetIPsecMainModeRule|Remove-NetIPsecMainModeSA|Remove-NetIPsecPhase1AuthSet|Remove-NetIPsecPhase2AuthSet|Remove-NetIPsecQuickModeCryptoSet|Remove-NetIPsecQuickModeSA|Remove-NetIPsecRule|Rename-NetFirewallRule|Rename-NetIPsecMainModeCryptoSet|Rename-NetIPsecMainModeRule|Rename-NetIPsecPhase1AuthSet|Rename-NetIPsecPhase2AuthSet|Rename-NetIPsecQuickModeCryptoSet|Rename-NetIPsecRule|Save-NetGPO|Set-NetFirewallAddressFilter|Set-NetFirewallApplicationFilter|Set-NetFirewallInterfaceFilter|Set-NetFirewallInterfaceTypeFilter|Set-NetFirewallPortFilter|Set-NetFirewallProfile|Set-NetFirewallRule|Set-NetFirewallSecurityFilter|Set-NetFirewallServiceFilter|Set-NetFirewallSetting|Set-NetIPsecDospSetting|Set-NetIPsecMainModeCryptoSet|Set-NetIPsecMainModeRule|Set-NetIPsecPhase1AuthSet|Set-NetIPsecPhase2AuthSet|Set-NetIPsecQuickModeCryptoSet|Set-NetIPsecRule|Show-NetFirewallRule|Show-NetIPsecRule|Sync-NetIPsecRule|Update-NetIPsecRule|Get-DAPolicyChange|New-NetIPsecAuthProposal|New-NetIPsecMainModeCryptoProposal|New-NetIPsecQuickModeCryptoProposal|Add-NetSwitchTeamMember|Get-NetSwitchTeam|Get-NetSwitchTeamMember|New-NetSwitchTeam|Remove-NetSwitchTeam|Remove-NetSwitchTeamMember|Rename-NetSwitchTeam|Find-NetRoute|Get-NetCompartment|Get-NetIPAddress|Get-NetIPConfiguration|Get-NetIPInterface|Get-NetIPv4Protocol|Get-NetIPv6Protocol|Get-NetNeighbor|Get-NetOffloadGlobalSetting|Get-NetPrefixPolicy|Get-NetRoute|Get-NetTCPConnection|Get-NetTCPSetting|Get-NetTransportFilter|Get-NetUDPEndpoint|Get-NetUDPSetting|New-NetIPAddress|New-NetNeighbor|New-NetRoute|New-NetTransportFilter|Remove-NetIPAddress|Remove-NetNeighbor|Remove-NetRoute|Remove-NetTransportFilter|Set-NetIPAddress|Set-NetIPInterface|Set-NetIPv4Protocol|Set-NetIPv6Protocol|Set-NetNeighbor|Set-NetOffloadGlobalSetting|Set-NetRoute|Set-NetTCPSetting|Set-NetUDPSetting|Test-NetConnection|Get-DAConnectionStatus|Get-NCSIPolicyConfiguration|Reset-NCSIPolicyConfiguration|Set-NCSIPolicyConfiguration|Disable-NetworkSwitchEthernetPort|Disable-NetworkSwitchFeature|Disable-NetworkSwitchVlan|Enable-NetworkSwitchEthernetPort|Enable-NetworkSwitchFeature|Enable-NetworkSwitchVlan|Get-NetworkSwitchEthernetPort|Get-NetworkSwitchFeature|Get-NetworkSwitchGlobalData|Get-NetworkSwitchVlan|New-NetworkSwitchVlan|Remove-NetworkSwitchEthernetPortIPAddress|Remove-NetworkSwitchVlan|Restore-NetworkSwitchConfiguration|Save-NetworkSwitchConfiguration|Set-NetworkSwitchEthernetPortIPAddress|Set-NetworkSwitchPortMode|Set-NetworkSwitchPortProperty|Set-NetworkSwitchVlanProperty|Add-NetIPHttpsCertBinding|Disable-NetDnsTransitionConfiguration|Disable-NetIPHttpsProfile|Disable-NetNatTransitionConfiguration|Enable-NetDnsTransitionConfiguration|Enable-NetIPHttpsProfile|Enable-NetNatTransitionConfiguration|Get-Net6to4Configuration|Get-NetDnsTransitionConfiguration|Get-NetDnsTransitionMonitoring|Get-NetIPHttpsConfiguration|Get-NetIPHttpsState|Get-NetIsatapConfiguration|Get-NetNatTransitionConfiguration|Get-NetNatTransitionMonitoring|Get-NetTeredoConfiguration|Get-NetTeredoState|New-NetIPHttpsConfiguration|New-NetNatTransitionConfiguration|Remove-NetIPHttpsCertBinding|Remove-NetIPHttpsConfiguration|Remove-NetNatTransitionConfiguration|Rename-NetIPHttpsConfiguration|Reset-Net6to4Configuration|Reset-NetDnsTransitionConfiguration|Reset-NetIPHttpsConfiguration|Reset-NetIsatapConfiguration|Reset-NetTeredoConfiguration|Set-Net6to4Configuration|Set-NetDnsTransitionConfiguration|Set-NetIPHttpsConfiguration|Set-NetIsatapConfiguration|Set-NetNatTransitionConfiguration|Set-NetTeredoConfiguration|Find-Package|Find-PackageProvider|Get-Package|Get-PackageProvider|Get-PackageSource|Import-PackageProvider|Install-Package|Install-PackageProvider|Register-PackageSource|Save-Package|Set-PackageSource|Uninstall-Package|Unregister-PackageSource|Clear-PcsvDeviceLog|Get-PcsvDevice|Get-PcsvDeviceLog|Restart-PcsvDevice|Set-PcsvDeviceBootConfiguration|Set-PcsvDeviceNetworkConfiguration|Set-PcsvDeviceUserPassword|Start-PcsvDevice|Stop-PcsvDevice|AfterAll|AfterEach|Assert-MockCalled|Assert-VerifiableMocks|BeforeAll|BeforeEach|Context|Describe|Get-MockDynamicParameters|Get-TestDriveItem|In|InModuleScope|Invoke-Mock|Invoke-Pester|It|Mock|New-Fixture|Set-DynamicParameterVariables|Setup|Should|Add-CertificateEnrollmentPolicyServer|Export-Certificate|Export-PfxCertificate|Get-Certificate|Get-CertificateAutoEnrollmentPolicy|Get-CertificateEnrollmentPolicyServer|Get-CertificateNotificationTask|Get-PfxData|Import-Certificate|Import-PfxCertificate|New-CertificateNotificationTask|New-SelfSignedCertificate|Remove-CertificateEnrollmentPolicyServer|Remove-CertificateNotificationTask|Set-CertificateAutoEnrollmentPolicy|Switch-Certificate|Test-Certificate|Disable-PnpDevice|Enable-PnpDevice|Get-PnpDevice|Get-PnpDeviceProperty|Find-DscResource|Find-Module|Find-Script|Get-InstalledModule|Get-InstalledScript|Get-PSRepository|Install-Module|Install-Script|New-ScriptFileInfo|Publish-Module|Publish-Script|Register-PSRepository|Save-Module|Save-Script|Set-PSRepository|Test-ScriptFileInfo|Uninstall-Module|Uninstall-Script|Unregister-PSRepository|Update-Module|Update-ModuleManifest|Update-Script|Update-ScriptFileInfo|Add-Printer|Add-PrinterDriver|Add-PrinterPort|Get-PrintConfiguration|Get-Printer|Get-PrinterDriver|Get-PrinterPort|Get-PrinterProperty|Get-PrintJob|Read-PrinterNfcTag|Remove-Printer|Remove-PrinterDriver|Remove-PrinterPort|Remove-PrintJob|Rename-Printer|Restart-PrintJob|Resume-PrintJob|Set-PrintConfiguration|Set-Printer|Set-PrinterProperty|Suspend-PrintJob|Write-PrinterNfcTag|Configuration|Disable-DscDebug|Enable-DscDebug|Get-DscConfiguration|Get-DscConfigurationStatus|Get-DscLocalConfigurationManager|Get-DscResource|New-DscChecksum|Remove-DscConfigurationDocument|Restore-DscConfiguration|Stop-DscConfiguration|Invoke-DscResource|Publish-DscConfiguration|Set-DscLocalConfigurationManager|Start-DscConfiguration|Test-DscConfiguration|Update-DscConfiguration|Disable-PSTrace|Disable-PSWSManCombinedTrace|Disable-WSManTrace|Enable-PSTrace|Enable-PSWSManCombinedTrace|Enable-WSManTrace|Get-LogProperties|Set-LogProperties|Start-Trace|Stop-Trace|PSConsoleHostReadline|Get-PSReadlineKeyHandler|Get-PSReadlineOption|Remove-PSReadlineKeyHandler|Set-PSReadlineKeyHandler|Set-PSReadlineOption|Add-JobTrigger|Disable-JobTrigger|Disable-ScheduledJob|Enable-JobTrigger|Enable-ScheduledJob|Get-JobTrigger|Get-ScheduledJob|Get-ScheduledJobOption|New-JobTrigger|New-ScheduledJobOption|Register-ScheduledJob|Remove-JobTrigger|Set-JobTrigger|Set-ScheduledJob|Set-ScheduledJobOption|Unregister-ScheduledJob|New-PSWorkflowSession|New-PSWorkflowExecutionOption|Invoke-AsWorkflow|Disable-ScheduledTask|Enable-ScheduledTask|Export-ScheduledTask|Get-ClusteredScheduledTask|Get-ScheduledTask|Get-ScheduledTaskInfo|New-ScheduledTask|New-ScheduledTaskAction|New-ScheduledTaskPrincipal|New-ScheduledTaskSettingsSet|New-ScheduledTaskTrigger|Register-ClusteredScheduledTask|Register-ScheduledTask|Set-ClusteredScheduledTask|Set-ScheduledTask|Start-ScheduledTask|Stop-ScheduledTask|Unregister-ClusteredScheduledTask|Unregister-ScheduledTask|Confirm-SecureBootUEFI|Format-SecureBootUEFI|Get-SecureBootPolicy|Get-SecureBootUEFI|Set-SecureBootUEFI|Block-SmbShareAccess|Close-SmbOpenFile|Close-SmbSession|Disable-SmbDelegation|Enable-SmbDelegation|Get-SmbBandwidthLimit|Get-SmbClientConfiguration|Get-SmbClientNetworkInterface|Get-SmbConnection|Get-SmbDelegation|Get-SmbMapping|Get-SmbMultichannelConnection|Get-SmbMultichannelConstraint|Get-SmbOpenFile|Get-SmbServerConfiguration|Get-SmbServerNetworkInterface|Get-SmbSession|Get-SmbShare|Get-SmbShareAccess|Grant-SmbShareAccess|New-SmbMapping|New-SmbMultichannelConstraint|New-SmbShare|Remove-SmbBandwidthLimit|Remove-SmbMapping|Remove-SmbMultichannelConstraint|Remove-SmbShare|Revoke-SmbShareAccess|Set-SmbBandwidthLimit|Set-SmbClientConfiguration|Set-SmbPathAcl|Set-SmbServerConfiguration|Set-SmbShare|Unblock-SmbShareAccess|Update-SmbMultichannelConnection|Move-SmbClient|Get-SmbWitnessClient|Move-SmbWitnessClient|Get-StartApps|Export-StartLayout|Import-StartLayout|Disable-PhysicalDiskIndication|Disable-StorageDiagnosticLog|Enable-PhysicalDiskIndication|Enable-StorageDiagnosticLog|Flush-Volume|Get-DiskSNV|Get-PhysicalDiskSNV|Get-StorageEnclosureSNV|Initialize-Volume|Write-FileSystemCache|Add-InitiatorIdToMaskingSet|Add-PartitionAccessPath|Add-PhysicalDisk|Add-TargetPortToMaskingSet|Add-VirtualDiskToMaskingSet|Block-FileShareAccess|Clear-Disk|Clear-FileStorageTier|Clear-StorageDiagnosticInfo|Connect-VirtualDisk|Debug-FileShare|Debug-StorageSubSystem|Debug-Volume|Disable-PhysicalDiskIdentification|Disable-StorageEnclosureIdentification|Disable-StorageHighAvailability|Disconnect-VirtualDisk|Dismount-DiskImage|Enable-PhysicalDiskIdentification|Enable-StorageEnclosureIdentification|Enable-StorageHighAvailability|Format-Volume|Get-DedupProperties|Get-Disk|Get-DiskImage|Get-DiskStorageNodeView|Get-FileIntegrity|Get-FileShare|Get-FileShareAccessControlEntry|Get-FileStorageTier|Get-InitiatorId|Get-InitiatorPort|Get-MaskingSet|Get-OffloadDataTransferSetting|Get-Partition|Get-PartitionSupportedSize|Get-PhysicalDisk|Get-PhysicalDiskStorageNodeView|Get-ResiliencySetting|Get-StorageAdvancedProperty|Get-StorageDiagnosticInfo|Get-StorageEnclosure|Get-StorageEnclosureStorageNodeView|Get-StorageEnclosureVendorData|Get-StorageFaultDomain|Get-StorageFileServer|Get-StorageFirmwareInformation|Get-StorageHealthAction|Get-StorageHealthReport|Get-StorageHealthSetting|Get-StorageJob|Get-StorageNode|Get-StoragePool|Get-StorageProvider|Get-StorageReliabilityCounter|Get-StorageSetting|Get-StorageSubSystem|Get-StorageTier|Get-StorageTierSupportedSize|Get-SupportedClusterSizes|Get-SupportedFileSystems|Get-TargetPort|Get-TargetPortal|Get-VirtualDisk|Get-VirtualDiskSupportedSize|Get-Volume|Get-VolumeCorruptionCount|Get-VolumeScrubPolicy|Grant-FileShareAccess|Hide-VirtualDisk|Initialize-Disk|Mount-DiskImage|New-FileShare|New-MaskingSet|New-Partition|New-StorageFileServer|New-StoragePool|New-StorageSubsystemVirtualDisk|New-StorageTier|New-VirtualDisk|New-VirtualDiskClone|New-VirtualDiskSnapshot|New-Volume|Optimize-StoragePool|Optimize-Volume|Register-StorageSubsystem|Remove-FileShare|Remove-InitiatorId|Remove-InitiatorIdFromMaskingSet|Remove-MaskingSet|Remove-Partition|Remove-PartitionAccessPath|Remove-PhysicalDisk|Remove-StorageFileServer|Remove-StorageHealthSetting|Remove-StoragePool|Remove-StorageTier|Remove-TargetPortFromMaskingSet|Remove-VirtualDisk|Remove-VirtualDiskFromMaskingSet|Rename-MaskingSet|Repair-FileIntegrity|Repair-VirtualDisk|Repair-Volume|Reset-PhysicalDisk|Reset-StorageReliabilityCounter|Resize-Partition|Resize-StorageTier|Resize-VirtualDisk|Revoke-FileShareAccess|Set-Disk|Set-FileIntegrity|Set-FileShare|Set-FileStorageTier|Set-InitiatorPort|Set-Partition|Set-PhysicalDisk|Set-ResiliencySetting|Set-StorageFileServer|Set-StorageHealthSetting|Set-StoragePool|Set-StorageProvider|Set-StorageSetting|Set-StorageSubSystem|Set-StorageTier|Set-VirtualDisk|Set-Volume|Set-VolumeScrubPolicy|Show-VirtualDisk|Start-StorageDiagnosticLog|Stop-StorageDiagnosticLog|Stop-StorageJob|Unblock-FileShareAccess|Unregister-StorageSubsystem|Update-Disk|Update-HostStorageCache|Update-StorageFirmware|Update-StoragePool|Update-StorageProviderCache|Write-VolumeCache|Disable-TlsCipherSuite|Disable-TlsSessionTicketKey|Enable-TlsCipherSuite|Enable-TlsSessionTicketKey|Export-TlsSessionTicketKey|Get-TlsCipherSuite|New-TlsSessionTicketKey|Get-TroubleshootingPack|Invoke-TroubleshootingPack|Clear-Tpm|ConvertTo-TpmOwnerAuth|Disable-TpmAutoProvisioning|Enable-TpmAutoProvisioning|Get-Tpm|Get-TpmEndorsementKeyInfo|Get-TpmSupportedFeature|Import-TpmOwnerAuth|Initialize-Tpm|Set-TpmOwnerAuth|Unblock-Tpm|Add-VpnConnection|Add-VpnConnectionRoute|Add-VpnConnectionTriggerApplication|Add-VpnConnectionTriggerDnsConfiguration|Add-VpnConnectionTriggerTrustedNetwork|Get-VpnConnection|Get-VpnConnectionTrigger|New-EapConfiguration|New-VpnServerAddress|Remove-VpnConnection|Remove-VpnConnectionRoute|Remove-VpnConnectionTriggerApplication|Remove-VpnConnectionTriggerDnsConfiguration|Remove-VpnConnectionTriggerTrustedNetwork|Set-VpnConnection|Set-VpnConnectionIPsecConfiguration|Set-VpnConnectionProxy|Set-VpnConnectionTriggerDnsConfiguration|Set-VpnConnectionTriggerTrustedNetwork|Add-OdbcDsn|Disable-OdbcPerfCounter|Disable-WdacBidTrace|Enable-OdbcPerfCounter|Enable-WdacBidTrace|Get-OdbcDriver|Get-OdbcDsn|Get-OdbcPerfCounter|Get-WdacBidTrace|Remove-OdbcDsn|Set-OdbcDriver|Set-OdbcDsn|Get-WindowsDeveloperLicense|Show-WindowsDeveloperLicenseRegistration|Unregister-WindowsDeveloperLicense|Disable-WindowsErrorReporting|Enable-WindowsErrorReporting|Get-WindowsErrorReporting|Get-WindowsSearchSetting|Set-WindowsSearchSetting|Get-WindowsUpdateLog\",n=this.createKeywordMapper({\"support.function\":t,keyword:e},\"identifier\"),r=\"eq|ne|gt|lt|le|ge|like|notlike|match|notmatch|contains|notcontains|in|notin|band|bor|bxor|bnot|ceq|cne|cgt|clt|cle|cge|clike|cnotlike|cmatch|cnotmatch|ccontains|cnotcontains|cin|cnotin|ieq|ine|igt|ilt|ile|ige|ilike|inotlike|imatch|inotmatch|icontains|inotcontains|iin|inotin|and|or|xor|not|split|join|replace|f|csplit|creplace|isplit|ireplace|is|isnot|as|shl|shr\";this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"comment.start\",regex:\"<#\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"[$](?:[Tt]rue|[Ff]alse)\\\\b\"},{token:\"constant.language\",regex:\"[$][Nn]ull\\\\b\"},{token:\"variable.instance\",regex:\"[$][a-zA-Z][a-zA-Z0-9_]*\\\\b\"},{token:n,regex:\"[a-zA-Z_$][a-zA-Z0-9_$\\\\-]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\-(?:\"+r+\")\"},{token:\"keyword.operator\",regex:\"&|\\\\+|\\\\-|\\\\*|\\\\/|\\\\%|\\\\=|\\\\>|\\\\&|\\\\!|\\\\|\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment.end\",regex:\"#>\",next:\"start\"},{token:\"doc.comment.tag\",regex:\"^\\\\.\\\\w+\"},{defaultToken:\"comment\"}]}};r.inherits(s,i),t.PowershellHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/powershell\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/powershell_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./powershell_highlight_rules\").PowershellHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a({start:\"^\\\\s*(<#)\",end:\"^[#\\\\s]>\\\\s*$\"})};r.inherits(f,i),function(){this.lineCommentStart=\"#\",this.blockComment={start:\"<#\",end:\"#>\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[]\\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){return null},this.$id=\"ace/mode/powershell\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-praat.js",
    "content": "ace.define(\"ace/mode/praat_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"if|then|else|elsif|elif|endif|fi|endfor|endproc|while|endwhile|repeat|until|select|plus|minus|assert|asserterror\",t=\"macintosh|windows|unix|praatVersion|praatVersion\\\\$pi|undefined|newline\\\\$|tab\\\\$|shellDirectory\\\\$|homeDirectory\\\\$|preferencesDirectory\\\\$|temporaryDirectory\\\\$|defaultDirectory\\\\$\",n=\"clearinfo|endSendPraat\",r=\"writeInfo|writeInfoLine|appendInfo|appendInfoLine|info\\\\$|writeFile|writeFileLine|appendFile|appendFileLine|abs|round|floor|ceiling|min|max|imin|imax|sqrt|sin|cos|tan|arcsin|arccos|arctan|arctan2|sinc|sincpi|exp|ln|lnBeta|lnGamma|log10|log2|sinh|cosh|tanh|arcsinh|arccosh|arctanh|sigmoid|invSigmoid|erf|erfc|random(?:Uniform|Integer|Gauss|Poisson|Binomial)|gaussP|gaussQ|invGaussQ|incompleteGammaP|incompleteBeta|chiSquareP|chiSquareQ|invChiSquareQ|studentP|studentQ|invStudentQ|fisherP|fisherQ|invFisherQ|binomialP|binomialQ|invBinomialP|invBinomialQ|hertzToBark|barkToHerz|hertzToMel|melToHertz|hertzToSemitones|semitonesToHerz|erb|hertzToErb|erbToHertz|phonToDifferenceLimens|differenceLimensToPhon|soundPressureToPhon|beta|beta2|besselI|besselK|numberOfColumns|numberOfRows|selected|selected\\\\$|numberOfSelected|variableExists|index|rindex|startsWith|endsWith|index_regex|rindex_regex|replace_regex\\\\$|length|extractWord\\\\$|extractLine\\\\$|extractNumber|left\\\\$|right\\\\$|mid\\\\$|replace\\\\$|date\\\\$|fixed\\\\$|percent\\\\$|zero#|linear#|randomUniform#|randomInteger#|randomGauss#|beginPause|endPause|demoShow|demoWindowTitle|demoInput|demoWaitForInput|demoClicked|demoClickedIn|demoX|demoY|demoKeyPressed|demoKey\\\\$|demoExtraControlKeyPressed|demoShiftKeyPressed|demoCommandKeyPressed|demoOptionKeyPressed|environment\\\\$|chooseReadFile\\\\$|chooseDirectory\\\\$|createDirectory|fileReadable|deleteFile|selectObject|removeObject|plusObject|minusObject|runScript|exitScript|beginSendPraat|endSendPraat|objectsAreIdentical\",i=\"Activation|AffineTransform|AmplitudeTier|Art|Artword|Autosegment|BarkFilter|CCA|Categories|Cepstrum|Cepstrumc|ChebyshevSeries|ClassificationTable|Cochleagram|Collection|Configuration|Confusion|ContingencyTable|Corpus|Correlation|Covariance|CrossCorrelationTable|CrossCorrelationTables|DTW|Diagonalizer|Discriminant|Dissimilarity|Distance|Distributions|DurationTier|EEG|ERP|ERPTier|Eigen|Excitation|Excitations|ExperimentMFC|FFNet|FeatureWeights|Formant|FormantFilter|FormantGrid|FormantPoint|FormantTier|GaussianMixture|HMM|HMM_Observation|HMM_ObservationSequence|HMM_State|HMM_StateSequence|Harmonicity|ISpline|Index|Intensity|IntensityTier|IntervalTier|KNN|KlattGrid|KlattTable|LFCC|LPC|Label|LegendreSeries|LinearRegression|LogisticRegression|LongSound|Ltas|MFCC|MSpline|ManPages|Manipulation|Matrix|MelFilter|MixingMatrix|Movie|Network|OTGrammar|OTHistory|OTMulti|PCA|PairDistribution|ParamCurve|Pattern|Permutation|Pitch|PitchTier|PointProcess|Polygon|Polynomial|Procrustes|RealPoint|RealTier|ResultsMFC|Roots|SPINET|SSCP|SVD|Salience|ScalarProduct|Similarity|SimpleString|SortedSetOfString|Sound|Speaker|Spectrogram|Spectrum|SpectrumTier|SpeechSynthesizer|SpellingChecker|Strings|StringsIndex|Table|TableOfReal|TextGrid|TextInterval|TextPoint|TextTier|Tier|Transition|VocalTract|Weight|WordList\";this.$rules={start:[{token:\"string.interpolated\",regex:/'((?:[a-z][a-zA-Z0-9_]*)(?:\\$|#|:[0-9]+)?)'/},{token:[\"text\",\"text\",\"keyword.operator\",\"text\",\"keyword\"],regex:/(^\\s*)(?:([a-z][a-zA-Z0-9_]*\\$?\\s+)(=)(\\s+))?(stopwatch)/},{token:[\"text\",\"keyword\",\"text\",\"string\"],regex:/(^\\s*)(print(?:line|tab)?|echo|exit|pause|send(?:praat|socket)|include|execute|system(?:_nocheck)?)(\\s+)(.*)/},{token:[\"text\",\"keyword\"],regex:\"(^\\\\s*)(\"+n+\")$\"},{token:[\"text\",\"keyword.operator\",\"text\"],regex:/(\\s+)((?:\\+|-|\\/|\\*|<|>)=?|==?|!=|%|\\^|\\||and|or|not)(\\s+)/},{token:[\"text\",\"text\",\"keyword.operator\",\"text\",\"keyword\",\"text\",\"keyword\"],regex:/(^\\s*)(?:([a-z][a-zA-Z0-9_]*\\$?\\s+)(=)(\\s+))?(?:((?:no)?warn|(?:unix_)?nocheck|noprogress)(\\s+))?((?:[A-Z][^.:\"]+)(?:$|(?:\\.{3}|:)))/},{token:[\"text\",\"keyword\",\"text\",\"keyword\"],regex:/(^\\s*)(?:(demo)?(\\s+))((?:[A-Z][^.:\"]+)(?:$|(?:\\.{3}|:)))/},{token:[\"text\",\"keyword\",\"text\",\"keyword\"],regex:/^(\\s*)(?:(demo)(\\s+))?(10|12|14|16|24)$/},{token:[\"text\",\"support.function\",\"text\"],regex:/(\\s*)(do\\$?)(\\s*:\\s*|\\s*\\(\\s*)/},{token:\"entity.name.type\",regex:\"(\"+i+\")\"},{token:\"variable.language\",regex:\"(\"+t+\")\"},{token:[\"support.function\",\"text\"],regex:\"((?:\"+r+\")\\\\$?)(\\\\s*(?::|\\\\())\"},{token:\"keyword\",regex:/(\\bfor\\b)/,next:\"for\"},{token:\"keyword\",regex:\"(\\\\b(?:\"+e+\")\\\\b)\"},{token:\"string\",regex:/\"[^\"]*\"/},{token:\"string\",regex:/\"[^\"]*$/,next:\"brokenstring\"},{token:[\"text\",\"keyword\",\"text\",\"entity.name.section\"],regex:/(^\\s*)(\\bform\\b)(\\s+)(.*)/,next:\"form\"},{token:\"constant.numeric\",regex:/\\b[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"keyword\",\"text\",\"entity.name.function\"],regex:/(procedure)(\\s+)(\\S+)/},{token:[\"entity.name.function\",\"text\"],regex:/(@\\S+)(:|\\s*\\()/},{token:[\"text\",\"keyword\",\"text\",\"entity.name.function\"],regex:/(^\\s*)(call)(\\s+)(\\S+)/},{token:\"comment\",regex:/(^\\s*#|;).*$/},{token:\"text\",regex:/\\s+/}],form:[{token:[\"keyword\",\"text\",\"constant.numeric\"],regex:/((?:optionmenu|choice)\\s+)(\\S+:\\s+)([0-9]+)/},{token:[\"keyword\",\"constant.numeric\"],regex:/((?:option|button)\\s+)([+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b)/},{token:[\"keyword\",\"string\"],regex:/((?:option|button)\\s+)(.*)/},{token:[\"keyword\",\"text\",\"string\"],regex:/((?:sentence|text)\\s+)(\\S+\\s*)(.*)/},{token:[\"keyword\",\"text\",\"string\",\"invalid.illegal\"],regex:/(word\\s+)(\\S+\\s*)(\\S+)?(\\s.*)?/},{token:[\"keyword\",\"text\",\"constant.language\"],regex:/(boolean\\s+)(\\S+\\s*)(0|1|\"?(?:yes|no)\"?)/},{token:[\"keyword\",\"text\",\"constant.numeric\"],regex:/((?:real|natural|positive|integer)\\s+)(\\S+\\s*)([+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b)/},{token:[\"keyword\",\"string\"],regex:/(comment\\s+)(.*)/},{token:\"keyword\",regex:\"endform\",next:\"start\"}],\"for\":[{token:[\"keyword\",\"text\",\"constant.numeric\",\"text\"],regex:/(from|to)(\\s+)([+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?)(\\s*)/},{token:[\"keyword\",\"text\"],regex:/(from|to)(\\s+\\S+\\s*)/},{token:\"text\",regex:/$/,next:\"start\"}],brokenstring:[{token:[\"text\",\"string\"],regex:/(\\s*\\.{3})([^\"]*)/},{token:\"string\",regex:/\"/,next:\"start\"}]}};r.inherits(s,i),t.PraatHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/praat\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/praat_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./praat_highlight_rules\").PraatHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o};r.inherits(f,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[\\:]\\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/praat\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-prolog.js",
    "content": "ace.define(\"ace/mode/prolog_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{include:\"#comment\"},{include:\"#basic_fact\"},{include:\"#rule\"},{include:\"#directive\"},{include:\"#fact\"}],\"#atom\":[{token:\"constant.other.atom.prolog\",regex:\"\\\\b[a-z][a-zA-Z0-9_]*\\\\b\"},{token:\"constant.numeric.prolog\",regex:\"-?\\\\d+(?:\\\\.\\\\d+)?\"},{include:\"#string\"}],\"#basic_elem\":[{include:\"#comment\"},{include:\"#statement\"},{include:\"#constants\"},{include:\"#operators\"},{include:\"#builtins\"},{include:\"#list\"},{include:\"#atom\"},{include:\"#variable\"}],\"#basic_fact\":[{token:[\"entity.name.function.fact.basic.prolog\",\"punctuation.end.fact.basic.prolog\"],regex:\"([a-z]\\\\w*)(\\\\.)\"}],\"#builtins\":[{token:\"support.function.builtin.prolog\",regex:\"\\\\b(?:abolish|abort|ancestors|arg|ascii|assert[az]|atom(?:ic)?|body|char|close|conc|concat|consult|define|definition|dynamic|dump|fail|file|free|free_proc|functor|getc|goal|halt|head|head|integer|length|listing|match_args|member|next_clause|nl|nonvar|nth|number|cvars|nvars|offset|op|print?|prompt|putc|quoted|ratom|read|redefine|rename|retract(?:all)?|see|seeing|seen|skip|spy|statistics|system|tab|tell|telling|term|time|told|univ|unlink_clause|unspy_predicate|var|write)\\\\b\"}],\"#comment\":[{token:[\"punctuation.definition.comment.prolog\",\"comment.line.percentage.prolog\"],regex:\"(%)(.*$)\"},{token:\"punctuation.definition.comment.prolog\",regex:\"/\\\\*\",push:[{token:\"punctuation.definition.comment.prolog\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.prolog\"}]}],\"#constants\":[{token:\"constant.language.prolog\",regex:\"\\\\b(?:true|false|yes|no)\\\\b\"}],\"#directive\":[{token:\"keyword.operator.directive.prolog\",regex:\":-\",push:[{token:\"meta.directive.prolog\",regex:\"\\\\.\",next:\"pop\"},{include:\"#comment\"},{include:\"#statement\"},{defaultToken:\"meta.directive.prolog\"}]}],\"#expr\":[{include:\"#comments\"},{token:\"meta.expression.prolog\",regex:\"\\\\(\",push:[{token:\"meta.expression.prolog\",regex:\"\\\\)\",next:\"pop\"},{include:\"#expr\"},{defaultToken:\"meta.expression.prolog\"}]},{token:\"keyword.control.cutoff.prolog\",regex:\"!\"},{token:\"punctuation.control.and.prolog\",regex:\",\"},{token:\"punctuation.control.or.prolog\",regex:\";\"},{include:\"#basic_elem\"}],\"#fact\":[{token:[\"entity.name.function.fact.prolog\",\"punctuation.begin.fact.parameters.prolog\"],regex:\"([a-z]\\\\w*)(\\\\()(?!.*:-)\",push:[{token:[\"punctuation.end.fact.parameters.prolog\",\"punctuation.end.fact.prolog\"],regex:\"(\\\\))(\\\\.?)\",next:\"pop\"},{include:\"#parameter\"},{defaultToken:\"meta.fact.prolog\"}]}],\"#list\":[{token:\"punctuation.begin.list.prolog\",regex:\"\\\\[(?=.*\\\\])\",push:[{token:\"punctuation.end.list.prolog\",regex:\"\\\\]\",next:\"pop\"},{include:\"#comment\"},{token:\"punctuation.separator.list.prolog\",regex:\",\"},{token:\"punctuation.concat.list.prolog\",regex:\"\\\\|\",push:[{token:\"meta.list.concat.prolog\",regex:\"(?=\\\\s*\\\\])\",next:\"pop\"},{include:\"#basic_elem\"},{defaultToken:\"meta.list.concat.prolog\"}]},{include:\"#basic_elem\"},{defaultToken:\"meta.list.prolog\"}]}],\"#operators\":[{token:\"keyword.operator.prolog\",regex:\"\\\\\\\\\\\\+|\\\\bnot\\\\b|\\\\bis\\\\b|->|[><]|[><\\\\\\\\:=]?=|(?:=\\\\\\\\|\\\\\\\\=)=\"}],\"#parameter\":[{token:\"variable.language.anonymous.prolog\",regex:\"\\\\b_\\\\b\"},{token:\"variable.parameter.prolog\",regex:\"\\\\b[A-Z_]\\\\w*\\\\b\"},{token:\"punctuation.separator.parameters.prolog\",regex:\",\"},{include:\"#basic_elem\"},{token:\"text\",regex:\"[^\\\\s]\"}],\"#rule\":[{token:\"meta.rule.prolog\",regex:\"(?=[a-z]\\\\w*.*:-)\",push:[{token:\"punctuation.rule.end.prolog\",regex:\"\\\\.\",next:\"pop\"},{token:\"meta.rule.signature.prolog\",regex:\"(?=[a-z]\\\\w*.*:-)\",push:[{token:\"meta.rule.signature.prolog\",regex:\"(?=:-)\",next:\"pop\"},{token:\"entity.name.function.rule.prolog\",regex:\"[a-z]\\\\w*(?=\\\\(|\\\\s*:-)\"},{token:\"punctuation.rule.parameters.begin.prolog\",regex:\"\\\\(\",push:[{token:\"punctuation.rule.parameters.end.prolog\",regex:\"\\\\)\",next:\"pop\"},{include:\"#parameter\"},{defaultToken:\"meta.rule.parameters.prolog\"}]},{defaultToken:\"meta.rule.signature.prolog\"}]},{token:\"keyword.operator.definition.prolog\",regex:\":-\",push:[{token:\"meta.rule.definition.prolog\",regex:\"(?=\\\\.)\",next:\"pop\"},{include:\"#comment\"},{include:\"#expr\"},{defaultToken:\"meta.rule.definition.prolog\"}]},{defaultToken:\"meta.rule.prolog\"}]}],\"#statement\":[{token:\"meta.statement.prolog\",regex:\"(?=[a-z]\\\\w*\\\\()\",push:[{token:\"punctuation.end.statement.parameters.prolog\",regex:\"\\\\)\",next:\"pop\"},{include:\"#builtins\"},{include:\"#atom\"},{token:\"punctuation.begin.statement.parameters.prolog\",regex:\"\\\\(\",push:[{token:\"meta.statement.parameters.prolog\",regex:\"(?=\\\\))\",next:\"pop\"},{token:\"punctuation.separator.statement.prolog\",regex:\",\"},{include:\"#basic_elem\"},{defaultToken:\"meta.statement.parameters.prolog\"}]},{defaultToken:\"meta.statement.prolog\"}]}],\"#string\":[{token:\"punctuation.definition.string.begin.prolog\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.prolog\",regex:\"'\",next:\"pop\"},{token:\"constant.character.escape.prolog\",regex:\"\\\\\\\\.\"},{token:\"constant.character.escape.quote.prolog\",regex:\"''\"},{defaultToken:\"string.quoted.single.prolog\"}]}],\"#variable\":[{token:\"variable.language.anonymous.prolog\",regex:\"\\\\b_\\\\b\"},{token:\"variable.other.prolog\",regex:\"\\\\b[A-Z_][a-zA-Z0-9_]*\\\\b\"}]},this.normalizeRules()};s.metaData={fileTypes:[\"plg\",\"prolog\"],foldingStartMarker:\"(%\\\\s*region \\\\w*)|([a-z]\\\\w*.*:- ?)\",foldingStopMarker:\"(%\\\\s*end(\\\\s*region)?)|(?=\\\\.)\",keyEquivalent:\"^~P\",name:\"Prolog\",scopeName:\"source.prolog\"},r.inherits(s,i),t.PrologHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/prolog\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/prolog_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./prolog_highlight_rules\").PrologHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"%\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/prolog\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-properties.js",
    "content": "ace.define(\"ace/mode/properties_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=/\\\\u[0-9a-fA-F]{4}|\\\\/;this.$rules={start:[{token:\"comment\",regex:/[!#].*$/},{token:\"keyword\",regex:/[=:]$/},{token:\"keyword\",regex:/[=:]/,next:\"value\"},{token:\"constant.language.escape\",regex:e},{defaultToken:\"variable\"}],value:[{regex:/\\\\$/,token:\"string\",next:\"value\"},{regex:/$/,token:\"string\",next:\"start\"},{token:\"constant.language.escape\",regex:e},{defaultToken:\"string\"}]}};r.inherits(s,i),t.PropertiesHighlightRules=s}),ace.define(\"ace/mode/properties\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/properties_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./properties_highlight_rules\").PropertiesHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.$id=\"ace/mode/properties\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-protobuf.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.cFunctions=\"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\",u=function(){var e=\"break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using\",t=\"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template|char16_t|char32_t\",n=\"const|extern|register|restrict|static|volatile|inline|private|protected|public|friend|explicit|virtual|export|mutable|typename|constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\",r=\"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eqconst_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\",s=\"NULL|true|false|TRUE|FALSE|nullptr\",u=this.$keywords=this.createKeywordMapper({\"keyword.control\":e,\"storage.type\":t,\"storage.modifier\":n,\"keyword.operator\":r,\"variable.language\":\"this\",\"constant.language\":s},\"identifier\"),a=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Zd\\\\$_\\u00a1-\\uffff]*\\\\b\",f=/\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source;this.$rules={start:[{token:\"comment\",regex:\"//$\",next:\"start\"},{token:\"comment\",regex:\"//\",next:\"singleLineComment\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:\"'(?:\"+f+\"|.)'\"},{token:\"string.start\",regex:'\"',stateName:\"qqstring\",next:[{token:\"string\",regex:/\\\\\\s*$/,next:\"qqstring\"},{token:\"constant.language.escape\",regex:f},{token:\"constant.language.escape\",regex:/%[^'\"\\\\]/},{token:\"string.end\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:'R\"\\\\(',stateName:\"rawString\",next:[{token:\"string.end\",regex:'\\\\)\"',next:\"start\"},{defaultToken:\"string\"}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"},{token:\"keyword\",regex:\"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",next:\"directive\"},{token:\"keyword\",regex:\"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"},{token:\"support.function.C99.c\",regex:o},{token:u,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\"},{token:\"keyword.operator\",regex:/--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],singleLineComment:[{token:\"comment\",regex:/\\\\$/,next:\"singleLineComment\"},{token:\"comment\",regex:/$/,next:\"start\"},{defaultToken:\"comment\"}],directive:[{token:\"constant.other.multiline\",regex:/\\\\/},{token:\"constant.other.multiline\",regex:/.*\\\\/},{token:\"constant.other\",regex:\"\\\\s*<.+?>\",next:\"start\"},{token:\"constant.other\",regex:'\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',next:\"start\"},{token:\"constant.other\",regex:\"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",next:\"start\"},{token:\"constant.other\",regex:/[^\\\\\\/]+/,next:\"start\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(u,s),t.c_cppHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/c_cpp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c_cpp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./c_cpp_highlight_rules\").c_cppHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/c_cpp\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/protobuf_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes\",t=\"message|required|optional|repeated|package|import|option|enum\",n=this.createKeywordMapper({\"keyword.declaration.protobuf\":t,\"support.type\":e},\"identifier\");this.$rules={start:[{token:\"comment\",regex:/\\/\\/.*$/},{token:\"comment\",regex:/\\/\\*/,next:\"comment\"},{token:\"constant\",regex:\"<[^>]+>\"},{regex:\"=\",token:\"keyword.operator.assignment.protobuf\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:n,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.normalizeRules()};r.inherits(s,i),t.ProtobufHighlightRules=s}),ace.define(\"ace/mode/protobuf\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/c_cpp\",\"ace/mode/protobuf_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./c_cpp\").Mode,s=e(\"./protobuf_highlight_rules\").ProtobufHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){i.call(this),this.foldingRules=new o,this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/protobuf\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-python.js",
    "content": "ace.define(\"ace/mode/python_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield\",t=\"True|False|None|NotImplemented|Ellipsis|__debug__\",n=\"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|set|apply|delattr|help|next|setattr|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern\",r=this.createKeywordMapper({\"invalid.deprecated\":\"debugger\",\"support.function\":n,\"constant.language\":t,keyword:e},\"identifier\"),i=\"(?:r|u|ur|R|U|UR|Ur|uR)?\",s=\"(?:(?:[1-9]\\\\d*)|(?:0))\",o=\"(?:0[oO]?[0-7]+)\",u=\"(?:0[xX][\\\\dA-Fa-f]+)\",a=\"(?:0[bB][01]+)\",f=\"(?:\"+s+\"|\"+o+\"|\"+u+\"|\"+a+\")\",l=\"(?:[eE][+-]?\\\\d+)\",c=\"(?:\\\\.\\\\d+)\",h=\"(?:\\\\d+)\",p=\"(?:(?:\"+h+\"?\"+c+\")|(?:\"+h+\"\\\\.))\",d=\"(?:(?:\"+p+\"|\"+h+\")\"+l+\")\",v=\"(?:\"+d+\"|\"+p+\")\",m=\"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"string\",regex:i+'\"{3}',next:\"qqstring3\"},{token:\"string\",regex:i+'\"(?=.)',next:\"qqstring\"},{token:\"string\",regex:i+\"'{3}\",next:\"qstring3\"},{token:\"string\",regex:i+\"'(?=.)\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"(?:\"+v+\"|\\\\d+)[jJ]\\\\b\"},{token:\"constant.numeric\",regex:v},{token:\"constant.numeric\",regex:f+\"[lL]\\\\b\"},{token:\"constant.numeric\",regex:f+\"\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]\\\\)\\\\}]\"},{token:\"text\",regex:\"\\\\s+\"}],qqstring3:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:'\"{3}',next:\"start\"},{defaultToken:\"string\"}],qstring3:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:\"'{3}\",next:\"start\"},{defaultToken:\"string\"}],qqstring:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:m},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"start\"},{defaultToken:\"string\"}]}};r.inherits(s,i),t.PythonHighlightRules=s}),ace.define(\"ace/mode/folding/pythonic\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e){this.foldingStartMarker=new RegExp(\"([\\\\[{])(?:\\\\s*)$|(\"+e+\")(?:\\\\s*)(?:#.*)?$\")};r.inherits(s,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i)return i[1]?this.openingBracketBlock(e,i[1],n,i.index):i[2]?this.indentationBlock(e,n,i.index+i[2].length):this.indentationBlock(e,n)}}.call(s.prototype)}),ace.define(\"ace/mode/python\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/python_highlight_rules\",\"ace/mode/folding/pythonic\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./python_highlight_rules\").PythonHighlightRules,o=e(\"./folding/pythonic\").FoldMode,u=e(\"../range\").Range,a=function(){this.HighlightRules=s,this.foldingRules=new o(\"\\\\:\")};r.inherits(a,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[\\:]\\s*$/);o&&(r+=n)}return r};var e={pass:1,\"return\":1,raise:1,\"break\":1,\"continue\":1};this.checkOutdent=function(t,n,r){if(r!==\"\\r\\n\"&&r!==\"\\r\"&&r!==\"\\n\")return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do var s=i.pop();while(s&&(s.type==\"comment\"||s.type==\"text\"&&s.value.match(/^\\s+$/)));return s?s.type==\"keyword\"&&e[s.value]:!1},this.autoOutdent=function(e,t,n){n+=1;var r=this.$getIndent(t.getLine(n)),i=t.getTabString();r.slice(-i.length)==i&&t.remove(new u(n,r.length-i.length,n,r.length))},this.$id=\"ace/mode/python\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-r.js",
    "content": "ace.define(\"ace/mode/tex_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(e){e||(e=\"text\"),this.$rules={start:[{token:\"comment\",regex:\"%.*$\"},{token:e,regex:\"\\\\\\\\[$&%#\\\\{\\\\}]\"},{token:\"keyword\",regex:\"\\\\\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\\\b\",next:\"nospell\"},{token:\"keyword\",regex:\"\\\\\\\\(?:[a-zA-z0-9]+|[^a-zA-z0-9])\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])}]\"},{token:e,regex:\"\\\\s+\"}],nospell:[{token:\"comment\",regex:\"%.*$\",next:\"start\"},{token:\"nospell.\"+e,regex:\"\\\\\\\\[$&%#\\\\{\\\\}]\"},{token:\"keyword\",regex:\"\\\\\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\\\b\"},{token:\"keyword\",regex:\"\\\\\\\\(?:[a-zA-z0-9]+|[^a-zA-z0-9])\",next:\"start\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])]\"},{token:\"paren.keyword.operator\",regex:\"}\",next:\"start\"},{token:\"nospell.\"+e,regex:\"\\\\s+\"},{token:\"nospell.\"+e,regex:\"\\\\w+\"}]}};r.inherits(o,s),t.TexHighlightRules=o}),ace.define(\"ace/mode/r_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/tex_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./tex_highlight_rules\").TexHighlightRules,u=function(){var e=i.arrayToMap(\"function|if|in|break|next|repeat|else|for|return|switch|while|try|tryCatch|stop|warning|require|library|attach|detach|source|setMethod|setGeneric|setGroupGeneric|setClass\".split(\"|\")),t=i.arrayToMap(\"NULL|NA|TRUE|FALSE|T|F|Inf|NaN|NA_integer_|NA_real_|NA_character_|NA_complex_\".split(\"|\"));this.$rules={start:[{token:\"comment.sectionhead\",regex:\"#+(?!').*(?:----|====|####)\\\\s*$\"},{token:\"comment\",regex:\"#+'\",next:\"rd-start\"},{token:\"comment\",regex:\"#.*$\"},{token:\"string\",regex:'[\"]',next:\"qqstring\"},{token:\"string\",regex:\"[']\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+[Li]?\\\\b\"},{token:\"constant.numeric\",regex:\"\\\\d+L\\\\b\"},{token:\"constant.numeric\",regex:\"\\\\d+(?:\\\\.\\\\d*)?(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b\"},{token:\"constant.numeric\",regex:\"\\\\.\\\\d+(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:TRUE|FALSE|T|F)\\\\b\"},{token:\"identifier\",regex:\"`.*?`\"},{onMatch:function(n){return e[n]?\"keyword\":t[n]?\"constant.language\":n==\"...\"||n.match(/^\\.\\.\\d+$/)?\"variable.language\":\"identifier\"},regex:\"[a-zA-Z.][a-zA-Z0-9._]*\\\\b\"},{token:\"keyword.operator\",regex:\"%%|>=|<=|==|!=|\\\\->|<\\\\-|\\\\|\\\\||&&|=|\\\\+|\\\\-|\\\\*|/|\\\\^|>|<|!|&|\\\\||~|\\\\$|:\"},{token:\"keyword.operator\",regex:\"%.*?%\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],qqstring:[{token:\"string\",regex:'(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',next:\"start\"},{token:\"string\",regex:\".+\"}],qstring:[{token:\"string\",regex:\"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",next:\"start\"},{token:\"string\",regex:\".+\"}]};var n=(new o(\"comment\")).getRules();for(var r=0;r<n.start.length;r++)n.start[r].token+=\".virtual-comment\";this.addRules(n,\"rd-\"),this.$rules[\"rd-start\"].unshift({token:\"text\",regex:\"^\",next:\"start\"}),this.$rules[\"rd-start\"].unshift({token:\"keyword\",regex:\"@(?!@)[^ ]*\"}),this.$rules[\"rd-start\"].unshift({token:\"comment\",regex:\"@@\"}),this.$rules[\"rd-start\"].push({token:\"comment\",regex:\"[^%\\\\\\\\[({\\\\])}]+\"})};r.inherits(u,s),t.RHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/r\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/r_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/unicode\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=e(\"../lib/oop\"),s=e(\"./text\").Mode,o=e(\"./text_highlight_rules\").TextHighlightRules,u=e(\"./r_highlight_rules\").RHighlightRules,a=e(\"./matching_brace_outdent\").MatchingBraceOutdent,f=e(\"../unicode\"),l=function(){this.HighlightRules=u,this.$outdent=new a};i.inherits(l,s),function(){this.lineCommentStart=\"#\",this.$id=\"ace/mode/r\"}.call(l.prototype),t.Mode=l})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-razor.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[A-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/csharp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=this.createKeywordMapper({\"variable.language\":\"this\",keyword:\"abstract|event|new|struct|as|explicit|null|switch|base|extern|object|this|bool|false|operator|throw|break|finally|out|true|byte|fixed|override|try|case|float|params|typeof|catch|for|private|uint|char|foreach|protected|ulong|checked|goto|public|unchecked|class|if|readonly|unsafe|const|implicit|ref|ushort|continue|in|return|using|decimal|int|sbyte|virtual|default|interface|sealed|volatile|delegate|internal|short|void|do|is|sizeof|while|double|lock|stackalloc|else|long|static|enum|namespace|string|var|dynamic\",\"constant.language\":\"null|true|false\"},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:/'(?:.|\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n]))'/},{token:\"string\",start:'\"',end:'\"|$',next:[{token:\"constant.language.escape\",regex:/\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n])/},{token:\"invalid\",regex:/\\\\./}]},{token:\"string\",start:'@\"',end:'\"',next:[{token:\"constant.language.escape\",regex:'\"\"'}]},{token:\"string\",start:/\\$\"/,end:'\"|$',next:[{token:\"constant.language.escape\",regex:/\\\\(:?$)|{{/},{token:\"constant.language.escape\",regex:/\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n])/},{token:\"invalid\",regex:/\\\\./}]},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:e,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"keyword\",regex:\"^\\\\s*#(if|else|elif|endif|define|undef|warning|error|line|region|endregion|pragma)\"},{token:\"punctuation.operator\",regex:\"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(o,s),t.CSharpHighlightRules=o}),ace.define(\"ace/mode/razor_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/html_highlight_rules\",\"ace/mode/csharp_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,o=e(\"./html_highlight_rules\").HtmlHighlightRules,u=e(\"./csharp_highlight_rules\").CSharpHighlightRules,a=\"razor-block-\",f=function(){u.call(this);var e=function(e,t){return typeof t==\"function\"?t(e):t},t=\"in-braces\";this.$rules.start.unshift({regex:\"[\\\\[({]\",onMatch:function(e,n,r){var i=/razor-[^\\-]+-/.exec(n)[0];return r.unshift(e),r.unshift(i+t),this.next=i+t,\"paren.lparen\"}});var n={\"{\":\"}\",\"[\":\"]\",\"(\":\")\"};this.$rules[t]=i.deepCopy(this.$rules.start),this.$rules[t].unshift({regex:\"[\\\\])}]\",onMatch:function(t,r,i){var s=i[1];return n[s]!==t?\"invalid.illegal\":(i.shift(),i.shift(),this.next=e(t,i[0])||\"start\",\"paren.rparen\")}})};r.inherits(f,u);var l=function(){o.call(this);var e={regex:\"@[({]|@functions{\",onMatch:function(e,t,n){return n.unshift(e),n.unshift(\"razor-block-start\"),this.next=\"razor-block-start\",\"punctuation.block.razor\"}},t={\"@{\":\"}\",\"@(\":\")\",\"@functions{\":\"}\"},n={regex:\"[})]\",onMatch:function(e,n,r){var i=r[1];return t[i]!==e?\"invalid.illegal\":(r.shift(),r.shift(),this.next=r.shift()||\"start\",\"punctuation.block.razor\")}},r={regex:\"@(?![{(])\",onMatch:function(e,t,n){return n.unshift(\"razor-short-start\"),this.next=\"razor-short-start\",\"punctuation.short.razor\"}},i={token:\"\",regex:\"(?=[^A-Za-z_\\\\.()\\\\[\\\\]])\",next:\"pop\"},s={regex:\"@(?=if)\",onMatch:function(e,t,n){return n.unshift(function(e){return e!==\"}\"?\"start\":n.shift()||\"start\"}),this.next=\"razor-block-start\",\"punctuation.control.razor\"}},u=[{token:[\"meta.directive.razor\",\"text\",\"identifier\"],regex:\"^(\\\\s*@model)(\\\\s+)(.+)$\"},e,r];for(var a in this.$rules)this.$rules[a].unshift.apply(this.$rules[a],u);this.embedRules(f,\"razor-block-\",[n],[\"start\"]),this.embedRules(f,\"razor-short-\",[i],[\"start\"]),this.normalizeRules()};r.inherits(l,o),t.RazorHighlightRules=l,t.RazorLangHighlightRules=f}),ace.define(\"ace/mode/razor_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../token_iterator\").TokenIterator,i=[\"abstract\",\"as\",\"base\",\"bool\",\"break\",\"byte\",\"case\",\"catch\",\"char\",\"checked\",\"class\",\"const\",\"continue\",\"decimal\",\"default\",\"delegate\",\"do\",\"double\",\"else\",\"enum\",\"event\",\"explicit\",\"extern\",\"false\",\"finally\",\"fixed\",\"float\",\"for\",\"foreach\",\"goto\",\"if\",\"implicit\",\"in\",\"int\",\"interface\",\"internal\",\"is\",\"lock\",\"long\",\"namespace\",\"new\",\"null\",\"object\",\"operator\",\"out\",\"override\",\"params\",\"private\",\"protected\",\"public\",\"readonly\",\"ref\",\"return\",\"sbyte\",\"sealed\",\"short\",\"sizeof\",\"stackalloc\",\"static\",\"string\",\"struct\",\"switch\",\"this\",\"throw\",\"true\",\"try\",\"typeof\",\"uint\",\"ulong\",\"unchecked\",\"unsafe\",\"ushort\",\"using\",\"var\",\"virtual\",\"void\",\"volatile\",\"while\"],s=[\"Html\",\"Model\",\"Url\",\"Layout\"],o=function(){};(function(){this.getCompletions=function(e,t,n,r){if(e.lastIndexOf(\"razor-short-start\")==-1&&e.lastIndexOf(\"razor-block-start\")==-1)return[];var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e.lastIndexOf(\"razor-short-start\")!=-1)return this.getShortStartCompletions(e,t,n,r);if(e.lastIndexOf(\"razor-block-start\")!=-1)return this.getKeywordCompletions(e,t,n,r)},this.getShortStartCompletions=function(e,t,n,r){return s.map(function(e){return{value:e,meta:\"keyword\",score:Number.MAX_VALUE}})},this.getKeywordCompletions=function(e,t,n,r){return s.concat(i).map(function(e){return{value:e,meta:\"keyword\",score:Number.MAX_VALUE}})}}).call(o.prototype),t.RazorCompletions=o}),ace.define(\"ace/mode/razor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/razor_highlight_rules\",\"ace/mode/razor_completions\",\"ace/mode/html_completions\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./razor_highlight_rules\").RazorHighlightRules,o=e(\"./razor_completions\").RazorCompletions,u=e(\"./html_completions\").HtmlCompletions,a=function(){i.call(this),this.$highlightRules=new s,this.$completer=new o,this.$htmlCompleter=new u};r.inherits(a,i),function(){this.getCompletions=function(e,t,n,r){var i=this.$completer.getCompletions(e,t,n,r),s=this.$htmlCompleter.getCompletions(e,t,n,r);return i.concat(s)},this.createWorker=function(e){return null},this.$id=\"ace/mode/razor\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-rdoc.js",
    "content": "ace.define(\"ace/mode/latex_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment\",regex:\"%.*$\"},{token:[\"keyword\",\"lparen\",\"variable.parameter\",\"rparen\",\"lparen\",\"storage.type\",\"rparen\"],regex:\"(\\\\\\\\(?:documentclass|usepackage|input))(?:(\\\\[)([^\\\\]]*)(\\\\]))?({)([^}]*)(})\"},{token:[\"keyword\",\"lparen\",\"variable.parameter\",\"rparen\"],regex:\"(\\\\\\\\(?:label|v?ref|cite(?:[^{]*)))(?:({)([^}]*)(}))?\"},{token:[\"storage.type\",\"lparen\",\"variable.parameter\",\"rparen\"],regex:\"(\\\\\\\\(?:begin|end))({)(\\\\w*)(})\"},{token:\"storage.type\",regex:\"\\\\\\\\[a-zA-Z]+\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"constant.character.escape\",regex:\"\\\\\\\\[^a-zA-Z]?\"},{token:\"string\",regex:\"\\\\${1,2}\",next:\"equation\"}],equation:[{token:\"comment\",regex:\"%.*$\"},{token:\"string\",regex:\"\\\\${1,2}\",next:\"start\"},{token:\"constant.character.escape\",regex:\"\\\\\\\\(?:[^a-zA-Z]|[a-zA-Z]+)\"},{token:\"error\",regex:\"^\\\\s*$\",next:\"start\"},{defaultToken:\"string\"}]}};r.inherits(s,i),t.LatexHighlightRules=s}),ace.define(\"ace/mode/rdoc_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/latex_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./latex_highlight_rules\"),u=function(){this.$rules={start:[{token:\"comment\",regex:\"%.*$\"},{token:\"text\",regex:\"\\\\\\\\[$&%#\\\\{\\\\}]\"},{token:\"keyword\",regex:\"\\\\\\\\(?:name|alias|method|S3method|S4method|item|code|preformatted|kbd|pkg|var|env|option|command|author|email|url|source|cite|acronym|href|code|preformatted|link|eqn|deqn|keyword|usage|examples|dontrun|dontshow|figure|if|ifelse|Sexpr|RdOpts|inputencoding|usepackage)\\\\b\",next:\"nospell\"},{token:\"keyword\",regex:\"\\\\\\\\(?:[a-zA-z0-9]+|[^a-zA-z0-9])\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],nospell:[{token:\"comment\",regex:\"%.*$\",next:\"start\"},{token:\"nospell.text\",regex:\"\\\\\\\\[$&%#\\\\{\\\\}]\"},{token:\"keyword\",regex:\"\\\\\\\\(?:name|alias|method|S3method|S4method|item|code|preformatted|kbd|pkg|var|env|option|command|author|email|url|source|cite|acronym|href|code|preformatted|link|eqn|deqn|keyword|usage|examples|dontrun|dontshow|figure|if|ifelse|Sexpr|RdOpts|inputencoding|usepackage)\\\\b\"},{token:\"keyword\",regex:\"\\\\\\\\(?:[a-zA-z0-9]+|[^a-zA-z0-9])\",next:\"start\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])]\"},{token:\"paren.keyword.operator\",regex:\"}\",next:\"start\"},{token:\"nospell.text\",regex:\"\\\\s+\"},{token:\"nospell.text\",regex:\"\\\\w+\"}]}};r.inherits(u,s),t.RDocHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/rdoc\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/rdoc_highlight_rules\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./rdoc_highlight_rules\").RDocHighlightRules,u=e(\"./matching_brace_outdent\").MatchingBraceOutdent,a=function(e){this.HighlightRules=o,this.$outdent=new u};r.inherits(a,i),function(){this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.$id=\"ace/mode/rdoc\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-rhtml.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[A-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/tex_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(e){e||(e=\"text\"),this.$rules={start:[{token:\"comment\",regex:\"%.*$\"},{token:e,regex:\"\\\\\\\\[$&%#\\\\{\\\\}]\"},{token:\"keyword\",regex:\"\\\\\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\\\b\",next:\"nospell\"},{token:\"keyword\",regex:\"\\\\\\\\(?:[a-zA-z0-9]+|[^a-zA-z0-9])\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])}]\"},{token:e,regex:\"\\\\s+\"}],nospell:[{token:\"comment\",regex:\"%.*$\",next:\"start\"},{token:\"nospell.\"+e,regex:\"\\\\\\\\[$&%#\\\\{\\\\}]\"},{token:\"keyword\",regex:\"\\\\\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\\\b\"},{token:\"keyword\",regex:\"\\\\\\\\(?:[a-zA-z0-9]+|[^a-zA-z0-9])\",next:\"start\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])]\"},{token:\"paren.keyword.operator\",regex:\"}\",next:\"start\"},{token:\"nospell.\"+e,regex:\"\\\\s+\"},{token:\"nospell.\"+e,regex:\"\\\\w+\"}]}};r.inherits(o,s),t.TexHighlightRules=o}),ace.define(\"ace/mode/r_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/tex_highlight_rules\"],function(e,t,n){var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./tex_highlight_rules\").TexHighlightRules,u=function(){var e=i.arrayToMap(\"function|if|in|break|next|repeat|else|for|return|switch|while|try|tryCatch|stop|warning|require|library|attach|detach|source|setMethod|setGeneric|setGroupGeneric|setClass\".split(\"|\")),t=i.arrayToMap(\"NULL|NA|TRUE|FALSE|T|F|Inf|NaN|NA_integer_|NA_real_|NA_character_|NA_complex_\".split(\"|\"));this.$rules={start:[{token:\"comment.sectionhead\",regex:\"#+(?!').*(?:----|====|####)\\\\s*$\"},{token:\"comment\",regex:\"#+'\",next:\"rd-start\"},{token:\"comment\",regex:\"#.*$\"},{token:\"string\",regex:'[\"]',next:\"qqstring\"},{token:\"string\",regex:\"[']\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+[Li]?\\\\b\"},{token:\"constant.numeric\",regex:\"\\\\d+L\\\\b\"},{token:\"constant.numeric\",regex:\"\\\\d+(?:\\\\.\\\\d*)?(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b\"},{token:\"constant.numeric\",regex:\"\\\\.\\\\d+(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:TRUE|FALSE|T|F)\\\\b\"},{token:\"identifier\",regex:\"`.*?`\"},{onMatch:function(n){return e[n]?\"keyword\":t[n]?\"constant.language\":n==\"...\"||n.match(/^\\.\\.\\d+$/)?\"variable.language\":\"identifier\"},regex:\"[a-zA-Z.][a-zA-Z0-9._]*\\\\b\"},{token:\"keyword.operator\",regex:\"%%|>=|<=|==|!=|\\\\->|<\\\\-|\\\\|\\\\||&&|=|\\\\+|\\\\-|\\\\*|/|\\\\^|>|<|!|&|\\\\||~|\\\\$|:\"},{token:\"keyword.operator\",regex:\"%.*?%\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],qqstring:[{token:\"string\",regex:'(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',next:\"start\"},{token:\"string\",regex:\".+\"}],qstring:[{token:\"string\",regex:\"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",next:\"start\"},{token:\"string\",regex:\".+\"}]};var n=(new o(\"comment\")).getRules();for(var r=0;r<n.start.length;r++)n.start[r].token+=\".virtual-comment\";this.addRules(n,\"rd-\"),this.$rules[\"rd-start\"].unshift({token:\"text\",regex:\"^\",next:\"start\"}),this.$rules[\"rd-start\"].unshift({token:\"keyword\",regex:\"@(?!@)[^ ]*\"}),this.$rules[\"rd-start\"].unshift({token:\"comment\",regex:\"@@\"}),this.$rules[\"rd-start\"].push({token:\"comment\",regex:\"[^%\\\\\\\\[({\\\\])}]+\"})};r.inherits(u,s),t.RHighlightRules=u}),ace.define(\"ace/mode/rhtml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/r_highlight_rules\",\"ace/mode/html_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./r_highlight_rules\").RHighlightRules,s=e(\"./html_highlight_rules\").HtmlHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){s.call(this),this.$rules.start.unshift({token:\"support.function.codebegin\",regex:\"^<!--\\\\s*begin.rcode\\\\s*(?:.*)\",next:\"r-start\"}),this.embedRules(i,\"r-\",[{token:\"support.function.codeend\",regex:\"^\\\\s*end.rcode\\\\s*-->\",next:\"start\"}],[\"start\"]),this.normalizeRules()};r.inherits(u,o),t.RHtmlHighlightRules=u}),ace.define(\"ace/mode/rhtml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/rhtml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./rhtml_highlight_rules\").RHtmlHighlightRules,o=function(e,t){i.call(this),this.$session=t,this.HighlightRules=s};r.inherits(o,i),function(){this.insertChunkInfo={value:\"<!--begin.rcode\\n\\nend.rcode-->\\n\",position:{row:0,column:15}},this.getLanguageMode=function(e){return this.$session.getState(e.row).match(/^r-/)?\"R\":\"HTML\"},this.$id=\"ace/mode/rhtml\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-rst.js",
    "content": "ace.define(\"ace/mode/rst_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e={title:\"markup.heading\",list:\"markup.heading\",table:\"constant\",directive:\"keyword.operator\",entity:\"string\",link:\"markup.underline.list\",bold:\"markup.bold\",italic:\"markup.italic\",literal:\"support.function\",comment:\"comment\"},t=\"(^|\\\\s|[\\\"'(<\\\\[{\\\\-/:])\",n=\"(?:$|(?=\\\\s|[\\\\\\\\.,;!?\\\\-/:\\\"')>\\\\]}]))\";this.$rules={start:[{token:e.title,regex:\"(^)([\\\\=\\\\-`:\\\\.'\\\"~\\\\^_\\\\*\\\\+#])(\\\\2{2,}\\\\s*$)\"},{token:[\"text\",e.directive,e.literal],regex:\"(^\\\\s*\\\\.\\\\. )([^: ]+::)(.*$)\",next:\"codeblock\"},{token:e.directive,regex:\"::$\",next:\"codeblock\"},{token:[e.entity,e.link],regex:\"(^\\\\.\\\\. _[^:]+:)(.*$)\"},{token:[e.entity,e.link],regex:\"(^__ )(https?://.*$)\"},{token:e.entity,regex:\"^\\\\.\\\\. \\\\[[^\\\\]]+\\\\] \"},{token:e.comment,regex:\"^\\\\.\\\\. .*$\",next:\"comment\"},{token:e.list,regex:\"^\\\\s*[\\\\*\\\\+-] \"},{token:e.list,regex:\"^\\\\s*(?:[A-Za-z]|[0-9]+|[ivxlcdmIVXLCDM]+)\\\\. \"},{token:e.list,regex:\"^\\\\s*\\\\(?(?:[A-Za-z]|[0-9]+|[ivxlcdmIVXLCDM]+)\\\\) \"},{token:e.table,regex:\"^={2,}(?: +={2,})+$\"},{token:e.table,regex:\"^\\\\+-{2,}(?:\\\\+-{2,})+\\\\+$\"},{token:e.table,regex:\"^\\\\+={2,}(?:\\\\+={2,})+\\\\+$\"},{token:[\"text\",e.literal],regex:t+\"(``)(?=\\\\S)\",next:\"code\"},{token:[\"text\",e.bold],regex:t+\"(\\\\*\\\\*)(?=\\\\S)\",next:\"bold\"},{token:[\"text\",e.italic],regex:t+\"(\\\\*)(?=\\\\S)\",next:\"italic\"},{token:e.entity,regex:\"\\\\|[\\\\w\\\\-]+?\\\\|\"},{token:e.entity,regex:\":[\\\\w-:]+:`\\\\S\",next:\"entity\"},{token:[\"text\",e.entity],regex:t+\"(_`)(?=\\\\S)\",next:\"entity\"},{token:e.entity,regex:\"_[A-Za-z0-9\\\\-]+?\"},{token:[\"text\",e.link],regex:t+\"(`)(?=\\\\S)\",next:\"link\"},{token:e.link,regex:\"[A-Za-z0-9\\\\-]+?__?\"},{token:e.link,regex:\"\\\\[[^\\\\]]+?\\\\]_\"},{token:e.link,regex:\"https?://\\\\S+\"},{token:e.table,regex:\"\\\\|\"}],codeblock:[{token:e.literal,regex:\"^ +.+$\",next:\"codeblock\"},{token:e.literal,regex:\"^$\",next:\"codeblock\"},{token:\"empty\",regex:\"\",next:\"start\"}],code:[{token:e.literal,regex:\"\\\\S``\"+n,next:\"start\"},{defaultToken:e.literal}],bold:[{token:e.bold,regex:\"\\\\S\\\\*\\\\*\"+n,next:\"start\"},{defaultToken:e.bold}],italic:[{token:e.italic,regex:\"\\\\S\\\\*\"+n,next:\"start\"},{defaultToken:e.italic}],entity:[{token:e.entity,regex:\"\\\\S`\"+n,next:\"start\"},{defaultToken:e.entity}],link:[{token:e.link,regex:\"\\\\S`__?\"+n,next:\"start\"},{defaultToken:e.link}],comment:[{token:e.comment,regex:\"^ +.+$\",next:\"comment\"},{token:e.comment,regex:\"^$\",next:\"comment\"},{token:\"empty\",regex:\"\",next:\"start\"}]}};r.inherits(o,s),t.RSTHighlightRules=o}),ace.define(\"ace/mode/rst\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/rst_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./rst_highlight_rules\").RSTHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.type=\"text\",this.$id=\"ace/mode/rst\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-ruby.js",
    "content": "ace.define(\"ace/mode/ruby_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=t.constantOtherSymbol={token:\"constant.other.symbol.ruby\",regex:\"[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?\"},o=t.qString={token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},u=t.qqString={token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},a=t.tString={token:\"string\",regex:\"[`](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[`]\"},f=t.constantNumericHex={token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\\\b\"},l=t.constantNumericFloat={token:\"constant.numeric\",regex:\"[+-]?\\\\d(?:\\\\d|_(?=\\\\d))*(?:(?:\\\\.\\\\d(?:\\\\d|_(?=\\\\d))*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},c=function(){var e=\"abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|validates_inclusion_of|validates_numericality_of|validates_with|validates_each|authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|cache|expire_fragment|expire_cache_for|observe|cache_sweeper|has_many|has_one|belongs_to|has_and_belongs_to_many\",t=\"alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield\",n=\"true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING\",r=\"$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|$!|root_url|flash|session|cookies|params|request|response|logger|self\",i=this.$keywords=this.createKeywordMapper({keyword:t,\"constant.language\":n,\"variable.language\":r,\"support.function\":e,\"invalid.deprecated\":\"debugger\"},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"comment\",regex:\"^=begin(?:$|\\\\s.*$)\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},[{regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)return n.unshift(\"start\",t),\"paren.lparen\";if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1)return\"paren.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.start\",regex:/\"/,push:[{token:\"constant.language.escape\",regex:/\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/},{token:\"paren.start\",regex:/\\#{/,push:\"start\"},{token:\"string.end\",regex:/\"/,next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:/\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/},{token:\"paren.start\",regex:/\\#{/,push:\"start\"},{token:\"string.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string.start\",regex:/'/,push:[{token:\"constant.language.escape\",regex:/\\\\['\\\\]/},{token:\"string.end\",regex:/'/,next:\"pop\"},{defaultToken:\"string\"}]}],{token:\"text\",regex:\"::\"},{token:\"variable.instance\",regex:\"@{1,2}[a-zA-Z_\\\\d]+\"},{token:\"support.class\",regex:\"[A-Z][a-zA-Z_\\\\d]+\"},s,f,l,{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:i,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"punctuation.separator.key-value\",regex:\"=>\"},{stateName:\"heredoc\",onMatch:function(e,t,n){var r=e[2]==\"-\"?\"indentedHeredoc\":\"heredoc\",i=e.split(this.splitRegex);return n.push(r,i[3]),[{type:\"constant\",value:i[1]},{type:\"string\",value:i[2]},{type:\"support.class\",value:i[3]},{type:\"string\",value:i[4]}]},regex:\"(<<-?)(['\\\"`]?)([\\\\w]+)(['\\\"`]?)\",rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}],indentedHeredoc:[{token:\"string\",regex:\"^ +\"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}]}},{regex:\"$\",token:\"empty\",next:function(e,t){return t[0]===\"heredoc\"||t[0]===\"indentedHeredoc\"?t[0]:e}},{token:\"string.character\",regex:\"\\\\B\\\\?.\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\"^=end(?:$|\\\\s.*$)\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.normalizeRules()};r.inherits(c,i),t.RubyHighlightRules=c}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/ruby\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ruby_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./ruby_highlight_rules\").RubyHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/coffee\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[]\\s*$/),u=t.match(/^\\s*(class|def|module)\\s.*$/),a=t.match(/.*do(\\s*|\\s+\\|.*\\|\\s*)$/),f=t.match(/^\\s*(if|else|when)\\s*/);if(o||u||a||f)r+=n}return r},this.checkOutdent=function(e,t,n){return/^\\s+(end|else)$/.test(t+n)||this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){var r=t.getLine(n);if(/}/.test(r))return this.$outdent.autoOutdent(t,n);var i=this.$getIndent(r),s=t.getLine(n-1),o=this.$getIndent(s),a=t.getTabString();o.length<=i.length&&i.slice(-a.length)==a&&t.remove(new u(n,i.length-a.length,n,i.length))},this.$id=\"ace/mode/ruby\"}.call(l.prototype),t.Mode=l})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-rust.js",
    "content": "ace.define(\"ace/mode/rust_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=/\\\\(?:[nrt0'\"]|x[\\da-fA-F]{2}|u\\{[\\da-fA-F]{6}\\})/.source,o=function(){this.$rules={start:[{token:\"variable.other.source.rust\",regex:\"'[a-zA-Z_][a-zA-Z0-9_]*(?![\\\\'])\"},{token:\"string.quoted.single.source.rust\",regex:\"'(?:[^'\\\\\\\\]|\"+s+\")'\"},{stateName:\"bracketedComment\",onMatch:function(e,t,n){return n.unshift(this.next,e.length-1,t),\"string.quoted.raw.source.rust\"},regex:/r#*\"/,next:[{onMatch:function(e,t,n){var r=\"string.quoted.raw.source.rust\";return e.length>=n[1]?(e.length>n[1]&&(r=\"invalid\"),n.shift(),n.shift(),this.next=n.shift()):this.next=\"\",r},regex:/\"#*/,next:\"start\"},{defaultToken:\"string.quoted.raw.source.rust\"}]},{token:\"string.quoted.double.source.rust\",regex:'\"',push:[{token:\"string.quoted.double.source.rust\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.source.rust\",regex:s},{defaultToken:\"string.quoted.double.source.rust\"}]},{token:[\"keyword.source.rust\",\"text\",\"entity.name.function.source.rust\"],regex:\"\\\\b(fn)(\\\\s+)([a-zA-Z_][a-zA-Z0-9_]*)\"},{token:\"support.constant\",regex:\"\\\\b[a-zA-Z_][\\\\w\\\\d]*::\"},{token:\"keyword.source.rust\",regex:\"\\\\b(?:abstract|alignof|as|box|break|continue|const|crate|do|else|enum|extern|for|final|if|impl|in|let|loop|macro|match|mod|move|mut|offsetof|override|priv|proc|pub|pure|ref|return|self|sizeof|static|struct|super|trait|type|typeof|unsafe|unsized|use|virtual|where|while|yield)\\\\b\"},{token:\"storage.type.source.rust\",regex:\"\\\\b(?:Self|isize|usize|char|bool|u8|u16|u32|u64|f16|f32|f64|i8|i16|i32|i64|str|option|either|c_float|c_double|c_void|FILE|fpos_t|DIR|dirent|c_char|c_schar|c_uchar|c_short|c_ushort|c_int|c_uint|c_long|c_ulong|size_t|ptrdiff_t|clock_t|time_t|c_longlong|c_ulonglong|intptr_t|uintptr_t|off_t|dev_t|ino_t|pid_t|mode_t|ssize_t)\\\\b\"},{token:\"variable.language.source.rust\",regex:\"\\\\bself\\\\b\"},{token:\"comment.line.doc.source.rust\",regex:\"//!.*$\"},{token:\"comment.line.double-dash.source.rust\",regex:\"//.*$\"},{token:\"comment.start.block.source.rust\",regex:\"/\\\\*\",stateName:\"comment\",push:[{token:\"comment.start.block.source.rust\",regex:\"/\\\\*\",push:\"comment\"},{token:\"comment.end.block.source.rust\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.source.rust\"}]},{token:\"keyword.operator\",regex:/\\$|[-=]>|[-+%^=!&|<>]=?|[*/](?![*/])=?/},{token:\"punctuation.operator\",regex:/[?:,;.]/},{token:\"paren.lparen\",regex:/[\\[({]/},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"constant.language.source.rust\",regex:\"\\\\b(?:true|false|Some|None|Ok|Err)\\\\b\"},{token:\"support.constant.source.rust\",regex:\"\\\\b(?:EXIT_FAILURE|EXIT_SUCCESS|RAND_MAX|EOF|SEEK_SET|SEEK_CUR|SEEK_END|_IOFBF|_IONBF|_IOLBF|BUFSIZ|FOPEN_MAX|FILENAME_MAX|L_tmpnam|TMP_MAX|O_RDONLY|O_WRONLY|O_RDWR|O_APPEND|O_CREAT|O_EXCL|O_TRUNC|S_IFIFO|S_IFCHR|S_IFBLK|S_IFDIR|S_IFREG|S_IFMT|S_IEXEC|S_IWRITE|S_IREAD|S_IRWXU|S_IXUSR|S_IWUSR|S_IRUSR|F_OK|R_OK|W_OK|X_OK|STDIN_FILENO|STDOUT_FILENO|STDERR_FILENO)\\\\b\"},{token:\"meta.preprocessor.source.rust\",regex:\"\\\\b\\\\w\\\\(\\\\w\\\\)*!|#\\\\[[\\\\w=\\\\(\\\\)_]+\\\\]\\\\b\"},{token:\"constant.numeric.source.rust\",regex:/(?:0x[a-fA-F0-9_]+|0o[0-7_]+|0b[01_]+|[0-9][0-9_]*(?!\\.))(?:[iu](?:size|8|16|32|64))?\\b/},{token:\"constant.numeric.source.rust\",regex:/(?:[0-9][0-9_]*)(?:\\.[0-9][0-9_]*)?(?:[Ee][+-][0-9][0-9_]*)?(?:f32|f64)?\\b/}]},this.normalizeRules()};o.metaData={fileTypes:[\"rs\",\"rc\"],foldingStartMarker:\"^.*\\\\bfn\\\\s*(\\\\w+\\\\s*)?\\\\([^\\\\)]*\\\\)(\\\\s*\\\\{[^\\\\}]*)?\\\\s*$\",foldingStopMarker:\"^\\\\s*\\\\}\",name:\"Rust\",scopeName:\"source.rust\"},r.inherits(o,i),t.RustHighlightRules=o}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/rust\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/rust_highlight_rules\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./rust_highlight_rules\").RustHighlightRules,o=e(\"./folding/cstyle\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\",nestable:!0},this.$id=\"ace/mode/rust\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-sass.js",
    "content": "ace.define(\"ace/mode/scss_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=i.arrayToMap(function(){var e=\"-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-\".split(\"|\"),t=\"appearance|background-clip|background-inline-policy|background-origin|background-size|binding|border-bottom-colors|border-left-colors|border-right-colors|border-top-colors|border-end|border-end-color|border-end-style|border-end-width|border-image|border-start|border-start-color|border-start-style|border-start-width|box-align|box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|box-pack|box-sizing|column-count|column-gap|column-width|column-rule|column-rule-width|column-rule-style|column-rule-color|float-edge|font-feature-settings|font-language-override|force-broken-image-icon|image-region|margin-end|margin-start|opacity|outline|outline-color|outline-offset|outline-radius|outline-radius-bottomleft|outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|outline-style|outline-width|padding-end|padding-start|stack-sizing|tab-size|text-blink|text-decoration-color|text-decoration-line|text-decoration-style|transform|transform-origin|transition|transition-delay|transition-duration|transition-property|transition-timing-function|user-focus|user-input|user-modify|user-select|window-shadow|border-radius\".split(\"|\"),n=\"azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index\".split(\"|\"),r=[];for(var i=0,s=e.length;i<s;i++)Array.prototype.push.apply(r,(e[i]+t.join(\"|\"+e[i])).split(\"|\"));return Array.prototype.push.apply(r,t),Array.prototype.push.apply(r,n),r}()),t=i.arrayToMap(\"hsl|hsla|rgb|rgba|url|attr|counter|counters|abs|adjust_color|adjust_hue|alpha|join|blue|ceil|change_color|comparable|complement|darken|desaturate|floor|grayscale|green|hue|if|invert|join|length|lighten|lightness|mix|nth|opacify|opacity|percentage|quote|red|round|saturate|saturation|scale_color|transparentize|type_of|unit|unitless|unqoute\".split(\"|\")),n=i.arrayToMap(\"absolute|all-scroll|always|armenian|auto|baseline|below|bidi-override|block|bold|bolder|border-box|both|bottom|break-all|break-word|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|content-box|crosshair|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|overline|pointer|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|zero\".split(\"|\")),r=i.arrayToMap(\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\".split(\"|\")),s=i.arrayToMap(\"@mixin|@extend|@include|@import|@media|@debug|@warn|@if|@for|@each|@while|@else|@font-face|@-webkit-keyframes|if|and|!default|module|def|end|declare\".split(\"|\")),o=i.arrayToMap(\"a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp\".split(\"|\")),u=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:'[\"].*\\\\\\\\$',next:\"qqstring\"},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"string\",regex:\"['].*\\\\\\\\$\",next:\"qstring\"},{token:\"constant.numeric\",regex:u+\"(?:em|ex|px|cm|mm|in|pt|pc|deg|rad|grad|ms|s|hz|khz|%)\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:\"constant.numeric\",regex:u},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:function(i){return e.hasOwnProperty(i.toLowerCase())?\"support.type\":s.hasOwnProperty(i)?\"keyword\":n.hasOwnProperty(i)?\"constant.language\":t.hasOwnProperty(i)?\"support.function\":r.hasOwnProperty(i.toLowerCase())?\"support.constant.color\":o.hasOwnProperty(i.toLowerCase())?\"variable.language\":\"text\"},regex:\"\\\\-?[@a-z_][@a-z0-9_\\\\-]*\"},{token:\"variable\",regex:\"[a-z_\\\\-$][a-z0-9_\\\\-$]*\\\\b\"},{token:\"variable.language\",regex:\"#[a-z0-9-_]+\"},{token:\"variable.language\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"variable.language\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{token:\"keyword.operator\",regex:\"<|>|<=|>=|==|!=|-|%|#|\\\\+|\\\\$|\\\\+|\\\\*\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],qqstring:[{token:\"string\",regex:'(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',next:\"start\"},{token:\"string\",regex:\".+\"}],qstring:[{token:\"string\",regex:\"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",next:\"start\"},{token:\"string\",regex:\".+\"}]}};r.inherits(o,s),t.ScssHighlightRules=o}),ace.define(\"ace/mode/sass_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/scss_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./scss_highlight_rules\").ScssHighlightRules,o=function(){s.call(this);var e=this.$rules.start;e[1].token==\"comment\"&&(e.splice(1,1,{onMatch:function(e,t,n){return n.unshift(this.next,-1,e.length-2,t),\"comment\"},regex:/^\\s*\\/\\*/,next:\"comment\"},{token:\"error.invalid\",regex:\"/\\\\*|[{;}]\"},{token:\"support.type\",regex:/^\\s*:[\\w\\-]+\\s/}),this.$rules.comment=[{regex:/^\\s*/,onMatch:function(e,t,n){return n[1]===-1&&(n[1]=Math.max(n[2],e.length-1)),e.length<=n[1]?(n.shift(),n.shift(),n.shift(),this.next=n.shift(),\"text\"):(this.next=\"\",\"comment\")},next:\"start\"},{defaultToken:\"comment\"}])};r.inherits(o,s),t.SassHighlightRules=o}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/sass\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/sass_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./sass_highlight_rules\").SassHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.$id=\"ace/mode/sass\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-scad.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/scad_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){var e=this.createKeywordMapper({\"variable.language\":\"this\",keyword:\"module|if|else|for\",\"constant.language\":\"NULL\"},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},s.getStartRule(\"start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:'[\"].*\\\\\\\\$',next:\"qqstring\"},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"string\",regex:\"['].*\\\\\\\\$\",next:\"qstring\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant\",regex:\"<[a-zA-Z0-9.]+>\"},{token:\"keyword\",regex:\"(?:use|include)\"},{token:e,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|new|delete|typeof|void)\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],qqstring:[{token:\"string\",regex:'(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',next:\"start\"},{token:\"string\",regex:\".+\"}],qstring:[{token:\"string\",regex:\"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",next:\"start\"},{token:\"string\",regex:\".+\"}]},this.embedRules(s,\"doc-\",[s.getEndRule(\"start\")])};r.inherits(u,o),t.scadHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/scad\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/scad_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./scad_highlight_rules\").scadHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/scad\"}.call(l.prototype),t.Mode=l})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-scala.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/scala_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"case|default|do|else|for|if|match|while|throw|return|try|trye|catch|finally|yield|abstract|class|def|extends|final|forSome|implicit|implicits|import|lazy|new|object|null|override|package|private|protected|sealed|super|this|trait|type|val|var|with|assert|assume|require|print|println|printf|readLine|readBoolean|readByte|readShort|readChar|readInt|readLong|readFloat|readDouble\",t=\"true|false\",n=\"AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object|Unit|Any|AnyVal|AnyRef|Null|ScalaObject|Singleton|Seq|Iterable|List|Option|Array|Char|Byte|Int|Long|Nothing|App|Application|BufferedIterator|BigDecimal|BigInt|Console|Either|Enumeration|Equiv|Fractional|Function|IndexedSeq|Integral|Iterator|Map|Numeric|Nil|NotNull|Ordered|Ordering|PartialFunction|PartialOrdering|Product|Proxy|Range|Responder|Seq|Serializable|Set|Specializable|Stream|StringContext|Symbol|Traversable|TraversableOnce|Tuple|Vector|Pair|Triple\",r=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"support.function\":n,\"constant.language\":t},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'\"\"\"',next:\"tstring\"},{token:\"string\",regex:'\"(?=.)',next:\"string\"},{token:\"symbol.constant\",regex:\"'[\\\\w\\\\d_]+\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],string:[{token:\"escape\",regex:'\\\\\\\\\"'},{token:\"string\",regex:'\"',next:\"start\"},{token:\"string.invalid\",regex:'[^\"\\\\\\\\]*$',next:\"start\"},{token:\"string\",regex:'[^\"\\\\\\\\]+'}],tstring:[{token:\"string\",regex:'\"{3,5}',next:\"start\"},{token:\"string\",regex:\".+?\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.ScalaHighlightRules=o}),ace.define(\"ace/mode/scala\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/scala_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript\").Mode,s=e(\"./scala_highlight_rules\").ScalaHighlightRules,o=function(){i.call(this),this.HighlightRules=s};r.inherits(o,i),function(){this.createWorker=function(e){return null},this.$id=\"ace/mode/scala\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-scheme.js",
    "content": "ace.define(\"ace/mode/scheme_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"case|do|let|loop|if|else|when\",t=\"eq?|eqv?|equal?|and|or|not|null?\",n=\"#t|#f\",r=\"cons|car|cdr|cond|lambda|lambda*|syntax-rules|format|set!|quote|eval|append|list|list?|member?|load\",i=this.createKeywordMapper({\"keyword.control\":e,\"keyword.operator\":t,\"constant.language\":n,\"support.function\":r},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\";.*$\"},{token:[\"storage.type.function-type.scheme\",\"text\",\"entity.name.function.scheme\"],regex:\"(?:\\\\b(?:(define|define-syntax|define-macro))\\\\b)(\\\\s+)((?:\\\\w|\\\\-|\\\\!|\\\\?)*)\"},{token:\"punctuation.definition.constant.character.scheme\",regex:\"#:\\\\S+\"},{token:[\"punctuation.definition.variable.scheme\",\"variable.other.global.scheme\",\"punctuation.definition.variable.scheme\"],regex:\"(\\\\*)(\\\\S*)(\\\\*)\"},{token:\"constant.numeric\",regex:\"#[xXoObB][0-9a-fA-F]+\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\"},{token:i,regex:\"[a-zA-Z_#][a-zA-Z0-9_\\\\-\\\\?\\\\!\\\\*]*\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"}],qqstring:[{token:\"constant.character.escape.scheme\",regex:\"\\\\\\\\.\"},{token:\"string\",regex:'[^\"\\\\\\\\]+',merge:!0},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\",merge:!0},{token:\"string\",regex:'\"|$',next:\"start\",merge:!0}]}};r.inherits(s,i),t.SchemeHighlightRules=s}),ace.define(\"ace/mode/matching_parens_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\)/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\))/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\\s+)/);return t?t[1]:\"\"}}).call(i.prototype),t.MatchingParensOutdent=i}),ace.define(\"ace/mode/scheme\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/scheme_highlight_rules\",\"ace/mode/matching_parens_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./scheme_highlight_rules\").SchemeHighlightRules,o=e(\"./matching_parens_outdent\").MatchingParensOutdent,u=function(){this.HighlightRules=s,this.$outdent=new o};r.inherits(u,i),function(){this.lineCommentStart=\";\",this.minorIndentFunctions=[\"define\",\"lambda\",\"define-macro\",\"define-syntax\",\"syntax-rules\",\"define-record-type\",\"define-structure\"],this.$toIndent=function(e){return e.split(\"\").map(function(e){return/\\s/.exec(e)?e:\" \"}).join(\"\")},this.$calculateIndent=function(e,t){var n=this.$getIndent(e),r=0,i,s;for(var o=e.length-1;o>=0;o--){s=e[o],s===\"(\"?(r--,i=!0):s===\"(\"||s===\"[\"||s===\"{\"?(r--,i=!1):(s===\")\"||s===\"]\"||s===\"}\")&&r++;if(r<0)break}if(!(r<0&&i))return r<0&&!i?this.$toIndent(e.substring(0,o+1)):r>0?(n=n.substring(0,n.length-t.length),n):n;o+=1;var u=o,a=\"\";for(;;){s=e[o];if(s===\" \"||s===\"\t\")return this.minorIndentFunctions.indexOf(a)!==-1?this.$toIndent(e.substring(0,u-1)+t):this.$toIndent(e.substring(0,o+1));if(s===undefined)return this.$toIndent(e.substring(0,u-1)+t);a+=e[o],o++}},this.getNextLineIndent=function(e,t,n){return this.$calculateIndent(t,n)},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/scheme\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-scss.js",
    "content": "ace.define(\"ace/mode/scss_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=i.arrayToMap(function(){var e=\"-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-\".split(\"|\"),t=\"appearance|background-clip|background-inline-policy|background-origin|background-size|binding|border-bottom-colors|border-left-colors|border-right-colors|border-top-colors|border-end|border-end-color|border-end-style|border-end-width|border-image|border-start|border-start-color|border-start-style|border-start-width|box-align|box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|box-pack|box-sizing|column-count|column-gap|column-width|column-rule|column-rule-width|column-rule-style|column-rule-color|float-edge|font-feature-settings|font-language-override|force-broken-image-icon|image-region|margin-end|margin-start|opacity|outline|outline-color|outline-offset|outline-radius|outline-radius-bottomleft|outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|outline-style|outline-width|padding-end|padding-start|stack-sizing|tab-size|text-blink|text-decoration-color|text-decoration-line|text-decoration-style|transform|transform-origin|transition|transition-delay|transition-duration|transition-property|transition-timing-function|user-focus|user-input|user-modify|user-select|window-shadow|border-radius\".split(\"|\"),n=\"azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index\".split(\"|\"),r=[];for(var i=0,s=e.length;i<s;i++)Array.prototype.push.apply(r,(e[i]+t.join(\"|\"+e[i])).split(\"|\"));return Array.prototype.push.apply(r,t),Array.prototype.push.apply(r,n),r}()),t=i.arrayToMap(\"hsl|hsla|rgb|rgba|url|attr|counter|counters|abs|adjust_color|adjust_hue|alpha|join|blue|ceil|change_color|comparable|complement|darken|desaturate|floor|grayscale|green|hue|if|invert|join|length|lighten|lightness|mix|nth|opacify|opacity|percentage|quote|red|round|saturate|saturation|scale_color|transparentize|type_of|unit|unitless|unqoute\".split(\"|\")),n=i.arrayToMap(\"absolute|all-scroll|always|armenian|auto|baseline|below|bidi-override|block|bold|bolder|border-box|both|bottom|break-all|break-word|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|content-box|crosshair|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|overline|pointer|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|zero\".split(\"|\")),r=i.arrayToMap(\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\".split(\"|\")),s=i.arrayToMap(\"@mixin|@extend|@include|@import|@media|@debug|@warn|@if|@for|@each|@while|@else|@font-face|@-webkit-keyframes|if|and|!default|module|def|end|declare\".split(\"|\")),o=i.arrayToMap(\"a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp\".split(\"|\")),u=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:'[\"].*\\\\\\\\$',next:\"qqstring\"},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"string\",regex:\"['].*\\\\\\\\$\",next:\"qstring\"},{token:\"constant.numeric\",regex:u+\"(?:em|ex|px|cm|mm|in|pt|pc|deg|rad|grad|ms|s|hz|khz|%)\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:\"constant.numeric\",regex:u},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:function(i){return e.hasOwnProperty(i.toLowerCase())?\"support.type\":s.hasOwnProperty(i)?\"keyword\":n.hasOwnProperty(i)?\"constant.language\":t.hasOwnProperty(i)?\"support.function\":r.hasOwnProperty(i.toLowerCase())?\"support.constant.color\":o.hasOwnProperty(i.toLowerCase())?\"variable.language\":\"text\"},regex:\"\\\\-?[@a-z_][@a-z0-9_\\\\-]*\"},{token:\"variable\",regex:\"[a-z_\\\\-$][a-z0-9_\\\\-$]*\\\\b\"},{token:\"variable.language\",regex:\"#[a-z0-9-_]+\"},{token:\"variable.language\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"variable.language\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{token:\"keyword.operator\",regex:\"<|>|<=|>=|==|!=|-|%|#|\\\\+|\\\\$|\\\\+|\\\\*\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],qqstring:[{token:\"string\",regex:'(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',next:\"start\"},{token:\"string\",regex:\".+\"}],qstring:[{token:\"string\",regex:\"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",next:\"start\"},{token:\"string\",regex:\".+\"}]}};r.inherits(o,s),t.ScssHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/scss\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/scss_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./scss_highlight_rules\").ScssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/css\").CssBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/scss\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-sh.js",
    "content": "ace.define(\"ace/mode/sh_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=t.reservedKeywords=\"!|{|}|case|do|done|elif|else|esac|fi|for|if|in|then|until|while|&|;|export|local|read|typeset|unset|elif|select|set|function|declare|readonly\",o=t.languageConstructs=\"[|]|alias|bg|bind|break|builtin|cd|command|compgen|complete|continue|dirs|disown|echo|enable|eval|exec|exit|fc|fg|getopts|hash|help|history|jobs|kill|let|logout|popd|printf|pushd|pwd|return|set|shift|shopt|source|suspend|test|times|trap|type|ulimit|umask|unalias|wait\",u=function(){var e=this.createKeywordMapper({keyword:s,\"support.function.builtin\":o,\"invalid.deprecated\":\"debugger\"},\"identifier\"),t=\"(?:(?:[1-9]\\\\d*)|(?:0))\",n=\"(?:\\\\.\\\\d+)\",r=\"(?:\\\\d+)\",i=\"(?:(?:\"+r+\"?\"+n+\")|(?:\"+r+\"\\\\.))\",u=\"(?:(?:\"+i+\"|\"+r+\")\"+\")\",a=\"(?:\"+u+\"|\"+i+\")\",f=\"(?:&\"+r+\")\",l=\"[a-zA-Z_][a-zA-Z0-9_]*\",c=\"(?:\"+l+\"=)\",h=\"(?:\\\\$(?:SHLVL|\\\\$|\\\\!|\\\\?))\",p=\"(?:\"+l+\"\\\\s*\\\\(\\\\))\";this.$rules={start:[{token:\"constant\",regex:/\\\\./},{token:[\"text\",\"comment\"],regex:/(^|\\s)(#.*)$/},{token:\"string\",regex:'\"',push:[{token:\"constant.language.escape\",regex:/\\\\(?:[$`\"\\\\]|$)/},{include:\"variables\"},{token:\"keyword.operator\",regex:/`/},{token:\"string\",regex:'\"',next:\"pop\"},{defaultToken:\"string\"}]},{token:\"string\",regex:\"\\\\$'\",push:[{token:\"constant.language.escape\",regex:/\\\\(?:[abeEfnrtv\\\\'\"]|x[a-fA-F\\d]{1,2}|u[a-fA-F\\d]{4}([a-fA-F\\d]{4})?|c.|\\d{1,3})/},{token:\"string\",regex:\"'\",next:\"pop\"},{defaultToken:\"string\"}]},{regex:\"<<<\",token:\"keyword.operator\"},{stateName:\"heredoc\",regex:\"(<<-?)(\\\\s*)(['\\\"`]?)([\\\\w\\\\-]+)(['\\\"`]?)\",onMatch:function(e,t,n){var r=e[2]==\"-\"?\"indentedHeredoc\":\"heredoc\",i=e.split(this.splitRegex);return n.push(r,i[4]),[{type:\"constant\",value:i[1]},{type:\"text\",value:i[2]},{type:\"string\",value:i[3]},{type:\"support.class\",value:i[4]},{type:\"string\",value:i[5]}]},rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}],indentedHeredoc:[{token:\"string\",regex:\"^\t+\"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||\"start\",\"support.class\"):(this.next=\"\",\"string\")},regex:\".*$\",next:\"start\"}]}},{regex:\"$\",token:\"empty\",next:function(e,t){return t[0]===\"heredoc\"||t[0]===\"indentedHeredoc\"?t[0]:e}},{token:[\"keyword\",\"text\",\"text\",\"text\",\"variable\"],regex:/(declare|local|readonly)(\\s+)(?:(-[fixar]+)(\\s+))?([a-zA-Z_][a-zA-Z0-9_]*\\b)/},{token:\"variable.language\",regex:h},{token:\"variable\",regex:c},{include:\"variables\"},{token:\"support.function\",regex:p},{token:\"support.function\",regex:f},{token:\"string\",start:\"'\",end:\"'\"},{token:\"constant.numeric\",regex:a},{token:\"constant.numeric\",regex:t+\"\\\\b\"},{token:e,regex:\"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|~|<|>|<=|=>|=|!=|[%&|`]\"},{token:\"punctuation.operator\",regex:\";\"},{token:\"paren.lparen\",regex:\"[\\\\[\\\\(\\\\{]\"},{token:\"paren.rparen\",regex:\"[\\\\]]\"},{token:\"paren.rparen\",regex:\"[\\\\)\\\\}]\",next:\"pop\"}],variables:[{token:\"variable\",regex:/(\\$)(\\w+)/},{token:[\"variable\",\"paren.lparen\"],regex:/(\\$)(\\()/,push:\"start\"},{token:[\"variable\",\"paren.lparen\",\"keyword.operator\",\"variable\",\"keyword.operator\"],regex:/(\\$)(\\{)([#!]?)(\\w+|[*@#?\\-$!0_])(:[?+\\-=]?|##?|%%?|,,?\\/|\\^\\^?)?/,push:\"start\"},{token:\"variable\",regex:/\\$[*@#?\\-$!0_]/},{token:[\"variable\",\"paren.lparen\"],regex:/(\\$)(\\{)/,push:\"start\"}]},this.normalizeRules()};r.inherits(u,i),t.ShHighlightRules=u}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/sh\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/sh_highlight_rules\",\"ace/range\",\"ace/mode/folding/cstyle\",\"ace/mode/behaviour/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./sh_highlight_rules\").ShHighlightRules,o=e(\"../range\").Range,u=e(\"./folding/cstyle\").FoldMode,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=function(){this.HighlightRules=s,this.foldingRules=new u,this.$behaviour=new a};r.inherits(f,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[\\:]\\s*$/);o&&(r+=n)}return r};var e={pass:1,\"return\":1,raise:1,\"break\":1,\"continue\":1};this.checkOutdent=function(t,n,r){if(r!==\"\\r\\n\"&&r!==\"\\r\"&&r!==\"\\n\")return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do var s=i.pop();while(s&&(s.type==\"comment\"||s.type==\"text\"&&s.value.match(/^\\s+$/)));return s?s.type==\"keyword\"&&e[s.value]:!1},this.autoOutdent=function(e,t,n){n+=1;var r=this.$getIndent(t.getLine(n)),i=t.getTabString();r.slice(-i.length)==i&&t.remove(new o(n,r.length-i.length,n,r.length))},this.$id=\"ace/mode/sh\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-sjs.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/sjs_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=new i({noES6:!0}),t=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)\",n=function(e){return e.isContextAware=!0,e},r=function(e){return{token:e.token,regex:e.regex,next:n(function(t,n){return n.length===0&&n.unshift(t),n.unshift(e.next),e.next})}},s=function(e){return{token:e.token,regex:e.regex,next:n(function(e,t){return t.shift(),t[0]||\"start\"})}};this.$rules=e.$rules,this.$rules.no_regex=[{token:\"keyword\",regex:\"(waitfor|or|and|collapse|spawn|retract)\\\\b\"},{token:\"keyword.operator\",regex:\"(->|=>|\\\\.\\\\.)\"},{token:\"variable.language\",regex:\"(hold|default)\\\\b\"},r({token:\"string\",regex:\"`\",next:\"bstring\"}),r({token:\"string\",regex:'\"',next:\"qqstring\"}),r({token:\"string\",regex:'\"',next:\"qqstring\"}),{token:[\"paren.lparen\",\"text\",\"paren.rparen\"],regex:\"(\\\\{)(\\\\s*)(\\\\|)\",next:\"block_arguments\"}].concat(this.$rules.no_regex),this.$rules.block_arguments=[{token:\"paren.rparen\",regex:\"\\\\|\",next:\"no_regex\"}].concat(this.$rules.function_arguments),this.$rules.bstring=[{token:\"constant.language.escape\",regex:t},{token:\"string\",regex:\"\\\\\\\\$\",next:\"bstring\"},r({token:\"paren.lparen\",regex:\"\\\\$\\\\{\",next:\"string_interp\"}),r({token:\"paren.lparen\",regex:\"\\\\$\",next:\"bstring_interp_single\"}),s({token:\"string\",regex:\"`\"}),{defaultToken:\"string\"}],this.$rules.qqstring=[{token:\"constant.language.escape\",regex:t},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},r({token:\"paren.lparen\",regex:\"#\\\\{\",next:\"string_interp\"}),s({token:\"string\",regex:'\"'}),{defaultToken:\"string\"}];var o=[];for(var u=0;u<this.$rules.no_regex.length;u++){var a=this.$rules.no_regex[u],f=String(a.token);f.indexOf(\"paren\")==-1&&(!a.next||a.next.isContextAware)&&o.push(a)}this.$rules.string_interp=[s({token:\"paren.rparen\",regex:\"\\\\}\"}),r({token:\"paren.lparen\",regex:\"{\",next:\"string_interp\"})].concat(o),this.$rules.bstring_interp_single=[{token:[\"identifier\",\"paren.lparen\"],regex:\"(\\\\w+)(\\\\()\",next:\"bstring_interp_single_call\"},s({token:\"identifier\",regex:\"\\\\w*\"})],this.$rules.bstring_interp_single_call=[r({token:\"paren.lparen\",regex:\"\\\\(\",next:\"bstring_interp_single_call\"}),s({token:\"paren.rparen\",regex:\"\\\\)\"})].concat(o)};r.inherits(o,s),t.SJSHighlightRules=o}),ace.define(\"ace/mode/sjs\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/sjs_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript\").Mode,s=e(\"./sjs_highlight_rules\").SJSHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./behaviour/cstyle\").CstyleBehaviour,a=e(\"./folding/cstyle\").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.createWorker=function(e){return null},this.$id=\"ace/mode/sjs\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-smarty.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[A-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/smarty_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=function(){i.call(this);var e={start:[{include:\"#comments\"},{include:\"#blocks\"}],\"#blocks\":[{token:\"punctuation.section.embedded.begin.smarty\",regex:\"\\\\{%?\",push:[{token:\"punctuation.section.embedded.end.smarty\",regex:\"%?\\\\}\",next:\"pop\"},{include:\"#strings\"},{include:\"#variables\"},{include:\"#lang\"},{defaultToken:\"source.smarty\"}]}],\"#comments\":[{token:[\"punctuation.definition.comment.smarty\",\"comment.block.smarty\"],regex:\"(\\\\{%?)(\\\\*)\",push:[{token:\"comment.block.smarty\",regex:\"\\\\*%?\\\\}\",next:\"pop\"},{defaultToken:\"comment.block.smarty\"}]}],\"#lang\":[{token:\"keyword.operator.smarty\",regex:\"(?:!=|!|<=|>=|<|>|===|==|%|&&|\\\\|\\\\|)|\\\\b(?:and|or|eq|neq|ne|gte|gt|ge|lte|lt|le|not|mod)\\\\b\"},{token:\"constant.language.smarty\",regex:\"\\\\b(?:TRUE|FALSE|true|false)\\\\b\"},{token:\"keyword.control.smarty\",regex:\"\\\\b(?:if|else|elseif|foreach|foreachelse|section|switch|case|break|default)\\\\b\"},{token:\"variable.parameter.smarty\",regex:\"\\\\b[a-zA-Z]+=\"},{token:\"support.function.built-in.smarty\",regex:\"\\\\b(?:capture|config_load|counter|cycle|debug|eval|fetch|include_php|include|insert|literal|math|strip|rdelim|ldelim|assign|constant|block|html_[a-z_]*)\\\\b\"},{token:\"support.function.variable-modifier.smarty\",regex:\"\\\\|(?:capitalize|cat|count_characters|count_paragraphs|count_sentences|count_words|date_format|default|escape|indent|lower|nl2br|regex_replace|replace|spacify|string_format|strip_tags|strip|truncate|upper|wordwrap)\"}],\"#strings\":[{token:\"punctuation.definition.string.begin.smarty\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.smarty\",regex:\"'\",next:\"pop\"},{token:\"constant.character.escape.smarty\",regex:\"\\\\\\\\.\"},{defaultToken:\"string.quoted.single.smarty\"}]},{token:\"punctuation.definition.string.begin.smarty\",regex:'\"',push:[{token:\"punctuation.definition.string.end.smarty\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.smarty\",regex:\"\\\\\\\\.\"},{defaultToken:\"string.quoted.double.smarty\"}]}],\"#variables\":[{token:[\"punctuation.definition.variable.smarty\",\"variable.other.global.smarty\"],regex:\"\\\\b(\\\\$)(Smarty\\\\.)\"},{token:[\"punctuation.definition.variable.smarty\",\"variable.other.smarty\"],regex:\"(\\\\$)([a-zA-Z_][a-zA-Z0-9_]*)\\\\b\"},{token:[\"keyword.operator.smarty\",\"variable.other.property.smarty\"],regex:\"(->)([a-zA-Z_][a-zA-Z0-9_]*)\\\\b\"},{token:[\"keyword.operator.smarty\",\"meta.function-call.object.smarty\",\"punctuation.definition.variable.smarty\",\"variable.other.smarty\",\"punctuation.definition.variable.smarty\"],regex:\"(->)([a-zA-Z_][a-zA-Z0-9_]*)(\\\\()(.*?)(\\\\))\"}]},t=e.start;for(var n in this.$rules)this.$rules[n].unshift.apply(this.$rules[n],t);Object.keys(e).forEach(function(t){this.$rules[t]||(this.$rules[t]=e[t])},this),this.normalizeRules()};s.metaData={fileTypes:[\"tpl\"],foldingStartMarker:\"\\\\{%?\",foldingStopMarker:\"%?\\\\}\",name:\"Smarty\",scopeName:\"text.html.smarty\"},r.inherits(s,i),t.SmartyHighlightRules=s}),ace.define(\"ace/mode/smarty\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/smarty_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./smarty_highlight_rules\").SmartyHighlightRules,o=function(){i.call(this),this.HighlightRules=s};r.inherits(o,i),function(){this.$id=\"ace/mode/smarty\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-snippets.js",
    "content": "ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/snippets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"SELECTION|CURRENT_WORD|SELECTED_TEXT|CURRENT_LINE|LINE_INDEX|LINE_NUMBER|SOFT_TABS|TAB_SIZE|FILENAME|FILEPATH|FULLNAME\";this.$rules={start:[{token:\"constant.language.escape\",regex:/\\\\[\\$}`\\\\]/},{token:\"keyword\",regex:\"\\\\$(?:TM_)?(?:\"+e+\")\\\\b\"},{token:\"variable\",regex:\"\\\\$\\\\w+\"},{onMatch:function(e,t,n){return n[1]?n[1]++:n.unshift(t,1),this.tokenName},tokenName:\"markup.list\",regex:\"\\\\${\",next:\"varDecl\"},{onMatch:function(e,t,n){return n[1]?(n[1]--,n[1]||n.splice(0,2),this.tokenName):\"text\"},tokenName:\"markup.list\",regex:\"}\"},{token:\"doc.comment\",regex:/^\\${2}-{5,}$/}],varDecl:[{regex:/\\d+\\b/,token:\"constant.numeric\"},{token:\"keyword\",regex:\"(?:TM_)?(?:\"+e+\")\\\\b\"},{token:\"variable\",regex:\"\\\\w+\"},{regex:/:/,token:\"punctuation.operator\",next:\"start\"},{regex:/\\//,token:\"string.regex\",next:\"regexp\"},{regex:\"\",next:\"start\"}],regexp:[{regex:/\\\\./,token:\"escape\"},{regex:/\\[/,token:\"regex.start\",next:\"charClass\"},{regex:\"/\",token:\"string.regex\",next:\"format\"},{token:\"string.regex\",regex:\".\"}],charClass:[{regex:\"\\\\.\",token:\"escape\"},{regex:\"\\\\]\",token:\"regex.end\",next:\"regexp\"},{token:\"string.regex\",regex:\".\"}],format:[{regex:/\\\\[ulULE]/,token:\"keyword\"},{regex:/\\$\\d+/,token:\"variable\"},{regex:\"/[gim]*:?\",token:\"string.regex\",next:\"start\"},{token:\"string\",regex:\".\"}]}};r.inherits(o,s),t.SnippetHighlightRules=o;var u=function(){this.$rules={start:[{token:\"text\",regex:\"^\\\\t\",next:\"sn-start\"},{token:\"invalid\",regex:/^ \\s*/},{token:\"comment\",regex:/^#.*/},{token:\"constant.language.escape\",regex:\"^regex \",next:\"regex\"},{token:\"constant.language.escape\",regex:\"^(trigger|endTrigger|name|snippet|guard|endGuard|tabTrigger|key)\\\\b\"}],regex:[{token:\"text\",regex:\"\\\\.\"},{token:\"keyword\",regex:\"/\"},{token:\"empty\",regex:\"$\",next:\"start\"}]},this.embedRules(o,\"sn-\",[{token:\"text\",regex:\"^\\\\t\",next:\"sn-start\"},{onMatch:function(e,t,n){return n.splice(n.length),this.tokenName},tokenName:\"text\",regex:\"^(?!\t)\",next:\"start\"}])};r.inherits(u,s),t.SnippetGroupHighlightRules=u;var a=e(\"./folding/coffee\").FoldMode,f=function(){this.HighlightRules=u,this.foldingRules=new a};r.inherits(f,i),function(){this.$indentWithTabs=!0,this.lineCommentStart=\"#\",this.$id=\"ace/mode/snippets\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-soy_template.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[A-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/soy_template_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html_highlight_rules\").HtmlHighlightRules,s=function(){i.call(this);var e={start:[{include:\"#template\"},{include:\"#if\"},{include:\"#comment-line\"},{include:\"#comment-block\"},{include:\"#comment-doc\"},{include:\"#call\"},{include:\"#css\"},{include:\"#param\"},{include:\"#print\"},{include:\"#msg\"},{include:\"#for\"},{include:\"#foreach\"},{include:\"#switch\"},{include:\"#tag\"},{include:\"text.html.basic\"}],\"#call\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.call.soy\"],regex:\"(\\\\{/?)(\\\\s*)(?=call|delcall)\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{include:\"#string-quoted-single\"},{include:\"#string-quoted-double\"},{token:[\"entity.name.tag.soy\",\"variable.parameter.soy\"],regex:\"(call|delcall)(\\\\s+[\\\\.\\\\w]+)\"},{token:[\"entity.other.attribute-name.soy\",\"text\",\"keyword.operator.soy\"],regex:\"\\\\b(data)(\\\\s*)(=)\"},{defaultToken:\"meta.tag.call.soy\"}]}],\"#comment-line\":[{token:[\"comment.line.double-slash.soy\",\"comment.line.double-slash.soy\"],regex:\"(//)(.*$)\"}],\"#comment-block\":[{token:\"punctuation.definition.comment.begin.soy\",regex:\"/\\\\*(?!\\\\*)\",push:[{token:\"punctuation.definition.comment.end.soy\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.soy\"}]}],\"#comment-doc\":[{token:\"punctuation.definition.comment.begin.soy\",regex:\"/\\\\*\\\\*(?!/)\",push:[{token:\"punctuation.definition.comment.end.soy\",regex:\"\\\\*/\",next:\"pop\"},{token:[\"support.type.soy\",\"text\",\"variable.parameter.soy\"],regex:\"(@param|@param\\\\?)(\\\\s+)(\\\\w+)\"},{defaultToken:\"comment.block.documentation.soy\"}]}],\"#css\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.css.soy\",\"entity.name.tag.soy\"],regex:\"(\\\\{/?)(\\\\s*)(css)\\\\b\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{token:\"support.constant.soy\",regex:\"\\\\b(?:LITERAL|REFERENCE|BACKEND_SPECIFIC|GOOG)\\\\b\"},{defaultToken:\"meta.tag.css.soy\"}]}],\"#for\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.for.soy\",\"entity.name.tag.soy\"],regex:\"(\\\\{/?)(\\\\s*)(for)\\\\b\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword.operator.soy\",regex:\"\\\\bin\\\\b\"},{token:\"support.function.soy\",regex:\"\\\\brange\\\\b\"},{include:\"#variable\"},{include:\"#number\"},{include:\"#primitive\"},{defaultToken:\"meta.tag.for.soy\"}]}],\"#foreach\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.foreach.soy\",\"entity.name.tag.soy\"],regex:\"(\\\\{/?)(\\\\s*)(foreach)\\\\b\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword.operator.soy\",regex:\"\\\\bin\\\\b\"},{include:\"#variable\"},{defaultToken:\"meta.tag.foreach.soy\"}]}],\"#function\":[{token:\"support.function.soy\",regex:\"\\\\b(?:isFirst|isLast|index|hasData|length|keys|round|floor|ceiling|min|max|randomInt)\\\\b\"}],\"#if\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.if.soy\",\"entity.name.tag.soy\"],regex:\"(\\\\{/?)(\\\\s*)(if|elseif)\\\\b\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{include:\"#variable\"},{include:\"#operator\"},{include:\"#function\"},{include:\"#string-quoted-single\"},{include:\"#string-quoted-double\"},{defaultToken:\"meta.tag.if.soy\"}]}],\"#namespace\":[{token:[\"entity.name.tag.soy\",\"text\",\"variable.parameter.soy\"],regex:\"(namespace|delpackage)(\\\\s+)([\\\\w\\\\.]+)\"}],\"#number\":[{token:\"constant.numeric\",regex:\"[\\\\d]+\"}],\"#operator\":[{token:\"keyword.operator.soy\",regex:\"==|!=|\\\\band\\\\b|\\\\bor\\\\b|\\\\bnot\\\\b|-|\\\\+|/|\\\\?:\"}],\"#param\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.param.soy\",\"entity.name.tag.soy\"],regex:\"(\\\\{/?)(\\\\s*)(param)\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{include:\"#variable\"},{token:[\"entity.other.attribute-name.soy\",\"text\",\"keyword.operator.soy\"],regex:\"\\\\b([\\\\w]+)(\\\\s*)((?::)?)\"},{defaultToken:\"meta.tag.param.soy\"}]}],\"#primitive\":[{token:\"constant.language.soy\",regex:\"\\\\b(?:null|false|true)\\\\b\"}],\"#msg\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.msg.soy\",\"entity.name.tag.soy\"],regex:\"(\\\\{/?)(\\\\s*)(msg)\\\\b\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{include:\"#string-quoted-single\"},{include:\"#string-quoted-double\"},{token:[\"entity.other.attribute-name.soy\",\"text\",\"keyword.operator.soy\"],regex:\"\\\\b(meaning|desc)(\\\\s*)(=)\"},{defaultToken:\"meta.tag.msg.soy\"}]}],\"#print\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.print.soy\",\"entity.name.tag.soy\"],regex:\"(\\\\{/?)(\\\\s*)(print)\\\\b\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{include:\"#variable\"},{include:\"#print-parameter\"},{include:\"#number\"},{include:\"#primitive\"},{include:\"#attribute-lookup\"},{defaultToken:\"meta.tag.print.soy\"}]}],\"#print-parameter\":[{token:\"keyword.operator.soy\",regex:\"\\\\|\"},{token:\"variable.parameter.soy\",regex:\"noAutoescape|id|escapeHtml|escapeJs|insertWorkBreaks|truncate\"}],\"#special-character\":[{token:\"support.constant.soy\",regex:\"\\\\bsp\\\\b|\\\\bnil\\\\b|\\\\\\\\r|\\\\\\\\n|\\\\\\\\t|\\\\blb\\\\b|\\\\brb\\\\b\"}],\"#string-quoted-double\":[{token:\"string.quoted.double\",regex:'\"[^\"]*\"'}],\"#string-quoted-single\":[{token:\"string.quoted.single\",regex:\"'[^']*'\"}],\"#switch\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.switch.soy\",\"entity.name.tag.soy\"],regex:\"(\\\\{/?)(\\\\s*)(switch|case)\\\\b\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{include:\"#variable\"},{include:\"#function\"},{include:\"#number\"},{include:\"#string-quoted-single\"},{include:\"#string-quoted-double\"},{defaultToken:\"meta.tag.switch.soy\"}]}],\"#attribute-lookup\":[{token:\"punctuation.definition.attribute-lookup.begin.soy\",regex:\"\\\\[\",push:[{token:\"punctuation.definition.attribute-lookup.end.soy\",regex:\"\\\\]\",next:\"pop\"},{include:\"#variable\"},{include:\"#function\"},{include:\"#operator\"},{include:\"#number\"},{include:\"#primitive\"},{include:\"#string-quoted-single\"},{include:\"#string-quoted-double\"}]}],\"#tag\":[{token:\"punctuation.definition.tag.begin.soy\",regex:\"\\\\{\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{include:\"#namespace\"},{include:\"#variable\"},{include:\"#special-character\"},{include:\"#tag-simple\"},{include:\"#function\"},{include:\"#operator\"},{include:\"#attribute-lookup\"},{include:\"#number\"},{include:\"#primitive\"},{include:\"#print-parameter\"}]}],\"#tag-simple\":[{token:\"entity.name.tag.soy\",regex:\"{{\\\\s*(?:literal|else|ifempty|default)\\\\s*(?=\\\\})\"}],\"#template\":[{token:[\"punctuation.definition.tag.begin.soy\",\"meta.tag.template.soy\"],regex:\"(\\\\{/?)(\\\\s*)(?=template|deltemplate)\",push:[{token:\"punctuation.definition.tag.end.soy\",regex:\"\\\\}\",next:\"pop\"},{token:[\"entity.name.tag.soy\",\"text\",\"entity.name.function.soy\"],regex:\"(template|deltemplate)(\\\\s+)([\\\\.\\\\w]+)\",originalRegex:\"(?<=template|deltemplate)\\\\s+([\\\\.\\\\w]+)\"},{token:[\"entity.other.attribute-name.soy\",\"text\",\"keyword.operator.soy\",\"text\",\"string.quoted.double.soy\"],regex:'\\\\b(private)(\\\\s*)(=)(\\\\s*)(\"true\"|\"false\")'},{token:[\"entity.other.attribute-name.soy\",\"text\",\"keyword.operator.soy\",\"text\",\"string.quoted.single.soy\"],regex:\"\\\\b(private)(\\\\s*)(=)(\\\\s*)('true'|'false')\"},{token:[\"entity.other.attribute-name.soy\",\"text\",\"keyword.operator.soy\",\"text\",\"string.quoted.double.soy\"],regex:'\\\\b(autoescape)(\\\\s*)(=)(\\\\s*)(\"true\"|\"false\"|\"contextual\")'},{token:[\"entity.other.attribute-name.soy\",\"text\",\"keyword.operator.soy\",\"text\",\"string.quoted.single.soy\"],regex:\"\\\\b(autoescape)(\\\\s*)(=)(\\\\s*)('true'|'false'|'contextual')\"},{defaultToken:\"meta.tag.template.soy\"}]}],\"#variable\":[{token:\"variable.other.soy\",regex:\"\\\\$[\\\\w\\\\.]+\"}]};for(var t in e)this.$rules[t]?this.$rules[t].unshift.apply(this.$rules[t],e[t]):this.$rules[t]=e[t];this.normalizeRules()};s.metaData={comment:\"SoyTemplate\",fileTypes:[\"soy\"],firstLineMatch:\"\\\\{\\\\s*namespace\\\\b\",foldingStartMarker:\"\\\\{\\\\s*template\\\\s+[^\\\\}]*\\\\}\",foldingStopMarker:\"\\\\{\\\\s*/\\\\s*template\\\\s*\\\\}\",name:\"SoyTemplate\",scopeName:\"source.soy\"},r.inherits(s,i),t.SoyTemplateHighlightRules=s}),ace.define(\"ace/mode/soy_template\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/soy_template_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./soy_template_highlight_rules\").SoyTemplateHighlightRules,o=function(){i.call(this),this.HighlightRules=s};r.inherits(o,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/soy_template\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-space.js",
    "content": "ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/space_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"empty_line\",regex:/ */,next:\"key\"},{token:\"empty_line\",regex:/$/,next:\"key\"}],key:[{token:\"variable\",regex:/\\S+/},{token:\"empty_line\",regex:/$/,next:\"start\"},{token:\"keyword.operator\",regex:/ /,next:\"value\"}],value:[{token:\"keyword.operator\",regex:/$/,next:\"start\"},{token:\"string\",regex:/[^$]/}]}};r.inherits(s,i),t.SpaceHighlightRules=s}),ace.define(\"ace/mode/space\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/folding/coffee\",\"ace/mode/space_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./folding/coffee\").FoldMode,o=e(\"./space_highlight_rules\").SpaceHighlightRules,u=function(){this.HighlightRules=o,this.foldingRules=new s};r.inherits(u,i),function(){this.$id=\"ace/mode/space\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-sql.js",
    "content": "ace.define(\"ace/mode/sql_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"select|insert|update|delete|from|where|and|or|group|by|order|limit|offset|having|as|case|when|else|end|type|left|right|join|on|outer|desc|asc|union|create|table|primary|key|if|foreign|not|references|default|null|inner|cross|natural|database|drop|grant\",t=\"true|false\",n=\"avg|count|first|last|max|min|sum|ucase|lcase|mid|len|round|rank|now|format|coalesce|ifnull|isnull|nvl\",r=\"int|numeric|decimal|date|varchar|char|bigint|float|double|bit|binary|text|set|timestamp|money|real|number|integer\",i=this.createKeywordMapper({\"support.function\":n,keyword:e,\"constant.language\":t,\"storage.type\":r},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\"--.*$\"},{token:\"comment\",start:\"/\\\\*\",end:\"\\\\*/\"},{token:\"string\",regex:'\".*?\"'},{token:\"string\",regex:\"'.*?'\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:i,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"text\",regex:\"\\\\s+\"}]},this.normalizeRules()};r.inherits(s,i),t.SqlHighlightRules=s}),ace.define(\"ace/mode/sql\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/sql_highlight_rules\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./sql_highlight_rules\").SqlHighlightRules,o=e(\"../range\").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.$id=\"ace/mode/sql\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-sqlserver.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/sqlserver_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"ALL|AND|ANY|BETWEEN|EXISTS|IN|LIKE|NOT|OR|SOME\";e+=\"|NULL|IS|APPLY|INNER|OUTER|LEFT|RIGHT|JOIN|CROSS\";var t=\"OPENDATASOURCE|OPENQUERY|OPENROWSET|OPENXML|AVG|CHECKSUM_AGG|COUNT|COUNT_BIG|GROUPING|GROUPING_ID|MAX|MIN|STDEV|STDEVP|SUM|VAR|VARP|DENSE_RANK|NTILE|RANK|ROW_NUMBER@@DATEFIRST|@@DBTS|@@LANGID|@@LANGUAGE|@@LOCK_TIMEOUT|@@MAX_CONNECTIONS|@@MAX_PRECISION|@@NESTLEVEL|@@OPTIONS|@@REMSERVER|@@SERVERNAME|@@SERVICENAME|@@SPID|@@TEXTSIZE|@@VERSION|CAST|CONVERT|PARSE|TRY_CAST|TRY_CONVERT|TRY_PARSE@@CURSOR_ROWS|@@FETCH_STATUS|CURSOR_STATUS|@@DATEFIRST|@@LANGUAGE|CURRENT_TIMESTAMP|DATEADD|DATEDIFF|DATEFROMPARTS|DATENAME|DATEPART|DATETIME2FROMPARTS|DATETIMEFROMPARTS|DATETIMEOFFSETFROMPARTS|DAY|EOMONTH|GETDATE|GETUTCDATE|ISDATE|MONTH|SET DATEFIRST|SET DATEFORMAT|SET LANGUAGE|SMALLDATETIMEFROMPARTS|SP_HELPLANGUAGE|SWITCHOFFSET|SYSDATETIME|SYSDATETIMEOFFSET|SYSUTCDATETIME|TIMEFROMPARTS|TODATETIMEOFFSET|YEAR|CHOOSE|IIF|ABS|ACOS|ASIN|ATAN|ATN2|CEILING|COS|COT|DEGREES|EXP|FLOOR|LOG|LOG10|PI|POWER|RADIANS|RAND|ROUND|SIGN|SIN|SQRT|SQUARE|TAN|@@PROCID|APPLOCK_MODE|APPLOCK_TEST|APP_NAME|ASSEMBLYPROPERTY|COLUMNPROPERTY|COL_LENGTH|COL_NAME|DATABASEPROPERTYEX|DATABASE_PRINCIPAL_ID|DB_ID|DB_NAME|FILEGROUPPROPERTY|FILEGROUP_ID|FILEGROUP_NAME|FILEPROPERTY|FILE_ID|FILE_IDEX|FILE_NAME|FULLTEXTCATALOGPROPERTY|FULLTEXTSERVICEPROPERTY|INDEXKEY_PROPERTY|INDEXPROPERTY|INDEX_COL|OBJECTPROPERTY|OBJECTPROPERTYEX|OBJECT_DEFINITION|OBJECT_ID|OBJECT_NAME|OBJECT_SCHEMA_NAME|ORIGINAL_DB_NAME|PARSENAME|SCHEMA_ID|SCHEMA_NAME|SCOPE_IDENTITY|SERVERPROPERTY|STATS_DATE|TYPEPROPERTY|TYPE_ID|TYPE_NAME|CERTENCODED|CERTPRIVATEKEY|CURRENT_USER|DATABASE_PRINCIPAL_ID|HAS_PERMS_BY_NAME|IS_MEMBER|IS_ROLEMEMBER|IS_SRVROLEMEMBER|ORIGINAL_LOGIN|PERMISSIONS|PWDCOMPARE|PWDENCRYPT|SCHEMA_ID|SCHEMA_NAME|SESSION_USER|SUSER_ID|SUSER_NAME|SUSER_SID|SUSER_SNAME|SYS.FN_BUILTIN_PERMISSIONS|SYS.FN_GET_AUDIT_FILE|SYS.FN_MY_PERMISSIONS|SYSTEM_USER|USER_ID|USER_NAME|ASCII|CHAR|CHARINDEX|CONCAT|DIFFERENCE|FORMAT|LEN|LOWER|LTRIM|NCHAR|PATINDEX|QUOTENAME|REPLACE|REPLICATE|REVERSE|RTRIM|SOUNDEX|SPACE|STR|STUFF|SUBSTRING|UNICODE|UPPER|$PARTITION|@@ERROR|@@IDENTITY|@@PACK_RECEIVED|@@ROWCOUNT|@@TRANCOUNT|BINARY_CHECKSUM|CHECKSUM|CONNECTIONPROPERTY|CONTEXT_INFO|CURRENT_REQUEST_ID|ERROR_LINE|ERROR_MESSAGE|ERROR_NUMBER|ERROR_PROCEDURE|ERROR_SEVERITY|ERROR_STATE|FORMATMESSAGE|GETANSINULL|GET_FILESTREAM_TRANSACTION_CONTEXT|HOST_ID|HOST_NAME|ISNULL|ISNUMERIC|MIN_ACTIVE_ROWVERSION|NEWID|NEWSEQUENTIALID|ROWCOUNT_BIG|XACT_STATE|@@CONNECTIONS|@@CPU_BUSY|@@IDLE|@@IO_BUSY|@@PACKET_ERRORS|@@PACK_RECEIVED|@@PACK_SENT|@@TIMETICKS|@@TOTAL_ERRORS|@@TOTAL_READ|@@TOTAL_WRITE|FN_VIRTUALFILESTATS|PATINDEX|TEXTPTR|TEXTVALID|COALESCE|NULLIF\",n=\"BIGINT|BINARY|BIT|CHAR|CURSOR|DATE|DATETIME|DATETIME2|DATETIMEOFFSET|DECIMAL|FLOAT|HIERARCHYID|IMAGE|INTEGER|INT|MONEY|NCHAR|NTEXT|NUMERIC|NVARCHAR|REAL|SMALLDATETIME|SMALLINT|SMALLMONEY|SQL_VARIANT|TABLE|TEXT|TIME|TIMESTAMP|TINYINT|UNIQUEIDENTIFIER|VARBINARY|VARCHAR|XML\",r=\"sp_addextendedproc|sp_addextendedproperty|sp_addmessage|sp_addtype|sp_addumpdevice|sp_add_data_file_recover_suspect_db|sp_add_log_file_recover_suspect_db|sp_altermessage|sp_attach_db|sp_attach_single_file_db|sp_autostats|sp_bindefault|sp_bindrule|sp_bindsession|sp_certify_removable|sp_clean_db_file_free_space|sp_clean_db_free_space|sp_configure|sp_control_plan_guide|sp_createstats|sp_create_plan_guide|sp_create_plan_guide_from_handle|sp_create_removable|sp_cycle_errorlog|sp_datatype_info|sp_dbcmptlevel|sp_dbmmonitoraddmonitoring|sp_dbmmonitorchangealert|sp_dbmmonitorchangemonitoring|sp_dbmmonitordropalert|sp_dbmmonitordropmonitoring|sp_dbmmonitorhelpalert|sp_dbmmonitorhelpmonitoring|sp_dbmmonitorresults|sp_db_increased_partitions|sp_delete_backuphistory|sp_depends|sp_describe_first_result_set|sp_describe_undeclared_parameters|sp_detach_db|sp_dropdevice|sp_dropextendedproc|sp_dropextendedproperty|sp_dropmessage|sp_droptype|sp_execute|sp_executesql|sp_getapplock|sp_getbindtoken|sp_help|sp_helpconstraint|sp_helpdb|sp_helpdevice|sp_helpextendedproc|sp_helpfile|sp_helpfilegroup|sp_helpindex|sp_helplanguage|sp_helpserver|sp_helpsort|sp_helpstats|sp_helptext|sp_helptrigger|sp_indexoption|sp_invalidate_textptr|sp_lock|sp_monitor|sp_prepare|sp_prepexec|sp_prepexecrpc|sp_procoption|sp_recompile|sp_refreshview|sp_releaseapplock|sp_rename|sp_renamedb|sp_resetstatus|sp_sequence_get_range|sp_serveroption|sp_setnetname|sp_settriggerorder|sp_spaceused|sp_tableoption|sp_unbindefault|sp_unbindrule|sp_unprepare|sp_updateextendedproperty|sp_updatestats|sp_validname|sp_who|sys.sp_merge_xtp_checkpoint_files|sys.sp_xtp_bind_db_resource_pool|sys.sp_xtp_checkpoint_force_garbage_collection|sys.sp_xtp_control_proc_exec_stats|sys.sp_xtp_control_query_exec_stats|sys.sp_xtp_unbind_db_resource_pool\",s=\"ABSOLUTE|ACTION|ADA|ADD|ADMIN|AFTER|AGGREGATE|ALIAS|ALL|ALLOCATE|ALTER|AND|ANY|ARE|ARRAY|AS|ASC|ASENSITIVE|ASSERTION|ASYMMETRIC|AT|ATOMIC|AUTHORIZATION|BACKUP|BEFORE|BEGIN|BETWEEN|BIT_LENGTH|BLOB|BOOLEAN|BOTH|BREADTH|BREAK|BROWSE|BULK|BY|CALL|CALLED|CARDINALITY|CASCADE|CASCADED|CASE|CATALOG|CHARACTER|CHARACTER_LENGTH|CHAR_LENGTH|CHECK|CHECKPOINT|CLASS|CLOB|CLOSE|CLUSTERED|COALESCE|COLLATE|COLLATION|COLLECT|COLUMN|COMMIT|COMPLETION|COMPUTE|CONDITION|CONNECT|CONNECTION|CONSTRAINT|CONSTRAINTS|CONSTRUCTOR|CONTAINS|CONTAINSTABLE|CONTINUE|CORR|CORRESPONDING|COVAR_POP|COVAR_SAMP|CREATE|CROSS|CUBE|CUME_DIST|CURRENT|CURRENT_CATALOG|CURRENT_DATE|CURRENT_DEFAULT_TRANSFORM_GROUP|CURRENT_PATH|CURRENT_ROLE|CURRENT_SCHEMA|CURRENT_TIME|CURRENT_TRANSFORM_GROUP_FOR_TYPE|CYCLE|DATA|DATABASE|DBCC|DEALLOCATE|DEC|DECLARE|DEFAULT|DEFERRABLE|DEFERRED|DELETE|DENY|DEPTH|DEREF|DESC|DESCRIBE|DESCRIPTOR|DESTROY|DESTRUCTOR|DETERMINISTIC|DIAGNOSTICS|DICTIONARY|DISCONNECT|DISK|DISTINCT|DISTRIBUTED|DOMAIN|DOUBLE|DROP|DUMP|DYNAMIC|EACH|ELEMENT|ELSE|END|END-EXEC|EQUALS|ERRLVL|ESCAPE|EVERY|EXCEPT|EXCEPTION|EXEC|EXECUTE|EXISTS|EXIT|EXTERNAL|EXTRACT|FETCH|FILE|FILLFACTOR|FILTER|FIRST|FOR|FOREIGN|FORTRAN|FOUND|FREE|FREETEXT|FREETEXTTABLE|FROM|FULL|FULLTEXTTABLE|FUNCTION|FUSION|GENERAL|GET|GLOBAL|GO|GOTO|GRANT|GROUP|HAVING|HOLD|HOLDLOCK|HOST|HOUR|IDENTITY|IDENTITYCOL|IDENTITY_INSERT|IF|IGNORE|IMMEDIATE|IN|INCLUDE|INDEX|INDICATOR|INITIALIZE|INITIALLY|INNER|INOUT|INPUT|INSENSITIVE|INSERT|INTEGER|INTERSECT|INTERSECTION|INTERVAL|INTO|IS|ISOLATION|ITERATE|JOIN|KEY|KILL|LANGUAGE|LARGE|LAST|LATERAL|LEADING|LESS|LEVEL|LIKE|LIKE_REGEX|LIMIT|LINENO|LN|LOAD|LOCAL|LOCALTIME|LOCALTIMESTAMP|LOCATOR|MAP|MATCH|MEMBER|MERGE|METHOD|MINUTE|MOD|MODIFIES|MODIFY|MODULE|MULTISET|NAMES|NATIONAL|NATURAL|NCLOB|NEW|NEXT|NO|NOCHECK|NONCLUSTERED|NONE|NORMALIZE|NOT|NULL|NULLIF|OBJECT|OCCURRENCES_REGEX|OCTET_LENGTH|OF|OFF|OFFSETS|OLD|ON|ONLY|OPEN|OPERATION|OPTION|OR|ORDER|ORDINALITY|OUT|OUTER|OUTPUT|OVER|OVERLAPS|OVERLAY|PAD|PARAMETER|PARAMETERS|PARTIAL|PARTITION|PASCAL|PATH|PERCENT|PERCENTILE_CONT|PERCENTILE_DISC|PERCENT_RANK|PIVOT|PLAN|POSITION|POSITION_REGEX|POSTFIX|PRECISION|PREFIX|PREORDER|PREPARE|PRESERVE|PRIMARY|PRINT|PRIOR|PRIVILEGES|PROC|PROCEDURE|PUBLIC|RAISERROR|RANGE|READ|READS|READTEXT|RECONFIGURE|RECURSIVE|REF|REFERENCES|REFERENCING|REGR_AVGX|REGR_AVGY|REGR_COUNT|REGR_INTERCEPT|REGR_R2|REGR_SLOPE|REGR_SXX|REGR_SXY|REGR_SYY|RELATIVE|RELEASE|REPLICATION|RESTORE|RESTRICT|RESULT|RETURN|RETURNS|REVERT|REVOKE|ROLE|ROLLBACK|ROLLUP|ROUTINE|ROW|ROWCOUNT|ROWGUIDCOL|ROWS|RULE|SAVE|SAVEPOINT|SCHEMA|SCOPE|SCROLL|SEARCH|SECOND|SECTION|SECURITYAUDIT|SELECT|SEMANTICKEYPHRASETABLE|SEMANTICSIMILARITYDETAILSTABLE|SEMANTICSIMILARITYTABLE|SENSITIVE|SEQUENCE|SESSION|SET|SETS|SETUSER|SHUTDOWN|SIMILAR|SIZE|SOME|SPECIFIC|SPECIFICTYPE|SQL|SQLCA|SQLCODE|SQLERROR|SQLEXCEPTION|SQLSTATE|SQLWARNING|START|STATE|STATEMENT|STATIC|STATISTICS|STDDEV_POP|STDDEV_SAMP|STRUCTURE|SUBMULTISET|SUBSTRING_REGEX|SYMMETRIC|SYSTEM|TABLESAMPLE|TEMPORARY|TERMINATE|TEXTSIZE|THAN|THEN|TIMEZONE_HOUR|TIMEZONE_MINUTE|TO|TOP|TRAILING|TRAN|TRANSACTION|TRANSLATE|TRANSLATE_REGEX|TRANSLATION|TREAT|TRIGGER|TRIM|TRUNCATE|TSEQUAL|UESCAPE|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNPIVOT|UPDATE|UPDATETEXT|USAGE|USE|USER|USING|VALUE|VALUES|VARIABLE|VARYING|VAR_POP|VAR_SAMP|VIEW|WAITFOR|WHEN|WHENEVER|WHERE|WHILE|WIDTH_BUCKET|WINDOW|WITH|WITHIN|WITHIN GROUP|WITHOUT|WORK|WRITE|WRITETEXT|XMLAGG|XMLATTRIBUTES|XMLBINARY|XMLCAST|XMLCOMMENT|XMLCONCAT|XMLDOCUMENT|XMLELEMENT|XMLEXISTS|XMLFOREST|XMLITERATE|XMLNAMESPACES|XMLPARSE|XMLPI|XMLQUERY|XMLSERIALIZE|XMLTABLE|XMLTEXT|XMLVALIDATE|ZONE\";s+=\"|KEEPIDENTITY|KEEPDEFAULTS|IGNORE_CONSTRAINTS|IGNORE_TRIGGERS|XLOCK|FORCESCAN|FORCESEEK|HOLDLOCK|NOLOCK|NOWAIT|PAGLOCK|READCOMMITTED|READCOMMITTEDLOCK|READPAST|READUNCOMMITTED|REPEATABLEREAD|ROWLOCK|SERIALIZABLE|SNAPSHOT|SPATIAL_WINDOW_MAX_CELLS|TABLOCK|TABLOCKX|UPDLOCK|XLOCK|IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX|EXPAND|VIEWS|FAST|FORCE|KEEP|KEEPFIXED|MAXDOP|MAXRECURSION|OPTIMIZE|PARAMETERIZATION|SIMPLE|FORCED|RECOMPILE|ROBUST|PLAN|SPATIAL_WINDOW_MAX_CELLS|NOEXPAND|HINT\",s+=\"|LOOP|HASH|MERGE|REMOTE\",s+=\"|TRY|CATCH|THROW\",s+=\"|TYPE\",s=s.split(\"|\"),s=s.filter(function(r,i,s){return e.split(\"|\").indexOf(r)===-1&&t.split(\"|\").indexOf(r)===-1&&n.split(\"|\").indexOf(r)===-1}),s=s.sort().join(\"|\");var o=this.createKeywordMapper({\"constant.language\":e,\"storage.type\":n,\"support.function\":t,\"support.storedprocedure\":r,keyword:s},\"identifier\",!0),u=\"SET ANSI_DEFAULTS|SET ANSI_NULLS|SET ANSI_NULL_DFLT_OFF|SET ANSI_NULL_DFLT_ON|SET ANSI_PADDING|SET ANSI_WARNINGS|SET ARITHABORT|SET ARITHIGNORE|SET CONCAT_NULL_YIELDS_NULL|SET CURSOR_CLOSE_ON_COMMIT|SET DATEFIRST|SET DATEFORMAT|SET DEADLOCK_PRIORITY|SET FIPS_FLAGGER|SET FMTONLY|SET FORCEPLAN|SET IDENTITY_INSERT|SET IMPLICIT_TRANSACTIONS|SET LANGUAGE|SET LOCK_TIMEOUT|SET NOCOUNT|SET NOEXEC|SET NUMERIC_ROUNDABORT|SET OFFSETS|SET PARSEONLY|SET QUERY_GOVERNOR_COST_LIMIT|SET QUOTED_IDENTIFIER|SET REMOTE_PROC_TRANSACTIONS|SET ROWCOUNT|SET SHOWPLAN_ALL|SET SHOWPLAN_TEXT|SET SHOWPLAN_XML|SET STATISTICS IO|SET STATISTICS PROFILE|SET STATISTICS TIME|SET STATISTICS XML|SET TEXTSIZE|SET XACT_ABORT\".split(\"|\"),a=\"READ UNCOMMITTED|READ COMMITTED|REPEATABLE READ|SNAPSHOP|SERIALIZABLE\".split(\"|\");for(var f=0;f<a.length;f++)u.push(\"SET TRANSACTION ISOLATION LEVEL \"+a[f]);this.$rules={start:[{token:\"string.start\",regex:\"'\",next:[{token:\"constant.language.escape\",regex:/''/},{token:\"string.end\",next:\"start\",regex:\"'\"},{defaultToken:\"string\"}]},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"--.*$\"},{token:\"comment\",start:\"/\\\\*\",end:\"\\\\*/\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:o,regex:\"@{0,2}[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b(?!])\"},{token:\"constant.class\",regex:\"@@?[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=|\\\\*\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"punctuation\",regex:\",|;\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"no_regex\"},{defaultToken:\"comment\",caseInsensitive:!0}]};for(var f=0;f<u.length;f++)this.$rules.start.unshift({token:\"set.statement\",regex:u[f]});this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")]),this.normalizeRules();var l=[],c=function(e,t){e.forEach(function(e){l.push({name:e,value:e,score:0,meta:t})})};c(r.split(\"|\"),\"procedure\"),c(e.split(\"|\"),\"operator\"),c(t.split(\"|\"),\"function\"),c(n.split(\"|\"),\"type\"),c(u,\"statement\"),c(s.split(\"|\"),\"keyword\"),this.completions=l};r.inherits(o,s),t.SqlHighlightRules=o}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/folding/sqlserver\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./cstyle\").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\\bCASE\\b|\\bBEGIN\\b)|^\\s*(\\/\\*)/i,this.startRegionRe=/^\\s*(\\/\\*|--)#?region\\b/,this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.getBeginEndBlock(e,n,o,s[1]);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;return},this.getBeginEndBlock=function(e,t,n,r){var s={row:t,column:n+r.length},o=e.getLength(),u,a=1,f=/(\\bCASE\\b|\\bBEGIN\\b)|(\\bEND\\b)/i;while(++t<o){u=e.getLine(t);var l=f.exec(u);if(!l)continue;l[1]?a++:a--;if(!a)break}var c=t;if(c>s.row)return new i(s.row,s.column,c,u.length)}}.call(o.prototype)}),ace.define(\"ace/mode/sqlserver\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/sqlserver_highlight_rules\",\"ace/range\",\"ace/mode/folding/sqlserver\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./sqlserver_highlight_rules\").SqlHighlightRules,o=e(\"../range\").Range,u=e(\"./folding/sqlserver\").FoldMode,a=function(){this.HighlightRules=s,this.foldingRules=new u};r.inherits(a,i),function(){this.lineCommentStart=\"--\",this.blockComment={start:\"/*\",end:\"*/\"},this.getCompletions=function(e,t,n,r){return t.$mode.$highlightRules.completions},this.$id=\"ace/mode/sql\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-stylus.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/stylus_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/css_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=e(\"./css_highlight_rules\"),o=function(){var e=this.createKeywordMapper({\"support.type\":s.supportType,\"support.function\":s.supportFunction,\"support.constant\":s.supportConstant,\"support.constant.color\":s.supportConstantColor,\"support.constant.fonts\":s.supportConstantFonts},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:/\\/\\/.*$/},{token:\"comment\",regex:/\\/\\*/,next:\"comment\"},{token:[\"entity.name.function.stylus\",\"text\"],regex:\"^([-a-zA-Z_][-\\\\w]*)?(\\\\()\"},{token:[\"entity.other.attribute-name.class.stylus\"],regex:\"\\\\.-?[_a-zA-Z]+[_a-zA-Z0-9-]*\"},{token:[\"entity.language.stylus\"],regex:\"^ *&\"},{token:[\"variable.language.stylus\"],regex:\"(arguments)\"},{token:[\"keyword.stylus\"],regex:\"@[-\\\\w]+\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:s.pseudoElements},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:s.pseudoClasses},{token:[\"entity.name.tag.stylus\"],regex:\"(?:\\\\b)(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(?:h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|samp|script|section|select|small|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)(?:\\\\b)\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation.definition.entity.stylus\",\"entity.other.attribute-name.id.stylus\"],regex:\"(#)([a-zA-Z][a-zA-Z0-9_-]*)\"},{token:\"meta.vendor-prefix.stylus\",regex:\"-webkit-|-moz\\\\-|-ms-|-o-\"},{token:\"keyword.control.stylus\",regex:\"(?:!important|for|in|return|true|false|null|if|else|unless|return)\\\\b\"},{token:\"keyword.operator.stylus\",regex:\"!|~|\\\\+|-|(?:\\\\*)?\\\\*|\\\\/|%|(?:\\\\.)\\\\.\\\\.|<|>|(?:=|:|\\\\?|\\\\+|-|\\\\*|\\\\/|%|<|>)?=|!=\"},{token:\"keyword.operator.stylus\",regex:\"(?:in|is(?:nt)?|not)\\\\b\"},{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:s.numRe},{token:\"keyword\",regex:\"(?:ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\\\\b\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}],qqstring:[{token:\"string\",regex:'[^\"\\\\\\\\]+'},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"start\"}],qstring:[{token:\"string\",regex:\"[^'\\\\\\\\]+\"},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"start\"}]}};r.inherits(o,i),t.StylusHighlightRules=o}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/stylus\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/stylus_highlight_rules\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./stylus_highlight_rules\").StylusHighlightRules,o=e(\"./folding/coffee\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/stylus\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-svg.js",
    "content": "ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./xml_highlight_rules\").XmlHighlightRules,u=e(\"./behaviour/xml\").XmlBehaviour,a=e(\"./folding/xml\").FoldMode,f=e(\"../worker/worker_client\").WorkerClient,l=function(){this.HighlightRules=o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,s),function(){this.voidElements=i.arrayToMap([]),this.blockComment={start:\"<!--\",end:\"-->\"},this.createWorker=function(e){var t=new f([\"ace\"],\"ace/mode/xml_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/xml\"}.call(l.prototype),t.Mode=l}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/svg_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,s=e(\"./xml_highlight_rules\").XmlHighlightRules,o=function(){s.call(this),this.embedTagRules(i,\"js-\",\"script\"),this.normalizeRules()};r.inherits(o,s),t.SvgHighlightRules=o}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/svg\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/xml\",\"ace/mode/javascript\",\"ace/mode/svg_highlight_rules\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./xml\").Mode,s=e(\"./javascript\").Mode,o=e(\"./svg_highlight_rules\").SvgHighlightRules,u=e(\"./folding/mixed\").FoldMode,a=e(\"./folding/xml\").FoldMode,f=e(\"./folding/cstyle\").FoldMode,l=function(){i.call(this),this.HighlightRules=o,this.createModeDelegates({\"js-\":s}),this.foldingRules=new u(new a,{\"js-\":new f})};r.inherits(l,i),function(){this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.$id=\"ace/mode/svg\"}.call(l.prototype),t.Mode=l})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-swift.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/swift_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){function t(e,t){var n=t.nestable||t.interpolation,r=t.interpolation&&t.interpolation.nextState||\"start\",s={regex:e+(t.multiline?\"\":\"(?=.)\"),token:\"string.start\"},o=[t.escape&&{regex:t.escape,token:\"character.escape\"},t.interpolation&&{token:\"paren.quasi.start\",regex:i.escapeRegExp(t.interpolation.lead+t.interpolation.open),push:r},t.error&&{regex:t.error,token:\"error.invalid\"},{regex:e+(t.multiline?\"\":\"|$\"),token:\"string.end\",next:n?\"pop\":\"start\"},{defaultToken:\"string\"}].filter(Boolean);n?s.push=o:s.next=o;if(!t.interpolation)return s;var u=t.interpolation.open,a=t.interpolation.close,f={regex:\"[\"+i.escapeRegExp(u+a)+\"]\",onMatch:function(e,t,n){this.next=e==u?this.nextState:\"\";if(e==u&&n.length)return n.unshift(\"start\",t),\"paren\";if(e==a&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1)return\"paren.quasi.end\"}return e==u?\"paren.lparen\":\"paren.rparen\"},nextState:r};return[f,s]}function n(){return[{token:\"comment\",regex:\"\\\\/\\\\/(?=.)\",next:[s.getTagRule(),{token:\"comment\",regex:\"$|^\",next:\"start\"},{defaultToken:\"comment\",caseInsensitive:!0}]},s.getStartRule(\"doc-start\"),{token:\"comment.start\",regex:/\\/\\*/,stateName:\"nested_comment\",push:[s.getTagRule(),{token:\"comment.start\",regex:/\\/\\*/,push:\"nested_comment\"},{token:\"comment.end\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var e=this.createKeywordMapper({\"variable.language\":\"\",keyword:\"__COLUMN__|__FILE__|__FUNCTION__|__LINE__|as|associativity|break|case|class|continue|default|deinit|didSet|do|dynamicType|else|enum|extension|fallthrough|for|func|get|if|import|in|infix|init|inout|is|left|let|let|mutating|new|none|nonmutating|operator|override|postfix|precedence|prefix|protocol|return|right|safe|Self|self|set|struct|subscript|switch|Type|typealias|unowned|unsafe|var|weak|where|while|willSet|convenience|dynamic|final|infix|lazy|mutating|nonmutating|optional|override|postfix|prefix|required|static|guard|defer\",\"storage.type\":\"bool|double|Double|extension|float|Float|int|Int|private|public|string|String\",\"constant.language\":\"false|Infinity|NaN|nil|no|null|null|off|on|super|this|true|undefined|yes\",\"support.function\":\"\"},\"identifier\");this.$rules={start:[t('\"',{escape:/\\\\(?:[0\\\\tnr\"']|u{[a-fA-F1-9]{0,8}})/,interpolation:{lead:\"\\\\\",open:\"(\",close:\")\"},error:/\\\\./,multiline:!1}),n({type:\"c\",nestable:!0}),{regex:/@[a-zA-Z_$][a-zA-Z_$\\d\\u0080-\\ufffe]*/,token:\"variable.parameter\"},{regex:/[a-zA-Z_$][a-zA-Z_$\\d\\u0080-\\ufffe]*/,token:e},{token:\"constant.numeric\",regex:/[+-]?(?:0(?:b[01]+|o[0-7]+|x[\\da-fA-F])|\\d+(?:(?:\\.\\d*)?(?:[PpEe][+-]?\\d+)?)\\b)/},{token:\"keyword.operator\",regex:/--|\\+\\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/}]},this.embedRules(s,\"doc-\",[s.getEndRule(\"start\")]),this.normalizeRules()};r.inherits(u,o),t.HighlightRules=u}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/swift\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/swift_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./swift_highlight_rules\").HighlightRules,o=e(\"./behaviour/cstyle\").CstyleBehaviour,u=e(\"./folding/cstyle\").FoldMode,a=function(){this.HighlightRules=s,this.foldingRules=new u,this.$behaviour=new o};r.inherits(a,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\",nestable:!0},this.$id=\"ace/mode/swift\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-swig.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},n,{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[n,{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]}],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[{token:\"comment\",regex:\"\\\\/\\\\/\",next:\"line_comment\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:/\\/\\*/,next:\"comment\"},{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0[xX][0-9a-fA-F]+\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment_regex_allowed\"},{token:\"comment\",regex:\"\\\\/\\\\/\",next:\"line_comment_regex_allowed\"},{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],comment_regex_allowed:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\",caseInsensitive:!0}],comment:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"no_regex\"},{defaultToken:\"comment\",caseInsensitive:!0}],line_comment_regex_allowed:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:\"start\"},{defaultToken:\"comment\",caseInsensitive:!0}],line_comment:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:\"no_regex\"},{defaultToken:\"comment\",caseInsensitive:!0}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)return n.unshift(\"start\",t),\"paren\";if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/swig\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/html_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./html_highlight_rules\").HtmlHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){s.call(this);var e=\"autoescape|block|else|elif|extends|filter|for|if|import|include|macro|parent|raw|set|spaceless\";e=e+\"|end\"+e.replace(/\\|/g,\"|end\");var t=\"addslashes|capitalize|date|default|escape|first|groupBy|join|json|last|lower|raw|replace|reverse|safe|sort|striptags|title|uniq|upper|url_encode|url_decode\",n=\"first|last|index|index0|revindex|revindex0|key\",r=\"null|none|true|false|loop\",i=\"in|is|and|or|not|as|with|only\",o=this.createKeywordMapper({\"keyword.control.swig\":e,\"support.function.swig\":t+\"|\"+n,\"keyword.operator.swig\":i,\"constant.language.swig\":r},\"identifier\");for(var u in this.$rules)this.$rules[u].unshift({token:\"variable.other.readwrite.local.swig\",regex:\"\\\\{\\\\{-?\",push:\"swig-start\"},{token:\"meta.tag.swig\",regex:\"\\\\{%-?\",push:\"swig-start\"},{token:\"comment.block.swig\",regex:\"\\\\{#-?\",push:\"swig-comment\"});this.$rules[\"swig-comment\"]=[{token:\"comment.block.swig\",regex:\".*-?#}\",next:\"pop\"}],this.$rules[\"swig-start\"]=[{token:\"variable.other.readwrite.local.swig\",regex:\"-?\\\\}\\\\}\",next:\"pop\"},{token:\"meta.tag.swig\",regex:\"-?%\\\\}\",next:\"pop\"},{token:\"string\",regex:\"'\",next:\"swig-qstring\"},{token:\"string\",regex:'\"',next:\"swig-qqstring\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:o,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator.assignment\",regex:\"=|~\"},{token:\"keyword.operator.comparison\",regex:\"==|!=|<|>|>=|<=|===\"},{token:\"keyword.operator.arithmetic\",regex:\"\\\\+|-|/|%|//|\\\\*|\\\\*\\\\*\"},{token:\"keyword.operator.other\",regex:\"\\\\.\\\\.|\\\\|\"},{token:\"punctuation.operator\",regex:/\\?|\\:|\\,|\\;|\\./},{token:\"paren.lparen\",regex:/[\\[\\({]/},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"text\",regex:\"\\\\s+\"}],this.$rules[\"swig-qqstring\"]=[{token:\"constant.language.escape\",regex:/\\\\[\\\\\"$#ntr]|#{[^\"}]*}/},{token:\"string\",regex:'\"',next:\"swig-start\"},{defaultToken:\"string\"}],this.$rules[\"swig-qstring\"]=[{token:\"constant.language.escape\",regex:/\\\\[\\\\'ntr]}/},{token:\"string\",regex:\"'\",next:\"swig-start\"},{defaultToken:\"string\"}],this.normalizeRules()};r.inherits(u,o),t.SwigHighlightRules=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-tcl.js",
    "content": "ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/tcl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment\",regex:\"#.*\\\\\\\\$\",next:\"commentfollow\"},{token:\"comment\",regex:\"#.*$\"},{token:\"support.function\",regex:\"[\\\\\\\\]$\",next:\"splitlineStart\"},{token:\"text\",regex:'[\\\\\\\\](?:[\"]|[{]|[}]|[[]|[]]|[$]|[])'},{token:\"text\",regex:\"^|[^{][;][^}]|[/\\r/]\",next:\"commandItem\"},{token:\"string\",regex:'[ ]*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:'[ ]*[\"]',next:\"qqstring\"},{token:\"variable.instance\",regex:\"[$]\",next:\"variable\"},{token:\"support.function\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|{\\\\*}|;|::\"},{token:\"identifier\",regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"paren.lparen\",regex:\"[[{]\",next:\"commandItem\"},{token:\"paren.lparen\",regex:\"[(]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],commandItem:[{token:\"comment\",regex:\"#.*\\\\\\\\$\",next:\"commentfollow\"},{token:\"comment\",regex:\"#.*$\",next:\"start\"},{token:\"string\",regex:'[ ]*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"variable.instance\",regex:\"[$]\",next:\"variable\"},{token:\"support.function\",regex:\"(?:[:][:])[a-zA-Z0-9_/]+(?:[:][:])\",next:\"commandItem\"},{token:\"support.function\",regex:\"[a-zA-Z0-9_/]+(?:[:][:])\",next:\"commandItem\"},{token:\"support.function\",regex:\"(?:[:][:])\",next:\"commandItem\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"support.function\",regex:\"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|{\\\\*}|;|::\"},{token:\"keyword\",regex:\"[a-zA-Z0-9_/]+\",next:\"start\"}],commentfollow:[{token:\"comment\",regex:\".*\\\\\\\\$\",next:\"commentfollow\"},{token:\"comment\",regex:\".+\",next:\"start\"}],splitlineStart:[{token:\"text\",regex:\"^.\",next:\"start\"}],variable:[{token:\"variable.instance\",regex:\"[a-zA-Z_\\\\d]+(?:[(][a-zA-Z_\\\\d]+[)])?\",next:\"start\"},{token:\"variable.instance\",regex:\"{?[a-zA-Z_\\\\d]+}?\",next:\"start\"}],qqstring:[{token:\"string\",regex:'(?:[^\\\\\\\\]|\\\\\\\\.)*?[\"]',next:\"start\"},{token:\"string\",regex:\".+\"}]}};r.inherits(s,i),t.TclHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/tcl\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/folding/cstyle\",\"ace/mode/tcl_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./folding/cstyle\").FoldMode,o=e(\"./tcl_highlight_rules\").TclHighlightRules,u=e(\"./matching_brace_outdent\").MatchingBraceOutdent,a=e(\"../range\").Range,f=function(){this.HighlightRules=o,this.$outdent=new u,this.foldingRules=new s};r.inherits(f,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var o=t.match(/^.*[\\{\\(\\[]\\s*$/);o&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/tcl\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-tex.js",
    "content": "ace.define(\"ace/mode/tex_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(e){e||(e=\"text\"),this.$rules={start:[{token:\"comment\",regex:\"%.*$\"},{token:e,regex:\"\\\\\\\\[$&%#\\\\{\\\\}]\"},{token:\"keyword\",regex:\"\\\\\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\\\b\",next:\"nospell\"},{token:\"keyword\",regex:\"\\\\\\\\(?:[a-zA-z0-9]+|[^a-zA-z0-9])\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])}]\"},{token:e,regex:\"\\\\s+\"}],nospell:[{token:\"comment\",regex:\"%.*$\",next:\"start\"},{token:\"nospell.\"+e,regex:\"\\\\\\\\[$&%#\\\\{\\\\}]\"},{token:\"keyword\",regex:\"\\\\\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\\\b\"},{token:\"keyword\",regex:\"\\\\\\\\(?:[a-zA-z0-9]+|[^a-zA-z0-9])\",next:\"start\"},{token:\"paren.keyword.operator\",regex:\"[[({]\"},{token:\"paren.keyword.operator\",regex:\"[\\\\])]\"},{token:\"paren.keyword.operator\",regex:\"}\",next:\"start\"},{token:\"nospell.\"+e,regex:\"\\\\s+\"},{token:\"nospell.\"+e,regex:\"\\\\w+\"}]}};r.inherits(o,s),t.TexHighlightRules=o}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/tex\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/tex_highlight_rules\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./tex_highlight_rules\").TexHighlightRules,u=e(\"./matching_brace_outdent\").MatchingBraceOutdent,a=function(e){e?this.HighlightRules=s:this.HighlightRules=o,this.$outdent=new u};r.inherits(a,i),function(){this.lineCommentStart=\"%\",this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.allowAutoInsert=function(){return!1},this.$id=\"ace/mode/tex\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-text.js",
    "content": ""
  },
  {
    "path": "lib/src-min-noconflict-old/mode-textile.js",
    "content": "ace.define(\"ace/mode/textile_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:function(e){return e.charAt(0)==\"h\"?\"markup.heading.\"+e.charAt(1):\"markup.heading\"},regex:\"h1|h2|h3|h4|h5|h6|bq|p|bc|pre\",next:\"blocktag\"},{token:\"keyword\",regex:\"[\\\\*]+|[#]+\"},{token:\"text\",regex:\".+\"}],blocktag:[{token:\"keyword\",regex:\"\\\\. \",next:\"start\"},{token:\"keyword\",regex:\"\\\\(\",next:\"blocktagproperties\"}],blocktagproperties:[{token:\"keyword\",regex:\"\\\\)\",next:\"blocktag\"},{token:\"string\",regex:\"[a-zA-Z0-9\\\\-_]+\"},{token:\"keyword\",regex:\"#\"}]}};r.inherits(s,i),t.TextileHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/textile\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/textile_highlight_rules\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./textile_highlight_rules\").TextileHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=function(){this.HighlightRules=s,this.$outdent=new o};r.inherits(u,i),function(){this.type=\"text\",this.getNextLineIndent=function(e,t,n){return e==\"intag\"?n:\"\"},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/textile\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-toml.js",
    "content": "ace.define(\"ace/mode/toml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=this.createKeywordMapper({\"constant.language.boolean\":\"true|false\"},\"identifier\"),t=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\";this.$rules={start:[{token:\"comment.toml\",regex:/#.*$/},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:[\"variable.keygroup.toml\"],regex:\"(?:^\\\\s*)(\\\\[\\\\[([^\\\\]]+)\\\\]\\\\])\"},{token:[\"variable.keygroup.toml\"],regex:\"(?:^\\\\s*)(\\\\[([^\\\\]]+)\\\\])\"},{token:e,regex:t},{token:\"support.date.toml\",regex:\"\\\\d{4}-\\\\d{2}-\\\\d{2}(T)\\\\d{2}:\\\\d{2}:\\\\d{2}(Z)\"},{token:\"constant.numeric.toml\",regex:\"-?\\\\d+(\\\\.?\\\\d+)?\"}],qqstring:[{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"constant.language.escape\",regex:'\\\\\\\\[0tnr\"\\\\\\\\]'},{token:\"string\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}]}};r.inherits(s,i),t.TomlHighlightRules=s}),ace.define(\"ace/mode/folding/ini\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/^\\s*\\[([^\\])]*)]\\s*(?:$|[;#])/,this.getFoldWidgetRange=function(e,t,n){var r=this.foldingStartMarker,s=e.getLine(n),o=s.match(r);if(!o)return;var u=o[1]+\".\",a=s.length,f=e.getLength(),l=n,c=n;while(++n<f){s=e.getLine(n);if(/^\\s*$/.test(s))continue;o=s.match(r);if(o&&o[1].lastIndexOf(u,0)!==0)break;c=n}if(c>l){var h=e.getLine(c).length;return new i(l,a,c,h)}}}.call(o.prototype)}),ace.define(\"ace/mode/toml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/toml_highlight_rules\",\"ace/mode/folding/ini\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./toml_highlight_rules\").TomlHighlightRules,o=e(\"./folding/ini\").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"#\",this.$id=\"ace/mode/toml\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-twig.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[A-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/twig_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/html_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./html_highlight_rules\").HtmlHighlightRules,o=e(\"./text_highlight_rules\").TextHighlightRules,u=function(){s.call(this);var e=\"autoescape|block|do|embed|extends|filter|flush|for|from|if|import|include|macro|sandbox|set|spaceless|use|verbatim\";e=e+\"|end\"+e.replace(/\\|/g,\"|end\");var t=\"abs|batch|capitalize|convert_encoding|date|date_modify|default|e|escape|first|format|join|json_encode|keys|last|length|lower|merge|nl2br|number_format|raw|replace|reverse|slice|sort|split|striptags|title|trim|upper|url_encode\",n=\"attribute|constant|cycle|date|dump|parent|random|range|template_from_string\",r=\"constant|divisibleby|sameas|defined|empty|even|iterable|odd\",i=\"null|none|true|false\",o=\"b-and|b-xor|b-or|in|is|and|or|not\",u=this.createKeywordMapper({\"keyword.control.twig\":e,\"support.function.twig\":[t,n,r].join(\"|\"),\"keyword.operator.twig\":o,\"constant.language.twig\":i},\"identifier\");for(var a in this.$rules)this.$rules[a].unshift({token:\"variable.other.readwrite.local.twig\",regex:\"\\\\{\\\\{-?\",push:\"twig-start\"},{token:\"meta.tag.twig\",regex:\"\\\\{%-?\",push:\"twig-start\"},{token:\"comment.block.twig\",regex:\"\\\\{#-?\",push:\"twig-comment\"});this.$rules[\"twig-comment\"]=[{token:\"comment.block.twig\",regex:\".*-?#\\\\}\",next:\"pop\"}],this.$rules[\"twig-start\"]=[{token:\"variable.other.readwrite.local.twig\",regex:\"-?\\\\}\\\\}\",next:\"pop\"},{token:\"meta.tag.twig\",regex:\"-?%\\\\}\",next:\"pop\"},{token:\"string\",regex:\"'\",next:\"twig-qstring\"},{token:\"string\",regex:'\"',next:\"twig-qqstring\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:u,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator.assignment\",regex:\"=|~\"},{token:\"keyword.operator.comparison\",regex:\"==|!=|<|>|>=|<=|===\"},{token:\"keyword.operator.arithmetic\",regex:\"\\\\+|-|/|%|//|\\\\*|\\\\*\\\\*\"},{token:\"keyword.operator.other\",regex:\"\\\\.\\\\.|\\\\|\"},{token:\"punctuation.operator\",regex:/\\?|\\:|\\,|\\;|\\./},{token:\"paren.lparen\",regex:/[\\[\\({]/},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"text\",regex:\"\\\\s+\"}],this.$rules[\"twig-qqstring\"]=[{token:\"constant.language.escape\",regex:/\\\\[\\\\\"$#ntr]|#{[^\"}]*}/},{token:\"string\",regex:'\"',next:\"twig-start\"},{defaultToken:\"string\"}],this.$rules[\"twig-qstring\"]=[{token:\"constant.language.escape\",regex:/\\\\[\\\\'ntr]}/},{token:\"string\",regex:\"'\",next:\"twig-start\"},{defaultToken:\"string\"}],this.normalizeRules()};r.inherits(u,o),t.TwigHighlightRules=u}),ace.define(\"ace/mode/twig\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/twig_highlight_rules\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./twig_highlight_rules\").TwigHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=function(){i.call(this),this.HighlightRules=s,this.$outdent=new o};r.inherits(u,i),function(){this.blockComment={start:\"{#\",end:\"#}\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"){var u=t.match(/^.*[\\{\\(\\[]\\s*$/);u&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/twig\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-typescript.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/typescript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,s=function(e){var t=[{token:[\"keyword.operator.ts\",\"text\",\"variable.parameter.function.ts\",\"text\"],regex:\"\\\\b(module)(\\\\s*)([a-zA-Z0-9_?.$][\\\\w?.$]*)(\\\\s*\\\\{)\"},{token:[\"storage.type.variable.ts\",\"text\",\"keyword.other.ts\",\"text\"],regex:\"(super)(\\\\s*\\\\()([a-zA-Z0-9,_?.$\\\\s]+\\\\s*)(\\\\))\"},{token:[\"entity.name.function.ts\",\"paren.lparen\",\"paren.rparen\"],regex:\"([a-zA-Z_?.$][\\\\w?.$]*)(\\\\()(\\\\))\"},{token:[\"variable.parameter.function.ts\",\"text\",\"variable.parameter.function.ts\"],regex:\"([a-zA-Z0-9_?.$][\\\\w?.$]*)(\\\\s*:\\\\s*)([a-zA-Z0-9_?.$][\\\\w?.$]*)\"},{token:[\"keyword.operator.ts\"],regex:\"(?:\\\\b(constructor|declare|interface|as|AS|public|private|class|extends|export|super)\\\\b)\"},{token:[\"storage.type.variable.ts\"],regex:\"(?:\\\\b(this\\\\.|string\\\\b|bool\\\\b|number)\\\\b)\"},{token:[\"keyword.operator.ts\",\"storage.type.variable.ts\",\"keyword.operator.ts\",\"storage.type.variable.ts\"],regex:\"(class)(\\\\s+[a-zA-Z0-9_?.$][\\\\w?.$]*\\\\s+)(extends)(\\\\s+[a-zA-Z0-9_?.$][\\\\w?.$]*\\\\s+)?\"},{token:\"keyword\",regex:\"(?:super|export|class|extends|import)\\\\b\"}],n=(new i({jsx:e&&e.jsx})).getRules();n.start=t.concat(n.start),this.$rules=n};r.inherits(s,i),t.TypeScriptHighlightRules=s}),ace.define(\"ace/mode/typescript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/typescript_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript\").Mode,s=e(\"./typescript_highlight_rules\").TypeScriptHighlightRules,o=e(\"./behaviour/cstyle\").CstyleBehaviour,u=e(\"./folding/cstyle\").FoldMode,a=e(\"./matching_brace_outdent\").MatchingBraceOutdent,f=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new o,this.foldingRules=new u};r.inherits(f,i),function(){this.createWorker=function(e){return null},this.$id=\"ace/mode/typescript\"}.call(f.prototype),t.Mode=f})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-vala.js",
    "content": "ace.define(\"ace/mode/vala_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:[\"meta.using.vala\",\"keyword.other.using.vala\",\"meta.using.vala\",\"storage.modifier.using.vala\",\"meta.using.vala\",\"punctuation.terminator.vala\"],regex:\"^(\\\\s*)(using)\\\\b(?:(\\\\s*)([^ ;$]+)(\\\\s*)((?:;)?))?\"},{include:\"#code\"}],\"#all-types\":[{include:\"#primitive-arrays\"},{include:\"#primitive-types\"},{include:\"#object-types\"}],\"#annotations\":[{token:[\"storage.type.annotation.vala\",\"punctuation.definition.annotation-arguments.begin.vala\"],regex:\"(@[^ (]+)(\\\\()\",push:[{token:\"punctuation.definition.annotation-arguments.end.vala\",regex:\"\\\\)\",next:\"pop\"},{token:[\"constant.other.key.vala\",\"text\",\"keyword.operator.assignment.vala\"],regex:\"(\\\\w*)(\\\\s*)(=)\"},{include:\"#code\"},{token:\"punctuation.seperator.property.vala\",regex:\",\"},{defaultToken:\"meta.declaration.annotation.vala\"}]},{token:\"storage.type.annotation.vala\",regex:\"@\\\\w*\"}],\"#anonymous-classes-and-new\":[{token:\"keyword.control.new.vala\",regex:\"\\\\bnew\\\\b\",push_disabled:[{token:\"text\",regex:\"(?<=\\\\)|\\\\])(?!\\\\s*{)|(?<=})|(?=;)\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<=\\\\)|\\\\])(?!\\\\s*{)|(?<=})|(?=;)\",next:\"pop\"},{token:[\"storage.type.vala\",\"text\"],regex:\"(\\\\w+)(\\\\s*)(?=\\\\[)\",push:[{token:\"text\",regex:\"}|(?=;|\\\\))\",next:\"pop\"},{token:\"text\",regex:\"\\\\[\",push:[{token:\"text\",regex:\"\\\\]\",next:\"pop\"},{include:\"#code\"}]},{token:\"text\",regex:\"{\",push:[{token:\"text\",regex:\"(?=})\",next:\"pop\"},{include:\"#code\"}]}]},{token:\"text\",regex:\"(?=\\\\w.*\\\\()\",push:[{token:\"text\",regex:\"(?<=\\\\))\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\"(?<=\\\\))\",next:\"pop\"},{include:\"#object-types\"},{token:\"text\",regex:\"\\\\(\",push:[{token:\"text\",regex:\"\\\\)\",next:\"pop\"},{include:\"#code\"}]}]},{token:\"meta.inner-class.vala\",regex:\"{\",push:[{token:\"meta.inner-class.vala\",regex:\"}\",next:\"pop\"},{include:\"#class-body\"},{defaultToken:\"meta.inner-class.vala\"}]}]}],\"#assertions\":[{token:[\"keyword.control.assert.vala\",\"meta.declaration.assertion.vala\"],regex:\"\\\\b(assert|requires|ensures)(\\\\s)\",push:[{token:\"meta.declaration.assertion.vala\",regex:\"$\",next:\"pop\"},{token:\"keyword.operator.assert.expression-seperator.vala\",regex:\":\"},{include:\"#code\"},{defaultToken:\"meta.declaration.assertion.vala\"}]}],\"#class\":[{token:\"meta.class.vala\",regex:\"(?=\\\\w?[\\\\w\\\\s]*(?:class|(?:@)?interface|enum|struct|namespace)\\\\s+\\\\w+)\",push:[{token:\"paren.vala\",regex:\"}\",next:\"pop\"},{include:\"#storage-modifiers\"},{include:\"#comments\"},{token:[\"storage.modifier.vala\",\"meta.class.identifier.vala\",\"entity.name.type.class.vala\"],regex:\"(class|(?:@)?interface|enum|struct|namespace)(\\\\s+)([\\\\w\\\\.]+)\"},{token:\"storage.modifier.extends.vala\",regex:\":\",push:[{token:\"meta.definition.class.inherited.classes.vala\",regex:\"(?={|,)\",next:\"pop\"},{include:\"#object-types-inherited\"},{include:\"#comments\"},{defaultToken:\"meta.definition.class.inherited.classes.vala\"}]},{token:[\"storage.modifier.implements.vala\",\"meta.definition.class.implemented.interfaces.vala\"],regex:\"(,)(\\\\s)\",push:[{token:\"meta.definition.class.implemented.interfaces.vala\",regex:\"(?=\\\\{)\",next:\"pop\"},{include:\"#object-types-inherited\"},{include:\"#comments\"},{defaultToken:\"meta.definition.class.implemented.interfaces.vala\"}]},{token:\"paren.vala\",regex:\"{\",push:[{token:\"paren.vala\",regex:\"(?=})\",next:\"pop\"},{include:\"#class-body\"},{defaultToken:\"meta.class.body.vala\"}]},{defaultToken:\"meta.class.vala\"}],comment:\"attempting to put namespace in here.\"}],\"#class-body\":[{include:\"#comments\"},{include:\"#class\"},{include:\"#enums\"},{include:\"#methods\"},{include:\"#annotations\"},{include:\"#storage-modifiers\"},{include:\"#code\"}],\"#code\":[{include:\"#comments\"},{include:\"#class\"},{token:\"text\",regex:\"{\",push:[{token:\"text\",regex:\"}\",next:\"pop\"},{include:\"#code\"}]},{include:\"#assertions\"},{include:\"#parens\"},{include:\"#constants-and-special-vars\"},{include:\"#anonymous-classes-and-new\"},{include:\"#keywords\"},{include:\"#storage-modifiers\"},{include:\"#strings\"},{include:\"#all-types\"}],\"#comments\":[{token:\"punctuation.definition.comment.vala\",regex:\"/\\\\*\\\\*/\"},{include:\"text.html.javadoc\"},{include:\"#comments-inline\"}],\"#comments-inline\":[{token:\"punctuation.definition.comment.vala\",regex:\"/\\\\*\",push:[{token:\"punctuation.definition.comment.vala\",regex:\"\\\\*/\",next:\"pop\"},{defaultToken:\"comment.block.vala\"}]},{token:[\"text\",\"punctuation.definition.comment.vala\",\"comment.line.double-slash.vala\"],regex:\"(\\\\s*)(//)(.*$)\"}],\"#constants-and-special-vars\":[{token:\"constant.language.vala\",regex:\"\\\\b(?:true|false|null)\\\\b\"},{token:\"variable.language.vala\",regex:\"\\\\b(?:this|base)\\\\b\"},{token:\"constant.numeric.vala\",regex:\"\\\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\\\.?[0-9]*|\\\\.[0-9]+)(?:(?:e|E)(?:\\\\+|-)?[0-9]+)?)(?:[LlFfUuDd]|UL|ul)?\\\\b\"},{token:[\"keyword.operator.dereference.vala\",\"constant.other.vala\"],regex:\"((?:\\\\.)?)\\\\b([A-Z][A-Z0-9_]+)(?!<|\\\\.class|\\\\s*\\\\w+\\\\s*=)\\\\b\"}],\"#enums\":[{token:\"text\",regex:\"^(?=\\\\s*[A-Z0-9_]+\\\\s*(?:{|\\\\(|,))\",push:[{token:\"text\",regex:\"(?=;|})\",next:\"pop\"},{token:\"constant.other.enum.vala\",regex:\"\\\\w+\",push:[{token:\"meta.enum.vala\",regex:\"(?=,|;|})\",next:\"pop\"},{include:\"#parens\"},{token:\"text\",regex:\"{\",push:[{token:\"text\",regex:\"}\",next:\"pop\"},{include:\"#class-body\"}]},{defaultToken:\"meta.enum.vala\"}]}]}],\"#keywords\":[{token:\"keyword.control.catch-exception.vala\",regex:\"\\\\b(?:try|catch|finally|throw)\\\\b\"},{token:\"keyword.control.vala\",regex:\"\\\\?|:|\\\\?\\\\?\"},{token:\"keyword.control.vala\",regex:\"\\\\b(?:return|break|case|continue|default|do|while|for|foreach|switch|if|else|in|yield|get|set|value)\\\\b\"},{token:\"keyword.operator.vala\",regex:\"\\\\b(?:typeof|is|as)\\\\b\"},{token:\"keyword.operator.comparison.vala\",regex:\"==|!=|<=|>=|<>|<|>\"},{token:\"keyword.operator.assignment.vala\",regex:\"=\"},{token:\"keyword.operator.increment-decrement.vala\",regex:\"\\\\-\\\\-|\\\\+\\\\+\"},{token:\"keyword.operator.arithmetic.vala\",regex:\"\\\\-|\\\\+|\\\\*|\\\\/|%\"},{token:\"keyword.operator.logical.vala\",regex:\"!|&&|\\\\|\\\\|\"},{token:\"keyword.operator.dereference.vala\",regex:\"\\\\.(?=\\\\S)\",originalRegex:\"(?<=\\\\S)\\\\.(?=\\\\S)\"},{token:\"punctuation.terminator.vala\",regex:\";\"},{token:\"keyword.operator.ownership\",regex:\"owned|unowned\"}],\"#methods\":[{token:\"meta.method.vala\",regex:\"(?!new)(?=\\\\w.*\\\\s+)(?=[^=]+\\\\()\",push:[{token:\"paren.vala\",regex:\"}|(?=;)\",next:\"pop\"},{include:\"#storage-modifiers\"},{token:[\"entity.name.function.vala\",\"meta.method.identifier.vala\"],regex:\"([\\\\~\\\\w\\\\.]+)(\\\\s*\\\\()\",push:[{token:\"meta.method.identifier.vala\",regex:\"\\\\)\",next:\"pop\"},{include:\"#parameters\"},{defaultToken:\"meta.method.identifier.vala\"}]},{token:\"meta.method.return-type.vala\",regex:\"(?=\\\\w.*\\\\s+\\\\w+\\\\s*\\\\()\",push:[{token:\"meta.method.return-type.vala\",regex:\"(?=\\\\w+\\\\s*\\\\()\",next:\"pop\"},{include:\"#all-types\"},{defaultToken:\"meta.method.return-type.vala\"}]},{include:\"#throws\"},{token:\"paren.vala\",regex:\"{\",push:[{token:\"paren.vala\",regex:\"(?=})\",next:\"pop\"},{include:\"#code\"},{defaultToken:\"meta.method.body.vala\"}]},{defaultToken:\"meta.method.vala\"}]}],\"#namespace\":[{token:\"text\",regex:\"^(?=\\\\s*[A-Z0-9_]+\\\\s*(?:{|\\\\(|,))\",push:[{token:\"text\",regex:\"(?=;|})\",next:\"pop\"},{token:\"constant.other.namespace.vala\",regex:\"\\\\w+\",push:[{token:\"meta.namespace.vala\",regex:\"(?=,|;|})\",next:\"pop\"},{include:\"#parens\"},{token:\"text\",regex:\"{\",push:[{token:\"text\",regex:\"}\",next:\"pop\"},{include:\"#code\"}]},{defaultToken:\"meta.namespace.vala\"}]}],comment:\"This is not quite right. See the class grammar right now\"}],\"#object-types\":[{token:\"storage.type.generic.vala\",regex:\"\\\\b(?:[a-z]\\\\w*\\\\.)*[A-Z]+\\\\w*<\",push:[{token:\"storage.type.generic.vala\",regex:\">|[^\\\\w\\\\s,\\\\?<\\\\[()\\\\]]\",TODO:\"FIXME: regexp doesn't have js equivalent\",originalRegex:\">|[^\\\\w\\\\s,\\\\?<\\\\[(?:[,]+)\\\\]]\",next:\"pop\"},{include:\"#object-types\"},{token:\"storage.type.generic.vala\",regex:\"<\",push:[{token:\"storage.type.generic.vala\",regex:\">|[^\\\\w\\\\s,\\\\[\\\\]<]\",next:\"pop\"},{defaultToken:\"storage.type.generic.vala\"}],comment:\"This is just to support <>'s with no actual type prefix\"},{defaultToken:\"storage.type.generic.vala\"}]},{token:\"storage.type.object.array.vala\",regex:\"\\\\b(?:[a-z]\\\\w*\\\\.)*[A-Z]+\\\\w*(?=\\\\[)\",push:[{token:\"storage.type.object.array.vala\",regex:\"(?=[^\\\\]\\\\s])\",next:\"pop\"},{token:\"text\",regex:\"\\\\[\",push:[{token:\"text\",regex:\"\\\\]\",next:\"pop\"},{include:\"#code\"}]},{defaultToken:\"storage.type.object.array.vala\"}]},{token:[\"storage.type.vala\",\"keyword.operator.dereference.vala\",\"storage.type.vala\"],regex:\"\\\\b(?:([a-z]\\\\w*)(\\\\.))*([A-Z]+\\\\w*\\\\b)\"}],\"#object-types-inherited\":[{token:\"entity.other.inherited-class.vala\",regex:\"\\\\b(?:[a-z]\\\\w*\\\\.)*[A-Z]+\\\\w*<\",push:[{token:\"entity.other.inherited-class.vala\",regex:\">|[^\\\\w\\\\s,<]\",next:\"pop\"},{include:\"#object-types\"},{token:\"storage.type.generic.vala\",regex:\"<\",push:[{token:\"storage.type.generic.vala\",regex:\">|[^\\\\w\\\\s,<]\",next:\"pop\"},{defaultToken:\"storage.type.generic.vala\"}],comment:\"This is just to support <>'s with no actual type prefix\"},{defaultToken:\"entity.other.inherited-class.vala\"}]},{token:[\"entity.other.inherited-class.vala\",\"keyword.operator.dereference.vala\",\"entity.other.inherited-class.vala\"],regex:\"\\\\b(?:([a-z]\\\\w*)(\\\\.))*([A-Z]+\\\\w*)\"}],\"#parameters\":[{token:\"storage.modifier.vala\",regex:\"final\"},{include:\"#primitive-arrays\"},{include:\"#primitive-types\"},{include:\"#object-types\"},{token:\"variable.parameter.vala\",regex:\"\\\\w+\"}],\"#parens\":[{token:\"text\",regex:\"\\\\(\",push:[{token:\"text\",regex:\"\\\\)\",next:\"pop\"},{include:\"#code\"}]}],\"#primitive-arrays\":[{token:\"storage.type.primitive.array.vala\",regex:\"\\\\b(?:bool|byte|sbyte|char|decimal|double|float|int|uint|long|ulong|object|short|ushort|string|void|int8|int16|int32|int64|uint8|uint16|uint32|uint64)(?:\\\\[\\\\])*\\\\b\"}],\"#primitive-types\":[{token:\"storage.type.primitive.vala\",regex:\"\\\\b(?:var|bool|byte|sbyte|char|decimal|double|float|int|uint|long|ulong|object|short|ushort|string|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64)\\\\b\",comment:\"var is not really a primitive, but acts like one in most cases\"}],\"#storage-modifiers\":[{token:\"storage.modifier.vala\",regex:\"\\\\b(?:public|private|protected|internal|static|final|sealed|virtual|override|abstract|readonly|volatile|dynamic|async|unsafe|out|ref|weak|owned|unowned|const)\\\\b\",comment:\"Not sure about unsafe and readonly\"}],\"#strings\":[{token:\"punctuation.definition.string.begin.vala\",regex:'@\"',push:[{token:\"punctuation.definition.string.end.vala\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.vala\",regex:\"\\\\\\\\.|%[\\\\w\\\\.\\\\-]+|\\\\$(?:\\\\w+|\\\\([\\\\w\\\\s\\\\+\\\\-\\\\*\\\\/]+\\\\))\"},{defaultToken:\"string.quoted.interpolated.vala\"}]},{token:\"punctuation.definition.string.begin.vala\",regex:'\"',push:[{token:\"punctuation.definition.string.end.vala\",regex:'\"',next:\"pop\"},{token:\"constant.character.escape.vala\",regex:\"\\\\\\\\.\"},{token:\"constant.character.escape.vala\",regex:\"%[\\\\w\\\\.\\\\-]+\"},{defaultToken:\"string.quoted.double.vala\"}]},{token:\"punctuation.definition.string.begin.vala\",regex:\"'\",push:[{token:\"punctuation.definition.string.end.vala\",regex:\"'\",next:\"pop\"},{token:\"constant.character.escape.vala\",regex:\"\\\\\\\\.\"},{defaultToken:\"string.quoted.single.vala\"}]},{token:\"punctuation.definition.string.begin.vala\",regex:'\"\"\"',push:[{token:\"punctuation.definition.string.end.vala\",regex:'\"\"\"',next:\"pop\"},{token:\"constant.character.escape.vala\",regex:\"%[\\\\w\\\\.\\\\-]+\"},{defaultToken:\"string.quoted.triple.vala\"}]}],\"#throws\":[{token:\"storage.modifier.vala\",regex:\"throws\",push:[{token:\"meta.throwables.vala\",regex:\"(?={|;)\",next:\"pop\"},{include:\"#object-types\"},{defaultToken:\"meta.throwables.vala\"}]}],\"#values\":[{include:\"#strings\"},{include:\"#object-types\"},{include:\"#constants-and-special-vars\"}]},this.normalizeRules()};s.metaData={comment:\"Based heavily on the Java bundle's language syntax. TODO:\\n* Closures\\n* Delegates\\n* Properties: Better support for properties.\\n* Annotations\\n* Error domains\\n* Named arguments\\n* Array slicing, negative indexes, multidimensional\\n* construct blocks\\n* lock blocks?\\n* regex literals\\n* DocBlock syntax highlighting. (Currently importing javadoc)\\n* Folding rule for comments.\\n\",fileTypes:[\"vala\"],foldingStartMarker:\"(\\\\{\\\\s*(//.*)?$|^\\\\s*// \\\\{\\\\{\\\\{)\",foldingStopMarker:\"^\\\\s*(\\\\}|// \\\\}\\\\}\\\\}$)\",name:\"Vala\",scopeName:\"source.vala\"},r.inherits(s,i),t.ValaHighlightRules=s}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/vala\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/tokenizer\",\"ace/mode/vala_highlight_rules\",\"ace/mode/folding/cstyle\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/mode/matching_brace_outdent\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"../tokenizer\").Tokenizer,o=e(\"./vala_highlight_rules\").ValaHighlightRules,u=e(\"./folding/cstyle\").FoldMode,a=e(\"./behaviour/cstyle\").CstyleBehaviour,f=e(\"./folding/cstyle\").FoldMode,l=e(\"./matching_brace_outdent\").MatchingBraceOutdent,c=function(){this.HighlightRules=o,this.$outdent=new l,this.$behaviour=new a,this.foldingRules=new f};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/vala\"}.call(c.prototype),t.Mode=c})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-vbscript.js",
    "content": "ace.define(\"ace/mode/vbscript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=this.createKeywordMapper({\"keyword.control.asp\":\"If|Then|Else|ElseIf|End|While|Wend|For|To|Each|Case|Select|Return|Continue|Do|Until|Loop|Next|With|Exit|Function|Property|Type|Enum|Sub|IIf\",\"storage.type.asp\":\"Dim|Call|Class|Const|Dim|Redim|Set|Let|Get|New|Randomize|Option|Explicit\",\"storage.modifier.asp\":\"Private|Public|Default\",\"keyword.operator.asp\":\"Mod|And|Not|Or|Xor|as\",\"constant.language.asp\":\"Empty|False|Nothing|Null|True\",\"support.class.asp\":\"Application|ObjectContext|Request|Response|Server|Session\",\"support.class.collection.asp\":\"Contents|StaticObjects|ClientCertificate|Cookies|Form|QueryString|ServerVariables\",\"support.constant.asp\":\"TotalBytes|Buffer|CacheControl|Charset|ContentType|Expires|ExpiresAbsolute|IsClientConnected|PICS|Status|ScriptTimeout|CodePage|LCID|SessionID|Timeout\",\"support.function.asp\":\"Lock|Unlock|SetAbort|SetComplete|BinaryRead|AddHeader|AppendToLog|BinaryWrite|Clear|Flush|Redirect|Write|CreateObject|HTMLEncode|MapPath|URLEncode|Abandon|Convert|Regex\",\"support.function.event.asp\":\"Application_OnEnd|Application_OnStart|OnTransactionAbort|OnTransactionCommit|Session_OnEnd|Session_OnStart\",\"support.function.vb.asp\":\"Array|Add|Asc|Atn|CBool|CByte|CCur|CDate|CDbl|Chr|CInt|CLng|Conversions|Cos|CreateObject|CSng|CStr|Date|DateAdd|DateDiff|DatePart|DateSerial|DateValue|Day|Derived|Math|Escape|Eval|Exists|Exp|Filter|FormatCurrency|FormatDateTime|FormatNumber|FormatPercent|GetLocale|GetObject|GetRef|Hex|Hour|InputBox|InStr|InStrRev|Int|Fix|IsArray|IsDate|IsEmpty|IsNull|IsNumeric|IsObject|Item|Items|Join|Keys|LBound|LCase|Left|Len|LoadPicture|Log|LTrim|RTrim|Trim|Maths|Mid|Minute|Month|MonthName|MsgBox|Now|Oct|Remove|RemoveAll|Replace|RGB|Right|Rnd|Round|ScriptEngine|ScriptEngineBuildVersion|ScriptEngineMajorVersion|ScriptEngineMinorVersion|Second|SetLocale|Sgn|Sin|Space|Split|Sqr|StrComp|String|StrReverse|Tan|Time|Timer|TimeSerial|TimeValue|TypeName|UBound|UCase|Unescape|VarType|Weekday|WeekdayName|Year\",\"support.type.vb.asp\":\"vbtrue|vbfalse|vbcr|vbcrlf|vbformfeed|vblf|vbnewline|vbnullchar|vbnullstring|int32|vbtab|vbverticaltab|vbbinarycompare|vbtextcomparevbsunday|vbmonday|vbtuesday|vbwednesday|vbthursday|vbfriday|vbsaturday|vbusesystemdayofweek|vbfirstjan1|vbfirstfourdays|vbfirstfullweek|vbgeneraldate|vblongdate|vbshortdate|vblongtime|vbshorttime|vbobjecterror|vbEmpty|vbNull|vbInteger|vbLong|vbSingle|vbDouble|vbCurrency|vbDate|vbString|vbObject|vbError|vbBoolean|vbVariant|vbDataObject|vbDecimal|vbByte|vbArray\"},\"identifier\",!0);this.$rules={start:[{token:[\"meta.ending-space\"],regex:\"$\"},{token:[null],regex:\"^(?=\\\\t)\",next:\"state_3\"},{token:[null],regex:\"^(?= )\",next:\"state_4\"},{token:[\"text\",\"storage.type.function.asp\",\"text\",\"entity.name.function.asp\",\"text\",\"punctuation.definition.parameters.asp\",\"variable.parameter.function.asp\",\"punctuation.definition.parameters.asp\"],regex:\"^(\\\\s*)(Function|Sub)(\\\\s+)([a-zA-Z_]\\\\w*)(\\\\s*)(\\\\()([^)]*)(\\\\))\"},{token:\"punctuation.definition.comment.asp\",regex:\"'|REM(?=\\\\s|$)\",next:\"comment\",caseInsensitive:!0},{token:\"storage.type.asp\",regex:\"On Error Resume Next|On Error GoTo\",caseInsensitive:!0},{token:\"punctuation.definition.string.begin.asp\",regex:'\"',next:\"string\"},{token:[\"punctuation.definition.variable.asp\"],regex:\"(\\\\$)[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\\\b\\\\s*\"},{token:\"constant.numeric.asp\",regex:\"-?\\\\b(?:(?:0(?:x|X)[0-9a-fA-F]*)|(?:(?:[0-9]+\\\\.?[0-9]*)|(?:\\\\.[0-9]+))(?:(?:e|E)(?:\\\\+|-)?[0-9]+)?)(?:L|l|UL|ul|u|U|F|f)?\\\\b\"},{regex:\"\\\\w+\",token:e},{token:[\"entity.name.function.asp\"],regex:\"(?:(\\\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\\\b)(?=\\\\(\\\\)?))\"},{token:[\"keyword.operator.asp\"],regex:\"\\\\-|\\\\+|\\\\*\\\\/|\\\\>|\\\\<|\\\\=|\\\\&\"}],state_3:[{token:[\"meta.odd-tab.tabs\",\"meta.even-tab.tabs\"],regex:\"(\\\\t)(\\\\t)?\"},{token:\"meta.leading-space\",regex:\"(?=[^\\\\t])\",next:\"start\"},{token:\"meta.leading-space\",regex:\".\",next:\"state_3\"}],state_4:[{token:[\"meta.odd-tab.spaces\",\"meta.even-tab.spaces\"],regex:\"(  )(  )?\"},{token:\"meta.leading-space\",regex:\"(?=[^ ])\",next:\"start\"},{defaultToken:\"meta.leading-space\"}],comment:[{token:\"comment.line.apostrophe.asp\",regex:\"$|(?=(?:%>))\",next:\"start\"},{defaultToken:\"comment.line.apostrophe.asp\"}],string:[{token:\"constant.character.escape.apostrophe.asp\",regex:'\"\"'},{token:\"string.quoted.double.asp\",regex:'\"',next:\"start\"},{defaultToken:\"string.quoted.double.asp\"}]}};r.inherits(s,i),t.VBScriptHighlightRules=s}),ace.define(\"ace/mode/vbscript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/vbscript_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./vbscript_highlight_rules\").VBScriptHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.lineCommentStart=[\"'\",\"REM\"],this.$id=\"ace/mode/vbscript\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-velocity.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=t.supportType=\"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\",u=t.supportFunction=\"rgb|rgba|url|attr|counter|counters\",a=t.supportConstant=\"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\",f=t.supportConstantColor=\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\",l=t.supportConstantFonts=\"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\",c=t.numRe=\"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\",h=t.pseudoElements=\"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\",p=t.pseudoClasses=\"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\",d=function(){var e=this.createKeywordMapper({\"support.function\":u,\"support.constant\":a,\"support.type\":o,\"support.constant.color\":f,\"support.constant.fonts\":l},\"text\",!0);this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"@.*?{\",push:\"media\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],media:[{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"paren.lparen\",regex:\"\\\\{\",push:\"ruleset\"},{token:\"string\",regex:\"\\\\}\",next:\"pop\"},{token:\"keyword\",regex:\"#[a-z0-9-_]+\"},{token:\"variable\",regex:\"\\\\.[a-z0-9-_]+\"},{token:\"string\",regex:\":[a-z0-9-_]+\"},{token:\"constant\",regex:\"[a-z0-9-_]+\"},{caseInsensitive:!0}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"pop\"},{defaultToken:\"comment\"}],ruleset:[{token:\"paren.rparen\",regex:\"\\\\}\",next:\"pop\"},{token:\"comment\",regex:\"\\\\/\\\\*\",push:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:[\"constant.numeric\",\"keyword\"],regex:\"(\"+c+\")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"},{token:\"constant.numeric\",regex:c},{token:\"constant.numeric\",regex:\"#[a-f0-9]{6}\"},{token:\"constant.numeric\",regex:\"#[a-f0-9]{3}\"},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-element.css\"],regex:h},{token:[\"punctuation\",\"entity.other.attribute-name.pseudo-class.css\"],regex:p},{token:[\"support.function\",\"string\",\"support.function\"],regex:\"(url\\\\()(.*)(\\\\))\"},{token:e,regex:\"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={background:{\"#$0\":1},\"background-color\":{\"#$0\":1,transparent:1,fixed:1},\"background-image\":{\"url('/$0')\":1},\"background-repeat\":{repeat:1,\"repeat-x\":1,\"repeat-y\":1,\"no-repeat\":1,inherit:1},\"background-position\":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},\"background-attachment\":{scroll:1,fixed:1},\"background-size\":{cover:1,contain:1},\"background-clip\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},\"background-origin\":{\"border-box\":1,\"padding-box\":1,\"content-box\":1},border:{\"solid $0\":1,\"dashed $0\":1,\"dotted $0\":1,\"#$0\":1},\"border-color\":{\"#$0\":1},\"border-style\":{solid:2,dashed:2,dotted:2,\"double\":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},\"border-collapse\":{collapse:1,separate:1},bottom:{px:1,em:1,\"%\":1},clear:{left:1,right:1,both:1,none:1},color:{\"#$0\":1,\"rgb(#$00,0,0)\":1},cursor:{\"default\":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,\"n-resize\":1,\"ne-resize\":1,\"e-resize\":1,\"se-resize\":1,\"s-resize\":1,\"sw-resize\":1,\"w-resize\":1,\"nw-resize\":1},display:{none:1,block:1,inline:1,\"inline-block\":1,\"table-cell\":1},\"empty-cells\":{show:1,hide:1},\"float\":{left:1,right:1,none:1},\"font-family\":{Arial:2,\"Comic Sans MS\":2,Consolas:2,\"Courier New\":2,Courier:2,Georgia:2,Monospace:2,\"Sans-Serif\":2,\"Segoe UI\":2,Tahoma:2,\"Times New Roman\":2,\"Trebuchet MS\":2,Verdana:1},\"font-size\":{px:1,em:1,\"%\":1},\"font-weight\":{bold:1,normal:1},\"font-style\":{italic:1,normal:1},\"font-variant\":{normal:1,\"small-caps\":1},height:{px:1,em:1,\"%\":1},left:{px:1,em:1,\"%\":1},\"letter-spacing\":{normal:1},\"line-height\":{normal:1},\"list-style-type\":{none:1,disc:1,circle:1,square:1,decimal:1,\"decimal-leading-zero\":1,\"lower-roman\":1,\"upper-roman\":1,\"lower-greek\":1,\"lower-latin\":1,\"upper-latin\":1,georgian:1,\"lower-alpha\":1,\"upper-alpha\":1},margin:{px:1,em:1,\"%\":1},\"margin-right\":{px:1,em:1,\"%\":1},\"margin-left\":{px:1,em:1,\"%\":1},\"margin-top\":{px:1,em:1,\"%\":1},\"margin-bottom\":{px:1,em:1,\"%\":1},\"max-height\":{px:1,em:1,\"%\":1},\"max-width\":{px:1,em:1,\"%\":1},\"min-height\":{px:1,em:1,\"%\":1},\"min-width\":{px:1,em:1,\"%\":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},\"overflow-x\":{hidden:1,visible:1,auto:1,scroll:1},\"overflow-y\":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,\"%\":1},\"padding-top\":{px:1,em:1,\"%\":1},\"padding-right\":{px:1,em:1,\"%\":1},\"padding-bottom\":{px:1,em:1,\"%\":1},\"padding-left\":{px:1,em:1,\"%\":1},\"page-break-after\":{auto:1,always:1,avoid:1,left:1,right:1},\"page-break-before\":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,\"static\":1},right:{px:1,em:1,\"%\":1},\"table-layout\":{fixed:1,auto:1},\"text-decoration\":{none:1,underline:1,\"line-through\":1,blink:1},\"text-align\":{left:1,right:1,center:1,justify:1},\"text-transform\":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,\"%\":1},\"vertical-align\":{top:1,bottom:1},visibility:{hidden:1,visible:1},\"white-space\":{nowrap:1,normal:1,pre:1,\"pre-line\":1,\"pre-wrap\":1},width:{px:1,em:1,\"%\":1},\"word-spacing\":{normal:1},filter:{\"alpha(opacity=$0100)\":1},\"text-shadow\":{\"$02px 2px 2px #777\":1},\"text-overflow\":{\"ellipsis-word\":1,clip:1,ellipsis:1},\"-moz-border-radius\":1,\"-moz-border-radius-topright\":1,\"-moz-border-radius-bottomright\":1,\"-moz-border-radius-topleft\":1,\"-moz-border-radius-bottomleft\":1,\"-webkit-border-radius\":1,\"-webkit-border-top-right-radius\":1,\"-webkit-border-top-left-radius\":1,\"-webkit-border-bottom-right-radius\":1,\"-webkit-border-bottom-left-radius\":1,\"-moz-box-shadow\":1,\"-webkit-box-shadow\":1,transform:{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-moz-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1},\"-webkit-transform\":{\"rotate($00deg)\":1,\"skew($00deg)\":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement(\"c\").style;for(var t in e){if(typeof e[t]!=\"string\")continue;var n=t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e===\"ruleset\"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\\w\\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+\": $0\",meta:\"property\",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\\w\\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]==\"object\"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:\"property value\",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),ace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../../token_iterator\").TokenIterator,u=function(){this.inherit(s),this.add(\"colon\",\"insertion\",function(e,t,n,r,i){if(i===\":\"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\\s+/)&&(a=u.stepBackward());if(a&&a.type===\"support.type\"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===\":\")return{text:\"\",selection:[1,1]};if(!f.substring(s.column).match(/^\\s*;/))return{text:\":;\",selection:[1,1]}}}}),this.add(\"colon\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===\":\"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\\s+/)&&(f=a.stepBackward());if(f&&f.type===\"support.type\"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===\";\")return i.end.column++,i}}}),this.add(\"semicolon\",\"insertion\",function(e,t,n,r,i){if(i===\";\"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===\";\")return{text:\"\",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../worker/worker_client\").WorkerClient,a=e(\"./css_completions\").CssCompletions,f=e(\"./behaviour/css\").CssBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules=\"cStyle\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type==\"comment\")return r;var s=t.match(/^.*\\{\\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u([\"ace\"],\"ace/mode/css_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/css\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./css_highlight_rules\").CssHighlightRules,o=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,u=e(\"./xml_highlight_rules\").XmlHighlightRules,a=i.createMap({a:\"anchor\",button:\"form\",form:\"form\",img:\"image\",input:\"form\",label:\"form\",option:\"form\",script:\"script\",select:\"form\",textarea:\"form\",style:\"style\",table:\"table\",tbody:\"table\",td:\"table\",tfoot:\"table\",th:\"table\",tr:\"table\"}),f=function(){u.call(this),this.addRules({attributes:[{include:\"tag_whitespace\"},{token:\"entity.other.attribute-name.xml\",regex:\"[-_a-zA-Z0-9:.]+\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\",push:[{include:\"tag_whitespace\"},{token:\"string.unquoted.attribute-value.html\",regex:\"[^<>='\\\"`\\\\s]+\",next:\"pop\"},{token:\"empty\",regex:\"\",next:\"pop\"}]},{include:\"attribute_value\"}],tag:[{token:function(e,t){var n=a[t];return[\"meta.tag.punctuation.\"+(e==\"<\"?\"\":\"end-\")+\"tag-open.xml\",\"meta.tag\"+(n?\".\"+n:\"\")+\".tag-name.xml\"]},regex:\"(</?)([-_a-zA-Z0-9:.]+)\",next:\"tag_stuff\"}],tag_stuff:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}),this.embedTagRules(s,\"css-\",\"style\"),this.embedTagRules((new o({noJSX:!0})).getRules(),\"js-\",\"script\"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!=\"string\"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):\"\"},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./mixed\").FoldMode,s=e(\"./xml\").FoldMode,o=e(\"./cstyle\").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{\"js-\":new o,\"css-\":new o})};r.inherits(u,i)}),ace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function f(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"tag-name\"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,\"attribute-name\"))i=n.stepBackward();if(i)return i.value}var r=e(\"../token_iterator\").TokenIterator,i=[\"accesskey\",\"class\",\"contenteditable\",\"contextmenu\",\"dir\",\"draggable\",\"dropzone\",\"hidden\",\"id\",\"inert\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],s=[\"onabort\",\"onblur\",\"oncancel\",\"oncanplay\",\"oncanplaythrough\",\"onchange\",\"onclick\",\"onclose\",\"oncontextmenu\",\"oncuechange\",\"ondblclick\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onended\",\"onerror\",\"onfocus\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadstart\",\"onmousedown\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onpause\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onreset\",\"onscroll\",\"onseeked\",\"onseeking\",\"onselect\",\"onshow\",\"onstalled\",\"onsubmit\",\"onsuspend\",\"ontimeupdate\",\"onvolumechange\",\"onwaiting\"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{\"text/css\":1,\"image/png\":1,\"image/jpeg\":1,\"image/gif\":1},sizes:1},meta:{\"http-equiv\":{\"content-type\":1},name:{description:1,keywords:1},content:{\"text/html; charset=UTF-8\":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{\"text/javascript\":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},\"var\":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{\"allow-same-origin\":1,\"allow-top-navigation\":1,\"allow-forms\":1,\"allow-scripts\":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,\"default\":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{\"accept-charset\":1,action:1,autocomplete:1,enctype:{\"multipart/form-data\":1,\"application/x-www-form-urlencoded\":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,\"for\":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,\"datetime-local\":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{\"application/x-www-form-urlencoded\":1,\"multipart/form-data\":1,\"text/plain\":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{\"for\":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,\"tag-name\")||f(i,\"tag-open\")||f(i,\"end-tag-open\"))return this.getTagCompletions(e,t,n,r);if(f(i,\"tag-whitespace\")||f(i,\"attribute-name\"))return this.getAttributeCompletions(e,t,n,r);if(f(i,\"attribute-value\"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[A-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:\"tag\",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'=\"$0\"',meta:\"attribute\",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]==\"object\"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:\"attribute value\",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=[\"Aacute;\",\"aacute;\",\"Acirc;\",\"acirc;\",\"acute;\",\"AElig;\",\"aelig;\",\"Agrave;\",\"agrave;\",\"alefsym;\",\"Alpha;\",\"alpha;\",\"amp;\",\"and;\",\"ang;\",\"Aring;\",\"aring;\",\"asymp;\",\"Atilde;\",\"atilde;\",\"Auml;\",\"auml;\",\"bdquo;\",\"Beta;\",\"beta;\",\"brvbar;\",\"bull;\",\"cap;\",\"Ccedil;\",\"ccedil;\",\"cedil;\",\"cent;\",\"Chi;\",\"chi;\",\"circ;\",\"clubs;\",\"cong;\",\"copy;\",\"crarr;\",\"cup;\",\"curren;\",\"Dagger;\",\"dagger;\",\"dArr;\",\"darr;\",\"deg;\",\"Delta;\",\"delta;\",\"diams;\",\"divide;\",\"Eacute;\",\"eacute;\",\"Ecirc;\",\"ecirc;\",\"Egrave;\",\"egrave;\",\"empty;\",\"emsp;\",\"ensp;\",\"Epsilon;\",\"epsilon;\",\"equiv;\",\"Eta;\",\"eta;\",\"ETH;\",\"eth;\",\"Euml;\",\"euml;\",\"euro;\",\"exist;\",\"fnof;\",\"forall;\",\"frac12;\",\"frac14;\",\"frac34;\",\"frasl;\",\"Gamma;\",\"gamma;\",\"ge;\",\"gt;\",\"hArr;\",\"harr;\",\"hearts;\",\"hellip;\",\"Iacute;\",\"iacute;\",\"Icirc;\",\"icirc;\",\"iexcl;\",\"Igrave;\",\"igrave;\",\"image;\",\"infin;\",\"int;\",\"Iota;\",\"iota;\",\"iquest;\",\"isin;\",\"Iuml;\",\"iuml;\",\"Kappa;\",\"kappa;\",\"Lambda;\",\"lambda;\",\"lang;\",\"laquo;\",\"lArr;\",\"larr;\",\"lceil;\",\"ldquo;\",\"le;\",\"lfloor;\",\"lowast;\",\"loz;\",\"lrm;\",\"lsaquo;\",\"lsquo;\",\"lt;\",\"macr;\",\"mdash;\",\"micro;\",\"middot;\",\"minus;\",\"Mu;\",\"mu;\",\"nabla;\",\"nbsp;\",\"ndash;\",\"ne;\",\"ni;\",\"not;\",\"notin;\",\"nsub;\",\"Ntilde;\",\"ntilde;\",\"Nu;\",\"nu;\",\"Oacute;\",\"oacute;\",\"Ocirc;\",\"ocirc;\",\"OElig;\",\"oelig;\",\"Ograve;\",\"ograve;\",\"oline;\",\"Omega;\",\"omega;\",\"Omicron;\",\"omicron;\",\"oplus;\",\"or;\",\"ordf;\",\"ordm;\",\"Oslash;\",\"oslash;\",\"Otilde;\",\"otilde;\",\"otimes;\",\"Ouml;\",\"ouml;\",\"para;\",\"part;\",\"permil;\",\"perp;\",\"Phi;\",\"phi;\",\"Pi;\",\"pi;\",\"piv;\",\"plusmn;\",\"pound;\",\"Prime;\",\"prime;\",\"prod;\",\"prop;\",\"Psi;\",\"psi;\",\"quot;\",\"radic;\",\"rang;\",\"raquo;\",\"rArr;\",\"rarr;\",\"rceil;\",\"rdquo;\",\"real;\",\"reg;\",\"rfloor;\",\"Rho;\",\"rho;\",\"rlm;\",\"rsaquo;\",\"rsquo;\",\"sbquo;\",\"Scaron;\",\"scaron;\",\"sdot;\",\"sect;\",\"shy;\",\"Sigma;\",\"sigma;\",\"sigmaf;\",\"sim;\",\"spades;\",\"sub;\",\"sube;\",\"sum;\",\"sup;\",\"sup1;\",\"sup2;\",\"sup3;\",\"supe;\",\"szlig;\",\"Tau;\",\"tau;\",\"there4;\",\"Theta;\",\"theta;\",\"thetasym;\",\"thinsp;\",\"THORN;\",\"thorn;\",\"tilde;\",\"times;\",\"trade;\",\"Uacute;\",\"uacute;\",\"uArr;\",\"uarr;\",\"Ucirc;\",\"ucirc;\",\"Ugrave;\",\"ugrave;\",\"uml;\",\"upsih;\",\"Upsilon;\",\"upsilon;\",\"Uuml;\",\"uuml;\",\"weierp;\",\"Xi;\",\"xi;\",\"Yacute;\",\"yacute;\",\"yen;\",\"Yuml;\",\"yuml;\",\"Zeta;\",\"zeta;\",\"zwj;\",\"zwnj;\"];return i.map(function(e){return{caption:e,snippet:e,meta:\"html entity\",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./javascript\").Mode,u=e(\"./css\").Mode,a=e(\"./html_highlight_rules\").HtmlHighlightRules,f=e(\"./behaviour/xml\").XmlBehaviour,l=e(\"./folding/html\").FoldMode,c=e(\"./html_completions\").HtmlCompletions,h=e(\"../worker/worker_client\").WorkerClient,p=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"menuitem\",\"param\",\"source\",\"track\",\"wbr\"],d=[\"li\",\"dt\",\"dd\",\"p\",\"rt\",\"rp\",\"optgroup\",\"option\",\"colgroup\",\"td\",\"th\"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({\"js-\":o,\"css-\":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:\"<!--\",end:\"-->\"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h([\"ace\"],\"ace/mode/html_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call(\"setOptions\",[{context:this.fragmentContext}]),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/html\"}.call(v.prototype),t.Mode=v}),ace.define(\"ace/mode/velocity_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/html_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text_highlight_rules\").TextHighlightRules,o=e(\"./html_highlight_rules\").HtmlHighlightRules,u=function(){o.call(this);var e=i.arrayToMap(\"true|false|null\".split(\"|\")),t=i.arrayToMap(\"_DateTool|_DisplayTool|_EscapeTool|_FieldTool|_MathTool|_NumberTool|_SerializerTool|_SortTool|_StringTool|_XPathTool\".split(\"|\")),n=i.arrayToMap(\"$contentRoot|$foreach\".split(\"|\")),r=i.arrayToMap(\"#set|#macro|#include|#parse|#if|#elseif|#else|#foreach|#break|#end|#stop\".split(\"|\"));this.$rules.start.push({token:\"comment\",regex:\"##.*$\"},{token:\"comment.block\",regex:\"#\\\\*\",next:\"vm_comment\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:function(i){return r.hasOwnProperty(i)?\"keyword\":e.hasOwnProperty(i)?\"constant.language\":n.hasOwnProperty(i)?\"variable.language\":t.hasOwnProperty(i)||t.hasOwnProperty(i.substring(1))?\"support.function\":i==\"debugger\"?\"invalid.deprecated\":i.match(/^(\\$[a-zA-Z_][a-zA-Z0-9_]*)$/)?\"variable\":\"identifier\"},regex:\"[a-zA-Z$#][a-zA-Z0-9_]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|&|\\\\*|\\\\-|\\\\+|=|!=|<=|>=|<|>|&&|\\\\|\\\\|\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}),this.$rules.vm_comment=[{token:\"comment\",regex:\"\\\\*#|-->\",next:\"start\"},{defaultToken:\"comment\"}],this.$rules.vm_start=[{token:\"variable\",regex:\"}\",next:\"pop\"},{token:\"string.regexp\",regex:\"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:function(i){return r.hasOwnProperty(i)?\"keyword\":e.hasOwnProperty(i)?\"constant.language\":n.hasOwnProperty(i)?\"variable.language\":t.hasOwnProperty(i)||t.hasOwnProperty(i.substring(1))?\"support.function\":i==\"debugger\"?\"invalid.deprecated\":i.match(/^(\\$[a-zA-Z_$][a-zA-Z0-9_]*)$/)?\"variable\":\"identifier\"},regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"!|&|\\\\*|\\\\-|\\\\+|=|!=|<=|>=|<|>|&&|\\\\|\\\\|\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}];for(var s in this.$rules)this.$rules[s].unshift({token:\"variable\",regex:\"\\\\${\",push:\"vm_start\"});this.normalizeRules()};r.inherits(u,s),t.VelocityHighlightRules=u}),ace.define(\"ace/mode/folding/velocity\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"##\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"##\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"##\"&&s[i]==\"##\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"##\"&&o[i]==\"##\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/velocity\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/velocity_highlight_rules\",\"ace/mode/folding/velocity\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./html\").Mode,s=e(\"./velocity_highlight_rules\").VelocityHighlightRules,o=e(\"./folding/velocity\").FoldMode,u=function(){i.call(this),this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart=\"##\",this.blockComment={start:\"#*\",end:\"*#\"},this.$id=\"ace/mode/velocity\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-verilog.js",
    "content": "ace.define(\"ace/mode/verilog_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"always|and|assign|automatic|begin|buf|bufif0|bufif1|case|casex|casez|cell|cmos|config|deassign|default|defparam|design|disable|edge|else|end|endcase|endconfig|endfunction|endgenerate|endmodule|endprimitive|endspecify|endtable|endtask|event|for|force|forever|fork|function|generate|genvar|highz0|highz1|if|ifnone|incdir|include|initial|inout|input|instance|integer|join|large|liblist|library|localparam|macromodule|medium|module|nand|negedge|nmos|nor|noshowcancelled|not|notif0|notif1|or|output|parameter|pmos|posedge|primitive|pull0|pull1|pulldown|pullup|pulsestyle_onevent|pulsestyle_ondetect|rcmos|real|realtime|reg|release|repeat|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|showcancelled|signed|small|specify|specparam|strong0|strong1|supply0|supply1|table|task|time|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|unsigned|use|vectored|wait|wand|weak0|weak1|while|wire|wor|xnor|xorbegin|bufif0|bufif1|case|casex|casez|config|else|end|endcase|endconfig|endfunction|endgenerate|endmodule|endprimitive|endspecify|endtable|endtask|for|forever|function|generate|if|ifnone|macromodule|module|primitive|repeat|specify|table|task|while\",t=\"true|false|null\",n=\"count|min|max|avg|sum|rank|now|coalesce|main\",r=this.createKeywordMapper({\"support.function\":n,keyword:e,\"constant.language\":t},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\"//.*$\"},{token:\"comment.start\",regex:\"/\\\\*\",next:[{token:\"comment.end\",regex:\"\\\\*/\"},{defaultToken:\"comment\"}]},{token:\"string\",regex:'\".*?\"'},{token:\"string\",regex:\"'.*?'\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\"},{token:\"paren.lparen\",regex:\"[\\\\(]\"},{token:\"paren.rparen\",regex:\"[\\\\)]\"},{token:\"text\",regex:\"\\\\s+\"}]},this.normalizeRules()};r.inherits(s,i),t.VerilogHighlightRules=s}),ace.define(\"ace/mode/verilog\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/verilog_highlight_rules\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./verilog_highlight_rules\").VerilogHighlightRules,o=e(\"../range\").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.$id=\"ace/mode/verilog\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-vhdl.js",
    "content": "ace.define(\"ace/mode/vhdl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){var e=\"access|after|ailas|all|architecture|assert|attribute|begin|block|buffer|bus|case|component|configuration|disconnect|downto|else|elsif|end|entity|file|for|function|generate|generic|guarded|if|impure|in|inertial|inout|is|label|linkage|literal|loop|mapnew|next|of|on|open|others|out|port|process|pure|range|record|reject|report|return|select|shared|subtype|then|to|transport|type|unaffected|united|until|wait|when|while|with\",t=\"bit|bit_vector|boolean|character|integer|line|natural|positive|real|register|severity|signal|signed|std_logic|std_logic_vector|string||text|time|unsigned|variable\",n=\"array|constant\",r=\"abs|and|mod|nand|nor|not|rem|rol|ror|sla|sll|srasrl|xnor|xor\",i=\"true|false|null\",s=this.createKeywordMapper({\"keyword.operator\":r,keyword:e,\"constant.language\":i,\"storage.modifier\":n,\"storage.type\":t},\"identifier\",!0);this.$rules={start:[{token:\"comment\",regex:\"--.*$\"},{token:\"string\",regex:'\".*?\"'},{token:\"string\",regex:\"'.*?'\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"keyword\",regex:\"\\\\s*(?:library|package|use)\\\\b\"},{token:s,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"&|\\\\*|\\\\+|\\\\-|\\\\/|<|=|>|\\\\||=>|\\\\*\\\\*|:=|\\\\/=|>=|<=|<>\"},{token:\"punctuation.operator\",regex:\"\\\\'|\\\\:|\\\\,|\\\\;|\\\\.\"},{token:\"paren.lparen\",regex:\"[[(]\"},{token:\"paren.rparen\",regex:\"[\\\\])]\"},{token:\"text\",regex:\"\\\\s+\"}]}};r.inherits(s,i),t.VHDLHighlightRules=s}),ace.define(\"ace/mode/vhdl\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/vhdl_highlight_rules\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./vhdl_highlight_rules\").VHDLHighlightRules,o=e(\"../range\").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart=\"--\",this.$id=\"ace/mode/vhdl\"}.call(u.prototype),t.Mode=u})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-wollok.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},s.getTagRule(),{defaultToken:\"comment.doc\",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:\"comment.doc.tag.storage.type\",regex:\"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"}},s.getStartRule=function(e){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:e}},s.getEndRule=function(e){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:e}},t.DocCommentHighlightRules=s}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";function a(){var e=o.replace(\"\\\\d\",\"\\\\d\\\\-\"),t={onMatch:function(e,t,n){var r=e.charAt(1)==\"/\"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:\"meta.tag.punctuation.\"+(r==1?\"\":\"end-\")+\"tag-open.xml\",value:e.slice(0,r)},{type:\"meta.tag.tag-name.xml\",value:e.substr(r)}]},regex:\"</?\"+e+\"\",next:\"jsxAttributes\",nextState:\"jsx\"};this.$rules.start.unshift(t);var n={regex:\"{\",token:\"paren.quasi.start\",push:\"start\"};this.$rules.jsx=[n,t,{include:\"reference\"},{defaultToken:\"string\"}],this.$rules.jsxAttributes=[{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||\"start\",[{type:this.token,value:e}]},nextState:\"jsx\"},n,f(\"jsxAttributes\"),{token:\"entity.other.attribute-name.xml\",regex:e},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"},{token:\"string.attribute-value.xml\",regex:\"'\",stateName:\"jsx_attr_q\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',stateName:\"jsx_attr_qq\",push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"reference\"},{defaultToken:\"string.attribute-value.xml\"}]},t],this.$rules.reference=[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}]}function f(e){return[{token:\"comment\",regex:/\\/\\*/,next:[i.getTagRule(),{token:\"comment\",regex:\"\\\\*\\\\/\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]},{token:\"comment\",regex:\"\\\\/\\\\/\",next:[i.getTagRule(),{token:\"comment\",regex:\"$|^\",next:e||\"pop\"},{defaultToken:\"comment\",caseInsensitive:!0}]}]}var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=\"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\",u=function(e){var t=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),n=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",r=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[i.getStartRule(\"doc-start\"),f(\"no_regex\"),{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+o+\")(\\\\.)(prototype)(\\\\.)(\"+o+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+o+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+n+\")\\\\b\",next:\"start\"},{token:[\"support.constant\"],regex:/that\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/},{token:t,regex:o},{token:\"punctuation.operator\",regex:/[.](?![.])/,next:\"property\"},{token:\"keyword.operator\",regex:/--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,next:\"start\"},{token:\"punctuation.operator\",regex:/[?:,;.]/,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"comment\",regex:/^#!.*$/}],property:[{token:\"text\",regex:\"\\\\s+\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+o+\")(\\\\.)(\"+o+\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"punctuation.operator\",regex:/[.](?![.])/},{token:\"support.function\",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:\"support.function.dom\",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:\"support.constant\",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:\"identifier\",regex:o},{regex:\"\",token:\"empty\",next:\"no_regex\"}],start:[i.getStartRule(\"doc-start\"),f(\"start\"),{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/[sxngimy]*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.charclass.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:o},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],qqstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:r},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:\"[{}]\",onMatch:function(e,t,n){this.next=e==\"{\"?this.nextState:\"\";if(e==\"{\"&&n.length)n.unshift(\"start\",t);else if(e==\"}\"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf(\"string\")!=-1||this.next.indexOf(\"jsx\")!=-1)return\"paren.quasi.end\"}return e==\"{\"?\"paren.lparen\":\"paren.rparen\"},nextState:\"start\"},{token:\"string.quasi.start\",regex:/`/,push:[{token:\"constant.language.escape\",regex:r},{token:\"paren.quasi.start\",regex:/\\${/,push:\"start\"},{token:\"string.quasi.end\",regex:/`/,next:\"pop\"},{defaultToken:\"string.quasi\"}]}),(!e||!e.noJSX)&&a.call(this);this.embedRules(i,\"doc-\",[i.getEndRule(\"no_regex\")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./javascript_highlight_rules\").JavaScriptHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"../range\").Range,a=e(\"../worker/worker_client\").WorkerClient,f=e(\"./behaviour/cstyle\").CstyleBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type==\"comment\")return r;if(e==\"start\"||e==\"no_regex\"){var u=t.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);u&&(r+=n)}else if(e==\"doc-start\"){if(o==\"start\"||o==\"no_regex\")return\"\";var u=t.match(/^\\s*(\\/?)\\*/);u&&(u[1]&&(r+=\" \"),r+=\"* \")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/javascript_worker\",\"JavaScriptWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/javascript\"}.call(c.prototype),t.Mode=c}),ace.define(\"ace/mode/wollok_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,s=e(\"./text_highlight_rules\").TextHighlightRules,o=function(){var e=\"test|package|inherits|false|import|else|or|class|and|not|native|override|program|this|try|val|var|catch|object|super|throw|if|null|return|true|new|method\",t=\"null|assert|console\",n=\"Object|Pair|String|Boolean|Number|Integer|Double|Collection|Set|List|Exception|Range|StackTraceElement\",r=this.createKeywordMapper({\"variable.language\":\"this\",keyword:e,\"constant.language\":t,\"support.function\":n},\"identifier\");this.$rules={start:[{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},i.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:/0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d[\\d_]*(?:(?:\\.[\\d_]*)?(?:[eE][+-]?[\\d_]+)?)?[LlSsDdFfYy]?\\b/},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:r,regex:\"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"},{token:\"keyword.operator\",regex:\"===|&&|\\\\*=|\\\\.\\\\.|\\\\*\\\\*|#|!|%|\\\\*|\\\\?:|\\\\+|\\\\/|,|\\\\+=|\\\\-|\\\\.\\\\.<|!==|:|\\\\/=|\\\\?\\\\.|\\\\+\\\\+|>|=|<|>=|=>|==|\\\\]|\\\\[|\\\\-=|\\\\->|\\\\||\\\\-\\\\-|<>|!=|%=|\\\\|\"},{token:\"lparen\",regex:\"[[({]\"},{token:\"rparen\",regex:\"[\\\\])}]\"},{token:\"text\",regex:\"\\\\s+\"}],comment:[{token:\"comment\",regex:\".*?\\\\*\\\\/\",next:\"start\"},{token:\"comment\",regex:\".+\"}]},this.embedRules(i,\"doc-\",[i.getEndRule(\"start\")])};r.inherits(o,s),t.WollokHighlightRules=o}),ace.define(\"ace/mode/wollok\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/wollok_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./javascript\").Mode,s=e(\"./wollok_highlight_rules\").WollokHighlightRules,o=function(){i.call(this),this.HighlightRules=s};r.inherits(o,i),function(){this.createWorker=function(e){return null},this.$id=\"ace/mode/wollok\"}.call(o.prototype),t.Mode=o})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-xml.js",
    "content": "ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(e){var t=\"[_:a-zA-Z\\u00c0-\\uffff][-_:.a-zA-Z0-9\\u00c0-\\uffff]*\";this.$rules={start:[{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\",next:\"cdata\"},{token:[\"punctuation.xml-decl.xml\",\"keyword.xml-decl.xml\"],regex:\"(<\\\\?)(xml)(?=[\\\\s])\",next:\"xml_decl\",caseInsensitive:!0},{token:[\"punctuation.instruction.xml\",\"keyword.instruction.xml\"],regex:\"(<\\\\?)(\"+t+\")\",next:\"processing_instruction\"},{token:\"comment.xml\",regex:\"<\\\\!--\",next:\"comment\"},{token:[\"xml-pe.doctype.xml\",\"xml-pe.doctype.xml\"],regex:\"(<\\\\!)(DOCTYPE)(?=[\\\\s])\",next:\"doctype\",caseInsensitive:!0},{include:\"tag\"},{token:\"text.end-tag-open.xml\",regex:\"</\"},{token:\"text.tag-open.xml\",regex:\"<\"},{include:\"reference\"},{defaultToken:\"text.xml\"}],xml_decl:[{token:\"entity.other.attribute-name.decl-attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.decl-attribute-equals.xml\",regex:\"=\"},{include:\"whitespace\"},{include:\"string\"},{token:\"punctuation.xml-decl.xml\",regex:\"\\\\?>\",next:\"start\"}],processing_instruction:[{token:\"punctuation.instruction.xml\",regex:\"\\\\?>\",next:\"start\"},{defaultToken:\"instruction.xml\"}],doctype:[{include:\"whitespace\"},{include:\"string\"},{token:\"xml-pe.doctype.xml\",regex:\">\",next:\"start\"},{token:\"xml-pe.xml\",regex:\"[-_a-zA-Z0-9:]+\"},{token:\"punctuation.int-subset\",regex:\"\\\\[\",push:\"int_subset\"}],int_subset:[{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"punctuation.int-subset.xml\",regex:\"]\",next:\"pop\"},{token:[\"punctuation.markup-decl.xml\",\"keyword.markup-decl.xml\"],regex:\"(<\\\\!)(\"+t+\")\",push:[{token:\"text\",regex:\"\\\\s+\"},{token:\"punctuation.markup-decl.xml\",regex:\">\",next:\"pop\"},{include:\"string\"}]}],cdata:[{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\",next:\"start\"},{token:\"text.xml\",regex:\"\\\\s+\"},{token:\"text.xml\",regex:\"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}],comment:[{token:\"comment.xml\",regex:\"-->\",next:\"start\"},{defaultToken:\"comment.xml\"}],reference:[{token:\"constant.language.escape.reference.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],attr_reference:[{token:\"constant.language.escape.reference.attribute-value.xml\",regex:\"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"}],tag:[{token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.tag-name.xml\"],regex:\"(?:(<)|(</))((?:\"+t+\":)?\"+t+\")\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\"}]}],tag_whitespace:[{token:\"text.tag-whitespace.xml\",regex:\"\\\\s+\"}],whitespace:[{token:\"text.whitespace.xml\",regex:\"\\\\s+\"}],string:[{token:\"string.xml\",regex:\"'\",push:[{token:\"string.xml\",regex:\"'\",next:\"pop\"},{defaultToken:\"string.xml\"}]},{token:\"string.xml\",regex:'\"',push:[{token:\"string.xml\",regex:'\"',next:\"pop\"},{defaultToken:\"string.xml\"}]}],attributes:[{token:\"entity.other.attribute-name.xml\",regex:\"(?:\"+t+\":)?\"+t+\"\"},{token:\"keyword.operator.attribute-equals.xml\",regex:\"=\"},{include:\"tag_whitespace\"},{include:\"attribute_value\"}],attribute_value:[{token:\"string.attribute-value.xml\",regex:\"'\",push:[{token:\"string.attribute-value.xml\",regex:\"'\",next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]},{token:\"string.attribute-value.xml\",regex:'\"',push:[{token:\"string.attribute-value.xml\",regex:'\"',next:\"pop\"},{include:\"attr_reference\"},{defaultToken:\"string.attribute-value.xml\"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:[\"meta.tag.punctuation.tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(<)(\"+n+\"(?=\\\\s|>|$))\",next:[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:t+\"start\"}]}),this.$rules[n+\"-end\"]=[{include:\"attributes\"},{token:\"meta.tag.punctuation.tag-close.xml\",regex:\"/?>\",next:\"start\",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:[\"meta.tag.punctuation.end-tag-open.xml\",\"meta.tag.\"+n+\".tag-name.xml\"],regex:\"(</)(\"+n+\"(?=\\\\s|>|$))\",next:n+\"-end\"},{token:\"string.cdata.xml\",regex:\"<\\\\!\\\\[CDATA\\\\[\"},{token:\"string.cdata.xml\",regex:\"\\\\]\\\\]>\"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function l(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../../lib/lang\"),s=e(\"../../range\").Range,o=e(\"./fold_mode\").FoldMode,u=e(\"../../token_iterator\").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName=\"\",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==\"markbeginend\"?\"end\":\"\":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?\"\":this._findEndTagInLine(e,n,r.tagName,r.end.column)?\"\":\"start\":\"\"},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,\"tag-open\")){r.end.column=r.start.column+s.value.length,r.closing=l(s,\"end-tag-open\"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,\"tag-close\")){r.selfClosing=s.value==\"/>\";break}}return r}if(l(s,\"tag-close\"))return r.selfClosing=s.value==\"/>\",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,\"end-tag-open\")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,\"tag-open\"))n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,\"tag-name\"))n.tagName=t.value;else if(l(t,\"tag-close\"))return n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,\"tag-open\"))return n.closing=l(t,\"end-tag-open\"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,\"tag-name\")?n.tagName=t.value:l(t,\"tag-close\")&&(n.selfClosing=t.value==\"/>\",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return null;var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),ace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"./text\").Mode,o=e(\"./xml_highlight_rules\").XmlHighlightRules,u=e(\"./behaviour/xml\").XmlBehaviour,a=e(\"./folding/xml\").FoldMode,f=e(\"../worker/worker_client\").WorkerClient,l=function(){this.HighlightRules=o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,s),function(){this.voidElements=i.arrayToMap([]),this.blockComment={start:\"<!--\",end:\"-->\"},this.createWorker=function(e){var t=new f([\"ace\"],\"ace/mode/xml_worker\",\"Worker\");return t.attachToDocument(e.getDocument()),t.on(\"error\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/xml\"}.call(l.prototype),t.Mode=l})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-xquery.js",
    "content": "ace.define(\"ace/mode/xquery/xquery_lexer\",[\"require\",\"exports\",\"module\"],function(e,t,n){n.exports=function r(t,n,i){function s(u,a){if(!n[u]){if(!t[u]){var f=typeof e==\"function\"&&e;if(!a&&f)return f(u,!0);if(o)return o(u,!0);throw new Error(\"Cannot find module '\"+u+\"'\")}var l=n[u]={exports:{}};t[u][0].call(l.exports,function(e){var n=t[u][1][e];return s(n?n:e)},l,l.exports,r,t,n,i)}return n[u].exports}var o=typeof e==\"function\"&&e;for(var u=0;u<i.length;u++)s(i[u]);return s}({1:[function(e,t,n){var r=n.XQueryTokenizer=function i(e,t){function r(e,t){E=t,S=e,x=e.length,s(0,0,0)}function s(e,t,n){m=t,g=t,y=e,b=t,w=n,N=n,E.reset(S)}function o(){E.startNonterminal(\"EQName\",g);switch(y){case 77:f(77);break;case 91:f(91);break;case 115:f(115);break;case 116:f(116);break;case 119:f(119);break;case 140:f(140);break;case 147:f(147);break;case 160:f(160);break;case 180:f(180);break;case 186:f(186);break;case 211:f(211);break;case 221:f(221);break;case 222:f(222);break;case 238:f(238);break;case 239:f(239);break;case 248:f(248);break;default:u()}E.endNonterminal(\"EQName\",g)}function u(){E.startNonterminal(\"FunctionName\",g);switch(y){case 14:f(14);break;case 65:f(65);break;case 68:f(68);break;case 69:f(69);break;case 70:f(70);break;case 74:f(74);break;case 75:f(75);break;case 79:f(79);break;case 83:f(83);break;case 84:f(84);break;case 85:f(85);break;case 88:f(88);break;case 89:f(89);break;case 98:f(98);break;case 100:f(100);break;case 103:f(103);break;case 104:f(104);break;case 105:f(105);break;case 106:f(106);break;case 107:f(107);break;case 108:f(108);break;case 113:f(113);break;case 114:f(114);break;case 117:f(117);break;case 118:f(118);break;case 121:f(121);break;case 123:f(123);break;case 124:f(124);break;case 126:f(126);break;case 129:f(129);break;case 130:f(130);break;case 131:f(131);break;case 132:f(132);break;case 141:f(141);break;case 143:f(143);break;case 145:f(145);break;case 146:f(146);break;case 148:f(148);break;case 154:f(154);break;case 155:f(155);break;case 157:f(157);break;case 158:f(158);break;case 159:f(159);break;case 165:f(165);break;case 167:f(167);break;case 169:f(169);break;case 173:f(173);break;case 175:f(175);break;case 176:f(176);break;case 177:f(177);break;case 179:f(179);break;case 181:f(181);break;case 193:f(193);break;case 195:f(195);break;case 196:f(196);break;case 197:f(197);break;case 201:f(201);break;case 207:f(207);break;case 208:f(208);break;case 213:f(213);break;case 214:f(214);break;case 215:f(215);break;case 219:f(219);break;case 224:f(224);break;case 230:f(230);break;case 231:f(231);break;case 232:f(232);break;case 243:f(243);break;case 244:f(244);break;case 245:f(245);break;case 249:f(249);break;case 251:f(251);break;case 255:f(255);break;case 261:f(261);break;case 265:f(265);break;case 269:f(269);break;case 67:f(67);break;case 76:f(76);break;case 78:f(78);break;case 80:f(80);break;case 81:f(81);break;case 86:f(86);break;case 93:f(93);break;case 96:f(96);break;case 97:f(97);break;case 99:f(99);break;case 101:f(101);break;case 120:f(120);break;case 127:f(127);break;case 128:f(128);break;case 136:f(136);break;case 149:f(149);break;case 150:f(150);break;case 156:f(156);break;case 166:f(166);break;case 187:f(187);break;case 194:f(194);break;case 198:f(198);break;case 217:f(217);break;case 220:f(220);break;case 223:f(223);break;case 229:f(229);break;case 235:f(235);break;case 246:f(246);break;case 247:f(247);break;case 252:f(252);break;case 256:f(256);break;case 257:f(257);break;case 258:f(258);break;case 262:f(262);break;case 92:f(92);break;case 171:f(171);break;default:f(216)}E.endNonterminal(\"FunctionName\",g)}function a(){E.startNonterminal(\"NCName\",g);switch(y){case 26:f(26);break;case 65:f(65);break;case 70:f(70);break;case 74:f(74);break;case 75:f(75);break;case 79:f(79);break;case 83:f(83);break;case 84:f(84);break;case 85:f(85);break;case 89:f(89);break;case 100:f(100);break;case 104:f(104);break;case 108:f(108);break;case 113:f(113);break;case 117:f(117);break;case 118:f(118);break;case 121:f(121);break;case 123:f(123);break;case 126:f(126);break;case 132:f(132);break;case 141:f(141);break;case 143:f(143);break;case 145:f(145);break;case 146:f(146);break;case 155:f(155);break;case 157:f(157);break;case 158:f(158);break;case 159:f(159);break;case 167:f(167);break;case 169:f(169);break;case 173:f(173);break;case 175:f(175);break;case 176:f(176);break;case 181:f(181);break;case 193:f(193);break;case 195:f(195);break;case 196:f(196);break;case 215:f(215);break;case 219:f(219);break;case 231:f(231);break;case 232:f(232);break;case 243:f(243);break;case 244:f(244);break;case 249:f(249);break;case 261:f(261);break;case 265:f(265);break;case 68:f(68);break;case 69:f(69);break;case 77:f(77);break;case 88:f(88);break;case 91:f(91);break;case 98:f(98);break;case 103:f(103);break;case 105:f(105);break;case 106:f(106);break;case 107:f(107);break;case 114:f(114);break;case 115:f(115);break;case 116:f(116);break;case 119:f(119);break;case 124:f(124);break;case 129:f(129);break;case 130:f(130);break;case 131:f(131);break;case 140:f(140);break;case 147:f(147);break;case 148:f(148);break;case 154:f(154);break;case 160:f(160);break;case 165:f(165);break;case 177:f(177);break;case 179:f(179);break;case 180:f(180);break;case 186:f(186);break;case 197:f(197);break;case 201:f(201);break;case 207:f(207);break;case 208:f(208);break;case 211:f(211);break;case 213:f(213);break;case 214:f(214);break;case 221:f(221);break;case 222:f(222);break;case 224:f(224);break;case 230:f(230);break;case 238:f(238);break;case 239:f(239);break;case 245:f(245);break;case 248:f(248);break;case 251:f(251);break;case 255:f(255);break;case 257:f(257);break;case 269:f(269);break;case 67:f(67);break;case 76:f(76);break;case 78:f(78);break;case 80:f(80);break;case 81:f(81);break;case 86:f(86);break;case 93:f(93);break;case 96:f(96);break;case 97:f(97);break;case 99:f(99);break;case 101:f(101);break;case 120:f(120);break;case 127:f(127);break;case 128:f(128);break;case 136:f(136);break;case 149:f(149);break;case 150:f(150);break;case 156:f(156);break;case 166:f(166);break;case 187:f(187);break;case 194:f(194);break;case 198:f(198);break;case 217:f(217);break;case 220:f(220);break;case 223:f(223);break;case 229:f(229);break;case 235:f(235);break;case 246:f(246);break;case 247:f(247);break;case 252:f(252);break;case 256:f(256);break;case 258:f(258);break;case 262:f(262);break;case 92:f(92);break;case 171:f(171);break;default:f(216)}E.endNonterminal(\"NCName\",g)}function f(e){y==e?(l(),E.terminal(i.TOKEN[y],b,w>x?x:w),m=b,g=w,y=0):d(b,w,0,y,e)}function l(){g!=b&&(m=g,g=b,E.whitespace(m,g))}function c(e){var t;for(;;){t=C(e);if(t!=28)break}return t}function h(e){y==0&&(y=c(e),b=T,w=N)}function p(e){y==0&&(y=C(e),b=T,w=N)}function d(e,t,r,i,s){throw new n.ParseException(e,t,r,i,s)}function C(e){var t=!1;T=N;var n=N,r=i.INITIAL[e],s=0;for(var o=r&4095;o!=0;){var u,a=n<x?S.charCodeAt(n):0;++n;if(a<128)u=i.MAP0[a];else if(a<55296){var f=a>>4;u=i.MAP1[(a&15)+i.MAP1[(f&31)+i.MAP1[f>>5]]]}else{if(a<56320){var f=n<x?S.charCodeAt(n):0;f>=56320&&f<57344&&(++n,a=((a&1023)<<10)+(f&1023)+65536,t=!0)}var l=0,c=5;for(var h=3;;h=c+l>>1){if(i.MAP2[h]>a)c=h-1;else{if(!(i.MAP2[6+h]<a)){u=i.MAP2[12+h];break}l=h+1}if(l>c){u=0;break}}}s=o;var p=(u<<12)+o-1;o=i.TRANSITION[(p&15)+i.TRANSITION[p>>4]],o>4095&&(r=o,o&=4095,N=n)}r>>=12;if(r==0){N=n-1;var f=N<x?S.charCodeAt(N):0;return f>=56320&&f<57344&&--N,d(T,N,s,-1,-1)}if(t)for(var v=r>>9;v>0;--v){--N;var f=N<x?S.charCodeAt(N):0;f>=56320&&f<57344&&--N}else N-=r>>9;return(r&511)-1}r(e,t);var n=this;this.ParseException=function(e,t,n,r,i){var s=e,o=t,u=n,a=r,f=i;this.getBegin=function(){return s},this.getEnd=function(){return o},this.getState=function(){return u},this.getExpected=function(){return f},this.getOffending=function(){return a},this.getMessage=function(){return a<0?\"lexical analysis failed\":\"syntax error\"}},this.getInput=function(){return S},this.getOffendingToken=function(e){var t=e.getOffending();return t>=0?i.TOKEN[t]:null},this.getExpectedTokenSet=function(e){var t;return e.getExpected()<0?t=i.getTokenSet(-e.getState()):t=[i.TOKEN[e.getExpected()]],t},this.getErrorMessage=function(e){var t=this.getExpectedTokenSet(e),n=this.getOffendingToken(e),r=S.substring(0,e.getBegin()),i=r.split(\"\\n\"),s=i.length,o=i[s-1].length+1,u=e.getEnd()-e.getBegin();return e.getMessage()+(n==null?\"\":\", found \"+n)+\"\\nwhile expecting \"+(t.length==1?t[0]:\"[\"+t.join(\", \")+\"]\")+\"\\n\"+(u==0||n!=null?\"\":\"after successfully scanning \"+u+\" characters beginning \")+\"at line \"+s+\", column \"+o+\":\\n...\"+S.substring(e.getBegin(),Math.min(S.length,e.getBegin()+64))+\"...\"},this.parse_start=function(){E.startNonterminal(\"start\",g),h(14);switch(y){case 55:f(55);break;case 54:f(54);break;case 56:f(56);break;case 40:f(40);break;case 42:f(42);break;case 41:f(41);break;case 35:f(35);break;case 38:f(38);break;case 274:f(274);break;case 271:f(271);break;case 39:f(39);break;case 43:f(43);break;case 49:f(49);break;case 62:f(62);break;case 63:f(63);break;case 46:f(46);break;case 48:f(48);break;case 53:f(53);break;case 51:f(51);break;case 34:f(34);break;case 273:f(273);break;case 2:f(2);break;case 1:f(1);break;case 3:f(3);break;case 12:f(12);break;case 13:f(13);break;case 15:f(15);break;case 16:f(16);break;case 17:f(17);break;case 5:f(5);break;case 6:f(6);break;case 4:f(4);break;case 33:f(33);break;default:o()}E.endNonterminal(\"start\",g)},this.parse_StartTag=function(){E.startNonterminal(\"StartTag\",g),h(8);switch(y){case 58:f(58);break;case 50:f(50);break;case 27:f(27);break;case 57:f(57);break;case 35:f(35);break;case 38:f(38);break;default:f(33)}E.endNonterminal(\"StartTag\",g)},this.parse_TagContent=function(){E.startNonterminal(\"TagContent\",g),p(11);switch(y){case 23:f(23);break;case 6:f(6);break;case 7:f(7);break;case 55:f(55);break;case 54:f(54);break;case 18:f(18);break;case 29:f(29);break;case 272:f(272);break;case 275:f(275);break;case 271:f(271);break;default:f(33)}E.endNonterminal(\"TagContent\",g)},this.parse_AposAttr=function(){E.startNonterminal(\"AposAttr\",g),p(10);switch(y){case 20:f(20);break;case 25:f(25);break;case 18:f(18);break;case 29:f(29);break;case 272:f(272);break;case 275:f(275);break;case 271:f(271);break;case 38:f(38);break;default:f(33)}E.endNonterminal(\"AposAttr\",g)},this.parse_QuotAttr=function(){E.startNonterminal(\"QuotAttr\",g),p(9);switch(y){case 19:f(19);break;case 24:f(24);break;case 18:f(18);break;case 29:f(29);break;case 272:f(272);break;case 275:f(275);break;case 271:f(271);break;case 35:f(35);break;default:f(33)}E.endNonterminal(\"QuotAttr\",g)},this.parse_CData=function(){E.startNonterminal(\"CData\",g),p(1);switch(y){case 11:f(11);break;case 64:f(64);break;default:f(33)}E.endNonterminal(\"CData\",g)},this.parse_XMLComment=function(){E.startNonterminal(\"XMLComment\",g),p(0);switch(y){case 9:f(9);break;case 47:f(47);break;default:f(33)}E.endNonterminal(\"XMLComment\",g)},this.parse_PI=function(){E.startNonterminal(\"PI\",g),p(3);switch(y){case 10:f(10);break;case 59:f(59);break;case 60:f(60);break;default:f(33)}E.endNonterminal(\"PI\",g)},this.parse_Pragma=function(){E.startNonterminal(\"Pragma\",g),p(2);switch(y){case 8:f(8);break;case 36:f(36);break;case 37:f(37);break;default:f(33)}E.endNonterminal(\"Pragma\",g)},this.parse_Comment=function(){E.startNonterminal(\"Comment\",g),p(4);switch(y){case 52:f(52);break;case 41:f(41);break;case 30:f(30);break;default:f(33)}E.endNonterminal(\"Comment\",g)},this.parse_CommentDoc=function(){E.startNonterminal(\"CommentDoc\",g),p(5);switch(y){case 31:f(31);break;case 32:f(32);break;case 52:f(52);break;case 41:f(41);break;default:f(33)}E.endNonterminal(\"CommentDoc\",g)},this.parse_QuotString=function(){E.startNonterminal(\"QuotString\",g),p(6);switch(y){case 18:f(18);break;case 29:f(29);break;case 19:f(19);break;case 21:f(21);break;case 35:f(35);break;default:f(33)}E.endNonterminal(\"QuotString\",g)},this.parse_AposString=function(){E.startNonterminal(\"AposString\",g),p(7);switch(y){case 18:f(18);break;case 29:f(29);break;case 20:f(20);break;case 22:f(22);break;case 38:f(38);break;default:f(33)}E.endNonterminal(\"AposString\",g)},this.parse_Prefix=function(){E.startNonterminal(\"Prefix\",g),h(13),l(),a(),E.endNonterminal(\"Prefix\",g)},this.parse__EQName=function(){E.startNonterminal(\"_EQName\",g),h(12),l(),o(),E.endNonterminal(\"_EQName\",g)};var v,m,g,y,b,w,E,S,x,T,N};r.getTokenSet=function(e){var t=[],n=e<0?-e:INITIAL[e]&4095;for(var i=0;i<276;i+=32){var s=i,o=(i>>5)*2062+n-1,u=o>>2,a=u>>2,f=r.EXPECTED[(o&3)+r.EXPECTED[(u&3)+r.EXPECTED[(a&3)+r.EXPECTED[a>>2]]]];for(;f!=0;f>>>=1,++s)(f&1)!=0&&t.push(r.TOKEN[s])}return t},r.MAP0=[66,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,18,18,18,18,18,18,18,18,18,19,20,21,22,23,24,25,26,27,28,29,30,27,31,31,31,31,31,31,31,31,31,31,32,31,31,33,31,31,31,31,31,31,34,35,36,35,31,35,37,38,39,40,41,42,43,44,45,31,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,31,61,62,63,64,35],r.MAP1=[108,124,214,214,214,214,214,214,214,214,214,214,214,214,214,214,156,181,181,181,181,181,214,215,213,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,247,261,277,293,309,347,363,379,416,416,416,408,331,323,331,323,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,433,433,433,433,433,433,433,316,331,331,331,331,331,331,331,331,394,416,416,417,415,416,416,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,330,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,416,66,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,18,18,18,18,18,18,18,18,18,19,20,21,22,23,24,25,26,27,28,29,30,27,31,31,31,31,31,31,31,31,31,31,31,31,31,31,35,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,32,31,31,33,31,31,31,31,31,31,34,35,36,35,31,35,37,38,39,40,41,42,43,44,45,31,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,31,61,62,63,64,35,35,35,35,35,35,35,35,35,35,35,35,31,31,35,35,35,35,35,35,35,65,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65],r.MAP2=[57344,63744,64976,65008,65536,983040,63743,64975,65007,65533,983039,1114111,35,31,35,31,31,35],r.INITIAL=[1,2,36867,45060,5,6,7,8,9,10,11,12,13,14,15],r.TRANSITION=[17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22908,18836,17152,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,17365,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,17470,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,18157,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,17848,17880,18731,17918,36551,17292,17934,17979,18727,18023,36545,18621,18039,18056,18072,18117,18143,18173,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17687,18805,18421,18437,18101,17393,18489,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,18579,21711,17152,19008,19233,20367,19008,28684,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,17365,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,17470,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,18157,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,17848,17880,18731,17918,36551,17292,17934,17979,18727,18023,36545,18621,18039,18056,18072,18117,18143,18173,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17687,18805,18421,18437,18101,17393,18489,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,20116,18836,18637,19008,19233,21267,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,18763,18778,18794,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,18821,22923,18906,19008,19233,17431,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18937,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,19054,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,18953,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21843,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21696,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22429,20131,18720,19008,19233,20367,19008,17173,23559,36437,17330,17349,18921,17189,17208,17281,20355,18087,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,21242,19111,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,19024,18836,18609,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,19081,22444,18987,19008,19233,20367,19008,19065,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21992,22007,18987,19008,19233,20367,19008,18690,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22414,18836,18987,19008,19233,30651,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,19138,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,19280,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,19172,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21783,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,19218,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21651,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,19249,19265,19307,18888,27857,30536,24401,31444,23357,18888,19351,18888,18890,27211,19370,27211,27211,19392,24401,31911,24401,24401,25467,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,28537,19440,24401,24401,24401,24401,24036,17994,24060,18888,18888,18888,18890,19468,27211,27211,27211,27211,19484,35367,19520,24401,24401,24401,19628,18888,29855,18888,18888,23086,27211,19538,27211,27211,30756,24012,24401,19560,24401,24401,26750,18888,18888,19327,27855,27211,27211,19580,17590,24017,24401,24401,19600,25665,18888,18888,28518,27211,27212,24016,19620,19868,28435,25722,18889,19644,27211,32888,35852,19868,31018,19694,19376,19717,22215,19735,22098,19751,35203,19776,19797,19817,19840,25783,31738,24135,19701,19856,31015,23516,31008,28311,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21768,18836,19307,18888,27857,27904,24401,29183,28015,18888,18888,18888,18890,27211,27211,27211,27211,19888,24401,24401,24401,24401,22953,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,28537,19440,24401,24401,24401,24401,24036,18881,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22399,18836,19918,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21666,18836,19307,18888,27857,27525,24401,29183,21467,18888,18888,18888,18890,27211,27211,27211,27211,19946,24401,24401,24401,24401,32382,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,28537,19998,24401,24401,24401,24401,31500,18467,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,20021,24401,24401,24401,24401,24401,34271,18888,18888,18888,18888,23086,27211,27211,27211,27211,32926,29908,24401,24401,24401,24401,26095,18888,18888,18888,27855,27211,27211,27211,20050,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,20101,19039,20191,20412,20903,17569,20309,20872,25633,20623,20505,20218,20242,17189,17208,17281,20355,20265,20306,20328,20383,22490,20796,20619,21354,20654,20410,20956,21232,20765,17421,20535,17192,18127,22459,20312,25531,22470,20309,20428,18964,20466,20491,21342,21070,20521,20682,17714,18326,17543,17559,17585,22497,20559,19504,20279,20575,20290,20475,20604,20639,20226,20670,17661,21190,17703,21176,17730,19494,20698,20711,22480,21046,21116,18971,21130,20727,20755,17675,17753,17832,17590,25518,20394,20781,20831,20202,20847,21401,17292,17934,17979,18549,20863,20588,25542,20888,20919,18072,18117,20935,20972,21032,21062,21086,18239,21102,18563,21146,21162,21206,18351,20949,20902,18340,21222,21258,21283,18360,20249,17405,21295,21311,21327,20739,20343,21370,21386,21417,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21977,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,21452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,21504,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,36501,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,28674,21946,17617,36473,18223,17237,17477,19152,17860,17892,17675,17753,17832,21575,21534,17481,19156,17864,18731,17918,36551,17292,17934,21560,30628,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21798,18836,21612,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21636,18836,18987,19008,19233,17902,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21753,19096,21903,19008,19233,20367,19008,19291,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,17379,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,21931,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,18280,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21962,18594,18987,19008,19233,22043,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21681,21858,18987,19008,19233,20367,19008,21544,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,30613,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,31500,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,32319,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,21431,24401,24401,24401,24401,26095,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,22231,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,30613,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,31500,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,31181,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,21431,24401,24401,24401,24401,26095,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,31678,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,31500,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,31181,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,21431,24401,24401,24401,24401,26095,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,30613,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,33588,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,31181,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,21431,24401,24401,24401,24401,26095,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,35019,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22248,24401,24401,24401,24401,30613,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,31500,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,31181,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,21431,24401,24401,24401,24401,26095,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,18866,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,24036,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22324,18836,22059,18888,27857,30501,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,18866,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,24036,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,18866,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,24036,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,34365,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22354,18836,18987,19008,19233,20367,19008,17173,27086,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,19930,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21828,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22309,22513,18987,19008,19233,20367,19008,19122,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,22544,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22608,18836,22988,23004,27585,23020,23036,23067,22087,18888,18888,18888,23083,27211,27211,27211,23102,22121,24401,24401,24401,23122,31386,26154,19674,18888,28119,28232,19424,23705,27211,27211,23142,23173,23189,23212,24401,24401,23246,34427,31693,23262,18888,23290,23308,27783,27620,23327,35263,35107,33383,23346,18193,23393,32748,23968,24401,23414,35153,23463,18888,33913,23442,23482,27211,27211,23532,23552,21431,23575,24401,24401,23604,26095,23635,23657,18888,33482,23685,33251,27211,22187,18851,23721,35536,24401,18887,23750,32641,27211,23769,23787,20080,33012,24384,25659,18888,18889,27211,27211,19719,23889,23803,31018,18890,27211,31833,19406,19447,23086,23330,19828,28224,31826,23823,26917,34978,23850,26493,25782,23878,23914,23516,31008,22105,19419,27963,19659,29781,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22623,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,30613,18888,18888,18888,18888,28909,25783,27211,27211,27211,34048,23933,22164,24401,24401,24401,28409,23949,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,31181,26583,18888,18888,18888,35585,23984,27211,27211,27211,24005,22201,24033,24401,24401,24401,24052,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,26496,24076,24126,24151,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22638,18836,22059,19678,27857,24185,24401,24201,24217,26592,18888,18888,18890,24252,24268,27211,27211,22121,24287,24303,24401,24401,30613,19781,35432,36007,32649,18888,25783,24322,28966,23771,27211,35072,22164,24358,32106,26829,24400,31500,31693,18888,18888,18888,24801,18890,27211,27211,27211,27211,24418,19484,24401,24401,24401,24401,20167,31181,18888,18888,18888,27833,23086,27211,27211,33540,27211,30756,21431,24401,24401,22972,24401,26095,18888,36131,18888,27855,27211,24440,27211,22187,22968,24401,24459,24401,31699,28454,18888,34528,34570,35779,24478,24402,24494,25659,18888,36228,27211,27211,24515,30981,23734,31018,18890,27211,31833,19406,19447,23086,23330,24538,31017,27856,31741,30059,23377,24563,19837,25782,19760,31015,23516,25374,22105,19419,29793,24579,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22653,18836,22059,25756,19982,34097,23196,29183,24614,24110,23641,24673,26103,24697,24443,24713,28558,22121,24748,24462,24764,23398,30613,18888,18888,18888,18888,24798,25783,27211,27211,27211,34232,35072,22164,24401,24401,24401,33302,31500,22559,24106,24232,18888,18888,34970,24817,30411,27211,27211,32484,19484,29750,35127,24401,24401,19872,31181,24852,18888,18888,24871,29221,27211,27211,32072,27211,30756,34441,24401,24401,31571,24401,26095,33141,27802,27011,27855,25295,25607,24888,22187,22968,19195,34593,24906,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,18888,33663,27211,27211,24924,24947,23588,31018,18890,27211,31833,22135,19447,23086,23330,19828,30904,31042,24972,19840,25e3,31738,30898,25782,19760,31015,23516,31008,22105,19419,25016,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22668,18836,25041,25057,31320,25073,25089,25105,22087,34796,24236,36138,34870,34125,25121,23106,35497,22248,36613,25137,30671,27365,30613,25153,26447,25199,25233,22574,23274,25249,25265,25281,25318,25344,25360,25400,25428,25452,26731,25504,31693,23669,25558,27407,25575,28599,25934,25599,27211,28180,27304,25623,25839,25649,24401,34820,25681,25698,22586,27775,30190,25745,25778,25799,25817,28995,33569,30756,21518,33443,25837,25855,25893,26095,31254,26677,30136,27855,25930,25950,27211,22187,22968,25966,25986,24401,23428,27763,36330,26959,26002,26029,26045,26085,26119,26170,26203,26222,26239,30527,26372,26274,28404,31018,33757,27211,34262,26316,36729,26345,26366,35337,31017,26388,26407,30954,26350,33861,26434,26463,26479,26512,23516,33189,26531,26547,27963,31293,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22683,18836,26568,26181,26608,34097,26643,29183,22087,26669,18888,18888,18890,26693,27211,27211,27211,22121,26720,24401,24401,24401,30613,18888,18888,18888,18888,26774,25783,27211,27211,27211,26619,35072,22164,24401,24401,24401,21596,31500,31693,18888,18888,33978,18888,18890,27211,27211,25801,27211,27211,19484,24401,24401,24401,26792,24401,31181,18888,18888,18888,35464,23086,27211,27211,27211,26809,30756,21431,24401,24401,24401,26828,26095,18888,18888,18888,27855,27211,27211,27211,22187,22968,24401,24401,24401,18887,18888,18888,27211,27211,35779,20080,24402,19868,25659,31948,18889,35707,27211,19719,26845,19868,31018,18890,27211,31833,19406,19447,23086,23330,26905,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,24984,31088,19419,26945,27651,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22698,18836,26999,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,23051,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,27033,24401,24401,24401,24401,24036,31693,18888,18888,27056,18888,18890,27211,27211,30320,27211,27211,27075,24401,24401,29032,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,33986,27855,27211,27211,27102,17590,24017,24401,24401,27123,27144,36254,27162,27210,27228,28500,18187,34842,33426,27244,35980,27277,27302,27320,36048,34013,20999,31882,21478,27895,27356,30287,27381,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,26329,30087,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,27406,27423,27445,35294,27461,22087,18888,18888,30140,18890,27211,27211,27989,27211,22121,24401,24401,25682,24401,18866,18888,18888,18888,18888,18888,34042,27211,27211,27211,27211,29700,22164,24401,24401,24401,24401,27128,31693,27477,18888,18888,18888,18890,27194,27211,27211,27211,27211,19484,35299,24401,24401,24401,24401,19628,18888,18888,18888,27059,23086,27211,27211,27211,33366,30756,24012,24401,24401,24401,35044,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,20815,27211,30818,19960,33969,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22713,18836,22059,27496,27516,27541,35231,27557,22087,29662,26292,23292,27573,24836,27601,27211,27636,22121,35544,27686,24401,27721,18866,18888,27799,18888,27818,22071,27853,32260,27211,26013,27873,27920,22164,29419,24401,29946,33413,26742,27751,26881,18888,18888,27261,36776,27936,27211,27211,27211,27988,28005,28031,28052,24401,24401,28069,28088,28135,25488,28152,26069,28167,27211,28340,24657,28196,30756,31523,24401,28212,34176,36174,24956,28248,28266,28290,21488,33077,28327,28356,17590,20986,23126,28391,28425,28102,28451,28470,28490,28516,28534,20034,33728,25868,25659,18888,18889,27211,27211,19719,23889,19868,30241,28274,28553,28574,19406,28590,23086,23330,19828,19452,28615,28660,26147,25783,31738,19837,25782,19760,29613,35958,29276,22105,19419,27963,23157,28700,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,18888,27857,34097,24401,29183,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,18866,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,24036,22528,18888,18888,18888,18888,18890,27333,27211,27211,27211,27211,19484,30853,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22728,18836,28747,28782,28817,28841,28857,28880,28896,24161,28943,32011,36261,27340,28961,29492,28982,29011,24522,29027,25436,29048,23051,27500,29090,29110,30713,18888,23512,29130,25183,27211,29155,28927,27033,29173,23230,24401,29199,35373,31693,18888,18888,25583,32629,29218,27211,27211,31461,30692,29237,27075,24401,24401,24401,29262,29302,19628,18888,34329,18888,18888,23086,27211,29329,27211,27211,30756,24012,35933,24401,24401,24401,27705,31612,18888,18888,29346,29374,27211,35650,17590,21436,29393,24401,25970,18887,33895,18888,27211,32528,27212,24016,32769,19868,25659,18888,26889,27211,27211,29412,23889,24371,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31768,19840,25783,31738,19837,29435,29508,31102,29550,29606,22105,30300,29462,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22743,18836,22059,29629,29473,34097,33285,29183,29651,27254,18888,29678,33329,32535,27211,29694,29716,22121,19202,24401,32742,29741,18866,26776,33921,28474,18888,18888,25783,29766,27211,29809,27211,35072,22164,35825,24401,29828,24401,24036,36769,25217,18888,18888,29848,18890,27211,29871,27211,26258,27211,29894,24401,29929,24401,36587,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,29725,29962,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18473,18888,18888,19584,27211,27212,24016,29982,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19902,19447,32052,19544,19828,29998,30097,30031,19840,25783,30047,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,30075,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22758,18836,30121,30156,30206,30257,30273,30336,22087,35624,32837,25762,18890,29878,34934,26812,27211,22121,24931,23223,29202,24401,18866,34373,30352,18888,18888,18888,23447,24828,27211,27211,27211,35072,30370,35052,24401,24401,24401,24036,29523,18888,18888,27146,18888,31308,30386,27211,27211,30405,30558,19484,30427,24401,24401,29938,35686,19628,28766,30447,34506,35614,23086,28731,30482,30517,30552,30756,24012,20156,30574,30598,30667,26283,33464,28945,27670,30687,32915,33504,25328,17590,23963,20450,33837,21016,32397,26300,30708,30729,27885,30748,21588,36373,30779,26653,24628,33220,32514,30806,31835,25412,25906,26515,18890,28825,31833,26133,19447,28304,31730,23834,26057,30869,30885,32181,30920,30942,32797,25782,30970,31015,23516,31008,30997,31034,27963,19659,29450,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22773,18836,31058,31074,32463,31125,31141,31197,22087,18888,29534,35471,36738,27211,24342,31213,24424,22121,24401,20175,31229,31917,27736,31245,34334,27175,18888,29094,27286,27211,31278,31336,27211,31355,31371,24401,31402,31418,24401,31437,31693,18888,31619,32841,18888,18890,27211,27211,31460,31477,27211,19484,24401,24401,31497,36581,24401,33020,18888,18888,18888,18888,30007,27211,27211,27211,27211,31516,32310,24401,24401,24401,24401,31539,18888,28762,18888,24651,35740,27211,27211,28644,31565,35796,24401,24401,19318,32188,18888,24334,28366,27212,29966,29832,19868,25659,18888,18889,27211,27211,19719,31587,19868,31635,32435,33693,30105,31663,20005,31715,31757,31784,31812,30015,31851,31878,25783,31898,19837,25782,19760,31015,23516,31008,22105,19419,27963,31933,30221,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22788,18836,22059,25729,30466,31968,24306,31984,32e3,32807,35160,27017,29590,34941,19801,29377,33700,22121,27040,30431,29396,28864,29565,18888,18888,18888,32027,18888,25783,27211,27211,23698,27211,35072,22164,24401,24401,30845,24401,24036,32045,18888,26929,18888,18888,18890,27211,31481,32068,27211,27211,32088,24401,33058,32122,24401,24401,33736,18888,18888,33162,18888,23086,27211,27211,29484,27211,28375,32144,24401,24401,33831,24401,26750,18888,18888,18888,27855,27211,27211,27211,36704,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,33107,22171,33224,24271,32169,31017,27856,31741,19840,25783,31738,30234,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,32204,32232,32252,32677,33295,29074,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,23619,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,32276,24401,24401,24401,24401,24036,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,32299,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,33886,18889,36065,27211,19719,35326,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22803,18836,32335,31647,34666,32351,32367,32417,22087,18888,32433,19335,32451,27211,32479,27107,32500,22121,24401,32551,20085,32572,18866,22287,23753,18888,18888,32602,32665,27211,32693,27211,26972,32713,32729,24401,32764,24401,25877,32785,34768,18888,27390,32823,24594,24855,32857,24890,32878,32904,27211,32942,32977,24401,33e3,29313,24401,30790,26206,27666,33904,18888,23086,36353,27211,33036,27211,30756,24012,32153,24401,33056,24401,35861,18888,18888,30354,27972,27211,27211,33800,17590,20145,24401,24401,34638,20811,18888,18888,33074,27211,27212,36167,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,34616,24169,33093,33123,33157,27856,31741,23862,26552,34302,19837,25782,19760,31015,23516,31008,33178,19973,27963,23497,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22818,18836,33205,28113,33240,34097,33275,29183,22087,33318,35438,18888,18890,33345,26391,33382,27211,22121,33399,28072,33442,24401,18866,22232,18888,33459,18888,18888,33480,33498,25175,27211,27211,26704,22164,24775,35239,24401,24401,25914,29580,18888,18888,31109,25211,33520,33539,27211,27211,33556,36284,19484,33585,24401,24401,33604,32556,19628,18888,18888,31262,33658,23086,27211,27211,33679,27211,30756,24012,24401,24401,33716,24401,26854,27480,18888,33752,27855,33259,34701,27211,17590,32102,24782,23807,24401,18887,18888,18888,27211,27211,27212,33773,36105,19868,25659,18888,23368,27211,29157,19719,23889,34454,29286,18890,33794,25302,33816,19447,34079,33853,31862,31017,27856,31741,33877,28920,33937,19837,30461,34002,22276,36041,34029,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22833,18836,34064,32616,34113,34141,34157,34192,34208,32216,36013,31549,31952,34224,34248,34287,29330,34350,34389,34413,34481,26793,18866,26187,29635,22293,18888,36654,25783,34522,34544,34566,25821,35072,22164,34586,34609,34632,19604,24036,36644,36674,24681,18888,32401,34654,31339,34682,34698,27211,34717,34753,28053,34812,34836,24401,33619,19628,34858,32236,34906,24598,33523,27612,34890,34922,24732,29246,36717,33634,34465,32984,34168,26750,34957,18888,18888,34994,35010,27211,33040,17590,29913,35035,24401,36304,25482,30171,35883,35068,35088,26627,20441,31173,35123,35143,35176,24640,30492,29358,19719,35192,35219,25384,28801,35255,35279,32586,34496,23086,23330,29061,31017,27856,31741,19840,25783,31738,24547,25164,35315,31796,35353,34316,22105,19419,27963,24091,28630,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22848,18836,22059,34782,34088,35389,21008,35405,35421,35454,18888,18888,23466,35487,27211,27211,27211,35513,31154,24401,24401,24401,35560,18888,26863,36664,35601,24872,25783,30389,23536,26250,35647,35666,22164,19522,19564,30582,35682,27697,35575,29114,18888,18888,18888,18890,27211,35702,27211,27211,27211,35723,24401,35527,24401,24401,24401,19628,30184,18888,18888,18888,23086,35739,27211,27211,27211,29139,22938,24401,24401,24401,24401,23898,35756,18888,18888,25025,35778,27211,27211,17590,20064,35795,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,23917,18890,34550,31833,22262,19447,23086,23330,26418,31017,27856,31741,19840,25783,35812,19837,27187,35841,33135,23516,31008,22105,22148,28712,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22863,18836,22059,35877,28723,34097,31164,29183,22087,26758,18888,22592,18890,23989,27211,29812,27211,22121,33778,24401,31421,24401,18866,18888,18888,26872,18888,18888,25783,27211,30732,27211,27211,35072,22164,24401,24908,24401,24401,24036,31693,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22878,18836,22059,27837,27857,35899,24401,35915,22087,18888,18888,18888,18890,27211,27211,27211,27211,22121,24401,24401,24401,24401,18866,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,24036,31602,18888,18888,18888,18888,26223,27211,27211,27211,27211,27211,19484,35931,24401,24401,24401,24401,19628,18888,28136,18888,18888,35949,27211,32862,27211,32697,30756,24012,24401,32283,24401,32128,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22893,18836,22059,35974,34882,34097,33960,29183,35996,18888,23311,18888,36029,27211,27211,36064,36081,22121,24401,24401,36104,33950,18866,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,35072,22164,24401,24401,24401,24401,24036,36121,18888,25559,18888,18888,18890,27211,27211,30313,27211,27211,36154,24401,24401,34397,24401,24401,19628,28250,18888,18888,18888,23086,30926,27211,27211,27211,26983,24012,33642,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22339,18836,22059,19354,27857,36190,24401,36206,22087,18888,18888,18888,18007,27211,27211,27211,24724,22121,24401,24401,24401,30827,18866,18888,36222,18888,28795,18888,25783,35100,27211,27429,27211,35072,22164,30836,24401,24499,24401,24036,31693,18888,36244,18888,18888,18890,27211,36088,27211,27211,27211,19484,24401,28036,24401,24401,24401,19628,18888,18888,35631,18888,35762,27211,27211,36277,27211,34730,24012,24401,24401,36300,24401,36320,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,25712,18888,18888,36346,27211,27212,19184,24402,19868,25659,32029,18889,27211,33359,19719,23889,36369,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22384,18836,36389,19008,19233,20367,36434,17173,17595,36437,17330,17349,18921,17189,17208,17281,20355,36453,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,20362,21726,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,22369,18836,18987,19008,19233,20367,19008,21737,30763,36437,17330,17349,18921,17189,17208,17281,20355,17949,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21813,18836,36489,19008,19233,20367,19008,17173,17737,36437,17330,17349,18921,17189,17208,17281,20355,17768,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,20543,22022,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21828,18836,18987,19008,19233,20367,19008,17173,30763,36437,17330,17349,18921,17189,17208,17281,20355,36517,17308,17327,17346,18918,18452,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,18127,21873,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,21828,18836,19307,18888,27857,30756,24401,29183,28015,18888,18888,18888,18890,27211,27211,27211,27211,36567,24401,24401,24401,24401,22953,18888,18888,18888,18888,18888,25783,27211,27211,27211,27211,28537,36603,24401,24401,24401,24401,24036,18881,18888,18888,18888,18888,18890,27211,27211,27211,27211,27211,19484,24401,24401,24401,24401,24401,19628,18888,18888,18888,18888,23086,27211,27211,27211,27211,30756,24012,24401,24401,24401,24401,26750,18888,18888,18888,27855,27211,27211,27211,17590,24017,24401,24401,24401,18887,18888,18888,27211,27211,27212,24016,24402,19868,25659,18888,18889,27211,27211,19719,23889,19868,31018,18890,27211,31833,19406,19447,23086,23330,19828,31017,27856,31741,19840,25783,31738,19837,25782,19760,31015,23516,31008,22105,19419,27963,19659,27951,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,36629,36690,18720,19008,19233,20367,19008,17454,17595,36437,17330,17349,18921,17189,17208,17281,20355,17223,17308,17327,17346,18918,36754,21880,18649,18665,19006,17265,22033,20765,17421,20535,17192,20362,21726,17311,18658,18999,19008,17447,32952,17497,17520,17251,36411,17782,20682,17714,18326,17543,17559,17585,21887,17504,17527,17258,36418,21915,21940,17611,36467,18217,17633,17661,21190,17703,21176,17730,34737,21946,17617,36473,18223,36531,17477,19152,17860,17892,17675,17753,17832,17590,21620,17481,19156,17864,18731,17918,36551,17292,17934,17979,18727,18681,18405,18621,18039,18056,18072,18117,18143,18706,18052,18209,18250,18239,18266,17963,18296,18312,18376,17807,36403,19232,17796,17163,30642,18392,17816,32961,17645,18805,18421,18437,18519,17393,18747,18505,18535,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,17590,0,94242,0,118820,0,2211840,102439,0,0,106538,98347,0,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2482176,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,0,18,18,24,24,27,27,27,2207744,2404352,2412544,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,3104768,2605056,2207744,2207744,2207744,2207744,2207744,2207744,2678784,2207744,2695168,2207744,2703360,2207744,2711552,2752512,2207744,0,0,0,0,0,0,2166784,0,0,0,0,0,0,2158592,2158592,3170304,3174400,2158592,0,139,0,2158592,2158592,2158592,2158592,2158592,2424832,2158592,2158592,2158592,2748416,2756608,2777088,2801664,2158592,2158592,2158592,2863104,2891776,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3104768,2158592,2158592,2158592,2158592,2158592,2158592,2207744,2785280,2207744,2809856,2207744,2207744,2842624,2207744,2207744,2207744,2899968,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2473984,2207744,2207744,2494464,2207744,2207744,2207744,2523136,2158592,2404352,2412544,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2564096,2158592,2158592,2605056,2158592,2158592,2158592,2158592,2158592,2158592,2678784,2158592,2695168,2158592,2703360,2158592,2711552,2752512,2158592,2158592,2785280,2158592,2158592,2785280,2158592,2809856,2158592,2158592,2842624,2158592,2158592,2158592,2899968,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,18,0,0,0,0,0,0,0,2211840,0,0,641,0,2158592,0,0,0,0,0,0,0,0,2211840,0,0,32768,0,2158592,0,2158592,2158592,2158592,2383872,2158592,2158592,2158592,2158592,3006464,2383872,2207744,2207744,2207744,2207744,2158877,2158877,2158877,2158877,0,0,0,2158877,2572573,2158877,2158877,0,2207744,2207744,2596864,2207744,2207744,2207744,2207744,2207744,2207744,2641920,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,0,0,167936,0,0,2162688,0,0,3104768,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,0,0,0,2146304,2146304,2224128,2224128,2232320,2232320,2232320,641,0,0,0,0,0,0,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2531328,2158592,2158592,2158592,2158592,2158592,2617344,2158592,2158592,2158592,2158592,2441216,2445312,2158592,2158592,2158592,2158592,2158592,2158592,2502656,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2580480,2158592,2158592,2158592,2158592,2621440,2158592,2580480,2158592,2158592,2158592,2158592,2621440,2158592,2158592,2158592,2158592,2158592,2158592,2699264,2158592,2158592,2158592,2158592,2158592,2748416,2756608,2777088,2801664,2207744,2863104,2891776,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,3018752,2207744,3043328,2207744,2207744,2207744,2207744,3080192,2207744,2207744,3112960,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,0,0,172310,279,0,2162688,0,0,2207744,2207744,2207744,3186688,2207744,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2158592,2158592,2158592,2404352,2412544,2158592,2510848,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2584576,2158592,2609152,2158592,2158592,2629632,2158592,2158592,2158592,2686976,2158592,2715648,2158592,2158592,3121152,2158592,2158592,2158592,3149824,2158592,2158592,3170304,3174400,2158592,2367488,2207744,2207744,2207744,2207744,2158592,2158592,2158592,2158592,0,0,0,2158592,2572288,2158592,2158592,0,2207744,2207744,2207744,2433024,2207744,2453504,2461696,2207744,2207744,2207744,2207744,2207744,2207744,2510848,2207744,2207744,2207744,2207744,2207744,2531328,2207744,2207744,2207744,2207744,2207744,2617344,2207744,2207744,2207744,2207744,2158592,2158592,2158592,2158592,0,0,0,2158592,2572288,2158592,2158592,1508,2715648,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2867200,2207744,2904064,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2580480,2207744,2207744,2207744,2207744,2621440,2207744,2207744,2207744,3149824,2207744,2207744,3170304,3174400,2207744,0,0,0,0,0,0,0,0,0,0,138,2158592,2158592,2158592,2404352,2412544,2707456,2732032,2207744,2207744,2207744,2822144,2826240,2207744,2895872,2207744,2207744,2924544,2207744,2207744,2973696,2207744,0,0,0,0,0,0,2166784,0,0,0,0,0,285,2158592,2158592,3112960,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3186688,2158592,2207744,2207744,2158592,2158592,2158592,2158592,2158592,0,0,0,2158592,2158592,2158592,2158592,0,0,2535424,2543616,2158592,2158592,2158592,0,0,0,2158592,2158592,2158592,2990080,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2572288,2981888,2207744,2207744,3002368,2207744,3047424,3063808,3076096,2207744,2207744,2207744,2207744,2207744,2207744,2207744,3203072,2708960,2732032,2158592,2158592,2158592,2822144,2827748,2158592,2895872,2158592,2158592,2924544,2158592,2158592,2973696,2158592,2981888,2158592,2158592,3002368,2158592,3047424,3063808,3076096,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3203072,2981888,2158592,2158592,3003876,2158592,3047424,3063808,3076096,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3203072,2207744,2207744,2207744,2207744,2207744,2424832,2207744,2207744,2207744,2207744,2207744,2207744,2207744,20480,0,0,0,0,0,2162688,20480,0,2523136,2527232,2158592,2158592,2576384,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2908160,2527232,2207744,2207744,2576384,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2908160,2207744,0,0,0,0,0,0,2166784,0,0,0,0,0,286,2158592,2158592,0,0,2158592,2158592,2158592,2158592,2633728,2658304,0,0,2740224,2744320,0,2834432,2207744,2207744,2977792,2207744,2207744,2207744,2207744,3039232,2207744,2207744,2207744,2207744,2207744,2207744,3158016,0,0,29315,0,0,0,0,45,45,45,45,45,933,45,45,45,45,442,45,45,45,45,45,45,45,45,45,67,67,2494464,2158592,2158592,2158592,2524757,2527232,2158592,2158592,2576384,2158592,2158592,2158592,2158592,2158592,2158592,1504,2158592,2498560,2158592,2158592,2158592,2158592,2568192,2158592,2592768,2625536,2158592,2158592,2674688,2736128,2158592,2158592,0,2158592,2912256,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3108864,2158592,2158592,3133440,3145728,3153920,2375680,2379776,2207744,2207744,2420736,2207744,2449408,2207744,2207744,2207744,2498560,2207744,2207744,2207744,2207744,2568192,2207744,0,0,0,0,0,0,2166784,0,0,0,0,0,551,2158592,2158592,2158592,2158592,2207744,2506752,2207744,2207744,2207744,2207744,2207744,2158592,2506752,0,2020,2158592,2592768,2625536,2207744,2207744,2674688,2736128,2207744,2207744,2207744,2912256,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,542,0,544,2207744,3108864,2207744,2207744,3133440,3145728,3153920,2375680,2379776,2158592,2158592,2420736,2158592,2449408,2158592,2158592,2158592,2158592,2158592,3186688,2158592,0,641,0,0,0,0,0,0,2367488,2158592,2498560,2158592,2158592,1621,2158592,2158592,2568192,2158592,2592768,2625536,2158592,2158592,2674688,0,0,0,0,0,1608,97,97,97,97,97,97,97,97,97,97,1107,97,97,1110,97,97,3133440,3145728,3153920,2158592,2408448,2416640,2158592,2465792,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3014656,2158592,2158592,3051520,2158592,2158592,3100672,2158592,2158592,3121152,2158592,2158592,2158592,3149824,2416640,2207744,2465792,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2633728,2658304,2740224,2744320,2834432,2949120,2158592,2985984,2158592,2998272,2158592,2158592,2158592,3129344,2207744,2408448,2949120,2207744,2985984,2207744,2998272,2207744,2207744,2207744,3129344,2158592,2408448,2416640,2158592,2465792,2158592,2158592,2158592,2158592,2158592,3186688,2158592,0,32768,0,0,0,0,0,0,2367488,2949120,2158592,2985984,2158592,2998272,2158592,2158592,2158592,3129344,2158592,2158592,2478080,2158592,2158592,2158592,2535424,2543616,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3117056,2207744,2207744,2478080,2207744,2207744,2207744,2207744,2699264,2207744,2207744,2207744,2207744,2207744,2748416,2756608,2777088,2801664,2207744,2207744,2158877,2158877,2158877,2158877,2158877,0,0,0,2158877,2158877,2158877,2158877,0,0,2535709,2543901,2158877,2158877,2158877,0,0,0,2158877,2158877,2158877,2990365,2158877,2158877,2158730,2158730,2158730,2158730,2158730,2572426,2207744,2535424,2543616,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,3117056,2158592,2158592,2478080,2207744,2207744,2990080,2207744,2207744,2158592,2158592,2482176,2158592,2158592,0,0,0,2158592,2158592,2158592,0,2158592,2908160,2158592,2158592,2158592,2977792,2158592,2158592,2158592,2158592,3039232,2158592,2158592,3010560,2207744,2428928,2207744,2514944,2207744,2588672,2207744,2838528,2207744,2207744,2207744,3010560,2158592,2428928,2158592,2514944,0,0,2158592,2588672,2158592,0,2838528,2158592,2158592,2158592,3010560,2158592,2506752,2158592,18,0,0,0,0,0,0,0,2211840,0,0,0,0,2158592,0,0,29315,922,0,0,0,45,45,45,45,45,45,45,45,45,45,45,45,45,1539,45,3006464,2383872,0,2020,2158592,2158592,2158592,2158592,3006464,2158592,2637824,2953216,2158592,2207744,2637824,2953216,2207744,0,0,2158592,2637824,2953216,2158592,2539520,2158592,2539520,2207744,0,0,2539520,2158592,2158592,2158592,2158592,2207744,2506752,2207744,2207744,2207744,2207744,2207744,2158592,2506752,0,0,2158592,2207744,0,2158592,2158592,2207744,0,2158592,2158592,2207744,0,2158592,2965504,2965504,2965504,0,0,0,0,0,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2474269,2158877,2158877,0,0,2158877,2158877,2158877,2158877,2634013,2658589,0,0,2740509,2744605,0,2834717,40976,18,36884,45078,24,28,90143,94242,118820,102439,106538,98347,118820,118820,118820,40976,18,18,36884,0,0,0,24,24,24,27,27,27,27,90143,0,0,86016,0,0,2211840,102439,0,0,0,98347,0,2158592,2158592,2158592,2158592,2158592,3158016,0,2375680,2379776,2158592,2158592,2420736,2158592,2449408,2158592,2158592,0,94242,0,0,0,2211840,102439,0,0,106538,98347,135,2158592,2158592,2158592,2158592,2158592,2158592,2564096,2158592,2158592,2158592,2158592,2158592,2596864,2158592,2158592,2158592,2158592,2158592,2158592,2641920,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2781184,2793472,2494464,2158592,2158592,2158592,2523136,2527232,2158592,2158592,2576384,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,0,18,18,24,0,27,27,0,2158592,2498560,2158592,2158592,0,2158592,2158592,2568192,2158592,2592768,2625536,2158592,2158592,2674688,0,0,0,0,0,2211840,0,0,0,0,0,0,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2473984,2158592,2158592,2494464,2158592,2158592,2158592,3006464,2383872,0,0,2158592,2158592,2158592,2158592,3006464,2158592,2637824,2953216,2158592,2207744,2637824,2953216,40976,18,36884,45078,24,27,147488,94242,147456,147488,106538,98347,0,0,147456,40976,18,18,36884,0,45078,0,24,24,24,27,27,27,27,0,81920,0,94242,0,0,0,2211840,0,0,0,106538,98347,0,2158592,2158592,2158592,2158592,2158592,2158592,2428928,2158592,2514944,2158592,2588672,2158592,2838528,2158592,2158592,40976,18,151573,45078,24,27,90143,94242,0,102439,106538,98347,0,0,0,40976,18,18,36884,0,45078,0,24,24,24,27,27,27,27,90143,0,0,1315,0,97,97,97,97,97,97,97,97,97,97,1487,97,18,131427,0,0,0,0,0,0,362,0,0,365,29315,367,0,0,29315,0,0,0,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,67,67,130,94242,0,0,0,2211840,102439,0,0,106538,98347,0,2158592,2158592,2158592,2158592,2158592,2158592,3096576,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2207744,2207744,2158592,18,0,0,0,0,0,0,0,2211840,0,0,0,0,2158592,644,2207744,2207744,2207744,3186688,2207744,0,1080,0,1084,0,1088,0,0,0,0,0,0,0,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2531466,2158730,2158730,2158730,2158730,2158730,2617482,0,94242,0,0,0,2211840,102439,0,0,106538,98347,0,2158592,2158592,2158592,2158592,2158592,2781184,2793472,2158592,2818048,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,40976,18,36884,45078,24,27,90143,159779,159744,102439,159779,98347,0,0,159744,40976,18,18,36884,0,45078,0,2224253,172032,2224253,2232448,2232448,172032,2232448,90143,0,0,2170880,0,0,550,829,2158592,2158592,2158592,2387968,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,0,18,18,124,124,127,127,127,40976,18,36884,45078,25,29,90143,94242,0,102439,106538,98347,0,0,163931,40976,18,18,36884,0,45078,249856,24,24,24,27,27,27,27,90143,0,0,2170880,0,0,827,0,2158592,2158592,2158592,2387968,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,0,4243810,4243810,24,24,27,27,27,2207744,0,0,0,0,0,0,2166784,0,0,0,0,57344,286,2158592,2158592,2158592,2158592,2707456,2732032,2158592,2158592,2158592,2822144,2826240,2158592,2895872,2158592,2158592,2924544,2158592,2158592,2973696,2158592,2207744,2207744,2207744,3186688,2207744,0,0,0,0,0,0,53248,0,0,0,0,0,97,97,97,97,97,1613,97,97,97,97,97,97,1495,97,97,97,97,97,97,97,97,97,566,97,97,97,97,97,97,2207744,0,0,0,0,0,0,2166784,546,0,0,0,0,286,2158592,2158592,2158592,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,17,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,20480,120,121,18,18,36884,0,45078,0,24,24,24,27,27,27,27,90143,0,0,2170880,0,53248,550,0,2158592,2158592,2158592,2387968,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,196608,18,266240,24,24,27,27,27,0,94242,0,0,0,38,102439,0,0,106538,98347,0,45,45,45,45,45,45,45,1535,45,45,45,45,45,45,45,1416,45,45,45,45,45,45,45,45,424,45,45,45,45,45,45,45,45,45,405,45,45,45,45,45,45,45,45,45,45,45,45,45,199,45,45,67,67,67,67,67,491,67,67,67,67,67,67,67,67,67,67,67,1766,67,67,67,1767,67,24850,24850,12564,12564,0,0,2166784,546,0,53531,53531,0,286,97,97,0,0,97,97,97,97,97,97,0,0,97,97,0,97,97,97,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,743,57889,0,2170880,0,0,550,0,97,97,97,97,97,97,97,97,97,45,45,45,45,45,45,45,45,1856,45,1858,1859,67,67,67,1009,67,67,67,67,67,67,67,67,67,67,67,1021,67,67,67,67,67,25398,0,13112,0,54074,0,0,0,0,0,0,0,0,0,2367773,2158877,2158877,2158877,2158877,2158877,2158877,2699549,2158877,2158877,2158877,2158877,2158877,2748701,2756893,2777373,2801949,97,1115,97,97,97,97,97,97,97,97,97,97,97,97,97,97,857,97,67,67,67,67,67,1258,67,67,67,67,67,67,67,67,67,67,67,1826,67,97,97,97,97,97,97,1338,97,97,97,97,97,97,97,97,97,97,97,97,97,870,97,97,67,67,67,1463,67,67,67,67,67,67,67,67,67,67,67,67,67,1579,67,67,97,97,97,1518,97,97,97,97,97,97,97,97,97,97,97,97,97,904,905,97,97,97,97,1620,97,97,97,97,97,97,97,97,97,97,97,0,921,0,0,0,0,0,0,45,1679,67,67,67,1682,67,67,67,67,67,67,67,67,67,1690,67,0,0,97,97,97,97,45,45,67,67,0,0,97,97,45,45,45,669,45,45,45,45,45,45,45,45,45,45,45,45,189,45,45,45,1748,45,45,45,1749,1750,45,45,45,45,45,45,45,45,67,67,67,67,1959,67,67,67,67,1768,67,67,67,67,67,67,67,67,97,97,97,97,97,97,97,97,97,1791,97,97,97,97,97,97,97,97,45,45,45,45,45,45,1802,67,1817,67,67,67,67,67,67,1823,67,67,67,67,97,97,97,97,0,0,0,97,97,97,97,0,97,97,97,97,1848,45,45,45,45,45,45,45,45,45,45,45,659,45,45,45,45,45,45,45,1863,67,67,67,67,67,67,67,67,67,67,67,67,495,67,67,67,67,67,1878,97,97,97,97,0,0,0,97,97,97,97,0,0,97,97,97,97,97,0,0,0,97,97,97,97,97,97,45,45,45,45,45,45,45,45,45,67,67,67,67,97,97,97,97,0,0,0,1973,97,97,97,0,97,97,97,97,97,97,97,97,97,97,97,97,97,1165,97,1167,67,24850,24850,12564,12564,0,0,2166784,0,0,53531,53531,0,286,97,97,0,0,97,97,97,97,97,97,0,0,97,97,1789,97,0,94242,0,0,0,2211840,102439,0,0,106538,98347,136,2158592,2158592,2158592,2158592,2158592,3158016,229376,2375680,2379776,2158592,2158592,2420736,2158592,2449408,2158592,2158592,67,24850,24850,12564,12564,0,0,280,547,0,53531,53531,0,286,97,97,0,0,97,97,97,97,97,97,0,1788,97,97,0,97,2024,97,45,45,45,45,45,45,67,67,67,67,67,67,67,67,235,67,67,67,67,67,57889,547,547,0,0,550,0,97,97,97,97,97,97,97,97,97,45,45,45,1799,45,45,45,67,67,67,67,67,25398,0,13112,0,54074,0,0,1092,0,0,0,0,0,97,97,97,97,1612,97,97,97,97,1616,97,1297,1472,0,0,0,0,1303,1474,0,0,0,0,1309,1476,0,0,0,0,97,97,97,1481,97,97,97,97,97,97,1488,97,0,1474,0,1476,0,97,97,97,97,97,97,97,97,97,97,97,607,97,97,97,97,40976,18,36884,45078,26,30,90143,94242,0,102439,106538,98347,0,0,213080,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,143448,40976,18,18,36884,0,45078,0,24,24,24,27,27,27,27,0,0,0,0,97,97,97,97,1482,97,1483,97,97,97,97,97,97,1326,97,97,1329,1330,97,97,97,97,97,97,1159,1160,97,97,97,97,97,97,97,97,590,97,97,97,97,97,97,97,0,94242,0,0,0,2211974,102439,0,0,106538,98347,0,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2474122,2158730,2158730,2494602,2158730,2158730,2158730,2809994,2158730,2158730,2842762,2158730,2158730,2158730,2900106,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3014794,2158730,2158730,3051658,2158730,2158730,3100810,2158730,2158730,2158730,2158730,3096714,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2207744,2207744,2207744,2207744,2207744,2572288,2207744,2207744,2207744,2207744,541,541,543,543,0,0,2166784,0,548,549,549,0,286,2158877,2158877,2158877,2863389,2892061,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,3186973,2158877,0,0,0,0,0,0,0,0,2367626,2158877,2404637,2412829,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2564381,2158877,2158877,2605341,2158877,2158877,2158877,2158877,2158877,2158877,2679069,2158877,2695453,2158877,2703645,2158877,2711837,2752797,2158877,0,2158877,2158877,2158877,2384010,2158730,2158730,2158730,2158730,3006602,2383872,2207744,2207744,2207744,2207744,2207744,2207744,3096576,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,0,0,0,0,0,2162688,0,0,2158877,2785565,2158877,2810141,2158877,2158877,2842909,2158877,2158877,2158877,2900253,2158877,2158877,2158877,2158877,2158877,2531613,2158877,2158877,2158877,2158877,2158877,2617629,2158877,2158877,2158877,2158877,2158730,2818186,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3105053,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,0,0,0,0,0,97,97,97,1611,97,97,97,97,97,97,97,1496,97,97,1499,97,97,97,97,97,2441354,2445450,2158730,2158730,2158730,2158730,2158730,2158730,2502794,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2433162,2158730,2453642,2461834,2158730,2158730,2158730,2158730,2158730,2158730,2580618,2158730,2158730,2158730,2158730,2621578,2158730,2158730,2158730,2158730,2158730,2158730,2699402,2158730,2158730,2158730,2158730,2678922,2158730,2695306,2158730,2703498,2158730,2711690,2752650,2158730,2158730,2785418,2158730,2158730,2158730,3113098,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3186826,2158730,2207744,2207744,2207744,2207744,2781184,2793472,2207744,2818048,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,541,0,543,2158877,2502941,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2580765,2158877,2158877,2158877,2158877,2621725,2158877,3019037,2158877,3043613,2158877,2158877,2158877,2158877,3080477,2158877,2158877,3113245,2158877,2158877,2158877,2158877,0,2158877,2908445,2158877,2158877,2158877,2978077,2158877,2158877,2158877,2158877,3039517,2158877,2158730,2510986,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2584714,2158730,2609290,2158730,2158730,2629770,2158730,2158730,2158730,2388106,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2605194,2158730,2158730,2158730,2158730,2687114,2158730,2715786,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2867338,2158730,2904202,2158730,2158730,2158730,2642058,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2781322,2793610,2158730,3121290,2158730,2158730,2158730,3149962,2158730,2158730,3170442,3174538,2158730,2367488,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2441216,2445312,2207744,2207744,2207744,2207744,2207744,2207744,2502656,2158877,2433309,2158877,2453789,2461981,2158877,2158877,2158877,2158877,2158877,2158877,2511133,2158877,2158877,2158877,2158877,2584861,2158877,2609437,2158877,2158877,2629917,2158877,2158877,2158877,2687261,2158877,2715933,2158877,2158730,2158730,2973834,2158730,2982026,2158730,2158730,3002506,2158730,3047562,3063946,3076234,2158730,2158730,2158730,2158730,2207744,2506752,2207744,2207744,2207744,2207744,2207744,2158877,2507037,0,0,2158877,2158730,2158730,2158730,3203210,2207744,2207744,2207744,2207744,2207744,2424832,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2564096,2207744,2207744,2207744,2707741,2732317,2158877,2158877,2158877,2822429,2826525,2158877,2896157,2158877,2158877,2924829,2158877,2158877,2973981,2158877,18,0,0,0,0,0,0,0,2211840,0,0,642,0,2158592,0,45,1529,45,45,45,45,45,45,45,45,45,45,45,45,45,1755,45,67,67,2982173,2158877,2158877,3002653,2158877,3047709,3064093,3076381,2158877,2158877,2158877,2158877,2158877,2158877,2158877,3203357,2523274,2527370,2158730,2158730,2576522,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2908298,2494749,2158877,2158877,2158877,2523421,2527517,2158877,2158877,2576669,2158877,2158877,2158877,2158877,2158877,2158877,0,40976,0,18,18,4321280,2224253,2232448,4329472,2232448,2158730,2498698,2158730,2158730,2158730,2158730,2568330,2158730,2592906,2625674,2158730,2158730,2674826,2736266,2158730,2158730,2158730,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2158730,2912394,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3109002,2158730,2158730,3133578,3145866,3154058,2375680,2207744,3108864,2207744,2207744,3133440,3145728,3153920,2375965,2380061,2158877,2158877,2421021,2158877,2449693,2158877,2158877,2158877,3117341,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3104906,2158730,2158730,2158730,2158730,2158730,2158730,2158877,2498845,2158877,2158877,0,2158877,2158877,2568477,2158877,2593053,2625821,2158877,2158877,2674973,0,0,0,0,97,97,1480,97,97,97,97,97,1485,97,97,97,0,97,97,1729,97,1731,97,97,97,97,97,97,97,311,97,97,97,97,97,97,97,97,1520,97,97,1523,97,97,1526,97,2736413,2158877,2158877,0,2158877,2912541,2158877,2158877,2158877,2158877,2158877,2158877,2158877,3109149,2158877,2158877,3014941,2158877,2158877,3051805,2158877,2158877,3100957,2158877,2158877,3121437,2158877,2158877,2158877,3150109,3133725,3146013,3154205,2158730,2408586,2416778,2158730,2465930,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3018890,2158730,3043466,2158730,2158730,2158730,2158730,3080330,2633866,2658442,2740362,2744458,2834570,2949258,2158730,2986122,2158730,2998410,2158730,2158730,2158730,3129482,2207744,2408448,2949120,2207744,2985984,2207744,2998272,2207744,2207744,2207744,3129344,2158877,2408733,2416925,2158877,2466077,2158877,2158877,3170589,3174685,2158877,0,0,0,2158730,2158730,2158730,2158730,2158730,2424970,2158730,2158730,2158730,2158730,2707594,2732170,2158730,2158730,2158730,2822282,2826378,2158730,2896010,2158730,2158730,2924682,2949405,2158877,2986269,2158877,2998557,2158877,2158877,2158877,3129629,2158730,2158730,2478218,2158730,2158730,2158730,2535562,2543754,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,2158730,3117194,2207744,2207744,2478080,2207744,2207744,2207744,2207744,3014656,2207744,2207744,3051520,2207744,2207744,3100672,2207744,2207744,3121152,2207744,2207744,2207744,2207744,2207744,2584576,2207744,2609152,2207744,2207744,2629632,2207744,2207744,2207744,2686976,2207744,2207744,2535424,2543616,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,3117056,2158877,2158877,2478365,0,2158877,2158877,2158877,2158877,2158877,2158877,2158730,2158730,2482314,2158730,2158730,2158730,2158730,2158730,2158730,2207744,2207744,2207744,2387968,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,823,0,825,2158730,2158730,2158730,2990218,2158730,2158730,2207744,2207744,2482176,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,0,0,0,0,0,2162688,135,0,2207744,2207744,2990080,2207744,2207744,2158877,2158877,2482461,2158877,2158877,0,0,0,2158877,2158877,2158877,2158877,2158877,2158730,2429066,2158730,2515082,2158730,2588810,2158730,2838666,2158730,2158730,2158730,3010698,2207744,2428928,2207744,2514944,2207744,2588672,2207744,2838528,2207744,2207744,2207744,3010560,2158877,2429213,2158877,2515229,0,0,2158877,2588957,2158877,0,2838813,2158877,2158877,2158877,3010845,2158730,2506890,2158730,2158730,2158730,2748554,2756746,2777226,2801802,2158730,2158730,2158730,2863242,2891914,2158730,2158730,2158730,2158730,2158730,2158730,2564234,2158730,2158730,2158730,2158730,2158730,2597002,2158730,2158730,2158730,3006464,2384157,0,0,2158877,2158877,2158877,2158877,3006749,2158730,2637962,2953354,2158730,2207744,2637824,2953216,2207744,0,0,2158877,2638109,2953501,2158877,2539658,2158730,2539520,2207744,0,0,2539805,2158877,2158730,2158730,2158730,2977930,2158730,2158730,2158730,2158730,3039370,2158730,2158730,2158730,2158730,2158730,2158730,3158154,2207744,0,2158877,2158730,2207744,0,2158877,2158730,2207744,0,2158877,2965642,2965504,2965789,0,0,0,0,1315,0,0,0,0,97,97,97,97,97,97,97,1484,97,97,97,97,2158592,18,0,122880,0,0,0,77824,0,2211840,0,0,0,0,2158592,0,356,0,0,0,0,0,0,28809,0,139,45,45,45,45,45,45,1751,45,45,45,45,45,45,45,67,67,1427,67,67,67,67,67,1432,67,67,67,3104768,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,122880,0,0,0,0,1315,0,0,0,0,97,97,97,97,97,97,1322,550,0,286,0,2158592,2158592,2158592,2158592,2158592,2424832,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,0,18,18,24,24,4329472,27,27,2207744,2207744,2977792,2207744,2207744,2207744,2207744,3039232,2207744,2207744,2207744,2207744,2207744,2207744,3158016,542,0,0,0,542,0,544,0,0,0,544,0,550,0,0,0,0,0,97,97,1610,97,97,97,97,97,97,97,97,898,97,97,97,97,97,97,97,0,94242,0,0,0,2211840,0,0,0,0,0,0,2158592,2158592,2158592,2158592,2158592,2424832,2158592,2158592,2158592,2158592,2158592,2158592,40976,18,36884,45078,24,27,90143,94242,237568,102439,106538,98347,0,0,20480,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,192512,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,94,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,96,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,12378,40976,18,18,36884,0,45078,0,24,24,24,126,126,126,126,90143,0,0,2170880,0,0,0,0,2158592,2158592,2158592,2387968,2158592,2158592,2158592,2158592,2158592,2158592,20480,40976,0,18,18,24,24,27,27,27,40976,18,36884,45078,24,27,90143,94242,241664,102439,106538,98347,0,0,20568,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,200797,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,20480,40976,18,36884,45078,24,27,90143,94242,0,0,0,44,0,0,20575,40976,18,36884,45078,24,27,90143,94242,0,41,41,41,0,0,1126400,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,0,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,89,40976,18,18,36884,0,45078,0,24,24,24,27,131201,27,27,90143,0,0,2170880,0,0,550,0,2158592,2158592,2158592,2387968,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2441216,2445312,2158592,2158592,2158592,2158592,2158592,0,94242,0,0,208896,2211840,102439,0,0,106538,98347,0,2158592,2158592,2158592,2158592,2158592,3186688,2158592,0,0,0,0,0,0,0,0,2367488,32768,0,0,0,0,0,0,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2433024,2158592,2453504,2461696,2158592,2158592,2158592,2158592,2158592,2158592,2510848,2158592,2158592,2158592,2158592,40976,18,36884,245783,24,27,90143,94242,0,102439,106538,98347,0,0,20480,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,221184,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,180224,40976,18,18,36884,155648,45078,0,24,24,217088,27,27,27,217088,90143,0,0,2170880,0,0,828,0,2158592,2158592,2158592,2387968,2158592,2158592,2158592,2158592,2158592,2158592,2207744,2207744,2207744,2387968,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,0,0,0,0,0,2162688,233472,0,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,45,45,718,45,45,45,45,45,45,45,45,45,727,131427,0,0,0,0,362,0,365,28809,367,139,45,45,45,45,45,45,1808,45,45,45,45,67,67,67,67,67,67,67,97,97,0,0,97,67,24850,24850,12564,12564,0,57889,0,0,0,53531,53531,367,286,97,97,0,0,97,97,97,97,97,97,1787,0,97,97,0,97,97,97,45,45,45,45,2029,45,67,67,67,67,2033,57889,0,0,54074,54074,550,0,97,97,97,97,97,97,97,97,97,45,1798,45,45,1800,45,45,0,1472,0,0,0,0,0,1474,0,0,0,0,0,1476,0,0,0,0,1315,0,0,0,0,97,97,97,97,1320,97,97,0,0,97,97,97,97,1786,97,0,0,97,97,0,1790,1527,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,663,67,24850,24850,12564,12564,0,57889,281,0,0,53531,53531,367,286,97,97,0,0,97,97,97,1785,97,97,0,0,97,97,0,97,97,1979,97,97,45,45,1983,45,1984,45,45,45,45,45,652,45,45,45,45,45,45,45,45,45,45,690,45,45,694,45,45,40976,19,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,262144,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,46,67,98,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,45,67,97,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,258048,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,1122423,40976,18,36884,45078,24,27,90143,94242,0,1114152,1114152,1114152,0,0,1114112,40976,18,36884,45078,24,27,90143,94242,37,102439,106538,98347,0,0,204800,40976,18,36884,45078,24,27,90143,94242,0,102439,106538,98347,0,0,57436,40976,18,36884,45078,24,27,33,33,0,33,33,33,0,0,0,40976,18,18,36884,0,45078,0,124,124,124,127,127,127,127,90143,0,0,2170880,0,0,550,0,2158877,2158877,2158877,2388253,2158877,2158877,2158877,2158877,2158877,2781469,2793757,2158877,2818333,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2867485,2158877,2904349,2158877,2158877,2158877,2158877,2158877,2158877,2158877,3096861,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2158877,2441501,2445597,2158877,2158877,2158877,2158877,2158877,40976,122,123,36884,0,45078,0,24,24,24,27,27,27,27,90143,0,921,29315,0,0,0,0,45,45,45,45,45,45,45,45,936,2158592,4243810,0,0,0,0,0,0,0,2211840,0,0,0,0,2158592,0,921,29315,0,0,0,0,45,45,45,45,45,45,45,935,45,45,45,715,45,45,45,45,45,45,45,723,45,45,45,45,45,1182,45,45,45,45,45,45,45,45,45,45,430,45,45,45,45,45,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,47,68,99,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,48,69,100,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,49,70,101,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,50,71,102,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,51,72,103,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,52,73,104,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,53,74,105,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,54,75,106,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,55,76,107,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,56,77,108,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,57,78,109,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,58,79,110,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,59,80,111,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,60,81,112,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,61,82,113,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,62,83,114,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,63,84,115,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,64,85,116,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,65,86,117,40976,18,36884,45078,24,27,90143,94242,38,102439,106538,98347,66,87,118,40976,18,36884,45078,24,27,90143,94242,118820,102439,106538,98347,118820,118820,118820,40976,18,18,0,0,45078,0,24,24,24,27,27,27,27,90143,0,0,1314,0,0,0,0,0,0,97,97,97,97,97,1321,97,18,131427,0,0,0,0,0,0,362,0,0,365,0,367,0,0,1315,0,97,97,97,97,97,97,97,97,97,97,97,97,97,1360,97,97,131,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,145,149,45,45,45,45,45,174,45,179,45,185,45,188,45,45,202,67,255,67,67,269,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,97,292,296,97,97,97,97,97,321,97,326,97,332,97,18,131427,0,0,0,0,0,0,362,0,0,365,29315,367,646,335,97,97,349,97,97,0,40976,0,18,18,24,24,27,27,27,437,45,45,45,45,45,45,45,45,45,45,45,45,45,67,67,67,67,67,67,67,67,523,67,67,67,67,67,67,67,67,67,67,67,67,511,67,67,67,97,97,97,620,97,97,97,97,97,97,97,97,97,97,97,97,97,1501,1502,97,793,67,67,796,67,67,67,67,67,67,67,67,67,67,808,67,0,0,97,97,97,97,45,45,67,67,0,0,97,97,2052,67,67,67,67,813,67,67,67,67,67,67,67,25398,542,13112,544,57889,0,0,54074,54074,550,830,97,97,97,97,97,97,97,97,97,315,97,97,97,97,97,97,841,97,97,97,97,97,97,97,97,97,854,97,97,97,97,97,97,589,97,97,97,97,97,97,97,97,97,867,97,97,97,97,97,97,97,891,97,97,894,97,97,97,97,97,97,97,97,97,97,906,45,937,45,45,940,45,45,45,45,45,45,948,45,45,45,45,45,734,735,67,737,67,738,67,740,67,67,67,45,967,45,45,45,45,45,45,45,45,45,45,45,45,45,45,435,45,45,45,980,45,45,45,45,45,45,45,45,45,45,45,45,45,415,45,45,67,67,1024,67,67,67,67,67,67,67,67,67,67,67,67,67,97,97,97,67,67,67,67,67,25398,1081,13112,1085,54074,1089,0,0,0,0,0,0,363,0,28809,0,139,45,45,45,45,45,45,1674,45,45,45,45,45,45,45,45,67,1913,67,1914,67,67,67,1918,67,67,97,97,97,97,1118,97,97,97,97,97,97,97,97,97,97,97,630,97,97,97,97,97,1169,97,97,97,97,97,0,921,0,1175,0,0,0,0,45,45,45,45,45,45,1534,45,45,45,45,45,1538,45,45,45,45,1233,45,45,45,45,45,45,67,67,67,67,67,67,67,67,742,67,45,45,1191,45,45,45,45,45,45,45,45,45,45,45,45,45,454,67,67,67,67,1243,67,67,67,67,67,67,67,67,67,67,67,1251,67,0,0,97,97,97,97,45,45,67,67,2050,0,97,97,45,45,45,732,45,45,67,67,67,67,67,67,67,67,67,67,67,67,97,97,67,67,67,1284,67,67,67,67,67,67,67,67,67,67,67,67,772,67,67,67,1293,67,67,67,67,67,67,0,0,0,0,0,0,0,0,0,0,368,2158592,2158592,2158592,2404352,2412544,1323,97,97,97,97,97,97,97,97,97,97,97,1331,97,97,97,0,97,97,97,97,97,97,97,97,97,97,97,1737,97,1364,97,97,97,97,97,97,97,97,97,97,97,97,1373,97,18,131427,0,0,0,0,0,0,362,0,0,365,29315,367,647,45,45,1387,45,45,1391,45,45,45,45,45,45,45,45,45,45,410,45,45,45,45,45,1400,45,45,45,45,45,45,45,45,45,45,1407,45,45,45,45,45,941,45,943,45,45,45,45,45,45,951,45,67,1438,67,67,67,67,67,67,67,67,67,67,1447,67,67,67,67,67,67,782,67,67,67,67,67,67,67,67,67,756,67,67,67,67,67,67,97,1491,97,97,97,97,97,97,97,97,97,97,1500,97,97,97,0,97,97,97,97,97,97,97,97,97,97,1736,97,45,45,1541,45,45,45,45,45,45,45,45,45,45,45,45,45,677,45,45,67,1581,67,67,67,67,67,67,67,67,67,67,67,67,67,67,791,792,67,67,67,67,1598,67,1600,67,67,67,67,67,67,67,67,1472,97,97,97,1727,97,97,97,97,97,97,97,97,97,97,97,97,97,1513,97,97,67,67,97,1879,97,1881,97,0,1884,0,97,97,97,97,0,0,97,97,97,97,97,0,0,0,1842,97,97,67,67,67,67,67,97,97,97,97,1928,0,0,0,97,97,97,97,97,97,45,45,45,45,45,1903,45,45,45,67,67,67,67,97,97,97,97,1971,0,0,97,97,97,97,0,97,97,97,97,97,97,97,97,97,0,0,0,45,45,45,1381,45,45,45,45,1976,97,97,97,97,97,45,45,45,45,45,45,45,45,45,45,45,45,1747,809,67,67,67,67,67,67,67,67,67,67,67,25398,542,13112,544,97,907,97,97,97,97,97,97,97,97,97,97,97,638,0,0,0,0,1478,97,97,97,97,97,97,97,97,97,97,97,1150,97,97,97,97,67,67,67,67,1244,67,67,67,67,67,67,67,67,67,67,67,477,67,67,67,67,67,67,1294,67,67,67,67,0,0,0,0,0,0,0,0,0,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1324,97,97,97,97,97,97,97,97,97,97,97,97,97,0,0,0,1374,97,97,97,97,0,1175,0,45,45,45,45,45,45,45,45,945,45,45,45,45,45,45,45,45,1908,45,45,1910,45,67,67,67,67,67,67,67,67,1919,67,0,0,97,97,97,97,45,2048,67,2049,0,0,97,2051,45,45,45,939,45,45,45,45,45,45,45,45,45,45,45,45,397,45,45,45,1921,67,67,1923,67,97,97,97,97,97,0,0,0,97,97,97,97,97,97,45,45,45,45,1947,45,1935,0,0,0,97,1939,97,97,1941,97,45,45,45,45,45,45,382,389,45,45,45,45,45,45,45,45,1810,45,45,1812,67,67,67,67,67,256,67,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,336,97,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,131427,0,0,0,0,362,0,365,28809,367,139,45,45,371,373,45,45,45,955,45,45,45,45,45,45,45,45,45,45,45,45,413,45,45,45,457,459,67,67,67,67,67,67,67,67,473,67,478,67,67,482,67,67,485,67,67,67,67,67,67,67,67,67,67,67,67,67,97,1828,97,554,556,97,97,97,97,97,97,97,97,570,97,575,97,97,579,97,97,582,97,97,97,97,97,97,97,97,97,97,97,97,97,330,97,97,67,746,67,67,67,67,67,67,67,67,67,758,67,67,67,67,67,67,67,1575,67,67,67,67,67,67,67,67,493,67,67,67,67,67,67,67,97,97,844,97,97,97,97,97,97,97,97,97,856,97,97,97,0,97,97,97,97,97,97,97,97,1735,97,97,97,0,97,97,97,97,97,97,97,1642,97,1644,97,97,890,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,0,67,67,67,67,1065,1066,67,67,67,67,67,67,67,67,67,67,532,67,67,67,67,67,67,67,1451,67,67,67,67,67,67,67,67,67,67,67,67,67,496,67,67,97,97,1505,97,97,97,97,97,97,97,97,97,97,97,97,97,593,97,97,0,1474,0,1476,0,97,97,97,97,97,97,97,97,97,97,1617,97,97,1635,0,1637,97,97,97,97,97,97,97,97,97,97,97,885,97,97,97,97,67,67,1704,67,67,67,67,97,97,97,97,97,97,97,97,97,565,572,97,97,97,97,97,97,97,97,1832,0,97,97,97,97,97,0,0,0,97,97,97,97,97,97,45,45,45,1946,45,45,67,67,67,67,67,97,1926,97,1927,97,0,0,0,97,97,1934,2043,0,0,97,97,97,2047,45,45,67,67,0,1832,97,97,45,45,45,981,45,45,45,45,45,45,45,45,45,45,45,45,1227,45,45,45,131427,0,0,0,0,362,0,365,28809,367,139,45,45,372,45,45,45,45,1661,1662,45,45,45,45,45,1666,45,45,45,45,45,1673,45,1675,45,45,45,45,45,45,45,67,1426,67,67,67,67,67,67,67,67,67,67,1275,67,67,67,67,67,45,418,45,45,420,45,45,423,45,45,45,45,45,45,45,45,959,45,45,962,45,45,45,45,458,67,67,67,67,67,67,67,67,67,67,67,67,67,67,483,67,67,67,67,504,67,67,506,67,67,509,67,67,67,67,67,67,67,528,67,67,67,67,67,67,67,67,1287,67,67,67,67,67,67,67,555,97,97,97,97,97,97,97,97,97,97,97,97,97,97,580,97,97,97,97,601,97,97,603,97,97,606,97,97,97,97,97,97,848,97,97,97,97,97,97,97,97,97,1498,97,97,97,97,97,97,45,45,714,45,45,45,45,45,45,45,45,45,45,45,45,45,989,990,45,67,67,67,67,67,1011,67,67,67,67,1015,67,67,67,67,67,67,67,753,67,67,67,67,67,67,67,67,467,67,67,67,67,67,67,67,45,45,1179,45,45,45,45,45,45,45,45,45,45,45,45,45,1003,1004,67,1217,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,728,67,1461,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1034,67,97,1516,97,97,97,97,97,97,97,97,97,97,97,97,97,97,871,97,67,67,67,1705,67,67,67,97,97,97,97,97,97,97,97,97,567,97,97,97,97,97,97,97,97,97,97,1715,97,97,97,97,97,97,97,97,97,0,0,0,45,45,1380,45,45,45,45,45,67,67,97,97,97,97,97,0,0,0,97,1887,97,97,0,0,97,97,97,0,97,97,97,97,97,2006,45,45,1907,45,45,45,45,45,67,67,67,67,67,67,67,67,67,1920,67,97,0,2035,97,97,97,97,97,45,45,45,45,67,67,67,1428,67,67,67,67,67,67,1435,67,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,146,45,152,45,45,165,45,175,45,180,45,45,187,190,195,45,203,254,257,262,67,270,67,67,0,24850,12564,0,0,0,281,28809,53531,97,97,97,293,97,299,97,97,312,97,322,97,327,97,97,334,337,342,97,350,97,97,0,40976,0,18,18,24,24,27,27,27,67,484,67,67,67,67,67,67,67,67,67,67,67,67,67,499,97,581,97,97,97,97,97,97,97,97,97,97,97,97,97,596,648,45,650,45,651,45,653,45,45,45,657,45,45,45,45,45,45,1954,67,67,67,1958,67,67,67,67,67,67,67,768,67,67,67,67,67,67,67,67,769,67,67,67,67,67,67,67,680,45,45,45,45,45,45,45,45,688,689,691,45,45,45,45,45,983,45,45,45,45,45,45,45,45,45,45,947,45,45,45,45,952,45,45,698,699,45,45,702,703,45,45,45,45,45,45,45,711,744,67,67,67,67,67,67,67,67,67,757,67,67,67,67,761,67,67,67,67,765,67,767,67,67,67,67,67,67,67,67,775,776,778,67,67,67,67,67,67,785,786,67,67,789,790,67,67,67,67,67,67,1442,67,67,67,67,67,67,67,67,67,97,97,97,1775,97,97,97,67,67,67,67,67,798,67,67,67,802,67,67,67,67,67,67,67,67,1465,67,67,1468,67,67,1471,67,67,810,67,67,67,67,67,67,67,67,67,821,25398,542,13112,544,57889,0,0,54074,54074,550,0,833,97,835,97,836,97,838,97,97,0,0,97,97,97,2002,97,97,97,97,97,45,45,45,45,45,1740,45,45,45,1744,45,45,45,97,842,97,97,97,97,97,97,97,97,97,855,97,97,97,97,0,1717,1718,97,97,97,97,97,1722,97,0,0,859,97,97,97,97,863,97,865,97,97,97,97,97,97,97,97,604,97,97,97,97,97,97,97,873,874,876,97,97,97,97,97,97,883,884,97,97,887,888,97,18,131427,0,0,0,0,0,0,362,225280,0,365,0,367,0,45,45,45,1531,45,45,45,45,45,45,45,45,45,45,45,1199,45,45,45,45,45,97,97,908,97,97,97,97,97,97,97,97,97,919,638,0,0,0,0,2158877,2158877,2158877,2158877,2158877,2425117,2158877,2158877,2158877,2158877,2158877,2158877,2597149,2158877,2158877,2158877,2158877,2158877,2158877,2642205,2158877,2158877,2158877,2158877,2158877,3158301,0,2375818,2379914,2158730,2158730,2420874,2158730,2449546,2158730,2158730,953,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,965,978,45,45,45,45,45,45,985,45,45,45,45,45,45,45,45,971,45,45,45,45,45,45,45,67,67,67,67,67,1027,67,1029,67,67,67,67,67,67,67,67,67,1455,67,67,67,67,67,67,67,1077,1078,67,67,25398,0,13112,0,54074,0,0,0,0,0,0,0,0,366,0,139,2158730,2158730,2158730,2404490,2412682,1113,97,97,97,97,97,97,1121,97,1123,97,97,97,97,97,97,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1540,1155,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,615,1168,97,97,1171,1172,97,97,0,921,0,1175,0,0,0,0,45,45,45,45,45,1533,45,45,45,45,45,45,45,45,45,1663,45,45,45,45,45,45,45,45,45,183,45,45,45,45,201,45,45,45,1219,45,45,45,45,45,45,45,1226,45,45,45,45,45,168,45,45,45,45,45,45,45,45,45,45,427,45,45,45,45,45,45,45,1231,45,45,45,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,67,1242,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1046,67,67,1254,67,1256,67,67,67,67,67,67,67,67,67,67,67,67,806,807,67,67,97,1336,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1111,97,97,97,97,97,1351,97,97,97,1354,97,97,97,1359,97,97,97,0,97,97,97,97,1640,97,97,97,97,97,97,97,897,97,97,97,902,97,97,97,97,97,97,97,97,1366,97,97,97,97,97,97,97,1371,97,97,97,0,97,97,97,1730,97,97,97,97,97,97,97,97,915,97,97,97,97,0,360,0,67,67,67,1440,67,67,67,67,67,67,67,67,67,67,67,67,1017,67,1019,67,67,67,67,67,1453,67,67,67,67,67,67,67,67,67,67,1459,97,97,97,1493,97,97,97,97,97,97,97,97,97,97,97,97,97,1525,97,97,97,97,97,97,1507,97,97,97,97,97,97,97,97,97,97,1514,67,67,67,67,1584,67,67,67,67,67,1590,67,67,67,67,67,67,67,783,67,67,67,788,67,67,67,67,67,67,67,67,67,1599,1601,67,67,67,1604,67,1606,1607,67,1472,0,1474,0,1476,0,97,97,97,97,97,97,1614,97,97,97,97,45,45,1850,45,45,45,45,1855,45,45,45,45,45,1222,45,45,45,45,45,45,45,45,45,1229,97,1618,97,97,97,97,97,97,97,1625,97,97,97,97,97,0,1175,0,45,45,45,45,45,45,45,45,447,45,45,45,45,45,67,67,1633,97,97,0,97,97,97,97,97,97,97,97,1643,1645,97,97,0,0,97,97,1784,97,97,97,0,0,97,97,0,97,1894,1895,97,1897,97,45,45,45,45,45,45,45,45,45,656,45,45,45,45,45,45,97,1648,97,1650,1651,97,0,45,45,45,1654,45,45,45,45,45,169,45,45,45,45,45,45,45,45,45,45,658,45,45,45,45,664,45,45,1659,45,45,45,45,45,45,45,45,45,45,45,45,45,1187,45,45,1669,45,45,45,45,45,45,45,45,45,45,45,45,45,45,67,1005,67,67,1681,67,67,67,67,67,67,67,1686,67,67,67,67,67,67,67,784,67,67,67,67,67,67,67,67,1055,67,67,67,67,1060,67,67,97,97,1713,97,0,97,97,97,97,97,97,97,97,97,0,0,0,1378,45,45,45,45,45,45,45,408,45,45,45,45,45,45,45,45,1547,45,1549,45,45,45,45,45,97,97,1780,0,97,97,97,97,97,97,0,0,97,97,0,97,97,97,45,45,2027,2028,45,45,67,67,2031,2032,67,45,45,1804,45,45,45,45,45,45,45,45,67,67,67,67,67,67,1917,67,67,67,67,67,67,67,1819,67,67,67,67,67,67,67,67,97,97,97,1708,97,97,97,97,97,45,45,1862,67,67,67,67,67,67,67,67,67,67,67,67,67,497,67,67,67,1877,97,97,97,97,97,0,0,0,97,97,97,97,0,0,97,97,97,97,97,1839,0,0,97,97,97,97,1936,0,0,97,97,97,97,97,97,1943,1944,1945,45,45,45,45,670,45,45,45,45,674,45,45,45,45,678,45,1948,45,1950,45,45,45,45,1955,1956,1957,67,67,67,1960,67,1962,67,67,67,67,1967,1968,1969,97,0,0,0,97,97,1974,97,0,1936,0,97,97,97,97,97,97,45,45,45,45,45,45,45,45,1906,0,1977,97,97,97,97,45,45,45,45,45,45,45,45,45,45,45,1746,45,45,45,45,2011,67,67,2013,67,67,67,2017,97,97,0,0,2021,97,8192,97,97,2025,45,45,45,45,45,45,67,67,67,67,67,1916,67,67,67,67,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,140,45,45,45,1180,45,45,45,45,1184,45,45,45,45,45,45,45,387,45,392,45,45,396,45,45,399,45,45,67,207,67,67,67,67,67,67,236,67,67,67,67,67,67,67,800,67,67,67,67,67,67,67,67,67,1603,67,67,67,67,67,0,97,97,287,97,97,97,97,97,97,316,97,97,97,97,97,97,0,45,45,45,45,45,45,45,1656,1657,45,376,45,45,45,45,45,388,45,45,45,45,45,45,45,45,1406,45,45,45,45,45,45,45,67,67,67,67,462,67,67,67,67,67,474,67,67,67,67,67,67,67,817,67,67,67,67,25398,542,13112,544,97,97,97,97,559,97,97,97,97,97,571,97,97,97,97,97,97,896,97,97,97,900,97,97,97,97,97,97,912,914,97,97,97,97,97,0,0,0,45,45,45,45,45,45,45,45,391,45,45,45,45,45,45,45,45,713,45,45,45,45,45,45,45,45,45,45,45,45,45,45,662,45,1140,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,636,67,67,1283,67,67,67,67,67,67,67,67,67,67,67,67,67,513,67,67,1363,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,889,97,97,97,1714,0,97,97,97,97,97,97,97,97,97,0,0,926,45,45,45,45,45,45,45,45,672,45,45,45,45,45,45,45,45,686,45,45,45,45,45,45,45,45,944,45,45,45,45,45,45,45,45,1676,45,45,45,45,45,45,67,97,97,97,1833,0,97,97,97,97,97,0,0,0,97,97,97,97,97,97,45,45,45,45,1902,45,45,45,45,45,957,45,45,45,45,961,45,963,45,45,45,67,97,2034,0,97,97,97,97,97,2040,45,45,45,2042,67,67,67,67,67,67,1574,67,67,67,67,67,1578,67,67,67,67,67,67,799,67,67,67,804,67,67,67,67,67,67,67,1298,0,0,0,1304,0,0,0,1310,132,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,45,45,1414,45,45,45,45,45,45,45,45,45,45,428,45,45,45,45,45,57889,0,0,54074,54074,550,831,97,97,97,97,97,97,97,97,97,568,97,97,97,97,578,97,45,45,968,45,45,45,45,45,45,45,45,45,45,45,45,45,1228,45,45,67,67,67,67,67,25398,1082,13112,1086,54074,1090,0,0,0,0,0,0,364,0,0,0,139,2158592,2158592,2158592,2404352,2412544,67,67,67,67,1464,67,67,67,67,67,67,67,67,67,67,67,510,67,67,67,67,97,97,97,97,1519,97,97,97,97,97,97,97,97,97,97,97,918,97,0,0,0,0,1528,45,45,45,45,45,45,45,45,45,45,45,45,45,45,976,45,1554,45,45,45,45,45,45,45,45,1562,45,45,1565,45,45,45,45,683,45,45,45,687,45,45,692,45,45,45,45,45,1953,45,67,67,67,67,67,67,67,67,67,1014,67,67,67,67,67,67,1568,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,0,67,67,67,67,67,1585,67,67,67,67,67,67,67,67,67,1594,97,97,1649,97,97,97,0,45,45,1653,45,45,45,45,45,45,383,45,45,45,45,45,45,45,45,45,986,45,45,45,45,45,45,45,45,1670,45,1672,45,45,45,45,45,45,45,45,45,45,67,736,67,67,67,67,67,741,67,67,67,1680,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1074,67,67,67,1692,67,67,67,67,67,67,67,1697,67,1699,67,67,67,67,67,67,1012,67,67,67,67,67,67,67,67,67,468,475,67,67,67,67,67,67,1769,67,67,67,67,67,67,67,97,97,97,97,97,97,97,624,97,97,97,97,97,97,634,97,97,1792,97,97,97,97,97,97,97,45,45,45,45,45,45,45,958,45,45,45,45,45,45,964,45,150,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,977,204,45,67,67,67,217,67,67,67,67,67,67,67,67,67,67,787,67,67,67,67,67,67,67,67,67,67,271,67,0,24850,12564,0,0,0,0,28809,53531,97,97,97,97,351,97,0,40976,0,18,18,24,24,27,27,27,45,45,938,45,45,45,45,45,45,45,45,45,45,45,45,45,1398,45,45,45,153,45,161,45,45,45,45,45,45,45,45,45,45,45,45,660,661,45,45,205,45,67,67,67,67,220,67,228,67,67,67,67,67,67,67,0,0,0,0,0,280,94,0,0,67,67,67,67,67,272,67,0,24850,12564,0,0,0,0,28809,53531,97,97,97,97,352,97,0,40976,0,18,18,24,24,27,27,27,45,439,45,45,45,45,45,445,45,45,45,452,45,45,67,67,212,216,67,67,67,67,67,241,67,246,67,252,67,67,486,67,67,67,67,67,67,67,494,67,67,67,67,67,67,67,1245,67,67,67,67,67,67,67,67,1013,67,67,1016,67,67,67,67,67,521,67,67,525,67,67,67,67,67,531,67,67,67,538,67,0,0,2046,97,97,97,45,45,67,67,0,0,97,97,45,45,45,1192,45,45,45,45,45,45,45,45,45,45,45,45,1418,45,45,1421,97,97,583,97,97,97,97,97,97,97,591,97,97,97,97,97,97,913,97,97,97,97,97,97,0,0,0,45,45,45,45,45,45,45,1384,97,618,97,97,622,97,97,97,97,97,628,97,97,97,635,97,18,131427,0,0,0,639,0,132,362,0,0,365,29315,367,0,921,29315,0,0,0,0,45,45,45,45,932,45,45,45,45,45,1544,45,45,45,45,45,1550,45,45,45,45,45,1194,45,1196,45,45,45,45,45,45,45,45,999,45,45,45,45,45,67,67,45,45,667,45,45,45,45,45,45,45,45,45,45,45,45,45,1408,45,45,45,696,45,45,45,701,45,45,45,45,45,45,45,45,710,45,45,45,1220,45,45,45,45,45,45,45,45,45,45,45,45,194,45,45,45,729,45,45,45,45,45,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,797,67,67,67,67,67,67,805,67,67,67,67,67,67,67,1587,67,1589,67,67,67,67,67,67,67,67,1763,67,67,67,67,67,67,67,0,0,0,0,0,0,2162968,0,0,67,67,67,67,67,814,816,67,67,67,67,67,25398,542,13112,544,67,67,1008,67,67,67,67,67,67,67,67,67,67,67,1020,67,0,97,45,67,0,97,45,67,0,97,45,67,97,0,0,97,97,97,97,97,45,45,45,45,67,67,67,67,1429,67,1430,67,67,67,67,67,1062,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,518,1076,67,67,67,67,25398,0,13112,0,54074,0,0,0,0,0,0,0,0,28809,0,139,45,45,45,45,45,97,97,97,97,1102,97,97,97,97,97,97,97,97,97,97,97,1124,97,1126,97,97,1114,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1112,97,97,1156,97,97,97,97,97,97,97,97,97,97,97,97,97,594,97,97,97,97,1170,97,97,97,97,0,921,0,0,0,0,0,0,45,45,45,45,1532,45,45,45,45,1536,45,45,45,45,45,172,45,45,45,45,45,45,45,45,45,45,706,45,45,709,45,45,1177,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1202,45,1204,45,45,45,45,45,45,45,45,45,45,45,45,1215,45,45,45,1232,45,45,45,45,45,45,45,67,1237,67,67,67,67,67,67,1053,1054,67,67,67,67,67,67,1061,67,67,1282,67,67,67,67,67,67,67,67,67,1289,67,67,67,1292,97,97,97,97,1339,97,97,97,97,97,97,1344,97,97,97,97,45,1849,45,1851,45,45,45,45,45,45,45,45,721,45,45,45,45,45,726,45,1385,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1188,45,45,1401,1402,45,45,45,45,1405,45,45,45,45,45,45,45,45,1752,45,45,45,45,45,67,67,1410,45,45,45,1413,45,1415,45,45,45,45,45,45,1419,45,45,45,45,1806,45,45,45,45,45,45,67,67,67,67,67,67,67,97,97,2019,0,97,67,67,67,1452,67,67,67,67,67,67,67,67,1457,67,67,67,67,67,67,1259,67,67,67,67,67,67,1264,67,67,1460,67,1462,67,67,67,67,67,67,1466,67,67,67,67,67,67,67,67,1588,67,67,67,67,67,67,67,0,1300,0,0,0,1306,0,0,0,97,97,97,1506,97,97,97,97,97,97,97,97,1512,97,97,97,0,1728,97,97,97,97,97,97,97,97,97,97,97,901,97,97,97,97,1515,97,1517,97,97,97,97,97,97,1521,97,97,97,97,97,97,0,45,1652,45,45,45,1655,45,45,45,45,45,1542,45,45,45,45,45,45,45,45,45,45,45,45,45,1552,1553,45,45,45,1556,45,45,45,45,45,45,45,45,45,45,45,45,45,693,45,45,45,67,67,67,67,1572,67,67,67,67,1576,67,67,67,67,67,67,67,67,1602,67,67,1605,67,67,67,0,67,1582,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1580,67,67,1596,67,67,67,67,67,67,67,67,67,67,67,67,67,0,542,0,544,67,67,67,67,1759,67,67,67,67,67,67,67,67,67,67,67,533,67,67,67,67,67,67,67,1770,67,67,67,67,67,97,97,97,97,97,97,1777,97,97,97,1793,97,97,97,97,97,45,45,45,45,45,45,45,998,45,45,1001,1002,45,45,67,67,45,1861,45,67,67,67,67,67,67,67,67,1871,67,1873,1874,67,0,97,45,67,0,97,45,67,16384,97,45,67,97,0,0,0,1473,0,1082,0,0,0,1475,0,1086,0,0,0,1477,1876,67,97,97,97,97,97,1883,0,1885,97,97,97,1889,0,0,0,286,0,0,0,286,0,2367488,2158592,2158592,2158592,2158592,2158592,2158592,0,40976,0,18,18,24,24,126,126,126,2053,0,2055,45,67,0,97,45,67,0,97,45,67,97,0,0,97,97,97,2039,97,45,45,45,45,67,67,67,67,67,226,67,67,67,67,67,67,67,67,1246,67,67,1249,1250,67,67,67,132,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,141,45,45,45,1403,45,45,45,45,45,45,45,45,45,45,45,45,1186,45,45,1189,45,45,155,45,45,45,45,45,45,45,45,45,191,45,45,45,45,700,45,45,45,45,45,45,45,45,45,45,45,1753,45,45,45,67,67,45,45,67,208,67,67,67,222,67,67,67,67,67,67,67,67,67,1764,67,67,67,67,67,67,67,258,67,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,288,97,97,97,302,97,97,97,97,97,97,97,97,97,627,97,97,97,97,97,97,338,97,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,131427,0,0,0,0,362,0,365,28809,367,139,45,370,45,45,45,45,716,45,45,45,45,45,722,45,45,45,45,45,45,1912,67,67,67,67,67,67,67,67,67,819,67,67,25398,542,13112,544,45,403,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1409,45,67,67,67,67,489,67,67,67,67,67,67,67,67,67,67,67,771,67,67,67,67,520,67,67,67,67,67,67,67,67,67,67,67,534,67,67,67,67,67,67,1271,67,67,67,1274,67,67,67,1279,67,67,24850,24850,12564,12564,0,57889,0,0,0,53531,53531,367,286,97,553,97,97,97,97,586,97,97,97,97,97,97,97,97,97,97,97,1138,97,97,97,97,617,97,97,97,97,97,97,97,97,97,97,97,631,97,97,97,0,1834,97,97,97,97,97,0,0,0,97,97,97,97,97,353,0,40976,0,18,18,24,24,27,27,27,45,45,668,45,45,45,45,45,45,45,45,45,45,45,45,45,724,45,45,45,45,45,682,45,45,45,45,45,45,45,45,45,45,45,45,45,949,45,45,45,67,67,747,748,67,67,67,67,755,67,67,67,67,67,67,67,0,0,0,1302,0,0,0,1308,0,67,794,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1701,67,97,97,97,845,846,97,97,97,97,853,97,97,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,97,97,892,97,97,97,97,97,97,97,97,97,97,97,97,97,610,97,97,45,992,45,45,45,45,45,45,45,45,45,45,45,45,67,67,67,1239,67,67,67,1063,67,67,67,67,67,1068,67,67,67,67,67,67,67,0,0,1301,0,0,0,1307,0,0,97,1141,97,97,97,97,97,97,97,97,97,97,97,1152,97,97,0,0,97,97,2001,0,97,2003,97,97,97,45,45,45,1739,45,45,45,1742,45,45,45,45,45,97,97,97,97,1157,97,97,97,97,97,1162,97,97,97,97,97,97,1145,97,97,97,97,97,1151,97,97,97,1253,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,539,45,1423,45,45,67,67,67,67,67,67,67,1431,67,67,67,67,67,67,67,1695,67,67,67,67,67,1700,67,1702,67,67,1439,67,67,67,67,67,67,67,67,67,67,67,67,67,514,67,67,97,97,1492,97,97,97,97,97,97,97,97,97,97,97,97,97,611,97,97,1703,67,67,67,67,67,67,97,97,97,97,97,97,97,97,97,852,97,97,97,97,97,97,45,1949,45,1951,45,45,45,67,67,67,67,67,67,67,1961,67,0,97,45,67,0,97,2060,2061,0,2062,45,67,97,0,0,2036,97,97,97,97,45,45,45,45,67,67,67,67,67,223,67,67,237,67,67,67,67,67,67,67,1272,67,67,67,67,67,67,67,67,507,67,67,67,67,67,67,67,1963,67,67,67,97,97,97,97,0,1972,0,97,97,97,1975,0,921,29315,0,0,0,0,45,45,45,931,45,45,45,45,45,407,45,45,45,45,45,45,45,45,45,417,45,45,1989,67,67,67,67,67,67,67,67,67,67,67,1996,97,18,131427,0,0,360,0,0,0,362,0,0,365,29315,367,0,921,29315,0,0,0,0,45,45,930,45,45,45,45,45,45,444,45,45,45,45,45,45,45,67,67,97,97,1998,0,97,97,97,0,97,97,97,97,97,45,45,45,45,45,45,1985,45,1986,45,45,45,156,45,45,170,45,45,45,45,45,45,45,45,45,45,675,45,45,45,45,679,131427,0,358,0,0,362,0,365,28809,367,139,45,45,45,45,45,381,45,45,45,45,45,45,45,45,45,400,45,45,419,45,45,45,45,45,45,45,45,45,45,45,45,436,67,67,67,67,67,505,67,67,67,67,67,67,67,67,67,67,820,67,25398,542,13112,544,67,67,522,67,67,67,67,67,529,67,67,67,67,67,67,67,0,1299,0,0,0,1305,0,0,0,97,97,619,97,97,97,97,97,626,97,97,97,97,97,97,97,1105,97,97,97,97,1109,97,97,97,67,67,67,67,749,67,67,67,67,67,67,67,67,67,760,67,0,97,45,67,2058,97,45,67,0,97,45,67,97,0,0,97,97,97,97,97,45,45,45,2041,67,67,67,67,67,780,67,67,67,67,67,67,67,67,67,67,67,67,67,516,67,67,97,97,97,878,97,97,97,97,97,97,97,97,97,97,97,97,97,1629,97,0,45,979,45,45,45,45,984,45,45,45,45,45,45,45,45,45,1198,45,45,45,45,45,45,67,1023,67,67,67,67,1028,67,67,67,67,67,67,67,67,67,470,67,67,67,67,67,67,67,67,67,67,67,25398,0,13112,0,54074,0,0,0,1094,0,0,0,1092,1315,0,0,0,0,97,97,97,97,97,97,97,97,97,1486,97,1489,97,97,97,1117,97,97,97,97,1122,97,97,97,97,97,97,97,1146,97,97,97,97,97,97,97,97,881,97,97,97,886,97,97,97,1311,0,0,0,0,0,0,0,0,97,97,97,97,97,97,97,1615,97,97,97,97,97,1619,97,97,97,97,97,97,97,97,97,97,97,97,1631,97,97,1847,97,45,45,45,45,1852,45,45,45,45,45,45,45,1235,45,45,45,67,67,67,67,67,1868,67,67,67,1872,67,67,67,67,67,97,97,97,97,1882,0,0,0,97,97,97,97,0,1891,67,67,67,67,67,97,97,97,97,97,1929,0,0,97,97,97,97,97,97,45,1900,45,1901,45,45,45,1905,45,67,2054,97,45,67,0,97,45,67,0,97,45,67,97,0,0,97,2037,2038,97,97,45,45,45,45,67,67,67,67,1867,67,67,67,67,67,67,67,67,67,1774,97,97,97,97,97,97,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,142,45,45,45,1412,45,45,45,45,45,45,45,45,45,45,45,45,432,45,45,45,45,45,157,45,45,171,45,45,45,182,45,45,45,45,200,45,45,45,1543,45,45,45,45,45,45,45,45,1551,45,45,45,45,1181,45,45,45,45,45,45,45,45,45,45,45,1211,45,45,45,1214,45,45,45,67,209,67,67,67,224,67,67,238,67,67,67,249,67,0,97,2056,2057,0,2059,45,67,0,97,45,67,97,0,0,1937,97,97,97,97,97,97,45,45,45,45,45,45,1741,45,45,45,45,45,45,67,67,67,267,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,289,97,97,97,304,97,97,318,97,97,97,329,97,97,0,0,97,1783,97,97,97,97,0,0,97,97,0,97,97,97,45,2026,45,45,45,45,67,2030,67,67,67,67,67,67,1041,67,67,67,67,67,67,67,67,67,1044,67,67,67,67,67,67,97,97,347,97,97,97,0,40976,0,18,18,24,24,27,27,27,45,666,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1420,45,57889,0,0,54074,54074,550,0,97,97,97,97,97,97,97,97,840,67,1007,67,67,67,67,67,67,67,67,67,67,67,67,67,67,759,67,67,67,67,67,67,67,1052,67,67,67,67,67,67,67,67,67,67,1031,67,67,67,67,67,97,97,97,1101,97,97,97,97,97,97,97,97,97,97,97,97,592,97,97,97,1190,45,45,45,45,45,1195,45,1197,45,45,45,45,1201,45,45,45,45,1952,45,45,67,67,67,67,67,67,67,67,67,67,67,67,250,67,67,67,1255,67,1257,67,67,67,67,1261,67,67,67,67,67,67,67,67,1685,67,67,67,67,67,67,67,0,24851,12565,0,0,0,0,28809,53532,67,67,1267,67,67,67,67,67,67,1273,67,67,67,67,67,67,67,67,1696,67,67,67,67,67,67,67,0,0,0,0,0,0,2162688,0,0,1281,67,67,67,67,1285,67,67,67,67,67,67,67,67,67,67,1070,67,67,67,67,67,1335,97,1337,97,97,97,97,1341,97,97,97,97,97,97,97,97,882,97,97,97,97,97,97,97,1347,97,97,97,97,97,97,1353,97,97,97,97,97,97,1361,97,18,131427,0,638,0,0,0,0,362,0,0,365,29315,367,0,544,0,550,0,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2473984,2158592,2158592,2158592,2990080,2158592,2158592,2207744,2207744,2482176,2207744,2207744,2207744,2207744,2207744,2207744,2207744,0,0,0,0,0,0,2162688,0,53530,97,97,97,1365,97,97,97,97,97,97,97,97,97,97,97,97,608,97,97,97,45,45,1424,45,1425,67,67,67,67,67,67,67,67,67,67,67,1058,67,67,67,67,45,1555,45,45,1557,45,45,45,45,45,45,45,45,45,45,45,707,45,45,45,45,67,67,1570,67,67,67,67,67,67,67,67,67,67,67,67,67,773,67,67,1595,67,67,1597,67,67,67,67,67,67,67,67,67,67,67,0,0,0,0,0,0,0,0,0,0,139,2158592,2158592,2158592,2404352,2412544,97,97,97,1636,97,97,97,1639,97,97,1641,97,97,97,97,97,97,1173,0,921,0,0,0,0,0,0,45,67,67,67,1693,67,67,67,67,67,67,67,1698,67,67,67,67,67,67,67,1773,67,97,97,97,97,97,97,97,625,97,97,97,97,97,97,97,97,850,97,97,97,97,97,97,97,97,880,97,97,97,97,97,97,97,97,1106,97,97,97,97,97,97,97,1860,45,45,67,67,1865,67,67,67,67,1870,67,67,67,67,1875,67,67,97,97,1880,97,97,0,0,0,97,97,1888,97,0,0,0,1938,97,97,97,97,97,45,45,45,45,45,45,1854,45,45,45,45,45,45,45,1909,45,45,1911,67,67,67,67,67,67,67,67,67,67,1248,67,67,67,67,67,67,1922,67,67,1924,97,97,97,97,97,0,0,0,97,97,97,97,97,1898,45,45,45,45,45,45,1904,45,45,67,67,67,67,97,97,97,97,0,0,16384,97,97,97,97,0,97,97,97,97,97,97,97,97,97,0,1724,2008,2009,45,45,67,67,67,2014,2015,67,67,97,97,0,0,97,97,97,0,97,97,97,97,97,45,45,45,45,45,45,45,45,45,45,45,45,45,2022,0,2023,97,97,45,45,45,45,45,45,67,67,67,67,67,67,1869,67,67,67,67,67,67,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,147,151,154,45,162,45,45,176,178,181,45,45,45,192,196,45,45,45,45,2012,67,67,67,67,67,67,2018,97,0,0,97,1978,97,97,97,1982,45,45,45,45,45,45,45,45,45,972,973,45,45,45,45,45,67,259,263,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,97,294,298,301,97,309,97,97,323,325,328,97,97,97,97,97,560,97,97,97,569,97,97,97,97,97,97,306,97,97,97,97,97,97,97,97,97,1624,97,97,97,97,97,97,97,0,921,0,1175,0,0,0,0,45,339,343,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,67,67,503,67,67,67,67,67,67,67,67,67,512,67,67,519,97,97,600,97,97,97,97,97,97,97,97,97,609,97,97,616,45,649,45,45,45,45,45,654,45,45,45,45,45,45,45,45,1393,45,45,45,45,45,45,45,45,1209,45,45,45,45,45,45,45,67,763,67,67,67,67,67,67,67,67,770,67,67,67,774,67,0,2045,97,97,97,97,45,45,67,67,0,0,97,97,45,45,45,994,45,45,45,45,45,45,45,45,45,45,67,67,213,67,219,67,67,232,67,242,67,247,67,67,67,779,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1018,67,67,67,67,811,67,67,67,67,67,67,67,67,67,25398,542,13112,544,57889,0,0,54074,54074,550,0,97,834,97,97,97,97,97,839,97,18,131427,0,638,0,0,0,0,362,0,0,365,29315,367,645,97,97,861,97,97,97,97,97,97,97,97,868,97,97,97,872,97,97,877,97,97,97,97,97,97,97,97,97,97,97,97,97,613,97,97,97,97,97,909,97,97,97,97,97,97,97,97,97,0,0,0,18,18,24,24,27,27,27,1036,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1047,67,67,67,1050,67,67,67,67,67,67,67,67,67,67,67,67,1033,67,67,67,97,97,1130,97,97,97,97,97,97,97,97,97,97,97,97,97,638,0,0,67,67,67,1295,67,67,67,0,0,0,0,0,0,0,0,0,97,1317,97,97,97,97,97,97,1375,97,97,97,0,0,0,45,1379,45,45,45,45,45,45,422,45,45,45,429,431,45,45,45,45,0,1090,0,0,97,1479,97,97,97,97,97,97,97,97,97,97,1357,97,97,97,97,97,97,97,97,97,1716,97,97,97,97,97,97,97,97,97,1723,0,921,29315,0,0,0,0,45,929,45,45,45,45,45,45,45,1392,45,45,45,45,45,45,45,45,45,960,45,45,45,45,45,45,97,97,97,1738,45,45,45,45,45,45,45,1743,45,45,45,45,166,45,45,45,45,184,186,45,45,197,45,45,97,1779,0,0,97,97,97,97,97,97,0,0,97,97,0,97,18,131427,0,638,0,0,0,0,362,0,640,365,29315,367,0,921,29315,0,0,0,0,45,45,45,45,45,45,45,45,45,45,1537,45,45,45,45,45,1803,45,45,45,45,45,1809,45,45,45,67,67,67,1814,67,67,67,67,67,67,1821,67,67,67,67,67,67,97,97,97,97,97,0,0,0,97,97,97,97,0,0,67,67,67,1818,67,67,67,67,67,1824,67,67,67,97,97,97,97,97,0,0,0,97,97,97,97,1890,0,1829,97,97,0,0,97,97,1836,97,97,0,0,0,97,97,97,97,1981,45,45,45,45,45,45,45,45,45,1987,1845,97,97,97,45,45,45,45,45,1853,45,45,45,1857,45,45,45,67,1864,67,1866,67,67,67,67,67,67,67,67,67,97,97,97,97,97,97,97,1710,1711,67,67,97,97,97,97,97,0,0,0,1886,97,97,97,0,0,97,97,97,97,1838,0,0,0,97,1843,97,0,1893,97,97,97,97,97,45,45,45,45,45,45,45,45,45,45,1745,45,45,67,67,67,67,67,97,97,97,97,97,0,0,1931,97,97,97,97,97,588,97,97,97,97,97,97,97,97,97,97,629,97,97,97,97,97,67,2044,0,97,97,97,97,45,45,67,67,0,0,97,97,45,45,45,1660,45,45,45,45,45,45,45,45,45,45,45,45,453,45,455,67,67,67,67,268,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,348,97,97,97,0,40976,0,18,18,24,24,27,27,27,131427,0,359,0,0,362,0,365,28809,367,139,45,45,45,45,45,421,45,45,45,45,45,45,45,434,45,45,695,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1667,45,0,921,29315,0,925,0,0,45,45,45,45,45,45,45,45,45,1811,45,67,67,67,67,67,67,1037,67,1039,67,67,67,67,67,67,67,67,67,67,67,67,1277,67,67,67,67,67,67,67,67,25398,0,13112,0,54074,0,0,0,1095,0,0,0,1096,97,97,97,97,97,97,97,97,97,97,97,97,869,97,97,97,97,97,97,1131,97,1133,97,97,97,97,97,97,97,97,97,97,1370,97,97,97,97,97,1312,0,0,0,0,1096,0,0,0,97,97,97,97,97,97,97,1327,97,97,97,97,97,1332,97,97,97,1830,97,0,0,97,97,97,97,97,0,0,0,97,97,97,1896,97,97,45,45,45,45,45,45,45,45,45,1548,45,45,45,45,45,45,133,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,45,380,45,45,45,45,45,45,45,45,45,45,401,45,45,158,45,45,45,45,45,45,45,45,45,45,45,45,45,1200,45,45,45,45,206,67,67,67,67,67,225,67,67,67,67,67,67,67,67,754,67,67,67,67,67,67,67,57889,0,0,54074,54074,550,832,97,97,97,97,97,97,97,97,97,1342,97,97,97,97,97,97,67,67,67,67,67,25398,1083,13112,1087,54074,1091,0,0,0,0,0,0,1316,0,831,97,97,97,97,97,97,97,1174,921,0,1175,0,0,0,0,45,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,45,148,67,67,264,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,97,295,97,97,97,97,313,97,97,97,97,331,333,97,18,131427,356,638,0,0,0,0,362,0,0,365,0,367,0,45,45,1530,45,45,45,45,45,45,45,45,45,45,45,45,988,45,45,45,97,344,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,402,404,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1756,67,438,45,45,45,45,45,45,45,45,449,450,45,45,45,67,67,214,218,221,67,229,67,67,243,245,248,67,67,67,67,67,488,490,67,67,67,67,67,67,67,67,67,67,67,1071,67,1073,67,67,67,67,67,524,67,67,67,67,67,67,67,67,535,536,67,67,67,67,67,67,1683,1684,67,67,67,67,1688,1689,67,67,67,67,67,67,1586,67,67,67,67,67,67,67,67,67,469,67,67,67,67,67,67,97,97,97,585,587,97,97,97,97,97,97,97,97,97,97,97,1163,97,97,97,97,97,97,97,621,97,97,97,97,97,97,97,97,632,633,97,97,0,0,1782,97,97,97,97,97,0,0,97,97,0,97,712,45,45,45,717,45,45,45,45,45,45,45,45,725,45,45,45,163,167,173,177,45,45,45,45,45,193,45,45,45,45,982,45,45,45,45,45,45,987,45,45,45,45,45,1558,45,1560,45,45,45,45,45,45,45,45,704,705,45,45,45,45,45,45,45,45,731,45,45,45,67,67,67,67,67,739,67,67,67,67,67,67,273,0,24850,12564,0,0,0,0,28809,53531,67,67,67,764,67,67,67,67,67,67,67,67,67,67,67,67,1290,67,67,67,67,67,67,812,67,67,67,67,818,67,67,67,25398,542,13112,544,57889,0,0,54074,54074,550,0,97,97,97,97,97,837,97,97,97,97,97,602,97,97,97,97,97,97,97,97,97,97,1137,97,97,97,97,97,97,97,97,97,862,97,97,97,97,97,97,97,97,97,97,97,1627,97,97,97,0,97,97,97,97,910,97,97,97,97,916,97,97,97,0,0,0,97,97,1940,97,97,1942,45,45,45,45,45,45,385,45,45,45,45,395,45,45,45,45,966,45,969,45,45,45,45,45,45,45,45,45,45,975,45,45,45,406,45,45,45,45,45,45,45,45,45,45,45,45,974,45,45,45,67,67,67,67,1010,67,67,67,67,67,67,67,67,67,67,67,1262,67,67,67,67,67,67,67,67,67,1040,67,1042,67,1045,67,67,67,67,67,67,67,97,1706,97,97,97,1709,97,97,97,67,67,67,67,1051,67,67,67,67,67,1057,67,67,67,67,67,67,67,1443,67,67,1446,67,67,67,67,67,67,67,1297,0,0,0,1303,0,0,0,1309,67,67,67,67,1079,25398,0,13112,0,54074,0,0,0,0,0,0,0,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2207744,2207744,2207744,2207744,2207744,2572288,2207744,2207744,2207744,1098,97,97,97,97,97,1104,97,97,97,97,97,97,97,97,97,1356,97,97,97,97,97,97,1128,97,97,97,97,97,97,1134,97,1136,97,1139,97,97,97,97,97,97,1622,97,97,97,97,97,97,97,97,0,921,0,0,0,1176,0,646,45,67,67,67,1268,67,67,67,67,67,67,67,67,67,67,67,67,1469,67,67,67,97,1348,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1127,97,67,1569,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1448,1449,67,1816,67,67,67,67,67,67,67,67,67,1825,67,67,1827,97,97,0,1781,97,97,97,97,97,97,0,0,97,97,0,97,97,97,1831,0,0,97,97,97,97,97,0,0,0,97,97,97,1980,97,45,45,45,45,45,45,45,45,45,45,1395,45,45,45,45,45,97,1846,97,97,45,45,45,45,45,45,45,45,45,45,45,45,1212,45,45,45,45,45,45,2010,45,67,67,67,67,67,2016,67,97,97,0,0,97,97,97,0,97,97,97,97,97,45,45,2007,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,143,45,45,45,1671,45,45,45,45,45,45,45,45,45,45,45,67,1813,67,67,1815,45,45,67,210,67,67,67,67,67,67,239,67,67,67,67,67,67,67,1454,67,67,67,67,67,67,67,67,67,1445,67,67,67,67,67,67,97,97,290,97,97,97,97,97,97,319,97,97,97,97,97,97,303,97,97,317,97,97,97,97,97,97,305,97,97,97,97,97,97,97,97,97,899,97,97,97,97,97,97,375,45,45,45,379,45,45,390,45,45,394,45,45,45,45,45,443,45,45,45,45,45,45,45,45,67,67,67,67,67,461,67,67,67,465,67,67,476,67,67,480,67,67,67,67,67,67,1694,67,67,67,67,67,67,67,67,67,1288,67,67,67,67,67,67,500,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1075,97,97,97,558,97,97,97,562,97,97,573,97,97,577,97,97,97,97,97,895,97,97,97,97,97,97,903,97,97,97,0,97,97,1638,97,97,97,97,97,97,97,97,1646,597,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1334,45,681,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1396,45,45,1399,45,45,730,45,45,45,45,67,67,67,67,67,67,67,67,67,67,1434,67,67,67,67,67,67,750,67,67,67,67,67,67,67,67,67,67,1456,67,67,67,67,67,45,45,993,45,45,45,45,45,45,45,45,45,45,45,67,67,1238,67,67,1006,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1280,1048,1049,67,67,67,67,67,67,67,67,67,67,1059,67,67,67,67,67,67,1286,67,67,67,67,67,67,67,1291,67,97,97,1100,97,97,97,97,97,97,97,97,97,97,97,97,97,638,0,920,97,97,1142,1143,97,97,97,97,97,97,97,97,97,97,1153,97,97,97,97,97,1158,97,97,97,1161,97,97,97,97,1166,97,97,97,97,97,1325,97,97,97,97,97,97,97,97,97,97,1328,97,97,97,97,97,97,97,45,1218,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1678,45,45,45,67,67,67,67,67,1269,67,67,67,67,67,67,67,67,1278,67,67,67,67,67,67,1761,67,67,67,67,67,67,67,67,67,530,67,67,67,67,67,67,97,97,1349,97,97,97,97,97,97,97,97,1358,97,97,97,97,97,97,1623,97,97,97,97,97,97,97,97,0,921,0,0,926,0,0,0,45,45,1411,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1754,45,45,67,67,1301,0,1307,0,1313,97,97,97,97,97,97,97,97,97,97,97,21054,97,97,97,97,67,1757,67,67,67,1760,67,67,67,67,67,67,67,67,67,67,1467,67,67,67,67,67,1778,97,0,0,97,97,97,97,97,97,0,0,97,97,0,97,97,97,97,97,1352,97,97,97,97,97,97,97,97,97,97,1511,97,97,97,97,97,67,67,67,67,67,1820,67,1822,67,67,67,67,67,97,97,97,97,97,0,0,0,97,1933,97,1892,97,97,97,97,97,97,1899,45,45,45,45,45,45,45,45,1664,45,45,45,45,45,45,45,45,1546,45,45,45,45,45,45,45,45,1208,45,45,45,45,45,45,45,45,1224,45,45,45,45,45,45,45,45,673,45,45,45,45,45,45,45,67,67,67,67,67,1925,97,97,97,97,0,0,0,97,97,97,97,97,623,97,97,97,97,97,97,97,97,97,97,307,97,97,97,97,97,97,97,97,97,1796,97,45,45,45,45,45,45,45,970,45,45,45,45,45,45,45,45,1417,45,45,45,45,45,45,45,67,1964,67,67,97,97,97,97,0,0,0,97,97,97,97,0,97,97,97,97,97,97,1721,97,97,0,0,1997,97,0,0,2e3,97,97,0,97,97,97,97,97,45,45,45,45,733,45,67,67,67,67,67,67,67,67,67,67,803,67,67,67,67,67,0,94242,0,0,0,38,102439,0,0,106538,98347,28809,45,45,144,45,45,45,1805,45,1807,45,45,45,45,45,67,67,67,67,67,67,231,67,67,67,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,45,45,67,211,67,67,67,67,230,234,240,244,67,67,67,67,67,67,464,67,67,67,67,67,67,479,67,67,67,260,67,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,97,291,97,97,97,97,310,314,320,324,97,97,97,97,97,97,1367,97,97,97,97,97,97,97,97,97,1355,97,97,97,97,97,97,1362,340,97,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,131427,0,0,360,0,362,0,365,28809,367,139,369,45,45,45,374,67,67,460,67,67,67,67,466,67,67,67,67,67,67,67,67,801,67,67,67,67,67,67,67,67,67,487,67,67,67,67,67,67,67,67,67,67,498,67,67,67,67,67,67,1772,67,67,97,97,97,97,97,97,97,0,921,922,1175,0,0,0,0,45,67,502,67,67,67,67,67,67,67,508,67,67,67,515,517,67,67,67,67,67,97,97,97,97,97,0,0,0,1932,97,97,0,1999,97,97,97,0,97,97,2004,2005,97,45,45,45,45,1193,45,45,45,45,45,45,45,45,45,45,45,676,45,45,45,45,67,24850,24850,12564,12564,0,57889,0,0,0,53531,53531,367,286,552,97,97,97,97,97,1377,0,0,45,45,45,45,45,45,45,45,655,45,45,45,45,45,45,45,97,97,557,97,97,97,97,563,97,97,97,97,97,97,97,97,1135,97,97,97,97,97,97,97,97,97,584,97,97,97,97,97,97,97,97,97,97,595,97,97,97,97,97,911,97,97,97,97,97,97,97,638,0,0,0,0,1315,0,0,0,0,97,97,97,1319,97,97,97,0,97,97,97,97,97,97,1733,97,97,97,97,97,97,1340,97,97,97,1343,97,97,1345,97,1346,97,599,97,97,97,97,97,97,97,605,97,97,97,612,614,97,97,97,97,97,1794,97,97,97,45,45,45,45,45,45,45,1207,45,45,45,45,45,45,1213,45,45,745,67,67,67,67,751,67,67,67,67,67,67,67,67,67,67,1577,67,67,67,67,67,762,67,67,67,67,766,67,67,67,67,67,67,67,67,67,67,1765,67,67,67,67,67,777,67,67,781,67,67,67,67,67,67,67,67,67,67,67,67,1592,1593,67,67,97,843,97,97,97,97,849,97,97,97,97,97,97,97,97,97,1510,97,97,97,97,97,97,97,860,97,97,97,97,864,97,97,97,97,97,97,97,97,97,1797,45,45,45,45,1801,45,97,875,97,97,879,97,97,97,97,97,97,97,97,97,97,97,1522,97,97,97,97,97,991,45,45,45,45,996,45,45,45,45,45,45,45,45,67,67,215,67,67,67,67,233,67,67,67,67,251,253,1022,67,67,67,1026,67,67,67,67,67,67,67,67,67,67,1035,67,67,1038,67,67,67,67,67,67,67,67,67,67,67,67,67,1458,67,67,67,67,67,1064,67,67,67,1067,67,67,67,67,1072,67,67,67,67,67,67,1296,0,0,0,0,0,0,0,0,0,2367488,2158592,2158592,2158592,2158592,2158592,2158592,67,67,67,67,67,25398,0,13112,0,54074,0,0,0,0,1096,0,921,29315,0,0,0,0,928,45,45,45,45,45,934,45,45,45,164,45,45,45,45,45,45,45,45,45,198,45,45,45,378,45,45,45,45,45,45,393,45,45,45,398,45,97,97,1116,97,97,97,1120,97,97,97,97,97,97,97,97,97,1147,1148,97,97,97,97,97,97,97,1129,97,97,1132,97,97,97,97,97,97,97,97,97,97,97,1626,97,97,97,97,0,45,1178,45,45,45,45,45,45,45,45,45,1185,45,45,45,45,441,45,45,45,45,45,45,451,45,45,67,67,67,67,67,227,67,67,67,67,67,67,67,67,1260,67,67,67,1263,67,67,1265,1203,45,45,1205,45,1206,45,45,45,45,45,45,45,45,45,1216,67,1266,67,67,67,67,67,67,67,67,67,1276,67,67,67,67,67,67,492,67,67,67,67,67,67,67,67,67,471,67,67,67,67,481,67,45,1386,45,1389,45,45,45,45,1394,45,45,45,1397,45,45,45,45,995,45,997,45,45,45,45,45,45,45,67,67,67,67,1915,67,67,67,67,67,1422,45,45,45,67,67,67,67,67,67,67,67,67,1433,67,1436,67,67,67,67,1441,67,67,67,1444,67,67,67,67,67,67,67,0,24850,12564,0,0,0,281,28809,53531,97,97,97,97,1494,97,97,97,1497,97,97,97,97,97,97,97,1368,97,97,97,97,97,97,97,97,851,97,97,97,97,97,97,97,67,67,67,1571,67,67,67,67,67,67,67,67,67,67,67,67,25398,542,13112,544,67,67,1583,67,67,67,67,67,67,67,67,1591,67,67,67,67,67,67,752,67,67,67,67,67,67,67,67,67,1056,67,67,67,67,67,67,97,1634,97,0,97,97,97,97,97,97,97,97,97,97,97,97,1125,97,97,97,1647,97,97,97,97,97,0,45,45,45,45,45,45,45,45,45,1183,45,45,45,45,45,45,45,45,45,409,45,45,45,45,45,45,1658,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1668,1712,97,97,97,0,97,97,97,97,97,97,97,97,97,0,0,1835,97,97,97,97,0,0,0,97,97,1844,97,97,1726,0,97,97,97,97,97,1732,97,1734,97,97,97,97,97,300,97,308,97,97,97,97,97,97,97,97,866,97,97,97,97,97,97,97,67,67,67,1758,67,67,67,1762,67,67,67,67,67,67,67,67,1043,67,67,67,67,67,67,67,67,67,67,67,67,1771,67,67,67,97,97,97,97,97,1776,97,97,97,97,297,97,97,97,97,97,97,97,97,97,97,97,1108,97,97,97,97,67,67,67,1966,97,97,97,1970,0,0,0,97,97,97,97,0,97,97,97,1720,97,97,97,97,97,0,0,97,97,97,1837,97,0,1840,1841,97,97,97,1988,45,67,67,67,67,67,67,67,67,67,1994,1995,67,97,97,97,97,97,1103,97,97,97,97,97,97,97,97,97,97,917,97,97,0,0,0,67,67,265,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,345,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,131427,0,0,0,361,362,0,365,28809,367,139,45,45,45,45,45,671,45,45,45,45,45,45,45,45,45,45,411,45,45,414,45,45,45,45,377,45,45,45,386,45,45,45,45,45,45,45,45,45,1223,45,45,45,45,45,45,45,45,45,426,45,45,433,45,45,45,67,67,67,67,67,463,67,67,67,472,67,67,67,67,67,67,67,527,67,67,67,67,67,67,537,67,540,24850,24850,12564,12564,0,57889,0,0,0,53531,53531,367,286,97,97,97,97,97,1119,97,97,97,97,97,97,97,97,97,97,1509,97,97,97,97,97,97,97,97,564,97,97,97,97,97,97,97,637,18,131427,0,0,0,0,0,0,362,0,0,365,29315,367,0,921,29315,0,0,0,927,45,45,45,45,45,45,45,45,45,1234,45,45,45,45,67,67,67,67,1240,45,697,45,45,45,45,45,45,45,45,45,45,708,45,45,45,45,1221,45,45,45,45,1225,45,45,45,45,45,45,384,45,45,45,45,45,45,45,45,45,1210,45,45,45,45,45,45,67,67,795,67,67,67,67,67,67,67,67,67,67,67,67,67,1470,67,67,67,67,67,67,67,815,67,67,67,67,67,67,25398,542,13112,544,97,97,97,893,97,97,97,97,97,97,97,97,97,97,97,97,1164,97,97,97,67,67,67,1025,67,67,67,67,67,67,67,67,67,67,67,67,1687,67,67,67,67,67,67,67,67,67,25398,0,13112,0,54074,0,0,0,0,0,1097,1241,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1450,45,45,1388,45,1390,45,45,45,45,45,45,45,45,45,45,45,1236,67,67,67,67,67,1437,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1472,1490,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1503,67,67,67,67,67,97,97,97,97,97,0,1930,0,97,97,97,97,97,847,97,97,97,97,97,97,97,97,97,858,67,67,1965,67,97,97,97,97,0,0,0,97,97,97,97,0,97,97,1719,97,97,97,97,97,97,0,0,0,45,45,45,45,1382,45,1383,45,45,45,159,45,45,45,45,45,45,45,45,45,45,45,45,45,1563,45,45,45,45,45,67,261,67,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,341,97,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,97,1099,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1333,97,1230,45,45,45,45,45,45,45,45,45,45,67,67,67,67,67,67,1992,67,1993,67,67,67,97,97,45,45,160,45,45,45,45,45,45,45,45,45,45,45,45,45,1665,45,45,45,45,45,131427,357,0,0,0,362,0,365,28809,367,139,45,45,45,45,45,684,45,45,45,45,45,45,45,45,45,45,412,45,45,45,416,45,45,45,440,45,45,45,45,45,45,45,45,45,45,45,67,67,1990,67,1991,67,67,67,67,67,67,67,97,97,1707,97,97,97,97,97,97,501,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,1691,67,67,67,67,67,526,67,67,67,67,67,67,67,67,67,67,1030,67,1032,67,67,67,67,598,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,1632,0,921,29315,923,0,0,0,45,45,45,45,45,45,45,45,45,1404,45,45,45,45,45,45,45,45,45,425,45,45,45,45,45,45,67,67,67,67,67,25398,0,13112,0,54074,0,0,1093,0,0,0,0,0,97,1609,97,97,97,97,97,97,97,97,97,1369,97,97,97,1372,97,97,67,67,266,67,67,67,67,0,24850,12564,0,0,0,0,28809,53531,97,346,97,97,97,97,0,40976,0,18,18,24,24,27,27,27,665,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,1677,45,45,45,45,67,45,45,954,45,956,45,45,45,45,45,45,45,45,45,45,45,1545,45,45,45,45,45,45,45,45,45,448,45,45,45,45,67,456,67,67,67,67,67,1270,67,67,67,67,67,67,67,67,67,67,1069,67,67,67,67,67,67,97,97,97,1350,97,97,97,97,97,97,97,97,97,97,97,97,1524,97,97,97,97,97,97,97,1376,0,0,0,45,45,45,45,45,45,45,45,1559,1561,45,45,45,1564,45,1566,1567,45,67,67,67,67,67,1573,67,67,67,67,67,67,67,67,67,67,1247,67,67,67,67,67,1252,97,1725,97,0,97,97,97,97,97,97,97,97,97,97,97,97,1628,97,1630,0,0,94242,0,0,0,2211840,0,1118208,0,0,0,0,2158592,2158731,2158592,2158592,2158592,3117056,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,3018752,2158592,3043328,2158592,2158592,2158592,2158592,3080192,2158592,2158592,3112960,2158592,2158592,2158592,2158592,2158592,2158878,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2605056,2158592,2158592,2207744,0,542,0,544,0,0,2166784,0,0,0,550,0,0,2158592,2158592,2686976,2158592,2715648,2158592,2158592,2158592,2158592,2158592,2158592,2158592,2867200,2158592,2904064,2158592,2158592,2158592,2158592,2158592,2158592,2158592,0,94242,0,0,0,2211840,0,0,1130496,0,0,0,2158592,2158592,2158592,2158592,2158592,3186688,2158592,0,0,139,0,0,0,139,0,2367488,2207744,0,0,0,0,176128,0,2166784,0,0,0,0,0,286,2158592,2158592,3170304,3174400,2158592,0,0,0,2158592,2158592,2158592,2158592,2158592,2424832,2158592,2158592,2158592,1508,2158592,2908160,2158592,2158592,2158592,2977792,2158592,2158592,2158592,2158592,3039232,2158592,2158592,2158592,2158592,2158592,2158592,3158016,67,24850,24850,12564,12564,0,0,0,0,0,53531,53531,0,286,97,97,97,97,97,1144,97,97,97,97,97,97,97,97,97,97,1149,97,97,97,97,1154,57889,0,0,0,0,550,0,97,97,97,97,97,97,97,97,97,561,97,97,97,97,97,97,576,97,97,139264,139264,139264,139264,139264,139264,139264,139264,139264,139264,139264,139264,0,0,139264,0,921,29315,0,0,926,0,45,45,45,45,45,45,45,45,45,719,720,45,45,45,45,45,45,45,45,685,45,45,45,45,45,45,45,45,45,942,45,45,946,45,45,45,950,45,45,0,2146304,2146304,0,0,0,0,2224128,2224128,2224128,2232320,2232320,2232320,2232320,0,0,1301,0,0,0,0,0,1307,0,0,0,0,0,1313,0,0,0,0,0,0,0,97,97,1318,97,97,97,97,97,97,1795,97,97,45,45,45,45,45,45,45,446,45,45,45,45,45,45,67,67,2158592,2146304,0,0,0,0,0,0,0,2211840,0,0,0,0,2158592,0,921,29315,0,924,0,0,45,45,45,45,45,45,45,45,45,1e3,45,45,45,45,67,67],r.EXPECTED=[290,300,304,353,296,309,305,319,315,324,328,352,354,334,338,330,320,345,349,293,358,362,341,366,312,370,374,378,382,386,390,394,398,737,402,634,439,604,634,634,634,634,408,634,634,634,404,634,634,634,457,634,634,963,634,634,413,634,634,634,634,634,634,634,663,418,422,903,902,426,431,548,634,437,521,919,443,615,409,449,455,624,731,751,634,461,465,672,470,469,474,481,485,477,489,493,629,542,497,505,603,602,991,648,510,804,634,515,958,526,525,530,768,634,546,552,711,710,593,558,562,618,566,570,574,578,582,586,590,608,612,660,822,821,634,622,596,444,628,533,724,633,640,653,647,652,536,1008,451,450,445,657,670,676,685,689,693,697,701,704,707,715,719,798,815,634,723,762,996,634,728,969,730,735,908,634,741,679,889,511,747,634,750,755,499,666,499,501,759,772,776,780,634,787,784,797,802,809,808,427,814,1006,517,634,519,853,634,813,850,793,634,819,826,833,832,837,843,847,857,861,863,867,871,875,879,883,643,887,539,980,979,634,893,944,634,900,896,634,907,933,506,912,917,828,433,636,635,554,961,923,930,927,937,941,634,634,634,974,948,952,985,913,968,967,743,634,973,839,634,978,599,634,984,989,765,444,995,1e3,634,1003,790,955,1012,681,634,634,634,634,634,414,1016,1020,1024,1085,1027,1090,1090,1046,1080,1137,1108,1215,1049,1032,1039,1085,1085,1085,1085,1058,1062,1068,1085,1086,1090,1090,1091,1072,1064,1107,1090,1090,1090,1118,1123,1138,1078,1074,1084,1085,1085,1085,1087,1090,1062,1052,1060,1114,1062,1104,1085,1085,1090,1090,1028,1122,1063,1128,1139,1127,1158,1085,1085,1151,1090,1090,1090,1095,1090,1132,1073,1136,1143,1061,1150,1085,1155,1098,1101,1146,1162,1169,1101,1185,1151,1090,1110,1173,1054,1087,1109,1177,1165,1089,1204,1184,1107,1189,1193,1088,1197,1180,1201,1208,1042,1212,1219,1223,1227,1231,1235,1245,1777,1527,1686,1686,1238,1686,1254,1686,1686,1686,1294,1669,1686,1686,1686,1322,1625,1534,1268,1624,1275,1281,1443,1292,1300,1686,1686,1686,1350,1826,1306,1686,1686,1240,2032,1317,1321,1686,1686,1253,1686,1326,1686,1686,1686,1418,1709,1446,1686,1686,1686,1492,1686,1295,1447,1686,1686,1258,1686,1736,1686,1686,1520,1355,1686,1288,1348,1361,1686,1359,1686,1364,1498,1368,1302,1362,1381,1389,1395,1486,1686,1371,1377,1370,1686,1375,1382,1384,1402,1408,1385,1383,1619,1413,1423,1428,1433,1686,1686,1270,1686,1338,1686,1440,1686,1686,1686,1499,1465,1686,1686,1686,1639,1473,1884,1686,1686,1293,1864,1686,1686,1296,1321,1483,1686,1686,1686,1646,1686,1748,1496,1686,1418,1675,1686,1418,1702,1686,1418,1981,1686,1429,1409,1427,1504,1692,1686,1686,1313,1448,1651,1508,1686,1686,1340,1686,1903,1686,1686,1435,1513,1686,1283,1287,1519,1686,1524,1363,1568,1938,1539,1566,1579,1479,1533,1538,1553,1544,1552,1557,1563,1574,1557,1583,1589,1590,1759,1594,1603,1607,1611,1686,1436,1514,1686,1434,1656,1686,1434,1680,1686,1453,1686,1686,1686,1559,1617,1686,1770,1418,1623,1769,1629,1686,1515,1335,1686,1285,1686,1671,1921,1650,1686,1686,1344,1308,1666,1686,1686,1686,1659,1685,1686,1686,1686,1686,1241,1686,1686,1844,1691,1686,1630,1977,1970,1362,1686,1686,1686,1693,1698,1686,1686,1686,1697,1686,1764,1715,1686,1634,1638,1686,1599,1585,1686,1271,1686,1269,1686,1721,1686,1686,1354,1686,1801,1686,1799,1686,1640,1686,1686,1461,1686,1686,1732,1686,1944,1686,1740,1686,1746,1415,1396,1686,1598,1547,1417,1597,1416,1577,1546,1397,1577,1547,1548,1570,1398,1753,1686,1652,1509,1686,1686,1686,1757,1686,1419,1686,1763,1418,1768,1781,1686,1686,1686,1705,1686,2048,1792,1686,1686,1686,1735,1686,1797,1686,1686,1404,1686,1639,1815,1686,1686,1418,2017,1820,1686,1686,1803,1686,1686,1686,1736,1489,1686,1686,1825,1338,1260,1263,1686,1686,1785,1686,1686,1728,1686,1686,1749,1497,1830,1830,1262,1248,1261,1329,1260,1264,1329,1248,1249,1259,1540,1849,1842,1686,1686,1835,1686,1686,1816,1686,1686,1831,1882,1848,1686,1686,1686,1774,2071,1854,1686,1686,1469,1884,1686,1821,1859,1686,1686,1350,1883,1686,1686,1686,1781,1391,1875,1686,1686,1613,1644,1686,1686,1889,1686,1686,1662,1884,1686,1885,1890,1686,1686,1686,1894,1686,1686,1678,1686,1907,1686,1686,1529,1914,1686,1838,1686,1686,1881,1686,1686,1872,1876,1836,1919,1686,1837,1692,1910,1686,1925,1928,1742,1686,1811,1811,1930,1810,1929,1935,1928,1900,1942,1867,1868,1931,1035,1788,1948,1952,1956,1960,1964,1686,1976,1686,1686,1686,2065,1686,1992,2037,1686,1686,1998,2009,1972,2002,1686,1686,1686,2077,1300,2023,1686,1686,1686,1807,2031,1686,1686,1686,1860,1500,2032,1686,1686,1686,2083,1686,2036,1686,1277,1276,2042,1877,1686,1686,2041,1686,1686,2027,2037,2012,1686,2012,1855,1850,1686,2046,1686,1686,2054,1996,1686,1897,1309,2059,2052,1686,2058,1686,1686,2081,1686,1717,1477,1686,1331,1686,1686,1687,1686,1860,1681,1686,1686,1686,1966,1724,1686,1686,1686,1984,2015,1686,1686,1686,1988,1686,2063,1686,1686,1686,2005,1686,1727,1686,1686,1711,1457,2069,1686,1686,1686,2019,2075,1686,1686,1915,1686,1686,1793,1874,1686,1686,1491,1362,1449,1686,1686,1460,2098,2087,2091,2095,2184,2102,2113,2780,2117,2134,2142,2281,2146,2146,2146,2304,2296,2181,2639,2591,2872,2592,2873,2313,2195,2200,2281,2146,2273,2226,2204,2152,2219,2276,2167,2177,2276,2235,2276,2276,2230,2281,2276,2296,2276,2293,2276,2276,2276,2276,2234,2276,2311,2314,2210,2199,2217,2222,2276,2276,2276,2240,2276,2294,2276,2276,2173,2276,2198,2281,2281,2281,2281,2282,2146,2146,2146,2146,2205,2146,2204,2248,2276,2235,2276,2297,2276,2276,2276,2277,2256,2281,2283,2146,2146,2146,2275,2276,2295,2276,2276,2293,2146,2304,2264,2269,2221,2276,2276,2276,2293,2295,2276,2276,2276,2295,2263,2205,2268,2220,2172,2276,2276,2276,2296,2276,2276,2296,2294,2276,2276,2278,2281,2281,2280,2281,2281,2281,2283,2206,2223,2276,2276,2279,2281,2281,2146,2273,2276,2276,2281,2281,2281,2276,2292,2276,2298,2225,2276,2298,2169,2224,2292,2298,2171,2229,2281,2281,2171,2236,2281,2281,2281,2146,2275,2225,2292,2299,2276,2229,2281,2146,2276,2290,2297,2283,2146,2146,2274,2224,2227,2298,2225,2297,2276,2230,2170,2230,2282,2146,2147,2151,2156,2288,2276,2230,2303,2308,2236,2284,2228,2318,2318,2318,2326,2335,2339,2343,2349,2416,2693,2357,2592,2109,2592,2592,2162,2943,2823,2646,2592,2361,2592,2122,2592,2592,2122,2470,2592,2592,2592,2109,2107,2592,2592,2592,2123,2592,2592,2592,2125,2592,2413,2592,2592,2592,2127,2592,2592,2414,2592,2592,2592,2130,2952,2592,2594,2592,2592,2212,2609,2252,2592,2592,2592,2446,2434,2592,2592,2592,2212,2446,2450,2456,2431,2435,2592,2592,2243,2478,2448,2439,2946,2592,2592,2592,2368,2809,2813,2450,2441,2212,2812,2449,2440,2947,2592,2592,2592,2345,2451,2457,2948,2592,2124,2592,2592,2650,2823,2449,2455,2946,2592,2128,2592,2592,2649,2952,2592,2810,2448,2461,2991,2467,2592,2592,2329,2817,2474,2990,2466,2592,2592,2373,2447,2992,2469,2592,2592,2592,2373,2447,2477,2468,2592,2592,2353,2469,2592,2495,2592,2592,2415,2483,2592,2415,2496,2592,2592,2352,2592,2592,2352,2352,2469,2592,2592,2363,2331,2494,2592,2592,2592,2375,2592,2375,2415,2504,2592,2592,2367,2372,2503,2592,2592,2592,2389,2418,2415,2592,2592,2373,2592,2592,2592,2593,2732,2417,2415,2592,2417,2520,2592,2592,2592,2390,2521,2521,2592,2592,2592,2401,2599,2585,2526,2531,2120,2592,2212,2426,2450,2463,2948,2592,2592,2592,2213,2389,2527,2532,2121,2542,2551,2105,2592,2213,2592,2592,2592,2558,2538,2544,2553,2557,2537,2543,2552,2421,2572,2576,2546,2543,2547,2592,2592,2373,2615,2575,2545,2105,2592,2244,2479,2592,2129,2592,2592,2628,2690,2469,2562,2566,2592,2592,2592,2415,2928,2934,2401,2570,2574,2564,2572,2585,2590,2592,2592,2585,2965,2592,2592,2592,2445,2251,2592,2592,2592,2474,2592,2609,2892,2592,2362,2592,2592,2138,2851,2159,2592,2592,2592,2509,2888,2892,2592,2592,2592,2490,2418,2891,2592,2592,2376,2592,2592,2374,2592,2889,2388,2592,2373,2373,2890,2592,2592,2387,2592,2887,2505,2892,2592,2373,2610,2388,2592,2592,2376,2373,2592,2887,2891,2592,2374,2592,2592,2608,2159,2614,2620,2592,2592,2394,2594,2887,2399,2592,2887,2397,2508,2374,2507,2592,2375,2592,2592,2592,2595,2508,2506,2592,2506,2505,2505,2592,2507,2637,2505,2592,2592,2401,2661,2592,2643,2592,2592,2417,2592,2655,2592,2592,2592,2510,2414,2656,2592,2592,2592,2516,2592,2593,2660,2665,2880,2592,2592,2592,2522,2767,2666,2881,2592,2592,2420,2571,2696,2592,2592,2592,2580,2572,2686,2632,2698,2592,2383,2514,2592,2163,2932,2465,2685,2631,2697,2592,2388,2592,2592,2212,2604,2671,2632,2678,2592,2401,2405,2409,2592,2592,2592,2679,2592,2592,2592,2592,2108,2677,2591,2592,2592,2592,2419,2592,2683,2187,2191,2469,2671,2189,2467,2592,2401,2629,2633,2702,2468,2592,2592,2421,2536,2703,2469,2592,2592,2422,2573,2593,2672,2467,2592,2402,2406,2592,2402,2979,2592,2592,2626,2673,2467,2592,2446,2259,2947,2592,2377,2709,2592,2592,2522,2862,2713,2468,2592,2592,2581,2572,2562,2374,2374,2592,2376,2721,2724,2592,2592,2624,2373,2731,2592,2592,2592,2626,2732,2592,2592,2592,2755,2656,2726,2736,2741,2592,2486,2593,2381,2592,2727,2737,2742,2715,2747,2753,2592,2498,2469,2873,2743,2592,2592,2592,2791,2759,2763,2592,2592,2627,2704,2592,2592,2522,2789,2593,2761,2753,2592,2498,2863,2592,2592,2767,2592,2592,2592,2792,2789,2592,2592,2592,2803,2126,2592,2592,2592,2811,2122,2592,2592,2592,2834,2777,2592,2592,2592,2848,2936,2591,2489,2797,2592,2592,2670,2631,2490,2798,2592,2592,2592,2963,2807,2592,2592,2592,2965,2838,2592,2592,2592,2975,2330,2818,2829,2592,2498,2939,2592,2498,2592,2791,2331,2819,2830,2592,2592,2592,2982,2834,2817,2828,2106,2592,2592,2592,2405,2405,2817,2828,2592,2592,2415,2849,2842,2592,2522,2773,2592,2522,2868,2592,2580,2600,2586,2137,2850,2843,2592,2592,2855,2937,2844,2592,2592,2592,2987,2936,2591,2592,2592,2684,2630,2592,2856,2938,2592,2592,2860,2939,2592,2592,2872,2592,2861,2591,2592,2592,2887,2616,2592,2867,2592,2592,2708,2592,2498,2469,2498,2497,2785,2773,2499,2783,2770,2877,2877,2877,2772,2592,2592,2345,2885,2592,2592,2592,2715,2762,2515,2896,2592,2592,2715,2917,2516,2897,2592,2592,2592,2901,2906,2911,2592,2592,2956,2960,2715,2902,2907,2912,2593,2916,2920,2820,2922,2822,2592,2592,2715,2927,2921,2821,2106,2592,2592,2974,2408,2321,2821,2106,2592,2592,2983,2592,2593,2404,2408,2592,2592,2717,2749,2716,2928,2322,2822,2593,2926,2919,2820,2934,2823,2592,2592,2592,2651,2824,2592,2592,2592,2130,2952,2592,2592,2592,2592,2964,2592,2592,2716,2748,2592,2969,2592,2592,2716,2918,2368,2970,2592,2592,2592,2403,2407,2592,2592,2787,2211,2404,2409,2592,2592,2802,2837,2987,2592,2592,2592,2809,2427,2592,2793,2592,2592,2809,2447,1073741824,2147483648,539754496,542375936,402653184,554434560,571736064,545521856,268451840,335544320,268693630,512,2048,256,1024,0,1024,0,1073741824,2147483648,0,0,0,8388608,0,0,1073741824,1073741824,0,2147483648,537133056,4194304,1048576,268435456,-1073741824,0,0,0,1048576,0,0,0,1572864,0,0,0,4194304,0,134217728,16777216,0,0,32,64,98304,0,33554432,8388608,192,67108864,67108864,67108864,67108864,16,32,4,0,8192,196608,196608,229376,80,4096,524288,8388608,0,0,32,128,256,24576,24600,24576,24576,2,24576,24576,24576,24584,24592,24576,24578,24576,24578,24576,24576,16,512,2048,2048,256,4096,32768,1048576,4194304,67108864,134217728,268435456,262144,134217728,0,128,128,64,16384,16384,16384,67108864,32,32,4,4,4096,262144,134217728,0,0,0,2,0,8192,131072,131072,4096,4096,4096,4096,24576,24576,24576,8,8,24576,24576,16384,16384,16384,24576,24584,24576,24576,24576,16384,24576,536870912,262144,0,0,32,2048,8192,4,4096,4096,4096,786432,8388608,16777216,0,128,16384,16384,16384,32768,65536,2097152,32,32,32,32,4,4,4,4,4,4096,67108864,67108864,67108864,24576,24576,24576,24576,0,16384,16384,16384,16384,67108864,67108864,8,67108864,24576,8,8,8,24576,24576,24576,24578,24576,24576,24576,2,2,2,16384,67108864,67108864,67108864,32,67108864,8,8,24576,2048,2147483648,536870912,262144,262144,262144,67108864,8,24576,16384,32768,1048576,4194304,25165824,67108864,24576,32770,2,4,112,512,98304,524288,50,402653186,1049090,1049091,10,66,100925514,10,66,12582914,0,0,-1678194207,-1678194207,-1041543218,0,32768,0,0,32,65536,268435456,1,1,513,1048577,0,12582912,0,0,0,4,1792,0,0,0,7,29360128,0,0,0,8,0,0,0,12,1,1,0,0,-604102721,-604102721,4194304,8388608,0,0,0,31,925600,997981306,997981306,997981306,0,0,2048,8388608,0,0,1,2,4,32,64,512,8192,0,0,0,245760,997720064,0,0,0,32,0,0,0,3,12,16,32,8,112,3072,12288,16384,32768,65536,131072,7864320,16777216,973078528,0,0,65536,131072,3670016,4194304,16777216,33554432,2,8,48,2048,8192,16384,32768,65536,131072,524288,131072,524288,3145728,4194304,16777216,33554432,65536,131072,2097152,4194304,16777216,33554432,134217728,268435456,536870912,0,0,0,1024,0,8,48,2048,8192,65536,33554432,268435456,536870912,65536,268435456,536870912,0,0,32768,0,0,126,623104,65011712,0,32,65536,536870912,0,0,65536,524288,0,32,65536,0,0,0,2048,0,0,0,15482,245760,-604102721,0,0,0,18913,33062912,925600,-605028352,0,0,0,65536,31,8096,131072,786432,3145728,3145728,12582912,50331648,134217728,268435456,160,256,512,7168,131072,786432,131072,786432,1048576,2097152,12582912,16777216,268435456,1073741824,2147483648,12582912,16777216,33554432,268435456,1073741824,2147483648,3,12,16,160,256,7168,786432,1048576,12582912,16777216,268435456,1073741824,0,8,16,32,128,256,512,7168,786432,1048576,2097152,0,1,2,8,16,7168,786432,1048576,8388608,16777216,16777216,1073741824,0,0,0,0,1,0,0,8,32,128,256,7168,8,32,0,3072,0,8,32,3072,4096,524288,8,32,0,0,3072,4096,0,2048,524288,8388608,8,2048,0,0,1,12,256,4096,32768,262144,1048576,4194304,67108864,0,2048,0,2048,2048,1073741824,-58805985,-58805985,-58805985,0,0,262144,0,0,32,4194304,16777216,134217728,4382,172032,-58982400,0,0,2,28,256,4096,8192,8192,32768,131072,262144,524288,1,2,12,256,4096,0,0,4194304,67108864,134217728,805306368,1073741824,0,0,1,2,12,16,256,4096,1048576,67108864,134217728,268435456,0,512,1048576,4194304,201326592,1879048192,0,0,12,256,4096,134217728,268435456,536870912,12,256,268435456,536870912,0,12,256,0,0,1,32,64,512,0,0,205236961,205236961,0,0,0,1,96,640,1,10976,229376,204996608,0,640,2048,8192,229376,1572864,1572864,2097152,201326592,0,0,0,64,512,2048,229376,1572864,201326592,1572864,201326592,0,0,1,4382,0,1,32,2048,65536,131072,1572864,201326592,131072,1572864,134217728,0,0,524288,524288,0,0,0,-68582786,-68582786,-68582786,0,0,2097152,524288,0,524288,0,0,65536,131072,1572864,0,0,2,4,0,0,65011712,-134217728,0,0,0,0,2,4,120,512,-268435456,0,0,0,2,8,48,64,2048,8192,98304,524288,2097152,4194304,25165824,33554432,134217728,268435456,2147483648,0,0,25165824,33554432,134217728,1879048192,2147483648,0,0,4,112,512,622592,65011712,134217728,-268435456,16777216,33554432,134217728,1610612736,0,0,0,64,98304,524288,4194304,16777216,33554432,0,98304,524288,16777216,33554432,0,65536,524288,33554432,536870912,1073741824,0,65536,524288,536870912,1073741824,0,0,65536,524288,536870912,0,524288,0,524288,524288,1048576,2086666240,2147483648,0,-1678194207,0,0,0,8,32,2048,524288,8388608,0,0,33062912,436207616,2147483648,0,0,32,64,2432,16384,32768,32768,524288,3145728,4194304,25165824,25165824,167772160,268435456,2147483648,0,32,64,384,2048,16384,32768,1048576,2097152,4194304,25165824,32,64,128,256,2048,16384,2048,16384,1048576,4194304,16777216,33554432,134217728,536870912,1073741824,0,0,2048,16384,4194304,16777216,33554432,134217728,805306368,0,0,16777216,134217728,268435456,2147483648,0,622592,622592,622592,8807,8807,434791,0,0,16777216,0,0,0,7,608,8192,0,0,0,3,4,96,512,32,64,8192,0,0,16777216,134217728,0,0,2,4,8192,16384,65536,2097152,33554432,268435456],r.TOKEN=[\"(0)\",\"ModuleDecl\",\"Annotation\",\"OptionDecl\",\"Operator\",\"Variable\",\"Tag\",\"EndTag\",\"PragmaContents\",\"DirCommentContents\",\"DirPIContents\",\"CDataSectionContents\",\"AttrTest\",\"Wildcard\",\"EQName\",\"IntegerLiteral\",\"DecimalLiteral\",\"DoubleLiteral\",\"PredefinedEntityRef\",\"'\\\"\\\"'\",\"EscapeApos\",\"QuotChar\",\"AposChar\",\"ElementContentChar\",\"QuotAttrContentChar\",\"AposAttrContentChar\",\"NCName\",\"QName\",\"S\",\"CharRef\",\"CommentContents\",\"DocTag\",\"DocCommentContents\",\"EOF\",\"'!'\",\"'\\\"'\",\"'#'\",\"'#)'\",\"''''\",\"'('\",\"'(#'\",\"'(:'\",\"'(:~'\",\"')'\",\"'*'\",\"'*'\",\"','\",\"'-->'\",\"'.'\",\"'/'\",\"'/>'\",\"':'\",\"':)'\",\"';'\",\"'<!--'\",\"'<![CDATA['\",\"'<?'\",\"'='\",\"'>'\",\"'?'\",\"'?>'\",\"'NaN'\",\"'['\",\"']'\",\"']]>'\",\"'after'\",\"'all'\",\"'allowing'\",\"'ancestor'\",\"'ancestor-or-self'\",\"'and'\",\"'any'\",\"'append'\",\"'array'\",\"'as'\",\"'ascending'\",\"'at'\",\"'attribute'\",\"'base-uri'\",\"'before'\",\"'boundary-space'\",\"'break'\",\"'by'\",\"'case'\",\"'cast'\",\"'castable'\",\"'catch'\",\"'check'\",\"'child'\",\"'collation'\",\"'collection'\",\"'comment'\",\"'constraint'\",\"'construction'\",\"'contains'\",\"'content'\",\"'context'\",\"'continue'\",\"'copy'\",\"'copy-namespaces'\",\"'count'\",\"'decimal-format'\",\"'decimal-separator'\",\"'declare'\",\"'default'\",\"'delete'\",\"'descendant'\",\"'descendant-or-self'\",\"'descending'\",\"'diacritics'\",\"'different'\",\"'digit'\",\"'distance'\",\"'div'\",\"'document'\",\"'document-node'\",\"'element'\",\"'else'\",\"'empty'\",\"'empty-sequence'\",\"'encoding'\",\"'end'\",\"'entire'\",\"'eq'\",\"'every'\",\"'exactly'\",\"'except'\",\"'exit'\",\"'external'\",\"'first'\",\"'following'\",\"'following-sibling'\",\"'for'\",\"'foreach'\",\"'foreign'\",\"'from'\",\"'ft-option'\",\"'ftand'\",\"'ftnot'\",\"'ftor'\",\"'function'\",\"'ge'\",\"'greatest'\",\"'group'\",\"'grouping-separator'\",\"'gt'\",\"'idiv'\",\"'if'\",\"'import'\",\"'in'\",\"'index'\",\"'infinity'\",\"'inherit'\",\"'insensitive'\",\"'insert'\",\"'instance'\",\"'integrity'\",\"'intersect'\",\"'into'\",\"'is'\",\"'item'\",\"'json'\",\"'json-item'\",\"'key'\",\"'language'\",\"'last'\",\"'lax'\",\"'le'\",\"'least'\",\"'let'\",\"'levels'\",\"'loop'\",\"'lowercase'\",\"'lt'\",\"'minus-sign'\",\"'mod'\",\"'modify'\",\"'module'\",\"'most'\",\"'namespace'\",\"'namespace-node'\",\"'ne'\",\"'next'\",\"'no'\",\"'no-inherit'\",\"'no-preserve'\",\"'node'\",\"'nodes'\",\"'not'\",\"'object'\",\"'occurs'\",\"'of'\",\"'on'\",\"'only'\",\"'option'\",\"'or'\",\"'order'\",\"'ordered'\",\"'ordering'\",\"'paragraph'\",\"'paragraphs'\",\"'parent'\",\"'pattern-separator'\",\"'per-mille'\",\"'percent'\",\"'phrase'\",\"'position'\",\"'preceding'\",\"'preceding-sibling'\",\"'preserve'\",\"'previous'\",\"'processing-instruction'\",\"'relationship'\",\"'rename'\",\"'replace'\",\"'return'\",\"'returning'\",\"'revalidation'\",\"'same'\",\"'satisfies'\",\"'schema'\",\"'schema-attribute'\",\"'schema-element'\",\"'score'\",\"'self'\",\"'sensitive'\",\"'sentence'\",\"'sentences'\",\"'skip'\",\"'sliding'\",\"'some'\",\"'stable'\",\"'start'\",\"'stemming'\",\"'stop'\",\"'strict'\",\"'strip'\",\"'structured-item'\",\"'switch'\",\"'text'\",\"'then'\",\"'thesaurus'\",\"'times'\",\"'to'\",\"'treat'\",\"'try'\",\"'tumbling'\",\"'type'\",\"'typeswitch'\",\"'union'\",\"'unique'\",\"'unordered'\",\"'updating'\",\"'uppercase'\",\"'using'\",\"'validate'\",\"'value'\",\"'variable'\",\"'version'\",\"'weight'\",\"'when'\",\"'where'\",\"'while'\",\"'wildcards'\",\"'window'\",\"'with'\",\"'without'\",\"'word'\",\"'words'\",\"'xquery'\",\"'zero-digit'\",\"'{'\",\"'{{'\",\"'|'\",\"'}'\",\"'}}'\"]},{}],2:[function(e,t,n){\"use strict\";var r=function(e){var t=e;this.tokens=[],this.reset=function(){t=t,this.tokens=[]},this.startNonterminal=function(){},this.endNonterminal=function(){},this.terminal=function(e,n,r){this.tokens.push({name:e,value:t.substring(n,r)})},this.whitespace=function(e,n){this.tokens.push({name:\"WS\",value:t.substring(e,n)})}};n.Lexer=function(e,t){this.tokens=[],this.getLineTokens=function(n,i){i=i===\"start\"||!i?'[\"start\"]':i;var s=JSON.parse(i),o=new r(n),u=new e(n,o),a=[];for(;;){var f=s[s.length-1];try{o.tokens=[],u[\"parse_\"+f]();var l=null;o.tokens.length>1&&o.tokens[0].name===\"WS\"&&(a.push({type:\"text\",value:o.tokens[0].value}),o.tokens.splice(0,1));var c=o.tokens[0],h=t[f];for(var p=0;p<h.length;p++){var d=t[f][p];if(typeof d.name==\"function\"&&d.name(c)||d.name===c.name){l=d;break}}if(c.name===\"EOF\")break;if(c.value===\"\")throw\"Encountered empty string lexical rule.\";a.push({type:l===null?\"text\":typeof l.token==\"function\"?l.token(c.value):l.token,value:c.value}),l&&l.next&&l.next(s)}catch(v){if(v instanceof u.ParseException){var m=0;for(var g=0;g<a.length;g++)m+=a[g].value.length;return a.push({type:\"text\",value:n.substring(m)}),{tokens:a,state:JSON.stringify([\"start\"])}}throw v}}return{tokens:a,state:JSON.stringify(s)}}}},{}],3:[function(e,t,n){\"use strict\";var r=e(\"./XQueryTokenizer\").XQueryTokenizer,i=e(\"./lexer\").Lexer,s=\"after|ancestor|ancestor-or-self|and|as|ascending|attribute|before|case|cast|castable|child|collation|comment|copy|count|declare|default|delete|descendant|descendant-or-self|descending|div|document|document-node|element|else|empty|empty-sequence|end|eq|every|except|first|following|following-sibling|for|function|ge|group|gt|idiv|if|import|insert|instance|intersect|into|is|item|last|le|let|lt|mod|modify|module|namespace|namespace-node|ne|node|only|or|order|ordered|parent|preceding|preceding-sibling|processing-instruction|rename|replace|return|satisfies|schema-attribute|schema-element|self|some|stable|start|switch|text|to|treat|try|typeswitch|union|unordered|validate|where|with|xquery|contains|paragraphs|sentences|times|words|by|collectionreturn|variable|version|option|when|encoding|toswitch|catch|tumbling|sliding|window|at|using|stemming|collection|schema|while|on|nodes|index|external|then|in|updating|value|of|containsbreak|loop|continue|exit|returning|append|json|position|strict\".split(\"|\"),o=s.map(function(e){return{name:\"'\"+e+\"'\",token:\"keyword\"}}),u=s.map(function(e){return{name:\"'\"+e+\"'\",token:\"text\",next:function(e){e.pop()}}}),a=\"constant.language\",f=\"constant\",l=\"comment\",c=\"xml-pe\",h=\"constant.buildin\",p=function(e){return\"'\"+e+\"'\"},d={start:[{name:p(\"(#\"),token:h,next:function(e){e.push(\"Pragma\")}},{name:p(\"(:\"),token:\"comment\",next:function(e){e.push(\"Comment\")}},{name:p(\"(:~\"),token:\"comment.doc\",next:function(e){e.push(\"CommentDoc\")}},{name:p(\"<!--\"),token:l,next:function(e){e.push(\"XMLComment\")}},{name:p(\"<?\"),token:c,next:function(e){e.push(\"PI\")}},{name:p(\"''\"),token:\"string\",next:function(e){e.push(\"AposString\")}},{name:p('\"'),token:\"string\",next:function(e){e.push(\"QuotString\")}},{name:\"Annotation\",token:\"support.function\"},{name:\"ModuleDecl\",token:\"keyword\",next:function(e){e.push(\"Prefix\")}},{name:\"OptionDecl\",token:\"keyword\",next:function(e){e.push(\"_EQName\")}},{name:\"AttrTest\",token:\"support.type\"},{name:\"Variable\",token:\"variable\"},{name:p(\"<![CDATA[\"),token:a,next:function(e){e.push(\"CData\")}},{name:\"IntegerLiteral\",token:f},{name:\"DecimalLiteral\",token:f},{name:\"DoubleLiteral\",token:f},{name:\"Operator\",token:\"keyword.operator\"},{name:\"EQName\",token:function(e){return s.indexOf(e)!==-1?\"keyword\":\"support.function\"}},{name:p(\"(\"),token:\"lparen\"},{name:p(\")\"),token:\"rparen\"},{name:\"Tag\",token:\"meta.tag\",next:function(e){e.push(\"StartTag\")}},{name:p(\"}\"),token:\"text\",next:function(e){e.length>1&&e.pop()}},{name:p(\"{\"),token:\"text\",next:function(e){e.push(\"start\")}}].concat(o),_EQName:[{name:\"EQName\",token:\"text\",next:function(e){e.pop()}}].concat(u),Prefix:[{name:\"NCName\",token:\"text\",next:function(e){e.pop()}}].concat(u),StartTag:[{name:p(\">\"),token:\"meta.tag\",next:function(e){e.push(\"TagContent\")}},{name:\"QName\",token:\"entity.other.attribute-name\"},{name:p(\"=\"),token:\"text\"},{name:p(\"''\"),token:\"string\",next:function(e){e.push(\"AposAttr\")}},{name:p('\"'),token:\"string\",next:function(e){e.push(\"QuotAttr\")}},{name:p(\"/>\"),token:\"meta.tag.r\",next:function(e){e.pop()}}],TagContent:[{name:\"ElementContentChar\",token:\"text\"},{name:p(\"<![CDATA[\"),token:a,next:function(e){e.push(\"CData\")}},{name:p(\"<!--\"),token:l,next:function(e){e.push(\"XMLComment\")}},{name:\"Tag\",token:\"meta.tag\",next:function(e){e.push(\"StartTag\")}},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:p(\"{{\"),token:\"text\"},{name:p(\"}}\"),token:\"text\"},{name:p(\"{\"),token:\"text\",next:function(e){e.push(\"start\")}},{name:\"EndTag\",token:\"meta.tag\",next:function(e){e.pop(),e.pop()}}],AposAttr:[{name:p(\"''\"),token:\"string\",next:function(e){e.pop()}},{name:\"EscapeApos\",token:\"constant.language.escape\"},{name:\"AposAttrContentChar\",token:\"string\"},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:p(\"{{\"),token:\"string\"},{name:p(\"}}\"),token:\"string\"},{name:p(\"{\"),token:\"text\",next:function(e){e.push(\"start\")}}],QuotAttr:[{name:p('\"'),token:\"string\",next:function(e){e.pop()}},{name:\"EscapeQuot\",token:\"constant.language.escape\"},{name:\"QuotAttrContentChar\",token:\"string\"},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:p(\"{{\"),token:\"string\"},{name:p(\"}}\"),token:\"string\"},{name:p(\"{\"),token:\"text\",next:function(e){e.push(\"start\")}}],Pragma:[{name:\"PragmaContents\",token:h},{name:p(\"#\"),token:h},{name:p(\"#)\"),token:h,next:function(e){e.pop()}}],Comment:[{name:\"CommentContents\",token:\"comment\"},{name:p(\"(:\"),token:\"comment\",next:function(e){e.push(\"Comment\")}},{name:p(\":)\"),token:\"comment\",next:function(e){e.pop()}}],CommentDoc:[{name:\"DocCommentContents\",token:\"comment.doc\"},{name:\"DocTag\",token:\"comment.doc.tag\"},{name:p(\"(:\"),token:\"comment.doc\",next:function(e){e.push(\"CommentDoc\")}},{name:p(\":)\"),token:\"comment.doc\",next:function(e){e.pop()}}],XMLComment:[{name:\"DirCommentContents\",token:l},{name:p(\"-->\"),token:l,next:function(e){e.pop()}}],CData:[{name:\"CDataSectionContents\",token:a},{name:p(\"]]>\"),token:a,next:function(e){e.pop()}}],PI:[{name:\"DirPIContents\",token:c},{name:p(\"?\"),token:c},{name:p(\"?>\"),token:c,next:function(e){e.pop()}}],AposString:[{name:p(\"''\"),token:\"string\",next:function(e){e.pop()}},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:\"EscapeApos\",token:\"constant.language.escape\"},{name:\"AposChar\",token:\"string\"}],QuotString:[{name:p('\"'),token:\"string\",next:function(e){e.pop()}},{name:\"PredefinedEntityRef\",token:\"constant.language.escape\"},{name:\"CharRef\",token:\"constant.language.escape\"},{name:\"EscapeQuot\",token:\"constant.language.escape\"},{name:\"QuotChar\",token:\"string\"}]};n.XQueryLexer=function(){return new i(r,d)}},{\"./XQueryTokenizer\":1,\"./lexer\":2}]},{},[3])(3)}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),u=[\"text\",\"paren.rparen\",\"punctuation.operator\"],a=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:\"\",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:\"\",maybeInsertedLineEnd:\"\"}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add(\"braces\",\"insertion\",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i==\"{\"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==\"\"&&l!==\"{\"&&n.getWrapBehavioursEnabled())return h(a,l,\"{\",\"}\");if(p.isSaneInsertion(n,r))return/[\\]\\}\\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,\"}\"),{text:\"{}\",selection:[1,1]}):(p.recordMaybeInsert(n,r,\"{\"),{text:\"{\",selection:[1,1]})}else if(i==\"}\"){c(n);var d=u.substring(s.column,s.column+1);if(d==\"}\"){var v=r.$findOpeningBracket(\"}\",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else{if(i==\"\\n\"||i==\"\\r\\n\"){c(n);var m=\"\";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat(\"}\",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d===\"}\"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},\"}\");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:\"\\n\"+b+\"\\n\"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add(\"braces\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"{\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u==\"}\")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(e,t,n,r,i){if(i==\"(\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"(\",\")\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\")\"),{text:\"()\",selection:[1,1]}}else if(i==\")\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\")\"){var l=r.$findOpeningBracket(\")\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"(\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\")\")return i.end.column++,i}}),this.add(\"brackets\",\"insertion\",function(e,t,n,r,i){if(i==\"[\"){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==\"\"&&n.getWrapBehavioursEnabled())return h(s,o,\"[\",\"]\");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,\"]\"),{text:\"[]\",selection:[1,1]}}else if(i==\"]\"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==\"]\"){var l=r.$findOpeningBracket(\"]\",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s==\"[\"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==\"]\")return i.end.column++,i}}),this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==\"\"&&u!==\"'\"&&u!='\"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l==\"\\\\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g;else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\\s;,.})\\]\\\\]/.test(p))return null;y=!0}return{text:y?s+s:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||\"text\",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||\"text\",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||\"text\",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),ace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";function u(e,t){return e.type.lastIndexOf(t+\".xml\")>-1}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"../../token_iterator\").TokenIterator,o=e(\"../../lib/lang\"),a=function(){this.add(\"string_dquotes\",\"insertion\",function(e,t,n,r,i){if(i=='\"'||i==\"'\"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==\"\"&&a!==\"'\"&&a!='\"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,\"attribute-value\")||u(p,\"string\")))return{text:\"\",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,\"tag-whitespace\")||u(p,\"whitespace\"))p=h.stepBackward();var d=!c||c.match(/\\s/);if(u(p,\"attribute-equals\")&&(d||c==\">\")||u(p,\"decl-attribute-equals\")&&(d||c==\"?\"))return{text:o+o,selection:[1,1]}}}),this.add(\"string_dquotes\",\"deletion\",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='\"'||s==\"'\")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var o=n.getCursorPosition(),a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,\"tag-name\")||u(f,\"tag-whitespace\")||u(f,\"attribute-name\")||u(f,\"attribute-equals\")||u(f,\"attribute-value\")))return;if(u(f,\"reference.attribute-value\"))return;if(u(f,\"attribute-value\")){var l=f.value.charAt(0);if(l=='\"'||l==\"'\"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,\"tag-name\"))f=a.stepBackward();var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),\"end-tag-open\"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:\"></\"+v+\">\",selection:[1,1]}}}),this.add(\"autoindent\",\"insertion\",function(e,t,n,r,i){if(i==\"\\n\"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf(\"tag-close\")!==-1){if(f.value==\"/>\")return;while(f&&f.type.indexOf(\"tag-name\")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf(\"end-tag\")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value===\"</\"?{text:\"\\n\"+d+\"\\n\"+p,selection:[1,d.length,1,d.length]}:{text:\"\\n\"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),ace.define(\"ace/mode/behaviour/xquery\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/mode/behaviour/xml\",\"ace/token_iterator\"],function(e,t,n){\"use strict\";function a(e,t){var n=!0,r=e.type.split(\".\"),i=t.split(\".\");return i.forEach(function(e){if(r.indexOf(e)==-1)return n=!1,!1}),n}var r=e(\"../../lib/oop\"),i=e(\"../behaviour\").Behaviour,s=e(\"./cstyle\").CstyleBehaviour,o=e(\"../behaviour/xml\").XmlBehaviour,u=e(\"../../token_iterator\").TokenIterator,f=function(){this.inherit(s,[\"braces\",\"parens\",\"string_dquotes\"]),this.inherit(o),this.add(\"autoclosing\",\"insertion\",function(e,t,n,r,i){if(i==\">\"){var s=n.getCursorPosition(),o=new u(r,s.row,s.column),f=o.getCurrentToken(),l=!1,e=JSON.parse(e).pop();if(f&&f.value===\">\"||e!==\"StartTag\")return;if(!f||!a(f,\"meta.tag\")&&(!a(f,\"text\")||!f.value.match(\"/\"))){do f=o.stepBackward();while(f&&(a(f,\"string\")||a(f,\"keyword.operator\")||a(f,\"entity.attribute-name\")||a(f,\"text\")))}else l=!0;var c=o.stepBackward();if(!f||!a(f,\"meta.tag\")||c!==null&&c.value.match(\"/\"))return;var h=f.value.substring(1);if(l)var h=h.substring(0,s.column-f.start);return{text:\"></\"+h+\">\",selection:[1,1]}}})};r.inherits(f,i),t.XQueryBehaviour=f}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/xquery\",[\"require\",\"exports\",\"module\",\"ace/worker/worker_client\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/xquery/xquery_lexer\",\"ace/range\",\"ace/mode/behaviour/xquery\",\"ace/mode/folding/cstyle\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"../worker/worker_client\").WorkerClient,i=e(\"../lib/oop\"),s=e(\"./text\").Mode,o=e(\"./text_highlight_rules\").TextHighlightRules,u=e(\"./xquery/xquery_lexer\").XQueryLexer,a=e(\"../range\").Range,f=e(\"./behaviour/xquery\").XQueryBehaviour,l=e(\"./folding/cstyle\").FoldMode,c=e(\"../anchor\").Anchor,h=function(){this.$tokenizer=new u,this.$behaviour=new f,this.foldingRules=new l,this.$highlightRules=new o};i.inherits(h,s),function(){this.completer={getCompletions:function(e,t,n,r,i){if(!t.$worker)return i();t.$worker.emit(\"complete\",{data:{pos:n,prefix:r}}),t.$worker.on(\"complete\",function(e){i(null,e.data)})}},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=t.match(/\\s*(?:then|else|return|[{\\(]|<\\w+>)\\s*$/);return i&&(r+=n),r},this.checkOutdent=function(e,t,n){return/^\\s+$/.test(t)?/^\\s*[\\}\\)]/.test(n):!1},this.autoOutdent=function(e,t,n){var r=t.getLine(n),i=r.match(/^(\\s*[\\}\\)])/);if(!i)return 0;var s=i[1].length,o=t.findMatchingBracket({row:n,column:s});if(!o||o.row==n)return 0;var u=this.$getIndent(t.getLine(o.row));t.replace(new a(n,0,n,s-1),u)},this.toggleCommentLines=function(e,t,n,r){var i,s,o=!0,u=/^\\s*\\(:(.*):\\)/;for(i=n;i<=r;i++)if(!u.test(t.getLine(i))){o=!1;break}var f=new a(0,0,0,0);for(i=n;i<=r;i++)s=t.getLine(i),f.start.row=i,f.end.row=i,f.end.column=s.length,t.replace(f,o?s.match(u)[1]:\"(:\"+s+\":)\")},this.createWorker=function(e){var t=new r([\"ace\"],\"ace/mode/xquery_worker\",\"XQueryWorker\"),n=this;return t.attachToDocument(e.getDocument()),t.on(\"ok\",function(t){e.clearAnnotations()}),t.on(\"markers\",function(t){e.clearAnnotations(),n.addMarkers(t.data,e)}),t.on(\"highlight\",function(t){n.$tokenizer.tokens=t.data.tokens,n.$tokenizer.lines=e.getDocument().getAllLines();var r=Object.keys(n.$tokenizer.tokens);for(var i=0;i<r.length;i++){var s=parseInt(r[i]);delete e.bgTokenizer.lines[s],delete e.bgTokenizer.states[s],e.bgTokenizer.fireUpdateEvent(s,s)}}),t},this.removeMarkers=function(e){var t=e.getMarkers(!1);for(var n in t)t[n].clazz.indexOf(\"language_highlight_\")===0&&e.removeMarker(n);for(var r=0;r<e.markerAnchors.length;r++)e.markerAnchors[r].detach();e.markerAnchors=[]},this.addMarkers=function(e,t){var n=this;t.markerAnchors||(t.markerAnchors=[]),this.removeMarkers(t),t.languageAnnos=[],e.forEach(function(e){function u(i){r&&t.removeMarker(r),o.row=n.row;if(e.pos.sc!==undefined&&e.pos.ec!==undefined){var s=new a(e.pos.sl,e.pos.sc,e.pos.el,e.pos.ec);r=t.addMarker(s,\"language_highlight_\"+(e.type?e.type:\"default\"))}i&&t.setAnnotations(t.languageAnnos)}var n=new c(t.getDocument(),e.pos.sl,e.pos.sc||0);t.markerAnchors.push(n);var r,i=e.pos.ec-e.pos.sc,s=e.pos.el-e.pos.sl,o={guttertext:e.message,type:e.level||\"warning\",text:e.message};u(),n.on(\"change\",function(){u(!0)}),e.message&&t.languageAnnos.push(o)}),t.setAnnotations(t.languageAnnos)},this.$id=\"ace/mode/xquery\"}.call(h.prototype),t.Mode=h})"
  },
  {
    "path": "lib/src-min-noconflict-old/mode-yaml.js",
    "content": "ace.define(\"ace/mode/yaml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"comment\",regex:\"#.*$\"},{token:\"list.markup\",regex:/^(?:-{3}|\\.{3})\\s*(?=#|$)/},{token:\"list.markup\",regex:/^\\s*[\\-?](?:$|\\s)/},{token:\"constant\",regex:\"!![\\\\w//]+\"},{token:\"constant.language\",regex:\"[&\\\\*][a-zA-Z0-9-_]+\"},{token:[\"meta.tag\",\"keyword\"],regex:/^(\\s*\\w.*?)(\\:(?:\\s+|$))/},{token:[\"meta.tag\",\"keyword\"],regex:/(\\w+?)(\\s*\\:(?:\\s+|$))/},{token:\"keyword.operator\",regex:\"<<\\\\w*:\\\\w*\"},{token:\"keyword.operator\",regex:\"-\\\\s*(?=[{])\"},{token:\"string\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'},{token:\"string\",regex:\"[|>][-+\\\\d\\\\s]*$\",next:\"qqstring\"},{token:\"string\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"constant.numeric\",regex:/(\\b|[+\\-\\.])[\\d_]+(?:(?:\\.[\\d_]*)?(?:[eE][+\\-]?[\\d_]+)?)/},{token:\"constant.numeric\",regex:/[+\\-]?\\.inf\\b|NaN\\b|0x[\\dA-Fa-f_]+|0b[10_]+/},{token:\"constant.language.boolean\",regex:\"(?:true|false|TRUE|FALSE|True|False|yes|no)\\\\b\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"}],qqstring:[{token:\"string\",regex:\"(?=(?:(?:\\\\\\\\.)|(?:[^:]))*?:)\",next:\"start\"},{token:\"string\",regex:\".+\"}]}};r.inherits(s,i),t.YamlHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"./fold_mode\").FoldMode,s=e(\"../../range\").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!=\"#\")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!=\"#\")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\\S/),a=s.search(/\\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?\"start\":\"\",\"\";if(u==-1){if(i==a&&r[i]==\"#\"&&s[i]==\"#\")return e.foldWidgets[n-1]=\"\",e.foldWidgets[n+1]=\"\",\"start\"}else if(u==i&&r[i]==\"#\"&&o[i]==\"#\"&&e.getLine(n-2).search(/\\S/)==-1)return e.foldWidgets[n-1]=\"start\",e.foldWidgets[n+1]=\"\",\"\";return u!=-1&&u<i?e.foldWidgets[n-1]=\"start\":e.foldWidgets[n-1]=\"\",i<a?\"start\":\"\"}}.call(o.prototype)}),ace.define(\"ace/mode/yaml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/yaml_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./yaml_highlight_rules\").YamlHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./folding/coffee\").FoldMode,a=function(){this.HighlightRules=s,this.$outdent=new o,this.foldingRules=new u};r.inherits(a,i),function(){this.lineCommentStart=\"#\",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if(e==\"start\"){var i=t.match(/^.*[\\{\\(\\[]\\s*$/);i&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id=\"ace/mode/yaml\"}.call(a.prototype),t.Mode=a})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/abap.js",
    "content": "ace.define(\"ace/snippets/abap\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"abap\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/abc.js",
    "content": "ace.define(\"ace/snippets/abc\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='\\nsnippet zupfnoter.print\\n\t%%%%hn.print {\"startpos\": ${1:pos_y}, \"t\":\"${2:title}\", \"v\":[${3:voices}], \"s\":[[${4:syncvoices}1,2]], \"f\":[${5:flowlines}],  \"sf\":[${6:subflowlines}], \"j\":[${7:jumplines}]}\\n\\nsnippet zupfnoter.note\\n\t%%%%hn.note {\"pos\": [${1:pos_x},${2:pos_y}], \"text\": \"${3:text}\", \"style\": \"${4:style}\"}\\n\\nsnippet zupfnoter.annotation\\n\t%%%%hn.annotation {\"id\": \"${1:id}\", \"pos\": [${2:pos}], \"text\": \"${3:text}\"}\\n\\nsnippet zupfnoter.lyrics\\n\t%%%%hn.lyrics {\"pos\": [${1:x_pos},${2:y_pos}]}\\n\\nsnippet zupfnoter.legend\\n\t%%%%hn.legend {\"pos\": [${1:x_pos},${2:y_pos}]}\\n\\n\\n\\nsnippet zupfnoter.target\\n\t\"^:${1:target}\"\\n\\nsnippet zupfnoter.goto\\n\t\"^@${1:target}@${2:distance}\"\\n\\nsnippet zupfnoter.annotationref\\n\t\"^#${1:target}\"\\n\\nsnippet zupfnoter.annotation\\n\t\"^!${1:text}@${2:x_offset},${3:y_offset}\"\\n\\n\\n',t.scope=\"abc\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/actionscript.js",
    "content": "ace.define(\"ace/snippets/actionscript\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='snippet main\\n\tpackage {\\n\t\timport flash.display.*;\\n\t\timport flash.Events.*;\\n\t\\n\t\tpublic class Main extends Sprite {\\n\t\t\tpublic function Main (\t) {\\n\t\t\t\ttrace(\"start\");\\n\t\t\t\tstage.scaleMode = StageScaleMode.NO_SCALE;\\n\t\t\t\tstage.addEventListener(Event.RESIZE, resizeListener);\\n\t\t\t}\\n\t\\n\t\t\tprivate function resizeListener (e:Event):void {\\n\t\t\t\ttrace(\"The application window changed size!\");\\n\t\t\t\ttrace(\"New width:  \" + stage.stageWidth);\\n\t\t\t\ttrace(\"New height: \" + stage.stageHeight);\\n\t\t\t}\\n\t\\n\t\t}\\n\t\\n\t}\\nsnippet class\\n\t${1:public|internal} class ${2:name} ${3:extends } {\\n\t\tpublic function $2 (\t) {\\n\t\t\t(\"start\");\\n\t\t}\\n\t}\\nsnippet all\\n\tpackage name {\\n\\n\t\t${1:public|internal|final} class ${2:name} ${3:extends } {\\n\t\t\tprivate|public| static const FOO = \"abc\";\\n\t\t\tprivate|public| static var BAR = \"abc\";\\n\\n\t\t\t// class initializer - no JIT !! one time setup\\n\t\t\tif Cababilities.os == \"Linux|MacOS\" {\\n\t\t\t\tFOO = \"other\";\\n\t\t\t}\\n\\n\t\t\t// constructor:\\n\t\t\tpublic function $2 (\t){\\n\t\t\t\tsuper2();\\n\t\t\t\ttrace(\"start\");\\n\t\t\t}\\n\t\t\tpublic function name (a, b...){\\n\t\t\t\tsuper.name(..);\\n\t\t\t\tlable:break\\n\t\t\t}\\n\t\t}\\n\t}\\n\\n\tfunction A(){\\n\t\t// A can only be accessed within this file\\n\t}\\nsnippet switch\\n\tswitch(${1}){\\n\t\tcase ${2}:\\n\t\t\t${3}\\n\t\tbreak;\\n\t\tdefault:\\n\t}\\nsnippet case\\n\t\tcase ${1}:\\n\t\t\t${2}\\n\t\tbreak;\\nsnippet package\\n\tpackage ${1:package}{\\n\t\t${2}\\n\t}\\nsnippet wh\\n\twhile ${1:cond}{\\n\t\t${2}\\n\t}\\nsnippet do\\n\tdo {\\n\t\t${2}\\n\t} while (${1:cond})\\nsnippet while\\n\twhile ${1:cond}{\\n\t\t${2}\\n\t}\\nsnippet for enumerate names\\n\tfor (${1:var} in ${2:object}){\\n\t\t${3}\\n\t}\\nsnippet for enumerate values\\n\tfor each (${1:var} in ${2:object}){\\n\t\t${3}\\n\t}\\nsnippet get_set\\n\tfunction get ${1:name} {\\n\t\treturn ${2}\\n\t}\\n\tfunction set $1 (newValue) {\\n\t\t${3}\\n\t}\\nsnippet interface\\n\tinterface name {\\n\t\tfunction method(${1}):${2:returntype};\\n\t}\\nsnippet try\\n\ttry {\\n\t\t${1}\\n\t} catch (error:ErrorType) {\\n\t\t${2}\\n\t} finally {\\n\t\t${3}\\n\t}\\n# For Loop (same as c.snippet)\\nsnippet for for (..) {..}\\n\tfor (${2:i} = 0; $2 < ${1:count}; $2${3:++}) {\\n\t\t${4:/* code */}\\n\t}\\n# Custom For Loop\\nsnippet forr\\n\tfor (${1:i} = ${2:0}; ${3:$1 < 10}; $1${4:++}) {\\n\t\t${5:/* code */}\\n\t}\\n# If Condition\\nsnippet if\\n\tif (${1:/* condition */}) {\\n\t\t${2:/* code */}\\n\t}\\nsnippet el\\n\telse {\\n\t\t${1}\\n\t}\\n# Ternary conditional\\nsnippet t\\n\t${1:/* condition */} ? ${2:a} : ${3:b}\\nsnippet fun\\n\tfunction ${1:function_name}(${2})${3}\\n\t{\\n\t\t${4:/* code */}\\n\t}\\n# FlxSprite (usefull when using the flixel library)\\nsnippet FlxSprite\\n\tpackage\\n\t{\\n\t\timport org.flixel.*\\n\\n\t\tpublic class ${1:ClassName} extends ${2:FlxSprite}\\n\t\t{\\n\t\t\tpublic function $1(${3: X:Number, Y:Number}):void\\n\t\t\t{\\n\t\t\t\tsuper(X,Y);\\n\t\t\t\t${4: //code...}\\n\t\t\t}\\n\\n\t\t\toverride public function update():void\\n\t\t\t{\\n\t\t\t\tsuper.update();\\n\t\t\t\t${5: //code...}\\n\t\t\t}\\n\t\t}\\n\t}\\n\\n',t.scope=\"actionscript\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/ada.js",
    "content": "ace.define(\"ace/snippets/ada\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"ada\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/apache_conf.js",
    "content": "ace.define(\"ace/snippets/apache_conf\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"apache_conf\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/applescript.js",
    "content": "ace.define(\"ace/snippets/applescript\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"applescript\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/asciidoc.js",
    "content": "ace.define(\"ace/snippets/asciidoc\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"asciidoc\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/assembly_x86.js",
    "content": "ace.define(\"ace/snippets/assembly_x86\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"assembly_x86\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/autohotkey.js",
    "content": "ace.define(\"ace/snippets/autohotkey\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"autohotkey\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/batchfile.js",
    "content": "ace.define(\"ace/snippets/batchfile\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"batchfile\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/c9search.js",
    "content": "ace.define(\"ace/snippets/c9search\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"c9search\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/c_cpp.js",
    "content": "ace.define(\"ace/snippets/c_cpp\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"## STL Collections\\n# std::array\\nsnippet array\\n\tstd::array<${1:T}, ${2:N}> ${3};${4}\\n# std::vector\\nsnippet vector\\n\tstd::vector<${1:T}> ${2};${3}\\n# std::deque\\nsnippet deque\\n\tstd::deque<${1:T}> ${2};${3}\\n# std::forward_list\\nsnippet flist\\n\tstd::forward_list<${1:T}> ${2};${3}\\n# std::list\\nsnippet list\\n\tstd::list<${1:T}> ${2};${3}\\n# std::set\\nsnippet set\\n\tstd::set<${1:T}> ${2};${3}\\n# std::map\\nsnippet map\\n\tstd::map<${1:Key}, ${2:T}> ${3};${4}\\n# std::multiset\\nsnippet mset\\n\tstd::multiset<${1:T}> ${2};${3}\\n# std::multimap\\nsnippet mmap\\n\tstd::multimap<${1:Key}, ${2:T}> ${3};${4}\\n# std::unordered_set\\nsnippet uset\\n\tstd::unordered_set<${1:T}> ${2};${3}\\n# std::unordered_map\\nsnippet umap\\n\tstd::unordered_map<${1:Key}, ${2:T}> ${3};${4}\\n# std::unordered_multiset\\nsnippet umset\\n\tstd::unordered_multiset<${1:T}> ${2};${3}\\n# std::unordered_multimap\\nsnippet ummap\\n\tstd::unordered_multimap<${1:Key}, ${2:T}> ${3};${4}\\n# std::stack\\nsnippet stack\\n\tstd::stack<${1:T}> ${2};${3}\\n# std::queue\\nsnippet queue\\n\tstd::queue<${1:T}> ${2};${3}\\n# std::priority_queue\\nsnippet pqueue\\n\tstd::priority_queue<${1:T}> ${2};${3}\\n##\\n## Access Modifiers\\n# private\\nsnippet pri\\n\tprivate\\n# protected\\nsnippet pro\\n\tprotected\\n# public\\nsnippet pub\\n\tpublic\\n# friend\\nsnippet fr\\n\tfriend\\n# mutable\\nsnippet mu\\n\tmutable\\n## \\n## Class\\n# class\\nsnippet cl\\n\tclass ${1:`Filename('$1', 'name')`} \\n\t{\\n\tpublic:\\n\t\t$1(${2});\\n\t\t~$1();\\n\\n\tprivate:\\n\t\t${3:/* data */}\\n\t};\\n# member function implementation\\nsnippet mfun\\n\t${4:void} ${1:`Filename('$1', 'ClassName')`}::${2:memberFunction}(${3}) {\\n\t\t${5:/* code */}\\n\t}\\n# namespace\\nsnippet ns\\n\tnamespace ${1:`Filename('', 'my')`} {\\n\t\t${2}\\n\t} /* namespace $1 */\\n##\\n## Input/Output\\n# std::cout\\nsnippet cout\\n\tstd::cout << ${1} << std::endl;${2}\\n# std::cin\\nsnippet cin\\n\tstd::cin >> ${1};${2}\\n##\\n## Iteration\\n# for i \\nsnippet fori\\n\tfor (int ${2:i} = 0; $2 < ${1:count}; $2${3:++}) {\\n\t\t${4:/* code */}\\n\t}${5}\\n\\n# foreach\\nsnippet fore\\n\tfor (${1:auto} ${2:i} : ${3:container}) {\\n\t\t${4:/* code */}\\n\t}${5}\\n# iterator\\nsnippet iter\\n\tfor (${1:std::vector}<${2:type}>::${3:const_iterator} ${4:i} = ${5:container}.begin(); $4 != $5.end(); ++$4) {\\n\t\t${6}\\n\t}${7}\\n\\n# auto iterator\\nsnippet itera\\n\tfor (auto ${1:i} = $1.begin(); $1 != $1.end(); ++$1) {\\n\t\t${2:std::cout << *$1 << std::endl;}\\n\t}${3}\\n##\\n## Lambdas\\n# lamda (one line)\\nsnippet ld\\n\t[${1}](${2}){${3:/* code */}}${4}\\n# lambda (multi-line)\\nsnippet lld\\n\t[${1}](${2}){\\n\t\t${3:/* code */}\\n\t}${4}\\n\",t.scope=\"c_cpp\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/cirru.js",
    "content": "ace.define(\"ace/snippets/cirru\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"cirru\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/clojure.js",
    "content": "ace.define(\"ace/snippets/clojure\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='snippet comm\\n\t(comment\\n\t  ${1}\\n\t  )\\nsnippet condp\\n\t(condp ${1:pred} ${2:expr}\\n\t  ${3})\\nsnippet def\\n\t(def ${1})\\nsnippet defm\\n\t(defmethod ${1:multifn} \"${2:doc-string}\" ${3:dispatch-val} [${4:args}]\\n\t  ${5})\\nsnippet defmm\\n\t(defmulti ${1:name} \"${2:doc-string}\" ${3:dispatch-fn})\\nsnippet defma\\n\t(defmacro ${1:name} \"${2:doc-string}\" ${3:dispatch-fn})\\nsnippet defn\\n\t(defn ${1:name} \"${2:doc-string}\" [${3:arg-list}]\\n\t  ${4})\\nsnippet defp\\n\t(defprotocol ${1:name}\\n\t  ${2})\\nsnippet defr\\n\t(defrecord ${1:name} [${2:fields}]\\n\t  ${3:protocol}\\n\t  ${4})\\nsnippet deft\\n\t(deftest ${1:name}\\n\t    (is (= ${2:assertion})))\\n\t  ${3})\\nsnippet is\\n\t(is (= ${1} ${2}))\\nsnippet defty\\n\t(deftype ${1:Name} [${2:fields}]\\n\t  ${3:Protocol}\\n\t  ${4})\\nsnippet doseq\\n\t(doseq [${1:elem} ${2:coll}]\\n\t  ${3})\\nsnippet fn\\n\t(fn [${1:arg-list}] ${2})\\nsnippet if\\n\t(if ${1:test-expr}\\n\t  ${2:then-expr}\\n\t  ${3:else-expr})\\nsnippet if-let \\n\t(if-let [${1:result} ${2:test-expr}]\\n\t\t(${3:then-expr} $1)\\n\t\t(${4:else-expr}))\\nsnippet imp\\n\t(:import [${1:package}])\\n\t& {:keys [${1:keys}] :or {${2:defaults}}}\\nsnippet let\\n\t(let [${1:name} ${2:expr}]\\n\t\t${3})\\nsnippet letfn\\n\t(letfn [(${1:name) [${2:args}]\\n\t          ${3})])\\nsnippet map\\n\t(map ${1:func} ${2:coll})\\nsnippet mapl\\n\t(map #(${1:lambda}) ${2:coll})\\nsnippet met\\n\t(${1:name} [${2:this} ${3:args}]\\n\t  ${4})\\nsnippet ns\\n\t(ns ${1:name}\\n\t  ${2})\\nsnippet dotimes\\n\t(dotimes [_ 10]\\n\t  (time\\n\t    (dotimes [_ ${1:times}]\\n\t      ${2})))\\nsnippet pmethod\\n\t(${1:name} [${2:this} ${3:args}])\\nsnippet refer\\n\t(:refer-clojure :exclude [${1}])\\nsnippet require\\n\t(:require [${1:namespace} :as [${2}]])\\nsnippet use\\n\t(:use [${1:namespace} :only [${2}]])\\nsnippet print\\n\t(println ${1})\\nsnippet reduce\\n\t(reduce ${1:(fn [p n] ${3})} ${2})\\nsnippet when\\n\t(when ${1:test} ${2:body})\\nsnippet when-let\\n\t(when-let [${1:result} ${2:test}]\\n\t\t${3:body})\\n',t.scope=\"clojure\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/cobol.js",
    "content": "ace.define(\"ace/snippets/cobol\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"cobol\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/coffee.js",
    "content": "ace.define(\"ace/snippets/coffee\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"# Closure loop\\nsnippet forindo\\n\tfor ${1:name} in ${2:array}\\n\t\tdo ($1) ->\\n\t\t\t${3:// body}\\n# Array comprehension\\nsnippet fora\\n\tfor ${1:name} in ${2:array}\\n\t\t${3:// body...}\\n# Object comprehension\\nsnippet foro\\n\tfor ${1:key}, ${2:value} of ${3:object}\\n\t\t${4:// body...}\\n# Range comprehension (inclusive)\\nsnippet forr\\n\tfor ${1:name} in [${2:start}..${3:finish}]\\n\t\t${4:// body...}\\nsnippet forrb\\n\tfor ${1:name} in [${2:start}..${3:finish}] by ${4:step}\\n\t\t${5:// body...}\\n# Range comprehension (exclusive)\\nsnippet forrex\\n\tfor ${1:name} in [${2:start}...${3:finish}]\\n\t\t${4:// body...}\\nsnippet forrexb\\n\tfor ${1:name} in [${2:start}...${3:finish}] by ${4:step}\\n\t\t${5:// body...}\\n# Function\\nsnippet fun\\n\t(${1:args}) ->\\n\t\t${2:// body...}\\n# Function (bound)\\nsnippet bfun\\n\t(${1:args}) =>\\n\t\t${2:// body...}\\n# Class\\nsnippet cla class ..\\n\tclass ${1:`substitute(Filename(), '\\\\(_\\\\|^\\\\)\\\\(.\\\\)', '\\\\u\\\\2', 'g')`}\\n\t\t${2}\\nsnippet cla class .. constructor: ..\\n\tclass ${1:`substitute(Filename(), '\\\\(_\\\\|^\\\\)\\\\(.\\\\)', '\\\\u\\\\2', 'g')`}\\n\t\tconstructor: (${2:args}) ->\\n\t\t\t${3}\\n\\n\t\t${4}\\nsnippet cla class .. extends ..\\n\tclass ${1:`substitute(Filename(), '\\\\(_\\\\|^\\\\)\\\\(.\\\\)', '\\\\u\\\\2', 'g')`} extends ${2:ParentClass}\\n\t\t${3}\\nsnippet cla class .. extends .. constructor: ..\\n\tclass ${1:`substitute(Filename(), '\\\\(_\\\\|^\\\\)\\\\(.\\\\)', '\\\\u\\\\2', 'g')`} extends ${2:ParentClass}\\n\t\tconstructor: (${3:args}) ->\\n\t\t\t${4}\\n\\n\t\t${5}\\n# If\\nsnippet if\\n\tif ${1:condition}\\n\t\t${2:// body...}\\n# If __ Else\\nsnippet ife\\n\tif ${1:condition}\\n\t\t${2:// body...}\\n\telse\\n\t\t${3:// body...}\\n# Else if\\nsnippet elif\\n\telse if ${1:condition}\\n\t\t${2:// body...}\\n# Ternary If\\nsnippet ifte\\n\tif ${1:condition} then ${2:value} else ${3:other}\\n# Unless\\nsnippet unl\\n\t${1:action} unless ${2:condition}\\n# Switch\\nsnippet swi\\n\tswitch ${1:object}\\n\t\twhen ${2:value}\\n\t\t\t${3:// body...}\\n\\n# Log\\nsnippet log\\n\tconsole.log ${1}\\n# Try __ Catch\\nsnippet try\\n\ttry\\n\t\t${1}\\n\tcatch ${2:error}\\n\t\t${3}\\n# Require\\nsnippet req\\n\t${2:$1} = require '${1:sys}'${3}\\n# Export\\nsnippet exp\\n\t${1:root} = exports ? this\\n\",t.scope=\"coffee\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/coldfusion.js",
    "content": "ace.define(\"ace/snippets/coldfusion\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"coldfusion\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/csharp.js",
    "content": "ace.define(\"ace/snippets/csharp\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"csharp\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/css.js",
    "content": "ace.define(\"ace/snippets/css\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"snippet .\\n\t${1} {\\n\t\t${2}\\n\t}\\nsnippet !\\n\t !important\\nsnippet bdi:m+\\n\t-moz-border-image: url(${1}) ${2:0} ${3:0} ${4:0} ${5:0} ${6:stretch} ${7:stretch};\\nsnippet bdi:m\\n\t-moz-border-image: ${1};\\nsnippet bdrz:m\\n\t-moz-border-radius: ${1};\\nsnippet bxsh:m+\\n\t-moz-box-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\\nsnippet bxsh:m\\n\t-moz-box-shadow: ${1};\\nsnippet bdi:w+\\n\t-webkit-border-image: url(${1}) ${2:0} ${3:0} ${4:0} ${5:0} ${6:stretch} ${7:stretch};\\nsnippet bdi:w\\n\t-webkit-border-image: ${1};\\nsnippet bdrz:w\\n\t-webkit-border-radius: ${1};\\nsnippet bxsh:w+\\n\t-webkit-box-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\\nsnippet bxsh:w\\n\t-webkit-box-shadow: ${1};\\nsnippet @f\\n\t@font-face {\\n\t\tfont-family: ${1};\\n\t\tsrc: url(${2});\\n\t}\\nsnippet @i\\n\t@import url(${1});\\nsnippet @m\\n\t@media ${1:print} {\\n\t\t${2}\\n\t}\\nsnippet bg+\\n\tbackground: #${1:FFF} url(${2}) ${3:0} ${4:0} ${5:no-repeat};\\nsnippet bga\\n\tbackground-attachment: ${1};\\nsnippet bga:f\\n\tbackground-attachment: fixed;\\nsnippet bga:s\\n\tbackground-attachment: scroll;\\nsnippet bgbk\\n\tbackground-break: ${1};\\nsnippet bgbk:bb\\n\tbackground-break: bounding-box;\\nsnippet bgbk:c\\n\tbackground-break: continuous;\\nsnippet bgbk:eb\\n\tbackground-break: each-box;\\nsnippet bgcp\\n\tbackground-clip: ${1};\\nsnippet bgcp:bb\\n\tbackground-clip: border-box;\\nsnippet bgcp:cb\\n\tbackground-clip: content-box;\\nsnippet bgcp:nc\\n\tbackground-clip: no-clip;\\nsnippet bgcp:pb\\n\tbackground-clip: padding-box;\\nsnippet bgc\\n\tbackground-color: #${1:FFF};\\nsnippet bgc:t\\n\tbackground-color: transparent;\\nsnippet bgi\\n\tbackground-image: url(${1});\\nsnippet bgi:n\\n\tbackground-image: none;\\nsnippet bgo\\n\tbackground-origin: ${1};\\nsnippet bgo:bb\\n\tbackground-origin: border-box;\\nsnippet bgo:cb\\n\tbackground-origin: content-box;\\nsnippet bgo:pb\\n\tbackground-origin: padding-box;\\nsnippet bgpx\\n\tbackground-position-x: ${1};\\nsnippet bgpy\\n\tbackground-position-y: ${1};\\nsnippet bgp\\n\tbackground-position: ${1:0} ${2:0};\\nsnippet bgr\\n\tbackground-repeat: ${1};\\nsnippet bgr:n\\n\tbackground-repeat: no-repeat;\\nsnippet bgr:x\\n\tbackground-repeat: repeat-x;\\nsnippet bgr:y\\n\tbackground-repeat: repeat-y;\\nsnippet bgr:r\\n\tbackground-repeat: repeat;\\nsnippet bgz\\n\tbackground-size: ${1};\\nsnippet bgz:a\\n\tbackground-size: auto;\\nsnippet bgz:ct\\n\tbackground-size: contain;\\nsnippet bgz:cv\\n\tbackground-size: cover;\\nsnippet bg\\n\tbackground: ${1};\\nsnippet bg:ie\\n\tfilter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='${1}',sizingMethod='${2:crop}');\\nsnippet bg:n\\n\tbackground: none;\\nsnippet bd+\\n\tborder: ${1:1px} ${2:solid} #${3:000};\\nsnippet bdb+\\n\tborder-bottom: ${1:1px} ${2:solid} #${3:000};\\nsnippet bdbc\\n\tborder-bottom-color: #${1:000};\\nsnippet bdbi\\n\tborder-bottom-image: url(${1});\\nsnippet bdbi:n\\n\tborder-bottom-image: none;\\nsnippet bdbli\\n\tborder-bottom-left-image: url(${1});\\nsnippet bdbli:c\\n\tborder-bottom-left-image: continue;\\nsnippet bdbli:n\\n\tborder-bottom-left-image: none;\\nsnippet bdblrz\\n\tborder-bottom-left-radius: ${1};\\nsnippet bdbri\\n\tborder-bottom-right-image: url(${1});\\nsnippet bdbri:c\\n\tborder-bottom-right-image: continue;\\nsnippet bdbri:n\\n\tborder-bottom-right-image: none;\\nsnippet bdbrrz\\n\tborder-bottom-right-radius: ${1};\\nsnippet bdbs\\n\tborder-bottom-style: ${1};\\nsnippet bdbs:n\\n\tborder-bottom-style: none;\\nsnippet bdbw\\n\tborder-bottom-width: ${1};\\nsnippet bdb\\n\tborder-bottom: ${1};\\nsnippet bdb:n\\n\tborder-bottom: none;\\nsnippet bdbk\\n\tborder-break: ${1};\\nsnippet bdbk:c\\n\tborder-break: close;\\nsnippet bdcl\\n\tborder-collapse: ${1};\\nsnippet bdcl:c\\n\tborder-collapse: collapse;\\nsnippet bdcl:s\\n\tborder-collapse: separate;\\nsnippet bdc\\n\tborder-color: #${1:000};\\nsnippet bdci\\n\tborder-corner-image: url(${1});\\nsnippet bdci:c\\n\tborder-corner-image: continue;\\nsnippet bdci:n\\n\tborder-corner-image: none;\\nsnippet bdf\\n\tborder-fit: ${1};\\nsnippet bdf:c\\n\tborder-fit: clip;\\nsnippet bdf:of\\n\tborder-fit: overwrite;\\nsnippet bdf:ow\\n\tborder-fit: overwrite;\\nsnippet bdf:r\\n\tborder-fit: repeat;\\nsnippet bdf:sc\\n\tborder-fit: scale;\\nsnippet bdf:sp\\n\tborder-fit: space;\\nsnippet bdf:st\\n\tborder-fit: stretch;\\nsnippet bdi\\n\tborder-image: url(${1}) ${2:0} ${3:0} ${4:0} ${5:0} ${6:stretch} ${7:stretch};\\nsnippet bdi:n\\n\tborder-image: none;\\nsnippet bdl+\\n\tborder-left: ${1:1px} ${2:solid} #${3:000};\\nsnippet bdlc\\n\tborder-left-color: #${1:000};\\nsnippet bdli\\n\tborder-left-image: url(${1});\\nsnippet bdli:n\\n\tborder-left-image: none;\\nsnippet bdls\\n\tborder-left-style: ${1};\\nsnippet bdls:n\\n\tborder-left-style: none;\\nsnippet bdlw\\n\tborder-left-width: ${1};\\nsnippet bdl\\n\tborder-left: ${1};\\nsnippet bdl:n\\n\tborder-left: none;\\nsnippet bdlt\\n\tborder-length: ${1};\\nsnippet bdlt:a\\n\tborder-length: auto;\\nsnippet bdrz\\n\tborder-radius: ${1};\\nsnippet bdr+\\n\tborder-right: ${1:1px} ${2:solid} #${3:000};\\nsnippet bdrc\\n\tborder-right-color: #${1:000};\\nsnippet bdri\\n\tborder-right-image: url(${1});\\nsnippet bdri:n\\n\tborder-right-image: none;\\nsnippet bdrs\\n\tborder-right-style: ${1};\\nsnippet bdrs:n\\n\tborder-right-style: none;\\nsnippet bdrw\\n\tborder-right-width: ${1};\\nsnippet bdr\\n\tborder-right: ${1};\\nsnippet bdr:n\\n\tborder-right: none;\\nsnippet bdsp\\n\tborder-spacing: ${1};\\nsnippet bds\\n\tborder-style: ${1};\\nsnippet bds:ds\\n\tborder-style: dashed;\\nsnippet bds:dtds\\n\tborder-style: dot-dash;\\nsnippet bds:dtdtds\\n\tborder-style: dot-dot-dash;\\nsnippet bds:dt\\n\tborder-style: dotted;\\nsnippet bds:db\\n\tborder-style: double;\\nsnippet bds:g\\n\tborder-style: groove;\\nsnippet bds:h\\n\tborder-style: hidden;\\nsnippet bds:i\\n\tborder-style: inset;\\nsnippet bds:n\\n\tborder-style: none;\\nsnippet bds:o\\n\tborder-style: outset;\\nsnippet bds:r\\n\tborder-style: ridge;\\nsnippet bds:s\\n\tborder-style: solid;\\nsnippet bds:w\\n\tborder-style: wave;\\nsnippet bdt+\\n\tborder-top: ${1:1px} ${2:solid} #${3:000};\\nsnippet bdtc\\n\tborder-top-color: #${1:000};\\nsnippet bdti\\n\tborder-top-image: url(${1});\\nsnippet bdti:n\\n\tborder-top-image: none;\\nsnippet bdtli\\n\tborder-top-left-image: url(${1});\\nsnippet bdtli:c\\n\tborder-corner-image: continue;\\nsnippet bdtli:n\\n\tborder-corner-image: none;\\nsnippet bdtlrz\\n\tborder-top-left-radius: ${1};\\nsnippet bdtri\\n\tborder-top-right-image: url(${1});\\nsnippet bdtri:c\\n\tborder-top-right-image: continue;\\nsnippet bdtri:n\\n\tborder-top-right-image: none;\\nsnippet bdtrrz\\n\tborder-top-right-radius: ${1};\\nsnippet bdts\\n\tborder-top-style: ${1};\\nsnippet bdts:n\\n\tborder-top-style: none;\\nsnippet bdtw\\n\tborder-top-width: ${1};\\nsnippet bdt\\n\tborder-top: ${1};\\nsnippet bdt:n\\n\tborder-top: none;\\nsnippet bdw\\n\tborder-width: ${1};\\nsnippet bd\\n\tborder: ${1};\\nsnippet bd:n\\n\tborder: none;\\nsnippet b\\n\tbottom: ${1};\\nsnippet b:a\\n\tbottom: auto;\\nsnippet bxsh+\\n\tbox-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\\nsnippet bxsh\\n\tbox-shadow: ${1};\\nsnippet bxsh:n\\n\tbox-shadow: none;\\nsnippet bxz\\n\tbox-sizing: ${1};\\nsnippet bxz:bb\\n\tbox-sizing: border-box;\\nsnippet bxz:cb\\n\tbox-sizing: content-box;\\nsnippet cps\\n\tcaption-side: ${1};\\nsnippet cps:b\\n\tcaption-side: bottom;\\nsnippet cps:t\\n\tcaption-side: top;\\nsnippet cl\\n\tclear: ${1};\\nsnippet cl:b\\n\tclear: both;\\nsnippet cl:l\\n\tclear: left;\\nsnippet cl:n\\n\tclear: none;\\nsnippet cl:r\\n\tclear: right;\\nsnippet cp\\n\tclip: ${1};\\nsnippet cp:a\\n\tclip: auto;\\nsnippet cp:r\\n\tclip: rect(${1:0} ${2:0} ${3:0} ${4:0});\\nsnippet c\\n\tcolor: #${1:000};\\nsnippet ct\\n\tcontent: ${1};\\nsnippet ct:a\\n\tcontent: attr(${1});\\nsnippet ct:cq\\n\tcontent: close-quote;\\nsnippet ct:c\\n\tcontent: counter(${1});\\nsnippet ct:cs\\n\tcontent: counters(${1});\\nsnippet ct:ncq\\n\tcontent: no-close-quote;\\nsnippet ct:noq\\n\tcontent: no-open-quote;\\nsnippet ct:n\\n\tcontent: normal;\\nsnippet ct:oq\\n\tcontent: open-quote;\\nsnippet coi\\n\tcounter-increment: ${1};\\nsnippet cor\\n\tcounter-reset: ${1};\\nsnippet cur\\n\tcursor: ${1};\\nsnippet cur:a\\n\tcursor: auto;\\nsnippet cur:c\\n\tcursor: crosshair;\\nsnippet cur:d\\n\tcursor: default;\\nsnippet cur:ha\\n\tcursor: hand;\\nsnippet cur:he\\n\tcursor: help;\\nsnippet cur:m\\n\tcursor: move;\\nsnippet cur:p\\n\tcursor: pointer;\\nsnippet cur:t\\n\tcursor: text;\\nsnippet d\\n\tdisplay: ${1};\\nsnippet d:mib\\n\tdisplay: -moz-inline-box;\\nsnippet d:mis\\n\tdisplay: -moz-inline-stack;\\nsnippet d:b\\n\tdisplay: block;\\nsnippet d:cp\\n\tdisplay: compact;\\nsnippet d:ib\\n\tdisplay: inline-block;\\nsnippet d:itb\\n\tdisplay: inline-table;\\nsnippet d:i\\n\tdisplay: inline;\\nsnippet d:li\\n\tdisplay: list-item;\\nsnippet d:n\\n\tdisplay: none;\\nsnippet d:ri\\n\tdisplay: run-in;\\nsnippet d:tbcp\\n\tdisplay: table-caption;\\nsnippet d:tbc\\n\tdisplay: table-cell;\\nsnippet d:tbclg\\n\tdisplay: table-column-group;\\nsnippet d:tbcl\\n\tdisplay: table-column;\\nsnippet d:tbfg\\n\tdisplay: table-footer-group;\\nsnippet d:tbhg\\n\tdisplay: table-header-group;\\nsnippet d:tbrg\\n\tdisplay: table-row-group;\\nsnippet d:tbr\\n\tdisplay: table-row;\\nsnippet d:tb\\n\tdisplay: table;\\nsnippet ec\\n\tempty-cells: ${1};\\nsnippet ec:h\\n\tempty-cells: hide;\\nsnippet ec:s\\n\tempty-cells: show;\\nsnippet exp\\n\texpression()\\nsnippet fl\\n\tfloat: ${1};\\nsnippet fl:l\\n\tfloat: left;\\nsnippet fl:n\\n\tfloat: none;\\nsnippet fl:r\\n\tfloat: right;\\nsnippet f+\\n\tfont: ${1:1em} ${2:Arial},${3:sans-serif};\\nsnippet fef\\n\tfont-effect: ${1};\\nsnippet fef:eb\\n\tfont-effect: emboss;\\nsnippet fef:eg\\n\tfont-effect: engrave;\\nsnippet fef:n\\n\tfont-effect: none;\\nsnippet fef:o\\n\tfont-effect: outline;\\nsnippet femp\\n\tfont-emphasize-position: ${1};\\nsnippet femp:a\\n\tfont-emphasize-position: after;\\nsnippet femp:b\\n\tfont-emphasize-position: before;\\nsnippet fems\\n\tfont-emphasize-style: ${1};\\nsnippet fems:ac\\n\tfont-emphasize-style: accent;\\nsnippet fems:c\\n\tfont-emphasize-style: circle;\\nsnippet fems:ds\\n\tfont-emphasize-style: disc;\\nsnippet fems:dt\\n\tfont-emphasize-style: dot;\\nsnippet fems:n\\n\tfont-emphasize-style: none;\\nsnippet fem\\n\tfont-emphasize: ${1};\\nsnippet ff\\n\tfont-family: ${1};\\nsnippet ff:c\\n\tfont-family: ${1:'Monotype Corsiva','Comic Sans MS'},cursive;\\nsnippet ff:f\\n\tfont-family: ${1:Capitals,Impact},fantasy;\\nsnippet ff:m\\n\tfont-family: ${1:Monaco,'Courier New'},monospace;\\nsnippet ff:ss\\n\tfont-family: ${1:Helvetica,Arial},sans-serif;\\nsnippet ff:s\\n\tfont-family: ${1:Georgia,'Times New Roman'},serif;\\nsnippet fza\\n\tfont-size-adjust: ${1};\\nsnippet fza:n\\n\tfont-size-adjust: none;\\nsnippet fz\\n\tfont-size: ${1};\\nsnippet fsm\\n\tfont-smooth: ${1};\\nsnippet fsm:aw\\n\tfont-smooth: always;\\nsnippet fsm:a\\n\tfont-smooth: auto;\\nsnippet fsm:n\\n\tfont-smooth: never;\\nsnippet fst\\n\tfont-stretch: ${1};\\nsnippet fst:c\\n\tfont-stretch: condensed;\\nsnippet fst:e\\n\tfont-stretch: expanded;\\nsnippet fst:ec\\n\tfont-stretch: extra-condensed;\\nsnippet fst:ee\\n\tfont-stretch: extra-expanded;\\nsnippet fst:n\\n\tfont-stretch: normal;\\nsnippet fst:sc\\n\tfont-stretch: semi-condensed;\\nsnippet fst:se\\n\tfont-stretch: semi-expanded;\\nsnippet fst:uc\\n\tfont-stretch: ultra-condensed;\\nsnippet fst:ue\\n\tfont-stretch: ultra-expanded;\\nsnippet fs\\n\tfont-style: ${1};\\nsnippet fs:i\\n\tfont-style: italic;\\nsnippet fs:n\\n\tfont-style: normal;\\nsnippet fs:o\\n\tfont-style: oblique;\\nsnippet fv\\n\tfont-variant: ${1};\\nsnippet fv:n\\n\tfont-variant: normal;\\nsnippet fv:sc\\n\tfont-variant: small-caps;\\nsnippet fw\\n\tfont-weight: ${1};\\nsnippet fw:b\\n\tfont-weight: bold;\\nsnippet fw:br\\n\tfont-weight: bolder;\\nsnippet fw:lr\\n\tfont-weight: lighter;\\nsnippet fw:n\\n\tfont-weight: normal;\\nsnippet f\\n\tfont: ${1};\\nsnippet h\\n\theight: ${1};\\nsnippet h:a\\n\theight: auto;\\nsnippet l\\n\tleft: ${1};\\nsnippet l:a\\n\tleft: auto;\\nsnippet lts\\n\tletter-spacing: ${1};\\nsnippet lh\\n\tline-height: ${1};\\nsnippet lisi\\n\tlist-style-image: url(${1});\\nsnippet lisi:n\\n\tlist-style-image: none;\\nsnippet lisp\\n\tlist-style-position: ${1};\\nsnippet lisp:i\\n\tlist-style-position: inside;\\nsnippet lisp:o\\n\tlist-style-position: outside;\\nsnippet list\\n\tlist-style-type: ${1};\\nsnippet list:c\\n\tlist-style-type: circle;\\nsnippet list:dclz\\n\tlist-style-type: decimal-leading-zero;\\nsnippet list:dc\\n\tlist-style-type: decimal;\\nsnippet list:d\\n\tlist-style-type: disc;\\nsnippet list:lr\\n\tlist-style-type: lower-roman;\\nsnippet list:n\\n\tlist-style-type: none;\\nsnippet list:s\\n\tlist-style-type: square;\\nsnippet list:ur\\n\tlist-style-type: upper-roman;\\nsnippet lis\\n\tlist-style: ${1};\\nsnippet lis:n\\n\tlist-style: none;\\nsnippet mb\\n\tmargin-bottom: ${1};\\nsnippet mb:a\\n\tmargin-bottom: auto;\\nsnippet ml\\n\tmargin-left: ${1};\\nsnippet ml:a\\n\tmargin-left: auto;\\nsnippet mr\\n\tmargin-right: ${1};\\nsnippet mr:a\\n\tmargin-right: auto;\\nsnippet mt\\n\tmargin-top: ${1};\\nsnippet mt:a\\n\tmargin-top: auto;\\nsnippet m\\n\tmargin: ${1};\\nsnippet m:4\\n\tmargin: ${1:0} ${2:0} ${3:0} ${4:0};\\nsnippet m:3\\n\tmargin: ${1:0} ${2:0} ${3:0};\\nsnippet m:2\\n\tmargin: ${1:0} ${2:0};\\nsnippet m:0\\n\tmargin: 0;\\nsnippet m:a\\n\tmargin: auto;\\nsnippet mah\\n\tmax-height: ${1};\\nsnippet mah:n\\n\tmax-height: none;\\nsnippet maw\\n\tmax-width: ${1};\\nsnippet maw:n\\n\tmax-width: none;\\nsnippet mih\\n\tmin-height: ${1};\\nsnippet miw\\n\tmin-width: ${1};\\nsnippet op\\n\topacity: ${1};\\nsnippet op:ie\\n\tfilter: progid:DXImageTransform.Microsoft.Alpha(Opacity=${1:100});\\nsnippet op:ms\\n\t-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=${1:100})';\\nsnippet orp\\n\torphans: ${1};\\nsnippet o+\\n\toutline: ${1:1px} ${2:solid} #${3:000};\\nsnippet oc\\n\toutline-color: ${1:#000};\\nsnippet oc:i\\n\toutline-color: invert;\\nsnippet oo\\n\toutline-offset: ${1};\\nsnippet os\\n\toutline-style: ${1};\\nsnippet ow\\n\toutline-width: ${1};\\nsnippet o\\n\toutline: ${1};\\nsnippet o:n\\n\toutline: none;\\nsnippet ovs\\n\toverflow-style: ${1};\\nsnippet ovs:a\\n\toverflow-style: auto;\\nsnippet ovs:mq\\n\toverflow-style: marquee;\\nsnippet ovs:mv\\n\toverflow-style: move;\\nsnippet ovs:p\\n\toverflow-style: panner;\\nsnippet ovs:s\\n\toverflow-style: scrollbar;\\nsnippet ovx\\n\toverflow-x: ${1};\\nsnippet ovx:a\\n\toverflow-x: auto;\\nsnippet ovx:h\\n\toverflow-x: hidden;\\nsnippet ovx:s\\n\toverflow-x: scroll;\\nsnippet ovx:v\\n\toverflow-x: visible;\\nsnippet ovy\\n\toverflow-y: ${1};\\nsnippet ovy:a\\n\toverflow-y: auto;\\nsnippet ovy:h\\n\toverflow-y: hidden;\\nsnippet ovy:s\\n\toverflow-y: scroll;\\nsnippet ovy:v\\n\toverflow-y: visible;\\nsnippet ov\\n\toverflow: ${1};\\nsnippet ov:a\\n\toverflow: auto;\\nsnippet ov:h\\n\toverflow: hidden;\\nsnippet ov:s\\n\toverflow: scroll;\\nsnippet ov:v\\n\toverflow: visible;\\nsnippet pb\\n\tpadding-bottom: ${1};\\nsnippet pl\\n\tpadding-left: ${1};\\nsnippet pr\\n\tpadding-right: ${1};\\nsnippet pt\\n\tpadding-top: ${1};\\nsnippet p\\n\tpadding: ${1};\\nsnippet p:4\\n\tpadding: ${1:0} ${2:0} ${3:0} ${4:0};\\nsnippet p:3\\n\tpadding: ${1:0} ${2:0} ${3:0};\\nsnippet p:2\\n\tpadding: ${1:0} ${2:0};\\nsnippet p:0\\n\tpadding: 0;\\nsnippet pgba\\n\tpage-break-after: ${1};\\nsnippet pgba:aw\\n\tpage-break-after: always;\\nsnippet pgba:a\\n\tpage-break-after: auto;\\nsnippet pgba:l\\n\tpage-break-after: left;\\nsnippet pgba:r\\n\tpage-break-after: right;\\nsnippet pgbb\\n\tpage-break-before: ${1};\\nsnippet pgbb:aw\\n\tpage-break-before: always;\\nsnippet pgbb:a\\n\tpage-break-before: auto;\\nsnippet pgbb:l\\n\tpage-break-before: left;\\nsnippet pgbb:r\\n\tpage-break-before: right;\\nsnippet pgbi\\n\tpage-break-inside: ${1};\\nsnippet pgbi:a\\n\tpage-break-inside: auto;\\nsnippet pgbi:av\\n\tpage-break-inside: avoid;\\nsnippet pos\\n\tposition: ${1};\\nsnippet pos:a\\n\tposition: absolute;\\nsnippet pos:f\\n\tposition: fixed;\\nsnippet pos:r\\n\tposition: relative;\\nsnippet pos:s\\n\tposition: static;\\nsnippet q\\n\tquotes: ${1};\\nsnippet q:en\\n\tquotes: '\\\\201C' '\\\\201D' '\\\\2018' '\\\\2019';\\nsnippet q:n\\n\tquotes: none;\\nsnippet q:ru\\n\tquotes: '\\\\00AB' '\\\\00BB' '\\\\201E' '\\\\201C';\\nsnippet rz\\n\tresize: ${1};\\nsnippet rz:b\\n\tresize: both;\\nsnippet rz:h\\n\tresize: horizontal;\\nsnippet rz:n\\n\tresize: none;\\nsnippet rz:v\\n\tresize: vertical;\\nsnippet r\\n\tright: ${1};\\nsnippet r:a\\n\tright: auto;\\nsnippet tbl\\n\ttable-layout: ${1};\\nsnippet tbl:a\\n\ttable-layout: auto;\\nsnippet tbl:f\\n\ttable-layout: fixed;\\nsnippet tal\\n\ttext-align-last: ${1};\\nsnippet tal:a\\n\ttext-align-last: auto;\\nsnippet tal:c\\n\ttext-align-last: center;\\nsnippet tal:l\\n\ttext-align-last: left;\\nsnippet tal:r\\n\ttext-align-last: right;\\nsnippet ta\\n\ttext-align: ${1};\\nsnippet ta:c\\n\ttext-align: center;\\nsnippet ta:l\\n\ttext-align: left;\\nsnippet ta:r\\n\ttext-align: right;\\nsnippet td\\n\ttext-decoration: ${1};\\nsnippet td:l\\n\ttext-decoration: line-through;\\nsnippet td:n\\n\ttext-decoration: none;\\nsnippet td:o\\n\ttext-decoration: overline;\\nsnippet td:u\\n\ttext-decoration: underline;\\nsnippet te\\n\ttext-emphasis: ${1};\\nsnippet te:ac\\n\ttext-emphasis: accent;\\nsnippet te:a\\n\ttext-emphasis: after;\\nsnippet te:b\\n\ttext-emphasis: before;\\nsnippet te:c\\n\ttext-emphasis: circle;\\nsnippet te:ds\\n\ttext-emphasis: disc;\\nsnippet te:dt\\n\ttext-emphasis: dot;\\nsnippet te:n\\n\ttext-emphasis: none;\\nsnippet th\\n\ttext-height: ${1};\\nsnippet th:a\\n\ttext-height: auto;\\nsnippet th:f\\n\ttext-height: font-size;\\nsnippet th:m\\n\ttext-height: max-size;\\nsnippet th:t\\n\ttext-height: text-size;\\nsnippet ti\\n\ttext-indent: ${1};\\nsnippet ti:-\\n\ttext-indent: -9999px;\\nsnippet tj\\n\ttext-justify: ${1};\\nsnippet tj:a\\n\ttext-justify: auto;\\nsnippet tj:d\\n\ttext-justify: distribute;\\nsnippet tj:ic\\n\ttext-justify: inter-cluster;\\nsnippet tj:ii\\n\ttext-justify: inter-ideograph;\\nsnippet tj:iw\\n\ttext-justify: inter-word;\\nsnippet tj:k\\n\ttext-justify: kashida;\\nsnippet tj:t\\n\ttext-justify: tibetan;\\nsnippet to+\\n\ttext-outline: ${1:0} ${2:0} #${3:000};\\nsnippet to\\n\ttext-outline: ${1};\\nsnippet to:n\\n\ttext-outline: none;\\nsnippet tr\\n\ttext-replace: ${1};\\nsnippet tr:n\\n\ttext-replace: none;\\nsnippet tsh+\\n\ttext-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\\nsnippet tsh\\n\ttext-shadow: ${1};\\nsnippet tsh:n\\n\ttext-shadow: none;\\nsnippet tt\\n\ttext-transform: ${1};\\nsnippet tt:c\\n\ttext-transform: capitalize;\\nsnippet tt:l\\n\ttext-transform: lowercase;\\nsnippet tt:n\\n\ttext-transform: none;\\nsnippet tt:u\\n\ttext-transform: uppercase;\\nsnippet tw\\n\ttext-wrap: ${1};\\nsnippet tw:no\\n\ttext-wrap: none;\\nsnippet tw:n\\n\ttext-wrap: normal;\\nsnippet tw:s\\n\ttext-wrap: suppress;\\nsnippet tw:u\\n\ttext-wrap: unrestricted;\\nsnippet t\\n\ttop: ${1};\\nsnippet t:a\\n\ttop: auto;\\nsnippet va\\n\tvertical-align: ${1};\\nsnippet va:bl\\n\tvertical-align: baseline;\\nsnippet va:b\\n\tvertical-align: bottom;\\nsnippet va:m\\n\tvertical-align: middle;\\nsnippet va:sub\\n\tvertical-align: sub;\\nsnippet va:sup\\n\tvertical-align: super;\\nsnippet va:tb\\n\tvertical-align: text-bottom;\\nsnippet va:tt\\n\tvertical-align: text-top;\\nsnippet va:t\\n\tvertical-align: top;\\nsnippet v\\n\tvisibility: ${1};\\nsnippet v:c\\n\tvisibility: collapse;\\nsnippet v:h\\n\tvisibility: hidden;\\nsnippet v:v\\n\tvisibility: visible;\\nsnippet whsc\\n\twhite-space-collapse: ${1};\\nsnippet whsc:ba\\n\twhite-space-collapse: break-all;\\nsnippet whsc:bs\\n\twhite-space-collapse: break-strict;\\nsnippet whsc:k\\n\twhite-space-collapse: keep-all;\\nsnippet whsc:l\\n\twhite-space-collapse: loose;\\nsnippet whsc:n\\n\twhite-space-collapse: normal;\\nsnippet whs\\n\twhite-space: ${1};\\nsnippet whs:n\\n\twhite-space: normal;\\nsnippet whs:nw\\n\twhite-space: nowrap;\\nsnippet whs:pl\\n\twhite-space: pre-line;\\nsnippet whs:pw\\n\twhite-space: pre-wrap;\\nsnippet whs:p\\n\twhite-space: pre;\\nsnippet wid\\n\twidows: ${1};\\nsnippet w\\n\twidth: ${1};\\nsnippet w:a\\n\twidth: auto;\\nsnippet wob\\n\tword-break: ${1};\\nsnippet wob:ba\\n\tword-break: break-all;\\nsnippet wob:bs\\n\tword-break: break-strict;\\nsnippet wob:k\\n\tword-break: keep-all;\\nsnippet wob:l\\n\tword-break: loose;\\nsnippet wob:n\\n\tword-break: normal;\\nsnippet wos\\n\tword-spacing: ${1};\\nsnippet wow\\n\tword-wrap: ${1};\\nsnippet wow:no\\n\tword-wrap: none;\\nsnippet wow:n\\n\tword-wrap: normal;\\nsnippet wow:s\\n\tword-wrap: suppress;\\nsnippet wow:u\\n\tword-wrap: unrestricted;\\nsnippet z\\n\tz-index: ${1};\\nsnippet z:a\\n\tz-index: auto;\\nsnippet zoo\\n\tzoom: 1;\\n\",t.scope=\"css\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/curly.js",
    "content": "ace.define(\"ace/snippets/curly\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"curly\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/d.js",
    "content": "ace.define(\"ace/snippets/d\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"d\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/dart.js",
    "content": "ace.define(\"ace/snippets/dart\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"snippet lib\\n\tlibrary ${1};\\n\t${2}\\nsnippet im\\n\timport '${1}';\\n\t${2}\\nsnippet pa\\n\tpart '${1}';\\n\t${2}\\nsnippet pao\\n\tpart of ${1};\\n\t${2}\\nsnippet main\\n\tvoid main() {\\n\t  ${1:/* code */}\\n\t}\\nsnippet st\\n\tstatic ${1}\\nsnippet fi\\n\tfinal ${1}\\nsnippet re\\n\treturn ${1}\\nsnippet br\\n\tbreak;\\nsnippet th\\n\tthrow ${1}\\nsnippet cl\\n\tclass ${1:`Filename(\\\"\\\", \\\"untitled\\\")`} ${2}\\nsnippet imp\\n\timplements ${1}\\nsnippet ext\\n\textends ${1}\\nsnippet if\\n\tif (${1:true}) {\\n\t  ${2}\\n\t}\\nsnippet ife\\n\tif (${1:true}) {\\n\t  ${2}\\n\t} else {\\n\t  ${3}\\n\t}\\nsnippet el\\n\telse\\nsnippet sw\\n\tswitch (${1}) {\\n\t  ${2}\\n\t}\\nsnippet cs\\n\tcase ${1}:\\n\t  ${2}\\nsnippet de\\n\tdefault:\\n\t  ${1}\\nsnippet for\\n\tfor (var ${2:i} = 0, len = ${1:things}.length; $2 < len; ${3:++}$2) {\\n\t  ${4:$1[$2]}\\n\t}\\nsnippet fore\\n\tfor (final ${2:item} in ${1:itemList}) {\\n\t  ${3:/* code */}\\n\t}\\nsnippet wh\\n\twhile (${1:/* condition */}) {\\n\t  ${2:/* code */}\\n\t}\\nsnippet dowh\\n\tdo {\\n\t  ${2:/* code */}\\n\t} while (${1:/* condition */});\\nsnippet as\\n\tassert(${1:/* condition */});\\nsnippet try\\n\ttry {\\n\t  ${2}\\n\t} catch (${1:Exception e}) {\\n\t}\\nsnippet tryf\\n\ttry {\\n\t  ${2}\\n\t} catch (${1:Exception e}) {\\n\t} finally {\\n\t}\\n\",t.scope=\"dart\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/diff.js",
    "content": "ace.define(\"ace/snippets/diff\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='# DEP-3 (http://dep.debian.net/deps/dep3/) style patch header\\nsnippet header DEP-3 style header\\n\tDescription: ${1}\\n\tOrigin: ${2:vendor|upstream|other}, ${3:url of the original patch}\\n\tBug: ${4:url in upstream bugtracker}\\n\tForwarded: ${5:no|not-needed|url}\\n\tAuthor: ${6:`g:snips_author`}\\n\tReviewed-by: ${7:name and email}\\n\tLast-Update: ${8:`strftime(\"%Y-%m-%d\")`}\\n\tApplied-Upstream: ${9:upstream version|url|commit}\\n\\n',t.scope=\"diff\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/django.js",
    "content": "ace.define(\"ace/snippets/django\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"# Model Fields\\n\\n# Note: Optional arguments are using defaults that match what Django will use\\n# as a default, e.g. with max_length fields.  Doing this as a form of self\\n# documentation and to make it easy to know whether you should override the\\n# default or not.\\n\\n# Note: Optional arguments that are booleans will use the opposite since you\\n# can either not specify them, or override them, e.g. auto_now_add=False.\\n\\nsnippet auto\\n\t${1:FIELDNAME} = models.AutoField(${2})\\nsnippet bool\\n\t${1:FIELDNAME} = models.BooleanField(${2:default=True})\\nsnippet char\\n\t${1:FIELDNAME} = models.CharField(max_length=${2}${3:, blank=True})\\nsnippet comma\\n\t${1:FIELDNAME} = models.CommaSeparatedIntegerField(max_length=${2}${3:, blank=True})\\nsnippet date\\n\t${1:FIELDNAME} = models.DateField(${2:auto_now_add=True, auto_now=True}${3:, blank=True, null=True})\\nsnippet datetime\\n\t${1:FIELDNAME} = models.DateTimeField(${2:auto_now_add=True, auto_now=True}${3:, blank=True, null=True})\\nsnippet decimal\\n\t${1:FIELDNAME} = models.DecimalField(max_digits=${2}, decimal_places=${3})\\nsnippet email\\n\t${1:FIELDNAME} = models.EmailField(max_length=${2:75}${3:, blank=True})\\nsnippet file\\n\t${1:FIELDNAME} = models.FileField(upload_to=${2:path/for/upload}${3:, max_length=100})\\nsnippet filepath\\n\t${1:FIELDNAME} = models.FilePathField(path=${2:\\\"/abs/path/to/dir\\\"}${3:, max_length=100}${4:, match=\\\"*.ext\\\"}${5:, recursive=True}${6:, blank=True, })\\nsnippet float\\n\t${1:FIELDNAME} = models.FloatField(${2})\\nsnippet image\\n\t${1:FIELDNAME} = models.ImageField(upload_to=${2:path/for/upload}${3:, height_field=height, width_field=width}${4:, max_length=100})\\nsnippet int\\n\t${1:FIELDNAME} = models.IntegerField(${2})\\nsnippet ip\\n\t${1:FIELDNAME} = models.IPAddressField(${2})\\nsnippet nullbool\\n\t${1:FIELDNAME} = models.NullBooleanField(${2})\\nsnippet posint\\n\t${1:FIELDNAME} = models.PositiveIntegerField(${2})\\nsnippet possmallint\\n\t${1:FIELDNAME} = models.PositiveSmallIntegerField(${2})\\nsnippet slug\\n\t${1:FIELDNAME} = models.SlugField(max_length=${2:50}${3:, blank=True})\\nsnippet smallint\\n\t${1:FIELDNAME} = models.SmallIntegerField(${2})\\nsnippet text\\n\t${1:FIELDNAME} = models.TextField(${2:blank=True})\\nsnippet time\\n\t${1:FIELDNAME} = models.TimeField(${2:auto_now_add=True, auto_now=True}${3:, blank=True, null=True})\\nsnippet url\\n\t${1:FIELDNAME} = models.URLField(${2:verify_exists=False}${3:, max_length=200}${4:, blank=True})\\nsnippet xml\\n\t${1:FIELDNAME} = models.XMLField(schema_path=${2:None}${3:, blank=True})\\n# Relational Fields\\nsnippet fk\\n\t${1:FIELDNAME} = models.ForeignKey(${2:OtherModel}${3:, related_name=''}${4:, limit_choices_to=}${5:, to_field=''})\\nsnippet m2m\\n\t${1:FIELDNAME} = models.ManyToManyField(${2:OtherModel}${3:, related_name=''}${4:, limit_choices_to=}${5:, symmetrical=False}${6:, through=''}${7:, db_table=''})\\nsnippet o2o\\n\t${1:FIELDNAME} = models.OneToOneField(${2:OtherModel}${3:, parent_link=True}${4:, related_name=''}${5:, limit_choices_to=}${6:, to_field=''})\\n\\n# Code Skeletons\\n\\nsnippet form\\n\tclass ${1:FormName}(forms.Form):\\n\t\t\\\"\\\"\\\"${2:docstring}\\\"\\\"\\\"\\n\t\t${3}\\n\\nsnippet model\\n\tclass ${1:ModelName}(models.Model):\\n\t\t\\\"\\\"\\\"${2:docstring}\\\"\\\"\\\"\\n\t\t${3}\\n\t\t\\n\t\tclass Meta:\\n\t\t\t${4}\\n\t\t\\n\t\tdef __unicode__(self):\\n\t\t\t${5}\\n\t\t\\n\t\tdef save(self, force_insert=False, force_update=False):\\n\t\t\t${6}\\n\t\t\\n\t\t@models.permalink\\n\t\tdef get_absolute_url(self):\\n\t\t\treturn ('${7:view_or_url_name}' ${8})\\n\\nsnippet modeladmin\\n\tclass ${1:ModelName}Admin(admin.ModelAdmin):\\n\t\t${2}\\n\t\\n\tadmin.site.register($1, $1Admin)\\n\t\\nsnippet tabularinline\\n\tclass ${1:ModelName}Inline(admin.TabularInline):\\n\t\tmodel = $1\\n\\nsnippet stackedinline\\n\tclass ${1:ModelName}Inline(admin.StackedInline):\\n\t\tmodel = $1\\n\\nsnippet r2r\\n\treturn render_to_response('${1:template.html}', {\\n\t\t\t${2}\\n\t\t}${3:, context_instance=RequestContext(request)}\\n\t)\\n\",t.scope=\"django\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/dockerfile.js",
    "content": "ace.define(\"ace/snippets/dockerfile\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"dockerfile\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/dot.js",
    "content": "ace.define(\"ace/snippets/dot\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"dot\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/eiffel.js",
    "content": "ace.define(\"ace/snippets/eiffel\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"eiffel\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/ejs.js",
    "content": "ace.define(\"ace/snippets/ejs\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"ejs\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/elixir.js",
    "content": "ace.define(\"ace/snippets/elixir\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/elm.js",
    "content": "ace.define(\"ace/snippets/elm\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"elm\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/erlang.js",
    "content": "ace.define(\"ace/snippets/erlang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"# module and export all\\nsnippet mod\\n\t-module(${1:`Filename('', 'my')`}).\\n\t\\n\t-compile([export_all]).\\n\t\\n\tstart() ->\\n\t    ${2}\\n\t\\n\tstop() ->\\n\t    ok.\\n# define directive\\nsnippet def\\n\t-define(${1:macro}, ${2:body}).${3}\\n# export directive\\nsnippet exp\\n\t-export([${1:function}/${2:arity}]).\\n# include directive\\nsnippet inc\\n\t-include(\\\"${1:file}\\\").${2}\\n# behavior directive\\nsnippet beh\\n\t-behaviour(${1:behaviour}).${2}\\n# if expression\\nsnippet if\\n\tif\\n\t    ${1:guard} ->\\n\t        ${2:body}\\n\tend\\n# case expression\\nsnippet case\\n\tcase ${1:expression} of\\n\t    ${2:pattern} ->\\n\t        ${3:body};\\n\tend\\n# anonymous function\\nsnippet fun\\n\tfun (${1:Parameters}) -> ${2:body} end${3}\\n# try...catch\\nsnippet try\\n\ttry\\n\t    ${1}\\n\tcatch\\n\t    ${2:_:_} -> ${3:got_some_exception}\\n\tend\\n# record directive\\nsnippet rec\\n\t-record(${1:record}, {\\n\t    ${2:field}=${3:value}}).${4}\\n# todo comment\\nsnippet todo\\n\t%% TODO: ${1}\\n## Snippets below (starting with '%') are in EDoc format.\\n## See http://www.erlang.org/doc/apps/edoc/chapter.html#id56887 for more details\\n# doc comment\\nsnippet %d\\n\t%% @doc ${1}\\n# end of doc comment\\nsnippet %e\\n\t%% @end\\n# specification comment\\nsnippet %s\\n\t%% @spec ${1}\\n# private function marker\\nsnippet %p\\n\t%% @private\\n# OTP application\\nsnippet application\\n\t-module(${1:`Filename('', 'my')`}).\\n\\n\t-behaviour(application).\\n\\n\t-export([start/2, stop/1]).\\n\\n\tstart(_Type, _StartArgs) ->\\n\t    case ${2:root_supervisor}:start_link() of\\n\t        {ok, Pid} ->\\n\t            {ok, Pid};\\n\t        Other ->\\n\t\t          {error, Other}\\n\t    end.\\n\\n\tstop(_State) ->\\n\t    ok.\t\\n# OTP supervisor\\nsnippet supervisor\\n\t-module(${1:`Filename('', 'my')`}).\\n\\n\t-behaviour(supervisor).\\n\\n\t%% API\\n\t-export([start_link/0]).\\n\\n\t%% Supervisor callbacks\\n\t-export([init/1]).\\n\\n\t-define(SERVER, ?MODULE).\\n\\n\tstart_link() ->\\n\t    supervisor:start_link({local, ?SERVER}, ?MODULE, []).\\n\\n\tinit([]) ->\\n\t    Server = {${2:my_server}, {$2, start_link, []},\\n\t      permanent, 2000, worker, [$2]},\\n\t    Children = [Server],\\n\t    RestartStrategy = {one_for_one, 0, 1},\\n\t    {ok, {RestartStrategy, Children}}.\\n# OTP gen_server\\nsnippet gen_server\\n\t-module(${1:`Filename('', 'my')`}).\\n\\n\t-behaviour(gen_server).\\n\\n\t%% API\\n\t-export([\\n\t         start_link/0\\n\t        ]).\\n\\n\t%% gen_server callbacks\\n\t-export([init/1, handle_call/3, handle_cast/2, handle_info/2,\\n\t         terminate/2, code_change/3]).\\n\\n\t-define(SERVER, ?MODULE).\\n\\n\t-record(state, {}).\\n\\n\t%%%===================================================================\\n\t%%% API\\n\t%%%===================================================================\\n\\n\tstart_link() ->\\n\t    gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).\\n\\n\t%%%===================================================================\\n\t%%% gen_server callbacks\\n\t%%%===================================================================\\n\\n\tinit([]) ->\\n\t    {ok, #state{}}.\\n\\n\thandle_call(_Request, _From, State) ->\\n\t    Reply = ok,\\n\t    {reply, Reply, State}.\\n\\n\thandle_cast(_Msg, State) ->\\n\t    {noreply, State}.\\n\\n\thandle_info(_Info, State) ->\\n\t    {noreply, State}.\\n\\n\tterminate(_Reason, _State) ->\\n\t    ok.\\n\\n\tcode_change(_OldVsn, State, _Extra) ->\\n\t    {ok, State}.\\n\\n\t%%%===================================================================\\n\t%%% Internal functions\\n\t%%%===================================================================\\n\\n\",t.scope=\"erlang\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/forth.js",
    "content": "ace.define(\"ace/snippets/forth\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"forth\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/fortran.js",
    "content": "ace.define(\"ace/snippets/fortran\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"fortran\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/ftl.js",
    "content": "ace.define(\"ace/snippets/ftl\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"ftl\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/gcode.js",
    "content": "ace.define(\"ace/snippets/gcode\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"gcode\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/gherkin.js",
    "content": "ace.define(\"ace/snippets/gherkin\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"gherkin\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/gitignore.js",
    "content": "ace.define(\"ace/snippets/gitignore\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"gitignore\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/glsl.js",
    "content": "ace.define(\"ace/snippets/glsl\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"glsl\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/gobstones.js",
    "content": "ace.define(\"ace/snippets/gobstones\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"# Procedure\\nsnippet proc\\n\tprocedure ${1?:name}(${2:argument}) {\\n\t\t${3:// body...}\\n\t}\\n\\n# Function\\nsnippet fun\\n\tfunction ${1?:name}(${2:argument}) {\\n\t\treturn ${3:// body...}\\n\t}\\n\\n# Repeat\\nsnippet rep\\n\trepeat ${1?:times} {\\n\t\t${2:// body...}\\n\t}\\n\\n# For\\nsnippet for\\n\tforeach ${1?:e} in ${2?:list} {\\n\t\t${3:// body...}\t\\n\t}\\n\\n# If\\nsnippet if\\n\tif (${1?:condition}) {\\n\t\t${3:// body...}\t\\n\t}\\n\\n# While\\n  while (${1?:condition}) {\\n    ${2:// body...}\t\\n  }\\n\",t.scope=\"gobstones\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/golang.js",
    "content": "ace.define(\"ace/snippets/golang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"golang\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/groovy.js",
    "content": "ace.define(\"ace/snippets/groovy\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"groovy\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/haml.js",
    "content": "ace.define(\"ace/snippets/haml\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"snippet t\\n\t%table\\n\t\t%tr\\n\t\t\t%th\\n\t\t\t\t${1:headers}\\n\t\t%tr\\n\t\t\t%td\\n\t\t\t\t${2:headers}\\nsnippet ul\\n\t%ul\\n\t\t%li\\n\t\t\t${1:item}\\n\t\t%li\\nsnippet =rp\\n\t= render :partial => '${1:partial}'\\nsnippet =rpl\\n\t= render :partial => '${1:partial}', :locals => {}\\nsnippet =rpc\\n\t= render :partial => '${1:partial}', :collection => @$1\\n\\n\",t.scope=\"haml\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/handlebars.js",
    "content": "ace.define(\"ace/snippets/handlebars\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"handlebars\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/haskell.js",
    "content": "ace.define(\"ace/snippets/haskell\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"snippet lang\\n\t{-# LANGUAGE ${1:OverloadedStrings} #-}\\nsnippet info\\n\t-- |\\n\t-- Module      :  ${1:Module.Namespace}\\n\t-- Copyright   :  ${2:Author} ${3:2011-2012}\\n\t-- License     :  ${4:BSD3}\\n\t--\\n\t-- Maintainer  :  ${5:email@something.com}\\n\t-- Stability   :  ${6:experimental}\\n\t-- Portability :  ${7:unknown}\\n\t--\\n\t-- ${8:Description}\\n\t--\\nsnippet import\\n\timport           ${1:Data.Text}\\nsnippet import2\\n\timport           ${1:Data.Text} (${2:head})\\nsnippet importq\\n\timport qualified ${1:Data.Text} as ${2:T}\\nsnippet inst\\n\tinstance ${1:Monoid} ${2:Type} where\\n\t\t${3}\\nsnippet type\\n\ttype ${1:Type} = ${2:Type}\\nsnippet data\\n\tdata ${1:Type} = ${2:$1} ${3:Int}\\nsnippet newtype\\n\tnewtype ${1:Type} = ${2:$1} ${3:Int}\\nsnippet class\\n\tclass ${1:Class} a where\\n\t\t${2}\\nsnippet module\\n\tmodule `substitute(substitute(expand('%:r'), '[/\\\\\\\\]','.','g'),'^\\\\%(\\\\l*\\\\.\\\\)\\\\?','','')` (\\n\t)\twhere\\n\t`expand('%') =~ 'Main' ? \\\"\\\\n\\\\nmain = do\\\\n  print \\\\\\\"hello world\\\\\\\"\\\" : \\\"\\\"`\\n\\nsnippet const\\n\t${1:name} :: ${2:a}\\n\t$1 = ${3:undefined}\\nsnippet fn\\n\t${1:fn} :: ${2:a} -> ${3:a}\\n\t$1 ${4} = ${5:undefined}\\nsnippet fn2\\n\t${1:fn} :: ${2:a} -> ${3:a} -> ${4:a}\\n\t$1 ${5} = ${6:undefined}\\nsnippet ap\\n\t${1:map} ${2:fn} ${3:list}\\nsnippet do\\n\tdo\\n\t\t\\nsnippet \\u03bb\\n\t\\\\${1:x} -> ${2}\\nsnippet \\\\\\n\t\\\\${1:x} -> ${2}\\nsnippet <-\\n\t${1:a} <- ${2:m a}\\nsnippet \\u2190\\n\t${1:a} <- ${2:m a}\\nsnippet ->\\n\t${1:m a} -> ${2:a}\\nsnippet \\u2192\\n\t${1:m a} -> ${2:a}\\nsnippet tup\\n\t(${1:a}, ${2:b})\\nsnippet tup2\\n\t(${1:a}, ${2:b}, ${3:c})\\nsnippet tup3\\n\t(${1:a}, ${2:b}, ${3:c}, ${4:d})\\nsnippet rec\\n\t${1:Record} { ${2:recFieldA} = ${3:undefined}\\n\t\t\t\t, ${4:recFieldB} = ${5:undefined}\\n\t\t\t\t}\\nsnippet case\\n\tcase ${1:something} of\\n\t\t${2} -> ${3}\\nsnippet let\\n\tlet ${1} = ${2}\\n\tin ${3}\\nsnippet where\\n\twhere\\n\t\t${1:fn} = ${2:undefined}\\n\",t.scope=\"haskell\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/haxe.js",
    "content": "ace.define(\"ace/snippets/haxe\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"haxe\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/html.js",
    "content": "ace.define(\"ace/snippets/html\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='# Some useful Unicode entities\\n# Non-Breaking Space\\nsnippet nbs\\n\t&nbsp;\\n# \\u2190\\nsnippet left\\n\t&#x2190;\\n# \\u2192\\nsnippet right\\n\t&#x2192;\\n# \\u2191\\nsnippet up\\n\t&#x2191;\\n# \\u2193\\nsnippet down\\n\t&#x2193;\\n# \\u21a9\\nsnippet return\\n\t&#x21A9;\\n# \\u21e4\\nsnippet backtab\\n\t&#x21E4;\\n# \\u21e5\\nsnippet tab\\n\t&#x21E5;\\n# \\u21e7\\nsnippet shift\\n\t&#x21E7;\\n# \\u2303\\nsnippet ctrl\\n\t&#x2303;\\n# \\u2305\\nsnippet enter\\n\t&#x2305;\\n# \\u2318\\nsnippet cmd\\n\t&#x2318;\\n# \\u2325\\nsnippet option\\n\t&#x2325;\\n# \\u2326\\nsnippet delete\\n\t&#x2326;\\n# \\u232b\\nsnippet backspace\\n\t&#x232B;\\n# \\u238b\\nsnippet esc\\n\t&#x238B;\\n# Generic Doctype\\nsnippet doctype HTML 4.01 Strict\\n\t<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\\n\t\"http://www.w3.org/TR/html4/strict.dtd\">\\nsnippet doctype HTML 4.01 Transitional\\n\t<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"\\n\t\"http://www.w3.org/TR/html4/loose.dtd\">\\nsnippet doctype HTML 5\\n\t<!DOCTYPE HTML>\\nsnippet doctype XHTML 1.0 Frameset\\n\t<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\\n\t\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\\nsnippet doctype XHTML 1.0 Strict\\n\t<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\\n\t\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\\nsnippet doctype XHTML 1.0 Transitional\\n\t<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\\n\t\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\\nsnippet doctype XHTML 1.1\\n\t<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\"\\n\t\"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\\n# HTML Doctype 4.01 Strict\\nsnippet docts\\n\t<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\\n\t\"http://www.w3.org/TR/html4/strict.dtd\">\\n# HTML Doctype 4.01 Transitional\\nsnippet doct\\n\t<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"\\n\t\"http://www.w3.org/TR/html4/loose.dtd\">\\n# HTML Doctype 5\\nsnippet doct5\\n\t<!DOCTYPE HTML>\\n# XHTML Doctype 1.0 Frameset\\nsnippet docxf\\n\t<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\"\\n\t\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\">\\n# XHTML Doctype 1.0 Strict\\nsnippet docxs\\n\t<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\\n\t\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\\n# XHTML Doctype 1.0 Transitional\\nsnippet docxt\\n\t<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\\n\t\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\\n# XHTML Doctype 1.1\\nsnippet docx\\n\t<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\"\\n\t\"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\\n# Attributes\\nsnippet attr\\n\t${1:attribute}=\"${2:property}\"\\nsnippet attr+\\n\t${1:attribute}=\"${2:property}\" attr+${3}\\nsnippet .\\n\tclass=\"${1}\"${2}\\nsnippet #\\n\tid=\"${1}\"${2}\\nsnippet alt\\n\talt=\"${1}\"${2}\\nsnippet charset\\n\tcharset=\"${1:utf-8}\"${2}\\nsnippet data\\n\tdata-${1}=\"${2:$1}\"${3}\\nsnippet for\\n\tfor=\"${1}\"${2}\\nsnippet height\\n\theight=\"${1}\"${2}\\nsnippet href\\n\thref=\"${1:#}\"${2}\\nsnippet lang\\n\tlang=\"${1:en}\"${2}\\nsnippet media\\n\tmedia=\"${1}\"${2}\\nsnippet name\\n\tname=\"${1}\"${2}\\nsnippet rel\\n\trel=\"${1}\"${2}\\nsnippet scope\\n\tscope=\"${1:row}\"${2}\\nsnippet src\\n\tsrc=\"${1}\"${2}\\nsnippet title=\\n\ttitle=\"${1}\"${2}\\nsnippet type\\n\ttype=\"${1}\"${2}\\nsnippet value\\n\tvalue=\"${1}\"${2}\\nsnippet width\\n\twidth=\"${1}\"${2}\\n# Elements\\nsnippet a\\n\t<a href=\"${1:#}\">${2:$1}</a>\\nsnippet a.\\n\t<a class=\"${1}\" href=\"${2:#}\">${3:$1}</a>\\nsnippet a#\\n\t<a id=\"${1}\" href=\"${2:#}\">${3:$1}</a>\\nsnippet a:ext\\n\t<a href=\"http://${1:example.com}\">${2:$1}</a>\\nsnippet a:mail\\n\t<a href=\"mailto:${1:joe@example.com}?subject=${2:feedback}\">${3:email me}</a>\\nsnippet abbr\\n\t<abbr title=\"${1}\">${2}</abbr>\\nsnippet address\\n\t<address>\\n\t\t${1}\\n\t</address>\\nsnippet area\\n\t<area shape=\"${1:rect}\" coords=\"${2}\" href=\"${3}\" alt=\"${4}\" />\\nsnippet area+\\n\t<area shape=\"${1:rect}\" coords=\"${2}\" href=\"${3}\" alt=\"${4}\" />\\n\tarea+${5}\\nsnippet area:c\\n\t<area shape=\"circle\" coords=\"${1}\" href=\"${2}\" alt=\"${3}\" />\\nsnippet area:d\\n\t<area shape=\"default\" coords=\"${1}\" href=\"${2}\" alt=\"${3}\" />\\nsnippet area:p\\n\t<area shape=\"poly\" coords=\"${1}\" href=\"${2}\" alt=\"${3}\" />\\nsnippet area:r\\n\t<area shape=\"rect\" coords=\"${1}\" href=\"${2}\" alt=\"${3}\" />\\nsnippet article\\n\t<article>\\n\t\t${1}\\n\t</article>\\nsnippet article.\\n\t<article class=\"${1}\">\\n\t\t${2}\\n\t</article>\\nsnippet article#\\n\t<article id=\"${1}\">\\n\t\t${2}\\n\t</article>\\nsnippet aside\\n\t<aside>\\n\t\t${1}\\n\t</aside>\\nsnippet aside.\\n\t<aside class=\"${1}\">\\n\t\t${2}\\n\t</aside>\\nsnippet aside#\\n\t<aside id=\"${1}\">\\n\t\t${2}\\n\t</aside>\\nsnippet audio\\n\t<audio src=\"${1}>${2}</audio>\\nsnippet b\\n\t<b>${1}</b>\\nsnippet base\\n\t<base href=\"${1}\" target=\"${2}\" />\\nsnippet bdi\\n\t<bdi>${1}</bdo>\\nsnippet bdo\\n\t<bdo dir=\"${1}\">${2}</bdo>\\nsnippet bdo:l\\n\t<bdo dir=\"ltr\">${1}</bdo>\\nsnippet bdo:r\\n\t<bdo dir=\"rtl\">${1}</bdo>\\nsnippet blockquote\\n\t<blockquote>\\n\t\t${1}\\n\t</blockquote>\\nsnippet body\\n\t<body>\\n\t\t${1}\\n\t</body>\\nsnippet br\\n\t<br />${1}\\nsnippet button\\n\t<button type=\"${1:submit}\">${2}</button>\\nsnippet button.\\n\t<button class=\"${1:button}\" type=\"${2:submit}\">${3}</button>\\nsnippet button#\\n\t<button id=\"${1}\" type=\"${2:submit}\">${3}</button>\\nsnippet button:s\\n\t<button type=\"submit\">${1}</button>\\nsnippet button:r\\n\t<button type=\"reset\">${1}</button>\\nsnippet canvas\\n\t<canvas>\\n\t\t${1}\\n\t</canvas>\\nsnippet caption\\n\t<caption>${1}</caption>\\nsnippet cite\\n\t<cite>${1}</cite>\\nsnippet code\\n\t<code>${1}</code>\\nsnippet col\\n\t<col />${1}\\nsnippet col+\\n\t<col />\\n\tcol+${1}\\nsnippet colgroup\\n\t<colgroup>\\n\t\t${1}\\n\t</colgroup>\\nsnippet colgroup+\\n\t<colgroup>\\n\t\t<col />\\n\t\tcol+${1}\\n\t</colgroup>\\nsnippet command\\n\t<command type=\"command\" label=\"${1}\" icon=\"${2}\" />\\nsnippet command:c\\n\t<command type=\"checkbox\" label=\"${1}\" icon=\"${2}\" />\\nsnippet command:r\\n\t<command type=\"radio\" radiogroup=\"${1}\" label=\"${2}\" icon=\"${3}\" />\\nsnippet datagrid\\n\t<datagrid>\\n\t\t${1}\\n\t</datagrid>\\nsnippet datalist\\n\t<datalist>\\n\t\t${1}\\n\t</datalist>\\nsnippet datatemplate\\n\t<datatemplate>\\n\t\t${1}\\n\t</datatemplate>\\nsnippet dd\\n\t<dd>${1}</dd>\\nsnippet dd.\\n\t<dd class=\"${1}\">${2}</dd>\\nsnippet dd#\\n\t<dd id=\"${1}\">${2}</dd>\\nsnippet del\\n\t<del>${1}</del>\\nsnippet details\\n\t<details>${1}</details>\\nsnippet dfn\\n\t<dfn>${1}</dfn>\\nsnippet dialog\\n\t<dialog>\\n\t\t${1}\\n\t</dialog>\\nsnippet div\\n\t<div>\\n\t\t${1}\\n\t</div>\\nsnippet div.\\n\t<div class=\"${1}\">\\n\t\t${2}\\n\t</div>\\nsnippet div#\\n\t<div id=\"${1}\">\\n\t\t${2}\\n\t</div>\\nsnippet dl\\n\t<dl>\\n\t\t${1}\\n\t</dl>\\nsnippet dl.\\n\t<dl class=\"${1}\">\\n\t\t${2}\\n\t</dl>\\nsnippet dl#\\n\t<dl id=\"${1}\">\\n\t\t${2}\\n\t</dl>\\nsnippet dl+\\n\t<dl>\\n\t\t<dt>${1}</dt>\\n\t\t<dd>${2}</dd>\\n\t\tdt+${3}\\n\t</dl>\\nsnippet dt\\n\t<dt>${1}</dt>\\nsnippet dt.\\n\t<dt class=\"${1}\">${2}</dt>\\nsnippet dt#\\n\t<dt id=\"${1}\">${2}</dt>\\nsnippet dt+\\n\t<dt>${1}</dt>\\n\t<dd>${2}</dd>\\n\tdt+${3}\\nsnippet em\\n\t<em>${1}</em>\\nsnippet embed\\n\t<embed src=${1} type=\"${2} />\\nsnippet fieldset\\n\t<fieldset>\\n\t\t${1}\\n\t</fieldset>\\nsnippet fieldset.\\n\t<fieldset class=\"${1}\">\\n\t\t${2}\\n\t</fieldset>\\nsnippet fieldset#\\n\t<fieldset id=\"${1}\">\\n\t\t${2}\\n\t</fieldset>\\nsnippet fieldset+\\n\t<fieldset>\\n\t\t<legend><span>${1}</span></legend>\\n\t\t${2}\\n\t</fieldset>\\n\tfieldset+${3}\\nsnippet figcaption\\n\t<figcaption>${1}</figcaption>\\nsnippet figure\\n\t<figure>${1}</figure>\\nsnippet footer\\n\t<footer>\\n\t\t${1}\\n\t</footer>\\nsnippet footer.\\n\t<footer class=\"${1}\">\\n\t\t${2}\\n\t</footer>\\nsnippet footer#\\n\t<footer id=\"${1}\">\\n\t\t${2}\\n\t</footer>\\nsnippet form\\n\t<form action=\"${1}\" method=\"${2:get}\" accept-charset=\"utf-8\">\\n\t\t${3}\\n\t</form>\\nsnippet form.\\n\t<form class=\"${1}\" action=\"${2}\" method=\"${3:get}\" accept-charset=\"utf-8\">\\n\t\t${4}\\n\t</form>\\nsnippet form#\\n\t<form id=\"${1}\" action=\"${2}\" method=\"${3:get}\" accept-charset=\"utf-8\">\\n\t\t${4}\\n\t</form>\\nsnippet h1\\n\t<h1>${1}</h1>\\nsnippet h1.\\n\t<h1 class=\"${1}\">${2}</h1>\\nsnippet h1#\\n\t<h1 id=\"${1}\">${2}</h1>\\nsnippet h2\\n\t<h2>${1}</h2>\\nsnippet h2.\\n\t<h2 class=\"${1}\">${2}</h2>\\nsnippet h2#\\n\t<h2 id=\"${1}\">${2}</h2>\\nsnippet h3\\n\t<h3>${1}</h3>\\nsnippet h3.\\n\t<h3 class=\"${1}\">${2}</h3>\\nsnippet h3#\\n\t<h3 id=\"${1}\">${2}</h3>\\nsnippet h4\\n\t<h4>${1}</h4>\\nsnippet h4.\\n\t<h4 class=\"${1}\">${2}</h4>\\nsnippet h4#\\n\t<h4 id=\"${1}\">${2}</h4>\\nsnippet h5\\n\t<h5>${1}</h5>\\nsnippet h5.\\n\t<h5 class=\"${1}\">${2}</h5>\\nsnippet h5#\\n\t<h5 id=\"${1}\">${2}</h5>\\nsnippet h6\\n\t<h6>${1}</h6>\\nsnippet h6.\\n\t<h6 class=\"${1}\">${2}</h6>\\nsnippet h6#\\n\t<h6 id=\"${1}\">${2}</h6>\\nsnippet head\\n\t<head>\\n\t\t<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />\\n\\n\t\t<title>${1:`substitute(Filename(\\'\\', \\'Page Title\\'), \\'^.\\', \\'\\\\u&\\', \\'\\')`}</title>\\n\t\t${2}\\n\t</head>\\nsnippet header\\n\t<header>\\n\t\t${1}\\n\t</header>\\nsnippet header.\\n\t<header class=\"${1}\">\\n\t\t${2}\\n\t</header>\\nsnippet header#\\n\t<header id=\"${1}\">\\n\t\t${2}\\n\t</header>\\nsnippet hgroup\\n\t<hgroup>\\n\t\t${1}\\n\t</hgroup>\\nsnippet hgroup.\\n\t<hgroup class=\"${1}>\\n\t\t${2}\\n\t</hgroup>\\nsnippet hr\\n\t<hr />${1}\\nsnippet html\\n\t<html>\\n\t${1}\\n\t</html>\\nsnippet xhtml\\n\t<html xmlns=\"http://www.w3.org/1999/xhtml\">\\n\t${1}\\n\t</html>\\nsnippet html5\\n\t<!DOCTYPE html>\\n\t<html>\\n\t\t<head>\\n\t\t\t<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />\\n\t\t\t<title>${1:`substitute(Filename(\\'\\', \\'Page Title\\'), \\'^.\\', \\'\\\\u&\\', \\'\\')`}</title>\\n\t\t\t${2:meta}\\n\t\t</head>\\n\t\t<body>\\n\t\t\t${3:body}\\n\t\t</body>\\n\t</html>\\nsnippet i\\n\t<i>${1}</i>\\nsnippet iframe\\n\t<iframe src=\"${1}\" frameborder=\"0\"></iframe>${2}\\nsnippet iframe.\\n\t<iframe class=\"${1}\" src=\"${2}\" frameborder=\"0\"></iframe>${3}\\nsnippet iframe#\\n\t<iframe id=\"${1}\" src=\"${2}\" frameborder=\"0\"></iframe>${3}\\nsnippet img\\n\t<img src=\"${1}\" alt=\"${2}\" />${3}\\nsnippet img.\\n\t<img class=\"${1}\" src=\"${2}\" alt=\"${3}\" />${4}\\nsnippet img#\\n\t<img id=\"${1}\" src=\"${2}\" alt=\"${3}\" />${4}\\nsnippet input\\n\t<input type=\"${1:text/submit/hidden/button/image}\" name=\"${2}\" id=\"${3:$2}\" value=\"${4}\" />${5}\\nsnippet input.\\n\t<input class=\"${1}\" type=\"${2:text/submit/hidden/button/image}\" name=\"${3}\" id=\"${4:$3}\" value=\"${5}\" />${6}\\nsnippet input:text\\n\t<input type=\"text\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:submit\\n\t<input type=\"submit\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:hidden\\n\t<input type=\"hidden\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:button\\n\t<input type=\"button\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:image\\n\t<input type=\"image\" name=\"${1}\" id=\"${2:$1}\" src=\"${3}\" alt=\"${4}\" />${5}\\nsnippet input:checkbox\\n\t<input type=\"checkbox\" name=\"${1}\" id=\"${2:$1}\" />${3}\\nsnippet input:radio\\n\t<input type=\"radio\" name=\"${1}\" id=\"${2:$1}\" />${3}\\nsnippet input:color\\n\t<input type=\"color\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:date\\n\t<input type=\"date\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:datetime\\n\t<input type=\"datetime\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:datetime-local\\n\t<input type=\"datetime-local\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:email\\n\t<input type=\"email\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:file\\n\t<input type=\"file\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:month\\n\t<input type=\"month\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:number\\n\t<input type=\"number\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:password\\n\t<input type=\"password\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:range\\n\t<input type=\"range\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:reset\\n\t<input type=\"reset\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:search\\n\t<input type=\"search\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:time\\n\t<input type=\"time\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:url\\n\t<input type=\"url\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet input:week\\n\t<input type=\"week\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\\nsnippet ins\\n\t<ins>${1}</ins>\\nsnippet kbd\\n\t<kbd>${1}</kbd>\\nsnippet keygen\\n\t<keygen>${1}</keygen>\\nsnippet label\\n\t<label for=\"${2:$1}\">${1}</label>\\nsnippet label:i\\n\t<label for=\"${2:$1}\">${1}</label>\\n\t<input type=\"${3:text/submit/hidden/button}\" name=\"${4:$2}\" id=\"${5:$2}\" value=\"${6}\" />${7}\\nsnippet label:s\\n\t<label for=\"${2:$1}\">${1}</label>\\n\t<select name=\"${3:$2}\" id=\"${4:$2}\">\\n\t\t<option value=\"${5}\">${6:$5}</option>\\n\t</select>\\nsnippet legend\\n\t<legend>${1}</legend>\\nsnippet legend+\\n\t<legend><span>${1}</span></legend>\\nsnippet li\\n\t<li>${1}</li>\\nsnippet li.\\n\t<li class=\"${1}\">${2}</li>\\nsnippet li+\\n\t<li>${1}</li>\\n\tli+${2}\\nsnippet lia\\n\t<li><a href=\"${2:#}\">${1}</a></li>\\nsnippet lia+\\n\t<li><a href=\"${2:#}\">${1}</a></li>\\n\tlia+${3}\\nsnippet link\\n\t<link rel=\"${1}\" href=\"${2}\" title=\"${3}\" type=\"${4}\" />${5}\\nsnippet link:atom\\n\t<link rel=\"alternate\" href=\"${1:atom.xml}\" title=\"Atom\" type=\"application/atom+xml\" />${2}\\nsnippet link:css\\n\t<link rel=\"stylesheet\" href=\"${2:style.css}\" type=\"text/css\" media=\"${3:all}\" />${4}\\nsnippet link:favicon\\n\t<link rel=\"shortcut icon\" href=\"${1:favicon.ico}\" type=\"image/x-icon\" />${2}\\nsnippet link:rss\\n\t<link rel=\"alternate\" href=\"${1:rss.xml}\" title=\"RSS\" type=\"application/atom+xml\" />${2}\\nsnippet link:touch\\n\t<link rel=\"apple-touch-icon\" href=\"${1:favicon.png}\" />${2}\\nsnippet map\\n\t<map name=\"${1}\">\\n\t\t${2}\\n\t</map>\\nsnippet map.\\n\t<map class=\"${1}\" name=\"${2}\">\\n\t\t${3}\\n\t</map>\\nsnippet map#\\n\t<map name=\"${1}\" id=\"${2:$1}>\\n\t\t${3}\\n\t</map>\\nsnippet map+\\n\t<map name=\"${1}\">\\n\t\t<area shape=\"${2}\" coords=\"${3}\" href=\"${4}\" alt=\"${5}\" />${6}\\n\t</map>${7}\\nsnippet mark\\n\t<mark>${1}</mark>\\nsnippet menu\\n\t<menu>\\n\t\t${1}\\n\t</menu>\\nsnippet menu:c\\n\t<menu type=\"context\">\\n\t\t${1}\\n\t</menu>\\nsnippet menu:t\\n\t<menu type=\"toolbar\">\\n\t\t${1}\\n\t</menu>\\nsnippet meta\\n\t<meta http-equiv=\"${1}\" content=\"${2}\" />${3}\\nsnippet meta:compat\\n\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=${1:7,8,edge}\" />${3}\\nsnippet meta:refresh\\n\t<meta http-equiv=\"refresh\" content=\"text/html;charset=UTF-8\" />${3}\\nsnippet meta:utf\\n\t<meta http-equiv=\"content-type\" content=\"text/html;charset=UTF-8\" />${3}\\nsnippet meter\\n\t<meter>${1}</meter>\\nsnippet nav\\n\t<nav>\\n\t\t${1}\\n\t</nav>\\nsnippet nav.\\n\t<nav class=\"${1}\">\\n\t\t${2}\\n\t</nav>\\nsnippet nav#\\n\t<nav id=\"${1}\">\\n\t\t${2}\\n\t</nav>\\nsnippet noscript\\n\t<noscript>\\n\t\t${1}\\n\t</noscript>\\nsnippet object\\n\t<object data=\"${1}\" type=\"${2}\">\\n\t\t${3}\\n\t</object>${4}\\n# Embed QT Movie\\nsnippet movie\\n\t<object width=\"$2\" height=\"$3\" classid=\"clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B\"\\n\t codebase=\"http://www.apple.com/qtactivex/qtplugin.cab\">\\n\t\t<param name=\"src\" value=\"$1\" />\\n\t\t<param name=\"controller\" value=\"$4\" />\\n\t\t<param name=\"autoplay\" value=\"$5\" />\\n\t\t<embed src=\"${1:movie.mov}\"\\n\t\t\twidth=\"${2:320}\" height=\"${3:240}\"\\n\t\t\tcontroller=\"${4:true}\" autoplay=\"${5:true}\"\\n\t\t\tscale=\"tofit\" cache=\"true\"\\n\t\t\tpluginspage=\"http://www.apple.com/quicktime/download/\" />\\n\t</object>${6}\\nsnippet ol\\n\t<ol>\\n\t\t${1}\\n\t</ol>\\nsnippet ol.\\n\t<ol class=\"${1}>\\n\t\t${2}\\n\t</ol>\\nsnippet ol#\\n\t<ol id=\"${1}>\\n\t\t${2}\\n\t</ol>\\nsnippet ol+\\n\t<ol>\\n\t\t<li>${1}</li>\\n\t\tli+${2}\\n\t</ol>\\nsnippet opt\\n\t<option value=\"${1}\">${2:$1}</option>\\nsnippet opt+\\n\t<option value=\"${1}\">${2:$1}</option>\\n\topt+${3}\\nsnippet optt\\n\t<option>${1}</option>\\nsnippet optgroup\\n\t<optgroup>\\n\t\t<option value=\"${1}\">${2:$1}</option>\\n\t\topt+${3}\\n\t</optgroup>\\nsnippet output\\n\t<output>${1}</output>\\nsnippet p\\n\t<p>${1}</p>\\nsnippet param\\n\t<param name=\"${1}\" value=\"${2}\" />${3}\\nsnippet pre\\n\t<pre>\\n\t\t${1}\\n\t</pre>\\nsnippet progress\\n\t<progress>${1}</progress>\\nsnippet q\\n\t<q>${1}</q>\\nsnippet rp\\n\t<rp>${1}</rp>\\nsnippet rt\\n\t<rt>${1}</rt>\\nsnippet ruby\\n\t<ruby>\\n\t\t<rp><rt>${1}</rt></rp>\\n\t</ruby>\\nsnippet s\\n\t<s>${1}</s>\\nsnippet samp\\n\t<samp>\\n\t\t${1}\\n\t</samp>\\nsnippet script\\n\t<script type=\"text/javascript\" charset=\"utf-8\">\\n\t\t${1}\\n\t<\\/script>\\nsnippet scriptsrc\\n\t<script src=\"${1}.js\" type=\"text/javascript\" charset=\"utf-8\"><\\/script>\\nsnippet section\\n\t<section>\\n\t\t${1}\\n\t</section>\\nsnippet section.\\n\t<section class=\"${1}\">\\n\t\t${2}\\n\t</section>\\nsnippet section#\\n\t<section id=\"${1}\">\\n\t\t${2}\\n\t</section>\\nsnippet select\\n\t<select name=\"${1}\" id=\"${2:$1}\">\\n\t\t${3}\\n\t</select>\\nsnippet select.\\n\t<select name=\"${1}\" id=\"${2:$1}\" class=\"${3}>\\n\t\t${4}\\n\t</select>\\nsnippet select+\\n\t<select name=\"${1}\" id=\"${2:$1}\">\\n\t\t<option value=\"${3}\">${4:$3}</option>\\n\t\topt+${5}\\n\t</select>\\nsnippet small\\n\t<small>${1}</small>\\nsnippet source\\n\t<source src=\"${1}\" type=\"${2}\" media=\"${3}\" />\\nsnippet span\\n\t<span>${1}</span>\\nsnippet strong\\n\t<strong>${1}</strong>\\nsnippet style\\n\t<style type=\"text/css\" media=\"${1:all}\">\\n\t\t${2}\\n\t</style>\\nsnippet sub\\n\t<sub>${1}</sub>\\nsnippet summary\\n\t<summary>\\n\t\t${1}\\n\t</summary>\\nsnippet sup\\n\t<sup>${1}</sup>\\nsnippet table\\n\t<table border=\"${1:0}\">\\n\t\t${2}\\n\t</table>\\nsnippet table.\\n\t<table class=\"${1}\" border=\"${2:0}\">\\n\t\t${3}\\n\t</table>\\nsnippet table#\\n\t<table id=\"${1}\" border=\"${2:0}\">\\n\t\t${3}\\n\t</table>\\nsnippet tbody\\n\t<tbody>\\n\t\t${1}\\n\t</tbody>\\nsnippet td\\n\t<td>${1}</td>\\nsnippet td.\\n\t<td class=\"${1}\">${2}</td>\\nsnippet td#\\n\t<td id=\"${1}\">${2}</td>\\nsnippet td+\\n\t<td>${1}</td>\\n\ttd+${2}\\nsnippet textarea\\n\t<textarea name=\"${1}\" id=${2:$1} rows=\"${3:8}\" cols=\"${4:40}\">${5}</textarea>${6}\\nsnippet tfoot\\n\t<tfoot>\\n\t\t${1}\\n\t</tfoot>\\nsnippet th\\n\t<th>${1}</th>\\nsnippet th.\\n\t<th class=\"${1}\">${2}</th>\\nsnippet th#\\n\t<th id=\"${1}\">${2}</th>\\nsnippet th+\\n\t<th>${1}</th>\\n\tth+${2}\\nsnippet thead\\n\t<thead>\\n\t\t${1}\\n\t</thead>\\nsnippet time\\n\t<time datetime=\"${1}\" pubdate=\"${2:$1}>${3:$1}</time>\\nsnippet title\\n\t<title>${1:`substitute(Filename(\\'\\', \\'Page Title\\'), \\'^.\\', \\'\\\\u&\\', \\'\\')`}</title>\\nsnippet tr\\n\t<tr>\\n\t\t${1}\\n\t</tr>\\nsnippet tr+\\n\t<tr>\\n\t\t<td>${1}</td>\\n\t\ttd+${2}\\n\t</tr>\\nsnippet track\\n\t<track src=\"${1}\" srclang=\"${2}\" label=\"${3}\" default=\"${4:default}>${5}</track>${6}\\nsnippet ul\\n\t<ul>\\n\t\t${1}\\n\t</ul>\\nsnippet ul.\\n\t<ul class=\"${1}\">\\n\t\t${2}\\n\t</ul>\\nsnippet ul#\\n\t<ul id=\"${1}\">\\n\t\t${2}\\n\t</ul>\\nsnippet ul+\\n\t<ul>\\n\t\t<li>${1}</li>\\n\t\tli+${2}\\n\t</ul>\\nsnippet var\\n\t<var>${1}</var>\\nsnippet video\\n\t<video src=\"${1} height=\"${2}\" width=\"${3}\" preload=\"${5:none}\" autoplay=\"${6:autoplay}>${7}</video>${8}\\nsnippet wbr\\n\t<wbr />${1}\\n',t.scope=\"html\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/html_elixir.js",
    "content": "ace.define(\"ace/snippets/html_elixir\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"html_elixir\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/html_ruby.js",
    "content": "ace.define(\"ace/snippets/html_ruby\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"html_ruby\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/ini.js",
    "content": "ace.define(\"ace/snippets/ini\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"ini\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/io.js",
    "content": "ace.define(\"ace/snippets/io\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippets=[{content:\"assertEquals(${1:expected}, ${2:expr})\",name:\"assertEquals\",scope:\"io\",tabTrigger:\"ae\"},{content:\"${1:${2:newValue} := ${3:Object} }clone do(\\n\t$0\\n)\",name:\"clone do\",scope:\"io\",tabTrigger:\"cdo\"},{content:'docSlot(\"${1:slotName}\", \"${2:documentation}\")',name:\"docSlot\",scope:\"io\",tabTrigger:\"ds\"},{content:\"(${1:header,}\\n\t${2:body}\\n)$0\",keyEquivalent:\"@(\",name:\"Indented Bracketed Line\",scope:\"io\",tabTrigger:\"(\"},{content:\"\\n\t$0\\n\",keyEquivalent:\"\\r\",name:\"Special: Return Inside Empty Parenthesis\",scope:\"io meta.empty-parenthesis.io, io meta.comma-parenthesis.io\"},{content:\"${1:methodName} := method(${2:args,}\\n\t$0\\n)\",name:\"method\",scope:\"io\",tabTrigger:\"m\"},{content:'newSlot(\"${1:slotName}\", ${2:defaultValue}, \"${3:docString}\")$0',name:\"newSlot\",scope:\"io\",tabTrigger:\"ns\"},{content:\"${1:name} := Object clone do(\\n\t$0\\n)\",name:\"Object clone do\",scope:\"io\",tabTrigger:\"ocdo\"},{content:\"test${1:SomeFeature} := method(\\n\t$0\\n)\",name:\"testMethod\",scope:\"io\",tabTrigger:\"ts\"},{content:\"${1:Something}Test := ${2:UnitTest} clone do(\\n\t$0\\n)\",name:\"UnitTest\",scope:\"io\",tabTrigger:\"ut\"}],t.scope=\"io\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/jack.js",
    "content": "ace.define(\"ace/snippets/jack\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"jack\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/jade.js",
    "content": "ace.define(\"ace/snippets/jade\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"jade\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/java.js",
    "content": "ace.define(\"ace/snippets/java\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='## Access Modifiers\\nsnippet po\\n\tprotected\\nsnippet pu\\n\tpublic\\nsnippet pr\\n\tprivate\\n##\\n## Annotations\\nsnippet before\\n\t@Before\\n\tstatic void ${1:intercept}(${2:args}) { ${3} }\\nsnippet mm\\n\t@ManyToMany\\n\t${1}\\nsnippet mo\\n\t@ManyToOne\\n\t${1}\\nsnippet om\\n\t@OneToMany${1:(cascade=CascadeType.ALL)}\\n\t${2}\\nsnippet oo\\n\t@OneToOne\\n\t${1}\\n##\\n## Basic Java packages and import\\nsnippet im\\n\timport\\nsnippet j.b\\n\tjava.beans.\\nsnippet j.i\\n\tjava.io.\\nsnippet j.m\\n\tjava.math.\\nsnippet j.n\\n\tjava.net.\\nsnippet j.u\\n\tjava.util.\\n##\\n## Class\\nsnippet cl\\n\tclass ${1:`Filename(\"\", \"untitled\")`} ${2}\\nsnippet in\\n\tinterface ${1:`Filename(\"\", \"untitled\")`} ${2:extends Parent}${3}\\nsnippet tc\\n\tpublic class ${1:`Filename()`} extends ${2:TestCase}\\n##\\n## Class Enhancements\\nsnippet ext\\n\textends \\nsnippet imp\\n\timplements\\n##\\n## Comments\\nsnippet /*\\n\t/*\\n\t * ${1}\\n\t */\\n##\\n## Constants\\nsnippet co\\n\tstatic public final ${1:String} ${2:var} = ${3};${4}\\nsnippet cos\\n\tstatic public final String ${1:var} = \"${2}\";${3}\\n##\\n## Control Statements\\nsnippet case\\n\tcase ${1}:\\n\t\t${2}\\nsnippet def\\n\tdefault:\\n\t\t${2}\\nsnippet el\\n\telse\\nsnippet elif\\n\telse if (${1}) ${2}\\nsnippet if\\n\tif (${1}) ${2}\\nsnippet sw\\n\tswitch (${1}) {\\n\t\t${2}\\n\t}\\n##\\n## Create a Method\\nsnippet m\\n\t${1:void} ${2:method}(${3}) ${4:throws }${5}\\n##\\n## Create a Variable\\nsnippet v\\n\t${1:String} ${2:var}${3: = null}${4};${5}\\n##\\n## Enhancements to Methods, variables, classes, etc.\\nsnippet ab\\n\tabstract\\nsnippet fi\\n\tfinal\\nsnippet st\\n\tstatic\\nsnippet sy\\n\tsynchronized\\n##\\n## Error Methods\\nsnippet err\\n\tSystem.err.print(\"${1:Message}\");\\nsnippet errf\\n\tSystem.err.printf(\"${1:Message}\", ${2:exception});\\nsnippet errln\\n\tSystem.err.println(\"${1:Message}\");\\n##\\n## Exception Handling\\nsnippet as\\n\tassert ${1:test} : \"${2:Failure message}\";${3}\\nsnippet ca\\n\tcatch(${1:Exception} ${2:e}) ${3}\\nsnippet thr\\n\tthrow\\nsnippet ths\\n\tthrows\\nsnippet try\\n\ttry {\\n\t\t${3}\\n\t} catch(${1:Exception} ${2:e}) {\\n\t}\\nsnippet tryf\\n\ttry {\\n\t\t${3}\\n\t} catch(${1:Exception} ${2:e}) {\\n\t} finally {\\n\t}\\n##\\n## Find Methods\\nsnippet findall\\n\tList<${1:listName}> ${2:items} = ${1}.findAll();${3}\\nsnippet findbyid\\n\t${1:var} ${2:item} = ${1}.findById(${3});${4}\\n##\\n## Javadocs\\nsnippet /**\\n\t/**\\n\t * ${1}\\n\t */\\nsnippet @au\\n\t@author `system(\"grep \\\\`id -un\\\\` /etc/passwd | cut -d \\\\\":\\\\\" -f5 | cut -d \\\\\",\\\\\" -f1\")`\\nsnippet @br\\n\t@brief ${1:Description}\\nsnippet @fi\\n\t@file ${1:`Filename()`}.java\\nsnippet @pa\\n\t@param ${1:param}\\nsnippet @re\\n\t@return ${1:param}\\n##\\n## Logger Methods\\nsnippet debug\\n\tLogger.debug(${1:param});${2}\\nsnippet error\\n\tLogger.error(${1:param});${2}\\nsnippet info\\n\tLogger.info(${1:param});${2}\\nsnippet warn\\n\tLogger.warn(${1:param});${2}\\n##\\n## Loops\\nsnippet enfor\\n\tfor (${1} : ${2}) ${3}\\nsnippet for\\n\tfor (${1}; ${2}; ${3}) ${4}\\nsnippet wh\\n\twhile (${1}) ${2}\\n##\\n## Main method\\nsnippet main\\n\tpublic static void main (String[] args) {\\n\t\t${1:/* code */}\\n\t}\\n##\\n## Print Methods\\nsnippet print\\n\tSystem.out.print(\"${1:Message}\");\\nsnippet printf\\n\tSystem.out.printf(\"${1:Message}\", ${2:args});\\nsnippet println\\n\tSystem.out.println(${1});\\n##\\n## Render Methods\\nsnippet ren\\n\trender(${1:param});${2}\\nsnippet rena\\n\trenderArgs.put(\"${1}\", ${2});${3}\\nsnippet renb\\n\trenderBinary(${1:param});${2}\\nsnippet renj\\n\trenderJSON(${1:param});${2}\\nsnippet renx\\n\trenderXml(${1:param});${2}\\n##\\n## Setter and Getter Methods\\nsnippet set\\n\t${1:public} void set${3:}(${2:String} ${4:}){\\n\t\tthis.$4 = $4;\\n\t}\\nsnippet get\\n\t${1:public} ${2:String} get${3:}(){\\n\t\treturn this.${4:};\\n\t}\\n##\\n## Terminate Methods or Loops\\nsnippet re\\n\treturn\\nsnippet br\\n\tbreak;\\n##\\n## Test Methods\\nsnippet t\\n\tpublic void test${1:Name}() throws Exception {\\n\t\t${2}\\n\t}\\nsnippet test\\n\t@Test\\n\tpublic void test${1:Name}() throws Exception {\\n\t\t${2}\\n\t}\\n##\\n## Utils\\nsnippet Sc\\n\tScanner\\n##\\n## Miscellaneous\\nsnippet action\\n\tpublic static void ${1:index}(${2:args}) { ${3} }\\nsnippet rnf\\n\tnotFound(${1:param});${2}\\nsnippet rnfin\\n\tnotFoundIfNull(${1:param});${2}\\nsnippet rr\\n\tredirect(${1:param});${2}\\nsnippet ru\\n\tunauthorized(${1:param});${2}\\nsnippet unless\\n\t(unless=${1:param});${2}\\n',t.scope=\"java\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/javascript.js",
    "content": "ace.define(\"ace/snippets/javascript\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='# Prototype\\nsnippet proto\\n\t${1:class_name}.prototype.${2:method_name} = function(${3:first_argument}) {\\n\t\t${4:// body...}\\n\t};\\n# Function\\nsnippet fun\\n\tfunction ${1?:function_name}(${2:argument}) {\\n\t\t${3:// body...}\\n\t}\\n# Anonymous Function\\nregex /((=)\\\\s*|(:)\\\\s*|(\\\\()|\\\\b)/f/(\\\\))?/\\nsnippet f\\n\tfunction${M1?: ${1:functionName}}($2) {\\n\t\t${0:$TM_SELECTED_TEXT}\\n\t}${M2?;}${M3?,}${M4?)}\\n# Immediate function\\ntrigger \\\\(?f\\\\(\\nendTrigger \\\\)?\\nsnippet f(\\n\t(function(${1}) {\\n\t\t${0:${TM_SELECTED_TEXT:/* code */}}\\n\t}(${1}));\\n# if\\nsnippet if\\n\tif (${1:true}) {\\n\t\t${0}\\n\t}\\n# if ... else\\nsnippet ife\\n\tif (${1:true}) {\\n\t\t${2}\\n\t} else {\\n\t\t${0}\\n\t}\\n# tertiary conditional\\nsnippet ter\\n\t${1:/* condition */} ? ${2:a} : ${3:b}\\n# switch\\nsnippet switch\\n\tswitch (${1:expression}) {\\n\t\tcase \\'${3:case}\\':\\n\t\t\t${4:// code}\\n\t\t\tbreak;\\n\t\t${5}\\n\t\tdefault:\\n\t\t\t${2:// code}\\n\t}\\n# case\\nsnippet case\\n\tcase \\'${1:case}\\':\\n\t\t${2:// code}\\n\t\tbreak;\\n\t${3}\\n\\n# while (...) {...}\\nsnippet wh\\n\twhile (${1:/* condition */}) {\\n\t\t${0:/* code */}\\n\t}\\n# try\\nsnippet try\\n\ttry {\\n\t\t${0:/* code */}\\n\t} catch (e) {}\\n# do...while\\nsnippet do\\n\tdo {\\n\t\t${2:/* code */}\\n\t} while (${1:/* condition */});\\n# Object Method\\nsnippet :f\\nregex /([,{[])|^\\\\s*/:f/\\n\t${1:method_name}: function(${2:attribute}) {\\n\t\t${0}\\n\t}${3:,}\\n# setTimeout function\\nsnippet setTimeout\\nregex /\\\\b/st|timeout|setTimeo?u?t?/\\n\tsetTimeout(function() {${3:$TM_SELECTED_TEXT}}, ${1:10});\\n# Get Elements\\nsnippet gett\\n\tgetElementsBy${1:TagName}(\\'${2}\\')${3}\\n# Get Element\\nsnippet get\\n\tgetElementBy${1:Id}(\\'${2}\\')${3}\\n# console.log (Firebug)\\nsnippet cl\\n\tconsole.log(${1});\\n# return\\nsnippet ret\\n\treturn ${1:result}\\n# for (property in object ) { ... }\\nsnippet fori\\n\tfor (var ${1:prop} in ${2:Things}) {\\n\t\t${0:$2[$1]}\\n\t}\\n# hasOwnProperty\\nsnippet has\\n\thasOwnProperty(${1})\\n# docstring\\nsnippet /**\\n\t/**\\n\t * ${1:description}\\n\t *\\n\t */\\nsnippet @par\\nregex /^\\\\s*\\\\*\\\\s*/@(para?m?)?/\\n\t@param {${1:type}} ${2:name} ${3:description}\\nsnippet @ret\\n\t@return {${1:type}} ${2:description}\\n# JSON.parse\\nsnippet jsonp\\n\tJSON.parse(${1:jstr});\\n# JSON.stringify\\nsnippet jsons\\n\tJSON.stringify(${1:object});\\n# self-defining function\\nsnippet sdf\\n\tvar ${1:function_name} = function(${2:argument}) {\\n\t\t${3:// initial code ...}\\n\\n\t\t$1 = function($2) {\\n\t\t\t${4:// main code}\\n\t\t};\\n\t}\\n# singleton\\nsnippet sing\\n\tfunction ${1:Singleton} (${2:argument}) {\\n\t\t// the cached instance\\n\t\tvar instance;\\n\\n\t\t// rewrite the constructor\\n\t\t$1 = function $1($2) {\\n\t\t\treturn instance;\\n\t\t};\\n\t\t\\n\t\t// carry over the prototype properties\\n\t\t$1.prototype = this;\\n\\n\t\t// the instance\\n\t\tinstance = new $1();\\n\\n\t\t// reset the constructor pointer\\n\t\tinstance.constructor = $1;\\n\\n\t\t${3:// code ...}\\n\\n\t\treturn instance;\\n\t}\\n# class\\nsnippet class\\nregex /^\\\\s*/clas{0,2}/\\n\tvar ${1:class} = function(${20}) {\\n\t\t$40$0\\n\t};\\n\t\\n\t(function() {\\n\t\t${60:this.prop = \"\"}\\n\t}).call(${1:class}.prototype);\\n\t\\n\texports.${1:class} = ${1:class};\\n# \\nsnippet for-\\n\tfor (var ${1:i} = ${2:Things}.length; ${1:i}--; ) {\\n\t\t${0:${2:Things}[${1:i}];}\\n\t}\\n# for (...) {...}\\nsnippet for\\n\tfor (var ${1:i} = 0; $1 < ${2:Things}.length; $1++) {\\n\t\t${3:$2[$1]}$0\\n\t}\\n# for (...) {...} (Improved Native For-Loop)\\nsnippet forr\\n\tfor (var ${1:i} = ${2:Things}.length - 1; $1 >= 0; $1--) {\\n\t\t${3:$2[$1]}$0\\n\t}\\n\\n\\n#modules\\nsnippet def\\n\tdefine(function(require, exports, module) {\\n\t\"use strict\";\\n\tvar ${1/.*\\\\///} = require(\"${1}\");\\n\t\\n\t$TM_SELECTED_TEXT\\n\t});\\nsnippet req\\nguard ^\\\\s*\\n\tvar ${1/.*\\\\///} = require(\"${1}\");\\n\t$0\\nsnippet requ\\nguard ^\\\\s*\\n\tvar ${1/.*\\\\/(.)/\\\\u$1/} = require(\"${1}\").${1/.*\\\\/(.)/\\\\u$1/};\\n\t$0\\n',t.scope=\"javascript\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/json.js",
    "content": "ace.define(\"ace/snippets/json\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"json\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/jsoniq.js",
    "content": "ace.define(\"ace/snippets/jsoniq\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='snippet for\\n\tfor $${1:item} in ${2:expr}\\nsnippet return\\n\treturn ${1:expr}\\nsnippet import\\n\timport module namespace ${1:ns} = \"${2:http://www.example.com/}\";\\nsnippet some\\n\tsome $${1:varname} in ${2:expr} satisfies ${3:expr}\\nsnippet every\\n\tevery $${1:varname} in ${2:expr} satisfies ${3:expr}\\nsnippet if\\n\tif(${1:true}) then ${2:expr} else ${3:true}\\nsnippet switch\\n\tswitch(${1:\"foo\"})\\n\tcase ${2:\"foo\"}\\n\treturn ${3:true}\\n\tdefault return ${4:false}\\nsnippet try\\n\ttry { ${1:expr} } catch ${2:*} { ${3:expr} }\\nsnippet tumbling\\n\tfor tumbling window $${1:varname} in ${2:expr}\\n\tstart at $${3:start} when ${4:expr}\\n\tend at $${5:end} when ${6:expr}\\n\treturn ${7:expr}\\nsnippet sliding\\n\tfor sliding window $${1:varname} in ${2:expr}\\n\tstart at $${3:start} when ${4:expr}\\n\tend at $${5:end} when ${6:expr}\\n\treturn ${7:expr}\\nsnippet let\\n\tlet $${1:varname} := ${2:expr}\\nsnippet group\\n\tgroup by $${1:varname} := ${2:expr}\\nsnippet order\\n\torder by ${1:expr} ${2:descending}\\nsnippet stable\\n\tstable order by ${1:expr}\\nsnippet count\\n\tcount $${1:varname}\\nsnippet ordered\\n\tordered { ${1:expr} }\\nsnippet unordered\\n\tunordered { ${1:expr} }\\nsnippet treat \\n\ttreat as ${1:expr}\\nsnippet castable\\n\tcastable as ${1:atomicType}\\nsnippet cast\\n\tcast as ${1:atomicType}\\nsnippet typeswitch\\n\ttypeswitch(${1:expr})\\n\tcase ${2:type}  return ${3:expr}\\n\tdefault return ${4:expr}\\nsnippet var\\n\tdeclare variable $${1:varname} := ${2:expr};\\nsnippet fn\\n\tdeclare function ${1:ns}:${2:name}(){\\n\t${3:expr}\\n\t};\\nsnippet module\\n\tmodule namespace ${1:ns} = \"${2:http://www.example.com}\";\\n',t.scope=\"jsoniq\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/jsp.js",
    "content": "ace.define(\"ace/snippets/jsp\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='snippet @page\\n\t<%@page contentType=\"text/html\" pageEncoding=\"UTF-8\"%>\\nsnippet jstl\\n\t<%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\" %>\\n\t<%@ taglib uri=\"http://java.sun.com/jsp/jstl/functions\" prefix=\"fn\" %>\\nsnippet jstl:c\\n\t<%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\" %>\\nsnippet jstl:fn\\n\t<%@ taglib uri=\"http://java.sun.com/jsp/jstl/functions\" prefix=\"fn\" %>\\nsnippet cpath\\n\t${pageContext.request.contextPath}\\nsnippet cout\\n\t<c:out value=\"${1}\" default=\"${2}\" />\\nsnippet cset\\n\t<c:set var=\"${1}\" value=\"${2}\" />\\nsnippet cremove\\n\t<c:remove var=\"${1}\" scope=\"${2:page}\" />\\nsnippet ccatch\\n\t<c:catch var=\"${1}\" />\\nsnippet cif\\n\t<c:if test=\"${${1}}\">\\n\t\t${2}\\n\t</c:if>\\nsnippet cchoose\\n\t<c:choose>\\n\t\t${1}\\n\t</c:choose>\\nsnippet cwhen\\n\t<c:when test=\"${${1}}\">\\n\t\t${2}\\n\t</c:when>\\nsnippet cother\\n\t<c:otherwise>\\n\t\t${1}\\n\t</c:otherwise>\\nsnippet cfore\\n\t<c:forEach items=\"${${1}}\" var=\"${2}\" varStatus=\"${3}\">\\n\t\t${4:<c:out value=\"$2\" />}\\n\t</c:forEach>\\nsnippet cfort\\n\t<c:set var=\"${1}\">${2:item1,item2,item3}</c:set>\\n\t<c:forTokens var=\"${3}\" items=\"${$1}\" delims=\"${4:,}\">\\n\t\t${5:<c:out value=\"$3\" />}\\n\t</c:forTokens>\\nsnippet cparam\\n\t<c:param name=\"${1}\" value=\"${2}\" />\\nsnippet cparam+\\n\t<c:param name=\"${1}\" value=\"${2}\" />\\n\tcparam+${3}\\nsnippet cimport\\n\t<c:import url=\"${1}\" />\\nsnippet cimport+\\n\t<c:import url=\"${1}\">\\n\t\t<c:param name=\"${2}\" value=\"${3}\" />\\n\t\tcparam+${4}\\n\t</c:import>\\nsnippet curl\\n\t<c:url value=\"${1}\" var=\"${2}\" />\\n\t<a href=\"${$2}\">${3}</a>\\nsnippet curl+\\n\t<c:url value=\"${1}\" var=\"${2}\">\\n\t\t<c:param name=\"${4}\" value=\"${5}\" />\\n\t\tcparam+${6}\\n\t</c:url>\\n\t<a href=\"${$2}\">${3}</a>\\nsnippet credirect\\n\t<c:redirect url=\"${1}\" />\\nsnippet contains\\n\t${fn:contains(${1:string}, ${2:substr})}\\nsnippet contains:i\\n\t${fn:containsIgnoreCase(${1:string}, ${2:substr})}\\nsnippet endswith\\n\t${fn:endsWith(${1:string}, ${2:suffix})}\\nsnippet escape\\n\t${fn:escapeXml(${1:string})}\\nsnippet indexof\\n\t${fn:indexOf(${1:string}, ${2:substr})}\\nsnippet join\\n\t${fn:join(${1:collection}, ${2:delims})}\\nsnippet length\\n\t${fn:length(${1:collection_or_string})}\\nsnippet replace\\n\t${fn:replace(${1:string}, ${2:substr}, ${3:replace})}\\nsnippet split\\n\t${fn:split(${1:string}, ${2:delims})}\\nsnippet startswith\\n\t${fn:startsWith(${1:string}, ${2:prefix})}\\nsnippet substr\\n\t${fn:substring(${1:string}, ${2:begin}, ${3:end})}\\nsnippet substr:a\\n\t${fn:substringAfter(${1:string}, ${2:substr})}\\nsnippet substr:b\\n\t${fn:substringBefore(${1:string}, ${2:substr})}\\nsnippet lc\\n\t${fn:toLowerCase(${1:string})}\\nsnippet uc\\n\t${fn:toUpperCase(${1:string})}\\nsnippet trim\\n\t${fn:trim(${1:string})}\\n',t.scope=\"jsp\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/jsx.js",
    "content": "ace.define(\"ace/snippets/jsx\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"jsx\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/julia.js",
    "content": "ace.define(\"ace/snippets/julia\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"julia\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/latex.js",
    "content": "ace.define(\"ace/snippets/latex\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"latex\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/lean.js",
    "content": "ace.define(\"ace/snippets/lean\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"lean\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/less.js",
    "content": "ace.define(\"ace/snippets/less\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"less\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/liquid.js",
    "content": "ace.define(\"ace/snippets/liquid\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"liquid\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/lisp.js",
    "content": "ace.define(\"ace/snippets/lisp\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"lisp\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/live_script.js",
    "content": "ace.define(\"ace/snippets/live_script\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/livescript.js",
    "content": "ace.define(\"ace/snippets/livescript\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"livescript\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/logiql.js",
    "content": "ace.define(\"ace/snippets/logiql\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"logiql\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/lsl.js",
    "content": "ace.define(\"ace/snippets/lsl\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"snippet @\\n\t@${1:label};\\nsnippet CAMERA_ACTIVE\\n\tCAMERA_ACTIVE, ${1:integer isActive}, $0\\nsnippet CAMERA_BEHINDNESS_ANGLE\\n\tCAMERA_BEHINDNESS_ANGLE, ${1:float degrees}, $0\\nsnippet CAMERA_BEHINDNESS_LAG\\n\tCAMERA_BEHINDNESS_LAG, ${1:float seconds}, $0\\nsnippet CAMERA_DISTANCE\\n\tCAMERA_DISTANCE, ${1:float meters}, $0\\nsnippet CAMERA_FOCUS\\n\tCAMERA_FOCUS, ${1:vector position}, $0\\nsnippet CAMERA_FOCUS_LAG\\n\tCAMERA_FOCUS_LAG, ${1:float seconds}, $0\\nsnippet CAMERA_FOCUS_LOCKED\\n\tCAMERA_FOCUS_LOCKED, ${1:integer isLocked}, $0\\nsnippet CAMERA_FOCUS_OFFSET\\n\tCAMERA_FOCUS_OFFSET, ${1:vector meters}, $0\\nsnippet CAMERA_FOCUS_THRESHOLD\\n\tCAMERA_FOCUS_THRESHOLD, ${1:float meters}, $0\\nsnippet CAMERA_PITCH\\n\tCAMERA_PITCH, ${1:float degrees}, $0\\nsnippet CAMERA_POSITION\\n\tCAMERA_POSITION, ${1:vector position}, $0\\nsnippet CAMERA_POSITION_LAG\\n\tCAMERA_POSITION_LAG, ${1:float seconds}, $0\\nsnippet CAMERA_POSITION_LOCKED\\n\tCAMERA_POSITION_LOCKED, ${1:integer isLocked}, $0\\nsnippet CAMERA_POSITION_THRESHOLD\\n\tCAMERA_POSITION_THRESHOLD, ${1:float meters}, $0\\nsnippet CHARACTER_AVOIDANCE_MODE\\n\tCHARACTER_AVOIDANCE_MODE, ${1:integer flags}, $0\\nsnippet CHARACTER_DESIRED_SPEED\\n\tCHARACTER_DESIRED_SPEED, ${1:float speed}, $0\\nsnippet CHARACTER_DESIRED_TURN_SPEED\\n\tCHARACTER_DESIRED_TURN_SPEED, ${1:float speed}, $0\\nsnippet CHARACTER_LENGTH\\n\tCHARACTER_LENGTH, ${1:float length}, $0\\nsnippet CHARACTER_MAX_TURN_RADIUS\\n\tCHARACTER_MAX_TURN_RADIUS, ${1:float radius}, $0\\nsnippet CHARACTER_ORIENTATION\\n\tCHARACTER_ORIENTATION, ${1:integer orientation}, $0\\nsnippet CHARACTER_RADIUS\\n\tCHARACTER_RADIUS, ${1:float radius}, $0\\nsnippet CHARACTER_STAY_WITHIN_PARCEL\\n\tCHARACTER_STAY_WITHIN_PARCEL, ${1:boolean stay}, $0\\nsnippet CHARACTER_TYPE\\n\tCHARACTER_TYPE, ${1:integer type}, $0\\nsnippet HTTP_BODY_MAXLENGTH\\n\tHTTP_BODY_MAXLENGTH, ${1:integer length}, $0\\nsnippet HTTP_CUSTOM_HEADER\\n\tHTTP_CUSTOM_HEADER, ${1:string name}, ${2:string value}, $0\\nsnippet HTTP_METHOD\\n\tHTTP_METHOD, ${1:string method}, $0\\nsnippet HTTP_MIMETYPE\\n\tHTTP_MIMETYPE, ${1:string mimeType}, $0\\nsnippet HTTP_PRAGMA_NO_CACHE\\n\tHTTP_PRAGMA_NO_CACHE, ${1:integer send_header}, $0\\nsnippet HTTP_VERBOSE_THROTTLE\\n\tHTTP_VERBOSE_THROTTLE, ${1:integer noisy}, $0\\nsnippet HTTP_VERIFY_CERT\\n\tHTTP_VERIFY_CERT, ${1:integer verify}, $0\\nsnippet RC_DATA_FLAGS\\n\tRC_DATA_FLAGS, ${1:integer flags}, $0\\nsnippet RC_DETECT_PHANTOM\\n\tRC_DETECT_PHANTOM, ${1:integer dectedPhantom}, $0\\nsnippet RC_MAX_HITS\\n\tRC_MAX_HITS, ${1:integer maxHits}, $0\\nsnippet RC_REJECT_TYPES\\n\tRC_REJECT_TYPES, ${1:integer filterMask}, $0\\nsnippet at_rot_target\\n\tat_rot_target(${1:integer handle}, ${2:rotation targetrot}, ${3:rotation ourrot})\\n\t{\\n\t\t$0\\n\t}\\nsnippet at_target\\n\tat_target(${1:integer tnum}, ${2:vector targetpos}, ${3:vector ourpos})\\n\t{\\n\t\t$0\\n\t}\\nsnippet attach\\n\tattach(${1:key id})\\n\t{\\n\t\t$0\\n\t}\\nsnippet changed\\n\tchanged(${1:integer change})\\n\t{\\n\t\t$0\\n\t}\\nsnippet collision\\n\tcollision(${1:integer index})\\n\t{\\n\t\t$0\\n\t}\\nsnippet collision_end\\n\tcollision_end(${1:integer index})\\n\t{\\n\t\t$0\\n\t}\\nsnippet collision_start\\n\tcollision_start(${1:integer index})\\n\t{\\n\t\t$0\\n\t}\\nsnippet control\\n\tcontrol(${1:key id}, ${2:integer level}, ${3:integer edge})\\n\t{\\n\t\t$0\\n\t}\\nsnippet dataserver\\n\tdataserver(${1:key query_id}, ${2:string data})\\n\t{\\n\t\t$0\\n\t}\\nsnippet do\\n\tdo\\n\t{\\n\t\t$0\\n\t}\\n\twhile (${1:condition});\\nsnippet else\\n\telse\\n\t{\\n\t\t$0\\n\t}\\nsnippet email\\n\temail(${1:string time}, ${2:string address}, ${3:string subject}, ${4:string message}, ${5:integer num_left})\\n\t{\\n\t\t$0\\n\t}\\nsnippet experience_permissions\\n\texperience_permissions(${1:key agent_id})\\n\t{\\n\t\t$0\\n\t}\\nsnippet experience_permissions_denied\\n\texperience_permissions_denied(${1:key agent_id}, ${2:integer reason})\\n\t{\\n\t\t$0\\n\t}\\nsnippet for\\n\tfor (${1:start}; ${3:condition}; ${3:step})\\n\t{\\n\t\t$0\\n\t}\\nsnippet http_request\\n\thttp_request(${1:key request_id}, ${2:string method}, ${3:string body})\\n\t{\\n\t\t$0\\n\t}\\nsnippet http_response\\n\thttp_response(${1:key request_id}, ${2:integer status}, ${3:list metadata}, ${4:string body})\\n\t{\\n\t\t$0\\n\t}\\nsnippet if\\n\tif (${1:condition})\\n\t{\\n\t\t$0\\n\t}\\nsnippet jump\\n\tjump ${1:label};\\nsnippet land_collision\\n\tland_collision(${1:vector pos})\\n\t{\\n\t\t$0\\n\t}\\nsnippet land_collision_end\\n\tland_collision_end(${1:vector pos})\\n\t{\\n\t\t$0\\n\t}\\nsnippet land_collision_start\\n\tland_collision_start(${1:vector pos})\\n\t{\\n\t\t$0\\n\t}\\nsnippet link_message\\n\tlink_message(${1:integer sender_num}, ${2:integer num}, ${3:string str}, ${4:key id})\\n\t{\\n\t\t$0\\n\t}\\nsnippet listen\\n\tlisten(${1:integer channel}, ${2:string name}, ${3:key id}, ${4:string message})\\n\t{\\n\t\t$0\\n\t}\\nsnippet llAbs\\n\tllAbs(${1:integer val})\\nsnippet llAcos\\n\tllAcos(${1:float val})\\nsnippet llAddToLandBanList\\n\tllAddToLandBanList(${1:key agent}, ${2:float hours});\\n\t$0\\nsnippet llAddToLandPassList\\n\tllAddToLandPassList(${1:key agent}, ${2:float hours});\\n\t$0\\nsnippet llAdjustSoundVolume\\n\tllAdjustSoundVolume(${1:float volume});\\n\t$0\\nsnippet llAgentInExperience\\n\tllAgentInExperience(${1:key agent})\\nsnippet llAllowInventoryDrop\\n\tllAllowInventoryDrop(${1:integer add});\\n\t$0\\nsnippet llAngleBetween\\n\tllAngleBetween(${1:rotation a}, ${2:rotation b})\\nsnippet llApplyImpulse\\n\tllApplyImpulse(${1:vector force}, ${2:integer local});\\n\t$0\\nsnippet llApplyRotationalImpulse\\n\tllApplyRotationalImpulse(${1:vector force}, ${2:integer local});\\n\t$0\\nsnippet llAsin\\n\tllAsin(${1:float val})\\nsnippet llAtan2\\n\tllAtan2(${1:float y}, ${2:float x})\\nsnippet llAttachToAvatar\\n\tllAttachToAvatar(${1:integer attach_point});\\n\t$0\\nsnippet llAttachToAvatarTemp\\n\tllAttachToAvatarTemp(${1:integer attach_point});\\n\t$0\\nsnippet llAvatarOnLinkSitTarget\\n\tllAvatarOnLinkSitTarget(${1:integer link})\\nsnippet llAvatarOnSitTarget\\n\tllAvatarOnSitTarget()\\nsnippet llAxes2Rot\\n\tllAxes2Rot(${1:vector fwd}, ${2:vector left}, ${3:vector up})\\nsnippet llAxisAngle2Rot\\n\tllAxisAngle2Rot(${1:vector axis}, ${2:float angle})\\nsnippet llBase64ToInteger\\n\tllBase64ToInteger(${1:string str})\\nsnippet llBase64ToString\\n\tllBase64ToString(${1:string str})\\nsnippet llBreakAllLinks\\n\tllBreakAllLinks();\\n\t$0\\nsnippet llBreakLink\\n\tllBreakLink(${1:integer link});\\n\t$0\\nsnippet llCastRay\\n\tllCastRay(${1:vector start}, ${2:vector end}, ${3:list options});\\n\t$0\\nsnippet llCeil\\n\tllCeil(${1:float val})\\nsnippet llClearCameraParams\\n\tllClearCameraParams();\\n\t$0\\nsnippet llClearLinkMedia\\n\tllClearLinkMedia(${1:integer link}, ${2:integer face});\\n\t$0\\nsnippet llClearPrimMedia\\n\tllClearPrimMedia(${1:integer face});\\n\t$0\\nsnippet llCloseRemoteDataChannel\\n\tllCloseRemoteDataChannel(${1:key channel});\\n\t$0\\nsnippet llCollisionFilter\\n\tllCollisionFilter(${1:string name}, ${2:key id}, ${3:integer accept});\\n\t$0\\nsnippet llCollisionSound\\n\tllCollisionSound(${1:string impact_sound}, ${2:float impact_volume});\\n\t$0\\nsnippet llCos\\n\tllCos(${1:float theta})\\nsnippet llCreateCharacter\\n\tllCreateCharacter(${1:list options});\\n\t$0\\nsnippet llCreateKeyValue\\n\tllCreateKeyValue(${1:string k})\\nsnippet llCreateLink\\n\tllCreateLink(${1:key target}, ${2:integer parent});\\n\t$0\\nsnippet llCSV2List\\n\tllCSV2List(${1:string src})\\nsnippet llDataSizeKeyValue\\n\tllDataSizeKeyValue()\\nsnippet llDeleteCharacter\\n\tllDeleteCharacter();\\n\t$0\\nsnippet llDeleteKeyValue\\n\tllDeleteKeyValue(${1:string k})\\nsnippet llDeleteSubList\\n\tllDeleteSubList(${1:list src}, ${2:integer start}, ${3:integer end})\\nsnippet llDeleteSubString\\n\tllDeleteSubString(${1:string src}, ${2:integer start}, ${3:integer end})\\nsnippet llDetachFromAvatar\\n\tllDetachFromAvatar();\\n\t$0\\nsnippet llDetectedGrab\\n\tllDetectedGrab(${1:integer number})\\nsnippet llDetectedGroup\\n\tllDetectedGroup(${1:integer number})\\nsnippet llDetectedKey\\n\tllDetectedKey(${1:integer number})\\nsnippet llDetectedLinkNumber\\n\tllDetectedLinkNumber(${1:integer number})\\nsnippet llDetectedName\\n\tllDetectedName(${1:integer number})\\nsnippet llDetectedOwner\\n\tllDetectedOwner(${1:integer number})\\nsnippet llDetectedPos\\n\tllDetectedPosl(${1:integer number})\\nsnippet llDetectedRot\\n\tllDetectedRot(${1:integer number})\\nsnippet llDetectedTouchBinormal\\n\tllDetectedTouchBinormal(${1:integer number})\\nsnippet llDetectedTouchFace\\n\tllDetectedTouchFace(${1:integer number})\\nsnippet llDetectedTouchNormal\\n\tllDetectedTouchNormal(${1:integer number})\\nsnippet llDetectedTouchPos\\n\tllDetectedTouchPos(${1:integer number})\\nsnippet llDetectedTouchST\\n\tllDetectedTouchST(${1:integer number})\\nsnippet llDetectedTouchUV\\n\tllDetectedTouchUV(${1:integer number})\\nsnippet llDetectedType\\n\tllDetectedType(${1:integer number})\\nsnippet llDetectedVel\\n\tllDetectedVel(${1:integer number})\\nsnippet llDialog\\n\tllDialog(${1:key agent}, ${2:string message}, ${3:list buttons}, ${4:integer channel});\\n\t$0\\nsnippet llDie\\n\tllDie();\\n\t$0\\nsnippet llDumpList2String\\n\tllDumpList2String(${1:list src}, ${2:string separator})\\nsnippet llEdgeOfWorld\\n\tllEdgeOfWorld(${1:vector pos}, ${2:vector dir})\\nsnippet llEjectFromLand\\n\tllEjectFromLand(${1:key agent});\\n\t$0\\nsnippet llEmail\\n\tllEmail(${1:string address}, ${2:string subject}, ${3:string message});\\n\t$0\\nsnippet llEscapeURL\\n\tllEscapeURL(${1:string url})\\nsnippet llEuler2Rot\\n\tllEuler2Rot(${1:vector v})\\nsnippet llExecCharacterCmd\\n\tllExecCharacterCmd(${1:integer command}, ${2:list options});\\n\t$0\\nsnippet llEvade\\n\tllEvade(${1:key target}, ${2:list options});\\n\t$0\\nsnippet llFabs\\n\tllFabs(${1:float val})\\nsnippet llFleeFrom\\n\tllFleeFrom(${1:vector position}, ${2:float distance}, ${3:list options});\\n\t$0\\nsnippet llFloor\\n\tllFloor(${1:float val})\\nsnippet llForceMouselook\\n\tllForceMouselook(${1:integer mouselook});\\n\t$0\\nsnippet llFrand\\n\tllFrand(${1:float mag})\\nsnippet llGenerateKey\\n\tllGenerateKey()\\nsnippet llGetAccel\\n\tllGetAccel()\\nsnippet llGetAgentInfo\\n\tllGetAgentInfo(${1:key id})\\nsnippet llGetAgentLanguage\\n\tllGetAgentLanguage(${1:key agent})\\nsnippet llGetAgentList\\n\tllGetAgentList(${1:integer scope}, ${2:list options})\\nsnippet llGetAgentSize\\n\tllGetAgentSize(${1:key agent})\\nsnippet llGetAlpha\\n\tllGetAlpha(${1:integer face})\\nsnippet llGetAndResetTime\\n\tllGetAndResetTime()\\nsnippet llGetAnimation\\n\tllGetAnimation(${1:key id})\\nsnippet llGetAnimationList\\n\tllGetAnimationList(${1:key agent})\\nsnippet llGetAnimationOverride\\n\tllGetAnimationOverride(${1:string anim_state})\\nsnippet llGetAttached\\n\tllGetAttached()\\nsnippet llGetAttachedList\\n\tllGetAttachedList(${1:key id})\\nsnippet llGetBoundingBox\\n\tllGetBoundingBox(${1:key object})\\nsnippet llGetCameraPos\\n\tllGetCameraPos()\\nsnippet llGetCameraRot\\n\tllGetCameraRot()\\nsnippet llGetCenterOfMass\\n\tllGetCenterOfMass()\\nsnippet llGetClosestNavPoint\\n\tllGetClosestNavPoint(${1:vector point}, ${2:list options})\\nsnippet llGetColor\\n\tllGetColor(${1:integer face})\\nsnippet llGetCreator\\n\tllGetCreator()\\nsnippet llGetDate\\n\tllGetDate()\\nsnippet llGetDisplayName\\n\tllGetDisplayName(${1:key id})\\nsnippet llGetEnergy\\n\tllGetEnergy()\\nsnippet llGetEnv\\n\tllGetEnv(${1:string name})\\nsnippet llGetExperienceDetails\\n\tllGetExperienceDetails(${1:key experience_id})\\nsnippet llGetExperienceErrorMessage\\n\tllGetExperienceErrorMessage(${1:integer error})\\nsnippet llGetForce\\n\tllGetForce()\\nsnippet llGetFreeMemory\\n\tllGetFreeMemory()\\nsnippet llGetFreeURLs\\n\tllGetFreeURLs()\\nsnippet llGetGeometricCenter\\n\tllGetGeometricCenter()\\nsnippet llGetGMTclock\\n\tllGetGMTclock()\\nsnippet llGetHTTPHeader\\n\tllGetHTTPHeader(${1:key request_id}, ${2:string header})\\nsnippet llGetInventoryCreator\\n\tllGetInventoryCreator(${1:string item})\\nsnippet llGetInventoryKey\\n\tllGetInventoryKey(${1:string name})\\nsnippet llGetInventoryName\\n\tllGetInventoryName(${1:integer type}, ${2:integer number})\\nsnippet llGetInventoryNumber\\n\tllGetInventoryNumber(${1:integer type})\\nsnippet llGetInventoryPermMask\\n\tllGetInventoryPermMask(${1:string item}, ${2:integer mask})\\nsnippet llGetInventoryType\\n\tllGetInventoryType(${1:string name})\\nsnippet llGetKey\\n\tllGetKey()\\nsnippet llGetLandOwnerAt\\n\tllGetLandOwnerAt(${1:vector pos})\\nsnippet llGetLinkKey\\n\tllGetLinkKey(${1:integer link})\\nsnippet llGetLinkMedia\\n\tllGetLinkMedia(${1:integer link}, ${2:integer face}, ${3:list params})\\nsnippet llGetLinkName\\n\tllGetLinkName(${1:integer link})\\nsnippet llGetLinkNumber\\n\tllGetLinkNumber()\\nsnippet llGetLinkNumberOfSides\\n\tllGetLinkNumberOfSides(${1:integer link})\\nsnippet llGetLinkPrimitiveParams\\n\tllGetLinkPrimitiveParams(${1:integer link}, ${2:list params})\\nsnippet llGetListEntryType\\n\tllGetListEntryType(${1:list src}, ${2:integer index})\\nsnippet llGetListLength\\n\tllGetListLength(${1:list src})\\nsnippet llGetLocalPos\\n\tllGetLocalPos()\\nsnippet llGetLocalRot\\n\tllGetLocalRot()\\nsnippet llGetMass\\n\tllGetMass()\\nsnippet llGetMassMKS\\n\tllGetMassMKS()\\nsnippet llGetMaxScaleFactor\\n\tllGetMaxScaleFactor()\\nsnippet llGetMemoryLimit\\n\tllGetMemoryLimit()\\nsnippet llGetMinScaleFactor\\n\tllGetMinScaleFactor()\\nsnippet llGetNextEmail\\n\tllGetNextEmail(${1:string address}, ${2:string subject});\\n\t$0\\nsnippet llGetNotecardLine\\n\tllGetNotecardLine(${1:string name}, ${2:integer line})\\nsnippet llGetNumberOfNotecardLines\\n\tllGetNumberOfNotecardLines(${1:string name})\\nsnippet llGetNumberOfPrims\\n\tllGetNumberOfPrims()\\nsnippet llGetNumberOfSides\\n\tllGetNumberOfSides()\\nsnippet llGetObjectDesc\\n\tllGetObjectDesc()\\nsnippet llGetObjectDetails\\n\tllGetObjectDetails(${1:key id}, ${2:list params})\\nsnippet llGetObjectMass\\n\tllGetObjectMass(${1:key id})\\nsnippet llGetObjectName\\n\tllGetObjectName()\\nsnippet llGetObjectPermMask\\n\tllGetObjectPermMask(${1:integer mask})\\nsnippet llGetObjectPrimCount\\n\tllGetObjectPrimCount(${1:key prim})\\nsnippet llGetOmega\\n\tllGetOmega()\\nsnippet llGetOwner\\n\tllGetOwner()\\nsnippet llGetOwnerKey\\n\tllGetOwnerKey(${1:key id})\\nsnippet llGetParcelDetails\\n\tllGetParcelDetails(${1:vector pos}, ${2:list params})\\nsnippet llGetParcelFlags\\n\tllGetParcelFlags(${1:vector pos})\\nsnippet llGetParcelMaxPrims\\n\tllGetParcelMaxPrims(${1:vector pos}, ${2:integer sim_wide})\\nsnippet llGetParcelMusicURL\\n\tllGetParcelMusicURL()\\nsnippet llGetParcelPrimCount\\n\tllGetParcelPrimCount(${1:vector pos}, ${2:integer category}, ${3:integer sim_wide})\\nsnippet llGetParcelPrimOwners\\n\tllGetParcelPrimOwners(${1:vector pos})\\nsnippet llGetPermissions\\n\tllGetPermissions()\\nsnippet llGetPermissionsKey\\n\tllGetPermissionsKey()\\nsnippet llGetPhysicsMaterial\\n\tllGetPhysicsMaterial()\\nsnippet llGetPos\\n\tllGetPos()\\nsnippet llGetPrimitiveParams\\n\tllGetPrimitiveParams(${1:list params})\\nsnippet llGetPrimMediaParams\\n\tllGetPrimMediaParams(${1:integer face}, ${2:list params})\\nsnippet llGetRegionAgentCount\\n\tllGetRegionAgentCount()\\nsnippet llGetRegionCorner\\n\tllGetRegionCorner()\\nsnippet llGetRegionFlags\\n\tllGetRegionFlags()\\nsnippet llGetRegionFPS\\n\tllGetRegionFPS()\\nsnippet llGetRegionName\\n\tllGetRegionName()\\nsnippet llGetRegionTimeDilation\\n\tllGetRegionTimeDilation()\\nsnippet llGetRootPosition\\n\tllGetRootPosition()\\nsnippet llGetRootRotation\\n\tllGetRootRotation()\\nsnippet llGetRot\\n\tllGetRot()\\nsnippet llGetScale\\n\tllGetScale()\\nsnippet llGetScriptName\\n\tllGetScriptName()\\nsnippet llGetScriptState\\n\tllGetScriptState(${1:string script})\\nsnippet llGetSimStats\\n\tllGetSimStats(${1:integer stat_type})\\nsnippet llGetSimulatorHostname\\n\tllGetSimulatorHostname()\\nsnippet llGetSPMaxMemory\\n\tllGetSPMaxMemory()\\nsnippet llGetStartParameter\\n\tllGetStartParameter()\\nsnippet llGetStaticPath\\n\tllGetStaticPath(${1:vector start}, ${2:vector end}, ${3:float radius}, ${4:list params})\\nsnippet llGetStatus\\n\tllGetStatus(${1:integer status})\\nsnippet llGetSubString\\n\tllGetSubString(${1:string src}, ${2:integer start}, ${3:integer end})\\nsnippet llGetSunDirection\\n\tllGetSunDirection()\\nsnippet llGetTexture\\n\tllGetTexture(${1:integer face})\\nsnippet llGetTextureOffset\\n\tllGetTextureOffset(${1:integer face})\\nsnippet llGetTextureRot\\n\tllGetTextureRot(${1:integer face})\\nsnippet llGetTextureScale\\n\tllGetTextureScale(${1:integer face})\\nsnippet llGetTime\\n\tllGetTime()\\nsnippet llGetTimeOfDay\\n\tllGetTimeOfDay()\\nsnippet llGetTimestamp\\n\tllGetTimestamp()\\nsnippet llGetTorque\\n\tllGetTorque()\\nsnippet llGetUnixTime\\n\tllGetUnixTime()\\nsnippet llGetUsedMemory\\n\tllGetUsedMemory()\\nsnippet llGetUsername\\n\tllGetUsername(${1:key id})\\nsnippet llGetVel\\n\tllGetVel()\\nsnippet llGetWallclock\\n\tllGetWallclock()\\nsnippet llGiveInventory\\n\tllGiveInventory(${1:key destination}, ${2:string inventory});\\n\t$0\\nsnippet llGiveInventoryList\\n\tllGiveInventoryList(${1:key target}, ${2:string folder}, ${3:list inventory});\\n\t$0\\nsnippet llGiveMoney\\n\tllGiveMoney(${1:key destination}, ${2:integer amount})\\nsnippet llGround\\n\tllGround(${1:vector offset})\\nsnippet llGroundContour\\n\tllGroundContour(${1:vector offset})\\nsnippet llGroundNormal\\n\tllGroundNormal(${1:vector offset})\\nsnippet llGroundRepel\\n\tllGroundRepel(${1:float height}, ${2:integer water}, ${3:float tau});\\n\t$0\\nsnippet llGroundSlope\\n\tllGroundSlope(${1:vector offset})\\nsnippet llHTTPRequest\\n\tllHTTPRequest(${1:string url}, ${2:list parameters}, ${3:string body})\\nsnippet llHTTPResponse\\n\tllHTTPResponse(${1:key request_id}, ${2:integer status}, ${3:string body});\\n\t$0\\nsnippet llInsertString\\n\tllInsertString(${1:string dst}, ${2:integer pos}, ${3:string src})\\nsnippet llInstantMessage\\n\tllInstantMessage(${1:key user}, ${2:string message});\\n\t$0\\nsnippet llIntegerToBase64\\n\tllIntegerToBase64(${1:integer number})\\nsnippet llJson2List\\n\tllJson2List(${1:string json})\\nsnippet llJsonGetValue\\n\tllJsonGetValue(${1:string json}, ${2:list specifiers})\\nsnippet llJsonSetValue\\n\tllJsonSetValue(${1:string json}, ${2:list specifiers}, ${3:string newValue})\\nsnippet llJsonValueType\\n\tllJsonValueType(${1:string json}, ${2:list specifiers})\\nsnippet llKey2Name\\n\tllKey2Name(${1:key id})\\nsnippet llKeyCountKeyValue\\n\tllKeyCountKeyValue()\\nsnippet llKeysKeyValue\\n\tllKeysKeyValue(${1:integer first}, ${2:integer count})\\nsnippet llLinkParticleSystem\\n\tllLinkParticleSystem(${1:integer link}, ${2:list rules});\\n\t$0\\nsnippet llLinkSitTarget\\n\tllLinkSitTarget(${1:integer link}, ${2:vector offset}, ${3:rotation rot});\\n\t$0\\nsnippet llList2CSV\\n\tllList2CSV(${1:list src})\\nsnippet llList2Float\\n\tllList2Float(${1:list src}, ${2:integer index})\\nsnippet llList2Integer\\n\tllList2Integer(${1:list src}, ${2:integer index})\\nsnippet llList2Json\\n\tllList2Json(${1:string type}, ${2:list values})\\nsnippet llList2Key\\n\tllList2Key(${1:list src}, ${2:integer index})\\nsnippet llList2List\\n\tllList2List(${1:list src}, ${2:integer start}, ${3:integer end})\\nsnippet llList2ListStrided\\n\tllList2ListStrided(${1:list src}, ${2:integer start}, ${3:integer end}, ${4:integer stride})\\nsnippet llList2Rot\\n\tllList2Rot(${1:list src}, ${2:integer index})\\nsnippet llList2String\\n\tllList2String(${1:list src}, ${2:integer index})\\nsnippet llList2Vector\\n\tllList2Vector(${1:list src}, ${2:integer index})\\nsnippet llListen\\n\tllListen(${1:integer channel}, ${2:string name}, ${3:key id}, ${4:string msg})\\nsnippet llListenControl\\n\tllListenControl(${1:integer handle}, ${2:integer active});\\n\t$0\\nsnippet llListenRemove\\n\tllListenRemove(${1:integer handle});\\n\t$0\\nsnippet llListFindList\\n\tllListFindList(${1:list src}, ${2:list test})\\nsnippet llListInsertList\\n\tllListInsertList(${1:list dest}, ${2:list src}, ${3:integer start})\\nsnippet llListRandomize\\n\tllListRandomize(${1:list src}, ${2:integer stride})\\nsnippet llListReplaceList\\n\tllListReplaceList(${1:list dest}, ${2:list src}, ${3:integer start}, ${4:integer end})\\nsnippet llListSort\\n\tllListSort(${1:list src}, ${2:integer stride}, ${3:integer ascending})\\nsnippet llListStatistics\\n\tllListStatistics(${1:integer operation}, ${2:list src})\\nsnippet llLoadURL\\n\tllLoadURL(${1:key agent}, ${2:string message}, ${3:string url});\\n\t$0\\nsnippet llLog\\n\tllLog(${1:float val})\\nsnippet llLog10\\n\tllLog10(${1:float val})\\nsnippet llLookAt\\n\tllLookAt(${1:vector target}, ${2:float strength}, ${3:float damping});\\n\t$0\\nsnippet llLoopSound\\n\tllLoopSound(${1:string sound}, ${2:float volume});\\n\t$0\\nsnippet llLoopSoundMaster\\n\tllLoopSoundMaster(${1:string sound}, ${2:float volume});\\n\t$0\\nsnippet llLoopSoundSlave\\n\tllLoopSoundSlave(${1:string sound}, ${2:float volume});\\n\t$0\\nsnippet llManageEstateAccess\\n\tllManageEstateAccess(${1:integer action}, ${2:key agent})\\nsnippet llMapDestination\\n\tllMapDestination(${1:string simname}, ${2:vector pos}, ${3:vector look_at});\\n\t$0\\nsnippet llMD5String\\n\tllMD5String(${1:string src}, ${2:integer nonce})\\nsnippet llMessageLinked\\n\tllMessageLinked(${1:integer link}, ${2:integer num}, ${3:string str}, ${4:key id});\\n\t$0\\nsnippet llMinEventDelay\\n\tllMinEventDelay(${1:float delay});\\n\t$0\\nsnippet llModifyLand\\n\tllModifyLand(${1:integer action}, ${2:integer brush});\\n\t$0\\nsnippet llModPow\\n\tllModPow(${1:integer a}, ${2:integer b}, ${3:integer c})\\nsnippet llMoveToTarget\\n\tllMoveToTarget(${1:vector target}, ${2:float tau});\\n\t$0\\nsnippet llNavigateTo\\n\tllNavigateTo(${1:vector pos}, ${2:list options});\\n\t$0\\nsnippet llOffsetTexture\\n\tllOffsetTexture(${1:float u}, ${2:float v}, ${3:integer face});\\n\t$0\\nsnippet llOpenRemoteDataChannel\\n\tllOpenRemoteDataChannel();\\n\t$0\\nsnippet llOverMyLand\\n\tllOverMyLand(${1:key id})\\nsnippet llOwnerSay\\n\tllOwnerSay(${1:string msg});\\n\t$0\\nsnippet llParcelMediaCommandList\\n\tllParcelMediaCommandList(${1:list commandList});\\n\t$0\\nsnippet llParcelMediaQuery\\n\tllParcelMediaQuery(${1:list query})\\nsnippet llParseString2List\\n\tllParseString2List(${1:string src}, ${2:list separators}, ${3:list spacers})\\nsnippet llParseStringKeepNulls\\n\tllParseStringKeepNulls(${1:string src}, ${2:list separators}, ${3:list spacers})\\nsnippet llParticleSystem\\n\tllParticleSystem(${1:list rules});\\n\t$0\\nsnippet llPassCollisions\\n\tllPassCollisions(${1:integer pass});\\n\t$0\\nsnippet llPassTouches\\n\tllPassTouches(${1:integer pass});\\n\t$0\\nsnippet llPatrolPoints\\n\tllPatrolPoints(${1:list patrolPoints}, ${2:list options});\\n\t$0\\nsnippet llPlaySound\\n\tllPlaySound(${1:string sound}, ${2:float volume});\\n\t$0\\nsnippet llPlaySoundSlave\\n\tllPlaySoundSlave(${1:string sound}, ${2:float volume});\\n\t$0\\nsnippet llPow\\n\tllPow(${1:float base}, ${2:float exponent})\\nsnippet llPreloadSound\\n\tllPreloadSound(${1:string sound});\\n\t$0\\nsnippet llPursue\\n\tllPursue(${1:key target}, ${2:list options});\\n\t$0\\nsnippet llPushObject\\n\tllPushObject(${1:key target}, ${2:vector impulse}, ${3:vector ang_impulse}, ${4:integer local});\\n\t$0\\nsnippet llReadKeyValue\\n\tllReadKeyValue(${1:string k})\\nsnippet llRegionSay\\n\tllRegionSay(${1:integer channel}, ${2:string msg});\\n\t$0\\nsnippet llRegionSayTo\\n\tllRegionSayTo(${1:key target}, ${2:integer channel}, ${3:string msg});\\n\t$0\\nsnippet llReleaseControls\\n\tllReleaseControls();\\n\t$0\\nsnippet llReleaseURL\\n\tllReleaseURL(${1:string url});\\n\t$0\\nsnippet llRemoteDataReply\\n\tllRemoteDataReply(${1:key channel}, ${2:key message_id}, ${3:string sdata}, ${4:integer idata});\\n\t$0\\nsnippet llRemoteLoadScriptPin\\n\tllRemoteLoadScriptPin(${1:key target}, ${2:string name}, ${3:integer pin}, ${4:integer running}, ${5:integer start_param});\\n\t$0\\nsnippet llRemoveFromLandBanList\\n\tllRemoveFromLandBanList(${1:key agent});\\n\t$0\\nsnippet llRemoveFromLandPassList\\n\tllRemoveFromLandPassList(${1:key agent});\\n\t$0\\nsnippet llRemoveInventory\\n\tllRemoveInventory(${1:string item});\\n\t$0\\nsnippet llRemoveVehicleFlags\\n\tllRemoveVehicleFlags(${1:integer flags});\\n\t$0\\nsnippet llRequestAgentData\\n\tllRequestAgentData(${1:key id}, ${2:integer data})\\nsnippet llRequestDisplayName\\n\tllRequestDisplayName(${1:key id})\\nsnippet llRequestExperiencePermissions\\n\tllRequestExperiencePermissions(${1:key agent}, ${2:string name})\\nsnippet llRequestInventoryData\\n\tllRequestInventoryData(${1:string name})\\nsnippet llRequestPermissions\\n\tllRequestPermissions(${1:key agent}, ${2:integer permissions})\\nsnippet llRequestSecureURL\\n\tllRequestSecureURL()\\nsnippet llRequestSimulatorData\\n\tllRequestSimulatorData(${1:string region}, ${2:integer data})\\nsnippet llRequestURL\\n\tllRequestURL()\\nsnippet llRequestUsername\\n\tllRequestUsername(${1:key id})\\nsnippet llResetAnimationOverride\\n\tllResetAnimationOverride(${1:string anim_state});\\n\t$0\\nsnippet llResetLandBanList\\n\tllResetLandBanList();\\n\t$0\\nsnippet llResetLandPassList\\n\tllResetLandPassList();\\n\t$0\\nsnippet llResetOtherScript\\n\tllResetOtherScript(${1:string name});\\n\t$0\\nsnippet llResetScript\\n\tllResetScript();\\n\t$0\\nsnippet llResetTime\\n\tllResetTime();\\n\t$0\\nsnippet llReturnObjectsByID\\n\tllReturnObjectsByID(${1:list objects})\\nsnippet llReturnObjectsByOwner\\n\tllReturnObjectsByOwner(${1:key owner}, ${2:integer scope})\\nsnippet llRezAtRoot\\n\tllRezAtRoot(${1:string inventory}, ${2:vector position}, ${3:vector velocity}, ${4:rotation rot}, ${5:integer param});\\n\t$0\\nsnippet llRezObject\\n\tllRezObject(${1:string inventory}, ${2:vector pos}, ${3:vector vel}, ${4:rotation rot}, ${5:integer param});\\n\t$0\\nsnippet llRot2Angle\\n\tllRot2Angle(${1:rotation rot})\\nsnippet llRot2Axis\\n\tllRot2Axis(${1:rotation rot})\\nsnippet llRot2Euler\\n\tllRot2Euler(${1:rotation quat})\\nsnippet llRot2Fwd\\n\tllRot2Fwd(${1:rotation q})\\nsnippet llRot2Left\\n\tllRot2Left(${1:rotation q})\\nsnippet llRot2Up\\n\tllRot2Up(${1:rotation q})\\nsnippet llRotateTexture\\n\tllRotateTexture(${1:float angle}, ${2:integer face});\\n\t$0\\nsnippet llRotBetween\\n\tllRotBetween(${1:vector start}, ${2:vector end})\\nsnippet llRotLookAt\\n\tllRotLookAt(${1:rotation target_direction}, ${2:float strength}, ${3:float damping});\\n\t$0\\nsnippet llRotTarget\\n\tllRotTarget(${1:rotation rot}, ${2:float error})\\nsnippet llRotTargetRemove\\n\tllRotTargetRemove(${1:integer handle});\\n\t$0\\nsnippet llRound\\n\tllRound(${1:float val})\\nsnippet llSameGroup\\n\tllSameGroup(${1:key group})\\nsnippet llSay\\n\tllSay(${1:integer channel}, ${2:string msg});\\n\t$0\\nsnippet llScaleByFactor\\n\tllScaleByFactor(${1:float scaling_factor})\\nsnippet llScaleTexture\\n\tllScaleTexture(${1:float u}, ${2:float v}, ${3:integer face});\\n\t$0\\nsnippet llScriptDanger\\n\tllScriptDanger(${1:vector pos})\\nsnippet llScriptProfiler\\n\tllScriptProfiler(${1:integer flags});\\n\t$0\\nsnippet llSendRemoteData\\n\tllSendRemoteData(${1:key channel}, ${2:string dest}, ${3:integer idata}, ${4:string sdata})\\nsnippet llSensor\\n\tllSensor(${1:string name}, ${2:key id}, ${3:integer type}, ${4:float range}, ${5:float arc});\\n\t$0\\nsnippet llSensorRepeat\\n\tllSensorRepeat(${1:string name}, ${2:key id}, ${3:integer type}, ${4:float range}, ${5:float arc}, ${6:float rate});\\n\t$0\\nsnippet llSetAlpha\\n\tllSetAlpha(${1:float alpha}, ${2:integer face});\\n\t$0\\nsnippet llSetAngularVelocity\\n\tllSetAngularVelocity(${1:vector force}, ${2:integer local});\\n\t$0\\nsnippet llSetAnimationOverride\\n\tllSetAnimationOverride(${1:string anim_state}, ${2:string anim})\\nsnippet llSetBuoyancy\\n\tllSetBuoyancy(${1:float buoyancy});\\n\t$0\\nsnippet llSetCameraAtOffset\\n\tllSetCameraAtOffset(${1:vector offset});\\n\t$0\\nsnippet llSetCameraEyeOffset\\n\tllSetCameraEyeOffset(${1:vector offset});\\n\t$0\\nsnippet llSetCameraParams\\n\tllSetCameraParams(${1:list rules});\\n\t$0\\nsnippet llSetClickAction\\n\tllSetClickAction(${1:integer action});\\n\t$0\\nsnippet llSetColor\\n\tllSetColor(${1:vector color}, ${2:integer face});\\n\t$0\\nsnippet llSetContentType\\n\tllSetContentType(${1:key request_id}, ${2:integer content_type});\\n\t$0\\nsnippet llSetDamage\\n\tllSetDamage(${1:float damage});\\n\t$0\\nsnippet llSetForce\\n\tllSetForce(${1:vector force}, ${2:integer local});\\n\t$0\\nsnippet llSetForceAndTorque\\n\tllSetForceAndTorque(${1:vector force}, ${2:vector torque}, ${3:integer local});\\n\t$0\\nsnippet llSetHoverHeight\\n\tllSetHoverHeight(${1:float height}, ${2:integer water}, ${3:float tau});\\n\t$0\\nsnippet llSetKeyframedMotion\\n\tllSetKeyframedMotion(${1:list keyframes}, ${2:list options});\\n\t$0\\nsnippet llSetLinkAlpha\\n\tllSetLinkAlpha(${1:integer link}, ${2:float alpha}, ${3:integer face});\\n\t$0\\nsnippet llSetLinkCamera\\n\tllSetLinkCamera(${1:integer link}, ${2:vector eye}, ${3:vector at});\\n\t$0\\nsnippet llSetLinkColor\\n\tllSetLinkColor(${1:integer link}, ${2:vector color}, ${3:integer face});\\n\t$0\\nsnippet llSetLinkMedia\\n\tllSetLinkMedia(${1:integer link}, ${2:integer face}, ${3:list params});\\n\t$0\\nsnippet llSetLinkPrimitiveParams\\n\tllSetLinkPrimitiveParams(${1:integer link}, ${2:list rules});\\n\t$0\\nsnippet llSetLinkPrimitiveParamsFast\\n\tllSetLinkPrimitiveParamsFast(${1:integer link}, ${2:list rules});\\n\t$0\\nsnippet llSetLinkTexture\\n\tllSetLinkTexture(${1:integer link}, ${2:string texture}, ${3:integer face});\\n\t$0\\nsnippet llSetLinkTextureAnim\\n\tllSetLinkTextureAnim(${1:integer link}, ${2:integer mode}, ${3:integer face}, ${4:integer sizex}, ${5:integer sizey}, ${6:float start}, ${7:float length}, ${8:float rate});\\n\t$0\\nsnippet llSetLocalRot\\n\tllSetLocalRot(${1:rotation rot});\\n\t$0\\nsnippet llSetMemoryLimit\\n\tllSetMemoryLimit(${1:integer limit})\\nsnippet llSetObjectDesc\\n\tllSetObjectDesc(${1:string description});\\n\t$0\\nsnippet llSetObjectName\\n\tllSetObjectName(${1:string name});\\n\t$0\\nsnippet llSetParcelMusicURL\\n\tllSetParcelMusicURL(${1:string url});\\n\t$0\\nsnippet llSetPayPrice\\n\tllSetPayPrice(${1:integer price}, [${2:integer price_button_a}, ${3:integer price_button_b}, ${4:integer price_button_c}, ${5:integer price_button_d}]);\\n\t$0\\nsnippet llSetPhysicsMaterial\\n\tllSetPhysicsMaterial(${1:integer mask}, ${2:float gravity_multiplier}, ${3:float restitution}, ${4:float friction}, ${5:float density});\\n\t$0\\nsnippet llSetPos\\n\tllSetPos(${1:vector pos});\\n\t$0\\nsnippet llSetPrimitiveParams\\n\tllSetPrimitiveParams(${1:list rules});\\n\t$0\\nsnippet llSetPrimMediaParams\\n\tllSetPrimMediaParams(${1:integer face}, ${2:list params});\\n\t$0\\nsnippet llSetRegionPos\\n\tllSetRegionPos(${1:vector position})\\nsnippet llSetRemoteScriptAccessPin\\n\tllSetRemoteScriptAccessPin(${1:integer pin});\\n\t$0\\nsnippet llSetRot\\n\tllSetRot(${1:rotation rot});\\n\t$0\\nsnippet llSetScale\\n\tllSetScale(${1:vector size});\\n\t$0\\nsnippet llSetScriptState\\n\tllSetScriptState(${1:string name}, ${2:integer run});\\n\t$0\\nsnippet llSetSitText\\n\tllSetSitText(${1:string text});\\n\t$0\\nsnippet llSetSoundQueueing\\n\tllSetSoundQueueing(${1:integer queue});\\n\t$0\\nsnippet llSetSoundRadius\\n\tllSetSoundRadius(${1:float radius});\\n\t$0\\nsnippet llSetStatus\\n\tllSetStatus(${1:integer status}, ${2:integer value});\\n\t$0\\nsnippet llSetText\\n\tllSetText(${1:string text}, ${2:vector color}, ${3:float alpha});\\n\t$0\\nsnippet llSetTexture\\n\tllSetTexture(${1:string texture}, ${2:integer face});\\n\t$0\\nsnippet llSetTextureAnim\\n\tllSetTextureAnim(${1:integer mode}, ${2:integer face}, ${3:integer sizex}, ${4:integer sizey}, ${5:float start}, ${6:float length}, ${7:float rate});\\n\t$0\\nsnippet llSetTimerEvent\\n\tllSetTimerEvent(${1:float sec});\\n\t$0\\nsnippet llSetTorque\\n\tllSetTorque(${1:vector torque}, ${2:integer local});\\n\t$0\\nsnippet llSetTouchText\\n\tllSetTouchText(${1:string text});\\n\t$0\\nsnippet llSetVehicleFlags\\n\tllSetVehicleFlags(${1:integer flags});\\n\t$0\\nsnippet llSetVehicleFloatParam\\n\tllSetVehicleFloatParam(${1:integer param}, ${2:float value});\\n\t$0\\nsnippet llSetVehicleRotationParam\\n\tllSetVehicleRotationParam(${1:integer param}, ${2:rotation rot});\\n\t$0\\nsnippet llSetVehicleType\\n\tllSetVehicleType(${1:integer type});\\n\t$0\\nsnippet llSetVehicleVectorParam\\n\tllSetVehicleVectorParam(${1:integer param}, ${2:vector vec});\\n\t$0\\nsnippet llSetVelocity\\n\tllSetVelocity(${1:vector force}, ${2:integer local});\\n\t$0\\nsnippet llSHA1String\\n\tllSHA1String(${1:string src})\\nsnippet llShout\\n\tllShout(${1:integer channel}, ${2:string msg});\\n\t$0\\nsnippet llSin\\n\tllSin(${1:float theta})\\nsnippet llSitTarget\\n\tllSitTarget(${1:vector offset}, ${2:rotation rot});\\n\t$0\\nsnippet llSleep\\n\tllSleep(${1:float sec});\\n\t$0\\nsnippet llSqrt\\n\tllSqrt(${1:float val})\\nsnippet llStartAnimation\\n\tllStartAnimation(${1:string anim});\\n\t$0\\nsnippet llStopAnimation\\n\tllStopAnimation(${1:string anim});\\n\t$0\\nsnippet llStopHover\\n\tllStopHover();\\n\t$0\\nsnippet llStopLookAt\\n\tllStopLookAt();\\n\t$0\\nsnippet llStopMoveToTarget\\n\tllStopMoveToTarget();\\n\t$0\\nsnippet llStopSound\\n\tllStopSound();\\n\t$0\\nsnippet llStringLength\\n\tllStringLength(${1:string str})\\nsnippet llStringToBase64\\n\tllStringToBase64(${1:string str})\\nsnippet llStringTrim\\n\tllStringTrim(${1:string src}, ${2:integer type})\\nsnippet llSubStringIndex\\n\tllSubStringIndex(${1:string source}, ${2:string pattern})\\nsnippet llTakeControls\\n\tllTakeControls(${1:integer controls}, ${2:integer accept}, ${3:integer pass_on});\\n\t$0\\nsnippet llTan\\n\tllTan(${1:float theta})\\nsnippet llTarget\\n\tllTarget(${1:vector position}, ${2:float range})\\nsnippet llTargetOmega\\n\tllTargetOmega(${1:vector axis}, ${2:float spinrate}, ${3:float gain});\\n\t$0\\nsnippet llTargetRemove\\n\tllTargetRemove(${1:integer handle});\\n\t$0\\nsnippet llTeleportAgent\\n\tllTeleportAgent(${1:key agent}, ${2:string landmark}, ${3:vector position}, ${4:vector look_at});\\n\t$0\\nsnippet llTeleportAgentGlobalCoords\\n\tllTeleportAgentGlobalCoords(${1:key agent}, ${2:vector global_coordinates}, ${3:vector region_coordinates}, ${4:vector look_at});\\n\t$0\\nsnippet llTeleportAgentHome\\n\tllTeleportAgentHome(${1:key agent});\\n\t$0\\nsnippet llTextBox\\n\tllTextBox(${1:key agent}, ${2:string message}, ${3:integer channel});\\n\t$0\\nsnippet llToLower\\n\tllToLower(${1:string src})\\nsnippet llToUpper\\n\tllToUpper(${1:string src})\\nsnippet llTransferLindenDollars\\n\tllTransferLindenDollars(${1:key destination}, ${2:integer amount})\\nsnippet llTriggerSound\\n\tllTriggerSound(${1:string sound}, ${2:float volume});\\n\t$0\\nsnippet llTriggerSoundLimited\\n\tllTriggerSoundLimited(${1:string sound}, ${2:float volume}, ${3:vector top_north_east}, ${4:vector bottom_south_west});\\n\t$0\\nsnippet llUnescapeURL\\n\tllUnescapeURL(${1:string url})\\nsnippet llUnSit\\n\tllUnSit(${1:key id});\\n\t$0\\nsnippet llUpdateCharacter\\n\tllUpdateCharacter(${1:list options})\\nsnippet llUpdateKeyValue\\n\tllUpdateKeyValue(${1:string k}, ${2:string v}, ${3:integer checked}, ${4:string ov})\\nsnippet llVecDist\\n\tllVecDist(${1:vector vec_a}, ${2:vector vec_b})\\nsnippet llVecMag\\n\tllVecMag(${1:vector vec})\\nsnippet llVecNorm\\n\tllVecNorm(${1:vector vec})\\nsnippet llVolumeDetect\\n\tllVolumeDetect(${1:integer detect});\\n\t$0\\nsnippet llWanderWithin\\n\tllWanderWithin(${1:vector origin}, ${2:vector dist}, ${3:list options});\\n\t$0\\nsnippet llWater\\n\tllWater(${1:vector offset});\\n\t$0\\nsnippet llWhisper\\n\tllWhisper(${1:integer channel}, ${2:string msg});\\n\t$0\\nsnippet llWind\\n\tllWind(${1:vector offset});\\n\t$0\\nsnippet llXorBase64\\n\tllXorBase64(${1:string str1}, ${2:string str2})\\nsnippet money\\n\tmoney(${1:key id}, ${2:integer amount})\\n\t{\\n\t\t$0\\n\t}\\nsnippet object_rez\\n\tobject_rez(${1:key id})\\n\t{\\n\t\t$0\\n\t}\\nsnippet on_rez\\n\ton_rez(${1:integer start_param})\\n\t{\\n\t\t$0\\n\t}\\nsnippet path_update\\n\tpath_update(${1:integer type}, ${2:list reserved})\\n\t{\\n\t\t$0\\n\t}\\nsnippet remote_data\\n\tremote_data(${1:integer event_type}, ${2:key channel}, ${3:key message_id}, ${4:string sender}, ${5:integer idata}, ${6:string sdata})\\n\t{\\n\t\t$0\\n\t}\\nsnippet run_time_permissions\\n\trun_time_permissions(${1:integer perm})\\n\t{\\n\t\t$0\\n\t}\\nsnippet sensor\\n\tsensor(${1:integer index})\\n\t{\\n\t\t$0\\n\t}\\nsnippet state\\n\tstate ${1:name}\\nsnippet touch\\n\ttouch(${1:integer index})\\n\t{\\n\t\t$0\\n\t}\\nsnippet touch_end\\n\ttouch_end(${1:integer index})\\n\t{\\n\t\t$0\\n\t}\\nsnippet touch_start\\n\ttouch_start(${1:integer index})\\n\t{\\n\t\t$0\\n\t}\\nsnippet transaction_result\\n\ttransaction_result(${1:key id}, ${2:integer success}, ${3:string data})\\n\t{\\n\t\t$0\\n\t}\\nsnippet while\\n\twhile (${1:condition})\\n\t{\\n\t\t$0\\n\t}\\n\",t.scope=\"lsl\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/lua.js",
    "content": "ace.define(\"ace/snippets/lua\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"snippet #!\\n\t#!/usr/bin/env lua\\n\t$1\\nsnippet local\\n\tlocal ${1:x} = ${2:1}\\nsnippet fun\\n\tfunction ${1:fname}(${2:...})\\n\t\t${3:-- body}\\n\tend\\nsnippet for\\n\tfor ${1:i}=${2:1},${3:10} do\\n\t\t${4:print(i)}\\n\tend\\nsnippet forp\\n\tfor ${1:i},${2:v} in pairs(${3:table_name}) do\\n\t   ${4:-- body}\\n\tend\\nsnippet fori\\n\tfor ${1:i},${2:v} in ipairs(${3:table_name}) do\\n\t   ${4:-- body}\\n\tend\\n\",t.scope=\"lua\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/luapage.js",
    "content": "ace.define(\"ace/snippets/luapage\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"luapage\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/lucene.js",
    "content": "ace.define(\"ace/snippets/lucene\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"lucene\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/makefile.js",
    "content": "ace.define(\"ace/snippets/makefile\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"snippet ifeq\\n\tifeq (${1:cond0},${2:cond1})\\n\t\t${3:code}\\n\tendif\\n\",t.scope=\"makefile\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/markdown.js",
    "content": "ace.define(\"ace/snippets/markdown\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='# Markdown\\n\\n# Includes octopress (http://octopress.org/) snippets\\n\\nsnippet [\\n\t[${1:text}](http://${2:address} \"${3:title}\")\\nsnippet [*\\n\t[${1:link}](${2:`@*`} \"${3:title}\")${4}\\n\\nsnippet [:\\n\t[${1:id}]: http://${2:url} \"${3:title}\"\\nsnippet [:*\\n\t[${1:id}]: ${2:`@*`} \"${3:title}\"\\n\\nsnippet ![\\n\t![${1:alttext}](${2:/images/image.jpg} \"${3:title}\")\\nsnippet ![*\\n\t![${1:alt}](${2:`@*`} \"${3:title}\")${4}\\n\\nsnippet ![:\\n\t![${1:id}]: ${2:url} \"${3:title}\"\\nsnippet ![:*\\n\t![${1:id}]: ${2:`@*`} \"${3:title}\"\\n\\nsnippet ===\\nregex /^/=+/=*//\\n\t${PREV_LINE/./=/g}\\n\t\\n\t${0}\\nsnippet ---\\nregex /^/-+/-*//\\n\t${PREV_LINE/./-/g}\\n\t\\n\t${0}\\nsnippet blockquote\\n\t{% blockquote %}\\n\t${1:quote}\\n\t{% endblockquote %}\\n\\nsnippet blockquote-author\\n\t{% blockquote ${1:author}, ${2:title} %}\\n\t${3:quote}\\n\t{% endblockquote %}\\n\\nsnippet blockquote-link\\n\t{% blockquote ${1:author} ${2:URL} ${3:link_text} %}\\n\t${4:quote}\\n\t{% endblockquote %}\\n\\nsnippet bt-codeblock-short\\n\t```\\n\t${1:code_snippet}\\n\t```\\n\\nsnippet bt-codeblock-full\\n\t``` ${1:language} ${2:title} ${3:URL} ${4:link_text}\\n\t${5:code_snippet}\\n\t```\\n\\nsnippet codeblock-short\\n\t{% codeblock %}\\n\t${1:code_snippet}\\n\t{% endcodeblock %}\\n\\nsnippet codeblock-full\\n\t{% codeblock ${1:title} lang:${2:language} ${3:URL} ${4:link_text} %}\\n\t${5:code_snippet}\\n\t{% endcodeblock %}\\n\\nsnippet gist-full\\n\t{% gist ${1:gist_id} ${2:filename} %}\\n\\nsnippet gist-short\\n\t{% gist ${1:gist_id} %}\\n\\nsnippet img\\n\t{% img ${1:class} ${2:URL} ${3:width} ${4:height} ${5:title_text} ${6:alt_text} %}\\n\\nsnippet youtube\\n\t{% youtube ${1:video_id} %}\\n\\n# The quote should appear only once in the text. It is inherently part of it.\\n# See http://octopress.org/docs/plugins/pullquote/ for more info.\\n\\nsnippet pullquote\\n\t{% pullquote %}\\n\t${1:text} {\" ${2:quote} \"} ${3:text}\\n\t{% endpullquote %}\\n',t.scope=\"markdown\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/mask.js",
    "content": "ace.define(\"ace/snippets/mask\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"mask\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/matlab.js",
    "content": "ace.define(\"ace/snippets/matlab\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"matlab\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/maze.js",
    "content": "ace.define(\"ace/snippets/maze\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"snippet >\\ndescription assignment\\nscope maze\\n\t-> ${1}= ${2}\\n\\nsnippet >\\ndescription if\\nscope maze\\n\t-> IF ${2:**} THEN %${3:L} ELSE %${4:R}\\n\",t.scope=\"maze\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/mel.js",
    "content": "ace.define(\"ace/snippets/mel\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"mel\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/mips_assembler.js",
    "content": "ace.define(\"ace/snippets/mips_assembler\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"mips_assembler\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/mipsassembler.js",
    "content": "ace.define(\"ace/snippets/mipsassembler\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/mushcode.js",
    "content": "ace.define(\"ace/snippets/mushcode\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"mushcode\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/mysql.js",
    "content": "ace.define(\"ace/snippets/mysql\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"mysql\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/nix.js",
    "content": "ace.define(\"ace/snippets/nix\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"nix\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/nsis.js",
    "content": "ace.define(\"ace/snippets/nsis\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/objectivec.js",
    "content": "ace.define(\"ace/snippets/objectivec\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"objectivec\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/ocaml.js",
    "content": "ace.define(\"ace/snippets/ocaml\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"ocaml\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/pascal.js",
    "content": "ace.define(\"ace/snippets/pascal\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"pascal\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/perl.js",
    "content": "ace.define(\"ace/snippets/perl\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"# #!/usr/bin/perl\\nsnippet #!\\n\t#!/usr/bin/env perl\\n\\n# Hash Pointer\\nsnippet .\\n\t =>\\n# Function\\nsnippet sub\\n\tsub ${1:function_name} {\\n\t\t${2:#body ...}\\n\t}\\n# Conditional\\nsnippet if\\n\tif (${1}) {\\n\t\t${2:# body...}\\n\t}\\n# Conditional if..else\\nsnippet ife\\n\tif (${1}) {\\n\t\t${2:# body...}\\n\t}\\n\telse {\\n\t\t${3:# else...}\\n\t}\\n# Conditional if..elsif..else\\nsnippet ifee\\n\tif (${1}) {\\n\t\t${2:# body...}\\n\t}\\n\telsif (${3}) {\\n\t\t${4:# elsif...}\\n\t}\\n\telse {\\n\t\t${5:# else...}\\n\t}\\n# Conditional One-line\\nsnippet xif\\n\t${1:expression} if ${2:condition};${3}\\n# Unless conditional\\nsnippet unless\\n\tunless (${1}) {\\n\t\t${2:# body...}\\n\t}\\n# Unless conditional One-line\\nsnippet xunless\\n\t${1:expression} unless ${2:condition};${3}\\n# Try/Except\\nsnippet eval\\n\tlocal $@;\\n\teval {\\n\t\t${1:# do something risky...}\\n\t};\\n\tif (my $e = $@) {\\n\t\t${2:# handle failure...}\\n\t}\\n# While Loop\\nsnippet wh\\n\twhile (${1}) {\\n\t\t${2:# body...}\\n\t}\\n# While Loop One-line\\nsnippet xwh\\n\t${1:expression} while ${2:condition};${3}\\n# C-style For Loop\\nsnippet cfor\\n\tfor (my $${2:var} = 0; $$2 < ${1:count}; $$2${3:++}) {\\n\t\t${4:# body...}\\n\t}\\n# For loop one-line\\nsnippet xfor\\n\t${1:expression} for @${2:array};${3}\\n# Foreach Loop\\nsnippet for\\n\tforeach my $${1:x} (@${2:array}) {\\n\t\t${3:# body...}\\n\t}\\n# Foreach Loop One-line\\nsnippet fore\\n\t${1:expression} foreach @${2:array};${3}\\n# Package\\nsnippet package\\n\tpackage ${1:`substitute(Filename('', 'Page Title'), '^.', '\\\\u&', '')`};\\n\\n\t${2}\\n\\n\t1;\\n\\n\t__END__\\n# Package syntax perl >= 5.14\\nsnippet packagev514\\n\tpackage ${1:`substitute(Filename('', 'Page Title'), '^.', '\\\\u&', '')`} ${2:0.99};\\n\\n\t${3}\\n\\n\t1;\\n\\n\t__END__\\n#moose\\nsnippet moose\\n\tuse Moose;\\n\tuse namespace::autoclean;\\n\t${1:#}BEGIN {extends '${2:ParentClass}'};\\n\\n\t${3}\\n# parent\\nsnippet parent\\n\tuse parent qw(${1:Parent Class});\\n# Read File\\nsnippet slurp\\n\tmy $${1:var} = do { local $/; open my $file, '<', \\\"${2:file}\\\"; <$file> };\\n\t${3}\\n# strict warnings\\nsnippet strwar\\n\tuse strict;\\n\tuse warnings;\\n# older versioning with perlcritic bypass\\nsnippet vers\\n\t## no critic\\n\tour $VERSION = '${1:version}';\\n\teval $VERSION;\\n\t## use critic\\n# new 'switch' like feature\\nsnippet switch\\n\tuse feature 'switch';\\n\\n# Anonymous subroutine\\nsnippet asub\\n\tsub {\\n\t \t${1:# body }\\n\t}\\n\\n\\n\\n# Begin block\\nsnippet begin\\n\tBEGIN {\\n\t\t${1:# begin body}\\n\t}\\n\\n# call package function with some parameter\\nsnippet pkgmv\\n\t__PACKAGE__->${1:package_method}(${2:var})\\n\\n# call package function without a parameter\\nsnippet pkgm\\n\t__PACKAGE__->${1:package_method}()\\n\\n# call package \\\"get_\\\" function without a parameter\\nsnippet pkget\\n\t__PACKAGE__->get_${1:package_method}()\\n\\n# call package function with a parameter\\nsnippet pkgetv\\n\t__PACKAGE__->get_${1:package_method}(${2:var})\\n\\n# complex regex\\nsnippet qrx\\n\tqr/\\n\t     ${1:regex}\\n\t/xms\\n\\n#simpler regex\\nsnippet qr/\\n\tqr/${1:regex}/x\\n\\n#given\\nsnippet given\\n\tgiven ($${1:var}) {\\n\t\t${2:# cases}\\n\t\t${3:# default}\\n\t}\\n\\n# switch-like case\\nsnippet when\\n\twhen (${1:case}) {\\n\t\t${2:# body}\\n\t}\\n\\n# hash slice\\nsnippet hslice\\n\t@{ ${1:hash}  }{ ${2:array} }\\n\\n\\n# map\\nsnippet map\\n\tmap {  ${2: body }    }  ${1: @array } ;\\n\\n\\n\\n# Pod stub\\nsnippet ppod\\n\t=head1 NAME\\n\\n\t${1:ClassName} - ${2:ShortDesc}\\n\\n\t=head1 SYNOPSIS\\n\\n\t  use $1;\\n\\n\t  ${3:# synopsis...}\\n\\n\t=head1 DESCRIPTION\\n\\n\t${4:# longer description...}\\n\\n\\n\t=head1 INTERFACE\\n\\n\\n\t=head1 DEPENDENCIES\\n\\n\\n\t=head1 SEE ALSO\\n\\n\\n# Heading for a subroutine stub\\nsnippet psub\\n\t=head2 ${1:MethodName}\\n\\n\t${2:Summary....}\\n\\n# Heading for inline subroutine pod\\nsnippet psubi\\n\t=head2 ${1:MethodName}\\n\\n\t${2:Summary...}\\n\\n\\n\t=cut\\n# inline documented subroutine\\nsnippet subpod\\n\t=head2 $1\\n\\n\tSummary of $1\\n\\n\t=cut\\n\\n\tsub ${1:subroutine_name} {\\n\t\t${2:# body...}\\n\t}\\n# Subroutine signature\\nsnippet parg\\n\t=over 2\\n\\n\t=item\\n\tArguments\\n\\n\\n\t=over 3\\n\\n\t=item\\n\tC<${1:DataStructure}>\\n\\n\t  ${2:Sample}\\n\\n\\n\t=back\\n\\n\\n\t=item\\n\tReturn\\n\\n\t=over 3\\n\\n\\n\t=item\\n\tC<${3:...return data}>\\n\\n\\n\t=back\\n\\n\\n\t=back\\n\\n\\n\\n# Moose has\\nsnippet has\\n\thas ${1:attribute} => (\\n\t\tis\t    => '${2:ro|rw}',\\n\t\tisa \t=> '${3:Str|Int|HashRef|ArrayRef|etc}',\\n\t\tdefault => sub {\\n\t\t\t${4:defaultvalue}\\n\t\t},\\n\t\t${5:# other attributes}\\n\t);\\n\\n\\n# override\\nsnippet override\\n\toverride ${1:attribute} => sub {\\n\t\t${2:# my $self = shift;};\\n\t\t${3:# my ($self, $args) = @_;};\\n\t};\\n\\n\\n# use test classes\\nsnippet tuse\\n\tuse Test::More;\\n\tuse Test::Deep; # (); # uncomment to stop prototype errors\\n\tuse Test::Exception;\\n\\n# local test lib\\nsnippet tlib\\n\tuse lib qw{ ./t/lib };\\n\\n#test methods\\nsnippet tmeths\\n\t$ENV{TEST_METHOD} = '${1:regex}';\\n\\n# runtestclass\\nsnippet trunner\\n\tuse ${1:test_class};\\n\t$1->runtests();\\n\\n# Test::Class-style test\\nsnippet tsub\\n\tsub t${1:number}_${2:test_case} :Test(${3:num_of_tests}) {\\n\t\tmy $self = shift;\\n\t\t${4:#  body}\\n\\n\t}\\n\\n# Test::Routine-style test\\nsnippet trsub\\n\ttest ${1:test_name} => { description => '${2:Description of test.}'} => sub {\\n\t\tmy ($self) = @_;\\n\t\t${3:# test code}\\n\t};\\n\\n#prep test method\\nsnippet tprep\\n\tsub prep${1:number}_${2:test_case} :Test(startup) {\\n\t\tmy $self = shift;\\n\t\t${4:#  body}\\n\t}\\n\\n# cause failures to print stack trace\\nsnippet debug_trace\\n\tuse Carp; # 'verbose';\\n\t# cloak \\\"die\\\"\\n\t# warn \\\"warning\\\"\\n\t$SIG{'__DIE__'} = sub {\\n\t\trequire Carp; Carp::confess\\n\t};\\n\\n\",t.scope=\"perl\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/pgsql.js",
    "content": "ace.define(\"ace/snippets/pgsql\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"pgsql\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/php.js",
    "content": "ace.define(\"ace/snippets/php\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"snippet <?\\n\t<?php\\n\\n\t${1}\\nsnippet ec\\n\techo ${1};\\nsnippet <?e\\n\t<?php echo ${1} ?>\\n# this one is for php5.4\\nsnippet <?=\\n\t<?=${1}?>\\nsnippet ns\\n\tnamespace ${1:Foo\\\\Bar\\\\Baz};\\n\t${2}\\nsnippet use\\n\tuse ${1:Foo\\\\Bar\\\\Baz};\\n\t${2}\\nsnippet c\\n\t${1:abstract }class ${2:$FILENAME}\\n\t{\\n\t\t${3}\\n\t}\\nsnippet i\\n\tinterface ${1:$FILENAME}\\n\t{\\n\t\t${2}\\n\t}\\nsnippet t.\\n\t$this->${1}\\nsnippet f\\n\tfunction ${1:foo}(${2:array }${3:$bar})\\n\t{\\n\t\t${4}\\n\t}\\n# method\\nsnippet m\\n\t${1:abstract }${2:protected}${3: static} function ${4:foo}(${5:array }${6:$bar})\\n\t{\\n\t\t${7}\\n\t}\\n# setter method\\nsnippet sm \\n\t/**\\n\t * Sets the value of ${1:foo}\\n\t *\\n\t * @param ${2:$1} $$1 ${3:description}\\n\t *\\n\t * @return ${4:$FILENAME}\\n\t */\\n\t${5:public} function set${6:$2}(${7:$2 }$$1)\\n\t{\\n\t\t$this->${8:$1} = $$1;\\n\t\treturn $this;\\n\t}${9}\\n# getter method\\nsnippet gm\\n\t/**\\n\t * Gets the value of ${1:foo}\\n\t *\\n\t * @return ${2:$1}\\n\t */\\n\t${3:public} function get${4:$2}()\\n\t{\\n\t\treturn $this->${5:$1};\\n\t}${6}\\n#setter\\nsnippet $s\\n\t${1:$foo}->set${2:Bar}(${3});\\n#getter\\nsnippet $g\\n\t${1:$foo}->get${2:Bar}();\\n\\n# Tertiary conditional\\nsnippet =?:\\n\t$${1:foo} = ${2:true} ? ${3:a} : ${4};\\nsnippet ?:\\n\t${1:true} ? ${2:a} : ${3}\\n\\nsnippet C\\n\t$_COOKIE['${1:variable}']${2}\\nsnippet E\\n\t$_ENV['${1:variable}']${2}\\nsnippet F\\n\t$_FILES['${1:variable}']${2}\\nsnippet G\\n\t$_GET['${1:variable}']${2}\\nsnippet P\\n\t$_POST['${1:variable}']${2}\\nsnippet R\\n\t$_REQUEST['${1:variable}']${2}\\nsnippet S\\n\t$_SERVER['${1:variable}']${2}\\nsnippet SS\\n\t$_SESSION['${1:variable}']${2}\\n\t\\n# the following are old ones\\nsnippet inc\\n\tinclude '${1:file}';${2}\\nsnippet inc1\\n\tinclude_once '${1:file}';${2}\\nsnippet req\\n\trequire '${1:file}';${2}\\nsnippet req1\\n\trequire_once '${1:file}';${2}\\n# Start Docblock\\nsnippet /*\\n\t/**\\n\t * ${1}\\n\t */\\n# Class - post doc\\nsnippet doc_cp\\n\t/**\\n\t * ${1:undocumented class}\\n\t *\\n\t * @package ${2:default}\\n\t * @subpackage ${3:default}\\n\t * @author ${4:`g:snips_author`}\\n\t */${5}\\n# Class Variable - post doc\\nsnippet doc_vp\\n\t/**\\n\t * ${1:undocumented class variable}\\n\t *\\n\t * @var ${2:string}\\n\t */${3}\\n# Class Variable\\nsnippet doc_v\\n\t/**\\n\t * ${3:undocumented class variable}\\n\t *\\n\t * @var ${4:string}\\n\t */\\n\t${1:var} $${2};${5}\\n# Class\\nsnippet doc_c\\n\t/**\\n\t * ${3:undocumented class}\\n\t *\\n\t * @package ${4:default}\\n\t * @subpackage ${5:default}\\n\t * @author ${6:`g:snips_author`}\\n\t */\\n\t${1:}class ${2:}\\n\t{\\n\t\t${7}\\n\t} // END $1class $2\\n# Constant Definition - post doc\\nsnippet doc_dp\\n\t/**\\n\t * ${1:undocumented constant}\\n\t */${2}\\n# Constant Definition\\nsnippet doc_d\\n\t/**\\n\t * ${3:undocumented constant}\\n\t */\\n\tdefine(${1}, ${2});${4}\\n# Function - post doc\\nsnippet doc_fp\\n\t/**\\n\t * ${1:undocumented function}\\n\t *\\n\t * @return ${2:void}\\n\t * @author ${3:`g:snips_author`}\\n\t */${4}\\n# Function signature\\nsnippet doc_s\\n\t/**\\n\t * ${4:undocumented function}\\n\t *\\n\t * @return ${5:void}\\n\t * @author ${6:`g:snips_author`}\\n\t */\\n\t${1}function ${2}(${3});${7}\\n# Function\\nsnippet doc_f\\n\t/**\\n\t * ${4:undocumented function}\\n\t *\\n\t * @return ${5:void}\\n\t * @author ${6:`g:snips_author`}\\n\t */\\n\t${1}function ${2}(${3})\\n\t{${7}\\n\t}\\n# Header\\nsnippet doc_h\\n\t/**\\n\t * ${1}\\n\t *\\n\t * @author ${2:`g:snips_author`}\\n\t * @version ${3:$Id$}\\n\t * @copyright ${4:$2}, `strftime('%d %B, %Y')`\\n\t * @package ${5:default}\\n\t */\\n\t\\n# Interface\\nsnippet interface\\n\t/**\\n\t * ${2:undocumented class}\\n\t *\\n\t * @package ${3:default}\\n\t * @author ${4:`g:snips_author`}\\n\t */\\n\tinterface ${1:$FILENAME}\\n\t{\\n\t\t${5}\\n\t}\\n# class ...\\nsnippet class\\n\t/**\\n\t * ${1}\\n\t */\\n\tclass ${2:$FILENAME}\\n\t{\\n\t\t${3}\\n\t\t/**\\n\t\t * ${4}\\n\t\t */\\n\t\t${5:public} function ${6:__construct}(${7:argument})\\n\t\t{\\n\t\t\t${8:// code...}\\n\t\t}\\n\t}\\n# define(...)\\nsnippet def\\n\tdefine('${1}'${2});${3}\\n# defined(...)\\nsnippet def?\\n\t${1}defined('${2}')${3}\\nsnippet wh\\n\twhile (${1:/* condition */}) {\\n\t\t${2:// code...}\\n\t}\\n# do ... while\\nsnippet do\\n\tdo {\\n\t\t${2:// code... }\\n\t} while (${1:/* condition */});\\nsnippet if\\n\tif (${1:/* condition */}) {\\n\t\t${2:// code...}\\n\t}\\nsnippet ifil\\n\t<?php if (${1:/* condition */}): ?>\\n\t\t${2:<!-- code... -->}\\n\t<?php endif; ?>\\nsnippet ife\\n\tif (${1:/* condition */}) {\\n\t\t${2:// code...}\\n\t} else {\\n\t\t${3:// code...}\\n\t}\\n\t${4}\\nsnippet ifeil\\n\t<?php if (${1:/* condition */}): ?>\\n\t\t${2:<!-- html... -->}\\n\t<?php else: ?>\\n\t\t${3:<!-- html... -->}\\n\t<?php endif; ?>\\n\t${4}\\nsnippet else\\n\telse {\\n\t\t${1:// code...}\\n\t}\\nsnippet elseif\\n\telseif (${1:/* condition */}) {\\n\t\t${2:// code...}\\n\t}\\nsnippet switch\\n\tswitch ($${1:variable}) {\\n\t\tcase '${2:value}':\\n\t\t\t${3:// code...}\\n\t\t\tbreak;\\n\t\t${5}\\n\t\tdefault:\\n\t\t\t${4:// code...}\\n\t\t\tbreak;\\n\t}\\nsnippet case\\n\tcase '${1:value}':\\n\t\t${2:// code...}\\n\t\tbreak;${3}\\nsnippet for\\n\tfor ($${2:i} = 0; $$2 < ${1:count}; $$2${3:++}) {\\n\t\t${4: // code...}\\n\t}\\nsnippet foreach\\n\tforeach ($${1:variable} as $${2:value}) {\\n\t\t${3:// code...}\\n\t}\\nsnippet foreachil\\n\t<?php foreach ($${1:variable} as $${2:value}): ?>\\n\t\t${3:<!-- html... -->}\\n\t<?php endforeach; ?>\\nsnippet foreachk\\n\tforeach ($${1:variable} as $${2:key} => $${3:value}) {\\n\t\t${4:// code...}\\n\t}\\nsnippet foreachkil\\n\t<?php foreach ($${1:variable} as $${2:key} => $${3:value}): ?>\\n\t\t${4:<!-- html... -->}\\n\t<?php endforeach; ?>\\n# $... = array (...)\\nsnippet array\\n\t$${1:arrayName} = array('${2}' => ${3});${4}\\nsnippet try\\n\ttry {\\n\t\t${2}\\n\t} catch (${1:Exception} $e) {\\n\t}\\n# lambda with closure\\nsnippet lambda\\n\t${1:static }function (${2:args}) use (${3:&$x, $y /*put vars in scope (closure) */}) {\\n\t\t${4}\\n\t};\\n# pre_dump();\\nsnippet pd\\n\techo '<pre>'; var_dump(${1}); echo '</pre>';\\n# pre_dump(); die();\\nsnippet pdd\\n\techo '<pre>'; var_dump(${1}); echo '</pre>'; die(${2:});\\nsnippet vd\\n\tvar_dump(${1});\\nsnippet vdd\\n\tvar_dump(${1}); die(${2:});\\nsnippet http_redirect\\n\theader (\\\"HTTP/1.1 301 Moved Permanently\\\"); \\n\theader (\\\"Location: \\\".URL); \\n\texit();\\n# Getters & Setters\\nsnippet gs\\n\t/**\\n\t * Gets the value of ${1:foo}\\n\t *\\n\t * @return ${2:$1}\\n\t */\\n\tpublic function get${3:$2}()\\n\t{\\n\t\treturn $this->${4:$1};\\n\t}\\n\\n\t/**\\n\t * Sets the value of $1\\n\t *\\n\t * @param $2 $$1 ${5:description}\\n\t *\\n\t * @return ${6:$FILENAME}\\n\t */\\n\tpublic function set$3(${7:$2 }$$1)\\n\t{\\n\t\t$this->$4 = $$1;\\n\t\treturn $this;\\n\t}${8}\\n# anotation, get, and set, useful for doctrine\\nsnippet ags\\n\t/**\\n\t * ${1:description}\\n\t * \\n\t * @${7}\\n\t */\\n\t${2:protected} $${3:foo};\\n\\n\tpublic function get${4:$3}()\\n\t{\\n\t\treturn $this->$3;\\n\t}\\n\\n\tpublic function set$4(${5:$4 }$${6:$3})\\n\t{\\n\t\t$this->$3 = $$6;\\n\t\treturn $this;\\n\t}\\nsnippet rett\\n\treturn true;\\nsnippet retf\\n\treturn false;\\n\",t.scope=\"php\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/plain_text.js",
    "content": "ace.define(\"ace/snippets/plain_text\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"plain_text\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/powershell.js",
    "content": "ace.define(\"ace/snippets/powershell\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"powershell\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/praat.js",
    "content": "ace.define(\"ace/snippets/praat\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"praat\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/prolog.js",
    "content": "ace.define(\"ace/snippets/prolog\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"prolog\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/properties.js",
    "content": "ace.define(\"ace/snippets/properties\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"properties\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/protobuf.js",
    "content": "ace.define(\"ace/snippets/protobuf\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"\",t.scope=\"protobuf\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/python.js",
    "content": "ace.define(\"ace/snippets/python\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='snippet #!\\n\t#!/usr/bin/env python\\nsnippet imp\\n\timport ${1:module}\\nsnippet from\\n\tfrom ${1:package} import ${2:module}\\n# Module Docstring\\nsnippet docs\\n\t\\'\\'\\'\\n\tFile: ${1:FILENAME:file_name}\\n\tAuthor: ${2:author}\\n\tDescription: ${3}\\n\t\\'\\'\\'\\nsnippet wh\\n\twhile ${1:condition}:\\n\t\t${2:# TODO: write code...}\\n# dowh - does the same as do...while in other languages\\nsnippet dowh\\n\twhile True:\\n\t\t${1:# TODO: write code...}\\n\t\tif ${2:condition}:\\n\t\t\tbreak\\nsnippet with\\n\twith ${1:expr} as ${2:var}:\\n\t\t${3:# TODO: write code...}\\n# New Class\\nsnippet cl\\n\tclass ${1:ClassName}(${2:object}):\\n\t\t\"\"\"${3:docstring for $1}\"\"\"\\n\t\tdef __init__(self, ${4:arg}):\\n\t\t\t${5:super($1, self).__init__()}\\n\t\t\tself.$4 = $4\\n\t\t\t${6}\\n# New Function\\nsnippet def\\n\tdef ${1:fname}(${2:`indent(\\'.\\') ? \\'self\\' : \\'\\'`}):\\n\t\t\"\"\"${3:docstring for $1}\"\"\"\\n\t\t${4:# TODO: write code...}\\nsnippet deff\\n\tdef ${1:fname}(${2:`indent(\\'.\\') ? \\'self\\' : \\'\\'`}):\\n\t\t${3:# TODO: write code...}\\n# New Method\\nsnippet defs\\n\tdef ${1:mname}(self, ${2:arg}):\\n\t\t${3:# TODO: write code...}\\n# New Property\\nsnippet property\\n\tdef ${1:foo}():\\n\t\tdoc = \"${2:The $1 property.}\"\\n\t\tdef fget(self):\\n\t\t\t${3:return self._$1}\\n\t\tdef fset(self, value):\\n\t\t\t${4:self._$1 = value}\\n# Ifs\\nsnippet if\\n\tif ${1:condition}:\\n\t\t${2:# TODO: write code...}\\nsnippet el\\n\telse:\\n\t\t${1:# TODO: write code...}\\nsnippet ei\\n\telif ${1:condition}:\\n\t\t${2:# TODO: write code...}\\n# For\\nsnippet for\\n\tfor ${1:item} in ${2:items}:\\n\t\t${3:# TODO: write code...}\\n# Encodes\\nsnippet cutf8\\n\t# -*- coding: utf-8 -*-\\nsnippet clatin1\\n\t# -*- coding: latin-1 -*-\\nsnippet cascii\\n\t# -*- coding: ascii -*-\\n# Lambda\\nsnippet ld\\n\t${1:var} = lambda ${2:vars} : ${3:action}\\nsnippet .\\n\tself.\\nsnippet try Try/Except\\n\ttry:\\n\t\t${1:# TODO: write code...}\\n\texcept ${2:Exception}, ${3:e}:\\n\t\t${4:raise $3}\\nsnippet try Try/Except/Else\\n\ttry:\\n\t\t${1:# TODO: write code...}\\n\texcept ${2:Exception}, ${3:e}:\\n\t\t${4:raise $3}\\n\telse:\\n\t\t${5:# TODO: write code...}\\nsnippet try Try/Except/Finally\\n\ttry:\\n\t\t${1:# TODO: write code...}\\n\texcept ${2:Exception}, ${3:e}:\\n\t\t${4:raise $3}\\n\tfinally:\\n\t\t${5:# TODO: write code...}\\nsnippet try Try/Except/Else/Finally\\n\ttry:\\n\t\t${1:# TODO: write code...}\\n\texcept ${2:Exception}, ${3:e}:\\n\t\t${4:raise $3}\\n\telse:\\n\t\t${5:# TODO: write code...}\\n\tfinally:\\n\t\t${6:# TODO: write code...}\\n# if __name__ == \\'__main__\\':\\nsnippet ifmain\\n\tif __name__ == \\'__main__\\':\\n\t\t${1:main()}\\n# __magic__\\nsnippet _\\n\t__${1:init}__${2}\\n# python debugger (pdb)\\nsnippet pdb\\n\timport pdb; pdb.set_trace()\\n# ipython debugger (ipdb)\\nsnippet ipdb\\n\timport ipdb; ipdb.set_trace()\\n# ipython debugger (pdbbb)\\nsnippet pdbbb\\n\timport pdbpp; pdbpp.set_trace()\\nsnippet pprint\\n\timport pprint; pprint.pprint(${1})${2}\\nsnippet \"\\n\t\"\"\"\\n\t${1:doc}\\n\t\"\"\"\\n# test function/method\\nsnippet test\\n\tdef test_${1:description}(${2:self}):\\n\t\t${3:# TODO: write code...}\\n# test case\\nsnippet testcase\\n\tclass ${1:ExampleCase}(unittest.TestCase):\\n\t\t\\n\t\tdef test_${2:description}(self):\\n\t\t\t${3:# TODO: write code...}\\nsnippet fut\\n\tfrom __future__ import ${1}\\n#getopt\\nsnippet getopt\\n\ttry:\\n\t\t# Short option syntax: \"hv:\"\\n\t\t# Long option syntax: \"help\" or \"verbose=\"\\n\t\topts, args = getopt.getopt(sys.argv[1:], \"${1:short_options}\", [${2:long_options}])\\n\t\\n\texcept getopt.GetoptError, err:\\n\t\t# Print debug info\\n\t\tprint str(err)\\n\t\t${3:error_action}\\n\\n\tfor option, argument in opts:\\n\t\tif option in (\"-h\", \"--help\"):\\n\t\t\t${4}\\n\t\telif option in (\"-v\", \"--verbose\"):\\n\t\t\tverbose = argument\\n',t.scope=\"python\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/r.js",
    "content": "ace.define(\"ace/snippets/r\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='snippet #!\\n\t#!/usr/bin/env Rscript\\n\\n# includes\\nsnippet lib\\n\tlibrary(${1:package})\\nsnippet req\\n\trequire(${1:package})\\nsnippet source\\n\tsource(\\'${1:file}\\')\\n\\n# conditionals\\nsnippet if\\n\tif (${1:condition}) {\\n\t\t${2:code}\\n\t}\\nsnippet el\\n\telse {\\n\t\t${1:code}\\n\t}\\nsnippet ei\\n\telse if (${1:condition}) {\\n\t\t${2:code}\\n\t}\\n\\n# functions\\nsnippet fun\\n\t${1:name} = function (${2:variables}) {\\n\t\t${3:code}\\n\t}\\nsnippet ret\\n\treturn(${1:code})\\n\\n# dataframes, lists, etc\\nsnippet df\\n\t${1:name}[${2:rows}, ${3:cols}]\\nsnippet c\\n\tc(${1:items})\\nsnippet li\\n\tlist(${1:items})\\nsnippet mat\\n\tmatrix(${1:data}, nrow=${2:rows}, ncol=${3:cols})\\n\\n# apply functions\\nsnippet apply\\n\tapply(${1:array}, ${2:margin}, ${3:function})\\nsnippet lapply\\n\tlapply(${1:list}, ${2:function})\\nsnippet sapply\\n\tsapply(${1:list}, ${2:function})\\nsnippet vapply\\n\tvapply(${1:list}, ${2:function}, ${3:type})\\nsnippet mapply\\n\tmapply(${1:function}, ${2:...})\\nsnippet tapply\\n\ttapply(${1:vector}, ${2:index}, ${3:function})\\nsnippet rapply\\n\trapply(${1:list}, ${2:function})\\n\\n# plyr functions\\nsnippet dd\\n\tddply(${1:frame}, ${2:variables}, ${3:function})\\nsnippet dl\\n\tdlply(${1:frame}, ${2:variables}, ${3:function})\\nsnippet da\\n\tdaply(${1:frame}, ${2:variables}, ${3:function})\\nsnippet d_\\n\td_ply(${1:frame}, ${2:variables}, ${3:function})\\n\\nsnippet ad\\n\tadply(${1:array}, ${2:margin}, ${3:function})\\nsnippet al\\n\talply(${1:array}, ${2:margin}, ${3:function})\\nsnippet aa\\n\taaply(${1:array}, ${2:margin}, ${3:function})\\nsnippet a_\\n\ta_ply(${1:array}, ${2:margin}, ${3:function})\\n\\nsnippet ld\\n\tldply(${1:list}, ${2:function})\\nsnippet ll\\n\tllply(${1:list}, ${2:function})\\nsnippet la\\n\tlaply(${1:list}, ${2:function})\\nsnippet l_\\n\tl_ply(${1:list}, ${2:function})\\n\\nsnippet md\\n\tmdply(${1:matrix}, ${2:function})\\nsnippet ml\\n\tmlply(${1:matrix}, ${2:function})\\nsnippet ma\\n\tmaply(${1:matrix}, ${2:function})\\nsnippet m_\\n\tm_ply(${1:matrix}, ${2:function})\\n\\n# plot functions\\nsnippet pl\\n\tplot(${1:x}, ${2:y})\\nsnippet ggp\\n\tggplot(${1:data}, aes(${2:aesthetics}))\\nsnippet img\\n\t${1:(jpeg,bmp,png,tiff)}(filename=\"${2:filename}\", width=${3}, height=${4}, unit=\"${5}\")\\n\t${6:plot}\\n\tdev.off()\\n\\n# statistical test functions\\nsnippet fis\\n\tfisher.test(${1:x}, ${2:y})\\nsnippet chi\\n\tchisq.test(${1:x}, ${2:y})\\nsnippet tt\\n\tt.test(${1:x}, ${2:y})\\nsnippet wil\\n\twilcox.test(${1:x}, ${2:y})\\nsnippet cor\\n\tcor.test(${1:x}, ${2:y})\\nsnippet fte\\n\tvar.test(${1:x}, ${2:y})\\nsnippet kvt \\n\tkv.test(${1:x}, ${2:y})\\n',t.scope=\"r\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/razor.js",
    "content": "ace.define(\"ace/snippets/razor\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"snippet if\\n(${1} == ${2}) {\\n\t${3}\\n}\",t.scope=\"razor\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/rdoc.js",
    "content": "ace.define(\"ace/snippets/rdoc\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"rdoc\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/rhtml.js",
    "content": "ace.define(\"ace/snippets/rhtml\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"rhtml\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/rst.js",
    "content": "ace.define(\"ace/snippets/rst\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/ruby.js",
    "content": "ace.define(\"ace/snippets/ruby\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='########################################\\n# Ruby snippets - for Rails, see below #\\n########################################\\n\\n# encoding for Ruby 1.9\\nsnippet enc\\n\t# encoding: utf-8\\n\\n# #!/usr/bin/env ruby\\nsnippet #!\\n\t#!/usr/bin/env ruby\\n\t# encoding: utf-8\\n\\n# New Block\\nsnippet =b\\n\t=begin rdoc\\n\t\t${1}\\n\t=end\\nsnippet y\\n\t:yields: ${1:arguments}\\nsnippet rb\\n\t#!/usr/bin/env ruby -wKU\\nsnippet beg\\n\tbegin\\n\t\t${3}\\n\trescue ${1:Exception} => ${2:e}\\n\tend\\n\\nsnippet req require\\n\trequire \"${1}\"${2}\\nsnippet #\\n\t# =>\\nsnippet end\\n\t__END__\\nsnippet case\\n\tcase ${1:object}\\n\twhen ${2:condition}\\n\t\t${3}\\n\tend\\nsnippet when\\n\twhen ${1:condition}\\n\t\t${2}\\nsnippet def\\n\tdef ${1:method_name}\\n\t\t${2}\\n\tend\\nsnippet deft\\n\tdef test_${1:case_name}\\n\t\t${2}\\n\tend\\nsnippet if\\n\tif ${1:condition}\\n\t\t${2}\\n\tend\\nsnippet ife\\n\tif ${1:condition}\\n\t\t${2}\\n\telse\\n\t\t${3}\\n\tend\\nsnippet elsif\\n\telsif ${1:condition}\\n\t\t${2}\\nsnippet unless\\n\tunless ${1:condition}\\n\t\t${2}\\n\tend\\nsnippet while\\n\twhile ${1:condition}\\n\t\t${2}\\n\tend\\nsnippet for\\n\tfor ${1:e} in ${2:c}\\n\t\t${3}\\n\tend\\nsnippet until\\n\tuntil ${1:condition}\\n\t\t${2}\\n\tend\\nsnippet cla class .. end\\n\tclass ${1:`substitute(Filename(), \\'\\\\(_\\\\|^\\\\)\\\\(.\\\\)\\', \\'\\\\u\\\\2\\', \\'g\\')`}\\n\t\t${2}\\n\tend\\nsnippet cla class .. initialize .. end\\n\tclass ${1:`substitute(Filename(), \\'\\\\(_\\\\|^\\\\)\\\\(.\\\\)\\', \\'\\\\u\\\\2\\', \\'g\\')`}\\n\t\tdef initialize(${2:args})\\n\t\t\t${3}\\n\t\tend\\n\tend\\nsnippet cla class .. < ParentClass .. initialize .. end\\n\tclass ${1:`substitute(Filename(), \\'\\\\(_\\\\|^\\\\)\\\\(.\\\\)\\', \\'\\\\u\\\\2\\', \\'g\\')`} < ${2:ParentClass}\\n\t\tdef initialize(${3:args})\\n\t\t\t${4}\\n\t\tend\\n\tend\\nsnippet cla ClassName = Struct .. do .. end\\n\t${1:`substitute(Filename(), \\'\\\\(_\\\\|^\\\\)\\\\(.\\\\)\\', \\'\\\\u\\\\2\\', \\'g\\')`} = Struct.new(:${2:attr_names}) do\\n\t\tdef ${3:method_name}\\n\t\t\t${4}\\n\t\tend\\n\tend\\nsnippet cla class BlankSlate .. initialize .. end\\n\tclass ${1:BlankSlate}\\n\t\tinstance_methods.each { |meth| undef_method(meth) unless meth =~ /\\\\A__/ }\\n\tend\\nsnippet cla class << self .. end\\n\tclass << ${1:self}\\n\t\t${2}\\n\tend\\n# class .. < DelegateClass .. initialize .. end\\nsnippet cla-\\n\tclass ${1:`substitute(Filename(), \\'\\\\(_\\\\|^\\\\)\\\\(.\\\\)\\', \\'\\\\u\\\\2\\', \\'g\\')`} < DelegateClass(${2:ParentClass})\\n\t\tdef initialize(${3:args})\\n\t\t\tsuper(${4:del_obj})\\n\\n\t\t\t${5}\\n\t\tend\\n\tend\\nsnippet mod module .. end\\n\tmodule ${1:`substitute(Filename(), \\'\\\\(_\\\\|^\\\\)\\\\(.\\\\)\\', \\'\\\\u\\\\2\\', \\'g\\')`}\\n\t\t${2}\\n\tend\\nsnippet mod module .. module_function .. end\\n\tmodule ${1:`substitute(Filename(), \\'\\\\(_\\\\|^\\\\)\\\\(.\\\\)\\', \\'\\\\u\\\\2\\', \\'g\\')`}\\n\t\tmodule_function\\n\\n\t\t${2}\\n\tend\\nsnippet mod module .. ClassMethods .. end\\n\tmodule ${1:`substitute(Filename(), \\'\\\\(_\\\\|^\\\\)\\\\(.\\\\)\\', \\'\\\\u\\\\2\\', \\'g\\')`}\\n\t\tmodule ClassMethods\\n\t\t\t${2}\\n\t\tend\\n\\n\t\tmodule InstanceMethods\\n\\n\t\tend\\n\\n\t\tdef self.included(receiver)\\n\t\t\treceiver.extend         ClassMethods\\n\t\t\treceiver.send :include, InstanceMethods\\n\t\tend\\n\tend\\n# attr_reader\\nsnippet r\\n\tattr_reader :${1:attr_names}\\n# attr_writer\\nsnippet w\\n\tattr_writer :${1:attr_names}\\n# attr_accessor\\nsnippet rw\\n\tattr_accessor :${1:attr_names}\\nsnippet atp\\n\tattr_protected :${1:attr_names}\\nsnippet ata\\n\tattr_accessible :${1:attr_names}\\n# include Enumerable\\nsnippet Enum\\n\tinclude Enumerable\\n\\n\tdef each(&block)\\n\t\t${1}\\n\tend\\n# include Comparable\\nsnippet Comp\\n\tinclude Comparable\\n\\n\tdef <=>(other)\\n\t\t${1}\\n\tend\\n# extend Forwardable\\nsnippet Forw-\\n\textend Forwardable\\n# def self\\nsnippet defs\\n\tdef self.${1:class_method_name}\\n\t\t${2}\\n\tend\\n# def method_missing\\nsnippet defmm\\n\tdef method_missing(meth, *args, &blk)\\n\t\t${1}\\n\tend\\nsnippet defd\\n\tdef_delegator :${1:@del_obj}, :${2:del_meth}, :${3:new_name}\\nsnippet defds\\n\tdef_delegators :${1:@del_obj}, :${2:del_methods}\\nsnippet am\\n\talias_method :${1:new_name}, :${2:old_name}\\nsnippet app\\n\tif __FILE__ == $PROGRAM_NAME\\n\t\t${1}\\n\tend\\n# usage_if()\\nsnippet usai\\n\tif ARGV.${1}\\n\t\tabort \"Usage: #{$PROGRAM_NAME} ${2:ARGS_GO_HERE}\"${3}\\n\tend\\n# usage_unless()\\nsnippet usau\\n\tunless ARGV.${1}\\n\t\tabort \"Usage: #{$PROGRAM_NAME} ${2:ARGS_GO_HERE}\"${3}\\n\tend\\nsnippet array\\n\tArray.new(${1:10}) { |${2:i}| ${3} }\\nsnippet hash\\n\tHash.new { |${1:hash}, ${2:key}| $1[$2] = ${3} }\\nsnippet file File.foreach() { |line| .. }\\n\tFile.foreach(${1:\"path/to/file\"}) { |${2:line}| ${3} }\\nsnippet file File.read()\\n\tFile.read(${1:\"path/to/file\"})${2}\\nsnippet Dir Dir.global() { |file| .. }\\n\tDir.glob(${1:\"dir/glob/*\"}) { |${2:file}| ${3} }\\nsnippet Dir Dir[\"..\"]\\n\tDir[${1:\"glob/**/*.rb\"}]${2}\\nsnippet dir\\n\tFilename.dirname(__FILE__)\\nsnippet deli\\n\tdelete_if { |${1:e}| ${2} }\\nsnippet fil\\n\tfill(${1:range}) { |${2:i}| ${3} }\\n# flatten_once()\\nsnippet flao\\n\tinject(Array.new) { |${1:arr}, ${2:a}| $1.push(*$2)}${3}\\nsnippet zip\\n\tzip(${1:enums}) { |${2:row}| ${3} }\\n# downto(0) { |n| .. }\\nsnippet dow\\n\tdownto(${1:0}) { |${2:n}| ${3} }\\nsnippet ste\\n\tstep(${1:2}) { |${2:n}| ${3} }\\nsnippet tim\\n\ttimes { |${1:n}| ${2} }\\nsnippet upt\\n\tupto(${1:1.0/0.0}) { |${2:n}| ${3} }\\nsnippet loo\\n\tloop { ${1} }\\nsnippet ea\\n\teach { |${1:e}| ${2} }\\nsnippet ead\\n\teach do |${1:e}|\\n\t\t${2}\\n\tend\\nsnippet eab\\n\teach_byte { |${1:byte}| ${2} }\\nsnippet eac- each_char { |chr| .. }\\n\teach_char { |${1:chr}| ${2} }\\nsnippet eac- each_cons(..) { |group| .. }\\n\teach_cons(${1:2}) { |${2:group}| ${3} }\\nsnippet eai\\n\teach_index { |${1:i}| ${2} }\\nsnippet eaid\\n\teach_index do |${1:i}|\\n\t\t${2}\\n\tend\\nsnippet eak\\n\teach_key { |${1:key}| ${2} }\\nsnippet eakd\\n\teach_key do |${1:key}|\\n\t\t${2}\\n\tend\\nsnippet eal\\n\teach_line { |${1:line}| ${2} }\\nsnippet eald\\n\teach_line do |${1:line}|\\n\t\t${2}\\n\tend\\nsnippet eap\\n\teach_pair { |${1:name}, ${2:val}| ${3} }\\nsnippet eapd\\n\teach_pair do |${1:name}, ${2:val}|\\n\t\t${3}\\n\tend\\nsnippet eas-\\n\teach_slice(${1:2}) { |${2:group}| ${3} }\\nsnippet easd-\\n\teach_slice(${1:2}) do |${2:group}|\\n\t\t${3}\\n\tend\\nsnippet eav\\n\teach_value { |${1:val}| ${2} }\\nsnippet eavd\\n\teach_value do |${1:val}|\\n\t\t${2}\\n\tend\\nsnippet eawi\\n\teach_with_index { |${1:e}, ${2:i}| ${3} }\\nsnippet eawid\\n\teach_with_index do |${1:e},${2:i}|\\n\t\t${3}\\n\tend\\nsnippet reve\\n\treverse_each { |${1:e}| ${2} }\\nsnippet reved\\n\treverse_each do |${1:e}|\\n\t\t${2}\\n\tend\\nsnippet inj\\n\tinject(${1:init}) { |${2:mem}, ${3:var}| ${4} }\\nsnippet injd\\n\tinject(${1:init}) do |${2:mem}, ${3:var}|\\n\t\t${4}\\n\tend\\nsnippet map\\n\tmap { |${1:e}| ${2} }\\nsnippet mapd\\n\tmap do |${1:e}|\\n\t\t${2}\\n\tend\\nsnippet mapwi-\\n\tenum_with_index.map { |${1:e}, ${2:i}| ${3} }\\nsnippet sor\\n\tsort { |a, b| ${1} }\\nsnippet sorb\\n\tsort_by { |${1:e}| ${2} }\\nsnippet ran\\n\tsort_by { rand }\\nsnippet all\\n\tall? { |${1:e}| ${2} }\\nsnippet any\\n\tany? { |${1:e}| ${2} }\\nsnippet cl\\n\tclassify { |${1:e}| ${2} }\\nsnippet col\\n\tcollect { |${1:e}| ${2} }\\nsnippet cold\\n\tcollect do |${1:e}|\\n\t\t${2}\\n\tend\\nsnippet det\\n\tdetect { |${1:e}| ${2} }\\nsnippet detd\\n\tdetect do |${1:e}|\\n\t\t${2}\\n\tend\\nsnippet fet\\n\tfetch(${1:name}) { |${2:key}| ${3} }\\nsnippet fin\\n\tfind { |${1:e}| ${2} }\\nsnippet find\\n\tfind do |${1:e}|\\n\t\t${2}\\n\tend\\nsnippet fina\\n\tfind_all { |${1:e}| ${2} }\\nsnippet finad\\n\tfind_all do |${1:e}|\\n\t\t${2}\\n\tend\\nsnippet gre\\n\tgrep(${1:/pattern/}) { |${2:match}| ${3} }\\nsnippet sub\\n\t${1:g}sub(${2:/pattern/}) { |${3:match}| ${4} }\\nsnippet sca\\n\tscan(${1:/pattern/}) { |${2:match}| ${3} }\\nsnippet scad\\n\tscan(${1:/pattern/}) do |${2:match}|\\n\t\t${3}\\n\tend\\nsnippet max\\n\tmax { |a, b| ${1} }\\nsnippet min\\n\tmin { |a, b| ${1} }\\nsnippet par\\n\tpartition { |${1:e}| ${2} }\\nsnippet pard\\n\tpartition do |${1:e}|\\n\t\t${2}\\n\tend\\nsnippet rej\\n\treject { |${1:e}| ${2} }\\nsnippet rejd\\n\treject do |${1:e}|\\n\t\t${2}\\n\tend\\nsnippet sel\\n\tselect { |${1:e}| ${2} }\\nsnippet seld\\n\tselect do |${1:e}|\\n\t\t${2}\\n\tend\\nsnippet lam\\n\tlambda { |${1:args}| ${2} }\\nsnippet doo\\n\tdo\\n\t\t${1}\\n\tend\\nsnippet dov\\n\tdo |${1:variable}|\\n\t\t${2}\\n\tend\\nsnippet :\\n\t:${1:key} => ${2:\"value\"}${3}\\nsnippet ope\\n\topen(${1:\"path/or/url/or/pipe\"}, \"${2:w}\") { |${3:io}| ${4} }\\n# path_from_here()\\nsnippet fpath\\n\tFile.join(File.dirname(__FILE__), *%2[${1:rel path here}])${2}\\n# unix_filter {}\\nsnippet unif\\n\tARGF.each_line${1} do |${2:line}|\\n\t\t${3}\\n\tend\\n# option_parse {}\\nsnippet optp\\n\trequire \"optparse\"\\n\\n\toptions = {${1:default => \"args\"}}\\n\\n\tARGV.options do |opts|\\n\t\topts.banner = \"Usage: #{File.basename($PROGRAM_NAME)}\\nsnippet opt\\n\topts.on( \"-${1:o}\", \"--${2:long-option-name}\", ${3:String},\\n\t         \"${4:Option description.}\") do |${5:opt}|\\n\t\t${6}\\n\tend\\nsnippet tc\\n\trequire \"test/unit\"\\n\\n\trequire \"${1:library_file_name}\"\\n\\n\tclass Test${2:$1} < Test::Unit::TestCase\\n\t\tdef test_${3:case_name}\\n\t\t\t${4}\\n\t\tend\\n\tend\\nsnippet ts\\n\trequire \"test/unit\"\\n\\n\trequire \"tc_${1:test_case_file}\"\\n\trequire \"tc_${2:test_case_file}\"${3}\\nsnippet as\\n\tassert ${1:test}, \"${2:Failure message.}\"${3}\\nsnippet ase\\n\tassert_equal ${1:expected}, ${2:actual}${3}\\nsnippet asne\\n\tassert_not_equal ${1:unexpected}, ${2:actual}${3}\\nsnippet asid\\n\tassert_in_delta ${1:expected_float}, ${2:actual_float}, ${3:2 ** -20}${4}\\nsnippet asio\\n\tassert_instance_of ${1:ExpectedClass}, ${2:actual_instance}${3}\\nsnippet asko\\n\tassert_kind_of ${1:ExpectedKind}, ${2:actual_instance}${3}\\nsnippet asn\\n\tassert_nil ${1:instance}${2}\\nsnippet asnn\\n\tassert_not_nil ${1:instance}${2}\\nsnippet asm\\n\tassert_match /${1:expected_pattern}/, ${2:actual_string}${3}\\nsnippet asnm\\n\tassert_no_match /${1:unexpected_pattern}/, ${2:actual_string}${3}\\nsnippet aso\\n\tassert_operator ${1:left}, :${2:operator}, ${3:right}${4}\\nsnippet asr\\n\tassert_raise ${1:Exception} { ${2} }\\nsnippet asrd\\n\tassert_raise ${1:Exception} do\\n\t\t${2}\\n\tend\\nsnippet asnr\\n\tassert_nothing_raised ${1:Exception} { ${2} }\\nsnippet asnrd\\n\tassert_nothing_raised ${1:Exception} do\\n\t\t${2}\\n\tend\\nsnippet asrt\\n\tassert_respond_to ${1:object}, :${2:method}${3}\\nsnippet ass assert_same(..)\\n\tassert_same ${1:expected}, ${2:actual}${3}\\nsnippet ass assert_send(..)\\n\tassert_send [${1:object}, :${2:message}, ${3:args}]${4}\\nsnippet asns\\n\tassert_not_same ${1:unexpected}, ${2:actual}${3}\\nsnippet ast\\n\tassert_throws :${1:expected} { ${2} }\\nsnippet astd\\n\tassert_throws :${1:expected} do\\n\t\t${2}\\n\tend\\nsnippet asnt\\n\tassert_nothing_thrown { ${1} }\\nsnippet asntd\\n\tassert_nothing_thrown do\\n\t\t${1}\\n\tend\\nsnippet fl\\n\tflunk \"${1:Failure message.}\"${2}\\n# Benchmark.bmbm do .. end\\nsnippet bm-\\n\tTESTS = ${1:10_000}\\n\tBenchmark.bmbm do |results|\\n\t\t${2}\\n\tend\\nsnippet rep\\n\tresults.report(\"${1:name}:\") { TESTS.times { ${2} }}\\n# Marshal.dump(.., file)\\nsnippet Md\\n\tFile.open(${1:\"path/to/file.dump\"}, \"wb\") { |${2:file}| Marshal.dump(${3:obj}, $2) }${4}\\n# Mashal.load(obj)\\nsnippet Ml\\n\tFile.open(${1:\"path/to/file.dump\"}, \"rb\") { |${2:file}| Marshal.load($2) }${3}\\n# deep_copy(..)\\nsnippet deec\\n\tMarshal.load(Marshal.dump(${1:obj_to_copy}))${2}\\nsnippet Pn-\\n\tPStore.new(${1:\"file_name.pstore\"})${2}\\nsnippet tra\\n\ttransaction(${1:true}) { ${2} }\\n# xmlread(..)\\nsnippet xml-\\n\tREXML::Document.new(File.read(${1:\"path/to/file\"}))${2}\\n# xpath(..) { .. }\\nsnippet xpa\\n\telements.each(${1:\"//Xpath\"}) do |${2:node}|\\n\t\t${3}\\n\tend\\n# class_from_name()\\nsnippet clafn\\n\tsplit(\"::\").inject(Object) { |par, const| par.const_get(const) }\\n# singleton_class()\\nsnippet sinc\\n\tclass << self; self end\\nsnippet nam\\n\tnamespace :${1:`Filename()`} do\\n\t\t${2}\\n\tend\\nsnippet tas\\n\tdesc \"${1:Task description}\"\\n\ttask :${2:task_name => [:dependent, :tasks]} do\\n\t\t${3}\\n\tend\\n# block\\nsnippet b\\n\t{ |${1:var}| ${2} }\\nsnippet begin\\n\tbegin\\n\t\traise \\'A test exception.\\'\\n\trescue Exception => e\\n\t\tputs e.message\\n\t\tputs e.backtrace.inspect\\n\telse\\n\t\t# other exception\\n\tensure\\n\t\t# always executed\\n\tend\\n\\n#debugging\\nsnippet debug\\n\trequire \\'ruby-debug\\'; debugger; true;\\nsnippet pry\\n\trequire \\'pry\\'; binding.pry\\n\\n#############################################\\n# Rails snippets - for pure Ruby, see above #\\n#############################################\\nsnippet art\\n\tassert_redirected_to ${1::action => \"${2:index}\"}\\nsnippet artnp\\n\tassert_redirected_to ${1:parent}_${2:child}_path(${3:@$1}, ${4:@$2})\\nsnippet artnpp\\n\tassert_redirected_to ${1:parent}_${2:child}_path(${3:@$1})\\nsnippet artp\\n\tassert_redirected_to ${1:model}_path(${2:@$1})\\nsnippet artpp\\n\tassert_redirected_to ${1:model}s_path\\nsnippet asd\\n\tassert_difference \"${1:Model}.${2:count}\", $1 do\\n\t\t${3}\\n\tend\\nsnippet asnd\\n\tassert_no_difference \"${1:Model}.${2:count}\" do\\n\t\t${3}\\n\tend\\nsnippet asre\\n\tassert_response :${1:success}, @response.body${2}\\nsnippet asrj\\n\tassert_rjs :${1:replace}, \"${2:dom id}\"\\nsnippet ass assert_select(..)\\n\tassert_select \\'${1:path}\\', :${2:text} => \\'${3:inner_html\\' ${4:do}\\nsnippet bf\\n\tbefore_filter :${1:method}\\nsnippet bt\\n\tbelongs_to :${1:association}\\nsnippet crw\\n\tcattr_accessor :${1:attr_names}\\nsnippet defcreate\\n\tdef create\\n\t\t@${1:model_class_name} = ${2:ModelClassName}.new(params[:$1])\\n\\n\t\trespond_to do |wants|\\n\t\t\tif @$1.save\\n\t\t\t\tflash[:notice] = \\'$2 was successfully created.\\'\\n\t\t\t\twants.html { redirect_to(@$1) }\\n\t\t\t\twants.xml  { render :xml => @$1, :status => :created, :location => @$1 }\\n\t\t\telse\\n\t\t\t\twants.html { render :action => \"new\" }\\n\t\t\t\twants.xml  { render :xml => @$1.errors, :status => :unprocessable_entity }\\n\t\t\tend\\n\t\tend\\n\tend${3}\\nsnippet defdestroy\\n\tdef destroy\\n\t\t@${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\\n\t\t@$1.destroy\\n\\n\t\trespond_to do |wants|\\n\t\t\twants.html { redirect_to($1s_url) }\\n\t\t\twants.xml  { head :ok }\\n\t\tend\\n\tend${3}\\nsnippet defedit\\n\tdef edit\\n\t\t@${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\\n\tend\\nsnippet defindex\\n\tdef index\\n\t\t@${1:model_class_name} = ${2:ModelClassName}.all\\n\\n\t\trespond_to do |wants|\\n\t\t\twants.html # index.html.erb\\n\t\t\twants.xml  { render :xml => @$1s }\\n\t\tend\\n\tend${3}\\nsnippet defnew\\n\tdef new\\n\t\t@${1:model_class_name} = ${2:ModelClassName}.new\\n\\n\t\trespond_to do |wants|\\n\t\t\twants.html # new.html.erb\\n\t\t\twants.xml  { render :xml => @$1 }\\n\t\tend\\n\tend${3}\\nsnippet defshow\\n\tdef show\\n\t\t@${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\\n\\n\t\trespond_to do |wants|\\n\t\t\twants.html # show.html.erb\\n\t\t\twants.xml  { render :xml => @$1 }\\n\t\tend\\n\tend${3}\\nsnippet defupdate\\n\tdef update\\n\t\t@${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\\n\\n\t\trespond_to do |wants|\\n\t\t\tif @$1.update_attributes(params[:$1])\\n\t\t\t\tflash[:notice] = \\'$2 was successfully updated.\\'\\n\t\t\t\twants.html { redirect_to(@$1) }\\n\t\t\t\twants.xml  { head :ok }\\n\t\t\telse\\n\t\t\t\twants.html { render :action => \"edit\" }\\n\t\t\t\twants.xml  { render :xml => @$1.errors, :status => :unprocessable_entity }\\n\t\t\tend\\n\t\tend\\n\tend${3}\\nsnippet flash\\n\tflash[:${1:notice}] = \"${2}\"\\nsnippet habtm\\n\thas_and_belongs_to_many :${1:object}, :join_table => \"${2:table_name}\", :foreign_key => \"${3}_id\"${4}\\nsnippet hm\\n\thas_many :${1:object}\\nsnippet hmd\\n\thas_many :${1:other}s, :class_name => \"${2:$1}\", :foreign_key => \"${3:$1}_id\", :dependent => :destroy${4}\\nsnippet hmt\\n\thas_many :${1:object}, :through => :${2:object}\\nsnippet ho\\n\thas_one :${1:object}\\nsnippet i18\\n\tI18n.t(\\'${1:type.key}\\')${2}\\nsnippet ist\\n\t<%= image_submit_tag(\"${1:agree.png}\", :id => \"${2:id}\"${3} %>\\nsnippet log\\n\tRails.logger.${1:debug} ${2}\\nsnippet log2\\n\tRAILS_DEFAULT_LOGGER.${1:debug} ${2}\\nsnippet logd\\n\tlogger.debug { \"${1:message}\" }${2}\\nsnippet loge\\n\tlogger.error { \"${1:message}\" }${2}\\nsnippet logf\\n\tlogger.fatal { \"${1:message}\" }${2}\\nsnippet logi\\n\tlogger.info { \"${1:message}\" }${2}\\nsnippet logw\\n\tlogger.warn { \"${1:message}\" }${2}\\nsnippet mapc\\n\t${1:map}.${2:connect} \\'${3:controller/:action/:id}\\'\\nsnippet mapca\\n\t${1:map}.catch_all \"*${2:anything}\", :controller => \"${3:default}\", :action => \"${4:error}\"${5}\\nsnippet mapr\\n\t${1:map}.resource :${2:resource}\\nsnippet maprs\\n\t${1:map}.resources :${2:resource}\\nsnippet mapwo\\n\t${1:map}.with_options :${2:controller} => \\'${3:thing}\\' do |$3|\\n\t\t${4}\\n\tend\\nsnippet mbs\\n\tbefore_save :${1:method}\\nsnippet mcht\\n\tchange_table :${1:table_name} do |t|\\n\t\t${2}\\n\tend\\nsnippet mp\\n\tmap(&:${1:id})\\nsnippet mrw\\n\tmattr_accessor :${1:attr_names}\\nsnippet oa\\n\torder(\"${1:field}\")\\nsnippet od\\n\torder(\"${1:field} DESC\")\\nsnippet pa\\n\tparams[:${1:id}]${2}\\nsnippet ra\\n\trender :action => \"${1:action}\"\\nsnippet ral\\n\trender :action => \"${1:action}\", :layout => \"${2:layoutname}\"\\nsnippet rest\\n\trespond_to do |wants|\\n\t\twants.${1:html} { ${2} }\\n\tend\\nsnippet rf\\n\trender :file => \"${1:filepath}\"\\nsnippet rfu\\n\trender :file => \"${1:filepath}\", :use_full_path => ${2:false}\\nsnippet ri\\n\trender :inline => \"${1:<%= \\'hello\\' %>}\"\\nsnippet ril\\n\trender :inline => \"${1:<%= \\'hello\\' %>}\", :locals => { ${2::name} => \"${3:value}\"${4} }\\nsnippet rit\\n\trender :inline => \"${1:<%= \\'hello\\' %>}\", :type => ${2::rxml}\\nsnippet rjson\\n\trender :json => ${1:text to render}\\nsnippet rl\\n\trender :layout => \"${1:layoutname}\"\\nsnippet rn\\n\trender :nothing => ${1:true}\\nsnippet rns\\n\trender :nothing => ${1:true}, :status => ${2:401}\\nsnippet rp\\n\trender :partial => \"${1:item}\"\\nsnippet rpc\\n\trender :partial => \"${1:item}\", :collection => ${2:@$1s}\\nsnippet rpl\\n\trender :partial => \"${1:item}\", :locals => { :${2:$1} => ${3:@$1}\\nsnippet rpo\\n\trender :partial => \"${1:item}\", :object => ${2:@$1}\\nsnippet rps\\n\trender :partial => \"${1:item}\", :status => ${2:500}\\nsnippet rt\\n\trender :text => \"${1:text to render}\"\\nsnippet rtl\\n\trender :text => \"${1:text to render}\", :layout => \"${2:layoutname}\"\\nsnippet rtlt\\n\trender :text => \"${1:text to render}\", :layout => ${2:true}\\nsnippet rts\\n\trender :text => \"${1:text to render}\", :status => ${2:401}\\nsnippet ru\\n\trender :update do |${1:page}|\\n\t\t$1.${2}\\n\tend\\nsnippet rxml\\n\trender :xml => ${1:text to render}\\nsnippet sc\\n\tscope :${1:name}, :where(:@${2:field} => ${3:value})\\nsnippet sl\\n\tscope :${1:name}, lambda do |${2:value}|\\n\t\twhere(\"${3:field = ?}\", ${4:bind var})\\n\tend\\nsnippet sha1\\n\tDigest::SHA1.hexdigest(${1:string})\\nsnippet sweeper\\n\tclass ${1:ModelClassName}Sweeper < ActionController::Caching::Sweeper\\n\t\tobserve $1\\n\\n\t\tdef after_save(${2:model_class_name})\\n\t\t\texpire_cache($2)\\n\t\tend\\n\\n\t\tdef after_destroy($2)\\n\t\t\texpire_cache($2)\\n\t\tend\\n\\n\t\tdef expire_cache($2)\\n\t\t\texpire_page\\n\t\tend\\n\tend\\nsnippet tcb\\n\tt.boolean :${1:title}\\n\t${2}\\nsnippet tcbi\\n\tt.binary :${1:title}, :limit => ${2:2}.megabytes\\n\t${3}\\nsnippet tcd\\n\tt.decimal :${1:title}, :precision => ${2:10}, :scale => ${3:2}\\n\t${4}\\nsnippet tcda\\n\tt.date :${1:title}\\n\t${2}\\nsnippet tcdt\\n\tt.datetime :${1:title}\\n\t${2}\\nsnippet tcf\\n\tt.float :${1:title}\\n\t${2}\\nsnippet tch\\n\tt.change :${1:name}, :${2:string}, :${3:limit} => ${4:80}\\n\t${5}\\nsnippet tci\\n\tt.integer :${1:title}\\n\t${2}\\nsnippet tcl\\n\tt.integer :lock_version, :null => false, :default => 0\\n\t${1}\\nsnippet tcr\\n\tt.references :${1:taggable}, :polymorphic => { :default => \\'${2:Photo}\\' }\\n\t${3}\\nsnippet tcs\\n\tt.string :${1:title}\\n\t${2}\\nsnippet tct\\n\tt.text :${1:title}\\n\t${2}\\nsnippet tcti\\n\tt.time :${1:title}\\n\t${2}\\nsnippet tcts\\n\tt.timestamp :${1:title}\\n\t${2}\\nsnippet tctss\\n\tt.timestamps\\n\t${1}\\nsnippet va\\n\tvalidates_associated :${1:attribute}\\nsnippet vao\\n\tvalidates_acceptance_of :${1:terms}\\nsnippet vc\\n\tvalidates_confirmation_of :${1:attribute}\\nsnippet ve\\n\tvalidates_exclusion_of :${1:attribute}, :in => ${2:%w( mov avi )}\\nsnippet vf\\n\tvalidates_format_of :${1:attribute}, :with => /${2:regex}/\\nsnippet vi\\n\tvalidates_inclusion_of :${1:attribute}, :in => %w(${2: mov avi })\\nsnippet vl\\n\tvalidates_length_of :${1:attribute}, :within => ${2:3}..${3:20}\\nsnippet vn\\n\tvalidates_numericality_of :${1:attribute}\\nsnippet vpo\\n\tvalidates_presence_of :${1:attribute}\\nsnippet vu\\n\tvalidates_uniqueness_of :${1:attribute}\\nsnippet wants\\n\twants.${1:js|xml|html} { ${2} }\\nsnippet wc\\n\twhere(${1:\"conditions\"}${2:, bind_var})\\nsnippet wh\\n\twhere(${1:field} => ${2:value})\\nsnippet xdelete\\n\txhr :delete, :${1:destroy}, :id => ${2:1}${3}\\nsnippet xget\\n\txhr :get, :${1:show}, :id => ${2:1}${3}\\nsnippet xpost\\n\txhr :post, :${1:create}, :${2:object} => { ${3} }\\nsnippet xput\\n\txhr :put, :${1:update}, :id => ${2:1}, :${3:object} => { ${4} }${5}\\nsnippet test\\n\ttest \"should ${1:do something}\" do\\n\t\t${2}\\n\tend\\n#migrations\\nsnippet mac\\n\tadd_column :${1:table_name}, :${2:column_name}, :${3:data_type}\\nsnippet mrc\\n\tremove_column :${1:table_name}, :${2:column_name}\\nsnippet mrnc\\n\trename_column :${1:table_name}, :${2:old_column_name}, :${3:new_column_name}\\nsnippet mcc\\n\tchange_column :${1:table}, :${2:column}, :${3:type}\\nsnippet mccc\\n\tt.column :${1:title}, :${2:string}\\nsnippet mct\\n\tcreate_table :${1:table_name} do |t|\\n\t\tt.column :${2:name}, :${3:type}\\n\tend\\nsnippet migration\\n\tclass ${1:class_name} < ActiveRecord::Migration\\n\t\tdef self.up\\n\t\t\t${2}\\n\t\tend\\n\\n\t\tdef self.down\\n\t\tend\\n\tend\\n\\nsnippet trc\\n\tt.remove :${1:column}\\nsnippet tre\\n\tt.rename :${1:old_column_name}, :${2:new_column_name}\\n\t${3}\\nsnippet tref\\n\tt.references :${1:model}\\n\\n#rspec\\nsnippet it\\n\tit \"${1:spec_name}\" do\\n\t\t${2}\\n\tend\\nsnippet itp\\n\tit \"${1:spec_name}\"\\n\t${2}\\nsnippet desc\\n\tdescribe ${1:class_name} do\\n\t\t${2}\\n\tend\\nsnippet cont\\n\tcontext \"${1:message}\" do\\n\t\t${2}\\n\tend\\nsnippet bef\\n\tbefore :${1:each} do\\n\t\t${2}\\n\tend\\nsnippet aft\\n\tafter :${1:each} do\\n\t\t${2}\\n\tend\\n',t.scope=\"ruby\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/rust.js",
    "content": "ace.define(\"ace/snippets/rust\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"rust\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/sass.js",
    "content": "ace.define(\"ace/snippets/sass\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"sass\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/scad.js",
    "content": "ace.define(\"ace/snippets/scad\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"scad\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/scala.js",
    "content": "ace.define(\"ace/snippets/scala\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"scala\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/scheme.js",
    "content": "ace.define(\"ace/snippets/scheme\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"scheme\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/scss.js",
    "content": "ace.define(\"ace/snippets/scss\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"scss\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/sh.js",
    "content": "ace.define(\"ace/snippets/sh\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='# Shebang. Executing bash via /usr/bin/env makes scripts more portable.\\nsnippet #!\\n\t#!/usr/bin/env bash\\n\t\\nsnippet if\\n\tif [[ ${1:condition} ]]; then\\n\t\t${2:#statements}\\n\tfi\\nsnippet elif\\n\telif [[ ${1:condition} ]]; then\\n\t\t${2:#statements}\\nsnippet for\\n\tfor (( ${2:i} = 0; $2 < ${1:count}; $2++ )); do\\n\t\t${3:#statements}\\n\tdone\\nsnippet fori\\n\tfor ${1:needle} in ${2:haystack} ; do\\n\t\t${3:#statements}\\n\tdone\\nsnippet wh\\n\twhile [[ ${1:condition} ]]; do\\n\t\t${2:#statements}\\n\tdone\\nsnippet until\\n\tuntil [[ ${1:condition} ]]; do\\n\t\t${2:#statements}\\n\tdone\\nsnippet case\\n\tcase ${1:word} in\\n\t\t${2:pattern})\\n\t\t\t${3};;\\n\tesac\\nsnippet go \\n\twhile getopts \\'${1:o}\\' ${2:opts} \\n\tdo \\n\t\tcase $$2 in\\n\t\t${3:o0})\\n\t\t\t${4:#staments};;\\n\t\tesac\\n\tdone\\n# Set SCRIPT_DIR variable to directory script is located.\\nsnippet sdir\\n\tSCRIPT_DIR=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" && pwd )\"\\n# getopt\\nsnippet getopt\\n\t__ScriptVersion=\"${1:version}\"\\n\\n\t#===  FUNCTION  ================================================================\\n\t#         NAME:  usage\\n\t#  DESCRIPTION:  Display usage information.\\n\t#===============================================================================\\n\tfunction usage ()\\n\t{\\n\t\t\tcat <<- EOT\\n\\n\t  Usage :  $${0:0} [options] [--] \\n\\n\t  Options: \\n\t  -h|help       Display this message\\n\t  -v|version    Display script version\\n\\n\t\t\tEOT\\n\t}    # ----------  end of function usage  ----------\\n\\n\t#-----------------------------------------------------------------------\\n\t#  Handle command line arguments\\n\t#-----------------------------------------------------------------------\\n\\n\twhile getopts \":hv\" opt\\n\tdo\\n\t  case $opt in\\n\\n\t\th|help     )  usage; exit 0   ;;\\n\\n\t\tv|version  )  echo \"$${0:0} -- Version $__ScriptVersion\"; exit 0   ;;\\n\\n\t\t\\\\? )  echo -e \"\\\\n  Option does not exist : $OPTARG\\\\n\"\\n\t\t\t  usage; exit 1   ;;\\n\\n\t  esac    # --- end of case ---\\n\tdone\\n\tshift $(($OPTIND-1))\\n\\n',t.scope=\"sh\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/sjs.js",
    "content": "ace.define(\"ace/snippets/sjs\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"sjs\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/smarty.js",
    "content": "ace.define(\"ace/snippets/smarty\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"smarty\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/snippets.js",
    "content": "ace.define(\"ace/snippets/snippets\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"# snippets for making snippets :)\\nsnippet snip\\n\tsnippet ${1:trigger}\\n\t\t${2}\\nsnippet msnip\\n\tsnippet ${1:trigger} ${2:description}\\n\t\t${3}\\nsnippet v\\n\t{VISUAL}\\n\",t.scope=\"snippets\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/soy_template.js",
    "content": "ace.define(\"ace/snippets/soy_template\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"soy_template\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/space.js",
    "content": "ace.define(\"ace/snippets/space\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"space\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/sql.js",
    "content": "ace.define(\"ace/snippets/sql\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"snippet tbl\\n\tcreate table ${1:table} (\\n\t\t${2:columns}\\n\t);\\nsnippet col\\n\t${1:name}\t${2:type}\t${3:default ''}\t${4:not null}\\nsnippet ccol\\n\t${1:name}\tvarchar2(${2:size})\t${3:default ''}\t${4:not null}\\nsnippet ncol\\n\t${1:name}\tnumber\t${3:default 0}\t${4:not null}\\nsnippet dcol\\n\t${1:name}\tdate\t${3:default sysdate}\t${4:not null}\\nsnippet ind\\n\tcreate index ${3:$1_$2} on ${1:table}(${2:column});\\nsnippet uind\\n\tcreate unique index ${1:name} on ${2:table}(${3:column});\\nsnippet tblcom\\n\tcomment on table ${1:table} is '${2:comment}';\\nsnippet colcom\\n\tcomment on column ${1:table}.${2:column} is '${3:comment}';\\nsnippet addcol\\n\talter table ${1:table} add (${2:column} ${3:type});\\nsnippet seq\\n\tcreate sequence ${1:name} start with ${2:1} increment by ${3:1} minvalue ${4:1};\\nsnippet s*\\n\tselect * from ${1:table}\\n\",t.scope=\"sql\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/sqlserver.js",
    "content": "ace.define(\"ace/snippets/sqlserver\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"# ISNULL\\nsnippet isnull\\n\tISNULL(${1:check_expression}, ${2:replacement_value})\\n# FORMAT\\nsnippet format\\n\tFORMAT(${1:value}, ${2:format})\\n# CAST\\nsnippet cast\\n\tCAST(${1:expression} AS ${2:data_type})\\n# CONVERT\\nsnippet convert\\n\tCONVERT(${1:data_type}, ${2:expression})\\n# DATEPART\\nsnippet datepart\\n\tDATEPART(${1:datepart}, ${2:date})\\n# DATEDIFF\\nsnippet datediff\\n\tDATEDIFF(${1:datepart}, ${2:startdate}, ${3:enddate})\\n# DATEADD\\nsnippet dateadd\\n\tDATEADD(${1:datepart}, ${2:number}, ${3:date})\\n# DATEFROMPARTS \\nsnippet datefromparts\\n\tDATEFROMPARTS(${1:year}, ${2:month}, ${3:day})\\n# OBJECT_DEFINITION\\nsnippet objectdef\\n\tSELECT OBJECT_DEFINITION(OBJECT_ID('${1:sys.server_permissions /*object name*/}'))\\n# STUFF XML\\nsnippet stuffxml\\n\tSTUFF((SELECT ', ' + ${1:ColumnName}\\n\t\tFROM ${2:TableName}\\n\t\tWHERE ${3:WhereClause}\\n\t\tFOR XML PATH('')), 1, 1, '') AS ${4:Alias}\\n\t${5:/*https://msdn.microsoft.com/en-us/library/ms188043.aspx*/}\\n# Create Procedure\\nsnippet createproc\\n\t-- =============================================\\n\t-- Author:\t\t${1:Author}\\n\t-- Create date: ${2:Date}\\n\t-- Description:\t${3:Description}\\n\t-- =============================================\\n\tCREATE PROCEDURE ${4:Procedure_Name}\\n\t\t${5:/*Add the parameters for the stored procedure here*/}\\n\tAS\\n\tBEGIN\\n\t\t-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.\\n\t\tSET NOCOUNT ON;\\n\t\t\\n\t\t${6:/*Add the T-SQL statements to compute the return value here*/}\\n\t\t\\n\tEND\\n\tGO\\n# Create Scalar Function\\nsnippet createfn\\n\t-- =============================================\\n\t-- Author:\t\t${1:Author}\\n\t-- Create date: ${2:Date}\\n\t-- Description:\t${3:Description}\\n\t-- =============================================\\n\tCREATE FUNCTION ${4:Scalar_Function_Name}\\n\t\t-- Add the parameters for the function here\\n\tRETURNS ${5:Function_Data_Type}\\n\tAS\\n\tBEGIN\\n\t\tDECLARE @Result ${5:Function_Data_Type}\\n\t\t\\n\t\t${6:/*Add the T-SQL statements to compute the return value here*/}\\n\t\t\\n\tEND\\n\tGO\",t.scope=\"sqlserver\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/stylus.js",
    "content": "ace.define(\"ace/snippets/stylus\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"stylus\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/svg.js",
    "content": "ace.define(\"ace/snippets/svg\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"svg\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/swift.js",
    "content": "ace.define(\"ace/snippets/swift\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"swift\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/swig.js",
    "content": "ace.define(\"ace/snippets/swig\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"swig\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/tcl.js",
    "content": "ace.define(\"ace/snippets/tcl\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"# #!/usr/bin/env tclsh\\nsnippet #!\\n\t#!/usr/bin/env tclsh\\n\t\\n# Process\\nsnippet pro\\n\tproc ${1:function_name} {${2:args}} {\\n\t\t${3:#body ...}\\n\t}\\n#xif\\nsnippet xif\\n\t${1:expr}? ${2:true} : ${3:false}\\n# Conditional\\nsnippet if\\n\tif {${1}} {\\n\t\t${2:# body...}\\n\t}\\n# Conditional if..else\\nsnippet ife\\n\tif {${1}} {\\n\t\t${2:# body...}\\n\t} else {\\n\t\t${3:# else...}\\n\t}\\n# Conditional if..elsif..else\\nsnippet ifee\\n\tif {${1}} {\\n\t\t${2:# body...}\\n\t} elseif {${3}} {\\n\t\t${4:# elsif...}\\n\t} else {\\n\t\t${5:# else...}\\n\t}\\n# If catch then\\nsnippet ifc\\n\tif { [catch {${1:#do something...}} ${2:err}] } {\\n\t\t${3:# handle failure...}\\n\t}\\n# Catch\\nsnippet catch\\n\tcatch {${1}} ${2:err} ${3:options}\\n# While Loop\\nsnippet wh\\n\twhile {${1}} {\\n\t\t${2:# body...}\\n\t}\\n# For Loop\\nsnippet for\\n\tfor {set ${2:var} 0} {$$2 < ${1:count}} {${3:incr} $2} {\\n\t\t${4:# body...}\\n\t}\\n# Foreach Loop\\nsnippet fore\\n\tforeach ${1:x} {${2:#list}} {\\n\t\t${3:# body...}\\n\t}\\n# after ms script...\\nsnippet af\\n\tafter ${1:ms} ${2:#do something}\\n# after cancel id\\nsnippet afc\\n\tafter cancel ${1:id or script}\\n# after idle\\nsnippet afi\\n\tafter idle ${1:script}\\n# after info id\\nsnippet afin\\n\tafter info ${1:id}\\n# Expr\\nsnippet exp\\n\texpr {${1:#expression here}}\\n# Switch\\nsnippet sw\\n\tswitch ${1:var} {\\n\t\t${3:pattern 1} {\\n\t\t\t${4:#do something}\\n\t\t}\\n\t\tdefault {\\n\t\t\t${2:#do something}\\n\t\t}\\n\t}\\n# Case\\nsnippet ca\\n\t${1:pattern} {\\n\t\t${2:#do something}\\n\t}${3}\\n# Namespace eval\\nsnippet ns\\n\tnamespace eval ${1:path} {${2:#script...}}\\n# Namespace current\\nsnippet nsc\\n\tnamespace current\\n\",t.scope=\"tcl\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/tex.js",
    "content": "ace.define(\"ace/snippets/tex\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=\"#PREAMBLE\\n#newcommand\\nsnippet nc\\n\t\\\\newcommand{\\\\${1:cmd}}[${2:opt}]{${3:realcmd}}${4}\\n#usepackage\\nsnippet up\\n\t\\\\usepackage[${1:[options}]{${2:package}}\\n#newunicodechar\\nsnippet nuc\\n\t\\\\newunicodechar{${1}}{${2:\\\\ensuremath}${3:tex-substitute}}}\\n#DeclareMathOperator\\nsnippet dmo\\n\t\\\\DeclareMathOperator{${1}}{${2}}\\n\\n#DOCUMENT\\n# \\\\begin{}...\\\\end{}\\nsnippet begin\\n\t\\\\begin{${1:env}}\\n\t\t${2}\\n\t\\\\end{$1}\\n# Tabular\\nsnippet tab\\n\t\\\\begin{${1:tabular}}{${2:c}}\\n\t${3}\\n\t\\\\end{$1}\\nsnippet thm\\n\t\\\\begin[${1:author}]{${2:thm}}\\n\t${3}\\n\t\\\\end{$1}\\nsnippet center\\n\t\\\\begin{center}\\n\t\t${1}\\n\t\\\\end{center}\\n# Align(ed)\\nsnippet ali\\n\t\\\\begin{align${1:ed}}\\n\t\t${2}\\n\t\\\\end{align$1}\\n# Gather(ed)\\nsnippet gat\\n\t\\\\begin{gather${1:ed}}\\n\t\t${2}\\n\t\\\\end{gather$1}\\n# Equation\\nsnippet eq\\n\t\\\\begin{equation}\\n\t\t${1}\\n\t\\\\end{equation}\\n# Equation\\nsnippet eq*\\n\t\\\\begin{equation*}\\n\t\t${1}\\n\t\\\\end{equation*}\\n# Unnumbered Equation\\nsnippet \\\\\\n\t\\\\[\\n\t\t${1}\\n\t\\\\]\\n# Enumerate\\nsnippet enum\\n\t\\\\begin{enumerate}\\n\t\t\\\\item ${1}\\n\t\\\\end{enumerate}\\n# Itemize\\nsnippet itemize\\n\t\\\\begin{itemize}\\n\t\t\\\\item ${1}\\n\t\\\\end{itemize}\\n# Description\\nsnippet desc\\n\t\\\\begin{description}\\n\t\t\\\\item[${1}] ${2}\\n\t\\\\end{description}\\n# Matrix\\nsnippet mat\\n\t\\\\begin{${1:p/b/v/V/B/small}matrix}\\n\t\t${2}\\n\t\\\\end{$1matrix}\\n# Cases\\nsnippet cas\\n\t\\\\begin{cases}\\n\t\t${1:equation}, &\\\\text{ if }${2:case}\\\\\\\\\\n\t\t${3}\\n\t\\\\end{cases}\\n# Split\\nsnippet spl\\n\t\\\\begin{split}\\n\t\t${1}\\n\t\\\\end{split}\\n# Part\\nsnippet part\\n\t\\\\part{${1:part name}} % (fold)\\n\t\\\\label{prt:${2:$1}}\\n\t${3}\\n\t% part $2 (end)\\n# Chapter\\nsnippet cha\\n\t\\\\chapter{${1:chapter name}}\\n\t\\\\label{cha:${2:$1}}\\n\t${3}\\n# Section\\nsnippet sec\\n\t\\\\section{${1:section name}}\\n\t\\\\label{sec:${2:$1}}\\n\t${3}\\n# Sub Section\\nsnippet sub\\n\t\\\\subsection{${1:subsection name}}\\n\t\\\\label{sub:${2:$1}}\\n\t${3}\\n# Sub Sub Section\\nsnippet subs\\n\t\\\\subsubsection{${1:subsubsection name}}\\n\t\\\\label{ssub:${2:$1}}\\n\t${3}\\n# Paragraph\\nsnippet par\\n\t\\\\paragraph{${1:paragraph name}}\\n\t\\\\label{par:${2:$1}}\\n\t${3}\\n# Sub Paragraph\\nsnippet subp\\n\t\\\\subparagraph{${1:subparagraph name}}\\n\t\\\\label{subp:${2:$1}}\\n\t${3}\\n#References\\nsnippet itd\\n\t\\\\item[${1:description}] ${2:item}\\nsnippet figure\\n\t${1:Figure}~\\\\ref{${2:fig:}}${3}\\nsnippet table\\n\t${1:Table}~\\\\ref{${2:tab:}}${3}\\nsnippet listing\\n\t${1:Listing}~\\\\ref{${2:list}}${3}\\nsnippet section\\n\t${1:Section}~\\\\ref{${2:sec:}}${3}\\nsnippet page\\n\t${1:page}~\\\\pageref{${2}}${3}\\nsnippet index\\n\t\\\\index{${1:index}}${2}\\n#Citations\\nsnippet cite\\n\t\\\\cite[${1}]{${2}}${3}\\nsnippet fcite\\n\t\\\\footcite[${1}]{${2}}${3}\\n#Formating text: italic, bold, underline, small capital, emphase ..\\nsnippet it\\n\t\\\\textit{${1:text}}\\nsnippet bf\\n\t\\\\textbf{${1:text}}\\nsnippet under\\n\t\\\\underline{${1:text}}\\nsnippet emp\\n\t\\\\emph{${1:text}}\\nsnippet sc\\n\t\\\\textsc{${1:text}}\\n#Choosing font\\nsnippet sf\\n\t\\\\textsf{${1:text}}\\nsnippet rm\\n\t\\\\textrm{${1:text}}\\nsnippet tt\\n\t\\\\texttt{${1:text}}\\n#misc\\nsnippet ft\\n\t\\\\footnote{${1:text}}\\nsnippet fig\\n\t\\\\begin{figure}\\n\t\\\\begin{center}\\n\t    \\\\includegraphics[scale=${1}]{Figures/${2}}\\n\t\\\\end{center}\\n\t\\\\caption{${3}}\\n\t\\\\label{fig:${4}}\\n\t\\\\end{figure}\\nsnippet tikz\\n\t\\\\begin{figure}\\n\t\\\\begin{center}\\n\t\\\\begin{tikzpicture}[scale=${1:1}]\\n\t\t${2}\\n\t\\\\end{tikzpicture}\\n\t\\\\end{center}\\n\t\\\\caption{${3}}\\n\t\\\\label{fig:${4}}\\n\t\\\\end{figure}\\n#math\\nsnippet stackrel\\n\t\\\\stackrel{${1:above}}{${2:below}} ${3}\\nsnippet frac\\n\t\\\\frac{${1:num}}{${2:denom}}\\nsnippet sum\\n\t\\\\sum^{${1:n}}_{${2:i=1}}{${3}}\",t.scope=\"tex\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/text.js",
    "content": "ace.define(\"ace/snippets/text\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"text\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/textile.js",
    "content": "ace.define(\"ace/snippets/textile\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='# Jekyll post header\\nsnippet header\\n\t---\\n\ttitle: ${1:title}\\n\tlayout: post\\n\tdate: ${2:date} ${3:hour:minute:second} -05:00\\n\t---\\n\\n# Image\\nsnippet img\\n\t!${1:url}(${2:title}):${3:link}!\\n\\n# Table\\nsnippet |\\n\t|${1}|${2}\\n\\n# Link\\nsnippet link\\n\t\"${1:link text}\":${2:url}\\n\\n# Acronym\\nsnippet (\\n\t(${1:Expand acronym})${2}\\n\\n# Footnote\\nsnippet fn\\n\t[${1:ref number}] ${3}\\n\\n\tfn$1. ${2:footnote}\\n\t\\n',t.scope=\"textile\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/toml.js",
    "content": "ace.define(\"ace/snippets/toml\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"toml\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/twig.js",
    "content": "ace.define(\"ace/snippets/twig\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"twig\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/typescript.js",
    "content": "ace.define(\"ace/snippets/typescript\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"typescript\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/vala.js",
    "content": "ace.define(\"ace/snippets/vala\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippets=[{content:\"case ${1:condition}:\\n\t$0\\n\tbreak;\\n\",name:\"case\",scope:\"vala\",tabTrigger:\"case\"},{content:\"/**\\n * ${6}\\n */\\n${1:public} class ${2:MethodName}${3: : GLib.Object} {\\n\\n\t/**\\n\t * ${7}\\n\t */\\n\tpublic ${2}(${4}) {\\n\t\t${5}\\n\t}\\n\\n\t$0\\n}\",name:\"class\",scope:\"vala\",tabTrigger:\"class\"},{content:\"(${1}) => {\\n\t${0}\\n}\\n\",name:\"closure\",scope:\"vala\",tabTrigger:\"=>\"},{content:\"/*\\n * $0\\n */\",name:\"Comment (multiline)\",scope:\"vala\",tabTrigger:\"/*\"},{content:\"Console.WriteLine($1);\\n$0\",name:\"Console.WriteLine (writeline)\",scope:\"vala\",tabTrigger:\"writeline\"},{content:'[DBus(name = \"$0\")]',name:\"DBus annotation\",scope:\"vala\",tabTrigger:\"[DBus\"},{content:\"delegate ${1:void} ${2:DelegateName}($0);\",name:\"delegate\",scope:\"vala\",tabTrigger:\"delegate\"},{content:\"do {\\n\t$0\\n} while ($1);\\n\",name:\"do while\",scope:\"vala\",tabTrigger:\"dowhile\"},{content:\"/**\\n * $0\\n */\",name:\"DocBlock\",scope:\"vala\",tabTrigger:\"/**\"},{content:\"else if ($1) {\\n\t$0\\n}\\n\",name:\"else if (elseif)\",scope:\"vala\",tabTrigger:\"elseif\"},{content:\"else {\\n\t$0\\n}\",name:\"else\",scope:\"vala\",tabTrigger:\"else\"},{content:\"enum {$1:EnumName} {\\n\t$0\\n}\",name:\"enum\",scope:\"vala\",tabTrigger:\"enum\"},{content:\"public errordomain ${1:Error} {\\n\t$0\\n}\",name:\"error domain\",scope:\"vala\",tabTrigger:\"errordomain\"},{content:\"for ($1;$2;$3) {\\n\t$0\\n}\",name:\"for\",scope:\"vala\",tabTrigger:\"for\"},{content:\"foreach ($1 in $2) {\\n\t$0\\n}\",name:\"foreach\",scope:\"vala\",tabTrigger:\"foreach\"},{content:\"Gee.ArrayList<${1:G}>($0);\",name:\"Gee.ArrayList\",scope:\"vala\",tabTrigger:\"ArrayList\"},{content:\"Gee.HashMap<${1:K},${2:V}>($0);\",name:\"Gee.HashMap\",scope:\"vala\",tabTrigger:\"HashMap\"},{content:\"Gee.HashSet<${1:G}>($0);\",name:\"Gee.HashSet\",scope:\"vala\",tabTrigger:\"HashSet\"},{content:\"if ($1) {\\n\t$0\\n}\",name:\"if\",scope:\"vala\",tabTrigger:\"if\"},{content:\"interface ${1:InterfaceName}{$2: : SuperInterface} {\\n\t$0\\n}\",name:\"interface\",scope:\"vala\",tabTrigger:\"interface\"},{content:\"public static int main(string [] argv) {\\n\t${0}\\n\treturn 0;\\n}\",name:\"Main function\",scope:\"vala\",tabTrigger:\"main\"},{content:\"namespace $1 {\\n\t$0\\n}\\n\",name:\"namespace (ns)\",scope:\"vala\",tabTrigger:\"ns\"},{content:\"stdout.printf($0);\",name:\"printf\",scope:\"vala\",tabTrigger:\"printf\"},{content:\"${1:public} ${2:Type} ${3:Name} {\\n\tset {\\n\t\t$0\\n\t}\\n\tget {\\n\\n\t}\\n}\",name:\"property (prop)\",scope:\"vala\",tabTrigger:\"prop\"},{content:\"${1:public} ${2:Type} ${3:Name} {\\n\tget {\\n\t\t$0\\n\t}\\n}\",name:\"read-only property (roprop)\",scope:\"vala\",tabTrigger:\"roprop\"},{content:'@\"${1:\\\\$var}\"',name:\"String template (@)\",scope:\"vala\",tabTrigger:\"@\"},{content:\"struct ${1:StructName} {\\n\t$0\\n}\",name:\"struct\",scope:\"vala\",tabTrigger:\"struct\"},{content:\"switch ($1) {\\n\t$0\\n}\",name:\"switch\",scope:\"vala\",tabTrigger:\"switch\"},{content:\"try {\\n\t$2\\n} catch (${1:Error} e) {\\n\t$0\\n}\",name:\"try/catch\",scope:\"vala\",tabTrigger:\"try\"},{content:'\"\"\"$0\"\"\";',name:'Verbatim string (\"\"\")',scope:\"vala\",tabTrigger:\"verbatim\"},{content:\"while ($1) {\\n\t$0\\n}\",name:\"while\",scope:\"vala\",tabTrigger:\"while\"}],t.scope=\"\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/vbscript.js",
    "content": "ace.define(\"ace/snippets/vbscript\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"vbscript\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/velocity.js",
    "content": "ace.define(\"ace/snippets/velocity\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='# macro\\nsnippet #macro\\n\t#macro ( ${1:macroName} ${2:\\\\$var1, [\\\\$var2, ...]} )\\n\t\t${3:## macro code}\\n\t#end\\n# foreach\\nsnippet #foreach\\n\t#foreach ( ${1:\\\\$item} in ${2:\\\\$collection} )\\n\t\t${3:## foreach code}\\n\t#end\\n# if\\nsnippet #if\\n\t#if ( ${1:true} )\\n\t\t${0}\\n\t#end\\n# if ... else\\nsnippet #ife\\n\t#if ( ${1:true} )\\n\t\t${2}\\n\t#else\\n\t\t${0}\\n\t#end\\n#import\\nsnippet #import\\n\t#import ( \"${1:path/to/velocity/format}\" )\\n# set\\nsnippet #set\\n\t#set ( $${1:var} = ${0} )\\n',t.scope=\"velocity\",t.includeScopes=[\"html\",\"javascript\",\"css\"]})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/verilog.js",
    "content": "ace.define(\"ace/snippets/verilog\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"verilog\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/vhdl.js",
    "content": "ace.define(\"ace/snippets/vhdl\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"vhdl\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/wollok.js",
    "content": "ace.define(\"ace/snippets/wollok\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='##\\n## Basic Java packages and import\\nsnippet im\\n\timport\\nsnippet w.l\\n\twollok.lang\\nsnippet w.i\\n\twollok.lib\\n\\n## Class and object\\nsnippet cl\\n\tclass ${1:`Filename(\"\", \"untitled\")`} ${2}\\nsnippet obj\\n\tobject ${1:`Filename(\"\", \"untitled\")`} ${2:inherits Parent}${3}\\nsnippet te\\n\ttest ${1:`Filename(\"\", \"untitled\")`}\\n\\n##\\n## Enhancements\\nsnippet inh\\n\tinherits\\n\\n##\\n## Comments\\nsnippet /*\\n\t/*\\n\t * ${1}\\n\t */\\n\\n##\\n## Control Statements\\nsnippet el\\n\telse\\nsnippet if\\n\tif (${1}) ${2}\\n\\n##\\n## Create a Method\\nsnippet m\\n\tmethod ${1:method}(${2}) ${5}\\n\\n##  \\n## Tests\\nsnippet as\\n\tassert.equals(${1:expected}, ${2:actual})\\n\\n##\\n## Exceptions\\nsnippet ca\\n\tcatch ${1:e} : (${2:Exception} ) ${3}\\nsnippet thr\\n\tthrow\\nsnippet try\\n\ttry {\\n\t\t${3}\\n\t} catch ${1:e} : ${2:Exception} {\\n\t}\\n\\n##\\n## Javadocs\\nsnippet /**\\n\t/**\\n\t * ${1}\\n\t */\\n\\n##\\n## Print Methods\\nsnippet print\\n\tconsole.println(\"${1:Message}\")\\n\\n##\\n## Setter and Getter Methods\\nsnippet set\\n\tmethod set${1:}(${2:}) {\\n\t\t$1 = $2\\n\t}\\nsnippet get\\n\tmethod get${1:}() {\\n\t\treturn ${1:};\\n\t}\\n\\n##\\n## Terminate Methods or Loops\\nsnippet re\\n\treturn',t.scope=\"wollok\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/xml.js",
    "content": "ace.define(\"ace/snippets/xml\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"xml\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/xquery.js",
    "content": "ace.define(\"ace/snippets/xquery\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText='snippet for\\n\tfor $${1:item} in ${2:expr}\\nsnippet return\\n\treturn ${1:expr}\\nsnippet import\\n\timport module namespace ${1:ns} = \"${2:http://www.example.com/}\";\\nsnippet some\\n\tsome $${1:varname} in ${2:expr} satisfies ${3:expr}\\nsnippet every\\n\tevery $${1:varname} in ${2:expr} satisfies ${3:expr}\\nsnippet if\\n\tif(${1:true}) then ${2:expr} else ${3:true}\\nsnippet switch\\n\tswitch(${1:\"foo\"})\\n\tcase ${2:\"foo\"}\\n\treturn ${3:true}\\n\tdefault return ${4:false}\\nsnippet try\\n\ttry { ${1:expr} } catch ${2:*} { ${3:expr} }\\nsnippet tumbling\\n\tfor tumbling window $${1:varname} in ${2:expr}\\n\tstart at $${3:start} when ${4:expr}\\n\tend at $${5:end} when ${6:expr}\\n\treturn ${7:expr}\\nsnippet sliding\\n\tfor sliding window $${1:varname} in ${2:expr}\\n\tstart at $${3:start} when ${4:expr}\\n\tend at $${5:end} when ${6:expr}\\n\treturn ${7:expr}\\nsnippet let\\n\tlet $${1:varname} := ${2:expr}\\nsnippet group\\n\tgroup by $${1:varname} := ${2:expr}\\nsnippet order\\n\torder by ${1:expr} ${2:descending}\\nsnippet stable\\n\tstable order by ${1:expr}\\nsnippet count\\n\tcount $${1:varname}\\nsnippet ordered\\n\tordered { ${1:expr} }\\nsnippet unordered\\n\tunordered { ${1:expr} }\\nsnippet treat \\n\ttreat as ${1:expr}\\nsnippet castable\\n\tcastable as ${1:atomicType}\\nsnippet cast\\n\tcast as ${1:atomicType}\\nsnippet typeswitch\\n\ttypeswitch(${1:expr})\\n\tcase ${2:type}  return ${3:expr}\\n\tdefault return ${4:expr}\\nsnippet var\\n\tdeclare variable $${1:varname} := ${2:expr};\\nsnippet fn\\n\tdeclare function ${1:ns}:${2:name}(){\\n\t${3:expr}\\n\t};\\nsnippet module\\n\tmodule namespace ${1:ns} = \"${2:http://www.example.com}\";\\n',t.scope=\"xquery\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/snippets/yaml.js",
    "content": "ace.define(\"ace/snippets/yaml\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.snippetText=undefined,t.scope=\"yaml\"})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-ambiance.js",
    "content": "ace.define(\"ace/theme/ambiance\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-ambiance\",t.cssText=\".ace-ambiance .ace_gutter {background-color: #3d3d3d;background-image: -moz-linear-gradient(left, #3D3D3D, #333);background-image: -ms-linear-gradient(left, #3D3D3D, #333);background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#3D3D3D), to(#333));background-image: -webkit-linear-gradient(left, #3D3D3D, #333);background-image: -o-linear-gradient(left, #3D3D3D, #333);background-image: linear-gradient(left, #3D3D3D, #333);background-repeat: repeat-x;border-right: 1px solid #4d4d4d;text-shadow: 0px 1px 1px #4d4d4d;color: #222;}.ace-ambiance .ace_gutter-layer {background: repeat left top;}.ace-ambiance .ace_gutter-active-line {background-color: #3F3F3F;}.ace-ambiance .ace_fold-widget {text-align: center;}.ace-ambiance .ace_fold-widget:hover {color: #777;}.ace-ambiance .ace_fold-widget.ace_start,.ace-ambiance .ace_fold-widget.ace_end,.ace-ambiance .ace_fold-widget.ace_closed{background: none;border: none;box-shadow: none;}.ace-ambiance .ace_fold-widget.ace_start:after {content: '\\u25be'}.ace-ambiance .ace_fold-widget.ace_end:after {content: '\\u25b4'}.ace-ambiance .ace_fold-widget.ace_closed:after {content: '\\u2023'}.ace-ambiance .ace_print-margin {border-left: 1px dotted #2D2D2D;right: 0;background: #262626;}.ace-ambiance .ace_scroller {-webkit-box-shadow: inset 0 0 10px black;-moz-box-shadow: inset 0 0 10px black;-o-box-shadow: inset 0 0 10px black;box-shadow: inset 0 0 10px black;}.ace-ambiance {color: #E6E1DC;background-color: #202020;}.ace-ambiance .ace_cursor {border-left: 1px solid #7991E8;}.ace-ambiance .ace_overwrite-cursors .ace_cursor {border: 1px solid #FFE300;background: #766B13;}.ace-ambiance.normal-mode .ace_cursor-layer {z-index: 0;}.ace-ambiance .ace_marker-layer .ace_selection {background: rgba(221, 240, 255, 0.20);}.ace-ambiance .ace_marker-layer .ace_selected-word {border-radius: 4px;border: 8px solid #3f475d;box-shadow: 0 0 4px black;}.ace-ambiance .ace_marker-layer .ace_step {background: rgb(198, 219, 174);}.ace-ambiance .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 255, 255, 0.25);}.ace-ambiance .ace_marker-layer .ace_active-line {background: rgba(255, 255, 255, 0.031);}.ace-ambiance .ace_invisible {color: #333;}.ace-ambiance .ace_paren {color: #24C2C7;}.ace-ambiance .ace_keyword {color: #cda869;}.ace-ambiance .ace_keyword.ace_operator {color: #fa8d6a;}.ace-ambiance .ace_punctuation.ace_operator {color: #fa8d6a;}.ace-ambiance .ace_identifier {}.ace-ambiance .ace-statement {color: #cda869;}.ace-ambiance .ace_constant {color: #CF7EA9;}.ace-ambiance .ace_constant.ace_language {color: #CF7EA9;}.ace-ambiance .ace_constant.ace_library {}.ace-ambiance .ace_constant.ace_numeric {color: #78CF8A;}.ace-ambiance .ace_invalid {text-decoration: underline;}.ace-ambiance .ace_invalid.ace_illegal {color:#F8F8F8;background-color: rgba(86, 45, 86, 0.75);}.ace-ambiance .ace_invalid,.ace-ambiance .ace_deprecated {text-decoration: underline;font-style: italic;color: #D2A8A1;}.ace-ambiance .ace_support {color: #9B859D;}.ace-ambiance .ace_support.ace_function {color: #DAD085;}.ace-ambiance .ace_function.ace_buildin {color: #9b859d;}.ace-ambiance .ace_string {color: #8f9d6a;}.ace-ambiance .ace_string.ace_regexp {color: #DAD085;}.ace-ambiance .ace_comment {font-style: italic;color: #555;}.ace-ambiance .ace_comment.ace_doc {}.ace-ambiance .ace_comment.ace_doc.ace_tag {color: #666;font-style: normal;}.ace-ambiance .ace_definition,.ace-ambiance .ace_type {color: #aac6e3;}.ace-ambiance .ace_variable {color: #9999cc;}.ace-ambiance .ace_variable.ace_language {color: #9b859d;}.ace-ambiance .ace_xml-pe {color: #494949;}.ace-ambiance .ace_gutter-layer,.ace-ambiance .ace_text-layer {background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAQAAAAHUWYVAABFFUlEQVQYGbzBCeDVU/74/6fj9HIcx/FRHx9JCFmzMyGRURhLZIkUsoeRfUjS2FNDtr6WkMhO9sm+S8maJfu+Jcsg+/o/c+Z4z/t97/vezy3z+z8ekGlnYICG/o7gdk+wmSHZ1z4pJItqapjoKXWahm8NmV6eOTbWUOp6/6a/XIg6GQqmenJ2lDHyvCFZ2cBDbmtHA043VFhHwXxClWmeYAdLhV00Bd85go8VmaFCkbVkzlQENzfBDZ5gtN7HwF0KDrTwJ0dypSOzpaKCMwQHKTIreYIxlmhXTzTWkVm+LTynZhiSBT3RZQ7aGfjGEd3qyXQ1FDymqbKxpspERQN2MiRjNZlFFQXfCNFm9nM1zpAsoYjmtRTc5ajwuaXc5xrWskT97RaKzAGe5ARHhVUsDbjKklziiX5WROcJwSNCNI+9w1Jwv4Zb2r7lCMZ4oq5C0EdTx+2GzNuKpJ+iFf38JEWkHJn9DNF7mmBDITrWEg0VWL3pHU20tSZnuqWu+R3BtYa8XxV1HO7GyD32UkOpL/yDloINFTmvtId+nmAjxRw40VMwVKiwrKLE4bK5UOVntYwhOcSSXKrJHKPJedocpGjVz/ZMIbnYUPB10/eKCrs5apqpgVmWzBYWpmtKHecJPjaUuEgRDDaU0oZghCJ6zNMQ5ZhDYx05r5v2muQdM0EILtXUsaKiQX9WMEUotagQzFbUNN6NUPC2nm5pxEWGCjMc3GdJHjSU2kORLK/JGSrkfGEIjncU/CYUnOipoYemwj8tST9NsJmB7TUVXtbUtXATJVZXBMvYeTXJfobgJUPmGMP/yFaWonaa6BcFO3nqcIqCozSZoZoSr1g4zJOzuyGnxTEX3lUEJ7WcZgme8ddaWvWJo2AJR9DZU3CUIbhCSG6ybSwN6qtJVnCU2svDTP2ZInOw2cBTrqtQahtNZn9NcJ4l2NaSmSkkP1noZWnVwkLmdUPOwLZEwy2Z3S3R+4rIG9hcbpPXHFVWcQdZkn2FOta3cKWQnNRC5g1LsJah4GCzSVsKnCOY5OAFRTBekyyryeyilhFKva75r4Mc0aWanGEaThcy31s439KKxTzJYY5WTHPU1FtIHjQU3Oip4xlNzj/lBw23dYZVliQa7WAXf4shetcQfatI+jWRDBPmyNeW6A1P5kdDgyYJlba0BIM8BZu1JfrFwItyjcAMR3K0BWOIrtMEXyhyrlVEx3ui5dUBjmB/Q3CXW85R4mBD0s7B+4q5tKUjOlb9qqmhi5AZ6GFIC5HXtOobdYGlVdMVbNJ8toNTFcHxnoL+muBagcctjWnbNMuR00uI7nQESwg5q2qqrKWIfrNUmeQocY6HuyxJV02wj36w00yhpmUFenv4p6fUkZYqLyuinx2RGOjhCXYyJF84oiU00YMOOhhquNdfbOB7gU88pY4xJO8LVdp6/q2voeB4R04vIdhSE40xZObx1HGGJ/ja0LBthFInKaLPPFzuCaYaoj8JjPME8yoyxo6zlBqkiUZYgq00OYMswbWO5NGmq+xhipxHLRW29ARjNKXO0wRnear8XSg4XFPLKEPUS1GqvyLwiuBUoa7zpZ0l5xxFwWmWZC1H5h5FwU8eQ7K+g8UcVY6TMQreVQT/8uQ8Z+ALIXnSEa2pYZQneE9RZbSBNYXfWYJzW/h/4j4Dp1tYVcFIC5019Vyi4ThPqSFCzjGWaHQTBU8q6vrVwgxP9Lkm840imWKpcLCjYTtrKuwvsKSnrvHCXGkSMk9p6lhckfRpIeis+N2PiszT+mFLspyGleUhDwcLrZqmyeylxwjBcKHEapqkmyangyLZRVOijwOtCY5SsG5zL0OwlCJ4y5KznF3EUNDDrinwiyLZRzOXtlBbK5ITHFGLp8Q0R6ab6mS7enI2cFrxOyHvOCFaT1HThS1krjCwqWeurCkk+willhCC+RSZnRXBiZaC5RXRIZYKp2lyfrHwiKPKR0JDzrdU2EFgpidawlFDR6FgXUMNa+g1FY3bUQh2cLCwosRdnuQTS/S+JVrGLeWIvtQUvONJxlqSQYYKpwoN2kaocLjdVsis4Mk80ESF2YpSkzwldjHkjFCUutI/r+EHDU8oCs6yzL3PhWiEooZdFMkymlas4AcI3KmoMMNSQ3tHzjGWCrcJJdYyZC7QFGwjRL9p+MrRkAGWzIaWCn9W0F3TsK01c2ZvQw0byvxuQU0r1lM0qJO7wW0kRIMdDTtXEdzi4VIh+EoIHm0mWtAtpCixlabgn83fKTI7anJe9ST7WIK1DMGpQmYeA58ImV6ezOGOzK2Kgq01pd60cKWiUi9Lievb/0vIDPHQ05Kzt4ddPckQBQtoaurjyHnek/nKzpQLrVgKPjIkh2v4uyezpv+Xoo7fPFXaGFp1vaLKxQ4uUpQQS5VuQs7BCq4xRJv7fwpVvvFEB3j+620haOuocqMhWd6TTPAEx+mdFNGHdranFe95WrWmIvlY4F1Dle2ECgc6cto7SryuqGGGha0tFQ5V53migUKmg6XKAo4qS3mik+0OZpAhOLeZKicacgaYcyx5hypYQE02ZA4xi/pNhOQxR4klNKyqacj+mpxnLTnnGSo85++3ZCZq6lrZkXlGEX3o+C9FieccJbZWVFjC0Yo1FZnJhoYMFoI1hEZ9r6hwg75HwzBNhbZCdJEfJwTPGzJvaKImw1yYX1HDAmpXR+ZJQ/SmgqMNVQb5vgamGwLtt7VwvP7Qk1xpiM5x5Cyv93E06MZmgs0Nya2azIKOYKCGBQQW97RmhKNKF02JZqHEJ4o58qp7X5EcZmc56trXEqzjCBZ1MFGR87Ql2tSTs6CGxS05PTzRQorkbw7aKoKXFDXsYW42VJih/q+FP2BdTzDTwVqOYB13liM50vG7wy28qagyuIXMeQI/Oqq8bcn5wJI50xH00CRntyfpL1T4hydYpoXgNiFzoIUTDZnLNRzh4TBHwbYGDvZkxmlyJloyr6tRihpeUG94GnKtIznREF0tzJG/OOr73JBcrSh1k6WuTprgLU+mnSGnv6Zge0NNz+kTDdH8nuAuTdJDCNb21LCiIuqlYbqGzT3RAoZofQfjFazkqeNWdYaGvYTM001EW2oKPvVk1ldUGSgUtHFwjKM1h9jnFcmy5lChoLNaQMGGDsYbKixlaMBmmsx1QjCfflwTfO/gckW0ruZ3jugKR3R5W9hGUWqCgxuFgsuaCHorotGKzGaeZB9DMsaTnKCpMtwTvOzhYk0rdrArKCqcaWmVk1+F372ur1YkKxgatI8Qfe1gIX9wE9FgS8ESmuABIXnRUbCapcKe+nO7slClSZFzpV/LkLncEb1qiO42fS3R855Su2mCLh62t1SYZZYVmKwIHjREF2uihTzB20JOkz7dkxzYQnK0UOU494wh+VWRc6Un2kpTaVgLDFEkJ/uhzRcI0YKGgpGWOlocBU/a4fKoJ/pEaNV6jip3+Es9VXY078rGnmAdf7t9ylPXS34RBSuYPs1UecZTU78WanhBCHpZ5sAoTz0LGZKjPf9TRypqWEiTvOFglL1fCEY3wY/++rbk7C8bWebA6p6om6PgOL2kp44TFJlVNBXae2rqqdZztOJpT87GQsE9jqCPIe9VReZuQ/CIgacsyZdCpIScSYqcZk8r+nsyCzhyfhOqHGOIvrLknC8wTpFcaYiGC/RU1NRbUeUpocQOnkRpGOrIOcNRx+1uA0UrzhSSt+VyS3SJpnFWkzNDqOFGIWcfR86DnmARTQ1HKIL33ExPiemeOhYSSjzlSUZZuE4TveoJLnBUOFof6KiysCbnAEcZgcUNTDOwkqWu3RWtmGpZwlHhJENdZ3miGz0lJlsKnjbwqSHQjpxnFDlTLLwqJPMZMjd7KrzkSG7VsxXBZE+F8YZkb01Oe00yyRK9psh5SYh29ySPKBo2ylNht7ZkZnsKenjKNJu9PNEyZpaCHv4Kt6RQsLvAVp7M9kIimmCUwGeWqLMmGuIotYMmWNpSahkhZw9FqZsVnKJhsjAHvtHMsTM9fCI06Dx/u3vfUXCqfsKRc4oFY2jMsoo/7DJDwZ1CsIKnJu+J9ldkpmiCxQx1rWjI+T9FwcWWzOuaYH0Hj7klNRVWEQpmaqosakiGNTFHdjS/qnUdmf0NJW5xsL0HhimCCZZSRzmSPTXJQ4aaztAwtZnoabebJ+htCaZ7Cm535ByoqXKbX1WRc4Eh2MkRXWzImVc96Cj4VdOKVxR84VdQsIUM8Psoou2byVHyZFuq7O8otbSQ2UAoeEWTudATLGSpZzVLlXVkPU2Jc+27lsw2jmg5T5VhbeE3BT083K9WsTTkFU/Osi0rC5lRlpwRHUiesNS0sOvmqGML1aRbPAxTJD9ZKtxuob+hhl8cwYGWpJ8nub7t5p6coYbMovZ1BTdaKn1jYD6h4GFDNFyT/Kqe1XCXphXHOKLZmuRSRdBPEfVUXQzJm5YGPGGJdvAEr7hHNdGZnuBvrpciGmopOLf5N0uVMy0FfYToJk90uUCbJupaVpO53UJXR2bVpoU00V2KOo4zMFrBd0Jtz2pa0clT5Q5L8IpQ177mWQejPMEJhuQjS10ref6HHjdEhy1P1EYR7GtO0uSsKJQYLiTnG1rVScj5lyazpqWGl5uBbRWl7m6ixGOOnEsMJR7z8J0n6KMnCdxhiNYQCoZ6CmYLnO8omC3MkW3bktlPmEt/VQQHejL3+dOE5FlPdK/Mq8hZxxJtLyRrepLThYKbLZxkSb5W52vYxNOaOxUF0yxMUPwBTYqCzy01XayYK0sJyWBLqX0MwU5CzoymRzV0EjjeUeLgDpTo6ij42ZAzvD01dHUUTPLU96MdLbBME8nFBn7zJCMtJcZokn8YoqU0FS5WFKyniHobguMcmW8N0XkWZjkyN3hqOMtS08r+/xTBwpZSZ3qiVRX8SzMHHjfUNFjgHEPmY9PL3ykEzxkSre/1ZD6z/NuznuB0RcE1TWTm9zRgfUWVJiG6yrzgmWPXC8EAR4Wxhlad0ZbgQyEz3pG5RVEwwDJH2mgKpjcTiCOzn1lfUWANFbZ2BA8balnEweJC9J0iuaeZoI+ippFCztEKVvckR2iice1JvhVytrQwUAZpgsubCPaU7xUe9vWnaOpaSBEspalykhC9bUlOMpT42ZHca6hyrqKmw/wMR8H5ZmdFoBVJb03O4UL0tSNnvIeRmkrLWqrs78gcrEn2tpcboh0UPOW3UUR9PMk4T4nnNKWmCjlrefhCwxRNztfmIQVdDElvS4m1/WuOujoZCs5XVOjtKPGokJzsYCtFYoWonSPT21DheU/wWhM19FcElwqNGOsp9Q8N/cwXaiND1MmeL1Q5XROtYYgGeFq1aTMsoMmcrKjQrOFQTQ1fmBYhmW6o8Jkjc7iDJRTBIo5kgJD5yMEYA3srCg7VFKwiVJkmRCc5ohGOKhsYMn/XBLdo5taZjlb9YAlGWRimqbCsoY7HFAXLa5I1HPRxMMsQDHFkWtRNniqT9UEeNjcE7RUlrCJ4R2CSJuqlKHWvJXjAUNcITYkenuBRB84TbeepcqTj3zZyFJzgYQdHnqfgI0ddUwS6GqWpsKWhjq9cV0vBAEMN2znq+EBfIWT+pClYw5xsTlJU6GeIBsjGmmANTzJZiIYpgrM0Oa8ZMjd7NP87jxhqGOhJlnQtjuQpB+8aEE00wZFznSJPyHxgH3HkPOsJFvYk8zqCHzTs1BYOa4J3PFU+UVRZxlHDM4YavlNUuMoRveiZA2d7grMNc2g+RbSCEKzmgYsUmWmazFJyoiOZ4KnyhKOGRzWJa0+moyV4TVHDzn51Awtqaphfk/lRQ08FX1iiqxTB/kLwd0VynKfEvI6cd4XMV5bMhZ7gZUWVzYQ6Nm2BYzxJbw3bGthEUUMfgbGeorae6DxHtJoZ6alhZ0+ytiVoK1R4z5PTrOECT/SugseEOlb1MMNR4VRNcJy+V1Hg9ONClSZFZjdHlc6W6FBLdJja2MC5hhpu0DBYEY1TFGwiFAxRRCsYkiM9JRb0JNMVkW6CZYT/2EiTGWmo8k+h4FhDNE7BvppoTSFnmCV5xZKzvcCdDo7VVPnIU+I+Rc68juApC90MwcFCsJ5hDqxgScYKreruyQwTqrzoqDCmhWi4IbhB0Yrt3RGa6GfDv52rKXWhh28dyZaWUvcZeMTBaZoSGyiCtRU5J8iviioHaErs7Jkj61syVzTTgOcUOQ8buFBTYWdL5g3T4qlpe0+wvD63heAXRfCCIed9RbCsp2CiI7raUOYOTU13N8PNHvpaGvayo4a3LLT1lDrVEPT2zLUlheB1R+ZTRfKWJ+dcocLJfi11vyJ51lLqJ0WD7tRwryezjiV5W28uJO9qykzX8JDe2lHl/9oyBwa2UMfOngpXCixvKdXTk3wrsKmiVYdZIqsoWEERjbcUNDuiaQomGoIbFdEHmsyWnuR+IeriKDVLnlawlyNHKwKlSU631PKep8J4Q+ayjkSLKYLhalNHlYvttb6fHm0p6OApsZ4l2VfdqZkjuysy6ysKLlckf1KUutCTs39bmCgEyyoasIWlVaMF7mgmWtBT8Kol5xpH9IGllo8cJdopcvZ2sImlDmMIbtDk3KIpeNiS08lQw11NFPTwVFlPP6pJ2gvRfI7gQUfmNAtf6Gs0wQxDsKGlVBdF8rCa3jzdwMaGHOsItrZk7hAyOzpK9VS06j5F49b0VNGOOfKs3lDToMsMBe9ZWtHFEgxTJLs7qrygKZjUnmCYoeAqeU6jqWuLJup4WghOdvCYJnrSkSzoyRkm5M2StQwVltPkfCAk58tET/CSg+8MUecmotMEnhBKfWBIZsg2ihruMJQaoIm+tkTLKEqspMh00w95gvFCQRtDwTT1gVDDSEVdlwqZfxoQRbK0g+tbiBZxzKlpnpypejdDwTaeOvorMk/IJE10h9CqRe28hhLbe0pMsdSwv4ZbhKivo2BjDWfL8UKJgeavwlwb5KlwhyE4u4XkGE2ytZCznKLCDZZq42VzT8HLCrpruFbIfOIINmh/qCdZ1ZBc65kLHR1Bkyf5zn6pN3SvGKIlFNGplhrO9QSXanLOMQTLCa0YJCRrCZm/CZmrLTm7WzCK4GJDiWUdFeYx1LCFg3NMd0XmCuF3Y5rITLDUsYS9zoHVzwnJoYpSTQoObyEzr4cFBNqYTopoaU/wkyLZ2lPhX/5Y95ulxGTV7KjhWrOZgl8MyUUafjYraNjNU1N3IWcjT5WzWqjwtoarHSUObGYO3GCJZpsBlnJGPd6ZYLyl1GdCA2625IwwJDP8GUKymbzuyPlZlvTUsaUh5zFDhRWFzPKKZLAlWdcQbObgF9tOqOsmB1dqcqYJmWstFbZRRI9poolmqiLnU0POvxScpah2iSL5UJNzgScY5+AuIbpO0YD3NCW+dLMszFSdFCWGqG6eVq2uYVNDdICGD6W7EPRWZEY5gpsE9rUkS3mijzzJnm6UpUFXG1hCUeVoS5WfNcFpblELL2qqrCvMvRfd45oalvKU2tiQ6ePJOVMRXase9iTtLJztPxJKLWpo2CRDcJwn2sWSLKIO1WQWNTCvpVUvOZhgSC40JD0dOctaSqzkCRbXsKlb11Oip6PCJ0IwSJM31j3akRxlP7Rwn6aGaUL0qiLnJkvB3xWZ2+Q1TfCwpQH3G0o92UzmX4o/oJNQMMSQc547wVHhdk+VCw01DFYEnTxzZKAm74QmeNNR1w6WzEhNK15VJzuCdxQ53dRUDws5KvwgBMOEgpcVNe0hZI6RXT1Jd0cyj5nsaEAHgVmGaJIlWdsc5Ui2ElrRR6jrRAttNMEAIWrTDFubkZaok7/AkzfIwfuWVq0jHzuCK4QabtLUMVPB3kJ0oyHTSVFlqMALilJf2Rf8k5aaHtMfayocLBS8L89oKoxpJvnAkDPa0qp5DAUTHKWmCcnthlou8iCKaFFLHWcINd1nyIwXqrSxMNmSs6KmoL2QrKuWtlQ5V0120xQ5vRyZS1rgFkWwhiOwiuQbR0OOVhQM9iS3tiXp4RawRPMp5tDletOOBL95MpM01dZTBM9pkn5qF010rIeHFcFZhmSGpYpTsI6nwhqe5C9ynhlpp5ophuRb6WcJFldkVnVEwwxVfrVkvnWUuNLCg5bgboFHPDlDPDmnK7hUrWiIbjadDclujlZcaokOFup4Ri1kacV6jmrrK1hN9bGwpKEBQ4Q6DvIUXOmo6U5LqQM6EPyiKNjVkPnJkDPNEaxhiFay5ExW1NXVUGqcpYYdPcGiCq7z/TSlbhL4pplWXKd7NZO5QQFrefhRQW/NHOsqcIglc4UhWklR8K0QzbAw08CBDnpbgqXdeD/QUsM4RZXDFBW6WJKe/mFPdH0LtBgiq57wFLzlyQzz82qYx5D5WJP5yVJDW01BfyHnS6HKO/reZqId1WGa4Hkh2kWodJ8i6KoIPlAj2hPt76CzXsVR6koPRzWTfKqIentatYpQw2me4AA3y1Kind3SwoOKZDcFXTwl9tWU6mfgRk9d71sKtlNwrjnYw5tC5n5LdKiGry3JKNlHEd3oaMCFHrazBPMp/uNJ+V7IudcSbeOIdjUEdwl0VHCOZo5t6YluEuaC9mQeMgSfOyKnYGFHcIeQ84yQWbuJYJpZw5CzglDH7gKnWqqM9ZTaXcN0TeYhR84eQtJT76JJ1lREe7WnnvsMmRc9FQ7SBBM9mV3lCUdmHk/S2RAMt0QjFNFqQpWjDPQ01DXWUdDBkXziKPjGEP3VP+zIWU2t7im41FOloyWzn/L6dkUy3VLDaZ6appgDLHPjJEsyvJngWEPUyVBiAaHCTEXwrLvSEbV1e1gKJniicWorC1MUrVjB3uDhJE/wgSOzk1DXpk0k73qCM8xw2UvD5kJmDUfOomqMpWCkJRlvKXGmoeBm18USjVIk04SClxTB6YrgLAPLWYK9HLUt5cmc0vYES8GnTeRc6skZbQkWdxRsIcyBRzx1DbTk9FbU0caTPOgJHhJKnOGIVhQqvKmo0llRw9sabrZkDtdg3PqaKi9oatjY8B+G371paMg6+mZFNNtQ04mWBq3rYLOmtWWQp8KJnpy9DdFensyjdqZ+yY40VJlH8wcdLzC8PZnvHMFUTZUrDTkLyQaGus5X5LzpYAf3i+e/ZlhqGqWhh6Ou6xTR9Z6oi5AZZtp7Mj2EEm8oSpxiYZCHU/1fbGdNNNRRoZMhmilEb2gqHOEJDtXkHK/JnG6IrvbPCwV3NhONVdS1thBMs1T4QOBcTWa2IzhMk2nW5Kyn9tXUtpv9RsG2msxk+ZsQzRQacJncpgke0+T8y5Fzj8BiGo7XlJjaTIlpQs7KFjpqGnKuoyEPeIKnFMkZHvopgh81ySxNFWvJWcKRs70j2FOT012IllEEO1n4pD1513Yg2ssQPOThOkvyrqHUdEXOSEsihmBbTbKX1kLBPWqWkLOqJbjB3GBIZmoa8qWl4CG/iZ7oiA72ZL7TJNeZUY7kFQftDcHHluBzRbCegzMtrRjVQpX2lgoPKKLJAkcbMl01XK2p7yhL8pCBbQ3BN2avJgKvttcrWDK3CiUOVxQ8ZP+pqXKyIxnmBymCg5vJjNfkPK4+c8cIfK8ocVt7kmfd/I5SR1hKvCzUtb+lhgc00ZaO6CyhIQP1Uv4yIZjload72PXX0OIJvnFU+0Zf6MhsJwTfW0r0UwQfW4LNLZl5HK261JCZ4qnBaAreVAS3WrjV0LBnNDUNNDToCEeFfwgcb4gOEqLRhirWkexrCEYKVV711DLYEE1XBEsp5tpTGjorkomKYF9FDXv7fR3BGwbettSxnyL53MBPjsxDZjMh+VUW9NRxq1DhVk+FSxQcaGjV9Pawv6eGByw5qzoy7xk4RsOShqjJwWKe/1pEEfzkobeD/dQJmpqedcyBTy2sr4nGNRH0c0SPWTLrqAc0OQcb/gemKgqucQT7ySWKCn2EUotoCvpZct7RO2sy/QW0IWcXd7pQRQyZVwT2USRO87uhjioTLKV2brpMUcMQRbKH/N2T+UlTpaMls6cmc6CCNy3JdYYSUzzJQ4oSD3oKLncULOiJvjBEC2oqnCJkJluCYy2ZQ5so9YYlZ1VLlQU1mXEW1jZERwj/MUSRc24TdexlqLKfQBtDTScJUV8FszXBEY5ktpD5Ur9hYB4Nb1iikw3JoYpkKX+RodRKFt53MMuRnKSpY31PwYaGaILh3wxJGz9TkTPEETxoCWZrgvOlmyMzxFEwVJE5xZKzvyJ4WxEc16Gd4Xe3Weq4XH2jKRikqOkGQ87hQnC7wBmGYLAnesX3M+S87eFATauuN+Qcrh7xIxXJbUIdMw3JGE3ylCWzrieaqCn4zhGM19TQ3z1oH1AX+pWEqIc7wNGAkULBo/ZxRaV9NNyh4Br3rCHZzbzmSfawBL0dNRwpW1kK9mxPXR9povcdrGSZK9c2k0xwFGzjuniCtRSZCZ6ccZ7gaktmgAOtKbG/JnOkJrjcQTdFMsxRQ2cLY3WTIrlCw1eWKn8R6pvt4GFDso3QoL4a3nLk3G6JrtME3dSenpx7PNFTmga0EaJTLQ061sEeQoWXhSo9LTXsaSjoJQRXeZLtDclbCrYzfzHHeaKjHCVOUkQHO3JeEepr56mhiyaYYKjjNU+Fed1wS5VlhWSqI/hYUdDOkaxiKehoyOnrCV5yBHtbWFqTHCCwtpDcYolesVR5yUzTZBb3RNMd0d6WP+SvhuBmRcGxnuQzT95IC285cr41cLGQ6aJJhmi4TMGempxeimBRQw1tFKV+8jd6KuzoSTqqDxzRtpZkurvKEHxlqXKRIjjfUNNXQsNOsRScoWFLT+YeRZVD3GRN0MdQcKqQjHDMrdGGVu3iYJpQx3WGUvfbmxwFfR20WBq0oYY7LMFhhgYtr8jpaEnaOzjawWWaTP8mMr0t/EPDPoqcnxTBI5o58L7uoWnMrpoqPwgVrlAUWE+V+TQl9rawoyP6QGAlQw2TPRX+YSkxyBC8Z6jhHkXBgQL7WII3DVFnRfCrBfxewv9D6xsyjys4VkhWb9pUU627JllV0YDNHMku/ldNMMXDEo4aFnAkk4U6frNEU4XgZUPmEKHUl44KrzmYamjAbh0JFvGnaTLPu1s9jPCwjFpYiN7z1DTOk/nc07CfDFzmCf7i+bfNHXhDtLeBXzTBT5rkMvWOIxpl4EMh2LGJBu2syDnAEx2naEhHDWMMzPZEhygyS1mS5RTJr5ZkoKbEUoYqr2kqdDUE8ztK7OaIntJkFrIECwv8LJTaVx5XJE86go8dFeZ3FN3rjabCAYpoYEeC9zzJVULBbmZhDyd7ko09ydpNZ3nm2Kee4FPPXHnYEF1nqOFEC08LUVcDvYXkJHW8gTaKCk9YGOeIJhqiE4ToPEepdp7IWFjdwnWaufGMwJJCMtUTTBBK9BGCOy2tGGrJTHIwyEOzp6aPzNMOtlZkDvcEWpP5SVNhfkvDxhmSazTJXYrM9U1E0xwFVwqZQwzJxw6+kGGGUj2FglGGmnb1/G51udRSMNlTw6GGnCcUwVcOpmsqTHa06o72sw1RL02p9z0VbnMLOaIX3QKaYKSCFQzBKEUNHTSc48k53RH9wxGMtpQa5KjjW0W0n6XCCCG4yxNNdhQ4R4l1Ff+2sSd6UFHiIEOyqqFgT01mEUMD+joy75jPhOA+oVVLm309FR4yVOlp4RhLiScNmSmaYF5Pw0STrOIoWMSR2UkRXOMp+M4SHW8o8Zoi6OZgjKOaFar8zZDzkWzvKOjkKBjmCXby8JahhjXULY4KlzgKLvAwxVGhvyd4zxB1d9T0piazmKLCVZY5sKiD0y2ZSYrkUEPUbIk+dlQ4SJHTR50k1DPaUWIdTZW9NJwnJMOECgd7ou/MnppMJ02O1VT4Wsh85MnZzcFTngpXGKo84qmwgKbCL/orR/SzJ2crA+t6Mp94KvxJUeIbT3CQu1uIdlQEOzlKfS3UMcrTiFmOuroocrZrT2AcmamOKg8YomeEKm/rlT2sociMaybaUlFhuqHCM2qIJ+rg4EcDFymiDSxzaHdPcpE62pD5kyM5SBMoA1PaUtfIthS85ig1VPiPPYXgYEMNk4Qq7TXBgo7oT57gPUdwgCHzhIVFPFU6OYJzHAX9m5oNrVjeE61miDrqQ4VSa1oiURTsKHC0IfjNwU2WzK6eqK8jWln4g15TVBnqmDteCJ501PGAocJhhqjZdtBEB6lnhLreFJKxmlKbeGrqLiSThVIbCdGzloasa6lpMQXHCME2boLpJgT7yWaemu6wBONbqGNVRS0PKIL7LckbjmQtR7K8I5qtqel+T/ChJTNIKLjdUMNIRyvOEko9YYl2cwQveBikCNawJKcLBbc7+JM92mysNvd/Fqp8a0k6CNEe7cnZrxlW0wQXaXjaktnRwNOGZKYiONwS7a1JVheq3WgJHlQUGKHKmp4KAxXR/ULURcNgoa4zhKSLpZR3kxRRb0NmD0OFn+UCS7CzI1nbP6+o4x47QZE5xRCt3ZagnYcvmpYQktXdk5YKXTzBC57kKEe0VVuiSYqapssMS3C9p2CKkHOg8B8Pa8p5atrIw3qezIWanMGa5HRDNF6RM9wcacl0N+Q8Z8hsIkSnaIIdHRUOEebAPy1zbCkhM062FCJtif7PU+UtoVXzWKqM1PxXO8cfdruhFQ/a6x3JKYagvVDhQEtNiyiiSQ7OsuRsZUku0CRNDs4Sog6KKjsZgk2bYJqijgsEenoKeniinRXBn/U3lgpPdyDZynQx8IiioMnCep5Ky8mjGs6Wty0l1hUQTcNWswS3WRp2kCNZwJG8omG8JphPUaFbC8lEfabwP7VtM9yoaNCAjpR41VNhrD9LkbN722v0CoZMByFzhaW+MyzRYEWFDQwN2M4/JiT76PuljT3VU/A36eaIThb+R9oZGOAJ9tewkgGvqOMNRWYjT/Cwu99Q8LqDE4TgbLWxJ1jaDDAERsFOFrobgjUsBScaguXU8kKm2RL19tRypSHnHNlHiIZqgufs4opgQdVdwxBNNFBR6kVFqb8ogimOzB6a6HTzrlDHEpYaxjiiA4TMQobkDg2vejjfwJGWmnbVFAw3H3hq2NyQfG7hz4aC+w3BbwbesG0swYayvpAs6++Ri1Vfzx93mFChvyN5xVHTS+0p9aqCAxyZ6ZacZyw5+7uuQkFPR9DDk9NOiE7X1PCYJVjVUqq7JlrHwWALF5nfHNGjApdpqgzx5OwilDhCiDYTgnc9waGW4BdLNNUQvOtpzDOWHDH8D7TR/A/85KljEQu3NREc4Pl/6B1Hhc8Umb5CsKMmGC9EPcxoT2amwHNCmeOEnOPbklnMkbOgIvO5UMOpQrS9UGVdt6iH/fURjhI/WOpaW9OKLYRod6HCUEdOX000wpDZQ6hwg6LgZfOqo1RfT/CrJzjekXOGhpc1VW71ZLbXyyp+93ILbC1kPtIEYx0FIx1VDrLoVzXRKRYWk809yYlC9ImcrinxtabKnzRJk3lAU1OLEN1j2zrYzr2myHRXJFf4h4QKT1qSTzTB5+ZNTzTRkAxX8FcLV2uS8eoQQ2aAkFzvCM72sJIcJET3WPjRk5wi32uSS9rfZajpWEvj9hW42F4o5NytSXYy8IKHay10VYdrcl4SkqscrXpMwyGOgtkajheSxdQqmpxP1L3t4R5PqasFnrQEjytq6qgp9Y09Qx9o4S1FzhUCn1kyHSzBWLemoSGvOqLNhZyBjmCaAUYpMgt4Ck7wBBMMwWKWgjsUwTaGVsxWC1mYoKiyqqeGKYqonSIRQ3KIkHO0pmAxTdBHkbOvfllfr+AA+7gnc50huVKYK393FOyg7rbPO/izI7hE4CnHHHnJ0ogNPRUGeUpsrZZTBJcrovUcJe51BPsr6GkJdhCCsZ6aTtMEb2pqWkqeVtDXE/QVggsU/Nl86d9RMF3DxvZTA58agu810RWawCiSzzXBeU3MMW9oyJUedvNEvQyNu1f10BSMddR1vaLCYpYa/mGocLSiYDcLbQz8aMn5iyF4xBNMs1P0QEOV7o5gaWGuzSeLue4tt3ro7y4Tgm4G/mopdZgl6q0o6KzJWE3mMksNr3r+a6CbT8g5wZNzT9O7fi/zpaOmnz3BRoqos+tv9zMbdpxsqDBOEewtJLt7cg5wtKKbvldpSzRRCD43VFheCI7yZLppggMVBS/KMAdHODJvOwq2NQSbKKKPLdFWQs7Fqo+mpl01JXYRgq8dnGLhTiFzqmWsUMdpllZdbKlyvSdYxhI9YghOtxR8LgSLWHK62mGGVoxzBE8LNWzqH9CUesQzFy5RQzTc56mhi6fgXEWwpKfE5Z7M05ZgZUPmo6auiv8YKzDYwWBLMErIbKHJvOwIrvEdhOBcQ9JdU1NHQ7CXn2XIDFBKU2WAgcX9UAUzDXWd5alwuyJ41Z9rjKLCL4aCp4WarhPm2rH+SaHUYE001JDZ2ZAzXPjdMpZWvC9wmqIB2lLhQ01D5jO06hghWMndbM7yRJMsoCj1vYbnFQVrW9jak3OlEJ3s/96+p33dEPRV5GxiqaGjIthUU6FFEZyqCa5qJrpBdzSw95IUnOPIrCUUjRZQFrbw5PR0R1qiYx3cb6nrWUMrBmmiBQxVHtTew5ICP/ip6g4hed/Akob/32wvBHsIOX83cI8hGeNeNPCIkPmXe8fPKx84OMSRM1MTdXSwjCZ4S30jVGhvqTRak/OVhgGazHuOCud5onEO1lJr6ecVyaOK6H7zqlBlIaHE0oroCgfvGJIdPcmfLNGLjpz7hZwZQpUbFME0A1cIJa7VNORkgfsMBatbKgwwJM9bSvQXeNOvbIjelg6WWvo5kvbKaJJNHexkKNHL9xRyFlH8Ti2riB5wVPhUk7nGkJnoCe428LR/wRGdYIlmWebCyxou1rCk4g/ShugBDX0V0ZQWkh0dOVsagkM0yV6OoLd5ye+pRlsCr0n+KiQrGuq5yJDzrTAXHtLUMduTDBVKrSm3eHL+6ijxhFDX9Z5gVU/wliHYTMiMFpKLNMEywu80wd3meoFmt6VbRMPenhrOc6DVe4pgXU8DnnHakLOIIrlF4FZPIw6R+zxBP0dyq6OOZ4Q5sLKCcz084ok+VsMMyQhNZmmBgX5xIXOEJTmi7VsGTvMTNdHHhpzdbE8Du2oKxgvBqQKdDDnTFOylCFaxR1syz2iqrOI/FEpNc3C6f11/7+ASS6l2inq2ciTrCCzgyemrCL5SVPjQkdPZUmGy2c9Sw9FtR1sS30RmsKPCS4rkIC/2U0MduwucYolGaPjKEyhzmiPYXagyWbYz8LWBDdzRimAXzxx4z8K9hpzlhLq+NiQ97HuKorMUfK/OVvC2JfiHUPCQI/q7J2gjK+tTDNxkCc4TMssqCs4TGtLVwQihyoAWgj9bosU80XGW6Ac9TJGziaUh5+hnFcHOnlaM1iRn29NaqGENTTTSUHCH2tWTeV0osUhH6psuVLjRUmGWhm6OZEshGeNowABHcJ2Bpy2ZszRcKkRXd2QuKVEeXnbfaEq825FguqfgfE2whlChSRMdron+LATTPQ2Z369t4B9C5gs/ylzv+CMmepIDPclFQl13W0rspPd1JOcbghGOEutqCv5qacURQl3dDKyvyJlqKXGPgcM9FfawJAMVmdcspcYKOZc4GjDYkFlK05olNMHyHn4zFNykyOxt99RkHlfwmiHo60l2EKI+mhreEKp080Tbug08BVPcgoqC5zWt+NLDTZ7oNSF51N1qie7Va3uCCwyZbkINf/NED6jzOsBdZjFN8oqG3wxVunqCSYYKf3EdhJyf9YWGf7tRU2oH3VHgPr1fe5J9hOgHd7xQ0y7qBwXr23aGErP0cm64JVjZwsOGqL+mhNgZmhJLW2oY4UhedsyBgzrCKrq7BmcpNVhR6jBPq64Vgi+kn6XE68pp8J5/+0wRHGOpsKenQn9DZntPzjRLZpDAdD2fnSgkG9tmIXnUwQ6WVighs7Yi2MxQ0N3CqYaCXkJ0oyOztMDJjmSSpcpvlrk0RMMOjmArQ04PRV1DO1FwhCVaUVPpKUM03JK5SxPsIWRu8/CGHi8UHChiqGFDTbSRJWeYUDDcH6vJWUxR4k1FXbMUwV6e4AJFXS8oMqsZKqzvYQ9DDQdZckY4aGsIhtlubbd2r3j4QBMoTamdPZk7O/Bf62lacZwneNjQoGcdVU7zJOd7ghsUHOkosagic6cnWc8+4gg285R6zZP5s1/LUbCKIznTwK36PkdwlOrl4U1LwfdCCa+IrvFkmgw1PCAUXKWo0sURXWcI2muKJlgyFzhynCY4RBOsqCjoI1R5zREco0n2Vt09BQtYSizgKNHfUmUrQ5UOCh51BFcLmY7umhYqXKQomOop8bUnWNNQcIiBcYaC6xzMNOS8JQQfeqKBmmglB+97ok/lfk3ygaHSyZaCRTzRxQo6GzLfa2jWBPepw+UmT7SQEJyiyRkhBLMVOfcoMjcK0eZChfUNzFAUzCsEN5vP/X1uP/n/aoMX+K+nw/Hjr/9xOo7j7Pju61tLcgvJpTWXNbfN5jLpi6VfCOviTktKlFusQixdEKWmEBUKNaIpjZRSSOXSgzaaKLdabrm1/9nZ+/f+vd/vz/v9+Xy+zZ7PRorYoZqyLrCwQdEAixxVOEXNNnjX2nUSRlkqGmWowk8lxR50JPy9Bo6qJXaXwNvREBvnThPEPrewryLhcAnj5WE15Fqi8W7R1sAuEu86S4ENikItFN4xkv9Af4nXSnUVcLiA9xzesFpivRRVeFKtsMRaKBhuSbjOELnAUtlSQUpXgdfB4Z1oSbnFEetbQ0IrAe+Y+pqnDcEJFj6S8LDZzZHwY4e3XONNlARraomNEt2bkvGsosA3ioyHm+6jCMbI59wqt4eeara28IzEmyPgoRaUOEDhTVdEJhmCoTWfC0p8aNkCp0oYqih2iqGi4yXeMkOsn4LdLLnmKfh/YogjNsPebeFGR4m9BJHLzB61XQ3BtpISfS2FugsK9FAtLWX1dCRcrCnUp44CNzuCowUZmxSRgYaE6Za0W2u/E7CVXCiI/UOR8aAm1+OSyE3mOUcwyc1zBBeoX1kiKy0Zfxck1Gsyulti11i83QTBF5Kg3pDQThFMVHiPSlK+0cSedng/VaS8bOZbtsBcTcZAR8JP5KeqQ1OYKAi20njdNNRpgnsU//K+JnaXJaGTomr7aYIphoRn9aeShJWKEq9LcozSF7QleEfDI5LYm5bgVkFkRwVDBCVu0DDIkGupo8TZBq+/pMQURYErJQmPKGKjNDkWOLx7Jd5QizdUweIaKrlP7SwJDhZvONjLkOsBBX9UpGxnydhXkfBLQ8IxgojQbLFnJf81JytSljclYYyEFyx0kVBvKWOFJmONpshGAcsduQY5giVNCV51eOdJYo/pLhbvM0uDHSevNKRcrKZIqnCtJeEsO95RoqcgGK4ocZcho1tTYtcZvH41pNQ7vA0WrhIfOSraIIntIAi+NXWCErdbkvrWwjRLrt0NKUdL6KSOscTOdMSOUtBHwL6OLA0vNSdynaWQEnCpIvKaIrJJEbvHkmuNhn6OjM8VkSGSqn1uYJCGHnq9I3aLhNME3t6GjIkO7xrNFumpyTNX/NrwX7CrIRiqqWijI9JO4d1iieykyfiposQIQ8YjjsjlBh6oHWbwRjgYJQn2NgSnNycmJAk3NiXhx44Sxykihxm8ybUwT1OVKySc7vi3OXVkdBJ4AyXBeksDXG0IhgtYY0lY5ahCD0ehborIk5aUWRJviMA7Xt5kyRjonrXENkm8yYqgs8VzgrJmClK20uMM3jRJ0FiQICQF9hdETlLQWRIb5ki6WDfWRPobvO6a4GP5mcOrNzDFELtTkONLh9dXE8xypEg7z8A9jkhrQ6Fhjlg/QVktJXxt4WXzT/03Q8IaQWSqIuEvloQ2mqC9Jfi7wRul4RX3pSPlzpoVlmCtI2jvKHCFhjcM3sN6lqF6HxnKelLjXWbwrpR4xzuCrTUZx2qq9oAh8p6ixCUGr78g8oyjRAtB5CZFwi80VerVpI0h+IeBxa6Zg6kWvpDHaioYYuEsRbDC3eOmC2JvGYLeioxGknL2UATNJN6hmtj1DlpLvDVmocYbrGCVJKOrg4X6DgddLA203BKMFngdJJFtFd7vJLm6KEpc5yjQrkk7M80SGe34X24nSex1Ra5Omgb71JKyg8SrU3i/kARKwWpH0kOGhKkObyfd0ZGjvyXlAkVZ4xRbYJ2irFMkFY1SwyWxr2oo4zlNiV+7zmaweFpT4kR3kaDAFW6xpSqzJay05FtYR4HmZhc9UxKbbfF2V8RG1MBmSaE+kmC6JnaRXK9gsiXhJHl/U0qM0WTcbyhwkYIvFGwjSbjfwhiJt8ZSQU+Bd5+marPMOkVkD0muxYLIfEuhh60x/J92itguihJSEMySVPQnTewnEm+620rTQEMsOfo4/kP/0ARvWjitlpSX7GxBgcMEsd3EEeYWvdytd+Saawi6aCIj1CkGb6Aj9rwhx16Cf3vAwFy5pyLhVonXzy51FDpdEblbkdJbUcEPDEFzQ8qNmhzzLTmmKWKbFCXeEuRabp6rxbvAtLF442QjQ+wEA9eL1xSR7Q0JXzlSHjJ4exq89yR0laScJ/FW6z4a73pFMEfDiRZvuvijIt86RaSFOl01riV2mD1UEvxGk/Geg5aWwGki1zgKPG9J2U8PEg8qYvMsZeytiTRXBMslCU8JSlxi8EabjwUldlDNLfzTUmCgxWsjqWCOHavYAqsknKFIO0yQ61VL5AVFxk6WhEaCAkdJgt9aSkzXlKNX2jEa79waYuc7gq0N3GDJGCBhoiTXUEPsdknCUE1CK0fwsiaylSF2uiDyO4XX3pFhNd7R4itFGc0k/ElBZwWvq+GC6szVeEoS/MZ+qylwpKNKv9Z469UOjqCjwlusicyTxG6VpNxcQ8IncoR4RhLbR+NdpGGmJWOcIzJGUuKPGpQg8rrG21dOMqQssJQ4RxH5jaUqnZuQ0F4Q+cjxLwPtpZbIAk3QTJHQWBE5S1BokoVtDd6lhqr9UpHSUxMcIYl9pojsb8h4SBOsMQcqvOWC2E8EVehqiJ1hrrAEbQxeK0NGZ0Gkq+guSRgniM23bIHVkqwx4hiHd7smaOyglyIyQuM978j4VS08J/A2G1KeMBRo4fBaSNhKUEZfQewVQ/C1I+MgfbEleEzCUw7mKXI0M3hd1EESVji8x5uQ41nxs1q4RMJCCXs7Iq9acpxn22oSDnQ/sJTxsCbHIYZiLyhY05TY0ZLIOQrGaSJDDN4t8pVaIrsqqFdEegtizc1iTew5Q4ayBDMUsQMkXocaYkc0hZua412siZ1rSXlR460zRJ5SlHGe5j801RLMlJTxtaOM3Q1pvxJ45zUlWFD7rsAbpfEm1JHxG0eh8w2R7QQVzBUw28FhFp5QZzq8t2rx2joqulYTWSuJdTYfWwqMFMcovFmSyJPNyLhE4E10pHzYjOC3huArRa571ZsGajQpQx38SBP5pyZB6lMU3khDnp0MBV51BE9o2E+TY5Ml2E8S7C0o6w1xvCZjf0HkVEHCzFoyNmqC+9wdcqN+Tp7jSDheE9ws8Y5V0NJCn2bk2tqSY4okdrEhx1iDN8cSudwepWmAGXKcJXK65H9to8jYQRH7SBF01ESUJdd0TayVInaWhLkOjlXE5irKGOnI6GSWGCJa482zBI9rCr0jyTVcEuzriC1vcr6mwFGSiqy5zMwxBH/TJHwjSPhL8+01kaaSUuMFKTcLEvaUePcrSmwn8DZrgikWb7CGPxkSjhQwrRk57tctmxLsb9sZvL9LSlyuSLlWkqOjwduo8b6Uv1DkmudIeFF2dHCgxVtk8dpIvHpBxhEOdhKk7OLIUSdJ+cSRY57B+0DgGUUlNfpthTfGkauzxrvTsUUaCVhlKeteTXCoJDCa2NOKhOmC4G1H8JBd4OBZReSRGkqcb/CO1PyLJTLB4j1q8JYaIutEjSLX8YKM+a6phdMsdLFUoV5RTm9JSkuDN8WcIon0NZMNZWh1q8C7SJEwV5HxrmnnTrf3KoJBlmCYI2ilSLlfEvlE4011NNgjgthzEua0oKK7JLE7HZHlEl60BLMVFewg4EWNt0ThrVNEVkkiTwpKXSWJzdRENgvKGq4IhjsiezgSFtsfCUq8qki5S1LRQeYQQ4nemmCkImWMw3tFUoUBZk4NOeZYEp4XRKTGa6wJjrWNHBVJR4m3FCnbuD6aak2WsMTh3SZImGCIPKNgsDpVwnsa70K31lCFJZYcwwSMFcQulGTsZuEaSdBXkPGZhu0FsdUO73RHjq8MPGGIfaGIbVTk6iuI3GFgucHrIQkmWSJdBd7BBu+uOryWAhY7+Lki9rK5wtEQzWwvtbqGhIMFwWRJsElsY4m9IIg9L6lCX0VklaPAYkfkZEGDnOWowlBJjtMUkcGK4Lg6EtoZInMUBVYLgn0UsdmCyCz7gIGHFfk+k1QwTh5We7A9x+IdJ6CvIkEagms0hR50eH9UnTQJ+2oiKyVlLFUE+8gBGu8MQ3CppUHesnjTHN4QB/UGPhCTHLFPHMFrCqa73gqObUJGa03wgbhHkrCfpEpzNLE7JDS25FMKhlhKKWKfCgqstLCPu1zBXy0J2ztwjtixBu8UTRn9LVtkmCN2iyFhtME70JHRQ1KVZXqKI/KNIKYMCYs1GUMEKbM1bKOI9LDXC7zbHS+bt+1MTWS9odA9DtrYtpbImQJ2VHh/lisEwaHqUk1kjKTAKknkBEXkbkdMGwq0dnhzLJF3NJH3JVwrqOB4Sca2hti75nmJN0WzxS6UxDYoEpxpa4htVlRjkYE7DZGzJVU72uC9IyhQL4i8YfGWSYLLNcHXloyz7QhNifmKSE9JgfGmuyLhc403Xm9vqcp6gXe3xuuv8F6VJNxkyTHEkHG2g0aKXL0MsXc1bGfgas2//dCONXiNLCX+5mB7eZIl1kHh7ajwpikyzlUUWOVOsjSQlsS+M0R+pPje/dzBXRZGO0rMtgQrLLG9VSu9n6CMXS3BhwYmSoIBhsjNBmZbgusE9BCPCP5triU4VhNbJfE+swSP27aayE8tuTpYYjtrYjMVGZdp2NpS1s6aBnKSHDsbKuplKbHM4a0wMFd/5/DmGyKrJSUaW4IBrqUhx0vyfzTBBLPIUcnZdrAkNsKR0sWRspumSns6Ch0v/qqIbBYUWKvPU/CFoyrDJGwSNFhbA/MlzKqjrO80hRbpKx0Jewsi/STftwGSlKc1JZyAzx05dhLEdnfQvhZOqiHWWEAHC7+30FuRcZUgaO5gpaIK+xsiHRUsqaPElTV40xQZQ107Q9BZE1nryDVGU9ZSQ47bmhBpLcYpUt7S+xuK/FiT8qKjwXYw5ypS2iuCv7q1gtgjhuBuB8LCFY5cUuCNtsQOFcT+4Ih9JX+k8Ea6v0iCIRZOtCT0Et00JW5UeC85Cg0ScK0k411HcG1zKtre3SeITBRk7WfwDhEvaYLTHP9le0m8By0JDwn4TlLW/aJOvGHxdjYUes+ScZigCkYQdNdEOhkiezgShqkx8ueKjI8lDfK2oNiOFvrZH1hS+tk7NV7nOmLHicGWEgubkXKdwdtZknCLJXaCpkrjZBtLZFsDP9CdxWsSr05Sxl6CMmoFbCOgryX40uDtamB7SVmXW4Ihlgpmq+00tBKUUa83WbjLUNkzDmY7cow1JDygyPGlhgGKYKz4vcV7QBNbJIgM11TUqZaMdwTeSguH6rOaw1JRKzaaGyxVm2EJ/uCIrVWUcZUkcp2grMsEjK+DMwS59jQk3Kd6SEq1d0S6uVmO4Bc1lDXTUcHjluCXEq+1OlBDj1pi9zgiXxnKuE0SqTXwhqbETW6RggMEnGl/q49UT2iCzgJvRwVXS2K/d6+ZkyUl7jawSVLit46EwxVljDZwoSQ20sDBihztHfk2yA8NVZghiXwrYHQdfKAOtzsayjhY9bY0yE2CWEeJ9xfzO423xhL5syS2TFJofO2pboHob0nY4GiAgRrvGQEDa/FWSsoaaYl0syRsEt3kWoH3B01shCXhTUWe9w3Bt44SC9QCh3eShQctwbaK2ApLroGCMlZrYqvlY3qYhM0aXpFkPOuoqJ3Dm6fxXrGwVF9gCWZagjPqznfkuMKQ8DPTQRO8ZqG1hPGKEm9IgpGW4DZDgTNriTxvFiq+Lz+0cKfp4wj6OCK9JSnzNSn9LFU7UhKZZMnYwcJ8s8yRsECScK4j5UOB95HFO0CzhY4xJxuCix0lDlEUeMdS6EZBkTsUkZ4K74dugyTXS7aNgL8aqjDfkCE0ZbwkCXpaWCKhl8P7VD5jxykivSyxyZrYERbe168LYu9ZYh86IkscgVLE7tWPKmJv11CgoyJltMEbrohtVAQfO4ImltiHEroYEs7RxAarVpY8AwXMcMReFOTYWe5iiLRQxJ5Q8DtJ8LQhWOhIeFESPGsILhbNDRljNbHzNRlTFbk2S3L0NOS6V1KFJYKUbSTcIIhM0wQ/s2TM0SRMNcQmSap3jCH4yhJZKSkwyRHpYYgsFeQ4U7xoCB7VVOExhXepo9ABBsYbvGWKXPME3lyH95YioZ0gssQRWWbI+FaSMkXijZXwgiTlYdPdkNLaETxlyDVIwqeaEus0aTcYcg0RVOkpR3CSJqIddK+90JCxzsDVloyrFd5ZAr4TBKfaWa6boEA7C7s6EpYaeFPjveooY72mjIccLHJ9HUwVlDhKkmutJDJBwnp1rvulJZggKDRfbXAkvC/4l3ozQOG9a8lxjx0i7nV4jSXc7vhe3OwIxjgSHjdEhhsif9YkPGlus3iLFDnWOFhtCZbJg0UbQcIaR67JjthoCyMEZRwhiXWyxO5QxI6w5NhT4U1WsJvDO60J34fW9hwzwlKij6ZAW9ne4L0s8C6XeBMEkd/LQy1VucBRot6QMlbivaBhoBgjqGiCJNhsqVp/S2SsG6DIONCR0dXhvWbJ+MRRZJkkuEjgDXJjFQW6SSL7GXK8Z2CZg7cVsbWGoKmEpzQ5elpiy8Ryg7dMkLLUEauzeO86CuwlSOlgYLojZWeJ9xM3S1PWfEfKl5ISLQ0MEKR8YOB2QfCxJBjrKPCN4f9MkaSsqoVXJBmP7EpFZ9UQfOoOFwSzBN4MQ8LsGrymlipcJQhmy0GaQjPqCHaXRwuCZwRbqK2Fg9wlClZqYicrIgMdZfxTQ0c7TBIbrChxmuzoKG8XRaSrIhhiyNFJkrC7oIAWMEOQa5aBekPCRknCo4IKPrYkvCDI8aYmY7WFtprgekcJZ3oLIqssCSMtFbQTJKwXYy3BY5oCh2iKPCpJOE+zRdpYgi6O2KmOAgvVCYaU4ySRek1sgyFhJ403QFHiVEmJHwtybO1gs8Hr5+BETQX3War0qZngYGgtVZtoqd6vFSk/UwdZElYqyjrF4HXUeFspIi9IGKf4j92pKGAdCYMVsbcV3kRF0N+R8LUd5PCsIGWoxDtBkCI0nKofdJQxT+LtZflvuc8Q3CjwWkq8KwUpHzkK/NmSsclCL0nseQdj5FRH5CNHSgtLiW80Of5HU9Hhlsga9bnBq3fEVltKfO5IaSTmGjjc4J0otcP7QsJUSQM8pEj5/wCuUuC2DWz8AAAAAElFTkSuQmCC\\\");}.ace-ambiance .ace_indent-guide {background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQUFD4z6Crq/sfAAuYAuYl+7lfAAAAAElFTkSuQmCC\\\") right repeat-y;}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-chaos.js",
    "content": "ace.define(\"ace/theme/chaos\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-chaos\",t.cssText=\".ace-chaos .ace_gutter {background: #141414;color: #595959;border-right: 1px solid #282828;}.ace-chaos .ace_gutter-cell.ace_warning {background-image: none;background: #FC0;border-left: none;padding-left: 0;color: #000;}.ace-chaos .ace_gutter-cell.ace_error {background-position: -6px center;background-image: none;background: #F10;border-left: none;padding-left: 0;color: #000;}.ace-chaos .ace_print-margin {border-left: 1px solid #555;right: 0;background: #1D1D1D;}.ace-chaos {background-color: #161616;color: #E6E1DC;}.ace-chaos .ace_cursor {border-left: 2px solid #FFFFFF;}.ace-chaos .ace_cursor.ace_overwrite {border-left: 0px;border-bottom: 1px solid #FFFFFF;}.ace-chaos .ace_marker-layer .ace_selection {background: #494836;}.ace-chaos .ace_marker-layer .ace_step {background: rgb(198, 219, 174);}.ace-chaos .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #FCE94F;}.ace-chaos .ace_marker-layer .ace_active-line {background: #333;}.ace-chaos .ace_gutter-active-line {background-color: #222;}.ace-chaos .ace_invisible {color: #404040;}.ace-chaos .ace_keyword {color:#00698F;}.ace-chaos .ace_keyword.ace_operator {color:#FF308F;}.ace-chaos .ace_constant {color:#1EDAFB;}.ace-chaos .ace_constant.ace_language {color:#FDC251;}.ace-chaos .ace_constant.ace_library {color:#8DFF0A;}.ace-chaos .ace_constant.ace_numeric {color:#58C554;}.ace-chaos .ace_invalid {color:#FFFFFF;background-color:#990000;}.ace-chaos .ace_invalid.ace_deprecated {color:#FFFFFF;background-color:#990000;}.ace-chaos .ace_support {color: #999;}.ace-chaos .ace_support.ace_function {color:#00AEEF;}.ace-chaos .ace_function {color:#00AEEF;}.ace-chaos .ace_string {color:#58C554;}.ace-chaos .ace_comment {color:#555;font-style:italic;padding-bottom: 0px;}.ace-chaos .ace_variable {color:#997744;}.ace-chaos .ace_meta.ace_tag {color:#BE53E6;}.ace-chaos .ace_entity.ace_other.ace_attribute-name {color:#FFFF89;}.ace-chaos .ace_markup.ace_underline {text-decoration: underline;}.ace-chaos .ace_fold-widget {text-align: center;}.ace-chaos .ace_fold-widget:hover {color: #777;}.ace-chaos .ace_fold-widget.ace_start,.ace-chaos .ace_fold-widget.ace_end,.ace-chaos .ace_fold-widget.ace_closed{background: none;border: none;box-shadow: none;}.ace-chaos .ace_fold-widget.ace_start:after {content: '\\u25be'}.ace-chaos .ace_fold-widget.ace_end:after {content: '\\u25b4'}.ace-chaos .ace_fold-widget.ace_closed:after {content: '\\u2023'}.ace-chaos .ace_indent-guide {border-right:1px dotted #333;margin-right:-1px;}.ace-chaos .ace_fold { background: #222; border-radius: 3px; color: #7AF; border: none; }.ace-chaos .ace_fold:hover {background: #CCC; color: #000;}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-chrome.js",
    "content": "ace.define(\"ace/theme/chrome\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-chrome\",t.cssText='.ace-chrome .ace_gutter {background: #ebebeb;color: #333;overflow : hidden;}.ace-chrome .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-chrome {background-color: #FFFFFF;color: black;}.ace-chrome .ace_cursor {color: black;}.ace-chrome .ace_invisible {color: rgb(191, 191, 191);}.ace-chrome .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-chrome .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-chrome .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-chrome .ace_invalid {background-color: rgb(153, 0, 0);color: white;}.ace-chrome .ace_fold {}.ace-chrome .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-chrome .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-chrome .ace_support.ace_type,.ace-chrome .ace_support.ace_class.ace-chrome .ace_support.ace_other {color: rgb(109, 121, 222);}.ace-chrome .ace_variable.ace_parameter {font-style:italic;color:#FD971F;}.ace-chrome .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-chrome .ace_comment {color: #236e24;}.ace-chrome .ace_comment.ace_doc {color: #236e24;}.ace-chrome .ace_comment.ace_doc.ace_tag {color: #236e24;}.ace-chrome .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-chrome .ace_variable {color: rgb(49, 132, 149);}.ace-chrome .ace_xml-pe {color: rgb(104, 104, 91);}.ace-chrome .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-chrome .ace_heading {color: rgb(12, 7, 255);}.ace-chrome .ace_list {color:rgb(185, 6, 144);}.ace-chrome .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-chrome .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-chrome .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-chrome .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-chrome .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-chrome .ace_gutter-active-line {background-color : #dcdcdc;}.ace-chrome .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-chrome .ace_storage,.ace-chrome .ace_keyword,.ace-chrome .ace_meta.ace_tag {color: rgb(147, 15, 128);}.ace-chrome .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-chrome .ace_string {color: #1A1AA6;}.ace-chrome .ace_entity.ace_other.ace_attribute-name {color: #994409;}.ace-chrome .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;}';var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-clouds.js",
    "content": "ace.define(\"ace/theme/clouds\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-clouds\",t.cssText='.ace-clouds .ace_gutter {background: #ebebeb;color: #333}.ace-clouds .ace_print-margin {width: 1px;background: #e8e8e8}.ace-clouds {background-color: #FFFFFF;color: #000000}.ace-clouds .ace_cursor {color: #000000}.ace-clouds .ace_marker-layer .ace_selection {background: #BDD5FC}.ace-clouds.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #FFFFFF;}.ace-clouds .ace_marker-layer .ace_step {background: rgb(255, 255, 0)}.ace-clouds .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #BFBFBF}.ace-clouds .ace_marker-layer .ace_active-line {background: #FFFBD1}.ace-clouds .ace_gutter-active-line {background-color : #dcdcdc}.ace-clouds .ace_marker-layer .ace_selected-word {border: 1px solid #BDD5FC}.ace-clouds .ace_invisible {color: #BFBFBF}.ace-clouds .ace_keyword,.ace-clouds .ace_meta,.ace-clouds .ace_support.ace_constant.ace_property-value {color: #AF956F}.ace-clouds .ace_keyword.ace_operator {color: #484848}.ace-clouds .ace_keyword.ace_other.ace_unit {color: #96DC5F}.ace-clouds .ace_constant.ace_language {color: #39946A}.ace-clouds .ace_constant.ace_numeric {color: #46A609}.ace-clouds .ace_constant.ace_character.ace_entity {color: #BF78CC}.ace-clouds .ace_invalid {background-color: #FF002A}.ace-clouds .ace_fold {background-color: #AF956F;border-color: #000000}.ace-clouds .ace_storage,.ace-clouds .ace_support.ace_class,.ace-clouds .ace_support.ace_function,.ace-clouds .ace_support.ace_other,.ace-clouds .ace_support.ace_type {color: #C52727}.ace-clouds .ace_string {color: #5D90CD}.ace-clouds .ace_comment {color: #BCC8BA}.ace-clouds .ace_entity.ace_name.ace_tag,.ace-clouds .ace_entity.ace_other.ace_attribute-name {color: #606060}.ace-clouds .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y}';var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-clouds_midnight.js",
    "content": "ace.define(\"ace/theme/clouds_midnight\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-clouds-midnight\",t.cssText=\".ace-clouds-midnight .ace_gutter {background: #232323;color: #929292}.ace-clouds-midnight .ace_print-margin {width: 1px;background: #232323}.ace-clouds-midnight {background-color: #191919;color: #929292}.ace-clouds-midnight .ace_cursor {color: #7DA5DC}.ace-clouds-midnight .ace_marker-layer .ace_selection {background: #000000}.ace-clouds-midnight.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #191919;}.ace-clouds-midnight .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-clouds-midnight .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #BFBFBF}.ace-clouds-midnight .ace_marker-layer .ace_active-line {background: rgba(215, 215, 215, 0.031)}.ace-clouds-midnight .ace_gutter-active-line {background-color: rgba(215, 215, 215, 0.031)}.ace-clouds-midnight .ace_marker-layer .ace_selected-word {border: 1px solid #000000}.ace-clouds-midnight .ace_invisible {color: #666}.ace-clouds-midnight .ace_keyword,.ace-clouds-midnight .ace_meta,.ace-clouds-midnight .ace_support.ace_constant.ace_property-value {color: #927C5D}.ace-clouds-midnight .ace_keyword.ace_operator {color: #4B4B4B}.ace-clouds-midnight .ace_keyword.ace_other.ace_unit {color: #366F1A}.ace-clouds-midnight .ace_constant.ace_language {color: #39946A}.ace-clouds-midnight .ace_constant.ace_numeric {color: #46A609}.ace-clouds-midnight .ace_constant.ace_character.ace_entity {color: #A165AC}.ace-clouds-midnight .ace_invalid {color: #FFFFFF;background-color: #E92E2E}.ace-clouds-midnight .ace_fold {background-color: #927C5D;border-color: #929292}.ace-clouds-midnight .ace_storage,.ace-clouds-midnight .ace_support.ace_class,.ace-clouds-midnight .ace_support.ace_function,.ace-clouds-midnight .ace_support.ace_other,.ace-clouds-midnight .ace_support.ace_type {color: #E92E2E}.ace-clouds-midnight .ace_string {color: #5D90CD}.ace-clouds-midnight .ace_comment {color: #3C403B}.ace-clouds-midnight .ace_entity.ace_name.ace_tag,.ace-clouds-midnight .ace_entity.ace_other.ace_attribute-name {color: #606060}.ace-clouds-midnight .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHB3d/8PAAOIAdULw8qMAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-cobalt.js",
    "content": "ace.define(\"ace/theme/cobalt\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-cobalt\",t.cssText=\".ace-cobalt .ace_gutter {background: #011e3a;color: rgb(128,145,160)}.ace-cobalt .ace_print-margin {width: 1px;background: #555555}.ace-cobalt {background-color: #002240;color: #FFFFFF}.ace-cobalt .ace_cursor {color: #FFFFFF}.ace-cobalt .ace_marker-layer .ace_selection {background: rgba(179, 101, 57, 0.75)}.ace-cobalt.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #002240;}.ace-cobalt .ace_marker-layer .ace_step {background: rgb(127, 111, 19)}.ace-cobalt .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 255, 255, 0.15)}.ace-cobalt .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.35)}.ace-cobalt .ace_gutter-active-line {background-color: rgba(0, 0, 0, 0.35)}.ace-cobalt .ace_marker-layer .ace_selected-word {border: 1px solid rgba(179, 101, 57, 0.75)}.ace-cobalt .ace_invisible {color: rgba(255, 255, 255, 0.15)}.ace-cobalt .ace_keyword,.ace-cobalt .ace_meta {color: #FF9D00}.ace-cobalt .ace_constant,.ace-cobalt .ace_constant.ace_character,.ace-cobalt .ace_constant.ace_character.ace_escape,.ace-cobalt .ace_constant.ace_other {color: #FF628C}.ace-cobalt .ace_invalid {color: #F8F8F8;background-color: #800F00}.ace-cobalt .ace_support {color: #80FFBB}.ace-cobalt .ace_support.ace_constant {color: #EB939A}.ace-cobalt .ace_fold {background-color: #FF9D00;border-color: #FFFFFF}.ace-cobalt .ace_support.ace_function {color: #FFB054}.ace-cobalt .ace_storage {color: #FFEE80}.ace-cobalt .ace_entity {color: #FFDD00}.ace-cobalt .ace_string {color: #3AD900}.ace-cobalt .ace_string.ace_regexp {color: #80FFC2}.ace-cobalt .ace_comment {font-style: italic;color: #0088FF}.ace-cobalt .ace_heading,.ace-cobalt .ace_markup.ace_heading {color: #C8E4FD;background-color: #001221}.ace-cobalt .ace_list,.ace-cobalt .ace_markup.ace_list {background-color: #130D26}.ace-cobalt .ace_variable {color: #CCCCCC}.ace-cobalt .ace_variable.ace_language {color: #FF80E1}.ace-cobalt .ace_meta.ace_tag {color: #9EFFFF}.ace-cobalt .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHCLSvkPAAP3AgSDTRd4AAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-crimson_editor.js",
    "content": "ace.define(\"ace/theme/crimson_editor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssText='.ace-crimson-editor .ace_gutter {background: #ebebeb;color: #333;overflow : hidden;}.ace-crimson-editor .ace_gutter-layer {width: 100%;text-align: right;}.ace-crimson-editor .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-crimson-editor {background-color: #FFFFFF;color: rgb(64, 64, 64);}.ace-crimson-editor .ace_cursor {color: black;}.ace-crimson-editor .ace_invisible {color: rgb(191, 191, 191);}.ace-crimson-editor .ace_identifier {color: black;}.ace-crimson-editor .ace_keyword {color: blue;}.ace-crimson-editor .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-crimson-editor .ace_constant.ace_language {color: rgb(255, 156, 0);}.ace-crimson-editor .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-crimson-editor .ace_invalid {text-decoration: line-through;color: rgb(224, 0, 0);}.ace-crimson-editor .ace_fold {}.ace-crimson-editor .ace_support.ace_function {color: rgb(192, 0, 0);}.ace-crimson-editor .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-crimson-editor .ace_support.ace_type,.ace-crimson-editor .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-crimson-editor .ace_keyword.ace_operator {color: rgb(49, 132, 149);}.ace-crimson-editor .ace_string {color: rgb(128, 0, 128);}.ace-crimson-editor .ace_comment {color: rgb(76, 136, 107);}.ace-crimson-editor .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-crimson-editor .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-crimson-editor .ace_constant.ace_numeric {color: rgb(0, 0, 64);}.ace-crimson-editor .ace_variable {color: rgb(0, 64, 128);}.ace-crimson-editor .ace_xml-pe {color: rgb(104, 104, 91);}.ace-crimson-editor .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-crimson-editor .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-crimson-editor .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-crimson-editor .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-crimson-editor .ace_marker-layer .ace_active-line {background: rgb(232, 242, 254);}.ace-crimson-editor .ace_gutter-active-line {background-color : #dcdcdc;}.ace-crimson-editor .ace_meta.ace_tag {color:rgb(28, 2, 255);}.ace-crimson-editor .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-crimson-editor .ace_string.ace_regex {color: rgb(192, 0, 192);}.ace-crimson-editor .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;}',t.cssClass=\"ace-crimson-editor\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-dawn.js",
    "content": "ace.define(\"ace/theme/dawn\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-dawn\",t.cssText=\".ace-dawn .ace_gutter {background: #ebebeb;color: #333}.ace-dawn .ace_print-margin {width: 1px;background: #e8e8e8}.ace-dawn {background-color: #F9F9F9;color: #080808}.ace-dawn .ace_cursor {color: #000000}.ace-dawn .ace_marker-layer .ace_selection {background: rgba(39, 95, 255, 0.30)}.ace-dawn.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #F9F9F9;}.ace-dawn .ace_marker-layer .ace_step {background: rgb(255, 255, 0)}.ace-dawn .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(75, 75, 126, 0.50)}.ace-dawn .ace_marker-layer .ace_active-line {background: rgba(36, 99, 180, 0.12)}.ace-dawn .ace_gutter-active-line {background-color : #dcdcdc}.ace-dawn .ace_marker-layer .ace_selected-word {border: 1px solid rgba(39, 95, 255, 0.30)}.ace-dawn .ace_invisible {color: rgba(75, 75, 126, 0.50)}.ace-dawn .ace_keyword,.ace-dawn .ace_meta {color: #794938}.ace-dawn .ace_constant,.ace-dawn .ace_constant.ace_character,.ace-dawn .ace_constant.ace_character.ace_escape,.ace-dawn .ace_constant.ace_other {color: #811F24}.ace-dawn .ace_invalid.ace_illegal {text-decoration: underline;font-style: italic;color: #F8F8F8;background-color: #B52A1D}.ace-dawn .ace_invalid.ace_deprecated {text-decoration: underline;font-style: italic;color: #B52A1D}.ace-dawn .ace_support {color: #691C97}.ace-dawn .ace_support.ace_constant {color: #B4371F}.ace-dawn .ace_fold {background-color: #794938;border-color: #080808}.ace-dawn .ace_list,.ace-dawn .ace_markup.ace_list,.ace-dawn .ace_support.ace_function {color: #693A17}.ace-dawn .ace_storage {font-style: italic;color: #A71D5D}.ace-dawn .ace_string {color: #0B6125}.ace-dawn .ace_string.ace_regexp {color: #CF5628}.ace-dawn .ace_comment {font-style: italic;color: #5A525F}.ace-dawn .ace_heading,.ace-dawn .ace_markup.ace_heading {color: #19356D}.ace-dawn .ace_variable {color: #234A97}.ace-dawn .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYLh/5+x/AAizA4hxNNsZAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-dreamweaver.js",
    "content": "ace.define(\"ace/theme/dreamweaver\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-dreamweaver\",t.cssText='.ace-dreamweaver .ace_gutter {background: #e8e8e8;color: #333;}.ace-dreamweaver .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-dreamweaver {background-color: #FFFFFF;color: black;}.ace-dreamweaver .ace_fold {background-color: #757AD8;}.ace-dreamweaver .ace_cursor {color: black;}.ace-dreamweaver .ace_invisible {color: rgb(191, 191, 191);}.ace-dreamweaver .ace_storage,.ace-dreamweaver .ace_keyword {color: blue;}.ace-dreamweaver .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-dreamweaver .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-dreamweaver .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-dreamweaver .ace_invalid {background-color: rgb(153, 0, 0);color: white;}.ace-dreamweaver .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-dreamweaver .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-dreamweaver .ace_support.ace_type,.ace-dreamweaver .ace_support.ace_class {color: #009;}.ace-dreamweaver .ace_support.ace_php_tag {color: #f00;}.ace-dreamweaver .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-dreamweaver .ace_string {color: #00F;}.ace-dreamweaver .ace_comment {color: rgb(76, 136, 107);}.ace-dreamweaver .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-dreamweaver .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-dreamweaver .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-dreamweaver .ace_variable {color: #06F}.ace-dreamweaver .ace_xml-pe {color: rgb(104, 104, 91);}.ace-dreamweaver .ace_entity.ace_name.ace_function {color: #00F;}.ace-dreamweaver .ace_heading {color: rgb(12, 7, 255);}.ace-dreamweaver .ace_list {color:rgb(185, 6, 144);}.ace-dreamweaver .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-dreamweaver .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-dreamweaver .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-dreamweaver .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-dreamweaver .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-dreamweaver .ace_gutter-active-line {background-color : #DCDCDC;}.ace-dreamweaver .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-dreamweaver .ace_meta.ace_tag {color:#009;}.ace-dreamweaver .ace_meta.ace_tag.ace_anchor {color:#060;}.ace-dreamweaver .ace_meta.ace_tag.ace_form {color:#F90;}.ace-dreamweaver .ace_meta.ace_tag.ace_image {color:#909;}.ace-dreamweaver .ace_meta.ace_tag.ace_script {color:#900;}.ace-dreamweaver .ace_meta.ace_tag.ace_style {color:#909;}.ace-dreamweaver .ace_meta.ace_tag.ace_table {color:#099;}.ace-dreamweaver .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-dreamweaver .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;}';var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-eclipse.js",
    "content": "ace.define(\"ace/theme/eclipse\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";t.isDark=!1,t.cssText='.ace-eclipse .ace_gutter {background: #ebebeb;border-right: 1px solid rgb(159, 159, 159);color: rgb(136, 136, 136);}.ace-eclipse .ace_print-margin {width: 1px;background: #ebebeb;}.ace-eclipse {background-color: #FFFFFF;color: black;}.ace-eclipse .ace_fold {background-color: rgb(60, 76, 114);}.ace-eclipse .ace_cursor {color: black;}.ace-eclipse .ace_storage,.ace-eclipse .ace_keyword,.ace-eclipse .ace_variable {color: rgb(127, 0, 85);}.ace-eclipse .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-eclipse .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-eclipse .ace_function {color: rgb(60, 76, 114);}.ace-eclipse .ace_string {color: rgb(42, 0, 255);}.ace-eclipse .ace_comment {color: rgb(113, 150, 130);}.ace-eclipse .ace_comment.ace_doc {color: rgb(63, 95, 191);}.ace-eclipse .ace_comment.ace_doc.ace_tag {color: rgb(127, 159, 191);}.ace-eclipse .ace_constant.ace_numeric {color: darkblue;}.ace-eclipse .ace_tag {color: rgb(25, 118, 116);}.ace-eclipse .ace_type {color: rgb(127, 0, 127);}.ace-eclipse .ace_xml-pe {color: rgb(104, 104, 91);}.ace-eclipse .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-eclipse .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-eclipse .ace_meta.ace_tag {color:rgb(25, 118, 116);}.ace-eclipse .ace_invisible {color: #ddd;}.ace-eclipse .ace_entity.ace_other.ace_attribute-name {color:rgb(127, 0, 127);}.ace-eclipse .ace_marker-layer .ace_step {background: rgb(255, 255, 0);}.ace-eclipse .ace_active-line {background: rgb(232, 242, 254);}.ace-eclipse .ace_gutter-active-line {background-color : #DADADA;}.ace-eclipse .ace_marker-layer .ace_selected-word {border: 1px solid rgb(181, 213, 255);}.ace-eclipse .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;}',t.cssClass=\"ace-eclipse\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-github.js",
    "content": "ace.define(\"ace/theme/github\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-github\",t.cssText='.ace-github .ace_gutter {background: #e8e8e8;color: #AAA;}.ace-github  {background: #fff;color: #000;}.ace-github .ace_keyword {font-weight: bold;}.ace-github .ace_string {color: #D14;}.ace-github .ace_variable.ace_class {color: teal;}.ace-github .ace_constant.ace_numeric {color: #099;}.ace-github .ace_constant.ace_buildin {color: #0086B3;}.ace-github .ace_support.ace_function {color: #0086B3;}.ace-github .ace_comment {color: #998;font-style: italic;}.ace-github .ace_variable.ace_language  {color: #0086B3;}.ace-github .ace_paren {font-weight: bold;}.ace-github .ace_boolean {font-weight: bold;}.ace-github .ace_string.ace_regexp {color: #009926;font-weight: normal;}.ace-github .ace_variable.ace_instance {color: teal;}.ace-github .ace_constant.ace_language {font-weight: bold;}.ace-github .ace_cursor {color: black;}.ace-github.ace_focus .ace_marker-layer .ace_active-line {background: rgb(255, 255, 204);}.ace-github .ace_marker-layer .ace_active-line {background: rgb(245, 245, 245);}.ace-github .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-github.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-github.ace_nobold .ace_line > span {font-weight: normal !important;}.ace-github .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-github .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-github .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-github .ace_gutter-active-line {background-color : rgba(0, 0, 0, 0.07);}.ace-github .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-github .ace_invisible {color: #BFBFBF}.ace-github .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-github .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;}';var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-idle_fingers.js",
    "content": "ace.define(\"ace/theme/idle_fingers\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-idle-fingers\",t.cssText=\".ace-idle-fingers .ace_gutter {background: #3b3b3b;color: rgb(153,153,153)}.ace-idle-fingers .ace_print-margin {width: 1px;background: #3b3b3b}.ace-idle-fingers {background-color: #323232;color: #FFFFFF}.ace-idle-fingers .ace_cursor {color: #91FF00}.ace-idle-fingers .ace_marker-layer .ace_selection {background: rgba(90, 100, 126, 0.88)}.ace-idle-fingers.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #323232;}.ace-idle-fingers .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-idle-fingers .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404040}.ace-idle-fingers .ace_marker-layer .ace_active-line {background: #353637}.ace-idle-fingers .ace_gutter-active-line {background-color: #353637}.ace-idle-fingers .ace_marker-layer .ace_selected-word {border: 1px solid rgba(90, 100, 126, 0.88)}.ace-idle-fingers .ace_invisible {color: #404040}.ace-idle-fingers .ace_keyword,.ace-idle-fingers .ace_meta {color: #CC7833}.ace-idle-fingers .ace_constant,.ace-idle-fingers .ace_constant.ace_character,.ace-idle-fingers .ace_constant.ace_character.ace_escape,.ace-idle-fingers .ace_constant.ace_other,.ace-idle-fingers .ace_support.ace_constant {color: #6C99BB}.ace-idle-fingers .ace_invalid {color: #FFFFFF;background-color: #FF0000}.ace-idle-fingers .ace_fold {background-color: #CC7833;border-color: #FFFFFF}.ace-idle-fingers .ace_support.ace_function {color: #B83426}.ace-idle-fingers .ace_variable.ace_parameter {font-style: italic}.ace-idle-fingers .ace_string {color: #A5C261}.ace-idle-fingers .ace_string.ace_regexp {color: #CCCC33}.ace-idle-fingers .ace_comment {font-style: italic;color: #BC9458}.ace-idle-fingers .ace_meta.ace_tag {color: #FFE5BB}.ace-idle-fingers .ace_entity.ace_name {color: #FFC66D}.ace-idle-fingers .ace_collab.ace_user1 {color: #323232;background-color: #FFF980}.ace-idle-fingers .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMwMjLyZYiPj/8PAAreAwAI1+g0AAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-iplastic.js",
    "content": "ace.define(\"ace/theme/iplastic\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-iplastic\",t.cssText=\".ace-iplastic .ace_gutter {background: #dddddd;color: #666666}.ace-iplastic .ace_print-margin {width: 1px;background: #bbbbbb}.ace-iplastic {background-color: #eeeeee;color: #333333}.ace-iplastic .ace_cursor {color: #333}.ace-iplastic .ace_marker-layer .ace_selection {background: #BAD6FD;}.ace-iplastic.ace_multiselect .ace_selection.ace_start {border-radius: 4px}.ace-iplastic .ace_marker-layer .ace_step {background: #444444}.ace-iplastic .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #49483E;background: #FFF799}.ace-iplastic .ace_marker-layer .ace_active-line {background: #e5e5e5}.ace-iplastic .ace_gutter-active-line {background-color: #eeeeee}.ace-iplastic .ace_marker-layer .ace_selected-word {border: 1px solid #555555;border-radius:4px}.ace-iplastic .ace_invisible {color: #999999}.ace-iplastic .ace_entity.ace_name.ace_tag,.ace-iplastic .ace_keyword,.ace-iplastic .ace_meta.ace_tag,.ace-iplastic .ace_storage {color: #0000FF}.ace-iplastic .ace_punctuation,.ace-iplastic .ace_punctuation.ace_tag {color: #000}.ace-iplastic .ace_constant {color: #333333;font-weight: 700}.ace-iplastic .ace_constant.ace_character,.ace-iplastic .ace_constant.ace_language,.ace-iplastic .ace_constant.ace_numeric,.ace-iplastic .ace_constant.ace_other {color: #0066FF;font-weight: 700}.ace-iplastic .ace_constant.ace_numeric{font-weight: 100}.ace-iplastic .ace_invalid {color: #F8F8F0;background-color: #F92672}.ace-iplastic .ace_invalid.ace_deprecated {color: #F8F8F0;background-color: #AE81FF}.ace-iplastic .ace_support.ace_constant,.ace-iplastic .ace_support.ace_function {color: #333333;font-weight: 700}.ace-iplastic .ace_fold {background-color: #464646;border-color: #F8F8F2}.ace-iplastic .ace_storage.ace_type,.ace-iplastic .ace_support.ace_class,.ace-iplastic .ace_support.ace_type {color: #3333fc;font-weight: 700}.ace-iplastic .ace_entity.ace_name.ace_function,.ace-iplastic .ace_entity.ace_other,.ace-iplastic .ace_entity.ace_other.ace_attribute-name,.ace-iplastic .ace_variable {color: #3366cc;font-style: italic}.ace-iplastic .ace_variable.ace_parameter {font-style: italic;color: #2469E0}.ace-iplastic .ace_string {color: #a55f03}.ace-iplastic .ace_comment {color: #777777;font-style: italic}.ace-iplastic .ace_fold-widget {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==);}.ace-iplastic .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAABlJREFUeNpi+P//PwMzMzPzfwAAAAD//wMAGRsECSML/RIAAAAASUVORK5CYII=) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-katzenmilch.js",
    "content": "ace.define(\"ace/theme/katzenmilch\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-katzenmilch\",t.cssText=\".ace-katzenmilch .ace_gutter,.ace-katzenmilch .ace_gutter {background: #e8e8e8;color: #333}.ace-katzenmilch .ace_print-margin {width: 1px;background: #e8e8e8}.ace-katzenmilch {background-color: #f3f2f3;color: rgba(15, 0, 9, 1.0)}.ace-katzenmilch .ace_cursor {border-left: 2px solid #100011}.ace-katzenmilch .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #100011}.ace-katzenmilch .ace_marker-layer .ace_selection {background: rgba(100, 5, 208, 0.27)}.ace-katzenmilch.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #f3f2f3;}.ace-katzenmilch .ace_marker-layer .ace_step {background: rgb(198, 219, 174)}.ace-katzenmilch .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(0, 0, 0, 0.33);}.ace-katzenmilch .ace_marker-layer .ace_active-line {background: rgb(232, 242, 254)}.ace-katzenmilch .ace_gutter-active-line {background-color: rgb(232, 242, 254)}.ace-katzenmilch .ace_marker-layer .ace_selected-word {border: 1px solid rgba(100, 5, 208, 0.27)}.ace-katzenmilch .ace_invisible {color: #BFBFBF}.ace-katzenmilch .ace_fold {background-color: rgba(2, 95, 73, 0.97);border-color: rgba(15, 0, 9, 1.0)}.ace-katzenmilch .ace_keyword {color: #674Aa8;rbackground-color: rgba(163, 170, 216, 0.055)}.ace-katzenmilch .ace_constant.ace_language {color: #7D7e52;rbackground-color: rgba(189, 190, 130, 0.059)}.ace-katzenmilch .ace_constant.ace_numeric {color: rgba(79, 130, 123, 0.93);rbackground-color: rgba(119, 194, 187, 0.059)}.ace-katzenmilch .ace_constant.ace_character,.ace-katzenmilch .ace_constant.ace_other {color: rgba(2, 95, 105, 1.0);rbackground-color: rgba(127, 34, 153, 0.063)}.ace-katzenmilch .ace_support.ace_function {color: #9D7e62;rbackground-color: rgba(189, 190, 130, 0.039)}.ace-katzenmilch .ace_support.ace_class {color: rgba(239, 106, 167, 1.0);rbackground-color: rgba(239, 106, 167, 0.063)}.ace-katzenmilch .ace_storage {color: rgba(123, 92, 191, 1.0);rbackground-color: rgba(139, 93, 223, 0.051)}.ace-katzenmilch .ace_invalid {color: #DFDFD5;rbackground-color: #CC1B27}.ace-katzenmilch .ace_string {color: #5a5f9b;rbackground-color: rgba(170, 175, 219, 0.035)}.ace-katzenmilch .ace_comment {font-style: italic;color: rgba(64, 79, 80, 0.67);rbackground-color: rgba(95, 15, 255, 0.0078)}.ace-katzenmilch .ace_entity.ace_name.ace_function,.ace-katzenmilch .ace_variable {color: rgba(2, 95, 73, 0.97);rbackground-color: rgba(34, 255, 73, 0.12)}.ace-katzenmilch .ace_variable.ace_language {color: #316fcf;rbackground-color: rgba(58, 175, 255, 0.039)}.ace-katzenmilch .ace_variable.ace_parameter {font-style: italic;color: rgba(51, 150, 159, 0.87);rbackground-color: rgba(5, 214, 249, 0.043)}.ace-katzenmilch .ace_entity.ace_other.ace_attribute-name {color: rgba(73, 70, 194, 0.93);rbackground-color: rgba(73, 134, 194, 0.035)}.ace-katzenmilch .ace_entity.ace_name.ace_tag {color: #3976a2;rbackground-color: rgba(73, 166, 210, 0.039)}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-kr_theme.js",
    "content": "ace.define(\"ace/theme/kr_theme\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-kr-theme\",t.cssText=\".ace-kr-theme .ace_gutter {background: #1c1917;color: #FCFFE0}.ace-kr-theme .ace_print-margin {width: 1px;background: #1c1917}.ace-kr-theme {background-color: #0B0A09;color: #FCFFE0}.ace-kr-theme .ace_cursor {color: #FF9900}.ace-kr-theme .ace_marker-layer .ace_selection {background: rgba(170, 0, 255, 0.45)}.ace-kr-theme.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #0B0A09;}.ace-kr-theme .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-kr-theme .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 177, 111, 0.32)}.ace-kr-theme .ace_marker-layer .ace_active-line {background: #38403D}.ace-kr-theme .ace_gutter-active-line {background-color : #38403D}.ace-kr-theme .ace_marker-layer .ace_selected-word {border: 1px solid rgba(170, 0, 255, 0.45)}.ace-kr-theme .ace_invisible {color: rgba(255, 177, 111, 0.32)}.ace-kr-theme .ace_keyword,.ace-kr-theme .ace_meta {color: #949C8B}.ace-kr-theme .ace_constant,.ace-kr-theme .ace_constant.ace_character,.ace-kr-theme .ace_constant.ace_character.ace_escape,.ace-kr-theme .ace_constant.ace_other {color: rgba(210, 117, 24, 0.76)}.ace-kr-theme .ace_invalid {color: #F8F8F8;background-color: #A41300}.ace-kr-theme .ace_support {color: #9FC28A}.ace-kr-theme .ace_support.ace_constant {color: #C27E66}.ace-kr-theme .ace_fold {background-color: #949C8B;border-color: #FCFFE0}.ace-kr-theme .ace_support.ace_function {color: #85873A}.ace-kr-theme .ace_storage {color: #FFEE80}.ace-kr-theme .ace_string {color: rgba(164, 161, 181, 0.8)}.ace-kr-theme .ace_string.ace_regexp {color: rgba(125, 255, 192, 0.65)}.ace-kr-theme .ace_comment {font-style: italic;color: #706D5B}.ace-kr-theme .ace_variable {color: #D1A796}.ace-kr-theme .ace_list,.ace-kr-theme .ace_markup.ace_list {background-color: #0F0040}.ace-kr-theme .ace_variable.ace_language {color: #FF80E1}.ace-kr-theme .ace_meta.ace_tag {color: #BABD9C}.ace-kr-theme .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYFBXV/8PAAJoAXX4kT2EAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-kuroir.js",
    "content": "ace.define(\"ace/theme/kuroir\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-kuroir\",t.cssText=\".ace-kuroir .ace_gutter {background: #e8e8e8;color: #333;}.ace-kuroir .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-kuroir {background-color: #E8E9E8;color: #363636;}.ace-kuroir .ace_cursor {color: #202020;}.ace-kuroir .ace_marker-layer .ace_selection {background: rgba(245, 170, 0, 0.57);}.ace-kuroir.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #E8E9E8;}.ace-kuroir .ace_marker-layer .ace_step {background: rgb(198, 219, 174);}.ace-kuroir .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(0, 0, 0, 0.29);}.ace-kuroir .ace_marker-layer .ace_active-line {background: rgba(203, 220, 47, 0.22);}.ace-kuroir .ace_gutter-active-line {background-color: rgba(203, 220, 47, 0.22);}.ace-kuroir .ace_marker-layer .ace_selected-word {border: 1px solid rgba(245, 170, 0, 0.57);}.ace-kuroir .ace_invisible {color: #BFBFBF}.ace-kuroir .ace_fold {border-color: #363636;}.ace-kuroir .ace_constant{color:#CD6839;}.ace-kuroir .ace_constant.ace_numeric{color:#9A5925;}.ace-kuroir .ace_support{color:#104E8B;}.ace-kuroir .ace_support.ace_function{color:#005273;}.ace-kuroir .ace_support.ace_constant{color:#CF6A4C;}.ace-kuroir .ace_storage{color:#A52A2A;}.ace-kuroir .ace_invalid.ace_illegal{color:#FD1224;background-color:rgba(255, 6, 0, 0.15);}.ace-kuroir .ace_invalid.ace_deprecated{text-decoration:underline;font-style:italic;color:#FD1732;background-color:#E8E9E8;}.ace-kuroir .ace_string{color:#639300;}.ace-kuroir .ace_string.ace_regexp{color:#417E00;background-color:#C9D4BE;}.ace-kuroir .ace_comment{color:rgba(148, 148, 148, 0.91);background-color:rgba(220, 220, 220, 0.56);}.ace-kuroir .ace_variable{color:#009ACD;}.ace-kuroir .ace_meta.ace_tag{color:#005273;}.ace-kuroir .ace_markup.ace_heading{color:#B8012D;background-color:rgba(191, 97, 51, 0.051);}.ace-kuroir .ace_markup.ace_list{color:#8F5B26;}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-merbivore.js",
    "content": "ace.define(\"ace/theme/merbivore\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-merbivore\",t.cssText=\".ace-merbivore .ace_gutter {background: #202020;color: #E6E1DC}.ace-merbivore .ace_print-margin {width: 1px;background: #555651}.ace-merbivore {background-color: #161616;color: #E6E1DC}.ace-merbivore .ace_cursor {color: #FFFFFF}.ace-merbivore .ace_marker-layer .ace_selection {background: #454545}.ace-merbivore.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #161616;}.ace-merbivore .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-merbivore .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404040}.ace-merbivore .ace_marker-layer .ace_active-line {background: #333435}.ace-merbivore .ace_gutter-active-line {background-color: #333435}.ace-merbivore .ace_marker-layer .ace_selected-word {border: 1px solid #454545}.ace-merbivore .ace_invisible {color: #404040}.ace-merbivore .ace_entity.ace_name.ace_tag,.ace-merbivore .ace_keyword,.ace-merbivore .ace_meta,.ace-merbivore .ace_meta.ace_tag,.ace-merbivore .ace_storage,.ace-merbivore .ace_support.ace_function {color: #FC6F09}.ace-merbivore .ace_constant,.ace-merbivore .ace_constant.ace_character,.ace-merbivore .ace_constant.ace_character.ace_escape,.ace-merbivore .ace_constant.ace_other,.ace-merbivore .ace_support.ace_type {color: #1EDAFB}.ace-merbivore .ace_constant.ace_character.ace_escape {color: #519F50}.ace-merbivore .ace_constant.ace_language {color: #FDC251}.ace-merbivore .ace_constant.ace_library,.ace-merbivore .ace_string,.ace-merbivore .ace_support.ace_constant {color: #8DFF0A}.ace-merbivore .ace_constant.ace_numeric {color: #58C554}.ace-merbivore .ace_invalid {color: #FFFFFF;background-color: #990000}.ace-merbivore .ace_fold {background-color: #FC6F09;border-color: #E6E1DC}.ace-merbivore .ace_comment {font-style: italic;color: #AD2EA4}.ace-merbivore .ace_entity.ace_other.ace_attribute-name {color: #FFFF89}.ace-merbivore .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMQFxf3ZXB1df0PAAdsAmERTkEHAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-merbivore_soft.js",
    "content": "ace.define(\"ace/theme/merbivore_soft\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-merbivore-soft\",t.cssText=\".ace-merbivore-soft .ace_gutter {background: #262424;color: #E6E1DC}.ace-merbivore-soft .ace_print-margin {width: 1px;background: #262424}.ace-merbivore-soft {background-color: #1C1C1C;color: #E6E1DC}.ace-merbivore-soft .ace_cursor {color: #FFFFFF}.ace-merbivore-soft .ace_marker-layer .ace_selection {background: #494949}.ace-merbivore-soft.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #1C1C1C;}.ace-merbivore-soft .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-merbivore-soft .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404040}.ace-merbivore-soft .ace_marker-layer .ace_active-line {background: #333435}.ace-merbivore-soft .ace_gutter-active-line {background-color: #333435}.ace-merbivore-soft .ace_marker-layer .ace_selected-word {border: 1px solid #494949}.ace-merbivore-soft .ace_invisible {color: #404040}.ace-merbivore-soft .ace_entity.ace_name.ace_tag,.ace-merbivore-soft .ace_keyword,.ace-merbivore-soft .ace_meta,.ace-merbivore-soft .ace_meta.ace_tag,.ace-merbivore-soft .ace_storage {color: #FC803A}.ace-merbivore-soft .ace_constant,.ace-merbivore-soft .ace_constant.ace_character,.ace-merbivore-soft .ace_constant.ace_character.ace_escape,.ace-merbivore-soft .ace_constant.ace_other,.ace-merbivore-soft .ace_support.ace_type {color: #68C1D8}.ace-merbivore-soft .ace_constant.ace_character.ace_escape {color: #B3E5B4}.ace-merbivore-soft .ace_constant.ace_language {color: #E1C582}.ace-merbivore-soft .ace_constant.ace_library,.ace-merbivore-soft .ace_string,.ace-merbivore-soft .ace_support.ace_constant {color: #8EC65F}.ace-merbivore-soft .ace_constant.ace_numeric {color: #7FC578}.ace-merbivore-soft .ace_invalid,.ace-merbivore-soft .ace_invalid.ace_deprecated {color: #FFFFFF;background-color: #FE3838}.ace-merbivore-soft .ace_fold {background-color: #FC803A;border-color: #E6E1DC}.ace-merbivore-soft .ace_comment,.ace-merbivore-soft .ace_meta {font-style: italic;color: #AC4BB8}.ace-merbivore-soft .ace_entity.ace_other.ace_attribute-name {color: #EAF1A3}.ace-merbivore-soft .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWOQkpLyZfD09PwPAAfYAnaStpHRAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-mono_industrial.js",
    "content": "ace.define(\"ace/theme/mono_industrial\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-mono-industrial\",t.cssText=\".ace-mono-industrial .ace_gutter {background: #1d2521;color: #C5C9C9}.ace-mono-industrial .ace_print-margin {width: 1px;background: #555651}.ace-mono-industrial {background-color: #222C28;color: #FFFFFF}.ace-mono-industrial .ace_cursor {color: #FFFFFF}.ace-mono-industrial .ace_marker-layer .ace_selection {background: rgba(145, 153, 148, 0.40)}.ace-mono-industrial.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #222C28;}.ace-mono-industrial .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-mono-industrial .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(102, 108, 104, 0.50)}.ace-mono-industrial .ace_marker-layer .ace_active-line {background: rgba(12, 13, 12, 0.25)}.ace-mono-industrial .ace_gutter-active-line {background-color: rgba(12, 13, 12, 0.25)}.ace-mono-industrial .ace_marker-layer .ace_selected-word {border: 1px solid rgba(145, 153, 148, 0.40)}.ace-mono-industrial .ace_invisible {color: rgba(102, 108, 104, 0.50)}.ace-mono-industrial .ace_string {background-color: #151C19;color: #FFFFFF}.ace-mono-industrial .ace_keyword,.ace-mono-industrial .ace_meta {color: #A39E64}.ace-mono-industrial .ace_constant,.ace-mono-industrial .ace_constant.ace_character,.ace-mono-industrial .ace_constant.ace_character.ace_escape,.ace-mono-industrial .ace_constant.ace_numeric,.ace-mono-industrial .ace_constant.ace_other {color: #E98800}.ace-mono-industrial .ace_entity.ace_name.ace_function,.ace-mono-industrial .ace_keyword.ace_operator,.ace-mono-industrial .ace_variable {color: #A8B3AB}.ace-mono-industrial .ace_invalid {color: #FFFFFF;background-color: rgba(153, 0, 0, 0.68)}.ace-mono-industrial .ace_support.ace_constant {color: #C87500}.ace-mono-industrial .ace_fold {background-color: #A8B3AB;border-color: #FFFFFF}.ace-mono-industrial .ace_support.ace_function {color: #588E60}.ace-mono-industrial .ace_entity.ace_name,.ace-mono-industrial .ace_support.ace_class,.ace-mono-industrial .ace_support.ace_type {color: #5778B6}.ace-mono-industrial .ace_storage {color: #C23B00}.ace-mono-industrial .ace_variable.ace_language,.ace-mono-industrial .ace_variable.ace_parameter {color: #648BD2}.ace-mono-industrial .ace_comment {color: #666C68;background-color: #151C19}.ace-mono-industrial .ace_entity.ace_other.ace_attribute-name {color: #909993}.ace-mono-industrial .ace_entity.ace_name.ace_tag {color: #A65EFF}.ace-mono-industrial .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQ1NbwZfALD/4PAAlTArlEC4r/AAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-monokai.js",
    "content": "ace.define(\"ace/theme/monokai\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-monokai\",t.cssText=\".ace-monokai .ace_gutter {background: #2F3129;color: #8F908A}.ace-monokai .ace_print-margin {width: 1px;background: #555651}.ace-monokai {background-color: #272822;color: #F8F8F2}.ace-monokai .ace_cursor {color: #F8F8F0}.ace-monokai .ace_marker-layer .ace_selection {background: #49483E}.ace-monokai.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #272822;}.ace-monokai .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-monokai .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #49483E}.ace-monokai .ace_marker-layer .ace_active-line {background: #202020}.ace-monokai .ace_gutter-active-line {background-color: #272727}.ace-monokai .ace_marker-layer .ace_selected-word {border: 1px solid #49483E}.ace-monokai .ace_invisible {color: #52524d}.ace-monokai .ace_entity.ace_name.ace_tag,.ace-monokai .ace_keyword,.ace-monokai .ace_meta.ace_tag,.ace-monokai .ace_storage {color: #F92672}.ace-monokai .ace_punctuation,.ace-monokai .ace_punctuation.ace_tag {color: #fff}.ace-monokai .ace_constant.ace_character,.ace-monokai .ace_constant.ace_language,.ace-monokai .ace_constant.ace_numeric,.ace-monokai .ace_constant.ace_other {color: #AE81FF}.ace-monokai .ace_invalid {color: #F8F8F0;background-color: #F92672}.ace-monokai .ace_invalid.ace_deprecated {color: #F8F8F0;background-color: #AE81FF}.ace-monokai .ace_support.ace_constant,.ace-monokai .ace_support.ace_function {color: #66D9EF}.ace-monokai .ace_fold {background-color: #A6E22E;border-color: #F8F8F2}.ace-monokai .ace_storage.ace_type,.ace-monokai .ace_support.ace_class,.ace-monokai .ace_support.ace_type {font-style: italic;color: #66D9EF}.ace-monokai .ace_entity.ace_name.ace_function,.ace-monokai .ace_entity.ace_other,.ace-monokai .ace_entity.ace_other.ace_attribute-name,.ace-monokai .ace_variable {color: #A6E22E}.ace-monokai .ace_variable.ace_parameter {font-style: italic;color: #FD971F}.ace-monokai .ace_string {color: #E6DB74}.ace-monokai .ace_comment {color: #75715E}.ace-monokai .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ0FD0ZXBzd/wPAAjVAoxeSgNeAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-pastel_on_dark.js",
    "content": "ace.define(\"ace/theme/pastel_on_dark\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-pastel-on-dark\",t.cssText=\".ace-pastel-on-dark .ace_gutter {background: #353030;color: #8F938F}.ace-pastel-on-dark .ace_print-margin {width: 1px;background: #353030}.ace-pastel-on-dark {background-color: #2C2828;color: #8F938F}.ace-pastel-on-dark .ace_cursor {color: #A7A7A7}.ace-pastel-on-dark .ace_marker-layer .ace_selection {background: rgba(221, 240, 255, 0.20)}.ace-pastel-on-dark.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #2C2828;}.ace-pastel-on-dark .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-pastel-on-dark .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 255, 255, 0.25)}.ace-pastel-on-dark .ace_marker-layer .ace_active-line {background: rgba(255, 255, 255, 0.031)}.ace-pastel-on-dark .ace_gutter-active-line {background-color: rgba(255, 255, 255, 0.031)}.ace-pastel-on-dark .ace_marker-layer .ace_selected-word {border: 1px solid rgba(221, 240, 255, 0.20)}.ace-pastel-on-dark .ace_invisible {color: rgba(255, 255, 255, 0.25)}.ace-pastel-on-dark .ace_keyword,.ace-pastel-on-dark .ace_meta {color: #757aD8}.ace-pastel-on-dark .ace_constant,.ace-pastel-on-dark .ace_constant.ace_character,.ace-pastel-on-dark .ace_constant.ace_character.ace_escape,.ace-pastel-on-dark .ace_constant.ace_other {color: #4FB7C5}.ace-pastel-on-dark .ace_keyword.ace_operator {color: #797878}.ace-pastel-on-dark .ace_constant.ace_character {color: #AFA472}.ace-pastel-on-dark .ace_constant.ace_language {color: #DE8E30}.ace-pastel-on-dark .ace_constant.ace_numeric {color: #CCCCCC}.ace-pastel-on-dark .ace_invalid,.ace-pastel-on-dark .ace_invalid.ace_illegal {color: #F8F8F8;background-color: rgba(86, 45, 86, 0.75)}.ace-pastel-on-dark .ace_invalid.ace_deprecated {text-decoration: underline;font-style: italic;color: #D2A8A1}.ace-pastel-on-dark .ace_fold {background-color: #757aD8;border-color: #8F938F}.ace-pastel-on-dark .ace_support.ace_function {color: #AEB2F8}.ace-pastel-on-dark .ace_string {color: #66A968}.ace-pastel-on-dark .ace_string.ace_regexp {color: #E9C062}.ace-pastel-on-dark .ace_comment {color: #A6C6FF}.ace-pastel-on-dark .ace_variable {color: #BEBF55}.ace-pastel-on-dark .ace_variable.ace_language {color: #C1C144}.ace-pastel-on-dark .ace_xml-pe {color: #494949}.ace-pastel-on-dark .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYIiPj/8PAARgAh2NTMh8AAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-solarized_dark.js",
    "content": "ace.define(\"ace/theme/solarized_dark\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-solarized-dark\",t.cssText=\".ace-solarized-dark .ace_gutter {background: #01313f;color: #d0edf7}.ace-solarized-dark .ace_print-margin {width: 1px;background: #33555E}.ace-solarized-dark {background-color: #002B36;color: #93A1A1}.ace-solarized-dark .ace_entity.ace_other.ace_attribute-name,.ace-solarized-dark .ace_storage {color: #93A1A1}.ace-solarized-dark .ace_cursor,.ace-solarized-dark .ace_string.ace_regexp {color: #D30102}.ace-solarized-dark .ace_marker-layer .ace_active-line,.ace-solarized-dark .ace_marker-layer .ace_selection {background: rgba(255, 255, 255, 0.1)}.ace-solarized-dark.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #002B36;}.ace-solarized-dark .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-solarized-dark .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(147, 161, 161, 0.50)}.ace-solarized-dark .ace_gutter-active-line {background-color: #0d3440}.ace-solarized-dark .ace_marker-layer .ace_selected-word {border: 1px solid #073642}.ace-solarized-dark .ace_invisible {color: rgba(147, 161, 161, 0.50)}.ace-solarized-dark .ace_keyword,.ace-solarized-dark .ace_meta,.ace-solarized-dark .ace_support.ace_class,.ace-solarized-dark .ace_support.ace_type {color: #859900}.ace-solarized-dark .ace_constant.ace_character,.ace-solarized-dark .ace_constant.ace_other {color: #CB4B16}.ace-solarized-dark .ace_constant.ace_language {color: #B58900}.ace-solarized-dark .ace_constant.ace_numeric {color: #D33682}.ace-solarized-dark .ace_fold {background-color: #268BD2;border-color: #93A1A1}.ace-solarized-dark .ace_entity.ace_name.ace_function,.ace-solarized-dark .ace_entity.ace_name.ace_tag,.ace-solarized-dark .ace_support.ace_function,.ace-solarized-dark .ace_variable,.ace-solarized-dark .ace_variable.ace_language {color: #268BD2}.ace-solarized-dark .ace_string {color: #2AA198}.ace-solarized-dark .ace_comment {font-style: italic;color: #657B83}.ace-solarized-dark .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNg0Db1ZVCxc/sPAAd4AlUHlLenAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-solarized_light.js",
    "content": "ace.define(\"ace/theme/solarized_light\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-solarized-light\",t.cssText=\".ace-solarized-light .ace_gutter {background: #fbf1d3;color: #333}.ace-solarized-light .ace_print-margin {width: 1px;background: #e8e8e8}.ace-solarized-light {background-color: #FDF6E3;color: #586E75}.ace-solarized-light .ace_cursor {color: #000000}.ace-solarized-light .ace_marker-layer .ace_selection {background: rgba(7, 54, 67, 0.09)}.ace-solarized-light.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #FDF6E3;}.ace-solarized-light .ace_marker-layer .ace_step {background: rgb(255, 255, 0)}.ace-solarized-light .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(147, 161, 161, 0.50)}.ace-solarized-light .ace_marker-layer .ace_active-line {background: #EEE8D5}.ace-solarized-light .ace_gutter-active-line {background-color : #EDE5C1}.ace-solarized-light .ace_marker-layer .ace_selected-word {border: 1px solid #073642}.ace-solarized-light .ace_invisible {color: rgba(147, 161, 161, 0.50)}.ace-solarized-light .ace_keyword,.ace-solarized-light .ace_meta,.ace-solarized-light .ace_support.ace_class,.ace-solarized-light .ace_support.ace_type {color: #859900}.ace-solarized-light .ace_constant.ace_character,.ace-solarized-light .ace_constant.ace_other {color: #CB4B16}.ace-solarized-light .ace_constant.ace_language {color: #B58900}.ace-solarized-light .ace_constant.ace_numeric {color: #D33682}.ace-solarized-light .ace_fold {background-color: #268BD2;border-color: #586E75}.ace-solarized-light .ace_entity.ace_name.ace_function,.ace-solarized-light .ace_entity.ace_name.ace_tag,.ace-solarized-light .ace_support.ace_function,.ace-solarized-light .ace_variable,.ace-solarized-light .ace_variable.ace_language {color: #268BD2}.ace-solarized-light .ace_storage {color: #073642}.ace-solarized-light .ace_string {color: #2AA198}.ace-solarized-light .ace_string.ace_regexp {color: #D30102}.ace-solarized-light .ace_comment,.ace-solarized-light .ace_entity.ace_other.ace_attribute-name {color: #93A1A1}.ace-solarized-light .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHjy8NJ/AAjgA5fzQUmBAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-sqlserver.js",
    "content": "ace.define(\"ace/theme/sqlserver\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-sqlserver\",t.cssText='.ace-sqlserver .ace_gutter {background: #ebebeb;color: #333;overflow: hidden;}.ace-sqlserver .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-sqlserver {background-color: #FFFFFF;color: black;}.ace-sqlserver .ace_identifier {color: black;}.ace-sqlserver .ace_keyword {color: #0000FF;}.ace-sqlserver .ace_numeric {color: black;}.ace-sqlserver .ace_storage {color: #11B7BE;}.ace-sqlserver .ace_keyword.ace_operator,.ace-sqlserver .ace_lparen,.ace-sqlserver .ace_rparen,.ace-sqlserver .ace_punctuation {color: #808080;}.ace-sqlserver .ace_set.ace_statement {color: #0000FF;text-decoration: underline;}.ace-sqlserver .ace_cursor {color: black;}.ace-sqlserver .ace_invisible {color: rgb(191, 191, 191);}.ace-sqlserver .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-sqlserver .ace_constant.ace_language {color: #979797;}.ace-sqlserver .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-sqlserver .ace_invalid {background-color: rgb(153, 0, 0);color: white;}.ace-sqlserver .ace_support.ace_function {color: #FF00FF;}.ace-sqlserver .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-sqlserver .ace_class {color: #008080;}.ace-sqlserver .ace_support.ace_other {color: #6D79DE;}.ace-sqlserver .ace_variable.ace_parameter {font-style: italic;color: #FD971F;}.ace-sqlserver .ace_comment {color: #008000;}.ace-sqlserver .ace_constant.ace_numeric {color: black;}.ace-sqlserver .ace_variable {color: rgb(49, 132, 149);}.ace-sqlserver .ace_xml-pe {color: rgb(104, 104, 91);}.ace-sqlserver .ace_support.ace_storedprocedure {color: #800000;}.ace-sqlserver .ace_heading {color: rgb(12, 7, 255);}.ace-sqlserver .ace_list {color: rgb(185, 6, 144);}.ace-sqlserver .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-sqlserver .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-sqlserver .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-sqlserver .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-sqlserver .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-sqlserver .ace_gutter-active-line {background-color: #dcdcdc;}.ace-sqlserver .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-sqlserver .ace_meta.ace_tag {color: #0000FF;}.ace-sqlserver .ace_string.ace_regex {color: #FF0000;}.ace-sqlserver .ace_string {color: #FF0000;}.ace-sqlserver .ace_entity.ace_other.ace_attribute-name {color: #994409;}.ace-sqlserver .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;}';var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-terminal.js",
    "content": "ace.define(\"ace/theme/terminal\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-terminal-theme\",t.cssText=\".ace-terminal-theme .ace_gutter {background: #1a0005;color: steelblue}.ace-terminal-theme .ace_print-margin {width: 1px;background: #1a1a1a}.ace-terminal-theme {background-color: black;color: #DEDEDE}.ace-terminal-theme .ace_cursor {color: #9F9F9F}.ace-terminal-theme .ace_marker-layer .ace_selection {background: #424242}.ace-terminal-theme.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px black;}.ace-terminal-theme .ace_marker-layer .ace_step {background: rgb(0, 0, 0)}.ace-terminal-theme .ace_marker-layer .ace_bracket {background: #090;}.ace-terminal-theme .ace_marker-layer .ace_bracket-start {background: #090;}.ace-terminal-theme .ace_marker-layer .ace_bracket-unmatched {margin: -1px 0 0 -1px;border: 1px solid #900}.ace-terminal-theme .ace_marker-layer .ace_active-line {background: #2A2A2A}.ace-terminal-theme .ace_gutter-active-line {background-color: #2A112A}.ace-terminal-theme .ace_marker-layer .ace_selected-word {border: 1px solid #424242}.ace-terminal-theme .ace_invisible {color: #343434}.ace-terminal-theme .ace_keyword,.ace-terminal-theme .ace_meta,.ace-terminal-theme .ace_storage,.ace-terminal-theme .ace_storage.ace_type,.ace-terminal-theme .ace_support.ace_type {color: tomato}.ace-terminal-theme .ace_keyword.ace_operator {color: deeppink}.ace-terminal-theme .ace_constant.ace_character,.ace-terminal-theme .ace_constant.ace_language,.ace-terminal-theme .ace_constant.ace_numeric,.ace-terminal-theme .ace_keyword.ace_other.ace_unit,.ace-terminal-theme .ace_support.ace_constant,.ace-terminal-theme .ace_variable.ace_parameter {color: #E78C45}.ace-terminal-theme .ace_constant.ace_other {color: gold}.ace-terminal-theme .ace_invalid {color: yellow;background-color: red}.ace-terminal-theme .ace_invalid.ace_deprecated {color: #CED2CF;background-color: #B798BF}.ace-terminal-theme .ace_fold {background-color: #7AA6DA;border-color: #DEDEDE}.ace-terminal-theme .ace_entity.ace_name.ace_function,.ace-terminal-theme .ace_support.ace_function,.ace-terminal-theme .ace_variable {color: #7AA6DA}.ace-terminal-theme .ace_support.ace_class,.ace-terminal-theme .ace_support.ace_type {color: #E7C547}.ace-terminal-theme .ace_heading,.ace-terminal-theme .ace_string {color: #B9CA4A}.ace-terminal-theme .ace_entity.ace_name.ace_tag,.ace-terminal-theme .ace_entity.ace_other.ace_attribute-name,.ace-terminal-theme .ace_meta.ace_tag,.ace-terminal-theme .ace_string.ace_regexp,.ace-terminal-theme .ace_variable {color: #D54E53}.ace-terminal-theme .ace_comment {color: orangered}.ace-terminal-theme .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYLBWV/8PAAK4AYnhiq+xAAAAAElFTkSuQmCC) right repeat-y;}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-textmate.js",
    "content": "ace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){\"use strict\";t.isDark=!1,t.cssClass=\"ace-tm\",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;}';var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-tomorrow.js",
    "content": "ace.define(\"ace/theme/tomorrow\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-tomorrow\",t.cssText=\".ace-tomorrow .ace_gutter {background: #f6f6f6;color: #4D4D4C}.ace-tomorrow .ace_print-margin {width: 1px;background: #f6f6f6}.ace-tomorrow {background-color: #FFFFFF;color: #4D4D4C}.ace-tomorrow .ace_cursor {color: #AEAFAD}.ace-tomorrow .ace_marker-layer .ace_selection {background: #D6D6D6}.ace-tomorrow.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #FFFFFF;}.ace-tomorrow .ace_marker-layer .ace_step {background: rgb(255, 255, 0)}.ace-tomorrow .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #D1D1D1}.ace-tomorrow .ace_marker-layer .ace_active-line {background: #EFEFEF}.ace-tomorrow .ace_gutter-active-line {background-color : #dcdcdc}.ace-tomorrow .ace_marker-layer .ace_selected-word {border: 1px solid #D6D6D6}.ace-tomorrow .ace_invisible {color: #D1D1D1}.ace-tomorrow .ace_keyword,.ace-tomorrow .ace_meta,.ace-tomorrow .ace_storage,.ace-tomorrow .ace_storage.ace_type,.ace-tomorrow .ace_support.ace_type {color: #8959A8}.ace-tomorrow .ace_keyword.ace_operator {color: #3E999F}.ace-tomorrow .ace_constant.ace_character,.ace-tomorrow .ace_constant.ace_language,.ace-tomorrow .ace_constant.ace_numeric,.ace-tomorrow .ace_keyword.ace_other.ace_unit,.ace-tomorrow .ace_support.ace_constant,.ace-tomorrow .ace_variable.ace_parameter {color: #F5871F}.ace-tomorrow .ace_constant.ace_other {color: #666969}.ace-tomorrow .ace_invalid {color: #FFFFFF;background-color: #C82829}.ace-tomorrow .ace_invalid.ace_deprecated {color: #FFFFFF;background-color: #8959A8}.ace-tomorrow .ace_fold {background-color: #4271AE;border-color: #4D4D4C}.ace-tomorrow .ace_entity.ace_name.ace_function,.ace-tomorrow .ace_support.ace_function,.ace-tomorrow .ace_variable {color: #4271AE}.ace-tomorrow .ace_support.ace_class,.ace-tomorrow .ace_support.ace_type {color: #C99E00}.ace-tomorrow .ace_heading,.ace-tomorrow .ace_markup.ace_heading,.ace-tomorrow .ace_string {color: #718C00}.ace-tomorrow .ace_entity.ace_name.ace_tag,.ace-tomorrow .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow .ace_meta.ace_tag,.ace-tomorrow .ace_string.ace_regexp,.ace-tomorrow .ace_variable {color: #C82829}.ace-tomorrow .ace_comment {color: #8E908C}.ace-tomorrow .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bdu3f/BwAlfgctduB85QAAAABJRU5ErkJggg==) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-tomorrow_night.js",
    "content": "ace.define(\"ace/theme/tomorrow_night\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-tomorrow-night\",t.cssText=\".ace-tomorrow-night .ace_gutter {background: #25282c;color: #C5C8C6}.ace-tomorrow-night .ace_print-margin {width: 1px;background: #25282c}.ace-tomorrow-night {background-color: #1D1F21;color: #C5C8C6}.ace-tomorrow-night .ace_cursor {color: #AEAFAD}.ace-tomorrow-night .ace_marker-layer .ace_selection {background: #373B41}.ace-tomorrow-night.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #1D1F21;}.ace-tomorrow-night .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-tomorrow-night .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #4B4E55}.ace-tomorrow-night .ace_marker-layer .ace_active-line {background: #282A2E}.ace-tomorrow-night .ace_gutter-active-line {background-color: #282A2E}.ace-tomorrow-night .ace_marker-layer .ace_selected-word {border: 1px solid #373B41}.ace-tomorrow-night .ace_invisible {color: #4B4E55}.ace-tomorrow-night .ace_keyword,.ace-tomorrow-night .ace_meta,.ace-tomorrow-night .ace_storage,.ace-tomorrow-night .ace_storage.ace_type,.ace-tomorrow-night .ace_support.ace_type {color: #B294BB}.ace-tomorrow-night .ace_keyword.ace_operator {color: #8ABEB7}.ace-tomorrow-night .ace_constant.ace_character,.ace-tomorrow-night .ace_constant.ace_language,.ace-tomorrow-night .ace_constant.ace_numeric,.ace-tomorrow-night .ace_keyword.ace_other.ace_unit,.ace-tomorrow-night .ace_support.ace_constant,.ace-tomorrow-night .ace_variable.ace_parameter {color: #DE935F}.ace-tomorrow-night .ace_constant.ace_other {color: #CED1CF}.ace-tomorrow-night .ace_invalid {color: #CED2CF;background-color: #DF5F5F}.ace-tomorrow-night .ace_invalid.ace_deprecated {color: #CED2CF;background-color: #B798BF}.ace-tomorrow-night .ace_fold {background-color: #81A2BE;border-color: #C5C8C6}.ace-tomorrow-night .ace_entity.ace_name.ace_function,.ace-tomorrow-night .ace_support.ace_function,.ace-tomorrow-night .ace_variable {color: #81A2BE}.ace-tomorrow-night .ace_support.ace_class,.ace-tomorrow-night .ace_support.ace_type {color: #F0C674}.ace-tomorrow-night .ace_heading,.ace-tomorrow-night .ace_markup.ace_heading,.ace-tomorrow-night .ace_string {color: #B5BD68}.ace-tomorrow-night .ace_entity.ace_name.ace_tag,.ace-tomorrow-night .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow-night .ace_meta.ace_tag,.ace-tomorrow-night .ace_string.ace_regexp,.ace-tomorrow-night .ace_variable {color: #CC6666}.ace-tomorrow-night .ace_comment {color: #969896}.ace-tomorrow-night .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHB3d/8PAAOIAdULw8qMAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-tomorrow_night_blue.js",
    "content": "ace.define(\"ace/theme/tomorrow_night_blue\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-tomorrow-night-blue\",t.cssText=\".ace-tomorrow-night-blue .ace_gutter {background: #00204b;color: #7388b5}.ace-tomorrow-night-blue .ace_print-margin {width: 1px;background: #00204b}.ace-tomorrow-night-blue {background-color: #002451;color: #FFFFFF}.ace-tomorrow-night-blue .ace_constant.ace_other,.ace-tomorrow-night-blue .ace_cursor {color: #FFFFFF}.ace-tomorrow-night-blue .ace_marker-layer .ace_selection {background: #003F8E}.ace-tomorrow-night-blue.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #002451;}.ace-tomorrow-night-blue .ace_marker-layer .ace_step {background: rgb(127, 111, 19)}.ace-tomorrow-night-blue .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404F7D}.ace-tomorrow-night-blue .ace_marker-layer .ace_active-line {background: #00346E}.ace-tomorrow-night-blue .ace_gutter-active-line {background-color: #022040}.ace-tomorrow-night-blue .ace_marker-layer .ace_selected-word {border: 1px solid #003F8E}.ace-tomorrow-night-blue .ace_invisible {color: #404F7D}.ace-tomorrow-night-blue .ace_keyword,.ace-tomorrow-night-blue .ace_meta,.ace-tomorrow-night-blue .ace_storage,.ace-tomorrow-night-blue .ace_storage.ace_type,.ace-tomorrow-night-blue .ace_support.ace_type {color: #EBBBFF}.ace-tomorrow-night-blue .ace_keyword.ace_operator {color: #99FFFF}.ace-tomorrow-night-blue .ace_constant.ace_character,.ace-tomorrow-night-blue .ace_constant.ace_language,.ace-tomorrow-night-blue .ace_constant.ace_numeric,.ace-tomorrow-night-blue .ace_keyword.ace_other.ace_unit,.ace-tomorrow-night-blue .ace_support.ace_constant,.ace-tomorrow-night-blue .ace_variable.ace_parameter {color: #FFC58F}.ace-tomorrow-night-blue .ace_invalid {color: #FFFFFF;background-color: #F99DA5}.ace-tomorrow-night-blue .ace_invalid.ace_deprecated {color: #FFFFFF;background-color: #EBBBFF}.ace-tomorrow-night-blue .ace_fold {background-color: #BBDAFF;border-color: #FFFFFF}.ace-tomorrow-night-blue .ace_entity.ace_name.ace_function,.ace-tomorrow-night-blue .ace_support.ace_function,.ace-tomorrow-night-blue .ace_variable {color: #BBDAFF}.ace-tomorrow-night-blue .ace_support.ace_class,.ace-tomorrow-night-blue .ace_support.ace_type {color: #FFEEAD}.ace-tomorrow-night-blue .ace_heading,.ace-tomorrow-night-blue .ace_markup.ace_heading,.ace-tomorrow-night-blue .ace_string {color: #D1F1A9}.ace-tomorrow-night-blue .ace_entity.ace_name.ace_tag,.ace-tomorrow-night-blue .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow-night-blue .ace_meta.ace_tag,.ace-tomorrow-night-blue .ace_string.ace_regexp,.ace-tomorrow-night-blue .ace_variable {color: #FF9DA4}.ace-tomorrow-night-blue .ace_comment {color: #7285B7}.ace-tomorrow-night-blue .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYJDzqfwPAANXAeNsiA+ZAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-tomorrow_night_bright.js",
    "content": "ace.define(\"ace/theme/tomorrow_night_bright\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-tomorrow-night-bright\",t.cssText=\".ace-tomorrow-night-bright .ace_gutter {background: #1a1a1a;color: #DEDEDE}.ace-tomorrow-night-bright .ace_print-margin {width: 1px;background: #1a1a1a}.ace-tomorrow-night-bright {background-color: #000000;color: #DEDEDE}.ace-tomorrow-night-bright .ace_cursor {color: #9F9F9F}.ace-tomorrow-night-bright .ace_marker-layer .ace_selection {background: #424242}.ace-tomorrow-night-bright.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #000000;}.ace-tomorrow-night-bright .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-tomorrow-night-bright .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #888888}.ace-tomorrow-night-bright .ace_marker-layer .ace_highlight {border: 1px solid rgb(110, 119, 0);border-bottom: 0;box-shadow: inset 0 -1px rgb(110, 119, 0);margin: -1px 0 0 -1px;background: rgba(255, 235, 0, 0.1)}.ace-tomorrow-night-bright .ace_marker-layer .ace_active-line {background: #2A2A2A}.ace-tomorrow-night-bright .ace_gutter-active-line {background-color: #2A2A2A}.ace-tomorrow-night-bright .ace_stack {background-color: rgb(66, 90, 44)}.ace-tomorrow-night-bright .ace_marker-layer .ace_selected-word {border: 1px solid #888888}.ace-tomorrow-night-bright .ace_invisible {color: #343434}.ace-tomorrow-night-bright .ace_keyword,.ace-tomorrow-night-bright .ace_meta,.ace-tomorrow-night-bright .ace_storage,.ace-tomorrow-night-bright .ace_storage.ace_type,.ace-tomorrow-night-bright .ace_support.ace_type {color: #C397D8}.ace-tomorrow-night-bright .ace_keyword.ace_operator {color: #70C0B1}.ace-tomorrow-night-bright .ace_constant.ace_character,.ace-tomorrow-night-bright .ace_constant.ace_language,.ace-tomorrow-night-bright .ace_constant.ace_numeric,.ace-tomorrow-night-bright .ace_keyword.ace_other.ace_unit,.ace-tomorrow-night-bright .ace_support.ace_constant,.ace-tomorrow-night-bright .ace_variable.ace_parameter {color: #E78C45}.ace-tomorrow-night-bright .ace_constant.ace_other {color: #EEEEEE}.ace-tomorrow-night-bright .ace_invalid {color: #CED2CF;background-color: #DF5F5F}.ace-tomorrow-night-bright .ace_invalid.ace_deprecated {color: #CED2CF;background-color: #B798BF}.ace-tomorrow-night-bright .ace_fold {background-color: #7AA6DA;border-color: #DEDEDE}.ace-tomorrow-night-bright .ace_entity.ace_name.ace_function,.ace-tomorrow-night-bright .ace_support.ace_function,.ace-tomorrow-night-bright .ace_variable {color: #7AA6DA}.ace-tomorrow-night-bright .ace_support.ace_class,.ace-tomorrow-night-bright .ace_support.ace_type {color: #E7C547}.ace-tomorrow-night-bright .ace_heading,.ace-tomorrow-night-bright .ace_markup.ace_heading,.ace-tomorrow-night-bright .ace_string {color: #B9CA4A}.ace-tomorrow-night-bright .ace_entity.ace_name.ace_tag,.ace-tomorrow-night-bright .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow-night-bright .ace_meta.ace_tag,.ace-tomorrow-night-bright .ace_string.ace_regexp,.ace-tomorrow-night-bright .ace_variable {color: #D54E53}.ace-tomorrow-night-bright .ace_comment {color: #969896}.ace-tomorrow-night-bright .ace_c9searchresults.ace_keyword {color: #C2C280}.ace-tomorrow-night-bright .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYFBXV/8PAAJoAXX4kT2EAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-tomorrow_night_eighties.js",
    "content": "ace.define(\"ace/theme/tomorrow_night_eighties\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-tomorrow-night-eighties\",t.cssText=\".ace-tomorrow-night-eighties .ace_gutter {background: #272727;color: #CCC}.ace-tomorrow-night-eighties .ace_print-margin {width: 1px;background: #272727}.ace-tomorrow-night-eighties {background-color: #2D2D2D;color: #CCCCCC}.ace-tomorrow-night-eighties .ace_constant.ace_other,.ace-tomorrow-night-eighties .ace_cursor {color: #CCCCCC}.ace-tomorrow-night-eighties .ace_marker-layer .ace_selection {background: #515151}.ace-tomorrow-night-eighties.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #2D2D2D;}.ace-tomorrow-night-eighties .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-tomorrow-night-eighties .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #6A6A6A}.ace-tomorrow-night-bright .ace_stack {background: rgb(66, 90, 44)}.ace-tomorrow-night-eighties .ace_marker-layer .ace_active-line {background: #393939}.ace-tomorrow-night-eighties .ace_gutter-active-line {background-color: #393939}.ace-tomorrow-night-eighties .ace_marker-layer .ace_selected-word {border: 1px solid #515151}.ace-tomorrow-night-eighties .ace_invisible {color: #6A6A6A}.ace-tomorrow-night-eighties .ace_keyword,.ace-tomorrow-night-eighties .ace_meta,.ace-tomorrow-night-eighties .ace_storage,.ace-tomorrow-night-eighties .ace_storage.ace_type,.ace-tomorrow-night-eighties .ace_support.ace_type {color: #CC99CC}.ace-tomorrow-night-eighties .ace_keyword.ace_operator {color: #66CCCC}.ace-tomorrow-night-eighties .ace_constant.ace_character,.ace-tomorrow-night-eighties .ace_constant.ace_language,.ace-tomorrow-night-eighties .ace_constant.ace_numeric,.ace-tomorrow-night-eighties .ace_keyword.ace_other.ace_unit,.ace-tomorrow-night-eighties .ace_support.ace_constant,.ace-tomorrow-night-eighties .ace_variable.ace_parameter {color: #F99157}.ace-tomorrow-night-eighties .ace_invalid {color: #CDCDCD;background-color: #F2777A}.ace-tomorrow-night-eighties .ace_invalid.ace_deprecated {color: #CDCDCD;background-color: #CC99CC}.ace-tomorrow-night-eighties .ace_fold {background-color: #6699CC;border-color: #CCCCCC}.ace-tomorrow-night-eighties .ace_entity.ace_name.ace_function,.ace-tomorrow-night-eighties .ace_support.ace_function,.ace-tomorrow-night-eighties .ace_variable {color: #6699CC}.ace-tomorrow-night-eighties .ace_support.ace_class,.ace-tomorrow-night-eighties .ace_support.ace_type {color: #FFCC66}.ace-tomorrow-night-eighties .ace_heading,.ace-tomorrow-night-eighties .ace_markup.ace_heading,.ace-tomorrow-night-eighties .ace_string {color: #99CC99}.ace-tomorrow-night-eighties .ace_comment {color: #999999}.ace-tomorrow-night-eighties .ace_entity.ace_name.ace_tag,.ace-tomorrow-night-eighties .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow-night-eighties .ace_meta.ace_tag,.ace-tomorrow-night-eighties .ace_variable {color: #F2777A}.ace-tomorrow-night-eighties .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ09NrYAgMjP4PAAtGAwchHMyAAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-twilight.js",
    "content": "ace.define(\"ace/theme/twilight\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-twilight\",t.cssText=\".ace-twilight .ace_gutter {background: #232323;color: #E2E2E2}.ace-twilight .ace_print-margin {width: 1px;background: #232323}.ace-twilight {background-color: #141414;color: #F8F8F8}.ace-twilight .ace_cursor {color: #A7A7A7}.ace-twilight .ace_marker-layer .ace_selection {background: rgba(221, 240, 255, 0.20)}.ace-twilight.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #141414;}.ace-twilight .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-twilight .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 255, 255, 0.25)}.ace-twilight .ace_marker-layer .ace_active-line {background: rgba(255, 255, 255, 0.031)}.ace-twilight .ace_gutter-active-line {background-color: rgba(255, 255, 255, 0.031)}.ace-twilight .ace_marker-layer .ace_selected-word {border: 1px solid rgba(221, 240, 255, 0.20)}.ace-twilight .ace_invisible {color: rgba(255, 255, 255, 0.25)}.ace-twilight .ace_keyword,.ace-twilight .ace_meta {color: #CDA869}.ace-twilight .ace_constant,.ace-twilight .ace_constant.ace_character,.ace-twilight .ace_constant.ace_character.ace_escape,.ace-twilight .ace_constant.ace_other,.ace-twilight .ace_heading,.ace-twilight .ace_markup.ace_heading,.ace-twilight .ace_support.ace_constant {color: #CF6A4C}.ace-twilight .ace_invalid.ace_illegal {color: #F8F8F8;background-color: rgba(86, 45, 86, 0.75)}.ace-twilight .ace_invalid.ace_deprecated {text-decoration: underline;font-style: italic;color: #D2A8A1}.ace-twilight .ace_support {color: #9B859D}.ace-twilight .ace_fold {background-color: #AC885B;border-color: #F8F8F8}.ace-twilight .ace_support.ace_function {color: #DAD085}.ace-twilight .ace_list,.ace-twilight .ace_markup.ace_list,.ace-twilight .ace_storage {color: #F9EE98}.ace-twilight .ace_entity.ace_name.ace_function,.ace-twilight .ace_meta.ace_tag,.ace-twilight .ace_variable {color: #AC885B}.ace-twilight .ace_string {color: #8F9D6A}.ace-twilight .ace_string.ace_regexp {color: #E9C062}.ace-twilight .ace_comment {font-style: italic;color: #5F5A60}.ace-twilight .ace_variable {color: #7587A6}.ace-twilight .ace_xml-pe {color: #494949}.ace-twilight .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMQERFpYLC1tf0PAAgOAnPnhxyiAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-vibrant_ink.js",
    "content": "ace.define(\"ace/theme/vibrant_ink\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-vibrant-ink\",t.cssText=\".ace-vibrant-ink .ace_gutter {background: #1a1a1a;color: #BEBEBE}.ace-vibrant-ink .ace_print-margin {width: 1px;background: #1a1a1a}.ace-vibrant-ink {background-color: #0F0F0F;color: #FFFFFF}.ace-vibrant-ink .ace_cursor {color: #FFFFFF}.ace-vibrant-ink .ace_marker-layer .ace_selection {background: #6699CC}.ace-vibrant-ink.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #0F0F0F;}.ace-vibrant-ink .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-vibrant-ink .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404040}.ace-vibrant-ink .ace_marker-layer .ace_active-line {background: #333333}.ace-vibrant-ink .ace_gutter-active-line {background-color: #333333}.ace-vibrant-ink .ace_marker-layer .ace_selected-word {border: 1px solid #6699CC}.ace-vibrant-ink .ace_invisible {color: #404040}.ace-vibrant-ink .ace_keyword,.ace-vibrant-ink .ace_meta {color: #FF6600}.ace-vibrant-ink .ace_constant,.ace-vibrant-ink .ace_constant.ace_character,.ace-vibrant-ink .ace_constant.ace_character.ace_escape,.ace-vibrant-ink .ace_constant.ace_other {color: #339999}.ace-vibrant-ink .ace_constant.ace_numeric {color: #99CC99}.ace-vibrant-ink .ace_invalid,.ace-vibrant-ink .ace_invalid.ace_deprecated {color: #CCFF33;background-color: #000000}.ace-vibrant-ink .ace_fold {background-color: #FFCC00;border-color: #FFFFFF}.ace-vibrant-ink .ace_entity.ace_name.ace_function,.ace-vibrant-ink .ace_support.ace_function,.ace-vibrant-ink .ace_variable {color: #FFCC00}.ace-vibrant-ink .ace_variable.ace_parameter {font-style: italic}.ace-vibrant-ink .ace_string {color: #66FF00}.ace-vibrant-ink .ace_string.ace_regexp {color: #44B4CC}.ace-vibrant-ink .ace_comment {color: #9933CC}.ace-vibrant-ink .ace_entity.ace_other.ace_attribute-name {font-style: italic;color: #99CC99}.ace-vibrant-ink .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYNDTc/oPAALPAZ7hxlbYAAAAAElFTkSuQmCC) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/theme-xcode.js",
    "content": "ace.define(\"ace/theme/xcode\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-xcode\",t.cssText=\".ace-xcode .ace_gutter {background: #e8e8e8;color: #333}.ace-xcode .ace_print-margin {width: 1px;background: #e8e8e8}.ace-xcode {background-color: #FFFFFF;color: #000000}.ace-xcode .ace_cursor {color: #000000}.ace-xcode .ace_marker-layer .ace_selection {background: #B5D5FF}.ace-xcode.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #FFFFFF;}.ace-xcode .ace_marker-layer .ace_step {background: rgb(198, 219, 174)}.ace-xcode .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #BFBFBF}.ace-xcode .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.071)}.ace-xcode .ace_gutter-active-line {background-color: rgba(0, 0, 0, 0.071)}.ace-xcode .ace_marker-layer .ace_selected-word {border: 1px solid #B5D5FF}.ace-xcode .ace_constant.ace_language,.ace-xcode .ace_keyword,.ace-xcode .ace_meta,.ace-xcode .ace_variable.ace_language {color: #C800A4}.ace-xcode .ace_invisible {color: #BFBFBF}.ace-xcode .ace_constant.ace_character,.ace-xcode .ace_constant.ace_other {color: #275A5E}.ace-xcode .ace_constant.ace_numeric {color: #3A00DC}.ace-xcode .ace_entity.ace_other.ace_attribute-name,.ace-xcode .ace_support.ace_constant,.ace-xcode .ace_support.ace_function {color: #450084}.ace-xcode .ace_fold {background-color: #C800A4;border-color: #000000}.ace-xcode .ace_entity.ace_name.ace_tag,.ace-xcode .ace_support.ace_class,.ace-xcode .ace_support.ace_type {color: #790EAD}.ace-xcode .ace_storage {color: #C900A4}.ace-xcode .ace_string {color: #DF0002}.ace-xcode .ace_comment {color: #008E00}.ace-xcode .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==) right repeat-y}\";var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass)})"
  },
  {
    "path": "lib/src-min-noconflict-old/worker-coffee.js",
    "content": "\"no use strict\";(function(e){function t(e,t){var n=e,r=\"\";while(n){var i=t[n];if(typeof i==\"string\")return i+r;if(i)return i.location.replace(/\\/*$/,\"/\")+(r||i.main||i.name);if(i===!1)return\"\";var s=n.lastIndexOf(\"/\");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!=\"undefined\"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:\"error\",data:{message:e,data:i.data,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf(\"!\")!==-1){var r=n.split(\"!\");return e.normalizeModule(t,r[0])+\"!\"+e.normalizeModule(t,r[1])}if(n.charAt(0)==\".\"){var i=t.split(\"/\").slice(0,-1).join(\"/\");n=(i?i+\"/\":\"\")+n;while(n.indexOf(\".\")!==-1&&s!=n){var s=n;n=n.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log(\"unable to load \"+i);var o=t(i,e.require.tlns);return o.slice(-3)!=\".js\"&&(o+=\".js\"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!=\"string\"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!=\"function\"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=[\"require\",\"exports\",\"module\"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case\"require\":return i;case\"exports\":return e.exports;case\"module\":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},require.tlns={},e.initBaseUrls=function(t){for(var n in t)require.tlns[n]=t[n]},e.initSender=function(){var n=e.require(\"ace/lib/event_emitter\").EventEmitter,r=e.require(\"ace/lib/oop\"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:\"call\",id:t,data:e})},this.emit=function(e,t){postMessage({type:\"event\",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error(\"Unknown command:\"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),require(\"ace/lib/es5-shim\"),r=e.sender=e.initSender();var s=require(i.module)[i.classname];n=e.main=new s(r)}}})(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e==\"object\"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e==\"object\"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e,t){throw console.log(\"Invalid Delta:\",e),\"Invalid Delta: \"+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!=\"insert\"&&t.action!=\"remove\"&&r(t,\"delta.action must be 'insert' or 'remove'\"),t.lines instanceof Array||r(t,\"delta.lines must be an Array\"),(!t.start||!t.end)&&r(t,\"delta.start/end must be an present\");var n=t.start;i(e,t.start)||r(t,\"delta.start must be contained in document\");var s=t.end;t.action==\"remove\"&&!i(e,s)&&r(t,\"delta.end must contained in document for 'remove' actions\");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,\"delta.range must match delta lines\")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||\"\";switch(t.action){case\"insert\":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case\"remove\":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!=\"object\"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?\"unshift\":\"push\"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n==\"undefined\"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action==\"insert\",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal(\"change\",{old:i,value:r})},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./apply_delta\").applyDelta,s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=function(e){this.$lines=[\"\"],e.length===0?this.$lines=[\"\"]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},\"aaa\".split(/a/).length===0?this.$split=function(e){return e.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:this.$split=function(e){return e.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=t?t[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal(\"changeNewLineMode\")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==\"\\r\\n\"||e==\"\\r\"||e==\"\\n\"},this.getLine=function(e){return this.$lines[e]||\"\"},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||\"\").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(e,[\"\",\"\"])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:\"insert\",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([\"\"]),n=0):(t=[\"\"].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:\"insert\",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:\"remove\",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:\"remove\",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:\"remove\",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action==\"insert\";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal(\"change\",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(\"\"),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action==\"insert\"?\"remove\":\"insert\",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split(\"\").reverse().join(\"\")},t.stringRepeat=function(e,t){var n=\"\";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\\s\\s*/,i=/\\s\\s*$/;t.stringTrimLeft=function(e){return e.replace(r,\"\")},t.stringTrimRight=function(e){return e.replace(i,\"\")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]==\"object\"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!=\"object\"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}var r=e.constructor;if(r===RegExp)return e;t=r();for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},t.escapeHTML=function(e){return e.replace(/&/g,\"&#38;\").replace(/\"/g,\"&#34;\").replace(/'/g,\"&#39;\").replace(/</g,\"&#60;\")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=e(\"../document\").Document,s=e(\"../lib/lang\"),o=t.Mirror=function(e){this.sender=e;var t=this.doc=new i(\"\"),n=this.deferredUpdate=s.delayedCall(this.onUpdate.bind(this)),r=this;e.on(\"change\",function(e){var i=e.data;if(i[0].start)t.applyDeltas(i);else for(var s=0;s<i.length;s+=2){if(Array.isArray(i[s+1]))var o={action:\"insert\",start:i[s],lines:i[s+1]};else var o={action:\"remove\",start:i[s],end:i[s+1]};t.applyDelta(o,!0)}if(r.$timeout)return n.schedule(r.$timeout);r.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),ace.define(\"ace/mode/coffee/coffee\",[\"require\",\"exports\",\"module\"],function(require,exports,module){function define(e){module.exports=e()}define.amd={},function(root){var CoffeeScript=function(){function _dereq_(e){return _dereq_[e]}return _dereq_[\"./helpers\"]=function(){var e={},t={exports:e};return function(){var t,n,r,i,s,o;e.starts=function(e,t,n){return t===e.substr(n,t.length)},e.ends=function(e,t,n){var r;return r=t.length,t===e.substr(e.length-r-(n||0),r)},e.repeat=s=function(e,t){var n;for(n=\"\";t>0;)1&t&&(n+=e),t>>>=1,e+=e;return n},e.compact=function(e){var t,n,r,i;for(i=[],t=0,r=e.length;r>t;t++)n=e[t],n&&i.push(n);return i},e.count=function(e,t){var n,r;if(n=r=0,!t.length)return 1/0;for(;r=1+e.indexOf(t,r);)n++;return n},e.merge=function(e,t){return n(n({},e),t)},n=e.extend=function(e,t){var n,r;for(n in t)r=t[n],e[n]=r;return e},e.flatten=r=function(e){var t,n,i,s;for(n=[],i=0,s=e.length;s>i;i++)t=e[i],t instanceof Array?n=n.concat(r(t)):n.push(t);return n},e.del=function(e,t){var n;return n=e[t],delete e[t],n},e.some=null!=(i=Array.prototype.some)?i:function(e){var t,n,r;for(n=0,r=this.length;r>n;n++)if(t=this[n],e(t))return!0;return!1},e.invertLiterate=function(e){var t,n,r;return r=!0,n=function(){var n,i,s,o;for(s=e.split(\"\\n\"),o=[],n=0,i=s.length;i>n;n++)t=s[n],r&&/^([ ]{4}|[ ]{0,3}\\t)/.test(t)?o.push(t):(r=/^\\s*$/.test(t))?o.push(t):o.push(\"# \"+t);return o}(),n.join(\"\\n\")},t=function(e,t){return t?{first_line:e.first_line,first_column:e.first_column,last_line:t.last_line,last_column:t.last_column}:e},e.addLocationDataFn=function(e,n){return function(r){return\"object\"==typeof r&&r.updateLocationDataIfMissing&&r.updateLocationDataIfMissing(t(e,n)),r}},e.locationDataToString=function(e){var t;return\"2\"in e&&\"first_line\"in e[2]?t=e[2]:\"first_line\"in e&&(t=e),t?t.first_line+1+\":\"+(t.first_column+1)+\"-\"+(t.last_line+1+\":\"+(t.last_column+1)):\"No location data\"},e.baseFileName=function(e,t,n){var r,i;return null==t&&(t=!1),null==n&&(n=!1),i=n?/\\\\|\\//:/\\//,r=e.split(i),e=r[r.length-1],t&&e.indexOf(\".\")>=0?(r=e.split(\".\"),r.pop(),\"coffee\"===r[r.length-1]&&r.length>1&&r.pop(),r.join(\".\")):e},e.isCoffee=function(e){return/\\.((lit)?coffee|coffee\\.md)$/.test(e)},e.isLiterate=function(e){return/\\.(litcoffee|coffee\\.md)$/.test(e)},e.throwSyntaxError=function(e,t){var n;throw n=new SyntaxError(e),n.location=t,n.toString=o,n.stack=\"\"+n,n},e.updateSyntaxError=function(e,t,n){return e.toString===o&&(e.code||(e.code=t),e.filename||(e.filename=n),e.stack=\"\"+e),e},o=function(){var e,t,n,r,i,o,u,a,f,l,c,h,p,d,v;return this.code&&this.location?(c=this.location,u=c.first_line,o=c.first_column,f=c.last_line,a=c.last_column,null==f&&(f=u),null==a&&(a=o),i=this.filename||\"[stdin]\",e=this.code.split(\"\\n\")[u],v=o,r=u===f?a+1:e.length,l=e.slice(0,v).replace(/[^\\s]/g,\" \")+s(\"^\",r-v),\"undefined\"!=typeof process&&null!==process&&(n=(null!=(h=process.stdout)?h.isTTY:void 0)&&(null!=(p=process.env)?!p.NODE_DISABLE_COLORS:!void 0)),(null!=(d=this.colorful)?d:n)&&(t=function(e){return\"\u001b[1;31m\"+e+\"\u001b[0m\"},e=e.slice(0,v)+t(e.slice(v,r))+e.slice(r),l=t(l)),i+\":\"+(u+1)+\":\"+(o+1)+\": error: \"+this.message+\"\\n\"+e+\"\\n\"+l):Error.prototype.toString.call(this)},e.nameWhitespaceCharacter=function(e){switch(e){case\" \":return\"space\";case\"\\n\":return\"newline\";case\"\\r\":return\"carriage return\";case\"\t\":return\"tab\";default:return e}}}.call(this),t.exports}(),_dereq_[\"./rewriter\"]=function(){var e={},t={exports:e};return function(){var t,n,r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y,b,w=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},E=[].slice;for(d=function(e,t,n){var r;return r=[e,t],r.generated=!0,n&&(r.origin=n),r},e.Rewriter=function(){function e(){}return e.prototype.rewrite=function(e){return this.tokens=e,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addLocationDataToGeneratedTokens(),this.tokens},e.prototype.scanTokens=function(e){var t,n,r;for(r=this.tokens,t=0;n=r[t];)t+=e.call(this,n,t,r);return!0},e.prototype.detectEnd=function(e,t,n){var r,o,u,a,f;for(f=this.tokens,r=0;a=f[e];){if(0===r&&t.call(this,a,e))return n.call(this,a,e);if(!a||0>r)return n.call(this,a,e-1);o=a[0],w.call(s,o)>=0?r+=1:(u=a[0],w.call(i,u)>=0&&(r-=1)),e+=1}return e-1},e.prototype.removeLeadingNewlines=function(){var e,t,n,r,i;for(r=this.tokens,e=t=0,n=r.length;n>t&&(i=r[e][0],\"TERMINATOR\"===i);e=++t);return e?this.tokens.splice(0,e):void 0},e.prototype.closeOpenCalls=function(){var e,t;return t=function(e,t){var n;return\")\"===(n=e[0])||\"CALL_END\"===n||\"OUTDENT\"===e[0]&&\")\"===this.tag(t-1)},e=function(e,t){return this.tokens[\"OUTDENT\"===e[0]?t-1:t][0]=\"CALL_END\"},this.scanTokens(function(n,r){return\"CALL_START\"===n[0]&&this.detectEnd(r+1,t,e),1})},e.prototype.closeOpenIndexes=function(){var e,t;return t=function(e){var t;return\"]\"===(t=e[0])||\"INDEX_END\"===t},e=function(e){return e[0]=\"INDEX_END\"},this.scanTokens(function(n,r){return\"INDEX_START\"===n[0]&&this.detectEnd(r+1,t,e),1})},e.prototype.indexOfTag=function(){var e,t,n,r,i,s,o;for(t=arguments[0],i=arguments.length>=2?E.call(arguments,1):[],e=0,n=r=0,s=i.length;s>=0?s>r:r>s;n=s>=0?++r:--r){for(;\"HERECOMMENT\"===this.tag(t+n+e);)e+=2;if(null!=i[n]&&(\"string\"==typeof i[n]&&(i[n]=[i[n]]),o=this.tag(t+n+e),0>w.call(i[n],o)))return-1}return t+n+e-1},e.prototype.looksObjectish=function(e){var t,n;return this.indexOfTag(e,\"@\",null,\":\")>-1||this.indexOfTag(e,null,\":\")>-1?!0:(n=this.indexOfTag(e,s),n>-1&&(t=null,this.detectEnd(n+1,function(e){var t;return t=e[0],w.call(i,t)>=0},function(e,n){return t=n}),\":\"===this.tag(t+1))?!0:!1)},e.prototype.findTagsBackwards=function(e,t){var n,r,o,u,a,f,l;for(n=[];e>=0&&(n.length||(u=this.tag(e),0>w.call(t,u)&&(a=this.tag(e),0>w.call(s,a)||this.tokens[e].generated)&&(f=this.tag(e),0>w.call(c,f))));)r=this.tag(e),w.call(i,r)>=0&&n.push(this.tag(e)),o=this.tag(e),w.call(s,o)>=0&&n.length&&n.pop(),e-=1;return l=this.tag(e),w.call(t,l)>=0},e.prototype.addImplicitBracesAndParens=function(){var e,t;return e=[],t=null,this.scanTokens(function(r,l,h){var p,v,m,g,y,b,E,S,x,T,N,C,L,A,O,M,_,D,P,H,B,j,F,I,q,R,U,z;if(z=r[0],N=(C=l>0?h[l-1]:[])[0],x=(h.length-1>l?h[l+1]:[])[0],F=function(){return e[e.length-1]},I=l,m=function(e){return l-I+e},g=function(){var e,t;return null!=(e=F())?null!=(t=e[2])?t.ours:void 0:void 0},y=function(){var e;return g()&&\"(\"===(null!=(e=F())?e[0]:void 0)},E=function(){var e;return g()&&\"{\"===(null!=(e=F())?e[0]:void 0)},b=function(){var e;return g&&\"CONTROL\"===(null!=(e=F())?e[0]:void 0)},q=function(t){var n;return n=null!=t?t:l,e.push([\"(\",n,{ours:!0}]),h.splice(n,0,d(\"CALL_START\",\"(\")),null==t?l+=1:void 0},p=function(){return e.pop(),h.splice(l,0,d(\"CALL_END\",\")\",[\"\",\"end of input\",r[2]])),l+=1},R=function(t,n){var i,s;return null==n&&(n=!0),i=null!=t?t:l,e.push([\"{\",i,{sameLine:!0,startsLine:n,ours:!0}]),s=new String(\"{\"),s.generated=!0,h.splice(i,0,d(\"{\",s,r)),null==t?l+=1:void 0},v=function(t){return t=null!=t?t:l,e.pop(),h.splice(t,0,d(\"}\",\"}\",r)),l+=1},!y()||\"IF\"!==z&&\"TRY\"!==z&&\"FINALLY\"!==z&&\"CATCH\"!==z&&\"CLASS\"!==z&&\"SWITCH\"!==z){if(\"INDENT\"===z&&g()){if(\"=>\"!==N&&\"->\"!==N&&\"[\"!==N&&\"(\"!==N&&\",\"!==N&&\"{\"!==N&&\"TRY\"!==N&&\"ELSE\"!==N&&\"=\"!==N)for(;y();)p();return b()&&e.pop(),e.push([z,l]),m(1)}if(w.call(s,z)>=0)return e.push([z,l]),m(1);if(w.call(i,z)>=0){for(;g();)y()?p():E()?v():e.pop();t=e.pop()}if((w.call(a,z)>=0&&r.spaced||\"?\"===z&&l>0&&!h[l-1].spaced)&&(w.call(o,x)>=0||w.call(f,x)>=0&&(null!=(L=h[l+1])?!L.spaced:!void 0)&&(null!=(A=h[l+1])?!A.newLine:!void 0)))return\"?\"===z&&(z=r[0]=\"FUNC_EXIST\"),q(l+1),m(2);if(w.call(a,z)>=0&&this.indexOfTag(l+1,\"INDENT\")>-1&&this.looksObjectish(l+2)&&!this.findTagsBackwards(l,[\"CLASS\",\"EXTENDS\",\"IF\",\"CATCH\",\"SWITCH\",\"LEADING_WHEN\",\"FOR\",\"WHILE\",\"UNTIL\"]))return q(l+1),e.push([\"INDENT\",l+2]),m(3);if(\":\"===z){for(P=function(){var e;switch(!1){case e=this.tag(l-1),0>w.call(i,e):return t[1];case\"@\"!==this.tag(l-2):return l-2;default:return l-1}}.call(this);\"HERECOMMENT\"===this.tag(P-2);)P-=2;return this.insideForDeclaration=\"FOR\"===x,U=0===P||(O=this.tag(P-1),w.call(c,O)>=0)||h[P-1].newLine,F()&&(M=F(),j=M[0],B=M[1],(\"{\"===j||\"INDENT\"===j&&\"{\"===this.tag(B-1))&&(U||\",\"===this.tag(P-1)||\"{\"===this.tag(P-1)))?m(1):(R(P,!!U),m(2))}if(E()&&w.call(c,z)>=0&&(F()[2].sameLine=!1),S=\"OUTDENT\"===N||C.newLine,w.call(u,z)>=0||w.call(n,z)>=0&&S)for(;g();)if(_=F(),j=_[0],B=_[1],D=_[2],H=D.sameLine,U=D.startsLine,y()&&\",\"!==N)p();else if(E()&&!this.insideForDeclaration&&H&&\"TERMINATOR\"!==z&&\":\"!==N)v();else{if(!E()||\"TERMINATOR\"!==z||\",\"===N||U&&this.looksObjectish(l+1))break;if(\"HERECOMMENT\"===x)return m(1);v()}if(!(\",\"!==z||this.looksObjectish(l+1)||!E()||this.insideForDeclaration||\"TERMINATOR\"===x&&this.looksObjectish(l+2)))for(T=\"OUTDENT\"===x?1:0;E();)v(l+T);return m(1)}return e.push([\"CONTROL\",l,{ours:!0}]),m(1)})},e.prototype.addLocationDataToGeneratedTokens=function(){return this.scanTokens(function(e,t,n){var r,i,s,o,u,a;return e[2]?1:e.generated||e.explicit?(\"{\"===e[0]&&(s=null!=(u=n[t+1])?u[2]:void 0)?(i=s.first_line,r=s.first_column):(o=null!=(a=n[t-1])?a[2]:void 0)?(i=o.last_line,r=o.last_column):i=r=0,e[2]={first_line:i,first_column:r,last_line:i,last_column:r},1):1})},e.prototype.normalizeLines=function(){var e,t,i,s,o;return o=i=s=null,t=function(e,t){var i,s,u,a;return\";\"!==e[1]&&(i=e[0],w.call(h,i)>=0)&&!(\"TERMINATOR\"===e[0]&&(s=this.tag(t+1),w.call(r,s)>=0))&&(\"ELSE\"!==e[0]||\"THEN\"===o)&&(\"CATCH\"!==(u=e[0])&&\"FINALLY\"!==u||\"->\"!==o&&\"=>\"!==o)||(a=e[0],w.call(n,a)>=0&&this.tokens[t-1].newLine)},e=function(e,t){return this.tokens.splice(\",\"===this.tag(t-1)?t-1:t,0,s)},this.scanTokens(function(n,u,a){var f,l,c,h,d,v;if(v=n[0],\"TERMINATOR\"===v){if(\"ELSE\"===this.tag(u+1)&&\"OUTDENT\"!==this.tag(u-1))return a.splice.apply(a,[u,1].concat(E.call(this.indentation()))),1;if(c=this.tag(u+1),w.call(r,c)>=0)return a.splice(u,1),0}if(\"CATCH\"===v)for(f=l=1;2>=l;f=++l)if(\"OUTDENT\"===(h=this.tag(u+f))||\"TERMINATOR\"===h||\"FINALLY\"===h)return a.splice.apply(a,[u+f,0].concat(E.call(this.indentation()))),2+f;return w.call(p,v)>=0&&\"INDENT\"!==this.tag(u+1)&&(\"ELSE\"!==v||\"IF\"!==this.tag(u+1))?(o=v,d=this.indentation(a[u]),i=d[0],s=d[1],\"THEN\"===o&&(i.fromThen=!0),a.splice(u+1,0,i),this.detectEnd(u+2,t,e),\"THEN\"===v&&a.splice(u,1),1):1})},e.prototype.tagPostfixConditionals=function(){var e,t,n;return n=null,t=function(e,t){var n,r;return r=e[0],n=this.tokens[t-1][0],\"TERMINATOR\"===r||\"INDENT\"===r&&0>w.call(p,n)},e=function(e){return\"INDENT\"!==e[0]||e.generated&&!e.fromThen?n[0]=\"POST_\"+n[0]:void 0},this.scanTokens(function(r,i){return\"IF\"!==r[0]?1:(n=r,this.detectEnd(i+1,t,e),1)})},e.prototype.indentation=function(e){var t,n;return t=[\"INDENT\",2],n=[\"OUTDENT\",2],e?(t.generated=n.generated=!0,t.origin=n.origin=e):t.explicit=n.explicit=!0,[t,n]},e.prototype.generate=d,e.prototype.tag=function(e){var t;return null!=(t=this.tokens[e])?t[0]:void 0},e}(),t=[[\"(\",\")\"],[\"[\",\"]\"],[\"{\",\"}\"],[\"INDENT\",\"OUTDENT\"],[\"CALL_START\",\"CALL_END\"],[\"PARAM_START\",\"PARAM_END\"],[\"INDEX_START\",\"INDEX_END\"],[\"STRING_START\",\"STRING_END\"],[\"REGEX_START\",\"REGEX_END\"]],e.INVERSES=l={},s=[],i=[],v=0,g=t.length;g>v;v++)y=t[v],m=y[0],b=y[1],s.push(l[b]=m),i.push(l[m]=b);r=[\"CATCH\",\"THEN\",\"ELSE\",\"FINALLY\"].concat(i),a=[\"IDENTIFIER\",\"SUPER\",\")\",\"CALL_END\",\"]\",\"INDEX_END\",\"@\",\"THIS\"],o=[\"IDENTIFIER\",\"NUMBER\",\"STRING\",\"STRING_START\",\"JS\",\"REGEX\",\"REGEX_START\",\"NEW\",\"PARAM_START\",\"CLASS\",\"IF\",\"TRY\",\"SWITCH\",\"THIS\",\"BOOL\",\"NULL\",\"UNDEFINED\",\"UNARY\",\"YIELD\",\"UNARY_MATH\",\"SUPER\",\"THROW\",\"@\",\"->\",\"=>\",\"[\",\"(\",\"{\",\"--\",\"++\"],f=[\"+\",\"-\"],u=[\"POST_IF\",\"FOR\",\"WHILE\",\"UNTIL\",\"WHEN\",\"BY\",\"LOOP\",\"TERMINATOR\"],p=[\"ELSE\",\"->\",\"=>\",\"TRY\",\"FINALLY\",\"THEN\"],h=[\"TERMINATOR\",\"CATCH\",\"FINALLY\",\"ELSE\",\"OUTDENT\",\"LEADING_WHEN\"],c=[\"TERMINATOR\",\"INDENT\",\"OUTDENT\"],n=[\".\",\"?.\",\"::\",\"?::\"]}.call(this),t.exports}(),_dereq_[\"./lexer\"]=function(){var e={},t={exports:e};return function(){var t,n,r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y,b,w,E,S,x,T,N,C,k,L,A,O,M,_,D,P,H,B,j,F,I,q,R,U,z,W,X,V,$,J,K,Q,G,Y,Z,et,tt,nt,rt,it,st,ot,ut,at,ft,lt,ct=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};ot=_dereq_(\"./rewriter\"),R=ot.Rewriter,E=ot.INVERSES,ut=_dereq_(\"./helpers\"),nt=ut.count,ft=ut.starts,tt=ut.compact,at=ut.repeat,rt=ut.invertLiterate,st=ut.locationDataToString,lt=ut.throwSyntaxError,e.Lexer=A=function(){function e(){}return e.prototype.tokenize=function(e,t){var n,r,i,s;for(null==t&&(t={}),this.literate=t.literate,this.indent=0,this.baseIndent=0,this.indebt=0,this.outdebt=0,this.indents=[],this.ends=[],this.tokens=[],this.chunkLine=t.line||0,this.chunkColumn=t.column||0,e=this.clean(e),i=0;this.chunk=e.slice(i);)if(n=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken(),s=this.getLineAndColumnFromChunk(n),this.chunkLine=s[0],this.chunkColumn=s[1],i+=n,t.untilBalanced&&0===this.ends.length)return{tokens:this.tokens,index:i};return this.closeIndentation(),(r=this.ends.pop())&&this.error(\"missing \"+r.tag,r.origin[2]),t.rewrite===!1?this.tokens:(new R).rewrite(this.tokens)},e.prototype.clean=function(e){return e.charCodeAt(0)===t&&(e=e.slice(1)),e=e.replace(/\\r/g,\"\").replace(Q,\"\"),et.test(e)&&(e=\"\\n\"+e,this.chunkLine--),this.literate&&(e=rt(e)),e},e.prototype.identifierToken=function(){var e,t,n,r,i,a,f,l,c,h,p,d,v,m,y,b;return(l=g.exec(this.chunk))?(f=l[0],i=l[1],t=l[2],a=i.length,c=void 0,\"own\"===i&&\"FOR\"===this.tag()?(this.token(\"OWN\",i),i.length):\"from\"===i&&\"YIELD\"===this.tag()?(this.token(\"FROM\",i),i.length):(p=this.tokens,h=p[p.length-1],r=t||null!=h&&(\".\"===(d=h[0])||\"?.\"===d||\"::\"===d||\"?::\"===d||!h.spaced&&\"@\"===h[0]),y=\"IDENTIFIER\",!r&&(ct.call(T,i)>=0||ct.call(u,i)>=0)&&(y=i.toUpperCase(),\"WHEN\"===y&&(v=this.tag(),ct.call(C,v)>=0)?y=\"LEADING_WHEN\":\"FOR\"===y?this.seenFor=!0:\"UNLESS\"===y?y=\"IF\":ct.call(G,y)>=0?y=\"UNARY\":ct.call(I,y)>=0&&(\"INSTANCEOF\"!==y&&this.seenFor?(y=\"FOR\"+y,this.seenFor=!1):(y=\"RELATION\",\"!\"===this.value()&&(c=this.tokens.pop(),i=\"!\"+i)))),ct.call(x,i)>=0&&(r?(y=\"IDENTIFIER\",i=new String(i),i.reserved=!0):ct.call(q,i)>=0&&this.error(\"reserved word '\"+i+\"'\",{length:i.length})),r||(ct.call(s,i)>=0&&(e=i,i=o[i]),y=function(){switch(i){case\"!\":return\"UNARY\";case\"==\":case\"!=\":return\"COMPARE\";case\"&&\":case\"||\":return\"LOGIC\";case\"true\":case\"false\":return\"BOOL\";case\"break\":case\"continue\":return\"STATEMENT\";default:return y}}()),b=this.token(y,i,0,a),e&&(b.origin=[y,e,b[2]]),b.variable=!r,c&&(m=[c[2].first_line,c[2].first_column],b[2].first_line=m[0],b[2].first_column=m[1]),t&&(n=f.lastIndexOf(\":\"),this.token(\":\",\":\",n,t.length)),f.length)):0},e.prototype.numberToken=function(){var e,t,n,r,i;return(n=D.exec(this.chunk))?(r=n[0],t=r.length,/^0[BOX]/.test(r)?this.error(\"radix prefix in '\"+r+\"' must be lowercase\",{offset:1}):/E/.test(r)&&!/^0x/.test(r)?this.error(\"exponential notation in '\"+r+\"' must be indicated with a lowercase 'e'\",{offset:r.indexOf(\"E\")}):/^0\\d*[89]/.test(r)?this.error(\"decimal literal '\"+r+\"' must not be prefixed with '0'\",{length:t}):/^0\\d+/.test(r)&&this.error(\"octal literal '\"+r+\"' must be prefixed with '0o'\",{length:t}),(i=/^0o([0-7]+)/.exec(r))&&(r=\"0x\"+parseInt(i[1],8).toString(16)),(e=/^0b([01]+)/.exec(r))&&(r=\"0x\"+parseInt(e[1],2).toString(16)),this.token(\"NUMBER\",r,0,t),t):0},e.prototype.stringToken=function(){var e,t,n,r,i,s,o,u,a,f,l,c,v,m,g,y;if(l=(J.exec(this.chunk)||[])[0],!l)return 0;if(m=function(){switch(l){case\"'\":return $;case'\"':return X;case\"'''\":return d;case'\"\"\"':return h}}(),s=3===l.length,c=this.matchWithInterpolations(m,l),y=c.tokens,i=c.index,e=y.length-1,n=l.charAt(0),s){for(u=null,r=function(){var e,t,n;for(n=[],o=e=0,t=y.length;t>e;o=++e)g=y[o],\"NEOSTRING\"===g[0]&&n.push(g[1]);return n}().join(\"#{}\");f=p.exec(r);)t=f[1],(null===u||(v=t.length)>0&&u.length>v)&&(u=t);u&&(a=RegExp(\"^\"+u,\"gm\")),this.mergeInterpolationTokens(y,{delimiter:n},function(t){return function(n,r){return n=t.formatString(n),0===r&&(n=n.replace(N,\"\")),r===e&&(n=n.replace(K,\"\")),a&&(n=n.replace(a,\"\")),n}}(this))}else this.mergeInterpolationTokens(y,{delimiter:n},function(t){return function(n,r){return n=t.formatString(n),n=n.replace(z,function(t,i){return 0===r&&0===i||r===e&&i+t.length===n.length?\"\":\" \"})}}(this));return i},e.prototype.commentToken=function(){var e,t,n;return(n=this.chunk.match(a))?(e=n[0],t=n[1],t&&((n=c.exec(e))&&this.error(\"block comments cannot contain \"+n[0],{offset:n.index,length:n[0].length}),t.indexOf(\"\\n\")>=0&&(t=t.replace(RegExp(\"\\\\n\"+at(\" \",this.indent),\"g\"),\"\\n\")),this.token(\"HERECOMMENT\",t,0,e.length)),e.length):0},e.prototype.jsToken=function(){var e,t;return\"`\"===this.chunk.charAt(0)&&(e=S.exec(this.chunk))?(this.token(\"JS\",(t=e[0]).slice(1,-1),0,t.length),t.length):0},e.prototype.regexToken=function(){var e,t,n,i,s,o,u,a,f,l,c,h,p;switch(!1){case!(o=F.exec(this.chunk)):this.error(\"regular expressions cannot begin with \"+o[2],{offset:o.index+o[1].length});break;case!(o=this.matchWithInterpolations(v,\"///\")):p=o.tokens,s=o.index;break;case!(o=B.exec(this.chunk)):if(h=o[0],e=o[1],t=o[2],this.validateEscapes(e,{isRegex:!0,offsetInChunk:1}),s=h.length,f=this.tokens,a=f[f.length-1],a)if(a.spaced&&(l=a[0],ct.call(r,l)>=0)){if(!t||H.test(h))return 0}else if(c=a[0],ct.call(_,c)>=0)return 0;t||this.error(\"missing / (unclosed regex)\");break;default:return 0}switch(i=j.exec(this.chunk.slice(s))[0],n=s+i.length,u=this.makeToken(\"REGEX\",null,0,n),!1){case!!Z.test(i):this.error(\"invalid regular expression flags \"+i,{offset:s,length:i.length});break;case!h&&1!==p.length:null==e&&(e=this.formatHeregex(p[0][1])),this.token(\"REGEX\",\"\"+this.makeDelimitedLiteral(e,{delimiter:\"/\"})+i,0,n,u);break;default:this.token(\"REGEX_START\",\"(\",0,0,u),this.token(\"IDENTIFIER\",\"RegExp\",0,0),this.token(\"CALL_START\",\"(\",0,0),this.mergeInterpolationTokens(p,{delimiter:'\"',\"double\":!0},this.formatHeregex),i&&(this.token(\",\",\",\",s,0),this.token(\"STRING\",'\"'+i+'\"',s,i.length)),this.token(\")\",\")\",n,0),this.token(\"REGEX_END\",\")\",n,0)}return n},e.prototype.lineToken=function(){var e,t,n,r,i;if(!(n=M.exec(this.chunk)))return 0;if(t=n[0],this.seenFor=!1,i=t.length-1-t.lastIndexOf(\"\\n\"),r=this.unfinished(),i-this.indebt===this.indent)return r?this.suppressNewlines():this.newlineToken(0),t.length;if(i>this.indent){if(r)return this.indebt=i-this.indent,this.suppressNewlines(),t.length;if(!this.tokens.length)return this.baseIndent=this.indent=i,t.length;e=i-this.indent+this.outdebt,this.token(\"INDENT\",e,t.length-i,i),this.indents.push(e),this.ends.push({tag:\"OUTDENT\"}),this.outdebt=this.indebt=0,this.indent=i}else this.baseIndent>i?this.error(\"missing indentation\",{offset:t.length}):(this.indebt=0,this.outdentToken(this.indent-i,r,t.length));return t.length},e.prototype.outdentToken=function(e,t,n){var r,i,s,o;for(r=this.indent-e;e>0;)s=this.indents[this.indents.length-1],s?s===this.outdebt?(e-=this.outdebt,this.outdebt=0):this.outdebt>s?(this.outdebt-=s,e-=s):(i=this.indents.pop()+this.outdebt,n&&(o=this.chunk[n],ct.call(y,o)>=0)&&(r-=i-e,e=i),this.outdebt=0,this.pair(\"OUTDENT\"),this.token(\"OUTDENT\",e,0,n),e-=i):e=0;for(i&&(this.outdebt-=e);\";\"===this.value();)this.tokens.pop();return\"TERMINATOR\"===this.tag()||t||this.token(\"TERMINATOR\",\"\\n\",n,0),this.indent=r,this},e.prototype.whitespaceToken=function(){var e,t,n,r;return(e=et.exec(this.chunk))||(t=\"\\n\"===this.chunk.charAt(0))?(r=this.tokens,n=r[r.length-1],n&&(n[e?\"spaced\":\"newLine\"]=!0),e?e[0].length:0):0},e.prototype.newlineToken=function(e){for(;\";\"===this.value();)this.tokens.pop();return\"TERMINATOR\"!==this.tag()&&this.token(\"TERMINATOR\",\"\\n\",e,0),this},e.prototype.suppressNewlines=function(){return\"\\\\\"===this.value()&&this.tokens.pop(),this},e.prototype.literalToken=function(){var e,t,n,s,o,u,a,c,h,p;if((e=P.exec(this.chunk))?(p=e[0],i.test(p)&&this.tagParameters()):p=this.chunk.charAt(0),c=p,n=this.tokens,t=n[n.length-1],\"=\"===p&&t&&(!t[1].reserved&&(s=t[1],ct.call(x,s)>=0)&&(t.origin&&(t=t.origin),this.error(\"reserved word '\"+t[1]+\"' can't be assigned\",t[2])),\"||\"===(o=t[1])||\"&&\"===o))return t[0]=\"COMPOUND_ASSIGN\",t[1]+=\"=\",p.length;if(\";\"===p)this.seenFor=!1,c=\"TERMINATOR\";else if(ct.call(O,p)>=0)c=\"MATH\";else if(ct.call(f,p)>=0)c=\"COMPARE\";else if(ct.call(l,p)>=0)c=\"COMPOUND_ASSIGN\";else if(ct.call(G,p)>=0)c=\"UNARY\";else if(ct.call(Y,p)>=0)c=\"UNARY_MATH\";else if(ct.call(U,p)>=0)c=\"SHIFT\";else if(ct.call(L,p)>=0||\"?\"===p&&(null!=t?t.spaced:void 0))c=\"LOGIC\";else if(t&&!t.spaced)if(\"(\"===p&&(u=t[0],ct.call(r,u)>=0))\"?\"===t[0]&&(t[0]=\"FUNC_EXIST\"),c=\"CALL_START\";else if(\"[\"===p&&(a=t[0],ct.call(b,a)>=0))switch(c=\"INDEX_START\",t[0]){case\"?\":t[0]=\"INDEX_SOAK\"}switch(h=this.makeToken(c,p),p){case\"(\":case\"{\":case\"[\":this.ends.push({tag:E[p],origin:h});break;case\")\":case\"}\":case\"]\":this.pair(p)}return this.tokens.push(h),p.length},e.prototype.tagParameters=function(){var e,t,n,r;if(\")\"!==this.tag())return this;for(t=[],r=this.tokens,e=r.length,r[--e][0]=\"PARAM_END\";n=r[--e];)switch(n[0]){case\")\":t.push(n);break;case\"(\":case\"CALL_START\":if(!t.length)return\"(\"===n[0]?(n[0]=\"PARAM_START\",this):this;t.pop()}return this},e.prototype.closeIndentation=function(){return this.outdentToken(this.indent)},e.prototype.matchWithInterpolations=function(t,n){var r,i,s,o,u,a,f,l,c,h,p,d,v,m,g;if(g=[],l=n.length,this.chunk.slice(0,l)!==n)return null;for(v=this.chunk.slice(l);;){if(m=t.exec(v)[0],this.validateEscapes(m,{isRegex:\"/\"===n.charAt(0),offsetInChunk:l}),g.push(this.makeToken(\"NEOSTRING\",m,l)),v=v.slice(m.length),l+=m.length,\"#{\"!==v.slice(0,2))break;h=this.getLineAndColumnFromChunk(l+1),a=h[0],i=h[1],p=(new e).tokenize(v.slice(1),{line:a,column:i,untilBalanced:!0}),f=p.tokens,o=p.index,o+=1,c=f[0],r=f[f.length-1],c[0]=c[1]=\"(\",r[0]=r[1]=\")\",r.origin=[\"\",\"end of interpolation\",r[2]],\"TERMINATOR\"===(null!=(d=f[1])?d[0]:void 0)&&f.splice(1,1),g.push([\"TOKENS\",f]),v=v.slice(o),l+=o}return v.slice(0,n.length)!==n&&this.error(\"missing \"+n,{length:n.length}),s=g[0],u=g[g.length-1],s[2].first_column-=n.length,u[2].last_column+=n.length,0===u[1].length&&(u[2].last_column-=1),{tokens:g,index:l+n.length}},e.prototype.mergeInterpolationTokens=function(e,t,n){var r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y;for(e.length>1&&(c=this.token(\"STRING_START\",\"(\",0,0)),s=this.tokens.length,o=u=0,f=e.length;f>u;o=++u){switch(m=e[o],v=m[0],y=m[1],v){case\"TOKENS\":if(2===y.length)continue;l=y[0],g=y;break;case\"NEOSTRING\":if(r=n(m[1],o),0===r.length){if(0!==o)continue;i=this.tokens.length}2===o&&null!=i&&this.tokens.splice(i,2),m[0]=\"STRING\",m[1]=this.makeDelimitedLiteral(r,t),l=m,g=[m]}this.tokens.length>s&&(h=this.token(\"+\",\"+\"),h[2]={first_line:l[2].first_line,first_column:l[2].first_column,last_line:l[2].first_line,last_column:l[2].first_column}),(p=this.tokens).push.apply(p,g)}return c?(a=e[e.length-1],c.origin=[\"STRING\",null,{first_line:c[2].first_line,first_column:c[2].first_column,last_line:a[2].last_line,last_column:a[2].last_column}],d=this.token(\"STRING_END\",\")\"),d[2]={first_line:a[2].last_line,first_column:a[2].last_column,last_line:a[2].last_line,last_column:a[2].last_column}):void 0},e.prototype.pair=function(e){var t,n,r,i,s;return r=this.ends,n=r[r.length-1],e!==(s=null!=n?n.tag:void 0)?(\"OUTDENT\"!==s&&this.error(\"unmatched \"+e),i=this.indents,t=i[i.length-1],this.outdentToken(t,!0),this.pair(e)):this.ends.pop()},e.prototype.getLineAndColumnFromChunk=function(e){var t,n,r,i,s;return 0===e?[this.chunkLine,this.chunkColumn]:(s=e>=this.chunk.length?this.chunk:this.chunk.slice(0,+(e-1)+1||9e9),r=nt(s,\"\\n\"),t=this.chunkColumn,r>0?(i=s.split(\"\\n\"),n=i[i.length-1],t=n.length):t+=s.length,[this.chunkLine+r,t])},e.prototype.makeToken=function(e,t,n,r){var i,s,o,u,a;return null==n&&(n=0),null==r&&(r=t.length),s={},o=this.getLineAndColumnFromChunk(n),s.first_line=o[0],s.first_column=o[1],i=Math.max(0,r-1),u=this.getLineAndColumnFromChunk(n+i),s.last_line=u[0],s.last_column=u[1],a=[e,t,s]},e.prototype.token=function(e,t,n,r,i){var s;return s=this.makeToken(e,t,n,r),i&&(s.origin=i),this.tokens.push(s),s},e.prototype.tag=function(){var e,t;return e=this.tokens,t=e[e.length-1],null!=t?t[0]:void 0},e.prototype.value=function(){var e,t;return e=this.tokens,t=e[e.length-1],null!=t?t[1]:void 0},e.prototype.unfinished=function(){var e;return k.test(this.chunk)||\"\\\\\"===(e=this.tag())||\".\"===e||\"?.\"===e||\"?::\"===e||\"UNARY\"===e||\"MATH\"===e||\"UNARY_MATH\"===e||\"+\"===e||\"-\"===e||\"YIELD\"===e||\"**\"===e||\"SHIFT\"===e||\"RELATION\"===e||\"COMPARE\"===e||\"LOGIC\"===e||\"THROW\"===e||\"EXTENDS\"===e},e.prototype.formatString=function(e){return e.replace(V,\"$1\")},e.prototype.formatHeregex=function(e){return e.replace(m,\"$1$2\")},e.prototype.validateEscapes=function(e,t){var n,r,i,s,o,u,a,f;return null==t&&(t={}),s=w.exec(e),!s||(s[0],n=s[1],u=s[2],r=s[3],f=s[4],t.isRegex&&u&&\"0\"!==u.charAt(0))?void 0:(o=u?\"octal escape sequences are not allowed\":\"invalid escape sequence\",i=\"\\\\\"+(u||r||f),this.error(o+\" \"+i,{offset:(null!=(a=t.offsetInChunk)?a:0)+s.index+n.length,length:i.length}))},e.prototype.makeDelimitedLiteral=function(e,t){var n;return null==t&&(t={}),\"\"===e&&\"/\"===t.delimiter&&(e=\"(?:)\"),n=RegExp(\"(\\\\\\\\\\\\\\\\)|(\\\\\\\\0(?=[1-7]))|\\\\\\\\?(\"+t.delimiter+\")|\\\\\\\\?(?:(\\\\n)|(\\\\r)|(\\\\u2028)|(\\\\u2029))|(\\\\\\\\.)\",\"g\"),e=e.replace(n,function(e,n,r,i,s,o,u,a,f){switch(!1){case!n:return t.double?n+n:n;case!r:return\"\\\\x00\";case!i:return\"\\\\\"+i;case!s:return\"\\\\n\";case!o:return\"\\\\r\";case!u:return\"\\\\u2028\";case!a:return\"\\\\u2029\";case!f:return t.double?\"\\\\\"+f:f}}),\"\"+t.delimiter+e+t.delimiter},e.prototype.error=function(e,t){var n,r,i,s,o,u;return null==t&&(t={}),i=\"first_line\"in t?t:(o=this.getLineAndColumnFromChunk(null!=(s=t.offset)?s:0),r=o[0],n=o[1],o,{first_line:r,first_column:n,last_column:n+(null!=(u=t.length)?u:1)-1}),lt(e,i)},e}(),T=[\"true\",\"false\",\"null\",\"this\",\"new\",\"delete\",\"typeof\",\"in\",\"instanceof\",\"return\",\"throw\",\"break\",\"continue\",\"debugger\",\"yield\",\"if\",\"else\",\"switch\",\"for\",\"while\",\"do\",\"try\",\"catch\",\"finally\",\"class\",\"extends\",\"super\"],u=[\"undefined\",\"then\",\"unless\",\"until\",\"loop\",\"of\",\"by\",\"when\"],o={and:\"&&\",or:\"||\",is:\"==\",isnt:\"!=\",not:\"!\",yes:\"true\",no:\"false\",on:\"true\",off:\"false\"},s=function(){var e;e=[];for(it in o)e.push(it);return e}(),u=u.concat(s),q=[\"case\",\"default\",\"function\",\"var\",\"void\",\"with\",\"const\",\"let\",\"enum\",\"export\",\"import\",\"native\",\"implements\",\"interface\",\"package\",\"private\",\"protected\",\"public\",\"static\"],W=[\"arguments\",\"eval\",\"yield*\"],x=T.concat(q).concat(W),e.RESERVED=q.concat(T).concat(u).concat(W),e.STRICT_PROSCRIBED=W,t=65279,g=/^(?!\\d)((?:(?!\\s)[$\\w\\x7f-\\uffff])+)([^\\n\\S]*:(?!:))?/,D=/^0b[01]+|^0o[0-7]+|^0x[\\da-f]+|^\\d*\\.?\\d+(?:e[+-]?\\d+)?/i,P=/^(?:[-=]>|[-+*\\/%<>&|^!?=]=|>>>=?|([-+:])\\1|([&|<>*\\/%])\\2=?|\\?(\\.|::)|\\.{2,3})/,et=/^[^\\n\\S]+/,a=/^###([^#][\\s\\S]*?)(?:###[^\\n\\S]*|###$)|^(?:\\s*#(?!##[^#]).*)+/,i=/^[-=]>/,M=/^(?:\\n[^\\n\\S]*)+/,S=/^`[^\\\\`]*(?:\\\\.[^\\\\`]*)*`/,J=/^(?:'''|\"\"\"|'|\")/,$=/^(?:[^\\\\']|\\\\[\\s\\S])*/,X=/^(?:[^\\\\\"#]|\\\\[\\s\\S]|\\#(?!\\{))*/,d=/^(?:[^\\\\']|\\\\[\\s\\S]|'(?!''))*/,h=/^(?:[^\\\\\"#]|\\\\[\\s\\S]|\"(?!\"\")|\\#(?!\\{))*/,V=/((?:\\\\\\\\)+)|\\\\[^\\S\\n]*\\n\\s*/g,z=/\\s*\\n\\s*/g,p=/\\n+([^\\n\\S]*)(?=\\S)/g,B=/^\\/(?!\\/)((?:[^[\\/\\n\\\\]|\\\\[^\\n]|\\[(?:\\\\[^\\n]|[^\\]\\n\\\\])*\\])*)(\\/)?/,j=/^\\w*/,Z=/^(?!.*(.).*\\1)[imgy]*$/,v=/^(?:[^\\\\\\/#]|\\\\[\\s\\S]|\\/(?!\\/\\/)|\\#(?!\\{))*/,m=/((?:\\\\\\\\)+)|\\\\(\\s)|\\s+(?:#.*)?/g,F=/^(\\/|\\/{3}\\s*)(\\*)/,H=/^\\/=?\\s/,c=/\\*\\//,k=/^\\s*(?:,|\\??\\.(?![.\\d])|::)/,w=/((?:^|[^\\\\])(?:\\\\\\\\)*)\\\\(?:(0[0-7]|[1-7])|(x(?![\\da-fA-F]{2}).{0,2})|(u(?![\\da-fA-F]{4}).{0,4}))/,N=/^[^\\n\\S]*\\n/,K=/\\n[^\\n\\S]*$/,Q=/\\s+$/,l=[\"-=\",\"+=\",\"/=\",\"*=\",\"%=\",\"||=\",\"&&=\",\"?=\",\"<<=\",\">>=\",\">>>=\",\"&=\",\"^=\",\"|=\",\"**=\",\"//=\",\"%%=\"],G=[\"NEW\",\"TYPEOF\",\"DELETE\",\"DO\"],Y=[\"!\",\"~\"],L=[\"&&\",\"||\",\"&\",\"|\",\"^\"],U=[\"<<\",\">>\",\">>>\"],f=[\"==\",\"!=\",\"<\",\">\",\"<=\",\">=\"],O=[\"*\",\"/\",\"%\",\"//\",\"%%\"],I=[\"IN\",\"OF\",\"INSTANCEOF\"],n=[\"TRUE\",\"FALSE\"],r=[\"IDENTIFIER\",\")\",\"]\",\"?\",\"@\",\"THIS\",\"SUPER\"],b=r.concat([\"NUMBER\",\"STRING\",\"STRING_END\",\"REGEX\",\"REGEX_END\",\"BOOL\",\"NULL\",\"UNDEFINED\",\"}\",\"::\"]),_=b.concat([\"++\",\"--\"]),C=[\"INDENT\",\"OUTDENT\",\"TERMINATOR\"],y=[\")\",\"}\",\"]\"]}.call(this),t.exports}(),_dereq_[\"./parser\"]=function(){var e={},t={exports:e},n=function(){function e(){this.yy={}}var t=function(e,t,n,r){for(n=n||{},r=e.length;r--;n[e[r]]=t);return n},n=[1,20],r=[1,75],i=[1,71],s=[1,76],o=[1,77],u=[1,73],a=[1,74],f=[1,50],l=[1,52],c=[1,53],h=[1,54],p=[1,55],d=[1,45],v=[1,46],m=[1,27],g=[1,60],y=[1,61],b=[1,70],w=[1,43],E=[1,26],S=[1,58],x=[1,59],T=[1,57],N=[1,38],C=[1,44],k=[1,56],L=[1,65],A=[1,66],O=[1,67],M=[1,68],_=[1,42],D=[1,64],P=[1,29],H=[1,30],B=[1,31],j=[1,32],F=[1,33],I=[1,34],q=[1,35],R=[1,78],U=[1,6,26,34,108],z=[1,88],W=[1,81],X=[1,80],V=[1,79],$=[1,82],J=[1,83],K=[1,84],Q=[1,85],G=[1,86],Y=[1,87],Z=[1,91],et=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],tt=[1,97],nt=[1,98],rt=[1,99],it=[1,100],st=[1,102],ot=[1,103],ut=[1,96],at=[2,112],ft=[1,6,25,26,34,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],lt=[2,79],ct=[1,108],ht=[2,58],pt=[1,112],dt=[1,117],vt=[1,118],mt=[1,120],gt=[1,6,25,26,34,46,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],yt=[2,76],bt=[1,6,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],wt=[1,155],Et=[1,157],St=[1,152],xt=[1,6,25,26,34,46,55,60,63,72,73,74,75,77,79,80,84,86,90,91,92,97,99,108,110,111,112,116,117,132,135,136,139,140,141,142,143,144,145,146,147,148],Tt=[2,95],Nt=[1,6,25,26,34,49,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],Ct=[1,6,25,26,34,46,49,55,60,63,72,73,74,75,77,79,80,84,86,90,91,92,97,99,108,110,111,112,116,117,123,124,132,135,136,139,140,141,142,143,144,145,146,147,148],kt=[1,206],Lt=[1,205],At=[1,6,25,26,34,38,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],Ot=[2,56],Mt=[1,216],_t=[6,25,26,55,60],Dt=[6,25,26,46,55,60,63],Pt=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,142,144,145,146,147],Ht=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132],Bt=[72,73,74,75,77,80,90,91],jt=[1,235],Ft=[2,133],It=[1,6,25,26,34,46,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,123,124,132,135,136,141,142,143,144,145,146,147],qt=[1,244],Rt=[6,25,26,60,92,97],Ut=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,117,132],zt=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,111,117,132],Wt=[123,124],Xt=[60,123,124],Vt=[1,255],$t=[6,25,26,60,84],Jt=[6,25,26,49,60,84],Kt=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,144,145,146,147],Qt=[11,28,30,32,33,36,37,40,41,42,43,44,51,52,53,57,58,79,82,85,89,94,95,96,102,106,107,110,112,114,116,125,131,133,134,135,136,137,139,140],Gt=[2,122],Yt=[6,25,26],Zt=[2,57],en=[1,268],tn=[1,269],nn=[1,6,25,26,34,55,60,63,79,84,92,97,99,104,105,108,110,111,112,116,117,127,129,132,135,136,141,142,143,144,145,146,147],rn=[26,127,129],sn=[1,6,26,34,55,60,63,79,84,92,97,99,108,111,117,132],on=[2,71],un=[1,291],an=[1,292],fn=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,127,132,135,136,141,142,143,144,145,146,147],ln=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,112,116,117,132],cn=[1,303],hn=[1,304],pn=[6,25,26,60],dn=[1,6,25,26,34,55,60,63,79,84,92,97,99,104,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],vn=[25,60],mn={trace:function(){},yy:{},symbols_:{error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8,Return:9,Comment:10,STATEMENT:11,Value:12,Invocation:13,Code:14,Operation:15,Assign:16,If:17,Try:18,While:19,For:20,Switch:21,Class:22,Throw:23,Block:24,INDENT:25,OUTDENT:26,Identifier:27,IDENTIFIER:28,AlphaNumeric:29,NUMBER:30,String:31,STRING:32,STRING_START:33,STRING_END:34,Regex:35,REGEX:36,REGEX_START:37,REGEX_END:38,Literal:39,JS:40,DEBUGGER:41,UNDEFINED:42,NULL:43,BOOL:44,Assignable:45,\"=\":46,AssignObj:47,ObjAssignable:48,\":\":49,ThisProperty:50,RETURN:51,HERECOMMENT:52,PARAM_START:53,ParamList:54,PARAM_END:55,FuncGlyph:56,\"->\":57,\"=>\":58,OptComma:59,\",\":60,Param:61,ParamVar:62,\"...\":63,Array:64,Object:65,Splat:66,SimpleAssignable:67,Accessor:68,Parenthetical:69,Range:70,This:71,\".\":72,\"?.\":73,\"::\":74,\"?::\":75,Index:76,INDEX_START:77,IndexValue:78,INDEX_END:79,INDEX_SOAK:80,Slice:81,\"{\":82,AssignList:83,\"}\":84,CLASS:85,EXTENDS:86,OptFuncExist:87,Arguments:88,SUPER:89,FUNC_EXIST:90,CALL_START:91,CALL_END:92,ArgList:93,THIS:94,\"@\":95,\"[\":96,\"]\":97,RangeDots:98,\"..\":99,Arg:100,SimpleArgs:101,TRY:102,Catch:103,FINALLY:104,CATCH:105,THROW:106,\"(\":107,\")\":108,WhileSource:109,WHILE:110,WHEN:111,UNTIL:112,Loop:113,LOOP:114,ForBody:115,FOR:116,BY:117,ForStart:118,ForSource:119,ForVariables:120,OWN:121,ForValue:122,FORIN:123,FOROF:124,SWITCH:125,Whens:126,ELSE:127,When:128,LEADING_WHEN:129,IfBlock:130,IF:131,POST_IF:132,UNARY:133,UNARY_MATH:134,\"-\":135,\"+\":136,YIELD:137,FROM:138,\"--\":139,\"++\":140,\"?\":141,MATH:142,\"**\":143,SHIFT:144,COMPARE:145,LOGIC:146,RELATION:147,COMPOUND_ASSIGN:148,$accept:0,$end:1},terminals_:{2:\"error\",6:\"TERMINATOR\",11:\"STATEMENT\",25:\"INDENT\",26:\"OUTDENT\",28:\"IDENTIFIER\",30:\"NUMBER\",32:\"STRING\",33:\"STRING_START\",34:\"STRING_END\",36:\"REGEX\",37:\"REGEX_START\",38:\"REGEX_END\",40:\"JS\",41:\"DEBUGGER\",42:\"UNDEFINED\",43:\"NULL\",44:\"BOOL\",46:\"=\",49:\":\",51:\"RETURN\",52:\"HERECOMMENT\",53:\"PARAM_START\",55:\"PARAM_END\",57:\"->\",58:\"=>\",60:\",\",63:\"...\",72:\".\",73:\"?.\",74:\"::\",75:\"?::\",77:\"INDEX_START\",79:\"INDEX_END\",80:\"INDEX_SOAK\",82:\"{\",84:\"}\",85:\"CLASS\",86:\"EXTENDS\",89:\"SUPER\",90:\"FUNC_EXIST\",91:\"CALL_START\",92:\"CALL_END\",94:\"THIS\",95:\"@\",96:\"[\",97:\"]\",99:\"..\",102:\"TRY\",104:\"FINALLY\",105:\"CATCH\",106:\"THROW\",107:\"(\",108:\")\",110:\"WHILE\",111:\"WHEN\",112:\"UNTIL\",114:\"LOOP\",116:\"FOR\",117:\"BY\",121:\"OWN\",123:\"FORIN\",124:\"FOROF\",125:\"SWITCH\",127:\"ELSE\",129:\"LEADING_WHEN\",131:\"IF\",132:\"POST_IF\",133:\"UNARY\",134:\"UNARY_MATH\",135:\"-\",136:\"+\",137:\"YIELD\",138:\"FROM\",139:\"--\",140:\"++\",141:\"?\",142:\"MATH\",143:\"**\",144:\"SHIFT\",145:\"COMPARE\",146:\"LOGIC\",147:\"RELATION\",148:\"COMPOUND_ASSIGN\"},productions_:[0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[8,1],[8,1],[8,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[24,2],[24,3],[27,1],[29,1],[29,1],[31,1],[31,3],[35,1],[35,3],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[16,3],[16,4],[16,5],[47,1],[47,3],[47,5],[47,1],[48,1],[48,1],[48,1],[9,2],[9,1],[10,1],[14,5],[14,2],[56,1],[56,1],[59,0],[59,1],[54,0],[54,1],[54,3],[54,4],[54,6],[61,1],[61,2],[61,3],[61,1],[62,1],[62,1],[62,1],[62,1],[66,2],[67,1],[67,2],[67,2],[67,1],[45,1],[45,1],[45,1],[12,1],[12,1],[12,1],[12,1],[12,1],[68,2],[68,2],[68,2],[68,2],[68,1],[68,1],[76,3],[76,2],[78,1],[78,1],[65,4],[83,0],[83,1],[83,3],[83,4],[83,6],[22,1],[22,2],[22,3],[22,4],[22,2],[22,3],[22,4],[22,5],[13,3],[13,3],[13,1],[13,2],[87,0],[87,1],[88,2],[88,4],[71,1],[71,1],[50,2],[64,2],[64,4],[98,1],[98,1],[70,5],[81,3],[81,2],[81,2],[81,1],[93,1],[93,3],[93,4],[93,4],[93,6],[100,1],[100,1],[100,1],[101,1],[101,3],[18,2],[18,3],[18,4],[18,5],[103,3],[103,3],[103,2],[23,2],[69,3],[69,5],[109,2],[109,4],[109,2],[109,4],[19,2],[19,2],[19,2],[19,1],[113,2],[113,2],[20,2],[20,2],[20,2],[115,2],[115,4],[115,2],[118,2],[118,3],[122,1],[122,1],[122,1],[122,1],[120,1],[120,3],[119,2],[119,2],[119,4],[119,4],[119,4],[119,6],[119,6],[21,5],[21,7],[21,4],[21,6],[126,1],[126,2],[128,3],[128,4],[130,3],[130,5],[17,1],[17,3],[17,3],[17,3],[15,2],[15,2],[15,2],[15,2],[15,2],[15,2],[15,3],[15,2],[15,2],[15,2],[15,2],[15,2],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,5],[15,4],[15,3]],performAction:function(e,t,n,r,i,s,o){var u=s.length-1;switch(i){case 1:return this.$=r.addLocationDataFn(o[u],o[u])(new r.Block);case 2:return this.$=s[u];case 3:this.$=r.addLocationDataFn(o[u],o[u])(r.Block.wrap([s[u]]));break;case 4:this.$=r.addLocationDataFn(o[u-2],o[u])(s[u-2].push(s[u]));break;case 5:this.$=s[u-1];break;case 6:case 7:case 8:case 9:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 27:case 32:case 34:case 45:case 46:case 47:case 48:case 56:case 57:case 67:case 68:case 69:case 70:case 75:case 76:case 79:case 83:case 89:case 133:case 134:case 136:case 166:case 167:case 183:case 189:this.$=s[u];break;case 10:case 25:case 26:case 28:case 30:case 33:case 35:this.$=r.addLocationDataFn(o[u],o[u])(new r.Literal(s[u]));break;case 23:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Block);break;case 24:case 31:case 90:this.$=r.addLocationDataFn(o[u-2],o[u])(s[u-1]);break;case 29:case 146:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Parens(s[u-1]));break;case 36:this.$=r.addLocationDataFn(o[u],o[u])(new r.Undefined);break;case 37:this.$=r.addLocationDataFn(o[u],o[u])(new r.Null);break;case 38:this.$=r.addLocationDataFn(o[u],o[u])(new r.Bool(s[u]));break;case 39:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Assign(s[u-2],s[u]));break;case 40:this.$=r.addLocationDataFn(o[u-3],o[u])(new r.Assign(s[u-3],s[u]));break;case 41:this.$=r.addLocationDataFn(o[u-4],o[u])(new r.Assign(s[u-4],s[u-1]));break;case 42:case 72:case 77:case 78:case 80:case 81:case 82:case 168:case 169:this.$=r.addLocationDataFn(o[u],o[u])(new r.Value(s[u]));break;case 43:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Assign(r.addLocationDataFn(o[u-2])(new r.Value(s[u-2])),s[u],\"object\"));break;case 44:this.$=r.addLocationDataFn(o[u-4],o[u])(new r.Assign(r.addLocationDataFn(o[u-4])(new r.Value(s[u-4])),s[u-1],\"object\"));break;case 49:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Return(s[u]));break;case 50:this.$=r.addLocationDataFn(o[u],o[u])(new r.Return);break;case 51:this.$=r.addLocationDataFn(o[u],o[u])(new r.Comment(s[u]));break;case 52:this.$=r.addLocationDataFn(o[u-4],o[u])(new r.Code(s[u-3],s[u],s[u-1]));break;case 53:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Code([],s[u],s[u-1]));break;case 54:this.$=r.addLocationDataFn(o[u],o[u])(\"func\");break;case 55:this.$=r.addLocationDataFn(o[u],o[u])(\"boundfunc\");break;case 58:case 95:this.$=r.addLocationDataFn(o[u],o[u])([]);break;case 59:case 96:case 128:case 170:this.$=r.addLocationDataFn(o[u],o[u])([s[u]]);break;case 60:case 97:case 129:this.$=r.addLocationDataFn(o[u-2],o[u])(s[u-2].concat(s[u]));break;case 61:case 98:case 130:this.$=r.addLocationDataFn(o[u-3],o[u])(s[u-3].concat(s[u]));break;case 62:case 99:case 132:this.$=r.addLocationDataFn(o[u-5],o[u])(s[u-5].concat(s[u-2]));break;case 63:this.$=r.addLocationDataFn(o[u],o[u])(new r.Param(s[u]));break;case 64:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Param(s[u-1],null,!0));break;case 65:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Param(s[u-2],s[u]));break;case 66:case 135:this.$=r.addLocationDataFn(o[u],o[u])(new r.Expansion);break;case 71:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Splat(s[u-1]));break;case 73:this.$=r.addLocationDataFn(o[u-1],o[u])(s[u-1].add(s[u]));break;case 74:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Value(s[u-1],[].concat(s[u])));break;case 84:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Access(s[u]));break;case 85:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Access(s[u],\"soak\"));break;case 86:this.$=r.addLocationDataFn(o[u-1],o[u])([r.addLocationDataFn(o[u-1])(new r.Access(new r.Literal(\"prototype\"))),r.addLocationDataFn(o[u])(new r.Access(s[u]))]);break;case 87:this.$=r.addLocationDataFn(o[u-1],o[u])([r.addLocationDataFn(o[u-1])(new r.Access(new r.Literal(\"prototype\"),\"soak\")),r.addLocationDataFn(o[u])(new r.Access(s[u]))]);break;case 88:this.$=r.addLocationDataFn(o[u],o[u])(new r.Access(new r.Literal(\"prototype\")));break;case 91:this.$=r.addLocationDataFn(o[u-1],o[u])(r.extend(s[u],{soak:!0}));break;case 92:this.$=r.addLocationDataFn(o[u],o[u])(new r.Index(s[u]));break;case 93:this.$=r.addLocationDataFn(o[u],o[u])(new r.Slice(s[u]));break;case 94:this.$=r.addLocationDataFn(o[u-3],o[u])(new r.Obj(s[u-2],s[u-3].generated));break;case 100:this.$=r.addLocationDataFn(o[u],o[u])(new r.Class);break;case 101:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Class(null,null,s[u]));break;case 102:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Class(null,s[u]));break;case 103:this.$=r.addLocationDataFn(o[u-3],o[u])(new r.Class(null,s[u-1],s[u]));break;case 104:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Class(s[u]));break;case 105:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Class(s[u-1],null,s[u]));break;case 106:this.$=r.addLocationDataFn(o[u-3],o[u])(new r.Class(s[u-2],s[u]));break;case 107:this.$=r.addLocationDataFn(o[u-4],o[u])(new r.Class(s[u-3],s[u-1],s[u]));break;case 108:case 109:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Call(s[u-2],s[u],s[u-1]));break;case 110:this.$=r.addLocationDataFn(o[u],o[u])(new r.Call(\"super\",[new r.Splat(new r.Literal(\"arguments\"))]));break;case 111:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Call(\"super\",s[u]));break;case 112:this.$=r.addLocationDataFn(o[u],o[u])(!1);break;case 113:this.$=r.addLocationDataFn(o[u],o[u])(!0);break;case 114:this.$=r.addLocationDataFn(o[u-1],o[u])([]);break;case 115:case 131:this.$=r.addLocationDataFn(o[u-3],o[u])(s[u-2]);break;case 116:case 117:this.$=r.addLocationDataFn(o[u],o[u])(new r.Value(new r.Literal(\"this\")));break;case 118:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Value(r.addLocationDataFn(o[u-1])(new r.Literal(\"this\")),[r.addLocationDataFn(o[u])(new r.Access(s[u]))],\"this\"));break;case 119:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Arr([]));break;case 120:this.$=r.addLocationDataFn(o[u-3],o[u])(new r.Arr(s[u-2]));break;case 121:this.$=r.addLocationDataFn(o[u],o[u])(\"inclusive\");break;case 122:this.$=r.addLocationDataFn(o[u],o[u])(\"exclusive\");break;case 123:this.$=r.addLocationDataFn(o[u-4],o[u])(new r.Range(s[u-3],s[u-1],s[u-2]));break;case 124:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Range(s[u-2],s[u],s[u-1]));break;case 125:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Range(s[u-1],null,s[u]));break;case 126:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Range(null,s[u],s[u-1]));break;case 127:this.$=r.addLocationDataFn(o[u],o[u])(new r.Range(null,null,s[u]));break;case 137:this.$=r.addLocationDataFn(o[u-2],o[u])([].concat(s[u-2],s[u]));break;case 138:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Try(s[u]));break;case 139:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Try(s[u-1],s[u][0],s[u][1]));break;case 140:this.$=r.addLocationDataFn(o[u-3],o[u])(new r.Try(s[u-2],null,null,s[u]));break;case 141:this.$=r.addLocationDataFn(o[u-4],o[u])(new r.Try(s[u-3],s[u-2][0],s[u-2][1],s[u]));break;case 142:this.$=r.addLocationDataFn(o[u-2],o[u])([s[u-1],s[u]]);break;case 143:this.$=r.addLocationDataFn(o[u-2],o[u])([r.addLocationDataFn(o[u-1])(new r.Value(s[u-1])),s[u]]);break;case 144:this.$=r.addLocationDataFn(o[u-1],o[u])([null,s[u]]);break;case 145:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Throw(s[u]));break;case 147:this.$=r.addLocationDataFn(o[u-4],o[u])(new r.Parens(s[u-2]));break;case 148:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.While(s[u]));break;case 149:this.$=r.addLocationDataFn(o[u-3],o[u])(new r.While(s[u-2],{guard:s[u]}));break;case 150:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.While(s[u],{invert:!0}));break;case 151:this.$=r.addLocationDataFn(o[u-3],o[u])(new r.While(s[u-2],{invert:!0,guard:s[u]}));break;case 152:this.$=r.addLocationDataFn(o[u-1],o[u])(s[u-1].addBody(s[u]));break;case 153:case 154:this.$=r.addLocationDataFn(o[u-1],o[u])(s[u].addBody(r.addLocationDataFn(o[u-1])(r.Block.wrap([s[u-1]]))));break;case 155:this.$=r.addLocationDataFn(o[u],o[u])(s[u]);break;case 156:this.$=r.addLocationDataFn(o[u-1],o[u])((new r.While(r.addLocationDataFn(o[u-1])(new r.Literal(\"true\")))).addBody(s[u]));break;case 157:this.$=r.addLocationDataFn(o[u-1],o[u])((new r.While(r.addLocationDataFn(o[u-1])(new r.Literal(\"true\")))).addBody(r.addLocationDataFn(o[u])(r.Block.wrap([s[u]]))));break;case 158:case 159:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.For(s[u-1],s[u]));break;case 160:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.For(s[u],s[u-1]));break;case 161:this.$=r.addLocationDataFn(o[u-1],o[u])({source:r.addLocationDataFn(o[u])(new r.Value(s[u]))});break;case 162:this.$=r.addLocationDataFn(o[u-3],o[u])({source:r.addLocationDataFn(o[u-2])(new r.Value(s[u-2])),step:s[u]});break;case 163:this.$=r.addLocationDataFn(o[u-1],o[u])(function(){return s[u].own=s[u-1].own,s[u].name=s[u-1][0],s[u].index=s[u-1][1],s[u]}());break;case 164:this.$=r.addLocationDataFn(o[u-1],o[u])(s[u]);break;case 165:this.$=r.addLocationDataFn(o[u-2],o[u])(function(){return s[u].own=!0,s[u]}());break;case 171:this.$=r.addLocationDataFn(o[u-2],o[u])([s[u-2],s[u]]);break;case 172:this.$=r.addLocationDataFn(o[u-1],o[u])({source:s[u]});break;case 173:this.$=r.addLocationDataFn(o[u-1],o[u])({source:s[u],object:!0});break;case 174:this.$=r.addLocationDataFn(o[u-3],o[u])({source:s[u-2],guard:s[u]});break;case 175:this.$=r.addLocationDataFn(o[u-3],o[u])({source:s[u-2],guard:s[u],object:!0});break;case 176:this.$=r.addLocationDataFn(o[u-3],o[u])({source:s[u-2],step:s[u]});break;case 177:this.$=r.addLocationDataFn(o[u-5],o[u])({source:s[u-4],guard:s[u-2],step:s[u]});break;case 178:this.$=r.addLocationDataFn(o[u-5],o[u])({source:s[u-4],step:s[u-2],guard:s[u]});break;case 179:this.$=r.addLocationDataFn(o[u-4],o[u])(new r.Switch(s[u-3],s[u-1]));break;case 180:this.$=r.addLocationDataFn(o[u-6],o[u])(new r.Switch(s[u-5],s[u-3],s[u-1]));break;case 181:this.$=r.addLocationDataFn(o[u-3],o[u])(new r.Switch(null,s[u-1]));break;case 182:this.$=r.addLocationDataFn(o[u-5],o[u])(new r.Switch(null,s[u-3],s[u-1]));break;case 184:this.$=r.addLocationDataFn(o[u-1],o[u])(s[u-1].concat(s[u]));break;case 185:this.$=r.addLocationDataFn(o[u-2],o[u])([[s[u-1],s[u]]]);break;case 186:this.$=r.addLocationDataFn(o[u-3],o[u])([[s[u-2],s[u-1]]]);break;case 187:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.If(s[u-1],s[u],{type:s[u-2]}));break;case 188:this.$=r.addLocationDataFn(o[u-4],o[u])(s[u-4].addElse(r.addLocationDataFn(o[u-2],o[u])(new r.If(s[u-1],s[u],{type:s[u-2]}))));break;case 190:this.$=r.addLocationDataFn(o[u-2],o[u])(s[u-2].addElse(s[u]));break;case 191:case 192:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.If(s[u],r.addLocationDataFn(o[u-2])(r.Block.wrap([s[u-2]])),{type:s[u-1],statement:!0}));break;case 193:case 194:case 197:case 198:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Op(s[u-1],s[u]));break;case 195:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Op(\"-\",s[u]));break;case 196:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Op(\"+\",s[u]));break;case 199:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Op(s[u-2].concat(s[u-1]),s[u]));break;case 200:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Op(\"--\",s[u]));break;case 201:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Op(\"++\",s[u]));break;case 202:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Op(\"--\",s[u-1],null,!0));break;case 203:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Op(\"++\",s[u-1],null,!0));break;case 204:this.$=r.addLocationDataFn(o[u-1],o[u])(new r.Existence(s[u-1]));break;case 205:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Op(\"+\",s[u-2],s[u]));break;case 206:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Op(\"-\",s[u-2],s[u]));break;case 207:case 208:case 209:case 210:case 211:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Op(s[u-1],s[u-2],s[u]));break;case 212:this.$=r.addLocationDataFn(o[u-2],o[u])(function(){return\"!\"===s[u-1].charAt(0)?(new r.Op(s[u-1].slice(1),s[u-2],s[u])).invert():new r.Op(s[u-1],s[u-2],s[u])}());break;case 213:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Assign(s[u-2],s[u],s[u-1]));break;case 214:this.$=r.addLocationDataFn(o[u-4],o[u])(new r.Assign(s[u-4],s[u-1],s[u-3]));break;case 215:this.$=r.addLocationDataFn(o[u-3],o[u])(new r.Assign(s[u-3],s[u],s[u-2]));break;case 216:this.$=r.addLocationDataFn(o[u-2],o[u])(new r.Extends(s[u-2],s[u]))}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{1:[3]},{1:[2,2],6:R},t(U,[2,3]),t(U,[2,6],{118:69,109:89,115:90,110:L,112:A,116:M,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(U,[2,7],{118:69,109:92,115:93,110:L,112:A,116:M,132:Z}),t(et,[2,11],{87:94,68:95,76:101,72:tt,73:nt,74:rt,75:it,77:st,80:ot,90:ut,91:at}),t(et,[2,12],{76:101,87:104,68:105,72:tt,73:nt,74:rt,75:it,77:st,80:ot,90:ut,91:at}),t(et,[2,13]),t(et,[2,14]),t(et,[2,15]),t(et,[2,16]),t(et,[2,17]),t(et,[2,18]),t(et,[2,19]),t(et,[2,20]),t(et,[2,21]),t(et,[2,22]),t(et,[2,8]),t(et,[2,9]),t(et,[2,10]),t(ft,lt,{46:[1,106]}),t(ft,[2,80]),t(ft,[2,81]),t(ft,[2,82]),t(ft,[2,83]),t([1,6,25,26,34,38,55,60,63,72,73,74,75,77,79,80,84,90,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],[2,110],{88:107,91:ct}),t([6,25,55,60],ht,{54:109,61:110,62:111,27:113,50:114,64:115,65:116,28:r,63:pt,82:b,95:dt,96:vt}),{24:119,25:mt},{7:121,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:123,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:124,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:125,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:127,8:126,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,138:[1,128],139:I,140:q},{12:130,13:131,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:132,50:63,64:47,65:48,67:129,69:23,70:24,71:25,82:b,89:E,94:S,95:x,96:T,107:k},{12:130,13:131,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:132,50:63,64:47,65:48,67:133,69:23,70:24,71:25,82:b,89:E,94:S,95:x,96:T,107:k},t(gt,yt,{86:[1,137],139:[1,134],140:[1,135],148:[1,136]}),t(et,[2,189],{127:[1,138]}),{24:139,25:mt},{24:140,25:mt},t(et,[2,155]),{24:141,25:mt},{7:142,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,143],27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(bt,[2,100],{39:22,69:23,70:24,71:25,64:47,65:48,29:49,35:51,27:62,50:63,31:72,12:130,13:131,45:132,24:144,67:146,25:mt,28:r,30:i,32:s,33:o,36:u,37:a,40:f,41:l,42:c,43:h,44:p,82:b,86:[1,145],89:E,94:S,95:x,96:T,107:k}),{7:147,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,141,142,143,144,145,146,147],[2,50],{12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,9:18,10:19,45:21,39:22,69:23,70:24,71:25,56:28,67:36,130:37,109:39,113:40,115:41,64:47,65:48,29:49,35:51,27:62,50:63,118:69,31:72,8:122,7:148,11:n,28:r,30:i,32:s,33:o,36:u,37:a,40:f,41:l,42:c,43:h,44:p,51:d,52:v,53:m,57:g,58:y,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,114:O,125:_,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q}),t(et,[2,51]),t(gt,[2,77]),t(gt,[2,78]),t(ft,[2,32]),t(ft,[2,33]),t(ft,[2,34]),t(ft,[2,35]),t(ft,[2,36]),t(ft,[2,37]),t(ft,[2,38]),{4:149,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,150],27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:151,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:wt,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,63:Et,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:w,89:E,93:153,94:S,95:x,96:T,97:St,100:154,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(ft,[2,116]),t(ft,[2,117],{27:158,28:r}),{25:[2,54]},{25:[2,55]},t(xt,[2,72]),t(xt,[2,75]),{7:159,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:160,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:161,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:163,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:162,25:mt,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{27:168,28:r,50:169,64:170,65:171,70:164,82:b,95:dt,96:T,120:165,121:[1,166],122:167},{119:172,123:[1,173],124:[1,174]},t([6,25,60,84],Tt,{31:72,83:175,47:176,48:177,10:178,27:179,29:180,50:181,28:r,30:i,32:s,33:o,52:v,95:dt}),t(Nt,[2,26]),t(Nt,[2,27]),t(ft,[2,30]),{12:130,13:182,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:132,50:63,64:47,65:48,67:183,69:23,70:24,71:25,82:b,89:E,94:S,95:x,96:T,107:k},t(Ct,[2,25]),t(Nt,[2,28]),{4:184,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(U,[2,5],{7:4,8:5,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,9:18,10:19,45:21,39:22,69:23,70:24,71:25,56:28,67:36,130:37,109:39,113:40,115:41,64:47,65:48,29:49,35:51,27:62,50:63,118:69,31:72,5:185,11:n,28:r,30:i,32:s,33:o,36:u,37:a,40:f,41:l,42:c,43:h,44:p,51:d,52:v,53:m,57:g,58:y,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,110:L,112:A,114:O,116:M,125:_,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q}),t(et,[2,204]),{7:186,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:187,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:188,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:189,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:190,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:191,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:192,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:193,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:194,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(et,[2,154]),t(et,[2,159]),{7:195,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(et,[2,153]),t(et,[2,158]),{88:196,91:ct},t(xt,[2,73]),{91:[2,113]},{27:197,28:r},{27:198,28:r},t(xt,[2,88],{27:199,28:r}),{27:200,28:r},t(xt,[2,89]),{7:202,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,63:kt,64:47,65:48,67:36,69:23,70:24,71:25,78:201,81:203,82:b,85:w,89:E,94:S,95:x,96:T,98:204,99:Lt,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{76:207,77:st,80:ot},{88:208,91:ct},t(xt,[2,74]),{6:[1,210],7:209,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,211],27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(At,[2,111]),{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:wt,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,63:Et,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:w,89:E,92:[1,212],93:213,94:S,95:x,96:T,100:154,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t([6,25],Ot,{59:217,55:[1,215],60:Mt}),t(_t,[2,59]),t(_t,[2,63],{46:[1,219],63:[1,218]}),t(_t,[2,66]),t(Dt,[2,67]),t(Dt,[2,68]),t(Dt,[2,69]),t(Dt,[2,70]),{27:158,28:r},{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:wt,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,63:Et,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:w,89:E,93:153,94:S,95:x,96:T,97:St,100:154,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(et,[2,53]),{4:221,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,26:[1,220],27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,142,143,144,145,146,147],[2,193],{118:69,109:89,115:90,141:V}),{109:92,110:L,112:A,115:93,116:M,118:69,132:Z},t(Pt,[2,194],{118:69,109:89,115:90,141:V,143:J}),t(Pt,[2,195],{118:69,109:89,115:90,141:V,143:J}),t(Pt,[2,196],{118:69,109:89,115:90,141:V,143:J}),t(et,[2,197],{118:69,109:92,115:93}),t(Ht,[2,198],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),{7:222,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(et,[2,200],{72:yt,73:yt,74:yt,75:yt,77:yt,80:yt,90:yt,91:yt}),{68:95,72:tt,73:nt,74:rt,75:it,76:101,77:st,80:ot,87:94,90:ut,91:at},{68:105,72:tt,73:nt,74:rt,75:it,76:101,77:st,80:ot,87:104,90:ut,91:at},t(Bt,lt),t(et,[2,201],{72:yt,73:yt,74:yt,75:yt,77:yt,80:yt,90:yt,91:yt}),t(et,[2,202]),t(et,[2,203]),{6:[1,225],7:223,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,224],27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:226,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{24:227,25:mt,131:[1,228]},t(et,[2,138],{103:229,104:[1,230],105:[1,231]}),t(et,[2,152]),t(et,[2,160]),{25:[1,232],109:89,110:L,112:A,115:90,116:M,118:69,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y},{126:233,128:234,129:jt},t(et,[2,101]),{7:236,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(bt,[2,104],{24:237,25:mt,72:yt,73:yt,74:yt,75:yt,77:yt,80:yt,90:yt,91:yt,86:[1,238]}),t(Ht,[2,145],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(Ht,[2,49],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),{6:R,108:[1,239]},{4:240,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t([6,25,60,97],Ft,{118:69,109:89,115:90,98:241,63:[1,242],99:Lt,110:L,112:A,116:M,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(It,[2,119]),t([6,25,97],Ot,{59:243,60:qt}),t(Rt,[2,128]),{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:wt,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,63:Et,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:w,89:E,93:245,94:S,95:x,96:T,100:154,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(Rt,[2,134]),t(Rt,[2,135]),t(Ct,[2,118]),{24:246,25:mt,109:89,110:L,112:A,115:90,116:M,118:69,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y},t(Ut,[2,148],{118:69,109:89,115:90,110:L,111:[1,247],112:A,116:M,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(Ut,[2,150],{118:69,109:89,115:90,110:L,111:[1,248],112:A,116:M,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(et,[2,156]),t(zt,[2,157],{118:69,109:89,115:90,110:L,112:A,116:M,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,132,135,136,141,142,143,144,145,146,147],[2,161],{117:[1,249]}),t(Wt,[2,164]),{27:168,28:r,50:169,64:170,65:171,82:b,95:dt,96:vt,120:250,122:167},t(Wt,[2,170],{60:[1,251]}),t(Xt,[2,166]),t(Xt,[2,167]),t(Xt,[2,168]),t(Xt,[2,169]),t(et,[2,163]),{7:252,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:253,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t([6,25,84],Ot,{59:254,60:Vt}),t($t,[2,96]),t($t,[2,42],{49:[1,256]}),t($t,[2,45]),t(Jt,[2,46]),t(Jt,[2,47]),t(Jt,[2,48]),{38:[1,257],68:105,72:tt,73:nt,74:rt,75:it,76:101,77:st,80:ot,87:104,90:ut,91:at},t(Bt,yt),{6:R,34:[1,258]},t(U,[2,4]),t(Kt,[2,205],{118:69,109:89,115:90,141:V,142:$,143:J}),t(Kt,[2,206],{118:69,109:89,115:90,141:V,142:$,143:J}),t(Pt,[2,207],{118:69,109:89,115:90,141:V,143:J}),t(Pt,[2,208],{118:69,109:89,115:90,141:V,143:J}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,144,145,146,147],[2,209],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,145,146],[2,210],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,147:Y}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,146],[2,211],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,147:Y}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,145,146,147],[2,212],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K}),t(zt,[2,192],{118:69,109:89,115:90,110:L,112:A,116:M,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(zt,[2,191],{118:69,109:89,115:90,110:L,112:A,116:M,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(At,[2,108]),t(xt,[2,84]),t(xt,[2,85]),t(xt,[2,86]),t(xt,[2,87]),{79:[1,259]},{63:kt,79:[2,92],98:260,99:Lt,109:89,110:L,112:A,115:90,116:M,118:69,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y},{79:[2,93]},{7:261,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,79:[2,127],82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(Qt,[2,121]),t(Qt,Gt),t(xt,[2,91]),t(At,[2,109]),t(Ht,[2,39],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),{7:262,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:263,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(At,[2,114]),t([6,25,92],Ot,{59:264,60:qt}),t(Rt,Ft,{118:69,109:89,115:90,63:[1,265],110:L,112:A,116:M,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),{56:266,57:g,58:y},t(Yt,Zt,{62:111,27:113,50:114,64:115,65:116,61:267,28:r,63:pt,82:b,95:dt,96:vt}),{6:en,25:tn},t(_t,[2,64]),{7:270,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(nn,[2,23]),{6:R,26:[1,271]},t(Ht,[2,199],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(Ht,[2,213],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),{7:272,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:273,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(Ht,[2,216],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(et,[2,190]),{7:274,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(et,[2,139],{104:[1,275]}),{24:276,25:mt},{24:279,25:mt,27:277,28:r,65:278,82:b},{126:280,128:234,129:jt},{26:[1,281],127:[1,282],128:283,129:jt},t(rn,[2,183]),{7:285,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,101:284,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(sn,[2,102],{118:69,109:89,115:90,24:286,25:mt,110:L,112:A,116:M,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(et,[2,105]),{7:287,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(ft,[2,146]),{6:R,26:[1,288]},{7:289,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t([11,28,30,32,33,36,37,40,41,42,43,44,51,52,53,57,58,82,85,89,94,95,96,102,106,107,110,112,114,116,125,131,133,134,135,136,137,139,140],Gt,{6:on,25:on,60:on,97:on}),{6:un,25:an,97:[1,290]},t([6,25,26,92,97],Zt,{12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,9:18,10:19,45:21,39:22,69:23,70:24,71:25,56:28,67:36,130:37,109:39,113:40,115:41,64:47,65:48,29:49,35:51,27:62,50:63,118:69,31:72,8:122,66:156,7:214,100:293,11:n,28:r,30:i,32:s,33:o,36:u,37:a,40:f,41:l,42:c,43:h,44:p,51:d,52:v,53:m,57:g,58:y,63:Et,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,110:L,112:A,114:O,116:M,125:_,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q}),t(Yt,Ot,{59:294,60:qt}),t(fn,[2,187]),{7:295,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:296,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:297,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(Wt,[2,165]),{27:168,28:r,50:169,64:170,65:171,82:b,95:dt,96:vt,122:298},t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,112,116,132],[2,172],{118:69,109:89,115:90,111:[1,299],117:[1,300],135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(ln,[2,173],{118:69,109:89,115:90,111:[1,301],135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),{6:cn,25:hn,84:[1,302]},t([6,25,26,84],Zt,{31:72,48:177,10:178,27:179,29:180,50:181,47:305,28:r,30:i,32:s,33:o,52:v,95:dt}),{7:306,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,307],27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(ft,[2,31]),t(Nt,[2,29]),t(xt,[2,90]),{7:308,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,79:[2,125],82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{79:[2,126],109:89,110:L,112:A,115:90,116:M,118:69,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y},t(Ht,[2,40],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),{26:[1,309],109:89,110:L,112:A,115:90,116:M,118:69,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y},{6:un,25:an,92:[1,310]},t(Rt,on),{24:311,25:mt},t(_t,[2,60]),{27:113,28:r,50:114,61:312,62:111,63:pt,64:115,65:116,82:b,95:dt,96:vt},t(pn,ht,{61:110,62:111,27:113,50:114,64:115,65:116,54:313,28:r,63:pt,82:b,95:dt,96:vt}),t(_t,[2,65],{118:69,109:89,115:90,110:L,112:A,116:M,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(nn,[2,24]),{26:[1,314],109:89,110:L,112:A,115:90,116:M,118:69,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y},t(Ht,[2,215],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),{24:315,25:mt,109:89,110:L,112:A,115:90,116:M,118:69,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y},{24:316,25:mt},t(et,[2,140]),{24:317,25:mt},{24:318,25:mt},t(dn,[2,144]),{26:[1,319],127:[1,320],128:283,129:jt},t(et,[2,181]),{24:321,25:mt},t(rn,[2,184]),{24:322,25:mt,60:[1,323]},t(vn,[2,136],{118:69,109:89,115:90,110:L,112:A,116:M,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(et,[2,103]),t(sn,[2,106],{118:69,109:89,115:90,24:324,25:mt,110:L,112:A,116:M,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),{108:[1,325]},{97:[1,326],109:89,110:L,112:A,115:90,116:M,118:69,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y},t(It,[2,120]),{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,63:Et,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,100:327,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:wt,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,63:Et,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:w,89:E,93:328,94:S,95:x,96:T,100:154,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(Rt,[2,129]),{6:un,25:an,26:[1,329]},t(zt,[2,149],{118:69,109:89,115:90,110:L,112:A,116:M,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(zt,[2,151],{118:69,109:89,115:90,110:L,112:A,116:M,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(zt,[2,162],{118:69,109:89,115:90,110:L,112:A,116:M,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(Wt,[2,171]),{7:330,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:331,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:332,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(It,[2,94]),{10:178,27:179,28:r,29:180,30:i,31:72,32:s,33:o,47:333,48:177,50:181,52:v,95:dt},t(pn,Tt,{31:72,47:176,48:177,10:178,27:179,29:180,50:181,83:334,28:r,30:i,32:s,33:o,52:v,95:dt}),t($t,[2,97]),t($t,[2,43],{118:69,109:89,115:90,110:L,112:A,116:M,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),{7:335,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{79:[2,124],109:89,110:L,112:A,115:90,116:M,118:69,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y},t(et,[2,41]),t(At,[2,115]),t(et,[2,52]),t(_t,[2,61]),t(Yt,Ot,{59:336,60:Mt}),t(et,[2,214]),t(fn,[2,188]),t(et,[2,141]),t(dn,[2,142]),t(dn,[2,143]),t(et,[2,179]),{24:337,25:mt},{26:[1,338]},t(rn,[2,185],{6:[1,339]}),{7:340,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},t(et,[2,107]),t(ft,[2,147]),t(ft,[2,123]),t(Rt,[2,130]),t(Yt,Ot,{59:341,60:qt}),t(Rt,[2,131]),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,132],[2,174],{118:69,109:89,115:90,117:[1,342],135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(ln,[2,176],{118:69,109:89,115:90,111:[1,343],135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(Ht,[2,175],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t($t,[2,98]),t(Yt,Ot,{59:344,60:Vt}),{26:[1,345],109:89,110:L,112:A,115:90,116:M,118:69,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y},{6:en,25:tn,26:[1,346]},{26:[1,347]},t(et,[2,182]),t(rn,[2,186]),t(vn,[2,137],{118:69,109:89,115:90,110:L,112:A,116:M,132:z,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),{6:un,25:an,26:[1,348]},{7:349,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{7:350,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:r,29:49,30:i,31:72,32:s,33:o,35:51,36:u,37:a,39:22,40:f,41:l,42:c,43:h,44:p,45:21,50:63,51:d,52:v,53:m,56:28,57:g,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:w,89:E,94:S,95:x,96:T,102:N,106:C,107:k,109:39,110:L,112:A,113:40,114:O,115:41,116:M,118:69,125:_,130:37,131:D,133:P,134:H,135:B,136:j,137:F,139:I,140:q},{6:cn,25:hn,26:[1,351]},t($t,[2,44]),t(_t,[2,62]),t(et,[2,180]),t(Rt,[2,132]),t(Ht,[2,177],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t(Ht,[2,178],{118:69,109:89,115:90,135:W,136:X,141:V,142:$,143:J,144:K,145:Q,146:G,147:Y}),t($t,[2,99])],defaultActions:{60:[2,54],61:[2,55],96:[2,113],203:[2,93]},parseError:function(e,t){if(!t.recoverable)throw Error(e);this.trace(e)},parse:function(e){function t(){var e;return e=d.lex()||h,\"number\"!=typeof e&&(e=n.symbols_[e]||e),e}var n=this,r=[0],i=[null],s=[],o=this.table,u=\"\",a=0,f=0,l=0,c=2,h=1,p=s.slice.call(arguments,1),d=Object.create(this.lexer),v={yy:{}};for(var m in this.yy)Object.prototype.hasOwnProperty.call(this.yy,m)&&(v.yy[m]=this.yy[m]);d.setInput(e,v.yy),v.yy.lexer=d,v.yy.parser=this,d.yylloc===void 0&&(d.yylloc={});var g=d.yylloc;s.push(g);var y=d.options&&d.options.ranges;this.parseError=\"function\"==typeof v.yy.parseError?v.yy.parseError:Object.getPrototypeOf(this).parseError;for(var b,w,E,S,x,T,N,C,k,L={};;){if(E=r[r.length-1],this.defaultActions[E]?S=this.defaultActions[E]:((null===b||b===void 0)&&(b=t()),S=o[E]&&o[E][b]),S===void 0||!S.length||!S[0]){var A=\"\";k=[];for(T in o[E])this.terminals_[T]&&T>c&&k.push(\"'\"+this.terminals_[T]+\"'\");A=d.showPosition?\"Parse error on line \"+(a+1)+\":\\n\"+d.showPosition()+\"\\nExpecting \"+k.join(\", \")+\", got '\"+(this.terminals_[b]||b)+\"'\":\"Parse error on line \"+(a+1)+\": Unexpected \"+(b==h?\"end of input\":\"'\"+(this.terminals_[b]||b)+\"'\"),this.parseError(A,{text:d.match,token:this.terminals_[b]||b,line:d.yylineno,loc:g,expected:k})}if(S[0]instanceof Array&&S.length>1)throw Error(\"Parse Error: multiple actions possible at state: \"+E+\", token: \"+b);switch(S[0]){case 1:r.push(b),i.push(d.yytext),s.push(d.yylloc),r.push(S[1]),b=null,w?(b=w,w=null):(f=d.yyleng,u=d.yytext,a=d.yylineno,g=d.yylloc,l>0&&l--);break;case 2:if(N=this.productions_[S[1]][1],L.$=i[i.length-N],L._$={first_line:s[s.length-(N||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(N||1)].first_column,last_column:s[s.length-1].last_column},y&&(L._$.range=[s[s.length-(N||1)].range[0],s[s.length-1].range[1]]),x=this.performAction.apply(L,[u,f,a,v.yy,S[1],i,s].concat(p)),x!==void 0)return x;N&&(r=r.slice(0,-2*N),i=i.slice(0,-1*N),s=s.slice(0,-1*N)),r.push(this.productions_[S[1]][0]),i.push(L.$),s.push(L._$),C=o[r[r.length-2]][r[r.length-1]],r.push(C);break;case 3:return!0}}return!0}};return e.prototype=mn,mn.Parser=e,new e}();return _dereq_!==void 0&&e!==void 0&&(e.parser=n,e.Parser=n.Parser,e.parse=function(){return n.parse.apply(n,arguments)},e.main=function(t){t[1]||(console.log(\"Usage: \"+t[0]+\" FILE\"),process.exit(1));var n=_dereq_(\"fs\").readFileSync(_dereq_(\"path\").normalize(t[1]),\"utf8\");return e.parser.parse(n)},t!==void 0&&_dereq_.main===t&&e.main(process.argv.slice(1))),t.exports}(),_dereq_[\"./scope\"]=function(){var e={},t={exports:e};return function(){var t,n=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};e.Scope=t=function(){function e(e,t,n,r){var i,s;this.parent=e,this.expressions=t,this.method=n,this.referencedVars=r,this.variables=[{name:\"arguments\",type:\"arguments\"}],this.positions={},this.parent||(this.utilities={}),this.root=null!=(i=null!=(s=this.parent)?s.root:void 0)?i:this}return e.prototype.add=function(e,t,n){return this.shared&&!n?this.parent.add(e,t,n):Object.prototype.hasOwnProperty.call(this.positions,e)?this.variables[this.positions[e]].type=t:this.positions[e]=this.variables.push({name:e,type:t})-1},e.prototype.namedMethod=function(){var e;return(null!=(e=this.method)?e.name:void 0)||!this.parent?this.method:this.parent.namedMethod()},e.prototype.find=function(e){return this.check(e)?!0:(this.add(e,\"var\"),!1)},e.prototype.parameter=function(e){return this.shared&&this.parent.check(e,!0)?void 0:this.add(e,\"param\")},e.prototype.check=function(e){var t;return!!(this.type(e)||(null!=(t=this.parent)?t.check(e):void 0))},e.prototype.temporary=function(e,t,n){return null==n&&(n=!1),n?(t+parseInt(e,36)).toString(36).replace(/\\d/g,\"a\"):e+(t||\"\")},e.prototype.type=function(e){var t,n,r,i;for(r=this.variables,t=0,n=r.length;n>t;t++)if(i=r[t],i.name===e)return i.type;return null},e.prototype.freeVariable=function(e,t){var r,i,s;for(null==t&&(t={}),r=0;;){if(s=this.temporary(e,r,t.single),!(this.check(s)||n.call(this.root.referencedVars,s)>=0))break;r++}return(null!=(i=t.reserve)?i:!0)&&this.add(s,\"var\",!0),s},e.prototype.assign=function(e,t){return this.add(e,{value:t,assigned:!0},!0),this.hasAssignments=!0},e.prototype.hasDeclarations=function(){return!!this.declaredVariables().length},e.prototype.declaredVariables=function(){var e;return function(){var t,n,r,i;for(r=this.variables,i=[],t=0,n=r.length;n>t;t++)e=r[t],\"var\"===e.type&&i.push(e.name);return i}.call(this).sort()},e.prototype.assignedVariables=function(){var e,t,n,r,i;for(n=this.variables,r=[],e=0,t=n.length;t>e;e++)i=n[e],i.type.assigned&&r.push(i.name+\" = \"+i.type.value);return r},e}()}.call(this),t.exports}(),_dereq_[\"./nodes\"]=function(){var e={},t={exports:e};return function(){var t,n,r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y,b,w,E,S,x,T,N,C,k,L,A,O,M,_,D,P,H,B,j,F,I,q,R,U,z,W,X,V,$,J,K,Q,G,Y,Z,et,tt,nt,rt,it,st,ot,ut,at,ft,lt,ct,ht,pt,dt,vt,mt,gt,yt,bt,wt=function(e,t){function n(){this.constructor=e}for(var r in t)Et.call(t,r)&&(e[r]=t[r]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},Et={}.hasOwnProperty,St=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},xt=[].slice;Error.stackTraceLimit=1/0,R=_dereq_(\"./scope\").Scope,pt=_dereq_(\"./lexer\"),B=pt.RESERVED,q=pt.STRICT_PROSCRIBED,dt=_dereq_(\"./helpers\"),et=dt.compact,it=dt.flatten,rt=dt.extend,lt=dt.merge,tt=dt.del,mt=dt.starts,nt=dt.ends,vt=dt.some,Z=dt.addLocationDataFn,ft=dt.locationDataToString,gt=dt.throwSyntaxError,e.extend=rt,e.addLocationDataFn=Z,Y=function(){return!0},O=function(){return!1},V=function(){return this},A=function(){return this.negated=!this.negated,this},e.CodeFragment=f=function(){function e(e,t){var n;this.code=\"\"+t,this.locationData=null!=e?e.locationData:void 0,this.type=(null!=e?null!=(n=e.constructor)?n.name:void 0:void 0)||\"unknown\"}return e.prototype.toString=function(){return\"\"+this.code+(this.locationData?\": \"+ft(this.locationData):\"\")},e}(),st=function(e){var t;return function(){var n,r,i;for(i=[],n=0,r=e.length;r>n;n++)t=e[n],i.push(t.code);return i}().join(\"\")},e.Base=i=function(){function e(){}return e.prototype.compile=function(e,t){return st(this.compileToFragments(e,t))},e.prototype.compileToFragments=function(e,t){var n;return e=rt({},e),t&&(e.level=t),n=this.unfoldSoak(e)||this,n.tab=e.indent,e.level!==k&&n.isStatement(e)?n.compileClosure(e):n.compileNode(e)},e.prototype.compileClosure=function(e){var n,r,i,u,f,l,c;return(u=this.jumps())&&u.error(\"cannot use a pure statement in an expression\"),e.sharedScope=!0,i=new a([],s.wrap([this])),n=[],((r=this.contains(ut))||this.contains(at))&&(n=[new L(\"this\")],r?(f=\"apply\",n.push(new L(\"arguments\"))):f=\"call\",i=new Q(i,[new t(new L(f))])),l=(new o(i,n)).compileNode(e),(i.isGenerator||(null!=(c=i.base)?c.isGenerator:void 0))&&(l.unshift(this.makeCode(\"(yield* \")),l.push(this.makeCode(\")\"))),l},e.prototype.cache=function(e,t,n){var i,s,o;return i=null!=n?n(this):this.isComplex(),i?(s=new L(e.scope.freeVariable(\"ref\")),o=new r(s,this),t?[o.compileToFragments(e,t),[this.makeCode(s.value)]]:[o,s]):(s=t?this.compileToFragments(e,t):this,[s,s])},e.prototype.cacheToCodeFragments=function(e){return[st(e[0]),st(e[1])]},e.prototype.makeReturn=function(e){var t;return t=this.unwrapAll(),e?new o(new L(e+\".push\"),[t]):new F(t)},e.prototype.contains=function(e){var t;return t=void 0,this.traverseChildren(!1,function(n){return e(n)?(t=n,!1):void 0}),t},e.prototype.lastNonComment=function(e){var t;for(t=e.length;t--;)if(!(e[t]instanceof l))return e[t];return null},e.prototype.toString=function(e,t){var n;return null==e&&(e=\"\"),null==t&&(t=this.constructor.name),n=\"\\n\"+e+t,this.soak&&(n+=\"?\"),this.eachChild(function(t){return n+=t.toString(e+X)}),n},e.prototype.eachChild=function(e){var t,n,r,i,s,o,u,a;if(!this.children)return this;for(u=this.children,r=0,s=u.length;s>r;r++)if(t=u[r],this[t])for(a=it([this[t]]),i=0,o=a.length;o>i;i++)if(n=a[i],e(n)===!1)return this;return this},e.prototype.traverseChildren=function(e,t){return this.eachChild(function(n){var r;return r=t(n),r!==!1?n.traverseChildren(e,t):void 0})},e.prototype.invert=function(){return new D(\"!\",this)},e.prototype.unwrapAll=function(){var e;for(e=this;e!==(e=e.unwrap()););return e},e.prototype.children=[],e.prototype.isStatement=O,e.prototype.jumps=O,e.prototype.isComplex=Y,e.prototype.isChainable=O,e.prototype.isAssignable=O,e.prototype.unwrap=V,e.prototype.unfoldSoak=O,e.prototype.assigns=O,e.prototype.updateLocationDataIfMissing=function(e){return this.locationData?this:(this.locationData=e,this.eachChild(function(t){return t.updateLocationDataIfMissing(e)}))},e.prototype.error=function(e){return gt(e,this.locationData)},e.prototype.makeCode=function(e){return new f(this,e)},e.prototype.wrapInBraces=function(e){return[].concat(this.makeCode(\"(\"),e,this.makeCode(\")\"))},e.prototype.joinFragmentArrays=function(e,t){var n,r,i,s,o;for(n=[],i=s=0,o=e.length;o>s;i=++s)r=e[i],i&&n.push(this.makeCode(t)),n=n.concat(r);return n},e}(),e.Block=s=function(e){function t(e){this.expressions=et(it(e||[]))}return wt(t,e),t.prototype.children=[\"expressions\"],t.prototype.push=function(e){return this.expressions.push(e),this},t.prototype.pop=function(){return this.expressions.pop()},t.prototype.unshift=function(e){return this.expressions.unshift(e),this},t.prototype.unwrap=function(){return 1===this.expressions.length?this.expressions[0]:this},t.prototype.isEmpty=function(){return!this.expressions.length},t.prototype.isStatement=function(e){var t,n,r,i;for(i=this.expressions,n=0,r=i.length;r>n;n++)if(t=i[n],t.isStatement(e))return!0;return!1},t.prototype.jumps=function(e){var t,n,r,i,s;for(s=this.expressions,n=0,i=s.length;i>n;n++)if(t=s[n],r=t.jumps(e))return r},t.prototype.makeReturn=function(e){var t,n;for(n=this.expressions.length;n--;)if(t=this.expressions[n],!(t instanceof l)){this.expressions[n]=t.makeReturn(e),t instanceof F&&!t.expression&&this.expressions.splice(n,1);break}return this},t.prototype.compileToFragments=function(e,n){return null==e&&(e={}),e.scope?t.__super__.compileToFragments.call(this,e,n):this.compileRoot(e)},t.prototype.compileNode=function(e){var n,r,i,s,o,u,a,f,l;for(this.tab=e.indent,l=e.level===k,r=[],f=this.expressions,s=o=0,u=f.length;u>o;s=++o)a=f[s],a=a.unwrapAll(),a=a.unfoldSoak(e)||a,a instanceof t?r.push(a.compileNode(e)):l?(a.front=!0,i=a.compileToFragments(e),a.isStatement(e)||(i.unshift(this.makeCode(\"\"+this.tab)),i.push(this.makeCode(\";\"))),r.push(i)):r.push(a.compileToFragments(e,T));return l?this.spaced?[].concat(this.joinFragmentArrays(r,\"\\n\\n\"),this.makeCode(\"\\n\")):this.joinFragmentArrays(r,\"\\n\"):(n=r.length?this.joinFragmentArrays(r,\", \"):[this.makeCode(\"void 0\")],r.length>1&&e.level>=T?this.wrapInBraces(n):n)},t.prototype.compileRoot=function(e){var t,n,r,i,s,o,u,a,f,c,h;for(e.indent=e.bare?\"\":X,e.level=k,this.spaced=!0,e.scope=new R(null,this,null,null!=(f=e.referencedVars)?f:[]),c=e.locals||[],i=0,s=c.length;s>i;i++)o=c[i],e.scope.parameter(o);return u=[],e.bare||(a=function(){var e,n,i,s;for(i=this.expressions,s=[],r=e=0,n=i.length;n>e&&(t=i[r],t.unwrap()instanceof l);r=++e)s.push(t);return s}.call(this),h=this.expressions.slice(a.length),this.expressions=a,a.length&&(u=this.compileNode(lt(e,{indent:\"\"})),u.push(this.makeCode(\"\\n\"))),this.expressions=h),n=this.compileWithDeclarations(e),e.bare?n:[].concat(u,this.makeCode(\"(function() {\\n\"),n,this.makeCode(\"\\n}).call(this);\\n\"))},t.prototype.compileWithDeclarations=function(e){var t,n,r,i,s,o,u,a,f,c,h,p,d,v;for(i=[],a=[],f=this.expressions,s=o=0,u=f.length;u>o&&(r=f[s],r=r.unwrap(),r instanceof l||r instanceof L);s=++o);return e=lt(e,{level:k}),s&&(p=this.expressions.splice(s,9e9),c=[this.spaced,!1],v=c[0],this.spaced=c[1],h=[this.compileNode(e),v],i=h[0],this.spaced=h[1],this.expressions=p),a=this.compileNode(e),d=e.scope,d.expressions===this&&(n=e.scope.hasDeclarations(),t=d.hasAssignments,n||t?(s&&i.push(this.makeCode(\"\\n\")),i.push(this.makeCode(this.tab+\"var \")),n&&i.push(this.makeCode(d.declaredVariables().join(\", \"))),t&&(n&&i.push(this.makeCode(\",\\n\"+(this.tab+X))),i.push(this.makeCode(d.assignedVariables().join(\",\\n\"+(this.tab+X))))),i.push(this.makeCode(\";\\n\"+(this.spaced?\"\\n\":\"\")))):i.length&&a.length&&i.push(this.makeCode(\"\\n\"))),i.concat(a)},t.wrap=function(e){return 1===e.length&&e[0]instanceof t?e[0]:new t(e)},t}(i),e.Literal=L=function(e){function t(e){this.value=e}return wt(t,e),t.prototype.makeReturn=function(){return this.isStatement()?this:t.__super__.makeReturn.apply(this,arguments)},t.prototype.isAssignable=function(){return m.test(this.value)},t.prototype.isStatement=function(){var e;return\"break\"===(e=this.value)||\"continue\"===e||\"debugger\"===e},t.prototype.isComplex=O,t.prototype.assigns=function(e){return e===this.value},t.prototype.jumps=function(e){return\"break\"!==this.value||(null!=e?e.loop:void 0)||(null!=e?e.block:void 0)?\"continue\"!==this.value||(null!=e?e.loop:void 0)?void 0:this:this},t.prototype.compileNode=function(e){var t,n,r;return n=\"this\"===this.value?(null!=(r=e.scope.method)?r.bound:void 0)?e.scope.method.context:this.value:this.value.reserved?'\"'+this.value+'\"':this.value,t=this.isStatement()?\"\"+this.tab+n+\";\":n,[this.makeCode(t)]},t.prototype.toString=function(){return' \"'+this.value+'\"'},t}(i),e.Undefined=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return wt(t,e),t.prototype.isAssignable=O,t.prototype.isComplex=O,t.prototype.compileNode=function(e){return[this.makeCode(e.level>=S?\"(void 0)\":\"void 0\")]},t}(i),e.Null=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return wt(t,e),t.prototype.isAssignable=O,t.prototype.isComplex=O,t.prototype.compileNode=function(){return[this.makeCode(\"null\")]},t}(i),e.Bool=function(e){function t(e){this.val=e}return wt(t,e),t.prototype.isAssignable=O,t.prototype.isComplex=O,t.prototype.compileNode=function(){return[this.makeCode(this.val)]},t}(i),e.Return=F=function(e){function t(e){this.expression=e}return wt(t,e),t.prototype.children=[\"expression\"],t.prototype.isStatement=Y,t.prototype.makeReturn=V,t.prototype.jumps=V,t.prototype.compileToFragments=function(e,n){var r,i;return r=null!=(i=this.expression)?i.makeReturn():void 0,!r||r instanceof t?t.__super__.compileToFragments.call(this,e,n):r.compileToFragments(e,n)},t.prototype.compileNode=function(e){var t,n,r;return t=[],n=null!=(r=this.expression)?\"function\"==typeof r.isYieldReturn?r.isYieldReturn():void 0:void 0,n||t.push(this.makeCode(this.tab+(\"return\"+(this.expression?\" \":\"\")))),this.expression&&(t=t.concat(this.expression.compileToFragments(e,C))),n||t.push(this.makeCode(\";\")),t},t}(i),e.Value=Q=function(e){function t(e,n,r){return!n&&e instanceof t?e:(this.base=e,this.properties=n||[],r&&(this[r]=!0),this)}return wt(t,e),t.prototype.children=[\"base\",\"properties\"],t.prototype.add=function(e){return this.properties=this.properties.concat(e),this},t.prototype.hasProperties=function(){return!!this.properties.length},t.prototype.bareLiteral=function(e){return!this.properties.length&&this.base instanceof e},t.prototype.isArray=function(){return this.bareLiteral(n)},t.prototype.isRange=function(){return this.bareLiteral(j)},t.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},t.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},t.prototype.isSimpleNumber=function(){return this.bareLiteral(L)&&I.test(this.base.value)},t.prototype.isString=function(){return this.bareLiteral(L)&&y.test(this.base.value)},t.prototype.isRegex=function(){return this.bareLiteral(L)&&g.test(this.base.value)},t.prototype.isAtomic=function(){var e,t,n,r;for(r=this.properties.concat(this.base),e=0,t=r.length;t>e;e++)if(n=r[e],n.soak||n instanceof o)return!1;return!0},t.prototype.isNotCallable=function(){return this.isSimpleNumber()||this.isString()||this.isRegex()||this.isArray()||this.isRange()||this.isSplice()||this.isObject()},t.prototype.isStatement=function(e){return!this.properties.length&&this.base.isStatement(e)},t.prototype.assigns=function(e){return!this.properties.length&&this.base.assigns(e)},t.prototype.jumps=function(e){return!this.properties.length&&this.base.jumps(e)},t.prototype.isObject=function(e){return this.properties.length?!1:this.base instanceof _&&(!e||this.base.generated)},t.prototype.isSplice=function(){var e,t;return t=this.properties,e=t[t.length-1],e instanceof U},t.prototype.looksStatic=function(e){var t;return this.base.value===e&&1===this.properties.length&&\"prototype\"!==(null!=(t=this.properties[0].name)?t.value:void 0)},t.prototype.unwrap=function(){return this.properties.length?this:this.base},t.prototype.cacheReference=function(e){var n,i,s,o,u;return u=this.properties,s=u[u.length-1],2>this.properties.length&&!this.base.isComplex()&&(null!=s?!s.isComplex():!void 0)?[this,this]:(n=new t(this.base,this.properties.slice(0,-1)),n.isComplex()&&(i=new L(e.scope.freeVariable(\"base\")),n=new t(new H(new r(i,n)))),s?(s.isComplex()&&(o=new L(e.scope.freeVariable(\"name\")),s=new E(new r(o,s.index)),o=new E(o)),[n.add(s),new t(i||n.base,[o||s])]):[n,i])},t.prototype.compileNode=function(e){var t,n,r,i,s;for(this.base.front=this.front,s=this.properties,t=this.base.compileToFragments(e,s.length?S:null),(this.base instanceof H||s.length)&&I.test(st(t))&&t.push(this.makeCode(\".\")),n=0,r=s.length;r>n;n++)i=s[n],t.push.apply(t,i.compileToFragments(e));return t},t.prototype.unfoldSoak=function(e){return null!=this.unfoldedSoak?this.unfoldedSoak:this.unfoldedSoak=function(n){return function(){var i,s,o,u,a,f,l,h,p,d;if(o=n.base.unfoldSoak(e))return(h=o.body.properties).push.apply(h,n.properties),o;for(p=n.properties,s=u=0,a=p.length;a>u;s=++u)if(f=p[s],f.soak)return f.soak=!1,i=new t(n.base,n.properties.slice(0,s)),d=new t(n.base,n.properties.slice(s)),i.isComplex()&&(l=new L(e.scope.freeVariable(\"ref\")),i=new H(new r(l,i)),d.base=l),new b(new c(i),d,{soak:!0});return!1}}(this)()},t}(i),e.Comment=l=function(e){function t(e){this.comment=e}return wt(t,e),t.prototype.isStatement=Y,t.prototype.makeReturn=V,t.prototype.compileNode=function(e,t){var n,r;return r=this.comment.replace(/^(\\s*)#(?=\\s)/gm,\"$1 *\"),n=\"/*\"+ct(r,this.tab)+(St.call(r,\"\\n\")>=0?\"\\n\"+this.tab:\"\")+\" */\",(t||e.level)===k&&(n=e.indent+n),[this.makeCode(\"\\n\"),this.makeCode(n)]},t}(i),e.Call=o=function(e){function n(e,t,n){this.args=null!=t?t:[],this.soak=n,this.isNew=!1,this.isSuper=\"super\"===e,this.variable=this.isSuper?null:e,e instanceof Q&&e.isNotCallable()&&e.error(\"literal is not a function\")}return wt(n,e),n.prototype.children=[\"variable\",\"args\"],n.prototype.newInstance=function(){var e,t;return e=(null!=(t=this.variable)?t.base:void 0)||this.variable,e instanceof n&&!e.isNew?e.newInstance():this.isNew=!0,this},n.prototype.superReference=function(e){var n,i,s,o,u,a,f,l;return u=e.scope.namedMethod(),(null!=u?u.klass:void 0)?(o=u.klass,a=u.name,l=u.variable,o.isComplex()&&(s=new L(e.scope.parent.freeVariable(\"base\")),i=new Q(new H(new r(s,o))),l.base=i,l.properties.splice(0,o.properties.length)),(a.isComplex()||a instanceof E&&a.index.isAssignable())&&(f=new L(e.scope.parent.freeVariable(\"name\")),a=new E(new r(f,a.index)),l.properties.pop(),l.properties.push(a)),n=[new t(new L(\"__super__\"))],u[\"static\"]&&n.push(new t(new L(\"constructor\"))),n.push(null!=f?new E(f):a),(new Q(null!=s?s:o,n)).compile(e)):(null!=u?u.ctor:void 0)?u.name+\".__super__.constructor\":this.error(\"cannot call super outside of an instance method.\")},n.prototype.superThis=function(e){var t;return t=e.scope.method,t&&!t.klass&&t.context||\"this\"},n.prototype.unfoldSoak=function(e){var t,r,i,s,o,u,a,f,l;if(this.soak){if(this.variable){if(r=yt(e,this,\"variable\"))return r;a=(new Q(this.variable)).cacheReference(e),s=a[0],l=a[1]}else s=new L(this.superReference(e)),l=new Q(s);return l=new n(l,this.args),l.isNew=this.isNew,s=new L(\"typeof \"+s.compile(e)+' === \"function\"'),new b(s,new Q(l),{soak:!0})}for(t=this,u=[];;)if(t.variable instanceof n)u.push(t),t=t.variable;else{if(!(t.variable instanceof Q))break;if(u.push(t),!((t=t.variable.base)instanceof n))break}for(f=u.reverse(),i=0,o=f.length;o>i;i++)t=f[i],r&&(t.variable instanceof n?t.variable=r:t.variable.base=r),r=yt(e,t,\"variable\");return r},n.prototype.compileNode=function(e){var t,n,r,i,s,o,u,a,f,l;if(null!=(f=this.variable)&&(f.front=this.front),i=z.compileSplattedArray(e,this.args,!0),i.length)return this.compileSplat(e,i);for(r=[],l=this.args,n=o=0,u=l.length;u>o;n=++o)t=l[n],n&&r.push(this.makeCode(\", \")),r.push.apply(r,t.compileToFragments(e,T));return s=[],this.isSuper?(a=this.superReference(e)+(\".call(\"+this.superThis(e)),r.length&&(a+=\", \"),s.push(this.makeCode(a))):(this.isNew&&s.push(this.makeCode(\"new \")),s.push.apply(s,this.variable.compileToFragments(e,S)),s.push(this.makeCode(\"(\"))),s.push.apply(s,r),s.push(this.makeCode(\")\")),s},n.prototype.compileSplat=function(e,t){var n,r,i,s,o,u;return this.isSuper?[].concat(this.makeCode(this.superReference(e)+\".apply(\"+this.superThis(e)+\", \"),t,this.makeCode(\")\")):this.isNew?(s=this.tab+X,[].concat(this.makeCode(\"(function(func, args, ctor) {\\n\"+s+\"ctor.prototype = func.prototype;\\n\"+s+\"var child = new ctor, result = func.apply(child, args);\\n\"+s+\"return Object(result) === result ? result : child;\\n\"+this.tab+\"})(\"),this.variable.compileToFragments(e,T),this.makeCode(\", \"),t,this.makeCode(\", function(){})\"))):(n=[],r=new Q(this.variable),(o=r.properties.pop())&&r.isComplex()?(u=e.scope.freeVariable(\"ref\"),n=n.concat(this.makeCode(\"(\"+u+\" = \"),r.compileToFragments(e,T),this.makeCode(\")\"),o.compileToFragments(e))):(i=r.compileToFragments(e,S),I.test(st(i))&&(i=this.wrapInBraces(i)),o?(u=st(i),i.push.apply(i,o.compileToFragments(e))):u=\"null\",n=n.concat(i)),n=n.concat(this.makeCode(\".apply(\"+u+\", \"),t,this.makeCode(\")\")))},n}(i),e.Extends=p=function(e){function t(e,t){this.child=e,this.parent=t}return wt(t,e),t.prototype.children=[\"child\",\"parent\"],t.prototype.compileToFragments=function(e){return(new o(new Q(new L(bt(\"extend\",e))),[this.child,this.parent])).compileToFragments(e)},t}(i),e.Access=t=function(e){function t(e,t){this.name=e,this.name.asKey=!0,this.soak=\"soak\"===t}return wt(t,e),t.prototype.children=[\"name\"],t.prototype.compileToFragments=function(e){var t;return t=this.name.compileToFragments(e),m.test(st(t))?t.unshift(this.makeCode(\".\")):(t.unshift(this.makeCode(\"[\")),t.push(this.makeCode(\"]\"))),t},t.prototype.isComplex=O,t}(i),e.Index=E=function(e){function t(e){this.index=e}return wt(t,e),t.prototype.children=[\"index\"],t.prototype.compileToFragments=function(e){return[].concat(this.makeCode(\"[\"),this.index.compileToFragments(e,C),this.makeCode(\"]\"))},t.prototype.isComplex=function(){return this.index.isComplex()},t}(i),e.Range=j=function(e){function t(e,t,n){this.from=e,this.to=t,this.exclusive=\"exclusive\"===n,this.equals=this.exclusive?\"\":\"=\"}return wt(t,e),t.prototype.children=[\"from\",\"to\"],t.prototype.compileVariables=function(e){var t,n,r,i,s,o;return e=lt(e,{top:!0}),t=tt(e,\"isComplex\"),n=this.cacheToCodeFragments(this.from.cache(e,T,t)),this.fromC=n[0],this.fromVar=n[1],r=this.cacheToCodeFragments(this.to.cache(e,T,t)),this.toC=r[0],this.toVar=r[1],(o=tt(e,\"step\"))&&(i=this.cacheToCodeFragments(o.cache(e,T,t)),this.step=i[0],this.stepVar=i[1]),s=[this.fromVar.match(M),this.toVar.match(M)],this.fromNum=s[0],this.toNum=s[1],this.stepVar?this.stepNum=this.stepVar.match(M):void 0},t.prototype.compileNode=function(e){var t,n,r,i,s,o,u,a,f,l,c,h,p,d;return this.fromVar||this.compileVariables(e),e.index?(u=this.fromNum&&this.toNum,s=tt(e,\"index\"),o=tt(e,\"name\"),f=o&&o!==s,d=s+\" = \"+this.fromC,this.toC!==this.toVar&&(d+=\", \"+this.toC),this.step!==this.stepVar&&(d+=\", \"+this.step),l=[s+\" <\"+this.equals,s+\" >\"+this.equals],a=l[0],i=l[1],n=this.stepNum?ht(this.stepNum[0])>0?a+\" \"+this.toVar:i+\" \"+this.toVar:u?(c=[ht(this.fromNum[0]),ht(this.toNum[0])],r=c[0],p=c[1],c,p>=r?a+\" \"+p:i+\" \"+p):(t=this.stepVar?this.stepVar+\" > 0\":this.fromVar+\" <= \"+this.toVar,t+\" ? \"+a+\" \"+this.toVar+\" : \"+i+\" \"+this.toVar),h=this.stepVar?s+\" += \"+this.stepVar:u?f?p>=r?\"++\"+s:\"--\"+s:p>=r?s+\"++\":s+\"--\":f?t+\" ? ++\"+s+\" : --\"+s:t+\" ? \"+s+\"++ : \"+s+\"--\",f&&(d=o+\" = \"+d),f&&(h=o+\" = \"+h),[this.makeCode(d+\"; \"+n+\"; \"+h)]):this.compileArray(e)},t.prototype.compileArray=function(e){var t,n,r,i,s,o,u,a,f,l,c,h,p;return this.fromNum&&this.toNum&&20>=Math.abs(this.fromNum-this.toNum)?(f=function(){h=[];for(var e=l=+this.fromNum,t=+this.toNum;t>=l?t>=e:e>=t;t>=l?e++:e--)h.push(e);return h}.apply(this),this.exclusive&&f.pop(),[this.makeCode(\"[\"+f.join(\", \")+\"]\")]):(o=this.tab+X,s=e.scope.freeVariable(\"i\",{single:!0}),c=e.scope.freeVariable(\"results\"),a=\"\\n\"+o+c+\" = [];\",this.fromNum&&this.toNum?(e.index=s,n=st(this.compileNode(e))):(p=s+\" = \"+this.fromC+(this.toC!==this.toVar?\", \"+this.toC:\"\"),r=this.fromVar+\" <= \"+this.toVar,n=\"var \"+p+\"; \"+r+\" ? \"+s+\" <\"+this.equals+\" \"+this.toVar+\" : \"+s+\" >\"+this.equals+\" \"+this.toVar+\"; \"+r+\" ? \"+s+\"++ : \"+s+\"--\"),u=\"{ \"+c+\".push(\"+s+\"); }\\n\"+o+\"return \"+c+\";\\n\"+e.indent,i=function(e){return null!=e?e.contains(ut):void 0},(i(this.from)||i(this.to))&&(t=\", arguments\"),[this.makeCode(\"(function() {\"+a+\"\\n\"+o+\"for (\"+n+\")\"+u+\"}).apply(this\"+(null!=t?t:\"\")+\")\")])},t}(i),e.Slice=U=function(e){function t(e){this.range=e,t.__super__.constructor.call(this)}return wt(t,e),t.prototype.children=[\"range\"],t.prototype.compileNode=function(e){var t,n,r,i,s,o,u;return s=this.range,o=s.to,r=s.from,i=r&&r.compileToFragments(e,C)||[this.makeCode(\"0\")],o&&(t=o.compileToFragments(e,C),n=st(t),(this.range.exclusive||-1!==+n)&&(u=\", \"+(this.range.exclusive?n:I.test(n)?\"\"+(+n+1):(t=o.compileToFragments(e,S),\"+\"+st(t)+\" + 1 || 9e9\")))),[this.makeCode(\".slice(\"+st(i)+(u||\"\")+\")\")]},t}(i),e.Obj=_=function(e){function n(e,t){this.generated=null!=t?t:!1,this.objects=this.properties=e||[]}return wt(n,e),n.prototype.children=[\"properties\"],n.prototype.compileNode=function(e){var n,i,s,o,u,a,f,c,h,p,d,v,m,g,y,b,w,E,S,x,T;if(S=this.properties,this.generated)for(f=0,m=S.length;m>f;f++)b=S[f],b instanceof Q&&b.error(\"cannot have an implicit value in an implicit object\");for(i=h=0,g=S.length;g>h&&(E=S[i],!((E.variable||E).base instanceof H));i=++h);for(s=S.length>i,u=e.indent+=X,v=this.lastNonComment(this.properties),n=[],s&&(w=e.scope.freeVariable(\"obj\"),n.push(this.makeCode(\"(\\n\"+u+w+\" = \"))),n.push(this.makeCode(\"{\"+(0===S.length||0===i?\"}\":\"\\n\"))),o=d=0,y=S.length;y>d;o=++d)E=S[o],o===i&&(0!==o&&n.push(this.makeCode(\"\\n\"+u+\"}\")),n.push(this.makeCode(\",\\n\"))),c=o===S.length-1||o===i-1?\"\":E===v||E instanceof l?\"\\n\":\",\\n\",a=E instanceof l?\"\":u,s&&i>o&&(a+=X),E instanceof r&&E.variable instanceof Q&&E.variable.hasProperties()&&E.variable.error(\"invalid object key\"),E instanceof Q&&E[\"this\"]&&(E=new r(E.properties[0].name,E,\"object\")),E instanceof l||(i>o?(E instanceof r||(E=new r(E,E,\"object\")),(E.variable.base||E.variable).asKey=!0):(E instanceof r?(p=E.variable,T=E.value):(x=E.base.cache(e),p=x[0],T=x[1]),E=new r(new Q(new L(w),[new t(p)]),T))),a&&n.push(this.makeCode(a)),n.push.apply(n,E.compileToFragments(e,k)),c&&n.push(this.makeCode(c));return s?n.push(this.makeCode(\",\\n\"+u+w+\"\\n\"+this.tab+\")\")):0!==S.length&&n.push(this.makeCode(\"\\n\"+this.tab+\"}\")),this.front&&!s?this.wrapInBraces(n):n},n.prototype.assigns=function(e){var t,n,r,i;for(i=this.properties,t=0,n=i.length;n>t;t++)if(r=i[t],r.assigns(e))return!0;return!1},n}(i),e.Arr=n=function(e){function t(e){this.objects=e||[]}return wt(t,e),t.prototype.children=[\"objects\"],t.prototype.compileNode=function(e){var t,n,r,i,s,o,u;if(!this.objects.length)return[this.makeCode(\"[]\")];if(e.indent+=X,t=z.compileSplattedArray(e,this.objects),t.length)return t;for(t=[],n=function(){var t,n,r,i;for(r=this.objects,i=[],t=0,n=r.length;n>t;t++)u=r[t],i.push(u.compileToFragments(e,T));return i}.call(this),i=s=0,o=n.length;o>s;i=++s)r=n[i],i&&t.push(this.makeCode(\", \")),t.push.apply(t,r);return st(t).indexOf(\"\\n\")>=0?(t.unshift(this.makeCode(\"[\\n\"+e.indent)),t.push(this.makeCode(\"\\n\"+this.tab+\"]\"))):(t.unshift(this.makeCode(\"[\")),t.push(this.makeCode(\"]\"))),t},t.prototype.assigns=function(e){var t,n,r,i;for(i=this.objects,t=0,n=i.length;n>t;t++)if(r=i[t],r.assigns(e))return!0;return!1},t}(i),e.Class=u=function(e){function n(e,t,n){this.variable=e,this.parent=t,this.body=null!=n?n:new s,this.boundFuncs=[],this.body.classBody=!0}return wt(n,e),n.prototype.children=[\"variable\",\"parent\",\"body\"],n.prototype.determineName=function(){var e,n,r;return this.variable?(n=this.variable.properties,r=n[n.length-1],e=r?r instanceof t&&r.name.value:this.variable.base.value,St.call(q,e)>=0&&this.variable.error(\"class variable name may not be \"+e),e&&(e=m.test(e)&&e)):null},n.prototype.setContext=function(e){return this.body.traverseChildren(!1,function(t){return t.classBody?!1:t instanceof L&&\"this\"===t.value?t.value=e:t instanceof a&&t.bound?t.context=e:void 0})},n.prototype.addBoundFunctions=function(e){var n,r,i,s,o;for(o=this.boundFuncs,r=0,i=o.length;i>r;r++)n=o[r],s=(new Q(new L(\"this\"),[new t(n)])).compile(e),this.ctor.body.unshift(new L(s+\" = \"+bt(\"bind\",e)+\"(\"+s+\", this)\"))},n.prototype.addProperties=function(e,n,i){var s,o,u,f,l,c;return c=e.base.properties.slice(0),f=function(){var e;for(e=[];o=c.shift();)o instanceof r&&(u=o.variable.base,delete o.context,l=o.value,\"constructor\"===u.value?(this.ctor&&o.error(\"cannot define more than one constructor in a class\"),l.bound&&o.error(\"cannot define a constructor as a bound function\"),l instanceof a?o=this.ctor=l:(this.externalCtor=i.classScope.freeVariable(\"class\"),o=new r(new L(this.externalCtor),l))):o.variable[\"this\"]?l[\"static\"]=!0:(s=u.isComplex()?new E(u):new t(u),o.variable=new Q(new L(n),[new t(new L(\"prototype\")),s]),l instanceof a&&l.bound&&(this.boundFuncs.push(u),l.bound=!1))),e.push(o);return e}.call(this),et(f)},n.prototype.walkBody=function(e,t){return this.traverseChildren(!1,function(i){return function(o){var u,a,f,l,c,h,p;if(u=!0,o instanceof n)return!1;if(o instanceof s){for(p=a=o.expressions,f=l=0,c=p.length;c>l;f=++l)h=p[f],h instanceof r&&h.variable.looksStatic(e)?h.value[\"static\"]=!0:h instanceof Q&&h.isObject(!0)&&(u=!1,a[f]=i.addProperties(h,e,t));o.expressions=a=it(a)}return u&&!(o instanceof n)}}(this))},n.prototype.hoistDirectivePrologue=function(){var e,t,n;for(t=0,e=this.body.expressions;(n=e[t])&&n instanceof l||n instanceof Q&&n.isString();)++t;return this.directives=e.splice(0,t)},n.prototype.ensureConstructor=function(e){return this.ctor||(this.ctor=new a,this.externalCtor?this.ctor.body.push(new L(this.externalCtor+\".apply(this, arguments)\")):this.parent&&this.ctor.body.push(new L(e+\".__super__.constructor.apply(this, arguments)\")),this.ctor.body.makeReturn(),this.body.expressions.unshift(this.ctor)),this.ctor.ctor=this.ctor.name=e,this.ctor.klass=null,this.ctor.noReturn=!0},n.prototype.compileNode=function(e){var t,n,i,u,f,l,c,h,d;return(u=this.body.jumps())&&u.error(\"Class bodies cannot contain pure statements\"),(n=this.body.contains(ut))&&n.error(\"Class bodies shouldn't reference arguments\"),c=this.determineName()||\"_Class\",c.reserved&&(c=\"_\"+c),l=new L(c),i=new a([],s.wrap([this.body])),t=[],e.classScope=i.makeScope(e.scope),this.hoistDirectivePrologue(),this.setContext(c),this.walkBody(c,e),this.ensureConstructor(c),this.addBoundFunctions(e),this.body.spaced=!0,this.body.expressions.push(l),this.parent&&(d=new L(e.classScope.freeVariable(\"superClass\",{reserve:!1})),this.body.expressions.unshift(new p(l,d)),i.params.push(new P(d)),t.push(this.parent)),(h=this.body.expressions).unshift.apply(h,this.directives),f=new H(new o(i,t)),this.variable&&(f=new r(this.variable,f)),f.compileToFragments(e)},n}(i),e.Assign=r=function(e){function n(e,t,n,r){var i,s,o;this.variable=e,this.value=t,this.context=n,this.param=r&&r.param,this.subpattern=r&&r.subpattern,o=s=this.variable.unwrapAll().value,i=St.call(q,o)>=0,i&&\"object\"!==this.context&&this.variable.error('variable name may not be \"'+s+'\"')}return wt(n,e),n.prototype.children=[\"variable\",\"value\"],n.prototype.isStatement=function(e){return(null!=e?e.level:void 0)===k&&null!=this.context&&St.call(this.context,\"?\")>=0},n.prototype.assigns=function(e){return this[\"object\"===this.context?\"value\":\"variable\"].assigns(e)},n.prototype.unfoldSoak=function(e){return yt(e,this,\"variable\")},n.prototype.compileNode=function(e){var t,n,r,i,s,o,u,f,l,c,h,p,d,v;if(r=this.variable instanceof Q){if(this.variable.isArray()||this.variable.isObject())return this.compilePatternMatch(e);if(this.variable.isSplice())return this.compileSplice(e);if(\"||=\"===(f=this.context)||\"&&=\"===f||\"?=\"===f)return this.compileConditional(e);if(\"**=\"===(l=this.context)||\"//=\"===l||\"%%=\"===l)return this.compileSpecialMath(e)}return this.value instanceof a&&(this.value[\"static\"]?(this.value.klass=this.variable.base,this.value.name=this.variable.properties[0],this.value.variable=this.variable):(null!=(c=this.variable.properties)?c.length:void 0)>=2&&(h=this.variable.properties,o=h.length>=3?xt.call(h,0,i=h.length-2):(i=0,[]),u=h[i++],s=h[i++],\"prototype\"===(null!=(p=u.name)?p.value:void 0)&&(this.value.klass=new Q(this.variable.base,o),this.value.name=s,this.value.variable=this.variable))),this.context||(v=this.variable.unwrapAll(),v.isAssignable()||this.variable.error('\"'+this.variable.compile(e)+'\" cannot be assigned'),(\"function\"==typeof v.hasProperties?v.hasProperties():void 0)||(this.param?e.scope.add(v.value,\"var\"):e.scope.find(v.value))),d=this.value.compileToFragments(e,T),n=this.variable.compileToFragments(e,T),\"object\"===this.context?n.concat(this.makeCode(\": \"),d):(t=n.concat(this.makeCode(\" \"+(this.context||\"=\")+\" \"),d),T>=e.level?t:this.wrapInBraces(t))},n.prototype.compilePatternMatch=function(e){var r,i,s,o,u,a,f,l,c,p,d,v,g,y,b,w,S,x,C,A,O,M,_,D,P,j,F,I;if(D=e.level===k,j=this.value,y=this.variable.base.objects,!(b=y.length))return s=j.compileToFragments(e),e.level>=N?this.wrapInBraces(s):s;if(l=this.variable.isObject(),!D||1!==b||(g=y[0])instanceof z){for(F=j.compileToFragments(e,T),I=st(F),i=[],o=!1,(!m.test(I)||this.variable.assigns(I))&&(i.push([this.makeCode((w=e.scope.freeVariable(\"ref\"))+\" = \")].concat(xt.call(F))),F=[this.makeCode(w)],I=w),a=p=0,d=y.length;d>p;a=++p){if(g=y[a],f=a,l&&(g instanceof n?(A=g,O=A.variable,f=O.base,g=A.value):g.base instanceof H?(M=(new Q(g.unwrapAll())).cacheReference(e),g=M[0],f=M[1]):f=g[\"this\"]?g.properties[0].name:g),!o&&g instanceof z)v=g.name.unwrap().value,g=g.unwrap(),P=b+\" <= \"+I+\".length ? \"+bt(\"slice\",e)+\".call(\"+I+\", \"+a,(_=b-a-1)?(c=e.scope.freeVariable(\"i\",{single:!0}),P+=\", \"+c+\" = \"+I+\".length - \"+_+\") : (\"+c+\" = \"+a+\", [])\"):P+=\") : []\",P=new L(P),o=c+\"++\";else{if(!o&&g instanceof h){(_=b-a-1)&&(1===_?o=I+\".length - 1\":(c=e.scope.freeVariable(\"i\",{single:!0}),P=new L(c+\" = \"+I+\".length - \"+_),o=c+\"++\",i.push(P.compileToFragments(e,T))));continue}v=g.unwrap().value,(g instanceof z||g instanceof h)&&g.error(\"multiple splats/expansions are disallowed in an assignment\"),\"number\"==typeof f?(f=new L(o||f),r=!1):r=l&&m.test(f.unwrap().value||0),P=new Q(new L(I),[new(r?t:E)(f)])}null!=v&&St.call(B,v)>=0&&g.error(\"assignment to a reserved word: \"+g.compile(e)),i.push((new n(g,P,null,{param:this.param,subpattern:!0})).compileToFragments(e,T))}return D||this.subpattern||i.push(F),u=this.joinFragmentArrays(i,\", \"),T>e.level?u:this.wrapInBraces(u)}return g instanceof n?(S=g,x=S.variable,f=x.base,g=S.value):f=l?g[\"this\"]?g.properties[0].name:g:new L(0),r=m.test(f.unwrap().value||0),j=new Q(j),j.properties.push(new(r?t:E)(f)),C=g.unwrap().value,St.call(B,C)>=0&&g.error(\"assignment to a reserved word: \"+g.compile(e)),(new n(g,j,null,{param:this.param})).compileToFragments(e,k)},n.prototype.compileConditional=function(e){var t,r,i,s;return i=this.variable.cacheReference(e),r=i[0],s=i[1],!r.properties.length&&r.base instanceof L&&\"this\"!==r.base.value&&!e.scope.check(r.base.value)&&this.variable.error('the variable \"'+r.base.value+\"\\\" can't be assigned with \"+this.context+\" because it has not been declared before\"),St.call(this.context,\"?\")>=0?(e.isExistentialEquals=!0,(new b(new c(r),s,{type:\"if\"})).addElse(new n(s,this.value,\"=\")).compileToFragments(e)):(t=(new D(this.context.slice(0,-1),r,new n(s,this.value,\"=\"))).compileToFragments(e),T>=e.level?t:this.wrapInBraces(t))},n.prototype.compileSpecialMath=function(e){var t,r,i;return r=this.variable.cacheReference(e),t=r[0],i=r[1],(new n(t,new D(this.context.slice(0,-1),i,this.value))).compileToFragments(e)},n.prototype.compileSplice=function(e){var t,n,r,i,s,o,u,a,f,l,c,h;return u=this.variable.properties.pop().range,r=u.from,l=u.to,n=u.exclusive,o=this.variable.compile(e),r?(a=this.cacheToCodeFragments(r.cache(e,N)),i=a[0],s=a[1]):i=s=\"0\",l?r instanceof Q&&r.isSimpleNumber()&&l instanceof Q&&l.isSimpleNumber()?(l=l.compile(e)-s,n||(l+=1)):(l=l.compile(e,S)+\" - \"+s,n||(l+=\" + 1\")):l=\"9e9\",f=this.value.cache(e,T),c=f[0],h=f[1],t=[].concat(this.makeCode(\"[].splice.apply(\"+o+\", [\"+i+\", \"+l+\"].concat(\"),c,this.makeCode(\")), \"),h),e.level>k?this.wrapInBraces(t):t},n}(i),e.Code=a=function(e){function t(e,t,n){this.params=e||[],this.body=t||new s,this.bound=\"boundfunc\"===n,this.isGenerator=!!this.body.contains(function(e){var t;return e instanceof D&&(\"yield\"===(t=e.operator)||\"yield*\"===t)})}return wt(t,e),t.prototype.children=[\"params\",\"body\"],t.prototype.isStatement=function(){return!!this.ctor},t.prototype.jumps=O,t.prototype.makeScope=function(e){return new R(e,this.body,this)},t.prototype.compileNode=function(e){var i,u,a,f,l,c,p,d,v,m,g,y,w,E,x,T,N,C,k,A,O,M,_,H,B,j,F,I,q,R,U,z,W;if(this.bound&&(null!=(_=e.scope.method)?_.bound:void 0)&&(this.context=e.scope.method.context),this.bound&&!this.context)return this.context=\"_this\",W=new t([new P(new L(this.context))],new s([this])),u=new o(W,[new L(\"this\")]),u.updateLocationDataIfMissing(this.locationData),u.compileNode(e);for(e.scope=tt(e,\"classScope\")||this.makeScope(e.scope),e.scope.shared=tt(e,\"sharedScope\"),e.indent+=X,delete e.bare,delete e.isExistentialEquals,k=[],f=[],H=this.params,c=0,v=H.length;v>c;c++)C=H[c],C instanceof h||e.scope.parameter(C.asReference(e));for(B=this.params,p=0,m=B.length;m>p;p++)if(C=B[p],C.splat||C instanceof h){for(j=this.params,d=0,g=j.length;g>d;d++)N=j[d],N instanceof h||!N.name.value||e.scope.add(N.name.value,\"var\",!0);q=new r(new Q(new n(function(){var t,n,r,i;for(r=this.params,i=[],n=0,t=r.length;t>n;n++)N=r[n],i.push(N.asReference(e));return i}.call(this))),new Q(new L(\"arguments\")));break}for(F=this.params,T=0,y=F.length;y>T;T++)C=F[T],C.isComplex()?(U=M=C.asReference(e),C.value&&(U=new D(\"?\",M,C.value)),f.push(new r(new Q(C.name),U,\"=\",{param:!0}))):(M=C,C.value&&(x=new L(M.name.value+\" == null\"),U=new r(new Q(C.name),C.value,\"=\"),f.push(new b(x,U)))),q||k.push(M);for(z=this.body.isEmpty(),q&&f.unshift(q),f.length&&(I=this.body.expressions).unshift.apply(I,f),l=A=0,w=k.length;w>A;l=++A)N=k[l],k[l]=N.compileToFragments(e),e.scope.parameter(st(k[l]));for(R=[],this.eachParamName(function(e,t){return St.call(R,e)>=0&&t.error(\"multiple parameters named \"+e),R.push(e)}),z||this.noReturn||this.body.makeReturn(),a=\"function\",this.isGenerator&&(a+=\"*\"),this.ctor&&(a+=\" \"+this.name),a+=\"(\",i=[this.makeCode(a)],l=O=0,E=k.length;E>O;l=++O)N=k[l],l&&i.push(this.makeCode(\", \")),i.push.apply(i,N);return i.push(this.makeCode(\") {\")),this.body.isEmpty()||(i=i.concat(this.makeCode(\"\\n\"),this.body.compileWithDeclarations(e),this.makeCode(\"\\n\"+this.tab))),i.push(this.makeCode(\"}\")),this.ctor?[this.makeCode(this.tab)].concat(xt.call(i)):this.front||e.level>=S?this.wrapInBraces(i):i},t.prototype.eachParamName=function(e){var t,n,r,i,s;for(i=this.params,s=[],t=0,n=i.length;n>t;t++)r=i[t],s.push(r.eachName(e));return s},t.prototype.traverseChildren=function(e,n){return e?t.__super__.traverseChildren.call(this,e,n):void 0},t}(i),e.Param=P=function(e){function t(e,t,n){var r,i;this.name=e,this.value=t,this.splat=n,i=r=this.name.unwrapAll().value,St.call(q,i)>=0&&this.name.error('parameter name \"'+r+'\" is not allowed')}return wt(t,e),t.prototype.children=[\"name\",\"value\"],t.prototype.compileToFragments=function(e){return this.name.compileToFragments(e,T)},t.prototype.asReference=function(e){var t,n;return this.reference?this.reference:(n=this.name,n[\"this\"]?(t=n.properties[0].name.value,t.reserved&&(t=\"_\"+t),n=new L(e.scope.freeVariable(t))):n.isComplex()&&(n=new L(e.scope.freeVariable(\"arg\"))),n=new Q(n),this.splat&&(n=new z(n)),n.updateLocationDataIfMissing(this.locationData),this.reference=n)},t.prototype.isComplex=function(){return this.name.isComplex()},t.prototype.eachName=function(e,t){var n,i,s,o,u,a;if(null==t&&(t=this.name),n=function(t){return e(\"@\"+t.properties[0].name.value,t)},t instanceof L)return e(t.value,t);if(t instanceof Q)return n(t);for(a=t.objects,i=0,s=a.length;s>i;i++)u=a[i],u instanceof r?this.eachName(e,u.value.unwrap()):u instanceof z?(o=u.name.unwrap(),e(o.value,o)):u instanceof Q?u.isArray()||u.isObject()?this.eachName(e,u.base):u[\"this\"]?n(u):e(u.base.value,u.base):u instanceof h||u.error(\"illegal parameter \"+u.compile())},t}(i),e.Splat=z=function(e){function t(e){this.name=e.compile?e:new L(e)}return wt(t,e),t.prototype.children=[\"name\"],t.prototype.isAssignable=Y,t.prototype.assigns=function(e){return this.name.assigns(e)},t.prototype.compileToFragments=function(e){return this.name.compileToFragments(e)},t.prototype.unwrap=function(){return this.name},t.compileSplattedArray=function(e,n,r){var i,s,o,u,a,f,l,c,h,p,d;for(l=-1;(d=n[++l])&&!(d instanceof t););if(l>=n.length)return[];if(1===n.length)return d=n[0],a=d.compileToFragments(e,T),r?a:[].concat(d.makeCode(bt(\"slice\",e)+\".call(\"),a,d.makeCode(\")\"));for(i=n.slice(l),f=c=0,p=i.length;p>c;f=++c)d=i[f],o=d.compileToFragments(e,T),i[f]=d instanceof t?[].concat(d.makeCode(bt(\"slice\",e)+\".call(\"),o,d.makeCode(\")\")):[].concat(d.makeCode(\"[\"),o,d.makeCode(\"]\"));return 0===l?(d=n[0],u=d.joinFragmentArrays(i.slice(1),\", \"),i[0].concat(d.makeCode(\".concat(\"),u,d.makeCode(\")\"))):(s=function(){var t,r,i,s;for(i=n.slice(0,l),s=[],t=0,r=i.length;r>t;t++)d=i[t],s.push(d.compileToFragments(e,T));return s}(),s=n[0].joinFragmentArrays(s,\", \"),u=n[l].joinFragmentArrays(i,\", \"),h=n[n.length-1],[].concat(n[0].makeCode(\"[\"),s,n[l].makeCode(\"].concat(\"),u,h.makeCode(\")\")))},t}(i),e.Expansion=h=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return wt(t,e),t.prototype.isComplex=O,t.prototype.compileNode=function(){return this.error(\"Expansion must be used inside a destructuring assignment or parameter list\")},t.prototype.asReference=function(){return this},t.prototype.eachName=function(){},t}(i),e.While=G=function(e){function t(e,t){this.condition=(null!=t?t.invert:void 0)?e.invert():e,this.guard=null!=t?t.guard:void 0}return wt(t,e),t.prototype.children=[\"condition\",\"guard\",\"body\"],t.prototype.isStatement=Y,t.prototype.makeReturn=function(e){return e?t.__super__.makeReturn.apply(this,arguments):(this.returns=!this.jumps({loop:!0}),this)},t.prototype.addBody=function(e){return this.body=e,this},t.prototype.jumps=function(){var e,t,n,r,i;if(e=this.body.expressions,!e.length)return!1;for(t=0,r=e.length;r>t;t++)if(i=e[t],n=i.jumps({loop:!0}))return n;return!1},t.prototype.compileNode=function(e){var t,n,r,i;return e.indent+=X,i=\"\",n=this.body,n.isEmpty()?n=this.makeCode(\"\"):(this.returns&&(n.makeReturn(r=e.scope.freeVariable(\"results\")),i=\"\"+this.tab+r+\" = [];\\n\"),this.guard&&(n.expressions.length>1?n.expressions.unshift(new b((new H(this.guard)).invert(),new L(\"continue\"))):this.guard&&(n=s.wrap([new b(this.guard,n)]))),n=[].concat(this.makeCode(\"\\n\"),n.compileToFragments(e,k),this.makeCode(\"\\n\"+this.tab))),t=[].concat(this.makeCode(i+this.tab+\"while (\"),this.condition.compileToFragments(e,C),this.makeCode(\") {\"),n,this.makeCode(\"}\")),this.returns&&t.push(this.makeCode(\"\\n\"+this.tab+\"return \"+r+\";\")),t},t}(i),e.Op=D=function(e){function n(e,t,n,r){if(\"in\"===e)return new w(t,n);if(\"do\"===e)return this.generateDo(t);if(\"new\"===e){if(t instanceof o&&!t[\"do\"]&&!t.isNew)return t.newInstance();(t instanceof a&&t.bound||t[\"do\"])&&(t=new H(t))}return this.operator=i[e]||e,this.first=t,this.second=n,this.flip=!!r,this}var i,s;return wt(n,e),i={\"==\":\"===\",\"!=\":\"!==\",of:\"in\",yieldfrom:\"yield*\"},s={\"!==\":\"===\",\"===\":\"!==\"},n.prototype.children=[\"first\",\"second\"],n.prototype.isSimpleNumber=O,n.prototype.isYield=function(){var e;return\"yield\"===(e=this.operator)||\"yield*\"===e},n.prototype.isYieldReturn=function(){return this.isYield()&&this.first instanceof F},n.prototype.isUnary=function(){return!this.second},n.prototype.isComplex=function(){var e;return!(this.isUnary()&&(\"+\"===(e=this.operator)||\"-\"===e)&&this.first instanceof Q&&this.first.isSimpleNumber())},n.prototype.isChainable=function(){var e;return\"<\"===(e=this.operator)||\">\"===e||\">=\"===e||\"<=\"===e||\"===\"===e||\"!==\"===e},n.prototype.invert=function(){var e,t,r,i,o;if(this.isChainable()&&this.first.isChainable()){for(e=!0,t=this;t&&t.operator;)e&&(e=t.operator in s),t=t.first;if(!e)return(new H(this)).invert();for(t=this;t&&t.operator;)t.invert=!t.invert,t.operator=s[t.operator],t=t.first;return this}return(i=s[this.operator])?(this.operator=i,this.first.unwrap()instanceof n&&this.first.invert(),this):this.second?(new H(this)).invert():\"!\"===this.operator&&(r=this.first.unwrap())instanceof n&&(\"!\"===(o=r.operator)||\"in\"===o||\"instanceof\"===o)?r:new n(\"!\",this)},n.prototype.unfoldSoak=function(e){var t;return(\"++\"===(t=this.operator)||\"--\"===t||\"delete\"===t)&&yt(e,this,\"first\")},n.prototype.generateDo=function(e){var t,n,i,s,u,f,l,c;for(f=[],n=e instanceof r&&(l=e.value.unwrap())instanceof a?l:e,c=n.params||[],i=0,s=c.length;s>i;i++)u=c[i],u.value?(f.push(u.value),delete u.value):f.push(u);return t=new o(e,f),t[\"do\"]=!0,t},n.prototype.compileNode=function(e){var t,n,r,i,s,o;if(n=this.isChainable()&&this.first.isChainable(),n||(this.first.front=this.front),\"delete\"===this.operator&&e.scope.check(this.first.unwrapAll().value)&&this.error(\"delete operand may not be argument or var\"),(\"--\"===(i=this.operator)||\"++\"===i)&&(s=this.first.unwrapAll().value,St.call(q,s)>=0)&&this.error('cannot increment/decrement \"'+this.first.unwrapAll().value+'\"'),this.isYield())return this.compileYield(e);if(this.isUnary())return this.compileUnary(e);if(n)return this.compileChain(e);switch(this.operator){case\"?\":return this.compileExistence(e);case\"**\":return this.compilePower(e);case\"//\":return this.compileFloorDivision(e);case\"%%\":return this.compileModulo(e);default:return r=this.first.compileToFragments(e,N),o=this.second.compileToFragments(e,N),t=[].concat(r,this.makeCode(\" \"+this.operator+\" \"),o),N>=e.level?t:this.wrapInBraces(t)}},n.prototype.compileChain=function(e){var t,n,r,i;return r=this.first.second.cache(e),this.first.second=r[0],i=r[1],n=this.first.compileToFragments(e,N),t=n.concat(this.makeCode(\" \"+(this.invert?\"&&\":\"||\")+\" \"),i.compileToFragments(e),this.makeCode(\" \"+this.operator+\" \"),this.second.compileToFragments(e,N)),this.wrapInBraces(t)},n.prototype.compileExistence=function(e){var t,n;return this.first.isComplex()?(n=new L(e.scope.freeVariable(\"ref\")),t=new H(new r(n,this.first))):(t=this.first,n=t),(new b(new c(t),n,{type:\"if\"})).addElse(this.second).compileToFragments(e)},n.prototype.compileUnary=function(e){var t,r,i;return r=[],t=this.operator,r.push([this.makeCode(t)]),\"!\"===t&&this.first instanceof c?(this.first.negated=!this.first.negated,this.first.compileToFragments(e)):e.level>=S?(new H(this)).compileToFragments(e):(i=\"+\"===t||\"-\"===t,(\"new\"===t||\"typeof\"===t||\"delete\"===t||i&&this.first instanceof n&&this.first.operator===t)&&r.push([this.makeCode(\" \")]),(i&&this.first instanceof n||\"new\"===t&&this.first.isStatement(e))&&(this.first=new H(this.first)),r.push(this.first.compileToFragments(e,N)),this.flip&&r.reverse(),this.joinFragmentArrays(r,\"\"))},n.prototype.compileYield=function(e){var t,n;return n=[],t=this.operator,null==e.scope.parent&&this.error(\"yield statements must occur within a function generator.\"),St.call(Object.keys(this.first),\"expression\")>=0&&!(this.first instanceof $)?this.isYieldReturn()?n.push(this.first.compileToFragments(e,k)):null!=this.first.expression&&n.push(this.first.expression.compileToFragments(e,N)):(n.push([this.makeCode(\"(\"+t+\" \")]),n.push(this.first.compileToFragments(e,N)),n.push([this.makeCode(\")\")])),this.joinFragmentArrays(n,\"\")},n.prototype.compilePower=function(e){var n;return n=new Q(new L(\"Math\"),[new t(new L(\"pow\"))]),(new o(n,[this.first,this.second])).compileToFragments(e)},n.prototype.compileFloorDivision=function(e){var r,i;return i=new Q(new L(\"Math\"),[new t(new L(\"floor\"))]),r=new n(\"/\",this.first,this.second),(new o(i,[r])).compileToFragments(e)},n.prototype.compileModulo=function(e){var t;return t=new Q(new L(bt(\"modulo\",e))),(new o(t,[this.first,this.second])).compileToFragments(e)},n.prototype.toString=function(e){return n.__super__.toString.call(this,e,this.constructor.name+\" \"+this.operator)},n}(i),e.In=w=function(e){function t(e,t){this.object=e,this.array=t}return wt(t,e),t.prototype.children=[\"object\",\"array\"],t.prototype.invert=A,t.prototype.compileNode=function(e){var t,n,r,i,s;if(this.array instanceof Q&&this.array.isArray()&&this.array.base.objects.length){for(s=this.array.base.objects,n=0,r=s.length;r>n;n++)if(i=s[n],i instanceof z){t=!0;break}if(!t)return this.compileOrTest(e)}return this.compileLoopTest(e)},t.prototype.compileOrTest=function(e){var t,n,r,i,s,o,u,a,f,l,c,h;for(a=this.object.cache(e,N),c=a[0],u=a[1],f=this.negated?[\" !== \",\" && \"]:[\" === \",\" || \"],t=f[0],n=f[1],h=[],l=this.array.base.objects,r=s=0,o=l.length;o>s;r=++s)i=l[r],r&&h.push(this.makeCode(n)),h=h.concat(r?u:c,this.makeCode(t),i.compileToFragments(e,S));return N>e.level?h:this.wrapInBraces(h)},t.prototype.compileLoopTest=function(e){var t,n,r,i;return r=this.object.cache(e,T),i=r[0],n=r[1],t=[].concat(this.makeCode(bt(\"indexOf\",e)+\".call(\"),this.array.compileToFragments(e,T),this.makeCode(\", \"),n,this.makeCode(\") \"+(this.negated?\"< 0\":\">= 0\"))),st(i)===st(n)?t:(t=i.concat(this.makeCode(\", \"),t),T>e.level?t:this.wrapInBraces(t))},t.prototype.toString=function(e){return t.__super__.toString.call(this,e,this.constructor.name+(this.negated?\"!\":\"\"))},t}(i),e.Try=J=function(e){function t(e,t,n,r){this.attempt=e,this.errorVariable=t,this.recovery=n,this.ensure=r}return wt(t,e),t.prototype.children=[\"attempt\",\"recovery\",\"ensure\"],t.prototype.isStatement=Y,t.prototype.jumps=function(e){var t;return this.attempt.jumps(e)||(null!=(t=this.recovery)?t.jumps(e):void 0)},t.prototype.makeReturn=function(e){return this.attempt&&(this.attempt=this.attempt.makeReturn(e)),this.recovery&&(this.recovery=this.recovery.makeReturn(e)),this},t.prototype.compileNode=function(e){var t,n,i,s;return e.indent+=X,s=this.attempt.compileToFragments(e,k),t=this.recovery?(i=new L(\"_error\"),this.errorVariable?this.recovery.unshift(new r(this.errorVariable,i)):void 0,[].concat(this.makeCode(\" catch (\"),i.compileToFragments(e),this.makeCode(\") {\\n\"),this.recovery.compileToFragments(e,k),this.makeCode(\"\\n\"+this.tab+\"}\"))):this.ensure||this.recovery?[]:[this.makeCode(\" catch (_error) {}\")],n=this.ensure?[].concat(this.makeCode(\" finally {\\n\"),this.ensure.compileToFragments(e,k),this.makeCode(\"\\n\"+this.tab+\"}\")):[],[].concat(this.makeCode(this.tab+\"try {\\n\"),s,this.makeCode(\"\\n\"+this.tab+\"}\"),t,n)},t}(i),e.Throw=$=function(e){function t(e){this.expression=e}return wt(t,e),t.prototype.children=[\"expression\"],t.prototype.isStatement=Y,t.prototype.jumps=O,t.prototype.makeReturn=V,t.prototype.compileNode=function(e){return[].concat(this.makeCode(this.tab+\"throw \"),this.expression.compileToFragments(e),this.makeCode(\";\"))},t}(i),e.Existence=c=function(e){function t(e){this.expression=e}return wt(t,e),t.prototype.children=[\"expression\"],t.prototype.invert=A,t.prototype.compileNode=function(e){var t,n,r,i;return this.expression.front=this.front,r=this.expression.compile(e,N),m.test(r)&&!e.scope.check(r)?(i=this.negated?[\"===\",\"||\"]:[\"!==\",\"&&\"],t=i[0],n=i[1],r=\"typeof \"+r+\" \"+t+' \"undefined\" '+n+\" \"+r+\" \"+t+\" null\"):r=r+\" \"+(this.negated?\"==\":\"!=\")+\" null\",[this.makeCode(x>=e.level?r:\"(\"+r+\")\")]},t}(i),e.Parens=H=function(e){function t(e){this.body=e}return wt(t,e),t.prototype.children=[\"body\"],t.prototype.unwrap=function(){return this.body},t.prototype.isComplex=function(){return this.body.isComplex()},t.prototype.compileNode=function(e){var t,n,r;return n=this.body.unwrap(),n instanceof Q&&n.isAtomic()?(n.front=this.front,n.compileToFragments(e)):(r=n.compileToFragments(e,C),t=N>e.level&&(n instanceof D||n instanceof o||n instanceof d&&n.returns),t?r:this.wrapInBraces(r))},t}(i),e.For=d=function(e){function t(e,t){var n;this.source=t.source,this.guard=t.guard,this.step=t.step,this.name=t.name,this.index=t.index,this.body=s.wrap([e]),this.own=!!t.own,this.object=!!t.object,this.object&&(n=[this.index,this.name],this.name=n[0],this.index=n[1]),this.index instanceof Q&&this.index.error(\"index cannot be a pattern matching expression\"),this.range=this.source instanceof Q&&this.source.base instanceof j&&!this.source.properties.length,this.pattern=this.name instanceof Q,this.range&&this.index&&this.index.error(\"indexes do not apply to range loops\"),this.range&&this.pattern&&this.name.error(\"cannot pattern match over range loops\"),this.own&&!this.object&&this.name.error(\"cannot use own with for-in\"),this.returns=!1}return wt(t,e),t.prototype.children=[\"body\",\"source\",\"guard\",\"step\"],t.prototype.compileNode=function(e){var t,n,i,o,u,a,f,l,c,h,p,d,v,g,y,w,E,S,x,N,C,A,O,_,D,P,B,j,I,q,R,U,z,W;return t=s.wrap([this.body]),O=t.expressions,S=O[O.length-1],(null!=S?S.jumps():void 0)instanceof F&&(this.returns=!1),I=this.range?this.source.base:this.source,j=e.scope,this.pattern||(N=this.name&&this.name.compile(e,T)),g=this.index&&this.index.compile(e,T),N&&!this.pattern&&j.find(N),g&&j.find(g),this.returns&&(B=j.freeVariable(\"results\")),y=this.object&&g||j.freeVariable(\"i\",{single:!0}),w=this.range&&N||g||y,E=w!==y?w+\" = \":\"\",this.step&&!this.range&&(_=this.cacheToCodeFragments(this.step.cache(e,T,ot)),q=_[0],U=_[1],R=U.match(M)),this.pattern&&(N=y),W=\"\",p=\"\",f=\"\",d=this.tab+X,this.range?h=I.compileToFragments(lt(e,{index:y,name:N,step:this.step,isComplex:ot})):(z=this.source.compile(e,T),!N&&!this.own||m.test(z)||(f+=\"\"+this.tab+(A=j.freeVariable(\"ref\"))+\" = \"+z+\";\\n\",z=A),N&&!this.pattern&&(C=N+\" = \"+z+\"[\"+w+\"]\"),this.object||(q!==U&&(f+=\"\"+this.tab+q+\";\\n\"),this.step&&R&&(c=0>ht(R[0]))||(x=j.freeVariable(\"len\")),u=\"\"+E+y+\" = 0, \"+x+\" = \"+z+\".length\",a=\"\"+E+y+\" = \"+z+\".length - 1\",i=y+\" < \"+x,o=y+\" >= 0\",this.step?(R?c&&(i=o,u=a):(i=U+\" > 0 ? \"+i+\" : \"+o,u=\"(\"+U+\" > 0 ? (\"+u+\") : \"+a+\")\"),v=y+\" += \"+U):v=\"\"+(w!==y?\"++\"+y:y+\"++\"),h=[this.makeCode(u+\"; \"+i+\"; \"+E+v)])),this.returns&&(D=\"\"+this.tab+B+\" = [];\\n\",P=\"\\n\"+this.tab+\"return \"+B+\";\",t.makeReturn(B)),this.guard&&(t.expressions.length>1?t.expressions.unshift(new b((new H(this.guard)).invert(),new L(\"continue\"))):this.guard&&(t=s.wrap([new b(this.guard,t)]))),this.pattern&&t.expressions.unshift(new r(this.name,new L(z+\"[\"+w+\"]\"))),l=[].concat(this.makeCode(f),this.pluckDirectCall(e,t)),C&&(W=\"\\n\"+d+C+\";\"),this.object&&(h=[this.makeCode(w+\" in \"+z)],this.own&&(p=\"\\n\"+d+\"if (!\"+bt(\"hasProp\",e)+\".call(\"+z+\", \"+w+\")) continue;\")),n=t.compileToFragments(lt(e,{indent:d}),k),n&&n.length>0&&(n=[].concat(this.makeCode(\"\\n\"),n,this.makeCode(\"\\n\"))),[].concat(l,this.makeCode(\"\"+(D||\"\")+this.tab+\"for (\"),h,this.makeCode(\") {\"+p+W),n,this.makeCode(this.tab+\"}\"+(P||\"\")))},t.prototype.pluckDirectCall=function(e,t){var n,i,s,u,f,l,c,h,p,d,v,m,g,y,b,w;for(i=[],p=t.expressions,f=l=0,c=p.length;c>l;f=++l)s=p[f],s=s.unwrapAll(),s instanceof o&&(w=null!=(d=s.variable)?d.unwrapAll():void 0,(w instanceof a||w instanceof Q&&(null!=(v=w.base)?v.unwrapAll():void 0)instanceof a&&1===w.properties.length&&(\"call\"===(m=null!=(g=w.properties[0].name)?g.value:void 0)||\"apply\"===m))&&(u=(null!=(y=w.base)?y.unwrapAll():void 0)||w,h=new L(e.scope.freeVariable(\"fn\")),n=new Q(h),w.base&&(b=[n,w],w.base=b[0],n=b[1]),t.expressions[f]=new o(n,s.args),i=i.concat(this.makeCode(this.tab),(new r(h,u)).compileToFragments(e,k),this.makeCode(\";\\n\"))));return i},t}(G),e.Switch=W=function(e){function t(e,t,n){this.subject=e,this.cases=t,this.otherwise=n}return wt(t,e),t.prototype.children=[\"subject\",\"cases\",\"otherwise\"],t.prototype.isStatement=Y,t.prototype.jumps=function(e){var t,n,r,i,s,o,u,a;for(null==e&&(e={block:!0}),o=this.cases,r=0,s=o.length;s>r;r++)if(u=o[r],n=u[0],t=u[1],i=t.jumps(e))return i;return null!=(a=this.otherwise)?a.jumps(e):void 0},t.prototype.makeReturn=function(e){var t,n,r,i,o;for(i=this.cases,t=0,n=i.length;n>t;t++)r=i[t],r[1].makeReturn(e);return e&&(this.otherwise||(this.otherwise=new s([new L(\"void 0\")]))),null!=(o=this.otherwise)&&o.makeReturn(e),this},t.prototype.compileNode=function(e){var t,n,r,i,s,o,u,a,f,l,c,h,p,d,v,m;for(a=e.indent+X,f=e.indent=a+X,o=[].concat(this.makeCode(this.tab+\"switch (\"),this.subject?this.subject.compileToFragments(e,C):this.makeCode(\"false\"),this.makeCode(\") {\\n\")),d=this.cases,u=l=0,h=d.length;h>l;u=++l){for(v=d[u],i=v[0],t=v[1],m=it([i]),c=0,p=m.length;p>c;c++)r=m[c],this.subject||(r=r.invert()),o=o.concat(this.makeCode(a+\"case \"),r.compileToFragments(e,C),this.makeCode(\":\\n\"));if((n=t.compileToFragments(e,k)).length>0&&(o=o.concat(n,this.makeCode(\"\\n\"))),u===this.cases.length-1&&!this.otherwise)break;s=this.lastNonComment(t.expressions),s instanceof F||s instanceof L&&s.jumps()&&\"debugger\"!==s.value||o.push(r.makeCode(f+\"break;\\n\"))}return this.otherwise&&this.otherwise.expressions.length&&o.push.apply(o,[this.makeCode(a+\"default:\\n\")].concat(xt.call(this.otherwise.compileToFragments(e,k)),[this.makeCode(\"\\n\")])),o.push(this.makeCode(this.tab+\"}\")),o},t}(i),e.If=b=function(e){function t(e,t,n){this.body=t,null==n&&(n={}),this.condition=\"unless\"===n.type?e.invert():e,this.elseBody=null,this.isChain=!1,this.soak=n.soak}return wt(t,e),t.prototype.children=[\"condition\",\"body\",\"elseBody\"],t.prototype.bodyNode=function(){var e;return null!=(e=this.body)?e.unwrap():void 0},t.prototype.elseBodyNode=function(){var e;return null!=(e=this.elseBody)?e.unwrap():void 0},t.prototype.addElse=function(e){return this.isChain?this.elseBodyNode().addElse(e):(this.isChain=e instanceof t,this.elseBody=this.ensureBlock(e),this.elseBody.updateLocationDataIfMissing(e.locationData)),this},t.prototype.isStatement=function(e){var t;return(null!=e?e.level:void 0)===k||this.bodyNode().isStatement(e)||(null!=(t=this.elseBodyNode())?t.isStatement(e):void 0)},t.prototype.jumps=function(e){var t;return this.body.jumps(e)||(null!=(t=this.elseBody)?t.jumps(e):void 0)},t.prototype.compileNode=function(e){return this.isStatement(e)?this.compileStatement(e):this.compileExpression(e)},t.prototype.makeReturn=function(e){return e&&(this.elseBody||(this.elseBody=new s([new L(\"void 0\")]))),this.body&&(this.body=new s([this.body.makeReturn(e)])),this.elseBody&&(this.elseBody=new s([this.elseBody.makeReturn(e)])),this},t.prototype.ensureBlock=function(e){return e instanceof s?e:new s([e])},t.prototype.compileStatement=function(e){var n,r,i,s,o,u,a;return i=tt(e,\"chainChild\"),(o=tt(e,\"isExistentialEquals\"))?(new t(this.condition.invert(),this.elseBodyNode(),{type:\"if\"})).compileToFragments(e):(a=e.indent+X,s=this.condition.compileToFragments(e,C),r=this.ensureBlock(this.body).compileToFragments(lt(e,{indent:a})),u=[].concat(this.makeCode(\"if (\"),s,this.makeCode(\") {\\n\"),r,this.makeCode(\"\\n\"+this.tab+\"}\")),i||u.unshift(this.makeCode(this.tab)),this.elseBody?(n=u.concat(this.makeCode(\" else \")),this.isChain?(e.chainChild=!0,n=n.concat(this.elseBody.unwrap().compileToFragments(e,k))):n=n.concat(this.makeCode(\"{\\n\"),this.elseBody.compileToFragments(lt(e,{indent:a}),k),this.makeCode(\"\\n\"+this.tab+\"}\")),n):u)},t.prototype.compileExpression=function(e){var t,n,r,i;return r=this.condition.compileToFragments(e,x),n=this.bodyNode().compileToFragments(e,T),t=this.elseBodyNode()?this.elseBodyNode().compileToFragments(e,T):[this.makeCode(\"void 0\")],i=r.concat(this.makeCode(\" ? \"),n,this.makeCode(\" : \"),t),e.level>=x?this.wrapInBraces(i):i},t.prototype.unfoldSoak=function(){return this.soak&&this},t}(i),K={extend:function(e){return\"function(child, parent) { for (var key in parent) { if (\"+bt(\"hasProp\",e)+\".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }\"},bind:function(){return\"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }\"},indexOf:function(){return\"[].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }\"},modulo:function(){return\"function(a, b) { return (+a % (b = +b) + b) % b; }\"},hasProp:function(){return\"{}.hasOwnProperty\"},slice:function(){return\"[].slice\"}},k=1,C=2,T=3,x=4,N=5,S=6,X=\"  \",m=/^(?!\\d)[$\\w\\x7f-\\uffff]+$/,I=/^[+-]?\\d+$/,v=/^[+-]?0x[\\da-f]+/i,M=/^[+-]?(?:0x[\\da-f]+|\\d*\\.?\\d+(?:e[+-]?\\d+)?)$/i,y=/^['\"]/,g=/^\\//,bt=function(e,t){var n,r;return r=t.scope.root,e in r.utilities?r.utilities[e]:(n=r.freeVariable(e),r.assign(n,K[e](t)),r.utilities[e]=n)},ct=function(e,t){return e=e.replace(/\\n/g,\"$&\"+t),e.replace(/\\s+$/,\"\")},ht=function(e){return null==e?0:e.match(v)?parseInt(e,16):parseFloat(e)},ut=function(e){return e instanceof L&&\"arguments\"===e.value&&!e.asKey},at=function(e){return e instanceof L&&\"this\"===e.value&&!e.asKey||e instanceof a&&e.bound||e instanceof o&&e.isSuper},ot=function(e){return e.isComplex()||(\"function\"==typeof e.isAssignable?e.isAssignable():void 0)},yt=function(e,t,n){var r;if(r=t[n].unfoldSoak(e))return t[n]=r.body,r.body=new Q(t),r}}.call(this),t.exports}(),_dereq_[\"./sourcemap\"]=function(){var e={},t={exports:e};return function(){var e,n;e=function(){function e(e){this.line=e,this.columns=[]}return e.prototype.add=function(e,t,n){var r,i;return i=t[0],r=t[1],null==n&&(n={}),this.columns[e]&&n.noReplace?void 0:this.columns[e]={line:this.line,column:e,sourceLine:i,sourceColumn:r}},e.prototype.sourceLocation=function(e){for(var t;!((t=this.columns[e])||0>=e);)e--;return t&&[t.sourceLine,t.sourceColumn]},e}(),n=function(){function t(){this.lines=[]}var n,r,i,s;return t.prototype.add=function(t,n,r){var i,s,o,u;return null==r&&(r={}),o=n[0],s=n[1],u=(i=this.lines)[o]||(i[o]=new e(o)),u.add(s,t,r)},t.prototype.sourceLocation=function(e){var t,n,r;for(n=e[0],t=e[1];!((r=this.lines[n])||0>=n);)n--;return r&&r.sourceLocation(t)},t.prototype.generate=function(e,t){var n,r,i,s,o,u,a,f,l,c,h,p,d,v,m,g;for(null==e&&(e={}),null==t&&(t=null),g=0,s=0,u=0,o=0,p=!1,n=\"\",d=this.lines,c=r=0,a=d.length;a>r;c=++r)if(l=d[c])for(v=l.columns,i=0,f=v.length;f>i;i++)if(h=v[i]){for(;h.line>g;)s=0,p=!1,n+=\";\",g++;p&&(n+=\",\",p=!1),n+=this.encodeVlq(h.column-s),s=h.column,n+=this.encodeVlq(0),n+=this.encodeVlq(h.sourceLine-u),u=h.sourceLine,n+=this.encodeVlq(h.sourceColumn-o),o=h.sourceColumn,p=!0}return m={version:3,file:e.generatedFile||\"\",sourceRoot:e.sourceRoot||\"\",sources:e.sourceFiles||[\"\"],names:[],mappings:n},e.inline&&(m.sourcesContent=[t]),JSON.stringify(m,null,2)},i=5,r=1<<i,s=r-1,t.prototype.encodeVlq=function(e){var t,n,o,u;for(t=\"\",o=0>e?1:0,u=(Math.abs(e)<<1)+o;u||!t;)n=u&s,u>>=i,u&&(n|=r),t+=this.encodeBase64(n);return t},n=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",t.prototype.encodeBase64=function(e){return n[e]||function(){throw Error(\"Cannot Base64 encode value: \"+e)}()},t}(),t.exports=n}.call(this),t.exports}(),_dereq_[\"./coffee-script\"]=function(){var e={},t={exports:e};return function(){var t,n,r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y,b={}.hasOwnProperty,w=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};if(u=_dereq_(\"fs\"),g=_dereq_(\"vm\"),d=_dereq_(\"path\"),t=_dereq_(\"./lexer\").Lexer,p=_dereq_(\"./parser\").parser,f=_dereq_(\"./helpers\"),n=_dereq_(\"./sourcemap\"),e.VERSION=\"1.9.3\",e.FILE_EXTENSIONS=[\".coffee\",\".litcoffee\",\".coffee.md\"],e.helpers=f,y=function(e){return function(t,n){var r;null==n&&(n={});try{return e.call(this,t,n)}catch(i){throw(r=i,\"string\"!=typeof t)?r:f.updateSyntaxError(r,t,n.filename)}}},e.compile=i=y(function(e,t){var r,i,s,o,u,a,l,c,d,v,m,g,y,b,w;for(g=f.merge,o=f.extend,t=o({},t),t.sourceMap&&(m=new n),w=h.tokenize(e,t),t.referencedVars=function(){var e,t,n;for(n=[],e=0,t=w.length;t>e;e++)b=w[e],b.variable&&n.push(b[1]);return n}(),a=p.parse(w).compileToFragments(t),s=0,t.header&&(s+=1),t.shiftLine&&(s+=1),i=0,d=\"\",c=0,v=a.length;v>c;c++)u=a[c],t.sourceMap&&(u.locationData&&!/^[;\\s]*$/.test(u.code)&&m.add([u.locationData.first_line,u.locationData.first_column],[s,i],{noReplace:!0}),y=f.count(u.code,\"\\n\"),s+=y,y?i=u.code.length-(u.code.lastIndexOf(\"\\n\")+1):i+=u.code.length),d+=u.code;return t.header&&(l=\"Generated by CoffeeScript \"+this.VERSION,d=\"// \"+l+\"\\n\"+d),t.sourceMap?(r={js:d},r.sourceMap=m,r.v3SourceMap=m.generate(t,e),r):d}),e.tokens=y(function(e,t){return h.tokenize(e,t)}),e.nodes=y(function(e,t){return\"string\"==typeof e?p.parse(h.tokenize(e,t)):p.parse(e)}),e.run=function(e,t){var n,r,s,o;return null==t&&(t={}),s=_dereq_.main,s.filename=process.argv[1]=t.filename?u.realpathSync(t.filename):\".\",s.moduleCache&&(s.moduleCache={}),r=t.filename?d.dirname(u.realpathSync(t.filename)):u.realpathSync(\".\"),s.paths=_dereq_(\"module\")._nodeModulePaths(r),(!f.isCoffee(s.filename)||_dereq_.extensions)&&(n=i(e,t),e=null!=(o=n.js)?o:n),s._compile(e,s.filename)},e.eval=function(e,t){var n,r,s,o,u,a,f,l,c,h,p,v,m,y,w,E,S;if(null==t&&(t={}),e=e.trim()){if(o=null!=(v=g.Script.createContext)?v:g.createContext,a=null!=(m=g.isContext)?m:function(){return t.sandbox instanceof o().constructor},o){if(null!=t.sandbox){if(a(t.sandbox))E=t.sandbox;else{E=o(),y=t.sandbox;for(l in y)b.call(y,l)&&(S=y[l],E[l]=S)}E.global=E.root=E.GLOBAL=E}else E=global;if(E.__filename=t.filename||\"eval\",E.__dirname=d.dirname(E.__filename),E===global&&!E.module&&!E.require){for(n=_dereq_(\"module\"),E.module=r=new n(t.modulename||\"eval\"),E.require=s=function(e){return n._load(e,r,!0)},r.filename=E.__filename,w=Object.getOwnPropertyNames(_dereq_),u=0,c=w.length;c>u;u++)p=w[u],\"paths\"!==p&&(s[p]=_dereq_[p]);s.paths=r.paths=n._nodeModulePaths(process.cwd()),s.resolve=function(e){return n._resolveFilename(e,r)}}}h={};for(l in t)b.call(t,l)&&(S=t[l],h[l]=S);return h.bare=!0,f=i(e,h),E===global?g.runInThisContext(f):g.runInContext(f,E)}},e.register=function(){return _dereq_(\"./register\")},_dereq_.extensions)for(v=this.FILE_EXTENSIONS,l=0,c=v.length;c>l;l++)s=v[l],null==(r=_dereq_.extensions)[s]&&(r[s]=function(){throw Error(\"Use CoffeeScript.register() or require the coffee-script/register module to require \"+s+\" files.\")});e._compileFile=function(e,t){var n,r,s,o;null==t&&(t=!1),s=u.readFileSync(e,\"utf8\"),o=65279===s.charCodeAt(0)?s.substring(1):s;try{n=i(o,{filename:e,sourceMap:t,literate:f.isLiterate(e)})}catch(a){throw r=a,f.updateSyntaxError(r,o,e)}return n},h=new t,p.lexer={lex:function(){var e,t;return t=p.tokens[this.pos++],t?(e=t[0],this.yytext=t[1],this.yylloc=t[2],p.errorToken=t.origin||t,this.yylineno=this.yylloc.first_line):e=\"\",e},setInput:function(e){return p.tokens=e,this.pos=0},upcomingInput:function(){return\"\"}},p.yy=_dereq_(\"./nodes\"),p.yy.parseError=function(e,t){var n,r,i,s,o,u;return o=t.token,s=p.errorToken,u=p.tokens,r=s[0],i=s[1],n=s[2],i=function(){switch(!1){case s!==u[u.length-1]:return\"end of input\";case\"INDENT\"!==r&&\"OUTDENT\"!==r:return\"indentation\";case\"IDENTIFIER\"!==r&&\"NUMBER\"!==r&&\"STRING\"!==r&&\"STRING_START\"!==r&&\"REGEX\"!==r&&\"REGEX_START\"!==r:return r.replace(/_START$/,\"\").toLowerCase();default:return f.nameWhitespaceCharacter(i)}}(),f.throwSyntaxError(\"unexpected \"+i,n)},o=function(e,t){var n,r,i,s,o,u,a,f,l,c,h,p;return s=void 0,i=\"\",e.isNative()?i=\"native\":(e.isEval()?(s=e.getScriptNameOrSourceURL(),s||(i=e.getEvalOrigin()+\", \")):s=e.getFileName(),s||(s=\"<anonymous>\"),f=e.getLineNumber(),r=e.getColumnNumber(),c=t(s,f,r),i=c?s+\":\"+c[0]+\":\"+c[1]:s+\":\"+f+\":\"+r),o=e.getFunctionName(),u=e.isConstructor(),a=!e.isToplevel()&&!u,a?(l=e.getMethodName(),p=e.getTypeName(),o?(h=n=\"\",p&&o.indexOf(p)&&(h=p+\".\"),l&&o.indexOf(\".\"+l)!==o.length-l.length-1&&(n=\" [as \"+l+\"]\"),\"\"+h+o+n+\" (\"+i+\")\"):p+\".\"+(l||\"<anonymous>\")+\" (\"+i+\")\"):u?\"new \"+(o||\"<anonymous>\")+\" (\"+i+\")\":o?o+\" (\"+i+\")\":i},m={},a=function(t){var n,r;if(m[t])return m[t];if(r=null!=d?d.extname(t):void 0,!(0>w.call(e.FILE_EXTENSIONS,r)))return n=e._compileFile(t,!0),m[t]=n.sourceMap},Error.prepareStackTrace=function(t,n){var r,i,s;return s=function(e,t,n){var r,i;return i=a(e),i&&(r=i.sourceLocation([t-1,n-1])),r?[r[0]+1,r[1]+1]:null},i=function(){var t,i,u;for(u=[],t=0,i=n.length;i>t&&(r=n[t],r.getFunction()!==e.run);t++)u.push(\"  at \"+o(r,s));return u}(),\"\"+t+\"\\n\"+i.join(\"\\n\")+\"\\n\"}}.call(this),t.exports}(),_dereq_[\"./browser\"]=function(){var exports={},module={exports:exports};return function(){var CoffeeScript,compile,runScripts,indexOf=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};CoffeeScript=_dereq_(\"./coffee-script\"),CoffeeScript.require=_dereq_,compile=CoffeeScript.compile,CoffeeScript.eval=function(code,options){return null==options&&(options={}),null==options.bare&&(options.bare=!0),eval(compile(code,options))},CoffeeScript.run=function(e,t){return null==t&&(t={}),t.bare=!0,t.shiftLine=!0,Function(compile(e,t))()},\"undefined\"!=typeof window&&null!==window&&(\"undefined\"!=typeof btoa&&null!==btoa&&\"undefined\"!=typeof JSON&&null!==JSON&&\"undefined\"!=typeof unescape&&null!==unescape&&\"undefined\"!=typeof encodeURIComponent&&null!==encodeURIComponent&&(compile=function(e,t){var n,r,i;return null==t&&(t={}),t.sourceMap=!0,t.inline=!0,r=CoffeeScript.compile(e,t),n=r.js,i=r.v3SourceMap,n+\"\\n//# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(i)))+\"\\n//# sourceURL=coffeescript\"}),CoffeeScript.load=function(e,t,n,r){var i;return null==n&&(n={}),null==r&&(r=!1),n.sourceFiles=[e],i=window.ActiveXObject?new window.ActiveXObject(\"Microsoft.XMLHTTP\"):new window.XMLHttpRequest,i.open(\"GET\",e,!0),\"overrideMimeType\"in i&&i.overrideMimeType(\"text/plain\"),i.onreadystatechange=function(){var s,o;if(4===i.readyState){if(0!==(o=i.status)&&200!==o)throw Error(\"Could not load \"+e);if(s=[i.responseText,n],r||CoffeeScript.run.apply(CoffeeScript,s),t)return t(s)}},i.send(null)},runScripts=function(){var e,t,n,r,i,s,o,u,a,f,l;for(l=window.document.getElementsByTagName(\"script\"),t=[\"text/coffeescript\",\"text/literate-coffeescript\"],e=function(){var e,n,r,i;for(i=[],e=0,n=l.length;n>e;e++)a=l[e],r=a.type,indexOf.call(t,r)>=0&&i.push(a);return i}(),s=0,n=function(){var t;return t=e[s],t instanceof Array?(CoffeeScript.run.apply(CoffeeScript,t),s++,n()):void 0},r=function(r,i){var s,o;return s={literate:r.type===t[1]},o=r.src||r.getAttribute(\"data-src\"),o?CoffeeScript.load(o,function(t){return e[i]=t,n()},s,!0):(s.sourceFiles=[\"embedded\"],e[i]=[r.innerHTML,s])},i=o=0,u=e.length;u>o;i=++o)f=e[i],r(f,i);return n()},window.addEventListener?window.addEventListener(\"DOMContentLoaded\",runScripts,!1):window.attachEvent(\"onload\",runScripts))}.call(this),module.exports}(),_dereq_[\"./coffee-script\"]}();\"function\"==typeof define&&define.amd?define(function(){return CoffeeScript}):root.CoffeeScript=CoffeeScript}(this)}),ace.define(\"ace/mode/coffee_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/coffee/coffee\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../worker/mirror\").Mirror,s=e(\"../mode/coffee/coffee\");window.addEventListener=function(){};var o=t.Worker=function(e){i.call(this,e),this.setTimeout(250)};r.inherits(o,i),function(){this.onUpdate=function(){var e=this.doc.getValue(),t=[];try{s.compile(e)}catch(n){var r=n.location;r&&t.push({row:r.first_line,column:r.first_column,endRow:r.last_line,endColumn:r.last_column,text:n.message,type:\"error\"})}this.sender.emit(\"annotate\",t)}}.call(o.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,\"sentinel\",{}),\"sentinel\"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t===\"undefined\"||t===\"boolean\"||t===\"number\"||t===\"string\"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n==\"function\"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r==\"function\"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!=\"function\")throw new TypeError(\"Function.prototype.bind called on incompatible \"+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,\"__defineGetter__\"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,\"XXX\"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)==\"[object Array]\"});var m=Object(\"a\"),g=m[0]!=\"a\"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduce of empty array with no initial value\");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError(\"reduce of empty array with no initial value\")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduceRight of empty array with no initial value\");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError(\"reduceRight of empty array with no initial value\")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!=\"object\")throw new TypeError(\"typeof prototype[\"+typeof t+\"] != 'object'\");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document==\"undefined\"||w(document.createElement(\"div\"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T=\"Property description must be an object: \",N=\"Object.defineProperty called on non-object: \",C=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(t,n,r){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(N+t);if(typeof r!=\"object\"&&typeof r!=\"function\"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,\"value\"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,\"get\")&&l(t,n,r.get),f(r,\"set\")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n==\"function\"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n=\"\";while(f(t,n))n+=\"?\";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!=\"object\"&&typeof e!=\"function\"||e===null)throw new TypeError(\"Object.keys called on a non-object\");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=\"\t\\n\u000b\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\";if(!String.prototype.trim||_.trim()){_=\"[\"+_+\"]\";var D=new RegExp(\"^\"+_+_+\"*\"),P=new RegExp(_+_+\"*$\");String.prototype.trim=function(){return String(this).replace(D,\"\").replace(P,\"\")}}var F=function(e){if(e==null)throw new TypeError(\"can't convert \"+e+\" to object\");return Object(e)}})"
  },
  {
    "path": "lib/src-min-noconflict-old/worker-css.js",
    "content": "\"no use strict\";(function(e){function t(e,t){var n=e,r=\"\";while(n){var i=t[n];if(typeof i==\"string\")return i+r;if(i)return i.location.replace(/\\/*$/,\"/\")+(r||i.main||i.name);if(i===!1)return\"\";var s=n.lastIndexOf(\"/\");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!=\"undefined\"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:\"error\",data:{message:e,data:i.data,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf(\"!\")!==-1){var r=n.split(\"!\");return e.normalizeModule(t,r[0])+\"!\"+e.normalizeModule(t,r[1])}if(n.charAt(0)==\".\"){var i=t.split(\"/\").slice(0,-1).join(\"/\");n=(i?i+\"/\":\"\")+n;while(n.indexOf(\".\")!==-1&&s!=n){var s=n;n=n.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log(\"unable to load \"+i);var o=t(i,e.require.tlns);return o.slice(-3)!=\".js\"&&(o+=\".js\"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!=\"string\"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!=\"function\"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=[\"require\",\"exports\",\"module\"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case\"require\":return i;case\"exports\":return e.exports;case\"module\":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},require.tlns={},e.initBaseUrls=function(t){for(var n in t)require.tlns[n]=t[n]},e.initSender=function(){var n=e.require(\"ace/lib/event_emitter\").EventEmitter,r=e.require(\"ace/lib/oop\"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:\"call\",id:t,data:e})},this.emit=function(e,t){postMessage({type:\"event\",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error(\"Unknown command:\"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),require(\"ace/lib/es5-shim\"),r=e.sender=e.initSender();var s=require(i.module)[i.classname];n=e.main=new s(r)}}})(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split(\"\").reverse().join(\"\")},t.stringRepeat=function(e,t){var n=\"\";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\\s\\s*/,i=/\\s\\s*$/;t.stringTrimLeft=function(e){return e.replace(r,\"\")},t.stringTrimRight=function(e){return e.replace(i,\"\")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]==\"object\"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!=\"object\"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}var r=e.constructor;if(r===RegExp)return e;t=r();for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},t.escapeHTML=function(e){return e.replace(/&/g,\"&#38;\").replace(/\"/g,\"&#34;\").replace(/'/g,\"&#39;\").replace(/</g,\"&#60;\")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e==\"object\"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e==\"object\"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e,t){throw console.log(\"Invalid Delta:\",e),\"Invalid Delta: \"+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!=\"insert\"&&t.action!=\"remove\"&&r(t,\"delta.action must be 'insert' or 'remove'\"),t.lines instanceof Array||r(t,\"delta.lines must be an Array\"),(!t.start||!t.end)&&r(t,\"delta.start/end must be an present\");var n=t.start;i(e,t.start)||r(t,\"delta.start must be contained in document\");var s=t.end;t.action==\"remove\"&&!i(e,s)&&r(t,\"delta.end must contained in document for 'remove' actions\");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,\"delta.range must match delta lines\")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||\"\";switch(t.action){case\"insert\":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case\"remove\":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!=\"object\"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?\"unshift\":\"push\"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n==\"undefined\"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action==\"insert\",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal(\"change\",{old:i,value:r})},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./apply_delta\").applyDelta,s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=function(e){this.$lines=[\"\"],e.length===0?this.$lines=[\"\"]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},\"aaa\".split(/a/).length===0?this.$split=function(e){return e.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:this.$split=function(e){return e.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=t?t[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal(\"changeNewLineMode\")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==\"\\r\\n\"||e==\"\\r\"||e==\"\\n\"},this.getLine=function(e){return this.$lines[e]||\"\"},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||\"\").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(e,[\"\",\"\"])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:\"insert\",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([\"\"]),n=0):(t=[\"\"].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:\"insert\",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:\"remove\",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:\"remove\",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:\"remove\",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action==\"insert\";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal(\"change\",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(\"\"),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action==\"insert\"?\"remove\":\"insert\",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),ace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=e(\"../document\").Document,s=e(\"../lib/lang\"),o=t.Mirror=function(e){this.sender=e;var t=this.doc=new i(\"\"),n=this.deferredUpdate=s.delayedCall(this.onUpdate.bind(this)),r=this;e.on(\"change\",function(e){var i=e.data;if(i[0].start)t.applyDeltas(i);else for(var s=0;s<i.length;s+=2){if(Array.isArray(i[s+1]))var o={action:\"insert\",start:i[s],lines:i[s+1]};else var o={action:\"remove\",start:i[s],end:i[s+1]};t.applyDelta(o,!0)}if(r.$timeout)return n.schedule(r.$timeout);r.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),ace.define(\"ace/mode/css/csslint\",[\"require\",\"exports\",\"module\"],function(require,exports,module){function objectToString(e){return Object.prototype.toString.call(e)}function clone(e,t,n,r){function u(e,n){if(e===null)return null;if(n==0)return e;var a;if(typeof e!=\"object\")return e;if(util.isArray(e))a=[];else if(util.isRegExp(e))a=new RegExp(e.source,util.getRegExpFlags(e)),e.lastIndex&&(a.lastIndex=e.lastIndex);else if(util.isDate(e))a=new Date(e.getTime());else{if(o&&Buffer.isBuffer(e))return a=new Buffer(e.length),e.copy(a),a;typeof r==\"undefined\"?a=Object.create(Object.getPrototypeOf(e)):a=Object.create(r)}if(t){var f=i.indexOf(e);if(f!=-1)return s[f];i.push(e),s.push(a)}for(var l in e)a[l]=u(e[l],n-1);return a}var i=[],s=[],o=typeof Buffer!=\"undefined\";return typeof t==\"undefined\"&&(t=!0),typeof n==\"undefined\"&&(n=Infinity),u(e,n)}function Reporter(e,t){this.messages=[],this.stats=[],this.lines=e,this.ruleset=t}var parserlib={};(function(){function e(){this._listeners={}}function t(e){this._input=e.replace(/\\n\\r?/g,\"\\n\"),this._line=1,this._col=1,this._cursor=0}function n(e,t,n){this.col=n,this.line=t,this.message=e}function r(e,t,n,r){this.col=n,this.line=t,this.text=e,this.type=r}function i(e,n){this._reader=e?new t(e.toString()):null,this._token=null,this._tokenData=n,this._lt=[],this._ltIndex=0,this._ltIndexCache=[]}e.prototype={constructor:e,addListener:function(e,t){this._listeners[e]||(this._listeners[e]=[]),this._listeners[e].push(t)},fire:function(e){typeof e==\"string\"&&(e={type:e}),typeof e.target!=\"undefined\"&&(e.target=this);if(typeof e.type==\"undefined\")throw new Error(\"Event object missing 'type' property.\");if(this._listeners[e.type]){var t=this._listeners[e.type].concat();for(var n=0,r=t.length;n<r;n++)t[n].call(this,e)}},removeListener:function(e,t){if(this._listeners[e]){var n=this._listeners[e];for(var r=0,i=n.length;r<i;r++)if(n[r]===t){n.splice(r,1);break}}}},t.prototype={constructor:t,getCol:function(){return this._col},getLine:function(){return this._line},eof:function(){return this._cursor==this._input.length},peek:function(e){var t=null;return e=typeof e==\"undefined\"?1:e,this._cursor<this._input.length&&(t=this._input.charAt(this._cursor+e-1)),t},read:function(){var e=null;return this._cursor<this._input.length&&(this._input.charAt(this._cursor)==\"\\n\"?(this._line++,this._col=1):this._col++,e=this._input.charAt(this._cursor++)),e},mark:function(){this._bookmark={cursor:this._cursor,line:this._line,col:this._col}},reset:function(){this._bookmark&&(this._cursor=this._bookmark.cursor,this._line=this._bookmark.line,this._col=this._bookmark.col,delete this._bookmark)},readTo:function(e){var t=\"\",n;while(t.length<e.length||t.lastIndexOf(e)!=t.length-e.length){n=this.read();if(!n)throw new Error('Expected \"'+e+'\" at line '+this._line+\", col \"+this._col+\".\");t+=n}return t},readWhile:function(e){var t=\"\",n=this.read();while(n!==null&&e(n))t+=n,n=this.read();return t},readMatch:function(e){var t=this._input.substring(this._cursor),n=null;return typeof e==\"string\"?t.indexOf(e)===0&&(n=this.readCount(e.length)):e instanceof RegExp&&e.test(t)&&(n=this.readCount(RegExp.lastMatch.length)),n},readCount:function(e){var t=\"\";while(e--)t+=this.read();return t}},n.prototype=new Error,r.fromToken=function(e){return new r(e.value,e.startLine,e.startCol)},r.prototype={constructor:r,valueOf:function(){return this.text},toString:function(){return this.text}},i.createTokenData=function(e){var t=[],n={},r=e.concat([]),i=0,s=r.length+1;r.UNKNOWN=-1,r.unshift({name:\"EOF\"});for(;i<s;i++)t.push(r[i].name),r[r[i].name]=i,r[i].text&&(n[r[i].text]=i);return r.name=function(e){return t[e]},r.type=function(e){return n[e]},r},i.prototype={constructor:i,match:function(e,t){e instanceof Array||(e=[e]);var n=this.get(t),r=0,i=e.length;while(r<i)if(n==e[r++])return!0;return this.unget(),!1},mustMatch:function(e,t){var r;e instanceof Array||(e=[e]);if(!this.match.apply(this,arguments))throw r=this.LT(1),new n(\"Expected \"+this._tokenData[e[0]].name+\" at line \"+r.startLine+\", col \"+r.startCol+\".\",r.startLine,r.startCol)},advance:function(e,t){while(this.LA(0)!==0&&!this.match(e,t))this.get();return this.LA(0)},get:function(e){var t=this._tokenData,n=this._reader,r,i=0,s=t.length,o=!1,u,a;if(this._lt.length&&this._ltIndex>=0&&this._ltIndex<this._lt.length){i++,this._token=this._lt[this._ltIndex++],a=t[this._token.type];while(a.channel!==undefined&&e!==a.channel&&this._ltIndex<this._lt.length)this._token=this._lt[this._ltIndex++],a=t[this._token.type],i++;if((a.channel===undefined||e===a.channel)&&this._ltIndex<=this._lt.length)return this._ltIndexCache.push(i),this._token.type}return u=this._getToken(),u.type>-1&&!t[u.type].hide&&(u.channel=t[u.type].channel,this._token=u,this._lt.push(u),this._ltIndexCache.push(this._lt.length-this._ltIndex+i),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),a=t[u.type],a&&(a.hide||a.channel!==undefined&&e!==a.channel)?this.get(e):u.type},LA:function(e){var t=e,n;if(e>0){if(e>5)throw new Error(\"Too much lookahead.\");while(t)n=this.get(),t--;while(t<e)this.unget(),t++}else if(e<0){if(!this._lt[this._ltIndex+e])throw new Error(\"Too much lookbehind.\");n=this._lt[this._ltIndex+e].type}else n=this._token.type;return n},LT:function(e){return this.LA(e),this._lt[this._ltIndex+e-1]},peek:function(){return this.LA(1)},token:function(){return this._token},tokenName:function(e){return e<0||e>this._tokenData.length?\"UNKNOWN_TOKEN\":this._tokenData[e].name},tokenType:function(e){return this._tokenData[e]||-1},unget:function(){if(!this._ltIndexCache.length)throw new Error(\"Too much lookahead.\");this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1]}},parserlib.util={StringReader:t,SyntaxError:n,SyntaxUnit:r,EventTarget:e,TokenStreamBase:i}})(),function(){function Combinator(e,t,n){SyntaxUnit.call(this,e,t,n,Parser.COMBINATOR_TYPE),this.type=\"unknown\",/^\\s+$/.test(e)?this.type=\"descendant\":e==\">\"?this.type=\"child\":e==\"+\"?this.type=\"adjacent-sibling\":e==\"~\"&&(this.type=\"sibling\")}function MediaFeature(e,t){SyntaxUnit.call(this,\"(\"+e+(t!==null?\":\"+t:\"\")+\")\",e.startLine,e.startCol,Parser.MEDIA_FEATURE_TYPE),this.name=e,this.value=t}function MediaQuery(e,t,n,r,i){SyntaxUnit.call(this,(e?e+\" \":\"\")+(t?t:\"\")+(t&&n.length>0?\" and \":\"\")+n.join(\" and \"),r,i,Parser.MEDIA_QUERY_TYPE),this.modifier=e,this.mediaType=t,this.features=n}function Parser(e){EventTarget.call(this),this.options=e||{},this._tokenStream=null}function PropertyName(e,t,n,r){SyntaxUnit.call(this,e,n,r,Parser.PROPERTY_NAME_TYPE),this.hack=t}function PropertyValue(e,t,n){SyntaxUnit.call(this,e.join(\" \"),t,n,Parser.PROPERTY_VALUE_TYPE),this.parts=e}function PropertyValueIterator(e){this._i=0,this._parts=e.parts,this._marks=[],this.value=e}function PropertyValuePart(text,line,col){SyntaxUnit.call(this,text,line,col,Parser.PROPERTY_VALUE_PART_TYPE),this.type=\"unknown\";var temp;if(/^([+\\-]?[\\d\\.]+)([a-z]+)$/i.test(text)){this.type=\"dimension\",this.value=+RegExp.$1,this.units=RegExp.$2;switch(this.units.toLowerCase()){case\"em\":case\"rem\":case\"ex\":case\"px\":case\"cm\":case\"mm\":case\"in\":case\"pt\":case\"pc\":case\"ch\":case\"vh\":case\"vw\":case\"vmax\":case\"vmin\":this.type=\"length\";break;case\"deg\":case\"rad\":case\"grad\":this.type=\"angle\";break;case\"ms\":case\"s\":this.type=\"time\";break;case\"hz\":case\"khz\":this.type=\"frequency\";break;case\"dpi\":case\"dpcm\":this.type=\"resolution\"}}else/^([+\\-]?[\\d\\.]+)%$/i.test(text)?(this.type=\"percentage\",this.value=+RegExp.$1):/^([+\\-]?\\d+)$/i.test(text)?(this.type=\"integer\",this.value=+RegExp.$1):/^([+\\-]?[\\d\\.]+)$/i.test(text)?(this.type=\"number\",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type=\"color\",temp=RegExp.$1,temp.length==3?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)/i.test(text)?(this.type=\"color\",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\\(\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*\\)/i.test(text)?(this.type=\"color\",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100):/^rgba\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d\\.]+)\\s*\\)/i.test(text)?(this.type=\"color\",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3,this.alpha=+RegExp.$4):/^rgba\\(\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*,\\s*([\\d\\.]+)\\s*\\)/i.test(text)?(this.type=\"color\",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100,this.alpha=+RegExp.$4):/^hsl\\(\\s*(\\d+)\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*\\)/i.test(text)?(this.type=\"color\",this.hue=+RegExp.$1,this.saturation=+RegExp.$2/100,this.lightness=+RegExp.$3/100):/^hsla\\(\\s*(\\d+)\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*,\\s*([\\d\\.]+)\\s*\\)/i.test(text)?(this.type=\"color\",this.hue=+RegExp.$1,this.saturation=+RegExp.$2/100,this.lightness=+RegExp.$3/100,this.alpha=+RegExp.$4):/^url\\([\"']?([^\\)\"']+)[\"']?\\)/i.test(text)?(this.type=\"uri\",this.uri=RegExp.$1):/^([^\\(]+)\\(/i.test(text)?(this.type=\"function\",this.name=RegExp.$1,this.value=text):/^[\"'][^\"']*[\"']/.test(text)?(this.type=\"string\",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type=\"color\",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\\,\\/]$/.test(text)?(this.type=\"operator\",this.value=text):/^[a-z\\-_\\u0080-\\uFFFF][a-z0-9\\-_\\u0080-\\uFFFF]*$/i.test(text)&&(this.type=\"identifier\",this.value=text)}function Selector(e,t,n){SyntaxUnit.call(this,e.join(\" \"),t,n,Parser.SELECTOR_TYPE),this.parts=e,this.specificity=Specificity.calculate(this)}function SelectorPart(e,t,n,r,i){SyntaxUnit.call(this,n,r,i,Parser.SELECTOR_PART_TYPE),this.elementName=e,this.modifiers=t}function SelectorSubPart(e,t,n,r){SyntaxUnit.call(this,e,n,r,Parser.SELECTOR_SUB_PART_TYPE),this.type=t,this.args=[]}function Specificity(e,t,n,r){this.a=e,this.b=t,this.c=n,this.d=r}function isHexDigit(e){return e!==null&&h.test(e)}function isDigit(e){return e!==null&&/\\d/.test(e)}function isWhitespace(e){return e!==null&&/\\s/.test(e)}function isNewLine(e){return e!==null&&nl.test(e)}function isNameStart(e){return e!==null&&/[a-z_\\u0080-\\uFFFF\\\\]/i.test(e)}function isNameChar(e){return e!==null&&(isNameStart(e)||/[0-9\\-\\\\]/.test(e))}function isIdentStart(e){return e!==null&&(isNameStart(e)||/\\-\\\\/.test(e))}function mix(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function TokenStream(e){TokenStreamBase.call(this,e,Tokens)}function ValidationError(e,t,n){this.col=n,this.line=t,this.message=e}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:\"#f0f8ff\",antiquewhite:\"#faebd7\",aqua:\"#00ffff\",aquamarine:\"#7fffd4\",azure:\"#f0ffff\",beige:\"#f5f5dc\",bisque:\"#ffe4c4\",black:\"#000000\",blanchedalmond:\"#ffebcd\",blue:\"#0000ff\",blueviolet:\"#8a2be2\",brown:\"#a52a2a\",burlywood:\"#deb887\",cadetblue:\"#5f9ea0\",chartreuse:\"#7fff00\",chocolate:\"#d2691e\",coral:\"#ff7f50\",cornflowerblue:\"#6495ed\",cornsilk:\"#fff8dc\",crimson:\"#dc143c\",cyan:\"#00ffff\",darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",darkgray:\"#a9a9a9\",darkgrey:\"#a9a9a9\",darkgreen:\"#006400\",darkkhaki:\"#bdb76b\",darkmagenta:\"#8b008b\",darkolivegreen:\"#556b2f\",darkorange:\"#ff8c00\",darkorchid:\"#9932cc\",darkred:\"#8b0000\",darksalmon:\"#e9967a\",darkseagreen:\"#8fbc8f\",darkslateblue:\"#483d8b\",darkslategray:\"#2f4f4f\",darkslategrey:\"#2f4f4f\",darkturquoise:\"#00ced1\",darkviolet:\"#9400d3\",deeppink:\"#ff1493\",deepskyblue:\"#00bfff\",dimgray:\"#696969\",dimgrey:\"#696969\",dodgerblue:\"#1e90ff\",firebrick:\"#b22222\",floralwhite:\"#fffaf0\",forestgreen:\"#228b22\",fuchsia:\"#ff00ff\",gainsboro:\"#dcdcdc\",ghostwhite:\"#f8f8ff\",gold:\"#ffd700\",goldenrod:\"#daa520\",gray:\"#808080\",grey:\"#808080\",green:\"#008000\",greenyellow:\"#adff2f\",honeydew:\"#f0fff0\",hotpink:\"#ff69b4\",indianred:\"#cd5c5c\",indigo:\"#4b0082\",ivory:\"#fffff0\",khaki:\"#f0e68c\",lavender:\"#e6e6fa\",lavenderblush:\"#fff0f5\",lawngreen:\"#7cfc00\",lemonchiffon:\"#fffacd\",lightblue:\"#add8e6\",lightcoral:\"#f08080\",lightcyan:\"#e0ffff\",lightgoldenrodyellow:\"#fafad2\",lightgray:\"#d3d3d3\",lightgrey:\"#d3d3d3\",lightgreen:\"#90ee90\",lightpink:\"#ffb6c1\",lightsalmon:\"#ffa07a\",lightseagreen:\"#20b2aa\",lightskyblue:\"#87cefa\",lightslategray:\"#778899\",lightslategrey:\"#778899\",lightsteelblue:\"#b0c4de\",lightyellow:\"#ffffe0\",lime:\"#00ff00\",limegreen:\"#32cd32\",linen:\"#faf0e6\",magenta:\"#ff00ff\",maroon:\"#800000\",mediumaquamarine:\"#66cdaa\",mediumblue:\"#0000cd\",mediumorchid:\"#ba55d3\",mediumpurple:\"#9370d8\",mediumseagreen:\"#3cb371\",mediumslateblue:\"#7b68ee\",mediumspringgreen:\"#00fa9a\",mediumturquoise:\"#48d1cc\",mediumvioletred:\"#c71585\",midnightblue:\"#191970\",mintcream:\"#f5fffa\",mistyrose:\"#ffe4e1\",moccasin:\"#ffe4b5\",navajowhite:\"#ffdead\",navy:\"#000080\",oldlace:\"#fdf5e6\",olive:\"#808000\",olivedrab:\"#6b8e23\",orange:\"#ffa500\",orangered:\"#ff4500\",orchid:\"#da70d6\",palegoldenrod:\"#eee8aa\",palegreen:\"#98fb98\",paleturquoise:\"#afeeee\",palevioletred:\"#d87093\",papayawhip:\"#ffefd5\",peachpuff:\"#ffdab9\",peru:\"#cd853f\",pink:\"#ffc0cb\",plum:\"#dda0dd\",powderblue:\"#b0e0e6\",purple:\"#800080\",red:\"#ff0000\",rosybrown:\"#bc8f8f\",royalblue:\"#4169e1\",saddlebrown:\"#8b4513\",salmon:\"#fa8072\",sandybrown:\"#f4a460\",seagreen:\"#2e8b57\",seashell:\"#fff5ee\",sienna:\"#a0522d\",silver:\"#c0c0c0\",skyblue:\"#87ceeb\",slateblue:\"#6a5acd\",slategray:\"#708090\",slategrey:\"#708090\",snow:\"#fffafa\",springgreen:\"#00ff7f\",steelblue:\"#4682b4\",tan:\"#d2b48c\",teal:\"#008080\",thistle:\"#d8bfd8\",tomato:\"#ff6347\",turquoise:\"#40e0d0\",violet:\"#ee82ee\",wheat:\"#f5deb3\",white:\"#ffffff\",whitesmoke:\"#f5f5f5\",yellow:\"#ffff00\",yellowgreen:\"#9acd32\",activeBorder:\"Active window border.\",activecaption:\"Active window caption.\",appworkspace:\"Background color of multiple document interface.\",background:\"Desktop background.\",buttonface:\"The face background color for 3-D elements that appear 3-D due to one layer of surrounding border.\",buttonhighlight:\"The color of the border facing the light source for 3-D elements that appear 3-D due to one layer of surrounding border.\",buttonshadow:\"The color of the border away from the light source for 3-D elements that appear 3-D due to one layer of surrounding border.\",buttontext:\"Text on push buttons.\",captiontext:\"Text in caption, size box, and scrollbar arrow box.\",graytext:\"Grayed (disabled) text. This color is set to #000 if the current display driver does not support a solid gray color.\",greytext:\"Greyed (disabled) text. This color is set to #000 if the current display driver does not support a solid grey color.\",highlight:\"Item(s) selected in a control.\",highlighttext:\"Text of item(s) selected in a control.\",inactiveborder:\"Inactive window border.\",inactivecaption:\"Inactive window caption.\",inactivecaptiontext:\"Color of text in an inactive caption.\",infobackground:\"Background color for tooltip controls.\",infotext:\"Text color for tooltip controls.\",menu:\"Menu background.\",menutext:\"Text in menus.\",scrollbar:\"Scroll bar gray area.\",threeddarkshadow:\"The color of the darker (generally outer) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.\",threedface:\"The face background color for 3-D elements that appear 3-D due to two concentric layers of surrounding border.\",threedhighlight:\"The color of the lighter (generally outer) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.\",threedlightshadow:\"The color of the darker (generally inner) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.\",threedshadow:\"The color of the lighter (generally inner) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.\",window:\"Window background.\",windowframe:\"Window frame.\",windowtext:\"Text in windows.\"};Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator,MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.DEFAULT_TYPE=0,Parser.COMBINATOR_TYPE=1,Parser.MEDIA_FEATURE_TYPE=2,Parser.MEDIA_QUERY_TYPE=3,Parser.PROPERTY_NAME_TYPE=4,Parser.PROPERTY_VALUE_TYPE=5,Parser.PROPERTY_VALUE_PART_TYPE=6,Parser.SELECTOR_TYPE=7,Parser.SELECTOR_PART_TYPE=8,Parser.SELECTOR_SUB_PART_TYPE=9,Parser.prototype=function(){var e=new EventTarget,t,n={constructor:Parser,DEFAULT_TYPE:0,COMBINATOR_TYPE:1,MEDIA_FEATURE_TYPE:2,MEDIA_QUERY_TYPE:3,PROPERTY_NAME_TYPE:4,PROPERTY_VALUE_TYPE:5,PROPERTY_VALUE_PART_TYPE:6,SELECTOR_TYPE:7,SELECTOR_PART_TYPE:8,SELECTOR_SUB_PART_TYPE:9,_stylesheet:function(){var e=this._tokenStream,t=null,n,r,i;this.fire(\"startstylesheet\"),this._charset(),this._skipCruft();while(e.peek()==Tokens.IMPORT_SYM)this._import(),this._skipCruft();while(e.peek()==Tokens.NAMESPACE_SYM)this._namespace(),this._skipCruft();i=e.peek();while(i>Tokens.EOF){try{switch(i){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.VIEWPORT_SYM:this._viewport(),this._skipCruft();break;case Tokens.UNKNOWN_SYM:e.get();if(!!this.options.strict)throw new SyntaxError(\"Unknown @ rule.\",e.LT(0).startLine,e.LT(0).startCol);this.fire({type:\"error\",error:null,message:\"Unknown @ rule: \"+e.LT(0).value+\".\",line:e.LT(0).startLine,col:e.LT(0).startCol}),n=0;while(e.advance([Tokens.LBRACE,Tokens.RBRACE])==Tokens.LBRACE)n++;while(n)e.advance([Tokens.RBRACE]),n--;break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset())switch(i){case Tokens.CHARSET_SYM:throw r=e.LT(1),this._charset(!1),new SyntaxError(\"@charset not allowed here.\",r.startLine,r.startCol);case Tokens.IMPORT_SYM:throw r=e.LT(1),this._import(!1),new SyntaxError(\"@import not allowed here.\",r.startLine,r.startCol);case Tokens.NAMESPACE_SYM:throw r=e.LT(1),this._namespace(!1),new SyntaxError(\"@namespace not allowed here.\",r.startLine,r.startCol);default:e.get(),this._unexpectedToken(e.token())}}}catch(s){if(!(s instanceof SyntaxError&&!this.options.strict))throw s;this.fire({type:\"error\",error:s,message:s.message,line:s.line,col:s.col})}i=e.peek()}i!=Tokens.EOF&&this._unexpectedToken(e.token()),this.fire(\"endstylesheet\")},_charset:function(e){var t=this._tokenStream,n,r,i,s;t.match(Tokens.CHARSET_SYM)&&(i=t.token().startLine,s=t.token().startCol,this._readWhitespace(),t.mustMatch(Tokens.STRING),r=t.token(),n=r.value,this._readWhitespace(),t.mustMatch(Tokens.SEMICOLON),e!==!1&&this.fire({type:\"charset\",charset:n,line:i,col:s}))},_import:function(e){var t=this._tokenStream,n,r,i,s=[];t.mustMatch(Tokens.IMPORT_SYM),i=t.token(),this._readWhitespace(),t.mustMatch([Tokens.STRING,Tokens.URI]),r=t.token().value.replace(/^(?:url\\()?[\"']?([^\"']+?)[\"']?\\)?$/,\"$1\"),this._readWhitespace(),s=this._media_query_list(),t.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),e!==!1&&this.fire({type:\"import\",uri:r,media:s,line:i.startLine,col:i.startCol})},_namespace:function(e){var t=this._tokenStream,n,r,i,s;t.mustMatch(Tokens.NAMESPACE_SYM),n=t.token().startLine,r=t.token().startCol,this._readWhitespace(),t.match(Tokens.IDENT)&&(i=t.token().value,this._readWhitespace()),t.mustMatch([Tokens.STRING,Tokens.URI]),s=t.token().value.replace(/(?:url\\()?[\"']([^\"']+)[\"']\\)?/,\"$1\"),this._readWhitespace(),t.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),e!==!1&&this.fire({type:\"namespace\",prefix:i,uri:s,line:n,col:r})},_media:function(){var e=this._tokenStream,t,n,r;e.mustMatch(Tokens.MEDIA_SYM),t=e.token().startLine,n=e.token().startCol,this._readWhitespace(),r=this._media_query_list(),e.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:\"startmedia\",media:r,line:t,col:n});for(;;)if(e.peek()==Tokens.PAGE_SYM)this._page();else if(e.peek()==Tokens.FONT_FACE_SYM)this._font_face();else if(e.peek()==Tokens.VIEWPORT_SYM)this._viewport();else if(!this._ruleset())break;e.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:\"endmedia\",media:r,line:t,col:n})},_media_query_list:function(){var e=this._tokenStream,t=[];this._readWhitespace(),(e.peek()==Tokens.IDENT||e.peek()==Tokens.LPAREN)&&t.push(this._media_query());while(e.match(Tokens.COMMA))this._readWhitespace(),t.push(this._media_query());return t},_media_query:function(){var e=this._tokenStream,t=null,n=null,r=null,i=[];e.match(Tokens.IDENT)&&(n=e.token().value.toLowerCase(),n!=\"only\"&&n!=\"not\"?(e.unget(),n=null):r=e.token()),this._readWhitespace(),e.peek()==Tokens.IDENT?(t=this._media_type(),r===null&&(r=e.token())):e.peek()==Tokens.LPAREN&&(r===null&&(r=e.LT(1)),i.push(this._media_expression()));if(t===null&&i.length===0)return null;this._readWhitespace();while(e.match(Tokens.IDENT))e.token().value.toLowerCase()!=\"and\"&&this._unexpectedToken(e.token()),this._readWhitespace(),i.push(this._media_expression());return new MediaQuery(n,t,i,r.startLine,r.startCol)},_media_type:function(){return this._media_feature()},_media_expression:function(){var e=this._tokenStream,t=null,n,r=null;return e.mustMatch(Tokens.LPAREN),t=this._media_feature(),this._readWhitespace(),e.match(Tokens.COLON)&&(this._readWhitespace(),n=e.LT(1),r=this._expression()),e.mustMatch(Tokens.RPAREN),this._readWhitespace(),new MediaFeature(t,r?new SyntaxUnit(r,n.startLine,n.startCol):null)},_media_feature:function(){var e=this._tokenStream;return e.mustMatch(Tokens.IDENT),SyntaxUnit.fromToken(e.token())},_page:function(){var e=this._tokenStream,t,n,r=null,i=null;e.mustMatch(Tokens.PAGE_SYM),t=e.token().startLine,n=e.token().startCol,this._readWhitespace(),e.match(Tokens.IDENT)&&(r=e.token().value,r.toLowerCase()===\"auto\"&&this._unexpectedToken(e.token())),e.peek()==Tokens.COLON&&(i=this._pseudo_page()),this._readWhitespace(),this.fire({type:\"startpage\",id:r,pseudo:i,line:t,col:n}),this._readDeclarations(!0,!0),this.fire({type:\"endpage\",id:r,pseudo:i,line:t,col:n})},_margin:function(){var e=this._tokenStream,t,n,r=this._margin_sym();return r?(t=e.token().startLine,n=e.token().startCol,this.fire({type:\"startpagemargin\",margin:r,line:t,col:n}),this._readDeclarations(!0),this.fire({type:\"endpagemargin\",margin:r,line:t,col:n}),!0):!1},_margin_sym:function(){var e=this._tokenStream;return e.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(e.token()):null},_pseudo_page:function(){var e=this._tokenStream;return e.mustMatch(Tokens.COLON),e.mustMatch(Tokens.IDENT),e.token().value},_font_face:function(){var e=this._tokenStream,t,n;e.mustMatch(Tokens.FONT_FACE_SYM),t=e.token().startLine,n=e.token().startCol,this._readWhitespace(),this.fire({type:\"startfontface\",line:t,col:n}),this._readDeclarations(!0),this.fire({type:\"endfontface\",line:t,col:n})},_viewport:function(){var e=this._tokenStream,t,n;e.mustMatch(Tokens.VIEWPORT_SYM),t=e.token().startLine,n=e.token().startCol,this._readWhitespace(),this.fire({type:\"startviewport\",line:t,col:n}),this._readDeclarations(!0),this.fire({type:\"endviewport\",line:t,col:n})},_operator:function(e){var t=this._tokenStream,n=null;if(t.match([Tokens.SLASH,Tokens.COMMA])||e&&t.match([Tokens.PLUS,Tokens.STAR,Tokens.MINUS]))n=t.token(),this._readWhitespace();return n?PropertyValuePart.fromToken(n):null},_combinator:function(){var e=this._tokenStream,t=null,n;return e.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(n=e.token(),t=new Combinator(n.value,n.startLine,n.startCol),this._readWhitespace()),t},_unary_operator:function(){var e=this._tokenStream;return e.match([Tokens.MINUS,Tokens.PLUS])?e.token().value:null},_property:function(){var e=this._tokenStream,t=null,n=null,r,i,s,o;return e.peek()==Tokens.STAR&&this.options.starHack&&(e.get(),i=e.token(),n=i.value,s=i.startLine,o=i.startCol),e.match(Tokens.IDENT)&&(i=e.token(),r=i.value,r.charAt(0)==\"_\"&&this.options.underscoreHack&&(n=\"_\",r=r.substring(1)),t=new PropertyName(r,n,s||i.startLine,o||i.startCol),this._readWhitespace()),t},_ruleset:function(){var e=this._tokenStream,t,n;try{n=this._selectors_group()}catch(r){if(r instanceof SyntaxError&&!this.options.strict){this.fire({type:\"error\",error:r,message:r.message,line:r.line,col:r.col}),t=e.advance([Tokens.RBRACE]);if(t!=Tokens.RBRACE)throw r;return!0}throw r}return n&&(this.fire({type:\"startrule\",selectors:n,line:n[0].line,col:n[0].col}),this._readDeclarations(!0),this.fire({type:\"endrule\",selectors:n,line:n[0].line,col:n[0].col})),n},_selectors_group:function(){var e=this._tokenStream,t=[],n;n=this._selector();if(n!==null){t.push(n);while(e.match(Tokens.COMMA))this._readWhitespace(),n=this._selector(),n!==null?t.push(n):this._unexpectedToken(e.LT(1))}return t.length?t:null},_selector:function(){var e=this._tokenStream,t=[],n=null,r=null,i=null;n=this._simple_selector_sequence();if(n===null)return null;t.push(n);do{r=this._combinator();if(r!==null)t.push(r),n=this._simple_selector_sequence(),n===null?this._unexpectedToken(e.LT(1)):t.push(n);else{if(!this._readWhitespace())break;i=new Combinator(e.token().value,e.token().startLine,e.token().startCol),r=this._combinator(),n=this._simple_selector_sequence(),n===null?r!==null&&this._unexpectedToken(e.LT(1)):(r!==null?t.push(r):t.push(i),t.push(n))}}while(!0);return new Selector(t,t[0].line,t[0].col)},_simple_selector_sequence:function(){var e=this._tokenStream,t=null,n=[],r=\"\",i=[function(){return e.match(Tokens.HASH)?new SelectorSubPart(e.token().value,\"id\",e.token().startLine,e.token().startCol):null},this._class,this._attrib,this._pseudo,this._negation],s=0,o=i.length,u=null,a=!1,f,l;f=e.LT(1).startLine,l=e.LT(1).startCol,t=this._type_selector(),t||(t=this._universal()),t!==null&&(r+=t);for(;;){if(e.peek()===Tokens.S)break;while(s<o&&u===null)u=i[s++].call(this);if(u===null){if(r===\"\")return null;break}s=0,n.push(u),r+=u.toString(),u=null}return r!==\"\"?new SelectorPart(t,n,r,f,l):null},_type_selector:function(){var e=this._tokenStream,t=this._namespace_prefix(),n=this._element_name();return n?(t&&(n.text=t+n.text,n.col-=t.length),n):(t&&(e.unget(),t.length>1&&e.unget()),null)},_class:function(){var e=this._tokenStream,t;return e.match(Tokens.DOT)?(e.mustMatch(Tokens.IDENT),t=e.token(),new SelectorSubPart(\".\"+t.value,\"class\",t.startLine,t.startCol-1)):null},_element_name:function(){var e=this._tokenStream,t;return e.match(Tokens.IDENT)?(t=e.token(),new SelectorSubPart(t.value,\"elementName\",t.startLine,t.startCol)):null},_namespace_prefix:function(){var e=this._tokenStream,t=\"\";if(e.LA(1)===Tokens.PIPE||e.LA(2)===Tokens.PIPE)e.match([Tokens.IDENT,Tokens.STAR])&&(t+=e.token().value),e.mustMatch(Tokens.PIPE),t+=\"|\";return t.length?t:null},_universal:function(){var e=this._tokenStream,t=\"\",n;return n=this._namespace_prefix(),n&&(t+=n),e.match(Tokens.STAR)&&(t+=\"*\"),t.length?t:null},_attrib:function(){var e=this._tokenStream,t=null,n,r;return e.match(Tokens.LBRACKET)?(r=e.token(),t=r.value,t+=this._readWhitespace(),n=this._namespace_prefix(),n&&(t+=n),e.mustMatch(Tokens.IDENT),t+=e.token().value,t+=this._readWhitespace(),e.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(t+=e.token().value,t+=this._readWhitespace(),e.mustMatch([Tokens.IDENT,Tokens.STRING]),t+=e.token().value,t+=this._readWhitespace()),e.mustMatch(Tokens.RBRACKET),new SelectorSubPart(t+\"]\",\"attribute\",r.startLine,r.startCol)):null},_pseudo:function(){var e=this._tokenStream,t=null,n=\":\",r,i;return e.match(Tokens.COLON)&&(e.match(Tokens.COLON)&&(n+=\":\"),e.match(Tokens.IDENT)?(t=e.token().value,r=e.token().startLine,i=e.token().startCol-n.length):e.peek()==Tokens.FUNCTION&&(r=e.LT(1).startLine,i=e.LT(1).startCol-n.length,t=this._functional_pseudo()),t&&(t=new SelectorSubPart(n+t,\"pseudo\",r,i))),t},_functional_pseudo:function(){var e=this._tokenStream,t=null;return e.match(Tokens.FUNCTION)&&(t=e.token().value,t+=this._readWhitespace(),t+=this._expression(),e.mustMatch(Tokens.RPAREN),t+=\")\"),t},_expression:function(){var e=this._tokenStream,t=\"\";while(e.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION,Tokens.SLASH]))t+=e.token().value,t+=this._readWhitespace();return t.length?t:null},_negation:function(){var e=this._tokenStream,t,n,r=\"\",i,s=null;return e.match(Tokens.NOT)&&(r=e.token().value,t=e.token().startLine,n=e.token().startCol,r+=this._readWhitespace(),i=this._negation_arg(),r+=i,r+=this._readWhitespace(),e.match(Tokens.RPAREN),r+=e.token().value,s=new SelectorSubPart(r,\"not\",t,n),s.args.push(i)),s},_negation_arg:function(){var e=this._tokenStream,t=[this._type_selector,this._universal,function(){return e.match(Tokens.HASH)?new SelectorSubPart(e.token().value,\"id\",e.token().startLine,e.token().startCol):null},this._class,this._attrib,this._pseudo],n=null,r=0,i=t.length,s,o,u,a;o=e.LT(1).startLine,u=e.LT(1).startCol;while(r<i&&n===null)n=t[r].call(this),r++;return n===null&&this._unexpectedToken(e.LT(1)),n.type==\"elementName\"?a=new SelectorPart(n,[],n.toString(),o,u):a=new SelectorPart(null,[n],n.toString(),o,u),a},_declaration:function(){var e=this._tokenStream,t=null,n=null,r=null,i=null,s=null,o=\"\";t=this._property();if(t!==null){e.mustMatch(Tokens.COLON),this._readWhitespace(),n=this._expr(),(!n||n.length===0)&&this._unexpectedToken(e.LT(1)),r=this._prio(),o=t.toString();if(this.options.starHack&&t.hack==\"*\"||this.options.underscoreHack&&t.hack==\"_\")o=t.text;try{this._validateProperty(o,n)}catch(u){s=u}return this.fire({type:\"property\",property:t,value:n,important:r,line:t.line,col:t.col,invalid:s}),!0}return!1},_prio:function(){var e=this._tokenStream,t=e.match(Tokens.IMPORTANT_SYM);return this._readWhitespace(),t},_expr:function(e){var t=this._tokenStream,n=[],r=null,i=null;r=this._term(e);if(r!==null){n.push(r);do{i=this._operator(e),i&&n.push(i),r=this._term(e);if(r===null)break;n.push(r)}while(!0)}return n.length>0?new PropertyValue(n,n[0].line,n[0].col):null},_term:function(e){var t=this._tokenStream,n=null,r=null,i=null,s,o,u;return n=this._unary_operator(),n!==null&&(o=t.token().startLine,u=t.token().startCol),t.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(r=this._ie_function(),n===null&&(o=t.token().startLine,u=t.token().startCol)):e&&t.match([Tokens.LPAREN,Tokens.LBRACE,Tokens.LBRACKET])?(s=t.token(),i=s.endChar,r=s.value+this._expr(e).text,n===null&&(o=t.token().startLine,u=t.token().startCol),t.mustMatch(Tokens.type(i)),r+=i,this._readWhitespace()):t.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(r=t.token().value,n===null&&(o=t.token().startLine,u=t.token().startCol),this._readWhitespace()):(s=this._hexcolor(),s===null?(n===null&&(o=t.LT(1).startLine,u=t.LT(1).startCol),r===null&&(t.LA(3)==Tokens.EQUALS&&this.options.ieFilters?r=this._ie_function():r=this._function())):(r=s.value,n===null&&(o=s.startLine,u=s.startCol))),r!==null?new PropertyValuePart(n!==null?n+r:r,o,u):null},_function:function(){var e=this._tokenStream,t=null,n=null,r;if(e.match(Tokens.FUNCTION)){t=e.token().value,this._readWhitespace(),n=this._expr(!0),t+=n;if(this.options.ieFilters&&e.peek()==Tokens.EQUALS)do{this._readWhitespace()&&(t+=e.token().value),e.LA(0)==Tokens.COMMA&&(t+=e.token().value),e.match(Tokens.IDENT),t+=e.token().value,e.match(Tokens.EQUALS),t+=e.token().value,r=e.peek();while(r!=Tokens.COMMA&&r!=Tokens.S&&r!=Tokens.RPAREN)e.get(),t+=e.token().value,r=e.peek()}while(e.match([Tokens.COMMA,Tokens.S]));e.match(Tokens.RPAREN),t+=\")\",this._readWhitespace()}return t},_ie_function:function(){var e=this._tokenStream,t=null,n=null,r;if(e.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){t=e.token().value;do{this._readWhitespace()&&(t+=e.token().value),e.LA(0)==Tokens.COMMA&&(t+=e.token().value),e.match(Tokens.IDENT),t+=e.token().value,e.match(Tokens.EQUALS),t+=e.token().value,r=e.peek();while(r!=Tokens.COMMA&&r!=Tokens.S&&r!=Tokens.RPAREN)e.get(),t+=e.token().value,r=e.peek()}while(e.match([Tokens.COMMA,Tokens.S]));e.match(Tokens.RPAREN),t+=\")\",this._readWhitespace()}return t},_hexcolor:function(){var e=this._tokenStream,t=null,n;if(e.match(Tokens.HASH)){t=e.token(),n=t.value;if(!/#[a-f0-9]{3,6}/i.test(n))throw new SyntaxError(\"Expected a hex color but found '\"+n+\"' at line \"+t.startLine+\", col \"+t.startCol+\".\",t.startLine,t.startCol);this._readWhitespace()}return t},_keyframes:function(){var e=this._tokenStream,t,n,r,i=\"\";e.mustMatch(Tokens.KEYFRAMES_SYM),t=e.token(),/^@\\-([^\\-]+)\\-/.test(t.value)&&(i=RegExp.$1),this._readWhitespace(),r=this._keyframe_name(),this._readWhitespace(),e.mustMatch(Tokens.LBRACE),this.fire({type:\"startkeyframes\",name:r,prefix:i,line:t.startLine,col:t.startCol}),this._readWhitespace(),n=e.peek();while(n==Tokens.IDENT||n==Tokens.PERCENTAGE)this._keyframe_rule(),this._readWhitespace(),n=e.peek();this.fire({type:\"endkeyframes\",name:r,prefix:i,line:t.startLine,col:t.startCol}),this._readWhitespace(),e.mustMatch(Tokens.RBRACE)},_keyframe_name:function(){var e=this._tokenStream,t;return e.mustMatch([Tokens.IDENT,Tokens.STRING]),SyntaxUnit.fromToken(e.token())},_keyframe_rule:function(){var e=this._tokenStream,t,n=this._key_list();this.fire({type:\"startkeyframerule\",keys:n,line:n[0].line,col:n[0].col}),this._readDeclarations(!0),this.fire({type:\"endkeyframerule\",keys:n,line:n[0].line,col:n[0].col})},_key_list:function(){var e=this._tokenStream,t,n,r=[];r.push(this._key()),this._readWhitespace();while(e.match(Tokens.COMMA))this._readWhitespace(),r.push(this._key()),this._readWhitespace();return r},_key:function(){var e=this._tokenStream,t;if(e.match(Tokens.PERCENTAGE))return SyntaxUnit.fromToken(e.token());if(e.match(Tokens.IDENT)){t=e.token();if(/from|to/i.test(t.value))return SyntaxUnit.fromToken(t);e.unget()}this._unexpectedToken(e.LT(1))},_skipCruft:function(){while(this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC]));},_readDeclarations:function(e,t){var n=this._tokenStream,r;this._readWhitespace(),e&&n.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(!(n.match(Tokens.SEMICOLON)||t&&this._margin())){if(!this._declaration())break;if(!n.match(Tokens.SEMICOLON))break}this._readWhitespace()}n.mustMatch(Tokens.RBRACE),this._readWhitespace()}catch(i){if(!(i instanceof SyntaxError&&!this.options.strict))throw i;this.fire({type:\"error\",error:i,message:i.message,line:i.line,col:i.col}),r=n.advance([Tokens.SEMICOLON,Tokens.RBRACE]);if(r==Tokens.SEMICOLON)this._readDeclarations(!1,t);else if(r!=Tokens.RBRACE)throw i}},_readWhitespace:function(){var e=this._tokenStream,t=\"\";while(e.match(Tokens.S))t+=e.token().value;return t},_unexpectedToken:function(e){throw new SyntaxError(\"Unexpected token '\"+e.value+\"' at line \"+e.startLine+\", col \"+e.startCol+\".\",e.startLine,e.startCol)},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1))},_validateProperty:function(e,t){Validation.validate(e,t)},parse:function(e){this._tokenStream=new TokenStream(e,Tokens),this._stylesheet()},parseStyleSheet:function(e){return this.parse(e)},parseMediaQuery:function(e){this._tokenStream=new TokenStream(e,Tokens);var t=this._media_query();return this._verifyEnd(),t},parsePropertyValue:function(e){this._tokenStream=new TokenStream(e,Tokens),this._readWhitespace();var t=this._expr();return this._readWhitespace(),this._verifyEnd(),t},parseRule:function(e){this._tokenStream=new TokenStream(e,Tokens),this._readWhitespace();var t=this._ruleset();return this._readWhitespace(),this._verifyEnd(),t},parseSelector:function(e){this._tokenStream=new TokenStream(e,Tokens),this._readWhitespace();var t=this._selector();return this._readWhitespace(),this._verifyEnd(),t},parseStyleAttribute:function(e){e+=\"}\",this._tokenStream=new TokenStream(e,Tokens),this._readDeclarations()}};for(t in n)n.hasOwnProperty(t)&&(e[t]=n[t]);return e}();var Properties={\"align-items\":\"flex-start | flex-end | center | baseline | stretch\",\"align-content\":\"flex-start | flex-end | center | space-between | space-around | stretch\",\"align-self\":\"auto | flex-start | flex-end | center | baseline | stretch\",\"-webkit-align-items\":\"flex-start | flex-end | center | baseline | stretch\",\"-webkit-align-content\":\"flex-start | flex-end | center | space-between | space-around | stretch\",\"-webkit-align-self\":\"auto | flex-start | flex-end | center | baseline | stretch\",\"alignment-adjust\":\"auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical | <percentage> | <length>\",\"alignment-baseline\":\"baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical\",animation:1,\"animation-delay\":{multi:\"<time>\",comma:!0},\"animation-direction\":{multi:\"normal | reverse | alternate | alternate-reverse\",comma:!0},\"animation-duration\":{multi:\"<time>\",comma:!0},\"animation-fill-mode\":{multi:\"none | forwards | backwards | both\",comma:!0},\"animation-iteration-count\":{multi:\"<number> | infinite\",comma:!0},\"animation-name\":{multi:\"none | <ident>\",comma:!0},\"animation-play-state\":{multi:\"running | paused\",comma:!0},\"animation-timing-function\":1,\"-moz-animation-delay\":{multi:\"<time>\",comma:!0},\"-moz-animation-direction\":{multi:\"normal | reverse | alternate | alternate-reverse\",comma:!0},\"-moz-animation-duration\":{multi:\"<time>\",comma:!0},\"-moz-animation-iteration-count\":{multi:\"<number> | infinite\",comma:!0},\"-moz-animation-name\":{multi:\"none | <ident>\",comma:!0},\"-moz-animation-play-state\":{multi:\"running | paused\",comma:!0},\"-ms-animation-delay\":{multi:\"<time>\",comma:!0},\"-ms-animation-direction\":{multi:\"normal | reverse | alternate | alternate-reverse\",comma:!0},\"-ms-animation-duration\":{multi:\"<time>\",comma:!0},\"-ms-animation-iteration-count\":{multi:\"<number> | infinite\",comma:!0},\"-ms-animation-name\":{multi:\"none | <ident>\",comma:!0},\"-ms-animation-play-state\":{multi:\"running | paused\",comma:!0},\"-webkit-animation-delay\":{multi:\"<time>\",comma:!0},\"-webkit-animation-direction\":{multi:\"normal | reverse | alternate | alternate-reverse\",comma:!0},\"-webkit-animation-duration\":{multi:\"<time>\",comma:!0},\"-webkit-animation-fill-mode\":{multi:\"none | forwards | backwards | both\",comma:!0},\"-webkit-animation-iteration-count\":{multi:\"<number> | infinite\",comma:!0},\"-webkit-animation-name\":{multi:\"none | <ident>\",comma:!0},\"-webkit-animation-play-state\":{multi:\"running | paused\",comma:!0},\"-o-animation-delay\":{multi:\"<time>\",comma:!0},\"-o-animation-direction\":{multi:\"normal | reverse | alternate | alternate-reverse\",comma:!0},\"-o-animation-duration\":{multi:\"<time>\",comma:!0},\"-o-animation-iteration-count\":{multi:\"<number> | infinite\",comma:!0},\"-o-animation-name\":{multi:\"none | <ident>\",comma:!0},\"-o-animation-play-state\":{multi:\"running | paused\",comma:!0},appearance:\"icon | window | desktop | workspace | document | tooltip | dialog | button | push-button | hyperlink | radio-button | checkbox | menu-item | tab | menu | menubar | pull-down-menu | pop-up-menu | list-menu | radio-group | checkbox-group | outline-tree | range | field | combo-box | signature | password | normal | none | inherit\",azimuth:function(e){var t=\"<angle> | leftwards | rightwards | inherit\",n=\"left-side | far-left | left | center-left | center | center-right | right | far-right | right-side\",r=!1,i=!1,s;ValidationTypes.isAny(e,t)||(ValidationTypes.isAny(e,\"behind\")&&(r=!0,i=!0),ValidationTypes.isAny(e,n)&&(i=!0,r||ValidationTypes.isAny(e,\"behind\")));if(e.hasNext())throw s=e.next(),i?new ValidationError(\"Expected end of value but found '\"+s+\"'.\",s.line,s.col):new ValidationError(\"Expected (<'azimuth'>) but found '\"+s+\"'.\",s.line,s.col)},\"backface-visibility\":\"visible | hidden\",background:1,\"background-attachment\":{multi:\"<attachment>\",comma:!0},\"background-clip\":{multi:\"<box>\",comma:!0},\"background-color\":\"<color> | inherit\",\"background-image\":{multi:\"<bg-image>\",comma:!0},\"background-origin\":{multi:\"<box>\",comma:!0},\"background-position\":{multi:\"<bg-position>\",comma:!0},\"background-repeat\":{multi:\"<repeat-style>\"},\"background-size\":{multi:\"<bg-size>\",comma:!0},\"baseline-shift\":\"baseline | sub | super | <percentage> | <length>\",behavior:1,binding:1,bleed:\"<length>\",\"bookmark-label\":\"<content> | <attr> | <string>\",\"bookmark-level\":\"none | <integer>\",\"bookmark-state\":\"open | closed\",\"bookmark-target\":\"none | <uri> | <attr>\",border:\"<border-width> || <border-style> || <color>\",\"border-bottom\":\"<border-width> || <border-style> || <color>\",\"border-bottom-color\":\"<color> | inherit\",\"border-bottom-left-radius\":\"<x-one-radius>\",\"border-bottom-right-radius\":\"<x-one-radius>\",\"border-bottom-style\":\"<border-style>\",\"border-bottom-width\":\"<border-width>\",\"border-collapse\":\"collapse | separate | inherit\",\"border-color\":{multi:\"<color> | inherit\",max:4},\"border-image\":1,\"border-image-outset\":{multi:\"<length> | <number>\",max:4},\"border-image-repeat\":{multi:\"stretch | repeat | round\",max:2},\"border-image-slice\":function(e){var t=!1,n=\"<number> | <percentage>\",r=!1,i=0,s=4,o;ValidationTypes.isAny(e,\"fill\")&&(r=!0,t=!0);while(e.hasNext()&&i<s){t=ValidationTypes.isAny(e,n);if(!t)break;i++}r?t=!0:ValidationTypes.isAny(e,\"fill\");if(e.hasNext())throw o=e.next(),t?new ValidationError(\"Expected end of value but found '\"+o+\"'.\",o.line,o.col):new ValidationError(\"Expected ([<number> | <percentage>]{1,4} && fill?) but found '\"+o+\"'.\",o.line,o.col)},\"border-image-source\":\"<image> | none\",\"border-image-width\":{multi:\"<length> | <percentage> | <number> | auto\",max:4},\"border-left\":\"<border-width> || <border-style> || <color>\",\"border-left-color\":\"<color> | inherit\",\"border-left-style\":\"<border-style>\",\"border-left-width\":\"<border-width>\",\"border-radius\":function(e){var t=!1,n=\"<length> | <percentage> | inherit\",r=!1,i=!1,s=0,o=8,u;while(e.hasNext()&&s<o){t=ValidationTypes.isAny(e,n);if(!t){if(!(e.peek()==\"/\"&&s>0&&!r))break;r=!0,o=s+5,e.next()}s++}if(e.hasNext())throw u=e.next(),t?new ValidationError(\"Expected end of value but found '\"+u+\"'.\",u.line,u.col):new ValidationError(\"Expected (<'border-radius'>) but found '\"+u+\"'.\",u.line,u.col)},\"border-right\":\"<border-width> || <border-style> || <color>\",\"border-right-color\":\"<color> | inherit\",\"border-right-style\":\"<border-style>\",\"border-right-width\":\"<border-width>\",\"border-spacing\":{multi:\"<length> | inherit\",max:2},\"border-style\":{multi:\"<border-style>\",max:4},\"border-top\":\"<border-width> || <border-style> || <color>\",\"border-top-color\":\"<color> | inherit\",\"border-top-left-radius\":\"<x-one-radius>\",\"border-top-right-radius\":\"<x-one-radius>\",\"border-top-style\":\"<border-style>\",\"border-top-width\":\"<border-width>\",\"border-width\":{multi:\"<border-width>\",max:4},bottom:\"<margin-width> | inherit\",\"-moz-box-align\":\"start | end | center | baseline | stretch\",\"-moz-box-decoration-break\":\"slice |clone\",\"-moz-box-direction\":\"normal | reverse | inherit\",\"-moz-box-flex\":\"<number>\",\"-moz-box-flex-group\":\"<integer>\",\"-moz-box-lines\":\"single | multiple\",\"-moz-box-ordinal-group\":\"<integer>\",\"-moz-box-orient\":\"horizontal | vertical | inline-axis | block-axis | inherit\",\"-moz-box-pack\":\"start | end | center | justify\",\"-webkit-box-align\":\"start | end | center | baseline | stretch\",\"-webkit-box-decoration-break\":\"slice |clone\",\"-webkit-box-direction\":\"normal | reverse | inherit\",\"-webkit-box-flex\":\"<number>\",\"-webkit-box-flex-group\":\"<integer>\",\"-webkit-box-lines\":\"single | multiple\",\"-webkit-box-ordinal-group\":\"<integer>\",\"-webkit-box-orient\":\"horizontal | vertical | inline-axis | block-axis | inherit\",\"-webkit-box-pack\":\"start | end | center | justify\",\"box-shadow\":function(e){var t=!1,n;if(!ValidationTypes.isAny(e,\"none\"))Validation.multiProperty(\"<shadow>\",e,!0,Infinity);else if(e.hasNext())throw n=e.next(),new ValidationError(\"Expected end of value but found '\"+n+\"'.\",n.line,n.col)},\"box-sizing\":\"content-box | border-box | inherit\",\"break-after\":\"auto | always | avoid | left | right | page | column | avoid-page | avoid-column\",\"break-before\":\"auto | always | avoid | left | right | page | column | avoid-page | avoid-column\",\"break-inside\":\"auto | avoid | avoid-page | avoid-column\",\"caption-side\":\"top | bottom | inherit\",clear:\"none | right | left | both | inherit\",clip:1,color:\"<color> | inherit\",\"color-profile\":1,\"column-count\":\"<integer> | auto\",\"column-fill\":\"auto | balance\",\"column-gap\":\"<length> | normal\",\"column-rule\":\"<border-width> || <border-style> || <color>\",\"column-rule-color\":\"<color>\",\"column-rule-style\":\"<border-style>\",\"column-rule-width\":\"<border-width>\",\"column-span\":\"none | all\",\"column-width\":\"<length> | auto\",columns:1,content:1,\"counter-increment\":1,\"counter-reset\":1,crop:\"<shape> | auto\",cue:\"cue-after | cue-before | inherit\",\"cue-after\":1,\"cue-before\":1,cursor:1,direction:\"ltr | rtl | inherit\",display:\"inline | block | list-item | inline-block | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | grid | inline-grid | none | inherit | -moz-box | -moz-inline-block | -moz-inline-box | -moz-inline-grid | -moz-inline-stack | -moz-inline-table | -moz-grid | -moz-grid-group | -moz-grid-line | -moz-groupbox | -moz-deck | -moz-popup | -moz-stack | -moz-marker | -webkit-box | -webkit-inline-box | -ms-flexbox | -ms-inline-flexbox | flex | -webkit-flex | inline-flex | -webkit-inline-flex\",\"dominant-baseline\":1,\"drop-initial-after-adjust\":\"central | middle | after-edge | text-after-edge | ideographic | alphabetic | mathematical | <percentage> | <length>\",\"drop-initial-after-align\":\"baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical\",\"drop-initial-before-adjust\":\"before-edge | text-before-edge | central | middle | hanging | mathematical | <percentage> | <length>\",\"drop-initial-before-align\":\"caps-height | baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical\",\"drop-initial-size\":\"auto | line | <length> | <percentage>\",\"drop-initial-value\":\"initial | <integer>\",elevation:\"<angle> | below | level | above | higher | lower | inherit\",\"empty-cells\":\"show | hide | inherit\",filter:1,fit:\"fill | hidden | meet | slice\",\"fit-position\":1,flex:\"<flex>\",\"flex-basis\":\"<width>\",\"flex-direction\":\"row | row-reverse | column | column-reverse\",\"flex-flow\":\"<flex-direction> || <flex-wrap>\",\"flex-grow\":\"<number>\",\"flex-shrink\":\"<number>\",\"flex-wrap\":\"nowrap | wrap | wrap-reverse\",\"-webkit-flex\":\"<flex>\",\"-webkit-flex-basis\":\"<width>\",\"-webkit-flex-direction\":\"row | row-reverse | column | column-reverse\",\"-webkit-flex-flow\":\"<flex-direction> || <flex-wrap>\",\"-webkit-flex-grow\":\"<number>\",\"-webkit-flex-shrink\":\"<number>\",\"-webkit-flex-wrap\":\"nowrap | wrap | wrap-reverse\",\"-ms-flex\":\"<flex>\",\"-ms-flex-align\":\"start | end | center | stretch | baseline\",\"-ms-flex-direction\":\"row | row-reverse | column | column-reverse | inherit\",\"-ms-flex-order\":\"<number>\",\"-ms-flex-pack\":\"start | end | center | justify\",\"-ms-flex-wrap\":\"nowrap | wrap | wrap-reverse\",\"float\":\"left | right | none | inherit\",\"float-offset\":1,font:1,\"font-family\":1,\"font-size\":\"<absolute-size> | <relative-size> | <length> | <percentage> | inherit\",\"font-size-adjust\":\"<number> | none | inherit\",\"font-stretch\":\"normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | inherit\",\"font-style\":\"normal | italic | oblique | inherit\",\"font-variant\":\"normal | small-caps | inherit\",\"font-weight\":\"normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit\",\"grid-cell-stacking\":\"columns | rows | layer\",\"grid-column\":1,\"grid-columns\":1,\"grid-column-align\":\"start | end | center | stretch\",\"grid-column-sizing\":1,\"grid-column-span\":\"<integer>\",\"grid-flow\":\"none | rows | columns\",\"grid-layer\":\"<integer>\",\"grid-row\":1,\"grid-rows\":1,\"grid-row-align\":\"start | end | center | stretch\",\"grid-row-span\":\"<integer>\",\"grid-row-sizing\":1,\"hanging-punctuation\":1,height:\"<margin-width> | <content-sizing> | inherit\",\"hyphenate-after\":\"<integer> | auto\",\"hyphenate-before\":\"<integer> | auto\",\"hyphenate-character\":\"<string> | auto\",\"hyphenate-lines\":\"no-limit | <integer>\",\"hyphenate-resource\":1,hyphens:\"none | manual | auto\",icon:1,\"image-orientation\":\"angle | auto\",\"image-rendering\":1,\"image-resolution\":1,\"inline-box-align\":\"initial | last | <integer>\",\"justify-content\":\"flex-start | flex-end | center | space-between | space-around\",\"-webkit-justify-content\":\"flex-start | flex-end | center | space-between | space-around\",left:\"<margin-width> | inherit\",\"letter-spacing\":\"<length> | normal | inherit\",\"line-height\":\"<number> | <length> | <percentage> | normal | inherit\",\"line-break\":\"auto | loose | normal | strict\",\"line-stacking\":1,\"line-stacking-ruby\":\"exclude-ruby | include-ruby\",\"line-stacking-shift\":\"consider-shifts | disregard-shifts\",\"line-stacking-strategy\":\"inline-line-height | block-line-height | max-height | grid-height\",\"list-style\":1,\"list-style-image\":\"<uri> | none | inherit\",\"list-style-position\":\"inside | outside | inherit\",\"list-style-type\":\"disc | circle | square | decimal | decimal-leading-zero | lower-roman | upper-roman | lower-greek | lower-latin | upper-latin | armenian | georgian | lower-alpha | upper-alpha | none | inherit\",margin:{multi:\"<margin-width> | inherit\",max:4},\"margin-bottom\":\"<margin-width> | inherit\",\"margin-left\":\"<margin-width> | inherit\",\"margin-right\":\"<margin-width> | inherit\",\"margin-top\":\"<margin-width> | inherit\",mark:1,\"mark-after\":1,\"mark-before\":1,marks:1,\"marquee-direction\":1,\"marquee-play-count\":1,\"marquee-speed\":1,\"marquee-style\":1,\"max-height\":\"<length> | <percentage> | <content-sizing> | none | inherit\",\"max-width\":\"<length> | <percentage> | <content-sizing> | none | inherit\",\"min-height\":\"<length> | <percentage> | <content-sizing> | contain-floats | -moz-contain-floats | -webkit-contain-floats | inherit\",\"min-width\":\"<length> | <percentage> | <content-sizing> | contain-floats | -moz-contain-floats | -webkit-contain-floats | inherit\",\"move-to\":1,\"nav-down\":1,\"nav-index\":1,\"nav-left\":1,\"nav-right\":1,\"nav-up\":1,opacity:\"<number> | inherit\",order:\"<integer>\",\"-webkit-order\":\"<integer>\",orphans:\"<integer> | inherit\",outline:1,\"outline-color\":\"<color> | invert | inherit\",\"outline-offset\":1,\"outline-style\":\"<border-style> | inherit\",\"outline-width\":\"<border-width> | inherit\",overflow:\"visible | hidden | scroll | auto | inherit\",\"overflow-style\":1,\"overflow-wrap\":\"normal | break-word\",\"overflow-x\":1,\"overflow-y\":1,padding:{multi:\"<padding-width> | inherit\",max:4},\"padding-bottom\":\"<padding-width> | inherit\",\"padding-left\":\"<padding-width> | inherit\",\"padding-right\":\"<padding-width> | inherit\",\"padding-top\":\"<padding-width> | inherit\",page:1,\"page-break-after\":\"auto | always | avoid | left | right | inherit\",\"page-break-before\":\"auto | always | avoid | left | right | inherit\",\"page-break-inside\":\"auto | avoid | inherit\",\"page-policy\":1,pause:1,\"pause-after\":1,\"pause-before\":1,perspective:1,\"perspective-origin\":1,phonemes:1,pitch:1,\"pitch-range\":1,\"play-during\":1,\"pointer-events\":\"auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit\",position:\"static | relative | absolute | fixed | inherit\",\"presentation-level\":1,\"punctuation-trim\":1,quotes:1,\"rendering-intent\":1,resize:1,rest:1,\"rest-after\":1,\"rest-before\":1,richness:1,right:\"<margin-width> | inherit\",rotation:1,\"rotation-point\":1,\"ruby-align\":1,\"ruby-overhang\":1,\"ruby-position\":1,\"ruby-span\":1,size:1,speak:\"normal | none | spell-out | inherit\",\"speak-header\":\"once | always | inherit\",\"speak-numeral\":\"digits | continuous | inherit\",\"speak-punctuation\":\"code | none | inherit\",\"speech-rate\":1,src:1,stress:1,\"string-set\":1,\"table-layout\":\"auto | fixed | inherit\",\"tab-size\":\"<integer> | <length>\",target:1,\"target-name\":1,\"target-new\":1,\"target-position\":1,\"text-align\":\"left | right | center | justify | inherit\",\"text-align-last\":1,\"text-decoration\":1,\"text-emphasis\":1,\"text-height\":1,\"text-indent\":\"<length> | <percentage> | inherit\",\"text-justify\":\"auto | none | inter-word | inter-ideograph | inter-cluster | distribute | kashida\",\"text-outline\":1,\"text-overflow\":1,\"text-rendering\":\"auto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit\",\"text-shadow\":1,\"text-transform\":\"capitalize | uppercase | lowercase | none | inherit\",\"text-wrap\":\"normal | none | avoid\",top:\"<margin-width> | inherit\",\"-ms-touch-action\":\"auto | none | pan-x | pan-y\",\"touch-action\":\"auto | none | pan-x | pan-y\",transform:1,\"transform-origin\":1,\"transform-style\":1,transition:1,\"transition-delay\":1,\"transition-duration\":1,\"transition-property\":1,\"transition-timing-function\":1,\"unicode-bidi\":\"normal | embed | isolate | bidi-override | isolate-override | plaintext | inherit\",\"user-modify\":\"read-only | read-write | write-only | inherit\",\"user-select\":\"none | text | toggle | element | elements | all | inherit\",\"vertical-align\":\"auto | use-script | baseline | sub | super | top | text-top | central | middle | bottom | text-bottom | <percentage> | <length>\",visibility:\"visible | hidden | collapse | inherit\",\"voice-balance\":1,\"voice-duration\":1,\"voice-family\":1,\"voice-pitch\":1,\"voice-pitch-range\":1,\"voice-rate\":1,\"voice-stress\":1,\"voice-volume\":1,volume:1,\"white-space\":\"normal | pre | nowrap | pre-wrap | pre-line | inherit | -pre-wrap | -o-pre-wrap | -moz-pre-wrap | -hp-pre-wrap\",\"white-space-collapse\":1,widows:\"<integer> | inherit\",width:\"<length> | <percentage> | <content-sizing> | auto | inherit\",\"word-break\":\"normal | keep-all | break-all\",\"word-spacing\":\"<length> | normal | inherit\",\"word-wrap\":\"normal | break-word\",\"writing-mode\":\"horizontal-tb | vertical-rl | vertical-lr | lr-tb | rl-tb | tb-rl | bt-rl | tb-lr | bt-lr | lr-bt | rl-bt | lr | rl | tb | inherit\",\"z-index\":\"<integer> | auto | inherit\",zoom:\"<number> | <percentage> | normal\"};PropertyName.prototype=new SyntaxUnit,PropertyName.prototype.constructor=PropertyName,PropertyName.prototype.toString=function(){return(this.hack?this.hack:\"\")+this.text},PropertyValue.prototype=new SyntaxUnit,PropertyValue.prototype.constructor=PropertyValue,PropertyValueIterator.prototype.count=function(){return this._parts.length},PropertyValueIterator.prototype.isFirst=function(){return this._i===0},PropertyValueIterator.prototype.hasNext=function(){return this._i<this._parts.length},PropertyValueIterator.prototype.mark=function(){this._marks.push(this._i)},PropertyValueIterator.prototype.peek=function(e){return this.hasNext()?this._parts[this._i+(e||0)]:null},PropertyValueIterator.prototype.next=function(){return this.hasNext()?this._parts[this._i++]:null},PropertyValueIterator.prototype.previous=function(){return this._i>0?this._parts[--this._i]:null},PropertyValueIterator.prototype.restore=function(){this._marks.length&&(this._i=this._marks.pop())},PropertyValuePart.prototype=new SyntaxUnit,PropertyValuePart.prototype.constructor=PropertyValuePart,PropertyValuePart.fromToken=function(e){return new PropertyValuePart(e.value,e.startLine,e.startCol)};var Pseudos={\":first-letter\":1,\":first-line\":1,\":before\":1,\":after\":1};Pseudos.ELEMENT=1,Pseudos.CLASS=2,Pseudos.isElement=function(e){return e.indexOf(\"::\")===0||Pseudos[e.toLowerCase()]==Pseudos.ELEMENT},Selector.prototype=new SyntaxUnit,Selector.prototype.constructor=Selector,SelectorPart.prototype=new SyntaxUnit,SelectorPart.prototype.constructor=SelectorPart,SelectorSubPart.prototype=new SyntaxUnit,SelectorSubPart.prototype.constructor=SelectorSubPart,Specificity.prototype={constructor:Specificity,compare:function(e){var t=[\"a\",\"b\",\"c\",\"d\"],n,r;for(n=0,r=t.length;n<r;n++){if(this[t[n]]<e[t[n]])return-1;if(this[t[n]]>e[t[n]])return 1}return 0},valueOf:function(){return this.a*1e3+this.b*100+this.c*10+this.d},toString:function(){return this.a+\",\"+this.b+\",\"+this.c+\",\"+this.d}},Specificity.calculate=function(e){function u(e){var t,n,r,a,f=e.elementName?e.elementName.text:\"\",l;f&&f.charAt(f.length-1)!=\"*\"&&o++;for(t=0,r=e.modifiers.length;t<r;t++){l=e.modifiers[t];switch(l.type){case\"class\":case\"attribute\":s++;break;case\"id\":i++;break;case\"pseudo\":Pseudos.isElement(l.text)?o++:s++;break;case\"not\":for(n=0,a=l.args.length;n<a;n++)u(l.args[n])}}}var t,n,r,i=0,s=0,o=0;for(t=0,n=e.parts.length;t<n;t++)r=e.parts[t],r instanceof SelectorPart&&u(r);return new Specificity(0,i,s,o)};var h=/^[0-9a-fA-F]$/,nonascii=/^[\\u0080-\\uFFFF]$/,nl=/\\n|\\r\\n|\\r|\\f/;TokenStream.prototype=mix(new TokenStreamBase,{_getToken:function(e){var t,n=this._reader,r=null,i=n.getLine(),s=n.getCol();t=n.read();while(t){switch(t){case\"/\":n.peek()==\"*\"?r=this.commentToken(t,i,s):r=this.charToken(t,i,s);break;case\"|\":case\"~\":case\"^\":case\"$\":case\"*\":n.peek()==\"=\"?r=this.comparisonToken(t,i,s):r=this.charToken(t,i,s);break;case'\"':case\"'\":r=this.stringToken(t,i,s);break;case\"#\":isNameChar(n.peek())?r=this.hashToken(t,i,s):r=this.charToken(t,i,s);break;case\".\":isDigit(n.peek())?r=this.numberToken(t,i,s):r=this.charToken(t,i,s);break;case\"-\":n.peek()==\"-\"?r=this.htmlCommentEndToken(t,i,s):isNameStart(n.peek())?r=this.identOrFunctionToken(t,i,s):r=this.charToken(t,i,s);break;case\"!\":r=this.importantToken(t,i,s);break;case\"@\":r=this.atRuleToken(t,i,s);break;case\":\":r=this.notToken(t,i,s);break;case\"<\":r=this.htmlCommentStartToken(t,i,s);break;case\"U\":case\"u\":if(n.peek()==\"+\"){r=this.unicodeRangeToken(t,i,s);break};default:isDigit(t)?r=this.numberToken(t,i,s):isWhitespace(t)?r=this.whitespaceToken(t,i,s):isIdentStart(t)?r=this.identOrFunctionToken(t,i,s):r=this.charToken(t,i,s)}break}return!r&&t===null&&(r=this.createToken(Tokens.EOF,null,i,s)),r},createToken:function(e,t,n,r,i){var s=this._reader;return i=i||{},{value:t,type:e,channel:i.channel,endChar:i.endChar,hide:i.hide||!1,startLine:n,startCol:r,endLine:s.getLine(),endCol:s.getCol()}},atRuleToken:function(e,t,n){var r=e,i=this._reader,s=Tokens.CHAR,o=!1,u,a;i.mark(),u=this.readName(),r=e+u,s=Tokens.type(r.toLowerCase());if(s==Tokens.CHAR||s==Tokens.UNKNOWN)r.length>1?s=Tokens.UNKNOWN_SYM:(s=Tokens.CHAR,r=e,i.reset());return this.createToken(s,r,t,n)},charToken:function(e,t,n){var r=Tokens.type(e),i={};return r==-1?r=Tokens.CHAR:i.endChar=Tokens[r].endChar,this.createToken(r,e,t,n,i)},commentToken:function(e,t,n){var r=this._reader,i=this.readComment(e);return this.createToken(Tokens.COMMENT,i,t,n)},comparisonToken:function(e,t,n){var r=this._reader,i=e+r.read(),s=Tokens.type(i)||Tokens.CHAR;return this.createToken(s,i,t,n)},hashToken:function(e,t,n){var r=this._reader,i=this.readName(e);return this.createToken(Tokens.HASH,i,t,n)},htmlCommentStartToken:function(e,t,n){var r=this._reader,i=e;return r.mark(),i+=r.readCount(3),i==\"<!--\"?this.createToken(Tokens.CDO,i,t,n):(r.reset(),this.charToken(e,t,n))},htmlCommentEndToken:function(e,t,n){var r=this._reader,i=e;return r.mark(),i+=r.readCount(2),i==\"-->\"?this.createToken(Tokens.CDC,i,t,n):(r.reset(),this.charToken(e,t,n))},identOrFunctionToken:function(e,t,n){var r=this._reader,i=this.readName(e),s=Tokens.IDENT;return r.peek()==\"(\"?(i+=r.read(),i.toLowerCase()==\"url(\"?(s=Tokens.URI,i=this.readURI(i),i.toLowerCase()==\"url(\"&&(s=Tokens.FUNCTION)):s=Tokens.FUNCTION):r.peek()==\":\"&&i.toLowerCase()==\"progid\"&&(i+=r.readTo(\"(\"),s=Tokens.IE_FUNCTION),this.createToken(s,i,t,n)},importantToken:function(e,t,n){var r=this._reader,i=e,s=Tokens.CHAR,o,u;r.mark(),u=r.read();while(u){if(u==\"/\"){if(r.peek()!=\"*\")break;o=this.readComment(u);if(o===\"\")break}else{if(!isWhitespace(u)){if(/i/i.test(u)){o=r.readCount(8),/mportant/i.test(o)&&(i+=u+o,s=Tokens.IMPORTANT_SYM);break}break}i+=u+this.readWhitespace()}u=r.read()}return s==Tokens.CHAR?(r.reset(),this.charToken(e,t,n)):this.createToken(s,i,t,n)},notToken:function(e,t,n){var r=this._reader,i=e;return r.mark(),i+=r.readCount(4),i.toLowerCase()==\":not(\"?this.createToken(Tokens.NOT,i,t,n):(r.reset(),this.charToken(e,t,n))},numberToken:function(e,t,n){var r=this._reader,i=this.readNumber(e),s,o=Tokens.NUMBER,u=r.peek();return isIdentStart(u)?(s=this.readName(r.read()),i+=s,/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vmax$|^vmin$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(s)?o=Tokens.LENGTH:/^deg|^rad$|^grad$/i.test(s)?o=Tokens.ANGLE:/^ms$|^s$/i.test(s)?o=Tokens.TIME:/^hz$|^khz$/i.test(s)?o=Tokens.FREQ:/^dpi$|^dpcm$/i.test(s)?o=Tokens.RESOLUTION:o=Tokens.DIMENSION):u==\"%\"&&(i+=r.read(),o=Tokens.PERCENTAGE),this.createToken(o,i,t,n)},stringToken:function(e,t,n){var r=e,i=e,s=this._reader,o=e,u=Tokens.STRING,a=s.read();while(a){i+=a;if(a==r&&o!=\"\\\\\")break;if(isNewLine(s.peek())&&a!=\"\\\\\"){u=Tokens.INVALID;break}o=a,a=s.read()}return a===null&&(u=Tokens.INVALID),this.createToken(u,i,t,n)},unicodeRangeToken:function(e,t,n){var r=this._reader,i=e,s,o=Tokens.CHAR;return r.peek()==\"+\"&&(r.mark(),i+=r.read(),i+=this.readUnicodeRangePart(!0),i.length==2?r.reset():(o=Tokens.UNICODE_RANGE,i.indexOf(\"?\")==-1&&r.peek()==\"-\"&&(r.mark(),s=r.read(),s+=this.readUnicodeRangePart(!1),s.length==1?r.reset():i+=s))),this.createToken(o,i,t,n)},whitespaceToken:function(e,t,n){var r=this._reader,i=e+this.readWhitespace();return this.createToken(Tokens.S,i,t,n)},readUnicodeRangePart:function(e){var t=this._reader,n=\"\",r=t.peek();while(isHexDigit(r)&&n.length<6)t.read(),n+=r,r=t.peek();if(e)while(r==\"?\"&&n.length<6)t.read(),n+=r,r=t.peek();return n},readWhitespace:function(){var e=this._reader,t=\"\",n=e.peek();while(isWhitespace(n))e.read(),t+=n,n=e.peek();return t},readNumber:function(e){var t=this._reader,n=e,r=e==\".\",i=t.peek();while(i){if(isDigit(i))n+=t.read();else{if(i!=\".\")break;if(r)break;r=!0,n+=t.read()}i=t.peek()}return n},readString:function(){var e=this._reader,t=e.read(),n=t,r=t,i=e.peek();while(i){i=e.read(),n+=i;if(i==t&&r!=\"\\\\\")break;if(isNewLine(e.peek())&&i!=\"\\\\\"){n=\"\";break}r=i,i=e.peek()}return i===null&&(n=\"\"),n},readURI:function(e){var t=this._reader,n=e,r=\"\",i=t.peek();t.mark();while(i&&isWhitespace(i))t.read(),i=t.peek();i==\"'\"||i=='\"'?r=this.readString():r=this.readURL(),i=t.peek();while(i&&isWhitespace(i))t.read(),i=t.peek();return r===\"\"||i!=\")\"?(n=e,t.reset()):n+=r+t.read(),n},readURL:function(){var e=this._reader,t=\"\",n=e.peek();while(/^[!#$%&\\\\*-~]$/.test(n))t+=e.read(),n=e.peek();return t},readName:function(e){var t=this._reader,n=e||\"\",r=t.peek();for(;;)if(r==\"\\\\\")n+=this.readEscape(t.read()),r=t.peek();else{if(!r||!isNameChar(r))break;n+=t.read(),r=t.peek()}return n},readEscape:function(e){var t=this._reader,n=e||\"\",r=0,i=t.peek();if(isHexDigit(i))do n+=t.read(),i=t.peek();while(i&&isHexDigit(i)&&++r<6);return n.length==3&&/\\s/.test(i)||n.length==7||n.length==1?t.read():i=\"\",n+i},readComment:function(e){var t=this._reader,n=e||\"\",r=t.read();if(r==\"*\"){while(r){n+=r;if(n.length>2&&r==\"*\"&&t.peek()==\"/\"){n+=t.read();break}r=t.read()}return n}return\"\"}});var Tokens=[{name:\"CDO\"},{name:\"CDC\"},{name:\"S\",whitespace:!0},{name:\"COMMENT\",comment:!0,hide:!0,channel:\"comment\"},{name:\"INCLUDES\",text:\"~=\"},{name:\"DASHMATCH\",text:\"|=\"},{name:\"PREFIXMATCH\",text:\"^=\"},{name:\"SUFFIXMATCH\",text:\"$=\"},{name:\"SUBSTRINGMATCH\",text:\"*=\"},{name:\"STRING\"},{name:\"IDENT\"},{name:\"HASH\"},{name:\"IMPORT_SYM\",text:\"@import\"},{name:\"PAGE_SYM\",text:\"@page\"},{name:\"MEDIA_SYM\",text:\"@media\"},{name:\"FONT_FACE_SYM\",text:\"@font-face\"},{name:\"CHARSET_SYM\",text:\"@charset\"},{name:\"NAMESPACE_SYM\",text:\"@namespace\"},{name:\"VIEWPORT_SYM\",text:[\"@viewport\",\"@-ms-viewport\"]},{name:\"UNKNOWN_SYM\"},{name:\"KEYFRAMES_SYM\",text:[\"@keyframes\",\"@-webkit-keyframes\",\"@-moz-keyframes\",\"@-o-keyframes\"]},{name:\"IMPORTANT_SYM\"},{name:\"LENGTH\"},{name:\"ANGLE\"},{name:\"TIME\"},{name:\"FREQ\"},{name:\"DIMENSION\"},{name:\"PERCENTAGE\"},{name:\"NUMBER\"},{name:\"URI\"},{name:\"FUNCTION\"},{name:\"UNICODE_RANGE\"},{name:\"INVALID\"},{name:\"PLUS\",text:\"+\"},{name:\"GREATER\",text:\">\"},{name:\"COMMA\",text:\",\"},{name:\"TILDE\",text:\"~\"},{name:\"NOT\"},{name:\"TOPLEFTCORNER_SYM\",text:\"@top-left-corner\"},{name:\"TOPLEFT_SYM\",text:\"@top-left\"},{name:\"TOPCENTER_SYM\",text:\"@top-center\"},{name:\"TOPRIGHT_SYM\",text:\"@top-right\"},{name:\"TOPRIGHTCORNER_SYM\",text:\"@top-right-corner\"},{name:\"BOTTOMLEFTCORNER_SYM\",text:\"@bottom-left-corner\"},{name:\"BOTTOMLEFT_SYM\",text:\"@bottom-left\"},{name:\"BOTTOMCENTER_SYM\",text:\"@bottom-center\"},{name:\"BOTTOMRIGHT_SYM\",text:\"@bottom-right\"},{name:\"BOTTOMRIGHTCORNER_SYM\",text:\"@bottom-right-corner\"},{name:\"LEFTTOP_SYM\",text:\"@left-top\"},{name:\"LEFTMIDDLE_SYM\",text:\"@left-middle\"},{name:\"LEFTBOTTOM_SYM\",text:\"@left-bottom\"},{name:\"RIGHTTOP_SYM\",text:\"@right-top\"},{name:\"RIGHTMIDDLE_SYM\",text:\"@right-middle\"},{name:\"RIGHTBOTTOM_SYM\",text:\"@right-bottom\"},{name:\"RESOLUTION\",state:\"media\"},{name:\"IE_FUNCTION\"},{name:\"CHAR\"},{name:\"PIPE\",text:\"|\"},{name:\"SLASH\",text:\"/\"},{name:\"MINUS\",text:\"-\"},{name:\"STAR\",text:\"*\"},{name:\"LBRACE\",endChar:\"}\",text:\"{\"},{name:\"RBRACE\",text:\"}\"},{name:\"LBRACKET\",endChar:\"]\",text:\"[\"},{name:\"RBRACKET\",text:\"]\"},{name:\"EQUALS\",text:\"=\"},{name:\"COLON\",text:\":\"},{name:\"SEMICOLON\",text:\";\"},{name:\"LPAREN\",endChar:\")\",text:\"(\"},{name:\"RPAREN\",text:\")\"},{name:\"DOT\",text:\".\"}];(function(){var e=[],t={};Tokens.UNKNOWN=-1,Tokens.unshift({name:\"EOF\"});for(var n=0,r=Tokens.length;n<r;n++){e.push(Tokens[n].name),Tokens[Tokens[n].name]=n;if(Tokens[n].text)if(Tokens[n].text instanceof Array)for(var i=0;i<Tokens[n].text.length;i++)t[Tokens[n].text[i]]=n;else t[Tokens[n].text]=n}Tokens.name=function(t){return e[t]},Tokens.type=function(e){return t[e]||-1}})();var Validation={validate:function(e,t){var n=e.toString().toLowerCase(),r=t.parts,i=new PropertyValueIterator(t),s=Properties[n],o,u,a,f,l,c,h,p,d,v,m;if(!s){if(n.indexOf(\"-\")!==0)throw new ValidationError(\"Unknown property '\"+e+\"'.\",e.line,e.col)}else typeof s!=\"number\"&&(typeof s==\"string\"?s.indexOf(\"||\")>-1?this.groupProperty(s,i):this.singleProperty(s,i,1):s.multi?this.multiProperty(s.multi,i,s.comma,s.max||Infinity):typeof s==\"function\"&&s(i))},singleProperty:function(e,t,n,r){var i=!1,s=t.value,o=0,u;while(t.hasNext()&&o<n){i=ValidationTypes.isAny(t,e);if(!i)break;o++}if(!i)throw t.hasNext()&&!t.isFirst()?(u=t.peek(),new ValidationError(\"Expected end of value but found '\"+u+\"'.\",u.line,u.col)):new ValidationError(\"Expected (\"+e+\") but found '\"+s+\"'.\",s.line,s.col);if(t.hasNext())throw u=t.next(),new ValidationError(\"Expected end of value but found '\"+u+\"'.\",u.line,u.col)},multiProperty:function(e,t,n,r){var i=!1,s=t.value,o=0,u=!1,a;while(t.hasNext()&&!i&&o<r){if(!ValidationTypes.isAny(t,e))break;o++;if(!t.hasNext())i=!0;else if(n){if(t.peek()!=\",\")break;a=t.next()}}if(!i)throw t.hasNext()&&!t.isFirst()?(a=t.peek(),new ValidationError(\"Expected end of value but found '\"+a+\"'.\",a.line,a.col)):(a=t.previous(),n&&a==\",\"?new ValidationError(\"Expected end of value but found '\"+a+\"'.\",a.line,a.col):new ValidationError(\"Expected (\"+e+\") but found '\"+s+\"'.\",s.line,s.col));if(t.hasNext())throw a=t.next(),new ValidationError(\"Expected end of value but found '\"+a+\"'.\",a.line,a.col)},groupProperty:function(e,t,n){var r=!1,i=t.value,s=e.split(\"||\").length,o={count:0},u=!1,a,f;while(t.hasNext()&&!r){a=ValidationTypes.isAnyOfGroup(t,e);if(!a)break;if(o[a])break;o[a]=1,o.count++,u=!0;if(o.count==s||!t.hasNext())r=!0}if(!r)throw u&&t.hasNext()?(f=t.peek(),new ValidationError(\"Expected end of value but found '\"+f+\"'.\",f.line,f.col)):new ValidationError(\"Expected (\"+e+\") but found '\"+i+\"'.\",i.line,i.col);if(t.hasNext())throw f=t.next(),new ValidationError(\"Expected end of value but found '\"+f+\"'.\",f.line,f.col)}};ValidationError.prototype=new Error;var ValidationTypes={isLiteral:function(e,t){var n=e.text.toString().toLowerCase(),r=t.split(\" | \"),i,s,o=!1;for(i=0,s=r.length;i<s&&!o;i++)n==r[i].toLowerCase()&&(o=!0);return o},isSimple:function(e){return!!this.simple[e]},isComplex:function(e){return!!this.complex[e]},isAny:function(e,t){var n=t.split(\" | \"),r,i,s=!1;for(r=0,i=n.length;r<i&&!s&&e.hasNext();r++)s=this.isType(e,n[r]);return s},isAnyOfGroup:function(e,t){var n=t.split(\" || \"),r,i,s=!1;for(r=0,i=n.length;r<i&&!s;r++)s=this.isType(e,n[r]);return s?n[r-1]:!1},isType:function(e,t){var n=e.peek(),r=!1;return t.charAt(0)!=\"<\"?(r=this.isLiteral(n,t),r&&e.next()):this.simple[t]?(r=this.simple[t](n),r&&e.next()):r=this.complex[t](e),r},simple:{\"<absolute-size>\":function(e){return ValidationTypes.isLiteral(e,\"xx-small | x-small | small | medium | large | x-large | xx-large\")},\"<attachment>\":function(e){return ValidationTypes.isLiteral(e,\"scroll | fixed | local\")},\"<attr>\":function(e){return e.type==\"function\"&&e.name==\"attr\"},\"<bg-image>\":function(e){return this[\"<image>\"](e)||this[\"<gradient>\"](e)||e==\"none\"},\"<gradient>\":function(e){return e.type==\"function\"&&/^(?:\\-(?:ms|moz|o|webkit)\\-)?(?:repeating\\-)?(?:radial\\-|linear\\-)?gradient/i.test(e)},\"<box>\":function(e){return ValidationTypes.isLiteral(e,\"padding-box | border-box | content-box\")},\"<content>\":function(e){return e.type==\"function\"&&e.name==\"content\"},\"<relative-size>\":function(e){return ValidationTypes.isLiteral(e,\"smaller | larger\")},\"<ident>\":function(e){return e.type==\"identifier\"},\"<length>\":function(e){return e.type==\"function\"&&/^(?:\\-(?:ms|moz|o|webkit)\\-)?calc/i.test(e)?!0:e.type==\"length\"||e.type==\"number\"||e.type==\"integer\"||e==\"0\"},\"<color>\":function(e){return e.type==\"color\"||e==\"transparent\"},\"<number>\":function(e){return e.type==\"number\"||this[\"<integer>\"](e)},\"<integer>\":function(e){return e.type==\"integer\"},\"<line>\":function(e){return e.type==\"integer\"},\"<angle>\":function(e){return e.type==\"angle\"},\"<uri>\":function(e){return e.type==\"uri\"},\"<image>\":function(e){return this[\"<uri>\"](e)},\"<percentage>\":function(e){return e.type==\"percentage\"||e==\"0\"},\"<border-width>\":function(e){return this[\"<length>\"](e)||ValidationTypes.isLiteral(e,\"thin | medium | thick\")},\"<border-style>\":function(e){return ValidationTypes.isLiteral(e,\"none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset\")},\"<content-sizing>\":function(e){return ValidationTypes.isLiteral(e,\"fill-available | -moz-available | -webkit-fill-available | max-content | -moz-max-content | -webkit-max-content | min-content | -moz-min-content | -webkit-min-content | fit-content | -moz-fit-content | -webkit-fit-content\")},\"<margin-width>\":function(e){return this[\"<length>\"](e)||this[\"<percentage>\"](e)||ValidationTypes.isLiteral(e,\"auto\")},\"<padding-width>\":function(e){return this[\"<length>\"](e)||this[\"<percentage>\"](e)},\"<shape>\":function(e){return e.type==\"function\"&&(e.name==\"rect\"||e.name==\"inset-rect\")},\"<time>\":function(e){return e.type==\"time\"},\"<flex-grow>\":function(e){return this[\"<number>\"](e)},\"<flex-shrink>\":function(e){return this[\"<number>\"](e)},\"<width>\":function(e){return this[\"<margin-width>\"](e)},\"<flex-basis>\":function(e){return this[\"<width>\"](e)},\"<flex-direction>\":function(e){return ValidationTypes.isLiteral(e,\"row | row-reverse | column | column-reverse\")},\"<flex-wrap>\":function(e){return ValidationTypes.isLiteral(e,\"nowrap | wrap | wrap-reverse\")}},complex:{\"<bg-position>\":function(e){var t=this,n=!1,r=\"<percentage> | <length>\",i=\"left | right\",s=\"top | bottom\",o=0,u=function(){return e.hasNext()&&e.peek()!=\",\"};while(e.peek(o)&&e.peek(o)!=\",\")o++;return o<3?ValidationTypes.isAny(e,i+\" | center | \"+r)?(n=!0,ValidationTypes.isAny(e,s+\" | center | \"+r)):ValidationTypes.isAny(e,s)&&(n=!0,ValidationTypes.isAny(e,i+\" | center\")):ValidationTypes.isAny(e,i)?ValidationTypes.isAny(e,s)?(n=!0,ValidationTypes.isAny(e,r)):ValidationTypes.isAny(e,r)&&(ValidationTypes.isAny(e,s)?(n=!0,ValidationTypes.isAny(e,r)):ValidationTypes.isAny(e,\"center\")&&(n=!0)):ValidationTypes.isAny(e,s)?ValidationTypes.isAny(e,i)?(n=!0,ValidationTypes.isAny(e,r)):ValidationTypes.isAny(e,r)&&(ValidationTypes.isAny(e,i)?(n=!0,ValidationTypes.isAny(e,r)):ValidationTypes.isAny(e,\"center\")&&(n=!0)):ValidationTypes.isAny(e,\"center\")&&ValidationTypes.isAny(e,i+\" | \"+s)&&(n=!0,ValidationTypes.isAny(e,r)),n},\"<bg-size>\":function(e){var t=this,n=!1,r=\"<percentage> | <length> | auto\",i,s,o;return ValidationTypes.isAny(e,\"cover | contain\")?n=!0:ValidationTypes.isAny(e,r)&&(n=!0,ValidationTypes.isAny(e,r)),n},\"<repeat-style>\":function(e){var t=!1,n=\"repeat | space | round | no-repeat\",r;return e.hasNext()&&(r=e.next(),ValidationTypes.isLiteral(r,\"repeat-x | repeat-y\")?t=!0:ValidationTypes.isLiteral(r,n)&&(t=!0,e.hasNext()&&ValidationTypes.isLiteral(e.peek(),n)&&e.next())),t},\"<shadow>\":function(e){var t=!1,n=0,r=!1,i=!1,s;if(e.hasNext()){ValidationTypes.isAny(e,\"inset\")&&(r=!0),ValidationTypes.isAny(e,\"<color>\")&&(i=!0);while(ValidationTypes.isAny(e,\"<length>\")&&n<4)n++;e.hasNext()&&(i||ValidationTypes.isAny(e,\"<color>\"),r||ValidationTypes.isAny(e,\"inset\")),t=n>=2&&n<=4}return t},\"<x-one-radius>\":function(e){var t=!1,n=\"<length> | <percentage> | inherit\";return ValidationTypes.isAny(e,n)&&(t=!0,ValidationTypes.isAny(e,n)),t},\"<flex>\":function(e){var t,n=!1;ValidationTypes.isAny(e,\"none | inherit\")?n=!0:ValidationTypes.isType(e,\"<flex-grow>\")?e.peek()?ValidationTypes.isType(e,\"<flex-shrink>\")?e.peek()?n=ValidationTypes.isType(e,\"<flex-basis>\"):n=!0:ValidationTypes.isType(e,\"<flex-basis>\")&&(n=e.peek()===null):n=!0:ValidationTypes.isType(e,\"<flex-basis>\")&&(n=!0);if(!n)throw t=e.peek(),new ValidationError(\"Expected (none | [ <flex-grow> <flex-shrink>? || <flex-basis> ]) but found '\"+e.value.text+\"'.\",t.line,t.col);return n}}};parserlib.css={Colors:Colors,Combinator:Combinator,Parser:Parser,PropertyName:PropertyName,PropertyValue:PropertyValue,PropertyValuePart:PropertyValuePart,MediaFeature:MediaFeature,MediaQuery:MediaQuery,Selector:Selector,SelectorPart:SelectorPart,SelectorSubPart:SelectorSubPart,Specificity:Specificity,TokenStream:TokenStream,Tokens:Tokens,ValidationError:ValidationError}}(),function(){for(var e in parserlib)exports[e]=parserlib[e]}();var util={isArray:function(e){return Array.isArray(e)||typeof e==\"object\"&&objectToString(e)===\"[object Array]\"},isDate:function(e){return typeof e==\"object\"&&objectToString(e)===\"[object Date]\"},isRegExp:function(e){return typeof e==\"object\"&&objectToString(e)===\"[object RegExp]\"},getRegExpFlags:function(e){var t=\"\";return e.global&&(t+=\"g\"),e.ignoreCase&&(t+=\"i\"),e.multiline&&(t+=\"m\"),t}};typeof module==\"object\"&&(module.exports=clone),clone.clonePrototype=function(e){if(e===null)return null;var t=function(){};return t.prototype=e,new t};var CSSLint=function(){function i(e,t){var r,i=e&&e.match(n),s=i&&i[1];return s&&(r={\"true\":2,\"\":1,\"false\":0,2:2,1:1,0:0},s.toLowerCase().split(\",\").forEach(function(e){var n=e.split(\":\"),i=n[0]||\"\",s=n[1]||\"\";t[i.trim()]=r[s.trim()]})),t}var e=[],t=[],n=/\\/\\*csslint([^\\*]*)\\*\\//,r=new parserlib.util.EventTarget;return r.version=\"@VERSION@\",r.addRule=function(t){e.push(t),e[t.id]=t},r.clearRules=function(){e=[]},r.getRules=function(){return[].concat(e).sort(function(e,t){return e.id>t.id?1:0})},r.getRuleset=function(){var t={},n=0,r=e.length;while(n<r)t[e[n++].id]=1;return t},r.addFormatter=function(e){t[e.id]=e},r.getFormatter=function(e){return t[e]},r.format=function(e,t,n,r){var i=this.getFormatter(n),s=null;return i&&(s=i.startFormat(),s+=i.formatResults(e,t,r||{}),s+=i.endFormat()),s},r.hasFormat=function(e){return t.hasOwnProperty(e)},r.verify=function(t,r){var s=0,o,u,a,f=new parserlib.css.Parser({starHack:!0,ieFilters:!0,underscoreHack:!0,strict:!1});u=t.replace(/\\n\\r?/g,\"$split$\").split(\"$split$\"),r||(r=this.getRuleset()),n.test(t)&&(r=clone(r),r=i(t,r)),o=new Reporter(u,r),r.errors=2;for(s in r)r.hasOwnProperty(s)&&r[s]&&e[s]&&e[s].init(f,o);try{f.parse(t)}catch(l){o.error(\"Fatal error, cannot continue: \"+l.message,l.line,l.col,{})}return a={messages:o.messages,stats:o.stats,ruleset:o.ruleset},a.messages.sort(function(e,t){return e.rollup&&!t.rollup?1:!e.rollup&&t.rollup?-1:e.line-t.line}),a},r}();Reporter.prototype={constructor:Reporter,error:function(e,t,n,r){this.messages.push({type:\"error\",line:t,col:n,message:e,evidence:this.lines[t-1],rule:r||{}})},warn:function(e,t,n,r){this.report(e,t,n,r)},report:function(e,t,n,r){this.messages.push({type:this.ruleset[r.id]===2?\"error\":\"warning\",line:t,col:n,message:e,evidence:this.lines[t-1],rule:r})},info:function(e,t,n,r){this.messages.push({type:\"info\",line:t,col:n,message:e,evidence:this.lines[t-1],rule:r})},rollupError:function(e,t){this.messages.push({type:\"error\",rollup:!0,message:e,rule:t})},rollupWarn:function(e,t){this.messages.push({type:\"warning\",rollup:!0,message:e,rule:t})},stat:function(e,t){this.stats[e]=t}},CSSLint._Reporter=Reporter,CSSLint.Util={mix:function(e,t){var n;for(n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return n},indexOf:function(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},forEach:function(e,t){if(e.forEach)return e.forEach(t);for(var n=0,r=e.length;n<r;n++)t(e[n],n,e)}},CSSLint.addRule({id:\"adjoining-classes\",name:\"Disallow adjoining classes\",desc:\"Don't use adjoining classes.\",browsers:\"IE6\",init:function(e,t){var n=this;e.addListener(\"startrule\",function(r){var i=r.selectors,s,o,u,a,f,l,c;for(f=0;f<i.length;f++){s=i[f];for(l=0;l<s.parts.length;l++){o=s.parts[l];if(o.type===e.SELECTOR_PART_TYPE){a=0;for(c=0;c<o.modifiers.length;c++)u=o.modifiers[c],u.type===\"class\"&&a++,a>1&&t.report(\"Don't use adjoining classes.\",o.line,o.col,n)}}}})}}),CSSLint.addRule({id:\"box-model\",name:\"Beware of broken box size\",desc:\"Don't use width or height when using padding or border.\",browsers:\"All\",init:function(e,t){function u(){s={},o=!1}function a(){var e,u;if(!o){if(s.height)for(e in i)i.hasOwnProperty(e)&&s[e]&&(u=s[e].value,(e!==\"padding\"||u.parts.length!==2||u.parts[0].value!==0)&&t.report(\"Using height with \"+e+\" can sometimes make elements larger than you expect.\",s[e].line,s[e].col,n));if(s.width)for(e in r)r.hasOwnProperty(e)&&s[e]&&(u=s[e].value,(e!==\"padding\"||u.parts.length!==2||u.parts[1].value!==0)&&t.report(\"Using width with \"+e+\" can sometimes make elements larger than you expect.\",s[e].line,s[e].col,n))}}var n=this,r={border:1,\"border-left\":1,\"border-right\":1,padding:1,\"padding-left\":1,\"padding-right\":1},i={border:1,\"border-bottom\":1,\"border-top\":1,padding:1,\"padding-bottom\":1,\"padding-top\":1},s,o=!1;e.addListener(\"startrule\",u),e.addListener(\"startfontface\",u),e.addListener(\"startpage\",u),e.addListener(\"startpagemargin\",u),e.addListener(\"startkeyframerule\",u),e.addListener(\"property\",function(e){var t=e.property.text.toLowerCase();i[t]||r[t]?!/^0\\S*$/.test(e.value)&&(t!==\"border\"||e.value.toString()!==\"none\")&&(s[t]={line:e.property.line,col:e.property.col,value:e.value}):/^(width|height)/i.test(t)&&/^(length|percentage)/.test(e.value.parts[0].type)?s[t]=1:t===\"box-sizing\"&&(o=!0)}),e.addListener(\"endrule\",a),e.addListener(\"endfontface\",a),e.addListener(\"endpage\",a),e.addListener(\"endpagemargin\",a),e.addListener(\"endkeyframerule\",a)}}),CSSLint.addRule({id:\"box-sizing\",name:\"Disallow use of box-sizing\",desc:\"The box-sizing properties isn't supported in IE6 and IE7.\",browsers:\"IE6, IE7\",tags:[\"Compatibility\"],init:function(e,t){var n=this;e.addListener(\"property\",function(e){var r=e.property.text.toLowerCase();r===\"box-sizing\"&&t.report(\"The box-sizing property isn't supported in IE6 and IE7.\",e.line,e.col,n)})}}),CSSLint.addRule({id:\"bulletproof-font-face\",name:\"Use the bulletproof @font-face syntax\",desc:\"Use the bulletproof @font-face syntax to avoid 404's in old IE (http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax).\",browsers:\"All\",init:function(e,t){var n=this,r=!1,i=!0,s=!1,o,u;e.addListener(\"startfontface\",function(){r=!0}),e.addListener(\"property\",function(e){if(!r)return;var t=e.property.toString().toLowerCase(),n=e.value.toString();o=e.line,u=e.col;if(t===\"src\"){var a=/^\\s?url\\(['\"].+\\.eot\\?.*['\"]\\)\\s*format\\(['\"]embedded-opentype['\"]\\).*$/i;!n.match(a)&&i?(s=!0,i=!1):n.match(a)&&!i&&(s=!1)}}),e.addListener(\"endfontface\",function(){r=!1,s&&t.report(\"@font-face declaration doesn't follow the fontspring bulletproof syntax.\",o,u,n)})}}),CSSLint.addRule({id:\"compatible-vendor-prefixes\",name:\"Require compatible vendor prefixes\",desc:\"Include all compatible vendor prefixes to reach a wider range of users.\",browsers:\"All\",init:function(e,t){var n=this,r,i,s,o,u,a,f,l=!1,c=Array.prototype.push,h=[];r={animation:\"webkit moz\",\"animation-delay\":\"webkit moz\",\"animation-direction\":\"webkit moz\",\"animation-duration\":\"webkit moz\",\"animation-fill-mode\":\"webkit moz\",\"animation-iteration-count\":\"webkit moz\",\"animation-name\":\"webkit moz\",\"animation-play-state\":\"webkit moz\",\"animation-timing-function\":\"webkit moz\",appearance:\"webkit moz\",\"border-end\":\"webkit moz\",\"border-end-color\":\"webkit moz\",\"border-end-style\":\"webkit moz\",\"border-end-width\":\"webkit moz\",\"border-image\":\"webkit moz o\",\"border-radius\":\"webkit\",\"border-start\":\"webkit moz\",\"border-start-color\":\"webkit moz\",\"border-start-style\":\"webkit moz\",\"border-start-width\":\"webkit moz\",\"box-align\":\"webkit moz ms\",\"box-direction\":\"webkit moz ms\",\"box-flex\":\"webkit moz ms\",\"box-lines\":\"webkit ms\",\"box-ordinal-group\":\"webkit moz ms\",\"box-orient\":\"webkit moz ms\",\"box-pack\":\"webkit moz ms\",\"box-sizing\":\"webkit moz\",\"box-shadow\":\"webkit moz\",\"column-count\":\"webkit moz ms\",\"column-gap\":\"webkit moz ms\",\"column-rule\":\"webkit moz ms\",\"column-rule-color\":\"webkit moz ms\",\"column-rule-style\":\"webkit moz ms\",\"column-rule-width\":\"webkit moz ms\",\"column-width\":\"webkit moz ms\",hyphens:\"epub moz\",\"line-break\":\"webkit ms\",\"margin-end\":\"webkit moz\",\"margin-start\":\"webkit moz\",\"marquee-speed\":\"webkit wap\",\"marquee-style\":\"webkit wap\",\"padding-end\":\"webkit moz\",\"padding-start\":\"webkit moz\",\"tab-size\":\"moz o\",\"text-size-adjust\":\"webkit ms\",transform:\"webkit moz ms o\",\"transform-origin\":\"webkit moz ms o\",transition:\"webkit moz o\",\"transition-delay\":\"webkit moz o\",\"transition-duration\":\"webkit moz o\",\"transition-property\":\"webkit moz o\",\"transition-timing-function\":\"webkit moz o\",\"user-modify\":\"webkit moz\",\"user-select\":\"webkit moz ms\",\"word-break\":\"epub ms\",\"writing-mode\":\"epub ms\"};for(s in r)if(r.hasOwnProperty(s)){o=[],u=r[s].split(\" \");for(a=0,f=u.length;a<f;a++)o.push(\"-\"+u[a]+\"-\"+s);r[s]=o,c.apply(h,o)}e.addListener(\"startrule\",function(){i=[]}),e.addListener(\"startkeyframes\",function(e){l=e.prefix||!0}),e.addListener(\"endkeyframes\",function(){l=!1}),e.addListener(\"property\",function(e){var t=e.property;CSSLint.Util.indexOf(h,t.text)>-1&&(!l||typeof l!=\"string\"||t.text.indexOf(\"-\"+l+\"-\")!==0)&&i.push(t)}),e.addListener(\"endrule\",function(){if(!i.length)return;var e={},s,o,u,a,f,l,c,h,p,d;for(s=0,o=i.length;s<o;s++){u=i[s];for(a in r)r.hasOwnProperty(a)&&(f=r[a],CSSLint.Util.indexOf(f,u.text)>-1&&(e[a]||(e[a]={full:f.slice(0),actual:[],actualNodes:[]}),CSSLint.Util.indexOf(e[a].actual,u.text)===-1&&(e[a].actual.push(u.text),e[a].actualNodes.push(u))))}for(a in e)if(e.hasOwnProperty(a)){l=e[a],c=l.full,h=l.actual;if(c.length>h.length)for(s=0,o=c.length;s<o;s++)p=c[s],CSSLint.Util.indexOf(h,p)===-1&&(d=h.length===1?h[0]:h.length===2?h.join(\" and \"):h.join(\", \"),t.report(\"The property \"+p+\" is compatible with \"+d+\" and should be included as well.\",l.actualNodes[0].line,l.actualNodes[0].col,n))}})}}),CSSLint.addRule({id:\"display-property-grouping\",name:\"Require properties appropriate for display\",desc:\"Certain properties shouldn't be used with certain display property values.\",browsers:\"All\",init:function(e,t){function s(e,s,o){i[e]&&(typeof r[e]!=\"string\"||i[e].value.toLowerCase()!==r[e])&&t.report(o||e+\" can't be used with display: \"+s+\".\",i[e].line,i[e].col,n)}function o(){i={}}function u(){var e=i.display?i.display.value:null;if(e)switch(e){case\"inline\":s(\"height\",e),s(\"width\",e),s(\"margin\",e),s(\"margin-top\",e),s(\"margin-bottom\",e),s(\"float\",e,\"display:inline has no effect on floated elements (but may be used to fix the IE6 double-margin bug).\");break;case\"block\":s(\"vertical-align\",e);break;case\"inline-block\":s(\"float\",e);break;default:e.indexOf(\"table-\")===0&&(s(\"margin\",e),s(\"margin-left\",e),s(\"margin-right\",e),s(\"margin-top\",e),s(\"margin-bottom\",e),s(\"float\",e))}}var n=this,r={display:1,\"float\":\"none\",height:1,width:1,margin:1,\"margin-left\":1,\"margin-right\":1,\"margin-bottom\":1,\"margin-top\":1,padding:1,\"padding-left\":1,\"padding-right\":1,\"padding-bottom\":1,\"padding-top\":1,\"vertical-align\":1},i;e.addListener(\"startrule\",o),e.addListener(\"startfontface\",o),e.addListener(\"startkeyframerule\",o),e.addListener(\"startpagemargin\",o),e.addListener(\"startpage\",o),e.addListener(\"property\",function(e){var t=e.property.text.toLowerCase();r[t]&&(i[t]={value:e.value.text,line:e.property.line,col:e.property.col})}),e.addListener(\"endrule\",u),e.addListener(\"endfontface\",u),e.addListener(\"endkeyframerule\",u),e.addListener(\"endpagemargin\",u),e.addListener(\"endpage\",u)}}),CSSLint.addRule({id:\"duplicate-background-images\",name:\"Disallow duplicate background images\",desc:\"Every background-image should be unique. Use a common class for e.g. sprites.\",browsers:\"All\",init:function(e,t){var n=this,r={};e.addListener(\"property\",function(e){var i=e.property.text,s=e.value,o,u;if(i.match(/background/i))for(o=0,u=s.parts.length;o<u;o++)s.parts[o].type===\"uri\"&&(typeof r[s.parts[o].uri]==\"undefined\"?r[s.parts[o].uri]=e:t.report(\"Background image '\"+s.parts[o].uri+\"' was used multiple times, first declared at line \"+r[s.parts[o].uri].line+\", col \"+r[s.parts[o].uri].col+\".\",e.line,e.col,n))})}}),CSSLint.addRule({id:\"duplicate-properties\",name:\"Disallow duplicate properties\",desc:\"Duplicate properties must appear one after the other.\",browsers:\"All\",init:function(e,t){function s(){r={}}var n=this,r,i;e.addListener(\"startrule\",s),e.addListener(\"startfontface\",s),e.addListener(\"startpage\",s),e.addListener(\"startpagemargin\",s),e.addListener(\"startkeyframerule\",s),e.addListener(\"property\",function(e){var s=e.property,o=s.text.toLowerCase();r[o]&&(i!==o||r[o]===e.value.text)&&t.report(\"Duplicate property '\"+e.property+\"' found.\",e.line,e.col,n),r[o]=e.value.text,i=o})}}),CSSLint.addRule({id:\"empty-rules\",name:\"Disallow empty rules\",desc:\"Rules without any properties specified should be removed.\",browsers:\"All\",init:function(e,t){var n=this,r=0;e.addListener(\"startrule\",function(){r=0}),e.addListener(\"property\",function(){r++}),e.addListener(\"endrule\",function(e){var i=e.selectors;r===0&&t.report(\"Rule is empty.\",i[0].line,i[0].col,n)})}}),CSSLint.addRule({id:\"errors\",name:\"Parsing Errors\",desc:\"This rule looks for recoverable syntax errors.\",browsers:\"All\",init:function(e,t){var n=this;e.addListener(\"error\",function(e){t.error(e.message,e.line,e.col,n)})}}),CSSLint.addRule({id:\"fallback-colors\",name:\"Require fallback colors\",desc:\"For older browsers that don't support RGBA, HSL, or HSLA, provide a fallback color.\",browsers:\"IE6,IE7,IE8\",init:function(e,t){function o(){s={},r=null}var n=this,r,i={color:1,background:1,\"border-color\":1,\"border-top-color\":1,\"border-right-color\":1,\"border-bottom-color\":1,\"border-left-color\":1,border:1,\"border-top\":1,\"border-right\":1,\"border-bottom\":1,\"border-left\":1,\"background-color\":1},s;e.addListener(\"startrule\",o),e.addListener(\"startfontface\",o),e.addListener(\"startpage\",o),e.addListener(\"startpagemargin\",o),e.addListener(\"startkeyframerule\",o),e.addListener(\"property\",function(e){var s=e.property,o=s.text.toLowerCase(),u=e.value.parts,a=0,f=\"\",l=u.length;if(i[o])while(a<l)u[a].type===\"color\"&&(\"alpha\"in u[a]||\"hue\"in u[a]?(/([^\\)]+)\\(/.test(u[a])&&(f=RegExp.$1.toUpperCase()),(!r||r.property.text.toLowerCase()!==o||r.colorType!==\"compat\")&&t.report(\"Fallback \"+o+\" (hex or RGB) should precede \"+f+\" \"+o+\".\",e.line,e.col,n)):e.colorType=\"compat\"),a++;r=e})}}),CSSLint.addRule({id:\"floats\",name:\"Disallow too many floats\",desc:\"This rule tests if the float property is used too many times\",browsers:\"All\",init:function(e,t){var n=this,r=0;e.addListener(\"property\",function(e){e.property.text.toLowerCase()===\"float\"&&e.value.text.toLowerCase()!==\"none\"&&r++}),e.addListener(\"endstylesheet\",function(){t.stat(\"floats\",r),r>=10&&t.rollupWarn(\"Too many floats (\"+r+\"), you're probably using them for layout. Consider using a grid system instead.\",n)})}}),CSSLint.addRule({id:\"font-faces\",name:\"Don't use too many web fonts\",desc:\"Too many different web fonts in the same stylesheet.\",browsers:\"All\",init:function(e,t){var n=this,r=0;e.addListener(\"startfontface\",function(){r++}),e.addListener(\"endstylesheet\",function(){r>5&&t.rollupWarn(\"Too many @font-face declarations (\"+r+\").\",n)})}}),CSSLint.addRule({id:\"font-sizes\",name:\"Disallow too many font sizes\",desc:\"Checks the number of font-size declarations.\",browsers:\"All\",init:function(e,t){var n=this,r=0;e.addListener(\"property\",function(e){e.property.toString()===\"font-size\"&&r++}),e.addListener(\"endstylesheet\",function(){t.stat(\"font-sizes\",r),r>=10&&t.rollupWarn(\"Too many font-size declarations (\"+r+\"), abstraction needed.\",n)})}}),CSSLint.addRule({id:\"gradients\",name:\"Require all gradient definitions\",desc:\"When using a vendor-prefixed gradient, make sure to use them all.\",browsers:\"All\",init:function(e,t){var n=this,r;e.addListener(\"startrule\",function(){r={moz:0,webkit:0,oldWebkit:0,o:0}}),e.addListener(\"property\",function(e){/\\-(moz|o|webkit)(?:\\-(?:linear|radial))\\-gradient/i.test(e.value)?r[RegExp.$1]=1:/\\-webkit\\-gradient/i.test(e.value)&&(r.oldWebkit=1)}),e.addListener(\"endrule\",function(e){var i=[];r.moz||i.push(\"Firefox 3.6+\"),r.webkit||i.push(\"Webkit (Safari 5+, Chrome)\"),r.oldWebkit||i.push(\"Old Webkit (Safari 4+, Chrome)\"),r.o||i.push(\"Opera 11.1+\"),i.length&&i.length<4&&t.report(\"Missing vendor-prefixed CSS gradients for \"+i.join(\", \")+\".\",e.selectors[0].line,e.selectors[0].col,n)})}}),CSSLint.addRule({id:\"ids\",name:\"Disallow IDs in selectors\",desc:\"Selectors should not contain IDs.\",browsers:\"All\",init:function(e,t){var n=this;e.addListener(\"startrule\",function(r){var i=r.selectors,s,o,u,a,f,l,c;for(f=0;f<i.length;f++){s=i[f],a=0;for(l=0;l<s.parts.length;l++){o=s.parts[l];if(o.type===e.SELECTOR_PART_TYPE)for(c=0;c<o.modifiers.length;c++)u=o.modifiers[c],u.type===\"id\"&&a++}a===1?t.report(\"Don't use IDs in selectors.\",s.line,s.col,n):a>1&&t.report(a+\" IDs in the selector, really?\",s.line,s.col,n)}})}}),CSSLint.addRule({id:\"import\",name:\"Disallow @import\",desc:\"Don't use @import, use <link> instead.\",browsers:\"All\",init:function(e,t){var n=this;e.addListener(\"import\",function(e){t.report(\"@import prevents parallel downloads, use <link> instead.\",e.line,e.col,n)})}}),CSSLint.addRule({id:\"important\",name:\"Disallow !important\",desc:\"Be careful when using !important declaration\",browsers:\"All\",init:function(e,t){var n=this,r=0;e.addListener(\"property\",function(e){e.important===!0&&(r++,t.report(\"Use of !important\",e.line,e.col,n))}),e.addListener(\"endstylesheet\",function(){t.stat(\"important\",r),r>=10&&t.rollupWarn(\"Too many !important declarations (\"+r+\"), try to use less than 10 to avoid specificity issues.\",n)})}}),CSSLint.addRule({id:\"known-properties\",name:\"Require use of known properties\",desc:\"Properties should be known (listed in CSS3 specification) or be a vendor-prefixed property.\",browsers:\"All\",init:function(e,t){var n=this;e.addListener(\"property\",function(e){e.invalid&&t.report(e.invalid.message,e.line,e.col,n)})}}),CSSLint.addRule({id:\"order-alphabetical\",name:\"Alphabetical order\",desc:\"Assure properties are in alphabetical order\",browsers:\"All\",init:function(e,t){var n=this,r,i=function(){r=[]};e.addListener(\"startrule\",i),e.addListener(\"startfontface\",i),e.addListener(\"startpage\",i),e.addListener(\"startpagemargin\",i),e.addListener(\"startkeyframerule\",i),e.addListener(\"property\",function(e){var t=e.property.text,n=t.toLowerCase().replace(/^-.*?-/,\"\");r.push(n)}),e.addListener(\"endrule\",function(e){var i=r.join(\",\"),s=r.sort().join(\",\");i!==s&&t.report(\"Rule doesn't have all its properties in alphabetical ordered.\",e.line,e.col,n)})}}),CSSLint.addRule({id:\"outline-none\",name:\"Disallow outline: none\",desc:\"Use of outline: none or outline: 0 should be limited to :focus rules.\",browsers:\"All\",tags:[\"Accessibility\"],init:function(e,t){function i(e){e.selectors?r={line:e.line,col:e.col,selectors:e.selectors,propCount:0,outline:!1}:r=null}function s(){r&&r.outline&&(r.selectors.toString().toLowerCase().indexOf(\":focus\")===-1?t.report(\"Outlines should only be modified using :focus.\",r.line,r.col,n):r.propCount===1&&t.report(\"Outlines shouldn't be hidden unless other visual changes are made.\",r.line,r.col,n))}var n=this,r;e.addListener(\"startrule\",i),e.addListener(\"startfontface\",i),e.addListener(\"startpage\",i),e.addListener(\"startpagemargin\",i),e.addListener(\"startkeyframerule\",i),e.addListener(\"property\",function(e){var t=e.property.text.toLowerCase(),n=e.value;r&&(r.propCount++,t===\"outline\"&&(n.toString()===\"none\"||n.toString()===\"0\")&&(r.outline=!0))}),e.addListener(\"endrule\",s),e.addListener(\"endfontface\",s),e.addListener(\"endpage\",s),e.addListener(\"endpagemargin\",s),e.addListener(\"endkeyframerule\",s)}}),CSSLint.addRule({id:\"overqualified-elements\",name:\"Disallow overqualified elements\",desc:\"Don't use classes or IDs with elements (a.foo or a#foo).\",browsers:\"All\",init:function(e,t){var n=this,r={};e.addListener(\"startrule\",function(i){var s=i.selectors,o,u,a,f,l,c;for(f=0;f<s.length;f++){o=s[f];for(l=0;l<o.parts.length;l++){u=o.parts[l];if(u.type===e.SELECTOR_PART_TYPE)for(c=0;c<u.modifiers.length;c++)a=u.modifiers[c],u.elementName&&a.type===\"id\"?t.report(\"Element (\"+u+\") is overqualified, just use \"+a+\" without element name.\",u.line,u.col,n):a.type===\"class\"&&(r[a]||(r[a]=[]),r[a].push({modifier:a,part:u}))}}}),e.addListener(\"endstylesheet\",function(){var e;for(e in r)r.hasOwnProperty(e)&&r[e].length===1&&r[e][0].part.elementName&&t.report(\"Element (\"+r[e][0].part+\") is overqualified, just use \"+r[e][0].modifier+\" without element name.\",r[e][0].part.line,r[e][0].part.col,n)})}}),CSSLint.addRule({id:\"qualified-headings\",name:\"Disallow qualified headings\",desc:\"Headings should not be qualified (namespaced).\",browsers:\"All\",init:function(e,t){var n=this;e.addListener(\"startrule\",function(r){var i=r.selectors,s,o,u,a;for(u=0;u<i.length;u++){s=i[u];for(a=0;a<s.parts.length;a++)o=s.parts[a],o.type===e.SELECTOR_PART_TYPE&&o.elementName&&/h[1-6]/.test(o.elementName.toString())&&a>0&&t.report(\"Heading (\"+o.elementName+\") should not be qualified.\",o.line,o.col,n)}})}}),CSSLint.addRule({id:\"regex-selectors\",name:\"Disallow selectors that look like regexs\",desc:\"Selectors that look like regular expressions are slow and should be avoided.\",browsers:\"All\",init:function(e,t){var n=this;e.addListener(\"startrule\",function(r){var i=r.selectors,s,o,u,a,f,l;for(a=0;a<i.length;a++){s=i[a];for(f=0;f<s.parts.length;f++){o=s.parts[f];if(o.type===e.SELECTOR_PART_TYPE)for(l=0;l<o.modifiers.length;l++)u=o.modifiers[l],u.type===\"attribute\"&&/([\\~\\|\\^\\$\\*]=)/.test(u)&&t.report(\"Attribute selectors with \"+RegExp.$1+\" are slow!\",u.line,u.col,n)}}})}}),CSSLint.addRule({id:\"rules-count\",name:\"Rules Count\",desc:\"Track how many rules there are.\",browsers:\"All\",init:function(e,t){var n=0;e.addListener(\"startrule\",function(){n++}),e.addListener(\"endstylesheet\",function(){t.stat(\"rule-count\",n)})}}),CSSLint.addRule({id:\"selector-max-approaching\",name:\"Warn when approaching the 4095 selector limit for IE\",desc:\"Will warn when selector count is >= 3800 selectors.\",browsers:\"IE\",init:function(e,t){var n=this,r=0;e.addListener(\"startrule\",function(e){r+=e.selectors.length}),e.addListener(\"endstylesheet\",function(){r>=3800&&t.report(\"You have \"+r+\" selectors. Internet Explorer supports a maximum of 4095 selectors per stylesheet. Consider refactoring.\",0,0,n)})}}),CSSLint.addRule({id:\"selector-max\",name:\"Error when past the 4095 selector limit for IE\",desc:\"Will error when selector count is > 4095.\",browsers:\"IE\",init:function(e,t){var n=this,r=0;e.addListener(\"startrule\",function(e){r+=e.selectors.length}),e.addListener(\"endstylesheet\",function(){r>4095&&t.report(\"You have \"+r+\" selectors. Internet Explorer supports a maximum of 4095 selectors per stylesheet. Consider refactoring.\",0,0,n)})}}),CSSLint.addRule({id:\"selector-newline\",name:\"Disallow new-line characters in selectors\",desc:\"New-line characters in selectors are usually a forgotten comma and not a descendant combinator.\",browsers:\"All\",init:function(e,t){function r(e){var r,i,s,o,u,a,f,l,c,h,p,d=e.selectors;for(r=0,i=d.length;r<i;r++){s=d[r];for(o=0,a=s.parts.length;o<a;o++)for(u=o+1;u<a;u++)f=s.parts[o],l=s.parts[u],c=f.type,h=f.line,p=l.line,c===\"descendant\"&&p>h&&t.report(\"newline character found in selector (forgot a comma?)\",h,d[r].parts[0].col,n)}}var n=this;e.addListener(\"startrule\",r)}}),CSSLint.addRule({id:\"shorthand\",name:\"Require shorthand properties\",desc:\"Use shorthand properties where possible.\",browsers:\"All\",init:function(e,t){function f(){u={}}function l(e){var r,i,s,o;for(r in a)if(a.hasOwnProperty(r)){o=0;for(i=0,s=a[r].length;i<s;i++)o+=u[a[r][i]]?1:0;o===a[r].length&&t.report(\"The properties \"+a[r].join(\", \")+\" can be replaced by \"+r+\".\",e.line,e.col,n)}}var n=this,r,i,s,o={},u,a={margin:[\"margin-top\",\"margin-bottom\",\"margin-left\",\"margin-right\"],padding:[\"padding-top\",\"padding-bottom\",\"padding-left\",\"padding-right\"]};for(r in a)if(a.hasOwnProperty(r))for(i=0,s=a[r].length;i<s;i++)o[a[r][i]]=r;e.addListener(\"startrule\",f),e.addListener(\"startfontface\",f),e.addListener(\"property\",function(e){var t=e.property.toString().toLowerCase();o[t]&&(u[t]=1)}),e.addListener(\"endrule\",l),e.addListener(\"endfontface\",l)}}),CSSLint.addRule({id:\"star-property-hack\",name:\"Disallow properties with a star prefix\",desc:\"Checks for the star property hack (targets IE6/7)\",browsers:\"All\",init:function(e,t){var n=this;e.addListener(\"property\",function(e){var r=e.property;r.hack===\"*\"&&t.report(\"Property with star prefix found.\",e.property.line,e.property.col,n)})}}),CSSLint.addRule({id:\"text-indent\",name:\"Disallow negative text-indent\",desc:\"Checks for text indent less than -99px\",browsers:\"All\",init:function(e,t){function s(){r=!1,i=\"inherit\"}function o(){r&&i!==\"ltr\"&&t.report(\"Negative text-indent doesn't work well with RTL. If you use text-indent for image replacement explicitly set direction for that item to ltr.\",r.line,r.col,n)}var n=this,r,i;e.addListener(\"startrule\",s),e.addListener(\"startfontface\",s),e.addListener(\"property\",function(e){var t=e.property.toString().toLowerCase(),n=e.value;t===\"text-indent\"&&n.parts[0].value<-99?r=e.property:t===\"direction\"&&n.toString()===\"ltr\"&&(i=\"ltr\")}),e.addListener(\"endrule\",o),e.addListener(\"endfontface\",o)}}),CSSLint.addRule({id:\"underscore-property-hack\",name:\"Disallow properties with an underscore prefix\",desc:\"Checks for the underscore property hack (targets IE6)\",browsers:\"All\",init:function(e,t){var n=this;e.addListener(\"property\",function(e){var r=e.property;r.hack===\"_\"&&t.report(\"Property with underscore prefix found.\",e.property.line,e.property.col,n)})}}),CSSLint.addRule({id:\"unique-headings\",name:\"Headings should only be defined once\",desc:\"Headings should be defined only once.\",browsers:\"All\",init:function(e,t){var n=this,r={h1:0,h2:0,h3:0,h4:0,h5:0,h6:0};e.addListener(\"startrule\",function(e){var i=e.selectors,s,o,u,a,f;for(a=0;a<i.length;a++){s=i[a],o=s.parts[s.parts.length-1];if(o.elementName&&/(h[1-6])/i.test(o.elementName.toString())){for(f=0;f<o.modifiers.length;f++)if(o.modifiers[f].type===\"pseudo\"){u=!0;break}u||(r[RegExp.$1]++,r[RegExp.$1]>1&&t.report(\"Heading (\"+o.elementName+\") has already been defined.\",o.line,o.col,n))}}}),e.addListener(\"endstylesheet\",function(){var e,i=[];for(e in r)r.hasOwnProperty(e)&&r[e]>1&&i.push(r[e]+\" \"+e+\"s\");i.length&&t.rollupWarn(\"You have \"+i.join(\", \")+\" defined in this stylesheet.\",n)})}}),CSSLint.addRule({id:\"universal-selector\",name:\"Disallow universal selector\",desc:\"The universal selector (*) is known to be slow.\",browsers:\"All\",init:function(e,t){var n=this;e.addListener(\"startrule\",function(e){var r=e.selectors,i,s,o;for(o=0;o<r.length;o++)i=r[o],s=i.parts[i.parts.length-1],s.elementName===\"*\"&&t.report(n.desc,s.line,s.col,n)})}}),CSSLint.addRule({id:\"unqualified-attributes\",name:\"Disallow unqualified attribute selectors\",desc:\"Unqualified attribute selectors are known to be slow.\",browsers:\"All\",init:function(e,t){var n=this;e.addListener(\"startrule\",function(r){var i=r.selectors,s,o,u,a,f;for(a=0;a<i.length;a++){s=i[a],o=s.parts[s.parts.length-1];if(o.type===e.SELECTOR_PART_TYPE)for(f=0;f<o.modifiers.length;f++)u=o.modifiers[f],u.type===\"attribute\"&&(!o.elementName||o.elementName===\"*\")&&t.report(n.desc,o.line,o.col,n)}})}}),CSSLint.addRule({id:\"vendor-prefix\",name:\"Require standard property with vendor prefix\",desc:\"When using a vendor-prefixed property, make sure to include the standard one.\",browsers:\"All\",init:function(e,t){function o(){r={},i=1}function u(){var e,i,o,u,a,f=[];for(e in r)s[e]&&f.push({actual:e,needed:s[e]});for(i=0,o=f.length;i<o;i++)u=f[i].needed,a=f[i].actual,r[u]?r[u][0].pos<r[a][0].pos&&t.report(\"Standard property '\"+u+\"' should come after vendor-prefixed property '\"+a+\"'.\",r[a][0].name.line,r[a][0].name.col,n):t.report(\"Missing standard property '\"+u+\"' to go along with '\"+a+\"'.\",r[a][0].name.line,r[a][0].name.col,n)}var n=this,r,i,s={\"-webkit-border-radius\":\"border-radius\",\"-webkit-border-top-left-radius\":\"border-top-left-radius\",\"-webkit-border-top-right-radius\":\"border-top-right-radius\",\"-webkit-border-bottom-left-radius\":\"border-bottom-left-radius\",\"-webkit-border-bottom-right-radius\":\"border-bottom-right-radius\",\"-o-border-radius\":\"border-radius\",\"-o-border-top-left-radius\":\"border-top-left-radius\",\"-o-border-top-right-radius\":\"border-top-right-radius\",\"-o-border-bottom-left-radius\":\"border-bottom-left-radius\",\"-o-border-bottom-right-radius\":\"border-bottom-right-radius\",\"-moz-border-radius\":\"border-radius\",\"-moz-border-radius-topleft\":\"border-top-left-radius\",\"-moz-border-radius-topright\":\"border-top-right-radius\",\"-moz-border-radius-bottomleft\":\"border-bottom-left-radius\",\"-moz-border-radius-bottomright\":\"border-bottom-right-radius\",\"-moz-column-count\":\"column-count\",\"-webkit-column-count\":\"column-count\",\"-moz-column-gap\":\"column-gap\",\"-webkit-column-gap\":\"column-gap\",\"-moz-column-rule\":\"column-rule\",\"-webkit-column-rule\":\"column-rule\",\"-moz-column-rule-style\":\"column-rule-style\",\"-webkit-column-rule-style\":\"column-rule-style\",\"-moz-column-rule-color\":\"column-rule-color\",\"-webkit-column-rule-color\":\"column-rule-color\",\"-moz-column-rule-width\":\"column-rule-width\",\"-webkit-column-rule-width\":\"column-rule-width\",\"-moz-column-width\":\"column-width\",\"-webkit-column-width\":\"column-width\",\"-webkit-column-span\":\"column-span\",\"-webkit-columns\":\"columns\",\"-moz-box-shadow\":\"box-shadow\",\"-webkit-box-shadow\":\"box-shadow\",\"-moz-transform\":\"transform\",\"-webkit-transform\":\"transform\",\"-o-transform\":\"transform\",\"-ms-transform\":\"transform\",\"-moz-transform-origin\":\"transform-origin\",\"-webkit-transform-origin\":\"transform-origin\",\"-o-transform-origin\":\"transform-origin\",\"-ms-transform-origin\":\"transform-origin\",\"-moz-box-sizing\":\"box-sizing\",\"-webkit-box-sizing\":\"box-sizing\"};e.addListener(\"startrule\",o),e.addListener(\"startfontface\",o),e.addListener(\"startpage\",o),e.addListener(\"startpagemargin\",o),e.addListener(\"startkeyframerule\",o),e.addListener(\"property\",function(e){var t=e.property.text.toLowerCase();r[t]||(r[t]=[]),r[t].push({name:e.property,value:e.value,pos:i++})}),e.addListener(\"endrule\",u),e.addListener(\"endfontface\",u),e.addListener(\"endpage\",u),e.addListener(\"endpagemargin\",u),e.addListener(\"endkeyframerule\",u)}}),CSSLint.addRule({id:\"zero-units\",name:\"Disallow units for 0 values\",desc:\"You don't need to specify units when a value is 0.\",browsers:\"All\",init:function(e,t){var n=this;e.addListener(\"property\",function(e){var r=e.value.parts,i=0,s=r.length;while(i<s)(r[i].units||r[i].type===\"percentage\")&&r[i].value===0&&r[i].type!==\"time\"&&t.report(\"Values of 0 shouldn't have units specified.\",r[i].line,r[i].col,n),i++})}}),function(){var e=function(e){return!e||e.constructor!==String?\"\":e.replace(/[\\\"&><]/g,function(e){switch(e){case'\"':return\"&quot;\";case\"&\":return\"&amp;\";case\"<\":return\"&lt;\";case\">\":return\"&gt;\"}})};CSSLint.addFormatter({id:\"checkstyle-xml\",name:\"Checkstyle XML format\",startFormat:function(){return'<?xml version=\"1.0\" encoding=\"utf-8\"?><checkstyle>'},endFormat:function(){return\"</checkstyle>\"},readError:function(t,n){return'<file name=\"'+e(t)+'\"><error line=\"0\" column=\"0\" severty=\"error\" message=\"'+e(n)+'\"></error></file>'},formatResults:function(t,n){var r=t.messages,i=[],s=function(e){return!!e&&\"name\"in e?\"net.csslint.\"+e.name.replace(/\\s/g,\"\"):\"\"};return r.length>0&&(i.push('<file name=\"'+n+'\">'),CSSLint.Util.forEach(r,function(t){t.rollup||i.push('<error line=\"'+t.line+'\" column=\"'+t.col+'\" severity=\"'+t.type+'\"'+' message=\"'+e(t.message)+'\" source=\"'+s(t.rule)+'\"/>')}),i.push(\"</file>\")),i.join(\"\")}})}(),CSSLint.addFormatter({id:\"compact\",name:\"Compact, 'porcelain' format\",startFormat:function(){return\"\"},endFormat:function(){return\"\"},formatResults:function(e,t,n){var r=e.messages,i=\"\";n=n||{};var s=function(e){return e.charAt(0).toUpperCase()+e.slice(1)};return r.length===0?n.quiet?\"\":t+\": Lint Free!\":(CSSLint.Util.forEach(r,function(e){e.rollup?i+=t+\": \"+s(e.type)+\" - \"+e.message+\"\\n\":i+=t+\": \"+\"line \"+e.line+\", col \"+e.col+\", \"+s(e.type)+\" - \"+e.message+\" (\"+e.rule.id+\")\\n\"}),i)}}),CSSLint.addFormatter({id:\"csslint-xml\",name:\"CSSLint XML format\",startFormat:function(){return'<?xml version=\"1.0\" encoding=\"utf-8\"?><csslint>'},endFormat:function(){return\"</csslint>\"},formatResults:function(e,t){var n=e.messages,r=[],i=function(e){return!e||e.constructor!==String?\"\":e.replace(/\\\"/g,\"'\").replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\")};return n.length>0&&(r.push('<file name=\"'+t+'\">'),CSSLint.Util.forEach(n,function(e){e.rollup?r.push('<issue severity=\"'+e.type+'\" reason=\"'+i(e.message)+'\" evidence=\"'+i(e.evidence)+'\"/>'):r.push('<issue line=\"'+e.line+'\" char=\"'+e.col+'\" severity=\"'+e.type+'\"'+' reason=\"'+i(e.message)+'\" evidence=\"'+i(e.evidence)+'\"/>')}),r.push(\"</file>\")),r.join(\"\")}}),CSSLint.addFormatter({id:\"junit-xml\",name:\"JUNIT XML format\",startFormat:function(){return'<?xml version=\"1.0\" encoding=\"utf-8\"?><testsuites>'},endFormat:function(){return\"</testsuites>\"},formatResults:function(e,t){var n=e.messages,r=[],i={error:0,failure:0},s=function(e){return!!e&&\"name\"in e?\"net.csslint.\"+e.name.replace(/\\s/g,\"\"):\"\"},o=function(e){return!e||e.constructor!==String?\"\":e.replace(/\\\"/g,\"'\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\")};return n.length>0&&(n.forEach(function(e){var t=e.type===\"warning\"?\"error\":e.type;e.rollup||(r.push('<testcase time=\"0\" name=\"'+s(e.rule)+'\">'),r.push(\"<\"+t+' message=\"'+o(e.message)+'\"><![CDATA['+e.line+\":\"+e.col+\":\"+o(e.evidence)+\"]]></\"+t+\">\"),r.push(\"</testcase>\"),i[t]+=1)}),r.unshift('<testsuite time=\"0\" tests=\"'+n.length+'\" skipped=\"0\" errors=\"'+i.error+'\" failures=\"'+i.failure+'\" package=\"net.csslint\" name=\"'+t+'\">'),r.push(\"</testsuite>\")),r.join(\"\")}}),CSSLint.addFormatter({id:\"lint-xml\",name:\"Lint XML format\",startFormat:function(){return'<?xml version=\"1.0\" encoding=\"utf-8\"?><lint>'},endFormat:function(){return\"</lint>\"},formatResults:function(e,t){var n=e.messages,r=[],i=function(e){return!e||e.constructor!==String?\"\":e.replace(/\\\"/g,\"'\").replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\")};return n.length>0&&(r.push('<file name=\"'+t+'\">'),CSSLint.Util.forEach(n,function(e){e.rollup?r.push('<issue severity=\"'+e.type+'\" reason=\"'+i(e.message)+'\" evidence=\"'+i(e.evidence)+'\"/>'):r.push('<issue line=\"'+e.line+'\" char=\"'+e.col+'\" severity=\"'+e.type+'\"'+' reason=\"'+i(e.message)+'\" evidence=\"'+i(e.evidence)+'\"/>')}),r.push(\"</file>\")),r.join(\"\")}}),CSSLint.addFormatter({id:\"text\",name:\"Plain Text\",startFormat:function(){return\"\"},endFormat:function(){return\"\"},formatResults:function(e,t,n){var r=e.messages,i=\"\";n=n||{};if(r.length===0)return n.quiet?\"\":\"\\n\\ncsslint: No errors in \"+t+\".\";i=\"\\n\\ncsslint: There \",r.length===1?i+=\"is 1 problem\":i+=\"are \"+r.length+\" problems\",i+=\" in \"+t+\".\";var s=t.lastIndexOf(\"/\"),o=t;return s===-1&&(s=t.lastIndexOf(\"\\\\\")),s>-1&&(o=t.substring(s+1)),CSSLint.Util.forEach(r,function(e,t){i=i+\"\\n\\n\"+o,e.rollup?(i+=\"\\n\"+(t+1)+\": \"+e.type,i+=\"\\n\"+e.message):(i+=\"\\n\"+(t+1)+\": \"+e.type+\" at line \"+e.line+\", col \"+e.col,i+=\"\\n\"+e.message,i+=\"\\n\"+e.evidence)}),i}}),module.exports.CSSLint=CSSLint}),ace.define(\"ace/mode/css_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/worker/mirror\",\"ace/mode/css/csslint\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"../worker/mirror\").Mirror,o=e(\"./css/csslint\").CSSLint,u=t.Worker=function(e){s.call(this,e),this.setTimeout(400),this.ruleset=null,this.setDisabledRules(\"ids|order-alphabetical\"),this.setInfoRules(\"adjoining-classes|qualified-headings|zero-units|gradients|import|outline-none|vendor-prefix\")};r.inherits(u,s),function(){this.setInfoRules=function(e){typeof e==\"string\"&&(e=e.split(\"|\")),this.infoRules=i.arrayToMap(e),this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.setDisabledRules=function(e){if(!e)this.ruleset=null;else{typeof e==\"string\"&&(e=e.split(\"|\"));var t={};o.getRules().forEach(function(e){t[e.id]=!0}),e.forEach(function(e){delete t[e]}),this.ruleset=t}this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.onUpdate=function(){var e=this.doc.getValue();if(!e)return this.sender.emit(\"annotate\",[]);var t=this.infoRules,n=o.verify(e,this.ruleset);this.sender.emit(\"annotate\",n.messages.map(function(e){return{row:e.line-1,column:e.col-1,text:e.message,type:t[e.rule.id]?\"info\":e.type,rule:e.rule.name}}))}}.call(u.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,\"sentinel\",{}),\"sentinel\"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t===\"undefined\"||t===\"boolean\"||t===\"number\"||t===\"string\"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n==\"function\"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r==\"function\"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!=\"function\")throw new TypeError(\"Function.prototype.bind called on incompatible \"+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,\"__defineGetter__\"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,\"XXX\"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)==\"[object Array]\"});var m=Object(\"a\"),g=m[0]!=\"a\"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduce of empty array with no initial value\");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError(\"reduce of empty array with no initial value\")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduceRight of empty array with no initial value\");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError(\"reduceRight of empty array with no initial value\")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!=\"object\")throw new TypeError(\"typeof prototype[\"+typeof t+\"] != 'object'\");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document==\"undefined\"||w(document.createElement(\"div\"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T=\"Property description must be an object: \",N=\"Object.defineProperty called on non-object: \",C=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(t,n,r){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(N+t);if(typeof r!=\"object\"&&typeof r!=\"function\"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,\"value\"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,\"get\")&&l(t,n,r.get),f(r,\"set\")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n==\"function\"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n=\"\";while(f(t,n))n+=\"?\";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!=\"object\"&&typeof e!=\"function\"||e===null)throw new TypeError(\"Object.keys called on a non-object\");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=\"\t\\n\u000b\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\";if(!String.prototype.trim||_.trim()){_=\"[\"+_+\"]\";var D=new RegExp(\"^\"+_+_+\"*\"),P=new RegExp(_+_+\"*$\");String.prototype.trim=function(){return String(this).replace(D,\"\").replace(P,\"\")}}var F=function(e){if(e==null)throw new TypeError(\"can't convert \"+e+\" to object\");return Object(e)}})"
  },
  {
    "path": "lib/src-min-noconflict-old/worker-html.js",
    "content": "\"no use strict\";(function(e){function t(e,t){var n=e,r=\"\";while(n){var i=t[n];if(typeof i==\"string\")return i+r;if(i)return i.location.replace(/\\/*$/,\"/\")+(r||i.main||i.name);if(i===!1)return\"\";var s=n.lastIndexOf(\"/\");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!=\"undefined\"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:\"error\",data:{message:e,data:i.data,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf(\"!\")!==-1){var r=n.split(\"!\");return e.normalizeModule(t,r[0])+\"!\"+e.normalizeModule(t,r[1])}if(n.charAt(0)==\".\"){var i=t.split(\"/\").slice(0,-1).join(\"/\");n=(i?i+\"/\":\"\")+n;while(n.indexOf(\".\")!==-1&&s!=n){var s=n;n=n.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log(\"unable to load \"+i);var o=t(i,e.require.tlns);return o.slice(-3)!=\".js\"&&(o+=\".js\"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!=\"string\"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!=\"function\"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=[\"require\",\"exports\",\"module\"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case\"require\":return i;case\"exports\":return e.exports;case\"module\":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},require.tlns={},e.initBaseUrls=function(t){for(var n in t)require.tlns[n]=t[n]},e.initSender=function(){var n=e.require(\"ace/lib/event_emitter\").EventEmitter,r=e.require(\"ace/lib/oop\"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:\"call\",id:t,data:e})},this.emit=function(e,t){postMessage({type:\"event\",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error(\"Unknown command:\"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),require(\"ace/lib/es5-shim\"),r=e.sender=e.initSender();var s=require(i.module)[i.classname];n=e.main=new s(r)}}})(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split(\"\").reverse().join(\"\")},t.stringRepeat=function(e,t){var n=\"\";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\\s\\s*/,i=/\\s\\s*$/;t.stringTrimLeft=function(e){return e.replace(r,\"\")},t.stringTrimRight=function(e){return e.replace(i,\"\")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]==\"object\"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!=\"object\"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}var r=e.constructor;if(r===RegExp)return e;t=r();for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},t.escapeHTML=function(e){return e.replace(/&/g,\"&#38;\").replace(/\"/g,\"&#34;\").replace(/'/g,\"&#39;\").replace(/</g,\"&#60;\")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e==\"object\"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e==\"object\"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e,t){throw console.log(\"Invalid Delta:\",e),\"Invalid Delta: \"+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!=\"insert\"&&t.action!=\"remove\"&&r(t,\"delta.action must be 'insert' or 'remove'\"),t.lines instanceof Array||r(t,\"delta.lines must be an Array\"),(!t.start||!t.end)&&r(t,\"delta.start/end must be an present\");var n=t.start;i(e,t.start)||r(t,\"delta.start must be contained in document\");var s=t.end;t.action==\"remove\"&&!i(e,s)&&r(t,\"delta.end must contained in document for 'remove' actions\");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,\"delta.range must match delta lines\")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||\"\";switch(t.action){case\"insert\":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case\"remove\":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!=\"object\"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?\"unshift\":\"push\"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n==\"undefined\"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action==\"insert\",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal(\"change\",{old:i,value:r})},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./apply_delta\").applyDelta,s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=function(e){this.$lines=[\"\"],e.length===0?this.$lines=[\"\"]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},\"aaa\".split(/a/).length===0?this.$split=function(e){return e.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:this.$split=function(e){return e.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=t?t[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal(\"changeNewLineMode\")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==\"\\r\\n\"||e==\"\\r\"||e==\"\\n\"},this.getLine=function(e){return this.$lines[e]||\"\"},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||\"\").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(e,[\"\",\"\"])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:\"insert\",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([\"\"]),n=0):(t=[\"\"].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:\"insert\",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:\"remove\",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:\"remove\",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:\"remove\",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action==\"insert\";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal(\"change\",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(\"\"),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action==\"insert\"?\"remove\":\"insert\",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),ace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=e(\"../document\").Document,s=e(\"../lib/lang\"),o=t.Mirror=function(e){this.sender=e;var t=this.doc=new i(\"\"),n=this.deferredUpdate=s.delayedCall(this.onUpdate.bind(this)),r=this;e.on(\"change\",function(e){var i=e.data;if(i[0].start)t.applyDeltas(i);else for(var s=0;s<i.length;s+=2){if(Array.isArray(i[s+1]))var o={action:\"insert\",start:i[s],lines:i[s+1]};else var o={action:\"remove\",start:i[s],end:i[s+1]};t.applyDelta(o,!0)}if(r.$timeout)return n.schedule(r.$timeout);r.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),ace.define(\"ace/mode/html/saxparser\",[\"require\",\"exports\",\"module\"],function(e,t,n){n.exports=function r(t,n,i){function s(u,a){if(!n[u]){if(!t[u]){var f=typeof e==\"function\"&&e;if(!a&&f)return f(u,!0);if(o)return o(u,!0);throw new Error(\"Cannot find module '\"+u+\"'\")}var l=n[u]={exports:{}};t[u][0].call(l.exports,function(e){var n=t[u][1][e];return s(n?n:e)},l,l.exports,r,t,n,i)}return n[u].exports}var o=typeof e==\"function\"&&e;for(var u=0;u<i.length;u++)s(i[u]);return s}({1:[function(e,t,n){function r(e){if(e.namespaceURI===\"http://www.w3.org/1999/xhtml\")return e.localName===\"applet\"||e.localName===\"caption\"||e.localName===\"marquee\"||e.localName===\"object\"||e.localName===\"table\"||e.localName===\"td\"||e.localName===\"th\";if(e.namespaceURI===\"http://www.w3.org/1998/Math/MathML\")return e.localName===\"mi\"||e.localName===\"mo\"||e.localName===\"mn\"||e.localName===\"ms\"||e.localName===\"mtext\"||e.localName===\"annotation-xml\";if(e.namespaceURI===\"http://www.w3.org/2000/svg\")return e.localName===\"foreignObject\"||e.localName===\"desc\"||e.localName===\"title\"}function i(e){return r(e)||e.namespaceURI===\"http://www.w3.org/1999/xhtml\"&&e.localName===\"ol\"||e.namespaceURI===\"http://www.w3.org/1999/xhtml\"&&e.localName===\"ul\"}function s(e){return e.namespaceURI===\"http://www.w3.org/1999/xhtml\"&&e.localName===\"table\"||e.namespaceURI===\"http://www.w3.org/1999/xhtml\"&&e.localName===\"html\"}function o(e){return e.namespaceURI===\"http://www.w3.org/1999/xhtml\"&&e.localName===\"tbody\"||e.namespaceURI===\"http://www.w3.org/1999/xhtml\"&&e.localName===\"tfoot\"||e.namespaceURI===\"http://www.w3.org/1999/xhtml\"&&e.localName===\"thead\"||e.namespaceURI===\"http://www.w3.org/1999/xhtml\"&&e.localName===\"html\"}function u(e){return e.namespaceURI===\"http://www.w3.org/1999/xhtml\"&&e.localName===\"tr\"||e.namespaceURI===\"http://www.w3.org/1999/xhtml\"&&e.localName===\"html\"}function a(e){return r(e)||e.namespaceURI===\"http://www.w3.org/1999/xhtml\"&&e.localName===\"button\"}function f(e){return(e.namespaceURI!==\"http://www.w3.org/1999/xhtml\"||e.localName!==\"optgroup\")&&(e.namespaceURI!==\"http://www.w3.org/1999/xhtml\"||e.localName!==\"option\")}function l(){this.elements=[],this.rootNode=null,this.headElement=null,this.bodyElement=null}l.prototype._inScope=function(e,t){for(var n=this.elements.length-1;n>=0;n--){var r=this.elements[n];if(r.localName===e)return!0;if(t(r))return!1}},l.prototype.push=function(e){this.elements.push(e)},l.prototype.pushHtmlElement=function(e){this.rootNode=e.node,this.push(e)},l.prototype.pushHeadElement=function(e){this.headElement=e.node,this.push(e)},l.prototype.pushBodyElement=function(e){this.bodyElement=e.node,this.push(e)},l.prototype.pop=function(){return this.elements.pop()},l.prototype.remove=function(e){this.elements.splice(this.elements.indexOf(e),1)},l.prototype.popUntilPopped=function(e){var t;do t=this.pop();while(t.localName!=e)},l.prototype.popUntilTableScopeMarker=function(){while(!s(this.top))this.pop()},l.prototype.popUntilTableBodyScopeMarker=function(){while(!o(this.top))this.pop()},l.prototype.popUntilTableRowScopeMarker=function(){while(!u(this.top))this.pop()},l.prototype.item=function(e){return this.elements[e]},l.prototype.contains=function(e){return this.elements.indexOf(e)!==-1},l.prototype.inScope=function(e){return this._inScope(e,r)},l.prototype.inListItemScope=function(e){return this._inScope(e,i)},l.prototype.inTableScope=function(e){return this._inScope(e,s)},l.prototype.inButtonScope=function(e){return this._inScope(e,a)},l.prototype.inSelectScope=function(e){return this._inScope(e,f)},l.prototype.hasNumberedHeaderElementInScope=function(){for(var e=this.elements.length-1;e>=0;e--){var t=this.elements[e];if(t.isNumberedHeader())return!0;if(r(t))return!1}},l.prototype.furthestBlockForFormattingElement=function(e){var t=null;for(var n=this.elements.length-1;n>=0;n--){var r=this.elements[n];if(r.node===e)break;r.isSpecial()&&(t=r)}return t},l.prototype.findIndex=function(e){for(var t=this.elements.length-1;t>=0;t--)if(this.elements[t].localName==e)return t;return-1},l.prototype.remove_openElements_until=function(e){var t=!1,n;while(!t)n=this.elements.pop(),t=e(n);return n},Object.defineProperty(l.prototype,\"top\",{get:function(){return this.elements[this.elements.length-1]}}),Object.defineProperty(l.prototype,\"length\",{get:function(){return this.elements.length}}),n.ElementStack=l},{}],2:[function(e,t,n){function o(e){return e>=\"0\"&&e<=\"9\"||e>=\"a\"&&e<=\"z\"||e>=\"A\"&&e<=\"Z\"}function u(e){return e>=\"0\"&&e<=\"9\"||e>=\"a\"&&e<=\"f\"||e>=\"A\"&&e<=\"F\"}function a(e){return e>=\"0\"&&e<=\"9\"}var r=e(\"html5-entities\"),i=e(\"./InputStream\").InputStream,s={};Object.keys(r).forEach(function(e){for(var t=0;t<e.length;t++)s[e.substring(0,t+1)]=!0});var f={};f.consumeEntity=function(e,t,n){var f=\"\",l=\"\",c=e.char();if(c===i.EOF)return!1;l+=c;if(c==\"\t\"||c==\"\\n\"||c==\"\u000b\"||c==\" \"||c==\"<\"||c==\"&\")return e.unget(l),!1;if(n===c)return e.unget(l),!1;if(c==\"#\"){c=e.shift(1);if(c===i.EOF)return t._parseError(\"expected-numeric-entity-but-got-eof\"),e.unget(l),!1;l+=c;var h=10,p=a;if(c==\"x\"||c==\"X\"){h=16,p=u,c=e.shift(1);if(c===i.EOF)return t._parseError(\"expected-numeric-entity-but-got-eof\"),e.unget(l),!1;l+=c}if(p(c)){var d=\"\";while(c!==i.EOF&&p(c))d+=c,c=e.char();d=parseInt(d,h);var v=this.replaceEntityNumbers(d);v&&(t._parseError(\"invalid-numeric-entity-replaced\"),d=v);if(d>65535&&d<=1114111){d-=65536;var m=((1047552&d)>>10)+55296,g=(1023&d)+56320;f=String.fromCharCode(m,g)}else f=String.fromCharCode(d);return c!==\";\"&&(t._parseError(\"numeric-entity-without-semicolon\"),e.unget(c)),f}return e.unget(l),t._parseError(\"expected-numeric-entity\"),!1}if(c>=\"a\"&&c<=\"z\"||c>=\"A\"&&c<=\"Z\"){var y=\"\";while(s[l]){r[l]&&(y=l);if(c==\";\")break;c=e.char();if(c===i.EOF)break;l+=c}return y?(f=r[y],c===\";\"||!n||!o(c)&&c!==\"=\"?(l.length>y.length&&e.unget(l.substring(y.length)),c!==\";\"&&t._parseError(\"named-entity-without-semicolon\"),f):(e.unget(l),!1)):(t._parseError(\"expected-named-entity\"),e.unget(l),!1)}},f.replaceEntityNumbers=function(e){switch(e){case 0:return 65533;case 19:return 16;case 128:return 8364;case 129:return 129;case 130:return 8218;case 131:return 402;case 132:return 8222;case 133:return 8230;case 134:return 8224;case 135:return 8225;case 136:return 710;case 137:return 8240;case 138:return 352;case 139:return 8249;case 140:return 338;case 141:return 141;case 142:return 381;case 143:return 143;case 144:return 144;case 145:return 8216;case 146:return 8217;case 147:return 8220;case 148:return 8221;case 149:return 8226;case 150:return 8211;case 151:return 8212;case 152:return 732;case 153:return 8482;case 154:return 353;case 155:return 8250;case 156:return 339;case 157:return 157;case 158:return 382;case 159:return 376;default:if(e>=55296&&e<=57343||e>1114111)return 65533;if(e>=1&&e<=8||e>=14&&e<=31||e>=127&&e<=159||e>=64976&&e<=65007||e==11||e==65534||e==131070||e==3145726||e==196607||e==262142||e==262143||e==327678||e==327679||e==393214||e==393215||e==458750||e==458751||e==524286||e==524287||e==589822||e==589823||e==655358||e==655359||e==720894||e==720895||e==786430||e==786431||e==851966||e==851967||e==917502||e==917503||e==983038||e==983039||e==1048574||e==1048575||e==1114110||e==1114111)return e}},n.EntityParser=f},{\"./InputStream\":3,\"html5-entities\":12}],3:[function(e,t,n){function r(){this.data=\"\",this.start=0,this.committed=0,this.eof=!1,this.lastLocation={line:0,column:0}}r.EOF=-1,r.DRAIN=-2,r.prototype={slice:function(){if(this.start>=this.data.length){if(!this.eof)throw r.DRAIN;return r.EOF}return this.data.slice(this.start,this.data.length)},\"char\":function(){if(!this.eof&&this.start>=this.data.length-1)throw r.DRAIN;if(this.start>=this.data.length)return r.EOF;var e=this.data[this.start++];return e===\"\\r\"&&(e=\"\\n\"),e},advance:function(e){this.start+=e;if(this.start>=this.data.length){if(!this.eof)throw r.DRAIN;return r.EOF}this.committed>this.data.length/2&&(this.lastLocation=this.location(),this.data=this.data.slice(this.committed),this.start=this.start-this.committed,this.committed=0)},matchWhile:function(e){if(this.eof&&this.start>=this.data.length)return\"\";var t=new RegExp(\"^\"+e+\"+\"),n=t.exec(this.slice());if(n){if(!this.eof&&n[0].length==this.data.length-this.start)throw r.DRAIN;return this.advance(n[0].length),n[0]}return\"\"},matchUntil:function(e){var t,n;n=this.slice();if(n===r.EOF)return\"\";if(t=(new RegExp(e+(this.eof?\"|$\":\"\"))).exec(n)){var i=this.data.slice(this.start,this.start+t.index);return this.advance(t.index),i.replace(/\\r/g,\"\\n\").replace(/\\n{2,}/g,\"\\n\")}throw r.DRAIN},append:function(e){this.data+=e},shift:function(e){if(!this.eof&&this.start+e>=this.data.length)throw r.DRAIN;if(this.eof&&this.start>=this.data.length)return r.EOF;var t=this.data.slice(this.start,this.start+e).toString();return this.advance(Math.min(e,this.data.length-this.start)),t},peek:function(e){if(!this.eof&&this.start+e>=this.data.length)throw r.DRAIN;return this.eof&&this.start>=this.data.length?r.EOF:this.data.slice(this.start,Math.min(this.start+e,this.data.length)).toString()},length:function(){return this.data.length-this.start-1},unget:function(e){if(e===r.EOF)return;this.start-=e.length},undo:function(){this.start=this.committed},commit:function(){this.committed=this.start},location:function(){var e=this.lastLocation.line,t=this.lastLocation.column,n=this.data.slice(0,this.committed),r=n.match(/\\n/g),i=r?e+r.length:e,s=r?n.length-n.lastIndexOf(\"\\n\")-1:t+n.length;return{line:i,column:s}}},n.InputStream=r},{}],4:[function(e,t,n){function i(e,t,n,r){this.localName=t,this.namespaceURI=e,this.attributes=n,this.node=r}function s(e,t){for(var n=0;n<e.attributes.length;n++)if(e.attributes[n].nodeName==t)return e.attributes[n].nodeValue;return null}var r={\"http://www.w3.org/1999/xhtml\":[\"address\",\"applet\",\"area\",\"article\",\"aside\",\"base\",\"basefont\",\"bgsound\",\"blockquote\",\"body\",\"br\",\"button\",\"caption\",\"center\",\"col\",\"colgroup\",\"dd\",\"details\",\"dir\",\"div\",\"dl\",\"dt\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"frame\",\"frameset\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"iframe\",\"img\",\"input\",\"isindex\",\"li\",\"link\",\"listing\",\"main\",\"marquee\",\"menu\",\"menuitem\",\"meta\",\"nav\",\"noembed\",\"noframes\",\"noscript\",\"object\",\"ol\",\"p\",\"param\",\"plaintext\",\"pre\",\"script\",\"section\",\"select\",\"source\",\"style\",\"summary\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"title\",\"tr\",\"track\",\"ul\",\"wbr\",\"xmp\"],\"http://www.w3.org/1998/Math/MathML\":[\"mi\",\"mo\",\"mn\",\"ms\",\"mtext\",\"annotation-xml\"],\"http://www.w3.org/2000/svg\":[\"foreignObject\",\"desc\",\"title\"]};i.prototype.isSpecial=function(){return this.namespaceURI in r&&r[this.namespaceURI].indexOf(this.localName)>-1},i.prototype.isFosterParenting=function(){return this.namespaceURI===\"http://www.w3.org/1999/xhtml\"?this.localName===\"table\"||this.localName===\"tbody\"||this.localName===\"tfoot\"||this.localName===\"thead\"||this.localName===\"tr\":!1},i.prototype.isNumberedHeader=function(){return this.namespaceURI===\"http://www.w3.org/1999/xhtml\"?this.localName===\"h1\"||this.localName===\"h2\"||this.localName===\"h3\"||this.localName===\"h4\"||this.localName===\"h5\"||this.localName===\"h6\":!1},i.prototype.isForeign=function(){return this.namespaceURI!=\"http://www.w3.org/1999/xhtml\"},i.prototype.isHtmlIntegrationPoint=function(){if(this.namespaceURI===\"http://www.w3.org/1998/Math/MathML\"){if(this.localName!==\"annotation-xml\")return!1;var e=s(this,\"encoding\");return e?(e=e.toLowerCase(),e===\"text/html\"||e===\"application/xhtml+xml\"):!1}return this.namespaceURI===\"http://www.w3.org/2000/svg\"?this.localName===\"foreignObject\"||this.localName===\"desc\"||this.localName===\"title\":!1},i.prototype.isMathMLTextIntegrationPoint=function(){return this.namespaceURI===\"http://www.w3.org/1998/Math/MathML\"?this.localName===\"mi\"||this.localName===\"mo\"||this.localName===\"mn\"||this.localName===\"ms\"||this.localName===\"mtext\":!1},n.StackItem=i},{}],5:[function(e,t,n){function s(e){return e===\" \"||e===\"\\n\"||e===\"\t\"||e===\"\\r\"||e===\"\\f\"}function o(e){return e>=\"A\"&&e<=\"Z\"||e>=\"a\"&&e<=\"z\"}function u(e){this._tokenHandler=e,this._state=u.DATA,this._inputStream=new r,this._currentToken=null,this._temporaryBuffer=\"\",this._additionalAllowedCharacter=\"\"}var r=e(\"./InputStream\").InputStream,i=e(\"./EntityParser\").EntityParser;u.prototype._parseError=function(e,t){this._tokenHandler.parseError(e,t)},u.prototype._emitToken=function(e){if(e.type===\"StartTag\")for(var t=1;t<e.data.length;t++)e.data[t].nodeName||e.data.splice(t--,1);else e.type===\"EndTag\"&&(e.selfClosing&&this._parseError(\"self-closing-flag-on-end-tag\"),e.data.length!==0&&this._parseError(\"attributes-in-end-tag\"));this._tokenHandler.processToken(e),e.type===\"StartTag\"&&e.selfClosing&&!this._tokenHandler.isSelfClosingFlagAcknowledged()&&this._parseError(\"non-void-element-with-trailing-solidus\",{name:e.name})},u.prototype._emitCurrentToken=function(){this._state=u.DATA,this._emitToken(this._currentToken)},u.prototype._currentAttribute=function(){return this._currentToken.data[this._currentToken.data.length-1]},u.prototype.setState=function(e){this._state=e},u.prototype.tokenize=function(e){function n(e){var n=e.char();if(n===r.EOF)return t._emitToken({type:\"EOF\",data:null}),!1;if(n===\"&\")t.setState(a);else if(n===\"<\")t.setState(j);else if(n===\"\\0\")t._emitToken({type:\"Characters\",data:n}),e.commit();else{var i=e.matchUntil(\"&|<|\\0\");t._emitToken({type:\"Characters\",data:n+i}),e.commit()}return!0}function a(e){var r=i.consumeEntity(e,t);return t.setState(n),t._emitToken({type:\"Characters\",data:r||\"&\"}),!0}function f(e){var n=e.char();if(n===r.EOF)return t._emitToken({type:\"EOF\",data:null}),!1;if(n===\"&\")t.setState(l);else if(n===\"<\")t.setState(d);else if(n===\"\\0\")t._parseError(\"invalid-codepoint\"),t._emitToken({type:\"Characters\",data:\"\\ufffd\"}),e.commit();else{var i=e.matchUntil(\"&|<|\\0\");t._emitToken({type:\"Characters\",data:n+i}),e.commit()}return!0}function l(e){var n=i.consumeEntity(e,t);return t.setState(f),t._emitToken({type:\"Characters\",data:n||\"&\"}),!0}function c(e){var n=e.char();if(n===r.EOF)return t._emitToken({type:\"EOF\",data:null}),!1;if(n===\"<\")t.setState(g);else if(n===\"\\0\")t._parseError(\"invalid-codepoint\"),t._emitToken({type:\"Characters\",data:\"\\ufffd\"}),e.commit();else{var i=e.matchUntil(\"<|\\0\");t._emitToken({type:\"Characters\",data:n+i})}return!0}function h(e){var n=e.char();if(n===r.EOF)return t._emitToken({type:\"EOF\",data:null}),!1;if(n===\"\\0\")t._parseError(\"invalid-codepoint\"),t._emitToken({type:\"Characters\",data:\"\\ufffd\"}),e.commit();else{var i=e.matchUntil(\"\\0\");t._emitToken({type:\"Characters\",data:n+i})}return!0}function p(e){var n=e.char();if(n===r.EOF)return t._emitToken({type:\"EOF\",data:null}),!1;if(n===\"<\")t.setState(w);else if(n===\"\\0\")t._parseError(\"invalid-codepoint\"),t._emitToken({type:\"Characters\",data:\"\\ufffd\"}),e.commit();else{var i=e.matchUntil(\"<|\\0\");t._emitToken({type:\"Characters\",data:n+i})}return!0}function d(e){var n=e.char();return n===\"/\"?(this._temporaryBuffer=\"\",t.setState(v)):(t._emitToken({type:\"Characters\",data:\"<\"}),e.unget(n),t.setState(f)),!0}function v(e){var n=e.char();return o(n)?(this._temporaryBuffer+=n,t.setState(m)):(t._emitToken({type:\"Characters\",data:\"</\"}),e.unget(n),t.setState(f)),!0}function m(e){var r=t._currentToken&&t._currentToken.name===this._temporaryBuffer.toLowerCase(),i=e.char();return s(i)&&r?(t._currentToken={type:\"EndTag\",name:this._temporaryBuffer,data:[],selfClosing:!1},t.setState(q)):i===\"/\"&&r?(t._currentToken={type:\"EndTag\",name:this._temporaryBuffer,data:[],selfClosing:!1},t.setState(K)):i===\">\"&&r?(t._currentToken={type:\"EndTag\",name:this._temporaryBuffer,data:[],selfClosing:!1},t._emitCurrentToken(),t.setState(n)):o(i)?(this._temporaryBuffer+=i,e.commit()):(t._emitToken({type:\"Characters\",data:\"</\"+this._temporaryBuffer}),e.unget(i),t.setState(f)),!0}function g(e){var n=e.char();return n===\"/\"?(this._temporaryBuffer=\"\",t.setState(y)):(t._emitToken({type:\"Characters\",data:\"<\"}),e.unget(n),t.setState(c)),!0}function y(e){var n=e.char();return o(n)?(this._temporaryBuffer+=n,t.setState(b)):(t._emitToken({type:\"Characters\",data:\"</\"}),e.unget(n),t.setState(c)),!0}function b(e){var r=t._currentToken&&t._currentToken.name===this._temporaryBuffer.toLowerCase(),i=e.char();return s(i)&&r?(t._currentToken={type:\"EndTag\",name:this._temporaryBuffer,data:[],selfClosing:!1},t.setState(q)):i===\"/\"&&r?(t._currentToken={type:\"EndTag\",name:this._temporaryBuffer,data:[],selfClosing:!1},t.setState(K)):i===\">\"&&r?(t._currentToken={type:\"EndTag\",name:this._temporaryBuffer,data:[],selfClosing:!1},t._emitCurrentToken(),t.setState(n)):o(i)?(this._temporaryBuffer+=i,e.commit()):(t._emitToken({type:\"Characters\",data:\"</\"+this._temporaryBuffer}),e.unget(i),t.setState(c)),!0}function w(e){var n=e.char();return n===\"/\"?(this._temporaryBuffer=\"\",t.setState(E)):n===\"!\"?(t._emitToken({type:\"Characters\",data:\"<!\"}),t.setState(x)):(t._emitToken({type:\"Characters\",data:\"<\"}),e.unget(n),t.setState(p)),!0}function E(e){var n=e.char();return o(n)?(this._temporaryBuffer+=n,t.setState(S)):(t._emitToken({type:\"Characters\",data:\"</\"}),e.unget(n),t.setState(p)),!0}function S(e){var n=t._currentToken&&t._currentToken.name===this._temporaryBuffer.toLowerCase(),r=e.char();return s(r)&&n?(t._currentToken={type:\"EndTag\",name:\"script\",data:[],selfClosing:!1},t.setState(q)):r===\"/\"&&n?(t._currentToken={type:\"EndTag\",name:\"script\",data:[],selfClosing:!1},t.setState(K)):r===\">\"&&n?(t._currentToken={type:\"EndTag\",name:\"script\",data:[],selfClosing:!1},t._emitCurrentToken()):o(r)?(this._temporaryBuffer+=r,e.commit()):(t._emitToken({type:\"Characters\",data:\"</\"+this._temporaryBuffer}),e.unget(r),t.setState(p)),!0}function x(e){var n=e.char();return n===\"-\"?(t._emitToken({type:\"Characters\",data:\"-\"}),t.setState(T)):(e.unget(n),t.setState(p)),!0}function T(e){var n=e.char();return n===\"-\"?(t._emitToken({type:\"Characters\",data:\"-\"}),t.setState(k)):(e.unget(n),t.setState(p)),!0}function N(e){var i=e.char();if(i===r.EOF)e.unget(i),t.setState(n);else if(i===\"-\")t._emitToken({type:\"Characters\",data:\"-\"}),t.setState(C);else if(i===\"<\")t.setState(L);else if(i===\"\\0\")t._parseError(\"invalid-codepoint\"),t._emitToken({type:\"Characters\",data:\"\\ufffd\"}),e.commit();else{var s=e.matchUntil(\"<|-|\\0\");t._emitToken({type:\"Characters\",data:i+s})}return!0}function C(e){var i=e.char();return i===r.EOF?(e.unget(i),t.setState(n)):i===\"-\"?(t._emitToken({type:\"Characters\",data:\"-\"}),t.setState(k)):i===\"<\"?t.setState(L):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._emitToken({type:\"Characters\",data:\"\\ufffd\"}),t.setState(N)):(t._emitToken({type:\"Characters\",data:i}),t.setState(N)),!0}function k(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-script\"),e.unget(i),t.setState(n)):i===\"<\"?t.setState(L):i===\">\"?(t._emitToken({type:\"Characters\",data:\">\"}),t.setState(p)):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._emitToken({type:\"Characters\",data:\"\\ufffd\"}),t.setState(N)):(t._emitToken({type:\"Characters\",data:i}),t.setState(N)),!0}function L(e){var n=e.char();return n===\"/\"?(this._temporaryBuffer=\"\",t.setState(A)):o(n)?(t._emitToken({type:\"Characters\",data:\"<\"+n}),this._temporaryBuffer=n,t.setState(M)):(t._emitToken({type:\"Characters\",data:\"<\"}),e.unget(n),t.setState(N)),!0}function A(e){var n=e.char();return o(n)?(this._temporaryBuffer=n,t.setState(O)):(t._emitToken({type:\"Characters\",data:\"</\"}),e.unget(n),t.setState(N)),!0}function O(e){var r=t._currentToken&&t._currentToken.name===this._temporaryBuffer.toLowerCase(),i=e.char();return s(i)&&r?(t._currentToken={type:\"EndTag\",name:\"script\",data:[],selfClosing:!1},t.setState(q)):i===\"/\"&&r?(t._currentToken={type:\"EndTag\",name:\"script\",data:[],selfClosing:!1},t.setState(K)):i===\">\"&&r?(t._currentToken={type:\"EndTag\",name:\"script\",data:[],selfClosing:!1},t.setState(n),t._emitCurrentToken()):o(i)?(this._temporaryBuffer+=i,e.commit()):(t._emitToken({type:\"Characters\",data:\"</\"+this._temporaryBuffer}),e.unget(i),t.setState(N)),!0}function M(e){var n=e.char();return s(n)||n===\"/\"||n===\">\"?(t._emitToken({type:\"Characters\",data:n}),this._temporaryBuffer.toLowerCase()===\"script\"?t.setState(_):t.setState(N)):o(n)?(t._emitToken({type:\"Characters\",data:n}),this._temporaryBuffer+=n,e.commit()):(e.unget(n),t.setState(N)),!0}function _(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-script\"),e.unget(i),t.setState(n)):i===\"-\"?(t._emitToken({type:\"Characters\",data:\"-\"}),t.setState(D)):i===\"<\"?(t._emitToken({type:\"Characters\",data:\"<\"}),t.setState(H)):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._emitToken({type:\"Characters\",data:\"\\ufffd\"}),e.commit()):(t._emitToken({type:\"Characters\",data:i}),e.commit()),!0}function D(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-script\"),e.unget(i),t.setState(n)):i===\"-\"?(t._emitToken({type:\"Characters\",data:\"-\"}),t.setState(P)):i===\"<\"?(t._emitToken({type:\"Characters\",data:\"<\"}),t.setState(H)):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._emitToken({type:\"Characters\",data:\"\\ufffd\"}),t.setState(_)):(t._emitToken({type:\"Characters\",data:i}),t.setState(_)),!0}function P(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-script\"),e.unget(i),t.setState(n)):i===\"-\"?(t._emitToken({type:\"Characters\",data:\"-\"}),e.commit()):i===\"<\"?(t._emitToken({type:\"Characters\",data:\"<\"}),t.setState(H)):i===\">\"?(t._emitToken({type:\"Characters\",data:\">\"}),t.setState(p)):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._emitToken({type:\"Characters\",data:\"\\ufffd\"}),t.setState(_)):(t._emitToken({type:\"Characters\",data:i}),t.setState(_)),!0}function H(e){var n=e.char();return n===\"/\"?(t._emitToken({type:\"Characters\",data:\"/\"}),this._temporaryBuffer=\"\",t.setState(B)):(e.unget(n),t.setState(_)),!0}function B(e){var n=e.char();return s(n)||n===\"/\"||n===\">\"?(t._emitToken({type:\"Characters\",data:n}),this._temporaryBuffer.toLowerCase()===\"script\"?t.setState(N):t.setState(_)):o(n)?(t._emitToken({type:\"Characters\",data:n}),this._temporaryBuffer+=n,e.commit()):(e.unget(n),t.setState(_)),!0}function j(e){var i=e.char();return i===r.EOF?(t._parseError(\"bare-less-than-sign-at-eof\"),t._emitToken({type:\"Characters\",data:\"<\"}),e.unget(i),t.setState(n)):o(i)?(t._currentToken={type:\"StartTag\",name:i.toLowerCase(),data:[]},t.setState(I)):i===\"!\"?t.setState(G):i===\"/\"?t.setState(F):i===\">\"?(t._parseError(\"expected-tag-name-but-got-right-bracket\"),t._emitToken({type:\"Characters\",data:\"<>\"}),t.setState(n)):i===\"?\"?(t._parseError(\"expected-tag-name-but-got-question-mark\"),e.unget(i),t.setState(Q)):(t._parseError(\"expected-tag-name\"),t._emitToken({type:\"Characters\",data:\"<\"}),e.unget(i),t.setState(n)),!0}function F(e){var i=e.char();return i===r.EOF?(t._parseError(\"expected-closing-tag-but-got-eof\"),t._emitToken({type:\"Characters\",data:\"</\"}),e.unget(i),t.setState(n)):o(i)?(t._currentToken={type:\"EndTag\",name:i.toLowerCase(),data:[]},t.setState(I)):i===\">\"?(t._parseError(\"expected-closing-tag-but-got-right-bracket\"),t.setState(n)):(t._parseError(\"expected-closing-tag-but-got-char\",{data:i}),e.unget(i),t.setState(Q)),!0}function I(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-tag-name\"),e.unget(i),t.setState(n)):s(i)?t.setState(q):o(i)?t._currentToken.name+=i.toLowerCase():i===\">\"?t._emitCurrentToken():i===\"/\"?t.setState(K):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._currentToken.name+=\"\\ufffd\"):t._currentToken.name+=i,e.commit(),!0}function q(e){var i=e.char();if(i===r.EOF)t._parseError(\"expected-attribute-name-but-got-eof\"),e.unget(i),t.setState(n);else{if(s(i))return!0;o(i)?(t._currentToken.data.push({nodeName:i.toLowerCase(),nodeValue:\"\"}),t.setState(R)):i===\">\"?t._emitCurrentToken():i===\"/\"?t.setState(K):i===\"'\"||i==='\"'||i===\"=\"||i===\"<\"?(t._parseError(\"invalid-character-in-attribute-name\"),t._currentToken.data.push({nodeName:i,nodeValue:\"\"}),t.setState(R)):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._currentToken.data.push({nodeName:\"\\ufffd\",nodeValue:\"\"})):(t._currentToken.data.push({nodeName:i,nodeValue:\"\"}),t.setState(R))}return!0}function R(e){var i=e.char(),u=!0,a=!1;i===r.EOF?(t._parseError(\"eof-in-attribute-name\"),e.unget(i),t.setState(n),a=!0):i===\"=\"?t.setState(z):o(i)?(t._currentAttribute().nodeName+=i.toLowerCase(),u=!1):i===\">\"?a=!0:s(i)?t.setState(U):i===\"/\"?t.setState(K):i===\"'\"||i==='\"'?(t._parseError(\"invalid-character-in-attribute-name\"),t._currentAttribute().nodeName+=i,u=!1):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._currentAttribute().nodeName+=\"\\ufffd\"):(t._currentAttribute().nodeName+=i,u=!1);if(u){var f=t._currentToken.data,l=f[f.length-1];for(var c=f.length-2;c>=0;c--)if(l.nodeName===f[c].nodeName){t._parseError(\"duplicate-attribute\",{name:l.nodeName}),l.nodeName=null;break}a&&t._emitCurrentToken()}else e.commit();return!0}function U(e){var i=e.char();if(i===r.EOF)t._parseError(\"expected-end-of-tag-but-got-eof\"),e.unget(i),t.setState(n);else{if(s(i))return!0;i===\"=\"?t.setState(z):i===\">\"?t._emitCurrentToken():o(i)?(t._currentToken.data.push({nodeName:i,nodeValue:\"\"}),t.setState(R)):i===\"/\"?t.setState(K):i===\"'\"||i==='\"'||i===\"<\"?(t._parseError(\"invalid-character-after-attribute-name\"),t._currentToken.data.push({nodeName:i,nodeValue:\"\"}),t.setState(R)):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._currentToken.data.push({nodeName:\"\\ufffd\",nodeValue:\"\"})):(t._currentToken.data.push({nodeName:i,nodeValue:\"\"}),t.setState(R))}return!0}function z(e){var i=e.char();if(i===r.EOF)t._parseError(\"expected-attribute-value-but-got-eof\"),e.unget(i),t.setState(n);else{if(s(i))return!0;i==='\"'?t.setState(W):i===\"&\"?(t.setState(V),e.unget(i)):i===\"'\"?t.setState(X):i===\">\"?(t._parseError(\"expected-attribute-value-but-got-right-bracket\"),t._emitCurrentToken()):i===\"=\"||i===\"<\"||i===\"`\"?(t._parseError(\"unexpected-character-in-unquoted-attribute-value\"),t._currentAttribute().nodeValue+=i,t.setState(V)):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._currentAttribute().nodeValue+=\"\\ufffd\"):(t._currentAttribute().nodeValue+=i,t.setState(V))}return!0}function W(e){var i=e.char();if(i===r.EOF)t._parseError(\"eof-in-attribute-value-double-quote\"),e.unget(i),t.setState(n);else if(i==='\"')t.setState(J);else if(i===\"&\")this._additionalAllowedCharacter='\"',t.setState($);else if(i===\"\\0\")t._parseError(\"invalid-codepoint\"),t._currentAttribute().nodeValue+=\"\\ufffd\";else{var s=e.matchUntil('[\\0\"&]');i+=s,t._currentAttribute().nodeValue+=i}return!0}function X(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-attribute-value-single-quote\"),e.unget(i),t.setState(n)):i===\"'\"?t.setState(J):i===\"&\"?(this._additionalAllowedCharacter=\"'\",t.setState($)):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._currentAttribute().nodeValue+=\"\\ufffd\"):t._currentAttribute().nodeValue+=i+e.matchUntil(\"\\0|['&]\"),!0}function V(e){var i=e.char();if(i===r.EOF)t._parseError(\"eof-after-attribute-value\"),e.unget(i),t.setState(n);else if(s(i))t.setState(q);else if(i===\"&\")this._additionalAllowedCharacter=\">\",t.setState($);else if(i===\">\")t._emitCurrentToken();else if(i==='\"'||i===\"'\"||i===\"=\"||i===\"`\"||i===\"<\")t._parseError(\"unexpected-character-in-unquoted-attribute-value\"),t._currentAttribute().nodeValue+=i,e.commit();else if(i===\"\\0\")t._parseError(\"invalid-codepoint\"),t._currentAttribute().nodeValue+=\"\\ufffd\";else{var o=e.matchUntil(\"\\0|[\t\\n\u000b\\f \\r&<>\\\"'=`]\");o===r.EOF&&(t._parseError(\"eof-in-attribute-value-no-quotes\"),t._emitCurrentToken()),e.commit(),t._currentAttribute().nodeValue+=i+o}return!0}function $(e){var n=i.consumeEntity(e,t,this._additionalAllowedCharacter);return this._currentAttribute().nodeValue+=n||\"&\",this._additionalAllowedCharacter==='\"'?t.setState(W):this._additionalAllowedCharacter===\"'\"?t.setState(X):this._additionalAllowedCharacter===\">\"&&t.setState(V),!0}function J(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-after-attribute-value\"),e.unget(i),t.setState(n)):s(i)?t.setState(q):i===\">\"?(t.setState(n),t._emitCurrentToken()):i===\"/\"?t.setState(K):(t._parseError(\"unexpected-character-after-attribute-value\"),e.unget(i),t.setState(q)),!0}function K(e){var i=e.char();return i===r.EOF?(t._parseError(\"unexpected-eof-after-solidus-in-tag\"),e.unget(i),t.setState(n)):i===\">\"?(t._currentToken.selfClosing=!0,t.setState(n),t._emitCurrentToken()):(t._parseError(\"unexpected-character-after-solidus-in-tag\"),e.unget(i),t.setState(q)),!0}function Q(e){var r=e.matchUntil(\">\");return r=r.replace(/\\u0000/g,\"\\ufffd\"),e.char(),t._emitToken({type:\"Comment\",data:r}),t.setState(n),!0}function G(e){var n=e.shift(2);if(n===\"--\")t._currentToken={type:\"Comment\",data:\"\"},t.setState(Z);else{var i=e.shift(5);if(i===r.EOF||n===r.EOF)return t._parseError(\"expected-dashes-or-doctype\"),t.setState(Q),e.unget(n),!0;n+=i,n.toUpperCase()===\"DOCTYPE\"?(t._currentToken={type:\"Doctype\",name:\"\",publicId:null,systemId:null,forceQuirks:!1},t.setState(st)):t._tokenHandler.isCdataSectionAllowed()&&n===\"[CDATA[\"?t.setState(Y):(t._parseError(\"expected-dashes-or-doctype\"),e.unget(n),t.setState(Q))}return!0}function Y(e){var r=e.matchUntil(\"]]>\");return e.shift(3),r&&t._emitToken({type:\"Characters\",data:r}),t.setState(n),!0}function Z(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-comment\"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i===\"-\"?t.setState(et):i===\">\"?(t._parseError(\"incorrect-comment\"),t._emitToken(t._currentToken),t.setState(n)):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._currentToken.data+=\"\\ufffd\"):(t._currentToken.data+=i,t.setState(tt)),!0}function et(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-comment\"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i===\"-\"?t.setState(rt):i===\">\"?(t._parseError(\"incorrect-comment\"),t._emitToken(t._currentToken),t.setState(n)):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._currentToken.data+=\"\\ufffd\"):(t._currentToken.data+=\"-\"+i,t.setState(tt)),!0}function tt(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-comment\"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i===\"-\"?t.setState(nt):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._currentToken.data+=\"\\ufffd\"):(t._currentToken.data+=i,e.commit()),!0}function nt(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-comment-end-dash\"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i===\"-\"?t.setState(rt):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._currentToken.data+=\"-\\ufffd\",t.setState(tt)):(t._currentToken.data+=\"-\"+i+e.matchUntil(\"\\0|-\"),e.char()),!0}function rt(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-comment-double-dash\"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i===\">\"?(t._emitToken(t._currentToken),t.setState(n)):i===\"!\"?(t._parseError(\"unexpected-bang-after-double-dash-in-comment\"),t.setState(it)):i===\"-\"?(t._parseError(\"unexpected-dash-after-double-dash-in-comment\"),t._currentToken.data+=i):i===\"\\0\"?(t._parseError(\"invalid-codepoint\"),t._currentToken.data+=\"--\\ufffd\",t.setState(tt)):(t._parseError(\"unexpected-char-in-comment\"),t._currentToken.data+=\"--\"+i,t.setState(tt)),!0}function it(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-comment-end-bang-state\"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i===\">\"?(t._emitToken(t._currentToken),t.setState(n)):i===\"-\"?(t._currentToken.data+=\"--!\",t.setState(nt)):(t._currentToken.data+=\"--!\"+i,t.setState(tt)),!0}function st(e){var i=e.char();return i===r.EOF?(t._parseError(\"expected-doctype-name-but-got-eof\"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):s(i)?t.setState(ot):(t._parseError(\"need-space-after-doctype\"),e.unget(i),t.setState(ot)),!0}function ot(e){var i=e.char();return i===r.EOF?(t._parseError(\"expected-doctype-name-but-got-eof\"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):s(i)||(i===\">\"?(t._parseError(\"expected-doctype-name-but-got-right-bracket\"),t._currentToken.forceQuirks=!0,t.setState(n),t._emitCurrentToken()):(o(i)&&(i=i.toLowerCase()),t._currentToken.name=i,t.setState(ut))),!0}function ut(e){var i=e.char();return i===r.EOF?(t._currentToken.forceQuirks=!0,e.unget(i),t._parseError(\"eof-in-doctype-name\"),t.setState(n),t._emitCurrentToken()):s(i)?t.setState(at):i===\">\"?(t.setState(n),t._emitCurrentToken()):(o(i)&&(i=i.toLowerCase()),t._currentToken.name+=i,e.commit()),!0}function at(e){var i=e.char();if(i===r.EOF)t._currentToken.forceQuirks=!0,e.unget(i),t._parseError(\"eof-in-doctype\"),t.setState(n),t._emitCurrentToken();else if(!s(i))if(i===\">\")t.setState(n),t._emitCurrentToken();else{if([\"p\",\"P\"].indexOf(i)>-1){var o=[[\"u\",\"U\"],[\"b\",\"B\"],[\"l\",\"L\"],[\"i\",\"I\"],[\"c\",\"C\"]],u=o.every(function(t){return i=e.char(),t.indexOf(i)>-1});if(u)return t.setState(ft),!0}else if([\"s\",\"S\"].indexOf(i)>-1){var o=[[\"y\",\"Y\"],[\"s\",\"S\"],[\"t\",\"T\"],[\"e\",\"E\"],[\"m\",\"M\"]],u=o.every(function(t){return i=e.char(),t.indexOf(i)>-1});if(u)return t.setState(vt),!0}e.unget(i),t._currentToken.forceQuirks=!0,i===r.EOF?(t._parseError(\"eof-in-doctype\"),e.unget(i),t.setState(n),t._emitCurrentToken()):(t._parseError(\"expected-space-or-right-bracket-in-doctype\",{data:i}),t.setState(wt))}return!0}function ft(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-doctype\"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):s(i)?t.setState(lt):i===\"'\"||i==='\"'?(t._parseError(\"unexpected-char-in-doctype\"),e.unget(i),t.setState(lt)):(e.unget(i),t.setState(lt)),!0}function lt(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-doctype\"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):s(i)||(i==='\"'?(t._currentToken.publicId=\"\",t.setState(ct)):i===\"'\"?(t._currentToken.publicId=\"\",t.setState(ht)):i===\">\"?(t._parseError(\"unexpected-end-of-doctype\"),t._currentToken.forceQuirks=!0,t.setState(n),t._emitCurrentToken()):(t._parseError(\"unexpected-char-in-doctype\"),t._currentToken.forceQuirks=!0,t.setState(wt))),!0}function ct(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-doctype\"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):i==='\"'?t.setState(pt):i===\">\"?(t._parseError(\"unexpected-end-of-doctype\"),t._currentToken.forceQuirks=!0,t.setState(n),t._emitCurrentToken()):t._currentToken.publicId+=i,!0}function ht(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-doctype\"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):i===\"'\"?t.setState(pt):i===\">\"?(t._parseError(\"unexpected-end-of-doctype\"),t._currentToken.forceQuirks=!0,t.setState(n),t._emitCurrentToken()):t._currentToken.publicId+=i,!0}function pt(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-doctype\"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)?t.setState(dt):i===\">\"?(t.setState(n),t._emitCurrentToken()):i==='\"'?(t._parseError(\"unexpected-char-in-doctype\"),t._currentToken.systemId=\"\",t.setState(gt)):i===\"'\"?(t._parseError(\"unexpected-char-in-doctype\"),t._currentToken.systemId=\"\",t.setState(yt)):(t._parseError(\"unexpected-char-in-doctype\"),t._currentToken.forceQuirks=!0,t.setState(wt)),!0}function dt(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-doctype\"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)||(i===\">\"?(t._emitCurrentToken(),t.setState(n)):i==='\"'?(t._currentToken.systemId=\"\",t.setState(gt)):i===\"'\"?(t._currentToken.systemId=\"\",t.setState(yt)):(t._parseError(\"unexpected-char-in-doctype\"),t._currentToken.forceQuirks=!0,t.setState(wt))),!0}function vt(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-doctype\"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)?t.setState(mt):i===\"'\"||i==='\"'?(t._parseError(\"unexpected-char-in-doctype\"),e.unget(i),t.setState(mt)):(e.unget(i),t.setState(mt)),!0}function mt(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-doctype\"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)||(i==='\"'?(t._currentToken.systemId=\"\",t.setState(gt)):i===\"'\"?(t._currentToken.systemId=\"\",t.setState(yt)):i===\">\"?(t._parseError(\"unexpected-end-of-doctype\"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),t.setState(n)):(t._parseError(\"unexpected-char-in-doctype\"),t._currentToken.forceQuirks=!0,t.setState(wt))),!0}function gt(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-doctype\"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):i==='\"'?t.setState(bt):i===\">\"?(t._parseError(\"unexpected-end-of-doctype\"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),t.setState(n)):t._currentToken.systemId+=i,!0}function yt(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-doctype\"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):i===\"'\"?t.setState(bt):i===\">\"?(t._parseError(\"unexpected-end-of-doctype\"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),t.setState(n)):t._currentToken.systemId+=i,!0}function bt(e){var i=e.char();return i===r.EOF?(t._parseError(\"eof-in-doctype\"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)||(i===\">\"?(t._emitCurrentToken(),t.setState(n)):(t._parseError(\"unexpected-char-in-doctype\"),t.setState(wt))),!0}function wt(e){var i=e.char();return i===r.EOF?(e.unget(i),t._emitCurrentToken(),t.setState(n)):i===\">\"&&(t._emitCurrentToken(),t.setState(n)),!0}u.DATA=n,u.RCDATA=f,u.RAWTEXT=c,u.SCRIPT_DATA=p,u.PLAINTEXT=h,this._state=u.DATA,this._inputStream.append(e),this._tokenHandler.startTokenization(this),this._inputStream.eof=!0;var t=this;while(this._state.call(this,this._inputStream));},Object.defineProperty(u.prototype,\"lineNumber\",{get:function(){return this._inputStream.location().line}}),Object.defineProperty(u.prototype,\"columnNumber\",{get:function(){return this._inputStream.location().column}}),n.Tokenizer=u},{\"./EntityParser\":2,\"./InputStream\":3}],6:[function(e,t,n){function c(e){return e===\" \"||e===\"\\n\"||e===\"\t\"||e===\"\\r\"||e===\"\\f\"}function h(e){return c(e)||e===\"\\ufffd\"}function p(e){for(var t=0;t<e.length;t++){var n=e[t];if(!c(n))return!1}return!0}function d(e){for(var t=0;t<e.length;t++){var n=e[t];if(!h(n))return!1}return!0}function v(e,t){for(var n=0;n<e.attributes.length;n++){var r=e.attributes[n];if(r.nodeName===t)return r}return null}function m(e){this.characters=e,this.current=0,this.end=this.characters.length}function g(){this.tokenizer=null,this.errorHandler=null,this.scriptingEnabled=!1,this.document=null,this.head=null,this.form=null,this.openElements=new a,this.activeFormattingElements=[],this.insertionMode=null,this.insertionModeName=\"\",this.originalInsertionMode=\"\",this.inQuirksMode=!1,this.compatMode=\"no quirks\",this.framesetOk=!0,this.redirectAttachToFosterParent=!1,this.selfClosingFlagAcknowledged=!1,this.context=\"\",this.pendingTableCharacters=[],this.shouldSkipLeadingNewline=!1;var e=this,t=this.insertionModes={};t.base={end_tag_handlers:{\"-default\":\"endTagOther\"},start_tag_handlers:{\"-default\":\"startTagOther\"},processEOF:function(){e.generateImpliedEndTags(),e.openElements.length>2?e.parseError(\"expected-closing-tag-but-got-eof\"):e.openElements.length==2&&e.openElements.item(1).localName!=\"body\"?e.parseError(\"expected-closing-tag-but-got-eof\"):e.context&&e.openElements.length>1},processComment:function(t){e.insertComment(t,e.currentStackItem().node)},processDoctype:function(t,n,r,i){e.parseError(\"unexpected-doctype\")},processStartTag:function(e,t,n){if(this[this.start_tag_handlers[e]])this[this.start_tag_handlers[e]](e,t,n);else{if(!this[this.start_tag_handlers[\"-default\"]])throw new Error(\"No handler found for \"+e);this[this.start_tag_handlers[\"-default\"]](e,t,n)}},processEndTag:function(e){if(this[this.end_tag_handlers[e]])this[this.end_tag_handlers[e]](e);else{if(!this[this.end_tag_handlers[\"-default\"]])throw new Error(\"No handler found for \"+e);this[this.end_tag_handlers[\"-default\"]](e)}},startTagHtml:function(e,n){t.inBody.startTagHtml(e,n)}},t.initial=Object.create(t.base),t.initial.processEOF=function(){e.parseError(\"expected-doctype-but-got-eof\"),this.anythingElse(),e.insertionMode.processEOF()},t.initial.processComment=function(t){e.insertComment(t,e.document)},t.initial.processDoctype=function(t,n,r,i){function s(e){return n.toLowerCase().indexOf(e)===0}e.insertDoctype(t||\"\",n||\"\",r||\"\"),i||t!=\"html\"||n!=null&&([\"+//silmaril//dtd html pro v0r11 19970101//\",\"-//advasoft ltd//dtd html 3.0 aswedit + extensions//\",\"-//as//dtd html 3.0 aswedit + extensions//\",\"-//ietf//dtd html 2.0 level 1//\",\"-//ietf//dtd html 2.0 level 2//\",\"-//ietf//dtd html 2.0 strict level 1//\",\"-//ietf//dtd html 2.0 strict level 2//\",\"-//ietf//dtd html 2.0 strict//\",\"-//ietf//dtd html 2.0//\",\"-//ietf//dtd html 2.1e//\",\"-//ietf//dtd html 3.0//\",\"-//ietf//dtd html 3.0//\",\"-//ietf//dtd html 3.2 final//\",\"-//ietf//dtd html 3.2//\",\"-//ietf//dtd html 3//\",\"-//ietf//dtd html level 0//\",\"-//ietf//dtd html level 0//\",\"-//ietf//dtd html level 1//\",\"-//ietf//dtd html level 1//\",\"-//ietf//dtd html level 2//\",\"-//ietf//dtd html level 2//\",\"-//ietf//dtd html level 3//\",\"-//ietf//dtd html level 3//\",\"-//ietf//dtd html strict level 0//\",\"-//ietf//dtd html strict level 0//\",\"-//ietf//dtd html strict level 1//\",\"-//ietf//dtd html strict level 1//\",\"-//ietf//dtd html strict level 2//\",\"-//ietf//dtd html strict level 2//\",\"-//ietf//dtd html strict level 3//\",\"-//ietf//dtd html strict level 3//\",\"-//ietf//dtd html strict//\",\"-//ietf//dtd html strict//\",\"-//ietf//dtd html strict//\",\"-//ietf//dtd html//\",\"-//ietf//dtd html//\",\"-//ietf//dtd html//\",\"-//metrius//dtd metrius presentational//\",\"-//microsoft//dtd internet explorer 2.0 html strict//\",\"-//microsoft//dtd internet explorer 2.0 html//\",\"-//microsoft//dtd internet explorer 2.0 tables//\",\"-//microsoft//dtd internet explorer 3.0 html strict//\",\"-//microsoft//dtd internet explorer 3.0 html//\",\"-//microsoft//dtd internet explorer 3.0 tables//\",\"-//netscape comm. corp.//dtd html//\",\"-//netscape comm. corp.//dtd strict html//\",\"-//o'reilly and associates//dtd html 2.0//\",\"-//o'reilly and associates//dtd html extended 1.0//\",\"-//spyglass//dtd html 2.0 extended//\",\"-//sq//dtd html 2.0 hotmetal + extensions//\",\"-//sun microsystems corp.//dtd hotjava html//\",\"-//sun microsystems corp.//dtd hotjava strict html//\",\"-//w3c//dtd html 3 1995-03-24//\",\"-//w3c//dtd html 3.2 draft//\",\"-//w3c//dtd html 3.2 final//\",\"-//w3c//dtd html 3.2//\",\"-//w3c//dtd html 3.2s draft//\",\"-//w3c//dtd html 4.0 frameset//\",\"-//w3c//dtd html 4.0 transitional//\",\"-//w3c//dtd html experimental 19960712//\",\"-//w3c//dtd html experimental 970421//\",\"-//w3c//dtd w3 html//\",\"-//w3o//dtd w3 html 3.0//\",\"-//webtechs//dtd mozilla html 2.0//\",\"-//webtechs//dtd mozilla html//\",\"html\"].some(s)||[\"-//w3o//dtd w3 html strict 3.0//en//\",\"-/w3c/dtd html 4.0 transitional/en\",\"html\"].indexOf(n.toLowerCase())>-1||r==null&&[\"-//w3c//dtd html 4.01 transitional//\",\"-//w3c//dtd html 4.01 frameset//\"].some(s))||r!=null&&r.toLowerCase()==\"http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd\"?(e.compatMode=\"quirks\",e.parseError(\"quirky-doctype\")):n!=null&&([\"-//w3c//dtd xhtml 1.0 transitional//\",\"-//w3c//dtd xhtml 1.0 frameset//\"].some(s)||r!=null&&[\"-//w3c//dtd html 4.01 transitional//\",\"-//w3c//dtd html 4.01 frameset//\"].indexOf(n.toLowerCase())>-1)?(e.compatMode=\"limited quirks\",e.parseError(\"almost-standards-doctype\")):n==\"-//W3C//DTD HTML 4.0//EN\"&&(r==null||r==\"http://www.w3.org/TR/REC-html40/strict.dtd\")||n==\"-//W3C//DTD HTML 4.01//EN\"&&(r==null||r==\"http://www.w3.org/TR/html4/strict.dtd\")||n==\"-//W3C//DTD XHTML 1.0 Strict//EN\"&&r==\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"||n==\"-//W3C//DTD XHTML 1.1//EN\"&&r==\"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\"||(r!=null&&r!=\"about:legacy-compat\"||n!=null)&&e.parseError(\"unknown-doctype\"),e.setInsertionMode(\"beforeHTML\")},t.initial.processCharacters=function(t){t.skipLeadingWhitespace();if(!t.length)return;e.parseError(\"expected-doctype-but-got-chars\"),this.anythingElse(),e.insertionMode.processCharacters(t)},t.initial.processStartTag=function(t,n,r){e.parseError(\"expected-doctype-but-got-start-tag\",{name:t}),this.anythingElse(),e.insertionMode.processStartTag(t,n,r)},t.initial.processEndTag=function(t){e.parseError(\"expected-doctype-but-got-end-tag\",{name:t}),this.anythingElse(),e.insertionMode.processEndTag(t)},t.initial.anythingElse=function(){e.compatMode=\"quirks\",e.setInsertionMode(\"beforeHTML\")},t.beforeHTML=Object.create(t.base),t.beforeHTML.start_tag_handlers={html:\"startTagHtml\",\"-default\":\"startTagOther\"},t.beforeHTML.processEOF=function(){this.anythingElse(),e.insertionMode.processEOF()},t.beforeHTML.processComment=function(t){e.insertComment(t,e.document)},t.beforeHTML.processCharacters=function(t){t.skipLeadingWhitespace();if(!t.length)return;this.anythingElse(),e.insertionMode.processCharacters(t)},t.beforeHTML.startTagHtml=function(t,n,r){e.insertHtmlElement(n),e.setInsertionMode(\"beforeHead\")},t.beforeHTML.startTagOther=function(t,n,r){this.anythingElse(),e.insertionMode.processStartTag(t,n,r)},t.beforeHTML.processEndTag=function(t){this.anythingElse(),e.insertionMode.processEndTag(t)},t.beforeHTML.anythingElse=function(){e.insertHtmlElement(),e.setInsertionMode(\"beforeHead\")},t.afterAfterBody=Object.create(t.base),t.afterAfterBody.start_tag_handlers={html:\"startTagHtml\",\"-default\":\"startTagOther\"},t.afterAfterBody.processComment=function(t){e.insertComment(t,e.document)},t.afterAfterBody.processDoctype=function(e){t.inBody.processDoctype(e)},t.afterAfterBody.startTagHtml=function(e,n){t.inBody.startTagHtml(e,n)},t.afterAfterBody.startTagOther=function(t,n,r){e.parseError(\"unexpected-start-tag\",{name:t}),e.setInsertionMode(\"inBody\"),e.insertionMode.processStartTag(t,n,r)},t.afterAfterBody.endTagOther=function(t){e.parseError(\"unexpected-end-tag\",{name:t}),e.setInsertionMode(\"inBody\"),e.insertionMode.processEndTag(t)},t.afterAfterBody.processCharacters=function(n){if(!p(n.characters))return e.parseError(\"unexpected-char-after-body\"),e.setInsertionMode(\"inBody\"),e.insertionMode.processCharacters(n);t.inBody.processCharacters(n)},t.afterBody=Object.create(t.base),t.afterBody.end_tag_handlers={html:\"endTagHtml\",\"-default\":\"endTagOther\"},t.afterBody.processComment=function(t){e.insertComment(t,e.openElements.rootNode)},t.afterBody.processCharacters=function(n){if(!p(n.characters))return e.parseError(\"unexpected-char-after-body\"),e.setInsertionMode(\"inBody\"),e.insertionMode.processCharacters(n);t.inBody.processCharacters(n)},t.afterBody.processStartTag=function(t,n,r){e.parseError(\"unexpected-start-tag-after-body\",{name:t}),e.setInsertionMode(\"inBody\"),e.insertionMode.processStartTag(t,n,r)},t.afterBody.endTagHtml=function(t){e.context?e.parseError(\"end-html-in-innerhtml\"):e.setInsertionMode(\"afterAfterBody\")},t.afterBody.endTagOther=function(t){e.parseError(\"unexpected-end-tag-after-body\",{name:t}),e.setInsertionMode(\"inBody\"),e.insertionMode.processEndTag(t)},t.afterFrameset=Object.create(t.base),t.afterFrameset.start_tag_handlers={html:\"startTagHtml\",noframes:\"startTagNoframes\",\"-default\":\"startTagOther\"},t.afterFrameset.end_tag_handlers={html:\"endTagHtml\",\"-default\":\"endTagOther\"},t.afterFrameset.processCharacters=function(t){var n=t.takeRemaining(),r=\"\";for(var i=0;i<n.length;i++){var s=n[i];c(s)&&(r+=s)}r&&e.insertText(r),r.length<n.length&&e.parseError(\"expected-eof-but-got-char\")},t.afterFrameset.startTagNoframes=function(e,n){t.inHead.processStartTag(e,n)},t.afterFrameset.startTagOther=function(t,n){e.parseError(\"unexpected-start-tag-after-frameset\",{name:t})},t.afterFrameset.endTagHtml=function(t){e.setInsertionMode(\"afterAfterFrameset\")},t.afterFrameset.endTagOther=function(t){e.parseError(\"unexpected-end-tag-after-frameset\",{name:t})},t.beforeHead=Object.create(t.base),t.beforeHead.start_tag_handlers={html:\"startTagHtml\",head:\"startTagHead\",\"-default\":\"startTagOther\"},t.beforeHead.end_tag_handlers={html:\"endTagImplyHead\",head:\"endTagImplyHead\",body:\"endTagImplyHead\",br:\"endTagImplyHead\",\"-default\":\"endTagOther\"},t.beforeHead.processEOF=function(){this.startTagHead(\"head\",[]),e.insertionMode.processEOF()},t.beforeHead.processCharacters=function(t){t.skipLeadingWhitespace();if(!t.length)return;this.startTagHead(\"head\",[]),e.insertionMode.processCharacters(t)},t.beforeHead.startTagHead=function(t,n){e.insertHeadElement(n),e.setInsertionMode(\"inHead\")},t.beforeHead.startTagOther=function(t,n,r){this.startTagHead(\"head\",[]),e.insertionMode.processStartTag(t,n,r)},t.beforeHead.endTagImplyHead=function(t){this.startTagHead(\"head\",[]),e.insertionMode.processEndTag(t)},t.beforeHead.endTagOther=function(t){e.parseError(\"end-tag-after-implied-root\",{name:t})},t.inHead=Object.create(t.base),t.inHead.start_tag_handlers={html:\"startTagHtml\",head:\"startTagHead\",title:\"startTagTitle\",script:\"startTagScript\",style:\"startTagNoFramesStyle\",noscript:\"startTagNoScript\",noframes:\"startTagNoFramesStyle\",base:\"startTagBaseBasefontBgsoundLink\",basefont:\"startTagBaseBasefontBgsoundLink\",bgsound:\"startTagBaseBasefontBgsoundLink\",link:\"startTagBaseBasefontBgsoundLink\",meta:\"startTagMeta\",\"-default\":\"startTagOther\"},t.inHead.end_tag_handlers={head:\"endTagHead\",html:\"endTagHtmlBodyBr\",body:\"endTagHtmlBodyBr\",br:\"endTagHtmlBodyBr\",\"-default\":\"endTagOther\"},t.inHead.processEOF=function(){var t=e.currentStackItem().localName;[\"title\",\"style\",\"script\"].indexOf(t)!=-1&&(e.parseError(\"expected-named-closing-tag-but-got-eof\",{name:t}),e.popElement()),this.anythingElse(),e.insertionMode.processEOF()},t.inHead.processCharacters=function(t){var n=t.takeLeadingWhitespace();n&&e.insertText(n);if(!t.length)return;this.anythingElse(),e.insertionMode.processCharacters(t)},t.inHead.startTagHtml=function(e,n){t.inBody.processStartTag(e,n)},t.inHead.startTagHead=function(t,n){e.parseError(\"two-heads-are-not-better-than-one\")},t.inHead.startTagTitle=function(t,n){e.processGenericRCDATAStartTag(t,n)},t.inHead.startTagNoScript=function(t,n){if(e.scriptingEnabled)return e.processGenericRawTextStartTag(t,n);e.insertElement(t,n),e.setInsertionMode(\"inHeadNoscript\")},t.inHead.startTagNoFramesStyle=function(t,n){e.processGenericRawTextStartTag(t,n)},t.inHead.startTagScript=function(t,n){e.insertElement(t,n),e.tokenizer.setState(u.SCRIPT_DATA),e.originalInsertionMode=e.insertionModeName,e.setInsertionMode(\"text\")},t.inHead.startTagBaseBasefontBgsoundLink=function(t,n){e.insertSelfClosingElement(t,n)},t.inHead.startTagMeta=function(t,n){e.insertSelfClosingElement(t,n)},t.inHead.startTagOther=function(t,n,r){this.anythingElse(),e.insertionMode.processStartTag(t,n,r)},t.inHead.endTagHead=function(t){e.openElements.item(e.openElements.length-1).localName==\"head\"?e.openElements.pop():e.parseError(\"unexpected-end-tag\",{name:\"head\"}),e.setInsertionMode(\"afterHead\")},t.inHead.endTagHtmlBodyBr=function(t){this.anythingElse(),e.insertionMode.processEndTag(t)},t.inHead.endTagOther=function(t){e.parseError(\"unexpected-end-tag\",{name:t})},t.inHead.anythingElse=function(){this.endTagHead(\"head\")},t.afterHead=Object.create(t.base),t.afterHead.start_tag_handlers={html:\"startTagHtml\",head:\"startTagHead\",body:\"startTagBody\",frameset:\"startTagFrameset\",base:\"startTagFromHead\",link:\"startTagFromHead\",meta:\"startTagFromHead\",script:\"startTagFromHead\",style:\"startTagFromHead\",title:\"startTagFromHead\",\"-default\":\"startTagOther\"},t.afterHead.end_tag_handlers={body:\"endTagBodyHtmlBr\",html:\"endTagBodyHtmlBr\",br:\"endTagBodyHtmlBr\",\"-default\":\"endTagOther\"},t.afterHead.processEOF=function(){this.anythingElse(),e.insertionMode.processEOF()},t.afterHead.processCharacters=function(t){var n=t.takeLeadingWhitespace();n&&e.insertText(n);if(!t.length)return;this.anythingElse(),e.insertionMode.processCharacters(t)},t.afterHead.startTagHtml=function(e,n){t.inBody.processStartTag(e,n)},t.afterHead.startTagBody=function(t,n){e.framesetOk=!1,e.insertBodyElement(n),e.setInsertionMode(\"inBody\")},t.afterHead.startTagFrameset=function(t,n){e.insertElement(t,n),e.setInsertionMode(\"inFrameset\")},t.afterHead.startTagFromHead=function(n,r,i){e.parseError(\"unexpected-start-tag-out-of-my-head\",{name:n}),e.openElements.push(e.head),t.inHead.processStartTag(n,r,i),e.openElements.remove(e.head)},t.afterHead.startTagHead=function(t,n,r){e.parseError(\"unexpected-start-tag\",{name:t})},t.afterHead.startTagOther=function(t,n,r){this.anythingElse(),e.insertionMode.processStartTag(t,n,r)},t.afterHead.endTagBodyHtmlBr=function(t){this.anythingElse(),e.insertionMode.processEndTag(t)},t.afterHead.endTagOther=function(t){e.parseError(\"unexpected-end-tag\",{name:t})},t.afterHead.anythingElse=function(){e.insertBodyElement([]),e.setInsertionMode(\"inBody\"),e.framesetOk=!0},t.inBody=Object.create(t.base),t.inBody.start_tag_handlers={html:\"startTagHtml\",head:\"startTagMisplaced\",base:\"startTagProcessInHead\",basefont:\"startTagProcessInHead\",bgsound:\"startTagProcessInHead\",link:\"startTagProcessInHead\",meta:\"startTagProcessInHead\",noframes:\"startTagProcessInHead\",script:\"startTagProcessInHead\",style:\"startTagProcessInHead\",title:\"startTagProcessInHead\",body:\"startTagBody\",form:\"startTagForm\",plaintext:\"startTagPlaintext\",a:\"startTagA\",button:\"startTagButton\",xmp:\"startTagXmp\",table:\"startTagTable\",hr:\"startTagHr\",image:\"startTagImage\",input:\"startTagInput\",textarea:\"startTagTextarea\",select:\"startTagSelect\",isindex:\"startTagIsindex\",applet:\"startTagAppletMarqueeObject\",marquee:\"startTagAppletMarqueeObject\",object:\"startTagAppletMarqueeObject\",li:\"startTagListItem\",dd:\"startTagListItem\",dt:\"startTagListItem\",address:\"startTagCloseP\",article:\"startTagCloseP\",aside:\"startTagCloseP\",blockquote:\"startTagCloseP\",center:\"startTagCloseP\",details:\"startTagCloseP\",dir:\"startTagCloseP\",div:\"startTagCloseP\",dl:\"startTagCloseP\",fieldset:\"startTagCloseP\",figcaption:\"startTagCloseP\",figure:\"startTagCloseP\",footer:\"startTagCloseP\",header:\"startTagCloseP\",hgroup:\"startTagCloseP\",main:\"startTagCloseP\",menu:\"startTagCloseP\",nav:\"startTagCloseP\",ol:\"startTagCloseP\",p:\"startTagCloseP\",section:\"startTagCloseP\",summary:\"startTagCloseP\",ul:\"startTagCloseP\",listing:\"startTagPreListing\",pre:\"startTagPreListing\",b:\"startTagFormatting\",big:\"startTagFormatting\",code:\"startTagFormatting\",em:\"startTagFormatting\",font:\"startTagFormatting\",i:\"startTagFormatting\",s:\"startTagFormatting\",small:\"startTagFormatting\",strike:\"startTagFormatting\",strong:\"startTagFormatting\",tt:\"startTagFormatting\",u:\"startTagFormatting\",nobr:\"startTagNobr\",area:\"startTagVoidFormatting\",br:\"startTagVoidFormatting\",embed:\"startTagVoidFormatting\",img:\"startTagVoidFormatting\",keygen:\"startTagVoidFormatting\",wbr:\"startTagVoidFormatting\",param:\"startTagParamSourceTrack\",source:\"startTagParamSourceTrack\",track:\"startTagParamSourceTrack\",iframe:\"startTagIFrame\",noembed:\"startTagRawText\",noscript:\"startTagRawText\",h1:\"startTagHeading\",h2:\"startTagHeading\",h3:\"startTagHeading\",h4:\"startTagHeading\",h5:\"startTagHeading\",h6:\"startTagHeading\",caption:\"startTagMisplaced\",col:\"startTagMisplaced\",colgroup:\"startTagMisplaced\",frame:\"startTagMisplaced\",frameset:\"startTagFrameset\",tbody:\"startTagMisplaced\",td:\"startTagMisplaced\",tfoot:\"startTagMisplaced\",th:\"startTagMisplaced\",thead:\"startTagMisplaced\",tr:\"startTagMisplaced\",option:\"startTagOptionOptgroup\",optgroup:\"startTagOptionOptgroup\",math:\"startTagMath\",svg:\"startTagSVG\",rt:\"startTagRpRt\",rp:\"startTagRpRt\",\"-default\":\"startTagOther\"},t.inBody.end_tag_handlers={p:\"endTagP\",body:\"endTagBody\",html:\"endTagHtml\",address:\"endTagBlock\",article:\"endTagBlock\",aside:\"endTagBlock\",blockquote:\"endTagBlock\",button:\"endTagBlock\",center:\"endTagBlock\",details:\"endTagBlock\",dir:\"endTagBlock\",div:\"endTagBlock\",dl:\"endTagBlock\",fieldset:\"endTagBlock\",figcaption:\"endTagBlock\",figure:\"endTagBlock\",footer:\"endTagBlock\",header:\"endTagBlock\",hgroup:\"endTagBlock\",listing:\"endTagBlock\",main:\"endTagBlock\",menu:\"endTagBlock\",nav:\"endTagBlock\",ol:\"endTagBlock\",pre:\"endTagBlock\",section:\"endTagBlock\",summary:\"endTagBlock\",ul:\"endTagBlock\",form:\"endTagForm\",applet:\"endTagAppletMarqueeObject\",marquee:\"endTagAppletMarqueeObject\",object:\"endTagAppletMarqueeObject\",dd:\"endTagListItem\",dt:\"endTagListItem\",li:\"endTagListItem\",h1:\"endTagHeading\",h2:\"endTagHeading\",h3:\"endTagHeading\",h4:\"endTagHeading\",h5:\"endTagHeading\",h6:\"endTagHeading\",a:\"endTagFormatting\",b:\"endTagFormatting\",big:\"endTagFormatting\",code:\"endTagFormatting\",em:\"endTagFormatting\",font:\"endTagFormatting\",i:\"endTagFormatting\",nobr:\"endTagFormatting\",s:\"endTagFormatting\",small:\"endTagFormatting\",strike:\"endTagFormatting\",strong:\"endTagFormatting\",tt:\"endTagFormatting\",u:\"endTagFormatting\",br:\"endTagBr\",\"-default\":\"endTagOther\"},t.inBody.processCharacters=function(t){e.shouldSkipLeadingNewline&&(e.shouldSkipLeadingNewline=!1,t.skipAtMostOneLeadingNewline()),e.reconstructActiveFormattingElements();var n=t.takeRemaining();n=n.replace(/\\u0000/g,function(t,n){return e.parseError(\"invalid-codepoint\"),\"\"});if(!n)return;e.insertText(n),e.framesetOk&&!d(n)&&(e.framesetOk=!1)},t.inBody.startTagHtml=function(t,n){e.parseError(\"non-html-root\"),e.addAttributesToElement(e.openElements.rootNode,n)},t.inBody.startTagProcessInHead=function(e,n){t.inHead.processStartTag(e,n)},t.inBody.startTagBody=function(t,n){e.parseError(\"unexpected-start-tag\",{name:\"body\"}),e.openElements.length==1||e.openElements.item(1).localName!=\"body\"?r.ok(e.context):(e.framesetOk=!1,e.addAttributesToElement(e.openElements.bodyElement,n))},t.inBody.startTagFrameset=function(t,n){e.parseError(\"unexpected-start-tag\",{name:\"frameset\"});if(e.openElements.length==1||e.openElements.item(1).localName!=\"body\")r.ok(e.context);else if(e.framesetOk){e.detachFromParent(e.openElements.bodyElement);while(e.openElements.length>1)e.openElements.pop();e.insertElement(t,n),e.setInsertionMode(\"inFrameset\")}},t.inBody.startTagCloseP=function(t,n){e.openElements.inButtonScope(\"p\")&&this.endTagP(\"p\"),e.insertElement(t,n)},t.inBody.startTagPreListing=function(t,n){e.openElements.inButtonScope(\"p\")&&this.endTagP(\"p\"),e.insertElement(t,n),e.framesetOk=!1,e.shouldSkipLeadingNewline=!0},t.inBody.startTagForm=function(t,n){e.form?e.parseError(\"unexpected-start-tag\",{name:t}):(e.openElements.inButtonScope(\"p\")&&this.endTagP(\"p\"),e.insertElement(t,n),e.form=e.currentStackItem())},t.inBody.startTagRpRt=function(t,n){e.openElements.inScope(\"ruby\")&&(e.generateImpliedEndTags(),e.currentStackItem().localName!=\"ruby\"&&e.parseError(\"unexpected-start-tag\",{name:t})),e.insertElement(t,n)},t.inBody.startTagListItem=function(t,n){var r={li:[\"li\"],dd:[\"dd\",\"dt\"],dt:[\"dd\",\"dt\"]},i=r[t],s=e.openElements;for(var o=s.length-1;o>=0;o--){var u=s.item(o);if(i.indexOf(u.localName)!=-1){e.insertionMode.processEndTag(u.localName);break}if(u.isSpecial()&&u.localName!==\"p\"&&u.localName!==\"address\"&&u.localName!==\"div\")break}e.openElements.inButtonScope(\"p\")&&this.endTagP(\"p\"),e.insertElement(t,n),e.framesetOk=!1},t.inBody.startTagPlaintext=function(t,n){e.openElements.inButtonScope(\"p\")&&this.endTagP(\"p\"),e.insertElement(t,n),e.tokenizer.setState(u.PLAINTEXT)},t.inBody.startTagHeading=function(t,n){e.openElements.inButtonScope(\"p\")&&this.endTagP(\"p\"),e.currentStackItem().isNumberedHeader()&&(e.parseError(\"unexpected-start-tag\",{name:t}),e.popElement()),e.insertElement(t,n)},t.inBody.startTagA=function(t,n){var r=e.elementInActiveFormattingElements(\"a\");r&&(e.parseError(\"unexpected-start-tag-implies-end-tag\",{startName:\"a\",endName:\"a\"}),e.adoptionAgencyEndTag(\"a\"),e.openElements.contains(r)&&e.openElements.remove(r),e.removeElementFromActiveFormattingElements(r)),e.reconstructActiveFormattingElements(),e.insertFormattingElement(t,n)},t.inBody.startTagFormatting=function(t,n){e.reconstructActiveFormattingElements(),e.insertFormattingElement(t,n)},t.inBody.startTagNobr=function(t,n){e.reconstructActiveFormattingElements(),e.openElements.inScope(\"nobr\")&&(e.parseError(\"unexpected-start-tag-implies-end-tag\",{startName:\"nobr\",endName:\"nobr\"}),this.processEndTag(\"nobr\"),e.reconstructActiveFormattingElements()),e.insertFormattingElement(t,n)},t.inBody.startTagButton=function(t,n){e.openElements.inScope(\"button\")?(e.parseError(\"unexpected-start-tag-implies-end-tag\",{startName:\"button\",endName:\"button\"}),this.processEndTag(\"button\"),e.insertionMode.processStartTag(t,n)):(e.framesetOk=!1,e.reconstructActiveFormattingElements(),e.insertElement(t,n))},t.inBody.startTagAppletMarqueeObject=function(t,n){e.reconstructActiveFormattingElements(),e.insertElement(t,n),e.activeFormattingElements.push(l),e.framesetOk=!1},t.inBody.endTagAppletMarqueeObject=function(t){e.openElements.inScope(t)?(e.generateImpliedEndTags(),e.currentStackItem().localName!=t&&e.parseError(\"end-tag-too-early\",{name:t}),e.openElements.popUntilPopped(t),e.clearActiveFormattingElements()):e.parseError(\"unexpected-end-tag\",{name:t})},t.inBody.startTagXmp=function(t,n){e.openElements.inButtonScope(\"p\")&&this.processEndTag(\"p\"),e.reconstructActiveFormattingElements(),e.processGenericRawTextStartTag(t,n),e.framesetOk=!1},t.inBody.startTagTable=function(t,n){e.compatMode!==\"quirks\"&&e.openElements.inButtonScope(\"p\")&&this.processEndTag(\"p\"),e.insertElement(t,n),e.setInsertionMode(\"inTable\"),e.framesetOk=!1},t.inBody.startTagVoidFormatting=function(t,n){e.reconstructActiveFormattingElements(),e.insertSelfClosingElement(t,n),e.framesetOk=!1},t.inBody.startTagParamSourceTrack=function(t,n){e.insertSelfClosingElement(t,n)},t.inBody.startTagHr=function(t,n){e.openElements.inButtonScope(\"p\")&&this.endTagP(\"p\"),e.insertSelfClosingElement(t,n),e.framesetOk=!1},t.inBody.startTagImage=function(t,n){e.parseError(\"unexpected-start-tag-treated-as\",{originalName:\"image\",newName:\"img\"}),this.processStartTag(\"img\",n)},t.inBody.startTagInput=function(t,n){var r=e.framesetOk;this.startTagVoidFormatting(t,n);for(var i in n)if(n[i].nodeName==\"type\"){n[i].nodeValue.toLowerCase()==\"hidden\"&&(e.framesetOk=r);break}},t.inBody.startTagIsindex=function(t,n){e.parseError(\"deprecated-tag\",{name:\"isindex\"}),e.selfClosingFlagAcknowledged=!0;if(e.form)return;var r=[],i=[],s=\"This is a searchable index. Enter search keywords: \";for(var o in n)switch(n[o].nodeName){case\"action\":r.push({nodeName:\"action\",nodeValue:n[o].nodeValue});break;case\"prompt\":s=n[o].nodeValue;break;case\"name\":break;default:i.push({nodeName:n[o].nodeName,nodeValue:n[o].nodeValue})}i.push({nodeName:\"name\",nodeValue:\"isindex\"}),this.processStartTag(\"form\",r),this.processStartTag(\"hr\"),this.processStartTag(\"label\"),this.processCharacters(new m(s)),this.processStartTag(\"input\",i),this.processEndTag(\"label\"),this.processStartTag(\"hr\"),this.processEndTag(\"form\")},t.inBody.startTagTextarea=function(t,n){e.insertElement(t,n),e.tokenizer.setState(u.RCDATA),e.originalInsertionMode=e.insertionModeName,e.shouldSkipLeadingNewline=!0,e.framesetOk=!1,e.setInsertionMode(\"text\")},t.inBody.startTagIFrame=function(t,n){e.framesetOk=!1,this.startTagRawText(t,n)},t.inBody.startTagRawText=function(t,n){e.processGenericRawTextStartTag(t,n)},t.inBody.startTagSelect=function(t,n){e.reconstructActiveFormattingElements(),e.insertElement(t,n),e.framesetOk=!1;var r=e.insertionModeName;r==\"inTable\"||r==\"inCaption\"||r==\"inColumnGroup\"||r==\"inTableBody\"||r==\"inRow\"||r==\"inCell\"?e.setInsertionMode(\"inSelectInTable\"):e.setInsertionMode(\"inSelect\")},t.inBody.startTagMisplaced=function(t,n){e.parseError(\"unexpected-start-tag-ignored\",{name:t})},t.inBody.endTagMisplaced=function(t){e.parseError(\"unexpected-end-tag\",{name:t})},t.inBody.endTagBr=function(t){e.parseError(\"unexpected-end-tag-treated-as\",{originalName:\"br\",newName:\"br element\"}),e.reconstructActiveFormattingElements(),e.insertElement(t,[]),e.popElement()},t.inBody.startTagOptionOptgroup=function(t,n){e.currentStackItem().localName==\"option\"&&e.popElement(),e.reconstructActiveFormattingElements(),e.insertElement(t,n)},t.inBody.startTagOther=function(t,n){e.reconstructActiveFormattingElements(),e.insertElement(t,n)},t.inBody.endTagOther=function(t){var n;for(var r=e.openElements.length-1;r>0;r--){n=e.openElements.item(r);if(n.localName==t){e.generateImpliedEndTags(t),e.currentStackItem().localName!=t&&e.parseError(\"unexpected-end-tag\",{name:t}),e.openElements.remove_openElements_until(function(e){return e===n});break}if(n.isSpecial()){e.parseError(\"unexpected-end-tag\",{name:t});break}}},t.inBody.startTagMath=function(t,n,r){e.reconstructActiveFormattingElements(),n=e.adjustMathMLAttributes(n),n=e.adjustForeignAttributes(n),e.insertForeignElement(t,n,\"http://www.w3.org/1998/Math/MathML\",r)},t.inBody.startTagSVG=function(t,n,r){e.reconstructActiveFormattingElements(),n=e.adjustSVGAttributes(n),n=e.adjustForeignAttributes(n),e.insertForeignElement(t,n,\"http://www.w3.org/2000/svg\",r)},t.inBody.endTagP=function(t){e.openElements.inButtonScope(\"p\")?(e.generateImpliedEndTags(\"p\"),e.currentStackItem().localName!=\"p\"&&e.parseError(\"unexpected-implied-end-tag\",{name:\"p\"}),e.openElements.popUntilPopped(t)):(e.parseError(\"unexpected-end-tag\",{name:\"p\"}),this.startTagCloseP(\"p\",[]),this.endTagP(\"p\"))},t.inBody.endTagBody=function(t){if(!e.openElements.inScope(\"body\")){e.parseError(\"unexpected-end-tag\",{name:t});return}e.currentStackItem().localName!=\"body\"&&e.parseError(\"expected-one-end-tag-but-got-another\",{expectedName:e.currentStackItem().localName,gotName:t}),e.setInsertionMode(\"afterBody\")},t.inBody.endTagHtml=function(t){if(!e.openElements.inScope(\"body\")){e.parseError(\"unexpected-end-tag\",{name:t});return}e.currentStackItem().localName!=\"body\"&&e.parseError(\"expected-one-end-tag-but-got-another\",{expectedName:e.currentStackItem().localName,gotName:t}),e.setInsertionMode(\"afterBody\"),e.insertionMode.processEndTag(t)},t.inBody.endTagBlock=function(t){e.openElements.inScope(t)?(e.generateImpliedEndTags(),e.currentStackItem().localName!=t&&e.parseError(\"end-tag-too-early\",{name:t}),e.openElements.popUntilPopped(t)):e.parseError(\"unexpected-end-tag\",{name:t})},t.inBody.endTagForm=function(t){var n=e.form;e.form=null,!n||!e.openElements.inScope(t)?e.parseError(\"unexpected-end-tag\",{name:t}):(e.generateImpliedEndTags(),e.currentStackItem()!=n&&e.parseError(\"end-tag-too-early-ignored\",{name:\"form\"}),e.openElements.remove(n))},t.inBody.endTagListItem=function(t){e.openElements.inListItemScope(t)?(e.generateImpliedEndTags(t),e.currentStackItem().localName!=t&&e.parseError(\"end-tag-too-early\",{name:t}),e.openElements.popUntilPopped(t)):e.parseError(\"unexpected-end-tag\",{name:t})},t.inBody.endTagHeading=function(t){if(!e.openElements.hasNumberedHeaderElementInScope()){e.parseError(\"unexpected-end-tag\",{name:t});return}e.generateImpliedEndTags(),e.currentStackItem().localName!=t&&e.parseError(\"end-tag-too-early\",{name:t}),e.openElements.remove_openElements_until(function(e){return e.isNumberedHeader()})},t.inBody.endTagFormatting=function(t,n){e.adoptionAgencyEndTag(t)||this.endTagOther(t,n)},t.inCaption=Object.create(t.base),t.inCaption.start_tag_handlers={html:\"startTagHtml\",caption:\"startTagTableElement\",col:\"startTagTableElement\",colgroup:\"startTagTableElement\",tbody:\"startTagTableElement\",td:\"startTagTableElement\",tfoot:\"startTagTableElement\",thead:\"startTagTableElement\",tr:\"startTagTableElement\",\"-default\":\"startTagOther\"},t.inCaption.end_tag_handlers={caption:\"endTagCaption\",table:\"endTagTable\",body:\"endTagIgnore\",col:\"endTagIgnore\",colgroup:\"endTagIgnore\",html:\"endTagIgnore\",tbody:\"endTagIgnore\",td:\"endTagIgnore\",tfood:\"endTagIgnore\",thead:\"endTagIgnore\",tr:\"endTagIgnore\",\"-default\":\"endTagOther\"},t.inCaption.processCharacters=function(e){t.inBody.processCharacters(e)},t.inCaption.startTagTableElement=function(t,n){e.parseError(\"unexpected-end-tag\",{name:t});var r=!e.openElements.inTableScope(\"caption\");e.insertionMode.processEndTag(\"caption\"),r||e.insertionMode.processStartTag(t,n)},t.inCaption.startTagOther=function(e,n,r){t.inBody.processStartTag(e,n,r)},t.inCaption.endTagCaption=function(t){e.openElements.inTableScope(\"caption\")?(e.generateImpliedEndTags(),e.currentStackItem().localName!=\"caption\"&&e.parseError(\"expected-one-end-tag-but-got-another\",{gotName:\"caption\",expectedName:e.currentStackItem().localName}),e.openElements.popUntilPopped(\"caption\"),e.clearActiveFormattingElements(),e.setInsertionMode(\"inTable\")):(r.ok(e.context),e.parseError(\"unexpected-end-tag\",{name:t}))},t.inCaption.endTagTable=function(t){e.parseError(\"unexpected-end-table-in-caption\");var n=!e.openElements.inTableScope(\"caption\");e.insertionMode.processEndTag(\"caption\"),n||e.insertionMode.processEndTag(t)},t.inCaption.endTagIgnore=function(t){e.parseError(\"unexpected-end-tag\",{name:t})},t.inCaption.endTagOther=function(e){t.inBody.processEndTag(e)},t.inCell=Object.create(t.base),t.inCell.start_tag_handlers={html:\"startTagHtml\",caption:\"startTagTableOther\",col:\"startTagTableOther\",colgroup:\"startTagTableOther\",tbody:\"startTagTableOther\",td:\"startTagTableOther\",tfoot:\"startTagTableOther\",th:\"startTagTableOther\",thead:\"startTagTableOther\",tr:\"startTagTableOther\",\"-default\":\"startTagOther\"},t.inCell.end_tag_handlers={td:\"endTagTableCell\",th:\"endTagTableCell\",body:\"endTagIgnore\",caption:\"endTagIgnore\",col:\"endTagIgnore\",colgroup:\"endTagIgnore\",html:\"endTagIgnore\",table:\"endTagImply\",tbody:\"endTagImply\",tfoot:\"endTagImply\",thead:\"endTagImply\",tr:\"endTagImply\",\"-default\":\"endTagOther\"},t.inCell.processCharacters=function(e){t.inBody.processCharacters(e)},t.inCell.startTagTableOther=function(t,n,r){e.openElements.inTableScope(\"td\")||e.openElements.inTableScope(\"th\")?(this.closeCell(),e.insertionMode.processStartTag(t,n,r)):e.parseError(\"unexpected-start-tag\",{name:t})},t.inCell.startTagOther=function(e,n,r){t.inBody.processStartTag(e,n,r)},t.inCell.endTagTableCell=function(t){e.openElements.inTableScope(t)?(e.generateImpliedEndTags(t),e.currentStackItem().localName!=t.toLowerCase()?(e.parseError(\"unexpected-cell-end-tag\",{name:t}),e.openElements.popUntilPopped(t)):e.popElement(),e.clearActiveFormattingElements(),e.setInsertionMode(\"inRow\")):e.parseError(\"unexpected-end-tag\",{name:t})},t.inCell.endTagIgnore=function(t){e.parseError(\"unexpected-end-tag\",{name:t})},t.inCell.endTagImply=function(t){e.openElements.inTableScope(t)?(this.closeCell(),e.insertionMode.processEndTag(t)):e.parseError(\"unexpected-end-tag\",{name:t})},t.inCell.endTagOther=function(e){t.inBody.processEndTag(e)},t.inCell.closeCell=function(){e.openElements.inTableScope(\"td\")?this.endTagTableCell(\"td\"):e.openElements.inTableScope(\"th\")&&this.endTagTableCell(\"th\")},t.inColumnGroup=Object.create(t.base),t.inColumnGroup.start_tag_handlers={html:\"startTagHtml\",col:\"startTagCol\",\"-default\":\"startTagOther\"},t.inColumnGroup.end_tag_handlers={colgroup:\"endTagColgroup\",col:\"endTagCol\",\"-default\":\"endTagOther\"},t.inColumnGroup.ignoreEndTagColgroup=function(){return e.currentStackItem().localName==\"html\"},t.inColumnGroup.processCharacters=function(t){var n=t.takeLeadingWhitespace();n&&e.insertText(n);if(!t.length)return;var r=this.ignoreEndTagColgroup();this.endTagColgroup(\"colgroup\"),r||e.insertionMode.processCharacters(t)},t.inColumnGroup.startTagCol=function(t,n){e.insertSelfClosingElement(t,n)},t.inColumnGroup.startTagOther=function(t,n,r){var i=this.ignoreEndTagColgroup();this.endTagColgroup(\"colgroup\"),i||e.insertionMode.processStartTag(t,n,r)},t.inColumnGroup.endTagColgroup=function(t){this.ignoreEndTagColgroup()?(r.ok(e.context),e.parseError(\"unexpected-end-tag\",{name:t})):(e.popElement(),e.setInsertionMode(\"inTable\"))},t.inColumnGroup.endTagCol=function(t){e.parseError(\"no-end-tag\",{name:\"col\"})},t.inColumnGroup.endTagOther=function(t){var n=this.ignoreEndTagColgroup();this.endTagColgroup(\"colgroup\"),n||e.insertionMode.processEndTag(t)},t.inForeignContent=Object.create(t.base),t.inForeignContent.processStartTag=function(t,n,r){if([\"b\",\"big\",\"blockquote\",\"body\",\"br\",\"center\",\"code\",\"dd\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"hr\",\"i\",\"img\",\"li\",\"listing\",\"menu\",\"meta\",\"nobr\",\"ol\",\"p\",\"pre\",\"ruby\",\"s\",\"small\",\"span\",\"strong\",\"strike\",\"sub\",\"sup\",\"table\",\"tt\",\"u\",\"ul\",\"var\"].indexOf(t)!=-1||t==\"font\"&&n.some(function(e){return[\"color\",\"face\",\"size\"].indexOf(e.nodeName)>=0})){e.parseError(\"unexpected-html-element-in-foreign-content\",{name:t});while(e.currentStackItem().isForeign()&&!e.currentStackItem().isHtmlIntegrationPoint()&&!e.currentStackItem().isMathMLTextIntegrationPoint())e.openElements.pop();e.insertionMode.processStartTag(t,n,r);return}e.currentStackItem().namespaceURI==\"http://www.w3.org/1998/Math/MathML\"&&(n=e.adjustMathMLAttributes(n)),e.currentStackItem().namespaceURI==\"http://www.w3.org/2000/svg\"&&(t=e.adjustSVGTagNameCase(t),n=e.adjustSVGAttributes(n)),n=e.adjustForeignAttributes(n),e.insertForeignElement(t,n,e.currentStackItem().namespaceURI,r)},t.inForeignContent.processEndTag=function(t){var n=e.currentStackItem(),r=e.openElements.length-1;n.localName.toLowerCase()!=t&&e.parseError(\"unexpected-end-tag\",{name:t});for(;;){if(r===0)break;if(n.localName.toLowerCase()==t){while(e.openElements.pop()!=n);break}r-=1,n=e.openElements.item(r);if(n.isForeign())continue;e.insertionMode.processEndTag(t);break}},t.inForeignContent.processCharacters=function(t){var n=t.takeRemaining();n=n.replace(/\\u0000/g,function(t,n){return e.parseError(\"invalid-codepoint\"),\"\\ufffd\"}),e.framesetOk&&!d(n)&&(e.framesetOk=!1),e.insertText(n)},t.inHeadNoscript=Object.create(t.base),t.inHeadNoscript.start_tag_handlers={html:\"startTagHtml\",basefont:\"startTagBasefontBgsoundLinkMetaNoframesStyle\",bgsound:\"startTagBasefontBgsoundLinkMetaNoframesStyle\",link:\"startTagBasefontBgsoundLinkMetaNoframesStyle\",meta:\"startTagBasefontBgsoundLinkMetaNoframesStyle\",noframes:\"startTagBasefontBgsoundLinkMetaNoframesStyle\",style:\"startTagBasefontBgsoundLinkMetaNoframesStyle\",head:\"startTagHeadNoscript\",noscript:\"startTagHeadNoscript\",\"-default\":\"startTagOther\"},t.inHeadNoscript.end_tag_handlers={noscript:\"endTagNoscript\",br:\"endTagBr\",\"-default\":\"endTagOther\"},t.inHeadNoscript.processCharacters=function(t){var n=t.takeLeadingWhitespace();n&&e.insertText(n);if(!t.length)return;e.parseError(\"unexpected-char-in-frameset\"),this.anythingElse(),e.insertionMode.processCharacters(t)},t.inHeadNoscript.processComment=function(e){t.inHead.processComment(e)},t.inHeadNoscript.startTagBasefontBgsoundLinkMetaNoframesStyle=function(e,n){t.inHead.processStartTag(e,n)},t.inHeadNoscript.startTagHeadNoscript=function(t,n){e.parseError(\"unexpected-start-tag-in-frameset\",{name:t})},t.inHeadNoscript.startTagOther=function(t,n){e.parseError(\"unexpected-start-tag-in-frameset\",{name:t}),this.anythingElse(),e.insertionMode.processStartTag(t,n)},t.inHeadNoscript.endTagBr=function(t,n){e.parseError(\"unexpected-end-tag-in-frameset\",{name:t}),this.anythingElse(),e.insertionMode.processEndTag(t,n)},t.inHeadNoscript.endTagNoscript=function(t,n){e.popElement(),e.setInsertionMode(\"inHead\")},t.inHeadNoscript.endTagOther=function(t,n){e.parseError(\"unexpected-end-tag-in-frameset\",{name:t})},t.inHeadNoscript.anythingElse=function(){e.popElement(),e.setInsertionMode(\"inHead\")},t.inFrameset=Object.create(t.base),t.inFrameset.start_tag_handlers={html:\"startTagHtml\",frameset:\"startTagFrameset\",frame:\"startTagFrame\",noframes:\"startTagNoframes\",\"-default\":\"startTagOther\"},t.inFrameset.end_tag_handlers={frameset:\"endTagFrameset\",noframes:\"endTagNoframes\",\"-default\":\"endTagOther\"},t.inFrameset.processCharacters=function(t){e.parseError(\"unexpected-char-in-frameset\")},t.inFrameset.startTagFrameset=function(t,n){e.insertElement(t,n)},t.inFrameset.startTagFrame=function(t,n){e.insertSelfClosingElement(t,n)},t.inFrameset.startTagNoframes=function(e,n){t.inBody.processStartTag(e,n)},t.inFrameset.startTagOther=function(t,n){e.parseError(\"unexpected-start-tag-in-frameset\",{name:t})},t.inFrameset.endTagFrameset=function(t,n){e.currentStackItem().localName==\"html\"?e.parseError(\"unexpected-frameset-in-frameset-innerhtml\"):e.popElement(),!e.context&&e.currentStackItem().localName!=\"frameset\"&&e.setInsertionMode(\"afterFrameset\")},t.inFrameset.endTagNoframes=function(e){t.inBody.processEndTag(e)},t.inFrameset.endTagOther=function(t){e.parseError(\"unexpected-end-tag-in-frameset\",{name:t})},t.inTable=Object.create(t.base),t.inTable.start_tag_handlers={html:\"startTagHtml\",caption:\"startTagCaption\",colgroup:\"startTagColgroup\",col:\"startTagCol\",table:\"startTagTable\",tbody:\"startTagRowGroup\",tfoot:\"startTagRowGroup\",thead:\"startTagRowGroup\",td:\"startTagImplyTbody\",th:\"startTagImplyTbody\",tr:\"startTagImplyTbody\",style:\"startTagStyleScript\",script:\"startTagStyleScript\",input:\"startTagInput\",form:\"startTagForm\",\"-default\":\"startTagOther\"},t.inTable.end_tag_handlers={table:\"endTagTable\",body:\"endTagIgnore\",caption:\"endTagIgnore\",col:\"endTagIgnore\",colgroup:\"endTagIgnore\",html:\"endTagIgnore\",tbody:\"endTagIgnore\",td:\"endTagIgnore\",tfoot:\"endTagIgnore\",th:\"endTagIgnore\",thead:\"endTagIgnore\",tr:\"endTagIgnore\",\"-default\":\"endTagOther\"},t.inTable.processCharacters=function(n){if(e.currentStackItem().isFosterParenting()){var r=e.insertionModeName;e.setInsertionMode(\"inTableText\"),e.originalInsertionMode=r,e.insertionMode.processCharacters(n)}else e.redirectAttachToFosterParent=!0,t.inBody.processCharacters(n),e.redirectAttachToFosterParent=!1},t.inTable.startTagCaption=function(t,n){e.openElements.popUntilTableScopeMarker(),e.activeFormattingElements.push(l),e.insertElement(t,n),e.setInsertionMode(\"inCaption\")},t.inTable.startTagColgroup=function(t,n){e.openElements.popUntilTableScopeMarker(),e.insertElement(t,n),e.setInsertionMode(\"inColumnGroup\")},t.inTable.startTagCol=function(t,n){this.startTagColgroup(\"colgroup\",[]),e.insertionMode.processStartTag(t,n)},t.inTable.startTagRowGroup=function(t,n){e.openElements.popUntilTableScopeMarker(),e.insertElement(t,n),e.setInsertionMode(\"inTableBody\")},t.inTable.startTagImplyTbody=function(t,n){this.startTagRowGroup(\"tbody\",[]),e.insertionMode.processStartTag(t,n)},t.inTable.startTagTable=function(t,n){e.parseError(\"unexpected-start-tag-implies-end-tag\",{startName:\"table\",endName:\"table\"}),e.insertionMode.processEndTag(\"table\"),e.context||e.insertionMode.processStartTag(t,n)},t.inTable.startTagStyleScript=function(e,n){t.inHead.processStartTag(e,n)},t.inTable.startTagInput=function(t,n){for(var r in n)if(n[r].nodeName.toLowerCase()==\"type\"){if(n[r].nodeValue.toLowerCase()==\"hidden\"){e.parseError(\"unexpected-hidden-input-in-table\"),e.insertElement(t,n),e.openElements.pop();return}break}this.startTagOther(t,n)},t.inTable.startTagForm=function(t,n){e.parseError(\"unexpected-form-in-table\"),e.form||(e.insertElement(t,n),e.form=e.currentStackItem(),e.openElements.pop())},t.inTable.startTagOther=function(n,r,i){e.parseError(\"unexpected-start-tag-implies-table-voodoo\",{name:n}),e.redirectAttachToFosterParent=!0,t.inBody.processStartTag(n,r,i),e.redirectAttachToFosterParent=!1},t.inTable.endTagTable=function(t){e.openElements.inTableScope(t)?(e.generateImpliedEndTags(),e.currentStackItem().localName!=t&&e.parseError(\"end-tag-too-early-named\",{gotName:\"table\",expectedName:e.currentStackItem().localName}),e.openElements.popUntilPopped(\"table\"),e.resetInsertionMode()):(r.ok(e.context),e.parseError(\"unexpected-end-tag\",{name:t}))},t.inTable.endTagIgnore=function(t){e.parseError(\"unexpected-end-tag\",{name:t})},t.inTable.endTagOther=function(n){e.parseError(\"unexpected-end-tag-implies-table-voodoo\",{name:n}),e.redirectAttachToFosterParent=!0,t.inBody.processEndTag(n),e.redirectAttachToFosterParent=!1},t.inTableText=Object.create(t.base),t.inTableText.flushCharacters=function(){var t=e.pendingTableCharacters.join(\"\");p(t)?e.insertText(t):(e.redirectAttachToFosterParent=!0,e.reconstructActiveFormattingElements(),e.insertText(t),e.framesetOk=!1,e.redirectAttachToFosterParent=!1),e.pendingTableCharacters=[]},t.inTableText.processComment=function(t){this.flushCharacters(),e.setInsertionMode(e.originalInsertionMode),e.insertionMode.processComment(t)},t.inTableText.processEOF=function(t){this.flushCharacters(),e.setInsertionMode(e.originalInsertionMode),e.insertionMode.processEOF()},t.inTableText.processCharacters=function(t){var n=t.takeRemaining();n=n.replace(/\\u0000/g,function(t,n){return e.parseError(\"invalid-codepoint\"),\"\"});if(!n)return;e.pendingTableCharacters.push(n)},t.inTableText.processStartTag=function(t,n,r){this.flushCharacters(),e.setInsertionMode(e.originalInsertionMode),e.insertionMode.processStartTag(t,n,r)},t.inTableText.processEndTag=function(t,n){this.flushCharacters(),e.setInsertionMode(e.originalInsertionMode),e.insertionMode.processEndTag(t,n)},t.inTableBody=Object.create(t.base),t.inTableBody.start_tag_handlers={html:\"startTagHtml\",tr:\"startTagTr\",td:\"startTagTableCell\",th:\"startTagTableCell\",caption:\"startTagTableOther\",col:\"startTagTableOther\",colgroup:\"startTagTableOther\",tbody:\"startTagTableOther\",tfoot:\"startTagTableOther\",thead:\"startTagTableOther\",\"-default\":\"startTagOther\"},t.inTableBody.end_tag_handlers={table:\"endTagTable\",tbody:\"endTagTableRowGroup\",tfoot:\"endTagTableRowGroup\",thead:\"endTagTableRowGroup\",body:\"endTagIgnore\",caption:\"endTagIgnore\",col:\"endTagIgnore\",colgroup:\"endTagIgnore\",html:\"endTagIgnore\",td:\"endTagIgnore\",th:\"endTagIgnore\",tr:\"endTagIgnore\",\"-default\":\"endTagOther\"},t.inTableBody.processCharacters=function(e){t.inTable.processCharacters(e)},t.inTableBody.startTagTr=function(t,n){e.openElements.popUntilTableBodyScopeMarker(),e.insertElement(t,n),e.setInsertionMode(\"inRow\")},t.inTableBody.startTagTableCell=function(t,n){e.parseError(\"unexpected-cell-in-table-body\",{name:t}),this.startTagTr(\"tr\",[]),e.insertionMode.processStartTag(t,n)},t.inTableBody.startTagTableOther=function(t,n){e.openElements.inTableScope(\"tbody\")||e.openElements.inTableScope(\"thead\")||e.openElements.inTableScope(\"tfoot\")?(e.openElements.popUntilTableBodyScopeMarker(),this.endTagTableRowGroup(e.currentStackItem().localName),e.insertionMode.processStartTag(t,n)):e.parseError(\"unexpected-start-tag\",{name:t})},t.inTableBody.startTagOther=function(e,n){t.inTable.processStartTag(e,n)},t.inTableBody.endTagTableRowGroup=function(t){e.openElements.inTableScope(t)?(e.openElements.popUntilTableBodyScopeMarker(),e.popElement(),e.setInsertionMode(\"inTable\")):e.parseError(\"unexpected-end-tag-in-table-body\",{name:t})},t.inTableBody.endTagTable=function(t){e.openElements.inTableScope(\"tbody\")||e.openElements.inTableScope(\"thead\")||e.openElements.inTableScope(\"tfoot\")?(e.openElements.popUntilTableBodyScopeMarker(),this.endTagTableRowGroup(e.currentStackItem().localName),e.insertionMode.processEndTag(t)):e.parseError(\"unexpected-end-tag\",{name:t})},t.inTableBody.endTagIgnore=function(t){e.parseError(\"unexpected-end-tag-in-table-body\",{name:t})},t.inTableBody.endTagOther=function(e){t.inTable.processEndTag(e)},t.inSelect=Object.create(t.base),t.inSelect.start_tag_handlers={html:\"startTagHtml\",option:\"startTagOption\",optgroup:\"startTagOptgroup\",select:\"startTagSelect\",input:\"startTagInput\",keygen:\"startTagInput\",textarea:\"startTagInput\",script:\"startTagScript\",\"-default\":\"startTagOther\"},t.inSelect.end_tag_handlers={option:\"endTagOption\",optgroup:\"endTagOptgroup\",select:\"endTagSelect\",caption:\"endTagTableElements\",table:\"endTagTableElements\",tbody:\"endTagTableElements\",tfoot:\"endTagTableElements\",thead:\"endTagTableElements\",tr:\"endTagTableElements\",td:\"endTagTableElements\",th:\"endTagTableElements\",\"-default\":\"endTagOther\"},t.inSelect.processCharacters=function(t){var n=t.takeRemaining();n=n.replace(/\\u0000/g,function(t,n){return e.parseError(\"invalid-codepoint\"),\"\"});if(!n)return;e.insertText(n)},t.inSelect.startTagOption=function(t,n){e.currentStackItem().localName==\"option\"&&e.popElement(),e.insertElement(t,n)},t.inSelect.startTagOptgroup=function(t,n){e.currentStackItem().localName==\"option\"&&e.popElement(),e.currentStackItem().localName==\"optgroup\"&&e.popElement(),e.insertElement(t,n)},t.inSelect.endTagOption=function(t){if(e.currentStackItem().localName!==\"option\"){e.parseError(\"unexpected-end-tag-in-select\",{name:t});return}e.popElement()},t.inSelect.endTagOptgroup=function(t){e.currentStackItem().localName==\"option\"&&e.openElements.item(e.openElements.length-2).localName==\"optgroup\"&&e.popElement(),e.currentStackItem().localName==\"optgroup\"?e.popElement():e.parseError(\"unexpected-end-tag-in-select\",{name:\"optgroup\"})},t.inSelect.startTagSelect=function(t){e.parseError(\"unexpected-select-in-select\"),this.endTagSelect(\"select\")},t.inSelect.endTagSelect=function(t){e.openElements.inTableScope(\"select\")?(e.openElements.popUntilPopped(\"select\"),e.resetInsertionMode()):e.parseError(\"unexpected-end-tag\",{name:t})},t.inSelect.startTagInput=function(t,n){e.parseError(\"unexpected-input-in-select\"),e.openElements.inSelectScope(\"select\")&&(this.endTagSelect(\"select\"),e.insertionMode.processStartTag(t,n))},t.inSelect.startTagScript=function(e,n){t.inHead.processStartTag(e,n)},t.inSelect.endTagTableElements=function(t){e.parseError(\"unexpected-end-tag-in-select\",{name:t}),e.openElements.inTableScope(t)&&(this.endTagSelect(\"select\"),e.insertionMode.processEndTag(t))},t.inSelect.startTagOther=function(t,n){e.parseError(\"unexpected-start-tag-in-select\",{name:t})},t.inSelect.endTagOther=function(t){e.parseError(\"unexpected-end-tag-in-select\",{name:t})},t.inSelectInTable=Object.create(t.base),t.inSelectInTable.start_tag_handlers={caption:\"startTagTable\",table:\"startTagTable\",tbody:\"startTagTable\",tfoot:\"startTagTable\",thead:\"startTagTable\",tr:\"startTagTable\",td:\"startTagTable\",th:\"startTagTable\",\"-default\":\"startTagOther\"},t.inSelectInTable.end_tag_handlers={caption:\"endTagTable\",table:\"endTagTable\",tbody:\"endTagTable\",tfoot:\"endTagTable\",thead:\"endTagTable\",tr:\"endTagTable\",td:\"endTagTable\",th:\"endTagTable\",\"-default\":\"endTagOther\"},t.inSelectInTable.processCharacters=function(e){t.inSelect.processCharacters(e)},t.inSelectInTable.startTagTable=function(t,n){e.parseError(\"unexpected-table-element-start-tag-in-select-in-table\",{name:t}),this.endTagOther(\"select\"),e.insertionMode.processStartTag(t,n)},t.inSelectInTable.startTagOther=function(e,n,r){t.inSelect.processStartTag(e,n,r)},t.inSelectInTable.endTagTable=function(t){e.parseError(\"unexpected-table-element-end-tag-in-select-in-table\",{name:t}),e.openElements.inTableScope(t)&&(this.endTagOther(\"select\"),e.insertionMode.processEndTag(t))},t.inSelectInTable.endTagOther=function(e){t.inSelect.processEndTag(e)},t.inRow=Object.create(t.base),t.inRow.start_tag_handlers={html:\"startTagHtml\",td:\"startTagTableCell\",th:\"startTagTableCell\",caption:\"startTagTableOther\",col:\"startTagTableOther\",colgroup:\"startTagTableOther\",tbody:\"startTagTableOther\",tfoot:\"startTagTableOther\",thead:\"startTagTableOther\",tr:\"startTagTableOther\",\"-default\":\"startTagOther\"},t.inRow.end_tag_handlers={tr:\"endTagTr\",table:\"endTagTable\",tbody:\"endTagTableRowGroup\",tfoot:\"endTagTableRowGroup\",thead:\"endTagTableRowGroup\",body:\"endTagIgnore\",caption:\"endTagIgnore\",col:\"endTagIgnore\",colgroup:\"endTagIgnore\",html:\"endTagIgnore\",td:\"endTagIgnore\",th:\"endTagIgnore\",\"-default\":\"endTagOther\"},t.inRow.processCharacters=function(e){t.inTable.processCharacters(e)},t.inRow.startTagTableCell=function(t,n){e.openElements.popUntilTableRowScopeMarker(),e.insertElement(t,n),e.setInsertionMode(\"inCell\"),e.activeFormattingElements.push(l)},t.inRow.startTagTableOther=function(t,n){var r=this.ignoreEndTagTr();this.endTagTr(\"tr\"),r||e.insertionMode.processStartTag(t,n)},t.inRow.startTagOther=function(e,n,r){t.inTable.processStartTag(e,n,r)},t.inRow.endTagTr=function(t){this.ignoreEndTagTr()?(r.ok(e.context),e.parseError(\"unexpected-end-tag\",{name:t})):(e.openElements.popUntilTableRowScopeMarker(),e.popElement(),e.setInsertionMode(\"inTableBody\"))},t.inRow.endTagTable=function(t){var n=this.ignoreEndTagTr();this.endTagTr(\"tr\"),n||e.insertionMode.processEndTag(t)},t.inRow.endTagTableRowGroup=function(t){e.openElements.inTableScope(t)?(this.endTagTr(\"tr\"),e.insertionMode.processEndTag(t)):e.parseError(\"unexpected-end-tag\",{name:t})},t.inRow.endTagIgnore=function(t){e.parseError(\"unexpected-end-tag-in-table-row\",{name:t})},t.inRow.endTagOther=function(e){t.inTable.processEndTag(e)},t.inRow.ignoreEndTagTr=function(){return!e.openElements.inTableScope(\"tr\")},t.afterAfterFrameset=Object.create(t.base),t.afterAfterFrameset.start_tag_handlers={html:\"startTagHtml\",noframes:\"startTagNoFrames\",\"-default\":\"startTagOther\"},t.afterAfterFrameset.processEOF=function(){},t.afterAfterFrameset.processComment=function(t){e.insertComment(t,e.document)},t.afterAfterFrameset.processCharacters=function(t){var n=t.takeRemaining(),r=\"\";for(var i=0;i<n.length;i++){var s=n[i];c(s)&&(r+=s)}r&&(e.reconstructActiveFormattingElements(),e.insertText(r)),r.length<n.length&&e.parseError(\"expected-eof-but-got-char\")},t.afterAfterFrameset.startTagNoFrames=function(e,n){t.inHead.processStartTag(e,n)},t.afterAfterFrameset.startTagOther=function(t,n,r){e.parseError(\"expected-eof-but-got-start-tag\",{name:t})},t.afterAfterFrameset.processEndTag=function(t,n){e.parseError(\"expected-eof-but-got-end-tag\",{name:t})},t.text=Object.create(t.base),t.text.start_tag_handlers={\"-default\":\"startTagOther\"},t.text.end_tag_handlers={script:\"endTagScript\",\"-default\":\"endTagOther\"},t.text.processCharacters=function(t){e.shouldSkipLeadingNewline&&(e.shouldSkipLeadingNewline=!1,t.skipAtMostOneLeadingNewline());var n=t.takeRemaining();if(!n)return;e.insertText(n)},t.text.processEOF=function(){e.parseError(\"expected-named-closing-tag-but-got-eof\",{name:e.currentStackItem().localName}),e.openElements.pop(),e.setInsertionMode(e.originalInsertionMode),e.insertionMode.processEOF()},t.text.startTagOther=function(e){throw\"Tried to process start tag \"+e+\" in RCDATA/RAWTEXT mode\"},t.text.endTagScript=function(t){var n=e.openElements.pop();r.ok(n.localName==\"script\"),e.setInsertionMode(e.originalInsertionMode)},t.text.endTagOther=function(t){e.openElements.pop(),e.setInsertionMode(e.originalInsertionMode)}}function y(e,t){return e.replace(new RegExp(\"{[0-9a-z-]+}\",\"gi\"),function(e){return t[e.slice(1,-1)]||e})}var r=e(\"assert\"),i=e(\"./messages.json\"),s=e(\"./constants\"),o=e(\"events\").EventEmitter,u=e(\"./Tokenizer\").Tokenizer,a=e(\"./ElementStack\").ElementStack,f=e(\"./StackItem\").StackItem,l={};m.prototype.skipAtMostOneLeadingNewline=function(){this.characters[this.current]===\"\\n\"&&this.current++},m.prototype.skipLeadingWhitespace=function(){while(c(this.characters[this.current]))if(++this.current==this.end)return},m.prototype.skipLeadingNonWhitespace=function(){while(!c(this.characters[this.current]))if(++this.current==this.end)return},m.prototype.takeRemaining=function(){return this.characters.substring(this.current)},m.prototype.takeLeadingWhitespace=function(){var e=this.current;return this.skipLeadingWhitespace(),e===this.current?\"\":this.characters.substring(e,this.current-e)},Object.defineProperty(m.prototype,\"length\",{get:function(){return this.end-this.current}}),g.prototype.setInsertionMode=function(e){this.insertionMode=this.insertionModes[e],this.insertionModeName=e},g.prototype.adoptionAgencyEndTag=function(e){function i(e){return e===r}var t=8,n=3,r,s=0;while(s++<t){r=this.elementInActiveFormattingElements(e);if(!r||this.openElements.contains(r)&&!this.openElements.inScope(r.localName))return this.parseError(\"adoption-agency-1.1\",{name:e}),!1;if(!this.openElements.contains(r))return this.parseError(\"adoption-agency-1.2\",{name:e}),this.removeElementFromActiveFormattingElements(r),!0;this.openElements.inScope(r.localName)||this.parseError(\"adoption-agency-4.4\",{name:e}),r!=this.currentStackItem()&&this.parseError(\"adoption-agency-1.3\",{name:e});var o=this.openElements.furthestBlockForFormattingElement(r.node);if(!o)return this.openElements.remove_openElements_until(i),this.removeElementFromActiveFormattingElements(r),!0;var u=this.openElements.elements.indexOf(r),a=this.openElements.item(u-1),l=this.activeFormattingElements.indexOf(r),c=o,h=o,p=this.openElements.elements.indexOf(c),d=0;while(d++<n){p-=1,c=this.openElements.item(p);if(this.activeFormattingElements.indexOf(c)<0){this.openElements.elements.splice(p,1);continue}if(c==r)break;h==o&&(l=this.activeFormattingElements.indexOf(c)+1);var v=this.createElement(c.namespaceURI,c.localName,c.attributes),m=new f(c.namespaceURI,c.localName,c.attributes,v);this.activeFormattingElements[this.activeFormattingElements.indexOf(c)]=m,this.openElements.elements[this.openElements.elements.indexOf(c)]=m,c=m,this.detachFromParent(h.node),this.attachNode(h.node,c.node),h=c}this.detachFromParent(h.node),a.isFosterParenting()?this.insertIntoFosterParent(h.node):this.attachNode(h.node,a.node);var v=this.createElement(\"http://www.w3.org/1999/xhtml\",r.localName,r.attributes),g=new f(r.namespaceURI,r.localName,r.attributes,v);this.reparentChildren(o.node,v),this.attachNode(v,o.node),this.removeElementFromActiveFormattingElements(r),this.activeFormattingElements.splice(Math.min(l,this.activeFormattingElements.length),0,g),this.openElements.remove(r),this.openElements.elements.splice(this.openElements.elements.indexOf(o)+1,0,g)}return!0},g.prototype.start=function(){throw\"Not mplemented\"},g.prototype.startTokenization=function(e){this.tokenizer=e,this.compatMode=\"no quirks\",this.originalInsertionMode=\"initial\",this.framesetOk=!0,this.openElements=new a,this.activeFormattingElements=[],this.start();if(this.context){switch(this.context){case\"title\":case\"textarea\":this.tokenizer.setState(u.RCDATA);break;case\"style\":case\"xmp\":case\"iframe\":case\"noembed\":case\"noframes\":this.tokenizer.setState(u.RAWTEXT);break;case\"script\":this.tokenizer.setState(u.SCRIPT_DATA);break;case\"noscript\":this.scriptingEnabled&&this.tokenizer.setState(u.RAWTEXT);break;case\"plaintext\":this.tokenizer.setState(u.PLAINTEXT)}this.insertHtmlElement(),this.resetInsertionMode()}else this.setInsertionMode(\"initial\")},g.prototype.processToken=function(e){this.selfClosingFlagAcknowledged=!1;var t=this.openElements.top||null,n;!t||!t.isForeign()||t.isMathMLTextIntegrationPoint()&&(e.type==\"StartTag\"&&!(e.name in{mglyph:0,malignmark:0})||e.type===\"Characters\")||t.namespaceURI==\"http://www.w3.org/1998/Math/MathML\"&&t.localName==\"annotation-xml\"&&e.type==\"StartTag\"&&e.name==\"svg\"||t.isHtmlIntegrationPoint()&&e.type in{StartTag:0,Characters:0}||e.type==\"EOF\"?n=this.insertionMode:n=this.insertionModes.inForeignContent;switch(e.type){case\"Characters\":var r=new m(e.data);n.processCharacters(r);break;case\"Comment\":n.processComment(e.data);break;case\"StartTag\":n.processStartTag(e.name,e.data,e.selfClosing);break;case\"EndTag\":n.processEndTag(e.name);break;case\"Doctype\":n.processDoctype(e.name,e.publicId,e.systemId,e.forceQuirks);break;case\"EOF\":n.processEOF()}},g.prototype.isCdataSectionAllowed=function(){return this.openElements.length>0&&this.currentStackItem().isForeign()},g.prototype.isSelfClosingFlagAcknowledged=function(){return this.selfClosingFlagAcknowledged},g.prototype.createElement=function(e,t,n){throw new Error(\"Not implemented\")},g.prototype.attachNode=function(e,t){throw new Error(\"Not implemented\")},g.prototype.attachNodeToFosterParent=function(e,t,n){throw new Error(\"Not implemented\")},g.prototype.detachFromParent=function(e){throw new Error(\"Not implemented\")},g.prototype.addAttributesToElement=function(e,t){throw new Error(\"Not implemented\")},g.prototype.insertHtmlElement=function(e){var t=this.createElement(\"http://www.w3.org/1999/xhtml\",\"html\",e);return this.attachNode(t,this.document),this.openElements.pushHtmlElement(new f(\"http://www.w3.org/1999/xhtml\",\"html\",e,t)),t},g.prototype.insertHeadElement=function(e){var t=this.createElement(\"http://www.w3.org/1999/xhtml\",\"head\",e);return this.head=new f(\"http://www.w3.org/1999/xhtml\",\"head\",e,t),this.attachNode(t,this.openElements.top.node),this.openElements.pushHeadElement(this.head),t},g.prototype.insertBodyElement=function(e){var t=this.createElement(\"http://www.w3.org/1999/xhtml\",\"body\",e);return this.attachNode(t,this.openElements.top.node),this.openElements.pushBodyElement(new f(\"http://www.w3.org/1999/xhtml\",\"body\",e,t)),t},g.prototype.insertIntoFosterParent=function(e){var t=this.openElements.findIndex(\"table\"),n=this.openElements.item(t).node;if(t===0)return this.attachNode(e,n);this.attachNodeToFosterParent(e,n,this.openElements.item(t-1).node)},g.prototype.insertElement=function(e,t,n,r){n||(n=\"http://www.w3.org/1999/xhtml\");var i=this.createElement(n,e,t);this.shouldFosterParent()?this.insertIntoFosterParent(i):this.attachNode(i,this.openElements.top.node),r||this.openElements.push(new f(n,e,t,i))},g.prototype.insertFormattingElement=function(e,t){this.insertElement(e,t,\"http://www.w3.org/1999/xhtml\"),this.appendElementToActiveFormattingElements(this.currentStackItem())},g.prototype.insertSelfClosingElement=function(e,t){this.selfClosingFlagAcknowledged=!0,this.insertElement(e,t,\"http://www.w3.org/1999/xhtml\",!0)},g.prototype.insertForeignElement=function(e,t,n,r){r&&(this.selfClosingFlagAcknowledged=!0),this.insertElement(e,t,n,r)},g.prototype.insertComment=function(e,t){throw new Error(\"Not implemented\")},g.prototype.insertDoctype=function(e,t,n){throw new Error(\"Not implemented\")},g.prototype.insertText=function(e){throw new Error(\"Not implemented\")},g.prototype.currentStackItem=function(){return this.openElements.top},g.prototype.popElement=function(){return this.openElements.pop()},g.prototype.shouldFosterParent=function(){return this.redirectAttachToFosterParent&&this.currentStackItem().isFosterParenting()},g.prototype.generateImpliedEndTags=function(e){var t=this.openElements.top.localName;[\"dd\",\"dt\",\"li\",\"option\",\"optgroup\",\"p\",\"rp\",\"rt\"].indexOf(t)!=-1&&t!=e&&(this.popElement(),this.generateImpliedEndTags(e))},g.prototype.reconstructActiveFormattingElements=function(){if(this.activeFormattingElements.length===0)return;var e=this.activeFormattingElements.length-1,t=this.activeFormattingElements[e];if(t==l||this.openElements.contains(t))return;while(t!=l&&!this.openElements.contains(t)){e-=1,t=this.activeFormattingElements[e];if(!t)break}for(;;){e+=1,t=this.activeFormattingElements[e],this.insertElement(t.localName,t.attributes);var n=this.currentStackItem();this.activeFormattingElements[e]=n;if(n==this.activeFormattingElements[this.activeFormattingElements.length-1])break}},g.prototype.ensureNoahsArkCondition=function(e){var t=3;if(this.activeFormattingElements.length<t)return;var n=[],r=e.attributes.length;for(var i=this.activeFormattingElements.length-1;i>=0;i--){var s=this.activeFormattingElements[i];if(s===l)break;if(e.localName!==s.localName||e.namespaceURI!==s.namespaceURI)continue;if(s.attributes.length!=r)continue;n.push(s)}if(n.length<t)return;var o=[],u=e.attributes;for(var i=0;i<u.length;i++){var a=u[i];for(var f=0;f<n.length;f++){var s=n[f],c=v(s,a.nodeName);c&&c.nodeValue===a.nodeValue&&o.push(s)}if(o.length<t)return;n=o,o=[]}for(var i=t-1;i<n.length;i++)this.removeElementFromActiveFormattingElements(n[i])},g.prototype.appendElementToActiveFormattingElements=function(e){this.ensureNoahsArkCondition(e),this.activeFormattingElements.push(e)},g.prototype.removeElementFromActiveFormattingElements=function(e){var t=this.activeFormattingElements.indexOf(e);t>=0&&this.activeFormattingElements.splice(t,1)},g.prototype.elementInActiveFormattingElements=function(e){var t=this.activeFormattingElements;for(var n=t.length-1;n>=0;n--){if(t[n]==l)break;if(t[n].localName==e)return t[n]}return!1},g.prototype.clearActiveFormattingElements=function(){while(this.activeFormattingElements.length!==0&&this.activeFormattingElements.pop()!=l);},g.prototype.reparentChildren=function(e,t){throw new Error(\"Not implemented\")},g.prototype.setFragmentContext=function(e){this.context=e},g.prototype.parseError=function(e,t){if(!this.errorHandler)return;var n=y(i[e],t);this.errorHandler.error(n,this.tokenizer._inputStream.location(),e)},g.prototype.resetInsertionMode=function(){var e=!1,t=null;for(var n=this.openElements.length-1;n>=0;n--){t=this.openElements.item(n),n===0&&(r.ok(this.context),e=!0,t=new f(\"http://www.w3.org/1999/xhtml\",this.context,[],null));if(t.namespaceURI===\"http://www.w3.org/1999/xhtml\"){if(t.localName===\"select\")return this.setInsertionMode(\"inSelect\");if(t.localName===\"td\"||t.localName===\"th\")return this.setInsertionMode(\"inCell\");if(t.localName===\"tr\")return this.setInsertionMode(\"inRow\");if(t.localName===\"tbody\"||t.localName===\"thead\"||t.localName===\"tfoot\")return this.setInsertionMode(\"inTableBody\");if(t.localName===\"caption\")return this.setInsertionMode(\"inCaption\");if(t.localName===\"colgroup\")return this.setInsertionMode(\"inColumnGroup\");if(t.localName===\"table\")return this.setInsertionMode(\"inTable\");if(t.localName===\"head\"&&!e)return this.setInsertionMode(\"inHead\");if(t.localName===\"body\")return this.setInsertionMode(\"inBody\");if(t.localName===\"frameset\")return this.setInsertionMode(\"inFrameset\");if(t.localName===\"html\")return this.openElements.headElement?this.setInsertionMode(\"afterHead\"):this.setInsertionMode(\"beforeHead\")}if(e)return this.setInsertionMode(\"inBody\")}},g.prototype.processGenericRCDATAStartTag=function(e,t){this.insertElement(e,t),this.tokenizer.setState(u.RCDATA),this.originalInsertionMode=this.insertionModeName,this.setInsertionMode(\"text\")},g.prototype.processGenericRawTextStartTag=function(e,t){this.insertElement(e,t),this.tokenizer.setState(u.RAWTEXT),this.originalInsertionMode=this.insertionModeName,this.setInsertionMode(\"text\")},g.prototype.adjustMathMLAttributes=function(e){return e.forEach(function(e){e.namespaceURI=\"http://www.w3.org/1998/Math/MathML\",s.MATHMLAttributeMap[e.nodeName]&&(e.nodeName=s.MATHMLAttributeMap[e.nodeName])}),e},g.prototype.adjustSVGTagNameCase=function(e){return s.SVGTagMap[e]||e},g.prototype.adjustSVGAttributes=function(e){return e.forEach(function(e){e.namespaceURI=\"http://www.w3.org/2000/svg\",s.SVGAttributeMap[e.nodeName]&&(e.nodeName=s.SVGAttributeMap[e.nodeName])}),e},g.prototype.adjustForeignAttributes=function(e){for(var t=0;t<e.length;t++){var n=e[t],r=s.ForeignAttributeMap[n.nodeName];r&&(n.nodeName=r.localName,n.prefix=r.prefix,n.namespaceURI=r.namespaceURI)}return e},n.TreeBuilder=g},{\"./ElementStack\":1,\"./StackItem\":4,\"./Tokenizer\":5,\"./constants\":7,\"./messages.json\":8,assert:13,events:16}],7:[function(e,t,n){n.SVGTagMap={altglyph:\"altGlyph\",altglyphdef:\"altGlyphDef\",altglyphitem:\"altGlyphItem\",animatecolor:\"animateColor\",animatemotion:\"animateMotion\",animatetransform:\"animateTransform\",clippath:\"clipPath\",feblend:\"feBlend\",fecolormatrix:\"feColorMatrix\",fecomponenttransfer:\"feComponentTransfer\",fecomposite:\"feComposite\",feconvolvematrix:\"feConvolveMatrix\",fediffuselighting:\"feDiffuseLighting\",fedisplacementmap:\"feDisplacementMap\",fedistantlight:\"feDistantLight\",feflood:\"feFlood\",fefunca:\"feFuncA\",fefuncb:\"feFuncB\",fefuncg:\"feFuncG\",fefuncr:\"feFuncR\",fegaussianblur:\"feGaussianBlur\",feimage:\"feImage\",femerge:\"feMerge\",femergenode:\"feMergeNode\",femorphology:\"feMorphology\",feoffset:\"feOffset\",fepointlight:\"fePointLight\",fespecularlighting:\"feSpecularLighting\",fespotlight:\"feSpotLight\",fetile:\"feTile\",feturbulence:\"feTurbulence\",foreignobject:\"foreignObject\",glyphref:\"glyphRef\",lineargradient:\"linearGradient\",radialgradient:\"radialGradient\",textpath:\"textPath\"},n.MATHMLAttributeMap={definitionurl:\"definitionURL\"},n.SVGAttributeMap={attributename:\"attributeName\",attributetype:\"attributeType\",basefrequency:\"baseFrequency\",baseprofile:\"baseProfile\",calcmode:\"calcMode\",clippathunits:\"clipPathUnits\",contentscripttype:\"contentScriptType\",contentstyletype:\"contentStyleType\",diffuseconstant:\"diffuseConstant\",edgemode:\"edgeMode\",externalresourcesrequired:\"externalResourcesRequired\",filterres:\"filterRes\",filterunits:\"filterUnits\",glyphref:\"glyphRef\",gradienttransform:\"gradientTransform\",gradientunits:\"gradientUnits\",kernelmatrix:\"kernelMatrix\",kernelunitlength:\"kernelUnitLength\",keypoints:\"keyPoints\",keysplines:\"keySplines\",keytimes:\"keyTimes\",lengthadjust:\"lengthAdjust\",limitingconeangle:\"limitingConeAngle\",markerheight:\"markerHeight\",markerunits:\"markerUnits\",markerwidth:\"markerWidth\",maskcontentunits:\"maskContentUnits\",maskunits:\"maskUnits\",numoctaves:\"numOctaves\",pathlength:\"pathLength\",patterncontentunits:\"patternContentUnits\",patterntransform:\"patternTransform\",patternunits:\"patternUnits\",pointsatx:\"pointsAtX\",pointsaty:\"pointsAtY\",pointsatz:\"pointsAtZ\",preservealpha:\"preserveAlpha\",preserveaspectratio:\"preserveAspectRatio\",primitiveunits:\"primitiveUnits\",refx:\"refX\",refy:\"refY\",repeatcount:\"repeatCount\",repeatdur:\"repeatDur\",requiredextensions:\"requiredExtensions\",requiredfeatures:\"requiredFeatures\",specularconstant:\"specularConstant\",specularexponent:\"specularExponent\",spreadmethod:\"spreadMethod\",startoffset:\"startOffset\",stddeviation:\"stdDeviation\",stitchtiles:\"stitchTiles\",surfacescale:\"surfaceScale\",systemlanguage:\"systemLanguage\",tablevalues:\"tableValues\",targetx:\"targetX\",targety:\"targetY\",textlength:\"textLength\",viewbox:\"viewBox\",viewtarget:\"viewTarget\",xchannelselector:\"xChannelSelector\",ychannelselector:\"yChannelSelector\",zoomandpan:\"zoomAndPan\"},n.ForeignAttributeMap={\"xlink:actuate\":{prefix:\"xlink\",localName:\"actuate\",namespaceURI:\"http://www.w3.org/1999/xlink\"},\"xlink:arcrole\":{prefix:\"xlink\",localName:\"arcrole\",namespaceURI:\"http://www.w3.org/1999/xlink\"},\"xlink:href\":{prefix:\"xlink\",localName:\"href\",namespaceURI:\"http://www.w3.org/1999/xlink\"},\"xlink:role\":{prefix:\"xlink\",localName:\"role\",namespaceURI:\"http://www.w3.org/1999/xlink\"},\"xlink:show\":{prefix:\"xlink\",localName:\"show\",namespaceURI:\"http://www.w3.org/1999/xlink\"},\"xlink:title\":{prefix:\"xlink\",localName:\"title\",namespaceURI:\"http://www.w3.org/1999/xlink\"},\"xlink:type\":{prefix:\"xlink\",localName:\"title\",namespaceURI:\"http://www.w3.org/1999/xlink\"},\"xml:base\":{prefix:\"xml\",localName:\"base\",namespaceURI:\"http://www.w3.org/XML/1998/namespace\"},\"xml:lang\":{prefix:\"xml\",localName:\"lang\",namespaceURI:\"http://www.w3.org/XML/1998/namespace\"},\"xml:space\":{prefix:\"xml\",localName:\"space\",namespaceURI:\"http://www.w3.org/XML/1998/namespace\"},xmlns:{prefix:null,localName:\"xmlns\",namespaceURI:\"http://www.w3.org/2000/xmlns/\"},\"xmlns:xlink\":{prefix:\"xmlns\",localName:\"xlink\",namespaceURI:\"http://www.w3.org/2000/xmlns/\"}}},{}],8:[function(e,t,n){t.exports={\"null-character\":\"Null character in input stream, replaced with U+FFFD.\",\"invalid-codepoint\":\"Invalid codepoint in stream\",\"incorrectly-placed-solidus\":\"Solidus (/) incorrectly placed in tag.\",\"incorrect-cr-newline-entity\":\"Incorrect CR newline entity, replaced with LF.\",\"illegal-windows-1252-entity\":\"Entity used with illegal number (windows-1252 reference).\",\"cant-convert-numeric-entity\":\"Numeric entity couldn't be converted to character (codepoint U+{charAsInt}).\",\"invalid-numeric-entity-replaced\":\"Numeric entity represents an illegal codepoint. Expanded to the C1 controls range.\",\"numeric-entity-without-semicolon\":\"Numeric entity didn't end with ';'.\",\"expected-numeric-entity-but-got-eof\":\"Numeric entity expected. Got end of file instead.\",\"expected-numeric-entity\":\"Numeric entity expected but none found.\",\"named-entity-without-semicolon\":\"Named entity didn't end with ';'.\",\"expected-named-entity\":\"Named entity expected. Got none.\",\"attributes-in-end-tag\":\"End tag contains unexpected attributes.\",\"self-closing-flag-on-end-tag\":\"End tag contains unexpected self-closing flag.\",\"bare-less-than-sign-at-eof\":\"End of file after <.\",\"expected-tag-name-but-got-right-bracket\":\"Expected tag name. Got '>' instead.\",\"expected-tag-name-but-got-question-mark\":\"Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.)\",\"expected-tag-name\":\"Expected tag name. Got something else instead.\",\"expected-closing-tag-but-got-right-bracket\":\"Expected closing tag. Got '>' instead. Ignoring '</>'.\",\"expected-closing-tag-but-got-eof\":\"Expected closing tag. Unexpected end of file.\",\"expected-closing-tag-but-got-char\":\"Expected closing tag. Unexpected character '{data}' found.\",\"eof-in-tag-name\":\"Unexpected end of file in the tag name.\",\"expected-attribute-name-but-got-eof\":\"Unexpected end of file. Expected attribute name instead.\",\"eof-in-attribute-name\":\"Unexpected end of file in attribute name.\",\"invalid-character-in-attribute-name\":\"Invalid character in attribute name.\",\"duplicate-attribute\":\"Dropped duplicate attribute '{name}' on tag.\",\"expected-end-of-tag-but-got-eof\":\"Unexpected end of file. Expected = or end of tag.\",\"expected-attribute-value-but-got-eof\":\"Unexpected end of file. Expected attribute value.\",\"expected-attribute-value-but-got-right-bracket\":\"Expected attribute value. Got '>' instead.\",\"unexpected-character-in-unquoted-attribute-value\":\"Unexpected character in unquoted attribute\",\"invalid-character-after-attribute-name\":\"Unexpected character after attribute name.\",\"unexpected-character-after-attribute-value\":\"Unexpected character after attribute value.\",\"eof-in-attribute-value-double-quote\":'Unexpected end of file in attribute value (\").',\"eof-in-attribute-value-single-quote\":\"Unexpected end of file in attribute value (').\",\"eof-in-attribute-value-no-quotes\":\"Unexpected end of file in attribute value.\",\"eof-after-attribute-value\":\"Unexpected end of file after attribute value.\",\"unexpected-eof-after-solidus-in-tag\":\"Unexpected end of file in tag. Expected >.\",\"unexpected-character-after-solidus-in-tag\":\"Unexpected character after / in tag. Expected >.\",\"expected-dashes-or-doctype\":\"Expected '--' or 'DOCTYPE'. Not found.\",\"unexpected-bang-after-double-dash-in-comment\":\"Unexpected ! after -- in comment.\",\"incorrect-comment\":\"Incorrect comment.\",\"eof-in-comment\":\"Unexpected end of file in comment.\",\"eof-in-comment-end-dash\":\"Unexpected end of file in comment (-).\",\"unexpected-dash-after-double-dash-in-comment\":\"Unexpected '-' after '--' found in comment.\",\"eof-in-comment-double-dash\":\"Unexpected end of file in comment (--).\",\"eof-in-comment-end-bang-state\":\"Unexpected end of file in comment.\",\"unexpected-char-in-comment\":\"Unexpected character in comment found.\",\"need-space-after-doctype\":\"No space after literal string 'DOCTYPE'.\",\"expected-doctype-name-but-got-right-bracket\":\"Unexpected > character. Expected DOCTYPE name.\",\"expected-doctype-name-but-got-eof\":\"Unexpected end of file. Expected DOCTYPE name.\",\"eof-in-doctype-name\":\"Unexpected end of file in DOCTYPE name.\",\"eof-in-doctype\":\"Unexpected end of file in DOCTYPE.\",\"expected-space-or-right-bracket-in-doctype\":\"Expected space or '>'. Got '{data}'.\",\"unexpected-end-of-doctype\":\"Unexpected end of DOCTYPE.\",\"unexpected-char-in-doctype\":\"Unexpected character in DOCTYPE.\",\"eof-in-bogus-doctype\":\"Unexpected end of file in bogus doctype.\",\"eof-in-innerhtml\":\"Unexpected EOF in inner html mode.\",\"unexpected-doctype\":\"Unexpected DOCTYPE. Ignored.\",\"non-html-root\":\"html needs to be the first start tag.\",\"expected-doctype-but-got-eof\":\"Unexpected End of file. Expected DOCTYPE.\",\"unknown-doctype\":\"Erroneous DOCTYPE. Expected <!DOCTYPE html>.\",\"quirky-doctype\":\"Quirky doctype. Expected <!DOCTYPE html>.\",\"almost-standards-doctype\":\"Almost standards mode doctype. Expected <!DOCTYPE html>.\",\"obsolete-doctype\":\"Obsolete doctype. Expected <!DOCTYPE html>.\",\"expected-doctype-but-got-chars\":\"Non-space characters found without seeing a doctype first. Expected e.g. <!DOCTYPE html>.\",\"expected-doctype-but-got-start-tag\":\"Start tag seen without seeing a doctype first. Expected e.g. <!DOCTYPE html>.\",\"expected-doctype-but-got-end-tag\":\"End tag seen without seeing a doctype first. Expected e.g. <!DOCTYPE html>.\",\"end-tag-after-implied-root\":\"Unexpected end tag ({name}) after the (implied) root element.\",\"expected-named-closing-tag-but-got-eof\":\"Unexpected end of file. Expected end tag ({name}).\",\"two-heads-are-not-better-than-one\":\"Unexpected start tag head in existing head. Ignored.\",\"unexpected-end-tag\":\"Unexpected end tag ({name}). Ignored.\",\"unexpected-implied-end-tag\":\"End tag {name} implied, but there were open elements.\",\"unexpected-start-tag-out-of-my-head\":\"Unexpected start tag ({name}) that can be in head. Moved.\",\"unexpected-start-tag\":\"Unexpected start tag ({name}).\",\"missing-end-tag\":\"Missing end tag ({name}).\",\"missing-end-tags\":\"Missing end tags ({name}).\",\"unexpected-start-tag-implies-end-tag\":\"Unexpected start tag ({startName}) implies end tag ({endName}).\",\"unexpected-start-tag-treated-as\":\"Unexpected start tag ({originalName}). Treated as {newName}.\",\"deprecated-tag\":\"Unexpected start tag {name}. Don't use it!\",\"unexpected-start-tag-ignored\":\"Unexpected start tag {name}. Ignored.\",\"expected-one-end-tag-but-got-another\":\"Unexpected end tag ({gotName}). Missing end tag ({expectedName}).\",\"end-tag-too-early\":\"End tag ({name}) seen too early. Expected other end tag.\",\"end-tag-too-early-named\":\"Unexpected end tag ({gotName}). Expected end tag ({expectedName}.\",\"end-tag-too-early-ignored\":\"End tag ({name}) seen too early. Ignored.\",\"adoption-agency-1.1\":\"End tag ({name}) violates step 1, paragraph 1 of the adoption agency algorithm.\",\"adoption-agency-1.2\":\"End tag ({name}) violates step 1, paragraph 2 of the adoption agency algorithm.\",\"adoption-agency-1.3\":\"End tag ({name}) violates step 1, paragraph 3 of the adoption agency algorithm.\",\"adoption-agency-4.4\":\"End tag ({name}) violates step 4, paragraph 4 of the adoption agency algorithm.\",\"unexpected-end-tag-treated-as\":\"Unexpected end tag ({originalName}). Treated as {newName}.\",\"no-end-tag\":\"This element ({name}) has no end tag.\",\"unexpected-implied-end-tag-in-table\":\"Unexpected implied end tag ({name}) in the table phase.\",\"unexpected-implied-end-tag-in-table-body\":\"Unexpected implied end tag ({name}) in the table body phase.\",\"unexpected-char-implies-table-voodoo\":\"Unexpected non-space characters in table context caused voodoo mode.\",\"unexpected-hidden-input-in-table\":\"Unexpected input with type hidden in table context.\",\"unexpected-form-in-table\":\"Unexpected form in table context.\",\"unexpected-start-tag-implies-table-voodoo\":\"Unexpected start tag ({name}) in table context caused voodoo mode.\",\"unexpected-end-tag-implies-table-voodoo\":\"Unexpected end tag ({name}) in table context caused voodoo mode.\",\"unexpected-cell-in-table-body\":\"Unexpected table cell start tag ({name}) in the table body phase.\",\"unexpected-cell-end-tag\":\"Got table cell end tag ({name}) while required end tags are missing.\",\"unexpected-end-tag-in-table-body\":\"Unexpected end tag ({name}) in the table body phase. Ignored.\",\"unexpected-implied-end-tag-in-table-row\":\"Unexpected implied end tag ({name}) in the table row phase.\",\"unexpected-end-tag-in-table-row\":\"Unexpected end tag ({name}) in the table row phase. Ignored.\",\"unexpected-select-in-select\":\"Unexpected select start tag in the select phase treated as select end tag.\",\"unexpected-input-in-select\":\"Unexpected input start tag in the select phase.\",\"unexpected-start-tag-in-select\":\"Unexpected start tag token ({name}) in the select phase. Ignored.\",\"unexpected-end-tag-in-select\":\"Unexpected end tag ({name}) in the select phase. Ignored.\",\"unexpected-table-element-start-tag-in-select-in-table\":\"Unexpected table element start tag ({name}) in the select in table phase.\",\"unexpected-table-element-end-tag-in-select-in-table\":\"Unexpected table element end tag ({name}) in the select in table phase.\",\"unexpected-char-after-body\":\"Unexpected non-space characters in the after body phase.\",\"unexpected-start-tag-after-body\":\"Unexpected start tag token ({name}) in the after body phase.\",\"unexpected-end-tag-after-body\":\"Unexpected end tag token ({name}) in the after body phase.\",\"unexpected-char-in-frameset\":\"Unepxected characters in the frameset phase. Characters ignored.\",\"unexpected-start-tag-in-frameset\":\"Unexpected start tag token ({name}) in the frameset phase. Ignored.\",\"unexpected-frameset-in-frameset-innerhtml\":\"Unexpected end tag token (frameset in the frameset phase (innerHTML).\",\"unexpected-end-tag-in-frameset\":\"Unexpected end tag token ({name}) in the frameset phase. Ignored.\",\"unexpected-char-after-frameset\":\"Unexpected non-space characters in the after frameset phase. Ignored.\",\"unexpected-start-tag-after-frameset\":\"Unexpected start tag ({name}) in the after frameset phase. Ignored.\",\"unexpected-end-tag-after-frameset\":\"Unexpected end tag ({name}) in the after frameset phase. Ignored.\",\"expected-eof-but-got-char\":\"Unexpected non-space characters. Expected end of file.\",\"expected-eof-but-got-start-tag\":\"Unexpected start tag ({name}). Expected end of file.\",\"expected-eof-but-got-end-tag\":\"Unexpected end tag ({name}). Expected end of file.\",\"unexpected-end-table-in-caption\":\"Unexpected end table tag in caption. Generates implied end caption.\",\"end-html-in-innerhtml\":\"Unexpected html end tag in inner html mode.\",\"eof-in-table\":\"Unexpected end of file. Expected table content.\",\"eof-in-script\":\"Unexpected end of file. Expected script content.\",\"non-void-element-with-trailing-solidus\":\"Trailing solidus not allowed on element {name}.\",\"unexpected-html-element-in-foreign-content\":'HTML start tag \"{name}\" in a foreign namespace context.',\"unexpected-start-tag-in-table\":\"Unexpected {name}. Expected table content.\"}},{}],9:[function(e,t,n){function o(){this.contentHandler=null,this._errorHandler=null,this._treeBuilder=new r,this._tokenizer=new i(this._treeBuilder),this._scriptingEnabled=!1}var r=e(\"./SAXTreeBuilder\").SAXTreeBuilder,i=e(\"../Tokenizer\").Tokenizer,s=e(\"./TreeParser\").TreeParser;o.prototype.parse=function(e){this._tokenizer.tokenize(e);var t=this._treeBuilder.document;t&&(new s(this.contentHandler)).parse(t)},o.prototype.parseFragment=function(e,t){this._treeBuilder.setFragmentContext(t),this._tokenizer.tokenize(e);var n=this._treeBuilder.getFragment();n&&(new s(this.contentHandler)).parse(n)},Object.defineProperty(o.prototype,\"scriptingEnabled\",{get:function(){return this._scriptingEnabled},set:function(e){this._scriptingEnabled=e,this._treeBuilder.scriptingEnabled=e}}),Object.defineProperty(o.prototype,\"errorHandler\",{get:function(){return this._errorHandler},set:function(e){this._errorHandler=e,this._treeBuilder.errorHandler=e}}),n.SAXParser=o},{\"../Tokenizer\":5,\"./SAXTreeBuilder\":10,\"./TreeParser\":11}],10:[function(e,t,n){function s(){i.call(this)}function o(e,t){for(var n=0;n<e.attributes.length;n++){var r=e.attributes[n];if(r.nodeName===t)return r.nodeValue}}function a(e){e?(this.columnNumber=e.columnNumber,this.lineNumber=e.lineNumber):(this.columnNumber=-1,this.lineNumber=-1),this.parentNode=null,this.nextSibling=null,this.firstChild=null}function f(e){a.call(this,e),this.lastChild=null,this._endLocator=null}function l(e){f.call(this,e),this.nodeType=u.DOCUMENT}function c(){f.call(this,new Locator),this.nodeType=u.DOCUMENT_FRAGMENT}function h(e,t,n,r,i,s){f.call(this,e),this.uri=t,this.localName=n,this.qName=r,this.attributes=i,this.prefixMappings=s,this.nodeType=u.ELEMENT}function p(e,t){a.call(this,e),this.data=t,this.nodeType=u.CHARACTERS}function d(e,t){a.call(this,e),this.data=t,this.nodeType=u.IGNORABLE_WHITESPACE}function v(e,t){a.call(this,e),this.data=t,this.nodeType=u.COMMENT}function m(e){f.call(this,e),this.nodeType=u.CDATA}function g(e){f.call(this),this.name=e,this.nodeType=u.ENTITY}function y(e){a.call(this),this.name=e,this.nodeType=u.SKIPPED_ENTITY}function b(e,t){a.call(this),this.target=e,this.data=t}function w(e,t,n){f.call(this),this.name=e,this.publicIdentifier=t,this.systemIdentifier=n,this.nodeType=u.DTD}var r=e(\"util\"),i=e(\"../TreeBuilder\").TreeBuilder;r.inherits(s,i),s.prototype.start=function(e){this.document=new l(this.tokenizer)},s.prototype.end=function(){this.document.endLocator=this.tokenizer},s.prototype.insertDoctype=function(e,t,n){var r=new w(this.tokenizer,e,t,n);r.endLocator=this.tokenizer,this.document.appendChild(r)},s.prototype.createElement=function(e,t,n){var r=new h(this.tokenizer,e,t,t,n||[]);return r},s.prototype.insertComment=function(e,t){t||(t=this.currentStackItem());var n=new v(this.tokenizer,e);t.appendChild(n)},s.prototype.appendCharacters=function(e,t){var n=new p(this.tokenizer,t);e.appendChild(n)},s.prototype.insertText=function(e){if(this.redirectAttachToFosterParent&&this.openElements.top.isFosterParenting()){var t=this.openElements.findIndex(\"table\"),n=this.openElements.item(t),r=n.node;if(t===0)return this.appendCharacters(r,e);var i=new p(this.tokenizer,e),s=r.parentNode;if(s){s.insertBetween(i,r.previousSibling,r);return}var o=this.openElements.item(t-1).node;o.appendChild(i);return}this.appendCharacters(this.currentStackItem().node,e)},s.prototype.attachNode=function(e,t){t.appendChild(e)},s.prototype.attachNodeToFosterParent=function(e,t,n){var r=t.parentNode;r?r.insertBetween(e,t.previousSibling,t):n.appendChild(e)},s.prototype.detachFromParent=function(e){e.detach()},s.prototype.reparentChildren=function(e,t){t.appendChildren(e.firstChild)},s.prototype.getFragment=function(){var e=new c;return this.reparentChildren(this.openElements.rootNode,e),e},s.prototype.addAttributesToElement=function(e,t){for(var n=0;n<t.length;n++){var r=t[n];o(e,r.nodeName)||e.attributes.push(r)}};var u={CDATA:1,CHARACTERS:2,COMMENT:3,DOCUMENT:4,DOCUMENT_FRAGMENT:5,DTD:6,ELEMENT:7,ENTITY:8,IGNORABLE_WHITESPACE:9,PROCESSING_INSTRUCTION:10,SKIPPED_ENTITY:11};a.prototype.visit=function(e){throw new Error(\"Not Implemented\")},a.prototype.revisit=function(e){return},a.prototype.detach=function(){this.parentNode!==null&&(this.parentNode.removeChild(this),this.parentNode=null)},Object.defineProperty(a.prototype,\"previousSibling\",{get:function(){var e=null,t=this.parentNode.firstChild;for(;;){if(this==t)return e;e=t,t=t.nextSibling}}}),f.prototype=Object.create(a.prototype),f.prototype.insertBefore=function(e,t){if(!t)return this.appendChild(e);e.detach(),e.parentNode=this;if(this.firstChild==t)e.nextSibling=t,this.firstChild=e;else{var n=this.firstChild,r=this.firstChild.nextSibling;while(r!=t)n=r,r=r.nextSibling;n.nextSibling=e,e.nextSibling=r}return e},f.prototype.insertBetween=function(e,t,n){return n?(e.detach(),e.parentNode=this,e.nextSibling=n,t?t.nextSibling=e:firstChild=e,e):this.appendChild(e)},f.prototype.appendChild=function(e){return e.detach(),e.parentNode=this,this.firstChild?this.lastChild.nextSibling=e:this.firstChild=e,this.lastChild=e,e},f.prototype.appendChildren=function(e){var t=e.firstChild;if(!t)return;var n=e;this.firstChild?this.lastChild.nextSibling=t:this.firstChild=t,this.lastChild=n.lastChild;do t.parentNode=this;while(t=t.nextSibling);n.firstChild=null,n.lastChild=null},f.prototype.removeChild=function(e){if(this.firstChild==e)this.firstChild=e.nextSibling,this.lastChild==e&&(this.lastChild=null);else{var t=this.firstChild,n=this.firstChild.nextSibling;while(n!=e)t=n,n=n.nextSibling;t.nextSibling=e.nextSibling,this.lastChild==e&&(this.lastChild=t)}return e.parentNode=null,e},Object.defineProperty(f.prototype,\"endLocator\",{get:function(){return this._endLocator},set:function(e){this._endLocator={lineNumber:e.lineNumber,columnNumber:e.columnNumber}}}),l.prototype=Object.create(f.prototype),l.prototype.visit=function(e){e.startDocument(this)},l.prototype.revisit=function(e){e.endDocument(this.endLocator)},c.prototype=Object.create(f.prototype),c.prototype.visit=function(e){},h.prototype=Object.create(f.prototype),h.prototype.visit=function(e){if(this.prefixMappings)for(var t in prefixMappings){var n=prefixMappings[t];e.startPrefixMapping(n.getPrefix(),n.getUri(),this)}e.startElement(this.uri,this.localName,this.qName,this.attributes,this)},h.prototype.revisit=function(e){e.endElement(this.uri,this.localName,this.qName,this.endLocator);if(this.prefixMappings)for(var t in prefixMappings){var n=prefixMappings[t];e.endPrefixMapping(n.getPrefix(),this.endLocator)}},p.prototype=Object.create(a.prototype),p.prototype.visit=function(e){e.characters(this.data,0,this.data.length,this)},d.prototype=Object.create(a.prototype),d.prototype.visit=function(e){e.ignorableWhitespace(this.data,0,this.data.length,this)},v.prototype=Object.create(a.prototype),v.prototype.visit=function(e){e.comment(this.data,0,this.data.length,this)},m.prototype=Object.create(f.prototype),m.prototype.visit=function(e){e.startCDATA(this)},m.prototype.revisit=function(e){e.endCDATA(this.endLocator)},g.prototype=Object.create(f.prototype),g.prototype.visit=function(e){e.startEntity(this.name,this)},g.prototype.revisit=function(e){e.endEntity(this.name)},y.prototype=Object.create(a.prototype),y.prototype.visit=function(e){e.skippedEntity(this.name,this)},b.prototype=Object.create(a.prototype),b.prototype.visit=function(e){e.processingInstruction(this.target,this.data,this)},b.prototype.getNodeType=function(){return u.PROCESSING_INSTRUCTION},w.prototype=Object.create(f.prototype),w.prototype.visit=function(e){e.startDTD(this.name,this.publicIdentifier,this.systemIdentifier,this)},w.prototype.revisit=function(e){e.endDTD()},n.SAXTreeBuilder=s},{\"../TreeBuilder\":6,util:20}],11:[function(e,t,n){function r(e,t){this.contentHandler,this.lexicalHandler,this.locatorDelegate;if(!e)throw new IllegalArgumentException(\"contentHandler was null.\");this.contentHandler=e,t?this.lexicalHandler=t:this.lexicalHandler=new i}function i(){}r.prototype.parse=function(e){this.contentHandler.documentLocator=this;var t=e,n;for(;;){t.visit(this);if(n=t.firstChild){t=n;continue}for(;;){t.revisit(this);if(t==e)return;if(n=t.nextSibling){t=n;break}t=t.parentNode}}},r.prototype.characters=function(e,t,n,r){this.locatorDelegate=r,this.contentHandler.characters(e,t,n)},r.prototype.endDocument=function(e){this.locatorDelegate=e,this.contentHandler.endDocument()},r.prototype.endElement=function(e,t,n,r){this.locatorDelegate=r,this.contentHandler.endElement(e,t,n)},r.prototype.endPrefixMapping=function(e,t){this.locatorDelegate=t,this.contentHandler.endPrefixMapping(e)},r.prototype.ignorableWhitespace=function(e,t,n,r){this.locatorDelegate=r,this.contentHandler.ignorableWhitespace(e,t,n)},r.prototype.processingInstruction=function(e,t,n){this.locatorDelegate=n,this.contentHandler.processingInstruction(e,t)},r.prototype.skippedEntity=function(e,t){this.locatorDelegate=t,this.contentHandler.skippedEntity(e)},r.prototype.startDocument=function(e){this.locatorDelegate=e,this.contentHandler.startDocument()},r.prototype.startElement=function(e,t,n,r,i){this.locatorDelegate=i,this.contentHandler.startElement(e,t,n,r)},r.prototype.startPrefixMapping=function(e,t,n){this.locatorDelegate=n,this.contentHandler.startPrefixMapping(e,t)},r.prototype.comment=function(e,t,n,r){this.locatorDelegate=r,this.lexicalHandler.comment(e,t,n)},r.prototype.endCDATA=function(e){this.locatorDelegate=e,this.lexicalHandler.endCDATA()},r.prototype.endDTD=function(e){this.locatorDelegate=e,this.lexicalHandler.endDTD()},r.prototype.endEntity=function(e,t){this.locatorDelegate=t,this.lexicalHandler.endEntity(e)},r.prototype.startCDATA=function(e){this.locatorDelegate=e,this.lexicalHandler.startCDATA()},r.prototype.startDTD=function(e,t,n,r){this.locatorDelegate=r,this.lexicalHandler.startDTD(e,t,n)},r.prototype.startEntity=function(e,t){this.locatorDelegate=t,this.lexicalHandler.startEntity(e)},Object.defineProperty(r.prototype,\"columnNumber\",{get:function(){return this.locatorDelegate?this.locatorDelegate.columnNumber:-1}}),Object.defineProperty(r.prototype,\"lineNumber\",{get:function(){return this.locatorDelegate?this.locatorDelegate.lineNumber:-1}}),i.prototype.comment=function(){},i.prototype.endCDATA=function(){},i.prototype.endDTD=function(){},i.prototype.endEntity=function(){},i.prototype.startCDATA=function(){},i.prototype.startDTD=function(){},i.prototype.startEntity=function(){},n.TreeParser=r},{}],12:[function(e,t,n){t.exports={\"Aacute;\":\"\\u00c1\",Aacute:\"\\u00c1\",\"aacute;\":\"\\u00e1\",aacute:\"\\u00e1\",\"Abreve;\":\"\\u0102\",\"abreve;\":\"\\u0103\",\"ac;\":\"\\u223e\",\"acd;\":\"\\u223f\",\"acE;\":\"\\u223e\\u0333\",\"Acirc;\":\"\\u00c2\",Acirc:\"\\u00c2\",\"acirc;\":\"\\u00e2\",acirc:\"\\u00e2\",\"acute;\":\"\\u00b4\",acute:\"\\u00b4\",\"Acy;\":\"\\u0410\",\"acy;\":\"\\u0430\",\"AElig;\":\"\\u00c6\",AElig:\"\\u00c6\",\"aelig;\":\"\\u00e6\",aelig:\"\\u00e6\",\"af;\":\"\\u2061\",\"Afr;\":\"\\ud835\\udd04\",\"afr;\":\"\\ud835\\udd1e\",\"Agrave;\":\"\\u00c0\",Agrave:\"\\u00c0\",\"agrave;\":\"\\u00e0\",agrave:\"\\u00e0\",\"alefsym;\":\"\\u2135\",\"aleph;\":\"\\u2135\",\"Alpha;\":\"\\u0391\",\"alpha;\":\"\\u03b1\",\"Amacr;\":\"\\u0100\",\"amacr;\":\"\\u0101\",\"amalg;\":\"\\u2a3f\",\"amp;\":\"&\",amp:\"&\",\"AMP;\":\"&\",AMP:\"&\",\"andand;\":\"\\u2a55\",\"And;\":\"\\u2a53\",\"and;\":\"\\u2227\",\"andd;\":\"\\u2a5c\",\"andslope;\":\"\\u2a58\",\"andv;\":\"\\u2a5a\",\"ang;\":\"\\u2220\",\"ange;\":\"\\u29a4\",\"angle;\":\"\\u2220\",\"angmsdaa;\":\"\\u29a8\",\"angmsdab;\":\"\\u29a9\",\"angmsdac;\":\"\\u29aa\",\"angmsdad;\":\"\\u29ab\",\"angmsdae;\":\"\\u29ac\",\"angmsdaf;\":\"\\u29ad\",\"angmsdag;\":\"\\u29ae\",\"angmsdah;\":\"\\u29af\",\"angmsd;\":\"\\u2221\",\"angrt;\":\"\\u221f\",\"angrtvb;\":\"\\u22be\",\"angrtvbd;\":\"\\u299d\",\"angsph;\":\"\\u2222\",\"angst;\":\"\\u00c5\",\"angzarr;\":\"\\u237c\",\"Aogon;\":\"\\u0104\",\"aogon;\":\"\\u0105\",\"Aopf;\":\"\\ud835\\udd38\",\"aopf;\":\"\\ud835\\udd52\",\"apacir;\":\"\\u2a6f\",\"ap;\":\"\\u2248\",\"apE;\":\"\\u2a70\",\"ape;\":\"\\u224a\",\"apid;\":\"\\u224b\",\"apos;\":\"'\",\"ApplyFunction;\":\"\\u2061\",\"approx;\":\"\\u2248\",\"approxeq;\":\"\\u224a\",\"Aring;\":\"\\u00c5\",Aring:\"\\u00c5\",\"aring;\":\"\\u00e5\",aring:\"\\u00e5\",\"Ascr;\":\"\\ud835\\udc9c\",\"ascr;\":\"\\ud835\\udcb6\",\"Assign;\":\"\\u2254\",\"ast;\":\"*\",\"asymp;\":\"\\u2248\",\"asympeq;\":\"\\u224d\",\"Atilde;\":\"\\u00c3\",Atilde:\"\\u00c3\",\"atilde;\":\"\\u00e3\",atilde:\"\\u00e3\",\"Auml;\":\"\\u00c4\",Auml:\"\\u00c4\",\"auml;\":\"\\u00e4\",auml:\"\\u00e4\",\"awconint;\":\"\\u2233\",\"awint;\":\"\\u2a11\",\"backcong;\":\"\\u224c\",\"backepsilon;\":\"\\u03f6\",\"backprime;\":\"\\u2035\",\"backsim;\":\"\\u223d\",\"backsimeq;\":\"\\u22cd\",\"Backslash;\":\"\\u2216\",\"Barv;\":\"\\u2ae7\",\"barvee;\":\"\\u22bd\",\"barwed;\":\"\\u2305\",\"Barwed;\":\"\\u2306\",\"barwedge;\":\"\\u2305\",\"bbrk;\":\"\\u23b5\",\"bbrktbrk;\":\"\\u23b6\",\"bcong;\":\"\\u224c\",\"Bcy;\":\"\\u0411\",\"bcy;\":\"\\u0431\",\"bdquo;\":\"\\u201e\",\"becaus;\":\"\\u2235\",\"because;\":\"\\u2235\",\"Because;\":\"\\u2235\",\"bemptyv;\":\"\\u29b0\",\"bepsi;\":\"\\u03f6\",\"bernou;\":\"\\u212c\",\"Bernoullis;\":\"\\u212c\",\"Beta;\":\"\\u0392\",\"beta;\":\"\\u03b2\",\"beth;\":\"\\u2136\",\"between;\":\"\\u226c\",\"Bfr;\":\"\\ud835\\udd05\",\"bfr;\":\"\\ud835\\udd1f\",\"bigcap;\":\"\\u22c2\",\"bigcirc;\":\"\\u25ef\",\"bigcup;\":\"\\u22c3\",\"bigodot;\":\"\\u2a00\",\"bigoplus;\":\"\\u2a01\",\"bigotimes;\":\"\\u2a02\",\"bigsqcup;\":\"\\u2a06\",\"bigstar;\":\"\\u2605\",\"bigtriangledown;\":\"\\u25bd\",\"bigtriangleup;\":\"\\u25b3\",\"biguplus;\":\"\\u2a04\",\"bigvee;\":\"\\u22c1\",\"bigwedge;\":\"\\u22c0\",\"bkarow;\":\"\\u290d\",\"blacklozenge;\":\"\\u29eb\",\"blacksquare;\":\"\\u25aa\",\"blacktriangle;\":\"\\u25b4\",\"blacktriangledown;\":\"\\u25be\",\"blacktriangleleft;\":\"\\u25c2\",\"blacktriangleright;\":\"\\u25b8\",\"blank;\":\"\\u2423\",\"blk12;\":\"\\u2592\",\"blk14;\":\"\\u2591\",\"blk34;\":\"\\u2593\",\"block;\":\"\\u2588\",\"bne;\":\"=\\u20e5\",\"bnequiv;\":\"\\u2261\\u20e5\",\"bNot;\":\"\\u2aed\",\"bnot;\":\"\\u2310\",\"Bopf;\":\"\\ud835\\udd39\",\"bopf;\":\"\\ud835\\udd53\",\"bot;\":\"\\u22a5\",\"bottom;\":\"\\u22a5\",\"bowtie;\":\"\\u22c8\",\"boxbox;\":\"\\u29c9\",\"boxdl;\":\"\\u2510\",\"boxdL;\":\"\\u2555\",\"boxDl;\":\"\\u2556\",\"boxDL;\":\"\\u2557\",\"boxdr;\":\"\\u250c\",\"boxdR;\":\"\\u2552\",\"boxDr;\":\"\\u2553\",\"boxDR;\":\"\\u2554\",\"boxh;\":\"\\u2500\",\"boxH;\":\"\\u2550\",\"boxhd;\":\"\\u252c\",\"boxHd;\":\"\\u2564\",\"boxhD;\":\"\\u2565\",\"boxHD;\":\"\\u2566\",\"boxhu;\":\"\\u2534\",\"boxHu;\":\"\\u2567\",\"boxhU;\":\"\\u2568\",\"boxHU;\":\"\\u2569\",\"boxminus;\":\"\\u229f\",\"boxplus;\":\"\\u229e\",\"boxtimes;\":\"\\u22a0\",\"boxul;\":\"\\u2518\",\"boxuL;\":\"\\u255b\",\"boxUl;\":\"\\u255c\",\"boxUL;\":\"\\u255d\",\"boxur;\":\"\\u2514\",\"boxuR;\":\"\\u2558\",\"boxUr;\":\"\\u2559\",\"boxUR;\":\"\\u255a\",\"boxv;\":\"\\u2502\",\"boxV;\":\"\\u2551\",\"boxvh;\":\"\\u253c\",\"boxvH;\":\"\\u256a\",\"boxVh;\":\"\\u256b\",\"boxVH;\":\"\\u256c\",\"boxvl;\":\"\\u2524\",\"boxvL;\":\"\\u2561\",\"boxVl;\":\"\\u2562\",\"boxVL;\":\"\\u2563\",\"boxvr;\":\"\\u251c\",\"boxvR;\":\"\\u255e\",\"boxVr;\":\"\\u255f\",\"boxVR;\":\"\\u2560\",\"bprime;\":\"\\u2035\",\"breve;\":\"\\u02d8\",\"Breve;\":\"\\u02d8\",\"brvbar;\":\"\\u00a6\",brvbar:\"\\u00a6\",\"bscr;\":\"\\ud835\\udcb7\",\"Bscr;\":\"\\u212c\",\"bsemi;\":\"\\u204f\",\"bsim;\":\"\\u223d\",\"bsime;\":\"\\u22cd\",\"bsolb;\":\"\\u29c5\",\"bsol;\":\"\\\\\",\"bsolhsub;\":\"\\u27c8\",\"bull;\":\"\\u2022\",\"bullet;\":\"\\u2022\",\"bump;\":\"\\u224e\",\"bumpE;\":\"\\u2aae\",\"bumpe;\":\"\\u224f\",\"Bumpeq;\":\"\\u224e\",\"bumpeq;\":\"\\u224f\",\"Cacute;\":\"\\u0106\",\"cacute;\":\"\\u0107\",\"capand;\":\"\\u2a44\",\"capbrcup;\":\"\\u2a49\",\"capcap;\":\"\\u2a4b\",\"cap;\":\"\\u2229\",\"Cap;\":\"\\u22d2\",\"capcup;\":\"\\u2a47\",\"capdot;\":\"\\u2a40\",\"CapitalDifferentialD;\":\"\\u2145\",\"caps;\":\"\\u2229\\ufe00\",\"caret;\":\"\\u2041\",\"caron;\":\"\\u02c7\",\"Cayleys;\":\"\\u212d\",\"ccaps;\":\"\\u2a4d\",\"Ccaron;\":\"\\u010c\",\"ccaron;\":\"\\u010d\",\"Ccedil;\":\"\\u00c7\",Ccedil:\"\\u00c7\",\"ccedil;\":\"\\u00e7\",ccedil:\"\\u00e7\",\"Ccirc;\":\"\\u0108\",\"ccirc;\":\"\\u0109\",\"Cconint;\":\"\\u2230\",\"ccups;\":\"\\u2a4c\",\"ccupssm;\":\"\\u2a50\",\"Cdot;\":\"\\u010a\",\"cdot;\":\"\\u010b\",\"cedil;\":\"\\u00b8\",cedil:\"\\u00b8\",\"Cedilla;\":\"\\u00b8\",\"cemptyv;\":\"\\u29b2\",\"cent;\":\"\\u00a2\",cent:\"\\u00a2\",\"centerdot;\":\"\\u00b7\",\"CenterDot;\":\"\\u00b7\",\"cfr;\":\"\\ud835\\udd20\",\"Cfr;\":\"\\u212d\",\"CHcy;\":\"\\u0427\",\"chcy;\":\"\\u0447\",\"check;\":\"\\u2713\",\"checkmark;\":\"\\u2713\",\"Chi;\":\"\\u03a7\",\"chi;\":\"\\u03c7\",\"circ;\":\"\\u02c6\",\"circeq;\":\"\\u2257\",\"circlearrowleft;\":\"\\u21ba\",\"circlearrowright;\":\"\\u21bb\",\"circledast;\":\"\\u229b\",\"circledcirc;\":\"\\u229a\",\"circleddash;\":\"\\u229d\",\"CircleDot;\":\"\\u2299\",\"circledR;\":\"\\u00ae\",\"circledS;\":\"\\u24c8\",\"CircleMinus;\":\"\\u2296\",\"CirclePlus;\":\"\\u2295\",\"CircleTimes;\":\"\\u2297\",\"cir;\":\"\\u25cb\",\"cirE;\":\"\\u29c3\",\"cire;\":\"\\u2257\",\"cirfnint;\":\"\\u2a10\",\"cirmid;\":\"\\u2aef\",\"cirscir;\":\"\\u29c2\",\"ClockwiseContourIntegral;\":\"\\u2232\",\"CloseCurlyDoubleQuote;\":\"\\u201d\",\"CloseCurlyQuote;\":\"\\u2019\",\"clubs;\":\"\\u2663\",\"clubsuit;\":\"\\u2663\",\"colon;\":\":\",\"Colon;\":\"\\u2237\",\"Colone;\":\"\\u2a74\",\"colone;\":\"\\u2254\",\"coloneq;\":\"\\u2254\",\"comma;\":\",\",\"commat;\":\"@\",\"comp;\":\"\\u2201\",\"compfn;\":\"\\u2218\",\"complement;\":\"\\u2201\",\"complexes;\":\"\\u2102\",\"cong;\":\"\\u2245\",\"congdot;\":\"\\u2a6d\",\"Congruent;\":\"\\u2261\",\"conint;\":\"\\u222e\",\"Conint;\":\"\\u222f\",\"ContourIntegral;\":\"\\u222e\",\"copf;\":\"\\ud835\\udd54\",\"Copf;\":\"\\u2102\",\"coprod;\":\"\\u2210\",\"Coproduct;\":\"\\u2210\",\"copy;\":\"\\u00a9\",copy:\"\\u00a9\",\"COPY;\":\"\\u00a9\",COPY:\"\\u00a9\",\"copysr;\":\"\\u2117\",\"CounterClockwiseContourIntegral;\":\"\\u2233\",\"crarr;\":\"\\u21b5\",\"cross;\":\"\\u2717\",\"Cross;\":\"\\u2a2f\",\"Cscr;\":\"\\ud835\\udc9e\",\"cscr;\":\"\\ud835\\udcb8\",\"csub;\":\"\\u2acf\",\"csube;\":\"\\u2ad1\",\"csup;\":\"\\u2ad0\",\"csupe;\":\"\\u2ad2\",\"ctdot;\":\"\\u22ef\",\"cudarrl;\":\"\\u2938\",\"cudarrr;\":\"\\u2935\",\"cuepr;\":\"\\u22de\",\"cuesc;\":\"\\u22df\",\"cularr;\":\"\\u21b6\",\"cularrp;\":\"\\u293d\",\"cupbrcap;\":\"\\u2a48\",\"cupcap;\":\"\\u2a46\",\"CupCap;\":\"\\u224d\",\"cup;\":\"\\u222a\",\"Cup;\":\"\\u22d3\",\"cupcup;\":\"\\u2a4a\",\"cupdot;\":\"\\u228d\",\"cupor;\":\"\\u2a45\",\"cups;\":\"\\u222a\\ufe00\",\"curarr;\":\"\\u21b7\",\"curarrm;\":\"\\u293c\",\"curlyeqprec;\":\"\\u22de\",\"curlyeqsucc;\":\"\\u22df\",\"curlyvee;\":\"\\u22ce\",\"curlywedge;\":\"\\u22cf\",\"curren;\":\"\\u00a4\",curren:\"\\u00a4\",\"curvearrowleft;\":\"\\u21b6\",\"curvearrowright;\":\"\\u21b7\",\"cuvee;\":\"\\u22ce\",\"cuwed;\":\"\\u22cf\",\"cwconint;\":\"\\u2232\",\"cwint;\":\"\\u2231\",\"cylcty;\":\"\\u232d\",\"dagger;\":\"\\u2020\",\"Dagger;\":\"\\u2021\",\"daleth;\":\"\\u2138\",\"darr;\":\"\\u2193\",\"Darr;\":\"\\u21a1\",\"dArr;\":\"\\u21d3\",\"dash;\":\"\\u2010\",\"Dashv;\":\"\\u2ae4\",\"dashv;\":\"\\u22a3\",\"dbkarow;\":\"\\u290f\",\"dblac;\":\"\\u02dd\",\"Dcaron;\":\"\\u010e\",\"dcaron;\":\"\\u010f\",\"Dcy;\":\"\\u0414\",\"dcy;\":\"\\u0434\",\"ddagger;\":\"\\u2021\",\"ddarr;\":\"\\u21ca\",\"DD;\":\"\\u2145\",\"dd;\":\"\\u2146\",\"DDotrahd;\":\"\\u2911\",\"ddotseq;\":\"\\u2a77\",\"deg;\":\"\\u00b0\",deg:\"\\u00b0\",\"Del;\":\"\\u2207\",\"Delta;\":\"\\u0394\",\"delta;\":\"\\u03b4\",\"demptyv;\":\"\\u29b1\",\"dfisht;\":\"\\u297f\",\"Dfr;\":\"\\ud835\\udd07\",\"dfr;\":\"\\ud835\\udd21\",\"dHar;\":\"\\u2965\",\"dharl;\":\"\\u21c3\",\"dharr;\":\"\\u21c2\",\"DiacriticalAcute;\":\"\\u00b4\",\"DiacriticalDot;\":\"\\u02d9\",\"DiacriticalDoubleAcute;\":\"\\u02dd\",\"DiacriticalGrave;\":\"`\",\"DiacriticalTilde;\":\"\\u02dc\",\"diam;\":\"\\u22c4\",\"diamond;\":\"\\u22c4\",\"Diamond;\":\"\\u22c4\",\"diamondsuit;\":\"\\u2666\",\"diams;\":\"\\u2666\",\"die;\":\"\\u00a8\",\"DifferentialD;\":\"\\u2146\",\"digamma;\":\"\\u03dd\",\"disin;\":\"\\u22f2\",\"div;\":\"\\u00f7\",\"divide;\":\"\\u00f7\",divide:\"\\u00f7\",\"divideontimes;\":\"\\u22c7\",\"divonx;\":\"\\u22c7\",\"DJcy;\":\"\\u0402\",\"djcy;\":\"\\u0452\",\"dlcorn;\":\"\\u231e\",\"dlcrop;\":\"\\u230d\",\"dollar;\":\"$\",\"Dopf;\":\"\\ud835\\udd3b\",\"dopf;\":\"\\ud835\\udd55\",\"Dot;\":\"\\u00a8\",\"dot;\":\"\\u02d9\",\"DotDot;\":\"\\u20dc\",\"doteq;\":\"\\u2250\",\"doteqdot;\":\"\\u2251\",\"DotEqual;\":\"\\u2250\",\"dotminus;\":\"\\u2238\",\"dotplus;\":\"\\u2214\",\"dotsquare;\":\"\\u22a1\",\"doublebarwedge;\":\"\\u2306\",\"DoubleContourIntegral;\":\"\\u222f\",\"DoubleDot;\":\"\\u00a8\",\"DoubleDownArrow;\":\"\\u21d3\",\"DoubleLeftArrow;\":\"\\u21d0\",\"DoubleLeftRightArrow;\":\"\\u21d4\",\"DoubleLeftTee;\":\"\\u2ae4\",\"DoubleLongLeftArrow;\":\"\\u27f8\",\"DoubleLongLeftRightArrow;\":\"\\u27fa\",\"DoubleLongRightArrow;\":\"\\u27f9\",\"DoubleRightArrow;\":\"\\u21d2\",\"DoubleRightTee;\":\"\\u22a8\",\"DoubleUpArrow;\":\"\\u21d1\",\"DoubleUpDownArrow;\":\"\\u21d5\",\"DoubleVerticalBar;\":\"\\u2225\",\"DownArrowBar;\":\"\\u2913\",\"downarrow;\":\"\\u2193\",\"DownArrow;\":\"\\u2193\",\"Downarrow;\":\"\\u21d3\",\"DownArrowUpArrow;\":\"\\u21f5\",\"DownBreve;\":\"\\u0311\",\"downdownarrows;\":\"\\u21ca\",\"downharpoonleft;\":\"\\u21c3\",\"downharpoonright;\":\"\\u21c2\",\"DownLeftRightVector;\":\"\\u2950\",\"DownLeftTeeVector;\":\"\\u295e\",\"DownLeftVectorBar;\":\"\\u2956\",\"DownLeftVector;\":\"\\u21bd\",\"DownRightTeeVector;\":\"\\u295f\",\"DownRightVectorBar;\":\"\\u2957\",\"DownRightVector;\":\"\\u21c1\",\"DownTeeArrow;\":\"\\u21a7\",\"DownTee;\":\"\\u22a4\",\"drbkarow;\":\"\\u2910\",\"drcorn;\":\"\\u231f\",\"drcrop;\":\"\\u230c\",\"Dscr;\":\"\\ud835\\udc9f\",\"dscr;\":\"\\ud835\\udcb9\",\"DScy;\":\"\\u0405\",\"dscy;\":\"\\u0455\",\"dsol;\":\"\\u29f6\",\"Dstrok;\":\"\\u0110\",\"dstrok;\":\"\\u0111\",\"dtdot;\":\"\\u22f1\",\"dtri;\":\"\\u25bf\",\"dtrif;\":\"\\u25be\",\"duarr;\":\"\\u21f5\",\"duhar;\":\"\\u296f\",\"dwangle;\":\"\\u29a6\",\"DZcy;\":\"\\u040f\",\"dzcy;\":\"\\u045f\",\"dzigrarr;\":\"\\u27ff\",\"Eacute;\":\"\\u00c9\",Eacute:\"\\u00c9\",\"eacute;\":\"\\u00e9\",eacute:\"\\u00e9\",\"easter;\":\"\\u2a6e\",\"Ecaron;\":\"\\u011a\",\"ecaron;\":\"\\u011b\",\"Ecirc;\":\"\\u00ca\",Ecirc:\"\\u00ca\",\"ecirc;\":\"\\u00ea\",ecirc:\"\\u00ea\",\"ecir;\":\"\\u2256\",\"ecolon;\":\"\\u2255\",\"Ecy;\":\"\\u042d\",\"ecy;\":\"\\u044d\",\"eDDot;\":\"\\u2a77\",\"Edot;\":\"\\u0116\",\"edot;\":\"\\u0117\",\"eDot;\":\"\\u2251\",\"ee;\":\"\\u2147\",\"efDot;\":\"\\u2252\",\"Efr;\":\"\\ud835\\udd08\",\"efr;\":\"\\ud835\\udd22\",\"eg;\":\"\\u2a9a\",\"Egrave;\":\"\\u00c8\",Egrave:\"\\u00c8\",\"egrave;\":\"\\u00e8\",egrave:\"\\u00e8\",\"egs;\":\"\\u2a96\",\"egsdot;\":\"\\u2a98\",\"el;\":\"\\u2a99\",\"Element;\":\"\\u2208\",\"elinters;\":\"\\u23e7\",\"ell;\":\"\\u2113\",\"els;\":\"\\u2a95\",\"elsdot;\":\"\\u2a97\",\"Emacr;\":\"\\u0112\",\"emacr;\":\"\\u0113\",\"empty;\":\"\\u2205\",\"emptyset;\":\"\\u2205\",\"EmptySmallSquare;\":\"\\u25fb\",\"emptyv;\":\"\\u2205\",\"EmptyVerySmallSquare;\":\"\\u25ab\",\"emsp13;\":\"\\u2004\",\"emsp14;\":\"\\u2005\",\"emsp;\":\"\\u2003\",\"ENG;\":\"\\u014a\",\"eng;\":\"\\u014b\",\"ensp;\":\"\\u2002\",\"Eogon;\":\"\\u0118\",\"eogon;\":\"\\u0119\",\"Eopf;\":\"\\ud835\\udd3c\",\"eopf;\":\"\\ud835\\udd56\",\"epar;\":\"\\u22d5\",\"eparsl;\":\"\\u29e3\",\"eplus;\":\"\\u2a71\",\"epsi;\":\"\\u03b5\",\"Epsilon;\":\"\\u0395\",\"epsilon;\":\"\\u03b5\",\"epsiv;\":\"\\u03f5\",\"eqcirc;\":\"\\u2256\",\"eqcolon;\":\"\\u2255\",\"eqsim;\":\"\\u2242\",\"eqslantgtr;\":\"\\u2a96\",\"eqslantless;\":\"\\u2a95\",\"Equal;\":\"\\u2a75\",\"equals;\":\"=\",\"EqualTilde;\":\"\\u2242\",\"equest;\":\"\\u225f\",\"Equilibrium;\":\"\\u21cc\",\"equiv;\":\"\\u2261\",\"equivDD;\":\"\\u2a78\",\"eqvparsl;\":\"\\u29e5\",\"erarr;\":\"\\u2971\",\"erDot;\":\"\\u2253\",\"escr;\":\"\\u212f\",\"Escr;\":\"\\u2130\",\"esdot;\":\"\\u2250\",\"Esim;\":\"\\u2a73\",\"esim;\":\"\\u2242\",\"Eta;\":\"\\u0397\",\"eta;\":\"\\u03b7\",\"ETH;\":\"\\u00d0\",ETH:\"\\u00d0\",\"eth;\":\"\\u00f0\",eth:\"\\u00f0\",\"Euml;\":\"\\u00cb\",Euml:\"\\u00cb\",\"euml;\":\"\\u00eb\",euml:\"\\u00eb\",\"euro;\":\"\\u20ac\",\"excl;\":\"!\",\"exist;\":\"\\u2203\",\"Exists;\":\"\\u2203\",\"expectation;\":\"\\u2130\",\"exponentiale;\":\"\\u2147\",\"ExponentialE;\":\"\\u2147\",\"fallingdotseq;\":\"\\u2252\",\"Fcy;\":\"\\u0424\",\"fcy;\":\"\\u0444\",\"female;\":\"\\u2640\",\"ffilig;\":\"\\ufb03\",\"fflig;\":\"\\ufb00\",\"ffllig;\":\"\\ufb04\",\"Ffr;\":\"\\ud835\\udd09\",\"ffr;\":\"\\ud835\\udd23\",\"filig;\":\"\\ufb01\",\"FilledSmallSquare;\":\"\\u25fc\",\"FilledVerySmallSquare;\":\"\\u25aa\",\"fjlig;\":\"fj\",\"flat;\":\"\\u266d\",\"fllig;\":\"\\ufb02\",\"fltns;\":\"\\u25b1\",\"fnof;\":\"\\u0192\",\"Fopf;\":\"\\ud835\\udd3d\",\"fopf;\":\"\\ud835\\udd57\",\"forall;\":\"\\u2200\",\"ForAll;\":\"\\u2200\",\"fork;\":\"\\u22d4\",\"forkv;\":\"\\u2ad9\",\"Fouriertrf;\":\"\\u2131\",\"fpartint;\":\"\\u2a0d\",\"frac12;\":\"\\u00bd\",frac12:\"\\u00bd\",\"frac13;\":\"\\u2153\",\"frac14;\":\"\\u00bc\",frac14:\"\\u00bc\",\"frac15;\":\"\\u2155\",\"frac16;\":\"\\u2159\",\"frac18;\":\"\\u215b\",\"frac23;\":\"\\u2154\",\"frac25;\":\"\\u2156\",\"frac34;\":\"\\u00be\",frac34:\"\\u00be\",\"frac35;\":\"\\u2157\",\"frac38;\":\"\\u215c\",\"frac45;\":\"\\u2158\",\"frac56;\":\"\\u215a\",\"frac58;\":\"\\u215d\",\"frac78;\":\"\\u215e\",\"frasl;\":\"\\u2044\",\"frown;\":\"\\u2322\",\"fscr;\":\"\\ud835\\udcbb\",\"Fscr;\":\"\\u2131\",\"gacute;\":\"\\u01f5\",\"Gamma;\":\"\\u0393\",\"gamma;\":\"\\u03b3\",\"Gammad;\":\"\\u03dc\",\"gammad;\":\"\\u03dd\",\"gap;\":\"\\u2a86\",\"Gbreve;\":\"\\u011e\",\"gbreve;\":\"\\u011f\",\"Gcedil;\":\"\\u0122\",\"Gcirc;\":\"\\u011c\",\"gcirc;\":\"\\u011d\",\"Gcy;\":\"\\u0413\",\"gcy;\":\"\\u0433\",\"Gdot;\":\"\\u0120\",\"gdot;\":\"\\u0121\",\"ge;\":\"\\u2265\",\"gE;\":\"\\u2267\",\"gEl;\":\"\\u2a8c\",\"gel;\":\"\\u22db\",\"geq;\":\"\\u2265\",\"geqq;\":\"\\u2267\",\"geqslant;\":\"\\u2a7e\",\"gescc;\":\"\\u2aa9\",\"ges;\":\"\\u2a7e\",\"gesdot;\":\"\\u2a80\",\"gesdoto;\":\"\\u2a82\",\"gesdotol;\":\"\\u2a84\",\"gesl;\":\"\\u22db\\ufe00\",\"gesles;\":\"\\u2a94\",\"Gfr;\":\"\\ud835\\udd0a\",\"gfr;\":\"\\ud835\\udd24\",\"gg;\":\"\\u226b\",\"Gg;\":\"\\u22d9\",\"ggg;\":\"\\u22d9\",\"gimel;\":\"\\u2137\",\"GJcy;\":\"\\u0403\",\"gjcy;\":\"\\u0453\",\"gla;\":\"\\u2aa5\",\"gl;\":\"\\u2277\",\"glE;\":\"\\u2a92\",\"glj;\":\"\\u2aa4\",\"gnap;\":\"\\u2a8a\",\"gnapprox;\":\"\\u2a8a\",\"gne;\":\"\\u2a88\",\"gnE;\":\"\\u2269\",\"gneq;\":\"\\u2a88\",\"gneqq;\":\"\\u2269\",\"gnsim;\":\"\\u22e7\",\"Gopf;\":\"\\ud835\\udd3e\",\"gopf;\":\"\\ud835\\udd58\",\"grave;\":\"`\",\"GreaterEqual;\":\"\\u2265\",\"GreaterEqualLess;\":\"\\u22db\",\"GreaterFullEqual;\":\"\\u2267\",\"GreaterGreater;\":\"\\u2aa2\",\"GreaterLess;\":\"\\u2277\",\"GreaterSlantEqual;\":\"\\u2a7e\",\"GreaterTilde;\":\"\\u2273\",\"Gscr;\":\"\\ud835\\udca2\",\"gscr;\":\"\\u210a\",\"gsim;\":\"\\u2273\",\"gsime;\":\"\\u2a8e\",\"gsiml;\":\"\\u2a90\",\"gtcc;\":\"\\u2aa7\",\"gtcir;\":\"\\u2a7a\",\"gt;\":\">\",gt:\">\",\"GT;\":\">\",GT:\">\",\"Gt;\":\"\\u226b\",\"gtdot;\":\"\\u22d7\",\"gtlPar;\":\"\\u2995\",\"gtquest;\":\"\\u2a7c\",\"gtrapprox;\":\"\\u2a86\",\"gtrarr;\":\"\\u2978\",\"gtrdot;\":\"\\u22d7\",\"gtreqless;\":\"\\u22db\",\"gtreqqless;\":\"\\u2a8c\",\"gtrless;\":\"\\u2277\",\"gtrsim;\":\"\\u2273\",\"gvertneqq;\":\"\\u2269\\ufe00\",\"gvnE;\":\"\\u2269\\ufe00\",\"Hacek;\":\"\\u02c7\",\"hairsp;\":\"\\u200a\",\"half;\":\"\\u00bd\",\"hamilt;\":\"\\u210b\",\"HARDcy;\":\"\\u042a\",\"hardcy;\":\"\\u044a\",\"harrcir;\":\"\\u2948\",\"harr;\":\"\\u2194\",\"hArr;\":\"\\u21d4\",\"harrw;\":\"\\u21ad\",\"Hat;\":\"^\",\"hbar;\":\"\\u210f\",\"Hcirc;\":\"\\u0124\",\"hcirc;\":\"\\u0125\",\"hearts;\":\"\\u2665\",\"heartsuit;\":\"\\u2665\",\"hellip;\":\"\\u2026\",\"hercon;\":\"\\u22b9\",\"hfr;\":\"\\ud835\\udd25\",\"Hfr;\":\"\\u210c\",\"HilbertSpace;\":\"\\u210b\",\"hksearow;\":\"\\u2925\",\"hkswarow;\":\"\\u2926\",\"hoarr;\":\"\\u21ff\",\"homtht;\":\"\\u223b\",\"hookleftarrow;\":\"\\u21a9\",\"hookrightarrow;\":\"\\u21aa\",\"hopf;\":\"\\ud835\\udd59\",\"Hopf;\":\"\\u210d\",\"horbar;\":\"\\u2015\",\"HorizontalLine;\":\"\\u2500\",\"hscr;\":\"\\ud835\\udcbd\",\"Hscr;\":\"\\u210b\",\"hslash;\":\"\\u210f\",\"Hstrok;\":\"\\u0126\",\"hstrok;\":\"\\u0127\",\"HumpDownHump;\":\"\\u224e\",\"HumpEqual;\":\"\\u224f\",\"hybull;\":\"\\u2043\",\"hyphen;\":\"\\u2010\",\"Iacute;\":\"\\u00cd\",Iacute:\"\\u00cd\",\"iacute;\":\"\\u00ed\",iacute:\"\\u00ed\",\"ic;\":\"\\u2063\",\"Icirc;\":\"\\u00ce\",Icirc:\"\\u00ce\",\"icirc;\":\"\\u00ee\",icirc:\"\\u00ee\",\"Icy;\":\"\\u0418\",\"icy;\":\"\\u0438\",\"Idot;\":\"\\u0130\",\"IEcy;\":\"\\u0415\",\"iecy;\":\"\\u0435\",\"iexcl;\":\"\\u00a1\",iexcl:\"\\u00a1\",\"iff;\":\"\\u21d4\",\"ifr;\":\"\\ud835\\udd26\",\"Ifr;\":\"\\u2111\",\"Igrave;\":\"\\u00cc\",Igrave:\"\\u00cc\",\"igrave;\":\"\\u00ec\",igrave:\"\\u00ec\",\"ii;\":\"\\u2148\",\"iiiint;\":\"\\u2a0c\",\"iiint;\":\"\\u222d\",\"iinfin;\":\"\\u29dc\",\"iiota;\":\"\\u2129\",\"IJlig;\":\"\\u0132\",\"ijlig;\":\"\\u0133\",\"Imacr;\":\"\\u012a\",\"imacr;\":\"\\u012b\",\"image;\":\"\\u2111\",\"ImaginaryI;\":\"\\u2148\",\"imagline;\":\"\\u2110\",\"imagpart;\":\"\\u2111\",\"imath;\":\"\\u0131\",\"Im;\":\"\\u2111\",\"imof;\":\"\\u22b7\",\"imped;\":\"\\u01b5\",\"Implies;\":\"\\u21d2\",\"incare;\":\"\\u2105\",\"in;\":\"\\u2208\",\"infin;\":\"\\u221e\",\"infintie;\":\"\\u29dd\",\"inodot;\":\"\\u0131\",\"intcal;\":\"\\u22ba\",\"int;\":\"\\u222b\",\"Int;\":\"\\u222c\",\"integers;\":\"\\u2124\",\"Integral;\":\"\\u222b\",\"intercal;\":\"\\u22ba\",\"Intersection;\":\"\\u22c2\",\"intlarhk;\":\"\\u2a17\",\"intprod;\":\"\\u2a3c\",\"InvisibleComma;\":\"\\u2063\",\"InvisibleTimes;\":\"\\u2062\",\"IOcy;\":\"\\u0401\",\"iocy;\":\"\\u0451\",\"Iogon;\":\"\\u012e\",\"iogon;\":\"\\u012f\",\"Iopf;\":\"\\ud835\\udd40\",\"iopf;\":\"\\ud835\\udd5a\",\"Iota;\":\"\\u0399\",\"iota;\":\"\\u03b9\",\"iprod;\":\"\\u2a3c\",\"iquest;\":\"\\u00bf\",iquest:\"\\u00bf\",\"iscr;\":\"\\ud835\\udcbe\",\"Iscr;\":\"\\u2110\",\"isin;\":\"\\u2208\",\"isindot;\":\"\\u22f5\",\"isinE;\":\"\\u22f9\",\"isins;\":\"\\u22f4\",\"isinsv;\":\"\\u22f3\",\"isinv;\":\"\\u2208\",\"it;\":\"\\u2062\",\"Itilde;\":\"\\u0128\",\"itilde;\":\"\\u0129\",\"Iukcy;\":\"\\u0406\",\"iukcy;\":\"\\u0456\",\"Iuml;\":\"\\u00cf\",Iuml:\"\\u00cf\",\"iuml;\":\"\\u00ef\",iuml:\"\\u00ef\",\"Jcirc;\":\"\\u0134\",\"jcirc;\":\"\\u0135\",\"Jcy;\":\"\\u0419\",\"jcy;\":\"\\u0439\",\"Jfr;\":\"\\ud835\\udd0d\",\"jfr;\":\"\\ud835\\udd27\",\"jmath;\":\"\\u0237\",\"Jopf;\":\"\\ud835\\udd41\",\"jopf;\":\"\\ud835\\udd5b\",\"Jscr;\":\"\\ud835\\udca5\",\"jscr;\":\"\\ud835\\udcbf\",\"Jsercy;\":\"\\u0408\",\"jsercy;\":\"\\u0458\",\"Jukcy;\":\"\\u0404\",\"jukcy;\":\"\\u0454\",\"Kappa;\":\"\\u039a\",\"kappa;\":\"\\u03ba\",\"kappav;\":\"\\u03f0\",\"Kcedil;\":\"\\u0136\",\"kcedil;\":\"\\u0137\",\"Kcy;\":\"\\u041a\",\"kcy;\":\"\\u043a\",\"Kfr;\":\"\\ud835\\udd0e\",\"kfr;\":\"\\ud835\\udd28\",\"kgreen;\":\"\\u0138\",\"KHcy;\":\"\\u0425\",\"khcy;\":\"\\u0445\",\"KJcy;\":\"\\u040c\",\"kjcy;\":\"\\u045c\",\"Kopf;\":\"\\ud835\\udd42\",\"kopf;\":\"\\ud835\\udd5c\",\"Kscr;\":\"\\ud835\\udca6\",\"kscr;\":\"\\ud835\\udcc0\",\"lAarr;\":\"\\u21da\",\"Lacute;\":\"\\u0139\",\"lacute;\":\"\\u013a\",\"laemptyv;\":\"\\u29b4\",\"lagran;\":\"\\u2112\",\"Lambda;\":\"\\u039b\",\"lambda;\":\"\\u03bb\",\"lang;\":\"\\u27e8\",\"Lang;\":\"\\u27ea\",\"langd;\":\"\\u2991\",\"langle;\":\"\\u27e8\",\"lap;\":\"\\u2a85\",\"Laplacetrf;\":\"\\u2112\",\"laquo;\":\"\\u00ab\",laquo:\"\\u00ab\",\"larrb;\":\"\\u21e4\",\"larrbfs;\":\"\\u291f\",\"larr;\":\"\\u2190\",\"Larr;\":\"\\u219e\",\"lArr;\":\"\\u21d0\",\"larrfs;\":\"\\u291d\",\"larrhk;\":\"\\u21a9\",\"larrlp;\":\"\\u21ab\",\"larrpl;\":\"\\u2939\",\"larrsim;\":\"\\u2973\",\"larrtl;\":\"\\u21a2\",\"latail;\":\"\\u2919\",\"lAtail;\":\"\\u291b\",\"lat;\":\"\\u2aab\",\"late;\":\"\\u2aad\",\"lates;\":\"\\u2aad\\ufe00\",\"lbarr;\":\"\\u290c\",\"lBarr;\":\"\\u290e\",\"lbbrk;\":\"\\u2772\",\"lbrace;\":\"{\",\"lbrack;\":\"[\",\"lbrke;\":\"\\u298b\",\"lbrksld;\":\"\\u298f\",\"lbrkslu;\":\"\\u298d\",\"Lcaron;\":\"\\u013d\",\"lcaron;\":\"\\u013e\",\"Lcedil;\":\"\\u013b\",\"lcedil;\":\"\\u013c\",\"lceil;\":\"\\u2308\",\"lcub;\":\"{\",\"Lcy;\":\"\\u041b\",\"lcy;\":\"\\u043b\",\"ldca;\":\"\\u2936\",\"ldquo;\":\"\\u201c\",\"ldquor;\":\"\\u201e\",\"ldrdhar;\":\"\\u2967\",\"ldrushar;\":\"\\u294b\",\"ldsh;\":\"\\u21b2\",\"le;\":\"\\u2264\",\"lE;\":\"\\u2266\",\"LeftAngleBracket;\":\"\\u27e8\",\"LeftArrowBar;\":\"\\u21e4\",\"leftarrow;\":\"\\u2190\",\"LeftArrow;\":\"\\u2190\",\"Leftarrow;\":\"\\u21d0\",\"LeftArrowRightArrow;\":\"\\u21c6\",\"leftarrowtail;\":\"\\u21a2\",\"LeftCeiling;\":\"\\u2308\",\"LeftDoubleBracket;\":\"\\u27e6\",\"LeftDownTeeVector;\":\"\\u2961\",\"LeftDownVectorBar;\":\"\\u2959\",\"LeftDownVector;\":\"\\u21c3\",\"LeftFloor;\":\"\\u230a\",\"leftharpoondown;\":\"\\u21bd\",\"leftharpoonup;\":\"\\u21bc\",\"leftleftarrows;\":\"\\u21c7\",\"leftrightarrow;\":\"\\u2194\",\"LeftRightArrow;\":\"\\u2194\",\"Leftrightarrow;\":\"\\u21d4\",\"leftrightarrows;\":\"\\u21c6\",\"leftrightharpoons;\":\"\\u21cb\",\"leftrightsquigarrow;\":\"\\u21ad\",\"LeftRightVector;\":\"\\u294e\",\"LeftTeeArrow;\":\"\\u21a4\",\"LeftTee;\":\"\\u22a3\",\"LeftTeeVector;\":\"\\u295a\",\"leftthreetimes;\":\"\\u22cb\",\"LeftTriangleBar;\":\"\\u29cf\",\"LeftTriangle;\":\"\\u22b2\",\"LeftTriangleEqual;\":\"\\u22b4\",\"LeftUpDownVector;\":\"\\u2951\",\"LeftUpTeeVector;\":\"\\u2960\",\"LeftUpVectorBar;\":\"\\u2958\",\"LeftUpVector;\":\"\\u21bf\",\"LeftVectorBar;\":\"\\u2952\",\"LeftVector;\":\"\\u21bc\",\"lEg;\":\"\\u2a8b\",\"leg;\":\"\\u22da\",\"leq;\":\"\\u2264\",\"leqq;\":\"\\u2266\",\"leqslant;\":\"\\u2a7d\",\"lescc;\":\"\\u2aa8\",\"les;\":\"\\u2a7d\",\"lesdot;\":\"\\u2a7f\",\"lesdoto;\":\"\\u2a81\",\"lesdotor;\":\"\\u2a83\",\"lesg;\":\"\\u22da\\ufe00\",\"lesges;\":\"\\u2a93\",\"lessapprox;\":\"\\u2a85\",\"lessdot;\":\"\\u22d6\",\"lesseqgtr;\":\"\\u22da\",\"lesseqqgtr;\":\"\\u2a8b\",\"LessEqualGreater;\":\"\\u22da\",\"LessFullEqual;\":\"\\u2266\",\"LessGreater;\":\"\\u2276\",\"lessgtr;\":\"\\u2276\",\"LessLess;\":\"\\u2aa1\",\"lesssim;\":\"\\u2272\",\"LessSlantEqual;\":\"\\u2a7d\",\"LessTilde;\":\"\\u2272\",\"lfisht;\":\"\\u297c\",\"lfloor;\":\"\\u230a\",\"Lfr;\":\"\\ud835\\udd0f\",\"lfr;\":\"\\ud835\\udd29\",\"lg;\":\"\\u2276\",\"lgE;\":\"\\u2a91\",\"lHar;\":\"\\u2962\",\"lhard;\":\"\\u21bd\",\"lharu;\":\"\\u21bc\",\"lharul;\":\"\\u296a\",\"lhblk;\":\"\\u2584\",\"LJcy;\":\"\\u0409\",\"ljcy;\":\"\\u0459\",\"llarr;\":\"\\u21c7\",\"ll;\":\"\\u226a\",\"Ll;\":\"\\u22d8\",\"llcorner;\":\"\\u231e\",\"Lleftarrow;\":\"\\u21da\",\"llhard;\":\"\\u296b\",\"lltri;\":\"\\u25fa\",\"Lmidot;\":\"\\u013f\",\"lmidot;\":\"\\u0140\",\"lmoustache;\":\"\\u23b0\",\"lmoust;\":\"\\u23b0\",\"lnap;\":\"\\u2a89\",\"lnapprox;\":\"\\u2a89\",\"lne;\":\"\\u2a87\",\"lnE;\":\"\\u2268\",\"lneq;\":\"\\u2a87\",\"lneqq;\":\"\\u2268\",\"lnsim;\":\"\\u22e6\",\"loang;\":\"\\u27ec\",\"loarr;\":\"\\u21fd\",\"lobrk;\":\"\\u27e6\",\"longleftarrow;\":\"\\u27f5\",\"LongLeftArrow;\":\"\\u27f5\",\"Longleftarrow;\":\"\\u27f8\",\"longleftrightarrow;\":\"\\u27f7\",\"LongLeftRightArrow;\":\"\\u27f7\",\"Longleftrightarrow;\":\"\\u27fa\",\"longmapsto;\":\"\\u27fc\",\"longrightarrow;\":\"\\u27f6\",\"LongRightArrow;\":\"\\u27f6\",\"Longrightarrow;\":\"\\u27f9\",\"looparrowleft;\":\"\\u21ab\",\"looparrowright;\":\"\\u21ac\",\"lopar;\":\"\\u2985\",\"Lopf;\":\"\\ud835\\udd43\",\"lopf;\":\"\\ud835\\udd5d\",\"loplus;\":\"\\u2a2d\",\"lotimes;\":\"\\u2a34\",\"lowast;\":\"\\u2217\",\"lowbar;\":\"_\",\"LowerLeftArrow;\":\"\\u2199\",\"LowerRightArrow;\":\"\\u2198\",\"loz;\":\"\\u25ca\",\"lozenge;\":\"\\u25ca\",\"lozf;\":\"\\u29eb\",\"lpar;\":\"(\",\"lparlt;\":\"\\u2993\",\"lrarr;\":\"\\u21c6\",\"lrcorner;\":\"\\u231f\",\"lrhar;\":\"\\u21cb\",\"lrhard;\":\"\\u296d\",\"lrm;\":\"\\u200e\",\"lrtri;\":\"\\u22bf\",\"lsaquo;\":\"\\u2039\",\"lscr;\":\"\\ud835\\udcc1\",\"Lscr;\":\"\\u2112\",\"lsh;\":\"\\u21b0\",\"Lsh;\":\"\\u21b0\",\"lsim;\":\"\\u2272\",\"lsime;\":\"\\u2a8d\",\"lsimg;\":\"\\u2a8f\",\"lsqb;\":\"[\",\"lsquo;\":\"\\u2018\",\"lsquor;\":\"\\u201a\",\"Lstrok;\":\"\\u0141\",\"lstrok;\":\"\\u0142\",\"ltcc;\":\"\\u2aa6\",\"ltcir;\":\"\\u2a79\",\"lt;\":\"<\",lt:\"<\",\"LT;\":\"<\",LT:\"<\",\"Lt;\":\"\\u226a\",\"ltdot;\":\"\\u22d6\",\"lthree;\":\"\\u22cb\",\"ltimes;\":\"\\u22c9\",\"ltlarr;\":\"\\u2976\",\"ltquest;\":\"\\u2a7b\",\"ltri;\":\"\\u25c3\",\"ltrie;\":\"\\u22b4\",\"ltrif;\":\"\\u25c2\",\"ltrPar;\":\"\\u2996\",\"lurdshar;\":\"\\u294a\",\"luruhar;\":\"\\u2966\",\"lvertneqq;\":\"\\u2268\\ufe00\",\"lvnE;\":\"\\u2268\\ufe00\",\"macr;\":\"\\u00af\",macr:\"\\u00af\",\"male;\":\"\\u2642\",\"malt;\":\"\\u2720\",\"maltese;\":\"\\u2720\",\"Map;\":\"\\u2905\",\"map;\":\"\\u21a6\",\"mapsto;\":\"\\u21a6\",\"mapstodown;\":\"\\u21a7\",\"mapstoleft;\":\"\\u21a4\",\"mapstoup;\":\"\\u21a5\",\"marker;\":\"\\u25ae\",\"mcomma;\":\"\\u2a29\",\"Mcy;\":\"\\u041c\",\"mcy;\":\"\\u043c\",\"mdash;\":\"\\u2014\",\"mDDot;\":\"\\u223a\",\"measuredangle;\":\"\\u2221\",\"MediumSpace;\":\"\\u205f\",\"Mellintrf;\":\"\\u2133\",\"Mfr;\":\"\\ud835\\udd10\",\"mfr;\":\"\\ud835\\udd2a\",\"mho;\":\"\\u2127\",\"micro;\":\"\\u00b5\",micro:\"\\u00b5\",\"midast;\":\"*\",\"midcir;\":\"\\u2af0\",\"mid;\":\"\\u2223\",\"middot;\":\"\\u00b7\",middot:\"\\u00b7\",\"minusb;\":\"\\u229f\",\"minus;\":\"\\u2212\",\"minusd;\":\"\\u2238\",\"minusdu;\":\"\\u2a2a\",\"MinusPlus;\":\"\\u2213\",\"mlcp;\":\"\\u2adb\",\"mldr;\":\"\\u2026\",\"mnplus;\":\"\\u2213\",\"models;\":\"\\u22a7\",\"Mopf;\":\"\\ud835\\udd44\",\"mopf;\":\"\\ud835\\udd5e\",\"mp;\":\"\\u2213\",\"mscr;\":\"\\ud835\\udcc2\",\"Mscr;\":\"\\u2133\",\"mstpos;\":\"\\u223e\",\"Mu;\":\"\\u039c\",\"mu;\":\"\\u03bc\",\"multimap;\":\"\\u22b8\",\"mumap;\":\"\\u22b8\",\"nabla;\":\"\\u2207\",\"Nacute;\":\"\\u0143\",\"nacute;\":\"\\u0144\",\"nang;\":\"\\u2220\\u20d2\",\"nap;\":\"\\u2249\",\"napE;\":\"\\u2a70\\u0338\",\"napid;\":\"\\u224b\\u0338\",\"napos;\":\"\\u0149\",\"napprox;\":\"\\u2249\",\"natural;\":\"\\u266e\",\"naturals;\":\"\\u2115\",\"natur;\":\"\\u266e\",\"nbsp;\":\"\\u00a0\",nbsp:\"\\u00a0\",\"nbump;\":\"\\u224e\\u0338\",\"nbumpe;\":\"\\u224f\\u0338\",\"ncap;\":\"\\u2a43\",\"Ncaron;\":\"\\u0147\",\"ncaron;\":\"\\u0148\",\"Ncedil;\":\"\\u0145\",\"ncedil;\":\"\\u0146\",\"ncong;\":\"\\u2247\",\"ncongdot;\":\"\\u2a6d\\u0338\",\"ncup;\":\"\\u2a42\",\"Ncy;\":\"\\u041d\",\"ncy;\":\"\\u043d\",\"ndash;\":\"\\u2013\",\"nearhk;\":\"\\u2924\",\"nearr;\":\"\\u2197\",\"neArr;\":\"\\u21d7\",\"nearrow;\":\"\\u2197\",\"ne;\":\"\\u2260\",\"nedot;\":\"\\u2250\\u0338\",\"NegativeMediumSpace;\":\"\\u200b\",\"NegativeThickSpace;\":\"\\u200b\",\"NegativeThinSpace;\":\"\\u200b\",\"NegativeVeryThinSpace;\":\"\\u200b\",\"nequiv;\":\"\\u2262\",\"nesear;\":\"\\u2928\",\"nesim;\":\"\\u2242\\u0338\",\"NestedGreaterGreater;\":\"\\u226b\",\"NestedLessLess;\":\"\\u226a\",\"NewLine;\":\"\\n\",\"nexist;\":\"\\u2204\",\"nexists;\":\"\\u2204\",\"Nfr;\":\"\\ud835\\udd11\",\"nfr;\":\"\\ud835\\udd2b\",\"ngE;\":\"\\u2267\\u0338\",\"nge;\":\"\\u2271\",\"ngeq;\":\"\\u2271\",\"ngeqq;\":\"\\u2267\\u0338\",\"ngeqslant;\":\"\\u2a7e\\u0338\",\"nges;\":\"\\u2a7e\\u0338\",\"nGg;\":\"\\u22d9\\u0338\",\"ngsim;\":\"\\u2275\",\"nGt;\":\"\\u226b\\u20d2\",\"ngt;\":\"\\u226f\",\"ngtr;\":\"\\u226f\",\"nGtv;\":\"\\u226b\\u0338\",\"nharr;\":\"\\u21ae\",\"nhArr;\":\"\\u21ce\",\"nhpar;\":\"\\u2af2\",\"ni;\":\"\\u220b\",\"nis;\":\"\\u22fc\",\"nisd;\":\"\\u22fa\",\"niv;\":\"\\u220b\",\"NJcy;\":\"\\u040a\",\"njcy;\":\"\\u045a\",\"nlarr;\":\"\\u219a\",\"nlArr;\":\"\\u21cd\",\"nldr;\":\"\\u2025\",\"nlE;\":\"\\u2266\\u0338\",\"nle;\":\"\\u2270\",\"nleftarrow;\":\"\\u219a\",\"nLeftarrow;\":\"\\u21cd\",\"nleftrightarrow;\":\"\\u21ae\",\"nLeftrightarrow;\":\"\\u21ce\",\"nleq;\":\"\\u2270\",\"nleqq;\":\"\\u2266\\u0338\",\"nleqslant;\":\"\\u2a7d\\u0338\",\"nles;\":\"\\u2a7d\\u0338\",\"nless;\":\"\\u226e\",\"nLl;\":\"\\u22d8\\u0338\",\"nlsim;\":\"\\u2274\",\"nLt;\":\"\\u226a\\u20d2\",\"nlt;\":\"\\u226e\",\"nltri;\":\"\\u22ea\",\"nltrie;\":\"\\u22ec\",\"nLtv;\":\"\\u226a\\u0338\",\"nmid;\":\"\\u2224\",\"NoBreak;\":\"\\u2060\",\"NonBreakingSpace;\":\"\\u00a0\",\"nopf;\":\"\\ud835\\udd5f\",\"Nopf;\":\"\\u2115\",\"Not;\":\"\\u2aec\",\"not;\":\"\\u00ac\",not:\"\\u00ac\",\"NotCongruent;\":\"\\u2262\",\"NotCupCap;\":\"\\u226d\",\"NotDoubleVerticalBar;\":\"\\u2226\",\"NotElement;\":\"\\u2209\",\"NotEqual;\":\"\\u2260\",\"NotEqualTilde;\":\"\\u2242\\u0338\",\"NotExists;\":\"\\u2204\",\"NotGreater;\":\"\\u226f\",\"NotGreaterEqual;\":\"\\u2271\",\"NotGreaterFullEqual;\":\"\\u2267\\u0338\",\"NotGreaterGreater;\":\"\\u226b\\u0338\",\"NotGreaterLess;\":\"\\u2279\",\"NotGreaterSlantEqual;\":\"\\u2a7e\\u0338\",\"NotGreaterTilde;\":\"\\u2275\",\"NotHumpDownHump;\":\"\\u224e\\u0338\",\"NotHumpEqual;\":\"\\u224f\\u0338\",\"notin;\":\"\\u2209\",\"notindot;\":\"\\u22f5\\u0338\",\"notinE;\":\"\\u22f9\\u0338\",\"notinva;\":\"\\u2209\",\"notinvb;\":\"\\u22f7\",\"notinvc;\":\"\\u22f6\",\"NotLeftTriangleBar;\":\"\\u29cf\\u0338\",\"NotLeftTriangle;\":\"\\u22ea\",\"NotLeftTriangleEqual;\":\"\\u22ec\",\"NotLess;\":\"\\u226e\",\"NotLessEqual;\":\"\\u2270\",\"NotLessGreater;\":\"\\u2278\",\"NotLessLess;\":\"\\u226a\\u0338\",\"NotLessSlantEqual;\":\"\\u2a7d\\u0338\",\"NotLessTilde;\":\"\\u2274\",\"NotNestedGreaterGreater;\":\"\\u2aa2\\u0338\",\"NotNestedLessLess;\":\"\\u2aa1\\u0338\",\"notni;\":\"\\u220c\",\"notniva;\":\"\\u220c\",\"notnivb;\":\"\\u22fe\",\"notnivc;\":\"\\u22fd\",\"NotPrecedes;\":\"\\u2280\",\"NotPrecedesEqual;\":\"\\u2aaf\\u0338\",\"NotPrecedesSlantEqual;\":\"\\u22e0\",\"NotReverseElement;\":\"\\u220c\",\"NotRightTriangleBar;\":\"\\u29d0\\u0338\",\"NotRightTriangle;\":\"\\u22eb\",\"NotRightTriangleEqual;\":\"\\u22ed\",\"NotSquareSubset;\":\"\\u228f\\u0338\",\"NotSquareSubsetEqual;\":\"\\u22e2\",\"NotSquareSuperset;\":\"\\u2290\\u0338\",\"NotSquareSupersetEqual;\":\"\\u22e3\",\"NotSubset;\":\"\\u2282\\u20d2\",\"NotSubsetEqual;\":\"\\u2288\",\"NotSucceeds;\":\"\\u2281\",\"NotSucceedsEqual;\":\"\\u2ab0\\u0338\",\"NotSucceedsSlantEqual;\":\"\\u22e1\",\"NotSucceedsTilde;\":\"\\u227f\\u0338\",\"NotSuperset;\":\"\\u2283\\u20d2\",\"NotSupersetEqual;\":\"\\u2289\",\"NotTilde;\":\"\\u2241\",\"NotTildeEqual;\":\"\\u2244\",\"NotTildeFullEqual;\":\"\\u2247\",\"NotTildeTilde;\":\"\\u2249\",\"NotVerticalBar;\":\"\\u2224\",\"nparallel;\":\"\\u2226\",\"npar;\":\"\\u2226\",\"nparsl;\":\"\\u2afd\\u20e5\",\"npart;\":\"\\u2202\\u0338\",\"npolint;\":\"\\u2a14\",\"npr;\":\"\\u2280\",\"nprcue;\":\"\\u22e0\",\"nprec;\":\"\\u2280\",\"npreceq;\":\"\\u2aaf\\u0338\",\"npre;\":\"\\u2aaf\\u0338\",\"nrarrc;\":\"\\u2933\\u0338\",\"nrarr;\":\"\\u219b\",\"nrArr;\":\"\\u21cf\",\"nrarrw;\":\"\\u219d\\u0338\",\"nrightarrow;\":\"\\u219b\",\"nRightarrow;\":\"\\u21cf\",\"nrtri;\":\"\\u22eb\",\"nrtrie;\":\"\\u22ed\",\"nsc;\":\"\\u2281\",\"nsccue;\":\"\\u22e1\",\"nsce;\":\"\\u2ab0\\u0338\",\"Nscr;\":\"\\ud835\\udca9\",\"nscr;\":\"\\ud835\\udcc3\",\"nshortmid;\":\"\\u2224\",\"nshortparallel;\":\"\\u2226\",\"nsim;\":\"\\u2241\",\"nsime;\":\"\\u2244\",\"nsimeq;\":\"\\u2244\",\"nsmid;\":\"\\u2224\",\"nspar;\":\"\\u2226\",\"nsqsube;\":\"\\u22e2\",\"nsqsupe;\":\"\\u22e3\",\"nsub;\":\"\\u2284\",\"nsubE;\":\"\\u2ac5\\u0338\",\"nsube;\":\"\\u2288\",\"nsubset;\":\"\\u2282\\u20d2\",\"nsubseteq;\":\"\\u2288\",\"nsubseteqq;\":\"\\u2ac5\\u0338\",\"nsucc;\":\"\\u2281\",\"nsucceq;\":\"\\u2ab0\\u0338\",\"nsup;\":\"\\u2285\",\"nsupE;\":\"\\u2ac6\\u0338\",\"nsupe;\":\"\\u2289\",\"nsupset;\":\"\\u2283\\u20d2\",\"nsupseteq;\":\"\\u2289\",\"nsupseteqq;\":\"\\u2ac6\\u0338\",\"ntgl;\":\"\\u2279\",\"Ntilde;\":\"\\u00d1\",Ntilde:\"\\u00d1\",\"ntilde;\":\"\\u00f1\",ntilde:\"\\u00f1\",\"ntlg;\":\"\\u2278\",\"ntriangleleft;\":\"\\u22ea\",\"ntrianglelefteq;\":\"\\u22ec\",\"ntriangleright;\":\"\\u22eb\",\"ntrianglerighteq;\":\"\\u22ed\",\"Nu;\":\"\\u039d\",\"nu;\":\"\\u03bd\",\"num;\":\"#\",\"numero;\":\"\\u2116\",\"numsp;\":\"\\u2007\",\"nvap;\":\"\\u224d\\u20d2\",\"nvdash;\":\"\\u22ac\",\"nvDash;\":\"\\u22ad\",\"nVdash;\":\"\\u22ae\",\"nVDash;\":\"\\u22af\",\"nvge;\":\"\\u2265\\u20d2\",\"nvgt;\":\">\\u20d2\",\"nvHarr;\":\"\\u2904\",\"nvinfin;\":\"\\u29de\",\"nvlArr;\":\"\\u2902\",\"nvle;\":\"\\u2264\\u20d2\",\"nvlt;\":\"<\\u20d2\",\"nvltrie;\":\"\\u22b4\\u20d2\",\"nvrArr;\":\"\\u2903\",\"nvrtrie;\":\"\\u22b5\\u20d2\",\"nvsim;\":\"\\u223c\\u20d2\",\"nwarhk;\":\"\\u2923\",\"nwarr;\":\"\\u2196\",\"nwArr;\":\"\\u21d6\",\"nwarrow;\":\"\\u2196\",\"nwnear;\":\"\\u2927\",\"Oacute;\":\"\\u00d3\",Oacute:\"\\u00d3\",\"oacute;\":\"\\u00f3\",oacute:\"\\u00f3\",\"oast;\":\"\\u229b\",\"Ocirc;\":\"\\u00d4\",Ocirc:\"\\u00d4\",\"ocirc;\":\"\\u00f4\",ocirc:\"\\u00f4\",\"ocir;\":\"\\u229a\",\"Ocy;\":\"\\u041e\",\"ocy;\":\"\\u043e\",\"odash;\":\"\\u229d\",\"Odblac;\":\"\\u0150\",\"odblac;\":\"\\u0151\",\"odiv;\":\"\\u2a38\",\"odot;\":\"\\u2299\",\"odsold;\":\"\\u29bc\",\"OElig;\":\"\\u0152\",\"oelig;\":\"\\u0153\",\"ofcir;\":\"\\u29bf\",\"Ofr;\":\"\\ud835\\udd12\",\"ofr;\":\"\\ud835\\udd2c\",\"ogon;\":\"\\u02db\",\"Ograve;\":\"\\u00d2\",Ograve:\"\\u00d2\",\"ograve;\":\"\\u00f2\",ograve:\"\\u00f2\",\"ogt;\":\"\\u29c1\",\"ohbar;\":\"\\u29b5\",\"ohm;\":\"\\u03a9\",\"oint;\":\"\\u222e\",\"olarr;\":\"\\u21ba\",\"olcir;\":\"\\u29be\",\"olcross;\":\"\\u29bb\",\"oline;\":\"\\u203e\",\"olt;\":\"\\u29c0\",\"Omacr;\":\"\\u014c\",\"omacr;\":\"\\u014d\",\"Omega;\":\"\\u03a9\",\"omega;\":\"\\u03c9\",\"Omicron;\":\"\\u039f\",\"omicron;\":\"\\u03bf\",\"omid;\":\"\\u29b6\",\"ominus;\":\"\\u2296\",\"Oopf;\":\"\\ud835\\udd46\",\"oopf;\":\"\\ud835\\udd60\",\"opar;\":\"\\u29b7\",\"OpenCurlyDoubleQuote;\":\"\\u201c\",\"OpenCurlyQuote;\":\"\\u2018\",\"operp;\":\"\\u29b9\",\"oplus;\":\"\\u2295\",\"orarr;\":\"\\u21bb\",\"Or;\":\"\\u2a54\",\"or;\":\"\\u2228\",\"ord;\":\"\\u2a5d\",\"order;\":\"\\u2134\",\"orderof;\":\"\\u2134\",\"ordf;\":\"\\u00aa\",ordf:\"\\u00aa\",\"ordm;\":\"\\u00ba\",ordm:\"\\u00ba\",\"origof;\":\"\\u22b6\",\"oror;\":\"\\u2a56\",\"orslope;\":\"\\u2a57\",\"orv;\":\"\\u2a5b\",\"oS;\":\"\\u24c8\",\"Oscr;\":\"\\ud835\\udcaa\",\"oscr;\":\"\\u2134\",\"Oslash;\":\"\\u00d8\",Oslash:\"\\u00d8\",\"oslash;\":\"\\u00f8\",oslash:\"\\u00f8\",\"osol;\":\"\\u2298\",\"Otilde;\":\"\\u00d5\",Otilde:\"\\u00d5\",\"otilde;\":\"\\u00f5\",otilde:\"\\u00f5\",\"otimesas;\":\"\\u2a36\",\"Otimes;\":\"\\u2a37\",\"otimes;\":\"\\u2297\",\"Ouml;\":\"\\u00d6\",Ouml:\"\\u00d6\",\"ouml;\":\"\\u00f6\",ouml:\"\\u00f6\",\"ovbar;\":\"\\u233d\",\"OverBar;\":\"\\u203e\",\"OverBrace;\":\"\\u23de\",\"OverBracket;\":\"\\u23b4\",\"OverParenthesis;\":\"\\u23dc\",\"para;\":\"\\u00b6\",para:\"\\u00b6\",\"parallel;\":\"\\u2225\",\"par;\":\"\\u2225\",\"parsim;\":\"\\u2af3\",\"parsl;\":\"\\u2afd\",\"part;\":\"\\u2202\",\"PartialD;\":\"\\u2202\",\"Pcy;\":\"\\u041f\",\"pcy;\":\"\\u043f\",\"percnt;\":\"%\",\"period;\":\".\",\"permil;\":\"\\u2030\",\"perp;\":\"\\u22a5\",\"pertenk;\":\"\\u2031\",\"Pfr;\":\"\\ud835\\udd13\",\"pfr;\":\"\\ud835\\udd2d\",\"Phi;\":\"\\u03a6\",\"phi;\":\"\\u03c6\",\"phiv;\":\"\\u03d5\",\"phmmat;\":\"\\u2133\",\"phone;\":\"\\u260e\",\"Pi;\":\"\\u03a0\",\"pi;\":\"\\u03c0\",\"pitchfork;\":\"\\u22d4\",\"piv;\":\"\\u03d6\",\"planck;\":\"\\u210f\",\"planckh;\":\"\\u210e\",\"plankv;\":\"\\u210f\",\"plusacir;\":\"\\u2a23\",\"plusb;\":\"\\u229e\",\"pluscir;\":\"\\u2a22\",\"plus;\":\"+\",\"plusdo;\":\"\\u2214\",\"plusdu;\":\"\\u2a25\",\"pluse;\":\"\\u2a72\",\"PlusMinus;\":\"\\u00b1\",\"plusmn;\":\"\\u00b1\",plusmn:\"\\u00b1\",\"plussim;\":\"\\u2a26\",\"plustwo;\":\"\\u2a27\",\"pm;\":\"\\u00b1\",\"Poincareplane;\":\"\\u210c\",\"pointint;\":\"\\u2a15\",\"popf;\":\"\\ud835\\udd61\",\"Popf;\":\"\\u2119\",\"pound;\":\"\\u00a3\",pound:\"\\u00a3\",\"prap;\":\"\\u2ab7\",\"Pr;\":\"\\u2abb\",\"pr;\":\"\\u227a\",\"prcue;\":\"\\u227c\",\"precapprox;\":\"\\u2ab7\",\"prec;\":\"\\u227a\",\"preccurlyeq;\":\"\\u227c\",\"Precedes;\":\"\\u227a\",\"PrecedesEqual;\":\"\\u2aaf\",\"PrecedesSlantEqual;\":\"\\u227c\",\"PrecedesTilde;\":\"\\u227e\",\"preceq;\":\"\\u2aaf\",\"precnapprox;\":\"\\u2ab9\",\"precneqq;\":\"\\u2ab5\",\"precnsim;\":\"\\u22e8\",\"pre;\":\"\\u2aaf\",\"prE;\":\"\\u2ab3\",\"precsim;\":\"\\u227e\",\"prime;\":\"\\u2032\",\"Prime;\":\"\\u2033\",\"primes;\":\"\\u2119\",\"prnap;\":\"\\u2ab9\",\"prnE;\":\"\\u2ab5\",\"prnsim;\":\"\\u22e8\",\"prod;\":\"\\u220f\",\"Product;\":\"\\u220f\",\"profalar;\":\"\\u232e\",\"profline;\":\"\\u2312\",\"profsurf;\":\"\\u2313\",\"prop;\":\"\\u221d\",\"Proportional;\":\"\\u221d\",\"Proportion;\":\"\\u2237\",\"propto;\":\"\\u221d\",\"prsim;\":\"\\u227e\",\"prurel;\":\"\\u22b0\",\"Pscr;\":\"\\ud835\\udcab\",\"pscr;\":\"\\ud835\\udcc5\",\"Psi;\":\"\\u03a8\",\"psi;\":\"\\u03c8\",\"puncsp;\":\"\\u2008\",\"Qfr;\":\"\\ud835\\udd14\",\"qfr;\":\"\\ud835\\udd2e\",\"qint;\":\"\\u2a0c\",\"qopf;\":\"\\ud835\\udd62\",\"Qopf;\":\"\\u211a\",\"qprime;\":\"\\u2057\",\"Qscr;\":\"\\ud835\\udcac\",\"qscr;\":\"\\ud835\\udcc6\",\"quaternions;\":\"\\u210d\",\"quatint;\":\"\\u2a16\",\"quest;\":\"?\",\"questeq;\":\"\\u225f\",\"quot;\":'\"',quot:'\"',\"QUOT;\":'\"',QUOT:'\"',\"rAarr;\":\"\\u21db\",\"race;\":\"\\u223d\\u0331\",\"Racute;\":\"\\u0154\",\"racute;\":\"\\u0155\",\"radic;\":\"\\u221a\",\"raemptyv;\":\"\\u29b3\",\"rang;\":\"\\u27e9\",\"Rang;\":\"\\u27eb\",\"rangd;\":\"\\u2992\",\"range;\":\"\\u29a5\",\"rangle;\":\"\\u27e9\",\"raquo;\":\"\\u00bb\",raquo:\"\\u00bb\",\"rarrap;\":\"\\u2975\",\"rarrb;\":\"\\u21e5\",\"rarrbfs;\":\"\\u2920\",\"rarrc;\":\"\\u2933\",\"rarr;\":\"\\u2192\",\"Rarr;\":\"\\u21a0\",\"rArr;\":\"\\u21d2\",\"rarrfs;\":\"\\u291e\",\"rarrhk;\":\"\\u21aa\",\"rarrlp;\":\"\\u21ac\",\"rarrpl;\":\"\\u2945\",\"rarrsim;\":\"\\u2974\",\"Rarrtl;\":\"\\u2916\",\"rarrtl;\":\"\\u21a3\",\"rarrw;\":\"\\u219d\",\"ratail;\":\"\\u291a\",\"rAtail;\":\"\\u291c\",\"ratio;\":\"\\u2236\",\"rationals;\":\"\\u211a\",\"rbarr;\":\"\\u290d\",\"rBarr;\":\"\\u290f\",\"RBarr;\":\"\\u2910\",\"rbbrk;\":\"\\u2773\",\"rbrace;\":\"}\",\"rbrack;\":\"]\",\"rbrke;\":\"\\u298c\",\"rbrksld;\":\"\\u298e\",\"rbrkslu;\":\"\\u2990\",\"Rcaron;\":\"\\u0158\",\"rcaron;\":\"\\u0159\",\"Rcedil;\":\"\\u0156\",\"rcedil;\":\"\\u0157\",\"rceil;\":\"\\u2309\",\"rcub;\":\"}\",\"Rcy;\":\"\\u0420\",\"rcy;\":\"\\u0440\",\"rdca;\":\"\\u2937\",\"rdldhar;\":\"\\u2969\",\"rdquo;\":\"\\u201d\",\"rdquor;\":\"\\u201d\",\"rdsh;\":\"\\u21b3\",\"real;\":\"\\u211c\",\"realine;\":\"\\u211b\",\"realpart;\":\"\\u211c\",\"reals;\":\"\\u211d\",\"Re;\":\"\\u211c\",\"rect;\":\"\\u25ad\",\"reg;\":\"\\u00ae\",reg:\"\\u00ae\",\"REG;\":\"\\u00ae\",REG:\"\\u00ae\",\"ReverseElement;\":\"\\u220b\",\"ReverseEquilibrium;\":\"\\u21cb\",\"ReverseUpEquilibrium;\":\"\\u296f\",\"rfisht;\":\"\\u297d\",\"rfloor;\":\"\\u230b\",\"rfr;\":\"\\ud835\\udd2f\",\"Rfr;\":\"\\u211c\",\"rHar;\":\"\\u2964\",\"rhard;\":\"\\u21c1\",\"rharu;\":\"\\u21c0\",\"rharul;\":\"\\u296c\",\"Rho;\":\"\\u03a1\",\"rho;\":\"\\u03c1\",\"rhov;\":\"\\u03f1\",\"RightAngleBracket;\":\"\\u27e9\",\"RightArrowBar;\":\"\\u21e5\",\"rightarrow;\":\"\\u2192\",\"RightArrow;\":\"\\u2192\",\"Rightarrow;\":\"\\u21d2\",\"RightArrowLeftArrow;\":\"\\u21c4\",\"rightarrowtail;\":\"\\u21a3\",\"RightCeiling;\":\"\\u2309\",\"RightDoubleBracket;\":\"\\u27e7\",\"RightDownTeeVector;\":\"\\u295d\",\"RightDownVectorBar;\":\"\\u2955\",\"RightDownVector;\":\"\\u21c2\",\"RightFloor;\":\"\\u230b\",\"rightharpoondown;\":\"\\u21c1\",\"rightharpoonup;\":\"\\u21c0\",\"rightleftarrows;\":\"\\u21c4\",\"rightleftharpoons;\":\"\\u21cc\",\"rightrightarrows;\":\"\\u21c9\",\"rightsquigarrow;\":\"\\u219d\",\"RightTeeArrow;\":\"\\u21a6\",\"RightTee;\":\"\\u22a2\",\"RightTeeVector;\":\"\\u295b\",\"rightthreetimes;\":\"\\u22cc\",\"RightTriangleBar;\":\"\\u29d0\",\"RightTriangle;\":\"\\u22b3\",\"RightTriangleEqual;\":\"\\u22b5\",\"RightUpDownVector;\":\"\\u294f\",\"RightUpTeeVector;\":\"\\u295c\",\"RightUpVectorBar;\":\"\\u2954\",\"RightUpVector;\":\"\\u21be\",\"RightVectorBar;\":\"\\u2953\",\"RightVector;\":\"\\u21c0\",\"ring;\":\"\\u02da\",\"risingdotseq;\":\"\\u2253\",\"rlarr;\":\"\\u21c4\",\"rlhar;\":\"\\u21cc\",\"rlm;\":\"\\u200f\",\"rmoustache;\":\"\\u23b1\",\"rmoust;\":\"\\u23b1\",\"rnmid;\":\"\\u2aee\",\"roang;\":\"\\u27ed\",\"roarr;\":\"\\u21fe\",\"robrk;\":\"\\u27e7\",\"ropar;\":\"\\u2986\",\"ropf;\":\"\\ud835\\udd63\",\"Ropf;\":\"\\u211d\",\"roplus;\":\"\\u2a2e\",\"rotimes;\":\"\\u2a35\",\"RoundImplies;\":\"\\u2970\",\"rpar;\":\")\",\"rpargt;\":\"\\u2994\",\"rppolint;\":\"\\u2a12\",\"rrarr;\":\"\\u21c9\",\"Rrightarrow;\":\"\\u21db\",\"rsaquo;\":\"\\u203a\",\"rscr;\":\"\\ud835\\udcc7\",\"Rscr;\":\"\\u211b\",\"rsh;\":\"\\u21b1\",\"Rsh;\":\"\\u21b1\",\"rsqb;\":\"]\",\"rsquo;\":\"\\u2019\",\"rsquor;\":\"\\u2019\",\"rthree;\":\"\\u22cc\",\"rtimes;\":\"\\u22ca\",\"rtri;\":\"\\u25b9\",\"rtrie;\":\"\\u22b5\",\"rtrif;\":\"\\u25b8\",\"rtriltri;\":\"\\u29ce\",\"RuleDelayed;\":\"\\u29f4\",\"ruluhar;\":\"\\u2968\",\"rx;\":\"\\u211e\",\"Sacute;\":\"\\u015a\",\"sacute;\":\"\\u015b\",\"sbquo;\":\"\\u201a\",\"scap;\":\"\\u2ab8\",\"Scaron;\":\"\\u0160\",\"scaron;\":\"\\u0161\",\"Sc;\":\"\\u2abc\",\"sc;\":\"\\u227b\",\"sccue;\":\"\\u227d\",\"sce;\":\"\\u2ab0\",\"scE;\":\"\\u2ab4\",\"Scedil;\":\"\\u015e\",\"scedil;\":\"\\u015f\",\"Scirc;\":\"\\u015c\",\"scirc;\":\"\\u015d\",\"scnap;\":\"\\u2aba\",\"scnE;\":\"\\u2ab6\",\"scnsim;\":\"\\u22e9\",\"scpolint;\":\"\\u2a13\",\"scsim;\":\"\\u227f\",\"Scy;\":\"\\u0421\",\"scy;\":\"\\u0441\",\"sdotb;\":\"\\u22a1\",\"sdot;\":\"\\u22c5\",\"sdote;\":\"\\u2a66\",\"searhk;\":\"\\u2925\",\"searr;\":\"\\u2198\",\"seArr;\":\"\\u21d8\",\"searrow;\":\"\\u2198\",\"sect;\":\"\\u00a7\",sect:\"\\u00a7\",\"semi;\":\";\",\"seswar;\":\"\\u2929\",\"setminus;\":\"\\u2216\",\"setmn;\":\"\\u2216\",\"sext;\":\"\\u2736\",\"Sfr;\":\"\\ud835\\udd16\",\"sfr;\":\"\\ud835\\udd30\",\"sfrown;\":\"\\u2322\",\"sharp;\":\"\\u266f\",\"SHCHcy;\":\"\\u0429\",\"shchcy;\":\"\\u0449\",\"SHcy;\":\"\\u0428\",\"shcy;\":\"\\u0448\",\"ShortDownArrow;\":\"\\u2193\",\"ShortLeftArrow;\":\"\\u2190\",\"shortmid;\":\"\\u2223\",\"shortparallel;\":\"\\u2225\",\"ShortRightArrow;\":\"\\u2192\",\"ShortUpArrow;\":\"\\u2191\",\"shy;\":\"\\u00ad\",shy:\"\\u00ad\",\"Sigma;\":\"\\u03a3\",\"sigma;\":\"\\u03c3\",\"sigmaf;\":\"\\u03c2\",\"sigmav;\":\"\\u03c2\",\"sim;\":\"\\u223c\",\"simdot;\":\"\\u2a6a\",\"sime;\":\"\\u2243\",\"simeq;\":\"\\u2243\",\"simg;\":\"\\u2a9e\",\"simgE;\":\"\\u2aa0\",\"siml;\":\"\\u2a9d\",\"simlE;\":\"\\u2a9f\",\"simne;\":\"\\u2246\",\"simplus;\":\"\\u2a24\",\"simrarr;\":\"\\u2972\",\"slarr;\":\"\\u2190\",\"SmallCircle;\":\"\\u2218\",\"smallsetminus;\":\"\\u2216\",\"smashp;\":\"\\u2a33\",\"smeparsl;\":\"\\u29e4\",\"smid;\":\"\\u2223\",\"smile;\":\"\\u2323\",\"smt;\":\"\\u2aaa\",\"smte;\":\"\\u2aac\",\"smtes;\":\"\\u2aac\\ufe00\",\"SOFTcy;\":\"\\u042c\",\"softcy;\":\"\\u044c\",\"solbar;\":\"\\u233f\",\"solb;\":\"\\u29c4\",\"sol;\":\"/\",\"Sopf;\":\"\\ud835\\udd4a\",\"sopf;\":\"\\ud835\\udd64\",\"spades;\":\"\\u2660\",\"spadesuit;\":\"\\u2660\",\"spar;\":\"\\u2225\",\"sqcap;\":\"\\u2293\",\"sqcaps;\":\"\\u2293\\ufe00\",\"sqcup;\":\"\\u2294\",\"sqcups;\":\"\\u2294\\ufe00\",\"Sqrt;\":\"\\u221a\",\"sqsub;\":\"\\u228f\",\"sqsube;\":\"\\u2291\",\"sqsubset;\":\"\\u228f\",\"sqsubseteq;\":\"\\u2291\",\"sqsup;\":\"\\u2290\",\"sqsupe;\":\"\\u2292\",\"sqsupset;\":\"\\u2290\",\"sqsupseteq;\":\"\\u2292\",\"square;\":\"\\u25a1\",\"Square;\":\"\\u25a1\",\"SquareIntersection;\":\"\\u2293\",\"SquareSubset;\":\"\\u228f\",\"SquareSubsetEqual;\":\"\\u2291\",\"SquareSuperset;\":\"\\u2290\",\"SquareSupersetEqual;\":\"\\u2292\",\"SquareUnion;\":\"\\u2294\",\"squarf;\":\"\\u25aa\",\"squ;\":\"\\u25a1\",\"squf;\":\"\\u25aa\",\"srarr;\":\"\\u2192\",\"Sscr;\":\"\\ud835\\udcae\",\"sscr;\":\"\\ud835\\udcc8\",\"ssetmn;\":\"\\u2216\",\"ssmile;\":\"\\u2323\",\"sstarf;\":\"\\u22c6\",\"Star;\":\"\\u22c6\",\"star;\":\"\\u2606\",\"starf;\":\"\\u2605\",\"straightepsilon;\":\"\\u03f5\",\"straightphi;\":\"\\u03d5\",\"strns;\":\"\\u00af\",\"sub;\":\"\\u2282\",\"Sub;\":\"\\u22d0\",\"subdot;\":\"\\u2abd\",\"subE;\":\"\\u2ac5\",\"sube;\":\"\\u2286\",\"subedot;\":\"\\u2ac3\",\"submult;\":\"\\u2ac1\",\"subnE;\":\"\\u2acb\",\"subne;\":\"\\u228a\",\"subplus;\":\"\\u2abf\",\"subrarr;\":\"\\u2979\",\"subset;\":\"\\u2282\",\"Subset;\":\"\\u22d0\",\"subseteq;\":\"\\u2286\",\"subseteqq;\":\"\\u2ac5\",\"SubsetEqual;\":\"\\u2286\",\"subsetneq;\":\"\\u228a\",\"subsetneqq;\":\"\\u2acb\",\"subsim;\":\"\\u2ac7\",\"subsub;\":\"\\u2ad5\",\"subsup;\":\"\\u2ad3\",\"succapprox;\":\"\\u2ab8\",\"succ;\":\"\\u227b\",\"succcurlyeq;\":\"\\u227d\",\"Succeeds;\":\"\\u227b\",\"SucceedsEqual;\":\"\\u2ab0\",\"SucceedsSlantEqual;\":\"\\u227d\",\"SucceedsTilde;\":\"\\u227f\",\"succeq;\":\"\\u2ab0\",\"succnapprox;\":\"\\u2aba\",\"succneqq;\":\"\\u2ab6\",\"succnsim;\":\"\\u22e9\",\"succsim;\":\"\\u227f\",\"SuchThat;\":\"\\u220b\",\"sum;\":\"\\u2211\",\"Sum;\":\"\\u2211\",\"sung;\":\"\\u266a\",\"sup1;\":\"\\u00b9\",sup1:\"\\u00b9\",\"sup2;\":\"\\u00b2\",sup2:\"\\u00b2\",\"sup3;\":\"\\u00b3\",sup3:\"\\u00b3\",\"sup;\":\"\\u2283\",\"Sup;\":\"\\u22d1\",\"supdot;\":\"\\u2abe\",\"supdsub;\":\"\\u2ad8\",\"supE;\":\"\\u2ac6\",\"supe;\":\"\\u2287\",\"supedot;\":\"\\u2ac4\",\"Superset;\":\"\\u2283\",\"SupersetEqual;\":\"\\u2287\",\"suphsol;\":\"\\u27c9\",\"suphsub;\":\"\\u2ad7\",\"suplarr;\":\"\\u297b\",\"supmult;\":\"\\u2ac2\",\"supnE;\":\"\\u2acc\",\"supne;\":\"\\u228b\",\"supplus;\":\"\\u2ac0\",\"supset;\":\"\\u2283\",\"Supset;\":\"\\u22d1\",\"supseteq;\":\"\\u2287\",\"supseteqq;\":\"\\u2ac6\",\"supsetneq;\":\"\\u228b\",\"supsetneqq;\":\"\\u2acc\",\"supsim;\":\"\\u2ac8\",\"supsub;\":\"\\u2ad4\",\"supsup;\":\"\\u2ad6\",\"swarhk;\":\"\\u2926\",\"swarr;\":\"\\u2199\",\"swArr;\":\"\\u21d9\",\"swarrow;\":\"\\u2199\",\"swnwar;\":\"\\u292a\",\"szlig;\":\"\\u00df\",szlig:\"\\u00df\",\"Tab;\":\"\t\",\"target;\":\"\\u2316\",\"Tau;\":\"\\u03a4\",\"tau;\":\"\\u03c4\",\"tbrk;\":\"\\u23b4\",\"Tcaron;\":\"\\u0164\",\"tcaron;\":\"\\u0165\",\"Tcedil;\":\"\\u0162\",\"tcedil;\":\"\\u0163\",\"Tcy;\":\"\\u0422\",\"tcy;\":\"\\u0442\",\"tdot;\":\"\\u20db\",\"telrec;\":\"\\u2315\",\"Tfr;\":\"\\ud835\\udd17\",\"tfr;\":\"\\ud835\\udd31\",\"there4;\":\"\\u2234\",\"therefore;\":\"\\u2234\",\"Therefore;\":\"\\u2234\",\"Theta;\":\"\\u0398\",\"theta;\":\"\\u03b8\",\"thetasym;\":\"\\u03d1\",\"thetav;\":\"\\u03d1\",\"thickapprox;\":\"\\u2248\",\"thicksim;\":\"\\u223c\",\"ThickSpace;\":\"\\u205f\\u200a\",\"ThinSpace;\":\"\\u2009\",\"thinsp;\":\"\\u2009\",\"thkap;\":\"\\u2248\",\"thksim;\":\"\\u223c\",\"THORN;\":\"\\u00de\",THORN:\"\\u00de\",\"thorn;\":\"\\u00fe\",thorn:\"\\u00fe\",\"tilde;\":\"\\u02dc\",\"Tilde;\":\"\\u223c\",\"TildeEqual;\":\"\\u2243\",\"TildeFullEqual;\":\"\\u2245\",\"TildeTilde;\":\"\\u2248\",\"timesbar;\":\"\\u2a31\",\"timesb;\":\"\\u22a0\",\"times;\":\"\\u00d7\",times:\"\\u00d7\",\"timesd;\":\"\\u2a30\",\"tint;\":\"\\u222d\",\"toea;\":\"\\u2928\",\"topbot;\":\"\\u2336\",\"topcir;\":\"\\u2af1\",\"top;\":\"\\u22a4\",\"Topf;\":\"\\ud835\\udd4b\",\"topf;\":\"\\ud835\\udd65\",\"topfork;\":\"\\u2ada\",\"tosa;\":\"\\u2929\",\"tprime;\":\"\\u2034\",\"trade;\":\"\\u2122\",\"TRADE;\":\"\\u2122\",\"triangle;\":\"\\u25b5\",\"triangledown;\":\"\\u25bf\",\"triangleleft;\":\"\\u25c3\",\"trianglelefteq;\":\"\\u22b4\",\"triangleq;\":\"\\u225c\",\"triangleright;\":\"\\u25b9\",\"trianglerighteq;\":\"\\u22b5\",\"tridot;\":\"\\u25ec\",\"trie;\":\"\\u225c\",\"triminus;\":\"\\u2a3a\",\"TripleDot;\":\"\\u20db\",\"triplus;\":\"\\u2a39\",\"trisb;\":\"\\u29cd\",\"tritime;\":\"\\u2a3b\",\"trpezium;\":\"\\u23e2\",\"Tscr;\":\"\\ud835\\udcaf\",\"tscr;\":\"\\ud835\\udcc9\",\"TScy;\":\"\\u0426\",\"tscy;\":\"\\u0446\",\"TSHcy;\":\"\\u040b\",\"tshcy;\":\"\\u045b\",\"Tstrok;\":\"\\u0166\",\"tstrok;\":\"\\u0167\",\"twixt;\":\"\\u226c\",\"twoheadleftarrow;\":\"\\u219e\",\"twoheadrightarrow;\":\"\\u21a0\",\"Uacute;\":\"\\u00da\",Uacute:\"\\u00da\",\"uacute;\":\"\\u00fa\",uacute:\"\\u00fa\",\"uarr;\":\"\\u2191\",\"Uarr;\":\"\\u219f\",\"uArr;\":\"\\u21d1\",\"Uarrocir;\":\"\\u2949\",\"Ubrcy;\":\"\\u040e\",\"ubrcy;\":\"\\u045e\",\"Ubreve;\":\"\\u016c\",\"ubreve;\":\"\\u016d\",\"Ucirc;\":\"\\u00db\",Ucirc:\"\\u00db\",\"ucirc;\":\"\\u00fb\",ucirc:\"\\u00fb\",\"Ucy;\":\"\\u0423\",\"ucy;\":\"\\u0443\",\"udarr;\":\"\\u21c5\",\"Udblac;\":\"\\u0170\",\"udblac;\":\"\\u0171\",\"udhar;\":\"\\u296e\",\"ufisht;\":\"\\u297e\",\"Ufr;\":\"\\ud835\\udd18\",\"ufr;\":\"\\ud835\\udd32\",\"Ugrave;\":\"\\u00d9\",Ugrave:\"\\u00d9\",\"ugrave;\":\"\\u00f9\",ugrave:\"\\u00f9\",\"uHar;\":\"\\u2963\",\"uharl;\":\"\\u21bf\",\"uharr;\":\"\\u21be\",\"uhblk;\":\"\\u2580\",\"ulcorn;\":\"\\u231c\",\"ulcorner;\":\"\\u231c\",\"ulcrop;\":\"\\u230f\",\"ultri;\":\"\\u25f8\",\"Umacr;\":\"\\u016a\",\"umacr;\":\"\\u016b\",\"uml;\":\"\\u00a8\",uml:\"\\u00a8\",\"UnderBar;\":\"_\",\"UnderBrace;\":\"\\u23df\",\"UnderBracket;\":\"\\u23b5\",\"UnderParenthesis;\":\"\\u23dd\",\"Union;\":\"\\u22c3\",\"UnionPlus;\":\"\\u228e\",\"Uogon;\":\"\\u0172\",\"uogon;\":\"\\u0173\",\"Uopf;\":\"\\ud835\\udd4c\",\"uopf;\":\"\\ud835\\udd66\",\"UpArrowBar;\":\"\\u2912\",\"uparrow;\":\"\\u2191\",\"UpArrow;\":\"\\u2191\",\"Uparrow;\":\"\\u21d1\",\"UpArrowDownArrow;\":\"\\u21c5\",\"updownarrow;\":\"\\u2195\",\"UpDownArrow;\":\"\\u2195\",\"Updownarrow;\":\"\\u21d5\",\"UpEquilibrium;\":\"\\u296e\",\"upharpoonleft;\":\"\\u21bf\",\"upharpoonright;\":\"\\u21be\",\"uplus;\":\"\\u228e\",\"UpperLeftArrow;\":\"\\u2196\",\"UpperRightArrow;\":\"\\u2197\",\"upsi;\":\"\\u03c5\",\"Upsi;\":\"\\u03d2\",\"upsih;\":\"\\u03d2\",\"Upsilon;\":\"\\u03a5\",\"upsilon;\":\"\\u03c5\",\"UpTeeArrow;\":\"\\u21a5\",\"UpTee;\":\"\\u22a5\",\"upuparrows;\":\"\\u21c8\",\"urcorn;\":\"\\u231d\",\"urcorner;\":\"\\u231d\",\"urcrop;\":\"\\u230e\",\"Uring;\":\"\\u016e\",\"uring;\":\"\\u016f\",\"urtri;\":\"\\u25f9\",\"Uscr;\":\"\\ud835\\udcb0\",\"uscr;\":\"\\ud835\\udcca\",\"utdot;\":\"\\u22f0\",\"Utilde;\":\"\\u0168\",\"utilde;\":\"\\u0169\",\"utri;\":\"\\u25b5\",\"utrif;\":\"\\u25b4\",\"uuarr;\":\"\\u21c8\",\"Uuml;\":\"\\u00dc\",Uuml:\"\\u00dc\",\"uuml;\":\"\\u00fc\",uuml:\"\\u00fc\",\"uwangle;\":\"\\u29a7\",\"vangrt;\":\"\\u299c\",\"varepsilon;\":\"\\u03f5\",\"varkappa;\":\"\\u03f0\",\"varnothing;\":\"\\u2205\",\"varphi;\":\"\\u03d5\",\"varpi;\":\"\\u03d6\",\"varpropto;\":\"\\u221d\",\"varr;\":\"\\u2195\",\"vArr;\":\"\\u21d5\",\"varrho;\":\"\\u03f1\",\"varsigma;\":\"\\u03c2\",\"varsubsetneq;\":\"\\u228a\\ufe00\",\"varsubsetneqq;\":\"\\u2acb\\ufe00\",\"varsupsetneq;\":\"\\u228b\\ufe00\",\"varsupsetneqq;\":\"\\u2acc\\ufe00\",\"vartheta;\":\"\\u03d1\",\"vartriangleleft;\":\"\\u22b2\",\"vartriangleright;\":\"\\u22b3\",\"vBar;\":\"\\u2ae8\",\"Vbar;\":\"\\u2aeb\",\"vBarv;\":\"\\u2ae9\",\"Vcy;\":\"\\u0412\",\"vcy;\":\"\\u0432\",\"vdash;\":\"\\u22a2\",\"vDash;\":\"\\u22a8\",\"Vdash;\":\"\\u22a9\",\"VDash;\":\"\\u22ab\",\"Vdashl;\":\"\\u2ae6\",\"veebar;\":\"\\u22bb\",\"vee;\":\"\\u2228\",\"Vee;\":\"\\u22c1\",\"veeeq;\":\"\\u225a\",\"vellip;\":\"\\u22ee\",\"verbar;\":\"|\",\"Verbar;\":\"\\u2016\",\"vert;\":\"|\",\"Vert;\":\"\\u2016\",\"VerticalBar;\":\"\\u2223\",\"VerticalLine;\":\"|\",\"VerticalSeparator;\":\"\\u2758\",\"VerticalTilde;\":\"\\u2240\",\"VeryThinSpace;\":\"\\u200a\",\"Vfr;\":\"\\ud835\\udd19\",\"vfr;\":\"\\ud835\\udd33\",\"vltri;\":\"\\u22b2\",\"vnsub;\":\"\\u2282\\u20d2\",\"vnsup;\":\"\\u2283\\u20d2\",\"Vopf;\":\"\\ud835\\udd4d\",\"vopf;\":\"\\ud835\\udd67\",\"vprop;\":\"\\u221d\",\"vrtri;\":\"\\u22b3\",\"Vscr;\":\"\\ud835\\udcb1\",\"vscr;\":\"\\ud835\\udccb\",\"vsubnE;\":\"\\u2acb\\ufe00\",\"vsubne;\":\"\\u228a\\ufe00\",\"vsupnE;\":\"\\u2acc\\ufe00\",\"vsupne;\":\"\\u228b\\ufe00\",\"Vvdash;\":\"\\u22aa\",\"vzigzag;\":\"\\u299a\",\"Wcirc;\":\"\\u0174\",\"wcirc;\":\"\\u0175\",\"wedbar;\":\"\\u2a5f\",\"wedge;\":\"\\u2227\",\"Wedge;\":\"\\u22c0\",\"wedgeq;\":\"\\u2259\",\"weierp;\":\"\\u2118\",\"Wfr;\":\"\\ud835\\udd1a\",\"wfr;\":\"\\ud835\\udd34\",\"Wopf;\":\"\\ud835\\udd4e\",\"wopf;\":\"\\ud835\\udd68\",\"wp;\":\"\\u2118\",\"wr;\":\"\\u2240\",\"wreath;\":\"\\u2240\",\"Wscr;\":\"\\ud835\\udcb2\",\"wscr;\":\"\\ud835\\udccc\",\"xcap;\":\"\\u22c2\",\"xcirc;\":\"\\u25ef\",\"xcup;\":\"\\u22c3\",\"xdtri;\":\"\\u25bd\",\"Xfr;\":\"\\ud835\\udd1b\",\"xfr;\":\"\\ud835\\udd35\",\"xharr;\":\"\\u27f7\",\"xhArr;\":\"\\u27fa\",\"Xi;\":\"\\u039e\",\"xi;\":\"\\u03be\",\"xlarr;\":\"\\u27f5\",\"xlArr;\":\"\\u27f8\",\"xmap;\":\"\\u27fc\",\"xnis;\":\"\\u22fb\",\"xodot;\":\"\\u2a00\",\"Xopf;\":\"\\ud835\\udd4f\",\"xopf;\":\"\\ud835\\udd69\",\"xoplus;\":\"\\u2a01\",\"xotime;\":\"\\u2a02\",\"xrarr;\":\"\\u27f6\",\"xrArr;\":\"\\u27f9\",\"Xscr;\":\"\\ud835\\udcb3\",\"xscr;\":\"\\ud835\\udccd\",\"xsqcup;\":\"\\u2a06\",\"xuplus;\":\"\\u2a04\",\"xutri;\":\"\\u25b3\",\"xvee;\":\"\\u22c1\",\"xwedge;\":\"\\u22c0\",\"Yacute;\":\"\\u00dd\",Yacute:\"\\u00dd\",\"yacute;\":\"\\u00fd\",yacute:\"\\u00fd\",\"YAcy;\":\"\\u042f\",\"yacy;\":\"\\u044f\",\"Ycirc;\":\"\\u0176\",\"ycirc;\":\"\\u0177\",\"Ycy;\":\"\\u042b\",\"ycy;\":\"\\u044b\",\"yen;\":\"\\u00a5\",yen:\"\\u00a5\",\"Yfr;\":\"\\ud835\\udd1c\",\"yfr;\":\"\\ud835\\udd36\",\"YIcy;\":\"\\u0407\",\"yicy;\":\"\\u0457\",\"Yopf;\":\"\\ud835\\udd50\",\"yopf;\":\"\\ud835\\udd6a\",\"Yscr;\":\"\\ud835\\udcb4\",\"yscr;\":\"\\ud835\\udcce\",\"YUcy;\":\"\\u042e\",\"yucy;\":\"\\u044e\",\"yuml;\":\"\\u00ff\",yuml:\"\\u00ff\",\"Yuml;\":\"\\u0178\",\"Zacute;\":\"\\u0179\",\"zacute;\":\"\\u017a\",\"Zcaron;\":\"\\u017d\",\"zcaron;\":\"\\u017e\",\"Zcy;\":\"\\u0417\",\"zcy;\":\"\\u0437\",\"Zdot;\":\"\\u017b\",\"zdot;\":\"\\u017c\",\"zeetrf;\":\"\\u2128\",\"ZeroWidthSpace;\":\"\\u200b\",\"Zeta;\":\"\\u0396\",\"zeta;\":\"\\u03b6\",\"zfr;\":\"\\ud835\\udd37\",\"Zfr;\":\"\\u2128\",\"ZHcy;\":\"\\u0416\",\"zhcy;\":\"\\u0436\",\"zigrarr;\":\"\\u21dd\",\"zopf;\":\"\\ud835\\udd6b\",\"Zopf;\":\"\\u2124\",\"Zscr;\":\"\\ud835\\udcb5\",\"zscr;\":\"\\ud835\\udccf\",\"zwj;\":\"\\u200d\",\"zwnj;\":\"\\u200c\"}},{}],13:[function(e,t,n){function u(e,t){return r.isUndefined(t)?\"\"+t:r.isNumber(t)&&(isNaN(t)||!isFinite(t))?t.toString():r.isFunction(t)||r.isRegExp(t)?t.toString():t}function a(e,t){return r.isString(e)?e.length<t?e:e.slice(0,t):e}function f(e){return a(JSON.stringify(e.actual,u),128)+\" \"+e.operator+\" \"+a(JSON.stringify(e.expected,u),128)}function l(e,t,n,r,i){throw new o.AssertionError({message:n,actual:e,expected:t,operator:r,stackStartFunction:i})}function c(e,t){e||l(e,!0,t,\"==\",o.ok)}function h(e,t){if(e===t)return!0;if(r.isBuffer(e)&&r.isBuffer(t)){if(e.length!=t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return r.isDate(e)&&r.isDate(t)?e.getTime()===t.getTime():r.isRegExp(e)&&r.isRegExp(t)?e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.lastIndex===t.lastIndex&&e.ignoreCase===t.ignoreCase:!r.isObject(e)&&!r.isObject(t)?e==t:d(e,t)}function p(e){return Object.prototype.toString.call(e)==\"[object Arguments]\"}function d(e,t){if(r.isNullOrUndefined(e)||r.isNullOrUndefined(t))return!1;if(e.prototype!==t.prototype)return!1;if(p(e))return p(t)?(e=i.call(e),t=i.call(t),h(e,t)):!1;try{var n=g(e),s=g(t),o,u}catch(a){return!1}if(n.length!=s.length)return!1;n.sort(),s.sort();for(u=n.length-1;u>=0;u--)if(n[u]!=s[u])return!1;for(u=n.length-1;u>=0;u--){o=n[u];if(!h(e[o],t[o]))return!1}return!0}function v(e,t){return!e||!t?!1:Object.prototype.toString.call(t)==\"[object RegExp]\"?t.test(e):e instanceof t?!0:t.call({},e)===!0?!0:!1}function m(e,t,n,i){var s;r.isString(n)&&(i=n,n=null);try{t()}catch(o){s=o}i=(n&&n.name?\" (\"+n.name+\").\":\".\")+(i?\" \"+i:\".\"),e&&!s&&l(s,n,\"Missing expected exception\"+i),!e&&v(s,n)&&l(s,n,\"Got unwanted exception\"+i);if(e&&s&&n&&!v(s,n)||!e&&s)throw s}var r=e(\"util/\"),i=Array.prototype.slice,s=Object.prototype.hasOwnProperty,o=t.exports=c;o.AssertionError=function(t){this.name=\"AssertionError\",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=f(this),this.generatedMessage=!0);var n=t.stackStartFunction||l;if(Error.captureStackTrace)Error.captureStackTrace(this,n);else{var r=new Error;if(r.stack){var i=r.stack,s=n.name,o=i.indexOf(\"\\n\"+s);if(o>=0){var u=i.indexOf(\"\\n\",o+1);i=i.substring(u+1)}this.stack=i}}},r.inherits(o.AssertionError,Error),o.fail=l,o.ok=c,o.equal=function(t,n,r){t!=n&&l(t,n,r,\"==\",o.equal)},o.notEqual=function(t,n,r){t==n&&l(t,n,r,\"!=\",o.notEqual)},o.deepEqual=function(t,n,r){h(t,n)||l(t,n,r,\"deepEqual\",o.deepEqual)},o.notDeepEqual=function(t,n,r){h(t,n)&&l(t,n,r,\"notDeepEqual\",o.notDeepEqual)},o.strictEqual=function(t,n,r){t!==n&&l(t,n,r,\"===\",o.strictEqual)},o.notStrictEqual=function(t,n,r){t===n&&l(t,n,r,\"!==\",o.notStrictEqual)},o.throws=function(e,t,n){m.apply(this,[!0].concat(i.call(arguments)))},o.doesNotThrow=function(e,t){m.apply(this,[!1].concat(i.call(arguments)))},o.ifError=function(e){if(e)throw e};var g=Object.keys||function(e){var t=[];for(var n in e)s.call(e,n)&&t.push(n);return t}},{\"util/\":15}],14:[function(e,t,n){t.exports=function(t){return t&&typeof t==\"object\"&&typeof t.copy==\"function\"&&typeof t.fill==\"function\"&&typeof t.readUInt8==\"function\"}},{}],15:[function(e,t,n){(function(t,r){function u(e,t){var r={seen:[],stylize:f};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),y(t)?r.showHidden=t:t&&n._extend(r,t),T(r.showHidden)&&(r.showHidden=!1),T(r.depth)&&(r.depth=2),T(r.colors)&&(r.colors=!1),T(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=a),c(r,e,r.depth)}function a(e,t){var n=u.styles[t];return n?\"\u001b[\"+u.colors[n][0]+\"m\"+e+\"\u001b[\"+u.colors[n][1]+\"m\":e}function f(e,t){return e}function l(e){var t={};return e.forEach(function(e,n){t[e]=!0}),t}function c(e,t,r){if(e.customInspect&&t&&A(t.inspect)&&t.inspect!==n.inspect&&(!t.constructor||t.constructor.prototype!==t)){var i=t.inspect(r,e);return S(i)||(i=c(e,i,r)),i}var s=h(e,t);if(s)return s;var o=Object.keys(t),u=l(o);e.showHidden&&(o=Object.getOwnPropertyNames(t));if(L(t)&&(o.indexOf(\"message\")>=0||o.indexOf(\"description\")>=0))return p(t);if(o.length===0){if(A(t)){var a=t.name?\": \"+t.name:\"\";return e.stylize(\"[Function\"+a+\"]\",\"special\")}if(N(t))return e.stylize(RegExp.prototype.toString.call(t),\"regexp\");if(k(t))return e.stylize(Date.prototype.toString.call(t),\"date\");if(L(t))return p(t)}var f=\"\",y=!1,b=[\"{\",\"}\"];g(t)&&(y=!0,b=[\"[\",\"]\"]);if(A(t)){var w=t.name?\": \"+t.name:\"\";f=\" [Function\"+w+\"]\"}N(t)&&(f=\" \"+RegExp.prototype.toString.call(t)),k(t)&&(f=\" \"+Date.prototype.toUTCString.call(t)),L(t)&&(f=\" \"+p(t));if(o.length!==0||!!y&&t.length!=0){if(r<0)return N(t)?e.stylize(RegExp.prototype.toString.call(t),\"regexp\"):e.stylize(\"[Object]\",\"special\");e.seen.push(t);var E;return y?E=d(e,t,r,u,o):E=o.map(function(n){return v(e,t,r,u,n,y)}),e.seen.pop(),m(E,f,b)}return b[0]+f+b[1]}function h(e,t){if(T(t))return e.stylize(\"undefined\",\"undefined\");if(S(t)){var n=\"'\"+JSON.stringify(t).replace(/^\"|\"$/g,\"\").replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"')+\"'\";return e.stylize(n,\"string\")}if(E(t))return e.stylize(\"\"+t,\"number\");if(y(t))return e.stylize(\"\"+t,\"boolean\");if(b(t))return e.stylize(\"null\",\"null\")}function p(e){return\"[\"+Error.prototype.toString.call(e)+\"]\"}function d(e,t,n,r,i){var s=[];for(var o=0,u=t.length;o<u;++o)H(t,String(o))?s.push(v(e,t,n,r,String(o),!0)):s.push(\"\");return i.forEach(function(i){i.match(/^\\d+$/)||s.push(v(e,t,n,r,i,!0))}),s}function v(e,t,n,r,i,s){var o,u,a;a=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]},a.get?a.set?u=e.stylize(\"[Getter/Setter]\",\"special\"):u=e.stylize(\"[Getter]\",\"special\"):a.set&&(u=e.stylize(\"[Setter]\",\"special\")),H(r,i)||(o=\"[\"+i+\"]\"),u||(e.seen.indexOf(a.value)<0?(b(n)?u=c(e,a.value,null):u=c(e,a.value,n-1),u.indexOf(\"\\n\")>-1&&(s?u=u.split(\"\\n\").map(function(e){return\"  \"+e}).join(\"\\n\").substr(2):u=\"\\n\"+u.split(\"\\n\").map(function(e){return\"   \"+e}).join(\"\\n\"))):u=e.stylize(\"[Circular]\",\"special\"));if(T(o)){if(s&&i.match(/^\\d+$/))return u;o=JSON.stringify(\"\"+i),o.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,\"name\")):(o=o.replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"').replace(/(^\"|\"$)/g,\"'\"),o=e.stylize(o,\"string\"))}return o+\": \"+u}function m(e,t,n){var r=0,i=e.reduce(function(e,t){return r++,t.indexOf(\"\\n\")>=0&&r++,e+t.replace(/\\u001b\\[\\d\\d?m/g,\"\").length+1},0);return i>60?n[0]+(t===\"\"?\"\":t+\"\\n \")+\" \"+e.join(\",\\n  \")+\" \"+n[1]:n[0]+t+\" \"+e.join(\", \")+\" \"+n[1]}function g(e){return Array.isArray(e)}function y(e){return typeof e==\"boolean\"}function b(e){return e===null}function w(e){return e==null}function E(e){return typeof e==\"number\"}function S(e){return typeof e==\"string\"}function x(e){return typeof e==\"symbol\"}function T(e){return e===void 0}function N(e){return C(e)&&M(e)===\"[object RegExp]\"}function C(e){return typeof e==\"object\"&&e!==null}function k(e){return C(e)&&M(e)===\"[object Date]\"}function L(e){return C(e)&&(M(e)===\"[object Error]\"||e instanceof Error)}function A(e){return typeof e==\"function\"}function O(e){return e===null||typeof e==\"boolean\"||typeof e==\"number\"||typeof e==\"string\"||typeof e==\"symbol\"||typeof e==\"undefined\"}function M(e){return Object.prototype.toString.call(e)}function _(e){return e<10?\"0\"+e.toString(10):e.toString(10)}function P(){var e=new Date,t=[_(e.getHours()),_(e.getMinutes()),_(e.getSeconds())].join(\":\");return[e.getDate(),D[e.getMonth()],t].join(\" \")}function H(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var i=/%[sdj%]/g;n.format=function(e){if(!S(e)){var t=[];for(var n=0;n<arguments.length;n++)t.push(u(arguments[n]));return t.join(\" \")}var n=1,r=arguments,s=r.length,o=String(e).replace(i,function(e){if(e===\"%%\")return\"%\";if(n>=s)return e;switch(e){case\"%s\":return String(r[n++]);case\"%d\":return Number(r[n++]);case\"%j\":try{return JSON.stringify(r[n++])}catch(t){return\"[Circular]\"};default:return e}});for(var a=r[n];n<s;a=r[++n])b(a)||!C(a)?o+=\" \"+a:o+=\" \"+u(a);return o},n.deprecate=function(e,i){function o(){if(!s){if(t.throwDeprecation)throw new Error(i);t.traceDeprecation?console.trace(i):console.error(i),s=!0}return e.apply(this,arguments)}if(T(r.process))return function(){return n.deprecate(e,i).apply(this,arguments)};if(t.noDeprecation===!0)return e;var s=!1;return o};var s={},o;n.debuglog=function(e){T(o)&&(o=t.env.NODE_DEBUG||\"\"),e=e.toUpperCase();if(!s[e])if((new RegExp(\"\\\\b\"+e+\"\\\\b\",\"i\")).test(o)){var r=t.pid;s[e]=function(){var t=n.format.apply(n,arguments);console.error(\"%s %d: %s\",e,r,t)}}else s[e]=function(){};return s[e]},n.inspect=u,u.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},u.styles={special:\"cyan\",number:\"yellow\",\"boolean\":\"yellow\",\"undefined\":\"grey\",\"null\":\"bold\",string:\"green\",date:\"magenta\",regexp:\"red\"},n.isArray=g,n.isBoolean=y,n.isNull=b,n.isNullOrUndefined=w,n.isNumber=E,n.isString=S,n.isSymbol=x,n.isUndefined=T,n.isRegExp=N,n.isObject=C,n.isDate=k,n.isError=L,n.isFunction=A,n.isPrimitive=O,n.isBuffer=e(\"./support/isBuffer\");var D=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];n.log=function(){console.log(\"%s - %s\",P(),n.format.apply(n,arguments))},n.inherits=e(\"inherits\"),n._extend=function(e,t){if(!t||!C(t))return e;var n=Object.keys(t),r=n.length;while(r--)e[n[r]]=t[n[r]];return e}}).call(this,e(\"/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js\"),typeof self!=\"undefined\"?self:typeof window!=\"undefined\"?window:{})},{\"./support/isBuffer\":14,\"/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js\":18,inherits:17}],16:[function(e,t,n){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||undefined}function i(e){return typeof e==\"function\"}function s(e){return typeof e==\"number\"}function o(e){return typeof e==\"object\"&&e!==null}function u(e){return e===void 0}t.exports=r,r.EventEmitter=r,r.prototype._events=undefined,r.prototype._maxListeners=undefined,r.defaultMaxListeners=10,r.prototype.setMaxListeners=function(e){if(!s(e)||e<0||isNaN(e))throw TypeError(\"n must be a positive number\");return this._maxListeners=e,this},r.prototype.emit=function(e){var t,n,r,s,a,f;this._events||(this._events={});if(e===\"error\")if(!this._events.error||o(this._events.error)&&!this._events.error.length)throw t=arguments[1],t instanceof Error?t:TypeError('Uncaught, unspecified \"error\" event.');n=this._events[e];if(u(n))return!1;if(i(n))switch(arguments.length){case 1:n.call(this);break;case 2:n.call(this,arguments[1]);break;case 3:n.call(this,arguments[1],arguments[2]);break;default:r=arguments.length,s=new Array(r-1);for(a=1;a<r;a++)s[a-1]=arguments[a];n.apply(this,s)}else if(o(n)){r=arguments.length,s=new Array(r-1);for(a=1;a<r;a++)s[a-1]=arguments[a];f=n.slice(),r=f.length;for(a=0;a<r;a++)f[a].apply(this,s)}return!0},r.prototype.addListener=function(e,t){var n;if(!i(t))throw TypeError(\"listener must be a function\");this._events||(this._events={}),this._events.newListener&&this.emit(\"newListener\",e,i(t.listener)?t.listener:t),this._events[e]?o(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t;if(o(this._events[e])&&!this._events[e].warned){var n;u(this._maxListeners)?n=r.defaultMaxListeners:n=this._maxListeners,n&&n>0&&this._events[e].length>n&&(this._events[e].warned=!0,console.error(\"(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.\",this._events[e].length),console.trace())}return this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function r(){this.removeListener(e,r),n||(n=!0,t.apply(this,arguments))}if(!i(t))throw TypeError(\"listener must be a function\");var n=!1;return r.listener=t,this.on(e,r),this},r.prototype.removeListener=function(e,t){var n,r,s,u;if(!i(t))throw TypeError(\"listener must be a function\");if(!this._events||!this._events[e])return this;n=this._events[e],s=n.length,r=-1;if(n===t||i(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit(\"removeListener\",e,t);else if(o(n)){for(u=s;u-->0;)if(n[u]===t||n[u].listener&&n[u].listener===t){r=u;break}if(r<0)return this;n.length===1?(n.length=0,delete this._events[e]):n.splice(r,1),this._events.removeListener&&this.emit(\"removeListener\",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return arguments.length===0?this._events={}:this._events[e]&&delete this._events[e],this;if(arguments.length===0){for(t in this._events){if(t===\"removeListener\")continue;this.removeAllListeners(t)}return this.removeAllListeners(\"removeListener\"),this._events={},this}n=this._events[e];if(i(n))this.removeListener(e,n);else while(n.length)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){var t;return!this._events||!this._events[e]?t=[]:i(this._events[e])?t=[this._events[e]]:t=this._events[e].slice(),t},r.listenerCount=function(e,t){var n;return!e._events||!e._events[t]?n=0:i(e._events[t])?n=1:n=e._events[t].length,n}},{}],17:[function(e,t,n){typeof Object.create==\"function\"?t.exports=function(t,n){t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(t,n){t.super_=n;var r=function(){};r.prototype=n.prototype,t.prototype=new r,t.prototype.constructor=t}},{}],18:[function(e,t,n){function i(){}var r=t.exports={};r.nextTick=function(){var e=typeof window!=\"undefined\"&&window.setImmediate,t=typeof window!=\"undefined\"&&window.postMessage&&window.addEventListener;if(e)return function(e){return window.setImmediate(e)};if(t){var n=[];return window.addEventListener(\"message\",function(e){var t=e.source;if((t===window||t===null)&&e.data===\"process-tick\"){e.stopPropagation();if(n.length>0){var r=n.shift();r()}}},!0),function(t){n.push(t),window.postMessage(\"process-tick\",\"*\")}}return function(t){setTimeout(t,0)}}(),r.title=\"browser\",r.browser=!0,r.env={},r.argv=[],r.on=i,r.once=i,r.off=i,r.emit=i,r.binding=function(e){throw new Error(\"process.binding is not supported\")},r.cwd=function(){return\"/\"},r.chdir=function(e){throw new Error(\"process.chdir is not supported\")}},{}],19:[function(e,t,n){t.exports=e(14)},{}],20:[function(e,t,n){t.exports=e(15)},{\"./support/isBuffer\":19,\"/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js\":18,inherits:17}]},{},[9])(9)}),ace.define(\"ace/mode/html_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/worker/mirror\",\"ace/mode/html/saxparser\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"../worker/mirror\").Mirror,o=e(\"./html/saxparser\").SAXParser,u={\"expected-doctype-but-got-start-tag\":\"info\",\"expected-doctype-but-got-chars\":\"info\",\"non-html-root\":\"info\"},a=t.Worker=function(e){s.call(this,e),this.setTimeout(400),this.context=null};r.inherits(a,s),function(){this.setOptions=function(e){this.context=e.context},this.onUpdate=function(){var e=this.doc.getValue();if(!e)return;var t=new o,n=[],r=function(){};t.contentHandler={startDocument:r,endDocument:r,startElement:r,endElement:r,characters:r},t.errorHandler={error:function(e,t,r){n.push({row:t.line,column:t.column,text:e,type:u[r]||\"error\"})}},this.context?t.parseFragment(e,this.context):t.parse(e),this.sender.emit(\"error\",n)}}.call(a.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,\"sentinel\",{}),\"sentinel\"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t===\"undefined\"||t===\"boolean\"||t===\"number\"||t===\"string\"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n==\"function\"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r==\"function\"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!=\"function\")throw new TypeError(\"Function.prototype.bind called on incompatible \"+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,\"__defineGetter__\"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,\"XXX\"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)==\"[object Array]\"});var m=Object(\"a\"),g=m[0]!=\"a\"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduce of empty array with no initial value\");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError(\"reduce of empty array with no initial value\")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduceRight of empty array with no initial value\");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError(\"reduceRight of empty array with no initial value\")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!=\"object\")throw new TypeError(\"typeof prototype[\"+typeof t+\"] != 'object'\");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document==\"undefined\"||w(document.createElement(\"div\"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T=\"Property description must be an object: \",N=\"Object.defineProperty called on non-object: \",C=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(t,n,r){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(N+t);if(typeof r!=\"object\"&&typeof r!=\"function\"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,\"value\"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,\"get\")&&l(t,n,r.get),f(r,\"set\")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n==\"function\"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n=\"\";while(f(t,n))n+=\"?\";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!=\"object\"&&typeof e!=\"function\"||e===null)throw new TypeError(\"Object.keys called on a non-object\");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=\"\t\\n\u000b\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\";if(!String.prototype.trim||_.trim()){_=\"[\"+_+\"]\";var D=new RegExp(\"^\"+_+_+\"*\"),P=new RegExp(_+_+\"*$\");String.prototype.trim=function(){return String(this).replace(D,\"\").replace(P,\"\")}}var F=function(e){if(e==null)throw new TypeError(\"can't convert \"+e+\" to object\");return Object(e)}})"
  },
  {
    "path": "lib/src-min-noconflict-old/worker-javascript.js",
    "content": "\"no use strict\";(function(e){function t(e,t){var n=e,r=\"\";while(n){var i=t[n];if(typeof i==\"string\")return i+r;if(i)return i.location.replace(/\\/*$/,\"/\")+(r||i.main||i.name);if(i===!1)return\"\";var s=n.lastIndexOf(\"/\");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!=\"undefined\"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:\"error\",data:{message:e,data:i.data,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf(\"!\")!==-1){var r=n.split(\"!\");return e.normalizeModule(t,r[0])+\"!\"+e.normalizeModule(t,r[1])}if(n.charAt(0)==\".\"){var i=t.split(\"/\").slice(0,-1).join(\"/\");n=(i?i+\"/\":\"\")+n;while(n.indexOf(\".\")!==-1&&s!=n){var s=n;n=n.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log(\"unable to load \"+i);var o=t(i,e.require.tlns);return o.slice(-3)!=\".js\"&&(o+=\".js\"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!=\"string\"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!=\"function\"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=[\"require\",\"exports\",\"module\"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case\"require\":return i;case\"exports\":return e.exports;case\"module\":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},require.tlns={},e.initBaseUrls=function(t){for(var n in t)require.tlns[n]=t[n]},e.initSender=function(){var n=e.require(\"ace/lib/event_emitter\").EventEmitter,r=e.require(\"ace/lib/oop\"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:\"call\",id:t,data:e})},this.emit=function(e,t){postMessage({type:\"event\",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error(\"Unknown command:\"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),require(\"ace/lib/es5-shim\"),r=e.sender=e.initSender();var s=require(i.module)[i.classname];n=e.main=new s(r)}}})(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e==\"object\"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e==\"object\"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e,t){throw console.log(\"Invalid Delta:\",e),\"Invalid Delta: \"+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!=\"insert\"&&t.action!=\"remove\"&&r(t,\"delta.action must be 'insert' or 'remove'\"),t.lines instanceof Array||r(t,\"delta.lines must be an Array\"),(!t.start||!t.end)&&r(t,\"delta.start/end must be an present\");var n=t.start;i(e,t.start)||r(t,\"delta.start must be contained in document\");var s=t.end;t.action==\"remove\"&&!i(e,s)&&r(t,\"delta.end must contained in document for 'remove' actions\");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,\"delta.range must match delta lines\")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||\"\";switch(t.action){case\"insert\":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case\"remove\":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!=\"object\"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?\"unshift\":\"push\"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n==\"undefined\"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action==\"insert\",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal(\"change\",{old:i,value:r})},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./apply_delta\").applyDelta,s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=function(e){this.$lines=[\"\"],e.length===0?this.$lines=[\"\"]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},\"aaa\".split(/a/).length===0?this.$split=function(e){return e.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:this.$split=function(e){return e.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=t?t[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal(\"changeNewLineMode\")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==\"\\r\\n\"||e==\"\\r\"||e==\"\\n\"},this.getLine=function(e){return this.$lines[e]||\"\"},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||\"\").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(e,[\"\",\"\"])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:\"insert\",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([\"\"]),n=0):(t=[\"\"].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:\"insert\",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:\"remove\",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:\"remove\",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:\"remove\",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action==\"insert\";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal(\"change\",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(\"\"),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action==\"insert\"?\"remove\":\"insert\",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split(\"\").reverse().join(\"\")},t.stringRepeat=function(e,t){var n=\"\";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\\s\\s*/,i=/\\s\\s*$/;t.stringTrimLeft=function(e){return e.replace(r,\"\")},t.stringTrimRight=function(e){return e.replace(i,\"\")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]==\"object\"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!=\"object\"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}var r=e.constructor;if(r===RegExp)return e;t=r();for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},t.escapeHTML=function(e){return e.replace(/&/g,\"&#38;\").replace(/\"/g,\"&#34;\").replace(/'/g,\"&#39;\").replace(/</g,\"&#60;\")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=e(\"../document\").Document,s=e(\"../lib/lang\"),o=t.Mirror=function(e){this.sender=e;var t=this.doc=new i(\"\"),n=this.deferredUpdate=s.delayedCall(this.onUpdate.bind(this)),r=this;e.on(\"change\",function(e){var i=e.data;if(i[0].start)t.applyDeltas(i);else for(var s=0;s<i.length;s+=2){if(Array.isArray(i[s+1]))var o={action:\"insert\",start:i[s],lines:i[s+1]};else var o={action:\"remove\",start:i[s],end:i[s+1]};t.applyDelta(o,!0)}if(r.$timeout)return n.schedule(r.$timeout);r.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),ace.define(\"ace/mode/javascript/jshint\",[\"require\",\"exports\",\"module\"],function(e,t,n){n.exports=function r(t,n,i){function o(u,a){if(!n[u]){if(!t[u]){var f=typeof e==\"function\"&&e;if(!a&&f)return f(u,!0);if(s)return s(u,!0);var l=new Error(\"Cannot find module '\"+u+\"'\");throw l.code=\"MODULE_NOT_FOUND\",l}var c=n[u]={exports:{}};t[u][0].call(c.exports,function(e){var n=t[u][1][e];return o(n?n:e)},c,c.exports,r,t,n,i)}return n[u].exports}var s=typeof e==\"function\"&&e;for(var u=0;u<i.length;u++)o(i[u]);return o(i[0])}({\"/node_modules/browserify/node_modules/events/events.js\":[function(e,t,n){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||undefined}function i(e){return typeof e==\"function\"}function s(e){return typeof e==\"number\"}function o(e){return typeof e==\"object\"&&e!==null}function u(e){return e===void 0}t.exports=r,r.EventEmitter=r,r.prototype._events=undefined,r.prototype._maxListeners=undefined,r.defaultMaxListeners=10,r.prototype.setMaxListeners=function(e){if(!s(e)||e<0||isNaN(e))throw TypeError(\"n must be a positive number\");return this._maxListeners=e,this},r.prototype.emit=function(e){var t,n,r,s,a,f;this._events||(this._events={});if(e===\"error\")if(!this._events.error||o(this._events.error)&&!this._events.error.length)throw t=arguments[1],t instanceof Error?t:TypeError('Uncaught, unspecified \"error\" event.');n=this._events[e];if(u(n))return!1;if(i(n))switch(arguments.length){case 1:n.call(this);break;case 2:n.call(this,arguments[1]);break;case 3:n.call(this,arguments[1],arguments[2]);break;default:r=arguments.length,s=new Array(r-1);for(a=1;a<r;a++)s[a-1]=arguments[a];n.apply(this,s)}else if(o(n)){r=arguments.length,s=new Array(r-1);for(a=1;a<r;a++)s[a-1]=arguments[a];f=n.slice(),r=f.length;for(a=0;a<r;a++)f[a].apply(this,s)}return!0},r.prototype.addListener=function(e,t){var n;if(!i(t))throw TypeError(\"listener must be a function\");this._events||(this._events={}),this._events.newListener&&this.emit(\"newListener\",e,i(t.listener)?t.listener:t),this._events[e]?o(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t;if(o(this._events[e])&&!this._events[e].warned){var n;u(this._maxListeners)?n=r.defaultMaxListeners:n=this._maxListeners,n&&n>0&&this._events[e].length>n&&(this._events[e].warned=!0,console.error(\"(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.\",this._events[e].length),typeof console.trace==\"function\"&&console.trace())}return this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function r(){this.removeListener(e,r),n||(n=!0,t.apply(this,arguments))}if(!i(t))throw TypeError(\"listener must be a function\");var n=!1;return r.listener=t,this.on(e,r),this},r.prototype.removeListener=function(e,t){var n,r,s,u;if(!i(t))throw TypeError(\"listener must be a function\");if(!this._events||!this._events[e])return this;n=this._events[e],s=n.length,r=-1;if(n===t||i(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit(\"removeListener\",e,t);else if(o(n)){for(u=s;u-->0;)if(n[u]===t||n[u].listener&&n[u].listener===t){r=u;break}if(r<0)return this;n.length===1?(n.length=0,delete this._events[e]):n.splice(r,1),this._events.removeListener&&this.emit(\"removeListener\",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return arguments.length===0?this._events={}:this._events[e]&&delete this._events[e],this;if(arguments.length===0){for(t in this._events){if(t===\"removeListener\")continue;this.removeAllListeners(t)}return this.removeAllListeners(\"removeListener\"),this._events={},this}n=this._events[e];if(i(n))this.removeListener(e,n);else while(n.length)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){var t;return!this._events||!this._events[e]?t=[]:i(this._events[e])?t=[this._events[e]]:t=this._events[e].slice(),t},r.listenerCount=function(e,t){var n;return!e._events||!e._events[t]?n=0:i(e._events[t])?n=1:n=e._events[t].length,n}},{}],\"/node_modules/jshint/data/ascii-identifier-data.js\":[function(e,t,n){var r=[];for(var i=0;i<128;i++)r[i]=i===36||i>=65&&i<=90||i===95||i>=97&&i<=122;var s=[];for(var i=0;i<128;i++)s[i]=r[i]||i>=48&&i<=57;t.exports={asciiIdentifierStartTable:r,asciiIdentifierPartTable:s}},{}],\"/node_modules/jshint/lodash.js\":[function(e,t,n){(function(e){(function(){function $(e,t,n){var r=e.length,i=n?r:-1;while(n?i--:++i<r)if(t(e[i],i,e))return i;return-1}function J(e,t,n){if(t!==t)return G(e,n);var r=n-1,i=e.length;while(++r<i)if(e[r]===t)return r;return-1}function K(e){return typeof e==\"function\"||!1}function Q(e){return typeof e==\"string\"?e:e==null?\"\":e+\"\"}function G(e,t,n){var r=e.length,i=t+(n?0:-1);while(n?i--:++i<r){var s=e[i];if(s!==s)return i}return-1}function Y(e){return!!e&&typeof e==\"object\"}function Ct(){}function Lt(e,t){var n=-1,r=e.length;t||(t=Array(r));while(++n<r)t[n]=e[n];return t}function At(e,t){var n=-1,r=e.length;while(++n<r)if(t(e[n],n,e)===!1)break;return e}function Ot(e,t){var n=-1,r=e.length,i=-1,s=[];while(++n<r){var o=e[n];t(o,n,e)&&(s[++i]=o)}return s}function Mt(e,t){var n=-1,r=e.length,i=Array(r);while(++n<r)i[n]=t(e[n],n,e);return i}function _t(e){var t=-1,n=e.length,r=wt;while(++t<n){var i=e[t];i>r&&(r=i)}return r}function Dt(e,t){var n=-1,r=e.length;while(++n<r)if(t(e[n],n,e))return!0;return!1}function Pt(e,t,n){var i=rr(t);lt.apply(i,bn(t));var s=-1,o=i.length;while(++s<o){var u=i[s],a=e[u],f=n(a,t[u],u,e,t);if((f===f?f!==a:a===a)||a===r&&!(u in e))e[u]=f}return e}function Bt(e,t,n){n||(n={});var r=-1,i=t.length;while(++r<i){var s=t[r];n[s]=e[s]}return n}function jt(e,t,n){var i=typeof e;return i==\"function\"?t===r?e:on(e,t,n):e==null?lr:i==\"object\"?Jt(e):t===r?cr(e):Kt(e,t)}function Ft(e,t,n,i,s,u,a){var f;n&&(f=s?n(e,i,s):n(e));if(f!==r)return f;if(!Jn(e))return e;var l=Xn(e);if(l){f=wn(e);if(!t)return Lt(e,f)}else{var h=rt.call(e),p=h==c;if(!(h==d||h==o||p&&!s))return F[h]?Sn(e,h,t):s?e:{};f=En(p?{}:e);if(!t)return Ht(f,e)}u||(u=[]),a||(a=[]);var v=u.length;while(v--)if(u[v]==e)return a[v];return u.push(e),a.push(f),(l?At:zt)(e,function(r,i){f[i]=Ft(r,t,n,i,e,u,a)}),f}function qt(e,t){var n=[];return It(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}function Ut(e,t){return Rt(e,t,ir)}function zt(e,t){return Rt(e,t,rr)}function Wt(e,t,n){if(e==null)return;n!==r&&n in On(e)&&(t=[n]);var i=-1,s=t.length;while(e!=null&&++i<s)var o=e=e[t[i]];return o}function Xt(e,t,n,r,i,s){if(e===t)return e!==0||1/e==1/t;var o=typeof e,u=typeof t;return o!=\"function\"&&o!=\"object\"&&u!=\"function\"&&u!=\"object\"||e==null||t==null?e!==e&&t!==t:Vt(e,t,Xt,n,r,i,s)}function Vt(e,t,n,r,i,s,a){var f=Xn(e),l=Xn(t),c=u,h=u;f||(c=rt.call(e),c==o?c=d:c!=d&&(f=Zn(e))),l||(h=rt.call(t),h==o?h=d:h!=d&&(l=Zn(t)));var p=c==d,v=h==d,m=c==h;if(m&&!f&&!p)return dn(e,t,c);if(!i){var g=p&&nt.call(e,\"__wrapped__\"),y=v&&nt.call(t,\"__wrapped__\");if(g||y)return n(g?e.value():e,y?t.value():t,r,i,s,a)}if(!m)return!1;s||(s=[]),a||(a=[]);var b=s.length;while(b--)if(s[b]==e)return a[b]==t;s.push(e),a.push(t);var w=(f?pn:vn)(e,t,n,r,i,s,a);return s.pop(),a.pop(),w}function $t(e,t,n,i,s){var o=-1,u=t.length,a=!s;while(++o<u)if(a&&i[o]?n[o]!==e[t[o]]:!(t[o]in e))return!1;o=-1;while(++o<u){var f=t[o],l=e[f],c=n[o];if(a&&i[o])var h=l!==r||f in e;else h=s?s(l,c,f):r,h===r&&(h=Xt(c,l,s,!0));if(!h)return!1}return!0}function Jt(e){var t=rr(e),n=t.length;if(!n)return fr(!0);if(n==1){var i=t[0],s=e[i];if(kn(s))return function(e){return e==null?!1:e[i]===s&&(s!==r||i in On(e))}}var o=Array(n),u=Array(n);while(n--)s=e[t[n]],o[n]=s,u[n]=kn(s);return function(e){return e!=null&&$t(On(e),t,o,u)}}function Kt(e,t){var n=Xn(e),i=Nn(e)&&kn(t),s=e+\"\";return e=Mn(e),function(o){if(o==null)return!1;var u=s;o=On(o);if((n||!i)&&!(u in o)){o=e.length==1?o:Wt(o,en(e,0,-1));if(o==null)return!1;u=Pn(e),o=On(o)}return o[u]===t?t!==r||u in o:Xt(t,o[u],null,!0)}}function Qt(e,t,n,i,s){if(!Jn(e))return e;var o=Cn(t.length)&&(Xn(t)||Zn(t));if(!o){var u=rr(t);lt.apply(u,bn(t))}return At(u||t,function(a,f){u&&(f=a,a=t[f]);if(Y(a))i||(i=[]),s||(s=[]),Gt(e,t,f,Qt,n,i,s);else{var l=e[f],c=n?n(l,a,f,e,t):r,h=c===r;h&&(c=a),(o||c!==r)&&(h||(c===c?c!==l:l===l))&&(e[f]=c)}}),e}function Gt(e,t,n,i,s,o,u){var a=o.length,f=t[n];while(a--)if(o[a]==f){e[n]=u[a];return}var l=e[n],c=s?s(l,f,n,e,t):r,h=c===r;h&&(c=f,Cn(f.length)&&(Xn(f)||Zn(f))?c=Xn(l)?l:yn(l)?Lt(l):[]:Gn(f)||Wn(f)?c=Wn(l)?er(l):Gn(l)?l:{}:h=!1),o.push(f),u.push(c);if(h)e[n]=i(c,f,s,o,u);else if(c===c?c!==l:l===l)e[n]=c}function Yt(e){return function(t){return t==null?r:t[e]}}function Zt(e){var t=e+\"\";return e=Mn(e),function(n){return Wt(n,e,t)}}function en(e,t,n){var i=-1,s=e.length;t=t==null?0:+t||0,t<0&&(t=-t>s?0:s+t),n=n===r||n>s?s:+n||0,n<0&&(n+=s),s=t>n?0:n-t>>>0,t>>>=0;var o=Array(s);while(++i<s)o[i]=e[i+t];return o}function tn(e,t){var n;return It(e,function(e,r,i){return n=t(e,r,i),!n}),!!n}function nn(e,t){var n=-1,r=t.length,i=Array(r);while(++n<r)i[n]=e[t[n]];return i}function rn(e,t,n){var r=0,i=e?e.length:r;if(typeof t==\"number\"&&t===t&&i<=xt){while(r<i){var s=r+i>>>1,o=e[s];(n?o<=t:o<t)?r=s+1:i=s}return i}return sn(e,t,lr,n)}function sn(e,t,n,i){t=n(t);var s=0,o=e?e.length:0,u=t!==t,a=t===r;while(s<o){var f=ut((s+o)/2),l=n(e[f]),c=l===l;if(u)var h=c||i;else a?h=c&&(i||l!==r):h=i?l<=t:l<t;h?s=f+1:o=f}return bt(o,St)}function on(e,t,n){if(typeof e!=\"function\")return lr;if(t===r)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 3:return function(n,r,i){return e.call(t,n,r,i)};case 4:return function(n,r,i,s){return e.call(t,n,r,i,s)};case 5:return function(n,r,i,s,o){return e.call(t,n,r,i,s,o)}}return function(){return e.apply(t,arguments)}}function un(e){return ot.call(e,0)}function an(e){return Un(function(t,n){var r=-1,i=t==null?0:n.length,s=i>2&&n[i-2],o=i>2&&n[2],u=i>1&&n[i-1];typeof s==\"function\"?(s=on(s,u,5),i-=2):(s=typeof u==\"function\"?u:null,i-=s?1:0),o&&Tn(n[0],n[1],o)&&(s=i<3?null:s,i=1);while(++r<i){var a=n[r];a&&e(t,a,s)}return t})}function fn(e,t){return function(n,r){var i=n?yn(n):0;if(!Cn(i))return e(n,r);var s=t?i:-1,o=On(n);while(t?s--:++s<i)if(r(o[s],s,o)===!1)break;return n}}function ln(e){return function(t,n,r){var i=On(t),s=r(t),o=s.length,u=e?o:-1;while(e?u--:++u<o){var a=s[u];if(n(i[a],a,i)===!1)break}return t}}function cn(e){return function(t,n,r){return!t||!t.length?-1:(n=mn(n,r,3),$(t,n,e))}}function hn(e,t){return function(n,i,s){return typeof i==\"function\"&&s===r&&Xn(n)?e(n,i):t(n,on(i,s,3))}}function pn(e,t,n,i,s,o,u){var a=-1,f=e.length,l=t.length,c=!0;if(f!=l&&!(s&&l>f))return!1;while(c&&++a<f){var h=e[a],p=t[a];c=r,i&&(c=s?i(p,h,a):i(h,p,a));if(c===r)if(s){var d=l;while(d--){p=t[d],c=h&&h===p||n(h,p,i,s,o,u);if(c)break}}else c=h&&h===p||n(h,p,i,s,o,u)}return!!c}function dn(e,t,n){switch(n){case a:case f:return+e==+t;case l:return e.name==t.name&&e.message==t.message;case p:return e!=+e?t!=+t:e==0?1/e==1/t:e==+t;case v:case g:return e==t+\"\"}return!1}function vn(e,t,n,i,s,o,u){var a=rr(e),f=a.length,l=rr(t),c=l.length;if(f!=c&&!s)return!1;var h=s,p=-1;while(++p<f){var d=a[p],v=s?d in t:nt.call(t,d);if(v){var m=e[d],g=t[d];v=r,i&&(v=s?i(g,m,d):i(m,g,d)),v===r&&(v=m&&m===g||n(m,g,i,s,o,u))}if(!v)return!1;h||(h=d==\"constructor\")}if(!h){var y=e.constructor,b=t.constructor;if(y!=b&&\"constructor\"in e&&\"constructor\"in t&&!(typeof y==\"function\"&&y instanceof y&&typeof b==\"function\"&&b instanceof b))return!1}return!0}function mn(e,t,n){var r=Ct.callback||ar;return r=r===ar?jt:r,n?r(e,t,n):r}function gn(e,t,n){var r=Ct.indexOf||Dn;return r=r===Dn?J:r,e?r(e,t,n):r}function wn(e){var t=e.length,n=new e.constructor(t);return t&&typeof e[0]==\"string\"&&nt.call(e,\"index\")&&(n.index=e.index,n.input=e.input),n}function En(e){var t=e.constructor;return typeof t==\"function\"&&t instanceof t||(t=Object),new t}function Sn(e,t,n){var r=e.constructor;switch(t){case b:return un(e);case a:case f:return new r(+e);case w:case E:case S:case x:case T:case N:case C:case k:case L:var i=e.buffer;return new r(n?un(i):i,e.byteOffset,e.length);case p:case g:return new r(e);case v:var s=new r(e.source,H.exec(e));s.lastIndex=e.lastIndex}return s}function xn(e,t){return e=+e,t=t==null?Nt:t,e>-1&&e%1==0&&e<t}function Tn(e,t,n){if(!Jn(n))return!1;var r=typeof t;if(r==\"number\")var i=yn(n),s=Cn(i)&&xn(t,i);else s=r==\"string\"&&t in n;if(s){var o=n[t];return e===e?e===o:o!==o}return!1}function Nn(e,t){var n=typeof e;if(n==\"string\"&&O.test(e)||n==\"number\")return!0;if(Xn(e))return!1;var r=!A.test(e);return r||t!=null&&e in On(t)}function Cn(e){return typeof e==\"number\"&&e>-1&&e%1==0&&e<=Nt}function kn(e){return e===e&&(e===0?1/e>0:!Jn(e))}function Ln(e){var t,n=Ct.support;if(!Y(e)||rt.call(e)!=d||!nt.call(e,\"constructor\")&&(t=e.constructor,typeof t==\"function\"&&!(t instanceof t)))return!1;var i;return Ut(e,function(e,t){i=t}),i===r||nt.call(e,i)}function An(e){var t=ir(e),n=t.length,r=n&&e.length,i=Ct.support,s=r&&Cn(r)&&(Xn(e)||i.nonEnumArgs&&Wn(e)),o=-1,u=[];while(++o<n){var a=t[o];(s&&xn(a,r)||nt.call(e,a))&&u.push(a)}return u}function On(e){return Jn(e)?e:Object(e)}function Mn(e){if(Xn(e))return e;var t=[];return Q(e).replace(M,function(e,n,r,i){t.push(r?i.replace(P,\"$1\"):n||e)}),t}function Dn(e,t,n){var r=e?e.length:0;if(!r)return-1;if(typeof n==\"number\")n=n<0?yt(r+n,0):n;else if(n){var i=rn(e,t),s=e[i];return(t===t?t===s:s!==s)?i:-1}return J(e,t,n||0)}function Pn(e){var t=e?e.length:0;return t?e[t-1]:r}function Hn(e,t,n){var r=e?e.length:0;return r?(n&&typeof n!=\"number\"&&Tn(e,t,n)&&(t=0,n=r),en(e,t,n)):[]}function Bn(e){var t=-1,n=(e&&e.length&&_t(Mt(e,yn)))>>>0,r=Array(n);while(++t<n)r[t]=Mt(e,Yt(t));return r}function In(e,t,n,r){var i=e?yn(e):0;return Cn(i)||(e=or(e),i=e.length),i?(typeof n!=\"number\"||r&&Tn(t,n,r)?n=0:n=n<0?yt(i+n,0):n||0,typeof e==\"string\"||!Xn(e)&&Yn(e)?n<i&&e.indexOf(t,n)>-1:gn(e,t,n)>-1):!1}function qn(e,t,n){var r=Xn(e)?Ot:qt;return t=mn(t,n,3),r(e,function(e,n,r){return!t(e,n,r)})}function Rn(e,t,n){var i=Xn(e)?Dt:tn;n&&Tn(e,t,n)&&(t=null);if(typeof t!=\"function\"||n!==r)t=mn(t,n,3);return i(e,t)}function Un(e,t){if(typeof e!=\"function\")throw new TypeError(s);return t=yt(t===r?e.length-1:+t||0,0),function(){var n=arguments,r=-1,i=yt(n.length-t,0),s=Array(i);while(++r<i)s[r]=n[t+r];switch(t){case 0:return e.call(this,s);case 1:return e.call(this,n[0],s);case 2:return e.call(this,n[0],n[1],s)}var o=Array(t+1);r=-1;while(++r<t)o[r]=n[r];return o[t]=s,e.apply(this,o)}}function zn(e,t,n,r){return t&&typeof t!=\"boolean\"&&Tn(e,t,n)?t=!1:typeof t==\"function\"&&(r=n,n=t,t=!1),n=typeof n==\"function\"&&on(n,r,1),Ft(e,t,n)}function Wn(e){var t=Y(e)?e.length:r;return Cn(t)&&rt.call(e)==o}function Vn(e){if(e==null)return!0;var t=yn(e);return Cn(t)&&(Xn(e)||Yn(e)||Wn(e)||Y(e)&&$n(e.splice))?!t:!rr(e).length}function Jn(e){var t=typeof e;return t==\"function\"||!!e&&t==\"object\"}function Kn(e){return e==null?!1:rt.call(e)==c?it.test(tt.call(e)):Y(e)&&B.test(e)}function Qn(e){return typeof e==\"number\"||Y(e)&&rt.call(e)==p}function Yn(e){return typeof e==\"string\"||Y(e)&&rt.call(e)==g}function Zn(e){return Y(e)&&Cn(e.length)&&!!j[rt.call(e)]}function er(e){return Bt(e,ir(e))}function nr(e,t){if(e==null)return!1;var n=nt.call(e,t);return!n&&!Nn(t)&&(t=Mn(t),e=t.length==1?e:Wt(e,en(t,0,-1)),t=Pn(t),n=e!=null&&nt.call(e,t)),n}function ir(e){if(e==null)return[];Jn(e)||(e=Object(e));var t=e.length;t=t&&Cn(t)&&(Xn(e)||kt.nonEnumArgs&&Wn(e))&&t||0;var n=e.constructor,r=-1,i=typeof n==\"function\"&&n.prototype===e,s=Array(t),o=t>0;while(++r<t)s[r]=r+\"\";for(var u in e)(!o||!xn(u,t))&&(u!=\"constructor\"||!i&&!!nt.call(e,u))&&s.push(u);return s}function or(e){return nn(e,rr(e))}function ur(e){return e=Q(e),e&&D.test(e)?e.replace(_,\"\\\\$&\"):e}function ar(e,t,n){return n&&Tn(e,t,n)&&(t=null),jt(e,t)}function fr(e){return function(){return e}}function lr(e){return e}function cr(e){return Nn(e)?Yt(e):Zt(e)}var r,i=\"3.7.0\",s=\"Expected a function\",o=\"[object Arguments]\",u=\"[object Array]\",a=\"[object Boolean]\",f=\"[object Date]\",l=\"[object Error]\",c=\"[object Function]\",h=\"[object Map]\",p=\"[object Number]\",d=\"[object Object]\",v=\"[object RegExp]\",m=\"[object Set]\",g=\"[object String]\",y=\"[object WeakMap]\",b=\"[object ArrayBuffer]\",w=\"[object Float32Array]\",E=\"[object Float64Array]\",S=\"[object Int8Array]\",x=\"[object Int16Array]\",T=\"[object Int32Array]\",N=\"[object Uint8Array]\",C=\"[object Uint8ClampedArray]\",k=\"[object Uint16Array]\",L=\"[object Uint32Array]\",A=/\\.|\\[(?:[^[\\]]+|([\"'])(?:(?!\\1)[^\\n\\\\]|\\\\.)*?)\\1\\]/,O=/^\\w*$/,M=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\n\\\\]|\\\\.)*?)\\2)\\]/g,_=/[.*+?^${}()|[\\]\\/\\\\]/g,D=RegExp(_.source),P=/\\\\(\\\\)?/g,H=/\\w*$/,B=/^\\[object .+?Constructor\\]$/,j={};j[w]=j[E]=j[S]=j[x]=j[T]=j[N]=j[C]=j[k]=j[L]=!0,j[o]=j[u]=j[b]=j[a]=j[f]=j[l]=j[c]=j[h]=j[p]=j[d]=j[v]=j[m]=j[g]=j[y]=!1;var F={};F[o]=F[u]=F[b]=F[a]=F[f]=F[w]=F[E]=F[S]=F[x]=F[T]=F[p]=F[d]=F[v]=F[g]=F[N]=F[C]=F[k]=F[L]=!0,F[l]=F[c]=F[h]=F[m]=F[y]=!1;var I={\"function\":!0,object:!0},q=I[typeof n]&&n&&!n.nodeType&&n,R=I[typeof t]&&t&&!t.nodeType&&t,U=q&&R&&typeof e==\"object\"&&e&&e.Object&&e,z=I[typeof self]&&self&&self.Object&&self,W=I[typeof window]&&window&&window.Object&&window,X=R&&R.exports===q&&q,V=U||W!==(this&&this.window)&&W||z||this,Z=Array.prototype,et=Object.prototype,tt=Function.prototype.toString,nt=et.hasOwnProperty,rt=et.toString,it=RegExp(\"^\"+ur(rt).replace(/toString|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),st=Kn(st=V.ArrayBuffer)&&st,ot=Kn(ot=st&&(new st(0)).slice)&&ot,ut=Math.floor,at=Kn(at=Object.getOwnPropertySymbols)&&at,ft=Kn(ft=Object.getPrototypeOf)&&ft,lt=Z.push,ct=Kn(Object.preventExtensions=Object.preventExtensions)&&ct,ht=et.propertyIsEnumerable,pt=Kn(pt=V.Uint8Array)&&pt,dt=function(){try{var e=Kn(e=V.Float64Array)&&e,t=new e(new st(10),0,1)&&e}catch(n){}return t}(),vt=function(){var e={1:0},t=ct&&Kn(t=Object.assign)&&t;try{t(ct(e),\"xo\")}catch(n){}return!e[1]&&t}(),mt=Kn(mt=Array.isArray)&&mt,gt=Kn(gt=Object.keys)&&gt,yt=Math.max,bt=Math.min,wt=Number.NEGATIVE_INFINITY,Et=Math.pow(2,32)-1,St=Et-1,xt=Et>>>1,Tt=dt?dt.BYTES_PER_ELEMENT:0,Nt=Math.pow(2,53)-1,kt=Ct.support={};(function(e){var t=function(){this.x=e},n={0:e,length:e},r=[];t.prototype={valueOf:e,y:e};for(var i in new t)r.push(i);kt.funcDecomp=/\\bthis\\b/.test(function(){return this}),kt.funcNames=typeof Function.name==\"string\";try{kt.nonEnumArgs=!ht.call(arguments,1)}catch(s){kt.nonEnumArgs=!0}})(1,0);var Ht=vt||function(e,t){return t==null?e:Bt(t,bn(t),Bt(t,rr(t),e))},It=fn(zt),Rt=ln();ot||(un=!st||!pt?fr(null):function(e){var t=e.byteLength,n=dt?ut(t/Tt):0,r=n*Tt,i=new st(t);if(n){var s=new dt(i,0,n);s.set(new dt(e,0,n))}return t!=r&&(s=new pt(i,r),s.set(new pt(e,r))),i});var yn=Yt(\"length\"),bn=at?function(e){return at(On(e))}:fr([]),_n=cn(!0),jn=Un(Bn),Fn=hn(At,It),Xn=mt||function(e){return Y(e)&&Cn(e.length)&&rt.call(e)==u},$n=K(/x/)||pt&&!K(pt)?function(e){return rt.call(e)==c}:K,Gn=ft?function(e){if(!e||rt.call(e)!=d)return!1;var t=e.valueOf,n=Kn(t)&&(n=ft(t))&&ft(n);return n?e==n||ft(e)==n:Ln(e)}:Ln,tr=an(function(e,t,n){return n?Pt(e,t,n):Ht(e,t)}),rr=gt?function(e){if(e)var t=e.constructor,n=e.length;return typeof t==\"function\"&&t.prototype===e||typeof e!=\"function\"&&Cn(n)?An(e):Jn(e)?gt(e):[]}:An,sr=an(Qt);Ct.assign=tr,Ct.callback=ar,Ct.constant=fr,Ct.forEach=Fn,Ct.keys=rr,Ct.keysIn=ir,Ct.merge=sr,Ct.property=cr,Ct.reject=qn,Ct.restParam=Un,Ct.slice=Hn,Ct.toPlainObject=er,Ct.unzip=Bn,Ct.values=or,Ct.zip=jn,Ct.each=Fn,Ct.extend=tr,Ct.iteratee=ar,Ct.clone=zn,Ct.escapeRegExp=ur,Ct.findLastIndex=_n,Ct.has=nr,Ct.identity=lr,Ct.includes=In,Ct.indexOf=Dn,Ct.isArguments=Wn,Ct.isArray=Xn,Ct.isEmpty=Vn,Ct.isFunction=$n,Ct.isNative=Kn,Ct.isNumber=Qn,Ct.isObject=Jn,Ct.isPlainObject=Gn,Ct.isString=Yn,Ct.isTypedArray=Zn,Ct.last=Pn,Ct.some=Rn,Ct.any=Rn,Ct.contains=In,Ct.include=In,Ct.VERSION=i,q&&R?X?(R.exports=Ct)._=Ct:q._=Ct:V._=Ct}).call(this)}).call(this,typeof global!=\"undefined\"?global:typeof self!=\"undefined\"?self:typeof window!=\"undefined\"?window:{})},{}],\"/node_modules/jshint/src/jshint.js\":[function(e,t,n){var r=e(\"../lodash\"),i=e(\"events\"),s=e(\"./vars.js\"),o=e(\"./messages.js\"),u=e(\"./lex.js\").Lexer,a=e(\"./reg.js\"),f=e(\"./state.js\").state,l=e(\"./style.js\"),c=e(\"./options.js\"),h=e(\"./scope-manager.js\"),p=function(){\"use strict\";function k(e,t){return e=e.trim(),/^[+-]W\\d{3}$/g.test(e)?!0:c.validNames.indexOf(e)===-1&&t.type!==\"jslint\"&&!r.has(c.removed,e)?(q(\"E001\",t,e),!1):!0}function L(e){return Object.prototype.toString.call(e)===\"[object String]\"}function A(e,t){return e?!e.identifier||e.value!==t?!1:!0:!1}function O(e){if(!e.reserved)return!1;var t=e.meta;if(t&&t.isFutureReservedWord&&f.inES5()){if(!t.es5)return!1;if(t.strictOnly&&!f.option.strict&&!f.isStrict())return!1;if(e.isProperty)return!1}return!0}function M(e,t){return e.replace(/\\{([^{}]*)\\}/g,function(e,n){var r=t[n];return typeof r==\"string\"||typeof r==\"number\"?r:e})}function D(e,t){Object.keys(t).forEach(function(n){if(r.has(p.blacklist,n))return;e[n]=t[n]})}function P(){if(f.option.enforceall){for(var e in c.bool.enforcing)f.option[e]===undefined&&!c.noenforceall[e]&&(f.option[e]=!0);for(var t in c.bool.relaxing)f.option[t]===undefined&&(f.option[t]=!1)}}function H(){P(),!f.option.esversion&&!f.option.moz&&(f.option.es3?f.option.esversion=3:f.option.esnext?f.option.esversion=6:f.option.esversion=5),f.inES5()&&D(S,s.ecmaIdentifiers[5]),f.inES6()&&D(S,s.ecmaIdentifiers[6]),f.option.module&&(f.option.strict===!0&&(f.option.strict=\"global\"),f.inES6()||F(\"W134\",f.tokens.next,\"module\",6)),f.option.couch&&D(S,s.couch),f.option.qunit&&D(S,s.qunit),f.option.rhino&&D(S,s.rhino),f.option.shelljs&&(D(S,s.shelljs),D(S,s.node)),f.option.typed&&D(S,s.typed),f.option.phantom&&(D(S,s.phantom),f.option.strict===!0&&(f.option.strict=\"global\")),f.option.prototypejs&&D(S,s.prototypejs),f.option.node&&(D(S,s.node),D(S,s.typed),f.option.strict===!0&&(f.option.strict=\"global\")),f.option.devel&&D(S,s.devel),f.option.dojo&&D(S,s.dojo),f.option.browser&&(D(S,s.browser),D(S,s.typed)),f.option.browserify&&(D(S,s.browser),D(S,s.typed),D(S,s.browserify),f.option.strict===!0&&(f.option.strict=\"global\")),f.option.nonstandard&&D(S,s.nonstandard),f.option.jasmine&&D(S,s.jasmine),f.option.jquery&&D(S,s.jquery),f.option.mootools&&D(S,s.mootools),f.option.worker&&D(S,s.worker),f.option.wsh&&D(S,s.wsh),f.option.globalstrict&&f.option.strict!==!1&&(f.option.strict=\"global\"),f.option.yui&&D(S,s.yui),f.option.mocha&&D(S,s.mocha)}function B(e,t,n){var r=Math.floor(t/f.lines.length*100),i=o.errors[e].desc;throw{name:\"JSHintError\",line:t,character:n,message:i+\" (\"+r+\"% scanned).\",raw:i,code:e}}function j(){var e=f.ignoredLines;if(r.isEmpty(e))return;p.errors=r.reject(p.errors,function(t){return e[t.line]})}function F(e,t,n,r,i,s){var u,a,l,c;if(/^W\\d{3}$/.test(e)){if(f.ignored[e])return;c=o.warnings[e]}else/E\\d{3}/.test(e)?c=o.errors[e]:/I\\d{3}/.test(e)&&(c=o.info[e]);return t=t||f.tokens.next||{},t.id===\"(end)\"&&(t=f.tokens.curr),a=t.line||0,u=t.from||0,l={id:\"(error)\",raw:c.desc,code:c.code,evidence:f.lines[a-1]||\"\",line:a,character:u,scope:p.scope,a:n,b:r,c:i,d:s},l.reason=M(c.desc,l),p.errors.push(l),j(),p.errors.length>=f.option.maxerr&&B(\"E043\",a,u),l}function I(e,t,n,r,i,s,o){return F(e,{line:t,from:n},r,i,s,o)}function q(e,t,n,r,i,s){F(e,t,n,r,i,s)}function R(e,t,n,r,i,s,o){return q(e,{line:t,from:n},r,i,s,o)}function U(e,t){var n;return n={id:\"(internal)\",elem:e,value:t},p.internals.push(n),n}function z(){var e=f.tokens.next,t=e.body.match(/(-\\s+)?[^\\s,:]+(?:\\s*:\\s*(-\\s+)?[^\\s,]+)?/g)||[],i={};if(e.type===\"globals\"){t.forEach(function(n,r){n=n.split(\":\");var s=(n[0]||\"\").trim(),o=(n[1]||\"\").trim();if(s===\"-\"||!s.length){if(r>0&&r===t.length-1)return;q(\"E002\",e);return}s.charAt(0)===\"-\"?(s=s.slice(1),o=!1,p.blacklist[s]=s,delete S[s]):i[s]=o===\"true\"}),D(S,i);for(var s in i)r.has(i,s)&&(n[s]=e)}e.type===\"exported\"&&t.forEach(function(n,r){if(!n.length){if(r>0&&r===t.length-1)return;q(\"E002\",e);return}f.funct[\"(scope)\"].addExported(n)}),e.type===\"members\"&&(E=E||{},t.forEach(function(e){var t=e.charAt(0),n=e.charAt(e.length-1);t===n&&(t==='\"'||t===\"'\")&&(e=e.substr(1,e.length-2).replace('\\\\\"','\"')),E[e]=!1}));var o=[\"maxstatements\",\"maxparams\",\"maxdepth\",\"maxcomplexity\",\"maxerr\",\"maxlen\",\"indent\"];if(e.type===\"jshint\"||e.type===\"jslint\")t.forEach(function(t){t=t.split(\":\");var n=(t[0]||\"\").trim(),i=(t[1]||\"\").trim();if(!k(n,e))return;if(o.indexOf(n)>=0){if(i!==\"false\"){i=+i;if(typeof i!=\"number\"||!isFinite(i)||i<=0||Math.floor(i)!==i){q(\"E032\",e,t[1].trim());return}f.option[n]=i}else f.option[n]=n===\"indent\"?4:!1;return}if(n===\"validthis\"){if(f.funct[\"(global)\"])return void q(\"E009\");if(i!==\"true\"&&i!==\"false\")return void q(\"E002\",e);f.option.validthis=i===\"true\";return}if(n===\"quotmark\"){switch(i){case\"true\":case\"false\":f.option.quotmark=i===\"true\";break;case\"double\":case\"single\":f.option.quotmark=i;break;default:q(\"E002\",e)}return}if(n===\"shadow\"){switch(i){case\"true\":f.option.shadow=!0;break;case\"outer\":f.option.shadow=\"outer\";break;case\"false\":case\"inner\":f.option.shadow=\"inner\";break;default:q(\"E002\",e)}return}if(n===\"unused\"){switch(i){case\"true\":f.option.unused=!0;break;case\"false\":f.option.unused=!1;break;case\"vars\":case\"strict\":f.option.unused=i;break;default:q(\"E002\",e)}return}if(n===\"latedef\"){switch(i){case\"true\":f.option.latedef=!0;break;case\"false\":f.option.latedef=!1;break;case\"nofunc\":f.option.latedef=\"nofunc\";break;default:q(\"E002\",e)}return}if(n===\"ignore\"){switch(i){case\"line\":f.ignoredLines[e.line]=!0,j();break;default:q(\"E002\",e)}return}if(n===\"strict\"){switch(i){case\"true\":f.option.strict=!0;break;case\"false\":f.option.strict=!1;break;case\"func\":case\"global\":case\"implied\":f.option.strict=i;break;default:q(\"E002\",e)}return}n===\"module\"&&(zt(f.funct)||q(\"E055\",f.tokens.next,\"module\"));var s={es3:3,es5:5,esnext:6};if(r.has(s,n)){switch(i){case\"true\":f.option.moz=!1,f.option.esversion=s[n];break;case\"false\":f.option.moz||(f.option.esversion=5);break;default:q(\"E002\",e)}return}if(n===\"esversion\"){switch(i){case\"5\":f.inES5(!0)&&F(\"I003\");case\"3\":case\"6\":f.option.moz=!1,f.option.esversion=+i;break;case\"2015\":f.option.moz=!1,f.option.esversion=6;break;default:q(\"E002\",e)}zt(f.funct)||q(\"E055\",f.tokens.next,\"esversion\");return}var u=/^([+-])(W\\d{3})$/g.exec(n);if(u){f.ignored[u[2]]=u[1]===\"-\";return}var a;if(i===\"true\"||i===\"false\"){e.type===\"jslint\"?(a=c.renamed[n]||n,f.option[a]=i===\"true\",c.inverted[a]!==undefined&&(f.option[a]=!f.option[a])):f.option[n]=i===\"true\",n===\"newcap\"&&(f.option[\"(explicitNewcap)\"]=!0);return}q(\"E002\",e)}),H()}function W(e){var t=e||0,n=y.length,r;if(t<n)return y[t];while(n<=t)r=y[n],r||(r=y[n]=b.token()),n+=1;return!r&&f.tokens.next.id===\"(end)\"?f.tokens.next:r}function X(){var e=0,t;do t=W(e++);while(t.id===\"(endline)\");return t}function V(e,t){switch(f.tokens.curr.id){case\"(number)\":f.tokens.next.id===\".\"&&F(\"W005\",f.tokens.curr);break;case\"-\":(f.tokens.next.id===\"-\"||f.tokens.next.id===\"--\")&&F(\"W006\");break;case\"+\":(f.tokens.next.id===\"+\"||f.tokens.next.id===\"++\")&&F(\"W007\")}e&&f.tokens.next.id!==e&&(t?f.tokens.next.id===\"(end)\"?q(\"E019\",t,t.id):q(\"E020\",f.tokens.next,e,t.id,t.line,f.tokens.next.value):(f.tokens.next.type!==\"(identifier)\"||f.tokens.next.value!==e)&&F(\"W116\",f.tokens.next,e,f.tokens.next.value)),f.tokens.prev=f.tokens.curr,f.tokens.curr=f.tokens.next;for(;;){f.tokens.next=y.shift()||b.token(),f.tokens.next||B(\"E041\",f.tokens.curr.line);if(f.tokens.next.id===\"(end)\"||f.tokens.next.id===\"(error)\")return;f.tokens.next.check&&f.tokens.next.check();if(f.tokens.next.isSpecial)f.tokens.next.type===\"falls through\"?f.tokens.curr.caseFallsThrough=!0:z();else if(f.tokens.next.id!==\"(endline)\")break}}function $(e){return e.infix||!e.identifier&&!e.template&&!!e.led}function J(){var e=f.tokens.curr,t=f.tokens.next;return t.id===\";\"||t.id===\"}\"||t.id===\":\"?!0:$(t)===$(e)||e.id===\"yield\"&&f.inMoz()?e.line!==G(t):!1}function K(e){return!e.left&&e.arity!==\"unary\"}function Q(e,t){var n,i=!1,s=!1,o=!1;f.nameStack.push(),!t&&f.tokens.next.value===\"let\"&&W(0).value===\"(\"&&(f.inMoz()||F(\"W118\",f.tokens.next,\"let expressions\"),o=!0,f.funct[\"(scope)\"].stack(),V(\"let\"),V(\"(\"),f.tokens.prev.fud(),V(\")\")),f.tokens.next.id===\"(end)\"&&q(\"E006\",f.tokens.curr);var u=f.option.asi&&f.tokens.prev.line!==G(f.tokens.curr)&&r.contains([\"]\",\")\"],f.tokens.prev.id)&&r.contains([\"[\",\"(\"],f.tokens.curr.id);u&&F(\"W014\",f.tokens.curr,f.tokens.curr.id),V(),t&&(f.funct[\"(verb)\"]=f.tokens.curr.value,f.tokens.curr.beginsStmt=!0);if(t===!0&&f.tokens.curr.fud)n=f.tokens.curr.fud();else{f.tokens.curr.nud?n=f.tokens.curr.nud():q(\"E030\",f.tokens.curr,f.tokens.curr.id);while((e<f.tokens.next.lbp||f.tokens.next.type===\"(template)\")&&!J())i=f.tokens.curr.value===\"Array\",s=f.tokens.curr.value===\"Object\",n&&(n.value||n.first&&n.first.value)&&(n.value!==\"new\"||n.first&&n.first.value&&n.first.value===\".\")&&(i=!1,n.value!==f.tokens.curr.value&&(s=!1)),V(),i&&f.tokens.curr.id===\"(\"&&f.tokens.next.id===\")\"&&F(\"W009\",f.tokens.curr),s&&f.tokens.curr.id===\"(\"&&f.tokens.next.id===\")\"&&F(\"W010\",f.tokens.curr),n&&f.tokens.curr.led?n=f.tokens.curr.led(n):q(\"E033\",f.tokens.curr,f.tokens.curr.id)}return o&&f.funct[\"(scope)\"].unstack(),f.nameStack.pop(),n}function G(e){return e.startLine||e.line}function Y(e,t){e=e||f.tokens.curr,t=t||f.tokens.next,!f.option.laxbreak&&e.line!==G(t)&&F(\"W014\",t,t.value)}function Z(e){e=e||f.tokens.curr,e.line!==G(f.tokens.next)&&F(\"E022\",e,e.value)}function et(e,t){e.line!==G(t)&&(f.option.laxcomma||(tt.first&&(F(\"I001\"),tt.first=!1),F(\"W014\",e,t.value)))}function tt(e){e=e||{},e.peek?et(f.tokens.prev,f.tokens.curr):(et(f.tokens.curr,f.tokens.next),V(\",\"));if(f.tokens.next.identifier&&(!e.property||!f.inES5()))switch(f.tokens.next.value){case\"break\":case\"case\":case\"catch\":case\"continue\":case\"default\":case\"do\":case\"else\":case\"finally\":case\"for\":case\"if\":case\"in\":case\"instanceof\":case\"return\":case\"switch\":case\"throw\":case\"try\":case\"var\":case\"let\":case\"while\":case\"with\":return q(\"E024\",f.tokens.next,f.tokens.next.value),!1}if(f.tokens.next.type===\"(punctuator)\")switch(f.tokens.next.value){case\"}\":case\"]\":case\",\":if(e.allowTrailing)return!0;case\")\":return q(\"E024\",f.tokens.next,f.tokens.next.value),!1}return!0}function nt(e,t){var n=f.syntax[e];if(!n||typeof n!=\"object\")f.syntax[e]=n={id:e,lbp:t,value:e};return n}function rt(e){var t=nt(e,0);return t.delim=!0,t}function it(e,t){var n=rt(e);return n.identifier=n.reserved=!0,n.fud=t,n}function st(e,t){var n=it(e,t);return n.block=!0,n}function ot(e){var t=e.id.charAt(0);if(t>=\"a\"&&t<=\"z\"||t>=\"A\"&&t<=\"Z\")e.identifier=e.reserved=!0;return e}function ut(e,t){var n=nt(e,150);return ot(n),n.nud=typeof t==\"function\"?t:function(){this.arity=\"unary\",this.right=Q(150);if(this.id===\"++\"||this.id===\"--\")f.option.plusplus?F(\"W016\",this,this.id):this.right&&(!this.right.identifier||O(this.right))&&this.right.id!==\".\"&&this.right.id!==\"[\"&&F(\"W017\",this),this.right&&this.right.isMetaProperty?q(\"E031\",this):this.right&&this.right.identifier&&f.funct[\"(scope)\"].block.modify(this.right.value,this);return this},n}function at(e,t){var n=rt(e);return n.type=e,n.nud=t,n}function ft(e,t){var n=at(e,t);return n.identifier=!0,n.reserved=!0,n}function lt(e,t){var n=at(e,t&&t.nud||function(){return this});return t=t||{},t.isFutureReservedWord=!0,n.value=e,n.identifier=!0,n.reserved=!0,n.meta=t,n}function ct(e,t){return ft(e,function(){return typeof t==\"function\"&&t(this),this})}function ht(e,t,n,r){var i=nt(e,n);return ot(i),i.infix=!0,i.led=function(i){return r||Y(f.tokens.prev,f.tokens.curr),(e===\"in\"||e===\"instanceof\")&&i.id===\"!\"&&F(\"W018\",i,\"!\"),typeof t==\"function\"?t(i,this):(this.left=i,this.right=Q(n),this)},i}function pt(e){var t=nt(e,42);return t.led=function(e){return Y(f.tokens.prev,f.tokens.curr),this.left=e,this.right=Xt({type:\"arrow\",loneArg:e}),this},t}function dt(e,t){var n=nt(e,100);return n.led=function(e){Y(f.tokens.prev,f.tokens.curr),this.left=e;var n=this.right=Q(100);return A(e,\"NaN\")||A(n,\"NaN\")?F(\"W019\",this):t&&t.apply(this,[e,n]),(!e||!n)&&B(\"E041\",f.tokens.curr.line),e.id===\"!\"&&F(\"W018\",e,\"!\"),n.id===\"!\"&&F(\"W018\",n,\"!\"),this},n}function vt(e){return e&&(e.type===\"(number)\"&&+e.value===0||e.type===\"(string)\"&&e.value===\"\"||e.type===\"null\"&&!f.option.eqnull||e.type===\"true\"||e.type===\"false\"||e.type===\"undefined\")}function gt(e,t,n){var i;return n.option.notypeof?!1:!e||!t?!1:(i=n.inES6()?mt.es6:mt.es3,t.type===\"(identifier)\"&&t.value===\"typeof\"&&e.type===\"(string)\"?!r.contains(i,e.value):!1)}function yt(e,t){var n=!1;return e.type===\"this\"&&t.funct[\"(context)\"]===null?n=!0:e.type===\"(identifier)\"&&(t.option.node&&e.value===\"global\"?n=!0:t.option.browser&&(e.value===\"window\"||e.value===\"document\")&&(n=!0)),n}function bt(e){function n(e){if(typeof e!=\"object\")return;return e.right===\"prototype\"?e:n(e.left)}function r(e){while(!e.identifier&&typeof e.left==\"object\")e=e.left;if(e.identifier&&t.indexOf(e.value)>=0)return e.value}var t=[\"Array\",\"ArrayBuffer\",\"Boolean\",\"Collator\",\"DataView\",\"Date\",\"DateTimeFormat\",\"Error\",\"EvalError\",\"Float32Array\",\"Float64Array\",\"Function\",\"Infinity\",\"Intl\",\"Int16Array\",\"Int32Array\",\"Int8Array\",\"Iterator\",\"Number\",\"NumberFormat\",\"Object\",\"RangeError\",\"ReferenceError\",\"RegExp\",\"StopIteration\",\"String\",\"SyntaxError\",\"TypeError\",\"Uint16Array\",\"Uint32Array\",\"Uint8Array\",\"Uint8ClampedArray\",\"URIError\"],i=n(e);if(i)return r(i)}function wt(e,t,n){var r=n&&n.allowDestructuring;t=t||e;if(f.option.freeze){var i=bt(e);i&&F(\"W121\",e,i)}return e.identifier&&!e.isMetaProperty&&f.funct[\"(scope)\"].block.reassign(e.value,e),e.id===\".\"?((!e.left||e.left.value===\"arguments\"&&!f.isStrict())&&F(\"E031\",t),f.nameStack.set(f.tokens.prev),!0):e.id===\"{\"||e.id===\"[\"?(r&&f.tokens.curr.left.destructAssign?f.tokens.curr.left.destructAssign.forEach(function(e){e.id&&f.funct[\"(scope)\"].block.modify(e.id,e.token)}):e.id===\"{\"||!e.left?F(\"E031\",t):e.left.value===\"arguments\"&&!f.isStrict()&&F(\"E031\",t),e.id===\"[\"&&f.nameStack.set(e.right),!0):e.isMetaProperty?(q(\"E031\",t),!0):e.identifier&&!O(e)?(f.funct[\"(scope)\"].labeltype(e.value)===\"exception\"&&F(\"W022\",e),f.nameStack.set(e),!0):(e===f.syntax[\"function\"]&&F(\"W023\",f.tokens.curr),!1)}function Et(e,t,n){var r=ht(e,typeof t==\"function\"?t:function(e,t){t.left=e;if(e&&wt(e,t,{allowDestructuring:!0}))return t.right=Q(10),t;q(\"E031\",t)},n);return r.exps=!0,r.assign=!0,r}function St(e,t,n){var r=nt(e,n);return ot(r),r.led=typeof t==\"function\"?t:function(e){return f.option.bitwise&&F(\"W016\",this,this.id),this.left=e,this.right=Q(n),this},r}function xt(e){return Et(e,function(e,t){f.option.bitwise&&F(\"W016\",t,t.id);if(e&&wt(e,t))return t.right=Q(10),t;q(\"E031\",t)},20)}function Tt(e){var t=nt(e,150);return t.led=function(e){return f.option.plusplus?F(\"W016\",this,this.id):(!e.identifier||O(e))&&e.id!==\".\"&&e.id!==\"[\"&&F(\"W017\",this),e.isMetaProperty?q(\"E031\",this):e&&e.identifier&&f.funct[\"(scope)\"].block.modify(e.value,e),this.left=e,this},t}function Nt(e,t,n){if(!f.tokens.next.identifier)return;n||V();var r=f.tokens.curr,i=f.tokens.curr.value;return O(r)?t&&f.inES5()?i:e&&i===\"undefined\"?i:(F(\"W024\",f.tokens.curr,f.tokens.curr.id),i):i}function Ct(e,t){var n=Nt(e,t,!1);if(n)return n;if(f.tokens.next.value===\"...\"){f.inES6(!0)||F(\"W119\",f.tokens.next,\"spread/rest operator\",\"6\"),V();if(pn(f.tokens.next,\"...\")){F(\"E024\",f.tokens.next,\"...\");while(pn(f.tokens.next,\"...\"))V()}if(!f.tokens.next.identifier){F(\"E024\",f.tokens.curr,\"...\");return}return Ct(e,t)}q(\"E030\",f.tokens.next,f.tokens.next.value),f.tokens.next.id!==\";\"&&V()}function kt(e){var t=0,n;if(f.tokens.next.id!==\";\"||e.inBracelessBlock)return;for(;;){do n=W(t),t+=1;while(n.id!==\"(end)\"&&n.id===\"(comment)\");if(n.reach)return;if(n.id!==\"(endline)\"){if(n.id===\"function\"){f.option.latedef===!0&&F(\"W026\",n);break}F(\"W027\",n,n.value,e.value);break}}}function Lt(){if(f.tokens.next.id!==\";\"){if(f.tokens.next.isUnclosed)return V();var e=G(f.tokens.next)===f.tokens.curr.line&&f.tokens.next.id!==\"(end)\",t=pn(f.tokens.next,\"}\");e&&!t?R(\"E058\",f.tokens.curr.line,f.tokens.curr.character):f.option.asi||(t&&!f.option.lastsemic||!e)&&I(\"W033\",f.tokens.curr.line,f.tokens.curr.character)}else V(\";\")}function At(){var e=g,t,n=f.tokens.next,r=!1;if(n.id===\";\"){V(\";\");return}var i=O(n);i&&n.meta&&n.meta.isFutureReservedWord&&W().id===\":\"&&(F(\"W024\",n,n.id),i=!1),n.identifier&&!i&&W().id===\":\"&&(V(),V(\":\"),r=!0,f.funct[\"(scope)\"].stack(),f.funct[\"(scope)\"].block.addBreakLabel(n.value,{token:f.tokens.curr}),!f.tokens.next.labelled&&f.tokens.next.value!==\"{\"&&F(\"W028\",f.tokens.next,n.value,f.tokens.next.value),f.tokens.next.label=n.value,n=f.tokens.next);if(n.id===\"{\"){var s=f.funct[\"(verb)\"]===\"case\"&&f.tokens.curr.value===\":\";_t(!0,!0,!1,!1,s);return}return t=Q(0,!0),t&&(!t.identifier||t.value!==\"function\")&&(t.type!==\"(punctuator)\"||!t.left||!t.left.identifier||t.left.value!==\"function\")&&!f.isStrict()&&f.option.strict===\"global\"&&F(\"E007\"),n.block||(!f.option.expr&&(!t||!t.exps)?F(\"W030\",f.tokens.curr):f.option.nonew&&t&&t.left&&t.id===\"(\"&&t.left.id===\"new\"&&F(\"W031\",n),Lt()),g=e,r&&f.funct[\"(scope)\"].unstack(),t}function Ot(){var e=[],t;while(!f.tokens.next.reach&&f.tokens.next.id!==\"(end)\")f.tokens.next.id===\";\"?(t=W(),(!t||t.id!==\"(\"&&t.id!==\"[\")&&F(\"W032\"),V(\";\")):e.push(At());return e}function Mt(){var e,t,n;while(f.tokens.next.id===\"(string)\"){t=W(0);if(t.id===\"(endline)\"){e=1;do n=W(e++);while(n.id===\"(endline)\");if(n.id===\";\")t=n;else{if(n.value===\"[\"||n.value===\".\")break;(!f.option.asi||n.value===\"(\")&&F(\"W033\",f.tokens.next)}}else{if(t.id===\".\"||t.id===\"[\")break;t.id!==\";\"&&F(\"W033\",t)}V();var r=f.tokens.curr.value;(f.directive[r]||r===\"use strict\"&&f.option.strict===\"implied\")&&F(\"W034\",f.tokens.curr,r),f.directive[r]=!0,t.id===\";\"&&V(\";\")}f.isStrict()&&(f.option[\"(explicitNewcap)\"]||(f.option.newcap=!0),f.option.undef=!0)}function _t(e,t,n,i,s){var o,u=m,a=g,l,c,h,p;m=e,c=f.tokens.next;var d=f.funct[\"(metrics)\"];d.nestedBlockDepth+=1,d.verifyMaxNestedBlockDepthPerFunction();if(f.tokens.next.id===\"{\"){V(\"{\"),f.funct[\"(scope)\"].stack(),h=f.tokens.curr.line;if(f.tokens.next.id!==\"}\"){g+=f.option.indent;while(!e&&f.tokens.next.from>g)g+=f.option.indent;if(n){l={};for(p in f.directive)r.has(f.directive,p)&&(l[p]=f.directive[p]);Mt(),f.option.strict&&f.funct[\"(context)\"][\"(global)\"]&&!l[\"use strict\"]&&!f.isStrict()&&F(\"E007\")}o=Ot(),d.statementCount+=o.length,g-=f.option.indent}V(\"}\",c),n&&(f.funct[\"(scope)\"].validateParams(),l&&(f.directive=l)),f.funct[\"(scope)\"].unstack(),g=a}else if(!e)if(n){f.funct[\"(scope)\"].stack(),l={},t&&!i&&!f.inMoz()&&q(\"W118\",f.tokens.curr,\"function closure expressions\");if(!t)for(p in f.directive)r.has(f.directive,p)&&(l[p]=f.directive[p]);Q(10),f.option.strict&&f.funct[\"(context)\"][\"(global)\"]&&!l[\"use strict\"]&&!f.isStrict()&&F(\"E007\"),f.funct[\"(scope)\"].unstack()}else q(\"E021\",f.tokens.next,\"{\",f.tokens.next.value);else f.funct[\"(noblockscopedvar)\"]=f.tokens.next.id!==\"for\",f.funct[\"(scope)\"].stack(),(!t||f.option.curly)&&F(\"W116\",f.tokens.next,\"{\",f.tokens.next.value),f.tokens.next.inBracelessBlock=!0,g+=f.option.indent,o=[At()],g-=f.option.indent,f.funct[\"(scope)\"].unstack(),delete f.funct[\"(noblockscopedvar)\"];switch(f.funct[\"(verb)\"]){case\"break\":case\"continue\":case\"return\":case\"throw\":if(s)break;default:f.funct[\"(verb)\"]=null}return m=u,e&&f.option.noempty&&(!o||o.length===0)&&F(\"W035\",f.tokens.prev),d.nestedBlockDepth-=1,o}function Dt(e){E&&typeof E[e]!=\"boolean\"&&F(\"W036\",f.tokens.curr,e),typeof w[e]==\"number\"?w[e]+=1:w[e]=1}function Bt(){var e={};e.exps=!0,f.funct[\"(comparray)\"].stack();var t=!1;return f.tokens.next.value!==\"for\"&&(t=!0,f.inMoz()||F(\"W116\",f.tokens.next,\"for\",f.tokens.next.value),f.funct[\"(comparray)\"].setState(\"use\"),e.right=Q(10)),V(\"for\"),f.tokens.next.value===\"each\"&&(V(\"each\"),f.inMoz()||F(\"W118\",f.tokens.curr,\"for each\")),V(\"(\"),f.funct[\"(comparray)\"].setState(\"define\"),e.left=Q(130),r.contains([\"in\",\"of\"],f.tokens.next.value)?V():q(\"E045\",f.tokens.curr),f.funct[\"(comparray)\"].setState(\"generate\"),Q(10),V(\")\"),f.tokens.next.value===\"if\"&&(V(\"if\"),V(\"(\"),f.funct[\"(comparray)\"].setState(\"filter\"),e.filter=Q(10),V(\")\")),t||(f.funct[\"(comparray)\"].setState(\"use\"),e.right=Q(10)),V(\"]\"),f.funct[\"(comparray)\"].unstack(),e}function jt(){return f.funct[\"(statement)\"]&&f.funct[\"(statement)\"].type===\"class\"||f.funct[\"(context)\"]&&f.funct[\"(context)\"][\"(verb)\"]===\"class\"}function Ft(e){return e.identifier||e.id===\"(string)\"||e.id===\"(number)\"}function It(e){var t,n=!0;return typeof e==\"object\"?t=e:(n=e,t=Nt(!1,!0,n)),t?typeof t==\"object\"&&(t.id===\"(string)\"||t.id===\"(identifier)\"?t=t.value:t.id===\"(number)\"&&(t=t.value.toString())):f.tokens.next.id===\"(string)\"?(t=f.tokens.next.value,n||V()):f.tokens.next.id===\"(number)\"&&(t=f.tokens.next.value.toString(),n||V()),t===\"hasOwnProperty\"&&F(\"W001\"),t}function qt(e){function h(e){f.funct[\"(scope)\"].addParam.apply(f.funct[\"(scope)\"],e)}var t,n=[],i,s=[],o,u=!1,a=!1,l=0,c=e&&e.loneArg;if(c&&c.identifier===!0)return f.funct[\"(scope)\"].addParam(c.value,c),{arity:1,params:[c.value]};t=f.tokens.next,(!e||!e.parsedOpening)&&V(\"(\");if(f.tokens.next.id===\")\"){V(\")\");return}for(;;){l++;var p=[];if(r.contains([\"{\",\"[\"],f.tokens.next.id)){s=Gt();for(o in s)o=s[o],o.id&&(n.push(o.id),p.push([o.id,o.token]))}else{pn(f.tokens.next,\"...\")&&(a=!0),i=Ct(!0);if(i)n.push(i),p.push([i,f.tokens.curr]);else while(!hn(f.tokens.next,[\",\",\")\"]))V()}u&&f.tokens.next.id!==\"=\"&&q(\"W138\",f.tokens.current),f.tokens.next.id===\"=\"&&(f.inES6()||F(\"W119\",f.tokens.next,\"default parameters\",\"6\"),V(\"=\"),u=!0,Q(10)),p.forEach(h);if(f.tokens.next.id!==\",\")return V(\")\",t),{arity:l,params:n};a&&F(\"W131\",f.tokens.next),tt()}}function Rt(e,t,n){var i={\"(name)\":e,\"(breakage)\":0,\"(loopage)\":0,\"(tokens)\":{},\"(properties)\":{},\"(catch)\":!1,\"(global)\":!1,\"(line)\":null,\"(character)\":null,\"(metrics)\":null,\"(statement)\":null,\"(context)\":null,\"(scope)\":null,\"(comparray)\":null,\"(generator)\":null,\"(arrow)\":null,\"(params)\":null};return t&&r.extend(i,{\"(line)\":t.line,\"(character)\":t.character,\"(metrics)\":Vt(t)}),r.extend(i,n),i[\"(context)\"]&&(i[\"(scope)\"]=i[\"(context)\"][\"(scope)\"],i[\"(comparray)\"]=i[\"(context)\"][\"(comparray)\"]),i}function Ut(e){return\"(scope)\"in e}function zt(e){return e[\"(global)\"]&&!e[\"(verb)\"]}function Wt(e){function i(){if(f.tokens.curr.template&&f.tokens.curr.tail&&f.tokens.curr.context===t)return!0;var e=f.tokens.next.template&&f.tokens.next.tail&&f.tokens.next.context===t;return e&&V(),e||f.tokens.next.isUnclosed}var t=this.context,n=this.noSubst,r=this.depth;if(!n)while(!i())!f.tokens.next.template||f.tokens.next.depth>r?Q(0):V();return{id:\"(template)\",type:\"(template)\",tag:e}}function Xt(e){var t,n,r,i,s,o,u,a,l=f.option,c=f.ignored;e&&(r=e.name,i=e.statement,s=e.classExprBinding,o=e.type===\"generator\",u=e.type===\"arrow\",a=e.ignoreLoopFunc),f.option=Object.create(f.option),f.ignored=Object.create(f.ignored),f.funct=Rt(r||f.nameStack.infer(),f.tokens.next,{\"(statement)\":i,\"(context)\":f.funct,\"(arrow)\":u,\"(generator)\":o}),t=f.funct,n=f.tokens.curr,n.funct=f.funct,v.push(f.funct),f.funct[\"(scope)\"].stack(\"functionouter\");var h=r||s;h&&f.funct[\"(scope)\"].block.add(h,s?\"class\":\"function\",f.tokens.curr,!1),f.funct[\"(scope)\"].stack(\"functionparams\");var p=qt(e);return p?(f.funct[\"(params)\"]=p.params,f.funct[\"(metrics)\"].arity=p.arity,f.funct[\"(metrics)\"].verifyMaxParametersPerFunction()):f.funct[\"(metrics)\"].arity=0,u&&(f.inES6(!0)||F(\"W119\",f.tokens.curr,\"arrow function syntax (=>)\",\"6\"),e.loneArg||V(\"=>\")),_t(!1,!0,!0,u),!f.option.noyield&&o&&f.funct[\"(generator)\"]!==\"yielded\"&&F(\"W124\",f.tokens.curr),f.funct[\"(metrics)\"].verifyMaxStatementsPerFunction(),f.funct[\"(metrics)\"].verifyMaxComplexityPerFunction(),f.funct[\"(unusedOption)\"]=f.option.unused,f.option=l,f.ignored=c,f.funct[\"(last)\"]=f.tokens.curr.line,f.funct[\"(lastcharacter)\"]=f.tokens.curr.character,f.funct[\"(scope)\"].unstack(),f.funct[\"(scope)\"].unstack(),f.funct=f.funct[\"(context)\"],!a&&!f.option.loopfunc&&f.funct[\"(loopage)\"]&&t[\"(isCapturing)\"]&&F(\"W083\",n),t}function Vt(e){return{statementCount:0,nestedBlockDepth:-1,ComplexityCount:1,arity:0,verifyMaxStatementsPerFunction:function(){f.option.maxstatements&&this.statementCount>f.option.maxstatements&&F(\"W071\",e,this.statementCount)},verifyMaxParametersPerFunction:function(){r.isNumber(f.option.maxparams)&&this.arity>f.option.maxparams&&F(\"W072\",e,this.arity)},verifyMaxNestedBlockDepthPerFunction:function(){f.option.maxdepth&&this.nestedBlockDepth>0&&this.nestedBlockDepth===f.option.maxdepth+1&&F(\"W073\",null,this.nestedBlockDepth)},verifyMaxComplexityPerFunction:function(){var t=f.option.maxcomplexity,n=this.ComplexityCount;t&&n>t&&F(\"W074\",e,n)}}}function $t(){f.funct[\"(metrics)\"].ComplexityCount+=1}function Jt(e){var t,n;e&&(t=e.id,n=e.paren,t===\",\"&&(e=e.exprs[e.exprs.length-1])&&(t=e.id,n=n||e.paren));switch(t){case\"=\":case\"+=\":case\"-=\":case\"*=\":case\"%=\":case\"&=\":case\"|=\":case\"^=\":case\"/=\":!n&&!f.option.boss&&F(\"W084\")}}function Kt(e){if(f.inES5())for(var t in e)e[t]&&e[t].setterToken&&!e[t].getterToken&&F(\"W078\",e[t].setterToken)}function Qt(e,t){if(pn(f.tokens.next,\".\")){var n=f.tokens.curr.id;V(\".\");var r=Ct();return f.tokens.curr.isMetaProperty=!0,e!==r?q(\"E057\",f.tokens.prev,n,r):t(),f.tokens.curr}}function Gt(e){var t=e&&e.assignment;return f.inES6()||F(\"W104\",f.tokens.curr,t?\"destructuring assignment\":\"destructuring binding\",\"6\"),Yt(e)}function Yt(e){var t,n=[],r=e&&e.openingParsed,i=e&&e.assignment,s=i?{assignment:i}:null,o=r?f.tokens.curr:f.tokens.next,u=function(){var e;if(hn(f.tokens.next,[\"[\",\"{\"])){t=Yt(s);for(var r in t)r=t[r],n.push({id:r.id,token:r.token})}else if(pn(f.tokens.next,\",\"))n.push({id:null,token:f.tokens.curr});else{if(!pn(f.tokens.next,\"(\")){var o=pn(f.tokens.next,\"...\");if(i){var a=o?W(0):f.tokens.next;a.identifier||F(\"E030\",a,a.value);var l=Q(155);l&&(wt(l),l.identifier&&(e=l.value))}else e=Ct();return e&&n.push({id:e,token:f.tokens.curr}),o}V(\"(\"),u(),V(\")\")}return!1},a=function(){var e;pn(f.tokens.next,\"[\")?(V(\"[\"),Q(10),V(\"]\"),V(\":\"),u()):f.tokens.next.id===\"(string)\"||f.tokens.next.id===\"(number)\"?(V(),V(\":\"),u()):(e=Ct(),pn(f.tokens.next,\":\")?(V(\":\"),u()):e&&(i&&wt(f.tokens.curr),n.push({id:e,token:f.tokens.curr})))};if(pn(o,\"[\")){r||V(\"[\"),pn(f.tokens.next,\"]\")&&F(\"W137\",f.tokens.curr);var l=!1;while(!pn(f.tokens.next,\"]\"))u()&&!l&&pn(f.tokens.next,\",\")&&(F(\"W130\",f.tokens.next),l=!0),pn(f.tokens.next,\"=\")&&(pn(f.tokens.prev,\"...\")?V(\"]\"):V(\"=\"),f.tokens.next.id===\"undefined\"&&F(\"W080\",f.tokens.prev,f.tokens.prev.value),Q(10)),pn(f.tokens.next,\"]\")||V(\",\");V(\"]\")}else if(pn(o,\"{\")){r||V(\"{\"),pn(f.tokens.next,\"}\")&&F(\"W137\",f.tokens.curr);while(!pn(f.tokens.next,\"}\")){a(),pn(f.tokens.next,\"=\")&&(V(\"=\"),f.tokens.next.id===\"undefined\"&&F(\"W080\",f.tokens.prev,f.tokens.prev.value),Q(10));if(!pn(f.tokens.next,\"}\")){V(\",\");if(pn(f.tokens.next,\"}\"))break}}V(\"}\")}return n}function Zt(e,t){var n=t.first;if(!n)return;r.zip(e,Array.isArray(n)?n:[n]).forEach(function(e){var t=e[0],n=e[1];t&&n?t.first=n:t&&t.first&&!n&&F(\"W080\",t.first,t.first.value)})}function en(e,t,n){var i=n&&n.prefix,s=n&&n.inexport,o=e===\"let\",u=e===\"const\",a,l,c,h;f.inES6()||F(\"W104\",f.tokens.curr,e,\"6\"),o&&f.tokens.next.value===\"(\"?(f.inMoz()||F(\"W118\",f.tokens.next,\"let block\"),V(\"(\"),f.funct[\"(scope)\"].stack(),h=!0):f.funct[\"(noblockscopedvar)\"]&&q(\"E048\",f.tokens.curr,u?\"Const\":\"Let\"),t.first=[];for(;;){var p=[];r.contains([\"{\",\"[\"],f.tokens.next.value)?(a=Gt(),l=!1):(a=[{id:Ct(),token:f.tokens.curr}],l=!0),!i&&u&&f.tokens.next.id!==\"=\"&&F(\"E012\",f.tokens.curr,f.tokens.curr.value);for(var d in a)a.hasOwnProperty(d)&&(d=a[d],f.funct[\"(scope)\"].block.isGlobal()&&S[d.id]===!1&&F(\"W079\",d.token,d.id),d.id&&!f.funct[\"(noblockscopedvar)\"]&&(f.funct[\"(scope)\"].addlabel(d.id,{type:e,token:d.token}),p.push(d.token),l&&s&&f.funct[\"(scope)\"].setExported(d.token.value,d.token)));f.tokens.next.id===\"=\"&&(V(\"=\"),!i&&f.tokens.next.id===\"undefined\"&&F(\"W080\",f.tokens.prev,f.tokens.prev.value),!i&&W(0).id===\"=\"&&f.tokens.next.identifier&&F(\"W120\",f.tokens.next,f.tokens.next.value),c=Q(i?120:10),l?a[0].first=c:Zt(p,c)),t.first=t.first.concat(p);if(f.tokens.next.id!==\",\")break;tt()}return h&&(V(\")\"),_t(!0,!0),t.block=!0,f.funct[\"(scope)\"].unstack()),t}function sn(e){return f.inES6()||F(\"W104\",f.tokens.curr,\"class\",\"6\"),e?(this.name=Ct(),f.funct[\"(scope)\"].addlabel(this.name,{type:\"class\",token:f.tokens.curr})):f.tokens.next.identifier&&f.tokens.next.value!==\"extends\"?(this.name=Ct(),this.namedExpr=!0):this.name=f.nameStack.infer(),on(this),this}function on(e){var t=f.inClassBody;f.tokens.next.value===\"extends\"&&(V(\"extends\"),e.heritage=Q(10)),f.inClassBody=!0,V(\"{\"),e.body=un(e),V(\"}\"),f.inClassBody=t}function un(e){var t,n,r,i,s=Object.create(null),o=Object.create(null),u;for(var a=0;f.tokens.next.id!==\"}\";++a){t=f.tokens.next,n=!1,r=!1,i=null;if(t.id===\";\"){F(\"W032\"),V(\";\");continue}t.id===\"*\"&&(r=!0,V(\"*\"),t=f.tokens.next);if(t.id===\"[\")t=cn(),u=!0;else{if(!Ft(t)){F(\"W052\",f.tokens.next,f.tokens.next.value||f.tokens.next.type),V();continue}V(),u=!1;if(t.identifier&&t.value===\"static\"){pn(f.tokens.next,\"*\")&&(r=!0,V(\"*\"));if(Ft(f.tokens.next)||f.tokens.next.id===\"[\")u=f.tokens.next.id===\"[\",n=!0,t=f.tokens.next,f.tokens.next.id===\"[\"?t=cn():V()}t.identifier&&(t.value===\"get\"||t.value===\"set\")&&(Ft(f.tokens.next)||f.tokens.next.id===\"[\")&&(u=f.tokens.next.id===\"[\",i=t,t=f.tokens.next,f.tokens.next.id===\"[\"?t=cn():V())}if(!pn(f.tokens.next,\"(\")){q(\"E054\",f.tokens.next,f.tokens.next.value);while(f.tokens.next.id!==\"}\"&&!pn(f.tokens.next,\"(\"))V();f.tokens.next.value!==\"(\"&&Xt({statement:e})}u||(i?ln(i.value,n?o:s,t.value,t,!0,n):(t.value===\"constructor\"?f.nameStack.set(e):f.nameStack.set(t),fn(n?o:s,t.value,t,!0,n)));if(i&&t.value===\"constructor\"){var l=i.value===\"get\"?\"class getter method\":\"class setter method\";q(\"E049\",t,l,\"constructor\")}else t.value===\"prototype\"&&q(\"E049\",t,\"class method\",\"prototype\");It(t),Xt({statement:e,type:r?\"generator\":null,classExprBinding:e.namedExpr?e.name:null})}Kt(s)}function fn(e,t,n,r,i){var s=[\"key\",\"class method\",\"static class method\"];s=s[(r||!1)+(i||!1)],n.identifier&&(t=n.value),e[t]&&t!==\"__proto__\"?F(\"W075\",f.tokens.next,s,t):e[t]=Object.create(null),e[t].basic=!0,e[t].basictkn=n}function ln(e,t,n,r,i,s){var o=e===\"get\"?\"getterToken\":\"setterToken\",u=\"\";i?(s&&(u+=\"static \"),u+=e+\"ter method\"):u=\"key\",f.tokens.curr.accessorType=e,f.nameStack.set(r),t[n]?(t[n].basic||t[n][o])&&n!==\"__proto__\"&&F(\"W075\",f.tokens.next,u,n):t[n]=Object.create(null),t[n][o]=r}function cn(){V(\"[\"),f.inES6()||F(\"W119\",f.tokens.curr,\"computed property names\",\"6\");var e=Q(10);return V(\"]\"),e}function hn(e,t){return e.type===\"(punctuator)\"?r.contains(t,e.value):!1}function pn(e,t){return e.type===\"(punctuator)\"&&e.value===t}function dn(){var e=an();e.notJson?(!f.inES6()&&e.isDestAssign&&F(\"W104\",f.tokens.curr,\"destructuring assignment\",\"6\"),Ot()):(f.option.laxbreak=!0,f.jsonMode=!0,mn())}function mn(){function e(){var e={},t=f.tokens.next;V(\"{\");if(f.tokens.next.id!==\"}\")for(;;){if(f.tokens.next.id===\"(end)\")q(\"E026\",f.tokens.next,t.line);else{if(f.tokens.next.id===\"}\"){F(\"W094\",f.tokens.curr);break}f.tokens.next.id===\",\"?q(\"E028\",f.tokens.next):f.tokens.next.id!==\"(string)\"&&F(\"W095\",f.tokens.next,f.tokens.next.value)}e[f.tokens.next.value]===!0?F(\"W075\",f.tokens.next,\"key\",f.tokens.next.value):f.tokens.next.value===\"__proto__\"&&!f.option.proto||f.tokens.next.value===\"__iterator__\"&&!f.option.iterator?F(\"W096\",f.tokens.next,f.tokens.next.value):e[f.tokens.next.value]=!0,V(),V(\":\"),mn();if(f.tokens.next.id!==\",\")break;V(\",\")}V(\"}\")}function t(){var e=f.tokens.next;V(\"[\");if(f.tokens.next.id!==\"]\")for(;;){if(f.tokens.next.id===\"(end)\")q(\"E027\",f.tokens.next,e.line);else{if(f.tokens.next.id===\"]\"){F(\"W094\",f.tokens.curr);break}f.tokens.next.id===\",\"&&q(\"E028\",f.tokens.next)}mn();if(f.tokens.next.id!==\",\")break;V(\",\")}V(\"]\")}switch(f.tokens.next.id){case\"{\":e();break;case\"[\":t();break;case\"true\":case\"false\":case\"null\":case\"(number)\":case\"(string)\":V();break;case\"-\":V(\"-\"),V(\"(number)\");break;default:q(\"E003\",f.tokens.next)}}var e,t={\"<\":!0,\"<=\":!0,\"==\":!0,\"===\":!0,\"!==\":!0,\"!=\":!0,\">\":!0,\">=\":!0,\"+\":!0,\"-\":!0,\"*\":!0,\"/\":!0,\"%\":!0},n,d=[\"closure\",\"exception\",\"global\",\"label\",\"outer\",\"unused\",\"var\"],v,m,g,y,b,w,E,S,x,T,N=[],C=new i.EventEmitter,mt={};mt.legacy=[\"xml\",\"unknown\"],mt.es3=[\"undefined\",\"boolean\",\"number\",\"string\",\"function\",\"object\"],mt.es3=mt.es3.concat(mt.legacy),mt.es6=mt.es3.concat(\"symbol\"),at(\"(number)\",function(){return this}),at(\"(string)\",function(){return this}),f.syntax[\"(identifier)\"]={type:\"(identifier)\",lbp:0,identifier:!0,nud:function(){var e=this.value;return f.tokens.next.id===\"=>\"?this:(f.funct[\"(comparray)\"].check(e)||f.funct[\"(scope)\"].block.use(e,f.tokens.curr),this)},led:function(){q(\"E033\",f.tokens.next,f.tokens.next.value)}};var Pt={lbp:0,identifier:!1,template:!0};f.syntax[\"(template)\"]=r.extend({type:\"(template)\",nud:Wt,led:Wt,noSubst:!1},Pt),f.syntax[\"(template middle)\"]=r.extend({type:\"(template middle)\",middle:!0,noSubst:!1},Pt),f.syntax[\"(template tail)\"]=r.extend({type:\"(template tail)\",tail:!0,noSubst:!1},Pt),f.syntax[\"(no subst template)\"]=r.extend({type:\"(template)\",nud:Wt,led:Wt,noSubst:!0,tail:!0},Pt),at(\"(regexp)\",function(){return this}),rt(\"(endline)\"),rt(\"(begin)\"),rt(\"(end)\").reach=!0,rt(\"(error)\").reach=!0,rt(\"}\").reach=!0,rt(\")\"),rt(\"]\"),rt('\"').reach=!0,rt(\"'\").reach=!0,rt(\";\"),rt(\":\").reach=!0,rt(\"#\"),ft(\"else\"),ft(\"case\").reach=!0,ft(\"catch\"),ft(\"default\").reach=!0,ft(\"finally\"),ct(\"arguments\",function(e){f.isStrict()&&f.funct[\"(global)\"]&&F(\"E008\",e)}),ct(\"eval\"),ct(\"false\"),ct(\"Infinity\"),ct(\"null\"),ct(\"this\",function(e){f.isStrict()&&!jt()&&!f.option.validthis&&(f.funct[\"(statement)\"]&&f.funct[\"(name)\"].charAt(0)>\"Z\"||f.funct[\"(global)\"])&&F(\"W040\",e)}),ct(\"true\"),ct(\"undefined\"),Et(\"=\",\"assign\",20),Et(\"+=\",\"assignadd\",20),Et(\"-=\",\"assignsub\",20),Et(\"*=\",\"assignmult\",20),Et(\"/=\",\"assigndiv\",20).nud=function(){q(\"E014\")},Et(\"%=\",\"assignmod\",20),xt(\"&=\"),xt(\"|=\"),xt(\"^=\"),xt(\"<<=\"),xt(\">>=\"),xt(\">>>=\"),ht(\",\",function(e,t){var n;t.exprs=[e],f.option.nocomma&&F(\"W127\");if(!tt({peek:!0}))return t;for(;;){if(!(n=Q(10)))break;t.exprs.push(n);if(f.tokens.next.value!==\",\"||!tt())break}return t},10,!0),ht(\"?\",function(e,t){return $t(),t.left=e,t.right=Q(10),V(\":\"),t[\"else\"]=Q(10),t},30);var Ht=40;ht(\"||\",function(e,t){return $t(),t.left=e,t.right=Q(Ht),t},Ht),ht(\"&&\",\"and\",50),St(\"|\",\"bitor\",70),St(\"^\",\"bitxor\",80),St(\"&\",\"bitand\",90),dt(\"==\",function(e,t){var n=f.option.eqnull&&((e&&e.value)===\"null\"||(t&&t.value)===\"null\");switch(!0){case!n&&f.option.eqeqeq:this.from=this.character,F(\"W116\",this,\"===\",\"==\");break;case vt(e):F(\"W041\",this,\"===\",e.value);break;case vt(t):F(\"W041\",this,\"===\",t.value);break;case gt(t,e,f):F(\"W122\",this,t.value);break;case gt(e,t,f):F(\"W122\",this,e.value)}return this}),dt(\"===\",function(e,t){return gt(t,e,f)?F(\"W122\",this,t.value):gt(e,t,f)&&F(\"W122\",this,e.value),this}),dt(\"!=\",function(e,t){var n=f.option.eqnull&&((e&&e.value)===\"null\"||(t&&t.value)===\"null\");return!n&&f.option.eqeqeq?(this.from=this.character,F(\"W116\",this,\"!==\",\"!=\")):vt(e)?F(\"W041\",this,\"!==\",e.value):vt(t)?F(\"W041\",this,\"!==\",t.value):gt(t,e,f)?F(\"W122\",this,t.value):gt(e,t,f)&&F(\"W122\",this,e.value),this}),dt(\"!==\",function(e,t){return gt(t,e,f)?F(\"W122\",this,t.value):gt(e,t,f)&&F(\"W122\",this,e.value),this}),dt(\"<\"),dt(\">\"),dt(\"<=\"),dt(\">=\"),St(\"<<\",\"shiftleft\",120),St(\">>\",\"shiftright\",120),St(\">>>\",\"shiftrightunsigned\",120),ht(\"in\",\"in\",120),ht(\"instanceof\",\"instanceof\",120),ht(\"+\",function(e,t){var n;return t.left=e,t.right=n=Q(130),e&&n&&e.id===\"(string)\"&&n.id===\"(string)\"?(e.value+=n.value,e.character=n.character,!f.option.scripturl&&a.javascriptURL.test(e.value)&&F(\"W050\",e),e):t},130),ut(\"+\",\"num\"),ut(\"+++\",function(){return F(\"W007\"),this.arity=\"unary\",this.right=Q(150),this}),ht(\"+++\",function(e){return F(\"W007\"),this.left=e,this.right=Q(130),this},130),ht(\"-\",\"sub\",130),ut(\"-\",\"neg\"),ut(\"---\",function(){return F(\"W006\"),this.arity=\"unary\",this.right=Q(150),this}),ht(\"---\",function(e){return F(\"W006\"),this.left=e,this.right=Q(130),this},130),ht(\"*\",\"mult\",140),ht(\"/\",\"div\",140),ht(\"%\",\"mod\",140),Tt(\"++\"),ut(\"++\",\"preinc\"),f.syntax[\"++\"].exps=!0,Tt(\"--\"),ut(\"--\",\"predec\"),f.syntax[\"--\"].exps=!0,ut(\"delete\",function(){var e=Q(10);return e?(e.id!==\".\"&&e.id!==\"[\"&&F(\"W051\"),this.first=e,e.identifier&&!f.isStrict()&&(e.forgiveUndef=!0),this):this}).exps=!0,ut(\"~\",function(){return f.option.bitwise&&F(\"W016\",this,\"~\"),this.arity=\"unary\",this.right=Q(150),this}),ut(\"...\",function(){return f.inES6(!0)||F(\"W119\",this,\"spread/rest operator\",\"6\"),!f.tokens.next.identifier&&f.tokens.next.type!==\"(string)\"&&!hn(f.tokens.next,[\"[\",\"(\"])&&q(\"E030\",f.tokens.next,f.tokens.next.value),Q(150),this}),ut(\"!\",function(){return this.arity=\"unary\",this.right=Q(150),this.right||B(\"E041\",this.line||0),t[this.right.id]===!0&&F(\"W018\",this,\"!\"),this}),ut(\"typeof\",function(){var e=Q(150);return this.first=this.right=e,e||B(\"E041\",this.line||0,this.character||0),e.identifier&&(e.forgiveUndef=!0),this}),ut(\"new\",function(){var e=Qt(\"target\",function(){f.inES6(!0)||F(\"W119\",f.tokens.prev,\"new.target\",\"6\");var e,t=f.funct;while(t){e=!t[\"(global)\"];if(!t[\"(arrow)\"])break;t=t[\"(context)\"]}e||F(\"W136\",f.tokens.prev,\"new.target\")});if(e)return e;var t=Q(155),n;if(t&&t.id!==\"function\")if(t.identifier){t[\"new\"]=!0;switch(t.value){case\"Number\":case\"String\":case\"Boolean\":case\"Math\":case\"JSON\":F(\"W053\",f.tokens.prev,t.value);break;case\"Symbol\":f.inES6()&&F(\"W053\",f.tokens.prev,t.value);break;case\"Function\":f.option.evil||F(\"W054\");break;case\"Date\":case\"RegExp\":case\"this\":break;default:t.id!==\"function\"&&(n=t.value.substr(0,1),f.option.newcap&&(n<\"A\"||n>\"Z\")&&!f.funct[\"(scope)\"].isPredefined(t.value)&&F(\"W055\",f.tokens.curr))}}else t.id!==\".\"&&t.id!==\"[\"&&t.id!==\"(\"&&F(\"W056\",f.tokens.curr);else f.option.supernew||F(\"W057\",this);return f.tokens.next.id!==\"(\"&&!f.option.supernew&&F(\"W058\",f.tokens.curr,f.tokens.curr.value),this.first=this.right=t,this}),f.syntax[\"new\"].exps=!0,ut(\"void\").exps=!0,ht(\".\",function(e,t){var n=Ct(!1,!0);return typeof n==\"string\"&&Dt(n),t.left=e,t.right=n,n&&n===\"hasOwnProperty\"&&f.tokens.next.value===\"=\"&&F(\"W001\"),!e||e.value!==\"arguments\"||n!==\"callee\"&&n!==\"caller\"?!f.option.evil&&e&&e.value===\"document\"&&(n===\"write\"||n===\"writeln\")&&F(\"W060\",e):f.option.noarg?F(\"W059\",e,n):f.isStrict()&&q(\"E008\"),!f.option.evil&&(n===\"eval\"||n===\"execScript\")&&yt(e,f)&&F(\"W061\"),t},160,!0),ht(\"(\",function(e,t){f.option.immed&&e&&!e.immed&&e.id===\"function\"&&F(\"W062\");var n=0,r=[];e&&e.type===\"(identifier)\"&&e.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&\"Array Number String Boolean Date Object Error Symbol\".indexOf(e.value)===-1&&(e.value===\"Math\"?F(\"W063\",e):f.option.newcap&&F(\"W064\",e));if(f.tokens.next.id!==\")\")for(;;){r[r.length]=Q(10),n+=1;if(f.tokens.next.id!==\",\")break;tt()}return V(\")\"),typeof e==\"object\"&&(!f.inES5()&&e.value===\"parseInt\"&&n===1&&F(\"W065\",f.tokens.curr),f.option.evil||(e.value===\"eval\"||e.value===\"Function\"||e.value===\"execScript\"?(F(\"W061\",e),r[0]&&[0].id===\"(string)\"&&U(e,r[0].value)):!r[0]||r[0].id!==\"(string)\"||e.value!==\"setTimeout\"&&e.value!==\"setInterval\"?r[0]&&r[0].id===\"(string)\"&&e.value===\".\"&&e.left.value===\"window\"&&(e.right===\"setTimeout\"||e.right===\"setInterval\")&&(F(\"W066\",e),U(e,r[0].value)):(F(\"W066\",e),U(e,r[0].value))),!e.identifier&&e.id!==\".\"&&e.id!==\"[\"&&e.id!==\"=>\"&&e.id!==\"(\"&&e.id!==\"&&\"&&e.id!==\"||\"&&e.id!==\"?\"&&(!f.inES6()||!e[\"(name)\"])&&F(\"W067\",t)),t.left=e,t},155,!0).exps=!0,ut(\"(\",function(){var e=f.tokens.next,t,n=-1,r,i,s,o,u=1,a=f.tokens.curr,l=f.tokens.prev,c=!f.option.singleGroups;do e.value===\"(\"?u+=1:e.value===\")\"&&(u-=1),n+=1,t=e,e=W(n);while((u!==0||t.value!==\")\")&&e.value!==\";\"&&e.type!==\"(end)\");f.tokens.next.id===\"function\"&&(i=f.tokens.next.immed=!0);if(e.value===\"=>\")return Xt({type:\"arrow\",parsedOpening:!0});var h=[];if(f.tokens.next.id!==\")\")for(;;){h.push(Q(10));if(f.tokens.next.id!==\",\")break;f.option.nocomma&&F(\"W127\"),tt()}V(\")\",this),f.option.immed&&h[0]&&h[0].id===\"function\"&&f.tokens.next.id!==\"(\"&&f.tokens.next.id!==\".\"&&f.tokens.next.id!==\"[\"&&F(\"W068\",this);if(!h.length)return;return h.length>1?(r=Object.create(f.syntax[\",\"]),r.exprs=h,s=h[0],o=h[h.length-1],c||(c=l.assign||l.delim)):(r=s=o=h[0],c||(c=a.beginsStmt&&(r.id===\"{\"||i||Ut(r))||i&&(!J()||f.tokens.prev.id!==\"}\")||Ut(r)&&!J()||r.id===\"{\"&&l.id===\"=>\"||r.type===\"(number)\"&&pn(e,\".\")&&/^\\d+$/.test(r.value))),r&&(!c&&(s.left||s.right||r.exprs)&&(c=!K(l)&&s.lbp<=l.lbp||!J()&&o.lbp<f.tokens.next.lbp),c||F(\"W126\",a),r.paren=!0),r}),pt(\"=>\"),ht(\"[\",function(e,t){var n=Q(10),r;return n&&n.type===\"(string)\"&&(!f.option.evil&&(n.value===\"eval\"||n.value===\"execScript\")&&yt(e,f)&&F(\"W061\"),Dt(n.value),!f.option.sub&&a.identifier.test(n.value)&&(r=f.syntax[n.value],(!r||!O(r))&&F(\"W069\",f.tokens.prev,n.value))),V(\"]\",t),n&&n.value===\"hasOwnProperty\"&&f.tokens.next.value===\"=\"&&F(\"W001\"),t.left=e,t.right=n,t},160,!0),ut(\"[\",function(){var e=an();if(e.isCompArray)return!f.option.esnext&&!f.inMoz()&&F(\"W118\",f.tokens.curr,\"array comprehension\"),Bt();if(e.isDestAssign)return this.destructAssign=Gt({openingParsed:!0,assignment:!0}),this;var t=f.tokens.curr.line!==G(f.tokens.next);this.first=[],t&&(g+=f.option.indent,f.tokens.next.from===g+f.option.indent&&(g+=f.option.indent));while(f.tokens.next.id!==\"(end)\"){while(f.tokens.next.id===\",\"){if(!f.option.elision){if(!!f.inES5()){F(\"W128\");do V(\",\");while(f.tokens.next.id===\",\");continue}F(\"W070\")}V(\",\")}if(f.tokens.next.id===\"]\")break;this.first.push(Q(10));if(f.tokens.next.id!==\",\")break;tt({allowTrailing:!0});if(f.tokens.next.id===\"]\"&&!f.inES5()){F(\"W070\",f.tokens.curr);break}}return t&&(g-=f.option.indent),V(\"]\",this),this}),function(e){e.nud=function(){var e,t,n,r,i,s=!1,o,u=Object.create(null);e=f.tokens.curr.line!==G(f.tokens.next),e&&(g+=f.option.indent,f.tokens.next.from===g+f.option.indent&&(g+=f.option.indent));var a=an();if(a.isDestAssign)return this.destructAssign=Gt({openingParsed:!0,assignment:!0}),this;for(;;){if(f.tokens.next.id===\"}\")break;o=f.tokens.next.value;if(!f.tokens.next.identifier||X().id!==\",\"&&X().id!==\"}\")if(W().id===\":\"||o!==\"get\"&&o!==\"set\"){f.tokens.next.value===\"*\"&&f.tokens.next.type===\"(punctuator)\"?(f.inES6()||F(\"W104\",f.tokens.next,\"generator functions\",\"6\"),V(\"*\"),s=!0):s=!1;if(f.tokens.next.id===\"[\")n=cn(),f.nameStack.set(n);else{f.nameStack.set(f.tokens.next),n=It(),fn(u,n,f.tokens.next);if(typeof n!=\"string\")break}f.tokens.next.value===\"(\"?(f.inES6()||F(\"W104\",f.tokens.curr,\"concise methods\",\"6\"),Xt({type:s?\"generator\":null})):(V(\":\"),Q(10))}else V(o),f.inES5()||q(\"E034\"),n=It(),!n&&!f.inES6()&&q(\"E035\"),n&&ln(o,u,n,f.tokens.curr),i=f.tokens.next,t=Xt(),r=t[\"(params)\"],o===\"get\"&&n&&r?F(\"W076\",i,r[0],n):o===\"set\"&&n&&(!r||r.length!==1)&&F(\"W077\",i,n);else f.inES6()||F(\"W104\",f.tokens.next,\"object short notation\",\"6\"),n=It(!0),fn(u,n,f.tokens.next),Q(10);Dt(n);if(f.tokens.next.id!==\",\")break;tt({allowTrailing:!0,property:!0}),f.tokens.next.id===\",\"?F(\"W070\",f.tokens.curr):f.tokens.next.id===\"}\"&&!f.inES5()&&F(\"W070\",f.tokens.curr)}return e&&(g-=f.option.indent),V(\"}\",this),Kt(u),this},e.fud=function(){q(\"E036\",f.tokens.curr)}}(rt(\"{\"));var tn=it(\"const\",function(e){return en(\"const\",this,e)});tn.exps=!0;var nn=it(\"let\",function(e){return en(\"let\",this,e)});nn.exps=!0;var rn=it(\"var\",function(e){var t=e&&e.prefix,n=e&&e.inexport,i,o,u,a=e&&e.implied,l=!e||!e.ignore;this.first=[];for(;;){var c=[];r.contains([\"{\",\"[\"],f.tokens.next.value)?(i=Gt(),o=!1):(i=[{id:Ct(),token:f.tokens.curr}],o=!0),(!t||!a)&&l&&f.option.varstmt&&F(\"W132\",this),this.first=this.first.concat(c);for(var h in i)i.hasOwnProperty(h)&&(h=i[h],!a&&f.funct[\"(global)\"]&&(S[h.id]===!1?F(\"W079\",h.token,h.id):f.option.futurehostile===!1&&(!f.inES5()&&s.ecmaIdentifiers[5][h.id]===!1||!f.inES6()&&s.ecmaIdentifiers[6][h.id]===!1)&&F(\"W129\",h.token,h.id)),h.id&&(a===\"for\"?(f.funct[\"(scope)\"].has(h.id)||l&&F(\"W088\",h.token,h.id),f.funct[\"(scope)\"].block.use(h.id,h.token)):(f.funct[\"(scope)\"].addlabel(h.id,{type:\"var\",token:h.token}),o&&n&&f.funct[\"(scope)\"].setExported(h.id,h.token)),c.push(h.token)));f.tokens.next.id===\"=\"&&(f.nameStack.set(f.tokens.curr),V(\"=\"),!t&&l&&!f.funct[\"(loopage)\"]&&f.tokens.next.id===\"undefined\"&&F(\"W080\",f.tokens.prev,f.tokens.prev.value),W(0).id===\"=\"&&f.tokens.next.identifier&&(!t&&l&&!f.funct[\"(params)\"]||f.funct[\"(params)\"].indexOf(f.tokens.next.value)===-1)&&F(\"W120\",f.tokens.next,f.tokens.next.value),u=Q(t?120:10),o?i[0].first=u:Zt(c,u));if(f.tokens.next.id!==\",\")break;tt()}return this});rn.exps=!0,st(\"class\",function(){return sn.call(this,!0)}),st(\"function\",function(e){var t=e&&e.inexport,n=!1;f.tokens.next.value===\"*\"&&(V(\"*\"),f.inES6({strict:!0})?n=!0:F(\"W119\",f.tokens.curr,\"function*\",\"6\")),m&&F(\"W082\",f.tokens.curr);var r=Nt();return f.funct[\"(scope)\"].addlabel(r,{type:\"function\",token:f.tokens.curr}),r===undefined?F(\"W025\"):t&&f.funct[\"(scope)\"].setExported(r,f.tokens.prev),Xt({name:r,statement:this,type:n?\"generator\":null,ignoreLoopFunc:m}),f.tokens.next.id===\"(\"&&f.tokens.next.line===f.tokens.curr.line&&q(\"E039\"),this}),ut(\"function\",function(){var e=!1;f.tokens.next.value===\"*\"&&(f.inES6()||F(\"W119\",f.tokens.curr,\"function*\",\"6\"),V(\"*\"),e=!0);var t=Nt();return Xt({name:t,type:e?\"generator\":null}),this}),st(\"if\",function(){var e=f.tokens.next;$t(),f.condition=!0,V(\"(\");var t=Q(0);Jt(t);var n=null;f.option.forin&&f.forinifcheckneeded&&(f.forinifcheckneeded=!1,n=f.forinifchecks[f.forinifchecks.length-1],t.type===\"(punctuator)\"&&t.value===\"!\"?n.type=\"(negative)\":n.type=\"(positive)\"),V(\")\",e),f.condition=!1;var r=_t(!0,!0);return n&&n.type===\"(negative)\"&&r&&r[0]&&r[0].type===\"(identifier)\"&&r[0].value===\"continue\"&&(n.type=\"(negative-with-continue)\"),f.tokens.next.id===\"else\"&&(V(\"else\"),f.tokens.next.id===\"if\"||f.tokens.next.id===\"switch\"?At():_t(!0,!0)),this}),st(\"try\",function(){function t(){V(\"catch\"),V(\"(\"),f.funct[\"(scope)\"].stack(\"catchparams\");if(hn(f.tokens.next,[\"[\",\"{\"])){var e=Gt();r.each(e,function(e){e.id&&f.funct[\"(scope)\"].addParam(e.id,e,\"exception\")})}else f.tokens.next.type!==\"(identifier)\"?F(\"E030\",f.tokens.next,f.tokens.next.value):f.funct[\"(scope)\"].addParam(Ct(),f.tokens.curr,\"exception\");f.tokens.next.value===\"if\"&&(f.inMoz()||F(\"W118\",f.tokens.curr,\"catch filter\"),V(\"if\"),Q(0)),V(\")\"),_t(!1),f.funct[\"(scope)\"].unstack()}var e;_t(!0);while(f.tokens.next.id===\"catch\")$t(),e&&!f.inMoz()&&F(\"W118\",f.tokens.next,\"multiple catch blocks\"),t(),e=!0;if(f.tokens.next.id===\"finally\"){V(\"finally\"),_t(!0);return}return e||q(\"E021\",f.tokens.next,\"catch\",f.tokens.next.value),this}),st(\"while\",function(){var e=f.tokens.next;return f.funct[\"(breakage)\"]+=1,f.funct[\"(loopage)\"]+=1,$t(),V(\"(\"),Jt(Q(0)),V(\")\",e),_t(!0,!0),f.funct[\"(breakage)\"]-=1,f.funct[\"(loopage)\"]-=1,this}).labelled=!0,st(\"with\",function(){var e=f.tokens.next;return f.isStrict()?q(\"E010\",f.tokens.curr):f.option.withstmt||F(\"W085\",f.tokens.curr),V(\"(\"),Q(0),V(\")\",e),_t(!0,!0),this}),st(\"switch\",function(){var e=f.tokens.next,t=!1,n=!1;f.funct[\"(breakage)\"]+=1,V(\"(\"),Jt(Q(0)),V(\")\",e),e=f.tokens.next,V(\"{\"),f.tokens.next.from===g&&(n=!0),n||(g+=f.option.indent),this.cases=[];for(;;)switch(f.tokens.next.id){case\"case\":switch(f.funct[\"(verb)\"]){case\"yield\":case\"break\":case\"case\":case\"continue\":case\"return\":case\"switch\":case\"throw\":break;default:f.tokens.curr.caseFallsThrough||F(\"W086\",f.tokens.curr,\"case\")}V(\"case\"),this.cases.push(Q(0)),$t(),t=!0,V(\":\"),f.funct[\"(verb)\"]=\"case\";break;case\"default\":switch(f.funct[\"(verb)\"]){case\"yield\":case\"break\":case\"continue\":case\"return\":case\"throw\":break;default:this.cases.length&&(f.tokens.curr.caseFallsThrough||F(\"W086\",f.tokens.curr,\"default\"))}V(\"default\"),t=!0,V(\":\");break;case\"}\":n||(g-=f.option.indent),V(\"}\",e),f.funct[\"(breakage)\"]-=1,f.funct[\"(verb)\"]=undefined;return;case\"(end)\":q(\"E023\",f.tokens.next,\"}\");return;default:g+=f.option.indent;if(t)switch(f.tokens.curr.id){case\",\":q(\"E040\");return;case\":\":t=!1,Ot();break;default:q(\"E025\",f.tokens.curr);return}else{if(f.tokens.curr.id!==\":\"){q(\"E021\",f.tokens.next,\"case\",f.tokens.next.value);return}V(\":\"),q(\"E024\",f.tokens.curr,\":\"),Ot()}g-=f.option.indent}return this}).labelled=!0,it(\"debugger\",function(){return f.option.debug||F(\"W087\",this),this}).exps=!0,function(){var e=it(\"do\",function(){f.funct[\"(breakage)\"]+=1,f.funct[\"(loopage)\"]+=1,$t(),this.first=_t(!0,!0),V(\"while\");var e=f.tokens.next;return V(\"(\"),Jt(Q(0)),V(\")\",e),f.funct[\"(breakage)\"]-=1,f.funct[\"(loopage)\"]-=1,this});e.labelled=!0,e.exps=!0}(),st(\"for\",function(){var e,t=f.tokens.next,n=!1,i=null;t.value===\"each\"&&(i=t,V(\"each\"),f.inMoz()||F(\"W118\",f.tokens.curr,\"for each\")),$t(),V(\"(\");var s,o=0,u=[\"in\",\"of\"],a=0,l,c;hn(f.tokens.next,[\"{\",\"[\"])&&++a;do{s=W(o),++o,hn(s,[\"{\",\"[\"])?++a:hn(s,[\"}\",\"]\"])&&--a;if(a<0)break;a===0&&(!l&&pn(s,\",\")?l=s:!c&&pn(s,\"=\")&&(c=s))}while(a>0||!r.contains(u,s.value)&&s.value!==\";\"&&s.type!==\"(end)\");if(r.contains(u,s.value)){!f.inES6()&&s.value===\"of\"&&F(\"W104\",s,\"for of\",\"6\");var h=!c&&!l;c&&q(\"W133\",l,s.value,\"initializer is forbidden\"),l&&q(\"W133\",l,s.value,\"more than one ForBinding\"),f.tokens.next.id===\"var\"?(V(\"var\"),f.tokens.curr.fud({prefix:!0})):f.tokens.next.id===\"let\"||f.tokens.next.id===\"const\"?(V(f.tokens.next.id),n=!0,f.funct[\"(scope)\"].stack(),f.tokens.curr.fud({prefix:!0})):Object.create(rn).fud({prefix:!0,implied:\"for\",ignore:!h}),V(s.value),Q(20),V(\")\",t),s.value===\"in\"&&f.option.forin&&(f.forinifcheckneeded=!0,f.forinifchecks===undefined&&(f.forinifchecks=[]),f.forinifchecks.push({type:\"(none)\"})),f.funct[\"(breakage)\"]+=1,f.funct[\"(loopage)\"]+=1,e=_t(!0,!0);if(s.value===\"in\"&&f.option.forin){if(f.forinifchecks&&f.forinifchecks.length>0){var p=f.forinifchecks.pop();(e&&e.length>0&&(typeof e[0]!=\"object\"||e[0].value!==\"if\")||p.type===\"(positive)\"&&e.length>1||p.type===\"(negative)\")&&F(\"W089\",this)}f.forinifcheckneeded=!1}f.funct[\"(breakage)\"]-=1,f.funct[\"(loopage)\"]-=1}else{i&&q(\"E045\",i);if(f.tokens.next.id!==\";\")if(f.tokens.next.id===\"var\")V(\"var\"),f.tokens.curr.fud();else if(f.tokens.next.id===\"let\")V(\"let\"),n=!0,f.funct[\"(scope)\"].stack(),f.tokens.curr.fud();else for(;;){Q(0,\"for\");if(f.tokens.next.id!==\",\")break;l()}Z(f.tokens.curr),V(\";\"),f.funct[\"(loopage)\"]+=1,f.tokens.next.id!==\";\"&&Jt(Q(0)),Z(f.tokens.curr),V(\";\"),f.tokens.next.id===\";\"&&q(\"E021\",f.tokens.next,\")\",\";\");if(f.tokens.next.id!==\")\")for(;;){Q(0,\"for\");if(f.tokens.next.id!==\",\")break;l()}V(\")\",t),f.funct[\"(breakage)\"]+=1,_t(!0,!0),f.funct[\"(breakage)\"]-=1,f.funct[\"(loopage)\"]-=1}return n&&f.funct[\"(scope)\"].unstack(),this}).labelled=!0,it(\"break\",function(){var e=f.tokens.next.value;return f.option.asi||Z(this),f.tokens.next.id!==\";\"&&!f.tokens.next.reach&&f.tokens.curr.line===G(f.tokens.next)?(f.funct[\"(scope)\"].funct.hasBreakLabel(e)||F(\"W090\",f.tokens.next,e),this.first=f.tokens.next,V()):f.funct[\"(breakage)\"]===0&&F(\"W052\",f.tokens.next,this.value),kt(this),this}).exps=!0,it(\"continue\",function(){var e=f.tokens.next.value;return f.funct[\"(breakage)\"]===0&&F(\"W052\",f.tokens.next,this.value),f.funct[\"(loopage)\"]||F(\"W052\",f.tokens.next,this.value),f.option.asi||Z(this),f.tokens.next.id!==\";\"&&!f.tokens.next.reach&&f.tokens.curr.line===G(f.tokens.next)&&(f.funct[\"(scope)\"].funct.hasBreakLabel(e)||F(\"W090\",f.tokens.next,e),this.first=f.tokens.next,V()),kt(this),this}).exps=!0,it(\"return\",function(){return this.line===G(f.tokens.next)?f.tokens.next.id!==\";\"&&!f.tokens.next.reach&&(this.first=Q(0),this.first&&this.first.type===\"(punctuator)\"&&this.first.value===\"=\"&&!this.first.paren&&!f.option.boss&&I(\"W093\",this.first.line,this.first.character)):f.tokens.next.type===\"(punctuator)\"&&[\"[\",\"{\",\"+\",\"-\"].indexOf(f.tokens.next.value)>-1&&Z(this),kt(this),this}).exps=!0,function(e){e.exps=!0,e.lbp=25}(ut(\"yield\",function(){var e=f.tokens.prev;f.inES6(!0)&&!f.funct[\"(generator)\"]?(\"(catch)\"!==f.funct[\"(name)\"]||!f.funct[\"(context)\"][\"(generator)\"])&&q(\"E046\",f.tokens.curr,\"yield\"):f.inES6()||F(\"W104\",f.tokens.curr,\"yield\",\"6\"),f.funct[\"(generator)\"]=\"yielded\";var t=!1;f.tokens.next.value===\"*\"&&(t=!0,V(\"*\"));if(this.line===G(f.tokens.next)||!f.inMoz()){if(t||f.tokens.next.id!==\";\"&&!f.option.asi&&!f.tokens.next.reach&&f.tokens.next.nud)Y(f.tokens.curr,f.tokens.next),this.first=Q(10),this.first.type===\"(punctuator)\"&&this.first.value===\"=\"&&!this.first.paren&&!f.option.boss&&I(\"W093\",this.first.line,this.first.character);f.inMoz()&&f.tokens.next.id!==\")\"&&(e.lbp>30||!e.assign&&!J()||e.id===\"yield\")&&q(\"E050\",this)}else f.option.asi||Z(this);return this})),it(\"throw\",function(){return Z(this),this.first=Q(20),kt(this),this}).exps=!0,it(\"import\",function(){f.inES6()||F(\"W119\",f.tokens.curr,\"import\",\"6\");if(f.tokens.next.type===\"(string)\")return V(\"(string)\"),this;if(f.tokens.next.identifier){this.name=Ct(),f.funct[\"(scope)\"].addlabel(this.name,{type:\"const\",token:f.tokens.curr});if(f.tokens.next.value!==\",\")return V(\"from\"),V(\"(string)\"),this;V(\",\")}if(f.tokens.next.id===\"*\")V(\"*\"),V(\"as\"),f.tokens.next.identifier&&(this.name=Ct(),f.funct[\"(scope)\"].addlabel(this.name,{type:\"const\",token:f.tokens.curr}));else{V(\"{\");for(;;){if(f.tokens.next.value===\"}\"){V(\"}\");break}var e;f.tokens.next.type===\"default\"?(e=\"default\",V(\"default\")):e=Ct(),f.tokens.next.value===\"as\"&&(V(\"as\"),e=Ct()),f.funct[\"(scope)\"].addlabel(e,{type:\"const\",token:f.tokens.curr});if(f.tokens.next.value!==\",\"){if(f.tokens.next.value===\"}\"){V(\"}\");break}q(\"E024\",f.tokens.next,f.tokens.next.value);break}V(\",\")}}return V(\"from\"),V(\"(string)\"),this}).exps=!0,it(\"export\",function(){var e=!0,t,n;f.inES6()||(F(\"W119\",f.tokens.curr,\"export\",\"6\"),e=!1),f.funct[\"(scope)\"].block.isGlobal()||(q(\"E053\",f.tokens.curr),e=!1);if(f.tokens.next.value===\"*\")return V(\"*\"),V(\"from\"),V(\"(string)\"),this;if(f.tokens.next.type===\"default\"){f.nameStack.set(f.tokens.next),V(\"default\");var r=f.tokens.next.id;if(r===\"function\"||r===\"class\")this.block=!0;return t=W(),Q(10),n=t.value,this.block&&(f.funct[\"(scope)\"].addlabel(n,{type:r,token:t}),f.funct[\"(scope)\"].setExported(n,t)),this}if(f.tokens.next.value===\"{\"){V(\"{\");var i=[];for(;;){f.tokens.next.identifier||q(\"E030\",f.tokens.next,f.tokens.next.value),V(),i.push(f.tokens.curr),f.tokens.next.value===\"as\"&&(V(\"as\"),f.tokens.next.identifier||q(\"E030\",f.tokens.next,f.tokens.next.value),V());if(f.tokens.next.value!==\",\"){if(f.tokens.next.value===\"}\"){V(\"}\");break}q(\"E024\",f.tokens.next,f.tokens.next.value);break}V(\",\")}return f.tokens.next.value===\"from\"?(V(\"from\"),V(\"(string)\")):e&&i.forEach(function(e){f.funct[\"(scope)\"].setExported(e.value,e)}),this}if(f.tokens.next.id===\"var\")V(\"var\"),f.tokens.curr.fud({inexport:!0});else if(f.tokens.next.id===\"let\")V(\"let\"),f.tokens.curr.fud({inexport:!0});else if(f.tokens.next.id===\"const\")V(\"const\"),f.tokens.curr.fud({inexport:!0});else if(f.tokens.next.id===\"function\")this.block=!0,V(\"function\"),f.syntax[\"function\"].fud({inexport:!0});else if(f.tokens.next.id===\"class\"){this.block=!0,V(\"class\");var s=f.tokens.next;f.syntax[\"class\"].fud(),f.funct[\"(scope)\"].setExported(s.value,s)}else q(\"E024\",f.tokens.next,f.tokens.next.value);return this}).exps=!0,lt(\"abstract\"),lt(\"boolean\"),lt(\"byte\"),lt(\"char\"),lt(\"class\",{es5:!0,nud:sn}),lt(\"double\"),lt(\"enum\",{es5:!0}),lt(\"export\",{es5:!0}),lt(\"extends\",{es5:!0}),lt(\"final\"),lt(\"float\"),lt(\"goto\"),lt(\"implements\",{es5:!0,strictOnly:!0}),lt(\"import\",{es5:!0}),lt(\"int\"),lt(\"interface\",{es5:!0,strictOnly:!0}),lt(\"long\"),lt(\"native\"),lt(\"package\",{es5:!0,strictOnly:!0}),lt(\"private\",{es5:!0,strictOnly:!0}),lt(\"protected\",{es5:!0,strictOnly:!0}),lt(\"public\",{es5:!0,strictOnly:!0}),lt(\"short\"),lt(\"static\",{es5:!0,strictOnly:!0}),lt(\"super\",{es5:!0}),lt(\"synchronized\"),lt(\"transient\"),lt(\"volatile\");var an=function(){var e,t,n,r=-1,i=0,s={};hn(f.tokens.curr,[\"[\",\"{\"])&&(i+=1);do{n=r===-1?f.tokens.curr:e,e=r===-1?f.tokens.next:W(r),t=W(r+1),r+=1,hn(e,[\"[\",\"{\"])?i+=1:hn(e,[\"]\",\"}\"])&&(i-=1);if(i===1&&e.identifier&&e.value===\"for\"&&!pn(n,\".\")){s.isCompArray=!0,s.notJson=!0;break}if(i===0&&hn(e,[\"}\",\"]\"])){if(t.value===\"=\"){s.isDestAssign=!0,s.notJson=!0;break}if(t.value===\".\"){s.notJson=!0;break}}pn(e,\";\")&&(s.isBlock=!0,s.notJson=!0)}while(i>0&&e.id!==\"(end)\");return s},vn=function(){function i(e){var t=n.variables.filter(function(t){if(t.value===e)return t.undef=!1,e}).length;return t!==0}function s(e){var t=n.variables.filter(function(t){if(t.value===e&&!t.undef)return t.unused===!0&&(t.unused=!1),e}).length;return t===0}var e=function(){this.mode=\"use\",this.variables=[]},t=[],n;return{stack:function(){n=new e,t.push(n)},unstack:function(){n.variables.filter(function(e){e.unused&&F(\"W098\",e.token,e.raw_text||e.value),e.undef&&f.funct[\"(scope)\"].block.use(e.value,e.token)}),t.splice(-1,1),n=t[t.length-1]},setState:function(e){r.contains([\"use\",\"define\",\"generate\",\"filter\"],e)&&(n.mode=e)},check:function(e){if(!n)return;return n&&n.mode===\"use\"?(s(e)&&n.variables.push({funct:f.funct,token:f.tokens.curr,value:e,undef:!0,unused:!1}),!0):n&&n.mode===\"define\"?(i(e)||n.variables.push({funct:f.funct,token:f.tokens.curr,value:e,undef:!1,unused:!0}),!0):n&&n.mode===\"generate\"?(f.funct[\"(scope)\"].block.use(e,f.tokens.curr),!0):n&&n.mode===\"filter\"?(s(e)&&f.funct[\"(scope)\"].block.use(e,f.tokens.curr),!0):!1}}},gn=function(e){return e.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")},yn=function(t,i,o){function U(e,t){if(!e)return;!Array.isArray(e)&&typeof e==\"object\"&&(e=Object.keys(e)),e.forEach(t)}var a,l,c,d,A,O,M={},P={};i=r.clone(i),f.reset(),i&&i.scope?p.scope=i.scope:(p.errors=[],p.undefs=[],p.internals=[],p.blacklist={},p.scope=\"(main)\"),S=Object.create(null),D(S,s.ecmaIdentifiers[3]),D(S,s.reservedVars),D(S,o||{}),n=Object.create(null);var j=Object.create(null);if(i){U(i.predef||null,function(e){var t,n;e[0]===\"-\"?(t=e.slice(1),p.blacklist[t]=t,delete S[t]):(n=Object.getOwnPropertyDescriptor(i.predef,e),S[e]=n?n.value:!1)}),U(i.exported||null,function(e){j[e]=!0}),delete i.predef,delete i.exported,O=Object.keys(i);for(c=0;c<O.length;c++)if(/^-W\\d{3}$/g.test(O[c]))P[O[c].slice(1)]=!0;else{var z=O[c];M[z]=i[z],(z===\"esversion\"&&i[z]===5||z===\"es5\"&&i[z])&&F(\"I003\"),O[c]===\"newcap\"&&i[z]===!1&&(M[\"(explicitNewcap)\"]=!0)}}f.option=M,f.ignored=P,f.option.indent=f.option.indent||4,f.option.maxerr=f.option.maxerr||50,g=1;var W=h(f,S,j,n);W.on(\"warning\",function(e){F.apply(null,[e.code,e.token].concat(e.data))}),W.on(\"error\",function(e){q.apply(null,[e.code,e.token].concat(e.data))}),f.funct=Rt(\"(global)\",null,{\"(global)\":!0,\"(scope)\":W,\"(comparray)\":vn(),\"(metrics)\":Vt(f.tokens.next)}),v=[f.funct],T=[],x=null,w={},E=null,m=!1,y=[];if(!L(t)&&!Array.isArray(t))return R(\"E004\",0),!1;e={get isJSON(){return f.jsonMode},getOption:function(e){return f.option[e]||null},getCache:function(e){return f.cache[e]},setCache:function(e,t){f.cache[e]=t},warn:function(e,t){I.apply(null,[e,t.line,t.char].concat(t.data))},on:function(e,t){e.split(\" \").forEach(function(e){C.on(e,t)}.bind(this))}},C.removeAllListeners(),(N||[]).forEach(function(t){t(e)}),f.tokens.prev=f.tokens.curr=f.tokens.next=f.syntax[\"(begin)\"],i&&i.ignoreDelimiters&&(Array.isArray(i.ignoreDelimiters)||(i.ignoreDelimiters=[i.ignoreDelimiters]),i.ignoreDelimiters.forEach(function(e){if(!e.start||!e.end)return;d=gn(e.start)+\"[\\\\s\\\\S]*?\"+gn(e.end),A=new RegExp(d,\"ig\"),t=t.replace(A,function(e){return e.replace(/./g,\" \")})})),b=new u(t),b.on(\"warning\",function(e){I.apply(null,[e.code,e.line,e.character].concat(e.data))}),b.on(\"error\",function(e){R.apply(null,[e.code,e.line,e.character].concat(e.data))}),b.on(\"fatal\",function(e){B(\"E041\",e.line,e.from)}),b.on(\"Identifier\",function(e){C.emit(\"Identifier\",e)}),b.on(\"String\",function(e){C.emit(\"String\",e)}),b.on(\"Number\",function(e){C.emit(\"Number\",e)}),b.start();for(var X in i)r.has(i,X)&&k(X,f.tokens.curr);H(),D(S,o||{}),tt.first=!0;try{V();switch(f.tokens.next.id){case\"{\":case\"[\":dn();break;default:Mt(),f.directive[\"use strict\"]&&f.option.strict!==\"global\"&&F(\"W097\",f.tokens.prev),Ot()}f.tokens.next.id!==\"(end)\"&&B(\"E041\",f.tokens.curr.line),f.funct[\"(scope)\"].unstack()}catch($){if(!$||$.name!==\"JSHintError\")throw $;var J=f.tokens.next||{};p.errors.push({scope:\"(main)\",raw:$.raw,code:$.code,reason:$.message,line:$.line||J.line,character:$.character||J.from},null)}if(p.scope===\"(main)\"){i=i||{};for(a=0;a<p.internals.length;a+=1)l=p.internals[a],i.scope=l.elem,yn(l.value,i,o)}return p.errors.length===0};return yn.addModule=function(e){N.push(e)},yn.addModule(l.register),yn.data=function(){var e={functions:[],options:f.option},t,n,r,i,s,o;yn.errors.length&&(e.errors=yn.errors),f.jsonMode&&(e.json=!0);var u=f.funct[\"(scope)\"].getImpliedGlobals();u.length>0&&(e.implieds=u),T.length>0&&(e.urls=T),o=f.funct[\"(scope)\"].getUsedOrDefinedGlobals(),o.length>0&&(e.globals=o);for(r=1;r<v.length;r+=1){n=v[r],t={};for(i=0;i<d.length;i+=1)t[d[i]]=[];for(i=0;i<d.length;i+=1)t[d[i]].length===0&&delete t[d[i]];t.name=n[\"(name)\"],t.param=n[\"(params)\"],t.line=n[\"(line)\"],t.character=n[\"(character)\"],t.last=n[\"(last)\"],t.lastcharacter=n[\"(lastcharacter)\"],t.metrics={complexity:n[\"(metrics)\"].ComplexityCount,parameters:n[\"(metrics)\"].arity,statements:n[\"(metrics)\"].statementCount},e.functions.push(t)}var a=f.funct[\"(scope)\"].getUnuseds();a.length>0&&(e.unused=a);for(s in w)if(typeof w[s]==\"number\"){e.member=w;break}return e},yn.jshint=yn,yn}();typeof n==\"object\"&&n&&(n.JSHINT=p)},{\"../lodash\":\"/node_modules/jshint/lodash.js\",\"./lex.js\":\"/node_modules/jshint/src/lex.js\",\"./messages.js\":\"/node_modules/jshint/src/messages.js\",\"./options.js\":\"/node_modules/jshint/src/options.js\",\"./reg.js\":\"/node_modules/jshint/src/reg.js\",\"./scope-manager.js\":\"/node_modules/jshint/src/scope-manager.js\",\"./state.js\":\"/node_modules/jshint/src/state.js\",\"./style.js\":\"/node_modules/jshint/src/style.js\",\"./vars.js\":\"/node_modules/jshint/src/vars.js\",events:\"/node_modules/browserify/node_modules/events/events.js\"}],\"/node_modules/jshint/src/lex.js\":[function(e,t,n){\"use strict\";function h(){var e=[];return{push:function(t){e.push(t)},check:function(){for(var t=0;t<e.length;++t)e[t]();e.splice(0,e.length)}}}function p(e){var t=e;typeof t==\"string\"&&(t=t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\").split(\"\\n\")),t[0]&&t[0].substr(0,2)===\"#!\"&&(t[0].indexOf(\"node\")!==-1&&(o.option.node=!0),t[0]=\"\"),this.emitter=new i.EventEmitter,this.source=e,this.setLines(t),this.prereg=!0,this.line=0,this.char=1,this.from=1,this.input=\"\",this.inComment=!1,this.context=[],this.templateStarts=[];for(var n=0;n<o.option.indent;n+=1)o.tab+=\" \";this.ignoreLinterErrors=!1}var r=e(\"../lodash\"),i=e(\"events\"),s=e(\"./reg.js\"),o=e(\"./state.js\").state,u=e(\"../data/ascii-identifier-data.js\"),a=u.asciiIdentifierStartTable,f=u.asciiIdentifierPartTable,l={Identifier:1,Punctuator:2,NumericLiteral:3,StringLiteral:4,Comment:5,Keyword:6,NullLiteral:7,BooleanLiteral:8,RegExp:9,TemplateHead:10,TemplateMiddle:11,TemplateTail:12,NoSubstTemplate:13},c={Block:1,Template:2};p.prototype={_lines:[],inContext:function(e){return this.context.length>0&&this.context[this.context.length-1].type===e},pushContext:function(e){this.context.push({type:e})},popContext:function(){return this.context.pop()},isContext:function(e){return this.context.length>0&&this.context[this.context.length-1]===e},currentContext:function(){return this.context.length>0&&this.context[this.context.length-1]},getLines:function(){return this._lines=o.lines,this._lines},setLines:function(e){this._lines=e,o.lines=this._lines},peek:function(e){return this.input.charAt(e||0)},skip:function(e){e=e||1,this.char+=e,this.input=this.input.slice(e)},on:function(e,t){e.split(\" \").forEach(function(e){this.emitter.on(e,t)}.bind(this))},trigger:function(){this.emitter.emit.apply(this.emitter,Array.prototype.slice.call(arguments))},triggerAsync:function(e,t,n,r){n.push(function(){r()&&this.trigger(e,t)}.bind(this))},scanPunctuator:function(){var e=this.peek(),t,n,r;switch(e){case\".\":if(/^[0-9]$/.test(this.peek(1)))return null;if(this.peek(1)===\".\"&&this.peek(2)===\".\")return{type:l.Punctuator,value:\"...\"};case\"(\":case\")\":case\";\":case\",\":case\"[\":case\"]\":case\":\":case\"~\":case\"?\":return{type:l.Punctuator,value:e};case\"{\":return this.pushContext(c.Block),{type:l.Punctuator,value:e};case\"}\":return this.inContext(c.Block)&&this.popContext(),{type:l.Punctuator,value:e};case\"#\":return{type:l.Punctuator,value:e};case\"\":return null}return t=this.peek(1),n=this.peek(2),r=this.peek(3),e===\">\"&&t===\">\"&&n===\">\"&&r===\"=\"?{type:l.Punctuator,value:\">>>=\"}:e===\"=\"&&t===\"=\"&&n===\"=\"?{type:l.Punctuator,value:\"===\"}:e===\"!\"&&t===\"=\"&&n===\"=\"?{type:l.Punctuator,value:\"!==\"}:e===\">\"&&t===\">\"&&n===\">\"?{type:l.Punctuator,value:\">>>\"}:e===\"<\"&&t===\"<\"&&n===\"=\"?{type:l.Punctuator,value:\"<<=\"}:e===\">\"&&t===\">\"&&n===\"=\"?{type:l.Punctuator,value:\">>=\"}:e===\"=\"&&t===\">\"?{type:l.Punctuator,value:e+t}:e===t&&\"+-<>&|\".indexOf(e)>=0?{type:l.Punctuator,value:e+t}:\"<>=!+-*%&|^\".indexOf(e)>=0?t===\"=\"?{type:l.Punctuator,value:e+t}:{type:l.Punctuator,value:e}:e===\"/\"?t===\"=\"?{type:l.Punctuator,value:\"/=\"}:{type:l.Punctuator,value:\"/\"}:null},scanComments:function(){function u(e,t,n){var r=[\"jshint\",\"jslint\",\"members\",\"member\",\"globals\",\"global\",\"exported\"],i=!1,u=e+t,a=\"plain\";return n=n||{},n.isMultiline&&(u+=\"*/\"),t=t.replace(/\\n/g,\" \"),e===\"/*\"&&s.fallsThrough.test(t)&&(i=!0,a=\"falls through\"),r.forEach(function(n){if(i)return;if(e===\"//\"&&n!==\"jshint\")return;t.charAt(n.length)===\" \"&&t.substr(0,n.length)===n&&(i=!0,e+=n,t=t.substr(n.length)),!i&&t.charAt(0)===\" \"&&t.charAt(n.length+1)===\" \"&&t.substr(1,n.length)===n&&(i=!0,e=e+\" \"+n,t=t.substr(n.length+1));if(!i)return;switch(n){case\"member\":a=\"members\";break;case\"global\":a=\"globals\";break;default:var r=t.split(\":\").map(function(e){return e.replace(/^\\s+/,\"\").replace(/\\s+$/,\"\")});if(r.length===2)switch(r[0]){case\"ignore\":switch(r[1]){case\"start\":o.ignoringLinterErrors=!0,i=!1;break;case\"end\":o.ignoringLinterErrors=!1,i=!1}}a=n}}),{type:l.Comment,commentType:a,value:u,body:t,isSpecial:i,isMultiline:n.isMultiline||!1,isMalformed:n.isMalformed||!1}}var e=this.peek(),t=this.peek(1),n=this.input.substr(2),r=this.line,i=this.char,o=this;if(e===\"*\"&&t===\"/\")return this.trigger(\"error\",{code:\"E018\",line:r,character:i}),this.skip(2),null;if(e!==\"/\"||t!==\"*\"&&t!==\"/\")return null;if(t===\"/\")return this.skip(this.input.length),u(\"//\",n);var a=\"\";if(t===\"*\"){this.inComment=!0,this.skip(2);while(this.peek()!==\"*\"||this.peek(1)!==\"/\")if(this.peek()===\"\"){a+=\"\\n\";if(!this.nextLine())return this.trigger(\"error\",{code:\"E017\",line:r,character:i}),this.inComment=!1,u(\"/*\",a,{isMultiline:!0,isMalformed:!0})}else a+=this.peek(),this.skip();return this.skip(2),this.inComment=!1,u(\"/*\",a,{isMultiline:!0})}},scanKeyword:function(){var e=/^[a-zA-Z_$][a-zA-Z0-9_$]*/.exec(this.input),t=[\"if\",\"in\",\"do\",\"var\",\"for\",\"new\",\"try\",\"let\",\"this\",\"else\",\"case\",\"void\",\"with\",\"enum\",\"while\",\"break\",\"catch\",\"throw\",\"const\",\"yield\",\"class\",\"super\",\"return\",\"typeof\",\"delete\",\"switch\",\"export\",\"import\",\"default\",\"finally\",\"extends\",\"function\",\"continue\",\"debugger\",\"instanceof\"];return e&&t.indexOf(e[0])>=0?{type:l.Keyword,value:e[0]}:null},scanIdentifier:function(){function i(e){return e>256}function s(e){return e>256}function o(e){return/^[0-9a-fA-F]$/.test(e)}function p(e){return e.replace(/\\\\u([0-9a-fA-F]{4})/g,function(e,t){return String.fromCharCode(parseInt(t,16))})}var e=\"\",t=0,n,r,u=function(){t+=1;if(this.peek(t)!==\"u\")return null;var e=this.peek(t+1),n=this.peek(t+2),r=this.peek(t+3),i=this.peek(t+4),u;return o(e)&&o(n)&&o(r)&&o(i)?(u=parseInt(e+n+r+i,16),f[u]||s(u)?(t+=5,\"\\\\u\"+e+n+r+i):null):null}.bind(this),c=function(){var e=this.peek(t),n=e.charCodeAt(0);return n===92?u():n<128?a[n]?(t+=1,e):null:i(n)?(t+=1,e):null}.bind(this),h=function(){var e=this.peek(t),n=e.charCodeAt(0);return n===92?u():n<128?f[n]?(t+=1,e):null:s(n)?(t+=1,e):null}.bind(this);r=c();if(r===null)return null;e=r;for(;;){r=h();if(r===null)break;e+=r}switch(e){case\"true\":case\"false\":n=l.BooleanLiteral;break;case\"null\":n=l.NullLiteral;break;default:n=l.Identifier}return{type:n,value:p(e),text:e,tokenLength:e.length}},scanNumericLiteral:function(){function f(e){return/^[0-9]$/.test(e)}function c(e){return/^[0-7]$/.test(e)}function h(e){return/^[01]$/.test(e)}function p(e){return/^[0-9a-fA-F]$/.test(e)}function d(e){return e===\"$\"||e===\"_\"||e===\"\\\\\"||e>=\"a\"&&e<=\"z\"||e>=\"A\"&&e<=\"Z\"}var e=0,t=\"\",n=this.input.length,r=this.peek(e),i,s=f,u=10,a=!1;if(r!==\".\"&&!f(r))return null;if(r!==\".\"){t=this.peek(e),e+=1,r=this.peek(e);if(t===\"0\"){if(r===\"x\"||r===\"X\")s=p,u=16,e+=1,t+=r;if(r===\"o\"||r===\"O\")s=c,u=8,o.inES6(!0)||this.trigger(\"warning\",{code:\"W119\",line:this.line,character:this.char,data:[\"Octal integer literal\",\"6\"]}),e+=1,t+=r;if(r===\"b\"||r===\"B\")s=h,u=2,o.inES6(!0)||this.trigger(\"warning\",{code:\"W119\",line:this.line,character:this.char,data:[\"Binary integer literal\",\"6\"]}),e+=1,t+=r;c(r)&&(s=c,u=8,a=!0,i=!1,e+=1,t+=r),!c(r)&&f(r)&&(e+=1,t+=r)}while(e<n){r=this.peek(e);if(a&&f(r))i=!0;else if(!s(r))break;t+=r,e+=1}if(s!==f){if(!a&&t.length<=2)return{type:l.NumericLiteral,value:t,isMalformed:!0};if(e<n){r=this.peek(e);if(d(r))return null}return{type:l.NumericLiteral,value:t,base:u,isLegacy:a,isMalformed:!1}}}if(r===\".\"){t+=r,e+=1;while(e<n){r=this.peek(e);if(!f(r))break;t+=r,e+=1}}if(r===\"e\"||r===\"E\"){t+=r,e+=1,r=this.peek(e);if(r===\"+\"||r===\"-\")t+=this.peek(e),e+=1;r=this.peek(e);if(!f(r))return null;t+=r,e+=1;while(e<n){r=this.peek(e);if(!f(r))break;t+=r,e+=1}}if(e<n){r=this.peek(e);if(d(r))return null}return{type:l.NumericLiteral,value:t,base:u,isMalformed:!isFinite(t)}},scanEscapeSequence:function(e){var t=!1,n=1;this.skip();var r=this.peek();switch(r){case\"'\":this.triggerAsync(\"warning\",{code:\"W114\",line:this.line,character:this.char,data:[\"\\\\'\"]},e,function(){return o.jsonMode});break;case\"b\":r=\"\\\\b\";break;case\"f\":r=\"\\\\f\";break;case\"n\":r=\"\\\\n\";break;case\"r\":r=\"\\\\r\";break;case\"t\":r=\"\\\\t\";break;case\"0\":r=\"\\\\0\";var i=parseInt(this.peek(1),10);this.triggerAsync(\"warning\",{code:\"W115\",line:this.line,character:this.char},e,function(){return i>=0&&i<=7&&o.isStrict()});break;case\"u\":var s=this.input.substr(1,4),u=parseInt(s,16);isNaN(u)&&this.trigger(\"warning\",{code:\"W052\",line:this.line,character:this.char,data:[\"u\"+s]}),r=String.fromCharCode(u),n=5;break;case\"v\":this.triggerAsync(\"warning\",{code:\"W114\",line:this.line,character:this.char,data:[\"\\\\v\"]},e,function(){return o.jsonMode}),r=\"\u000b\";break;case\"x\":var a=parseInt(this.input.substr(1,2),16);this.triggerAsync(\"warning\",{code:\"W114\",line:this.line,character:this.char,data:[\"\\\\x-\"]},e,function(){return o.jsonMode}),r=String.fromCharCode(a),n=3;break;case\"\\\\\":r=\"\\\\\\\\\";break;case'\"':r='\\\\\"';break;case\"/\":break;case\"\":t=!0,r=\"\"}return{\"char\":r,jump:n,allowNewLine:t}},scanTemplateLiteral:function(e){var t,n=\"\",r,i=this.line,s=this.char,u=this.templateStarts.length;if(!o.inES6(!0))return null;if(this.peek()===\"`\")t=l.TemplateHead,this.templateStarts.push({line:this.line,\"char\":this.char}),u=this.templateStarts.length,this.skip(1),this.pushContext(c.Template);else{if(!this.inContext(c.Template)||this.peek()!==\"}\")return null;t=l.TemplateMiddle}while(this.peek()!==\"`\"){while((r=this.peek())===\"\"){n+=\"\\n\";if(!this.nextLine()){var a=this.templateStarts.pop();return this.trigger(\"error\",{code:\"E052\",line:a.line,character:a.char}),{type:t,value:n,startLine:i,startChar:s,isUnclosed:!0,depth:u,context:this.popContext()}}}if(r===\"$\"&&this.peek(1)===\"{\")return n+=\"${\",this.skip(2),{type:t,value:n,startLine:i,startChar:s,isUnclosed:!1,depth:u,context:this.currentContext()};if(r===\"\\\\\"){var f=this.scanEscapeSequence(e);n+=f.char,this.skip(f.jump)}else r!==\"`\"&&(n+=r,this.skip(1))}return t=t===l.TemplateHead?l.NoSubstTemplate:l.TemplateTail,this.skip(1),this.templateStarts.pop(),{type:t,value:n,startLine:i,startChar:s,isUnclosed:!1,depth:u,context:this.popContext()}},scanStringLiteral:function(e){var t=this.peek();if(t!=='\"'&&t!==\"'\")return null;this.triggerAsync(\"warning\",{code:\"W108\",line:this.line,character:this.char},e,function(){return o.jsonMode&&t!=='\"'});var n=\"\",r=this.line,i=this.char,s=!1;this.skip();while(this.peek()!==t)if(this.peek()===\"\"){s?(s=!1,this.triggerAsync(\"warning\",{code:\"W043\",line:this.line,character:this.char},e,function(){return!o.option.multistr}),this.triggerAsync(\"warning\",{code:\"W042\",line:this.line,character:this.char},e,function(){return o.jsonMode&&o.option.multistr})):this.trigger(\"warning\",{code:\"W112\",line:this.line,character:this.char});if(!this.nextLine())return this.trigger(\"error\",{code:\"E029\",line:r,character:i}),{type:l.StringLiteral,value:n,startLine:r,startChar:i,isUnclosed:!0,quote:t}}else{s=!1;var u=this.peek(),a=1;u<\" \"&&this.trigger(\"warning\",{code:\"W113\",line:this.line,character:this.char,data:[\"<non-printable>\"]});if(u===\"\\\\\"){var f=this.scanEscapeSequence(e);u=f.char,a=f.jump,s=f.allowNewLine}n+=u,this.skip(a)}return this.skip(),{type:l.StringLiteral,value:n,startLine:r,startChar:i,isUnclosed:!1,quote:t}},scanRegExp:function(){var e=0,t=this.input.length,n=this.peek(),r=n,i=\"\",s=[],o=!1,u=!1,a,f=function(){n<\" \"&&(o=!0,this.trigger(\"warning\",{code:\"W048\",line:this.line,character:this.char})),n===\"<\"&&(o=!0,this.trigger(\"warning\",{code:\"W049\",line:this.line,character:this.char,data:[n]}))}.bind(this);if(!this.prereg||n!==\"/\")return null;e+=1,a=!1;while(e<t){n=this.peek(e),r+=n,i+=n;if(u){n===\"]\"&&(this.peek(e-1)!==\"\\\\\"||this.peek(e-2)===\"\\\\\")&&(u=!1),n===\"\\\\\"&&(e+=1,n=this.peek(e),i+=n,r+=n,f()),e+=1;continue}if(n===\"\\\\\"){e+=1,n=this.peek(e),i+=n,r+=n,f();if(n===\"/\"){e+=1;continue}if(n===\"[\"){e+=1;continue}}if(n===\"[\"){u=!0,e+=1;continue}if(n===\"/\"){i=i.substr(0,i.length-1),a=!0,e+=1;break}e+=1}if(!a)return this.trigger(\"error\",{code:\"E015\",line:this.line,character:this.from}),void this.trigger(\"fatal\",{line:this.line,from:this.from});while(e<t){n=this.peek(e);if(!/[gim]/.test(n))break;s.push(n),r+=n,e+=1}try{new RegExp(i,s.join(\"\"))}catch(c){o=!0,this.trigger(\"error\",{code:\"E016\",line:this.line,character:this.char,data:[c.message]})}return{type:l.RegExp,value:r,flags:s,isMalformed:o}},scanNonBreakingSpaces:function(){return o.option.nonbsp?this.input.search(/(\\u00A0)/):-1},scanUnsafeChars:function(){return this.input.search(s.unsafeChars)},next:function(e){this.from=this.char;var t;if(/\\s/.test(this.peek())){t=this.char;while(/\\s/.test(this.peek()))this.from+=1,this.skip()}var n=this.scanComments()||this.scanStringLiteral(e)||this.scanTemplateLiteral(e);return n?n:(n=this.scanRegExp()||this.scanPunctuator()||this.scanKeyword()||this.scanIdentifier()||this.scanNumericLiteral(),n?(this.skip(n.tokenLength||n.value.length),n):null)},nextLine:function(){var e;if(this.line>=this.getLines().length)return!1;this.input=this.getLines()[this.line],this.line+=1,this.char=1,this.from=1;var t=this.input.trim(),n=function(){return r.some(arguments,function(e){return t.indexOf(e)===0})},i=function(){return r.some(arguments,function(e){return t.indexOf(e,t.length-e.length)!==-1})};this.ignoringLinterErrors===!0&&!n(\"/*\",\"//\")&&(!this.inComment||!i(\"*/\"))&&(this.input=\"\"),e=this.scanNonBreakingSpaces(),e>=0&&this.trigger(\"warning\",{code:\"W125\",line:this.line,character:e+1}),this.input=this.input.replace(/\\t/g,o.tab),e=this.scanUnsafeChars(),e>=0&&this.trigger(\"warning\",{code:\"W100\",line:this.line,character:e});if(!this.ignoringLinterErrors&&o.option.maxlen&&o.option.maxlen<this.input.length){var u=this.inComment||n.call(t,\"//\")||n.call(t,\"/*\"),a=!u||!s.maxlenException.test(t);a&&this.trigger(\"warning\",{code:\"W101\",line:this.line,character:this.input.length})}return!0},start:function(){this.nextLine()},token:function(){function n(e,t){if(!e.reserved)return!1;var n=e.meta;if(n&&n.isFutureReservedWord&&o.inES5()){if(!n.es5)return!1;if(n.strictOnly&&!o.option.strict&&!o.isStrict())return!1;if(t)return!1}return!0}var e=h(),t,i=function(t,i,s,u){var a;t!==\"(endline)\"&&t!==\"(end)\"&&(this.prereg=!1);if(t===\"(punctuator)\"){switch(i){case\".\":case\")\":case\"~\":case\"#\":case\"]\":case\"++\":case\"--\":this.prereg=!1;break;default:this.prereg=!0}a=Object.create(o.syntax[i]||o.syntax[\"(error)\"])}if(t===\"(identifier)\"){if(i===\"return\"||i===\"case\"||i===\"typeof\")this.prereg=!0;r.has(o.syntax,i)&&(a=Object.create(o.syntax[i]||o.syntax[\"(error)\"]),n(a,s&&t===\"(identifier)\")||(a=null))}return a||(a=Object.create(o.syntax[t])),a.identifier=t===\"(identifier)\",a.type=a.type||t,a.value=i,a.line=this.line,a.character=this.char,a.from=this.from,a.identifier&&u&&(a.raw_text=u.text||u.value),u&&u.startLine&&u.startLine!==this.line&&(a.startLine=u.startLine),u&&u.context&&(a.context=u.context),u&&u.depth&&(a.depth=u.depth),u&&u.isUnclosed&&(a.isUnclosed=u.isUnclosed),s&&a.identifier&&(a.isProperty=s),a.check=e.check,a}.bind(this);for(;;){if(!this.input.length)return this.nextLine()?i(\"(endline)\",\"\"):this.exhausted?null:(this.exhausted=!0,i(\"(end)\",\"\"));t=this.next(e);if(!t){this.input.length&&(this.trigger(\"error\",{code:\"E024\",line:this.line,character:this.char,data:[this.peek()]}),this.input=\"\");continue}switch(t.type){case l.StringLiteral:return this.triggerAsync(\"String\",{line:this.line,\"char\":this.char,from:this.from,startLine:t.startLine,startChar:t.startChar,value:t.value,quote:t.quote},e,function(){return!0}),i(\"(string)\",t.value,null,t);case l.TemplateHead:return this.trigger(\"TemplateHead\",{line:this.line,\"char\":this.char,from:this.from,startLine:t.startLine,startChar:t.startChar,value:t.value}),i(\"(template)\",t.value,null,t);case l.TemplateMiddle:return this.trigger(\"TemplateMiddle\",{line:this.line,\"char\":this.char,from:this.from,startLine:t.startLine,startChar:t.startChar,value:t.value}),i(\"(template middle)\",t.value,null,t);case l.TemplateTail:return this.trigger(\"TemplateTail\",{line:this.line,\"char\":this.char,from:this.from,startLine:t.startLine,startChar:t.startChar,value:t.value}),i(\"(template tail)\",t.value,null,t);case l.NoSubstTemplate:return this.trigger(\"NoSubstTemplate\",{line:this.line,\"char\":this.char,from:this.from,startLine:t.startLine,startChar:t.startChar,value:t.value}),i(\"(no subst template)\",t.value,null,t);case l.Identifier:this.triggerAsync(\"Identifier\",{line:this.line,\"char\":this.char,from:this.form,name:t.value,raw_name:t.text,isProperty:o.tokens.curr.id===\".\"},e,function(){return!0});case l.Keyword:case l.NullLiteral:case l.BooleanLiteral:return i(\"(identifier)\",t.value,o.tokens.curr.id===\".\",t);case l.NumericLiteral:return t.isMalformed&&this.trigger(\"warning\",{code:\"W045\",line:this.line,character:this.char,data:[t.value]}),this.triggerAsync(\"warning\",{code:\"W114\",line:this.line,character:this.char,data:[\"0x-\"]},e,function(){return t.base===16&&o.jsonMode}),this.triggerAsync(\"warning\",{code:\"W115\",line:this.line,character:this.char},e,function(){return o.isStrict()&&t.base===8&&t.isLegacy}),this.trigger(\"Number\",{line:this.line,\"char\":this.char,from:this.from,value:t.value,base:t.base,isMalformed:t.malformed}),i(\"(number)\",t.value);case l.RegExp:return i(\"(regexp)\",t.value);case l.Comment:o.tokens.curr.comment=!0;if(t.isSpecial)return{id:\"(comment)\",value:t.value,body:t.body,type:t.commentType,isSpecial:t.isSpecial,line:this.line,character:this.char,from:this.from};break;case\"\":break;default:return i(\"(punctuator)\",t.value)}}}},n.Lexer=p,n.Context=c},{\"../data/ascii-identifier-data.js\":\"/node_modules/jshint/data/ascii-identifier-data.js\",\"../lodash\":\"/node_modules/jshint/lodash.js\",\"./reg.js\":\"/node_modules/jshint/src/reg.js\",\"./state.js\":\"/node_modules/jshint/src/state.js\",events:\"/node_modules/browserify/node_modules/events/events.js\"}],\"/node_modules/jshint/src/messages.js\":[function(e,t,n){\"use strict\";var r=e(\"../lodash\"),i={E001:\"Bad option: '{a}'.\",E002:\"Bad option value.\",E003:\"Expected a JSON value.\",E004:\"Input is neither a string nor an array of strings.\",E005:\"Input is empty.\",E006:\"Unexpected early end of program.\",E007:'Missing \"use strict\" statement.',E008:\"Strict violation.\",E009:\"Option 'validthis' can't be used in a global scope.\",E010:\"'with' is not allowed in strict mode.\",E011:\"'{a}' has already been declared.\",E012:\"const '{a}' is initialized to 'undefined'.\",E013:\"Attempting to override '{a}' which is a constant.\",E014:\"A regular expression literal can be confused with '/='.\",E015:\"Unclosed regular expression.\",E016:\"Invalid regular expression.\",E017:\"Unclosed comment.\",E018:\"Unbegun comment.\",E019:\"Unmatched '{a}'.\",E020:\"Expected '{a}' to match '{b}' from line {c} and instead saw '{d}'.\",E021:\"Expected '{a}' and instead saw '{b}'.\",E022:\"Line breaking error '{a}'.\",E023:\"Missing '{a}'.\",E024:\"Unexpected '{a}'.\",E025:\"Missing ':' on a case clause.\",E026:\"Missing '}' to match '{' from line {a}.\",E027:\"Missing ']' to match '[' from line {a}.\",E028:\"Illegal comma.\",E029:\"Unclosed string.\",E030:\"Expected an identifier and instead saw '{a}'.\",E031:\"Bad assignment.\",E032:\"Expected a small integer or 'false' and instead saw '{a}'.\",E033:\"Expected an operator and instead saw '{a}'.\",E034:\"get/set are ES5 features.\",E035:\"Missing property name.\",E036:\"Expected to see a statement and instead saw a block.\",E037:null,E038:null,E039:\"Function declarations are not invocable. Wrap the whole function invocation in parens.\",E040:\"Each value should have its own case label.\",E041:\"Unrecoverable syntax error.\",E042:\"Stopping.\",E043:\"Too many errors.\",E044:null,E045:\"Invalid for each loop.\",E046:\"A yield statement shall be within a generator function (with syntax: `function*`)\",E047:null,E048:\"{a} declaration not directly within block.\",E049:\"A {a} cannot be named '{b}'.\",E050:\"Mozilla requires the yield expression to be parenthesized here.\",E051:null,E052:\"Unclosed template literal.\",E053:\"Export declaration must be in global scope.\",E054:\"Class properties must be methods. Expected '(' but instead saw '{a}'.\",E055:\"The '{a}' option cannot be set after any executable code.\",E056:\"'{a}' was used before it was declared, which is illegal for '{b}' variables.\",E057:\"Invalid meta property: '{a}.{b}'.\",E058:\"Missing semicolon.\"},s={W001:\"'hasOwnProperty' is a really bad name.\",W002:\"Value of '{a}' may be overwritten in IE 8 and earlier.\",W003:\"'{a}' was used before it was defined.\",W004:\"'{a}' is already defined.\",W005:\"A dot following a number can be confused with a decimal point.\",W006:\"Confusing minuses.\",W007:\"Confusing plusses.\",W008:\"A leading decimal point can be confused with a dot: '{a}'.\",W009:\"The array literal notation [] is preferable.\",W010:\"The object literal notation {} is preferable.\",W011:null,W012:null,W013:null,W014:\"Bad line breaking before '{a}'.\",W015:null,W016:\"Unexpected use of '{a}'.\",W017:\"Bad operand.\",W018:\"Confusing use of '{a}'.\",W019:\"Use the isNaN function to compare with NaN.\",W020:\"Read only.\",W021:\"Reassignment of '{a}', which is is a {b}. Use 'var' or 'let' to declare bindings that may change.\",W022:\"Do not assign to the exception parameter.\",W023:\"Expected an identifier in an assignment and instead saw a function invocation.\",W024:\"Expected an identifier and instead saw '{a}' (a reserved word).\",W025:\"Missing name in function declaration.\",W026:\"Inner functions should be listed at the top of the outer function.\",W027:\"Unreachable '{a}' after '{b}'.\",W028:\"Label '{a}' on {b} statement.\",W030:\"Expected an assignment or function call and instead saw an expression.\",W031:\"Do not use 'new' for side effects.\",W032:\"Unnecessary semicolon.\",W033:\"Missing semicolon.\",W034:'Unnecessary directive \"{a}\".',W035:\"Empty block.\",W036:\"Unexpected /*member '{a}'.\",W037:\"'{a}' is a statement label.\",W038:\"'{a}' used out of scope.\",W039:\"'{a}' is not allowed.\",W040:\"Possible strict violation.\",W041:\"Use '{a}' to compare with '{b}'.\",W042:\"Avoid EOL escaping.\",W043:\"Bad escaping of EOL. Use option multistr if needed.\",W044:\"Bad or unnecessary escaping.\",W045:\"Bad number '{a}'.\",W046:\"Don't use extra leading zeros '{a}'.\",W047:\"A trailing decimal point can be confused with a dot: '{a}'.\",W048:\"Unexpected control character in regular expression.\",W049:\"Unexpected escaped character '{a}' in regular expression.\",W050:\"JavaScript URL.\",W051:\"Variables should not be deleted.\",W052:\"Unexpected '{a}'.\",W053:\"Do not use {a} as a constructor.\",W054:\"The Function constructor is a form of eval.\",W055:\"A constructor name should start with an uppercase letter.\",W056:\"Bad constructor.\",W057:\"Weird construction. Is 'new' necessary?\",W058:\"Missing '()' invoking a constructor.\",W059:\"Avoid arguments.{a}.\",W060:\"document.write can be a form of eval.\",W061:\"eval can be harmful.\",W062:\"Wrap an immediate function invocation in parens to assist the reader in understanding that the expression is the result of a function, and not the function itself.\",W063:\"Math is not a function.\",W064:\"Missing 'new' prefix when invoking a constructor.\",W065:\"Missing radix parameter.\",W066:\"Implied eval. Consider passing a function instead of a string.\",W067:\"Bad invocation.\",W068:\"Wrapping non-IIFE function literals in parens is unnecessary.\",W069:\"['{a}'] is better written in dot notation.\",W070:\"Extra comma. (it breaks older versions of IE)\",W071:\"This function has too many statements. ({a})\",W072:\"This function has too many parameters. ({a})\",W073:\"Blocks are nested too deeply. ({a})\",W074:\"This function's cyclomatic complexity is too high. ({a})\",W075:\"Duplicate {a} '{b}'.\",W076:\"Unexpected parameter '{a}' in get {b} function.\",W077:\"Expected a single parameter in set {a} function.\",W078:\"Setter is defined without getter.\",W079:\"Redefinition of '{a}'.\",W080:\"It's not necessary to initialize '{a}' to 'undefined'.\",W081:null,W082:\"Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.\",W083:\"Don't make functions within a loop.\",W084:\"Assignment in conditional expression\",W085:\"Don't use 'with'.\",W086:\"Expected a 'break' statement before '{a}'.\",W087:\"Forgotten 'debugger' statement?\",W088:\"Creating global 'for' variable. Should be 'for (var {a} ...'.\",W089:\"The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.\",W090:\"'{a}' is not a statement label.\",W091:null,W093:\"Did you mean to return a conditional instead of an assignment?\",W094:\"Unexpected comma.\",W095:\"Expected a string and instead saw {a}.\",W096:\"The '{a}' key may produce unexpected results.\",W097:'Use the function form of \"use strict\".',W098:\"'{a}' is defined but never used.\",W099:null,W100:\"This character may get silently deleted by one or more browsers.\",W101:\"Line is too long.\",W102:null,W103:\"The '{a}' property is deprecated.\",W104:\"'{a}' is available in ES{b} (use 'esversion: {b}') or Mozilla JS extensions (use moz).\",W105:\"Unexpected {a} in '{b}'.\",W106:\"Identifier '{a}' is not in camel case.\",W107:\"Script URL.\",W108:\"Strings must use doublequote.\",W109:\"Strings must use singlequote.\",W110:\"Mixed double and single quotes.\",W112:\"Unclosed string.\",W113:\"Control character in string: {a}.\",W114:\"Avoid {a}.\",W115:\"Octal literals are not allowed in strict mode.\",W116:\"Expected '{a}' and instead saw '{b}'.\",W117:\"'{a}' is not defined.\",W118:\"'{a}' is only available in Mozilla JavaScript extensions (use moz option).\",W119:\"'{a}' is only available in ES{b} (use 'esversion: {b}').\",W120:\"You might be leaking a variable ({a}) here.\",W121:\"Extending prototype of native object: '{a}'.\",W122:\"Invalid typeof value '{a}'\",W123:\"'{a}' is already defined in outer scope.\",W124:\"A generator function shall contain a yield statement.\",W125:\"This line contains non-breaking spaces: http://jshint.com/doc/options/#nonbsp\",W126:\"Unnecessary grouping operator.\",W127:\"Unexpected use of a comma operator.\",W128:\"Empty array elements require elision=true.\",W129:\"'{a}' is defined in a future version of JavaScript. Use a different variable name to avoid migration issues.\",W130:\"Invalid element after rest element.\",W131:\"Invalid parameter after rest parameter.\",W132:\"`var` declarations are forbidden. Use `let` or `const` instead.\",W133:\"Invalid for-{a} loop left-hand-side: {b}.\",W134:\"The '{a}' option is only available when linting ECMAScript {b} code.\",W135:\"{a} may not be supported by non-browser environments.\",W136:\"'{a}' must be in function scope.\",W137:\"Empty destructuring.\",W138:\"Regular parameters should not come after default parameters.\"},o={I001:\"Comma warnings can be turned off with 'laxcomma'.\",I002:null,I003:\"ES5 option is now set per default\"};n.errors={},n.warnings={},n.info={},r.each(i,function(e,t){n.errors[t]={code:t,desc:e}}),r.each(s,function(e,t){n.warnings[t]={code:t,desc:e}}),r.each(o,function(e,t){n.info[t]={code:t,desc:e}})},{\"../lodash\":\"/node_modules/jshint/lodash.js\"}],\"/node_modules/jshint/src/name-stack.js\":[function(e,t,n){\"use strict\";function r(){this._stack=[]}Object.defineProperty(r.prototype,\"length\",{get:function(){return this._stack.length}}),r.prototype.push=function(){this._stack.push(null)},r.prototype.pop=function(){this._stack.pop()},r.prototype.set=function(e){this._stack[this.length-1]=e},r.prototype.infer=function(){var e=this._stack[this.length-1],t=\"\",n;if(!e||e.type===\"class\")e=this._stack[this.length-2];return e?(n=e.type,n!==\"(string)\"&&n!==\"(number)\"&&n!==\"(identifier)\"&&n!==\"default\"?\"(expression)\":(e.accessorType&&(t=e.accessorType+\" \"),t+e.value)):\"(empty)\"},t.exports=r},{}],\"/node_modules/jshint/src/options.js\":[function(e,t,n){\"use strict\";n.bool={enforcing:{bitwise:!0,freeze:!0,camelcase:!0,curly:!0,eqeqeq:!0,futurehostile:!0,notypeof:!0,es3:!0,es5:!0,forin:!0,funcscope:!0,immed:!0,iterator:!0,newcap:!0,noarg:!0,nocomma:!0,noempty:!0,nonbsp:!0,nonew:!0,undef:!0,singleGroups:!1,varstmt:!1,enforceall:!1},relaxing:{asi:!0,multistr:!0,debug:!0,boss:!0,evil:!0,globalstrict:!0,plusplus:!0,proto:!0,scripturl:!0,sub:!0,supernew:!0,laxbreak:!0,laxcomma:!0,validthis:!0,withstmt:!0,moz:!0,noyield:!0,eqnull:!0,lastsemic:!0,loopfunc:!0,expr:!0,esnext:!0,elision:!0},environments:{mootools:!0,couch:!0,jasmine:!0,jquery:!0,node:!0,qunit:!0,rhino:!0,shelljs:!0,prototypejs:!0,yui:!0,mocha:!0,module:!0,wsh:!0,worker:!0,nonstandard:!0,browser:!0,browserify:!0,devel:!0,dojo:!0,typed:!0,phantom:!0},obsolete:{onecase:!0,regexp:!0,regexdash:!0}},n.val={maxlen:!1,indent:!1,maxerr:!1,predef:!1,globals:!1,quotmark:!1,scope:!1,maxstatements:!1,maxdepth:!1,maxparams:!1,maxcomplexity:!1,shadow:!1,strict:!0,unused:!0,latedef:!1,ignore:!1,ignoreDelimiters:!1,esversion:5},n.inverted={bitwise:!0,forin:!0,newcap:!0,plusplus:!0,regexp:!0,undef:!0,eqeqeq:!0,strict:!0},n.validNames=Object.keys(n.val).concat(Object.keys(n.bool.relaxing)).concat(Object.keys(n.bool.enforcing)).concat(Object.keys(n.bool.obsolete)).concat(Object.keys(n.bool.environments)),n.renamed={eqeq:\"eqeqeq\",windows:\"wsh\",sloppy:\"strict\"},n.removed={nomen:!0,onevar:!0,passfail:!0,white:!0,gcl:!0,smarttabs:!0,trailing:!0},n.noenforceall={varstmt:!0,strict:!0}},{}],\"/node_modules/jshint/src/reg.js\":[function(e,t,n){\"use strict\";n.unsafeString=/@cc|<\\/?|script|\\]\\s*\\]|<\\s*!|&lt/i,n.unsafeChars=/[\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/,n.needEsc=/[\\u0000-\\u001f&<\"\\/\\\\\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/,n.needEscGlobal=/[\\u0000-\\u001f&<\"\\/\\\\\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,n.starSlash=/\\*\\//,n.identifier=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,n.javascriptURL=/^(?:javascript|jscript|ecmascript|vbscript|livescript)\\s*:/i,n.fallsThrough=/^\\s*falls?\\sthrough\\s*$/,n.maxlenException=/^(?:(?:\\/\\/|\\/\\*|\\*) ?)?[^ ]+$/},{}],\"/node_modules/jshint/src/scope-manager.js\":[function(e,t,n){\"use strict\";var r=e(\"../lodash\"),i=e(\"events\"),s={},o=function(e,t,n,o){function f(e){u={\"(labels)\":Object.create(null),\"(usages)\":Object.create(null),\"(breakLabels)\":Object.create(null),\"(parent)\":u,\"(type)\":e,\"(params)\":e===\"functionparams\"||e===\"catchparams\"?[]:null},a.push(u)}function v(e,t){d.emit(\"warning\",{code:e,token:t,data:r.slice(arguments,2)})}function m(e,t){d.emit(\"warning\",{code:e,token:t,data:r.slice(arguments,2)})}function g(e){u[\"(usages)\"][e]||(u[\"(usages)\"][e]={\"(modified)\":[],\"(reassigned)\":[],\"(tokens)\":[]})}function w(){if(u[\"(type)\"]===\"functionparams\"){E();return}var e=u[\"(labels)\"];for(var t in e)e[t]&&e[t][\"(type)\"]!==\"exception\"&&e[t][\"(unused)\"]&&b(t,e[t][\"(token)\"],\"var\")}function E(){var t=u[\"(params)\"];if(!t)return;var n=t.pop(),r;while(n){var i=u[\"(labels)\"][n];r=y(e.funct[\"(unusedOption)\"]);if(n===\"undefined\")return;if(i[\"(unused)\"])b(n,i[\"(token)\"],\"param\",e.funct[\"(unusedOption)\"]);else if(r===\"last-param\")return;n=t.pop()}}function S(e){for(var t=a.length-1;t>=0;--t){var n=a[t][\"(labels)\"];if(n[e])return n}}function x(e){for(var t=a.length-1;t>=0;t--){var n=a[t];if(n[\"(usages)\"][e])return n[\"(usages)\"][e];if(n===l)break}return!1}function T(t,n){if(e.option.shadow!==\"outer\")return;var r=l[\"(type)\"]===\"global\",i=u[\"(type)\"]===\"functionparams\",s=!r;for(var o=0;o<a.length;o++){var f=a[o];!i&&a[o+1]===l&&(s=!1),s&&f[\"(labels)\"][t]&&v(\"W123\",n,t),f[\"(breakLabels)\"][t]&&v(\"W123\",n,t)}}function N(t,n,r){e.option.latedef&&(e.option.latedef===!0&&t===\"function\"||t!==\"function\")&&v(\"W003\",r,n)}var u,a=[];f(\"global\"),u[\"(predefined)\"]=t;var l=u,c=Object.create(null),h=Object.create(null),p=[],d=new i.EventEmitter,y=function(t){return t===undefined&&(t=e.option.unused),t===!0&&(t=\"last-param\"),t},b=function(e,t,n,r){var i=t.line,s=t.from,o=t.raw_text||e;r=y(r);var u={vars:[\"var\"],\"last-param\":[\"var\",\"param\"],strict:[\"var\",\"param\",\"last-param\"]};r&&u[r]&&u[r].indexOf(n)!==-1&&v(\"W098\",{line:i,from:s},o),(r||n===\"var\")&&p.push({name:e,line:i,character:s})},C={on:function(e,t){e.split(\" \").forEach(function(e){d.on(e,t)})},isPredefined:function(e){return!this.has(e)&&r.has(a[0][\"(predefined)\"],e)},stack:function(e){var t=u;f(e),!e&&t[\"(type)\"]===\"functionparams\"&&(u[\"(isFuncBody)\"]=!0,u[\"(context)\"]=l,l=u)},unstack:function(){var t=a.length>1?a[a.length-2]:null,n=u===l,i=u[\"(type)\"]===\"functionparams\",f=u[\"(type)\"]===\"functionouter\",p,d,g=u[\"(usages)\"],y=u[\"(labels)\"],E=Object.keys(g);g.__proto__&&E.indexOf(\"__proto__\")===-1&&E.push(\"__proto__\");for(p=0;p<E.length;p++){var S=E[p],x=g[S],T=y[S];if(T){var N=T[\"(type)\"];if(T[\"(useOutsideOfScope)\"]&&!e.option.funcscope){var C=x[\"(tokens)\"];if(C)for(d=0;d<C.length;d++)T[\"(function)\"]===C[d][\"(function)\"]&&m(\"W038\",C[d],S)}u[\"(labels)\"][S][\"(unused)\"]=!1;if(N===\"const\"&&x[\"(modified)\"])for(d=0;d<x[\"(modified)\"].length;d++)m(\"E013\",x[\"(modified)\"][d],S);if((N===\"function\"||N===\"class\")&&x[\"(reassigned)\"])for(d=0;d<x[\"(reassigned)\"].length;d++)m(\"W021\",x[\"(reassigned)\"][d],S,N);continue}f&&(e.funct[\"(isCapturing)\"]=!0);if(t)if(!t[\"(usages)\"][S])t[\"(usages)\"][S]=x,n&&(t[\"(usages)\"][S][\"(onlyUsedSubFunction)\"]=!0);else{var k=t[\"(usages)\"][S];k[\"(modified)\"]=k[\"(modified)\"].concat(x[\"(modified)\"]),k[\"(tokens)\"]=k[\"(tokens)\"].concat(x[\"(tokens)\"]),k[\"(reassigned)\"]=k[\"(reassigned)\"].concat(x[\"(reassigned)\"]),k[\"(onlyUsedSubFunction)\"]=!1}else if(typeof u[\"(predefined)\"][S]==\"boolean\"){delete o[S],c[S]=s;if(u[\"(predefined)\"][S]===!1&&x[\"(reassigned)\"])for(d=0;d<x[\"(reassigned)\"].length;d++)v(\"W020\",x[\"(reassigned)\"][d])}else if(x[\"(tokens)\"])for(d=0;d<x[\"(tokens)\"].length;d++){var L=x[\"(tokens)\"][d];L.forgiveUndef||(e.option.undef&&!L.ignoreUndef&&v(\"W117\",L,S),h[S]?h[S].line.push(L.line):h[S]={name:S,line:[L.line]})}}t||Object.keys(o).forEach(function(e){b(e,o[e],\"var\")});if(t&&!n&&!i&&!f){var A=Object.keys(y);for(p=0;p<A.length;p++){var O=A[p];!y[O][\"(blockscoped)\"]&&y[O][\"(type)\"]!==\"exception\"&&!this.funct.has(O,{excludeCurrent:!0})&&(t[\"(labels)\"][O]=y[O],l[\"(type)\"]!==\"global\"&&(t[\"(labels)\"][O][\"(useOutsideOfScope)\"]=!0),delete y[O])}}w(),a.pop(),n&&(l=a[r.findLastIndex(a,function(e){return e[\"(isFuncBody)\"]||e[\"(type)\"]===\"global\"})]),u=t},addParam:function(t,n,i){i=i||\"param\";if(i===\"exception\"){var s=this.funct.labeltype(t);s&&s!==\"exception\"&&(e.option.node||v(\"W002\",e.tokens.next,t))}r.has(u[\"(labels)\"],t)?u[\"(labels)\"][t].duplicated=!0:(T(t,n,i),u[\"(labels)\"][t]={\"(type)\":i,\"(token)\":n,\"(unused)\":!0},u[\"(params)\"].push(t));if(r.has(u[\"(usages)\"],t)){var o=u[\"(usages)\"][t];o[\"(onlyUsedSubFunction)\"]?N(i,t,n):v(\"E056\",n,t,i)}},validateParams:function(){if(l[\"(type)\"]===\"global\")return;var t=e.isStrict(),n=l[\"(parent)\"];if(!n[\"(params)\"])return;n[\"(params)\"].forEach(function(r){var i=n[\"(labels)\"][r];i&&i.duplicated&&(t?v(\"E011\",i[\"(token)\"],r):e.option.shadow!==!0&&v(\"W004\",i[\"(token)\"],r))})},getUsedOrDefinedGlobals:function(){var e=Object.keys(c);return c.__proto__===s&&e.indexOf(\"__proto__\")===-1&&e.push(\"__proto__\"),e},getImpliedGlobals:function(){var e=r.values(h),t=!1;return h.__proto__&&(t=e.some(function(e){return e.name===\"__proto__\"}),t||e.push(h.__proto__)),e},getUnuseds:function(){return p},has:function(e){return Boolean(S(e))},labeltype:function(e){var t=S(e);return t?t[e][\"(type)\"]:null},addExported:function(e){var t=a[0][\"(labels)\"];if(r.has(o,e))delete o[e];else if(r.has(t,e))t[e][\"(unused)\"]=!1;else{for(var i=1;i<a.length;i++){var s=a[i];if(!!s[\"(type)\"])break;if(r.has(s[\"(labels)\"],e)&&!s[\"(labels)\"][e][\"(blockscoped)\"]){s[\"(labels)\"][e][\"(unused)\"]=!1;return}}n[e]=!0}},setExported:function(e,t){this.block.use(e,t)},addlabel:function(t,i){var o=i.type,a=i.token,f=o===\"let\"||o===\"const\"||o===\"class\",h=(f?u:l)[\"(type)\"]===\"global\"&&r.has(n,t);T(t,a,o);if(f){var p=u[\"(labels)\"][t];!p&&u===l&&u[\"(type)\"]!==\"global\"&&(p=!!l[\"(parent)\"][\"(labels)\"][t]);if(!p&&u[\"(usages)\"][t]){var d=u[\"(usages)\"][t];d[\"(onlyUsedSubFunction)\"]?N(o,t,a):v(\"E056\",a,t,o)}p?v(\"E011\",a,t):e.option.shadow===\"outer\"&&C.funct.has(t)&&v(\"W004\",a,t),C.block.add(t,o,a,!h)}else{var m=C.funct.has(t);!m&&x(t)&&N(o,t,a),C.funct.has(t,{onlyBlockscoped:!0})?v(\"E011\",a,t):e.option.shadow!==!0&&m&&t!==\"__proto__\"&&l[\"(type)\"]!==\"global\"&&v(\"W004\",a,t),C.funct.add(t,o,a,!h),l[\"(type)\"]===\"global\"&&(c[t]=s)}},funct:{labeltype:function(e,t){var n=t&&t.onlyBlockscoped,r=t&&t.excludeParams,i=a.length-(t&&t.excludeCurrent?2:1);for(var s=i;s>=0;s--){var o=a[s];if(o[\"(labels)\"][e]&&(!n||o[\"(labels)\"][e][\"(blockscoped)\"]))return o[\"(labels)\"][e][\"(type)\"];var u=r?a[s-1]:o;if(u&&u[\"(type)\"]===\"functionparams\")return null}return null},hasBreakLabel:function(e){for(var t=a.length-1;t>=0;t--){var n=a[t];if(n[\"(breakLabels)\"][e])return!0;if(n[\"(type)\"]===\"functionparams\")return!1}return!1},has:function(e,t){return Boolean(this.labeltype(e,t))},add:function(e,t,n,r){u[\"(labels)\"][e]={\"(type)\":t,\"(token)\":n,\"(blockscoped)\":!1,\"(function)\":l,\"(unused)\":r}}},block:{isGlobal:function(){return u[\"(type)\"]===\"global\"},use:function(t,n){var r=l[\"(parent)\"];r&&r[\"(labels)\"][t]&&r[\"(labels)\"][t][\"(type)\"]===\"param\"&&(C.funct.has(t,{excludeParams:!0,onlyBlockscoped:!0})||(r[\"(labels)\"][t][\"(unused)\"]=!1)),n&&(e.ignored.W117||e.option.undef===!1)&&(n.ignoreUndef=!0),g(t),n&&(n[\"(function)\"]=l,u[\"(usages)\"][t][\"(tokens)\"].push(n))},reassign:function(e,t){this.modify(e,t),u[\"(usages)\"][e][\"(reassigned)\"].push(t)},modify:function(e,t){g(e),u[\"(usages)\"][e][\"(modified)\"].push(t)},add:function(e,t,n,r){u[\"(labels)\"][e]={\"(type)\":t,\"(token)\":n,\"(blockscoped)\":!0,\"(unused)\":r}},addBreakLabel:function(t,n){var r=n.token;C.funct.hasBreakLabel(t)?v(\"E011\",r,t):e.option.shadow===\"outer\"&&(C.funct.has(t)?v(\"W004\",r,t):T(t,r)),u[\"(breakLabels)\"][t]=r}}};return C};t.exports=o},{\"../lodash\":\"/node_modules/jshint/lodash.js\",events:\"/node_modules/browserify/node_modules/events/events.js\"}],\"/node_modules/jshint/src/state.js\":[function(e,t,n){\"use strict\";var r=e(\"./name-stack.js\"),i={syntax:{},isStrict:function(){return this.directive[\"use strict\"]||this.inClassBody||this.option.module||this.option.strict===\"implied\"},inMoz:function(){return this.option.moz},inES6:function(){return this.option.moz||this.option.esversion>=6},inES5:function(e){return e?(!this.option.esversion||this.option.esversion===5)&&!this.option.moz:!this.option.esversion||this.option.esversion>=5||this.option.moz},reset:function(){this.tokens={prev:null,next:null,curr:null},this.option={},this.funct=null,this.ignored={},this.directive={},this.jsonMode=!1,this.jsonWarnings=[],this.lines=[],this.tab=\"\",this.cache={},this.ignoredLines={},this.forinifcheckneeded=!1,this.nameStack=new r,this.inClassBody=!1}};n.state=i},{\"./name-stack.js\":\"/node_modules/jshint/src/name-stack.js\"}],\"/node_modules/jshint/src/style.js\":[function(e,t,n){\"use strict\";n.register=function(e){e.on(\"Identifier\",function(n){if(e.getOption(\"proto\"))return;n.name===\"__proto__\"&&e.warn(\"W103\",{line:n.line,\"char\":n.char,data:[n.name,\"6\"]})}),e.on(\"Identifier\",function(n){if(e.getOption(\"iterator\"))return;n.name===\"__iterator__\"&&e.warn(\"W103\",{line:n.line,\"char\":n.char,data:[n.name]})}),e.on(\"Identifier\",function(n){if(!e.getOption(\"camelcase\"))return;n.name.replace(/^_+|_+$/g,\"\").indexOf(\"_\")>-1&&!n.name.match(/^[A-Z0-9_]*$/)&&e.warn(\"W106\",{line:n.line,\"char\":n.from,data:[n.name]})}),e.on(\"String\",function(n){var r=e.getOption(\"quotmark\"),i;if(!r)return;r===\"single\"&&n.quote!==\"'\"&&(i=\"W109\"),r===\"double\"&&n.quote!=='\"'&&(i=\"W108\"),r===!0&&(e.getCache(\"quotmark\")||e.setCache(\"quotmark\",n.quote),e.getCache(\"quotmark\")!==n.quote&&(i=\"W110\")),i&&e.warn(i,{line:n.line,\"char\":n.char})}),e.on(\"Number\",function(n){n.value.charAt(0)===\".\"&&e.warn(\"W008\",{line:n.line,\"char\":n.char,data:[n.value]}),n.value.substr(n.value.length-1)===\".\"&&e.warn(\"W047\",{line:n.line,\"char\":n.char,data:[n.value]}),/^00+/.test(n.value)&&e.warn(\"W046\",{line:n.line,\"char\":n.char,data:[n.value]})}),e.on(\"String\",function(n){var r=/^(?:javascript|jscript|ecmascript|vbscript|livescript)\\s*:/i;if(e.getOption(\"scripturl\"))return;r.test(n.value)&&e.warn(\"W107\",{line:n.line,\"char\":n.char})})}},{}],\"/node_modules/jshint/src/vars.js\":[function(e,t,n){\"use strict\";n.reservedVars={arguments:!1,NaN:!1},n.ecmaIdentifiers={3:{Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},5:{JSON:!1},6:{Map:!1,Promise:!1,Proxy:!1,Reflect:!1,Set:!1,Symbol:!1,WeakMap:!1,WeakSet:!1}},n.browser={Audio:!1,Blob:!1,addEventListener:!1,applicationCache:!1,atob:!1,blur:!1,btoa:!1,cancelAnimationFrame:!1,CanvasGradient:!1,CanvasPattern:!1,CanvasRenderingContext2D:!1,CSS:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,Comment:!1,CustomEvent:!1,DOMParser:!1,defaultStatus:!1,Document:!1,document:!1,DocumentFragment:!1,Element:!1,ElementTimeControl:!1,Event:!1,event:!1,fetch:!1,FileReader:!1,FormData:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,HTMLAnchorElement:!1,HTMLBaseElement:!1,HTMLBlockquoteElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLCollection:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLIsIndexElement:!1,HTMLLabelElement:!1,HTMLLayerElement:!1,HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPreElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,HTMLTemplateElement:!1,HTMLTextAreaElement:!1,HTMLTitleElement:!1,HTMLUListElement:!1,HTMLVideoElement:!1,history:!1,Image:!1,Intl:!1,length:!1,localStorage:!1,location:!1,matchMedia:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,MouseEvent:!1,moveBy:!1,moveTo:!1,MutationObserver:!1,name:!1,Node:!1,NodeFilter:!1,NodeList:!1,Notification:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,performance:!1,print:!1,Range:!1,requestAnimationFrame:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,SharedWorker:!1,status:!1,SVGAElement:!1,SVGAltGlyphDefElement:!1,SVGAltGlyphElement:!1,SVGAltGlyphItemElement:!1,SVGAngle:!1,SVGAnimateColorElement:!1,SVGAnimateElement:!1,SVGAnimateMotionElement:!1,SVGAnimateTransformElement:!1,SVGAnimatedAngle:!1,SVGAnimatedBoolean:!1,SVGAnimatedEnumeration:!1,SVGAnimatedInteger:!1,SVGAnimatedLength:!1,SVGAnimatedLengthList:!1,SVGAnimatedNumber:!1,SVGAnimatedNumberList:!1,SVGAnimatedPathData:!1,SVGAnimatedPoints:!1,SVGAnimatedPreserveAspectRatio:!1,SVGAnimatedRect:!1,SVGAnimatedString:!1,SVGAnimatedTransformList:!1,SVGAnimationElement:!1,SVGCSSRule:!1,SVGCircleElement:!1,SVGClipPathElement:!1,SVGColor:!1,SVGColorProfileElement:!1,SVGColorProfileRule:!1,SVGComponentTransferFunctionElement:!1,SVGCursorElement:!1,SVGDefsElement:!1,SVGDescElement:!1,SVGDocument:!1,SVGElement:!1,SVGElementInstance:!1,SVGElementInstanceList:!1,SVGEllipseElement:!1,SVGExternalResourcesRequired:!1,SVGFEBlendElement:!1,SVGFEColorMatrixElement:!1,SVGFEComponentTransferElement:!1,SVGFECompositeElement:!1,SVGFEConvolveMatrixElement:!1,SVGFEDiffuseLightingElement:!1,SVGFEDisplacementMapElement:!1,SVGFEDistantLightElement:!1,SVGFEFloodElement:!1,SVGFEFuncAElement:!1,SVGFEFuncBElement:!1,SVGFEFuncGElement:!1,SVGFEFuncRElement:!1,SVGFEGaussianBlurElement:!1,SVGFEImageElement:!1,SVGFEMergeElement:!1,SVGFEMergeNodeElement:!1,SVGFEMorphologyElement:!1,SVGFEOffsetElement:!1,SVGFEPointLightElement:!1,SVGFESpecularLightingElement:!1,SVGFESpotLightElement:!1,SVGFETileElement:!1,SVGFETurbulenceElement:!1,SVGFilterElement:!1,SVGFilterPrimitiveStandardAttributes:!1,SVGFitToViewBox:!1,SVGFontElement:!1,SVGFontFaceElement:!1,SVGFontFaceFormatElement:!1,SVGFontFaceNameElement:!1,SVGFontFaceSrcElement:!1,SVGFontFaceUriElement:!1,SVGForeignObjectElement:!1,SVGGElement:!1,SVGGlyphElement:!1,SVGGlyphRefElement:!1,SVGGradientElement:!1,SVGHKernElement:!1,SVGICCColor:!1,SVGImageElement:!1,SVGLangSpace:!1,SVGLength:!1,SVGLengthList:!1,SVGLineElement:!1,SVGLinearGradientElement:!1,SVGLocatable:!1,SVGMPathElement:!1,SVGMarkerElement:!1,SVGMaskElement:!1,SVGMatrix:!1,SVGMetadataElement:!1,SVGMissingGlyphElement:!1,SVGNumber:!1,SVGNumberList:!1,SVGPaint:!1,SVGPathElement:!1,SVGPathSeg:!1,SVGPathSegArcAbs:!1,SVGPathSegArcRel:!1,SVGPathSegClosePath:!1,SVGPathSegCurvetoCubicAbs:!1,SVGPathSegCurvetoCubicRel:!1,SVGPathSegCurvetoCubicSmoothAbs:!1,SVGPathSegCurvetoCubicSmoothRel:!1,SVGPathSegCurvetoQuadraticAbs:!1,SVGPathSegCurvetoQuadraticRel:!1,SVGPathSegCurvetoQuadraticSmoothAbs:!1,SVGPathSegCurvetoQuadraticSmoothRel:!1,SVGPathSegLinetoAbs:!1,SVGPathSegLinetoHorizontalAbs:!1,SVGPathSegLinetoHorizontalRel:!1,SVGPathSegLinetoRel:!1,SVGPathSegLinetoVerticalAbs:!1,SVGPathSegLinetoVerticalRel:!1,SVGPathSegList:!1,SVGPathSegMovetoAbs:!1,SVGPathSegMovetoRel:!1,SVGPatternElement:!1,SVGPoint:!1,SVGPointList:!1,SVGPolygonElement:!1,SVGPolylineElement:!1,SVGPreserveAspectRatio:!1,SVGRadialGradientElement:!1,SVGRect:!1,SVGRectElement:!1,SVGRenderingIntent:!1,SVGSVGElement:!1,SVGScriptElement:!1,SVGSetElement:!1,SVGStopElement:!1,SVGStringList:!1,SVGStylable:!1,SVGStyleElement:!1,SVGSwitchElement:!1,SVGSymbolElement:!1,SVGTRefElement:!1,SVGTSpanElement:!1,SVGTests:!1,SVGTextContentElement:!1,SVGTextElement:!1,SVGTextPathElement:!1,SVGTextPositioningElement:!1,SVGTitleElement:!1,SVGTransform:!1,SVGTransformList:!1,SVGTransformable:!1,SVGURIReference:!1,SVGUnitTypes:!1,SVGUseElement:!1,SVGVKernElement:!1,SVGViewElement:!1,SVGViewSpec:!1,SVGZoomAndPan:!1,Text:!1,TextDecoder:!1,TextEncoder:!1,TimeEvent:!1,top:!1,URL:!1,WebGLActiveInfo:!1,WebGLBuffer:!1,WebGLContextEvent:!1,WebGLFramebuffer:!1,WebGLProgram:!1,WebGLRenderbuffer:!1,WebGLRenderingContext:!1,WebGLShader:!1,WebGLShaderPrecisionFormat:!1,WebGLTexture:!1,WebGLUniformLocation:!1,WebSocket:!1,window:!1,Window:!1,Worker:!1,XDomainRequest:!1,XMLHttpRequest:!1,XMLSerializer:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},n.devel={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},n.worker={importScripts:!0,postMessage:!0,self:!0,FileReaderSync:!0},n.nonstandard={escape:!1,unescape:!1},n.couch={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1,provides:!1},n.node={__filename:!1,__dirname:!1,GLOBAL:!1,global:!1,module:!1,require:!1,Buffer:!0,console:!0,exports:!0,process:!0,setTimeout:!0,clearTimeout:!0,setInterval:!0,clearInterval:!0,setImmediate:!0,clearImmediate:!0},n.browserify={__filename:!1,__dirname:!1,global:!1,module:!1,require:!1,Buffer:!0,exports:!0,process:!0},n.phantom={phantom:!0,require:!0,WebPage:!0,console:!0,exports:!0},n.qunit={asyncTest:!1,deepEqual:!1,equal:!1,expect:!1,module:!1,notDeepEqual:!1,notEqual:!1,notPropEqual:!1,notStrictEqual:!1,ok:!1,propEqual:!1,QUnit:!1,raises:!1,start:!1,stop:!1,strictEqual:!1,test:!1,\"throws\":!1},n.rhino={defineClass:!1,deserialize:!1,gc:!1,help:!1,importClass:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,Packages:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},n.shelljs={target:!1,echo:!1,exit:!1,cd:!1,pwd:!1,ls:!1,find:!1,cp:!1,rm:!1,mv:!1,mkdir:!1,test:!1,cat:!1,sed:!1,grep:!1,which:!1,dirs:!1,pushd:!1,popd:!1,env:!1,exec:!1,chmod:!1,config:!1,error:!1,tempdir:!1},n.typed={ArrayBuffer:!1,ArrayBufferView:!1,DataView:!1,Float32Array:!1,Float64Array:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1},n.wsh={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0,XDomainRequest:!0},n.dojo={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},n.jquery={$:!1,jQuery:!1},n.mootools={$:!1,$$:!1,Asset:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMEvent:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,IFrame:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},n.prototypejs={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},n.yui={YUI:!1,Y:!1,YUI_config:!1},n.mocha={mocha:!1,describe:!1,xdescribe:!1,it:!1,xit:!1,context:!1,xcontext:!1,before:!1,after:!1,beforeEach:!1,afterEach:!1,suite:!1,test:!1,setup:!1,teardown:!1,suiteSetup:!1,suiteTeardown:!1},n.jasmine={jasmine:!1,describe:!1,xdescribe:!1,it:!1,xit:!1,beforeEach:!1,afterEach:!1,setFixtures:!1,loadFixtures:!1,spyOn:!1,expect:!1,runs:!1,waitsFor:!1,waits:!1,beforeAll:!1,afterAll:!1,fail:!1,fdescribe:!1,fit:!1,pending:!1}},{}]},{},[\"/node_modules/jshint/src/jshint.js\"])}),ace.define(\"ace/mode/javascript_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/javascript/jshint\"],function(require,exports,module){\"use strict\";function startRegex(e){return RegExp(\"^(\"+e.join(\"|\")+\")\")}var oop=require(\"../lib/oop\"),Mirror=require(\"../worker/mirror\").Mirror,lint=require(\"./javascript/jshint\").JSHINT,disabledWarningsRe=startRegex([\"Bad for in variable '(.+)'.\",'Missing \"use strict\"']),errorsRe=startRegex([\"Unexpected\",\"Expected \",\"Confusing (plus|minus)\",\"\\\\{a\\\\} unterminated regular expression\",\"Unclosed \",\"Unmatched \",\"Unbegun comment\",\"Bad invocation\",\"Missing space after\",\"Missing operator at\"]),infoRe=startRegex([\"Expected an assignment\",\"Bad escapement of EOL\",\"Unexpected comma\",\"Unexpected space\",\"Missing radix parameter.\",\"A leading decimal point can\",\"\\\\['{a}'\\\\] is better written in dot notation.\",\"'{a}' used out of scope\"]),JavaScriptWorker=exports.JavaScriptWorker=function(e){Mirror.call(this,e),this.setTimeout(500),this.setOptions()};oop.inherits(JavaScriptWorker,Mirror),function(){this.setOptions=function(e){this.options=e||{esnext:!0,moz:!0,devel:!0,browser:!0,node:!0,laxcomma:!0,laxbreak:!0,lastsemic:!0,onevar:!1,passfail:!1,maxerr:100,expr:!0,multistr:!0,globalstrict:!0},this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.changeOptions=function(e){oop.mixin(this.options,e),this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.isValidJS=function(str){try{eval(\"throw 0;\"+str)}catch(e){if(e===0)return!0}return!1},this.onUpdate=function(){var e=this.doc.getValue();e=e.replace(/^#!.*\\n/,\"\\n\");if(!e)return this.sender.emit(\"annotate\",[]);var t=[],n=this.isValidJS(e)?\"warning\":\"error\";lint(e,this.options);var r=lint.errors,i=!1;for(var s=0;s<r.length;s++){var o=r[s];if(!o)continue;var u=o.raw,a=\"warning\";if(u==\"Missing semicolon.\"){var f=o.evidence.substr(o.character);f=f.charAt(f.search(/\\S/)),n==\"error\"&&f&&/[\\w\\d{(['\"]/.test(f)?(o.reason='Missing \";\" before statement',a=\"error\"):a=\"info\"}else{if(disabledWarningsRe.test(u))continue;infoRe.test(u)?a=\"info\":errorsRe.test(u)?(i=!0,a=n):u==\"'{a}' is not defined.\"?a=\"warning\":u==\"'{a}' is defined but never used.\"&&(a=\"info\")}t.push({row:o.line-1,column:o.character-1,text:o.reason,type:a,raw:u}),i}this.sender.emit(\"annotate\",t)}}.call(JavaScriptWorker.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,\"sentinel\",{}),\"sentinel\"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t===\"undefined\"||t===\"boolean\"||t===\"number\"||t===\"string\"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n==\"function\"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r==\"function\"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!=\"function\")throw new TypeError(\"Function.prototype.bind called on incompatible \"+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,\"__defineGetter__\"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,\"XXX\"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)==\"[object Array]\"});var m=Object(\"a\"),g=m[0]!=\"a\"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduce of empty array with no initial value\");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError(\"reduce of empty array with no initial value\")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduceRight of empty array with no initial value\");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError(\"reduceRight of empty array with no initial value\")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!=\"object\")throw new TypeError(\"typeof prototype[\"+typeof t+\"] != 'object'\");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document==\"undefined\"||w(document.createElement(\"div\"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T=\"Property description must be an object: \",N=\"Object.defineProperty called on non-object: \",C=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(t,n,r){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(N+t);if(typeof r!=\"object\"&&typeof r!=\"function\"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,\"value\"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,\"get\")&&l(t,n,r.get),f(r,\"set\")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n==\"function\"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n=\"\";while(f(t,n))n+=\"?\";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!=\"object\"&&typeof e!=\"function\"||e===null)throw new TypeError(\"Object.keys called on a non-object\");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=\"\t\\n\u000b\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\";if(!String.prototype.trim||_.trim()){_=\"[\"+_+\"]\";var D=new RegExp(\"^\"+_+_+\"*\"),P=new RegExp(_+_+\"*$\");String.prototype.trim=function(){return String(this).replace(D,\"\").replace(P,\"\")}}var F=function(e){if(e==null)throw new TypeError(\"can't convert \"+e+\" to object\");return Object(e)}})"
  },
  {
    "path": "lib/src-min-noconflict-old/worker-json.js",
    "content": "\"no use strict\";(function(e){function t(e,t){var n=e,r=\"\";while(n){var i=t[n];if(typeof i==\"string\")return i+r;if(i)return i.location.replace(/\\/*$/,\"/\")+(r||i.main||i.name);if(i===!1)return\"\";var s=n.lastIndexOf(\"/\");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!=\"undefined\"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:\"error\",data:{message:e,data:i.data,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf(\"!\")!==-1){var r=n.split(\"!\");return e.normalizeModule(t,r[0])+\"!\"+e.normalizeModule(t,r[1])}if(n.charAt(0)==\".\"){var i=t.split(\"/\").slice(0,-1).join(\"/\");n=(i?i+\"/\":\"\")+n;while(n.indexOf(\".\")!==-1&&s!=n){var s=n;n=n.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log(\"unable to load \"+i);var o=t(i,e.require.tlns);return o.slice(-3)!=\".js\"&&(o+=\".js\"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!=\"string\"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!=\"function\"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=[\"require\",\"exports\",\"module\"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case\"require\":return i;case\"exports\":return e.exports;case\"module\":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},require.tlns={},e.initBaseUrls=function(t){for(var n in t)require.tlns[n]=t[n]},e.initSender=function(){var n=e.require(\"ace/lib/event_emitter\").EventEmitter,r=e.require(\"ace/lib/oop\"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:\"call\",id:t,data:e})},this.emit=function(e,t){postMessage({type:\"event\",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error(\"Unknown command:\"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),require(\"ace/lib/es5-shim\"),r=e.sender=e.initSender();var s=require(i.module)[i.classname];n=e.main=new s(r)}}})(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e==\"object\"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e==\"object\"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e,t){throw console.log(\"Invalid Delta:\",e),\"Invalid Delta: \"+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!=\"insert\"&&t.action!=\"remove\"&&r(t,\"delta.action must be 'insert' or 'remove'\"),t.lines instanceof Array||r(t,\"delta.lines must be an Array\"),(!t.start||!t.end)&&r(t,\"delta.start/end must be an present\");var n=t.start;i(e,t.start)||r(t,\"delta.start must be contained in document\");var s=t.end;t.action==\"remove\"&&!i(e,s)&&r(t,\"delta.end must contained in document for 'remove' actions\");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,\"delta.range must match delta lines\")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||\"\";switch(t.action){case\"insert\":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case\"remove\":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!=\"object\"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?\"unshift\":\"push\"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n==\"undefined\"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action==\"insert\",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal(\"change\",{old:i,value:r})},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./apply_delta\").applyDelta,s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=function(e){this.$lines=[\"\"],e.length===0?this.$lines=[\"\"]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},\"aaa\".split(/a/).length===0?this.$split=function(e){return e.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:this.$split=function(e){return e.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=t?t[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal(\"changeNewLineMode\")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==\"\\r\\n\"||e==\"\\r\"||e==\"\\n\"},this.getLine=function(e){return this.$lines[e]||\"\"},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||\"\").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(e,[\"\",\"\"])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:\"insert\",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([\"\"]),n=0):(t=[\"\"].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:\"insert\",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:\"remove\",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:\"remove\",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:\"remove\",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action==\"insert\";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal(\"change\",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(\"\"),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action==\"insert\"?\"remove\":\"insert\",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split(\"\").reverse().join(\"\")},t.stringRepeat=function(e,t){var n=\"\";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\\s\\s*/,i=/\\s\\s*$/;t.stringTrimLeft=function(e){return e.replace(r,\"\")},t.stringTrimRight=function(e){return e.replace(i,\"\")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]==\"object\"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!=\"object\"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}var r=e.constructor;if(r===RegExp)return e;t=r();for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},t.escapeHTML=function(e){return e.replace(/&/g,\"&#38;\").replace(/\"/g,\"&#34;\").replace(/'/g,\"&#39;\").replace(/</g,\"&#60;\")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=e(\"../document\").Document,s=e(\"../lib/lang\"),o=t.Mirror=function(e){this.sender=e;var t=this.doc=new i(\"\"),n=this.deferredUpdate=s.delayedCall(this.onUpdate.bind(this)),r=this;e.on(\"change\",function(e){var i=e.data;if(i[0].start)t.applyDeltas(i);else for(var s=0;s<i.length;s+=2){if(Array.isArray(i[s+1]))var o={action:\"insert\",start:i[s],lines:i[s+1]};else var o={action:\"remove\",start:i[s],end:i[s+1]};t.applyDelta(o,!0)}if(r.$timeout)return n.schedule(r.$timeout);r.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),ace.define(\"ace/mode/json/json_parse\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r,i,s={'\"':'\"',\"\\\\\":\"\\\\\",\"/\":\"/\",b:\"\\b\",f:\"\\f\",n:\"\\n\",r:\"\\r\",t:\"\t\"},o,u=function(e){throw{name:\"SyntaxError\",message:e,at:r,text:o}},a=function(e){return e&&e!==i&&u(\"Expected '\"+e+\"' instead of '\"+i+\"'\"),i=o.charAt(r),r+=1,i},f=function(){var e,t=\"\";i===\"-\"&&(t=\"-\",a(\"-\"));while(i>=\"0\"&&i<=\"9\")t+=i,a();if(i===\".\"){t+=\".\";while(a()&&i>=\"0\"&&i<=\"9\")t+=i}if(i===\"e\"||i===\"E\"){t+=i,a();if(i===\"-\"||i===\"+\")t+=i,a();while(i>=\"0\"&&i<=\"9\")t+=i,a()}e=+t;if(!isNaN(e))return e;u(\"Bad number\")},l=function(){var e,t,n=\"\",r;if(i==='\"')while(a()){if(i==='\"')return a(),n;if(i===\"\\\\\"){a();if(i===\"u\"){r=0;for(t=0;t<4;t+=1){e=parseInt(a(),16);if(!isFinite(e))break;r=r*16+e}n+=String.fromCharCode(r)}else{if(typeof s[i]!=\"string\")break;n+=s[i]}}else n+=i}u(\"Bad string\")},c=function(){while(i&&i<=\" \")a()},h=function(){switch(i){case\"t\":return a(\"t\"),a(\"r\"),a(\"u\"),a(\"e\"),!0;case\"f\":return a(\"f\"),a(\"a\"),a(\"l\"),a(\"s\"),a(\"e\"),!1;case\"n\":return a(\"n\"),a(\"u\"),a(\"l\"),a(\"l\"),null}u(\"Unexpected '\"+i+\"'\")},p,d=function(){var e=[];if(i===\"[\"){a(\"[\"),c();if(i===\"]\")return a(\"]\"),e;while(i){e.push(p()),c();if(i===\"]\")return a(\"]\"),e;a(\",\"),c()}}u(\"Bad array\")},v=function(){var e,t={};if(i===\"{\"){a(\"{\"),c();if(i===\"}\")return a(\"}\"),t;while(i){e=l(),c(),a(\":\"),Object.hasOwnProperty.call(t,e)&&u('Duplicate key \"'+e+'\"'),t[e]=p(),c();if(i===\"}\")return a(\"}\"),t;a(\",\"),c()}}u(\"Bad object\")};return p=function(){c();switch(i){case\"{\":return v();case\"[\":return d();case'\"':return l();case\"-\":return f();default:return i>=\"0\"&&i<=\"9\"?f():h()}},function(e,t){var n;return o=e,r=0,i=\" \",n=p(),c(),i&&u(\"Syntax error\"),typeof t==\"function\"?function s(e,n){var r,i,o=e[n];if(o&&typeof o==\"object\")for(r in o)Object.hasOwnProperty.call(o,r)&&(i=s(o,r),i!==undefined?o[r]=i:delete o[r]);return t.call(e,n,o)}({\"\":n},\"\"):n}}),ace.define(\"ace/mode/json_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/json/json_parse\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../worker/mirror\").Mirror,s=e(\"./json/json_parse\"),o=t.JsonWorker=function(e){i.call(this,e),this.setTimeout(200)};r.inherits(o,i),function(){this.onUpdate=function(){var e=this.doc.getValue(),t=[];try{e&&s(e)}catch(n){var r=this.doc.indexToPosition(n.at-1);t.push({row:r.row,column:r.column,text:n.message,type:\"error\"})}this.sender.emit(\"annotate\",t)}}.call(o.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,\"sentinel\",{}),\"sentinel\"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t===\"undefined\"||t===\"boolean\"||t===\"number\"||t===\"string\"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n==\"function\"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r==\"function\"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!=\"function\")throw new TypeError(\"Function.prototype.bind called on incompatible \"+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,\"__defineGetter__\"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,\"XXX\"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)==\"[object Array]\"});var m=Object(\"a\"),g=m[0]!=\"a\"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduce of empty array with no initial value\");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError(\"reduce of empty array with no initial value\")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduceRight of empty array with no initial value\");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError(\"reduceRight of empty array with no initial value\")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!=\"object\")throw new TypeError(\"typeof prototype[\"+typeof t+\"] != 'object'\");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document==\"undefined\"||w(document.createElement(\"div\"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T=\"Property description must be an object: \",N=\"Object.defineProperty called on non-object: \",C=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(t,n,r){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(N+t);if(typeof r!=\"object\"&&typeof r!=\"function\"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,\"value\"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,\"get\")&&l(t,n,r.get),f(r,\"set\")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n==\"function\"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n=\"\";while(f(t,n))n+=\"?\";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!=\"object\"&&typeof e!=\"function\"||e===null)throw new TypeError(\"Object.keys called on a non-object\");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=\"\t\\n\u000b\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\";if(!String.prototype.trim||_.trim()){_=\"[\"+_+\"]\";var D=new RegExp(\"^\"+_+_+\"*\"),P=new RegExp(_+_+\"*$\");String.prototype.trim=function(){return String(this).replace(D,\"\").replace(P,\"\")}}var F=function(e){if(e==null)throw new TypeError(\"can't convert \"+e+\" to object\");return Object(e)}})"
  },
  {
    "path": "lib/src-min-noconflict-old/worker-lua.js",
    "content": "\"no use strict\";(function(e){function t(e,t){var n=e,r=\"\";while(n){var i=t[n];if(typeof i==\"string\")return i+r;if(i)return i.location.replace(/\\/*$/,\"/\")+(r||i.main||i.name);if(i===!1)return\"\";var s=n.lastIndexOf(\"/\");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!=\"undefined\"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:\"error\",data:{message:e,data:i.data,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf(\"!\")!==-1){var r=n.split(\"!\");return e.normalizeModule(t,r[0])+\"!\"+e.normalizeModule(t,r[1])}if(n.charAt(0)==\".\"){var i=t.split(\"/\").slice(0,-1).join(\"/\");n=(i?i+\"/\":\"\")+n;while(n.indexOf(\".\")!==-1&&s!=n){var s=n;n=n.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log(\"unable to load \"+i);var o=t(i,e.require.tlns);return o.slice(-3)!=\".js\"&&(o+=\".js\"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!=\"string\"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!=\"function\"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=[\"require\",\"exports\",\"module\"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case\"require\":return i;case\"exports\":return e.exports;case\"module\":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},require.tlns={},e.initBaseUrls=function(t){for(var n in t)require.tlns[n]=t[n]},e.initSender=function(){var n=e.require(\"ace/lib/event_emitter\").EventEmitter,r=e.require(\"ace/lib/oop\"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:\"call\",id:t,data:e})},this.emit=function(e,t){postMessage({type:\"event\",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error(\"Unknown command:\"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),require(\"ace/lib/es5-shim\"),r=e.sender=e.initSender();var s=require(i.module)[i.classname];n=e.main=new s(r)}}})(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e==\"object\"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e==\"object\"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e,t){throw console.log(\"Invalid Delta:\",e),\"Invalid Delta: \"+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!=\"insert\"&&t.action!=\"remove\"&&r(t,\"delta.action must be 'insert' or 'remove'\"),t.lines instanceof Array||r(t,\"delta.lines must be an Array\"),(!t.start||!t.end)&&r(t,\"delta.start/end must be an present\");var n=t.start;i(e,t.start)||r(t,\"delta.start must be contained in document\");var s=t.end;t.action==\"remove\"&&!i(e,s)&&r(t,\"delta.end must contained in document for 'remove' actions\");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,\"delta.range must match delta lines\")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||\"\";switch(t.action){case\"insert\":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case\"remove\":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!=\"object\"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?\"unshift\":\"push\"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n==\"undefined\"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action==\"insert\",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal(\"change\",{old:i,value:r})},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./apply_delta\").applyDelta,s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=function(e){this.$lines=[\"\"],e.length===0?this.$lines=[\"\"]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},\"aaa\".split(/a/).length===0?this.$split=function(e){return e.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:this.$split=function(e){return e.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=t?t[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal(\"changeNewLineMode\")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==\"\\r\\n\"||e==\"\\r\"||e==\"\\n\"},this.getLine=function(e){return this.$lines[e]||\"\"},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||\"\").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(e,[\"\",\"\"])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:\"insert\",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([\"\"]),n=0):(t=[\"\"].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:\"insert\",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:\"remove\",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:\"remove\",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:\"remove\",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action==\"insert\";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal(\"change\",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(\"\"),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action==\"insert\"?\"remove\":\"insert\",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split(\"\").reverse().join(\"\")},t.stringRepeat=function(e,t){var n=\"\";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\\s\\s*/,i=/\\s\\s*$/;t.stringTrimLeft=function(e){return e.replace(r,\"\")},t.stringTrimRight=function(e){return e.replace(i,\"\")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]==\"object\"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!=\"object\"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}var r=e.constructor;if(r===RegExp)return e;t=r();for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},t.escapeHTML=function(e){return e.replace(/&/g,\"&#38;\").replace(/\"/g,\"&#34;\").replace(/'/g,\"&#39;\").replace(/</g,\"&#60;\")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=e(\"../document\").Document,s=e(\"../lib/lang\"),o=t.Mirror=function(e){this.sender=e;var t=this.doc=new i(\"\"),n=this.deferredUpdate=s.delayedCall(this.onUpdate.bind(this)),r=this;e.on(\"change\",function(e){var i=e.data;if(i[0].start)t.applyDeltas(i);else for(var s=0;s<i.length;s+=2){if(Array.isArray(i[s+1]))var o={action:\"insert\",start:i[s],lines:i[s+1]};else var o={action:\"remove\",start:i[s],end:i[s+1]};t.applyDelta(o,!0)}if(r.$timeout)return n.schedule(r.$timeout);r.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),ace.define(\"ace/mode/lua/luaparse\",[\"require\",\"exports\",\"module\"],function(e,t,n){(function(e,n,r){r(t)})(this,\"luaparse\",function(e){\"use strict\";function m(e){if(mt){var t=vt.pop();t.complete(),n.locations&&(e.loc=t.loc),n.ranges&&(e.range=t.range)}return e}function w(e,t,n){for(var r=0,i=e.length;r<i;r++)if(e[r][t]===n)return r;return-1}function E(e){var t=g.call(arguments,1);return e=e.replace(/%(\\d)/g,function(e,n){return\"\"+t[n-1]||\"\"}),e}function S(){var e=g.call(arguments),t={},n,r;for(var i=0,s=e.length;i<s;i++){n=e[i];for(r in n)n.hasOwnProperty(r)&&(t[r]=n[r])}return t}function x(e){var t=E.apply(null,g.call(arguments,1)),n,r;throw\"undefined\"!=typeof e.line?(r=e.range[0]-e.lineStart,n=new SyntaxError(E(\"[%1:%2] %3\",e.line,r,t)),n.line=e.line,n.index=e.range[0],n.column=r):(r=C-D+1,n=new SyntaxError(E(\"[%1:%2] %3\",_,r,t)),n.index=C,n.line=_,n.column=r),n}function T(e,t){x(t,d.expectedToken,e,t.value)}function N(e,t){\"undefined\"==typeof t&&(t=A.value);if(\"undefined\"!=typeof e.type){var n;switch(e.type){case o:n=\"string\";break;case u:n=\"keyword\";break;case a:n=\"identifier\";break;case f:n=\"number\";break;case l:n=\"symbol\";break;case c:n=\"boolean\";break;case h:return x(e,d.unexpected,\"symbol\",\"nil\",t)}return x(e,d.unexpected,n,e.value,t)}return x(e,d.unexpected,\"symbol\",e,t)}function P(){H();while(45===t.charCodeAt(C)&&45===t.charCodeAt(C+1))X(),H();if(C>=r)return{type:s,value:\"<eof>\",line:_,lineStart:D,range:[C,C]};var e=t.charCodeAt(C),n=t.charCodeAt(C+1);M=C;if(et(e))return B();switch(e){case 39:case 34:return I();case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return R();case 46:if(Y(n))return R();if(46===n)return 46===t.charCodeAt(C+2)?F():j(\"..\");return j(\".\");case 61:if(61===n)return j(\"==\");return j(\"=\");case 62:if(61===n)return j(\">=\");return j(\">\");case 60:if(61===n)return j(\"<=\");return j(\"<\");case 126:if(61===n)return j(\"~=\");return x({},d.expected,\"=\",\"~\");case 58:if(58===n)return j(\"::\");return j(\":\");case 91:if(91===n||61===n)return q();return j(\"[\");case 42:case 47:case 94:case 37:case 44:case 123:case 125:case 93:case 40:case 41:case 59:case 35:case 45:case 43:return j(t.charAt(C))}return N(t.charAt(C))}function H(){while(C<r){var e=t.charCodeAt(C);if(Q(e))C++;else{if(!G(e))break;_++,D=++C}}}function B(){var e,n;while(tt(t.charCodeAt(++C)));return e=t.slice(M,C),nt(e)?n=u:\"true\"===e||\"false\"===e?(n=c,e=\"true\"===e):\"nil\"===e?(n=h,e=null):n=a,{type:n,value:e,line:_,lineStart:D,range:[M,C]}}function j(e){return C+=e.length,{type:l,value:e,line:_,lineStart:D,range:[M,C]}}function F(){return C+=3,{type:p,value:\"...\",line:_,lineStart:D,range:[M,C]}}function I(){var e=t.charCodeAt(C++),n=C,i=\"\",s;while(C<r){s=t.charCodeAt(C++);if(e===s)break;if(92===s)i+=t.slice(n,C-1)+W(),n=C;else if(C>=r||G(s))i+=t.slice(n,C-1),x({},d.unfinishedString,i+String.fromCharCode(s))}return i+=t.slice(n,C-1),{type:o,value:i,line:_,lineStart:D,range:[M,C]}}function q(){var e=V();return!1===e&&x(k,d.expected,\"[\",k.value),{type:o,value:e,line:_,lineStart:D,range:[M,C]}}function R(){var e=t.charAt(C),n=t.charAt(C+1),r=\"0\"===e&&\"xX\".indexOf(n||null)>=0?U():z();return{type:f,value:r,line:_,lineStart:D,range:[M,C]}}function U(){var e=0,n=1,r=1,i,s,o,u;u=C+=2,Z(t.charCodeAt(C))||x({},d.malformedNumber,t.slice(M,C));while(Z(t.charCodeAt(C)))C++;i=parseInt(t.slice(u,C),16);if(\".\"===t.charAt(C)){s=++C;while(Z(t.charCodeAt(C)))C++;e=t.slice(s,C),e=s===C?0:parseInt(e,16)/Math.pow(16,C-s)}if(\"pP\".indexOf(t.charAt(C)||null)>=0){C++,\"+-\".indexOf(t.charAt(C)||null)>=0&&(r=\"+\"===t.charAt(C++)?1:-1),o=C,Y(t.charCodeAt(C))||x({},d.malformedNumber,t.slice(M,C));while(Y(t.charCodeAt(C)))C++;n=t.slice(o,C),n=Math.pow(2,n*r)}return(i+e)*n}function z(){while(Y(t.charCodeAt(C)))C++;if(\".\"===t.charAt(C)){C++;while(Y(t.charCodeAt(C)))C++}if(\"eE\".indexOf(t.charAt(C)||null)>=0){C++,\"+-\".indexOf(t.charAt(C)||null)>=0&&C++,Y(t.charCodeAt(C))||x({},d.malformedNumber,t.slice(M,C));while(Y(t.charCodeAt(C)))C++}return parseFloat(t.slice(M,C))}function W(){var e=C;switch(t.charAt(C)){case\"n\":return C++,\"\\n\";case\"r\":return C++,\"\\r\";case\"t\":return C++,\"\t\";case\"v\":return C++,\"\u000b\";case\"b\":return C++,\"\\b\";case\"f\":return C++,\"\\f\";case\"z\":return C++,H(),\"\";case\"x\":if(Z(t.charCodeAt(C+1))&&Z(t.charCodeAt(C+2)))return C+=3,\"\\\\\"+t.slice(e,C);return\"\\\\\"+t.charAt(C++);default:if(Y(t.charCodeAt(C))){while(Y(t.charCodeAt(++C)));return\"\\\\\"+t.slice(e,C)}return t.charAt(C++)}}function X(){M=C,C+=2;var e=t.charAt(C),i=\"\",s=!1,o=C,u=D,a=_;\"[\"===e&&(i=V(),!1===i?i=e:s=!0);if(!s){while(C<r){if(G(t.charCodeAt(C)))break;C++}n.comments&&(i=t.slice(o,C))}if(n.comments){var f=v.comment(i,t.slice(M,C));n.locations&&(f.loc={start:{line:a,column:M-u},end:{line:_,column:C-D}}),n.ranges&&(f.range=[M,C]),O.push(f)}}function V(){var e=0,n=\"\",i=!1,s,o;C++;while(\"=\"===t.charAt(C+e))e++;if(\"[\"!==t.charAt(C+e))return!1;C+=e+1,G(t.charCodeAt(C))&&(_++,D=C++),o=C;while(C<r){s=t.charAt(C++),G(s.charCodeAt(0))&&(_++,D=C);if(\"]\"===s){i=!0;for(var u=0;u<e;u++)\"=\"!==t.charAt(C+u)&&(i=!1);\"]\"!==t.charAt(C+e)&&(i=!1)}if(i)break}return n+=t.slice(o,C-1),C+=e+1,n}function $(){L=k,k=A,A=P()}function J(e){return e===k.value?($(),!0):!1}function K(e){e===k.value?$():x(k,d.expected,e,k.value)}function Q(e){return 9===e||32===e||11===e||12===e}function G(e){return 10===e||13===e}function Y(e){return e>=48&&e<=57}function Z(e){return e>=48&&e<=57||e>=97&&e<=102||e>=65&&e<=70}function et(e){return e>=65&&e<=90||e>=97&&e<=122||95===e}function tt(e){return e>=65&&e<=90||e>=97&&e<=122||95===e||e>=48&&e<=57}function nt(e){switch(e.length){case 2:return\"do\"===e||\"if\"===e||\"in\"===e||\"or\"===e;case 3:return\"and\"===e||\"end\"===e||\"for\"===e||\"not\"===e;case 4:return\"else\"===e||\"goto\"===e||\"then\"===e;case 5:return\"break\"===e||\"local\"===e||\"until\"===e||\"while\"===e;case 6:return\"elseif\"===e||\"repeat\"===e||\"return\"===e;case 8:return\"function\"===e}return!1}function rt(e){return l===e.type?\"#-\".indexOf(e.value)>=0:u===e.type?\"not\"===e.value:!1}function it(e){switch(e.type){case\"CallExpression\":case\"TableCallExpression\":case\"StringCallExpression\":return!0}return!1}function st(e){if(s===e.type)return!0;if(u!==e.type)return!1;switch(e.value){case\"else\":case\"elseif\":case\"end\":case\"until\":return!0;default:return!1}}function ft(){ot.push(Array.apply(null,ot[ut++]))}function lt(){ot.pop(),ut--}function ct(e){if(-1!==b(ot[ut],e))return;ot[ut].push(e)}function ht(e){ct(e.name),pt(e,!0)}function pt(e,t){!t&&-1===w(at,\"name\",e.name)&&at.push(e),e.isLocal=t}function dt(e){return-1!==b(ot[ut],e)}function gt(){return new yt(k)}function yt(e){n.locations&&(this.loc={start:{line:e.line,column:e.range[0]-e.lineStart},end:{line:0,column:0}}),n.ranges&&(this.range=[e.range[0],0])}function bt(){mt&&vt.push(gt())}function wt(e){mt&&vt.push(e)}function Et(){$(),bt();var e=St();return s!==k.type&&N(k),mt&&!e.length&&(L=k),m(v.chunk(e))}function St(e){var t=[],r;n.scope&&ft();while(!st(k)){if(\"return\"===k.value){t.push(xt());break}r=xt(),r&&t.push(r)}return n.scope&&lt(),t}function xt(){bt();if(u===k.type)switch(k.value){case\"local\":return $(),Dt();case\"if\":return $(),Mt();case\"return\":return $(),Ot();case\"function\":$();var e=jt();return Bt(e);case\"while\":return $(),Lt();case\"for\":return $(),_t();case\"repeat\":return $(),At();case\"break\":return $(),Nt();case\"do\":return $(),kt();case\"goto\":return $(),Ct()}if(l===k.type&&J(\"::\"))return Tt();mt&&vt.pop();if(J(\";\"))return;return Pt()}function Tt(){var e=k.value,t=Ht();return n.scope&&(ct(\"::\"+e+\"::\"),pt(t,!0)),K(\"::\"),m(v.labelStatement(t))}function Nt(){return m(v.breakStatement())}function Ct(){var e=k.value,t=Ht();return n.scope&&(t.isLabel=dt(\"::\"+e+\"::\")),m(v.gotoStatement(t))}function kt(){var e=St();return K(\"end\"),m(v.doStatement(e))}function Lt(){var e=qt();K(\"do\");var t=St();return K(\"end\"),m(v.whileStatement(e,t))}function At(){var e=St();K(\"until\");var t=qt();return m(v.repeatStatement(t,e))}function Ot(){var e=[];if(\"end\"!==k.value){var t=It();null!=t&&e.push(t);while(J(\",\"))t=qt(),e.push(t);J(\";\")}return m(v.returnStatement(e))}function Mt(){var e=[],t,n,r;mt&&(r=vt[vt.length-1],vt.push(r)),t=qt(),K(\"then\"),n=St(),e.push(m(v.ifClause(t,n))),mt&&(r=gt());while(J(\"elseif\"))wt(r),t=qt(),K(\"then\"),n=St(),e.push(m(v.elseifClause(t,n))),mt&&(r=gt());return J(\"else\")&&(mt&&(r=new yt(L),vt.push(r)),n=St(),e.push(m(v.elseClause(n)))),K(\"end\"),m(v.ifStatement(e))}function _t(){var e=Ht(),t;n.scope&&ht(e);if(J(\"=\")){var r=qt();K(\",\");var i=qt(),s=J(\",\")?qt():null;return K(\"do\"),t=St(),K(\"end\"),m(v.forNumericStatement(e,r,i,s,t))}var o=[e];while(J(\",\"))e=Ht(),n.scope&&ht(e),o.push(e);K(\"in\");var u=[];do{var a=qt();u.push(a)}while(J(\",\"));return K(\"do\"),t=St(),K(\"end\"),m(v.forGenericStatement(o,u,t))}function Dt(){var e;if(a===k.type){var t=[],r=[];do e=Ht(),t.push(e);while(J(\",\"));if(J(\"=\"))do{var i=qt();r.push(i)}while(J(\",\"));if(n.scope)for(var s=0,o=t.length;s<o;s++)ht(t[s]);return m(v.localStatement(t,r))}if(J(\"function\"))return e=Ht(),n.scope&&ht(e),Bt(e,!0);T(\"<name>\",k)}function Pt(){var e=k,t,n;mt&&(n=gt()),t=zt();if(null==t)return N(k);if(\",=\".indexOf(k.value)>=0){var r=[t],i=[],s;while(J(\",\"))s=zt(),null==s&&T(\"<expression>\",k),r.push(s);K(\"=\");do s=qt(),i.push(s);while(J(\",\"));return wt(n),m(v.assignmentStatement(r,i))}return it(t)?(wt(n),m(v.callStatement(t))):N(e)}function Ht(){bt();var e=k.value;return a!==k.type&&T(\"<name>\",k),$(),m(v.identifier(e))}function Bt(e,t){var r=[];K(\"(\");if(!J(\")\"))for(;;)if(a===k.type){var i=Ht();n.scope&&ht(i),r.push(i);if(J(\",\"))continue;if(J(\")\"))break}else{if(p===k.type){r.push(Xt()),K(\")\");break}T(\"<name> or '...'\",k)}var s=St();return K(\"end\"),t=t||!1,m(v.functionStatement(e,r,t,s))}function jt(){var e,t,r;mt&&(r=gt()),e=Ht(),n.scope&&pt(e,!1);while(J(\".\"))wt(r),t=Ht(),n.scope&&pt(t,!1),e=m(v.memberExpression(e,\".\",t));return J(\":\")&&(wt(r),t=Ht(),n.scope&&pt(t,!1),e=m(v.memberExpression(e,\":\",t))),e}function Ft(){var e=[],t,n;for(;;){bt();if(l===k.type&&J(\"[\"))t=qt(),K(\"]\"),K(\"=\"),n=qt(),e.push(m(v.tableKey(t,n)));else if(a===k.type)t=qt(),J(\"=\")?(n=qt(),e.push(m(v.tableKeyString(t,n)))):e.push(m(v.tableValue(t)));else{if(null==(n=It())){vt.pop();break}e.push(m(v.tableValue(n)))}if(\",;\".indexOf(k.value)>=0){$();continue}if(\"}\"===k.value)break}return K(\"}\"),m(v.tableConstructorExpression(e))}function It(){var e=Ut(0);return e}function qt(){var e=It();if(null!=e)return e;T(\"<expression>\",k)}function Rt(e){var t=e.charCodeAt(0),n=e.length;if(1===n)switch(t){case 94:return 10;case 42:case 47:case 37:return 7;case 43:case 45:return 6;case 60:case 62:return 3}else if(2===n)switch(t){case 46:return 5;case 60:case 62:case 61:case 126:return 3;case 111:return 1}else if(97===t&&\"and\"===e)return 2;return 0}function Ut(e){var t=k.value,n,r;mt&&(r=gt());if(rt(k)){bt(),$();var i=Ut(8);i==null&&T(\"<expression>\",k),n=m(v.unaryExpression(t,i))}null==n&&(n=Xt(),null==n&&(n=zt()));if(null==n)return null;var s;for(;;){t=k.value,s=l===k.type||u===k.type?Rt(t):0;if(s===0||s<=e)break;(\"^\"===t||\"..\"===t)&&s--,$();var o=Ut(s);null==o&&T(\"<expression>\",k),mt&&vt.push(r),n=m(v.binaryExpression(t,n,o))}return n}function zt(){var e,t,r,i;mt&&(r=gt());if(a===k.type)t=k.value,e=Ht(),n.scope&&pt(e,i=dt(t));else{if(!J(\"(\"))return null;e=qt(),K(\")\"),n.scope&&(i=e.isLocal)}var s,u;for(;;)if(l===k.type)switch(k.value){case\"[\":wt(r),$(),s=qt(),e=m(v.indexExpression(e,s)),K(\"]\");break;case\".\":wt(r),$(),u=Ht(),n.scope&&pt(u,i),e=m(v.memberExpression(e,\".\",u));break;case\":\":wt(r),$(),u=Ht(),n.scope&&pt(u,i),e=m(v.memberExpression(e,\":\",u)),wt(r),e=Wt(e);break;case\"(\":case\"{\":wt(r),e=Wt(e);break;default:return e}else{if(o!==k.type)break;wt(r),e=Wt(e)}return e}function Wt(e){if(l===k.type)switch(k.value){case\"(\":$();var t=[],n=It();null!=n&&t.push(n);while(J(\",\"))n=qt(),t.push(n);return K(\")\"),m(v.callExpression(e,t));case\"{\":bt(),$();var r=Ft();return m(v.tableCallExpression(e,r))}else if(o===k.type)return m(v.stringCallExpression(e,Xt()));T(\"function arguments\",k)}function Xt(){var e=o|f|c|h|p,n=k.value,r=k.type,i;mt&&(i=gt());if(r&e){wt(i);var s=t.slice(k.range[0],k.range[1]);return $(),m(v.literal(r,n,s))}if(u===r&&\"function\"===n)return wt(i),$(),Bt(null);if(J(\"{\"))return wt(i),Ft()}function Vt(s,o){return\"undefined\"==typeof o&&\"object\"==typeof s&&(o=s,s=undefined),o||(o={}),t=s||\"\",n=S(i,o),C=0,_=1,D=0,r=t.length,ot=[[]],ut=0,at=[],vt=[],n.comments&&(O=[]),n.wait?e:Jt()}function $t(n){return t+=String(n),r=t.length,e}function Jt(e){\"undefined\"!=typeof e&&$t(e),r=t.length,mt=n.locations||n.ranges,A=P();var i=Et();n.comments&&(i.comments=O),n.scope&&(i.globals=at);if(vt.length>0)throw new Error(\"Location tracking failed. This is most likely a bug in luaparse\");return i}e.version=\"0.1.4\";var t,n,r,i=e.defaultOptions={wait:!1,comments:!0,scope:!1,locations:!1,ranges:!1},s=1,o=2,u=4,a=8,f=16,l=32,c=64,h=128,p=256;e.tokenTypes={EOF:s,StringLiteral:o,Keyword:u,Identifier:a,NumericLiteral:f,Punctuator:l,BooleanLiteral:c,NilLiteral:h,VarargLiteral:p};var d=e.errors={unexpected:\"Unexpected %1 '%2' near '%3'\",expected:\"'%1' expected near '%2'\",expectedToken:\"%1 expected near '%2'\",unfinishedString:\"unfinished string near '%1'\",malformedNumber:\"malformed number near '%1'\"},v=e.ast={labelStatement:function(e){return{type:\"LabelStatement\",label:e}},breakStatement:function(){return{type:\"BreakStatement\"}},gotoStatement:function(e){return{type:\"GotoStatement\",label:e}},returnStatement:function(e){return{type:\"ReturnStatement\",arguments:e}},ifStatement:function(e){return{type:\"IfStatement\",clauses:e}},ifClause:function(e,t){return{type:\"IfClause\",condition:e,body:t}},elseifClause:function(e,t){return{type:\"ElseifClause\",condition:e,body:t}},elseClause:function(e){return{type:\"ElseClause\",body:e}},whileStatement:function(e,t){return{type:\"WhileStatement\",condition:e,body:t}},doStatement:function(e){return{type:\"DoStatement\",body:e}},repeatStatement:function(e,t){return{type:\"RepeatStatement\",condition:e,body:t}},localStatement:function(e,t){return{type:\"LocalStatement\",variables:e,init:t}},assignmentStatement:function(e,t){return{type:\"AssignmentStatement\",variables:e,init:t}},callStatement:function(e){return{type:\"CallStatement\",expression:e}},functionStatement:function(e,t,n,r){return{type:\"FunctionDeclaration\",identifier:e,isLocal:n,parameters:t,body:r}},forNumericStatement:function(e,t,n,r,i){return{type:\"ForNumericStatement\",variable:e,start:t,end:n,step:r,body:i}},forGenericStatement:function(e,t,n){return{type:\"ForGenericStatement\",variables:e,iterators:t,body:n}},chunk:function(e){return{type:\"Chunk\",body:e}},identifier:function(e){return{type:\"Identifier\",name:e}},literal:function(e,t,n){return e=e===o?\"StringLiteral\":e===f?\"NumericLiteral\":e===c?\"BooleanLiteral\":e===h?\"NilLiteral\":\"VarargLiteral\",{type:e,value:t,raw:n}},tableKey:function(e,t){return{type:\"TableKey\",key:e,value:t}},tableKeyString:function(e,t){return{type:\"TableKeyString\",key:e,value:t}},tableValue:function(e){return{type:\"TableValue\",value:e}},tableConstructorExpression:function(e){return{type:\"TableConstructorExpression\",fields:e}},binaryExpression:function(e,t,n){var r=\"and\"===e||\"or\"===e?\"LogicalExpression\":\"BinaryExpression\";return{type:r,operator:e,left:t,right:n}},unaryExpression:function(e,t){return{type:\"UnaryExpression\",operator:e,argument:t}},memberExpression:function(e,t,n){return{type:\"MemberExpression\",indexer:t,identifier:n,base:e}},indexExpression:function(e,t){return{type:\"IndexExpression\",base:e,index:t}},callExpression:function(e,t){return{type:\"CallExpression\",base:e,arguments:t}},tableCallExpression:function(e,t){return{type:\"TableCallExpression\",base:e,arguments:t}},stringCallExpression:function(e,t){return{type:\"StringCallExpression\",base:e,argument:t}},comment:function(e,t){return{type:\"Comment\",value:e,raw:t}}},g=Array.prototype.slice,y=Object.prototype.toString,b=function(t,n){for(var r=0,i=t.length;r<i;r++)if(t[r]===n)return r;return-1},C,k,L,A,O,M,_,D;e.lex=P;var ot,ut,at,vt=[],mt;yt.prototype.complete=function(){n.locations&&(this.loc.end.line=L.line,this.loc.end.column=L.range[1]-L.lineStart),n.ranges&&(this.range[1]=L.range[1])},e.parse=Vt,e.write=$t,e.end=Jt})}),ace.define(\"ace/mode/lua_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/lua/luaparse\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../worker/mirror\").Mirror,s=e(\"../mode/lua/luaparse\"),o=t.Worker=function(e){i.call(this,e),this.setTimeout(500)};r.inherits(o,i),function(){this.onUpdate=function(){var e=this.doc.getValue(),t=[];try{s.parse(e)}catch(n){n instanceof SyntaxError&&t.push({row:n.line-1,column:n.column,text:n.message,type:\"error\"})}this.sender.emit(\"annotate\",t)}}.call(o.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,\"sentinel\",{}),\"sentinel\"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t===\"undefined\"||t===\"boolean\"||t===\"number\"||t===\"string\"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n==\"function\"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r==\"function\"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!=\"function\")throw new TypeError(\"Function.prototype.bind called on incompatible \"+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,\"__defineGetter__\"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,\"XXX\"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)==\"[object Array]\"});var m=Object(\"a\"),g=m[0]!=\"a\"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduce of empty array with no initial value\");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError(\"reduce of empty array with no initial value\")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduceRight of empty array with no initial value\");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError(\"reduceRight of empty array with no initial value\")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!=\"object\")throw new TypeError(\"typeof prototype[\"+typeof t+\"] != 'object'\");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document==\"undefined\"||w(document.createElement(\"div\"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T=\"Property description must be an object: \",N=\"Object.defineProperty called on non-object: \",C=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(t,n,r){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(N+t);if(typeof r!=\"object\"&&typeof r!=\"function\"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,\"value\"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,\"get\")&&l(t,n,r.get),f(r,\"set\")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n==\"function\"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n=\"\";while(f(t,n))n+=\"?\";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!=\"object\"&&typeof e!=\"function\"||e===null)throw new TypeError(\"Object.keys called on a non-object\");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=\"\t\\n\u000b\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\";if(!String.prototype.trim||_.trim()){_=\"[\"+_+\"]\";var D=new RegExp(\"^\"+_+_+\"*\"),P=new RegExp(_+_+\"*$\");String.prototype.trim=function(){return String(this).replace(D,\"\").replace(P,\"\")}}var F=function(e){if(e==null)throw new TypeError(\"can't convert \"+e+\" to object\");return Object(e)}})"
  },
  {
    "path": "lib/src-min-noconflict-old/worker-php.js",
    "content": "\"no use strict\";(function(e){function t(e,t){var n=e,r=\"\";while(n){var i=t[n];if(typeof i==\"string\")return i+r;if(i)return i.location.replace(/\\/*$/,\"/\")+(r||i.main||i.name);if(i===!1)return\"\";var s=n.lastIndexOf(\"/\");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!=\"undefined\"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:\"error\",data:{message:e,data:i.data,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf(\"!\")!==-1){var r=n.split(\"!\");return e.normalizeModule(t,r[0])+\"!\"+e.normalizeModule(t,r[1])}if(n.charAt(0)==\".\"){var i=t.split(\"/\").slice(0,-1).join(\"/\");n=(i?i+\"/\":\"\")+n;while(n.indexOf(\".\")!==-1&&s!=n){var s=n;n=n.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log(\"unable to load \"+i);var o=t(i,e.require.tlns);return o.slice(-3)!=\".js\"&&(o+=\".js\"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!=\"string\"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!=\"function\"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=[\"require\",\"exports\",\"module\"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case\"require\":return i;case\"exports\":return e.exports;case\"module\":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},require.tlns={},e.initBaseUrls=function(t){for(var n in t)require.tlns[n]=t[n]},e.initSender=function(){var n=e.require(\"ace/lib/event_emitter\").EventEmitter,r=e.require(\"ace/lib/oop\"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:\"call\",id:t,data:e})},this.emit=function(e,t){postMessage({type:\"event\",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error(\"Unknown command:\"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),require(\"ace/lib/es5-shim\"),r=e.sender=e.initSender();var s=require(i.module)[i.classname];n=e.main=new s(r)}}})(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e==\"object\"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e==\"object\"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e,t){throw console.log(\"Invalid Delta:\",e),\"Invalid Delta: \"+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!=\"insert\"&&t.action!=\"remove\"&&r(t,\"delta.action must be 'insert' or 'remove'\"),t.lines instanceof Array||r(t,\"delta.lines must be an Array\"),(!t.start||!t.end)&&r(t,\"delta.start/end must be an present\");var n=t.start;i(e,t.start)||r(t,\"delta.start must be contained in document\");var s=t.end;t.action==\"remove\"&&!i(e,s)&&r(t,\"delta.end must contained in document for 'remove' actions\");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,\"delta.range must match delta lines\")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||\"\";switch(t.action){case\"insert\":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case\"remove\":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!=\"object\"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?\"unshift\":\"push\"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n==\"undefined\"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action==\"insert\",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal(\"change\",{old:i,value:r})},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./apply_delta\").applyDelta,s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=function(e){this.$lines=[\"\"],e.length===0?this.$lines=[\"\"]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},\"aaa\".split(/a/).length===0?this.$split=function(e){return e.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:this.$split=function(e){return e.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=t?t[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal(\"changeNewLineMode\")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==\"\\r\\n\"||e==\"\\r\"||e==\"\\n\"},this.getLine=function(e){return this.$lines[e]||\"\"},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||\"\").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(e,[\"\",\"\"])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:\"insert\",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([\"\"]),n=0):(t=[\"\"].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:\"insert\",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:\"remove\",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:\"remove\",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:\"remove\",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action==\"insert\";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal(\"change\",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(\"\"),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action==\"insert\"?\"remove\":\"insert\",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split(\"\").reverse().join(\"\")},t.stringRepeat=function(e,t){var n=\"\";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\\s\\s*/,i=/\\s\\s*$/;t.stringTrimLeft=function(e){return e.replace(r,\"\")},t.stringTrimRight=function(e){return e.replace(i,\"\")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]==\"object\"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!=\"object\"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}var r=e.constructor;if(r===RegExp)return e;t=r();for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},t.escapeHTML=function(e){return e.replace(/&/g,\"&#38;\").replace(/\"/g,\"&#34;\").replace(/'/g,\"&#39;\").replace(/</g,\"&#60;\")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=e(\"../document\").Document,s=e(\"../lib/lang\"),o=t.Mirror=function(e){this.sender=e;var t=this.doc=new i(\"\"),n=this.deferredUpdate=s.delayedCall(this.onUpdate.bind(this)),r=this;e.on(\"change\",function(e){var i=e.data;if(i[0].start)t.applyDeltas(i);else for(var s=0;s<i.length;s+=2){if(Array.isArray(i[s+1]))var o={action:\"insert\",start:i[s],lines:i[s+1]};else var o={action:\"remove\",start:i[s],end:i[s+1]};t.applyDelta(o,!0)}if(r.$timeout)return n.schedule(r.$timeout);r.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),ace.define(\"ace/mode/php/php\",[\"require\",\"exports\",\"module\"],function(e,t,n){var r={Constants:{}};r.Constants.T_INCLUDE=262,r.Constants.T_INCLUDE_ONCE=261,r.Constants.T_EVAL=260,r.Constants.T_REQUIRE=259,r.Constants.T_REQUIRE_ONCE=258,r.Constants.T_LOGICAL_OR=263,r.Constants.T_LOGICAL_XOR=264,r.Constants.T_LOGICAL_AND=265,r.Constants.T_PRINT=266,r.Constants.T_PLUS_EQUAL=277,r.Constants.T_MINUS_EQUAL=276,r.Constants.T_MUL_EQUAL=275,r.Constants.T_DIV_EQUAL=274,r.Constants.T_CONCAT_EQUAL=273,r.Constants.T_MOD_EQUAL=272,r.Constants.T_AND_EQUAL=271,r.Constants.T_OR_EQUAL=270,r.Constants.T_XOR_EQUAL=269,r.Constants.T_SL_EQUAL=268,r.Constants.T_SR_EQUAL=267,r.Constants.T_BOOLEAN_OR=278,r.Constants.T_BOOLEAN_AND=279,r.Constants.T_IS_EQUAL=283,r.Constants.T_IS_NOT_EQUAL=282,r.Constants.T_IS_IDENTICAL=281,r.Constants.T_IS_NOT_IDENTICAL=280,r.Constants.T_IS_SMALLER_OR_EQUAL=285,r.Constants.T_IS_GREATER_OR_EQUAL=284,r.Constants.T_SL=287,r.Constants.T_SR=286,r.Constants.T_INSTANCEOF=288,r.Constants.T_INC=297,r.Constants.T_DEC=296,r.Constants.T_INT_CAST=295,r.Constants.T_DOUBLE_CAST=294,r.Constants.T_STRING_CAST=293,r.Constants.T_ARRAY_CAST=292,r.Constants.T_OBJECT_CAST=291,r.Constants.T_BOOL_CAST=290,r.Constants.T_UNSET_CAST=289,r.Constants.T_NEW=299,r.Constants.T_CLONE=298,r.Constants.T_EXIT=300,r.Constants.T_IF=301,r.Constants.T_ELSEIF=302,r.Constants.T_ELSE=303,r.Constants.T_ENDIF=304,r.Constants.T_LNUMBER=305,r.Constants.T_DNUMBER=306,r.Constants.T_STRING=307,r.Constants.T_STRING_VARNAME=308,r.Constants.T_VARIABLE=309,r.Constants.T_NUM_STRING=310,r.Constants.T_INLINE_HTML=311,r.Constants.T_CHARACTER=312,r.Constants.T_BAD_CHARACTER=313,r.Constants.T_ENCAPSED_AND_WHITESPACE=314,r.Constants.T_CONSTANT_ENCAPSED_STRING=315,r.Constants.T_ECHO=316,r.Constants.T_DO=317,r.Constants.T_WHILE=318,r.Constants.T_ENDWHILE=319,r.Constants.T_FOR=320,r.Constants.T_ENDFOR=321,r.Constants.T_FOREACH=322,r.Constants.T_ENDFOREACH=323,r.Constants.T_DECLARE=324,r.Constants.T_ENDDECLARE=325,r.Constants.T_AS=326,r.Constants.T_SWITCH=327,r.Constants.T_ENDSWITCH=328,r.Constants.T_CASE=329,r.Constants.T_DEFAULT=330,r.Constants.T_BREAK=331,r.Constants.T_CONTINUE=332,r.Constants.T_GOTO=333,r.Constants.T_FUNCTION=334,r.Constants.T_CONST=335,r.Constants.T_RETURN=336,r.Constants.T_TRY=337,r.Constants.T_CATCH=338,r.Constants.T_THROW=339,r.Constants.T_USE=340,r.Constants.T_GLOBAL=341,r.Constants.T_STATIC=347,r.Constants.T_ABSTRACT=346,r.Constants.T_FINAL=345,r.Constants.T_PRIVATE=344,r.Constants.T_PROTECTED=343,r.Constants.T_PUBLIC=342,r.Constants.T_VAR=348,r.Constants.T_UNSET=349,r.Constants.T_ISSET=350,r.Constants.T_EMPTY=351,r.Constants.T_HALT_COMPILER=352,r.Constants.T_CLASS=353,r.Constants.T_TRAIT=382,r.Constants.T_INTERFACE=354,r.Constants.T_EXTENDS=355,r.Constants.T_IMPLEMENTS=356,r.Constants.T_OBJECT_OPERATOR=357,r.Constants.T_DOUBLE_ARROW=358,r.Constants.T_LIST=359,r.Constants.T_ARRAY=360,r.Constants.T_CLASS_C=361,r.Constants.T_TRAIT_C=381,r.Constants.T_METHOD_C=362,r.Constants.T_FUNC_C=363,r.Constants.T_LINE=364,r.Constants.T_FILE=365,r.Constants.T_COMMENT=366,r.Constants.T_DOC_COMMENT=367,r.Constants.T_OPEN_TAG=368,r.Constants.T_OPEN_TAG_WITH_ECHO=369,r.Constants.T_CLOSE_TAG=370,r.Constants.T_WHITESPACE=371,r.Constants.T_START_HEREDOC=372,r.Constants.T_END_HEREDOC=373,r.Constants.T_DOLLAR_OPEN_CURLY_BRACES=374,r.Constants.T_CURLY_OPEN=375,r.Constants.T_PAAMAYIM_NEKUDOTAYIM=376,r.Constants.T_DOUBLE_COLON=376,r.Constants.T_NAMESPACE=377,r.Constants.T_NS_C=378,r.Constants.T_DIR=379,r.Constants.T_NS_SEPARATOR=380,r.Lexer=function(e,t){var n,i=function(e){if(e.match(/\\n/)!==null){var t=e.substring(0,1);e=\"[\"+e.split(/\\n/).join(t+\",\"+t)+'].join(\"\\\\n\")'}return e},s,o=t===undefined||/^(on|true|1)$/i.test(t.short_open_tag)?/(\\<\\?php\\s|\\<\\?|\\<\\%|\\<script language\\=('|\")?php('|\")?\\>)/i:/(\\<\\?php\\s|<\\?=|\\<script language\\=('|\")?php('|\")?\\>)/i,u=t===undefined||/^(on|true|1)$/i.test(t.short_open_tag)?/^(\\<\\?php\\s|\\<\\?|\\<\\%|\\<script language\\=('|\")?php('|\")?\\>)/i:/^(\\<\\?php\\s|<\\?=|\\<script language\\=('|\")?php('|\")?\\>)/i,a=[{value:r.Constants.T_NAMESPACE,re:/^namespace(?=\\s)/i},{value:r.Constants.T_USE,re:/^use(?=\\s)/i},{value:r.Constants.T_ABSTRACT,re:/^abstract(?=\\s)/i},{value:r.Constants.T_IMPLEMENTS,re:/^implements(?=\\s)/i},{value:r.Constants.T_INTERFACE,re:/^interface(?=\\s)/i},{value:r.Constants.T_CONST,re:/^const(?=\\s)/i},{value:r.Constants.T_STATIC,re:/^static(?=\\s)/i},{value:r.Constants.T_FINAL,re:/^final(?=\\s)/i},{value:r.Constants.T_VAR,re:/^var(?=\\s)/i},{value:r.Constants.T_GLOBAL,re:/^global(?=\\s)/i},{value:r.Constants.T_CLONE,re:/^clone(?=\\s)/i},{value:r.Constants.T_THROW,re:/^throw(?=\\s)/i},{value:r.Constants.T_EXTENDS,re:/^extends(?=\\s)/i},{value:r.Constants.T_AND_EQUAL,re:/^&=/},{value:r.Constants.T_AS,re:/^as(?=\\s)/i},{value:r.Constants.T_ARRAY_CAST,re:/^\\(array\\)/i},{value:r.Constants.T_BOOL_CAST,re:/^\\((bool|boolean)\\)/i},{value:r.Constants.T_DOUBLE_CAST,re:/^\\((real|float|double)\\)/i},{value:r.Constants.T_INT_CAST,re:/^\\((int|integer)\\)/i},{value:r.Constants.T_OBJECT_CAST,re:/^\\(object\\)/i},{value:r.Constants.T_STRING_CAST,re:/^\\(string\\)/i},{value:r.Constants.T_UNSET_CAST,re:/^\\(unset\\)/i},{value:r.Constants.T_TRY,re:/^try(?=\\s*{)/i},{value:r.Constants.T_CATCH,re:/^catch(?=\\s*\\()/i},{value:r.Constants.T_INSTANCEOF,re:/^instanceof(?=\\s)/i},{value:r.Constants.T_LOGICAL_OR,re:/^or(?=\\s)/i},{value:r.Constants.T_LOGICAL_AND,re:/^and(?=\\s)/i},{value:r.Constants.T_LOGICAL_XOR,re:/^xor(?=\\s)/i},{value:r.Constants.T_BOOLEAN_AND,re:/^&&/},{value:r.Constants.T_BOOLEAN_OR,re:/^\\|\\|/},{value:r.Constants.T_CONTINUE,re:/^continue(?=\\s|;)/i},{value:r.Constants.T_BREAK,re:/^break(?=\\s|;)/i},{value:r.Constants.T_ENDDECLARE,re:/^enddeclare(?=\\s|;)/i},{value:r.Constants.T_ENDFOR,re:/^endfor(?=\\s|;)/i},{value:r.Constants.T_ENDFOREACH,re:/^endforeach(?=\\s|;)/i},{value:r.Constants.T_ENDIF,re:/^endif(?=\\s|;)/i},{value:r.Constants.T_ENDSWITCH,re:/^endswitch(?=\\s|;)/i},{value:r.Constants.T_ENDWHILE,re:/^endwhile(?=\\s|;)/i},{value:r.Constants.T_CASE,re:/^case(?=\\s)/i},{value:r.Constants.T_DEFAULT,re:/^default(?=\\s|:)/i},{value:r.Constants.T_SWITCH,re:/^switch(?=[ (])/i},{value:r.Constants.T_EXIT,re:/^(exit|die)(?=[ \\(;])/i},{value:r.Constants.T_CLOSE_TAG,re:/^(\\?\\>|\\%\\>|\\<\\/script\\>)\\s?\\s?/i,func:function(e){return c=!1,e}},{value:r.Constants.T_DOUBLE_ARROW,re:/^\\=\\>/},{value:r.Constants.T_DOUBLE_COLON,re:/^\\:\\:/},{value:r.Constants.T_METHOD_C,re:/^__METHOD__/},{value:r.Constants.T_LINE,re:/^__LINE__/},{value:r.Constants.T_FILE,re:/^__FILE__/},{value:r.Constants.T_FUNC_C,re:/^__FUNCTION__/},{value:r.Constants.T_NS_C,re:/^__NAMESPACE__/},{value:r.Constants.T_TRAIT_C,re:/^__TRAIT__/},{value:r.Constants.T_DIR,re:/^__DIR__/},{value:r.Constants.T_CLASS_C,re:/^__CLASS__/},{value:r.Constants.T_INC,re:/^\\+\\+/},{value:r.Constants.T_DEC,re:/^\\-\\-/},{value:r.Constants.T_CONCAT_EQUAL,re:/^\\.\\=/},{value:r.Constants.T_DIV_EQUAL,re:/^\\/\\=/},{value:r.Constants.T_XOR_EQUAL,re:/^\\^\\=/},{value:r.Constants.T_MUL_EQUAL,re:/^\\*\\=/},{value:r.Constants.T_MOD_EQUAL,re:/^\\%\\=/},{value:r.Constants.T_SL_EQUAL,re:/^<<=/},{value:r.Constants.T_START_HEREDOC,re:/^<<<[A-Z_0-9]+\\s/i,func:function(e){return n=e.substring(3,e.length-1),e}},{value:r.Constants.T_SL,re:/^<</},{value:r.Constants.T_IS_SMALLER_OR_EQUAL,re:/^<=/},{value:r.Constants.T_SR_EQUAL,re:/^>>=/},{value:r.Constants.T_SR,re:/^>>/},{value:r.Constants.T_IS_GREATER_OR_EQUAL,re:/^>=/},{value:r.Constants.T_OR_EQUAL,re:/^\\|\\=/},{value:r.Constants.T_PLUS_EQUAL,re:/^\\+\\=/},{value:r.Constants.T_MINUS_EQUAL,re:/^-\\=/},{value:r.Constants.T_OBJECT_OPERATOR,re:/^\\-\\>/i},{value:r.Constants.T_CLASS,re:/^class(?=[\\s\\{])/i,afterWhitespace:!0},{value:r.Constants.T_TRAIT,re:/^trait(?=[\\s]+[A-Za-z])/i},{value:r.Constants.T_PUBLIC,re:/^public(?=[\\s])/i},{value:r.Constants.T_PRIVATE,re:/^private(?=[\\s])/i},{value:r.Constants.T_PROTECTED,re:/^protected(?=[\\s])/i},{value:r.Constants.T_ARRAY,re:/^array(?=\\s*?\\()/i},{value:r.Constants.T_EMPTY,re:/^empty(?=[ \\(])/i},{value:r.Constants.T_ISSET,re:/^isset(?=[ \\(])/i},{value:r.Constants.T_UNSET,re:/^unset(?=[ \\(])/i},{value:r.Constants.T_RETURN,re:/^return(?=[ \"'(;])/i},{value:r.Constants.T_FUNCTION,re:/^function(?=[ \"'(;])/i},{value:r.Constants.T_ECHO,re:/^echo(?=[ \"'(;])/i},{value:r.Constants.T_LIST,re:/^list(?=\\s*?\\()/i},{value:r.Constants.T_PRINT,re:/^print(?=[ \"'(;])/i},{value:r.Constants.T_INCLUDE,re:/^include(?=[ \"'(;])/i},{value:r.Constants.T_INCLUDE_ONCE,re:/^include_once(?=[ \"'(;])/i},{value:r.Constants.T_REQUIRE,re:/^require(?=[ \"'(;])/i},{value:r.Constants.T_REQUIRE_ONCE,re:/^require_once(?=[ \"'(;])/i},{value:r.Constants.T_NEW,re:/^new(?=[ ])/i},{value:r.Constants.T_COMMENT,re:/^\\/\\*([\\S\\s]*?)(?:\\*\\/|$)/},{value:r.Constants.T_COMMENT,re:/^\\/\\/.*(\\s)?/},{value:r.Constants.T_COMMENT,re:/^\\#.*(\\s)?/},{value:r.Constants.T_ELSEIF,re:/^elseif(?=[\\s(])/i},{value:r.Constants.T_GOTO,re:/^goto(?=[\\s(])/i},{value:r.Constants.T_ELSE,re:/^else(?=[\\s{:])/i},{value:r.Constants.T_IF,re:/^if(?=[\\s(])/i},{value:r.Constants.T_DO,re:/^do(?=[ {])/i},{value:r.Constants.T_WHILE,re:/^while(?=[ (])/i},{value:r.Constants.T_FOREACH,re:/^foreach(?=[ (])/i},{value:r.Constants.T_ISSET,re:/^isset(?=[ (])/i},{value:r.Constants.T_IS_IDENTICAL,re:/^===/},{value:r.Constants.T_IS_EQUAL,re:/^==/},{value:r.Constants.T_IS_NOT_IDENTICAL,re:/^\\!==/},{value:r.Constants.T_IS_NOT_EQUAL,re:/^(\\!=|\\<\\>)/},{value:r.Constants.T_FOR,re:/^for(?=[ (])/i},{value:r.Constants.T_DNUMBER,re:/^[0-9]*\\.[0-9]+([eE][-]?[0-9]*)?/},{value:r.Constants.T_LNUMBER,re:/^(0x[0-9A-F]+|[0-9]+)/i},{value:r.Constants.T_OPEN_TAG_WITH_ECHO,re:/^(\\<\\?=|\\<\\%=)/i},{value:r.Constants.T_OPEN_TAG,re:u},{value:r.Constants.T_VARIABLE,re:/^\\$[a-zA-Z_\\x7f-\\uffff][a-zA-Z0-9_\\x7f-\\uffff]*/},{value:r.Constants.T_WHITESPACE,re:/^\\s+/},{value:r.Constants.T_CONSTANT_ENCAPSED_STRING,re:/^(\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"|'(?:[^'\\\\]|\\\\[\\s\\S])*')/,func:function(e,t){var n=0,i,s=0;if(e.substring(0,1)===\"'\")return e;var o=e.match(/(?:[^\\\\]|\\\\.)*[^\\\\]\\$[a-zA-Z_\\x7f-\\uffff][a-zA-Z0-9_\\x7f-\\uffff]*/g);if(o!==null){while(e.length>0){i=e.length,o=e.match(/^[\\[\\]\\;\\:\\?\\(\\)\\!\\.\\,\\>\\<\\=\\+\\-\\/\\*\\|\\&\\@\\^\\%\\\"\\'\\{\\}]/),o!==null&&(f.push(o[0]),e=e.substring(1),n>0&&o[0]===\"}\"&&n--,o[0]===\"[\"&&s++,o[0]===\"]\"&&s--),o=e.match(/^\\$[a-zA-Z_\\x7f-\\uffff][a-zA-Z0-9_\\x7f-\\uffff]*/);if(o!==null){f.push([parseInt(r.Constants.T_VARIABLE,10),o[0],l]),e=e.substring(o[0].length),o=e.match(/^(\\-\\>)\\s*([a-zA-Z_\\x7f-\\uffff][a-zA-Z0-9_\\x7f-\\uffff]*)\\s*(\\()/),o!==null&&(f.push([parseInt(r.Constants.T_OBJECT_OPERATOR,10),o[1],l]),f.push([parseInt(r.Constants.T_STRING,10),o[2],l]),o[3]&&f.push(o[3]),e=e.substring(o[0].length));if(e.match(/^\\[/g)!==null)continue}var u;n>0?u=/^([^\\\\\\$\"{}\\]\\(\\)\\->]|\\\\.)+/g:u=/^([^\\\\\\$\"{]|\\\\.|{[^\\$]|\\$(?=[^a-zA-Z_\\x7f-\\uffff]))+/g;var a,c;while((o=e.match(u))!==null){if(e.length===1)throw new Error(o);a=0,n>0?(c=o[0].match(/^[\\[\\]\\;\\:\\?\\(\\)\\!\\.\\,\\>\\<\\=\\+\\-\\/\\*\\|\\&\\{\\}\\@\\^\\%\\$\\~]/))?f.push(c[0]):a=r.Constants.T_STRING:a=r.Constants.T_ENCAPSED_AND_WHITESPACE,a&&f.push([parseInt(a,10),o[0].replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\"),l]),l+=o[0].split(\"\\n\").length-1,e=e.substring(o[0].length)}n>0&&e.match(/^\\->/)!==null&&(f.push([parseInt(r.Constants.T_OBJECT_OPERATOR,10),\"->\",l]),e=e.substring(2)),e.match(/^{\\$/)!==null&&(f.push([parseInt(r.Constants.T_CURLY_OPEN,10),\"{\",l]),e=e.substring(1),n++);if(i===e.length&&(o=e.match(/^(([^\\\\]|\\\\.)*?[^\\\\]\\$[a-zA-Z_\\x7f-\\uffff][a-zA-Z0-9_\\x7f-\\uffff]*)/g))!==null)return}return undefined}return e=e.replace(/\\r/g,\"\"),e}},{value:r.Constants.T_NS_SEPARATOR,re:/^\\\\(?=[a-zA-Z_])/},{value:r.Constants.T_STRING,re:/^[a-zA-Z_\\x7f-\\uffff][a-zA-Z0-9_\\x7f-\\uffff]*/},{value:-1,re:/^[\\[\\]\\;\\:\\?\\(\\)\\!\\.\\,\\>\\<\\=\\+\\-\\/\\*\\|\\&\\{\\}\\@\\^\\%\\\"\\'\\$\\~]/}],f=[],l=1,c=!1,h=!0;if(e===null)return f;typeof e!=\"string\"&&(e=e.toString());while(e.length>0&&h===!0)if(c===!0)if(n!==undefined){var p=new RegExp(\"([\\\\S\\\\s]*?)(\\\\r\\\\n|\\\\n|\\\\r)(\"+n+\")(;|\\\\r\\\\n|\\\\n)\",\"i\"),d=e.match(p);d!==null&&(f.push([parseInt(r.Constants.T_ENCAPSED_AND_WHITESPACE,10),d[1].replace(/^\\n/g,\"\").replace(/\\\\\\$/g,\"$\")+\"\\n\",l]),l+=d[1].split(\"\\n\").length,f.push([parseInt(r.Constants.T_END_HEREDOC,10),d[3],l]),e=e.substring(d[1].length+d[2].length+d[3].length),n=undefined);if(d===null)throw Error(\"sup\")}else h=a.some(function(t){if(t.afterWhitespace===!0){var n=f[f.length-1];if(!Array.isArray(n)||n[0]!==r.Constants.T_WHITESPACE&&n[0]!==r.Constants.T_OPEN_TAG&&n[0]!==r.Constants.T_COMMENT)return!1}var i=e.match(t.re);if(i!==null){if(t.value!==-1){var s=i[0];t.func!==undefined&&(s=t.func(s,t)),s!==undefined&&(f.push([parseInt(t.value,10),s,l]),l+=s.split(\"\\n\").length-1)}else f.push(i[0]);return e=e.substring(i[0].length),!0}return!1});else{var d=o.exec(e);if(d===null)return f.push([parseInt(r.Constants.T_INLINE_HTML,10),e.replace(/^\\n/,\"\"),l]),f;if(d.index>0){var v=e.substring(0,d.index);f.push([parseInt(r.Constants.T_INLINE_HTML,10),v,l]),l+=v.split(\"\\n\").length-1,e=e.substring(d.index)}c=!0}return f},r.Parser=function(e,t){var n=this.yybase,i=this.yydefault,s=this.yycheck,o=this.yyaction,u=this.yylen,a=this.yygbase,f=this.yygcheck,l=this.yyp,c=this.yygoto,h=this.yylhs,p=this.terminals,d=this.translate,v=this.yygdefault;this.pos=-1,this.line=1,this.tokenMap=this.createTokenMap(),this.dropTokens={},this.dropTokens[r.Constants.T_WHITESPACE]=1,this.dropTokens[r.Constants.T_OPEN_TAG]=1;var m=[];e.forEach(function(e,t){typeof e==\"object\"&&e[0]===r.Constants.T_OPEN_TAG_WITH_ECHO?(m.push([r.Constants.T_OPEN_TAG,e[1],e[2]]),m.push([r.Constants.T_ECHO,e[1],e[2]])):m.push(e)}),this.tokens=m;var g=this.TOKEN_NONE;this.startAttributes={startLine:1},this.endAttributes={};var y=[this.startAttributes],b=0,w=[b];this.yyastk=[],this.stackPos=0;var E,S;for(;;){if(n[b]===0)E=i[b];else{g===this.TOKEN_NONE&&(S=this.getNextToken(),g=S>=0&&S<this.TOKEN_MAP_SIZE?d[S]:this.TOKEN_INVALID,y[this.stackPos]=this.startAttributes);if(((E=n[b]+g)>=0&&E<this.YYLAST&&s[E]===g||b<this.YY2TBLSTATE&&(E=n[b+this.YYNLSTATES]+g)>=0&&E<this.YYLAST&&s[E]===g)&&(E=o[E])!==this.YYDEFAULT)if(E>0){++this.stackPos,w[this.stackPos]=b=E,this.yyastk[this.stackPos]=this.tokenValue,y[this.stackPos]=this.startAttributes,g=this.TOKEN_NONE;if(E<this.YYNLSTATES)continue;E-=this.YYNLSTATES}else E=-E;else E=i[b]}for(;;){if(E===0)return this.yyval;if(E===this.YYUNEXPECTED){if(t!==!0){var N=[];for(var C=0;C<this.TOKEN_MAP_SIZE;++C)if((E=n[b]+C)>=0&&E<this.YYLAST&&s[E]==C||b<this.YY2TBLSTATE&&(E=n[b+this.YYNLSTATES]+C)&&E<this.YYLAST&&s[E]==C)if(o[E]!=this.YYUNEXPECTED){if(N.length==4){N=[];break}N.push(this.terminals[C])}var k=\"\";throw N.length&&(k=\", expecting \"+N.join(\" or \")),new r.ParseError(\"syntax error, unexpected \"+p[g]+k,this.startAttributes.startLine)}return this.startAttributes.startLine}for(var x in this.endAttributes)y[this.stackPos-u[E]][x]=this.endAttributes[x];try{this[\"yyn\"+E](y[this.stackPos-u[E]])}catch(T){throw T}this.stackPos-=u[E],E=h[E],(l=a[E]+w[this.stackPos])>=0&&l<this.YYGLAST&&f[l]===E?b=c[l]:b=v[E],++this.stackPos,w[this.stackPos]=b,this.yyastk[this.stackPos]=this.yyval,y[this.stackPos]=this.startAttributes;if(b<this.YYNLSTATES)break;E=b-this.YYNLSTATES}}},r.ParseError=function(e,t){this.message=e,this.line=t},r.Parser.prototype.MODIFIER_PUBLIC=1,r.Parser.prototype.MODIFIER_PROTECTED=2,r.Parser.prototype.MODIFIER_PRIVATE=4,r.Parser.prototype.MODIFIER_STATIC=8,r.Parser.prototype.MODIFIER_ABSTRACT=16,r.Parser.prototype.MODIFIER_FINAL=32,r.Parser.prototype.getNextToken=function(){this.startAttributes={},this.endAttributes={};var e,t;while(this.tokens[++this.pos]!==undefined){e=this.tokens[this.pos];if(typeof e==\"string\")return this.startAttributes.startLine=this.line,this.endAttributes.endLine=this.line,'b\"'===e?(this.tokenValue='b\"','\"'.charCodeAt(0)):(this.tokenValue=e,e.charCodeAt(0));this.line+=(t=e[1].match(/\\n/g))===null?0:t.length;if(r.Constants.T_COMMENT===e[0])Array.isArray(this.startAttributes.comments)||(this.startAttributes.comments=[]),this.startAttributes.comments.push({type:\"comment\",comment:e[1],line:e[2]});else if(r.Constants.T_DOC_COMMENT===e[0])this.startAttributes.comments.push(new PHPParser_Comment_Doc(e[1],e[2]));else if(this.dropTokens[e[0]]===undefined)return this.tokenValue=e[1],this.startAttributes.startLine=e[2],this.endAttributes.endLine=this.line,this.tokenMap[e[0]]}return this.startAttributes.startLine=this.line,0},r.Parser.prototype.tokenName=function(e){var t=[\"T_INCLUDE\",\"T_INCLUDE_ONCE\",\"T_EVAL\",\"T_REQUIRE\",\"T_REQUIRE_ONCE\",\"T_LOGICAL_OR\",\"T_LOGICAL_XOR\",\"T_LOGICAL_AND\",\"T_PRINT\",\"T_PLUS_EQUAL\",\"T_MINUS_EQUAL\",\"T_MUL_EQUAL\",\"T_DIV_EQUAL\",\"T_CONCAT_EQUAL\",\"T_MOD_EQUAL\",\"T_AND_EQUAL\",\"T_OR_EQUAL\",\"T_XOR_EQUAL\",\"T_SL_EQUAL\",\"T_SR_EQUAL\",\"T_BOOLEAN_OR\",\"T_BOOLEAN_AND\",\"T_IS_EQUAL\",\"T_IS_NOT_EQUAL\",\"T_IS_IDENTICAL\",\"T_IS_NOT_IDENTICAL\",\"T_IS_SMALLER_OR_EQUAL\",\"T_IS_GREATER_OR_EQUAL\",\"T_SL\",\"T_SR\",\"T_INSTANCEOF\",\"T_INC\",\"T_DEC\",\"T_INT_CAST\",\"T_DOUBLE_CAST\",\"T_STRING_CAST\",\"T_ARRAY_CAST\",\"T_OBJECT_CAST\",\"T_BOOL_CAST\",\"T_UNSET_CAST\",\"T_NEW\",\"T_CLONE\",\"T_EXIT\",\"T_IF\",\"T_ELSEIF\",\"T_ELSE\",\"T_ENDIF\",\"T_LNUMBER\",\"T_DNUMBER\",\"T_STRING\",\"T_STRING_VARNAME\",\"T_VARIABLE\",\"T_NUM_STRING\",\"T_INLINE_HTML\",\"T_CHARACTER\",\"T_BAD_CHARACTER\",\"T_ENCAPSED_AND_WHITESPACE\",\"T_CONSTANT_ENCAPSED_STRING\",\"T_ECHO\",\"T_DO\",\"T_WHILE\",\"T_ENDWHILE\",\"T_FOR\",\"T_ENDFOR\",\"T_FOREACH\",\"T_ENDFOREACH\",\"T_DECLARE\",\"T_ENDDECLARE\",\"T_AS\",\"T_SWITCH\",\"T_ENDSWITCH\",\"T_CASE\",\"T_DEFAULT\",\"T_BREAK\",\"T_CONTINUE\",\"T_GOTO\",\"T_FUNCTION\",\"T_CONST\",\"T_RETURN\",\"T_TRY\",\"T_CATCH\",\"T_THROW\",\"T_USE\",\"T_INSTEADOF\",\"T_GLOBAL\",\"T_STATIC\",\"T_ABSTRACT\",\"T_FINAL\",\"T_PRIVATE\",\"T_PROTECTED\",\"T_PUBLIC\",\"T_VAR\",\"T_UNSET\",\"T_ISSET\",\"T_EMPTY\",\"T_HALT_COMPILER\",\"T_CLASS\",\"T_TRAIT\",\"T_INTERFACE\",\"T_EXTENDS\",\"T_IMPLEMENTS\",\"T_OBJECT_OPERATOR\",\"T_DOUBLE_ARROW\",\"T_LIST\",\"T_ARRAY\",\"T_CALLABLE\",\"T_CLASS_C\",\"T_TRAIT_C\",\"T_METHOD_C\",\"T_FUNC_C\",\"T_LINE\",\"T_FILE\",\"T_COMMENT\",\"T_DOC_COMMENT\",\"T_OPEN_TAG\",\"T_OPEN_TAG_WITH_ECHO\",\"T_CLOSE_TAG\",\"T_WHITESPACE\",\"T_START_HEREDOC\",\"T_END_HEREDOC\",\"T_DOLLAR_OPEN_CURLY_BRACES\",\"T_CURLY_OPEN\",\"T_PAAMAYIM_NEKUDOTAYIM\",\"T_DOUBLE_COLON\",\"T_NAMESPACE\",\"T_NS_C\",\"T_DIR\",\"T_NS_SEPARATOR\"],n=\"UNKNOWN\";return t.some(function(t){return r.Constants[t]===e?(n=t,!0):!1}),n},r.Parser.prototype.createTokenMap=function(){var e={},t,n,i=r.Constants.T_PAAMAYIM_NEKUDOTAYIM;for(n=256;n<1e3;++n)i===n?e[n]=this.T_PAAMAYIM_NEKUDOTAYIM:r.Constants.T_OPEN_TAG_WITH_ECHO===n?e[n]=r.Constants.T_ECHO:r.Constants.T_CLOSE_TAG===n?e[n]=59:\"UNKNOWN\"!==(t=this.tokenName(n))&&(e[n]=this[t]);return e};var i=function(){this.yyval=this.yyastk[this.stackPos-0]};r.Parser.prototype.MakeArray=function(e){return Array.isArray(e)?e:[e]},r.Parser.prototype.parseString=function(e){var t=0;return\"b\"===e[0]&&(t=1),\"'\"===e[t]?e=e.replace([\"\\\\\\\\\",\"\\\\'\"],[\"\\\\\",\"'\"]):e=this.parseEscapeSequences(e,'\"'),e},r.Parser.prototype.parseEscapeSequences=function(e,t){undefined!==t&&(e=e.replace(new RegExp(\"\\\\\"+t,\"g\"),t));var n={\"\\\\\":\"\\\\\",$:\"$\",n:\"\\n\",r:\"\\r\",t:\"\t\",f:\"\\f\",v:\"\u000b\",e:\"\u001b\"};return e.replace(/~\\\\\\\\([\\\\\\\\$nrtfve]|[xX][0-9a-fA-F]{1,2}|[0-7]{1,3})~/g,function(e){var t=e[1];return n[t]!==undefined?n[t]:\"x\"===t[0]||\"X\"===t[0]?chr(hexdec(t)):chr(octdec(t))})},r.Parser.prototype.TOKEN_NONE=-1,r.Parser.prototype.TOKEN_INVALID=149,r.Parser.prototype.TOKEN_MAP_SIZE=384,r.Parser.prototype.YYLAST=913,r.Parser.prototype.YY2TBLSTATE=328,r.Parser.prototype.YYGLAST=415,r.Parser.prototype.YYNLSTATES=544,r.Parser.prototype.YYUNEXPECTED=32767,r.Parser.prototype.YYDEFAULT=-32766,r.Parser.prototype.YYERRTOK=256,r.Parser.prototype.T_INCLUDE=257,r.Parser.prototype.T_INCLUDE_ONCE=258,r.Parser.prototype.T_EVAL=259,r.Parser.prototype.T_REQUIRE=260,r.Parser.prototype.T_REQUIRE_ONCE=261,r.Parser.prototype.T_LOGICAL_OR=262,r.Parser.prototype.T_LOGICAL_XOR=263,r.Parser.prototype.T_LOGICAL_AND=264,r.Parser.prototype.T_PRINT=265,r.Parser.prototype.T_PLUS_EQUAL=266,r.Parser.prototype.T_MINUS_EQUAL=267,r.Parser.prototype.T_MUL_EQUAL=268,r.Parser.prototype.T_DIV_EQUAL=269,r.Parser.prototype.T_CONCAT_EQUAL=270,r.Parser.prototype.T_MOD_EQUAL=271,r.Parser.prototype.T_AND_EQUAL=272,r.Parser.prototype.T_OR_EQUAL=273,r.Parser.prototype.T_XOR_EQUAL=274,r.Parser.prototype.T_SL_EQUAL=275,r.Parser.prototype.T_SR_EQUAL=276,r.Parser.prototype.T_BOOLEAN_OR=277,r.Parser.prototype.T_BOOLEAN_AND=278,r.Parser.prototype.T_IS_EQUAL=279,r.Parser.prototype.T_IS_NOT_EQUAL=280,r.Parser.prototype.T_IS_IDENTICAL=281,r.Parser.prototype.T_IS_NOT_IDENTICAL=282,r.Parser.prototype.T_IS_SMALLER_OR_EQUAL=283,r.Parser.prototype.T_IS_GREATER_OR_EQUAL=284,r.Parser.prototype.T_SL=285,r.Parser.prototype.T_SR=286,r.Parser.prototype.T_INSTANCEOF=287,r.Parser.prototype.T_INC=288,r.Parser.prototype.T_DEC=289,r.Parser.prototype.T_INT_CAST=290,r.Parser.prototype.T_DOUBLE_CAST=291,r.Parser.prototype.T_STRING_CAST=292,r.Parser.prototype.T_ARRAY_CAST=293,r.Parser.prototype.T_OBJECT_CAST=294,r.Parser.prototype.T_BOOL_CAST=295,r.Parser.prototype.T_UNSET_CAST=296,r.Parser.prototype.T_NEW=297,r.Parser.prototype.T_CLONE=298,r.Parser.prototype.T_EXIT=299,r.Parser.prototype.T_IF=300,r.Parser.prototype.T_ELSEIF=301,r.Parser.prototype.T_ELSE=302,r.Parser.prototype.T_ENDIF=303,r.Parser.prototype.T_LNUMBER=304,r.Parser.prototype.T_DNUMBER=305,r.Parser.prototype.T_STRING=306,r.Parser.prototype.T_STRING_VARNAME=307,r.Parser.prototype.T_VARIABLE=308,r.Parser.prototype.T_NUM_STRING=309,r.Parser.prototype.T_INLINE_HTML=310,r.Parser.prototype.T_CHARACTER=311,r.Parser.prototype.T_BAD_CHARACTER=312,r.Parser.prototype.T_ENCAPSED_AND_WHITESPACE=313,r.Parser.prototype.T_CONSTANT_ENCAPSED_STRING=314,r.Parser.prototype.T_ECHO=315,r.Parser.prototype.T_DO=316,r.Parser.prototype.T_WHILE=317,r.Parser.prototype.T_ENDWHILE=318,r.Parser.prototype.T_FOR=319,r.Parser.prototype.T_ENDFOR=320,r.Parser.prototype.T_FOREACH=321,r.Parser.prototype.T_ENDFOREACH=322,r.Parser.prototype.T_DECLARE=323,r.Parser.prototype.T_ENDDECLARE=324,r.Parser.prototype.T_AS=325,r.Parser.prototype.T_SWITCH=326,r.Parser.prototype.T_ENDSWITCH=327,r.Parser.prototype.T_CASE=328,r.Parser.prototype.T_DEFAULT=329,r.Parser.prototype.T_BREAK=330,r.Parser.prototype.T_CONTINUE=331,r.Parser.prototype.T_GOTO=332,r.Parser.prototype.T_FUNCTION=333,r.Parser.prototype.T_CONST=334,r.Parser.prototype.T_RETURN=335,r.Parser.prototype.T_TRY=336,r.Parser.prototype.T_CATCH=337,r.Parser.prototype.T_THROW=338,r.Parser.prototype.T_USE=339,r.Parser.prototype.T_INSTEADOF=340,r.Parser.prototype.T_GLOBAL=341,r.Parser.prototype.T_STATIC=342,r.Parser.prototype.T_ABSTRACT=343,r.Parser.prototype.T_FINAL=344,r.Parser.prototype.T_PRIVATE=345,r.Parser.prototype.T_PROTECTED=346,r.Parser.prototype.T_PUBLIC=347,r.Parser.prototype.T_VAR=348,r.Parser.prototype.T_UNSET=349,r.Parser.prototype.T_ISSET=350,r.Parser.prototype.T_EMPTY=351,r.Parser.prototype.T_HALT_COMPILER=352,r.Parser.prototype.T_CLASS=353,r.Parser.prototype.T_TRAIT=354,r.Parser.prototype.T_INTERFACE=355,r.Parser.prototype.T_EXTENDS=356,r.Parser.prototype.T_IMPLEMENTS=357,r.Parser.prototype.T_OBJECT_OPERATOR=358,r.Parser.prototype.T_DOUBLE_ARROW=359,r.Parser.prototype.T_LIST=360,r.Parser.prototype.T_ARRAY=361,r.Parser.prototype.T_CALLABLE=362,r.Parser.prototype.T_CLASS_C=363,r.Parser.prototype.T_TRAIT_C=364,r.Parser.prototype.T_METHOD_C=365,r.Parser.prototype.T_FUNC_C=366,r.Parser.prototype.T_LINE=367,r.Parser.prototype.T_FILE=368,r.Parser.prototype.T_COMMENT=369,r.Parser.prototype.T_DOC_COMMENT=370,r.Parser.prototype.T_OPEN_TAG=371,r.Parser.prototype.T_OPEN_TAG_WITH_ECHO=372,r.Parser.prototype.T_CLOSE_TAG=373,r.Parser.prototype.T_WHITESPACE=374,r.Parser.prototype.T_START_HEREDOC=375,r.Parser.prototype.T_END_HEREDOC=376,r.Parser.prototype.T_DOLLAR_OPEN_CURLY_BRACES=377,r.Parser.prototype.T_CURLY_OPEN=378,r.Parser.prototype.T_PAAMAYIM_NEKUDOTAYIM=379,r.Parser.prototype.T_NAMESPACE=380,r.Parser.prototype.T_NS_C=381,r.Parser.prototype.T_DIR=382,r.Parser.prototype.T_NS_SEPARATOR=383,r.Parser.prototype.terminals=[\"$EOF\",\"error\",\"T_INCLUDE\",\"T_INCLUDE_ONCE\",\"T_EVAL\",\"T_REQUIRE\",\"T_REQUIRE_ONCE\",\"','\",\"T_LOGICAL_OR\",\"T_LOGICAL_XOR\",\"T_LOGICAL_AND\",\"T_PRINT\",\"'='\",\"T_PLUS_EQUAL\",\"T_MINUS_EQUAL\",\"T_MUL_EQUAL\",\"T_DIV_EQUAL\",\"T_CONCAT_EQUAL\",\"T_MOD_EQUAL\",\"T_AND_EQUAL\",\"T_OR_EQUAL\",\"T_XOR_EQUAL\",\"T_SL_EQUAL\",\"T_SR_EQUAL\",\"'?'\",\"':'\",\"T_BOOLEAN_OR\",\"T_BOOLEAN_AND\",\"'|'\",\"'^'\",\"'&'\",\"T_IS_EQUAL\",\"T_IS_NOT_EQUAL\",\"T_IS_IDENTICAL\",\"T_IS_NOT_IDENTICAL\",\"'<'\",\"T_IS_SMALLER_OR_EQUAL\",\"'>'\",\"T_IS_GREATER_OR_EQUAL\",\"T_SL\",\"T_SR\",\"'+'\",\"'-'\",\"'.'\",\"'*'\",\"'/'\",\"'%'\",\"'!'\",\"T_INSTANCEOF\",\"'~'\",\"T_INC\",\"T_DEC\",\"T_INT_CAST\",\"T_DOUBLE_CAST\",\"T_STRING_CAST\",\"T_ARRAY_CAST\",\"T_OBJECT_CAST\",\"T_BOOL_CAST\",\"T_UNSET_CAST\",\"'@'\",\"'['\",\"T_NEW\",\"T_CLONE\",\"T_EXIT\",\"T_IF\",\"T_ELSEIF\",\"T_ELSE\",\"T_ENDIF\",\"T_LNUMBER\",\"T_DNUMBER\",\"T_STRING\",\"T_STRING_VARNAME\",\"T_VARIABLE\",\"T_NUM_STRING\",\"T_INLINE_HTML\",\"T_ENCAPSED_AND_WHITESPACE\",\"T_CONSTANT_ENCAPSED_STRING\",\"T_ECHO\",\"T_DO\",\"T_WHILE\",\"T_ENDWHILE\",\"T_FOR\",\"T_ENDFOR\",\"T_FOREACH\",\"T_ENDFOREACH\",\"T_DECLARE\",\"T_ENDDECLARE\",\"T_AS\",\"T_SWITCH\",\"T_ENDSWITCH\",\"T_CASE\",\"T_DEFAULT\",\"T_BREAK\",\"T_CONTINUE\",\"T_GOTO\",\"T_FUNCTION\",\"T_CONST\",\"T_RETURN\",\"T_TRY\",\"T_CATCH\",\"T_THROW\",\"T_USE\",\"T_INSTEADOF\",\"T_GLOBAL\",\"T_STATIC\",\"T_ABSTRACT\",\"T_FINAL\",\"T_PRIVATE\",\"T_PROTECTED\",\"T_PUBLIC\",\"T_VAR\",\"T_UNSET\",\"T_ISSET\",\"T_EMPTY\",\"T_HALT_COMPILER\",\"T_CLASS\",\"T_TRAIT\",\"T_INTERFACE\",\"T_EXTENDS\",\"T_IMPLEMENTS\",\"T_OBJECT_OPERATOR\",\"T_DOUBLE_ARROW\",\"T_LIST\",\"T_ARRAY\",\"T_CALLABLE\",\"T_CLASS_C\",\"T_TRAIT_C\",\"T_METHOD_C\",\"T_FUNC_C\",\"T_LINE\",\"T_FILE\",\"T_START_HEREDOC\",\"T_END_HEREDOC\",\"T_DOLLAR_OPEN_CURLY_BRACES\",\"T_CURLY_OPEN\",\"T_PAAMAYIM_NEKUDOTAYIM\",\"T_NAMESPACE\",\"T_NS_C\",\"T_DIR\",\"T_NS_SEPARATOR\",\"';'\",\"'{'\",\"'}'\",\"'('\",\"')'\",\"'$'\",\"']'\",\"'`'\",\"'\\\"'\",\"???\"],r.Parser.prototype.translate=[0,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,47,148,149,145,46,30,149,143,144,44,41,7,42,43,45,149,149,149,149,149,149,149,149,149,149,25,140,35,12,37,24,59,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,60,149,146,29,149,147,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,141,28,142,49,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,1,2,3,4,5,6,8,9,10,11,13,14,15,16,17,18,19,20,21,22,23,26,27,31,32,33,34,36,38,39,40,48,50,51,52,53,54,55,56,57,58,61,62,63,64,65,66,67,68,69,70,71,72,73,74,149,149,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,149,149,149,149,149,149,131,132,133,134,135,136,137,138,139],r.Parser.prototype.yyaction=[61,62,363,63,64,-32766,-32766,-32766,509,65,708,709,710,707,706,705,-32766,-32766,-32766,-32766,-32766,-32766,132,-32766,-32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767,-32766,335,-32766,-32766,-32766,-32766,-32766,66,67,351,663,664,40,68,548,69,232,233,70,71,72,73,74,75,76,77,30,246,78,336,364,-112,0,469,833,834,365,641,890,436,590,41,835,53,27,366,294,367,687,368,921,369,923,922,370,-32766,-32766,-32766,42,43,371,339,126,44,372,337,79,297,349,292,293,-32766,918,-32766,-32766,373,374,375,376,377,391,199,361,338,573,613,378,379,380,381,845,839,840,841,842,836,837,253,-32766,87,88,89,391,843,838,338,597,519,128,80,129,273,332,257,261,47,673,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,799,247,884,108,109,110,226,247,21,-32766,310,-32766,-32766,-32766,642,548,-32766,-32766,-32766,-32766,56,353,-32766,-32766,-32766,55,-32766,-32766,-32766,-32766,-32766,58,-32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766,557,-32766,-32766,518,-32766,548,890,-32766,390,-32766,228,252,-32766,-32766,-32766,-32766,-32766,275,-32766,234,-32766,587,588,-32766,-32766,-32766,-32766,-32766,-32766,-32766,46,236,-32766,-32766,281,-32766,682,348,-32766,390,-32766,346,333,521,-32766,-32766,-32766,271,911,262,237,446,911,-32766,894,59,700,358,135,548,123,538,35,-32766,333,122,-32766,-32766,-32766,271,-32766,124,-32766,692,-32766,-32766,-32766,-32766,700,273,22,-32766,-32766,-32766,-32766,239,-32766,-32766,612,-32766,548,134,-32766,390,-32766,462,354,-32766,-32766,-32766,-32766,-32766,227,-32766,238,-32766,845,542,-32766,856,611,200,-32766,-32766,-32766,259,280,-32766,-32766,201,-32766,855,129,-32766,390,130,202,333,206,-32766,-32766,-32766,271,-32766,-32766,-32766,125,601,-32766,136,299,700,489,28,548,105,106,107,-32766,498,499,-32766,-32766,-32766,207,-32766,133,-32766,525,-32766,-32766,-32766,-32766,663,664,527,-32766,-32766,-32766,-32766,528,-32766,-32766,610,-32766,548,427,-32766,390,-32766,532,539,-32766,-32766,-32766,-32766,-32766,240,-32766,247,-32766,697,543,-32766,554,523,608,-32766,-32766,-32766,686,535,-32766,-32766,54,-32766,57,60,-32766,390,246,-155,278,345,-32766,-32766,-32766,506,347,-152,471,402,403,-32766,405,404,272,493,416,548,318,417,505,-32766,517,548,-32766,-32766,-32766,549,-32766,562,-32766,916,-32766,-32766,-32766,-32766,564,826,848,-32766,-32766,-32766,-32766,694,-32766,-32766,485,-32766,548,487,-32766,390,-32766,504,802,-32766,-32766,-32766,-32766,-32766,279,-32766,911,-32766,502,492,-32766,413,483,269,-32766,-32766,-32766,243,337,-32766,-32766,418,-32766,454,229,-32766,390,274,373,374,344,-32766,-32766,-32766,360,614,-32766,573,613,378,379,-274,548,615,-332,844,-32766,258,51,-32766,-32766,-32766,270,-32766,346,-32766,52,-32766,260,0,-32766,-333,-32766,-32766,-32766,-32766,-32766,-32766,205,-32766,-32766,49,-32766,548,424,-32766,390,-32766,-266,264,-32766,-32766,-32766,-32766,-32766,409,-32766,343,-32766,265,312,-32766,470,513,-275,-32766,-32766,-32766,920,337,-32766,-32766,530,-32766,531,600,-32766,390,592,373,374,578,581,-32766,-32766,644,629,-32766,573,613,378,379,635,548,636,576,627,-32766,625,693,-32766,-32766,-32766,691,-32766,591,-32766,582,-32766,203,204,-32766,584,583,-32766,-32766,-32766,-32766,586,599,-32766,-32766,589,-32766,690,558,-32766,390,197,683,919,86,520,522,-32766,524,833,834,529,533,-32766,534,537,541,835,48,111,112,113,114,115,116,117,118,119,120,121,127,31,633,337,330,634,585,-32766,32,291,337,330,478,373,374,917,291,891,889,875,373,374,553,613,378,379,737,739,887,553,613,378,379,824,451,675,839,840,841,842,836,837,320,895,277,885,23,33,843,838,556,277,337,330,-32766,34,-32766,555,291,36,37,38,373,374,39,45,50,81,82,83,84,553,613,378,379,-32767,-32767,-32767,-32767,103,104,105,106,107,337,85,131,137,337,138,198,224,225,277,373,374,-332,230,373,374,24,337,231,573,613,378,379,573,613,378,379,373,374,235,248,249,250,337,251,0,573,613,378,379,276,329,331,373,374,-32766,337,574,490,792,337,609,573,613,378,379,373,374,25,300,373,374,319,337,795,573,613,378,379,573,613,378,379,373,374,516,355,359,445,482,796,507,573,613,378,379,508,548,337,890,775,791,337,604,803,808,806,698,373,374,888,807,373,374,-32766,-32766,-32766,573,613,378,379,573,613,378,379,873,832,804,872,851,-32766,809,-32766,-32766,-32766,-32766,805,20,26,29,298,480,515,770,778,827,457,0,900,455,774,0,0,0,874,870,886,823,915,852,869,488,0,391,793,0,338,0,0,0,340,0,273],r.Parser.prototype.yycheck=[2,3,4,5,6,8,9,10,70,11,104,105,106,107,108,109,8,9,10,8,9,24,60,26,27,28,29,30,31,32,33,34,24,7,26,27,28,29,30,41,42,7,123,124,7,47,70,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,144,0,75,68,69,70,25,72,70,74,7,76,77,78,79,7,81,142,83,70,85,72,73,88,8,9,10,92,93,94,95,7,97,98,95,100,7,7,103,104,24,142,26,27,105,106,111,112,113,136,7,7,139,114,115,116,117,122,123,132,125,126,127,128,129,130,131,8,8,9,10,136,137,138,139,140,141,25,143,141,145,142,147,148,24,72,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,144,48,72,44,45,46,30,48,144,64,72,8,9,10,140,70,8,9,10,74,60,25,77,78,79,60,81,24,83,26,85,60,24,88,26,27,28,92,93,94,64,140,97,98,70,100,70,72,103,104,74,145,7,77,78,79,111,81,7,83,30,85,140,140,88,8,9,10,92,93,94,133,134,97,98,145,100,140,7,103,104,24,139,96,141,140,141,111,101,75,75,30,70,75,64,70,60,110,121,12,70,141,25,143,74,96,141,77,78,79,101,81,141,83,140,85,140,141,88,110,145,144,92,93,94,64,7,97,98,142,100,70,141,103,104,74,145,141,77,78,79,111,81,7,83,30,85,132,25,88,132,142,12,92,93,94,120,60,97,98,12,100,148,141,103,104,141,12,96,12,140,141,111,101,8,9,10,141,25,64,90,91,110,65,66,70,41,42,43,74,65,66,77,78,79,12,81,25,83,25,85,140,141,88,123,124,25,92,93,94,64,25,97,98,142,100,70,120,103,104,74,25,25,77,78,79,111,81,30,83,48,85,140,141,88,140,141,30,92,93,94,140,141,97,98,60,100,60,60,103,104,61,72,75,70,140,141,111,67,70,87,99,70,70,64,70,72,102,89,70,70,71,70,70,74,70,70,77,78,79,70,81,70,83,70,85,140,141,88,70,144,70,92,93,94,64,70,97,98,72,100,70,72,103,104,74,72,72,77,78,79,111,81,75,83,75,85,89,86,88,79,101,118,92,93,94,87,95,97,98,87,100,87,87,103,104,118,105,106,95,140,141,111,95,115,64,114,115,116,117,135,70,115,120,132,74,120,140,77,78,79,119,81,139,83,140,85,120,-1,88,120,140,141,92,93,94,64,121,97,98,121,100,70,122,103,104,74,135,135,77,78,79,111,81,139,83,139,85,135,135,88,135,135,135,92,93,94,142,95,97,98,140,100,140,140,103,104,140,105,106,140,140,141,111,140,140,64,114,115,116,117,140,70,140,140,140,74,140,140,77,78,79,140,81,140,83,140,85,41,42,88,140,140,141,92,93,94,140,140,97,98,140,100,140,140,103,104,60,140,142,141,141,141,111,141,68,69,141,141,72,141,141,141,76,12,13,14,15,16,17,18,19,20,21,22,23,141,143,142,95,96,142,140,141,143,101,95,96,142,105,106,142,101,142,142,142,105,106,114,115,116,117,50,51,142,114,115,116,117,142,123,142,125,126,127,128,129,130,131,142,136,142,144,143,137,138,142,136,95,96,143,143,145,142,101,143,143,143,105,106,143,143,143,143,143,143,143,114,115,116,117,35,36,37,38,39,40,41,42,43,95,143,143,143,95,143,143,143,143,136,105,106,120,143,105,106,144,95,143,114,115,116,117,114,115,116,117,105,106,143,143,143,143,95,143,-1,114,115,116,117,143,143,143,105,106,143,95,142,80,146,95,142,114,115,116,117,105,106,144,144,105,106,144,95,142,114,115,116,117,114,115,116,117,105,106,82,144,144,144,144,142,84,114,115,116,117,144,70,95,72,144,144,95,142,144,146,144,142,105,106,146,144,105,106,8,9,10,114,115,116,117,114,115,116,117,144,144,144,144,144,24,104,26,27,28,29,144,144,144,144,144,144,144,144,144,144,144,-1,144,144,144,-1,-1,-1,146,146,146,146,146,146,146,146,-1,136,147,-1,139,-1,-1,-1,143,-1,145],r.Parser.prototype.yybase=[0,574,581,623,655,2,718,402,747,659,672,688,743,701,705,483,483,483,483,483,351,356,366,366,367,366,344,-2,-2,-2,200,200,231,231,231,231,231,231,231,231,200,231,451,482,532,316,370,115,146,285,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,44,474,429,476,481,487,488,739,740,741,734,733,416,736,539,541,342,542,543,552,557,559,536,567,737,755,569,735,738,123,123,123,123,123,123,123,123,123,122,11,336,336,336,336,336,336,336,336,336,336,336,336,336,336,336,227,227,173,577,577,577,577,577,577,577,577,577,577,577,79,178,846,8,-3,-3,-3,-3,642,706,706,706,706,157,179,242,431,431,360,431,525,368,767,767,767,767,767,767,767,767,767,767,767,767,350,375,315,315,652,652,-81,-81,-81,-81,251,185,188,184,-62,348,195,195,195,408,392,410,1,192,129,129,129,-24,-24,-24,-24,499,-24,-24,-24,113,108,108,12,161,349,526,271,398,529,438,130,206,265,427,76,414,427,288,295,76,166,44,262,422,141,491,372,494,413,71,92,93,267,135,100,34,415,745,746,742,-38,420,-10,135,147,744,498,107,26,493,144,377,363,369,332,363,400,377,588,377,376,377,360,37,582,376,377,374,376,388,363,364,412,369,377,441,443,390,106,332,377,390,377,400,64,590,591,323,592,589,593,649,608,362,500,399,407,620,625,636,365,354,614,524,425,359,355,423,570,578,357,406,414,394,352,403,531,433,403,653,434,385,417,411,444,310,318,501,425,668,757,380,637,684,403,609,387,87,325,638,382,403,639,403,696,503,615,403,697,384,435,425,352,352,352,700,66,699,583,702,707,704,748,721,749,584,750,358,583,722,751,682,215,613,422,436,389,447,221,257,752,403,403,506,499,403,395,685,397,426,753,392,391,647,683,403,418,754,221,723,587,724,450,568,507,648,509,327,725,353,497,610,454,622,455,461,404,510,373,732,612,247,361,664,463,405,692,641,464,465,511,343,437,335,409,396,665,293,467,468,472,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,0,0,0,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,0,0,0,0,0,0,0,0,0,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,767,767,767,767,767,767,767,767,767,767,767,123,123,123,123,123,123,123,123,0,129,129,129,129,-94,-94,-94,767,767,767,767,767,767,0,0,0,0,0,0,0,0,0,0,0,0,-94,-94,129,129,767,767,-24,-24,-24,-24,-24,108,108,108,-24,108,145,145,145,108,108,108,100,100,0,0,0,0,0,0,0,145,0,0,0,376,0,0,0,145,260,260,221,260,260,135,0,0,425,376,0,364,376,0,0,0,0,0,0,531,0,87,637,241,425,0,0,0,0,0,0,0,425,289,289,306,0,358,0,0,0,306,241,0,0,221],r.Parser.prototype.yydefault=[3,32767,32767,1,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,104,96,110,95,106,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,358,358,122,122,122,122,122,122,122,122,316,32767,32767,32767,32767,32767,32767,32767,32767,32767,173,173,173,32767,348,348,348,348,348,348,348,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,363,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,232,233,235,236,172,125,349,362,171,199,201,250,200,177,182,183,184,185,186,187,188,189,190,191,192,176,229,228,197,313,313,316,32767,32767,32767,32767,32767,32767,32767,32767,198,202,204,203,219,220,217,218,175,221,222,223,224,157,157,157,357,357,32767,357,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,158,32767,211,212,276,276,117,117,117,117,117,32767,32767,32767,32767,284,32767,32767,32767,32767,32767,286,32767,32767,206,207,205,32767,32767,32767,32767,32767,32767,32767,32767,32767,285,32767,32767,32767,32767,32767,32767,32767,32767,334,321,272,32767,32767,32767,265,32767,107,109,32767,32767,32767,32767,302,339,32767,32767,32767,17,32767,32767,32767,370,334,32767,32767,19,32767,32767,32767,32767,227,32767,338,332,32767,32767,32767,32767,32767,32767,63,32767,32767,32767,32767,32767,63,281,63,32767,63,32767,315,287,32767,63,74,32767,72,32767,32767,76,32767,63,93,93,254,315,54,63,254,63,32767,32767,32767,32767,4,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,267,32767,323,32767,337,336,324,32767,265,32767,215,194,266,32767,196,32767,32767,270,273,32767,32767,32767,134,32767,268,180,32767,32767,32767,32767,365,32767,32767,174,32767,32767,32767,130,32767,61,332,32767,32767,355,32767,32767,332,269,208,209,210,32767,121,32767,310,32767,32767,32767,32767,32767,32767,327,32767,333,32767,32767,32767,32767,111,32767,302,32767,32767,32767,75,32767,32767,178,126,32767,32767,364,32767,32767,32767,320,32767,32767,32767,32767,32767,62,32767,32767,77,32767,32767,32767,32767,332,32767,32767,32767,115,32767,169,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,332,32767,32767,32767,32767,32767,32767,32767,4,32767,151,32767,32767,32767,32767,32767,32767,32767,25,25,3,137,3,137,25,101,25,25,137,93,93,25,25,25,144,25,25,25,25,25,25,25,25],r.Parser.prototype.yygoto=[141,141,173,173,173,173,173,173,173,173,141,173,142,143,144,148,153,155,181,175,172,172,172,172,174,174,174,174,174,174,174,168,169,170,171,179,757,758,392,760,781,782,783,784,785,786,787,789,725,145,146,147,149,150,151,152,154,177,178,180,196,208,209,210,211,212,213,214,215,217,218,219,220,244,245,266,267,268,430,431,432,182,183,184,185,186,187,188,189,190,191,192,156,157,158,159,176,160,194,161,162,163,164,195,165,193,139,166,167,452,452,452,452,452,452,452,452,452,452,452,453,453,453,453,453,453,453,453,453,453,453,551,551,551,464,491,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,407,552,552,552,810,810,662,662,662,662,662,594,283,595,510,399,399,567,679,632,849,850,863,660,714,426,222,622,622,622,622,223,617,623,494,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,465,472,514,904,398,398,425,425,459,425,419,322,421,421,393,396,412,422,428,460,463,473,481,501,5,476,284,327,1,15,2,6,7,550,550,550,8,9,10,668,16,11,17,12,18,13,19,14,704,328,881,881,643,628,626,626,624,626,526,401,652,647,847,847,847,847,847,847,847,847,847,847,847,437,438,441,447,477,479,497,290,910,910,400,400,486,880,880,263,913,910,303,255,723,306,822,821,306,896,896,896,861,304,323,410,913,913,897,316,420,769,658,559,879,671,536,324,466,565,311,311,311,801,241,676,496,439,440,442,444,448,475,631,858,311,285,286,603,495,712,0,406,321,0,0,0,314,0,0,429,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,411],r.Parser.prototype.yygcheck=[15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,35,35,35,35,35,35,35,35,35,35,35,86,86,86,86,86,86,86,86,86,86,86,6,6,6,21,21,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,71,7,7,7,35,35,35,35,35,35,35,29,44,29,35,86,86,12,12,12,12,12,12,12,12,75,40,35,35,35,35,40,35,35,35,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,36,36,36,104,82,82,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,13,42,42,42,2,13,2,13,13,5,5,5,13,13,13,54,13,13,13,13,13,13,13,13,67,67,83,83,5,5,5,5,5,5,5,5,5,5,93,93,93,93,93,93,93,93,93,93,93,52,52,52,52,52,52,52,4,105,105,89,89,94,84,84,92,105,105,26,92,71,4,91,91,4,84,84,84,97,30,70,30,105,105,102,27,30,72,50,10,84,55,46,9,30,11,90,90,90,80,30,56,30,85,85,85,85,85,85,43,96,90,44,44,34,77,69,-1,4,90,-1,-1,-1,4,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,71],r.Parser.prototype.yygbase=[0,0,-286,0,10,239,130,154,0,-10,25,-23,-29,-289,0,-30,0,0,0,0,0,83,0,0,0,0,245,84,-11,142,-28,0,0,0,-13,-88,-42,0,0,0,-344,0,-38,-12,-188,0,23,0,0,0,66,0,247,0,205,24,-18,0,0,0,0,0,0,0,0,0,0,13,0,-15,85,74,70,0,0,148,0,-14,0,0,-6,0,-35,11,47,278,-77,0,0,44,68,43,38,72,94,0,-16,109,0,0,0,0,87,0,170,34,0],r.Parser.prototype.yygdefault=[-32768,362,3,546,382,570,571,572,307,305,560,566,467,4,568,140,295,575,296,500,577,414,579,580,308,309,415,315,216,593,503,313,596,357,602,301,449,383,350,461,221,423,456,630,282,638,540,646,649,450,657,352,433,434,667,672,677,680,334,325,474,684,685,256,689,511,512,703,242,711,317,724,342,788,790,397,408,484,797,326,800,384,385,386,387,435,818,815,289,866,287,443,254,853,468,356,903,862,288,388,389,302,898,341,905,912,458],r.Parser.prototype.yylhs=[0,1,2,2,4,4,3,3,3,3,3,3,3,3,3,8,8,10,10,10,10,9,9,11,13,13,14,14,14,14,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,33,33,34,27,27,30,30,6,7,7,7,37,37,37,38,38,41,41,39,39,42,42,22,22,29,29,32,32,31,31,43,23,23,23,23,44,44,45,45,46,46,20,20,16,16,47,18,18,48,17,17,19,19,36,36,49,49,50,50,51,51,51,51,52,52,53,53,54,54,24,24,55,55,55,25,25,56,56,40,40,57,57,57,57,62,62,63,63,64,64,64,64,65,66,66,61,61,58,58,60,60,68,68,67,67,67,67,67,67,59,59,69,69,26,26,21,21,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,71,77,77,79,79,80,81,81,81,81,81,81,86,86,35,35,35,72,72,87,87,82,82,88,88,88,88,88,73,73,73,76,76,76,78,78,93,93,93,93,93,93,93,93,93,93,93,93,93,93,12,12,12,12,12,12,74,74,74,74,94,94,96,96,95,95,97,97,28,28,28,28,99,99,98,98,98,98,98,100,100,84,84,89,89,83,83,101,101,101,101,90,90,90,90,85,85,91,91,91,70,70,102,102,102,75,75,103,103,104,104,104,104,92,92,92,92,105,105,105,105,105,105,105,106,106,106],r.Parser.prototype.yylen=[1,1,2,0,1,3,1,1,1,1,3,5,4,3,3,3,1,1,3,2,4,3,1,3,2,0,1,1,1,1,3,7,10,5,7,9,5,2,3,2,3,2,3,3,3,3,1,2,5,7,8,10,5,1,5,3,3,2,1,2,8,1,3,0,1,9,7,6,5,1,2,2,0,2,0,2,0,2,1,3,1,4,1,4,1,4,1,3,3,3,4,4,5,0,2,4,3,1,1,1,4,0,2,5,0,2,6,0,2,0,3,1,0,1,3,3,5,0,1,1,1,1,0,1,3,1,2,3,1,1,2,4,3,1,1,3,2,0,3,3,8,3,1,3,0,2,4,5,4,4,3,1,1,1,3,1,1,0,1,1,2,1,1,1,1,1,1,1,3,1,3,3,1,0,1,1,6,3,4,4,1,2,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,5,4,4,4,2,2,4,2,2,2,2,2,2,2,2,2,2,2,1,4,3,3,2,9,10,3,0,4,1,3,2,4,6,8,4,4,4,1,1,1,2,3,1,1,1,1,1,1,0,3,3,4,4,0,2,3,0,1,1,0,3,1,1,1,1,1,1,1,1,1,1,1,3,2,1,1,3,2,2,4,3,1,3,3,3,0,2,0,1,3,1,3,1,1,1,1,1,6,4,3,6,4,4,4,1,3,1,2,1,1,4,1,3,6,4,4,4,4,1,4,0,1,1,3,1,3,1,1,4,0,0,2,3,1,3,1,4,2,2,2,1,2,1,4,3,3,3,6,3,1,1,1],r.Parser.prototype.yyn0=function(){this.yyval=this.yyastk[this.stackPos]},r.Parser.prototype.yyn1=function(e){this.yyval=this.Stmt_Namespace_postprocess(this.yyastk[this.stackPos-0])},r.Parser.prototype.yyn2=function(e){Array.isArray(this.yyastk[this.stackPos-0])?this.yyval=this.yyastk[this.stackPos-1].concat(this.yyastk[this.stackPos-0]):(this.yyastk[this.stackPos-1].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-1])},r.Parser.prototype.yyn3=function(e){this.yyval=[]},r.Parser.prototype.yyn4=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn5=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn6=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn7=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn8=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn9=function(e){this.yyval=this.Node_Stmt_HaltCompiler(e)},r.Parser.prototype.yyn10=function(e){this.yyval=this.Node_Stmt_Namespace(this.Node_Name(this.yyastk[this.stackPos-1],e),null,e)},r.Parser.prototype.yyn11=function(e){this.yyval=this.Node_Stmt_Namespace(this.Node_Name(this.yyastk[this.stackPos-3],e),this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn12=function(e){this.yyval=this.Node_Stmt_Namespace(null,this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn13=function(e){this.yyval=this.Node_Stmt_Use(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn14=function(e){this.yyval=this.Node_Stmt_Const(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn15=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn16=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn17=function(e){this.yyval=this.Node_Stmt_UseUse(this.Node_Name(this.yyastk[this.stackPos-0],e),null,e)},r.Parser.prototype.yyn18=function(e){this.yyval=this.Node_Stmt_UseUse(this.Node_Name(this.yyastk[this.stackPos-2],e),this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn19=function(e){this.yyval=this.Node_Stmt_UseUse(this.Node_Name(this.yyastk[this.stackPos-0],e),null,e)},r.Parser.prototype.yyn20=function(e){this.yyval=this.Node_Stmt_UseUse(this.Node_Name(this.yyastk[this.stackPos-2],e),this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn21=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn22=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn23=function(e){this.yyval=this.Node_Const(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn24=function(e){Array.isArray(this.yyastk[this.stackPos-0])?this.yyval=this.yyastk[this.stackPos-1].concat(this.yyastk[this.stackPos-0]):(this.yyastk[this.stackPos-1].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-1])},r.Parser.prototype.yyn25=function(e){this.yyval=[]},r.Parser.prototype.yyn26=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn27=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn28=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn29=function(e){throw new Error(\"__halt_compiler() can only be used from the outermost scope\")},r.Parser.prototype.yyn30=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn31=function(e){this.yyval=this.Node_Stmt_If(this.yyastk[this.stackPos-4],{stmts:Array.isArray(this.yyastk[this.stackPos-2])?this.yyastk[this.stackPos-2]:[this.yyastk[this.stackPos-2]],elseifs:this.yyastk[this.stackPos-1],Else:this.yyastk[this.stackPos-0]},e)},r.Parser.prototype.yyn32=function(e){this.yyval=this.Node_Stmt_If(this.yyastk[this.stackPos-7],{stmts:this.yyastk[this.stackPos-4],elseifs:this.yyastk[this.stackPos-3],\"else\":this.yyastk[this.stackPos-2]},e)},r.Parser.prototype.yyn33=function(e){this.yyval=this.Node_Stmt_While(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn34=function(e){this.yyval=this.Node_Stmt_Do(this.yyastk[this.stackPos-2],Array.isArray(this.yyastk[this.stackPos-5])?this.yyastk[this.stackPos-5]:[this.yyastk[this.stackPos-5]],e)},r.Parser.prototype.yyn35=function(e){this.yyval=this.Node_Stmt_For({init:this.yyastk[this.stackPos-6],cond:this.yyastk[this.stackPos-4],loop:this.yyastk[this.stackPos-2],stmts:this.yyastk[this.stackPos-0]},e)},r.Parser.prototype.yyn36=function(e){this.yyval=this.Node_Stmt_Switch(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn37=function(e){this.yyval=this.Node_Stmt_Break(null,e)},r.Parser.prototype.yyn38=function(e){this.yyval=this.Node_Stmt_Break(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn39=function(e){this.yyval=this.Node_Stmt_Continue(null,e)},r.Parser.prototype.yyn40=function(e){this.yyval=this.Node_Stmt_Continue(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn41=function(e){this.yyval=this.Node_Stmt_Return(null,e)},r.Parser.prototype.yyn42=function(e){this.yyval=this.Node_Stmt_Return(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn43=function(e){this.yyval=this.Node_Stmt_Global(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn44=function(e){this.yyval=this.Node_Stmt_Static(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn45=function(e){this.yyval=this.Node_Stmt_Echo(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn46=function(e){this.yyval=this.Node_Stmt_InlineHTML(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn47=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn48=function(e){this.yyval=this.Node_Stmt_Unset(this.yyastk[this.stackPos-2],e)},r.Parser.prototype.yyn49=function(e){this.yyval=this.Node_Stmt_Foreach(this.yyastk[this.stackPos-4],this.yyastk[this.stackPos-2],{keyVar:null,byRef:!1,stmts:this.yyastk[this.stackPos-0]},e)},r.Parser.prototype.yyn50=function(e){this.yyval=this.Node_Stmt_Foreach(this.yyastk[this.stackPos-5],this.yyastk[this.stackPos-2],{keyVar:null,byRef:!0,stmts:this.yyastk[this.stackPos-0]},e)},r.Parser.prototype.yyn51=function(e){this.yyval=this.Node_Stmt_Foreach(this.yyastk[this.stackPos-7],this.yyastk[this.stackPos-2],{keyVar:this.yyastk[this.stackPos-5],byRef:this.yyastk[this.stackPos-3],stmts:this.yyastk[this.stackPos-0]},e)},r.Parser.prototype.yyn52=function(e){this.yyval=this.Node_Stmt_Declare(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn53=function(e){this.yyval=[]},r.Parser.prototype.yyn54=function(e){this.yyval=this.Node_Stmt_TryCatch(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn55=function(e){this.yyval=this.Node_Stmt_Throw(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn56=function(e){this.yyval=this.Node_Stmt_Goto(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn57=function(e){this.yyval=this.Node_Stmt_Label(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn58=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn59=function(e){this.yyastk[this.stackPos-1].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn60=function(e){this.yyval=this.Node_Stmt_Catch(this.yyastk[this.stackPos-5],this.yyastk[this.stackPos-4].substring(1),this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn61=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn62=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn63=function(e){this.yyval=!1},r.Parser.prototype.yyn64=function(e){this.yyval=!0},r.Parser.prototype.yyn65=function(e){this.yyval=this.Node_Stmt_Function(this.yyastk[this.stackPos-6],{byRef:this.yyastk[this.stackPos-7],params:this.yyastk[this.stackPos-4],stmts:this.yyastk[this.stackPos-1]},e)},r.Parser.prototype.yyn66=function(e){this.yyval=this.Node_Stmt_Class(this.yyastk[this.stackPos-5],{type:this.yyastk[this.stackPos-6],Extends:this.yyastk[this.stackPos-4],Implements:this.yyastk[this.stackPos-3],stmts:this.yyastk[this.stackPos-1]},e)},r.Parser.prototype.yyn67=function(e){this.yyval=this.Node_Stmt_Interface(this.yyastk[this.stackPos-4],{Extends:this.yyastk[this.stackPos-3],stmts:this.yyastk[this.stackPos-1]},e)},r.Parser.prototype.yyn68=function(e){this.yyval=this.Node_Stmt_Trait(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn69=function(e){this.yyval=0},r.Parser.prototype.yyn70=function(e){this.yyval=this.MODIFIER_ABSTRACT},r.Parser.prototype.yyn71=function(e){this.yyval=this.MODIFIER_FINAL},r.Parser.prototype.yyn72=function(e){this.yyval=null},r.Parser.prototype.yyn73=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn74=function(e){this.yyval=[]},r.Parser.prototype.yyn75=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn76=function(e){this.yyval=[]},r.Parser.prototype.yyn77=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn78=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn79=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn80=function(e){this.yyval=Array.isArray(this.yyastk[this.stackPos-0])?this.yyastk[this.stackPos-0]:[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn81=function(e){this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn82=function(e){this.yyval=Array.isArray(this.yyastk[this.stackPos-0])?this.yyastk[this.stackPos-0]:[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn83=function(e){this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn84=function(e){this.yyval=Array.isArray(this.yyastk[this.stackPos-0])?this.yyastk[this.stackPos-0]:[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn85=function(e){this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn86=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn87=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn88=function(e){this.yyval=this.Node_Stmt_DeclareDeclare(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn89=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn90=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn91=function(e){this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn92=function(e){this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn93=function(e){this.yyval=[]},r.Parser.prototype.yyn94=function(e){this.yyastk[this.stackPos-1].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn95=function(e){this.yyval=this.Node_Stmt_Case(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn96=function(e){this.yyval=this.Node_Stmt_Case(null,this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn97=function(){this.yyval=this.yyastk[this.stackPos]},r.Parser.prototype.yyn98=function(){this.yyval=this.yyastk[this.stackPos]},r.Parser.prototype.yyn99=function(e){this.yyval=Array.isArray(this.yyastk[this.stackPos-0])?this.yyastk[this.stackPos-0]:[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn100=function(e){this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn101=function(e){this.yyval=[]},r.Parser.prototype.yyn102=function(e){this.yyastk[this.stackPos-1].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn103=function(e){this.yyval=this.Node_Stmt_ElseIf(this.yyastk[this.stackPos-2],Array.isArray(this.yyastk[this.stackPos-0])?this.yyastk[this.stackPos-0]:[this.yyastk[this.stackPos-0]],e)},r.Parser.prototype.yyn104=function(e){this.yyval=[]},r.Parser.prototype.yyn105=function(e){this.yyastk[this.stackPos-1].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn106=function(e){this.yyval=this.Node_Stmt_ElseIf(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn107=function(e){this.yyval=null},r.Parser.prototype.yyn108=function(e){this.yyval=this.Node_Stmt_Else(Array.isArray(this.yyastk[this.stackPos-0])?this.yyastk[this.stackPos-0]:[this.yyastk[this.stackPos-0]],e)},r.Parser.prototype.yyn109=function(e){this.yyval=null},r.Parser.prototype.yyn110=function(e){this.yyval=this.Node_Stmt_Else(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn111=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn112=function(e){this.yyval=[]},r.Parser.prototype.yyn113=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn114=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn115=function(e){this.yyval=this.Node_Param(this.yyastk[this.stackPos-0].substring(1),null,this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn116=function(e){this.yyval=this.Node_Param(this.yyastk[this.stackPos-2].substring(1),this.yyastk[this.stackPos-0],this.yyastk[this.stackPos-4],this.yyastk[this.stackPos-3],e)},r.Parser.prototype.yyn117=function(e){this.yyval=null},r.Parser.prototype.yyn118=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn119=function(e){this.yyval=\"array\"},r.Parser.prototype.yyn120=function(e){this.yyval=\"callable\"},r.Parser.prototype.yyn121=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn122=function(e){this.yyval=[]},r.Parser.prototype.yyn123=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn124=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn125=function(e){this.yyval=this.Node_Arg(this.yyastk[this.stackPos-0],!1,e)},r.Parser.prototype.yyn126=function(e){this.yyval=this.Node_Arg(this.yyastk[this.stackPos-0],!0,e)},r.Parser.prototype.yyn127=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn128=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn129=function(e){this.yyval=this.Node_Expr_Variable(this.yyastk[this.stackPos-0].substring(1),e)},r.Parser.prototype.yyn130=function(e){this.yyval=this.Node_Expr_Variable(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn131=function(e){this.yyval=this.Node_Expr_Variable(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn132=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn133=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn134=function(e){this.yyval=this.Node_Stmt_StaticVar(this.yyastk[this.stackPos-0].substring(1),null,e)},r.Parser.prototype.yyn135=function(e){this.yyval=this.Node_Stmt_StaticVar(this.yyastk[this.stackPos-2].substring(1),this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn136=function(e){this.yyastk[this.stackPos-1].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn137=function(e){this.yyval=[]},r.Parser.prototype.yyn138=function(e){this.yyval=this.Node_Stmt_Property(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn139=function(e){this.yyval=this.Node_Stmt_ClassConst(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn140=function(e){this.yyval=this.Node_Stmt_ClassMethod(this.yyastk[this.stackPos-4],{type:this.yyastk[this.stackPos-7],byRef:this.yyastk[this.stackPos-5],params:this.yyastk[this.stackPos-2],stmts:this.yyastk[this.stackPos-0]},e)},r.Parser.prototype.yyn141=function(e){this.yyval=this.Node_Stmt_TraitUse(this.yyastk[this.stackPos-1],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn142=function(e){this.yyval=[]},r.Parser.prototype.yyn143=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn144=function(e){this.yyval=[]},r.Parser.prototype.yyn145=function(e){this.yyastk[this.stackPos-1].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn146=function(e){this.yyval=this.Node_Stmt_TraitUseAdaptation_Precedence(this.yyastk[this.stackPos-3][0],this.yyastk[this.stackPos-3][1],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn147=function(e){this.yyval=this.Node_Stmt_TraitUseAdaptation_Alias(this.yyastk[this.stackPos-4][0],this.yyastk[this.stackPos-4][1],this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn148=function(e){this.yyval=this.Node_Stmt_TraitUseAdaptation_Alias(this.yyastk[this.stackPos-3][0],this.yyastk[this.stackPos-3][1],this.yyastk[this.stackPos-1],null,e)},r.Parser.prototype.yyn149=function(e){this.yyval=this.Node_Stmt_TraitUseAdaptation_Alias(this.yyastk[this.stackPos-3][0],this.yyastk[this.stackPos-3][1],null,this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn150=function(e){this.yyval=array(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0])},r.Parser.prototype.yyn151=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn152=function(e){this.yyval=array(null,this.yyastk[this.stackPos-0])},r.Parser.prototype.yyn153=function(e){this.yyval=null},r.Parser.prototype.yyn154=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn155=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn156=function(e){this.yyval=this.MODIFIER_PUBLIC},r.Parser.prototype.yyn157=function(e){this.yyval=this.MODIFIER_PUBLIC},r.Parser.prototype.yyn158=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn159=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn160=function(e){this.Stmt_Class_verifyModifier(this.yyastk[this.stackPos-1],this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-1]|this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn161=function(e){this.yyval=this.MODIFIER_PUBLIC},r.Parser.prototype.yyn162=function(e){this.yyval=this.MODIFIER_PROTECTED},r.Parser.prototype.yyn163=function(e){this.yyval=this.MODIFIER_PRIVATE},r.Parser.prototype.yyn164=function(e){this.yyval=this.MODIFIER_STATIC},r.Parser.prototype.yyn165=function(e){this.yyval=this.MODIFIER_ABSTRACT},r.Parser.prototype.yyn166=function(e){this.yyval=this.MODIFIER_FINAL},r.Parser.prototype.yyn167=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn168=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn169=function(e){this.yyval=this.Node_Stmt_PropertyProperty(this.yyastk[this.stackPos-0].substring(1),null,e)},r.Parser.prototype.yyn170=function(e){this.yyval=this.Node_Stmt_PropertyProperty(this.yyastk[this.stackPos-2].substring(1),this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn171=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn172=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn173=function(e){this.yyval=[]},r.Parser.prototype.yyn174=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn175=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn176=function(e){this.yyval=this.Node_Expr_AssignList(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn177=function(e){this.yyval=this.Node_Expr_Assign(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn178=function(e){this.yyval=this.Node_Expr_AssignRef(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn179=function(e){this.yyval=this.Node_Expr_AssignRef(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn180=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn181=function(e){this.yyval=this.Node_Expr_Clone(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn182=function(e){this.yyval=this.Node_Expr_AssignPlus(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn183=function(e){this.yyval=this.Node_Expr_AssignMinus(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn184=function(e){this.yyval=this.Node_Expr_AssignMul(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn185=function(e){this.yyval=this.Node_Expr_AssignDiv(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn186=function(e){this.yyval=this.Node_Expr_AssignConcat(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn187=function(e){this.yyval=this.Node_Expr_AssignMod(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn188=function(e){this.yyval=this.Node_Expr_AssignBitwiseAnd(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn189=function(e){this.yyval=this.Node_Expr_AssignBitwiseOr(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn190=function(e){this.yyval=this.Node_Expr_AssignBitwiseXor(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn191=function(e){this.yyval=this.Node_Expr_AssignShiftLeft(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn192=function(e){this.yyval=this.Node_Expr_AssignShiftRight(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn193=function(e){this.yyval=this.Node_Expr_PostInc(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn194=function(e){this.yyval=this.Node_Expr_PreInc(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn195=function(e){this.yyval=this.Node_Expr_PostDec(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn196=function(e){this.yyval=this.Node_Expr_PreDec(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn197=function(e){this.yyval=this.Node_Expr_BooleanOr(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn198=function(e){this.yyval=this.Node_Expr_BooleanAnd(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn199=function(e){this.yyval=this.Node_Expr_LogicalOr(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn200=function(e){this.yyval=this.Node_Expr_LogicalAnd(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn201=function(e){this.yyval=this.Node_Expr_LogicalXor(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn202=function(e){this.yyval=this.Node_Expr_BitwiseOr(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn203=function(e){this.yyval=this.Node_Expr_BitwiseAnd(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn204=function(e){this.yyval=this.Node_Expr_BitwiseXor(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn205=function(e){this.yyval=this.Node_Expr_Concat(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn206=function(e){this.yyval=this.Node_Expr_Plus(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn207=function(e){this.yyval=this.Node_Expr_Minus(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn208=function(e){this.yyval=this.Node_Expr_Mul(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn209=function(e){this.yyval=this.Node_Expr_Div(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn210=function(e){this.yyval=this.Node_Expr_Mod(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn211=function(e){this.yyval=this.Node_Expr_ShiftLeft(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn212=function(e){this.yyval=this.Node_Expr_ShiftRight(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn213=function(e){this.yyval=this.Node_Expr_UnaryPlus(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn214=function(e){this.yyval=this.Node_Expr_UnaryMinus(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn215=function(e){this.yyval=this.Node_Expr_BooleanNot(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn216=function(e){this.yyval=this.Node_Expr_BitwiseNot(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn217=function(e){this.yyval=this.Node_Expr_Identical(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn218=function(e){this.yyval=this.Node_Expr_NotIdentical(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn219=function(e){this.yyval=this.Node_Expr_Equal(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn220=function(e){this.yyval=this.Node_Expr_NotEqual(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn221=function(e){this.yyval=this.Node_Expr_Smaller(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn222=function(e){this.yyval=this.Node_Expr_SmallerOrEqual(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn223=function(e){this.yyval=this.Node_Expr_Greater(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn224=function(e){this.yyval=this.Node_Expr_GreaterOrEqual(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn225=function(e){this.yyval=this.Node_Expr_Instanceof(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn226=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn227=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn228=function(e){this.yyval=this.Node_Expr_Ternary(this.yyastk[this.stackPos-4],this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn229=function(e){this.yyval=this.Node_Expr_Ternary(this.yyastk[this.stackPos-3],null,this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn230=function(e){this.yyval=this.Node_Expr_Isset(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn231=function(e){this.yyval=this.Node_Expr_Empty(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn232=function(e){this.yyval=this.Node_Expr_Include(this.yyastk[this.stackPos-0],\"Node_Expr_Include\",e)},r.Parser.prototype.yyn233=function(e){this.yyval=this.Node_Expr_Include(this.yyastk[this.stackPos-0],\"Node_Expr_IncludeOnce\",e)},r.Parser.prototype.yyn234=function(e){this.yyval=this.Node_Expr_Eval(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn235=function(e){this.yyval=this.Node_Expr_Include(this.yyastk[this.stackPos-0],\"Node_Expr_Require\",e)},r.Parser.prototype.yyn236=function(e){this.yyval=this.Node_Expr_Include(this.yyastk[this.stackPos-0],\"Node_Expr_RequireOnce\",e)},r.Parser.prototype.yyn237=function(e){this.yyval=this.Node_Expr_Cast_Int(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn238=function(e){this.yyval=this.Node_Expr_Cast_Double(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn239=function(e){this.yyval=this.Node_Expr_Cast_String(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn240=function(e){this.yyval=this.Node_Expr_Cast_Array(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn241=function(e){this.yyval=this.Node_Expr_Cast_Object(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn242=function(e){this.yyval=this.Node_Expr_Cast_Bool(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn243=function(e){this.yyval=this.Node_Expr_Cast_Unset(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn244=function(e){this.yyval=this.Node_Expr_Exit(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn245=function(e){this.yyval=this.Node_Expr_ErrorSuppress(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn246=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn247=function(e){this.yyval=this.Node_Expr_Array(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn248=function(e){this.yyval=this.Node_Expr_Array(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn249=function(e){this.yyval=this.Node_Expr_ShellExec(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn250=function(e){this.yyval=this.Node_Expr_Print(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn251=function(e){this.yyval=this.Node_Expr_Closure({\"static\":!1,byRef:this.yyastk[this.stackPos-7],params:this.yyastk[this.stackPos-5],uses:this.yyastk[this.stackPos-3],stmts:this.yyastk[this.stackPos-1]},e)},r.Parser.prototype.yyn252=function(e){this.yyval=this.Node_Expr_Closure({\"static\":!0,byRef:this.yyastk[this.stackPos-7],params:this.yyastk[this.stackPos-5],uses:this.yyastk[this.stackPos-3],stmts:this.yyastk[this.stackPos-1]},e)},r.Parser.prototype.yyn253=function(e){this.yyval=this.Node_Expr_New(this.yyastk[this.stackPos-1],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn254=function(e){this.yyval=[]},r.Parser.prototype.yyn255=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn256=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn257=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn258=function(e){this.yyval=this.Node_Expr_ClosureUse(this.yyastk[this.stackPos-0].substring(1),this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn259=function(e){this.yyval=this.Node_Expr_FuncCall(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn260=function(e){this.yyval=this.Node_Expr_StaticCall(this.yyastk[this.stackPos-5],this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn261=function(e){this.yyval=this.Node_Expr_StaticCall(this.yyastk[this.stackPos-7],this.yyastk[this.stackPos-4],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn262=function(e){if(this.yyastk[this.stackPos-3].type===\"Node_Expr_StaticPropertyFetch\")this.yyval=this.Node_Expr_StaticCall(this.yyastk[this.stackPos-3].Class,this.Node_Expr_Variable(this.yyastk[this.stackPos-3].name,e),this.yyastk[this.stackPos-1],e);else{if(this.yyastk[this.stackPos-3].type!==\"Node_Expr_ArrayDimFetch\")throw new Exception;var t=this.yyastk[this.stackPos-3];while(t.variable.type===\"Node_Expr_ArrayDimFetch\")t=t.variable;this.yyval=this.Node_Expr_StaticCall(t.variable.Class,this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e),t.variable=this.Node_Expr_Variable(t.variable.name,e)}},r.Parser.prototype.yyn263=function(e){this.yyval=this.Node_Expr_FuncCall(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn264=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn265=function(e){this.yyval=this.Node_Name(\"static\",e)},r.Parser.prototype.yyn266=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn267=function(e){this.yyval=this.Node_Name(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn268=function(e){this.yyval=this.Node_Name_FullyQualified(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn269=function(e){this.yyval=this.Node_Name_Relative(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn270=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn271=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn272=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn273=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn274=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn275=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn276=function(){this.yyval=this.yyastk[this.stackPos]},r.Parser.prototype.yyn277=function(e){this.yyval=this.Node_Expr_PropertyFetch(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn278=function(e){this.yyval=this.Node_Expr_PropertyFetch(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn279=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn280=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn281=function(e){this.yyval=null},r.Parser.prototype.yyn282=function(e){this.yyval=null},r.Parser.prototype.yyn283=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn284=function(e){this.yyval=[]},r.Parser.prototype.yyn285=function(e){this.yyval=[this.Scalar_String_parseEscapeSequences(this.yyastk[this.stackPos-0],\"`\")]},r.Parser.prototype.yyn286=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn287=function(e){this.yyval=[]},r.Parser.prototype.yyn288=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn289=function(e){this.yyval=this.Node_Scalar_LNumber(this.Scalar_LNumber_parse(this.yyastk[this.stackPos-0]),e)},r.Parser.prototype.yyn290=function(e){this.yyval=this.Node_Scalar_DNumber(this.Scalar_DNumber_parse(this.yyastk[this.stackPos-0]),e)},r.Parser.prototype.yyn291=function(e){this.yyval=this.Scalar_String_create(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn292=function(e){this.yyval={type:\"Node_Scalar_LineConst\",attributes:e}},r.Parser.prototype.yyn293=function(e){this.yyval={type:\"Node_Scalar_FileConst\",attributes:e}},r.Parser.prototype.yyn294=function(e){this.yyval={type:\"Node_Scalar_DirConst\",attributes:e}},r.Parser.prototype.yyn295=function(e){this.yyval={type:\"Node_Scalar_ClassConst\",attributes:e}},r.Parser.prototype.yyn296=function(e){this.yyval={type:\"Node_Scalar_TraitConst\",attributes:e}},r.Parser.prototype.yyn297=function(e){this.yyval={type:\"Node_Scalar_MethodConst\",attributes:e}},r.Parser.prototype.yyn298=function(e){this.yyval={type:\"Node_Scalar_FuncConst\",attributes:e}},r.Parser.prototype.yyn299=function(e){this.yyval={type:\"Node_Scalar_NSConst\",attributes:e}},r.Parser.prototype.yyn300=function(e){this.yyval=this.Node_Scalar_String(this.Scalar_String_parseDocString(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-1]),e)},r.Parser.prototype.yyn301=function(e){this.yyval=this.Node_Scalar_String(\"\",e)},r.Parser.prototype.yyn302=function(e){this.yyval=this.Node_Expr_ConstFetch(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn303=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn304=function(e){this.yyval=this.Node_Expr_ClassConstFetch(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn305=function(e){this.yyval=this.Node_Expr_UnaryPlus(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn306=function(e){this.yyval=this.Node_Expr_UnaryMinus(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn307=function(e){this.yyval=this.Node_Expr_Array(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn308=function(e){this.yyval=this.Node_Expr_Array(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn309=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn310=function(e){this.yyval=this.Node_Expr_ClassConstFetch(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn311=function(e){this.yyval=this.Node_Scalar_Encapsed(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn312=function(e){this.yyval=this.Node_Scalar_Encapsed(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn313=function(e){this.yyval=[]},r.Parser.prototype.yyn314=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn315=function(){this.yyval=this.yyastk[this.stackPos]},r.Parser.prototype.yyn316=function(){this.yyval=this.yyastk[this.stackPos]},r.Parser.prototype.yyn317=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn318=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn319=function(e){this.yyval=this.Node_Expr_ArrayItem(this.yyastk[this.stackPos-0],this.yyastk[this.stackPos-2],!1,e)},r.Parser.prototype.yyn320=function(e){this.yyval=this.Node_Expr_ArrayItem(this.yyastk[this.stackPos-0],null,!1,e)},r.Parser.prototype.yyn321=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn322=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn323=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn324=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn325=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.yyastk[this.stackPos-4],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn326=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn327=function(e){this.yyval=this.Node_Expr_PropertyFetch(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn328=function(e){this.yyval=this.Node_Expr_MethodCall(this.yyastk[this.stackPos-5],this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn329=function(e){this.yyval=this.Node_Expr_FuncCall(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn330=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn331=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn332=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn333=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn334=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn335=function(e){this.yyval=this.Node_Expr_Variable(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn336=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn337=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn338=function(e){this.yyval=this.Node_Expr_StaticPropertyFetch(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn339=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn340=function(e){this.yyval=this.Node_Expr_StaticPropertyFetch(this.yyastk[this.stackPos-2],this.yyastk[this.stackPos-0].substring(1),e)},r.Parser.prototype.yyn341=function(e){this.yyval=this.Node_Expr_StaticPropertyFetch(this.yyastk[this.stackPos-5],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn342=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn343=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn344=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn345=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.yyastk[this.stackPos-3],this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn346=function(e){this.yyval=this.Node_Expr_Variable(this.yyastk[this.stackPos-0].substring(1),e)},r.Parser.prototype.yyn347=function(e){this.yyval=this.Node_Expr_Variable(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn348=function(e){this.yyval=null},r.Parser.prototype.yyn349=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn350=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn351=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn352=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn353=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn354=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn355=function(e){this.yyval=this.yyastk[this.stackPos-0]},r.Parser.prototype.yyn356=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn357=function(e){this.yyval=null},r.Parser.prototype.yyn358=function(e){this.yyval=[]},r.Parser.prototype.yyn359=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn360=function(e){this.yyastk[this.stackPos-2].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-2]},r.Parser.prototype.yyn361=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn362=function(e){this.yyval=this.Node_Expr_ArrayItem(this.yyastk[this.stackPos-0],this.yyastk[this.stackPos-2],!1,e)},r.Parser.prototype.yyn363=function(e){this.yyval=this.Node_Expr_ArrayItem(this.yyastk[this.stackPos-0],null,!1,e)},r.Parser.prototype.yyn364=function(e){this.yyval=this.Node_Expr_ArrayItem(this.yyastk[this.stackPos-0],this.yyastk[this.stackPos-3],!0,e)},r.Parser.prototype.yyn365=function(e){this.yyval=this.Node_Expr_ArrayItem(this.yyastk[this.stackPos-0],null,!0,e)},r.Parser.prototype.yyn366=function(e){this.yyastk[this.stackPos-1].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn367=function(e){this.yyastk[this.stackPos-1].push(this.yyastk[this.stackPos-0]),this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn368=function(e){this.yyval=[this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn369=function(e){this.yyval=[this.yyastk[this.stackPos-1],this.yyastk[this.stackPos-0]]},r.Parser.prototype.yyn370=function(e){this.yyval=this.Node_Expr_Variable(this.yyastk[this.stackPos-0].substring(1),e)},r.Parser.prototype.yyn371=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.Node_Expr_Variable(this.yyastk[this.stackPos-3].substring(1),e),this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn372=function(e){this.yyval=this.Node_Expr_PropertyFetch(this.Node_Expr_Variable(this.yyastk[this.stackPos-2].substring(1),e),this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn373=function(e){this.yyval=this.Node_Expr_Variable(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn374=function(e){this.yyval=this.Node_Expr_Variable(this.yyastk[this.stackPos-1],e)},r.Parser.prototype.yyn375=function(e){this.yyval=this.Node_Expr_ArrayDimFetch(this.Node_Expr_Variable(this.yyastk[this.stackPos-4],e),this.yyastk[this.stackPos-2],e)},r.Parser.prototype.yyn376=function(e){this.yyval=this.yyastk[this.stackPos-1]},r.Parser.prototype.yyn377=function(e){this.yyval=this.Node_Scalar_String(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn378=function(e){this.yyval=this.Node_Scalar_String(this.yyastk[this.stackPos-0],e)},r.Parser.prototype.yyn379=function(e){this.yyval=this.Node_Expr_Variable(this.yyastk[this.stackPos-0].substring(1),e)},r.Parser.prototype.Stmt_Namespace_postprocess=function(e){return e},r.Parser.prototype.Node_Stmt_Echo=function(){return{type:\"Node_Stmt_Echo\",exprs:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Stmt_If=function(){return{type:\"Node_Stmt_If\",cond:arguments[0],stmts:arguments[1].stmts,elseifs:arguments[1].elseifs,Else:arguments[1].Else||null,attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_For=function(){return{type:\"Node_Stmt_For\",init:arguments[0].init,cond:arguments[0].cond,loop:arguments[0].loop,stmts:arguments[0].stmts,attributes:arguments[1]}},r.Parser.prototype.Node_Stmt_Function=function(){return{type:\"Node_Stmt_Function\",name:arguments[0],byRef:arguments[1].byRef,params:arguments[1].params,stmts:arguments[1].stmts,attributes:arguments[2]}},r.Parser.prototype.Stmt_Class_verifyModifier=function(){},r.Parser.prototype.Node_Stmt_Namespace=function(){return{type:\"Node_Stmt_Namespace\",name:arguments[0],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_Use=function(){return{type:\"Node_Stmt_Use\",name:arguments[0],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_UseUse=function(){return{type:\"Node_Stmt_UseUse\",name:arguments[0],as:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_TraitUseAdaptation_Precedence=function(){return{type:\"Node_Stmt_TraitUseAdaptation_Precedence\",name:arguments[0],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_TraitUseAdaptation_Alias=function(){return{type:\"Node_Stmt_TraitUseAdaptation_Alias\",name:arguments[0],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_Trait=function(){return{type:\"Node_Stmt_Trait\",name:arguments[0],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_TraitUse=function(){return{type:\"Node_Stmt_TraitUse\",name:arguments[0],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_Class=function(){return{type:\"Node_Stmt_Class\",name:arguments[0],Type:arguments[1].type,Extends:arguments[1].Extends,Implements:arguments[1].Implements,stmts:arguments[1].stmts,attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_ClassMethod=function(){return{type:\"Node_Stmt_ClassMethod\",name:arguments[0],Type:arguments[1].type,byRef:arguments[1].byRef,params:arguments[1].params,stmts:arguments[1].stmts,attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_ClassConst=function(){return{type:\"Node_Stmt_ClassConst\",consts:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Stmt_Interface=function(){return{type:\"Node_Stmt_Interface\",name:arguments[0],Extends:arguments[1].Extends,stmts:arguments[1].stmts,attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_Throw=function(){return{type:\"Node_Stmt_Throw\",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Stmt_Catch=function(){return{type:\"Node_Stmt_Catch\",Type:arguments[0],variable:arguments[1],stmts:arguments[2],attributes:arguments[3]}},r.Parser.prototype.Node_Stmt_TryCatch=function(){return{type:\"Node_Stmt_TryCatch\",stmts:arguments[0],catches:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_Foreach=function(){return{type:\"Node_Stmt_Foreach\",expr:arguments[0],valueVar:arguments[1],keyVar:arguments[2].keyVar,byRef:arguments[2].byRef,stmts:arguments[2].stmts,attributes:arguments[3]}},r.Parser.prototype.Node_Stmt_While=function(){return{type:\"Node_Stmt_While\",cond:arguments[0],stmts:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_Do=function(){return{type:\"Node_Stmt_Do\",cond:arguments[0],stmts:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_Break=function(){return{type:\"Node_Stmt_Break\",num:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Stmt_Continue=function(){return{type:\"Node_Stmt_Continue\",num:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Stmt_Return=function(){return{type:\"Node_Stmt_Return\",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Stmt_Case=function(){return{type:\"Node_Stmt_Case\",cond:arguments[0],stmts:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_Switch=function(){return{type:\"Node_Stmt_Switch\",cond:arguments[0],cases:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_Else=function(){return{type:\"Node_Stmt_Else\",stmts:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Stmt_ElseIf=function(){return{type:\"Node_Stmt_ElseIf\",cond:arguments[0],stmts:arguments[1],attributes:arguments[1]}},r.Parser.prototype.Node_Stmt_InlineHTML=function(){return{type:\"Node_Stmt_InlineHTML\",value:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Stmt_StaticVar=function(){return{type:\"Node_Stmt_StaticVar\",name:arguments[0],def:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_Static=function(){return{type:\"Node_Stmt_Static\",vars:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Stmt_Global=function(){return{type:\"Node_Stmt_Global\",vars:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Stmt_PropertyProperty=function(){return{type:\"Node_Stmt_PropertyProperty\",name:arguments[0],def:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_Property=function(){return{type:\"Node_Stmt_Property\",Type:arguments[0],props:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Stmt_Unset=function(){return{type:\"Node_Stmt_Unset\",variables:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_Variable=function(e){return{type:\"Node_Expr_Variable\",name:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_FuncCall=function(){return{type:\"Node_Expr_FuncCall\",func:arguments[0],args:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_MethodCall=function(){return{type:\"Node_Expr_MethodCall\",variable:arguments[0],name:arguments[1],args:arguments[2],attributes:arguments[3]}},r.Parser.prototype.Node_Expr_StaticCall=function(){return{type:\"Node_Expr_StaticCall\",Class:arguments[0],func:arguments[1],args:arguments[2],attributes:arguments[3]}},r.Parser.prototype.Node_Expr_Ternary=function(){return{type:\"Node_Expr_Ternary\",cond:arguments[0],If:arguments[1],Else:arguments[2],attributes:arguments[3]}},r.Parser.prototype.Node_Expr_AssignList=function(){return{type:\"Node_Expr_AssignList\",assignList:arguments[0],expr:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Assign=function(){return{type:\"Node_Expr_Assign\",variable:arguments[0],expr:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_AssignConcat=function(){return{type:\"Node_Expr_AssignConcat\",variable:arguments[0],expr:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_AssignMinus=function(){return{type:\"Node_Expr_AssignMinus\",variable:arguments[0],expr:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_AssignPlus=function(){return{type:\"Node_Expr_AssignPlus\",variable:arguments[0],expr:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_AssignDiv=function(){return{type:\"Node_Expr_AssignDiv\",variable:arguments[0],expr:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_AssignRef=function(){return{type:\"Node_Expr_AssignRef\",variable:arguments[0],refVar:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_AssignMul=function(){return{type:\"Node_Expr_AssignMul\",variable:arguments[0],expr:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_AssignMod=function(){return{type:\"Node_Expr_AssignMod\",variable:arguments[0],expr:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Plus=function(){return{type:\"Node_Expr_Plus\",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Minus=function(){return{type:\"Node_Expr_Minus\",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Mul=function(){return{type:\"Node_Expr_Mul\",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Div=function(){return{type:\"Node_Expr_Div\",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Mod=function(){return{type:\"Node_Expr_Mod\",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Greater=function(){return{type:\"Node_Expr_Greater\",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Equal=function(){return{type:\"Node_Expr_Equal\",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_NotEqual=function(){return{type:\"Node_Expr_NotEqual\",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Identical=function(){return{type:\"Node_Expr_Identical\",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_NotIdentical=function(){return{type:\"Node_Expr_NotIdentical\",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_GreaterOrEqual=function(){return{type:\"Node_Expr_GreaterOrEqual\",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_SmallerOrEqual=function(){return{type:\"Node_Expr_SmallerOrEqual\",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Concat=function(){return{type:\"Node_Expr_Concat\",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Smaller=function(){return{type:\"Node_Expr_Smaller\",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_PostInc=function(){return{type:\"Node_Expr_PostInc\",variable:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_PostDec=function(){return{type:\"Node_Expr_PostDec\",variable:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_PreInc=function(){return{type:\"Node_Expr_PreInc\",variable:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_PreDec=function(){return{type:\"Node_Expr_PreDec\",variable:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_Include=function(){return{expr:arguments[0],type:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_ArrayDimFetch=function(){return{type:\"Node_Expr_ArrayDimFetch\",variable:arguments[0],dim:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_StaticPropertyFetch=function(){return{type:\"Node_Expr_StaticPropertyFetch\",Class:arguments[0],name:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_ClassConstFetch=function(){return{type:\"Node_Expr_ClassConstFetch\",Class:arguments[0],name:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_StaticPropertyFetch=function(){return{type:\"Node_Expr_StaticPropertyFetch\",Class:arguments[0],name:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_ConstFetch=function(){return{type:\"Node_Expr_ConstFetch\",name:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_ArrayItem=function(){return{type:\"Node_Expr_ArrayItem\",value:arguments[0],key:arguments[1],byRef:arguments[2],attributes:arguments[3]}},r.Parser.prototype.Node_Expr_Array=function(){return{type:\"Node_Expr_Array\",items:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_PropertyFetch=function(){return{type:\"Node_Expr_PropertyFetch\",variable:arguments[0],name:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_New=function(){return{type:\"Node_Expr_New\",Class:arguments[0],args:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Print=function(){return{type:\"Node_Expr_Print\",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_Exit=function(){return{type:\"Node_Expr_Exit\",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_Cast_Bool=function(){return{type:\"Node_Expr_Cast_Bool\",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_Cast_Int=function(){return{type:\"Node_Expr_Cast_Int\",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_Cast_String=function(){return{type:\"Node_Expr_Cast_String\",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_Cast_Double=function(){return{type:\"Node_Expr_Cast_Double\",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_Cast_Array=function(){return{type:\"Node_Expr_Cast_Array\",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_Cast_Object=function(){return{type:\"Node_Expr_Cast_Object\",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_ErrorSuppress=function(){return{type:\"Node_Expr_ErrorSuppress\",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_Isset=function(){return{type:\"Node_Expr_Isset\",variables:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_UnaryMinus=function(){return{type:\"Node_Expr_UnaryMinus\",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_UnaryPlus=function(){return{type:\"Node_Expr_UnaryPlus\",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_Empty=function(){return{type:\"Node_Expr_Empty\",variable:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_BooleanOr=function(){return{type:\"Node_Expr_BooleanOr\",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_LogicalOr=function(){return{type:\"Node_Expr_LogicalOr\",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_LogicalAnd=function(){return{type:\"Node_Expr_LogicalAnd\",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_LogicalXor=function(){return{type:\"Node_Expr_LogicalXor\",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_BitwiseAnd=function(){return{type:\"Node_Expr_BitwiseAnd\",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_BitwiseOr=function(){return{type:\"Node_Expr_BitwiseOr\",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_BitwiseXor=function(){return{type:\"Node_Expr_BitwiseXor\",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_BitwiseNot=function(){return{type:\"Node_Expr_BitwiseNot\",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_BooleanNot=function(){return{type:\"Node_Expr_BooleanNot\",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Expr_BooleanAnd=function(){return{type:\"Node_Expr_BooleanAnd\",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Instanceof=function(){return{type:\"Node_Expr_Instanceof\",left:arguments[0],right:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Expr_Clone=function(){return{type:\"Node_Expr_Clone\",expr:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Scalar_LNumber_parse=function(e){return e},r.Parser.prototype.Scalar_DNumber_parse=function(e){return e},r.Parser.prototype.Scalar_String_parseDocString=function(){return'\"'+arguments[1].replace(/([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\"/g,'$1\\\\\"')+'\"'},r.Parser.prototype.Node_Scalar_String=function(){return{type:\"Node_Scalar_String\",value:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Scalar_String_create=function(){return{type:\"Node_Scalar_String\",value:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Scalar_LNumber=function(){return{type:\"Node_Scalar_LNumber\",value:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Scalar_DNumber=function(){return{type:\"Node_Scalar_DNumber\",value:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Scalar_Encapsed=function(){return{type:\"Node_Scalar_Encapsed\",parts:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Name=function(){return{type:\"Node_Name\",parts:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Name_FullyQualified=function(){return{type:\"Node_Name_FullyQualified\",parts:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Name_Relative=function(){return{type:\"Node_Name_Relative\",parts:arguments[0],attributes:arguments[1]}},r.Parser.prototype.Node_Param=function(){return{type:\"Node_Param\",name:arguments[0],def:arguments[1],Type:arguments[2],byRef:arguments[3],attributes:arguments[4]}},r.Parser.prototype.Node_Arg=function(){return{type:\"Node_Name\",value:arguments[0],byRef:arguments[1],attributes:arguments[2]}},r.Parser.prototype.Node_Const=function(){return{type:\"Node_Const\",name:arguments[0],value:arguments[1],attributes:arguments[2]}},t.PHP=r}),ace.define(\"ace/mode/php_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/php/php\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../worker/mirror\").Mirror,s=e(\"./php/php\").PHP,o=t.PhpWorker=function(e){i.call(this,e),this.setTimeout(500)};r.inherits(o,i),function(){this.setOptions=function(e){this.inlinePhp=e&&e.inline},this.onUpdate=function(){var e=this.doc.getValue(),t=[];this.inlinePhp&&(e=\"<?\"+e+\"?>\");var n=s.Lexer(e,{short_open_tag:1});try{new s.Parser(n)}catch(r){t.push({row:r.line-1,column:null,text:r.message.charAt(0).toUpperCase()+r.message.substring(1),type:\"error\"})}this.sender.emit(\"annotate\",t)}}.call(o.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,\"sentinel\",{}),\"sentinel\"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t===\"undefined\"||t===\"boolean\"||t===\"number\"||t===\"string\"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n==\"function\"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r==\"function\"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!=\"function\")throw new TypeError(\"Function.prototype.bind called on incompatible \"+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,\"__defineGetter__\"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,\"XXX\"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)==\"[object Array]\"});var m=Object(\"a\"),g=m[0]!=\"a\"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduce of empty array with no initial value\");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError(\"reduce of empty array with no initial value\")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduceRight of empty array with no initial value\");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError(\"reduceRight of empty array with no initial value\")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!=\"object\")throw new TypeError(\"typeof prototype[\"+typeof t+\"] != 'object'\");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document==\"undefined\"||w(document.createElement(\"div\"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T=\"Property description must be an object: \",N=\"Object.defineProperty called on non-object: \",C=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(t,n,r){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(N+t);if(typeof r!=\"object\"&&typeof r!=\"function\"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,\"value\"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,\"get\")&&l(t,n,r.get),f(r,\"set\")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n==\"function\"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n=\"\";while(f(t,n))n+=\"?\";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!=\"object\"&&typeof e!=\"function\"||e===null)throw new TypeError(\"Object.keys called on a non-object\");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=\"\t\\n\u000b\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\";if(!String.prototype.trim||_.trim()){_=\"[\"+_+\"]\";var D=new RegExp(\"^\"+_+_+\"*\"),P=new RegExp(_+_+\"*$\");String.prototype.trim=function(){return String(this).replace(D,\"\").replace(P,\"\")}}var F=function(e){if(e==null)throw new TypeError(\"can't convert \"+e+\" to object\");return Object(e)}})"
  },
  {
    "path": "lib/src-min-noconflict-old/worker-xml.js",
    "content": "\"no use strict\";(function(e){function t(e,t){var n=e,r=\"\";while(n){var i=t[n];if(typeof i==\"string\")return i+r;if(i)return i.location.replace(/\\/*$/,\"/\")+(r||i.main||i.name);if(i===!1)return\"\";var s=n.lastIndexOf(\"/\");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!=\"undefined\"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:\"error\",data:{message:e,data:i.data,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf(\"!\")!==-1){var r=n.split(\"!\");return e.normalizeModule(t,r[0])+\"!\"+e.normalizeModule(t,r[1])}if(n.charAt(0)==\".\"){var i=t.split(\"/\").slice(0,-1).join(\"/\");n=(i?i+\"/\":\"\")+n;while(n.indexOf(\".\")!==-1&&s!=n){var s=n;n=n.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log(\"unable to load \"+i);var o=t(i,e.require.tlns);return o.slice(-3)!=\".js\"&&(o+=\".js\"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!=\"string\"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!=\"function\"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=[\"require\",\"exports\",\"module\"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case\"require\":return i;case\"exports\":return e.exports;case\"module\":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},require.tlns={},e.initBaseUrls=function(t){for(var n in t)require.tlns[n]=t[n]},e.initSender=function(){var n=e.require(\"ace/lib/event_emitter\").EventEmitter,r=e.require(\"ace/lib/oop\"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:\"call\",id:t,data:e})},this.emit=function(e,t){postMessage({type:\"event\",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error(\"Unknown command:\"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),require(\"ace/lib/es5-shim\"),r=e.sender=e.initSender();var s=require(i.module)[i.classname];n=e.main=new s(r)}}})(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split(\"\").reverse().join(\"\")},t.stringRepeat=function(e,t){var n=\"\";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\\s\\s*/,i=/\\s\\s*$/;t.stringTrimLeft=function(e){return e.replace(r,\"\")},t.stringTrimRight=function(e){return e.replace(i,\"\")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]==\"object\"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!=\"object\"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}var r=e.constructor;if(r===RegExp)return e;t=r();for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},t.escapeHTML=function(e){return e.replace(/&/g,\"&#38;\").replace(/\"/g,\"&#34;\").replace(/'/g,\"&#39;\").replace(/</g,\"&#60;\")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e==\"object\"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e==\"object\"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e,t){throw console.log(\"Invalid Delta:\",e),\"Invalid Delta: \"+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!=\"insert\"&&t.action!=\"remove\"&&r(t,\"delta.action must be 'insert' or 'remove'\"),t.lines instanceof Array||r(t,\"delta.lines must be an Array\"),(!t.start||!t.end)&&r(t,\"delta.start/end must be an present\");var n=t.start;i(e,t.start)||r(t,\"delta.start must be contained in document\");var s=t.end;t.action==\"remove\"&&!i(e,s)&&r(t,\"delta.end must contained in document for 'remove' actions\");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,\"delta.range must match delta lines\")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||\"\";switch(t.action){case\"insert\":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case\"remove\":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!=\"object\"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?\"unshift\":\"push\"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n==\"undefined\"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action==\"insert\",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal(\"change\",{old:i,value:r})},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./apply_delta\").applyDelta,s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=function(e){this.$lines=[\"\"],e.length===0?this.$lines=[\"\"]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},\"aaa\".split(/a/).length===0?this.$split=function(e){return e.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:this.$split=function(e){return e.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=t?t[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal(\"changeNewLineMode\")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==\"\\r\\n\"||e==\"\\r\"||e==\"\\n\"},this.getLine=function(e){return this.$lines[e]||\"\"},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||\"\").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(e,[\"\",\"\"])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:\"insert\",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([\"\"]),n=0):(t=[\"\"].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:\"insert\",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:\"remove\",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:\"remove\",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:\"remove\",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action==\"insert\";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal(\"change\",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(\"\"),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action==\"insert\"?\"remove\":\"insert\",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),ace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=e(\"../document\").Document,s=e(\"../lib/lang\"),o=t.Mirror=function(e){this.sender=e;var t=this.doc=new i(\"\"),n=this.deferredUpdate=s.delayedCall(this.onUpdate.bind(this)),r=this;e.on(\"change\",function(e){var i=e.data;if(i[0].start)t.applyDeltas(i);else for(var s=0;s<i.length;s+=2){if(Array.isArray(i[s+1]))var o={action:\"insert\",start:i[s],lines:i[s+1]};else var o={action:\"remove\",start:i[s],end:i[s+1]};t.applyDelta(o,!0)}if(r.$timeout)return n.schedule(r.$timeout);r.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),ace.define(\"ace/mode/xml/sax\",[\"require\",\"exports\",\"module\"],function(e,t,n){function d(){}function v(e,t,n,r,i){function s(e){if(e>65535){e-=65536;var t=55296+(e>>10),n=56320+(e&1023);return String.fromCharCode(t,n)}return String.fromCharCode(e)}function o(e){var t=e.slice(1,-1);return t in n?n[t]:t.charAt(0)===\"#\"?s(parseInt(t.substr(1).replace(\"x\",\"0x\"))):(i.error(\"entity not found:\"+e),e)}function u(t){var n=e.substring(v,t).replace(/&#?\\w+;/g,o);h&&a(v),r.characters(n,0,t-v),v=t}function a(t,n){while(t>=l&&(n=c.exec(e)))f=n.index,l=f+n[0].length,h.lineNumber++;h.columnNumber=t-f+1}var f=0,l=0,c=/.+(?:\\r\\n?|\\n)|.*$/g,h=r.locator,p=[{currentNSMap:t}],d={},v=0;for(;;){var E=e.indexOf(\"<\",v);if(E<0){if(!e.substr(v).match(/^\\s*$/)){var N=r.document,C=N.createTextNode(e.substr(v));N.appendChild(C),r.currentElement=C}return}E>v&&u(E);switch(e.charAt(E+1)){case\"/\":var k=e.indexOf(\">\",E+3),L=e.substring(E+2,k),A;if(!(p.length>1)){i.fatalError(\"end tag name not found for: \"+L);break}A=p.pop();var O=A.localNSMap;A.tagName!=L&&i.fatalError(\"end tag name: \"+L+\" does not match the current start tagName: \"+A.tagName),r.endElement(A.uri,A.localName,L);if(O)for(var M in O)r.endPrefixMapping(M);k++;break;case\"?\":h&&a(E),k=x(e,E,r);break;case\"!\":h&&a(E),k=S(e,E,r,i);break;default:try{h&&a(E);var _=new T,k=g(e,E,_,o,i),D=_.length;if(D&&h){var P=m(h,{});for(var E=0;E<D;E++){var H=_[E];a(H.offset),H.offset=m(h,{})}m(P,h)}!_.closed&&w(e,k,_.tagName,d)&&(_.closed=!0,n.nbsp||i.warning(\"unclosed xml attribute\")),y(_,r,p),_.uri===\"http://www.w3.org/1999/xhtml\"&&!_.closed?k=b(e,k,_.tagName,o,r):k++}catch(B){i.error(\"element parse error: \"+B),k=-1}}k<0?u(E+1):v=k}}function m(e,t){return t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber,t}function g(e,t,n,r,i){var s,d,v=++t,m=o;for(;;){var g=e.charAt(v);switch(g){case\"=\":if(m===u)s=e.slice(t,v),m=f;else{if(m!==a)throw new Error(\"attribute equal must after attrName\");m=f}break;case\"'\":case'\"':if(m===f){t=v+1,v=e.indexOf(g,t);if(!(v>0))throw new Error(\"attribute value no end '\"+g+\"' match\");d=e.slice(t,v).replace(/&#?\\w+;/g,r),n.add(s,d,t-1),m=c}else{if(m!=l)throw new Error('attribute value must after \"=\"');d=e.slice(t,v).replace(/&#?\\w+;/g,r),n.add(s,d,t),i.warning('attribute \"'+s+'\" missed start quot('+g+\")!!\"),t=v+1,m=c}break;case\"/\":switch(m){case o:n.setTagName(e.slice(t,v));case c:case h:case p:m=p,n.closed=!0;case l:case u:case a:break;default:throw new Error(\"attribute invalid close char('/')\")}break;case\"\":i.error(\"unexpected end of input\");case\">\":switch(m){case o:n.setTagName(e.slice(t,v));case c:case h:case p:break;case l:case u:d=e.slice(t,v),d.slice(-1)===\"/\"&&(n.closed=!0,d=d.slice(0,-1));case a:m===a&&(d=s),m==l?(i.warning('attribute \"'+d+'\" missed quot(\")!!'),n.add(s,d.replace(/&#?\\w+;/g,r),t)):(i.warning('attribute \"'+d+'\" missed value!! \"'+d+'\" instead!!'),n.add(d,d,t));break;case f:throw new Error(\"attribute value missed!!\")}return v;case\"\\u0080\":g=\" \";default:if(g<=\" \")switch(m){case o:n.setTagName(e.slice(t,v)),m=h;break;case u:s=e.slice(t,v),m=a;break;case l:var d=e.slice(t,v).replace(/&#?\\w+;/g,r);i.warning('attribute \"'+d+'\" missed quot(\")!!'),n.add(s,d,t);case c:m=h}else switch(m){case a:i.warning('attribute \"'+s+'\" missed value!! \"'+s+'\" instead!!'),n.add(s,s,t),t=v,m=u;break;case c:i.warning('attribute space is required\"'+s+'\"!!');case h:m=u,t=v;break;case f:m=l,t=v;break;case p:throw new Error(\"elements closed character '/' and '>' must be connected to\")}}v++}}function y(e,t,n){var r=e.tagName,i=null,s=n[n.length-1].currentNSMap,o=e.length;while(o--){var u=e[o],a=u.qName,f=u.value,l=a.indexOf(\":\");if(l>0)var c=u.prefix=a.slice(0,l),h=a.slice(l+1),p=c===\"xmlns\"&&h;else h=a,c=null,p=a===\"xmlns\"&&\"\";u.localName=h,p!==!1&&(i==null&&(i={},E(s,s={})),s[p]=i[p]=f,u.uri=\"http://www.w3.org/2000/xmlns/\",t.startPrefixMapping(p,f))}var o=e.length;while(o--){u=e[o];var c=u.prefix;c&&(c===\"xml\"&&(u.uri=\"http://www.w3.org/XML/1998/namespace\"),c!==\"xmlns\"&&(u.uri=s[c]))}var l=r.indexOf(\":\");l>0?(c=e.prefix=r.slice(0,l),h=e.localName=r.slice(l+1)):(c=null,h=e.localName=r);var d=e.uri=s[c||\"\"];t.startElement(d,h,r,e);if(e.closed){t.endElement(d,h,r);if(i)for(c in i)t.endPrefixMapping(c)}else e.currentNSMap=s,e.localNSMap=i,n.push(e)}function b(e,t,n,r,i){if(/^(?:script|textarea)$/i.test(n)){var s=e.indexOf(\"</\"+n+\">\",t),o=e.substring(t+1,s);if(/[&<]/.test(o))return/^script$/i.test(n)?(i.characters(o,0,o.length),s):(o=o.replace(/&#?\\w+;/g,r),i.characters(o,0,o.length),s)}return t+1}function w(e,t,n,r){var i=r[n];return i==null&&(i=r[n]=e.lastIndexOf(\"</\"+n+\">\")),i<t}function E(e,t){for(var n in e)t[n]=e[n]}function S(e,t,n,r){var i=e.charAt(t+2);switch(i){case\"-\":if(e.charAt(t+3)===\"-\"){var s=e.indexOf(\"-->\",t+4);return s>t?(n.comment(e,t+4,s-t-4),s+3):(r.error(\"Unclosed comment\"),-1)}return-1;default:if(e.substr(t+3,6)==\"CDATA[\"){var s=e.indexOf(\"]]>\",t+9);return n.startCDATA(),n.characters(e,t+9,s-t-9),n.endCDATA(),s+3}var o=C(e,t),u=o.length;if(u>1&&/!doctype/i.test(o[0][0])){var a=o[1][0],f=u>3&&/^public$/i.test(o[2][0])&&o[3][0],l=u>4&&o[4][0],c=o[u-1];return n.startDTD(a,f&&f.replace(/^(['\"])(.*?)\\1$/,\"$2\"),l&&l.replace(/^(['\"])(.*?)\\1$/,\"$2\")),n.endDTD(),c.index+c[0].length}}return-1}function x(e,t,n){var r=e.indexOf(\"?>\",t);if(r){var i=e.substring(t,r).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)\\s*$/);if(i){var s=i[0].length;return n.processingInstruction(i[1],i[2]),r+2}return-1}return-1}function T(e){}function N(e,t){return e.__proto__=t,e}function C(e,t){var n,r=[],i=/'[^']+'|\"[^\"]+\"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;i.lastIndex=t,i.exec(e);while(n=i.exec(e)){r.push(n);if(n[1])return r}}var r=/[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/,i=new RegExp(\"[\\\\-\\\\.0-9\"+r.source.slice(1,-1)+\"\\u00b7\\u0300-\\u036f\\\\ux203F-\\u2040]\"),s=new RegExp(\"^\"+r.source+i.source+\"*(?::\"+r.source+i.source+\"*)?$\"),o=0,u=1,a=2,f=3,l=4,c=5,h=6,p=7;return d.prototype={parse:function(e,t,n){var r=this.domBuilder;r.startDocument(),E(t,t={}),v(e,t,n,r,this.errorHandler),r.endDocument()}},T.prototype={setTagName:function(e){if(!s.test(e))throw new Error(\"invalid tagName:\"+e);this.tagName=e},add:function(e,t,n){if(!s.test(e))throw new Error(\"invalid attribute:\"+e);this[this.length++]={qName:e,value:t,offset:n}},length:0,getLocalName:function(e){return this[e].localName},getOffset:function(e){return this[e].offset},getQName:function(e){return this[e].qName},getURI:function(e){return this[e].uri},getValue:function(e){return this[e].value}},N({},N.prototype)instanceof N||(N=function(e,t){function n(){}n.prototype=t,n=new n;for(t in e)n[t]=e[t];return n}),d}),ace.define(\"ace/mode/xml/dom\",[\"require\",\"exports\",\"module\"],function(e,t,n){function r(e,t){for(var n in e)t[n]=e[n]}function i(e,t){var n=e.prototype;if(Object.create){var i=Object.create(t.prototype);n.__proto__=i}if(!(n instanceof t)){function s(){}s.prototype=t.prototype,s=new s,r(n,s),e.prototype=n=s}n.constructor!=e&&(typeof e!=\"function\"&&console.error(\"unknow Class:\"+e),n.constructor=e)}function B(e,t){if(t instanceof Error)var n=t;else n=this,Error.call(this,w[e]),this.message=w[e],Error.captureStackTrace&&Error.captureStackTrace(this,B);return n.code=e,t&&(this.message=this.message+\": \"+t),n}function j(){}function F(e,t){this._node=e,this._refresh=t,I(this)}function I(e){var t=e._node._inc||e._node.ownerDocument._inc;if(e._inc!=t){var n=e._refresh(e._node);gt(e,\"length\",n.length),r(n,e),e._inc=t}}function q(){}function R(e,t){var n=e.length;while(n--)if(e[n]===t)return n}function U(e,t,n,r){r?t[R(t,r)]=n:t[t.length++]=n;if(e){n.ownerElement=e;var i=e.ownerDocument;i&&(r&&Q(i,e,r),K(i,e,n))}}function z(e,t,n){var r=R(t,n);if(!(r>=0))throw B(L,new Error);var i=t.length-1;while(r<i)t[r]=t[++r];t.length=i;if(e){var s=e.ownerDocument;s&&(Q(s,e,n),n.ownerElement=null)}}function W(e){this._features={};if(e)for(var t in e)this._features=e[t]}function X(){}function V(e){return e==\"<\"&&\"&lt;\"||e==\">\"&&\"&gt;\"||e==\"&\"&&\"&amp;\"||e=='\"'&&\"&quot;\"||\"&#\"+e.charCodeAt()+\";\"}function $(e,t){if(t(e))return!0;if(e=e.firstChild)do if($(e,t))return!0;while(e=e.nextSibling)}function J(){}function K(e,t,n){e&&e._inc++;var r=n.namespaceURI;r==\"http://www.w3.org/2000/xmlns/\"&&(t._nsMap[n.prefix?n.localName:\"\"]=n.value)}function Q(e,t,n,r){e&&e._inc++;var i=n.namespaceURI;i==\"http://www.w3.org/2000/xmlns/\"&&delete t._nsMap[n.prefix?n.localName:\"\"]}function G(e,t,n){if(e&&e._inc){e._inc++;var r=t.childNodes;if(n)r[r.length++]=n;else{var i=t.firstChild,s=0;while(i)r[s++]=i,i=i.nextSibling;r.length=s}}}function Y(e,t){var n=t.previousSibling,r=t.nextSibling;return n?n.nextSibling=r:e.firstChild=r,r?r.previousSibling=n:e.lastChild=n,G(e.ownerDocument,e),t}function Z(e,t,n){var r=t.parentNode;r&&r.removeChild(t);if(t.nodeType===g){var i=t.firstChild;if(i==null)return t;var s=t.lastChild}else i=s=t;var o=n?n.previousSibling:e.lastChild;i.previousSibling=o,s.nextSibling=n,o?o.nextSibling=i:e.firstChild=i,n==null?e.lastChild=s:n.previousSibling=s;do i.parentNode=e;while(i!==s&&(i=i.nextSibling));return G(e.ownerDocument||e,e),t.nodeType==g&&(t.firstChild=t.lastChild=null),t}function et(e,t){var n=t.parentNode;if(n){var r=e.lastChild;n.removeChild(t);var r=e.lastChild}var r=e.lastChild;return t.parentNode=e,t.previousSibling=r,t.nextSibling=null,r?r.nextSibling=t:e.firstChild=t,e.lastChild=t,G(e.ownerDocument,e,t),t}function tt(){this._nsMap={}}function nt(){}function rt(){}function it(){}function st(){}function ot(){}function ut(){}function at(){}function ft(){}function lt(){}function ct(){}function ht(){}function pt(){}function dt(e,t){switch(e.nodeType){case u:var n=e.attributes,r=n.length,i=e.firstChild,o=e.tagName,h=s===e.namespaceURI;t.push(\"<\",o);for(var y=0;y<r;y++)dt(n.item(y),t,h);if(i||h&&!/^(?:meta|link|img|br|hr|input|button)$/i.test(o)){t.push(\">\");if(h&&/^script$/i.test(o))i&&t.push(i.data);else while(i)dt(i,t),i=i.nextSibling;t.push(\"</\",o,\">\")}else t.push(\"/>\");return;case v:case g:var i=e.firstChild;while(i)dt(i,t),i=i.nextSibling;return;case a:return t.push(\" \",e.name,'=\"',e.value.replace(/[<&\"]/g,V),'\"');case f:return t.push(e.data.replace(/[<&]/g,V));case l:return t.push(\"<![CDATA[\",e.data,\"]]>\");case d:return t.push(\"<!--\",e.data,\"-->\");case m:var b=e.publicId,w=e.systemId;t.push(\"<!DOCTYPE \",e.name);if(b)t.push(' PUBLIC \"',b),w&&w!=\".\"&&t.push('\" \"',w),t.push('\">');else if(w&&w!=\".\")t.push(' SYSTEM \"',w,'\">');else{var E=e.internalSubset;E&&t.push(\" [\",E,\"]\"),t.push(\">\")}return;case p:return t.push(\"<?\",e.target,\" \",e.data,\"?>\");case c:return t.push(\"&\",e.nodeName,\";\");default:t.push(\"??\",e.nodeName)}}function vt(e,t,n){var r;switch(t.nodeType){case u:r=t.cloneNode(!1),r.ownerDocument=e;case g:break;case a:n=!0}r||(r=t.cloneNode(!1)),r.ownerDocument=e,r.parentNode=null;if(n){var i=t.firstChild;while(i)r.appendChild(vt(e,i,n)),i=i.nextSibling}return r}function mt(e,t,n){var r=new t.constructor;for(var i in t){var s=t[i];typeof s!=\"object\"&&s!=r[i]&&(r[i]=s)}t.childNodes&&(r.childNodes=new j),r.ownerDocument=e;switch(r.nodeType){case u:var o=t.attributes,f=r.attributes=new q,l=o.length;f._ownerElement=r;for(var c=0;c<l;c++)r.setAttributeNode(mt(e,o.item(c),!0));break;case a:n=!0}if(n){var h=t.firstChild;while(h)r.appendChild(mt(e,h,n)),h=h.nextSibling}return r}function gt(e,t,n){e[t]=n}var s=\"http://www.w3.org/1999/xhtml\",o={},u=o.ELEMENT_NODE=1,a=o.ATTRIBUTE_NODE=2,f=o.TEXT_NODE=3,l=o.CDATA_SECTION_NODE=4,c=o.ENTITY_REFERENCE_NODE=5,h=o.ENTITY_NODE=6,p=o.PROCESSING_INSTRUCTION_NODE=7,d=o.COMMENT_NODE=8,v=o.DOCUMENT_NODE=9,m=o.DOCUMENT_TYPE_NODE=10,g=o.DOCUMENT_FRAGMENT_NODE=11,y=o.NOTATION_NODE=12,b={},w={},E=b.INDEX_SIZE_ERR=(w[1]=\"Index size error\",1),S=b.DOMSTRING_SIZE_ERR=(w[2]=\"DOMString size error\",2),x=b.HIERARCHY_REQUEST_ERR=(w[3]=\"Hierarchy request error\",3),T=b.WRONG_DOCUMENT_ERR=(w[4]=\"Wrong document\",4),N=b.INVALID_CHARACTER_ERR=(w[5]=\"Invalid character\",5),C=b.NO_DATA_ALLOWED_ERR=(w[6]=\"No data allowed\",6),k=b.NO_MODIFICATION_ALLOWED_ERR=(w[7]=\"No modification allowed\",7),L=b.NOT_FOUND_ERR=(w[8]=\"Not found\",8),A=b.NOT_SUPPORTED_ERR=(w[9]=\"Not supported\",9),O=b.INUSE_ATTRIBUTE_ERR=(w[10]=\"Attribute in use\",10),M=b.INVALID_STATE_ERR=(w[11]=\"Invalid state\",11),_=b.SYNTAX_ERR=(w[12]=\"Syntax error\",12),D=b.INVALID_MODIFICATION_ERR=(w[13]=\"Invalid modification\",13),P=b.NAMESPACE_ERR=(w[14]=\"Invalid namespace\",14),H=b.INVALID_ACCESS_ERR=(w[15]=\"Invalid access\",15);B.prototype=Error.prototype,r(b,B),j.prototype={length:0,item:function(e){return this[e]||null}},F.prototype.item=function(e){return I(this),this[e]},i(F,j),q.prototype={length:0,item:j.prototype.item,getNamedItem:function(e){var t=this.length;while(t--){var n=this[t];if(n.nodeName==e)return n}},setNamedItem:function(e){var t=e.ownerElement;if(t&&t!=this._ownerElement)throw new B(O);var n=this.getNamedItem(e.nodeName);return U(this._ownerElement,this,e,n),n},setNamedItemNS:function(e){var t=e.ownerElement,n;if(t&&t!=this._ownerElement)throw new B(O);return n=this.getNamedItemNS(e.namespaceURI,e.localName),U(this._ownerElement,this,e,n),n},removeNamedItem:function(e){var t=this.getNamedItem(e);return z(this._ownerElement,this,t),t},removeNamedItemNS:function(e,t){var n=this.getNamedItemNS(e,t);return z(this._ownerElement,this,n),n},getNamedItemNS:function(e,t){var n=this.length;while(n--){var r=this[n];if(r.localName==t&&r.namespaceURI==e)return r}return null}},W.prototype={hasFeature:function(e,t){var n=this._features[e.toLowerCase()];return n&&(!t||t in n)?!0:!1},createDocument:function(e,t,n){var r=new J;r.implementation=this,r.childNodes=new j,r.doctype=n,n&&r.appendChild(n);if(t){var i=r.createElementNS(e,t);r.appendChild(i)}return r},createDocumentType:function(e,t,n){var r=new ut;return r.name=e,r.nodeName=e,r.publicId=t,r.systemId=n,r}},X.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,attributes:null,parentNode:null,childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,insertBefore:function(e,t){return Z(this,e,t)},replaceChild:function(e,t){this.insertBefore(e,t),t&&this.removeChild(t)},removeChild:function(e){return Y(this,e)},appendChild:function(e){return this.insertBefore(e,null)},hasChildNodes:function(){return this.firstChild!=null},cloneNode:function(e){return mt(this.ownerDocument||this,this,e)},normalize:function(){var e=this.firstChild;while(e){var t=e.nextSibling;t&&t.nodeType==f&&e.nodeType==f?(this.removeChild(t),e.appendData(t.data)):(e.normalize(),e=t)}},isSupported:function(e,t){return this.ownerDocument.implementation.hasFeature(e,t)},hasAttributes:function(){return this.attributes.length>0},lookupPrefix:function(e){var t=this;while(t){var n=t._nsMap;if(n)for(var r in n)if(n[r]==e)return r;t=t.nodeType==2?t.ownerDocument:t.parentNode}return null},lookupNamespaceURI:function(e){var t=this;while(t){var n=t._nsMap;if(n&&e in n)return n[e];t=t.nodeType==2?t.ownerDocument:t.parentNode}return null},isDefaultNamespace:function(e){var t=this.lookupPrefix(e);return t==null}},r(o,X),r(o,X.prototype),J.prototype={nodeName:\"#document\",nodeType:v,doctype:null,documentElement:null,_inc:1,insertBefore:function(e,t){if(e.nodeType==g){var n=e.firstChild;while(n){var r=n.nextSibling;this.insertBefore(n,t),n=r}return e}return this.documentElement==null&&e.nodeType==1&&(this.documentElement=e),Z(this,e,t),e.ownerDocument=this,e},removeChild:function(e){return this.documentElement==e&&(this.documentElement=null),Y(this,e)},importNode:function(e,t){return vt(this,e,t)},getElementById:function(e){var t=null;return $(this.documentElement,function(n){if(n.nodeType==1&&n.getAttribute(\"id\")==e)return t=n,!0}),t},createElement:function(e){var t=new tt;t.ownerDocument=this,t.nodeName=e,t.tagName=e,t.childNodes=new j;var n=t.attributes=new q;return n._ownerElement=t,t},createDocumentFragment:function(){var e=new ct;return e.ownerDocument=this,e.childNodes=new j,e},createTextNode:function(e){var t=new it;return t.ownerDocument=this,t.appendData(e),t},createComment:function(e){var t=new st;return t.ownerDocument=this,t.appendData(e),t},createCDATASection:function(e){var t=new ot;return t.ownerDocument=this,t.appendData(e),t},createProcessingInstruction:function(e,t){var n=new ht;return n.ownerDocument=this,n.tagName=n.target=e,n.nodeValue=n.data=t,n},createAttribute:function(e){var t=new nt;return t.ownerDocument=this,t.name=e,t.nodeName=e,t.localName=e,t.specified=!0,t},createEntityReference:function(e){var t=new lt;return t.ownerDocument=this,t.nodeName=e,t},createElementNS:function(e,t){var n=new tt,r=t.split(\":\"),i=n.attributes=new q;return n.childNodes=new j,n.ownerDocument=this,n.nodeName=t,n.tagName=t,n.namespaceURI=e,r.length==2?(n.prefix=r[0],n.localName=r[1]):n.localName=t,i._ownerElement=n,n},createAttributeNS:function(e,t){var n=new nt,r=t.split(\":\");return n.ownerDocument=this,n.nodeName=t,n.name=t,n.namespaceURI=e,n.specified=!0,r.length==2?(n.prefix=r[0],n.localName=r[1]):n.localName=t,n}},i(J,X),tt.prototype={nodeType:u,hasAttribute:function(e){return this.getAttributeNode(e)!=null},getAttribute:function(e){var t=this.getAttributeNode(e);return t&&t.value||\"\"},getAttributeNode:function(e){return this.attributes.getNamedItem(e)},setAttribute:function(e,t){var n=this.ownerDocument.createAttribute(e);n.value=n.nodeValue=\"\"+t,this.setAttributeNode(n)},removeAttribute:function(e){var t=this.getAttributeNode(e);t&&this.removeAttributeNode(t)},appendChild:function(e){return e.nodeType===g?this.insertBefore(e,null):et(this,e)},setAttributeNode:function(e){return this.attributes.setNamedItem(e)},setAttributeNodeNS:function(e){return this.attributes.setNamedItemNS(e)},removeAttributeNode:function(e){return this.attributes.removeNamedItem(e.nodeName)},removeAttributeNS:function(e,t){var n=this.getAttributeNodeNS(e,t);n&&this.removeAttributeNode(n)},hasAttributeNS:function(e,t){return this.getAttributeNodeNS(e,t)!=null},getAttributeNS:function(e,t){var n=this.getAttributeNodeNS(e,t);return n&&n.value||\"\"},setAttributeNS:function(e,t,n){var r=this.ownerDocument.createAttributeNS(e,t);r.value=r.nodeValue=\"\"+n,this.setAttributeNode(r)},getAttributeNodeNS:function(e,t){return this.attributes.getNamedItemNS(e,t)},getElementsByTagName:function(e){return new F(this,function(t){var n=[];return $(t,function(r){r!==t&&r.nodeType==u&&(e===\"*\"||r.tagName==e)&&n.push(r)}),n})},getElementsByTagNameNS:function(e,t){return new F(this,function(n){var r=[];return $(n,function(i){i!==n&&i.nodeType===u&&(e===\"*\"||i.namespaceURI===e)&&(t===\"*\"||i.localName==t)&&r.push(i)}),r})}},J.prototype.getElementsByTagName=tt.prototype.getElementsByTagName,J.prototype.getElementsByTagNameNS=tt.prototype.getElementsByTagNameNS,i(tt,X),nt.prototype.nodeType=a,i(nt,X),rt.prototype={data:\"\",substringData:function(e,t){return this.data.substring(e,e+t)},appendData:function(e){e=this.data+e,this.nodeValue=this.data=e,this.length=e.length},insertData:function(e,t){this.replaceData(e,0,t)},appendChild:function(e){throw new Error(w[3])},deleteData:function(e,t){this.replaceData(e,t,\"\")},replaceData:function(e,t,n){var r=this.data.substring(0,e),i=this.data.substring(e+t);n=r+n+i,this.nodeValue=this.data=n,this.length=n.length}},i(rt,X),it.prototype={nodeName:\"#text\",nodeType:f,splitText:function(e){var t=this.data,n=t.substring(e);t=t.substring(0,e),this.data=this.nodeValue=t,this.length=t.length;var r=this.ownerDocument.createTextNode(n);return this.parentNode&&this.parentNode.insertBefore(r,this.nextSibling),r}},i(it,rt),st.prototype={nodeName:\"#comment\",nodeType:d},i(st,rt),ot.prototype={nodeName:\"#cdata-section\",nodeType:l},i(ot,rt),ut.prototype.nodeType=m,i(ut,X),at.prototype.nodeType=y,i(at,X),ft.prototype.nodeType=h,i(ft,X),lt.prototype.nodeType=c,i(lt,X),ct.prototype.nodeName=\"#document-fragment\",ct.prototype.nodeType=g,i(ct,X),ht.prototype.nodeType=p,i(ht,X),pt.prototype.serializeToString=function(e){var t=[];return dt(e,t),t.join(\"\")},X.prototype.toString=function(){return pt.prototype.serializeToString(this)};try{if(Object.defineProperty){Object.defineProperty(F.prototype,\"length\",{get:function(){return I(this),this.$$length}}),Object.defineProperty(X.prototype,\"textContent\",{get:function(){return yt(this)},set:function(e){switch(this.nodeType){case 1:case 11:while(this.firstChild)this.removeChild(this.firstChild);(e||String(e))&&this.appendChild(this.ownerDocument.createTextNode(e));break;default:this.data=e,this.value=value,this.nodeValue=e}}});function yt(e){switch(e.nodeType){case 1:case 11:var t=[];e=e.firstChild;while(e)e.nodeType!==7&&e.nodeType!==8&&t.push(yt(e)),e=e.nextSibling;return t.join(\"\");default:return e.nodeValue}}gt=function(e,t,n){e[\"$$\"+t]=n}}}catch(bt){}return W}),ace.define(\"ace/mode/xml/dom-parser\",[\"require\",\"exports\",\"module\",\"ace/mode/xml/sax\",\"ace/mode/xml/dom\"],function(e,t,n){\"use strict\";function s(e){this.options=e||{locator:{}}}function o(e,t,n){function s(t){var s=e[t];if(!s)if(i)s=e.length==2?function(n){e(t,n)}:e;else{var o=arguments.length;while(--o)if(s=e[arguments[o]])break}r[t]=s&&function(e){s(e+f(n),e,n)}||function(){}}if(!e){if(t instanceof u)return t;e=t}var r={},i=e instanceof Function;return n=n||{},s(\"warning\",\"warn\"),s(\"error\",\"warn\",\"warning\"),s(\"fatalError\",\"warn\",\"warning\",\"error\"),r}function u(){this.cdata=!1}function a(e,t){t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber}function f(e){if(e)return\"\\n@\"+(e.systemId||\"\")+\"#[line:\"+e.lineNumber+\",col:\"+e.columnNumber+\"]\"}function l(e,t,n){return typeof e==\"string\"?e.substr(t,n):e.length>=t+n||t?new java.lang.String(e,t,n)+\"\":e}function c(e,t){e.currentElement?e.currentElement.appendChild(t):e.document.appendChild(t)}var r=e(\"./sax\"),i=e(\"./dom\");return s.prototype.parseFromString=function(e,t){var n=this.options,i=new r,s=n.domBuilder||new u,a=n.errorHandler,f=n.locator,l=n.xmlns||{},c={lt:\"<\",gt:\">\",amp:\"&\",quot:'\"',apos:\"'\"};return f&&s.setDocumentLocator(f),i.errorHandler=o(a,s,f),i.domBuilder=n.domBuilder||s,/\\/x?html?$/.test(t)&&(c.nbsp=\"\\u00a0\",c.copy=\"\\u00a9\",l[\"\"]=\"http://www.w3.org/1999/xhtml\"),e?i.parse(e,l,c):i.errorHandler.error(\"invalid document source\"),s.document},u.prototype={startDocument:function(){this.document=(new i).createDocument(null,null,null),this.locator&&(this.document.documentURI=this.locator.systemId)},startElement:function(e,t,n,r){var i=this.document,s=i.createElementNS(e,n||t),o=r.length;c(this,s),this.currentElement=s,this.locator&&a(this.locator,s);for(var u=0;u<o;u++){var e=r.getURI(u),f=r.getValue(u),n=r.getQName(u),l=i.createAttributeNS(e,n);l.getOffset&&a(l.getOffset(1),l),l.value=l.nodeValue=f,s.setAttributeNode(l)}},endElement:function(e,t,n){var r=this.currentElement,i=r.tagName;this.currentElement=r.parentNode},startPrefixMapping:function(e,t){},endPrefixMapping:function(e){},processingInstruction:function(e,t){var n=this.document.createProcessingInstruction(e,t);this.locator&&a(this.locator,n),c(this,n)},ignorableWhitespace:function(e,t,n){},characters:function(e,t,n){e=l.apply(this,arguments);if(this.currentElement&&e){if(this.cdata){var r=this.document.createCDATASection(e);this.currentElement.appendChild(r)}else{var r=this.document.createTextNode(e);this.currentElement.appendChild(r)}this.locator&&a(this.locator,r)}},skippedEntity:function(e){},endDocument:function(){this.document.normalize()},setDocumentLocator:function(e){if(this.locator=e)e.lineNumber=0},comment:function(e,t,n){e=l.apply(this,arguments);var r=this.document.createComment(e);this.locator&&a(this.locator,r),c(this,r)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(e,t,n){var r=this.document.implementation;if(r&&r.createDocumentType){var i=r.createDocumentType(e,t,n);this.locator&&a(this.locator,i),c(this,i)}},warning:function(e){console.warn(e,f(this.locator))},error:function(e){console.error(e,f(this.locator))},fatalError:function(e){throw console.error(e,f(this.locator)),e}},\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,function(e){u.prototype[e]=function(){return null}}),{DOMParser:s}}),ace.define(\"ace/mode/xml_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/worker/mirror\",\"ace/mode/xml/dom-parser\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../lib/lang\"),s=e(\"../worker/mirror\").Mirror,o=e(\"./xml/dom-parser\").DOMParser,u=t.Worker=function(e){s.call(this,e),this.setTimeout(400),this.context=null};r.inherits(u,s),function(){this.setOptions=function(e){this.context=e.context},this.onUpdate=function(){var e=this.doc.getValue();if(!e)return;var t=new o,n=[];t.options.errorHandler={fatalError:function(e,t,r){n.push({row:r.lineNumber,column:r.columnNumber,text:t,type:\"error\"})},error:function(e,t,r){n.push({row:r.lineNumber,column:r.columnNumber,text:t,type:\"error\"})},warning:function(e,t,r){n.push({row:r.lineNumber,column:r.columnNumber,text:t,type:\"warning\"})}},t.parseFromString(e),this.sender.emit(\"error\",n)}}.call(u.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,\"sentinel\",{}),\"sentinel\"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t===\"undefined\"||t===\"boolean\"||t===\"number\"||t===\"string\"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n==\"function\"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r==\"function\"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!=\"function\")throw new TypeError(\"Function.prototype.bind called on incompatible \"+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,\"__defineGetter__\"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,\"XXX\"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)==\"[object Array]\"});var m=Object(\"a\"),g=m[0]!=\"a\"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduce of empty array with no initial value\");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError(\"reduce of empty array with no initial value\")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduceRight of empty array with no initial value\");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError(\"reduceRight of empty array with no initial value\")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!=\"object\")throw new TypeError(\"typeof prototype[\"+typeof t+\"] != 'object'\");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document==\"undefined\"||w(document.createElement(\"div\"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T=\"Property description must be an object: \",N=\"Object.defineProperty called on non-object: \",C=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(t,n,r){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(N+t);if(typeof r!=\"object\"&&typeof r!=\"function\"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,\"value\"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,\"get\")&&l(t,n,r.get),f(r,\"set\")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n==\"function\"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n=\"\";while(f(t,n))n+=\"?\";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!=\"object\"&&typeof e!=\"function\"||e===null)throw new TypeError(\"Object.keys called on a non-object\");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=\"\t\\n\u000b\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\";if(!String.prototype.trim||_.trim()){_=\"[\"+_+\"]\";var D=new RegExp(\"^\"+_+_+\"*\"),P=new RegExp(_+_+\"*$\");String.prototype.trim=function(){return String(this).replace(D,\"\").replace(P,\"\")}}var F=function(e){if(e==null)throw new TypeError(\"can't convert \"+e+\" to object\");return Object(e)}})"
  },
  {
    "path": "lib/src-min-noconflict-old/worker-xquery.js",
    "content": "\"no use strict\";(function(e){function t(e,t){var n=e,r=\"\";while(n){var i=t[n];if(typeof i==\"string\")return i+r;if(i)return i.location.replace(/\\/*$/,\"/\")+(r||i.main||i.name);if(i===!1)return\"\";var s=n.lastIndexOf(\"/\");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!=\"undefined\"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:\"error\",data:{message:e,data:i.data,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf(\"!\")!==-1){var r=n.split(\"!\");return e.normalizeModule(t,r[0])+\"!\"+e.normalizeModule(t,r[1])}if(n.charAt(0)==\".\"){var i=t.split(\"/\").slice(0,-1).join(\"/\");n=(i?i+\"/\":\"\")+n;while(n.indexOf(\".\")!==-1&&s!=n){var s=n;n=n.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log(\"unable to load \"+i);var o=t(i,e.require.tlns);return o.slice(-3)!=\".js\"&&(o+=\".js\"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!=\"string\"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!=\"function\"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=[\"require\",\"exports\",\"module\"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case\"require\":return i;case\"exports\":return e.exports;case\"module\":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},require.tlns={},e.initBaseUrls=function(t){for(var n in t)require.tlns[n]=t[n]},e.initSender=function(){var n=e.require(\"ace/lib/event_emitter\").EventEmitter,r=e.require(\"ace/lib/oop\"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:\"call\",id:t,data:e})},this.emit=function(e,t){postMessage({type:\"event\",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error(\"Unknown command:\"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),require(\"ace/lib/es5-shim\"),r=e.sender=e.initSender();var s=require(i.module)[i.classname];n=e.main=new s(r)}}})(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e==\"object\"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e==\"object\"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";function r(e,t){throw console.log(\"Invalid Delta:\",e),\"Invalid Delta: \"+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!=\"insert\"&&t.action!=\"remove\"&&r(t,\"delta.action must be 'insert' or 'remove'\"),t.lines instanceof Array||r(t,\"delta.lines must be an Array\"),(!t.start||!t.end)&&r(t,\"delta.start/end must be an present\");var n=t.start;i(e,t.start)||r(t,\"delta.start must be contained in document\");var s=t.end;t.action==\"remove\"&&!i(e,s)&&r(t,\"delta.end must contained in document for 'remove' actions\");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,\"delta.range must match delta lines\")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||\"\";switch(t.action){case\"insert\":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case\"remove\":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!=\"object\"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?\"unshift\":\"push\"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n==\"undefined\"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action==\"insert\",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal(\"change\",{old:i,value:r})},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./apply_delta\").applyDelta,s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=function(e){this.$lines=[\"\"],e.length===0?this.$lines=[\"\"]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},\"aaa\".split(/a/).length===0?this.$split=function(e){return e.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:this.$split=function(e){return e.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=t?t[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal(\"changeNewLineMode\")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==\"\\r\\n\"||e==\"\\r\"||e==\"\\n\"},this.getLine=function(e){return this.$lines[e]||\"\"},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||\"\").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(e,[\"\",\"\"])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:\"insert\",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([\"\"]),n=0):(t=[\"\"].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:\"insert\",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:\"remove\",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:\"remove\",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:\"remove\",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action==\"insert\";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal(\"change\",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(\"\"),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action==\"insert\"?\"remove\":\"insert\",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split(\"\").reverse().join(\"\")},t.stringRepeat=function(e,t){var n=\"\";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\\s\\s*/,i=/\\s\\s*$/;t.stringTrimLeft=function(e){return e.replace(r,\"\")},t.stringTrimRight=function(e){return e.replace(i,\"\")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]==\"object\"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!=\"object\"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}var r=e.constructor;if(r===RegExp)return e;t=r();for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},t.escapeHTML=function(e){return e.replace(/&/g,\"&#38;\").replace(/\"/g,\"&#34;\").replace(/'/g,\"&#39;\").replace(/</g,\"&#60;\")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=e(\"../document\").Document,s=e(\"../lib/lang\"),o=t.Mirror=function(e){this.sender=e;var t=this.doc=new i(\"\"),n=this.deferredUpdate=s.delayedCall(this.onUpdate.bind(this)),r=this;e.on(\"change\",function(e){var i=e.data;if(i[0].start)t.applyDeltas(i);else for(var s=0;s<i.length;s+=2){if(Array.isArray(i[s+1]))var o={action:\"insert\",start:i[s],lines:i[s+1]};else var o={action:\"remove\",start:i[s],end:i[s+1]};t.applyDelta(o,!0)}if(r.$timeout)return n.schedule(r.$timeout);r.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),ace.define(\"ace/mode/xquery/xqlint\",[\"require\",\"exports\",\"module\",\"ace/mode/tree_ops\",\"ace/mode/xquery/errors\",\"ace/mode/tree_ops\",\"ace/mode/xquery/errors\",\"ace/mode/xquery/schema_built-in_types\",\"ace/mode/xquery/errors\",\"ace/mode/tree_ops\",\"ace/mode/xquery/static_context\",\"ace/mode/xquery/handlers\",\"ace/mode/tree_ops\",\"ace/mode/xquery/parsers/JSONiqParser\",\"ace/mode/xquery/parsers/XQueryParser\",\"ace/mode/xquery/parsers/JSONParseTreeHandler\",\"ace/mode/xquery/compiler/translator\",\"ace/mode/xquery/formatter/style_checker\",\"ace/mode/lib/completion/completer\",\"ace/mode/xquery/compiler/static_context\"],function(e,t,n){n.exports=function r(t,n,i){function s(u,a){if(!n[u]){if(!t[u]){var f=typeof e==\"function\"&&e;if(!a&&f)return f(u,!0);if(o)return o(u,!0);var l=new Error(\"Cannot find module '\"+u+\"'\");throw l.code=\"MODULE_NOT_FOUND\",l}var c=n[u]={exports:{}};t[u][0].call(c.exports,function(e){var n=t[u][1][e];return s(n?n:e)},c,c.exports,r,t,n,i)}return n[u].exports}var o=typeof e==\"function\"&&e;for(var u=0;u<i.length;u++)s(i[u]);return s}({1:[function(e,t,n){\"use strict\";var r=function(e,t,n,r,i){if(!t)throw new Error(i+\" code is missing.\");if(!n)throw new Error(i+\" message is missing.\");if(!r)throw new Error(i+\" position is missing.\");e.getCode=function(){return t},e.getMessage=function(){return n},e.getPos=function(){return r}},i={},s={};i.prototype=new Error,s.prototype=new Error,n.StaticError=i.prototype.constructor=function(e,t,n){r(this,e,t,n,\"Error\")},n.StaticWarning=s.prototype.constructor=function(e,t,n){r(this,e,t,n,\"Warning\")}},{}],2:[function(e,t,n){\"use strict\";var r=e(\"../tree_ops\").TreeOps,i=e(\"./errors\"),s=i.StaticWarning;n.ModuleDecl=function(e,t,n){var i=\"\";return{NCName:function(e){i=r.flatten(e)},URILiteral:function(s){s=r.flatten(s),s=s.substring(1,s.length-1),e.apply(function(){t.moduleNamespace=s,t.addNamespace(s,i,n.pos,\"moduleDecl\")})}}},n.ModuleImport=function(e,t,n){var i=\"\",s;return{NCName:function(e){i=r.flatten(e)},URILiteral:function(o){if(s!==undefined)return;o=r.flatten(o),o=o.substring(1,o.length-1),s=o,e.apply(function(){t.importModule(o,i,n.pos)})}}},n.SchemaImport=function(e,t,n){var i=\"\",s;return{SchemaPrefix:function(t){var n=function(){this.NCName=function(e){i=r.flatten(e)}};e.visitChildren(t,new n)},URILiteral:function(o){if(s!==undefined)return;o=r.flatten(o),o=o.substring(1,o.length-1),s=o,e.apply(function(){t.addNamespace(o,i,n.pos,\"schema\")})}}},n.DefaultNamespaceDecl=function(e,t,n){var i=!1,o=\"\";return{TOKEN:function(e){i=i?!0:e.value===\"function\"},URILiteral:function(u){o=r.flatten(u),o=o.substring(1,o.length-1),i?t.defaultFunctionNamespace=o:(e.apply(function(){throw new s(\"W06\",\"Avoid default element namespace declarations.\",n.pos)}),t.defaultElementNamespace=o)}}},n.NamespaceDecl=function(e,t,n){var i=\"\";return{NCName:function(e){i=r.flatten(e)},URILiteral:function(s){s=r.flatten(s),s=s.substring(1,s.length-1),e.apply(function(){t.addNamespace(s,i,n.pos,\"declare\")})}}},n.VarHandler=function(e,t,n){var i=function(i){var s=r.flatten(i);e.apply(function(){var e=t.resolveQName(s,i.pos);t.addVariable(e,n.name,i.pos)})};return{ExprSingle:function(){return!0},VarValue:function(){return!0},VarDefaultValue:function(){return!0},VarName:i,EQName:i}},n.VarRefHandler=function(e,t,n){return{VarName:function(i){var s=r.flatten(i);e.apply(function(){var e=t.resolveQName(s,n.pos);e.uri!==\"\"&&(t.root.namespaces[e.uri].used=!0),t.addVarRef(e,i.pos)})}}}},{\"../tree_ops\":11,\"./errors\":1}],3:[function(e,t,n){\"use strict\";n.getSchemaBuiltinTypes=function(){var e=\"http://www.w3.org/2001/XMLSchema\",t={};return t[e]={variables:{},functions:{}},t[e].functions[e+\"#string#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"string\",arity:1,eqname:{uri:e,name:\"string\"}},t[e].functions[e+\"#boolean#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"boolean\",arity:1,eqname:{uri:e,name:\"boolean\"}},t[e].functions[e+\"#decimal#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"decimal\",arity:1,eqname:{uri:e,name:\"decimal\"}},t[e].functions[e+\"#float#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"float\",arity:1,eqname:{uri:e,name:\"float\"}},t[e].functions[e+\"#double#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"double\",arity:1,eqname:{uri:e,name:\"double\"}},t[e].functions[e+\"#duration#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"duration\",arity:1,eqname:{uri:e,name:\"duration\"}},t[e].functions[e+\"#dateTime#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"dateTime\",arity:1,eqname:{uri:e,name:\"dateTime\"}},t[e].functions[e+\"#time#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"time\",arity:1,eqname:{uri:e,name:\"time\"}},t[e].functions[e+\"#date#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"date\",arity:1,eqname:{uri:e,name:\"date\"}},t[e].functions[e+\"#gYearMonth#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"gYearMonth\",arity:1,eqname:{uri:e,name:\"gYearMonth\"}},t[e].functions[e+\"#gYear#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"gYear\",arity:1,eqname:{uri:e,name:\"gYear\"}},t[e].functions[e+\"#gMonthDay#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"gMonthDay\",arity:1,eqname:{uri:e,name:\"gMonthDay\"}},t[e].functions[e+\"#gDay#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"gDay\",arity:1,eqname:{uri:e,name:\"gDay\"}},t[e].functions[e+\"#gMonth#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"gMonth\",arity:1,eqname:{uri:e,name:\"gMonth\"}},t[e].functions[e+\"#hexBinary#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"hexBinary\",arity:1,eqname:{uri:e,name:\"hexBinary\"}},t[e].functions[e+\"#base64Binary#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"base64Binary\",arity:1,eqname:{uri:e,name:\"base64Binary\"}},t[e].functions[e+\"#anyURI#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"anyURI\",arity:1,eqname:{uri:e,name:\"anyURI\"}},t[e].functions[e+\"#QName#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"QName\",arity:1,eqname:{uri:e,name:\"QName\"}},t[e].functions[e+\"#normalizedString#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"normalizedString\",arity:1,eqname:{uri:e,name:\"normalizedString\"}},t[e].functions[e+\"#token#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"token\",arity:1,eqname:{uri:e,name:\"token\"}},t[e].functions[e+\"#language#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"language\",arity:1,eqname:{uri:e,name:\"language\"}},t[e].functions[e+\"#NMTOKEN#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"NMTOKEN\",arity:1,eqname:{uri:e,name:\"NMTOKEN\"}},t[e].functions[e+\"#Name#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"Name\",arity:1,eqname:{uri:e,name:\"Name\"}},t[e].functions[e+\"#NCName#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"NCName\",arity:1,eqname:{uri:e,name:\"NCName\"}},t[e].functions[e+\"#ID#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"ID\",arity:1,eqname:{uri:e,name:\"ID\"}},t[e].functions[e+\"#IDREF#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"IDREF\",arity:1,eqname:{uri:e,name:\"IDREF\"}},t[e].functions[e+\"#ENTITY#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"ENTITY\",arity:1,eqname:{uri:e,name:\"ENTITY\"}},t[e].functions[e+\"#integer#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"integer\",arity:1,eqname:{uri:e,name:\"integer\"}},t[e].functions[e+\"#nonPositiveInteger#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"nonPositiveInteger\",arity:1,eqname:{uri:e,name:\"nonPositiveInteger\"}},t[e].functions[e+\"#negativeInteger#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"negativeInteger\",arity:1,eqname:{uri:e,name:\"negativeInteger\"}},t[e].functions[e+\"#long#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"long\",arity:1,eqname:{uri:e,name:\"long\"}},t[e].functions[e+\"#int#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"int\",arity:1,eqname:{uri:e,name:\"int\"}},t[e].functions[e+\"#short#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"short\",arity:1,eqname:{uri:e,name:\"short\"}},t[e].functions[e+\"#byte#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"byte\",arity:1,eqname:{uri:e,name:\"byte\"}},t[e].functions[e+\"#nonNegativeInteger#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"nonNegativeInteger\",arity:1,eqname:{uri:e,name:\"nonNegativeInteger\"}},t[e].functions[e+\"#unsignedLong#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"unsignedLong\",arity:1,eqname:{uri:e,name:\"unsignedLong\"}},t[e].functions[e+\"#unsignedInt#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"unsignedInt\",arity:1,eqname:{uri:e,name:\"unsignedInt\"}},t[e].functions[e+\"#unsignedShort#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"unsignedShort\",arity:1,eqname:{uri:e,name:\"unsignedShort\"}},t[e].functions[e+\"#unsignedByte#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"unsignedByte\",arity:1,eqname:{uri:e,name:\"unsignedByte\"}},t[e].functions[e+\"#positiveInteger#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"positiveInteger\",arity:1,eqname:{uri:e,name:\"positiveInteger\"}},t[e].functions[e+\"#yearMonthDuration#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"yearMonthDuration\",arity:1,eqname:{uri:e,name:\"yearMonthDuration\"}},t[e].functions[e+\"#dayTimeDuration#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"dayTimeDuration\",arity:1,eqname:{uri:e,name:\"dayTimeDuration\"}},t[e].functions[e+\"#untypedAtomic#1\"]={params:[\"$arg as xs:anyAtomicType?\"],annotations:[],name:\"untypedAtomic\",arity:1,eqname:{uri:e,name:\"untypedAtomic\"}},t}},{}],4:[function(e,t,n){n.StaticContext=function(t,n){\"use strict\";var r=e(\"../tree_ops\").TreeOps,i=e(\"./errors\"),s=i.StaticError,o=i.StaticWarning,u=e(\"./schema_built-in_types\").getSchemaBuiltinTypes,a={sl:0,sc:0,el:0,ec:0},f={},l=function(e){return e.uri+\"#\"+e.name},c=function(e,t){return l(e)+\"#\"+t};t||(f[\"http://jsoniq.org/functions\"]={prefix:\"jn\",pos:a,type:\"module\",override:!0},f[\"http://www.28msec.com/modules/collections\"]={prefix:\"db\",pos:a,type:\"module\",override:!0},f[\"http://www.28msec.com/modules/store\"]={prefix:\"store\",pos:a,type:\"module\",override:!0},f[\"http://jsoniq.org/function-library\"]={prefix:\"libjn\",pos:a,type:\"module\",override:!0},f[\"http://www.w3.org/2005/xpath-functions\"]={prefix:\"fn\",pos:a,type:\"module\",override:!0},f[\"http://www.w3.org/2005/xquery-local-functions\"]={prefix:\"local\",pos:a,type:\"declare\",override:!0},f[\"http://www.w3.org/2001/XMLSchema-instance\"]={prefix:\"xsi\",pos:a,type:\"declare\"},f[\"http://www.w3.org/2001/XMLSchema\"]={prefix:\"xs\",pos:a,type:\"declare\"},f[\"http://www.w3.org/XML/1998/namespace\"]={prefix:\"xml\",pos:a,type:\"declare\"},f[\"http://zorba.io/annotations\"]={prefix:\"an\",pos:a,type:\"declare\",override:!0},f[\"http://www.28msec.com/annotations/rest\"]={prefix:\"rest\",pos:a,type:\"declare\",override:!0},f[\"http://www.w3.org/2005/xqt-errors\"]={prefix:\"err\",pos:a,type:\"declare\",override:!0},f[\"http://zorba.io/errors\"]={prefix:\"zerr\",pos:a,type:\"declare\",override:!0});var h={parent:t,children:[],pos:n,setModuleResolver:function(e){return this.root.moduleResolver=e,this},setModules:function(e){if(this!==this.root)throw new Error(\"setModules() not invoked from the root static context.\");this.moduleResolver=function(t){return e[t]};var t=this;return Object.keys(this.namespaces).forEach(function(e){var n=t.namespaces[e];if(n.type===\"module\"){var i=t.moduleResolver(e);i.variables&&r.concat(t.variables,i.variables),i.functions&&r.concat(t.functions,i.functions)}}),this},setModulesFromXQDoc:function(e){if(this!==this.root)throw new Error(\"setModulesFromXQDoc() not invoked from the root static context.\");var t={};Object.keys(e).forEach(function(n){var r=e[n],i={},s={};r.functions.forEach(function(e){s[n+\"#\"+e.name+\"#\"+e.arity]={params:[],annotations:[],name:e.name,arity:e.arity,eqname:{uri:n,name:e.name}},e.parameters.forEach(function(t){s[n+\"#\"+e.name+\"#\"+e.arity].params.push(\"$\"+t.name)})}),r.variables.forEach(function(e){var t=e.name.substring(e.name.indexOf(\":\")+1);i[n+\"#\"+t]={type:\"VarDecl\",annotations:[],eqname:{uri:n,name:t}}}),t[n]={variables:i,functions:s}}),this.root.moduleResolver=function(e){return t[e]};var n=this;return Object.keys(this.namespaces).forEach(function(e){var t=n.namespaces[e];if(t.type===\"module\"){var i=n.moduleResolver(e);i.variables&&r.concat(n.variables,i.variables),i.functions&&r.concat(n.functions,i.functions)}}),this},moduleNamespace:\"\",defaultFunctionNamespace:\"http://www.w3.org/2005/xpath-functions\",defaultFunctionNamespaces:[\"http://www.28msec.com/modules/collections\",\"http://www.28msec.com/modules/store\",\"http://jsoniq.org/functions\",\"http://jsoniq.org/function-library\",\"http://www.w3.org/2001/XMLSchema\"],defaultElementNamespace:\"\",namespaces:f,availableModuleNamespaces:[],importModule:function(e,t,n){if(this!==this.root)throw new Error(\"Function not invoked from the root static context.\");this.addNamespace(e,t,n,\"module\");if(this.moduleResolver)try{var i=this.moduleResolver(e,[]);i.variables&&r.concat(this.variables,i.variables),i.functions&&r.concat(this.functions,i.functions)}catch(o){throw new s(\"XQST0059\",'module \"'+e+'\" not found',n)}return this},getAvailableModuleNamespaces:function(){return this.root.availableModuleNamespaces},getPrefixByNamespace:function(e){return this.root.namespaces[e].prefix},addNamespace:function(e,t,n,r){if(t===\"\"&&r===\"module\")throw new o(\"W01\",\"Avoid this type of import. Use import module namespace instead\",n);if(e===\"\")throw new s(\"XQST0088\",\"empty target namespace in module import or module declaration\",n);var i=this.getNamespace(e);if(i&&i.type===r&&r!==\"declare\"&&!i.override)throw new s(\"XQST0047\",'\"'+e+'\": duplicate target namespace',n);i=this.getNamespaceByPrefix(t);if(i&&!i.override)throw new s(\"XQST0033\",'\"'+t+'\": namespace prefix already bound to \"'+i.uri+'\"',n);i=this.namespaces[e],this.namespaces[e]={prefix:t,pos:n,type:r};if(i)throw new o(\"W02\",'\"'+e+'\" already bound to the \"'+i.prefix+'\" prefix',n)},getNamespaces:function(){return this.root.namespaces},getNamespace:function(e){var t=this;while(t){var n=t.namespaces[e];if(n)return n;t=t.parent}},getNamespaceByPrefix:function(e){var t=function(t){var r=n.namespaces[t];if(r.prefix===e)throw r.uri=t,r},n=this;while(n){try{Object.keys(n.namespaces).forEach(t)}catch(r){return r}n=n.parent}},resolveQName:function(e,t){var n={uri:\"\",prefix:\"\",name:\"\"},r;if(e.substring(0,2)===\"Q{\")r=e.indexOf(\"}\"),n.uri=e.substring(2,r),n.name=e.substring(r+1);else{r=e.indexOf(\":\"),n.prefix=e.substring(0,r);var i=this.getNamespaceByPrefix(n.prefix);if(!i&&n.prefix!==\"\"&&[\"fn\",\"jn\"].indexOf(n.prefix)===-1)throw new s(\"XPST0081\",'\"'+n.prefix+'\": can not expand prefix of lexical QName to namespace URI',t);i&&(n.uri=i.uri),n.name=e.substring(r+1)}return n},variables:{},varRefs:{},functionCalls:{},addVariable:function(e,t,n){if(t!==\"VarDecl\"||this.moduleNamespace===\"\"||this.moduleNamespace===e.uri||e.uri===\"\"&&this.defaultFunctionNamespace===this.moduleNamespace){var r=l(e);if(t===\"VarDecl\"&&this.variables[r])throw new s(\"XQST0049\",'\"'+e.name+'\": duplicate variable declaration',n);return this.variables[r]={type:t,pos:n,qname:e,annotations:{}},this}throw new s(\"XQST0048\",'\"'+e.prefix+\":\"+e.name+'\": Qname not library namespace',n)},getVariables:function(){var e={},t=this,n=function(n){e[n]||(e[n]=t.variables[n])};while(t)Object.keys(t.variables).forEach(n),t=t.parent;return e},getVariable:function(e){var t=l(e),n=this;while(n){if(n.variables[t])return n.variables[t];n=n.parent}},addVarRef:function(e,t){var n=this.getVariable(e);if(!n&&(e.uri===\"\"||this.root.moduleResolver))throw new s(\"XPST0008\",'\"'+e.name+'\": undeclared variable',t);var r=l(e);this.varRefs[r]=!0},addFunctionCall:function(e,t,n){var r=this.getFunction(e,t);if(!(!!r||e.uri!==\"http://www.w3.org/2005/xquery-local-functions\"&&!this.root.moduleResolver||(e.uri===\"http://www.w3.org/2005/xpath-functions\"||e.uri===\"\"&&this.root.defaultFunctionNamespaces.concat(this.root.defaultFunctionNamespace).indexOf(\"http://www.w3.org/2005/xpath-functions\")!==-1)&&e.name===\"concat\")&&!r)throw new s(\"XPST0008\",'\"'+e.name+\"#\"+t+'\": undeclared function',n);var i=c(e,t);this.functionCalls[i]=!0},functions:u()[\"http://www.w3.org/2001/XMLSchema\"].functions,getFunctions:function(){return this.root.functions},getFunction:function(e,t){var n=c(e,t),r;if(e.uri===\"\"){var i=this;return this.root.defaultFunctionNamespaces.concat([this.root.defaultFunctionNamespace]).forEach(function(n){if(!!r)return!1;r=i.getFunction({uri:n,prefix:e.prefix,name:e.name},t)}),r}return this.root.functions[n]},addFunction:function(e,t,n){if(this!==this.root)throw new Error(\"addFunction() not invoked from the root static context.\");var r=n.length;if(this.moduleNamespace===\"\"||this.moduleNamespace===e.uri||e.uri===\"\"&&this.defaultFunctionNamespace===this.moduleNamespace){var i=c(e,r);if(this.functions[i])throw new s(\"XQST0034\",'\"'+e.name+'\": duplicate function declaration',t);return this.functions[i]={pos:t,params:n},this}throw new s(\"XQST0048\",'\"'+e.prefix+\":\"+e.name+'\": Qname not library namespace',t)}};return h.root=t?t.root:h,h}},{\"../tree_ops\":11,\"./errors\":1,\"./schema_built-in_types\":3}],5:[function(e,t,n){n.Translator=function(t,n){\"use strict\";var r=e(\"./errors\"),i=r.StaticError,s=r.StaticWarning,o=e(\"../tree_ops\").TreeOps,u=e(\"./static_context\").StaticContext,a=e(\"./handlers\"),f=function(e,t){var n=[];return t.length===0?e:(e.children.forEach(function(e){e.name===t[0]&&t.length>1?n=f(e,t.slice(1)):e.name===t[0]&&n.push(e)}),n)},l=[];this.apply=function(e){try{e()}catch(t){if(t instanceof i)c(t);else{if(!(t instanceof s))throw t;h(t.getCode(),t.getMessage(),t.getPos())}}};var c=function(e){l.push({pos:e.getPos(),type:\"error\",level:\"error\",message:\"[\"+e.getCode()+\"] \"+e.getMessage()})},h=function(e,t,n){l.push({pos:n,type:\"warning\",level:\"warning\",message:\"[\"+e+\"] \"+t})};this.getMarkers=function(){return l};var p=this;t.pos=n.pos;var d=t,v=function(e){d=new u(d,e),d.parent.children.push(d)},m=function(e){e!==undefined&&(d.pos.el=e.el,d.pos.ec=e.ec),Object.keys(d.varRefs).forEach(function(e){d.variables[e]||(d.parent.varRefs[e]=!0)}),Object.keys(d.variables).forEach(function(e){!d.varRefs[e]&&d.variables[e].type!==\"GroupingVariable\"&&d.variables[e].type!==\"CatchVar\"&&h(\"W03\",'Unused variable \"$'+d.variables[e].qname.name+'\"',d.variables[e].pos)}),d=d.parent};this.visitOnly=function(e,t){e.children.forEach(function(e){t.indexOf(e.name)!==-1&&p.visit(e)})},this.getFirstChild=function(e,t){var n;return e.children.forEach(function(e){e.name===t&&n===undefined&&(n=e)}),n},this.ModuleDecl=function(e){return this.visitChildren(e,a.ModuleDecl(p,t,e)),!0},this.Prolog=function(e){return this.visitOnly(e,[\"DefaultNamespaceDecl\",\"Setter\",\"NamespaceDecl\",\"Import\"]),n.index.forEach(function(e){if(e.name===\"VarDecl\")e.children.forEach(function(n){n.name===\"VarName\"&&p.apply(function(){var r=o.flatten(n),i=t.resolveQName(r,n.pos);t.addVariable(i,e.name,n.pos)})});else if(e.name===\"FunctionDecl\"){var n,r,i=[];e.children.forEach(function(e){e.name===\"EQName\"?(n=e,r=e.pos):e.name===\"ParamList\"&&e.children.forEach(function(e){e.name===\"Param\"&&i.push(o.flatten(e))})}),p.apply(function(){n=o.flatten(n),n=t.resolveQName(n,r),t.addFunction(n,r,i)})}}),this.visitOnly(e,[\"ContextItemDecl\",\"AnnotatedDecl\",\"OptionDecl\"]),!0},this.ModuleImport=function(e){return this.visitChildren(e,a.ModuleImport(p,t,e)),!0},this.SchemaImport=function(e){return this.visitChildren(e,a.SchemaImport(p,t,e)),!0},this.DefaultNamespaceDecl=function(e){return this.visitChildren(e,a.DefaultNamespaceDecl(p,t,e)),!0},this.NamespaceDecl=function(e){return this.visitChildren(e,a.NamespaceDecl(p,t,e)),!0};var g={};this.AnnotatedDecl=function(e){return g={},this.visitChildren(e,a.NamespaceDecl(p,t,e)),!0},this.CompatibilityAnnotation=function(){return g[\"http://www.w3.org/2012/xquery#updating\"]=[],!0},this.Annotation=function(e){return this.visitChildren(e,{EQName:function(e){var t=o.flatten(e);p.apply(function(){var n=d.resolveQName(t,e.pos);g[n.uri+\"#\"+n.name]=[]})}}),!0},this.VarDecl=function(e){try{var n=p.getFirstChild(e,\"VarName\"),r=o.flatten(n),i=d.resolveQName(r,n.pos),s=t.getVariable(i);s&&(s.annotations=g)}catch(u){}return this.visitOnly(e,[\"ExprSingle\",\"VarValue\",\"VarDefaultValue\"]),!0},this.FunctionDecl=function(e){var t=g[\"http://www.w3.org/2012/xquery#updating\"]!==undefined,n=f(e,[\"ReturnType\"])[0],r=f(e,[\"EQName\"])[0];!n&&!t&&h(\"W05\",\"Untyped return value\",r.pos);var i=!1;return e.children.forEach(function(e){if(e.name===\"TOKEN\"&&e.value===\"external\")return i=!0,!1}),i||(v(e.pos),this.visitChildren(e),m()),!0},this.VarRef=function(e){return this.visitChildren(e,a.VarRefHandler(p,d,e)),!0},this.Param=function(e){var t=f(e,[\"TypeDeclaration\"])[0];return t||h(\"W05\",\"Untyped function parameter\",e.pos),this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.InlineFunctionExpr=function(e){return v(e.pos),this.visitChildren(e),m(),!0};var y=[],b=function(e){v(e.pos),y.push(0),p.visitChildren(e);for(var t=1;t<=y[y.length-1];t++)m(e.pos);y.pop(),m()};this.StatementsAndOptionalExpr=function(e){return b(e),!0},this.StatementsAndExpr=function(e){return b(e),!0},this.BlockStatement=function(e){return b(e),!0},this.VarDeclStatement=function(e){v(e.pos),y[y.length-1]++,this.visitChildren(e,a.VarHandler(p,d,e))};var w=[];this.FLWORExpr=this.FLWORStatement=function(e){v(e.pos),w.push(0),this.visitChildren(e);for(var t=1;t<=w[w.length-1];t++)m(e.pos);return w.pop(),m(),!0},this.ForBinding=function(e){return this.visitOnly(e,[\"ExprSingle\",\"VarValue\",\"VarDefaultValue\"]),v(e.pos),w[w.length-1]++,this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.LetBinding=function(e){return this.visitOnly(e,[\"ExprSingle\",\"VarValue\",\"VarDefaultValue\"]),v(e.pos),w[w.length-1]++,this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.GroupingSpec=function(e){var t=!1;e.children.forEach(function(e){if(e.value===\":=\")return t=!0,!1});if(t){var n=e.children[0];return this.visitOnly(e,[\"ExprSingle\",\"VarValue\",\"VarDefaultValue\"]),v(e.pos),w[w.length-1]++,this.visitChildren(n,a.VarHandler(p,d,n)),!0}},this.TumblingWindowClause=function(e){return this.visitOnly(e,[\"ExprSingle\"]),v(e.pos),w[w.length-1]++,this.visitChildren(e,a.VarHandler(p,d,e)),this.visitOnly(e,[\"WindowStartCondition\",\"WindowEndCondition\"]),!0},this.WindowVars=function(e){return v(e.pos),w[w.length-1]++,this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.SlidingWindowClause=function(e){return this.visitOnly(e,[\"ExprSingle\",\"VarValue\",\"VarDefaultValue\"]),v(e.pos),w[w.length-1]++,this.visitChildren(e,a.VarHandler(p,d,e)),this.visitOnly(e,[\"WindowStartCondition\",\"WindowEndCondition\"]),!0},this.PositionalVar=function(e){return this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.PositionalVar=function(e){return this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.CurrentItem=function(e){return this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.PreviousItem=function(e){return this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.NextItem=function(e){return this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.CountClause=function(e){return v(e.pos),w[w.length-1]++,this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.CaseClause=function(e){return v(e.pos),this.visitChildren(e,a.VarHandler(p,d,e)),this.visitOnly(e,[\"ExprSingle\"]),m(),!0},this.TransformExpr=function(e){return v(e.pos),this.visitChildren(e),m(),!0},this.TransformSpec=function(e){return this.visitOnly(e,[\"ExprSingle\",\"VarValue\",\"VarDefaultValue\"]),this.visitChildren(e,a.VarHandler(p,d,e)),!0};var E=[];this.QuantifiedExpr=function(e){v(e.pos),E.push(0),this.visitChildren(e);for(var t=1;t<=E[E.length-1];t++)m(e.pos);return E.pop(),m(),!0},this.QuantifiedVarDecl=function(e){return this.visitOnly(e,[\"ExprSingle\"]),v(e.pos),E[E.length-1]++,this.visitChildren(e,a.VarHandler(p,d,e)),!0},this.FunctionCall=function(e){this.visitOnly(e,[\"ArgumentList\"]);var t=p.getFirstChild(e,\"EQName\"),n=o.flatten(t),r=f(e,[\"ArgumentList\",\"Argument\"]).length;return p.apply(function(){var i=d.resolveQName(n,e.pos);try{i.uri!==\"\"&&(d.root.namespaces[i.uri].used=!0)}catch(s){}d.addFunctionCall(i,r,t.pos)}),!0},this.TryClause=function(e){return v(e.pos),this.visitChildren(e),m(),!0},this.CatchClause=function(e){v(e.pos);var t=\"err\",n=\"http://www.w3.org/2005/xqt-errors\",r={sl:0,sc:0,el:0,ec:0};return d.addVariable({prefix:t,uri:n,name:\"code\"},\"CatchVar\",r),d.addVariable({prefix:t,uri:n,name:\"description\"},\"CatchVar\",r),d.addVariable({prefix:t,uri:n,name:\"value\"},\"CatchVar\",r),d.addVariable({prefix:t,uri:n,name:\"module\"},\"CatchVar\",r),d.addVariable({prefix:t,uri:n,name:\"line-number\"},\"CatchVar\",r),d.addVariable({prefix:t,uri:n,name:\"column-number\"},\"CatchVar\",r),d.addVariable({prefix:t,uri:n,name:\"additional\"},\"CatchVar\",r),this.visitChildren(e),m(),!0},this.Pragma=function(e){var n=o.flatten(f(e,[\"EQName\"])[0]);n=t.resolveQName(n,e);var r=o.flatten(f(e,[\"PragmaContents\"])[0]);if(n.name===\"xqlint\"&&n.uri===\"http://xqlint.io\"){v(e.pos);var i=r.match(/[a-zA-Z]+\\(([^)]+)\\)/g);return i.forEach(function(t){var n=t.substring(0,t.indexOf(\"(\")),r=t.substring(0,t.length-1).substring(t.indexOf(\"(\")+1).split(\",\").map(function(e){return e.trim()});n===\"varrefs\"&&r.forEach(function(t){var n=d.resolveQName(t.substring(1),e.pos);n.uri!==\"\"&&(d.root.namespaces[n.uri].used=!0),d.addVarRef(n,e.pos)})}),this.visitChildren(e),m(),!0}},this.visit=function(e){var t=e.name,n=!1;typeof this[t]==\"function\"&&(n=this[t](e)===!0),n||this.visitChildren(e)},this.visitChildren=function(e,t){for(var n=0;n<e.children.length;n++){var r=e.children[n];t!==undefined&&typeof t[r.name]==\"function\"?t[r.name](r):this.visit(r)}},this.visit(n),Object.keys(t.variables).forEach(function(e){!t.varRefs[e]&&(t.variables[e].annotations[\"http://www.w3.org/2005/xpath-functions#private\"]||t.moduleNamespace===\"\")&&t.variables[e].pos&&h(\"W03\",'Unused variable \"'+t.variables[e].qname.name+'\"',t.variables[e].pos)}),Object.keys(t.namespaces).forEach(function(e){var n=t.namespaces[e];n.used===undefined&&!n.override&&n.type===\"module\"&&h(\"W04\",'Unused module \"'+e+'\"',n.pos)})}},{\"../tree_ops\":11,\"./errors\":1,\"./handlers\":2,\"./static_context\":4}],6:[function(e,t,n){\"use strict\";function s(e,t,n){n=n||i;var r=[];for(var s=t-1;s>=0;s--){if(!n.test(e[s]))break;r.push(e[s])}return r.reverse().join(\"\")}function o(e,t){var n=0,r=e.length-1,i=Math.floor((r+n)/2);while(r>n&&i>=0&&e[i].indexOf(t)!==0)t<e[i]?r=i-1:t>e[i]&&(n=i+1),i=Math.floor((r+n)/2);while(i>0&&e[i-1].indexOf(t)===0)i--;return i>=0?i:0}var r=e(\"../tree_ops\").TreeOps,i=/[a-zA-Z_0-9\\$]/,u=/[a-zA-Z_0-9\\/\\.:\\-#]/,a=\"-._A-Za-z0-9:\\u00b7\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02ff\\u0300-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd\",f=\"[\"+a+\"]\",l=\"[\"+a+\"\\\\$]\",c=new RegExp(f),h=new RegExp(l),p={LetBinding:\"Let binding\",Param:\"Function parameter\",QuantifiedExpr:\"Quantified expression binding\",VarDeclStatement:\"Local variable\",ForBinding:\"For binding\",TumblingWindowClause:\"Tumbling window binding\",WindowVars:\"Window variable\",SlidingWindowClause:\"Sliding window binding\",PositionalVar:\"Positional variable\",CurrentItem:\"Current item\",PreviousItem:\"Previous item\",NextItem:\"Next item\",CountClause:\"Count binding\",GroupingVariable:\"Grouping variable\",VarDecl:\"Module variable\"},d=function(e,t){t.sort();var n=o(t,e),r=[];for(var i=n;i<t.length&&t[i].indexOf(e)===0;i++)r.push(t[i]);return r},v=function(e,t,n){var r=e.indexOf(\":\");if(r===-1){var i=[],s=n.getNamespaces();Object.keys(s).forEach(function(e){(s[e].type===\"module\"||e===\"http://www.w3.org/2005/xquery-local-functions\")&&i.push(s[e].prefix)});var o=d(e,i),u=function(e){return{name:e+\":\",value:e+\":\",meta:\"prefix\"}};return o.map(u)}return[]},m=function(e,t,n){var r=[],i={},s=n.getFunctions(),o=\"\",u=\"\",a=e,f=e.indexOf(\":\"),l=!1;if(f!==-1){u=e.substring(0,f),a=e.substring(f+1);var h=n.getNamespaceByPrefix(u);h&&(o=n.getNamespaceByPrefix(u).uri)}else l=!0,o=n.root.defaultFunctionNamespace;Object.keys(s).forEach(function(e){var t=s[e],u=e.substring(0,e.indexOf(\"#\")),a=e.substring(e.indexOf(\"#\")+1);a=a.substring(0,a.indexOf(\"#\"));if(u!==o)return;l||(a=n.getNamespaces()[u].prefix+\":\"+a),a+=\"(\";var f=a;f+=t.params.map(function(e,t){return\"${\"+(t+1)+\":\\\\\"+e.split(\" \")[0]+\"}\"}).join(\", \"),a+=t.params.join(\", \"),a+=\")\",f+=\")\",r.push(a),i[a]=f});var p=d(e,r),v=function(e){return{name:e,value:e,meta:\"function\",priority:4,identifierRegex:c,snippet:i[e]}};return p.map(v)},g=function(e,t,n){var r=\"\",i=\"\",s=e.indexOf(\":\");s!==-1&&(i=e.substring(0,s),r=n.getNamespaceByPrefix(i).uri);var o=n.getVariables(),u=[],a={};Object.keys(o).forEach(function(e){var t=e.indexOf(\"#\"),r=e.substring(0,t),i=e.substring(t+1);r!==\"\"?(u.push(n.getPrefixByNamespace(r)+\":\"+i),a[n.getPrefixByNamespace(r)+\":\"+i]=o[e].type):(u.push(i),a[i]=o[e].type)});var f=d(e,u),l=function(e){return{name:\"$\"+e,value:\"$\"+e,meta:p[a[e]],priority:4,identifierRegex:h}};return f.map(l)},y=function(e,t,n){var r=s(e,t.col,c),i=e.substring(0,t.col-(r.length===0?0:r.length)),o=i[i.length-1]===\"$\";return o?g(r,t,n):r!==\"\"?m(r,t,n).concat(v(r,t,n)):g(r,t,n).concat(m(r,t,n)).concat(v(r,t,n))},b=function(e,t,n){var r=s(e,t.col,u),i=d(r,n.getAvailableModuleNamespaces()),o=function(e){return{name:e,value:e,meta:\"module\",priority:4,identifierRegex:u}};return i.map(o)};n.complete=function(e,t,n,i){var s=e.split(\"\\n\")[i.line],o=r.findNode(t,i),u=r.findNode(n,i);return u=u?u:n,o&&o.name===\"URILiteral\"&&o.getParent&&o.getParent.name===\"ModuleImport\"?b(s,i,u):y(s,i,u)}},{\"../tree_ops\":11}],7:[function(e,t,n){n.StyleChecker=function(e,t){\"use strict\";var n=\"    \",r=[];this.getMarkers=function(){return r},this.WS=function(e){var t=e.value.split(\"\\n\");return t.forEach(function(i,s){var o=s===0,u=s===t.length-1;/\\r$/.test(i)&&r.push({pos:{sl:e.pos.sl+s,el:e.pos.sl+s,sc:i.length-1,ec:i.length},type:\"warning\",level:\"warning\",message:\"[SW01] Detected CRLF\"});var a=i.match(/\\t+/);a!==null&&r.push({pos:{sl:e.pos.sl+s,el:e.pos.sl+s,sc:a.index,ec:a.index+a[0].length},type:\"warning\",level:\"warning\",message:\"[SW02] Tabs detected\"});if(!o&&u){a=i.match(/^\\ +/);if(a!==null){var f=a[0].length%n.length;f!==0&&r.push({pos:{sl:e.pos.sl+s,el:e.pos.sl+s,sc:a.index,ec:a.index+a[0].length},type:\"warning\",level:\"warning\",message:\"[SW03] Unexcepted indentation of \"+a[0].length})}}}),!0},this.visit=function(e,t){var n=e.name,r=!1;typeof this[n]==\"function\"&&(r=this[n](e,t)===!0),r||this.visitChildren(e)},this.visitChildren=function(e,t){for(var n=0;n<e.children.length;n++){var r=e.children[n];t!==undefined&&typeof t[r.name]==\"function\"?t[r.name](r):this.visit(r)}},t.split(\"\\n\").forEach(function(e,t){var n=e.match(/\\ +$/);n&&r.push({pos:{sl:t,el:t,sc:n.index,ec:n.index+n[0].length},type:\"warning\",level:\"warning\",message:\"[SW04] Trailing whitespace\"})}),this.visit(e)}},{}],8:[function(e,t,n){n.JSONParseTreeHandler=function(e){\"use strict\";function f(e){return{name:e,children:[],getParent:null,pos:{sl:0,sc:0,el:0,ec:0}}}function l(e){var t=f(e);r===null?(r=t,r.index=[],i=t):(t.getParent=i,i.children.push(t),i=i.children[i.children.length-1])}function c(){if(i.children.length>0){var e=i.children[0],s=null;for(var o=i.children.length-1;o>=0;o--){s=i.children[o];if(s.pos.el!==0||s.pos.ec!==0)break}i.pos.sl=e.pos.sl,i.pos.sc=e.pos.sc,i.pos.el=s.pos.el,i.pos.ec=s.pos.ec}i.name===\"FunctionName\"&&(i.name=\"EQName\"),i.name===\"EQName\"&&i.value===undefined&&(i.value=i.children[0].value,i.children.pop()),t.indexOf(i.name)!==-1&&r.index.push(i),i.getParent!==null&&(i=i.getParent);if(i.children.length>0){var u=i.children[i.children.length-1];u.children.length===1&&n.indexOf(u.name)!==-1&&(i.children[i.children.length-1]=u.children[0])}}function h(e,t,n){var r=n-o;i.value=s.substring(0,r),s=s.substring(r),o=n;var f=a,l=u,c=f+i.value.split(\"\\n\").length-1,h=i.value.lastIndexOf(\"\\n\"),p=h===-1?l+i.value.length:i.value.substring(h+1).length;a=c,u=p,i.pos.sl=f,i.pos.sc=l,i.pos.el=c,i.pos.ec=p}var t=[\"VarDecl\",\"FunctionDecl\"],n=[\"OrExpr\",\"AndExpr\",\"ComparisonExpr\",\"StringConcatExpr\",\"RangeExpr\",\"UnionExpr\",\"IntersectExceptExpr\",\"InstanceofExpr\",\"TreatExpr\",\"CastableExpr\",\"CastExpr\",\"UnaryExpr\",\"ValueExpr\",\"FTContainsExpr\",\"SimpleMapExpr\",\"PathExpr\",\"RelativePathExpr\",\"PostfixExpr\",\"StepExpr\"],r=null,i=null,s=e,o=0,u=0,a=0;this.closeParseTree=function(){while(i.getParent!==null)c();c()},this.peek=function(){return i},this.getParseTree=function(){return r},this.reset=function(){},this.startNonterminal=function(e,t){l(e,t)},this.endNonterminal=function(){c()},this.terminal=function(e,t,n){e=e.substring(0,1)===\"'\"&&e.substring(e.length-1)===\"'\"?\"TOKEN\":e,l(e,t),h(i,t,n),c()},this.whitespace=function(e,t){var n=\"WS\";l(n,e),h(i,e,t),c()}}},{}],9:[function(e,t,n){var r=n.JSONiqParser=function i(e,t){function r(e,t){ic=t,ac=e,fc=e.length,s(0,0,0)}function s(e,t,n){Xl=t,Vl=t,$l=e,Jl=t,Kl=n,Ql=0,cc=n,ec=-1,sc={},ic.reset(ac)}function o(){ic.startNonterminal(\"Module\",Vl);switch($l){case 170:ql(168);break;default:Wl=$l}(Wl==64682||Wl==137898)&&u(),Il(278);switch($l){case 185:ql(146);break;default:Wl=$l}switch(Wl){case 95929:jl(),a();break;default:jl(),Za()}ic.endNonterminal(\"Module\",Vl)}function u(){ic.startNonterminal(\"VersionDecl\",Vl),Pl(170),Il(120);switch($l){case 126:Pl(126),Il(17),Pl(11);break;default:Pl(269),Il(17),Pl(11),Il(113),$l==126&&(Pl(126),Il(17),Pl(11))}Il(29),jl(),c(),ic.endNonterminal(\"VersionDecl\",Vl)}function a(){ic.startNonterminal(\"LibraryModule\",Vl),f(),Il(142),jl(),l(),ic.endNonterminal(\"LibraryModule\",Vl)}function f(){ic.startNonterminal(\"ModuleDecl\",Vl),Pl(185),Il(64),Pl(187),Il(240),jl(),Ga(),Il(30),Pl(61),Il(15),Pl(7),Il(29),jl(),c(),ic.endNonterminal(\"ModuleDecl\",Vl)}function l(){ic.startNonterminal(\"Prolog\",Vl);for(;;){Il(278);switch($l){case 109:ql(207);break;case 155:ql(169);break;default:Wl=$l}if(Wl!=43117&&Wl!=44141&&Wl!=50797&&Wl!=53869&&Wl!=54893&&Wl!=56429&&Wl!=73325&&Wl!=94875&&Wl!=95853&&Wl!=106093&&Wl!=115821&&Wl!=117403)break;switch($l){case 109:ql(201);break;default:Wl=$l}if(Wl==56429){Wl=uc(0,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{_(),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(0,Vl,Wl)}}switch(Wl){case-1:jl(),M();break;case 95853:jl(),O();break;case 155:jl(),C();break;case 73325:jl(),D();break;default:jl(),h()}Il(29),jl(),c()}for(;;){Il(278);switch($l){case 109:ql(202);break;default:Wl=$l}if(Wl!=17005&&Wl!=49261&&Wl!=52333&&Wl!=75373&&Wl!=80493&&Wl!=83565&&Wl!=104045&&Wl!=134765&&Wl!=137325)break;switch($l){case 109:ql(197);break;default:Wl=$l}switch(Wl){case 52333:jl(),R();break;case 104045:jl(),Q();break;default:jl(),P()}Il(29),jl(),c()}ic.endNonterminal(\"Prolog\",Vl)}function c(){ic.startNonterminal(\"Separator\",Vl),Pl(54),ic.endNonterminal(\"Separator\",Vl)}function h(){ic.startNonterminal(\"Setter\",Vl);switch($l){case 109:ql(194);break;default:Wl=$l}if(Wl==56429){Wl=uc(1,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{v(),Wl=-2}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),w(),Wl=-6}catch(f){Wl=-9}}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(1,Vl,Wl)}}switch(Wl){case 44141:p();break;case-2:d();break;case 43117:m();break;case 50797:g();break;case 106093:y();break;case-6:b();break;case 115821:Io();break;case 53869:E();break;default:T()}ic.endNonterminal(\"Setter\",Vl)}function p(){ic.startNonterminal(\"BoundarySpaceDecl\",Vl),Pl(109),Il(36),Pl(86),Il(137);switch($l){case 218:Pl(218);break;default:Pl(246)}ic.endNonterminal(\"BoundarySpaceDecl\",Vl)}function d(){ic.startNonterminal(\"DefaultCollationDecl\",Vl),Pl(109),Il(49),Pl(110),Il(41),Pl(95),Il(15),Pl(7),ic.endNonterminal(\"DefaultCollationDecl\",Vl)}function v(){Hl(109),Il(49),Hl(110),Il(41),Hl(95),Il(15),Hl(7)}function m(){ic.startNonterminal(\"BaseURIDecl\",Vl),Pl(109),Il(35),Pl(84),Il(15),Pl(7),ic.endNonterminal(\"BaseURIDecl\",Vl)}function g(){ic.startNonterminal(\"ConstructionDecl\",Vl),Pl(109),Il(44),Pl(99),Il(137);switch($l){case 246:Pl(246);break;default:Pl(218)}ic.endNonterminal(\"ConstructionDecl\",Vl)}function y(){ic.startNonterminal(\"OrderingModeDecl\",Vl),Pl(109),Il(71),Pl(207),Il(135);switch($l){case 206:Pl(206);break;default:Pl(262)}ic.endNonterminal(\"OrderingModeDecl\",Vl)}function b(){ic.startNonterminal(\"EmptyOrderDecl\",Vl),Pl(109),Il(49),Pl(110),Il(70),Pl(205),Il(52),Pl(124),Il(125);switch($l){case 149:Pl(149);break;default:Pl(176)}ic.endNonterminal(\"EmptyOrderDecl\",Vl)}function w(){Hl(109),Il(49),Hl(110),Il(70),Hl(205),Il(52),Hl(124),Il(125);switch($l){case 149:Hl(149);break;default:Hl(176)}}function E(){ic.startNonterminal(\"CopyNamespacesDecl\",Vl),Pl(109),Il(47),Pl(105),Il(132),jl(),S(),Il(25),Pl(42),Il(127),jl(),x(),ic.endNonterminal(\"CopyNamespacesDecl\",Vl)}function S(){ic.startNonterminal(\"PreserveMode\",Vl);switch($l){case 218:Pl(218);break;default:Pl(193)}ic.endNonterminal(\"PreserveMode\",Vl)}function x(){ic.startNonterminal(\"InheritMode\",Vl);switch($l){case 159:Pl(159);break;default:Pl(192)}ic.endNonterminal(\"InheritMode\",Vl)}function T(){ic.startNonterminal(\"DecimalFormatDecl\",Vl),Pl(109),Il(118);switch($l){case 107:Pl(107),Il(246),jl(),$a();break;default:Pl(110),Il(48),Pl(107)}for(;;){Il(204);if($l==54)break;jl(),N(),Il(30),Pl(61),Il(17),Pl(11)}ic.endNonterminal(\"DecimalFormatDecl\",Vl)}function N(){ic.startNonterminal(\"DFPropertyName\",Vl);switch($l){case 108:Pl(108);break;case 151:Pl(151);break;case 158:Pl(158);break;case 182:Pl(182);break;case 68:Pl(68);break;case 213:Pl(213);break;case 212:Pl(212);break;case 280:Pl(280);break;case 117:Pl(117);break;default:Pl(211)}ic.endNonterminal(\"DFPropertyName\",Vl)}function C(){ic.startNonterminal(\"Import\",Vl);switch($l){case 155:ql(130);break;default:Wl=$l}switch(Wl){case 117403:k();break;default:A()}ic.endNonterminal(\"Import\",Vl)}function k(){ic.startNonterminal(\"SchemaImport\",Vl),Pl(155),Il(76),Pl(229),Il(141),$l!=7&&(jl(),L()),Il(15),Pl(7),Il(112);if($l==82){Pl(82),Il(15),Pl(7);for(;;){Il(107);if($l!=42)break;Pl(42),Il(15),Pl(7)}}ic.endNonterminal(\"SchemaImport\",Vl)}function L(){ic.startNonterminal(\"SchemaPrefix\",Vl);switch($l){case 187:Pl(187),Il(240),jl(),Ga(),Il(30),Pl(61);break;default:Pl(110),Il(50),Pl(122),Il(64),Pl(187)}ic.endNonterminal(\"SchemaPrefix\",Vl)}function A(){ic.startNonterminal(\"ModuleImport\",Vl),Pl(155),Il(63),Pl(185),Il(93),$l==187&&(Pl(187),Il(240),jl(),Ga(),Il(30),Pl(61)),Il(15),Pl(7),Il(112);if($l==82){Pl(82),Il(15),Pl(7);for(;;){Il(107);if($l!=42)break;Pl(42),Il(15),Pl(7)}}ic.endNonterminal(\"ModuleImport\",Vl)}function O(){ic.startNonterminal(\"NamespaceDecl\",Vl),Pl(109),Il(64),Pl(187),Il(240),jl(),Ga(),Il(30),Pl(61),Il(15),Pl(7),ic.endNonterminal(\"NamespaceDecl\",Vl)}function M(){ic.startNonterminal(\"DefaultNamespaceDecl\",Vl),Pl(109),Il(49),Pl(110),Il(119);switch($l){case 122:Pl(122);break;default:Pl(147)}Il(64),Pl(187),Il(15),Pl(7),ic.endNonterminal(\"DefaultNamespaceDecl\",Vl)}function _(){Hl(109),Il(49),Hl(110),Il(119);switch($l){case 122:Hl(122);break;default:Hl(147)}Il(64),Hl(187),Il(15),Hl(7)}function D(){ic.startNonterminal(\"FTOptionDecl\",Vl),Pl(109),Il(55),Pl(143),Il(84),jl(),Qu(),ic.endNonterminal(\"FTOptionDecl\",Vl)}function P(){ic.startNonterminal(\"AnnotatedDecl\",Vl),Pl(109);for(;;){Il(192);if($l!=33&&$l!=263)break;switch($l){case 263:jl(),H();break;default:jl(),B()}}switch($l){case 268:jl(),F();break;case 147:jl(),_l();break;case 96:jl(),Ca();break;case 157:jl(),Ha();break;default:jl(),Ba()}ic.endNonterminal(\"AnnotatedDecl\",Vl)}function H(){ic.startNonterminal(\"CompatibilityAnnotation\",Vl),Pl(263),ic.endNonterminal(\"CompatibilityAnnotation\",Vl)}function B(){ic.startNonterminal(\"Annotation\",Vl),Pl(33),Il(246),jl(),$a(),Il(193);if($l==35){Pl(35),Il(190),jl(),di();for(;;){Il(105);if($l!=42)break;Pl(42),Il(190),jl(),di()}Pl(38)}ic.endNonterminal(\"Annotation\",Vl)}function j(){Hl(33),Il(246),Ja(),Il(193);if($l==35){Hl(35),Il(190),vi();for(;;){Il(105);if($l!=42)break;Hl(42),Il(190),vi()}Hl(38)}}function F(){ic.startNonterminal(\"VarDecl\",Vl),Pl(268),Il(21),Pl(31),Il(246),jl(),Ti(),Il(157),$l==80&&(jl(),Cs()),Il(110);switch($l){case 53:Pl(53),Il(267),jl(),I();break;default:Pl(134),Il(108),$l==53&&(Pl(53),Il(267),jl(),q())}ic.endNonterminal(\"VarDecl\",Vl)}function I(){ic.startNonterminal(\"VarValue\",Vl),Wf(),ic.endNonterminal(\"VarValue\",Vl)}function q(){ic.startNonterminal(\"VarDefaultValue\",Vl),Wf(),ic.endNonterminal(\"VarDefaultValue\",Vl)}function R(){ic.startNonterminal(\"ContextItemDecl\",Vl),Pl(109),Il(46),Pl(102),Il(58),Pl(167),Il(157),$l==80&&(Pl(80),Il(254),jl(),_s()),Il(110);switch($l){case 53:Pl(53),Il(267),jl(),I();break;default:Pl(134),Il(108),$l==53&&(Pl(53),Il(267),jl(),q())}ic.endNonterminal(\"ContextItemDecl\",Vl)}function U(){ic.startNonterminal(\"ParamList\",Vl),W();for(;;){Il(105);if($l!=42)break;Pl(42),Il(21),jl(),W()}ic.endNonterminal(\"ParamList\",Vl)}function z(){X();for(;;){Il(105);if($l!=42)break;Hl(42),Il(21),X()}}function W(){ic.startNonterminal(\"Param\",Vl),Pl(31),Il(246),jl(),$a(),Il(153),$l==80&&(jl(),Cs()),ic.endNonterminal(\"Param\",Vl)}function X(){Hl(31),Il(246),Ja(),Il(153),$l==80&&ks()}function V(){ic.startNonterminal(\"FunctionBody\",Vl),J(),ic.endNonterminal(\"FunctionBody\",Vl)}function $(){K()}function J(){ic.startNonterminal(\"EnclosedExpr\",Vl),Pl(281),Il(267),jl(),G(),Pl(287),ic.endNonterminal(\"EnclosedExpr\",Vl)}function K(){Hl(281),Il(267),Y(),Hl(287)}function Q(){ic.startNonterminal(\"OptionDecl\",Vl),Pl(109),Il(69),Pl(203),Il(246),jl(),$a(),Il(17),Pl(11),ic.endNonterminal(\"OptionDecl\",Vl)}function G(){ic.startNonterminal(\"Expr\",Vl),Wf();for(;;){if($l!=42)break;Pl(42),Il(267),jl(),Wf()}ic.endNonterminal(\"Expr\",Vl)}function Y(){Xf();for(;;){if($l!=42)break;Hl(42),Il(267),Xf()}}function Z(){ic.startNonterminal(\"FLWORExpr\",Vl),tt();for(;;){Il(195);if($l==224)break;jl(),rt()}jl(),rn(),ic.endNonterminal(\"FLWORExpr\",Vl)}function et(){nt();for(;;){Il(195);if($l==224)break;it()}sn()}function tt(){ic.startNonterminal(\"InitialClause\",Vl);switch($l){case 139:ql(151);break;default:Wl=$l}switch(Wl){case 16011:st();break;case 177:vt();break;default:bt()}ic.endNonterminal(\"InitialClause\",Vl)}function nt(){switch($l){case 139:ql(151);break;default:Wl=$l}switch(Wl){case 16011:ot();break;case 177:mt();break;default:wt()}}function rt(){ic.startNonterminal(\"IntermediateClause\",Vl);switch($l){case 139:case 177:tt();break;case 272:It();break;case 150:Rt();break;case 106:jt();break;default:Kt()}ic.endNonterminal(\"IntermediateClause\",Vl)}function it(){switch($l){case 139:case 177:nt();break;case 272:qt();break;case 150:Ut();break;case 106:Ft();break;default:Qt()}}function st(){ic.startNonterminal(\"ForClause\",Vl),Pl(139),Il(21),jl(),ut();for(;;){if($l!=42)break;Pl(42),Il(21),jl(),ut()}ic.endNonterminal(\"ForClause\",Vl)}function ot(){Hl(139),Il(21),at();for(;;){if($l!=42)break;Hl(42),Il(21),at()}}function ut(){ic.startNonterminal(\"ForBinding\",Vl),Pl(31),Il(246),jl(),Ti(),Il(182),$l==80&&(jl(),Cs()),Il(173),$l==73&&(jl(),ft()),Il(160),$l==82&&(jl(),ct()),Il(126),$l==232&&(jl(),pt()),Il(56),Pl(156),Il(267),jl(),Wf(),ic.endNonterminal(\"ForBinding\",Vl)}function at(){Hl(31),Il(246),Ni(),Il(182),$l==80&&ks(),Il(173),$l==73&&lt(),Il(160),$l==82&&ht(),Il(126),$l==232&&dt(),Il(56),Hl(156),Il(267),Xf()}function ft(){ic.startNonterminal(\"AllowingEmpty\",Vl),Pl(73),Il(52),Pl(124),ic.endNonterminal(\"AllowingEmpty\",Vl)}function lt(){Hl(73),Il(52),Hl(124)}function ct(){ic.startNonterminal(\"PositionalVar\",Vl),Pl(82),Il(21),Pl(31),Il(246),jl(),Ti(),ic.endNonterminal(\"PositionalVar\",Vl)}function ht(){Hl(82),Il(21),Hl(31),Il(246),Ni()}function pt(){ic.startNonterminal(\"FTScoreVar\",Vl),Pl(232),Il(21),Pl(31),Il(246),jl(),Ti(),ic.endNonterminal(\"FTScoreVar\",Vl)}function dt(){Hl(232),Il(21),Hl(31),Il(246),Ni()}function vt(){ic.startNonterminal(\"LetClause\",Vl),Pl(177),Il(100),jl(),gt();for(;;){if($l!=42)break;Pl(42),Il(100),jl(),gt()}ic.endNonterminal(\"LetClause\",Vl)}function mt(){Hl(177),Il(100),yt();for(;;){if($l!=42)break;Hl(42),Il(100),yt()}}function gt(){ic.startNonterminal(\"LetBinding\",Vl);switch($l){case 31:Pl(31),Il(246),jl(),Ti(),Il(109),$l==80&&(jl(),Cs());break;default:pt()}Il(28),Pl(53),Il(267),jl(),Wf(),ic.endNonterminal(\"LetBinding\",Vl)}function yt(){switch($l){case 31:Hl(31),Il(246),Ni(),Il(109),$l==80&&ks();break;default:dt()}Il(28),Hl(53),Il(267),Xf()}function bt(){ic.startNonterminal(\"WindowClause\",Vl),Pl(139),Il(139);switch($l){case 257:jl(),Et();break;default:jl(),xt()}ic.endNonterminal(\"WindowClause\",Vl)}function wt(){Hl(139),Il(139);switch($l){case 257:St();break;default:Tt()}}function Et(){ic.startNonterminal(\"TumblingWindowClause\",Vl),Pl(257),Il(88),Pl(275),Il(21),Pl(31),Il(246),jl(),Ti(),Il(114),$l==80&&(jl(),Cs()),Il(56),Pl(156),Il(267),jl(),Wf(),jl(),Nt();if($l==127||$l==202)jl(),kt();ic.endNonterminal(\"TumblingWindowClause\",Vl)}function St(){Hl(257),Il(88),Hl(275),Il(21),Hl(31),Il(246),Ni(),Il(114),$l==80&&ks(),Il(56),Hl(156),Il(267),Xf(),Ct(),($l==127||$l==202)&&Lt()}function xt(){ic.startNonterminal(\"SlidingWindowClause\",Vl),Pl(239),Il(88),Pl(275),Il(21),Pl(31),Il(246),jl(),Ti(),Il(114),$l==80&&(jl(),Cs()),Il(56),Pl(156),Il(267),jl(),Wf(),jl(),Nt(),jl(),kt(),ic.endNonterminal(\"SlidingWindowClause\",Vl)}function Tt(){Hl(239),Il(88),Hl(275),Il(21),Hl(31),Il(246),Ni(),Il(114),$l==80&&ks(),Il(56),Hl(156),Il(267),Xf(),Ct(),Lt()}function Nt(){ic.startNonterminal(\"WindowStartCondition\",Vl),Pl(242),Il(181),jl(),At(),Il(86),Pl(271),Il(267),jl(),Wf(),ic.endNonterminal(\"WindowStartCondition\",Vl)}function Ct(){Hl(242),Il(181),Ot(),Il(86),Hl(271),Il(267),Xf()}function kt(){ic.startNonterminal(\"WindowEndCondition\",Vl),$l==202&&Pl(202),Il(53),Pl(127),Il(181),jl(),At(),Il(86),Pl(271),Il(267),jl(),Wf(),ic.endNonterminal(\"WindowEndCondition\",Vl)}function Lt(){$l==202&&Hl(202),Il(53),Hl(127),Il(181),Ot(),Il(86),Hl(271),Il(267),Xf()}function At(){ic.startNonterminal(\"WindowVars\",Vl),$l==31&&(Pl(31),Il(246),jl(),Mt()),Il(174),$l==82&&(jl(),ct()),Il(163),$l==219&&(Pl(219),Il(21),Pl(31),Il(246),jl(),Dt()),Il(131),$l==190&&(Pl(190),Il(21),Pl(31),Il(246),jl(),Ht()),ic.endNonterminal(\"WindowVars\",Vl)}function Ot(){$l==31&&(Hl(31),Il(246),_t()),Il(174),$l==82&&ht(),Il(163),$l==219&&(Hl(219),Il(21),Hl(31),Il(246),Pt()),Il(131),$l==190&&(Hl(190),Il(21),Hl(31),Il(246),Bt())}function Mt(){ic.startNonterminal(\"CurrentItem\",Vl),$a(),ic.endNonterminal(\"CurrentItem\",Vl)}function _t(){Ja()}function Dt(){ic.startNonterminal(\"PreviousItem\",Vl),$a(),ic.endNonterminal(\"PreviousItem\",Vl)}function Pt(){Ja()}function Ht(){ic.startNonterminal(\"NextItem\",Vl),$a(),ic.endNonterminal(\"NextItem\",Vl)}function Bt(){Ja()}function jt(){ic.startNonterminal(\"CountClause\",Vl),Pl(106),Il(21),Pl(31),Il(246),jl(),Ti(),ic.endNonterminal(\"CountClause\",Vl)}function Ft(){Hl(106),Il(21),Hl(31),Il(246),Ni()}function It(){ic.startNonterminal(\"WhereClause\",Vl),Pl(272),Il(267),jl(),Wf(),ic.endNonterminal(\"WhereClause\",Vl)}function qt(){Hl(272),Il(267),Xf()}function Rt(){ic.startNonterminal(\"GroupByClause\",Vl),Pl(150),Il(37),Pl(88),Il(267),jl(),zt(),ic.endNonterminal(\"GroupByClause\",Vl)}function Ut(){Hl(150),Il(37),Hl(88),Il(267),Wt()}function zt(){ic.startNonterminal(\"GroupingSpecList\",Vl),Xt();for(;;){Il(198);if($l!=42)break;Pl(42),Il(267),jl(),Xt()}ic.endNonterminal(\"GroupingSpecList\",Vl)}function Wt(){Vt();for(;;){Il(198);if($l!=42)break;Hl(42),Il(267),Vt()}}function Xt(){ic.startNonterminal(\"GroupingSpec\",Vl);switch($l){case 31:ql(246);break;default:Wl=$l}if(Wl==3103||Wl==36383||Wl==37407||Wl==37919||Wl==38431||Wl==38943||Wl==39967||Wl==40479||Wl==40991||Wl==41503||Wl==42015||Wl==42527||Wl==43039||Wl==43551||Wl==44063||Wl==44575||Wl==45599||Wl==46111||Wl==46623||Wl==47135||Wl==48159||Wl==48671||Wl==49695||Wl==50207||Wl==50719||Wl==52255||Wl==52767||Wl==53279||Wl==53791||Wl==54303||Wl==54815||Wl==55839||Wl==56351||Wl==56863||Wl==57375||Wl==57887||Wl==58399||Wl==60959||Wl==61471||Wl==61983||Wl==62495||Wl==63007||Wl==63519||Wl==64031||Wl==64543||Wl==65055||Wl==66079||Wl==66591||Wl==67615||Wl==68127||Wl==68639||Wl==69151||Wl==69663||Wl==70175||Wl==70687||Wl==71199||Wl==72735||Wl==73247||Wl==75295||Wl==75807||Wl==76831||Wl==77855||Wl==78367||Wl==78879||Wl==79391||Wl==79903||Wl==80415||Wl==82463||Wl==82975||Wl==83487||Wl==83999||Wl==84511||Wl==85023||Wl==85535||Wl==86047||Wl==86559||Wl==87071||Wl==88607||Wl==89119||Wl==89631||Wl==90655||Wl==91679||Wl==92703||Wl==93727||Wl==94239||Wl==94751||Wl==95775||Wl==96287||Wl==96799||Wl==99359||Wl==99871||Wl==100895||Wl==101407||Wl==103455||Wl==103967||Wl==104479||Wl==104991||Wl==105503||Wl==106015||Wl==107551||Wl==110623||Wl==111135||Wl==112671||Wl==113695||Wl==114207||Wl==114719||Wl==115231||Wl==115743||Wl==116767||Wl==117279||Wl==117791||Wl==118303||Wl==118815||Wl==119327||Wl==119839||Wl==122399||Wl==122911||Wl==123423||Wl==123935||Wl==125471||Wl==126495||Wl==127007||Wl==127519||Wl==129567||Wl==130079||Wl==130591||Wl==131103||Wl==131615||Wl==132127||Wl==132639||Wl==133151||Wl==134175||Wl==134687||Wl==136223||Wl==136735||Wl==137247||Wl==137759||Wl==139295||Wl==139807||Wl==141343){Wl=uc(2,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Jt(),Il(206);if($l==53||$l==80)$l==80&&ks(),Il(28),Hl(53),Il(267),Xf();$l==95&&(Hl(95),Il(15),Hl(7)),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(2,Vl,Wl)}}switch(Wl){case-1:$t(),Il(206);if($l==53||$l==80)$l==80&&(jl(),Cs()),Il(28),Pl(53),Il(267),jl(),Wf();$l==95&&(Pl(95),Il(15),Pl(7));break;default:Wf()}ic.endNonterminal(\"GroupingSpec\",Vl)}function Vt(){switch($l){case 31:ql(246);break;default:Wl=$l}if(Wl==3103||Wl==36383||Wl==37407||Wl==37919||Wl==38431||Wl==38943||Wl==39967||Wl==40479||Wl==40991||Wl==41503||Wl==42015||Wl==42527||Wl==43039||Wl==43551||Wl==44063||Wl==44575||Wl==45599||Wl==46111||Wl==46623||Wl==47135||Wl==48159||Wl==48671||Wl==49695||Wl==50207||Wl==50719||Wl==52255||Wl==52767||Wl==53279||Wl==53791||Wl==54303||Wl==54815||Wl==55839||Wl==56351||Wl==56863||Wl==57375||Wl==57887||Wl==58399||Wl==60959||Wl==61471||Wl==61983||Wl==62495||Wl==63007||Wl==63519||Wl==64031||Wl==64543||Wl==65055||Wl==66079||Wl==66591||Wl==67615||Wl==68127||Wl==68639||Wl==69151||Wl==69663||Wl==70175||Wl==70687||Wl==71199||Wl==72735||Wl==73247||Wl==75295||Wl==75807||Wl==76831||Wl==77855||Wl==78367||Wl==78879||Wl==79391||Wl==79903||Wl==80415||Wl==82463||Wl==82975||Wl==83487||Wl==83999||Wl==84511||Wl==85023||Wl==85535||Wl==86047||Wl==86559||Wl==87071||Wl==88607||Wl==89119||Wl==89631||Wl==90655||Wl==91679||Wl==92703||Wl==93727||Wl==94239||Wl==94751||Wl==95775||Wl==96287||Wl==96799||Wl==99359||Wl==99871||Wl==100895||Wl==101407||Wl==103455||Wl==103967||Wl==104479||Wl==104991||Wl==105503||Wl==106015||Wl==107551||Wl==110623||Wl==111135||Wl==112671||Wl==113695||Wl==114207||Wl==114719||Wl==115231||Wl==115743||Wl==116767||Wl==117279||Wl==117791||Wl==118303||Wl==118815||Wl==119327||Wl==119839||Wl==122399||Wl==122911||Wl==123423||Wl==123935||Wl==125471||Wl==126495||Wl==127007||Wl==127519||Wl==129567||Wl==130079||Wl==130591||Wl==131103||Wl==131615||Wl==132127||Wl==132639||Wl==133151||Wl==134175||Wl==134687||Wl==136223||Wl==136735||Wl==137247||Wl==137759||Wl==139295||Wl==139807||Wl==141343){Wl=uc(2,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Jt(),Il(206);if($l==53||$l==80)$l==80&&ks(),Il(28),Hl(53),Il(267),Xf();$l==95&&(Hl(95),Il(15),Hl(7)),oc(2,t,-1),Wl=-3}catch(a){Wl=-2,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(2,t,-2)}}}switch(Wl){case-1:Jt(),Il(206);if($l==53||$l==80)$l==80&&ks(),Il(28),Hl(53),Il(267),Xf();$l==95&&(Hl(95),Il(15),Hl(7));break;case-3:break;default:Xf()}}function $t(){ic.startNonterminal(\"GroupingVariable\",Vl),Pl(31),Il(246),jl(),Ti(),ic.endNonterminal(\"GroupingVariable\",Vl)}function Jt(){Hl(31),Il(246),Ni()}function Kt(){ic.startNonterminal(\"OrderByClause\",Vl);switch($l){case 205:Pl(205),Il(37),Pl(88);break;default:Pl(241),Il(70),Pl(205),Il(37),Pl(88)}Il(267),jl(),Gt(),ic.endNonterminal(\"OrderByClause\",Vl)}function Qt(){switch($l){case 205:Hl(205),Il(37),Hl(88);break;default:Hl(241),Il(70),Hl(205),Il(37),Hl(88)}Il(267),Yt()}function Gt(){ic.startNonterminal(\"OrderSpecList\",Vl),Zt();for(;;){Il(198);if($l!=42)break;Pl(42),Il(267),jl(),Zt()}ic.endNonterminal(\"OrderSpecList\",Vl)}function Yt(){en();for(;;){Il(198);if($l!=42)break;Hl(42),Il(267),en()}}function Zt(){ic.startNonterminal(\"OrderSpec\",Vl),Wf(),jl(),tn(),ic.endNonterminal(\"OrderSpec\",Vl)}function en(){Xf(),nn()}function tn(){ic.startNonterminal(\"OrderModifier\",Vl);if($l==81||$l==114)switch($l){case 81:Pl(81);break;default:Pl(114)}Il(203);if($l==124){Pl(124),Il(125);switch($l){case 149:Pl(149);break;default:Pl(176)}}Il(199),$l==95&&(Pl(95),Il(15),Pl(7)),ic.endNonterminal(\"OrderModifier\",Vl)}function nn(){if($l==81||$l==114)switch($l){case 81:Hl(81);break;default:Hl(114)}Il(203);if($l==124){Hl(124),Il(125);switch($l){case 149:Hl(149);break;default:Hl(176)}}Il(199),$l==95&&(Hl(95),Il(15),Hl(7))}function rn(){ic.startNonterminal(\"ReturnClause\",Vl),Pl(224),Il(267),jl(),Wf(),ic.endNonterminal(\"ReturnClause\",Vl)}function sn(){Hl(224),Il(267),Xf()}function on(){ic.startNonterminal(\"QuantifiedExpr\",Vl);switch($l){case 240:Pl(240);break;default:Pl(130)}Il(21),jl(),an();for(;;){if($l!=42)break;Pl(42),Il(21),jl(),an()}Pl(228),Il(267),jl(),Wf(),ic.endNonterminal(\"QuantifiedExpr\",Vl)}function un(){switch($l){case 240:Hl(240);break;default:Hl(130)}Il(21),fn();for(;;){if($l!=42)break;Hl(42),Il(21),fn()}Hl(228),Il(267),Xf()}function an(){ic.startNonterminal(\"QuantifiedVarDecl\",Vl),Pl(31),Il(246),jl(),Ti(),Il(114),$l==80&&(jl(),Cs()),Il(56),Pl(156),Il(267),jl(),Wf(),ic.endNonterminal(\"QuantifiedVarDecl\",Vl)}function fn(){Hl(31),Il(246),Ni(),Il(114),$l==80&&ks(),Il(56),Hl(156),Il(267),Xf()}function ln(){ic.startNonterminal(\"SwitchExpr\",Vl),Pl(248),Il(22),Pl(35),Il(267),jl(),G(),Pl(38);for(;;){Il(38),jl(),hn();if($l!=89)break}Pl(110),Il(73),Pl(224),Il(267),jl(),Wf(),ic.endNonterminal(\"SwitchExpr\",Vl)}function cn(){Hl(248),Il(22),Hl(35),Il(267),Y(),Hl(38);for(;;){Il(38),pn();if($l!=89)break}Hl(110),Il(73),Hl(224),Il(267),Xf()}function hn(){ic.startNonterminal(\"SwitchCaseClause\",Vl);for(;;){Pl(89),Il(267),jl(),dn();if($l!=89)break}Pl(224),Il(267),jl(),Wf(),ic.endNonterminal(\"SwitchCaseClause\",Vl)}function pn(){for(;;){Hl(89),Il(267),vn();if($l!=89)break}Hl(224),Il(267),Xf()}function dn(){ic.startNonterminal(\"SwitchCaseOperand\",Vl),Wf(),ic.endNonterminal(\"SwitchCaseOperand\",Vl)}function vn(){Xf()}function mn(){ic.startNonterminal(\"TypeswitchExpr\",Vl),Pl(259),Il(22),Pl(35),Il(267),jl(),G(),Pl(38);for(;;){Il(38),jl(),yn();if($l!=89)break}Pl(110),Il(99),$l==31&&(Pl(31),Il(246),jl(),Ti()),Il(73),Pl(224),Il(267),jl(),Wf(),ic.endNonterminal(\"TypeswitchExpr\",Vl)}function gn(){Hl(259),Il(22),Hl(35),Il(267),Y(),Hl(38);for(;;){Il(38),bn();if($l!=89)break}Hl(110),Il(99),$l==31&&(Hl(31),Il(246),Ni()),Il(73),Hl(224),Il(267),Xf()}function yn(){ic.startNonterminal(\"CaseClause\",Vl),Pl(89),Il(258),$l==31&&(Pl(31),Il(246),jl(),Ti(),Il(33),Pl(80)),Il(254),jl(),wn(),Pl(224),Il(267),jl(),Wf(),ic.endNonterminal(\"CaseClause\",Vl)}function bn(){Hl(89),Il(258),$l==31&&(Hl(31),Il(246),Ni(),Il(33),Hl(80)),Il(254),En(),Hl(224),Il(267),Xf()}function wn(){ic.startNonterminal(\"SequenceTypeUnion\",Vl),Ls();for(;;){Il(138);if($l!=284)break;Pl(284),Il(254),jl(),Ls()}ic.endNonterminal(\"SequenceTypeUnion\",Vl)}function En(){As();for(;;){Il(138);if($l!=284)break;Hl(284),Il(254),As()}}function Sn(){ic.startNonterminal(\"IfExpr\",Vl),Pl(154),Il(22),Pl(35),Il(267),jl(),G(),Pl(38),Il(80),Pl(250),Il(267),jl(),Wf(),Pl(123),Il(267),jl(),Wf(),ic.endNonterminal(\"IfExpr\",Vl)}function xn(){Hl(154),Il(22),Hl(35),Il(267),Y(),Hl(38),Il(80),Hl(250),Il(267),Xf(),Hl(123),Il(267),Xf()}function Tn(){ic.startNonterminal(\"TryCatchExpr\",Vl),Cn();for(;;){Il(39),jl(),On(),Il(208);if($l!=92)break}ic.endNonterminal(\"TryCatchExpr\",Vl)}function Nn(){kn();for(;;){Il(39),Mn(),Il(208);if($l!=92)break}}function Cn(){ic.startNonterminal(\"TryClause\",Vl),Pl(256),Il(90),Pl(281),Il(267),jl(),Ln(),Pl(287),ic.endNonterminal(\"TryClause\",Vl)}function kn(){Hl(256),Il(90),Hl(281),Il(267),An(),Hl(287)}function Ln(){ic.startNonterminal(\"TryTargetExpr\",Vl),G(),ic.endNonterminal(\"TryTargetExpr\",Vl)}function An(){Y()}function On(){ic.startNonterminal(\"CatchClause\",Vl),Pl(92),Il(249),jl(),_n(),Pl(281),Il(267),jl(),G(),Pl(287),ic.endNonterminal(\"CatchClause\",Vl)}function Mn(){Hl(92),Il(249),Dn(),Hl(281),Il(267),Y(),Hl(287)}function _n(){ic.startNonterminal(\"CatchErrorList\",Vl),Yr();for(;;){Il(140);if($l!=284)break;Pl(284),Il(249),jl(),Yr()}ic.endNonterminal(\"CatchErrorList\",Vl)}function Dn(){Zr();for(;;){Il(140);if($l!=284)break;Hl(284),Il(249),Zr()}}function Pn(){ic.startNonterminal(\"OrExpr\",Vl),Bn();for(;;){if($l!=204)break;Pl(204),Il(267),jl(),Bn()}ic.endNonterminal(\"OrExpr\",Vl)}function Hn(){jn();for(;;){if($l!=204)break;Hl(204),Il(267),jn()}}function Bn(){ic.startNonterminal(\"AndExpr\",Vl),Fn();for(;;){if($l!=76)break;Pl(76),Il(267),jl(),Fn()}ic.endNonterminal(\"AndExpr\",Vl)}function jn(){In();for(;;){if($l!=76)break;Hl(76),Il(267),In()}}function Fn(){ic.startNonterminal(\"NotExpr\",Vl),$l==196&&Pl(196),Il(266),jl(),qn(),ic.endNonterminal(\"NotExpr\",Vl)}function In(){$l==196&&Hl(196),Il(266),Rn()}function qn(){ic.startNonterminal(\"ComparisonExpr\",Vl),Un();if($l==27||$l==55||$l==58||$l==59||$l==61||$l==62||$l==63||$l==64||$l==129||$l==148||$l==152||$l==166||$l==175||$l==181||$l==189){switch($l){case 129:case 148:case 152:case 175:case 181:case 189:jl(),yr();break;case 58:case 64:case 166:jl(),wr();break;default:jl(),mr()}Il(266),jl(),Un()}ic.endNonterminal(\"ComparisonExpr\",Vl)}function Rn(){zn();if($l==27||$l==55||$l==58||$l==59||$l==61||$l==62||$l==63||$l==64||$l==129||$l==148||$l==152||$l==166||$l==175||$l==181||$l==189){switch($l){case 129:case 148:case 152:case 175:case 181:case 189:br();break;case 58:case 64:case 166:Er();break;default:gr()}Il(266),zn()}}function Un(){ic.startNonterminal(\"FTContainsExpr\",Vl),Wn(),$l==100&&(Pl(100),Il(79),Pl(249),Il(177),jl(),ou(),$l==277&&(jl(),Ta())),ic.endNonterminal(\"FTContainsExpr\",Vl)}function zn(){Xn(),$l==100&&(Hl(100),Il(79),Hl(249),Il(177),uu(),$l==277&&Na())}function Wn(){ic.startNonterminal(\"StringConcatExpr\",Vl),Vn();for(;;){if($l!=285)break;Pl(285),Il(266),jl(),Vn()}ic.endNonterminal(\"StringConcatExpr\",Vl)}function Xn(){$n();for(;;){if($l!=285)break;Hl(285),Il(266),$n()}}function Vn(){ic.startNonterminal(\"RangeExpr\",Vl),Jn(),$l==253&&(Pl(253),Il(266),jl(),Jn()),ic.endNonterminal(\"RangeExpr\",Vl)}function $n(){Kn(),$l==253&&(Hl(253),Il(266),Kn())}function Jn(){ic.startNonterminal(\"AdditiveExpr\",Vl),Qn();for(;;){if($l!=41&&$l!=43)break;switch($l){case 41:Pl(41);break;default:Pl(43)}Il(266),jl(),Qn()}ic.endNonterminal(\"AdditiveExpr\",Vl)}function Kn(){Gn();for(;;){if($l!=41&&$l!=43)break;switch($l){case 41:Hl(41);break;default:Hl(43)}Il(266),Gn()}}function Qn(){ic.startNonterminal(\"MultiplicativeExpr\",Vl),Yn();for(;;){if($l!=39&&$l!=119&&$l!=153&&$l!=183)break;switch($l){case 39:Pl(39);break;case 119:Pl(119);break;case 153:Pl(153);break;default:Pl(183)}Il(266),jl(),Yn()}ic.endNonterminal(\"MultiplicativeExpr\",Vl)}function Gn(){Zn();for(;;){if($l!=39&&$l!=119&&$l!=153&&$l!=183)break;switch($l){case 39:Hl(39);break;case 119:Hl(119);break;case 153:Hl(153);break;default:Hl(183)}Il(266),Zn()}}function Yn(){ic.startNonterminal(\"UnionExpr\",Vl),er();for(;;){if($l!=260&&$l!=284)break;switch($l){case 260:Pl(260);break;default:Pl(284)}Il(266),jl(),er()}ic.endNonterminal(\"UnionExpr\",Vl)}function Zn(){tr();for(;;){if($l!=260&&$l!=284)break;switch($l){case 260:Hl(260);break;default:Hl(284)}Il(266),tr()}}function er(){ic.startNonterminal(\"IntersectExceptExpr\",Vl),nr();for(;;){Il(222);if($l!=132&&$l!=164)break;switch($l){case 164:Pl(164);break;default:Pl(132)}Il(266),jl(),nr()}ic.endNonterminal(\"IntersectExceptExpr\",Vl)}function tr(){rr();for(;;){Il(222);if($l!=132&&$l!=164)break;switch($l){case 164:Hl(164);break;default:Hl(132)}Il(266),rr()}}function nr(){ic.startNonterminal(\"InstanceofExpr\",Vl),ir(),Il(223),$l==162&&(Pl(162),Il(67),Pl(200),Il(254),jl(),Ls()),ic.endNonterminal(\"InstanceofExpr\",Vl)}function rr(){sr(),Il(223),$l==162&&(Hl(162),Il(67),Hl(200),Il(254),As())}function ir(){ic.startNonterminal(\"TreatExpr\",Vl),or(),Il(224),$l==254&&(Pl(254),Il(33),Pl(80),Il(254),jl(),Ls()),ic.endNonterminal(\"TreatExpr\",Vl)}function sr(){ur(),Il(224),$l==254&&(Hl(254),Il(33),Hl(80),Il(254),As())}function or(){ic.startNonterminal(\"CastableExpr\",Vl),ar(),Il(225),$l==91&&(Pl(91),Il(33),Pl(80),Il(246),jl(),Ts()),ic.endNonterminal(\"CastableExpr\",Vl)}function ur(){fr(),Il(225),$l==91&&(Hl(91),Il(33),Hl(80),Il(246),Ns())}function ar(){ic.startNonterminal(\"CastExpr\",Vl),lr(),Il(227),$l==90&&(Pl(90),Il(33),Pl(80),Il(246),jl(),Ts()),ic.endNonterminal(\"CastExpr\",Vl)}function fr(){cr(),Il(227),$l==90&&(Hl(90),Il(33),Hl(80),Il(246),Ns())}function lr(){ic.startNonterminal(\"UnaryExpr\",Vl);for(;;){Il(266);if($l!=41&&$l!=43)break;switch($l){case 43:Pl(43);break;default:Pl(41)}}jl(),hr(),ic.endNonterminal(\"UnaryExpr\",Vl)}function cr(){for(;;){Il(266);if($l!=41&&$l!=43)break;switch($l){case 43:Hl(43);break;default:Hl(41)}}pr()}function hr(){ic.startNonterminal(\"ValueExpr\",Vl);switch($l){case 266:ql(188);break;default:Wl=$l}switch(Wl){case 89354:case 125706:case 132362:case 144138:Sr();break;case 36:Cr();break;default:dr()}ic.endNonterminal(\"ValueExpr\",Vl)}function pr(){switch($l){case 266:ql(188);break;default:Wl=$l}switch(Wl){case 89354:case 125706:case 132362:case 144138:xr();break;case 36:kr();break;default:vr()}}function dr(){ic.startNonterminal(\"SimpleMapExpr\",Vl),Or();for(;;){if($l!=26)break;Pl(26),Il(263),jl(),Or()}ic.endNonterminal(\"SimpleMapExpr\",Vl)}function vr(){Mr();for(;;){if($l!=26)break;Hl(26),Il(263),Mr()}}function mr(){ic.startNonterminal(\"GeneralComp\",Vl);switch($l){case 61:Pl(61);break;case 27:Pl(27);break;case 55:Pl(55);break;case 59:Pl(59);break;case 62:Pl(62);break;default:Pl(63)}ic.endNonterminal(\"GeneralComp\",Vl)}function gr(){switch($l){case 61:Hl(61);break;case 27:Hl(27);break;case 55:Hl(55);break;case 59:Hl(59);break;case 62:Hl(62);break;default:Hl(63)}}function yr(){ic.startNonterminal(\"ValueComp\",Vl);switch($l){case 129:Pl(129);break;case 189:Pl(189);break;case 181:Pl(181);break;case 175:Pl(175);break;case 152:Pl(152);break;default:Pl(148)}ic.endNonterminal(\"ValueComp\",Vl)}function br(){switch($l){case 129:Hl(129);break;case 189:Hl(189);break;case 181:Hl(181);break;case 175:Hl(175);break;case 152:Hl(152);break;default:Hl(148)}}function wr(){ic.startNonterminal(\"NodeComp\",Vl);switch($l){case 166:Pl(166);break;case 58:Pl(58);break;default:Pl(64)}ic.endNonterminal(\"NodeComp\",Vl)}function Er(){switch($l){case 166:Hl(166);break;case 58:Hl(58);break;default:Hl(64)}}function Sr(){ic.startNonterminal(\"ValidateExpr\",Vl),Pl(266),Il(175);if($l!=281)switch($l){case 258:Pl(258),Il(246),jl(),Ao();break;default:jl(),Tr()}Il(90),Pl(281),Il(267),jl(),G(),Pl(287),ic.endNonterminal(\"ValidateExpr\",Vl)}function xr(){Hl(266),Il(175);if($l!=281)switch($l){case 258:Hl(258),Il(246),Oo();break;default:Nr()}Il(90),Hl(281),Il(267),Y(),Hl(287)}function Tr(){ic.startNonterminal(\"ValidationMode\",Vl);switch($l){case 174:Pl(174);break;default:Pl(245)}ic.endNonterminal(\"ValidationMode\",Vl)}function Nr(){switch($l){case 174:Hl(174);break;default:Hl(245)}}function Cr(){ic.startNonterminal(\"ExtensionExpr\",Vl);for(;;){jl(),Lr(),Il(104);if($l!=36)break}Pl(281),Il(275),$l!=287&&(jl(),G()),Pl(287),ic.endNonterminal(\"ExtensionExpr\",Vl)}function kr(){for(;;){Ar(),Il(104);if($l!=36)break}Hl(281),Il(275),$l!=287&&Y(),Hl(287)}function Lr(){ic.startNonterminal(\"Pragma\",Vl),Pl(36),Rl(243),$l==21&&Pl(21),$a(),Rl(10),$l==21&&(Pl(21),Rl(0),Pl(1)),Rl(5),Pl(30),ic.endNonterminal(\"Pragma\",Vl)}function Ar(){Hl(36),Rl(243),$l==21&&Hl(21),Ja(),Rl(10),$l==21&&(Hl(21),Rl(0),Hl(1)),Rl(5),Hl(30)}function Or(){ic.startNonterminal(\"PathExpr\",Vl);switch($l){case 47:Pl(47),Il(289);switch($l){case 25:case 26:case 27:case 38:case 39:case 41:case 42:case 43:case 50:case 54:case 58:case 59:case 61:case 62:case 63:case 64:case 70:case 88:case 100:case 209:case 237:case 252:case 279:case 284:case 285:case 286:case 287:break;default:jl(),_r()}break;case 48:Pl(48),Il(260),jl(),_r();break;default:_r()}ic.endNonterminal(\"PathExpr\",Vl)}function Mr(){switch($l){case 47:Hl(47),Il(289);switch($l){case 25:case 26:case 27:case 38:case 39:case 41:case 42:case 43:case 50:case 54:case 58:case 59:case 61:case 62:case 63:case 64:case 70:case 88:case 100:case 209:case 237:case 252:case 279:case 284:case 285:case 286:case 287:break;default:Dr()}break;case 48:Hl(48),Il(260),Dr();break;default:Dr()}}function _r(){ic.startNonterminal(\"RelativePathExpr\",Vl),ei();for(;;){switch($l){case 26:ql(265);break;default:Wl=$l}if(Wl!=25&&Wl!=27&&Wl!=38&&Wl!=39&&Wl!=41&&Wl!=42&&Wl!=43&&Wl!=47&&Wl!=48&&Wl!=50&&Wl!=54&&Wl!=55&&Wl!=58&&Wl!=59&&Wl!=61&&Wl!=62&&Wl!=63&&Wl!=64&&Wl!=70&&Wl!=71&&Wl!=76&&Wl!=80&&Wl!=81&&Wl!=82&&Wl!=85&&Wl!=88&&Wl!=89&&Wl!=90&&Wl!=91&&Wl!=95&&Wl!=100&&Wl!=106&&Wl!=110&&Wl!=114&&Wl!=119&&Wl!=123&&Wl!=124&&Wl!=127&&Wl!=129&&Wl!=132&&Wl!=139&&Wl!=148&&Wl!=150&&Wl!=152&&Wl!=153&&Wl!=162&&Wl!=164&&Wl!=165&&Wl!=166&&Wl!=175&&Wl!=177&&Wl!=181&&Wl!=183&&Wl!=184&&Wl!=189&&Wl!=202&&Wl!=204&&Wl!=205&&Wl!=209&&Wl!=224&&Wl!=228&&Wl!=237&&Wl!=241&&Wl!=242&&Wl!=252&&Wl!=253&&Wl!=254&&Wl!=260&&Wl!=272&&Wl!=276&&Wl!=279&&Wl!=284&&Wl!=285&&Wl!=286&&Wl!=287&&Wl!=2586&&Wl!=23578&&Wl!=24090&&Wl!=24602&&Wl!=34330){Wl=uc(3,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{switch($l){case 47:Hl(47);break;case 48:Hl(48);break;default:Hl(26)}Il(264),Hr(),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(3,Vl,Wl)}}if(Wl!=-1&&Wl!=47&&Wl!=48&&Wl!=2586&&Wl!=23578&&Wl!=34330)break;switch($l){case 47:Pl(47);break;case 48:Pl(48);break;default:Pl(26)}Il(264),jl(),Pr()}ic.endNonterminal(\"RelativePathExpr\",Vl)}function Dr(){ti();for(;;){switch($l){case 26:ql(265);break;default:Wl=$l}if(Wl!=25&&Wl!=27&&Wl!=38&&Wl!=39&&Wl!=41&&Wl!=42&&Wl!=43&&Wl!=47&&Wl!=48&&Wl!=50&&Wl!=54&&Wl!=55&&Wl!=58&&Wl!=59&&Wl!=61&&Wl!=62&&Wl!=63&&Wl!=64&&Wl!=70&&Wl!=71&&Wl!=76&&Wl!=80&&Wl!=81&&Wl!=82&&Wl!=85&&Wl!=88&&Wl!=89&&Wl!=90&&Wl!=91&&Wl!=95&&Wl!=100&&Wl!=106&&Wl!=110&&Wl!=114&&Wl!=119&&Wl!=123&&Wl!=124&&Wl!=127&&Wl!=129&&Wl!=132&&Wl!=139&&Wl!=148&&Wl!=150&&Wl!=152&&Wl!=153&&Wl!=162&&Wl!=164&&Wl!=165&&Wl!=166&&Wl!=175&&Wl!=177&&Wl!=181&&Wl!=183&&Wl!=184&&Wl!=189&&Wl!=202&&Wl!=204&&Wl!=205&&Wl!=209&&Wl!=224&&Wl!=228&&Wl!=237&&Wl!=241&&Wl!=242&&Wl!=252&&Wl!=253&&Wl!=254&&Wl!=260&&Wl!=272&&Wl!=276&&Wl!=279&&Wl!=284&&Wl!=285&&Wl!=286&&Wl!=287&&Wl!=2586&&Wl!=23578&&Wl!=24090&&Wl!=24602&&Wl!=34330){Wl=uc(3,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{switch($l){case 47:Hl(47);break;case 48:Hl(48);break;default:Hl(26)}Il(264),Hr(),oc(3,t,-1);continue}catch(a){Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(3,t,-2);break}}}if(Wl!=-1&&Wl!=47&&Wl!=48&&Wl!=2586&&Wl!=23578&&Wl!=34330)break;switch($l){case 47:Hl(47);break;case 48:Hl(48);break;default:Hl(26)}Il(264),Hr()}}function Pr(){ic.startNonterminal(\"StepExpr\",Vl);switch($l){case 83:ql(288);break;case 122:ql(287);break;case 187:case 220:ql(285);break;case 135:case 197:case 255:ql(237);break;case 97:case 120:case 206:case 249:case 262:ql(239);break;case 79:case 125:case 154:case 167:case 169:case 247:case 248:case 259:ql(230);break;case 74:case 75:case 94:case 112:case 113:case 137:case 138:case 210:case 216:case 217:case 234:ql(238);break;case 6:case 71:case 73:case 76:case 78:case 80:case 81:case 82:case 84:case 85:case 86:case 87:case 89:case 90:case 91:case 92:case 95:case 98:case 99:case 102:case 103:case 104:case 105:case 106:case 107:case 109:case 110:case 111:case 114:case 119:case 121:case 123:case 124:case 126:case 127:case 129:case 130:case 132:case 133:case 134:case 136:case 139:case 142:case 143:case 147:case 148:case 150:case 152:case 153:case 155:case 156:case 157:case 161:case 162:case 163:case 164:case 165:case 166:case 168:case 170:case 173:case 174:case 175:case 177:case 179:case 181:case 183:case 184:case 185:case 188:case 189:case 194:case 195:case 198:case 202:case 203:case 204:case 205:case 207:case 222:case 223:case 224:case 225:case 226:case 228:case 229:case 230:case 231:case 232:case 233:case 239:case 240:case 241:case 242:case 245:case 253:case 254:case 256:case 257:case 258:case 260:case 263:case 266:case 267:case 268:case 269:case 272:case 273:case 276:ql(234);break;default:Wl=$l}if(Wl==12935||Wl==12997||Wl==13055||Wl==13447||Wl==13509||Wl==13567||Wl==13959||Wl==14021||Wl==14079||Wl==19591||Wl==19653||Wl==19711||Wl==20103||Wl==20165||Wl==20223||Wl==21127||Wl==21189||Wl==21247||Wl==21639||Wl==21701||Wl==21759||Wl==22151||Wl==22213||Wl==22271||Wl==24199||Wl==24261||Wl==24319||Wl==24711||Wl==24773||Wl==24831||Wl==25735||Wl==25797||Wl==25855||Wl==27783||Wl==27845||Wl==27903||Wl==28295||Wl==28357||Wl==28415||Wl==29831||Wl==29893||Wl==29951||Wl==30343||Wl==30405||Wl==30463||Wl==31367||Wl==31429||Wl==31487||Wl==31879||Wl==31941||Wl==31999||Wl==32391||Wl==32453||Wl==32511||Wl==32903||Wl==32965||Wl==33023||Wl==35463||Wl==35525||Wl==35583||Wl==35975||Wl==36037||Wl==36095||Wl==36435||Wl==36474||Wl==36487||Wl==36539||Wl==36549||Wl==36572||Wl==36607||Wl==38995||Wl==39034||Wl==39047||Wl==39099||Wl==39109||Wl==39132||Wl==39167||Wl==41043||Wl==41082||Wl==41095||Wl==41147||Wl==41157||Wl==41180||Wl==41215||Wl==41555||Wl==41594||Wl==41607||Wl==41659||Wl==41669||Wl==41692||Wl==41727||Wl==42067||Wl==42106||Wl==42119||Wl==42171||Wl==42181||Wl==42204||Wl==42239||Wl==43603||Wl==43642||Wl==43655||Wl==43707||Wl==43717||Wl==43740||Wl==43775||Wl==45191||Wl==45253||Wl==45311||Wl==45651||Wl==45690||Wl==45703||Wl==45755||Wl==45765||Wl==45788||Wl==45823||Wl==46163||Wl==46202||Wl==46215||Wl==46267||Wl==46277||Wl==46300||Wl==46335||Wl==46675||Wl==46714||Wl==46727||Wl==46779||Wl==46789||Wl==46812||Wl==46847||Wl==48723||Wl==48762||Wl==48775||Wl==48827||Wl==48837||Wl==48860||Wl==48895||Wl==51335||Wl==51397||Wl==51455||Wl==54355||Wl==54394||Wl==54407||Wl==54459||Wl==54469||Wl==54492||Wl==54527||Wl==56403||Wl==56442||Wl==56455||Wl==56507||Wl==56517||Wl==56540||Wl==56575||Wl==58451||Wl==58490||Wl==58503||Wl==58555||Wl==58565||Wl==58588||Wl==58623||Wl==61011||Wl==61050||Wl==61063||Wl==61115||Wl==61125||Wl==61148||Wl==61183||Wl==63059||Wl==63098||Wl==63111||Wl==63163||Wl==63173||Wl==63196||Wl==63231||Wl==63571||Wl==63610||Wl==63623||Wl==63675||Wl==63685||Wl==63708||Wl==63743||Wl==65107||Wl==65146||Wl==65159||Wl==65211||Wl==65221||Wl==65244||Wl==65279||Wl==66131||Wl==66170||Wl==66183||Wl==66235||Wl==66245||Wl==66268||Wl==66303||Wl==67667||Wl==67706||Wl==67719||Wl==67771||Wl==67781||Wl==67804||Wl==67839||Wl==71251||Wl==71290||Wl==71303||Wl==71355||Wl==71365||Wl==71388||Wl==71423||Wl==75859||Wl==75898||Wl==75911||Wl==75963||Wl==75973||Wl==75996||Wl==76031||Wl==76883||Wl==76922||Wl==76935||Wl==76987||Wl==76997||Wl==77020||Wl==77055||Wl==77907||Wl==77946||Wl==77959||Wl==78011||Wl==78021||Wl==78044||Wl==78079||Wl==78419||Wl==78458||Wl==78471||Wl==78523||Wl==78533||Wl==78556||Wl==78591||Wl==83027||Wl==83066||Wl==83079||Wl==83131||Wl==83141||Wl==83164||Wl==83199||Wl==84051||Wl==84090||Wl==84103||Wl==84155||Wl==84165||Wl==84188||Wl==84223||Wl==84563||Wl==84602||Wl==84615||Wl==84667||Wl==84677||Wl==84700||Wl==84735||Wl==85075||Wl==85114||Wl==85127||Wl==85179||Wl==85189||Wl==85212||Wl==85247||Wl==89683||Wl==89722||Wl==89735||Wl==89787||Wl==89797||Wl==89820||Wl==89855||Wl==90707||Wl==90746||Wl==90759||Wl==90811||Wl==90821||Wl==90844||Wl==90879||Wl==92755||Wl==92794||Wl==92807||Wl==92859||Wl==92869||Wl==92892||Wl==92927||Wl==93779||Wl==93818||Wl==93831||Wl==93883||Wl==93893||Wl==93916||Wl==93951||Wl==94291||Wl==94330||Wl==94343||Wl==94395||Wl==94405||Wl==94428||Wl==94463||Wl==96851||Wl==96890||Wl==96903||Wl==96955||Wl==96965||Wl==96988||Wl==97023||Wl==103507||Wl==103546||Wl==103559||Wl==103611||Wl==103621||Wl==103644||Wl==103679||Wl==104531||Wl==104570||Wl==104583||Wl==104635||Wl==104645||Wl==104668||Wl==104703||Wl==105043||Wl==105082||Wl==105095||Wl==105147||Wl==105157||Wl==105180||Wl==105215||Wl==107143||Wl==107205||Wl==107263||Wl==114771||Wl==114810||Wl==114823||Wl==114875||Wl==114885||Wl==114908||Wl==114943||Wl==116819||Wl==116858||Wl==116871||Wl==116923||Wl==116933||Wl==116956||Wl==116991||Wl==121479||Wl==121541||Wl==121599||Wl==123475||Wl==123514||Wl==123527||Wl==123579||Wl==123589||Wl==123612||Wl==123647||Wl==123987||Wl==124026||Wl==124039||Wl==124091||Wl==124101||Wl==124124||Wl==124159||Wl==129159||Wl==129221||Wl==129279||Wl==129619||Wl==129658||Wl==129671||Wl==129723||Wl==129733||Wl==129756||Wl==129791||Wl==130131||Wl==130170||Wl==130183||Wl==130235||Wl==130245||Wl==130268||Wl==130303||Wl==133203||Wl==133242||Wl==133255||Wl==133307||Wl==133317||Wl==133340||Wl==133375||Wl==139347||Wl==139386||Wl==139399||Wl==139451||Wl==139461||Wl==139484||Wl==139519||Wl==141395||Wl==141434||Wl==141447||Wl==141499||Wl==141509||Wl==141532||Wl==141567||Wl==142983||Wl==143045||Wl==143103||Wl==145543||Wl==145605||Wl==145663||Wl==146055||Wl==146117||Wl==146175||Wl==146567||Wl==146629||Wl==146687||Wl==147079||Wl==147141||Wl==147199){Wl=uc(4,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{ti(),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(4,Vl,Wl)}}switch(Wl){case-1:case 8:case 9:case 10:case 11:case 31:case 32:case 33:case 35:case 55:case 56:case 60:case 69:case 281:case 283:case 3155:case 3194:case 9915:case 9948:case 14854:case 14919:case 14921:case 14922:case 14923:case 14924:case 14926:case 14927:case 14928:case 14929:case 14930:case 14931:case 14932:case 14933:case 14934:case 14935:case 14937:case 14938:case 14939:case 14940:case 14942:case 14943:case 14945:case 14946:case 14947:case 14950:case 14951:case 14952:case 14953:case 14954:case 14955:case 14957:case 14958:case 14959:case 14960:case 14961:case 14962:case 14967:case 14968:case 14969:case 14970:case 14971:case 14972:case 14973:case 14974:case 14975:case 14977:case 14978:case 14980:case 14981:case 14982:case 14983:case 14984:case 14985:case 14986:case 14987:case 14990:case 14991:case 14995:case 14996:case 14998:case 15e3:case 15001:case 15002:case 15003:case 15004:case 15005:case 15009:case 15010:case 15011:case 15012:case 15013:case 15014:case 15015:case 15016:case 15017:case 15018:case 15021:case 15022:case 15023:case 15025:case 15027:case 15029:case 15031:case 15032:case 15033:case 15035:case 15036:case 15037:case 15042:case 15043:case 15045:case 15046:case 15050:case 15051:case 15052:case 15053:case 15054:case 15055:case 15058:case 15064:case 15065:case 15068:case 15070:case 15071:case 15072:case 15073:case 15074:case 15076:case 15077:case 15078:case 15079:case 15080:case 15081:case 15082:case 15087:case 15088:case 15089:case 15090:case 15093:case 15095:case 15096:case 15097:case 15101:case 15102:case 15103:case 15104:case 15105:case 15106:case 15107:case 15108:case 15110:case 15111:case 15114:case 15115:case 15116:case 15117:case 15120:case 15121:case 15124:case 17926:case 17991:case 17993:case 17994:case 17995:case 17996:case 17998:case 18e3:case 18001:case 18002:case 18004:case 18005:case 18006:case 18007:case 18009:case 18010:case 18011:case 18012:case 18014:case 18015:case 18018:case 18019:case 18022:case 18023:case 18024:case 18025:case 18026:case 18027:case 18029:case 18030:case 18031:case 18032:case 18033:case 18034:case 18039:case 18040:case 18043:case 18044:case 18046:case 18047:case 18049:case 18050:case 18052:case 18053:case 18054:case 18055:case 18056:case 18057:case 18058:case 18059:case 18062:case 18063:case 18067:case 18068:case 18070:case 18072:case 18073:case 18075:case 18076:case 18077:case 18081:case 18082:case 18083:case 18084:case 18085:case 18086:case 18088:case 18090:case 18093:case 18094:case 18095:case 18097:case 18099:case 18101:case 18103:case 18104:case 18105:case 18107:case 18109:case 18115:case 18117:case 18118:case 18122:case 18123:case 18124:case 18125:case 18126:case 18127:case 18130:case 18136:case 18137:case 18142:case 18143:case 18144:case 18145:case 18146:case 18148:case 18149:case 18152:case 18153:case 18154:case 18159:case 18160:case 18161:case 18162:case 18165:case 18173:case 18174:case 18175:case 18176:case 18177:case 18178:case 18180:case 18182:case 18183:case 18186:case 18187:case 18188:case 18189:case 18192:case 18193:case 18196:case 23175:case 23237:case 23295:case 37459:case 37498:case 37563:case 37596:case 37971:case 38010:case 38075:case 38108:case 38483:case 38522:case 38587:case 38620:case 40019:case 40058:case 40123:case 40156:case 40531:case 40570:case 42579:case 42618:case 42683:case 42716:case 43091:case 43130:case 43195:case 43228:case 44115:case 44154:case 44219:case 44252:case 44627:case 44666:case 44731:case 44764:case 47187:case 47226:case 47291:case 47324:case 48211:case 48250:case 48315:case 48348:case 49747:case 49786:case 49851:case 49884:case 50259:case 50298:case 50363:case 50396:case 50771:case 50810:case 50875:case 50908:case 52307:case 52346:case 52411:case 52444:case 52819:case 52858:case 52923:case 52956:case 53331:case 53370:case 53435:case 53468:case 53843:case 53882:case 53947:case 53980:case 54867:case 54906:case 54971:case 55004:case 55891:case 55930:case 55995:case 56028:case 56915:case 56954:case 57019:case 57052:case 57427:case 57466:case 57531:case 57564:case 57939:case 57978:case 58043:case 58076:case 61523:case 61562:case 61627:case 61660:case 62035:case 62074:case 62139:case 62172:case 62547:case 62586:case 62651:case 62684:case 64083:case 64122:case 64187:case 64220:case 64595:case 64634:case 64699:case 64732:case 66643:case 66682:case 66747:case 66780:case 68179:case 68218:case 68283:case 68316:case 68691:case 68730:case 68795:case 68828:case 69203:case 69242:case 69307:case 69340:case 69715:case 69754:case 69819:case 69852:case 70227:case 70266:case 70331:case 70364:case 70739:case 70778:case 70843:case 70876:case 72787:case 72826:case 72891:case 72924:case 73299:case 73338:case 73403:case 73436:case 75347:case 75386:case 75451:case 75484:case 78931:case 78970:case 79035:case 79068:case 79443:case 79482:case 79547:case 79580:case 79955:case 79994:case 80059:case 80092:case 80467:case 80506:case 80571:case 80604:case 82515:case 82554:case 82619:case 82652:case 83539:case 83578:case 83643:case 83676:case 85587:case 85626:case 85691:case 85724:case 86099:case 86138:case 86203:case 86236:case 86611:case 86650:case 87123:case 87162:case 87227:case 87260:case 88659:case 88698:case 88763:case 88796:case 89171:case 89210:case 89275:case 89308:case 91731:case 91770:case 91835:case 91868:case 94803:case 94842:case 94907:case 94940:case 95827:case 95866:case 95931:case 95964:case 96339:case 96378:case 96443:case 96476:case 99411:case 99450:case 99515:case 99548:case 99923:case 99962:case 100027:case 100060:case 100947:case 100986:case 101051:case 101084:case 101459:case 101498:case 101563:case 101596:case 104019:case 104058:case 104123:case 104156:case 105555:case 105594:case 105659:case 105692:case 106067:case 106106:case 106171:case 106204:case 107603:case 107642:case 107707:case 107740:case 110675:case 110714:case 110779:case 110812:case 111187:case 111226:case 111291:case 111324:case 112723:case 112762:case 112827:case 112860:case 113747:case 113786:case 113851:case 113884:case 114259:case 114298:case 114363:case 114396:case 115283:case 115322:case 115387:case 115420:case 115795:case 115834:case 115899:case 115932:case 117331:case 117370:case 117435:case 117468:case 117843:case 117882:case 117947:case 117980:case 118355:case 118394:case 118459:case 118492:case 118867:case 118906:case 118971:case 119004:case 119379:case 119418:case 119483:case 119516:case 119891:case 119930:case 119995:case 120028:case 122451:case 122490:case 122555:case 122588:case 122963:case 123002:case 123067:case 123100:case 125523:case 125562:case 125627:case 125660:case 126547:case 126586:case 127059:case 127098:case 127163:case 127196:case 127571:case 127610:case 127675:case 127708:case 130643:case 130682:case 130747:case 130780:case 131155:case 131194:case 131259:case 131292:case 131667:case 131706:case 131771:case 131804:case 132179:case 132218:case 132283:case 132316:case 132691:case 132730:case 132795:case 132828:case 134227:case 134266:case 134331:case 134364:case 134739:case 134778:case 134843:case 134876:case 136275:case 136314:case 136379:case 136412:case 136787:case 136826:case 136891:case 136924:case 137299:case 137338:case 137403:case 137436:case 137811:case 137850:case 137915:case 137948:case 139859:case 139898:case 139963:case 139996:case 143955:case 143969:case 143992:case 143994:case 144059:case 144078:case 144092:case 144121:case 144134:ei();break;default:Br()}ic.endNonterminal(\"StepExpr\",Vl)}function Hr(){switch($l){case 83:ql(288);break;case 122:ql(287);break;case 187:case 220:ql(285);break;case 135:case 197:case 255:ql(237);break;case 97:case 120:case 206:case 249:case 262:ql(239);break;case 79:case 125:case 154:case 167:case 169:case 247:case 248:case 259:ql(230);break;case 74:case 75:case 94:case 112:case 113:case 137:case 138:case 210:case 216:case 217:case 234:ql(238);break;case 6:case 71:case 73:case 76:case 78:case 80:case 81:case 82:case 84:case 85:case 86:case 87:case 89:case 90:case 91:case 92:case 95:case 98:case 99:case 102:case 103:case 104:case 105:case 106:case 107:case 109:case 110:case 111:case 114:case 119:case 121:case 123:case 124:case 126:case 127:case 129:case 130:case 132:case 133:case 134:case 136:case 139:case 142:case 143:case 147:case 148:case 150:case 152:case 153:case 155:case 156:case 157:case 161:case 162:case 163:case 164:case 165:case 166:case 168:case 170:case 173:case 174:case 175:case 177:case 179:case 181:case 183:case 184:case 185:case 188:case 189:case 194:case 195:case 198:case 202:case 203:case 204:case 205:case 207:case 222:case 223:case 224:case 225:case 226:case 228:case 229:case 230:case 231:case 232:case 233:case 239:case 240:case 241:case 242:case 245:case 253:case 254:case 256:case 257:case 258:case 260:case 263:case 266:case 267:case 268:case 269:case 272:case 273:case 276:ql(234);break;default:Wl=$l}if(Wl==12935||Wl==12997||Wl==13055||Wl==13447||Wl==13509||Wl==13567||Wl==13959||Wl==14021||Wl==14079||Wl==19591||Wl==19653||Wl==19711||Wl==20103||Wl==20165||Wl==20223||Wl==21127||Wl==21189||Wl==21247||Wl==21639||Wl==21701||Wl==21759||Wl==22151||Wl==22213||Wl==22271||Wl==24199||Wl==24261||Wl==24319||Wl==24711||Wl==24773||Wl==24831||Wl==25735||Wl==25797||Wl==25855||Wl==27783||Wl==27845||Wl==27903||Wl==28295||Wl==28357||Wl==28415||Wl==29831||Wl==29893||Wl==29951||Wl==30343||Wl==30405||Wl==30463||Wl==31367||Wl==31429||Wl==31487||Wl==31879||Wl==31941||Wl==31999||Wl==32391||Wl==32453||Wl==32511||Wl==32903||Wl==32965||Wl==33023||Wl==35463||Wl==35525||Wl==35583||Wl==35975||Wl==36037||Wl==36095||Wl==36435||Wl==36474||Wl==36487||Wl==36539||Wl==36549||Wl==36572||Wl==36607||Wl==38995||Wl==39034||Wl==39047||Wl==39099||Wl==39109||Wl==39132||Wl==39167||Wl==41043||Wl==41082||Wl==41095||Wl==41147||Wl==41157||Wl==41180||Wl==41215||Wl==41555||Wl==41594||Wl==41607||Wl==41659||Wl==41669||Wl==41692||Wl==41727||Wl==42067||Wl==42106||Wl==42119||Wl==42171||Wl==42181||Wl==42204||Wl==42239||Wl==43603||Wl==43642||Wl==43655||Wl==43707||Wl==43717||Wl==43740||Wl==43775||Wl==45191||Wl==45253||Wl==45311||Wl==45651||Wl==45690||Wl==45703||Wl==45755||Wl==45765||Wl==45788||Wl==45823||Wl==46163||Wl==46202||Wl==46215||Wl==46267||Wl==46277||Wl==46300||Wl==46335||Wl==46675||Wl==46714||Wl==46727||Wl==46779||Wl==46789||Wl==46812||Wl==46847||Wl==48723||Wl==48762||Wl==48775||Wl==48827||Wl==48837||Wl==48860||Wl==48895||Wl==51335||Wl==51397||Wl==51455||Wl==54355||Wl==54394||Wl==54407||Wl==54459||Wl==54469||Wl==54492||Wl==54527||Wl==56403||Wl==56442||Wl==56455||Wl==56507||Wl==56517||Wl==56540||Wl==56575||Wl==58451||Wl==58490||Wl==58503||Wl==58555||Wl==58565||Wl==58588||Wl==58623||Wl==61011||Wl==61050||Wl==61063||Wl==61115||Wl==61125||Wl==61148||Wl==61183||Wl==63059||Wl==63098||Wl==63111||Wl==63163||Wl==63173||Wl==63196||Wl==63231||Wl==63571||Wl==63610||Wl==63623||Wl==63675||Wl==63685||Wl==63708||Wl==63743||Wl==65107||Wl==65146||Wl==65159||Wl==65211||Wl==65221||Wl==65244||Wl==65279||Wl==66131||Wl==66170||Wl==66183||Wl==66235||Wl==66245||Wl==66268||Wl==66303||Wl==67667||Wl==67706||Wl==67719||Wl==67771||Wl==67781||Wl==67804||Wl==67839||Wl==71251||Wl==71290||Wl==71303||Wl==71355||Wl==71365||Wl==71388||Wl==71423||Wl==75859||Wl==75898||Wl==75911||Wl==75963||Wl==75973||Wl==75996||Wl==76031||Wl==76883||Wl==76922||Wl==76935||Wl==76987||Wl==76997||Wl==77020||Wl==77055||Wl==77907||Wl==77946||Wl==77959||Wl==78011||Wl==78021||Wl==78044||Wl==78079||Wl==78419||Wl==78458||Wl==78471||Wl==78523||Wl==78533||Wl==78556||Wl==78591||Wl==83027||Wl==83066||Wl==83079||Wl==83131||Wl==83141||Wl==83164||Wl==83199||Wl==84051||Wl==84090||Wl==84103||Wl==84155||Wl==84165||Wl==84188||Wl==84223||Wl==84563||Wl==84602||Wl==84615||Wl==84667||Wl==84677||Wl==84700||Wl==84735||Wl==85075||Wl==85114||Wl==85127||Wl==85179||Wl==85189||Wl==85212||Wl==85247||Wl==89683||Wl==89722||Wl==89735||Wl==89787||Wl==89797||Wl==89820||Wl==89855||Wl==90707||Wl==90746||Wl==90759||Wl==90811||Wl==90821||Wl==90844||Wl==90879||Wl==92755||Wl==92794||Wl==92807||Wl==92859||Wl==92869||Wl==92892||Wl==92927||Wl==93779||Wl==93818||Wl==93831||Wl==93883||Wl==93893||Wl==93916||Wl==93951||Wl==94291||Wl==94330||Wl==94343||Wl==94395||Wl==94405||Wl==94428||Wl==94463||Wl==96851||Wl==96890||Wl==96903||Wl==96955||Wl==96965||Wl==96988||Wl==97023||Wl==103507||Wl==103546||Wl==103559||Wl==103611||Wl==103621||Wl==103644||Wl==103679||Wl==104531||Wl==104570||Wl==104583||Wl==104635||Wl==104645||Wl==104668||Wl==104703||Wl==105043||Wl==105082||Wl==105095||Wl==105147||Wl==105157||Wl==105180||Wl==105215||Wl==107143||Wl==107205||Wl==107263||Wl==114771||Wl==114810||Wl==114823||Wl==114875||Wl==114885||Wl==114908||Wl==114943||Wl==116819||Wl==116858||Wl==116871||Wl==116923||Wl==116933||Wl==116956||Wl==116991||Wl==121479||Wl==121541||Wl==121599||Wl==123475||Wl==123514||Wl==123527||Wl==123579||Wl==123589||Wl==123612||Wl==123647||Wl==123987||Wl==124026||Wl==124039||Wl==124091||Wl==124101||Wl==124124||Wl==124159||Wl==129159||Wl==129221||Wl==129279||Wl==129619||Wl==129658||Wl==129671||Wl==129723||Wl==129733||Wl==129756||Wl==129791||Wl==130131||Wl==130170||Wl==130183||Wl==130235||Wl==130245||Wl==130268||Wl==130303||Wl==133203||Wl==133242||Wl==133255||Wl==133307||Wl==133317||Wl==133340||Wl==133375||Wl==139347||Wl==139386||Wl==139399||Wl==139451||Wl==139461||Wl==139484||Wl==139519||Wl==141395||Wl==141434||Wl==141447||Wl==141499||Wl==141509||Wl==141532||Wl==141567||Wl==142983||Wl==143045||Wl==143103||Wl==145543||Wl==145605||Wl==145663||Wl==146055||Wl==146117||Wl==146175||Wl==146567||Wl==146629||Wl==146687||Wl==147079||Wl==147141||Wl==147199){Wl=uc(4,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{ti(),oc(4,t,-1),Wl=-3}catch(a){Wl=-2,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(4,t,-2)}}}switch(Wl){case-1:case 8:case 9:case 10:case 11:case 31:case 32:case 33:case 35:case 55:case 56:case 60:case 69:case 281:case 283:case 3155:case 3194:case 9915:case 9948:case 14854:case 14919:case 14921:case 14922:case 14923:case 14924:case 14926:case 14927:case 14928:case 14929:case 14930:case 14931:case 14932:case 14933:case 14934:case 14935:case 14937:case 14938:case 14939:case 14940:case 14942:case 14943:case 14945:case 14946:case 14947:case 14950:case 14951:case 14952:case 14953:case 14954:case 14955:case 14957:case 14958:case 14959:case 14960:case 14961:case 14962:case 14967:case 14968:case 14969:case 14970:case 14971:case 14972:case 14973:case 14974:case 14975:case 14977:case 14978:case 14980:case 14981:case 14982:case 14983:case 14984:case 14985:case 14986:case 14987:case 14990:case 14991:case 14995:case 14996:case 14998:case 15e3:case 15001:case 15002:case 15003:case 15004:case 15005:case 15009:case 15010:case 15011:case 15012:case 15013:case 15014:case 15015:case 15016:case 15017:case 15018:case 15021:case 15022:case 15023:case 15025:case 15027:case 15029:case 15031:case 15032:case 15033:case 15035:case 15036:case 15037:case 15042:case 15043:case 15045:case 15046:case 15050:case 15051:case 15052:case 15053:case 15054:case 15055:case 15058:case 15064:case 15065:case 15068:case 15070:case 15071:case 15072:case 15073:case 15074:case 15076:case 15077:case 15078:case 15079:case 15080:case 15081:case 15082:case 15087:case 15088:case 15089:case 15090:case 15093:case 15095:case 15096:case 15097:case 15101:case 15102:case 15103:case 15104:case 15105:case 15106:case 15107:case 15108:case 15110:case 15111:case 15114:case 15115:case 15116:case 15117:case 15120:case 15121:case 15124:case 17926:case 17991:case 17993:case 17994:case 17995:case 17996:case 17998:case 18e3:case 18001:case 18002:case 18004:case 18005:case 18006:case 18007:case 18009:case 18010:case 18011:case 18012:case 18014:case 18015:case 18018:case 18019:case 18022:case 18023:case 18024:case 18025:case 18026:case 18027:case 18029:case 18030:case 18031:case 18032:case 18033:case 18034:case 18039:case 18040:case 18043:case 18044:case 18046:case 18047:case 18049:case 18050:case 18052:case 18053:case 18054:case 18055:case 18056:case 18057:case 18058:case 18059:case 18062:case 18063:case 18067:case 18068:case 18070:case 18072:case 18073:case 18075:case 18076:case 18077:case 18081:case 18082:case 18083:case 18084:case 18085:case 18086:case 18088:case 18090:case 18093:case 18094:case 18095:case 18097:case 18099:case 18101:case 18103:case 18104:case 18105:case 18107:case 18109:case 18115:case 18117:case 18118:case 18122:case 18123:case 18124:case 18125:case 18126:case 18127:case 18130:case 18136:case 18137:case 18142:case 18143:case 18144:case 18145:case 18146:case 18148:case 18149:case 18152:case 18153:case 18154:case 18159:case 18160:case 18161:case 18162:case 18165:case 18173:case 18174:case 18175:case 18176:case 18177:case 18178:case 18180:case 18182:case 18183:case 18186:case 18187:case 18188:case 18189:case 18192:case 18193:case 18196:case 23175:case 23237:case 23295:case 37459:case 37498:case 37563:case 37596:case 37971:case 38010:case 38075:case 38108:case 38483:case 38522:case 38587:case 38620:case 40019:case 40058:case 40123:case 40156:case 40531:case 40570:case 42579:case 42618:case 42683:case 42716:case 43091:case 43130:case 43195:case 43228:case 44115:case 44154:case 44219:case 44252:case 44627:case 44666:case 44731:case 44764:case 47187:case 47226:case 47291:case 47324:case 48211:case 48250:case 48315:case 48348:case 49747:case 49786:case 49851:case 49884:case 50259:case 50298:case 50363:case 50396:case 50771:case 50810:case 50875:case 50908:case 52307:case 52346:case 52411:case 52444:case 52819:case 52858:case 52923:case 52956:case 53331:case 53370:case 53435:case 53468:case 53843:case 53882:case 53947:case 53980:case 54867:case 54906:case 54971:case 55004:case 55891:case 55930:case 55995:case 56028:case 56915:case 56954:case 57019:case 57052:case 57427:case 57466:case 57531:case 57564:case 57939:case 57978:case 58043:case 58076:case 61523:case 61562:case 61627:case 61660:case 62035:case 62074:case 62139:case 62172:case 62547:case 62586:case 62651:case 62684:case 64083:case 64122:case 64187:case 64220:case 64595:case 64634:case 64699:case 64732:case 66643:case 66682:case 66747:case 66780:case 68179:case 68218:case 68283:case 68316:case 68691:case 68730:case 68795:case 68828:case 69203:case 69242:case 69307:case 69340:case 69715:case 69754:case 69819:case 69852:case 70227:case 70266:case 70331:case 70364:case 70739:case 70778:case 70843:case 70876:case 72787:case 72826:case 72891:case 72924:case 73299:case 73338:case 73403:case 73436:case 75347:case 75386:case 75451:case 75484:case 78931:case 78970:case 79035:case 79068:case 79443:case 79482:case 79547:case 79580:case 79955:case 79994:case 80059:case 80092:case 80467:case 80506:case 80571:case 80604:case 82515:case 82554:case 82619:case 82652:case 83539:case 83578:case 83643:case 83676:case 85587:case 85626:case 85691:case 85724:case 86099:case 86138:case 86203:case 86236:case 86611:case 86650:case 87123:case 87162:case 87227:case 87260:case 88659:case 88698:case 88763:case 88796:case 89171:case 89210:case 89275:case 89308:case 91731:case 91770:case 91835:case 91868:case 94803:case 94842:case 94907:case 94940:case 95827:case 95866:case 95931:case 95964:case 96339:case 96378:case 96443:case 96476:case 99411:case 99450:case 99515:case 99548:case 99923:case 99962:case 100027:case 100060:case 100947:case 100986:case 101051:case 101084:case 101459:case 101498:case 101563:case 101596:case 104019:case 104058:case 104123:case 104156:case 105555:case 105594:case 105659:case 105692:case 106067:case 106106:case 106171:case 106204:case 107603:case 107642:case 107707:case 107740:case 110675:case 110714:case 110779:case 110812:case 111187:case 111226:case 111291:case 111324:case 112723:case 112762:case 112827:case 112860:case 113747:case 113786:case 113851:case 113884:case 114259:case 114298:case 114363:case 114396:case 115283:case 115322:case 115387:case 115420:case 115795:case 115834:case 115899:case 115932:case 117331:case 117370:case 117435:case 117468:case 117843:case 117882:case 117947:case 117980:case 118355:case 118394:case 118459:case 118492:case 118867:case 118906:case 118971:case 119004:case 119379:case 119418:case 119483:case 119516:case 119891:case 119930:case 119995:case 120028:case 122451:case 122490:case 122555:case 122588:case 122963:case 123002:case 123067:case 123100:case 125523:case 125562:case 125627:case 125660:case 126547:case 126586:case 127059:case 127098:case 127163:case 127196:case 127571:case 127610:case 127675:case 127708:case 130643:case 130682:case 130747:case 130780:case 131155:case 131194:case 131259:case 131292:case 131667:case 131706:case 131771:case 131804:case 132179:case 132218:case 132283:case 132316:case 132691:case 132730:case 132795:case 132828:case 134227:case 134266:case 134331:case 134364:case 134739:case 134778:case 134843:case 134876:case 136275:case 136314:case 136379:case 136412:case 136787:case 136826:case 136891:case 136924:case 137299:case 137338:case 137403:case 137436:case 137811:case 137850:case 137915:case 137948:case 139859:case 139898:case 139963:case 139996:case 143955:case 143969:case 143992:case 143994:case 144059:case 144078:case 144092:case 144121:case 144134:ti();break;case-3:break;default:jr()}}function Br(){ic.startNonterminal(\"AxisStep\",Vl);switch($l){case 74:case 75:case 210:case 216:case 217:ql(232);break;default:Wl=$l}switch(Wl){case 46:case 26698:case 26699:case 26834:case 26840:case 26841:Wr();break;default:Fr()}Il(228),jl(),li(),ic.endNonterminal(\"AxisStep\",Vl)}function jr(){switch($l){case 74:case 75:case 210:case 216:case 217:ql(232);break;default:Wl=$l}switch(Wl){case 46:case 26698:case 26699:case 26834:case 26840:case 26841:Xr();break;default:Ir()}Il(228),ci()}function Fr(){ic.startNonterminal(\"ForwardStep\",Vl);switch($l){case 83:ql(236);break;case 94:case 112:case 113:case 137:case 138:case 234:ql(232);break;default:Wl=$l}switch(Wl){case 26707:case 26718:case 26736:case 26737:case 26761:case 26762:case 26858:qr(),Il(249),jl(),Qr();break;default:Ur()}ic.endNonterminal(\"ForwardStep\",Vl)}function Ir(){switch($l){case 83:ql(236);break;case 94:case 112:case 113:case 137:case 138:case 234:ql(232);break;default:Wl=$l}switch(Wl){case 26707:case 26718:case 26736:case 26737:case 26761:case 26762:case 26858:Rr(),Il(249),Gr();break;default:zr()}}function qr(){ic.startNonterminal(\"ForwardAxis\",Vl);switch($l){case 94:Pl(94),Il(27),Pl(52);break;case 112:Pl(112),Il(27),Pl(52);break;case 83:Pl(83),Il(27),Pl(52);break;case 234:Pl(234),Il(27),Pl(52);break;case 113:Pl(113),Il(27),Pl(52);break;case 138:Pl(138),Il(27),Pl(52);break;default:Pl(137),Il(27),Pl(52)}ic.endNonterminal(\"ForwardAxis\",Vl)}function Rr(){switch($l){case 94:Hl(94),Il(27),Hl(52);break;case 112:Hl(112),Il(27),Hl(52);break;case 83:Hl(83),Il(27),Hl(52);break;case 234:Hl(234),Il(27),Hl(52);break;case 113:Hl(113),Il(27),Hl(52);break;case 138:Hl(138),Il(27),Hl(52);break;default:Hl(137),Il(27),Hl(52)}}function Ur(){ic.startNonterminal(\"AbbrevForwardStep\",Vl),$l==67&&Pl(67),Il(249),jl(),Qr(),ic.endNonterminal(\"AbbrevForwardStep\",Vl)}function zr(){$l==67&&Hl(67),Il(249),Gr()}function Wr(){ic.startNonterminal(\"ReverseStep\",Vl);switch($l){case 46:Jr();break;default:Vr(),Il(249),jl(),Qr()}ic.endNonterminal(\"ReverseStep\",Vl)}function Xr(){switch($l){case 46:Kr();break;default:$r(),Il(249),Gr()}}function Vr(){ic.startNonterminal(\"ReverseAxis\",Vl);switch($l){case 210:Pl(210),Il(27),Pl(52);break;case 74:Pl(74),Il(27),Pl(52);break;case 217:Pl(217),Il(27),Pl(52);break;case 216:Pl(216),Il(27),Pl(52);break;default:Pl(75),Il(27),Pl(52)}ic.endNonterminal(\"ReverseAxis\",Vl)}function $r(){switch($l){case 210:Hl(210),Il(27),Hl(52);break;case 74:Hl(74),Il(27),Hl(52);break;case 217:Hl(217),Il(27),Hl(52);break;case 216:Hl(216),Il(27),Hl(52);break;default:Hl(75),Il(27),Hl(52)}}function Jr(){ic.startNonterminal(\"AbbrevReverseStep\",Vl),Pl(46),ic.endNonterminal(\"AbbrevReverseStep\",Vl)}function Kr(){Hl(46)}function Qr(){ic.startNonterminal(\"NodeTest\",Vl);switch($l){case 83:case 97:case 121:case 122:case 188:case 194:case 220:case 230:case 231:case 249:ql(231);break;default:Wl=$l}switch(Wl){case 18003:case 18017:case 18041:case 18042:case 18108:case 18114:case 18140:case 18150:case 18151:case 18169:Vs();break;default:Yr()}ic.endNonterminal(\"NodeTest\",Vl)}function Gr(){switch($l){case 83:case 97:case 121:case 122:case 188:case 194:case 220:case 230:case 231:case 249:ql(231);break;default:Wl=$l}switch(Wl){case 18003:case 18017:case 18041:case 18042:case 18108:case 18114:case 18140:case 18150:case 18151:case 18169:$s();break;default:Zr()}}function Yr(){ic.startNonterminal(\"NameTest\",Vl);switch($l){case 5:Pl(5);break;default:$a()}ic.endNonterminal(\"NameTest\",Vl)}function Zr(){switch($l){case 5:Hl(5);break;default:Ja()}}function ei(){ic.startNonterminal(\"PostfixExpr\",Vl),yl();for(;;){Il(235);if($l!=35&&$l!=45&&$l!=69)break;switch($l){case 69:ql(273);break;default:Wl=$l}if(Wl==35397){Wl=uc(5,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{pi(),Wl=-1}catch(a){Wl=-4}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(5,Vl,Wl)}}switch(Wl){case 35:jl(),ai();break;case 45:jl(),ni();break;case-4:jl(),ii();break;case 35909:jl(),oi();break;default:jl(),hi()}}ic.endNonterminal(\"PostfixExpr\",Vl)}function ti(){bl();for(;;){Il(235);if($l!=35&&$l!=45&&$l!=69)break;switch($l){case 69:ql(273);break;default:Wl=$l}if(Wl==35397){Wl=uc(5,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{pi(),oc(5,t,-1),Wl=-6}catch(a){Wl=-4,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(5,t,-4)}}}switch(Wl){case 35:fi();break;case 45:ri();break;case-4:si();break;case 35909:ui();break;case-6:break;default:pi()}}}function ni(){ic.startNonterminal(\"ObjectLookup\",Vl),Pl(45),Il(251);switch($l){case 11:Pl(11);break;case 35:jl(),Ci();break;case 31:jl(),Si();break;case 32:jl(),Li();break;default:jl(),Ga()}ic.endNonterminal(\"ObjectLookup\",Vl)}function ri(){Hl(45),Il(251);switch($l){case 11:Hl(11);break;case 35:ki();break;case 31:xi();break;case 32:Ai();break;default:Ya()}}function ii(){ic.startNonterminal(\"ArrayLookup\",Vl),Pl(69),Il(31),Pl(69),Il(267),jl(),G(),Pl(70),Il(32),Pl(70),ic.endNonterminal(\"ArrayLookup\",Vl)}function si(){Hl(69),Il(31),Hl(69),Il(267),Y(),Hl(70),Il(32),Hl(70)}function oi(){ic.startNonterminal(\"ArrayUnboxing\",Vl),Pl(69),Il(32),Pl(70),ic.endNonterminal(\"ArrayUnboxing\",Vl)}function ui(){Hl(69),Il(32),Hl(70)}function ai(){ic.startNonterminal(\"ArgumentList\",Vl),Pl(35),Il(280);if($l!=38){jl(),Bi();for(;;){Il(105);if($l!=42)break;Pl(42),Il(272),jl(),Bi()}}Pl(38),ic.endNonterminal(\"ArgumentList\",Vl)}function fi(){Hl(35),Il(280);if($l!=38){ji();for(;;){Il(105);if($l!=42)break;Hl(42),Il(272),ji()}}Hl(38)}function li(){ic.startNonterminal(\"PredicateList\",Vl);for(;;){Il(228);if($l!=69)break;jl(),hi()}ic.endNonterminal(\"PredicateList\",Vl)}function ci(){for(;;){Il(228);if($l!=69)break;pi()}}function hi(){ic.startNonterminal(\"Predicate\",Vl),Pl(69),Il(267),jl(),G(),Pl(70),ic.endNonterminal(\"Predicate\",Vl)}function pi(){Hl(69),Il(267),Y(),Hl(70)}function di(){ic.startNonterminal(\"Literal\",Vl);switch($l){case 11:Pl(11);break;case 135:case 255:mi();break;case 197:yi();break;default:wi()}ic.endNonterminal(\"Literal\",Vl)}function vi(){switch($l){case 11:Hl(11);break;case 135:case 255:gi();break;case 197:bi();break;default:Ei()}}function mi(){ic.startNonterminal(\"BooleanLiteral\",Vl);switch($l){case 255:Pl(255);break;default:Pl(135)}ic.endNonterminal(\"BooleanLiteral\",Vl)}function gi(){switch($l){case 255:Hl(255);break;default:Hl(135)}}function yi(){ic.startNonterminal(\"NullLiteral\",Vl),Pl(197),ic.endNonterminal(\"NullLiteral\",Vl)}function bi(){Hl(197)}function wi(){ic.startNonterminal(\"NumericLiteral\",Vl);switch($l){case 8:Pl(8);break;case 9:Pl(9);break;default:Pl(10)}ic.endNonterminal(\"NumericLiteral\",Vl)}function Ei(){switch($l){case 8:Hl(8);break;case 9:Hl(9);break;default:Hl(10)}}function Si(){ic.startNonterminal(\"VarRef\",Vl),Pl(31),Il(246),jl(),Ti(),ic.endNonterminal(\"VarRef\",Vl)}function xi(){Hl(31),Il(246),Ni()}function Ti(){ic.startNonterminal(\"VarName\",Vl),$a(),ic.endNonterminal(\"VarName\",Vl)}function Ni(){Ja()}function Ci(){ic.startNonterminal(\"ParenthesizedExpr\",Vl),Pl(35),Il(270),$l!=38&&(jl(),G()),Pl(38),ic.endNonterminal(\"ParenthesizedExpr\",Vl)}function ki(){Hl(35),Il(270),$l!=38&&Y(),Hl(38)}function Li(){ic.startNonterminal(\"ContextItemExpr\",Vl),Pl(32),ic.endNonterminal(\"ContextItemExpr\",Vl)}function Ai(){Hl(32)}function Oi(){ic.startNonterminal(\"OrderedExpr\",Vl),Pl(206),Il(90),Pl(281),Il(267),jl(),G(),Pl(287),ic.endNonterminal(\"OrderedExpr\",Vl)}function Mi(){Hl(206),Il(90),Hl(281),Il(267),Y(),Hl(287)}function _i(){ic.startNonterminal(\"UnorderedExpr\",Vl),Pl(262),Il(90),Pl(281),Il(267),jl(),G(),Pl(287),ic.endNonterminal(\"UnorderedExpr\",Vl)}function Di(){Hl(262),Il(90),Hl(281),Il(267),Y(),Hl(287)}function Pi(){ic.startNonterminal(\"FunctionCall\",Vl),Ka(),Il(22),jl(),ai(),ic.endNonterminal(\"FunctionCall\",Vl)}function Hi(){Qa(),Il(22),fi()}function Bi(){ic.startNonterminal(\"Argument\",Vl);switch($l){case 65:Fi();break;default:Wf()}ic.endNonterminal(\"Argument\",Vl)}function ji(){switch($l){case 65:Ii();break;default:Xf()}}function Fi(){ic.startNonterminal(\"ArgumentPlaceholder\",Vl),Pl(65),ic.endNonterminal(\"ArgumentPlaceholder\",Vl)}function Ii(){Hl(65)}function qi(){ic.startNonterminal(\"Constructor\",Vl);switch($l){case 55:case 56:case 60:Ui();break;default:os()}ic.endNonterminal(\"Constructor\",Vl)}function Ri(){switch($l){case 55:case 56:case 60:zi();break;default:us()}}function Ui(){ic.startNonterminal(\"DirectConstructor\",Vl);switch($l){case 55:Wi();break;case 56:ns();break;default:is()}ic.endNonterminal(\"DirectConstructor\",Vl)}function zi(){switch($l){case 55:Xi();break;case 56:rs();break;default:ss()}}function Wi(){ic.startNonterminal(\"DirElemConstructor\",Vl),Pl(55),Rl(4),Pl(20),Vi();switch($l){case 49:Pl(49);break;default:Pl(62);for(;;){Rl(196);if($l==57)break;es()}Pl(57),Rl(4),Pl(20),Rl(12),$l==21&&Pl(21),Rl(8),Pl(62)}ic.endNonterminal(\"DirElemConstructor\",Vl)}function Xi(){Hl(55),Rl(4),Hl(20),$i();switch($l){case 49:Hl(49);break;default:Hl(62);for(;;){Rl(196);if($l==57)break;ts()}Hl(57),Rl(4),Hl(20),Rl(12),$l==21&&Hl(21),Rl(8),Hl(62)}}function Vi(){ic.startNonterminal(\"DirAttributeList\",Vl);for(;;){Rl(19);if($l!=21)break;Pl(21),Rl(94),$l==20&&(Pl(20),Rl(11),$l==21&&Pl(21),Rl(7),Pl(61),Rl(18),$l==21&&Pl(21),Ji())}ic.endNonterminal(\"DirAttributeList\",Vl)}function $i(){for(;;){Rl(19);if($l!=21)break;Hl(21),Rl(94),$l==20&&(Hl(20),Rl(11),$l==21&&Hl(21),Rl(7),Hl(61),Rl(18),$l==21&&Hl(21),Ki())}}function Ji(){ic.startNonterminal(\"DirAttributeValue\",Vl),Rl(14);switch($l){case 28:Pl(28);for(;;){Rl(185);if($l==28)break;switch($l){case 13:Pl(13);break;default:Qi()}}Pl(28);break;default:Pl(34);for(;;){Rl(186);if($l==34)break;switch($l){case 14:Pl(14);break;default:Yi()}}Pl(34)}ic.endNonterminal(\"DirAttributeValue\",Vl)}function Ki(){Rl(14);switch($l){case 28:Hl(28);for(;;){Rl(185);if($l==28)break;switch($l){case 13:Hl(13);break;default:Gi()}}Hl(28);break;default:Hl(34);for(;;){Rl(186);if($l==34)break;switch($l){case 14:Hl(14);break;default:Zi()}}Hl(34)}}function Qi(){ic.startNonterminal(\"QuotAttrValueContent\",Vl);switch($l){case 16:Pl(16);break;default:il()}ic.endNonterminal(\"QuotAttrValueContent\",Vl)}function Gi(){switch($l){case 16:Hl(16);break;default:sl()}}function Yi(){ic.startNonterminal(\"AposAttrValueContent\",Vl);switch($l){case 17:Pl(17);break;default:il()}ic.endNonterminal(\"AposAttrValueContent\",Vl)}function Zi(){switch($l){case 17:Hl(17);break;default:sl()}}function es(){ic.startNonterminal(\"DirElemContent\",Vl);switch($l){case 55:case 56:case 60:Ui();break;case 4:Pl(4);break;case 15:Pl(15);break;default:il()}ic.endNonterminal(\"DirElemContent\",Vl)}function ts(){switch($l){case 55:case 56:case 60:zi();break;case 4:Hl(4);break;case 15:Hl(15);break;default:sl()}}function ns(){ic.startNonterminal(\"DirCommentConstructor\",Vl),Pl(56),Rl(1),Pl(2),Rl(6),Pl(44),ic.endNonterminal(\"DirCommentConstructor\",Vl)}function rs(){Hl(56),Rl(1),Hl(2),Rl(6),Hl(44)}function is(){ic.startNonterminal(\"DirPIConstructor\",Vl),Pl(60),Rl(3),Pl(18),Rl(13),$l==21&&(Pl(21),Rl(2),Pl(3)),Rl(9),Pl(66),ic.endNonterminal(\"DirPIConstructor\",Vl)}function ss(){Hl(60),Rl(3),Hl(18),Rl(13),$l==21&&(Hl(21),Rl(2),Hl(3)),Rl(9),Hl(66)}function os(){ic.startNonterminal(\"ComputedConstructor\",Vl);switch($l){case 120:al();break;case 122:as();break;case 83:ll();break;case 187:ls();break;case 249:ml();break;case 97:dl();break;default:hl()}ic.endNonterminal(\"ComputedConstructor\",Vl)}function us(){switch($l){case 120:fl();break;case 122:fs();break;case 83:cl();break;case 187:cs();break;case 249:gl();break;case 97:vl();break;default:pl()}}function as(){ic.startNonterminal(\"CompElemConstructor\",Vl),Pl(122),Il(250);switch($l){case 281:Pl(281),Il(267),jl(),G(),Pl(287);break;default:jl(),$a()}Il(90),Pl(281),Il(281),$l!=287&&(jl(),ol()),Pl(287),ic.endNonterminal(\"CompElemConstructor\",Vl)}function fs(){Hl(122),Il(250);switch($l){case 281:Hl(281),Il(267),Y(),Hl(287);break;default:Ja()}Il(90),Hl(281),Il(281),$l!=287&&ul(),Hl(287)}function ls(){ic.startNonterminal(\"CompNamespaceConstructor\",Vl),Pl(187),Il(242);switch($l){case 281:Pl(281),Il(267),jl(),ds(),Pl(287);break;default:jl(),hs()}Il(90),Pl(281),Il(267),jl(),ms(),Pl(287),ic.endNonterminal(\"CompNamespaceConstructor\",Vl)}function cs(){Hl(187),Il(242);switch($l){case 281:Hl(281),Il(267),vs(),Hl(287);break;default:ps()}Il(90),Hl(281),Il(267),gs(),Hl(287)}function hs(){ic.startNonterminal(\"Prefix\",Vl),Ga(),ic.endNonterminal(\"Prefix\",Vl)}function ps(){Ya()}function ds(){ic.startNonterminal(\"PrefixExpr\",Vl),G(),ic.endNonterminal(\"PrefixExpr\",Vl)}function vs(){Y()}function ms(){ic.startNonterminal(\"URIExpr\",Vl),G(),ic.endNonterminal(\"URIExpr\",Vl)}function gs(){Y()}function ys(){ic.startNonterminal(\"FunctionItemExpr\",Vl);switch($l){case 147:ql(95);break;default:Wl=$l}switch(Wl){case 33:case 18067:Ss();break;default:ws()}ic.endNonterminal(\"FunctionItemExpr\",Vl)}function bs(){switch($l){case 147:ql(95);break;default:Wl=$l}switch(Wl){case 33:case 18067:xs();break;default:Es()}}function ws(){ic.startNonterminal(\"NamedFunctionRef\",Vl),$a(),Il(20),Pl(29),Il(16),Pl(8),ic.endNonterminal(\"NamedFunctionRef\",Vl)}function Es(){Ja(),Il(20),Hl(29),Il(16),Hl(8)}function Ss(){ic.startNonterminal(\"InlineFunctionExpr\",Vl);for(;;){Il(101);if($l!=33)break;jl(),B()}Pl(147),Il(22),Pl(35),Il(98),$l==31&&(jl(),U()),Pl(38),Il(115),$l==80&&(Pl(80),Il(254),jl(),Ls()),Il(90),jl(),V(),ic.endNonterminal(\"InlineFunctionExpr\",Vl)}function xs(){for(;;){Il(101);if($l!=33)break;j()}Hl(147),Il(22),Hl(35),Il(98),$l==31&&z(),Hl(38),Il(115),$l==80&&(Hl(80),Il(254),As()),Il(90),$()}function Ts(){ic.startNonterminal(\"SingleType\",Vl),ko(),Il(226),$l==65&&Pl(65),ic.endNonterminal(\"SingleType\",Vl)}function Ns(){Lo(),Il(226),$l==65&&Hl(65)}function Cs(){ic.startNonterminal(\"TypeDeclaration\",Vl),Pl(80),Il(254),jl(),Ls(),ic.endNonterminal(\"TypeDeclaration\",Vl)}function ks(){Hl(80),Il(254),As()}function Ls(){ic.startNonterminal(\"SequenceType\",Vl);switch($l){case 35:ql(259);break;case 125:ql(233);break;default:Wl=$l}switch(Wl){case 18045:case 19491:$l==125&&Pl(125),Il(22),Pl(35),Il(23),Pl(38);break;default:_s(),Il(229);switch($l){case 40:case 41:case 65:jl(),Os();break;default:}}ic.endNonterminal(\"SequenceType\",Vl)}function As(){switch($l){case 35:ql(259);break;case 125:ql(233);break;default:Wl=$l}switch(Wl){case 18045:case 19491:$l==125&&Hl(125),Il(22),Hl(35),Il(23),Hl(38);break;default:Ds(),Il(229);switch($l){case 40:case 41:case 65:Ms();break;default:}}}function Os(){ic.startNonterminal(\"OccurrenceIndicator\",Vl);switch($l){case 65:Pl(65);break;case 40:Pl(40);break;default:Pl(41)}ic.endNonterminal(\"OccurrenceIndicator\",Vl)}function Ms(){switch($l){case 65:Hl(65);break;case 40:Hl(40);break;default:Hl(41)}}function _s(){ic.startNonterminal(\"ItemType\",Vl);switch($l){case 79:case 83:case 97:case 121:case 122:case 147:case 167:case 169:case 188:case 194:case 198:case 220:case 230:case 231:case 247:case 249:ql(233);break;default:Wl=$l}if(Wl==12879||Wl==12969||Wl==12998||Wl==13047||Wl==13903||Wl==13993||Wl==14022||Wl==14071||Wl==19535||Wl==19625||Wl==19654||Wl==19703||Wl==20047||Wl==20137||Wl==20166||Wl==20215||Wl==20559||Wl==20649||Wl==20678||Wl==20727||Wl==21071||Wl==21161||Wl==21190||Wl==21239||Wl==21583||Wl==21673||Wl==21702||Wl==21751||Wl==22095||Wl==22185||Wl==22214||Wl==22263||Wl==25679||Wl==25769||Wl==25798||Wl==25847||Wl==27215||Wl==27305||Wl==27334||Wl==27383||Wl==27727||Wl==27817||Wl==27846||Wl==27895||Wl==28239||Wl==28329||Wl==28358||Wl==28407||Wl==29775||Wl==29865||Wl==29894||Wl==29943||Wl==30287||Wl==30377||Wl==30406||Wl==30455||Wl==31311||Wl==31401||Wl==31430||Wl==31479||Wl==31823||Wl==31913||Wl==31942||Wl==31991||Wl==32335||Wl==32425||Wl==32454||Wl==32503||Wl==32847||Wl==32937||Wl==32966||Wl==33015||Wl==33359||Wl==33449||Wl==33478||Wl==33527||Wl==35919||Wl==36009||Wl==36038||Wl==36087||Wl==36431||Wl==36521||Wl==36550||Wl==36599||Wl==37455||Wl==37545||Wl==37574||Wl==37623||Wl==38991||Wl==39081||Wl==39110||Wl==39159||Wl==41039||Wl==41129||Wl==41158||Wl==41207||Wl==41551||Wl==41641||Wl==41670||Wl==41719||Wl==42063||Wl==42153||Wl==42182||Wl==42231||Wl==43599||Wl==43689||Wl==43718||Wl==43767||Wl==45647||Wl==45737||Wl==45766||Wl==45815||Wl==48719||Wl==48809||Wl==48838||Wl==48887||Wl==51279||Wl==51369||Wl==51398||Wl==51447||Wl==54351||Wl==54441||Wl==54470||Wl==54519||Wl==56399||Wl==56489||Wl==56518||Wl==56567||Wl==58447||Wl==58537||Wl==58566||Wl==58615||Wl==61007||Wl==61097||Wl==61126||Wl==61175||Wl==63055||Wl==63145||Wl==63174||Wl==63223||Wl==63567||Wl==63657||Wl==63686||Wl==63735||Wl==65103||Wl==65193||Wl==65222||Wl==65271||Wl==66127||Wl==66217||Wl==66246||Wl==66295||Wl==67663||Wl==67753||Wl==67782||Wl==67831||Wl==68687||Wl==68777||Wl==68806||Wl==68855||Wl==71247||Wl==71337||Wl==71366||Wl==71415||Wl==75855||Wl==75945||Wl==75974||Wl==76023||Wl==76879||Wl==76969||Wl==76998||Wl==77047||Wl==77903||Wl==77993||Wl==78022||Wl==78071||Wl==78415||Wl==78505||Wl==78534||Wl==78583||Wl==79951||Wl==80041||Wl==80070||Wl==80119||Wl==83023||Wl==83113||Wl==83142||Wl==83191||Wl==84047||Wl==84137||Wl==84166||Wl==84215||Wl==84559||Wl==84649||Wl==84678||Wl==84727||Wl==85071||Wl==85161||Wl==85190||Wl==85239||Wl==89679||Wl==89769||Wl==89798||Wl==89847||Wl==90703||Wl==90793||Wl==90822||Wl==90871||Wl==92751||Wl==92841||Wl==92870||Wl==92919||Wl==93775||Wl==93865||Wl==93894||Wl==93943||Wl==94287||Wl==94377||Wl==94406||Wl==94455||Wl==96847||Wl==96937||Wl==96966||Wl==97015||Wl==103503||Wl==103593||Wl==103622||Wl==103671||Wl==104527||Wl==104617||Wl==104646||Wl==104695||Wl==105039||Wl==105129||Wl==105158||Wl==105207||Wl==107087||Wl==107177||Wl==107206||Wl==107255||Wl==114767||Wl==114857||Wl==114886||Wl==114935||Wl==116815||Wl==116905||Wl==116934||Wl==116983||Wl==118863||Wl==118953||Wl==118982||Wl==119031||Wl==121423||Wl==121513||Wl==121542||Wl==121591||Wl==123471||Wl==123561||Wl==123590||Wl==123639||Wl==123983||Wl==124073||Wl==124102||Wl==124151||Wl==129103||Wl==129193||Wl==129222||Wl==129271||Wl==129615||Wl==129705||Wl==129734||Wl==129783||Wl==133199||Wl==133289||Wl==133318||Wl==133367||Wl==139343||Wl==139433||Wl==139462||Wl==139511||Wl==141391||Wl==141481||Wl==141510||Wl==141559||Wl==142927||Wl==143017||Wl==143046||Wl==143095||Wl==143951||Wl==144041||Wl==144070||Wl==144119||Wl==145487||Wl==145577||Wl==145606||Wl==145655||Wl==145999||Wl==146089||Wl==146118||Wl==146167||Wl==146511||Wl==146601||Wl==146630||Wl==146679||Wl==147023||Wl==147113||Wl==147142||Wl==147191){Wl=uc(6,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Xs(),Wl=-4}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Hs(),Wl=-6}catch(f){Wl=-7}}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(6,Vl,Wl)}}switch(Wl){case 18003:case 18017:case 18041:case 18042:case 18108:case 18114:case 18140:case 18150:case 18151:case 18169:Vs();break;case 18087:Pl(167),Il(22),Pl(35),Il(23),Pl(38);break;case 33:case 18067:Mo();break;case 35:jo();break;case-6:case 17999:case 18089:case 18118:Ps();break;case-7:case 18167:Bs();break;default:Ws()}ic.endNonterminal(\"ItemType\",Vl)}function Ds(){switch($l){case 79:case 83:case 97:case 121:case 122:case 147:case 167:case 169:case 188:case 194:case 198:case 220:case 230:case 231:case 247:case 249:ql(233);break;default:Wl=$l}if(Wl==12879||Wl==12969||Wl==12998||Wl==13047||Wl==13903||Wl==13993||Wl==14022||Wl==14071||Wl==19535||Wl==19625||Wl==19654||Wl==19703||Wl==20047||Wl==20137||Wl==20166||Wl==20215||Wl==20559||Wl==20649||Wl==20678||Wl==20727||Wl==21071||Wl==21161||Wl==21190||Wl==21239||Wl==21583||Wl==21673||Wl==21702||Wl==21751||Wl==22095||Wl==22185||Wl==22214||Wl==22263||Wl==25679||Wl==25769||Wl==25798||Wl==25847||Wl==27215||Wl==27305||Wl==27334||Wl==27383||Wl==27727||Wl==27817||Wl==27846||Wl==27895||Wl==28239||Wl==28329||Wl==28358||Wl==28407||Wl==29775||Wl==29865||Wl==29894||Wl==29943||Wl==30287||Wl==30377||Wl==30406||Wl==30455||Wl==31311||Wl==31401||Wl==31430||Wl==31479||Wl==31823||Wl==31913||Wl==31942||Wl==31991||Wl==32335||Wl==32425||Wl==32454||Wl==32503||Wl==32847||Wl==32937||Wl==32966||Wl==33015||Wl==33359||Wl==33449||Wl==33478||Wl==33527||Wl==35919||Wl==36009||Wl==36038||Wl==36087||Wl==36431||Wl==36521||Wl==36550||Wl==36599||Wl==37455||Wl==37545||Wl==37574||Wl==37623||Wl==38991||Wl==39081||Wl==39110||Wl==39159||Wl==41039||Wl==41129||Wl==41158||Wl==41207||Wl==41551||Wl==41641||Wl==41670||Wl==41719||Wl==42063||Wl==42153||Wl==42182||Wl==42231||Wl==43599||Wl==43689||Wl==43718||Wl==43767||Wl==45647||Wl==45737||Wl==45766||Wl==45815||Wl==48719||Wl==48809||Wl==48838||Wl==48887||Wl==51279||Wl==51369||Wl==51398||Wl==51447||Wl==54351||Wl==54441||Wl==54470||Wl==54519||Wl==56399||Wl==56489||Wl==56518||Wl==56567||Wl==58447||Wl==58537||Wl==58566||Wl==58615||Wl==61007||Wl==61097||Wl==61126||Wl==61175||Wl==63055||Wl==63145||Wl==63174||Wl==63223||Wl==63567||Wl==63657||Wl==63686||Wl==63735||Wl==65103||Wl==65193||Wl==65222||Wl==65271||Wl==66127||Wl==66217||Wl==66246||Wl==66295||Wl==67663||Wl==67753||Wl==67782||Wl==67831||Wl==68687||Wl==68777||Wl==68806||Wl==68855||Wl==71247||Wl==71337||Wl==71366||Wl==71415||Wl==75855||Wl==75945||Wl==75974||Wl==76023||Wl==76879||Wl==76969||Wl==76998||Wl==77047||Wl==77903||Wl==77993||Wl==78022||Wl==78071||Wl==78415||Wl==78505||Wl==78534||Wl==78583||Wl==79951||Wl==80041||Wl==80070||Wl==80119||Wl==83023||Wl==83113||Wl==83142||Wl==83191||Wl==84047||Wl==84137||Wl==84166||Wl==84215||Wl==84559||Wl==84649||Wl==84678||Wl==84727||Wl==85071||Wl==85161||Wl==85190||Wl==85239||Wl==89679||Wl==89769||Wl==89798||Wl==89847||Wl==90703||Wl==90793||Wl==90822||Wl==90871||Wl==92751||Wl==92841||Wl==92870||Wl==92919||Wl==93775||Wl==93865||Wl==93894||Wl==93943||Wl==94287||Wl==94377||Wl==94406||Wl==94455||Wl==96847||Wl==96937||Wl==96966||Wl==97015||Wl==103503||Wl==103593||Wl==103622||Wl==103671||Wl==104527||Wl==104617||Wl==104646||Wl==104695||Wl==105039||Wl==105129||Wl==105158||Wl==105207||Wl==107087||Wl==107177||Wl==107206||Wl==107255||Wl==114767||Wl==114857||Wl==114886||Wl==114935||Wl==116815||Wl==116905||Wl==116934||Wl==116983||Wl==118863||Wl==118953||Wl==118982||Wl==119031||Wl==121423||Wl==121513||Wl==121542||Wl==121591||Wl==123471||Wl==123561||Wl==123590||Wl==123639||Wl==123983||Wl==124073||Wl==124102||Wl==124151||Wl==129103||Wl==129193||Wl==129222||Wl==129271||Wl==129615||Wl==129705||Wl==129734||Wl==129783||Wl==133199||Wl==133289||Wl==133318||Wl==133367||Wl==139343||Wl==139433||Wl==139462||Wl==139511||Wl==141391||Wl==141481||Wl==141510||Wl==141559||Wl==142927||Wl==143017||Wl==143046||Wl==143095||Wl==143951||Wl==144041||Wl==144070||Wl==144119||Wl==145487||Wl==145577||Wl==145606||Wl==145655||Wl==145999||Wl==146089||Wl==146118||Wl==146167||Wl==146511||Wl==146601||Wl==146630||Wl==146679||Wl==147023||Wl==147113||Wl==147142||Wl==147191){Wl=uc(6,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Xs(),oc(6,t,-4),Wl=-8}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Hs(),oc(6,t,-6),Wl=-8}catch(f){Wl=-7,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(6,t,-7)}}}}switch(Wl){case 18003:case 18017:case 18041:case 18042:case 18108:case 18114:case 18140:case 18150:case 18151:case 18169:$s();break;case 18087:Hl(167),Il(22),Hl(35),Il(23),Hl(38);break;case 33:case 18067:_o();break;case 35:Fo();break;case-6:case 17999:case 18089:case 18118:Hs();break;case-7:case 18167:js();break;case-8:break;default:Xs()}}function Ps(){ic.startNonterminal(\"JSONTest\",Vl);switch($l){case 169:Fs();break;case 198:qs();break;default:Us()}ic.endNonterminal(\"JSONTest\",Vl)}function Hs(){switch($l){case 169:Is();break;case 198:Rs();break;default:zs()}}function Bs(){ic.startNonterminal(\"StructuredItemTest\",Vl),Pl(247),Il(233),$l==35&&(Pl(35),Il(23),Pl(38)),ic.endNonterminal(\"StructuredItemTest\",Vl)}function js(){Hl(247),Il(233),$l==35&&(Hl(35),Il(23),Hl(38))}function Fs(){ic.startNonterminal(\"JSONItemTest\",Vl),Pl(169),Il(233),$l==35&&(Pl(35),Il(23),Pl(38)),ic.endNonterminal(\"JSONItemTest\",Vl)}function Is(){Hl(169),Il(233),$l==35&&(Hl(35),Il(23),Hl(38))}function qs(){ic.startNonterminal(\"JSONObjectTest\",Vl),Pl(198),Il(233),$l==35&&(Pl(35),Il(23),Pl(38)),ic.endNonterminal(\"JSONObjectTest\",Vl)}function Rs(){Hl(198),Il(233),$l==35&&(Hl(35),Il(23),Hl(38))}function Us(){ic.startNonterminal(\"JSONArrayTest\",Vl),Pl(79),Il(233),$l==35&&(Pl(35),Il(23),Pl(38)),ic.endNonterminal(\"JSONArrayTest\",Vl)}function zs(){Hl(79),Il(233),$l==35&&(Hl(35),Il(23),Hl(38))}function Ws(){ic.startNonterminal(\"AtomicOrUnionType\",Vl),$a(),ic.endNonterminal(\"AtomicOrUnionType\",Vl)}function Xs(){Ja()}function Vs(){ic.startNonterminal(\"KindTest\",Vl);switch($l){case 121:Qs();break;case 122:vo();break;case 83:oo();break;case 231:bo();break;case 230:lo();break;case 220:io();break;case 97:eo();break;case 249:Ys();break;case 188:no();break;default:Js()}ic.endNonterminal(\"KindTest\",Vl)}function $s(){switch($l){case 121:Gs();break;case 122:mo();break;case 83:uo();break;case 231:wo();break;case 230:co();break;case 220:so();break;case 97:to();break;case 249:Zs();break;case 188:ro();break;default:Ks()}}function Js(){ic.startNonterminal(\"AnyKindTest\",Vl),Pl(194),Il(22),Pl(35),Il(23),Pl(38),ic.endNonterminal(\"AnyKindTest\",Vl)}function Ks(){Hl(194),Il(22),Hl(35),Il(23),Hl(38)}function Qs(){ic.startNonterminal(\"DocumentTest\",Vl),Pl(121),Il(22),Pl(35),Il(154);if($l!=38)switch($l){case 122:jl(),vo();break;default:jl(),bo()}Il(23),Pl(38),ic.endNonterminal(\"DocumentTest\",Vl)}function Gs(){Hl(121),Il(22),Hl(35),Il(154);if($l!=38)switch($l){case 122:mo();break;default:wo()}Il(23),Hl(38)}function Ys(){ic.startNonterminal(\"TextTest\",Vl),Pl(249),Il(22),Pl(35),Il(23),Pl(38),ic.endNonterminal(\"TextTest\",Vl)}function Zs(){Hl(249),Il(22),Hl(35),Il(23),Hl(38)}function eo(){ic.startNonterminal(\"CommentTest\",Vl),Pl(97),Il(22),Pl(35),Il(23),Pl(38),ic.endNonterminal(\"CommentTest\",Vl)}function to(){Hl(97),Il(22),Hl(35),Il(23),Hl(38)}function no(){ic.startNonterminal(\"NamespaceNodeTest\",Vl),Pl(188),Il(22),Pl(35),Il(23),Pl(38),ic.endNonterminal(\"NamespaceNodeTest\",Vl)}function ro(){Hl(188),Il(22),Hl(35),Il(23),Hl(38)}function io(){ic.startNonterminal(\"PITest\",Vl),Pl(220),Il(22),Pl(35),Il(244);if($l!=38)switch($l){case 11:Pl(11);break;default:jl(),Ga()}Il(23),Pl(38),ic.endNonterminal(\"PITest\",Vl)}function so(){Hl(220),Il(22),Hl(35),Il(244);if($l!=38)switch($l){case 11:Hl(11);break;default:Ya()}Il(23),Hl(38)}function oo(){ic.startNonterminal(\"AttributeTest\",Vl),Pl(83),Il(22),Pl(35),Il(255),$l!=38&&(jl(),ao(),Il(105),$l==42&&(Pl(42),Il(246),jl(),Ao())),Il(23),Pl(38),ic.endNonterminal(\"AttributeTest\",Vl)}function uo(){Hl(83),Il(22),Hl(35),Il(255),$l!=38&&(fo(),Il(105),$l==42&&(Hl(42),Il(246),Oo())),Il(23),Hl(38)}function ao(){ic.startNonterminal(\"AttribNameOrWildcard\",Vl);switch($l){case 39:Pl(39);break;default:xo()}ic.endNonterminal(\"AttribNameOrWildcard\",Vl)}function fo(){switch($l){case 39:Hl(39);break;default:To()}}function lo(){ic.startNonterminal(\"SchemaAttributeTest\",Vl),Pl(230),Il(22),Pl(35),Il(246),jl(),ho(),Il(23),Pl(38),ic.endNonterminal(\"SchemaAttributeTest\",Vl)}function co(){Hl(230),Il(22),Hl(35),Il(246),po(),Il(23),Hl(38)}function ho(){ic.startNonterminal(\"AttributeDeclaration\",Vl),xo(),ic.endNonterminal(\"AttributeDeclaration\",Vl)}function po(){To()}function vo(){ic.startNonterminal(\"ElementTest\",Vl),Pl(122),Il(22),Pl(35),Il(255),$l!=38&&(jl(),go(),Il(105),$l==42&&(Pl(42),Il(246),jl(),Ao(),Il(106),$l==65&&Pl(65))),Il(23),Pl(38),ic.endNonterminal(\"ElementTest\",Vl)}function mo(){Hl(122),Il(22),Hl(35),Il(255),$l!=38&&(yo(),Il(105),$l==42&&(Hl(42),Il(246),Oo(),Il(106),$l==65&&Hl(65))),Il(23),Hl(38)}function go(){ic.startNonterminal(\"ElementNameOrWildcard\",Vl);switch($l){case 39:Pl(39);break;default:No()}ic.endNonterminal(\"ElementNameOrWildcard\",Vl)}function yo(){switch($l){case 39:Hl(39);break;default:Co()}}function bo(){ic.startNonterminal(\"SchemaElementTest\",Vl),Pl(231),Il(22),Pl(35),Il(246),jl(),Eo(),Il(23),Pl(38),ic.endNonterminal(\"SchemaElementTest\",Vl)}function wo(){Hl(231),Il(22),Hl(35),Il(246),So(),Il(23),Hl(38)}function Eo(){ic.startNonterminal(\"ElementDeclaration\",Vl),No(),ic.endNonterminal(\"ElementDeclaration\",Vl)}function So(){Co()}function xo(){ic.startNonterminal(\"AttributeName\",Vl),$a(),ic.endNonterminal(\"AttributeName\",Vl)}function To(){Ja()}function No(){ic.startNonterminal(\"ElementName\",Vl),$a(),ic.endNonterminal(\"ElementName\",Vl)}function Co(){Ja()}function ko(){ic.startNonterminal(\"SimpleTypeName\",Vl),Ao(),ic.endNonterminal(\"SimpleTypeName\",Vl)}function Lo(){Oo()}function Ao(){ic.startNonterminal(\"TypeName\",Vl),$a(),ic.endNonterminal(\"TypeName\",Vl)}function Oo(){Ja()}function Mo(){ic.startNonterminal(\"FunctionTest\",Vl);for(;;){Il(101);if($l!=33)break;jl(),B()}switch($l){case 147:ql(22);break;default:Wl=$l}Wl=uc(7,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Po(),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(7,Vl,Wl)}switch(Wl){case-1:jl(),Do();break;default:jl(),Ho()}ic.endNonterminal(\"FunctionTest\",Vl)}function _o(){for(;;){Il(101);if($l!=33)break;j()}switch($l){case 147:ql(22);break;default:Wl=$l}Wl=uc(7,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Po(),oc(7,t,-1),Wl=-3}catch(a){Wl=-2,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(7,t,-2)}}switch(Wl){case-1:Po();break;case-3:break;default:Bo()}}function Do(){ic.startNonterminal(\"AnyFunctionTest\",Vl),Pl(147),Il(22),Pl(35),Il(24),Pl(39),Il(23),Pl(38),ic.endNonterminal(\"AnyFunctionTest\",Vl)}function Po(){Hl(147),Il(22),Hl(35),Il(24),Hl(39),Il(23),Hl(38)}function Ho(){ic.startNonterminal(\"TypedFunctionTest\",Vl),Pl(147),Il(22),Pl(35),Il(259);if($l!=38){jl(),Ls();for(;;){Il(105);if($l!=42)break;Pl(42),Il(254),jl(),Ls()}}Pl(38),Il(33),Pl(80),Il(254),jl(),Ls(),ic.endNonterminal(\"TypedFunctionTest\",Vl)}function Bo(){Hl(147),Il(22),Hl(35),Il(259);if($l!=38){As();for(;;){Il(105);if($l!=42)break;Hl(42),Il(254),As()}}Hl(38),Il(33),Hl(80),Il(254),As()}function jo(){ic.startNonterminal(\"ParenthesizedItemType\",Vl),Pl(35),Il(254),jl(),_s(),Il(23),Pl(38),ic.endNonterminal(\"ParenthesizedItemType\",Vl)}function Fo(){Hl(35),Il(254),Ds(),Il(23),Hl(38)}function Io(){ic.startNonterminal(\"RevalidationDecl\",Vl),Pl(109),Il(75),Pl(226),Il(162);switch($l){case 245:Pl(245);break;case 174:Pl(174);break;default:Pl(238)}ic.endNonterminal(\"RevalidationDecl\",Vl)}function qo(){ic.startNonterminal(\"InsertExprTargetChoice\",Vl);switch($l){case 71:Pl(71);break;case 85:Pl(85);break;default:if($l==80){Pl(80),Il(123);switch($l){case 136:Pl(136);break;default:Pl(173)}}Il(57),Pl(165)}ic.endNonterminal(\"InsertExprTargetChoice\",Vl)}function Ro(){switch($l){case 71:Hl(71);break;case 85:Hl(85);break;default:if($l==80){Hl(80),Il(123);switch($l){case 136:Hl(136);break;default:Hl(173)}}Il(57),Hl(165)}}function Uo(){ic.startNonterminal(\"InsertExpr\",Vl),Pl(161),Il(133);switch($l){case 194:Pl(194);break;default:Pl(195)}Il(267),jl(),Qo(),jl(),qo(),Il(267),jl(),Yo(),ic.endNonterminal(\"InsertExpr\",Vl)}function zo(){Hl(161),Il(133);switch($l){case 194:Hl(194);break;default:Hl(195)}Il(267),Go(),Ro(),Il(267),Zo()}function Wo(){ic.startNonterminal(\"DeleteExpr\",Vl),Pl(111),Il(133);switch($l){case 194:Pl(194);break;default:Pl(195)}Il(267),jl(),Yo(),ic.endNonterminal(\"DeleteExpr\",Vl)}function Xo(){Hl(111),Il(133);switch($l){case 194:Hl(194);break;default:Hl(195)}Il(267),Zo()}function Vo(){ic.startNonterminal(\"ReplaceExpr\",Vl),Pl(223),Il(134),$l==267&&(Pl(267),Il(67),Pl(200)),Il(65),Pl(194),Il(267),jl(),Yo(),Pl(276),Il(267),jl(),Wf(),ic.endNonterminal(\"ReplaceExpr\",Vl)}function $o(){Hl(223),Il(134),$l==267&&(Hl(267),Il(67),Hl(200)),Il(65),Hl(194),Il(267),Zo(),Hl(276),Il(267),Xf()}function Jo(){ic.startNonterminal(\"RenameExpr\",Vl),Pl(222),Il(65),Pl(194),Il(267),jl(),Yo(),Pl(80),Il(267),jl(),eu(),ic.endNonterminal(\"RenameExpr\",Vl)}function Ko(){Hl(222),Il(65),Hl(194),Il(267),Zo(),Hl(80),Il(267),tu()}function Qo(){ic.startNonterminal(\"SourceExpr\",Vl),Wf(),ic.endNonterminal(\"SourceExpr\",Vl)}function Go(){Xf()}function Yo(){ic.startNonterminal(\"TargetExpr\",Vl),Wf(),ic.endNonterminal(\"TargetExpr\",Vl)}function Zo(){Xf()}function eu(){ic.startNonterminal(\"NewNameExpr\",Vl),Wf(),ic.endNonterminal(\"NewNameExpr\",Vl)}function tu(){Xf()}function nu(){ic.startNonterminal(\"TransformExpr\",Vl),Pl(104),Il(21),jl(),iu();for(;;){if($l!=42)break;Pl(42),Il(21),jl(),iu()}Pl(184),Il(267),jl(),Wf(),Pl(224),Il(267),jl(),Wf(),ic.endNonterminal(\"TransformExpr\",Vl)}function ru(){Hl(104),Il(21),su();for(;;){if($l!=42)break;Hl(42),Il(21),su()}Hl(184),Il(267),Xf(),Hl(224),Il(267),Xf()}function iu(){ic.startNonterminal(\"TransformSpec\",Vl),Pl(31),Il(246),jl(),Ti(),Il(28),Pl(53),Il(267),jl(),Wf(),ic.endNonterminal(\"TransformSpec\",Vl)}function su(){Hl(31),Il(246),Ni(),Il(28),Hl(53),Il(267),Xf()}function ou(){ic.startNonterminal(\"FTSelection\",Vl),lu();for(;;){Il(212);switch($l){case 82:ql(161);break;default:Wl=$l}if(Wl!=116&&Wl!=118&&Wl!=128&&Wl!=206&&Wl!=227&&Wl!=275&&Wl!=65106&&Wl!=123986)break;jl(),Pu()}ic.endNonterminal(\"FTSelection\",Vl)}function uu(){cu();for(;;){Il(212);switch($l){case 82:ql(161);break;default:Wl=$l}if(Wl!=116&&Wl!=118&&Wl!=128&&Wl!=206&&Wl!=227&&Wl!=275&&Wl!=65106&&Wl!=123986)break;Hu()}}function au(){ic.startNonterminal(\"FTWeight\",Vl),Pl(270),Il(90),Pl(281),Il(267),jl(),G(),Pl(287),ic.endNonterminal(\"FTWeight\",Vl)}function fu(){Hl(270),Il(90),Hl(281),Il(267),Y(),Hl(287)}function lu(){ic.startNonterminal(\"FTOr\",Vl),hu();for(;;){if($l!=146)break;Pl(146),Il(177),jl(),hu()}ic.endNonterminal(\"FTOr\",Vl)}function cu(){pu();for(;;){if($l!=146)break;Hl(146),Il(177),pu()}}function hu(){ic.startNonterminal(\"FTAnd\",Vl),du();for(;;){if($l!=144)break;Pl(144),Il(177),jl(),du()}ic.endNonterminal(\"FTAnd\",Vl)}function pu(){vu();for(;;){if($l!=144)break;Hl(144),Il(177),vu()}}function du(){ic.startNonterminal(\"FTMildNot\",Vl),mu();for(;;){Il(213);if($l!=196)break;Pl(196),Il(56),Pl(156),Il(177),jl(),mu()}ic.endNonterminal(\"FTMildNot\",Vl)}function vu(){gu();for(;;){Il(213);if($l!=196)break;Hl(196),Il(56),Hl(156),Il(177),gu()}}function mu(){ic.startNonterminal(\"FTUnaryNot\",Vl),$l==145&&Pl(145),Il(164),jl(),yu(),ic.endNonterminal(\"FTUnaryNot\",Vl)}function gu(){$l==145&&Hl(145),Il(164),bu()}function yu(){ic.startNonterminal(\"FTPrimaryWithOptions\",Vl),wu(),Il(214),$l==265&&(jl(),Qu()),$l==270&&(jl(),au()),ic.endNonterminal(\"FTPrimaryWithOptions\",Vl)}function bu(){Eu(),Il(214),$l==265&&Gu(),$l==270&&fu()}function wu(){ic.startNonterminal(\"FTPrimary\",Vl);switch($l){case 35:Pl(35),Il(177),jl(),ou(),Pl(38);break;case 36:Cu();break;default:Su(),Il(215),$l==199&&(jl(),Ou())}ic.endNonterminal(\"FTPrimary\",Vl)}function Eu(){switch($l){case 35:Hl(35),Il(177),uu(),Hl(38);break;case 36:ku();break;default:xu(),Il(215),$l==199&&Mu()}}function Su(){ic.startNonterminal(\"FTWords\",Vl),Tu(),Il(221);if($l==72||$l==77||$l==214)jl(),Lu();ic.endNonterminal(\"FTWords\",Vl)}function xu(){Nu(),Il(221),($l==72||$l==77||$l==214)&&Au()}function Tu(){ic.startNonterminal(\"FTWordsValue\",Vl);switch($l){case 11:Pl(11);break;default:Pl(281),Il(267),jl(),G(),Pl(287)}ic.endNonterminal(\"FTWordsValue\",Vl)}function Nu(){switch($l){case 11:Hl(11);break;default:Hl(281),Il(267),Y(),Hl(287)}}function Cu(){ic.startNonterminal(\"FTExtensionSelection\",Vl);for(;;){jl(),Lr(),Il(104);if($l!=36)break}Pl(281),Il(184),$l!=287&&(jl(),ou()),Pl(287),ic.endNonterminal(\"FTExtensionSelection\",Vl)}function ku(){for(;;){Ar(),Il(104);if($l!=36)break}Hl(281),Il(184),$l!=287&&uu(),Hl(287)}function Lu(){ic.startNonterminal(\"FTAnyallOption\",Vl);switch($l){case 77:Pl(77),Il(218),$l==278&&Pl(278);break;case 72:Pl(72),Il(219),$l==279&&Pl(279);break;default:Pl(214)}ic.endNonterminal(\"FTAnyallOption\",Vl)}function Au(){switch($l){case 77:Hl(77),Il(218),$l==278&&Hl(278);break;case 72:Hl(72),Il(219),$l==279&&Hl(279);break;default:Hl(214)}}function Ou(){ic.startNonterminal(\"FTTimes\",Vl),Pl(199),Il(159),jl(),_u(),Pl(252),ic.endNonterminal(\"FTTimes\",Vl)}function Mu(){Hl(199),Il(159),Du(),Hl(252)}function _u(){ic.startNonterminal(\"FTRange\",Vl);switch($l){case 131:Pl(131),Il(266),jl(),Jn();break;case 82:Pl(82),Il(129);switch($l){case 176:Pl(176),Il(266),jl(),Jn();break;default:Pl(186),Il(266),jl(),Jn()}break;default:Pl(142),Il(266),jl(),Jn(),Pl(253),Il(266),jl(),Jn()}ic.endNonterminal(\"FTRange\",Vl)}function Du(){switch($l){case 131:Hl(131),Il(266),Kn();break;case 82:Hl(82),Il(129);switch($l){case 176:Hl(176),Il(266),Kn();break;default:Hl(186),Il(266),Kn()}break;default:Hl(142),Il(266),Kn(),Hl(253),Il(266),Kn()}}function Pu(){ic.startNonterminal(\"FTPosFilter\",Vl);switch($l){case 206:Bu();break;case 275:Fu();break;case 118:qu();break;case 116:case 227:Wu();break;default:Ju()}ic.endNonterminal(\"FTPosFilter\",Vl)}function Hu(){switch($l){case 206:ju();break;case 275:Iu();break;case 118:Ru();break;case 116:case 227:Xu();break;default:Ku()}}function Bu(){ic.startNonterminal(\"FTOrder\",Vl),Pl(206),ic.endNonterminal(\"FTOrder\",Vl)}function ju(){Hl(206)}function Fu(){ic.startNonterminal(\"FTWindow\",Vl),Pl(275),Il(266),jl(),Jn(),jl(),Uu(),ic.endNonterminal(\"FTWindow\",Vl)}function Iu(){Hl(275),Il(266),Kn(),zu()}function qu(){ic.startNonterminal(\"FTDistance\",Vl),Pl(118),Il(159),jl(),_u(),jl(),Uu(),ic.endNonterminal(\"FTDistance\",Vl)}function Ru(){Hl(118),Il(159),Du(),zu()}function Uu(){ic.startNonterminal(\"FTUnit\",Vl);switch($l){case 279:Pl(279);break;case 237:Pl(237);break;default:Pl(209)}ic.endNonterminal(\"FTUnit\",Vl)}function zu(){switch($l){case 279:Hl(279);break;case 237:Hl(237);break;default:Hl(209)}}function Wu(){ic.startNonterminal(\"FTScope\",Vl);switch($l){case 227:Pl(227);break;default:Pl(116)}Il(136),jl(),Vu(),ic.endNonterminal(\"FTScope\",Vl)}function Xu(){switch($l){case 227:Hl(227);break;default:Hl(116)}Il(136),$u()}function Vu(){ic.startNonterminal(\"FTBigUnit\",Vl);switch($l){case 236:Pl(236);break;default:Pl(208)}ic.endNonterminal(\"FTBigUnit\",Vl)}function $u(){switch($l){case 236:Hl(236);break;default:Hl(208)}}function Ju(){ic.startNonterminal(\"FTContent\",Vl);switch($l){case 82:Pl(82),Il(121);switch($l){case 242:Pl(242);break;default:Pl(127)}break;default:Pl(128),Il(45),Pl(101)}ic.endNonterminal(\"FTContent\",Vl)}function Ku(){switch($l){case 82:Hl(82),Il(121);switch($l){case 242:Hl(242);break;default:Hl(127)}break;default:Hl(128),Il(45),Hl(101)}}function Qu(){ic.startNonterminal(\"FTMatchOptions\",Vl);for(;;){Pl(265),Il(205),jl(),Yu(),Il(214);if($l!=265)break}ic.endNonterminal(\"FTMatchOptions\",Vl)}function Gu(){for(;;){Hl(265),Il(205),Zu(),Il(214);if($l!=265)break}}function Yu(){ic.startNonterminal(\"FTMatchOption\",Vl);switch($l){case 191:ql(176);break;default:Wl=$l}switch(Wl){case 172:ya();break;case 274:case 140479:wa();break;case 251:case 128703:oa();break;case 243:case 124607:ia();break;case 115:na();break;case 244:case 125119:ha();break;case 203:Sa();break;default:ea()}ic.endNonterminal(\"FTMatchOption\",Vl)}function Zu(){switch($l){case 191:ql(176);break;default:Wl=$l}switch(Wl){case 172:ba();break;case 274:case 140479:Ea();break;case 251:case 128703:ua();break;case 243:case 124607:sa();break;case 115:ra();break;case 244:case 125119:pa();break;case 203:xa();break;default:ta()}}function ea(){ic.startNonterminal(\"FTCaseOption\",Vl);switch($l){case 89:Pl(89),Il(128);switch($l){case 160:Pl(160);break;default:Pl(235)}break;case 180:Pl(180);break;default:Pl(264)}ic.endNonterminal(\"FTCaseOption\",Vl)}function ta(){switch($l){case 89:Hl(89),Il(128);switch($l){case 160:Hl(160);break;default:Hl(235)}break;case 180:Hl(180);break;default:Hl(264)}}function na(){ic.startNonterminal(\"FTDiacriticsOption\",Vl),Pl(115),Il(128);switch($l){case 160:Pl(160);break;default:Pl(235)}ic.endNonterminal(\"FTDiacriticsOption\",Vl)}function ra(){Hl(115),Il(128);switch($l){case 160:Hl(160);break;default:Hl(235)}}function ia(){ic.startNonterminal(\"FTStemOption\",Vl);switch($l){case 243:Pl(243);break;default:Pl(191),Il(77),Pl(243)}ic.endNonterminal(\"FTStemOption\",Vl)}function sa(){switch($l){case 243:Hl(243);break;default:Hl(191),Il(77),Hl(243)}}function oa(){ic.startNonterminal(\"FTThesaurusOption\",Vl);switch($l){case 251:Pl(251),Il(152);switch($l){case 82:jl(),aa();break;case 110:Pl(110);break;default:Pl(35),Il(116);switch($l){case 82:jl(),aa();break;default:Pl(110)}for(;;){Il(105);if($l!=42)break;Pl(42),Il(34),jl(),aa()}Pl(38)}break;default:Pl(191),Il(81),Pl(251)}ic.endNonterminal(\"FTThesaurusOption\",Vl)}function ua(){switch($l){case 251:Hl(251),Il(152);switch($l){case 82:fa();break;case 110:Hl(110);break;default:Hl(35),Il(116);switch($l){case 82:fa();break;default:Hl(110)}for(;;){Il(105);if($l!=42)break;Hl(42),Il(34),fa()}Hl(38)}break;default:Hl(191),Il(81),Hl(251)}}function aa(){ic.startNonterminal(\"FTThesaurusID\",Vl),Pl(82),Il(15),Pl(7),Il(220),$l==221&&(Pl(221),Il(17),Pl(11)),Il(216);switch($l){case 82:ql(183);break;default:Wl=$l}if(Wl==131||Wl==142||Wl==90194||Wl==95314)jl(),la(),Il(61),Pl(178);ic.endNonterminal(\"FTThesaurusID\",Vl)}function fa(){Hl(82),Il(15),Hl(7),Il(220),$l==221&&(Hl(221),Il(17),Hl(11)),Il(216);switch($l){case 82:ql(183);break;default:Wl=$l}if(Wl==131||Wl==142||Wl==90194||Wl==95314)ca(),Il(61),Hl(178)}function la(){ic.startNonterminal(\"FTLiteralRange\",Vl);switch($l){case 131:Pl(131),Il(16),Pl(8);break;case 82:Pl(82),Il(129);switch($l){case 176:Pl(176),Il(16),Pl(8);break;default:Pl(186),Il(16),Pl(8)}break;default:Pl(142),Il(16),Pl(8),Il(82),Pl(253),Il(16),Pl(8)}ic.endNonterminal(\"FTLiteralRange\",Vl)}function ca(){switch($l){case 131:Hl(131),Il(16),Hl(8);break;case 82:Hl(82),Il(129);switch($l){case 176:Hl(176),Il(16),Hl(8);break;default:Hl(186),Il(16),Hl(8)}break;default:Hl(142),Il(16),Hl(8),Il(82),Hl(253),Il(16),Hl(8)}}function ha(){ic.startNonterminal(\"FTStopWordOption\",Vl);switch($l){case 244:Pl(244),Il(89),Pl(279),Il(152);switch($l){case 110:Pl(110);for(;;){Il(217);if($l!=132&&$l!=260)break;jl(),ma()}break;default:jl(),da();for(;;){Il(217);if($l!=132&&$l!=260)break;jl(),ma()}}break;default:Pl(191),Il(78),Pl(244),Il(89),Pl(279)}ic.endNonterminal(\"FTStopWordOption\",Vl)}function pa(){switch($l){case 244:Hl(244),Il(89),Hl(279),Il(152);switch($l){case 110:Hl(110);for(;;){Il(217);if($l!=132&&$l!=260)break;ga()}break;default:va();for(;;){Il(217);if($l!=132&&$l!=260)break;ga()}}break;default:Hl(191),Il(78),Hl(244),Il(89),Hl(279)}}function da(){ic.startNonterminal(\"FTStopWords\",Vl);switch($l){case 82:Pl(82),Il(15),Pl(7);break;default:Pl(35),Il(17),Pl(11);for(;;){Il(105);if($l!=42)break;Pl(42),Il(17),Pl(11)}Pl(38)}ic.endNonterminal(\"FTStopWords\",Vl)}function va(){switch($l){case 82:Hl(82),Il(15),Hl(7);break;default:Hl(35),Il(17),Hl(11);for(;;){Il(105);if($l!=42)break;Hl(42),Il(17),Hl(11)}Hl(38)}}function ma(){ic.startNonterminal(\"FTStopWordsInclExcl\",Vl);switch($l){case 260:Pl(260);break;default:Pl(132)}Il(103),jl(),da(),ic.endNonterminal(\"FTStopWordsInclExcl\",Vl)}function ga(){switch($l){case 260:Hl(260);break;default:Hl(132)}Il(103),va()}function ya(){ic.startNonterminal(\"FTLanguageOption\",Vl),Pl(172),Il(17),Pl(11),ic.endNonterminal(\"FTLanguageOption\",Vl)}function ba(){Hl(172),Il(17),Hl(11)}function wa(){ic.startNonterminal(\"FTWildCardOption\",Vl);switch($l){case 274:Pl(274);break;default:Pl(191),Il(87),Pl(274)}ic.endNonterminal(\"FTWildCardOption\",Vl)}function Ea(){switch($l){case 274:Hl(274);break;default:Hl(191),Il(87),Hl(274)}}function Sa(){ic.startNonterminal(\"FTExtensionOption\",Vl),Pl(203),Il(246),jl(),$a(),Il(17),Pl(11),ic.endNonterminal(\"FTExtensionOption\",Vl)}function xa(){Hl(203),Il(246),Ja(),Il(17),Hl(11)}function Ta(){ic.startNonterminal(\"FTIgnoreOption\",Vl),Pl(277),Il(45),Pl(101),Il(266),jl(),Yn(),ic.endNonterminal(\"FTIgnoreOption\",Vl)}function Na(){Hl(277),Il(45),Hl(101),Il(266),Zn()}function Ca(){ic.startNonterminal(\"CollectionDecl\",Vl),Pl(96),Il(246),jl(),$a(),Il(111),$l==80&&(jl(),ka()),ic.endNonterminal(\"CollectionDecl\",Vl)}function ka(){ic.startNonterminal(\"CollectionTypeDecl\",Vl),Pl(80),Il(200),jl(),Vs(),Il(171),$l!=54&&(jl(),Os()),ic.endNonterminal(\"CollectionTypeDecl\",Vl)}function La(){ic.startNonterminal(\"IndexName\",Vl),$a(),ic.endNonterminal(\"IndexName\",Vl)}function Aa(){ic.startNonterminal(\"IndexDomainExpr\",Vl),Or(),ic.endNonterminal(\"IndexDomainExpr\",Vl)}function Oa(){ic.startNonterminal(\"IndexKeySpec\",Vl),Ma(),$l==80&&(jl(),_a()),Il(156),$l==95&&(jl(),Pa()),ic.endNonterminal(\"IndexKeySpec\",Vl)}function Ma(){ic.startNonterminal(\"IndexKeyExpr\",Vl),Or(),ic.endNonterminal(\"IndexKeyExpr\",Vl)}function _a(){ic.startNonterminal(\"IndexKeyTypeDecl\",Vl),Pl(80),Il(246),jl(),Da(),Il(189);if($l==40||$l==41||$l==65)jl(),Os();ic.endNonterminal(\"IndexKeyTypeDecl\",Vl)}function Da(){ic.startNonterminal(\"AtomicType\",Vl),$a(),ic.endNonterminal(\"AtomicType\",Vl)}function Pa(){ic.startNonterminal(\"IndexKeyCollation\",Vl),Pl(95),Il(15),Pl(7),ic.endNonterminal(\"IndexKeyCollation\",Vl)}function Ha(){ic.startNonterminal(\"IndexDecl\",Vl),Pl(157),Il(246),jl(),La(),Il(68),Pl(201),Il(66),Pl(195),Il(263),jl(),Aa(),Pl(88),Il(263),jl(),Oa();for(;;){Il(107);if($l!=42)break;Pl(42),Il(263),jl(),Oa()}ic.endNonterminal(\"IndexDecl\",Vl)}function Ba(){ic.startNonterminal(\"ICDecl\",Vl),Pl(163),Il(43),Pl(98),Il(246),jl(),$a(),Il(124);switch($l){case 201:jl(),ja();break;default:jl(),Ra()}ic.endNonterminal(\"ICDecl\",Vl)}function ja(){ic.startNonterminal(\"ICCollection\",Vl),Pl(201),Il(42),Pl(96),Il(246),jl(),$a(),Il(150);switch($l){case 31:jl(),Fa();break;case 194:jl(),Ia();break;default:jl(),qa()}ic.endNonterminal(\"ICCollection\",Vl)}function Fa(){ic.startNonterminal(\"ICCollSequence\",Vl),Si(),Il(40),Pl(93),Il(267),jl(),Wf(),ic.endNonterminal(\"ICCollSequence\",Vl)}function Ia(){ic.startNonterminal(\"ICCollSequenceUnique\",Vl),Pl(194),Il(21),jl(),Si(),Il(40),Pl(93),Il(83),Pl(261),Il(60),Pl(171),Il(263),jl(),Or(),ic.endNonterminal(\"ICCollSequenceUnique\",Vl)}function qa(){ic.startNonterminal(\"ICCollNode\",Vl),Pl(140),Il(65),Pl(194),Il(21),jl(),Si(),Il(40),Pl(93),Il(267),jl(),Wf(),ic.endNonterminal(\"ICCollNode\",Vl)}function Ra(){ic.startNonterminal(\"ICForeignKey\",Vl),Pl(141),Il(60),Pl(171),Il(54),jl(),Ua(),jl(),za(),ic.endNonterminal(\"ICForeignKey\",Vl)}function Ua(){ic.startNonterminal(\"ICForeignKeySource\",Vl),Pl(142),Il(42),jl(),Wa(),ic.endNonterminal(\"ICForeignKeySource\",Vl)}function za(){ic.startNonterminal(\"ICForeignKeyTarget\",Vl),Pl(253),Il(42),jl(),Wa(),ic.endNonterminal(\"ICForeignKeyTarget\",Vl)}function Wa(){ic.startNonterminal(\"ICForeignKeyValues\",Vl),Pl(96),Il(246),jl(),$a(),Il(65),Pl(194),Il(21),jl(),Si(),Il(60),Pl(171),Il(263),jl(),Or(),ic.endNonterminal(\"ICForeignKeyValues\",Vl)}function Xa(){Hl(37);for(;;){Rl(92);if($l==51)break;switch($l){case 24:Hl(24);break;default:Xa()}}Hl(51)}function Va(){switch($l){case 22:Hl(22);break;default:Xa()}}function $a(){ic.startNonterminal(\"EQName\",Vl),Rl(241);switch($l){case 83:Pl(83);break;case 97:Pl(97);break;case 121:Pl(121);break;case 122:Pl(122);break;case 125:Pl(125);break;case 147:Pl(147);break;case 154:Pl(154);break;case 167:Pl(167);break;case 188:Pl(188);break;case 194:Pl(194);break;case 220:Pl(220);break;case 230:Pl(230);break;case 231:Pl(231);break;case 248:Pl(248);break;case 249:Pl(249);break;case 259:Pl(259);break;case 79:Pl(79);break;case 169:Pl(169);break;case 247:Pl(247);break;default:Ka()}ic.endNonterminal(\"EQName\",Vl)}function Ja(){Rl(241);switch($l){case 83:Hl(83);break;case 97:Hl(97);break;case 121:Hl(121);break;case 122:Hl(122);break;case 125:Hl(125);break;case 147:Hl(147);break;case 154:Hl(154);break;case 167:Hl(167);break;case 188:Hl(188);break;case 194:Hl(194);break;case 220:Hl(220);break;case 230:Hl(230);break;case 231:Hl(231);break;case 248:Hl(248);break;case 249:Hl(249);break;case 259:Hl(259);break;case 79:Hl(79);break;case 169:Hl(169);break;case 247:Hl(247);break;default:Qa()}}function Ka(){ic.startNonterminal(\"FunctionName\",Vl);switch($l){case 6:Pl(6);break;case 71:Pl(71);break;case 74:Pl(74);break;case 75:Pl(75);break;case 76:Pl(76);break;case 80:Pl(80);break;case 81:Pl(81);break;case 85:Pl(85);break;case 89:Pl(89);break;case 90:Pl(90);break;case 91:Pl(91);break;case 94:Pl(94);break;case 95:Pl(95);break;case 104:Pl(104);break;case 106:Pl(106);break;case 109:Pl(109);break;case 110:Pl(110);break;case 111:Pl(111);break;case 112:Pl(112);break;case 113:Pl(113);break;case 114:Pl(114);break;case 119:Pl(119);break;case 120:Pl(120);break;case 123:Pl(123);break;case 124:Pl(124);break;case 127:Pl(127);break;case 129:Pl(129);break;case 130:Pl(130);break;case 132:Pl(132);break;case 136:Pl(136);break;case 137:Pl(137);break;case 138:Pl(138);break;case 139:Pl(139);break;case 148:Pl(148);break;case 150:Pl(150);break;case 152:Pl(152);break;case 153:Pl(153);break;case 155:Pl(155);break;case 161:Pl(161);break;case 162:Pl(162);break;case 164:Pl(164);break;case 165:Pl(165);break;case 166:Pl(166);break;case 173:Pl(173);break;case 175:Pl(175);break;case 177:Pl(177);break;case 181:Pl(181);break;case 183:Pl(183);break;case 184:Pl(184);break;case 185:Pl(185);break;case 187:Pl(187);break;case 189:Pl(189);break;case 202:Pl(202);break;case 204:Pl(204);break;case 205:Pl(205);break;case 206:Pl(206);break;case 210:Pl(210);break;case 216:Pl(216);break;case 217:Pl(217);break;case 222:Pl(222);break;case 223:Pl(223);break;case 224:Pl(224);break;case 228:Pl(228);break;case 234:Pl(234);break;case 240:Pl(240);break;case 241:Pl(241);break;case 242:Pl(242);break;case 253:Pl(253);break;case 254:Pl(254);break;case 256:Pl(256);break;case 260:Pl(260);break;case 262:Pl(262);break;case 266:Pl(266);break;case 272:Pl(272);break;case 276:Pl(276);break;case 170:Pl(170);break;case 73:Pl(73);break;case 82:Pl(82);break;case 84:Pl(84);break;case 86:Pl(86);break;case 87:Pl(87);break;case 92:Pl(92);break;case 99:Pl(99);break;case 102:Pl(102);break;case 103:Pl(103);break;case 105:Pl(105);break;case 107:Pl(107);break;case 126:Pl(126);break;case 133:Pl(133);break;case 134:Pl(134);break;case 143:Pl(143);break;case 156:Pl(156);break;case 157:Pl(157);break;case 163:Pl(163);break;case 174:Pl(174);break;case 195:Pl(195);break;case 203:Pl(203);break;case 207:Pl(207);break;case 226:Pl(226);break;case 229:Pl(229);break;case 232:Pl(232);break;case 239:Pl(239);break;case 245:Pl(245);break;case 257:Pl(257);break;case 258:Pl(258);break;case 263:Pl(263);break;case 267:Pl(267);break;case 268:Pl(268);break;case 269:Pl(269);break;case 273:Pl(273);break;case 98:Pl(98);break;case 179:Pl(179);break;case 225:Pl(225);break;case 78:Pl(78);break;case 135:Pl(135);break;case 142:Pl(142);break;case 197:Pl(197);break;case 168:Pl(168);break;case 198:Pl(198);break;case 233:Pl(233);break;default:Pl(255)}ic.endNonterminal(\"FunctionName\",Vl)}function Qa(){switch($l){case 6:Hl(6);break;case 71:Hl(71);break;case 74:Hl(74);break;case 75:Hl(75);break;case 76:Hl(76);break;case 80:Hl(80);break;case 81:Hl(81);break;case 85:Hl(85);break;case 89:Hl(89);break;case 90:Hl(90);break;case 91:Hl(91);break;case 94:Hl(94);break;case 95:Hl(95);break;case 104:Hl(104);break;case 106:Hl(106);break;case 109:Hl(109);break;case 110:Hl(110);break;case 111:Hl(111);break;case 112:Hl(112);break;case 113:Hl(113);break;case 114:Hl(114);break;case 119:Hl(119);break;case 120:Hl(120);break;case 123:Hl(123);break;case 124:Hl(124);break;case 127:Hl(127);break;case 129:Hl(129);break;case 130:Hl(130);break;case 132:Hl(132);break;case 136:Hl(136);break;case 137:Hl(137);break;case 138:Hl(138);break;case 139:Hl(139);break;case 148:Hl(148);break;case 150:Hl(150);break;case 152:Hl(152);break;case 153:Hl(153);break;case 155:Hl(155);break;case 161:Hl(161);break;case 162:Hl(162);break;case 164:Hl(164);break;case 165:Hl(165);break;case 166:Hl(166);break;case 173:Hl(173);break;case 175:Hl(175);break;case 177:Hl(177);break;case 181:Hl(181);break;case 183:Hl(183);break;case 184:Hl(184);break;case 185:Hl(185);break;case 187:Hl(187);break;case 189:Hl(189);break;case 202:Hl(202);break;case 204:Hl(204);break;case 205:Hl(205);break;case 206:Hl(206);break;case 210:Hl(210);break;case 216:Hl(216);break;case 217:Hl(217);break;case 222:Hl(222);break;case 223:Hl(223);break;case 224:Hl(224);break;case 228:Hl(228);break;case 234:Hl(234);break;case 240:Hl(240);break;case 241:Hl(241);break;case 242:Hl(242);break;case 253:Hl(253);break;case 254:Hl(254);break;case 256:Hl(256);break;case 260:Hl(260);break;case 262:Hl(262);break;case 266:Hl(266);break;case 272:Hl(272);break;case 276:Hl(276);break;case 170:Hl(170);break;case 73:Hl(73);break;case 82:Hl(82);break;case 84:Hl(84);break;case 86:Hl(86);break;case 87:Hl(87);break;case 92:Hl(92);break;case 99:Hl(99);break;case 102:Hl(102);break;case 103:Hl(103);break;case 105:Hl(105);break;case 107:Hl(107);break;case 126:Hl(126);break;case 133:Hl(133);break;case 134:Hl(134);break;case 143:Hl(143);break;case 156:Hl(156);break;case 157:Hl(157);break;case 163:Hl(163);break;case 174:Hl(174);break;case 195:Hl(195);break;case 203:Hl(203);break;case 207:Hl(207);break;case 226:Hl(226);break;case 229:Hl(229);break;case 232:Hl(232);break;case 239:Hl(239);break;case 245:Hl(245);break;case 257:Hl(257);break;case 258:Hl(258);break;case 263:Hl(263);break;case 267:Hl(267);break;case 268:Hl(268);break;case 269:Hl(269);break;case 273:Hl(273);break;case 98:Hl(98);break;case 179:Hl(179);break;case 225:Hl(225);break;case 78:Hl(78);break;case 135:Hl(135);break;case 142:Hl(142);break;case 197:Hl(197);break;case 168:Hl(168);break;case 198:Hl(198);break;case 233:Hl(233);break;default:Hl(255)}}function Ga(){ic.startNonterminal(\"NCName\",Vl);switch($l){case 19:Pl(19);break;case 71:Pl(71);break;case 76:Pl(76);break;case 80:Pl(80);break;case 81:Pl(81);break;case 85:Pl(85);break;case 89:Pl(89);break;case 90:Pl(90);break;case 91:Pl(91);break;case 95:Pl(95);break;case 106:Pl(106);break;case 110:Pl(110);break;case 114:Pl(114);break;case 119:Pl(119);break;case 123:Pl(123);break;case 124:Pl(124);break;case 127:Pl(127);break;case 129:Pl(129);break;case 132:Pl(132);break;case 139:Pl(139);break;case 148:Pl(148);break;case 150:Pl(150);break;case 152:Pl(152);break;case 153:Pl(153);break;case 162:Pl(162);break;case 164:Pl(164);break;case 165:Pl(165);break;case 166:Pl(166);break;case 175:Pl(175);break;case 177:Pl(177);break;case 181:Pl(181);break;case 183:Pl(183);break;case 184:Pl(184);break;case 189:Pl(189);break;case 202:Pl(202);break;case 204:Pl(204);break;case 205:Pl(205);break;case 224:Pl(224);break;case 228:Pl(228);break;case 241:Pl(241);break;case 242:Pl(242);break;case 253:Pl(253);break;case 254:Pl(254);break;case 260:Pl(260);break;case 272:Pl(272);break;case 276:Pl(276);break;case 74:Pl(74);break;case 75:Pl(75);break;case 83:Pl(83);break;case 94:Pl(94);break;case 97:Pl(97);break;case 104:Pl(104);break;case 109:Pl(109);break;case 111:Pl(111);break;case 112:Pl(112);break;case 113:Pl(113);break;case 120:Pl(120);break;case 121:Pl(121);break;case 122:Pl(122);break;case 125:Pl(125);break;case 130:Pl(130);break;case 136:Pl(136);break;case 137:Pl(137);break;case 138:Pl(138);break;case 147:Pl(147);break;case 154:Pl(154);break;case 155:Pl(155);break;case 161:Pl(161);break;case 167:Pl(167);break;case 173:Pl(173);break;case 185:Pl(185);break;case 187:Pl(187);break;case 188:Pl(188);break;case 194:Pl(194);break;case 206:Pl(206);break;case 210:Pl(210);break;case 216:Pl(216);break;case 217:Pl(217);break;case 220:Pl(220);break;case 222:Pl(222);break;case 223:Pl(223);break;case 230:Pl(230);break;case 231:Pl(231);break;case 234:Pl(234);break;case 240:Pl(240);break;case 248:Pl(248);break;case 249:Pl(249);break;case 256:Pl(256);break;case 259:Pl(259);break;case 262:Pl(262);break;case 266:Pl(266);break;case 268:Pl(268);break;case 170:Pl(170);break;case 73:Pl(73);break;case 82:Pl(82);break;case 84:Pl(84);break;case 86:Pl(86);break;case 87:Pl(87);break;case 92:Pl(92);break;case 99:Pl(99);break;case 102:Pl(102);break;case 103:Pl(103);break;case 105:Pl(105);break;case 107:Pl(107);break;case 126:Pl(126);break;case 133:Pl(133);break;case 134:Pl(134);break;case 143:Pl(143);break;case 156:Pl(156);break;case 157:Pl(157);break;case 163:Pl(163);break;case 174:Pl(174);break;case 195:Pl(195);break;case 203:Pl(203);break;case 207:Pl(207);break;case 226:Pl(226);break;case 229:Pl(229);break;case 232:Pl(232);break;case 239:Pl(239);break;case 245:Pl(245);break;case 257:Pl(257);break;case 258:Pl(258);break;case 263:Pl(263);break;case 267:Pl(267);break;case 269:Pl(269);break;case 273:Pl(273);break;case 98:Pl(98);break;case 179:Pl(179);break;case 225:Pl(225);break;case 78:Pl(78);break;case 135:Pl(135);break;case 142:Pl(142);break;case 197:Pl(197);break;case 168:Pl(168);break;case 198:Pl(198);break;case 233:Pl(233);break;default:Pl(255)}ic.endNonterminal(\"NCName\",Vl)}function Ya(){switch($l){case 19:Hl(19);break;case 71:Hl(71);break;case 76:Hl(76);break;case 80:Hl(80);break;case 81:Hl(81);break;case 85:Hl(85);break;case 89:Hl(89);break;case 90:Hl(90);break;case 91:Hl(91);break;case 95:Hl(95);break;case 106:Hl(106);break;case 110:Hl(110);break;case 114:Hl(114);break;case 119:Hl(119);break;case 123:Hl(123);break;case 124:Hl(124);break;case 127:Hl(127);break;case 129:Hl(129);break;case 132:Hl(132);break;case 139:Hl(139);break;case 148:Hl(148);break;case 150:Hl(150);break;case 152:Hl(152);break;case 153:Hl(153);break;case 162:Hl(162);break;case 164:Hl(164);break;case 165:Hl(165);break;case 166:Hl(166);break;case 175:Hl(175);break;case 177:Hl(177);break;case 181:Hl(181);break;case 183:Hl(183);break;case 184:Hl(184);break;case 189:Hl(189);break;case 202:Hl(202);break;case 204:Hl(204);break;case 205:Hl(205);break;case 224:Hl(224);break;case 228:Hl(228);break;case 241:Hl(241);break;case 242:Hl(242);break;case 253:Hl(253);break;case 254:Hl(254);break;case 260:Hl(260);break;case 272:Hl(272);break;case 276:Hl(276);break;case 74:Hl(74);break;case 75:Hl(75);break;case 83:Hl(83);break;case 94:Hl(94);break;case 97:Hl(97);break;case 104:Hl(104);break;case 109:Hl(109);break;case 111:Hl(111);break;case 112:Hl(112);break;case 113:Hl(113);break;case 120:Hl(120);break;case 121:Hl(121);break;case 122:Hl(122);break;case 125:Hl(125);break;case 130:Hl(130);break;case 136:Hl(136);break;case 137:Hl(137);break;case 138:Hl(138);break;case 147:Hl(147);break;case 154:Hl(154);break;case 155:Hl(155);break;case 161:Hl(161);break;case 167:Hl(167);break;case 173:Hl(173);break;case 185:Hl(185);break;case 187:Hl(187);break;case 188:Hl(188);break;case 194:Hl(194);break;case 206:Hl(206);break;case 210:Hl(210);break;case 216:Hl(216);break;case 217:Hl(217);break;case 220:Hl(220);break;case 222:Hl(222);break;case 223:Hl(223);break;case 230:Hl(230);break;case 231:Hl(231);break;case 234:Hl(234);break;case 240:Hl(240);break;case 248:Hl(248);break;case 249:Hl(249);break;case 256:Hl(256);break;case 259:Hl(259);break;case 262:Hl(262);break;case 266:Hl(266);break;case 268:Hl(268);break;case 170:Hl(170);break;case 73:Hl(73);break;case 82:Hl(82);break;case 84:Hl(84);break;case 86:Hl(86);break;case 87:Hl(87);break;case 92:Hl(92);break;case 99:Hl(99);break;case 102:Hl(102);break;case 103:Hl(103);break;case 105:Hl(105);break;case 107:Hl(107);break;case 126:Hl(126);break;case 133:Hl(133);break;case 134:Hl(134);break;case 143:Hl(143);break;case 156:Hl(156);break;case 157:Hl(157);break;case 163:Hl(163);break;case 174:Hl(174);break;case 195:Hl(195);break;case 203:Hl(203);break;case 207:Hl(207);break;case 226:Hl(226);break;case 229:Hl(229);break;case 232:Hl(232);break;case 239:Hl(239);break;case 245:Hl(245);break;case 257:Hl(257);break;case 258:Hl(258);break;case 263:Hl(263);break;case 267:Hl(267);break;case 269:Hl(269);break;case 273:Hl(273);break;case 98:Hl(98);break;case 179:Hl(179);break;case 225:Hl(225);break;case 78:Hl(78);break;case 135:Hl(135);break;case 142:Hl(142);break;case 197:Hl(197);break;case 168:Hl(168);break;case 198:Hl(198);break;case 233:Hl(233);break;default:Hl(255)}}function Za(){ic.startNonterminal(\"MainModule\",Vl),l(),jl(),ef(),ic.endNonterminal(\"MainModule\",Vl)}function ef(){ic.startNonterminal(\"Program\",Vl),of(),ic.endNonterminal(\"Program\",Vl)}function tf(){ic.startNonterminal(\"Statements\",Vl);for(;;){Il(284);switch($l){case 35:ql(270);break;case 36:Ul(243);break;case 47:ql(286);break;case 48:ql(260);break;case 55:Ul(4);break;case 56:Ul(1);break;case 60:Ul(3);break;case 69:ql(273);break;case 78:ql(269);break;case 133:ql(147);break;case 139:ql(179);break;case 161:ql(276);break;case 177:ql(166);break;case 187:ql(247);break;case 220:ql(245);break;case 223:ql(170);break;case 266:ql(188);break;case 281:ql(283);break;case 283:ql(274);break;case 31:case 33:ql(246);break;case 83:case 122:ql(253);break;case 87:case 103:ql(145);break;case 97:case 249:ql(97);break;case 111:case 222:ql(261);break;case 41:case 43:case 196:ql(266);break;case 135:case 197:case 255:ql(211);break;case 104:case 130:case 240:case 268:ql(143);break;case 120:case 206:case 256:case 262:ql(148);break;case 8:case 9:case 10:case 11:case 32:ql(210);break;case 79:case 121:case 125:case 167:case 169:case 188:case 194:case 230:case 231:case 247:ql(20);break;case 6:case 71:case 73:case 74:case 75:case 76:case 80:case 81:case 82:case 84:case 85:case 86:case 89:case 90:case 91:case 92:case 94:case 95:case 98:case 99:case 102:case 105:case 106:case 107:case 109:case 110:case 112:case 113:case 114:case 119:case 123:case 124:case 126:case 127:case 129:case 132:case 134:case 136:case 137:case 138:case 142:case 143:case 147:case 148:case 150:case 152:case 153:case 154:case 155:case 156:case 157:case 162:case 163:case 164:case 165:case 166:case 168:case 170:case 173:case 174:case 175:case 179:case 181:case 183:case 184:case 185:case 189:case 195:case 198:case 202:case 203:case 204:case 205:case 207:case 210:case 216:case 217:case 224:case 225:case 226:case 228:case 229:case 232:case 233:case 234:case 239:case 241:case 242:case 245:case 248:case 253:case 254:case 257:case 258:case 259:case 260:case 263:case 267:case 269:case 272:case 273:case 276:ql(95);break;default:Wl=$l}if(Wl!=25&&Wl!=54&&Wl!=287&&Wl!=12808&&Wl!=12809&&Wl!=12810&&Wl!=12811&&Wl!=12832&&Wl!=12847&&Wl!=12935&&Wl!=12997&&Wl!=13055&&Wl!=16140&&Wl!=21512&&Wl!=21513&&Wl!=21514&&Wl!=21515&&Wl!=21536&&Wl!=21551&&Wl!=21639&&Wl!=21701&&Wl!=21759&&Wl!=27656&&Wl!=27657&&Wl!=27658&&Wl!=27659&&Wl!=27680&&Wl!=27695&&Wl!=27783&&Wl!=27845&&Wl!=27903&&Wl!=91735&&Wl!=91751&&Wl!=115333&&Wl!=146952&&Wl!=146953&&Wl!=146954&&Wl!=146955&&Wl!=146976&&Wl!=146991&&Wl!=147079&&Wl!=147141&&Wl!=147199){Wl=uc(8,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{ff(),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(8,Vl,Wl)}}if(Wl!=-1&&Wl!=54&&Wl!=16140&&Wl!=27656&&Wl!=27657&&Wl!=27658&&Wl!=27659&&Wl!=27680&&Wl!=27695&&Wl!=27783&&Wl!=27845&&Wl!=27903&&Wl!=91735&&Wl!=91751&&Wl!=115333)break;jl(),af()}ic.endNonterminal(\"Statements\",Vl)}function nf(){for(;;){Il(284);switch($l){case 35:ql(270);break;case 36:Ul(243);break;case 47:ql(286);break;case 48:ql(260);break;case 55:Ul(4);break;case 56:Ul(1);break;case 60:Ul(3);break;case 69:ql(273);break;case 78:ql(269);break;case 133:ql(147);break;case 139:ql(179);break;case 161:ql(276);break;case 177:ql(166);break;case 187:ql(247);break;case 220:ql(245);break;case 223:ql(170);break;case 266:ql(188);break;case 281:ql(283);break;case 283:ql(274);break;case 31:case 33:ql(246);break;case 83:case 122:ql(253);break;case 87:case 103:ql(145);break;case 97:case 249:ql(97);break;case 111:case 222:ql(261);break;case 41:case 43:case 196:ql(266);break;case 135:case 197:case 255:ql(211);break;case 104:case 130:case 240:case 268:ql(143);break;case 120:case 206:case 256:case 262:ql(148);break;case 8:case 9:case 10:case 11:case 32:ql(210);break;case 79:case 121:case 125:case 167:case 169:case 188:case 194:case 230:case 231:case 247:ql(20);break;case 6:case 71:case 73:case 74:case 75:case 76:case 80:case 81:case 82:case 84:case 85:case 86:case 89:case 90:case 91:case 92:case 94:case 95:case 98:case 99:case 102:case 105:case 106:case 107:case 109:case 110:case 112:case 113:case 114:case 119:case 123:case 124:case 126:case 127:case 129:case 132:case 134:case 136:case 137:case 138:case 142:case 143:case 147:case 148:case 150:case 152:case 153:case 154:case 155:case 156:case 157:case 162:case 163:case 164:case 165:case 166:case 168:case 170:case 173:case 174:case 175:case 179:case 181:case 183:case 184:case 185:case 189:case 195:case 198:case 202:case 203:case 204:case 205:case 207:case 210:case 216:case 217:case 224:case 225:case 226:case 228:case 229:case 232:case 233:case 234:case 239:case 241:case 242:case 245:case 248:case 253:case 254:case 257:case 258:case 259:case 260:case 263:case 267:case 269:case 272:case 273:case 276:ql(95);break;default:Wl=$l}if(Wl!=25&&Wl!=54&&Wl!=287&&Wl!=12808&&Wl!=12809&&Wl!=12810&&Wl!=12811&&Wl!=12832&&Wl!=12847&&Wl!=12935&&Wl!=12997&&Wl!=13055&&Wl!=16140&&Wl!=21512&&Wl!=21513&&Wl!=21514&&Wl!=21515&&Wl!=21536&&Wl!=21551&&Wl!=21639&&Wl!=21701&&Wl!=21759&&Wl!=27656&&Wl!=27657&&Wl!=27658&&Wl!=27659&&Wl!=27680&&Wl!=27695&&Wl!=27783&&Wl!=27845&&Wl!=27903&&Wl!=91735&&Wl!=91751&&Wl!=115333&&Wl!=146952&&Wl!=146953&&Wl!=146954&&Wl!=146955&&Wl!=146976&&Wl!=146991&&Wl!=147079&&Wl!=147141&&Wl!=147199){Wl=uc(8,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{ff(),oc(8,t,-1);continue}catch(a){Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(8,t,-2);break}}}if(Wl!=-1&&Wl!=54&&Wl!=16140&&Wl!=27656&&Wl!=27657&&Wl!=27658&&Wl!=27659&&Wl!=27680&&Wl!=27695&&Wl!=27783&&Wl!=27845&&Wl!=27903&&Wl!=91735&&Wl!=91751&&Wl!=115333)break;ff()}}function rf(){ic.startNonterminal(\"StatementsAndExpr\",Vl),tf(),jl(),G(),ic.endNonterminal(\"StatementsAndExpr\",Vl)}function sf(){nf(),Y()}function of(){ic.startNonterminal(\"StatementsAndOptionalExpr\",Vl),tf(),$l!=25&&$l!=287&&(jl(),G()),ic.endNonterminal(\"StatementsAndOptionalExpr\",Vl)}function uf(){nf(),$l!=25&&$l!=287&&Y()}function af(){ic.startNonterminal(\"Statement\",Vl);switch($l){case 133:ql(147);break;case 139:ql(179);break;case 177:ql(166);break;case 256:ql(148);break;case 268:ql(143);break;case 281:ql(283);break;case 31:case 33:ql(246);break;case 87:case 103:ql(145);break;case 154:case 248:case 259:case 273:ql(95);break;default:Wl=$l}if(Wl!=6&&Wl!=8&&Wl!=9&&Wl!=10&&Wl!=11&&Wl!=32&&Wl!=35&&Wl!=36&&Wl!=41&&Wl!=43&&Wl!=47&&Wl!=48&&Wl!=54&&Wl!=55&&Wl!=56&&Wl!=60&&Wl!=69&&Wl!=71&&Wl!=73&&Wl!=74&&Wl!=75&&Wl!=76&&Wl!=78&&Wl!=79&&Wl!=80&&Wl!=81&&Wl!=82&&Wl!=83&&Wl!=84&&Wl!=85&&Wl!=86&&Wl!=89&&Wl!=90&&Wl!=91&&Wl!=92&&Wl!=94&&Wl!=95&&Wl!=97&&Wl!=98&&Wl!=99&&Wl!=102&&Wl!=104&&Wl!=105&&Wl!=106&&Wl!=107&&Wl!=109&&Wl!=110&&Wl!=111&&Wl!=112&&Wl!=113&&Wl!=114&&Wl!=119&&Wl!=120&&Wl!=121&&Wl!=122&&Wl!=123&&Wl!=124&&Wl!=125&&Wl!=126&&Wl!=127&&Wl!=129&&Wl!=130&&Wl!=132&&Wl!=134&&Wl!=135&&Wl!=136&&Wl!=137&&Wl!=138&&Wl!=142&&Wl!=143&&Wl!=147&&Wl!=148&&Wl!=150&&Wl!=152&&Wl!=153&&Wl!=155&&Wl!=156&&Wl!=157&&Wl!=161&&Wl!=162&&Wl!=163&&Wl!=164&&Wl!=165&&Wl!=166&&Wl!=167&&Wl!=168&&Wl!=169&&Wl!=170&&Wl!=173&&Wl!=174&&Wl!=175&&Wl!=179&&Wl!=181&&Wl!=183&&Wl!=184&&Wl!=185&&Wl!=187&&Wl!=188&&Wl!=189&&Wl!=194&&Wl!=195&&Wl!=196&&Wl!=197&&Wl!=198&&Wl!=202&&Wl!=203&&Wl!=204&&Wl!=205&&Wl!=206&&Wl!=207&&Wl!=210&&Wl!=216&&Wl!=217&&Wl!=220&&Wl!=222&&Wl!=223&&Wl!=224&&Wl!=225&&Wl!=226&&Wl!=228&&Wl!=229&&Wl!=230&&Wl!=231&&Wl!=232&&Wl!=233&&Wl!=234&&Wl!=239&&Wl!=240&&Wl!=241&&Wl!=242&&Wl!=245&&Wl!=247&&Wl!=249&&Wl!=253&&Wl!=254&&Wl!=255&&Wl!=257&&Wl!=258&&Wl!=260&&Wl!=262&&Wl!=263&&Wl!=266&&Wl!=267&&Wl!=269&&Wl!=272&&Wl!=276&&Wl!=283&&Wl!=10009&&Wl!=14935&&Wl!=14951&&Wl!=14981&&Wl!=14987&&Wl!=15002&&Wl!=15025&&Wl!=15096&&Wl!=15104&&Wl!=15107&&Wl!=15116&&Wl!=15121&&Wl!=16011&&Wl!=16049&&Wl!=16140&&Wl!=18007&&Wl!=18023&&Wl!=18053&&Wl!=18059&&Wl!=18074&&Wl!=18097&&Wl!=18168&&Wl!=18176&&Wl!=18179&&Wl!=18188&&Wl!=91735&&Wl!=91751&&Wl!=115333&&Wl!=118961&&Wl!=122507&&Wl!=131723&&Wl!=144128&&Wl!=147225){Wl=uc(9,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{cf(),Wl=-1}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),pf(),Wl=-2}catch(f){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),vf(),Wl=-3}catch(l){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),If(),Wl=-12}catch(c){Wl=-13}}}}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(9,Vl,Wl)}}switch(Wl){case-2:hf();break;case-3:df();break;case 91735:mf();break;case 91751:yf();break;case 115333:wf();break;case 16011:case 16049:case 118961:case 122507:case 131723:Sf();break;case 18074:Cf();break;case 18168:Lf();break;case 144128:_f();break;case 18179:Pf();break;case-12:case 16140:Ff();break;case-13:qf();break;case 54:Uf();break;default:lf()}ic.endNonterminal(\"Statement\",Vl)}function ff(){switch($l){case 133:ql(147);break;case 139:ql(179);break;case 177:ql(166);break;case 256:ql(148);break;case 268:ql(143);break;case 281:ql(283);break;case 31:case 33:ql(246);break;case 87:case 103:ql(145);break;case 154:case 248:case 259:case 273:ql(95);break;default:Wl=$l}if(Wl!=6&&Wl!=8&&Wl!=9&&Wl!=10&&Wl!=11&&Wl!=32&&Wl!=35&&Wl!=36&&Wl!=41&&Wl!=43&&Wl!=47&&Wl!=48&&Wl!=54&&Wl!=55&&Wl!=56&&Wl!=60&&Wl!=69&&Wl!=71&&Wl!=73&&Wl!=74&&Wl!=75&&Wl!=76&&Wl!=78&&Wl!=79&&Wl!=80&&Wl!=81&&Wl!=82&&Wl!=83&&Wl!=84&&Wl!=85&&Wl!=86&&Wl!=89&&Wl!=90&&Wl!=91&&Wl!=92&&Wl!=94&&Wl!=95&&Wl!=97&&Wl!=98&&Wl!=99&&Wl!=102&&Wl!=104&&Wl!=105&&Wl!=106&&Wl!=107&&Wl!=109&&Wl!=110&&Wl!=111&&Wl!=112&&Wl!=113&&Wl!=114&&Wl!=119&&Wl!=120&&Wl!=121&&Wl!=122&&Wl!=123&&Wl!=124&&Wl!=125&&Wl!=126&&Wl!=127&&Wl!=129&&Wl!=130&&Wl!=132&&Wl!=134&&Wl!=135&&Wl!=136&&Wl!=137&&Wl!=138&&Wl!=142&&Wl!=143&&Wl!=147&&Wl!=148&&Wl!=150&&Wl!=152&&Wl!=153&&Wl!=155&&Wl!=156&&Wl!=157&&Wl!=161&&Wl!=162&&Wl!=163&&Wl!=164&&Wl!=165&&Wl!=166&&Wl!=167&&Wl!=168&&Wl!=169&&Wl!=170&&Wl!=173&&Wl!=174&&Wl!=175&&Wl!=179&&Wl!=181&&Wl!=183&&Wl!=184&&Wl!=185&&Wl!=187&&Wl!=188&&Wl!=189&&Wl!=194&&Wl!=195&&Wl!=196&&Wl!=197&&Wl!=198&&Wl!=202&&Wl!=203&&Wl!=204&&Wl!=205&&Wl!=206&&Wl!=207&&Wl!=210&&Wl!=216&&Wl!=217&&Wl!=220&&Wl!=222&&Wl!=223&&Wl!=224&&Wl!=225&&Wl!=226&&Wl!=228&&Wl!=229&&Wl!=230&&Wl!=231&&Wl!=232&&Wl!=233&&Wl!=234&&Wl!=239&&Wl!=240&&Wl!=241&&Wl!=242&&Wl!=245&&Wl!=247&&Wl!=249&&Wl!=253&&Wl!=254&&Wl!=255&&Wl!=257&&Wl!=258&&Wl!=260&&Wl!=262&&Wl!=263&&Wl!=266&&Wl!=267&&Wl!=269&&Wl!=272&&Wl!=276&&Wl!=283&&Wl!=10009&&Wl!=14935&&Wl!=14951&&Wl!=14981&&Wl!=14987&&Wl!=15002&&Wl!=15025&&Wl!=15096&&Wl!=15104&&Wl!=15107&&Wl!=15116&&Wl!=15121&&Wl!=16011&&Wl!=16049&&Wl!=16140&&Wl!=18007&&Wl!=18023&&Wl!=18053&&Wl!=18059&&Wl!=18074&&Wl!=18097&&Wl!=18168&&Wl!=18176&&Wl!=18179&&Wl!=18188&&Wl!=91735&&Wl!=91751&&Wl!=115333&&Wl!=118961&&Wl!=122507&&Wl!=131723&&Wl!=144128&&Wl!=147225){Wl=uc(9,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{cf(),oc(9,t,-1),Wl=-15}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),pf(),oc(9,t,-2),Wl=-15}catch(f){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),vf(),oc(9,t,-3),Wl=-15}catch(l){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),If(),oc(9,t,-12),Wl=-15}catch(c){Wl=-13,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(9,t,-13)}}}}}}switch(Wl){case-2:pf();break;case-3:vf();break;case 91735:gf();break;case 91751:bf();break;case 115333:Ef();break;case 16011:case 16049:case 118961:case 122507:case 131723:xf();break;case 18074:kf();break;case 18168:Af();break;case 144128:Df();break;case 18179:Hf();break;case-12:case 16140:If();break;case-13:Rf();break;case 54:zf();break;case-15:break;default:cf()}}function lf(){ic.startNonterminal(\"ApplyStatement\",Vl),Vf(),Pl(54),ic.endNonterminal(\"ApplyStatement\",Vl)}function cf(){$f(),Hl(54)}function hf(){ic.startNonterminal(\"AssignStatement\",Vl),Pl(31),Il(246),jl(),Ti(),Il(28),Pl(53),Il(267),jl(),Wf(),Pl(54),ic.endNonterminal(\"AssignStatement\",Vl)}function pf(){Hl(31),Il(246),Ni(),Il(28),Hl(53),Il(267),Xf(),Hl(54)}function df(){ic.startNonterminal(\"BlockStatement\",Vl),Pl(281),Il(271),jl(),af(),Il(281),jl(),tf(),Pl(287),ic.endNonterminal(\"BlockStatement\",Vl)}function vf(){Hl(281),Il(271),ff(),Il(281),nf(),Hl(287)}function mf(){ic.startNonterminal(\"BreakStatement\",Vl),Pl(87),Il(62),Pl(179),Il(29),Pl(54),ic.endNonterminal(\"BreakStatement\",Vl)}function gf(){Hl(87),Il(62),Hl(179),Il(29),Hl(54)}function yf(){ic.startNonterminal(\"ContinueStatement\",Vl),Pl(103),Il(62),Pl(179),Il(29),Pl(54),ic.endNonterminal(\"ContinueStatement\",Vl)}function bf(){Hl(103),Il(62),Hl(179),Il(29),Hl(54)}function wf(){ic.startNonterminal(\"ExitStatement\",Vl),Pl(133),Il(74),Pl(225),Il(267),jl(),Wf(),Pl(54),ic.endNonterminal(\"ExitStatement\",Vl)}function Ef(){Hl(133),Il(74),Hl(225),Il(267),Xf(),Hl(54)}function Sf(){ic.startNonterminal(\"FLWORStatement\",Vl),tt();for(;;){Il(195);if($l==224)break;jl(),rt()}jl(),Tf(),ic.endNonterminal(\"FLWORStatement\",Vl)}function xf(){nt();for(;;){Il(195);if($l==224)break;it()}Nf()}function Tf(){ic.startNonterminal(\"ReturnStatement\",Vl),Pl(224),Il(271),jl(),af(),ic.endNonterminal(\"ReturnStatement\",Vl)}function Nf(){Hl(224),Il(271),ff()}function Cf(){ic.startNonterminal(\"IfStatement\",Vl),Pl(154),Il(22),Pl(35),Il(267),jl(),G(),Pl(38),Il(80),Pl(250),Il(271),jl(),af(),Il(51),Pl(123),Il(271),jl(),af(),ic.endNonterminal(\"IfStatement\",Vl)}function kf(){Hl(154),Il(22),Hl(35),Il(267),Y(),Hl(38),Il(80),Hl(250),Il(271),ff(),Il(51),Hl(123),Il(271),ff()}function Lf(){ic.startNonterminal(\"SwitchStatement\",Vl),Pl(248),Il(22),Pl(35),Il(267),jl(),G(),Pl(38);for(;;){Il(38),jl(),Of(),Il(117);if($l!=89)break}Pl(110),Il(73),Pl(224),Il(271),jl(),af(),ic.endNonterminal(\"SwitchStatement\",Vl)}function Af(){Hl(248),Il(22),Hl(35),Il(267),Y(),Hl(38);for(;;){Il(38),Mf(),Il(117);if($l!=89)break}Hl(110),Il(73),Hl(224),Il(271),ff()}function Of(){ic.startNonterminal(\"SwitchCaseStatement\",Vl);for(;;){Pl(89),Il(267),jl(),dn();if($l!=89)break}Pl(224),Il(271),jl(),af(),ic.endNonterminal(\"SwitchCaseStatement\",Vl)}function Mf(){for(;;){Hl(89),Il(267),vn();if($l!=89)break}Hl(224),Il(271),ff()}function _f(){ic.startNonterminal(\"TryCatchStatement\",Vl),Pl(256),Il(90),jl(),df();for(;;){Il(39),Pl(92),Il(249),jl(),_n(),jl(),df(),Il(284);switch($l){case 92:ql(256);break;default:Wl=$l}if(Wl!=2652&&Wl!=3164&&Wl!=36444&&Wl!=37468&&Wl!=37980&&Wl!=38492&&Wl!=39004&&Wl!=40028&&Wl!=40540&&Wl!=41052&&Wl!=41564&&Wl!=42076&&Wl!=42588&&Wl!=43100&&Wl!=43612&&Wl!=44124&&Wl!=44636&&Wl!=45660&&Wl!=46172&&Wl!=46684&&Wl!=47196&&Wl!=48220&&Wl!=48732&&Wl!=49756&&Wl!=50268&&Wl!=50780&&Wl!=52316&&Wl!=52828&&Wl!=53340&&Wl!=53852&&Wl!=54364&&Wl!=54876&&Wl!=55900&&Wl!=56412&&Wl!=56924&&Wl!=57436&&Wl!=57948&&Wl!=58460&&Wl!=61020&&Wl!=61532&&Wl!=62044&&Wl!=62556&&Wl!=63068&&Wl!=63580&&Wl!=64092&&Wl!=64604&&Wl!=65116&&Wl!=66140&&Wl!=66652&&Wl!=67676&&Wl!=68188&&Wl!=68700&&Wl!=69212&&Wl!=69724&&Wl!=70236&&Wl!=70748&&Wl!=71260&&Wl!=72796&&Wl!=73308&&Wl!=75356&&Wl!=75868&&Wl!=76892&&Wl!=77916&&Wl!=78428&&Wl!=78940&&Wl!=79452&&Wl!=79964&&Wl!=80476&&Wl!=82524&&Wl!=83036&&Wl!=83548&&Wl!=84060&&Wl!=84572&&Wl!=85084&&Wl!=85596&&Wl!=86108&&Wl!=86620&&Wl!=87132&&Wl!=88668&&Wl!=89180&&Wl!=89692&&Wl!=90716&&Wl!=91740&&Wl!=92764&&Wl!=93788&&Wl!=94300&&Wl!=94812&&Wl!=95836&&Wl!=96348&&Wl!=96860&&Wl!=99420&&Wl!=99932&&Wl!=100956&&Wl!=101468&&Wl!=103516&&Wl!=104028&&Wl!=104540&&Wl!=105052&&Wl!=105564&&Wl!=106076&&Wl!=107612&&Wl!=110684&&Wl!=111196&&Wl!=112732&&Wl!=113756&&Wl!=114268&&Wl!=114780&&Wl!=115292&&Wl!=115804&&Wl!=116828&&Wl!=117340&&Wl!=117852&&Wl!=118364&&Wl!=118876&&Wl!=119388&&Wl!=119900&&Wl!=122460&&Wl!=122972&&Wl!=123484&&Wl!=123996&&Wl!=125532&&Wl!=126556&&Wl!=127068&&Wl!=127580&&Wl!=129628&&Wl!=130140&&Wl!=130652&&Wl!=131164&&Wl!=131676&&Wl!=132188&&Wl!=132700&&Wl!=133212&&Wl!=134236&&Wl!=134748&&Wl!=136284&&Wl!=136796&&Wl!=137308&&Wl!=137820&&Wl!=139356&&Wl!=139868&&Wl!=141404)break}ic.endNonterminal(\"TryCatchStatement\",Vl)}function Df(){Hl(256),Il(90),vf();for(;;){Il(39),Hl(92),Il(249),Dn(),vf(),Il(284);switch($l){case 92:ql(256);break;default:Wl=$l}if(Wl!=2652&&Wl!=3164&&Wl!=36444&&Wl!=37468&&Wl!=37980&&Wl!=38492&&Wl!=39004&&Wl!=40028&&Wl!=40540&&Wl!=41052&&Wl!=41564&&Wl!=42076&&Wl!=42588&&Wl!=43100&&Wl!=43612&&Wl!=44124&&Wl!=44636&&Wl!=45660&&Wl!=46172&&Wl!=46684&&Wl!=47196&&Wl!=48220&&Wl!=48732&&Wl!=49756&&Wl!=50268&&Wl!=50780&&Wl!=52316&&Wl!=52828&&Wl!=53340&&Wl!=53852&&Wl!=54364&&Wl!=54876&&Wl!=55900&&Wl!=56412&&Wl!=56924&&Wl!=57436&&Wl!=57948&&Wl!=58460&&Wl!=61020&&Wl!=61532&&Wl!=62044&&Wl!=62556&&Wl!=63068&&Wl!=63580&&Wl!=64092&&Wl!=64604&&Wl!=65116&&Wl!=66140&&Wl!=66652&&Wl!=67676&&Wl!=68188&&Wl!=68700&&Wl!=69212&&Wl!=69724&&Wl!=70236&&Wl!=70748&&Wl!=71260&&Wl!=72796&&Wl!=73308&&Wl!=75356&&Wl!=75868&&Wl!=76892&&Wl!=77916&&Wl!=78428&&Wl!=78940&&Wl!=79452&&Wl!=79964&&Wl!=80476&&Wl!=82524&&Wl!=83036&&Wl!=83548&&Wl!=84060&&Wl!=84572&&Wl!=85084&&Wl!=85596&&Wl!=86108&&Wl!=86620&&Wl!=87132&&Wl!=88668&&Wl!=89180&&Wl!=89692&&Wl!=90716&&Wl!=91740&&Wl!=92764&&Wl!=93788&&Wl!=94300&&Wl!=94812&&Wl!=95836&&Wl!=96348&&Wl!=96860&&Wl!=99420&&Wl!=99932&&Wl!=100956&&Wl!=101468&&Wl!=103516&&Wl!=104028&&Wl!=104540&&Wl!=105052&&Wl!=105564&&Wl!=106076&&Wl!=107612&&Wl!=110684&&Wl!=111196&&Wl!=112732&&Wl!=113756&&Wl!=114268&&Wl!=114780&&Wl!=115292&&Wl!=115804&&Wl!=116828&&Wl!=117340&&Wl!=117852&&Wl!=118364&&Wl!=118876&&Wl!=119388&&Wl!=119900&&Wl!=122460&&Wl!=122972&&Wl!=123484&&Wl!=123996&&Wl!=125532&&Wl!=126556&&Wl!=127068&&Wl!=127580&&Wl!=129628&&Wl!=130140&&Wl!=130652&&Wl!=131164&&Wl!=131676&&Wl!=132188&&Wl!=132700&&Wl!=133212&&Wl!=134236&&Wl!=134748&&Wl!=136284&&Wl!=136796&&Wl!=137308&&Wl!=137820&&Wl!=139356&&Wl!=139868&&Wl!=141404)break}}function Pf(){ic.startNonterminal(\"TypeswitchStatement\",Vl),Pl(259),Il(22),Pl(35),Il(267),jl(),G(),Pl(38);for(;;){Il(38),jl(),Bf(),Il(117);if($l!=89)break}Pl(110),Il(99),$l==31&&(Pl(31),Il(246),jl(),Ti()),Il(73),Pl(224),Il(271),jl(),af(),ic.endNonterminal(\"TypeswitchStatement\",Vl)}function Hf(){Hl(259),Il(22),Hl(35),Il(267),Y(),Hl(38);for(;;){Il(38),jf(),Il(117);if($l!=89)break}Hl(110),Il(99),$l==31&&(Hl(31),Il(246),Ni()),Il(73),Hl(224),Il(271),ff()}function Bf(){ic.startNonterminal(\"CaseStatement\",Vl),Pl(89),Il(258),$l==31&&(Pl(31),Il(246),jl(),Ti(),Il(33),Pl(80)),Il(254),jl(),Ls(),Il(73),Pl(224),Il(271),jl(),af(),ic.endNonterminal(\"CaseStatement\",Vl)}function jf(){Hl(89),Il(258),$l==31&&(Hl(31),Il(246),Ni(),Il(33),Hl(80)),Il(254),As(),Il(73),Hl(224),Il(271),ff()}function Ff(){ic.startNonterminal(\"VarDeclStatement\",Vl);for(;;){Il(102);if($l!=33)break;jl(),B()}Pl(268),Il(21),Pl(31),Il(246),jl(),Ti(),Il(172),$l==80&&(jl(),Cs()),Il(155),$l==53&&(Pl(53),Il(267),jl(),Wf());for(;;){if($l!=42)break;Pl(42),Il(21),Pl(31),Il(246),jl(),Ti(),Il(172),$l==80&&(jl(),Cs()),Il(155),$l==53&&(Pl(53),Il(267),jl(),Wf())}Pl(54),ic.endNonterminal(\"VarDeclStatement\",Vl)}function If(){for(;;){Il(102);if($l!=33)break;j()}Hl(268),Il(21),Hl(31),Il(246),Ni(),Il(172),$l==80&&ks(),Il(155),$l==53&&(Hl(53),Il(267),Xf());for(;;){if($l!=42)break;Hl(42),Il(21),Hl(31),Il(246),Ni(),Il(172),$l==80&&ks(),Il(155),$l==53&&(Hl(53),Il(267),Xf())}Hl(54)}function qf(){ic.startNonterminal(\"WhileStatement\",Vl),Pl(273),Il(22),Pl(35),Il(267),jl(),G(),Pl(38),Il(271),jl(),af(),ic.endNonterminal(\"WhileStatement\",Vl)}function Rf(){Hl(273),Il(22),Hl(35),Il(267),Y(),Hl(38),Il(271),ff()}function Uf(){ic.startNonterminal(\"VoidStatement\",Vl),Pl(54),ic.endNonterminal(\"VoidStatement\",Vl)}function zf(){Hl(54)}function Wf(){ic.startNonterminal(\"ExprSingle\",Vl);switch($l){case 139:ql(179);break;case 177:ql(166);break;case 256:ql(148);break;case 154:case 248:case 259:ql(95);break;default:Wl=$l}switch(Wl){case 16011:case 16049:case 118961:case 122507:case 131723:Z();break;case 18074:Sn();break;case 18168:ln();break;case 144128:Tn();break;case 18179:mn();break;default:Vf()}ic.endNonterminal(\"ExprSingle\",Vl)}function Xf(){switch($l){case 139:ql(179);break;case 177:ql(166);break;case 256:ql(148);break;case 154:case 248:case 259:ql(95);break;default:Wl=$l}switch(Wl){case 16011:case 16049:case 118961:case 122507:case 131723:et();break;case 18074:xn();break;case 18168:cn();break;case 144128:Nn();break;case 18179:gn();break;default:$f()}}function Vf(){ic.startNonterminal(\"ExprSimple\",Vl);switch($l){case 78:ql(269);break;case 161:ql(276);break;case 223:ql(170);break;case 111:case 222:ql(261);break;case 104:case 130:case 240:ql(143);break;default:Wl=$l}if(Wl==17998||Wl==18031||Wl==18081||Wl==18142||Wl==99439||Wl==99489||Wl==99550||Wl==99951||Wl==100001||Wl==136927){Wl=uc(10,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hn(),Wl=-2}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),zo(),Wl=-3}catch(f){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Xo(),Wl=-4}catch(l){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Ko(),Wl=-5}catch(c){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),$o(),Wl=-6}catch(h){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Kf(),Wl=-8}catch(p){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Gf(),Wl=-9}catch(d){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Zf(),Wl=-10}catch(v){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),tl(),Wl=-11}catch(m){Wl=-12}}}}}}}}}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(10,Vl,Wl)}}switch(Wl){case 16002:case 16112:on();break;case-3:Uo();break;case-4:Wo();break;case-5:Jo();break;case-6:case 99551:Vo();break;case 15976:nu();break;case-8:case 3183:case 4207:case 4719:case 5231:case 5743:case 15983:case 16495:case 17007:case 28271:case 28783:case 30831:case 35439:case 36463:case 37487:case 37999:case 38511:case 39023:case 40047:case 40559:case 41071:case 41583:case 42095:case 42607:case 43119:case 43631:case 44143:case 44655:case 45679:case 46191:case 46703:case 47215:case 48239:case 48751:case 49775:case 50287:case 50799:case 52335:case 52847:case 53359:case 53871:case 54383:case 54895:case 55919:case 56431:case 56943:case 57455:case 57967:case 58479:case 61039:case 61551:case 62063:case 62575:case 63087:case 63599:case 64111:case 64623:case 65135:case 66159:case 66671:case 67695:case 68207:case 68719:case 69231:case 69743:case 70255:case 70767:case 71279:case 72815:case 73327:case 75375:case 75887:case 76911:case 77935:case 78447:case 78959:case 79471:case 79983:case 80495:case 82543:case 83055:case 83567:case 84079:case 84591:case 85103:case 85615:case 86127:case 86639:case 87151:case 88687:case 89199:case 89711:case 90735:case 91759:case 92783:case 93807:case 94319:case 94831:case 95855:case 96367:case 96879:case 100975:case 101487:case 103535:case 104047:case 104559:case 105071:case 105583:case 106095:case 107631:case 110703:case 111215:case 112751:case 113775:case 114287:case 114799:case 115311:case 115823:case 116847:case 117359:case 117871:case 118383:case 118895:case 119407:case 119919:case 122479:case 122991:case 123503:case 124015:case 125551:case 126575:case 127087:case 127599:case 129647:case 130159:case 130671:case 131183:case 131695:case 132207:case 132719:case 133231:case 134255:case 134767:case 136303:case 136815:case 137327:case 137839:case 139375:case 139887:case 141423:case 143983:case 145007:Jf();break;case-9:case 3233:case 4257:case 4769:case 5281:case 5793:case 9889:case 16033:case 16545:case 17057:case 18593:case 21153:case 22177:case 24225:case 24737:case 28321:case 28833:case 30881:case 35489:case 36513:case 37537:case 38049:case 38561:case 39073:case 40097:case 40609:case 41121:case 41633:case 42145:case 42657:case 43169:case 43681:case 44193:case 44705:case 45729:case 46241:case 46753:case 47265:case 48289:case 48801:case 49825:case 50337:case 50849:case 52385:case 52897:case 53409:case 53921:case 54433:case 54945:case 55969:case 56481:case 56993:case 57505:case 58017:case 58529:case 61089:case 61601:case 62113:case 62625:case 63137:case 63649:case 64161:case 64673:case 65185:case 66209:case 66721:case 67745:case 68257:case 68769:case 69281:case 69793:case 70305:case 70817:case 71329:case 72865:case 73377:case 75425:case 75937:case 76961:case 77985:case 78497:case 79009:case 79521:case 80033:case 80545:case 82593:case 83105:case 83617:case 84129:case 84641:case 85153:case 85665:case 86177:case 86689:case 87201:case 88737:case 89249:case 89761:case 90785:case 91809:case 92833:case 93857:case 94369:case 94881:case 95905:case 96417:case 96929:case 100513:case 101025:case 101537:case 103585:case 104097:case 104609:case 105121:case 105633:case 106145:case 107681:case 110753:case 111265:case 112801:case 113825:case 114337:case 114849:case 115361:case 115873:case 116897:case 117409:case 117921:case 118433:case 118945:case 119457:case 119969:case 122529:case 123041:case 123553:case 124065:case 125601:case 126625:case 127137:case 127649:case 129697:case 130209:case 130721:case 131233:case 131745:case 132257:case 132769:case 133281:case 134305:case 134817:case 136353:case 136865:case 137377:case 137889:case 139425:case 139937:case 141473:case 144033:case 145057:Qf();break;case-10:case 3294:case 4318:case 4830:case 5342:case 5854:case 16094:case 16606:case 17118:case 28382:case 28894:case 30942:case 35550:case 36574:case 37598:case 38110:case 38622:case 39134:case 40158:case 40670:case 41182:case 41694:case 42206:case 42718:case 43230:case 43742:case 44254:case 44766:case 45790:case 46302:case 46814:case 47326:case 48350:case 48862:case 49886:case 50398:case 50910:case 52446:case 52958:case 53470:case 53982:case 54494:case 55006:case 56030:case 56542:case 57054:case 57566:case 58078:case 58590:case 61150:case 61662:case 62174:case 62686:case 63198:case 63710:case 64222:case 64734:case 65246:case 66270:case 66782:case 67806:case 68318:case 68830:case 69342:case 69854:case 70366:case 70878:case 71390:case 72926:case 73438:case 75486:case 75998:case 77022:case 78046:case 78558:case 79070:case 79582:case 80094:case 80606:case 82654:case 83166:case 83678:case 84190:case 84702:case 85214:case 85726:case 86238:case 86750:case 87262:case 88798:case 89310:case 89822:case 90846:case 91870:case 92894:case 93918:case 94430:case 94942:case 95966:case 96478:case 96990:case 100062:case 101086:case 101598:case 103646:case 104158:case 104670:case 105182:case 105694:case 106206:case 107742:case 110814:case 111326:case 112862:case 113886:case 114398:case 114910:case 115422:case 115934:case 116958:case 117470:case 117982:case 118494:case 119006:case 119518:case 120030:case 122590:case 123102:case 123614:case 124126:case 125662:case 126686:case 127198:case 127710:case 129758:case 130270:case 130782:case 131294:case 131806:case 132318:case 132830:case 133342:case 134366:case 134878:case 136414:case 136926:case 137438:case 137950:case 139486:case 139998:case 141534:case 144094:case 145118:Yf();break;case-11:el();break;case-12:case 3150:case 4174:case 4686:case 5198:case 5710:case 15950:case 16462:case 16974:case 18510:case 21070:case 22094:case 24142:case 24654:case 28238:case 28750:case 30798:case 35406:case 36430:case 37454:case 37966:case 38478:case 38990:case 40014:case 40526:case 41038:case 41550:case 42062:case 42574:case 43086:case 43598:case 44110:case 44622:case 45646:case 46158:case 46670:case 47182:case 48206:case 48718:case 49742:case 50254:case 50766:case 52302:case 52814:case 53326:case 53838:case 54350:case 54862:case 55886:case 56398:case 56910:case 57422:case 57934:case 58446:case 61006:case 61518:case 62030:case 62542:case 63054:case 63566:case 64078:case 64590:case 65102:case 66126:case 66638:case 67662:case 68174:case 68686:case 69198:case 69710:case 70222:case 70734:case 71246:case 72782:case 73294:case 75342:case 75854:case 76878:case 77902:case 78414:case 78926:case 79438:case 79950:case 80462:case 82510:case 83022:case 83534:case 84046:case 84558:case 85070:case 85582:case 86094:case 86606:case 87118:case 88654:case 89166:case 89678:case 90702:case 91726:case 92750:case 93774:case 94286:case 94798:case 95822:case 96334:case 96846:case 99406:case 99918:case 100430:case 100942:case 101454:case 103502:case 104014:case 104526:case 105038:case 105550:case 106062:case 107598:case 110670:case 111182:case 112718:case 113742:case 114254:case 114766:case 115278:case 115790:case 116814:case 117326:case 117838:case 118350:case 118862:case 119374:case 119886:case 122446:case 122958:case 123470:case 123982:case 125518:case 126542:case 127054:case 127566:case 129614:case 130126:case 130638:case 131150:case 131662:case 132174:case 132686:case 133198:case 134222:case 134734:case 136270:case 136782:case 137294:case 137806:case 139342:case 139854:case 141390:case 143950:case 144974:nl();break;default:Pn()}ic.endNonterminal(\"ExprSimple\",Vl)}function $f(){switch($l){case 78:ql(269);break;case 161:ql(276);break;case 223:ql(170);break;case 111:case 222:ql(261);break;case 104:case 130:case 240:ql(143);break;default:Wl=$l}if(Wl==17998||Wl==18031||Wl==18081||Wl==18142||Wl==99439||Wl==99489||Wl==99550||Wl==99951||Wl==100001||Wl==136927){Wl=uc(10,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hn(),oc(10,t,-2),Wl=-13}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),zo(),oc(10,t,-3),Wl=-13}catch(f){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Xo(),oc(10,t,-4),Wl=-13}catch(l){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Ko(),oc(10,t,-5),Wl=-13}catch(c){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),$o(),oc(10,t,-6),Wl=-13}catch(h){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Kf(),oc(10,t,-8),Wl=-13}catch(p){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Gf(),oc(10,t,-9),Wl=-13}catch(d){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Zf(),oc(10,t,-10),Wl=-13}catch(v){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),tl(),oc(10,t,-11),Wl=-13}catch(m){Wl=-12,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(10,t,-12)}}}}}}}}}}}switch(Wl){case 16002:case 16112:un();break;case-3:zo();break;case-4:Xo();break;case-5:Ko();break;case-6:case 99551:$o();break;case 15976:ru();break;case-8:case 3183:case 4207:case 4719:case 5231:case 5743:case 15983:case 16495:case 17007:case 28271:case 28783:case 30831:case 35439:case 36463:case 37487:case 37999:case 38511:case 39023:case 40047:case 40559:case 41071:case 41583:case 42095:case 42607:case 43119:case 43631:case 44143:case 44655:case 45679:case 46191:case 46703:case 47215:case 48239:case 48751:case 49775:case 50287:case 50799:case 52335:case 52847:case 53359:case 53871:case 54383:case 54895:case 55919:case 56431:case 56943:case 57455:case 57967:case 58479:case 61039:case 61551:case 62063:case 62575:case 63087:case 63599:case 64111:case 64623:case 65135:case 66159:case 66671:case 67695:case 68207:case 68719:case 69231:case 69743:case 70255:case 70767:case 71279:case 72815:case 73327:case 75375:case 75887:case 76911:case 77935:case 78447:case 78959:case 79471:case 79983:case 80495:case 82543:case 83055:case 83567:case 84079:case 84591:case 85103:case 85615:case 86127:case 86639:case 87151:case 88687:case 89199:case 89711:case 90735:case 91759:case 92783:case 93807:case 94319:case 94831:case 95855:case 96367:case 96879:case 100975:case 101487:case 103535:case 104047:case 104559:case 105071:case 105583:case 106095:case 107631:case 110703:case 111215:case 112751:case 113775:case 114287:case 114799:case 115311:case 115823:case 116847:case 117359:case 117871:case 118383:case 118895:case 119407:case 119919:case 122479:case 122991:case 123503:case 124015:case 125551:case 126575:case 127087:case 127599:case 129647:case 130159:case 130671:case 131183:case 131695:case 132207:case 132719:case 133231:case 134255:case 134767:case 136303:case 136815:case 137327:case 137839:case 139375:case 139887:case 141423:case 143983:case 145007:Kf();break;case-9:case 3233:case 4257:case 4769:case 5281:case 5793:case 9889:case 16033:case 16545:case 17057:case 18593:case 21153:case 22177:case 24225:case 24737:case 28321:case 28833:case 30881:case 35489:case 36513:case 37537:case 38049:case 38561:case 39073:case 40097:case 40609:case 41121:case 41633:case 42145:case 42657:case 43169:case 43681:case 44193:case 44705:case 45729:case 46241:case 46753:case 47265:case 48289:case 48801:case 49825:case 50337:case 50849:case 52385:case 52897:case 53409:case 53921:case 54433:case 54945:case 55969:case 56481:case 56993:case 57505:case 58017:case 58529:case 61089:case 61601:case 62113:case 62625:case 63137:case 63649:case 64161:case 64673:case 65185:case 66209:case 66721:case 67745:case 68257:case 68769:case 69281:case 69793:case 70305:case 70817:case 71329:case 72865:case 73377:case 75425:case 75937:case 76961:case 77985:case 78497:case 79009:case 79521:case 80033:case 80545:case 82593:case 83105:case 83617:case 84129:case 84641:case 85153:case 85665:case 86177:case 86689:case 87201:case 88737:case 89249:case 89761:case 90785:case 91809:case 92833:case 93857:case 94369:case 94881:case 95905:case 96417:case 96929:case 100513:case 101025:case 101537:case 103585:case 104097:case 104609:case 105121:case 105633:case 106145:case 107681:case 110753:case 111265:case 112801:case 113825:case 114337:case 114849:case 115361:case 115873:case 116897:case 117409:case 117921:case 118433:case 118945:case 119457:case 119969:case 122529:case 123041:case 123553:case 124065:case 125601:case 126625:case 127137:case 127649:case 129697:case 130209:case 130721:case 131233:case 131745:case 132257:case 132769:case 133281:case 134305:case 134817:case 136353:case 136865:case 137377:case 137889:case 139425:case 139937:case 141473:case 144033:case 145057:Gf();break;case-10:case 3294:case 4318:case 4830:case 5342:case 5854:case 16094:case 16606:case 17118:case 28382:case 28894:case 30942:case 35550:case 36574:case 37598:case 38110:case 38622:case 39134:case 40158:case 40670:case 41182:case 41694:case 42206:case 42718:case 43230:case 43742:case 44254:case 44766:case 45790:case 46302:case 46814:case 47326:case 48350:case 48862:case 49886:case 50398:case 50910:case 52446:case 52958:case 53470:case 53982:case 54494:case 55006:case 56030:case 56542:case 57054:case 57566:case 58078:case 58590:case 61150:case 61662:case 62174:case 62686:case 63198:case 63710:case 64222:case 64734:case 65246:case 66270:case 66782:case 67806:case 68318:case 68830:case 69342:case 69854:case 70366:case 70878:case 71390:case 72926:case 73438:case 75486:case 75998:case 77022:case 78046:case 78558:case 79070:case 79582:case 80094:case 80606:case 82654:case 83166:case 83678:case 84190:case 84702:case 85214:case 85726:case 86238:case 86750:case 87262:case 88798:case 89310:case 89822:case 90846:case 91870:case 92894:case 93918:case 94430:case 94942:case 95966:case 96478:case 96990:case 100062:case 101086:case 101598:case 103646:case 104158:case 104670:case 105182:case 105694:case 106206:case 107742:case 110814:case 111326:case 112862:case 113886:case 114398:case 114910:case 115422:case 115934:case 116958:case 117470:case 117982:case 118494:case 119006:case 119518:case 120030:case 122590:case 123102:case 123614:case 124126:case 125662:case 126686:case 127198:case 127710:case 129758:case 130270:case 130782:case 131294:case 131806:case 132318:case 132830:case 133342:case 134366:case 134878:case 136414:case 136926:case 137438:case 137950:case 139486:case 139998:case 141534:case 144094:case 145118:Zf();break;case-11:tl();break;case-12:case 3150:case 4174:case 4686:case 5198:case 5710:case 15950:case 16462:case 16974:case 18510:case 21070:case 22094:case 24142:case 24654:case 28238:case 28750:case 30798:case 35406:case 36430:case 37454:case 37966:case 38478:case 38990:case 40014:case 40526:case 41038:case 41550:case 42062:case 42574:case 43086:case 43598:case 44110:case 44622:case 45646:case 46158:case 46670:case 47182:case 48206:case 48718:case 49742:case 50254:case 50766:case 52302:case 52814:case 53326:case 53838:case 54350:case 54862:case 55886:case 56398:case 56910:case 57422:case 57934:case 58446:case 61006:case 61518:case 62030:case 62542:case 63054:case 63566:case 64078:case 64590:case 65102:case 66126:case 66638:case 67662:case 68174:case 68686:case 69198:case 69710:case 70222:case 70734:case 71246:case 72782:case 73294:case 75342:case 75854:case 76878:case 77902:case 78414:case 78926:case 79438:case 79950:case 80462:case 82510:case 83022:case 83534:case 84046:case 84558:case 85070:case 85582:case 86094:case 86606:case 87118:case 88654:case 89166:case 89678:case 90702:case 91726:case 92750:case 93774:case 94286:case 94798:case 95822:case 96334:case 96846:case 99406:case 99918:case 100430:case 100942:case 101454:case 103502:case 104014:case 104526:case 105038:case 105550:case 106062:case 107598:case 110670:case 111182:case 112718:case 113742:case 114254:case 114766:case 115278:case 115790:case 116814:case 117326:case 117838:case 118350:case 118862:case 119374:case 119886:case 122446:case 122958:case 123470:case 123982:case 125518:case 126542:case 127054:case 127566:case 129614:case 130126:case 130638:case 131150:case 131662:case 132174:case 132686:case 133198:case 134222:case 134734:case 136270:case 136782:case 137294:case 137806:case 139342:case 139854:case 141390:case 143950:case 144974:rl();break;case-13:break;default:Hn()}}function Jf(){ic.startNonterminal(\"JSONDeleteExpr\",Vl),Pl(111),Il(260);switch($l){case 168:ql(261);break;default:Wl=$l}if(Wl==18088){Wl=uc(11,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(168),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(11,Vl,Wl)}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Pl(168),Il(260),jl(),ei(),ic.endNonterminal(\"JSONDeleteExpr\",Vl)}function Kf(){Hl(111),Il(260);switch($l){case 168:ql(261);break;default:Wl=$l}if(Wl==18088){Wl=uc(11,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(168),oc(11,t,-1)}catch(a){Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(11,t,-2)}Wl=-2}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Hl(168),Il(260),ti()}function Qf(){ic.startNonterminal(\"JSONInsertExpr\",Vl);switch($l){case 161:ql(268);break;default:Wl=$l}if(Wl!=9889){Wl=uc(12,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(161),Il(267);switch($l){case 168:ql(269);break;default:Wl=$l}if(Wl==18088){Wl=uc(13,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(168),oc(13,f,-1)}catch(m){Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(13,f,-2)}Wl=-2}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==18600||Wl==21160||Wl==22184||Wl==24232||Wl==24744||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==100520||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Hl(168),Il(267),Xf(),Hl(165),Il(267),Xf();switch($l){case 82:ql(72);break;default:Wl=$l}if(Wl==110162){Wl=uc(14,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(82),Il(72),Hl(215),Il(267),Xf(),oc(14,f,-1)}catch(m){Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(14,f,-2)}Wl=-2}}Wl==-1&&(Hl(82),Il(72),Hl(215),Il(267),Xf()),Wl=-1}catch(g){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(12,Vl,Wl)}}switch(Wl){case-1:Pl(161),Il(267);switch($l){case 168:ql(269);break;default:Wl=$l}if(Wl==18088){Wl=uc(13,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(168),Wl=-1}catch(m){Wl=-2}Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(13,Vl,Wl)}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==18600||Wl==21160||Wl==22184||Wl==24232||Wl==24744||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==100520||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Pl(168),Il(267),jl(),Wf(),Pl(165),Il(267),jl(),Wf();switch($l){case 82:ql(72);break;default:Wl=$l}if(Wl==110162){Wl=uc(14,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(82),Il(72),Hl(215),Il(267),Xf(),Wl=-1}catch(m){Wl=-2}Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(14,Vl,Wl)}}Wl==-1&&(Pl(82),Il(72),Pl(215),Il(267),jl(),Wf());break;default:Pl(161),Il(268);switch($l){case 168:ql(282);break;default:Wl=$l}if(Wl==18088){Wl=uc(15,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(168),Wl=-1}catch(m){Wl=-2}Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(15,Vl,Wl)}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==9896||Wl==16040||Wl==16552||Wl==17064||Wl==18600||Wl==21160||Wl==22184||Wl==24232||Wl==24744||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==100520||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Pl(168),Il(268),jl(),Tl(),Pl(165),Il(267),jl(),Wf()}ic.endNonterminal(\"JSONInsertExpr\",Vl)}function Gf(){switch($l){case 161:ql(268);break;default:Wl=$l}if(Wl!=9889){Wl=uc(12,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(161),Il(267);switch($l){case 168:ql(269);break;default:Wl=$l}if(Wl==18088){Wl=uc(13,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(168),oc(13,f,-1)}catch(m){Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(13,f,-2)}Wl=-2}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==18600||Wl==21160||Wl==22184||Wl==24232||Wl==24744||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==100520||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Hl(168),Il(267),Xf(),Hl(165),Il(267),Xf();switch($l){case 82:ql(72);break;default:Wl=$l}if(Wl==110162){Wl=uc(14,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(82),Il(72),Hl(215),Il(267),Xf(),oc(14,f,-1)}catch(m){Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(14,f,-2)}Wl=-2}}Wl==-1&&(Hl(82),Il(72),Hl(215),Il(267),Xf()),oc(12,t,-1),Wl=-3}catch(g){Wl=-2,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(12,t,-2)}}}switch(Wl){case-1:Hl(161),Il(267);switch($l){case 168:ql(269);break;default:Wl=$l}if(Wl==18088){Wl=uc(13,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(168),oc(13,f,-1)}catch(m){Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(13,f,-2)}Wl=-2}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==18600||Wl==21160||Wl==22184||Wl==24232||Wl==24744||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==100520||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Hl(168),Il(267),Xf(),Hl(165),Il(267),Xf();switch($l){case 82:ql(72);break;default:Wl=$l}if(Wl==110162){Wl=uc(14,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(82),Il(72),Hl(215),Il(267),Xf(),oc(14,f,-1)}catch(m){Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(14,f,-2)}Wl=-2}}Wl==-1&&(Hl(82),Il(72),Hl(215),Il(267),Xf());break;case-3:break;default:Hl(161),Il(268);switch($l){case 168:ql(282);break;default:Wl=$l}if(Wl==18088){Wl=uc(15,Vl);if(Wl==0){var a=Xl,f=Vl,l=$l,c=Jl,h=Kl,p=Ql,d=Gl,v=Yl;try{Hl(168),oc(15,f,-1)}catch(m){Xl=a,Vl=f,$l=l,$l==0?cc=f:(Jl=c,Kl=h,Ql=p,Ql==0?cc=h:(Gl=d,Yl=v,cc=v)),oc(15,f,-2)}Wl=-2}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==9896||Wl==16040||Wl==16552||Wl==17064||Wl==18600||Wl==21160||Wl==22184||Wl==24232||Wl==24744||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==100520||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Hl(168),Il(268),Nl(),Hl(165),Il(267),Xf()}}function Yf(){ic.startNonterminal(\"JSONRenameExpr\",Vl),Pl(222),Il(260);switch($l){case 168:ql(261);break;default:Wl=$l}if(Wl==18088){Wl=uc(16,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(168),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(16,Vl,Wl)}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Pl(168),Il(260),jl(),ei(),Pl(80),Il(267),jl(),Wf(),ic.endNonterminal(\"JSONRenameExpr\",Vl)}function Zf(){Hl(222),Il(260);switch($l){case 168:ql(261);break;default:Wl=$l}if(Wl==18088){Wl=uc(16,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(168),oc(16,t,-1)}catch(a){Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(16,t,-2)}Wl=-2}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Hl(168),Il(260),ti(),Hl(80),Il(267),Xf()}function el(){ic.startNonterminal(\"JSONReplaceExpr\",Vl),Pl(223),Il(85),Pl(267),Il(67),Pl(200),Il(59),Pl(168),Il(260),jl(),ei(),Pl(276),Il(267),jl(),Wf(),ic.endNonterminal(\"JSONReplaceExpr\",Vl)}function tl(){Hl(223),Il(85),Hl(267),Il(67),Hl(200),Il(59),Hl(168),Il(260),ti(),Hl(276),Il(267),Xf()}function nl(){ic.startNonterminal(\"JSONAppendExpr\",Vl),Pl(78),Il(267);switch($l){case 168:ql(269);break;default:Wl=$l}if(Wl==18088){Wl=uc(17,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(168),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(17,Vl,Wl)}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==18600||Wl==21160||Wl==22184||Wl==24232||Wl==24744||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==100520||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Pl(168),Il(267),jl(),Wf(),Pl(165),Il(267),jl(),Wf(),ic.endNonterminal(\"JSONAppendExpr\",Vl)}function rl(){Hl(78),Il(267);switch($l){case 168:ql(269);break;default:Wl=$l}if(Wl==18088){Wl=uc(17,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(168),oc(17,t,-1)}catch(a){Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(17,t,-2)}Wl=-2}}(Wl==-1||Wl==3240||Wl==4264||Wl==4776||Wl==5288||Wl==5800||Wl==16040||Wl==16552||Wl==17064||Wl==18600||Wl==21160||Wl==22184||Wl==24232||Wl==24744||Wl==28328||Wl==28840||Wl==30888||Wl==35496||Wl==36520||Wl==37544||Wl==38056||Wl==38568||Wl==39080||Wl==40104||Wl==40616||Wl==41128||Wl==41640||Wl==42152||Wl==42664||Wl==43176||Wl==43688||Wl==44200||Wl==44712||Wl==45736||Wl==46248||Wl==46760||Wl==47272||Wl==48296||Wl==48808||Wl==49832||Wl==50344||Wl==50856||Wl==52392||Wl==52904||Wl==53416||Wl==53928||Wl==54440||Wl==54952||Wl==55976||Wl==56488||Wl==57e3||Wl==57512||Wl==58024||Wl==58536||Wl==61096||Wl==61608||Wl==62120||Wl==62632||Wl==63144||Wl==63656||Wl==64168||Wl==64680||Wl==65192||Wl==66216||Wl==66728||Wl==67752||Wl==68264||Wl==68776||Wl==69288||Wl==69800||Wl==70312||Wl==70824||Wl==71336||Wl==72872||Wl==73384||Wl==75432||Wl==75944||Wl==76968||Wl==77992||Wl==78504||Wl==79016||Wl==79528||Wl==80040||Wl==80552||Wl==82600||Wl==83112||Wl==83624||Wl==84136||Wl==84648||Wl==85160||Wl==85672||Wl==86184||Wl==86696||Wl==87208||Wl==88744||Wl==89256||Wl==89768||Wl==90792||Wl==91816||Wl==92840||Wl==93864||Wl==94376||Wl==94888||Wl==95912||Wl==96424||Wl==96936||Wl==99496||Wl==100008||Wl==100520||Wl==101032||Wl==101544||Wl==103592||Wl==104104||Wl==104616||Wl==105128||Wl==105640||Wl==106152||Wl==107688||Wl==110760||Wl==111272||Wl==112808||Wl==113832||Wl==114344||Wl==114856||Wl==115368||Wl==115880||Wl==116904||Wl==117416||Wl==117928||Wl==118440||Wl==118952||Wl==119464||Wl==119976||Wl==122536||Wl==123048||Wl==123560||Wl==124072||Wl==125608||Wl==126632||Wl==127144||Wl==127656||Wl==129704||Wl==130216||Wl==130728||Wl==131240||Wl==131752||Wl==132264||Wl==132776||Wl==133288||Wl==134312||Wl==134824||Wl==136360||Wl==136872||Wl==137384||Wl==137896||Wl==139432||Wl==139944||Wl==141480||Wl==144040||Wl==145064)&&Hl(168),Il(267),Xf(),Hl(165),Il(267),Xf()}function il(){ic.startNonterminal(\"CommonContent\",Vl);switch($l){case 12:Pl(12);break;case 23:Pl(23);break;case 282:Pl(282);break;case 288:Pl(288);break;default:Ol()}ic.endNonterminal(\"CommonContent\",Vl)}function sl(){switch($l){case 12:Hl(12);break;case 23:Hl(23);break;case 282:Hl(282);break;case 288:Hl(288);break;default:Ml()}}function ol(){ic.startNonterminal(\"ContentExpr\",Vl),rf(),ic.endNonterminal(\"ContentExpr\",Vl)}function ul(){sf()}function al(){ic.startNonterminal(\"CompDocConstructor\",Vl),Pl(120),Il(90),jl(),Ol(),ic.endNonterminal(\"CompDocConstructor\",Vl)}function fl(){Hl(120),Il(90),Ml()}function ll(){ic.startNonterminal(\"CompAttrConstructor\",Vl),Pl(83),Il(250);switch($l){case 281:Pl(281),Il(267),jl(),G(),Pl(287);break;default:jl(),$a()}Il(90);switch($l){case 281:ql(281);break;default:Wl=$l}if(Wl==147225){Wl=uc(18,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(281),Il(91),Hl(287),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(18,Vl,Wl)}}switch(Wl){case-1:Pl(281),Il(91),Pl(287);break;default:jl(),Ol()}ic.endNonterminal(\"CompAttrConstructor\",Vl)}function cl(){Hl(83),Il(250);switch($l){case 281:Hl(281),Il(267),Y(),Hl(287);break;default:Ja()}Il(90);switch($l){case 281:ql(281);break;default:Wl=$l}if(Wl==147225){Wl=uc(18,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(281),Il(91),Hl(287),oc(18,t,-1),Wl=-3}catch(a){Wl=-2,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(18,t,-2)}}}switch(Wl){case-1:Hl(281),Il(91),Hl(287);break;case-3:break;default:Ml()}}function hl(){ic.startNonterminal(\"CompPIConstructor\",Vl),Pl(220),Il(242);switch($l){case 281:Pl(281),Il(267),jl(),G(),Pl(287);break;default:jl(),Ga()}Il(90);switch($l){case 281:ql(281);break;default:Wl=$l}if(Wl==147225){Wl=uc(19,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(281),Il(91),Hl(287),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(19,Vl,Wl)}}switch(Wl){case-1:Pl(281),Il(91),Pl(287);break;default:jl(),Ol()}ic.endNonterminal(\"CompPIConstructor\",Vl)}function pl(){Hl(220),Il(242);switch($l){case 281:Hl(281),Il(267),Y(),Hl(287);break;default:Ya()}Il(90);switch($l){case 281:ql(281);break;default:Wl=$l}if(Wl==147225){Wl=uc(19,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Hl(281),Il(91),Hl(287),oc(19,t,-1),Wl=-3}catch(a){Wl=-2,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(19,t,-2)}}}switch(Wl){case-1:Hl(281),Il(91),Hl(287);break;case-3:break;default:Ml()}}function dl(){ic.startNonterminal(\"CompCommentConstructor\",Vl),Pl(97),Il(90),jl(),Ol(),ic.endNonterminal(\"CompCommentConstructor\",Vl)}function vl(){Hl(97),Il(90),Ml()}function ml(){ic.startNonterminal(\"CompTextConstructor\",Vl),Pl(249),Il(90),jl(),Ol(),ic.endNonterminal(\"CompTextConstructor\",Vl)}function gl(){Hl(249),Il(90),Ml()}function yl(){ic.startNonterminal(\"PrimaryExpr\",Vl);switch($l){case 187:ql(247);break;case 220:ql(245);break;case 281:ql(283);break;case 83:case 122:ql(253);break;case 97:case 249:ql(97);break;case 120:case 206:case 262:ql(148);break;case 135:case 197:case 255:ql(237);break;case 6:case 71:case 73:case 74:case 75:case 76:case 78:case 80:case 81:case 82:case 84:case 85:case 86:case 87:case 89:case 90:case 91:case 92:case 94:case 95:case 98:case 99:case 102:case 103:case 104:case 105:case 106:case 107:case 109:case 110:case 111:case 112:case 113:case 114:case 119:case 123:case 124:case 126:case 127:case 129:case 130:case 132:case 133:case 134:case 136:case 137:case 138:case 139:case 142:case 143:case 148:case 150:case 152:case 153:case 155:case 156:case 157:case 161:case 162:case 163:case 164:case 165:case 166:case 168:case 170:case 173:case 174:case 175:case 177:case 179:case 181:case 183:case 184:case 185:case 189:case 195:case 198:case 202:case 203:case 204:case 205:case 207:case 210:case 216:case 217:case 222:case 223:case 224:case 225:case 226:case 228:case 229:case 232:case 233:case 234:case 239:case 240:case 241:case 242:case 245:case 253:case 254:case 256:case 257:case 258:case 260:case 263:case 266:case 267:case 268:case 269:case 272:case 273:case 276:ql(95);break;default:Wl=$l}if(Wl==3353||Wl==4377||Wl==4889||Wl==5401||Wl==5913||Wl==16153||Wl==16665||Wl==17177||Wl==18055||Wl==18117||Wl==18175||Wl==18201||Wl==18713||Wl==21273||Wl==22297||Wl==24345||Wl==24857||Wl==28441||Wl==28953||Wl==31001||Wl==35609||Wl==36633||Wl==37657||Wl==38169||Wl==38681||Wl==39193||Wl==40217||Wl==40729||Wl==41241||Wl==41753||Wl==42265||Wl==42777||Wl==43289||Wl==43801||Wl==44313||Wl==44825||Wl==45849||Wl==46361||Wl==46873||Wl==47385||Wl==48409||Wl==48921||Wl==49945||Wl==50457||Wl==50969||Wl==52505||Wl==53017||Wl==53529||Wl==54041||Wl==54553||Wl==55065||Wl==56089||Wl==56601||Wl==57113||Wl==57625||Wl==58137||Wl==58649||Wl==61209||Wl==61721||Wl==62233||Wl==62745||Wl==63257||Wl==63769||Wl==64281||Wl==64793||Wl==65305||Wl==66329||Wl==66841||Wl==67865||Wl==68377||Wl==68889||Wl==69401||Wl==69913||Wl==70425||Wl==70937||Wl==71449||Wl==72985||Wl==73497||Wl==75545||Wl==76057||Wl==77081||Wl==78105||Wl==78617||Wl==79129||Wl==79641||Wl==80153||Wl==80665||Wl==82713||Wl==83225||Wl==83737||Wl==84249||Wl==84761||Wl==85273||Wl==85785||Wl==86297||Wl==86809||Wl==87321||Wl==88857||Wl==89369||Wl==89881||Wl==90905||Wl==91929||Wl==92953||Wl==93977||Wl==94489||Wl==95001||Wl==96025||Wl==96537||Wl==97049||Wl==99609||Wl==100121||Wl==100633||Wl==101145||Wl==101657||Wl==103705||Wl==104217||Wl==104729||Wl==105241||Wl==105753||Wl==106265||Wl==107801||Wl==110873||Wl==111385||Wl==112921||Wl==113945||Wl==114457||Wl==114969||Wl==115481||Wl==115993||Wl==117017||Wl==117529||Wl==118041||Wl==118553||Wl==119065||Wl==119577||Wl==120089||Wl==122649||Wl==123161||Wl==123673||Wl==124185||Wl==125721||Wl==126745||Wl==127257||Wl==127769||Wl==129817||Wl==130329||Wl==130841||Wl==131353||Wl==131865||Wl==132377||Wl==132889||Wl==133401||Wl==134425||Wl==134937||Wl==136473||Wl==136985||Wl==137497||Wl==138009||Wl==139545||Wl==140057||Wl==141593||Wl==144153||Wl==145177||Wl==147225){Wl=uc(20,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{vi(),Wl=-1}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Hi(),Wl=-5}catch(f){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Ml(),Wl=-10}catch(l){Wl=-11}}}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(20,Vl,Wl)}}switch(Wl){case-1:case 8:case 9:case 10:case 11:case 12935:case 12997:case 13055:case 13447:case 13509:case 13567:case 13959:case 14021:case 14079:case 19591:case 19653:case 19711:case 20103:case 20165:case 20223:case 21127:case 21189:case 21247:case 21639:case 21701:case 21759:case 22151:case 22213:case 22271:case 23175:case 23237:case 23295:case 24199:case 24261:case 24319:case 24711:case 24773:case 24831:case 25735:case 25797:case 25855:case 27783:case 27845:case 27903:case 28295:case 28357:case 28415:case 29831:case 29893:case 29951:case 30343:case 30405:case 30463:case 31367:case 31429:case 31487:case 31879:case 31941:case 31999:case 32391:case 32453:case 32511:case 32903:case 32965:case 33023:case 35463:case 35525:case 35583:case 35975:case 36037:case 36095:case 36487:case 36549:case 36607:case 39047:case 39109:case 39167:case 41095:case 41157:case 41215:case 41607:case 41669:case 41727:case 42119:case 42181:case 42239:case 43655:case 43717:case 43775:case 45191:case 45253:case 45311:case 45703:case 45765:case 45823:case 46215:case 46277:case 46335:case 46727:case 46789:case 46847:case 48775:case 48837:case 48895:case 51335:case 51397:case 51455:case 54407:case 54469:case 54527:case 56455:case 56517:case 56575:case 58503:case 58565:case 58623:case 61063:case 61125:case 61183:case 63111:case 63173:case 63231:case 63623:case 63685:case 63743:case 65159:case 65221:case 65279:case 66183:case 66245:case 66303:case 67719:case 67781:case 67839:case 71303:case 71365:case 71423:case 75911:case 75973:case 76031:case 76935:case 76997:case 77055:case 77959:case 78021:case 78079:case 78471:case 78533:case 78591:case 83079:case 83141:case 83199:case 84103:case 84165:case 84223:case 84615:case 84677:case 84735:case 85127:case 85189:case 85247:case 89735:case 89797:case 89855:case 90759:case 90821:case 90879:case 92807:case 92869:case 92927:case 93831:case 93893:case 93951:case 94343:case 94405:case 94463:case 96903:case 96965:case 97023:case 103559:case 103621:case 103679:case 104583:case 104645:case 104703:case 105095:case 105157:case 105215:case 107143:case 107205:case 107263:case 114823:case 114885:case 114943:case 116871:case 116933:case 116991:case 121479:case 121541:case 121599:case 123527:case 123589:case 123647:case 124039:case 124101:case 124159:case 129159:case 129221:case 129279:case 129671:case 129733:case 129791:case 130183:case 130245:case 130303:case 133255:case 133317:case 133375:case 139399:case 139461:case 139519:case 141447:case 141509:case 141567:case 142983:case 143045:case 143103:case 145543:case 145605:case 145663:case 146055:case 146117:case 146175:case 146567:case 146629:case 146687:case 147079:case 147141:case 147199:di();break;case 31:Si();break;case 35:Ci();break;case 32:Li();break;case-5:case 17926:case 17991:case 17993:case 17994:case 17995:case 17996:case 17998:case 18e3:case 18001:case 18002:case 18004:case 18005:case 18006:case 18007:case 18009:case 18010:case 18011:case 18012:case 18014:case 18015:case 18018:case 18019:case 18022:case 18023:case 18024:case 18025:case 18026:case 18027:case 18029:case 18030:case 18031:case 18032:case 18033:case 18034:case 18039:case 18040:case 18043:case 18044:case 18046:case 18047:case 18049:case 18050:case 18052:case 18053:case 18054:case 18056:case 18057:case 18058:case 18059:case 18062:case 18063:case 18068:case 18070:case 18072:case 18073:case 18075:case 18076:case 18077:case 18081:case 18082:case 18083:case 18084:case 18085:case 18086:case 18088:case 18090:case 18093:case 18094:case 18095:case 18097:case 18099:case 18101:case 18103:case 18104:case 18105:case 18107:case 18109:case 18115:case 18118:case 18122:case 18123:case 18124:case 18125:case 18126:case 18127:case 18130:case 18136:case 18137:case 18142:case 18143:case 18144:case 18145:case 18146:case 18148:case 18149:case 18152:case 18153:case 18154:case 18159:case 18160:case 18161:case 18162:case 18165:case 18173:case 18174:case 18176:case 18177:case 18178:case 18180:case 18182:case 18183:case 18186:case 18187:case 18188:case 18189:case 18192:case 18193:case 18196:Pi();break;case 144078:Oi();break;case 144134:_i();break;case 33:case 79:case 121:case 125:case 147:case 154:case 167:case 169:case 188:case 194:case 230:case 231:case 247:case 248:case 259:case 14854:case 14919:case 14921:case 14922:case 14923:case 14924:case 14926:case 14928:case 14929:case 14930:case 14931:case 14932:case 14933:case 14934:case 14935:case 14937:case 14938:case 14939:case 14940:case 14942:case 14943:case 14945:case 14946:case 14947:case 14950:case 14951:case 14952:case 14953:case 14954:case 14955:case 14957:case 14958:case 14959:case 14960:case 14961:case 14962:case 14967:case 14968:case 14970:case 14971:case 14972:case 14974:case 14975:case 14977:case 14978:case 14980:case 14981:case 14982:case 14983:case 14984:case 14985:case 14986:case 14987:case 14990:case 14991:case 14996:case 14998:case 15e3:case 15001:case 15003:case 15004:case 15005:case 15009:case 15010:case 15011:case 15012:case 15013:case 15014:case 15016:case 15018:case 15021:case 15022:case 15023:case 15025:case 15027:case 15029:case 15031:case 15032:case 15033:case 15035:case 15037:case 15043:case 15045:case 15046:case 15050:case 15051:case 15052:case 15053:case 15054:case 15055:case 15058:case 15064:case 15065:case 15068:case 15070:case 15071:case 15072:case 15073:case 15074:case 15076:case 15077:case 15080:case 15081:case 15082:case 15087:case 15088:case 15089:case 15090:case 15093:case 15097:case 15101:case 15102:case 15103:case 15104:case 15105:case 15106:case 15108:case 15110:case 15111:case 15114:case 15115:case 15116:case 15117:case 15120:case 15121:case 15124:ys();break;case-10:case 27929:Ol();break;case-11:case 10009:Sl();break;case 69:Ll();break;case 283:wl();break;default:qi()}ic.endNonterminal(\"PrimaryExpr\",Vl)}function bl(){switch($l){case 187:ql(247);break;case 220:ql(245);break;case 281:ql(283);break;case 83:case 122:ql(253);break;case 97:case 249:ql(97);break;case 120:case 206:case 262:ql(148);break;case 135:case 197:case 255:ql(237);break;case 6:case 71:case 73:case 74:case 75:case 76:case 78:case 80:case 81:case 82:case 84:case 85:case 86:case 87:case 89:case 90:case 91:case 92:case 94:case 95:case 98:case 99:case 102:case 103:case 104:case 105:case 106:case 107:case 109:case 110:case 111:case 112:case 113:case 114:case 119:case 123:case 124:case 126:case 127:case 129:case 130:case 132:case 133:case 134:case 136:case 137:case 138:case 139:case 142:case 143:case 148:case 150:case 152:case 153:case 155:case 156:case 157:case 161:case 162:case 163:case 164:case 165:case 166:case 168:case 170:case 173:case 174:case 175:case 177:case 179:case 181:case 183:case 184:case 185:case 189:case 195:case 198:case 202:case 203:case 204:case 205:case 207:case 210:case 216:case 217:case 222:case 223:case 224:case 225:case 226:case 228:case 229:case 232:case 233:case 234:case 239:case 240:case 241:case 242:case 245:case 253:case 254:case 256:case 257:case 258:case 260:case 263:case 266:case 267:case 268:case 269:case 272:case 273:case 276:ql(95);break;default:Wl=$l}if(Wl==3353||Wl==4377||Wl==4889||Wl==5401||Wl==5913||Wl==16153||Wl==16665||Wl==17177||Wl==18055||Wl==18117||Wl==18175||Wl==18201||Wl==18713||Wl==21273||Wl==22297||Wl==24345||Wl==24857||Wl==28441||Wl==28953||Wl==31001||Wl==35609||Wl==36633||Wl==37657||Wl==38169||Wl==38681||Wl==39193||Wl==40217||Wl==40729||Wl==41241||Wl==41753||Wl==42265||Wl==42777||Wl==43289||Wl==43801||Wl==44313||Wl==44825||Wl==45849||Wl==46361||Wl==46873||Wl==47385||Wl==48409||Wl==48921||Wl==49945||Wl==50457||Wl==50969||Wl==52505||Wl==53017||Wl==53529||Wl==54041||Wl==54553||Wl==55065||Wl==56089||Wl==56601||Wl==57113||Wl==57625||Wl==58137||Wl==58649||Wl==61209||Wl==61721||Wl==62233||Wl==62745||Wl==63257||Wl==63769||Wl==64281||Wl==64793||Wl==65305||Wl==66329||Wl==66841||Wl==67865||Wl==68377||Wl==68889||Wl==69401||Wl==69913||Wl==70425||Wl==70937||Wl==71449||Wl==72985||Wl==73497||Wl==75545||Wl==76057||Wl==77081||Wl==78105||Wl==78617||Wl==79129||Wl==79641||Wl==80153||Wl==80665||Wl==82713||Wl==83225||Wl==83737||Wl==84249||Wl==84761||Wl==85273||Wl==85785||Wl==86297||Wl==86809||Wl==87321||Wl==88857||Wl==89369||Wl==89881||Wl==90905||Wl==91929||Wl==92953||Wl==93977||Wl==94489||Wl==95001||Wl==96025||Wl==96537||Wl==97049||Wl==99609||Wl==100121||Wl==100633||Wl==101145||Wl==101657||Wl==103705||Wl==104217||Wl==104729||Wl==105241||Wl==105753||Wl==106265||Wl==107801||Wl==110873||Wl==111385||Wl==112921||Wl==113945||Wl==114457||Wl==114969||Wl==115481||Wl==115993||Wl==117017||Wl==117529||Wl==118041||Wl==118553||Wl==119065||Wl==119577||Wl==120089||Wl==122649||Wl==123161||Wl==123673||Wl==124185||Wl==125721||Wl==126745||Wl==127257||Wl==127769||Wl==129817||Wl==130329||Wl==130841||Wl==131353||Wl==131865||Wl==132377||Wl==132889||Wl==133401||Wl==134425||Wl==134937||Wl==136473||Wl==136985||Wl==137497||Wl==138009||Wl==139545||Wl==140057||Wl==141593||Wl==144153||Wl==145177||Wl==147225){Wl=uc(20,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{vi(),oc(20,t,-1),Wl=-14}catch(a){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Hi(),oc(20,t,-5),Wl=-14}catch(f){try{Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),Ml(),oc(20,t,-10),Wl=-14}catch(l){Wl=-11,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(20,t,-11)}}}}}switch(Wl){case-1:case 8:case 9:case 10:case 11:case 12935:case 12997:case 13055:case 13447:case 13509:case 13567:case 13959:case 14021:case 14079:case 19591:case 19653:case 19711:case 20103:case 20165:case 20223:case 21127:case 21189:case 21247:case 21639:case 21701:case 21759:case 22151:case 22213:case 22271:case 23175:case 23237:case 23295:case 24199:case 24261:case 24319:case 24711:case 24773:case 24831:case 25735:case 25797:case 25855:case 27783:case 27845:case 27903:case 28295:case 28357:case 28415:case 29831:case 29893:case 29951:case 30343:case 30405:case 30463:case 31367:case 31429:case 31487:case 31879:case 31941:case 31999:case 32391:case 32453:case 32511:case 32903:case 32965:case 33023:case 35463:case 35525:case 35583:case 35975:case 36037:case 36095:case 36487:case 36549:case 36607:case 39047:case 39109:case 39167:case 41095:case 41157:case 41215:case 41607:case 41669:case 41727:case 42119:case 42181:case 42239:case 43655:case 43717:case 43775:case 45191:case 45253:case 45311:case 45703:case 45765:case 45823:case 46215:case 46277:case 46335:case 46727:case 46789:case 46847:case 48775:case 48837:case 48895:case 51335:case 51397:case 51455:case 54407:case 54469:case 54527:case 56455:case 56517:case 56575:case 58503:case 58565:case 58623:case 61063:case 61125:case 61183:case 63111:case 63173:case 63231:case 63623:case 63685:case 63743:case 65159:case 65221:case 65279:case 66183:case 66245:case 66303:case 67719:case 67781:case 67839:case 71303:case 71365:case 71423:case 75911:case 75973:case 76031:case 76935:case 76997:case 77055:case 77959:case 78021:case 78079:case 78471:case 78533:case 78591:case 83079:case 83141:case 83199:case 84103:case 84165:case 84223:case 84615:case 84677:case 84735:case 85127:case 85189:case 85247:case 89735:case 89797:case 89855:case 90759:case 90821:case 90879:case 92807:case 92869:case 92927:case 93831:case 93893:case 93951:case 94343:case 94405:case 94463:case 96903:case 96965:case 97023:case 103559:case 103621:case 103679:case 104583:case 104645:case 104703:case 105095:case 105157:case 105215:case 107143:case 107205:case 107263:case 114823:case 114885:case 114943:case 116871:case 116933:case 116991:case 121479:case 121541:case 121599:case 123527:case 123589:case 123647:case 124039:case 124101:case 124159:case 129159:case 129221:case 129279:case 129671:case 129733:case 129791:case 130183:case 130245:case 130303:case 133255:case 133317:case 133375:case 139399:case 139461:case 139519:case 141447:case 141509:case 141567:case 142983:case 143045:case 143103:case 145543:case 145605:case 145663:case 146055:case 146117:case 146175:case 146567:case 146629:case 146687:case 147079:case 147141:case 147199:vi();break;case 31:xi();break;case 35:ki();break;case 32:Ai();break;case-5:case 17926:case 17991:case 17993:case 17994:case 17995:case 17996:case 17998:case 18e3:case 18001:case 18002:case 18004:case 18005:case 18006:case 18007:case 18009:case 18010:case 18011:case 18012:case 18014:case 18015:case 18018:case 18019:case 18022:case 18023:case 18024:case 18025:case 18026:case 18027:case 18029:case 18030:case 18031:case 18032:case 18033:case 18034:case 18039:case 18040:case 18043:case 18044:case 18046:case 18047:case 18049:case 18050:case 18052:case 18053:case 18054:case 18056:case 18057:case 18058:case 18059:case 18062:case 18063:case 18068:case 18070:case 18072:case 18073:case 18075:case 18076:case 18077:case 18081:case 18082:case 18083:case 18084:case 18085:case 18086:case 18088:case 18090:case 18093:case 18094:case 18095:case 18097:case 18099:case 18101:case 18103:case 18104:case 18105:case 18107:case 18109:case 18115:case 18118:case 18122:case 18123:case 18124:case 18125:case 18126:case 18127:case 18130:case 18136:case 18137:case 18142:case 18143:case 18144:case 18145:case 18146:case 18148:case 18149:case 18152:case 18153:case 18154:case 18159:case 18160:case 18161:case 18162:case 18165:case 18173:case 18174:case 18176:case 18177:case 18178:case 18180:case 18182:case 18183:case 18186:case 18187:case 18188:case 18189:case 18192:case 18193:case 18196:Hi();break;case 144078:Mi();break;case 144134:Di();break;case 33:case 79:case 121:case 125:case 147:case 154:case 167:case 169:case 188:case 194:case 230:case 231:case 247:case 248:case 259:case 14854:case 14919:case 14921:case 14922:case 14923:case 14924:case 14926:case 14928:case 14929:case 14930:case 14931:case 14932:case 14933:case 14934:case 14935:case 14937:case 14938:case 14939:case 14940:case 14942:case 14943:case 14945:case 14946:case 14947:case 14950:case 14951:case 14952:case 14953:case 14954:case 14955:case 14957:case 14958:case 14959:case 14960:case 14961:case 14962:case 14967:case 14968:case 14970:case 14971:case 14972:case 14974:case 14975:case 14977:case 14978:case 14980:case 14981:case 14982:case 14983:case 14984:case 14985:case 14986:case 14987:case 14990:case 14991:case 14996:case 14998:case 15e3:case 15001:case 15003:case 15004:case 15005:case 15009:case 15010:case 15011:case 15012:case 15013:case 15014:case 15016:case 15018:case 15021:case 15022:case 15023:case 15025:case 15027:case 15029:case 15031:case 15032:case 15033:case 15035:case 15037:case 15043:case 15045:case 15046:case 15050:case 15051:case 15052:case 15053:case 15054:case 15055:case 15058:case 15064:case 15065:case 15068:case 15070:case 15071:case 15072:case 15073:case 15074:case 15076:case 15077:case 15080:case 15081:case 15082:case 15087:case 15088:case 15089:case 15090:case 15093:case 15097:case 15101:case 15102:case 15103:case 15104:case 15105:case 15106:case 15108:case 15110:case 15111:case 15114:case 15115:case 15116:case 15117:case 15120:case 15121:case 15124:bs();break;case-10:case 27929:Ml();break;case-11:case 10009:xl();break;case 69:Al();break;case 283:El();break;case-14:break;default:Ri()}}function wl(){ic.startNonterminal(\"JSONSimpleObjectUnion\",Vl),Pl(283),Il(274),$l!=286&&(jl(),G()),Pl(286),ic.endNonterminal(\"JSONSimpleObjectUnion\",Vl)}function El(){Hl(283),Il(274),$l!=286&&Y(),Hl(286)}function Sl(){ic.startNonterminal(\"ObjectConstructor\",Vl),Pl(281),Il(277),$l!=287&&(jl(),Tl()),Pl(287),ic.endNonterminal(\"ObjectConstructor\",Vl)}function xl(){Hl(281),Il(277),$l!=287&&Nl(),Hl(287)}function Tl(){ic.startNonterminal(\"PairConstructorList\",Vl),Cl();for(;;){if($l!=42)break;Pl(42),Il(268),jl(),Cl()}ic.endNonterminal(\"PairConstructorList\",Vl)}function Nl(){kl();for(;;){if($l!=42)break;Hl(42),Il(268),kl()}}function Cl(){ic.startNonterminal(\"PairConstructor\",Vl);switch($l){case 78:ql(279);break;case 139:ql(187);break;case 161:ql(282);break;case 177:ql(178);break;case 187:ql(252);break;case 220:ql(248);break;case 223:ql(180);break;case 266:ql(191);break;case 83:case 122:ql(257);break;case 97:case 249:ql(149);break;case 111:case 222:ql(262);break;case 104:case 130:case 240:ql(165);break;case 135:case 197:case 255:ql(209);break;case 120:case 206:case 256:case 262:ql(167);break;case 121:case 125:case 167:case 188:case 194:case 230:case 231:ql(96);break;case 71:case 73:case 74:case 75:case 76:case 80:case 81:case 82:case 84:case 85:case 86:case 87:case 89:case 90:case 91:case 92:case 94:case 95:case 98:case 99:case 102:case 103:case 105:case 106:case 107:case 109:case 110:case 112:case 113:case 114:case 119:case 123:case 124:case 126:case 127:case 129:case 132:case 133:case 134:case 136:case 137:case 138:case 142:case 143:case 147:case 148:case 150:case 152:case 153:case 154:case 155:case 156:case 157:case 162:case 163:case 164:case 165:case 166:case 168:case 170:case 173:case 174:case 175:case 179:case 181:case 183:case 184:case 185:case 189:case 195:case 198:case 202:case 203:case 204:case 205:case 207:case 210:case 216:case 217:case 224:case 225:case 226:case 228:case 229:case 232:case 233:case 234:case 239:case 241:case 242:case 245:case 248:case 253:case 254:case 257:case 258:case 259:case 260:case 263:case 267:case 268:case 269:case 272:case 273:case 276:ql(144);break;default:Wl=$l}if(Wl==25735||Wl==25797||Wl==25855){Wl=uc(21,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Xf(),Wl=-1}catch(a){Wl=-2}Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(21,Vl,Wl)}}switch(Wl){case-2:case 19:case 25671:case 25673:case 25674:case 25675:case 25676:case 25678:case 25680:case 25681:case 25682:case 25683:case 25684:case 25685:case 25686:case 25687:case 25689:case 25690:case 25691:case 25692:case 25694:case 25695:case 25697:case 25698:case 25699:case 25702:case 25703:case 25704:case 25705:case 25706:case 25707:case 25709:case 25710:case 25711:case 25712:case 25713:case 25714:case 25719:case 25720:case 25721:case 25722:case 25723:case 25724:case 25725:case 25726:case 25727:case 25729:case 25730:case 25732:case 25733:case 25734:case 25736:case 25737:case 25738:case 25739:case 25742:case 25743:case 25747:case 25748:case 25750:case 25752:case 25753:case 25754:case 25755:case 25756:case 25757:case 25761:case 25762:case 25763:case 25764:case 25765:case 25766:case 25767:case 25768:case 25770:case 25773:case 25774:case 25775:case 25777:case 25779:case 25781:case 25783:case 25784:case 25785:case 25787:case 25788:case 25789:case 25794:case 25795:case 25798:case 25802:case 25803:case 25804:case 25805:case 25806:case 25807:case 25810:case 25816:case 25817:case 25820:case 25822:case 25823:case 25824:case 25825:case 25826:case 25828:case 25829:case 25830:case 25831:case 25832:case 25833:case 25834:case 25839:case 25840:case 25841:case 25842:case 25845:case 25848:case 25849:case 25853:case 25854:case 25856:case 25857:case 25858:case 25859:case 25860:case 25862:case 25863:case 25866:case 25867:case 25868:case 25869:case 25872:case 25873:case 25876:Ga();break;default:Wf()}Il(26),Pl(50),Il(267),jl(),Wf(),ic.endNonterminal(\"PairConstructor\",Vl)}function kl(){switch($l){case 78:ql(279);break;case 139:ql(187);break;case 161:ql(282);break;case 177:ql(178);break;case 187:ql(252);break;case 220:ql(248);break;case 223:ql(180);break;case 266:ql(191);break;case 83:case 122:ql(257);break;case 97:case 249:ql(149);break;case 111:case 222:ql(262);break;case 104:case 130:case 240:ql(165);break;case 135:case 197:case 255:ql(209);break;case 120:case 206:case 256:case 262:ql(167);break;case 121:case 125:case 167:case 188:case 194:case 230:case 231:ql(96);break;case 71:case 73:case 74:case 75:case 76:case 80:case 81:case 82:case 84:case 85:case 86:case 87:case 89:case 90:case 91:case 92:case 94:case 95:case 98:case 99:case 102:case 103:case 105:case 106:case 107:case 109:case 110:case 112:case 113:case 114:case 119:case 123:case 124:case 126:case 127:case 129:case 132:case 133:case 134:case 136:case 137:case 138:case 142:case 143:case 147:case 148:case 150:case 152:case 153:case 154:case 155:case 156:case 157:case 162:case 163:case 164:case 165:case 166:case 168:case 170:case 173:case 174:case 175:case 179:case 181:case 183:case 184:case 185:case 189:case 195:case 198:case 202:case 203:case 204:case 205:case 207:case 210:case 216:case 217:case 224:case 225:case 226:case 228:case 229:case 232:case 233:case 234:case 239:case 241:case 242:case 245:case 248:case 253:case 254:case 257:case 258:case 259:case 260:case 263:case 267:case 268:case 269:case 272:case 273:case 276:ql(144);break;default:Wl=$l}if(Wl==25735||Wl==25797||Wl==25855){Wl=uc(21,Vl);if(Wl==0){var e=Xl,t=Vl,n=$l,r=Jl,i=Kl,s=Ql,o=Gl,u=Yl;try{Xf(),oc(21,t,-1),Wl=-3}catch(a){Wl=-2,Xl=e,Vl=t,$l=n,$l==0?cc=t:(Jl=r,Kl=i,Ql=s,Ql==0?cc=i:(Gl=o,Yl=u,cc=u)),oc(21,t,-2)}}}switch(Wl){case-2:case 19:case 25671:case 25673:case 25674:case 25675:case 25676:case 25678:case 25680:case 25681:case 25682:case 25683:case 25684:case 25685:case 25686:case 25687:case 25689:case 25690:case 25691:case 25692:case 25694:case 25695:case 25697:case 25698:case 25699:case 25702:case 25703:case 25704:case 25705:case 25706:case 25707:case 25709:case 25710:case 25711:case 25712:case 25713:case 25714:case 25719:case 25720:case 25721:case 25722:case 25723:case 25724:case 25725:case 25726:case 25727:case 25729:case 25730:case 25732:case 25733:case 25734:case 25736:case 25737:case 25738:case 25739:case 25742:case 25743:case 25747:case 25748:case 25750:case 25752:case 25753:case 25754:case 25755:case 25756:case 25757:case 25761:case 25762:case 25763:case 25764:case 25765:case 25766:case 25767:case 25768:case 25770:case 25773:case 25774:case 25775:case 25777:case 25779:case 25781:case 25783:case 25784:case 25785:case 25787:case 25788:case 25789:case 25794:case 25795:case 25798:case 25802:case 25803:case 25804:case 25805:case 25806:case 25807:case 25810:case 25816:case 25817:case 25820:case 25822:case 25823:case 25824:case 25825:case 25826:case 25828:case 25829:case 25830:case 25831:case 25832:case 25833:case 25834:case 25839:case 25840:case 25841:case 25842:case 25845:case 25848:case 25849:case 25853:case 25854:case 25856:case 25857:case 25858:case 25859:case 25860:case 25862:case 25863:case 25866:case 25867:case 25868:case 25869:case 25872:case 25873:case 25876:Ya();break;case-3:break;default:Xf()}Il(26),Hl(50),Il(267),Xf()}function Ll(){ic.startNonterminal(\"ArrayConstructor\",Vl),Pl(69),Il(273),$l!=70&&(jl(),G()),Pl(70),ic.endNonterminal(\"ArrayConstructor\",Vl)}function Al(){Hl(69),Il(273),$l!=70&&Y(),Hl(70)}function Ol(){ic.startNonterminal(\"BlockExpr\",Vl),Pl(281),Il(281),jl(),of(),Pl(287),ic.endNonterminal(\"BlockExpr\",Vl)}function Ml(){Hl(281),Il(281),uf(),Hl(287)}function _l(){ic.startNonterminal(\"FunctionDecl\",Vl),Pl(147),Il(246),jl(),$a(),Il(22),Pl(35),Il(98),$l==31&&(jl(),U()),Pl(38),Il(158),$l==80&&(jl(),Dl()),Il(122);switch($l){case 281:Pl(281),Il(281),jl(),of(),Pl(287);break;default:Pl(134)}ic.endNonterminal(\"FunctionDecl\",Vl)}function Dl(){ic.startNonterminal(\"ReturnType\",Vl),Pl(80),Il(254),jl(),Ls(),ic.endNonterminal(\"ReturnType\",Vl)}function Pl(e){$l==e?(jl(),ic.terminal(i.TOKEN[$l],Jl,Kl>fc?fc:Kl),Xl=Jl,Vl=Kl,$l=Ql,$l!=0&&(Jl=Gl,Kl=Yl,Ql=0)):zl(Jl,Kl,0,$l,e)}function Hl(e){$l==e?(Xl=Jl,Vl=Kl,$l=Ql,$l!=0&&(Jl=Gl,Kl=Yl,Ql=0)):zl(Jl,Kl,0,$l,e)}function Bl(e){var t=Xl,n=Vl,r=$l,i=Jl,s=Kl;$l=e,Jl=lc,Kl=cc,Ql=0,Va(),Xl=t,Vl=n,$l=r,$l!=0&&(Jl=i,Kl=s)}function jl(){Vl!=Jl&&(Xl=Vl,Vl=Jl,ic.whitespace(Xl,Vl))}function Fl(e){var t;for(;;){t=hc(e);if(t!=22){if(t!=37)break;Bl(t)}}return t}function Il(e){$l==0&&($l=Fl(e),Jl=lc,Kl=cc)}function ql(e){Ql==0&&(Ql=Fl(e),Gl=lc,Yl=cc),Wl=Ql<<9|$l}function Rl(e){$l==0&&($l=hc(e),Jl=lc,Kl=cc)}function Ul(e){Ql==0&&(Ql=hc(e),Gl=lc,Yl=cc),Wl=Ql<<9|$l}function zl(e,t,r,i,s){throw t>ec&&(Zl=e,ec=t,tc=r,nc=i,rc=s),new n.ParseException(Zl,ec,tc,nc,rc)}function oc(e,t,n){sc[(t<<5)+e]=n}function uc(e,t){var n=sc[(t<<5)+e];return typeof n!=\"undefined\"?n:0}function hc(e){var t=!1;lc=cc;var n=cc,r=i.INITIAL[e],s=0;for(var o=r&8191;o!=0;){var u,a=n<fc?ac.charCodeAt(n):0;++n;if(a<128)u=i.MAP0[a];else if(a<55296){var f=a>>4;u=i.MAP1[(a&15)+i.MAP1[(f&31)+i.MAP1[f>>5]]]}else{if(a<56320){var f=n<fc?ac.charCodeAt(n):0;f>=56320&&f<57344&&(++n,a=((a&1023)<<10)+(f&1023)+65536,t=!0)}var l=0,c=5;for(var h=3;;h=c+l>>1){if(i.MAP2[h]>a)c=h-1;else{if(!(i.MAP2[6+h]<a)){u=i.MAP2[12+h];break}l=h+1}if(l>c){u=0;break}}}s=o;var p=(u<<13)+o-1;o=i.TRANSITION[(p&15)+i.TRANSITION[p>>4]],o>8191&&(r=o,o&=8191,cc=n)}r>>=13;if(r==0){cc=n-1;var f=cc<fc?ac.charCodeAt(cc):0;return f>=56320&&f<57344&&--cc,zl(lc,cc,s,-1,-1)}if(t)for(var d=r>>9;d>0;--d){--cc;var f=cc<fc?ac.charCodeAt(cc):0;f>=56320&&f<57344&&--cc}else cc-=r>>9;return(r&511)-1}r(e,t);var n=this;this.ParseException=function(e,t,n,r,i){var s=e,o=t,u=n,a=r,f=i;this.getBegin=function(){return s},this.getEnd=function(){return o},this.getState=function(){return u},this.getExpected=function(){return f},this.getOffending=function(){return a},this.getMessage=function(){return a<0?\"lexical analysis failed\":\"syntax error\"}},this.getInput=function(){return ac},this.getOffendingToken=function(e){var t=e.getOffending();return t>=0?i.TOKEN[t]:null},this.getExpectedTokenSet=function(e){var t;return e.getExpected()<0?t=i.getTokenSet(-e.getState()):t=[i.TOKEN[e.getExpected()]],t},this.getErrorMessage=function(e){var t=this.getExpectedTokenSet(e),n=this.getOffendingToken(e),r=ac.substring(0,e.getBegin()),i=r.split(\"\\n\"),s=i.length,o=i[s-1].length+1,u=e.getEnd()-e.getBegin();return e.getMessage()+(n==null?\"\":\", found \"+n)+\"\\nwhile expecting \"+(t.length==1?t[0]:\"[\"+t.join(\", \")+\"]\")+\"\\n\"+(u==0||n!=null?\"\":\"after successfully scanning \"+u+\" characters beginning \")+\"at line \"+s+\", column \"+o+\":\\n...\"+ac.substring(e.getBegin(),Math.min(ac.length,e.getBegin()+64))+\"...\"},this.parse_XQuery=function(){ic.startNonterminal(\"XQuery\",Vl),Il(278),jl(),o(),Pl(25),ic.endNonterminal(\"XQuery\",Vl)};var Wl,Xl,Vl,$l,Jl,Kl,Ql,Gl,Yl,Zl,ec,tc,nc,rc,ic,sc,ac,fc,lc,cc};r.getTokenSet=function(e){var t=[],n=e<0?-e:INITIAL[e]&8191;for(var i=0;i<289;i+=32){var s=i,o=(i>>5)*4317+n-1,u=o>>2,a=u>>2,f=r.EXPECTED[(o&3)+r.EXPECTED[(u&3)+r.EXPECTED[(a&15)+r.EXPECTED[a>>4]]]];for(;f!=0;f>>>=1,++s)(f&1)!=0&&t.push(r.TOKEN[s])}return t},r.MAP0=[71,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,17,17,17,17,17,17,17,17,17,18,19,20,21,22,23,24,25,26,27,28,29,26,30,30,30,30,30,31,32,33,30,30,34,30,30,35,30,30,30,36,30,30,37,38,39,40,30,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,40,40],r.MAP1=[108,124,214,214,214,214,214,214,214,214,214,214,214,214,214,214,156,181,181,181,181,181,214,215,213,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,247,261,277,293,309,355,371,387,423,423,423,415,339,331,339,331,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,440,440,440,440,440,440,440,324,339,339,339,339,339,339,339,339,401,423,423,424,422,423,423,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,338,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,423,71,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,17,17,17,17,17,17,17,17,17,18,19,20,21,22,23,24,25,26,27,28,29,26,30,30,30,30,30,31,32,33,30,30,30,30,30,30,30,30,30,30,30,30,30,30,40,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,34,30,30,35,30,30,30,36,30,30,37,38,39,40,30,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,40,40,40,40,40,40,40,40,40,40,40,40,30,30,40,40,40,40,40,40,40,70,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70],r.MAP2=[57344,63744,64976,65008,65536,983040,63743,64975,65007,65533,983039,1114111,40,30,40,30,30,40],r.INITIAL=[1,24578,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290],r.TRANSITION=[37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,36864,36899,36883,36883,36883,36903,36883,36883,36883,36883,36883,36926,36919,36883,36883,36879,36883,36883,36942,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,39727,39739,37318,37318,72403,39755,36991,37318,37318,41289,37087,37318,37318,37010,39794,37318,37318,37318,37318,65657,40192,38525,37318,37318,39813,40192,39835,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39854,39870,37318,37318,37318,46325,37318,37318,36994,37318,61657,45847,57964,37318,37318,61650,62405,62409,50496,39889,37318,37318,41289,37087,37318,44009,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,45833,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39908,62747,37318,37318,37318,42026,65655,37318,73568,65651,65646,39935,62736,68791,45102,45088,45095,68779,39950,36991,37318,37318,41289,39994,37318,45426,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,39370,40016,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,40039,69458,41098,41041,37318,46044,44842,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,47580,37318,37318,37318,48276,40073,37318,37015,71422,71423,40094,57964,37318,37318,67783,40130,40134,40150,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,40186,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,71599,37318,37318,37318,37318,67919,40209,37318,37318,66772,40222,40225,40241,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,71606,73347,37318,37318,37318,37318,37318,40283,40324,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,40344,37116,37202,37162,40378,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,40416,40432,37318,37318,37318,48315,37318,37318,37526,37318,62612,40451,57964,37318,37318,62605,65082,65086,40487,40535,37318,37318,41289,37087,37318,37318,40554,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38131,40575,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,40598,40656,40697,40697,40697,40663,40736,40697,40698,40727,40642,40679,40626,40693,40745,40613,40752,40714,40768,36991,37318,37318,40817,40815,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,40804,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,43152,37318,37318,37318,48276,40833,37318,37318,73511,37318,67919,57964,40868,40872,43155,43156,43784,40888,36991,37318,37318,41289,40924,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,40942,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,43775,37318,37318,37318,48276,37318,37318,37318,37318,69945,73273,57964,40977,41007,44794,41023,73756,40991,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,41058,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,45645,38564,57964,41115,41135,37318,41119,41135,41149,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,37301,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,62620,37318,37318,37318,48276,62315,37318,37318,42112,62617,51150,68655,68669,68671,37318,37318,74e3,41165,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,41215,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,41238,41258,37318,41242,41258,41272,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,69205,37318,62433,37318,68839,45752,41288,37301,44633,37318,37318,37318,37318,73164,72644,41305,72644,72644,41324,38775,41542,41542,58552,65498,52179,65498,65498,52319,41461,41342,41461,41461,60376,37318,37318,37318,37318,37318,37318,57380,44576,38329,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,57802,45001,37318,37318,37318,37318,37318,62575,37318,37318,71516,41385,72644,72644,72644,72645,41405,67865,41542,58857,41542,41542,46917,69302,65498,55881,65498,65498,53308,58621,41461,41722,41461,41461,47863,54854,37318,37318,37318,37318,64802,37318,37318,72642,48855,72644,72644,72644,38767,41542,41439,41542,41542,41444,65497,64981,65498,65498,65498,59803,41461,41460,41461,41461,47863,54854,37318,37318,69109,41478,37318,60498,72644,72644,70521,58547,41542,41542,60742,46770,65498,65498,73471,59798,41461,41461,70944,47288,64766,37318,37318,37507,37318,71005,72644,60920,59569,41542,41542,72922,65498,65498,48896,41461,41461,46878,37318,60844,41498,41222,67506,72644,41518,41541,58729,41559,65498,46559,41593,41462,56939,50451,37318,66947,41614,41423,73664,58829,59801,41638,49498,41664,52412,41686,41702,41738,63218,38594,66255,64873,73961,46828,73161,59759,73663,59797,47605,39543,41802,41825,41848,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,45787,57964,41925,72170,37318,38278,38288,41945,36991,37318,37318,41289,37087,37318,37318,41981,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,69382,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,42002,37318,37318,37318,45026,37318,37318,37318,37318,37318,67919,57964,42022,71555,37318,43019,43028,71570,36991,37318,37318,41289,37087,37318,37318,37010,42042,37318,73045,37318,37318,65657,40192,38525,37318,37318,39335,40192,45833,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,42061,37318,37318,37318,48276,37318,37318,37318,37318,37318,50713,57964,37318,37318,37318,38993,38997,42078,42128,37318,37318,41289,37087,37318,37318,42147,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,42168,62003,69205,37318,37318,37318,68839,37318,37318,39275,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,41324,41542,41542,41542,58552,65498,65498,65498,65498,57854,41461,41461,41461,41461,64567,42190,37318,37318,37318,37318,37318,42212,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,67436,42249,37318,37318,37318,37318,37318,44403,37318,37318,37318,72643,72644,72644,72644,72644,72187,38772,41542,41542,41542,41542,41542,72266,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,51497,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,42270,41542,41542,41542,41542,49331,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,47501,37318,37318,37318,37318,37318,60498,72644,72644,72644,42291,41542,41542,41542,59595,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,63809,37318,37318,37318,49242,42389,37318,37318,42312,41767,44524,59934,42356,42367,45136,42383,44513,42405,42445,37318,37318,40926,42420,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,44142,43528,42807,74542,43714,44329,37031,44584,37054,42466,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,42495,44053,42520,44234,42536,42631,42566,42582,42617,43323,74548,42732,42652,43181,43457,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,74695,44148,43301,42504,44146,43812,43314,42636,43906,44107,42807,42594,42699,42706,42722,43750,42901,42677,43141,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,42748,42962,43618,43603,43820,43354,42764,44271,43892,42788,42804,42826,43918,42855,43210,42882,42898,42920,44134,44337,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,42949,44040,42992,42978,43271,43008,43044,42839,43084,44099,43110,43126,43172,43197,43740,43442,43226,43242,38263,37318,38304,37318,38354,38370,45231,38397,38413,43259,44205,43287,43339,74705,42601,43379,43395,43411,42683,43427,43493,43509,57783,51848,38545,38580,73050,38677,38610,43544,43363,43588,43648,42772,43664,43059,43680,43709,43730,43766,38739,38791,38841,38876,38942,38892,43800,43836,43632,43878,43941,43957,42665,43973,43989,39013,39048,39078,44025,44069,44085,43094,44123,43693,44164,39249,55484,44195,43559,43068,43925,39327,39819,44240,42810,42904,39356,44221,43849,44282,42866,45051,43520,43862,42933,39494,44256,44298,44314,39590,43572,44353,42550,44369,44420,44431,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37091,37318,37318,37318,48276,39140,44447,37318,67184,67184,50155,62190,71955,71957,37318,37089,71946,44465,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,44502,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38381,36956,50180,37398,37414,37436,50351,44540,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,44565,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,44600,38038,38061,37792,39434,44649,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,44665,37459,38432,38451,37229,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,37318,73156,44700,44701,37318,74225,74229,44717,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,46650,37318,37318,65657,40192,38525,37318,37318,39335,40192,44756,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,44775,67647,37318,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,44810,44811,37318,37318,74488,44827,44876,37318,37318,41289,37087,37318,37318,37010,37318,37318,44898,37318,37318,65657,40192,38525,37318,37318,39335,40192,44921,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,44940,44949,37318,37318,37318,45580,37318,37318,37318,37318,37318,67919,57964,44969,44970,37318,37318,68795,44986,45022,37318,37318,41289,37087,37318,37318,37010,37318,37318,72142,37318,37318,65657,40192,38525,37318,37318,39335,40192,38201,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,45042,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45074,37318,37318,37318,37318,48276,59955,37318,37318,37318,59954,73317,57964,37318,45118,37318,37318,45127,45152,36991,37318,37318,41289,37087,37318,37318,37010,45201,37318,37318,37318,37318,65657,40192,38525,37318,37318,45220,40192,45247,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,37318,37318,37318,46105,37318,45266,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,64567,41960,37318,37318,37318,37318,37318,44399,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,63696,45404,37318,37318,37318,37318,37318,44403,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,51497,37318,37318,37318,37318,47785,37318,37318,72642,72644,72644,72644,72644,61913,41542,41542,41542,41542,48876,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,47501,37318,37318,37318,37318,37318,60498,72644,72644,72644,42291,41542,41542,41542,59595,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,45425,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,64567,41960,37318,37318,37318,37318,37318,44399,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,63696,45404,37318,37318,37318,37318,37318,44403,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,51497,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,61913,41542,41542,41542,41542,48876,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,47501,37318,37318,37318,37318,37318,60498,72644,72644,72644,42291,41542,41542,41542,59595,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,64567,41960,37318,37318,37318,37318,37318,44399,68819,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,63696,45404,37318,37318,37318,37318,37318,44403,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,51497,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,61913,41542,41542,41542,41542,48876,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,47501,37318,37318,37318,37318,37318,60498,72644,72644,72644,42291,41542,41542,41542,59595,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,64567,41960,37318,37318,37318,37318,37318,44399,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,63696,45404,37318,37318,37318,37318,37318,45442,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,51497,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,61913,41542,41542,41542,41542,48876,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,47501,37318,37318,37318,37318,37318,60498,72644,72644,72644,42291,41542,41542,41542,59595,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,50781,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,53518,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,64567,41960,37318,37318,37318,37318,37318,44399,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,63696,45404,37318,37318,37318,37318,37318,44403,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,51497,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,61913,41542,41542,41542,41542,48876,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,47501,37318,37318,37318,37318,37318,60498,72644,72644,72644,42291,41542,41542,41542,59595,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,65804,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,48653,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,60153,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,45477,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45496,45525,45509,45539,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,64785,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45555,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,38529,37318,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,45576,74434,37318,74579,74583,74448,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,68588,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,45596,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,37318,37318,37318,37318,37318,45625,45661,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,45833,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,45715,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,45680,45684,37318,37318,45700,45732,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,45768,39048,39078,39105,39169,39156,39172,39188,39089,39218,45803,55484,39265,39291,55476,39311,45819,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,37318,37318,37318,37318,37318,45266,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,45863,37318,37318,44953,53155,45882,37318,52352,45886,39423,67164,45902,45916,45932,45961,45945,45975,45991,37318,45455,41670,46020,50786,46004,46033,45185,46061,46096,44613,41965,46121,46173,46189,46205,46221,46237,46288,65632,46304,37318,37318,68839,40298,50758,37318,41033,53889,69149,37318,46321,73164,72644,72644,72644,46341,45386,41542,41542,59697,52709,65498,65498,65498,64013,57854,41461,41461,41461,53427,64567,41960,63943,65692,37318,55390,46361,44399,46380,37318,58658,46936,46397,46417,72644,72644,59240,58293,46453,46492,41542,41542,52156,55833,61582,46520,65498,65498,64241,46547,52866,68024,41461,41461,68015,46594,47566,46621,37318,37318,46672,37318,46264,44403,37318,40057,46707,46725,63333,41308,72644,46741,63340,42275,46760,41542,46793,66052,61720,45363,46811,65498,49417,68460,65498,46845,46864,41461,51002,52264,41461,46904,52111,46933,46952,37318,46684,52530,67711,37318,59166,64847,72644,54549,51902,61913,46986,41542,41542,73854,71759,72272,41570,65498,54158,68314,46848,58449,41461,41461,47016,47035,51372,47057,47076,37318,47124,37318,47140,47156,71524,72644,42291,47208,67563,41542,59595,47244,47267,65498,59798,47304,47328,41461,53433,37318,47344,37318,61381,37318,72644,47362,47380,41542,47407,47424,65498,47447,64139,63673,47467,64041,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,41347,39062,47486,47520,47551,47602,47622,61702,70577,48688,47605,47638,50030,47449,46829,57656,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,47659,37318,37318,44953,37318,37318,37318,37318,37318,67919,47681,47697,47709,47725,47754,47738,47770,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,67827,50028,47806,47251,47282,47858,50482,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,64567,41960,37318,37318,37318,37318,73633,44399,56082,37318,56083,37318,73164,72644,72644,72644,72644,47879,41363,41542,41542,41542,41542,47922,65493,65498,65498,65498,65498,47955,46825,41461,41461,41461,67629,66428,63696,45404,37318,37318,37318,37318,37318,44403,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,51497,37318,58926,37318,37318,64306,57609,37318,65431,72644,72644,72644,56125,63073,47979,41542,41542,41542,70807,58352,65498,65498,65498,65498,47999,41461,41461,41461,41461,48015,47501,37318,37318,37318,37318,37318,60498,72644,72644,72644,42291,41542,41542,41542,59595,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,65375,48037,48062,48088,48113,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,49548,37318,37318,44953,37318,41780,37318,41482,37318,54642,48139,48155,48170,48186,48215,48199,48231,65689,37318,37318,48273,48292,37318,48311,37318,51503,37318,37318,37318,48331,46709,48623,50028,58342,50938,47282,52495,55465,37318,48349,37318,68839,48369,47665,37318,51866,48388,48408,48427,73007,67026,70205,72644,72644,72644,48444,48468,41542,41542,52709,48501,48532,65498,65498,51441,56912,41461,41461,41461,64567,71585,37318,37318,65402,37318,56580,44399,46364,37873,48553,37318,73164,48570,72644,48622,56986,72644,41363,48639,50032,41542,55261,41542,65493,48669,57135,65498,73731,65498,46825,48704,41598,41461,48739,41461,63696,45404,37318,37318,39025,37318,62106,44403,37318,37318,37318,72643,72644,72644,60958,57260,72645,38772,41542,41542,54046,68350,48760,45363,65498,65498,65498,48780,52828,59800,41461,41461,41461,48796,66903,47863,51534,37318,37318,37318,64199,37318,64441,37318,72642,72644,72644,64854,72644,61913,41542,41542,41542,48812,48876,65497,65498,65498,71839,65498,59803,41461,41461,47470,41461,47863,47501,37318,65142,37318,37318,38723,48831,72644,48851,72644,42291,41542,48871,41542,59595,65498,70398,65498,59798,41461,61249,41461,42174,72114,37318,37318,53513,66795,54283,70249,60920,63484,67969,41542,58586,58373,65498,49897,57220,41461,56936,37318,37318,67331,73163,72644,72800,50031,41542,52475,65498,65498,48892,41461,58211,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,47019,45307,48912,48959,48989,49019,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,70340,49053,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,49089,37318,44953,37318,48599,37585,39665,37318,67919,49107,49123,49137,49153,49182,49166,49196,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,48353,37318,48351,60095,51266,41622,41369,62908,47535,62003,72217,37318,62994,49212,68839,37318,49238,37318,49258,37318,51050,39778,49276,57933,60709,68980,49292,71214,49326,70571,70834,49347,57459,49369,49386,49404,49439,49457,61552,61800,49485,58425,64567,41960,37318,37318,68084,37318,56022,44399,37318,37318,37318,70710,73164,72644,72644,72644,72644,49520,41363,41542,41542,41542,52429,41542,65493,65498,65498,65498,59621,65498,46825,41461,41461,41461,65942,41461,71902,49537,37318,37318,48372,63307,37318,44403,37318,37318,38213,70690,72446,72644,72644,72644,64634,56631,49564,49582,41542,41542,56653,45363,49600,48682,65498,65498,64927,49622,49640,70938,41461,41461,62085,49662,51497,37318,37318,37318,37318,37318,49684,37318,68617,72644,72644,69970,72644,65479,41542,41542,41326,41542,48876,49710,65498,65498,47842,65498,59286,41461,41461,58267,41461,47863,47501,37918,62752,37318,37318,49733,60498,55203,65029,49752,42291,67741,65203,74026,59595,66024,65498,49773,59798,49646,41461,49825,47288,37318,51997,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,49852,37318,73163,72644,60539,50031,41542,72428,65498,65498,49872,41461,70461,56939,61615,37318,72643,60923,41542,57845,65498,49892,41461,49913,72946,72644,50030,54383,59799,54339,40392,49935,49960,49980,50002,57326,50022,50048,50069,50089,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,50115,37318,44953,44449,50137,37318,37060,50171,54108,64429,50196,50210,50226,50255,50239,50269,65689,44626,50285,50301,50316,50332,50367,39233,53108,50384,61398,55344,50419,50467,50512,50528,50544,50594,50610,50651,50667,73014,50694,49260,50729,62653,50756,50774,72085,37318,37318,49073,37318,73164,50802,70730,47643,67373,50837,50866,47931,48477,50890,64147,50934,50954,50974,61240,51024,54206,54678,60300,51066,42093,59527,51082,54503,44179,51132,51166,69514,50121,44486,44480,51182,51198,51247,51290,51306,51322,51357,51407,51457,51482,51519,51581,60231,51607,51635,51659,51675,51432,54188,73942,51691,51713,51750,51800,41753,51824,51840,37318,45167,74354,51864,51882,51918,51962,51982,72643,52018,52052,68101,52072,70228,38772,52096,72897,41542,52136,57279,52172,66566,52195,65498,64541,65498,52222,56902,52245,41461,67612,41461,52280,51497,37891,64079,46636,37318,52344,55168,73701,70986,47906,72644,52368,52401,61913,52428,52445,53191,52464,52511,46777,66351,65498,52546,52580,55946,51008,41461,52615,49469,47863,47501,37318,39657,52645,37318,58484,60498,52664,60195,52685,42291,67536,73887,52704,59595,49809,69760,70602,59798,46578,54457,71795,47288,37318,68581,52725,60872,52759,71031,52775,65989,69245,52802,72675,52206,52852,55908,48097,54237,46605,52882,52918,52936,39919,39478,52952,52973,52992,65449,53038,56792,66087,71786,53088,56765,56939,40362,53104,72643,69978,41542,52310,65498,53124,53817,55637,53146,55211,53171,53289,59799,53207,55668,73239,68122,73294,50578,53242,53264,53284,53305,53324,42326,53340,53356,53372,60496,73658,47451,66435,53400,53449,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,51938,37318,44953,62203,56053,37318,51929,37318,53498,53534,53550,53564,53580,53609,53593,53623,65689,37318,68909,41289,37087,37318,37318,37318,37318,61388,37318,61393,61388,52002,53639,47391,58863,63536,59869,62003,50482,37318,53663,37318,68839,53663,37318,37318,37318,69142,53682,45250,37318,55674,71208,72644,72644,72644,53704,53738,41542,41542,52709,48072,65498,65498,65498,57854,53755,41461,41461,41461,64567,41960,37318,37318,37318,37318,37318,44399,37318,37318,37318,53779,73164,72644,72644,72644,63735,72644,41363,41542,41542,41542,60760,41542,65493,65498,65498,65498,61277,65498,46825,41461,41461,41461,48744,41461,63696,45404,37318,37318,37318,37318,37318,44403,37318,45747,37318,72643,72644,72644,50815,72644,72645,38772,41542,41542,71247,41542,41542,45363,65498,65498,48537,65498,65498,59800,41461,41461,67762,41461,41461,47863,51497,37318,37318,37318,37318,37318,67308,37318,72642,72644,72644,56359,72644,61913,41542,41542,41542,70112,48876,65497,65498,65498,66735,65498,59803,41461,41461,41461,53797,47863,47501,37318,37318,37318,37318,37318,60498,72644,72644,72644,42291,41542,41542,41542,59595,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,54260,37318,37318,37318,73163,67467,72644,48046,41542,73662,48935,65498,59802,53815,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,41851,61054,66378,62339,68189,53833,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,39797,37318,37318,37318,67919,53869,53905,53909,53925,53954,53938,53968,65689,37318,37318,41289,37087,37318,45716,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,46136,46156,37318,37318,68839,37318,37318,37318,37318,40903,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,36975,37318,64085,73164,72644,72644,72644,72644,72644,53984,41542,41542,41542,41542,41542,62136,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,54006,37318,54026,36968,37318,37318,53666,72643,72644,65774,72644,72644,72645,38772,41542,41542,54043,41542,41542,45363,65498,65498,53015,65498,65498,59800,41461,41461,66593,41461,41461,71140,54854,37318,37318,54062,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,54082,64821,37318,60498,72644,72644,62830,58547,41542,41542,58315,46770,65498,65498,71297,59798,41461,41461,54740,47288,59033,54099,69440,44860,37318,54124,64478,44740,41542,54141,70297,54157,61206,54174,54204,58614,54222,56936,53884,37318,41072,40582,71978,54276,54299,54319,56380,73391,73919,41714,55599,54335,56939,50403,59838,42233,54355,53715,54379,54399,59801,54439,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,57408,54473,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,59399,37318,37318,60166,37087,37318,37318,37318,54501,37318,54501,42045,54519,39472,54546,54565,67872,65498,54590,62375,54624,37318,37318,47504,68839,67717,44759,37318,37318,54658,37318,37318,37318,73164,72644,72644,58045,72644,45386,41542,41542,67542,52709,65498,65498,65498,56180,57854,41461,41461,41461,54676,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,68532,57795,73164,72644,72644,72644,72644,72644,54694,41542,41542,41542,41542,41542,54716,65498,65498,65498,65498,65498,54737,41461,41461,41461,41461,41461,54756,71731,37318,37318,37318,37318,37318,37318,37318,37318,74625,57661,72644,72644,72644,72644,72645,38772,54791,41542,41542,41542,41542,45363,54808,65498,65498,65498,65498,59800,54829,41461,41461,41461,41461,47863,54854,37318,37318,66657,37318,37318,37318,37318,72642,72644,72644,72644,58513,38767,41542,41542,41542,63753,41444,65497,65498,65498,65498,70365,59803,41461,41461,41461,60263,47863,54854,37318,37318,49068,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,54946,37318,40844,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,54850,61615,65734,72643,61015,41542,72843,65498,54871,41461,54893,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,51946,37318,44953,37318,54915,54931,37318,54967,54974,54990,55006,55021,55037,55066,55050,55080,65689,37318,37318,51966,38825,37318,37318,37318,54010,55096,55115,48257,55149,55184,55227,55249,41525,55284,55303,63265,55333,37318,37318,37318,40256,37318,55133,55360,37318,37318,37318,55377,52524,73164,55412,59232,72644,55450,55508,48452,55571,48764,46504,61212,71358,65498,52836,55590,72384,66401,41461,55624,55653,37318,55162,48123,45480,68146,44384,37318,37318,55690,55710,55730,55750,50821,72644,73775,55770,55805,41363,53990,41542,54303,55821,55849,65493,53022,65498,61780,55897,55924,46825,56459,41461,71394,55962,55996,47041,37318,37318,37318,54660,56044,56069,49736,37318,37318,37318,56099,56122,72644,56141,70528,58519,56160,58143,41542,63117,55574,66717,50850,52564,65498,63146,65498,56203,56221,51808,41461,56467,41461,56251,56269,54854,55099,56307,46073,56323,59679,56339,62046,56355,52688,61008,58074,70003,51212,41542,66283,70084,56375,56396,56430,65125,61593,46531,69280,62369,41461,56449,56483,56517,56546,63230,66178,37927,69494,47228,56575,66873,56144,56596,56612,70031,45388,56647,56669,56693,56729,56747,56781,56815,56873,56892,51765,56928,56955,37318,37318,61883,53848,56976,57010,57028,57047,57072,57089,57107,57133,57151,57170,57197,57216,56936,60597,37318,40353,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,57236,61615,37318,57252,51333,57276,57295,62141,50073,54877,49498,57311,72644,50030,54383,59799,54339,39384,52786,55523,72337,68506,73161,59759,73663,59797,47605,60497,50030,47449,46829,57331,57347,55938,57396,53268,62159,62339,66862,41867,57424,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,42152,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,57475,57504,57488,57518,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,66211,72644,45386,41542,41542,57534,52709,65498,65498,49388,65498,57854,41461,41461,51784,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,41502,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,52736,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,47060,37318,37318,37318,37318,37318,37318,37318,37318,37318,57438,72644,72644,72644,72644,72645,61918,41542,41542,41542,41542,41542,45363,57553,65498,65498,65498,65498,59800,57571,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,39711,37318,44953,37318,42450,57589,57607,57625,51565,57641,57677,57681,57697,57726,57710,57740,65689,51556,37318,41289,37087,47346,60068,37318,37318,39892,37318,40511,57756,45560,57818,57834,63977,57879,60331,41648,58e3,57914,37318,37318,38814,37318,37318,57949,44882,37318,57925,37318,67807,49037,57985,58044,51257,58061,58115,58131,41542,58165,54574,59660,56705,57154,47834,58193,52256,58227,57863,58246,50918,53781,37318,37318,37318,37318,49029,67667,37318,37318,37318,37318,73164,60986,49757,72644,58283,72644,58309,58331,63863,47408,61105,41542,58368,58389,67585,57555,49801,65498,58422,58441,68033,65185,60256,69351,47041,37318,61839,58465,37318,37318,45281,53688,37318,37318,37318,72643,72644,72644,63835,58500,58535,38772,41542,41542,55268,69704,69729,45363,65498,65498,61489,63774,58568,59800,41461,41461,66754,51734,58602,47863,54854,58637,37318,37318,68901,37318,37318,37318,72642,66219,72644,72644,72644,38767,67986,41542,41542,41542,41444,65497,56713,65498,65498,65498,59803,71875,41461,41461,41461,47863,54899,37318,58657,37318,51097,69488,55754,58674,72644,72644,58694,58724,41542,41542,58745,58769,65498,65498,61143,58793,41461,41461,71804,37318,68935,37318,73352,37318,72644,49303,60920,41542,72302,41542,65498,52557,65498,63673,46570,41461,56936,37318,38852,37318,73163,72644,56106,50031,41542,58818,65498,73828,59802,41461,48715,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,53248,58845,64251,68569,67094,58879,59108,47606,53268,62159,58907,58895,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37319,37318,44953,37318,37318,58923,37318,37038,61423,60807,58942,58956,58972,59001,58985,59015,65689,38336,37318,41289,37087,37318,59031,37318,37318,40327,37318,38338,59049,40328,59079,54363,41369,59103,48516,62003,72217,37318,37318,59124,68839,37318,63001,62951,44924,37318,37318,37318,59142,59160,59182,72644,59203,59223,59256,41542,57091,48815,59272,59718,65498,52599,56799,57854,54450,41461,63259,59312,52629,59347,40308,54027,37318,37318,37318,37318,56028,37318,37318,37318,73164,56849,59370,68264,72644,72644,41363,63477,59429,70290,41542,41542,65493,64678,69828,70882,65498,65498,46825,59459,66600,59489,41461,41461,47041,37318,60820,72604,37318,37318,56414,63654,59509,37318,37318,72643,61043,72644,72644,59543,72645,59566,72479,41542,41542,59585,41542,65528,73531,59619,65498,70373,65498,59800,54834,59637,41461,64050,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,44851,37318,37318,37318,37318,59207,72644,60920,61740,41542,41542,73606,65498,65498,49876,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,61445,73662,65498,59655,59802,56876,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,59676,72644,59695,59713,71108,58802,59734,59756,59775,59794,59819,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,59854,73737,67066,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,67305,48392,37318,54855,59885,59896,59919,66152,67290,59971,59985,60001,60031,60044,60015,65689,47586,44905,38860,60060,60084,37318,60579,48333,40435,72237,60111,60138,60122,60182,60217,60279,60316,65566,60366,50482,58641,37318,37318,48606,72949,68216,73429,60392,69215,60419,37318,60465,60494,60514,60535,72871,72644,60555,49584,41542,47939,52709,70645,70888,65498,70640,57854,54601,60344,63674,41461,59473,64205,46157,37318,60571,37318,37318,37318,60595,37318,37318,45177,73164,60613,72644,53647,72644,72644,41363,60640,41542,61097,41542,41542,58708,70406,65498,55874,65498,65498,50904,58204,41461,60666,41461,41461,47041,37318,37318,37318,37318,40106,37318,37318,44677,60687,37318,60703,72644,72644,46744,72644,58087,60725,41542,41542,41542,60758,74033,52815,65498,65498,65498,52593,61759,41832,41461,41461,41461,53066,69906,47863,49504,60776,60792,64608,60842,51384,60860,60895,60918,60939,60974,61031,61070,38767,70056,61088,61121,61167,41444,65497,61193,61228,55536,61274,59803,61293,61309,61258,72531,61332,54854,48246,61348,61369,61414,58477,51897,68272,58678,65107,61439,53722,46795,49566,61461,54813,65498,61486,61505,72623,61531,61548,61568,67348,61609,37318,37318,61636,61678,47889,61697,61718,52147,61736,61756,56291,61775,61796,55608,61816,46251,61838,37318,61855,73163,61899,68974,61934,52295,73662,61950,58777,71058,61966,62e3,62019,63023,62043,40852,60923,72471,73664,62062,59801,62083,49498,62101,55233,62122,54383,62157,62175,62225,62247,62263,62279,62295,62331,57449,55864,54413,66647,60497,50030,47449,46829,60496,73658,47451,47606,62355,62391,62339,66862,41867,41898,57361,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,62425,44953,37318,41929,62645,37318,37318,67919,62449,62465,62479,62495,62524,62508,62538,62554,62570,62591,51116,40267,62636,62669,37763,62688,62721,40114,62768,62784,62800,62846,62862,62878,62894,62929,62967,62983,37318,74513,46381,42254,37318,40466,50397,50445,63017,37318,37318,63039,73164,72644,63059,63089,55789,45386,47983,63105,51466,69257,65498,47963,66977,63139,63162,41461,63187,63203,63246,60376,37318,65243,37318,54083,37318,65923,63281,37318,49694,37318,63306,63323,63356,63373,63389,72644,67473,63412,41542,63428,63500,41542,54700,59443,65498,63522,63557,65498,56187,53414,41461,63578,63594,41461,68051,48021,46148,37318,59832,55125,37318,37318,37318,37318,37318,63803,72643,72644,70758,59187,72644,72645,38772,41542,55434,57073,41542,41542,45363,65498,74070,65498,63613,65498,59800,41461,60671,41461,63633,41461,47863,54854,37318,37318,63653,44684,37318,37318,37318,72642,72644,72644,72644,57012,55426,41542,41542,41542,41542,66835,62140,65498,65498,65498,65498,63670,41461,41461,41461,41461,63690,54854,67948,37318,37318,37318,37318,63712,72644,63734,72644,46430,41542,63751,41542,56170,65498,63769,65498,41577,41461,51728,41461,47288,63790,37318,37318,37318,37318,62822,66520,60920,41416,71239,41542,47825,58753,65498,61151,71116,41461,72584,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,45334,61615,37318,63825,73373,63858,64501,63879,65885,41461,56530,63897,63917,63966,63993,64029,64066,39534,64101,64126,64163,64186,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,50006,53268,62159,64221,66862,41867,64277,64293,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,66665,44953,37318,37318,68891,37318,64328,64337,67698,39838,64353,64369,64398,64382,64414,65689,37318,69115,41289,37087,37318,37318,63950,37318,51547,37318,37318,37318,44404,64465,64494,64517,49717,67057,64557,72217,37318,64583,37318,68839,37318,40908,40502,64605,50368,64607,37318,37318,62231,64624,67101,73183,63396,64650,67404,68345,48485,71344,64666,64694,64712,71834,64730,57181,60350,61532,53072,55317,64759,37318,64782,64801,45664,45866,38224,37318,37318,37318,37318,73164,72644,72644,52669,72644,72644,41363,41542,41542,67409,41542,41542,65493,65498,65498,55555,65498,65498,46825,41461,41461,68042,41461,41461,49668,53220,61353,37318,37318,37318,64818,59354,57374,68538,37318,72643,72644,64837,72644,72644,72645,64870,41542,64889,41542,41542,41542,68453,65498,51231,64925,65498,65498,59800,41461,61515,64943,41461,41461,47863,54854,59903,37318,37318,37318,37909,37318,37318,72642,72644,72644,64960,72644,56626,41542,41542,73894,41542,42296,65497,65498,65498,64978,65498,59803,41461,41461,71869,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,52897,37318,59144,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,62943,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,56828,64997,65024,65045,64231,59603,54339,38753,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,46305,37318,37318,37318,42426,42429,65068,54066,65102,51341,41369,65123,50559,62003,48585,65141,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,43472,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,65158,41542,41542,41542,41542,41542,66019,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,52976,72644,72644,38767,41542,41542,73801,41542,41444,65497,65498,49370,65498,65498,59803,41461,41461,65182,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,51274,72644,50031,65201,73662,71079,65498,59802,58261,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37806,44953,65219,37318,37420,65239,37318,67919,65259,65275,65288,65304,65333,65317,65347,65689,45409,47790,41289,50740,71165,72077,54775,46691,68943,37318,65363,65398,65418,65465,65515,65551,65582,68491,65617,65675,37318,37318,37318,55396,65708,50432,65732,40783,60879,37318,37318,46888,65750,54125,65773,60201,65790,65831,49353,41542,61177,57056,65855,49783,65498,65874,65901,41461,65939,58230,64743,49003,37318,37318,37318,54951,44007,65958,37318,73691,37318,44004,69414,59740,72644,52378,72644,64962,65976,66005,41542,53183,41542,52448,66040,66074,65498,73466,65498,70854,66103,60245,41461,66119,41461,72537,66911,47041,37318,37318,38803,72980,60478,40954,37318,37480,66138,66168,66202,72644,66235,46345,66251,72645,66271,41542,58177,66299,66320,41542,56559,65498,65535,66344,66367,65498,69808,41461,53763,66394,66417,41461,47863,49919,37318,37318,52902,66451,37318,66495,39978,72642,66512,60519,72644,72644,38767,65839,41542,66536,41542,41444,65497,66557,54721,65498,65498,59803,66582,73488,41461,41461,52328,47223,43477,62672,37318,37318,37318,65382,72644,72644,61681,58099,41542,41542,41542,66616,65498,65498,65498,66632,66681,41461,41461,54252,37318,70963,37318,37318,37318,66698,72644,60920,66716,41542,67896,66733,65498,69783,66751,41461,54608,56936,37318,66770,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,56009,66788,66811,66827,66851,66889,49836,61620,60922,73660,47450,46828,42223,66927,59778,49606,47605,66943,50030,47449,46829,60496,73658,47451,52229,66963,67001,67042,47192,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,42006,44953,41194,40023,67082,63290,67117,67133,67149,67200,67214,67230,67259,67243,67275,67324,37318,67347,72149,37087,37318,39873,37318,37318,73640,55694,39647,45609,60403,67364,67389,66058,64007,71278,67425,72217,39770,40165,39032,68839,68408,37318,37318,37318,37318,39965,41180,37318,67452,67489,70764,72644,72644,67522,67558,63467,41542,52709,51619,65498,67579,65498,57854,67601,63637,67628,41461,60376,37318,67645,37318,67663,67683,37318,56960,37318,65223,37318,37318,73164,52080,69630,72644,72644,72644,67733,60734,73861,41542,41542,53739,65493,58399,51643,65498,65498,63881,46825,67757,59323,41461,41461,66122,50625,37318,37318,67778,47108,48295,37318,38228,67799,44787,57969,67823,72644,72644,69591,55783,67843,67888,41542,41542,63123,65166,73809,53005,65498,65498,64714,62913,63541,72852,41461,41461,59639,69865,70909,48723,67912,59519,37318,37900,37318,51391,37318,67935,72642,72644,52056,59087,72644,38767,41542,41542,67964,67985,41444,65497,65498,65858,58406,65498,59803,41461,41461,68002,41461,47863,54854,37318,68397,37318,68076,37318,60498,68624,72644,68100,65444,66541,41542,68117,51222,72818,65498,55549,59798,53799,41461,51777,47288,37318,37318,40078,37318,68138,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,65915,37954,37318,68162,56840,72644,69566,50031,41542,68178,65498,72029,59802,41461,61324,68205,61615,68239,68255,57031,68288,49964,68312,64170,41461,72350,72946,63842,68330,50053,68366,68384,61620,60922,73660,47450,46828,40170,49310,63506,57898,47605,68424,68440,45370,63171,40400,68476,68554,68604,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,38247,68640,37318,37318,44545,44549,42062,66479,66466,68687,68703,68719,68748,68732,68764,68811,49856,37318,68835,73418,40538,54530,37318,68855,37963,68877,39120,68925,68959,68996,69012,46476,69028,71470,69063,59385,62027,45461,65008,68839,69079,37318,38220,69096,65716,69131,41882,69165,69175,69191,63718,59550,63357,69231,50874,46465,70280,70118,64531,65596,69273,69296,57117,69318,73551,69334,69350,69367,69406,69430,37318,69456,69475,69510,37318,37318,68519,50099,69530,44732,69549,69582,60998,72644,69624,41363,69646,69670,69695,41542,69720,65493,69753,69776,69799,65498,69824,48973,69844,69860,69881,41461,69903,51039,37318,69922,62705,62209,69940,52743,51107,45640,57591,40471,72643,69961,69994,72644,48835,70019,70047,70072,69679,41542,41542,70100,64902,48943,63562,65498,65498,70134,59800,68060,61822,41461,41461,70150,47863,72356,45780,37318,73436,47091,37318,37318,70166,72704,72644,70194,70221,70244,47170,73209,73218,70265,66328,41444,70313,65498,70329,70356,70389,60293,70422,70441,54423,70477,47863,50635,37318,50706,66496,53384,69533,46401,70511,72644,72644,70544,70560,70789,41542,70593,70626,69047,65498,52486,70661,69887,41461,70487,37318,41199,59126,70706,37318,70726,70746,56994,70780,70823,72308,70850,70870,65601,70904,70925,51697,70495,37450,37318,70960,70979,71002,71021,63456,46437,71047,71074,71095,49624,59493,71132,71156,71181,41086,71197,69608,71230,71263,71294,71313,57200,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,65052,64909,59331,55194,71329,71374,71410,71439,71455,66985,70676,53268,62159,62339,66862,71486,71502,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,71540,37318,37318,62697,37318,37318,67919,71622,71638,71652,71668,71697,71681,71711,65689,37318,37318,41289,71727,43243,37318,54635,37318,47100,37318,37318,37318,44404,60624,71747,71775,71820,71855,71891,71918,50345,37318,37318,68839,37318,37318,64312,71934,37318,37318,37318,63901,73164,71973,72644,72644,67498,71994,41542,41542,41542,72010,61470,65498,65498,49441,57854,72045,41461,41461,72052,56235,72068,37318,72101,73266,37318,37318,37318,72130,72165,37318,45286,73164,72644,72186,72203,52036,66700,41363,41543,41542,72253,47431,72288,65493,56731,65499,62067,70610,72324,46825,73981,63597,47312,56493,72372,47041,37318,38557,37318,72400,37318,37318,37318,52648,37318,37318,72643,69558,72644,72644,72644,72645,72419,58149,41542,41542,41542,41542,61134,64696,65498,65498,65498,65498,59800,57573,41461,41461,41461,41461,47863,56406,37318,67179,37318,37318,37318,37318,60902,62813,72644,72644,72644,72644,42340,41542,41542,41542,41542,41444,47816,65498,65498,65498,65498,64261,41461,41461,41461,41461,47863,54766,37318,37318,46970,37318,37318,39394,72444,72644,72644,67855,72462,41542,57537,51591,72495,65498,65498,72517,72553,41461,41461,72576,37318,72600,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,65757,60923,69654,73664,69041,59801,72620,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,72639,72661,49423,56501,60496,73658,47451,47606,53268,68368,54485,72691,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,42479,51143,66186,50148,37318,40519,67015,72720,37318,37318,72736,72765,72749,72779,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72795,49944,41369,72816,50989,62003,72217,37318,49091,63043,68839,37318,37318,37318,37318,37318,52920,37318,37318,73164,47899,72644,73587,72644,45386,72834,41542,56677,52709,56433,65498,65498,72024,57854,55980,41461,64944,41461,60376,37318,37318,37318,37318,37318,55361,37318,37318,37318,53853,37318,73164,72644,72644,72868,72644,72644,41363,41542,41542,72887,41542,41542,65493,65498,65498,72920,65498,65498,46825,41461,56253,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,40788,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,69080,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,72938,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,50678,37318,37318,72976,37318,72965,72996,73030,73066,73080,73096,73125,73109,73141,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,49521,50028,47181,50958,47282,59296,63932,37318,37318,37318,68839,37318,37318,37318,37318,45204,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,48411,37318,37318,37318,37318,73180,72644,72644,72644,72644,72645,73199,41542,41542,41542,41542,41542,56282,65498,65498,65498,65498,65498,56756,41461,41461,41461,41461,41461,47863,54854,37318,68223,37318,37318,37318,37318,37318,72642,72644,73234,72644,56857,38767,41542,66304,41542,41542,73255,65497,65498,73289,65498,72501,59803,41461,61976,41461,70425,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45555,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,73310,37318,39135,37318,37318,37318,46656,37318,73333,55714,73368,64110,41369,73389,53053,62003,72217,37318,37318,37318,73407,48428,48554,40049,37318,37318,37318,37318,37318,73164,72644,61072,72644,52030,45386,41542,41809,41542,73452,65498,65498,58580,63617,57854,41461,41461,73487,55972,60376,73504,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,62308,37318,37318,37318,72643,72644,52957,72644,72644,74050,38772,41542,54792,41542,41542,41542,48926,65498,65498,73527,65498,65498,59800,41461,41461,73547,41461,41461,47863,54854,73567,37318,37318,37318,37318,37318,37318,72642,73584,72644,72644,72644,38767,72904,41542,41542,41542,41444,65497,73603,65498,65498,65498,59803,70455,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,57964,37318,37318,45323,45350,63443,47e3,73622,37318,37318,41289,37087,37318,42196,37318,37318,37318,37318,37318,37318,4e4,72644,73656,60650,55287,47282,61984,73680,37318,42131,37318,68839,37318,37318,37318,37318,37318,37318,37318,41786,73164,72644,72644,72644,69600,45386,41542,41542,41542,73717,65498,65498,65498,56205,57854,41461,41461,41461,72560,60376,37318,59949,37318,37318,37318,37318,37318,37318,37318,73753,37318,73164,52385,72644,72644,73772,72644,41363,69737,41542,41542,73791,41542,65493,49792,65498,65498,73825,65498,46825,50572,41461,66682,41461,41461,47041,37318,46080,37318,37318,37318,37318,37318,37318,37318,37318,72643,41389,72644,72644,72644,72645,73844,41542,73877,41542,41542,41542,51420,65498,73910,65498,65498,65498,49986,41461,73935,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,61662,37318,72642,72644,47364,72644,72644,38767,41542,41542,70798,41542,41444,65497,65498,65498,73958,65498,59803,41461,41461,73977,41461,47863,54854,37318,37318,42105,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,73997,37318,37318,40961,37318,60952,72644,60920,74016,41542,41542,57892,65498,65498,71387,41461,41461,56936,37318,60826,37318,73163,72644,74049,50031,68296,73662,65498,74066,59802,53130,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,45302,37318,37318,37318,37318,44953,37318,37318,37318,37318,37318,67919,61870,37318,37318,45323,45350,63443,47e3,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,72217,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,45386,41542,41542,41542,52709,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,64589,74088,74086,40559,74115,74104,74140,74169,37318,74124,74153,74190,74194,74210,36991,37318,37318,41289,37087,37318,37318,74245,37318,37318,37318,37318,37318,65657,40192,74266,55734,37318,53472,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,72228,37116,37202,37162,74643,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,53226,37318,37318,67919,57964,74289,74334,37318,37318,74319,74303,36991,37318,37318,41289,37087,37318,37318,37010,37318,37318,37318,74350,37318,53463,40192,38525,37318,37318,74370,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,37182,37116,37202,37162,37222,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,74174,37318,37318,37318,37318,37318,52120,37296,74401,74403,37318,37318,74392,74419,36991,37318,37318,41289,37087,37318,37318,74464,37318,37318,74485,37318,37318,59413,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,37076,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,74504,37116,37202,37162,74529,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,39013,39048,39078,39105,39169,39156,39172,39188,39089,39218,39249,55484,39265,39291,55476,39311,39327,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,39708,37318,37318,37318,37318,48276,37318,37318,37318,37318,37318,67919,57964,37318,37318,37318,37318,37318,74564,65689,37318,37318,41289,37087,37318,37318,37318,37318,37318,37318,37318,37318,44404,72644,50028,41369,65498,47282,62003,69205,37318,37318,37318,68839,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,41324,41542,41542,41542,58552,65498,65498,65498,65498,57854,41461,41461,41461,41461,60376,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,73164,72644,72644,72644,72644,72644,41363,41542,41542,41542,41542,41542,65493,65498,65498,65498,65498,65498,46825,41461,41461,41461,41461,41461,47041,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,72643,72644,72644,72644,72644,72645,38772,41542,41542,41542,41542,41542,45363,65498,65498,65498,65498,65498,59800,41461,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,37318,37318,72642,72644,72644,72644,72644,38767,41542,41542,41542,41542,41444,65497,65498,65498,65498,65498,59803,41461,41461,41461,41461,47863,54854,37318,37318,37318,37318,37318,60498,72644,72644,72644,58547,41542,41542,41542,46770,65498,65498,65498,59798,41461,41461,41461,47288,37318,37318,37318,37318,37318,72644,72644,60920,41542,41542,41542,65498,65498,65498,63673,41461,41461,56936,37318,37318,37318,73163,72644,72644,50031,41542,73662,65498,65498,59802,41461,41462,56939,61615,37318,72643,60923,41542,73664,65498,59801,41461,49498,72946,72644,50030,54383,59799,54339,61620,60922,73660,47450,46828,73161,59759,73663,59797,47605,60497,50030,47449,46829,60496,73658,47451,47606,53268,62159,62339,66862,41867,41898,41909,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,65960,37318,37318,37318,37318,74599,74601,37318,37318,70178,74617,37014,37318,37318,37318,37318,37318,37318,37010,37318,37318,37318,37318,37318,65657,40192,38525,37318,37318,39335,40192,38527,37031,44584,37054,74641,37318,37318,74250,37318,69924,37107,37136,37152,65815,69390,37247,37265,53482,72228,37116,37202,37162,74643,37186,37120,37206,37166,74726,69388,37245,37263,53480,37281,37318,41092,37317,37318,37318,45006,57380,37335,37318,74671,64449,74683,40193,37351,37378,40192,39199,37741,69458,41098,41041,37318,46044,37882,69459,41099,41042,37318,46045,37371,74376,37355,37382,40192,39202,38523,74469,50180,37398,37414,37436,50351,37475,37318,58014,37496,39340,37628,37651,37674,55492,37717,38230,37546,37566,58028,41986,37605,37523,37542,37562,58024,37582,37601,39304,37621,37644,37667,37690,37709,37733,74273,57770,38317,37757,37779,37822,46961,37943,37979,37995,38150,38170,38011,38093,38038,38061,37792,39434,38084,38100,38045,38068,37799,39441,38116,37992,38147,38166,38186,38022,38246,38263,37318,38304,37318,38354,38370,45231,38397,38413,37861,37459,38432,38451,68861,37456,38429,38448,38467,45226,38483,38407,38516,57783,51848,38545,38580,73050,38677,38610,38626,49222,38643,38660,49221,38642,38659,38676,38693,38624,38714,38739,38791,38841,38876,38942,38892,60443,38908,60433,60449,38914,38930,38946,38962,38978,74659,39048,39078,39105,39169,39156,39172,39188,39089,39218,46272,55484,39265,39291,55476,39311,74721,37693,37318,65659,38698,39356,39410,37835,37848,39457,45051,38498,38500,45058,39494,39520,39559,39504,39575,59063,39606,39616,39632,39681,39692,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,37318,1,24578,3,0,0,0,0,0,0,0,180524,180524,180524,180524,0,188717,0,188717,180524,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,180524,180524,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,368,188717,180524,188717,188717,188717,188717,188717,131072,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,188717,139264,147456,188717,188717,188717,188717,188717,188717,188717,1,24578,3,0,0,4366336,0,0,0,180524,188717,302,303,0,0,307,0,0,0,307,0,0,0,4931584,0,0,0,0,0,0,2367,0,0,0,0,0,0,0,0,0,1854,0,0,0,0,0,0,4268032,306,307,0,0,0,0,0,0,0,0,0,0,0,0,0,302,0,0,0,0,0,0,4268032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,262144,0,0,4857856,4874240,0,0,4923392,0,0,0,0,0,0,0,0,0,341,0,0,0,0,0,0,0,0,0,0,5840896,5849088,0,0,0,0,0,0,0,0,0,0,328,0,0,375,375,405,0,0,0,6275072,0,0,0,0,0,0,0,368,368,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,450560,0,0,0,0,4857856,0,0,0,0,0,0,0,0,0,0,0,0,5259264,0,0,0,0,0,0,0,0,5414912,0,5447680,0,5464064,0,5414912,5447680,0,0,5562368,5636096,5685248,0,5750784,5873664,0,0,0,0,5636096,5873664,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5873664,0,0,0,0,0,0,0,0,0,0,0,6275072,0,0,0,914,0,0,0,0,0,4857856,4874240,0,0,0,0,0,0,0,0,0,0,0,0,5447680,0,5464064,0,5480448,5562368,0,0,0,5636096,0,5685248,0,0,5750784,0,0,0,0,0,6275072,0,0,0,0,0,0,0,0,0,0,0,990,0,0,0,4841472,0,0,0,4898816,0,4358144,4358144,4358144,4358144,4358144,4358144,5414912,4358144,5447680,4358144,5464064,4358144,5480448,5562368,4358144,4358144,4358144,5636096,4358144,5636096,4358144,5685248,4358144,4358144,5750784,4358144,4358144,4358144,4358144,4358144,5873664,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4923392,4358144,4358144,4358144,4358144,4358144,0,4923392,0,0,0,0,4366336,0,0,0,0,418,0,0,0,0,0,0,0,0,0,0,0,4276224,1258,0,0,0,5603328,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,341,0,0,5341184,0,5652480,0,0,0,0,0,0,0,0,0,0,4759552,4358144,4358144,4358144,4358144,4358144,5242880,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5341184,4358144,4358144,4358144,4358144,4358144,4358144,0,0,5808128,4358144,4358144,4358144,4825088,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5627904,5652480,4358144,5701632,4358144,4358144,5808128,4358144,4358144,4358144,5668864,0,0,5791744,0,0,0,0,0,0,0,0,0,0,6201344,6242304,6250496,0,0,0,0,6422528,0,0,0,0,0,0,0,0,0,0,351,0,0,0,0,0,0,5619712,0,0,0,0,0,0,0,5726208,5758976,0,0,5791744,0,0,0,0,0,3664,0,0,0,0,0,0,0,0,0,0,5111808,0,0,0,0,0,5283840,0,0,0,0,0,5816320,6291456,0,0,0,0,0,0,0,0,0,0,0,0,2389,0,2391,2392,0,0,0,0,6062080,6463488,0,5398528,0,0,6479872,0,0,0,0,0,0,0,3459,0,0,0,3463,0,0,0,0,0,0,6463488,0,0,0,0,0,0,0,0,0,0,0,0,0,303,0,0,0,0,4931584,4939776,0,0,0,0,0,0,5054464,0,0,0,0,0,0,0,0,5210112,0,0,0,5210112,0,0,0,0,5292032,0,0,0,0,5365760,0,0,0,5455872,0,0,5816320,0,5857280,0,0,0,0,0,0,0,0,0,0,0,0,0,327,401,0,6119424,0,6168576,0,0,0,0,0,6242304,0,6291456,0,6316032,0,0,0,0,0,0,0,4358144,4358144,4931584,4939776,4358144,4358144,4358144,4358144,4358144,4358144,5054464,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5210112,4358144,4358144,4358144,4358144,4358144,4358144,5210112,4358144,4358144,4358144,4358144,5292032,4358144,4358144,4358144,4358144,5365760,4358144,4358144,4358144,5455872,4358144,4358144,4358144,4358144,4358144,4358144,5455872,4358144,4358144,4358144,4358144,4358144,5554176,5570560,5578752,5619712,5668864,4358144,4358144,4358144,5791744,5816320,4358144,5857280,4358144,4358144,4358144,4358144,5816320,4358144,5857280,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,0,0,0,6119424,4358144,6168576,4358144,4358144,4358144,4358144,4358144,6242304,4358144,6291456,4358144,6316032,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6463488,0,4358144,4358144,4358144,4358144,4358144,4358144,6463488,4358144,4358144,4358144,4358144,4358144,0,0,0,0,0,4825088,0,0,0,0,0,0,0,6184960,5316608,0,0,5644288,0,0,0,0,0,0,0,0,0,0,646,755,756,757,0,0,6217728,0,0,0,0,0,0,0,0,0,0,5390336,5308416,5488640,0,0,0,0,0,0,0,0,0,5799936,0,0,5881856,0,0,0,0,0,0,0,0,0,351,352,353,0,0,0,0,5070848,5431296,0,6430720,0,0,0,0,0,0,0,0,5160960,0,0,0,0,0,0,6053888,0,0,0,0,0,5013504,0,0,0,0,0,0,6053888,0,0,0,4358144,4358144,5013504,4358144,4358144,4358144,0,0,0,0,4841472,0,0,0,4898816,0,0,0,0,0,0,1851,0,1853,0,0,0,0,0,0,0,0,4825088,0,0,0,0,0,0,0,0,2786,0,0,0,0,0,0,0,0,2809,0,0,0,0,0,0,0,0,2834,0,0,0,0,0,0,0,0,3154,0,0,0,0,0,0,0,0,3167,3168,0,0,0,0,0,0,0,0,0,6283264,6332416,0,0,0,5881856,0,5382144,0,0,0,0,0,0,0,3665,3666,0,0,0,0,0,0,0,665,0,644,0,0,0,0,0,0,0,6266880,4784128,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4915200,4358144,4956160,4972544,4358144,4358144,4358144,4358144,4358144,4358144,5070848,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5218304,4358144,5267456,4358144,4358144,4358144,6184960,4358144,4358144,6283264,4358144,4358144,6332416,4358144,4358144,4358144,6389760,4358144,4358144,6430720,6438912,4358144,4358144,4358144,6266880,6488064,0,0,0,6266880,0,0,4915200,0,4956160,4972544,0,0,0,0,0,0,5070848,0,0,0,0,0,0,0,5218304,0,5267456,0,0,0,0,5218304,0,5267456,0,0,5308416,5316608,0,0,0,5431296,0,5488640,0,0,0,0,0,0,0,0,6332416,0,0,0,6389760,0,0,6430720,6438912,0,0,0,0,0,0,4784128,0,0,0,4849664,0,0,0,0,0,4915200,0,4956160,4972544,0,0,0,6430720,6438912,4784128,4358144,4358144,4358144,4849664,4358144,4358144,4358144,4358144,4358144,4915200,4358144,4358144,0,0,0,0,0,0,0,0,0,0,302,0,303,306,5218304,4358144,5267456,4358144,4358144,5308416,5316608,4358144,4358144,4358144,5431296,4358144,5488640,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5799936,4358144,4358144,5881856,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6103040,4358144,4358144,4358144,6103040,4358144,4358144,4358144,6184960,4358144,4358144,4358144,6283264,4358144,4358144,6332416,4358144,4358144,0,0,0,0,0,0,0,0,0,368640,0,0,0,0,0,0,2411,0,0,0,0,0,0,0,0,0,1256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4931584,4939776,6488064,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,357,5660672,5718016,0,5865472,0,0,6037504,0,0,6078464,0,0,6340608,0,6455296,0,0,0,0,420,420,420,420,597,597,420,420,420,420,420,420,420,420,420,420,420,420,420,0,420,0,0,0,0,5472256,0,0,0,6209536,0,0,0,0,6176768,0,0,0,0,0,0,6373376,6389760,0,0,6488064,6103040,0,0,0,0,0,0,1850,0,0,0,0,0,0,0,0,0,662,0,0,0,0,0,0,0,0,0,4898816,0,5709824,0,0,0,5283840,0,0,0,0,5251072,0,6414336,5832704,0,5955584,0,0,4358144,4358144,4841472,4358144,4358144,4358144,4898816,4358144,4358144,4358144,4358144,4358144,4358144,0,0,0,0,0,0,303,0,0,0,4358144,5472256,5521408,4358144,4358144,4358144,5595136,5709824,5718016,4358144,5824512,5865472,4358144,4358144,5922816,4358144,4358144,6021120,4358144,6037504,4358144,4358144,6078464,6111232,4358144,6176768,6209536,6234112,4358144,4358144,4358144,4358144,5283840,0,0,0,0,5472256,5521408,0,0,0,0,5595136,5709824,5718016,0,5824512,5865472,0,0,5865472,0,0,5922816,0,0,6021120,0,6037504,0,0,6078464,6111232,0,6176768,6209536,0,6234112,0,0,6234112,0,0,0,0,0,0,0,4358144,4358144,4841472,4358144,4358144,4358144,4898816,4358144,5283840,4358144,4358144,4358144,4358144,5472256,5521408,4358144,4358144,4358144,4358144,5595136,5709824,5718016,4358144,4358144,0,0,0,0,0,5193728,0,0,0,0,0,0,0,0,4358144,4358144,6209536,4358144,6234112,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,573440,0,0,5890048,0,0,0,6160384,0,5095424,5349376,0,5275648,0,0,0,0,0,0,2308,0,0,0,0,0,0,0,0,0,139264,147456,0,0,344064,0,0,0,0,4997120,0,0,0,0,0,0,0,0,0,0,5947392,0,0,0,0,0,3675,0,0,0,0,0,0,0,0,4012,528,5103616,4358144,4358144,5201920,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5890048,4358144,4358144,4358144,6029312,4358144,4358144,4358144,4358144,6160384,4358144,4358144,4358144,4358144,4358144,4358144,6406144,0,5103616,0,0,5201920,0,0,0,0,0,0,0,0,0,0,0,5890048,0,0,0,0,6029312,0,0,0,0,6160384,0,0,0,0,0,0,0,6406144,6406144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4997120,4358144,4358144,5038080,4358144,4358144,4358144,5095424,5095424,5103616,4358144,4358144,5201920,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,0,5013504,0,4358144,6406144,4358144,4358144,4358144,0,0,0,4890624,0,0,0,0,0,0,0,0,3209,0,0,3212,0,0,0,0,0,0,5898240,5963776,0,0,6193152,0,0,5406720,6397952,5300224,5234688,5423104,0,0,0,0,0,3675,0,0,0,0,0,4009,0,4011,528,528,0,0,0,0,0,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58815,57893,57893,0,0,5988352,0,0,6135808,6307840,0,5996544,4800512,0,6356992,0,0,0,0,0,0,2317,2318,0,2320,2321,0,0,0,0,0,0,1207,0,1209,0,0,368,368,0,0,0,0,0,0,0,0,0,710,0,0,0,0,0,0,0,0,5496832,0,0,0,0,0,5611520,0,0,0,0,0,0,0,3673,0,0,0,0,0,0,0,0,693,0,0,0,0,0,0,368,4947968,5021696,5529600,0,0,5169152,0,0,0,4800512,4808704,4358144,4358144,4890624,4358144,4947968,4358144,4358144,4358144,5898240,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6307840,4358144,4358144,6356992,6381568,5185536,0,5234688,5300224,0,0,5406720,5529600,0,0,0,0,5898240,0,0,0,0,0,0,0,0,6307840,0,0,6356992,6381568,6397952,4800512,4808704,4358144,4358144,4890624,4358144,4947968,4358144,4358144,4358144,5046272,4358144,4358144,4358144,4358144,5185536,4358144,5234688,5300224,4358144,4358144,5406720,5529600,4358144,4358144,4358144,4358144,5898240,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6307840,4358144,4358144,6356992,6381568,6397952,5021696,4358144,4358144,5021696,0,0,0,4980736,0,0,0,0,0,5373952,5734400,6045696,0,0,0,0,421,421,421,421,421,421,421,421,421,421,421,421,421,0,421,0,6258688,6447104,0,0,6127616,0,6348800,5906432,0,5537792,3675,4882432,0,0,0,0,0,0,2329,0,0,0,0,0,0,0,0,0,1195,0,0,0,0,0,0,0,0,0,0,5939200,0,0,5677056,6365184,4866048,0,6070272,5545984,5152768,0,0,0,0,0,3675,0,0,0,0,4008,0,4010,0,528,4013,6144e3,4358144,4866048,4882432,4358144,4980736,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5324800,5373952,5537792,5545984,5586944,5734400,5971968,4358144,6045696,4358144,6070272,4358144,4358144,5537792,5545984,5734400,5971968,4358144,6045696,4358144,6070272,4358144,4358144,4358144,6348800,0,4866048,4882432,0,0,0,0,644,0,0,0,803,0,808,0,794,0,820,0,0,0,0,735,0,0,0,0,0,0,0,0,0,0,0,450560,450560,0,0,450560,0,6045696,0,6070272,0,0,0,0,6348800,0,4866048,4882432,0,4980736,0,0,0,0,0,0,0,0,5324800,5373952,5537792,5545984,5586944,5734400,5971968,0,6045696,0,6070272,0,0,0,0,6348800,4358144,4866048,4882432,4358144,4980736,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6299648,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6348800,4358144,6144e3,0,6144e3,0,4988928,5005312,0,0,0,0,5775360,0,0,0,0,749,0,0,0,0,0,0,0,0,0,0,759,0,0,3675,0,0,0,0,0,0,5693440,0,6496256,5144576,5136384,0,5914624,4358144,6324224,0,0,5005312,0,0,0,512e4,5136384,0,0,0,0,0,0,0,1252,0,0,0,748,1259,0,0,0,0,0,0,0,6324224,0,0,5005312,0,0,0,512e4,5136384,0,0,0,0,0,0,6463488,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6324224,5914624,5914624,0,0,0,0,0,5513216,5783552,0,3675,0,0,0,0,0,0,0,0,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4931584,4939776,4358144,4358144,4358144,0,6053888,0,0,0,0,0,0,0,0,6012928,4358144,4358144,5013504,4358144,4358144,0,0,0,0,0,0,0,0,0,0,0,1153,0,0,0,0,0,3675,0,0,4006,4007,0,0,0,0,528,528,528,528,3220,528,528,528,528,528,528,3227,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6053888,4358144,4358144,0,0,5013504,0,0,0,0,0,312,414,0,0,139264,147456,0,0,0,0,0,0,0,6103040,0,0,0,6184960,0,0,0,6283264,0,0,6332416,0,0,0,6389760,4358144,4358144,4358144,4358144,4358144,4358144,6053888,4358144,4358144,4358144,0,0,0,0,5193728,0,0,0,0,761,0,0,0,0,0,0,0,0,0,0,528,528,528,3700,528,528,528,5742592,0,0,0,0,0,4358144,4907008,4358144,5079040,4358144,5226496,4358144,5742592,4358144,4358144,4358144,6094848,4358144,5062656,0,0,0,0,0,4358144,4358144,6094848,0,4907008,0,5079040,0,5226496,0,5742592,0,0,0,6094848,0,0,0,0,0,3675,0,4005,0,0,0,0,0,0,528,528,528,528,4155,528,528,528,528,528,528,4907008,0,5079040,0,5226496,0,5742592,0,0,0,6094848,0,4358144,4907008,4358144,5079040,5062656,4358144,4358144,4358144,4358144,4358144,0,5062656,0,0,0,0,0,6225920,0,5062656,4358144,4358144,4358144,4358144,4358144,913,5063569,913,913,913,913,913,6226833,989,5063645,0,0,0,4816896,4358144,4358144,4358144,4358144,6086656,4816896,0,0,0,0,6086656,4816896,4358144,4358144,4358144,4358144,6086656,0,5087232,0,5931008,4358144,5332992,5980160,4358144,0,5332992,5980160,0,0,5332992,5980160,0,4358144,5332992,5980160,4358144,0,0,0,0,787,0,0,0,0,806,0,0,0,0,0,0,0,3166,0,0,0,0,0,0,0,0,327,0,0,0,0,0,0,0,5439488,5128192,4358144,5128192,0,5128192,0,5128192,4358144,0,4358144,0,0,4358144,0,4358144,0,0,4358144,6004736,6004736,6004736,6004736,6004736,0,0,0,1,24578,3,0,0,0,0,0,0,0,0,0,0,0,0,0,339,340,0,0,221652,221652,221652,468,468,468,468,468,468,468,468,468,468,468,468,221652,468,221652,221652,221652,468,221652,221652,221652,221652,221652,221652,221652,221652,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1162,0,0,1164,0,0,0,0,0,0,0,0,1311,0,0,0,0,0,1179,0,0,0,762,0,0,0,0,0,0,0,0,0,0,0,0,0,383,0,0,0,0,1064,0,0,0,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,913,913,913,4358144,4358144,1064,0,0,0,0,0,0,0,0,0,0,0,0,0,507,514,514,1,24578,3,0,0,0,0,0,0,0,0,0,0,0,237568,302,0,306,237568,0,0,0,0,0,0,0,0,0,0,0,0,0,643,0,0,4268032,98304,307,0,0,0,0,0,0,0,0,0,0,0,0,0,661,0,0,4210979,24578,3,0,0,297,0,0,0,0,297,0,0,0,0,0,0,0,3685,0,0,0,3688,3689,0,0,0,0,0,245760,245760,245760,0,0,0,0,139264,147456,245760,245760,0,0,245760,0,4210979,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1164,1297,0,0,0,0,0,0,1304,0,0,0,0,0,2859,0,0,0,0,0,0,0,0,0,2867,368,368,0,0,0,303104,0,0,0,0,0,0,0,0,0,0,647,0,0,0,0,528,1158,0,4857856,4874240,0,0,4923392,0,0,0,0,0,0,0,0,0,379,0,0,0,0,371,0,4358144,4358144,4358144,4358144,0,1984,0,0,0,4825088,0,0,0,0,0,0,0,1253,0,0,0,0,0,0,0,0,2399,2400,0,0,2402,0,0,0,0,0,262144,262144,262144,0,0,0,0,0,0,0,0,0,0,0,0,3449,0,0,0,0,0,262144,262144,0,262144,0,0,0,139264,147456,262144,0,0,0,0,0,0,2344,2345,0,0,0,0,0,0,0,0,798,0,0,0,0,0,809,0,0,0,262144,0,262738,262738,262738,262738,262738,262738,262738,262738,262738,262738,262738,262738,262738,0,262738,0,0,262738,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1177,0,0,0,0,0,0,0,0,0,0,0,4086,528,528,528,528,0,270336,0,0,0,0,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5177344,278528,278528,0,0,131072,278528,0,0,0,0,278528,0,0,0,0,278528,278528,278528,278528,278528,278528,278528,278528,278528,278528,278528,278528,278528,278528,0,278528,0,0,278528,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1205,1206,0,0,0,0,0,368,368,0,0,0,0,0,0,0,0,0,0,0,712,0,0,0,0,1,24578,3,0,0,4366336,0,0,0,0,0,302,638,0,0,0,0,1218,0,0,0,0,1223,0,0,0,0,0,0,0,1752,0,0,0,1755,0,0,1758,0,4268032,306,641,0,0,0,0,0,0,0,0,0,0,0,0,0,662,0,0,528,0,1430,0,0,0,0,0,4857856,4874240,0,0,0,0,0,0,0,0,3686,0,0,0,0,0,0,0,0,3826,0,3675,0,0,0,0,0,0,6275072,0,0,0,0,0,0,0,0,0,0,0,1525,0,0,0,0,0,3675,4004,0,0,0,0,0,0,0,528,528,4209,528,4210,528,528,528,528,528,1,24578,3,0,0,0,0,0,0,0,0,0,0,0,286720,303,0,307,286720,0,0,0,0,0,0,0,0,0,0,0,0,0,663,0,792,0,307,0,0,0,0,0,0,307,139264,287139,0,0,0,307,0,0,0,0,1234,0,0,0,0,0,0,0,0,0,0,0,2414,0,0,0,0,0,307,1,24578,3,0,0,4366336,0,0,0,0,0,302,66175,0,0,0,0,1250,0,0,0,1255,0,0,0,0,0,0,0,661,0,0,0,0,0,0,0,0,378,0,363,0,0,0,0,0,4268032,306,98946,0,0,0,0,0,0,0,0,0,0,0,0,0,728,0,0,0,0,122880,0,4268032,0,0,0,0,0,0,0,0,0,0,0,0,2310144,0,0,0,0,307,4857856,4874240,0,0,4923392,0,0,0,0,0,0,0,0,0,528,528,3699,528,528,528,528,1,24578,3,0,0,0,0,0,0,0,0,0,0,0,0,304,0,304,0,304,304,304,295216,304,304,304,295216,295216,304,295216,304,304,131072,304,304,304,304,304,295216,304,304,304,304,295216,304,304,304,304,295286,295216,295216,295216,295216,295216,295216,304,304,304,304,304,0,0,304,304,295216,304,304,304,304,304,304,304,304,304,304,304,304,369,304,0,295216,304,295286,295216,295216,295216,304,304,304,295286,139264,147456,295216,295216,304,304,295216,295216,295216,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,295216,295286,295286,295286,295286,295286,295286,295286,295286,295286,295286,295286,295286,295286,295216,295216,295216,295216,295216,304,304,304,295216,304,304,304,304,304,304,304,295216,374,304,304,304,304,304,304,304,295216,304,295216,295216,295216,295216,295216,295216,295216,295216,295286,295286,295286,295286,295286,295286,295216,295216,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1267,0,0,0,0,0,0,0,0,0,0,0,3170,0,0,0,0,0,0,0,6275072,0,0,0,0,0,0,0,4399804,4399804,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4399804,0,0,319488,0,0,0,0,0,0,319488,319488,0,0,0,0,0,0,0,3696,0,528,528,528,528,528,528,528,528,528,528,528,3849,528,528,528,319488,0,0,0,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,319488,0,24578,3,0,0,4366336,253952,0,0,0,0,302,303,0,0,0,0,1282,0,0,0,0,0,0,0,0,0,0,0,1241,0,0,0,0,368,425984,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4399805,0,0,0,6275072,0,0,0,0,0,0,0,368,0,0,0,0,0,0,2357,0,0,0,0,0,0,0,0,0,3461,0,0,0,0,0,0,0,327680,327680,327680,0,0,0,0,0,0,0,0,0,0,327680,327680,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,327680,327680,327680,327680,327680,335872,327680,327680,327680,335872,327680,327680,327680,327680,327680,327680,49723,0,0,0,0,0,0,0,49723,49723,0,0,0,0,0,0,0,1270,0,0,0,0,0,0,0,0,0,5627904,5652480,0,5701632,0,0,0,0,0,6275072,0,0,0,0,0,0,0,0,0,0,49152,990,0,0,0,0,0,3683,0,0,0,0,0,0,0,3690,0,0,0,0,0,3836,0,0,0,0,0,0,0,0,0,0,5242880,0,0,0,0,0,0,0,5341184,0,0,0,0,0,344064,344064,344064,0,0,0,0,0,0,0,0,0,0,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,344064,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,352256,352256,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1309,0,0,0,0,0,0,0,0,1315,0,0,0,0,371,0,0,0,0,0,0,0,0,0,0,0,3438,0,0,3440,0,1,292,3,0,0,0,298,0,0,0,0,0,0,0,0,0,528,3698,528,528,528,3701,528,0,360448,360448,360448,0,0,0,0,0,0,0,0,0,0,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,360448,1,0,3,155942,155942,296,0,636,0,0,0,302,303,0,1230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,368,528,528,1376,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2460,528,0,914,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60322,57943,57943,57943,57943,59004,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,57893,3998,0,4e3,528,528,528,528,58773,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,0,57916,57916,57916,57916,57916,528,528,528,2437,528,528,528,528,528,528,528,528,528,528,528,528,528,2446,528,2448,0,0,0,57893,57893,57893,57893,57893,57893,57893,59856,57893,57893,57893,57893,57893,57893,60873,57893,57893,57893,57893,57893,57893,57893,57893,57893,61213,57893,57893,57893,57893,61214,61215,57893,57893,57893,57893,60300,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,0,0,0,0,0,60432,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,0,0,0,3191,0,0,0,0,0,0,0,0,0,0,0,0,319,0,0,0,0,0,0,3682,0,0,0,0,0,0,0,0,0,0,0,0,338,0,0,0,528,57893,61069,57893,57893,57893,61072,57893,57893,57893,57893,57893,57893,57893,57893,57893,58331,0,57916,57916,57916,57916,57916,61080,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59358,61101,57916,57916,57916,57916,57916,57916,57916,57916,57916,61109,57916,57916,57916,57916,57916,57916,60360,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,60707,57943,57943,57943,57943,57943,57943,57943,57943,57943,61138,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59568,57943,57943,57943,528,528,3852,3853,528,528,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,58291,57893,57893,57943,57943,57943,61251,57943,57943,57943,57943,61252,61253,57943,57943,57943,57943,57943,57943,57943,58468,57943,57943,57943,57943,528,528,528,898,0,0,3675,0,0,3929,0,0,0,0,0,0,0,0,0,0,695,0,0,0,0,368,528,528,57893,57893,57893,57893,57893,57893,61299,57893,57893,57893,57893,57893,57893,61305,57893,57893,57893,61309,57893,57916,57916,57916,57916,57916,57916,61315,57916,57916,57916,57916,57916,57943,57943,61128,57943,57943,57943,57943,57943,57943,57943,57943,57943,60066,57943,57943,57943,57943,57943,57943,57916,57916,61321,57916,57916,57916,61325,57916,57943,57943,57943,57943,57943,57943,61331,57943,528,1951,528,2283,528,57893,59394,57893,59632,57893,2290,0,2291,0,0,0,0,0,417792,0,417792,0,0,0,0,310,0,0,0,0,0,316,0,0,0,0,0,0,0,0,0,0,1328,0,0,0,0,0,528,528,57893,57893,57893,57893,61511,57893,57893,57893,57893,57893,57893,57893,57893,57893,58826,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,61524,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,60024,57943,60026,57943,57943,57943,57943,57943,61537,57943,57943,57943,57943,57943,57943,57943,57943,57943,0,0,0,0,0,0,4244,528,528,528,57893,57893,57893,57893,57916,57916,57916,57916,57943,57943,57943,57943,0,0,0,0,1310,0,0,0,0,0,0,0,0,0,1316,1269,0,528,528,57893,57893,57916,57916,57943,57943,0,528,57893,57916,57943,0,528,57893,57916,57943,0,528,57893,57916,57943,0,0,0,0,376832,376832,376832,0,0,0,0,0,0,0,0,0,0,0,0,346,0,0,0,0,420,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1731,0,0,0,0,0,0,0,0,0,0,0,648,0,0,0,0,0,0,0,0,4268780,0,0,0,0,0,0,0,0,0,0,0,0,6119424,0,6168576,0,0,0,0,308,0,0,0,0,0,0,0,0,0,0,0,0,354,355,356,0,0,393685,393685,393685,0,0,0,0,0,0,0,0,0,0,0,0,368,0,0,245760,0,0,475136,0,0,0,0,0,0,0,0,0,0,0,0,0,761,0,0,305,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,411,0,421,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,0,1731,0,0,0,0,1738,0,1740,0,0,0,0,0,0,3180,0,0,0,0,0,0,0,0,0,352256,0,352256,352256,0,0,0,305,306,307,0,0,0,0,0,0,0,0,0,0,0,0,0,1185,0,0,0,0,0,748,421,0,0,0,0,0,0,0,0,0,0,0,337,0,0,0,0,57916,0,0,0,748,57893,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,528,3413,57893,57893,60760,1725,0,0,0,1731,1732,0,0,0,0,0,0,0,0,0,0,741,0,0,0,0,0,0,0,0,1252,1825,0,0,0,0,1259,1259,0,0,0,0,0,0,0,4083,0,4085,0,528,528,528,528,528,528,528,528,528,528,3848,528,528,528,528,0,0,2293,1732,2294,0,0,0,0,0,0,0,0,0,0,0,368,368,1212,0,0,528,528,2499,2932,0,0,0,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59860,528,528,528,2932,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,0,0,2592,0,0,417792,0,0,0,0,417792,0,0,0,0,0,310,0,310,0,0,0,0,0,4151,4152,4153,528,528,528,4156,528,4158,528,528,0,0,0,0,0,0,57893,57893,57893,57893,57893,57893,57893,60283,417792,417792,0,0,417792,417792,417792,417792,417792,417792,417792,417792,417792,417792,417792,417792,418102,417792,417792,418101,418102,417792,417792,418101,417792,418101,417792,0,417792,0,0,0,0,417792,0,0,0,0,0,0,0,0,0,0,0,310,310,310,0,418101,417792,1,24578,3,0,0,4366971,0,0,0,0,0,302,303,311296,4399805,0,0,0,311296,0,0,0,0,0,0,0,0,0,0,800,0,0,0,0,0,0,0,0,4268032,306,307,0,434176,0,0,0,0,0,0,0,0,0,0,0,381,0,384,0,0,0,0,0,6275072,0,0,0,0,0,0,0,0,4399805,0,0,0,0,0,363,0,0,0,0,0,0,368,0,296,0,0,914,913,913,913,913,913,4858769,4875153,913,913,913,913,913,913,913,913,913,5628817,5653393,913,5702545,913,913,913,913,5448593,913,5464977,913,5481361,5563281,913,913,913,5637009,913,5686161,913,913,5751697,913,6275985,913,913,913,913,913,913,913,913,913,0,0,990,989,989,989,989,6087645,4817809,4359057,4359057,4359057,4359057,6087569,0,5087232,0,5931008,4358144,989,989,5260253,989,989,989,989,989,989,989,989,5415901,989,5448669,989,5465053,989,5481437,5563357,989,989,989,5637085,989,5686237,989,989,5751773,989,989,989,989,989,989,6300637,989,989,989,989,989,989,989,989,989,989,5112797,989,989,989,989,989,989,5874653,989,989,989,989,989,989,989,989,989,989,989,6276061,989,989,989,4858845,4875229,989,989,989,989,989,989,989,989,989,989,989,989,989,5178333,989,989,4359057,5637009,4359057,5686161,4359057,4359057,5751697,4359057,4359057,4359057,4359057,4359057,5874577,4359057,4359057,4359057,4359057,5186449,4359057,5235601,5301137,4359057,4359057,5407633,5530513,4359057,4359057,4359057,4359057,4359057,6300561,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,5112721,4359057,4359057,4359057,4359057,989,989,5809041,4359057,4359057,4359057,4826001,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,5178257,4359057,4359057,4359057,4359057,4359057,5243793,4359057,4359057,4359057,4359057,4359057,4359057,4359057,5342097,4359057,4359057,4359057,4359057,4359057,4359057,5415825,4359057,5448593,4359057,5464977,4359057,5481361,5563281,4359057,4359057,0,0,0,913,913,913,913,913,913,913,913,913,913,913,4932497,4940689,913,913,6464401,0,0,0,0,989,989,989,989,989,989,989,989,989,4998109,989,989,5039069,989,989,989,5096413,989,5456861,989,989,989,989,989,5555165,5571549,5579741,5620701,5669853,989,989,989,5792733,5817309,989,5858269,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,4359057,4359057,4359057,6120413,989,6169565,989,989,989,989,989,6243293,989,6292445,989,6317021,989,989,989,989,989,5071837,989,989,989,989,989,989,989,5219293,989,5268445,4359057,4359057,4932497,4940689,4359057,4359057,4359057,4359057,4359057,4359057,5055377,4359057,4359057,4359057,4359057,4359057,4359057,6054801,4359057,4359057,4359057,0,0,0,0,5193728,0,4359057,5456785,4359057,4359057,4359057,4359057,4359057,5555089,5571473,5579665,5620625,5669777,4359057,4359057,4359057,5792657,5817233,4359057,5858193,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,0,5013504,0,6120337,4359057,6169489,4359057,4359057,4359057,4359057,4359057,6243217,4359057,6292369,4359057,6316945,4359057,4359057,4359057,5194641,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4907008,0,5079040,6094848,6430720,6438912,0,0,0,0,0,0,4785041,913,913,913,4850577,913,913,913,913,913,913,5055377,913,913,913,913,913,913,913,913,5211025,5489553,913,913,913,913,913,913,913,913,913,5800849,913,913,5882769,913,913,913,913,5219217,913,5268369,913,913,5309329,5317521,913,913,913,5432209,913,913,913,6333329,913,913,913,6390673,913,913,6431633,6439825,0,0,0,0,0,0,0,393685,0,393685,393685,393685,393685,393685,393685,393685,393685,393685,393685,393685,393685,393685,393685,0,393685,0,4785117,989,989,989,4850653,989,989,989,989,989,4916189,989,4957149,4973533,989,989,989,6030301,989,989,989,989,6161373,989,989,989,989,989,989,989,6325213,4359057,4359057,5006225,4359057,4359057,4359057,5120913,5137297,989,989,5309405,5317597,989,989,989,5432285,989,5489629,989,989,989,989,989,989,5325789,5374941,5538781,5546973,5587933,5735389,5972957,989,6046685,989,6104029,989,989,989,6185949,989,989,989,6284253,989,989,6333405,989,989,989,6390749,989,989,6431709,6439901,4785041,4359057,4359057,4359057,4850577,4359057,4359057,4359057,4359057,4359057,4916113,4359057,4358144,4358144,4358144,4358144,4358144,913,913,913,913,913,0,0,0,0,0,0,0,319488,0,0,0,0,0,0,0,0,0,0,319488,0,4957073,4973457,4359057,4359057,4359057,4359057,4359057,4359057,5071761,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,6275985,4359057,4359057,4359057,4359057,4359057,4359057,4359057,5219217,4359057,5268369,4359057,4359057,5309329,5317521,4359057,4359057,4359057,5432209,4359057,5489553,4359057,4359057,4359057,5211025,4359057,4359057,4359057,4359057,5292945,4359057,4359057,4359057,4359057,5366673,4359057,4359057,4359057,4359057,6390673,4359057,4359057,6431633,6439825,4358144,4358144,4358144,6266880,6488064,913,913,913,6267793,6488977,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,730,4358144,4358144,4358144,0,0,913,913,4842385,913,913,913,4899729,913,913,913,913,913,913,913,6103953,913,913,913,6185873,913,913,913,6284177,913,913,5473169,5522321,913,913,913,913,5596049,5710737,5718929,913,5825425,5866385,913,913,913,913,5243793,913,913,913,913,913,913,913,5342097,913,913,913,0,0,989,989,989,4826077,989,989,989,989,989,989,989,0,913,4359057,4359057,4359057,4359057,4359057,4858769,4875153,5923729,913,913,6022033,913,6038417,913,913,6079377,6112145,913,6177681,6210449,913,6235025,913,913,913,913,6243217,913,6292369,913,6316945,913,913,913,913,913,913,913,4998033,913,913,5038993,913,913,913,5096337,5104529,5284829,989,989,989,989,5473245,5522397,989,989,989,989,5596125,5710813,5719005,989,5825501,5866461,989,989,5923805,989,989,6022109,989,6038493,989,989,6079453,6112221,989,6177757,6210525,989,6235101,989,989,989,989,989,989,989,4359057,4359057,4842385,4359057,4359057,4359057,4899729,4359057,5284753,4359057,4359057,4359057,4359057,5473169,5522321,4359057,4359057,4359057,4359057,5596049,5710737,5718929,4359057,4359057,4359057,6103953,4359057,4359057,4359057,6185873,4359057,4359057,4359057,6284177,4359057,4359057,6333329,4359057,4359057,4923392,4358144,4358144,4358144,4358144,4358144,913,4924305,913,913,913,913,4366336,0,0,0,0,1779,0,0,0,0,0,0,0,0,0,0,0,3156,0,3157,0,0,5825425,5866385,4359057,4359057,5923729,4359057,4359057,6022033,4359057,6038417,4359057,4359057,6079377,6112145,4359057,6177681,6210449,4359057,6235025,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4358144,4358144,4358144,913,913,913,913,913,5194641,913,913,913,913,913,913,913,913,913,913,988,989,989,989,989,989,4358144,4358144,6029312,4358144,4358144,4358144,4358144,6160384,4358144,4358144,4358144,4358144,4358144,4358144,6406144,913,913,913,913,6325137,989,989,5006301,989,989,989,5120989,5137373,989,989,989,989,989,6226909,4359057,5063569,4359057,4359057,4359057,4359057,4359057,6226833,0,6086656,913,913,5202833,913,913,913,913,913,913,913,913,913,913,913,5890961,913,913,913,5555089,5571473,5579665,5620625,5669777,913,913,913,5792657,5817233,913,5858193,913,913,913,913,5292945,913,913,913,913,5366673,913,913,913,5456785,913,913,913,913,913,6308753,913,913,6357905,6382481,6398865,4801501,4809693,989,989,4891613,913,913,6030225,913,913,913,913,6161297,913,913,913,913,913,913,913,6407057,5104605,989,989,5202909,989,989,989,989,989,989,989,989,989,989,989,5891037,6407133,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4998033,4359057,4359057,5038993,4359057,4359057,4359057,5325713,5374865,5538705,5546897,5587857,5735313,5972881,4359057,6046609,4359057,6071185,4359057,4359057,5096337,5104529,4359057,4359057,5202833,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4358144,4358144,4358144,4358144,5890961,4359057,4359057,4359057,6030225,4359057,4359057,4359057,4359057,6161297,4359057,4359057,4359057,4359057,4359057,4359057,5800849,4359057,4359057,5882769,4359057,4359057,4359057,4359057,4359057,4359057,5628817,5653393,4359057,5702545,4359057,4359057,5809041,4359057,4359057,4359057,4359057,6407057,4358144,4358144,4358144,913,913,913,4890624,0,0,0,0,0,0,0,0,327680,0,0,0,0,0,0,0,0,319488,0,0,0,0,319488,0,319488,6397952,4801425,4809617,913,913,4891537,913,4948881,913,913,913,5047185,913,913,913,913,913,913,913,6300561,913,913,913,913,913,913,913,913,913,913,913,913,6120337,913,6169489,913,5186449,913,5235601,5301137,913,913,5407633,5530513,913,913,913,913,5899153,913,913,913,913,913,913,6054801,913,913,913,989,989,5014493,989,989,989,989,989,5194717,989,989,989,989,989,989,989,989,4359057,4359057,989,4948957,989,989,989,5047261,989,989,989,989,5186525,989,5235677,5301213,989,989,989,5211101,989,989,989,989,5293021,989,989,989,989,5366749,989,989,989,5243869,989,989,989,989,989,989,989,5342173,989,989,989,989,989,989,6464477,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,6325137,5914624,5915537,0,0,0,5407709,5530589,989,989,989,989,5899229,989,989,989,989,989,989,989,989,6308829,989,989,6357981,6382557,6398941,4801425,4809617,4359057,4359057,4891537,4359057,4948881,4359057,4359057,4359057,5047185,5899153,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,6308753,4359057,4359057,6357905,6382481,6398865,5021696,4358144,4358144,5022609,913,913,0,4980736,0,0,0,0,0,5373952,5734400,6045696,0,0,0,0,1792,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114688,0,5537792,5545984,5734400,5971968,4358144,6045696,4358144,6070272,4358144,4358144,4358144,6348800,913,4866961,4883345,913,913,4916113,913,4957073,4973457,913,913,913,913,913,913,5071761,913,913,913,913,913,913,5260177,913,913,913,913,913,913,913,913,5415825,4981649,913,913,913,913,913,913,913,913,5325713,5374865,5538705,5546897,5587857,5735313,5972881,913,6046609,913,6071185,913,913,913,913,6349713,989,4867037,4883421,989,4981725,989,989,989,5800925,989,989,5882845,989,989,989,989,989,989,989,989,989,5628893,5653469,989,5702621,989,989,989,989,6071261,989,989,989,989,6349789,4359057,4866961,4883345,4359057,4981649,4359057,4359057,4359057,4359057,4359057,4359057,6464401,4358144,4358144,4358144,4358144,4358144,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,5178257,913,4359057,4359057,6349713,4358144,6144e3,913,6144913,0,4988928,5005312,0,0,0,0,5775360,0,0,0,0,1795,0,0,1798,0,1800,0,0,0,0,0,1806,4358144,6324224,913,913,5006225,913,913,913,5120913,5137297,913,913,913,913,913,913,913,5112721,913,913,913,913,913,5284753,913,913,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6053888,4358144,4358144,913,913,5014417,913,913,913,913,913,5874577,913,913,913,913,913,913,913,913,913,913,913,913,913,989,989,989,4358144,6094848,913,4907921,913,5079953,913,5227409,913,5743505,913,913,913,6095761,913,989,989,4932573,4940765,989,989,989,989,989,989,5055453,989,989,989,989,989,989,6054877,989,989,989,4359057,4359057,5014417,4359057,4359057,4359057,4907997,989,5080029,989,5227485,989,5743581,989,989,989,6095837,989,4359057,4907921,4359057,5079953,4359057,5227409,4359057,5743505,4359057,4359057,4359057,6095761,4359057,5062656,0,0,0,0,0,4358144,4358144,0,913,913,913,913,913,913,0,0,0,0,0,0,0,0,4956160,4964352,0,0,0,0,0,0,0,0,4816896,4358144,4358144,4358144,4358144,6086656,4817809,913,913,913,913,6087569,4817885,5332992,5980160,4358144,913,5333905,5981073,913,989,5333981,5981149,989,4359057,5333905,5981073,4359057,0,0,0,0,1811,0,0,0,0,0,0,0,0,0,1820,0,0,0,0,1825,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,528,5439488,5128192,4358144,5129105,913,5129181,989,5129105,4359057,0,4358144,913,989,4359057,0,4358144,913,989,4359057,6004736,6004736,6005649,6005725,6005649,0,0,0,450560,450560,0,0,0,0,0,0,0,0,0,0,0,0,0,0,375,0,450560,450560,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1876,1877,0,0,0,0,0,0,0,0,0,0,1867,0,0,1870,0,0,0,0,0,196608,0,0,0,106496,0,0,4284416,0,0,0,0,0,0,0,417792,0,0,417792,0,0,417792,0,417792,0,0,0,0,139264,147456,417792,0,0,0,417792,196608,0,0,5816320,6291456,0,0,0,0,0,0,0,0,0,0,0,400,0,0,0,0,0,0,0,0,0,0,303,0,0,307,0,0,0,4956160,4964352,0,0,0,0,0,0,0,466944,0,0,0,0,0,0,0,0,0,5480448,0,0,0,0,0,0,6430720,6438912,914,0,0,0,914,0,4784128,0,0,0,4849664,0,0,0,0,0,648,0,0,0,0,0,0,818,0,0,0,0,0,658,659,0,0,0,0,0,0,0,0,0,1272,0,0,0,0,0,0,0,0,6332416,0,0,0,6389760,0,0,6430720,6438912,990,0,0,0,990,4358144,4358144,4358144,914,0,0,0,4841472,0,0,0,4898816,0,0,0,0,0,0,2383,0,0,0,0,0,0,0,0,0,2825,0,0,0,0,0,0,0,459222,459222,459222,459222,459222,459222,459222,459222,459222,459222,459222,459222,459222,459222,459222,459222,459222,459379,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1887,0,1889,1865,528,528,528,528,528,528,528,528,3516,528,528,3519,528,528,528,60866,4358144,4358144,483328,0,0,0,0,0,0,0,0,0,0,0,0,0,1243,0,0,1,24578,3,0,0,0,0,507904,0,0,0,507904,0,0,0,0,0,0,2398,0,0,0,0,0,0,0,0,0,49723,0,0,0,0,0,327680,0,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,507904,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,2084,0,0,0,4825088,0,0,0,0,0,0,0,0,3423,0,0,0,0,0,0,0,0,3460,0,0,0,0,0,3465,0,4268032,306,307,0,0,442368,0,0,0,0,0,0,0,0,0,0,1168,1167,0,0,0,0,0,0,0,229376,0,491520,524288,0,0,0,0,0,0,0,0,0,678,0,0,0,0,0,0,4358144,4358144,491520,0,0,0,0,0,0,0,0,0,0,0,0,0,1275,0,1277,1,24578,3,0,0,0,0,0,516096,0,0,0,516096,0,0,0,0,0,0,0,0,0,0,0,0,368,0,296,0,0,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,516567,1,24578,0,0,0,4366336,0,0,548864,0,0,302,303,0,0,0,0,2306,0,0,0,0,0,0,0,0,0,0,0,0,5627904,0,0,0,4268032,306,307,409600,0,0,0,0,0,0,0,0,0,0,0,0,368,0,308,0,0,0,5513216,5783552,0,40960,0,0,0,0,0,0,0,0,4358144,4358144,4358144,4358144,4358144,5193728,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4907008,0,5079040,6094848,1,24578,4227365,0,0,0,0,0,0,299,0,0,0,299,0,0,0,0,0,245760,0,245760,245760,0,0,0,245760,245760,0,0,0,0,0,0,245760,0,0,0,245760,0,0,245760,245760,245760,0,0,540672,0,0,540672,0,0,0,540672,0,0,0,0,0,0,0,540672,0,0,0,0,0,0,0,0,417792,0,0,0,417792,0,0,0,0,0,1,24578,4227365,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,2328,0,0,0,0,2332,0,0,0,0,0,0,0,1879,0,0,0,0,0,0,0,0,768,0,0,771,0,0,0,0,0,0,499712,0,0,0,0,0,0,0,0,0,0,0,0,0,1291,0,0,0,0,499712,0,0,0,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5111808,4358144,4358144,4358144,4358144,4358144,5283840,4358144,4358144,4358144,4358144,4358144,499712,0,0,0,0,0,0,0,0,0,0,0,0,0,1314,0,0,0,0,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,2355,0,0,0,0,0,0,0,0,0,0,0,1882,0,0,0,0,1,24578,3,155942,296,0,0,0,0,0,0,0,0,0,0,0,528,4087,528,4088,528,528,57893,528,57893,528,528,57893,528,528,57916,57893,528,528,57893,57893,57893,0,0,0,0,0,0,3821,0,0,0,0,57916,57893,57893,57893,57893,57893,57893,57893,57916,57916,57893,57893,57943,57893,57893,57893,0,0,0,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61529,57916,57916,57916,57943,57943,58773,914,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60631,0,0,2293,0,2294,0,0,0,0,0,0,0,0,0,0,0,664,0,0,0,0,3453,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,744,1825,0,0,0,0,0,0,0,0,0,0,0,2373,0,0,0,0,0,674,0,0,0,0,0,0,0,0,0,0,1182,0,0,0,0,0,0,0,1280,0,0,0,0,0,0,0,0,0,0,0,0,0,1788,0,0,528,57894,528,57894,528,528,57894,528,528,57917,57894,528,528,57894,57894,57894,57894,57944,57944,57894,57894,57894,57894,57944,57944,57894,528,57894,57894,57917,57894,57894,57894,57894,57894,57894,57894,57917,57917,57894,57894,57944,57894,57894,57894,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,1,24578,3,155943,296,0,0,0,0,0,0,0,0,0,0,0,740,661,0,0,528,0,573440,573440,573440,0,0,0,0,0,0,0,0,0,0,0,0,368,0,516096,0,0,0,5988352,0,0,6135808,6307840,0,5996544,4800512,0,6356992,3675,0,0,0,0,0,694,0,0,0,787,0,0,0,0,806,0,0,0,1,24578,3,0,0,4366336,0,0,0,0,0,637,303,0,0,0,0,2381,0,0,0,0,0,0,0,0,0,0,0,344064,0,0,0,0,4268032,640,307,0,0,0,0,0,0,0,0,0,0,0,0,0,1804,0,0,581632,0,0,0,581632,581632,581632,581632,581632,581632,581632,581632,581632,581632,581632,581632,581632,581632,581632,581632,0,581632,0,0,0,0,0,0,0,0,0,0,0,581632,0,581632,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,746,581632,581632,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,2397,0,0,0,0,0,0,0,0,0,0,0,1225,0,0,0,0,6258688,6447104,0,0,6127616,0,6348800,5906432,0,5537792,3827,4882432,0,0,0,0,0,0,2784,0,0,0,0,0,0,0,0,0,139264,147456,0,0,0,420,0,0,0,3926,0,0,0,0,0,0,5693440,0,6496256,5144576,5136384,0,5914624,0,0,5513216,5783552,0,3926,0,0,0,0,0,0,0,0,4358144,4358144,0,0,0,0,0,0,0,0,0,0,302,0,0,306,0,0,0,0,0,0,306,237983,147456,0,0,0,306,0,0,311,312,0,0,0,0,0,0,0,0,0,0,0,0,0,1819,0,0,312,0,311,311,312,0,0,0,0,0,0,0,0,0,0,0,311,409,312,0,458,472,472,472,485,485,485,485,485,485,485,485,485,506,485,485,485,485,485,524,485,485,485,524,485,485,485,485,485,485,529,57895,529,57895,529,529,57895,529,529,57918,57895,529,529,57895,57895,57895,57895,57945,57945,57895,57895,57895,57895,57945,57945,57895,529,57895,57895,57918,57895,57895,57895,57895,57895,57895,57895,57918,57918,57895,57895,57945,57895,57895,57895,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,306,307,0,0,0,0,0,645,0,0,648,649,0,0,0,0,0,736,0,0,0,0,0,0,0,0,0,745,368,368,0,0,704,0,0,0,0,0,0,0,711,0,0,0,0,0,750,0,0,0,0,645,0,0,0,0,0,0,0,6299648,0,0,0,0,0,0,0,0,0,777,0,0,781,0,0,0,0,0,0,0,789,0,0,0,0,0,0,2807,0,0,0,0,0,0,0,0,0,2310,0,0,0,0,0,0,793,0,0,0,0,0,0,0,797,0,0,0,0,0,0,0,0,557056,557056,0,0,0,0,0,0,0,833,793,0,0,0,0,0,837,838,0,0,0,0,793,528,528,0,57893,57893,57893,57893,57893,57893,155942,1151,0,0,1155,0,0,0,0,2295,0,1160,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1759,528,847,851,528,528,863,528,528,528,879,528,884,528,892,528,895,528,528,909,528,57893,57893,57893,58266,58270,57893,57893,58282,57893,57893,57893,58298,57893,58303,57893,58311,57893,58314,57893,57893,58328,57893,0,57916,57916,57916,58342,58346,57916,57916,58358,57916,57916,57916,58374,57916,58379,57916,58387,57916,58390,57916,57916,58404,57916,0,0,0,0,58303,57943,57943,57943,58417,58421,57943,57943,58433,57943,57943,528,528,528,57893,57893,57893,0,0,3655,0,3657,0,0,0,0,0,2356,0,2358,0,0,0,0,0,0,0,0,0,5693440,0,6496256,5144576,5136384,0,5914624,57943,58449,57943,58454,57943,58462,57943,58465,57943,57943,58479,57943,847,851,1141,895,1159,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,747,0,0,0,1320,0,0,0,0,0,0,0,0,0,0,0,0,368,302,0,0,528,528,528,1411,528,528,528,528,528,528,528,528,528,528,528,528,528,2470,528,528,0,0,1809,0,0,0,0,0,0,0,0,0,0,0,0,0,1842,0,0,1832,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1201,1885,0,0,1886,0,0,0,0,528,528,528,528,528,528,528,528,528,528,3225,528,528,528,1899,528,528,528,528,528,528,528,528,528,1912,528,528,528,0,0,57893,60609,57893,57893,57893,57893,57893,57893,57893,57893,57893,61085,57893,57893,57893,57893,57893,57893,528,528,528,528,58773,1985,57893,57893,57893,57893,57893,59336,57893,57893,57893,57893,57893,58822,57893,57893,57893,57893,58827,57893,57893,57893,57893,57893,58319,57893,57893,57893,57893,0,57916,57916,58341,57916,57916,57893,59342,57893,57893,57893,57893,57893,57893,57893,57893,57893,59355,57893,57893,57893,57893,57893,58859,57893,57893,57893,58866,57893,50676,58773,990,57916,57916,59442,57916,57916,57916,57916,57916,57916,57916,57916,57916,59455,57916,57916,57916,57916,57916,57916,60387,57916,57916,57916,57916,57916,57916,60394,57916,57916,57916,57916,57916,57916,59514,57916,57916,57916,57916,57916,57916,59520,57916,57916,57916,57916,57916,57943,61127,57943,57943,57943,61130,57943,57943,57943,57943,57943,57943,57943,60968,57943,57943,57943,57943,57943,57943,57943,57943,57943,60721,57943,57943,57943,57943,57943,57943,57943,57943,57943,59610,57943,57943,57943,57943,57943,57943,59616,57943,57943,57943,57943,57943,57943,57943,60982,60984,57943,57943,57943,57943,60988,57943,60990,0,0,2293,0,2294,0,0,0,0,0,0,0,0,0,2300,0,0,0,0,2806,0,0,0,0,0,2811,0,2813,2814,0,0,0,0,0,483328,0,0,0,0,0,0,0,0,0,0,801,0,0,0,0,0,0,2325,0,0,0,0,0,0,0,0,0,2334,0,0,0,0,0,0,2822,0,0,0,0,0,0,0,0,0,769,0,0,0,774,0,0,0,2407,0,0,0,0,0,0,0,0,0,0,0,0,0,0,702,528,2399,528,528,528,528,528,528,528,528,528,528,528,2429,528,528,2432,528,528,2475,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2471,528,57893,57893,59863,57893,57893,57893,57893,57893,57893,59871,57893,57893,57893,57893,57893,57893,0,0,57916,57916,57916,57916,57916,57916,57916,57916,60351,57916,57916,57916,57916,57916,57916,57893,59891,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60640,57916,57916,57916,59949,57916,57916,59952,57916,57916,57916,57916,57916,57916,59960,57916,57916,57893,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,0,0,0,0,57916,57916,60017,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,60417,57943,57943,57943,57943,57943,60032,57943,57943,60035,57943,57943,57943,57943,57943,57943,60043,57943,57943,528,528,528,57893,57893,57893,0,3654,0,0,0,0,0,0,0,1325,0,0,0,1329,0,0,0,0,57943,57943,60100,57943,57943,57943,57943,2760,528,528,528,528,60109,57893,57893,57893,0,0,0,0,57916,57916,57916,57916,57916,57916,57916,59945,57916,0,0,2781,0,0,0,0,0,0,0,0,0,0,0,0,0,1884,0,0,0,0,2794,0,0,0,0,0,2798,0,0,0,0,0,0,0,0,4784128,0,0,0,0,0,0,0,0,3181,0,0,0,0,0,3186,0,57893,60285,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60293,57893,57893,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,57943,57943,60461,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,4075,0,4076,57943,60472,57943,57943,57943,57943,57943,528,528,528,528,528,57893,57893,57893,57893,57893,0,0,0,0,0,0,0,3150,0,0,0,0,0,0,0,0,0,0,0,0,0,2299,0,0,0,3160,0,0,0,0,0,0,0,0,0,0,0,0,3173,0,0,0,0,2820,0,0,0,2824,0,0,0,0,0,0,0,703,0,0,0,0,0,0,0,0,2331,0,0,0,0,0,0,0,0,3189,0,0,0,0,0,0,0,0,0,0,0,0,3202,3203,0,0,3215,0,528,528,528,528,528,528,528,528,528,528,528,3226,528,528,3230,528,528,528,528,528,528,528,528,528,528,3239,528,528,0,0,0,0,0,0,57893,57893,60279,57893,57893,57893,57893,57893,58320,57893,57893,57893,57893,0,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,0,0,4289,0,528,60617,57893,57893,60621,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60630,57893,0,0,3137,3138,0,0,0,0,0,0,0,0,0,0,0,3199,0,0,0,0,57916,57916,57916,60666,57916,57916,60670,57916,57916,57916,57916,57916,57916,57916,57916,57916,58383,57916,57916,57916,57916,57916,57916,57916,60679,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60687,57916,0,0,0,0,57893,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,528,528,57893,57893,57893,57943,57943,57943,57943,60715,57943,57943,60719,57943,57943,57943,57943,57943,57943,57943,57943,57943,59582,57943,57943,57943,57943,57943,57943,57943,57943,60728,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60736,0,3430,0,0,0,0,0,0,0,0,0,0,0,0,0,0,729,0,528,3495,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2904,528,528,528,528,3512,528,3514,528,528,528,528,528,528,528,528,57893,57893,58259,57893,57893,57893,57893,57893,57893,58292,57893,57893,60879,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59389,57893,57893,57893,57893,60897,57893,60899,57893,57893,57893,57893,57893,57893,57893,57893,57893,59399,57893,57893,57893,57893,57893,57893,57916,60921,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,60963,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60457,57943,528,4015,528,528,528,528,528,528,528,528,528,528,528,57893,61372,57893,302,306,0,0,0,0,0,0,0,0,0,0,0,0,0,1199,0,0,61374,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,61388,57916,0,0,0,0,57893,57943,57943,57943,57943,57943,57943,57943,57943,57943,58442,61390,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,61404,57943,528,2281,528,528,528,57893,59630,57893,57893,57893,2290,0,2291,0,0,0,0,0,262144,0,0,0,0,0,0,0,0,0,0,663,0,0,666,667,0,61406,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,0,0,0,0,0,0,528,4077,0,0,0,0,0,0,0,4084,0,0,528,528,528,528,4089,0,0,4148,0,4150,528,528,528,528,528,528,528,528,528,528,528,528,1399,528,528,528,0,0,0,313,314,315,0,0,0,0,0,0,0,0,0,0,1240,0,0,0,0,0,0,0,427,0,131072,0,0,0,0,427,0,0,0,0,0,427,459,0,0,0,459,459,459,459,459,459,459,459,459,459,459,459,523,459,523,523,523,459,523,523,523,523,523,523,530,57896,530,57896,530,530,57896,530,530,57919,57896,530,530,57896,57896,57896,57896,57946,57946,57896,57896,57896,57896,57946,57946,57896,621,57896,57973,57919,57896,57896,57896,57896,57896,57896,57896,57919,57919,57896,57896,57946,57896,57896,57896,57973,57973,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,0,2830,0,0,0,0,0,0,0,0,0,0,0,680,681,0,0,0,57893,57893,58307,57893,57893,57893,57893,57893,57893,57893,0,57916,57916,57916,57916,57916,57916,57916,60350,57916,57916,57916,57916,57916,57916,57916,60915,57916,57916,57916,57916,57916,57916,57916,57916,58942,57916,57916,57916,57916,57916,57916,57916,57916,60389,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,58458,57943,57943,57943,57943,57943,57943,57943,528,528,528,528,528,57893,57893,57893,57893,528,528,1965,528,528,528,528,528,528,1972,528,528,528,528,528,528,528,3501,528,3503,528,528,528,528,528,528,1360,528,528,528,528,528,528,528,528,528,2887,528,2889,528,528,528,528,57893,59408,57893,57893,57893,57893,57893,57893,59416,57893,57893,57893,57893,57893,57893,57893,58823,57893,57893,57893,57893,57893,57893,57893,57893,58840,57893,57893,57893,57893,57893,57893,57893,59508,57916,57916,57916,57916,57916,57916,59516,57916,57916,57916,57916,57916,57916,57916,57916,58909,57916,57916,57916,58912,57916,57916,57916,57893,57893,57893,60286,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58814,57893,57893,57893,60408,57916,57916,57916,57943,57943,57943,57943,57943,57943,60414,57943,57943,57943,57943,60418,57943,57943,57943,60473,57943,57943,57943,528,528,528,528,528,57893,57893,57893,57893,57893,0,0,0,0,2292,528,528,528,4093,528,4095,528,528,4097,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61077,57893,57893,57893,57893,61450,57893,61452,57893,57893,61454,57893,57893,57916,57916,57916,57916,57916,57916,58879,57916,57916,57916,57916,57916,58891,57916,57916,57916,57916,57916,61464,57916,61466,57916,57916,61468,57916,57916,57943,57943,57943,57943,57943,57943,60956,57943,57943,57943,57943,57943,60960,57943,57943,57943,57943,61478,57943,61480,57943,57943,61482,57943,57943,0,0,0,0,0,0,0,1766,0,0,1769,0,0,0,0,0,320,320,428,429,131072,436,429,437,439,428,436,437,0,316,437,455,460,473,473,473,486,486,486,486,486,486,486,486,486,486,508,508,521,521,522,522,508,522,522,522,508,522,522,522,522,522,522,531,57897,531,57897,531,531,57897,531,531,57920,57897,531,531,57897,57897,57897,57897,57947,57947,57897,57897,57897,57897,57947,57947,57897,622,57972,57972,57920,57897,57897,57897,57897,57897,57897,57897,57920,57920,57897,57897,57947,57897,57897,57897,57972,57972,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,0,3151,0,0,0,0,0,3155,0,0,0,0,0,0,814,0,0,0,0,0,0,819,0,0,0,686,0,0,0,0,0,0,0,0,0,0,0,0,0,368,0,0,0,368,368,702,0,0,0,0,0,0,0,0,0,0,0,0,0,2315,0,0,0,0,0,734,0,0,0,0,0,0,0,0,0,0,0,0,368,303,0,0,0,823,0,0,0,0,0,0,0,0,0,0,0,0,0,0,775,0,0,1174,0,0,0,0,0,0,0,0,0,0,0,0,0,0,804,0,0,0,0,1216,1174,0,0,0,0,0,0,0,0,0,0,0,0,0,2336,0,0,0,0,0,1281,0,0,0,0,0,0,0,0,0,0,0,0,368,342,296,0,0,0,1295,0,0,0,0,0,0,0,0,0,0,0,0,0,2363,0,0,1307,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1229,58773,914,57893,57893,58777,57893,57893,58781,57893,57893,57893,57893,57893,57893,57893,57893,58808,57893,57893,57893,57893,57893,57893,57893,58795,57893,58800,57893,57893,58804,57893,57893,58807,57893,57893,57893,57893,57893,57893,57893,58838,57893,57893,57893,57893,57893,57893,57893,57893,58841,57893,57893,57893,57893,57893,57893,57893,58872,57916,57916,58876,57916,57916,57916,57916,57916,57916,57916,57916,58890,57916,58895,57916,0,0,0,0,57893,57943,57943,57943,57943,57943,57943,58428,57943,57943,58444,57916,58899,57916,57916,58902,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59985,57916,57916,57916,1860,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1245,528,528,528,528,1902,528,528,528,528,528,528,528,528,528,1914,528,528,0,57893,57893,57893,57893,57893,57893,155942,1151,0,0,1156,0,0,0,0,327,327,377,0,0,0,0,0,0,0,0,0,1210,0,368,368,0,1213,0,1929,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,896,57893,57893,57893,59345,57893,57893,57893,57893,57893,57893,57893,57893,57893,59357,57893,57893,1,24578,3,155942,156282,296,0,0,0,0,0,302,303,0,57916,57916,59445,57916,57916,57916,57916,57916,57916,57916,57916,57916,59457,57916,57916,57916,57916,57916,59967,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,61474,57943,59541,57943,57943,57943,57943,57943,57943,57943,57943,57943,59553,57943,57943,57943,57943,57943,57943,57943,61152,57943,57943,57943,57943,57943,57943,57943,528,528,528,2763,2764,57893,57893,57893,60112,57943,57943,57943,59591,59592,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59601,57943,57943,57943,57893,59917,59918,59919,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58848,57893,57893,58852,57916,59989,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60002,57943,60072,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60085,57893,57893,60325,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58849,57893,57893,0,0,0,3216,528,528,528,528,528,528,528,528,528,528,528,528,528,2484,528,528,528,528,528,3243,528,528,528,528,528,528,528,528,528,528,528,528,528,2891,528,528,57893,57893,57893,57893,60634,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,0,2999,0,0,0,61125,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60962,528,528,4092,528,528,528,528,528,528,528,57893,61444,57893,61445,57893,57893,57893,2589,0,0,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,61106,57916,57916,57916,57916,57916,57916,57916,57916,59954,57916,57916,59958,57916,57916,57916,59962,57893,61449,57893,57893,57893,57893,57893,57893,57893,57893,57916,61458,57916,61459,57916,57916,57893,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59540,57916,61463,57916,57916,57916,57916,57916,57916,57916,57916,57943,61472,57943,61473,57943,57943,528,528,1715,528,528,1718,57893,57893,59064,57893,57893,59067,1151,0,57943,61477,57943,57943,57943,57943,57943,57943,57943,57943,0,0,0,0,0,0,0,1814,0,0,0,0,0,0,0,0,528,1338,528,528,528,528,528,528,528,528,4291,57893,57893,57893,61637,57916,57916,57916,61639,57943,57943,57943,61641,0,0,0,0,3178,0,0,0,0,0,0,0,0,0,0,0,1312,0,0,0,0,326,327,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1186,0,0,0,377,0,131072,0,0,0,440,377,0,0,445,451,0,377,461,474,474,474,487,487,487,487,487,487,487,487,487,487,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,532,57898,532,57898,532,532,57898,532,532,57921,57898,532,532,57898,57898,57898,57898,57948,57948,57898,57898,57898,57898,57948,57948,57898,532,57898,57898,57921,57898,57898,57898,57898,57898,57898,57898,57921,57921,57898,57898,57948,57898,57898,57898,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,1188,0,1190,1191,0,0,0,1193,1194,0,0,0,0,0,0,0,0,4997120,0,0,5038080,0,0,0,5095424,5103616,0,0,1232,1233,0,0,0,0,0,0,0,0,0,0,0,0,370,0,0,0,1263,1265,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1200,0,1317,0,0,0,0,0,0,0,0,0,1303,0,0,0,1331,1193,528,528,1390,528,528,1392,528,528,528,528,1397,528,528,528,528,528,528,3500,528,528,528,528,528,528,528,528,528,528,61443,57893,57893,57893,57893,57893,58773,914,57893,57893,58778,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,2588,2999,0,0,0,58831,57893,57893,57893,57893,58836,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58811,58813,57893,57893,57893,57893,58873,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60380,57916,58900,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58928,57916,57916,58915,57916,57916,57916,57916,57916,57916,57916,58924,57916,57916,58926,57916,57916,57916,57916,57916,59980,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61530,57916,57916,57943,57943,57916,58931,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58950,57916,57916,57916,58956,57916,57916,57916,57916,0,58831,57943,57943,58967,57943,57943,57943,57943,57943,57943,60464,57943,57943,57943,57943,57943,57943,57943,57943,60470,57943,57943,57943,57943,59018,57943,57943,59020,57943,57943,57943,57943,59026,57943,57943,57943,528,528,57893,57893,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2778,1963,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,901,0,0,2293,0,2294,0,0,0,0,0,2297,0,0,0,0,0,0,316,317,318,319,320,321,322,323,324,325,57893,59862,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60650,57893,59878,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58816,57893,59947,57916,57916,57916,57916,59951,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,61475,60015,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,61133,57943,60030,57943,57943,57943,57943,60034,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60723,57943,57943,57943,60098,57943,57943,57943,57943,57943,57943,528,528,528,528,528,57893,57893,57893,57893,57893,0,0,0,1729,0,0,0,0,2844,0,0,0,0,0,2849,0,0,0,0,0,0,0,1852,0,0,0,0,0,0,0,1859,0,57916,57916,57916,60347,57916,60348,57916,57916,57916,57916,57916,57916,57916,57916,57916,58385,57916,57916,57916,57916,58403,57916,0,0,3205,0,0,0,0,0,0,0,0,0,0,0,0,0,2374,0,0,528,528,528,528,3253,528,528,528,528,528,528,528,528,528,528,528,528,1926,528,528,528,57916,60688,57916,57916,57916,57916,57916,57916,57916,60694,57916,57916,57916,57916,57916,57916,58906,58908,57916,57916,57916,57916,57916,57916,57916,57916,59451,57916,57916,57916,57916,57916,57916,57916,57916,59498,57916,57916,57916,57916,57916,57916,57916,57916,60672,57916,57916,57916,57916,57916,57916,57916,57943,57943,60737,57943,57943,57943,57943,57943,57943,57943,60743,57943,57943,57943,57943,57943,57943,57943,61339,57943,57943,57943,528,57893,0,0,0,0,0,0,3671,0,0,0,0,0,0,0,0,0,0,0,0,665,0,0,668,57916,61126,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60961,57943,57916,57916,57916,61239,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60959,57943,57943,57943,57943,61258,57943,57943,528,528,57893,57893,0,0,0,0,0,0,0,0,0,0,0,0,2776,2777,0,528,528,528,528,4018,528,528,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,58280,57893,57893,57893,57893,57893,57893,57893,57893,61377,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,61223,57916,57916,57916,57916,57916,57916,61393,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,60025,57943,57943,57943,57943,57943,57943,57943,61409,57943,57943,57943,57943,57943,57943,57943,57943,57943,0,0,0,4241,0,4243,528,528,528,528,528,4094,528,528,528,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59372,57893,57893,57893,61451,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61318,57916,57916,57916,61465,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,61244,57943,57943,57943,57943,57943,57943,61479,57943,57943,57943,57943,57943,57943,0,0,0,0,0,0,0,1865,1866,0,0,0,1869,0,0,0,0,0,328,329,330,331,0,0,0,0,0,0,0,0,0,0,1855,1856,0,1857,1858,0,0,376,0,0,0,0,0,328,376,331,375,0,0,0,0,0,0,363,0,0,0,0,0,0,0,0,0,139264,147456,0,0,450560,0,0,0,331,0,0,0,0,0,0,376,0,0,0,0,0,0,0,0,5210112,0,5365760,0,5554176,5570560,5578752,0,462,475,475,475,488,488,488,488,499,501,488,488,499,488,510,510,510,510,510,525,510,510,510,525,510,510,510,510,510,510,533,57899,533,57899,533,533,57899,533,533,57922,57899,533,533,57899,57899,57899,57899,57949,57949,57899,57899,57899,57899,57949,57949,57899,533,57899,57899,57922,57899,57899,57899,57899,57899,57899,57899,57922,57922,57899,57899,57949,57899,57899,57899,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,670,671,0,0,0,0,0,0,0,0,0,0,0,683,684,685,0,0,0,689,0,0,0,0,0,0,0,0,0,0,368,368,0,0,0,0,0,0,707,708,0,0,0,0,0,714,0,0,0,718,0,720,0,0,0,0,0,0,727,0,0,0,0,0,1163,0,0,0,0,0,0,0,0,0,0,6152192,0,0,0,6316032,0,731,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1292,778,779,0,0,0,0,0,0,0,0,788,0,790,0,0,0,0,0,1201,0,0,0,0,0,0,0,0,0,0,3675,0,0,0,3830,0,822,0,0,0,0,0,822,822,825,0,0,0,790,0,0,0,0,0,1235,0,1237,0,0,0,0,1242,0,0,0,0,0,1268,0,0,0,0,0,0,0,0,0,0,3675,0,0,3829,0,0,0,0,834,0,0,0,0,0,0,0,788,0,0,0,834,528,528,0,57893,57893,57893,57893,57893,57893,155942,1151,0,302,0,0,306,1,24578,3,0,0,4366336,0,0,0,0,0,65536,303,0,528,848,528,854,528,528,869,528,528,880,528,885,528,528,894,897,902,528,910,528,57893,57893,57893,58267,57893,58273,57893,57893,58288,57893,57893,58299,57893,58304,57893,57893,58313,58316,58321,57893,58329,57893,0,57916,57916,57916,58343,57916,0,0,0,0,57893,57943,57943,57943,57943,57943,57943,58430,57943,57943,57943,57943,57943,59547,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61417,57943,0,0,0,58349,57916,57916,58364,57916,57916,58375,57916,58380,57916,57916,58389,58392,58397,57916,58405,57916,0,0,0,0,58304,57943,57943,57943,58418,57943,58424,57943,57943,58439,57943,1906,528,528,528,528,59349,57893,57893,57893,57893,0,0,0,0,0,3140,0,0,3143,3144,0,0,3147,3148,0,57943,58450,57943,58455,57943,57943,58464,58467,58472,57943,58480,57943,848,528,528,1142,902,528,0,57893,58267,57893,58492,58321,57893,155942,1151,0,0,0,0,0,0,364,365,366,367,0,0,368,0,296,0,0,0,0,1176,0,0,0,0,0,0,0,1183,0,0,0,0,0,0,3165,0,0,0,0,0,0,0,0,0,139264,147456,0,0,0,421,0,0,1203,1204,0,0,0,0,1208,0,0,0,368,368,0,0,0,0,0,0,0,0,0,0,0,0,713,0,0,1231,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1244,0,0,0,1248,0,0,1200,0,0,0,0,0,749,0,0,0,0,0,0,0,0,0,0,0,726,0,0,0,0,528,1347,528,528,528,528,528,528,1362,528,528,528,1367,528,528,528,528,528,2464,528,528,528,528,528,528,528,528,528,528,528,1910,528,528,528,528,58773,914,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58786,57893,57893,57893,0,0,0,0,57916,57916,57916,57916,57916,57916,59944,57916,57916,57893,57893,57893,58801,57893,57893,57893,58806,57893,57893,57893,57893,57893,57893,57893,57893,58809,57893,57893,57893,57893,57893,57893,57893,57893,57893,58854,57893,57893,57893,57893,57893,57893,58865,57893,50676,58773,990,57916,57916,57893,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59537,57943,57943,528,1351,528,1408,528,528,58790,57893,57893,58847,57893,57893,1151,0,57916,57916,57916,58901,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58391,57916,57916,57916,57916,57916,57916,58918,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58396,57916,57916,57916,57916,57916,57916,58933,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58949,57916,0,0,0,0,57893,57943,57943,57943,57943,57943,57943,58431,57943,57943,57943,57943,57943,60063,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60428,57943,60430,57943,57943,57943,57943,58975,57943,57943,57943,57943,57943,57943,58990,57943,57943,57943,58995,57943,2280,528,2282,528,528,59629,57893,59631,57893,57893,0,0,0,0,0,0,1298,0,0,0,0,1303,0,0,0,0,59055,57943,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,1151,1724,0,1760,0,0,1763,1764,1765,0,1767,1768,0,0,0,0,1773,0,0,0,0,3192,0,0,0,0,3197,0,0,0,0,0,0,0,2368,2369,0,0,0,0,0,0,0,692,0,0,0,0,0,0,699,368,1807,0,0,0,0,0,0,0,0,1816,1817,0,0,0,0,0,0,373,0,0,0,0,0,0,0,0,0,139264,147456,0,0,352256,0,0,0,1823,0,0,1825,0,0,0,0,0,0,0,0,1829,1830,1831,0,1870,0,0,0,1888,1740,1740,1890,528,1892,528,1893,1894,528,1896,528,528,528,1900,528,528,528,528,528,528,528,528,528,1913,528,528,0,0,0,0,0,0,57893,60278,57893,57893,57893,57893,57893,57893,0,2592,57916,57916,57916,57916,57916,57916,57916,57916,59969,57916,57916,57916,57916,57916,57916,59974,57916,528,528,1917,528,528,528,528,1921,528,1923,528,528,528,528,528,528,1393,528,1395,528,528,528,528,528,528,528,872,528,528,528,528,528,528,528,528,528,3710,528,528,528,528,528,528,528,528,528,528,1933,1934,1936,528,528,528,528,528,528,528,1944,1945,528,1947,528,528,1950,1951,528,528,528,528,528,528,528,1959,528,1961,528,1964,528,528,528,528,528,1971,528,528,1973,528,528,528,528,528,528,3855,528,528,528,528,528,57893,57893,57893,57893,57893,57893,58279,57893,57893,57893,57893,57893,528,528,528,528,58773,0,59332,57893,59334,57893,59335,57893,59337,57893,59339,57893,302,306,0,0,0,0,3141,0,0,0,3145,0,0,0,0,0,0,2832,0,0,0,0,0,0,0,0,0,2835,0,0,0,0,0,0,57893,57893,59343,57893,57893,57893,57893,57893,57893,57893,57893,57893,59356,57893,57893,57893,0,0,0,0,57916,57916,57916,57916,59942,57916,57916,57916,57916,57916,59515,57916,57916,59517,57916,57916,57916,57916,57916,57916,57916,0,57893,57943,57943,58966,57943,57943,58970,57943,57893,59360,57893,57893,57893,57893,59364,57893,59366,57893,57893,57893,57893,57893,57893,57893,58839,57893,57893,58846,57893,57893,57893,57893,57893,57893,57893,57893,59376,59377,59379,57893,57893,57893,57893,57893,57893,57893,59387,59388,57893,2770,2291,0,2771,2294,0,0,0,0,0,0,0,0,0,0,770,0,0,0,0,0,59390,57893,57893,59393,59394,57893,57893,57893,57893,57893,57893,57893,59402,57893,59404,57893,2770,2291,0,2771,2294,0,0,0,0,0,0,2775,0,0,0,0,0,784,0,0,679,0,0,0,0,0,0,0,660,661,0,0,0,0,0,0,0,384,0,139264,147456,0,406,0,0,406,59407,57893,57893,57893,57893,57893,59415,57893,57893,59417,57893,57893,57893,57893,57893,57893,0,0,57916,57916,57916,57916,60660,57916,57916,57916,57916,59443,57916,57916,57916,57916,57916,57916,57916,57916,57916,59456,57916,57916,57916,57916,57916,58878,57916,57916,57916,58882,57916,57916,58893,57916,57916,58897,59460,57916,57916,57916,57916,59464,57916,59466,57916,57916,57916,57916,57916,57916,57916,57916,59467,59468,57916,57916,57916,57916,57916,57916,57916,57916,59476,59477,59479,57916,57916,57916,57916,57916,57916,57916,59487,59488,57916,59490,57916,57916,59493,59494,57916,57916,57916,57916,57916,57916,57916,59502,57916,59504,57916,59507,57943,57943,57943,59560,57943,59562,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60987,57943,57943,57943,59572,59573,59575,57943,57943,57943,57943,57943,57943,57943,59583,59584,57943,57943,59586,57943,57943,57943,57943,57943,60731,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60081,57943,57943,57943,57943,57943,59589,59590,57943,57943,57943,57943,57943,57943,57943,59598,57943,59600,57943,59603,57943,57943,57943,57943,57943,60739,57943,57943,57943,60742,57943,60744,57943,57943,57943,57943,57943,57943,60740,57943,57943,57943,57943,57943,57943,57943,57943,57943,59023,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59611,57943,57943,59613,57943,57943,57943,57943,57943,57943,57943,57943,57943,60039,57943,57943,57943,57943,57943,57943,0,0,2293,0,2294,0,0,0,0,0,0,0,0,0,0,2301,0,0,2304,2305,0,0,0,2309,0,0,0,0,0,0,0,0,0,6406144,5357568,0,5505024,0,0,0,0,2352,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1276,0,1825,0,2365,0,0,0,0,0,0,0,0,2372,0,0,2375,0,0,0,0,3217,528,528,528,528,528,528,528,528,528,528,528,528,2929,528,528,528,0,2378,0,0,0,0,0,0,2385,0,2387,0,0,0,0,0,0,403,0,0,0,0,0,0,0,0,332,333,0,0,0,0,0,0,0,0,334,335,336,0,0,0,0,0,0,0,0,2396,0,0,0,0,0,0,0,0,0,0,0,0,697,698,0,368,2406,0,0,0,0,0,0,0,0,0,0,0,0,0,2417,0,0,0,0,3433,0,0,0,0,0,0,0,0,0,0,0,786,0,0,0,528,2433,528,2435,528,528,528,528,528,528,2443,528,2445,528,528,528,528,528,1414,528,528,528,528,528,528,528,528,528,528,1956,528,528,528,528,528,528,528,528,2451,528,528,528,528,528,528,528,528,528,528,528,528,528,2902,528,528,2473,528,528,528,528,528,528,2480,528,528,528,528,528,528,528,528,1906,528,528,528,528,528,528,528,57893,57893,57893,59864,57893,59866,57893,57893,57893,57893,57893,57893,59874,57893,59876,57893,2770,2291,0,2771,2294,0,0,2773,0,0,0,0,0,0,0,0,2359296,418,418,0,0,0,0,0,57893,57893,59904,59905,57893,57893,57893,57893,57893,57893,59912,57893,57893,57893,57893,57893,57893,60885,57893,60887,57893,57893,57893,57893,57893,57893,57893,59397,57893,57893,59400,57893,57893,57893,57893,57893,59930,59931,57893,0,0,0,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,58910,57916,57916,57916,57916,57916,57916,59963,57916,59965,57916,57916,57916,57916,57916,57916,57916,59971,57916,57916,57916,57916,57916,57916,60914,57916,57916,57916,57916,57916,60918,57916,57916,57916,57916,60016,57916,57916,60019,60020,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,0,4239,0,0,0,0,528,60046,57943,60048,57943,57943,57943,57943,57943,57943,57943,60054,57943,57943,57943,57943,57943,57943,58979,58986,57943,57943,57943,57943,57943,57943,57943,57943,57943,60079,57943,57943,57943,57943,57943,57943,57943,60099,57943,57943,60102,60103,57943,2435,528,2762,528,528,59866,57893,60111,57893,57893,57893,57893,57893,61083,57893,57893,57893,57893,57893,57893,57893,57893,61089,57893,57893,57893,57893,57893,61219,57893,57893,57893,57916,57916,57916,57916,57916,57916,57916,1272,57893,57943,57943,57943,57943,57943,57943,57943,528,3132,528,528,528,57893,60479,57893,57893,0,0,2829,0,0,0,0,2833,0,0,0,0,0,0,0,0,312,311,0,0,0,311,311,312,2905,528,528,528,528,2909,528,528,528,2914,528,528,528,528,528,528,1920,528,528,528,528,528,528,528,528,528,1908,528,528,528,528,528,528,528,528,2922,528,528,528,528,528,528,528,2927,528,528,528,528,528,528,3940,528,528,528,528,528,528,3946,528,528,60284,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59406,60296,57893,60298,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59403,57893,57893,57893,60324,57893,57893,57893,57893,57893,57893,57893,57893,60332,57893,57893,57893,57893,57893,57893,61096,57893,57893,57893,57893,57916,57916,57916,57916,57916,57916,60703,57916,57916,57943,57943,57943,57943,57943,57943,57943,58466,57943,57943,57943,57943,528,528,528,896,57893,57893,57893,60338,57893,57893,57893,57893,57893,57893,57893,0,2999,0,0,0,0,0,1323,0,0,0,0,0,0,0,0,0,0,2836,2837,0,0,0,0,57916,60382,57916,57916,57916,57916,60386,57916,57916,57916,60391,57916,57916,57916,57916,57916,57916,60926,57916,57916,57916,57916,57916,57916,57916,57916,57916,59956,57916,57916,57916,57916,57916,57916,57916,57916,57916,60399,57916,57916,57916,57916,57916,57916,57916,57916,60405,57916,57916,57916,57916,57916,59992,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58925,57916,57916,57916,57916,57916,57943,57943,57943,57943,60447,57943,57943,57943,57943,60451,57943,57943,57943,60456,57943,57943,528,1352,528,528,1717,528,58791,57893,57893,57893,59066,57893,1151,0,0,0,3177,0,0,0,0,0,0,0,0,0,0,0,0,0,2390,0,0,528,528,528,528,3232,528,528,528,528,528,528,528,528,528,528,528,528,1941,528,528,528,528,528,3251,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2892,528,57893,57893,57893,57893,60643,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,50676,58773,990,57916,57916,3442,3443,0,3444,0,3446,0,0,0,0,3448,0,0,0,0,0,0,737,0,0,0,0,0,0,0,0,0,2360,0,0,0,0,0,2364,3467,0,0,0,0,3472,3473,0,3475,0,0,3478,0,0,0,3481,528,528,528,528,3498,528,528,528,528,528,3504,528,528,528,528,528,528,4020,528,4022,4023,528,4025,528,57893,57893,57893,57893,57893,57893,60882,57893,57893,57893,57893,57893,60888,57893,57893,60891,57893,57893,57893,0,0,0,0,57916,57916,57916,59941,57916,59943,57916,57916,57916,57916,57916,60006,60007,60008,57916,57916,57916,57916,57916,57916,57916,57916,58943,57916,57916,58947,57916,57916,57916,57916,57916,57916,57916,57916,60924,57916,57916,57916,57916,57916,60930,57916,57916,60933,57916,57916,57893,57943,57943,57943,57943,57943,59532,57943,57943,57943,57943,57943,59538,57943,60991,57943,528,528,3650,57893,57893,60997,0,0,0,0,0,0,3659,0,0,0,0,3445,0,0,0,0,0,0,0,0,0,0,0,2812,0,0,2815,0,0,3662,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1306,0,3669,0,0,0,0,0,0,0,0,0,0,0,0,3676,0,3678,528,528,528,528,3705,528,528,528,528,528,528,528,528,528,528,528,528,2458,528,528,528,528,528,3715,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2903,528,528,57893,57893,57893,61071,57893,57893,57893,57893,57893,57893,57893,61076,57893,57893,57893,0,0,0,0,57916,57916,59940,57916,57916,57916,57916,57916,57916,59981,57916,57916,57916,57916,57916,57916,57916,57916,57916,59453,57916,57916,57916,57916,57916,57916,57893,57893,57893,57893,61095,57893,57893,57893,57893,57893,57893,57916,57916,57916,61100,57916,0,0,0,0,57893,57943,57943,57943,57943,57943,57943,58432,57943,57943,57943,57943,57943,60075,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59048,57943,57943,57943,57943,61134,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61145,3832,0,0,3835,0,0,0,0,0,0,0,0,0,0,0,0,772,0,0,0,57916,57916,61238,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61142,57943,57943,57943,3924,0,3675,0,0,0,0,0,3932,0,0,0,0,0,0,0,312,0,0,0,0,0,311,0,311,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,61301,57893,57893,57893,57893,57893,59363,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60315,57893,57893,57893,57893,60319,57893,57893,57943,61333,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,57893,0,0,0,0,0,1736,0,0,0,0,0,0,0,0,0,0,2334720,0,2334720,0,0,0,0,0,0,4079,0,0,0,0,0,0,0,528,528,528,528,528,528,528,4157,528,4159,528,528,4091,528,528,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,61448,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,57916,57916,57916,57916,61317,57916,61462,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,60028,57943,61476,57943,57943,57943,57943,57943,57943,57943,57943,57943,4141,4142,0,0,0,4145,528,528,61507,61508,61509,57893,57893,57893,61512,57893,61514,57893,57893,57893,57893,61519,61520,61521,61522,57916,57916,57916,61525,57916,61527,57916,57916,57916,57916,61532,61533,61534,61535,57943,57943,57943,61538,57943,61540,57943,57943,57943,57943,61545,0,0,0,0,0,0,3194,0,0,0,3198,0,3200,0,0,0,528,4245,528,528,528,4249,57893,57893,61595,57893,57893,57893,61599,57893,57916,57916,57893,57943,59529,57943,57943,57943,57943,57943,57943,57943,59536,57943,57943,57943,57943,57943,59040,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,3412,528,57893,60759,57893,61601,57916,57916,57916,61605,57916,57943,57943,61607,57943,57943,57943,61611,57943,0,0,0,0,0,2342912,0,0,0,0,0,0,0,0,0,4358144,4359058,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6275072,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,0,413,0,0,0,0,0,0,413,139264,147456,0,0,0,422,0,0,0,0,3456,0,0,0,0,0,0,0,0,0,0,0,749,0,0,0,0,372,372,0,430,131072,372,430,430,0,333,372,430,0,0,430,456,430,0,0,0,430,495,495,495,500,495,495,495,500,495,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,534,57900,534,57900,534,534,57900,534,534,57923,57900,534,534,57900,57900,57900,57900,57950,57950,57900,57900,57900,57900,57950,57950,57900,534,57900,57900,57923,57900,57900,57900,57900,57900,57900,57900,57923,57923,57900,57900,57950,57900,57900,57900,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,841,528,528,528,528,528,528,873,528,528,528,528,528,528,528,528,1939,528,528,528,528,528,528,528,0,0,1175,0,0,0,0,0,0,0,0,0,0,0,0,0,2416,0,0,0,0,0,1296,0,1175,0,0,0,0,0,0,0,0,0,0,2371,0,0,0,0,0,58773,914,57893,57893,57893,57893,57893,57893,57893,57893,58784,57893,57893,57893,57893,57893,57893,61210,57893,57893,57893,57893,57893,57893,57893,57893,57893,60626,57893,57893,60629,57893,57893,57893,58796,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59424,57943,58973,57943,57943,57943,57943,57943,58985,57943,57943,57943,57943,57943,57943,57943,57943,57943,60053,57943,57943,57943,57943,57943,57943,0,1873,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1743,1744,57943,60460,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60726,57943,61135,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61257,528,528,528,61636,57893,57893,57893,61638,57916,57916,57916,61640,57943,57943,57943,0,0,0,0,3471,0,0,0,0,0,0,0,0,0,0,0,1868,0,0,0,0,0,0,0,431,131072,0,431,431,0,0,0,431,446,0,431,0,0,0,0,3663,0,0,0,0,0,0,0,0,0,0,0,1289,0,0,0,0,431,476,476,476,489,489,489,489,489,489,489,489,489,489,489,489,489,489,489,489,535,57901,535,57901,535,535,57901,535,535,57924,57901,535,535,57901,57901,57901,57901,57951,57951,57901,57901,57901,57901,57951,57951,57901,535,57901,57901,57924,57901,57901,57901,57901,57901,57901,57901,57924,57924,57901,57901,57951,57901,57901,57901,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,528,528,528,528,58773,1986,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59353,57893,57893,57893,57893,57893,0,0,0,2327,0,0,0,0,0,0,0,0,0,0,0,0,773,0,0,776,2351,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1774,57893,57893,59892,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59900,57893,57893,0,0,0,2805,0,0,0,0,0,0,0,0,0,0,0,0,800,0,0,528,3175,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1790,0,0,3431,0,0,0,0,0,3437,0,0,0,0,0,0,0,331,0,139264,147456,0,0,0,0,0,3482,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,1372,57893,57893,57893,57893,60883,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60893,60908,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60396,60935,57916,57916,57916,57916,57916,57916,57916,57916,57916,60944,57916,57916,60947,57916,57916,57893,59528,57943,59530,57943,59531,57943,59533,57943,59535,57943,57943,57943,59539,57916,60950,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59012,57943,57943,60977,57943,57943,57943,57943,57943,57943,57943,57943,57943,60986,57943,57943,60989,57943,57943,57943,57943,57943,60966,57943,57943,57943,57943,57943,60972,57943,57943,60975,57943,57943,57943,57943,57943,60750,57943,57943,57943,57943,528,528,528,57893,57893,57893,0,0,0,0,0,0,0,3660,528,528,528,528,3716,528,3718,528,528,528,528,528,528,528,528,528,528,3491,528,528,528,528,528,528,57893,57893,61070,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59385,57893,57893,57893,57893,57893,57893,57893,61082,57893,57893,57893,57893,57893,57893,57893,57893,61088,57893,61090,57943,61146,57943,61148,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,57893,0,0,0,528,528,528,528,3854,528,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,58277,57893,57893,58293,57893,57893,61216,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61229,57916,57916,57916,57916,57916,57916,57916,57916,57916,61235,57916,57916,57916,57916,57916,61467,57916,57916,61469,57916,57943,57943,57943,57943,57943,57943,57943,60449,57943,57943,60453,57943,57943,57943,57943,57943,61248,57943,57943,57943,57943,57943,57943,57943,57943,57943,61254,57943,57943,57943,57943,57943,57943,58980,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60734,57943,57943,57943,57943,57943,57916,61625,61626,57916,57916,57943,57943,61629,61630,57943,57943,0,0,0,0,528,528,528,528,4275,528,57893,57893,57893,57893,61623,57893,57916,0,761,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1789,0,761,0,0,0,0,0,761,761,0,0,828,0,0,0,0,0,0,738,0,644,738,0,742,743,644,0,0,528,528,852,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2919,528,528,528,528,911,57893,57893,57893,57893,58271,57893,57893,57893,57893,57893,57893,57893,58862,57893,57893,57893,50676,58773,990,57916,58871,58406,0,0,0,0,57893,57943,57943,57943,57943,58422,57943,57943,57943,57943,57943,57943,58981,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60985,57943,57943,57943,57943,57943,528,911,0,58271,57893,57893,57893,57893,58330,155942,1151,0,0,0,0,0,0,751,0,0,0,0,0,0,0,0,0,139264,147456,0,0,319,0,0,0,1279,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2337,0,57943,59035,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59028,57943,528,528,528,1983,58773,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59418,57893,57893,57893,57893,57893,57893,57893,59427,50676,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60377,57916,57916,57916,57916,59527,57893,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60746,57943,59623,528,528,528,528,528,57893,57893,57893,57893,57893,0,0,0,0,0,0,0,3142,0,0,0,0,0,0,0,752,0,0,0,0,0,0,758,0,59861,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59889,57916,57916,57916,57916,59950,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60675,57916,57916,60678,57943,57943,57943,57943,60033,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60042,57943,57943,57943,3812,528,57893,61158,57893,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,386,57916,57916,57916,57916,61240,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61255,57943,57943,57943,57943,61259,57943,528,528,57893,57893,0,0,0,0,0,0,0,0,0,0,0,3146,0,0,0,0,0,334,0,0,0,0,0,0,0,0,0,0,0,334,385,387,0,0,0,0,0,0,0,0,0,0,0,0,0,402,0,0,0,0,3672,0,0,0,0,0,0,0,0,0,0,0,1786,0,0,0,0,334,0,0,0,0,0,0,0,0,0,0,0,0,334,0,0,139264,147456,0,0,0,0,0,425,425,0,0,131072,425,0,0,0,0,425,0,447,0,0,425,335,477,477,477,490,490,490,490,490,490,490,490,490,490,511,519,519,519,519,519,526,519,519,519,526,519,519,519,519,519,519,536,57902,536,57902,536,536,57902,536,536,57925,57902,536,536,57902,57902,57902,57902,57952,57952,57902,57902,57902,57902,57952,57952,57902,536,57902,57902,57925,57902,57902,57902,57902,57902,57902,57902,57925,57925,57902,57902,57952,57902,57902,57902,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,780,0,0,0,0,0,0,0,0,0,0,0,0,0,2789,2790,0,0,795,0,0,0,0,0,0,0,799,0,0,0,0,0,0,0,2330,0,0,0,0,0,0,0,0,1238,0,0,0,0,0,0,0,819,0,0,0,0,0,819,819,0,0,0,0,799,0,0,0,0,0,1750,0,0,0,0,0,0,0,0,0,0,2850,0,0,0,0,0,0,0,0,835,795,0,0,835,0,0,0,0,0,0,0,528,528,528,4154,528,528,528,528,528,528,528,3234,528,528,528,528,528,528,528,528,528,3942,528,528,528,528,528,528,528,528,528,855,528,864,528,528,528,528,528,528,528,528,528,528,528,3944,528,528,528,528,528,528,528,912,57893,57893,57893,57893,57893,58274,57893,58283,57893,57893,57893,57893,57893,59395,59396,57893,57893,57893,57893,57893,57893,57893,57893,57893,59897,57893,57893,57893,57893,57893,57893,58350,57916,58359,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58401,57916,57916,58407,0,0,0,0,57893,57943,57943,57943,57943,57943,58425,57943,58434,57943,57943,528,1354,528,528,528,528,58793,57893,57893,57893,57893,57893,1151,0,1143,912,0,57893,57893,57893,57893,58493,58331,155942,1151,0,0,0,0,0,0,790,0,802,0,816,0,0,0,0,810,1246,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1821,0,0,0,1308,0,0,0,0,0,0,0,0,1313,0,0,0,0,0,1796,0,0,0,0,0,0,0,0,0,0,1211,368,368,0,0,1214,528,528,528,1350,528,528,528,528,528,528,528,528,528,1369,528,528,0,0,0,2933,0,1986,57893,57893,57893,57893,57893,57893,57893,57893,59884,57893,57893,57893,57893,57893,57893,57893,528,1409,528,528,1413,528,528,528,528,528,1420,528,528,528,1427,528,528,0,57893,57893,57893,58315,57893,57893,155942,1151,0,0,0,0,0,0,0,6324224,4358144,4358144,5005312,4358144,4358144,4358144,512e4,5136384,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,6119424,4358144,6168576,4358144,4358144,4358144,4358144,58773,914,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58789,57893,57893,57893,57893,57893,61379,57893,61381,61382,57893,61384,57893,61386,57916,57916,57916,57916,57916,60385,57916,57916,57916,57916,57916,57916,60393,57916,57916,57916,57916,57916,60691,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59484,57916,57916,57916,57916,57916,57893,57893,58818,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59914,57893,57893,57916,58954,57916,57916,57916,58961,57916,0,57893,57943,57943,57943,57943,57943,57943,57943,57943,61140,57943,57943,57943,57943,57943,57943,57943,57943,60969,57943,60971,57943,57943,57943,57943,57943,57943,57943,57943,59038,57943,57943,59042,57943,57943,57943,57943,57943,59049,57943,57943,57943,528,528,57893,57893,0,0,0,0,0,0,0,0,3923,59056,57943,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,1151,0,0,0,0,4003,3675,0,0,0,0,0,0,0,0,528,528,528,528,528,528,528,1345,1844,1845,0,1847,0,0,0,0,0,0,0,0,0,0,0,0,806,0,0,0,0,1861,0,1863,0,0,0,0,0,0,0,0,0,0,0,0,839,0,0,528,0,0,0,1875,0,0,0,0,0,0,0,0,0,0,0,0,990,0,0,0,0,0,1861,0,0,0,0,0,528,528,528,528,528,528,528,528,3223,528,528,528,528,528,528,1949,528,528,528,528,528,528,528,528,1958,528,528,528,528,528,2478,528,528,528,528,528,528,528,528,528,528,1421,528,528,528,528,528,528,528,528,1967,528,528,528,528,528,528,528,528,528,528,1977,1979,57893,57893,59392,57893,57893,57893,57893,57893,57893,57893,57893,59401,57893,57893,57893,57893,57893,59414,57893,57893,57893,57893,57893,57893,59420,57893,57893,57893,57893,57893,59410,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59421,59423,57893,57893,57893,57893,57893,61453,57893,57893,61455,57893,57916,57916,57916,57916,57916,57916,59482,57916,57916,57916,57916,57916,57916,57916,57916,57916,59983,57916,57916,57916,57916,57916,57916,57916,59492,57916,57916,57916,57916,57916,57916,57916,57916,59501,57916,57916,57916,57916,57916,57916,60940,60942,57916,57916,57916,57916,60946,57916,60948,60949,57916,59510,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59521,59523,57916,57916,57916,57916,57916,61570,57916,61571,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,60416,57943,57943,57943,59588,57943,57943,57943,57943,57943,57943,57943,57943,59597,57943,57943,57943,57943,57943,57943,57943,59043,57943,57943,57943,57943,57943,57943,57943,57943,58988,57943,57943,57943,57943,57943,57943,57943,59606,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59617,59619,57943,57943,57943,528,528,57893,57893,0,0,0,0,0,3921,0,0,0,0,0,1812,0,0,0,0,0,0,0,0,0,0,1839,0,0,0,0,0,0,0,2340,0,0,0,0,0,2346,0,0,0,0,0,0,0,372,0,0,0,380,382,0,0,0,0,0,0,2354,0,0,0,0,0,0,0,0,2362,0,0,0,0,0,1835,0,0,0,0,0,0,0,0,0,0,0,0,528,528,528,528,528,2424,528,528,528,528,528,528,528,528,528,528,3722,528,528,528,528,528,528,528,2436,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2930,528,528,528,2463,528,528,528,528,528,528,528,528,528,528,528,528,528,528,3240,3241,0,0,0,57893,57893,57893,57893,57893,57893,59855,57893,57893,57893,57893,57893,57893,0,0,57916,60658,57916,57916,57916,57916,57916,57916,58940,57916,57916,57916,57916,57916,57916,57916,57916,57916,59518,57916,57916,57916,57916,57916,57916,57916,60003,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58951,57916,57916,57916,57916,60018,57916,57916,57916,57943,57943,57943,57943,57943,57943,60027,57943,57943,528,1355,528,528,528,528,58794,57893,57893,57893,57893,57893,1151,0,57943,60086,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59570,57943,57943,57943,57943,60101,57943,57943,57943,2436,528,528,528,528,59867,57893,57893,57893,0,0,0,0,57916,59939,57916,57916,57916,57916,57916,57916,57916,60927,57916,60929,57916,57916,57916,57916,57916,57916,0,2793,0,2795,0,0,0,0,0,0,0,0,2800,0,0,2803,0,0,2818,0,0,0,0,0,0,0,2826,0,0,0,0,2828,0,2842,0,0,2845,0,0,0,0,0,0,0,0,0,0,2855,0,0,528,2869,528,528,528,528,528,528,528,528,528,528,528,528,528,2918,528,528,57893,57893,57893,57893,60327,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,61099,57916,57916,60336,57893,57893,57893,60339,57893,57893,57893,57893,57893,57893,0,0,0,0,0,0,2772,0,0,0,0,0,0,0,0,2359,0,0,0,0,0,0,0,0,57916,60345,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58894,57916,57916,57943,60433,57943,57943,57943,57943,57943,57943,57943,60438,57943,57943,57943,57943,57943,57943,57943,59549,57943,57943,57943,57943,57943,57943,57943,57943,57943,60067,57943,57943,57943,57943,57943,57943,57943,60444,57943,57943,57943,57943,57943,57943,57943,60452,57943,57943,57943,57943,57943,57943,57943,59595,57943,57943,57943,57943,57943,57943,57943,57943,57943,61543,57943,57943,0,0,0,0,60459,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60468,57943,57943,57943,528,528,57893,57893,0,0,0,3919,0,0,3922,0,0,60471,57943,57943,57943,57943,57943,57943,3131,528,528,528,528,60478,57893,57893,57893,0,0,0,0,59938,57916,57916,57916,57916,57916,57916,57916,59946,3204,0,0,0,3206,0,0,0,0,0,0,0,0,0,0,0,1818,0,0,0,0,528,528,528,528,3244,528,528,528,528,528,528,528,528,528,528,3249,528,528,528,3252,528,3254,528,528,528,528,528,528,528,3258,528,528,0,0,2503,0,0,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,59858,57893,57893,57893,60632,57893,57893,57893,57893,60635,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59924,57893,59926,57893,57893,57893,57893,60641,57893,57893,57893,60644,57893,60646,57893,57893,57893,57893,57893,57893,57893,57893,58843,57893,57893,57893,57893,57893,57893,57893,60651,57893,57893,57893,57893,57893,0,0,57916,57916,57916,60659,57916,57916,57916,57916,57916,58905,57916,58907,57916,57916,57916,57916,57916,57916,57916,57916,60362,57916,57916,57916,57916,57916,57916,57916,57916,60664,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59458,57916,57916,57916,60680,60681,57916,57916,57916,57916,60684,57916,57916,57916,57916,57916,57916,57916,57943,60022,57943,57943,57943,57943,57943,57943,57943,57943,61153,57943,57943,57943,57943,57943,57943,528,57916,57916,57916,57916,60690,57916,57916,57916,60693,57916,60695,57916,57916,57916,57916,57916,57916,61105,57916,57916,57916,57916,57916,57916,57916,57916,57916,58944,57916,57916,57916,57916,57916,58952,57916,57916,57916,60700,57916,57916,57916,57916,57916,57943,57943,57943,60708,57943,57943,57943,528,528,57893,57893,3918,0,0,0,3920,0,0,0,0,0,0,3695,0,3697,528,528,528,528,528,528,528,1905,528,528,528,528,528,528,528,528,2926,528,528,528,528,528,528,528,57943,57943,60713,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61144,57943,57943,57943,57943,60729,60730,57943,57943,57943,57943,60733,57943,57943,57943,57943,57943,57943,57943,60036,57943,60038,57943,57943,57943,57943,57943,57943,57943,58984,57943,58989,57943,57943,58993,57943,57943,58996,57943,57943,57943,57943,60749,57943,57943,57943,57943,57943,528,528,528,57893,57893,57893,0,0,0,0,0,0,0,0,0,0,0,3417,0,0,3420,3421,0,0,0,0,0,0,0,0,0,0,0,1827,0,0,0,0,528,528,528,528,3486,528,528,528,528,3490,528,528,528,528,528,528,1952,1953,528,528,528,528,528,528,528,528,528,3517,528,528,528,528,528,57893,528,3496,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2931,528,3510,528,528,528,528,528,528,528,528,528,528,528,528,528,57893,57893,57893,61204,57893,57893,57893,60870,57893,57893,57893,57893,60874,57893,57893,57893,57893,57893,57893,57893,58863,58864,57893,57893,50676,58773,990,57916,57916,60880,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59901,57893,60895,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58830,57893,57916,57916,57916,57916,60912,57916,57916,57916,57916,60916,57916,57916,57916,57916,57916,57916,58962,0,58963,58964,57943,57943,57943,57943,57943,58971,57916,60922,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59472,57916,57916,57916,60937,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58927,57916,58929,57916,57943,57943,57943,57943,60954,57943,57943,57943,57943,60958,57943,57943,57943,57943,57943,57943,58982,57943,57943,57943,57943,58992,57943,57943,57943,57943,57943,57943,60964,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61256,57943,57943,57943,57943,60979,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60974,57943,60976,528,528,57893,57893,57893,0,0,0,0,3819,0,0,0,0,0,3822,0,528,528,528,528,528,528,3844,528,528,528,528,528,528,528,528,2481,528,528,528,528,528,2485,2486,57893,57893,61206,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59927,57893,57893,57893,57893,61217,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,57916,61225,0,0,3675,0,0,0,0,0,0,0,0,0,0,0,3934,0,0,0,0,4080,0,0,0,0,0,0,528,528,528,528,528,528,4211,528,4212,528,528,528,57893,57893,57893,57893,57893,57893,61562,57893,61563,57893,57893,57893,57893,57916,57943,4313,4314,61659,61660,61661,0,528,57893,57916,57943,0,0,0,0,0,2382,0,0,0,0,0,0,0,0,0,0,4284416,0,0,0,0,0,57943,57943,61578,57943,61579,57943,57943,57943,57943,0,0,0,0,0,0,528,528,4273,4274,528,528,57893,57893,61621,61622,57893,57893,57916,0,528,528,57893,57893,57916,57916,57943,57943,4303,4304,61649,61650,61651,0,528,528,528,528,528,528,528,528,528,2428,528,528,528,528,528,528,4096,528,528,4098,57893,57893,57893,57893,57893,57893,58861,57893,57893,57893,57893,50676,58773,990,57916,57916,537,57903,537,57903,537,537,57903,537,537,57926,57903,537,537,57903,57903,57903,57903,57953,57953,57903,57903,57903,57903,57953,57953,57903,537,57903,57903,57926,57903,57903,57903,57903,57903,57903,57903,57926,57926,57903,57903,57953,57903,57903,57903,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,57893,57893,58833,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60649,57893,57893,57916,59948,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59489,57916,57943,60031,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60044,57943,0,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2404,0,0,340,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2854,0,0,0,406,0,0,0,0,0,0,0,0,0,0,0,0,406,0,0,0,432,131072,0,432,432,0,0,0,432,0,452,432,0,0,0,0,4206,0,528,528,528,528,528,528,528,528,528,528,528,528,2430,528,528,432,478,478,478,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,538,57904,538,57904,538,538,57904,538,538,57927,57904,538,538,57904,57904,57904,57904,57954,57954,57904,57904,57904,57904,57954,57954,57904,538,57904,57904,57927,57904,57904,57904,57904,57904,57904,57904,57927,57927,57904,57904,57954,57904,57904,57904,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,661,0,661,0,0,0,0,826,0,0,0,661,0,0,0,0,0,5218304,0,0,0,0,5799936,0,5881856,0,0,0,0,0,0,5029888,5038080,0,0,5103616,5201920,0,0,0,0,0,0,1878,0,0,0,0,0,0,0,0,0,2296,0,0,0,0,0,0,842,528,528,528,857,528,528,528,528,528,528,528,528,528,528,898,528,528,528,528,57893,57893,58260,57893,57893,57893,58276,57893,57893,57893,57893,57893,57893,61220,57893,57893,57916,57916,57916,57916,57916,57916,57916,0,57893,57943,57943,57943,57943,57943,57943,57943,57943,59022,57943,59024,57943,57943,57943,57943,57943,57916,58352,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58393,57916,57916,57916,57916,57916,60913,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61471,57943,57943,57943,57943,57943,1160,0,0,0,0,0,0,0,0,0,1167,1168,0,0,0,0,0,0,1299,0,0,0,0,0,0,0,0,528,528,1340,528,528,528,528,528,0,0,0,1249,0,0,0,0,0,0,0,0,0,1260,1261,0,0,0,0,131072,0,0,0,0,0,0,0,0,0,0,0,0,2415,0,0,2418,528,528,528,528,1351,1358,528,528,528,528,528,528,528,528,1371,528,528,0,57893,57893,57893,58317,57893,57893,294,1151,0,0,1155,0,0,0,0,0,5857280,0,6463488,4939776,0,0,5455872,0,0,0,0,0,5554176,5570560,5578752,5619712,5668864,0,0,0,5791744,5816320,0,5857280,0,1373,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,1406,1408,528,528,528,528,528,528,528,528,528,528,528,1423,528,528,528,528,528,2910,528,528,528,528,528,528,2917,528,528,528,528,528,2490,528,528,528,528,528,528,528,528,528,0,0,57893,57893,57893,57893,57893,60612,57893,60613,57893,57893,57893,58773,914,57893,58776,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58790,58797,57893,57893,57893,57893,57893,57893,57893,57893,58810,57893,58812,57893,57893,57893,57893,57893,59867,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59872,57893,57893,57893,57893,57893,57893,58832,57893,58834,57893,57893,57893,57893,57893,57893,57893,58847,57893,57893,57893,57893,57893,59881,57893,57893,57893,57893,57893,57893,57893,57893,59888,57893,57916,57916,57916,58957,57916,57916,57916,0,57893,57943,58965,57943,57943,57943,57943,57943,57943,59548,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61154,57943,57943,57943,57943,528,58999,57943,59001,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59027,57943,57943,57943,57943,59037,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59052,57943,57943,57943,57943,57943,61139,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60454,57943,57943,57943,57943,1946,528,528,528,528,528,528,528,528,1955,528,528,528,528,528,528,1970,528,528,528,528,528,528,1976,528,528,528,528,1982,528,58773,1986,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60648,57893,57893,57893,57893,57893,57893,57893,57893,57893,59346,59347,57893,57893,57893,57893,59354,57893,57893,57893,57893,57893,58315,57893,57893,57893,57893,0,57916,57916,57916,57916,57916,57916,60349,57916,57916,57916,57916,60353,57916,57916,57916,57893,59426,57893,50676,2086,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60932,57916,60934,57916,57916,57916,57916,59446,59447,57916,57916,57916,57916,59454,57916,57916,57916,57916,57916,57916,59449,57916,57916,57916,57916,57916,57916,57916,57916,57916,60390,57916,57916,57916,57916,57916,57916,59526,57916,57893,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59051,57943,57943,57943,59542,59543,57943,57943,57943,57943,59550,57943,57943,57943,57943,57943,57943,57943,57943,57943,60425,57943,57943,57943,57943,57943,57943,0,2313,0,0,0,0,0,0,0,0,0,2322,0,0,0,0,0,0,3208,0,0,0,0,0,0,0,0,0,3210,3211,0,0,0,0,0,528,528,528,528,2477,528,528,528,528,528,528,528,2483,528,528,528,528,528,2924,528,528,528,528,528,528,528,528,528,528,528,2496,528,528,528,0,528,528,528,2488,528,528,528,528,528,528,528,528,528,528,528,0,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,0,0,990,57916,57916,57916,57916,57916,60004,57916,57916,57916,57916,57916,57916,57916,60010,57916,57916,57916,57916,57916,58921,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60917,57916,57916,57916,57916,57916,57943,57943,57943,60087,57943,57943,57943,57943,57943,57943,57943,60093,57943,57943,57943,57943,57943,57943,60967,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60040,57943,57943,57943,57943,57943,0,0,0,2782,0,0,0,0,0,0,0,0,0,0,0,0,1169,1170,1171,1172,3159,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1871,528,528,528,3231,528,528,528,528,528,528,528,528,528,528,528,528,528,3248,528,528,528,3262,528,0,0,57893,57893,57893,57893,57893,57893,57893,57893,60614,57893,57893,57893,50676,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59441,57893,57893,57893,57893,60622,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,61098,57916,57916,57916,57893,57893,57893,57893,60655,57893,0,0,57916,57916,57916,57916,57916,57916,57916,57916,60928,57916,57916,57916,57916,57916,57916,57916,60663,57916,57916,57916,57916,57916,57916,60671,57916,57916,57916,57916,57916,57916,57916,57916,61118,57916,57916,57916,57916,57916,57916,57916,57943,60712,57943,57943,57943,57943,57943,57943,60720,57943,57943,57943,57943,57943,57943,57943,57943,61340,57943,57943,528,57893,0,0,0,57893,57893,57893,61094,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,57916,61232,57916,57916,57916,57916,61233,61234,57916,57916,57916,528,528,57893,57893,57893,57893,57893,57893,57893,61513,57893,61515,57893,57893,57893,57893,57893,59894,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,0,57916,57916,58335,57916,57916,528,528,61559,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61567,61624,57916,57916,57916,57916,57943,61628,57943,57943,57943,57943,0,0,0,0,528,4272,528,528,528,528,57893,61620,57893,57893,57893,57893,57916,0,389,341,0,0,0,0,0,0,0,0,0,0,0,0,0,2801,0,0,463,479,479,479,463,463,463,463,463,463,463,463,463,463,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,539,57905,539,57905,539,539,57905,539,539,57928,57905,539,539,57905,57905,57905,57905,57955,57955,57905,57905,57905,57905,57955,57955,57905,539,57905,57905,57928,57905,57905,57905,57905,57905,57905,57905,57928,57928,57905,57905,57955,57905,57905,57905,1,24578,3,155942,156282,296,0,0,0,0,0,302,303,0,0,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3427,0,0,0,662,0,662,0,0,0,0,0,0,0,0,662,0,0,0,0,0,6225920,4358144,5062656,4358144,4358144,4358144,4358144,4358144,6225920,0,6086656,528,528,528,528,858,528,528,874,528,528,528,528,528,528,528,528,2913,528,528,528,528,528,528,528,57916,58353,57916,57916,58369,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61575,57943,57943,57943,0,1189,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3451,0,0,1318,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3480,0,0,0,1334,0,0,0,0,0,528,528,528,528,528,528,528,528,2876,528,528,528,528,528,528,528,528,528,1352,528,528,528,528,528,528,528,528,528,528,528,528,2469,528,528,528,528,528,528,1391,528,528,528,528,528,528,528,528,528,528,528,528,528,3493,528,528,528,528,1410,528,528,528,528,528,1418,528,528,528,528,528,528,528,1379,528,528,528,528,528,528,528,528,1954,528,528,1957,528,528,528,528,58773,914,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58791,57893,57893,57893,58857,57893,57893,57893,57893,57893,57893,57893,50676,58773,990,57916,57916,57916,57916,57943,57943,57943,60412,57943,60413,57943,57943,57943,57943,57943,57943,57943,58471,57943,57943,57943,57943,528,528,528,901,57943,57943,57943,57943,59039,57943,57943,57943,57943,57943,59047,57943,57943,57943,57943,57943,57943,59563,59564,57943,57943,57943,57943,57943,57943,57943,57943,57943,61484,0,0,4143,4144,0,0,0,1727,0,0,0,0,1734,0,0,0,0,0,0,0,0,0,2370,0,0,0,0,0,0,528,1916,528,528,528,528,528,528,528,528,528,528,528,528,1927,528,528,0,57893,57893,57893,58319,57893,57893,155942,1151,0,302,0,0,306,307,0,0,0,0,0,0,0,0,0,0,650,0,0,0,0,0,2351104,0,0,0,0,0,0,0,0,0,4358144,59359,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59370,57893,57893,57893,50676,0,57916,59433,57916,57916,57916,57916,57916,57916,57916,59440,57916,57943,57943,57943,59544,57943,57943,57943,57943,57943,57943,57943,57943,57943,59555,57943,57943,528,1714,528,1716,528,528,59063,57893,57893,59065,57893,57893,1151,0,57943,57943,57943,59577,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61143,57943,57943,0,0,2379,2380,0,0,0,0,0,2386,0,0,0,0,0,0,0,2785,0,0,0,0,0,0,0,0,1753,0,0,0,0,0,0,0,528,2474,528,528,528,528,2479,528,528,528,528,528,528,528,528,528,1396,528,528,528,1403,1405,528,2501,0,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60878,57893,57893,57893,57893,57893,57893,59906,57893,57893,57893,57893,59911,57893,57893,57893,57893,57893,57893,2999,0,57916,57916,57916,57916,57916,57916,57916,57916,57943,61327,57943,57943,61329,57943,57943,57943,57916,59964,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59506,57916,57943,60047,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60070,60071,57916,57916,57916,57916,61115,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58885,58892,57916,57916,57916,0,3925,3675,0,0,0,0,0,0,0,0,0,0,0,0,0,2838,2839,0,3949,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58850,57893,57893,57893,61308,57893,57893,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58886,57916,57916,57916,57916,4001,0,0,0,0,3675,0,0,0,0,0,0,0,0,528,528,528,528,528,528,1895,528,528,528,4016,528,528,528,528,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,57893,61375,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,61461,57916,61391,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61407,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,0,0,0,0,0,2316,0,0,0,0,0,0,0,0,0,0,3838,0,0,0,0,0,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61566,57916,0,0,0,0,57893,57943,57943,58410,57943,57943,57943,57943,57943,57943,58443,0,0,0,390,391,393,343,0,0,0,0,0,0,342,0,0,0,343,0,0,0,0,0,0,0,0,0,2787,0,0,0,0,0,0,0,0,0,390,0,0,0,0,0,0,343,0,0,0,390,0,0,0,0,131072,0,0,0,0,0,0,0,0,0,310,0,0,0,0,1749,0,0,0,0,0,0,0,0,0,0,0,540672,0,0,0,0,0,0,480,480,480,480,496,496,496,496,496,496,496,496,496,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,540,57906,540,57906,540,540,57906,540,540,57929,57906,540,540,57906,57906,57906,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,57929,57906,57906,57906,57906,57906,57906,57906,57929,57929,57906,57942,57956,57942,57942,57942,57942,57956,57956,57942,57942,57942,57942,57956,57956,57942,540,57906,57906,368,368,0,0,0,0,0,706,0,0,0,0,0,0,0,0,740,0,0,0,0,740,0,746,715,0,717,0,0,0,0,0,0,0,725,0,0,0,0,0,0,804,0,0,0,0,0,0,804,0,528,0,0,813,0,796,0,0,815,0,667,0,792,0,0,0,0,0,836,0,0,0,0,796,663,840,0,528,0,792,815,0,815,813,0,0,0,827,0,0,0,663,830,0,0,0,0,131072,0,0,0,0,0,0,0,444,0,0,0,0,0,690,691,0,0,0,0,696,0,0,0,368,843,528,528,528,859,528,528,875,528,528,528,528,889,528,528,528,528,528,3245,528,528,528,528,528,528,528,528,528,528,528,1398,528,528,528,528,528,907,528,528,57893,57893,58261,57893,57893,57893,58278,57893,57893,58294,57893,57893,57893,50676,0,59432,57916,59434,57916,59435,57916,59437,57916,59439,57916,57916,57893,57943,57943,57943,57943,57943,57943,57943,59534,57943,57943,57943,57943,57943,57943,59594,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60467,57943,57943,57943,57943,57943,57893,57893,58308,57893,57893,57893,57893,58326,57893,57893,0,57916,57916,58337,57916,57916,57916,57916,57943,57943,60411,57943,57943,57943,57943,57943,57943,57943,57943,57943,59044,57943,57943,57943,57943,57943,57943,57916,58354,57916,57916,58370,57916,57916,57916,57916,58384,57916,57916,57916,57916,58402,57916,0,0,0,0,57893,57943,57943,58411,57943,57943,57943,58427,57943,57943,57943,57943,57943,59005,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59008,57943,57943,57943,57943,57943,57943,57943,57943,58459,57943,57943,57943,57943,58477,57943,57943,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,1151,0,0,0,1170,0,0,0,0,0,0,0,1172,0,0,0,0,0,0,806,0,0,0,0,787,0,806,0,528,1293,0,0,0,0,0,0,0,0,0,0,0,0,1305,0,0,0,0,0,6307840,0,0,6356992,6381568,6397952,4800512,4808704,0,0,4890624,0,4947968,0,0,0,5046272,0,0,0,0,5185536,0,5234688,5300224,0,0,0,0,1210,0,0,0,0,0,0,0,0,0,1305,0,0,0,0,0,2343,0,0,0,0,0,2347,0,0,2349,0,0,1333,0,0,0,0,0,0,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,1353,528,528,528,528,528,528,528,528,528,528,528,528,2901,528,528,528,528,528,528,1377,528,528,528,528,528,528,528,528,528,528,528,528,528,3724,528,528,58773,914,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58792,0,0,1777,0,0,1780,0,1782,0,0,0,0,0,0,0,0,753,0,0,0,0,0,0,0,0,1833,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3667,3668,528,1898,528,528,528,528,528,528,528,528,1909,528,528,528,528,528,868,528,528,528,528,528,887,528,528,528,528,59341,57893,57893,57893,57893,57893,57893,57893,57893,59352,57893,57893,57893,57893,57893,57893,58325,57893,57893,57893,0,57916,57916,57916,57916,57916,57943,57943,57943,57943,59578,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60056,57943,57943,57943,0,2394,0,0,0,0,0,0,0,0,0,0,0,0,0,2405,0,528,528,528,2422,2423,528,528,528,528,528,528,528,528,528,528,1366,528,528,528,528,528,0,0,0,57893,57893,57893,59852,57893,59854,57893,57893,57893,57893,57893,57893,57893,59349,57893,57893,57893,57893,57893,57893,57893,57893,60647,57893,57893,57893,57893,57893,57893,57893,57893,59903,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59405,57893,0,2780,0,0,2783,0,0,0,0,0,0,2788,0,0,0,2791,2792,0,0,0,0,0,0,0,0,0,0,0,0,0,2802,0,0,0,0,131072,0,0,0,0,0,0,0,448,0,0,0,0,0,2307,0,0,0,0,0,0,0,0,0,0,3674,0,0,0,0,0,0,2817,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3677,0,0,0,2843,0,0,0,0,0,0,0,0,2851,0,0,0,0,0,0,3448,0,0,0,0,0,0,0,0,0,1287,1288,0,0,0,0,0,0,2857,0,0,0,0,2860,0,0,0,0,0,0,0,0,0,2862,0,0,0,0,0,0,2868,0,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,57893,57893,57893,57893,2879,528,528,2882,2883,528,528,528,528,528,2888,528,2890,528,528,528,528,528,3487,528,528,528,528,528,528,528,528,528,528,2468,528,528,528,528,528,528,2894,528,528,528,528,528,528,528,528,528,2900,528,528,528,528,528,1903,1904,528,528,528,528,1911,528,528,528,528,528,1935,528,528,528,1940,528,528,528,528,528,528,2897,528,528,528,528,528,528,528,528,528,528,3858,528,57893,57893,57893,57893,528,528,528,528,2908,528,528,528,528,528,528,2916,528,528,528,528,528,2439,528,528,528,528,2444,528,528,528,528,528,528,61594,57893,57893,57893,57893,57893,57893,57893,61600,57916,528,2921,528,528,528,528,528,528,528,528,528,528,528,528,528,528,1387,528,57893,60297,57893,60299,57893,57893,57893,57893,60303,57893,57893,57893,57893,57893,57893,57893,59382,57893,57893,57893,57893,57893,57893,57893,57893,59398,57893,57893,57893,57893,57893,57893,57893,57893,57893,60309,57893,57893,57893,57893,57893,57893,57893,57893,57893,60318,57893,57893,57893,0,0,0,2593,57916,57916,57916,57916,57916,57916,57916,57916,57916,60704,57916,57943,57943,57943,57943,57943,57943,57943,60957,57943,57943,57943,57943,57943,57943,57943,57893,57893,57893,60326,57893,57893,57893,57893,57893,60331,57893,57893,57893,57893,57893,57893,58837,57893,57893,57893,57893,57893,57893,57893,58851,57893,60355,57916,57916,60358,60359,57916,57916,57916,57916,57916,60364,57916,60366,57916,57916,57916,57916,57916,60925,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58884,57916,57916,57916,57916,57916,57916,60370,57916,57916,57916,57916,57916,57916,57916,57916,57916,60376,57916,57916,57916,57916,57916,58960,57916,0,57893,57943,57943,57943,57943,57943,57943,57943,57943,60732,57943,57943,57943,57943,57943,57943,57943,57943,60450,57943,57943,57943,57943,57943,57943,60458,57916,57916,60398,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59505,57916,57916,57943,57943,57943,60420,57943,57943,60423,60424,57943,57943,57943,57943,57943,60429,57943,60431,57943,57943,57943,57943,60435,57943,57943,57943,57943,57943,57943,57943,57943,57943,60441,57943,57943,57943,57943,57943,61150,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,528,3133,528,528,57893,57893,60480,57893,0,0,3161,3162,3163,0,0,0,0,0,0,0,0,0,0,0,2311,0,0,0,0,0,3176,0,0,0,0,0,0,0,3182,0,3184,0,0,0,0,0,0,3458,0,0,0,0,0,0,0,0,0,786,0,0,0,0,0,0,0,0,0,0,0,802,0,807,0,810,3188,0,0,0,0,3193,0,0,3196,0,0,0,0,0,0,0,389,0,139264,147456,0,0,0,0,0,528,528,3263,0,0,60608,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61086,57893,57893,57893,57893,57893,57893,57893,60653,57893,57893,60656,0,0,60657,57916,57916,57916,57916,57916,57916,57916,58880,57916,57916,57916,58889,57916,57916,57916,57916,57916,57916,60689,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59986,57916,57916,57916,57916,60699,57916,57916,60702,57916,57916,60705,60706,57943,57943,57943,57943,57943,57943,57943,60052,57943,57943,57943,57943,57943,57943,60057,57943,60727,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59031,57943,57943,57943,60738,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,58994,57943,57943,57943,57943,57943,57943,60748,57943,57943,60751,57943,57943,60754,3411,528,528,60758,57893,57893,57893,50676,2085,57916,57916,57916,57916,57916,59436,57916,57916,57916,57916,57916,57916,60373,57916,57916,57916,57916,57916,57916,57916,60379,57916,3429,0,0,0,0,3434,0,0,0,0,0,0,0,0,0,0,3675,0,0,0,0,0,0,0,0,528,528,0,0,0,3470,0,0,0,0,0,0,3477,0,0,3479,0,0,0,0,306,0,0,0,0,0,0,306,0,0,0,0,0,0,0,0,0,0,0,0,2852,0,0,0,528,528,3484,528,528,528,528,528,528,528,528,528,528,528,528,528,528,3259,528,3509,528,528,3511,528,528,528,528,528,528,528,528,528,528,528,57893,57893,57893,57893,61446,57893,57893,60868,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59928,57893,60894,57893,57893,60896,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60877,57893,57893,57893,57916,57916,60910,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60012,57916,57916,57916,60936,57916,57916,60938,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59485,57916,57916,57916,57916,57916,57943,57943,60952,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59009,57943,57943,57943,57943,57943,60978,57943,57943,60980,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60055,57943,57943,57943,60058,3661,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2312,3679,0,0,0,0,0,0,0,0,0,0,0,0,0,3691,0,0,0,0,131072,0,0,0,0,0,0,0,450,0,0,0,0,0,3457,0,0,0,0,3462,0,0,0,0,3466,3702,3703,528,528,528,528,3707,3708,528,528,528,528,528,3712,528,528,0,2932,0,0,0,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59859,57893,57893,528,57893,57893,57893,57893,57893,57893,57893,61073,61074,57893,57893,57893,57893,61078,61079,57916,57916,61102,61103,57916,57916,57916,57916,61107,61108,57916,57916,57916,57916,57916,61112,57943,57943,61136,61137,57943,57943,57943,57943,57943,61141,57943,57943,57943,57943,57943,57943,57943,60436,57943,57943,57943,57943,57943,57943,57943,57943,58476,57943,57943,57943,1139,528,528,528,57943,57943,61147,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,528,528,528,528,528,57893,57893,57893,0,0,3817,0,0,0,0,0,0,0,0,1165,0,0,0,0,0,0,0,0,0,3834,0,0,0,0,0,0,0,0,0,0,0,0,0,2865,0,0,57916,57916,57916,57916,61230,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59486,57916,57916,57916,57916,57943,61249,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60096,57943,0,0,3675,0,3928,0,0,0,0,0,0,0,0,0,0,0,2361,0,0,0,0,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61303,57893,57893,57893,50676,2086,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61236,61319,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,0,0,57943,57943,57943,61335,57943,57943,57943,57943,57943,57943,57943,528,57893,0,3999,0,0,0,0,131072,0,0,0,0,0,0,0,450560,0,0,0,0,0,372,0,0,0,0,0,0,0,0,0,0,2333,0,0,0,0,2338,0,4002,0,0,0,3675,0,0,0,0,0,0,0,0,528,528,528,1341,528,528,528,528,4014,528,528,528,528,4019,528,528,528,528,4024,528,528,57893,57893,61373,57893,57893,57893,57893,61378,57893,57893,57893,57893,61383,57893,57893,57893,57916,57916,61389,57916,57916,57916,57916,61394,57916,57916,57916,57916,61399,57916,57916,57916,57943,57943,61405,57943,57943,57943,57943,61410,57943,57943,57943,57943,61415,57943,57943,57943,0,0,0,0,0,2366,0,0,0,0,0,0,0,0,0,0,352256,0,352256,0,0,0,0,0,0,4078,0,0,4081,0,0,0,0,0,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,57916,528,528,4246,4247,528,528,57893,57893,57893,61596,61597,57893,57893,57893,57916,57916,57916,57916,57943,60410,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,58481,528,852,528,528,57916,61602,61603,57916,57916,57916,57943,57943,57943,61608,61609,57943,57943,57943,0,0,0,0,306,306,306,306,306,306,306,306,306,306,306,306,306,0,306,0,0,0,0,345,346,347,348,349,0,0,0,0,0,0,0,0,1181,0,0,0,0,0,0,0,0,0,349,348,131072,347,348,348,0,349,347,348,0,347,348,457,464,481,481,481,492,492,492,498,492,492,498,498,492,498,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,541,57907,541,57907,541,541,57907,541,541,57930,57907,541,541,57907,57907,57907,57907,57957,57957,57907,57907,57907,57907,57957,57957,57907,541,57907,57907,57930,57907,57907,57907,57907,57907,57907,57907,57930,57930,57907,57907,57957,57907,57907,57907,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,306,307,0,0,0,0,0,0,646,0,0,0,0,651,652,653,654,655,656,657,0,0,0,0,0,0,0,0,0,0,0,2388,0,0,0,0,0,0,0,672,673,0,675,676,0,0,0,0,0,682,0,0,0,0,307,0,0,0,0,0,0,307,0,0,0,0,0,0,0,0,0,0,0,0,352256,0,0,0,0,0,0,0,716,0,0,719,0,721,0,723,0,0,0,0,0,0,0,394,0,0,0,0,0,0,0,0,1222,0,0,0,0,0,0,0,0,0,733,0,0,0,0,0,0,0,0,0,0,0,0,0,3172,0,0,0,0,0,763,764,0,766,767,675,0,0,0,0,0,0,0,395,0,0,0,0,0,0,0,0,2319,0,0,0,0,0,0,0,0,0,0,782,783,0,785,0,0,0,0,764,0,0,791,0,0,0,0,131072,0,0,0,0,0,245760,0,0,0,0,245760,0,0,0,0,0,0,0,0,0,0,0,0,3171,0,0,0,0,692,0,0,0,764,0,0,0,0,0,0,0,0,757,821,0,0,0,757,0,0,824,699,0,0,0,829,0,0,0,831,0,0,0,692,699,0,0,692,829,829,0,0,0,0,0,528,528,528,528,528,528,2874,528,528,528,528,528,528,528,3489,528,528,528,528,528,528,528,528,3256,528,528,528,528,528,528,528,528,849,853,856,528,865,528,528,528,881,883,886,528,528,528,899,903,528,528,528,57893,57893,57893,58268,58272,58275,57893,58284,57893,57893,57893,58300,58302,58305,57893,57893,57893,58318,58322,57893,57893,57893,0,57916,57916,57916,58344,58348,58351,57916,58360,57916,57916,57916,58376,58378,58381,57916,57916,57916,58394,58398,57916,57916,57916,57916,58367,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59999,57916,57916,57916,57916,0,0,0,0,58409,57943,57943,57943,58419,58423,58426,57943,58435,57943,57943,528,3649,528,57893,60996,57893,0,0,0,0,0,0,0,0,1254,0,0,0,0,0,0,0,57943,58451,58453,58456,57943,57943,57943,58469,58473,57943,57943,57943,849,1140,528,899,903,1144,0,58489,58268,57893,58318,58322,58494,155942,1151,0,0,0,0,0,0,1179,0,0,0,0,0,0,0,0,0,1239,0,0,0,0,0,0,1278,0,0,0,0,1283,0,0,0,0,0,0,0,0,0,0,3675,0,3828,0,0,0,0,0,0,1321,0,0,0,0,0,0,0,0,0,0,0,0,1198,0,0,0,528,1375,528,528,528,1378,528,528,528,528,528,528,528,1385,528,528,0,2932,0,0,0,0,57893,57893,57893,57893,57893,57893,60282,57893,1389,528,528,528,528,528,528,528,528,528,528,528,1400,528,528,1407,58817,57893,57893,57893,57893,57893,57893,57893,58824,57893,57893,58828,57893,57893,57893,57893,57893,59895,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59898,59899,57893,57893,57893,57893,57916,57916,57916,58934,57916,57916,58941,57916,57916,57916,57916,57916,57916,57916,57916,57916,59984,57916,57916,57916,57916,57916,57916,57916,58955,57916,57916,57916,57916,57916,0,57893,57943,57943,57943,57943,57943,57943,57943,57943,61542,57943,57943,57943,0,4202,0,0,57943,57943,57943,59003,57943,57943,57943,59006,57943,57943,57943,57943,57943,57943,57943,59013,57943,57943,59017,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59029,57943,57943,57943,57943,57943,61337,57943,57943,57943,61341,57943,528,57893,0,0,0,0,3139,0,0,0,0,0,0,0,0,0,3149,57943,59036,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59050,57943,57943,57943,57943,57943,59019,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,58482,528,528,528,528,1822,0,1824,0,0,0,1826,0,746,0,0,0,0,0,0,0,399,0,0,404,0,0,0,0,0,1872,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2350,0,1757,0,0,0,0,0,0,528,1891,528,528,528,528,528,528,2440,528,528,528,528,528,528,528,528,528,528,2495,528,528,528,528,0,1897,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,1428,528,528,528,528,1919,528,528,528,528,528,528,528,528,528,528,1928,528,528,528,1932,528,528,1937,528,528,528,528,528,528,528,528,528,1419,528,528,528,528,528,528,528,528,528,528,58773,0,57893,59333,57893,57893,57893,57893,57893,57893,57893,59340,57893,57893,57893,59362,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59371,57893,57893,57893,57893,57943,57943,57893,57893,57893,57893,57943,57943,57893,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,61075,57893,57893,57893,57893,57893,58821,57893,57893,57893,58825,57893,57893,57893,57893,57893,57893,59348,57893,57893,57893,57893,57893,57893,57893,57893,57893,60875,57893,57893,57893,57893,57893,57893,57893,57893,59375,57893,57893,59380,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61457,57916,57916,57916,57916,57916,57916,57916,59462,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59471,57916,57916,57916,57916,58368,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60011,57916,57916,57916,57916,59475,57916,57916,59480,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59972,57916,57916,57916,59975,59558,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59567,57943,57943,57943,59571,57943,57943,59576,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59569,57943,57943,57916,57916,57916,59990,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58948,57916,57916,57916,57943,57943,57943,60073,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59010,57943,57943,57943,2804,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2376,57916,60409,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59030,57943,57943,57943,57943,60474,57943,57943,528,528,528,528,528,57893,57893,57893,57893,57893,2290,0,2291,0,0,3214,0,0,0,528,3218,528,528,528,528,528,528,528,528,528,528,1383,528,528,528,528,1388,3242,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,1962,57893,60633,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60335,57893,57916,57916,57916,57916,60682,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59998,57916,57916,57916,57916,0,0,3419,0,0,0,0,0,0,0,0,0,3425,0,0,0,0,0,2410,0,0,0,0,0,0,0,0,0,0,417792,309,310,0,0,0,0,3841,528,528,528,528,528,528,528,3846,528,528,528,528,528,528,2465,528,528,528,528,528,528,528,528,528,528,3943,528,3945,528,528,528,57893,57893,57893,57893,61208,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59369,57893,57893,57893,57893,57916,61227,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59524,57916,0,0,3675,3927,0,0,0,0,0,0,0,0,0,0,0,0,1266,0,0,0,528,528,528,3937,528,528,528,528,3941,528,528,528,528,528,3947,528,528,0,57893,57893,57893,58320,57893,57893,155942,1151,0,0,0,0,0,0,1751,0,0,0,0,0,0,0,0,0,754,0,0,0,0,0,0,528,528,57893,57893,57893,61296,57893,57893,57893,57893,61300,57893,57893,57893,57893,57893,58317,57893,57893,57893,57893,0,57916,57916,58336,57916,57916,61306,57893,57893,57893,57893,57916,57916,57916,61312,57916,57916,57916,57916,61316,57916,57916,57916,57916,58371,58373,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58945,57916,57916,57916,57916,57916,57916,57916,57916,61322,57916,57916,57916,57916,57943,57943,57943,61328,57943,57943,57943,57943,57943,57943,60981,57943,60983,57943,57943,57943,57943,57943,57943,57943,57943,60078,57943,57943,57943,57943,60083,57943,57943,61332,57943,57943,57943,57943,57943,61338,57943,57943,57943,57943,528,57893,0,0,0,0,0,2797,0,0,0,0,0,0,0,0,0,0,1881,0,0,0,0,0,528,528,528,4017,528,528,528,4021,528,528,528,528,528,57893,57893,57893,57893,57893,57893,58281,57893,57893,57893,57893,57893,57893,57893,61376,57893,57893,57893,61380,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,60939,57916,60941,57916,57916,57916,57916,57916,57916,57916,57916,58881,57916,57916,57916,57916,57916,57916,58896,57916,57916,61392,57916,57916,57916,61396,57916,57916,57916,57916,57916,57916,57943,57943,57943,61242,57943,57943,57943,61245,57943,57943,57943,57943,61408,57943,57943,57943,61412,57943,57943,57943,57943,57943,57943,0,0,0,0,0,2821,0,0,0,0,0,0,0,0,0,0,1739,0,0,0,0,0,0,4270,0,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,57916,61311,57916,57916,61313,57916,57916,57916,57916,57916,57916,59497,57916,57916,59500,57916,57916,57916,57916,57916,57916,57916,61526,57916,61528,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,60415,57943,57943,57943,57943,0,528,528,57893,57893,57916,57916,57943,57943,0,528,57893,57916,57943,4308,4309,61654,61655,61656,0,528,57893,57916,57943,0,528,57893,57916,57943,0,0,0,0,0,2831,0,0,0,0,0,0,0,0,0,0,1257,0,0,0,0,1262,0,350,0,408,0,0,0,0,0,0,0,0,0,0,408,0,350,0,139264,147456,0,0,0,0,0,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,542,57908,542,57908,542,542,57908,542,542,57931,57908,542,542,57908,57908,57908,57908,57958,57958,57908,57908,57908,57908,57958,57958,57908,623,57908,57974,57931,57908,57908,57908,57908,57908,57908,57908,57931,57931,57908,57908,57958,57908,57908,57908,57974,57974,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,0,131072,0,0,0,328,0,0,330,0,0,0,0,0,0,2847,2848,0,0,0,0,0,0,0,0,0,5808128,0,0,0,0,4792320,4833280,844,528,528,528,528,528,528,528,528,528,528,528,890,528,528,528,528,528,3499,528,528,528,528,528,528,528,528,528,3508,528,908,528,528,57893,57893,58262,57893,57893,57893,57893,57893,57893,57893,57893,57893,61222,57916,57916,57916,57916,57916,57916,57893,57893,58309,57893,57893,57893,57893,58327,57893,57893,0,57916,57916,58338,57916,57916,57916,57916,58877,57916,57916,57916,57916,58883,57916,57916,57916,57916,57916,57916,59993,59994,57916,57916,57916,57916,57916,57916,60001,57916,57943,57943,57943,57943,58460,57943,57943,57943,57943,58478,57943,57943,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,1151,1724,1173,0,0,0,0,1178,0,0,0,0,0,0,0,0,0,0,2310144,0,368,0,0,0,0,0,1173,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2816,528,528,528,528,1354,528,528,528,528,1364,528,528,528,528,528,528,2491,528,2493,528,528,528,528,528,528,0,58773,914,57893,57893,57893,58779,57893,57893,57893,57893,57893,57893,57893,57893,57893,58793,57916,58874,57916,57916,57916,57916,57916,57916,57916,57916,57916,58888,57916,57916,57916,57916,57916,59448,57916,57916,57916,57916,57916,57916,57916,57916,57916,59459,58898,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59961,57916,58914,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59987,59988,58953,57916,57916,57916,57916,57916,57916,0,57893,57943,57943,57943,58968,57943,57943,57943,57943,57943,59041,57943,57943,57943,57943,57943,57943,57943,57943,59053,59054,0,1728,0,0,0,0,1735,0,0,0,0,0,0,0,0,0,3424,0,0,0,0,0,0,0,0,1761,0,0,0,0,0,0,0,0,0,0,0,0,0,3185,0,0,1775,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2840,0,0,2353,0,0,0,0,0,0,0,0,0,0,0,0,0,3201,0,0,2449,528,528,528,528,528,528,2454,528,2456,528,528,528,528,528,528,2884,528,528,528,528,528,528,528,528,528,528,2915,528,528,528,528,528,2502,0,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61387,57916,57916,57893,57893,57893,59880,57893,57893,57893,57893,57893,57893,59885,57893,59887,57893,57893,57893,0,0,2592,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,61470,57943,57943,57943,57943,57943,57943,59976,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60013,57916,60059,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59033,528,2906,528,528,528,528,528,528,528,528,528,528,528,528,528,528,1960,528,57916,57916,60383,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60367,57916,57916,0,0,3675,0,0,0,0,3931,0,0,3933,0,0,0,0,0,0,1192,0,0,0,1196,1197,0,0,0,0,528,3936,528,528,3938,528,528,528,528,528,528,528,528,528,528,528,528,3247,528,528,528,528,528,57893,61295,57893,57893,61297,57893,57893,57893,57893,57893,57893,57893,57893,57893,61456,57916,57916,57916,57916,57916,57916,0,0,800,0,800,0,0,0,0,0,0,0,0,800,0,0,0,0,307,307,307,307,307,307,307,307,307,307,307,307,307,0,307,0,528,528,528,528,860,528,528,528,528,528,528,528,528,528,528,528,528,3257,528,528,3260,57916,58355,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60368,57916,1161,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3174,528,528,528,528,58773,1987,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59910,57893,57893,57893,57893,57893,57893,57893,57943,57943,60445,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59585,57943,57943,57893,61081,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60639,57893,0,0,0,351,0,0,0,0,0,0,0,0,0,0,0,0,1746,0,0,0,0,0,0,352,0,0,0,0,0,0,0,0,0,0,0,0,1756,1757,0,0,0,0,353,351,131072,0,351,351,0,353,0,351,0,0,351,353,351,0,0,0,351,351,351,351,351,351,351,351,505,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,543,57909,543,57909,543,543,57909,543,543,57932,57909,543,543,57909,57909,57909,57909,57959,57959,57909,57909,57909,57909,57959,57959,57909,543,57909,57909,57932,57909,57909,57909,57909,57909,57909,57909,57932,57932,57909,57909,57959,57909,57909,57909,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,811,812,0,0,0,0,0,0,758,0,0,817,0,0,0,0,0,0,4082,0,0,0,0,528,528,528,528,528,3221,528,3222,528,528,528,528,0,817,0,664,0,0,0,0,0,0,0,0,0,0,0,0,1787,0,0,0,832,0,0,0,0,0,0,812,0,0,0,0,0,0,0,528,528,528,528,528,2873,528,528,528,528,2877,528,528,528,0,2503,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61087,57893,57893,57893,57893,528,850,528,528,528,866,870,528,528,528,528,528,891,893,528,528,0,2932,0,0,0,0,57893,57893,57893,60280,57893,60281,57893,57893,57893,50676,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59473,904,528,528,528,57893,57893,58263,58269,57893,57893,57893,58285,58289,57893,57893,57893,0,2590,0,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,59970,57916,57916,57916,57916,57916,57916,57893,57893,58310,58312,57893,57893,58323,57893,57893,57893,0,57916,57916,58339,58345,57916,0,0,0,0,57893,57943,57943,58412,57943,57943,57943,58429,57943,57943,58445,57916,57916,58361,58365,57916,57916,57916,57916,57916,58386,58388,57916,57916,58399,57916,57916,57916,57916,58904,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60945,57916,57916,57916,57916,57943,57943,57943,57943,58461,58463,57943,57943,58474,57943,57943,57943,850,528,893,528,528,0,58270,58266,58491,58314,57893,57893,155942,1151,0,0,1154,0,0,0,0,0,245760,245760,245760,245760,245760,245760,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4358144,4358144,4358144,904,528,0,57893,58269,58312,57893,58323,57893,155942,1151,0,302,0,0,306,307,0,0,0,0,0,0,0,0,0,0,0,0,0,1772,0,0,0,0,0,1217,0,1219,0,1221,0,0,0,0,0,0,0,0,1286,0,0,0,0,0,0,0,0,1247,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3839,0,1332,0,0,0,0,0,0,0,528,528,528,528,528,528,528,528,528,528,528,528,3850,528,528,1374,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2461,528,528,528,1412,528,528,528,528,528,528,528,528,1424,1425,528,528,0,57893,57893,57893,57893,57893,57893,294,1151,0,0,0,0,0,0,0,5480448,4358144,4358144,4358144,4358144,4857856,4874240,4358144,4358144,58773,914,57893,57893,57893,57893,58780,57893,57893,57893,57893,57893,57893,57893,57893,57893,60289,57893,57893,57893,57893,57893,60294,57893,57916,57916,58875,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60378,57916,57916,57916,57916,58932,57916,57916,57916,57916,57916,57916,57916,58946,57916,57916,57916,57916,57916,57916,61241,57943,57943,57943,57943,57943,57943,57943,61246,57943,57916,57916,57916,58958,58959,57916,57916,0,57893,57943,57943,57943,57943,58969,57943,57943,3648,528,528,60995,57893,57893,0,0,0,0,0,0,0,0,1815,0,0,0,0,0,0,0,57943,59e3,59002,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59602,57943,57943,0,1808,0,0,0,0,0,0,0,0,0,0,0,0,0,0,212992,0,528,528,1966,528,528,528,528,528,528,528,528,528,1975,528,528,528,528,528,3513,3515,528,528,528,3518,528,3520,3521,528,57893,528,1981,528,528,58773,0,57893,57893,57893,57893,57893,57893,57893,59338,57893,57893,57893,50676,2087,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60674,57916,57916,57916,57916,57893,59409,57893,57893,57893,57893,57893,57893,57893,57893,57893,59419,57893,57893,57893,57893,57893,59907,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,0,57916,57916,58340,57916,57916,59425,57893,57893,50676,0,57916,57916,57916,57916,57916,57916,57916,59438,57916,57916,57916,57916,57916,61116,57916,57916,57916,57916,57916,57916,57916,57916,61124,57916,59509,57916,57916,57916,57916,57916,57916,57916,57916,57916,59519,57916,57916,57916,57916,59525,57943,57943,59559,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59620,57943,57943,2393,0,2395,0,0,0,0,0,0,0,0,0,0,2403,0,0,0,0,343,390,0,0,0,139264,147456,0,0,0,423,0,0,0,2408,2409,0,0,0,0,0,2413,0,0,0,0,0,0,0,3153,0,0,0,0,0,0,0,0,378,0,0,0,0,0,0,0,0,2419,528,528,528,528,528,528,2426,528,528,528,528,528,528,528,1394,528,528,528,528,528,528,528,528,2886,528,528,528,528,528,528,528,528,528,2450,528,528,528,528,528,528,528,528,2457,528,2459,528,2462,528,528,528,2476,528,528,528,528,528,528,528,528,528,528,528,528,528,61371,57893,57893,0,0,0,59849,57893,57893,57893,57893,57893,57893,57893,59857,57893,57893,57893,57893,57893,60301,57893,57893,57893,57893,57893,57893,57893,60306,57893,57893,59890,57893,59893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60304,57893,57893,57893,57893,59902,57893,57893,57893,57893,57893,59908,57893,57893,57893,57893,57893,57893,57893,57893,57893,60330,57893,57893,57893,60333,60334,57893,57893,57916,57916,59977,57916,59979,57916,59982,57916,57916,57916,57916,57916,57916,57916,57916,57916,60363,57916,60365,57916,57916,57916,57916,57916,57916,57916,57916,59991,57916,57916,57916,57916,57916,59997,57916,57916,57916,57916,57916,57916,61606,57943,57943,57943,57943,57943,57943,57943,0,0,57943,57943,60060,57943,60062,57943,60065,57943,57943,57943,57943,57943,57943,57943,57943,57943,59007,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60074,57943,57943,57943,57943,57943,60080,57943,57943,57943,57943,57943,57943,59612,57943,57943,57943,57943,57943,57943,57943,57943,57943,0,0,4240,0,0,0,528,0,0,0,2819,0,0,0,0,0,0,0,0,0,0,2827,0,0,0,0,131072,0,0,0,357,0,0,0,0,359,0,0,400,0,0,0,0,0,139264,147456,400,411,0,424,411,2841,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3187,528,2880,528,528,528,528,528,2885,528,528,528,528,528,528,528,528,3502,528,528,528,528,528,528,528,57893,57893,57893,60310,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60628,57893,57893,57893,57893,57916,60356,57916,57916,57916,57916,57916,60361,57916,57916,57916,57916,57916,57916,57916,57916,59953,57916,59955,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,60421,57943,57943,57943,57943,57943,60426,57943,57943,57943,57943,57943,57943,60064,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59566,57943,57943,57943,57943,57943,57893,60652,57893,57893,57893,57893,0,0,57916,57916,57916,57916,57916,60661,57916,60662,57916,57916,57916,57916,60701,57916,57916,57916,57916,57943,57943,57943,57943,57943,60710,57943,57943,57943,57943,57943,61481,57943,57943,61483,57943,0,0,0,0,0,0,0,2808,0,0,0,0,0,0,0,0,350,0,0,0,0,0,0,0,60711,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59587,528,3483,528,528,528,528,528,528,528,528,528,528,528,528,528,528,1978,528,60867,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59929,57916,60909,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60395,57916,57916,57943,60951,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60069,57943,57943,0,3670,0,0,0,0,0,0,0,0,0,0,0,0,0,0,278528,0,0,0,3675,0,0,0,3930,0,0,0,0,0,0,0,0,0,3476,0,0,0,0,0,0,3935,528,528,528,528,3939,528,528,528,528,528,528,528,528,528,3948,528,528,61294,57893,57893,57893,57893,61298,57893,57893,57893,57893,57893,57893,57893,57893,60342,57893,57893,0,0,0,3e3,0,57893,61307,57893,57893,57893,61310,57916,57916,57916,57916,61314,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,0,0,0,0,528,528,528,3219,528,528,528,528,528,3224,528,528,57916,57916,57916,57916,61323,57916,57916,57916,61326,57943,57943,57943,57943,61330,57943,57943,57943,57943,57943,60089,60090,60091,57943,57943,57943,57943,57943,57943,57943,57943,57943,59615,57943,57943,57943,57943,59621,57943,4090,528,528,528,528,528,528,528,528,528,57893,57893,57893,57893,57893,61447,0,0,0,4149,0,528,528,528,528,528,528,528,528,528,528,528,528,528,3851,528,528,528,528,528,4248,528,57893,57893,57893,57893,57893,61598,57893,57893,57916,57916,57916,57916,58919,57916,57916,58923,57916,57916,57916,57916,57916,57916,57916,57916,61572,61573,57916,57916,57943,57943,57943,57943,57916,57916,57916,61604,57916,57916,57943,57943,57943,57943,57943,61610,57943,57943,0,0,0,0,363,0,0,0,0,139264,147456,0,0,0,0,0,0,1307,0,528,528,1339,528,1342,528,528,528,4269,0,4271,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,57916,0,0,0,0,57893,57943,57943,58413,57943,57943,57943,57943,57943,57943,57943,57943,61582,0,0,0,0,0,0,528,388,0,354,0,0,0,0,0,397,398,0,399,0,0,0,0,0,0,4208,528,528,528,528,528,528,528,528,528,1380,528,528,528,528,528,528,371,379,407,0,0,0,371,0,0,354,0,0,0,371,0,410,412,0,371,399,0,0,371,379,0,139264,147456,399,410,0,0,410,0,0,0,433,131072,0,433,433,443,0,0,433,0,412,433,0,0,0,0,131072,0,0,0,438,0,0,0,0,0,311,0,0,0,0,2796,0,0,0,0,0,0,0,0,0,0,0,450560,450560,0,0,0,465,0,0,0,493,493,493,493,493,493,493,493,493,493,515,515,515,515,515,527,515,515,515,527,515,515,515,515,515,515,544,57910,544,57910,544,544,57910,544,544,57933,57910,544,544,57910,57910,57910,57910,57960,57960,57910,57910,57910,57910,57960,57960,57910,624,57910,57975,57933,57910,57910,57910,57910,57910,57910,57910,57933,57933,57910,57910,57960,57910,57910,57910,57975,57975,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,0,131072,0,0,0,441,342,0,0,0,453,0,342,343,344,0,0,0,0,0,0,0,0,0,0,0,0,0,2853,0,0,0,306,307,0,0,0,643,0,0,0,0,0,0,0,0,0,3687,0,0,0,0,0,0,669,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3428,845,528,528,528,528,528,528,876,878,528,528,528,528,528,528,528,1415,528,528,528,528,528,528,1426,528,528,528,528,528,57893,57893,58264,57893,57893,57893,57893,57893,57893,58295,58297,57893,57893,57893,57893,58803,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59384,57893,57893,57893,57893,58448,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,528,528,528,528,528,57893,57893,57893,57893,57893,2290,1725,2291,0,0,0,0,0,1309,1335,1336,0,1309,528,528,528,528,528,528,1344,528,528,528,528,528,3706,528,528,528,528,528,528,528,528,528,528,528,1974,528,528,528,528,528,528,1348,528,528,1359,528,528,1363,528,528,528,528,528,528,528,1416,528,528,528,528,528,528,528,528,3709,528,528,528,528,528,528,528,58773,914,57893,57893,57893,57893,57893,57893,57893,58783,57893,57893,57893,58787,57893,57893,57893,57893,57893,60623,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58845,57893,57893,57893,57893,57893,58798,57893,57893,58802,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60638,57893,57893,57893,57893,57916,58916,57916,57916,57916,58920,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59469,57916,57916,57916,57916,57916,58972,57943,57943,57943,58976,57943,57943,58987,57943,57943,58991,57943,57943,57943,57943,57943,57943,60076,60077,57943,57943,57943,57943,57943,57943,60084,57943,59014,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59604,1745,1746,0,0,0,0,0,0,0,0,0,0,0,0,0,0,507904,0,0,0,0,1778,0,0,0,0,0,0,0,0,0,0,0,0,1828,0,0,0,1791,0,1793,0,0,0,1797,0,0,0,1801,0,0,0,1805,0,0,0,0,131072,0,0,0,442,0,0,0,449,0,0,0,0,0,2846,0,0,0,0,0,0,0,0,0,0,1224,0,0,0,0,0,1980,528,528,528,58773,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60625,57893,57893,57893,57893,57893,57893,57893,57943,57943,57943,57943,59545,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60068,57943,57943,57943,0,0,2314,0,2315,0,0,0,0,0,0,0,0,0,0,0,262738,0,0,0,0,2377,0,0,0,0,0,0,2384,0,0,0,0,0,0,0,0,1326,1327,0,0,1167,0,0,0,0,528,528,2421,528,528,528,528,528,528,528,528,528,528,528,528,888,528,528,528,528,528,528,528,2489,528,528,528,528,528,528,528,528,528,528,0,0,57893,57893,57893,57893,60611,57893,57893,57893,57893,57893,57893,59868,57893,57893,57893,57893,57893,57893,57893,57893,57893,58330,0,57916,57916,57916,57916,58347,0,0,0,57893,57893,59851,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60901,57893,57893,57893,57893,57893,57893,57893,60113,0,0,1729,0,0,1736,0,0,0,0,0,0,0,0,0,139264,147456,0,0,0,0,0,0,0,2858,0,0,0,0,0,0,0,0,0,2864,0,0,0,0,0,3152,0,0,0,0,0,0,0,0,0,3158,57893,57893,57893,57893,60311,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60890,57893,60892,57893,57893,60323,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60295,60443,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60455,57943,57943,57943,57943,57943,59593,57943,57943,59596,57943,57943,57943,57943,57943,57943,57943,57943,59551,57943,57943,57943,57943,57943,57943,57943,57943,59565,57943,57943,57943,57943,57943,57943,57943,57943,59580,57943,57943,57943,57943,57943,57943,57943,57943,59614,57943,57943,57943,57943,57943,57943,57943,57943,60037,57943,57943,60041,57943,57943,57943,60045,0,0,3190,0,0,0,0,3195,0,0,0,0,0,0,0,0,1783,1784,1785,0,0,0,0,0,3250,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2472,57893,57893,60642,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61385,57893,57916,57916,57916,0,3468,3469,0,0,0,0,3474,0,0,0,0,0,0,0,0,1799,0,0,0,0,0,0,0,0,0,3681,0,0,0,3684,0,0,0,0,0,0,0,0,3692,57893,61092,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,0,0,0,0,4290,528,3813,57893,57893,61159,3816,0,0,0,0,3820,0,0,0,0,0,0,1236,0,0,0,0,0,0,0,0,0,2799,0,0,0,0,0,0,0,3833,0,0,0,0,3837,0,0,0,0,0,0,0,0,3840,0,528,528,528,3842,528,528,528,3845,528,528,528,528,528,528,528,1938,528,528,528,528,528,528,528,528,3235,528,528,3238,528,528,528,528,57893,57893,57893,61207,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61084,57893,57893,57893,57893,57893,57893,57893,61226,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60407,57916,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61302,57893,61304,57893,57893,57893,57893,58819,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59913,57893,57893,57893,57893,57916,61320,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,4268,0,57943,57943,61334,57943,61336,57943,57943,57943,57943,57943,57943,528,57893,0,0,0,0,0,3164,0,0,0,0,3169,0,0,0,0,0,0,1220,0,0,0,0,0,1226,0,1228,0,4146,0,0,0,0,528,528,528,528,528,528,528,528,528,528,4160,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61516,57893,57893,57893,0,2591,0,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,59996,57916,57916,57916,57916,57916,57916,528,528,57893,57893,61560,57893,61561,57893,57893,57893,57893,57893,57893,57893,57893,57916,0,0,0,0,57893,57943,57943,58414,58420,57943,57943,57943,58436,58440,57943,57943,57943,57943,57943,61411,57943,61413,61414,57943,61416,57943,61418,0,0,0,0,0,1849,0,0,0,0,0,0,1748,0,0,0,0,0,1864,0,0,0,0,0,0,0,0,0,0,2401,0,0,0,0,0,57916,61568,57916,61569,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,61576,57943,57943,57943,57943,57943,61539,57943,61541,57943,57943,57943,57943,0,0,0,0,0,0,3435,0,0,0,0,0,0,0,0,0,1273,0,0,0,0,0,0,61577,57943,57943,57943,57943,57943,57943,57943,57943,0,0,0,0,0,0,528,528,528,2871,2872,528,528,528,528,528,528,528,528,528,528,3237,528,528,528,528,528,358,359,360,0,0,0,0,0,0,0,0,0,368,0,296,0,0,0,0,131072,0,352256,352256,0,0,0,352256,0,0,352256,0,352256,352256,352256,352256,352256,352256,352256,352256,352256,352256,352256,352256,352256,352256,352256,352256,0,482,482,482,0,0,0,0,0,0,0,0,0,0,516,516,520,520,520,520,520,516,520,520,520,516,520,520,520,520,520,520,545,57911,545,57911,545,545,57911,545,545,57934,57911,545,545,57911,57911,57911,57911,57961,57961,57911,57911,57911,57911,57961,57961,57911,625,57911,57976,57934,57911,57911,57911,57911,57911,57911,57911,57934,57934,57911,57911,57961,57911,57911,57911,57976,57976,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,0,245760,0,0,245760,0,0,245760,0,0,245760,0,245760,0,0,0,0,0,0,0,0,0,0,0,0,0,516567,516567,516567,0,306,307,0,0,0,0,644,0,0,0,0,0,0,0,0,1837,0,0,0,0,0,0,0,0,0,687,688,0,0,0,0,0,0,0,0,0,0,0,368,368,0,0,0,760,0,0,0,0,765,0,0,0,0,0,0,0,0,0,0,4841472,0,0,0,4898816,0,794,0,0,0,0,0,0,0,0,0,0,803,0,808,0,0,0,0,392,0,0,0,396,392,0,0,0,0,0,0,0,2823,0,0,0,0,0,0,0,0,677,0,0,0,0,0,0,0,0,0,0,820,0,0,0,0,0,644,0,0,0,0,0,0,0,3436,0,0,0,0,0,0,0,0,681,0,0,0,0,0,0,680,0,0,794,0,0,0,0,0,0,0,0,644,0,0,794,528,528,528,528,528,3717,528,528,528,528,528,528,528,528,528,528,1381,528,528,528,528,528,846,528,528,528,528,867,871,877,528,882,528,528,528,528,528,900,528,528,528,528,57893,57893,58265,57893,57893,57893,57893,58286,58290,58296,57893,58301,57916,57916,58362,58366,58372,57916,58377,57916,57916,57916,57916,57916,58395,57916,57916,57916,57916,57916,61231,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60686,57916,57916,57916,57916,57916,57943,58452,57943,57943,57943,57943,57943,58470,57943,57943,57943,57943,528,528,528,900,1215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3441,1264,0,0,0,0,0,1269,0,0,0,0,0,1274,0,0,0,0,0,3179,0,0,0,0,0,0,0,0,0,0,679,0,0,0,0,0,0,1294,0,0,1165,0,0,0,1300,0,1302,0,0,0,0,0,0,1284,0,0,0,0,0,0,0,0,0,1301,0,0,0,0,0,0,0,1300,1319,0,1322,0,0,0,1196,0,0,0,0,1330,0,0,1215,1330,1337,528,528,528,528,1343,528,528,528,528,1349,528,528,528,528,528,528,528,528,528,528,1370,528,528,0,57893,57893,57893,57893,57893,57893,155942,0,0,0,0,0,0,0,1285,0,0,0,0,1290,0,0,0,58773,914,58775,57893,57893,57893,57893,57893,58782,57893,57893,57893,57893,58788,57893,57893,57893,57893,57893,60872,57893,57893,57893,57893,57893,60876,57893,57893,57893,57893,57893,58860,57893,57893,57893,57893,57893,50676,58773,990,57916,57916,57916,58917,57916,57916,57916,57916,58922,57916,57916,57916,57916,57916,57916,57916,57916,57916,60403,57916,57916,57916,60406,57916,57916,58930,57916,57916,57916,58937,58939,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59957,57916,57916,57916,57916,57916,57943,57943,57943,57943,58977,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,58998,57943,59016,57943,57943,57943,57943,57943,59021,57943,57943,57943,59025,57943,57943,57943,59032,59034,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59622,57943,59057,528,528,528,528,528,528,57893,57893,57893,57893,57893,57893,1151,0,0,0,0,385024,0,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5259264,4358144,4358144,4358144,4358144,0,0,1729,0,0,0,0,1736,0,0,0,0,0,0,0,0,1880,0,0,0,0,0,0,0,0,0,1747,1748,0,0,0,0,0,1754,0,0,0,0,0,0,0,3447,0,0,0,0,0,3450,0,3452,0,1776,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5177344,0,0,0,0,0,1794,0,0,0,0,0,0,0,1802,1803,0,0,0,0,0,3207,0,0,0,0,0,0,0,0,0,0,3183,0,0,0,0,0,0,0,0,1810,0,0,0,0,0,0,0,0,0,0,0,0,1841,0,1843,0,0,0,1874,0,0,0,0,0,0,0,0,0,0,0,0,0,3213,0,0,528,528,528,1901,528,528,528,528,1907,528,528,528,528,528,528,528,2441,528,528,528,528,528,528,528,528,3720,528,528,528,528,528,528,528,528,528,528,1918,528,528,528,528,1922,528,528,528,528,528,528,528,2466,2467,528,528,528,528,528,528,528,1417,528,528,528,528,528,528,528,528,3856,528,528,528,57893,57893,57893,57893,528,528,528,528,1968,1969,528,528,528,528,528,528,528,528,528,528,1924,1925,528,528,528,528,57893,57893,59344,57893,57893,57893,57893,59350,57893,57893,57893,57893,57893,57893,57893,57893,61212,57893,57893,57893,57893,57893,57893,57893,57893,57893,59361,57893,57893,57893,57893,59365,57893,57893,57893,57893,57893,57893,57893,57893,59883,57893,57893,57893,59886,57893,57893,57893,57893,57893,57893,57893,57893,59378,57893,57893,57893,59383,57893,57893,57893,57893,57893,57893,57893,59909,57893,57893,57893,57893,57893,57893,57893,59915,57893,57893,57893,59412,59413,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59921,57893,57893,57893,57893,57893,57893,57893,57893,59351,57893,57893,57893,57893,57893,57893,57893,57916,59444,57916,57916,57916,57916,59450,57916,57916,57916,57916,57916,57916,57916,57916,57916,60685,57916,57916,57916,57916,57916,57916,57916,59461,57916,57916,57916,57916,59465,57916,57916,57916,57916,57916,57916,57916,57916,57916,60943,57916,57916,57916,57916,57916,57916,57916,57916,57916,59478,57916,57916,57916,59483,57916,57916,57916,57916,57916,57916,57916,57916,60021,57943,57943,57943,57943,57943,57943,57943,60029,57916,57916,59512,59513,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59470,57916,57916,57916,57943,57943,57943,57943,59546,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59557,57943,57943,57943,57943,59561,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60082,57943,57943,57943,57943,59574,57943,57943,57943,59579,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60735,57943,57943,57943,57943,57943,59608,59609,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60095,57943,57943,2302,2303,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5767168,0,2339,0,0,2341,2342,0,0,0,0,0,0,0,0,0,0,0,335872,0,0,0,0,528,2434,528,528,2438,528,528,528,2442,528,528,528,528,528,528,528,2912,528,528,528,528,528,528,528,528,528,3857,528,528,57893,57893,57893,57893,528,528,528,528,2452,528,528,528,2455,528,528,528,528,528,528,528,2925,528,528,528,2928,528,528,528,528,528,2487,528,528,528,528,528,2492,528,528,528,528,528,528,528,0,0,57893,57893,57893,60610,57893,57893,57893,57893,57893,60615,57893,0,2503,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60288,57893,57893,60291,60292,57893,57893,57893,57893,57893,57893,57893,57893,59865,57893,57893,59869,57893,57893,57893,59873,57893,57893,57893,57893,57893,60312,57893,57893,57893,57893,57893,57893,57893,60320,57893,57893,59916,57893,57893,57893,57893,59920,57893,57893,57893,57893,57893,59925,57893,57893,57893,57893,57893,60328,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,58867,50676,58773,990,58870,57916,57916,57916,57916,57916,60005,57916,57916,57916,57916,60009,57916,57916,57916,57916,57916,60014,57943,57943,57943,57943,60088,57943,57943,57943,57943,60092,57943,57943,57943,57943,57943,60097,2856,0,0,0,0,0,0,0,0,0,0,2863,0,0,0,0,0,0,212992,0,0,0,0,0,212992,212992,212992,212992,2893,528,528,528,528,2896,528,528,2898,528,2899,528,528,528,528,528,1356,528,1361,528,528,1365,528,528,1368,528,528,528,528,528,2907,528,528,2911,528,528,528,528,528,528,528,528,528,2494,528,528,2497,2498,528,0,2920,528,528,528,2923,528,528,528,528,528,528,528,528,528,528,528,528,3506,3507,528,528,57893,60308,57893,57893,57893,57893,57893,57893,57893,57893,57893,60317,57893,57893,60321,57893,57893,57893,57893,58835,57893,57893,57893,58842,58844,57893,57893,57893,57893,57893,57893,59381,57893,57893,57893,57893,57893,57893,57893,57893,57893,60902,57893,57893,60905,57893,57893,57893,0,57916,57916,60346,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60354,60369,57916,57916,57916,57916,60372,57916,57916,60374,57916,60375,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,4288,0,0,0,528,57916,57916,57916,57916,60384,57916,57916,60388,57916,57916,57916,57916,57916,57916,57916,57916,60402,57916,57916,57916,57916,57916,57916,57916,57916,59995,57916,57916,57916,57916,6e4,57916,57916,57916,60397,57916,57916,57916,60400,60401,57916,57916,57916,57916,57916,57916,57916,57916,57916,60683,57916,57916,57916,57916,57916,57916,57916,57916,59452,57916,57916,57916,57916,57916,57916,57916,57943,57943,60419,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60469,57943,57943,57943,57943,57943,60434,57943,57943,57943,57943,60437,57943,57943,60439,57943,60440,57943,57943,57943,57943,57943,60422,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61155,57943,57943,57943,528,57943,57943,57943,57943,60462,57943,57943,57943,60465,60466,57943,57943,57943,57943,57943,57943,57943,60752,57943,57943,528,528,528,57893,57893,57893,0,0,0,0,0,3658,0,0,3228,528,528,528,528,3233,528,528,528,3236,528,528,528,528,528,528,3255,528,528,528,528,528,528,528,528,528,528,2482,528,528,528,528,528,3261,528,528,0,0,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60616,57893,60619,57893,57893,57893,57893,60624,57893,57893,57893,60627,57893,57893,57893,57893,57893,58805,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,61460,57916,57893,57893,57893,60654,57893,57893,0,0,57916,57916,57916,57916,57916,57916,57916,57916,60692,57916,57916,57916,57916,57916,57916,57916,57916,59499,57916,57916,57916,57916,57916,57916,57916,57916,57916,60665,57916,60668,57916,57916,57916,57916,60673,57916,57916,57916,60676,57916,57916,57916,57916,58935,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58887,57916,57916,57916,57916,57943,57943,57943,60714,57943,60717,57943,57943,57943,57943,60722,57943,57943,57943,60725,57943,57943,57943,57943,57943,61580,61581,57943,57943,0,0,0,0,4242,0,528,528,528,528,528,528,528,528,2427,528,528,528,528,2431,528,0,3454,0,3455,0,0,0,0,0,0,0,0,0,0,0,0,1883,0,0,0,528,528,528,3485,528,528,528,528,528,528,528,528,528,528,528,528,1384,528,528,528,528,528,3497,528,528,528,528,528,528,528,528,3505,528,528,528,528,528,2453,528,528,528,528,528,528,528,528,528,528,1382,528,528,528,1386,528,57893,57893,60869,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60637,57893,57893,57893,57893,57893,57893,57893,57893,60314,57893,57893,57893,57893,57893,57893,57893,57893,60341,57893,57893,57893,0,2999,0,0,0,57893,60881,57893,57893,57893,57893,57893,57893,57893,57893,60889,57893,57893,57893,57893,57893,58820,57893,57893,57893,57893,57893,57893,57893,58829,57893,57893,57916,57916,57916,60911,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59503,57916,57916,57916,57916,57916,60923,57916,57916,57916,57916,57916,57916,57916,57916,60931,57916,57916,57916,57916,57916,59481,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,58911,57916,57916,57916,57916,57916,57916,57943,57943,57943,60953,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60094,57943,57943,57943,57943,57943,57943,60965,57943,57943,57943,57943,57943,57943,57943,57943,60973,57943,57943,57943,57943,57943,60050,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60745,57943,57943,57943,0,3680,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3439,0,0,0,0,0,3693,3694,0,0,0,0,528,528,528,528,528,528,528,2875,528,528,528,528,528,528,528,528,3704,528,528,528,528,528,528,528,528,528,528,528,528,528,528,3494,528,528,3714,528,528,528,528,528,3719,528,3721,528,528,528,528,528,528,3488,528,528,528,528,528,3492,528,528,528,61091,57893,61093,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,57943,57943,57943,57943,57943,57943,57943,61131,61132,57943,57943,57916,57916,57916,57916,61104,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61110,57916,57916,57916,57916,57916,57916,57916,61114,57916,57916,57916,57916,57916,57916,61120,57916,61122,57916,57916,57916,57916,57916,61324,57916,57916,57943,57943,57943,57943,57943,57943,57943,57943,57943,60970,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,61149,57943,61151,57943,57943,57943,57943,57943,57943,57943,57943,528,2761,528,528,528,57893,60110,57893,57893,528,528,57893,57893,57893,0,0,0,3818,0,0,0,0,0,0,0,722,0,724,0,0,0,0,0,0,0,0,3823,0,0,0,0,0,0,0,3675,0,0,0,0,3831,0,528,528,528,528,528,3843,528,528,528,3847,528,528,528,528,528,1357,528,528,528,528,528,528,528,528,528,528,528,1422,528,528,528,528,57893,61205,57893,57893,57893,61209,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60886,57893,57893,57893,57893,57893,57893,57893,57893,59896,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61218,57893,57893,57893,57893,57916,57916,57916,57916,57916,61224,57916,0,0,0,0,57893,57943,57943,58415,57943,57943,57943,57943,57943,57943,58446,57916,57916,61228,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60697,57916,57916,57916,61237,57916,57916,57916,57916,57943,57943,57943,57943,57943,61243,57943,57943,57943,61247,528,4162,57893,57893,57893,61510,57893,57893,57893,57893,57893,57893,57893,57893,61518,57893,57893,57893,57893,58858,57893,57893,57893,57893,57893,57893,50676,58773,990,57916,57916,57916,57916,58903,57916,57916,57916,57916,57916,57916,57916,57916,57916,58913,57916,57916,57916,57916,61523,57916,57916,57916,57916,57916,57916,57916,57916,61531,57916,57943,57943,57943,57943,57943,60955,57943,57943,57943,57943,57943,57943,57943,57943,57943,59581,57943,57943,57943,57943,57943,57943,57943,61536,57943,57943,57943,57943,57943,57943,57943,57943,61544,57943,0,0,0,0,0,0,262144,262144,0,0,0,0,0,0,0,0,0,0,4203,4204,4205,0,4207,528,528,528,528,528,528,528,528,528,4213,4214,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,61564,61565,57893,57893,57916,0,0,0,0,57893,57943,57943,58416,57943,57943,57943,57943,58437,58441,58447,528,528,528,57893,57893,57893,57893,57916,57916,57916,57916,57943,57943,57943,57943,4298,0,528,4299,57893,61644,57916,61645,57943,61646,0,528,57893,57916,57943,0,528,528,528,528,528,528,2425,528,528,528,528,528,528,528,528,528,3246,528,528,528,528,528,528,0,0,0,361,362,0,0,0,0,0,0,0,368,0,296,0,0,0,0,393685,0,393685,393685,393685,0,393685,393685,393685,393685,393685,393685,0,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,1731,0,0,0,0,0,0,0,1741,1742,0,0,0,0,0,278528,278528,0,0,0,0,0,0,0,0,0,416,416,0,0,0,0,0,426,426,0,0,131072,426,0,0,0,0,426,0,0,454,0,426,0,483,483,483,0,0,362,362,362,502,362,362,362,362,483,483,483,483,483,483,483,483,483,483,483,483,483,483,483,483,546,57912,546,57912,546,546,57912,546,546,57935,57912,546,546,57912,57912,57912,57912,57962,57962,57912,57912,57912,57912,57962,57962,57912,546,57912,57912,57935,57912,57912,57912,57912,57912,57912,57912,57935,57935,57912,57912,57962,57912,57912,57912,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,368,368,0,703,0,0,0,0,0,0,0,0,0,0,0,0,2298,0,0,0,905,528,528,528,57893,57893,57893,57893,57893,57893,57893,58287,57893,57893,57893,57893,57893,60340,57893,57893,57893,57893,57893,0,2999,0,0,0,57893,58306,57893,57893,57893,57893,58324,57893,57893,57893,0,57916,57916,57916,57916,57916,57943,57943,57943,61129,57943,57943,57943,57943,57943,57943,57943,57943,60741,57943,57943,57943,57943,57943,57943,57943,57943,60753,57943,528,528,528,57893,57893,57893,57916,57916,58363,57916,57916,57916,57916,57916,58382,57916,57916,57916,57916,58400,57916,57916,57916,57916,58936,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60392,57916,57916,57916,57916,57916,0,0,0,0,58306,57943,57943,57943,57943,57943,57943,57943,58438,57943,57943,57943,57943,57943,60448,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60427,57943,57943,57943,57943,57943,57943,57943,58457,57943,57943,57943,57943,58475,57943,57943,57943,528,528,528,528,2284,57893,57893,57893,57893,59633,2290,0,2291,0,0,905,528,0,57893,57893,57893,57893,58324,57893,155942,1151,0,1152,0,0,1157,0,0,0,1266,0,0,0,0,0,0,0,1266,0,0,0,0,0,0,450560,0,0,450560,0,450560,450560,450560,450560,450560,450560,450560,450560,450560,450560,450560,450560,450560,450560,450560,450560,1346,528,528,528,1355,528,528,528,528,528,528,528,528,528,528,528,528,3711,528,528,528,58773,914,57893,57893,57893,57893,57893,57893,57893,57893,57893,58785,57893,57893,57893,58794,57893,57893,58855,57893,57893,57893,57893,57893,57893,57893,57893,50676,58773,990,57916,57916,57916,57916,58938,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61121,57916,57916,57916,57916,57943,57943,58974,57943,57943,57943,58983,57943,57943,57943,57943,57943,57943,57943,57943,57943,59045,57943,57943,57943,57943,57943,57943,0,0,0,1730,0,0,0,0,1737,0,0,0,0,0,0,0,739,0,0,0,0,0,0,0,0,1271,0,0,0,0,0,0,0,0,0,0,1762,0,0,0,0,0,0,0,1770,1771,0,0,0,0,0,3422,0,0,0,0,0,0,0,3426,0,0,0,0,0,1834,0,0,0,0,0,0,0,1840,0,0,0,0,0,0,532480,0,0,0,0,0,0,0,0,0,694,0,0,0,0,0,368,0,0,1846,0,1848,0,0,0,0,0,0,0,0,0,0,0,376832,0,376832,0,0,1915,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2499,528,1930,528,528,528,528,528,528,528,528,528,528,528,1943,528,528,0,57893,57893,57893,57893,57893,57893,155942,1151,0,0,0,0,0,0,0,4857856,4874240,0,0,0,0,0,0,0,796,0,0,0,0,805,0,0,0,59373,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59386,57893,57893,57893,2588,0,0,0,57916,57916,57916,57916,57916,57916,57916,57916,57916,60352,57916,57916,57916,57916,57916,57893,57893,59411,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59422,57893,57893,57893,57893,57893,60884,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60903,57893,57893,57893,57893,57893,57916,59511,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59522,57916,57916,57916,57916,57916,61395,57916,61397,61398,57916,61400,57916,61402,57943,57943,57943,3916,528,61261,57893,0,0,0,0,0,0,0,0,0,0,2774,0,0,0,0,59607,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59618,57943,57943,57943,57943,57943,58978,57943,57943,57943,57943,57943,57943,57943,57943,57943,58997,0,0,2326,0,0,0,0,0,0,0,0,0,0,0,0,0,221652,221652,221652,0,0,2504,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61097,57893,57893,57893,57916,57916,57916,57916,57916,528,3229,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2447,528,60618,57893,60620,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61211,57893,57893,57893,57893,57893,57893,57893,57893,59870,57893,57893,57893,57893,59875,57893,57893,57916,57916,57916,60667,57916,60669,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60404,57916,57916,57916,57916,57916,60698,57916,57916,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,60709,57943,57943,57943,57943,57943,60463,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59599,57943,57943,57943,59605,57943,57943,57943,57943,60716,57943,60718,57943,57943,57943,57943,57943,57943,57943,57943,57943,59046,57943,57943,57943,57943,57943,57943,57943,60747,57943,57943,57943,57943,57943,57943,57943,57943,528,528,528,57893,57893,57893,0,0,0,3656,0,0,0,0,0,0,0,3432,0,0,0,0,0,0,0,0,0,0,0,0,2323,2324,0,0,57943,57943,61250,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60724,57943,57943,0,4147,0,0,0,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,0,4161,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61517,57893,57893,57893,57893,57893,60898,60900,57893,57893,57893,57893,60904,57893,60906,60907,57893,57916,57916,57916,61627,57916,57943,57943,57943,57943,61631,57943,0,0,0,0,528,528,2870,528,528,528,528,528,528,528,528,528,528,2878,373,373,0,0,131072,373,0,0,0,0,373,0,0,0,0,373,547,57913,547,57913,547,547,57913,547,547,57936,57913,547,547,57913,57913,57913,57913,57963,57963,57913,57913,57913,57913,57963,57963,57913,547,57913,57913,57936,57913,57913,57913,57913,57913,57913,57913,57936,57936,57913,57913,57963,57913,57913,57913,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,528,528,528,528,861,528,528,528,528,528,528,528,528,528,528,528,528,3723,528,528,528,57916,58356,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60677,57916,57893,58799,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,61221,57893,57916,57916,57916,57916,57916,57916,57916,57943,57943,60023,57943,57943,57943,57943,57943,57943,528,528,1931,528,528,528,528,528,528,528,528,528,528,528,528,528,1401,528,528,57893,59374,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,59882,57893,57893,57893,57893,57893,57893,57893,57893,57893,60290,57893,57893,57893,57893,57893,57893,59474,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60920,57916,0,0,0,3824,0,3825,0,0,0,0,3675,0,0,0,0,0,0,0,0,0,0,0,0,0,1227,0,0,0,0,0,364,0,0,0,0,0,0,0,0,0,0,364,0,0,0,0,0,0,0,0,0,0,0,0,2335,0,0,0,365,0,0,0,0,364,0,0,0,139264,147456,0,0,0,0,0,0,1324,0,0,0,0,0,0,0,0,0,1166,0,0,0,0,0,0,0,0,0,434,131072,0,434,434,0,0,0,434,0,365,434,0,0,0,0,401408,0,0,0,0,0,0,0,0,0,0,0,0,6471680,0,0,0,466,0,0,0,494,494,497,497,497,497,503,504,497,497,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,548,57914,548,57914,548,548,57914,548,548,57937,57914,548,548,57914,57914,57914,57914,57964,57964,57914,57914,57914,57914,57964,57964,57914,626,57914,57977,57937,57914,57914,57914,57914,57914,57914,57914,57937,57937,57914,57914,57964,57914,57914,57914,57977,57977,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,0,459187,0,0,0,0,0,0,0,0,0,0,0,528,528,528,528,528,528,528,528,0,528,2420,528,528,528,528,528,528,528,528,528,528,528,528,528,1402,528,528,0,0,0,57893,59850,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60287,57893,57893,57893,57893,57893,57893,57893,57893,57893,60302,57893,57893,57893,57893,60305,57893,57893,60307,528,528,528,528,2895,528,528,528,528,528,528,528,528,528,528,528,528,4026,57893,57893,57893,57893,60337,57893,57893,57893,57893,57893,57893,57893,57893,57893,0,0,0,0,0,0,1781,0,0,0,0,0,0,0,0,0,139264,147456,0,0,335872,0,0,57916,57916,57916,57916,60371,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61401,57916,57943,57943,57943,368,368,0,0,0,0,705,0,0,0,0,0,0,0,0,0,139264,147456,0,0,540672,0,0,0,0,735,0,801,0,0,0,0,0,0,0,0,801,0,0,0,0,416,0,0,0,0,0,0,0,0,0,0,0,0,3464,0,0,0,528,528,528,528,862,528,528,528,528,528,528,528,528,528,528,528,528,61203,57893,57893,57893,57916,58357,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61111,57916,1202,0,0,0,0,0,0,0,0,0,0,368,368,0,0,0,0,0,0,0,0,709,0,0,0,0,0,0,1251,0,0,0,0,0,0,0,0,0,2810,0,0,0,0,0,0,58853,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,50676,58773,990,57916,57916,57916,57916,59463,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60696,57916,57916,57916,57916,59015,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,60442,1726,0,0,0,0,1733,0,0,0,0,0,0,0,0,0,0,319488,319488,0,0,0,0,0,57916,57916,57916,59978,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59959,57916,57916,57916,57943,57943,57943,60061,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59011,57943,57943,57943,2779,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,245760,528,528,2881,528,528,528,528,528,528,528,528,528,528,528,528,528,1404,528,528,57916,57916,60357,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,60919,57916,57916,0,306,307,0,0,0,0,0,0,0,647,0,0,0,0,0,0,1813,0,0,0,0,0,0,0,0,0,787,0,0,0,0,0,0,906,528,528,528,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,57916,57916,57916,906,528,0,57893,58490,57893,57893,58325,57893,155942,1151,0,0,0,0,0,0,1836,0,0,1838,0,0,0,0,0,0,0,2861,2813,0,0,0,0,0,2866,0,57893,57893,58856,57893,57893,57893,57893,57893,57893,57893,57893,50676,58773,990,57916,57916,57916,57916,59495,59496,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61574,57943,57943,57943,57943,0,0,1862,0,0,0,0,0,0,0,0,0,0,0,0,0,327680,327680,327680,528,528,1948,528,528,528,528,528,528,528,528,528,528,528,528,528,1942,528,528,57893,59391,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60313,57893,57893,57893,57893,57893,57893,57893,57893,57893,59922,57893,57893,57893,57893,57893,57893,57893,59491,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61123,57916,57916,0,0,0,57893,57893,57893,57893,59853,57893,57893,57893,57893,57893,57893,57893,57893,60329,57893,57893,57893,57893,57893,57893,57893,57893,57893,59367,59368,57893,57893,57893,57893,57893,59877,57893,59879,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60636,57893,57893,57893,57893,57893,57893,57893,57893,57893,60316,57893,57893,57893,57893,57893,57893,57916,57916,57916,57916,59966,57916,59968,57916,57916,57916,57916,57916,57916,57916,57916,57916,61117,57916,61119,57916,57916,57916,57916,57916,57916,57943,57943,57943,57943,60049,57943,60051,57943,57943,57943,57943,57943,57943,57943,57943,57943,59552,57943,57943,57943,57943,59556,57943,60381,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,61403,57943,57943,57943,57943,57943,60446,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,57943,59554,57943,57943,57943,0,3418,0,0,0,0,0,0,0,0,0,0,0,0,0,0,352256,352256,352256,57893,57893,57893,57893,60871,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,57893,60645,57893,57893,57893,57893,57893,57893,57893,57893,57893,59923,57893,57893,57893,57893,57893,57893,3713,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,2500,57916,57916,61113,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,57916,59973,57916,57916,57916,0,0,0,2310144,0,0,0,0,0,0,2310144,0,0,0,0,0,0,0,0,0,0,0,2310144,0,0,2310144,0,0,0,0,0,0,0,2310144,2310144,0,0,0,0,0,0,0,0,2310144,0,0,0,2310144,0,0,0,0,0,2310144,0,2310144,0,0,0,0,0,0,2310144,2310561,2310561,0,2310144,0,0,2310144,0,0,2310144,0,2310144,2310144,0,2310144,0,2310144,2310144,0,0,0,0,0,0,2310561,0,0,0,0,0,0,0,0,0,0,0,2359296,368,0,0,0,0,2310144,0,0,2310740,2310740,2310740,2310740,2310740,2310740,2310740,2310740,2310740,2310740,2310740,2310740,2310740,2310144,2310740,2310144,2310144,2310740,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,459347,459347,459347,459347,459347,459347,459347,459347,459347,459347,459347,459347,459347,459222,459379,459222,2318336,0,0,0,4268032,0,0,0,0,0,0,0,0,0,0,0,4276224,0,0,0,0,4358144,4358144,4358144,4358144,0,914,0,0,0,0,0,0,0,0,0,0,4956160,4964352,0,0,0,0,0,467,2335204,2335204,2335204,467,467,467,467,467,467,467,467,467,467,2335238,2335238,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,467,0,0,0,0,0,0,0,0,0,0,2335238,2335204,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,2335238,0,0,0,2342912,0,0,0,0,0,0,0,0,0,0,0,0,2348,0,0,0,0,0,0,2326528,0,0,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,4358144,5177344,4358144,4358144,4358144,4358144,0,0,0,2359296,0,2359296,0,0,0,2359296,0,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,2359296,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,0,0,573440,0,573440,573440,573440,0,573440,573440,573440,573440,573440,573440,1,24578,3,0,0,4366336,0,0,0,0,0,302,303,0,0,2367488,0,0,4268032,0,0,0,0,0,0,0,0,0,0,0,4931584,0,0,0,0,0,0,2351104,0,0,0,0,0,0,0,0,0,0,0,0,0,507904,507904,507904,0,913,0,0,0,0,0,4857856,4874240,0,0,0,0,0,0,0,1180,0,0,0,0,1184,0,0,1187,0,6275072,0,0,0,0,0,0,0,0,0,0,0,989,0,0,0,0,913,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,4359057,5260177,4359057,4359057,0,0,1,24578,3,155942,155942,296,0,0,0,0,0,302,303,0,0,0,0,573440,573440,573440,573440,573440,573440,573440,573440,573440,573440,573440,573440,573440,573440,573440,573440,212992,0,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,212992,0,0,0,0,0,4366336,0,0,0,0,0,0,0,0,2412,0,0,0,0,0,0,0,0,0,0,6275072,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6258688,6447104,0,0,6127616,0,6348800,5906432,0,5537792,0,4882432,0,0,0,0,0,0,4825088,0,0,5177344,0,0,0,0,5701632,0,0,0,0,0,4358144,4358144,4358144,4825088,4358144,4358144,4358144,4358144,0,0,913,913,913,4826001,913,913,913,913,913,913,0,0,989,989,4842461,989,989,989,4899805,989,0,0,5513216,5783552,0,0,0,0,0,0,0,0,0,0,4358144,4358144,4358144,4358144,4358144,4857856,4874240],r.EXPECTED=[169,185,215,1326,231,1001,278,928,942,1085,320,247,263,307,336,352,368,384,400,914,2264,430,2264,2264,2264,2264,2264,2264,2264,2264,2264,2264,2264,2268,1707,1603,1403,460,1356,1591,491,507,517,533,1816,1031,2119,564,475,580,596,625,684,700,1905,716,1114,747,778,788,1693,1145,762,804,820,836,852,868,884,900,958,988,1017,972,1997,1047,1057,1073,1101,1130,2028,1562,1190,1205,1221,1237,1253,1269,1298,1314,1342,1174,1446,1372,1876,2073,1633,668,1388,1419,1434,1467,1483,1499,1515,609,1531,1547,1578,444,654,640,1619,1649,1662,1678,1723,1738,1754,1770,1786,1802,1832,1848,291,1864,2228,1892,1921,1937,199,2149,1953,1969,1985,1282,2013,2044,2060,2089,2105,548,2135,2165,2181,2197,2213,1160,2244,731,2260,2264,1457,412,2264,2264,2264,2264,2264,2264,2264,2264,2264,2264,2264,2264,2264,2264,419,2284,2288,2290,2290,2290,2291,2295,2290,2297,2301,2304,2311,2307,2315,2318,2322,2326,2330,2334,2338,2345,2345,3446,2344,2345,3427,2352,3605,2345,4169,2345,2345,2345,3950,4664,4990,4059,4582,2828,4588,2345,4069,4598,2345,4069,4603,2734,3100,2397,2497,2359,2366,2466,2372,2376,2345,2345,4266,2345,2345,2383,3820,2359,2359,2392,2419,2419,2419,2419,2405,2427,2345,2345,2345,2345,2345,2409,2455,3819,2345,2345,3099,3100,3100,3100,2495,2398,2398,2398,2504,2359,2359,2359,2482,2419,2419,2419,2517,2345,2345,2345,2457,2345,3100,3100,3101,2398,2398,2398,2359,2359,2359,2359,2359,2418,2419,2419,2419,2419,2419,2424,2437,2345,2345,2345,2345,4505,2729,2345,2345,2345,2345,4509,5101,4513,2345,2345,3904,2359,2359,2484,2419,2419,2519,2345,3864,2345,4865,3100,3100,2501,2398,2538,2359,2359,2359,2359,2359,2548,2419,2419,2419,2419,2395,2490,2345,2345,2359,2483,2419,2549,2508,3755,2345,4867,4911,2398,2400,2359,2515,2419,2525,3605,3100,2476,2401,2547,2550,2816,4868,2399,2481,2485,2735,2532,2503,2361,2368,4866,2476,2360,2420,4909,2537,2546,2486,2533,2362,2542,2554,2567,2571,2575,2579,2583,2586,2586,2586,2598,2591,2586,2587,2595,2602,2606,2610,2614,2618,2622,2626,2630,4594,2634,2345,2345,2903,2640,2345,2345,2999,2345,2345,2645,2345,2345,2345,2345,2345,2345,4208,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,4460,2655,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2655,2345,2345,2636,4128,2345,2345,2345,2345,2635,4127,2345,2345,2345,2345,2635,4127,2794,2345,2345,2345,3016,2798,2345,2345,2345,3017,2799,2345,2345,2345,2806,2729,2876,3308,2345,2915,2345,3310,2345,2922,2345,3536,2683,4475,3831,4927,2685,4422,2850,2345,2345,2345,2345,2345,2345,5004,2345,2345,2345,2345,4417,3024,3547,2854,5007,2861,2345,2345,2345,2345,4422,2869,2345,2345,2345,2345,2345,2868,2729,2345,2345,2345,2345,2345,2873,2345,2345,2345,4443,2345,3549,3338,2880,2345,2345,2345,2345,2887,2729,2345,2345,2345,2883,2880,2345,2345,4951,4956,2345,2345,2345,2345,4604,4971,4982,2345,2345,4805,4988,3762,2345,3965,2345,4436,4591,2907,2345,3192,2909,2345,4490,2345,3191,2908,2345,3491,4849,4476,4920,4920,4920,4849,2720,4477,4477,4477,4918,4922,2683,4476,4863,4478,2719,2684,2432,2429,2431,2563,2345,2345,2345,2345,2345,2345,2984,2345,2345,2345,2511,4068,4075,2345,2345,4081,2345,4085,2345,2345,4099,2345,3067,3768,2729,4088,2928,3046,2947,2932,2935,2938,2940,2940,2944,2345,2951,2956,2345,2345,5022,2729,2345,2345,2345,2345,4180,2345,2345,2345,2345,5023,2345,4654,2345,4496,2345,3077,4168,3570,5100,4176,2345,2345,2345,5024,2345,2345,4147,2345,2345,4258,2345,2345,2339,3845,2345,3726,3911,3122,3918,2345,4757,2345,4949,2345,2961,2974,2978,3641,3718,2988,2996,2722,3003,3008,2345,2998,4205,2345,2952,2345,2345,3697,2345,3015,4630,3021,3029,3033,2412,2991,2723,3040,3497,2345,2951,2956,2345,5067,4831,2345,3623,2964,3050,4101,2345,3156,3059,2345,2345,5115,3712,2387,4578,2345,5120,2458,2509,4221,2345,5107,2345,3202,2763,3060,2345,2345,2345,3733,2345,2951,2733,2345,4755,4856,3111,4236,2557,3086,2345,2348,3162,2345,2345,2527,3154,2345,2345,2347,3161,2345,2345,4684,3167,3432,4676,3096,2345,2345,2345,2345,2472,3106,2345,2345,2345,2345,2346,3105,2345,2345,2345,4878,3110,3119,2345,5067,4832,4234,3023,3126,4109,3602,3171,3176,2345,4069,3180,2345,4170,3176,2345,2345,3187,2345,4682,3217,4094,3257,3196,3972,3190,2345,3974,2345,3251,3209,2345,3973,2345,3214,3218,3223,3227,3231,4192,2345,3229,2345,3237,3606,3242,3246,4319,3250,3238,3230,3255,3261,3266,3266,3266,3274,3278,3262,3262,3262,3285,3289,4198,3290,4959,3294,4246,5038,3298,3302,3306,3316,3322,3329,2345,2345,2345,2345,3926,2345,2345,2875,3333,3337,4593,3342,3347,4397,3357,3361,3365,3366,3366,3370,2345,4118,3376,2345,4445,3382,4945,3392,2721,3398,2829,3406,3410,3417,3424,3004,3431,3947,2345,3426,2345,2345,3115,3658,4038,4560,2345,2345,2345,2345,2345,2345,2345,2650,2345,2345,2454,2345,2345,2345,4867,3100,3100,3100,3100,3101,2398,2398,2398,2398,2545,2359,2359,2359,2359,2359,2464,2419,2419,2419,2419,2419,2395,2470,4119,2345,2345,3437,3706,3578,3394,4115,2345,5085,3441,3522,4170,3451,2345,2345,3132,3489,2345,2345,2345,2345,3143,3495,2345,2345,2345,2345,4516,3484,2345,4070,3455,2345,2345,2345,4071,3456,2345,2345,2345,3460,3464,2345,2345,2345,3098,3100,3100,3100,3100,3100,2397,2398,2398,2398,2398,2398,2480,4118,3830,2345,3469,3584,3579,3476,4935,4215,3011,2345,2345,4515,3483,2345,2345,3191,2898,2345,2345,2345,2892,2345,2345,2345,2897,2345,2345,2345,3963,3232,2345,2345,2345,2345,3517,3490,2345,2345,2345,2345,4515,3520,2345,2345,2345,2345,3982,2345,3526,3585,3535,4117,2786,2345,2345,3541,2345,2345,2345,2345,4530,3545,2345,2345,2345,2345,3541,2345,2345,2345,2345,2456,2345,2345,4910,3100,3100,3100,3100,2476,2398,2398,2398,4531,3232,2345,2345,2345,3560,3565,3576,4115,3204,3583,2345,5095,2345,2345,2345,3163,3064,2345,2345,2345,2345,3219,3071,2345,2345,2345,2345,3157,5054,2345,2345,2345,5094,2345,2345,2345,5053,2345,2345,2345,3590,3966,3561,2345,2521,3137,2345,2345,3754,2981,3141,5078,4842,4667,2967,3147,2528,3155,2345,2751,5076,2686,5082,4996,5091,5099,2345,2345,5072,2345,2345,5105,2345,2345,4450,3818,2345,3825,2345,2460,3835,3839,2345,2345,2345,4069,3843,2345,4928,2345,3443,2345,3828,2345,4052,3148,2345,2386,3114,3150,4047,3149,3635,3635,4052,3113,3150,3150,3150,3980,3634,3112,3635,4053,3622,3635,3150,4974,4976,3627,4978,3631,3640,2345,2345,2345,2345,4428,3779,3723,2345,3595,3645,3649,4091,3655,3663,3667,3671,3675,3679,3680,3684,2345,2801,3689,2345,4841,3695,4295,2763,3350,3199,3691,5040,3485,3701,4584,3465,3705,4823,3710,3716,2345,2345,2802,3690,2345,4616,4756,3722,3731,3957,3201,3737,3750,3759,2345,3940,3766,2345,2345,2345,3312,4745,4749,4761,4765,4769,4773,4777,4781,4785,4788,4792,4795,3504,3232,2345,2345,2345,3505,2345,2345,2345,2646,3772,2345,2345,2345,4427,3778,2345,4164,4095,2345,3785,4903,2651,2345,3753,2345,2345,3793,2345,2345,2345,2345,3098,3100,3100,3100,3100,2398,2398,2398,2398,2478,2359,2359,2345,3797,2345,2345,2345,2345,2345,3801,2345,2345,2345,2345,2345,3805,2345,2345,3846,2810,5004,2345,2345,2345,2345,4151,2345,2815,2820,2833,4077,2838,3850,2345,2345,2345,2345,4737,2345,3855,2458,4716,3837,3863,2345,2345,3172,3871,3924,2345,2340,2345,2345,4149,2345,2339,3845,3723,3089,3789,2345,3930,4129,2345,2776,3914,4135,2728,2345,2345,2345,2345,3210,2345,2784,3082,3938,2345,2790,5046,2345,3935,2345,3944,2730,3877,2345,3352,2732,3955,2731,4157,4157,4157,3351,2732,2732,2732,3531,4156,4716,4157,4718,3878,4157,2732,2345,2345,2345,2345,3851,2345,2345,2345,2345,2345,3850,2345,2345,2345,2345,2345,2345,2345,3612,2663,2345,2345,2345,2345,2345,2345,2345,3780,3961,2345,2345,3920,3970,3978,3986,3990,3994,3998,4001,4005,4007,4011,2345,2345,2345,4015,2345,3606,4752,4107,3553,4020,4024,4643,4888,4028,2345,4851,2811,4032,4826,4037,4042,4046,2345,2345,4016,2345,3746,4051,3551,3877,4057,3636,4570,4063,2345,2345,2345,2780,2345,2345,2345,2510,4067,4105,2924,4156,4113,2386,4123,4538,2345,2345,2635,4127,2345,2345,2345,2345,2641,4133,2345,2345,2345,2345,2778,4181,2345,2457,2345,2345,4984,5025,2345,4139,2345,2855,3611,2345,2857,2345,2345,3386,2345,2856,2345,2345,3830,3616,2345,3445,2345,4145,2345,4670,3724,4155,3572,3114,4161,2345,2345,2345,3472,2729,2345,2345,2345,2345,2842,2345,2345,2345,2345,3081,2846,2345,2345,2345,2345,2345,2739,2692,3821,2749,2757,2345,2761,2767,2345,2771,4802,2345,4185,3077,3725,4231,3041,4220,2345,5087,2729,2345,2345,2911,4134,2345,2345,4172,2345,2345,2345,2354,3845,2345,3723,3606,2458,3787,3901,2345,3781,3537,4190,2345,2345,2910,4196,3378,3685,3607,4673,4202,2823,2345,4033,2729,2345,3931,2956,2345,3925,4214,4219,4225,4240,4244,4264,2345,4250,2345,4252,2345,2345,4256,2345,4251,3343,4538,4228,4262,2345,4270,3353,2345,4610,2345,3183,3130,2345,2345,2345,2346,3136,2345,2345,2345,2345,3183,3130,2345,2345,2673,2345,2345,2677,3814,2690,2696,2700,2704,2708,2712,2716,3744,2727,4275,4284,4288,4419,2668,3659,2733,4292,4308,4420,3556,3556,3556,4317,3530,4421,4335,4323,3555,3529,3568,3025,2669,3556,4330,4339,4341,4333,4326,4345,4349,4351,2345,2345,2345,2345,3897,2992,2345,4313,4355,4359,4390,4363,4367,4371,4375,4379,4381,4383,2345,2345,2345,4937,4387,4657,4394,4401,4460,2827,4636,4599,4278,4407,4411,5122,3727,4426,4432,2345,4440,4449,2345,2345,4938,3774,2657,4454,4458,3325,2345,3053,4464,4468,2345,2345,2345,5128,4474,2345,2345,2345,4482,2345,2345,4271,2888,2345,2345,2345,2345,3233,2345,2345,2345,4962,2864,3650,2893,2345,3727,4483,2345,2345,2345,3055,4487,4494,2345,2345,3890,4311,2433,2446,3618,2826,4186,5066,4947,2733,2345,2345,2345,3413,4500,2345,2345,2345,2345,3420,2800,4414,4622,4520,3318,2345,2970,5060,2345,2345,2345,2377,4524,2345,2345,2345,2345,3869,2345,2345,2345,2345,4171,3876,2345,2345,2345,4069,3870,2345,4952,4311,2443,4535,2827,3865,3433,2345,2345,2345,2379,4543,2345,2345,2345,3858,2345,2345,2345,2345,3859,2345,2345,2345,2957,3045,2345,2345,2377,4548,2345,2345,2345,2345,3281,4553,2345,2345,2345,2378,4549,4470,2345,4558,2440,4564,3203,4831,2345,2345,2377,4568,2345,2345,2345,3951,2345,2345,2345,4574,2345,4640,2345,4069,4647,2560,4651,4661,2345,4680,4539,4642,5031,2345,5014,4688,4830,4815,4403,3883,4642,4692,4628,4816,4696,4696,4702,4830,4706,4714,4714,4722,2414,2449,3808,4731,2414,4906,2450,4735,4725,4727,4741,4829,2345,2345,2345,2345,3925,2345,2772,3501,4141,3509,4115,4215,3074,2345,2345,3513,4799,2345,2345,2345,2345,4809,3015,4813,4820,4967,2388,2680,4210,4836,4554,2345,3372,2345,2345,3384,2345,2345,3372,2345,2345,2856,2345,2345,3589,3594,3599,4708,3872,4840,4846,2345,4710,4855,2345,2345,4544,4860,2834,3742,4965,3080,4872,4877,4882,2345,2345,2345,2345,3606,4886,2345,2345,2345,3478,4892,2345,2345,2345,3882,2663,2459,3092,3887,2345,2345,3894,2345,2345,2345,2355,2345,3479,2345,2345,2345,2345,4897,3616,2345,2345,4544,4915,3035,4280,2918,3446,4873,4698,4926,2345,2345,2345,2345,2345,4932,2345,2345,2345,2345,3606,4942,2345,2345,4435,3377,3907,2902,2345,4489,2729,2345,3651,2902,2345,3192,2909,2345,4994,5020,5001,3205,5011,2345,2345,2345,2345,2741,2745,2345,2345,2345,2345,4170,4608,2345,2345,4614,4989,4620,4626,3755,4950,2345,4634,2345,5013,2345,2744,2345,2345,2345,2345,2345,2743,2345,2345,2345,2345,2345,2743,4900,2345,4501,4915,3036,5018,3447,3864,5029,2345,2345,2345,4170,5035,2345,2345,2345,2345,4303,5044,2345,2345,2345,2345,5050,2345,2345,2345,2345,4304,4900,2345,3811,3740,4997,5058,5064,2345,2345,2345,5071,2345,2345,2345,3269,2345,2345,2345,4297,4301,2345,3402,2800,2345,2345,2345,2345,3401,4528,2345,2345,2345,2345,3401,4528,4470,4299,2345,2345,3270,2345,5111,4997,4577,2345,2345,2753,2345,4893,5116,2345,2752,2491,2458,2345,5126,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2345,2661,3388,2667,2345,7267,5893,5132,5144,5141,5151,5153,5153,5153,5153,5148,5176,5152,5153,5153,5153,5159,5163,5176,5153,5153,5169,5164,5153,5180,5155,5154,5168,5151,6159,5173,5199,5205,5205,5205,5209,5209,5201,5213,5217,5220,5224,5228,5245,5232,5242,5234,5238,5236,5249,5252,7269,7026,5260,5273,5276,5276,5276,5255,5821,5295,5276,5276,5276,5276,5268,5730,6588,6270,5301,5276,5276,5254,6597,5821,6646,6646,6646,6646,5394,5396,5325,5449,5322,5396,5396,5325,5276,5384,5428,5333,5409,5274,5276,5276,5276,5286,5290,7174,5276,6844,7218,6005,5276,5276,5276,6390,6115,6646,6647,5323,5396,5397,5400,5428,5428,5428,5428,6645,6646,6646,5398,5400,5428,5345,6844,7217,5353,5276,5266,5276,5276,5388,7455,5457,5396,5396,5396,5396,5276,5399,5402,6779,5408,6667,5275,5276,5275,5276,5276,6239,5276,6839,5410,6667,5275,5276,5275,6561,5276,5275,6839,6843,7454,7155,5276,5276,7229,5276,5276,6466,5276,5276,6526,5276,5276,5276,5302,5276,5276,6646,5393,5396,5396,5396,5400,5407,6668,5276,5276,5268,6066,5402,5428,5428,5428,5429,6646,6646,6646,5395,5396,5396,5396,5326,5368,5419,5276,5276,5276,5305,5401,5428,5428,5428,5430,6646,5427,5428,5428,5428,6644,6646,6646,5402,5387,5276,5276,5276,5307,6771,6646,5394,5396,5396,5398,5427,5276,5276,5268,6630,5397,5403,5276,5276,5269,5731,6036,5400,5400,5402,5428,6644,5402,5428,5428,6643,6646,5368,5400,5427,6643,6646,6646,6646,5396,5396,5396,5397,5387,6646,5395,5324,5368,5276,5999,5276,5276,7234,6237,5276,6239,6237,5401,6643,5393,5324,5415,5434,5460,5464,5463,5462,5461,5326,7445,6108,6418,5509,5541,5438,5442,5508,5508,5508,5508,5486,5515,5454,5468,5472,5491,5543,5496,5508,5508,5538,5446,5582,5487,5506,5581,5513,5475,5519,5535,6805,6808,5547,6811,6814,6815,6816,5551,5554,5558,5569,5573,5579,5492,5586,5590,5594,5598,5605,5604,5601,5609,5613,5561,6981,5276,5276,5276,5308,5312,7372,5276,5276,5276,5309,7137,5276,5276,5276,5329,5276,6389,5276,5276,6557,5276,6391,5276,5276,5275,5276,6392,6392,5276,5276,5279,5276,6282,5276,5276,5276,5366,5276,6e3,6885,5910,7281,5626,5297,5629,5276,5276,7348,5276,5276,7354,5276,5276,5276,5631,5640,5899,5276,5647,5276,6987,5263,5186,5654,5657,5659,5660,5664,5668,5673,5672,5677,5679,5680,5680,5684,5686,5693,5688,5700,5688,5697,5689,5704,5276,5276,7355,5276,5276,5276,5648,6027,6933,6281,5898,5276,5276,5276,5367,5276,5276,5276,5368,5400,5708,6023,5276,5276,5281,7411,7471,7426,5276,5276,6043,5135,5276,5276,5281,7468,6467,5276,5716,5276,5276,5721,6061,5339,5276,5276,5304,5276,5341,5737,5745,5751,5749,5276,5276,5276,5369,6219,5751,5276,5276,5306,5310,6765,5276,5276,6988,5276,6526,5277,6886,6113,5784,5276,5793,7239,5808,5855,5812,5831,7055,5318,5276,5276,5276,5372,5348,7452,5827,5832,7056,5137,5276,5276,5276,5376,5368,5276,6525,5276,5414,5276,7452,7443,5276,5276,7419,6200,5276,5925,5276,5276,5276,7249,5717,5276,5276,5276,5387,5795,7243,5854,5845,7241,5851,5855,5846,7242,5852,5856,5317,5850,5854,5845,5898,5860,5276,5276,5276,5388,6362,5276,5854,5876,5318,5276,5276,7441,6519,7240,5851,5855,5877,5898,5881,5839,5276,5276,5370,5276,5276,5853,5885,5318,5276,5276,7452,6134,7239,6135,5854,5886,5898,6404,5870,6865,5276,5276,6117,5869,6864,5898,5276,6867,5276,5276,5276,5617,6117,5890,6866,5276,5276,5276,5620,6857,5276,6719,6723,5276,5276,7455,6886,6721,5898,5276,5276,5373,5276,5914,5276,5898,7023,5934,5938,5942,5945,5948,5949,5949,5950,5954,5954,5954,5954,5954,5958,5961,5276,5277,5921,5930,5276,6659,6079,5966,6872,6872,5276,5276,5276,5650,6487,5276,5711,6194,7445,7444,5368,5276,6e3,6525,5276,7025,5302,6259,5276,5370,5979,6510,5997,5276,6523,5276,5276,6660,6080,5967,5898,6890,5997,5276,6889,5276,5276,5276,5841,6010,5276,6606,5276,5276,5276,5822,6016,5276,5276,5276,5787,5276,6605,6017,5276,5277,5962,6001,7450,5276,5276,5276,5826,5831,5712,6195,7052,5276,5368,5276,5276,5366,5369,6121,5276,6513,5276,6559,5276,5276,5386,5282,5276,6093,5276,5276,5276,5864,6029,5276,5276,5276,5896,6848,5998,5276,6523,6792,5276,5276,6397,7112,6033,6047,6053,5898,5276,6034,6048,6054,5276,5278,5281,6211,6035,6049,6055,5276,5278,5909,5276,5279,6836,6888,5276,5276,5276,7452,5761,6526,6233,6268,5276,5280,5303,6536,5276,6268,6140,6038,6070,5276,5276,5400,5400,5400,5400,5401,6066,6588,6039,5894,5276,7456,5276,5276,5276,6002,5276,5276,5276,5975,5277,6078,6084,5367,6266,7445,6236,5999,6524,5276,6100,6037,6070,5276,5276,5477,5481,6630,6587,6090,5894,5276,6080,6086,5276,5276,5478,5482,6099,5276,5276,5276,6003,5276,5276,6036,6107,5276,5276,5276,6072,6033,6588,6106,5276,5276,5276,6073,6085,5276,5276,7023,6099,5276,5276,5281,6583,5728,5732,6105,5894,5729,5733,6106,5276,5281,6629,6586,5727,5731,6104,6108,5276,5276,5276,6117,5890,5371,6e3,6125,6268,6456,5276,6388,5276,5276,5276,6523,5276,7417,6416,5276,5276,5276,6119,5276,6524,6525,6659,6322,5276,5276,5276,6074,5363,7445,5276,5370,6e3,6236,5276,6320,5799,5803,5276,5276,5276,6127,6319,5798,5802,5276,5276,6321,5276,7260,7446,5368,6001,6320,5799,5801,5276,5276,6319,5797,5276,7073,5276,7258,7447,5276,7447,5302,7075,5803,5276,5276,7072,7076,5276,5281,7468,7477,5276,5276,7073,7260,7446,5276,7074,5802,5276,5285,5289,7173,6339,7258,7447,6339,7077,5276,6117,7076,5276,6342,5276,6117,6342,6139,6117,6200,6978,5276,6978,5276,6978,5276,7445,6197,5276,6237,6722,5276,5276,5372,7365,6199,6197,5276,6199,5276,5925,7445,6198,6198,6198,5276,5276,5926,6198,5276,6896,6896,5389,6536,5368,5525,6145,5276,5276,5276,6133,6358,5367,5276,5276,6198,6537,6199,6536,6200,5276,6537,5276,5276,5276,6480,6167,6152,6171,6175,6179,6181,6185,6185,6181,6189,6189,6189,6189,6189,6191,5276,5276,5564,6363,6206,5276,5276,5276,6199,6200,6251,5898,5276,5276,5565,5371,5276,5276,5575,6934,6200,5276,7454,5803,7356,5276,6293,5276,5804,5276,5287,5291,7160,7066,6196,5276,5285,6217,6223,7106,6232,5276,5287,7149,7129,6243,5276,7260,5276,5288,7150,7141,6257,5276,5789,5276,5276,5276,6202,6263,5276,5276,5276,6201,5367,5369,5387,6274,6253,5278,6018,5276,5276,5642,5276,5276,5276,6388,6113,5193,6286,6935,6040,6287,6936,6041,5276,5276,5191,5195,6288,6937,6042,5276,5276,5276,6226,5385,6114,6252,5276,5307,5311,5315,7420,7354,5276,5276,5739,7397,7403,6298,6329,5803,5276,5276,6006,6299,6330,5276,5276,5276,6265,6300,6331,5276,5276,5753,5752,5387,6275,5897,5276,5328,6552,6547,5803,6197,7453,7421,6267,6392,5479,6312,6329,5276,6458,5480,6313,6330,5276,5276,5764,5276,5385,6246,6253,5276,5363,5367,5276,5276,6536,6317,6267,5276,5276,5276,5621,6392,7412,6327,6332,6301,5803,5276,5276,5815,7444,6522,5276,5276,5375,5276,5276,5365,5276,5276,5916,5276,5276,5276,6294,5368,5386,6336,5276,5365,5276,6535,5276,6820,7444,5276,5276,6519,6308,5276,6198,5276,7452,5280,5276,5276,5276,6307,6197,5276,6843,5276,6356,6250,6678,5276,5276,5276,6368,5276,6844,5894,5276,5369,5998,6524,5276,5276,5276,5277,6208,6362,5276,5276,5276,6371,5276,6846,5276,5276,5898,5276,6005,5276,5276,6005,5276,5276,6846,6004,6002,6846,6005,6005,6005,5276,5276,6004,5276,5276,6005,6847,5276,5276,5995,6375,5894,5276,6520,6383,5276,5276,5276,6404,5871,6112,7024,6387,6111,5276,5276,5276,5363,6401,6761,6409,6972,6429,6432,6433,6434,6438,6438,6438,6438,6441,6443,6444,6444,6451,6451,6451,6451,6448,6452,5276,5276,5276,6425,5348,6566,5276,5276,5276,6463,6370,6494,5276,5276,5973,5276,5362,6468,5276,6469,6475,5276,5276,5276,6519,5276,6484,5276,5276,6e3,5389,6228,6477,5276,5276,6012,5276,6112,5276,5276,5276,6520,5276,5276,5276,6396,5304,6197,5276,5276,6060,6059,5276,6499,6507,5276,5386,5283,5276,5276,6395,5276,5276,5279,6208,6518,5276,5276,5359,5276,5276,5276,6524,5276,5276,6534,6534,5276,5388,5276,5284,6546,6618,5276,5276,6109,5903,6553,6548,5276,5276,6116,5998,5349,6567,5276,5276,5276,6392,6611,5305,6199,5276,6537,6265,5276,6236,6525,5276,6830,6573,5818,5276,6831,5501,5819,5276,6832,5502,5820,6830,5500,5818,5276,5422,6847,5276,5522,7448,5276,5636,6001,5998,6565,5276,5276,5276,6525,5276,5276,7449,6887,6493,5276,5641,6843,5276,5276,5276,6237,6537,5276,6268,6140,5276,6390,5276,6459,6571,6577,5821,5276,5276,5276,6657,5276,7285,5499,6578,5276,5276,6886,5279,5276,5649,6028,6094,5276,6458,5276,5276,5276,6526,7024,6877,5256,6579,5276,5276,5276,6528,6598,5276,5276,5276,6536,5276,6592,5276,5276,5276,6620,5276,6391,6459,5276,5739,7123,6938,5281,6583,6579,5276,5741,7125,6332,6602,5276,6459,5276,5741,7125,6522,5276,6404,5871,5280,5276,5302,5276,5757,5276,5356,6392,6526,5276,5276,6118,5279,6610,5276,5276,5276,6783,5367,6615,5276,5276,5276,6784,5276,6919,6923,5276,5777,5276,5276,5327,6542,5280,6537,6266,5276,5788,6264,5276,5288,7184,7189,5276,5277,5276,5367,5276,6268,6141,6712,6424,5276,5276,6126,5898,5276,5276,5632,6626,6634,5276,5276,6131,6414,6108,5276,5276,6395,5276,6844,5276,5276,5917,5276,6521,5276,6395,6522,6729,6846,5276,5375,6502,6651,6664,6672,6682,6685,6689,6693,6693,6693,6695,6697,6697,6697,6697,6701,6702,6702,6702,6703,6707,5276,6711,6423,5276,5276,5276,6735,5276,6716,5276,7351,5276,6727,5276,7420,6268,6969,6745,5276,5276,5276,6785,5450,5276,5276,5276,6793,6743,6094,5276,6750,6751,5276,5276,5276,6844,6212,5276,5276,5276,6847,5276,5276,6755,5276,5276,6238,5276,6524,6798,6267,6759,6771,6766,5276,5276,5276,6877,5194,6287,5276,7275,5276,5276,6248,5276,5276,6776,6772,6767,6790,5276,6792,5276,5907,5276,6269,5894,7260,7023,5276,5276,5276,6111,6392,6422,6847,5276,6100,5276,6888,5276,5276,6521,5276,5276,6194,7446,5368,7418,5276,5276,6293,5276,5276,5276,6269,6206,7033,6523,6797,6266,5312,5316,5276,5276,5276,6921,5313,5317,5276,5276,5276,6933,6792,6791,5276,5276,6305,5304,6420,6424,5276,5276,6319,6922,5276,5276,6118,5276,5374,5276,5276,6535,5276,5276,7034,7452,6826,5276,5908,5278,6495,5276,6519,5276,5276,5276,5281,5255,6598,5276,7033,5863,6828,6852,5314,5318,5276,5276,6913,5276,5276,5276,6958,6858,5318,5276,5276,6321,5800,6857,5317,5276,5276,6340,5802,6535,5276,6862,5276,6022,5753,5276,5278,5276,5276,7210,5276,6871,5276,5276,5276,7191,6199,6200,5276,5276,5276,7042,6425,5276,5276,6876,6887,5276,5367,6820,7444,5276,6002,5276,6194,7052,5276,6637,6520,5276,6536,5276,6822,5276,5276,6341,5276,7204,5276,5276,5276,7203,5367,5276,6786,5276,5276,6392,6921,6821,5276,5276,6904,5276,5276,6388,6391,6480,5276,5276,5276,7239,5276,6478,5367,5276,6095,5276,5276,6394,5276,6897,5276,5276,6883,6535,5276,5371,6904,5364,5276,6894,5276,6110,5276,5276,5981,7461,7451,5276,5276,5276,5983,7470,5990,5283,6536,6901,5276,6114,5276,6001,6911,5374,6535,5368,5803,5276,6392,6412,5369,5276,5276,5366,5364,6537,6364,5364,5276,5367,5371,5366,5364,5276,5276,6536,5365,5276,5366,5276,5366,5367,6538,6538,6538,5773,5767,5769,5771,5771,5772,5276,7445,5183,5276,5282,5917,7454,6113,6917,6942,7063,5336,6951,6962,6966,5531,6992,6995,6995,6998,7003,7002,7002,7004,7008,7009,7015,7013,7013,7013,7013,7019,7022,7030,5276,5276,6115,5375,5528,6927,5276,7445,6842,7453,6149,6156,6163,7038,6983,5276,5276,6392,7229,5277,5276,5276,7046,7060,5276,7070,5276,6116,5999,5276,6117,5276,5276,5364,5276,5276,5276,7240,7085,5276,5276,5276,7337,5349,5276,6906,7086,5276,6117,5368,5276,5276,6907,5276,7090,5276,6120,5276,5368,5389,6113,7094,5276,5276,5276,7338,6840,5276,6782,7444,6985,5276,5896,5276,6197,5276,5276,7024,5276,7104,5277,5276,5276,6947,6946,5276,6378,5276,5276,5276,7356,5276,5276,7356,6396,7111,7118,6379,5276,7119,6094,5276,5276,6405,5872,5898,6956,6954,5276,5276,6422,6847,7144,5276,5276,5276,7363,5285,5289,7113,7142,5286,7148,7114,7143,6201,5367,5276,5276,6458,5480,6298,7452,7154,5276,5895,5290,7159,7164,5318,7066,5318,5276,5276,6458,5481,6301,6676,5276,5276,6199,5276,5276,5276,6879,7180,5276,5276,5276,7364,5290,7174,7179,5276,5276,7178,5276,5276,5276,7380,5740,7169,5276,5276,6467,5276,6677,6197,5276,5924,7196,6975,5276,5276,6467,7049,5285,7195,7185,6391,6116,5276,5276,5276,7208,7454,5276,5276,6473,6477,6526,5276,7449,5276,6197,6520,5276,7446,5276,5375,7224,5276,5276,5276,7381,7214,5276,5276,5276,7408,7223,6847,5276,5276,6479,5276,7222,6425,5276,6201,6886,6492,7200,5276,6237,5276,5276,6841,6675,5276,5276,5387,5276,5276,6488,5276,6878,6781,5276,5276,6514,5276,5276,6879,7230,5276,5276,5276,7446,7228,5276,5276,6249,7452,5276,5389,5276,6198,6197,5276,6e3,5276,6238,5276,6524,6201,5276,6201,7449,5276,6193,7445,5276,5280,6209,6213,5276,6520,5276,5281,6065,6587,6879,7455,5276,5276,6525,6526,6659,6079,7450,5276,6395,7455,6621,6847,5276,7238,5276,6622,5276,5276,6526,7416,5276,6622,5276,7247,6620,7455,5276,5276,6530,5276,7391,6527,6621,6847,5276,5276,6537,5276,5276,6536,6621,6847,7455,5387,5388,6847,5388,7344,5276,5276,7229,7453,5386,5423,5389,5276,5276,6593,5276,5388,5276,5386,5388,7253,5276,7258,7446,6196,5276,5363,5276,6210,6887,5276,5894,5276,5276,5276,5971,7257,5276,5916,6640,7264,6258,5276,5189,5276,7260,5916,7259,6503,7097,7283,7273,5724,7100,7135,7279,6930,7132,7289,7293,7302,7295,7297,7306,7298,7317,7310,7311,7315,7318,7326,7326,7328,7324,7322,7332,7335,5276,6218,5750,5276,5276,7362,7366,7364,7342,5276,6467,5389,5281,5276,5276,6621,5276,5276,6393,5276,5915,5276,6227,6476,5276,5377,6746,5276,5386,5276,5276,5276,7449,5276,5276,7360,7370,7376,7385,5276,5276,5276,7450,5276,5276,6529,7386,5276,6265,5276,5276,5378,6094,7392,5276,5276,5276,7451,7342,7445,6201,5276,6266,5276,5276,5382,5400,5400,5400,5427,6389,6113,5276,5276,6235,6234,5276,5276,5276,7457,5276,6526,6716,7433,7396,7402,5276,5276,6733,6739,7403,5276,5276,5276,7466,7408,7398,7404,6844,5276,6847,5276,6267,6140,5276,5388,7230,5276,5414,5400,5400,5400,5428,7342,7447,7451,5276,6268,5276,6237,6268,5276,5276,7356,6110,6268,5276,5276,5276,5643,7409,5986,7425,5276,6292,5276,5276,5740,7124,7030,7410,5987,7426,5276,6306,5305,5276,5276,6201,5276,5276,5276,5739,7168,7411,5988,7427,5276,6323,7446,6117,5276,5371,5276,5276,7454,5276,6887,5276,5985,5989,6236,6846,6003,5276,6004,5276,6004,6002,5276,6845,5276,5276,5276,6802,5311,6560,7449,5276,5276,5281,7200,5276,6393,5276,7452,5276,5276,5276,6388,6113,5276,6233,5836,5898,5276,5276,7387,5868,7434,5276,5276,5276,6877,7228,6201,5276,7452,5962,5276,5276,5276,6853,5315,5898,5276,5276,7431,5276,5276,5276,6878,7229,5984,7471,5991,5276,6340,5803,5276,5780,5276,5990,5276,5276,5276,6920,5821,5982,7469,5989,5276,6346,6351,5276,5276,6388,6113,5276,5276,6946,5276,5276,7438,5276,5276,7024,5276,5276,5276,7467,7476,5276,5276,7477,5276,5276,5276,7025,5276,7450,5276,5388,5281,6279,5276,5276,5622,5315,5276,6389,6114,5276,6347,6352,5276,5276,5276,7444,5276,5276,5276,6945,7466,7475,5276,5276,7041,5276,5631,5276,5388,5282,7466,7462,5276,5276,5276,7040,5276,5276,5276,7081,5276,5303,5276,5276,5276,7110,6654,0,0,1075838976,2097152,-1845493760,0,0,2147483648,16777216,4194560,4196352,270532608,2097152,2097152,268435456,4194432,16777216,4194432,3145728,541065216,-2143289344,4194304,4194304,4194304,4194304,541065216,4194304,4194304,4194432,37748736,-1606418432,541065216,541065216,541065216,541065216,4194304,4194304,4196352,-1606418432,-1606418432,541065216,541065216,4194304,4198144,541065216,541065216,-2143289344,-2143289344,8425488,4194304,4194304,4194304,1,32768,0,2147483648,16,33554432,33554432,0,2,4,112,128,256,3584,16384,37748736,742391808,239075328,775946240,775946240,775946240,171966464,171966464,171966464,171966464,239075328,171966464,775946240,239075328,4718592,64,4718592,2097216,4720640,541589504,4194368,541589504,4194400,4194368,-2142763008,541589504,541065280,4194368,4194368,541065312,541065280,-2143289280,4194368,-2143285408,-2143285408,-2143285440,-2143285440,-2143285440,-2143285440,-1605890240,-2142761152,-2109731008,-1606414528,-2142761152,-1606414528,-2143285440,-2143285440,-1606414528,-1606414528,-2143285440,-2109731008,776470528,-1908404416,775946304,-1908404416,2,4,8,16,512,1024,4194304,128,128,0,2147483648,524288,5242880,2147483648,0,0,2,12,64,256,2048,2048,0,0,0,0,1,0,0,0,2,0,0,0,3,4,16,224,256,512,1024,16777216,16777216,0,0,2147483648,65536,1792,0,0,0,8,0,0,0,12,32,64,1024,2048,57344,262144,50331648,268435456,1073741824,2147483648,0,0,1536,64,524352,524352,524352,0,0,0,62,64,128,64,262144,1048576,0,2147483648,2097152,0,-2113929216,0,0,-1979711488,-1912602624,64,64,1048576,128,256,2048,262144,524288,4096,1024,1024,0,-570425344,32505856,0,0,48,25165824,0,0,0,33554432,268435456,0,0,0,524288,0,0,0,32,0,0,0,44,64576,319029248,0,524288,524288,524288,0,64,0,0,0,64,0,96,96,96,524352,524352,524352,524352,524288,524288,524288,524288,64,64,0,64,128,128,128,128,2048,2048,0,0,524288,524288,64,64,128,2048,0,0,64,128,8388608,524288,64,64,64,64,32,96,64,96,96,524352,96,160,1056,262176,1048608,2097184,4194336,536870944,40,262176,32,96,0,0,0,60,40,48,1120,96,96,64,524352,0,524288,64,96,524352,0,524288,4195360,6291488,2097184,2097184,4194336,4194336,4194336,32,56,0,4,16,32,64,128,256,1536,2048,40,262184,40,40,40,40,40,262176,32,32,6292512,4195360,2097184,32,128,1792,8192,16384,131072,524288,4195104,6292512,32,32,32,32,4,40,262184,32,32,34,34,262184,40,4196128,32,262144,524288,0,0,64,256,0,2097152,135790592,131073,4,393233,262184,34,42,32,524320,32,1073872896,32,32,40,1120,96,1056,4194336,32,2098208,-322695456,-322695456,-322695456,-322695456,-322597152,-320598176,-322597152,-322597144,-321548576,-320598168,-322597144,-321548568,-37482773,0,0,64,1536,32768,-322588952,-321548568,-322588952,-321548568,-322597144,32,0,32,64,65536,0,96,32,32,56,262184,40,41,262184,32,42,224,40,262176,42,106,293601323,293601323,293863467,293699627,293617707,293716011,293702203,293702203,293702203,297896507,293702203,293702203,293702203,293702267,293964347,293702267,297896507,293964347,297896507,297896507,-322597144,-37744981,0,32,524288,0,0,64,2048,16384,32768,0,0,262144,65536,262144,262144,0,4096,0,8,0,2,65536,262656,328192,0,0,0,1536,32768,0,5242880,0,0,0,1998,518144,8388608,-2147418112,5242880,-1842937664,201330721,201330721,-2111369023,-2111369023,-2111369023,-2111369023,-2111360575,-2111369023,-2111369023,-2111369023,-1977151295,-1977151293,-1910042431,-1893265183,-2111368509,-1893265183,-1893265183,-1893265183,-1893265183,-2111368509,-1893265183,-1893265183,-553689472,-553656704,-553689472,-553689472,-553656704,-553656704,-553656704,-553656704,-553656704,-553656672,-553656672,-553656672,-553656672,-536912159,-553656672,-553656672,-553656664,-553656664,-553656672,-553656672,-553656670,-553656672,-553656672,-553656670,-553656608,-553656671,-536879391,-536879391,-536879391,0,0,262656,0,0,65,1024,0,1,4096,201326592,0,0,0,0,462976,-2113929216,100663296,100663296,2,4,8,64,128,512,2048,8192,16384,458752,18874368,463488,0,0,1,2,4,32,0,0,1007232,15728640,104e4,15728640,-570425344,0,0,0,2014,0,0,0,32505856,-570425344,196608,2097152,301989888,0,0,80,268435456,0,268435456,0,268435456,268435456,268435456,268435456,0,0,0,4096,201326592,0,0,96,2260992,12288,0,2147483648,0,0,118,577408,22020096,1040187392,0,0,167772160,234881024,128,512,2048,196608,262144,33554432,536870912,0,0,0,557056,7168,16384,196608,786432,503316480,1073741824,2147483648,0,0,128,131072,524288,58720256,402653184,0,0,0,318767104,128,512,7168,16384,32768,32768,196608,786432,1048576,2097152,4194304,33554432,268435456,536870912,2147483648,0,0,1,256,8388608,234881024,268435456,1073741824,2147483648,4096,16384,32768,131072,524288,1048576,2097152,4194304,8388608,234881024,0,0,201326592,0,0,128,536870912,4194304,512,3072,16384,131072,524288,1048576,4194304,134217728,8388608,33554432,201326592,268435456,1073741824,0,1048576,4194304,268435456,4194304,8388608,134217728,268435456,1073741824,3072,131072,524288,1048576,1073741824,0,0,0,2147483648,0,0,0,-2147483646,16384,18432,67108864,1073741824,16384,8192,0,0,65536,262144,0,0,67108864,0,0,0,32768,0,1,18952,1024,0,0,192,0,0,0,65,1024,1024,100663298,18952,65,268436480,2101248,524288,1024,19017,-1744550912,8388624,8388624,8388624,-1739308032,-1739308032,-1739308032,-1739308032,-1736162288,-1736162288,-1736162288,-1736162288,-7868466,-7868466,-7868466,-7868466,-7868466,-7868450,-7868450,-7868450,-7868450,0,0,0,65536,2048,16384,67108864,134217728,268435456,0,0,1073741824,18432,0,0,1,285212672,0,585,0,0,2,8,16,64,128,3072,4096,8192,65536,131072,0,0,1024,5521408,-1744830464,0,0,0,262144,0,0,0,1024,0,0,0,112,1040,0,0,-1744830464,0,-1744830464,59238400,-67108864,0,0,0,327680,2014,0,0,0,328192,518144,8388608,50331648,201326592,805306368,-1073741824,768,1024,10240,16384,32768,458752,50331648,67108864,134217728,805306368,0,0,0,458880,32768,458752,8388608,50331648,67108864,134217728,67108864,134217728,805306368,1073741824,2147483648,0,0,220,0,0,0,471424,12,192,768,1024,2048,805306368,1073741824,0,0,2,204,768,1024,4,8,32,64,512,2048,512,2048,16384,67108864,0,0,458752,50331648,67108864,805306368,-1073741824,0,0,0,393240,0,1048576,4194304,0,0,16384,458752,50331648,67108864,536870912,1073741824,0,0,16384,0,0,0,256,0,0,0,512,0,0,0,585,16,0,0,1048576,4194304,2147483648,4,8,128,512,3072,16384,32768,131072,512,0,0,4096,1048576,2147483648,8192,2097152,268435456,2147483648,537395200,537395200,0,4196352,51380242,51380242,51380242,0,537395200,4196352,4196352,276901888,8540160,-1606418432,0,32768,537395200,4196352,1082130432,0,4196352,537427968,22022147,22349827,22349827,22349827,22366219,22349843,22349827,22349827,22366219,22349827,55576594,55576594,55576594,55576594,55576594,324012114,55576594,55576594,1062785014,1062785014,1062785014,1062785014,0,0,2,33554432,0,0,0,131072,0,0,0,8192,8392704,32768,268435456,0,0,2,67108864,12,16384,0,65536,0,22020096,0,0,0,104e4,15728640,0,0,329728,0,0,254,1792,2809856,58720256,19,0,0,0,1048576,0,0,0,2048,0,0,0,18,33554432,0,0,256,8192,0,0,8192,2097152,0,2147483648,0,82,301989888,0,0,0,2101248,22020096,1040187392,0,0,0,4194304,0,0,0,16384,1536,0,256,0,8192,2097152,16,1048576,16777216,33554432,268435456,536870912,2147483648,3584,16384,32768,524288,1048576,4194304,0,0,8388608,1073741824,0,0,1536,2048,16384,32768,524288,4194304,134217728,0,0,134217728,4096,0,8,0,256,1536,16384,32768,524288,128,536870912,0,0,4,8,512,2048,0,0,1536,32768,524288,4194304,33554432,134217728,536870912,0,0,8192,2097152,2147483648,0,0,512,2048,131072,536870912,0,0,16,64,1536,32768,32768,524288,134217728,0,0,0,524288,0,64,64,16392,1536,32768,524288,0,0,33554432,8192,0,65536,0,0,1,1,0,1,67174400,33554432,536870912,-1073741824,0,0,0,0,524288,134217728,67174400,0,0,0,16777216,0,0,0,4,0,0,0,7,16,16384,8,8,0,0,512,3072,131072,131072,268435456,134217728,8,512,2048,196608,262144,50331648,536870912,1073741824,0,4,8,2048,8192,32768,8388608,0,0,134217736,16908320,547389524,547389524,555909216,555909216,555909216,555909216,564297840,564297844,564297844,564297844,564297844,1001055742,1001056254,1001055742,1001055742,1001056254,1001056254,1001056254,1001056254,1001055742,1001056254,1001056254,1001056254,1001056254,0,1052672,2147483648,0,0,4,16,0,0,84,2129920,8388608,4096,0,0,0,116,0,254,1280,2809856,58720256,939524096,0,0,0,50331648,268435456,0,0,0,939524096,0,0,520,1024,0,0,1,0,67108864,1073741824,0,0,0,20,64,32768,8192,0,2048,0,2097152,8388608,536870912,0,0,1024,278528,0,0,0,393232,163840,0,0,0,134217728,0,0,0,16,0,0,0,15,208,15360,1245184,52,0,0,0,268435456,0,0,33554432,64,128,1280,24576,163840,524288,2097152,58720256,402653184,536870912,128,1792,24576,163840,524288,0,4,16,8388608,0,0,4096,32768,262144,524288,33554432,134217728,0,0,24,32,128,1280,8192,16384,8192,524288,16777216,33554432,402653184,0,4,8,16,1024,2048,8192,16384,32768,458752,0,262144,33554432,134217728,0,512,1024,16777216,33554432,402653184,0,4096,1048576,0,0,1998,59238400,-67108864,4,8,16,402653184,0,0,8,16,402653184,536870912,0,0,4,64,128,8388608,0,0,67108866,12,64,128,512,1024,4,16384,65536,67108864,0,65536,0,0,2048,64,64,64,96,96,96,96,0,8192,8192,268435460,32768,65536,2490368,16777216,2147483648,0,0,1,4,8,2048,8192,3670016,2048,2048,2048,2048,0,8192,34816,9216,4096,0,128,0,2097152,0,0,4096,4096,29696,29712,29840,29712,29712,29840,29840,536900624,4224144,144384,144384,144384,144384,-754647956,-754647956,-754647956,-754647956,-754647956,-754647940,-754647940,-754647940,-754647940,-754516884,-754647956,-754516884,-754516884,-754516884,4,8,256,512,2048,0,0,3670016,0,0,2048,131072,524288,4194304,2147483648,0,0,9216,0,0,4,134217728,0,29696,0,0,4,268435456,0,16,0,29824,0,60,64576,319029248,-1073741824,0,0,319160320,0,0,0,319160320,0,0,524288,3145728,0,12288,131072,0,8,131072,61440,262144,318767104,-1073741824,0,0,64,1024,2048,61440,262144,0,28,32,64,64,64,128,0,0,16384,32768,50331648,268435456,0,0,0,393216,0,0,0,486539264,0,128,0,536870912,0,0,12,16,32,327155712,34,1056,32,32,42,4457568,-326784344,-322851160,-322698144,-322698144,-322698144,-322698144,-322695456,0,0,524288,1048576,0,0,0,536870912,4194304,131072,0,0,6,56,128,1792,2,67108864,16384,0,0,4096,4194304,32768,0,0,0,8388608,0,0,0,72,0,8,64,2048,57344,16384,32768,262144,50331648,268435456,0,524288,1048576,2097152,4194304,134217728,2147483648,0,0,50331648,268435456,2147483648,0,0,1,0,0,2,4,16,64,1,0,2,0,0,65536,0,0,0,1040,8667136,0,131072,131072,0,131072,0,131072,0,0,524288,536870912,131072,0,0,7,27756528,-503316480,0,256,0,2048,32768,8388608,262144,2113536,0,0,8,16,512,402653184,0,0,0,256,32768,0,0,4224,65536,262144,1048576,4194304,16777216,33554432,67108864,134217728,0,0,256,262144,0,0,8192,268435456,0,0,0,4,131073,0,0,9728,268435456,0,0,16,393216,0,131073,131073,33554624,4,0,131073,0,0,13312,131072,4194304,-2146430976,131072,2097152,16777216,0,0,512,131072,1048576,2097152,0,1572864,0,0,0,2147483648,524288,0,1610612736,1610612736,1610612736,393241,393241,393241,393241,805707793,805707793,1879449617,805708049,1879449617,1879449617,1879449617,1879449617,-483948553,-475559945,-483948553,-475559945,-483948553,-483948553,-475559945,-475559945,-475559945,-475559945,-483948553,-483948553,-215504905,-475559945,-207116297,-207116297,0,0,0,1073741824,0,0,2097152,67108864,134217728,536870912,0,0,24576,0,0,0,2113536,0,0,8,64,0,0,0,401424,805306368,0,0,28672,0,0,4096,2097152,4194304,8388608,503316480,1073741824,0,0,1879048192,0,0,32768,2097152,8388608,16777216,33554432,0,401680,0,0,8,512,2048,131072,33554432,536870912,0,0,7,19367920,-503316480,27756528,-503316480,0,0,0,0,0,19376112,-234881024,0,27764720,-234881024,0,0,32768,33554436,0,0,33554436,24,0,0,0,11,346112,7,16,480,1536,32768,65536,393216,10485760,65536,10878976,16777216,33554432,536870912,4,32,524288,1048576,33554432,67108864,65536,393216,2097152,16777216,262400,65536,4224,4224,0,65536,201326592,2147483648,393216,10485760,16777216,33554432,1073741824,2147483648,0,16,224,256,1536,32768,65536,0,16384,2097152,0,0,1024,32768,65536,131072,262144,262144,2097152,16777216,33554432,4,32,524288,134217728,0,512,32768,131072,262144,2097152,2097152,8388608,16777216,1073741824,0,0,512,32768,131072,2097152,8388608,8388608,16777216,0,0,16,33554432,4,16,224,512,32768,4,524288,134217728,0,0,32768,50331648,268435456,4096,32768,0,0,16,536870912,16,192,32768,8388608,4096,4096,4096,1536,2,4,16,192,32768,0,16,64,128,8388608,0,0,0,2,4,134217728,4,0,0,128,512,3072,4096,16384,131072,4,128,0,0,18,17825792,524288,8388608,33554432,2147483648,8192,0,33554432,0,0,33554432,0,0,0,268435456,2,4,8,262144,262144,1048576,2048,32768,0,0,28,0,100663296,4224,65536,65536,262144,33554432,0,2,4,24,-1072627712,805306384,-1342177264,-1342177264,-1070006272,-1070006272,-1069989376,-1069989376,-258932720,-258932720,-258932720,-258932720,-225378288,-1069989376,-1069989360,-1065795072,-1061600768,-258932720,-225378288,-258932720,-258932720,1260767,34815199,1260767,34815199,1260767,34815199,34815199,1260767,1260767,34815199,1260767,1260767,169032927,-1978450721,169032927,-1978450721,169032927,169032927,169032927,169032927,1242774751,-1978450721,-1978450721,-225231649,-1173144353,-225231649,-91013921,0,0,32,128,256,262144,524288,8388608,0,64,0,0,1114112,1073741824,0,0,34816,0,0,2048,4194304,0,0,0,3735552,0,0,32,512,2048,32768,262144,524288,3751936,0,0,0,48,0,0,528,7946240,12140544,9502720,1610612736,0,0,0,15360,1245184,0,0,134217728,128,15,9633792,0,0,0,2,12,80,128,7168,8192,7168,8192,196608,1048576,0,0,0,1,2,12,16,64,128,256,0,0,3145728,0,0,0,536870912,0,0,8192,65536,131072,1048576,0,0,0,2097152,0,16384,0,4194304,0,0,2097152,16384,0,0,131072,2097152,0,0,0,4096,0,0,8192,0,0,0,128,0,0,0,208,0,64,128,1024,4096,0,0,2,8,64,128,1024,2048,4096,8192,128,1024,4096,8192,0,0],r.TOKEN=[\"(0)\",\"PragmaContents\",\"DirCommentContents\",\"DirPIContents\",\"CDataSection\",\"Wildcard\",\"EQName\",\"URILiteral\",\"IntegerLiteral\",\"DecimalLiteral\",\"DoubleLiteral\",\"StringLiteral\",\"PredefinedEntityRef\",\"'\\\"\\\"'\",\"EscapeApos\",\"ElementContentChar\",\"QuotAttrContentChar\",\"AposAttrContentChar\",\"PITarget\",\"NCName\",\"QName\",\"S\",\"S\",\"CharRef\",\"CommentContents\",\"EOF\",\"'!'\",\"'!='\",\"'\\\"'\",\"'#'\",\"'#)'\",\"'$'\",\"'$$'\",\"'%'\",\"''''\",\"'('\",\"'(#'\",\"'(:'\",\"')'\",\"'*'\",\"'*'\",\"'+'\",\"','\",\"'-'\",\"'-->'\",\"'.'\",\"'..'\",\"'/'\",\"'//'\",\"'/>'\",\"':'\",\"':)'\",\"'::'\",\"':='\",\"';'\",\"'<'\",\"'<!--'\",\"'</'\",\"'<<'\",\"'<='\",\"'<?'\",\"'='\",\"'>'\",\"'>='\",\"'>>'\",\"'?'\",\"'?>'\",\"'@'\",\"'NaN'\",\"'['\",\"']'\",\"'after'\",\"'all'\",\"'allowing'\",\"'ancestor'\",\"'ancestor-or-self'\",\"'and'\",\"'any'\",\"'append'\",\"'array'\",\"'as'\",\"'ascending'\",\"'at'\",\"'attribute'\",\"'base-uri'\",\"'before'\",\"'boundary-space'\",\"'break'\",\"'by'\",\"'case'\",\"'cast'\",\"'castable'\",\"'catch'\",\"'check'\",\"'child'\",\"'collation'\",\"'collection'\",\"'comment'\",\"'constraint'\",\"'construction'\",\"'contains'\",\"'content'\",\"'context'\",\"'continue'\",\"'copy'\",\"'copy-namespaces'\",\"'count'\",\"'decimal-format'\",\"'decimal-separator'\",\"'declare'\",\"'default'\",\"'delete'\",\"'descendant'\",\"'descendant-or-self'\",\"'descending'\",\"'diacritics'\",\"'different'\",\"'digit'\",\"'distance'\",\"'div'\",\"'document'\",\"'document-node'\",\"'element'\",\"'else'\",\"'empty'\",\"'empty-sequence'\",\"'encoding'\",\"'end'\",\"'entire'\",\"'eq'\",\"'every'\",\"'exactly'\",\"'except'\",\"'exit'\",\"'external'\",\"'false'\",\"'first'\",\"'following'\",\"'following-sibling'\",\"'for'\",\"'foreach'\",\"'foreign'\",\"'from'\",\"'ft-option'\",\"'ftand'\",\"'ftnot'\",\"'ftor'\",\"'function'\",\"'ge'\",\"'greatest'\",\"'group'\",\"'grouping-separator'\",\"'gt'\",\"'idiv'\",\"'if'\",\"'import'\",\"'in'\",\"'index'\",\"'infinity'\",\"'inherit'\",\"'insensitive'\",\"'insert'\",\"'instance'\",\"'integrity'\",\"'intersect'\",\"'into'\",\"'is'\",\"'item'\",\"'json'\",\"'json-item'\",\"'jsoniq'\",\"'key'\",\"'language'\",\"'last'\",\"'lax'\",\"'le'\",\"'least'\",\"'let'\",\"'levels'\",\"'loop'\",\"'lowercase'\",\"'lt'\",\"'minus-sign'\",\"'mod'\",\"'modify'\",\"'module'\",\"'most'\",\"'namespace'\",\"'namespace-node'\",\"'ne'\",\"'next'\",\"'no'\",\"'no-inherit'\",\"'no-preserve'\",\"'node'\",\"'nodes'\",\"'not'\",\"'null'\",\"'object'\",\"'occurs'\",\"'of'\",\"'on'\",\"'only'\",\"'option'\",\"'or'\",\"'order'\",\"'ordered'\",\"'ordering'\",\"'paragraph'\",\"'paragraphs'\",\"'parent'\",\"'pattern-separator'\",\"'per-mille'\",\"'percent'\",\"'phrase'\",\"'position'\",\"'preceding'\",\"'preceding-sibling'\",\"'preserve'\",\"'previous'\",\"'processing-instruction'\",\"'relationship'\",\"'rename'\",\"'replace'\",\"'return'\",\"'returning'\",\"'revalidation'\",\"'same'\",\"'satisfies'\",\"'schema'\",\"'schema-attribute'\",\"'schema-element'\",\"'score'\",\"'select'\",\"'self'\",\"'sensitive'\",\"'sentence'\",\"'sentences'\",\"'skip'\",\"'sliding'\",\"'some'\",\"'stable'\",\"'start'\",\"'stemming'\",\"'stop'\",\"'strict'\",\"'strip'\",\"'structured-item'\",\"'switch'\",\"'text'\",\"'then'\",\"'thesaurus'\",\"'times'\",\"'to'\",\"'treat'\",\"'true'\",\"'try'\",\"'tumbling'\",\"'type'\",\"'typeswitch'\",\"'union'\",\"'unique'\",\"'unordered'\",\"'updating'\",\"'uppercase'\",\"'using'\",\"'validate'\",\"'value'\",\"'variable'\",\"'version'\",\"'weight'\",\"'when'\",\"'where'\",\"'while'\",\"'wildcards'\",\"'window'\",\"'with'\",\"'without'\",\"'word'\",\"'words'\",\"'zero-digit'\",\"'{'\",\"'{{'\",\"'{|'\",\"'|'\",\"'||'\",\"'|}'\",\"'}'\",\"'}}'\"]},{}],10:[function(e,t,n){var r=n.XQueryParser=function i(e,t){function r(e,t){Vl=t,Ql=e,Gl=e.length,s(0,0,0)}function s(e,t,n){Dl=t,Pl=t,Hl=e,Bl=t,jl=n,Fl=0,Zl=n,Ul=-1,$l={},Vl.reset(Ql)}function o(){Vl.startNonterminal(\"Module\",Pl);switch(Hl){case 274:Ll(199);break;default:_l=Hl}(_l==64274||_l==134930)&&u(),kl(275);switch(Hl){case 182:Ll(194);break;default:_l=Hl}switch(_l){case 94390:Nl(),a();break;default:Nl(),Ra()}Vl.endNonterminal(\"Module\",Pl)}function u(){Vl.startNonterminal(\"VersionDecl\",Pl),Sl(274),kl(116);switch(Hl){case 125:Sl(125),kl(17),Sl(11);break;default:Sl(263),kl(17),Sl(11),kl(109),Hl==125&&(Sl(125),kl(17),Sl(11))}kl(28),Nl(),c(),Vl.endNonterminal(\"VersionDecl\",Pl)}function a(){Vl.startNonterminal(\"LibraryModule\",Pl),f(),kl(138),Nl(),l(),Vl.endNonterminal(\"LibraryModule\",Pl)}function f(){Vl.startNonterminal(\"ModuleDecl\",Pl),Sl(182),kl(61),Sl(184),kl(249),Nl(),Ia(),kl(29),Sl(60),kl(15),Sl(7),kl(28),Nl(),c(),Vl.endNonterminal(\"ModuleDecl\",Pl)}function l(){Vl.startNonterminal(\"Prolog\",Pl);for(;;){kl(275);switch(Hl){case 108:Ll(214);break;case 153:Ll(202);break;default:_l=Hl}if(_l!=42604&&_l!=43628&&_l!=50284&&_l!=53356&&_l!=54380&&_l!=55916&&_l!=72300&&_l!=93337&&_l!=94316&&_l!=104044&&_l!=113772&&_l!=115353)break;switch(Hl){case 108:Ll(179);break;default:_l=Hl}if(_l==55916){_l=Kl(0,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{_(),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(0,Pl,_l)}}switch(_l){case-1:Nl(),M();break;case 94316:Nl(),O();break;case 153:Nl(),C();break;case 72300:Nl(),D();break;default:Nl(),h()}kl(28),Nl(),c()}for(;;){kl(275);switch(Hl){case 108:Ll(211);break;default:_l=Hl}if(_l!=16492&&_l!=48748&&_l!=51820&&_l!=74348&&_l!=79468&&_l!=82540&&_l!=101996&&_l!=131692&&_l!=134252)break;switch(Hl){case 108:Ll(175);break;default:_l=Hl}switch(_l){case 51820:Nl(),R();break;case 101996:Nl(),Q();break;default:Nl(),P()}kl(28),Nl(),c()}Vl.endNonterminal(\"Prolog\",Pl)}function c(){Vl.startNonterminal(\"Separator\",Pl),Sl(53),Vl.endNonterminal(\"Separator\",Pl)}function h(){Vl.startNonterminal(\"Setter\",Pl);switch(Hl){case 108:Ll(172);break;default:_l=Hl}if(_l==55916){_l=Kl(1,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{v(),_l=-2}catch(a){try{Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),w(),_l=-6}catch(f){_l=-9}}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(1,Pl,_l)}}switch(_l){case 43628:p();break;case-2:d();break;case 42604:m();break;case 50284:g();break;case 104044:y();break;case-6:b();break;case 113772:ko();break;case 53356:E();break;default:T()}Vl.endNonterminal(\"Setter\",Pl)}function p(){Vl.startNonterminal(\"BoundarySpaceDecl\",Pl),Sl(108),kl(33),Sl(85),kl(133);switch(Hl){case 214:Sl(214);break;default:Sl(241)}Vl.endNonterminal(\"BoundarySpaceDecl\",Pl)}function d(){Vl.startNonterminal(\"DefaultCollationDecl\",Pl),Sl(108),kl(46),Sl(109),kl(38),Sl(94),kl(15),Sl(7),Vl.endNonterminal(\"DefaultCollationDecl\",Pl)}function v(){xl(108),kl(46),xl(109),kl(38),xl(94),kl(15),xl(7)}function m(){Vl.startNonterminal(\"BaseURIDecl\",Pl),Sl(108),kl(32),Sl(83),kl(15),Sl(7),Vl.endNonterminal(\"BaseURIDecl\",Pl)}function g(){Vl.startNonterminal(\"ConstructionDecl\",Pl),Sl(108),kl(41),Sl(98),kl(133);switch(Hl){case 241:Sl(241);break;default:Sl(214)}Vl.endNonterminal(\"ConstructionDecl\",Pl)}function y(){Vl.startNonterminal(\"OrderingModeDecl\",Pl),Sl(108),kl(68),Sl(203),kl(131);switch(Hl){case 202:Sl(202);break;default:Sl(256)}Vl.endNonterminal(\"OrderingModeDecl\",Pl)}function b(){Vl.startNonterminal(\"EmptyOrderDecl\",Pl),Sl(108),kl(46),Sl(109),kl(67),Sl(201),kl(49),Sl(123),kl(121);switch(Hl){case 147:Sl(147);break;default:Sl(173)}Vl.endNonterminal(\"EmptyOrderDecl\",Pl)}function w(){xl(108),kl(46),xl(109),kl(67),xl(201),kl(49),xl(123),kl(121);switch(Hl){case 147:xl(147);break;default:xl(173)}}function E(){Vl.startNonterminal(\"CopyNamespacesDecl\",Pl),Sl(108),kl(44),Sl(104),kl(128),Nl(),S(),kl(25),Sl(41),kl(123),Nl(),x(),Vl.endNonterminal(\"CopyNamespacesDecl\",Pl)}function S(){Vl.startNonterminal(\"PreserveMode\",Pl);switch(Hl){case 214:Sl(214);break;default:Sl(190)}Vl.endNonterminal(\"PreserveMode\",Pl)}function x(){Vl.startNonterminal(\"InheritMode\",Pl);switch(Hl){case 157:Sl(157);break;default:Sl(189)}Vl.endNonterminal(\"InheritMode\",Pl)}function T(){Vl.startNonterminal(\"DecimalFormatDecl\",Pl),Sl(108),kl(114);switch(Hl){case 106:Sl(106),kl(255),Nl(),Ha();break;default:Sl(109),kl(45),Sl(106)}for(;;){kl(181);if(Hl==53)break;Nl(),N(),kl(29),Sl(60),kl(17),Sl(11)}Vl.endNonterminal(\"DecimalFormatDecl\",Pl)}function N(){Vl.startNonterminal(\"DFPropertyName\",Pl);switch(Hl){case 107:Sl(107);break;case 149:Sl(149);break;case 156:Sl(156);break;case 179:Sl(179);break;case 67:Sl(67);break;case 209:Sl(209);break;case 208:Sl(208);break;case 275:Sl(275);break;case 116:Sl(116);break;default:Sl(207)}Vl.endNonterminal(\"DFPropertyName\",Pl)}function C(){Vl.startNonterminal(\"Import\",Pl);switch(Hl){case 153:Ll(126);break;default:_l=Hl}switch(_l){case 115353:k();break;default:A()}Vl.endNonterminal(\"Import\",Pl)}function k(){Vl.startNonterminal(\"SchemaImport\",Pl),Sl(153),kl(73),Sl(225),kl(137),Hl!=7&&(Nl(),L()),kl(15),Sl(7),kl(108);if(Hl==81){Sl(81),kl(15),Sl(7);for(;;){kl(103);if(Hl!=41)break;Sl(41),kl(15),Sl(7)}}Vl.endNonterminal(\"SchemaImport\",Pl)}function L(){Vl.startNonterminal(\"SchemaPrefix\",Pl);switch(Hl){case 184:Sl(184),kl(249),Nl(),Ia(),kl(29),Sl(60);break;default:Sl(109),kl(47),Sl(121),kl(61),Sl(184)}Vl.endNonterminal(\"SchemaPrefix\",Pl)}function A(){Vl.startNonterminal(\"ModuleImport\",Pl),Sl(153),kl(60),Sl(182),kl(90),Hl==184&&(Sl(184),kl(249),Nl(),Ia(),kl(29),Sl(60)),kl(15),Sl(7),kl(108);if(Hl==81){Sl(81),kl(15),Sl(7);for(;;){kl(103);if(Hl!=41)break;Sl(41),kl(15),Sl(7)}}Vl.endNonterminal(\"ModuleImport\",Pl)}function O(){Vl.startNonterminal(\"NamespaceDecl\",Pl),Sl(108),kl(61),Sl(184),kl(249),Nl(),Ia(),kl(29),Sl(60),kl(15),Sl(7),Vl.endNonterminal(\"NamespaceDecl\",Pl)}function M(){Vl.startNonterminal(\"DefaultNamespaceDecl\",Pl),Sl(108),kl(46),Sl(109),kl(115);switch(Hl){case 121:Sl(121);break;default:Sl(145)}kl(61),Sl(184),kl(15),Sl(7),Vl.endNonterminal(\"DefaultNamespaceDecl\",Pl)}function _(){xl(108),kl(46),xl(109),kl(115);switch(Hl){case 121:xl(121);break;default:xl(145)}kl(61),xl(184),kl(15),xl(7)}function D(){Vl.startNonterminal(\"FTOptionDecl\",Pl),Sl(108),kl(52),Sl(141),kl(81),Nl(),Fu(),Vl.endNonterminal(\"FTOptionDecl\",Pl)}function P(){Vl.startNonterminal(\"AnnotatedDecl\",Pl),Sl(108);for(;;){kl(170);if(Hl!=32&&Hl!=257)break;switch(Hl){case 257:Nl(),H();break;default:Nl(),B()}}switch(Hl){case 262:Nl(),F();break;case 145:Nl(),wl();break;case 95:Nl(),da();break;case 155:Nl(),xa();break;default:Nl(),Ta()}Vl.endNonterminal(\"AnnotatedDecl\",Pl)}function H(){Vl.startNonterminal(\"CompatibilityAnnotation\",Pl),Sl(257),Vl.endNonterminal(\"CompatibilityAnnotation\",Pl)}function B(){Vl.startNonterminal(\"Annotation\",Pl),Sl(32),kl(255),Nl(),Ha(),kl(171);if(Hl==34){Sl(34),kl(154),Nl(),oi();for(;;){kl(101);if(Hl!=41)break;Sl(41),kl(154),Nl(),oi()}Sl(37)}Vl.endNonterminal(\"Annotation\",Pl)}function j(){xl(32),kl(255),Ba(),kl(171);if(Hl==34){xl(34),kl(154),ui();for(;;){kl(101);if(Hl!=41)break;xl(41),kl(154),ui()}xl(37)}}function F(){Vl.startNonterminal(\"VarDecl\",Pl),Sl(262),kl(21),Sl(31),kl(255),Nl(),hi(),kl(147),Hl==79&&(Nl(),ds()),kl(106);switch(Hl){case 52:Sl(52),kl(267),Nl(),I();break;default:Sl(133),kl(104),Hl==52&&(Sl(52),kl(267),Nl(),q())}Vl.endNonterminal(\"VarDecl\",Pl)}function I(){Vl.startNonterminal(\"VarValue\",Pl),_f(),Vl.endNonterminal(\"VarValue\",Pl)}function q(){Vl.startNonterminal(\"VarDefaultValue\",Pl),_f(),Vl.endNonterminal(\"VarDefaultValue\",Pl)}function R(){Vl.startNonterminal(\"ContextItemDecl\",Pl),Sl(108),kl(43),Sl(101),kl(55),Sl(165),kl(147),Hl==79&&(Sl(79),kl(260),Nl(),ws()),kl(106);switch(Hl){case 52:Sl(52),kl(267),Nl(),I();break;default:Sl(133),kl(104),Hl==52&&(Sl(52),kl(267),Nl(),q())}Vl.endNonterminal(\"ContextItemDecl\",Pl)}function U(){Vl.startNonterminal(\"ParamList\",Pl),W();for(;;){kl(101);if(Hl!=41)break;Sl(41),kl(21),Nl(),W()}Vl.endNonterminal(\"ParamList\",Pl)}function z(){X();for(;;){kl(101);if(Hl!=41)break;xl(41),kl(21),X()}}function W(){Vl.startNonterminal(\"Param\",Pl),Sl(31),kl(255),Nl(),Ha(),kl(143),Hl==79&&(Nl(),ds()),Vl.endNonterminal(\"Param\",Pl)}function X(){xl(31),kl(255),Ba(),kl(143),Hl==79&&vs()}function V(){Vl.startNonterminal(\"FunctionBody\",Pl),J(),Vl.endNonterminal(\"FunctionBody\",Pl)}function $(){K()}function J(){Vl.startNonterminal(\"EnclosedExpr\",Pl),Sl(276),kl(267),Nl(),G(),Sl(282),Vl.endNonterminal(\"EnclosedExpr\",Pl)}function K(){xl(276),kl(267),Y(),xl(282)}function Q(){Vl.startNonterminal(\"OptionDecl\",Pl),Sl(108),kl(66),Sl(199),kl(255),Nl(),Ha(),kl(17),Sl(11),Vl.endNonterminal(\"OptionDecl\",Pl)}function G(){Vl.startNonterminal(\"Expr\",Pl),_f();for(;;){if(Hl!=41)break;Sl(41),kl(267),Nl(),_f()}Vl.endNonterminal(\"Expr\",Pl)}function Y(){Df();for(;;){if(Hl!=41)break;xl(41),kl(267),Df()}}function Z(){Vl.startNonterminal(\"FLWORExpr\",Pl),tt();for(;;){kl(173);if(Hl==220)break;Nl(),rt()}Nl(),rn(),Vl.endNonterminal(\"FLWORExpr\",Pl)}function et(){nt();for(;;){kl(173);if(Hl==220)break;it()}sn()}function tt(){Vl.startNonterminal(\"InitialClause\",Pl);switch(Hl){case 137:Ll(141);break;default:_l=Hl}switch(_l){case 16009:st();break;case 174:vt();break;default:bt()}Vl.endNonterminal(\"InitialClause\",Pl)}function nt(){switch(Hl){case 137:Ll(141);break;default:_l=Hl}switch(_l){case 16009:ot();break;case 174:mt();break;default:wt()}}function rt(){Vl.startNonterminal(\"IntermediateClause\",Pl);switch(Hl){case 137:case 174:tt();break;case 266:It();break;case 148:Rt();break;case 105:jt();break;default:Kt()}Vl.endNonterminal(\"IntermediateClause\",Pl)}function it(){switch(Hl){case 137:case 174:nt();break;case 266:qt();break;case 148:Ut();break;case 105:Ft();break;default:Qt()}}function st(){Vl.startNonterminal(\"ForClause\",Pl),Sl(137),kl(21),Nl(),ut();for(;;){if(Hl!=41)break;Sl(41),kl(21),Nl(),ut()}Vl.endNonterminal(\"ForClause\",Pl)}function ot(){xl(137),kl(21),at();for(;;){if(Hl!=41)break;xl(41),kl(21),at()}}function ut(){Vl.startNonterminal(\"ForBinding\",Pl),Sl(31),kl(255),Nl(),hi(),kl(164),Hl==79&&(Nl(),ds()),kl(158),Hl==72&&(Nl(),ft()),kl(150),Hl==81&&(Nl(),ct()),kl(122),Hl==228&&(Nl(),pt()),kl(53),Sl(154),kl(267),Nl(),_f(),Vl.endNonterminal(\"ForBinding\",Pl)}function at(){xl(31),kl(255),pi(),kl(164),Hl==79&&vs(),kl(158),Hl==72&&lt(),kl(150),Hl==81&&ht(),kl(122),Hl==228&&dt(),kl(53),xl(154),kl(267),Df()}function ft(){Vl.startNonterminal(\"AllowingEmpty\",Pl),Sl(72),kl(49),Sl(123),Vl.endNonterminal(\"AllowingEmpty\",Pl)}function lt(){xl(72),kl(49),xl(123)}function ct(){Vl.startNonterminal(\"PositionalVar\",Pl),Sl(81),kl(21),Sl(31),kl(255),Nl(),hi(),Vl.endNonterminal(\"PositionalVar\",Pl)}function ht(){xl(81),kl(21),xl(31),kl(255),pi()}function pt(){Vl.startNonterminal(\"FTScoreVar\",Pl),Sl(228),kl(21),Sl(31),kl(255),Nl(),hi(),Vl.endNonterminal(\"FTScoreVar\",Pl)}function dt(){xl(228),kl(21),xl(31),kl(255),pi()}function vt(){Vl.startNonterminal(\"LetClause\",Pl),Sl(174),kl(96),Nl(),gt();for(;;){if(Hl!=41)break;Sl(41),kl(96),Nl(),gt()}Vl.endNonterminal(\"LetClause\",Pl)}function mt(){xl(174),kl(96),yt();for(;;){if(Hl!=41)break;xl(41),kl(96),yt()}}function gt(){Vl.startNonterminal(\"LetBinding\",Pl);switch(Hl){case 31:Sl(31),kl(255),Nl(),hi(),kl(105),Hl==79&&(Nl(),ds());break;default:pt()}kl(27),Sl(52),kl(267),Nl(),_f(),Vl.endNonterminal(\"LetBinding\",Pl)}function yt(){switch(Hl){case 31:xl(31),kl(255),pi(),kl(105),Hl==79&&vs();break;default:dt()}kl(27),xl(52),kl(267),Df()}function bt(){Vl.startNonterminal(\"WindowClause\",Pl),Sl(137),kl(135);switch(Hl){case 251:Nl(),Et();break;default:Nl(),xt()}Vl.endNonterminal(\"WindowClause\",Pl)}function wt(){xl(137),kl(135);switch(Hl){case 251:St();break;default:Tt()}}function Et(){Vl.startNonterminal(\"TumblingWindowClause\",Pl),Sl(251),kl(85),Sl(269),kl(21),Sl(31),kl(255),Nl(),hi(),kl(110),Hl==79&&(Nl(),ds()),kl(53),Sl(154),kl(267),Nl(),_f(),Nl(),Nt();if(Hl==126||Hl==198)Nl(),kt();Vl.endNonterminal(\"TumblingWindowClause\",Pl)}function St(){xl(251),kl(85),xl(269),kl(21),xl(31),kl(255),pi(),kl(110),Hl==79&&vs(),kl(53),xl(154),kl(267),Df(),Ct(),(Hl==126||Hl==198)&&Lt()}function xt(){Vl.startNonterminal(\"SlidingWindowClause\",Pl),Sl(234),kl(85),Sl(269),kl(21),Sl(31),kl(255),Nl(),hi(),kl(110),Hl==79&&(Nl(),ds()),kl(53),Sl(154),kl(267),Nl(),_f(),Nl(),Nt(),Nl(),kt(),Vl.endNonterminal(\"SlidingWindowClause\",Pl)}function Tt(){xl(234),kl(85),xl(269),kl(21),xl(31),kl(255),pi(),kl(110),Hl==79&&vs(),kl(53),xl(154),kl(267),Df(),Ct(),Lt()}function Nt(){Vl.startNonterminal(\"WindowStartCondition\",Pl),Sl(237),kl(163),Nl(),At(),kl(83),Sl(265),kl(267),Nl(),_f(),Vl.endNonterminal(\"WindowStartCondition\",Pl)}function Ct(){xl(237),kl(163),Ot(),kl(83),xl(265),kl(267),Df()}function kt(){Vl.startNonterminal(\"WindowEndCondition\",Pl),Hl==198&&Sl(198),kl(50),Sl(126),kl(163),Nl(),At(),kl(83),Sl(265),kl(267),Nl(),_f(),Vl.endNonterminal(\"WindowEndCondition\",Pl)}function Lt(){Hl==198&&xl(198),kl(50),xl(126),kl(163),Ot(),kl(83),xl(265),kl(267),Df()}function At(){Vl.startNonterminal(\"WindowVars\",Pl),Hl==31&&(Sl(31),kl(255),Nl(),Mt()),kl(159),Hl==81&&(Nl(),ct()),kl(153),Hl==215&&(Sl(215),kl(21),Sl(31),kl(255),Nl(),Dt()),kl(127),Hl==187&&(Sl(187),kl(21),Sl(31),kl(255),Nl(),Ht()),Vl.endNonterminal(\"WindowVars\",Pl)}function Ot(){Hl==31&&(xl(31),kl(255),_t()),kl(159),Hl==81&&ht(),kl(153),Hl==215&&(xl(215),kl(21),xl(31),kl(255),Pt()),kl(127),Hl==187&&(xl(187),kl(21),xl(31),kl(255),Bt())}function Mt(){Vl.startNonterminal(\"CurrentItem\",Pl),Ha(),Vl.endNonterminal(\"CurrentItem\",Pl)}function _t(){Ba()}function Dt(){Vl.startNonterminal(\"PreviousItem\",Pl),Ha(),Vl.endNonterminal(\"PreviousItem\",Pl)}function Pt(){Ba()}function Ht(){Vl.startNonterminal(\"NextItem\",Pl),Ha(),Vl.endNonterminal(\"NextItem\",Pl)}function Bt(){Ba()}function jt(){Vl.startNonterminal(\"CountClause\",Pl),Sl(105),kl(21),Sl(31),kl(255),Nl(),hi(),Vl.endNonterminal(\"CountClause\",Pl)}function Ft(){xl(105),kl(21),xl(31),kl(255),pi()}function It(){Vl.startNonterminal(\"WhereClause\",Pl),Sl(266),kl(267),Nl(),_f(),Vl.endNonterminal(\"WhereClause\",Pl)}function qt(){xl(266),kl(267),Df()}function Rt(){Vl.startNonterminal(\"GroupByClause\",Pl),Sl(148),kl(34),Sl(87),kl(267),Nl(),zt(),Vl.endNonterminal(\"GroupByClause\",Pl)}function Ut(){xl(148),kl(34),xl(87),kl(267),Wt()}function zt(){Vl.startNonterminal(\"GroupingSpecList\",Pl),Xt();for(;;){kl(176);if(Hl!=41)break;Sl(41),kl(267),Nl(),Xt()}Vl.endNonterminal(\"GroupingSpecList\",Pl)}function Wt(){Vt();for(;;){kl(176);if(Hl!=41)break;xl(41),kl(267),Vt()}}function Xt(){Vl.startNonterminal(\"GroupingSpec\",Pl);switch(Hl){case 31:Ll(255);break;default:_l=Hl}if(_l==3103||_l==35871||_l==36895||_l==37407||_l==37919||_l==38431||_l==39455||_l==39967||_l==40479||_l==40991||_l==41503||_l==42015||_l==42527||_l==43039||_l==43551||_l==44063||_l==45087||_l==45599||_l==46111||_l==46623||_l==47647||_l==48159||_l==49183||_l==49695||_l==50207||_l==51743||_l==52255||_l==52767||_l==53279||_l==53791||_l==54303||_l==55327||_l==55839||_l==56351||_l==56863||_l==57375||_l==57887||_l==60447||_l==60959||_l==61471||_l==61983||_l==62495||_l==63007||_l==63519||_l==64031||_l==64543||_l==65567||_l==66079||_l==67103||_l==67615||_l==68127||_l==68639||_l==69151||_l==69663||_l==70175||_l==72223||_l==74271||_l==74783||_l==75807||_l==76831||_l==77343||_l==77855||_l==78367||_l==78879||_l==79391||_l==81439||_l==81951||_l==82463||_l==82975||_l==83487||_l==83999||_l==84511||_l==85023||_l==85535||_l==87071||_l==87583||_l==88095||_l==89119||_l==90143||_l==91167||_l==92191||_l==92703||_l==93215||_l==94239||_l==94751||_l==95263||_l==97823||_l==98335||_l==99359||_l==101407||_l==101919||_l==102431||_l==102943||_l==103455||_l==103967||_l==105503||_l==108575||_l==109087||_l==110623||_l==111647||_l==112159||_l==112671||_l==113183||_l==113695||_l==114719||_l==115231||_l==115743||_l==116255||_l==116767||_l==117279||_l==119839||_l==120351||_l==120863||_l==121375||_l==122911||_l==123935||_l==124447||_l==124959||_l==127007||_l==127519||_l==128031||_l==128543||_l==129055||_l==129567||_l==130079||_l==131103||_l==131615||_l==133151||_l==133663||_l==134175||_l==134687||_l==136223||_l==136735||_l==138271||_l==140319){_l=Kl(2,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Jt(),kl(183);if(Hl==52||Hl==79)Hl==79&&vs(),kl(27),xl(52),kl(267),Df();Hl==94&&(xl(94),kl(15),xl(7)),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(2,Pl,_l)}}switch(_l){case-1:$t(),kl(183);if(Hl==52||Hl==79)Hl==79&&(Nl(),ds()),kl(27),Sl(52),kl(267),Nl(),_f();Hl==94&&(Sl(94),kl(15),Sl(7));break;default:_f()}Vl.endNonterminal(\"GroupingSpec\",Pl)}function Vt(){switch(Hl){case 31:Ll(255);break;default:_l=Hl}if(_l==3103||_l==35871||_l==36895||_l==37407||_l==37919||_l==38431||_l==39455||_l==39967||_l==40479||_l==40991||_l==41503||_l==42015||_l==42527||_l==43039||_l==43551||_l==44063||_l==45087||_l==45599||_l==46111||_l==46623||_l==47647||_l==48159||_l==49183||_l==49695||_l==50207||_l==51743||_l==52255||_l==52767||_l==53279||_l==53791||_l==54303||_l==55327||_l==55839||_l==56351||_l==56863||_l==57375||_l==57887||_l==60447||_l==60959||_l==61471||_l==61983||_l==62495||_l==63007||_l==63519||_l==64031||_l==64543||_l==65567||_l==66079||_l==67103||_l==67615||_l==68127||_l==68639||_l==69151||_l==69663||_l==70175||_l==72223||_l==74271||_l==74783||_l==75807||_l==76831||_l==77343||_l==77855||_l==78367||_l==78879||_l==79391||_l==81439||_l==81951||_l==82463||_l==82975||_l==83487||_l==83999||_l==84511||_l==85023||_l==85535||_l==87071||_l==87583||_l==88095||_l==89119||_l==90143||_l==91167||_l==92191||_l==92703||_l==93215||_l==94239||_l==94751||_l==95263||_l==97823||_l==98335||_l==99359||_l==101407||_l==101919||_l==102431||_l==102943||_l==103455||_l==103967||_l==105503||_l==108575||_l==109087||_l==110623||_l==111647||_l==112159||_l==112671||_l==113183||_l==113695||_l==114719||_l==115231||_l==115743||_l==116255||_l==116767||_l==117279||_l==119839||_l==120351||_l==120863||_l==121375||_l==122911||_l==123935||_l==124447||_l==124959||_l==127007||_l==127519||_l==128031||_l==128543||_l==129055||_l==129567||_l==130079||_l==131103||_l==131615||_l==133151||_l==133663||_l==134175||_l==134687||_l==136223||_l==136735||_l==138271||_l==140319){_l=Kl(2,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Jt(),kl(183);if(Hl==52||Hl==79)Hl==79&&vs(),kl(27),xl(52),kl(267),Df();Hl==94&&(xl(94),kl(15),xl(7)),Jl(2,t,-1),_l=-3}catch(a){_l=-2,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(2,t,-2)}}}switch(_l){case-1:Jt(),kl(183);if(Hl==52||Hl==79)Hl==79&&vs(),kl(27),xl(52),kl(267),Df();Hl==94&&(xl(94),kl(15),xl(7));break;case-3:break;default:Df()}}function $t(){Vl.startNonterminal(\"GroupingVariable\",Pl),Sl(31),kl(255),Nl(),hi(),Vl.endNonterminal(\"GroupingVariable\",Pl)}function Jt(){xl(31),kl(255),pi()}function Kt(){Vl.startNonterminal(\"OrderByClause\",Pl);switch(Hl){case 201:Sl(201),kl(34),Sl(87);break;default:Sl(236),kl(67),Sl(201),kl(34),Sl(87)}kl(267),Nl(),Gt(),Vl.endNonterminal(\"OrderByClause\",Pl)}function Qt(){switch(Hl){case 201:xl(201),kl(34),xl(87);break;default:xl(236),kl(67),xl(201),kl(34),xl(87)}kl(267),Yt()}function Gt(){Vl.startNonterminal(\"OrderSpecList\",Pl),Zt();for(;;){kl(176);if(Hl!=41)break;Sl(41),kl(267),Nl(),Zt()}Vl.endNonterminal(\"OrderSpecList\",Pl)}function Yt(){en();for(;;){kl(176);if(Hl!=41)break;xl(41),kl(267),en()}}function Zt(){Vl.startNonterminal(\"OrderSpec\",Pl),_f(),Nl(),tn(),Vl.endNonterminal(\"OrderSpec\",Pl)}function en(){Df(),nn()}function tn(){Vl.startNonterminal(\"OrderModifier\",Pl);if(Hl==80||Hl==113)switch(Hl){case 80:Sl(80);break;default:Sl(113)}kl(180);if(Hl==123){Sl(123),kl(121);switch(Hl){case 147:Sl(147);break;default:Sl(173)}}kl(177),Hl==94&&(Sl(94),kl(15),Sl(7)),Vl.endNonterminal(\"OrderModifier\",Pl)}function nn(){if(Hl==80||Hl==113)switch(Hl){case 80:xl(80);break;default:xl(113)}kl(180);if(Hl==123){xl(123),kl(121);switch(Hl){case 147:xl(147);break;default:xl(173)}}kl(177),Hl==94&&(xl(94),kl(15),xl(7))}function rn(){Vl.startNonterminal(\"ReturnClause\",Pl),Sl(220),kl(267),Nl(),_f(),Vl.endNonterminal(\"ReturnClause\",Pl)}function sn(){xl(220),kl(267),Df()}function on(){Vl.startNonterminal(\"QuantifiedExpr\",Pl);switch(Hl){case 235:Sl(235);break;default:Sl(129)}kl(21),Nl(),an();for(;;){if(Hl!=41)break;Sl(41),kl(21),Nl(),an()}Sl(224),kl(267),Nl(),_f(),Vl.endNonterminal(\"QuantifiedExpr\",Pl)}function un(){switch(Hl){case 235:xl(235);break;default:xl(129)}kl(21),fn();for(;;){if(Hl!=41)break;xl(41),kl(21),fn()}xl(224),kl(267),Df()}function an(){Vl.startNonterminal(\"QuantifiedVarDecl\",Pl),Sl(31),kl(255),Nl(),hi(),kl(110),Hl==79&&(Nl(),ds()),kl(53),Sl(154),kl(267),Nl(),_f(),Vl.endNonterminal(\"QuantifiedVarDecl\",Pl)}function fn(){xl(31),kl(255),pi(),kl(110),Hl==79&&vs(),kl(53),xl(154),kl(267),Df()}function ln(){Vl.startNonterminal(\"SwitchExpr\",Pl),Sl(243),kl(22),Sl(34),kl(267),Nl(),G(),Sl(37);for(;;){kl(35),Nl(),hn();if(Hl!=88)break}Sl(109),kl(70),Sl(220),kl(267),Nl(),_f(),Vl.endNonterminal(\"SwitchExpr\",Pl)}function cn(){xl(243),kl(22),xl(34),kl(267),Y(),xl(37);for(;;){kl(35),pn();if(Hl!=88)break}xl(109),kl(70),xl(220),kl(267),Df()}function hn(){Vl.startNonterminal(\"SwitchCaseClause\",Pl);for(;;){Sl(88),kl(267),Nl(),dn();if(Hl!=88)break}Sl(220),kl(267),Nl(),_f(),Vl.endNonterminal(\"SwitchCaseClause\",Pl)}function pn(){for(;;){xl(88),kl(267),vn();if(Hl!=88)break}xl(220),kl(267),Df()}function dn(){Vl.startNonterminal(\"SwitchCaseOperand\",Pl),_f(),Vl.endNonterminal(\"SwitchCaseOperand\",Pl)}function vn(){Df()}function mn(){Vl.startNonterminal(\"TypeswitchExpr\",Pl),Sl(253),kl(22),Sl(34),kl(267),Nl(),G(),Sl(37);for(;;){kl(35),Nl(),yn();if(Hl!=88)break}Sl(109),kl(95),Hl==31&&(Sl(31),kl(255),Nl(),hi()),kl(70),Sl(220),kl(267),Nl(),_f(),Vl.endNonterminal(\"TypeswitchExpr\",Pl)}function gn(){xl(253),kl(22),xl(34),kl(267),Y(),xl(37);for(;;){kl(35),bn();if(Hl!=88)break}xl(109),kl(95),Hl==31&&(xl(31),kl(255),pi()),kl(70),xl(220),kl(267),Df()}function yn(){Vl.startNonterminal(\"CaseClause\",Pl),Sl(88),kl(262),Hl==31&&(Sl(31),kl(255),Nl(),hi(),kl(30),Sl(79)),kl(260),Nl(),wn(),Sl(220),kl(267),Nl(),_f(),Vl.endNonterminal(\"CaseClause\",Pl)}function bn(){xl(88),kl(262),Hl==31&&(xl(31),kl(255),pi(),kl(30),xl(79)),kl(260),En(),xl(220),kl(267),Df()}function wn(){Vl.startNonterminal(\"SequenceTypeUnion\",Pl),ms();for(;;){kl(134);if(Hl!=279)break;Sl(279),kl(260),Nl(),ms()}Vl.endNonterminal(\"SequenceTypeUnion\",Pl)}function En(){gs();for(;;){kl(134);if(Hl!=279)break;xl(279),kl(260),gs()}}function Sn(){Vl.startNonterminal(\"IfExpr\",Pl),Sl(152),kl(22),Sl(34),kl(267),Nl(),G(),Sl(37),kl(77),Sl(245),kl(267),Nl(),_f(),Sl(122),kl(267),Nl(),_f(),Vl.endNonterminal(\"IfExpr\",Pl)}function xn(){xl(152),kl(22),xl(34),kl(267),Y(),xl(37),kl(77),xl(245),kl(267),Df(),xl(122),kl(267),Df()}function Tn(){Vl.startNonterminal(\"TryCatchExpr\",Pl),Cn();for(;;){kl(36),Nl(),On(),kl(184);if(Hl!=91)break}Vl.endNonterminal(\"TryCatchExpr\",Pl)}function Nn(){kn();for(;;){kl(36),Mn(),kl(184);if(Hl!=91)break}}function Cn(){Vl.startNonterminal(\"TryClause\",Pl),Sl(250),kl(87),Sl(276),kl(267),Nl(),Ln(),Sl(282),Vl.endNonterminal(\"TryClause\",Pl)}function kn(){xl(250),kl(87),xl(276),kl(267),An(),xl(282)}function Ln(){Vl.startNonterminal(\"TryTargetExpr\",Pl),G(),Vl.endNonterminal(\"TryTargetExpr\",Pl)}function An(){Y()}function On(){Vl.startNonterminal(\"CatchClause\",Pl),Sl(91),kl(257),Nl(),_n(),Sl(276),kl(267),Nl(),G(),Sl(282),Vl.endNonterminal(\"CatchClause\",Pl)}function Mn(){xl(91),kl(257),Dn(),xl(276),kl(267),Y(),xl(282)}function _n(){Vl.startNonterminal(\"CatchErrorList\",Pl),Qr();for(;;){kl(136);if(Hl!=279)break;Sl(279),kl(257),Nl(),Qr()}Vl.endNonterminal(\"CatchErrorList\",Pl)}function Dn(){Gr();for(;;){kl(136);if(Hl!=279)break;xl(279),kl(257),Gr()}}function Pn(){Vl.startNonterminal(\"OrExpr\",Pl),Bn();for(;;){if(Hl!=200)break;Sl(200),kl(267),Nl(),Bn()}Vl.endNonterminal(\"OrExpr\",Pl)}function Hn(){jn();for(;;){if(Hl!=200)break;xl(200),kl(267),jn()}}function Bn(){Vl.startNonterminal(\"AndExpr\",Pl),Fn();for(;;){if(Hl!=75)break;Sl(75),kl(267),Nl(),Fn()}Vl.endNonterminal(\"AndExpr\",Pl)}function jn(){In();for(;;){if(Hl!=75)break;xl(75),kl(267),In()}}function Fn(){Vl.startNonterminal(\"ComparisonExpr\",Pl),qn();if(Hl==27||Hl==54||Hl==57||Hl==58||Hl==60||Hl==61||Hl==62||Hl==63||Hl==128||Hl==146||Hl==150||Hl==164||Hl==172||Hl==178||Hl==186){switch(Hl){case 128:case 146:case 150:case 172:case 178:case 186:Nl(),mr();break;case 57:case 63:case 164:Nl(),yr();break;default:Nl(),dr()}kl(267),Nl(),qn()}Vl.endNonterminal(\"ComparisonExpr\",Pl)}function In(){Rn();if(Hl==27||Hl==54||Hl==57||Hl==58||Hl==60||Hl==61||Hl==62||Hl==63||Hl==128||Hl==146||Hl==150||Hl==164||Hl==172||Hl==178||Hl==186){switch(Hl){case 128:case 146:case 150:case 172:case 178:case 186:gr();break;case 57:case 63:case 164:br();break;default:vr()}kl(267),Rn()}}function qn(){Vl.startNonterminal(\"FTContainsExpr\",Pl),Un(),Hl==99&&(Sl(99),kl(76),Sl(244),kl(162),Nl(),Jo(),Hl==271&&(Nl(),ha())),Vl.endNonterminal(\"FTContainsExpr\",Pl)}function Rn(){zn(),Hl==99&&(xl(99),kl(76),xl(244),kl(162),Ko(),Hl==271&&pa())}function Un(){Vl.startNonterminal(\"StringConcatExpr\",Pl),Wn();for(;;){if(Hl!=280)break;Sl(280),kl(267),Nl(),Wn()}Vl.endNonterminal(\"StringConcatExpr\",Pl)}function zn(){Xn();for(;;){if(Hl!=280)break;xl(280),kl(267),Xn()}}function Wn(){Vl.startNonterminal(\"RangeExpr\",Pl),Vn(),Hl==248&&(Sl(248),kl(267),Nl(),Vn()),Vl.endNonterminal(\"RangeExpr\",Pl)}function Xn(){$n(),Hl==248&&(xl(248),kl(267),$n())}function Vn(){Vl.startNonterminal(\"AdditiveExpr\",Pl),Jn();for(;;){if(Hl!=40&&Hl!=42)break;switch(Hl){case 40:Sl(40);break;default:Sl(42)}kl(267),Nl(),Jn()}Vl.endNonterminal(\"AdditiveExpr\",Pl)}function $n(){Kn();for(;;){if(Hl!=40&&Hl!=42)break;switch(Hl){case 40:xl(40);break;default:xl(42)}kl(267),Kn()}}function Jn(){Vl.startNonterminal(\"MultiplicativeExpr\",Pl),Qn();for(;;){if(Hl!=38&&Hl!=118&&Hl!=151&&Hl!=180)break;switch(Hl){case 38:Sl(38);break;case 118:Sl(118);break;case 151:Sl(151);break;default:Sl(180)}kl(267),Nl(),Qn()}Vl.endNonterminal(\"MultiplicativeExpr\",Pl)}function Kn(){Gn();for(;;){if(Hl!=38&&Hl!=118&&Hl!=151&&Hl!=180)break;switch(Hl){case 38:xl(38);break;case 118:xl(118);break;case 151:xl(151);break;default:xl(180)}kl(267),Gn()}}function Qn(){Vl.startNonterminal(\"UnionExpr\",Pl),Yn();for(;;){if(Hl!=254&&Hl!=279)break;switch(Hl){case 254:Sl(254);break;default:Sl(279)}kl(267),Nl(),Yn()}Vl.endNonterminal(\"UnionExpr\",Pl)}function Gn(){Zn();for(;;){if(Hl!=254&&Hl!=279)break;switch(Hl){case 254:xl(254);break;default:xl(279)}kl(267),Zn()}}function Yn(){Vl.startNonterminal(\"IntersectExceptExpr\",Pl),er();for(;;){kl(223);if(Hl!=131&&Hl!=162)break;switch(Hl){case 162:Sl(162);break;default:Sl(131)}kl(267),Nl(),er()}Vl.endNonterminal(\"IntersectExceptExpr\",Pl)}function Zn(){tr();for(;;){kl(223);if(Hl!=131&&Hl!=162)break;switch(Hl){case 162:xl(162);break;default:xl(131)}kl(267),tr()}}function er(){Vl.startNonterminal(\"InstanceofExpr\",Pl),nr(),kl(224),Hl==160&&(Sl(160),kl(64),Sl(196),kl(260),Nl(),ms()),Vl.endNonterminal(\"InstanceofExpr\",Pl)}function tr(){rr(),kl(224),Hl==160&&(xl(160),kl(64),xl(196),kl(260),gs())}function nr(){Vl.startNonterminal(\"TreatExpr\",Pl),ir(),kl(225),Hl==249&&(Sl(249),kl(30),Sl(79),kl(260),Nl(),ms()),Vl.endNonterminal(\"TreatExpr\",Pl)}function rr(){sr(),kl(225),Hl==249&&(xl(249),kl(30),xl(79),kl(260),gs())}function ir(){Vl.startNonterminal(\"CastableExpr\",Pl),or(),kl(226),Hl==90&&(Sl(90),kl(30),Sl(79),kl(255),Nl(),hs()),Vl.endNonterminal(\"CastableExpr\",Pl)}function sr(){ur(),kl(226),Hl==90&&(xl(90),kl(30),xl(79),kl(255),ps())}function or(){Vl.startNonterminal(\"CastExpr\",Pl),ar(),kl(228),Hl==89&&(Sl(89),kl(30),Sl(79),kl(255),Nl(),hs()),Vl.endNonterminal(\"CastExpr\",Pl)}function ur(){fr(),kl(228),Hl==89&&(xl(89),kl(30),xl(79),kl(255),ps())}function ar(){Vl.startNonterminal(\"UnaryExpr\",Pl);for(;;){kl(267);if(Hl!=40&&Hl!=42)break;switch(Hl){case 42:Sl(42);break;default:Sl(40)}}Nl(),lr(),Vl.endNonterminal(\"UnaryExpr\",Pl)}function fr(){for(;;){kl(267);if(Hl!=40&&Hl!=42)break;switch(Hl){case 42:xl(42);break;default:xl(40)}}cr()}function lr(){Vl.startNonterminal(\"ValueExpr\",Pl);switch(Hl){case 260:Ll(248);break;default:_l=Hl}switch(_l){case 87812:case 123140:case 129284:case 141572:wr();break;case 35:Tr();break;default:hr()}Vl.endNonterminal(\"ValueExpr\",Pl)}function cr(){switch(Hl){case 260:Ll(248);break;default:_l=Hl}switch(_l){case 87812:case 123140:case 129284:case 141572:Er();break;case 35:Nr();break;default:pr()}}function hr(){Vl.startNonterminal(\"SimpleMapExpr\",Pl),Lr();for(;;){if(Hl!=26)break;Sl(26),kl(266),Nl(),Lr()}Vl.endNonterminal(\"SimpleMapExpr\",Pl)}function pr(){Ar();for(;;){if(Hl!=26)break;xl(26),kl(266),Ar()}}function dr(){Vl.startNonterminal(\"GeneralComp\",Pl);switch(Hl){case 60:Sl(60);break;case 27:Sl(27);break;case 54:Sl(54);break;case 58:Sl(58);break;case 61:Sl(61);break;default:Sl(62)}Vl.endNonterminal(\"GeneralComp\",Pl)}function vr(){switch(Hl){case 60:xl(60);break;case 27:xl(27);break;case 54:xl(54);break;case 58:xl(58);break;case 61:xl(61);break;default:xl(62)}}function mr(){Vl.startNonterminal(\"ValueComp\",Pl);switch(Hl){case 128:Sl(128);break;case 186:Sl(186);break;case 178:Sl(178);break;case 172:Sl(172);break;case 150:Sl(150);break;default:Sl(146)}Vl.endNonterminal(\"ValueComp\",Pl)}function gr(){switch(Hl){case 128:xl(128);break;case 186:xl(186);break;case 178:xl(178);break;case 172:xl(172);break;case 150:xl(150);break;default:xl(146)}}function yr(){Vl.startNonterminal(\"NodeComp\",Pl);switch(Hl){case 164:Sl(164);break;case 57:Sl(57);break;default:Sl(63)}Vl.endNonterminal(\"NodeComp\",Pl)}function br(){switch(Hl){case 164:xl(164);break;case 57:xl(57);break;default:xl(63)}}function wr(){Vl.startNonterminal(\"ValidateExpr\",Pl),Sl(260),kl(160);if(Hl!=276)switch(Hl){case 252:Sl(252),kl(255),Nl(),go();break;default:Nl(),Sr()}kl(87),Sl(276),kl(267),Nl(),G(),Sl(282),Vl.endNonterminal(\"ValidateExpr\",Pl)}function Er(){xl(260),kl(160);if(Hl!=276)switch(Hl){case 252:xl(252),kl(255),yo();break;default:xr()}kl(87),xl(276),kl(267),Y(),xl(282)}function Sr(){Vl.startNonterminal(\"ValidationMode\",Pl);switch(Hl){case 171:Sl(171);break;default:Sl(240)}Vl.endNonterminal(\"ValidationMode\",Pl)}function xr(){switch(Hl){case 171:xl(171);break;default:xl(240)}}function Tr(){Vl.startNonterminal(\"ExtensionExpr\",Pl);for(;;){Nl(),Cr(),kl(100);if(Hl!=35)break}Sl(276),kl(274),Hl!=282&&(Nl(),G()),Sl(282),Vl.endNonterminal(\"ExtensionExpr\",Pl)}function Nr(){for(;;){kr(),kl(100);if(Hl!=35)break}xl(276),kl(274),Hl!=282&&Y(),xl(282)}function Cr(){Vl.startNonterminal(\"Pragma\",Pl),Sl(35),Al(252),Hl==21&&Sl(21),Ha(),Al(10),Hl==21&&(Sl(21),Al(0),Sl(1)),Al(5),Sl(30),Vl.endNonterminal(\"Pragma\",Pl)}function kr(){xl(35),Al(252),Hl==21&&xl(21),Ba(),Al(10),Hl==21&&(xl(21),Al(0),xl(1)),Al(5),xl(30)}function Lr(){Vl.startNonterminal(\"PathExpr\",Pl);switch(Hl){case 46:Sl(46),kl(286);switch(Hl){case 25:case 26:case 27:case 37:case 38:case 40:case 41:case 42:case 49:case 53:case 57:case 58:case 60:case 61:case 62:case 63:case 69:case 87:case 99:case 205:case 232:case 247:case 273:case 279:case 280:case 281:case 282:break;default:Nl(),Or()}break;case 47:Sl(47),kl(265),Nl(),Or();break;default:Or()}Vl.endNonterminal(\"PathExpr\",Pl)}function Ar(){switch(Hl){case 46:xl(46),kl(286);switch(Hl){case 25:case 26:case 27:case 37:case 38:case 40:case 41:case 42:case 49:case 53:case 57:case 58:case 60:case 61:case 62:case 63:case 69:case 87:case 99:case 205:case 232:case 247:case 273:case 279:case 280:case 281:case 282:break;default:Mr()}break;case 47:xl(47),kl(265),Mr();break;default:Mr()}}function Or(){Vl.startNonterminal(\"RelativePathExpr\",Pl),_r();for(;;){switch(Hl){case 26:Ll(266);break;default:_l=Hl}if(_l!=25&&_l!=27&&_l!=37&&_l!=38&&_l!=40&&_l!=41&&_l!=42&&_l!=46&&_l!=47&&_l!=49&&_l!=53&&_l!=54&&_l!=57&&_l!=58&&_l!=60&&_l!=61&&_l!=62&&_l!=63&&_l!=69&&_l!=70&&_l!=75&&_l!=79&&_l!=80&&_l!=81&&_l!=84&&_l!=87&&_l!=88&&_l!=89&&_l!=90&&_l!=94&&_l!=99&&_l!=105&&_l!=109&&_l!=113&&_l!=118&&_l!=122&&_l!=123&&_l!=126&&_l!=128&&_l!=131&&_l!=137&&_l!=146&&_l!=148&&_l!=150&&_l!=151&&_l!=160&&_l!=162&&_l!=163&&_l!=164&&_l!=172&&_l!=174&&_l!=178&&_l!=180&&_l!=181&&_l!=186&&_l!=198&&_l!=200&&_l!=201&&_l!=205&&_l!=220&&_l!=224&&_l!=232&&_l!=236&&_l!=237&&_l!=247&&_l!=248&&_l!=249&&_l!=254&&_l!=266&&_l!=270&&_l!=273&&_l!=279&&_l!=280&&_l!=281&&_l!=282&&_l!=23578&&_l!=24090){_l=Kl(3,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{switch(Hl){case 46:xl(46);break;case 47:xl(47);break;default:xl(26)}kl(265),Dr(),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(3,Pl,_l)}}if(_l!=-1&&_l!=46&&_l!=47)break;switch(Hl){case 46:Sl(46);break;case 47:Sl(47);break;default:Sl(26)}kl(265),Nl(),_r()}Vl.endNonterminal(\"RelativePathExpr\",Pl)}function Mr(){Dr();for(;;){switch(Hl){case 26:Ll(266);break;default:_l=Hl}if(_l!=25&&_l!=27&&_l!=37&&_l!=38&&_l!=40&&_l!=41&&_l!=42&&_l!=46&&_l!=47&&_l!=49&&_l!=53&&_l!=54&&_l!=57&&_l!=58&&_l!=60&&_l!=61&&_l!=62&&_l!=63&&_l!=69&&_l!=70&&_l!=75&&_l!=79&&_l!=80&&_l!=81&&_l!=84&&_l!=87&&_l!=88&&_l!=89&&_l!=90&&_l!=94&&_l!=99&&_l!=105&&_l!=109&&_l!=113&&_l!=118&&_l!=122&&_l!=123&&_l!=126&&_l!=128&&_l!=131&&_l!=137&&_l!=146&&_l!=148&&_l!=150&&_l!=151&&_l!=160&&_l!=162&&_l!=163&&_l!=164&&_l!=172&&_l!=174&&_l!=178&&_l!=180&&_l!=181&&_l!=186&&_l!=198&&_l!=200&&_l!=201&&_l!=205&&_l!=220&&_l!=224&&_l!=232&&_l!=236&&_l!=237&&_l!=247&&_l!=248&&_l!=249&&_l!=254&&_l!=266&&_l!=270&&_l!=273&&_l!=279&&_l!=280&&_l!=281&&_l!=282&&_l!=23578&&_l!=24090){_l=Kl(3,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{switch(Hl){case 46:xl(46);break;case 47:xl(47);break;default:xl(26)}kl(265),Dr(),Jl(3,t,-1);continue}catch(a){Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(3,t,-2);break}}}if(_l!=-1&&_l!=46&&_l!=47)break;switch(Hl){case 46:xl(46);break;case 47:xl(47);break;default:xl(26)}kl(265),Dr()}}function _r(){Vl.startNonterminal(\"StepExpr\",Pl);switch(Hl){case 82:Ll(285);break;case 121:Ll(283);break;case 184:case 216:Ll(282);break;case 96:case 119:case 202:case 244:case 256:Ll(247);break;case 78:case 124:case 152:case 165:case 167:case 242:case 243:case 253:Ll(240);break;case 73:case 74:case 93:case 111:case 112:case 135:case 136:case 206:case 212:case 213:case 229:Ll(246);break;case 6:case 70:case 72:case 75:case 77:case 79:case 80:case 81:case 83:case 84:case 85:case 86:case 88:case 89:case 90:case 91:case 94:case 97:case 98:case 101:case 102:case 103:case 104:case 105:case 106:case 108:case 109:case 110:case 113:case 118:case 120:case 122:case 123:case 125:case 126:case 128:case 129:case 131:case 132:case 133:case 134:case 137:case 141:case 145:case 146:case 148:case 150:case 151:case 153:case 154:case 155:case 159:case 160:case 161:case 162:case 163:case 164:case 166:case 170:case 171:case 172:case 174:case 176:case 178:case 180:case 181:case 182:case 185:case 186:case 191:case 192:case 194:case 198:case 199:case 200:case 201:case 203:case 218:case 219:case 220:case 221:case 222:case 224:case 225:case 226:case 227:case 228:case 234:case 235:case 236:case 237:case 240:case 248:case 249:case 250:case 251:case 252:case 254:case 257:case 260:case 261:case 262:case 263:case 266:case 267:case 270:case 274:Ll(244);break;default:_l=Hl}if(_l==35922||_l==35961||_l==36024||_l==36056||_l==38482||_l==38521||_l==38584||_l==38616||_l==40530||_l==40569||_l==40632||_l==40664||_l==41042||_l==41081||_l==41144||_l==41176||_l==41554||_l==41593||_l==41656||_l==41688||_l==43090||_l==43129||_l==43192||_l==43224||_l==45138||_l==45177||_l==45240||_l==45272||_l==45650||_l==45689||_l==45752||_l==45784||_l==46162||_l==46201||_l==46264||_l==46296||_l==48210||_l==48249||_l==48312||_l==48344||_l==53842||_l==53881||_l==53944||_l==53976||_l==55890||_l==55929||_l==55992||_l==56024||_l==57938||_l==57977||_l==58040||_l==58072||_l==60498||_l==60537||_l==60600||_l==60632||_l==62546||_l==62585||_l==62648||_l==62680||_l==63058||_l==63097||_l==63160||_l==63192||_l==64594||_l==64633||_l==64696||_l==64728||_l==65618||_l==65657||_l==65720||_l==65752||_l==67154||_l==67193||_l==67256||_l==67288||_l==70226||_l==70265||_l==70328||_l==70360||_l==74834||_l==74873||_l==74936||_l==74968||_l==75858||_l==75897||_l==75960||_l==75992||_l==76882||_l==76921||_l==76984||_l==77016||_l==77394||_l==77433||_l==77496||_l==77528||_l==82002||_l==82041||_l==82104||_l==82136||_l==83026||_l==83065||_l==83128||_l==83160||_l==83538||_l==83577||_l==83640||_l==83672||_l==84050||_l==84089||_l==84152||_l==84184||_l==88146||_l==88185||_l==88248||_l==88280||_l==89170||_l==89209||_l==89272||_l==89304||_l==91218||_l==91257||_l==91320||_l==91352||_l==92242||_l==92281||_l==92344||_l==92376||_l==92754||_l==92793||_l==92856||_l==92888||_l==95314||_l==95353||_l==95416||_l==95448||_l==101458||_l==101497||_l==101560||_l==101592||_l==102482||_l==102521||_l==102584||_l==102616||_l==102994||_l==103033||_l==103096||_l==103128||_l==112722||_l==112761||_l==112824||_l==112856||_l==114770||_l==114809||_l==114872||_l==114904||_l==120914||_l==120953||_l==121016||_l==121048||_l==121426||_l==121465||_l==121528||_l==121560||_l==127058||_l==127097||_l==127160||_l==127192||_l==127570||_l==127609||_l==127672||_l==127704||_l==130130||_l==130169||_l==130232||_l==130264||_l==136274||_l==136313||_l==136376||_l==136408||_l==138322||_l==138361||_l==138424||_l==138456){_l=Kl(4,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Zr(),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(4,Pl,_l)}}switch(_l){case-1:case 8:case 9:case 10:case 11:case 31:case 32:case 34:case 44:case 54:case 55:case 59:case 68:case 276:case 278:case 3154:case 3193:case 9912:case 9944:case 14854:case 14918:case 14920:case 14921:case 14922:case 14923:case 14925:case 14926:case 14927:case 14928:case 14929:case 14930:case 14931:case 14932:case 14933:case 14934:case 14936:case 14937:case 14938:case 14939:case 14941:case 14942:case 14944:case 14945:case 14946:case 14949:case 14950:case 14951:case 14952:case 14953:case 14954:case 14956:case 14957:case 14958:case 14959:case 14960:case 14961:case 14966:case 14967:case 14968:case 14969:case 14970:case 14971:case 14972:case 14973:case 14974:case 14976:case 14977:case 14979:case 14980:case 14981:case 14982:case 14983:case 14984:case 14985:case 14989:case 14993:case 14994:case 14996:case 14998:case 14999:case 15e3:case 15001:case 15002:case 15003:case 15007:case 15008:case 15009:case 15010:case 15011:case 15012:case 15013:case 15014:case 15015:case 15018:case 15019:case 15020:case 15022:case 15024:case 15026:case 15028:case 15029:case 15030:case 15032:case 15033:case 15034:case 15039:case 15040:case 15042:case 15046:case 15047:case 15048:case 15049:case 15050:case 15051:case 15054:case 15060:case 15061:case 15064:case 15066:case 15067:case 15068:case 15069:case 15070:case 15072:case 15073:case 15074:case 15075:case 15076:case 15077:case 15082:case 15083:case 15084:case 15085:case 15088:case 15090:case 15091:case 15092:case 15096:case 15097:case 15098:case 15099:case 15100:case 15101:case 15102:case 15104:case 15105:case 15108:case 15109:case 15110:case 15111:case 15114:case 15115:case 15118:case 15122:case 17414:case 17478:case 17480:case 17481:case 17482:case 17483:case 17485:case 17487:case 17488:case 17489:case 17491:case 17492:case 17493:case 17494:case 17496:case 17497:case 17498:case 17499:case 17501:case 17502:case 17505:case 17506:case 17509:case 17510:case 17511:case 17512:case 17513:case 17514:case 17516:case 17517:case 17518:case 17519:case 17520:case 17521:case 17526:case 17527:case 17530:case 17531:case 17533:case 17534:case 17536:case 17537:case 17539:case 17540:case 17541:case 17542:case 17543:case 17544:case 17545:case 17549:case 17553:case 17554:case 17556:case 17558:case 17559:case 17561:case 17562:case 17563:case 17567:case 17568:case 17569:case 17570:case 17571:case 17572:case 17574:case 17578:case 17579:case 17580:case 17582:case 17584:case 17586:case 17588:case 17589:case 17590:case 17592:case 17594:case 17600:case 17602:case 17606:case 17607:case 17608:case 17609:case 17610:case 17611:case 17614:case 17620:case 17621:case 17626:case 17627:case 17628:case 17629:case 17630:case 17632:case 17633:case 17636:case 17637:case 17642:case 17643:case 17644:case 17645:case 17648:case 17656:case 17657:case 17658:case 17659:case 17660:case 17662:case 17664:case 17665:case 17668:case 17669:case 17670:case 17671:case 17674:case 17675:case 17678:case 17682:case 36946:case 36985:case 37048:case 37080:case 37458:case 37497:case 37560:case 37592:case 37970:case 38009:case 38072:case 38104:case 39506:case 39545:case 39608:case 39640:case 40018:case 40057:case 42066:case 42105:case 42168:case 42200:case 42578:case 42617:case 42680:case 42712:case 43602:case 43641:case 43704:case 43736:case 44114:case 44153:case 44216:case 44248:case 46674:case 46713:case 46776:case 46808:case 47698:case 47737:case 47800:case 47832:case 49234:case 49273:case 49336:case 49368:case 49746:case 49785:case 49848:case 49880:case 50258:case 50297:case 50360:case 50392:case 51794:case 51833:case 51896:case 51928:case 52306:case 52345:case 52408:case 52440:case 52818:case 52857:case 52920:case 52952:case 53330:case 53369:case 53432:case 53464:case 54354:case 54393:case 54456:case 54488:case 55378:case 55417:case 55480:case 55512:case 56402:case 56441:case 56504:case 56536:case 56914:case 56953:case 57016:case 57048:case 57426:case 57465:case 57528:case 57560:case 61010:case 61049:case 61112:case 61144:case 61522:case 61561:case 61624:case 61656:case 62034:case 62073:case 62136:case 62168:case 63570:case 63609:case 63672:case 63704:case 64082:case 64121:case 64184:case 64216:case 66130:case 66169:case 66232:case 66264:case 67666:case 67705:case 67768:case 67800:case 68178:case 68217:case 68280:case 68312:case 68690:case 68729:case 68792:case 68824:case 69202:case 69241:case 69304:case 69336:case 69714:case 69753:case 69816:case 69848:case 72274:case 72313:case 72376:case 72408:case 74322:case 74361:case 74424:case 74456:case 77906:case 77945:case 78008:case 78040:case 78418:case 78457:case 78520:case 78552:case 78930:case 78969:case 79032:case 79064:case 79442:case 79481:case 79544:case 79576:case 81490:case 81529:case 81592:case 81624:case 82514:case 82553:case 82616:case 82648:case 84562:case 84601:case 84664:case 84696:case 85074:case 85113:case 85176:case 85208:case 85586:case 85625:case 87122:case 87161:case 87224:case 87256:case 87634:case 87673:case 87736:case 87768:case 90194:case 90233:case 90296:case 90328:case 93266:case 93305:case 93368:case 93400:case 94290:case 94329:case 94392:case 94424:case 94802:case 94841:case 94904:case 94936:case 97874:case 97913:case 97976:case 98008:case 98386:case 98425:case 98488:case 98520:case 99410:case 99449:case 99512:case 99544:case 101970:case 102009:case 102072:case 102104:case 103506:case 103545:case 103608:case 103640:case 104018:case 104057:case 104120:case 104152:case 105554:case 105593:case 105656:case 105688:case 108626:case 108665:case 108728:case 108760:case 109138:case 109177:case 109240:case 109272:case 110674:case 110713:case 110776:case 110808:case 111698:case 111737:case 111800:case 111832:case 112210:case 112249:case 112312:case 112344:case 113234:case 113273:case 113336:case 113368:case 113746:case 113785:case 113848:case 113880:case 115282:case 115321:case 115384:case 115416:case 115794:case 115833:case 115896:case 115928:case 116306:case 116345:case 116408:case 116440:case 116818:case 116857:case 116920:case 116952:case 117330:case 117369:case 117432:case 117464:case 119890:case 119929:case 119992:case 120024:case 120402:case 120441:case 120504:case 120536:case 122962:case 123001:case 123064:case 123096:case 123986:case 124025:case 124498:case 124537:case 124600:case 124632:case 125010:case 125049:case 125112:case 125144:case 128082:case 128121:case 128184:case 128216:case 128594:case 128633:case 128696:case 128728:case 129106:case 129145:case 129208:case 129240:case 129618:case 129657:case 129720:case 129752:case 131154:case 131193:case 131256:case 131288:case 131666:case 131705:case 131768:case 131800:case 133202:case 133241:case 133304:case 133336:case 133714:case 133753:case 133816:case 133848:case 134226:case 134265:case 134328:case 134360:case 134738:case 134777:case 134840:case 134872:case 136786:case 136825:case 136888:case 136920:case 140370:case 140409:case 140472:case 140504:case 141394:case 141408:case 141431:case 141433:case 141496:case 141514:case 141528:case 141556:case 141568:Yr();break;default:Pr()}Vl.endNonterminal(\"StepExpr\",Pl)}function Dr(){switch(Hl){case 82:Ll(285);break;case 121:Ll(283);break;case 184:case 216:Ll(282);break;case 96:case 119:case 202:case 244:case 256:Ll(247);break;case 78:case 124:case 152:case 165:case 167:case 242:case 243:case 253:Ll(240);break;case 73:case 74:case 93:case 111:case 112:case 135:case 136:case 206:case 212:case 213:case 229:Ll(246);break;case 6:case 70:case 72:case 75:case 77:case 79:case 80:case 81:case 83:case 84:case 85:case 86:case 88:case 89:case 90:case 91:case 94:case 97:case 98:case 101:case 102:case 103:case 104:case 105:case 106:case 108:case 109:case 110:case 113:case 118:case 120:case 122:case 123:case 125:case 126:case 128:case 129:case 131:case 132:case 133:case 134:case 137:case 141:case 145:case 146:case 148:case 150:case 151:case 153:case 154:case 155:case 159:case 160:case 161:case 162:case 163:case 164:case 166:case 170:case 171:case 172:case 174:case 176:case 178:case 180:case 181:case 182:case 185:case 186:case 191:case 192:case 194:case 198:case 199:case 200:case 201:case 203:case 218:case 219:case 220:case 221:case 222:case 224:case 225:case 226:case 227:case 228:case 234:case 235:case 236:case 237:case 240:case 248:case 249:case 250:case 251:case 252:case 254:case 257:case 260:case 261:case 262:case 263:case 266:case 267:case 270:case 274:Ll(244);break;default:_l=Hl}if(_l==35922||_l==35961||_l==36024||_l==36056||_l==38482||_l==38521||_l==38584||_l==38616||_l==40530||_l==40569||_l==40632||_l==40664||_l==41042||_l==41081||_l==41144||_l==41176||_l==41554||_l==41593||_l==41656||_l==41688||_l==43090||_l==43129||_l==43192||_l==43224||_l==45138||_l==45177||_l==45240||_l==45272||_l==45650||_l==45689||_l==45752||_l==45784||_l==46162||_l==46201||_l==46264||_l==46296||_l==48210||_l==48249||_l==48312||_l==48344||_l==53842||_l==53881||_l==53944||_l==53976||_l==55890||_l==55929||_l==55992||_l==56024||_l==57938||_l==57977||_l==58040||_l==58072||_l==60498||_l==60537||_l==60600||_l==60632||_l==62546||_l==62585||_l==62648||_l==62680||_l==63058||_l==63097||_l==63160||_l==63192||_l==64594||_l==64633||_l==64696||_l==64728||_l==65618||_l==65657||_l==65720||_l==65752||_l==67154||_l==67193||_l==67256||_l==67288||_l==70226||_l==70265||_l==70328||_l==70360||_l==74834||_l==74873||_l==74936||_l==74968||_l==75858||_l==75897||_l==75960||_l==75992||_l==76882||_l==76921||_l==76984||_l==77016||_l==77394||_l==77433||_l==77496||_l==77528||_l==82002||_l==82041||_l==82104||_l==82136||_l==83026||_l==83065||_l==83128||_l==83160||_l==83538||_l==83577||_l==83640||_l==83672||_l==84050||_l==84089||_l==84152||_l==84184||_l==88146||_l==88185||_l==88248||_l==88280||_l==89170||_l==89209||_l==89272||_l==89304||_l==91218||_l==91257||_l==91320||_l==91352||_l==92242||_l==92281||_l==92344||_l==92376||_l==92754||_l==92793||_l==92856||_l==92888||_l==95314||_l==95353||_l==95416||_l==95448||_l==101458||_l==101497||_l==101560||_l==101592||_l==102482||_l==102521||_l==102584||_l==102616||_l==102994||_l==103033||_l==103096||_l==103128||_l==112722||_l==112761||_l==112824||_l==112856||_l==114770||_l==114809||_l==114872||_l==114904||_l==120914||_l==120953||_l==121016||_l==121048||_l==121426||_l==121465||_l==121528||_l==121560||_l==127058||_l==127097||_l==127160||_l==127192||_l==127570||_l==127609||_l==127672||_l==127704||_l==130130||_l==130169||_l==130232||_l==130264||_l==136274||_l==136313||_l==136376||_l==136408||_l==138322||_l==138361||_l==138424||_l==138456){_l=Kl(4,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Zr(),Jl(4,t,-1),_l=-3}catch(a){_l=-2,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(4,t,-2)}}}switch(_l){case-1:case 8:case 9:case 10:case 11:case 31:case 32:case 34:case 44:case 54:case 55:case 59:case 68:case 276:case 278:case 3154:case 3193:case 9912:case 9944:case 14854:case 14918:case 14920:case 14921:case 14922:case 14923:case 14925:case 14926:case 14927:case 14928:case 14929:case 14930:case 14931:case 14932:case 14933:case 14934:case 14936:case 14937:case 14938:case 14939:case 14941:case 14942:case 14944:case 14945:case 14946:case 14949:case 14950:case 14951:case 14952:case 14953:case 14954:case 14956:case 14957:case 14958:case 14959:case 14960:case 14961:case 14966:case 14967:case 14968:case 14969:case 14970:case 14971:case 14972:case 14973:case 14974:case 14976:case 14977:case 14979:case 14980:case 14981:case 14982:case 14983:case 14984:case 14985:case 14989:case 14993:case 14994:case 14996:case 14998:case 14999:case 15e3:case 15001:case 15002:case 15003:case 15007:case 15008:case 15009:case 15010:case 15011:case 15012:case 15013:case 15014:case 15015:case 15018:case 15019:case 15020:case 15022:case 15024:case 15026:case 15028:case 15029:case 15030:case 15032:case 15033:case 15034:case 15039:case 15040:case 15042:case 15046:case 15047:case 15048:case 15049:case 15050:case 15051:case 15054:case 15060:case 15061:case 15064:case 15066:case 15067:case 15068:case 15069:case 15070:case 15072:case 15073:case 15074:case 15075:case 15076:case 15077:case 15082:case 15083:case 15084:case 15085:case 15088:case 15090:case 15091:case 15092:case 15096:case 15097:case 15098:case 15099:case 15100:case 15101:case 15102:case 15104:case 15105:case 15108:case 15109:case 15110:case 15111:case 15114:case 15115:case 15118:case 15122:case 17414:case 17478:case 17480:case 17481:case 17482:case 17483:case 17485:case 17487:case 17488:case 17489:case 17491:case 17492:case 17493:case 17494:case 17496:case 17497:case 17498:case 17499:case 17501:case 17502:case 17505:case 17506:case 17509:case 17510:case 17511:case 17512:case 17513:case 17514:case 17516:case 17517:case 17518:case 17519:case 17520:case 17521:case 17526:case 17527:case 17530:case 17531:case 17533:case 17534:case 17536:case 17537:case 17539:case 17540:case 17541:case 17542:case 17543:case 17544:case 17545:case 17549:case 17553:case 17554:case 17556:case 17558:case 17559:case 17561:case 17562:case 17563:case 17567:case 17568:case 17569:case 17570:case 17571:case 17572:case 17574:case 17578:case 17579:case 17580:case 17582:case 17584:case 17586:case 17588:case 17589:case 17590:case 17592:case 17594:case 17600:case 17602:case 17606:case 17607:case 17608:case 17609:case 17610:case 17611:case 17614:case 17620:case 17621:case 17626:case 17627:case 17628:case 17629:case 17630:case 17632:case 17633:case 17636:case 17637:case 17642:case 17643:case 17644:case 17645:case 17648:case 17656:case 17657:case 17658:case 17659:case 17660:case 17662:case 17664:case 17665:case 17668:case 17669:case 17670:case 17671:case 17674:case 17675:case 17678:case 17682:case 36946:case 36985:case 37048:case 37080:case 37458:case 37497:case 37560:case 37592:case 37970:case 38009:case 38072:case 38104:case 39506:case 39545:case 39608:case 39640:case 40018:case 40057:case 42066:case 42105:case 42168:case 42200:case 42578:case 42617:case 42680:case 42712:case 43602:case 43641:case 43704:case 43736:case 44114:case 44153:case 44216:case 44248:case 46674:case 46713:case 46776:case 46808:case 47698:case 47737:case 47800:case 47832:case 49234:case 49273:case 49336:case 49368:case 49746:case 49785:case 49848:case 49880:case 50258:case 50297:case 50360:case 50392:case 51794:case 51833:case 51896:case 51928:case 52306:case 52345:case 52408:case 52440:case 52818:case 52857:case 52920:case 52952:case 53330:case 53369:case 53432:case 53464:case 54354:case 54393:case 54456:case 54488:case 55378:case 55417:case 55480:case 55512:case 56402:case 56441:case 56504:case 56536:case 56914:case 56953:case 57016:case 57048:case 57426:case 57465:case 57528:case 57560:case 61010:case 61049:case 61112:case 61144:case 61522:case 61561:case 61624:case 61656:case 62034:case 62073:case 62136:case 62168:case 63570:case 63609:case 63672:case 63704:case 64082:case 64121:case 64184:case 64216:case 66130:case 66169:case 66232:case 66264:case 67666:case 67705:case 67768:case 67800:case 68178:case 68217:case 68280:case 68312:case 68690:case 68729:case 68792:case 68824:case 69202:case 69241:case 69304:case 69336:case 69714:case 69753:case 69816:case 69848:case 72274:case 72313:case 72376:case 72408:case 74322:case 74361:case 74424:case 74456:case 77906:case 77945:case 78008:case 78040:case 78418:case 78457:case 78520:case 78552:case 78930:case 78969:case 79032:case 79064:case 79442:case 79481:case 79544:case 79576:case 81490:case 81529:case 81592:case 81624:case 82514:case 82553:case 82616:case 82648:case 84562:case 84601:case 84664:case 84696:case 85074:case 85113:case 85176:case 85208:case 85586:case 85625:case 87122:case 87161:case 87224:case 87256:case 87634:case 87673:case 87736:case 87768:case 90194:case 90233:case 90296:case 90328:case 93266:case 93305:case 93368:case 93400:case 94290:case 94329:case 94392:case 94424:case 94802:case 94841:case 94904:case 94936:case 97874:case 97913:case 97976:case 98008:case 98386:case 98425:case 98488:case 98520:case 99410:case 99449:case 99512:case 99544:case 101970:case 102009:case 102072:case 102104:case 103506:case 103545:case 103608:case 103640:case 104018:case 104057:case 104120:case 104152:case 105554:case 105593:case 105656:case 105688:case 108626:case 108665:case 108728:case 108760:case 109138:case 109177:case 109240:case 109272:case 110674:case 110713:case 110776:case 110808:case 111698:case 111737:case 111800:case 111832:case 112210:case 112249:case 112312:case 112344:case 113234:case 113273:case 113336:case 113368:case 113746:case 113785:case 113848:case 113880:case 115282:case 115321:case 115384:case 115416:case 115794:case 115833:case 115896:case 115928:case 116306:case 116345:case 116408:case 116440:case 116818:case 116857:case 116920:case 116952:case 117330:case 117369:case 117432:case 117464:case 119890:case 119929:case 119992:case 120024:case 120402:case 120441:case 120504:case 120536:case 122962:case 123001:case 123064:case 123096:case 123986:case 124025:case 124498:case 124537:case 124600:case 124632:case 125010:case 125049:case 125112:case 125144:case 128082:case 128121:case 128184:case 128216:case 128594:case 128633:case 128696:case 128728:case 129106:case 129145:case 129208:case 129240:case 129618:case 129657:case 129720:case 129752:case 131154:case 131193:case 131256:case 131288:case 131666:case 131705:case 131768:case 131800:case 133202:case 133241:case 133304:case 133336:case 133714:case 133753:case 133816:case 133848:case 134226:case 134265:case 134328:case 134360:case 134738:case 134777:case 134840:case 134872:case 136786:case 136825:case 136888:case 136920:case 140370:case 140409:case 140472:case 140504:case 141394:case 141408:case 141431:case 141433:case 141496:case 141514:case 141528:case 141556:case 141568:Zr();break;case-3:break;default:Hr()}}function Pr(){Vl.startNonterminal(\"AxisStep\",Pl);switch(Hl){case 73:case 74:case 206:case 212:case 213:Ll(242);break;default:_l=Hl}switch(_l){case 45:case 26185:case 26186:case 26318:case 26324:case 26325:Ur();break;default:Br()}kl(238),Nl(),ni(),Vl.endNonterminal(\"AxisStep\",Pl)}function Hr(){switch(Hl){case 73:case 74:case 206:case 212:case 213:Ll(242);break;default:_l=Hl}switch(_l){case 45:case 26185:case 26186:case 26318:case 26324:case 26325:zr();break;default:jr()}kl(238),ri()}function Br(){Vl.startNonterminal(\"ForwardStep\",Pl);switch(Hl){case 82:Ll(245);break;case 93:case 111:case 112:case 135:case 136:case 229:Ll(242);break;default:_l=Hl}switch(_l){case 26194:case 26205:case 26223:case 26224:case 26247:case 26248:case 26341:Fr(),kl(257),Nl(),Jr();break;default:qr()}Vl.endNonterminal(\"ForwardStep\",Pl)}function jr(){switch(Hl){case 82:Ll(245);break;case 93:case 111:case 112:case 135:case 136:case 229:Ll(242);break;default:_l=Hl}switch(_l){case 26194:case 26205:case 26223:case 26224:case 26247:case 26248:case 26341:Ir(),kl(257),Kr();break;default:Rr()}}function Fr(){Vl.startNonterminal(\"ForwardAxis\",Pl);switch(Hl){case 93:Sl(93),kl(26),Sl(51);break;case 111:Sl(111),kl(26),Sl(51);break;case 82:Sl(82),kl(26),Sl(51);break;case 229:Sl(229),kl(26),Sl(51);break;case 112:Sl(112),kl(26),Sl(51);break;case 136:Sl(136),kl(26),Sl(51);break;default:Sl(135),kl(26),Sl(51)}Vl.endNonterminal(\"ForwardAxis\",Pl)}function Ir(){switch(Hl){case 93:xl(93),kl(26),xl(51);break;case 111:xl(111),kl(26),xl(51);break;case 82:xl(82),kl(26),xl(51);break;case 229:xl(229),kl(26),xl(51);break;case 112:xl(112),kl(26),xl(51);break;case 136:xl(136),kl(26),xl(51);break;default:xl(135),kl(26),xl(51)}}function qr(){Vl.startNonterminal(\"AbbrevForwardStep\",Pl),Hl==66&&Sl(66),kl(257),Nl(),Jr(),Vl.endNonterminal(\"AbbrevForwardStep\",Pl)}function Rr(){Hl==66&&xl(66),kl(257),Kr()}function Ur(){Vl.startNonterminal(\"ReverseStep\",Pl);switch(Hl){case 45:Vr();break;default:Wr(),kl(257),Nl(),Jr()}Vl.endNonterminal(\"ReverseStep\",Pl)}function zr(){switch(Hl){case 45:$r();break;default:Xr(),kl(257),Kr()}}function Wr(){Vl.startNonterminal(\"ReverseAxis\",Pl);switch(Hl){case 206:Sl(206),kl(26),Sl(51);break;case 73:Sl(73),kl(26),Sl(51);break;case 213:Sl(213),kl(26),Sl(51);break;case 212:Sl(212),kl(26),Sl(51);break;default:Sl(74),kl(26),Sl(51)}Vl.endNonterminal(\"ReverseAxis\",Pl)}function Xr(){switch(Hl){case 206:xl(206),kl(26),xl(51);break;case 73:xl(73),kl(26),xl(51);break;case 213:xl(213),kl(26),xl(51);break;case 212:xl(212),kl(26),xl(51);break;default:xl(74),kl(26),xl(51)}}function Vr(){Vl.startNonterminal(\"AbbrevReverseStep\",Pl),Sl(45),Vl.endNonterminal(\"AbbrevReverseStep\",Pl)}function $r(){xl(45)}function Jr(){Vl.startNonterminal(\"NodeTest\",Pl);switch(Hl){case 82:case 96:case 120:case 121:case 185:case 191:case 216:case 226:case 227:case 244:Ll(241);break;default:_l=Hl}switch(_l){case 17490:case 17504:case 17528:case 17529:case 17593:case 17599:case 17624:case 17634:case 17635:case 17652:Ps();break;default:Qr()}Vl.endNonterminal(\"NodeTest\",Pl)}function Kr(){switch(Hl){case 82:case 96:case 120:case 121:case 185:case 191:case 216:case 226:case 227:case 244:Ll(241);break;default:_l=Hl}switch(_l){case 17490:case 17504:case 17528:case 17529:case 17593:case 17599:case 17624:case 17634:case 17635:case 17652:Hs();break;default:Gr()}}function Qr(){Vl.startNonterminal(\"NameTest\",Pl);switch(Hl){case 5:Sl(5);break;default:Ha()}Vl.endNonterminal(\"NameTest\",Pl)}function Gr(){switch(Hl){case 5:xl(5);break;default:Ba()}}function Yr(){Vl.startNonterminal(\"PostfixExpr\",Pl),ol();for(;;){kl(241);if(Hl!=34&&Hl!=68)break;switch(Hl){case 68:Nl(),ii();break;default:Nl(),ei()}}Vl.endNonterminal(\"PostfixExpr\",Pl)}function Zr(){ul();for(;;){kl(241);if(Hl!=34&&Hl!=68)break;switch(Hl){case 68:si();break;default:ti()}}}function ei(){Vl.startNonterminal(\"ArgumentList\",Pl),Sl(34),kl(276);if(Hl!=37){Nl(),Ti();for(;;){kl(101);if(Hl!=41)break;Sl(41),kl(271),Nl(),Ti()}}Sl(37),Vl.endNonterminal(\"ArgumentList\",Pl)}function ti(){xl(34),kl(276);if(Hl!=37){Ni();for(;;){kl(101);if(Hl!=41)break;xl(41),kl(271),Ni()}}xl(37)}function ni(){Vl.startNonterminal(\"PredicateList\",Pl);for(;;){kl(238);if(Hl!=68)break;Nl(),ii()}Vl.endNonterminal(\"PredicateList\",Pl)}function ri(){for(;;){kl(238);if(Hl!=68)break;si()}}function ii(){Vl.startNonterminal(\"Predicate\",Pl),Sl(68),kl(267),Nl(),G(),Sl(69),Vl.endNonterminal(\"Predicate\",Pl)}function si(){xl(68),kl(267),Y(),xl(69)}function oi(){Vl.startNonterminal(\"Literal\",Pl);switch(Hl){case 11:Sl(11);break;default:ai()}Vl.endNonterminal(\"Literal\",Pl)}function ui(){switch(Hl){case 11:xl(11);break;default:fi()}}function ai(){Vl.startNonterminal(\"NumericLiteral\",Pl);switch(Hl){case 8:Sl(8);break;case 9:Sl(9);break;default:Sl(10)}Vl.endNonterminal(\"NumericLiteral\",Pl)}function fi(){switch(Hl){case 8:xl(8);break;case 9:xl(9);break;default:xl(10)}}function li(){Vl.startNonterminal(\"VarRef\",Pl),Sl(31),kl(255),Nl(),hi(),Vl.endNonterminal(\"VarRef\",Pl)}function ci(){xl(31),kl(255),pi()}function hi(){Vl.startNonterminal(\"VarName\",Pl),Ha(),Vl.endNonterminal(\"VarName\",Pl)}function pi(){Ba()}function di(){Vl.startNonterminal(\"ParenthesizedExpr\",Pl),Sl(34),kl(269),Hl!=37&&(Nl(),G()),Sl(37),Vl.endNonterminal(\"ParenthesizedExpr\",Pl)}function vi(){xl(34),kl(269),Hl!=37&&Y(),xl(37)}function mi(){Vl.startNonterminal(\"ContextItemExpr\",Pl),Sl(44),Vl.endNonterminal(\"ContextItemExpr\",Pl)}function gi(){xl(44)}function yi(){Vl.startNonterminal(\"OrderedExpr\",Pl),Sl(202),kl(87),Sl(276),kl(267),Nl(),G(),Sl(282),Vl.endNonterminal(\"OrderedExpr\",Pl)}function bi(){xl(202),kl(87),xl(276),kl(267),Y(),xl(282)}function wi(){Vl.startNonterminal(\"UnorderedExpr\",Pl),Sl(256),kl(87),Sl(276),kl(267),Nl(),G(),Sl(282),Vl.endNonterminal(\"UnorderedExpr\",Pl)}function Ei(){xl(256),kl(87),xl(276),kl(267),Y(),xl(282)}function Si(){Vl.startNonterminal(\"FunctionCall\",Pl),ja(),kl(22),Nl(),ei(),Vl.endNonterminal(\"FunctionCall\",Pl)}function xi(){Fa(),kl(22),ti()}function Ti(){Vl.startNonterminal(\"Argument\",Pl);switch(Hl){case 64:Ci();break;default:_f()}Vl.endNonterminal(\"Argument\",Pl)}function Ni(){switch(Hl){case 64:ki();break;default:Df()}}function Ci(){Vl.startNonterminal(\"ArgumentPlaceholder\",Pl),Sl(64),Vl.endNonterminal(\"ArgumentPlaceholder\",Pl)}function ki(){xl(64)}function Li(){Vl.startNonterminal(\"Constructor\",Pl);switch(Hl){case 54:case 55:case 59:Oi();break;default:Ji()}Vl.endNonterminal(\"Constructor\",Pl)}function Ai(){switch(Hl){case 54:case 55:case 59:Mi();break;default:Ki()}}function Oi(){Vl.startNonterminal(\"DirectConstructor\",Pl);switch(Hl){case 54:_i();break;case 55:Wi();break;default:Vi()}Vl.endNonterminal(\"DirectConstructor\",Pl)}function Mi(){switch(Hl){case 54:Di();break;case 55:Xi();break;default:$i()}}function _i(){Vl.startNonterminal(\"DirElemConstructor\",Pl),Sl(54),Al(4),Sl(20),Pi();switch(Hl){case 48:Sl(48);break;default:Sl(61);for(;;){Al(174);if(Hl==56)break;Ui()}Sl(56),Al(4),Sl(20),Al(12),Hl==21&&Sl(21),Al(8),Sl(61)}Vl.endNonterminal(\"DirElemConstructor\",Pl)}function Di(){xl(54),Al(4),xl(20),Hi();switch(Hl){case 48:xl(48);break;default:xl(61);for(;;){Al(174);if(Hl==56)break;zi()}xl(56),Al(4),xl(20),Al(12),Hl==21&&xl(21),Al(8),xl(61)}}function Pi(){Vl.startNonterminal(\"DirAttributeList\",Pl);for(;;){Al(19);if(Hl!=21)break;Sl(21),Al(91),Hl==20&&(Sl(20),Al(11),Hl==21&&Sl(21),Al(7),Sl(60),Al(18),Hl==21&&Sl(21),Bi())}Vl.endNonterminal(\"DirAttributeList\",Pl)}function Hi(){for(;;){Al(19);if(Hl!=21)break;xl(21),Al(91),Hl==20&&(xl(20),Al(11),Hl==21&&xl(21),Al(7),xl(60),Al(18),Hl==21&&xl(21),ji())}}function Bi(){Vl.startNonterminal(\"DirAttributeValue\",Pl),Al(14);switch(Hl){case 28:Sl(28);for(;;){Al(167);if(Hl==28)break;switch(Hl){case 13:Sl(13);break;default:Fi()}}Sl(28);break;default:Sl(33);for(;;){Al(168);if(Hl==33)break;switch(Hl){case 14:Sl(14);break;default:qi()}}Sl(33)}Vl.endNonterminal(\"DirAttributeValue\",Pl)}function ji(){Al(14);switch(Hl){case 28:xl(28);for(;;){Al(167);if(Hl==28)break;switch(Hl){case 13:xl(13);break;default:Ii()}}xl(28);break;default:xl(33);for(;;){Al(168);if(Hl==33)break;switch(Hl){case 14:xl(14);break;default:Ri()}}xl(33)}}function Fi(){Vl.startNonterminal(\"QuotAttrValueContent\",Pl);switch(Hl){case 16:Sl(16);break;default:Vf()}Vl.endNonterminal(\"QuotAttrValueContent\",Pl)}function Ii(){switch(Hl){case 16:xl(16);break;default:$f()}}function qi(){Vl.startNonterminal(\"AposAttrValueContent\",Pl);switch(Hl){case 17:Sl(17);break;default:Vf()}Vl.endNonterminal(\"AposAttrValueContent\",Pl)}function Ri(){switch(Hl){case 17:xl(17);break;default:$f()}}function Ui(){Vl.startNonterminal(\"DirElemContent\",Pl);switch(Hl){case 54:case 55:case 59:Oi();break;case 4:Sl(4);break;case 15:Sl(15);break;default:Vf()}Vl.endNonterminal(\"DirElemContent\",Pl)}function zi(){switch(Hl){case 54:case 55:case 59:Mi();break;case 4:xl(4);break;case 15:xl(15);break;default:$f()}}function Wi(){Vl.startNonterminal(\"DirCommentConstructor\",Pl),Sl(55),Al(1),Sl(2),Al(6),Sl(43),Vl.endNonterminal(\"DirCommentConstructor\",Pl)}function Xi(){xl(55),Al(1),xl(2),Al(6),xl(43)}function Vi(){Vl.startNonterminal(\"DirPIConstructor\",Pl),Sl(59),Al(3),Sl(18),Al(13),Hl==21&&(Sl(21),Al(2),Sl(3)),Al(9),Sl(65),Vl.endNonterminal(\"DirPIConstructor\",Pl)}function $i(){xl(59),Al(3),xl(18),Al(13),Hl==21&&(xl(21),Al(2),xl(3)),Al(9),xl(65)}function Ji(){Vl.startNonterminal(\"ComputedConstructor\",Pl);switch(Hl){case 119:Qf();break;case 121:Qi();break;case 82:Yf();break;case 184:Yi();break;case 244:il();break;case 96:nl();break;default:el()}Vl.endNonterminal(\"ComputedConstructor\",Pl)}function Ki(){switch(Hl){case 119:Gf();break;case 121:Gi();break;case 82:Zf();break;case 184:Zi();break;case 244:sl();break;case 96:rl();break;default:tl()}}function Qi(){Vl.startNonterminal(\"CompElemConstructor\",Pl),Sl(121),kl(258);switch(Hl){case 276:Sl(276),kl(267),Nl(),G(),Sl(282);break;default:Nl(),Ha()}kl(87),Sl(276),kl(277),Hl!=282&&(Nl(),Jf()),Sl(282),Vl.endNonterminal(\"CompElemConstructor\",Pl)}function Gi(){xl(121),kl(258);switch(Hl){case 276:xl(276),kl(267),Y(),xl(282);break;default:Ba()}kl(87),xl(276),kl(277),Hl!=282&&Kf(),xl(282)}function Yi(){Vl.startNonterminal(\"CompNamespaceConstructor\",Pl),Sl(184),kl(251);switch(Hl){case 276:Sl(276),kl(267),Nl(),ns(),Sl(282);break;default:Nl(),es()}kl(87),Sl(276),kl(267),Nl(),is(),Sl(282),Vl.endNonterminal(\"CompNamespaceConstructor\",Pl)}function Zi(){xl(184),kl(251);switch(Hl){case 276:xl(276),kl(267),rs(),xl(282);break;default:ts()}kl(87),xl(276),kl(267),ss(),xl(282)}function es(){Vl.startNonterminal(\"Prefix\",Pl),Ia(),Vl.endNonterminal(\"Prefix\",Pl)}function ts(){qa()}function ns(){Vl.startNonterminal(\"PrefixExpr\",Pl),G(),Vl.endNonterminal(\"PrefixExpr\",Pl)}function rs(){Y()}function is(){Vl.startNonterminal(\"URIExpr\",Pl),G(),Vl.endNonterminal(\"URIExpr\",Pl)}function ss(){Y()}function os(){Vl.startNonterminal(\"FunctionItemExpr\",Pl);switch(Hl){case 145:Ll(92);break;default:_l=Hl}switch(_l){case 32:case 17553:ls();break;default:as()}Vl.endNonterminal(\"FunctionItemExpr\",Pl)}function us(){switch(Hl){case 145:Ll(92);break;default:_l=Hl}switch(_l){case 32:case 17553:cs();break;default:fs()}}function as(){Vl.startNonterminal(\"NamedFunctionRef\",Pl),Ha(),kl(20),Sl(29),kl(16),Sl(8),Vl.endNonterminal(\"NamedFunctionRef\",Pl)}function fs(){Ba(),kl(20),xl(29),kl(16),xl(8)}function ls(){Vl.startNonterminal(\"InlineFunctionExpr\",Pl);for(;;){kl(97);if(Hl!=32)break;Nl(),B()}Sl(145),kl(22),Sl(34),kl(94),Hl==31&&(Nl(),U()),Sl(37),kl(111),Hl==79&&(Sl(79),kl(260),Nl(),ms()),kl(87),Nl(),V(),Vl.endNonterminal(\"InlineFunctionExpr\",Pl)}function cs(){for(;;){kl(97);if(Hl!=32)break;j()}xl(145),kl(22),xl(34),kl(94),Hl==31&&z(),xl(37),kl(111),Hl==79&&(xl(79),kl(260),gs()),kl(87),$()}function hs(){Vl.startNonterminal(\"SingleType\",Pl),vo(),kl(227),Hl==64&&Sl(64),Vl.endNonterminal(\"SingleType\",Pl)}function ps(){mo(),kl(227),Hl==64&&xl(64)}function ds(){Vl.startNonterminal(\"TypeDeclaration\",Pl),Sl(79),kl(260),Nl(),ms(),Vl.endNonterminal(\"TypeDeclaration\",Pl)}function vs(){xl(79),kl(260),gs()}function ms(){Vl.startNonterminal(\"SequenceType\",Pl);switch(Hl){case 124:Ll(243);break;default:_l=Hl}switch(_l){case 17532:Sl(124),kl(22),Sl(34),kl(23),Sl(37);break;default:ws(),kl(239);switch(Hl){case 39:case 40:case 64:Nl(),ys();break;default:}}Vl.endNonterminal(\"SequenceType\",Pl)}function gs(){switch(Hl){case 124:Ll(243);break;default:_l=Hl}switch(_l){case 17532:xl(124),kl(22),xl(34),kl(23),xl(37);break;default:Es(),kl(239);switch(Hl){case 39:case 40:case 64:bs();break;default:}}}function ys(){Vl.startNonterminal(\"OccurrenceIndicator\",Pl);switch(Hl){case 64:Sl(64);break;case 39:Sl(39);break;default:Sl(40)}Vl.endNonterminal(\"OccurrenceIndicator\",Pl)}function bs(){switch(Hl){case 64:xl(64);break;case 39:xl(39);break;default:xl(40)}}function ws(){Vl.startNonterminal(\"ItemType\",Pl);switch(Hl){case 78:case 82:case 96:case 120:case 121:case 145:case 165:case 167:case 185:case 191:case 194:case 216:case 226:case 227:case 242:case 244:Ll(243);break;default:_l=Hl}switch(_l){case 17490:case 17504:case 17528:case 17529:case 17593:case 17599:case 17624:case 17634:case 17635:case 17652:Ps();break;case 17573:Sl(165),kl(22),Sl(34),kl(23),Sl(37);break;case 32:case 17553:bo();break;case 34:No();break;case 17486:case 17575:case 17602:Ss();break;case 17650:Ts();break;default:_s()}Vl.endNonterminal(\"ItemType\",Pl)}function Es(){switch(Hl){case 78:case 82:case 96:case 120:case 121:case 145:case 165:case 167:case 185:case 191:case 194:case 216:case 226:case 227:case 242:case 244:Ll(243);break;default:_l=Hl}switch(_l){case 17490:case 17504:case 17528:case 17529:case 17593:case 17599:case 17624:case 17634:case 17635:case 17652:Hs();break;case 17573:xl(165),kl(22),xl(34),kl(23),xl(37);break;case 32:case 17553:wo();break;case 34:Co();break;case 17486:case 17575:case 17602:xs();break;case 17650:Ns();break;default:Ds()}}function Ss(){Vl.startNonterminal(\"JSONTest\",Pl);switch(Hl){case 167:Cs();break;case 194:Ls();break;default:Os()}Vl.endNonterminal(\"JSONTest\",Pl)}function xs(){switch(Hl){case 167:ks();break;case 194:As();break;default:Ms()}}function Ts(){Vl.startNonterminal(\"StructuredItemTest\",Pl),Sl(242),kl(22),Sl(34),kl(23),Sl(37),Vl.endNonterminal(\"StructuredItemTest\",Pl)}function Ns(){xl(242),kl(22),xl(34),kl(23),xl(37)}function Cs(){Vl.startNonterminal(\"JSONItemTest\",Pl),Sl(167),kl(22),Sl(34),kl(23),Sl(37),Vl.endNonterminal(\"JSONItemTest\",Pl)}function ks(){xl(167),kl(22),xl(34),kl(23),xl(37)}function Ls(){Vl.startNonterminal(\"JSONObjectTest\",Pl),Sl(194),kl(22),Sl(34),kl(23),Sl(37),Vl.endNonterminal(\"JSONObjectTest\",Pl)}function As(){xl(194),kl(22),xl(34),kl(23),xl(37)}function Os(){Vl.startNonterminal(\"JSONArrayTest\",Pl),Sl(78),kl(22),Sl(34),kl(23),Sl(37),Vl.endNonterminal(\"JSONArrayTest\",Pl)}function Ms(){xl(78),kl(22),xl(34),kl(23),xl(37)}function _s(){Vl.startNonterminal(\"AtomicOrUnionType\",Pl),Ha(),Vl.endNonterminal(\"AtomicOrUnionType\",Pl)}function Ds(){Ba()}function Ps(){Vl.startNonterminal(\"KindTest\",Pl);switch(Hl){case 120:Fs();break;case 121:no();break;case 82:Js();break;case 227:oo();break;case 226:Ys();break;case 216:Vs();break;case 96:Us();break;case 244:qs();break;case 185:Ws();break;default:Bs()}Vl.endNonterminal(\"KindTest\",Pl)}function Hs(){switch(Hl){case 120:Is();break;case 121:ro();break;case 82:Ks();break;case 227:uo();break;case 226:Zs();break;case 216:$s();break;case 96:zs();break;case 244:Rs();break;case 185:Xs();break;default:js()}}function Bs(){Vl.startNonterminal(\"AnyKindTest\",Pl),Sl(191),kl(22),Sl(34),kl(23),Sl(37),Vl.endNonterminal(\"AnyKindTest\",Pl)}function js(){xl(191),kl(22),xl(34),kl(23),xl(37)}function Fs(){Vl.startNonterminal(\"DocumentTest\",Pl),Sl(120),kl(22),Sl(34),kl(144);if(Hl!=37)switch(Hl){case 121:Nl(),no();break;default:Nl(),oo()}kl(23),Sl(37),Vl.endNonterminal(\"DocumentTest\",Pl)}function Is(){xl(120),kl(22),xl(34),kl(144);if(Hl!=37)switch(Hl){case 121:ro();break;default:uo()}kl(23),xl(37)}function qs(){Vl.startNonterminal(\"TextTest\",Pl),Sl(244),kl(22),Sl(34),kl(23),Sl(37),Vl.endNonterminal(\"TextTest\",Pl)}function Rs(){xl(244),kl(22),xl(34),kl(23),xl(37)}function Us(){Vl.startNonterminal(\"CommentTest\",Pl),Sl(96),kl(22),Sl(34),kl(23),Sl(37),Vl.endNonterminal(\"CommentTest\",Pl)}function zs(){xl(96),kl(22),xl(34),kl(23),xl(37)}function Ws(){Vl.startNonterminal(\"NamespaceNodeTest\",Pl),Sl(185),kl(22),Sl(34),kl(23),Sl(37),Vl.endNonterminal(\"NamespaceNodeTest\",Pl)}function Xs(){xl(185),kl(22),xl(34),kl(23),xl(37)}function Vs(){Vl.startNonterminal(\"PITest\",Pl),Sl(216),kl(22),Sl(34),kl(253);if(Hl!=37)switch(Hl){case 11:Sl(11);break;default:Nl(),Ia()}kl(23),Sl(37),Vl.endNonterminal(\"PITest\",Pl)}function $s(){xl(216),kl(22),xl(34),kl(253);if(Hl!=37)switch(Hl){case 11:xl(11);break;default:qa()}kl(23),xl(37)}function Js(){Vl.startNonterminal(\"AttributeTest\",Pl),Sl(82),kl(22),Sl(34),kl(261),Hl!=37&&(Nl(),Qs(),kl(101),Hl==41&&(Sl(41),kl(255),Nl(),go())),kl(23),Sl(37),Vl.endNonterminal(\"AttributeTest\",Pl)}function Ks(){xl(82),kl(22),xl(34),kl(261),Hl!=37&&(Gs(),kl(101),Hl==41&&(xl(41),kl(255),yo())),kl(23),xl(37)}function Qs(){Vl.startNonterminal(\"AttribNameOrWildcard\",Pl);switch(Hl){case 38:Sl(38);break;default:lo()}Vl.endNonterminal(\"AttribNameOrWildcard\",Pl)}function Gs(){switch(Hl){case 38:xl(38);break;default:co()}}function Ys(){Vl.startNonterminal(\"SchemaAttributeTest\",Pl),Sl(226),kl(22),Sl(34),kl(255),Nl(),eo(),kl(23),Sl(37),Vl.endNonterminal(\"SchemaAttributeTest\",Pl)}function Zs(){xl(226),kl(22),xl(34),kl(255),to(),kl(23),xl(37)}function eo(){Vl.startNonterminal(\"AttributeDeclaration\",Pl),lo(),Vl.endNonterminal(\"AttributeDeclaration\",Pl)}function to(){co()}function no(){Vl.startNonterminal(\"ElementTest\",Pl),Sl(121),kl(22),Sl(34),kl(261),Hl!=37&&(Nl(),io(),kl(101),Hl==41&&(Sl(41),kl(255),Nl(),go(),kl(102),Hl==64&&Sl(64))),kl(23),Sl(37),Vl.endNonterminal(\"ElementTest\",Pl)}function ro(){xl(121),kl(22),xl(34),kl(261),Hl!=37&&(so(),kl(101),Hl==41&&(xl(41),kl(255),yo(),kl(102),Hl==64&&xl(64))),kl(23),xl(37)}function io(){Vl.startNonterminal(\"ElementNameOrWildcard\",Pl);switch(Hl){case 38:Sl(38);break;default:ho()}Vl.endNonterminal(\"ElementNameOrWildcard\",Pl)}function so(){switch(Hl){case 38:xl(38);break;default:po()}}function oo(){Vl.startNonterminal(\"SchemaElementTest\",Pl),Sl(227),kl(22),Sl(34),kl(255),Nl(),ao(),kl(23),Sl(37),Vl.endNonterminal(\"SchemaElementTest\",Pl)}function uo(){xl(227),kl(22),xl(34),kl(255),fo(),kl(23),xl(37)}function ao(){Vl.startNonterminal(\"ElementDeclaration\",Pl),ho(),Vl.endNonterminal(\"ElementDeclaration\",Pl)}function fo(){po()}function lo(){Vl.startNonterminal(\"AttributeName\",Pl),Ha(),Vl.endNonterminal(\"AttributeName\",Pl)}function co(){Ba()}function ho(){Vl.startNonterminal(\"ElementName\",Pl),Ha(),Vl.endNonterminal(\"ElementName\",Pl)}function po(){Ba()}function vo(){Vl.startNonterminal(\"SimpleTypeName\",Pl),go(),Vl.endNonterminal(\"SimpleTypeName\",Pl)}function mo(){yo()}function go(){Vl.startNonterminal(\"TypeName\",Pl),Ha(),Vl.endNonterminal(\"TypeName\",Pl)}function yo(){Ba()}function bo(){Vl.startNonterminal(\"FunctionTest\",Pl);for(;;){kl(97);if(Hl!=32)break;Nl(),B()}switch(Hl){case 145:Ll(22);break;default:_l=Hl}_l=Kl(5,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{So(),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(5,Pl,_l)}switch(_l){case-1:Nl(),Eo();break;default:Nl(),xo()}Vl.endNonterminal(\"FunctionTest\",Pl)}function wo(){for(;;){kl(97);if(Hl!=32)break;j()}switch(Hl){case 145:Ll(22);break;default:_l=Hl}_l=Kl(5,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{So(),Jl(5,t,-1),_l=-3}catch(a){_l=-2,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(5,t,-2)}}switch(_l){case-1:So();break;case-3:break;default:To()}}function Eo(){Vl.startNonterminal(\"AnyFunctionTest\",Pl),Sl(145),kl(22),Sl(34),kl(24),Sl(38),kl(23),Sl(37),Vl.endNonterminal(\"AnyFunctionTest\",Pl)}function So(){xl(145),kl(22),xl(34),kl(24),xl(38),kl(23),xl(37)}function xo(){Vl.startNonterminal(\"TypedFunctionTest\",Pl),Sl(145),kl(22),Sl(34),kl(263);if(Hl!=37){Nl(),ms();for(;;){kl(101);if(Hl!=41)break;Sl(41),kl(260),Nl(),ms()}}Sl(37),kl(30),Sl(79),kl(260),Nl(),ms(),Vl.endNonterminal(\"TypedFunctionTest\",Pl)}function To(){xl(145),kl(22),xl(34),kl(263);if(Hl!=37){gs();for(;;){kl(101);if(Hl!=41)break;xl(41),kl(260),gs()}}xl(37),kl(30),xl(79),kl(260),gs()}function No(){Vl.startNonterminal(\"ParenthesizedItemType\",Pl),Sl(34),kl(260),Nl(),ws(),kl(23),Sl(37),Vl.endNonterminal(\"ParenthesizedItemType\",Pl)}function Co(){xl(34),kl(260),Es(),kl(23),xl(37)}function ko(){Vl.startNonterminal(\"RevalidationDecl\",Pl),Sl(108),kl(72),Sl(222),kl(152);switch(Hl){case 240:Sl(240);break;case 171:Sl(171);break;default:Sl(233)}Vl.endNonterminal(\"RevalidationDecl\",Pl)}function Lo(){Vl.startNonterminal(\"InsertExprTargetChoice\",Pl);switch(Hl){case 70:Sl(70);break;case 84:Sl(84);break;default:if(Hl==79){Sl(79),kl(119);switch(Hl){case 134:Sl(134);break;default:Sl(170)}}kl(54),Sl(163)}Vl.endNonterminal(\"InsertExprTargetChoice\",Pl)}function Ao(){switch(Hl){case 70:xl(70);break;case 84:xl(84);break;default:if(Hl==79){xl(79),kl(119);switch(Hl){case 134:xl(134);break;default:xl(170)}}kl(54),xl(163)}}function Oo(){Vl.startNonterminal(\"InsertExpr\",Pl),Sl(159),kl(129);switch(Hl){case 191:Sl(191);break;default:Sl(192)}kl(267),Nl(),Fo(),Nl(),Lo(),kl(267),Nl(),qo(),Vl.endNonterminal(\"InsertExpr\",Pl)}function Mo(){xl(159),kl(129);switch(Hl){case 191:xl(191);break;default:xl(192)}kl(267),Io(),Ao(),kl(267),Ro()}function _o(){Vl.startNonterminal(\"DeleteExpr\",Pl),Sl(110),kl(129);switch(Hl){case 191:Sl(191);break;default:Sl(192)}kl(267),Nl(),qo(),Vl.endNonterminal(\"DeleteExpr\",Pl)}function Do(){xl(110),kl(129);switch(Hl){case 191:xl(191);break;default:xl(192)}kl(267),Ro()}function Po(){Vl.startNonterminal(\"ReplaceExpr\",Pl),Sl(219),kl(130),Hl==261&&(Sl(261),kl(64),Sl(196)),kl(62),Sl(191),kl(267),Nl(),qo(),Sl(270),kl(267),Nl(),_f(),Vl.endNonterminal(\"ReplaceExpr\",Pl)}function Ho(){xl(219),kl(130),Hl==261&&(xl(261),kl(64),xl(196)),kl(62),xl(191),kl(267),Ro(),xl(270),kl(267),Df()}function Bo(){Vl.startNonterminal(\"RenameExpr\",Pl),Sl(218),kl(62),Sl(191),kl(267),Nl(),qo(),Sl(79),kl(267),Nl(),Uo(),Vl.endNonterminal(\"RenameExpr\",Pl)}function jo(){xl(218),kl(62),xl(191),kl(267),Ro(),xl(79),kl(267),zo()}function Fo(){Vl.startNonterminal(\"SourceExpr\",Pl),_f(),Vl.endNonterminal(\"SourceExpr\",Pl)}function Io(){Df()}function qo(){Vl.startNonterminal(\"TargetExpr\",Pl),_f(),Vl.endNonterminal(\"TargetExpr\",Pl)}function Ro(){Df()}function Uo(){Vl.startNonterminal(\"NewNameExpr\",Pl),_f(),Vl.endNonterminal(\"NewNameExpr\",Pl)}function zo(){Df()}function Wo(){Vl.startNonterminal(\"TransformExpr\",Pl),Sl(103),kl(21),Nl(),Vo();for(;;){if(Hl!=41)break;Sl(41),kl(21),Nl(),Vo()}Sl(181),kl(267),Nl(),_f(),Sl(220),kl(267),Nl(),_f(),Vl.endNonterminal(\"TransformExpr\",Pl)}function Xo(){xl(103),kl(21),$o();for(;;){if(Hl!=41)break;xl(41),kl(21),$o()}xl(181),kl(267),Df(),xl(220),kl(267),Df()}function Vo(){Vl.startNonterminal(\"TransformSpec\",Pl),Sl(31),kl(255),Nl(),hi(),kl(27),Sl(52),kl(267),Nl(),_f(),Vl.endNonterminal(\"TransformSpec\",Pl)}function $o(){xl(31),kl(255),pi(),kl(27),xl(52),kl(267),Df()}function Jo(){Vl.startNonterminal(\"FTSelection\",Pl),Yo();for(;;){kl(212);switch(Hl){case 81:Ll(151);break;default:_l=Hl}if(_l!=115&&_l!=117&&_l!=127&&_l!=202&&_l!=223&&_l!=269&&_l!=64593&&_l!=121425)break;Nl(),Su()}Vl.endNonterminal(\"FTSelection\",Pl)}function Ko(){Zo();for(;;){kl(212);switch(Hl){case 81:Ll(151);break;default:_l=Hl}if(_l!=115&&_l!=117&&_l!=127&&_l!=202&&_l!=223&&_l!=269&&_l!=64593&&_l!=121425)break;xu()}}function Qo(){Vl.startNonterminal(\"FTWeight\",Pl),Sl(264),kl(87),Sl(276),kl(267),Nl(),G(),Sl(282),Vl.endNonterminal(\"FTWeight\",Pl)}function Go(){xl(264),kl(87),xl(276),kl(267),Y(),xl(282)}function Yo(){Vl.startNonterminal(\"FTOr\",Pl),eu();for(;;){if(Hl!=144)break;Sl(144),kl(162),Nl(),eu()}Vl.endNonterminal(\"FTOr\",Pl)}function Zo(){tu();for(;;){if(Hl!=144)break;xl(144),kl(162),tu()}}function eu(){Vl.startNonterminal(\"FTAnd\",Pl),nu();for(;;){if(Hl!=142)break;Sl(142),kl(162),Nl(),nu()}Vl.endNonterminal(\"FTAnd\",Pl)}function tu(){ru();for(;;){if(Hl!=142)break;xl(142),kl(162),ru()}}function nu(){Vl.startNonterminal(\"FTMildNot\",Pl),iu();for(;;){kl(213);if(Hl!=193)break;Sl(193),kl(53),Sl(154),kl(162),Nl(),iu()}Vl.endNonterminal(\"FTMildNot\",Pl)}function ru(){su();for(;;){kl(213);if(Hl!=193)break;xl(193),kl(53),xl(154),kl(162),su()}}function iu(){Vl.startNonterminal(\"FTUnaryNot\",Pl),Hl==143&&Sl(143),kl(155),Nl(),ou(),Vl.endNonterminal(\"FTUnaryNot\",Pl)}function su(){Hl==143&&xl(143),kl(155),uu()}function ou(){Vl.startNonterminal(\"FTPrimaryWithOptions\",Pl),au(),kl(215),Hl==259&&(Nl(),Fu()),Hl==264&&(Nl(),Qo()),Vl.endNonterminal(\"FTPrimaryWithOptions\",Pl)}function uu(){fu(),kl(215),Hl==259&&Iu(),Hl==264&&Go()}function au(){Vl.startNonterminal(\"FTPrimary\",Pl);switch(Hl){case 34:Sl(34),kl(162),Nl(),Jo(),Sl(37);break;case 35:du();break;default:lu(),kl(216),Hl==195&&(Nl(),yu())}Vl.endNonterminal(\"FTPrimary\",Pl)}function fu(){switch(Hl){case 34:xl(34),kl(162),Ko(),xl(37);break;case 35:vu();break;default:cu(),kl(216),Hl==195&&bu()}}function lu(){Vl.startNonterminal(\"FTWords\",Pl),hu(),kl(222);if(Hl==71||Hl==76||Hl==210)Nl(),mu();Vl.endNonterminal(\"FTWords\",Pl)}function cu(){pu(),kl(222),(Hl==71||Hl==76||Hl==210)&&gu()}function hu(){Vl.startNonterminal(\"FTWordsValue\",Pl);switch(Hl){case 11:Sl(11);break;default:Sl(276),kl(267),Nl(),G(),Sl(282)}Vl.endNonterminal(\"FTWordsValue\",Pl)}function pu(){switch(Hl){case 11:xl(11);break;default:xl(276),kl(267),Y(),xl(282)}}function du(){Vl.startNonterminal(\"FTExtensionSelection\",Pl);for(;;){Nl(),Cr(),kl(100);if(Hl!=35)break}Sl(276),kl(166),Hl!=282&&(Nl(),Jo()),Sl(282),Vl.endNonterminal(\"FTExtensionSelection\",Pl)}function vu(){for(;;){kr(),kl(100);if(Hl!=35)break}xl(276),kl(166),Hl!=282&&Ko(),xl(282)}function mu(){Vl.startNonterminal(\"FTAnyallOption\",Pl);switch(Hl){case 76:Sl(76),kl(219),Hl==272&&Sl(272);break;case 71:Sl(71),kl(220),Hl==273&&Sl(273);break;default:Sl(210)}Vl.endNonterminal(\"FTAnyallOption\",Pl)}function gu(){switch(Hl){case 76:xl(76),kl(219),Hl==272&&xl(272);break;case 71:xl(71),kl(220),Hl==273&&xl(273);break;default:xl(210)}}function yu(){Vl.startNonterminal(\"FTTimes\",Pl),Sl(195),kl(149),Nl(),wu(),Sl(247),Vl.endNonterminal(\"FTTimes\",Pl)}function bu(){xl(195),kl(149),Eu(),xl(247)}function wu(){Vl.startNonterminal(\"FTRange\",Pl);switch(Hl){case 130:Sl(130),kl(267),Nl(),Vn();break;case 81:Sl(81),kl(125);switch(Hl){case 173:Sl(173),kl(267),Nl(),Vn();break;default:Sl(183),kl(267),Nl(),Vn()}break;default:Sl(140),kl(267),Nl(),Vn(),Sl(248),kl(267),Nl(),Vn()}Vl.endNonterminal(\"FTRange\",Pl)}function Eu(){switch(Hl){case 130:xl(130),kl(267),$n();break;case 81:xl(81),kl(125);switch(Hl){case 173:xl(173),kl(267),$n();break;default:xl(183),kl(267),$n()}break;default:xl(140),kl(267),$n(),xl(248),kl(267),$n()}}function Su(){Vl.startNonterminal(\"FTPosFilter\",Pl);switch(Hl){case 202:Tu();break;case 269:Cu();break;case 117:Lu();break;case 115:case 223:_u();break;default:Bu()}Vl.endNonterminal(\"FTPosFilter\",Pl)}function xu(){switch(Hl){case 202:Nu();break;case 269:ku();break;case 117:Au();break;case 115:case 223:Du();break;default:ju()}}function Tu(){Vl.startNonterminal(\"FTOrder\",Pl),Sl(202),Vl.endNonterminal(\"FTOrder\",Pl)}function Nu(){xl(202)}function Cu(){Vl.startNonterminal(\"FTWindow\",Pl),Sl(269),kl(267),Nl(),Vn(),Nl(),Ou(),Vl.endNonterminal(\"FTWindow\",Pl)}function ku(){xl(269),kl(267),$n(),Mu()}function Lu(){Vl.startNonterminal(\"FTDistance\",Pl),Sl(117),kl(149),Nl(),wu(),Nl(),Ou(),Vl.endNonterminal(\"FTDistance\",Pl)}function Au(){xl(117),kl(149),Eu(),Mu()}function Ou(){Vl.startNonterminal(\"FTUnit\",Pl);switch(Hl){case 273:Sl(273);break;case 232:Sl(232);break;default:Sl(205)}Vl.endNonterminal(\"FTUnit\",Pl)}function Mu(){switch(Hl){case 273:xl(273);break;case 232:xl(232);break;default:xl(205)}}function _u(){Vl.startNonterminal(\"FTScope\",Pl);switch(Hl){case 223:Sl(223);break;default:Sl(115)}kl(132),Nl(),Pu(),Vl.endNonterminal(\"FTScope\",Pl)}function Du(){switch(Hl){case 223:xl(223);break;default:xl(115)}kl(132),Hu()}function Pu(){Vl.startNonterminal(\"FTBigUnit\",Pl);switch(Hl){case 231:Sl(231);break;default:Sl(204)}Vl.endNonterminal(\"FTBigUnit\",Pl)}function Hu(){switch(Hl){case 231:xl(231);break;default:xl(204)}}function Bu(){Vl.startNonterminal(\"FTContent\",Pl);switch(Hl){case 81:Sl(81),kl(117);switch(Hl){case 237:Sl(237);break;default:Sl(126)}break;default:Sl(127),kl(42),Sl(100)}Vl.endNonterminal(\"FTContent\",Pl)}function ju(){switch(Hl){case 81:xl(81),kl(117);switch(Hl){case 237:xl(237);break;default:xl(126)}break;default:xl(127),kl(42),xl(100)}}function Fu(){Vl.startNonterminal(\"FTMatchOptions\",Pl);for(;;){Sl(259),kl(182),Nl(),qu(),kl(215);if(Hl!=259)break}Vl.endNonterminal(\"FTMatchOptions\",Pl)}function Iu(){for(;;){xl(259),kl(182),Ru(),kl(215);if(Hl!=259)break}}function qu(){Vl.startNonterminal(\"FTMatchOption\",Pl);switch(Hl){case 188:Ll(161);break;default:_l=Hl}switch(_l){case 169:oa();break;case 268:case 137404:aa();break;case 246:case 126140:Ju();break;case 238:case 122044:Vu();break;case 114:Wu();break;case 239:case 122556:ea();break;case 199:la();break;default:Uu()}Vl.endNonterminal(\"FTMatchOption\",Pl)}function Ru(){switch(Hl){case 188:Ll(161);break;default:_l=Hl}switch(_l){case 169:ua();break;case 268:case 137404:fa();break;case 246:case 126140:Ku();break;case 238:case 122044:$u();break;case 114:Xu();break;case 239:case 122556:ta();break;case 199:ca();break;default:zu()}}function Uu(){Vl.startNonterminal(\"FTCaseOption\",Pl);switch(Hl){case 88:Sl(88),kl(124);switch(Hl){case 158:Sl(158);break;default:Sl(230)}break;case 177:Sl(177);break;default:Sl(258)}Vl.endNonterminal(\"FTCaseOption\",Pl)}function zu(){switch(Hl){case 88:xl(88),kl(124);switch(Hl){case 158:xl(158);break;default:xl(230)}break;case 177:xl(177);break;default:xl(258)}}function Wu(){Vl.startNonterminal(\"FTDiacriticsOption\",Pl),Sl(114),kl(124);switch(Hl){case 158:Sl(158);break;default:Sl(230)}Vl.endNonterminal(\"FTDiacriticsOption\",Pl)}function Xu(){xl(114),kl(124);switch(Hl){case 158:xl(158);break;default:xl(230)}}function Vu(){Vl.startNonterminal(\"FTStemOption\",Pl);switch(Hl){case 238:Sl(238);break;default:Sl(188),kl(74),Sl(238)}Vl.endNonterminal(\"FTStemOption\",Pl)}function $u(){switch(Hl){case 238:xl(238);break;default:xl(188),kl(74),xl(238)}}function Ju(){Vl.startNonterminal(\"FTThesaurusOption\",Pl);switch(Hl){case 246:Sl(246),kl(142);switch(Hl){case 81:Nl(),Qu();break;case 109:Sl(109);break;default:Sl(34),kl(112);switch(Hl){case 81:Nl(),Qu();break;default:Sl(109)}for(;;){kl(101);if(Hl!=41)break;Sl(41),kl(31),Nl(),Qu()}Sl(37)}break;default:Sl(188),kl(78),Sl(246)}Vl.endNonterminal(\"FTThesaurusOption\",Pl)}function Ku(){switch(Hl){case 246:xl(246),kl(142);switch(Hl){case 81:Gu();break;case 109:xl(109);break;default:xl(34),kl(112);switch(Hl){case 81:Gu();break;default:xl(109)}for(;;){kl(101);if(Hl!=41)break;xl(41),kl(31),Gu()}xl(37)}break;default:xl(188),kl(78),xl(246)}}function Qu(){Vl.startNonterminal(\"FTThesaurusID\",Pl),Sl(81),kl(15),Sl(7),kl(221),Hl==217&&(Sl(217),kl(17),Sl(11)),kl(217);switch(Hl){case 81:Ll(165);break;default:_l=Hl}if(_l==130||_l==140||_l==88657||_l==93777)Nl(),Yu(),kl(58),Sl(175);Vl.endNonterminal(\"FTThesaurusID\",Pl)}function Gu(){xl(81),kl(15),xl(7),kl(221),Hl==217&&(xl(217),kl(17),xl(11)),kl(217);switch(Hl){case 81:Ll(165);break;default:_l=Hl}if(_l==130||_l==140||_l==88657||_l==93777)Zu(),kl(58),xl(175)}function Yu(){Vl.startNonterminal(\"FTLiteralRange\",Pl);switch(Hl){case 130:Sl(130),kl(16),Sl(8);break;case 81:Sl(81),kl(125);switch(Hl){case 173:Sl(173),kl(16),Sl(8);break;default:Sl(183),kl(16),Sl(8)}break;default:Sl(140),kl(16),Sl(8),kl(79),Sl(248),kl(16),Sl(8)}Vl.endNonterminal(\"FTLiteralRange\",Pl)}function Zu(){switch(Hl){case 130:xl(130),kl(16),xl(8);break;case 81:xl(81),kl(125);switch(Hl){case 173:xl(173),kl(16),xl(8);break;default:xl(183),kl(16),xl(8)}break;default:xl(140),kl(16),xl(8),kl(79),xl(248),kl(16),xl(8)}}function ea(){Vl.startNonterminal(\"FTStopWordOption\",Pl);switch(Hl){case 239:Sl(239),kl(86),Sl(273),kl(142);switch(Hl){case 109:Sl(109);for(;;){kl(218);if(Hl!=131&&Hl!=254)break;Nl(),ia()}break;default:Nl(),na();for(;;){kl(218);if(Hl!=131&&Hl!=254)break;Nl(),ia()}}break;default:Sl(188),kl(75),Sl(239),kl(86),Sl(273)}Vl.endNonterminal(\"FTStopWordOption\",Pl)}function ta(){switch(Hl){case 239:xl(239),kl(86),xl(273),kl(142);switch(Hl){case 109:xl(109);for(;;){kl(218);if(Hl!=131&&Hl!=254)break;sa()}break;default:ra();for(;;){kl(218);if(Hl!=131&&Hl!=254)break;sa()}}break;default:xl(188),kl(75),xl(239),kl(86),xl(273)}}function na(){Vl.startNonterminal(\"FTStopWords\",Pl);switch(Hl){case 81:Sl(81),kl(15),Sl(7);break;default:Sl(34),kl(17),Sl(11);for(;;){kl(101);if(Hl!=41)break;Sl(41),kl(17),Sl(11)}Sl(37)}Vl.endNonterminal(\"FTStopWords\",Pl)}function ra(){switch(Hl){case 81:xl(81),kl(15),xl(7);break;default:xl(34),kl(17),xl(11);for(;;){kl(101);if(Hl!=41)break;xl(41),kl(17),xl(11)}xl(37)}}function ia(){Vl.startNonterminal(\"FTStopWordsInclExcl\",Pl);switch(Hl){case 254:Sl(254);break;default:Sl(131)}kl(99),Nl(),na(),Vl.endNonterminal(\"FTStopWordsInclExcl\",Pl)}function sa(){switch(Hl){case 254:xl(254);break;default:xl(131)}kl(99),ra()}function oa(){Vl.startNonterminal(\"FTLanguageOption\",Pl),Sl(169),kl(17),Sl(11),Vl.endNonterminal(\"FTLanguageOption\",Pl)}function ua(){xl(169),kl(17),xl(11)}function aa(){Vl.startNonterminal(\"FTWildCardOption\",Pl);switch(Hl){case 268:Sl(268);break;default:Sl(188),kl(84),Sl(268)}Vl.endNonterminal(\"FTWildCardOption\",Pl)}function fa(){switch(Hl){case 268:xl(268);break;default:xl(188),kl(84),xl(268)}}function la(){Vl.startNonterminal(\"FTExtensionOption\",Pl),Sl(199),kl(255),Nl(),Ha(),kl(17),Sl(11),Vl.endNonterminal(\"FTExtensionOption\",Pl)}function ca(){xl(199),kl(255),Ba(),kl(17),xl(11)}function ha(){Vl.startNonterminal(\"FTIgnoreOption\",Pl),Sl(271),kl(42),Sl(100),kl(267),Nl(),Qn(),Vl.endNonterminal(\"FTIgnoreOption\",Pl)}function pa(){xl(271),kl(42),xl(100),kl(267),Gn()}function da(){Vl.startNonterminal(\"CollectionDecl\",Pl),Sl(95),kl(255),Nl(),Ha(),kl(107),Hl==79&&(Nl(),va()),Vl.endNonterminal(\"CollectionDecl\",Pl)}function va(){Vl.startNonterminal(\"CollectionTypeDecl\",Pl),Sl(79),kl(178),Nl(),Ps(),kl(156),Hl!=53&&(Nl(),ys()),Vl.endNonterminal(\"CollectionTypeDecl\",Pl)}function ma(){Vl.startNonterminal(\"IndexName\",Pl),Ha(),Vl.endNonterminal(\"IndexName\",Pl)}function ga(){Vl.startNonterminal(\"IndexDomainExpr\",Pl),Lr(),Vl.endNonterminal(\"IndexDomainExpr\",Pl)}function ya(){Vl.startNonterminal(\"IndexKeySpec\",Pl),ba(),Hl==79&&(Nl(),wa()),kl(146),Hl==94&&(Nl(),Sa()),Vl.endNonterminal(\"IndexKeySpec\",Pl)}function ba(){Vl.startNonterminal(\"IndexKeyExpr\",Pl),Lr(),Vl.endNonterminal(\"IndexKeyExpr\",Pl)}function wa(){Vl.startNonterminal(\"IndexKeyTypeDecl\",Pl),Sl(79),kl(255),Nl(),Ea(),kl(169);if(Hl==39||Hl==40||Hl==64)Nl(),ys();Vl.endNonterminal(\"IndexKeyTypeDecl\",Pl)}function Ea(){Vl.startNonterminal(\"AtomicType\",Pl),Ha(),Vl.endNonterminal(\"AtomicType\",Pl)}function Sa(){Vl.startNonterminal(\"IndexKeyCollation\",Pl),Sl(94),kl(15),Sl(7),Vl.endNonterminal(\"IndexKeyCollation\",Pl)}function xa(){Vl.startNonterminal(\"IndexDecl\",Pl),Sl(155),kl(255),Nl(),ma(),kl(65),Sl(197),kl(63),Sl(192),kl(266),Nl(),ga(),Sl(87),kl(266),Nl(),ya();for(;;){kl(103);if(Hl!=41)break;Sl(41),kl(266),Nl(),ya()}Vl.endNonterminal(\"IndexDecl\",Pl)}function Ta(){Vl.startNonterminal(\"ICDecl\",Pl),Sl(161),kl(40),Sl(97),kl(255),Nl(),Ha(),kl(120);switch(Hl){case 197:Nl(),Na();break;default:Nl(),Aa()}Vl.endNonterminal(\"ICDecl\",Pl)}function Na(){Vl.startNonterminal(\"ICCollection\",Pl),Sl(197),kl(39),Sl(95),kl(255),Nl(),Ha(),kl(140);switch(Hl){case 31:Nl(),Ca();break;case 191:Nl(),ka();break;default:Nl(),La()}Vl.endNonterminal(\"ICCollection\",Pl)}function Ca(){Vl.startNonterminal(\"ICCollSequence\",Pl),li(),kl(37),Sl(92),kl(267),Nl(),_f(),Vl.endNonterminal(\"ICCollSequence\",Pl)}function ka(){Vl.startNonterminal(\"ICCollSequenceUnique\",Pl),Sl(191),kl(21),Nl(),li(),kl(37),Sl(92),kl(80),Sl(255),kl(57),Sl(168),kl(266),Nl(),Lr(),Vl.endNonterminal(\"ICCollSequenceUnique\",Pl)}function La(){Vl.startNonterminal(\"ICCollNode\",Pl),Sl(138),kl(62),Sl(191),kl(21),Nl(),li(),kl(37),Sl(92),kl(267),Nl(),_f(),Vl.endNonterminal(\"ICCollNode\",Pl)}function Aa(){Vl.startNonterminal(\"ICForeignKey\",Pl),Sl(139),kl(57),Sl(168),kl(51),Nl(),Oa(),Nl(),Ma(),Vl.endNonterminal(\"ICForeignKey\",Pl)}function Oa(){Vl.startNonterminal(\"ICForeignKeySource\",Pl),Sl(140),kl(39),Nl(),_a(),Vl.endNonterminal(\"ICForeignKeySource\",Pl)}function Ma(){Vl.startNonterminal(\"ICForeignKeyTarget\",Pl),Sl(248),kl(39),Nl(),_a(),Vl.endNonterminal(\"ICForeignKeyTarget\",Pl)}function _a(){Vl.startNonterminal(\"ICForeignKeyValues\",Pl),Sl(95),kl(255),Nl(),Ha(),kl(62),Sl(191),kl(21),Nl(),li(),kl(57),Sl(168),kl(266),Nl(),Lr(),Vl.endNonterminal(\"ICForeignKeyValues\",Pl)}function Da(){xl(36);for(;;){Al(89);if(Hl==50)break;switch(Hl){case 24:xl(24);break;default:Da()}}xl(50)}function Pa(){switch(Hl){case 22:xl(22);break;default:Da()}}function Ha(){Vl.startNonterminal(\"EQName\",Pl),Al(250);switch(Hl){case 82:Sl(82);break;case 96:Sl(96);break;case 120:Sl(120);break;case 121:Sl(121);break;case 124:Sl(124);break;case 145:Sl(145);break;case 152:Sl(152);break;case 165:Sl(165);break;case 185:Sl(185);break;case 191:Sl(191);break;case 216:Sl(216);break;case 226:Sl(226);break;case 227:Sl(227);break;case 243:Sl(243);break;case 244:Sl(244);break;case 253:Sl(253);break;case 78:Sl(78);break;case 167:Sl(167);break;case 242:Sl(242);break;default:ja()}Vl.endNonterminal(\"EQName\",Pl)}function Ba(){Al(250);switch(Hl){case 82:xl(82);break;case 96:xl(96);break;case 120:xl(120);break;case 121:xl(121);break;case 124:xl(124);break;case 145:xl(145);break;case 152:xl(152);break;case 165:xl(165);break;case 185:xl(185);break;case 191:xl(191);break;case 216:xl(216);break;case 226:xl(226);break;case 227:xl(227);break;case 243:xl(243);break;case 244:xl(244);break;case 253:xl(253);break;case 78:xl(78);break;case 167:xl(167);break;case 242:xl(242);break;default:Fa()}}function ja(){Vl.startNonterminal(\"FunctionName\",Pl);switch(Hl){case 6:Sl(6);break;case 70:Sl(70);break;case 73:Sl(73);break;case 74:Sl(74);break;case 75:Sl(75);break;case 79:Sl(79);break;case 80:Sl(80);break;case 84:Sl(84);break;case 88:Sl(88);break;case 89:Sl(89);break;case 90:Sl(90);break;case 93:Sl(93);break;case 94:Sl(94);break;case 103:Sl(103);break;case 105:Sl(105);break;case 108:Sl(108);break;case 109:Sl(109);break;case 110:Sl(110);break;case 111:Sl(111);break;case 112:Sl(112);break;case 113:Sl(113);break;case 118:Sl(118);break;case 119:Sl(119);break;case 122:Sl(122);break;case 123:Sl(123);break;case 126:Sl(126);break;case 128:Sl(128);break;case 129:Sl(129);break;case 131:Sl(131);break;case 134:Sl(134);break;case 135:Sl(135);break;case 136:Sl(136);break;case 137:Sl(137);break;case 146:Sl(146);break;case 148:Sl(148);break;case 150:Sl(150);break;case 151:Sl(151);break;case 153:Sl(153);break;case 159:Sl(159);break;case 160:Sl(160);break;case 162:Sl(162);break;case 163:Sl(163);break;case 164:Sl(164);break;case 170:Sl(170);break;case 172:Sl(172);break;case 174:Sl(174);break;case 178:Sl(178);break;case 180:Sl(180);break;case 181:Sl(181);break;case 182:Sl(182);break;case 184:Sl(184);break;case 186:Sl(186);break;case 198:Sl(198);break;case 200:Sl(200);break;case 201:Sl(201);break;case 202:Sl(202);break;case 206:Sl(206);break;case 212:Sl(212);break;case 213:Sl(213);break;case 218:Sl(218);break;case 219:Sl(219);break;case 220:Sl(220);break;case 224:Sl(224);break;case 229:Sl(229);break;case 235:Sl(235);break;case 236:Sl(236);break;case 237:Sl(237);break;case 248:Sl(248);break;case 249:Sl(249);break;case 250:Sl(250);break;case 254:Sl(254);break;case 256:Sl(256);break;case 260:Sl(260);break;case 266:Sl(266);break;case 270:Sl(270);break;case 274:Sl(274);break;case 72:Sl(72);break;case 81:Sl(81);break;case 83:Sl(83);break;case 85:Sl(85);break;case 86:Sl(86);break;case 91:Sl(91);break;case 98:Sl(98);break;case 101:Sl(101);break;case 102:Sl(102);break;case 104:Sl(104);break;case 106:Sl(106);break;case 125:Sl(125);break;case 132:Sl(132);break;case 133:Sl(133);break;case 141:Sl(141);break;case 154:Sl(154);break;case 155:Sl(155);break;case 161:Sl(161);break;case 171:Sl(171);break;case 192:Sl(192);break;case 199:Sl(199);break;case 203:Sl(203);break;case 222:Sl(222);break;case 225:Sl(225);break;case 228:Sl(228);break;case 234:Sl(234);break;case 240:Sl(240);break;case 251:Sl(251);break;case 252:Sl(252);break;case 257:Sl(257);break;case 261:Sl(261);break;case 262:Sl(262);break;case 263:Sl(263);break;case 267:Sl(267);break;case 97:Sl(97);break;case 176:Sl(176);break;case 221:Sl(221);break;case 77:Sl(77);break;case 166:Sl(166);break;default:Sl(194)}Vl.endNonterminal(\"FunctionName\",Pl)}function Fa(){switch(Hl){case 6:xl(6);break;case 70:xl(70);break;case 73:xl(73);break;case 74:xl(74);break;case 75:xl(75);break;case 79:xl(79);break;case 80:xl(80);break;case 84:xl(84);break;case 88:xl(88);break;case 89:xl(89);break;case 90:xl(90);break;case 93:xl(93);break;case 94:xl(94);break;case 103:xl(103);break;case 105:xl(105);break;case 108:xl(108);break;case 109:xl(109);break;case 110:xl(110);break;case 111:xl(111);break;case 112:xl(112);break;case 113:xl(113);break;case 118:xl(118);break;case 119:xl(119);break;case 122:xl(122);break;case 123:xl(123);break;case 126:xl(126);break;case 128:xl(128);break;case 129:xl(129);break;case 131:xl(131);break;case 134:xl(134);break;case 135:xl(135);break;case 136:xl(136);break;case 137:xl(137);break;case 146:xl(146);break;case 148:xl(148);break;case 150:xl(150);break;case 151:xl(151);break;case 153:xl(153);break;case 159:xl(159);break;case 160:xl(160);break;case 162:xl(162);break;case 163:xl(163);break;case 164:xl(164);break;case 170:xl(170);break;case 172:xl(172);break;case 174:xl(174);break;case 178:xl(178);break;case 180:xl(180);break;case 181:xl(181);break;case 182:xl(182);break;case 184:xl(184);break;case 186:xl(186);break;case 198:xl(198);break;case 200:xl(200);break;case 201:xl(201);break;case 202:xl(202);break;case 206:xl(206);break;case 212:xl(212);break;case 213:xl(213);break;case 218:xl(218);break;case 219:xl(219);break;case 220:xl(220);break;case 224:xl(224);break;case 229:xl(229);break;case 235:xl(235);break;case 236:xl(236);break;case 237:xl(237);break;case 248:xl(248);break;case 249:xl(249);break;case 250:xl(250);break;case 254:xl(254);break;case 256:xl(256);break;case 260:xl(260);break;case 266:xl(266);break;case 270:xl(270);break;case 274:xl(274);break;case 72:xl(72);break;case 81:xl(81);break;case 83:xl(83);break;case 85:xl(85);break;case 86:xl(86);break;case 91:xl(91);break;case 98:xl(98);break;case 101:xl(101);break;case 102:xl(102);break;case 104:xl(104);break;case 106:xl(106);break;case 125:xl(125);break;case 132:xl(132);break;case 133:xl(133);break;case 141:xl(141);break;case 154:xl(154);break;case 155:xl(155);break;case 161:xl(161);break;case 171:xl(171);break;case 192:xl(192);break;case 199:xl(199);break;case 203:xl(203);break;case 222:xl(222);break;case 225:xl(225);break;case 228:xl(228);break;case 234:xl(234);break;case 240:xl(240);break;case 251:xl(251);break;case 252:xl(252);break;case 257:xl(257);break;case 261:xl(261);break;case 262:xl(262);break;case 263:xl(263);break;case 267:xl(267);break;case 97:xl(97);break;case 176:xl(176);break;case 221:xl(221);break;case 77:xl(77);break;case 166:xl(166);break;default:xl(194)}}function Ia(){Vl.startNonterminal(\"NCName\",Pl);switch(Hl){case 19:Sl(19);break;case 70:Sl(70);break;case 75:Sl(75);break;case 79:Sl(79);break;case 80:Sl(80);break;case 84:Sl(84);break;case 88:Sl(88);break;case 89:Sl(89);break;case 90:Sl(90);break;case 94:Sl(94);break;case 105:Sl(105);break;case 109:Sl(109);break;case 113:Sl(113);break;case 118:Sl(118);break;case 122:Sl(122);break;case 123:Sl(123);break;case 126:Sl(126);break;case 128:Sl(128);break;case 131:Sl(131);break;case 137:Sl(137);break;case 146:Sl(146);break;case 148:Sl(148);break;case 150:Sl(150);break;case 151:Sl(151);break;case 160:Sl(160);break;case 162:Sl(162);break;case 163:Sl(163);break;case 164:Sl(164);break;case 172:Sl(172);break;case 174:Sl(174);break;case 178:Sl(178);break;case 180:Sl(180);break;case 181:Sl(181);break;case 186:Sl(186);break;case 198:Sl(198);break;case 200:Sl(200);break;case 201:Sl(201);break;case 220:Sl(220);break;case 224:Sl(224);break;case 236:Sl(236);break;case 237:Sl(237);break;case 248:Sl(248);break;case 249:Sl(249);break;case 254:Sl(254);break;case 266:Sl(266);break;case 270:Sl(270);break;case 73:Sl(73);break;case 74:Sl(74);break;case 82:Sl(82);break;case 93:Sl(93);break;case 96:Sl(96);break;case 103:Sl(103);break;case 108:Sl(108);break;case 110:Sl(110);break;case 111:Sl(111);break;case 112:Sl(112);break;case 119:Sl(119);break;case 120:Sl(120);break;case 121:Sl(121);break;case 124:Sl(124);break;case 129:Sl(129);break;case 134:Sl(134);break;case 135:Sl(135);break;case 136:Sl(136);break;case 145:Sl(145);break;case 152:Sl(152);break;case 153:Sl(153);break;case 159:Sl(159);break;case 165:Sl(165);break;case 170:Sl(170);break;case 182:Sl(182);break;case 184:Sl(184);break;case 185:Sl(185);break;case 191:Sl(191);break;case 202:Sl(202);break;case 206:Sl(206);break;case 212:Sl(212);break;case 213:Sl(213);break;case 216:Sl(216);break;case 218:Sl(218);break;case 219:Sl(219);break;case 226:Sl(226);break;case 227:Sl(227);break;case 229:Sl(229);break;case 235:Sl(235);break;case 243:Sl(243);break;case 244:Sl(244);break;case 250:Sl(250);break;case 253:Sl(253);break;case 256:Sl(256);break;case 260:Sl(260);break;case 262:Sl(262);break;case 274:Sl(274);break;case 72:Sl(72);break;case 81:Sl(81);break;case 83:Sl(83);break;case 85:Sl(85);break;case 86:Sl(86);break;case 91:Sl(91);break;case 98:Sl(98);break;case 101:Sl(101);break;case 102:Sl(102);break;case 104:Sl(104);break;case 106:Sl(106);break;case 125:Sl(125);break;case 132:Sl(132);break;case 133:Sl(133);break;case 141:Sl(141);break;case 154:Sl(154);break;case 155:Sl(155);break;case 161:Sl(161);break;case 171:Sl(171);break;case 192:Sl(192);break;case 199:Sl(199);break;case 203:Sl(203);break;case 222:Sl(222);break;case 225:Sl(225);break;case 228:Sl(228);break;case 234:Sl(234);break;case 240:Sl(240);break;case 251:Sl(251);break;case 252:Sl(252);break;case 257:Sl(257);break;case 261:Sl(261);break;case 263:Sl(263);break;case 267:Sl(267);break;case 97:Sl(97);break;case 176:Sl(176);break;case 221:Sl(221);break;case 77:Sl(77);break;case 166:Sl(166);break;default:Sl(194)}Vl.endNonterminal(\"NCName\",Pl)}function qa(){switch(Hl){case 19:xl(19);break;case 70:xl(70);break;case 75:xl(75);break;case 79:xl(79);break;case 80:xl(80);break;case 84:xl(84);break;case 88:xl(88);break;case 89:xl(89);break;case 90:xl(90);break;case 94:xl(94);break;case 105:xl(105);break;case 109:xl(109);break;case 113:xl(113);break;case 118:xl(118);break;case 122:xl(122);break;case 123:xl(123);break;case 126:xl(126);break;case 128:xl(128);break;case 131:xl(131);break;case 137:xl(137);break;case 146:xl(146);break;case 148:xl(148);break;case 150:xl(150);break;case 151:xl(151);break;case 160:xl(160);break;case 162:xl(162);break;case 163:xl(163);break;case 164:xl(164);break;case 172:xl(172);break;case 174:xl(174);break;case 178:xl(178);break;case 180:xl(180);break;case 181:xl(181);break;case 186:xl(186);break;case 198:xl(198);break;case 200:xl(200);break;case 201:xl(201);break;case 220:xl(220);break;case 224:xl(224);break;case 236:xl(236);break;case 237:xl(237);break;case 248:xl(248);break;case 249:xl(249);break;case 254:xl(254);break;case 266:xl(266);break;case 270:xl(270);break;case 73:xl(73);break;case 74:xl(74);break;case 82:xl(82);break;case 93:xl(93);break;case 96:xl(96);break;case 103:xl(103);break;case 108:xl(108);break;case 110:xl(110);break;case 111:xl(111);break;case 112:xl(112);break;case 119:xl(119);break;case 120:xl(120);break;case 121:xl(121);break;case 124:xl(124);break;case 129:xl(129);break;case 134:xl(134);break;case 135:xl(135);break;case 136:xl(136);break;case 145:xl(145);break;case 152:xl(152);break;case 153:xl(153);break;case 159:xl(159);break;case 165:xl(165);break;case 170:xl(170);break;case 182:xl(182);break;case 184:xl(184);break;case 185:xl(185);break;case 191:xl(191);break;case 202:xl(202);break;case 206:xl(206);break;case 212:xl(212);break;case 213:xl(213);break;case 216:xl(216);break;case 218:xl(218);break;case 219:xl(219);break;case 226:xl(226);break;case 227:xl(227);break;case 229:xl(229);break;case 235:xl(235);break;case 243:xl(243);break;case 244:xl(244);break;case 250:xl(250);break;case 253:xl(253);break;case 256:xl(256);break;case 260:xl(260);break;case 262:xl(262);break;case 274:xl(274);break;case 72:xl(72);break;case 81:xl(81);break;case 83:xl(83);break;case 85:xl(85);break;case 86:xl(86);break;case 91:xl(91);break;case 98:xl(98);break;case 101:xl(101);break;case 102:xl(102);break;case 104:xl(104);break;case 106:xl(106);break;case 125:xl(125);break;case 132:xl(132);break;case 133:xl(133);break;case 141:xl(141);break;case 154:xl(154);break;case 155:xl(155);break;case 161:xl(161);break;case 171:xl(171);break;case 192:xl(192);break;case 199:xl(199);break;case 203:xl(203);break;case 222:xl(222);break;case 225:xl(225);break;case 228:xl(228);break;case 234:xl(234);break;case 240:xl(240);break;case 251:xl(251);break;case 252:xl(252);break;case 257:xl(257);break;case 261:xl(261);break;case 263:xl(263);break;case 267:xl(267);break;case 97:xl(97);break;case 176:xl(176);break;case 221:xl(221);break;case 77:xl(77);break;case 166:xl(166);break;default:xl(194)}}function Ra(){Vl.startNonterminal(\"MainModule\",Pl),l(),Nl(),Ua(),Vl.endNonterminal(\"MainModule\",Pl)}function Ua(){Vl.startNonterminal(\"Program\",Pl),$a(),Vl.endNonterminal(\"Program\",Pl)}function za(){Vl.startNonterminal(\"Statements\",Pl);for(;;){kl(278);switch(Hl){case 34:Ll(269);break;case 35:Ol(252);break;case 46:Ll(284);break;case 47:Ll(265);break;case 54:Ol(4);break;case 55:Ol(1);break;case 59:Ol(3);break;case 66:Ll(257);break;case 68:Ll(272);break;case 77:Ll(200);break;case 82:Ll(281);break;case 121:Ll(280);break;case 132:Ll(203);break;case 137:Ll(208);break;case 174:Ll(205);break;case 218:Ll(206);break;case 219:Ll(207);break;case 260:Ll(210);break;case 276:Ll(277);break;case 278:Ll(273);break;case 5:case 45:Ll(186);break;case 31:case 32:Ll(255);break;case 40:case 42:Ll(267);break;case 86:case 102:Ll(201);break;case 110:case 159:Ll(209);break;case 184:case 216:Ll(268);break;case 103:case 129:case 235:case 262:Ll(197);break;case 8:case 9:case 10:case 11:case 44:Ll(192);break;case 78:case 124:case 165:case 167:case 242:Ll(191);break;case 96:case 119:case 202:case 244:case 250:case 256:Ll(204);break;case 73:case 74:case 93:case 111:case 112:case 135:case 136:case 206:case 212:case 213:case 229:Ll(198);break;case 6:case 70:case 72:case 75:case 79:case 80:case 81:case 83:case 84:case 85:case 88:case 89:case 90:case 91:case 94:case 97:case 98:case 101:case 104:case 105:case 106:case 108:case 109:case 113:case 118:case 120:case 122:case 123:case 125:case 126:case 128:case 131:case 133:case 134:case 141:case 145:case 146:case 148:case 150:case 151:case 152:case 153:case 154:case 155:case 160:case 161:case 162:case 163:case 164:case 166:case 170:case 171:case 172:case 176:case 178:case 180:case 181:case 182:case 185:case 186:case 191:case 192:case 194:case 198:case 199:case 200:case 201:case 203:case 220:case 221:case 222:case 224:case 225:case 226:case 227:case 228:case 234:case 236:case 237:case 240:case 243:case 248:case 249:case 251:case 252:case 253:case 254:case 257:case 261:case 263:case 266:case 267:case 270:case 274:Ll(195);break;default:_l=Hl}if(_l!=25&&_l!=53&&_l!=282&&_l!=12805&&_l!=12806&&_l!=12808&&_l!=12809&&_l!=12810&&_l!=12811&&_l!=12844&&_l!=12845&&_l!=12846&&_l!=12870&&_l!=12872&&_l!=12873&&_l!=12874&&_l!=12875&&_l!=12877&&_l!=12878&&_l!=12879&&_l!=12880&&_l!=12881&&_l!=12882&&_l!=12883&&_l!=12884&&_l!=12885&&_l!=12886&&_l!=12888&&_l!=12889&&_l!=12890&&_l!=12891&&_l!=12893&&_l!=12894&&_l!=12896&&_l!=12897&&_l!=12898&&_l!=12901&&_l!=12902&&_l!=12903&&_l!=12904&&_l!=12905&&_l!=12906&&_l!=12908&&_l!=12909&&_l!=12910&&_l!=12911&&_l!=12912&&_l!=12913&&_l!=12918&&_l!=12919&&_l!=12920&&_l!=12921&&_l!=12922&&_l!=12923&&_l!=12924&&_l!=12925&&_l!=12926&&_l!=12928&&_l!=12929&&_l!=12931&&_l!=12932&&_l!=12933&&_l!=12934&&_l!=12935&&_l!=12936&&_l!=12937&&_l!=12941&&_l!=12945&&_l!=12946&&_l!=12948&&_l!=12950&&_l!=12951&&_l!=12952&&_l!=12953&&_l!=12954&&_l!=12955&&_l!=12959&&_l!=12960&&_l!=12961&&_l!=12962&&_l!=12963&&_l!=12964&&_l!=12965&&_l!=12966&&_l!=12967&&_l!=12970&&_l!=12971&&_l!=12972&&_l!=12974&&_l!=12976&&_l!=12978&&_l!=12980&&_l!=12981&&_l!=12982&&_l!=12984&&_l!=12985&&_l!=12986&&_l!=12991&&_l!=12992&&_l!=12994&&_l!=12998&&_l!=12999&&_l!=13e3&&_l!=13001&&_l!=13002&&_l!=13003&&_l!=13006&&_l!=13012&&_l!=13013&&_l!=13016&&_l!=13018&&_l!=13019&&_l!=13020&&_l!=13021&&_l!=13022&&_l!=13024&&_l!=13025&&_l!=13026&&_l!=13027&&_l!=13028&&_l!=13029&&_l!=13034&&_l!=13035&&_l!=13036&&_l!=13037&&_l!=13040&&_l!=13042&&_l!=13043&&_l!=13044&&_l!=13048&&_l!=13049&&_l!=13050&&_l!=13051&&_l!=13052&&_l!=13053&&_l!=13054&&_l!=13056&&_l!=13057&&_l!=13060&&_l!=13061&&_l!=13062&&_l!=13063&&_l!=13066&&_l!=13067&&_l!=13070&&_l!=13074&&_l!=16134&&_l!=20997&&_l!=20998&&_l!=21e3&&_l!=21001&&_l!=21002&&_l!=21003&&_l!=21036&&_l!=21037&&_l!=21038&&_l!=21062&&_l!=21064&&_l!=21065&&_l!=21066&&_l!=21067&&_l!=21069&&_l!=21070&&_l!=21071&&_l!=21072&&_l!=21073&&_l!=21074&&_l!=21075&&_l!=21076&&_l!=21077&&_l!=21078&&_l!=21080&&_l!=21081&&_l!=21082&&_l!=21083&&_l!=21085&&_l!=21086&&_l!=21088&&_l!=21089&&_l!=21090&&_l!=21093&&_l!=21094&&_l!=21095&&_l!=21096&&_l!=21097&&_l!=21098&&_l!=21100&&_l!=21101&&_l!=21102&&_l!=21103&&_l!=21104&&_l!=21105&&_l!=21110&&_l!=21111&&_l!=21112&&_l!=21113&&_l!=21114&&_l!=21115&&_l!=21116&&_l!=21117&&_l!=21118&&_l!=21120&&_l!=21121&&_l!=21123&&_l!=21124&&_l!=21125&&_l!=21126&&_l!=21127&&_l!=21128&&_l!=21129&&_l!=21133&&_l!=21137&&_l!=21138&&_l!=21140&&_l!=21142&&_l!=21143&&_l!=21144&&_l!=21145&&_l!=21146&&_l!=21147&&_l!=21151&&_l!=21152&&_l!=21153&&_l!=21154&&_l!=21155&&_l!=21156&&_l!=21157&&_l!=21158&&_l!=21159&&_l!=21162&&_l!=21163&&_l!=21164&&_l!=21166&&_l!=21168&&_l!=21170&&_l!=21172&&_l!=21173&&_l!=21174&&_l!=21176&&_l!=21177&&_l!=21178&&_l!=21183&&_l!=21184&&_l!=21186&&_l!=21190&&_l!=21191&&_l!=21192&&_l!=21193&&_l!=21194&&_l!=21195&&_l!=21198&&_l!=21204&&_l!=21205&&_l!=21208&&_l!=21210&&_l!=21211&&_l!=21212&&_l!=21213&&_l!=21214&&_l!=21216&&_l!=21217&&_l!=21218&&_l!=21219&&_l!=21220&&_l!=21221&&_l!=21226&&_l!=21227&&_l!=21228&&_l!=21229&&_l!=21232&&_l!=21234&&_l!=21235&&_l!=21236&&_l!=21240&&_l!=21241&&_l!=21242&&_l!=21243&&_l!=21244&&_l!=21245&&_l!=21246&&_l!=21248&&_l!=21249&&_l!=21252&&_l!=21253&&_l!=21254&&_l!=21255&&_l!=21258&&_l!=21259&&_l!=21262&&_l!=21266&&_l!=27141&&_l!=27142&&_l!=27144&&_l!=27145&&_l!=27146&&_l!=27147&&_l!=27180&&_l!=27181&&_l!=27182&&_l!=27206&&_l!=27208&&_l!=27209&&_l!=27210&&_l!=27211&&_l!=27213&&_l!=27214&&_l!=27215&&_l!=27216&&_l!=27217&&_l!=27218&&_l!=27219&&_l!=27220&&_l!=27221&&_l!=27222&&_l!=27224&&_l!=27225&&_l!=27226&&_l!=27227&&_l!=27229&&_l!=27230&&_l!=27232&&_l!=27233&&_l!=27234&&_l!=27237&&_l!=27238&&_l!=27239&&_l!=27240&&_l!=27241&&_l!=27242&&_l!=27244&&_l!=27245&&_l!=27246&&_l!=27247&&_l!=27248&&_l!=27249&&_l!=27254&&_l!=27255&&_l!=27256&&_l!=27257&&_l!=27258&&_l!=27259&&_l!=27260&&_l!=27261&&_l!=27262&&_l!=27264&&_l!=27265&&_l!=27267&&_l!=27268&&_l!=27269&&_l!=27270&&_l!=27271&&_l!=27272&&_l!=27273&&_l!=27277&&_l!=27281&&_l!=27282&&_l!=27284&&_l!=27286&&_l!=27287&&_l!=27288&&_l!=27289&&_l!=27290&&_l!=27291&&_l!=27295&&_l!=27296&&_l!=27297&&_l!=27298&&_l!=27299&&_l!=27300&&_l!=27301&&_l!=27302&&_l!=27303&&_l!=27306&&_l!=27307&&_l!=27308&&_l!=27310&&_l!=27312&&_l!=27314&&_l!=27316&&_l!=27317&&_l!=27318&&_l!=27320&&_l!=27321&&_l!=27322&&_l!=27327&&_l!=27328&&_l!=27330&&_l!=27334&&_l!=27335&&_l!=27336&&_l!=27337&&_l!=27338&&_l!=27339&&_l!=27342&&_l!=27348&&_l!=27349&&_l!=27352&&_l!=27354&&_l!=27355&&_l!=27356&&_l!=27357&&_l!=27358&&_l!=27360&&_l!=27361&&_l!=27362&&_l!=27363&&_l!=27364&&_l!=27365&&_l!=27370&&_l!=27371&&_l!=27372&&_l!=27373&&_l!=27376&&_l!=27378&&_l!=27379&&_l!=27380&&_l!=27384&&_l!=27385&&_l!=27386&&_l!=27387&&_l!=27388&&_l!=27389&&_l!=27390&&_l!=27392&&_l!=27393&&_l!=27396&&_l!=27397&&_l!=27398&&_l!=27399&&_l!=27402&&_l!=27403&&_l!=27406&&_l!=27410&&_l!=90198&&_l!=90214&&_l!=113284&&_l!=144389&&_l!=144390&&_l!=144392&&_l!=144393&&_l!=144394&&_l!=144395&&_l!=144428&&_l!=144429&&_l!=144430&&_l!=144454&&_l!=144456&&_l!=144457&&_l!=144458&&_l!=144459&&_l!=144461&&_l!=144462&&_l!=144463&&_l!=144464&&_l!=144465&&_l!=144466&&_l!=144467&&_l!=144468&&_l!=144469&&_l!=144470&&_l!=144472&&_l!=144473&&_l!=144474&&_l!=144475&&_l!=144477&&_l!=144478&&_l!=144480&&_l!=144481&&_l!=144482&&_l!=144485&&_l!=144486&&_l!=144487&&_l!=144488&&_l!=144489&&_l!=144490&&_l!=144492&&_l!=144493&&_l!=144494&&_l!=144495&&_l!=144496&&_l!=144497&&_l!=144502&&_l!=144503&&_l!=144504&&_l!=144505&&_l!=144506&&_l!=144507&&_l!=144508&&_l!=144509&&_l!=144510&&_l!=144512&&_l!=144513&&_l!=144515&&_l!=144516&&_l!=144517&&_l!=144518&&_l!=144519&&_l!=144520&&_l!=144521&&_l!=144525&&_l!=144529&&_l!=144530&&_l!=144532&&_l!=144534&&_l!=144535&&_l!=144536&&_l!=144537&&_l!=144538&&_l!=144539&&_l!=144543&&_l!=144544&&_l!=144545&&_l!=144546&&_l!=144547&&_l!=144548&&_l!=144549&&_l!=144550&&_l!=144551&&_l!=144554&&_l!=144555&&_l!=144556&&_l!=144558&&_l!=144560&&_l!=144562&&_l!=144564&&_l!=144565&&_l!=144566&&_l!=144568&&_l!=144569&&_l!=144570&&_l!=144575&&_l!=144576&&_l!=144578&&_l!=144582&&_l!=144583&&_l!=144584&&_l!=144585&&_l!=144586&&_l!=144587&&_l!=144590&&_l!=144596&&_l!=144597&&_l!=144600&&_l!=144602&&_l!=144603&&_l!=144604&&_l!=144605&&_l!=144606&&_l!=144608&&_l!=144609&&_l!=144610&&_l!=144611&&_l!=144612&&_l!=144613&&_l!=144618&&_l!=144619&&_l!=144620&&_l!=144621&&_l!=144624&&_l!=144626&&_l!=144627&&_l!=144628&&_l!=144632&&_l!=144633&&_l!=144634&&_l!=144635&&_l!=144636&&_l!=144637&&_l!=144638&&_l!=144640&&_l!=144641&&_l!=144644&&_l!=144645&&_l!=144646&&_l!=144647&&_l!=144650&&_l!=144651&&_l!=144654&&_l!=144658){_l=Kl(6,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Qa(),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(6,Pl,_l)}}if(_l!=-1&&_l!=53&&_l!=16134&&_l!=27141&&_l!=27142&&_l!=27144&&_l!=27145&&_l!=27146&&_l!=27147&&_l!=27180&&_l!=27181&&_l!=27182&&_l!=27206&&_l!=27208&&_l!=27209&&_l!=27210&&_l!=27211&&_l!=27213&&_l!=27214&&_l!=27215&&_l!=27216&&_l!=27217&&_l!=27218&&_l!=27219&&_l!=27220&&_l!=27221&&_l!=27222&&_l!=27224&&_l!=27225&&_l!=27226&&_l!=27227&&_l!=27229&&_l!=27230&&_l!=27232&&_l!=27233&&_l!=27234&&_l!=27237&&_l!=27238&&_l!=27239&&_l!=27240&&_l!=27241&&_l!=27242&&_l!=27244&&_l!=27245&&_l!=27246&&_l!=27247&&_l!=27248&&_l!=27249&&_l!=27254&&_l!=27255&&_l!=27256&&_l!=27257&&_l!=27258&&_l!=27259&&_l!=27260&&_l!=27261&&_l!=27262&&_l!=27264&&_l!=27265&&_l!=27267&&_l!=27268&&_l!=27269&&_l!=27270&&_l!=27271&&_l!=27272&&_l!=27273&&_l!=27277&&_l!=27281&&_l!=27282&&_l!=27284&&_l!=27286&&_l!=27287&&_l!=27288&&_l!=27289&&_l!=27290&&_l!=27291&&_l!=27295&&_l!=27296&&_l!=27297&&_l!=27298&&_l!=27299&&_l!=27300&&_l!=27301&&_l!=27302&&_l!=27303&&_l!=27306&&_l!=27307&&_l!=27308&&_l!=27310&&_l!=27312&&_l!=27314&&_l!=27316&&_l!=27317&&_l!=27318&&_l!=27320&&_l!=27321&&_l!=27322&&_l!=27327&&_l!=27328&&_l!=27330&&_l!=27334&&_l!=27335&&_l!=27336&&_l!=27337&&_l!=27338&&_l!=27339&&_l!=27342&&_l!=27348&&_l!=27349&&_l!=27352&&_l!=27354&&_l!=27355&&_l!=27356&&_l!=27357&&_l!=27358&&_l!=27360&&_l!=27361&&_l!=27362&&_l!=27363&&_l!=27364&&_l!=27365&&_l!=27370&&_l!=27371&&_l!=27372&&_l!=27373&&_l!=27376&&_l!=27378&&_l!=27379&&_l!=27380&&_l!=27384&&_l!=27385&&_l!=27386&&_l!=27387&&_l!=27388&&_l!=27389&&_l!=27390&&_l!=27392&&_l!=27393&&_l!=27396&&_l!=27397&&_l!=27398&&_l!=27399&&_l!=27402&&_l!=27403&&_l!=27406&&_l!=27410&&_l!=90198&&_l!=90214&&_l!=113284)break;Nl(),Ka()}Vl.endNonterminal(\"Statements\",Pl)}function Wa(){for(;;){kl(278);switch(Hl){case 34:Ll(269);break;case 35:Ol(252);break;case 46:Ll(284);break;case 47:Ll(265);break;case 54:Ol(4);break;case 55:Ol(1);break;case 59:Ol(3);break;case 66:Ll(257);break;case 68:Ll(272);break;case 77:Ll(200);break;case 82:Ll(281);break;case 121:Ll(280);break;case 132:Ll(203);break;case 137:Ll(208);break;case 174:Ll(205);break;case 218:Ll(206);break;case 219:Ll(207);break;case 260:Ll(210);break;case 276:Ll(277);break;case 278:Ll(273);break;case 5:case 45:Ll(186);break;case 31:case 32:Ll(255);break;case 40:case 42:Ll(267);break;case 86:case 102:Ll(201);break;case 110:case 159:Ll(209);break;case 184:case 216:Ll(268);break;case 103:case 129:case 235:case 262:Ll(197);break;case 8:case 9:case 10:case 11:case 44:Ll(192);break;case 78:case 124:case 165:case 167:case 242:Ll(191);break;case 96:case 119:case 202:case 244:case 250:case 256:Ll(204);break;case 73:case 74:case 93:case 111:case 112:case 135:case 136:case 206:case 212:case 213:case 229:Ll(198);break;case 6:case 70:case 72:case 75:case 79:case 80:case 81:case 83:case 84:case 85:case 88:case 89:case 90:case 91:case 94:case 97:case 98:case 101:case 104:case 105:case 106:case 108:case 109:case 113:case 118:case 120:case 122:case 123:case 125:case 126:case 128:case 131:case 133:case 134:case 141:case 145:case 146:case 148:case 150:case 151:case 152:case 153:case 154:case 155:case 160:case 161:case 162:case 163:case 164:case 166:case 170:case 171:case 172:case 176:case 178:case 180:case 181:case 182:case 185:case 186:case 191:case 192:case 194:case 198:case 199:case 200:case 201:case 203:case 220:case 221:case 222:case 224:case 225:case 226:case 227:case 228:case 234:case 236:case 237:case 240:case 243:case 248:case 249:case 251:case 252:case 253:case 254:case 257:case 261:case 263:case 266:case 267:case 270:case 274:Ll(195);break;default:_l=Hl}if(_l!=25&&_l!=53&&_l!=282&&_l!=12805&&_l!=12806&&_l!=12808&&_l!=12809&&_l!=12810&&_l!=12811&&_l!=12844&&_l!=12845&&_l!=12846&&_l!=12870&&_l!=12872&&_l!=12873&&_l!=12874&&_l!=12875&&_l!=12877&&_l!=12878&&_l!=12879&&_l!=12880&&_l!=12881&&_l!=12882&&_l!=12883&&_l!=12884&&_l!=12885&&_l!=12886&&_l!=12888&&_l!=12889&&_l!=12890&&_l!=12891&&_l!=12893&&_l!=12894&&_l!=12896&&_l!=12897&&_l!=12898&&_l!=12901&&_l!=12902&&_l!=12903&&_l!=12904&&_l!=12905&&_l!=12906&&_l!=12908&&_l!=12909&&_l!=12910&&_l!=12911&&_l!=12912&&_l!=12913&&_l!=12918&&_l!=12919&&_l!=12920&&_l!=12921&&_l!=12922&&_l!=12923&&_l!=12924&&_l!=12925&&_l!=12926&&_l!=12928&&_l!=12929&&_l!=12931&&_l!=12932&&_l!=12933&&_l!=12934&&_l!=12935&&_l!=12936&&_l!=12937&&_l!=12941&&_l!=12945&&_l!=12946&&_l!=12948&&_l!=12950&&_l!=12951&&_l!=12952&&_l!=12953&&_l!=12954&&_l!=12955&&_l!=12959&&_l!=12960&&_l!=12961&&_l!=12962&&_l!=12963&&_l!=12964&&_l!=12965&&_l!=12966&&_l!=12967&&_l!=12970&&_l!=12971&&_l!=12972&&_l!=12974&&_l!=12976&&_l!=12978&&_l!=12980&&_l!=12981&&_l!=12982&&_l!=12984&&_l!=12985&&_l!=12986&&_l!=12991&&_l!=12992&&_l!=12994&&_l!=12998&&_l!=12999&&_l!=13e3&&_l!=13001&&_l!=13002&&_l!=13003&&_l!=13006&&_l!=13012&&_l!=13013&&_l!=13016&&_l!=13018&&_l!=13019&&_l!=13020&&_l!=13021&&_l!=13022&&_l!=13024&&_l!=13025&&_l!=13026&&_l!=13027&&_l!=13028&&_l!=13029&&_l!=13034&&_l!=13035&&_l!=13036&&_l!=13037&&_l!=13040&&_l!=13042&&_l!=13043&&_l!=13044&&_l!=13048&&_l!=13049&&_l!=13050&&_l!=13051&&_l!=13052&&_l!=13053&&_l!=13054&&_l!=13056&&_l!=13057&&_l!=13060&&_l!=13061&&_l!=13062&&_l!=13063&&_l!=13066&&_l!=13067&&_l!=13070&&_l!=13074&&_l!=16134&&_l!=20997&&_l!=20998&&_l!=21e3&&_l!=21001&&_l!=21002&&_l!=21003&&_l!=21036&&_l!=21037&&_l!=21038&&_l!=21062&&_l!=21064&&_l!=21065&&_l!=21066&&_l!=21067&&_l!=21069&&_l!=21070&&_l!=21071&&_l!=21072&&_l!=21073&&_l!=21074&&_l!=21075&&_l!=21076&&_l!=21077&&_l!=21078&&_l!=21080&&_l!=21081&&_l!=21082&&_l!=21083&&_l!=21085&&_l!=21086&&_l!=21088&&_l!=21089&&_l!=21090&&_l!=21093&&_l!=21094&&_l!=21095&&_l!=21096&&_l!=21097&&_l!=21098&&_l!=21100&&_l!=21101&&_l!=21102&&_l!=21103&&_l!=21104&&_l!=21105&&_l!=21110&&_l!=21111&&_l!=21112&&_l!=21113&&_l!=21114&&_l!=21115&&_l!=21116&&_l!=21117&&_l!=21118&&_l!=21120&&_l!=21121&&_l!=21123&&_l!=21124&&_l!=21125&&_l!=21126&&_l!=21127&&_l!=21128&&_l!=21129&&_l!=21133&&_l!=21137&&_l!=21138&&_l!=21140&&_l!=21142&&_l!=21143&&_l!=21144&&_l!=21145&&_l!=21146&&_l!=21147&&_l!=21151&&_l!=21152&&_l!=21153&&_l!=21154&&_l!=21155&&_l!=21156&&_l!=21157&&_l!=21158&&_l!=21159&&_l!=21162&&_l!=21163&&_l!=21164&&_l!=21166&&_l!=21168&&_l!=21170&&_l!=21172&&_l!=21173&&_l!=21174&&_l!=21176&&_l!=21177&&_l!=21178&&_l!=21183&&_l!=21184&&_l!=21186&&_l!=21190&&_l!=21191&&_l!=21192&&_l!=21193&&_l!=21194&&_l!=21195&&_l!=21198&&_l!=21204&&_l!=21205&&_l!=21208&&_l!=21210&&_l!=21211&&_l!=21212&&_l!=21213&&_l!=21214&&_l!=21216&&_l!=21217&&_l!=21218&&_l!=21219&&_l!=21220&&_l!=21221&&_l!=21226&&_l!=21227&&_l!=21228&&_l!=21229&&_l!=21232&&_l!=21234&&_l!=21235&&_l!=21236&&_l!=21240&&_l!=21241&&_l!=21242&&_l!=21243&&_l!=21244&&_l!=21245&&_l!=21246&&_l!=21248&&_l!=21249&&_l!=21252&&_l!=21253&&_l!=21254&&_l!=21255&&_l!=21258&&_l!=21259&&_l!=21262&&_l!=21266&&_l!=27141&&_l!=27142&&_l!=27144&&_l!=27145&&_l!=27146&&_l!=27147&&_l!=27180&&_l!=27181&&_l!=27182&&_l!=27206&&_l!=27208&&_l!=27209&&_l!=27210&&_l!=27211&&_l!=27213&&_l!=27214&&_l!=27215&&_l!=27216&&_l!=27217&&_l!=27218&&_l!=27219&&_l!=27220&&_l!=27221&&_l!=27222&&_l!=27224&&_l!=27225&&_l!=27226&&_l!=27227&&_l!=27229&&_l!=27230&&_l!=27232&&_l!=27233&&_l!=27234&&_l!=27237&&_l!=27238&&_l!=27239&&_l!=27240&&_l!=27241&&_l!=27242&&_l!=27244&&_l!=27245&&_l!=27246&&_l!=27247&&_l!=27248&&_l!=27249&&_l!=27254&&_l!=27255&&_l!=27256&&_l!=27257&&_l!=27258&&_l!=27259&&_l!=27260&&_l!=27261&&_l!=27262&&_l!=27264&&_l!=27265&&_l!=27267&&_l!=27268&&_l!=27269&&_l!=27270&&_l!=27271&&_l!=27272&&_l!=27273&&_l!=27277&&_l!=27281&&_l!=27282&&_l!=27284&&_l!=27286&&_l!=27287&&_l!=27288&&_l!=27289&&_l!=27290&&_l!=27291&&_l!=27295&&_l!=27296&&_l!=27297&&_l!=27298&&_l!=27299&&_l!=27300&&_l!=27301&&_l!=27302&&_l!=27303&&_l!=27306&&_l!=27307&&_l!=27308&&_l!=27310&&_l!=27312&&_l!=27314&&_l!=27316&&_l!=27317&&_l!=27318&&_l!=27320&&_l!=27321&&_l!=27322&&_l!=27327&&_l!=27328&&_l!=27330&&_l!=27334&&_l!=27335&&_l!=27336&&_l!=27337&&_l!=27338&&_l!=27339&&_l!=27342&&_l!=27348&&_l!=27349&&_l!=27352&&_l!=27354&&_l!=27355&&_l!=27356&&_l!=27357&&_l!=27358&&_l!=27360&&_l!=27361&&_l!=27362&&_l!=27363&&_l!=27364&&_l!=27365&&_l!=27370&&_l!=27371&&_l!=27372&&_l!=27373&&_l!=27376&&_l!=27378&&_l!=27379&&_l!=27380&&_l!=27384&&_l!=27385&&_l!=27386&&_l!=27387&&_l!=27388&&_l!=27389&&_l!=27390&&_l!=27392&&_l!=27393&&_l!=27396&&_l!=27397&&_l!=27398&&_l!=27399&&_l!=27402&&_l!=27403&&_l!=27406&&_l!=27410&&_l!=90198&&_l!=90214&&_l!=113284&&_l!=144389&&_l!=144390&&_l!=144392&&_l!=144393&&_l!=144394&&_l!=144395&&_l!=144428&&_l!=144429&&_l!=144430&&_l!=144454&&_l!=144456&&_l!=144457&&_l!=144458&&_l!=144459&&_l!=144461&&_l!=144462&&_l!=144463&&_l!=144464&&_l!=144465&&_l!=144466&&_l!=144467&&_l!=144468&&_l!=144469&&_l!=144470&&_l!=144472&&_l!=144473&&_l!=144474&&_l!=144475&&_l!=144477&&_l!=144478&&_l!=144480&&_l!=144481&&_l!=144482&&_l!=144485&&_l!=144486&&_l!=144487&&_l!=144488&&_l!=144489&&_l!=144490&&_l!=144492&&_l!=144493&&_l!=144494&&_l!=144495&&_l!=144496&&_l!=144497&&_l!=144502&&_l!=144503&&_l!=144504&&_l!=144505&&_l!=144506&&_l!=144507&&_l!=144508&&_l!=144509&&_l!=144510&&_l!=144512&&_l!=144513&&_l!=144515&&_l!=144516&&_l!=144517&&_l!=144518&&_l!=144519&&_l!=144520&&_l!=144521&&_l!=144525&&_l!=144529&&_l!=144530&&_l!=144532&&_l!=144534&&_l!=144535&&_l!=144536&&_l!=144537&&_l!=144538&&_l!=144539&&_l!=144543&&_l!=144544&&_l!=144545&&_l!=144546&&_l!=144547&&_l!=144548&&_l!=144549&&_l!=144550&&_l!=144551&&_l!=144554&&_l!=144555&&_l!=144556&&_l!=144558&&_l!=144560&&_l!=144562&&_l!=144564&&_l!=144565&&_l!=144566&&_l!=144568&&_l!=144569&&_l!=144570&&_l!=144575&&_l!=144576&&_l!=144578&&_l!=144582&&_l!=144583&&_l!=144584&&_l!=144585&&_l!=144586&&_l!=144587&&_l!=144590&&_l!=144596&&_l!=144597&&_l!=144600&&_l!=144602&&_l!=144603&&_l!=144604&&_l!=144605&&_l!=144606&&_l!=144608&&_l!=144609&&_l!=144610&&_l!=144611&&_l!=144612&&_l!=144613&&_l!=144618&&_l!=144619&&_l!=144620&&_l!=144621&&_l!=144624&&_l!=144626&&_l!=144627&&_l!=144628&&_l!=144632&&_l!=144633&&_l!=144634&&_l!=144635&&_l!=144636&&_l!=144637&&_l!=144638&&_l!=144640&&_l!=144641&&_l!=144644&&_l!=144645&&_l!=144646&&_l!=144647&&_l!=144650&&_l!=144651&&_l!=144654&&_l!=144658){_l=Kl(6,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Qa(),Jl(6,t,-1);continue}catch(a){Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(6,t,-2);break}}}if(_l!=-1&&_l!=53&&_l!=16134&&_l!=27141&&_l!=27142&&_l!=27144&&_l!=27145&&_l!=27146&&_l!=27147&&_l!=27180&&_l!=27181&&_l!=27182&&_l!=27206&&_l!=27208&&_l!=27209&&_l!=27210&&_l!=27211&&_l!=27213&&_l!=27214&&_l!=27215&&_l!=27216&&_l!=27217&&_l!=27218&&_l!=27219&&_l!=27220&&_l!=27221&&_l!=27222&&_l!=27224&&_l!=27225&&_l!=27226&&_l!=27227&&_l!=27229&&_l!=27230&&_l!=27232&&_l!=27233&&_l!=27234&&_l!=27237&&_l!=27238&&_l!=27239&&_l!=27240&&_l!=27241&&_l!=27242&&_l!=27244&&_l!=27245&&_l!=27246&&_l!=27247&&_l!=27248&&_l!=27249&&_l!=27254&&_l!=27255&&_l!=27256&&_l!=27257&&_l!=27258&&_l!=27259&&_l!=27260&&_l!=27261&&_l!=27262&&_l!=27264&&_l!=27265&&_l!=27267&&_l!=27268&&_l!=27269&&_l!=27270&&_l!=27271&&_l!=27272&&_l!=27273&&_l!=27277&&_l!=27281&&_l!=27282&&_l!=27284&&_l!=27286&&_l!=27287&&_l!=27288&&_l!=27289&&_l!=27290&&_l!=27291&&_l!=27295&&_l!=27296&&_l!=27297&&_l!=27298&&_l!=27299&&_l!=27300&&_l!=27301&&_l!=27302&&_l!=27303&&_l!=27306&&_l!=27307&&_l!=27308&&_l!=27310&&_l!=27312&&_l!=27314&&_l!=27316&&_l!=27317&&_l!=27318&&_l!=27320&&_l!=27321&&_l!=27322&&_l!=27327&&_l!=27328&&_l!=27330&&_l!=27334&&_l!=27335&&_l!=27336&&_l!=27337&&_l!=27338&&_l!=27339&&_l!=27342&&_l!=27348&&_l!=27349&&_l!=27352&&_l!=27354&&_l!=27355&&_l!=27356&&_l!=27357&&_l!=27358&&_l!=27360&&_l!=27361&&_l!=27362&&_l!=27363&&_l!=27364&&_l!=27365&&_l!=27370&&_l!=27371&&_l!=27372&&_l!=27373&&_l!=27376&&_l!=27378&&_l!=27379&&_l!=27380&&_l!=27384&&_l!=27385&&_l!=27386&&_l!=27387&&_l!=27388&&_l!=27389&&_l!=27390&&_l!=27392&&_l!=27393&&_l!=27396&&_l!=27397&&_l!=27398&&_l!=27399&&_l!=27402&&_l!=27403&&_l!=27406&&_l!=27410&&_l!=90198&&_l!=90214&&_l!=113284)break;Qa()}}function Xa(){Vl.startNonterminal(\"StatementsAndExpr\",Pl),za(),Nl(),G(),Vl.endNonterminal(\"StatementsAndExpr\",Pl)}function Va(){Wa(),Y()}function $a(){Vl.startNonterminal(\"StatementsAndOptionalExpr\",Pl),za(),Hl!=25&&Hl!=282&&(Nl(),G()),Vl.endNonterminal(\"StatementsAndOptionalExpr\",Pl)}function Ja(){Wa(),Hl!=25&&Hl!=282&&Y()}function Ka(){Vl.startNonterminal(\"Statement\",Pl);switch(Hl){case 132:Ll(189);break;case 137:Ll(196);break;case 174:Ll(193);break;case 250:Ll(190);break;case 262:Ll(187);break;case 276:Ll(277);break;case 31:case 32:Ll(255);break;case 86:case 102:Ll(188);break;case 152:case 243:case 253:case 267:Ll(185);break;default:_l=Hl}if(_l==2836||_l==3103||_l==3104||_l==3348||_l==4372||_l==4884||_l==5396||_l==5908||_l==16148||_l==16660||_l==17675||_l==17684||_l==18196||_l==20756||_l==21780||_l==22804||_l==23316||_l==23828||_l==24340||_l==27412||_l==27924||_l==28436||_l==30484||_l==34068||_l==35092||_l==35871||_l==35872||_l==36116||_l==36895||_l==36896||_l==37140||_l==37407||_l==37408||_l==37652||_l==37919||_l==37920||_l==38164||_l==38431||_l==38432||_l==38676||_l==39455||_l==39456||_l==39700||_l==39967||_l==39968||_l==40212||_l==40479||_l==40480||_l==40724||_l==40991||_l==40992||_l==41236||_l==41503||_l==41504||_l==41748||_l==42015||_l==42016||_l==42260||_l==42527||_l==42528||_l==42772||_l==43039||_l==43040||_l==43284||_l==43551||_l==43552||_l==43796||_l==44063||_l==44064||_l==44308||_l==45087||_l==45088||_l==45332||_l==45599||_l==45600||_l==45844||_l==46111||_l==46112||_l==46356||_l==46623||_l==46624||_l==46868||_l==47647||_l==47648||_l==47892||_l==48159||_l==48160||_l==48404||_l==49183||_l==49184||_l==49428||_l==49695||_l==49696||_l==49940||_l==50207||_l==50208||_l==50452||_l==51743||_l==51744||_l==51988||_l==52255||_l==52256||_l==52500||_l==52767||_l==52768||_l==53012||_l==53279||_l==53280||_l==53524||_l==53791||_l==53792||_l==54036||_l==54303||_l==54304||_l==54548||_l==55327||_l==55328||_l==55572||_l==55839||_l==55840||_l==56084||_l==56351||_l==56352||_l==56596||_l==56863||_l==56864||_l==57108||_l==57375||_l==57376||_l==57620||_l==57887||_l==57888||_l==58132||_l==60447||_l==60448||_l==60692||_l==60959||_l==60960||_l==61204||_l==61471||_l==61472||_l==61716||_l==61983||_l==61984||_l==62228||_l==62495||_l==62496||_l==62740||_l==63007||_l==63008||_l==63252||_l==63519||_l==63520||_l==63764||_l==64031||_l==64032||_l==64276||_l==64543||_l==64544||_l==64788||_l==65567||_l==65568||_l==65812||_l==66079||_l==66080||_l==66324||_l==67103||_l==67104||_l==67348||_l==67615||_l==67616||_l==67860||_l==68127||_l==68128||_l==68372||_l==68639||_l==68640||_l==68884||_l==69151||_l==69152||_l==69396||_l==69663||_l==69664||_l==69908||_l==70175||_l==70176||_l==70420||_l==72223||_l==72224||_l==72468||_l==74271||_l==74272||_l==74516||_l==74783||_l==74784||_l==75028||_l==75807||_l==75808||_l==76052||_l==76831||_l==76832||_l==77076||_l==77343||_l==77344||_l==77588||_l==77855||_l==77856||_l==78100||_l==78367||_l==78368||_l==78612||_l==78879||_l==78880||_l==79124||_l==79391||_l==79392||_l==79636||_l==81439||_l==81440||_l==81684||_l==81951||_l==81952||_l==82196||_l==82463||_l==82464||_l==82708||_l==82975||_l==82976||_l==83220||_l==83487||_l==83488||_l==83732||_l==83999||_l==84e3||_l==84244||_l==84511||_l==84512||_l==84756||_l==85023||_l==85024||_l==85268||_l==85535||_l==85536||_l==85780||_l==87071||_l==87072||_l==87316||_l==87583||_l==87584||_l==87828||_l==88095||_l==88096||_l==88340||_l==89119||_l==89120||_l==89364||_l==90143||_l==90144||_l==90388||_l==91167||_l==91168||_l==91412||_l==92191||_l==92192||_l==92436||_l==92703||_l==92704||_l==92948||_l==93215||_l==93216||_l==93460||_l==94239||_l==94240||_l==94484||_l==94751||_l==94752||_l==94996||_l==95263||_l==95264||_l==95508||_l==97823||_l==97824||_l==98068||_l==98335||_l==98336||_l==98580||_l==99359||_l==99360||_l==99604||_l==101407||_l==101408||_l==101652||_l==101919||_l==101920||_l==102164||_l==102431||_l==102432||_l==102676||_l==102943||_l==102944||_l==103188||_l==103455||_l==103456||_l==103700||_l==103967||_l==103968||_l==104212||_l==105503||_l==105504||_l==105748||_l==108575||_l==108576||_l==108820||_l==109087||_l==109088||_l==109332||_l==110623||_l==110624||_l==110868||_l==111647||_l==111648||_l==111892||_l==112159||_l==112160||_l==112404||_l==112671||_l==112672||_l==112916||_l==113183||_l==113184||_l==113428||_l==113695||_l==113696||_l==113940||_l==114719||_l==114720||_l==114964||_l==115231||_l==115232||_l==115476||_l==115743||_l==115744||_l==115988||_l==116255||_l==116256||_l==116500||_l==116767||_l==116768||_l==117012||_l==117279||_l==117280||_l==117524||_l==119839||_l==119840||_l==120084||_l==120351||_l==120352||_l==120596||_l==120863||_l==120864||_l==121108||_l==121375||_l==121376||_l==121620||_l==122911||_l==122912||_l==123156||_l==123935||_l==123936||_l==124180||_l==124447||_l==124448||_l==124692||_l==124959||_l==124960||_l==125204||_l==127007||_l==127008||_l==127252||_l==127519||_l==127520||_l==127764||_l==128031||_l==128032||_l==128276||_l==128543||_l==128544||_l==128788||_l==129055||_l==129056||_l==129300||_l==129567||_l==129568||_l==129812||_l==130079||_l==130080||_l==130324||_l==131103||_l==131104||_l==131348||_l==131615||_l==131616||_l==131860||_l==133151||_l==133152||_l==133396||_l==133663||_l==133664||_l==133908||_l==134175||_l==134176||_l==134420||_l==134687||_l==134688||_l==134932||_l==136223||_l==136224||_l==136468||_l==136735||_l==136736||_l==136980||_l==138271||_l==138272||_l==138516||_l==140319||_l==140320||_l==140564||_l==141588||_l==142612||_l==144660){_l=Kl(7,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Ya(),_l=-1}catch(a){try{Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),ef(),_l=-2}catch(f){try{Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),nf(),_l=-3}catch(l){try{Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),kf(),_l=-12}catch(c){_l=-13}}}}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(7,Pl,_l)}}switch(_l){case-2:Za();break;case-3:tf();break;case 90198:rf();break;case 90214:of();break;case 113284:af();break;case 16009:case 16046:case 116910:case 119945:case 128649:lf();break;case 17560:df();break;case 17651:mf();break;case 141562:wf();break;case 17661:Sf();break;case-12:case 16134:Cf();break;case-13:Lf();break;case 53:Of();break;default:Ga()}Vl.endNonterminal(\"Statement\",Pl)}function Qa(){switch(Hl){case 132:Ll(189);break;case 137:Ll(196);break;case 174:Ll(193);break;case 250:Ll(190);break;case 262:Ll(187);break;case 276:Ll(277);break;case 31:case 32:Ll(255);break;case 86:case 102:Ll(188);break;case 152:case 243:case 253:case 267:Ll(185);break;default:_l=Hl}if(_l==2836||_l==3103||_l==3104||_l==3348||_l==4372||_l==4884||_l==5396||_l==5908||_l==16148||_l==16660||_l==17675||_l==17684||_l==18196||_l==20756||_l==21780||_l==22804||_l==23316||_l==23828||_l==24340||_l==27412||_l==27924||_l==28436||_l==30484||_l==34068||_l==35092||_l==35871||_l==35872||_l==36116||_l==36895||_l==36896||_l==37140||_l==37407||_l==37408||_l==37652||_l==37919||_l==37920||_l==38164||_l==38431||_l==38432||_l==38676||_l==39455||_l==39456||_l==39700||_l==39967||_l==39968||_l==40212||_l==40479||_l==40480||_l==40724||_l==40991||_l==40992||_l==41236||_l==41503||_l==41504||_l==41748||_l==42015||_l==42016||_l==42260||_l==42527||_l==42528||_l==42772||_l==43039||_l==43040||_l==43284||_l==43551||_l==43552||_l==43796||_l==44063||_l==44064||_l==44308||_l==45087||_l==45088||_l==45332||_l==45599||_l==45600||_l==45844||_l==46111||_l==46112||_l==46356||_l==46623||_l==46624||_l==46868||_l==47647||_l==47648||_l==47892||_l==48159||_l==48160||_l==48404||_l==49183||_l==49184||_l==49428||_l==49695||_l==49696||_l==49940||_l==50207||_l==50208||_l==50452||_l==51743||_l==51744||_l==51988||_l==52255||_l==52256||_l==52500||_l==52767||_l==52768||_l==53012||_l==53279||_l==53280||_l==53524||_l==53791||_l==53792||_l==54036||_l==54303||_l==54304||_l==54548||_l==55327||_l==55328||_l==55572||_l==55839||_l==55840||_l==56084||_l==56351||_l==56352||_l==56596||_l==56863||_l==56864||_l==57108||_l==57375||_l==57376||_l==57620||_l==57887||_l==57888||_l==58132||_l==60447||_l==60448||_l==60692||_l==60959||_l==60960||_l==61204||_l==61471||_l==61472||_l==61716||_l==61983||_l==61984||_l==62228||_l==62495||_l==62496||_l==62740||_l==63007||_l==63008||_l==63252||_l==63519||_l==63520||_l==63764||_l==64031||_l==64032||_l==64276||_l==64543||_l==64544||_l==64788||_l==65567||_l==65568||_l==65812||_l==66079||_l==66080||_l==66324||_l==67103||_l==67104||_l==67348||_l==67615||_l==67616||_l==67860||_l==68127||_l==68128||_l==68372||_l==68639||_l==68640||_l==68884||_l==69151||_l==69152||_l==69396||_l==69663||_l==69664||_l==69908||_l==70175||_l==70176||_l==70420||_l==72223||_l==72224||_l==72468||_l==74271||_l==74272||_l==74516||_l==74783||_l==74784||_l==75028||_l==75807||_l==75808||_l==76052||_l==76831||_l==76832||_l==77076||_l==77343||_l==77344||_l==77588||_l==77855||_l==77856||_l==78100||_l==78367||_l==78368||_l==78612||_l==78879||_l==78880||_l==79124||_l==79391||_l==79392||_l==79636||_l==81439||_l==81440||_l==81684||_l==81951||_l==81952||_l==82196||_l==82463||_l==82464||_l==82708||_l==82975||_l==82976||_l==83220||_l==83487||_l==83488||_l==83732||_l==83999||_l==84e3||_l==84244||_l==84511||_l==84512||_l==84756||_l==85023||_l==85024||_l==85268||_l==85535||_l==85536||_l==85780||_l==87071||_l==87072||_l==87316||_l==87583||_l==87584||_l==87828||_l==88095||_l==88096||_l==88340||_l==89119||_l==89120||_l==89364||_l==90143||_l==90144||_l==90388||_l==91167||_l==91168||_l==91412||_l==92191||_l==92192||_l==92436||_l==92703||_l==92704||_l==92948||_l==93215||_l==93216||_l==93460||_l==94239||_l==94240||_l==94484||_l==94751||_l==94752||_l==94996||_l==95263||_l==95264||_l==95508||_l==97823||_l==97824||_l==98068||_l==98335||_l==98336||_l==98580||_l==99359||_l==99360||_l==99604||_l==101407||_l==101408||_l==101652||_l==101919||_l==101920||_l==102164||_l==102431||_l==102432||_l==102676||_l==102943||_l==102944||_l==103188||_l==103455||_l==103456||_l==103700||_l==103967||_l==103968||_l==104212||_l==105503||_l==105504||_l==105748||_l==108575||_l==108576||_l==108820||_l==109087||_l==109088||_l==109332||_l==110623||_l==110624||_l==110868||_l==111647||_l==111648||_l==111892||_l==112159||_l==112160||_l==112404||_l==112671||_l==112672||_l==112916||_l==113183||_l==113184||_l==113428||_l==113695||_l==113696||_l==113940||_l==114719||_l==114720||_l==114964||_l==115231||_l==115232||_l==115476||_l==115743||_l==115744||_l==115988||_l==116255||_l==116256||_l==116500||_l==116767||_l==116768||_l==117012||_l==117279||_l==117280||_l==117524||_l==119839||_l==119840||_l==120084||_l==120351||_l==120352||_l==120596||_l==120863||_l==120864||_l==121108||_l==121375||_l==121376||_l==121620||_l==122911||_l==122912||_l==123156||_l==123935||_l==123936||_l==124180||_l==124447||_l==124448||_l==124692||_l==124959||_l==124960||_l==125204||_l==127007||_l==127008||_l==127252||_l==127519||_l==127520||_l==127764||_l==128031||_l==128032||_l==128276||_l==128543||_l==128544||_l==128788||_l==129055||_l==129056||_l==129300||_l==129567||_l==129568||_l==129812||_l==130079||_l==130080||_l==130324||_l==131103||_l==131104||_l==131348||_l==131615||_l==131616||_l==131860||_l==133151||_l==133152||_l==133396||_l==133663||_l==133664||_l==133908||_l==134175||_l==134176||_l==134420||_l==134687||_l==134688||_l==134932||_l==136223||_l==136224||_l==136468||_l==136735||_l==136736||_l==136980||_l==138271||_l==138272||_l==138516||_l==140319||_l==140320||_l==140564||_l==141588||_l==142612||_l==144660){_l=Kl(7,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Ya(),Jl(7,t,-1),_l=-15}catch(a){try{Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),ef(),Jl(7,t,-2),_l=-15}catch(f){try{Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),nf(),Jl(7,t,-3),_l=-15}catch(l){try{Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),kf(),Jl(7,t,-12),_l=-15}catch(c){_l=-13,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(7,t,-13)}}}}}}switch(_l){case-2:ef();break;case-3:nf();break;case 90198:sf();break;case 90214:uf();break;case 113284:ff();break;case 16009:case 16046:case 116910:case 119945:case 128649:cf();break;case 17560:vf();break;case 17651:gf();break;case 141562:Ef();break;case 17661:xf();break;case-12:case 16134:kf();break;case-13:Af();break;case 53:Mf();break;case-15:break;default:Ya()}}function Ga(){Vl.startNonterminal(\"ApplyStatement\",Pl),Pf(),Sl(53),Vl.endNonterminal(\"ApplyStatement\",Pl)}function Ya(){Hf(),xl(53)}function Za(){Vl.startNonterminal(\"AssignStatement\",Pl),Sl(31),kl(255),Nl(),hi(),kl(27),Sl(52),kl(267),Nl(),_f(),Sl(53),Vl.endNonterminal(\"AssignStatement\",Pl)}function ef(){xl(31),kl(255),pi(),kl(27),xl(52),kl(267),Df(),xl(53)}function tf(){Vl.startNonterminal(\"BlockStatement\",Pl),Sl(276),kl(277),Nl(),za(),Sl(282),Vl.endNonterminal(\"BlockStatement\",Pl)}function nf(){xl(276),kl(277),Wa(),xl(282)}function rf(){Vl.startNonterminal(\"BreakStatement\",Pl),Sl(86),kl(59),Sl(176),kl(28),Sl(53),Vl.endNonterminal(\"BreakStatement\",Pl)}function sf(){xl(86),kl(59),xl(176),kl(28),xl(53)}function of(){Vl.startNonterminal(\"ContinueStatement\",Pl),Sl(102),kl(59),Sl(176),kl(28),Sl(53),Vl.endNonterminal(\"ContinueStatement\",Pl)}function uf(){xl(102),kl(59),xl(176),kl(28),xl(53)}function af(){Vl.startNonterminal(\"ExitStatement\",Pl),Sl(132),kl(71),Sl(221),kl(267),Nl(),_f(),Sl(53),Vl.endNonterminal(\"ExitStatement\",Pl)}function ff(){xl(132),kl(71),xl(221),kl(267),Df(),xl(53)}function lf(){Vl.startNonterminal(\"FLWORStatement\",Pl),tt();for(;;){kl(173);if(Hl==220)break;Nl(),rt()}Nl(),hf(),Vl.endNonterminal(\"FLWORStatement\",Pl)}function cf(){nt();for(;;){kl(173);if(Hl==220)break;it()}pf()}function hf(){Vl.startNonterminal(\"ReturnStatement\",Pl),Sl(220),kl(270),Nl(),Ka(),Vl.endNonterminal(\"ReturnStatement\",Pl)}function pf(){xl(220),kl(270),Qa()}function df(){Vl.startNonterminal(\"IfStatement\",Pl),Sl(152),kl(22),Sl(34),kl(267),Nl(),G(),Sl(37),kl(77),Sl(245),kl(270),Nl(),Ka(),kl(48),Sl(122),kl(270),Nl(),Ka(),Vl.endNonterminal(\"IfStatement\",Pl)}function vf(){xl(152),kl(22),xl(34),kl(267),Y(),xl(37),kl(77),xl(245),kl(270),Qa(),kl(48),xl(122),kl(270),Qa()}function mf(){Vl.startNonterminal(\"SwitchStatement\",Pl),Sl(243),kl(22),Sl(34),kl(267),Nl(),G(),Sl(37);for(;;){kl(35),Nl(),yf(),kl(113);if(Hl!=88)break}Sl(109),kl(70),Sl(220),kl(270),Nl(),Ka(),Vl.endNonterminal(\"SwitchStatement\",Pl)}function gf(){xl(243),kl(22),xl(34),kl(267),Y(),xl(37);for(;;){kl(35),bf(),kl(113);if(Hl!=88)break}xl(109),kl(70),xl(220),kl(270),Qa()}function yf(){Vl.startNonterminal(\"SwitchCaseStatement\",Pl);for(;;){Sl(88),kl(267),Nl(),dn();if(Hl!=88)break}Sl(220),kl(270),Nl(),Ka(),Vl.endNonterminal(\"SwitchCaseStatement\",Pl)}function bf(){for(;;){xl(88),kl(267),vn();if(Hl!=88)break}xl(220),kl(270),Qa()}function wf(){Vl.startNonterminal(\"TryCatchStatement\",Pl),Sl(250),kl(87),Nl(),tf();for(;;){kl(36),Sl(91),kl(257),Nl(),_n(),Nl(),tf(),kl(278);switch(Hl){case 91:Ll(279);break;default:_l=Hl}if(_l==38491||_l==45659||_l==46171||_l==60507||_l==65627||_l==67163||_l==74843||_l==76891||_l==77403||_l==82011||_l==83035||_l==84059||_l==88155||_l==91227||_l==92251||_l==95323||_l==102491||_l==127067||_l==127579||_l==130139){_l=Kl(8,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{kl(36),xl(91),kl(257),Dn(),nf(),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(8,Pl,_l)}}if(_l!=-1&&_l!=2651&&_l!=3163&&_l!=35931&&_l!=36955&&_l!=37467&&_l!=37979&&_l!=39515&&_l!=40027&&_l!=40539&&_l!=41051&&_l!=41563&&_l!=42075&&_l!=42587&&_l!=43099&&_l!=43611&&_l!=44123&&_l!=45147&&_l!=46683&&_l!=47707&&_l!=48219&&_l!=49243&&_l!=49755&&_l!=50267&&_l!=51803&&_l!=52315&&_l!=52827&&_l!=53339&&_l!=53851&&_l!=54363&&_l!=55387&&_l!=55899&&_l!=56411&&_l!=56923&&_l!=57435&&_l!=57947&&_l!=61019&&_l!=61531&&_l!=62043&&_l!=62555&&_l!=63067&&_l!=63579&&_l!=64091&&_l!=64603&&_l!=66139&&_l!=67675&&_l!=68187&&_l!=68699&&_l!=69211&&_l!=69723&&_l!=70235&&_l!=72283&&_l!=74331&&_l!=75867&&_l!=77915&&_l!=78427&&_l!=78939&&_l!=79451&&_l!=81499&&_l!=82523&&_l!=83547&&_l!=84571&&_l!=85083&&_l!=85595&&_l!=87131&&_l!=87643&&_l!=89179&&_l!=90203&&_l!=92763&&_l!=93275&&_l!=94299&&_l!=94811&&_l!=97883&&_l!=98395&&_l!=99419&&_l!=101467&&_l!=101979&&_l!=103003&&_l!=103515&&_l!=104027&&_l!=105563&&_l!=108635&&_l!=109147&&_l!=110683&&_l!=111707&&_l!=112219&&_l!=112731&&_l!=113243&&_l!=113755&&_l!=114779&&_l!=115291&&_l!=115803&&_l!=116315&&_l!=116827&&_l!=117339&&_l!=119899&&_l!=120411&&_l!=120923&&_l!=121435&&_l!=122971&&_l!=123995&&_l!=124507&&_l!=125019&&_l!=128091&&_l!=128603&&_l!=129115&&_l!=129627&&_l!=131163&&_l!=131675&&_l!=133211&&_l!=133723&&_l!=134235&&_l!=134747&&_l!=136283&&_l!=136795&&_l!=138331&&_l!=140379)break}Vl.endNonterminal(\"TryCatchStatement\",Pl)}function Ef(){xl(250),kl(87),nf(),kl(36),xl(91),kl(257),Dn(),nf();for(;;){kl(278);switch(Hl){case 91:Ll(279);break;default:_l=Hl}if(_l==38491||_l==45659||_l==46171||_l==60507||_l==65627||_l==67163||_l==74843||_l==76891||_l==77403||_l==82011||_l==83035||_l==84059||_l==88155||_l==91227||_l==92251||_l==95323||_l==102491||_l==127067||_l==127579||_l==130139){_l=Kl(8,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{kl(36),xl(91),kl(257),Dn(),nf(),Jl(8,t,-1);continue}catch(a){Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(8,t,-2);break}}}if(_l!=-1&&_l!=2651&&_l!=3163&&_l!=35931&&_l!=36955&&_l!=37467&&_l!=37979&&_l!=39515&&_l!=40027&&_l!=40539&&_l!=41051&&_l!=41563&&_l!=42075&&_l!=42587&&_l!=43099&&_l!=43611&&_l!=44123&&_l!=45147&&_l!=46683&&_l!=47707&&_l!=48219&&_l!=49243&&_l!=49755&&_l!=50267&&_l!=51803&&_l!=52315&&_l!=52827&&_l!=53339&&_l!=53851&&_l!=54363&&_l!=55387&&_l!=55899&&_l!=56411&&_l!=56923&&_l!=57435&&_l!=57947&&_l!=61019&&_l!=61531&&_l!=62043&&_l!=62555&&_l!=63067&&_l!=63579&&_l!=64091&&_l!=64603&&_l!=66139&&_l!=67675&&_l!=68187&&_l!=68699&&_l!=69211&&_l!=69723&&_l!=70235&&_l!=72283&&_l!=74331&&_l!=75867&&_l!=77915&&_l!=78427&&_l!=78939&&_l!=79451&&_l!=81499&&_l!=82523&&_l!=83547&&_l!=84571&&_l!=85083&&_l!=85595&&_l!=87131&&_l!=87643&&_l!=89179&&_l!=90203&&_l!=92763&&_l!=93275&&_l!=94299&&_l!=94811&&_l!=97883&&_l!=98395&&_l!=99419&&_l!=101467&&_l!=101979&&_l!=103003&&_l!=103515&&_l!=104027&&_l!=105563&&_l!=108635&&_l!=109147&&_l!=110683&&_l!=111707&&_l!=112219&&_l!=112731&&_l!=113243&&_l!=113755&&_l!=114779&&_l!=115291&&_l!=115803&&_l!=116315&&_l!=116827&&_l!=117339&&_l!=119899&&_l!=120411&&_l!=120923&&_l!=121435&&_l!=122971&&_l!=123995&&_l!=124507&&_l!=125019&&_l!=128091&&_l!=128603&&_l!=129115&&_l!=129627&&_l!=131163&&_l!=131675&&_l!=133211&&_l!=133723&&_l!=134235&&_l!=134747&&_l!=136283&&_l!=136795&&_l!=138331&&_l!=140379)break;kl(36),xl(91),kl(257),Dn(),nf()}}function Sf(){Vl.startNonterminal(\"TypeswitchStatement\",Pl),Sl(253),kl(22),Sl(34),kl(267),Nl(),G(),Sl(37);for(;;){kl(35),Nl(),Tf(),kl(113);if(Hl!=88)break}Sl(109),kl(95),Hl==31&&(Sl(31),kl(255),Nl(),hi()),kl(70),Sl(220),kl(270),Nl(),Ka(),Vl.endNonterminal(\"TypeswitchStatement\",Pl)}function xf(){xl(253),kl(22),xl(34),kl(267),Y(),xl(37);for(;;){kl(35),Nf(),kl(113);if(Hl!=88)break}xl(109),kl(95),Hl==31&&(xl(31),kl(255),pi()),kl(70),xl(220),kl(270),Qa()}function Tf(){Vl.startNonterminal(\"CaseStatement\",Pl),Sl(88),kl(262),Hl==31&&(Sl(31),kl(255),Nl(),hi(),kl(30),Sl(79)),kl(260),Nl(),ms(),kl(70),Sl(220),kl(270),Nl(),Ka(),Vl.endNonterminal(\"CaseStatement\",Pl)}function Nf(){xl(88),kl(262),Hl==31&&(xl(31),kl(255),pi(),kl(30),xl(79)),kl(260),gs(),kl(70),xl(220),kl(270),Qa()}function Cf(){Vl.startNonterminal(\"VarDeclStatement\",Pl);for(;;){kl(98);if(Hl!=32)break;Nl(),B()}Sl(262),kl(21),Sl(31),kl(255),Nl(),hi(),kl(157),Hl==79&&(Nl(),ds()),kl(145),Hl==52&&(Sl(52),kl(267),Nl(),_f());for(;;){if(Hl!=41)break;Sl(41),kl(21),Sl(31),kl(255),Nl(),hi(),kl(157),Hl==79&&(Nl(),ds()),kl(145),Hl==52&&(Sl(52),kl(267),Nl(),_f())}Sl(53),Vl.endNonterminal(\"VarDeclStatement\",Pl)}function kf(){for(;;){kl(98);if(Hl!=32)break;j()}xl(262),kl(21),xl(31),kl(255),pi(),kl(157),Hl==79&&vs(),kl(145),Hl==52&&(xl(52),kl(267),Df());for(;;){if(Hl!=41)break;xl(41),kl(21),xl(31),kl(255),pi(),kl(157),Hl==79&&vs(),kl(145),Hl==52&&(xl(52),kl(267),Df())}xl(53)}function Lf(){Vl.startNonterminal(\"WhileStatement\",Pl),Sl(267),kl(22),Sl(34),kl(267),Nl(),G(),Sl(37),kl(270),Nl(),Ka(),Vl.endNonterminal(\"WhileStatement\",Pl)}function Af(){xl(267),kl(22),xl(34),kl(267),Y(),xl(37),kl(270),Qa()}function Of(){Vl.startNonterminal(\"VoidStatement\",Pl),Sl(53),Vl.endNonterminal(\"VoidStatement\",Pl)}function Mf(){xl(53)}function _f(){Vl.startNonterminal(\"ExprSingle\",Pl);switch(Hl){case 137:Ll(236);break;case 174:Ll(233);break;case 250:Ll(232);break;case 152:case 243:case 253:Ll(229);break;default:_l=Hl}switch(_l){case 16009:case 16046:case 116910:case 119945:case 128649:Z();break;case 17560:Sn();break;case 17651:ln();break;case 141562:Tn();break;case 17661:mn();break;default:Pf()}Vl.endNonterminal(\"ExprSingle\",Pl)}function Df(){switch(Hl){case 137:Ll(236);break;case 174:Ll(233);break;case 250:Ll(232);break;case 152:case 243:case 253:Ll(229);break;default:_l=Hl}switch(_l){case 16009:case 16046:case 116910:case 119945:case 128649:et();break;case 17560:xn();break;case 17651:cn();break;case 141562:Nn();break;case 17661:gn();break;default:Hf()}}function Pf(){Vl.startNonterminal(\"ExprSimple\",Pl);switch(Hl){case 77:Ll(231);break;case 218:Ll(234);break;case 219:Ll(235);break;case 110:case 159:Ll(237);break;case 103:case 129:case 235:Ll(230);break;default:_l=Hl}if(_l==133851){_l=Kl(9,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Ho(),_l=-6}catch(a){_l=-11}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(9,Pl,_l)}}switch(_l){case 16001:case 16107:on();break;case 97951:case 98463:Oo();break;case 97902:case 98414:_o();break;case 98010:Bo();break;case-6:case 98011:Po();break;case 15975:Wo();break;case 85102:Bf();break;case 85151:Ff();break;case 85210:qf();break;case-11:Uf();break;case 85069:Wf();break;default:Pn()}Vl.endNonterminal(\"ExprSimple\",Pl)}function Hf(){switch(Hl){case 77:Ll(231);break;case 218:Ll(234);break;case 219:Ll(235);break;case 110:case 159:Ll(237);break;case 103:case 129:case 235:Ll(230);break;default:_l=Hl}if(_l==133851){_l=Kl(9,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{Ho(),Jl(9,t,-6),_l=-13}catch(a){_l=-11,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(9,t,-11)}}}switch(_l){case 16001:case 16107:un();break;case 97951:case 98463:Mo();break;case 97902:case 98414:Do();break;case 98010:jo();break;case-6:case 98011:Ho();break;case 15975:Xo();break;case 85102:jf();break;case 85151:If();break;case 85210:Rf();break;case-11:zf();break;case 85069:Xf();break;case-13:break;default:Hn()}}function Bf(){Vl.startNonterminal(\"JSONDeleteExpr\",Pl),Sl(110),kl(56),Sl(166),kl(264),Nl(),Yr(),Vl.endNonterminal(\"JSONDeleteExpr\",Pl)}function jf(){xl(110),kl(56),xl(166),kl(264),Zr()}function Ff(){Vl.startNonterminal(\"JSONInsertExpr\",Pl);switch(Hl){case 159:Ll(56);break;default:_l=Hl}_l=Kl(10,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{xl(159),kl(56),xl(166),kl(267),Df(),xl(163),kl(267),Df();switch(Hl){case 81:Ll(69);break;default:_l=Hl}if(_l==108113){_l=Kl(11,Pl);if(_l==0){var a=Dl,f=Pl,l=Hl,c=Bl,h=jl,p=Fl,d=Il,v=ql;try{xl(81),kl(69),xl(211),kl(267),Df(),Jl(11,f,-1)}catch(m){Dl=a,Pl=f,Hl=l,Hl==0?Zl=f:(Bl=c,jl=h,Fl=p,Fl==0?Zl=h:(Il=d,ql=v,Zl=v)),Jl(11,f,-2)}_l=-2}}_l==-1&&(xl(81),kl(69),xl(211),kl(267),Df()),_l=-1}catch(g){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(10,Pl,_l)}switch(_l){case-1:Sl(159),kl(56),Sl(166),kl(267),Nl(),_f(),Sl(163),kl(267),Nl(),_f();switch(Hl){case 81:Ll(69);break;default:_l=Hl}if(_l==108113){_l=Kl(11,Pl);if(_l==0){var a=Dl,f=Pl,l=Hl,c=Bl,h=jl,p=Fl,d=Il,v=ql;try{xl(81),kl(69),xl(211),kl(267),Df(),_l=-1}catch(m){_l=-2}Dl=a,Pl=f,Hl=l,Hl==0?Zl=f:(Bl=c,jl=h,Fl=p,Fl==0?Zl=h:(Il=d,ql=v,Zl=v)),Jl(11,Pl,_l)}}_l==-1&&(Sl(81),kl(69),Sl(211),kl(267),Nl(),_f());break;default:Sl(159),kl(56),Sl(166),kl(267),Nl(),hl(),Sl(163),kl(267),Nl(),_f()}Vl.endNonterminal(\"JSONInsertExpr\",Pl)}function If(){switch(Hl){case 159:Ll(56);break;default:_l=Hl}_l=Kl(10,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{xl(159),kl(56),xl(166),kl(267),Df(),xl(163),kl(267),Df();switch(Hl){case 81:Ll(69);break;default:_l=Hl}if(_l==108113){_l=Kl(11,Pl);if(_l==0){var a=Dl,f=Pl,l=Hl,c=Bl,h=jl,p=Fl,d=Il,v=ql;try{xl(81),kl(69),xl(211),kl(267),Df(),Jl(11,f,-1)}catch(m){Dl=a,Pl=f,Hl=l,Hl==0?Zl=f:(Bl=c,jl=h,Fl=p,Fl==0?Zl=h:(Il=d,ql=v,Zl=v)),Jl(11,f,-2)}_l=-2}}_l==-1&&(xl(81),kl(69),xl(211),kl(267),Df()),Jl(10,t,-1),_l=-3}catch(g){_l=-2,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(10,t,-2)}}switch(_l){case-1:xl(159),kl(56),xl(166),kl(267),Df(),xl(163),kl(267),Df();switch(Hl){case 81:Ll(69);break;default:_l=Hl}if(_l==108113){_l=Kl(11,Pl);if(_l==0){var a=Dl,f=Pl,l=Hl,c=Bl,h=jl,p=Fl,d=Il,v=ql;try{xl(81),kl(69),xl(211),kl(267),Df(),Jl(11,f,-1)}catch(m){Dl=a,Pl=f,Hl=l,Hl==0?Zl=f:(Bl=c,jl=h,Fl=p,Fl==0?Zl=h:(Il=d,ql=v,Zl=v)),Jl(11,f,-2)}_l=-2}}_l==-1&&(xl(81),kl(69),xl(211),kl(267),Df());break;case-3:break;default:xl(159),kl(56),xl(166),kl(267),pl(),xl(163),kl(267),Df()}}function qf(){Vl.startNonterminal(\"JSONRenameExpr\",Pl),Sl(218),kl(56),Sl(166),kl(264),Nl(),Yr(),Sl(79),kl(267),Nl(),_f(),Vl.endNonterminal(\"JSONRenameExpr\",Pl)}function Rf(){xl(218),kl(56),xl(166),kl(264),Zr(),xl(79),kl(267),Df()}function Uf(){Vl.startNonterminal(\"JSONReplaceExpr\",Pl),Sl(219),kl(82),Sl(261),kl(64),Sl(196),kl(56),Sl(166),kl(264),Nl(),Yr(),Sl(270),kl(267),Nl(),_f(),Vl.endNonterminal(\"JSONReplaceExpr\",Pl)}function zf(){xl(219),kl(82),xl(261),kl(64),xl(196),kl(56),xl(166),kl(264),Zr(),xl(270),kl(267),Df()}function Wf(){Vl.startNonterminal(\"JSONAppendExpr\",Pl),Sl(77),kl(56),Sl(166),kl(267),Nl(),_f(),Sl(163),kl(267),Nl(),_f(),Vl.endNonterminal(\"JSONAppendExpr\",Pl)}function Xf(){xl(77),kl(56),xl(166),kl(267),Df(),xl(163),kl(267),Df()}function Vf(){Vl.startNonterminal(\"CommonContent\",Pl);switch(Hl){case 12:Sl(12);break;case 23:Sl(23);break;case 277:Sl(277);break;case 283:Sl(283);break;default:yl()}Vl.endNonterminal(\"CommonContent\",Pl)}function $f(){switch(Hl){case 12:xl(12);break;case 23:xl(23);break;case 277:xl(277);break;case 283:xl(283);break;default:bl()}}function Jf(){Vl.startNonterminal(\"ContentExpr\",Pl),Xa(),Vl.endNonterminal(\"ContentExpr\",Pl)}function Kf(){Va()}function Qf(){Vl.startNonterminal(\"CompDocConstructor\",Pl),Sl(119),kl(87),Nl(),yl(),Vl.endNonterminal(\"CompDocConstructor\",Pl)}function Gf(){xl(119),kl(87),bl()}function Yf(){Vl.startNonterminal(\"CompAttrConstructor\",Pl),Sl(82),kl(258);switch(Hl){case 276:Sl(276),kl(267),Nl(),G(),Sl(282);break;default:Nl(),Ha()}kl(87);switch(Hl){case 276:Ll(277);break;default:_l=Hl}if(_l==144660){_l=Kl(12,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{xl(276),kl(88),xl(282),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(12,Pl,_l)}}switch(_l){case-1:Sl(276),kl(88),Sl(282);break;default:Nl(),yl()}Vl.endNonterminal(\"CompAttrConstructor\",Pl)}function Zf(){xl(82),kl(258);switch(Hl){case 276:xl(276),kl(267),Y(),xl(282);break;default:Ba()}kl(87);switch(Hl){case 276:Ll(277);break;default:_l=Hl}if(_l==144660){_l=Kl(12,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{xl(276),kl(88),xl(282),Jl(12,t,-1),_l=-3}catch(a){_l=-2,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(12,t,-2)}}}switch(_l){case-1:xl(276),kl(88),xl(282);break;case-3:break;default:bl()}}function el(){Vl.startNonterminal(\"CompPIConstructor\",Pl),Sl(216),kl(251);switch(Hl){case 276:Sl(276),kl(267),Nl(),G(),Sl(282);break;default:Nl(),Ia()}kl(87);switch(Hl){case 276:Ll(277);break;default:_l=Hl}if(_l==144660){_l=Kl(13,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{xl(276),kl(88),xl(282),_l=-1}catch(a){_l=-2}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(13,Pl,_l)}}switch(_l){case-1:Sl(276),kl(88),Sl(282);break;default:Nl(),yl()}Vl.endNonterminal(\"CompPIConstructor\",Pl)}function tl(){xl(216),kl(251);switch(Hl){case 276:xl(276),kl(267),Y(),xl(282);break;default:qa()}kl(87);switch(Hl){case 276:Ll(277);break;default:_l=Hl}if(_l==144660){_l=Kl(13,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{xl(276),kl(88),xl(282),Jl(13,t,-1),_l=-3}catch(a){_l=-2,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(13,t,-2)}}}switch(_l){case-1:xl(276),kl(88),xl(282);break;case-3:break;default:bl()}}function nl(){Vl.startNonterminal(\"CompCommentConstructor\",Pl),Sl(96),kl(87),Nl(),yl(),Vl.endNonterminal(\"CompCommentConstructor\",Pl)}function rl(){xl(96),kl(87),bl()}function il(){Vl.startNonterminal(\"CompTextConstructor\",Pl),Sl(244),kl(87),Nl(),yl(),Vl.endNonterminal(\"CompTextConstructor\",Pl)}function sl(){xl(244),kl(87),bl()}function ol(){Vl.startNonterminal(\"PrimaryExpr\",Pl);switch(Hl){case 184:Ll(256);break;case 216:Ll(254);break;case 276:Ll(277);break;case 82:case 121:Ll(259);break;case 96:case 244:Ll(93);break;case 119:case 202:case 256:Ll(139);break;case 6:case 70:case 72:case 73:case 74:case 75:case 77:case 79:case 80:case 81:case 83:case 84:case 85:case 86:case 88:case 89:case 90:case 91:case 93:case 94:case 97:case 98:case 101:case 102:case 103:case 104:case 105:case 106:case 108:case 109:case 110:case 111:case 112:case 113:case 118:case 122:case 123:case 125:case 126:case 128:case 129:case 131:case 132:case 133:case 134:case 135:case 136:case 137:case 141:case 146:case 148:case 150:case 151:case 153:case 154:case 155:case 159:case 160:case 161:case 162:case 163:case 164:case 166:case 170:case 171:case 172:case 174:case 176:case 178:case 180:case 181:case 182:case 186:case 192:case 194:case 198:case 199:case 200:case 201:case 203:case 206:case 212:case 213:case 218:case 219:case 220:case 221:case 222:case 224:case 225:case 228:case 229:case 234:case 235:case 236:case 237:case 240:case 248:case 249:case 250:case 251:case 252:case 254:case 257:case 260:case 261:case 262:case 263:case 266:case 267:case 270:case 274:Ll(92);break;default:_l=Hl}if(_l==2836||_l==3348||_l==4372||_l==4884||_l==5396||_l==5908||_l==16148||_l==16660||_l==17684||_l==18196||_l==20756||_l==21780||_l==22804||_l==23316||_l==23828||_l==24340||_l==27924||_l==28436||_l==30484||_l==34068||_l==35092||_l==36116||_l==37140||_l==37652||_l==38164||_l==38676||_l==39700||_l==40212||_l==40724||_l==41236||_l==41748||_l==42260||_l==42772||_l==43284||_l==43796||_l==44308||_l==45332||_l==45844||_l==46356||_l==46868||_l==47892||_l==48404||_l==49428||_l==49940||_l==50452||_l==51988||_l==52500||_l==53012||_l==53524||_l==54036||_l==54548||_l==55572||_l==56084||_l==56596||_l==57108||_l==57620||_l==58132||_l==60692||_l==61204||_l==61716||_l==62228||_l==62740||_l==63252||_l==63764||_l==64276||_l==64788||_l==65812||_l==66324||_l==67348||_l==67860||_l==68372||_l==68884||_l==69396||_l==69908||_l==70420||_l==72468||_l==74516||_l==75028||_l==76052||_l==77076||_l==77588||_l==78100||_l==78612||_l==79124||_l==79636||_l==81684||_l==82196||_l==82708||_l==83220||_l==83732||_l==84244||_l==84756||_l==85268||_l==85780||_l==87316||_l==87828||_l==88340||_l==89364||_l==90388||_l==91412||_l==92436||_l==92948||_l==93460||_l==94484||_l==94996||_l==95508||_l==98068||_l==98580||_l==99604||_l==101652||_l==102164||_l==102676||_l==103188||_l==103700||_l==104212||_l==105748||_l==108820||_l==109332||_l==110868||_l==111892||_l==112404||_l==112916||_l==113428||_l==113940||_l==114964||_l==115476||_l==115988||_l==116500||_l==117012||_l==117524||_l==120084||_l==120596||_l==121108||_l==121620||_l==123156||_l==124180||_l==124692||_l==125204||_l==127252||_l==127764||_l==128276||_l==128788||_l==129300||_l==129812||_l==130324||_l==131348||_l==131860||_l==133396||_l==133908||_l==134420||_l==134932||_l==136468||_l==136980||_l==138516||_l==140564||_l==141588||_l==142612||_l==144660){_l=Kl(14,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{bl(),_l=-10}catch(a){_l=-11}Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(14,Pl,_l)}}switch(_l){case 8:case 9:case 10:case 11:oi();break;case 31:li();break;case 34:di();break;case 44:mi();break;case 17414:case 17478:case 17480:case 17481:case 17482:case 17483:case 17485:case 17487:case 17488:case 17489:case 17491:case 17492:case 17493:case 17494:case 17496:case 17497:case 17498:case 17499:case 17501:case 17502:case 17505:case 17506:case 17509:case 17510:case 17511:case 17512:case 17513:case 17514:case 17516:case 17517:case 17518:case 17519:case 17520:case 17521:case 17526:case 17527:case 17530:case 17531:case 17533:case 17534:case 17536:case 17537:case 17539:case 17540:case 17541:case 17542:case 17543:case 17544:case 17545:case 17549:case 17554:case 17556:case 17558:case 17559:case 17561:case 17562:case 17563:case 17567:case 17568:case 17569:case 17570:case 17571:case 17572:case 17574:case 17578:case 17579:case 17580:case 17582:case 17584:case 17586:case 17588:case 17589:case 17590:case 17592:case 17594:case 17600:case 17602:case 17606:case 17607:case 17608:case 17609:case 17610:case 17611:case 17614:case 17620:case 17621:case 17626:case 17627:case 17628:case 17629:case 17630:case 17632:case 17633:case 17636:case 17637:case 17642:case 17643:case 17644:case 17645:case 17648:case 17656:case 17657:case 17658:case 17659:case 17660:case 17662:case 17664:case 17665:case 17668:case 17669:case 17670:case 17671:case 17674:case 17675:case 17678:case 17682:Si();break;case 141514:yi();break;case 141568:wi();break;case 32:case 78:case 120:case 124:case 145:case 152:case 165:case 167:case 185:case 191:case 226:case 227:case 242:case 243:case 253:case 14854:case 14918:case 14920:case 14921:case 14922:case 14923:case 14925:case 14927:case 14928:case 14929:case 14930:case 14931:case 14932:case 14933:case 14934:case 14936:case 14937:case 14938:case 14939:case 14941:case 14942:case 14944:case 14945:case 14946:case 14949:case 14950:case 14951:case 14952:case 14953:case 14954:case 14956:case 14957:case 14958:case 14959:case 14960:case 14961:case 14966:case 14967:case 14969:case 14970:case 14971:case 14973:case 14974:case 14976:case 14977:case 14979:case 14980:case 14981:case 14982:case 14983:case 14984:case 14985:case 14989:case 14994:case 14996:case 14998:case 14999:case 15001:case 15002:case 15003:case 15007:case 15008:case 15009:case 15010:case 15011:case 15012:case 15014:case 15018:case 15019:case 15020:case 15022:case 15024:case 15026:case 15028:case 15029:case 15030:case 15032:case 15034:case 15040:case 15042:case 15046:case 15047:case 15048:case 15049:case 15050:case 15051:case 15054:case 15060:case 15061:case 15064:case 15066:case 15067:case 15068:case 15069:case 15070:case 15072:case 15073:case 15076:case 15077:case 15082:case 15083:case 15084:case 15085:case 15088:case 15092:case 15096:case 15097:case 15098:case 15099:case 15100:case 15102:case 15104:case 15105:case 15108:case 15109:case 15110:case 15111:case 15114:case 15115:case 15118:case 15122:os();break;case-10:case 27412:yl();break;case-11:ll();break;case 68:ml();break;case 278:al();break;default:Li()}Vl.endNonterminal(\"PrimaryExpr\",Pl)}function ul(){switch(Hl){case 184:Ll(256);break;case 216:Ll(254);break;case 276:Ll(277);break;case 82:case 121:Ll(259);break;case 96:case 244:Ll(93);break;case 119:case 202:case 256:Ll(139);break;case 6:case 70:case 72:case 73:case 74:case 75:case 77:case 79:case 80:case 81:case 83:case 84:case 85:case 86:case 88:case 89:case 90:case 91:case 93:case 94:case 97:case 98:case 101:case 102:case 103:case 104:case 105:case 106:case 108:case 109:case 110:case 111:case 112:case 113:case 118:case 122:case 123:case 125:case 126:case 128:case 129:case 131:case 132:case 133:case 134:case 135:case 136:case 137:case 141:case 146:case 148:case 150:case 151:case 153:case 154:case 155:case 159:case 160:case 161:case 162:case 163:case 164:case 166:case 170:case 171:case 172:case 174:case 176:case 178:case 180:case 181:case 182:case 186:case 192:case 194:case 198:case 199:case 200:case 201:case 203:case 206:case 212:case 213:case 218:case 219:case 220:case 221:case 222:case 224:case 225:case 228:case 229:case 234:case 235:case 236:case 237:case 240:case 248:case 249:case 250:case 251:case 252:case 254:case 257:case 260:case 261:case 262:case 263:case 266:case 267:case 270:case 274:Ll(92);break;default:_l=Hl}if(_l==2836||_l==3348||_l==4372||_l==4884||_l==5396||_l==5908||_l==16148||_l==16660||_l==17684||_l==18196||_l==20756||_l==21780||_l==22804||_l==23316||_l==23828||_l==24340||_l==27924||_l==28436||_l==30484||_l==34068||_l==35092||_l==36116||_l==37140||_l==37652||_l==38164||_l==38676||_l==39700||_l==40212||_l==40724||_l==41236||_l==41748||_l==42260||_l==42772||_l==43284||_l==43796||_l==44308||_l==45332||_l==45844||_l==46356||_l==46868||_l==47892||_l==48404||_l==49428||_l==49940||_l==50452||_l==51988||_l==52500||_l==53012||_l==53524||_l==54036||_l==54548||_l==55572||_l==56084||_l==56596||_l==57108||_l==57620||_l==58132||_l==60692||_l==61204||_l==61716||_l==62228||_l==62740||_l==63252||_l==63764||_l==64276||_l==64788||_l==65812||_l==66324||_l==67348||_l==67860||_l==68372||_l==68884||_l==69396||_l==69908||_l==70420||_l==72468||_l==74516||_l==75028||_l==76052||_l==77076||_l==77588||_l==78100||_l==78612||_l==79124||_l==79636||_l==81684||_l==82196||_l==82708||_l==83220||_l==83732||_l==84244||_l==84756||_l==85268||_l==85780||_l==87316||_l==87828||_l==88340||_l==89364||_l==90388||_l==91412||_l==92436||_l==92948||_l==93460||_l==94484||_l==94996||_l==95508||_l==98068||_l==98580||_l==99604||_l==101652||_l==102164||_l==102676||_l==103188||_l==103700||_l==104212||_l==105748||_l==108820||_l==109332||_l==110868||_l==111892||_l==112404||_l==112916||_l==113428||_l==113940||_l==114964||_l==115476||_l==115988||_l==116500||_l==117012||_l==117524||_l==120084||_l==120596||_l==121108||_l==121620||_l==123156||_l==124180||_l==124692||_l==125204||_l==127252||_l==127764||_l==128276||_l==128788||_l==129300||_l==129812||_l==130324||_l==131348||_l==131860||_l==133396||_l==133908||_l==134420||_l==134932||_l==136468||_l==136980||_l==138516||_l==140564||_l==141588||_l==142612||_l==144660){_l=Kl(14,Pl);if(_l==0){var e=Dl,t=Pl,n=Hl,r=Bl,i=jl,s=Fl,o=Il,u=ql;try{bl(),Jl(14,t,-10),_l=-14}catch(a){_l=-11,Dl=e,Pl=t,Hl=n,Hl==0?Zl=t:(Bl=r,jl=i,Fl=s,Fl==0?Zl=i:(Il=o,ql=u,Zl=u)),Jl(14,t,-11)}}}switch(_l){case 8:case 9:case 10:case 11:ui();break;case 31:ci();break;case 34:vi();break;case 44:gi();break;case 17414:case 17478:case 17480:case 17481:case 17482:case 17483:case 17485:case 17487:case 17488:case 17489:case 17491:case 17492:case 17493:case 17494:case 17496:case 17497:case 17498:case 17499:case 17501:case 17502:case 17505:case 17506:case 17509:case 17510:case 17511:case 17512:case 17513:case 17514:case 17516:case 17517:case 17518:case 17519:case 17520:case 17521:case 17526:case 17527:case 17530:case 17531:case 17533:case 17534:case 17536:case 17537:case 17539:case 17540:case 17541:case 17542:case 17543:case 17544:case 17545:case 17549:case 17554:case 17556:case 17558:case 17559:case 17561:case 17562:case 17563:case 17567:case 17568:case 17569:case 17570:case 17571:case 17572:case 17574:case 17578:case 17579:case 17580:case 17582:case 17584:case 17586:case 17588:case 17589:case 17590:case 17592:case 17594:case 17600:case 17602:case 17606:case 17607:case 17608:case 17609:case 17610:case 17611:case 17614:case 17620:case 17621:case 17626:case 17627:case 17628:case 17629:case 17630:case 17632:case 17633:case 17636:case 17637:case 17642:case 17643:case 17644:case 17645:case 17648:case 17656:case 17657:case 17658:case 17659:case 17660:case 17662:case 17664:case 17665:case 17668:case 17669:case 17670:case 17671:case 17674:case 17675:case 17678:case 17682:xi();break;case 141514:bi();break;case 141568:Ei();break;case 32:case 78:case 120:case 124:case 145:case 152:case 165:case 167:case 185:case 191:case 226:case 227:case 242:case 243:case 253:case 14854:case 14918:case 14920:case 14921:case 14922:case 14923:case 14925:case 14927:case 14928:case 14929:case 14930:case 14931:case 14932:case 14933:case 14934:case 14936:case 14937:case 14938:case 14939:case 14941:case 14942:case 14944:case 14945:case 14946:case 14949:case 14950:case 14951:case 14952:case 14953:case 14954:case 14956:case 14957:case 14958:case 14959:case 14960:case 14961:case 14966:case 14967:case 14969:case 14970:case 14971:case 14973:case 14974:case 14976:case 14977:case 14979:case 14980:case 14981:case 14982:case 14983:case 14984:case 14985:case 14989:case 14994:case 14996:case 14998:case 14999:case 15001:case 15002:case 15003:case 15007:case 15008:case 15009:case 15010:case 15011:case 15012:case 15014:case 15018:case 15019:case 15020:case 15022:case 15024:case 15026:case 15028:case 15029:case 15030:case 15032:case 15034:case 15040:case 15042:case 15046:case 15047:case 15048:case 15049:case 15050:case 15051:case 15054:case 15060:case 15061:case 15064:case 15066:case 15067:case 15068:case 15069:case 15070:case 15072:case 15073:case 15076:case 15077:case 15082:case 15083:case 15084:case 15085:case 15088:case 15092:case 15096:case 15097:case 15098:case 15099:case 15100:case 15102:case 15104:case 15105:case 15108:case 15109:case 15110:case 15111:case 15114:case 15115:case 15118:case 15122:us();break;case-10:case 27412:bl();break;case-11:cl();break;case 68:gl();break;case 278:fl();break;case-14:break;default:Ai()}}function al(){Vl.startNonterminal(\"JSONSimpleObjectUnion\",Pl),Sl(278),kl(273),Hl!=281&&(Nl(),G()),Sl(281),Vl.endNonterminal(\"JSONSimpleObjectUnion\",Pl)}function fl(){xl(278),kl(273),Hl!=281&&Y(),xl(281)}function ll(){Vl.startNonterminal(\"ObjectConstructor\",Pl),Sl(276),kl(274),Hl!=282&&(Nl(),hl()),Sl(282),Vl.endNonterminal(\"ObjectConstructor\",Pl)}function cl(){xl(276),kl(274),Hl!=282&&pl(),xl(282)}function hl(){Vl.startNonterminal(\"PairConstructorList\",Pl),dl();for(;;){if(Hl!=41)break;Sl(41),kl(267),Nl(),dl()}Vl.endNonterminal(\"PairConstructorList\",Pl)}function pl(){vl();for(;;){if(Hl!=41)break;xl(41),kl(267),vl()}}function dl(){Vl.startNonterminal(\"PairConstructor\",Pl),_f(),Sl(49),kl(267),Nl(),_f(),Vl.endNonterminal(\"PairConstructor\",Pl)}function vl(){Df(),xl(49),kl(267),Df()}function ml(){Vl.startNonterminal(\"ArrayConstructor\",Pl),Sl(68),kl(272),Hl!=69&&(Nl(),G()),Sl(69),Vl.endNonterminal(\"ArrayConstructor\",Pl)}function gl(){xl(68),kl(272),Hl!=69&&Y(),xl(69)}function yl(){Vl.startNonterminal(\"BlockExpr\",Pl),Sl(276),kl(277),Nl(),$a(),Sl(282),Vl.endNonterminal(\"BlockExpr\",Pl)}function bl(){xl(276),kl(277),Ja(),xl(282)}function wl(){Vl.startNonterminal(\"FunctionDecl\",Pl),Sl(145),kl(255),Nl(),Ha(),kl(22),Sl(34),kl(94),Hl==31&&(Nl(),U()),Sl(37),kl(148),Hl==79&&(Nl(),El()),kl(118);switch(Hl){case 276:Sl(276),kl(277),Nl(),$a(),Sl(282);break;default:Sl(133)}Vl.endNonterminal(\"FunctionDecl\",Pl)}function El(){Vl.startNonterminal(\"ReturnType\",Pl),Sl(79),kl(260),Nl(),ms(),Vl.endNonterminal(\"ReturnType\",Pl)}function Sl(e){Hl==e?(Nl(),Vl.terminal(i.TOKEN[Hl],Bl,jl>Gl?Gl:jl),Dl=Bl,Pl=jl,Hl=Fl,Hl!=0&&(Bl=Il,jl=ql,Fl=0)):Ml(Bl,jl,0,Hl,e)}function xl(e){Hl==e?(Dl=Bl,Pl=jl,Hl=Fl,Hl!=0&&(Bl=Il,jl=ql,Fl=0)):Ml(Bl,jl,0,Hl,e)}function Tl(e){var t=Dl,n=Pl,r=Hl,i=Bl,s=jl;Hl=e,Bl=Yl,jl=Zl,Fl=0,Pa(),Dl=t,Pl=n,Hl=r,Hl!=0&&(Bl=i,jl=s)}function Nl(){Pl!=Bl&&(Dl=Pl,Pl=Bl,Vl.whitespace(Dl,Pl))}function Cl(e){var t;for(;;){t=ec(e);if(t!=22){if(t!=36)break;Tl(t)}}return t}function kl(e){Hl==0&&(Hl=Cl(e),Bl=Yl,jl=Zl)}function Ll(e){Fl==0&&(Fl=Cl(e),Il=Yl,ql=Zl),_l=Fl<<9|Hl}function Al(e){Hl==0&&(Hl=ec(e),Bl=Yl,jl=Zl)}function Ol(e){Fl==0&&(Fl=ec(e),Il=Yl,ql=Zl),_l=Fl<<9|Hl}function Ml(e,t,r,i,s){throw t>Ul&&(Rl=e,Ul=t,zl=r,Wl=i,Xl=s),new n.ParseException(Rl,Ul,zl,Wl,Xl)}function Jl(e,t,n){$l[(t<<4)+e]=n}function Kl(e,t){var n=$l[(t<<4)+e];return typeof n!=\"undefined\"?n:0}function ec(e){var t=!1;Yl=Zl;var n=Zl,r=i.INITIAL[e],s=0;for(var o=r&4095;o!=0;){var u,a=n<Gl?Ql.charCodeAt(n):0;++n;if(a<128)u=i.MAP0[a];else if(a<55296){var f=a>>4;u=i.MAP1[(a&15)+i.MAP1[(f&31)+i.MAP1[f>>5]]]}else{if(a<56320){var f=n<Gl?Ql.charCodeAt(n):0;f>=56320&&f<57344&&(++n,a=((a&1023)<<10)+(f&1023)+65536,t=!0)}var l=0,c=5;for(var h=3;;h=c+l>>1){if(i.MAP2[h]>a)c=h-1;else{if(!(i.MAP2[6+h]<a)){u=i.MAP2[12+h];break}l=h+1}if(l>c){u=0;break}}}s=o;var p=(u<<12)+o-1;o=i.TRANSITION[(p&15)+i.TRANSITION[p>>4]],o>4095&&(r=o,o&=4095,Zl=n)}r>>=12;if(r==0){Zl=n-1;var f=Zl<Gl?Ql.charCodeAt(Zl):0;return f>=56320&&f<57344&&--Zl,Ml(Yl,Zl,s,-1,-1)}if(t)for(var d=r>>9;d>0;--d){--Zl;var f=Zl<Gl?Ql.charCodeAt(Zl):0;f>=56320&&f<57344&&--Zl}else Zl-=r>>9;return(r&511)-1}r(e,t);var n=this;this.ParseException=function(e,t,n,r,i){var s=e,o=t,u=n,a=r,f=i;this.getBegin=function(){return s},this.getEnd=function(){return o},this.getState=function(){return u},this.getExpected=function(){return f},this.getOffending=function(){return a},this.getMessage=function(){return a<0?\"lexical analysis failed\":\"syntax error\"}},this.getInput=function(){return Ql},this.getOffendingToken=function(e){var t=e.getOffending();return t>=0?i.TOKEN[t]:null},this.getExpectedTokenSet=function(e){var t;return e.getExpected()<0?t=i.getTokenSet(-e.getState()):t=[i.TOKEN[e.getExpected()]],t},this.getErrorMessage=function(e){var t=this.getExpectedTokenSet(e),n=this.getOffendingToken(e),r=Ql.substring(0,e.getBegin()),i=r.split(\"\\n\"),s=i.length,o=i[s-1].length+1,u=e.getEnd()-e.getBegin();return e.getMessage()+(n==null?\"\":\", found \"+n)+\"\\nwhile expecting \"+(t.length==1?t[0]:\"[\"+t.join(\", \")+\"]\")+\"\\n\"+(u==0||n!=null?\"\":\"after successfully scanning \"+u+\" characters beginning \")+\"at line \"+s+\", column \"+o+\":\\n...\"+Ql.substring(e.getBegin(),Math.min(Ql.length,e.getBegin()+64))+\"...\"},this.parse_XQuery=function(){Vl.startNonterminal(\"XQuery\",Pl),kl(275),Nl(),o(),Sl(25),Vl.endNonterminal(\"XQuery\",Pl)};var _l,Dl,Pl,Hl,Bl,jl,Fl,Il,ql,Rl,Ul,zl,Wl,Xl,Vl,$l,Ql,Gl,Yl,Zl};r.getTokenSet=function(e){var t=[],n=e<0?-e:INITIAL[e]&4095;for(var i=0;i<284;i+=32){var s=i,o=(i>>5)*3694+n-1,u=o>>1,a=u>>2,f=r.EXPECTED[(o&1)+r.EXPECTED[(u&3)+r.EXPECTED[(a&3)+r.EXPECTED[a>>2]]]];for(;f!=0;f>>>=1,++s)(f&1)!=0&&t.push(r.TOKEN[s])}return t},r.MAP0=[70,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,17,17,17,17,17,17,17,17,17,18,19,20,21,22,23,24,25,26,27,28,29,26,30,30,30,30,30,31,32,33,30,30,34,30,30,35,30,30,30,36,30,30,37,38,39,38,30,38,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,38,38],r.MAP1=[108,124,214,214,214,214,214,214,214,214,214,214,214,214,214,214,156,181,181,181,181,181,214,215,213,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,247,261,277,293,309,355,371,387,423,423,423,415,339,331,339,331,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,440,440,440,440,440,440,440,324,339,339,339,339,339,339,339,339,401,423,423,424,422,423,423,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,423,338,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,423,70,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,17,17,17,17,17,17,17,17,17,18,19,20,21,22,23,24,25,26,27,28,29,26,30,30,30,30,30,31,32,33,30,30,30,30,30,30,30,30,30,30,30,30,30,30,38,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,34,30,30,35,30,30,30,36,30,30,37,38,39,38,30,38,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,38,38,38,38,38,38,38,38,38,38,38,38,30,30,38,38,38,38,38,38,38,69,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69],r.MAP2=[57344,63744,64976,65008,65536,983040,63743,64975,65007,65533,983039,1114111,38,30,38,30,30,38],r.INITIAL=[1,12290,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287],r.TRANSITION=[42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,25651,25666,25670,25670,25670,18189,25670,25670,25670,25670,18201,25670,25670,25670,25670,18176,25670,25671,18217,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,42516,25917,18730,20976,20988,20999,21015,25420,18732,21040,42516,42516,42516,27632,42516,42516,51474,31122,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,21056,21084,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,23286,21107,42516,42516,42516,39416,42516,42516,43470,47286,25568,42516,42516,42516,42516,23672,41495,21126,21160,42516,42516,42516,27632,42516,42516,35938,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,25556,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21176,21248,42516,42516,42516,50595,42516,42516,42445,42516,25917,23619,21211,21279,21269,21226,21240,44419,21040,42516,42516,42516,27632,21302,42516,32247,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,19871,21321,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,21344,26008,18612,18632,18596,21349,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42510,42516,42516,42516,48894,42515,42516,51366,42516,21365,42504,21403,42515,21410,42516,27599,27612,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,21426,42516,42516,42516,22170,42516,42516,21445,42516,42516,21468,21481,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,42516,24484,42516,42516,42516,42516,42516,42516,42517,21497,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,21513,25598,18486,18508,51408,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,25358,21538,42516,42516,42516,29996,42516,42516,26519,46446,25383,42516,42516,42516,42516,25736,28473,18232,21557,42516,42516,42516,27632,42516,42516,51474,21573,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,19060,21591,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,23074,23089,21619,21619,21619,21672,21614,21619,21624,23096,21640,21745,21688,21665,21655,21732,21703,21716,21040,42516,42516,42516,33326,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,21761,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,45317,42516,42516,42516,49458,21798,42516,22640,21804,25917,45316,42516,21821,21844,21828,21860,21869,21885,42516,42516,42516,29550,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,21901,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,21944,42516,42516,42516,48069,42516,42516,42516,26308,36543,25445,25454,21937,25455,21960,21985,21998,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,18888,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,26329,37275,42655,22014,22031,22014,22046,42653,22015,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,22071,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,26891,42516,42516,42516,48069,22092,42516,23653,22130,40293,22116,22186,22191,22191,22207,26888,44587,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,18247,42516,42516,42516,42516,48069,42516,42516,42516,42516,25917,35843,22232,22249,22232,22264,35841,22233,22289,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,46363,42516,33841,42516,34304,43899,22305,22071,36154,42516,42516,42516,42516,28243,22657,22322,22657,22657,22341,33347,46316,46316,39789,38147,35514,38147,38147,22359,22382,42516,42516,42516,42516,42516,28815,42516,22405,22426,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,47355,26569,42516,42516,42516,42516,42516,45225,42516,42516,32981,50880,22657,22657,22657,30360,22467,39622,46316,22501,46316,22343,36422,42625,38147,22520,38147,27826,41766,42516,42516,42516,42516,42516,49148,42516,23255,22657,44467,22657,22657,30361,22539,42077,46316,46316,46316,30525,38147,40186,38147,38147,34440,41769,42516,42516,20027,37487,42516,28242,22657,22657,36250,37745,46316,46316,44329,37798,38147,38147,43834,27827,30836,42516,42516,19405,22558,38368,22576,22657,40730,22597,46316,36583,22617,38147,40469,22638,42516,25905,42516,34153,22656,33064,46073,46316,22674,22710,27827,22690,51145,42516,32408,22729,37572,22752,32120,22683,29050,30609,22771,38961,22813,36803,22874,22893,22911,28238,43147,27775,22913,22451,22736,46400,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,50215,25917,42516,42516,42516,42516,42516,45715,23059,23112,42516,42516,42516,27632,42516,42516,37325,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,23128,46363,42516,42516,42516,34304,42516,42516,18360,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,22341,46316,46316,46316,39789,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,28815,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,23154,42516,42516,42516,46371,42516,42516,42516,42516,25917,35960,23175,23206,23195,23229,35959,23179,21040,42516,42516,42516,27632,42516,42516,51474,27227,42516,43023,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,23254,42516,42516,42516,48069,42516,42516,42516,19968,25917,42516,42516,42516,42516,42516,42762,23271,23302,42516,42516,42516,27632,42516,42516,21380,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,23318,46363,42516,42516,42516,34304,42516,42516,23344,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,22341,46316,46316,46316,39789,38147,38147,38147,38147,40896,23370,23409,42516,42516,42516,42516,38331,23429,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,23450,23383,42516,42516,42516,42516,42516,23487,42516,42516,42516,38370,22657,22657,22657,22657,50700,22540,46316,46316,46316,46316,47852,30533,38147,38147,38147,38147,27826,35762,23510,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,29796,22539,46316,46316,46316,46316,23533,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,46191,46316,46316,46316,32038,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,48371,42516,42516,42516,31492,32078,42516,42516,23557,25917,18721,49121,23587,23594,23610,42516,43878,23635,23651,42516,42516,33439,23669,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,25038,24355,23991,25028,23804,18270,40105,18293,23688,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,23724,24084,23749,23789,24317,23827,23849,23904,24015,23917,23946,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,23969,24689,24310,25086,25092,23974,23990,24416,24845,24007,23833,24977,24993,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,24031,23930,24046,24073,24057,24100,24137,24664,24240,24198,24251,24225,24986,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,24267,24283,24299,24348,24333,24371,24167,24428,24402,23773,24444,24474,35639,19379,39467,19401,41728,19421,19500,24458,19544,24500,24558,24572,24588,24604,24182,24745,24620,24636,24767,19696,19712,19728,19753,19773,19830,19435,19514,24680,24514,19528,24705,24152,24757,19947,19984,20043,20080,20119,20157,20667,24542,24528,24731,24830,24209,24939,20235,20264,20301,24783,24799,24815,24715,24861,20381,20397,19814,23733,24877,24893,20503,25039,24968,23864,24927,24955,25015,20652,18443,23763,24386,25055,24651,25071,25108,25159,25175,25191,25243,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,27003,42516,42516,42516,48069,25296,42516,42516,25291,40518,25312,25320,25320,25320,25327,27168,25343,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25399,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,18963,25373,18652,18689,18711,18748,18695,25415,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,19337,25436,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,25471,25509,25525,20579,19301,19596,25541,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,25584,19614,19632,19650,25620,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,42516,21541,28730,28739,28739,28739,28746,47533,25636,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,27653,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,25687,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51268,23158,42516,42516,42516,48069,42516,42516,42516,42516,25917,22795,25710,25710,25710,25717,23159,22797,21040,25733,42516,42516,27632,42516,42516,51474,42516,42516,44769,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,25752,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,26066,26075,42516,42516,42516,42907,42516,42516,42516,42516,25917,26405,25775,25775,25775,25782,28588,26407,25798,25814,42516,42516,27632,42516,42516,51474,42516,42516,23413,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,25831,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,25857,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,25891,42516,42516,42516,42516,48069,25942,42516,42516,28970,33768,42516,42516,42516,25933,25960,26180,25944,25980,42516,42516,42516,27632,42516,42516,51474,27927,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,25996,26028,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,42516,25917,42516,42516,42516,42516,42516,41865,26051,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,23487,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,26115,26152,42516,42516,42516,42516,42516,23487,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,35762,23510,42516,42516,42516,42516,26178,42516,23255,22657,22657,22657,22657,22877,22539,46316,46316,46316,46316,32774,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,46191,46316,46316,46316,32038,38147,38147,38147,27827,22690,42516,42516,23464,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,23487,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,26115,26152,42516,42516,42516,42516,42516,23487,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,35762,23510,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,22877,22539,46316,46316,46316,46316,32774,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,46191,46316,46316,46316,32038,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,23487,26196,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,26115,26152,42516,42516,42516,42516,42516,23487,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,35762,23510,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,22877,22539,46316,46316,46316,46316,32774,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,46191,46316,46316,46316,32038,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,23487,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,26115,26152,42516,42516,42516,42516,42516,26216,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,35762,23510,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,22877,22539,46316,46316,46316,46316,32774,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,46191,46316,46316,46316,32038,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,31151,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,31154,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,23487,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,26115,26152,42516,42516,42516,42516,42516,23487,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,35762,23510,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,22877,22539,46316,46316,46316,46316,32774,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,46191,46316,46316,46316,32038,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,22786,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26258,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,48694,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,28605,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,47769,26274,26287,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,26303,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,26324,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,42516,25917,35004,26345,26373,26362,26396,35005,26346,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,37963,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,26423,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,42516,25917,42516,42516,42516,42516,42516,42516,42517,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,42516,25917,47727,42516,26460,26483,26467,42516,47735,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,26499,20264,20301,20317,20346,20333,20349,20365,26535,20397,20422,20606,20438,26551,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,29068,42516,42516,42516,51537,26585,26616,29663,26601,26633,26690,26699,26715,26730,26742,26758,26771,26099,19999,42516,26787,26162,26806,41856,26832,26883,26907,26946,30733,26962,26998,27019,27054,46783,31896,27070,46885,46348,36728,27120,42516,42516,34304,27137,37896,42516,27163,34995,39190,42516,27184,43650,22657,22657,22657,27203,27401,46316,46316,41985,48318,38147,38147,38147,37213,40896,22382,42516,27222,48046,42516,27243,27263,27280,42516,42516,27038,20763,27308,27328,22657,22657,27363,27386,27419,35266,46316,30482,27448,27495,27524,27566,38147,35889,38740,46095,27585,26152,27628,42516,45564,42516,47310,23487,42516,46936,27648,27669,27685,34339,22657,27729,22984,44673,27748,45967,46316,27773,39768,32782,27791,37607,38147,27824,22485,27843,27859,27882,27899,42516,27922,31758,27943,23255,33056,27962,22657,42185,33093,27982,30091,46316,35423,43042,32774,28017,38147,38147,42363,28033,23138,28062,40096,28115,41486,28137,21969,22956,28160,22657,46191,35558,28176,28197,32038,49740,47969,28214,27827,28233,42899,42516,21253,42516,38368,42934,43766,40730,37393,48025,36583,51021,44713,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,28260,28298,33550,28320,28341,28379,28401,28421,26921,40729,36585,44924,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,28445,42516,42516,51537,42516,42516,42516,42516,31409,28464,42516,28489,28496,28512,28528,28541,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,42942,46314,28557,30860,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,28583,23487,28604,45602,42516,42516,38368,22657,22657,22657,44648,28621,22541,46316,46316,46316,40008,44805,38147,38147,38147,38147,41449,32923,26115,26152,42516,42516,42516,42516,42516,23487,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,35762,23510,42516,32305,42516,42516,28652,43395,23255,28671,22657,22657,22657,28690,28706,46316,46316,46316,37589,32774,28762,38147,38147,38147,44356,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,46191,46316,46316,46316,32038,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,23013,26674,44310,41661,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,28784,42516,42516,51537,42516,28813,42516,28831,36313,28851,28860,28876,28891,28903,28919,28932,26099,42516,42516,33807,29427,42516,42516,28948,42516,28965,42516,42516,42516,25275,42516,28986,44283,46314,29021,22622,37863,32069,42516,29066,42516,34304,29084,49128,42516,45291,29103,36853,42516,39408,30216,37513,22657,22657,22657,29138,29162,46316,46316,48917,29187,29203,38147,38147,40896,22382,23471,42516,42516,37970,42516,41320,23487,39926,29222,42516,42516,38368,29257,38293,22657,29296,38374,29315,31567,38618,38779,46316,44805,42631,29346,29367,48610,38147,32923,26115,26152,42516,42516,35359,42516,36267,23487,42516,42516,42516,38370,22657,22657,38875,29587,30360,22540,46316,46316,49716,48753,22343,30533,38147,38147,47896,47206,27826,35762,29388,42516,42516,42516,29423,42516,29443,23255,22657,22657,22657,43545,22877,22539,46316,46316,49625,46316,32774,38147,38147,38147,29464,34440,41769,42516,42516,19074,42516,46902,29483,22657,45738,22657,46191,46316,28001,46316,32038,38147,48630,38147,27827,29518,29546,42516,39530,20864,38368,29566,29583,46250,46316,29603,36583,29623,29640,40469,42516,42516,42516,29661,38373,22657,29679,46316,51108,36586,38147,50541,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,29702,29722,29738,29754,28244,40729,36585,22448,28385,36584,34366,22755,31692,34720,29778,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,26790,42516,42516,51537,42516,29812,25227,42516,31450,29831,29840,29856,29871,29878,29894,29907,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,31072,31070,42516,32276,32283,40826,29686,35273,29923,34810,28721,42516,35352,29943,34304,42516,29968,36872,42516,42516,29988,30012,34471,30028,22581,34160,30064,24121,30107,48780,30128,30172,30191,29624,22523,47650,28217,40896,22382,42516,42516,42516,42735,42516,30232,23487,42516,42516,42516,27906,38368,22657,22657,22657,26867,38374,22541,46316,46316,46316,37425,44805,38147,38147,38147,38147,30252,50615,30272,30304,42516,42516,42516,30320,30338,23487,42516,42516,27104,21782,30358,30377,22657,22657,30395,30434,30481,30498,46316,46316,30515,51071,30551,30568,38147,38147,30585,35762,23510,42516,42516,42516,42516,42516,30625,23255,30648,22657,22657,30668,22877,30687,46316,46316,34855,46316,32837,38147,38147,43217,38147,34440,41769,45029,42516,30729,42516,21024,28242,29299,22657,30749,46191,50174,46316,30776,32038,38147,30812,48472,27827,22690,23708,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,37071,42516,42516,38373,22657,31523,46316,43307,36586,38147,39352,22690,34920,42516,38372,43148,46316,38137,38147,30829,36804,38368,28385,28404,30535,27085,28354,31634,30852,30600,30074,38197,42103,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,21805,30876,42516,51537,49762,30895,42516,30918,43094,30942,30951,30967,30982,30994,31010,31023,26099,42516,31039,39573,31055,20844,31088,31151,40795,31438,31118,31138,31170,31208,31224,31259,31325,39316,31341,31357,42305,39859,31243,31397,39944,31425,33906,31466,31484,36903,42516,42516,38844,42516,28243,31508,40831,43064,26242,31546,31583,49551,32501,35578,43001,31607,35023,30465,31623,22382,40777,39e3,31658,40711,31716,41838,31747,42230,41234,31783,31813,31829,31873,31912,31936,31952,31988,32019,35868,32054,38034,47598,32094,32110,32136,39813,32152,32186,47170,32233,26152,32263,42516,49503,42516,32299,32321,32337,32365,32386,32406,32424,22657,35078,32463,30760,22540,32487,46316,47681,50971,43200,30533,32517,38147,37625,38481,40265,32560,23510,18666,32576,32596,39698,32624,37664,32645,31965,32706,47478,32693,32731,32762,40433,46316,32798,32825,32774,32853,32872,49013,32893,32919,41769,42516,21429,46706,42516,42516,32939,25143,43551,27695,46191,47568,50517,33128,32038,44391,37914,44027,27827,22690,51501,22158,32960,23571,32997,33045,33080,33109,33144,33160,33196,33225,33259,33289,25257,41794,33305,33321,22943,47433,44826,33342,33363,33392,45913,37247,22690,23238,33434,38372,47456,46316,49977,38147,33455,33478,32944,28385,33515,33536,30206,38372,33571,38971,31372,39304,33587,33611,33627,33643,33674,33720,28385,36584,33273,33742,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,33784,42516,51537,33805,33823,29972,43389,33866,33897,42516,33882,33940,33947,33963,33976,26099,42516,42516,20279,27632,42516,42516,42516,42516,42516,41269,42516,41261,42516,41268,25123,41628,38176,37400,33992,34810,28721,42516,34012,42516,34304,34012,42516,42516,42516,34029,34013,37295,42516,28243,34045,22657,22657,22657,34069,34103,46316,46316,48318,47159,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,23487,42516,42516,45931,42516,38368,22657,22657,22657,44213,38374,22541,46316,46316,46316,42968,44805,38147,38147,38147,38147,34120,32923,26115,26152,42516,42516,42516,42516,42516,23487,42516,46602,42516,38370,22657,22657,30041,22657,30360,22540,46316,46316,42268,46316,22343,30533,38147,38147,44e3,38147,27826,35762,23510,42516,42516,42516,42516,42516,39273,23255,22657,22657,22657,37139,22877,22539,46316,46316,49643,46316,32774,38147,38147,38147,48815,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,46191,46316,46316,46316,32038,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,46733,42516,42516,42516,36647,22657,28384,27995,46316,49984,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,44874,43254,31692,29762,34139,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,38852,42516,42516,51280,34176,34185,34201,34208,34215,34231,34244,26099,42516,42516,42516,27632,42516,42516,34401,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,37878,42057,42516,42516,34304,42516,42516,42516,42516,34260,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,34278,42516,28081,38368,22657,22657,22657,22657,38374,42076,46316,46316,46316,46316,46212,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,47761,42516,34299,19108,42516,42516,19113,34320,22657,22657,34338,22657,30360,22540,46316,34104,46316,46316,22343,30533,38147,42837,38147,38147,27826,34355,42516,42516,42516,34399,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,38663,42516,34417,28242,22657,22657,38760,37745,46316,46316,50996,37798,38147,38147,38147,34438,22690,34456,18364,34487,34538,24114,31309,31274,34559,34565,27432,34581,44559,30458,34604,22076,42516,19757,34657,29792,34679,47804,33555,31559,34736,35451,34758,22690,41150,39051,35676,32439,38610,34776,34795,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,34833,34871,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,18277,42516,42516,34899,42516,42516,42516,36062,42516,36065,42516,42516,34947,34936,36697,22657,34963,27757,38148,48007,34986,42516,42516,29815,34304,21387,19116,42516,38636,42516,42516,42516,42516,28243,22657,22657,43325,22657,27401,46316,46316,30705,48318,38147,38147,38147,35021,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,35376,42516,35039,38368,22657,22657,22657,22657,50945,22541,46316,46316,46316,46316,38717,38147,38147,38147,38147,38147,41757,22444,42516,35059,42516,42516,42516,42516,42516,42516,42516,39196,38370,35077,22657,22657,22657,30360,46821,46316,46316,46316,46316,22343,23541,38147,38147,38147,38147,27826,41766,42516,42516,42516,50318,42516,42516,42516,23255,22657,22657,22657,46040,30361,22539,46316,46316,46316,34080,30525,38147,38147,38147,42204,34440,41769,42516,42516,46608,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,23434,42516,22428,38373,22657,28384,46316,46316,36586,38147,27827,35094,34920,22560,38372,50497,46316,40393,38147,43581,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,44978,42516,51537,30322,33499,42482,50012,50022,18763,18772,35115,35131,35143,35159,35172,26099,42516,42516,42516,36498,41847,42516,42516,42516,31671,41803,35188,36161,35205,35221,43491,35237,35256,29171,35289,37464,35305,42516,42516,42516,35339,42516,28090,35375,42516,42516,28949,35314,39266,28243,48989,48108,22657,35392,47509,37433,35422,34970,35439,27808,35467,38147,35501,35536,22382,42516,35594,39908,48509,34515,35614,42516,18299,18417,42516,35655,35672,48116,22657,43129,29280,37184,22541,48019,46316,38117,35692,47637,38147,35719,38147,35737,27472,35753,22444,42516,42516,42516,42516,35778,48535,35820,42516,42516,42516,23024,36244,22657,22657,29502,38418,35859,41980,46316,46316,48733,41934,49389,35884,38147,38147,40673,49832,35905,42516,36909,35924,35976,35997,18673,36033,34522,36081,47410,36098,36117,36141,36177,46316,36198,32809,43953,30446,38147,43626,42012,36214,36230,23328,20636,45205,36266,36283,36301,35981,36329,26662,46771,36350,36390,48253,35703,36411,36456,40231,38454,41461,37653,42516,42516,37028,36479,40577,43121,45398,22366,37772,48725,38205,36432,50457,40469,42516,25485,42516,36514,38373,22657,28384,46316,46316,36586,38147,27827,36626,36531,42516,28996,31885,36559,36579,36602,36619,36804,36642,28385,28404,30535,42423,49897,44263,36663,36694,43147,27775,22913,28244,40729,36585,22448,36713,36744,34366,22755,31692,28429,36774,36790,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,39935,42516,51537,42516,42516,42516,42516,25917,42516,29952,39942,19158,38671,36820,36833,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,44206,22657,27401,46316,46317,46316,48318,38147,38147,34588,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,19484,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,36849,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,36869,42516,42516,42516,42516,42516,42516,42516,42516,46294,22657,22657,22657,22657,30360,49232,46316,46316,46316,46316,22343,30796,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,46996,42516,51537,42516,23354,42516,42753,36888,36925,36938,36954,36961,36977,36993,37006,26099,42516,37022,42516,27632,42516,41516,26816,42516,42516,37044,42516,37049,18537,37065,37087,37117,44086,37200,37235,39844,33658,37263,42516,42516,35791,42516,42516,34914,28072,42516,37291,22389,37311,18926,37716,37348,43712,48153,37366,37382,46316,37416,40607,40193,49587,35520,37449,27508,37480,37934,42516,42516,42516,42516,41144,42516,42516,42516,42516,42516,38368,37503,36125,22657,37529,39594,37550,37566,48265,46316,37588,30713,29645,37605,37623,38799,38147,37641,22444,42516,42516,37688,42516,42516,49494,24999,42516,42516,42516,38370,22657,22657,29494,37704,37740,22540,46316,46316,40001,37761,37795,30533,38147,38147,37825,37814,37848,41766,42516,37894,42516,42516,51139,42516,42516,23255,22657,41398,22657,22657,30361,22539,42274,46316,46316,46316,30525,38147,37912,38147,38147,34440,41769,37930,36490,42516,34663,37950,28242,37986,22657,22657,46812,38013,46316,46316,45485,49261,38147,38147,48821,22690,49311,42516,42516,38050,38368,41404,22657,40730,47057,46316,36583,48937,38147,40469,42516,21575,42516,42516,38373,22657,38069,46316,45780,36586,38147,40463,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,38089,46273,22694,23034,40134,34366,22755,38105,38164,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,26200,42516,51537,42516,27946,42516,42516,47834,20951,20960,38221,38236,38243,38259,38272,26258,42516,38551,42516,27632,42516,34262,42516,42516,42516,38553,42516,38546,21091,38552,21774,38288,31700,35273,38309,34810,28721,42516,42516,38329,34304,42516,29241,23811,23953,42516,42516,42516,38347,38364,33022,22657,38390,38410,28636,46316,29607,39628,38434,42370,38147,48603,38470,47663,38504,38541,39253,39681,42516,42516,42516,42516,41197,42516,42516,42516,38368,31857,22657,38569,22657,38374,22541,38589,28198,46316,46316,44805,29206,27800,32877,38147,38147,32923,22444,42516,28144,42516,38634,42516,45188,42516,38652,42516,42516,38370,39723,22657,22657,38687,30379,22540,23043,46316,46316,38710,22895,30533,49398,38147,38147,38733,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,33462,42516,42516,42516,42516,38368,38756,22657,40730,38776,46316,36583,38795,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,38815,36586,49663,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,49485,38368,44256,40047,45820,38834,38868,32210,38891,28238,43147,27775,22913,28244,40729,36585,22448,28385,38914,38935,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,27187,42516,30926,42516,34543,38987,37672,39016,39067,39107,39092,39111,39076,39127,39140,26099,42516,25841,23701,20829,39222,20009,42516,39156,41252,39175,39212,32746,21195,39238,26847,39289,45668,39332,39368,34810,28721,32390,42516,42516,26444,30879,36010,28099,40787,39398,38525,26035,39432,39483,44460,39503,41633,22657,32003,22601,46316,49709,48318,47976,47889,30552,38147,33209,39523,39917,39159,42516,39546,42516,42516,40976,42516,42516,42516,39568,39487,37157,22657,39589,22657,38374,39610,45436,46316,39644,46316,44805,27542,39661,38313,38147,38147,32923,22444,42516,42516,42516,42516,30632,42516,42516,21187,39678,39697,39714,22657,22657,50559,22657,39739,39760,46316,46316,38818,46316,39784,39805,38147,38147,32856,38147,39829,41766,46006,39893,48391,49682,42516,39960,34641,39976,38394,40024,37997,33010,30361,22539,40063,40121,43817,40157,30525,40868,40175,40209,40247,34760,44916,20285,40281,34623,40309,51090,50324,48429,40325,40344,40364,39645,40409,40428,40449,38147,40485,49825,39382,22690,40506,42516,42516,22216,40534,39507,48098,30083,50926,38024,33595,45640,28567,40469,40559,42516,40087,26129,45371,31289,28384,40593,41927,40637,40665,40689,34614,41203,40707,27312,43148,48295,28405,40861,22683,50287,38368,40727,40746,40649,40767,40811,22827,40847,33407,49334,48207,33243,28244,40729,36585,22448,28385,36584,41673,40884,31692,28429,22929,40922,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,40951,51537,42516,42744,40972,42516,27292,40992,41001,41017,41032,41039,41055,41068,26099,20248,41084,41102,41129,21286,41166,42516,41182,41219,41286,31731,41302,41336,41352,41368,41384,34883,41420,41436,48349,41477,42516,42240,27121,34422,42516,41511,25267,41532,41575,42516,42516,41594,28243,22657,31843,41613,34053,27401,40159,35568,34847,41649,38147,27550,41689,41744,40896,22382,42516,26380,42516,41578,42516,44762,41785,42516,41828,27866,41270,19255,22657,41881,41897,22657,35406,41916,43971,44095,46316,46316,41950,22851,37219,42001,38147,29467,32923,42028,42044,42516,46644,19385,42516,42516,42516,42516,42516,34632,38370,22657,27339,43920,22657,30360,22540,46316,44514,36395,46316,22343,30533,38147,35478,49592,38147,27826,41766,42516,42516,21305,42516,31235,42516,42516,23255,22657,22657,22657,22657,20064,42074,46316,46316,46316,46316,42093,38147,38147,38147,38147,50734,41769,50664,35952,42516,42516,42516,41113,22657,42177,22657,45759,46316,43945,46316,45799,38147,45843,38147,27827,29041,42127,42516,42516,42516,48412,30671,22657,38073,44692,46316,33520,45533,38147,40469,42146,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,43588,34920,42516,42166,40348,33173,48271,42201,22683,42220,41559,42256,42290,42321,33756,44448,35547,42352,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,32531,22755,42386,28429,22929,42410,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,39045,51537,42516,42516,42439,19363,42461,42498,42516,31468,42533,42547,42563,42576,26099,42516,42516,25867,27632,42516,42516,42516,42592,26617,42516,42516,26436,25867,42516,30236,31920,49620,42612,36440,34810,28721,42516,42647,42516,34304,42516,44608,36046,42516,35598,42516,42516,36057,51481,44194,32471,36334,37148,42671,32033,42687,33121,42706,38488,30256,30569,29372,32199,42722,42778,42516,42799,42516,49524,50043,35835,42516,42516,42516,42516,38368,22657,22657,37175,22657,38374,22541,46316,46316,47563,46316,44805,38147,38147,38147,42836,38147,32923,42853,42888,35656,42516,42516,42516,50763,30902,39460,48700,42516,38370,22657,42923,22657,22657,37350,22540,46316,42958,46316,46316,27403,30533,38147,42991,38147,38147,27826,41766,42516,29233,42516,42516,42516,43017,42516,23255,22657,22657,49093,22657,22325,22539,46316,46316,43039,46316,30788,38147,38147,35485,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,36017,42516,42516,43058,22657,22657,40730,46316,46316,36583,38147,38147,48843,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,46409,43080,43110,32715,30112,30535,40935,43145,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,35061,42516,42516,42516,28279,28282,18254,28275,31684,43164,43182,29146,43216,43233,29330,43270,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,43287,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,43306,46316,46316,46316,46316,50852,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,43323,28384,43789,46316,36586,43341,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,50278,22100,42516,42516,50243,42516,29530,43375,33789,43361,43411,43418,43434,43447,26099,42516,33915,33924,27632,40956,43463,43486,41243,43507,26512,26972,26982,27147,41812,42783,43531,49966,43567,43604,44058,40078,42516,42516,42516,23213,43642,34502,43666,43684,38517,42516,42516,35323,43702,22657,43728,30048,43746,43782,42975,46316,43805,34708,43833,43850,27569,49274,49874,43871,42516,42516,42516,45270,35189,42516,42516,43894,43668,42516,42814,33726,22657,43915,22657,37724,49041,43936,46316,43969,46316,45680,43987,44022,33996,38147,38147,44043,44074,22444,42516,42516,19081,42516,44111,44127,42516,43290,44154,44166,44182,22657,37101,44229,44279,30652,44299,46316,42336,45461,44326,40412,44345,38147,44372,45987,44388,34123,41766,28121,42516,42516,24911,44407,50085,42516,44435,27732,44483,22975,22657,30361,22539,44504,42690,46316,46316,30525,28768,44537,44554,38147,40691,44575,42516,44603,44624,42516,42516,28242,44645,22657,22657,44664,44689,46316,46316,49378,44708,38147,38147,49798,22690,42516,44729,42516,42516,20056,22657,22657,34376,46316,51047,22477,38147,44538,40469,42516,22273,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,44749,26230,34694,49922,44785,36803,38372,46315,38146,47702,44821,44842,44862,21913,40729,36585,22448,28385,36584,40621,44890,44940,42111,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,46959,51537,45028,47264,44964,45002,45045,45083,45015,45108,45123,45139,45155,45168,26099,45184,28448,42516,28797,42516,42516,30342,42516,42516,45204,45221,31185,28655,31192,26648,48147,38948,50978,45241,34810,28721,45262,45286,25875,34304,35804,42516,42516,42516,42516,45307,45333,42516,45362,45387,27370,22657,22657,45422,45457,45477,46316,48318,45501,22713,45531,38147,40896,22382,41086,42516,42516,45549,45580,42516,42516,42516,42516,42516,41312,38368,32670,37166,22657,22657,33029,22541,45618,47052,46316,46316,45690,35721,38147,45637,38147,38147,45656,22444,42516,42516,45593,44733,42516,45600,35835,45706,27030,38348,45731,22657,22657,40543,26861,45754,45775,46316,46316,43191,44800,45796,45815,38147,38147,40256,45836,45859,28046,42867,49429,42516,25220,42516,19477,43271,20461,22657,22657,27347,45890,30361,22539,46316,48577,44521,46316,30525,38147,38147,46850,45910,34440,41769,42516,50831,45929,19737,42516,28242,22657,45947,43759,50887,46316,45965,46065,28181,38147,45983,46857,27827,22690,42516,42516,46003,44138,38368,22657,22657,40730,46316,46316,36583,38147,38147,29031,51383,46022,26136,47337,46039,22657,46056,46316,34383,36586,38147,46089,46111,34920,46149,46173,43148,46207,44846,46228,32903,36804,38368,46247,46266,45515,36803,38372,46315,38146,35099,35240,22504,22913,46289,46310,46333,36758,46387,47879,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,27247,51537,42516,42516,23393,42516,46425,46462,46474,46490,46505,46521,46537,46550,26099,46566,25493,25815,46587,26561,21328,46624,21598,42516,46636,46660,46669,46685,46722,46757,46799,32544,46837,46873,41704,47524,33832,37332,35627,34304,46901,42516,44629,46918,39031,46952,46975,47012,47022,48184,31972,27713,43730,47038,31642,47073,47098,47607,47121,47145,47186,47202,47222,47250,47280,47302,42058,42516,47326,47353,42516,42516,47371,47388,46928,47404,47426,47449,47472,29567,47494,47549,47584,47623,47679,36182,44805,36463,37832,40141,38147,32161,32170,47697,42516,45060,42596,50682,47718,42130,47751,46440,36515,21144,38370,47785,29270,22657,44488,47820,47850,47868,40376,46316,45441,47912,47938,47958,43617,38147,38919,47992,41766,29407,48041,42516,27096,48062,42516,50062,40568,48085,38573,48132,48169,30361,48200,48223,48241,48287,48311,47922,47129,22858,48334,43855,34440,40906,48365,50193,42516,22144,48387,48407,44243,48428,22657,49223,47234,48445,46316,47082,50795,48488,38147,33704,22690,42516,48504,48525,42516,20103,22966,48559,32447,40385,48575,48593,50156,48626,48646,48680,42516,33850,39552,21921,26930,48716,48749,48769,48802,45246,48837,48960,48859,48887,32658,28363,48910,33376,48933,48953,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,45621,46231,48976,39991,49005,49029,40039,49057,44903,22755,31692,28429,49073,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,49109,42516,42516,49144,42516,32608,18328,18337,49164,18337,18344,49180,49193,26099,42516,42516,42516,27632,20863,28835,42516,42516,42516,42516,28834,42516,20857,42516,28241,49209,31530,22841,49248,36678,30143,33493,42516,42516,34304,42516,42516,35043,49290,42516,42516,42516,38053,28243,49327,22657,22657,22658,49350,46316,46316,46316,31591,33687,38147,38147,38147,49366,49414,49451,42516,49474,49519,42516,42516,43686,45346,42516,46571,46157,38368,45949,40328,45406,25137,29005,22541,48786,34087,38601,49540,48459,38147,33697,39345,49573,33236,49608,22444,42516,19180,42516,50588,42516,42516,42516,18791,42516,42516,38370,38694,22657,22657,22657,30360,49641,32217,46316,46316,46316,22343,49659,38898,38147,38147,38147,27826,41766,46990,42516,49679,42516,42516,42516,42516,20094,31303,22657,22657,22657,30361,49698,46316,46316,46316,46316,30525,49732,38147,38147,38147,34440,35908,42516,42516,46023,49756,42516,29706,37130,22657,22657,39744,38128,46316,46316,49778,49814,38147,38147,49848,22690,22055,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,34322,43148,47105,28405,38446,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,49890,49913,49938,22448,28385,36584,34366,34779,33418,49954,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,5e4,50082,50038,50059,42516,32349,42516,20487,50078,34283,44986,50101,50114,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,50130,42394,35273,50148,34810,28721,42516,36285,32580,34304,42516,42516,42516,42516,42516,25759,42516,42516,28243,27704,22657,37534,22657,27401,50172,46316,38188,48318,29351,38147,30813,38147,40896,22382,42516,42516,42516,42516,42516,41597,42516,42516,42516,42476,42516,38368,22657,50132,22657,22657,38374,22541,46316,49557,46316,46316,44805,38147,38147,50449,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,50190,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,50209,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,50231,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,50266,42516,22306,42516,45067,50303,50340,42516,50365,50380,50394,50410,50423,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,45894,46314,50439,28325,41965,36365,42516,42516,42516,34304,42516,42516,42516,42516,25694,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,50473,42516,42516,42516,50491,22657,22657,22657,22657,30360,50513,46316,46316,46316,46316,22343,50533,38147,38147,38147,38147,27826,41766,42516,42516,29399,42516,42516,42516,42516,23255,22657,22657,50557,22657,50575,22539,46316,43245,46316,33180,30525,38147,47942,38147,38147,50611,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,26324,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,48543,50631,50644,26099,42516,42516,42516,27632,50660,42516,50680,42516,42516,42516,29122,42516,21452,29118,32973,50698,44948,35273,50716,34810,28721,42516,42516,42516,50750,27264,27883,43515,42516,42516,42516,42516,42516,28243,22657,43166,22657,49088,27401,46316,30696,30175,48318,38147,38147,50786,27533,40896,50811,50827,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,51530,42516,42516,42516,38370,22657,27966,22657,22657,27206,22540,46316,36563,46316,46316,48225,30533,38147,43345,38147,38147,27826,41766,21110,42516,42516,42516,42516,42516,42516,23255,36082,22657,22657,22657,30361,22539,50847,46316,46316,46316,30525,40490,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,42516,42516,42516,42516,46741,49861,51029,26099,24903,42516,42516,27632,42516,42516,20017,42516,42516,42516,42516,20023,42516,42516,50868,36101,46314,27462,29927,45874,41719,42516,29087,42516,34304,42516,42516,42516,42516,42516,42516,42516,42872,28243,22657,22657,22657,47797,27401,46316,46316,22542,48318,38147,38147,38147,27479,40896,22382,42516,50903,42516,42516,42516,42516,42516,42516,42150,42516,42516,38368,46183,22657,41900,22657,38374,22541,50922,46316,37779,46316,44805,36603,38147,38147,40222,38147,32923,22444,42516,50475,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,50942,22657,22657,30360,50961,30499,50994,46316,46316,22343,49789,39662,51012,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,48664,23255,22657,22657,32677,22657,28304,22539,46316,46316,51045,46316,51063,38147,38147,50725,38147,44006,41769,42516,42516,50906,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,48656,42516,42516,47372,42516,31381,22657,22657,34817,46316,46316,40751,38147,38147,40469,42516,42516,51087,42516,38373,28681,28384,46316,51106,36586,34742,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,51361,42516,42516,42516,42516,51537,42516,42516,42516,42516,25917,19962,42516,42516,42516,46741,49861,51029,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,28721,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,27401,46316,46316,46316,48318,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,46123,30288,30286,49299,30156,51124,22408,22410,49308,30152,46133,51161,51174,21040,42516,42516,42516,27632,42516,42516,31797,42516,42516,42516,42516,42516,42516,42516,32629,20505,20792,18990,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,51190,25598,18486,18508,19308,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,30409,42516,25917,39868,39877,51215,51230,51237,29448,51253,21040,42516,42516,42516,27632,42516,42516,51474,42516,42516,42516,23517,42516,42516,23514,32629,20505,21066,18953,21068,18866,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,18459,25598,18486,18508,51199,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,36374,42516,42516,42516,42516,31102,50349,51296,51323,51307,51330,32370,51346,21040,42516,42516,42516,27632,42516,42516,51474,51382,42516,26083,42516,42516,42516,26079,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,18315,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,51399,25598,18486,18508,21522,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,20235,20264,20301,20317,20346,20333,20349,20365,20381,20397,20422,20606,20438,20477,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,21141,42516,42516,42516,42516,48069,42516,42516,42516,42516,25917,42516,42516,42516,42516,42516,42516,42517,26099,42516,42516,42516,27632,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,28241,22657,46314,35273,38147,34810,46363,42516,42516,42516,34304,42516,42516,42516,42516,42516,42516,42516,42516,28243,22657,22657,22657,22657,22341,46316,46316,46316,39789,38147,38147,38147,38147,40896,22382,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38368,22657,22657,22657,22657,38374,22541,46316,46316,46316,46316,44805,38147,38147,38147,38147,38147,32923,22444,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,38370,22657,22657,22657,22657,30360,22540,46316,46316,46316,46316,22343,30533,38147,38147,38147,38147,27826,41766,42516,42516,42516,42516,42516,42516,42516,23255,22657,22657,22657,22657,30361,22539,46316,46316,46316,46316,30525,38147,38147,38147,38147,34440,41769,42516,42516,42516,42516,42516,28242,22657,22657,22657,37745,46316,46316,46316,37798,38147,38147,38147,27827,22690,42516,42516,42516,42516,38368,22657,22657,40730,46316,46316,36583,38147,38147,40469,42516,42516,42516,42516,38373,22657,28384,46316,46316,36586,38147,27827,22690,34920,42516,38372,43148,46316,28405,38147,22683,36804,38368,28385,28404,30535,36803,38372,46315,38146,28238,43147,27775,22913,28244,40729,36585,22448,28385,36584,34366,22755,31692,28429,22929,23e3,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,23494,42516,42516,45092,51424,51429,51429,51451,23492,51445,51467,42516,42516,42516,42516,42516,42516,51474,42516,42516,42516,42516,42516,42516,42516,32629,20505,21066,18953,21068,19019,18919,18270,40105,18293,51497,42516,42516,18360,42516,49435,42820,18380,18411,18395,18574,19226,18433,20169,51190,25598,18486,18508,19308,18465,25604,18492,18514,20728,18530,42516,30418,42516,42516,42516,50250,25964,50770,42516,18553,39446,18564,20175,20411,20131,20505,23879,18590,26008,18612,18632,18596,18470,18594,26012,18616,18636,20798,20741,20757,42516,18652,18689,18711,18748,18695,18788,42516,41546,48871,18807,18835,19802,18823,19840,25206,18851,18904,18942,18979,19680,19006,18851,18904,18942,18979,19680,19045,20750,46697,19097,19132,20936,31767,19148,19174,19196,20141,20921,19788,19212,19242,19278,25525,20579,19301,19596,19271,25518,20572,19294,19589,19324,19353,35639,19379,39467,19401,41728,19421,19500,24458,19544,19575,19614,19632,19650,19559,19612,19630,19648,19666,19029,19696,19712,19728,19753,19773,19830,19435,19449,19888,19905,19856,19887,19904,19921,19947,19984,20043,20080,20119,20157,20536,20191,20213,20542,20197,20219,19931,51517,20264,20301,20317,20346,20333,20349,20365,51553,20397,20422,20606,20438,20453,20503,21067,21068,20521,20558,20595,20622,20652,23888,18878,20683,20699,20715,20779,20814,20880,20890,20906,19463,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,42516,94506,94506,94506,94506,94506,94506,94506,94506,94506,94506,0,94506,90409,94506,94506,94506,94506,94506,94506,94506,94506,94506,365,94506,90409,94506,94506,94506,94506,94506,94506,94506,69632,73728,94506,94506,94506,94506,94506,65536,94506,12290,3,0,0,2183168,0,0,0,90409,94506,299,300,0,2134016,303,304,304,304,304,304,304,304,0,0,0,0,0,304,0,304,1,289,3,0,0,0,295,0,0,0,0,0,0,0,0,0,0,796,0,796,0,0,0,0,0,2424832,2433024,0,0,2457600,0,0,0,0,0,0,0,0,0,0,650,0,0,0,0,0,0,0,0,0,2904064,2908160,0,0,0,0,0,0,0,0,0,0,0,1685,1686,0,1688,0,0,0,0,3117056,0,0,0,0,0,0,0,365,365,0,0,0,0,0,0,448,0,0,474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,559,582,559,582,559,559,582,0,0,0,2138112,0,0,0,0,0,0,0,0,0,0,0,0,0,2991,0,0,0,2772992,2805760,2830336,0,2863104,2920448,0,0,0,0,0,0,0,2805760,2920448,0,0,0,0,0,0,0,2732032,0,2179072,2179072,2179072,2179072,2424832,2433024,0,0,0,0,0,2920448,0,0,0,0,0,0,0,0,0,0,0,1702,0,1704,0,0,2179072,2830336,2179072,2179072,2863104,2179072,2179072,2179072,2179072,2920448,2179072,2179072,2179072,2179072,2179072,2179072,2126737,2126737,2126737,2126737,2126737,2593681,2126737,2126737,2126737,2126737,0,914,2125824,2125824,2125824,2125824,2125824,2424832,2433024,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,0,2125824,2125824,2125824,2125824,2723840,2125824,2732032,2772992,2125824,2125824,2125824,2805760,2125824,2830336,2125824,2125824,2863104,2125824,2125824,2125824,2125824,2920448,2125824,2125824,2125824,2125824,2125824,2920448,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3117056,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2457600,2125824,2125824,2125824,2125824,2183168,0,0,0,0,0,0,0,0,0,0,661,0,661,0,0,0,2408448,0,0,2584576,0,0,0,0,2838528,0,0,2838528,0,0,0,0,0,2179072,2179072,2179072,2408448,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2625536,2179072,2179072,0,2125824,2125824,2125824,2408448,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3125248,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2662400,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2801664,2813952,2125824,2125824,2801664,2813952,2125824,2838528,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2461696,0,0,0,0,0,0,0,0,0,0,0,0,2600960,0,0,0,0,0,0,2441,0,0,0,0,0,0,0,0,0,0,2493,2494,0,0,2497,0,2768896,2777088,2781184,0,2822144,0,0,2883584,0,0,0,0,0,0,0,0,0,0,0,0,3055616,0,0,0,3080192,3100672,3104768,0,0,0,0,3186688,0,0,0,0,0,0,0,307,204800,0,0,0,0,0,0,0,0,0,111051,111051,111051,111051,111051,111051,111051,111051,1,0,0,0,0,0,2797568,0,0,0,0,0,0,0,2850816,2867200,0,0,0,0,0,441,0,0,332,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,0,0,3133440,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2131,0,0,0,0,0,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2461696,2465792,2179072,2768896,2777088,2781184,2797568,2822144,2179072,2179072,2179072,2883584,2179072,2912256,2179072,2179072,2179072,2179072,2179072,2179072,2523136,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2600960,0,0,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2461696,2465792,2125824,0,1142784,0,2179072,2125824,2125824,2179072,2179072,2179072,2179072,2179072,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2592768,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,24576,988,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2523136,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2600960,2125824,0,2125824,2125824,2125824,2125824,2125824,0,0,0,0,0,0,0,0,0,0,541,1272,541,541,541,541,2125824,2125824,2125824,2641920,2125824,2125824,2125824,2125824,2125824,2125824,2719744,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,2125824,2125824,2125824,2125824,2125824,2125824,299,0,0,0,299,0,300,0,0,0,2768896,2777088,2781184,2797568,2822144,2125824,2125824,2125824,2883584,2125824,2912256,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,2125824,2126812,2125824,2125824,2125824,2125824,2125824,2125824,3133440,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3207168,2125824,0,0,0,2179072,2125824,2125824,2179072,2179072,2179072,2179072,2179072,2125824,2125824,2125824,2125824,0,0,0,0,0,0,2510848,2514944,0,0,2125824,2125824,3133440,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3207168,2125824,2179072,2125824,0,2125824,2125824,2125824,2125824,2125824,0,0,0,0,0,0,300,0,0,0,0,0,0,2764,0,0,0,0,0,0,0,0,0,0,2059,2060,0,2062,2063,0,0,0,0,2605056,0,0,0,0,2887680,0,2924544,0,0,0,0,0,0,0,2108,0,0,0,0,0,0,0,0,0,0,0,0,0,1177,0,0,0,0,0,0,3162112,3170304,0,0,3219456,3035136,0,0,0,0,0,3072e3,3190784,0,0,0,0,0,0,0,0,2576384,0,0,0,0,0,0,0,334,0,0,334,0,0,334,0,0,0,0,0,0,0,2387968,0,0,0,0,0,0,0,0,0,0,0,2050,0,0,0,0,3121152,3141632,0,0,0,2924544,0,2682880,0,0,0,0,0,0,3112960,2387968,2924544,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3035136,2179072,2179072,3072e3,2179072,2179072,2179072,2179072,2699264,2179072,2715648,2179072,2723840,2179072,2732032,2772992,2179072,2179072,2179072,2805760,3121152,2179072,2179072,3141632,2179072,2179072,2179072,3170304,2179072,2179072,3190784,3194880,2179072,0,0,0,0,0,0,541,1734,541,541,541,541,541,541,1740,541,2125824,3190784,3194880,2125824,0,0,0,0,0,0,2387968,2125824,2125824,2125824,2420736,2125824,2125824,2125824,2125824,2125824,2453504,2125824,2473984,2125824,2736128,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2887680,2125824,2125824,2924544,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,0,0,2125824,2125824,2125824,2125824,2125824,3141632,2125824,2125824,2125824,3170304,2125824,2125824,3190784,3194880,2125824,2179072,2125824,2125824,2179072,2179072,2179072,2179072,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,299,0,300,3112960,3219456,2125824,2125824,3112960,3219456,2125824,2125824,3112960,3219456,0,0,0,0,0,0,0,347,0,405,0,0,0,0,0,405,3022848,0,0,3145728,0,3203072,0,0,0,0,0,0,0,0,0,0,0,2072,0,0,0,0,0,0,0,3067904,0,0,0,0,0,0,0,0,0,0,0,0,0,3003,0,0,0,0,0,2621440,0,3182592,2899968,0,2961408,0,0,2179072,2179072,2416640,2179072,2179072,2179072,2179072,2928640,2179072,2179072,2179072,2998272,2179072,2179072,2179072,2179072,3059712,2179072,2179072,2179072,2179072,3178496,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2494464,2125824,2125824,0,2179072,2125824,2125824,0,2179072,2125824,2125824,2985984,2985984,2985984,2985984,0,0,0,0,0,0,2490,0,0,0,0,0,0,0,0,0,335,0,0,0,0,0,0,2179072,2445312,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2551808,2179072,2179072,2179072,2179072,3178496,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2495377,2126737,2126737,2126737,2126737,2126737,3179409,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2495451,2126811,2895872,2916352,2179072,2179072,2945024,2179072,2179072,2994176,2179072,3002368,2179072,2179072,3022848,2179072,3067904,3084288,2125824,3096576,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3223552,0,0,2125824,2125824,2416640,3096576,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3223552,0,0,2125824,2125824,2416640,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3035136,2125824,2125824,3072e3,2125824,2125824,2125824,3121152,2125824,2125824,3141632,2125824,2125824,2125824,3170304,2125824,2125824,2125824,2125824,2445312,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2551808,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2637824,2125824,2125824,2125824,2125824,2727936,2752512,2125824,2125824,2125824,2125824,2842624,2846720,2842624,2846720,2125824,2895872,2916352,2125824,2125824,2945024,2125824,2125824,2994176,2125824,3002368,2125824,2125824,3022848,2125824,3067904,2125824,3067904,3084288,2125824,3096576,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3223552,2179072,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3039232,2125824,3063808,2125824,2125824,2125824,2125824,2125824,3100672,2547712,2596864,0,0,0,0,0,0,0,0,0,0,0,0,0,3178496,2670592,0,2744320,0,0,0,0,0,2928640,0,0,0,3059712,0,2543616,2666496,0,2633728,0,0,0,0,0,0,2494464,0,0,0,0,0,0,0,0,0,2780,0,0,0,0,2785,0,0,0,0,2957312,0,0,0,0,0,0,0,0,0,0,0,0,0,3188,0,0,0,0,3211264,0,0,0,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2494464,2179072,2179072,2179072,2707456,2179072,2736128,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2887680,2179072,2179072,2179072,2179072,2641920,2179072,2179072,2179072,2179072,2179072,2179072,2719744,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3137536,2126737,2126737,2499473,2126737,2126737,2126737,2556817,2565009,2179072,2514944,2179072,2179072,2179072,2543616,2547712,2179072,2179072,2596864,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3039232,2179072,3063808,2179072,2179072,2179072,2179072,3100672,2125824,2125824,2125824,2125824,2125824,3178496,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2494464,2125824,0,2125824,2125824,2125824,2125824,2125824,0,0,0,0,1080,1084,0,0,1088,2125824,2514944,2125824,2125824,2125824,2543616,2547712,2125824,2125824,2596864,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2928640,2125824,2125824,2125824,2998272,2125824,2125824,2125824,2125824,3059712,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3178496,2179072,2125824,2125824,2179072,2179072,2125824,2125824,2125824,2125824,0,2486272,0,0,0,0,0,2678784,2854912,3006464,2441216,0,0,0,0,0,0,0,0,0,2932736,2965504,0,0,3076096,0,0,0,0,0,444,0,0,0,0,0,0,0,0,0,0,407,0,0,0,0,0,0,2695168,3174400,2646016,2613248,2703360,0,0,0,0,2977792,0,0,3047424,3129344,0,0,0,0,0,645,0,0,648,649,0,0,0,0,0,0,0,725,0,0,0,0,0,0,0,0,0,743,0,0,0,0,0,0,0,0,0,0,0,0,2769,0,0,0,2981888,2396160,0,3153920,0,0,0,0,0,0,0,0,2740224,0,0,0,0,0,0,541,3027,541,541,541,541,541,541,541,541,541,2584,541,541,541,0,0,0,0,0,2793472,0,0,0,0,0,2469888,2506752,2756608,0,0,2580480,0,0,0,0,0,0,2517,0,0,0,0,0,0,0,0,541,541,541,3029,541,541,541,541,541,541,0,2396160,2400256,2179072,2179072,2441216,2179072,2469888,2179072,2179072,2179072,2519040,2179072,2179072,2179072,2179072,2179072,2179072,2801664,2813952,2179072,2838528,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2453504,2179072,2473984,2482176,2179072,2179072,2179072,2179072,2588672,2179072,2613248,2646016,2179072,2179072,2695168,2756608,2179072,2179072,2179072,2932736,2179072,2179072,2179072,2179072,2179072,3117056,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2584576,2179072,2179072,2125824,2125824,2125824,2519040,2125824,2125824,2125824,2125824,2588672,2125824,2613248,2646016,2125824,2125824,2695168,2756608,2125824,2125824,2125824,2125824,2932736,2125824,2125824,2125824,2125824,2125824,2932736,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3129344,2125824,2125824,3153920,3166208,3174400,2506752,2506752,2506752,0,3108864,3198976,0,0,3043328,0,3149824,2936832,0,2760704,3180,2437120,0,0,0,0,0,0,646,0,0,0,0,651,652,653,654,655,0,0,0,0,0,2953216,0,0,2826240,3158016,2428928,0,3018752,2764800,2572288,0,0,0,0,0,677,0,0,0,0,0,0,0,0,0,0,0,2741,0,0,0,0,0,3051520,2179072,2428928,2437120,2179072,2486272,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2654208,2678784,2760704,2764800,2854912,2969600,2179072,3006464,2179072,3018752,2179072,2179072,2179072,3149824,2125824,2428928,2437120,2969600,2125824,3006464,2125824,3018752,2125824,2125824,2125824,2125824,3149824,2125824,2428928,2437120,2125824,2486272,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2654208,2678784,2760704,2764800,2785280,2854912,2969600,2125824,3006464,2125824,3018752,2125824,2125824,2125824,2125824,3149824,2179072,3051520,2125824,3051520,2125824,3051520,0,2490368,2498560,0,0,0,0,2875392,0,0,0,3180,0,0,0,0,0,0,2834432,0,3227648,2568192,2564096,0,2940928,2179072,2179072,2498560,2179072,2179072,2179072,2555904,2564096,2179072,2179072,2179072,2617344,2179072,2179072,2179072,2179072,2179072,2179072,2662400,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3137536,2125824,2125824,2498560,2125824,2125824,2125824,2555904,2564096,2125824,2555904,2564096,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3137536,2940928,2940928,0,0,0,0,0,2748416,2879488,0,0,0,0,0,0,0,0,0,2519,0,0,0,0,0,541,2940928,0,0,0,0,0,2748416,2879488,0,3180,0,0,0,0,0,0,0,375,0,0,0,0,0,0,0,360,0,0,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2125824,0,2502656,0,0,3010560,0,0,0,0,0,0,0,0,2990080,2179072,2179072,2179072,3129344,2179072,2179072,3153920,3166208,3174400,2396160,2400256,2125824,2125824,2441216,2125824,2469888,2125824,2125824,2125824,2519040,2125824,2125824,2179072,2502656,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3010560,2179072,2179072,2125824,2125824,2125824,2125824,2125824,2125824,2605056,2125824,2629632,2125824,2125824,2650112,2125824,2125824,2125824,2707456,2125824,2736128,2125824,2125824,2125824,2125824,2125824,2502656,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3010560,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3137536,2125824,2125824,2498560,2125824,2125824,2502656,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3010560,2125824,2125824,2125824,0,0,0,0,0,0,2739,0,0,0,0,0,0,0,2743,0,0,0,2592768,0,0,0,0,0,0,2179072,2179072,2179072,2179072,2179072,2592768,2179072,2179072,2179072,3129344,2179072,2179072,3153920,3166208,3174400,2397073,2401169,2126737,2126737,2442129,2126737,2470801,2125824,2125824,2449408,0,2535424,3031040,2859008,0,0,0,0,0,2179072,2449408,2179072,2535424,2179072,2609152,2179072,2859008,2179072,2179072,2179072,3031040,2125824,2449408,2125824,2535424,2125824,2609152,2125824,2859008,2125824,2125824,2125824,3031040,2125824,2125824,2449408,2125824,2535424,2125824,2609152,2125824,2859008,2125824,2125824,2125824,0,2179072,2125824,2125824,2457600,2179072,2179072,2179072,2179072,2457600,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2179072,2125824,2125824,2179072,2179072,2179072,2179072,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,0,0,0,0,0,0,0,0,0,0,1727,0,0,1728,0,3031040,2125824,2527232,0,0,0,0,0,2179072,2527232,2179072,2179072,2179072,2179072,2179072,2125824,2126738,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3125248,2125824,2125824,2125824,2125824,2125824,2527232,2125824,2125824,2125824,2125824,2125824,3092480,2125824,2527232,2125824,2125824,2125824,2125824,2125824,3092480,0,0,0,0,0,693,0,0,0,0,0,0,365,365,365,0,0,0,0,0,707,708,0,0,0,0,0,714,0,0,0,0,0,0,703,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3020,3026944,0,0,0,2404352,2179072,2179072,2179072,2179072,3026944,2404352,2125824,2125824,2125824,2125824,3026944,0,2539520,0,2949120,2179072,2658304,2973696,2179072,2125824,2658304,2973696,2125824,2125824,2658304,2973696,2125824,0,2711552,256e4,2179072,256e4,2125824,256e4,2125824,0,2179072,2179072,2531328,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2605056,2179072,2629632,2179072,2179072,2650112,0,0,2809856,0,0,0,0,0,0,0,0,0,0,3088384,0,0,0,0,0,442,0,0,454,470,470,470,470,470,470,470,470,470,470,480,470,470,470,470,470,111051,111051,111051,111051,111051,111051,111051,111051,111051,111051,111051,111051,111051,111051,111051,111051,459,459,111051,459,459,459,459,459,459,459,459,459,111051,111051,111051,111051,111051,111051,111051,111051,111051,111051,459,111051,111051,111051,459,111051,111051,111051,111051,111051,0,0,0,0,0,0,0,0,0,2795,0,0,0,0,0,0,12290,3,0,0,2183168,0,0,0,0,0,299,300,0,2134016,303,304,2125824,1060,0,0,2179072,2125824,2125824,2179072,2179072,2179072,2179072,2179072,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,1060,2125824,2125824,2125824,2125824,2125824,0,0,0,0,0,0,0,0,0,0,662,0,662,0,0,0,0,303,118784,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2434,0,303,303,303,303,303,303,303,0,0,0,0,0,303,0,303,1,12290,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2155,0,12290,3,0,0,2183168,0,0,0,0,0,33403,300,0,2134016,49791,304,2105632,12290,3,0,0,294,0,0,0,0,294,0,0,0,0,0,0,0,2124,0,0,0,0,0,0,0,0,0,788,814,0,814,809,0,0,0,122880,122880,122880,122880,122880,122880,122880,122880,122880,122880,122880,122880,122880,122880,122880,0,0,0,122880,0,122880,122880,122880,0,0,0,0,0,122880,0,0,122880,0,0,0,0,0,0,0,0,122880,0,0,0,0,0,0,0,0,0,0,0,0,3002,0,0,0,0,0,0,0,0,122880,122880,122880,122880,122880,122880,122880,122880,122880,0,0,122880,0,0,0,0,0,0,0,0,0,0,712,0,0,0,716,0,0,0,147456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2459,0,1092,0,2424832,2433024,0,0,2457600,0,0,0,0,0,0,0,0,0,0,728,0,0,0,0,0,1823,2125824,2125824,2125824,2408448,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,1919,2125824,2125824,2125824,0,0,0,131072,0,0,0,69632,73728,0,0,0,0,0,65536,0,0,0,0,0,740,407,0,0,0,0,0,0,0,0,0,0,1158,0,0,0,0,0,0,131072,0,0,131072,131072,0,0,0,0,0,0,0,131072,0,0,131072,0,0,131072,0,0,0,0,135168,135168,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2756,0,0,0,0,135168,0,0,135168,0,0,0,0,0,0,0,0,0,0,735,0,797,0,0,0,0,0,0,0,135168,0,135168,135168,135168,135168,135168,135168,0,135168,135168,135168,135168,135168,135168,135168,0,0,0,0,0,135168,0,135168,1,12290,3,0,0,2183168,0,0,0,0,0,636,637,0,2134016,640,641,0,1361,2125824,2125824,2125824,2125824,2125824,2424832,2433024,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,0,987,2125824,2125824,2125824,2125824,0,304,139264,0,0,0,0,0,0,0,0,0,0,0,0,0,0,225709,0,12290,3,0,0,2183168,0,0,0,0,0,299,33406,0,2134016,303,49794,0,61440,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3178,0,304,2424832,2433024,0,0,2457600,0,0,0,0,0,0,0,0,0,0,757,0,0,0,0,762,301,301,301,143661,371,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,143661,301,301,143661,301,301,301,143731,301,301,301,143731,69632,73728,301,301,143661,301,301,65536,301,301,301,301,301,143661,143661,143661,143661,143661,143661,143661,143661,143661,301,301,143661,301,301,301,301,301,301,301,301,301,366,301,0,143661,301,301,301,143661,143661,143661,143661,143661,143661,143661,143661,143661,143661,143661,143661,143661,143661,143661,143661,301,301,301,143661,301,143661,143661,143661,143661,143661,143731,143661,143731,143731,143731,143731,143731,143731,143731,143661,143661,143661,143661,143661,143661,143661,143661,1,301,143661,301,143661,143661,143661,143661,143661,143661,301,0,301,0,301,301,301,301,301,301,301,301,301,143661,301,143661,143661,143661,143661,301,0,0,0,3117056,0,0,0,0,0,0,0,2200252,2200252,0,0,0,0,0,0,662,0,0,0,0,0,541,541,541,541,541,541,541,541,2168,541,541,541,0,0,0,0,0,155648,155648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,325,0,0,0,0,155648,155648,0,155648,155648,155648,155648,155648,155648,155648,155648,155648,0,0,0,0,155648,0,0,155648,155648,155648,155648,155648,155648,155648,155648,155648,155648,155648,155648,155648,155648,155648,155648,0,0,0,0,0,155648,0,155648,0,0,0,0,0,155648,0,0,0,0,0,155648,155648,0,155648,155648,0,12290,3,0,0,2183168,126976,0,0,0,0,299,300,0,2134016,303,304,0,0,0,3117056,0,0,0,0,0,0,0,365,0,0,0,0,0,0,0,3563,0,541,541,541,541,541,541,541,541,541,3209,541,541,541,541,541,159744,159744,159744,159744,0,0,159744,0,0,0,0,0,0,0,0,159744,0,0,0,0,0,0,0,159744,159744,159744,163840,159744,159744,159744,159744,159744,0,0,0,0,0,0,0,0,0,2805,0,541,541,541,541,541,0,25162,0,0,0,159744,0,0,0,25162,25162,25162,159744,25162,25162,25162,25162,25162,25162,25162,25162,159744,159744,159744,159744,25162,159744,25162,1,167936,167936,167936,167936,167936,167936,167936,167936,167936,167936,167936,167936,167936,167936,167936,167936,1,167936,167936,167936,167936,0,0,167936,0,0,0,0,0,0,0,0,167936,167936,167936,167936,167936,167936,167936,167936,167936,0,0,0,0,0,0,0,0,0,2976,0,0,0,0,0,0,0,0,0,2138112,1183,0,0,0,0,0,0,0,0,0,0,0,0,3168,0,0,0,0,0,0,0,0,172032,0,172032,0,0,0,0,0,0,0,0,0,365,0,293,0,0,0,348,172032,172032,0,0,172032,0,0,172032,172032,0,172032,0,0,0,0,172032,172032,0,0,0,0,0,0,0,0,0,0,172032,0,0,0,0,0,0,2777,0,0,0,0,0,0,2784,0,0,0,0,0,0,2986,2987,0,2988,0,2990,0,0,0,0,0,0,0,69632,73728,0,135168,135168,0,0,65536,135168,172032,0,172032,172032,0,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,172032,0,0,0,0,0,0,0,0,0,3014,0,0,0,0,0,0,176128,176128,176128,176128,176128,176128,176128,176128,176128,176128,176128,176128,176128,176128,176128,176128,1,176128,176128,176128,176128,0,0,176128,0,0,0,0,0,0,0,0,176128,176128,176128,176128,176128,176128,176128,176128,176128,0,0,0,0,0,0,0,0,0,3175,0,0,0,0,0,0,0,3,78115,78115,293,0,634,0,0,0,299,300,0,2134016,303,304,1164,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,361,541,541,1308,541,541,541,541,541,541,541,541,541,541,541,541,541,0,0,2242,0,914,563,563,563,563,563,563,563,563,563,563,563,563,563,563,0,0,587,587,587,1203,541,587,563,541,541,541,541,541,563,563,563,563,3070,563,563,563,563,3074,563,563,587,587,587,587,587,1079,0,0,0,0,0,0,0,0,0,0,1102,0,0,0,0,0,0,0,229376,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1134592,0,0,0,0,1691,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3201,563,563,587,587,587,587,0,0,0,0,0,0,0,0,0,0,541,541,541,541,3569,541,541,0,0,563,563,563,563,563,563,563,2251,563,563,563,563,563,563,587,3109,587,587,587,587,587,587,587,587,2407,587,587,587,587,587,2412,2413,563,563,2288,563,563,563,563,563,563,563,563,563,563,563,563,563,563,3541,587,587,587,2375,587,587,587,587,587,587,587,587,587,587,587,587,587,1497,587,587,0,0,0,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,1439,0,3007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3317,541,541,541,541,3038,541,541,541,541,541,541,541,541,541,541,541,541,1300,541,541,541,563,563,563,3078,563,563,563,563,563,563,563,563,563,563,563,563,1401,563,563,563,587,587,587,587,3120,587,587,587,587,587,587,587,587,587,587,587,1042,587,587,587,587,0,3159,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,155648,3214,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1359,563,563,563,587,3259,587,587,587,3262,587,587,587,587,587,587,587,541,541,563,563,587,587,0,0,0,0,0,0,0,0,0,0,3609,541,541,541,587,587,3270,587,587,587,587,587,587,587,587,587,587,587,587,587,1498,587,587,541,541,541,3330,3331,541,541,541,541,541,541,541,541,563,563,563,563,3581,563,563,563,563,563,3349,563,563,563,563,563,563,563,563,563,587,587,587,587,587,587,587,587,0,541,541,541,3406,541,541,541,541,563,563,563,563,563,563,3415,563,0,587,587,587,587,587,291,1079,0,0,0,0,0,0,0,0,0,249856,249856,249856,249856,249856,249856,249856,249856,1,587,3431,587,587,587,587,587,587,3437,587,587,587,3441,587,541,563,563,3473,563,563,563,563,3478,563,563,563,563,3483,563,563,563,563,977,563,563,563,563,0,587,587,587,587,587,587,1931,587,587,587,587,587,587,587,587,587,2678,587,587,587,2681,587,587,0,0,3456,541,541,541,541,541,541,541,541,541,541,541,541,541,0,2586,0,541,3471,563,563,563,563,563,563,563,563,563,563,563,563,563,563,0,2327,563,3487,587,587,587,587,587,587,587,587,587,587,587,587,587,587,0,0,563,563,587,587,587,587,0,0,541,541,563,563,587,587,0,541,541,541,3205,541,541,541,541,541,541,541,3210,541,541,541,541,541,541,2816,541,541,2820,541,541,541,541,541,541,541,541,3041,541,541,541,541,541,541,541,541,2556,541,541,541,541,541,541,541,541,2233,541,541,541,541,541,0,0,563,587,0,541,563,587,0,541,563,587,0,541,563,587,0,0,0,0,0,0,0,0,0,3510,0,0,0,0,541,541,541,541,541,2165,541,541,541,541,541,541,541,541,3616,563,563,563,563,563,563,563,2265,563,563,563,563,2270,563,563,563,184932,184932,184932,184932,184932,184932,184932,0,0,0,0,0,184932,0,184932,1,12290,3,0,0,0,0,0,0,0,0,0,0,0,0,301,301,0,0,301,301,143661,301,301,301,301,301,301,301,301,301,301,301,143731,301,301,301,301,12290,3,78115,78115,293,0,0,0,0,0,299,300,0,2134016,303,304,587,0,0,188416,541,587,563,541,541,541,541,541,563,563,563,563,587,587,587,587,0,0,0,0,2731,0,0,0,0,305,0,0,0,0,0,0,0,0,0,0,0,0,0,249856,0,0,0,192972,192972,192972,192972,192972,192972,192972,192972,192972,192972,192972,192972,192972,192972,192972,192972,0,192972,0,1,0,0,0,0,0,192972,192972,192972,192972,192972,192972,192972,192972,192972,192972,0,0,192972,0,0,0,0,0,0,0,0,0,0,1145,365,365,0,0,1148,192972,192972,192972,0,192972,192972,192972,192972,192972,0,0,0,0,0,0,0,0,0,3304,0,3180,0,0,0,0,302,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,541,407,407,407,407,407,407,407,0,0,0,0,0,407,0,407,1,12290,3,0,0,0,0,0,0,0,0,0,0,0,118784,299,12290,3,78115,78115,293,0,0,0,0,0,299,300,0,302,303,304,587,0,0,740,541,587,563,541,541,541,541,541,563,563,563,563,587,587,587,587,0,0,2729,0,0,0,0,0,0,740,1184,0,0,0,0,1188,0,0,0,0,0,0,0,378,0,381,0,0,0,381,0,0,563,587,587,587,587,587,1079,1559,0,0,0,1565,0,0,0,1571,2034,0,0,0,0,1577,2036,0,0,0,0,0,0,0,397,0,0,0,0,0,397,0,0,0,0,0,1577,0,0,0,0,0,0,0,0,0,0,0,0,0,262144,0,0,0,0,0,1188,1669,0,0,0,0,0,0,0,0,0,0,0,0,3177,0,0,0,563,563,587,587,587,587,1559,2030,0,0,0,0,1565,2032,0,0,0,0,0,0,2997,0,0,0,0,0,0,0,0,0,0,1586,1587,0,0,0,0,0,0,0,0,1669,0,0,0,0,0,0,0,0,0,0,0,0,106496,0,0,0,0,0,0,2034,0,2036,0,0,0,0,0,0,0,0,0,0,0,0,0,1150976,0,0,0,0,0,563,563,563,563,2325,2652,0,0,0,0,587,587,587,587,587,587,587,587,587,587,587,587,587,2343,0,307,0,307,0,0,0,0,0,0,0,0,0,307,0,0,0,0,0,0,3011,0,0,0,0,3016,3017,0,3019,0,0,0,0,0,204800,204800,0,204800,204800,204800,204800,204800,204800,204800,204800,204800,204800,204800,204800,204800,204800,204800,205107,204800,204800,205106,205107,204800,205106,205106,204800,204800,0,0,0,0,0,0,0,0,0,122880,0,122880,122880,122880,122880,122880,12290,3,0,0,2183801,0,0,0,0,0,299,300,151552,2134016,303,304,0,212992,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172032,0,0,151552,0,0,0,0,0,0,0,0,0,0,0,0,0,303,0,0,0,0,0,3117056,0,0,0,0,0,0,0,0,2200253,0,0,0,0,0,0,678,0,0,0,0,0,0,0,0,0,0,2977,0,0,0,0,0,0,914,2126737,2126737,2126737,2126737,2126737,2425745,2433937,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,3138449,2126811,2126811,2499547,2126811,2126811,2126737,2724753,2126737,2732945,2773905,2126737,2126737,2126737,2806673,2126737,2831249,2126737,2126737,2864017,2126737,2126737,2126737,2126737,2126811,2126811,2126811,2126811,2126811,2593755,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3036123,2126811,2126811,3072987,2126811,2126811,2126811,3122139,2126811,2126737,2126737,2921361,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,3117969,2126737,0,2126811,2126811,2126811,2126811,2126811,0,0,0,0,0,0,0,0,0,0,1190,0,0,0,0,0,2126811,2425819,2434011,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3126235,2126811,2126811,2126811,2126811,2126811,2626523,2126811,2126811,2126811,2126811,2126811,2126811,2700251,2126811,2716635,2126811,2724827,2126811,2733019,2773979,2126811,0,2502656,0,0,3010560,0,0,0,0,0,0,0,0,2990080,2179072,2179072,3125248,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2125824,2125824,2125824,2125824,2125824,2592768,2125824,2125824,2125824,2125824,2126811,2126811,2806747,2126811,2831323,2126811,2126811,2864091,2126811,2126811,2126811,2126811,2921435,2126811,2126811,2126811,0,2179072,2126811,2126737,2457600,2179072,2179072,2179072,2179072,2458513,2126737,2126737,2126737,2126737,2126737,2524049,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2601873,2126737,2126737,2458587,2126811,2126811,2126811,2126811,2183168,0,0,0,0,0,0,0,0,0,0,1206,0,1208,0,0,0,0,2126737,2126737,2126737,2409361,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,0,0,2126811,2126811,2126811,2409435,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2839515,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3118043,2126811,2126811,2126811,2126811,2126811,2126811,2126811,0,0,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2462609,2466705,2126737,2126737,2126737,2642833,2126737,2126737,2126737,2126737,2126737,2126737,2720657,2126737,2126737,2126737,2126737,2126737,2126737,2126737,3040145,2126737,3064721,2126737,2126737,2126737,2126737,2126737,3101585,2769809,2778001,2782097,2798481,2823057,2126737,2126737,2126737,2884497,2126737,2913169,2126737,2126737,2126737,2126737,2126737,2126737,2626449,2126737,2126737,2126737,2126737,2126737,2126737,2700177,2126737,2716561,2126737,2126737,3134353,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,3208081,2126737,0,0,0,0,0,0,3026,541,541,541,541,541,541,541,541,541,541,1352,541,541,541,541,541,0,0,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2462683,2466779,2126811,2126811,2126811,2126811,2126811,2929627,2126811,2126811,2126811,2999259,2126811,2126811,2126811,2126811,3060699,2126811,2126811,2126811,2126811,2454491,2126811,2474971,2483163,2126811,2126811,2126811,2126811,2126811,2126811,2532315,2126811,2126811,2126811,2446299,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2552795,2769883,2778075,2782171,2798555,2823131,2126811,2126811,2126811,2884571,2126811,2913243,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3130331,2126811,2126811,3154907,3167195,3175387,2506752,2507739,2507665,2126811,2126811,3134427,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3208155,2126811,2179072,2126811,2126811,2126811,2642907,2126811,2126811,2126811,2126811,2126811,2126811,2720731,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3040219,2126811,3064795,2126811,2126811,2126811,2126811,2126811,3101659,0,0,0,2388881,2126737,2126737,2126737,2421649,2126737,2126737,2126737,2126737,2126737,2454417,2126737,2474897,2483089,2126737,2126737,2126737,2126737,2126737,2126737,2532241,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2605969,2126737,2630545,2126737,2126737,2651025,2126737,2126737,2126737,2708369,2126737,2737041,2126737,2126737,2126737,2126737,2126737,2126737,2663313,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,0,0,988,2126811,2126811,2126811,2126811,3036049,2126737,2126737,3072913,2126737,2126737,2126737,3122065,2126737,2126737,3142545,2126737,2126737,2126737,3171217,2126737,2126737,2126737,2888593,2126737,2126737,2925457,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,986,2126811,2126811,2126811,2126811,2126811,2126811,2126737,3191697,3195793,2126737,0,0,0,0,0,0,2388955,2126811,2126811,2126811,2421723,2126811,2126811,2449408,0,2535424,3031040,2859008,0,0,0,0,0,2179072,2449408,2179072,2535424,2126811,2737115,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2888667,2126811,2126811,2925531,2126811,2126811,2126811,2126811,2126811,2585563,2126811,2126811,2126811,2126811,2126811,2618331,2126811,2126811,2126811,2126811,2126811,2126811,2606043,2126811,2630619,2126811,2126811,2651099,2126811,2126811,2126811,2708443,2126811,3142619,2126811,2126811,2126811,3171291,2126811,2126811,3191771,3195867,2126811,2179072,2126811,2126737,2179072,2179072,2179072,2637824,2179072,2179072,2179072,2179072,2727936,2752512,2179072,2179072,2179072,2842624,2846720,2179072,3112960,3219456,2126737,2126737,3113873,3220369,2126811,2126811,3113947,3220443,0,0,0,0,0,0,0,415,415,0,0,0,0,0,415,0,3096576,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3223552,0,0,2126737,2126737,2417553,2126737,2126737,2126737,2126737,2929553,2126737,2126737,2126737,2999185,2126737,2126737,2126737,2126737,3060625,2126737,2126737,2126737,2126737,2933649,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,3130257,2126737,2126737,2126737,2519953,2126737,2126737,2126737,2126737,2589585,2126737,2614161,2646929,2126737,2126737,2696081,2757521,2126737,2446225,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2552721,2126737,2126737,2126737,2638737,2126737,2126737,2126737,2126737,2728849,2753425,2126737,2126737,2126737,2126737,2843537,2847633,2126737,2896785,2917265,2126737,2126737,2945937,2126737,2126737,2995089,2126737,3003281,2126737,2126737,3023761,2126737,3068817,3085201,2126737,3097489,2126737,2126737,2126737,2126737,2126737,2126737,2126737,3224465,0,0,2126811,2126811,2417627,2843611,2847707,2126811,2896859,2917339,2126811,2126811,2946011,2126811,2126811,2995163,2126811,3003355,2126811,2126811,3023835,2126811,3068891,3085275,2126811,3097563,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3224539,2179072,2126811,2126737,2126737,2126737,3031953,2126737,2126811,2450395,2126811,2536411,2126811,2610139,2126811,2859995,2126811,2126811,2126811,2126811,2126811,2524123,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2601947,2126811,2515857,2126737,2126737,2126737,2544529,2548625,2126737,2126737,2597777,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2585489,2126737,2126737,2126737,2126737,2126737,2618257,2126811,2515931,2126811,2126811,2126811,2544603,2548699,2126811,2126811,2597851,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2655195,2679771,2761691,2765787,2786267,2855899,2970587,2126811,3007451,3154833,3167121,3175313,2397147,2401243,2126811,2126811,2442203,2126811,2470875,2126811,2126811,2126811,2520027,2126811,2126811,2126811,2126811,2126811,2638811,2126811,2126811,2126811,2126811,2728923,2753499,2126811,2126811,2126811,2126811,2126811,2126811,3179483,2179072,2126811,2126737,2179072,2179072,2126737,2126737,2126811,2126811,0,0,0,0,0,0,2510848,2514944,0,0,2678784,2760704,2764800,2854912,2969600,2179072,3006464,2179072,3018752,2179072,2179072,2179072,3149824,2126737,2429841,2438033,2126737,2487185,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2655121,2679697,2761617,2765713,2786193,2855825,2970513,2126737,3007377,2126737,3019665,2126737,2126737,2126737,2126737,3150737,2126811,2429915,2438107,2126811,2487259,2126811,2126811,2589659,2126811,2614235,2647003,2126811,2126811,2696155,2757595,2126811,2126811,2126811,2126811,2933723,2126811,2126811,2663387,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2802651,2814939,2126811,3019739,2126811,2126811,2126811,2126811,3150811,2179072,3051520,2126737,3052433,2126811,3052507,0,2490368,2498560,2126811,2556891,2565083,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3138523,2940928,2941841,2941915,0,0,0,0,0,2748416,2879488,0,3180,0,0,0,0,0,0,0,647,0,0,0,0,0,0,0,0,0,2467,0,0,2470,0,0,0,2179072,2502656,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3010560,2179072,2179072,2126737,2126737,2126811,2126811,0,2486272,0,0,0,0,0,2678784,2854912,3006464,2503569,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,3011473,2126737,2126737,2126737,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2179072,2126811,2126737,2179072,2179072,2179072,2179072,2126737,2126737,2126737,2126737,2126811,2126811,2126811,2126811,0,0,0,0,0,0,0,0,0,0,0,2112,0,0,0,0,2503643,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,2126811,3011547,2126811,2126811,2126811,0,0,0,2179072,2126811,2126737,2179072,2179072,2179072,2179072,2179072,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2179072,2609152,2179072,2859008,2179072,2179072,2179072,3031040,2126737,2450321,2126737,2536337,2126737,2610065,2126737,2859921,3032027,2126811,2527232,0,0,0,0,0,2179072,2527232,2179072,2179072,2179072,2179072,2179072,2126737,2126737,2802577,2814865,2126737,2839441,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,2126737,3126161,2126737,2528145,2126737,2126737,2126737,2126737,2126737,3093393,2126811,2528219,2126811,2126811,2126811,2126811,2126811,3093467,0,0,0,0,0,782,0,0,0,0,0,0,541,843,541,541,541,541,541,1796,541,541,541,541,541,541,541,541,541,541,541,2822,541,541,541,541,3026944,0,0,0,2404352,2179072,2179072,2179072,2179072,3026944,2405265,2126737,2126737,2126737,2126737,3027857,2405339,2126811,2126811,2126811,2126811,3027931,0,2539520,0,2949120,2179072,2658304,2973696,2179072,2126737,2659217,2974609,2126737,2126811,2659291,2974683,2126811,0,2711552,256e4,2179072,2560913,2126737,2560987,2126811,0,2179072,2179072,3133440,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3207168,2179072,0,0,0,0,0,0,2464,0,0,0,0,0,0,0,0,0,324,398,0,0,0,324,0,2126737,2126811,0,2179072,2126737,2126811,0,2179072,2126737,2126811,2985984,2985984,2986897,2986971,0,0,0,0,0,0,3164,0,0,3167,0,0,0,0,0,0,0,1135,0,0,0,0,0,0,0,0,0,824,0,0,0,0,0,0,0,221184,221184,0,0,0,0,0,0,0,0,0,221184,221184,0,0,221184,221184,221184,0,0,0,0,0,0,0,221184,0,0,221184,221184,221184,221184,221184,221184,221184,221184,221184,221184,221184,221184,221184,221184,221184,221184,0,0,0,0,0,0,0,0,0,0,221184,0,221184,221184,221184,221184,221184,221184,221184,221184,221184,221184,1,12290,3,0,0,0,0,0,0,0,0,0,0,0,139264,300,0,303,0,0,0,303,0,304,0,0,0,304,0,0,0,304,69632,139682,0,0,0,0,0,65536,0,0,0,0,98304,0,0,0,53248,0,0,0,0,0,2662400,0,2813952,0,0,3133440,0,98304,0,0,0,0,0,0,0,0,0,0,0,0,111051,0,0,0,0,303,0,304,0,0,0,2473984,2478080,0,0,0,0,0,0,0,0,0,159744,159744,159744,159744,159744,159744,159744,159744,159744,159744,159744,159744,159744,159744,159744,159744,163840,3121152,2179072,2179072,3141632,2179072,2179072,2179072,3170304,2179072,2179072,3190784,3194880,2179072,914,0,0,0,0,0,0,3172,3173,0,0,0,0,0,0,0,0,0,665,0,0,668,0,0,0,0,914,0,2387968,2125824,2125824,2125824,2420736,2125824,2125824,2125824,2125824,2125824,2453504,2125824,2473984,2482176,2125824,2125824,2125824,2125824,2125824,2125824,2531328,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2605056,2125824,3190784,3194880,2125824,988,0,0,0,988,0,2387968,2125824,2125824,2125824,2420736,2125824,0,2125824,2125824,2125824,2125824,2125824,0,0,0,299,0,0,0,303,0,0,0,303,119198,73728,0,0,0,0,0,65536,0,3096576,2179072,2179072,2179072,2179072,2179072,2179072,2179072,3223552,914,0,2125824,2125824,2416640,2125824,2125824,2125824,2125824,2125824,2125824,2625536,2125824,2125824,2125824,2125824,2125824,2125824,2699264,2125824,2715648,2125824,2723840,2125824,2732032,2772992,2125824,3084288,2125824,3096576,2125824,2125824,2125824,2125824,2125824,2125824,2125824,3223552,988,0,2125824,2125824,2416640,225890,225890,225890,225890,225890,225890,225890,225741,225741,225741,225741,225741,225906,225741,225906,1,12290,3,0,0,0,0,0,0,0,90409,90409,90409,90409,0,94506,94506,90409,90409,94506,94506,94506,94506,94506,94506,94506,94506,94506,94506,94506,94506,94506,94506,94506,94506,1,2125824,237568,2125824,2125824,2125824,2125824,2125824,0,0,0,0,0,0,0,0,0,0,1222,0,0,0,0,0,249856,249856,249856,249856,249856,249856,249856,249856,249856,249856,249856,249856,249856,249856,249856,249856,0,0,0,0,0,0,0,0,0,217088,0,0,0,0,0,0,0,0,0,0,0,0,0,304,0,0,2125824,241664,2125824,2125824,2125824,2125824,2125824,0,0,0,0,0,0,0,0,0,0,1236,0,0,0,0,0,254414,254414,254414,254414,254414,254414,254414,254414,254414,254414,254414,254414,254414,254414,254414,254414,0,0,0,0,0,0,0,12290,0,0,0,2183168,0,0,270336,0,0,299,300,0,2134016,303,304,200704,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,687,2125824,0,2125824,2125824,2125824,2125824,2125824,0,0,180224,0,0,0,0,0,0,0,663,0,0,666,667,0,0,0,0,2940928,0,0,0,0,0,2748416,2879488,0,20480,0,0,0,0,0,0,0,679,0,0,0,0,0,0,0,0,0,1129,0,0,0,0,0,0,1,12290,2113826,0,0,0,0,0,0,296,0,0,0,296,0,0,0,0,0,0,3182,0,0,0,0,3187,0,0,0,0,0,0,0,69632,73728,0,0,0,0,0,65536,0,0,0,0,266240,0,0,0,0,0,0,0,0,0,0,0,266240,0,0,0,0,0,0,0,0,0,0,1,0,0,0,266240,0,0,0,0,0,0,0,0,0,0,0,0,0,2662400,0,2813952,12290,2113826,0,0,2183168,0,0,0,0,0,299,300,0,2134016,303,304,2125824,245760,0,0,2179072,2125824,2125824,2179072,2179072,2179072,2179072,2179072,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2584576,2125824,2125824,2125824,2125824,2125824,2617344,2125824,2125824,2125824,2125824,2125824,245760,2125824,2125824,2125824,2125824,2125824,0,0,0,0,0,0,0,0,0,0,1245,0,0,0,0,0,274432,274432,274432,274432,274432,274432,274432,0,0,0,0,0,274432,0,274432,1,12290,3,0,0,0,0,0,253952,0,0,0,253952,0,0,0,0,0,0,0,0,0,0,0,0,0,1155072,0,0,0,0,0,0,12290,3,78115,78115,293,0,0,0,0,0,299,300,0,0,303,304,563,563,587,587,587,587,0,2030,0,0,0,0,0,2032,0,0,0,0,0,0,3196,0,0,0,0,0,0,0,0,0,0,3186,0,0,0,3189,0,0,0,0,2034,0,0,0,0,0,2036,0,0,0,0,0,0,0,695,0,0,0,0,365,365,365,0,0,2485,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,266240,0,0,0,1678,0,0,0,0,0,0,0,0,0,0,0,0,338,0,0,0,0,0,0,0,1669,0,0,0,0,0,0,0,0,2114,0,0,0,0,0,0,3395,541,541,541,541,3399,541,541,541,541,541,541,1346,541,541,541,541,541,541,1356,541,541,12290,3,78115,78456,293,0,0,0,0,0,299,300,0,0,303,304,541,588,564,564,564,564,564,564,564,588,588,588,541,588,588,588,588,588,588,588,588,564,564,541,564,588,564,588,1,0,0,0,0,2775,0,0,0,0,0,0,0,0,0,0,0,0,163840,0,0,0,1,12290,3,78116,293,0,0,0,0,0,0,0,0,0,0,0,0,167936,0,0,0,282624,282624,282624,282624,282624,282624,282624,282624,282624,282624,282624,282624,282624,282624,282624,282624,1,0,0,0,0,0,282624,282624,282624,282624,282624,282624,282624,282624,282624,282624,0,0,282624,0,0,0,0,0,0,0,0,0,0,1600,1601,0,0,0,0,282624,282624,282624,0,282624,282624,282624,282624,282624,0,0,0,0,0,0,0,0,0,254414,254414,254414,254414,254414,254414,254414,254414,1,2981888,2396160,0,3153920,3180,0,0,0,0,0,0,0,2740224,0,0,0,0,0,0,679,751,0,0,0,0,0,0,0,0,0,1144,0,365,365,0,1147,0,0,0,0,0,286720,286720,0,286720,286720,286720,286720,286720,286720,286720,286720,286720,0,0,0,0,0,0,0,286720,286720,286720,286720,286720,286720,286720,286720,286720,286720,286720,286720,286720,286720,286720,286720,0,3108864,3198976,0,0,3043328,0,3149824,2936832,0,2760704,3305,2437120,0,0,0,0,0,0,680,0,0,0,0,0,0,0,0,0,300,0,0,0,0,0,0,0,0,0,0,2875392,0,0,0,3386,0,0,0,0,0,0,2834432,2940928,0,0,0,0,0,2748416,2879488,0,3386,0,0,0,0,0,0,0,709,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,309,0,0,0,0,0,308,0,308,309,0,308,308,0,0,0,308,308,309,309,0,0,0,0,0,0,308,408,309,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,781,0,0,0,309,413,0,0,69632,73728,0,0,0,0,0,65536,0,0,0,0,0,783,0,802,0,0,0,0,541,847,541,541,541,541,541,2830,2831,541,541,541,541,2834,541,541,541,541,541,541,541,3521,541,3523,541,541,3525,541,563,563,0,0,432,0,0,0,0,308,449,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,489,489,463,489,489,489,489,489,489,489,514,489,489,489,489,489,489,489,489,489,489,489,489,489,489,489,534,489,489,489,489,489,542,565,542,565,542,542,565,542,589,565,565,565,565,565,565,565,589,589,589,542,589,589,589,589,589,589,589,589,565,565,542,565,589,565,589,1,0,0,674,0,0,0,0,0,0,0,0,0,0,0,0,0,323,324,0,0,704,0,0,0,0,0,0,0,711,0,0,0,0,0,0,0,742,0,0,0,0,742,0,748,0,0,0,736,0,0,0,0,0,0,0,0,0,0,0,747,0,0,0,0,0,792,663,841,0,0,0,0,541,845,541,541,541,541,541,2217,541,541,541,541,541,541,541,541,541,541,541,1802,541,541,541,541,0,0,0,0,645,0,0,0,0,0,0,0,0,0,0,0,0,172032,0,0,0,0,0,0,0,0,765,0,0,768,0,0,0,0,774,0,0,778,0,0,0,0,0,0,3562,0,3564,541,541,541,541,541,541,541,541,541,3219,541,541,541,541,541,3224,0,0,785,0,0,0,0,789,0,0,0,0,0,0,0,793,0,0,736,0,793,0,0,0,0,648,0,0,0,0,0,0,0,807,808,0,0,0,0,808,0,0,807,0,0,0,0,0,755,0,0,816,817,0,0,0,793,0,0,0,0,0,0,0,0,0,0,0,0,221184,0,0,0,0,0,0,648,0,0,0,0,0,834,789,0,0,0,0,0,0,0,2139,0,0,0,0,0,0,0,0,0,1712,0,0,0,0,0,0,838,839,789,789,0,0,0,0,789,736,789,0,541,541,849,853,563,964,563,967,563,563,981,563,563,0,587,587,587,996,1e3,587,0,0,0,0,0,0,0,0,3180,3448,0,0,0,0,0,0,0,2465,0,0,0,0,0,0,0,0,0,2152,0,0,0,0,0,0,1093,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1135,0,0,0,0,1152,0,0,0,0,1157,0,0,0,0,0,0,0,822,0,816,0,664,0,0,0,0,0,0,0,0,1201,0,0,0,0,0,0,0,0,0,0,0,0,221184,0,221184,0,0,0,1253,0,0,0,0,0,0,0,0,0,0,0,0,0,339,340,341,541,541,1342,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2239,0,0,0,0,0,1596,0,0,0,0,0,0,0,0,0,0,0,0,233472,0,0,0,0,0,0,1640,0,0,0,0,0,0,0,0,0,0,0,0,354,355,356,357,1653,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1163,0,0,0,0,1669,0,0,0,0,0,0,1673,0,0,0,0,0,0,0,69632,73728,0,0,0,346,345,65536,344,0,1729,0,0,0,0,541,541,541,541,541,541,541,541,541,541,541,3327,541,541,1742,541,541,541,541,541,541,541,541,541,1755,541,541,541,541,541,541,541,2193,541,541,541,541,541,541,541,541,541,2557,541,541,541,541,541,541,541,541,541,1794,541,541,1797,541,541,541,541,541,541,541,541,541,541,1314,541,541,541,1318,541,541,1809,541,541,541,541,541,1814,541,541,541,541,541,541,541,1360,914,563,563,563,563,563,563,563,563,563,563,563,563,563,563,0,2328,1824,563,563,563,563,563,1831,563,563,563,563,563,1837,563,563,563,563,563,3093,563,563,563,563,563,563,563,563,563,3102,563,563,1892,563,563,563,563,563,563,563,563,563,563,1905,563,563,563,563,978,563,563,563,563,0,587,587,587,587,587,587,1997,587,587,587,587,587,587,587,587,587,1531,587,587,587,587,587,587,563,563,563,1910,563,563,563,563,563,563,563,26028,1920,587,587,587,0,1285,1469,1377,541,541,1339,541,541,563,563,1431,563,587,587,1927,587,587,587,587,587,1933,587,587,587,587,587,587,587,1529,587,587,587,587,587,587,587,587,1932,587,587,587,587,587,587,587,587,1494,587,587,587,587,587,587,587,587,587,1946,587,587,587,587,587,587,587,587,587,587,587,587,587,1513,587,587,563,563,2026,587,587,587,0,2030,0,0,0,0,0,2032,0,0,0,0,0,0,131072,0,131072,131072,131072,131072,0,131072,131072,131072,131072,131072,131072,131072,0,0,0,0,0,131072,0,131072,1,0,0,0,2042,0,0,0,0,0,0,0,0,0,0,0,0,365,365,365,0,0,2141,0,0,2148,0,0,0,0,0,0,0,0,0,0,0,0,237568,0,0,0,0,0,0,2140,541,541,541,541,541,541,541,541,541,541,541,2170,541,541,2173,541,541,541,541,541,541,2181,541,541,541,541,541,541,541,541,2841,541,541,541,541,541,541,541,541,1294,541,541,541,541,541,541,541,541,1327,541,541,541,1334,1336,541,541,541,541,2214,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2535,541,563,2258,563,563,563,563,563,563,2266,563,563,563,563,563,563,563,983,563,0,587,587,587,587,1001,587,563,2300,563,563,563,563,563,563,563,563,563,563,563,563,563,563,587,587,587,2345,587,587,587,587,587,587,2353,587,587,587,587,587,587,587,1950,587,587,587,587,587,587,587,587,1468,587,587,587,587,587,587,587,587,2387,587,587,587,587,587,587,587,587,587,587,587,587,587,587,541,587,563,2414,541,541,541,541,563,563,563,563,587,587,587,587,2030,0,2032,0,2034,0,2036,0,0,2428,0,0,0,0,0,0,0,0,0,0,1713,0,0,0,0,0,2436,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1179,2449,0,0,0,0,0,2453,0,0,0,0,0,0,0,0,0,0,1726,0,0,0,0,0,0,0,0,0,2477,0,0,0,0,0,0,0,0,0,0,0,0,245760,0,0,0,0,0,2501,0,0,0,0,0,0,0,0,0,0,0,0,0,386,338,0,541,541,541,2539,541,541,541,541,541,541,541,541,541,541,541,541,541,2198,541,541,0,0,0,563,563,563,563,563,563,563,563,563,2595,563,563,563,563,563,3238,563,563,563,563,563,563,563,563,563,563,2880,563,563,563,563,563,587,587,587,2661,587,587,587,587,587,587,587,587,587,587,587,2669,587,587,587,587,2714,587,587,587,587,587,587,541,587,563,541,541,2417,2418,563,563,2421,2422,587,587,2425,2426,0,1563,0,0,0,2735,0,0,0,0,0,0,2740,0,0,0,0,0,0,0,1102,1101,0,0,0,0,0,0,0,0,1724,0,0,0,0,0,0,0,0,1172,0,0,0,0,0,0,0,0,1187,0,0,0,0,0,0,1104,0,0,0,0,0,2763,0,0,0,0,0,0,0,0,0,0,0,2431,2432,0,0,0,0,0,0,0,0,2792,2793,0,0,0,0,0,0,0,0,0,0,2049,0,0,0,0,0,541,541,541,541,2829,541,541,541,541,541,541,541,541,541,541,2836,563,563,563,563,2876,563,563,563,563,563,563,563,563,563,563,563,0,2329,587,587,587,2884,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,1874,587,587,2933,587,587,587,587,587,587,587,587,587,587,587,587,587,1536,587,587,2955,541,2957,563,2959,587,0,0,0,0,0,0,0,0,0,0,0,0,0,0,541,541,541,541,541,541,541,587,3442,0,3444,0,0,0,0,0,3180,0,0,0,0,3452,0,0,0,0,0,796,0,0,0,0,0,0,0,0,0,0,0,0,796,0,0,0,0,3454,0,541,3457,541,3459,541,541,541,541,541,541,541,541,541,541,541,541,2585,0,0,0,563,587,3488,587,3490,587,587,587,587,587,587,587,587,587,587,587,1047,587,587,587,587,587,0,0,0,3505,0,0,0,0,0,0,0,3512,0,0,541,541,541,541,541,541,3462,541,541,541,541,541,541,541,541,541,3334,541,541,541,563,563,563,541,541,541,3517,541,541,541,541,541,541,541,541,541,541,563,563,563,563,563,563,563,563,563,563,3530,563,563,563,563,563,563,563,563,563,563,563,587,587,587,587,587,587,587,587,3544,587,587,587,587,587,587,587,587,587,587,587,0,0,0,0,541,541,541,541,563,563,310,311,312,0,0,0,0,0,0,0,0,0,0,0,0,0,669,0,0,0,0,0,421,0,0,0,0,450,0,0,0,0,0,0,0,0,304,304,304,304,0,304,304,304,0,0,0,0,450,450,421,450,450,450,450,450,450,450,450,450,450,450,450,450,450,533,450,533,533,533,450,533,533,533,533,450,543,566,543,566,543,543,566,543,590,566,566,566,566,566,566,566,590,590,590,543,590,590,590,590,590,590,590,590,566,566,616,621,590,621,627,1,960,563,563,563,563,563,563,563,563,0,587,587,587,587,587,587,587,3136,587,587,3138,587,587,587,587,587,0,0,0,0,1657,0,0,0,0,0,0,0,0,0,0,0,0,254414,0,0,0,1676,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1211,541,541,541,1810,541,541,541,541,541,541,541,541,541,541,541,1360,914,563,563,563,563,563,563,563,563,563,563,563,563,563,1378,0,0,2486,0,0,0,0,0,0,0,0,0,0,0,0,0,694,0,0,541,541,541,541,2528,541,541,541,541,2532,541,541,541,541,541,541,541,541,3218,541,541,541,541,541,541,541,541,2583,541,541,541,541,0,2586,0,0,0,0,563,563,563,563,563,563,2592,563,563,563,563,2596,563,0,587,587,587,587,587,78115,1079,0,0,0,0,0,0,0,0,0,225741,225741,225741,225741,225741,225741,225741,225741,225741,225741,225741,225741,225741,225741,225741,225741,0,0,0,0,0,0,0,2658,587,587,587,587,2662,587,587,587,587,587,587,587,587,587,587,2665,587,587,587,587,587,0,0,0,313,314,315,316,317,318,319,320,321,322,0,0,0,0,0,0,694,0,0,0,0,0,365,365,365,0,0,313,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2142208,0,0,316,0,0,0,0,0,0,0,0,0,0,0,0,0,730,0,0,0,423,431,433,422,431,0,313,431,451,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,485,490,490,501,490,490,490,490,490,490,490,490,516,516,529,529,530,530,530,530,530,530,530,530,530,530,530,516,530,530,530,530,530,544,567,544,567,544,544,567,544,591,567,567,567,567,567,567,567,591,591,591,613,591,591,591,591,591,591,591,614,615,615,613,615,614,615,614,1,734,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1238,0,0,0,0,767,0,0,0,0,0,0,0,0,0,0,0,0,266240,0,0,0,0,0,702,0,0,0,0,0,702,0,0,0,541,541,541,541,541,541,3322,541,541,541,541,541,541,541,541,1816,541,541,541,541,541,541,1360,563,563,563,968,563,563,563,563,563,0,587,587,587,587,587,587,587,3150,3151,3152,541,541,563,563,587,587,0,0,2963,0,0,0,0,0,0,0,0,3180,0,0,3389,0,0,0,0,0,1108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,308,309,0,1150,1108,0,0,0,0,0,0,0,0,0,0,0,0,0,1119,0,0,1212,0,0,0,0,0,0,0,0,0,0,0,0,0,1225,0,0,0,0,0,797,0,0,0,0,0,0,0,0,0,0,0,0,797,0,1360,914,563,563,1364,563,563,1368,563,563,563,563,563,563,563,563,985,0,587,587,587,587,587,587,1382,563,1387,563,563,1391,563,563,1394,563,563,563,563,563,563,563,984,563,0,587,587,587,587,587,1004,587,1460,587,587,587,587,587,587,587,587,1474,587,1479,587,587,1483,587,587,1486,587,587,587,587,587,587,587,587,587,587,587,587,587,1939,587,587,0,1692,0,1694,0,0,0,0,0,0,1701,0,0,0,0,0,0,0,2442,0,0,0,0,0,0,0,0,0,1173,0,0,0,0,0,0,541,541,1745,541,541,541,541,541,541,541,541,541,1757,541,541,541,541,541,541,2192,541,541,2195,541,541,541,541,541,541,541,1798,541,541,541,541,541,541,1806,541,541,1792,1793,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2824,541,0,563,563,563,563,563,563,563,563,563,563,563,563,563,1840,563,0,587,587,587,587,587,78115,1079,0,0,1083,1087,0,0,1091,587,587,587,587,1948,587,587,587,587,587,587,587,587,587,587,587,1478,587,587,587,587,587,587,587,587,1961,587,587,587,587,587,587,587,587,587,587,587,1533,587,587,587,587,0,2034,0,2036,0,0,0,0,0,0,2430,0,0,0,0,0,0,0,2454,0,0,0,0,0,0,0,0,0,2429,0,0,0,0,0,0,0,0,0,2476,0,0,0,0,0,0,0,0,0,0,0,0,365,365,365,702,0,0,0,2502,2503,0,0,0,0,0,0,0,0,0,0,0,0,1147355,0,0,0,587,587,2700,587,587,587,587,587,587,587,587,587,587,587,587,587,2004,587,587,0,0,2802,0,0,0,0,0,0,0,2806,541,541,541,541,541,541,541,2204,541,541,541,541,541,541,541,541,541,2220,541,541,541,541,541,541,541,2956,563,2958,587,2960,0,0,0,0,0,2966,0,0,0,0,0,0,0,69632,73728,0,0,0,350,348,65536,0,0,0,0,2970,0,0,0,0,0,0,0,0,0,0,0,0,365,365,208896,0,3035,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1807,541,541,3050,3051,541,541,541,541,541,541,541,541,541,541,541,541,541,2223,2224,541,563,3090,563,3092,563,563,563,563,563,563,563,563,563,563,563,563,1415,563,563,563,3117,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,1484,587,587,3132,587,3134,587,587,587,587,587,587,587,587,587,587,587,1937,1938,587,587,587,0,3192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,309,308,541,541,541,541,3228,541,541,541,541,563,563,563,563,563,563,563,563,563,945,563,563,563,563,587,3503,0,3504,0,0,0,0,0,0,0,0,0,0,0,541,541,541,541,2810,3515,541,3516,541,541,541,3520,541,541,541,541,541,541,541,563,3528,563,3529,563,563,563,3533,563,563,563,563,563,563,563,563,587,3542,587,3543,587,587,587,3547,587,587,587,587,587,587,587,587,0,0,0,0,3673,541,541,541,3675,563,563,3676,587,587,587,3678,0,0,541,541,563,563,587,587,0,541,541,3204,541,541,541,541,541,541,541,541,541,541,541,541,541,2238,2586,0,324,324,374,0,0,0,0,0,0,0,0,0,0,0,0,0,1133,0,0,0,0,434,374,0,439,445,0,452,465,465,465,465,465,465,465,465,465,465,465,465,465,465,465,465,465,465,465,465,491,491,502,491,491,491,491,491,491,491,491,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,545,568,545,568,545,545,568,545,592,568,568,568,568,568,568,568,592,592,592,545,592,592,592,592,592,592,592,592,568,568,545,568,592,568,592,1,587,587,587,1019,587,587,587,587,587,587,587,587,587,587,587,587,1052,587,587,587,1122,0,1124,1125,0,0,0,1127,1128,0,0,0,0,0,0,0,0,334,0,0,0,0,0,334,0,0,0,1166,1167,0,0,0,0,0,0,0,0,0,0,0,0,400,0,0,0,0,0,1228,0,0,0,0,1233,0,0,0,0,0,0,0,0,0,365,300,0,0,0,0,0,0,0,0,0,1241,0,0,0,0,1244,0,1194,0,1113,0,1250,1127,0,0,0,0,0,0,0,0,0,541,541,1274,541,541,541,541,541,541,2203,541,541,541,541,541,541,541,541,541,541,1329,541,541,541,541,541,541,541,1322,541,541,1324,541,541,541,1328,541,541,541,541,541,541,541,541,3522,541,541,541,541,541,563,563,3068,563,563,563,563,563,563,563,563,2603,563,563,563,563,563,563,563,1360,914,563,563,1365,563,563,563,563,563,563,563,563,563,563,563,587,3427,587,587,3429,563,563,563,1405,563,563,563,563,563,563,563,1414,563,563,1416,563,0,587,587,587,1051,587,78115,1079,0,0,0,0,0,0,0,0,1134592,0,0,0,0,0,0,1134592,0,0,0,0,563,563,1420,563,563,563,563,563,563,563,563,563,563,563,563,563,1437,563,563,563,563,563,1444,563,563,563,563,563,26028,1360,988,587,587,1457,587,0,0,0,0,0,0,0,3447,3180,0,0,0,0,0,0,0,1237,0,0,541,541,1273,541,1276,541,0,0,0,1656,0,0,0,0,0,0,0,0,0,0,0,0,541,846,541,541,587,587,587,1993,587,587,587,587,587,587,587,587,587,587,587,587,1496,587,587,587,563,2025,587,587,587,2029,0,2030,0,0,0,0,0,2032,0,0,0,0,0,0,1134592,0,0,0,0,0,0,0,0,0,0,1134592,0,0,0,2034,0,0,0,0,0,2036,0,0,0,0,0,2039,0,2078,0,0,0,0,0,0,0,0,0,0,0,0,0,0,331,0,0,0,0,2092,0,0,0,0,0,0,0,0,0,0,0,0,643,0,0,0,541,2172,541,541,541,541,541,541,541,541,541,541,541,541,541,541,0,0,0,541,2188,541,541,541,541,541,541,541,541,541,541,541,541,541,541,0,2240,541,541,541,541,2229,541,2231,541,541,541,541,541,541,541,0,0,0,0,0,0,1146880,0,1146880,0,0,0,0,0,0,0,0,2617344,0,0,0,0,0,2789376,0,0,0,563,563,563,563,563,563,563,563,563,2253,563,563,563,563,0,0,0,0,0,0,587,2654,587,587,587,587,587,587,3135,587,587,587,587,587,587,587,587,587,1530,587,587,587,587,587,587,2257,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,1889,2273,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2272,563,563,563,563,2316,563,2318,563,563,563,563,563,563,563,0,0,0,0,0,0,587,587,587,587,587,587,587,587,587,587,587,587,587,587,541,563,2344,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,1516,2360,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,1517,587,587,587,587,2403,587,2405,587,587,587,587,587,587,587,541,587,0,0,0,0,0,0,0,3508,0,0,0,0,0,0,541,541,541,541,541,541,3400,541,541,541,2499,0,0,0,0,0,2504,0,0,0,0,0,0,0,0,0,0,2086,2087,0,0,0,0,541,541,2526,2527,541,541,541,541,541,541,541,541,541,541,541,541,541,2237,0,0,541,541,2566,541,541,541,541,541,541,541,541,541,541,541,541,541,541,3046,541,0,0,0,563,563,563,2590,563,2591,563,563,563,563,563,563,563,1411,563,563,563,563,563,563,563,563,1429,563,563,563,563,563,563,563,563,1916,563,563,26028,1921,587,587,587,0,0,0,2761,0,0,0,0,0,0,0,0,0,0,0,0,674,0,0,0,541,541,2837,541,541,541,541,541,541,541,2843,541,541,541,541,541,541,541,2232,541,541,2235,2236,541,541,0,0,563,563,563,2885,563,563,563,563,563,563,563,2891,563,563,563,563,0,0,2329,0,0,0,587,587,587,587,587,587,587,587,587,587,2341,587,587,587,2920,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,1519,587,587,587,587,3373,587,587,541,541,563,563,587,587,0,0,0,0,0,0,0,0,0,2968,563,587,587,587,587,587,587,3493,587,587,587,587,587,587,587,587,1034,587,587,587,587,587,587,587,326,327,328,0,0,0,0,0,0,0,0,0,0,0,0,0,1161,0,0,0,0,0,325,373,328,372,0,0,0,0,0,0,0,0,0,0,2111,0,0,0,0,0,325,0,0,372,372,402,0,328,0,0,0,0,0,0,0,0,0,365,339,293,0,0,0,0,0,0,325,0,327,0,0,0,453,466,466,466,466,466,466,466,479,466,466,466,466,466,466,466,466,466,466,466,466,492,492,466,492,492,507,509,492,492,507,492,518,518,518,518,518,518,518,518,518,518,518,518,518,518,518,535,518,518,518,518,518,546,569,546,569,546,546,569,546,593,569,569,569,569,569,569,569,593,593,593,546,593,593,593,593,593,593,593,593,569,569,546,569,593,569,593,1,0,0,658,659,0,0,0,0,0,0,0,0,0,0,670,671,0,689,0,0,0,0,0,0,0,0,0,0,365,365,365,0,0,0,0,0,800,0,0,0,0,0,0,0,0,0,0,0,0,718,0,720,0,0,0,0,0,0,727,0,0,0,731,0,0,0,0,0,0,1159168,417,417,0,0,0,0,0,417,0,0,784,0,786,0,0,0,0,0,0,0,0,0,0,0,0,759,0,0,0,0,0,798,0,803,0,806,0,0,0,0,803,806,0,0,0,0,0,0,741,0,0,0,0,0,0,0,0,0,0,0,0,806,806,803,0,0,0,0,0,0,0,786,0,798,0,815,0,0,0,0,0,802,0,0,783,0,0,0,0,802,0,0,0,0,0,0,0,802,0,0,0,0,806,0,707,0,0,823,0,0,0,0,0,823,823,826,0,0,0,786,0,0,0,0,0,835,0,0,0,0,0,0,0,2480,0,0,0,0,0,0,0,0,0,1100,0,0,0,0,0,0,0,0,0,0,784,0,0,0,835,815,835,0,541,541,850,541,541,541,541,541,3052,541,541,541,541,541,541,541,541,3060,541,541,541,541,541,3217,541,541,541,541,541,541,541,3222,541,541,541,541,541,2529,541,541,541,541,541,541,541,541,541,541,541,3043,541,541,541,541,856,541,541,869,541,541,880,541,885,541,541,893,896,901,541,909,563,563,966,969,974,563,982,563,563,0,587,587,587,997,587,1003,587,587,1016,587,587,1027,587,1032,587,587,1040,1043,1048,587,1056,587,0,0,0,0,0,0,3507,0,0,0,0,0,0,0,541,541,541,541,541,3031,541,541,541,541,0,0,0,1110,0,0,0,0,0,0,0,1117,0,0,0,0,0,0,0,69632,73728,0,0,0,421,0,65536,0,0,1137,1138,0,0,0,0,1142,0,0,0,365,365,0,0,0,0,0,0,769,0,0,0,775,776,0,0,0,0,0,0,0,69632,73728,0,0,0,374,0,65536,0,0,1165,0,0,0,0,0,0,0,0,0,0,0,0,0,0,515,522,0,0,1182,741,0,0,0,1134,0,0,0,0,0,0,0,0,0,367,0,0,0,0,0,0,541,541,541,1281,541,541,541,541,541,541,1296,541,541,541,1301,541,541,541,541,541,3229,541,541,541,563,563,563,563,563,563,563,941,563,563,563,563,563,563,1360,914,563,563,563,563,563,563,563,563,563,563,1373,563,563,563,563,563,3249,563,3251,563,563,563,563,563,563,563,563,1852,563,563,563,563,563,563,563,563,563,563,1388,563,563,563,1393,563,563,563,563,563,563,563,563,1451,26028,1360,988,587,587,587,587,587,1485,587,587,587,587,587,587,587,587,587,587,587,587,587,1500,1540,587,587,0,541,587,563,541,541,541,541,541,563,563,563,563,563,563,3477,563,563,563,563,563,563,563,563,1396,563,563,563,563,563,563,563,0,0,1607,1608,1609,0,1611,1612,0,0,0,0,1617,0,0,0,0,0,0,770,0,0,773,0,0,777,0,0,0,0,0,0,796,0,0,0,0,0,541,541,541,541,541,541,563,563,563,563,563,563,933,563,563,947,563,563,563,563,0,0,1639,0,0,1642,0,1644,0,0,0,0,0,1650,1651,0,0,0,0,0,805,0,0,692,0,0,672,0,692,0,810,0,1667,0,0,1669,0,0,0,0,1671,1672,0,0,0,0,0,0,0,2491,2492,0,0,0,0,0,0,0,0,0,2686976,2736128,0,0,2531328,2707456,0,0,0,0,0,1708,0,0,1711,0,0,0,0,0,1715,0,0,0,0,0,0,2134016,0,0,0,0,0,0,0,0,1138688,0,1719,1720,0,0,0,0,0,0,0,0,0,0,0,0,1711,0,0,0,1731,1585,1585,1733,541,1735,541,1736,1737,541,1739,541,541,541,541,541,1310,541,541,541,541,541,541,541,1317,541,541,541,541,541,1748,541,541,541,541,541,541,541,541,541,1759,541,1743,541,541,541,541,541,541,541,541,541,1756,541,541,541,541,541,541,541,3333,541,541,541,541,541,563,563,563,922,926,563,563,563,563,563,563,952,563,957,1760,541,541,541,541,1764,541,1766,541,541,541,541,541,541,541,541,541,889,541,541,541,541,907,541,1774,1775,1777,541,541,541,541,541,541,541,1785,1786,1787,541,541,1790,1791,541,541,541,541,541,541,541,1799,541,541,541,1803,541,541,541,541,541,541,2530,541,541,541,541,541,541,541,541,541,541,1315,541,541,541,541,1320,541,541,541,541,1811,541,541,541,541,541,541,541,541,541,1822,1360,914,563,563,563,563,563,563,563,563,563,563,563,563,563,1379,0,1827,563,1829,563,1830,563,1832,563,1834,563,563,563,1838,563,563,563,563,1390,563,563,563,563,563,563,563,563,563,563,563,2652,0,587,587,587,563,1859,563,1861,563,563,563,563,563,563,563,563,1869,1870,1872,563,0,587,587,1042,587,587,78115,1079,0,0,0,0,0,0,0,0,307,307,307,0,0,0,0,0,1907,563,563,563,563,563,563,563,563,563,1918,26028,0,1923,587,1925,587,1926,587,1928,587,1930,587,587,587,1934,587,587,587,587,587,587,587,3366,587,587,587,587,3367,3368,587,587,587,587,587,1947,587,587,587,587,1951,587,587,587,587,1955,587,1957,587,587,1976,1977,1978,587,587,1981,1982,587,587,587,587,587,587,587,1999,2e3,587,587,587,587,587,587,587,2015,2016,2017,541,2019,541,541,563,2023,1990,587,587,587,1994,587,587,587,587,587,587,587,2003,587,587,587,0,1288,1472,1380,541,541,541,541,541,563,563,563,563,3475,563,563,563,563,563,563,563,563,563,563,2267,563,563,563,563,563,563,2024,563,1982,587,2028,587,0,2030,0,0,0,0,0,2032,0,0,0,0,0,0,2134016,0,0,0,0,0,0,0,746,0,0,0,0,0,2043,0,0,2046,2047,0,0,0,2051,0,0,0,0,0,0,800,0,0,0,0,0,0,0,800,0,0,0,0,541,541,541,541,2090,0,0,0,0,2094,0,0,0,0,0,0,0,0,0,0,0,2456,0,0,0,0,0,0,0,0,1669,0,0,0,0,0,0,0,2113,0,0,2116,0,0,2119,0,0,0,0,0,0,2126,0,2128,0,0,0,0,0,0,0,69632,73728,0,370,370,0,0,65536,370,0,0,0,0,2137,0,0,0,0,0,0,0,0,0,0,0,0,1159168,0,0,0,0,2047,0,2147,0,0,0,0,0,0,0,0,0,0,0,0,1103,1104,1105,1106,0,2158,0,0,541,541,541,541,541,541,541,541,541,541,541,541,541,3329,541,541,541,2174,541,2176,541,541,541,541,541,541,2184,541,2186,541,541,541,541,541,3332,541,541,541,541,541,541,541,563,563,563,3069,563,563,563,563,563,563,563,2212,541,541,541,541,541,541,2219,541,541,541,541,541,541,541,541,541,1312,541,541,541,541,541,541,563,563,2259,563,2261,563,563,563,563,563,563,2269,563,2271,563,563,563,563,1422,563,563,563,563,563,563,563,563,563,563,1438,587,587,2346,587,2348,587,587,587,587,587,587,2356,587,2358,587,587,0,0,0,3634,0,3636,541,541,541,541,541,541,541,563,563,921,563,563,563,563,940,944,950,563,955,563,563,2261,541,2416,541,541,563,2420,563,563,587,2424,587,587,2030,0,2032,0,0,0,2452,0,0,0,0,0,0,0,0,0,0,0,0,1132,0,0,0,0,0,2461,0,0,0,0,0,2466,0,2468,2469,0,0,0,0,0,0,0,69632,73728,0,420,420,0,0,65536,420,0,0,0,0,2488,0,0,0,0,0,0,0,0,0,0,0,0,2179072,2179072,2179072,2179072,0,0,0,0,2516,2468,0,0,0,0,0,2521,0,0,0,541,541,541,541,541,3321,541,541,541,3325,541,541,541,541,541,541,1749,541,541,541,541,541,541,541,541,541,541,2558,541,541,541,541,541,2563,541,541,541,2568,541,541,541,541,541,541,541,2575,541,541,541,541,541,541,2542,541,2544,541,541,541,541,541,541,541,541,563,3411,563,563,3413,563,563,563,541,541,541,541,2580,541,541,541,541,541,541,541,541,0,2586,0,0,0,0,0,812,0,809,792,0,0,814,0,667,0,788,0,0,0,563,563,563,563,563,563,563,563,2594,563,563,563,563,0,2652,0,0,0,0,587,587,587,587,587,587,587,587,587,587,587,587,2342,587,563,2624,563,563,563,563,2628,563,563,563,2633,563,563,563,563,563,563,2629,563,563,563,563,563,563,2636,563,563,563,563,2640,563,563,563,563,563,563,563,563,2646,563,563,563,563,0,2652,0,0,0,0,587,587,587,2656,587,2657,587,587,2660,587,587,587,587,587,587,587,587,587,587,587,587,587,2383,587,587,587,587,2672,587,2674,587,587,587,587,587,587,587,587,587,587,587,1970,587,587,587,587,587,2699,587,587,587,587,587,587,587,2706,587,587,587,587,587,587,587,3375,541,3376,563,3377,587,0,0,0,587,587,2712,587,587,587,587,587,587,587,587,541,587,563,541,541,541,541,563,563,2800,2801,0,0,0,0,0,0,0,0,0,541,541,541,541,541,541,541,541,541,3402,2992,0,0,0,0,0,0,0,0,0,0,0,2992,0,0,0,0,0,0,840,0,0,0,0,0,541,541,541,541,541,541,2166,541,541,541,541,541,0,3022,0,0,0,3025,541,541,541,541,541,541,3032,541,541,541,541,541,541,2570,541,541,541,541,2574,541,541,541,541,541,541,1286,541,541,541,541,541,541,541,541,541,541,1818,541,541,541,541,1360,541,541,3036,541,541,541,541,541,541,541,3042,541,541,541,541,541,541,541,2531,541,541,541,541,541,541,541,541,541,563,3230,563,563,563,3233,563,3048,541,541,541,541,541,541,541,541,541,541,3057,3059,541,541,541,541,541,541,2582,541,541,541,541,541,541,0,2586,0,3062,541,3064,3065,541,563,563,563,563,563,563,3072,563,563,563,563,563,1425,563,563,563,563,563,563,563,563,563,563,2889,563,563,563,563,563,563,563,3076,563,563,563,563,563,563,563,3082,563,563,563,563,563,3088,563,563,3091,563,563,563,563,563,563,563,563,3098,3100,563,563,563,563,563,3342,563,563,563,563,563,563,563,563,563,563,2645,563,563,563,563,563,563,563,3104,563,3106,3107,563,587,587,587,587,587,587,3114,587,587,587,0,1544,1545,1546,541,541,1548,541,541,563,563,1552,563,587,587,3118,587,587,587,587,587,587,587,3124,587,587,587,587,587,587,1998,587,587,587,587,587,587,587,587,587,3551,587,587,3553,587,0,0,3130,587,587,3133,587,587,587,587,587,587,587,587,3140,3142,587,587,0,0,3633,0,0,0,541,541,3638,541,541,541,3642,563,587,587,3146,587,3148,3149,587,541,587,563,541,3154,563,3156,587,3158,0,0,0,0,0,3181,0,3183,0,0,0,0,0,0,0,3190,0,0,0,3193,3194,0,0,0,0,0,0,0,0,0,0,0,0,2200252,2200252,2200252,0,563,563,563,563,3237,563,563,563,563,563,563,563,563,563,563,563,1400,563,563,563,563,563,563,563,3248,563,563,563,563,563,563,563,563,3256,563,563,563,563,563,3352,563,563,563,563,587,587,587,587,587,3358,563,563,563,587,587,587,3261,587,587,587,587,587,587,587,3266,587,0,0,0,0,0,3506,0,0,3509,0,0,0,0,0,541,541,541,541,3662,541,563,563,563,563,3666,563,0,3310,0,0,3313,0,0,0,0,0,0,0,0,0,0,0,0,2200253,151552,2200253,0,587,587,587,3372,587,587,587,541,541,563,563,587,587,0,0,0,0,0,0,0,0,2967,0,0,0,0,0,0,3383,3384,0,3180,0,0,0,0,0,3392,0,0,0,0,0,1097,0,0,0,0,0,0,0,0,0,0,331,382,384,0,0,0,563,3417,563,563,563,563,563,563,563,563,563,587,587,587,587,587,587,587,3115,587,587,587,587,587,587,3433,587,587,587,587,587,587,587,587,587,541,563,3472,563,3474,563,563,563,563,563,563,563,563,563,563,563,563,3243,563,563,563,3470,563,563,563,563,563,563,563,563,563,563,563,563,563,563,3485,563,563,563,563,3532,563,563,563,563,563,563,563,563,563,587,587,3110,587,587,587,587,587,587,587,587,587,587,587,3546,587,587,587,587,587,587,587,587,587,3555,3556,0,0,0,3559,0,0,0,0,0,3565,3566,3567,541,541,541,3570,541,3572,541,541,541,541,3577,3578,3579,563,563,563,3582,563,3584,563,0,587,587,1044,587,587,291,1079,0,0,1082,1086,0,0,1090,563,563,563,3589,3590,3591,3592,587,587,587,3595,587,3597,587,587,587,587,587,1464,587,587,587,1473,587,587,587,587,587,587,1949,587,587,587,587,587,587,587,587,587,2949,587,587,587,541,587,563,587,3602,0,0,0,0,0,0,0,0,0,0,541,541,541,541,541,541,1738,541,541,541,563,3644,563,563,563,3648,563,587,587,3650,587,587,587,3654,587,0,0,0,0,0,0,0,0,3180,0,3449,0,0,0,0,0,0,0,69632,73728,266240,0,0,0,0,65536,0,0,0,0,329,330,0,0,0,0,0,0,0,0,0,0,0,349,0,0,0,0,0,369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,686,0,0,0,0,369,0,0,0,377,379,0,0,0,0,0,0,0,0,1099,0,0,0,0,0,0,0,0,1115,0,0,0,0,0,0,0,0,0,3185,0,0,0,0,0,0,0,0,412,0,0,0,412,69632,73728,0,369,369,0,424,65536,369,0,0,0,369,424,499,503,499,499,508,499,499,499,508,499,424,424,0,330,424,0,0,424,424,0,0,0,0,0,0,0,0,1156,0,0,0,0,0,0,0,0,664,0,0,0,0,0,0,0,0,680,681,0,0,0,0,0,0,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,547,570,547,570,547,547,570,547,594,570,570,570,570,570,570,570,594,594,594,547,594,594,594,594,594,594,594,594,570,570,547,570,594,570,594,1,587,587,587,1020,587,587,587,587,587,587,587,587,587,587,587,587,1954,587,587,587,0,0,1109,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1215,0,0,0,0,0,0,0,0,0,0,0,1226,541,1279,541,541,541,541,541,1291,541,541,541,541,541,541,541,541,541,1351,541,541,541,541,541,541,1360,914,563,563,563,563,563,563,563,563,1371,563,563,563,563,563,563,2643,563,563,563,563,563,563,563,563,563,1866,563,563,563,563,563,563,1383,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2286,587,587,1992,587,587,587,587,587,587,587,587,587,587,587,587,587,2411,541,587,563,563,3677,587,587,587,0,0,541,541,563,563,587,587,0,541,3203,541,541,541,3206,541,541,541,541,541,541,541,541,541,541,1313,541,541,541,541,541,425,425,0,0,425,440,0,425,425,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,493,493,467,493,493,493,493,493,493,493,493,493,493,493,493,493,493,493,493,548,571,548,571,548,548,571,548,595,571,571,571,571,571,571,571,595,595,595,548,595,595,595,595,595,595,595,595,571,571,548,571,595,571,595,1,0,1213,0,0,0,0,0,0,0,0,0,0,0,0,0,0,732,0,0,0,0,0,1695,0,0,0,0,0,0,0,0,0,0,0,360,0,0,0,0,0,0,0,0,2093,0,0,0,0,0,0,0,0,0,0,0,365,365,0,0,0,2157,0,0,0,541,541,541,541,541,541,541,541,541,541,541,541,3328,541,2201,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2200,563,2415,541,541,541,2419,563,563,563,2423,587,587,587,0,0,0,0,0,0,541,541,541,541,541,541,541,563,3067,563,563,563,563,563,563,563,563,563,3253,563,563,563,563,563,563,0,2460,0,0,0,0,0,0,0,0,0,0,0,0,0,0,748,0,0,0,0,0,2791,0,0,0,0,0,0,0,0,0,0,0,365,365,1146,0,0,2943,587,587,587,587,587,587,587,587,587,587,587,587,541,587,563,541,541,0,0,0,0,2971,0,0,0,2975,0,0,0,0,0,2981,0,0,0,0,0,1128,0,0,0,0,0,1233,0,0,0,1265,0,0,0,2994,0,2996,0,0,0,0,0,0,0,0,3004,0,0,0,0,0,1169,0,1171,0,0,0,0,1176,0,0,0,0,0,0,1643,0,0,0,0,0,0,0,0,0,0,2520,0,0,0,0,541,0,0,0,0,3009,0,0,0,0,0,0,0,0,0,0,0,383,0,0,0,387,541,3063,541,541,541,3066,563,563,563,563,563,563,563,563,563,563,3083,563,563,563,563,563,563,563,3105,563,563,563,3108,587,587,587,587,587,587,587,587,587,1509,587,587,587,587,587,587,3144,587,587,3147,587,587,587,541,587,563,541,541,563,563,587,587,0,0,3295,0,0,0,0,0,0,0,0,2766,0,0,0,0,0,0,0,0,2151,0,0,0,0,0,0,0,0,2506,0,0,0,0,0,2512,0,0,0,0,0,0,3195,0,0,0,0,0,0,0,0,0,0,0,2782,0,0,0,0,541,541,541,541,3216,541,541,541,541,541,541,541,3221,541,3223,541,541,541,541,541,3408,541,541,3410,563,563,563,563,3414,563,563,563,563,1446,1447,563,563,563,26028,1360,988,587,587,587,587,587,587,3671,0,0,0,541,541,541,3674,563,563,563,563,563,587,587,3260,587,587,587,587,587,587,587,587,587,587,3274,587,587,587,587,587,587,3280,587,587,587,587,587,587,587,587,587,587,587,541,587,563,541,2722,563,3350,563,563,563,563,563,563,563,563,587,587,587,587,587,587,587,587,3655,587,587,587,587,3363,587,587,587,587,587,587,587,587,587,3369,587,0,0,0,541,587,563,541,541,541,541,541,563,563,563,563,563,3071,563,563,563,563,563,0,0,0,0,541,541,3660,3661,541,541,563,563,3664,3665,563,563,563,563,1423,563,563,1430,563,563,563,563,563,563,563,563,2631,563,563,563,563,563,563,563,587,587,3668,3669,587,587,0,0,0,0,541,541,541,541,563,563,563,924,928,931,563,939,563,563,563,954,956,959,0,0,690,691,0,0,0,0,696,0,0,0,365,365,365,0,0,0,0,0,1185,0,0,0,0,0,0,0,0,0,0,0,3180,0,0,0,0,0,0,829,0,0,0,0,0,0,0,0,0,758,0,0,0,0,0,0,758,0,0,0,0,0,758,758,910,541,563,563,563,563,927,563,563,563,563,563,563,563,563,563,1432,563,563,1436,563,563,563,983,0,587,587,587,587,1057,78115,1079,0,0,0,0,0,0,0,0,1220,0,0,0,0,0,0,0,0,0,282624,282624,282624,282624,282624,282624,282624,282624,587,1521,587,587,587,587,587,587,587,587,587,587,587,587,587,587,1514,587,0,0,0,1721,0,0,0,0,0,0,0,0,0,0,0,0,1193,0,0,0,0,2040,0,0,0,0,0,0,0,0,0,0,0,0,0,0,749,0,2171,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2211,3288,541,3290,563,3292,587,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3514,468,468,468,486,494,494,486,494,494,494,494,494,494,494,494,519,527,527,527,527,527,527,527,527,527,527,527,527,527,527,527,536,527,527,527,527,527,549,572,549,572,549,549,572,549,596,572,572,572,572,572,572,572,596,596,596,549,596,596,596,596,596,596,596,596,572,572,549,572,596,572,596,1,795,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1652,0,818,0,0,0,795,0,0,818,0,0,0,0,0,818,818,0,0,0,0,795,0,0,0,0,0,0,836,791,0,0,836,857,541,865,541,541,541,541,541,541,541,541,541,541,541,541,541,541,3527,563,911,541,563,563,563,563,563,930,563,938,563,563,563,563,563,563,1850,563,563,563,563,563,563,563,563,563,0,587,587,587,587,587,587,587,1012,587,587,587,587,587,587,587,587,587,587,587,587,587,1058,984,0,587,587,587,1077,1058,78115,1079,0,0,0,0,0,0,0,0,1243,0,0,0,0,0,0,0,0,1259,0,0,0,1263,0,0,0,0,0,0,0,1139,1140,0,0,0,0,0,365,365,0,0,0,0,0,0,1113,0,0,0,0,0,0,0,0,0,0,2071,0,0,0,0,0,1180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1705,1340,541,541,1344,541,541,541,541,541,1350,541,541,541,1357,541,541,541,541,541,1812,541,541,541,541,541,541,541,541,541,1360,1403,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2638,563,563,1442,563,563,563,1449,563,563,26028,1360,988,587,587,587,587,587,587,3272,587,587,587,587,587,587,587,587,3278,587,587,1487,587,587,587,587,587,587,587,1495,587,587,587,587,587,587,2365,587,587,587,587,587,587,587,587,587,2691,587,587,587,587,587,587,587,587,587,1524,587,587,1528,587,587,587,587,587,1534,587,587,587,587,587,1492,587,587,587,587,587,587,587,587,587,587,1510,587,587,587,587,587,1541,587,587,0,541,587,563,541,541,541,541,541,563,563,563,563,563,3476,563,563,563,3480,563,563,563,563,563,563,2863,563,563,2867,563,563,563,563,563,563,1409,563,563,1413,563,563,563,563,563,563,1448,563,563,26028,1360,988,587,587,587,587,0,0,0,1595,0,0,0,0,0,0,0,0,0,0,0,0,1223,0,0,0,0,0,1655,0,0,0,0,0,0,0,0,0,1664,0,0,0,0,0,0,1126,0,0,0,1130,1131,0,0,0,0,0,0,0,2818048,2846720,0,2916352,0,0,3002368,0,0,1718,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2053,1702,0,0,0,0,0,541,541,541,541,541,541,541,541,541,541,3326,541,541,541,563,563,563,1893,563,563,563,563,563,563,1901,563,563,563,563,563,563,2887,563,563,563,2890,563,2892,563,563,563,587,1944,587,587,587,587,587,587,587,587,587,587,587,587,587,587,1940,587,587,1974,587,587,587,587,1980,587,587,587,587,587,587,587,587,1989,2007,2009,587,587,587,587,587,541,587,563,541,541,541,541,563,563,563,563,587,587,587,587,2030,0,2032,0,0,2079,0,0,0,2082,0,0,0,0,0,2088,0,0,0,0,0,0,1141,0,1143,0,0,365,365,0,0,0,0,0,0,1154,0,0,0,0,0,1160,0,1162,0,2104,0,0,0,0,0,0,0,0,0,0,0,0,0,2115,0,0,0,0,0,1192,0,0,0,0,0,0,0,0,0,0,0,176128,176128,176128,176128,176128,176128,176128,0,0,563,563,563,563,563,563,2250,563,563,563,563,563,563,563,1851,563,563,563,563,1855,563,563,563,587,587,587,587,2349,587,587,587,587,587,587,587,587,587,587,587,1985,587,587,1988,587,2262,541,541,541,541,563,563,563,563,587,587,587,587,0,0,0,0,0,2732,0,2450,0,0,0,0,0,0,0,0,2455,0,0,2458,0,0,0,0,0,0,2134016,0,0,0,0,0,0,57344,0,0,0,0,0,0,2748,0,0,0,0,0,0,0,0,0,0,192972,192972,192972,192972,192972,192972,192972,0,0,0,0,2462,0,0,0,0,0,0,0,0,0,0,0,541,541,541,2809,541,2473,0,0,0,0,0,0,0,2481,0,0,0,2483,0,0,0,0,0,0,1170,0,0,0,0,0,0,0,0,0,0,2989,0,0,0,0,0,0,2500,0,0,0,0,0,0,0,0,0,0,2510,0,0,0,0,0,0,1186,0,0,0,1191,0,0,0,0,1107,0,0,0,0,0,0,0,0,0,0,0,758,0,0,0,0,0,0,0,2524,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2536,541,541,2552,541,541,541,541,541,541,541,541,541,541,541,541,541,905,541,541,2564,541,541,541,541,541,541,2571,541,541,541,541,541,541,541,541,541,1768,541,541,541,541,541,541,541,2578,541,541,541,2581,541,541,541,541,541,541,541,0,0,0,0,0,0,1203,0,0,0,0,0,0,0,0,0,0,813,0,0,0,0,0,0,0,0,563,2588,563,563,563,563,563,563,563,563,563,563,563,1903,1904,563,563,563,2611,563,563,563,563,563,563,2616,563,563,563,563,563,563,563,2622,587,587,587,587,2702,587,587,587,587,587,587,587,587,587,587,2710,587,587,587,2713,587,587,587,587,587,587,587,2718,2719,2720,541,541,541,541,541,2177,541,541,541,541,541,541,541,541,541,541,541,541,2845,541,541,541,2758,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2103,0,2773,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1120,0,0,0,2789,0,0,0,0,2794,0,0,0,2796,0,0,0,0,0,0,0,69632,73728,316,317,317,422,423,65536,430,541,541,541,541,2814,541,541,541,541,541,541,541,541,541,541,541,541,1333,541,541,541,541,541,2848,541,541,541,541,541,541,0,0,563,563,563,2856,563,0,587,587,1047,587,587,78115,1079,0,0,0,0,0,0,0,0,1159168,365,0,0,0,0,0,0,563,563,563,563,2861,563,563,563,563,563,563,563,563,563,563,563,2294,563,563,563,563,563,563,563,563,2897,563,563,563,563,563,563,0,0,587,587,587,587,587,587,587,2338,587,587,587,587,587,587,587,3122,587,587,587,587,587,587,587,587,1036,587,587,587,587,1054,587,587,2905,587,587,587,587,587,2910,587,587,587,587,587,587,587,587,587,1935,587,587,587,587,1941,587,3006,0,0,0,0,3010,0,0,0,0,3015,0,0,0,0,0,0,0,2749,0,0,0,0,0,0,0,0,0,697,698,0,365,365,365,0,3191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2145,3300,0,0,0,0,0,0,0,0,0,0,3180,0,0,0,0,0,0,0,69632,73728,163840,0,0,0,0,65536,0,563,563,563,3340,563,563,563,563,563,563,563,563,563,563,563,563,2283,563,563,563,563,563,563,3351,563,563,563,563,563,563,587,587,587,587,587,587,587,587,587,587,587,587,587,3359,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,1942,3370,587,587,587,587,587,587,541,541,563,563,587,587,0,0,0,0,3297,0,0,0,0,0,0,0,0,0,3394,0,541,541,541,541,541,541,541,541,541,541,541,541,3211,541,541,3486,587,587,587,587,587,587,587,587,3495,587,3497,3498,587,3500,587,0,0,0,541,587,563,541,541,541,904,541,563,563,563,977,3502,0,0,0,0,0,0,0,0,0,0,0,0,0,0,541,541,541,854,541,541,3612,541,3613,541,541,541,563,563,563,563,563,563,3619,563,0,996,1075,1041,587,587,78115,1079,0,0,1081,1085,0,0,1089,3620,563,563,563,563,587,587,587,587,587,587,3627,587,3628,587,587,0,3603,0,0,0,0,0,0,0,0,541,541,3610,541,563,563,587,587,587,587,0,0,541,541,563,563,587,587,3683,3684,3685,3686,0,541,563,587,0,541,563,587,0,541,563,587,0,0,0,0,0,0,0,0,3180,0,0,0,0,0,0,0,550,597,573,573,573,573,573,573,573,597,597,597,550,597,597,597,597,597,597,597,597,573,573,550,573,597,573,597,1,0,0,0,737,0,0,0,0,0,0,0,0,0,0,0,0,1237,0,0,0,0,0,2041,0,0,0,0,0,0,0,0,0,0,0,0,0,1194,1196,0,403,0,0,0,0,381,0,69632,73728,0,0,0,0,426,65536,0,0,0,0,0,1202,0,0,0,0,0,0,0,0,0,0,0,2444,2445,0,0,2448,426,426,0,0,426,0,446,426,426,469,469,469,476,469,469,469,469,469,469,469,469,469,476,469,469,469,469,469,469,469,469,483,469,495,495,469,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,538,551,574,551,574,551,551,574,551,598,574,574,574,574,574,574,574,598,598,598,551,598,598,598,598,598,598,598,598,574,574,551,574,598,574,598,1,0,0,0,0,660,661,0,0,0,0,0,0,0,0,0,0,0,3001,0,0,0,0,0,0,0,0,661,0,0,0,0,0,0,0,0,0,0,0,661,0,0,0,0,0,827,0,0,0,661,0,0,0,0,0,0,0,0,0,0,0,3176,0,0,0,0,0,0,0,729,0,742,661,0,0,0,0,0,541,844,541,541,541,541,541,2191,541,541,541,541,541,541,2197,541,2199,541,541,859,541,541,541,541,541,541,541,541,541,541,897,541,541,541,541,541,541,2817,541,2819,541,541,541,541,541,541,541,541,2572,541,541,541,541,541,541,541,541,1349,541,541,541,541,541,541,541,541,1752,541,541,541,541,541,541,541,541,1767,541,541,541,541,541,541,541,541,1782,541,541,541,541,541,541,541,541,1815,1817,541,541,541,541,541,1360,563,563,563,970,563,563,563,563,563,0,587,587,990,587,587,587,587,587,1526,587,587,587,587,587,587,587,587,587,587,1953,587,587,587,587,587,1006,587,587,587,587,587,587,587,587,587,587,1044,587,587,587,587,587,587,3285,587,587,587,587,587,587,541,587,563,1094,0,0,0,0,0,0,0,0,0,1101,1102,0,0,0,0,0,0,0,69632,73728,167936,0,0,0,0,65536,0,0,0,0,1229,0,0,0,0,0,0,0,0,0,0,0,0,1247,0,0,0,0,0,0,0,1102,0,0,0,0,1260,1261,0,0,1101,0,0,0,0,0,0,2134756,0,0,0,0,0,0,0,0,0,0,1116,0,0,0,0,0,541,1306,541,541,541,541,541,541,541,541,541,541,541,541,541,541,0,2241,1360,914,563,1363,563,563,563,563,563,563,563,563,563,563,563,1377,1384,563,563,563,563,563,563,563,563,563,1398,563,563,563,563,563,563,3079,563,563,563,563,563,563,563,563,563,0,587,587,989,587,587,587,1418,563,563,563,563,563,563,563,1431,563,563,563,563,563,563,563,1897,563,563,563,563,563,563,563,563,1395,563,563,563,563,563,563,563,587,587,1523,587,587,587,587,587,587,587,587,587,587,587,1537,587,0,0,0,541,587,563,541,541,541,1067,911,563,563,563,1072,563,587,587,1523,587,587,1079,0,0,0,0,0,0,0,0,0,0,2781,0,0,0,0,0,541,541,541,1746,1747,541,541,541,541,1754,541,541,541,541,541,541,541,1290,541,1295,541,541,1299,541,541,1302,541,541,541,541,1795,541,541,541,541,541,541,541,541,541,541,541,541,1335,541,541,541,1825,563,563,563,563,563,563,563,563,563,563,563,563,563,563,1841,1842,563,563,563,563,1849,563,563,563,563,563,563,563,563,563,563,3347,563,563,563,563,3348,1890,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2649,587,1945,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2372,587,587,1959,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2384,2385,587,587,587,587,2012,587,587,541,587,563,541,541,541,541,563,563,587,587,2961,0,0,2964,2965,0,0,0,0,0,0,0,2505,0,0,0,0,0,0,0,0,0,387,0,0,0,0,0,387,0,0,0,2054,0,2055,0,0,0,0,0,0,0,0,0,2064,541,541,541,541,2216,541,541,541,541,541,541,2221,541,541,541,541,541,541,1285,1292,541,541,541,541,541,541,541,541,541,1800,541,541,541,1805,541,541,541,2226,541,541,541,541,541,541,541,541,541,541,541,541,0,0,563,563,563,563,563,563,563,563,2302,563,563,563,563,563,563,2307,563,563,563,563,563,563,3080,563,563,563,563,563,563,563,563,563,1883,563,563,563,563,563,563,563,2313,563,563,563,563,563,563,563,563,563,563,563,563,0,0,587,587,587,587,587,587,2389,587,587,587,587,587,587,2394,587,587,587,587,587,587,2377,587,587,587,587,587,587,587,587,587,1952,587,587,587,587,1956,587,587,2400,587,587,587,587,587,587,587,587,587,587,587,587,541,587,0,0,0,541,587,563,541,541,895,541,541,563,563,968,563,0,587,587,587,587,587,78115,1079,0,0,1082,1086,0,0,1090,0,2437,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1178,0,587,2671,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2931,587,0,0,0,2736,0,0,0,0,0,0,0,0,0,0,0,0,1588,1589,0,0,2787,0,0,0,0,0,0,0,0,0,0,0,2797,0,0,0,0,0,0,1204,0,0,0,0,0,0,0,0,0,0,1631,0,0,0,0,0,541,541,541,2813,541,541,541,541,541,541,2821,541,541,541,541,541,541,541,2555,541,541,541,541,541,541,541,2562,563,563,563,2860,563,563,563,563,563,563,2868,563,563,563,563,563,563,3094,563,563,3096,563,563,563,563,563,563,1880,1881,1882,563,563,1885,1886,563,563,563,0,0,3008,0,0,0,0,0,0,0,0,0,0,0,0,0,1197,0,0,541,541,3227,541,541,541,541,541,541,563,563,563,563,563,563,563,3073,563,563,563,3571,541,3573,541,541,541,563,563,563,563,563,563,563,3583,563,3585,0,0,0,0,541,3659,541,541,541,541,563,3663,563,563,563,563,563,1878,563,563,563,563,1884,563,563,563,563,563,563,2864,563,2866,563,563,563,563,563,563,563,3354,563,563,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,1057,587,3667,587,587,587,587,0,0,0,0,541,541,541,541,563,563,915,563,563,563,563,563,563,946,563,563,563,563,563,1427,563,563,563,563,563,563,563,563,563,563,3535,563,563,563,563,563,563,587,587,587,587,3112,587,587,587,587,3116,470,470,470,470,454,454,470,454,454,454,454,454,454,454,454,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,552,575,552,575,552,552,575,552,599,575,575,575,575,575,575,575,599,599,599,552,599,599,599,599,599,599,599,599,575,575,552,575,599,575,599,1,541,860,541,541,874,541,541,541,541,541,541,541,541,541,541,541,541,1770,541,541,541,1007,587,587,1021,587,587,587,587,587,587,587,587,587,587,587,587,1971,587,587,587,0,1123,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1184,1184,1251,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2156,0,0,0,1268,0,0,0,0,0,0,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1360,541,541,541,1323,541,541,541,541,541,541,541,541,541,541,541,541,541,2534,541,541,541,1341,541,541,541,541,541,1348,541,541,541,541,541,541,541,541,541,2234,541,541,541,541,0,0,1440,563,563,563,563,563,563,563,563,26028,1360,988,587,587,587,587,587,587,3365,587,587,587,587,587,587,587,587,587,2936,587,587,587,2939,587,2941,587,587,587,587,587,1525,587,587,587,587,587,1532,587,587,587,587,587,587,2392,587,587,587,587,587,587,587,587,587,1472,587,587,587,587,1482,587,563,587,587,587,1557,587,1079,0,1561,0,0,0,1567,0,0,0,0,0,0,1218,1219,0,0,0,0,0,0,0,0,0,1235,0,0,0,0,0,0,1573,0,0,0,1579,0,0,0,0,0,0,0,0,0,0,0,662,0,0,0,0,0,0,0,0,0,0,0,541,541,541,1779,541,541,541,541,541,541,541,541,541,541,541,541,541,2548,541,541,563,1843,563,563,563,563,563,563,563,563,563,1854,563,563,563,563,563,1879,563,563,563,563,563,563,563,563,563,563,3344,563,563,563,563,563,563,563,563,1865,563,563,563,563,563,563,563,2065,2066,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1210,0,2117,0,0,2120,2121,0,0,0,0,0,2127,0,0,0,0,0,0,0,2765,0,0,0,0,0,0,0,0,0,550,573,550,573,550,550,573,541,2213,541,541,541,541,2218,541,541,541,541,541,541,541,541,541,541,2182,541,541,541,541,541,2299,563,563,563,563,2304,563,563,563,563,563,563,563,563,563,563,1917,563,26028,0,587,587,587,2386,587,587,587,587,2391,587,587,587,587,587,587,587,587,587,587,2001,587,587,587,587,587,2006,541,541,541,3037,541,541,541,541,541,541,541,541,541,541,541,541,541,2846,541,541,563,563,3077,563,563,563,563,563,563,563,563,563,563,563,563,563,1887,1888,563,587,587,587,3119,587,587,587,587,587,587,587,587,587,587,587,587,1986,587,587,587,563,563,3247,563,563,563,563,563,563,563,563,563,563,563,563,563,2296,563,563,587,0,0,0,3445,0,0,0,0,3180,0,0,0,0,0,0,0,1242,0,0,0,0,0,0,0,0,0,380,0,0,0,0,0,0,0,0,541,541,541,541,3460,541,541,541,541,541,541,541,541,541,541,2207,541,541,541,541,541,563,587,587,587,587,3491,587,587,587,587,587,587,587,587,587,587,2354,587,587,587,587,587,587,563,563,563,563,3623,587,587,587,587,587,587,587,587,587,587,587,2395,587,587,587,587,587,3631,0,0,0,0,0,0,541,541,541,541,541,541,541,563,563,920,563,563,563,563,563,563,949,951,563,563,563,563,563,3421,563,563,563,3425,563,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3501,388,390,340,0,0,0,0,0,0,339,0,0,340,0,0,0,0,0,0,1598,0,0,0,0,0,0,0,0,1604,0,0,0,387,0,0,0,69632,73728,0,0,0,0,0,65536,0,0,0,0,0,1217,0,0,0,0,0,0,0,1224,0,0,0,0,0,347,0,0,0,0,0,0,0,0,0,0,0,3316,0,0,0,0,0,0,435,339,0,0,447,0,0,471,471,471,471,471,471,471,471,471,553,576,553,576,553,553,576,471,482,471,471,471,500,477,500,500,500,500,500,500,500,500,471,471,477,471,471,471,471,471,471,471,471,471,471,471,481,481,471,482,471,471,553,600,576,576,576,576,576,576,576,600,600,600,553,600,600,600,600,600,600,600,600,576,576,553,576,600,576,600,1,0,0,750,0,0,0,0,0,0,0,0,0,0,0,0,0,1603,0,0,0,0,0,0,663,0,788,0,0,0,0,0,0,0,792,0,0,0,0,0,1231,0,0,0,0,0,0,0,0,0,0,0,2153,0,0,0,0,0,0,0,801,0,0,0,0,0,809,0,0,0,0,706,0,0,0,0,0,0,0,0,715,0,717,0,828,0,0,0,663,831,0,788,0,0,0,0,0,837,0,0,0,0,0,1597,0,0,0,577536,0,0,1602,0,0,0,0,0,0,1257,0,0,0,0,0,0,0,0,0,0,2508,0,0,0,0,0,541,861,541,541,875,541,541,541,541,888,541,541,541,541,906,541,541,541,541,541,3519,541,541,541,541,541,541,541,541,563,563,563,923,563,929,563,563,942,563,563,953,563,958,961,563,563,563,563,979,563,563,563,0,587,587,991,587,587,587,587,587,1962,587,587,587,587,587,587,587,587,587,587,3287,587,587,587,541,587,563,1008,587,587,1022,587,587,587,587,1035,587,587,587,587,1053,587,587,587,587,587,2945,587,587,2948,587,587,2951,587,2952,2953,2954,0,0,0,0,1216,0,0,0,0,1221,0,0,0,0,0,0,0,1258,0,0,0,0,0,0,0,0,0,365,299,0,0,0,0,0,0,1144,0,0,1256,0,0,0,0,0,0,0,0,1235,0,0,0,0,0,0,2891776,0,0,0,0,0,2392064,2412544,0,0,0,0,0,0,2123,0,0,0,0,0,0,0,0,0,0,2727936,0,0,0,3084288,0,0,0,1267,0,0,0,0,0,0,0,541,541,541,541,541,541,541,541,541,1741,541,541,541,1309,541,541,541,541,541,541,541,541,541,541,541,541,541,3045,541,3047,563,587,587,1556,587,587,1079,0,0,0,0,0,0,0,0,0,0,3e3,0,0,0,0,0,1621,0,0,1624,0,1626,0,0,0,0,0,0,0,0,0,0,0,3198,3199,0,0,0,0,0,0,0,1722,0,0,0,0,0,0,0,0,0,0,0,683,684,685,0,0,541,541,541,541,1780,541,541,541,541,541,541,541,541,541,541,541,541,1820,541,541,1360,0,563,563,563,563,563,563,563,563,563,563,1836,563,563,563,563,563,2263,563,563,563,563,563,563,563,563,563,563,1433,563,563,563,563,563,1875,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2872,1943,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2359,0,0,2135,0,0,0,0,0,0,0,0,0,0,0,0,0,1618,0,0,2146,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2484,0,0,0,0,541,541,541,2163,2164,541,541,541,541,541,541,541,541,2180,541,541,541,541,2185,541,541,541,541,541,2228,541,541,541,541,541,541,541,541,541,541,0,0,563,563,563,563,2857,0,0,563,563,563,2247,563,2249,563,563,563,563,563,563,563,563,2320,563,563,563,563,563,0,0,563,563,563,2315,563,563,563,563,563,563,563,563,563,563,0,0,988,587,587,587,587,0,0,587,587,587,2334,587,2336,587,587,587,587,587,587,587,587,1965,1966,1968,587,587,587,587,587,587,587,587,2402,587,587,587,587,587,587,587,587,587,587,541,587,0,0,0,541,587,563,541,541,897,541,541,563,563,970,563,0,997,587,1076,1048,587,78115,1079,0,0,0,0,0,0,0,0,458,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,1147355,0,0,2438,0,0,0,0,0,0,2443,0,0,0,2446,2447,0,0,0,0,0,1610,0,0,1613,0,0,0,0,0,0,0,0,1584,0,0,0,0,0,0,0,0,1683,0,0,0,0,0,0,0,0,334,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1134,0,0,0,0,2487,0,0,0,0,0,0,0,0,0,0,0,2498,0,0,0,2515,0,0,0,0,0,0,0,0,0,2523,0,541,541,541,541,541,3576,563,563,563,3580,563,563,563,563,563,563,2290,563,563,563,563,563,563,563,563,563,1899,563,563,563,563,563,1906,2537,2538,541,541,541,541,541,2543,541,2545,541,541,541,541,2549,541,541,541,541,541,3614,3615,541,563,563,563,563,563,563,563,563,3424,563,563,587,587,587,587,587,563,563,2598,563,563,2601,2602,563,563,563,563,563,2607,563,2609,563,0,999,1039,587,1050,587,78115,1079,0,0,0,0,0,0,0,0,3184,0,0,0,0,0,0,0,0,2750,0,0,0,0,0,0,0,0,0,2732032,0,0,0,0,0,0,563,563,563,2613,563,563,563,563,563,563,563,563,2619,563,563,563,563,563,3624,587,587,587,587,587,587,587,587,587,587,1967,587,587,587,1972,587,587,563,2639,563,563,563,563,563,563,563,563,563,563,563,563,563,563,1402,563,587,587,587,2673,587,2675,587,587,587,587,2679,587,587,587,587,587,587,2676,587,587,587,587,587,587,587,587,587,1469,1476,587,587,587,587,587,587,587,587,2685,587,587,587,587,587,587,587,587,2693,587,587,587,587,587,1979,587,587,587,587,587,587,587,587,587,587,2926,2927,587,587,587,587,2930,587,587,587,587,587,2701,587,587,587,587,2705,587,587,587,587,587,587,587,2378,2379,587,587,587,587,587,587,587,2406,587,587,2409,2410,587,587,2176,2348,0,2745,0,0,0,0,0,0,0,2751,2752,2753,0,0,0,0,0,0,0,69632,73728,172032,0,0,0,0,65536,0,2772,0,2774,0,0,0,0,2778,0,0,0,0,2783,0,0,2786,541,541,2828,541,541,541,541,541,541,541,541,541,541,541,541,541,1771,541,541,541,541,541,2838,541,541,541,541,541,541,541,541,541,541,541,541,541,3337,563,563,541,2847,541,541,2850,541,541,2853,541,0,0,2854,563,563,563,563,563,2277,563,563,2280,563,563,563,563,563,563,563,3081,563,563,563,563,563,563,563,563,3355,563,587,587,587,587,587,587,563,563,2875,563,563,563,563,563,563,563,563,563,563,563,563,563,2324,0,0,563,563,563,563,2886,563,563,563,563,563,563,563,563,563,563,563,2606,563,2608,563,563,563,563,563,2896,563,563,2899,563,563,2902,563,0,0,2903,587,587,587,587,587,3284,587,587,587,587,587,587,587,541,587,563,541,541,563,563,587,587,587,2921,587,587,2924,587,587,587,587,587,587,587,587,587,587,587,2666,587,587,587,587,0,0,0,0,0,2972,2973,0,0,0,0,2978,0,0,0,0,0,0,0,69632,73728,221184,0,0,0,0,65536,0,3021,0,0,3023,0,0,541,541,3028,541,541,541,541,541,541,541,541,2205,2206,541,541,541,541,541,541,0,0,3160,0,3162,0,0,0,3166,0,0,0,0,0,0,0,0,2518,0,0,0,0,0,0,541,541,541,541,3030,541,541,541,541,3034,3234,3235,563,563,563,563,3239,3240,563,563,563,563,563,3244,563,563,563,563,1445,563,563,563,563,26028,1360,988,587,1455,587,587,0,3632,0,0,0,0,541,541,541,541,541,3641,541,563,563,563,563,587,587,587,587,587,587,587,3263,3264,587,587,587,587,587,587,3435,587,587,587,587,587,587,587,541,563,3268,3269,587,587,587,587,587,3273,587,587,587,587,587,587,587,587,2393,587,587,587,587,587,587,587,3279,587,587,587,587,587,587,587,587,587,587,587,587,541,587,563,2721,541,0,0,0,3312,0,0,0,0,0,0,0,0,0,0,0,0,1633,0,0,0,541,3404,541,541,541,541,541,541,563,563,563,563,563,563,563,563,563,563,563,563,563,563,3419,563,563,563,563,563,563,563,587,587,587,587,587,3113,587,587,587,587,587,0,3443,0,0,3446,0,0,0,3180,0,0,0,0,0,0,0,1583,0,1585,0,0,0,0,0,0,0,1106,0,0,0,0,0,0,0,0,0,756,0,0,0,0,0,0,0,0,541,541,3458,541,541,541,541,3463,541,541,541,541,3468,541,541,541,541,872,541,541,541,541,541,541,541,541,541,541,541,541,1316,541,541,541,563,587,587,3489,587,587,587,587,3494,587,587,587,587,3499,587,587,587,587,587,3364,587,587,587,587,587,587,587,587,587,587,2664,587,587,2667,2668,587,587,563,563,3645,3646,563,563,563,587,587,587,3651,3652,587,587,587,0,541,587,563,541,541,541,541,541,563,563,563,563,587,587,587,587,0,0,0,2730,0,0,563,587,0,541,563,587,3691,3692,3693,3694,0,541,563,587,0,0,0,0,0,0,0,0,3180,0,0,0,0,0,3453,342,343,344,345,346,0,0,0,0,0,0,0,0,0,0,0,713,0,0,0,0,0,0,0,391,0,0,0,0,0,0,0,0,0,0,0,0,1674,0,0,0,345,345,0,346,345,0,344,345,455,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,487,496,496,504,496,506,496,496,506,506,496,506,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,554,577,554,577,554,554,577,554,601,577,577,577,577,577,577,577,601,601,601,554,601,601,601,601,601,601,601,601,577,577,554,577,601,577,601,1,656,657,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1590,1591,672,673,0,675,676,0,0,0,0,0,682,0,0,0,0,0,0,0,2804,0,0,0,541,2808,541,541,541,0,0,0,0,692,0,0,0,0,0,0,699,365,365,365,0,0,0,0,0,1658,0,0,0,0,0,0,0,0,0,0,0,3180,0,0,0,3308,0,719,0,721,0,723,0,0,0,0,0,0,0,0,0,733,0,0,0,0,646,752,753,754,0,0,0,0,0,760,761,0,0,0,0,0,1680,0,0,0,0,0,0,0,0,0,0,0,3180,0,3306,0,0,763,764,675,0,0,0,0,0,0,0,0,0,0,779,780,0,0,0,0,0,1696,1697,1698,1699,0,0,0,0,0,0,0,0,755,0,0,0,0,0,0,0,0,772,0,0,0,0,0,0,0,0,782,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1601,0,0,761,0,0,787,0,0,0,0,0,0,0,0,0,794,675,723,0,692,811,0,0,0,0,761,0,0,0,0,0,0,0,1591,0,0,0,0,0,0,0,0,0,1662,0,0,0,0,0,0,0,0,754,820,821,0,0,0,0,0,0,754,0,0,825,699,0,0,0,830,0,0,0,832,0,0,0,692,699,0,0,692,830,830,0,0,0,0,0,0,0,0,0,692,541,541,851,855,858,541,866,541,541,541,881,883,886,541,541,541,898,902,541,541,541,541,541,2541,541,541,541,541,541,541,541,541,541,541,541,541,3044,541,541,541,563,563,563,971,975,563,563,563,563,0,587,587,587,998,1002,1005,587,1013,587,587,587,1028,1030,1033,587,587,587,1045,1049,587,587,587,587,587,1995,587,587,587,587,587,2002,587,587,587,587,587,587,2946,587,587,587,587,587,587,541,587,563,1073,0,998,587,1045,1049,1078,78115,1079,0,0,0,0,0,0,0,0,2779,0,0,0,0,0,0,0,0,303,303,303,303,0,303,303,303,0,0,0,0,1168,0,0,0,0,0,0,0,0,0,0,0,729,0,0,0,0,0,0,1199,0,0,0,0,0,0,0,0,0,0,1209,0,0,0,0,0,0,2912256,0,3207168,2465792,0,0,2719744,0,0,0,0,0,0,541,541,541,3397,541,541,541,541,3401,541,0,0,1214,0,0,0,0,0,0,0,0,0,0,0,0,0,1634,0,0,0,0,1254,0,0,0,0,0,0,0,0,0,0,0,0,0,1665,0,0,1321,541,541,541,541,541,541,541,541,541,541,1331,541,541,1338,541,541,541,541,873,541,541,541,541,541,541,541,541,541,541,541,541,1332,541,541,541,563,563,1443,563,563,563,563,563,563,26028,1360,988,587,587,587,587,587,587,3548,587,3550,587,587,3552,587,587,0,0,0,0,0,0,541,541,541,3639,3640,541,541,563,1501,587,587,1505,587,587,587,587,587,587,587,587,587,587,1515,587,0,0,0,541,587,563,541,541,899,541,541,563,563,972,563,0,1074,587,587,1052,587,78115,1079,0,0,0,0,0,0,0,0,2445312,0,2842624,0,0,0,2637824,0,587,1522,587,587,587,587,587,587,587,587,587,587,1535,587,587,587,587,587,2013,587,541,587,563,541,541,541,541,563,563,563,563,587,587,587,587,0,0,0,0,0,0,1666,0,1668,0,0,0,1670,0,748,0,0,0,0,0,0,0,0,3174,0,0,0,0,0,0,0,0,791,0,0,0,0,0,0,0,0,833,0,0,0,0,0,0,808,0,0,1693,0,0,0,0,0,0,1700,0,0,0,0,0,0,0,1660,1661,0,0,0,0,0,0,0,0,710,0,0,0,0,0,0,0,0,726,0,0,0,0,0,0,0,0,0,274432,274432,274432,0,274432,274432,274432,541,541,1762,541,541,541,541,541,541,541,541,1769,541,541,541,1773,541,541,1778,541,541,541,541,541,541,541,541,541,541,541,541,541,1788,541,541,0,563,1828,563,563,563,563,563,563,563,1835,563,563,563,563,563,563,3250,563,563,563,563,563,563,563,563,563,2321,563,563,563,563,0,0,563,1908,563,563,563,563,563,563,563,563,563,26028,0,587,1924,587,0,0,0,541,587,563,541,541,900,541,541,563,563,973,563,563,563,563,2262,563,563,563,563,563,563,563,563,563,563,563,1434,563,563,563,563,587,587,587,1960,587,587,587,1964,587,587,1969,587,587,587,587,587,587,2688,587,587,587,587,587,587,2695,587,587,563,563,587,587,587,587,0,0,0,2031,0,1082,0,0,0,2033,0,1086,0,0,0,2035,0,1090,0,0,0,2037,0,1094,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1620,2587,0,1825,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2610,2650,563,563,563,0,0,0,2653,0,1921,587,587,587,587,587,587,587,3549,587,587,587,587,587,587,0,0,3672,0,541,541,541,541,563,563,0,0,2969,0,0,0,0,0,0,0,0,0,0,0,0,0,2102,0,0,0,0,0,3161,0,0,0,0,0,0,0,0,0,0,0,0,1703,0,0,0,0,0,3319,541,541,541,541,541,541,541,3324,541,541,541,541,541,541,541,2832,541,541,541,541,541,541,541,541,541,2573,541,541,541,541,541,541,587,587,3361,587,587,587,587,587,587,587,587,587,587,587,587,587,2709,587,587,3379,0,0,3382,0,0,0,0,3180,3387,0,0,0,0,0,0,0,1682,0,1684,0,0,0,0,0,0,0,1114,0,0,0,0,1118,0,0,1121,541,541,541,541,3407,541,541,541,563,563,563,3412,563,563,563,563,563,2289,563,563,563,563,563,563,563,563,563,563,2605,563,563,563,563,563,3416,563,563,563,563,563,3422,563,563,563,563,587,587,587,3428,587,0,0,0,541,587,563,850,541,1066,901,541,923,563,1071,974,587,587,587,3432,587,587,587,587,587,3438,587,587,587,587,541,563,563,563,563,2276,563,563,563,563,563,563,2282,563,2284,563,2287,563,587,587,587,587,587,3492,587,587,587,3496,587,587,587,587,587,587,2704,587,587,587,587,587,587,587,587,587,1470,587,587,587,587,587,587,0,0,3657,0,541,541,541,541,541,541,563,563,563,563,563,563,936,563,563,563,563,563,563,563,563,587,3687,3688,3689,3690,0,541,563,587,0,541,563,587,0,0,0,0,0,0,0,0,3180,0,0,3450,3451,0,0,389,0,0,0,393,389,0,0,0,0,0,0,0,0,0,0,0,122880,0,0,0,0,0,0,0,405,0,347,0,69632,73728,0,0,0,0,0,65536,0,0,0,0,0,1709,0,0,0,0,0,0,0,0,0,0,399,0,0,0,0,0,0,0,436,0,0,443,0,0,0,0,0,0,0,0,0,0,0,131072,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,522,522,522,522,522,0,0,0,0,0,0,0,0,0,522,522,522,522,522,522,522,522,522,555,578,555,578,555,555,578,555,602,578,578,578,578,578,578,578,602,602,602,555,602,602,602,602,602,602,602,602,578,578,617,622,602,622,628,1,0,0,0,751,0,0,0,0,0,0,0,0,0,0,0,0,2061,0,0,0,962,563,563,563,563,980,563,563,563,0,587,587,992,587,587,587,587,587,2350,587,587,587,587,587,587,587,587,587,587,1936,587,587,587,587,587,1107,0,0,0,0,1112,0,0,0,0,0,0,0,0,0,0,0,167936,167936,167936,167936,167936,167936,167936,1360,914,563,563,563,1366,563,563,563,563,563,563,563,563,563,1380,563,563,1404,563,563,563,563,563,563,563,563,563,563,563,563,563,2620,563,563,563,1441,563,563,563,563,563,563,563,26028,1360,988,587,587,587,1458,563,587,587,587,587,587,1079,0,1562,0,0,0,1568,0,0,0,0,0,0,1627,1628,1629,0,0,0,0,0,0,0,0,343,0,0,0,0,0,0,0,0,403,0,0,0,0,0,0,0,0,407,407,407,407,0,407,407,407,1574,0,0,0,1580,0,0,0,0,0,0,0,0,0,0,0,808,541,541,852,541,1605,0,0,0,0,0,0,0,0,0,0,0,0,0,1619,0,0,0,0,0,1723,0,0,0,0,0,0,0,0,0,0,0,2625536,0,2699264,2715648,0,1973,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2373,563,563,587,587,587,587,0,0,1563,0,0,0,0,0,1569,0,1575,0,1581,0,0,0,0,0,0,0,0,0,0,0,1262,0,0,0,0,0,0,0,0,1575,0,0,0,0,0,1581,0,0,0,0,0,0,0,2974,0,0,0,0,0,0,0,0,0,365,0,253952,0,0,0,0,541,541,541,2190,541,541,541,541,2194,541,2196,541,541,541,541,541,541,541,3039,541,541,541,541,541,541,541,541,541,887,541,541,541,541,541,541,563,563,2275,563,563,563,563,2279,563,2281,563,563,563,563,563,563,1896,563,563,563,563,563,563,563,563,563,1397,1399,563,563,563,563,563,587,587,2362,587,587,587,587,2366,587,2368,587,587,587,587,587,587,1465,587,587,587,587,587,587,1480,587,587,0,0,0,0,0,2489,0,0,0,0,0,0,0,0,0,0,0,196608,0,0,0,0,563,563,2625,563,563,563,563,563,563,563,563,563,563,563,563,563,2648,563,563,0,0,0,0,3024,0,541,541,541,541,541,541,541,541,541,541,541,1330,541,541,541,541,0,3380,0,0,0,0,0,0,3180,0,0,0,0,3391,0,0,0,0,0,328,0,69632,73728,0,0,0,0,0,65536,0,3393,0,0,0,0,0,541,3396,541,541,3398,541,541,541,541,541,541,541,3040,541,541,541,541,541,541,541,541,541,1783,541,541,541,541,1789,541,0,3455,541,541,541,541,541,541,541,541,541,541,541,541,541,541,563,563,563,541,862,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1319,541,541,912,563,563,563,563,563,563,935,563,563,563,563,563,563,563,2291,2292,563,563,563,563,563,563,563,2319,563,563,2322,2323,563,563,0,0,1009,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2697,1059,0,0,0,541,587,563,541,541,541,541,541,563,563,563,563,563,2614,563,563,563,563,563,563,563,563,563,563,3649,587,587,587,587,587,587,587,0,1095,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2513,0,0,1623,0,0,0,0,0,0,0,0,0,0,0,0,0,2130,0,2132,1826,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,3258,541,3215,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1337,541,587,587,587,3271,587,587,587,587,587,587,587,587,587,587,587,587,2370,587,587,587,0,0,0,0,348,348,350,348,348,348,348,348,348,513,348,348,0,350,348,0,0,348,348,0,0,0,0,349,0,0,0,0,0,329,0,0,0,0,0,0,0,0,0,0,0,2509,0,0,0,0,348,348,348,348,348,348,348,348,348,348,348,348,348,348,348,348,556,579,556,579,556,556,579,556,603,579,579,579,579,579,579,579,603,603,603,556,603,603,603,603,603,603,603,603,579,579,556,579,603,579,603,1,0,0,0,0,722,0,724,0,0,0,0,0,0,0,0,0,299,0,0,0,0,0,0,0,0,0,0,739,0,0,0,0,0,0,0,0,0,0,0,836,541,541,541,541,0,0,0,766,0,0,0,771,0,0,0,0,0,0,0,0,0,1189,0,0,0,0,0,0,541,541,541,870,541,541,541,541,541,890,892,541,541,903,541,541,541,541,541,2569,541,541,541,541,541,541,541,541,541,541,541,541,2835,541,541,541,963,965,563,563,976,563,563,563,563,0,587,587,993,999,587,587,587,587,587,3374,587,541,541,563,563,587,587,0,0,0,0,0,0,3299,0,0,0,587,587,1017,587,587,587,587,587,1037,1039,587,587,1050,587,587,587,587,587,2364,587,587,2367,587,587,587,587,587,587,587,2677,587,587,587,587,587,587,2682,587,0,0,0,1151,0,1153,0,1155,0,0,0,0,0,0,0,0,0,1231,541,541,541,541,541,541,0,1181,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1636,0,0,1198,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1675,0,0,1266,0,0,0,0,0,0,0,1181,541,541,541,541,541,541,541,1326,541,541,541,541,541,541,541,1339,1305,1307,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1358,541,541,541,1343,541,541,541,541,541,541,541,541,1354,1355,541,541,541,541,541,541,2840,541,541,541,541,541,541,541,541,541,541,3056,541,3058,541,541,541,1360,914,563,563,563,563,1367,563,563,563,563,563,563,563,563,563,3242,563,563,563,563,563,563,563,563,563,1421,563,563,563,563,563,563,563,1435,563,563,563,563,563,2627,563,563,563,563,563,563,2635,563,563,563,1459,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2942,587,587,587,1489,1491,587,587,587,587,587,587,587,587,587,587,587,2707,2708,587,587,587,1554,587,1555,587,587,1558,1079,0,0,0,0,0,0,0,0,0,306,204800,204800,0,205106,204800,1,0,1677,0,0,1679,0,0,0,0,0,0,0,0,0,0,0,1159,0,0,0,0,541,541,541,541,1763,541,541,541,541,541,541,541,541,541,541,541,541,2208,541,541,541,0,563,563,563,563,563,563,563,1833,563,563,563,563,563,563,563,2879,563,563,563,563,563,563,563,563,2644,563,563,563,2647,563,563,563,1858,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,1857,563,563,563,1909,563,563,563,563,1915,563,563,563,26028,0,587,587,587,587,587,2376,587,587,587,587,587,587,587,587,587,587,2717,541,587,563,541,541,587,587,587,587,1929,587,587,587,587,587,587,587,587,587,587,587,2938,587,587,587,587,587,1991,587,587,587,1996,587,587,587,587,587,587,587,587,2005,587,0,0,0,541,587,563,852,892,541,903,541,925,965,563,976,587,587,587,2011,587,587,587,541,587,563,541,541,541,541,563,563,916,563,563,563,932,563,563,563,563,563,563,563,1864,563,563,563,1868,563,563,1873,563,2077,0,0,0,0,0,0,0,0,2085,0,0,0,0,0,2089,0,0,2091,0,0,0,0,0,0,0,2099,0,0,0,0,0,0,0,3012,3013,0,0,0,0,3018,0,0,2133,2134,0,2136,0,0,0,0,0,0,0,0,0,0,2144,0,0,2149,2150,0,0,0,0,0,2154,0,0,0,0,0,0,0,2160,541,541,541,541,541,541,2167,541,541,541,541,541,541,1288,541,541,541,541,1298,541,541,541,541,541,541,1325,541,541,541,541,541,541,541,541,541,541,1801,541,541,541,541,541,2202,541,541,541,541,541,541,541,541,541,541,541,541,2209,541,541,541,541,541,2815,541,2818,541,541,541,541,2823,541,541,541,541,541,541,3409,541,563,563,563,563,563,563,563,563,3479,563,3481,3482,563,3484,563,541,541,541,2215,541,541,541,541,541,541,541,541,541,541,541,541,895,541,541,541,0,0,2244,563,563,563,563,563,563,563,2252,563,563,563,563,563,563,3534,563,3536,563,563,3538,563,563,587,587,563,563,2301,563,563,563,563,563,563,563,563,563,563,563,563,563,2893,563,563,0,0,2331,587,587,587,587,587,587,587,2339,587,587,587,587,587,587,2715,587,587,587,587,541,587,563,541,541,587,587,587,587,2363,587,587,587,587,587,587,2369,587,2371,587,2374,587,587,2388,587,587,587,587,587,587,587,587,587,587,587,587,587,2918,587,587,0,2474,0,0,0,0,0,0,0,0,0,2482,0,0,0,0,0,0,0,122880,122880,122880,122880,122880,0,122880,0,2105632,0,0,2514,0,0,0,0,0,0,0,0,0,2522,0,0,541,541,541,541,541,3461,541,541,541,3465,541,541,541,541,541,541,1287,541,541,541,541,541,541,541,541,541,541,2546,541,541,541,541,541,541,541,541,541,2540,541,541,541,541,541,541,541,541,541,541,541,541,2222,541,541,541,563,563,563,2599,563,563,563,563,563,2604,563,563,563,563,563,563,2278,563,563,563,563,563,563,563,563,563,2632,563,563,563,563,563,563,2670,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3143,587,587,587,587,2686,587,587,587,587,587,587,587,587,587,587,587,3125,587,587,587,587,541,541,2723,563,563,563,2725,587,587,587,2727,2728,0,0,0,0,0,0,0,172032,172032,172032,172032,172032,172032,172032,172032,1,0,0,2746,0,2747,0,0,0,0,0,0,0,0,0,0,0,1175,0,0,0,0,0,0,0,0,2762,0,0,0,0,0,0,0,0,0,0,0,1192,0,1195,0,0,2811,541,2812,541,541,541,541,541,541,541,541,541,541,541,541,541,1804,541,541,541,541,541,2849,541,541,541,541,541,0,0,563,563,563,563,563,563,563,563,563,563,563,563,2255,563,2858,563,2859,563,563,563,563,563,563,563,563,563,563,563,563,563,3086,563,563,587,587,2907,587,2908,587,587,587,587,587,587,587,587,587,587,587,3139,587,3141,587,587,0,0,0,2983,0,0,0,0,0,0,0,0,0,0,0,0,2073,0,0,0,0,0,3381,0,0,0,0,0,3180,0,0,0,3390,0,0,0,0,0,0,1659,0,0,0,0,0,0,0,0,0,0,114688,0,241664,258048,0,0,3430,587,587,587,587,587,587,587,587,587,3439,587,587,587,541,563,563,563,563,2303,563,563,563,563,563,563,563,563,563,563,563,26028,0,587,587,587,541,541,541,541,3518,541,541,541,541,541,541,541,541,541,563,563,563,3232,563,563,563,563,563,563,3531,563,563,563,563,563,563,563,563,563,563,587,587,587,3357,587,587,587,587,587,3545,587,587,587,587,587,587,587,587,587,587,0,0,0,0,0,0,3637,541,541,541,541,541,541,3643,563,563,563,563,3647,563,563,587,587,587,587,587,3653,587,587,0,0,0,0,3635,0,541,541,541,541,541,541,541,563,2724,563,563,587,2726,587,587,0,0,0,0,0,0,0,0,3607,0,541,541,541,541,0,3656,0,3658,541,541,541,541,541,541,563,563,563,563,563,563,937,563,563,563,563,563,563,563,0,0,0,0,394,395,0,396,0,0,0,0,0,396,0,0,0,0,0,331,332,333,0,0,0,0,0,0,0,0,0,560,583,560,583,560,560,583,401,0,0,0,0,0,368,376,404,0,0,0,0,0,368,0,0,396,0,0,0,0,0,351,0,0,368,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2744,409,411,0,0,368,376,0,69632,73728,0,0,0,0,427,65536,0,0,0,0,0,2044,2045,0,0,0,0,0,0,0,0,0,361,0,0,0,0,0,361,427,427,437,0,427,0,411,427,456,0,0,0,0,0,0,0,0,106496,0,106496,0,0,0,0,106496,396,0,409,0,497,497,0,497,497,497,497,497,497,497,497,523,523,523,523,523,456,456,456,456,531,456,456,532,456,523,537,523,523,523,537,523,523,523,523,539,557,580,557,580,557,557,580,557,604,580,580,580,580,580,580,580,604,604,604,557,604,604,604,604,604,604,604,604,580,580,618,623,604,623,629,1,0,0,0,643,0,0,0,0,0,0,0,0,0,0,0,0,2101,0,0,0,783,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2757,0,0,0,802,0,0,0,0,0,0,0,0,0,0,0,0,2129,0,0,0,587,587,587,1023,1025,587,587,587,587,587,587,587,587,587,587,587,3275,587,587,587,587,0,0,0,0,1096,0,0,1098,0,0,0,0,0,0,0,0,0,1630,0,0,0,0,0,1636,0,0,0,0,1111,0,0,0,0,0,0,0,0,0,0,0,1207,0,0,0,0,1098,1227,0,0,0,0,0,0,1234,0,0,0,0,0,0,0,0,155648,0,0,0,0,0,0,0,0,1239,0,0,0,0,0,0,0,0,0,0,1239,1248,0,0,0,0,0,0,1681,0,0,0,0,0,0,1687,0,1689,0,0,0,0,1239,1269,1270,0,1239,0,541,541,541,541,541,541,541,3207,3208,541,541,541,541,3212,3213,1278,541,541,541,1282,541,541,1293,541,541,1297,541,541,541,541,541,541,541,3054,541,541,541,541,541,541,541,541,541,1784,541,541,541,541,541,541,1360,914,563,563,563,563,563,563,563,1370,563,563,563,1374,563,563,563,563,1847,563,563,563,563,563,563,563,563,563,563,563,2308,563,563,563,563,1385,563,563,1389,563,563,563,563,563,563,563,563,563,563,563,563,2295,563,563,563,563,563,563,1406,563,563,563,1410,563,563,563,563,563,563,563,563,2901,563,563,0,0,587,587,587,587,587,587,1462,587,587,587,1466,587,587,1477,587,587,1481,587,587,587,587,587,3434,587,3436,587,587,587,587,587,587,541,563,587,1502,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3128,587,0,1622,0,0,0,0,0,0,0,0,0,0,0,0,1635,0,0,0,0,0,2067,0,0,0,0,0,0,0,0,0,2076,1637,0,0,0,1641,0,0,0,1645,0,0,0,1649,0,0,0,0,0,0,2056,0,2057,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1676,0,563,563,1844,563,563,563,563,563,563,563,563,563,563,563,563,563,3540,587,587,1958,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3127,587,3129,587,587,2010,587,587,587,587,1749,1940,1844,541,541,541,541,563,563,917,563,563,563,934,563,563,948,563,563,563,563,563,1895,563,563,563,1900,563,563,563,563,563,563,1914,563,563,563,563,26028,0,587,587,587,0,2118,0,0,0,0,0,0,2125,0,0,0,0,0,0,0,0,184726,184932,184932,184932,0,184932,184932,184932,0,0,2159,0,541,541,2162,541,541,541,541,541,541,541,541,541,541,2833,541,541,541,541,541,541,541,2227,541,541,541,541,541,541,541,541,541,541,541,0,0,563,2855,563,563,563,0,0,563,563,2246,563,563,563,563,563,563,563,563,563,563,563,3255,563,563,563,563,563,563,2314,563,563,563,563,563,563,563,563,563,563,563,0,0,587,2904,587,0,0,587,587,2333,587,587,587,587,587,587,587,587,587,587,587,3440,587,587,541,563,587,587,587,587,2390,587,587,587,587,587,587,587,587,587,587,587,2928,587,587,587,587,587,587,587,587,2401,587,587,587,587,587,587,587,587,587,587,587,541,587,0,0,0,541,587,563,1064,541,541,905,541,1069,563,563,978,541,541,541,2567,541,541,541,541,541,541,541,541,541,541,541,541,900,541,541,541,2698,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3277,587,587,0,2759,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1716,0,541,2827,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1758,541,563,2874,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2285,563,587,587,587,2923,587,587,587,587,587,587,587,587,587,587,587,587,2382,587,587,587,0,0,2993,0,0,0,0,0,0,0,0,0,0,0,0,0,2433,0,2435,3171,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2771,3202,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2577,3225,541,541,541,541,541,541,541,541,563,563,563,563,563,563,563,2888,563,563,563,563,563,563,563,563,3241,563,563,563,563,563,563,563,587,587,587,3282,587,587,587,587,587,587,587,587,587,541,587,563,2018,541,541,541,2022,563,541,3289,563,3291,587,3293,3294,0,0,0,0,3298,0,0,0,0,0,0,0,1134592,0,365,0,0,0,1134592,0,0,0,1134592,1134592,0,0,1134592,0,0,1134592,0,0,0,3311,0,0,0,0,3315,0,0,0,0,0,0,0,0,0,1725,0,0,0,0,0,0,3318,0,541,541,541,3320,541,541,541,3323,541,541,541,541,541,541,541,1751,541,541,541,541,541,541,541,541,541,2586,0,563,563,563,563,563,3338,563,563,563,3341,563,563,563,563,563,563,563,563,563,563,563,26028,1921,587,587,587,587,3360,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3554,0,0,3403,541,3405,541,541,541,541,541,563,563,563,563,563,563,563,563,563,563,3075,563,563,3418,563,3420,563,563,563,563,563,563,587,587,587,587,587,587,587,3596,587,3598,587,587,0,0,0,0,3560,0,0,0,0,541,541,541,541,541,541,541,541,541,2169,541,541,541,541,541,3574,541,541,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,1417,3586,563,563,563,587,587,587,587,587,587,587,587,587,587,3599,587,0,0,0,853,1e3,926,849,1065,894,541,541,922,1070,967,563,0,587,587,587,587,587,78115,0,0,0,0,0,0,0,0,0,365,0,305,0,0,0,0,3611,541,541,541,541,541,541,541,563,563,3617,563,3618,563,563,563,563,587,587,587,587,3594,587,587,587,587,587,587,587,541,541,563,563,587,587,3378,0,0,410,356,0,0,0,0,0,69632,73728,0,0,0,0,0,65536,0,0,0,0,0,2122,0,0,0,0,0,0,0,0,0,0,304,304,0,0,0,0,0,0,354,0,0,0,356,0,0,473,473,473,473,473,473,473,478,473,473,473,473,473,473,473,473,473,473,473,478,473,484,473,0,0,473,0,0,0,0,0,0,0,0,524,528,528,528,528,473,473,473,473,473,473,473,478,473,528,524,528,528,528,524,528,528,528,528,540,558,581,558,581,558,558,581,558,605,581,581,581,581,581,581,581,605,605,605,558,605,605,605,605,605,605,605,605,581,581,619,624,605,624,630,1,0,0,0,0,644,0,0,0,0,0,0,0,0,0,0,0,1606,0,0,0,0,688,0,0,0,0,0,0,0,0,0,0,0,365,365,365,0,0,0,0,0,2138,0,0,0,0,0,0,0,0,0,0,0,2768,0,0,0,0,0,0,0,738,0,0,0,644,738,0,744,745,644,0,0,0,0,0,0,790,0,0,0,0,0,0,0,0,0,2058,0,0,0,0,0,0,0,0,799,0,804,0,0,0,0,0,0,804,0,0,0,0,0,644,0,0,0,799,0,804,0,790,0,819,0,0,0,665,0,0,0,0,819,0,0,0,0,0,0,0,2473984,2478080,0,0,0,0,0,0,0,0,0,2767,0,0,0,0,0,0,0,644,0,0,0,0,0,0,0,0,790,0,0,0,0,0,0,0,3165,0,0,0,0,0,0,0,0,0,541,563,541,563,541,541,563,0,0,790,790,0,644,0,0,790,804,842,0,541,848,541,541,541,541,541,2839,541,541,541,2842,541,2844,541,541,541,541,541,541,879,541,884,541,891,541,894,541,541,908,541,541,867,871,877,541,882,541,541,541,541,541,899,541,541,541,541,541,541,2852,541,541,0,0,563,563,563,563,563,563,563,563,563,563,563,563,563,2256,563,563,563,972,563,563,563,563,563,0,587,587,995,587,587,587,587,587,2687,587,587,587,587,587,587,587,587,587,587,2937,587,587,587,587,587,587,587,1014,1018,1024,587,1029,587,587,587,587,587,1046,587,587,587,587,587,1026,587,1031,587,1038,587,1041,587,587,1055,587,1149,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2799,0,0,0,1200,0,0,0,0,0,1205,0,0,0,0,0,0,0,1714,0,0,0,0,0,0,0,0,0,2140,2141,0,0,2143,0,0,1099,0,0,0,1230,0,1232,0,0,0,0,0,0,0,0,0,351,352,353,0,0,0,0,1240,0,0,0,0,0,0,0,0,0,0,1246,0,1249,1200,0,0,0,0,0,2427,0,0,0,0,0,0,0,0,0,0,336,337,0,0,0,0,1230,1252,0,1255,0,0,0,0,0,1130,0,0,0,0,1264,0,0,1149,1264,0,1271,541,541,541,541,1277,1360,914,1362,563,563,563,563,563,1369,563,563,563,563,1375,563,563,563,563,1862,563,563,563,563,563,563,563,563,563,563,563,3084,563,563,563,563,563,563,563,1407,563,563,563,563,1412,563,563,563,563,563,563,563,2900,563,563,563,0,0,587,587,587,563,1419,563,563,563,1426,1428,563,563,563,563,563,563,563,563,563,3346,563,563,563,563,563,563,587,587,1461,587,587,587,587,1467,587,587,587,587,587,587,587,587,2663,587,587,587,587,587,587,587,587,587,1488,587,587,587,587,587,587,587,587,587,587,1499,587,587,587,587,1463,587,587,587,587,587,1475,587,587,587,587,587,587,2014,541,587,563,1791,541,2020,541,1886,563,587,587,1504,587,587,587,587,587,587,587,587,1511,587,587,587,1518,1520,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2396,2397,2398,587,587,1542,587,0,541,587,563,541,541,541,541,541,563,563,563,563,563,2862,563,2865,563,563,563,563,2870,563,563,563,563,587,587,587,587,587,1079,0,0,1563,0,0,0,1569,0,0,0,0,0,376,0,0,0,0,368,0,385,0,351,0,0,1575,0,0,0,1581,0,0,0,0,0,0,0,0,0,0,303,303,0,0,0,0,1592,1593,0,0,0,0,0,1599,0,0,0,0,0,0,0,0,0,2098,0,2100,0,0,0,0,0,1638,0,0,0,0,0,0,0,1646,1647,0,0,0,0,0,0,0,3197,0,0,0,0,0,0,3200,0,0,1654,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2038,0,1690,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3005,0,1706,1707,0,0,0,1710,0,0,0,0,0,1714,0,0,1717,0,0,1730,0,1732,1706,541,541,541,541,541,541,541,541,541,541,541,2547,541,541,541,541,541,1744,541,541,541,541,1750,541,541,541,541,541,541,541,541,541,541,3220,541,541,541,541,541,541,1761,541,541,541,541,1765,541,541,541,541,541,541,541,541,541,541,3335,541,541,563,563,563,541,1776,541,541,541,1781,541,541,541,541,541,541,541,541,541,541,541,2559,541,541,541,541,1808,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1360,914,563,563,563,563,563,563,563,563,563,563,563,563,1376,563,0,587,587,1046,587,587,78115,1079,0,0,0,0,0,0,0,0,225890,225890,225890,225890,225741,225890,225890,225890,0,563,563,563,563,563,563,563,563,563,563,563,563,1839,563,563,563,563,1877,563,563,563,563,563,563,563,563,563,563,563,2869,563,563,563,563,563,563,1845,563,563,563,563,563,563,563,563,563,563,1856,563,563,563,563,1894,563,563,563,1898,563,563,563,563,563,563,563,1450,563,26028,1360,988,1454,587,587,587,563,563,1860,563,563,563,563,563,563,563,563,563,563,1871,563,563,563,563,1911,1913,563,563,563,563,563,26028,0,587,587,587,587,587,1506,587,587,1508,587,587,587,1512,587,587,587,0,1286,1470,1378,541,541,541,1549,541,563,563,563,1553,563,1876,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2297,2298,563,563,587,2027,587,587,0,0,0,0,0,0,0,0,0,0,3511,0,3513,0,541,0,0,0,2080,2081,0,0,2083,2084,0,0,0,0,0,0,0,0,286720,0,0,0,0,0,0,0,0,0,286720,286720,0,286720,286720,1,0,0,0,2106,0,0,0,0,2109,2110,0,0,0,0,0,0,0,2069,0,0,0,0,0,0,0,0,0,541,564,541,564,541,541,564,541,541,541,541,2175,541,541,2179,541,541,541,2183,541,541,541,541,541,541,1347,541,541,541,541,541,541,541,541,541,563,563,3231,563,563,563,563,2225,541,541,541,541,2230,541,541,541,541,541,541,541,541,0,0,0,0,0,386,0,69632,73728,0,0,0,0,0,65536,0,2242,0,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2325,0,563,563,563,2260,563,563,2264,563,563,563,2268,563,563,563,563,563,587,587,3625,587,3626,587,587,587,587,587,587,1493,587,587,587,587,587,587,587,587,587,2380,587,587,587,587,587,587,2312,563,563,563,563,2317,563,563,563,563,563,563,563,563,0,0,0,0,0,0,587,587,2655,587,587,587,2329,0,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2680,587,587,587,587,587,587,2347,587,587,2351,587,587,587,2355,587,587,587,587,587,587,2925,587,587,587,587,587,587,587,587,587,1471,587,587,587,587,587,587,2399,587,587,587,587,2404,587,587,587,587,587,587,587,587,541,587,0,0,0,854,1001,927,541,541,541,541,910,563,563,563,563,563,1848,563,563,563,563,563,563,563,563,563,563,3097,563,3099,563,563,563,0,0,0,0,2439,0,0,0,0,0,0,0,0,0,0,0,1616,0,0,0,0,0,0,2475,0,0,0,2479,0,0,0,0,0,0,0,0,0,365,0,0,0,0,0,0,541,2525,541,541,541,541,541,541,541,541,541,541,2533,541,541,541,541,541,541,3053,541,541,3055,541,541,541,541,541,541,541,1311,541,541,541,541,541,541,541,541,541,1753,541,541,541,541,541,541,541,2551,541,541,2553,541,2554,541,541,541,541,541,541,541,2561,541,541,541,541,876,878,541,541,541,541,541,541,541,541,541,541,541,1353,541,541,541,541,541,2565,541,541,541,541,541,541,541,541,541,541,541,541,2576,541,541,541,541,1283,541,541,541,541,541,541,541,541,541,541,1304,0,0,0,563,563,2589,563,563,563,563,563,563,563,563,563,563,3537,563,563,3539,563,587,587,563,2597,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2326,0,563,563,2612,563,563,563,2615,563,563,2617,563,2618,563,563,563,563,563,2877,2878,563,563,563,563,2881,563,563,563,563,563,1863,563,563,563,563,563,563,563,563,563,563,3356,587,587,587,587,587,563,563,563,563,2626,563,563,2630,563,563,563,563,563,563,563,563,3345,563,563,563,563,563,563,563,563,563,563,563,2641,2642,563,563,563,563,563,563,563,563,563,563,26028,1360,988,587,587,587,587,2683,587,2684,587,587,587,587,587,587,587,587,2692,587,587,2696,587,0,0,0,1061,1062,1063,851,541,898,902,1068,924,563,971,975,2733,2734,0,0,2737,2738,0,0,0,0,0,0,0,0,0,0,306,307,0,0,0,0,0,2788,0,2790,0,0,0,0,0,0,0,0,0,0,0,0,2457,0,0,0,0,0,0,0,2803,0,0,0,0,0,0,541,541,541,541,541,541,541,3033,541,541,2826,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2825,2873,563,563,563,563,563,563,563,563,563,563,563,563,2883,563,563,563,563,1912,563,563,563,563,563,563,26028,0,587,587,587,587,587,2934,587,587,587,587,587,587,587,2940,587,587,587,587,2922,587,587,587,587,587,587,587,587,587,587,587,587,2932,0,2982,0,0,2984,0,0,0,0,0,0,0,0,0,0,0,1632,0,0,0,0,0,0,0,0,2995,0,0,2998,0,2999,0,0,0,0,0,0,0,2096,0,0,0,0,0,0,0,0,0,562,585,562,585,562,562,585,541,3049,541,541,541,541,541,541,541,541,541,541,541,541,541,3061,3089,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2621,563,3103,563,563,563,563,563,587,587,587,3111,587,587,587,587,587,587,1507,587,587,587,587,587,587,587,587,587,1983,1984,587,587,587,587,587,587,3131,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2929,587,587,587,587,3145,587,587,587,587,587,541,587,563,541,541,563,563,587,587,0,2962,0,0,0,0,0,0,0,0,0,2507,0,0,0,0,0,0,0,0,0,0,0,3163,0,0,0,0,0,0,0,3169,0,0,0,0,0,438,0,0,0,0,0,0,0,0,0,0,0,2142,0,0,0,0,541,3226,541,541,541,541,541,541,541,563,563,563,563,563,563,563,3095,563,563,563,563,563,563,563,563,2306,563,563,563,563,563,563,563,563,563,3236,563,563,563,563,563,563,563,563,563,563,563,563,563,2309,2310,2311,563,563,3246,563,563,563,563,563,563,3252,563,3254,563,563,563,563,563,1392,563,563,563,563,563,563,563,563,563,563,1853,563,563,563,563,563,563,563,563,587,587,587,587,587,587,587,587,587,3265,587,587,587,587,587,2703,587,587,587,587,587,587,587,587,587,587,2950,587,587,541,587,563,587,587,3281,587,3283,587,587,587,587,587,587,587,587,541,587,563,3153,541,3155,563,3157,587,0,0,0,3301,0,0,0,0,0,0,0,3180,0,0,0,0,0,0,0,3014656,3207168,0,2691072,0,0,3215360,0,0,3309,0,0,0,0,0,3314,0,0,0,0,0,0,0,0,0,365,0,0,0,0,131072,131072,563,563,3339,563,563,563,3343,563,563,563,563,563,563,563,563,563,26028,1360,988,587,587,1456,587,587,587,587,3362,587,587,587,587,587,587,587,587,587,587,587,587,3126,587,587,587,587,587,3371,587,587,587,587,541,541,563,563,587,587,0,0,0,3296,0,0,0,0,0,0,3557,3558,0,0,0,0,0,0,0,541,541,541,3568,541,541,541,541,541,1284,541,541,541,541,541,541,541,541,541,1303,563,563,3588,563,587,587,587,3593,587,587,587,587,587,587,587,587,2690,587,587,587,587,2694,587,587,3601,587,0,0,0,0,0,3604,3605,3606,0,3608,541,541,541,541,541,541,1813,541,541,541,541,1819,541,541,541,1360,563,3621,3622,563,563,587,587,587,587,587,587,587,587,587,3629,3630,563,563,587,587,587,587,3679,0,541,3680,563,3681,587,3682,0,541,541,541,541,1345,541,541,541,541,541,541,541,541,541,541,541,541,2560,541,541,541,358,359,0,0,0,0,0,0,0,365,0,293,0,0,0,0,0,0,306,0,0,0,0,0,0,0,0,0,0,1174,0,0,0,0,0,0,0,0,392,0,0,0,0,0,0,0,0,0,0,0,0,2495,0,0,0,474,474,474,488,0,0,488,359,359,359,510,359,359,359,359,474,559,606,582,582,582,582,582,582,582,606,606,606,559,606,606,606,606,606,606,606,606,582,582,559,582,606,582,606,1,541,541,868,541,541,541,541,541,541,541,541,541,541,904,541,541,541,541,541,2851,541,541,541,0,0,563,563,563,563,563,563,563,563,563,563,2254,563,563,563,587,1015,587,587,587,587,587,587,587,587,587,587,1051,587,587,587,587,587,2909,587,587,587,587,587,587,2917,587,587,587,587,587,1527,587,587,587,587,587,587,587,587,1538,1539,1197,0,0,0,0,0,0,0,1197,0,0,0,0,0,0,0,0,1134592,0,0,1134592,0,0,0,0,0,0,0,0,0,0,0,0,0,2980,0,0,541,541,1280,541,541,541,1289,541,541,541,541,541,541,541,541,541,541,3524,541,541,3526,563,563,1360,914,563,563,563,563,563,563,563,563,563,1372,563,563,563,1381,587,587,1543,0,1289,1473,1381,541,541,541,541,541,563,563,563,563,563,2898,563,563,563,563,563,0,0,587,587,587,587,587,587,2337,587,587,587,587,587,587,587,2352,587,587,587,587,2357,587,587,587,563,587,587,587,587,587,1079,0,0,0,1564,0,0,0,1570,0,0,0,0,0,2440,0,0,0,0,0,0,0,0,0,0,0,2871296,0,0,2424832,0,0,0,1576,0,0,0,1582,0,0,0,0,0,0,0,0,0,365,0,0,0,0,155648,0,0,1606,0,0,0,0,0,0,0,1614,1615,0,0,0,0,0,0,0,3385,3180,0,0,0,0,0,0,0,0,2097,0,0,0,0,0,0,0,0,2070,0,0,0,0,2074,0,0,0,0,0,0,1625,0,0,0,0,0,0,0,0,0,0,0,1648,0,0,0,0,563,1891,563,563,563,563,563,563,563,563,1902,563,563,563,563,563,1408,563,563,563,563,563,563,563,563,563,563,1867,563,563,563,563,563,587,1975,587,587,587,587,587,587,587,587,587,587,587,1987,587,587,587,587,1490,587,587,587,587,587,587,587,587,587,587,587,2381,587,587,587,587,2008,587,587,587,587,587,587,541,587,563,541,541,541,541,563,563,918,563,563,563,563,563,563,563,563,563,563,563,2634,563,563,563,563,0,2243,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2637,563,0,2330,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3276,587,587,587,0,0,2451,0,0,0,0,0,0,0,0,0,0,0,0,0,2471,0,2472,0,0,0,563,563,563,563,563,563,563,2593,563,563,563,563,563,1424,563,563,563,563,563,563,563,563,563,563,2293,563,563,563,563,563,563,587,2659,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2912,587,587,2916,587,587,587,587,0,0,0,0,0,2776,0,0,0,0,0,0,0,0,0,0,372,0,0,373,0,0,563,2895,563,563,563,563,563,563,563,563,563,0,0,587,587,587,587,2335,587,587,587,587,587,587,587,587,587,2947,587,587,587,587,587,541,587,563,587,2906,587,587,587,587,587,587,2913,587,2915,587,587,587,587,587,587,2935,587,587,587,587,587,587,587,587,587,2408,587,587,587,587,2177,2349,587,587,587,2944,587,587,587,587,587,587,587,587,587,541,587,563,563,563,563,563,563,563,587,587,587,541,587,587,587,0,541,587,563,541,1547,541,541,1550,563,1551,563,563,0,0,0,0,0,3561,0,0,0,541,541,541,541,541,541,541,541,3464,541,3466,3467,541,3469,541,541,541,541,3575,541,563,563,563,563,563,563,563,563,563,563,3423,563,563,563,3426,587,587,587,587,563,3587,563,563,587,587,587,587,587,587,587,587,587,587,587,3600,587,587,587,587,3670,587,0,0,0,0,541,541,541,541,563,563,919,925,563,563,563,563,943,563,563,563,563,563,563,3353,563,563,563,587,587,587,587,587,587,587,587,587,587,587,587,3267,0,0,360,0,0,0,0,0,0,365,0,293,0,0,0,0,0,0,331,0,0,0,0,0,0,0,331,0,0,69632,73728,0,419,419,0,0,65536,419,0,0,0,0,375,0,0,0,0,0,0,0,0,0,0,0,1663,0,0,0,0,0,0,360,0,0,0,0,0,0,0,0,0,0,0,0,0,2511,0,0,0,0,0,370,0,0,370,0,0,0,0,0,0,0,0,0,0,0,0,0,2496,0,0,560,607,583,583,583,583,583,583,583,607,607,607,560,607,607,607,607,607,607,607,607,583,583,560,583,607,583,607,1,541,863,541,541,541,541,541,541,541,541,541,541,541,541,541,541,1772,541,1010,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3123,587,587,587,587,587,587,587,563,1386,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2871,563,0,0,2760,0,0,0,0,0,0,0,0,0,0,0,0,0,2755,0,0,0,0,0,0,0,2985,0,0,0,0,0,0,0,0,0,0,406,0,0,0,0,0,0,0,0,0,3302,0,3303,0,0,0,0,3180,0,0,0,0,0,0,348,0,0,0,0,0,0,0,0,0,0,2801664,0,0,0,0,2142208,0,0,0,361,362,363,364,0,0,365,0,293,0,0,0,0,0,0,348,349,350,0,0,0,0,0,0,0,0,3180,0,3388,0,0,0,0,0,0,362,0,361,0,0,0,69632,73728,0,0,0,0,428,65536,0,0,0,0,0,2463,0,0,0,0,0,0,0,0,0,0,0,2807,541,541,541,541,428,428,0,0,428,0,362,428,457,0,0,0,0,0,0,0,0,1159168,0,1159168,0,0,0,0,1159168,0,0,0,0,498,498,0,505,505,505,505,511,512,505,505,525,525,525,525,525,457,457,457,457,457,457,457,457,457,525,525,525,525,525,525,525,525,525,561,584,561,584,561,561,584,561,608,584,584,584,584,584,584,584,608,608,608,561,608,608,608,608,608,608,608,608,584,584,620,625,608,625,631,1,563,563,563,973,563,563,563,563,563,0,587,587,587,587,587,587,1963,587,587,587,587,587,587,587,587,587,3137,587,587,587,587,587,587,587,0,2105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2052,0,0,0,0,0,541,2161,541,541,541,541,541,541,541,541,541,541,541,3336,541,563,563,563,0,0,563,2245,563,563,563,563,563,563,563,563,563,563,563,563,2882,563,563,563,0,0,587,2332,587,587,587,587,587,587,587,587,587,587,587,587,3286,587,587,587,587,541,587,563,2550,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2210,541,541,541,2579,541,541,541,541,541,541,541,541,541,541,0,0,0,0,0,0,2068,0,0,0,0,0,0,0,0,0,365,0,0,122880,122880,0,0,2711,587,587,587,587,587,587,587,587,587,587,541,587,563,541,541,541,2021,563,563,562,609,585,585,585,585,585,585,585,609,609,609,562,609,609,609,609,609,609,609,609,585,585,562,585,609,585,609,1,0,0,0,705,0,0,0,0,0,0,0,0,0,0,0,0,2742,0,0,0,0,735,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2075,0,541,864,541,541,541,541,541,541,541,541,541,541,541,541,541,541,2238,0,1011,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2689,587,587,587,587,587,587,587,587,2716,587,587,587,541,587,563,541,541,1136,0,0,0,0,0,0,0,0,0,0,365,365,0,0,0,0,0,0,2095,0,0,0,0,0,0,0,0,0,0,2375680,0,0,0,0,0,587,1503,587,587,587,587,587,587,587,587,587,587,587,587,587,587,2911,587,2914,587,587,587,587,2919,587,563,587,587,587,587,587,1079,1560,0,0,0,1566,0,0,0,1572,0,0,0,1578,0,0,0,0,0,0,0,0,0,0,0,0,2754,0,0,0,563,563,563,563,2600,563,563,563,563,563,563,563,563,563,563,563,26028,1922,587,587,587,0,0,0,0,647,0,0,0,0,0,0,743,541,541,541,541,541,541,2178,541,541,541,541,541,541,541,541,541,0,2242,563,563,563,563,563,0,0,1594,0,0,0,0,0,0,0,0,0,0,0,0,0,2770,0,0,563,563,563,1846,563,563,563,563,563,563,563,563,563,563,563,563,3085,563,3087,563,2187,541,2189,541,541,541,541,541,541,541,541,541,541,541,541,541,1821,541,1360,0,0,563,563,563,563,2248,563,563,563,563,563,563,563,563,563,2305,563,563,563,563,563,563,563,563,563,0,587,587,994,587,587,587,563,2274,563,563,563,563,563,563,563,563,563,563,563,563,563,563,2894,563,587,2361,587,587,587,587,587,587,587,587,587,587,587,587,587,587,3121,587,587,587,587,587,587,587,587,563,563,541,563,587,563,587,1,2623,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,3101,563,563,563,563,2651,0,0,0,0,0,0,587,587,587,587,587,587,587,587,587,2340,587,587,587,587,0,0,3179,0,0,0,0,0,0,0,0,0,0,0,0,0,2798,0,0,3245,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,3257,563,1134592,0,1134592,0,0,0,1134592,1135008,1135008,0,0,0,0,0,1135008,0,0,0,0,0,2478,0,0,0,0,0,0,0,0,0,0,0,3180,0,0,3307,0,1134592,0,1134592,1134592,0,0,0,0,1135203,1135203,1135203,1135203,1134592,1135203,1135203,1135203,1135203,1135203,1135203,1135203,0,1134592,1134592,1134592,1134592,1135203,1134592,1135203,1,0,0,2125824,2125824,2125824,2125824,2125824,2424832,2433024,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,0,988,2125824,2125824,2125824,2125824,1147355,1147355,1147355,1147355,458,458,1147355,458,458,458,458,458,458,458,458,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,1147406,0,0,0,0,0,0,0,0,458,0,0,0,0,0,1147355,1147355,1147355,1147406,1147406,1147355,1147406,1147406,1,12290,3,0,0,0,0,249856,0,0,0,249856,0,0,0,0,0,0,0,69632,73728,0,0,0,0,425,65536,0,1159168,0,0,1159168,0,1159168,1159168,0,1159168,1159168,0,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,0,1159168,1159168,0,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,0,0,0,0,0,0,0,0,0,1159168,0,0,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1159168,1,12290,3,78115,293,0,0,0,0,0,0,0,0,0,0,0,0,131072,131072,0,0,1163264,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3170,0,913,2125824,2125824,2125824,2125824,2125824,2424832,2433024,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,2125824,0,0,1453,2125824,2125824,2125824,2125824,106496,0,106496,106496,0,106496,106496,106496,106496,106496,106496,106496,106496,106496,106496,106496,106496,106496,106496,106496,106496,0,0,0,106496,0,0,106496,106496,106496,106496,106496,106496,106496,106496,106496,0,0,0,0,0,0,0,0,0,0,0,2183168,0,0,0,0,0,0,0,0,2134016,0,0,0,0,0,0,0,0,0,0,541,541,541,1275,541,541,0,0,0,3117056,0,0,0,0,0,0,0,0,0,0,0,0,2979,0,0,0,0,3108864,3198976,0,0,3043328,0,3149824,2936832,0,2760704,0,2437120,0,0,0,0,0,0,2107,0,0,0,0,0,0,0,0,0,365,0,293,0,0,0,0,0,0,0,0,2875392,0,0,0,0,0,0,0,0,0,0,2834432],r.EXPECTED=[1039,1047,1048,1046,1042,1052,1056,1060,1064,1068,1446,1074,2948,2053,1092,1446,2490,1670,1213,1080,1084,1085,1446,1089,1446,1446,2818,1098,1103,1108,1187,1181,1181,1114,1118,1446,1933,1123,1446,1136,1098,1098,1204,1108,1108,1171,1181,1181,1130,1134,1446,1446,1140,1446,1147,1098,1152,1108,1108,1109,1181,1181,1182,1158,1446,1446,1238,1668,1098,1148,1108,1108,1206,1181,1181,1165,1446,3130,2162,1098,1099,1108,1177,1181,1215,1219,2143,1136,1098,1186,1110,1181,1191,3130,2153,1099,1108,1180,1217,2659,2819,1197,1173,1201,1104,1235,1210,1224,1154,1228,1232,1168,1243,1247,1251,1255,1259,1261,1266,1262,1270,1274,1278,1282,1286,1290,1220,1295,1890,1296,1446,1446,1446,1446,1375,2489,1446,1446,1446,2385,1446,1446,1446,1446,1446,1446,1446,1446,1076,1446,1446,1446,1446,2986,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1300,1304,1305,1309,1405,1315,1318,1322,1326,1330,1446,1446,1804,1334,2315,1338,2350,1142,1143,1342,1346,1446,1446,2834,1352,1362,1369,1446,1126,1446,2386,1379,1446,1384,1390,1446,2987,2588,1396,2688,1457,1446,1518,1446,1446,2269,1446,1446,1446,1402,1446,1441,1897,1409,1413,1446,1447,1419,1446,1447,1419,1446,1446,1193,1446,2988,3136,2482,1446,2617,1425,1446,1448,1431,1446,1918,1446,2648,1436,1457,1348,1457,1380,1440,1446,1445,3050,1452,1446,1456,1311,1446,1916,2325,1463,2125,1347,1472,2317,1909,1478,3010,2343,2076,2746,2758,1482,2765,2077,1799,1486,2744,1493,1358,1446,1446,2131,1446,2559,1386,1365,1497,1501,1505,1509,1515,2369,1569,2450,1522,2538,1526,1530,1536,2479,2088,1457,1971,1540,1544,1548,1552,1557,1446,2103,1446,1532,1446,2479,2082,1563,1568,2137,1573,1577,3026,1446,1446,2116,1446,1446,3027,1446,1586,1938,1584,2123,1647,1590,1432,1594,1446,2517,1600,1446,2517,1600,1446,2872,1606,1612,1616,1620,1626,1446,1239,1633,1446,1596,1640,3118,2782,1645,1651,1863,1446,1863,1446,1602,1446,2675,2173,1655,2685,1559,1866,2685,3124,1659,1665,2904,2903,3055,2673,1674,1678,3047,2266,2239,1682,1686,1690,1694,1698,2892,1702,1715,1719,1723,1727,1731,1446,2332,1773,1737,1744,1748,1751,1755,1758,1446,1772,2979,1777,1781,2506,1788,1792,1635,1636,1446,2668,2874,1796,1808,2784,1815,1819,1823,2304,1828,1446,2430,1446,1446,2334,1853,2583,1834,1843,1446,2069,1446,1446,1954,1446,1446,2070,1446,1446,1622,1608,1847,1851,1857,1641,1871,1446,2225,1956,1446,2225,1956,1446,2374,1885,1876,1811,1446,1883,1446,1947,1889,1446,1511,1446,1291,2287,1894,1901,1906,1446,1906,1446,1913,1446,1740,1922,1446,1932,1733,1446,1932,1830,1094,1732,1446,1937,2066,2439,2671,1945,1942,2455,1489,2323,1951,1709,1711,1629,1161,1962,1968,1977,1980,1984,1446,1119,1994,1999,2003,2007,2011,2015,2019,2023,1986,1872,2093,1928,2028,2032,2036,1802,2040,1446,1446,2044,1580,2050,2059,2063,2074,2046,1446,2024,2081,1446,2086,1446,1446,1988,2092,2097,2109,2113,1446,2120,1446,1446,2129,1446,1558,2135,1446,1446,2141,2535,2866,2147,1446,1990,1446,1446,3096,1446,1446,3096,1446,1446,1466,2151,2157,2204,1458,2161,1446,2914,1446,1446,1764,1446,3053,2166,2170,1446,2182,1446,2187,1446,2916,1957,2192,2202,2305,1446,2210,2496,1824,3112,2217,1761,1459,1558,2224,2229,2841,2969,2682,2815,2233,2248,2236,2243,1837,1839,2247,2252,2100,1446,1446,1446,1446,2918,1766,2256,2260,2273,2277,2281,2284,1446,2889,1902,2985,2524,2433,2299,2576,2212,2213,2303,1415,1457,2309,1958,2321,2329,1446,2976,1446,1398,1446,1553,2338,2342,2751,1446,2347,2503,2354,2358,1558,2363,1446,1995,2368,1446,1421,2364,2373,2733,2378,2383,2390,3044,1446,2715,1446,1446,1860,1446,1446,1860,2719,2733,2397,2176,2401,1946,2461,1446,1446,2405,1446,1473,2717,2413,2417,2427,2437,3061,1446,2105,1446,1973,2407,2443,2447,2454,2459,2379,1446,2465,2472,2476,2486,2511,2494,2701,2409,2500,2510,2516,2521,2528,2220,2532,2542,2546,2198,2312,2550,2554,2563,2567,2571,2575,1446,2580,2592,2596,2600,2604,2608,2612,2616,1446,2621,2393,1372,2628,2632,2636,2640,2652,3103,1446,2708,2468,2656,2665,2679,2692,1558,2699,1446,2705,1446,2998,2712,1446,2723,2624,1768,1879,3159,1446,2205,2727,1446,1468,2732,1446,2206,2982,1446,3004,2737,2741,3109,2750,1446,2755,1446,1446,2762,1446,1446,2762,2769,3037,2775,2420,2779,1446,2788,1446,1446,2795,1446,1427,2801,3020,2805,2646,1446,2812,1446,2809,1446,3067,2853,2823,2643,2183,2827,2863,2512,2832,2838,1707,1070,2359,2845,2851,2857,1964,1474,3084,2557,2878,2955,3090,2882,2293,2295,2886,2896,2900,2908,2912,1446,1446,1446,2922,2926,2930,2934,2938,2942,2946,1446,2055,2952,1355,2791,2178,2959,1867,2963,1784,2967,1446,2973,2423,2992,2996,3002,1446,2728,1446,1446,3008,1446,3014,3018,1446,3024,2188,3031,3147,1446,1446,2694,1446,1446,2847,1446,1446,2695,3035,1446,3041,3078,3141,3059,1446,1446,3065,1446,1446,3065,1446,1446,3071,1446,3075,1925,3153,1446,1446,3082,1446,1564,3088,1446,1661,3094,3100,2195,3116,1446,3122,1446,3128,1446,3134,1705,3140,2586,2797,1446,3145,2771,1392,3151,1446,3157,2290,2828,2661,2869,2422,3106,2860,2263,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1473,3163,3166,3170,3182,3186,3182,3189,3181,3182,3182,3182,3182,3177,3173,3193,3182,3197,3201,3204,3210,3214,3216,3206,3220,3224,3228,3232,3235,3239,3243,3729,3929,3929,3246,3929,3929,5383,3929,3929,3300,3929,3261,3562,3273,4078,3734,3929,3929,3929,3277,3287,3294,4847,3929,3250,3929,3929,3344,3929,4873,4873,4873,4873,3266,4873,4873,3564,3564,3567,3564,3564,3564,3564,3267,3256,3305,3562,3568,3335,4081,3929,3929,3929,3323,4919,3377,4693,3929,3252,3722,3750,3365,3315,3269,3334,4080,3732,3929,3929,3559,4873,5799,4692,3929,3929,3688,3929,3929,3560,4873,4873,4873,4195,4873,4873,4873,4874,3564,3267,3264,3331,3339,3929,3342,3929,3738,3256,3367,3317,3321,3560,4873,3564,3309,3256,3256,3365,3371,3564,3564,3564,3567,3256,3256,3256,3256,3327,4195,3564,3564,3564,3310,3365,3359,3929,3929,3813,3929,3564,3564,3564,3364,3929,5741,3559,4873,4194,3564,3564,3268,3256,4193,4873,3266,3564,3310,3256,3256,3256,3366,3348,3929,3929,3929,3505,3383,3256,3373,3766,3256,3384,3929,4872,4874,3564,3268,3256,3257,3373,4694,3929,3929,3929,3355,3566,3256,3321,4194,3565,3311,3560,3563,3384,3561,3319,3360,3388,3390,4109,3394,3401,3405,3429,3429,3429,3429,3424,3430,3412,3416,3420,3428,3434,3438,3442,3397,3446,3450,3453,3457,3460,3463,3465,3469,3473,3408,3477,3481,3485,3696,3498,4473,3929,3929,3929,3512,3511,3929,3929,3929,3517,4964,4966,3929,3523,3527,3929,3929,3929,3752,3534,3543,3929,3929,3850,3854,3578,3582,3586,3589,3590,3594,3597,3601,3604,3608,3611,3614,3618,3622,3626,4965,3648,3636,5178,3647,5820,3654,4257,3659,3929,3669,4219,3694,3703,3929,5714,3525,3929,3929,3929,3770,3790,3929,5539,3707,3929,3342,5695,3904,3929,3289,3290,3906,3929,4658,4464,5227,4306,3936,3718,3726,3743,3929,3375,3631,3929,3548,5050,5064,3749,3929,3929,3929,3836,3758,3298,3929,3929,3915,3927,4893,3528,3929,3929,3921,4548,5744,4281,3929,3929,3932,5019,3929,5587,5178,3929,3553,3557,3572,5826,3929,3929,4530,3789,3794,3929,3929,3972,4899,3798,3806,3929,3929,3972,5040,3817,3826,3929,3929,3972,5490,3785,3929,3929,3929,3869,4728,4203,3770,3790,4142,3929,3929,3929,3894,4001,3929,3929,3929,3929,3252,3798,4127,4203,3850,3854,4139,3744,3929,3929,3929,3844,5313,5832,4137,4141,3929,3650,3929,3929,4854,4858,4140,3929,3929,3929,3930,5557,3873,3929,3929,3883,3929,5107,3929,5107,4780,3929,4781,5020,3929,3929,3738,5109,3929,3290,3904,3940,3947,3946,3942,3951,3955,3956,3956,3960,3962,3963,3962,3967,3971,3929,3929,4017,4021,4708,3978,3988,3929,3683,3781,3802,3995,4392,3929,5597,5363,3530,3929,4135,4005,4013,3929,3929,4065,4070,4026,3929,3929,4026,3375,3929,3929,4049,4056,4576,3997,5403,5596,3929,3856,4795,3529,3929,3929,3929,3931,4061,3929,3929,3929,3972,4199,3911,3929,3929,3929,3974,5170,3929,3929,4704,3929,4075,5320,4248,5165,3855,4657,4085,3929,3690,4699,5178,3978,3251,3929,3929,4101,3929,5319,4247,5772,5010,4113,3981,3929,3929,4164,4148,4148,4120,3929,3929,4165,4115,4709,4132,3929,3929,4247,4459,5170,3929,3929,4706,3879,4572,4576,5321,4249,4655,3929,3929,4274,3929,3972,4146,4150,3929,3735,3929,3735,4154,4158,3929,3929,4396,3929,3929,3982,3929,3929,3929,4029,4107,3929,4706,3929,4366,4574,4181,5320,5850,4644,4180,5319,4886,4217,4208,4673,3929,3929,4424,5855,3279,5321,4215,3929,3766,4873,4873,3563,3564,4228,3929,4451,4182,4233,4305,4240,4273,4435,4246,4434,4245,4708,4241,3929,3699,4502,3698,4255,5609,4272,5609,4272,3699,5199,5610,4273,4253,3281,4246,4270,3929,3809,3929,4549,3737,3929,3896,3929,5021,3770,4271,3771,4182,5163,5161,3929,3283,5762,3710,4279,4279,4211,4127,4128,4405,3712,4286,3929,3929,3929,4052,3929,5548,3754,4301,3929,3842,3574,4534,4651,5125,3745,4537,4310,4314,4318,4319,4323,4327,4333,4334,4331,4338,4339,4339,4340,3929,3844,4827,3929,3846,3929,3929,4905,3929,3376,5780,4202,3929,3929,3929,4235,4524,5352,5187,4364,4473,3342,4273,3929,3888,5737,4840,4356,4374,4378,4842,5051,4864,3929,4387,4491,3929,4413,3929,3892,5107,3929,3665,3929,3929,4681,3640,4265,4472,3929,4802,3929,4518,3670,4266,4421,3929,4204,4203,3929,4718,4428,4432,3929,3929,3929,4451,4440,4445,3929,3929,4450,4541,4470,3929,3343,3929,3897,3929,4294,3929,4296,3929,5616,3929,5461,4463,3929,5347,4362,5468,4800,3929,3929,4457,4461,5243,3929,4484,3929,3931,5074,3929,3972,4166,4116,3929,3929,3929,4035,4737,3929,3929,3929,4505,3929,5347,4495,3929,3972,5410,5415,4015,4019,3929,3929,4457,4490,4499,3929,3929,3929,4624,5347,3929,4801,3929,3997,3929,5743,4160,3929,3929,3929,4628,3929,5704,4529,3929,3998,5353,5435,3929,5703,4528,3929,4e3,3929,3929,3999,3528,4505,5352,4800,3929,4007,4653,3929,4009,3929,4642,5697,3929,3929,3929,4695,4052,3929,3929,3929,4708,4545,3929,3929,3301,4450,3929,3929,3929,4734,3929,5303,3342,3929,4030,4480,3929,3929,3929,4516,4994,3894,3929,3895,3929,3929,3351,3892,3737,3735,3929,4039,3929,3929,4086,5090,3895,5020,3895,3737,5022,3736,3737,4554,4556,3929,3929,4638,4794,3929,3929,4668,4806,4689,3929,3929,3929,4752,4504,3929,3929,5097,4566,4022,5334,4383,5691,4570,4582,4586,4590,4594,4598,4602,4605,4608,4612,4614,4618,4634,4632,4634,4621,3929,3929,3929,4757,4725,4816,3929,4648,4662,4666,5081,4672,3929,5344,4398,4352,4678,3929,3929,4678,4687,5178,3929,3929,4745,4749,4210,3929,4965,4768,5739,3929,3929,3322,5689,3899,5181,4703,5110,5214,4713,4722,3929,4051,3558,3929,4028,4478,4500,3929,5400,4741,3929,3929,4780,3929,4780,4762,3929,3929,3929,4821,4756,4761,3929,3929,4818,4822,4505,3863,3867,3929,3341,3341,3929,4766,4294,3929,3899,3929,4066,3929,3929,4087,5091,3767,5433,4817,4683,4716,3929,5809,3929,4091,4095,3751,3972,4773,4777,3929,4107,3929,3929,4137,4141,4786,4775,3929,3929,4820,3910,4788,4777,3929,3929,4828,3972,3322,4792,3929,3929,4847,3929,5432,4816,4833,4799,3929,5147,3929,3929,4872,4873,4966,4295,4304,4814,4826,3929,3929,3929,4871,4674,3929,4708,3897,5180,5433,4832,3929,4159,3929,3377,3299,3929,4503,4708,3929,4837,3929,3929,3929,4913,5207,3929,3929,3929,4965,3929,5148,3929,4008,3929,4408,3929,4172,3929,4172,3900,5432,3628,3929,3929,3929,4856,4860,3844,5313,3929,3929,4982,3929,5086,3768,5434,3630,3929,4174,3929,4562,5312,3929,3929,3929,5003,4502,5148,4878,4885,4293,3929,3929,4296,3929,4296,3929,4229,5198,5520,3928,3929,3928,3897,4293,3929,3898,3929,5228,3899,3898,3929,4296,3929,5547,3519,4911,3929,5584,4917,3769,3929,3929,3929,4240,4273,3929,3779,3800,3744,4923,4927,4934,4935,4930,4939,4943,4949,4953,4945,4957,4957,4958,4962,3929,4247,4511,3929,3972,5871,3929,3983,3929,5572,5591,3929,4731,4359,5861,5581,4990,3929,3929,3929,5111,4846,5503,4707,5051,3929,4263,4465,3929,4282,3929,3929,3860,3929,5742,3929,3929,3737,3929,3894,5322,3929,5e3,5007,3507,3929,4290,3929,3929,4449,3929,5018,3929,3929,3642,5026,3929,3929,3929,5177,4628,3929,3300,3929,4346,3674,3681,3547,3929,3539,5030,5034,3929,3929,3929,5337,5040,3822,3929,3929,3641,5042,3929,3929,3929,5368,3643,3929,3929,3929,5405,5793,3929,3929,3929,5453,4626,3377,5052,3929,3929,3929,3721,4501,4368,3929,3546,3490,5496,5308,5793,3929,3929,5485,4370,3929,3929,5068,3972,5073,4863,3929,3513,4450,5122,3375,5406,3842,3929,3655,5793,3929,3739,4707,5781,3929,3990,3929,3929,4006,3299,4452,4369,3929,4439,4444,3929,3895,4547,3886,3929,5078,3929,3929,5048,5304,3929,5095,3929,5486,5051,4451,4368,3929,4474,4050,4057,4293,4450,3929,3929,5228,3929,5453,3929,3929,5072,4862,3929,5101,3929,3512,5742,3929,5241,5105,4986,3751,5323,3296,4502,4381,3929,4486,4034,3929,3684,3783,3744,5062,3929,3929,4209,3929,3929,3929,3560,3929,5118,3929,3929,5111,4852,4515,4382,5129,3929,4502,4176,3929,4350,5314,3549,3929,5797,3929,3929,3929,5526,5795,3929,3929,3929,5603,5136,5144,5227,4451,4236,3929,4975,3676,5063,4465,3744,4042,4464,5152,3929,4507,3865,3929,4121,5622,4297,4174,3342,5169,3342,5169,4514,3537,4561,4558,3929,4559,4453,3929,5213,4466,3929,4520,3929,3929,5170,4045,5196,5187,5174,4560,5185,4558,5193,5203,5211,5218,5221,5222,5226,3929,3929,3929,5725,3929,5232,4690,3929,4524,5352,3677,3929,3929,3929,5771,3929,5740,3929,4274,4848,5238,5247,5773,5254,5251,4704,3918,5260,5266,5262,5268,5272,5276,5280,5284,5287,5291,5294,5293,5298,5302,3929,3929,3929,5742,5425,3929,4694,5050,3546,3490,3494,3929,5318,3929,5327,3923,4464,4390,5227,3929,5816,5331,5341,3929,5782,3744,3929,4547,3770,3929,4547,3929,3736,5322,3929,5189,3929,3929,5189,5361,5367,3374,3929,4693,3929,3929,3829,3929,5372,3929,5411,3929,4704,4292,3929,3892,3929,3929,4517,5713,4819,4170,3929,5416,3991,3929,4708,4852,3929,4186,4190,3929,3765,3775,3800,5841,5084,3929,3929,5111,5157,3753,5377,5381,3929,3929,5117,3929,3929,5388,3821,3929,4708,5234,4550,3929,5393,5392,3929,4751,5041,3744,3929,3929,5048,5036,3929,5373,5397,4693,3501,3929,3929,3929,5766,4862,3929,3929,3929,5789,5048,4769,3378,3492,5429,4705,5779,3929,4781,4779,3929,4505,5110,3876,3929,3929,3929,5791,3972,5439,3839,3929,4815,3929,4778,5514,5443,3839,3929,4815,3929,5108,5841,5843,3929,3929,5139,3929,5050,5457,3492,4485,5465,3770,3878,3929,4821,3929,3929,4417,3929,3929,5472,5477,3929,4881,3929,5701,5473,5482,3929,3929,5140,3929,5478,3929,5420,3877,3546,5494,3714,3632,3929,5514,5508,3929,4907,5500,3929,4890,4880,3929,4193,4873,4873,4195,5742,3379,5773,3631,5525,3929,3929,3929,5870,5524,3760,3896,3929,5819,4519,5513,3488,5530,5351,3929,4708,4846,4159,3929,3929,3929,5155,5159,5336,5518,3761,3929,3929,5512,5536,4519,4522,3989,3929,3929,3929,4913,5518,3929,4964,4293,5179,5352,3929,3929,4125,3929,3929,4247,4402,4086,3353,3929,5556,5570,3929,5570,5578,3983,3929,5573,3929,4971,3751,3929,4253,3929,4261,5594,4522,3929,5601,3984,3929,5574,3929,4978,4224,3929,3929,5608,5571,5607,5351,5349,3929,3929,3929,5206,4827,3929,3929,4897,4901,5733,5834,3662,4782,5757,3879,5132,5614,5467,5620,5626,5630,5634,5638,5642,5646,5650,5654,5658,5662,5666,5670,5673,5677,5681,5685,3929,3929,5256,4275,5756,3929,3972,3929,4996,3929,5561,5708,5718,3929,5722,5729,3929,3888,3998,5749,3929,3929,3929,5311,3929,5731,5753,5459,3929,5014,4985,3929,4344,4461,3929,3875,5420,3929,3878,3929,3929,3929,3736,4071,4506,3929,3766,4521,4967,3929,3929,3929,5387,3820,5761,4485,3929,3929,5424,4691,5113,3998,3929,3929,5435,3873,3929,5112,5770,4234,5849,3929,3929,3929,5447,3929,5732,5805,3929,3972,4093,4097,3929,3905,3929,4408,3670,5786,3929,3929,3929,5447,4693,4517,5803,5807,3929,5046,5056,3929,4434,4245,3929,3770,5321,3929,3649,3929,3929,4977,4223,3929,5830,3929,3929,5450,5042,4423,5838,3929,3929,5507,4159,4423,5838,4248,5847,4578,5805,3929,4548,3929,3929,5813,4423,5854,3929,3929,5552,5542,5859,3929,3929,3929,5564,3929,5786,4235,3929,3929,5566,4810,4103,5807,3990,3929,5059,5357,3929,4549,3929,3929,4549,5416,3929,4674,3929,4868,5532,3929,3929,3929,5710,3929,3831,3998,3929,3929,5712,4818,3973,5866,3929,3929,5739,3929,3972,5865,3929,3929,5745,3929,4964,3929,5180,4523,5824,3832,3929,3929,3929,5777,5545,4965,3929,4409,3929,3675,3738,3973,3547,3929,3929,5841,3929,6277,6502,5875,6282,5878,6547,6266,5881,6546,5889,6232,5882,6232,5892,6221,6267,5888,5883,5884,6232,6232,6232,6232,6414,5887,5883,6232,5891,6232,6232,5894,6232,6232,5922,5937,5949,5938,5939,5949,5944,5950,5944,5944,5940,5944,5941,5952,5941,5944,5946,5945,5946,5946,5946,5946,5947,5941,5948,5952,5948,5944,5942,5954,5956,5958,5962,5960,5959,5964,5966,5967,5971,5967,5968,5967,5969,5974,5973,5976,5978,6293,5998,5875,6282,5896,6871,6437,6282,6321,6282,6282,6282,5917,6456,6456,6456,6456,5991,5906,6379,6455,5990,6019,5991,5904,5904,5904,6456,6456,5926,5899,6456,6456,5997,6282,6408,6410,6282,5932,6282,5933,6464,6024,6282,6282,6379,5924,6282,6282,5924,6282,6362,6010,5984,6282,6003,6282,6362,6282,6282,6282,6004,6456,5906,6455,5990,5904,5902,6456,6456,6456,5906,6457,6019,6019,5904,5904,6456,6456,6282,6282,6282,5980,5917,6456,6456,6456,6455,5905,6456,6445,5926,5926,5926,5926,6032,6032,6008,5932,6282,6282,6282,6434,6024,6282,6019,5904,6456,6282,5896,6873,6282,6282,6282,6474,5903,6457,6019,5904,6456,6229,5904,6456,6456,6456,6018,6457,6019,5991,5905,5906,6282,6282,6282,5984,6282,6282,6282,5925,6543,5905,6456,6456,6456,6282,5905,6229,5905,6229,5905,6282,6650,6437,6043,6515,6056,6672,6088,6052,6515,6520,6054,6060,6058,6515,6515,6083,6528,6101,6761,6518,6521,6516,6517,6063,6065,6068,6061,6057,6515,6515,6519,6515,6070,6072,6066,6515,6515,6515,6515,6125,6522,6074,6515,6515,6076,6515,6523,6079,6082,6515,6081,6055,6091,6089,6090,6093,6114,6092,6113,6114,6114,6114,6114,6115,6117,6116,6117,6117,6118,6119,6120,6121,6121,6095,6097,6099,6122,6123,6124,6524,5900,6515,6518,6103,6108,6110,6104,6105,6109,6106,6112,6121,6127,6129,6282,5899,6282,5925,6463,6321,6282,6294,6006,6378,6282,6508,6282,6449,6646,6218,6604,6282,6524,6291,6282,6774,6282,6270,6282,6282,6282,6e3,6e3,6027,6161,6282,6282,5895,6375,6282,6312,6230,6366,6265,5876,6282,6282,6282,6015,6406,6282,6284,6027,6027,6137,6282,6282,6379,6281,6372,6028,6159,6282,5899,6282,6282,6282,6573,6282,6282,6467,6282,6311,6312,6372,6282,6282,6282,6019,6019,5904,5904,5904,5904,5905,6456,6456,6031,6154,6158,6282,6149,6273,6282,6163,6282,6677,6280,6166,6279,6682,6685,6501,6173,6175,6178,6178,6178,6178,6176,6181,6180,6181,6181,6183,6181,6185,6187,6188,6188,6188,6194,6193,6194,6193,6193,6189,6191,6190,6190,6196,6196,6198,6203,6202,6204,6208,6203,6205,6199,6200,6210,6206,6212,6282,6282,5896,6282,6282,6282,6512,6282,6150,6135,6320,6500,6163,6282,6282,6282,6026,6282,6026,6166,6282,6282,6282,6027,6221,6282,6505,6282,6282,6282,6032,6238,6282,6241,6282,5899,6451,6282,5913,6669,6401,6238,6282,6282,6282,6037,6245,6282,6282,6282,6040,6282,6282,6225,6248,6282,6282,5916,6722,6377,6247,6249,6282,6282,5924,6370,6252,6253,6282,6282,5932,6282,6282,6530,5924,6254,6282,6282,6254,6282,6322,6228,6282,5933,6378,6282,6378,6282,6452,6282,6432,6317,6282,5917,6086,6725,6727,6216,6086,6726,6450,6231,5926,5933,6008,6008,6008,6282,6282,6282,5918,6282,6282,6282,5923,6309,6683,6282,6282,6282,6148,6216,6308,6310,6282,6282,6282,6149,6282,5903,6397,6605,6282,6282,5933,5933,5933,6780,6282,6282,6282,6229,6282,6282,6282,5933,5924,6316,5917,6723,6377,5916,6722,6323,6448,6454,6216,6332,6436,6683,6282,5917,6328,6465,6450,6217,6231,6160,6436,6683,6328,6448,6454,6216,6610,6436,6683,6282,6221,6602,6310,6282,5984,5899,5925,6229,6435,6500,6281,6722,6013,6465,6450,6160,6603,6683,6282,6282,6231,6218,6310,6282,5984,6282,6283,6043,5914,6282,5933,6328,6465,6450,6647,6604,6282,6e3,6282,6282,6283,6277,6707,6733,6282,6722,6465,6230,6396,6282,6282,6282,6235,6686,6282,6708,6281,6282,6e3,6437,6362,6338,6279,6282,6282,6283,6444,6145,6683,6282,6282,5933,6003,6282,6282,6282,6006,6375,6465,6708,6282,6005,6282,6282,6287,6289,6282,6548,6282,6282,5933,6282,6282,6282,6137,6282,6282,6020,6282,6375,6282,6282,6282,6281,6471,6218,6683,6282,6282,6282,6370,5984,6282,6010,6795,5984,5899,6282,6282,6661,6282,6e3,6137,6282,6282,6282,6282,5896,5914,6704,6273,5928,6340,6344,6503,6348,6349,6349,6350,6355,6352,6349,6349,6349,6349,6354,6355,6355,6355,6356,6357,6357,6357,6357,6357,6358,6359,6359,6359,6359,6383,6360,6382,6382,6382,6361,6282,6282,6282,6283,6043,5903,5897,6485,6376,6395,6425,6282,6282,6282,6293,6291,6338,6282,6282,6282,6284,6282,6282,6345,6282,6282,6291,6282,6282,6282,6230,5876,6282,6407,6282,6282,6282,6286,6282,6282,6037,6411,6417,6282,6282,5979,5903,6470,6313,6647,6281,6282,6282,6408,6416,6418,6282,6282,5979,6525,6458,6342,6422,6282,6282,6282,6288,6282,6664,6731,6282,6012,6e3,6282,6012,6335,6310,5985,6504,6282,6282,6273,6470,6372,6273,6504,6385,6282,6282,6412,6257,6598,6600,6282,6411,6413,6597,6599,6599,6282,6282,6282,6291,6410,6282,6322,6451,5926,5926,6008,6008,6008,5932,6236,6282,6282,6282,6292,5982,6282,6283,6442,6050,6013,6609,6259,6424,6310,6282,5919,5920,6282,6282,6011,5916,6282,6664,6282,6282,6023,6437,6459,5983,6013,6594,6700,6437,6282,6424,6437,6282,6282,6235,6480,6481,6282,6282,6133,6282,6282,6485,6376,6647,6282,6016,6282,6282,5933,6330,6454,6217,6683,6282,6282,6484,5917,5929,6011,6608,6259,6425,6282,6486,5983,6013,6594,6786,6437,6282,6282,6282,6294,6282,6283,6484,5917,5983,6013,6531,6471,6282,6282,6146,6683,6282,6282,6155,6282,6282,6385,6282,6322,6282,6282,6275,6493,5917,5983,6324,6259,6729,6282,6019,6019,6019,5991,5904,6277,5903,6531,6011,6148,6282,6282,6282,6234,6531,6282,6282,6282,6322,6282,6133,6372,6505,6282,6230,6282,6282,6171,6756,6531,6046,6834,6437,6282,6282,6285,6530,5924,6282,6684,6282,6149,6282,6282,6282,6325,6285,6530,6045,6159,6024,6046,6386,6282,6282,6282,6372,6282,6294,6282,6530,6464,6386,6282,6282,6215,6224,5933,5924,6410,6282,6040,6282,6482,6282,6282,6282,6531,6536,6024,6282,6282,6282,6370,5987,6282,6535,6282,6282,6227,6282,6282,6282,6378,6378,6378,6282,6452,5994,6282,6282,6282,6394,6282,6282,6282,6404,6539,6333,6683,6282,6020,6282,6282,6282,6341,6282,6570,6300,6569,6301,6370,6545,6300,6302,6303,6303,6303,6303,6303,6304,6551,6554,6552,6561,6552,6555,6563,6564,6563,6563,6563,6563,6564,6556,6557,6557,6557,6557,6558,6372,6273,6282,6282,6243,6282,6509,6566,6282,6282,6271,6213,6282,6283,6568,6282,6021,6041,6282,6027,6282,6321,6282,6006,6282,6282,6027,6462,6282,6282,6282,6572,6282,6168,6282,6575,6510,6282,6029,6282,6282,6282,6588,5907,5909,5911,6282,6036,6282,6282,6388,6407,5908,5910,6282,6282,6272,6282,6526,6282,5916,6322,6282,6378,6282,6020,6282,6278,6282,6282,6394,5924,6278,6282,6283,6502,6365,6282,6579,6282,6282,6275,6525,5914,5992,6371,6048,6365,6367,6369,6282,6282,6277,6531,6046,6275,6583,5993,6047,6256,6256,6366,6368,6282,6282,6452,6e3,6282,6282,6282,6408,6282,6027,6282,6372,6526,6282,5899,6539,6664,6682,6282,6282,6282,6146,6282,6482,6282,6006,6451,6282,6282,6282,5985,6458,6342,6313,6136,6152,6282,6037,6378,6282,6282,6282,6421,6584,6020,6437,6683,6282,6027,6321,6282,6451,6646,6152,6282,6282,6282,6410,6282,6282,6282,6375,6282,6e3,6526,6322,6533,6682,6282,6408,6282,6282,6282,6505,6282,6282,6278,6282,6282,6282,6143,6371,6472,6282,6282,6282,6423,6539,6437,6683,6282,6040,6148,6040,6149,6273,6229,6682,6282,6470,6282,6282,6283,6282,6282,6282,6524,6548,5933,6282,5933,6282,6434,6410,6282,6282,6434,6537,6282,6664,6491,6866,5876,6482,6491,6282,6282,6283,6410,6282,6427,6282,6282,5980,6011,6276,6037,6285,6038,6590,6783,6607,6612,6620,6619,6620,6620,6616,6620,6620,6618,6622,6620,6614,6613,6624,6627,6626,6627,6627,6628,6630,6630,6634,6630,6632,6631,6630,6630,6630,6636,6638,6638,6637,6637,6640,6641,6282,6132,6282,6282,5895,5924,5984,6282,6640,6637,6640,6640,6640,6640,6505,5903,6644,6331,6649,6282,6282,6229,5879,6282,6527,6653,6148,6282,6137,5924,6282,6282,6282,6230,6281,6282,6282,6306,6402,6433,6346,6656,6658,6549,6282,6282,6283,6475,6423,6282,6282,6282,6437,6682,5912,6668,6400,6282,6157,6282,6282,5896,6451,5980,5917,6029,6221,6281,6282,6282,6524,6282,6282,6282,5930,6664,6282,6264,6683,6694,6282,6282,6282,6452,6282,6282,6282,6285,5897,6453,6654,6282,6346,6295,6282,6282,6283,6582,6297,6282,6681,6282,6164,6024,6282,6133,6451,6282,5988,6281,6285,5980,6458,6371,6263,6647,6281,6282,6676,6282,6676,6514,5903,6680,6465,6489,5995,6282,6282,6283,6496,6085,6282,6513,6525,6679,6688,6688,6399,6713,6281,6282,6286,6282,6037,6282,6282,6282,5899,6691,6497,6724,6488,6734,6282,6282,6282,6498,6282,6282,6282,6255,6282,6283,6691,6696,6724,6488,6698,6331,6222,6282,6282,6282,6431,6296,6282,6282,6282,6499,6282,6282,5903,6464,6231,6734,6696,6134,6733,6281,6693,6282,6282,6434,6282,6282,6282,6277,6525,6531,6471,6218,6231,6490,6282,6282,6282,6504,6548,6282,6283,6278,6282,6275,6710,6733,6282,6169,6282,6282,6509,6003,6712,6282,6282,6282,6508,5899,6702,6490,6282,6282,6283,6861,6854,6033,6858,6646,6218,6604,6282,6282,6282,6577,6286,6282,6394,6282,6229,6019,6019,6019,6019,5904,6286,6282,6137,6282,6229,6282,6292,6229,6282,6282,6372,6505,6282,6437,6683,6282,6229,6146,6265,6282,6283,6525,5927,6539,6729,6683,6282,6282,6650,6282,6282,6283,6863,6364,6024,6282,6282,6283,6869,6282,6362,6282,6362,6363,6010,6592,5925,6719,6591,6593,6718,6721,5934,5934,5935,6469,6736,5934,5934,5934,6736,6738,6742,6740,6739,6744,6746,6751,6751,6752,6753,6747,6748,6748,6748,6749,6751,6751,6751,6753,6753,6753,6753,6758,6754,6755,6282,6282,6285,6282,6282,6282,6014,6760,5981,6007,6728,6282,6763,6282,6282,6285,6496,6531,6282,6283,6768,6770,6282,6282,6282,6539,6392,6282,6282,6392,6027,6156,6282,6282,6293,6586,6282,6373,6281,6285,6507,5903,6470,6326,6505,6659,6282,6234,6229,5879,6283,6496,6703,6776,6704,6777,6282,6282,6282,6548,6282,5918,6025,6282,6282,6026,6282,6286,6505,6394,6282,6291,6370,6282,6370,6282,6496,6085,6831,6147,6603,6683,6282,6380,6282,6282,6370,6282,6282,6282,6003,6282,6294,6336,6e3,6282,6239,6846,6282,6260,6282,6282,6282,6642,6379,6282,6505,6336,6283,6702,6782,6319,6218,6604,6282,6785,5999,6282,6269,6663,6282,6140,6282,6282,6393,6282,5982,6724,6319,6218,6604,6539,6310,6282,6282,6375,6370,6375,6788,6320,6310,6e3,6e3,6282,6282,6375,6548,6282,6282,6282,6275,6084,6447,6282,6788,6429,6683,6282,6282,6664,6683,6282,6273,6541,6148,6282,6394,6e3,6282,6274,6282,6003,6318,6429,6683,6282,6275,5898,5915,6282,6282,6370,6370,6370,6664,6282,6683,6282,6410,6282,6699,6282,6275,5901,5982,6724,6291,6282,6282,6531,6689,6282,6282,6220,6282,6537,6282,6282,6282,6664,6146,6282,6282,6434,6281,6282,6282,6282,6020,6282,6006,6410,6408,6282,6027,6282,6282,6250,6843,6434,6410,6282,6434,6410,6282,6408,6282,6322,6282,6410,6410,6027,6282,6275,6702,6231,6490,6146,6282,6146,6282,6282,6282,6671,6146,6410,6408,6408,6409,6409,6409,6409,6409,6282,6282,6282,6682,6282,6282,6285,6039,6216,6221,6281,6286,6282,6282,6790,6543,6282,6505,6003,6282,6559,6282,6282,6559,6508,6792,6282,6077,6139,6282,6282,6379,6374,6793,6806,6798,6798,6801,6799,6798,6799,6798,6797,6803,6808,6807,6808,6805,6808,6809,6810,6813,6814,6815,6816,6815,6818,6811,6813,6811,6813,6820,6822,6822,6821,6821,6824,6824,6824,6824,6821,6824,6824,6828,6825,6826,6282,6282,6282,6683,6282,6282,6689,6439,6282,6277,6715,6282,6282,6282,6510,6035,6282,6282,6282,6684,6282,6282,6282,6233,6282,6716,6282,6580,6419,6282,6836,6282,6281,6282,6282,6283,6293,6337,6282,6838,6840,6282,6282,6666,6282,6143,6292,6282,6282,6292,6282,6282,6282,6378,6845,6282,6282,6845,6282,6487,6282,6282,6391,6391,6651,6282,6282,6282,6730,6512,6282,6282,6282,6830,6853,5931,6141,6428,6602,6604,6282,6282,6409,6410,6282,6852,6854,6856,6450,6002,6282,6001,6003,6282,6645,6231,6281,6282,6282,6674,6282,6167,6282,6282,6e3,6282,6e3,6034,6282,6282,6282,6848,6282,6394,6683,6282,6282,5933,6003,5933,6003,6282,6830,6645,6231,6222,6487,6282,6024,6282,6282,6693,6282,6282,6282,6464,6861,6854,6009,6377,6525,5931,6011,6465,6282,6830,5885,6282,6282,6702,5931,6319,6436,6683,5916,6282,6282,5925,6282,6282,6448,6282,6282,6931,6282,6282,6451,6282,6282,6282,6860,6044,6011,6465,6449,6647,6310,6282,6282,6142,6436,6683,6282,6282,6732,5924,5984,6861,5983,6377,6454,5982,6321,6282,6294,6138,6282,6461,6151,6437,6282,6282,6732,6772,6860,5983,6465,6151,6437,6282,6865,6282,6282,6282,6860,6337,6437,6282,6282,6466,6282,6144,6436,6282,6282,6282,6868,6219,6282,6282,6282,6468,6282,6282,6732,6282,5916,6262,6299,6282,5918,5918,5918,6378,6282,6282,6526,6282,6148,6282,6283,6293,6586,6292,6502,6437,6282,6282,6282,6294,6282,6292,6294,6282,6282,6474,5980,6293,6291,6282,6282,6292,6502,6282,6278,6294,6282,6278,6282,6282,6765,6282,6229,6362,6282,6230,6320,6500,6282,6505,6282,6292,6502,6282,6505,6233,6282,6282,6293,6282,6282,6282,6474,6478,6291,6278,6282,6282,6292,6531,6536,6875,6255,6282,6282,6476,6282,6006,6255,6282,6006,6390,6282,6314,6049,6282,6877,6878,6881,6375,6880,5930,6282,6532,6542,6883,6596,6258,6885,6596,6595,6595,6886,6889,6595,6888,6890,6889,6892,6897,6893,6894,6895,6899,6900,6905,6905,6901,6902,6912,6903,6902,6906,6905,6906,6905,6906,6907,6909,6908,6910,6914,6908,6908,6922,6922,6921,6922,6923,6916,6917,6918,6920,6926,6925,6928,6460,6371,6282,6282,6482,5932,6321,6285,6282,6282,6494,6371,6930,6282,6282,6282,6505,6494,6371,6130,6282,6282,6282,6505,6506,6282,6282,6282,6312,6933,6282,6505,6935,6282,6282,6937,6282,6282,6767,6769,6290,6282,6282,6282,6505,6692,6011,6313,6291,6233,6282,6282,6508,6282,6282,6282,5916,6030,6282,6423,6170,6282,6282,6170,6011,6372,6282,5916,6282,6282,5915,6451,6440,6282,6282,5918,6322,6283,6939,6446,6705,6447,6291,6282,6282,6294,6282,6282,6282,6438,6282,6282,6511,6282,6282,6282,6842,6149,6282,6149,6282,6282,6779,6007,6728,6310,6282,6282,6319,6310,6282,6282,6363,6282,6692,6011,6372,5916,6282,5915,6282,6282,6511,6268,6286,6282,5924,6282,6282,6833,6282,6279,6398,6282,6282,6014,6282,6282,6282,6601,6282,6439,5933,6133,6282,6148,6282,6255,6282,5914,5931,6705,6282,6282,6850,6282,6850,6282,6372,6282,6372,6282,6149,6282,6505,5914,5931,6291,6282,6282,5982,6585,6282,6282,6660,6291,6043,5914,6291,6282,6282,6283,6043,5899,6282,6282,1048576,1073741824,2147483648,1075838976,2097152,2147483648,4194560,4196352,-2143289344,-2143289344,4194304,2147483648,37748736,541065216,541065216,-2143289344,4198144,4196352,276901888,8540160,4194304,1,4,16,64,0,48,64,32,64,64,96,0,59,140224,5505024,-1887436800,0,63,64,128,0,64,256,0,110,110,8425488,4194304,1024,0,128,128,512,512,1024,1024,2048,0,256,256,257,37748736,742391808,742391808,775946240,-1371537408,775946240,4718592,775946240,775946240,171966464,171966464,775946240,239075328,-1405091840,-1371537408,239075328,171966464,64,4718592,2097216,4720640,541589504,4194368,4194368,541065280,541589504,4194400,-2143289280,4194368,-2143285440,-2143285408,-2143285408,-2109730976,775946336,776470528,-2143285408,776470528,775946304,775946304,-1908404384,775946304,-1908404384,2,8,32,128,1024,4096,0,260,8392704,0,1856,64,524288,64,896,8192,67108864,2147483648,96,262144,262144,8192,0,288,8388608,0,384,0,512,2048,2048,4096,4096,8192,8192,16384,0,520,520,96,524288,524288,0,2432,2048,268435456,0,24576,0,32768,32768,65536,1048576,128,2048,12288,0,12289,0,16384,16384,32768,0,1864,2,16,1024,98304,131072,262144,1048576,512,5120,2,536936448,80,528,528,2097168,2097168,268435472,524304,1048592,2097168,24,560,48,2097680,1048592,3145744,1048592,20,560,48,3146256,2097552,3146256,28,16,8192,2,2098064,163577856,17,21,112,128,3584,8192,2228784,-161430188,-161430188,-161429680,-161430188,-161429676,-161430188,-161298576,-160299088,-161298576,-161298572,-160774288,-160299084,146804757,146812949,146862101,146863389,146863389,148960541,-161429740,-161429676,146863421,148960541,146863389,-161429676,-160905388,-161429676,-161429676,-161429675,-161349072,-161349072,-161347728,-161347728,-161298572,-161298572,-160774284,-161298572,16,262160,-18860267,-160774284,-18729163,0,58368,159383552,0,65536,2097152,8388608,33554432,0,66048,0,77824,524288,33554432,1024,262144,2097152,16777216,67108864,0,131072,524288,134217728,2147483648,1,32768,196608,0,131328,131072,16777216,100663296,-1073741824,164096,0,131584,2621440,0,139264,0,150528,0,235712,16777216,1073774592,1226014816,100665360,-2046818288,100665360,100665360,-2044196848,1091799136,1091799136,1091803360,1091799136,1158908e3,1158908001,1192462432,1192462448,1192462448,1870638912,1870655296,1870638912,1200851056,1200851056,1091799393,1870655296,1870655296,1870655312,1870655316,1870655312,1870655312,1870638928,1870655316,1870655316,1870655317,1870655316,1879043952,1870655348,1870655316,1879027568,1879043952,1879043956,0,284672,229440,1048576,2097152,67108864,134217728,8,4194304,16777216,2147483648,1224736768,0,503616,2048,100663296,0,524288,2097152,4194304,4194304,0,40,0,44,-2046820352,0,605503,231488,1090519040,1157627904,1191182336,9437184,231744,52e4,7864320,1862270976,0,867391,1862270976,1862270976,16252928,0,1048576,4194304,25165824,25165824,33554432,8192,98304,1048576,8388608,134217728,268435456,4194432,3145728,0,24,0,29,0,32,1,2,2,4,0,2147483648,2147483648,0,0,1,0,2,0,3,240,19456,262144,0,4,8,0,6,0,7,150994944,0,1049088,1049088,12845065,12845065,147193865,128,6144,4194304,251658240,536870912,1073741824,32768,131072,1048576,4096,83886080,117440512,0,3145728,16777216,134217728,0,2048,8192,229376,0,2304,1536,8192,1536,65536,4194304,67108864,536870912,9216,33554432,262144,134217728,1073741824,50331649,9476,512,8192,134218240,1050624,0,5242880,1275208192,4194312,4194312,4194344,4194312,541065224,4203820,-869654016,-869654016,1279402504,1279402504,2143549415,2143549415,2143549423,0,8388608,4096,4194304,8388608,16777216,33554432,-1946157056,0,8192,131072,0,1792,0,1024,8192,65536,0,1536,2147483648,2143549423,2143549423,2143549415,1,16777216,268435456,512,139264,2760704,-872415232,0,19947520,0,33554432,67108864,1073741824,1073741824,262144,7340032,-2030043136,0,331776,300,4203520,4333568,1275068416,0,16777216,16777216,0,999,259072,4194304,4194432,999,29619200,2113929216,0,58720256,1007,1007,0,67108864,402653184,536870912,2048,1048576,16777216,536870912,300,0,83886080,0,2097152,134217728,536870912,0,49152,0,57344,102,384,6,96,128,3072,16384,65536,524288,1048576,0,4096,262144,524288,96,96,64,384,512,4096,65536,131072,1024,65536,262144,131072,32768,256,384,8192,33554432,2147483648,1,6,8,8388608,96,384,104,104,0,134217728,6,32,256,512,65536,7340032,50331648,0,8396800,4,32,384,4,64,1024,2097152,268435456,1073741824,8,262144,512,0,8,8,16,0,9,0,12,0,15,16,16,17,20,16,20,48,16,28,0,16,32,0,21,53,4,256,1024,524288,536870912,256,65536,16777216,1073741824,2048,524288,32,4100,1024,134217728,1049088,270532608,2097152,2097152,0,23,5505537,5587457,5591557,147202057,5587457,13894153,-1881791493,-1881791493,0,134218752,5587465,5587457,13894153,13894153,81003049,4456448,8388608,5505024,0,134348800,134348800,82432,0,142606336,5,86528,41,75497472,81920,0,184549376,2,56,64,2048,262144,536870912,2048,134217728,-2113929216,16777216,1073743872,268435968,229376,25165824,92274688,25165824,100663296,402653184,1610612736,0,100663296,134217728,805306368,1073741824,8388608,268567040,16384,229376,4194304,117440512,2113544,68423701,-2079059883,-2079059947,85200917,68423701,68423765,68489237,68423701,68423701,72618005,68423701,68425749,68423703,85200919,69488664,69488664,70537244,70537245,70537245,-2076946339,-2076946403,70537245,70537309,70539293,-2022351745,-2022351617,-2022351745,-2022351617,-2022351617,0,243269632,256,32768,1048576,33554432,134217728,-2113929216,0,268435456,49152,266240,1048576,67108864,-2080374784,-2080374784,268288,0,301989888,0,318767104,282624,0,536870912,28,3145728,192,351232,7340032,5,16,1049104,12,3145728,13,0,1073741825,192,3072,20480,0,1073741824,0,262144,2621440,-1073741824,20480,65536,268435456,14,32,512,131072,268435456,192,1024,64,32768,33554432,268435456,4,128,3840,16384,262144,128,2097152,1073741824,4,2097152,4,50331648,67108864,128,50331648,1073741824,128,268435968,268435968,268436032,256,1536,2048,16384,98304,393216,524288,268435456,536870912,9216,0,4194304,50331648,2147483648,256,536871168,-1879046336,-1879046334,-1879046326,-1879046334,1073744256,-1879046334,-1879046326,-1845491902,-1878784182,268444480,268436288,268436288,268436289,268444480,268444480,2100318149,2100318149,2100326341,0,1090519040,2100326341,2100326341,1,16,536936448,576,0,832,8192,1,4036,19939328,2080374784,0,1,1024,768,8192,16384,19922944,2080374784,1,128,4096,3584,16384,524288,8,33554432,402653184,2048,3145728,128,131072,268500992,4243456,4096,1048588,0,1258292224,1124073472,1124073472,1124073488,1124073474,1124073472,1392574464,1124073472,1073754113,12289,1124073472,12289,12289,1098920193,1132474625,1098920209,1132474625,1132474625,1124085761,1124085761,1124085777,1258304513,1124085761,1400975617,2132360255,2132622399,2132360255,2132622399,2132622399,2141011263,0,2140749119,2141011263,2,16384,3145728,12545,25165824,268435456,12305,13313,12561,0,78081,327155712,605247,1058013184,1073741824,867647,1066401792,0,1,12288,256,8388608,1,30,32,1024,2048,339968,327680,524288,1,14,16,14,1024,16384,4194304,134217728,1,12,1024,8,134217728,8,536870912,9437184,0,68157440,137363456,0,137363456,66,66,100680704,25165824,26214400,92274688,25165952,93323264,92274688,92274688,92274720,93323264,25165890,100721928,100721928,100787464,100721664,100721664,100853e3,100721928,125977600,125846528,125846528,125846560,125977600,125977600,127026176,281843,281843,1330419,281843,126895104,125846528,1330419,1330419,72633587,5524723,72633587,92556531,93605107,93605107,5524723,5524723,39079155,97799411,127290611,127290611,131484915,0,17408,33554432,1073741824,58624,0,124160,189696,148480,50331648,2,112],r.TOKEN=[\"(0)\",\"PragmaContents\",\"DirCommentContents\",\"DirPIContents\",\"CDataSection\",\"Wildcard\",\"EQName\",\"URILiteral\",\"IntegerLiteral\",\"DecimalLiteral\",\"DoubleLiteral\",\"StringLiteral\",\"PredefinedEntityRef\",\"'\\\"\\\"'\",\"EscapeApos\",\"ElementContentChar\",\"QuotAttrContentChar\",\"AposAttrContentChar\",\"PITarget\",\"NCName\",\"QName\",\"S\",\"S\",\"CharRef\",\"CommentContents\",\"EOF\",\"'!'\",\"'!='\",\"'\\\"'\",\"'#'\",\"'#)'\",\"'$'\",\"'%'\",\"''''\",\"'('\",\"'(#'\",\"'(:'\",\"')'\",\"'*'\",\"'*'\",\"'+'\",\"','\",\"'-'\",\"'-->'\",\"'.'\",\"'..'\",\"'/'\",\"'//'\",\"'/>'\",\"':'\",\"':)'\",\"'::'\",\"':='\",\"';'\",\"'<'\",\"'<!--'\",\"'</'\",\"'<<'\",\"'<='\",\"'<?'\",\"'='\",\"'>'\",\"'>='\",\"'>>'\",\"'?'\",\"'?>'\",\"'@'\",\"'NaN'\",\"'['\",\"']'\",\"'after'\",\"'all'\",\"'allowing'\",\"'ancestor'\",\"'ancestor-or-self'\",\"'and'\",\"'any'\",\"'append'\",\"'array'\",\"'as'\",\"'ascending'\",\"'at'\",\"'attribute'\",\"'base-uri'\",\"'before'\",\"'boundary-space'\",\"'break'\",\"'by'\",\"'case'\",\"'cast'\",\"'castable'\",\"'catch'\",\"'check'\",\"'child'\",\"'collation'\",\"'collection'\",\"'comment'\",\"'constraint'\",\"'construction'\",\"'contains'\",\"'content'\",\"'context'\",\"'continue'\",\"'copy'\",\"'copy-namespaces'\",\"'count'\",\"'decimal-format'\",\"'decimal-separator'\",\"'declare'\",\"'default'\",\"'delete'\",\"'descendant'\",\"'descendant-or-self'\",\"'descending'\",\"'diacritics'\",\"'different'\",\"'digit'\",\"'distance'\",\"'div'\",\"'document'\",\"'document-node'\",\"'element'\",\"'else'\",\"'empty'\",\"'empty-sequence'\",\"'encoding'\",\"'end'\",\"'entire'\",\"'eq'\",\"'every'\",\"'exactly'\",\"'except'\",\"'exit'\",\"'external'\",\"'first'\",\"'following'\",\"'following-sibling'\",\"'for'\",\"'foreach'\",\"'foreign'\",\"'from'\",\"'ft-option'\",\"'ftand'\",\"'ftnot'\",\"'ftor'\",\"'function'\",\"'ge'\",\"'greatest'\",\"'group'\",\"'grouping-separator'\",\"'gt'\",\"'idiv'\",\"'if'\",\"'import'\",\"'in'\",\"'index'\",\"'infinity'\",\"'inherit'\",\"'insensitive'\",\"'insert'\",\"'instance'\",\"'integrity'\",\"'intersect'\",\"'into'\",\"'is'\",\"'item'\",\"'json'\",\"'json-item'\",\"'key'\",\"'language'\",\"'last'\",\"'lax'\",\"'le'\",\"'least'\",\"'let'\",\"'levels'\",\"'loop'\",\"'lowercase'\",\"'lt'\",\"'minus-sign'\",\"'mod'\",\"'modify'\",\"'module'\",\"'most'\",\"'namespace'\",\"'namespace-node'\",\"'ne'\",\"'next'\",\"'no'\",\"'no-inherit'\",\"'no-preserve'\",\"'node'\",\"'nodes'\",\"'not'\",\"'object'\",\"'occurs'\",\"'of'\",\"'on'\",\"'only'\",\"'option'\",\"'or'\",\"'order'\",\"'ordered'\",\"'ordering'\",\"'paragraph'\",\"'paragraphs'\",\"'parent'\",\"'pattern-separator'\",\"'per-mille'\",\"'percent'\",\"'phrase'\",\"'position'\",\"'preceding'\",\"'preceding-sibling'\",\"'preserve'\",\"'previous'\",\"'processing-instruction'\",\"'relationship'\",\"'rename'\",\"'replace'\",\"'return'\",\"'returning'\",\"'revalidation'\",\"'same'\",\"'satisfies'\",\"'schema'\",\"'schema-attribute'\",\"'schema-element'\",\"'score'\",\"'self'\",\"'sensitive'\",\"'sentence'\",\"'sentences'\",\"'skip'\",\"'sliding'\",\"'some'\",\"'stable'\",\"'start'\",\"'stemming'\",\"'stop'\",\"'strict'\",\"'strip'\",\"'structured-item'\",\"'switch'\",\"'text'\",\"'then'\",\"'thesaurus'\",\"'times'\",\"'to'\",\"'treat'\",\"'try'\",\"'tumbling'\",\"'type'\",\"'typeswitch'\",\"'union'\",\"'unique'\",\"'unordered'\",\"'updating'\",\"'uppercase'\",\"'using'\",\"'validate'\",\"'value'\",\"'variable'\",\"'version'\",\"'weight'\",\"'when'\",\"'where'\",\"'while'\",\"'wildcards'\",\"'window'\",\"'with'\",\"'without'\",\"'word'\",\"'words'\",\"'xquery'\",\"'zero-digit'\",\"'{'\",\"'{{'\",\"'{|'\",\"'|'\",\"'||'\",\"'|}'\",\"'}'\",\"'}}'\"]},{}],11:[function(e,t,n){\"use strict\";n.TreeOps={flatten:function(e){var t=this,n=\"\";if(!e)throw new Error(\"Invalid node found\");return e.value===undefined?e.children.forEach(function(e){n+=t.flatten(e)}):n+=e.value,n},concat:function(e,t,n){var r=n?{}:e;n&&Object.keys(e).forEach(function(t){r[t]=e[t]});var i=Object.keys(t);return i.forEach(function(e){r[e]=t[e]}),r},removeParentPtr:function(e){e.getParent!==undefined&&delete e.getParent;for(var t in e.children){var n=e.children[t];this.removeParentPtr(n)}},inRange:function(e,t,n){if(e&&e.sl<=t.line&&t.line<=e.el){if(e.sl<t.line&&t.line<e.el)return!0;if(e.sl===t.line&&t.line<e.el)return e.sc<=t.col;if(e.sl===t.line&&e.el===t.line)return e.sc<=t.col&&t.col<=e.ec+(n?1:0);if(e.sl<t.line&&e.el===t.line)return t.col<=e.ec+(n?1:0)}},findNode:function(e,t){if(!e)return;var n=e.pos;if(this.inRange(n,t)===!0){for(var r in e.children){var i=e.children[r],s=this.findNode(i,t);if(s!==undefined)return s}return e}return},astAsXML:function(e,t){var n=\"\";t=t?t:\"\",e.value&&(n+=t+\"<\"+e.name+\">\"+e.value+\"</\"+e.name+\">\\n\"),n+=t+\"<\"+e.name+\">\\n\";var r=this;return e.children.forEach(function(e){n+=r.astAsXML(e,t+\"  \")}),n+=t+\"</\"+e.name+\">\\n\",n}}},{}],12:[function(e,t,n){\"use strict\";var r=e(\"./parsers/JSONiqParser\").JSONiqParser,i=e(\"./parsers/XQueryParser\").XQueryParser,s=e(\"./parsers/JSONParseTreeHandler\").JSONParseTreeHandler,o=e(\"./compiler/translator\").Translator,u=e(\"./formatter/style_checker\").StyleChecker,a=e(\"../lib/completion/completer\"),f=n.createStaticContext=function(){var t=e(\"./compiler/static_context\").StaticContext;return new t},l=function(e,t){return e?(Object.keys(t).forEach(function(n){e[n]===undefined&&(e[n]=t[n])}),e):t},c=function(e,t,n){var r=e.substring(0,t),i=e.substring(0,n),s=r.split(\"\\n\").length,o=t-r.lastIndexOf(\"\\n\"),u=i.split(\"\\n\").length,a=n-i.lastIndexOf(\"\\n\"),f={sl:s-1,sc:o-1,el:u-1,ec:a-1};return f};n.XQLint=function(e,t){t=t?t:{},t=l(t,{styleCheck:!1});var n;this.getAST=function(){return n};var h=[];this.getMarkers=function(){return h},this.getMarkers=function(e){var t=[];return h.forEach(function(n){(n.type===e||e===undefined)&&t.push(n)}),t},this.getErrors=function(){return this.getMarkers(\"error\")},this.getWarnings=function(){return this.getMarkers(\"warning\")},this.getCompletions=function(t){return a.complete(e,n,d,t)};var p=!1;this.hasSyntaxError=function(){return p};var d=t.staticContext?t.staticContext:f(),v=t.fileName?t.fileName:\"\",m=v.substring(v.length-\".jq\".length).indexOf(\".jq\")!==-1&&e.indexOf(\"xquery version\")!==0||e.indexOf(\"jsoniq version\")===0,g=new s(e),y=m?new r(e,g):new i(e,g);try{y.parse_XQuery()}catch(b){if(!(b instanceof y.ParseException))throw b;p=!0,g.closeParseTree();var w=c(e,b.getBegin(),b.getEnd()),E=y.getErrorMessage(b);w.sc===w.ec&&w.ec++,h.push({pos:w,type:\"error\",level:\"error\",message:E})}n=g.getParseTree(),t.styleCheck&&(h=h.concat((new u(n,e)).getMarkers()));var S=new o(d,n);h=h.concat(S.getMarkers())}},{\"../lib/completion/completer\":6,\"./compiler/static_context\":4,\"./compiler/translator\":5,\"./formatter/style_checker\":7,\"./parsers/JSONParseTreeHandler\":8,\"./parsers/JSONiqParser\":9,\"./parsers/XQueryParser\":10}]},{},[12])(12)}),ace.define(\"ace/mode/xquery_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/xquery/xqlint\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../worker/mirror\").Mirror,s=e(\"./xquery/xqlint\"),o=s.XQLint,u=function(e){return function(t){var n=e,r=n[t],i={},s={};return r.functions.forEach(function(e){s[t+\"#\"+e.name+\"#\"+e.arity]={params:[]},e.parameters.forEach(function(n){s[t+\"#\"+e.name+\"#\"+e.arity].params.push(\"$\"+n.name)})}),r.variables.forEach(function(e){var n=e.name.substring(e.name.indexOf(\":\")+1);i[t+\"#\"+n]={type:\"VarDecl\",annotations:[]}}),{variables:i,functions:s}}},a=t.XQueryWorker=function(e){i.call(this,e),this.setTimeout(200),this.opts={styleCheck:!1};var t=this;this.sender.on(\"complete\",function(e){if(t.xqlint){var n={line:e.data.pos.row,col:e.data.pos.column},r=t.xqlint.getCompletions(n);t.sender.emit(\"complete\",r)}}),this.sender.on(\"setAvailableModuleNamespaces\",function(e){t.availableModuleNamespaces=e.data}),this.sender.on(\"setModuleResolver\",function(e){t.moduleResolver=u(e.data)})};r.inherits(a,i),function(){this.onUpdate=function(){this.sender.emit(\"start\");var e=this.doc.getValue(),t=s.createStaticContext();this.moduleResolver&&t.setModuleResolver(this.moduleResolver),this.availableModuleNamespaces&&(t.availableModuleNamespaces=this.availableModuleNamespaces);var n={styleCheck:this.styleCheck,staticContext:t};this.xqlint=new o(e,n),this.sender.emit(\"markers\",this.xqlint.getMarkers())}}.call(a.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,\"sentinel\",{}),\"sentinel\"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t===\"undefined\"||t===\"boolean\"||t===\"number\"||t===\"string\"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n==\"function\"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r==\"function\"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!=\"function\")throw new TypeError(\"Function.prototype.bind called on incompatible \"+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,\"__defineGetter__\"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,\"XXX\"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)==\"[object Array]\"});var m=Object(\"a\"),g=m[0]!=\"a\"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0,s=arguments[1];if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduce of empty array with no initial value\");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError(\"reduce of empty array with no initial value\")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)==\"[object String]\"?this.split(\"\"):n,i=r.length>>>0;if(a(t)!=\"[object Function]\")throw new TypeError(t+\" is not a function\");if(!i&&arguments.length==1)throw new TypeError(\"reduceRight of empty array with no initial value\");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError(\"reduceRight of empty array with no initial value\")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)==\"[object String]\"?this.split(\"\"):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!=\"object\")throw new TypeError(\"typeof prototype[\"+typeof t+\"] != 'object'\");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document==\"undefined\"||w(document.createElement(\"div\"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T=\"Property description must be an object: \",N=\"Object.defineProperty called on non-object: \",C=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(t,n,r){if(typeof t!=\"object\"&&typeof t!=\"function\"||t===null)throw new TypeError(N+t);if(typeof r!=\"object\"&&typeof r!=\"function\"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,\"value\"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,\"get\")&&l(t,n,r.get),f(r,\"set\")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n==\"function\"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n=\"\";while(f(t,n))n+=\"?\";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!=\"object\"&&typeof e!=\"function\"||e===null)throw new TypeError(\"Object.keys called on a non-object\");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=\"\t\\n\u000b\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\ufeff\";if(!String.prototype.trim||_.trim()){_=\"[\"+_+\"]\";var D=new RegExp(\"^\"+_+_+\"*\"),P=new RegExp(_+_+\"*$\");String.prototype.trim=function(){return String(this).replace(D,\"\").replace(P,\"\")}}var F=function(e){if(e==null)throw new TypeError(\"can't convert \"+e+\" to object\");return Object(e)}})"
  },
  {
    "path": "lib/src-noconflict/ace.js",
    "content": "/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *     * Redistributions of source code must retain the above copyright\n *       notice, this list of conditions and the following disclaimer.\n *     * Redistributions in binary form must reproduce the above copyright\n *       notice, this list of conditions and the following disclaimer in the\n *       documentation and/or other materials provided with the distribution.\n *     * Neither the name of Ajax.org B.V. nor the\n *       names of its contributors may be used to endorse or promote products\n *       derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * ***** END LICENSE BLOCK ***** */\n\n/**\n * Define a module along with a payload\n * @param module a name for the payload\n * @param payload a function to call with (require, exports, module) params\n */\n\n(function() {\n\nvar ACE_NAMESPACE = \"ace\";\n\nvar global = (function() { return this; })();\nif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\nif (!ACE_NAMESPACE && typeof requirejs !== \"undefined\")\n    return;\n\n\nvar define = function(module, deps, payload) {\n    if (typeof module !== \"string\") {\n        if (define.original)\n            define.original.apply(this, arguments);\n        else {\n            console.error(\"dropping module because define wasn\\'t a string.\");\n            console.trace();\n        }\n        return;\n    }\n    if (arguments.length == 2)\n        payload = deps;\n    if (!define.modules[module]) {\n        define.payloads[module] = payload;\n        define.modules[module] = null;\n    }\n};\n\ndefine.modules = {};\ndefine.payloads = {};\n\n/**\n * Get at functionality define()ed using the function above\n */\nvar _require = function(parentId, module, callback) {\n    if (typeof module === \"string\") {\n        var payload = lookup(parentId, module);\n        if (payload != undefined) {\n            callback && callback();\n            return payload;\n        }\n    } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n        var params = [];\n        for (var i = 0, l = module.length; i < l; ++i) {\n            var dep = lookup(parentId, module[i]);\n            if (dep == undefined && require.original)\n                return;\n            params.push(dep);\n        }\n        return callback && callback.apply(null, params) || true;\n    }\n};\n\nvar require = function(module, callback) {\n    var packagedModule = _require(\"\", module, callback);\n    if (packagedModule == undefined && require.original)\n        return require.original.apply(this, arguments);\n    return packagedModule;\n};\n\nvar normalizeModule = function(parentId, moduleName) {\n    // normalize plugin requires\n    if (moduleName.indexOf(\"!\") !== -1) {\n        var chunks = moduleName.split(\"!\");\n        return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n    }\n    // normalize relative requires\n    if (moduleName.charAt(0) == \".\") {\n        var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n        moduleName = base + \"/\" + moduleName;\n\n        while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n            var previous = moduleName;\n            moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n        }\n    }\n    return moduleName;\n};\n\n/**\n * Internal function to lookup moduleNames and resolve them by calling the\n * definition function if needed.\n */\nvar lookup = function(parentId, moduleName) {\n    moduleName = normalizeModule(parentId, moduleName);\n\n    var module = define.modules[moduleName];\n    if (!module) {\n        module = define.payloads[moduleName];\n        if (typeof module === 'function') {\n            var exports = {};\n            var mod = {\n                id: moduleName,\n                uri: '',\n                exports: exports,\n                packaged: true\n            };\n\n            var req = function(module, callback) {\n                return _require(moduleName, module, callback);\n            };\n\n            var returnValue = module(req, exports, mod);\n            exports = returnValue || mod.exports;\n            define.modules[moduleName] = exports;\n            delete define.payloads[moduleName];\n        }\n        module = define.modules[moduleName] = exports || module;\n    }\n    return module;\n};\n\nfunction exportAce(ns) {\n    var root = global;\n    if (ns) {\n        if (!global[ns])\n            global[ns] = {};\n        root = global[ns];\n    }\n\n    if (!root.define || !root.define.packaged) {\n        define.original = root.define;\n        root.define = define;\n        root.define.packaged = true;\n    }\n\n    if (!root.require || !root.require.packaged) {\n        require.original = root.require;\n        root.require = require;\n        root.require.packaged = true;\n    }\n}\n\nexportAce(ACE_NAMESPACE);\n\n})();\n\nace.define(\"ace/lib/regexp\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\n    var real = {\n            exec: RegExp.prototype.exec,\n            test: RegExp.prototype.test,\n            match: String.prototype.match,\n            replace: String.prototype.replace,\n            split: String.prototype.split\n        },\n        compliantExecNpcg = real.exec.call(/()??/, \"\")[1] === undefined, // check `exec` handling of nonparticipating capturing groups\n        compliantLastIndexIncrement = function () {\n            var x = /^/g;\n            real.test.call(x, \"\");\n            return !x.lastIndex;\n        }();\n\n    if (compliantLastIndexIncrement && compliantExecNpcg)\n        return;\n    RegExp.prototype.exec = function (str) {\n        var match = real.exec.apply(this, arguments),\n            name, r2;\n        if ( typeof(str) == 'string' && match) {\n            if (!compliantExecNpcg && match.length > 1 && indexOf(match, \"\") > -1) {\n                r2 = RegExp(this.source, real.replace.call(getNativeFlags(this), \"g\", \"\"));\n                real.replace.call(str.slice(match.index), r2, function () {\n                    for (var i = 1; i < arguments.length - 2; i++) {\n                        if (arguments[i] === undefined)\n                            match[i] = undefined;\n                    }\n                });\n            }\n            if (this._xregexp && this._xregexp.captureNames) {\n                for (var i = 1; i < match.length; i++) {\n                    name = this._xregexp.captureNames[i - 1];\n                    if (name)\n                       match[name] = match[i];\n                }\n            }\n            if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index))\n                this.lastIndex--;\n        }\n        return match;\n    };\n    if (!compliantLastIndexIncrement) {\n        RegExp.prototype.test = function (str) {\n            var match = real.exec.call(this, str);\n            if (match && this.global && !match[0].length && (this.lastIndex > match.index))\n                this.lastIndex--;\n            return !!match;\n        };\n    }\n\n    function getNativeFlags (regex) {\n        return (regex.global     ? \"g\" : \"\") +\n               (regex.ignoreCase ? \"i\" : \"\") +\n               (regex.multiline  ? \"m\" : \"\") +\n               (regex.extended   ? \"x\" : \"\") + // Proposed for ES4; included in AS3\n               (regex.sticky     ? \"y\" : \"\");\n    }\n\n    function indexOf (array, item, from) {\n        if (Array.prototype.indexOf) // Use the native array method if available\n            return array.indexOf(item, from);\n        for (var i = from || 0; i < array.length; i++) {\n            if (array[i] === item)\n                return i;\n        }\n        return -1;\n    }\n\n});\n\nace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\nfunction Empty() {}\n\nif (!Function.prototype.bind) {\n    Function.prototype.bind = function bind(that) { // .length is 1\n        var target = this;\n        if (typeof target != \"function\") {\n            throw new TypeError(\"Function.prototype.bind called on incompatible \" + target);\n        }\n        var args = slice.call(arguments, 1); // for normal call\n        var bound = function () {\n\n            if (this instanceof bound) {\n\n                var result = target.apply(\n                    this,\n                    args.concat(slice.call(arguments))\n                );\n                if (Object(result) === result) {\n                    return result;\n                }\n                return this;\n\n            } else {\n                return target.apply(\n                    that,\n                    args.concat(slice.call(arguments))\n                );\n\n            }\n\n        };\n        if(target.prototype) {\n            Empty.prototype = target.prototype;\n            bound.prototype = new Empty();\n            Empty.prototype = null;\n        }\n        return bound;\n    };\n}\nvar call = Function.prototype.call;\nvar prototypeOfArray = Array.prototype;\nvar prototypeOfObject = Object.prototype;\nvar slice = prototypeOfArray.slice;\nvar _toString = call.bind(prototypeOfObject.toString);\nvar owns = call.bind(prototypeOfObject.hasOwnProperty);\nvar defineGetter;\nvar defineSetter;\nvar lookupGetter;\nvar lookupSetter;\nvar supportsAccessors;\nif ((supportsAccessors = owns(prototypeOfObject, \"__defineGetter__\"))) {\n    defineGetter = call.bind(prototypeOfObject.__defineGetter__);\n    defineSetter = call.bind(prototypeOfObject.__defineSetter__);\n    lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);\n    lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);\n}\nif ([1,2].splice(0).length != 2) {\n    if(function() { // test IE < 9 to splice bug - see issue #138\n        function makeArray(l) {\n            var a = new Array(l+2);\n            a[0] = a[1] = 0;\n            return a;\n        }\n        var array = [], lengthBefore;\n        \n        array.splice.apply(array, makeArray(20));\n        array.splice.apply(array, makeArray(26));\n\n        lengthBefore = array.length; //46\n        array.splice(5, 0, \"XXX\"); // add one element\n\n        lengthBefore + 1 == array.length\n\n        if (lengthBefore + 1 == array.length) {\n            return true;// has right splice implementation without bugs\n        }\n    }()) {//IE 6/7\n        var array_splice = Array.prototype.splice;\n        Array.prototype.splice = function(start, deleteCount) {\n            if (!arguments.length) {\n                return [];\n            } else {\n                return array_splice.apply(this, [\n                    start === void 0 ? 0 : start,\n                    deleteCount === void 0 ? (this.length - start) : deleteCount\n                ].concat(slice.call(arguments, 2)))\n            }\n        };\n    } else {//IE8\n        Array.prototype.splice = function(pos, removeCount){\n            var length = this.length;\n            if (pos > 0) {\n                if (pos > length)\n                    pos = length;\n            } else if (pos == void 0) {\n                pos = 0;\n            } else if (pos < 0) {\n                pos = Math.max(length + pos, 0);\n            }\n\n            if (!(pos+removeCount < length))\n                removeCount = length - pos;\n\n            var removed = this.slice(pos, pos+removeCount);\n            var insert = slice.call(arguments, 2);\n            var add = insert.length;            \n            if (pos === length) {\n                if (add) {\n                    this.push.apply(this, insert);\n                }\n            } else {\n                var remove = Math.min(removeCount, length - pos);\n                var tailOldPos = pos + remove;\n                var tailNewPos = tailOldPos + add - remove;\n                var tailCount = length - tailOldPos;\n                var lengthAfterRemove = length - remove;\n\n                if (tailNewPos < tailOldPos) { // case A\n                    for (var i = 0; i < tailCount; ++i) {\n                        this[tailNewPos+i] = this[tailOldPos+i];\n                    }\n                } else if (tailNewPos > tailOldPos) { // case B\n                    for (i = tailCount; i--; ) {\n                        this[tailNewPos+i] = this[tailOldPos+i];\n                    }\n                } // else, add == remove (nothing to do)\n\n                if (add && pos === lengthAfterRemove) {\n                    this.length = lengthAfterRemove; // truncate array\n                    this.push.apply(this, insert);\n                } else {\n                    this.length = lengthAfterRemove + add; // reserves space\n                    for (i = 0; i < add; ++i) {\n                        this[pos+i] = insert[i];\n                    }\n                }\n            }\n            return removed;\n        };\n    }\n}\nif (!Array.isArray) {\n    Array.isArray = function isArray(obj) {\n        return _toString(obj) == \"[object Array]\";\n    };\n}\nvar boxedString = Object(\"a\"),\n    splitString = boxedString[0] != \"a\" || !(0 in boxedString);\n\nif (!Array.prototype.forEach) {\n    Array.prototype.forEach = function forEach(fun /*, thisp*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            thisp = arguments[1],\n            i = -1,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(); // TODO message\n        }\n\n        while (++i < length) {\n            if (i in self) {\n                fun.call(thisp, self[i], i, object);\n            }\n        }\n    };\n}\nif (!Array.prototype.map) {\n    Array.prototype.map = function map(fun /*, thisp*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            result = Array(length),\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self)\n                result[i] = fun.call(thisp, self[i], i, object);\n        }\n        return result;\n    };\n}\nif (!Array.prototype.filter) {\n    Array.prototype.filter = function filter(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                    object,\n            length = self.length >>> 0,\n            result = [],\n            value,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self) {\n                value = self[i];\n                if (fun.call(thisp, value, i, object)) {\n                    result.push(value);\n                }\n            }\n        }\n        return result;\n    };\n}\nif (!Array.prototype.every) {\n    Array.prototype.every = function every(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self && !fun.call(thisp, self[i], i, object)) {\n                return false;\n            }\n        }\n        return true;\n    };\n}\nif (!Array.prototype.some) {\n    Array.prototype.some = function some(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self && fun.call(thisp, self[i], i, object)) {\n                return true;\n            }\n        }\n        return false;\n    };\n}\nif (!Array.prototype.reduce) {\n    Array.prototype.reduce = function reduce(fun /*, initial*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n        if (!length && arguments.length == 1) {\n            throw new TypeError(\"reduce of empty array with no initial value\");\n        }\n\n        var i = 0;\n        var result;\n        if (arguments.length >= 2) {\n            result = arguments[1];\n        } else {\n            do {\n                if (i in self) {\n                    result = self[i++];\n                    break;\n                }\n                if (++i >= length) {\n                    throw new TypeError(\"reduce of empty array with no initial value\");\n                }\n            } while (true);\n        }\n\n        for (; i < length; i++) {\n            if (i in self) {\n                result = fun.call(void 0, result, self[i], i, object);\n            }\n        }\n\n        return result;\n    };\n}\nif (!Array.prototype.reduceRight) {\n    Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n        if (!length && arguments.length == 1) {\n            throw new TypeError(\"reduceRight of empty array with no initial value\");\n        }\n\n        var result, i = length - 1;\n        if (arguments.length >= 2) {\n            result = arguments[1];\n        } else {\n            do {\n                if (i in self) {\n                    result = self[i--];\n                    break;\n                }\n                if (--i < 0) {\n                    throw new TypeError(\"reduceRight of empty array with no initial value\");\n                }\n            } while (true);\n        }\n\n        do {\n            if (i in this) {\n                result = fun.call(void 0, result, self[i], i, object);\n            }\n        } while (i--);\n\n        return result;\n    };\n}\nif (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {\n    Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {\n        var self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                toObject(this),\n            length = self.length >>> 0;\n\n        if (!length) {\n            return -1;\n        }\n\n        var i = 0;\n        if (arguments.length > 1) {\n            i = toInteger(arguments[1]);\n        }\n        i = i >= 0 ? i : Math.max(0, length + i);\n        for (; i < length; i++) {\n            if (i in self && self[i] === sought) {\n                return i;\n            }\n        }\n        return -1;\n    };\n}\nif (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {\n    Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {\n        var self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                toObject(this),\n            length = self.length >>> 0;\n\n        if (!length) {\n            return -1;\n        }\n        var i = length - 1;\n        if (arguments.length > 1) {\n            i = Math.min(i, toInteger(arguments[1]));\n        }\n        i = i >= 0 ? i : length - Math.abs(i);\n        for (; i >= 0; i--) {\n            if (i in self && sought === self[i]) {\n                return i;\n            }\n        }\n        return -1;\n    };\n}\nif (!Object.getPrototypeOf) {\n    Object.getPrototypeOf = function getPrototypeOf(object) {\n        return object.__proto__ || (\n            object.constructor ?\n            object.constructor.prototype :\n            prototypeOfObject\n        );\n    };\n}\nif (!Object.getOwnPropertyDescriptor) {\n    var ERR_NON_OBJECT = \"Object.getOwnPropertyDescriptor called on a \" +\n                         \"non-object: \";\n    Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n        if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n            throw new TypeError(ERR_NON_OBJECT + object);\n        if (!owns(object, property))\n            return;\n\n        var descriptor, getter, setter;\n        descriptor =  { enumerable: true, configurable: true };\n        if (supportsAccessors) {\n            var prototype = object.__proto__;\n            object.__proto__ = prototypeOfObject;\n\n            var getter = lookupGetter(object, property);\n            var setter = lookupSetter(object, property);\n            object.__proto__ = prototype;\n\n            if (getter || setter) {\n                if (getter) descriptor.get = getter;\n                if (setter) descriptor.set = setter;\n                return descriptor;\n            }\n        }\n        descriptor.value = object[property];\n        return descriptor;\n    };\n}\nif (!Object.getOwnPropertyNames) {\n    Object.getOwnPropertyNames = function getOwnPropertyNames(object) {\n        return Object.keys(object);\n    };\n}\nif (!Object.create) {\n    var createEmpty;\n    if (Object.prototype.__proto__ === null) {\n        createEmpty = function () {\n            return { \"__proto__\": null };\n        };\n    } else {\n        createEmpty = function () {\n            var empty = {};\n            for (var i in empty)\n                empty[i] = null;\n            empty.constructor =\n            empty.hasOwnProperty =\n            empty.propertyIsEnumerable =\n            empty.isPrototypeOf =\n            empty.toLocaleString =\n            empty.toString =\n            empty.valueOf =\n            empty.__proto__ = null;\n            return empty;\n        }\n    }\n\n    Object.create = function create(prototype, properties) {\n        var object;\n        if (prototype === null) {\n            object = createEmpty();\n        } else {\n            if (typeof prototype != \"object\")\n                throw new TypeError(\"typeof prototype[\"+(typeof prototype)+\"] != 'object'\");\n            var Type = function () {};\n            Type.prototype = prototype;\n            object = new Type();\n            object.__proto__ = prototype;\n        }\n        if (properties !== void 0)\n            Object.defineProperties(object, properties);\n        return object;\n    };\n}\n\nfunction doesDefinePropertyWork(object) {\n    try {\n        Object.defineProperty(object, \"sentinel\", {});\n        return \"sentinel\" in object;\n    } catch (exception) {\n    }\n}\nif (Object.defineProperty) {\n    var definePropertyWorksOnObject = doesDefinePropertyWork({});\n    var definePropertyWorksOnDom = typeof document == \"undefined\" ||\n        doesDefinePropertyWork(document.createElement(\"div\"));\n    if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {\n        var definePropertyFallback = Object.defineProperty;\n    }\n}\n\nif (!Object.defineProperty || definePropertyFallback) {\n    var ERR_NON_OBJECT_DESCRIPTOR = \"Property description must be an object: \";\n    var ERR_NON_OBJECT_TARGET = \"Object.defineProperty called on non-object: \"\n    var ERR_ACCESSORS_NOT_SUPPORTED = \"getters & setters can not be defined \" +\n                                      \"on this javascript engine\";\n\n    Object.defineProperty = function defineProperty(object, property, descriptor) {\n        if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n            throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n        if ((typeof descriptor != \"object\" && typeof descriptor != \"function\") || descriptor === null)\n            throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n        if (definePropertyFallback) {\n            try {\n                return definePropertyFallback.call(Object, object, property, descriptor);\n            } catch (exception) {\n            }\n        }\n        if (owns(descriptor, \"value\")) {\n\n            if (supportsAccessors && (lookupGetter(object, property) ||\n                                      lookupSetter(object, property)))\n            {\n                var prototype = object.__proto__;\n                object.__proto__ = prototypeOfObject;\n                delete object[property];\n                object[property] = descriptor.value;\n                object.__proto__ = prototype;\n            } else {\n                object[property] = descriptor.value;\n            }\n        } else {\n            if (!supportsAccessors)\n                throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n            if (owns(descriptor, \"get\"))\n                defineGetter(object, property, descriptor.get);\n            if (owns(descriptor, \"set\"))\n                defineSetter(object, property, descriptor.set);\n        }\n\n        return object;\n    };\n}\nif (!Object.defineProperties) {\n    Object.defineProperties = function defineProperties(object, properties) {\n        for (var property in properties) {\n            if (owns(properties, property))\n                Object.defineProperty(object, property, properties[property]);\n        }\n        return object;\n    };\n}\nif (!Object.seal) {\n    Object.seal = function seal(object) {\n        return object;\n    };\n}\nif (!Object.freeze) {\n    Object.freeze = function freeze(object) {\n        return object;\n    };\n}\ntry {\n    Object.freeze(function () {});\n} catch (exception) {\n    Object.freeze = (function freeze(freezeObject) {\n        return function freeze(object) {\n            if (typeof object == \"function\") {\n                return object;\n            } else {\n                return freezeObject(object);\n            }\n        };\n    })(Object.freeze);\n}\nif (!Object.preventExtensions) {\n    Object.preventExtensions = function preventExtensions(object) {\n        return object;\n    };\n}\nif (!Object.isSealed) {\n    Object.isSealed = function isSealed(object) {\n        return false;\n    };\n}\nif (!Object.isFrozen) {\n    Object.isFrozen = function isFrozen(object) {\n        return false;\n    };\n}\nif (!Object.isExtensible) {\n    Object.isExtensible = function isExtensible(object) {\n        if (Object(object) === object) {\n            throw new TypeError(); // TODO message\n        }\n        var name = '';\n        while (owns(object, name)) {\n            name += '?';\n        }\n        object[name] = true;\n        var returnValue = owns(object, name);\n        delete object[name];\n        return returnValue;\n    };\n}\nif (!Object.keys) {\n    var hasDontEnumBug = true,\n        dontEnums = [\n            \"toString\",\n            \"toLocaleString\",\n            \"valueOf\",\n            \"hasOwnProperty\",\n            \"isPrototypeOf\",\n            \"propertyIsEnumerable\",\n            \"constructor\"\n        ],\n        dontEnumsLength = dontEnums.length;\n\n    for (var key in {\"toString\": null}) {\n        hasDontEnumBug = false;\n    }\n\n    Object.keys = function keys(object) {\n\n        if (\n            (typeof object != \"object\" && typeof object != \"function\") ||\n            object === null\n        ) {\n            throw new TypeError(\"Object.keys called on a non-object\");\n        }\n\n        var keys = [];\n        for (var name in object) {\n            if (owns(object, name)) {\n                keys.push(name);\n            }\n        }\n\n        if (hasDontEnumBug) {\n            for (var i = 0, ii = dontEnumsLength; i < ii; i++) {\n                var dontEnum = dontEnums[i];\n                if (owns(object, dontEnum)) {\n                    keys.push(dontEnum);\n                }\n            }\n        }\n        return keys;\n    };\n\n}\nif (!Date.now) {\n    Date.now = function now() {\n        return new Date().getTime();\n    };\n}\nvar ws = \"\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\" +\n    \"\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\" +\n    \"\\u2029\\uFEFF\";\nif (!String.prototype.trim || ws.trim()) {\n    ws = \"[\" + ws + \"]\";\n    var trimBeginRegexp = new RegExp(\"^\" + ws + ws + \"*\"),\n        trimEndRegexp = new RegExp(ws + ws + \"*$\");\n    String.prototype.trim = function trim() {\n        return String(this).replace(trimBeginRegexp, \"\").replace(trimEndRegexp, \"\");\n    };\n}\n\nfunction toInteger(n) {\n    n = +n;\n    if (n !== n) { // isNaN\n        n = 0;\n    } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {\n        n = (n > 0 || -1) * Math.floor(Math.abs(n));\n    }\n    return n;\n}\n\nfunction isPrimitive(input) {\n    var type = typeof input;\n    return (\n        input === null ||\n        type === \"undefined\" ||\n        type === \"boolean\" ||\n        type === \"number\" ||\n        type === \"string\"\n    );\n}\n\nfunction toPrimitive(input) {\n    var val, valueOf, toString;\n    if (isPrimitive(input)) {\n        return input;\n    }\n    valueOf = input.valueOf;\n    if (typeof valueOf === \"function\") {\n        val = valueOf.call(input);\n        if (isPrimitive(val)) {\n            return val;\n        }\n    }\n    toString = input.toString;\n    if (typeof toString === \"function\") {\n        val = toString.call(input);\n        if (isPrimitive(val)) {\n            return val;\n        }\n    }\n    throw new TypeError();\n}\nvar toObject = function (o) {\n    if (o == null) { // this matches both null and undefined\n        throw new TypeError(\"can't convert \"+o+\" to object\");\n    }\n    return Object(o);\n};\n\n});\n\nace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/regexp\",\"ace/lib/es5-shim\"], function(require, exports, module) {\n\"use strict\";\n\nrequire(\"./regexp\");\nrequire(\"./es5-shim\");\n\n});\n\nace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\n\nexports.getDocumentHead = function(doc) {\n    if (!doc)\n        doc = document;\n    return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n}\n\nexports.createElement = function(tag, ns) {\n    return document.createElementNS ?\n           document.createElementNS(ns || XHTML_NS, tag) :\n           document.createElement(tag);\n};\n\nexports.hasCssClass = function(el, name) {\n    var classes = (el.className + \"\").split(/\\s+/g);\n    return classes.indexOf(name) !== -1;\n};\nexports.addCssClass = function(el, name) {\n    if (!exports.hasCssClass(el, name)) {\n        el.className += \" \" + name;\n    }\n};\nexports.removeCssClass = function(el, name) {\n    var classes = el.className.split(/\\s+/g);\n    while (true) {\n        var index = classes.indexOf(name);\n        if (index == -1) {\n            break;\n        }\n        classes.splice(index, 1);\n    }\n    el.className = classes.join(\" \");\n};\n\nexports.toggleCssClass = function(el, name) {\n    var classes = el.className.split(/\\s+/g), add = true;\n    while (true) {\n        var index = classes.indexOf(name);\n        if (index == -1) {\n            break;\n        }\n        add = false;\n        classes.splice(index, 1);\n    }\n    if (add)\n        classes.push(name);\n\n    el.className = classes.join(\" \");\n    return add;\n};\nexports.setCssClass = function(node, className, include) {\n    if (include) {\n        exports.addCssClass(node, className);\n    } else {\n        exports.removeCssClass(node, className);\n    }\n};\n\nexports.hasCssString = function(id, doc) {\n    var index = 0, sheets;\n    doc = doc || document;\n\n    if (doc.createStyleSheet && (sheets = doc.styleSheets)) {\n        while (index < sheets.length)\n            if (sheets[index++].owningElement.id === id) return true;\n    } else if ((sheets = doc.getElementsByTagName(\"style\"))) {\n        while (index < sheets.length)\n            if (sheets[index++].id === id) return true;\n    }\n\n    return false;\n};\n\nexports.importCssString = function importCssString(cssText, id, doc) {\n    doc = doc || document;\n    if (id && exports.hasCssString(id, doc))\n        return null;\n    \n    var style;\n    \n    if (id)\n        cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n    \n    if (doc.createStyleSheet) {\n        style = doc.createStyleSheet();\n        style.cssText = cssText;\n        if (id)\n            style.owningElement.id = id;\n    } else {\n        style = exports.createElement(\"style\");\n        style.appendChild(doc.createTextNode(cssText));\n        if (id)\n            style.id = id;\n\n        exports.getDocumentHead(doc).appendChild(style);\n    }\n};\n\nexports.importCssStylsheet = function(uri, doc) {\n    if (doc.createStyleSheet) {\n        doc.createStyleSheet(uri);\n    } else {\n        var link = exports.createElement('link');\n        link.rel = 'stylesheet';\n        link.href = uri;\n\n        exports.getDocumentHead(doc).appendChild(link);\n    }\n};\n\nexports.getInnerWidth = function(element) {\n    return (\n        parseInt(exports.computedStyle(element, \"paddingLeft\"), 10) +\n        parseInt(exports.computedStyle(element, \"paddingRight\"), 10) + \n        element.clientWidth\n    );\n};\n\nexports.getInnerHeight = function(element) {\n    return (\n        parseInt(exports.computedStyle(element, \"paddingTop\"), 10) +\n        parseInt(exports.computedStyle(element, \"paddingBottom\"), 10) +\n        element.clientHeight\n    );\n};\n\nexports.scrollbarWidth = function(document) {\n    var inner = exports.createElement(\"ace_inner\");\n    inner.style.width = \"100%\";\n    inner.style.minWidth = \"0px\";\n    inner.style.height = \"200px\";\n    inner.style.display = \"block\";\n\n    var outer = exports.createElement(\"ace_outer\");\n    var style = outer.style;\n\n    style.position = \"absolute\";\n    style.left = \"-10000px\";\n    style.overflow = \"hidden\";\n    style.width = \"200px\";\n    style.minWidth = \"0px\";\n    style.height = \"150px\";\n    style.display = \"block\";\n\n    outer.appendChild(inner);\n\n    var body = document.documentElement;\n    body.appendChild(outer);\n\n    var noScrollbar = inner.offsetWidth;\n\n    style.overflow = \"scroll\";\n    var withScrollbar = inner.offsetWidth;\n\n    if (noScrollbar == withScrollbar) {\n        withScrollbar = outer.clientWidth;\n    }\n\n    body.removeChild(outer);\n\n    return noScrollbar-withScrollbar;\n};\n\nif (typeof document == \"undefined\") {\n    exports.importCssString = function() {};\n    return;\n}\n\nif (window.pageYOffset !== undefined) {\n    exports.getPageScrollTop = function() {\n        return window.pageYOffset;\n    };\n\n    exports.getPageScrollLeft = function() {\n        return window.pageXOffset;\n    };\n}\nelse {\n    exports.getPageScrollTop = function() {\n        return document.body.scrollTop;\n    };\n\n    exports.getPageScrollLeft = function() {\n        return document.body.scrollLeft;\n    };\n}\n\nif (window.getComputedStyle)\n    exports.computedStyle = function(element, style) {\n        if (style)\n            return (window.getComputedStyle(element, \"\") || {})[style] || \"\";\n        return window.getComputedStyle(element, \"\") || {};\n    };\nelse\n    exports.computedStyle = function(element, style) {\n        if (style)\n            return element.currentStyle[style];\n        return element.currentStyle;\n    };\nexports.setInnerHtml = function(el, innerHtml) {\n    var element = el.cloneNode(false);//document.createElement(\"div\");\n    element.innerHTML = innerHtml;\n    el.parentNode.replaceChild(element, el);\n    return element;\n};\n\nif (\"textContent\" in document.documentElement) {\n    exports.setInnerText = function(el, innerText) {\n        el.textContent = innerText;\n    };\n\n    exports.getInnerText = function(el) {\n        return el.textContent;\n    };\n}\nelse {\n    exports.setInnerText = function(el, innerText) {\n        el.innerText = innerText;\n    };\n\n    exports.getInnerText = function(el) {\n        return el.innerText;\n    };\n}\n\nexports.getParentWindow = function(document) {\n    return document.defaultView || document.parentWindow;\n};\n\n});\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.inherits = function(ctor, superCtor) {\n    ctor.super_ = superCtor;\n    ctor.prototype = Object.create(superCtor.prototype, {\n        constructor: {\n            value: ctor,\n            enumerable: false,\n            writable: true,\n            configurable: true\n        }\n    });\n};\n\nexports.mixin = function(obj, mixin) {\n    for (var key in mixin) {\n        obj[key] = mixin[key];\n    }\n    return obj;\n};\n\nexports.implement = function(proto, mixin) {\n    exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\"], function(require, exports, module) {\n\"use strict\";\n\nrequire(\"./fixoldbrowsers\");\n\nvar oop = require(\"./oop\");\nvar Keys = (function() {\n    var ret = {\n        MODIFIER_KEYS: {\n            16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta'\n        },\n\n        KEY_MODS: {\n            \"ctrl\": 1, \"alt\": 2, \"option\" : 2, \"shift\": 4,\n            \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8\n        },\n\n        FUNCTION_KEYS : {\n            8  : \"Backspace\",\n            9  : \"Tab\",\n            13 : \"Return\",\n            19 : \"Pause\",\n            27 : \"Esc\",\n            32 : \"Space\",\n            33 : \"PageUp\",\n            34 : \"PageDown\",\n            35 : \"End\",\n            36 : \"Home\",\n            37 : \"Left\",\n            38 : \"Up\",\n            39 : \"Right\",\n            40 : \"Down\",\n            44 : \"Print\",\n            45 : \"Insert\",\n            46 : \"Delete\",\n            96 : \"Numpad0\",\n            97 : \"Numpad1\",\n            98 : \"Numpad2\",\n            99 : \"Numpad3\",\n            100: \"Numpad4\",\n            101: \"Numpad5\",\n            102: \"Numpad6\",\n            103: \"Numpad7\",\n            104: \"Numpad8\",\n            105: \"Numpad9\",\n            '-13': \"NumpadEnter\",\n            112: \"F1\",\n            113: \"F2\",\n            114: \"F3\",\n            115: \"F4\",\n            116: \"F5\",\n            117: \"F6\",\n            118: \"F7\",\n            119: \"F8\",\n            120: \"F9\",\n            121: \"F10\",\n            122: \"F11\",\n            123: \"F12\",\n            144: \"Numlock\",\n            145: \"Scrolllock\"\n        },\n\n        PRINTABLE_KEYS: {\n           32: ' ',  48: '0',  49: '1',  50: '2',  51: '3',  52: '4', 53:  '5',\n           54: '6',  55: '7',  56: '8',  57: '9',  59: ';',  61: '=', 65:  'a',\n           66: 'b',  67: 'c',  68: 'd',  69: 'e',  70: 'f',  71: 'g', 72:  'h',\n           73: 'i',  74: 'j',  75: 'k',  76: 'l',  77: 'm',  78: 'n', 79:  'o',\n           80: 'p',  81: 'q',  82: 'r',  83: 's',  84: 't',  85: 'u', 86:  'v',\n           87: 'w',  88: 'x',  89: 'y',  90: 'z', 107: '+', 109: '-', 110: '.',\n          186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n          219: '[', 220: '\\\\',221: ']', 222: \"'\", 111: '/', 106: '*'\n        }\n    };\n    var name, i;\n    for (i in ret.FUNCTION_KEYS) {\n        name = ret.FUNCTION_KEYS[i].toLowerCase();\n        ret[name] = parseInt(i, 10);\n    }\n    for (i in ret.PRINTABLE_KEYS) {\n        name = ret.PRINTABLE_KEYS[i].toLowerCase();\n        ret[name] = parseInt(i, 10);\n    }\n    oop.mixin(ret, ret.MODIFIER_KEYS);\n    oop.mixin(ret, ret.PRINTABLE_KEYS);\n    oop.mixin(ret, ret.FUNCTION_KEYS);\n    ret.enter = ret[\"return\"];\n    ret.escape = ret.esc;\n    ret.del = ret[\"delete\"];\n    ret[173] = '-';\n    \n    (function() {\n        var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n        for (var i = Math.pow(2, mods.length); i--;) {            \n            ret.KEY_MODS[i] = mods.filter(function(x) {\n                return i & ret.KEY_MODS[x];\n            }).join(\"-\") + \"-\";\n        }\n    })();\n\n    ret.KEY_MODS[0] = \"\";\n    ret.KEY_MODS[-1] = \"input-\";\n\n    return ret;\n})();\noop.mixin(exports, Keys);\n\nexports.keyCodeToString = function(keyCode) {\n    var keyString = Keys[keyCode];\n    if (typeof keyString != \"string\")\n        keyString = String.fromCharCode(keyCode);\n    return keyString.toLowerCase();\n};\n\n});\n\nace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\nexports.OS = {\n    LINUX: \"LINUX\",\n    MAC: \"MAC\",\n    WINDOWS: \"WINDOWS\"\n};\nexports.getOS = function() {\n    if (exports.isMac) {\n        return exports.OS.MAC;\n    } else if (exports.isLinux) {\n        return exports.OS.LINUX;\n    } else {\n        return exports.OS.WINDOWS;\n    }\n};\nif (typeof navigator != \"object\")\n    return;\n\nvar os = (navigator.platform.match(/mac|win|linux/i) || [\"other\"])[0].toLowerCase();\nvar ua = navigator.userAgent;\nexports.isWin = (os == \"win\");\nexports.isMac = (os == \"mac\");\nexports.isLinux = (os == \"linux\");\nexports.isIE = \n    (navigator.appName == \"Microsoft Internet Explorer\" || navigator.appName.indexOf(\"MSAppHost\") >= 0)\n    ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1])\n    : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1]); // for ie\n    \nexports.isOldIE = exports.isIE && exports.isIE < 9;\nexports.isGecko = exports.isMozilla = (window.Controllers || window.controllers) && window.navigator.product === \"Gecko\";\nexports.isOldGecko = exports.isGecko && parseInt((ua.match(/rv:(\\d+)/)||[])[1], 10) < 4;\nexports.isOpera = window.opera && Object.prototype.toString.call(window.opera) == \"[object Opera]\";\nexports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\n\nexports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\n\nexports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\n\nexports.isIPad = ua.indexOf(\"iPad\") >= 0;\n\nexports.isTouchPad = ua.indexOf(\"TouchPad\") >= 0;\n\nexports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\n\n});\n\nace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module) {\n\"use strict\";\n\nvar keys = require(\"./keys\");\nvar useragent = require(\"./useragent\");\n\nvar pressedKeys = null;\nvar ts = 0;\n\nexports.addListener = function(elem, type, callback) {\n    if (elem.addEventListener) {\n        return elem.addEventListener(type, callback, false);\n    }\n    if (elem.attachEvent) {\n        var wrapper = function() {\n            callback.call(elem, window.event);\n        };\n        callback._wrapper = wrapper;\n        elem.attachEvent(\"on\" + type, wrapper);\n    }\n};\n\nexports.removeListener = function(elem, type, callback) {\n    if (elem.removeEventListener) {\n        return elem.removeEventListener(type, callback, false);\n    }\n    if (elem.detachEvent) {\n        elem.detachEvent(\"on\" + type, callback._wrapper || callback);\n    }\n};\nexports.stopEvent = function(e) {\n    exports.stopPropagation(e);\n    exports.preventDefault(e);\n    return false;\n};\n\nexports.stopPropagation = function(e) {\n    if (e.stopPropagation)\n        e.stopPropagation();\n    else\n        e.cancelBubble = true;\n};\n\nexports.preventDefault = function(e) {\n    if (e.preventDefault)\n        e.preventDefault();\n    else\n        e.returnValue = false;\n};\nexports.getButton = function(e) {\n    if (e.type == \"dblclick\")\n        return 0;\n    if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n        return 2;\n    if (e.preventDefault) {\n        return e.button;\n    }\n    else {\n        return {1:0, 2:2, 4:1}[e.button];\n    }\n};\n\nexports.capture = function(el, eventHandler, releaseCaptureHandler) {\n    function onMouseUp(e) {\n        eventHandler && eventHandler(e);\n        releaseCaptureHandler && releaseCaptureHandler(e);\n\n        exports.removeListener(document, \"mousemove\", eventHandler, true);\n        exports.removeListener(document, \"mouseup\", onMouseUp, true);\n        exports.removeListener(document, \"dragstart\", onMouseUp, true);\n    }\n\n    exports.addListener(document, \"mousemove\", eventHandler, true);\n    exports.addListener(document, \"mouseup\", onMouseUp, true);\n    exports.addListener(document, \"dragstart\", onMouseUp, true);\n    \n    return onMouseUp;\n};\n\nexports.addTouchMoveListener = function (el, callback) {\n    if (\"ontouchmove\" in el) {\n        var startx, starty;\n        exports.addListener(el, \"touchstart\", function (e) {\n            var touchObj = e.changedTouches[0];\n            startx = touchObj.clientX;\n            starty = touchObj.clientY;\n        });\n        exports.addListener(el, \"touchmove\", function (e) {\n            var factor = 1,\n            touchObj = e.changedTouches[0];\n\n            e.wheelX = -(touchObj.clientX - startx) / factor;\n            e.wheelY = -(touchObj.clientY - starty) / factor;\n\n            startx = touchObj.clientX;\n            starty = touchObj.clientY;\n\n            callback(e);\n        });\n    } \n};\n\nexports.addMouseWheelListener = function(el, callback) {\n    if (\"onmousewheel\" in el) {\n        exports.addListener(el, \"mousewheel\", function(e) {\n            var factor = 8;\n            if (e.wheelDeltaX !== undefined) {\n                e.wheelX = -e.wheelDeltaX / factor;\n                e.wheelY = -e.wheelDeltaY / factor;\n            } else {\n                e.wheelX = 0;\n                e.wheelY = -e.wheelDelta / factor;\n            }\n            callback(e);\n        });\n    } else if (\"onwheel\" in el) {\n        exports.addListener(el, \"wheel\",  function(e) {\n            var factor = 0.35;\n            switch (e.deltaMode) {\n                case e.DOM_DELTA_PIXEL:\n                    e.wheelX = e.deltaX * factor || 0;\n                    e.wheelY = e.deltaY * factor || 0;\n                    break;\n                case e.DOM_DELTA_LINE:\n                case e.DOM_DELTA_PAGE:\n                    e.wheelX = (e.deltaX || 0) * 5;\n                    e.wheelY = (e.deltaY || 0) * 5;\n                    break;\n            }\n            \n            callback(e);\n        });\n    } else {\n        exports.addListener(el, \"DOMMouseScroll\", function(e) {\n            if (e.axis && e.axis == e.HORIZONTAL_AXIS) {\n                e.wheelX = (e.detail || 0) * 5;\n                e.wheelY = 0;\n            } else {\n                e.wheelX = 0;\n                e.wheelY = (e.detail || 0) * 5;\n            }\n            callback(e);\n        });\n    }\n};\n\nexports.addMultiMouseDownListener = function(elements, timeouts, eventHandler, callbackName) {\n    var clicks = 0;\n    var startX, startY, timer; \n    var eventNames = {\n        2: \"dblclick\",\n        3: \"tripleclick\",\n        4: \"quadclick\"\n    };\n\n    function onMousedown(e) {\n        if (exports.getButton(e) !== 0) {\n            clicks = 0;\n        } else if (e.detail > 1) {\n            clicks++;\n            if (clicks > 4)\n                clicks = 1;\n        } else {\n            clicks = 1;\n        }\n        if (useragent.isIE) {\n            var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n            if (!timer || isNewClick)\n                clicks = 1;\n            if (timer)\n                clearTimeout(timer);\n            timer = setTimeout(function() {timer = null}, timeouts[clicks - 1] || 600);\n\n            if (clicks == 1) {\n                startX = e.clientX;\n                startY = e.clientY;\n            }\n        }\n        \n        e._clicks = clicks;\n\n        eventHandler[callbackName](\"mousedown\", e);\n\n        if (clicks > 4)\n            clicks = 0;\n        else if (clicks > 1)\n            return eventHandler[callbackName](eventNames[clicks], e);\n    }\n    function onDblclick(e) {\n        clicks = 2;\n        if (timer)\n            clearTimeout(timer);\n        timer = setTimeout(function() {timer = null}, timeouts[clicks - 1] || 600);\n        eventHandler[callbackName](\"mousedown\", e);\n        eventHandler[callbackName](eventNames[clicks], e);\n    }\n    if (!Array.isArray(elements))\n        elements = [elements];\n    elements.forEach(function(el) {\n        exports.addListener(el, \"mousedown\", onMousedown);\n        if (useragent.isOldIE)\n            exports.addListener(el, \"dblclick\", onDblclick);\n    });\n};\n\nvar getModifierHash = useragent.isMac && useragent.isOpera && !(\"KeyboardEvent\" in window)\n    ? function(e) {\n        return 0 | (e.metaKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.ctrlKey ? 8 : 0);\n    }\n    : function(e) {\n        return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n    };\n\nexports.getModifierString = function(e) {\n    return keys.KEY_MODS[getModifierHash(e)];\n};\n\nfunction normalizeCommandKeys(callback, e, keyCode) {\n    var hashId = getModifierHash(e);\n\n    if (!useragent.isMac && pressedKeys) {\n        if (e.getModifierState && (e.getModifierState(\"OS\") || e.getModifierState(\"Win\")))\n            hashId |= 8;\n        if (pressedKeys.altGr) {\n            if ((3 & hashId) != 3)\n                pressedKeys.altGr = 0;\n            else\n                return;\n        }\n        if (keyCode === 18 || keyCode === 17) {\n            var location = \"location\" in e ? e.location : e.keyLocation;\n            if (keyCode === 17 && location === 1) {\n                if (pressedKeys[keyCode] == 1)\n                    ts = e.timeStamp;\n            } else if (keyCode === 18 && hashId === 3 && location === 2) {\n                var dt = e.timeStamp - ts;\n                if (dt < 50)\n                    pressedKeys.altGr = true;\n            }\n        }\n    }\n    \n    if (keyCode in keys.MODIFIER_KEYS) {\n        keyCode = -1;\n    }\n    if (hashId & 8 && (keyCode >= 91 && keyCode <= 93)) {\n        keyCode = -1;\n    }\n    \n    if (!hashId && keyCode === 13) {\n        var location = \"location\" in e ? e.location : e.keyLocation;\n        if (location === 3) {\n            callback(e, hashId, -keyCode);\n            if (e.defaultPrevented)\n                return;\n        }\n    }\n    \n    if (useragent.isChromeOS && hashId & 8) {\n        callback(e, hashId, keyCode);\n        if (e.defaultPrevented)\n            return;\n        else\n            hashId &= ~8;\n    }\n    if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n        return false;\n    }\n    \n    return callback(e, hashId, keyCode);\n}\n\n\nexports.addCommandKeyListener = function(el, callback) {\n    var addListener = exports.addListener;\n    if (useragent.isOldGecko || (useragent.isOpera && !(\"KeyboardEvent\" in window))) {\n        var lastKeyDownKeyCode = null;\n        addListener(el, \"keydown\", function(e) {\n            lastKeyDownKeyCode = e.keyCode;\n        });\n        addListener(el, \"keypress\", function(e) {\n            return normalizeCommandKeys(callback, e, lastKeyDownKeyCode);\n        });\n    } else {\n        var lastDefaultPrevented = null;\n\n        addListener(el, \"keydown\", function(e) {\n            pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1;\n            var result = normalizeCommandKeys(callback, e, e.keyCode);\n            lastDefaultPrevented = e.defaultPrevented;\n            return result;\n        });\n\n        addListener(el, \"keypress\", function(e) {\n            if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n                exports.stopEvent(e);\n                lastDefaultPrevented = null;\n            }\n        });\n\n        addListener(el, \"keyup\", function(e) {\n            pressedKeys[e.keyCode] = null;\n        });\n\n        if (!pressedKeys) {\n            resetPressedKeys();\n            addListener(window, \"focus\", resetPressedKeys);\n        }\n    }\n};\nfunction resetPressedKeys() {\n    pressedKeys = Object.create(null);\n}\n\nif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n    var postMessageId = 1;\n    exports.nextTick = function(callback, win) {\n        win = win || window;\n        var messageName = \"zero-timeout-message-\" + postMessageId;\n        exports.addListener(win, \"message\", function listener(e) {\n            if (e.data == messageName) {\n                exports.stopPropagation(e);\n                exports.removeListener(win, \"message\", listener);\n                callback();\n            }\n        });\n        win.postMessage(messageName, \"*\");\n    };\n}\n\n\nexports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n    || window.mozRequestAnimationFrame\n    || window.webkitRequestAnimationFrame\n    || window.msRequestAnimationFrame\n    || window.oRequestAnimationFrame);\n\nif (exports.nextFrame)\n    exports.nextFrame = exports.nextFrame.bind(window);\nelse\n    exports.nextFrame = function(callback) {\n        setTimeout(callback, 17);\n    };\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.last = function(a) {\n    return a[a.length - 1];\n};\n\nexports.stringReverse = function(string) {\n    return string.split(\"\").reverse().join(\"\");\n};\n\nexports.stringRepeat = function (string, count) {\n    var result = '';\n    while (count > 0) {\n        if (count & 1)\n            result += string;\n\n        if (count >>= 1)\n            string += string;\n    }\n    return result;\n};\n\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\n\nexports.stringTrimLeft = function (string) {\n    return string.replace(trimBeginRegexp, '');\n};\n\nexports.stringTrimRight = function (string) {\n    return string.replace(trimEndRegexp, '');\n};\n\nexports.copyObject = function(obj) {\n    var copy = {};\n    for (var key in obj) {\n        copy[key] = obj[key];\n    }\n    return copy;\n};\n\nexports.copyArray = function(array){\n    var copy = [];\n    for (var i=0, l=array.length; i<l; i++) {\n        if (array[i] && typeof array[i] == \"object\")\n            copy[i] = this.copyObject(array[i]);\n        else \n            copy[i] = array[i];\n    }\n    return copy;\n};\n\nexports.deepCopy = function deepCopy(obj) {\n    if (typeof obj !== \"object\" || !obj)\n        return obj;\n    var copy;\n    if (Array.isArray(obj)) {\n        copy = [];\n        for (var key = 0; key < obj.length; key++) {\n            copy[key] = deepCopy(obj[key]);\n        }\n        return copy;\n    }\n    if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n        return obj;\n    \n    copy = {};\n    for (var key in obj)\n        copy[key] = deepCopy(obj[key]);\n    return copy;\n};\n\nexports.arrayToMap = function(arr) {\n    var map = {};\n    for (var i=0; i<arr.length; i++) {\n        map[arr[i]] = 1;\n    }\n    return map;\n\n};\n\nexports.createMap = function(props) {\n    var map = Object.create(null);\n    for (var i in props) {\n        map[i] = props[i];\n    }\n    return map;\n};\nexports.arrayRemove = function(array, value) {\n  for (var i = 0; i <= array.length; i++) {\n    if (value === array[i]) {\n      array.splice(i, 1);\n    }\n  }\n};\n\nexports.escapeRegExp = function(str) {\n    return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\n\nexports.escapeHTML = function(str) {\n    return str.replace(/&/g, \"&#38;\").replace(/\"/g, \"&#34;\").replace(/'/g, \"&#39;\").replace(/</g, \"&#60;\");\n};\n\nexports.getMatchOffsets = function(string, regExp) {\n    var matches = [];\n\n    string.replace(regExp, function(str) {\n        matches.push({\n            offset: arguments[arguments.length-2],\n            length: str.length\n        });\n    });\n\n    return matches;\n};\nexports.deferredCall = function(fcn) {\n    var timer = null;\n    var callback = function() {\n        timer = null;\n        fcn();\n    };\n\n    var deferred = function(timeout) {\n        deferred.cancel();\n        timer = setTimeout(callback, timeout || 0);\n        return deferred;\n    };\n\n    deferred.schedule = deferred;\n\n    deferred.call = function() {\n        this.cancel();\n        fcn();\n        return deferred;\n    };\n\n    deferred.cancel = function() {\n        clearTimeout(timer);\n        timer = null;\n        return deferred;\n    };\n    \n    deferred.isPending = function() {\n        return timer;\n    };\n\n    return deferred;\n};\n\n\nexports.delayedCall = function(fcn, defaultTimeout) {\n    var timer = null;\n    var callback = function() {\n        timer = null;\n        fcn();\n    };\n\n    var _self = function(timeout) {\n        if (timer == null)\n            timer = setTimeout(callback, timeout || defaultTimeout);\n    };\n\n    _self.delay = function(timeout) {\n        timer && clearTimeout(timer);\n        timer = setTimeout(callback, timeout || defaultTimeout);\n    };\n    _self.schedule = _self;\n\n    _self.call = function() {\n        this.cancel();\n        fcn();\n    };\n\n    _self.cancel = function() {\n        timer && clearTimeout(timer);\n        timer = null;\n    };\n\n    _self.isPending = function() {\n        return timer;\n    };\n\n    return _self;\n};\n});\n\nace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE =  useragent.isIE;\n\nvar TextInput = function(parentNode, host) {\n    var text = dom.createElement(\"textarea\");\n    text.className = \"ace_text-input\";\n\n    if (useragent.isTouchPad)\n        text.setAttribute(\"x-palm-disable-auto-cap\", true);\n\n    text.setAttribute(\"wrap\", \"off\");\n    text.setAttribute(\"autocorrect\", \"off\");\n    text.setAttribute(\"autocapitalize\", \"off\");\n    text.setAttribute(\"spellcheck\", false);\n\n    text.style.opacity = \"0\";\n    if (useragent.isOldIE) text.style.top = \"-1000px\";\n    parentNode.insertBefore(text, parentNode.firstChild);\n\n    var PLACEHOLDER = \"\\x01\\x01\";\n\n    var copied = false;\n    var pasted = false;\n    var inComposition = false;\n    var tempStyle = '';\n    var isSelectionEmpty = true;\n    try { var isFocused = document.activeElement === text; } catch(e) {}\n    \n    event.addListener(text, \"blur\", function(e) {\n        host.onBlur(e);\n        isFocused = false;\n    });\n    event.addListener(text, \"focus\", function(e) {\n        isFocused = true;\n        host.onFocus(e);\n        resetSelection();\n    });\n    this.focus = function() {\n        if (tempStyle) return text.focus();\n        var top = text.style.top;\n        text.style.position = \"fixed\";\n        text.style.top = \"0px\";\n        text.focus();\n        setTimeout(function() {\n            text.style.position = \"\";\n            if (text.style.top == \"0px\")\n                text.style.top = top;\n        }, 0);\n    };\n    this.blur = function() {\n        text.blur();\n    };\n    this.isFocused = function() {\n        return isFocused;\n    };\n    var syncSelection = lang.delayedCall(function() {\n        isFocused && resetSelection(isSelectionEmpty);\n    });\n    var syncValue = lang.delayedCall(function() {\n         if (!inComposition) {\n            text.value = PLACEHOLDER;\n            isFocused && resetSelection();\n         }\n    });\n\n    function resetSelection(isEmpty) {\n        if (inComposition)\n            return;\n        inComposition = true;\n        \n        if (inputHandler) {\n            selectionStart = 0;\n            selectionEnd = isEmpty ? 0 : text.value.length - 1;\n        } else {\n            var selectionStart = isEmpty ? 2 : 1;\n            var selectionEnd = 2;\n        }\n        try {\n            text.setSelectionRange(selectionStart, selectionEnd);\n        } catch(e){}\n        \n        inComposition = false;\n    }\n\n    function resetValue() {\n        if (inComposition)\n            return;\n        text.value = PLACEHOLDER;\n        if (useragent.isWebKit)\n            syncValue.schedule();\n    }\n\n    useragent.isWebKit || host.addEventListener('changeSelection', function() {\n        if (host.selection.isEmpty() != isSelectionEmpty) {\n            isSelectionEmpty = !isSelectionEmpty;\n            syncSelection.schedule();\n        }\n    });\n\n    resetValue();\n    if (isFocused)\n        host.onFocus();\n\n\n    var isAllSelected = function(text) {\n        return text.selectionStart === 0 && text.selectionEnd === text.value.length;\n    };\n    if (!text.setSelectionRange && text.createTextRange) {\n        text.setSelectionRange = function(selectionStart, selectionEnd) {\n            var range = this.createTextRange();\n            range.collapse(true);\n            range.moveStart('character', selectionStart);\n            range.moveEnd('character', selectionEnd);\n            range.select();\n        };\n        isAllSelected = function(text) {\n            try {\n                var range = text.ownerDocument.selection.createRange();\n            }catch(e) {}\n            if (!range || range.parentElement() != text) return false;\n                return range.text == text.value;\n        }\n    }\n    if (useragent.isOldIE) {\n        var inPropertyChange = false;\n        var onPropertyChange = function(e){\n            if (inPropertyChange)\n                return;\n            var data = text.value;\n            if (inComposition || !data || data == PLACEHOLDER)\n                return;\n            if (e && data == PLACEHOLDER[0])\n                return syncProperty.schedule();\n\n            sendText(data);\n            inPropertyChange = true;\n            resetValue();\n            inPropertyChange = false;\n        };\n        var syncProperty = lang.delayedCall(onPropertyChange);\n        event.addListener(text, \"propertychange\", onPropertyChange);\n\n        var keytable = { 13:1, 27:1 };\n        event.addListener(text, \"keyup\", function (e) {\n            if (inComposition && (!text.value || keytable[e.keyCode]))\n                setTimeout(onCompositionEnd, 0);\n            if ((text.value.charCodeAt(0)||0) < 129) {\n                return syncProperty.call();\n            }\n            inComposition ? onCompositionUpdate() : onCompositionStart();\n        });\n        event.addListener(text, \"keydown\", function (e) {\n            syncProperty.schedule(50);\n        });\n    }\n\n    var onSelect = function(e) {\n        if (copied) {\n            copied = false;\n        } else if (isAllSelected(text)) {\n            host.selectAll();\n            resetSelection();\n        } else if (inputHandler) {\n            resetSelection(host.selection.isEmpty());\n        }\n    };\n\n    var inputHandler = null;\n    this.setInputHandler = function(cb) {inputHandler = cb};\n    this.getInputHandler = function() {return inputHandler};\n    var afterContextMenu = false;\n    \n    var sendText = function(data) {\n        if (inputHandler) {\n            data = inputHandler(data);\n            inputHandler = null;\n        }\n        if (pasted) {\n            resetSelection();\n            if (data)\n                host.onPaste(data);\n            pasted = false;\n        } else if (data == PLACEHOLDER.charAt(0)) {\n            if (afterContextMenu)\n                host.execCommand(\"del\", {source: \"ace\"});\n            else // some versions of android do not fire keydown when pressing backspace\n                host.execCommand(\"backspace\", {source: \"ace\"});\n        } else {\n            if (data.substring(0, 2) == PLACEHOLDER)\n                data = data.substr(2);\n            else if (data.charAt(0) == PLACEHOLDER.charAt(0))\n                data = data.substr(1);\n            else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n                data = data.slice(0, -1);\n            if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n                data = data.slice(0, -1);\n            \n            if (data)\n                host.onTextInput(data);\n        }\n        if (afterContextMenu)\n            afterContextMenu = false;\n    };\n    var onInput = function(e) {\n        if (inComposition)\n            return;\n        var data = text.value;\n        sendText(data);\n        resetValue();\n    };\n    \n    var handleClipboardData = function(e, data, forceIEMime) {\n        var clipboardData = e.clipboardData || window.clipboardData;\n        if (!clipboardData || BROKEN_SETDATA)\n            return;\n        var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n        try {\n            if (data) {\n                return clipboardData.setData(mime, data) !== false;\n            } else {\n                return clipboardData.getData(mime);\n            }\n        } catch(e) {\n            if (!forceIEMime)\n                return handleClipboardData(e, data, true);\n        }\n    };\n\n    var doCopy = function(e, isCut) {\n        var data = host.getCopyText();\n        if (!data)\n            return event.preventDefault(e);\n\n        if (handleClipboardData(e, data)) {\n            isCut ? host.onCut() : host.onCopy();\n            event.preventDefault(e);\n        } else {\n            copied = true;\n            text.value = data;\n            text.select();\n            setTimeout(function(){\n                copied = false;\n                resetValue();\n                resetSelection();\n                isCut ? host.onCut() : host.onCopy();\n            });\n        }\n    };\n    \n    var onCut = function(e) {\n        doCopy(e, true);\n    };\n    \n    var onCopy = function(e) {\n        doCopy(e, false);\n    };\n    \n    var onPaste = function(e) {\n        var data = handleClipboardData(e);\n        if (typeof data == \"string\") {\n            if (data)\n                host.onPaste(data, e);\n            if (useragent.isIE)\n                setTimeout(resetSelection);\n            event.preventDefault(e);\n        }\n        else {\n            text.value = \"\";\n            pasted = true;\n        }\n    };\n\n    event.addCommandKeyListener(text, host.onCommandKey.bind(host));\n\n    event.addListener(text, \"select\", onSelect);\n\n    event.addListener(text, \"input\", onInput);\n\n    event.addListener(text, \"cut\", onCut);\n    event.addListener(text, \"copy\", onCopy);\n    event.addListener(text, \"paste\", onPaste);\n    if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)){\n        event.addListener(parentNode, \"keydown\", function(e) {\n            if ((useragent.isMac && !e.metaKey) || !e.ctrlKey)\n                return;\n\n            switch (e.keyCode) {\n                case 67:\n                    onCopy(e);\n                    break;\n                case 86:\n                    onPaste(e);\n                    break;\n                case 88:\n                    onCut(e);\n                    break;\n            }\n        });\n    }\n    var onCompositionStart = function(e) {\n        if (inComposition || !host.onCompositionStart || host.$readOnly) \n            return;\n        inComposition = {};\n        inComposition.canUndo = host.session.$undoManager;\n        host.onCompositionStart();\n        setTimeout(onCompositionUpdate, 0);\n        host.on(\"mousedown\", onCompositionEnd);\n        if (inComposition.canUndo && !host.selection.isEmpty()) {\n            host.insert(\"\");\n            host.session.markUndoGroup();\n            host.selection.clearSelection();\n        }\n        host.session.markUndoGroup();\n    };\n\n    var onCompositionUpdate = function() {\n        if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n            return;\n        var val = text.value.replace(/\\x01/g, \"\");\n        if (inComposition.lastValue === val) return;\n        \n        host.onCompositionUpdate(val);\n        if (inComposition.lastValue)\n            host.undo();\n        if (inComposition.canUndo)\n            inComposition.lastValue = val;\n        if (inComposition.lastValue) {\n            var r = host.selection.getRange();\n            host.insert(inComposition.lastValue);\n            host.session.markUndoGroup();\n            inComposition.range = host.selection.getRange();\n            host.selection.setRange(r);\n            host.selection.clearSelection();\n        }\n    };\n\n    var onCompositionEnd = function(e) {\n        if (!host.onCompositionEnd || host.$readOnly) return;\n        var c = inComposition;\n        inComposition = false;\n        var timer = setTimeout(function() {\n            timer = null;\n            var str = text.value.replace(/\\x01/g, \"\");\n            if (inComposition)\n                return;\n            else if (str == c.lastValue)\n                resetValue();\n            else if (!c.lastValue && str) {\n                resetValue();\n                sendText(str);\n            }\n        });\n        inputHandler = function compositionInputHandler(str) {\n            if (timer)\n                clearTimeout(timer);\n            str = str.replace(/\\x01/g, \"\");\n            if (str == c.lastValue)\n                return \"\";\n            if (c.lastValue && timer)\n                host.undo();\n            return str;\n        };\n        host.onCompositionEnd();\n        host.removeListener(\"mousedown\", onCompositionEnd);\n        if (e.type == \"compositionend\" && c.range) {\n            host.selection.setRange(c.range);\n        }\n        if (useragent.isChrome && useragent.isChrome >= 53) {\n          onInput();\n        }\n    };\n    \n    \n\n    var syncComposition = lang.delayedCall(onCompositionUpdate, 50);\n\n    event.addListener(text, \"compositionstart\", onCompositionStart);\n    if (useragent.isGecko) {\n        event.addListener(text, \"text\", function(){syncComposition.schedule()});\n    } else {\n        event.addListener(text, \"keyup\", function(){syncComposition.schedule()});\n        event.addListener(text, \"keydown\", function(){syncComposition.schedule()});\n    }\n    event.addListener(text, \"compositionend\", onCompositionEnd);\n\n    this.getElement = function() {\n        return text;\n    };\n\n    this.setReadOnly = function(readOnly) {\n       text.readOnly = readOnly;\n    };\n\n    this.onContextMenu = function(e) {\n        afterContextMenu = true;\n        resetSelection(host.selection.isEmpty());\n        host._emit(\"nativecontextmenu\", {target: host, domEvent: e});\n        this.moveToMouse(e, true);\n    };\n    \n    this.moveToMouse = function(e, bringToFront) {\n        if (!bringToFront && useragent.isOldIE)\n            return;\n        if (!tempStyle)\n            tempStyle = text.style.cssText;\n        text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n            + \"height:\" + text.style.height + \";\"\n            + (useragent.isIE ? \"opacity:0.1;\" : \"\");\n\n        var rect = host.container.getBoundingClientRect();\n        var style = dom.computedStyle(host.container);\n        var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n        var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n        var maxTop = rect.bottom - top - text.clientHeight -2;\n        var move = function(e) {\n            text.style.left = e.clientX - left - 2 + \"px\";\n            text.style.top = Math.min(e.clientY - top - 2, maxTop) + \"px\";\n        }; \n        move(e);\n\n        if (e.type != \"mousedown\")\n            return;\n\n        if (host.renderer.$keepTextAreaAtCursor)\n            host.renderer.$keepTextAreaAtCursor = null;\n\n        clearTimeout(closeTimeout);\n        if (useragent.isWin && !useragent.isOldIE)\n            event.capture(host.container, move, onContextMenuClose);\n    };\n\n    this.onContextMenuClose = onContextMenuClose;\n    var closeTimeout;\n    function onContextMenuClose() {\n        clearTimeout(closeTimeout);\n        closeTimeout = setTimeout(function () {\n            if (tempStyle) {\n                text.style.cssText = tempStyle;\n                tempStyle = '';\n            }\n            if (host.renderer.$keepTextAreaAtCursor == null) {\n                host.renderer.$keepTextAreaAtCursor = true;\n                host.renderer.$moveTextAreaToCursor();\n            }\n        }, useragent.isOldIE ? 200 : 0);\n    }\n\n    var onContextMenu = function(e) {\n        host.textInput.onContextMenu(e);\n        onContextMenuClose();\n    };\n    event.addListener(text, \"mouseup\", onContextMenu);\n    event.addListener(text, \"mousedown\", function(e) {\n        e.preventDefault();\n        onContextMenuClose();\n    });\n    event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu);\n    event.addListener(text, \"contextmenu\", onContextMenu);\n};\n\nexports.TextInput = TextInput;\n});\n\nace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module) {\n\"use strict\";\n\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\n\nvar DRAG_OFFSET = 0; // pixels\n\nfunction DefaultHandlers(mouseHandler) {\n    mouseHandler.$clickSelection = null;\n\n    var editor = mouseHandler.editor;\n    editor.setDefaultHandler(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n    editor.setDefaultHandler(\"dblclick\", this.onDoubleClick.bind(mouseHandler));\n    editor.setDefaultHandler(\"tripleclick\", this.onTripleClick.bind(mouseHandler));\n    editor.setDefaultHandler(\"quadclick\", this.onQuadClick.bind(mouseHandler));\n    editor.setDefaultHandler(\"mousewheel\", this.onMouseWheel.bind(mouseHandler));\n    editor.setDefaultHandler(\"touchmove\", this.onTouchMove.bind(mouseHandler));\n\n    var exports = [\"select\", \"startSelect\", \"selectEnd\", \"selectAllEnd\", \"selectByWordsEnd\",\n        \"selectByLinesEnd\", \"dragWait\", \"dragWaitEnd\", \"focusWait\"];\n\n    exports.forEach(function(x) {\n        mouseHandler[x] = this[x];\n    }, this);\n\n    mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, \"getLineRange\");\n    mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, \"getWordRange\");\n}\n\n(function() {\n\n    this.onMouseDown = function(ev) {\n        var inSelection = ev.inSelection();\n        var pos = ev.getDocumentPosition();\n        this.mousedownEvent = ev;\n        var editor = this.editor;\n\n        var button = ev.getButton();\n        if (button !== 0) {\n            var selectionRange = editor.getSelectionRange();\n            var selectionEmpty = selectionRange.isEmpty();\n            editor.$blockScrolling++;\n            if (selectionEmpty || button == 1)\n                editor.selection.moveToPosition(pos);\n            editor.$blockScrolling--;\n            if (button == 2)\n                editor.textInput.onContextMenu(ev.domEvent);\n            return; // stopping event here breaks contextmenu on ff mac\n        }\n\n        this.mousedownEvent.time = Date.now();\n        if (inSelection && !editor.isFocused()) {\n            editor.focus();\n            if (this.$focusTimout && !this.$clickSelection && !editor.inMultiSelectMode) {\n                this.setState(\"focusWait\");\n                this.captureMouse(ev);\n                return;\n            }\n        }\n\n        this.captureMouse(ev);\n        this.startSelect(pos, ev.domEvent._clicks > 1);\n        return ev.preventDefault();\n    };\n\n    this.startSelect = function(pos, waitForClickSelection) {\n        pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n        var editor = this.editor;\n        editor.$blockScrolling++;\n        if (this.mousedownEvent.getShiftKey())\n            editor.selection.selectToPosition(pos);\n        else if (!waitForClickSelection)\n            editor.selection.moveToPosition(pos);\n        if (!waitForClickSelection)\n            this.select();\n        if (editor.renderer.scroller.setCapture) {\n            editor.renderer.scroller.setCapture();\n        }\n        editor.setStyle(\"ace_selecting\");\n        this.setState(\"select\");\n        editor.$blockScrolling--;\n    };\n\n    this.select = function() {\n        var anchor, editor = this.editor;\n        var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n        editor.$blockScrolling++;\n        if (this.$clickSelection) {\n            var cmp = this.$clickSelection.comparePoint(cursor);\n\n            if (cmp == -1) {\n                anchor = this.$clickSelection.end;\n            } else if (cmp == 1) {\n                anchor = this.$clickSelection.start;\n            } else {\n                var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n                cursor = orientedRange.cursor;\n                anchor = orientedRange.anchor;\n            }\n            editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n        }\n        editor.selection.selectToPosition(cursor);\n        editor.$blockScrolling--;\n        editor.renderer.scrollCursorIntoView();\n    };\n\n    this.extendSelectionBy = function(unitName) {\n        var anchor, editor = this.editor;\n        var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n        var range = editor.selection[unitName](cursor.row, cursor.column);\n        editor.$blockScrolling++;\n        if (this.$clickSelection) {\n            var cmpStart = this.$clickSelection.comparePoint(range.start);\n            var cmpEnd = this.$clickSelection.comparePoint(range.end);\n\n            if (cmpStart == -1 && cmpEnd <= 0) {\n                anchor = this.$clickSelection.end;\n                if (range.end.row != cursor.row || range.end.column != cursor.column)\n                    cursor = range.start;\n            } else if (cmpEnd == 1 && cmpStart >= 0) {\n                anchor = this.$clickSelection.start;\n                if (range.start.row != cursor.row || range.start.column != cursor.column)\n                    cursor = range.end;\n            } else if (cmpStart == -1 && cmpEnd == 1) {\n                cursor = range.end;\n                anchor = range.start;\n            } else {\n                var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n                cursor = orientedRange.cursor;\n                anchor = orientedRange.anchor;\n            }\n            editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n        }\n        editor.selection.selectToPosition(cursor);\n        editor.$blockScrolling--;\n        editor.renderer.scrollCursorIntoView();\n    };\n\n    this.selectEnd =\n    this.selectAllEnd =\n    this.selectByWordsEnd =\n    this.selectByLinesEnd = function() {\n        this.$clickSelection = null;\n        this.editor.unsetStyle(\"ace_selecting\");\n        if (this.editor.renderer.scroller.releaseCapture) {\n            this.editor.renderer.scroller.releaseCapture();\n        }\n    };\n\n    this.focusWait = function() {\n        var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n        var time = Date.now();\n\n        if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimout)\n            this.startSelect(this.mousedownEvent.getDocumentPosition());\n    };\n\n    this.onDoubleClick = function(ev) {\n        var pos = ev.getDocumentPosition();\n        var editor = this.editor;\n        var session = editor.session;\n\n        var range = session.getBracketRange(pos);\n        if (range) {\n            if (range.isEmpty()) {\n                range.start.column--;\n                range.end.column++;\n            }\n            this.setState(\"select\");\n        } else {\n            range = editor.selection.getWordRange(pos.row, pos.column);\n            this.setState(\"selectByWords\");\n        }\n        this.$clickSelection = range;\n        this.select();\n    };\n\n    this.onTripleClick = function(ev) {\n        var pos = ev.getDocumentPosition();\n        var editor = this.editor;\n\n        this.setState(\"selectByLines\");\n        var range = editor.getSelectionRange();\n        if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n            this.$clickSelection = editor.selection.getLineRange(range.start.row);\n            this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n        } else {\n            this.$clickSelection = editor.selection.getLineRange(pos.row);\n        }\n        this.select();\n    };\n\n    this.onQuadClick = function(ev) {\n        var editor = this.editor;\n\n        editor.selectAll();\n        this.$clickSelection = editor.getSelectionRange();\n        this.setState(\"selectAll\");\n    };\n\n    this.onMouseWheel = function(ev) {\n        if (ev.getAccelKey())\n            return;\n        if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n            ev.wheelX = ev.wheelY;\n            ev.wheelY = 0;\n        }\n\n        var t = ev.domEvent.timeStamp;\n        var dt = t - (this.$lastScrollTime||0);\n        \n        var editor = this.editor;\n        var isScrolable = editor.renderer.isScrollableBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n        if (isScrolable || dt < 200) {\n            this.$lastScrollTime = t;\n            editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n            return ev.stop();\n        }\n    };\n    \n    this.onTouchMove = function (ev) {\n        var t = ev.domEvent.timeStamp;\n        var dt = t - (this.$lastScrollTime || 0);\n\n        var editor = this.editor;\n        var isScrolable = editor.renderer.isScrollableBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n        if (isScrolable || dt < 200) {\n            this.$lastScrollTime = t;\n            editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n            return ev.stop();\n        }\n    };\n\n}).call(DefaultHandlers.prototype);\n\nexports.DefaultHandlers = DefaultHandlers;\n\nfunction calcDistance(ax, ay, bx, by) {\n    return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\n\nfunction calcRangeOrientation(range, cursor) {\n    if (range.start.row == range.end.row)\n        var cmp = 2 * cursor.column - range.start.column - range.end.column;\n    else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n        var cmp = cursor.column - 4;\n    else\n        var cmp = 2 * cursor.row - range.start.row - range.end.row;\n\n    if (cmp < 0)\n        return {cursor: range.start, anchor: range.end};\n    else\n        return {cursor: range.end, anchor: range.start};\n}\n\n});\n\nace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nfunction Tooltip (parentNode) {\n    this.isOpen = false;\n    this.$element = null;\n    this.$parentNode = parentNode;\n}\n\n(function() {\n    this.$init = function() {\n        this.$element = dom.createElement(\"div\");\n        this.$element.className = \"ace_tooltip\";\n        this.$element.style.display = \"none\";\n        this.$parentNode.appendChild(this.$element);\n        return this.$element;\n    };\n    this.getElement = function() {\n        return this.$element || this.$init();\n    };\n    this.setText = function(text) {\n        dom.setInnerText(this.getElement(), text);\n    };\n    this.setHtml = function(html) {\n        this.getElement().innerHTML = html;\n    };\n    this.setPosition = function(x, y) {\n        this.getElement().style.left = x + \"px\";\n        this.getElement().style.top = y + \"px\";\n    };\n    this.setClassName = function(className) {\n        dom.addCssClass(this.getElement(), className);\n    };\n    this.show = function(text, x, y) {\n        if (text != null)\n            this.setText(text);\n        if (x != null && y != null)\n            this.setPosition(x, y);\n        if (!this.isOpen) {\n            this.getElement().style.display = \"block\";\n            this.isOpen = true;\n        }\n    };\n\n    this.hide = function() {\n        if (this.isOpen) {\n            this.getElement().style.display = \"none\";\n            this.isOpen = false;\n        }\n    };\n    this.getHeight = function() {\n        return this.getElement().offsetHeight;\n    };\n    this.getWidth = function() {\n        return this.getElement().offsetWidth;\n    };\n\n}).call(Tooltip.prototype);\n\nexports.Tooltip = Tooltip;\n});\n\nace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event\",\"ace/tooltip\"], function(require, exports, module) {\n\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar event = require(\"../lib/event\");\nvar Tooltip = require(\"../tooltip\").Tooltip;\n\nfunction GutterHandler(mouseHandler) {\n    var editor = mouseHandler.editor;\n    var gutter = editor.renderer.$gutterLayer;\n    var tooltip = new GutterTooltip(editor.container);\n\n    mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function(e) {\n        if (!editor.isFocused() || e.getButton() != 0)\n            return;\n        var gutterRegion = gutter.getRegion(e);\n\n        if (gutterRegion == \"foldWidgets\")\n            return;\n\n        var row = e.getDocumentPosition().row;\n        var selection = editor.session.selection;\n\n        if (e.getShiftKey())\n            selection.selectTo(row, 0);\n        else {\n            if (e.domEvent.detail == 2) {\n                editor.selectAll();\n                return e.preventDefault();\n            }\n            mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n        }\n        mouseHandler.setState(\"selectByLines\");\n        mouseHandler.captureMouse(e);\n        return e.preventDefault();\n    });\n\n\n    var tooltipTimeout, mouseEvent, tooltipAnnotation;\n\n    function showTooltip() {\n        var row = mouseEvent.getDocumentPosition().row;\n        var annotation = gutter.$annotations[row];\n        if (!annotation)\n            return hideTooltip();\n\n        var maxRow = editor.session.getLength();\n        if (row == maxRow) {\n            var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n            var pos = mouseEvent.$pos;\n            if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n                return hideTooltip();\n        }\n\n        if (tooltipAnnotation == annotation)\n            return;\n        tooltipAnnotation = annotation.text.join(\"<br/>\");\n\n        tooltip.setHtml(tooltipAnnotation);\n        tooltip.show();\n        editor._signal(\"showGutterTooltip\", tooltip);\n        editor.on(\"mousewheel\", hideTooltip);\n\n        if (mouseHandler.$tooltipFollowsMouse) {\n            moveTooltip(mouseEvent);\n        } else {\n            var gutterElement = mouseEvent.domEvent.target;\n            var rect = gutterElement.getBoundingClientRect();\n            var style = tooltip.getElement().style;\n            style.left = rect.right + \"px\";\n            style.top = rect.bottom + \"px\";\n        }\n    }\n\n    function hideTooltip() {\n        if (tooltipTimeout)\n            tooltipTimeout = clearTimeout(tooltipTimeout);\n        if (tooltipAnnotation) {\n            tooltip.hide();\n            tooltipAnnotation = null;\n            editor._signal(\"hideGutterTooltip\", tooltip);\n            editor.removeEventListener(\"mousewheel\", hideTooltip);\n        }\n    }\n\n    function moveTooltip(e) {\n        tooltip.setPosition(e.x, e.y);\n    }\n\n    mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function(e) {\n        var target = e.domEvent.target || e.domEvent.srcElement;\n        if (dom.hasCssClass(target, \"ace_fold-widget\"))\n            return hideTooltip();\n\n        if (tooltipAnnotation && mouseHandler.$tooltipFollowsMouse)\n            moveTooltip(e);\n\n        mouseEvent = e;\n        if (tooltipTimeout)\n            return;\n        tooltipTimeout = setTimeout(function() {\n            tooltipTimeout = null;\n            if (mouseEvent && !mouseHandler.isMousePressed)\n                showTooltip();\n            else\n                hideTooltip();\n        }, 50);\n    });\n\n    event.addListener(editor.renderer.$gutter, \"mouseout\", function(e) {\n        mouseEvent = null;\n        if (!tooltipAnnotation || tooltipTimeout)\n            return;\n\n        tooltipTimeout = setTimeout(function() {\n            tooltipTimeout = null;\n            hideTooltip();\n        }, 50);\n    });\n    \n    editor.on(\"changeSession\", hideTooltip);\n}\n\nfunction GutterTooltip(parentNode) {\n    Tooltip.call(this, parentNode);\n}\n\noop.inherits(GutterTooltip, Tooltip);\n\n(function(){\n    this.setPosition = function(x, y) {\n        var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n        var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n        var width = this.getWidth();\n        var height = this.getHeight();\n        x += 15;\n        y += 15;\n        if (x + width > windowWidth) {\n            x -= (x + width) - windowWidth;\n        }\n        if (y + height > windowHeight) {\n            y -= 20 + height;\n        }\n        Tooltip.prototype.setPosition.call(this, x, y);\n    };\n\n}).call(GutterTooltip.prototype);\n\n\n\nexports.GutterHandler = GutterHandler;\n\n});\n\nace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module) {\n\"use strict\";\n\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar MouseEvent = exports.MouseEvent = function(domEvent, editor) {\n    this.domEvent = domEvent;\n    this.editor = editor;\n    \n    this.x = this.clientX = domEvent.clientX;\n    this.y = this.clientY = domEvent.clientY;\n\n    this.$pos = null;\n    this.$inSelection = null;\n    \n    this.propagationStopped = false;\n    this.defaultPrevented = false;\n};\n\n(function() {  \n    \n    this.stopPropagation = function() {\n        event.stopPropagation(this.domEvent);\n        this.propagationStopped = true;\n    };\n    \n    this.preventDefault = function() {\n        event.preventDefault(this.domEvent);\n        this.defaultPrevented = true;\n    };\n    \n    this.stop = function() {\n        this.stopPropagation();\n        this.preventDefault();\n    };\n    this.getDocumentPosition = function() {\n        if (this.$pos)\n            return this.$pos;\n        \n        this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n        return this.$pos;\n    };\n    this.inSelection = function() {\n        if (this.$inSelection !== null)\n            return this.$inSelection;\n            \n        var editor = this.editor;\n        \n\n        var selectionRange = editor.getSelectionRange();\n        if (selectionRange.isEmpty())\n            this.$inSelection = false;\n        else {\n            var pos = this.getDocumentPosition();\n            this.$inSelection = selectionRange.contains(pos.row, pos.column);\n        }\n\n        return this.$inSelection;\n    };\n    this.getButton = function() {\n        return event.getButton(this.domEvent);\n    };\n    this.getShiftKey = function() {\n        return this.domEvent.shiftKey;\n    };\n    \n    this.getAccelKey = useragent.isMac\n        ? function() { return this.domEvent.metaKey; }\n        : function() { return this.domEvent.ctrlKey; };\n    \n}).call(MouseEvent.prototype);\n\n});\n\nace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module) {\n\"use strict\";\n\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\n\nvar AUTOSCROLL_DELAY = 200;\nvar SCROLL_CURSOR_DELAY = 200;\nvar SCROLL_CURSOR_HYSTERESIS = 5;\n\nfunction DragdropHandler(mouseHandler) {\n\n    var editor = mouseHandler.editor;\n\n    var blankImage = dom.createElement(\"img\");\n    blankImage.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n    if (useragent.isOpera)\n        blankImage.style.cssText = \"width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;\";\n\n    var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n\n     exports.forEach(function(x) {\n         mouseHandler[x] = this[x];\n    }, this);\n    editor.addEventListener(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n\n\n    var mouseTarget = editor.container;\n    var dragSelectionMarker, x, y;\n    var timerId, range;\n    var dragCursor, counter = 0;\n    var dragOperation;\n    var isInternal;\n    var autoScrollStartTime;\n    var cursorMovedTime;\n    var cursorPointOnCaretMoved;\n\n    this.onDragStart = function(e) {\n        if (this.cancelDrag || !mouseTarget.draggable) {\n            var self = this;\n            setTimeout(function(){\n                self.startSelect();\n                self.captureMouse(e);\n            }, 0);\n            return e.preventDefault();\n        }\n        range = editor.getSelectionRange();\n\n        var dataTransfer = e.dataTransfer;\n        dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n        if (useragent.isOpera) {\n            editor.container.appendChild(blankImage);\n            blankImage.scrollTop = 0;\n        }\n        dataTransfer.setDragImage && dataTransfer.setDragImage(blankImage, 0, 0);\n        if (useragent.isOpera) {\n            editor.container.removeChild(blankImage);\n        }\n        dataTransfer.clearData();\n        dataTransfer.setData(\"Text\", editor.session.getTextRange());\n\n        isInternal = true;\n        this.setState(\"drag\");\n    };\n\n    this.onDragEnd = function(e) {\n        mouseTarget.draggable = false;\n        isInternal = false;\n        this.setState(null);\n        if (!editor.getReadOnly()) {\n            var dropEffect = e.dataTransfer.dropEffect;\n            if (!dragOperation && dropEffect == \"move\")\n                editor.session.remove(editor.getSelectionRange());\n            editor.renderer.$cursorLayer.setBlinking(true);\n        }\n        this.editor.unsetStyle(\"ace_dragging\");\n        this.editor.renderer.setCursorStyle(\"\");\n    };\n\n    this.onDragEnter = function(e) {\n        if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n            return;\n        x = e.clientX;\n        y = e.clientY;\n        if (!dragSelectionMarker)\n            addDragMarker();\n        counter++;\n        e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n        return event.preventDefault(e);\n    };\n\n    this.onDragOver = function(e) {\n        if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n            return;\n        x = e.clientX;\n        y = e.clientY;\n        if (!dragSelectionMarker) {\n            addDragMarker();\n            counter++;\n        }\n        if (onMouseMoveTimer !== null)\n            onMouseMoveTimer = null;\n\n        e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n        return event.preventDefault(e);\n    };\n\n    this.onDragLeave = function(e) {\n        counter--;\n        if (counter <= 0 && dragSelectionMarker) {\n            clearDragMarker();\n            dragOperation = null;\n            return event.preventDefault(e);\n        }\n    };\n\n    this.onDrop = function(e) {\n        if (!dragCursor)\n            return;\n        var dataTransfer = e.dataTransfer;\n        if (isInternal) {\n            switch (dragOperation) {\n                case \"move\":\n                    if (range.contains(dragCursor.row, dragCursor.column)) {\n                        range = {\n                            start: dragCursor,\n                            end: dragCursor\n                        };\n                    } else {\n                        range = editor.moveText(range, dragCursor);\n                    }\n                    break;\n                case \"copy\":\n                    range = editor.moveText(range, dragCursor, true);\n                    break;\n            }\n        } else {\n            var dropData = dataTransfer.getData('Text');\n            range = {\n                start: dragCursor,\n                end: editor.session.insert(dragCursor, dropData)\n            };\n            editor.focus();\n            dragOperation = null;\n        }\n        clearDragMarker();\n        return event.preventDefault(e);\n    };\n\n    event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler));\n    event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler));\n    event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler));\n    event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler));\n    event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler));\n    event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler));\n\n    function scrollCursorIntoView(cursor, prevCursor) {\n        var now = Date.now();\n        var vMovement = !prevCursor || cursor.row != prevCursor.row;\n        var hMovement = !prevCursor || cursor.column != prevCursor.column;\n        if (!cursorMovedTime || vMovement || hMovement) {\n            editor.$blockScrolling += 1;\n            editor.moveCursorToPosition(cursor);\n            editor.$blockScrolling -= 1;\n            cursorMovedTime = now;\n            cursorPointOnCaretMoved = {x: x, y: y};\n        } else {\n            var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n            if (distance > SCROLL_CURSOR_HYSTERESIS) {\n                cursorMovedTime = null;\n            } else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n                editor.renderer.scrollCursorIntoView();\n                cursorMovedTime = null;\n            }\n        }\n    }\n\n    function autoScroll(cursor, prevCursor) {\n        var now = Date.now();\n        var lineHeight = editor.renderer.layerConfig.lineHeight;\n        var characterWidth = editor.renderer.layerConfig.characterWidth;\n        var editorRect = editor.renderer.scroller.getBoundingClientRect();\n        var offsets = {\n           x: {\n               left: x - editorRect.left,\n               right: editorRect.right - x\n           },\n           y: {\n               top: y - editorRect.top,\n               bottom: editorRect.bottom - y\n           }\n        };\n        var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n        var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n        var scrollCursor = {row: cursor.row, column: cursor.column};\n        if (nearestXOffset / characterWidth <= 2) {\n            scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n        }\n        if (nearestYOffset / lineHeight <= 1) {\n            scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n        }\n        var vScroll = cursor.row != scrollCursor.row;\n        var hScroll = cursor.column != scrollCursor.column;\n        var vMovement = !prevCursor || cursor.row != prevCursor.row;\n        if (vScroll || (hScroll && !vMovement)) {\n            if (!autoScrollStartTime)\n                autoScrollStartTime = now;\n            else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n                editor.renderer.scrollCursorIntoView(scrollCursor);\n        } else {\n            autoScrollStartTime = null;\n        }\n    }\n\n    function onDragInterval() {\n        var prevCursor = dragCursor;\n        dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n        scrollCursorIntoView(dragCursor, prevCursor);\n        autoScroll(dragCursor, prevCursor);\n    }\n\n    function addDragMarker() {\n        range = editor.selection.toOrientedRange();\n        dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n        editor.clearSelection();\n        if (editor.isFocused())\n            editor.renderer.$cursorLayer.setBlinking(false);\n        clearInterval(timerId);\n        onDragInterval();\n        timerId = setInterval(onDragInterval, 20);\n        counter = 0;\n        event.addListener(document, \"mousemove\", onMouseMove);\n    }\n\n    function clearDragMarker() {\n        clearInterval(timerId);\n        editor.session.removeMarker(dragSelectionMarker);\n        dragSelectionMarker = null;\n        editor.$blockScrolling += 1;\n        editor.selection.fromOrientedRange(range);\n        editor.$blockScrolling -= 1;\n        if (editor.isFocused() && !isInternal)\n            editor.renderer.$cursorLayer.setBlinking(!editor.getReadOnly());\n        range = null;\n        dragCursor = null;\n        counter = 0;\n        autoScrollStartTime = null;\n        cursorMovedTime = null;\n        event.removeListener(document, \"mousemove\", onMouseMove);\n    }\n    var onMouseMoveTimer = null;\n    function onMouseMove() {\n        if (onMouseMoveTimer == null) {\n            onMouseMoveTimer = setTimeout(function() {\n                if (onMouseMoveTimer != null && dragSelectionMarker)\n                    clearDragMarker();\n            }, 20);\n        }\n    }\n\n    function canAccept(dataTransfer) {\n        var types = dataTransfer.types;\n        return !types || Array.prototype.some.call(types, function(type) {\n            return type == 'text/plain' || type == 'Text';\n        });\n    }\n\n    function getDropEffect(e) {\n        var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n        var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n\n        var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n        var effectAllowed = \"uninitialized\";\n        try {\n            effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n        } catch (e) {}\n        var dropEffect = \"none\";\n\n        if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n            dropEffect = \"copy\";\n        else if (moveAllowed.indexOf(effectAllowed) >= 0)\n            dropEffect = \"move\";\n        else if (copyAllowed.indexOf(effectAllowed) >= 0)\n            dropEffect = \"copy\";\n\n        return dropEffect;\n    }\n}\n\n(function() {\n\n    this.dragWait = function() {\n        var interval = Date.now() - this.mousedownEvent.time;\n        if (interval > this.editor.getDragDelay())\n            this.startDrag();\n    };\n\n    this.dragWaitEnd = function() {\n        var target = this.editor.container;\n        target.draggable = false;\n        this.startSelect(this.mousedownEvent.getDocumentPosition());\n        this.selectEnd();\n    };\n\n    this.dragReadyEnd = function(e) {\n        this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly());\n        this.editor.unsetStyle(\"ace_dragging\");\n        this.editor.renderer.setCursorStyle(\"\");\n        this.dragWaitEnd();\n    };\n\n    this.startDrag = function(){\n        this.cancelDrag = false;\n        var editor = this.editor;\n        var target = editor.container;\n        target.draggable = true;\n        editor.renderer.$cursorLayer.setBlinking(false);\n        editor.setStyle(\"ace_dragging\");\n        var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n        editor.renderer.setCursorStyle(cursorStyle);\n        this.setState(\"dragReady\");\n    };\n\n    this.onMouseDrag = function(e) {\n        var target = this.editor.container;\n        if (useragent.isIE && this.state == \"dragReady\") {\n            var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n            if (distance > 3)\n                target.dragDrop();\n        }\n        if (this.state === \"dragWait\") {\n            var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n            if (distance > 0) {\n                target.draggable = false;\n                this.startSelect(this.mousedownEvent.getDocumentPosition());\n            }\n        }\n    };\n\n    this.onMouseDown = function(e) {\n        if (!this.$dragEnabled)\n            return;\n        this.mousedownEvent = e;\n        var editor = this.editor;\n\n        var inSelection = e.inSelection();\n        var button = e.getButton();\n        var clickCount = e.domEvent.detail || 1;\n        if (clickCount === 1 && button === 0 && inSelection) {\n            if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n                return;\n            this.mousedownEvent.time = Date.now();\n            var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n            if (\"unselectable\" in eventTarget)\n                eventTarget.unselectable = \"on\";\n            if (editor.getDragDelay()) {\n                if (useragent.isWebKit) {\n                    this.cancelDrag = true;\n                    var mouseTarget = editor.container;\n                    mouseTarget.draggable = true;\n                }\n                this.setState(\"dragWait\");\n            } else {\n                this.startDrag();\n            }\n            this.captureMouse(e, this.onMouseDrag.bind(this));\n            e.defaultPrevented = true;\n        }\n    };\n\n}).call(DragdropHandler.prototype);\n\n\nfunction calcDistance(ax, ay, bx, by) {\n    return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\n\nexports.DragdropHandler = DragdropHandler;\n\n});\n\nace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\"use strict\";\nvar dom = require(\"./dom\");\n\nexports.get = function (url, callback) {\n    var xhr = new XMLHttpRequest();\n    xhr.open('GET', url, true);\n    xhr.onreadystatechange = function () {\n        if (xhr.readyState === 4) {\n            callback(xhr.responseText);\n        }\n    };\n    xhr.send(null);\n};\n\nexports.loadScript = function(path, callback) {\n    var head = dom.getDocumentHead();\n    var s = document.createElement('script');\n\n    s.src = path;\n    head.appendChild(s);\n\n    s.onload = s.onreadystatechange = function(_, isAbort) {\n        if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n            s = s.onload = s.onreadystatechange = null;\n            if (!isAbort)\n                callback();\n        }\n    };\n};\nexports.qualifyURL = function(url) {\n    var a = document.createElement('a');\n    a.href = url;\n    return a.href;\n}\n\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar EventEmitter = {};\nvar stopPropagation = function() { this.propagationStopped = true; };\nvar preventDefault = function() { this.defaultPrevented = true; };\n\nEventEmitter._emit =\nEventEmitter._dispatchEvent = function(eventName, e) {\n    this._eventRegistry || (this._eventRegistry = {});\n    this._defaultHandlers || (this._defaultHandlers = {});\n\n    var listeners = this._eventRegistry[eventName] || [];\n    var defaultHandler = this._defaultHandlers[eventName];\n    if (!listeners.length && !defaultHandler)\n        return;\n\n    if (typeof e != \"object\" || !e)\n        e = {};\n\n    if (!e.type)\n        e.type = eventName;\n    if (!e.stopPropagation)\n        e.stopPropagation = stopPropagation;\n    if (!e.preventDefault)\n        e.preventDefault = preventDefault;\n\n    listeners = listeners.slice();\n    for (var i=0; i<listeners.length; i++) {\n        listeners[i](e, this);\n        if (e.propagationStopped)\n            break;\n    }\n    \n    if (defaultHandler && !e.defaultPrevented)\n        return defaultHandler(e, this);\n};\n\n\nEventEmitter._signal = function(eventName, e) {\n    var listeners = (this._eventRegistry || {})[eventName];\n    if (!listeners)\n        return;\n    listeners = listeners.slice();\n    for (var i=0; i<listeners.length; i++)\n        listeners[i](e, this);\n};\n\nEventEmitter.once = function(eventName, callback) {\n    var _self = this;\n    callback && this.addEventListener(eventName, function newCallback() {\n        _self.removeEventListener(eventName, newCallback);\n        callback.apply(null, arguments);\n    });\n};\n\n\nEventEmitter.setDefaultHandler = function(eventName, callback) {\n    var handlers = this._defaultHandlers\n    if (!handlers)\n        handlers = this._defaultHandlers = {_disabled_: {}};\n    \n    if (handlers[eventName]) {\n        var old = handlers[eventName];\n        var disabled = handlers._disabled_[eventName];\n        if (!disabled)\n            handlers._disabled_[eventName] = disabled = [];\n        disabled.push(old);\n        var i = disabled.indexOf(callback);\n        if (i != -1) \n            disabled.splice(i, 1);\n    }\n    handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function(eventName, callback) {\n    var handlers = this._defaultHandlers\n    if (!handlers)\n        return;\n    var disabled = handlers._disabled_[eventName];\n    \n    if (handlers[eventName] == callback) {\n        var old = handlers[eventName];\n        if (disabled)\n            this.setDefaultHandler(eventName, disabled.pop());\n    } else if (disabled) {\n        var i = disabled.indexOf(callback);\n        if (i != -1)\n            disabled.splice(i, 1);\n    }\n};\n\nEventEmitter.on =\nEventEmitter.addEventListener = function(eventName, callback, capturing) {\n    this._eventRegistry = this._eventRegistry || {};\n\n    var listeners = this._eventRegistry[eventName];\n    if (!listeners)\n        listeners = this._eventRegistry[eventName] = [];\n\n    if (listeners.indexOf(callback) == -1)\n        listeners[capturing ? \"unshift\" : \"push\"](callback);\n    return callback;\n};\n\nEventEmitter.off =\nEventEmitter.removeListener =\nEventEmitter.removeEventListener = function(eventName, callback) {\n    this._eventRegistry = this._eventRegistry || {};\n\n    var listeners = this._eventRegistry[eventName];\n    if (!listeners)\n        return;\n\n    var index = listeners.indexOf(callback);\n    if (index !== -1)\n        listeners.splice(index, 1);\n};\n\nEventEmitter.removeAllListeners = function(eventName) {\n    if (this._eventRegistry) this._eventRegistry[eventName] = [];\n};\n\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/lib/app_config\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module) {\n\"no use strict\";\n\nvar oop = require(\"./oop\");\nvar EventEmitter = require(\"./event_emitter\").EventEmitter;\n\nvar optionsProvider = {\n    setOptions: function(optList) {\n        Object.keys(optList).forEach(function(key) {\n            this.setOption(key, optList[key]);\n        }, this);\n    },\n    getOptions: function(optionNames) {\n        var result = {};\n        if (!optionNames) {\n            optionNames = Object.keys(this.$options);\n        } else if (!Array.isArray(optionNames)) {\n            result = optionNames;\n            optionNames = Object.keys(result);\n        }\n        optionNames.forEach(function(key) {\n            result[key] = this.getOption(key);\n        }, this);\n        return result;\n    },\n    setOption: function(name, value) {\n        if (this[\"$\" + name] === value)\n            return;\n        var opt = this.$options[name];\n        if (!opt) {\n            return warn('misspelled option \"' + name + '\"');\n        }\n        if (opt.forwardTo)\n            return this[opt.forwardTo] && this[opt.forwardTo].setOption(name, value);\n\n        if (!opt.handlesSet)\n            this[\"$\" + name] = value;\n        if (opt && opt.set)\n            opt.set.call(this, value);\n    },\n    getOption: function(name) {\n        var opt = this.$options[name];\n        if (!opt) {\n            return warn('misspelled option \"' + name + '\"');\n        }\n        if (opt.forwardTo)\n            return this[opt.forwardTo] && this[opt.forwardTo].getOption(name);\n        return opt && opt.get ? opt.get.call(this) : this[\"$\" + name];\n    }\n};\n\nfunction warn(message) {\n    if (typeof console != \"undefined\" && console.warn)\n        console.warn.apply(console, arguments);\n}\n\nfunction reportError(msg, data) {\n    var e = new Error(msg);\n    e.data = data;\n    if (typeof console == \"object\" && console.error)\n        console.error(e);\n    setTimeout(function() { throw e; });\n}\n\nvar AppConfig = function() {\n    this.$defaultOptions = {};\n};\n\n(function() {\n    oop.implement(this, EventEmitter);\n    this.defineOptions = function(obj, path, options) {\n        if (!obj.$options)\n            this.$defaultOptions[path] = obj.$options = {};\n\n        Object.keys(options).forEach(function(key) {\n            var opt = options[key];\n            if (typeof opt == \"string\")\n                opt = {forwardTo: opt};\n\n            opt.name || (opt.name = key);\n            obj.$options[opt.name] = opt;\n            if (\"initialValue\" in opt)\n                obj[\"$\" + opt.name] = opt.initialValue;\n        });\n        oop.implement(obj, optionsProvider);\n\n        return this;\n    };\n\n    this.resetOptions = function(obj) {\n        Object.keys(obj.$options).forEach(function(key) {\n            var opt = obj.$options[key];\n            if (\"value\" in opt)\n                obj.setOption(key, opt.value);\n        });\n    };\n\n    this.setDefaultValue = function(path, name, value) {\n        var opts = this.$defaultOptions[path] || (this.$defaultOptions[path] = {});\n        if (opts[name]) {\n            if (opts.forwardTo)\n                this.setDefaultValue(opts.forwardTo, name, value);\n            else\n                opts[name].value = value;\n        }\n    };\n\n    this.setDefaultValues = function(path, optionHash) {\n        Object.keys(optionHash).forEach(function(key) {\n            this.setDefaultValue(path, key, optionHash[key]);\n        }, this);\n    };\n    \n    this.warn = warn;\n    this.reportError = reportError;\n    \n}).call(AppConfig.prototype);\n\nexports.AppConfig = AppConfig;\n\n});\n\nace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/app_config\"], function(require, exports, module) {\n\"no use strict\";\n\nvar lang = require(\"./lib/lang\");\nvar oop = require(\"./lib/oop\");\nvar net = require(\"./lib/net\");\nvar AppConfig = require(\"./lib/app_config\").AppConfig;\n\nmodule.exports = exports = new AppConfig();\n\nvar global = (function() {\n    return this || typeof window != \"undefined\" && window;\n})();\n\nvar options = {\n    packaged: false,\n    workerPath: null,\n    modePath: null,\n    themePath: null,\n    basePath: \"\",\n    suffix: \".js\",\n    $moduleUrls: {}\n};\n\nexports.get = function(key) {\n    if (!options.hasOwnProperty(key))\n        throw new Error(\"Unknown config key: \" + key);\n\n    return options[key];\n};\n\nexports.set = function(key, value) {\n    if (!options.hasOwnProperty(key))\n        throw new Error(\"Unknown config key: \" + key);\n\n    options[key] = value;\n};\n\nexports.all = function() {\n    return lang.copyObject(options);\n};\nexports.moduleUrl = function(name, component) {\n    if (options.$moduleUrls[name])\n        return options.$moduleUrls[name];\n\n    var parts = name.split(\"/\");\n    component = component || parts[parts.length - 2] || \"\";\n    var sep = component == \"snippets\" ? \"/\" : \"-\";\n    var base = parts[parts.length - 1];\n    if (component == \"worker\" && sep == \"-\") {\n        var re = new RegExp(\"^\" + component + \"[\\\\-_]|[\\\\-_]\" + component + \"$\", \"g\");\n        base = base.replace(re, \"\");\n    }\n\n    if ((!base || base == component) && parts.length > 1)\n        base = parts[parts.length - 2];\n    var path = options[component + \"Path\"];\n    if (path == null) {\n        path = options.basePath;\n    } else if (sep == \"/\") {\n        component = sep = \"\";\n    }\n    if (path && path.slice(-1) != \"/\")\n        path += \"/\";\n    return path + component + sep + base + this.get(\"suffix\");\n};\n\nexports.setModuleUrl = function(name, subst) {\n    return options.$moduleUrls[name] = subst;\n};\n\nexports.$loading = {};\nexports.loadModule = function(moduleName, onLoad) {\n    var module, moduleType;\n    if (Array.isArray(moduleName)) {\n        moduleType = moduleName[0];\n        moduleName = moduleName[1];\n    }\n\n    try {\n        module = require(moduleName);\n    } catch (e) {}\n    if (module && !exports.$loading[moduleName])\n        return onLoad && onLoad(module);\n\n    if (!exports.$loading[moduleName])\n        exports.$loading[moduleName] = [];\n\n    exports.$loading[moduleName].push(onLoad);\n\n    if (exports.$loading[moduleName].length > 1)\n        return;\n\n    var afterLoad = function() {\n        require([moduleName], function(module) {\n            exports._emit(\"load.module\", {name: moduleName, module: module});\n            var listeners = exports.$loading[moduleName];\n            exports.$loading[moduleName] = null;\n            listeners.forEach(function(onLoad) {\n                onLoad && onLoad(module);\n            });\n        });\n    };\n\n    if (!exports.get(\"packaged\"))\n        return afterLoad();\n    net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n};\ninit(true);function init(packaged) {\n\n    if (!global || !global.document)\n        return;\n    \n    options.packaged = packaged || require.packaged || module.packaged || (global.define && define.packaged);\n\n    var scriptOptions = {};\n    var scriptUrl = \"\";\n    var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n    var currentDocument = currentScript && currentScript.ownerDocument || document;\n    \n    var scripts = currentDocument.getElementsByTagName(\"script\");\n    for (var i=0; i<scripts.length; i++) {\n        var script = scripts[i];\n\n        var src = script.src || script.getAttribute(\"src\");\n        if (!src)\n            continue;\n\n        var attributes = script.attributes;\n        for (var j=0, l=attributes.length; j < l; j++) {\n            var attr = attributes[j];\n            if (attr.name.indexOf(\"data-ace-\") === 0) {\n                scriptOptions[deHyphenate(attr.name.replace(/^data-ace-/, \"\"))] = attr.value;\n            }\n        }\n\n        var m = src.match(/^(.*)\\/ace(\\-\\w+)?\\.js(\\?|$)/);\n        if (m)\n            scriptUrl = m[1];\n    }\n\n    if (scriptUrl) {\n        scriptOptions.base = scriptOptions.base || scriptUrl;\n        scriptOptions.packaged = true;\n    }\n\n    scriptOptions.basePath = scriptOptions.base;\n    scriptOptions.workerPath = scriptOptions.workerPath || scriptOptions.base;\n    scriptOptions.modePath = scriptOptions.modePath || scriptOptions.base;\n    scriptOptions.themePath = scriptOptions.themePath || scriptOptions.base;\n    delete scriptOptions.base;\n\n    for (var key in scriptOptions)\n        if (typeof scriptOptions[key] !== \"undefined\")\n            exports.set(key, scriptOptions[key]);\n}\n\nexports.init = init;\n\nfunction deHyphenate(str) {\n    return str.replace(/-(.)/g, function(m, m1) { return m1.toUpperCase(); });\n}\n\n});\n\nace.define(\"ace/mouse/mouse_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/mouse/default_handlers\",\"ace/mouse/default_gutter_handler\",\"ace/mouse/mouse_event\",\"ace/mouse/dragdrop_handler\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar DefaultHandlers = require(\"./default_handlers\").DefaultHandlers;\nvar DefaultGutterHandler = require(\"./default_gutter_handler\").GutterHandler;\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar DragdropHandler = require(\"./dragdrop_handler\").DragdropHandler;\nvar config = require(\"../config\");\n\nvar MouseHandler = function(editor) {\n    var _self = this;\n    this.editor = editor;\n\n    new DefaultHandlers(this);\n    new DefaultGutterHandler(this);\n    new DragdropHandler(this);\n\n    var focusEditor = function(e) {\n        var windowBlurred = !document.hasFocus || !document.hasFocus()\n            || !editor.isFocused() && document.activeElement == (editor.textInput && editor.textInput.getElement())\n        if (windowBlurred)\n            window.focus();\n        editor.focus();\n    };\n\n    var mouseTarget = editor.renderer.getMouseEventTarget();\n    event.addListener(mouseTarget, \"click\", this.onMouseEvent.bind(this, \"click\"));\n    event.addListener(mouseTarget, \"mousemove\", this.onMouseMove.bind(this, \"mousemove\"));\n    event.addMultiMouseDownListener([\n        mouseTarget,\n        editor.renderer.scrollBarV && editor.renderer.scrollBarV.inner,\n        editor.renderer.scrollBarH && editor.renderer.scrollBarH.inner,\n        editor.textInput && editor.textInput.getElement()\n    ].filter(Boolean), [400, 300, 250], this, \"onMouseEvent\");\n    event.addMouseWheelListener(editor.container, this.onMouseWheel.bind(this, \"mousewheel\"));\n    event.addTouchMoveListener(editor.container, this.onTouchMove.bind(this, \"touchmove\"));\n\n    var gutterEl = editor.renderer.$gutter;\n    event.addListener(gutterEl, \"mousedown\", this.onMouseEvent.bind(this, \"guttermousedown\"));\n    event.addListener(gutterEl, \"click\", this.onMouseEvent.bind(this, \"gutterclick\"));\n    event.addListener(gutterEl, \"dblclick\", this.onMouseEvent.bind(this, \"gutterdblclick\"));\n    event.addListener(gutterEl, \"mousemove\", this.onMouseEvent.bind(this, \"guttermousemove\"));\n\n    event.addListener(mouseTarget, \"mousedown\", focusEditor);\n    event.addListener(gutterEl, \"mousedown\", focusEditor);\n    if (useragent.isIE && editor.renderer.scrollBarV) {\n        event.addListener(editor.renderer.scrollBarV.element, \"mousedown\", focusEditor);\n        event.addListener(editor.renderer.scrollBarH.element, \"mousedown\", focusEditor);\n    }\n\n    editor.on(\"mousemove\", function(e){\n        if (_self.state || _self.$dragDelay || !_self.$dragEnabled)\n            return;\n\n        var character = editor.renderer.screenToTextCoordinates(e.x, e.y);\n        var range = editor.session.selection.getRange();\n        var renderer = editor.renderer;\n\n        if (!range.isEmpty() && range.insideStart(character.row, character.column)) {\n            renderer.setCursorStyle(\"default\");\n        } else {\n            renderer.setCursorStyle(\"\");\n        }\n    });\n};\n\n(function() {\n    this.onMouseEvent = function(name, e) {\n        this.editor._emit(name, new MouseEvent(e, this.editor));\n    };\n\n    this.onMouseMove = function(name, e) {\n        var listeners = this.editor._eventRegistry && this.editor._eventRegistry.mousemove;\n        if (!listeners || !listeners.length)\n            return;\n\n        this.editor._emit(name, new MouseEvent(e, this.editor));\n    };\n\n    this.onMouseWheel = function(name, e) {\n        var mouseEvent = new MouseEvent(e, this.editor);\n        mouseEvent.speed = this.$scrollSpeed * 2;\n        mouseEvent.wheelX = e.wheelX;\n        mouseEvent.wheelY = e.wheelY;\n\n        this.editor._emit(name, mouseEvent);\n    };\n    \n    this.onTouchMove = function (name, e) {\n        var mouseEvent = new MouseEvent(e, this.editor);\n        mouseEvent.speed = 1;//this.$scrollSpeed * 2;\n        mouseEvent.wheelX = e.wheelX;\n        mouseEvent.wheelY = e.wheelY;\n        this.editor._emit(name, mouseEvent);\n    };\n\n    this.setState = function(state) {\n        this.state = state;\n    };\n\n    this.captureMouse = function(ev, mouseMoveHandler) {\n        this.x = ev.x;\n        this.y = ev.y;\n\n        this.isMousePressed = true;\n        var renderer = this.editor.renderer;\n        if (renderer.$keepTextAreaAtCursor)\n            renderer.$keepTextAreaAtCursor = null;\n\n        var self = this;\n        var onMouseMove = function(e) {\n            if (!e) return;\n            if (useragent.isWebKit && !e.which && self.releaseMouse)\n                return self.releaseMouse();\n\n            self.x = e.clientX;\n            self.y = e.clientY;\n            mouseMoveHandler && mouseMoveHandler(e);\n            self.mouseEvent = new MouseEvent(e, self.editor);\n            self.$mouseMoved = true;\n        };\n\n        var onCaptureEnd = function(e) {\n            clearInterval(timerId);\n            onCaptureInterval();\n            self[self.state + \"End\"] && self[self.state + \"End\"](e);\n            self.state = \"\";\n            if (renderer.$keepTextAreaAtCursor == null) {\n                renderer.$keepTextAreaAtCursor = true;\n                renderer.$moveTextAreaToCursor();\n            }\n            self.isMousePressed = false;\n            self.$onCaptureMouseMove = self.releaseMouse = null;\n            e && self.onMouseEvent(\"mouseup\", e);\n        };\n\n        var onCaptureInterval = function() {\n            self[self.state] && self[self.state]();\n            self.$mouseMoved = false;\n        };\n\n        if (useragent.isOldIE && ev.domEvent.type == \"dblclick\") {\n            return setTimeout(function() {onCaptureEnd(ev);});\n        }\n\n        self.$onCaptureMouseMove = onMouseMove;\n        self.releaseMouse = event.capture(this.editor.container, onMouseMove, onCaptureEnd);\n        var timerId = setInterval(onCaptureInterval, 20);\n    };\n    this.releaseMouse = null;\n    this.cancelContextMenu = function() {\n        var stop = function(e) {\n            if (e && e.domEvent && e.domEvent.type != \"contextmenu\")\n                return;\n            this.editor.off(\"nativecontextmenu\", stop);\n            if (e && e.domEvent)\n                event.stopEvent(e.domEvent);\n        }.bind(this);\n        setTimeout(stop, 10);\n        this.editor.on(\"nativecontextmenu\", stop);\n    };\n}).call(MouseHandler.prototype);\n\nconfig.defineOptions(MouseHandler.prototype, \"mouseHandler\", {\n    scrollSpeed: {initialValue: 2},\n    dragDelay: {initialValue: (useragent.isMac ? 150 : 0)},\n    dragEnabled: {initialValue: true},\n    focusTimout: {initialValue: 0},\n    tooltipFollowsMouse: {initialValue: true}\n});\n\n\nexports.MouseHandler = MouseHandler;\n});\n\nace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nfunction FoldHandler(editor) {\n\n    editor.on(\"click\", function(e) {\n        var position = e.getDocumentPosition();\n        var session = editor.session;\n        var fold = session.getFoldAt(position.row, position.column, 1);\n        if (fold) {\n            if (e.getAccelKey())\n                session.removeFold(fold);\n            else\n                session.expandFold(fold);\n\n            e.stop();\n        }\n    });\n\n    editor.on(\"gutterclick\", function(e) {\n        var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n\n        if (gutterRegion == \"foldWidgets\") {\n            var row = e.getDocumentPosition().row;\n            var session = editor.session;\n            if (session.foldWidgets && session.foldWidgets[row])\n                editor.session.onFoldWidgetClick(row, e);\n            if (!editor.isFocused())\n                editor.focus();\n            e.stop();\n        }\n    });\n\n    editor.on(\"gutterdblclick\", function(e) {\n        var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n\n        if (gutterRegion == \"foldWidgets\") {\n            var row = e.getDocumentPosition().row;\n            var session = editor.session;\n            var data = session.getParentFoldRangeData(row, true);\n            var range = data.range || data.firstRange;\n\n            if (range) {\n                row = range.start.row;\n                var fold = session.getFoldAt(row, session.getLine(row).length, 1);\n\n                if (fold) {\n                    session.removeFold(fold);\n                } else {\n                    session.addFold(\"...\", range);\n                    editor.renderer.scrollCursorIntoView({row: range.start.row, column: 0});\n                }\n            }\n            e.stop();\n        }\n    });\n}\n\nexports.FoldHandler = FoldHandler;\n\n});\n\nace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"], function(require, exports, module) {\n\"use strict\";\n\nvar keyUtil  = require(\"../lib/keys\");\nvar event = require(\"../lib/event\");\n\nvar KeyBinding = function(editor) {\n    this.$editor = editor;\n    this.$data = {editor: editor};\n    this.$handlers = [];\n    this.setDefaultHandler(editor.commands);\n};\n\n(function() {\n    this.setDefaultHandler = function(kb) {\n        this.removeKeyboardHandler(this.$defaultHandler);\n        this.$defaultHandler = kb;\n        this.addKeyboardHandler(kb, 0);\n    };\n\n    this.setKeyboardHandler = function(kb) {\n        var h = this.$handlers;\n        if (h[h.length - 1] == kb)\n            return;\n\n        while (h[h.length - 1] && h[h.length - 1] != this.$defaultHandler)\n            this.removeKeyboardHandler(h[h.length - 1]);\n\n        this.addKeyboardHandler(kb, 1);\n    };\n\n    this.addKeyboardHandler = function(kb, pos) {\n        if (!kb)\n            return;\n        if (typeof kb == \"function\" && !kb.handleKeyboard)\n            kb.handleKeyboard = kb;\n        var i = this.$handlers.indexOf(kb);\n        if (i != -1)\n            this.$handlers.splice(i, 1);\n\n        if (pos == undefined)\n            this.$handlers.push(kb);\n        else\n            this.$handlers.splice(pos, 0, kb);\n\n        if (i == -1 && kb.attach)\n            kb.attach(this.$editor);\n    };\n\n    this.removeKeyboardHandler = function(kb) {\n        var i = this.$handlers.indexOf(kb);\n        if (i == -1)\n            return false;\n        this.$handlers.splice(i, 1);\n        kb.detach && kb.detach(this.$editor);\n        return true;\n    };\n\n    this.getKeyboardHandler = function() {\n        return this.$handlers[this.$handlers.length - 1];\n    };\n    \n    this.getStatusText = function() {\n        var data = this.$data;\n        var editor = data.editor;\n        return this.$handlers.map(function(h) {\n            return h.getStatusText && h.getStatusText(editor, data) || \"\";\n        }).filter(Boolean).join(\" \");\n    };\n\n    this.$callKeyboardHandlers = function(hashId, keyString, keyCode, e) {\n        var toExecute;\n        var success = false;\n        var commands = this.$editor.commands;\n\n        for (var i = this.$handlers.length; i--;) {\n            toExecute = this.$handlers[i].handleKeyboard(\n                this.$data, hashId, keyString, keyCode, e\n            );\n            if (!toExecute || !toExecute.command)\n                continue;\n            if (toExecute.command == \"null\") {\n                success = true;\n            } else {\n                success = commands.exec(toExecute.command, this.$editor, toExecute.args, e);\n            }\n            if (success && e && hashId != -1 && \n                toExecute.passEvent != true && toExecute.command.passEvent != true\n            ) {\n                event.stopEvent(e);\n            }\n            if (success)\n                break;\n        }\n        \n        if (!success && hashId == -1) {\n            toExecute = {command: \"insertstring\"};\n            success = commands.exec(\"insertstring\", this.$editor, keyString);\n        }\n        \n        if (success && this.$editor._signal)\n            this.$editor._signal(\"keyboardActivity\", toExecute);\n        \n        return success;\n    };\n\n    this.onCommandKey = function(e, hashId, keyCode) {\n        var keyString = keyUtil.keyCodeToString(keyCode);\n        this.$callKeyboardHandlers(hashId, keyString, keyCode, e);\n    };\n\n    this.onTextInput = function(text) {\n        this.$callKeyboardHandlers(-1, text);\n    };\n\n}).call(KeyBinding.prototype);\n\nexports.KeyBinding = KeyBinding;\n});\n\nace.define(\"ace/range\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\nvar comparePoints = function(p1, p2) {\n    return p1.row - p2.row || p1.column - p2.column;\n};\nvar Range = function(startRow, startColumn, endRow, endColumn) {\n    this.start = {\n        row: startRow,\n        column: startColumn\n    };\n\n    this.end = {\n        row: endRow,\n        column: endColumn\n    };\n};\n\n(function() {\n    this.isEqual = function(range) {\n        return this.start.row === range.start.row &&\n            this.end.row === range.end.row &&\n            this.start.column === range.start.column &&\n            this.end.column === range.end.column;\n    };\n    this.toString = function() {\n        return (\"Range: [\" + this.start.row + \"/\" + this.start.column +\n            \"] -> [\" + this.end.row + \"/\" + this.end.column + \"]\");\n    };\n\n    this.contains = function(row, column) {\n        return this.compare(row, column) == 0;\n    };\n    this.compareRange = function(range) {\n        var cmp,\n            end = range.end,\n            start = range.start;\n\n        cmp = this.compare(end.row, end.column);\n        if (cmp == 1) {\n            cmp = this.compare(start.row, start.column);\n            if (cmp == 1) {\n                return 2;\n            } else if (cmp == 0) {\n                return 1;\n            } else {\n                return 0;\n            }\n        } else if (cmp == -1) {\n            return -2;\n        } else {\n            cmp = this.compare(start.row, start.column);\n            if (cmp == -1) {\n                return -1;\n            } else if (cmp == 1) {\n                return 42;\n            } else {\n                return 0;\n            }\n        }\n    };\n    this.comparePoint = function(p) {\n        return this.compare(p.row, p.column);\n    };\n    this.containsRange = function(range) {\n        return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n    };\n    this.intersects = function(range) {\n        var cmp = this.compareRange(range);\n        return (cmp == -1 || cmp == 0 || cmp == 1);\n    };\n    this.isEnd = function(row, column) {\n        return this.end.row == row && this.end.column == column;\n    };\n    this.isStart = function(row, column) {\n        return this.start.row == row && this.start.column == column;\n    };\n    this.setStart = function(row, column) {\n        if (typeof row == \"object\") {\n            this.start.column = row.column;\n            this.start.row = row.row;\n        } else {\n            this.start.row = row;\n            this.start.column = column;\n        }\n    };\n    this.setEnd = function(row, column) {\n        if (typeof row == \"object\") {\n            this.end.column = row.column;\n            this.end.row = row.row;\n        } else {\n            this.end.row = row;\n            this.end.column = column;\n        }\n    };\n    this.inside = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isEnd(row, column) || this.isStart(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.insideStart = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isEnd(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.insideEnd = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isStart(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.compare = function(row, column) {\n        if (!this.isMultiLine()) {\n            if (row === this.start.row) {\n                return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n            }\n        }\n\n        if (row < this.start.row)\n            return -1;\n\n        if (row > this.end.row)\n            return 1;\n\n        if (this.start.row === row)\n            return column >= this.start.column ? 0 : -1;\n\n        if (this.end.row === row)\n            return column <= this.end.column ? 0 : 1;\n\n        return 0;\n    };\n    this.compareStart = function(row, column) {\n        if (this.start.row == row && this.start.column == column) {\n            return -1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.compareEnd = function(row, column) {\n        if (this.end.row == row && this.end.column == column) {\n            return 1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.compareInside = function(row, column) {\n        if (this.end.row == row && this.end.column == column) {\n            return 1;\n        } else if (this.start.row == row && this.start.column == column) {\n            return -1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.clipRows = function(firstRow, lastRow) {\n        if (this.end.row > lastRow)\n            var end = {row: lastRow + 1, column: 0};\n        else if (this.end.row < firstRow)\n            var end = {row: firstRow, column: 0};\n\n        if (this.start.row > lastRow)\n            var start = {row: lastRow + 1, column: 0};\n        else if (this.start.row < firstRow)\n            var start = {row: firstRow, column: 0};\n\n        return Range.fromPoints(start || this.start, end || this.end);\n    };\n    this.extend = function(row, column) {\n        var cmp = this.compare(row, column);\n\n        if (cmp == 0)\n            return this;\n        else if (cmp == -1)\n            var start = {row: row, column: column};\n        else\n            var end = {row: row, column: column};\n\n        return Range.fromPoints(start || this.start, end || this.end);\n    };\n\n    this.isEmpty = function() {\n        return (this.start.row === this.end.row && this.start.column === this.end.column);\n    };\n    this.isMultiLine = function() {\n        return (this.start.row !== this.end.row);\n    };\n    this.clone = function() {\n        return Range.fromPoints(this.start, this.end);\n    };\n    this.collapseRows = function() {\n        if (this.end.column == 0)\n            return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)\n        else\n            return new Range(this.start.row, 0, this.end.row, 0)\n    };\n    this.toScreenRange = function(session) {\n        var screenPosStart = session.documentToScreenPosition(this.start);\n        var screenPosEnd = session.documentToScreenPosition(this.end);\n\n        return new Range(\n            screenPosStart.row, screenPosStart.column,\n            screenPosEnd.row, screenPosEnd.column\n        );\n    };\n    this.moveBy = function(row, column) {\n        this.start.row += row;\n        this.start.column += column;\n        this.end.row += row;\n        this.end.column += column;\n    };\n\n}).call(Range.prototype);\nRange.fromPoints = function(start, end) {\n    return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\n\nRange.comparePoints = function(p1, p2) {\n    return p1.row - p2.row || p1.column - p2.column;\n};\n\n\nexports.Range = Range;\n});\n\nace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Selection = function(session) {\n    this.session = session;\n    this.doc = session.getDocument();\n\n    this.clearSelection();\n    this.lead = this.selectionLead = this.doc.createAnchor(0, 0);\n    this.anchor = this.selectionAnchor = this.doc.createAnchor(0, 0);\n\n    var self = this;\n    this.lead.on(\"change\", function(e) {\n        self._emit(\"changeCursor\");\n        if (!self.$isEmpty)\n            self._emit(\"changeSelection\");\n        if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n            self.$desiredColumn = null;\n    });\n\n    this.selectionAnchor.on(\"change\", function() {\n        if (!self.$isEmpty)\n            self._emit(\"changeSelection\");\n    });\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n    this.isEmpty = function() {\n        return (this.$isEmpty || (\n            this.anchor.row == this.lead.row &&\n            this.anchor.column == this.lead.column\n        ));\n    };\n    this.isMultiLine = function() {\n        if (this.isEmpty()) {\n            return false;\n        }\n\n        return this.getRange().isMultiLine();\n    };\n    this.getCursor = function() {\n        return this.lead.getPosition();\n    };\n    this.setSelectionAnchor = function(row, column) {\n        this.anchor.setPosition(row, column);\n\n        if (this.$isEmpty) {\n            this.$isEmpty = false;\n            this._emit(\"changeSelection\");\n        }\n    };\n    this.getSelectionAnchor = function() {\n        if (this.$isEmpty)\n            return this.getSelectionLead();\n        else\n            return this.anchor.getPosition();\n    };\n    this.getSelectionLead = function() {\n        return this.lead.getPosition();\n    };\n    this.shiftSelection = function(columns) {\n        if (this.$isEmpty) {\n            this.moveCursorTo(this.lead.row, this.lead.column + columns);\n            return;\n        }\n\n        var anchor = this.getSelectionAnchor();\n        var lead = this.getSelectionLead();\n\n        var isBackwards = this.isBackwards();\n\n        if (!isBackwards || anchor.column !== 0)\n            this.setSelectionAnchor(anchor.row, anchor.column + columns);\n\n        if (isBackwards || lead.column !== 0) {\n            this.$moveSelection(function() {\n                this.moveCursorTo(lead.row, lead.column + columns);\n            });\n        }\n    };\n    this.isBackwards = function() {\n        var anchor = this.anchor;\n        var lead = this.lead;\n        return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n    };\n    this.getRange = function() {\n        var anchor = this.anchor;\n        var lead = this.lead;\n\n        if (this.isEmpty())\n            return Range.fromPoints(lead, lead);\n\n        if (this.isBackwards()) {\n            return Range.fromPoints(lead, anchor);\n        }\n        else {\n            return Range.fromPoints(anchor, lead);\n        }\n    };\n    this.clearSelection = function() {\n        if (!this.$isEmpty) {\n            this.$isEmpty = true;\n            this._emit(\"changeSelection\");\n        }\n    };\n    this.selectAll = function() {\n        var lastRow = this.doc.getLength() - 1;\n        this.setSelectionAnchor(0, 0);\n        this.moveCursorTo(lastRow, this.doc.getLine(lastRow).length);\n    };\n    this.setRange =\n    this.setSelectionRange = function(range, reverse) {\n        if (reverse) {\n            this.setSelectionAnchor(range.end.row, range.end.column);\n            this.selectTo(range.start.row, range.start.column);\n        } else {\n            this.setSelectionAnchor(range.start.row, range.start.column);\n            this.selectTo(range.end.row, range.end.column);\n        }\n        if (this.getRange().isEmpty())\n            this.$isEmpty = true;\n        this.$desiredColumn = null;\n    };\n\n    this.$moveSelection = function(mover) {\n        var lead = this.lead;\n        if (this.$isEmpty)\n            this.setSelectionAnchor(lead.row, lead.column);\n\n        mover.call(this);\n    };\n    this.selectTo = function(row, column) {\n        this.$moveSelection(function() {\n            this.moveCursorTo(row, column);\n        });\n    };\n    this.selectToPosition = function(pos) {\n        this.$moveSelection(function() {\n            this.moveCursorToPosition(pos);\n        });\n    };\n    this.moveTo = function(row, column) {\n        this.clearSelection();\n        this.moveCursorTo(row, column);\n    };\n    this.moveToPosition = function(pos) {\n        this.clearSelection();\n        this.moveCursorToPosition(pos);\n    };\n    this.selectUp = function() {\n        this.$moveSelection(this.moveCursorUp);\n    };\n    this.selectDown = function() {\n        this.$moveSelection(this.moveCursorDown);\n    };\n    this.selectRight = function() {\n        this.$moveSelection(this.moveCursorRight);\n    };\n    this.selectLeft = function() {\n        this.$moveSelection(this.moveCursorLeft);\n    };\n    this.selectLineStart = function() {\n        this.$moveSelection(this.moveCursorLineStart);\n    };\n    this.selectLineEnd = function() {\n        this.$moveSelection(this.moveCursorLineEnd);\n    };\n    this.selectFileEnd = function() {\n        this.$moveSelection(this.moveCursorFileEnd);\n    };\n    this.selectFileStart = function() {\n        this.$moveSelection(this.moveCursorFileStart);\n    };\n    this.selectWordRight = function() {\n        this.$moveSelection(this.moveCursorWordRight);\n    };\n    this.selectWordLeft = function() {\n        this.$moveSelection(this.moveCursorWordLeft);\n    };\n    this.getWordRange = function(row, column) {\n        if (typeof column == \"undefined\") {\n            var cursor = row || this.lead;\n            row = cursor.row;\n            column = cursor.column;\n        }\n        return this.session.getWordRange(row, column);\n    };\n    this.selectWord = function() {\n        this.setSelectionRange(this.getWordRange());\n    };\n    this.selectAWord = function() {\n        var cursor = this.getCursor();\n        var range = this.session.getAWordRange(cursor.row, cursor.column);\n        this.setSelectionRange(range);\n    };\n\n    this.getLineRange = function(row, excludeLastChar) {\n        var rowStart = typeof row == \"number\" ? row : this.lead.row;\n        var rowEnd;\n\n        var foldLine = this.session.getFoldLine(rowStart);\n        if (foldLine) {\n            rowStart = foldLine.start.row;\n            rowEnd = foldLine.end.row;\n        } else {\n            rowEnd = rowStart;\n        }\n        if (excludeLastChar === true)\n            return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n        else\n            return new Range(rowStart, 0, rowEnd + 1, 0);\n    };\n    this.selectLine = function() {\n        this.setSelectionRange(this.getLineRange());\n    };\n    this.moveCursorUp = function() {\n        this.moveCursorBy(-1, 0);\n    };\n    this.moveCursorDown = function() {\n        this.moveCursorBy(1, 0);\n    };\n    this.moveCursorLeft = function() {\n        var cursor = this.lead.getPosition(),\n            fold;\n\n        if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n            this.moveCursorTo(fold.start.row, fold.start.column);\n        } else if (cursor.column === 0) {\n            if (cursor.row > 0) {\n                this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n            }\n        }\n        else {\n            var tabSize = this.session.getTabSize();\n            if (this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(cursor.column-tabSize, cursor.column).split(\" \").length-1 == tabSize)\n                this.moveCursorBy(0, -tabSize);\n            else\n                this.moveCursorBy(0, -1);\n        }\n    };\n    this.moveCursorRight = function() {\n        var cursor = this.lead.getPosition(),\n            fold;\n        if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n            this.moveCursorTo(fold.end.row, fold.end.column);\n        }\n        else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n            if (this.lead.row < this.doc.getLength() - 1) {\n                this.moveCursorTo(this.lead.row + 1, 0);\n            }\n        }\n        else {\n            var tabSize = this.session.getTabSize();\n            var cursor = this.lead;\n            if (this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(cursor.column, cursor.column+tabSize).split(\" \").length-1 == tabSize)\n                this.moveCursorBy(0, tabSize);\n            else\n                this.moveCursorBy(0, 1);\n        }\n    };\n    this.moveCursorLineStart = function() {\n        var row = this.lead.row;\n        var column = this.lead.column;\n        var screenRow = this.session.documentToScreenRow(row, column);\n        var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n        var beforeCursor = this.session.getDisplayLine(\n            row, null, firstColumnPosition.row,\n            firstColumnPosition.column\n        );\n\n        var leadingSpace = beforeCursor.match(/^\\s*/);\n        if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n            firstColumnPosition.column += leadingSpace[0].length;\n        this.moveCursorToPosition(firstColumnPosition);\n    };\n    this.moveCursorLineEnd = function() {\n        var lead = this.lead;\n        var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n        if (this.lead.column == lineEnd.column) {\n            var line = this.session.getLine(lineEnd.row);\n            if (lineEnd.column == line.length) {\n                var textEnd = line.search(/\\s+$/);\n                if (textEnd > 0)\n                    lineEnd.column = textEnd;\n            }\n        }\n\n        this.moveCursorTo(lineEnd.row, lineEnd.column);\n    };\n    this.moveCursorFileEnd = function() {\n        var row = this.doc.getLength() - 1;\n        var column = this.doc.getLine(row).length;\n        this.moveCursorTo(row, column);\n    };\n    this.moveCursorFileStart = function() {\n        this.moveCursorTo(0, 0);\n    };\n    this.moveCursorLongWordRight = function() {\n        var row = this.lead.row;\n        var column = this.lead.column;\n        var line = this.doc.getLine(row);\n        var rightOfCursor = line.substring(column);\n\n        var match;\n        this.session.nonTokenRe.lastIndex = 0;\n        this.session.tokenRe.lastIndex = 0;\n        var fold = this.session.getFoldAt(row, column, 1);\n        if (fold) {\n            this.moveCursorTo(fold.end.row, fold.end.column);\n            return;\n        }\n        if (match = this.session.nonTokenRe.exec(rightOfCursor)) {\n            column += this.session.nonTokenRe.lastIndex;\n            this.session.nonTokenRe.lastIndex = 0;\n            rightOfCursor = line.substring(column);\n        }\n        if (column >= line.length) {\n            this.moveCursorTo(row, line.length);\n            this.moveCursorRight();\n            if (row < this.doc.getLength() - 1)\n                this.moveCursorWordRight();\n            return;\n        }\n        if (match = this.session.tokenRe.exec(rightOfCursor)) {\n            column += this.session.tokenRe.lastIndex;\n            this.session.tokenRe.lastIndex = 0;\n        }\n\n        this.moveCursorTo(row, column);\n    };\n    this.moveCursorLongWordLeft = function() {\n        var row = this.lead.row;\n        var column = this.lead.column;\n        var fold;\n        if (fold = this.session.getFoldAt(row, column, -1)) {\n            this.moveCursorTo(fold.start.row, fold.start.column);\n            return;\n        }\n\n        var str = this.session.getFoldStringAt(row, column, -1);\n        if (str == null) {\n            str = this.doc.getLine(row).substring(0, column);\n        }\n\n        var leftOfCursor = lang.stringReverse(str);\n        var match;\n        this.session.nonTokenRe.lastIndex = 0;\n        this.session.tokenRe.lastIndex = 0;\n        if (match = this.session.nonTokenRe.exec(leftOfCursor)) {\n            column -= this.session.nonTokenRe.lastIndex;\n            leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n            this.session.nonTokenRe.lastIndex = 0;\n        }\n        if (column <= 0) {\n            this.moveCursorTo(row, 0);\n            this.moveCursorLeft();\n            if (row > 0)\n                this.moveCursorWordLeft();\n            return;\n        }\n        if (match = this.session.tokenRe.exec(leftOfCursor)) {\n            column -= this.session.tokenRe.lastIndex;\n            this.session.tokenRe.lastIndex = 0;\n        }\n\n        this.moveCursorTo(row, column);\n    };\n\n    this.$shortWordEndIndex = function(rightOfCursor) {\n        var match, index = 0, ch;\n        var whitespaceRe = /\\s/;\n        var tokenRe = this.session.tokenRe;\n\n        tokenRe.lastIndex = 0;\n        if (match = this.session.tokenRe.exec(rightOfCursor)) {\n            index = this.session.tokenRe.lastIndex;\n        } else {\n            while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n                index ++;\n\n            if (index < 1) {\n                tokenRe.lastIndex = 0;\n                 while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n                    tokenRe.lastIndex = 0;\n                    index ++;\n                    if (whitespaceRe.test(ch)) {\n                        if (index > 2) {\n                            index--;\n                            break;\n                        } else {\n                            while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n                                index ++;\n                            if (index > 2)\n                                break;\n                        }\n                    }\n                }\n            }\n        }\n        tokenRe.lastIndex = 0;\n\n        return index;\n    };\n\n    this.moveCursorShortWordRight = function() {\n        var row = this.lead.row;\n        var column = this.lead.column;\n        var line = this.doc.getLine(row);\n        var rightOfCursor = line.substring(column);\n\n        var fold = this.session.getFoldAt(row, column, 1);\n        if (fold)\n            return this.moveCursorTo(fold.end.row, fold.end.column);\n\n        if (column == line.length) {\n            var l = this.doc.getLength();\n            do {\n                row++;\n                rightOfCursor = this.doc.getLine(row);\n            } while (row < l && /^\\s*$/.test(rightOfCursor));\n\n            if (!/^\\s+/.test(rightOfCursor))\n                rightOfCursor = \"\";\n            column = 0;\n        }\n\n        var index = this.$shortWordEndIndex(rightOfCursor);\n\n        this.moveCursorTo(row, column + index);\n    };\n\n    this.moveCursorShortWordLeft = function() {\n        var row = this.lead.row;\n        var column = this.lead.column;\n\n        var fold;\n        if (fold = this.session.getFoldAt(row, column, -1))\n            return this.moveCursorTo(fold.start.row, fold.start.column);\n\n        var line = this.session.getLine(row).substring(0, column);\n        if (column === 0) {\n            do {\n                row--;\n                line = this.doc.getLine(row);\n            } while (row > 0 && /^\\s*$/.test(line));\n\n            column = line.length;\n            if (!/\\s+$/.test(line))\n                line = \"\";\n        }\n\n        var leftOfCursor = lang.stringReverse(line);\n        var index = this.$shortWordEndIndex(leftOfCursor);\n\n        return this.moveCursorTo(row, column - index);\n    };\n\n    this.moveCursorWordRight = function() {\n        if (this.session.$selectLongWords)\n            this.moveCursorLongWordRight();\n        else\n            this.moveCursorShortWordRight();\n    };\n\n    this.moveCursorWordLeft = function() {\n        if (this.session.$selectLongWords)\n            this.moveCursorLongWordLeft();\n        else\n            this.moveCursorShortWordLeft();\n    };\n    this.moveCursorBy = function(rows, chars) {\n        var screenPos = this.session.documentToScreenPosition(\n            this.lead.row,\n            this.lead.column\n        );\n\n        if (chars === 0) {\n            if (this.$desiredColumn)\n                screenPos.column = this.$desiredColumn;\n            else\n                this.$desiredColumn = screenPos.column;\n        }\n\n        var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column);\n        \n        if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n            if (this.session.lineWidgets && this.session.lineWidgets[docPos.row]) {\n                if (docPos.row > 0 || rows > 0)\n                    docPos.row++;\n            }\n        }\n        this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n    };\n    this.moveCursorToPosition = function(position) {\n        this.moveCursorTo(position.row, position.column);\n    };\n    this.moveCursorTo = function(row, column, keepDesiredColumn) {\n        var fold = this.session.getFoldAt(row, column, 1);\n        if (fold) {\n            row = fold.start.row;\n            column = fold.start.column;\n        }\n\n        this.$keepDesiredColumnOnChange = true;\n        this.lead.setPosition(row, column);\n        this.$keepDesiredColumnOnChange = false;\n\n        if (!keepDesiredColumn)\n            this.$desiredColumn = null;\n    };\n    this.moveCursorToScreen = function(row, column, keepDesiredColumn) {\n        var pos = this.session.screenToDocumentPosition(row, column);\n        this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n    };\n    this.detach = function() {\n        this.lead.detach();\n        this.anchor.detach();\n        this.session = this.doc = null;\n    };\n\n    this.fromOrientedRange = function(range) {\n        this.setSelectionRange(range, range.cursor == range.start);\n        this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n    };\n\n    this.toOrientedRange = function(range) {\n        var r = this.getRange();\n        if (range) {\n            range.start.column = r.start.column;\n            range.start.row = r.start.row;\n            range.end.column = r.end.column;\n            range.end.row = r.end.row;\n        } else {\n            range = r;\n        }\n\n        range.cursor = this.isBackwards() ? range.start : range.end;\n        range.desiredColumn = this.$desiredColumn;\n        return range;\n    };\n    this.getRangeOfMovements = function(func) {\n        var start = this.getCursor();\n        try {\n            func(this);\n            var end = this.getCursor();\n            return Range.fromPoints(start,end);\n        } catch(e) {\n            return Range.fromPoints(start,start);\n        } finally {\n            this.moveCursorToPosition(start);\n        }\n    };\n\n    this.toJSON = function() {\n        if (this.rangeCount) {\n            var data = this.ranges.map(function(r) {\n                var r1 = r.clone();\n                r1.isBackwards = r.cursor == r.start;\n                return r1;\n            });\n        } else {\n            var data = this.getRange();\n            data.isBackwards = this.isBackwards();\n        }\n        return data;\n    };\n\n    this.fromJSON = function(data) {\n        if (data.start == undefined) {\n            if (this.rangeList) {\n                this.toSingleRange(data[0]);\n                for (var i = data.length; i--; ) {\n                    var r = Range.fromPoints(data[i].start, data[i].end);\n                    if (data[i].isBackwards)\n                        r.cursor = r.start;\n                    this.addRange(r, true);\n                }\n                return;\n            } else\n                data = data[0];\n        }\n        if (this.rangeList)\n            this.toSingleRange(data);\n        this.setSelectionRange(data, data.isBackwards);\n    };\n\n    this.isEqual = function(data) {\n        if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n            return false;\n        if (!data.length || !this.ranges)\n            return this.getRange().isEqual(data);\n\n        for (var i = this.ranges.length; i--; ) {\n            if (!this.ranges[i].isEqual(data[i]))\n                return false;\n        }\n        return true;\n    };\n\n}).call(Selection.prototype);\n\nexports.Selection = Selection;\n});\n\nace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nvar config = require(\"./config\");\nvar MAX_TOKEN_COUNT = 2000;\nvar Tokenizer = function(rules) {\n    this.states = rules;\n\n    this.regExps = {};\n    this.matchMappings = {};\n    for (var key in this.states) {\n        var state = this.states[key];\n        var ruleRegExps = [];\n        var matchTotal = 0;\n        var mapping = this.matchMappings[key] = {defaultToken: \"text\"};\n        var flag = \"g\";\n\n        var splitterRurles = [];\n        for (var i = 0; i < state.length; i++) {\n            var rule = state[i];\n            if (rule.defaultToken)\n                mapping.defaultToken = rule.defaultToken;\n            if (rule.caseInsensitive)\n                flag = \"gi\";\n            if (rule.regex == null)\n                continue;\n\n            if (rule.regex instanceof RegExp)\n                rule.regex = rule.regex.toString().slice(1, -1);\n            var adjustedregex = rule.regex;\n            var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n            if (Array.isArray(rule.token)) {\n                if (rule.token.length == 1 || matchcount == 1) {\n                    rule.token = rule.token[0];\n                } else if (matchcount - 1 != rule.token.length) {\n                    this.reportError(\"number of classes and regexp groups doesn't match\", { \n                        rule: rule,\n                        groupCount: matchcount - 1\n                    });\n                    rule.token = rule.token[0];\n                } else {\n                    rule.tokenArray = rule.token;\n                    rule.token = null;\n                    rule.onMatch = this.$arrayTokens;\n                }\n            } else if (typeof rule.token == \"function\" && !rule.onMatch) {\n                if (matchcount > 1)\n                    rule.onMatch = this.$applyToken;\n                else\n                    rule.onMatch = rule.token;\n            }\n\n            if (matchcount > 1) {\n                if (/\\\\\\d/.test(rule.regex)) {\n                    adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function(match, digit) {\n                        return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n                    });\n                } else {\n                    matchcount = 1;\n                    adjustedregex = this.removeCapturingGroups(rule.regex);\n                }\n                if (!rule.splitRegex && typeof rule.token != \"string\")\n                    splitterRurles.push(rule); // flag will be known only at the very end\n            }\n\n            mapping[matchTotal] = i;\n            matchTotal += matchcount;\n\n            ruleRegExps.push(adjustedregex);\n            if (!rule.onMatch)\n                rule.onMatch = null;\n        }\n        \n        if (!ruleRegExps.length) {\n            mapping[0] = 0;\n            ruleRegExps.push(\"$\");\n        }\n        \n        splitterRurles.forEach(function(rule) {\n            rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n        }, this);\n\n        this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n    }\n};\n\n(function() {\n    this.$setMaxTokenCount = function(m) {\n        MAX_TOKEN_COUNT = m | 0;\n    };\n    \n    this.$applyToken = function(str) {\n        var values = this.splitRegex.exec(str).slice(1);\n        var types = this.token.apply(this, values);\n        if (typeof types === \"string\")\n            return [{type: types, value: str}];\n\n        var tokens = [];\n        for (var i = 0, l = types.length; i < l; i++) {\n            if (values[i])\n                tokens[tokens.length] = {\n                    type: types[i],\n                    value: values[i]\n                };\n        }\n        return tokens;\n    };\n\n    this.$arrayTokens = function(str) {\n        if (!str)\n            return [];\n        var values = this.splitRegex.exec(str);\n        if (!values)\n            return \"text\";\n        var tokens = [];\n        var types = this.tokenArray;\n        for (var i = 0, l = types.length; i < l; i++) {\n            if (values[i + 1])\n                tokens[tokens.length] = {\n                    type: types[i],\n                    value: values[i + 1]\n                };\n        }\n        return tokens;\n    };\n\n    this.removeCapturingGroups = function(src) {\n        var r = src.replace(\n            /\\[(?:\\\\.|[^\\]])*?\\]|\\\\.|\\(\\?[:=!]|(\\()/g,\n            function(x, y) {return y ? \"(?:\" : x;}\n        );\n        return r;\n    };\n\n    this.createSplitterRegexp = function(src, flag) {\n        if (src.indexOf(\"(?=\") != -1) {\n            var stack = 0;\n            var inChClass = false;\n            var lastCapture = {};\n            src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function(\n                m, esc, parenOpen, parenClose, square, index\n            ) {\n                if (inChClass) {\n                    inChClass = square != \"]\";\n                } else if (square) {\n                    inChClass = true;\n                } else if (parenClose) {\n                    if (stack == lastCapture.stack) {\n                        lastCapture.end = index+1;\n                        lastCapture.stack = -1;\n                    }\n                    stack--;\n                } else if (parenOpen) {\n                    stack++;\n                    if (parenOpen.length != 1) {\n                        lastCapture.stack = stack\n                        lastCapture.start = index;\n                    }\n                }\n                return m;\n            });\n\n            if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n                src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n        }\n        if (src.charAt(0) != \"^\") src = \"^\" + src;\n        if (src.charAt(src.length - 1) != \"$\") src += \"$\";\n        \n        return new RegExp(src, (flag||\"\").replace(\"g\", \"\"));\n    };\n    this.getLineTokens = function(line, startState) {\n        if (startState && typeof startState != \"string\") {\n            var stack = startState.slice(0);\n            startState = stack[0];\n            if (startState === \"#tmp\") {\n                stack.shift()\n                startState = stack.shift()\n            }\n        } else\n            var stack = [];\n\n        var currentState = startState || \"start\";\n        var state = this.states[currentState];\n        if (!state) {\n            currentState = \"start\";\n            state = this.states[currentState];\n        }\n        var mapping = this.matchMappings[currentState];\n        var re = this.regExps[currentState];\n        re.lastIndex = 0;\n\n        var match, tokens = [];\n        var lastIndex = 0;\n        var matchAttempts = 0;\n\n        var token = {type: null, value: \"\"};\n\n        while (match = re.exec(line)) {\n            var type = mapping.defaultToken;\n            var rule = null;\n            var value = match[0];\n            var index = re.lastIndex;\n\n            if (index - value.length > lastIndex) {\n                var skipped = line.substring(lastIndex, index - value.length);\n                if (token.type == type) {\n                    token.value += skipped;\n                } else {\n                    if (token.type)\n                        tokens.push(token);\n                    token = {type: type, value: skipped};\n                }\n            }\n\n            for (var i = 0; i < match.length-2; i++) {\n                if (match[i + 1] === undefined)\n                    continue;\n\n                rule = state[mapping[i]];\n\n                if (rule.onMatch)\n                    type = rule.onMatch(value, currentState, stack);\n                else\n                    type = rule.token;\n\n                if (rule.next) {\n                    if (typeof rule.next == \"string\") {\n                        currentState = rule.next;\n                    } else {\n                        currentState = rule.next(currentState, stack);\n                    }\n                    \n                    state = this.states[currentState];\n                    if (!state) {\n                        this.reportError(\"state doesn't exist\", currentState);\n                        currentState = \"start\";\n                        state = this.states[currentState];\n                    }\n                    mapping = this.matchMappings[currentState];\n                    lastIndex = index;\n                    re = this.regExps[currentState];\n                    re.lastIndex = index;\n                }\n                break;\n            }\n\n            if (value) {\n                if (typeof type === \"string\") {\n                    if ((!rule || rule.merge !== false) && token.type === type) {\n                        token.value += value;\n                    } else {\n                        if (token.type)\n                            tokens.push(token);\n                        token = {type: type, value: value};\n                    }\n                } else if (type) {\n                    if (token.type)\n                        tokens.push(token);\n                    token = {type: null, value: \"\"};\n                    for (var i = 0; i < type.length; i++)\n                        tokens.push(type[i]);\n                }\n            }\n\n            if (lastIndex == line.length)\n                break;\n\n            lastIndex = index;\n\n            if (matchAttempts++ > MAX_TOKEN_COUNT) {\n                if (matchAttempts > 2 * line.length) {\n                    this.reportError(\"infinite loop with in ace tokenizer\", {\n                        startState: startState,\n                        line: line\n                    });\n                }\n                while (lastIndex < line.length) {\n                    if (token.type)\n                        tokens.push(token);\n                    token = {\n                        value: line.substring(lastIndex, lastIndex += 2000),\n                        type: \"overflow\"\n                    };\n                }\n                currentState = \"start\";\n                stack = [];\n                break;\n            }\n        }\n\n        if (token.type)\n            tokens.push(token);\n        \n        if (stack.length > 1) {\n            if (stack[0] !== currentState)\n                stack.unshift(\"#tmp\", currentState);\n        }\n        return {\n            tokens : tokens,\n            state : stack.length ? stack : currentState\n        };\n    };\n    \n    this.reportError = config.reportError;\n    \n}).call(Tokenizer.prototype);\n\nexports.Tokenizer = Tokenizer;\n});\n\nace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar lang = require(\"../lib/lang\");\n\nvar TextHighlightRules = function() {\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"empty_line\",\n            regex : '^$'\n        }, {\n            defaultToken : \"text\"\n        }]\n    };\n};\n\n(function() {\n\n    this.addRules = function(rules, prefix) {\n        if (!prefix) {\n            for (var key in rules)\n                this.$rules[key] = rules[key];\n            return;\n        }\n        for (var key in rules) {\n            var state = rules[key];\n            for (var i = 0; i < state.length; i++) {\n                var rule = state[i];\n                if (rule.next || rule.onMatch) {\n                    if (typeof rule.next == \"string\") {\n                        if (rule.next.indexOf(prefix) !== 0)\n                            rule.next = prefix + rule.next;\n                    }\n                    if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n                        rule.nextState = prefix + rule.nextState;\n                }\n            }\n            this.$rules[prefix + key] = state;\n        }\n    };\n\n    this.getRules = function() {\n        return this.$rules;\n    };\n\n    this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n        var embedRules = typeof HighlightRules == \"function\"\n            ? new HighlightRules().getRules()\n            : HighlightRules;\n        if (states) {\n            for (var i = 0; i < states.length; i++)\n                states[i] = prefix + states[i];\n        } else {\n            states = [];\n            for (var key in embedRules)\n                states.push(prefix + key);\n        }\n\n        this.addRules(embedRules, prefix);\n\n        if (escapeRules) {\n            var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n            for (var i = 0; i < states.length; i++)\n                addRules.apply(this.$rules[states[i]], lang.deepCopy(escapeRules));\n        }\n\n        if (!this.$embeds)\n            this.$embeds = [];\n        this.$embeds.push(prefix);\n    };\n\n    this.getEmbeds = function() {\n        return this.$embeds;\n    };\n\n    var pushState = function(currentState, stack) {\n        if (currentState != \"start\" || stack.length)\n            stack.unshift(this.nextState, currentState);\n        return this.nextState;\n    };\n    var popState = function(currentState, stack) {\n        stack.shift();\n        return stack.shift() || \"start\";\n    };\n\n    this.normalizeRules = function() {\n        var id = 0;\n        var rules = this.$rules;\n        function processState(key) {\n            var state = rules[key];\n            state.processed = true;\n            for (var i = 0; i < state.length; i++) {\n                var rule = state[i];\n                var toInsert = null;\n                if (Array.isArray(rule)) {\n                    toInsert = rule;\n                    rule = {};\n                }\n                if (!rule.regex && rule.start) {\n                    rule.regex = rule.start;\n                    if (!rule.next)\n                        rule.next = [];\n                    rule.next.push({\n                        defaultToken: rule.token\n                    }, {\n                        token: rule.token + \".end\",\n                        regex: rule.end || rule.start,\n                        next: \"pop\"\n                    });\n                    rule.token = rule.token + \".start\";\n                    rule.push = true;\n                }\n                var next = rule.next || rule.push;\n                if (next && Array.isArray(next)) {\n                    var stateName = rule.stateName;\n                    if (!stateName)  {\n                        stateName = rule.token;\n                        if (typeof stateName != \"string\")\n                            stateName = stateName[0] || \"\";\n                        if (rules[stateName])\n                            stateName += id++;\n                    }\n                    rules[stateName] = next;\n                    rule.next = stateName;\n                    processState(stateName);\n                } else if (next == \"pop\") {\n                    rule.next = popState;\n                }\n\n                if (rule.push) {\n                    rule.nextState = rule.next || rule.push;\n                    rule.next = pushState;\n                    delete rule.push;\n                }\n\n                if (rule.rules) {\n                    for (var r in rule.rules) {\n                        if (rules[r]) {\n                            if (rules[r].push)\n                                rules[r].push.apply(rules[r], rule.rules[r]);\n                        } else {\n                            rules[r] = rule.rules[r];\n                        }\n                    }\n                }\n                var includeName = typeof rule == \"string\"\n                    ? rule\n                    : typeof rule.include == \"string\"\n                    ? rule.include\n                    : \"\";\n                if (includeName) {\n                    toInsert = rules[includeName];\n                }\n\n                if (toInsert) {\n                    var args = [i, 1].concat(toInsert);\n                    if (rule.noEscape)\n                        args = args.filter(function(x) {return !x.next;});\n                    state.splice.apply(state, args);\n                    i--;\n                }\n                \n                if (rule.keywordMap) {\n                    rule.token = this.createKeywordMapper(\n                        rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive\n                    );\n                    delete rule.defaultToken;\n                }\n            }\n        }\n        Object.keys(rules).forEach(processState, this);\n    };\n\n    this.createKeywordMapper = function(map, defaultToken, ignoreCase, splitChar) {\n        var keywords = Object.create(null);\n        Object.keys(map).forEach(function(className) {\n            var a = map[className];\n            if (ignoreCase)\n                a = a.toLowerCase();\n            var list = a.split(splitChar || \"|\");\n            for (var i = list.length; i--; )\n                keywords[list[i]] = className;\n        });\n        if (Object.getPrototypeOf(keywords)) {\n            keywords.__proto__ = null;\n        }\n        this.$keywordList = Object.keys(keywords);\n        map = null;\n        return ignoreCase\n            ? function(value) {return keywords[value.toLowerCase()] || defaultToken }\n            : function(value) {return keywords[value] || defaultToken };\n    };\n\n    this.getKeywords = function() {\n        return this.$keywords;\n    };\n\n}).call(TextHighlightRules.prototype);\n\nexports.TextHighlightRules = TextHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar Behaviour = function() {\n   this.$behaviours = {};\n};\n\n(function () {\n\n    this.add = function (name, action, callback) {\n        switch (undefined) {\n          case this.$behaviours:\n              this.$behaviours = {};\n          case this.$behaviours[name]:\n              this.$behaviours[name] = {};\n        }\n        this.$behaviours[name][action] = callback;\n    }\n    \n    this.addBehaviours = function (behaviours) {\n        for (var key in behaviours) {\n            for (var action in behaviours[key]) {\n                this.add(key, action, behaviours[key][action]);\n            }\n        }\n    }\n    \n    this.remove = function (name) {\n        if (this.$behaviours && this.$behaviours[name]) {\n            delete this.$behaviours[name];\n        }\n    }\n    \n    this.inherit = function (mode, filter) {\n        if (typeof mode === \"function\") {\n            var behaviours = new mode().getBehaviours(filter);\n        } else {\n            var behaviours = mode.getBehaviours(filter);\n        }\n        this.addBehaviours(behaviours);\n    }\n    \n    this.getBehaviours = function (filter) {\n        if (!filter) {\n            return this.$behaviours;\n        } else {\n            var ret = {}\n            for (var i = 0; i < filter.length; i++) {\n                if (this.$behaviours[filter[i]]) {\n                    ret[filter[i]] = this.$behaviours[filter[i]];\n                }\n            }\n            return ret;\n        }\n    }\n\n}).call(Behaviour.prototype);\n\nexports.Behaviour = Behaviour;\n});\n\nace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\nvar TokenIterator = function(session, initialRow, initialColumn) {\n    this.$session = session;\n    this.$row = initialRow;\n    this.$rowTokens = session.getTokens(initialRow);\n\n    var token = session.getTokenAt(initialRow, initialColumn);\n    this.$tokenIndex = token ? token.index : -1;\n};\n\n(function() { \n    this.stepBackward = function() {\n        this.$tokenIndex -= 1;\n        \n        while (this.$tokenIndex < 0) {\n            this.$row -= 1;\n            if (this.$row < 0) {\n                this.$row = 0;\n                return null;\n            }\n                \n            this.$rowTokens = this.$session.getTokens(this.$row);\n            this.$tokenIndex = this.$rowTokens.length - 1;\n        }\n            \n        return this.$rowTokens[this.$tokenIndex];\n    };   \n    this.stepForward = function() {\n        this.$tokenIndex += 1;\n        var rowCount;\n        while (this.$tokenIndex >= this.$rowTokens.length) {\n            this.$row += 1;\n            if (!rowCount)\n                rowCount = this.$session.getLength();\n            if (this.$row >= rowCount) {\n                this.$row = rowCount - 1;\n                return null;\n            }\n\n            this.$rowTokens = this.$session.getTokens(this.$row);\n            this.$tokenIndex = 0;\n        }\n            \n        return this.$rowTokens[this.$tokenIndex];\n    };      \n    this.getCurrentToken = function () {\n        return this.$rowTokens[this.$tokenIndex];\n    };      \n    this.getCurrentTokenRow = function () {\n        return this.$row;\n    };     \n    this.getCurrentTokenColumn = function() {\n        var rowTokens = this.$rowTokens;\n        var tokenIndex = this.$tokenIndex;\n        var column = rowTokens[tokenIndex].start;\n        if (column !== undefined)\n            return column;\n            \n        column = 0;\n        while (tokenIndex > 0) {\n            tokenIndex -= 1;\n            column += rowTokens[tokenIndex].value.length;\n        }\n        \n        return column;  \n    };\n    this.getCurrentTokenPosition = function() {\n        return {row: this.$row, column: this.getCurrentTokenColumn()};\n    };\n            \n}).call(TokenIterator.prototype);\n\nexports.TokenIterator = TokenIterator;\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\n\nvar SAFE_INSERT_IN_TOKENS =\n    [\"text\", \"paren.rparen\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS =\n    [\"text\", \"paren.rparen\", \"punctuation.operator\", \"comment\"];\n\nvar context;\nvar contextCache = {};\nvar initContext = function(editor) {\n    var id = -1;\n    if (editor.multiSelect) {\n        id = editor.selection.index;\n        if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n            contextCache = {rangeCount: editor.multiSelect.rangeCount};\n    }\n    if (contextCache[id])\n        return context = contextCache[id];\n    context = contextCache[id] = {\n        autoInsertedBrackets: 0,\n        autoInsertedRow: -1,\n        autoInsertedLineEnd: \"\",\n        maybeInsertedBrackets: 0,\n        maybeInsertedRow: -1,\n        maybeInsertedLineStart: \"\",\n        maybeInsertedLineEnd: \"\"\n    };\n};\n\nvar getWrapped = function(selection, selected, opening, closing) {\n    var rowDiff = selection.end.row - selection.start.row;\n    return {\n        text: opening + selected + closing,\n        selection: [\n                0,\n                selection.start.column + 1,\n                rowDiff,\n                selection.end.column + (rowDiff ? 0 : 1)\n            ]\n    };\n};\n\nvar CstyleBehaviour = function() {\n    this.add(\"braces\", \"insertion\", function(state, action, editor, session, text) {\n        var cursor = editor.getCursorPosition();\n        var line = session.doc.getLine(cursor.row);\n        if (text == '{') {\n            initContext(editor);\n            var selection = editor.getSelectionRange();\n            var selected = session.doc.getTextRange(selection);\n            if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n                return getWrapped(selection, selected, '{', '}');\n            } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n                if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode) {\n                    CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n                    return {\n                        text: '{}',\n                        selection: [1, 1]\n                    };\n                } else {\n                    CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n                    return {\n                        text: '{',\n                        selection: [1, 1]\n                    };\n                }\n            }\n        } else if (text == '}') {\n            initContext(editor);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar == '}') {\n                var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});\n                if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n                    CstyleBehaviour.popAutoInsertedClosing();\n                    return {\n                        text: '',\n                        selection: [1, 1]\n                    };\n                }\n            }\n        } else if (text == \"\\n\" || text == \"\\r\\n\") {\n            initContext(editor);\n            var closing = \"\";\n            if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n                closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n                CstyleBehaviour.clearMaybeInsertedClosing();\n            }\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar === '}') {\n                var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column+1}, '}');\n                if (!openBracePos)\n                     return null;\n                var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n            } else if (closing) {\n                var next_indent = this.$getIndent(line);\n            } else {\n                CstyleBehaviour.clearMaybeInsertedClosing();\n                return;\n            }\n            var indent = next_indent + session.getTabString();\n\n            return {\n                text: '\\n' + indent + '\\n' + next_indent + closing,\n                selection: [1, indent.length, 1, indent.length]\n            };\n        } else {\n            CstyleBehaviour.clearMaybeInsertedClosing();\n        }\n    });\n\n    this.add(\"braces\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && selected == '{') {\n            initContext(editor);\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.end.column, range.end.column + 1);\n            if (rightChar == '}') {\n                range.end.column++;\n                return range;\n            } else {\n                context.maybeInsertedBrackets--;\n            }\n        }\n    });\n\n    this.add(\"parens\", \"insertion\", function(state, action, editor, session, text) {\n        if (text == '(') {\n            initContext(editor);\n            var selection = editor.getSelectionRange();\n            var selected = session.doc.getTextRange(selection);\n            if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n                return getWrapped(selection, selected, '(', ')');\n            } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n                CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n                return {\n                    text: '()',\n                    selection: [1, 1]\n                };\n            }\n        } else if (text == ')') {\n            initContext(editor);\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar == ')') {\n                var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row});\n                if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n                    CstyleBehaviour.popAutoInsertedClosing();\n                    return {\n                        text: '',\n                        selection: [1, 1]\n                    };\n                }\n            }\n        }\n    });\n\n    this.add(\"parens\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && selected == '(') {\n            initContext(editor);\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == ')') {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n\n    this.add(\"brackets\", \"insertion\", function(state, action, editor, session, text) {\n        if (text == '[') {\n            initContext(editor);\n            var selection = editor.getSelectionRange();\n            var selected = session.doc.getTextRange(selection);\n            if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n                return getWrapped(selection, selected, '[', ']');\n            } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n                CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n                return {\n                    text: '[]',\n                    selection: [1, 1]\n                };\n            }\n        } else if (text == ']') {\n            initContext(editor);\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar == ']') {\n                var matching = session.$findOpeningBracket(']', {column: cursor.column + 1, row: cursor.row});\n                if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n                    CstyleBehaviour.popAutoInsertedClosing();\n                    return {\n                        text: '',\n                        selection: [1, 1]\n                    };\n                }\n            }\n        }\n    });\n\n    this.add(\"brackets\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && selected == '[') {\n            initContext(editor);\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == ']') {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n\n    this.add(\"string_dquotes\", \"insertion\", function(state, action, editor, session, text) {\n        if (text == '\"' || text == \"'\") {\n            if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1) \n                return;\n            initContext(editor);\n            var quote = text;\n            var selection = editor.getSelectionRange();\n            var selected = session.doc.getTextRange(selection);\n            if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n                return getWrapped(selection, selected, quote, quote);\n            } else if (!selected) {\n                var cursor = editor.getCursorPosition();\n                var line = session.doc.getLine(cursor.row);\n                var leftChar = line.substring(cursor.column-1, cursor.column);\n                var rightChar = line.substring(cursor.column, cursor.column + 1);\n                \n                var token = session.getTokenAt(cursor.row, cursor.column);\n                var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n                if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n                    return null;\n                \n                var stringBefore = token && /string|escape/.test(token.type);\n                var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n                \n                var pair;\n                if (rightChar == quote) {\n                    pair = stringBefore !== stringAfter;\n                    if (pair && /string\\.end/.test(rightToken.type))\n                        pair = false;\n                } else {\n                    if (stringBefore && !stringAfter)\n                        return null; // wrap string with different quote\n                    if (stringBefore && stringAfter)\n                        return null; // do not pair quotes inside strings\n                    var wordRe = session.$mode.tokenRe;\n                    wordRe.lastIndex = 0;\n                    var isWordBefore = wordRe.test(leftChar);\n                    wordRe.lastIndex = 0;\n                    var isWordAfter = wordRe.test(leftChar);\n                    if (isWordBefore || isWordAfter)\n                        return null; // before or after alphanumeric\n                    if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n                        return null; // there is rightChar and it isn't closing\n                    pair = true;\n                }\n                return {\n                    text: pair ? quote + quote : \"\",\n                    selection: [1,1]\n                };\n            }\n        }\n    });\n\n    this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n            initContext(editor);\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == selected) {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n\n};\n\n    \nCstyleBehaviour.isSaneInsertion = function(editor, session) {\n    var cursor = editor.getCursorPosition();\n    var iterator = new TokenIterator(session, cursor.row, cursor.column);\n    if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n        var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n        if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n            return false;\n    }\n    iterator.stepForward();\n    return iterator.getCurrentTokenRow() !== cursor.row ||\n        this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\n\nCstyleBehaviour.$matchTokenType = function(token, types) {\n    return types.indexOf(token.type || token) > -1;\n};\n\nCstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {\n    var cursor = editor.getCursorPosition();\n    var line = session.doc.getLine(cursor.row);\n    if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n        context.autoInsertedBrackets = 0;\n    context.autoInsertedRow = cursor.row;\n    context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n    context.autoInsertedBrackets++;\n};\n\nCstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {\n    var cursor = editor.getCursorPosition();\n    var line = session.doc.getLine(cursor.row);\n    if (!this.isMaybeInsertedClosing(cursor, line))\n        context.maybeInsertedBrackets = 0;\n    context.maybeInsertedRow = cursor.row;\n    context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n    context.maybeInsertedLineEnd = line.substr(cursor.column);\n    context.maybeInsertedBrackets++;\n};\n\nCstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {\n    return context.autoInsertedBrackets > 0 &&\n        cursor.row === context.autoInsertedRow &&\n        bracket === context.autoInsertedLineEnd[0] &&\n        line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\n\nCstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {\n    return context.maybeInsertedBrackets > 0 &&\n        cursor.row === context.maybeInsertedRow &&\n        line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n        line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\n\nCstyleBehaviour.popAutoInsertedClosing = function() {\n    context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n    context.autoInsertedBrackets--;\n};\n\nCstyleBehaviour.clearMaybeInsertedClosing = function() {\n    if (context) {\n        context.maybeInsertedBrackets = 0;\n        context.maybeInsertedRow = -1;\n    }\n};\n\n\n\noop.inherits(CstyleBehaviour, Behaviour);\n\nexports.CstyleBehaviour = CstyleBehaviour;\n});\n\nace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\nexports.packages = {};\n\naddUnicodePackage({\n    L:  \"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",\n    Ll: \"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A\",\n    Lu: \"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A\",\n    Lt: \"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC\",\n    Lm: \"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F\",\n    Lo: \"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",\n    M:  \"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26\",\n    Mn: \"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26\",\n    Mc: \"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC\",\n    Me: \"0488048906DE20DD-20E020E2-20E4A670-A672\",\n    N:  \"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",\n    Nd: \"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",\n    Nl: \"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF\",\n    No: \"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835\",\n    P:  \"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65\",\n    Pd: \"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D\",\n    Ps: \"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62\",\n    Pe: \"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63\",\n    Pi: \"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20\",\n    Pf: \"00BB2019201D203A2E032E052E0A2E0D2E1D2E21\",\n    Pc: \"005F203F20402054FE33FE34FE4D-FE4FFF3F\",\n    Po: \"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65\",\n    S:  \"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD\",\n    Sm: \"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC\",\n    Sc: \"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6\",\n    Sk: \"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3\",\n    So: \"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD\",\n    Z:  \"002000A01680180E2000-200A20282029202F205F3000\",\n    Zs: \"002000A01680180E2000-200A202F205F3000\",\n    Zl: \"2028\",\n    Zp: \"2029\",\n    C:  \"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF\",\n    Cc: \"0000-001F007F-009F\",\n    Cf: \"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB\",\n    Co: \"E000-F8FF\",\n    Cs: \"D800-DFFF\",\n    Cn: \"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF\"\n});\n\nfunction addUnicodePackage (pack) {\n    var codePoint = /\\w{4}/g;\n    for (var name in pack)\n        exports.packages[name] = pack[name].replace(codePoint, \"\\\\u$&\");\n}\n\n});\n\nace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Tokenizer = require(\"../tokenizer\").Tokenizer;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar unicode = require(\"../unicode\");\nvar lang = require(\"../lib/lang\");\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\n\nvar Mode = function() {\n    this.HighlightRules = TextHighlightRules;\n};\n\n(function() {\n    this.$defaultBehaviour = new CstyleBehaviour();\n\n    this.tokenRe = new RegExp(\"^[\"\n        + unicode.packages.L\n        + unicode.packages.Mn + unicode.packages.Mc\n        + unicode.packages.Nd\n        + unicode.packages.Pc + \"\\\\$_]+\", \"g\"\n    );\n\n    this.nonTokenRe = new RegExp(\"^(?:[^\"\n        + unicode.packages.L\n        + unicode.packages.Mn + unicode.packages.Mc\n        + unicode.packages.Nd\n        + unicode.packages.Pc + \"\\\\$_]|\\\\s])+\", \"g\"\n    );\n\n    this.getTokenizer = function() {\n        if (!this.$tokenizer) {\n            this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig);\n            this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n        }\n        return this.$tokenizer;\n    };\n\n    this.lineCommentStart = \"\";\n    this.blockComment = \"\";\n\n    this.toggleCommentLines = function(state, session, startRow, endRow) {\n        var doc = session.doc;\n\n        var ignoreBlankLines = true;\n        var shouldRemove = true;\n        var minIndent = Infinity;\n        var tabSize = session.getTabSize();\n        var insertAtTabStop = false;\n\n        if (!this.lineCommentStart) {\n            if (!this.blockComment)\n                return false;\n            var lineCommentStart = this.blockComment.start;\n            var lineCommentEnd = this.blockComment.end;\n            var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n            var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n\n            var comment = function(line, i) {\n                if (testRemove(line, i))\n                    return;\n                if (!ignoreBlankLines || /\\S/.test(line)) {\n                    doc.insertInLine({row: i, column: line.length}, lineCommentEnd);\n                    doc.insertInLine({row: i, column: minIndent}, lineCommentStart);\n                }\n            };\n\n            var uncomment = function(line, i) {\n                var m;\n                if (m = line.match(regexpEnd))\n                    doc.removeInLine(i, line.length - m[0].length, line.length);\n                if (m = line.match(regexpStart))\n                    doc.removeInLine(i, m[1].length, m[0].length);\n            };\n\n            var testRemove = function(line, row) {\n                if (regexpStart.test(line))\n                    return true;\n                var tokens = session.getTokens(row);\n                for (var i = 0; i < tokens.length; i++) {\n                    if (tokens[i].type === \"comment\")\n                        return true;\n                }\n            };\n        } else {\n            if (Array.isArray(this.lineCommentStart)) {\n                var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n                var lineCommentStart = this.lineCommentStart[0];\n            } else {\n                var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n                var lineCommentStart = this.lineCommentStart;\n            }\n            regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n            \n            insertAtTabStop = session.getUseSoftTabs();\n\n            var uncomment = function(line, i) {\n                var m = line.match(regexpStart);\n                if (!m) return;\n                var start = m[1].length, end = m[0].length;\n                if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n                    end--;\n                doc.removeInLine(i, start, end);\n            };\n            var commentWithSpace = lineCommentStart + \" \";\n            var comment = function(line, i) {\n                if (!ignoreBlankLines || /\\S/.test(line)) {\n                    if (shouldInsertSpace(line, minIndent, minIndent))\n                        doc.insertInLine({row: i, column: minIndent}, commentWithSpace);\n                    else\n                        doc.insertInLine({row: i, column: minIndent}, lineCommentStart);\n                }\n            };\n            var testRemove = function(line, i) {\n                return regexpStart.test(line);\n            };\n            \n            var shouldInsertSpace = function(line, before, after) {\n                var spaces = 0;\n                while (before-- && line.charAt(before) == \" \")\n                    spaces++;\n                if (spaces % tabSize != 0)\n                    return false;\n                var spaces = 0;\n                while (line.charAt(after++) == \" \")\n                    spaces++;\n                if (tabSize > 2)\n                    return spaces % tabSize != tabSize - 1;\n                else\n                    return spaces % tabSize == 0;\n                return true;\n            };\n        }\n\n        function iter(fun) {\n            for (var i = startRow; i <= endRow; i++)\n                fun(doc.getLine(i), i);\n        }\n\n\n        var minEmptyLength = Infinity;\n        iter(function(line, i) {\n            var indent = line.search(/\\S/);\n            if (indent !== -1) {\n                if (indent < minIndent)\n                    minIndent = indent;\n                if (shouldRemove && !testRemove(line, i))\n                    shouldRemove = false;\n            } else if (minEmptyLength > line.length) {\n                minEmptyLength = line.length;\n            }\n        });\n\n        if (minIndent == Infinity) {\n            minIndent = minEmptyLength;\n            ignoreBlankLines = false;\n            shouldRemove = false;\n        }\n\n        if (insertAtTabStop && minIndent % tabSize != 0)\n            minIndent = Math.floor(minIndent / tabSize) * tabSize;\n\n        iter(shouldRemove ? uncomment : comment);\n    };\n\n    this.toggleBlockComment = function(state, session, range, cursor) {\n        var comment = this.blockComment;\n        if (!comment)\n            return;\n        if (!comment.start && comment[0])\n            comment = comment[0];\n\n        var iterator = new TokenIterator(session, cursor.row, cursor.column);\n        var token = iterator.getCurrentToken();\n\n        var sel = session.selection;\n        var initialRange = session.selection.toOrientedRange();\n        var startRow, colDiff;\n\n        if (token && /comment/.test(token.type)) {\n            var startRange, endRange;\n            while (token && /comment/.test(token.type)) {\n                var i = token.value.indexOf(comment.start);\n                if (i != -1) {\n                    var row = iterator.getCurrentTokenRow();\n                    var column = iterator.getCurrentTokenColumn() + i;\n                    startRange = new Range(row, column, row, column + comment.start.length);\n                    break;\n                }\n                token = iterator.stepBackward();\n            }\n\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            while (token && /comment/.test(token.type)) {\n                var i = token.value.indexOf(comment.end);\n                if (i != -1) {\n                    var row = iterator.getCurrentTokenRow();\n                    var column = iterator.getCurrentTokenColumn() + i;\n                    endRange = new Range(row, column, row, column + comment.end.length);\n                    break;\n                }\n                token = iterator.stepForward();\n            }\n            if (endRange)\n                session.remove(endRange);\n            if (startRange) {\n                session.remove(startRange);\n                startRow = startRange.start.row;\n                colDiff = -comment.start.length;\n            }\n        } else {\n            colDiff = comment.start.length;\n            startRow = range.start.row;\n            session.insert(range.end, comment.end);\n            session.insert(range.start, comment.start);\n        }\n        if (initialRange.start.row == startRow)\n            initialRange.start.column += colDiff;\n        if (initialRange.end.row == startRow)\n            initialRange.end.column += colDiff;\n        session.selection.fromOrientedRange(initialRange);\n    };\n\n    this.getNextLineIndent = function(state, line, tab) {\n        return this.$getIndent(line);\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return false;\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n    this.createWorker = function(session) {\n        return null;\n    };\n\n    this.createModeDelegates = function (mapping) {\n        this.$embeds = [];\n        this.$modes = {};\n        for (var i in mapping) {\n            if (mapping[i]) {\n                this.$embeds.push(i);\n                this.$modes[i] = new mapping[i]();\n            }\n        }\n\n        var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\", \n            \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n\n        for (var i = 0; i < delegations.length; i++) {\n            (function(scope) {\n              var functionName = delegations[i];\n              var defaultHandler = scope[functionName];\n              scope[delegations[i]] = function() {\n                  return this.$delegator(functionName, arguments, defaultHandler);\n              };\n            }(this));\n        }\n    };\n\n    this.$delegator = function(method, args, defaultHandler) {\n        var state = args[0];\n        if (typeof state != \"string\")\n            state = state[0];\n        for (var i = 0; i < this.$embeds.length; i++) {\n            if (!this.$modes[this.$embeds[i]]) continue;\n\n            var split = state.split(this.$embeds[i]);\n            if (!split[0] && split[1]) {\n                args[0] = split[1];\n                var mode = this.$modes[this.$embeds[i]];\n                return mode[method].apply(mode, args);\n            }\n        }\n        var ret = defaultHandler.apply(this, args);\n        return defaultHandler ? ret : undefined;\n    };\n\n    this.transformAction = function(state, action, editor, session, param) {\n        if (this.$behaviour) {\n            var behaviours = this.$behaviour.getBehaviours();\n            for (var key in behaviours) {\n                if (behaviours[key][action]) {\n                    var ret = behaviours[key][action].apply(this, arguments);\n                    if (ret) {\n                        return ret;\n                    }\n                }\n            }\n        }\n    };\n    \n    this.getKeywords = function(append) {\n        if (!this.completionKeywords) {\n            var rules = this.$tokenizer.rules;\n            var completionKeywords = [];\n            for (var rule in rules) {\n                var ruleItr = rules[rule];\n                for (var r = 0, l = ruleItr.length; r < l; r++) {\n                    if (typeof ruleItr[r].token === \"string\") {\n                        if (/keyword|support|storage/.test(ruleItr[r].token))\n                            completionKeywords.push(ruleItr[r].regex);\n                    }\n                    else if (typeof ruleItr[r].token === \"object\") {\n                        for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) {    \n                            if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n                                var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n                                completionKeywords.push(rule.substr(1, rule.length - 2));\n                            }\n                        }\n                    }\n                }\n            }\n            this.completionKeywords = completionKeywords;\n        }\n        if (!append)\n            return this.$keywordList;\n        return completionKeywords.concat(this.$keywordList || []);\n    };\n    \n    this.$createKeywordList = function() {\n        if (!this.$highlightRules)\n            this.getTokenizer();\n        return this.$keywordList = this.$highlightRules.$keywordList || [];\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        var keywords = this.$keywordList || this.$createKeywordList();\n        return keywords.map(function(word) {\n            return {\n                name: word,\n                value: word,\n                score: 0,\n                meta: \"keyword\"\n            };\n        });\n    };\n\n    this.$id = \"ace/mode/text\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nfunction throwDeltaError(delta, errorText){\n    console.log(\"Invalid Delta:\", delta);\n    throw \"Invalid Delta: \" + errorText;\n}\n\nfunction positionInDocument(docLines, position) {\n    return position.row    >= 0 && position.row    <  docLines.length &&\n           position.column >= 0 && position.column <= docLines[position.row].length;\n}\n\nfunction validateDelta(docLines, delta) {\n    if (delta.action != \"insert\" && delta.action != \"remove\")\n        throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n    if (!(delta.lines instanceof Array))\n        throwDeltaError(delta, \"delta.lines must be an Array\");\n    if (!delta.start || !delta.end)\n       throwDeltaError(delta, \"delta.start/end must be an present\");\n    var start = delta.start;\n    if (!positionInDocument(docLines, delta.start))\n        throwDeltaError(delta, \"delta.start must be contained in document\");\n    var end = delta.end;\n    if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n        throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n    var numRangeRows = end.row - start.row;\n    var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n    if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n        throwDeltaError(delta, \"delta.range must match delta lines\");\n}\n\nexports.applyDelta = function(docLines, delta, doNotValidate) {\n    \n    var row = delta.start.row;\n    var startColumn = delta.start.column;\n    var line = docLines[row] || \"\";\n    switch (delta.action) {\n        case \"insert\":\n            var lines = delta.lines;\n            if (lines.length === 1) {\n                docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n            } else {\n                var args = [row, 1].concat(delta.lines);\n                docLines.splice.apply(docLines, args);\n                docLines[row] = line.substring(0, startColumn) + docLines[row];\n                docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n            }\n            break;\n        case \"remove\":\n            var endColumn = delta.end.column;\n            var endRow = delta.end.row;\n            if (row === endRow) {\n                docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n            } else {\n                docLines.splice(\n                    row, endRow - row + 1,\n                    line.substring(0, startColumn) + docLines[endRow].substring(endColumn)\n                );\n            }\n            break;\n    }\n}\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\n\nvar Anchor = exports.Anchor = function(doc, row, column) {\n    this.$onChange = this.onChange.bind(this);\n    this.attach(doc);\n    \n    if (typeof column == \"undefined\")\n        this.setPosition(row.row, row.column);\n    else\n        this.setPosition(row, column);\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n    this.getPosition = function() {\n        return this.$clipPositionToDocument(this.row, this.column);\n    };\n    this.getDocument = function() {\n        return this.document;\n    };\n    this.$insertRight = false;\n    this.onChange = function(delta) {\n        if (delta.start.row == delta.end.row && delta.start.row != this.row)\n            return;\n\n        if (delta.start.row > this.row)\n            return;\n            \n        var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight);\n        this.setPosition(point.row, point.column, true);\n    };\n    \n    function $pointsInOrder(point1, point2, equalPointsInOrder) {\n        var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n        return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n    }\n            \n    function $getTransformedPoint(delta, point, moveIfEqual) {\n        var deltaIsInsert = delta.action == \"insert\";\n        var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row    - delta.start.row);\n        var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n        var deltaStart = delta.start;\n        var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n        if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n            return {\n                row: point.row,\n                column: point.column\n            };\n        }\n        if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n            return {\n                row: point.row + deltaRowShift,\n                column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n            };\n        }\n        \n        return {\n            row: deltaStart.row,\n            column: deltaStart.column\n        };\n    }\n    this.setPosition = function(row, column, noClip) {\n        var pos;\n        if (noClip) {\n            pos = {\n                row: row,\n                column: column\n            };\n        } else {\n            pos = this.$clipPositionToDocument(row, column);\n        }\n\n        if (this.row == pos.row && this.column == pos.column)\n            return;\n\n        var old = {\n            row: this.row,\n            column: this.column\n        };\n\n        this.row = pos.row;\n        this.column = pos.column;\n        this._signal(\"change\", {\n            old: old,\n            value: pos\n        });\n    };\n    this.detach = function() {\n        this.document.removeEventListener(\"change\", this.$onChange);\n    };\n    this.attach = function(doc) {\n        this.document = doc || this.document;\n        this.document.on(\"change\", this.$onChange);\n    };\n    this.$clipPositionToDocument = function(row, column) {\n        var pos = {};\n\n        if (row >= this.document.getLength()) {\n            pos.row = Math.max(0, this.document.getLength() - 1);\n            pos.column = this.document.getLine(pos.row).length;\n        }\n        else if (row < 0) {\n            pos.row = 0;\n            pos.column = 0;\n        }\n        else {\n            pos.row = row;\n            pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n        }\n\n        if (column < 0)\n            pos.column = 0;\n\n        return pos;\n    };\n\n}).call(Anchor.prototype);\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar applyDelta = require(\"./apply_delta\").applyDelta;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\n\nvar Document = function(textOrLines) {\n    this.$lines = [\"\"];\n    if (textOrLines.length === 0) {\n        this.$lines = [\"\"];\n    } else if (Array.isArray(textOrLines)) {\n        this.insertMergedLines({row: 0, column: 0}, textOrLines);\n    } else {\n        this.insert({row: 0, column:0}, textOrLines);\n    }\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n    this.setValue = function(text) {\n        var len = this.getLength() - 1;\n        this.remove(new Range(0, 0, len, this.getLine(len).length));\n        this.insert({row: 0, column: 0}, text);\n    };\n    this.getValue = function() {\n        return this.getAllLines().join(this.getNewLineCharacter());\n    };\n    this.createAnchor = function(row, column) {\n        return new Anchor(this, row, column);\n    };\n    if (\"aaa\".split(/a/).length === 0) {\n        this.$split = function(text) {\n            return text.replace(/\\r\\n|\\r/g, \"\\n\").split(\"\\n\");\n        };\n    } else {\n        this.$split = function(text) {\n            return text.split(/\\r\\n|\\r|\\n/);\n        };\n    }\n\n\n    this.$detectNewLine = function(text) {\n        var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n        this.$autoNewLine = match ? match[1] : \"\\n\";\n        this._signal(\"changeNewLineMode\");\n    };\n    this.getNewLineCharacter = function() {\n        switch (this.$newLineMode) {\n          case \"windows\":\n            return \"\\r\\n\";\n          case \"unix\":\n            return \"\\n\";\n          default:\n            return this.$autoNewLine || \"\\n\";\n        }\n    };\n\n    this.$autoNewLine = \"\";\n    this.$newLineMode = \"auto\";\n    this.setNewLineMode = function(newLineMode) {\n        if (this.$newLineMode === newLineMode)\n            return;\n\n        this.$newLineMode = newLineMode;\n        this._signal(\"changeNewLineMode\");\n    };\n    this.getNewLineMode = function() {\n        return this.$newLineMode;\n    };\n    this.isNewLine = function(text) {\n        return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n    };\n    this.getLine = function(row) {\n        return this.$lines[row] || \"\";\n    };\n    this.getLines = function(firstRow, lastRow) {\n        return this.$lines.slice(firstRow, lastRow + 1);\n    };\n    this.getAllLines = function() {\n        return this.getLines(0, this.getLength());\n    };\n    this.getLength = function() {\n        return this.$lines.length;\n    };\n    this.getTextRange = function(range) {\n        return this.getLinesForRange(range).join(this.getNewLineCharacter());\n    };\n    this.getLinesForRange = function(range) {\n        var lines;\n        if (range.start.row === range.end.row) {\n            lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n        } else {\n            lines = this.getLines(range.start.row, range.end.row);\n            lines[0] = (lines[0] || \"\").substring(range.start.column);\n            var l = lines.length - 1;\n            if (range.end.row - range.start.row == l)\n                lines[l] = lines[l].substring(0, range.end.column);\n        }\n        return lines;\n    };\n    this.insertLines = function(row, lines) {\n        console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n        return this.insertFullLines(row, lines);\n    };\n    this.removeLines = function(firstRow, lastRow) {\n        console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n        return this.removeFullLines(firstRow, lastRow);\n    };\n    this.insertNewLine = function(position) {\n        console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n        return this.insertMergedLines(position, [\"\", \"\"]);\n    };\n    this.insert = function(position, text) {\n        if (this.getLength() <= 1)\n            this.$detectNewLine(text);\n        \n        return this.insertMergedLines(position, this.$split(text));\n    };\n    this.insertInLine = function(position, text) {\n        var start = this.clippedPos(position.row, position.column);\n        var end = this.pos(position.row, position.column + text.length);\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"insert\",\n            lines: [text]\n        }, true);\n        \n        return this.clonePos(end);\n    };\n    \n    this.clippedPos = function(row, column) {\n        var length = this.getLength();\n        if (row === undefined) {\n            row = length;\n        } else if (row < 0) {\n            row = 0;\n        } else if (row >= length) {\n            row = length - 1;\n            column = undefined;\n        }\n        var line = this.getLine(row);\n        if (column == undefined)\n            column = line.length;\n        column = Math.min(Math.max(column, 0), line.length);\n        return {row: row, column: column};\n    };\n    \n    this.clonePos = function(pos) {\n        return {row: pos.row, column: pos.column};\n    };\n    \n    this.pos = function(row, column) {\n        return {row: row, column: column};\n    };\n    \n    this.$clipPosition = function(position) {\n        var length = this.getLength();\n        if (position.row >= length) {\n            position.row = Math.max(0, length - 1);\n            position.column = this.getLine(length - 1).length;\n        } else {\n            position.row = Math.max(0, position.row);\n            position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n        }\n        return position;\n    };\n    this.insertFullLines = function(row, lines) {\n        row = Math.min(Math.max(row, 0), this.getLength());\n        var column = 0;\n        if (row < this.getLength()) {\n            lines = lines.concat([\"\"]);\n            column = 0;\n        } else {\n            lines = [\"\"].concat(lines);\n            row--;\n            column = this.$lines[row].length;\n        }\n        this.insertMergedLines({row: row, column: column}, lines);\n    };    \n    this.insertMergedLines = function(position, lines) {\n        var start = this.clippedPos(position.row, position.column);\n        var end = {\n            row: start.row + lines.length - 1,\n            column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n        };\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"insert\",\n            lines: lines\n        });\n        \n        return this.clonePos(end);\n    };\n    this.remove = function(range) {\n        var start = this.clippedPos(range.start.row, range.start.column);\n        var end = this.clippedPos(range.end.row, range.end.column);\n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"remove\",\n            lines: this.getLinesForRange({start: start, end: end})\n        });\n        return this.clonePos(start);\n    };\n    this.removeInLine = function(row, startColumn, endColumn) {\n        var start = this.clippedPos(row, startColumn);\n        var end = this.clippedPos(row, endColumn);\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"remove\",\n            lines: this.getLinesForRange({start: start, end: end})\n        }, true);\n        \n        return this.clonePos(start);\n    };\n    this.removeFullLines = function(firstRow, lastRow) {\n        firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n        lastRow  = Math.min(Math.max(0, lastRow ), this.getLength() - 1);\n        var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n        var deleteLastNewLine  = lastRow  < this.getLength() - 1;\n        var startRow = ( deleteFirstNewLine ? firstRow - 1                  : firstRow                    );\n        var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0                           );\n        var endRow   = ( deleteLastNewLine  ? lastRow + 1                   : lastRow                     );\n        var endCol   = ( deleteLastNewLine  ? 0                             : this.getLine(endRow).length ); \n        var range = new Range(startRow, startCol, endRow, endCol);\n        var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n        \n        this.applyDelta({\n            start: range.start,\n            end: range.end,\n            action: \"remove\",\n            lines: this.getLinesForRange(range)\n        });\n        return deletedLines;\n    };\n    this.removeNewLine = function(row) {\n        if (row < this.getLength() - 1 && row >= 0) {\n            this.applyDelta({\n                start: this.pos(row, this.getLine(row).length),\n                end: this.pos(row + 1, 0),\n                action: \"remove\",\n                lines: [\"\", \"\"]\n            });\n        }\n    };\n    this.replace = function(range, text) {\n        if (!(range instanceof Range))\n            range = Range.fromPoints(range.start, range.end);\n        if (text.length === 0 && range.isEmpty())\n            return range.start;\n        if (text == this.getTextRange(range))\n            return range.end;\n\n        this.remove(range);\n        var end;\n        if (text) {\n            end = this.insert(range.start, text);\n        }\n        else {\n            end = range.start;\n        }\n        \n        return end;\n    };\n    this.applyDeltas = function(deltas) {\n        for (var i=0; i<deltas.length; i++) {\n            this.applyDelta(deltas[i]);\n        }\n    };\n    this.revertDeltas = function(deltas) {\n        for (var i=deltas.length-1; i>=0; i--) {\n            this.revertDelta(deltas[i]);\n        }\n    };\n    this.applyDelta = function(delta, doNotValidate) {\n        var isInsert = delta.action == \"insert\";\n        if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n            : !Range.comparePoints(delta.start, delta.end)) {\n            return;\n        }\n        \n        if (isInsert && delta.lines.length > 20000)\n            this.$splitAndapplyLargeDelta(delta, 20000);\n        applyDelta(this.$lines, delta, doNotValidate);\n        this._signal(\"change\", delta);\n    };\n    \n    this.$splitAndapplyLargeDelta = function(delta, MAX) {\n        var lines = delta.lines;\n        var l = lines.length;\n        var row = delta.start.row; \n        var column = delta.start.column;\n        var from = 0, to = 0;\n        do {\n            from = to;\n            to += MAX - 1;\n            var chunk = lines.slice(from, to);\n            if (to > l) {\n                delta.lines = chunk;\n                delta.start.row = row + from;\n                delta.start.column = column;\n                break;\n            }\n            chunk.push(\"\");\n            this.applyDelta({\n                start: this.pos(row + from, column),\n                end: this.pos(row + to, column = 0),\n                action: delta.action,\n                lines: chunk\n            }, true);\n        } while(true);\n    };\n    this.revertDelta = function(delta) {\n        this.applyDelta({\n            start: this.clonePos(delta.start),\n            end: this.clonePos(delta.end),\n            action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n            lines: delta.lines.slice()\n        });\n    };\n    this.indexToPosition = function(index, startRow) {\n        var lines = this.$lines || this.getAllLines();\n        var newlineLength = this.getNewLineCharacter().length;\n        for (var i = startRow || 0, l = lines.length; i < l; i++) {\n            index -= lines[i].length + newlineLength;\n            if (index < 0)\n                return {row: i, column: index + lines[i].length + newlineLength};\n        }\n        return {row: l-1, column: lines[l-1].length};\n    };\n    this.positionToIndex = function(pos, startRow) {\n        var lines = this.$lines || this.getAllLines();\n        var newlineLength = this.getNewLineCharacter().length;\n        var index = 0;\n        var row = Math.min(pos.row, lines.length);\n        for (var i = startRow || 0; i < row; ++i)\n            index += lines[i].length + newlineLength;\n\n        return index + pos.column;\n    };\n\n}).call(Document.prototype);\n\nexports.Document = Document;\n});\n\nace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\n\nvar BackgroundTokenizer = function(tokenizer, editor) {\n    this.running = false;\n    this.lines = [];\n    this.states = [];\n    this.currentLine = 0;\n    this.tokenizer = tokenizer;\n\n    var self = this;\n\n    this.$worker = function() {\n        if (!self.running) { return; }\n\n        var workerStart = new Date();\n        var currentLine = self.currentLine;\n        var endLine = -1;\n        var doc = self.doc;\n\n        var startLine = currentLine;\n        while (self.lines[currentLine])\n            currentLine++;\n        \n        var len = doc.getLength();\n        var processedLines = 0;\n        self.running = false;\n        while (currentLine < len) {\n            self.$tokenizeRow(currentLine);\n            endLine = currentLine;\n            do {\n                currentLine++;\n            } while (self.lines[currentLine]);\n            processedLines ++;\n            if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) {                \n                self.running = setTimeout(self.$worker, 20);\n                break;\n            }\n        }\n        self.currentLine = currentLine;\n        \n        if (startLine <= endLine)\n            self.fireUpdateEvent(startLine, endLine);\n    };\n};\n\n(function(){\n\n    oop.implement(this, EventEmitter);\n    this.setTokenizer = function(tokenizer) {\n        this.tokenizer = tokenizer;\n        this.lines = [];\n        this.states = [];\n\n        this.start(0);\n    };\n    this.setDocument = function(doc) {\n        this.doc = doc;\n        this.lines = [];\n        this.states = [];\n\n        this.stop();\n    };\n    this.fireUpdateEvent = function(firstRow, lastRow) {\n        var data = {\n            first: firstRow,\n            last: lastRow\n        };\n        this._signal(\"update\", {data: data});\n    };\n    this.start = function(startRow) {\n        this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n        this.lines.splice(this.currentLine, this.lines.length);\n        this.states.splice(this.currentLine, this.states.length);\n\n        this.stop();\n        this.running = setTimeout(this.$worker, 700);\n    };\n    \n    this.scheduleStart = function() {\n        if (!this.running)\n            this.running = setTimeout(this.$worker, 700);\n    }\n\n    this.$updateOnChange = function(delta) {\n        var startRow = delta.start.row;\n        var len = delta.end.row - startRow;\n\n        if (len === 0) {\n            this.lines[startRow] = null;\n        } else if (delta.action == \"remove\") {\n            this.lines.splice(startRow, len + 1, null);\n            this.states.splice(startRow, len + 1, null);\n        } else {\n            var args = Array(len + 1);\n            args.unshift(startRow, 1);\n            this.lines.splice.apply(this.lines, args);\n            this.states.splice.apply(this.states, args);\n        }\n\n        this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n\n        this.stop();\n    };\n    this.stop = function() {\n        if (this.running)\n            clearTimeout(this.running);\n        this.running = false;\n    };\n    this.getTokens = function(row) {\n        return this.lines[row] || this.$tokenizeRow(row);\n    };\n    this.getState = function(row) {\n        if (this.currentLine == row)\n            this.$tokenizeRow(row);\n        return this.states[row] || \"start\";\n    };\n\n    this.$tokenizeRow = function(row) {\n        var line = this.doc.getLine(row);\n        var state = this.states[row - 1];\n\n        var data = this.tokenizer.getLineTokens(line, state, row);\n\n        if (this.states[row] + \"\" !== data.state + \"\") {\n            this.states[row] = data.state;\n            this.lines[row + 1] = null;\n            if (this.currentLine > row + 1)\n                this.currentLine = row + 1;\n        } else if (this.currentLine == row) {\n            this.currentLine = row + 1;\n        }\n\n        return this.lines[row] = data.tokens;\n    };\n\n}).call(BackgroundTokenizer.prototype);\n\nexports.BackgroundTokenizer = BackgroundTokenizer;\n});\n\nace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar lang = require(\"./lib/lang\");\nvar oop = require(\"./lib/oop\");\nvar Range = require(\"./range\").Range;\n\nvar SearchHighlight = function(regExp, clazz, type) {\n    this.setRegexp(regExp);\n    this.clazz = clazz;\n    this.type = type || \"text\";\n};\n\n(function() {\n    this.MAX_RANGES = 500;\n    \n    this.setRegexp = function(regExp) {\n        if (this.regExp+\"\" == regExp+\"\")\n            return;\n        this.regExp = regExp;\n        this.cache = [];\n    };\n\n    this.update = function(html, markerLayer, session, config) {\n        if (!this.regExp)\n            return;\n        var start = config.firstRow, end = config.lastRow;\n\n        for (var i = start; i <= end; i++) {\n            var ranges = this.cache[i];\n            if (ranges == null) {\n                ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n                if (ranges.length > this.MAX_RANGES)\n                    ranges = ranges.slice(0, this.MAX_RANGES);\n                ranges = ranges.map(function(match) {\n                    return new Range(i, match.offset, i, match.offset + match.length);\n                });\n                this.cache[i] = ranges.length ? ranges : \"\";\n            }\n\n            for (var j = ranges.length; j --; ) {\n                markerLayer.drawSingleLineMarker(\n                    html, ranges[j].toScreenRange(session), this.clazz, config);\n            }\n        }\n    };\n\n}).call(SearchHighlight.prototype);\n\nexports.SearchHighlight = SearchHighlight;\n});\n\nace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\nfunction FoldLine(foldData, folds) {\n    this.foldData = foldData;\n    if (Array.isArray(folds)) {\n        this.folds = folds;\n    } else {\n        folds = this.folds = [ folds ];\n    }\n\n    var last = folds[folds.length - 1];\n    this.range = new Range(folds[0].start.row, folds[0].start.column,\n                           last.end.row, last.end.column);\n    this.start = this.range.start;\n    this.end   = this.range.end;\n\n    this.folds.forEach(function(fold) {\n        fold.setFoldLine(this);\n    }, this);\n}\n\n(function() {\n    this.shiftRow = function(shift) {\n        this.start.row += shift;\n        this.end.row += shift;\n        this.folds.forEach(function(fold) {\n            fold.start.row += shift;\n            fold.end.row += shift;\n        });\n    };\n\n    this.addFold = function(fold) {\n        if (fold.sameRow) {\n            if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n                throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n            }\n            this.folds.push(fold);\n            this.folds.sort(function(a, b) {\n                return -a.range.compareEnd(b.start.row, b.start.column);\n            });\n            if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n                this.end.row = fold.end.row;\n                this.end.column =  fold.end.column;\n            } else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n                this.start.row = fold.start.row;\n                this.start.column = fold.start.column;\n            }\n        } else if (fold.start.row == this.end.row) {\n            this.folds.push(fold);\n            this.end.row = fold.end.row;\n            this.end.column = fold.end.column;\n        } else if (fold.end.row == this.start.row) {\n            this.folds.unshift(fold);\n            this.start.row = fold.start.row;\n            this.start.column = fold.start.column;\n        } else {\n            throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n        }\n        fold.foldLine = this;\n    };\n\n    this.containsRow = function(row) {\n        return row >= this.start.row && row <= this.end.row;\n    };\n\n    this.walk = function(callback, endRow, endColumn) {\n        var lastEnd = 0,\n            folds = this.folds,\n            fold,\n            cmp, stop, isNewRow = true;\n\n        if (endRow == null) {\n            endRow = this.end.row;\n            endColumn = this.end.column;\n        }\n\n        for (var i = 0; i < folds.length; i++) {\n            fold = folds[i];\n\n            cmp = fold.range.compareStart(endRow, endColumn);\n            if (cmp == -1) {\n                callback(null, endRow, endColumn, lastEnd, isNewRow);\n                return;\n            }\n\n            stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n            stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n            if (stop || cmp === 0) {\n                return;\n            }\n            isNewRow = !fold.sameRow;\n            lastEnd = fold.end.column;\n        }\n        callback(null, endRow, endColumn, lastEnd, isNewRow);\n    };\n\n    this.getNextFoldTo = function(row, column) {\n        var fold, cmp;\n        for (var i = 0; i < this.folds.length; i++) {\n            fold = this.folds[i];\n            cmp = fold.range.compareEnd(row, column);\n            if (cmp == -1) {\n                return {\n                    fold: fold,\n                    kind: \"after\"\n                };\n            } else if (cmp === 0) {\n                return {\n                    fold: fold,\n                    kind: \"inside\"\n                };\n            }\n        }\n        return null;\n    };\n\n    this.addRemoveChars = function(row, column, len) {\n        var ret = this.getNextFoldTo(row, column),\n            fold, folds;\n        if (ret) {\n            fold = ret.fold;\n            if (ret.kind == \"inside\"\n                && fold.start.column != column\n                && fold.start.row != row)\n            {\n                window.console && window.console.log(row, column, fold);\n            } else if (fold.start.row == row) {\n                folds = this.folds;\n                var i = folds.indexOf(fold);\n                if (i === 0) {\n                    this.start.column += len;\n                }\n                for (i; i < folds.length; i++) {\n                    fold = folds[i];\n                    fold.start.column += len;\n                    if (!fold.sameRow) {\n                        return;\n                    }\n                    fold.end.column += len;\n                }\n                this.end.column += len;\n            }\n        }\n    };\n\n    this.split = function(row, column) {\n        var pos = this.getNextFoldTo(row, column);\n        \n        if (!pos || pos.kind == \"inside\")\n            return null;\n            \n        var fold = pos.fold;\n        var folds = this.folds;\n        var foldData = this.foldData;\n        \n        var i = folds.indexOf(fold);\n        var foldBefore = folds[i - 1];\n        this.end.row = foldBefore.end.row;\n        this.end.column = foldBefore.end.column;\n        folds = folds.splice(i, folds.length - i);\n\n        var newFoldLine = new FoldLine(foldData, folds);\n        foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n        return newFoldLine;\n    };\n\n    this.merge = function(foldLineNext) {\n        var folds = foldLineNext.folds;\n        for (var i = 0; i < folds.length; i++) {\n            this.addFold(folds[i]);\n        }\n        var foldData = this.foldData;\n        foldData.splice(foldData.indexOf(foldLineNext), 1);\n    };\n\n    this.toString = function() {\n        var ret = [this.range.toString() + \": [\" ];\n\n        this.folds.forEach(function(fold) {\n            ret.push(\"  \" + fold.toString());\n        });\n        ret.push(\"]\");\n        return ret.join(\"\\n\");\n    };\n\n    this.idxToPosition = function(idx) {\n        var lastFoldEndColumn = 0;\n\n        for (var i = 0; i < this.folds.length; i++) {\n            var fold = this.folds[i];\n\n            idx -= fold.start.column - lastFoldEndColumn;\n            if (idx < 0) {\n                return {\n                    row: fold.start.row,\n                    column: fold.start.column + idx\n                };\n            }\n\n            idx -= fold.placeholder.length;\n            if (idx < 0) {\n                return fold.start;\n            }\n\n            lastFoldEndColumn = fold.end.column;\n        }\n\n        return {\n            row: this.end.row,\n            column: this.end.column + idx\n        };\n    };\n}).call(FoldLine.prototype);\n\nexports.FoldLine = FoldLine;\n});\n\nace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\nvar Range = require(\"./range\").Range;\nvar comparePoints = Range.comparePoints;\n\nvar RangeList = function() {\n    this.ranges = [];\n};\n\n(function() {\n    this.comparePoints = comparePoints;\n\n    this.pointIndex = function(pos, excludeEdges, startIndex) {\n        var list = this.ranges;\n\n        for (var i = startIndex || 0; i < list.length; i++) {\n            var range = list[i];\n            var cmpEnd = comparePoints(pos, range.end);\n            if (cmpEnd > 0)\n                continue;\n            var cmpStart = comparePoints(pos, range.start);\n            if (cmpEnd === 0)\n                return excludeEdges && cmpStart !== 0 ? -i-2 : i;\n            if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n                return i;\n\n            return -i-1;\n        }\n        return -i - 1;\n    };\n\n    this.add = function(range) {\n        var excludeEdges = !range.isEmpty();\n        var startIndex = this.pointIndex(range.start, excludeEdges);\n        if (startIndex < 0)\n            startIndex = -startIndex - 1;\n\n        var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n\n        if (endIndex < 0)\n            endIndex = -endIndex - 1;\n        else\n            endIndex++;\n        return this.ranges.splice(startIndex, endIndex - startIndex, range);\n    };\n\n    this.addList = function(list) {\n        var removed = [];\n        for (var i = list.length; i--; ) {\n            removed.push.apply(removed, this.add(list[i]));\n        }\n        return removed;\n    };\n\n    this.substractPoint = function(pos) {\n        var i = this.pointIndex(pos);\n\n        if (i >= 0)\n            return this.ranges.splice(i, 1);\n    };\n    this.merge = function() {\n        var removed = [];\n        var list = this.ranges;\n        \n        list = list.sort(function(a, b) {\n            return comparePoints(a.start, b.start);\n        });\n        \n        var next = list[0], range;\n        for (var i = 1; i < list.length; i++) {\n            range = next;\n            next = list[i];\n            var cmp = comparePoints(range.end, next.start);\n            if (cmp < 0)\n                continue;\n\n            if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n                continue;\n\n            if (comparePoints(range.end, next.end) < 0) {\n                range.end.row = next.end.row;\n                range.end.column = next.end.column;\n            }\n\n            list.splice(i, 1);\n            removed.push(next);\n            next = range;\n            i--;\n        }\n        \n        this.ranges = list;\n\n        return removed;\n    };\n\n    this.contains = function(row, column) {\n        return this.pointIndex({row: row, column: column}) >= 0;\n    };\n\n    this.containsPoint = function(pos) {\n        return this.pointIndex(pos) >= 0;\n    };\n\n    this.rangeAtPoint = function(pos) {\n        var i = this.pointIndex(pos);\n        if (i >= 0)\n            return this.ranges[i];\n    };\n\n\n    this.clipRows = function(startRow, endRow) {\n        var list = this.ranges;\n        if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n            return [];\n\n        var startIndex = this.pointIndex({row: startRow, column: 0});\n        if (startIndex < 0)\n            startIndex = -startIndex - 1;\n        var endIndex = this.pointIndex({row: endRow, column: 0}, startIndex);\n        if (endIndex < 0)\n            endIndex = -endIndex - 1;\n\n        var clipped = [];\n        for (var i = startIndex; i < endIndex; i++) {\n            clipped.push(list[i]);\n        }\n        return clipped;\n    };\n\n    this.removeAll = function() {\n        return this.ranges.splice(0, this.ranges.length);\n    };\n\n    this.attach = function(session) {\n        if (this.session)\n            this.detach();\n\n        this.session = session;\n        this.onChange = this.$onChange.bind(this);\n\n        this.session.on('change', this.onChange);\n    };\n\n    this.detach = function() {\n        if (!this.session)\n            return;\n        this.session.removeListener('change', this.onChange);\n        this.session = null;\n    };\n\n    this.$onChange = function(delta) {\n        if (delta.action == \"insert\"){\n            var start = delta.start;\n            var end = delta.end;\n        } else {\n            var end = delta.start;\n            var start = delta.end;\n        }\n        var startRow = start.row;\n        var endRow = end.row;\n        var lineDif = endRow - startRow;\n\n        var colDiff = -start.column + end.column;\n        var ranges = this.ranges;\n\n        for (var i = 0, n = ranges.length; i < n; i++) {\n            var r = ranges[i];\n            if (r.end.row < startRow)\n                continue;\n            if (r.start.row > startRow)\n                break;\n\n            if (r.start.row == startRow && r.start.column >= start.column ) {\n                if (r.start.column == start.column && this.$insertRight) {\n                } else {\n                    r.start.column += colDiff;\n                    r.start.row += lineDif;\n                }\n            }\n            if (r.end.row == startRow && r.end.column >= start.column) {\n                if (r.end.column == start.column && this.$insertRight) {\n                    continue;\n                }\n                if (r.end.column == start.column && colDiff > 0 && i < n - 1) {                \n                    if (r.end.column > r.start.column && r.end.column == ranges[i+1].start.column)\n                        r.end.column -= colDiff;\n                }\n                r.end.column += colDiff;\n                r.end.row += lineDif;\n            }\n        }\n\n        if (lineDif != 0 && i < n) {\n            for (; i < n; i++) {\n                var r = ranges[i];\n                r.start.row += lineDif;\n                r.end.row += lineDif;\n            }\n        }\n    };\n\n}).call(RangeList.prototype);\n\nexports.RangeList = RangeList;\n});\n\nace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/range_list\",\"ace/lib/oop\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\nvar RangeList = require(\"../range_list\").RangeList;\nvar oop = require(\"../lib/oop\")\nvar Fold = exports.Fold = function(range, placeholder) {\n    this.foldLine = null;\n    this.placeholder = placeholder;\n    this.range = range;\n    this.start = range.start;\n    this.end = range.end;\n\n    this.sameRow = range.start.row == range.end.row;\n    this.subFolds = this.ranges = [];\n};\n\noop.inherits(Fold, RangeList);\n\n(function() {\n\n    this.toString = function() {\n        return '\"' + this.placeholder + '\" ' + this.range.toString();\n    };\n\n    this.setFoldLine = function(foldLine) {\n        this.foldLine = foldLine;\n        this.subFolds.forEach(function(fold) {\n            fold.setFoldLine(foldLine);\n        });\n    };\n\n    this.clone = function() {\n        var range = this.range.clone();\n        var fold = new Fold(range, this.placeholder);\n        this.subFolds.forEach(function(subFold) {\n            fold.subFolds.push(subFold.clone());\n        });\n        fold.collapseChildren = this.collapseChildren;\n        return fold;\n    };\n\n    this.addSubFold = function(fold) {\n        if (this.range.isEqual(fold))\n            return;\n\n        if (!this.range.containsRange(fold))\n            throw new Error(\"A fold can't intersect already existing fold\" + fold.range + this.range);\n        consumeRange(fold, this.start);\n\n        var row = fold.start.row, column = fold.start.column;\n        for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n            cmp = this.subFolds[i].range.compare(row, column);\n            if (cmp != 1)\n                break;\n        }\n        var afterStart = this.subFolds[i];\n\n        if (cmp == 0)\n            return afterStart.addSubFold(fold);\n        var row = fold.range.end.row, column = fold.range.end.column;\n        for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n            cmp = this.subFolds[j].range.compare(row, column);\n            if (cmp != 1)\n                break;\n        }\n        var afterEnd = this.subFolds[j];\n\n        if (cmp == 0)\n            throw new Error(\"A fold can't intersect already existing fold\" + fold.range + this.range);\n\n        var consumedFolds = this.subFolds.splice(i, j - i, fold);\n        fold.setFoldLine(this.foldLine);\n\n        return fold;\n    };\n    \n    this.restoreRange = function(range) {\n        return restoreRange(range, this.start);\n    };\n\n}).call(Fold.prototype);\n\nfunction consumePoint(point, anchor) {\n    point.row -= anchor.row;\n    if (point.row == 0)\n        point.column -= anchor.column;\n}\nfunction consumeRange(range, anchor) {\n    consumePoint(range.start, anchor);\n    consumePoint(range.end, anchor);\n}\nfunction restorePoint(point, anchor) {\n    if (point.row == 0)\n        point.column += anchor.column;\n    point.row += anchor.row;\n}\nfunction restoreRange(range, anchor) {\n    restorePoint(range.start, anchor);\n    restorePoint(range.end, anchor);\n}\n\n});\n\nace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\nvar FoldLine = require(\"./fold_line\").FoldLine;\nvar Fold = require(\"./fold\").Fold;\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\n\nfunction Folding() {\n    this.getFoldAt = function(row, column, side) {\n        var foldLine = this.getFoldLine(row);\n        if (!foldLine)\n            return null;\n\n        var folds = foldLine.folds;\n        for (var i = 0; i < folds.length; i++) {\n            var fold = folds[i];\n            if (fold.range.contains(row, column)) {\n                if (side == 1 && fold.range.isEnd(row, column)) {\n                    continue;\n                } else if (side == -1 && fold.range.isStart(row, column)) {\n                    continue;\n                }\n                return fold;\n            }\n        }\n    };\n    this.getFoldsInRange = function(range) {\n        var start = range.start;\n        var end = range.end;\n        var foldLines = this.$foldData;\n        var foundFolds = [];\n\n        start.column += 1;\n        end.column -= 1;\n\n        for (var i = 0; i < foldLines.length; i++) {\n            var cmp = foldLines[i].range.compareRange(range);\n            if (cmp == 2) {\n                continue;\n            }\n            else if (cmp == -2) {\n                break;\n            }\n\n            var folds = foldLines[i].folds;\n            for (var j = 0; j < folds.length; j++) {\n                var fold = folds[j];\n                cmp = fold.range.compareRange(range);\n                if (cmp == -2) {\n                    break;\n                } else if (cmp == 2) {\n                    continue;\n                } else\n                if (cmp == 42) {\n                    break;\n                }\n                foundFolds.push(fold);\n            }\n        }\n        start.column -= 1;\n        end.column += 1;\n\n        return foundFolds;\n    };\n\n    this.getFoldsInRangeList = function(ranges) {\n        if (Array.isArray(ranges)) {\n            var folds = [];\n            ranges.forEach(function(range) {\n                folds = folds.concat(this.getFoldsInRange(range));\n            }, this);\n        } else {\n            var folds = this.getFoldsInRange(ranges);\n        }\n        return folds;\n    };\n    this.getAllFolds = function() {\n        var folds = [];\n        var foldLines = this.$foldData;\n        \n        for (var i = 0; i < foldLines.length; i++)\n            for (var j = 0; j < foldLines[i].folds.length; j++)\n                folds.push(foldLines[i].folds[j]);\n\n        return folds;\n    };\n    this.getFoldStringAt = function(row, column, trim, foldLine) {\n        foldLine = foldLine || this.getFoldLine(row);\n        if (!foldLine)\n            return null;\n\n        var lastFold = {\n            end: { column: 0 }\n        };\n        var str, fold;\n        for (var i = 0; i < foldLine.folds.length; i++) {\n            fold = foldLine.folds[i];\n            var cmp = fold.range.compareEnd(row, column);\n            if (cmp == -1) {\n                str = this\n                    .getLine(fold.start.row)\n                    .substring(lastFold.end.column, fold.start.column);\n                break;\n            }\n            else if (cmp === 0) {\n                return null;\n            }\n            lastFold = fold;\n        }\n        if (!str)\n            str = this.getLine(fold.start.row).substring(lastFold.end.column);\n\n        if (trim == -1)\n            return str.substring(0, column - lastFold.end.column);\n        else if (trim == 1)\n            return str.substring(column - lastFold.end.column);\n        else\n            return str;\n    };\n\n    this.getFoldLine = function(docRow, startFoldLine) {\n        var foldData = this.$foldData;\n        var i = 0;\n        if (startFoldLine)\n            i = foldData.indexOf(startFoldLine);\n        if (i == -1)\n            i = 0;\n        for (i; i < foldData.length; i++) {\n            var foldLine = foldData[i];\n            if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n                return foldLine;\n            } else if (foldLine.end.row > docRow) {\n                return null;\n            }\n        }\n        return null;\n    };\n    this.getNextFoldLine = function(docRow, startFoldLine) {\n        var foldData = this.$foldData;\n        var i = 0;\n        if (startFoldLine)\n            i = foldData.indexOf(startFoldLine);\n        if (i == -1)\n            i = 0;\n        for (i; i < foldData.length; i++) {\n            var foldLine = foldData[i];\n            if (foldLine.end.row >= docRow) {\n                return foldLine;\n            }\n        }\n        return null;\n    };\n\n    this.getFoldedRowCount = function(first, last) {\n        var foldData = this.$foldData, rowCount = last-first+1;\n        for (var i = 0; i < foldData.length; i++) {\n            var foldLine = foldData[i],\n                end = foldLine.end.row,\n                start = foldLine.start.row;\n            if (end >= last) {\n                if (start < last) {\n                    if (start >= first)\n                        rowCount -= last-start;\n                    else\n                        rowCount = 0; // in one fold\n                }\n                break;\n            } else if (end >= first){\n                if (start >= first) // fold inside range\n                    rowCount -=  end-start;\n                else\n                    rowCount -=  end-first+1;\n            }\n        }\n        return rowCount;\n    };\n\n    this.$addFoldLine = function(foldLine) {\n        this.$foldData.push(foldLine);\n        this.$foldData.sort(function(a, b) {\n            return a.start.row - b.start.row;\n        });\n        return foldLine;\n    };\n    this.addFold = function(placeholder, range) {\n        var foldData = this.$foldData;\n        var added = false;\n        var fold;\n        \n        if (placeholder instanceof Fold)\n            fold = placeholder;\n        else {\n            fold = new Fold(range, placeholder);\n            fold.collapseChildren = range.collapseChildren;\n        }\n        this.$clipRangeToDocument(fold.range);\n\n        var startRow = fold.start.row;\n        var startColumn = fold.start.column;\n        var endRow = fold.end.row;\n        var endColumn = fold.end.column;\n        if (!(startRow < endRow || \n            startRow == endRow && startColumn <= endColumn - 2))\n            throw new Error(\"The range has to be at least 2 characters width\");\n\n        var startFold = this.getFoldAt(startRow, startColumn, 1);\n        var endFold = this.getFoldAt(endRow, endColumn, -1);\n        if (startFold && endFold == startFold)\n            return startFold.addSubFold(fold);\n\n        if (startFold && !startFold.range.isStart(startRow, startColumn))\n            this.removeFold(startFold);\n        \n        if (endFold && !endFold.range.isEnd(endRow, endColumn))\n            this.removeFold(endFold);\n        var folds = this.getFoldsInRange(fold.range);\n        if (folds.length > 0) {\n            this.removeFolds(folds);\n            folds.forEach(function(subFold) {\n                fold.addSubFold(subFold);\n            });\n        }\n\n        for (var i = 0; i < foldData.length; i++) {\n            var foldLine = foldData[i];\n            if (endRow == foldLine.start.row) {\n                foldLine.addFold(fold);\n                added = true;\n                break;\n            } else if (startRow == foldLine.end.row) {\n                foldLine.addFold(fold);\n                added = true;\n                if (!fold.sameRow) {\n                    var foldLineNext = foldData[i + 1];\n                    if (foldLineNext && foldLineNext.start.row == endRow) {\n                        foldLine.merge(foldLineNext);\n                        break;\n                    }\n                }\n                break;\n            } else if (endRow <= foldLine.start.row) {\n                break;\n            }\n        }\n\n        if (!added)\n            foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n\n        if (this.$useWrapMode)\n            this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n        else\n            this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n        this.$modified = true;\n        this._signal(\"changeFold\", { data: fold, action: \"add\" });\n\n        return fold;\n    };\n\n    this.addFolds = function(folds) {\n        folds.forEach(function(fold) {\n            this.addFold(fold);\n        }, this);\n    };\n\n    this.removeFold = function(fold) {\n        var foldLine = fold.foldLine;\n        var startRow = foldLine.start.row;\n        var endRow = foldLine.end.row;\n\n        var foldLines = this.$foldData;\n        var folds = foldLine.folds;\n        if (folds.length == 1) {\n            foldLines.splice(foldLines.indexOf(foldLine), 1);\n        } else\n        if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n            folds.pop();\n            foldLine.end.row = folds[folds.length - 1].end.row;\n            foldLine.end.column = folds[folds.length - 1].end.column;\n        } else\n        if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n            folds.shift();\n            foldLine.start.row = folds[0].start.row;\n            foldLine.start.column = folds[0].start.column;\n        } else\n        if (fold.sameRow) {\n            folds.splice(folds.indexOf(fold), 1);\n        } else\n        {\n            var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n            folds = newFoldLine.folds;\n            folds.shift();\n            newFoldLine.start.row = folds[0].start.row;\n            newFoldLine.start.column = folds[0].start.column;\n        }\n\n        if (!this.$updating) {\n            if (this.$useWrapMode)\n                this.$updateWrapData(startRow, endRow);\n            else\n                this.$updateRowLengthCache(startRow, endRow);\n        }\n        this.$modified = true;\n        this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n    };\n\n    this.removeFolds = function(folds) {\n        var cloneFolds = [];\n        for (var i = 0; i < folds.length; i++) {\n            cloneFolds.push(folds[i]);\n        }\n\n        cloneFolds.forEach(function(fold) {\n            this.removeFold(fold);\n        }, this);\n        this.$modified = true;\n    };\n\n    this.expandFold = function(fold) {\n        this.removeFold(fold);\n        fold.subFolds.forEach(function(subFold) {\n            fold.restoreRange(subFold);\n            this.addFold(subFold);\n        }, this);\n        if (fold.collapseChildren > 0) {\n            this.foldAll(fold.start.row+1, fold.end.row, fold.collapseChildren-1);\n        }\n        fold.subFolds = [];\n    };\n\n    this.expandFolds = function(folds) {\n        folds.forEach(function(fold) {\n            this.expandFold(fold);\n        }, this);\n    };\n\n    this.unfold = function(location, expandInner) {\n        var range, folds;\n        if (location == null) {\n            range = new Range(0, 0, this.getLength(), 0);\n            expandInner = true;\n        } else if (typeof location == \"number\")\n            range = new Range(location, 0, location, this.getLine(location).length);\n        else if (\"row\" in location)\n            range = Range.fromPoints(location, location);\n        else\n            range = location;\n        \n        folds = this.getFoldsInRangeList(range);\n        if (expandInner) {\n            this.removeFolds(folds);\n        } else {\n            var subFolds = folds;\n            while (subFolds.length) {\n                this.expandFolds(subFolds);\n                subFolds = this.getFoldsInRangeList(range);\n            }\n        }\n        if (folds.length)\n            return folds;\n    };\n    this.isRowFolded = function(docRow, startFoldRow) {\n        return !!this.getFoldLine(docRow, startFoldRow);\n    };\n\n    this.getRowFoldEnd = function(docRow, startFoldRow) {\n        var foldLine = this.getFoldLine(docRow, startFoldRow);\n        return foldLine ? foldLine.end.row : docRow;\n    };\n\n    this.getRowFoldStart = function(docRow, startFoldRow) {\n        var foldLine = this.getFoldLine(docRow, startFoldRow);\n        return foldLine ? foldLine.start.row : docRow;\n    };\n\n    this.getFoldDisplayLine = function(foldLine, endRow, endColumn, startRow, startColumn) {\n        if (startRow == null)\n            startRow = foldLine.start.row;\n        if (startColumn == null)\n            startColumn = 0;\n        if (endRow == null)\n            endRow = foldLine.end.row;\n        if (endColumn == null)\n            endColumn = this.getLine(endRow).length;\n        var doc = this.doc;\n        var textLine = \"\";\n\n        foldLine.walk(function(placeholder, row, column, lastColumn) {\n            if (row < startRow)\n                return;\n            if (row == startRow) {\n                if (column < startColumn)\n                    return;\n                lastColumn = Math.max(startColumn, lastColumn);\n            }\n\n            if (placeholder != null) {\n                textLine += placeholder;\n            } else {\n                textLine += doc.getLine(row).substring(lastColumn, column);\n            }\n        }, endRow, endColumn);\n        return textLine;\n    };\n\n    this.getDisplayLine = function(row, endColumn, startRow, startColumn) {\n        var foldLine = this.getFoldLine(row);\n\n        if (!foldLine) {\n            var line;\n            line = this.doc.getLine(row);\n            return line.substring(startColumn || 0, endColumn || line.length);\n        } else {\n            return this.getFoldDisplayLine(\n                foldLine, row, endColumn, startRow, startColumn);\n        }\n    };\n\n    this.$cloneFoldData = function() {\n        var fd = [];\n        fd = this.$foldData.map(function(foldLine) {\n            var folds = foldLine.folds.map(function(fold) {\n                return fold.clone();\n            });\n            return new FoldLine(fd, folds);\n        });\n\n        return fd;\n    };\n\n    this.toggleFold = function(tryToUnfold) {\n        var selection = this.selection;\n        var range = selection.getRange();\n        var fold;\n        var bracketPos;\n\n        if (range.isEmpty()) {\n            var cursor = range.start;\n            fold = this.getFoldAt(cursor.row, cursor.column);\n\n            if (fold) {\n                this.expandFold(fold);\n                return;\n            } else if (bracketPos = this.findMatchingBracket(cursor)) {\n                if (range.comparePoint(bracketPos) == 1) {\n                    range.end = bracketPos;\n                } else {\n                    range.start = bracketPos;\n                    range.start.column++;\n                    range.end.column--;\n                }\n            } else if (bracketPos = this.findMatchingBracket({row: cursor.row, column: cursor.column + 1})) {\n                if (range.comparePoint(bracketPos) == 1)\n                    range.end = bracketPos;\n                else\n                    range.start = bracketPos;\n\n                range.start.column++;\n            } else {\n                range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n            }\n        } else {\n            var folds = this.getFoldsInRange(range);\n            if (tryToUnfold && folds.length) {\n                this.expandFolds(folds);\n                return;\n            } else if (folds.length == 1 ) {\n                fold = folds[0];\n            }\n        }\n\n        if (!fold)\n            fold = this.getFoldAt(range.start.row, range.start.column);\n\n        if (fold && fold.range.toString() == range.toString()) {\n            this.expandFold(fold);\n            return;\n        }\n\n        var placeholder = \"...\";\n        if (!range.isMultiLine()) {\n            placeholder = this.getTextRange(range);\n            if (placeholder.length < 4)\n                return;\n            placeholder = placeholder.trim().substring(0, 2) + \"..\";\n        }\n\n        this.addFold(placeholder, range);\n    };\n\n    this.getCommentFoldRange = function(row, column, dir) {\n        var iterator = new TokenIterator(this, row, column);\n        var token = iterator.getCurrentToken();\n        if (token && /^comment|string/.test(token.type)) {\n            var range = new Range();\n            var re = new RegExp(token.type.replace(/\\..*/, \"\\\\.\"));\n            if (dir != 1) {\n                do {\n                    token = iterator.stepBackward();\n                } while (token && re.test(token.type));\n                iterator.stepForward();\n            }\n            \n            range.start.row = iterator.getCurrentTokenRow();\n            range.start.column = iterator.getCurrentTokenColumn() + 2;\n\n            iterator = new TokenIterator(this, row, column);\n            \n            if (dir != -1) {\n                do {\n                    token = iterator.stepForward();\n                } while (token && re.test(token.type));\n                token = iterator.stepBackward();\n            } else\n                token = iterator.getCurrentToken();\n\n            range.end.row = iterator.getCurrentTokenRow();\n            range.end.column = iterator.getCurrentTokenColumn() + token.value.length - 2;\n            return range;\n        }\n    };\n\n    this.foldAll = function(startRow, endRow, depth) {\n        if (depth == undefined)\n            depth = 100000; // JSON.stringify doesn't hanle Infinity\n        var foldWidgets = this.foldWidgets;\n        if (!foldWidgets)\n            return; // mode doesn't support folding\n        endRow = endRow || this.getLength();\n        startRow = startRow || 0;\n        for (var row = startRow; row < endRow; row++) {\n            if (foldWidgets[row] == null)\n                foldWidgets[row] = this.getFoldWidget(row);\n            if (foldWidgets[row] != \"start\")\n                continue;\n\n            var range = this.getFoldWidgetRange(row);\n            if (range && range.isMultiLine()\n                && range.end.row <= endRow\n                && range.start.row >= startRow\n            ) {\n                row = range.end.row;\n                try {\n                    var fold = this.addFold(\"...\", range);\n                    if (fold)\n                        fold.collapseChildren = depth;\n                } catch(e) {}\n            }\n        }\n    };\n    this.$foldStyles = {\n        \"manual\": 1,\n        \"markbegin\": 1,\n        \"markbeginend\": 1\n    };\n    this.$foldStyle = \"markbegin\";\n    this.setFoldStyle = function(style) {\n        if (!this.$foldStyles[style])\n            throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n        \n        if (this.$foldStyle == style)\n            return;\n\n        this.$foldStyle = style;\n        \n        if (style == \"manual\")\n            this.unfold();\n        var mode = this.$foldMode;\n        this.$setFolding(null);\n        this.$setFolding(mode);\n    };\n\n    this.$setFolding = function(foldMode) {\n        if (this.$foldMode == foldMode)\n            return;\n            \n        this.$foldMode = foldMode;\n        \n        this.off('change', this.$updateFoldWidgets);\n        this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n        this._signal(\"changeAnnotation\");\n        \n        if (!foldMode || this.$foldStyle == \"manual\") {\n            this.foldWidgets = null;\n            return;\n        }\n        \n        this.foldWidgets = [];\n        this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n        this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n        \n        this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n        this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n        this.on('change', this.$updateFoldWidgets);\n        this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n    };\n\n    this.getParentFoldRangeData = function (row, ignoreCurrent) {\n        var fw = this.foldWidgets;\n        if (!fw || (ignoreCurrent && fw[row]))\n            return {};\n\n        var i = row - 1, firstRange;\n        while (i >= 0) {\n            var c = fw[i];\n            if (c == null)\n                c = fw[i] = this.getFoldWidget(i);\n\n            if (c == \"start\") {\n                var range = this.getFoldWidgetRange(i);\n                if (!firstRange)\n                    firstRange = range;\n                if (range && range.end.row >= row)\n                    break;\n            }\n            i--;\n        }\n\n        return {\n            range: i !== -1 && range,\n            firstRange: firstRange\n        };\n    };\n\n    this.onFoldWidgetClick = function(row, e) {\n        e = e.domEvent;\n        var options = {\n            children: e.shiftKey,\n            all: e.ctrlKey || e.metaKey,\n            siblings: e.altKey\n        };\n        \n        var range = this.$toggleFoldWidget(row, options);\n        if (!range) {\n            var el = (e.target || e.srcElement);\n            if (el && /ace_fold-widget/.test(el.className))\n                el.className += \" ace_invalid\";\n        }\n    };\n    \n    this.$toggleFoldWidget = function(row, options) {\n        if (!this.getFoldWidget)\n            return;\n        var type = this.getFoldWidget(row);\n        var line = this.getLine(row);\n\n        var dir = type === \"end\" ? -1 : 1;\n        var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n\n        if (fold) {\n            if (options.children || options.all)\n                this.removeFold(fold);\n            else\n                this.expandFold(fold);\n            return fold;\n        }\n\n        var range = this.getFoldWidgetRange(row, true);\n        if (range && !range.isMultiLine()) {\n            fold = this.getFoldAt(range.start.row, range.start.column, 1);\n            if (fold && range.isEqual(fold.range)) {\n                this.removeFold(fold);\n                return fold;\n            }\n        }\n        \n        if (options.siblings) {\n            var data = this.getParentFoldRangeData(row);\n            if (data.range) {\n                var startRow = data.range.start.row + 1;\n                var endRow = data.range.end.row;\n            }\n            this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n        } else if (options.children) {\n            endRow = range ? range.end.row : this.getLength();\n            this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n        } else if (range) {\n            if (options.all) \n                range.collapseChildren = 10000;\n            this.addFold(\"...\", range);\n        }\n        \n        return range;\n    };\n    \n    \n    \n    this.toggleFoldWidget = function(toggleParent) {\n        var row = this.selection.getCursor().row;\n        row = this.getRowFoldStart(row);\n        var range = this.$toggleFoldWidget(row, {});\n        \n        if (range)\n            return;\n        var data = this.getParentFoldRangeData(row, true);\n        range = data.range || data.firstRange;\n        \n        if (range) {\n            row = range.start.row;\n            var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n\n            if (fold) {\n                this.removeFold(fold);\n            } else {\n                this.addFold(\"...\", range);\n            }\n        }\n    };\n\n    this.updateFoldWidgets = function(delta) {\n        var firstRow = delta.start.row;\n        var len = delta.end.row - firstRow;\n\n        if (len === 0) {\n            this.foldWidgets[firstRow] = null;\n        } else if (delta.action == 'remove') {\n            this.foldWidgets.splice(firstRow, len + 1, null);\n        } else {\n            var args = Array(len + 1);\n            args.unshift(firstRow, 1);\n            this.foldWidgets.splice.apply(this.foldWidgets, args);\n        }\n    };\n    this.tokenizerUpdateFoldWidgets = function(e) {\n        var rows = e.data;\n        if (rows.first != rows.last) {\n            if (this.foldWidgets.length > rows.first)\n                this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n        }\n    };\n}\n\nexports.Folding = Folding;\n\n});\n\nace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\n\n\nfunction BracketMatch() {\n\n    this.findMatchingBracket = function(position, chr) {\n        if (position.column == 0) return null;\n\n        var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column-1);\n        if (charBeforeCursor == \"\") return null;\n\n        var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n        if (!match)\n            return null;\n\n        if (match[1])\n            return this.$findClosingBracket(match[1], position);\n        else\n            return this.$findOpeningBracket(match[2], position);\n    };\n    \n    this.getBracketRange = function(pos) {\n        var line = this.getLine(pos.row);\n        var before = true, range;\n\n        var chr = line.charAt(pos.column-1);\n        var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n        if (!match) {\n            chr = line.charAt(pos.column);\n            pos = {row: pos.row, column: pos.column + 1};\n            match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n            before = false;\n        }\n        if (!match)\n            return null;\n\n        if (match[1]) {\n            var bracketPos = this.$findClosingBracket(match[1], pos);\n            if (!bracketPos)\n                return null;\n            range = Range.fromPoints(pos, bracketPos);\n            if (!before) {\n                range.end.column++;\n                range.start.column--;\n            }\n            range.cursor = range.end;\n        } else {\n            var bracketPos = this.$findOpeningBracket(match[2], pos);\n            if (!bracketPos)\n                return null;\n            range = Range.fromPoints(bracketPos, pos);\n            if (!before) {\n                range.start.column++;\n                range.end.column--;\n            }\n            range.cursor = range.start;\n        }\n        \n        return range;\n    };\n\n    this.$brackets = {\n        \")\": \"(\",\n        \"(\": \")\",\n        \"]\": \"[\",\n        \"[\": \"]\",\n        \"{\": \"}\",\n        \"}\": \"{\"\n    };\n\n    this.$findOpeningBracket = function(bracket, position, typeRe) {\n        var openBracket = this.$brackets[bracket];\n        var depth = 1;\n\n        var iterator = new TokenIterator(this, position.row, position.column);\n        var token = iterator.getCurrentToken();\n        if (!token)\n            token = iterator.stepForward();\n        if (!token)\n            return;\n        \n         if (!typeRe){\n            typeRe = new RegExp(\n                \"(\\\\.?\" +\n                token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n                    .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n                + \")+\"\n            );\n        }\n        var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n        var value = token.value;\n        \n        while (true) {\n        \n            while (valueIndex >= 0) {\n                var chr = value.charAt(valueIndex);\n                if (chr == openBracket) {\n                    depth -= 1;\n                    if (depth == 0) {\n                        return {row: iterator.getCurrentTokenRow(),\n                            column: valueIndex + iterator.getCurrentTokenColumn()};\n                    }\n                }\n                else if (chr == bracket) {\n                    depth += 1;\n                }\n                valueIndex -= 1;\n            }\n            do {\n                token = iterator.stepBackward();\n            } while (token && !typeRe.test(token.type));\n\n            if (token == null)\n                break;\n                \n            value = token.value;\n            valueIndex = value.length - 1;\n        }\n        \n        return null;\n    };\n\n    this.$findClosingBracket = function(bracket, position, typeRe) {\n        var closingBracket = this.$brackets[bracket];\n        var depth = 1;\n\n        var iterator = new TokenIterator(this, position.row, position.column);\n        var token = iterator.getCurrentToken();\n        if (!token)\n            token = iterator.stepForward();\n        if (!token)\n            return;\n\n        if (!typeRe){\n            typeRe = new RegExp(\n                \"(\\\\.?\" +\n                token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n                    .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n                + \")+\"\n            );\n        }\n        var valueIndex = position.column - iterator.getCurrentTokenColumn();\n\n        while (true) {\n\n            var value = token.value;\n            var valueLength = value.length;\n            while (valueIndex < valueLength) {\n                var chr = value.charAt(valueIndex);\n                if (chr == closingBracket) {\n                    depth -= 1;\n                    if (depth == 0) {\n                        return {row: iterator.getCurrentTokenRow(),\n                            column: valueIndex + iterator.getCurrentTokenColumn()};\n                    }\n                }\n                else if (chr == bracket) {\n                    depth += 1;\n                }\n                valueIndex += 1;\n            }\n            do {\n                token = iterator.stepForward();\n            } while (token && !typeRe.test(token.type));\n\n            if (token == null)\n                break;\n\n            valueIndex = 0;\n        }\n        \n        return null;\n    };\n}\nexports.BracketMatch = BracketMatch;\n\n});\n\nace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar config = require(\"./config\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Selection = require(\"./selection\").Selection;\nvar TextMode = require(\"./mode/text\").Mode;\nvar Range = require(\"./range\").Range;\nvar Document = require(\"./document\").Document;\nvar BackgroundTokenizer = require(\"./background_tokenizer\").BackgroundTokenizer;\nvar SearchHighlight = require(\"./search_highlight\").SearchHighlight;\n\nvar EditSession = function(text, mode) {\n    this.$breakpoints = [];\n    this.$decorations = [];\n    this.$frontMarkers = {};\n    this.$backMarkers = {};\n    this.$markerId = 1;\n    this.$undoSelect = true;\n\n    this.$foldData = [];\n    this.id = \"session\" + (++EditSession.$uid);\n    this.$foldData.toString = function() {\n        return this.join(\"\\n\");\n    };\n    this.on(\"changeFold\", this.onChangeFold.bind(this));\n    this.$onChange = this.onChange.bind(this);\n\n    if (typeof text != \"object\" || !text.getLine)\n        text = new Document(text);\n\n    this.setDocument(text);\n    this.selection = new Selection(this);\n\n    config.resetOptions(this);\n    this.setMode(mode);\n    config._signal(\"session\", this);\n};\n\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n    this.setDocument = function(doc) {\n        if (this.doc)\n            this.doc.removeListener(\"change\", this.$onChange);\n\n        this.doc = doc;\n        doc.on(\"change\", this.$onChange);\n\n        if (this.bgTokenizer)\n            this.bgTokenizer.setDocument(this.getDocument());\n\n        this.resetCaches();\n    };\n    this.getDocument = function() {\n        return this.doc;\n    };\n    this.$resetRowCache = function(docRow) {\n        if (!docRow) {\n            this.$docRowCache = [];\n            this.$screenRowCache = [];\n            return;\n        }\n        var l = this.$docRowCache.length;\n        var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n        if (l > i) {\n            this.$docRowCache.splice(i, l);\n            this.$screenRowCache.splice(i, l);\n        }\n    };\n\n    this.$getRowCacheIndex = function(cacheArray, val) {\n        var low = 0;\n        var hi = cacheArray.length - 1;\n\n        while (low <= hi) {\n            var mid = (low + hi) >> 1;\n            var c = cacheArray[mid];\n\n            if (val > c)\n                low = mid + 1;\n            else if (val < c)\n                hi = mid - 1;\n            else\n                return mid;\n        }\n\n        return low -1;\n    };\n\n    this.resetCaches = function() {\n        this.$modified = true;\n        this.$wrapData = [];\n        this.$rowLengthCache = [];\n        this.$resetRowCache(0);\n        if (this.bgTokenizer)\n            this.bgTokenizer.start(0);\n    };\n\n    this.onChangeFold = function(e) {\n        var fold = e.data;\n        this.$resetRowCache(fold.start.row);\n    };\n\n    this.onChange = function(delta) {\n        this.$modified = true;\n\n        this.$resetRowCache(delta.start.row);\n\n        var removedFolds = this.$updateInternalDataOnChange(delta);\n        if (!this.$fromUndo && this.$undoManager && !delta.ignore) {\n            this.$deltasDoc.push(delta);\n            if (removedFolds && removedFolds.length != 0) {\n                this.$deltasFold.push({\n                    action: \"removeFolds\",\n                    folds:  removedFolds\n                });\n            }\n\n            this.$informUndoManager.schedule();\n        }\n\n        this.bgTokenizer && this.bgTokenizer.$updateOnChange(delta);\n        this._signal(\"change\", delta);\n    };\n    this.setValue = function(text) {\n        this.doc.setValue(text);\n        this.selection.moveTo(0, 0);\n\n        this.$resetRowCache(0);\n        this.$deltas = [];\n        this.$deltasDoc = [];\n        this.$deltasFold = [];\n        this.setUndoManager(this.$undoManager);\n        this.getUndoManager().reset();\n    };\n    this.getValue =\n    this.toString = function() {\n        return this.doc.getValue();\n    };\n    this.getSelection = function() {\n        return this.selection;\n    };\n    this.getState = function(row) {\n        return this.bgTokenizer.getState(row);\n    };\n    this.getTokens = function(row) {\n        return this.bgTokenizer.getTokens(row);\n    };\n    this.getTokenAt = function(row, column) {\n        var tokens = this.bgTokenizer.getTokens(row);\n        var token, c = 0;\n        if (column == null) {\n            i = tokens.length - 1;\n            c = this.getLine(row).length;\n        } else {\n            for (var i = 0; i < tokens.length; i++) {\n                c += tokens[i].value.length;\n                if (c >= column)\n                    break;\n            }\n        }\n        token = tokens[i];\n        if (!token)\n            return null;\n        token.index = i;\n        token.start = c - token.value.length;\n        return token;\n    };\n    this.setUndoManager = function(undoManager) {\n        this.$undoManager = undoManager;\n        this.$deltas = [];\n        this.$deltasDoc = [];\n        this.$deltasFold = [];\n\n        if (this.$informUndoManager)\n            this.$informUndoManager.cancel();\n\n        if (undoManager) {\n            var self = this;\n\n            this.$syncInformUndoManager = function() {\n                self.$informUndoManager.cancel();\n\n                if (self.$deltasFold.length) {\n                    self.$deltas.push({\n                        group: \"fold\",\n                        deltas: self.$deltasFold\n                    });\n                    self.$deltasFold = [];\n                }\n\n                if (self.$deltasDoc.length) {\n                    self.$deltas.push({\n                        group: \"doc\",\n                        deltas: self.$deltasDoc\n                    });\n                    self.$deltasDoc = [];\n                }\n\n                if (self.$deltas.length > 0) {\n                    undoManager.execute({\n                        action: \"aceupdate\",\n                        args: [self.$deltas, self],\n                        merge: self.mergeUndoDeltas\n                    });\n                }\n                self.mergeUndoDeltas = false;\n                self.$deltas = [];\n            };\n            this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n        }\n    };\n    this.markUndoGroup = function() {\n        if (this.$syncInformUndoManager)\n            this.$syncInformUndoManager();\n    };\n    \n    this.$defaultUndoManager = {\n        undo: function() {},\n        redo: function() {},\n        reset: function() {}\n    };\n    this.getUndoManager = function() {\n        return this.$undoManager || this.$defaultUndoManager;\n    };\n    this.getTabString = function() {\n        if (this.getUseSoftTabs()) {\n            return lang.stringRepeat(\" \", this.getTabSize());\n        } else {\n            return \"\\t\";\n        }\n    };\n    this.setUseSoftTabs = function(val) {\n        this.setOption(\"useSoftTabs\", val);\n    };\n    this.getUseSoftTabs = function() {\n        return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n    };\n    this.setTabSize = function(tabSize) {\n        this.setOption(\"tabSize\", tabSize);\n    };\n    this.getTabSize = function() {\n        return this.$tabSize;\n    };\n    this.isTabStop = function(position) {\n        return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n    };\n\n    this.$overwrite = false;\n    this.setOverwrite = function(overwrite) {\n        this.setOption(\"overwrite\", overwrite);\n    };\n    this.getOverwrite = function() {\n        return this.$overwrite;\n    };\n    this.toggleOverwrite = function() {\n        this.setOverwrite(!this.$overwrite);\n    };\n    this.addGutterDecoration = function(row, className) {\n        if (!this.$decorations[row])\n            this.$decorations[row] = \"\";\n        this.$decorations[row] += \" \" + className;\n        this._signal(\"changeBreakpoint\", {});\n    };\n    this.removeGutterDecoration = function(row, className) {\n        this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n        this._signal(\"changeBreakpoint\", {});\n    };\n    this.getBreakpoints = function() {\n        return this.$breakpoints;\n    };\n    this.setBreakpoints = function(rows) {\n        this.$breakpoints = [];\n        for (var i=0; i<rows.length; i++) {\n            this.$breakpoints[rows[i]] = \"ace_breakpoint\";\n        }\n        this._signal(\"changeBreakpoint\", {});\n    };\n    this.clearBreakpoints = function() {\n        this.$breakpoints = [];\n        this._signal(\"changeBreakpoint\", {});\n    };\n    this.setBreakpoint = function(row, className) {\n        if (className === undefined)\n            className = \"ace_breakpoint\";\n        if (className)\n            this.$breakpoints[row] = className;\n        else\n            delete this.$breakpoints[row];\n        this._signal(\"changeBreakpoint\", {});\n    };\n    this.clearBreakpoint = function(row) {\n        delete this.$breakpoints[row];\n        this._signal(\"changeBreakpoint\", {});\n    };\n    this.addMarker = function(range, clazz, type, inFront) {\n        var id = this.$markerId++;\n\n        var marker = {\n            range : range,\n            type : type || \"line\",\n            renderer: typeof type == \"function\" ? type : null,\n            clazz : clazz,\n            inFront: !!inFront,\n            id: id\n        };\n\n        if (inFront) {\n            this.$frontMarkers[id] = marker;\n            this._signal(\"changeFrontMarker\");\n        } else {\n            this.$backMarkers[id] = marker;\n            this._signal(\"changeBackMarker\");\n        }\n\n        return id;\n    };\n    this.addDynamicMarker = function(marker, inFront) {\n        if (!marker.update)\n            return;\n        var id = this.$markerId++;\n        marker.id = id;\n        marker.inFront = !!inFront;\n\n        if (inFront) {\n            this.$frontMarkers[id] = marker;\n            this._signal(\"changeFrontMarker\");\n        } else {\n            this.$backMarkers[id] = marker;\n            this._signal(\"changeBackMarker\");\n        }\n\n        return marker;\n    };\n    this.removeMarker = function(markerId) {\n        var marker = this.$frontMarkers[markerId] || this.$backMarkers[markerId];\n        if (!marker)\n            return;\n\n        var markers = marker.inFront ? this.$frontMarkers : this.$backMarkers;\n        if (marker) {\n            delete (markers[markerId]);\n            this._signal(marker.inFront ? \"changeFrontMarker\" : \"changeBackMarker\");\n        }\n    };\n    this.getMarkers = function(inFront) {\n        return inFront ? this.$frontMarkers : this.$backMarkers;\n    };\n\n    this.highlight = function(re) {\n        if (!this.$searchHighlight) {\n            var highlight = new SearchHighlight(null, \"ace_selected-word\", \"text\");\n            this.$searchHighlight = this.addDynamicMarker(highlight);\n        }\n        this.$searchHighlight.setRegexp(re);\n    };\n    this.highlightLines = function(startRow, endRow, clazz, inFront) {\n        if (typeof endRow != \"number\") {\n            clazz = endRow;\n            endRow = startRow;\n        }\n        if (!clazz)\n            clazz = \"ace_step\";\n\n        var range = new Range(startRow, 0, endRow, Infinity);\n        range.id = this.addMarker(range, clazz, \"fullLine\", inFront);\n        return range;\n    };\n    this.setAnnotations = function(annotations) {\n        this.$annotations = annotations;\n        this._signal(\"changeAnnotation\", {});\n    };\n    this.getAnnotations = function() {\n        return this.$annotations || [];\n    };\n    this.clearAnnotations = function() {\n        this.setAnnotations([]);\n    };\n    this.$detectNewLine = function(text) {\n        var match = text.match(/^.*?(\\r?\\n)/m);\n        if (match) {\n            this.$autoNewLine = match[1];\n        } else {\n            this.$autoNewLine = \"\\n\";\n        }\n    };\n    this.getWordRange = function(row, column) {\n        var line = this.getLine(row);\n\n        var inToken = false;\n        if (column > 0)\n            inToken = !!line.charAt(column - 1).match(this.tokenRe);\n\n        if (!inToken)\n            inToken = !!line.charAt(column).match(this.tokenRe);\n\n        if (inToken)\n            var re = this.tokenRe;\n        else if (/^\\s+$/.test(line.slice(column-1, column+1)))\n            var re = /\\s/;\n        else\n            var re = this.nonTokenRe;\n\n        var start = column;\n        if (start > 0) {\n            do {\n                start--;\n            }\n            while (start >= 0 && line.charAt(start).match(re));\n            start++;\n        }\n\n        var end = column;\n        while (end < line.length && line.charAt(end).match(re)) {\n            end++;\n        }\n\n        return new Range(row, start, row, end);\n    };\n    this.getAWordRange = function(row, column) {\n        var wordRange = this.getWordRange(row, column);\n        var line = this.getLine(wordRange.end.row);\n\n        while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n            wordRange.end.column += 1;\n        }\n        return wordRange;\n    };\n    this.setNewLineMode = function(newLineMode) {\n        this.doc.setNewLineMode(newLineMode);\n    };\n    this.getNewLineMode = function() {\n        return this.doc.getNewLineMode();\n    };\n    this.setUseWorker = function(useWorker) { this.setOption(\"useWorker\", useWorker); };\n    this.getUseWorker = function() { return this.$useWorker; };\n    this.onReloadTokenizer = function(e) {\n        var rows = e.data;\n        this.bgTokenizer.start(rows.first);\n        this._signal(\"tokenizerUpdate\", e);\n    };\n\n    this.$modes = {};\n    this.$mode = null;\n    this.$modeId = null;\n    this.setMode = function(mode, cb) {\n        if (mode && typeof mode === \"object\") {\n            if (mode.getTokenizer)\n                return this.$onChangeMode(mode);\n            var options = mode;\n            var path = options.path;\n        } else {\n            path = mode || \"ace/mode/text\";\n        }\n        if (!this.$modes[\"ace/mode/text\"])\n            this.$modes[\"ace/mode/text\"] = new TextMode();\n\n        if (this.$modes[path] && !options) {\n            this.$onChangeMode(this.$modes[path]);\n            cb && cb();\n            return;\n        }\n        this.$modeId = path;\n        config.loadModule([\"mode\", path], function(m) {\n            if (this.$modeId !== path)\n                return cb && cb();\n            if (this.$modes[path] && !options) {\n                this.$onChangeMode(this.$modes[path]);\n            } else if (m && m.Mode) {\n                m = new m.Mode(options);\n                if (!options) {\n                    this.$modes[path] = m;\n                    m.$id = path;\n                }\n                this.$onChangeMode(m);\n            }\n            cb && cb();\n        }.bind(this));\n        if (!this.$mode)\n            this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n    };\n\n    this.$onChangeMode = function(mode, $isPlaceholder) {\n        if (!$isPlaceholder)\n            this.$modeId = mode.$id;\n        if (this.$mode === mode) \n            return;\n\n        this.$mode = mode;\n\n        this.$stopWorker();\n\n        if (this.$useWorker)\n            this.$startWorker();\n\n        var tokenizer = mode.getTokenizer();\n\n        if(tokenizer.addEventListener !== undefined) {\n            var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n            tokenizer.addEventListener(\"update\", onReloadTokenizer);\n        }\n\n        if (!this.bgTokenizer) {\n            this.bgTokenizer = new BackgroundTokenizer(tokenizer);\n            var _self = this;\n            this.bgTokenizer.addEventListener(\"update\", function(e) {\n                _self._signal(\"tokenizerUpdate\", e);\n            });\n        } else {\n            this.bgTokenizer.setTokenizer(tokenizer);\n        }\n\n        this.bgTokenizer.setDocument(this.getDocument());\n\n        this.tokenRe = mode.tokenRe;\n        this.nonTokenRe = mode.nonTokenRe;\n\n        \n        if (!$isPlaceholder) {\n            if (mode.attachToSession)\n                mode.attachToSession(this);\n            this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n            this.$setFolding(mode.foldingRules);\n            this.bgTokenizer.start(0);\n            this._emit(\"changeMode\");\n        }\n    };\n\n    this.$stopWorker = function() {\n        if (this.$worker) {\n            this.$worker.terminate();\n            this.$worker = null;\n        }\n    };\n\n    this.$startWorker = function() {\n        try {\n            this.$worker = this.$mode.createWorker(this);\n        } catch (e) {\n            config.warn(\"Could not load worker\", e);\n            this.$worker = null;\n        }\n    };\n    this.getMode = function() {\n        return this.$mode;\n    };\n\n    this.$scrollTop = 0;\n    this.setScrollTop = function(scrollTop) {\n        if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n            return;\n\n        this.$scrollTop = scrollTop;\n        this._signal(\"changeScrollTop\", scrollTop);\n    };\n    this.getScrollTop = function() {\n        return this.$scrollTop;\n    };\n\n    this.$scrollLeft = 0;\n    this.setScrollLeft = function(scrollLeft) {\n        if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n            return;\n\n        this.$scrollLeft = scrollLeft;\n        this._signal(\"changeScrollLeft\", scrollLeft);\n    };\n    this.getScrollLeft = function() {\n        return this.$scrollLeft;\n    };\n    this.getScreenWidth = function() {\n        this.$computeWidth();\n        if (this.lineWidgets) \n            return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n        return this.screenWidth;\n    };\n    \n    this.getLineWidgetMaxWidth = function() {\n        if (this.lineWidgetsWidth != null) return this.lineWidgetsWidth;\n        var width = 0;\n        this.lineWidgets.forEach(function(w) {\n            if (w && w.screenWidth > width)\n                width = w.screenWidth;\n        });\n        return this.lineWidgetWidth = width;\n    };\n\n    this.$computeWidth = function(force) {\n        if (this.$modified || force) {\n            this.$modified = false;\n\n            if (this.$useWrapMode)\n                return this.screenWidth = this.$wrapLimit;\n\n            var lines = this.doc.getAllLines();\n            var cache = this.$rowLengthCache;\n            var longestScreenLine = 0;\n            var foldIndex = 0;\n            var foldLine = this.$foldData[foldIndex];\n            var foldStart = foldLine ? foldLine.start.row : Infinity;\n            var len = lines.length;\n\n            for (var i = 0; i < len; i++) {\n                if (i > foldStart) {\n                    i = foldLine.end.row + 1;\n                    if (i >= len)\n                        break;\n                    foldLine = this.$foldData[foldIndex++];\n                    foldStart = foldLine ? foldLine.start.row : Infinity;\n                }\n\n                if (cache[i] == null)\n                    cache[i] = this.$getStringScreenWidth(lines[i])[0];\n\n                if (cache[i] > longestScreenLine)\n                    longestScreenLine = cache[i];\n            }\n            this.screenWidth = longestScreenLine;\n        }\n    };\n    this.getLine = function(row) {\n        return this.doc.getLine(row);\n    };\n    this.getLines = function(firstRow, lastRow) {\n        return this.doc.getLines(firstRow, lastRow);\n    };\n    this.getLength = function() {\n        return this.doc.getLength();\n    };\n    this.getTextRange = function(range) {\n        return this.doc.getTextRange(range || this.selection.getRange());\n    };\n    this.insert = function(position, text) {\n        return this.doc.insert(position, text);\n    };\n    this.remove = function(range) {\n        return this.doc.remove(range);\n    };\n    this.removeFullLines = function(firstRow, lastRow){\n        return this.doc.removeFullLines(firstRow, lastRow);\n    };\n    this.undoChanges = function(deltas, dontSelect) {\n        if (!deltas.length)\n            return;\n\n        this.$fromUndo = true;\n        var lastUndoRange = null;\n        for (var i = deltas.length - 1; i != -1; i--) {\n            var delta = deltas[i];\n            if (delta.group == \"doc\") {\n                this.doc.revertDeltas(delta.deltas);\n                lastUndoRange =\n                    this.$getUndoSelection(delta.deltas, true, lastUndoRange);\n            } else {\n                delta.deltas.forEach(function(foldDelta) {\n                    this.addFolds(foldDelta.folds);\n                }, this);\n            }\n        }\n        this.$fromUndo = false;\n        lastUndoRange &&\n            this.$undoSelect &&\n            !dontSelect &&\n            this.selection.setSelectionRange(lastUndoRange);\n        return lastUndoRange;\n    };\n    this.redoChanges = function(deltas, dontSelect) {\n        if (!deltas.length)\n            return;\n\n        this.$fromUndo = true;\n        var lastUndoRange = null;\n        for (var i = 0; i < deltas.length; i++) {\n            var delta = deltas[i];\n            if (delta.group == \"doc\") {\n                this.doc.applyDeltas(delta.deltas);\n                lastUndoRange =\n                    this.$getUndoSelection(delta.deltas, false, lastUndoRange);\n            }\n        }\n        this.$fromUndo = false;\n        lastUndoRange &&\n            this.$undoSelect &&\n            !dontSelect &&\n            this.selection.setSelectionRange(lastUndoRange);\n        return lastUndoRange;\n    };\n    this.setUndoSelect = function(enable) {\n        this.$undoSelect = enable;\n    };\n\n    this.$getUndoSelection = function(deltas, isUndo, lastUndoRange) {\n        function isInsert(delta) {\n            return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n        }\n\n        var delta = deltas[0];\n        var range, point;\n        var lastDeltaIsInsert = false;\n        if (isInsert(delta)) {\n            range = Range.fromPoints(delta.start, delta.end);\n            lastDeltaIsInsert = true;\n        } else {\n            range = Range.fromPoints(delta.start, delta.start);\n            lastDeltaIsInsert = false;\n        }\n\n        for (var i = 1; i < deltas.length; i++) {\n            delta = deltas[i];\n            if (isInsert(delta)) {\n                point = delta.start;\n                if (range.compare(point.row, point.column) == -1) {\n                    range.setStart(point);\n                }\n                point = delta.end;\n                if (range.compare(point.row, point.column) == 1) {\n                    range.setEnd(point);\n                }\n                lastDeltaIsInsert = true;\n            } else {\n                point = delta.start;\n                if (range.compare(point.row, point.column) == -1) {\n                    range = Range.fromPoints(delta.start, delta.start);\n                }\n                lastDeltaIsInsert = false;\n            }\n        }\n        if (lastUndoRange != null) {\n            if (Range.comparePoints(lastUndoRange.start, range.start) === 0) {\n                lastUndoRange.start.column += range.end.column - range.start.column;\n                lastUndoRange.end.column += range.end.column - range.start.column;\n            }\n\n            var cmp = lastUndoRange.compareRange(range);\n            if (cmp == 1) {\n                range.setStart(lastUndoRange.start);\n            } else if (cmp == -1) {\n                range.setEnd(lastUndoRange.end);\n            }\n        }\n\n        return range;\n    };\n    this.replace = function(range, text) {\n        return this.doc.replace(range, text);\n    };\n    this.moveText = function(fromRange, toPosition, copy) {\n        var text = this.getTextRange(fromRange);\n        var folds = this.getFoldsInRange(fromRange);\n\n        var toRange = Range.fromPoints(toPosition, toPosition);\n        if (!copy) {\n            this.remove(fromRange);\n            var rowDiff = fromRange.start.row - fromRange.end.row;\n            var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n            if (collDiff) {\n                if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n                    toRange.start.column += collDiff;\n                if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n                    toRange.end.column += collDiff;\n            }\n            if (rowDiff && toRange.start.row >= fromRange.end.row) {\n                toRange.start.row += rowDiff;\n                toRange.end.row += rowDiff;\n            }\n        }\n\n        toRange.end = this.insert(toRange.start, text);\n        if (folds.length) {\n            var oldStart = fromRange.start;\n            var newStart = toRange.start;\n            var rowDiff = newStart.row - oldStart.row;\n            var collDiff = newStart.column - oldStart.column;\n            this.addFolds(folds.map(function(x) {\n                x = x.clone();\n                if (x.start.row == oldStart.row)\n                    x.start.column += collDiff;\n                if (x.end.row == oldStart.row)\n                    x.end.column += collDiff;\n                x.start.row += rowDiff;\n                x.end.row += rowDiff;\n                return x;\n            }));\n        }\n\n        return toRange;\n    };\n    this.indentRows = function(startRow, endRow, indentString) {\n        indentString = indentString.replace(/\\t/g, this.getTabString());\n        for (var row=startRow; row<=endRow; row++)\n            this.doc.insertInLine({row: row, column: 0}, indentString);\n    };\n    this.outdentRows = function (range) {\n        var rowRange = range.collapseRows();\n        var deleteRange = new Range(0, 0, 0, 0);\n        var size = this.getTabSize();\n\n        for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n            var line = this.getLine(i);\n\n            deleteRange.start.row = i;\n            deleteRange.end.row = i;\n            for (var j = 0; j < size; ++j)\n                if (line.charAt(j) != ' ')\n                    break;\n            if (j < size && line.charAt(j) == '\\t') {\n                deleteRange.start.column = j;\n                deleteRange.end.column = j + 1;\n            } else {\n                deleteRange.start.column = 0;\n                deleteRange.end.column = j;\n            }\n            this.remove(deleteRange);\n        }\n    };\n\n    this.$moveLines = function(firstRow, lastRow, dir) {\n        firstRow = this.getRowFoldStart(firstRow);\n        lastRow = this.getRowFoldEnd(lastRow);\n        if (dir < 0) {\n            var row = this.getRowFoldStart(firstRow + dir);\n            if (row < 0) return 0;\n            var diff = row-firstRow;\n        } else if (dir > 0) {\n            var row = this.getRowFoldEnd(lastRow + dir);\n            if (row > this.doc.getLength()-1) return 0;\n            var diff = row-lastRow;\n        } else {\n            firstRow = this.$clipRowToDocument(firstRow);\n            lastRow = this.$clipRowToDocument(lastRow);\n            var diff = lastRow - firstRow + 1;\n        }\n\n        var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n        var folds = this.getFoldsInRange(range).map(function(x){\n            x = x.clone();\n            x.start.row += diff;\n            x.end.row += diff;\n            return x;\n        });\n        \n        var lines = dir == 0\n            ? this.doc.getLines(firstRow, lastRow)\n            : this.doc.removeFullLines(firstRow, lastRow);\n        this.doc.insertFullLines(firstRow+diff, lines);\n        folds.length && this.addFolds(folds);\n        return diff;\n    };\n    this.moveLinesUp = function(firstRow, lastRow) {\n        return this.$moveLines(firstRow, lastRow, -1);\n    };\n    this.moveLinesDown = function(firstRow, lastRow) {\n        return this.$moveLines(firstRow, lastRow, 1);\n    };\n    this.duplicateLines = function(firstRow, lastRow) {\n        return this.$moveLines(firstRow, lastRow, 0);\n    };\n\n\n    this.$clipRowToDocument = function(row) {\n        return Math.max(0, Math.min(row, this.doc.getLength()-1));\n    };\n\n    this.$clipColumnToRow = function(row, column) {\n        if (column < 0)\n            return 0;\n        return Math.min(this.doc.getLine(row).length, column);\n    };\n\n\n    this.$clipPositionToDocument = function(row, column) {\n        column = Math.max(0, column);\n\n        if (row < 0) {\n            row = 0;\n            column = 0;\n        } else {\n            var len = this.doc.getLength();\n            if (row >= len) {\n                row = len - 1;\n                column = this.doc.getLine(len-1).length;\n            } else {\n                column = Math.min(this.doc.getLine(row).length, column);\n            }\n        }\n\n        return {\n            row: row,\n            column: column\n        };\n    };\n\n    this.$clipRangeToDocument = function(range) {\n        if (range.start.row < 0) {\n            range.start.row = 0;\n            range.start.column = 0;\n        } else {\n            range.start.column = this.$clipColumnToRow(\n                range.start.row,\n                range.start.column\n            );\n        }\n\n        var len = this.doc.getLength() - 1;\n        if (range.end.row > len) {\n            range.end.row = len;\n            range.end.column = this.doc.getLine(len).length;\n        } else {\n            range.end.column = this.$clipColumnToRow(\n                range.end.row,\n                range.end.column\n            );\n        }\n        return range;\n    };\n    this.$wrapLimit = 80;\n    this.$useWrapMode = false;\n    this.$wrapLimitRange = {\n        min : null,\n        max : null\n    };\n    this.setUseWrapMode = function(useWrapMode) {\n        if (useWrapMode != this.$useWrapMode) {\n            this.$useWrapMode = useWrapMode;\n            this.$modified = true;\n            this.$resetRowCache(0);\n            if (useWrapMode) {\n                var len = this.getLength();\n                this.$wrapData = Array(len);\n                this.$updateWrapData(0, len - 1);\n            }\n\n            this._signal(\"changeWrapMode\");\n        }\n    };\n    this.getUseWrapMode = function() {\n        return this.$useWrapMode;\n    };\n    this.setWrapLimitRange = function(min, max) {\n        if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n            this.$wrapLimitRange = { min: min, max: max };\n            this.$modified = true;\n            if (this.$useWrapMode)\n                this._signal(\"changeWrapMode\");\n        }\n    };\n    this.adjustWrapLimit = function(desiredLimit, $printMargin) {\n        var limits = this.$wrapLimitRange;\n        if (limits.max < 0)\n            limits = {min: $printMargin, max: $printMargin};\n        var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n        if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n            this.$wrapLimit = wrapLimit;\n            this.$modified = true;\n            if (this.$useWrapMode) {\n                this.$updateWrapData(0, this.getLength() - 1);\n                this.$resetRowCache(0);\n                this._signal(\"changeWrapLimit\");\n            }\n            return true;\n        }\n        return false;\n    };\n\n    this.$constrainWrapLimit = function(wrapLimit, min, max) {\n        if (min)\n            wrapLimit = Math.max(min, wrapLimit);\n\n        if (max)\n            wrapLimit = Math.min(max, wrapLimit);\n\n        return wrapLimit;\n    };\n    this.getWrapLimit = function() {\n        return this.$wrapLimit;\n    };\n    this.setWrapLimit = function (limit) {\n        this.setWrapLimitRange(limit, limit);\n    };\n    this.getWrapLimitRange = function() {\n        return {\n            min : this.$wrapLimitRange.min,\n            max : this.$wrapLimitRange.max\n        };\n    };\n\n    this.$updateInternalDataOnChange = function(delta) {\n        var useWrapMode = this.$useWrapMode;\n        var action = delta.action;\n        var start = delta.start;\n        var end = delta.end;\n        var firstRow = start.row;\n        var lastRow = end.row;\n        var len = lastRow - firstRow;\n        var removedFolds = null;\n        \n        this.$updating = true;\n        if (len != 0) {\n            if (action === \"remove\") {\n                this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n\n                var foldLines = this.$foldData;\n                removedFolds = this.getFoldsInRange(delta);\n                this.removeFolds(removedFolds);\n\n                var foldLine = this.getFoldLine(end.row);\n                var idx = 0;\n                if (foldLine) {\n                    foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n                    foldLine.shiftRow(-len);\n\n                    var foldLineBefore = this.getFoldLine(firstRow);\n                    if (foldLineBefore && foldLineBefore !== foldLine) {\n                        foldLineBefore.merge(foldLine);\n                        foldLine = foldLineBefore;\n                    }\n                    idx = foldLines.indexOf(foldLine) + 1;\n                }\n\n                for (idx; idx < foldLines.length; idx++) {\n                    var foldLine = foldLines[idx];\n                    if (foldLine.start.row >= end.row) {\n                        foldLine.shiftRow(-len);\n                    }\n                }\n\n                lastRow = firstRow;\n            } else {\n                var args = Array(len);\n                args.unshift(firstRow, 0);\n                var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache\n                arr.splice.apply(arr, args);\n                var foldLines = this.$foldData;\n                var foldLine = this.getFoldLine(firstRow);\n                var idx = 0;\n                if (foldLine) {\n                    var cmp = foldLine.range.compareInside(start.row, start.column);\n                    if (cmp == 0) {\n                        foldLine = foldLine.split(start.row, start.column);\n                        if (foldLine) {\n                            foldLine.shiftRow(len);\n                            foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n                        }\n                    } else\n                    if (cmp == -1) {\n                        foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n                        foldLine.shiftRow(len);\n                    }\n                    idx = foldLines.indexOf(foldLine) + 1;\n                }\n\n                for (idx; idx < foldLines.length; idx++) {\n                    var foldLine = foldLines[idx];\n                    if (foldLine.start.row >= firstRow) {\n                        foldLine.shiftRow(len);\n                    }\n                }\n            }\n        } else {\n            len = Math.abs(delta.start.column - delta.end.column);\n            if (action === \"remove\") {\n                removedFolds = this.getFoldsInRange(delta);\n                this.removeFolds(removedFolds);\n\n                len = -len;\n            }\n            var foldLine = this.getFoldLine(firstRow);\n            if (foldLine) {\n                foldLine.addRemoveChars(firstRow, start.column, len);\n            }\n        }\n\n        if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n            console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n        }\n        this.$updating = false;\n\n        if (useWrapMode)\n            this.$updateWrapData(firstRow, lastRow);\n        else\n            this.$updateRowLengthCache(firstRow, lastRow);\n\n        return removedFolds;\n    };\n\n    this.$updateRowLengthCache = function(firstRow, lastRow, b) {\n        this.$rowLengthCache[firstRow] = null;\n        this.$rowLengthCache[lastRow] = null;\n    };\n\n    this.$updateWrapData = function(firstRow, lastRow) {\n        var lines = this.doc.getAllLines();\n        var tabSize = this.getTabSize();\n        var wrapData = this.$wrapData;\n        var wrapLimit = this.$wrapLimit;\n        var tokens;\n        var foldLine;\n\n        var row = firstRow;\n        lastRow = Math.min(lastRow, lines.length - 1);\n        while (row <= lastRow) {\n            foldLine = this.getFoldLine(row, foldLine);\n            if (!foldLine) {\n                tokens = this.$getDisplayTokens(lines[row]);\n                wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n                row ++;\n            } else {\n                tokens = [];\n                foldLine.walk(function(placeholder, row, column, lastColumn) {\n                        var walkTokens;\n                        if (placeholder != null) {\n                            walkTokens = this.$getDisplayTokens(\n                                            placeholder, tokens.length);\n                            walkTokens[0] = PLACEHOLDER_START;\n                            for (var i = 1; i < walkTokens.length; i++) {\n                                walkTokens[i] = PLACEHOLDER_BODY;\n                            }\n                        } else {\n                            walkTokens = this.$getDisplayTokens(\n                                lines[row].substring(lastColumn, column),\n                                tokens.length);\n                        }\n                        tokens = tokens.concat(walkTokens);\n                    }.bind(this),\n                    foldLine.end.row,\n                    lines[foldLine.end.row].length + 1\n                );\n\n                wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n                row = foldLine.end.row + 1;\n            }\n        }\n    };\n    var CHAR = 1,\n        CHAR_EXT = 2,\n        PLACEHOLDER_START = 3,\n        PLACEHOLDER_BODY =  4,\n        PUNCTUATION = 9,\n        SPACE = 10,\n        TAB = 11,\n        TAB_SPACE = 12;\n\n\n    this.$computeWrapSplits = function(tokens, wrapLimit, tabSize) {\n        if (tokens.length == 0) {\n            return [];\n        }\n\n        var splits = [];\n        var displayLength = tokens.length;\n        var lastSplit = 0, lastDocSplit = 0;\n\n        var isCode = this.$wrapAsCode;\n\n        var indentedSoftWrap = this.$indentedSoftWrap;\n        var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n            || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n\n        function getWrapIndent() {\n            var indentation = 0;\n            if (maxIndent === 0)\n                return indentation;\n            if (indentedSoftWrap) {\n                for (var i = 0; i < tokens.length; i++) {\n                    var token = tokens[i];\n                    if (token == SPACE)\n                        indentation += 1;\n                    else if (token == TAB)\n                        indentation += tabSize;\n                    else if (token == TAB_SPACE)\n                        continue;\n                    else\n                        break;\n                }\n            }\n            if (isCode && indentedSoftWrap !== false)\n                indentation += tabSize;\n            return Math.min(indentation, maxIndent);\n        }\n        function addSplit(screenPos) {\n            var displayed = tokens.slice(lastSplit, screenPos);\n            var len = displayed.length;\n            displayed.join(\"\")\n                .replace(/12/g, function() {\n                    len -= 1;\n                })\n                .replace(/2/g, function() {\n                    len -= 1;\n                });\n\n            if (!splits.length) {\n                indent = getWrapIndent();\n                splits.indent = indent;\n            }\n            lastDocSplit += len;\n            splits.push(lastDocSplit);\n            lastSplit = screenPos;\n        }\n        var indent = 0;\n        while (displayLength - lastSplit > wrapLimit - indent) {\n            var split = lastSplit + wrapLimit - indent;\n            if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n                addSplit(split);\n                continue;\n            }\n            if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n                for (split; split != lastSplit - 1; split--) {\n                    if (tokens[split] == PLACEHOLDER_START) {\n                        break;\n                    }\n                }\n                if (split > lastSplit) {\n                    addSplit(split);\n                    continue;\n                }\n                split = lastSplit + wrapLimit;\n                for (split; split < tokens.length; split++) {\n                    if (tokens[split] != PLACEHOLDER_BODY) {\n                        break;\n                    }\n                }\n                if (split == tokens.length) {\n                    break;  // Breaks the while-loop.\n                }\n                addSplit(split);\n                continue;\n            }\n            var minSplit = Math.max(split - (wrapLimit -(wrapLimit>>2)), lastSplit - 1);\n            while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n                split --;\n            }\n            if (isCode) {\n                while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n                    split --;\n                }\n                while (split > minSplit && tokens[split] == PUNCTUATION) {\n                    split --;\n                }\n            } else {\n                while (split > minSplit && tokens[split] < SPACE) {\n                    split --;\n                }\n            }\n            if (split > minSplit) {\n                addSplit(++split);\n                continue;\n            }\n            split = lastSplit + wrapLimit;\n            if (tokens[split] == CHAR_EXT)\n                split--;\n            addSplit(split - indent);\n        }\n        return splits;\n    };\n    this.$getDisplayTokens = function(str, offset) {\n        var arr = [];\n        var tabSize;\n        offset = offset || 0;\n\n        for (var i = 0; i < str.length; i++) {\n            var c = str.charCodeAt(i);\n            if (c == 9) {\n                tabSize = this.getScreenTabSize(arr.length + offset);\n                arr.push(TAB);\n                for (var n = 1; n < tabSize; n++) {\n                    arr.push(TAB_SPACE);\n                }\n            }\n            else if (c == 32) {\n                arr.push(SPACE);\n            } else if((c > 39 && c < 48) || (c > 57 && c < 64)) {\n                arr.push(PUNCTUATION);\n            }\n            else if (c >= 0x1100 && isFullWidth(c)) {\n                arr.push(CHAR, CHAR_EXT);\n            } else {\n                arr.push(CHAR);\n            }\n        }\n        return arr;\n    };\n    this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) {\n        if (maxScreenColumn == 0)\n            return [0, 0];\n        if (maxScreenColumn == null)\n            maxScreenColumn = Infinity;\n        screenColumn = screenColumn || 0;\n\n        var c, column;\n        for (column = 0; column < str.length; column++) {\n            c = str.charCodeAt(column);\n            if (c == 9) {\n                screenColumn += this.getScreenTabSize(screenColumn);\n            }\n            else if (c >= 0x1100 && isFullWidth(c)) {\n                screenColumn += 2;\n            } else {\n                screenColumn += 1;\n            }\n            if (screenColumn > maxScreenColumn) {\n                break;\n            }\n        }\n\n        return [screenColumn, column];\n    };\n\n    this.lineWidgets = null;\n    this.getRowLength = function(row) {\n        if (this.lineWidgets)\n            var h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n        else \n            h = 0\n        if (!this.$useWrapMode || !this.$wrapData[row]) {\n            return 1 + h;\n        } else {\n            return this.$wrapData[row].length + 1 + h;\n        }\n    };\n    this.getRowLineCount = function(row) {\n        if (!this.$useWrapMode || !this.$wrapData[row]) {\n            return 1;\n        } else {\n            return this.$wrapData[row].length + 1;\n        }\n    };\n\n    this.getRowWrapIndent = function(screenRow) {\n        if (this.$useWrapMode) {\n            var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n            var splits = this.$wrapData[pos.row];\n            return splits.length && splits[0] < pos.column ? splits.indent : 0;\n        } else {\n            return 0;\n        }\n    }\n    this.getScreenLastRowColumn = function(screenRow) {\n        var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n        return this.documentToScreenColumn(pos.row, pos.column);\n    };\n    this.getDocumentLastRowColumn = function(docRow, docColumn) {\n        var screenRow = this.documentToScreenRow(docRow, docColumn);\n        return this.getScreenLastRowColumn(screenRow);\n    };\n    this.getDocumentLastRowColumnPosition = function(docRow, docColumn) {\n        var screenRow = this.documentToScreenRow(docRow, docColumn);\n        return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n    };\n    this.getRowSplitData = function(row) {\n        if (!this.$useWrapMode) {\n            return undefined;\n        } else {\n            return this.$wrapData[row];\n        }\n    };\n    this.getScreenTabSize = function(screenColumn) {\n        return this.$tabSize - screenColumn % this.$tabSize;\n    };\n\n\n    this.screenToDocumentRow = function(screenRow, screenColumn) {\n        return this.screenToDocumentPosition(screenRow, screenColumn).row;\n    };\n\n\n    this.screenToDocumentColumn = function(screenRow, screenColumn) {\n        return this.screenToDocumentPosition(screenRow, screenColumn).column;\n    };\n    this.screenToDocumentPosition = function(screenRow, screenColumn) {\n        if (screenRow < 0)\n            return {row: 0, column: 0};\n\n        var line;\n        var docRow = 0;\n        var docColumn = 0;\n        var column;\n        var row = 0;\n        var rowLength = 0;\n\n        var rowCache = this.$screenRowCache;\n        var i = this.$getRowCacheIndex(rowCache, screenRow);\n        var l = rowCache.length;\n        if (l && i >= 0) {\n            var row = rowCache[i];\n            var docRow = this.$docRowCache[i];\n            var doCache = screenRow > rowCache[l - 1];\n        } else {\n            var doCache = !l;\n        }\n\n        var maxRow = this.getLength() - 1;\n        var foldLine = this.getNextFoldLine(docRow);\n        var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n        while (row <= screenRow) {\n            rowLength = this.getRowLength(docRow);\n            if (row + rowLength > screenRow || docRow >= maxRow) {\n                break;\n            } else {\n                row += rowLength;\n                docRow++;\n                if (docRow > foldStart) {\n                    docRow = foldLine.end.row+1;\n                    foldLine = this.getNextFoldLine(docRow, foldLine);\n                    foldStart = foldLine ? foldLine.start.row : Infinity;\n                }\n            }\n\n            if (doCache) {\n                this.$docRowCache.push(docRow);\n                this.$screenRowCache.push(row);\n            }\n        }\n\n        if (foldLine && foldLine.start.row <= docRow) {\n            line = this.getFoldDisplayLine(foldLine);\n            docRow = foldLine.start.row;\n        } else if (row + rowLength <= screenRow || docRow > maxRow) {\n            return {\n                row: maxRow,\n                column: this.getLine(maxRow).length\n            };\n        } else {\n            line = this.getLine(docRow);\n            foldLine = null;\n        }\n        var wrapIndent = 0;\n        if (this.$useWrapMode) {\n            var splits = this.$wrapData[docRow];\n            if (splits) {\n                var splitIndex = Math.floor(screenRow - row);\n                column = splits[splitIndex];\n                if(splitIndex > 0 && splits.length) {\n                    wrapIndent = splits.indent;\n                    docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n                    line = line.substring(docColumn);\n                }\n            }\n        }\n\n        docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n        if (this.$useWrapMode && docColumn >= column)\n            docColumn = column - 1;\n\n        if (foldLine)\n            return foldLine.idxToPosition(docColumn);\n\n        return {row: docRow, column: docColumn};\n    };\n    this.documentToScreenPosition = function(docRow, docColumn) {\n        if (typeof docColumn === \"undefined\")\n            var pos = this.$clipPositionToDocument(docRow.row, docRow.column);\n        else\n            pos = this.$clipPositionToDocument(docRow, docColumn);\n\n        docRow = pos.row;\n        docColumn = pos.column;\n\n        var screenRow = 0;\n        var foldStartRow = null;\n        var fold = null;\n        fold = this.getFoldAt(docRow, docColumn, 1);\n        if (fold) {\n            docRow = fold.start.row;\n            docColumn = fold.start.column;\n        }\n\n        var rowEnd, row = 0;\n\n\n        var rowCache = this.$docRowCache;\n        var i = this.$getRowCacheIndex(rowCache, docRow);\n        var l = rowCache.length;\n        if (l && i >= 0) {\n            var row = rowCache[i];\n            var screenRow = this.$screenRowCache[i];\n            var doCache = docRow > rowCache[l - 1];\n        } else {\n            var doCache = !l;\n        }\n\n        var foldLine = this.getNextFoldLine(row);\n        var foldStart = foldLine ?foldLine.start.row :Infinity;\n\n        while (row < docRow) {\n            if (row >= foldStart) {\n                rowEnd = foldLine.end.row + 1;\n                if (rowEnd > docRow)\n                    break;\n                foldLine = this.getNextFoldLine(rowEnd, foldLine);\n                foldStart = foldLine ?foldLine.start.row :Infinity;\n            }\n            else {\n                rowEnd = row + 1;\n            }\n\n            screenRow += this.getRowLength(row);\n            row = rowEnd;\n\n            if (doCache) {\n                this.$docRowCache.push(row);\n                this.$screenRowCache.push(screenRow);\n            }\n        }\n        var textLine = \"\";\n        if (foldLine && row >= foldStart) {\n            textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n            foldStartRow = foldLine.start.row;\n        } else {\n            textLine = this.getLine(docRow).substring(0, docColumn);\n            foldStartRow = docRow;\n        }\n        var wrapIndent = 0;\n        if (this.$useWrapMode) {\n            var wrapRow = this.$wrapData[foldStartRow];\n            if (wrapRow) {\n                var screenRowOffset = 0;\n                while (textLine.length >= wrapRow[screenRowOffset]) {\n                    screenRow ++;\n                    screenRowOffset++;\n                }\n                textLine = textLine.substring(\n                    wrapRow[screenRowOffset - 1] || 0, textLine.length\n                );\n                wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n            }\n        }\n\n        return {\n            row: screenRow,\n            column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n        };\n    };\n    this.documentToScreenColumn = function(row, docColumn) {\n        return this.documentToScreenPosition(row, docColumn).column;\n    };\n    this.documentToScreenRow = function(docRow, docColumn) {\n        return this.documentToScreenPosition(docRow, docColumn).row;\n    };\n    this.getScreenLength = function() {\n        var screenRows = 0;\n        var fold = null;\n        if (!this.$useWrapMode) {\n            screenRows = this.getLength();\n            var foldData = this.$foldData;\n            for (var i = 0; i < foldData.length; i++) {\n                fold = foldData[i];\n                screenRows -= fold.end.row - fold.start.row;\n            }\n        } else {\n            var lastRow = this.$wrapData.length;\n            var row = 0, i = 0;\n            var fold = this.$foldData[i++];\n            var foldStart = fold ? fold.start.row :Infinity;\n\n            while (row < lastRow) {\n                var splits = this.$wrapData[row];\n                screenRows += splits ? splits.length + 1 : 1;\n                row ++;\n                if (row > foldStart) {\n                    row = fold.end.row+1;\n                    fold = this.$foldData[i++];\n                    foldStart = fold ?fold.start.row :Infinity;\n                }\n            }\n        }\n        if (this.lineWidgets)\n            screenRows += this.$getWidgetScreenLength();\n\n        return screenRows;\n    };\n    this.$setFontMetrics = function(fm) {\n        if (!this.$enableVarChar) return;\n        this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) {\n            if (maxScreenColumn === 0)\n                return [0, 0];\n            if (!maxScreenColumn)\n                maxScreenColumn = Infinity;\n            screenColumn = screenColumn || 0;\n            \n            var c, column;\n            for (column = 0; column < str.length; column++) {\n                c = str.charAt(column);\n                if (c === \"\\t\") {\n                    screenColumn += this.getScreenTabSize(screenColumn);\n                } else {\n                    screenColumn += fm.getCharacterWidth(c);\n                }\n                if (screenColumn > maxScreenColumn) {\n                    break;\n                }\n            }\n            \n            return [screenColumn, column];\n        };\n    };\n    \n    this.destroy = function() {\n        if (this.bgTokenizer) {\n            this.bgTokenizer.setDocument(null);\n            this.bgTokenizer = null;\n        }\n        this.$stopWorker();\n    };\n    function isFullWidth(c) {\n        if (c < 0x1100)\n            return false;\n        return c >= 0x1100 && c <= 0x115F ||\n               c >= 0x11A3 && c <= 0x11A7 ||\n               c >= 0x11FA && c <= 0x11FF ||\n               c >= 0x2329 && c <= 0x232A ||\n               c >= 0x2E80 && c <= 0x2E99 ||\n               c >= 0x2E9B && c <= 0x2EF3 ||\n               c >= 0x2F00 && c <= 0x2FD5 ||\n               c >= 0x2FF0 && c <= 0x2FFB ||\n               c >= 0x3000 && c <= 0x303E ||\n               c >= 0x3041 && c <= 0x3096 ||\n               c >= 0x3099 && c <= 0x30FF ||\n               c >= 0x3105 && c <= 0x312D ||\n               c >= 0x3131 && c <= 0x318E ||\n               c >= 0x3190 && c <= 0x31BA ||\n               c >= 0x31C0 && c <= 0x31E3 ||\n               c >= 0x31F0 && c <= 0x321E ||\n               c >= 0x3220 && c <= 0x3247 ||\n               c >= 0x3250 && c <= 0x32FE ||\n               c >= 0x3300 && c <= 0x4DBF ||\n               c >= 0x4E00 && c <= 0xA48C ||\n               c >= 0xA490 && c <= 0xA4C6 ||\n               c >= 0xA960 && c <= 0xA97C ||\n               c >= 0xAC00 && c <= 0xD7A3 ||\n               c >= 0xD7B0 && c <= 0xD7C6 ||\n               c >= 0xD7CB && c <= 0xD7FB ||\n               c >= 0xF900 && c <= 0xFAFF ||\n               c >= 0xFE10 && c <= 0xFE19 ||\n               c >= 0xFE30 && c <= 0xFE52 ||\n               c >= 0xFE54 && c <= 0xFE66 ||\n               c >= 0xFE68 && c <= 0xFE6B ||\n               c >= 0xFF01 && c <= 0xFF60 ||\n               c >= 0xFFE0 && c <= 0xFFE6;\n    }\n\n}).call(EditSession.prototype);\n\nrequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\nrequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\n\n\nconfig.defineOptions(EditSession.prototype, \"session\", {\n    wrap: {\n        set: function(value) {\n            if (!value || value == \"off\")\n                value = false;\n            else if (value == \"free\")\n                value = true;\n            else if (value == \"printMargin\")\n                value = -1;\n            else if (typeof value == \"string\")\n                value = parseInt(value, 10) || false;\n\n            if (this.$wrap == value)\n                return;\n            this.$wrap = value;\n            if (!value) {\n                this.setUseWrapMode(false);\n            } else {\n                var col = typeof value == \"number\" ? value : null;\n                this.setWrapLimitRange(col, col);\n                this.setUseWrapMode(true);\n            }\n        },\n        get: function() {\n            if (this.getUseWrapMode()) {\n                if (this.$wrap == -1)\n                    return \"printMargin\";\n                if (!this.getWrapLimitRange().min)\n                    return \"free\";\n                return this.$wrap;\n            }\n            return \"off\";\n        },\n        handlesSet: true\n    },    \n    wrapMethod: {\n        set: function(val) {\n            val = val == \"auto\"\n                ? this.$mode.type != \"text\"\n                : val != \"text\";\n            if (val != this.$wrapAsCode) {\n                this.$wrapAsCode = val;\n                if (this.$useWrapMode) {\n                    this.$modified = true;\n                    this.$resetRowCache(0);\n                    this.$updateWrapData(0, this.getLength() - 1);\n                }\n            }\n        },\n        initialValue: \"auto\"\n    },\n    indentedSoftWrap: { initialValue: true },\n    firstLineNumber: {\n        set: function() {this._signal(\"changeBreakpoint\");},\n        initialValue: 1\n    },\n    useWorker: {\n        set: function(useWorker) {\n            this.$useWorker = useWorker;\n\n            this.$stopWorker();\n            if (useWorker)\n                this.$startWorker();\n        },\n        initialValue: true\n    },\n    useSoftTabs: {initialValue: true},\n    tabSize: {\n        set: function(tabSize) {\n            if (isNaN(tabSize) || this.$tabSize === tabSize) return;\n\n            this.$modified = true;\n            this.$rowLengthCache = [];\n            this.$tabSize = tabSize;\n            this._signal(\"changeTabSize\");\n        },\n        initialValue: 4,\n        handlesSet: true\n    },\n    overwrite: {\n        set: function(val) {this._signal(\"changeOverwrite\");},\n        initialValue: false\n    },\n    newLineMode: {\n        set: function(val) {this.doc.setNewLineMode(val)},\n        get: function() {return this.doc.getNewLineMode()},\n        handlesSet: true\n    },\n    mode: {\n        set: function(val) { this.setMode(val) },\n        get: function() { return this.$modeId }\n    }\n});\n\nexports.EditSession = EditSession;\n});\n\nace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar lang = require(\"./lib/lang\");\nvar oop = require(\"./lib/oop\");\nvar Range = require(\"./range\").Range;\n\nvar Search = function() {\n    this.$options = {};\n};\n\n(function() {\n    this.set = function(options) {\n        oop.mixin(this.$options, options);\n        return this;\n    };\n    this.getOptions = function() {\n        return lang.copyObject(this.$options);\n    };\n    this.setOptions = function(options) {\n        this.$options = options;\n    };\n    this.find = function(session) {\n        var options = this.$options;\n        var iterator = this.$matchIterator(session, options);\n        if (!iterator)\n            return false;\n\n        var firstRange = null;\n        iterator.forEach(function(range, row, offset) {\n            if (!range.start) {\n                var column = range.offset + (offset || 0);\n                firstRange = new Range(row, column, row, column + range.length);\n                if (!range.length && options.start && options.start.start\n                    && options.skipCurrent != false && firstRange.isEqual(options.start)\n                ) {\n                    firstRange = null;\n                    return false;\n                }\n            } else\n                firstRange = range;\n            return true;\n        });\n\n        return firstRange;\n    };\n    this.findAll = function(session) {\n        var options = this.$options;\n        if (!options.needle)\n            return [];\n        this.$assembleRegExp(options);\n\n        var range = options.range;\n        var lines = range\n            ? session.getLines(range.start.row, range.end.row)\n            : session.doc.getAllLines();\n\n        var ranges = [];\n        var re = options.re;\n        if (options.$isMultiLine) {\n            var len = re.length;\n            var maxRow = lines.length - len;\n            var prevRange;\n            outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n                for (var j = 0; j < len; j++)\n                    if (lines[row + j].search(re[j]) == -1)\n                        continue outer;\n                \n                var startLine = lines[row];\n                var line = lines[row + len - 1];\n                var startIndex = startLine.length - startLine.match(re[0])[0].length;\n                var endIndex = line.match(re[len - 1])[0].length;\n                \n                if (prevRange && prevRange.end.row === row &&\n                    prevRange.end.column > startIndex\n                ) {\n                    continue;\n                }\n                ranges.push(prevRange = new Range(\n                    row, startIndex, row + len - 1, endIndex\n                ));\n                if (len > 2)\n                    row = row + len - 2;\n            }\n        } else {\n            for (var i = 0; i < lines.length; i++) {\n                var matches = lang.getMatchOffsets(lines[i], re);\n                for (var j = 0; j < matches.length; j++) {\n                    var match = matches[j];\n                    ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n                }\n            }\n        }\n\n        if (range) {\n            var startColumn = range.start.column;\n            var endColumn = range.start.column;\n            var i = 0, j = ranges.length - 1;\n            while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == range.start.row)\n                i++;\n\n            while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == range.end.row)\n                j--;\n            \n            ranges = ranges.slice(i, j + 1);\n            for (i = 0, j = ranges.length; i < j; i++) {\n                ranges[i].start.row += range.start.row;\n                ranges[i].end.row += range.start.row;\n            }\n        }\n\n        return ranges;\n    };\n    this.replace = function(input, replacement) {\n        var options = this.$options;\n\n        var re = this.$assembleRegExp(options);\n        if (options.$isMultiLine)\n            return replacement;\n\n        if (!re)\n            return;\n\n        var match = re.exec(input);\n        if (!match || match[0].length != input.length)\n            return null;\n        \n        replacement = input.replace(re, replacement);\n        if (options.preserveCase) {\n            replacement = replacement.split(\"\");\n            for (var i = Math.min(input.length, input.length); i--; ) {\n                var ch = input[i];\n                if (ch && ch.toLowerCase() != ch)\n                    replacement[i] = replacement[i].toUpperCase();\n                else\n                    replacement[i] = replacement[i].toLowerCase();\n            }\n            replacement = replacement.join(\"\");\n        }\n        \n        return replacement;\n    };\n\n    this.$matchIterator = function(session, options) {\n        var re = this.$assembleRegExp(options);\n        if (!re)\n            return false;\n\n        var callback;\n        if (options.$isMultiLine) {\n            var len = re.length;\n            var matchIterator = function(line, row, offset) {\n                var startIndex = line.search(re[0]);\n                if (startIndex == -1)\n                    return;\n                for (var i = 1; i < len; i++) {\n                    line = session.getLine(row + i);\n                    if (line.search(re[i]) == -1)\n                        return;\n                }\n\n                var endIndex = line.match(re[len - 1])[0].length;\n\n                var range = new Range(row, startIndex, row + len - 1, endIndex);\n                if (re.offset == 1) {\n                    range.start.row--;\n                    range.start.column = Number.MAX_VALUE;\n                } else if (offset)\n                    range.start.column += offset;\n\n                if (callback(range))\n                    return true;\n            };\n        } else if (options.backwards) {\n            var matchIterator = function(line, row, startIndex) {\n                var matches = lang.getMatchOffsets(line, re);\n                for (var i = matches.length-1; i >= 0; i--)\n                    if (callback(matches[i], row, startIndex))\n                        return true;\n            };\n        } else {\n            var matchIterator = function(line, row, startIndex) {\n                var matches = lang.getMatchOffsets(line, re);\n                for (var i = 0; i < matches.length; i++)\n                    if (callback(matches[i], row, startIndex))\n                        return true;\n            };\n        }\n        \n        var lineIterator = this.$lineIterator(session, options);\n\n        return {\n            forEach: function(_callback) {\n                callback = _callback;\n                lineIterator.forEach(matchIterator);\n            }\n        };\n    };\n\n    this.$assembleRegExp = function(options, $disableFakeMultiline) {\n        if (options.needle instanceof RegExp)\n            return options.re = options.needle;\n\n        var needle = options.needle;\n\n        if (!options.needle)\n            return options.re = false;\n\n        if (!options.regExp)\n            needle = lang.escapeRegExp(needle);\n\n        if (options.wholeWord)\n            needle = addWordBoundary(needle, options);\n\n        var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n\n        options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n        if (options.$isMultiLine)\n            return options.re = this.$assembleMultilineRegExp(needle, modifier);\n\n        try {\n            var re = new RegExp(needle, modifier);\n        } catch(e) {\n            re = false;\n        }\n        return options.re = re;\n    };\n\n    this.$assembleMultilineRegExp = function(needle, modifier) {\n        var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n        var re = [];\n        for (var i = 0; i < parts.length; i++) try {\n            re.push(new RegExp(parts[i], modifier));\n        } catch(e) {\n            return false;\n        }\n        if (parts[0] == \"\") {\n            re.shift();\n            re.offset = 1;\n        } else {\n            re.offset = 0;\n        }\n        return re;\n    };\n\n    this.$lineIterator = function(session, options) {\n        var backwards = options.backwards == true;\n        var skipCurrent = options.skipCurrent != false;\n\n        var range = options.range;\n        var start = options.start;\n        if (!start)\n            start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n         \n        if (start.start)\n            start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n\n        var firstRow = range ? range.start.row : 0;\n        var lastRow = range ? range.end.row : session.getLength() - 1;\n\n        var forEach = backwards ? function(callback) {\n                var row = start.row;\n\n                var line = session.getLine(row).substring(0, start.column);\n                if (callback(line, row))\n                    return;\n\n                for (row--; row >= firstRow; row--)\n                    if (callback(session.getLine(row), row))\n                        return;\n\n                if (options.wrap == false)\n                    return;\n\n                for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n                    if (callback(session.getLine(row), row))\n                        return;\n            } : function(callback) {\n                var row = start.row;\n\n                var line = session.getLine(row).substr(start.column);\n                if (callback(line, row, start.column))\n                    return;\n\n                for (row = row+1; row <= lastRow; row++)\n                    if (callback(session.getLine(row), row))\n                        return;\n\n                if (options.wrap == false)\n                    return;\n\n                for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n                    if (callback(session.getLine(row), row))\n                        return;\n            };\n        \n        return {forEach: forEach};\n    };\n\n}).call(Search.prototype);\n\nfunction addWordBoundary(needle, options) {\n    function wordBoundary(c) {\n        if (/\\w/.test(c) || options.regExp) return \"\\\\b\";\n        return \"\";\n    }\n    return wordBoundary(needle[0]) + needle\n        + wordBoundary(needle[needle.length - 1]);\n}\n\nexports.Search = Search;\n});\n\nace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module) {\n\"use strict\";\n\nvar keyUtil = require(\"../lib/keys\");\nvar useragent = require(\"../lib/useragent\");\nvar KEY_MODS = keyUtil.KEY_MODS;\n\nfunction HashHandler(config, platform) {\n    this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n    this.commands = {};\n    this.commandKeyBinding = {};\n    this.addCommands(config);\n    this.$singleCommand = true;\n}\n\nfunction MultiHashHandler(config, platform) {\n    HashHandler.call(this, config, platform);\n    this.$singleCommand = false;\n}\n\nMultiHashHandler.prototype = HashHandler.prototype;\n\n(function() {\n    \n\n    this.addCommand = function(command) {\n        if (this.commands[command.name])\n            this.removeCommand(command);\n\n        this.commands[command.name] = command;\n\n        if (command.bindKey)\n            this._buildKeyHash(command);\n    };\n\n    this.removeCommand = function(command, keepCommand) {\n        var name = command && (typeof command === 'string' ? command : command.name);\n        command = this.commands[name];\n        if (!keepCommand)\n            delete this.commands[name];\n        var ckb = this.commandKeyBinding;\n        for (var keyId in ckb) {\n            var cmdGroup = ckb[keyId];\n            if (cmdGroup == command) {\n                delete ckb[keyId];\n            } else if (Array.isArray(cmdGroup)) {\n                var i = cmdGroup.indexOf(command);\n                if (i != -1) {\n                    cmdGroup.splice(i, 1);\n                    if (cmdGroup.length == 1)\n                        ckb[keyId] = cmdGroup[0];\n                }\n            }\n        }\n    };\n\n    this.bindKey = function(key, command, position) {\n        if (typeof key == \"object\" && key) {\n            if (position == undefined)\n                position = key.position;\n            key = key[this.platform];\n        }\n        if (!key)\n            return;\n        if (typeof command == \"function\")\n            return this.addCommand({exec: command, bindKey: key, name: command.name || key});\n        \n        key.split(\"|\").forEach(function(keyPart) {\n            var chain = \"\";\n            if (keyPart.indexOf(\" \") != -1) {\n                var parts = keyPart.split(/\\s+/);\n                keyPart = parts.pop();\n                parts.forEach(function(keyPart) {\n                    var binding = this.parseKeys(keyPart);\n                    var id = KEY_MODS[binding.hashId] + binding.key;\n                    chain += (chain ? \" \" : \"\") + id;\n                    this._addCommandToBinding(chain, \"chainKeys\");\n                }, this);\n                chain += \" \";\n            }\n            var binding = this.parseKeys(keyPart);\n            var id = KEY_MODS[binding.hashId] + binding.key;\n            this._addCommandToBinding(chain + id, command, position);\n        }, this);\n    };\n    \n    function getPosition(command) {\n        return typeof command == \"object\" && command.bindKey\n            && command.bindKey.position || 0;\n    }\n    this._addCommandToBinding = function(keyId, command, position) {\n        var ckb = this.commandKeyBinding, i;\n        if (!command) {\n            delete ckb[keyId];\n        } else if (!ckb[keyId] || this.$singleCommand) {\n            ckb[keyId] = command;\n        } else {\n            if (!Array.isArray(ckb[keyId])) {\n                ckb[keyId] = [ckb[keyId]];\n            } else if ((i = ckb[keyId].indexOf(command)) != -1) {\n                ckb[keyId].splice(i, 1);\n            }\n\n            if (typeof position != \"number\") {\n                if (position || command.isDefault)\n                    position = -100;\n                else\n                   position = getPosition(command);\n            }\n            var commands = ckb[keyId];\n            for (i = 0; i < commands.length; i++) {\n                var other = commands[i];\n                var otherPos = getPosition(other);\n                if (otherPos > position)\n                    break;\n            }\n            commands.splice(i, 0, command);\n        }\n    };\n\n    this.addCommands = function(commands) {\n        commands && Object.keys(commands).forEach(function(name) {\n            var command = commands[name];\n            if (!command)\n                return;\n            \n            if (typeof command === \"string\")\n                return this.bindKey(command, name);\n\n            if (typeof command === \"function\")\n                command = { exec: command };\n\n            if (typeof command !== \"object\")\n                return;\n\n            if (!command.name)\n                command.name = name;\n\n            this.addCommand(command);\n        }, this);\n    };\n\n    this.removeCommands = function(commands) {\n        Object.keys(commands).forEach(function(name) {\n            this.removeCommand(commands[name]);\n        }, this);\n    };\n\n    this.bindKeys = function(keyList) {\n        Object.keys(keyList).forEach(function(key) {\n            this.bindKey(key, keyList[key]);\n        }, this);\n    };\n\n    this._buildKeyHash = function(command) {\n        this.bindKey(command.bindKey, command);\n    };\n    this.parseKeys = function(keys) {\n        var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function(x){return x});\n        var key = parts.pop();\n\n        var keyCode = keyUtil[key];\n        if (keyUtil.FUNCTION_KEYS[keyCode])\n            key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n        else if (!parts.length)\n            return {key: key, hashId: -1};\n        else if (parts.length == 1 && parts[0] == \"shift\")\n            return {key: key.toUpperCase(), hashId: -1};\n\n        var hashId = 0;\n        for (var i = parts.length; i--;) {\n            var modifier = keyUtil.KEY_MODS[parts[i]];\n            if (modifier == null) {\n                if (typeof console != \"undefined\")\n                    console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n                return false;\n            }\n            hashId |= modifier;\n        }\n        return {key: key, hashId: hashId};\n    };\n\n    this.findKeyCommand = function findKeyCommand(hashId, keyString) {\n        var key = KEY_MODS[hashId] + keyString;\n        return this.commandKeyBinding[key];\n    };\n\n    this.handleKeyboard = function(data, hashId, keyString, keyCode) {\n        if (keyCode < 0) return;\n        var key = KEY_MODS[hashId] + keyString;\n        var command = this.commandKeyBinding[key];\n        if (data.$keyChain) {\n            data.$keyChain += \" \" + key;\n            command = this.commandKeyBinding[data.$keyChain] || command;\n        }\n        \n        if (command) {\n            if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n                data.$keyChain = data.$keyChain || key;\n                return {command: \"null\"};\n            }\n        }\n        \n        if (data.$keyChain) {\n            if ((!hashId || hashId == 4) && keyString.length == 1)\n                data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n            else if (hashId == -1 || keyCode > 0)\n                data.$keyChain = \"\"; // reset keyChain\n        }\n        return {command: command};\n    };\n    \n    this.getStatusText = function(editor, data) {\n        return data.$keyChain || \"\";\n    };\n\n}).call(HashHandler.prototype);\n\nexports.HashHandler = HashHandler;\nexports.MultiHashHandler = MultiHashHandler;\n});\n\nace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar MultiHashHandler = require(\"../keyboard/hash_handler\").MultiHashHandler;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\n\nvar CommandManager = function(platform, commands) {\n    MultiHashHandler.call(this, commands, platform);\n    this.byName = this.commands;\n    this.setDefaultHandler(\"exec\", function(e) {\n        return e.command.exec(e.editor, e.args || {});\n    });\n};\n\noop.inherits(CommandManager, MultiHashHandler);\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n\n    this.exec = function(command, editor, args) {\n        if (Array.isArray(command)) {\n            for (var i = command.length; i--; ) {\n                if (this.exec(command[i], editor, args)) return true;\n            }\n            return false;\n        }\n        \n        if (typeof command === \"string\")\n            command = this.commands[command];\n\n        if (!command)\n            return false;\n\n        if (editor && editor.$readOnly && !command.readOnly)\n            return false;\n\n        var e = {editor: editor, command: command, args: args};\n        e.returnValue = this._emit(\"exec\", e);\n        this._signal(\"afterExec\", e);\n\n        return e.returnValue === false ? false : true;\n    };\n\n    this.toggleRecording = function(editor) {\n        if (this.$inReplay)\n            return;\n\n        editor && editor._emit(\"changeStatus\");\n        if (this.recording) {\n            this.macro.pop();\n            this.removeEventListener(\"exec\", this.$addCommandToMacro);\n\n            if (!this.macro.length)\n                this.macro = this.oldMacro;\n\n            return this.recording = false;\n        }\n        if (!this.$addCommandToMacro) {\n            this.$addCommandToMacro = function(e) {\n                this.macro.push([e.command, e.args]);\n            }.bind(this);\n        }\n\n        this.oldMacro = this.macro;\n        this.macro = [];\n        this.on(\"exec\", this.$addCommandToMacro);\n        return this.recording = true;\n    };\n\n    this.replay = function(editor) {\n        if (this.$inReplay || !this.macro)\n            return;\n\n        if (this.recording)\n            return this.toggleRecording(editor);\n\n        try {\n            this.$inReplay = true;\n            this.macro.forEach(function(x) {\n                if (typeof x == \"string\")\n                    this.exec(x, editor);\n                else\n                    this.exec(x[0], editor, x[1]);\n            }, this);\n        } finally {\n            this.$inReplay = false;\n        }\n    };\n\n    this.trimMacro = function(m) {\n        return m.map(function(x){\n            if (typeof x[0] != \"string\")\n                x[0] = x[0].name;\n            if (!x[1])\n                x = x[0];\n            return x;\n        });\n    };\n\n}).call(CommandManager.prototype);\n\nexports.CommandManager = CommandManager;\n\n});\n\nace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar lang = require(\"../lib/lang\");\nvar config = require(\"../config\");\nvar Range = require(\"../range\").Range;\n\nfunction bindKey(win, mac) {\n    return {win: win, mac: mac};\n}\nexports.commands = [{\n    name: \"showSettingsMenu\",\n    bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n    exec: function(editor) {\n        config.loadModule(\"ace/ext/settings_menu\", function(module) {\n            module.init(editor);\n            editor.showSettingsMenu();\n        });\n    },\n    readOnly: true\n}, {\n    name: \"goToNextError\",\n    bindKey: bindKey(\"Alt-E\", \"F4\"),\n    exec: function(editor) {\n        config.loadModule(\"ace/ext/error_marker\", function(module) {\n            module.showErrorMarker(editor, 1);\n        });\n    },\n    scrollIntoView: \"animate\",\n    readOnly: true\n}, {\n    name: \"goToPreviousError\",\n    bindKey: bindKey(\"Alt-Shift-E\", \"Shift-F4\"),\n    exec: function(editor) {\n        config.loadModule(\"ace/ext/error_marker\", function(module) {\n            module.showErrorMarker(editor, -1);\n        });\n    },\n    scrollIntoView: \"animate\",\n    readOnly: true\n}, {\n    name: \"selectall\",\n    bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n    exec: function(editor) { editor.selectAll(); },\n    readOnly: true\n}, {\n    name: \"centerselection\",\n    bindKey: bindKey(null, \"Ctrl-L\"),\n    exec: function(editor) { editor.centerSelection(); },\n    readOnly: true\n}, {\n    name: \"gotoline\",\n    bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n    exec: function(editor) {\n        var line = parseInt(prompt(\"Enter line number:\"), 10);\n        if (!isNaN(line)) {\n            editor.gotoLine(line);\n        }\n    },\n    readOnly: true\n}, {\n    name: \"fold\",\n    bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n    exec: function(editor) { editor.session.toggleFold(false); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"center\",\n    readOnly: true\n}, {\n    name: \"unfold\",\n    bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n    exec: function(editor) { editor.session.toggleFold(true); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"center\",\n    readOnly: true\n}, {\n    name: \"toggleFoldWidget\",\n    bindKey: bindKey(\"F2\", \"F2\"),\n    exec: function(editor) { editor.session.toggleFoldWidget(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"center\",\n    readOnly: true\n}, {\n    name: \"toggleParentFoldWidget\",\n    bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n    exec: function(editor) { editor.session.toggleFoldWidget(true); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"center\",\n    readOnly: true\n}, {\n    name: \"foldall\",\n    bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n    exec: function(editor) { editor.session.foldAll(); },\n    scrollIntoView: \"center\",\n    readOnly: true\n}, {\n    name: \"foldOther\",\n    bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n    exec: function(editor) { \n        editor.session.foldAll();\n        editor.session.unfold(editor.selection.getAllRanges());\n    },\n    scrollIntoView: \"center\",\n    readOnly: true\n}, {\n    name: \"unfoldall\",\n    bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n    exec: function(editor) { editor.session.unfold(); },\n    scrollIntoView: \"center\",\n    readOnly: true\n}, {\n    name: \"findnext\",\n    bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n    exec: function(editor) { editor.findNext(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"center\",\n    readOnly: true\n}, {\n    name: \"findprevious\",\n    bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n    exec: function(editor) { editor.findPrevious(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"center\",\n    readOnly: true\n}, {\n    name: \"selectOrFindNext\",\n    bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n    exec: function(editor) {\n        if (editor.selection.isEmpty())\n            editor.selection.selectWord();\n        else\n            editor.findNext(); \n    },\n    readOnly: true\n}, {\n    name: \"selectOrFindPrevious\",\n    bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n    exec: function(editor) { \n        if (editor.selection.isEmpty())\n            editor.selection.selectWord();\n        else\n            editor.findPrevious();\n    },\n    readOnly: true\n}, {\n    name: \"find\",\n    bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n    exec: function(editor) {\n        config.loadModule(\"ace/ext/searchbox\", function(e) {e.Search(editor)});\n    },\n    readOnly: true\n}, {\n    name: \"overwrite\",\n    bindKey: \"Insert\",\n    exec: function(editor) { editor.toggleOverwrite(); },\n    readOnly: true\n}, {\n    name: \"selecttostart\",\n    bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Home|Command-Shift-Up\"),\n    exec: function(editor) { editor.getSelection().selectFileStart(); },\n    multiSelectAction: \"forEach\",\n    readOnly: true,\n    scrollIntoView: \"animate\",\n    aceCommandGroup: \"fileJump\"\n}, {\n    name: \"gotostart\",\n    bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n    exec: function(editor) { editor.navigateFileStart(); },\n    multiSelectAction: \"forEach\",\n    readOnly: true,\n    scrollIntoView: \"animate\",\n    aceCommandGroup: \"fileJump\"\n}, {\n    name: \"selectup\",\n    bindKey: bindKey(\"Shift-Up\", \"Shift-Up|Ctrl-Shift-P\"),\n    exec: function(editor) { editor.getSelection().selectUp(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"golineup\",\n    bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n    exec: function(editor, args) { editor.navigateUp(args.times); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"selecttoend\",\n    bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-End|Command-Shift-Down\"),\n    exec: function(editor) { editor.getSelection().selectFileEnd(); },\n    multiSelectAction: \"forEach\",\n    readOnly: true,\n    scrollIntoView: \"animate\",\n    aceCommandGroup: \"fileJump\"\n}, {\n    name: \"gotoend\",\n    bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n    exec: function(editor) { editor.navigateFileEnd(); },\n    multiSelectAction: \"forEach\",\n    readOnly: true,\n    scrollIntoView: \"animate\",\n    aceCommandGroup: \"fileJump\"\n}, {\n    name: \"selectdown\",\n    bindKey: bindKey(\"Shift-Down\", \"Shift-Down|Ctrl-Shift-N\"),\n    exec: function(editor) { editor.getSelection().selectDown(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"golinedown\",\n    bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n    exec: function(editor, args) { editor.navigateDown(args.times); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"selectwordleft\",\n    bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n    exec: function(editor) { editor.getSelection().selectWordLeft(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"gotowordleft\",\n    bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n    exec: function(editor) { editor.navigateWordLeft(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"selecttolinestart\",\n    bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left|Ctrl-Shift-A\"),\n    exec: function(editor) { editor.getSelection().selectLineStart(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"gotolinestart\",\n    bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n    exec: function(editor) { editor.navigateLineStart(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"selectleft\",\n    bindKey: bindKey(\"Shift-Left\", \"Shift-Left|Ctrl-Shift-B\"),\n    exec: function(editor) { editor.getSelection().selectLeft(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"gotoleft\",\n    bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n    exec: function(editor, args) { editor.navigateLeft(args.times); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"selectwordright\",\n    bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n    exec: function(editor) { editor.getSelection().selectWordRight(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"gotowordright\",\n    bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n    exec: function(editor) { editor.navigateWordRight(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"selecttolineend\",\n    bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),\n    exec: function(editor) { editor.getSelection().selectLineEnd(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"gotolineend\",\n    bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n    exec: function(editor) { editor.navigateLineEnd(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"selectright\",\n    bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n    exec: function(editor) { editor.getSelection().selectRight(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"gotoright\",\n    bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n    exec: function(editor, args) { editor.navigateRight(args.times); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"selectpagedown\",\n    bindKey: \"Shift-PageDown\",\n    exec: function(editor) { editor.selectPageDown(); },\n    readOnly: true\n}, {\n    name: \"pagedown\",\n    bindKey: bindKey(null, \"Option-PageDown\"),\n    exec: function(editor) { editor.scrollPageDown(); },\n    readOnly: true\n}, {\n    name: \"gotopagedown\",\n    bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n    exec: function(editor) { editor.gotoPageDown(); },\n    readOnly: true\n}, {\n    name: \"selectpageup\",\n    bindKey: \"Shift-PageUp\",\n    exec: function(editor) { editor.selectPageUp(); },\n    readOnly: true\n}, {\n    name: \"pageup\",\n    bindKey: bindKey(null, \"Option-PageUp\"),\n    exec: function(editor) { editor.scrollPageUp(); },\n    readOnly: true\n}, {\n    name: \"gotopageup\",\n    bindKey: \"PageUp\",\n    exec: function(editor) { editor.gotoPageUp(); },\n    readOnly: true\n}, {\n    name: \"scrollup\",\n    bindKey: bindKey(\"Ctrl-Up\", null),\n    exec: function(e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n    readOnly: true\n}, {\n    name: \"scrolldown\",\n    bindKey: bindKey(\"Ctrl-Down\", null),\n    exec: function(e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n    readOnly: true\n}, {\n    name: \"selectlinestart\",\n    bindKey: \"Shift-Home\",\n    exec: function(editor) { editor.getSelection().selectLineStart(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"selectlineend\",\n    bindKey: \"Shift-End\",\n    exec: function(editor) { editor.getSelection().selectLineEnd(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"togglerecording\",\n    bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n    exec: function(editor) { editor.commands.toggleRecording(editor); },\n    readOnly: true\n}, {\n    name: \"replaymacro\",\n    bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n    exec: function(editor) { editor.commands.replay(editor); },\n    readOnly: true\n}, {\n    name: \"jumptomatching\",\n    bindKey: bindKey(\"Ctrl-P\", \"Ctrl-P\"),\n    exec: function(editor) { editor.jumpToMatching(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"animate\",\n    readOnly: true\n}, {\n    name: \"selecttomatching\",\n    bindKey: bindKey(\"Ctrl-Shift-P\", \"Ctrl-Shift-P\"),\n    exec: function(editor) { editor.jumpToMatching(true); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"animate\",\n    readOnly: true\n}, {\n    name: \"expandToMatching\",\n    bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n    exec: function(editor) { editor.jumpToMatching(true, true); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"animate\",\n    readOnly: true\n}, {\n    name: \"passKeysToBrowser\",\n    bindKey: bindKey(null, null),\n    exec: function() {},\n    passEvent: true,\n    readOnly: true\n}, {\n    name: \"copy\",\n    exec: function(editor) {\n    },\n    readOnly: true\n},\n{\n    name: \"cut\",\n    exec: function(editor) {\n        var range = editor.getSelectionRange();\n        editor._emit(\"cut\", range);\n\n        if (!editor.selection.isEmpty()) {\n            editor.session.remove(range);\n            editor.clearSelection();\n        }\n    },\n    scrollIntoView: \"cursor\",\n    multiSelectAction: \"forEach\"\n}, {\n    name: \"paste\",\n    exec: function(editor, args) {\n        editor.$handlePaste(args);\n    },\n    scrollIntoView: \"cursor\"\n}, {\n    name: \"removeline\",\n    bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n    exec: function(editor) { editor.removeLines(); },\n    scrollIntoView: \"cursor\",\n    multiSelectAction: \"forEachLine\"\n}, {\n    name: \"duplicateSelection\",\n    bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n    exec: function(editor) { editor.duplicateSelection(); },\n    scrollIntoView: \"cursor\",\n    multiSelectAction: \"forEach\"\n}, {\n    name: \"sortlines\",\n    bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n    exec: function(editor) { editor.sortLines(); },\n    scrollIntoView: \"selection\",\n    multiSelectAction: \"forEachLine\"\n}, {\n    name: \"togglecomment\",\n    bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n    exec: function(editor) { editor.toggleCommentLines(); },\n    multiSelectAction: \"forEachLine\",\n    scrollIntoView: \"selectionPart\"\n}, {\n    name: \"toggleBlockComment\",\n    bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n    exec: function(editor) { editor.toggleBlockComment(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"selectionPart\"\n}, {\n    name: \"modifyNumberUp\",\n    bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n    exec: function(editor) { editor.modifyNumber(1); },\n    scrollIntoView: \"cursor\",\n    multiSelectAction: \"forEach\"\n}, {\n    name: \"modifyNumberDown\",\n    bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n    exec: function(editor) { editor.modifyNumber(-1); },\n    scrollIntoView: \"cursor\",\n    multiSelectAction: \"forEach\"\n}, {\n    name: \"replace\",\n    bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n    exec: function(editor) {\n        config.loadModule(\"ace/ext/searchbox\", function(e) {e.Search(editor, true)});\n    }\n}, {\n    name: \"undo\",\n    bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n    exec: function(editor) { editor.undo(); }\n}, {\n    name: \"redo\",\n    bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n    exec: function(editor) { editor.redo(); }\n}, {\n    name: \"copylinesup\",\n    bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n    exec: function(editor) { editor.copyLinesUp(); },\n    scrollIntoView: \"cursor\"\n}, {\n    name: \"movelinesup\",\n    bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n    exec: function(editor) { editor.moveLinesUp(); },\n    scrollIntoView: \"cursor\"\n}, {\n    name: \"copylinesdown\",\n    bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n    exec: function(editor) { editor.copyLinesDown(); },\n    scrollIntoView: \"cursor\"\n}, {\n    name: \"movelinesdown\",\n    bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n    exec: function(editor) { editor.moveLinesDown(); },\n    scrollIntoView: \"cursor\"\n}, {\n    name: \"del\",\n    bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n    exec: function(editor) { editor.remove(\"right\"); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\"\n}, {\n    name: \"backspace\",\n    bindKey: bindKey(\n        \"Shift-Backspace|Backspace\",\n        \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"\n    ),\n    exec: function(editor) { editor.remove(\"left\"); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\"\n}, {\n    name: \"cut_or_delete\",\n    bindKey: bindKey(\"Shift-Delete\", null),\n    exec: function(editor) { \n        if (editor.selection.isEmpty()) {\n            editor.remove(\"left\");\n        } else {\n            return false;\n        }\n    },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\"\n}, {\n    name: \"removetolinestart\",\n    bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n    exec: function(editor) { editor.removeToLineStart(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\"\n}, {\n    name: \"removetolineend\",\n    bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K\"),\n    exec: function(editor) { editor.removeToLineEnd(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\"\n}, {\n    name: \"removewordleft\",\n    bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n    exec: function(editor) { editor.removeWordLeft(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\"\n}, {\n    name: \"removewordright\",\n    bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n    exec: function(editor) { editor.removeWordRight(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\"\n}, {\n    name: \"outdent\",\n    bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n    exec: function(editor) { editor.blockOutdent(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"selectionPart\"\n}, {\n    name: \"indent\",\n    bindKey: bindKey(\"Tab\", \"Tab\"),\n    exec: function(editor) { editor.indent(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"selectionPart\"\n}, {\n    name: \"blockoutdent\",\n    bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n    exec: function(editor) { editor.blockOutdent(); },\n    multiSelectAction: \"forEachLine\",\n    scrollIntoView: \"selectionPart\"\n}, {\n    name: \"blockindent\",\n    bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n    exec: function(editor) { editor.blockIndent(); },\n    multiSelectAction: \"forEachLine\",\n    scrollIntoView: \"selectionPart\"\n}, {\n    name: \"insertstring\",\n    exec: function(editor, str) { editor.insert(str); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\"\n}, {\n    name: \"inserttext\",\n    exec: function(editor, args) {\n        editor.insert(lang.stringRepeat(args.text  || \"\", args.times || 1));\n    },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\"\n}, {\n    name: \"splitline\",\n    bindKey: bindKey(null, \"Ctrl-O\"),\n    exec: function(editor) { editor.splitLine(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\"\n}, {\n    name: \"transposeletters\",\n    bindKey: bindKey(\"Ctrl-T\", \"Ctrl-T\"),\n    exec: function(editor) { editor.transposeLetters(); },\n    multiSelectAction: function(editor) {editor.transposeSelections(1); },\n    scrollIntoView: \"cursor\"\n}, {\n    name: \"touppercase\",\n    bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n    exec: function(editor) { editor.toUpperCase(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\"\n}, {\n    name: \"tolowercase\",\n    bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n    exec: function(editor) { editor.toLowerCase(); },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\"\n}, {\n    name: \"expandtoline\",\n    bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n    exec: function(editor) {\n        var range = editor.selection.getRange();\n\n        range.start.column = range.end.column = 0;\n        range.end.row++;\n        editor.selection.setRange(range, false);\n    },\n    multiSelectAction: \"forEach\",\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"joinlines\",\n    bindKey: bindKey(null, null),\n    exec: function(editor) {\n        var isBackwards = editor.selection.isBackwards();\n        var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n        var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n        var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n        var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n        var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n        var insertLine = editor.session.doc.getLine(selectionStart.row);\n\n        for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n            var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n            if (curLine.length !== 0) {\n                curLine = \" \" + curLine;\n            }\n            insertLine += curLine;\n        }\n\n        if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n            insertLine += editor.session.doc.getNewLineCharacter();\n        }\n\n        editor.clearSelection();\n        editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n\n        if (selectedCount > 0) {\n            editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n            editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n        } else {\n            firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n            editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n        }\n    },\n    multiSelectAction: \"forEach\",\n    readOnly: true\n}, {\n    name: \"invertSelection\",\n    bindKey: bindKey(null, null),\n    exec: function(editor) {\n        var endRow = editor.session.doc.getLength() - 1;\n        var endCol = editor.session.doc.getLine(endRow).length;\n        var ranges = editor.selection.rangeList.ranges;\n        var newRanges = [];\n        if (ranges.length < 1) {\n            ranges = [editor.selection.getRange()];\n        }\n\n        for (var i = 0; i < ranges.length; i++) {\n            if (i == (ranges.length - 1)) {\n                if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n                    newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n                }\n            }\n\n            if (i === 0) {\n                if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n                    newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n                }\n            } else {\n                newRanges.push(new Range(ranges[i-1].end.row, ranges[i-1].end.column, ranges[i].start.row, ranges[i].start.column));\n            }\n        }\n\n        editor.exitMultiSelectMode();\n        editor.clearSelection();\n\n        for(var i = 0; i < newRanges.length; i++) {\n            editor.selection.addRange(newRanges[i], false);\n        }\n    },\n    readOnly: true,\n    scrollIntoView: \"none\"\n}];\n\n});\n\nace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nrequire(\"./lib/fixoldbrowsers\");\n\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar useragent = require(\"./lib/useragent\");\nvar TextInput = require(\"./keyboard/textinput\").TextInput;\nvar MouseHandler = require(\"./mouse/mouse_handler\").MouseHandler;\nvar FoldHandler = require(\"./mouse/fold_handler\").FoldHandler;\nvar KeyBinding = require(\"./keyboard/keybinding\").KeyBinding;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar Search = require(\"./search\").Search;\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar CommandManager = require(\"./commands/command_manager\").CommandManager;\nvar defaultCommands = require(\"./commands/default_commands\").commands;\nvar config = require(\"./config\");\nvar TokenIterator = require(\"./token_iterator\").TokenIterator;\nvar Editor = function(renderer, session) {\n    var container = renderer.getContainerElement();\n    this.container = container;\n    this.renderer = renderer;\n\n    this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n    this.textInput  = new TextInput(renderer.getTextAreaContainer(), this);\n    this.renderer.textarea = this.textInput.getElement();\n    this.keyBinding = new KeyBinding(this);\n    this.$mouseHandler = new MouseHandler(this);\n    new FoldHandler(this);\n\n    this.$blockScrolling = 0;\n    this.$search = new Search().set({\n        wrap: true\n    });\n\n    this.$historyTracker = this.$historyTracker.bind(this);\n    this.commands.on(\"exec\", this.$historyTracker);\n\n    this.$initOperationListeners();\n    \n    this._$emitInputEvent = lang.delayedCall(function() {\n        this._signal(\"input\", {});\n        if (this.session && this.session.bgTokenizer)\n            this.session.bgTokenizer.scheduleStart();\n    }.bind(this));\n    \n    this.on(\"change\", function(_, _self) {\n        _self._$emitInputEvent.schedule(31);\n    });\n\n    this.setSession(session || new EditSession(\"\"));\n    config.resetOptions(this);\n    config._signal(\"editor\", this);\n};\n\n(function(){\n\n    oop.implement(this, EventEmitter);\n\n    this.$initOperationListeners = function() {\n        function last(a) {return a[a.length - 1]}\n\n        this.selections = [];\n        this.commands.on(\"exec\", this.startOperation.bind(this), true);\n        this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n\n        this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this));\n\n        this.on(\"change\", function() {\n            this.curOp || this.startOperation();\n            this.curOp.docChanged = true;\n        }.bind(this), true);\n\n        this.on(\"changeSelection\", function() {\n            this.curOp || this.startOperation();\n            this.curOp.selectionChanged = true;\n        }.bind(this), true);\n    };\n\n    this.curOp = null;\n    this.prevOp = {};\n    this.startOperation = function(commadEvent) {\n        if (this.curOp) {\n            if (!commadEvent || this.curOp.command)\n                return;\n            this.prevOp = this.curOp;\n        }\n        if (!commadEvent) {\n            this.previousCommand = null;\n            commadEvent = {};\n        }\n\n        this.$opResetTimer.schedule();\n        this.curOp = {\n            command: commadEvent.command || {},\n            args: commadEvent.args,\n            scrollTop: this.renderer.scrollTop\n        };\n        if (this.curOp.command.name && this.curOp.command.scrollIntoView !== undefined)\n            this.$blockScrolling++;\n    };\n\n    this.endOperation = function(e) {\n        if (this.curOp) {\n            if (e && e.returnValue === false)\n                return this.curOp = null;\n            this._signal(\"beforeEndOperation\");\n            var command = this.curOp.command;\n            if (command.name && this.$blockScrolling > 0)\n                this.$blockScrolling--;\n            var scrollIntoView = command && command.scrollIntoView;\n            if (scrollIntoView) {\n                switch (scrollIntoView) {\n                    case \"center-animate\":\n                        scrollIntoView = \"animate\";\n                    case \"center\":\n                        this.renderer.scrollCursorIntoView(null, 0.5);\n                        break;\n                    case \"animate\":\n                    case \"cursor\":\n                        this.renderer.scrollCursorIntoView();\n                        break;\n                    case \"selectionPart\":\n                        var range = this.selection.getRange();\n                        var config = this.renderer.layerConfig;\n                        if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n                            this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n                        }\n                        break;\n                    default:\n                        break;\n                }\n                if (scrollIntoView == \"animate\")\n                    this.renderer.animateScrolling(this.curOp.scrollTop);\n            }\n            \n            this.prevOp = this.curOp;\n            this.curOp = null;\n        }\n    };\n    this.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\n    this.$historyTracker = function(e) {\n        if (!this.$mergeUndoDeltas)\n            return;\n\n        var prev = this.prevOp;\n        var mergeableCommands = this.$mergeableCommands;\n        var shouldMerge = prev.command && (e.command.name == prev.command.name);\n        if (e.command.name == \"insertstring\") {\n            var text = e.args;\n            if (this.mergeNextCommand === undefined)\n                this.mergeNextCommand = true;\n\n            shouldMerge = shouldMerge\n                && this.mergeNextCommand // previous command allows to coalesce with\n                && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n\n            this.mergeNextCommand = true;\n        } else {\n            shouldMerge = shouldMerge\n                && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n        }\n\n        if (\n            this.$mergeUndoDeltas != \"always\"\n            && Date.now() - this.sequenceStartTime > 2000\n        ) {\n            shouldMerge = false; // the sequence is too long\n        }\n\n        if (shouldMerge)\n            this.session.mergeUndoDeltas = true;\n        else if (mergeableCommands.indexOf(e.command.name) !== -1)\n            this.sequenceStartTime = Date.now();\n    };\n    this.setKeyboardHandler = function(keyboardHandler, cb) {\n        if (keyboardHandler && typeof keyboardHandler === \"string\") {\n            this.$keybindingId = keyboardHandler;\n            var _self = this;\n            config.loadModule([\"keybinding\", keyboardHandler], function(module) {\n                if (_self.$keybindingId == keyboardHandler)\n                    _self.keyBinding.setKeyboardHandler(module && module.handler);\n                cb && cb();\n            });\n        } else {\n            this.$keybindingId = null;\n            this.keyBinding.setKeyboardHandler(keyboardHandler);\n            cb && cb();\n        }\n    };\n    this.getKeyboardHandler = function() {\n        return this.keyBinding.getKeyboardHandler();\n    };\n    this.setSession = function(session) {\n        if (this.session == session)\n            return;\n        if (this.curOp) this.endOperation();\n        this.curOp = {};\n\n        var oldSession = this.session;\n        if (oldSession) {\n            this.session.off(\"change\", this.$onDocumentChange);\n            this.session.off(\"changeMode\", this.$onChangeMode);\n            this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n            this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n            this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n            this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n            this.session.off(\"changeFold\", this.$onChangeFold);\n            this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n            this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n            this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n            this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n            this.session.off(\"changeOverwrite\", this.$onCursorChange);\n            this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n            this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n\n            var selection = this.session.getSelection();\n            selection.off(\"changeCursor\", this.$onCursorChange);\n            selection.off(\"changeSelection\", this.$onSelectionChange);\n        }\n\n        this.session = session;\n        if (session) {\n            this.$onDocumentChange = this.onDocumentChange.bind(this);\n            session.on(\"change\", this.$onDocumentChange);\n            this.renderer.setSession(session);\n    \n            this.$onChangeMode = this.onChangeMode.bind(this);\n            session.on(\"changeMode\", this.$onChangeMode);\n    \n            this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n            session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n    \n            this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n            session.on(\"changeTabSize\", this.$onChangeTabSize);\n    \n            this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n            session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n    \n            this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n            session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n    \n            this.$onChangeFold = this.onChangeFold.bind(this);\n            session.on(\"changeFold\", this.$onChangeFold);\n    \n            this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n            this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n    \n            this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n            this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n    \n            this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n            this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n    \n            this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n            this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n    \n            this.$onCursorChange = this.onCursorChange.bind(this);\n            this.session.on(\"changeOverwrite\", this.$onCursorChange);\n    \n            this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n            this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n    \n            this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n            this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n    \n            this.selection = session.getSelection();\n            this.selection.on(\"changeCursor\", this.$onCursorChange);\n    \n            this.$onSelectionChange = this.onSelectionChange.bind(this);\n            this.selection.on(\"changeSelection\", this.$onSelectionChange);\n    \n            this.onChangeMode();\n    \n            this.$blockScrolling += 1;\n            this.onCursorChange();\n            this.$blockScrolling -= 1;\n    \n            this.onScrollTopChange();\n            this.onScrollLeftChange();\n            this.onSelectionChange();\n            this.onChangeFrontMarker();\n            this.onChangeBackMarker();\n            this.onChangeBreakpoint();\n            this.onChangeAnnotation();\n            this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n            this.renderer.updateFull();\n        } else {\n            this.selection = null;\n            this.renderer.setSession(session);\n        }\n\n        this._signal(\"changeSession\", {\n            session: session,\n            oldSession: oldSession\n        });\n        \n        this.curOp = null;\n        \n        oldSession && oldSession._signal(\"changeEditor\", {oldEditor: this});\n        session && session._signal(\"changeEditor\", {editor: this});\n    };\n    this.getSession = function() {\n        return this.session;\n    };\n    this.setValue = function(val, cursorPos) {\n        this.session.doc.setValue(val);\n\n        if (!cursorPos)\n            this.selectAll();\n        else if (cursorPos == 1)\n            this.navigateFileEnd();\n        else if (cursorPos == -1)\n            this.navigateFileStart();\n\n        return val;\n    };\n    this.getValue = function() {\n        return this.session.getValue();\n    };\n    this.getSelection = function() {\n        return this.selection;\n    };\n    this.resize = function(force) {\n        this.renderer.onResize(force);\n    };\n    this.setTheme = function(theme, cb) {\n        this.renderer.setTheme(theme, cb);\n    };\n    this.getTheme = function() {\n        return this.renderer.getTheme();\n    };\n    this.setStyle = function(style) {\n        this.renderer.setStyle(style);\n    };\n    this.unsetStyle = function(style) {\n        this.renderer.unsetStyle(style);\n    };\n    this.getFontSize = function () {\n        return this.getOption(\"fontSize\") ||\n           dom.computedStyle(this.container, \"fontSize\");\n    };\n    this.setFontSize = function(size) {\n        this.setOption(\"fontSize\", size);\n    };\n\n    this.$highlightBrackets = function() {\n        if (this.session.$bracketHighlight) {\n            this.session.removeMarker(this.session.$bracketHighlight);\n            this.session.$bracketHighlight = null;\n        }\n\n        if (this.$highlightPending) {\n            return;\n        }\n        var self = this;\n        this.$highlightPending = true;\n        setTimeout(function() {\n            self.$highlightPending = false;\n            var session = self.session;\n            if (!session || !session.bgTokenizer) return;\n            var pos = session.findMatchingBracket(self.getCursorPosition());\n            if (pos) {\n                var range = new Range(pos.row, pos.column, pos.row, pos.column + 1);\n            } else if (session.$mode.getMatching) {\n                var range = session.$mode.getMatching(self.session);\n            }\n            if (range)\n                session.$bracketHighlight = session.addMarker(range, \"ace_bracket\", \"text\");\n        }, 50);\n    };\n    this.$highlightTags = function() {\n        if (this.$highlightTagPending)\n            return;\n        var self = this;\n        this.$highlightTagPending = true;\n        setTimeout(function() {\n            self.$highlightTagPending = false;\n            \n            var session = self.session;\n            if (!session || !session.bgTokenizer) return;\n            \n            var pos = self.getCursorPosition();\n            var iterator = new TokenIterator(self.session, pos.row, pos.column);\n            var token = iterator.getCurrentToken();\n            \n            if (!token || !/\\b(?:tag-open|tag-name)/.test(token.type)) {\n                session.removeMarker(session.$tagHighlight);\n                session.$tagHighlight = null;\n                return;\n            }\n            \n            if (token.type.indexOf(\"tag-open\") != -1) {\n                token = iterator.stepForward();\n                if (!token)\n                    return;\n            }\n            \n            var tag = token.value;\n            var depth = 0;\n            var prevToken = iterator.stepBackward();\n            \n            if (prevToken.value == '<'){\n                do {\n                    prevToken = token;\n                    token = iterator.stepForward();\n                    \n                    if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) {\n                        if (prevToken.value === '<'){\n                            depth++;\n                        } else if (prevToken.value === '</'){\n                            depth--;\n                        }\n                    }\n                    \n                } while (token && depth >= 0);\n            } else {\n                do {\n                    token = prevToken;\n                    prevToken = iterator.stepBackward();\n                    \n                    if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) {\n                        if (prevToken.value === '<') {\n                            depth++;\n                        } else if (prevToken.value === '</') {\n                            depth--;\n                        }\n                    }\n                } while (prevToken && depth <= 0);\n                iterator.stepForward();\n            }\n            \n            if (!token) {\n                session.removeMarker(session.$tagHighlight);\n                session.$tagHighlight = null;\n                return;\n            }\n            \n            var row = iterator.getCurrentTokenRow();\n            var column = iterator.getCurrentTokenColumn();\n            var range = new Range(row, column, row, column+token.value.length);\n            var sbm = session.$backMarkers[session.$tagHighlight];\n            if (session.$tagHighlight && sbm != undefined && range.compareRange(sbm.range) !== 0) {\n                session.removeMarker(session.$tagHighlight);\n                session.$tagHighlight = null;\n            }\n            \n            if (range && !session.$tagHighlight)\n                session.$tagHighlight = session.addMarker(range, \"ace_bracket\", \"text\");\n        }, 50);\n    };\n    this.focus = function() {\n        var _self = this;\n        setTimeout(function() {\n            _self.textInput.focus();\n        });\n        this.textInput.focus();\n    };\n    this.isFocused = function() {\n        return this.textInput.isFocused();\n    };\n    this.blur = function() {\n        this.textInput.blur();\n    };\n    this.onFocus = function(e) {\n        if (this.$isFocused)\n            return;\n        this.$isFocused = true;\n        this.renderer.showCursor();\n        this.renderer.visualizeFocus();\n        this._emit(\"focus\", e);\n    };\n    this.onBlur = function(e) {\n        if (!this.$isFocused)\n            return;\n        this.$isFocused = false;\n        this.renderer.hideCursor();\n        this.renderer.visualizeBlur();\n        this._emit(\"blur\", e);\n    };\n\n    this.$cursorChange = function() {\n        this.renderer.updateCursor();\n    };\n    this.onDocumentChange = function(delta) {\n        var wrap = this.session.$useWrapMode;\n        var lastRow = (delta.start.row == delta.end.row ? delta.end.row : Infinity);\n        this.renderer.updateLines(delta.start.row, lastRow, wrap);\n\n        this._signal(\"change\", delta);\n        this.$cursorChange();\n        this.$updateHighlightActiveLine();\n    };\n\n    this.onTokenizerUpdate = function(e) {\n        var rows = e.data;\n        this.renderer.updateLines(rows.first, rows.last);\n    };\n\n\n    this.onScrollTopChange = function() {\n        this.renderer.scrollToY(this.session.getScrollTop());\n    };\n\n    this.onScrollLeftChange = function() {\n        this.renderer.scrollToX(this.session.getScrollLeft());\n    };\n    this.onCursorChange = function() {\n        this.$cursorChange();\n\n        if (!this.$blockScrolling) {\n            config.warn(\"Automatically scrolling cursor into view after selection change\",\n                \"this will be disabled in the next version\",\n                \"set editor.$blockScrolling = Infinity to disable this message\"\n            );\n            this.renderer.scrollCursorIntoView();\n        }\n\n        this.$highlightBrackets();\n        this.$highlightTags();\n        this.$updateHighlightActiveLine();\n        this._signal(\"changeSelection\");\n    };\n\n    this.$updateHighlightActiveLine = function() {\n        var session = this.getSession();\n\n        var highlight;\n        if (this.$highlightActiveLine) {\n            if ((this.$selectionStyle != \"line\" || !this.selection.isMultiLine()))\n                highlight = this.getCursorPosition();\n            if (this.renderer.$maxLines && this.session.getLength() === 1 && !(this.renderer.$minLines > 1))\n                highlight = false;\n        }\n\n        if (session.$highlightLineMarker && !highlight) {\n            session.removeMarker(session.$highlightLineMarker.id);\n            session.$highlightLineMarker = null;\n        } else if (!session.$highlightLineMarker && highlight) {\n            var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n            range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n            session.$highlightLineMarker = range;\n        } else if (highlight) {\n            session.$highlightLineMarker.start.row = highlight.row;\n            session.$highlightLineMarker.end.row = highlight.row;\n            session.$highlightLineMarker.start.column = highlight.column;\n            session._signal(\"changeBackMarker\");\n        }\n    };\n\n    this.onSelectionChange = function(e) {\n        var session = this.session;\n\n        if (session.$selectionMarker) {\n            session.removeMarker(session.$selectionMarker);\n        }\n        session.$selectionMarker = null;\n\n        if (!this.selection.isEmpty()) {\n            var range = this.selection.getRange();\n            var style = this.getSelectionStyle();\n            session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n        } else {\n            this.$updateHighlightActiveLine();\n        }\n\n        var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n        this.session.highlight(re);\n\n        this._signal(\"changeSelection\");\n    };\n\n    this.$getSelectionHighLightRegexp = function() {\n        var session = this.session;\n\n        var selection = this.getSelectionRange();\n        if (selection.isEmpty() || selection.isMultiLine())\n            return;\n\n        var startOuter = selection.start.column - 1;\n        var endOuter = selection.end.column + 1;\n        var line = session.getLine(selection.start.row);\n        var lineCols = line.length;\n        var needle = line.substring(Math.max(startOuter, 0),\n                                    Math.min(endOuter, lineCols));\n        if ((startOuter >= 0 && /^[\\w\\d]/.test(needle)) ||\n            (endOuter <= lineCols && /[\\w\\d]$/.test(needle)))\n            return;\n\n        needle = line.substring(selection.start.column, selection.end.column);\n        if (!/^[\\w\\d]+$/.test(needle))\n            return;\n\n        var re = this.$search.$assembleRegExp({\n            wholeWord: true,\n            caseSensitive: true,\n            needle: needle\n        });\n\n        return re;\n    };\n\n\n    this.onChangeFrontMarker = function() {\n        this.renderer.updateFrontMarkers();\n    };\n\n    this.onChangeBackMarker = function() {\n        this.renderer.updateBackMarkers();\n    };\n\n\n    this.onChangeBreakpoint = function() {\n        this.renderer.updateBreakpoints();\n    };\n\n    this.onChangeAnnotation = function() {\n        this.renderer.setAnnotations(this.session.getAnnotations());\n    };\n\n\n    this.onChangeMode = function(e) {\n        this.renderer.updateText();\n        this._emit(\"changeMode\", e);\n    };\n\n\n    this.onChangeWrapLimit = function() {\n        this.renderer.updateFull();\n    };\n\n    this.onChangeWrapMode = function() {\n        this.renderer.onResize(true);\n    };\n\n\n    this.onChangeFold = function() {\n        this.$updateHighlightActiveLine();\n        this.renderer.updateFull();\n    };\n    this.getSelectedText = function() {\n        return this.session.getTextRange(this.getSelectionRange());\n    };\n    this.getCopyText = function() {\n        var text = this.getSelectedText();\n        this._signal(\"copy\", text);\n        return text;\n    };\n    this.onCopy = function() {\n        this.commands.exec(\"copy\", this);\n    };\n    this.onCut = function() {\n        this.commands.exec(\"cut\", this);\n    };\n    this.onPaste = function(text, event) {\n        var e = {text: text, event: event};\n        this.commands.exec(\"paste\", this, e);\n    };\n    \n    this.$handlePaste = function(e) {\n        if (typeof e == \"string\") \n            e = {text: e};\n        this._signal(\"paste\", e);\n        var text = e.text;\n        if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n            this.insert(text);\n        } else {\n            var lines = text.split(/\\r\\n|\\r|\\n/);\n            var ranges = this.selection.rangeList.ranges;\n    \n            if (lines.length > ranges.length || lines.length < 2 || !lines[1])\n                return this.commands.exec(\"insertstring\", this, text);\n    \n            for (var i = ranges.length; i--;) {\n                var range = ranges[i];\n                if (!range.isEmpty())\n                    this.session.remove(range);\n    \n                this.session.insert(range.start, lines[i]);\n            }\n        }\n    };\n\n    this.execCommand = function(command, args) {\n        return this.commands.exec(command, this, args);\n    };\n    this.insert = function(text, pasted) {\n        var session = this.session;\n        var mode = session.getMode();\n        var cursor = this.getCursorPosition();\n\n        if (this.getBehavioursEnabled() && !pasted) {\n            var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n            if (transform) {\n                if (text !== transform.text) {\n                    this.session.mergeUndoDeltas = false;\n                    this.$mergeNextCommand = false;\n                }\n                text = transform.text;\n\n            }\n        }\n        \n        if (text == \"\\t\")\n            text = this.session.getTabString();\n        if (!this.selection.isEmpty()) {\n            var range = this.getSelectionRange();\n            cursor = this.session.remove(range);\n            this.clearSelection();\n        }\n        else if (this.session.getOverwrite()) {\n            var range = new Range.fromPoints(cursor, cursor);\n            range.end.column += text.length;\n            this.session.remove(range);\n        }\n\n        if (text == \"\\n\" || text == \"\\r\\n\") {\n            var line = session.getLine(cursor.row);\n            if (cursor.column > line.search(/\\S|$/)) {\n                var d = line.substr(cursor.column).search(/\\S|$/);\n                session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n            }\n        }\n        this.clearSelection();\n\n        var start = cursor.column;\n        var lineState = session.getState(cursor.row);\n        var line = session.getLine(cursor.row);\n        var shouldOutdent = mode.checkOutdent(lineState, line, text);\n        var end = session.insert(cursor, text);\n\n        if (transform && transform.selection) {\n            if (transform.selection.length == 2) { // Transform relative to the current column\n                this.selection.setSelectionRange(\n                    new Range(cursor.row, start + transform.selection[0],\n                              cursor.row, start + transform.selection[1]));\n            } else { // Transform relative to the current row.\n                this.selection.setSelectionRange(\n                    new Range(cursor.row + transform.selection[0],\n                              transform.selection[1],\n                              cursor.row + transform.selection[2],\n                              transform.selection[3]));\n            }\n        }\n\n        if (session.getDocument().isNewLine(text)) {\n            var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n\n            session.insert({row: cursor.row+1, column: 0}, lineIndent);\n        }\n        if (shouldOutdent)\n            mode.autoOutdent(lineState, session, cursor.row);\n    };\n\n    this.onTextInput = function(text) {\n        this.keyBinding.onTextInput(text);\n    };\n\n    this.onCommandKey = function(e, hashId, keyCode) {\n        this.keyBinding.onCommandKey(e, hashId, keyCode);\n    };\n    this.setOverwrite = function(overwrite) {\n        this.session.setOverwrite(overwrite);\n    };\n    this.getOverwrite = function() {\n        return this.session.getOverwrite();\n    };\n    this.toggleOverwrite = function() {\n        this.session.toggleOverwrite();\n    };\n    this.setScrollSpeed = function(speed) {\n        this.setOption(\"scrollSpeed\", speed);\n    };\n    this.getScrollSpeed = function() {\n        return this.getOption(\"scrollSpeed\");\n    };\n    this.setDragDelay = function(dragDelay) {\n        this.setOption(\"dragDelay\", dragDelay);\n    };\n    this.getDragDelay = function() {\n        return this.getOption(\"dragDelay\");\n    };\n    this.setSelectionStyle = function(val) {\n        this.setOption(\"selectionStyle\", val);\n    };\n    this.getSelectionStyle = function() {\n        return this.getOption(\"selectionStyle\");\n    };\n    this.setHighlightActiveLine = function(shouldHighlight) {\n        this.setOption(\"highlightActiveLine\", shouldHighlight);\n    };\n    this.getHighlightActiveLine = function() {\n        return this.getOption(\"highlightActiveLine\");\n    };\n    this.setHighlightGutterLine = function(shouldHighlight) {\n        this.setOption(\"highlightGutterLine\", shouldHighlight);\n    };\n\n    this.getHighlightGutterLine = function() {\n        return this.getOption(\"highlightGutterLine\");\n    };\n    this.setHighlightSelectedWord = function(shouldHighlight) {\n        this.setOption(\"highlightSelectedWord\", shouldHighlight);\n    };\n    this.getHighlightSelectedWord = function() {\n        return this.$highlightSelectedWord;\n    };\n\n    this.setAnimatedScroll = function(shouldAnimate){\n        this.renderer.setAnimatedScroll(shouldAnimate);\n    };\n\n    this.getAnimatedScroll = function(){\n        return this.renderer.getAnimatedScroll();\n    };\n    this.setShowInvisibles = function(showInvisibles) {\n        this.renderer.setShowInvisibles(showInvisibles);\n    };\n    this.getShowInvisibles = function() {\n        return this.renderer.getShowInvisibles();\n    };\n\n    this.setDisplayIndentGuides = function(display) {\n        this.renderer.setDisplayIndentGuides(display);\n    };\n\n    this.getDisplayIndentGuides = function() {\n        return this.renderer.getDisplayIndentGuides();\n    };\n    this.setShowPrintMargin = function(showPrintMargin) {\n        this.renderer.setShowPrintMargin(showPrintMargin);\n    };\n    this.getShowPrintMargin = function() {\n        return this.renderer.getShowPrintMargin();\n    };\n    this.setPrintMarginColumn = function(showPrintMargin) {\n        this.renderer.setPrintMarginColumn(showPrintMargin);\n    };\n    this.getPrintMarginColumn = function() {\n        return this.renderer.getPrintMarginColumn();\n    };\n    this.setReadOnly = function(readOnly) {\n        this.setOption(\"readOnly\", readOnly);\n    };\n    this.getReadOnly = function() {\n        return this.getOption(\"readOnly\");\n    };\n    this.setBehavioursEnabled = function (enabled) {\n        this.setOption(\"behavioursEnabled\", enabled);\n    };\n    this.getBehavioursEnabled = function () {\n        return this.getOption(\"behavioursEnabled\");\n    };\n    this.setWrapBehavioursEnabled = function (enabled) {\n        this.setOption(\"wrapBehavioursEnabled\", enabled);\n    };\n    this.getWrapBehavioursEnabled = function () {\n        return this.getOption(\"wrapBehavioursEnabled\");\n    };\n    this.setShowFoldWidgets = function(show) {\n        this.setOption(\"showFoldWidgets\", show);\n\n    };\n    this.getShowFoldWidgets = function() {\n        return this.getOption(\"showFoldWidgets\");\n    };\n\n    this.setFadeFoldWidgets = function(fade) {\n        this.setOption(\"fadeFoldWidgets\", fade);\n    };\n\n    this.getFadeFoldWidgets = function() {\n        return this.getOption(\"fadeFoldWidgets\");\n    };\n    this.remove = function(dir) {\n        if (this.selection.isEmpty()){\n            if (dir == \"left\")\n                this.selection.selectLeft();\n            else\n                this.selection.selectRight();\n        }\n\n        var range = this.getSelectionRange();\n        if (this.getBehavioursEnabled()) {\n            var session = this.session;\n            var state = session.getState(range.start.row);\n            var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n\n            if (range.end.column === 0) {\n                var text = session.getTextRange(range);\n                if (text[text.length - 1] == \"\\n\") {\n                    var line = session.getLine(range.end.row);\n                    if (/^\\s+$/.test(line)) {\n                        range.end.column = line.length;\n                    }\n                }\n            }\n            if (new_range)\n                range = new_range;\n        }\n\n        this.session.remove(range);\n        this.clearSelection();\n    };\n    this.removeWordRight = function() {\n        if (this.selection.isEmpty())\n            this.selection.selectWordRight();\n\n        this.session.remove(this.getSelectionRange());\n        this.clearSelection();\n    };\n    this.removeWordLeft = function() {\n        if (this.selection.isEmpty())\n            this.selection.selectWordLeft();\n\n        this.session.remove(this.getSelectionRange());\n        this.clearSelection();\n    };\n    this.removeToLineStart = function() {\n        if (this.selection.isEmpty())\n            this.selection.selectLineStart();\n\n        this.session.remove(this.getSelectionRange());\n        this.clearSelection();\n    };\n    this.removeToLineEnd = function() {\n        if (this.selection.isEmpty())\n            this.selection.selectLineEnd();\n\n        var range = this.getSelectionRange();\n        if (range.start.column == range.end.column && range.start.row == range.end.row) {\n            range.end.column = 0;\n            range.end.row++;\n        }\n\n        this.session.remove(range);\n        this.clearSelection();\n    };\n    this.splitLine = function() {\n        if (!this.selection.isEmpty()) {\n            this.session.remove(this.getSelectionRange());\n            this.clearSelection();\n        }\n\n        var cursor = this.getCursorPosition();\n        this.insert(\"\\n\");\n        this.moveCursorToPosition(cursor);\n    };\n    this.transposeLetters = function() {\n        if (!this.selection.isEmpty()) {\n            return;\n        }\n\n        var cursor = this.getCursorPosition();\n        var column = cursor.column;\n        if (column === 0)\n            return;\n\n        var line = this.session.getLine(cursor.row);\n        var swap, range;\n        if (column < line.length) {\n            swap = line.charAt(column) + line.charAt(column-1);\n            range = new Range(cursor.row, column-1, cursor.row, column+1);\n        }\n        else {\n            swap = line.charAt(column-1) + line.charAt(column-2);\n            range = new Range(cursor.row, column-2, cursor.row, column);\n        }\n        this.session.replace(range, swap);\n    };\n    this.toLowerCase = function() {\n        var originalRange = this.getSelectionRange();\n        if (this.selection.isEmpty()) {\n            this.selection.selectWord();\n        }\n\n        var range = this.getSelectionRange();\n        var text = this.session.getTextRange(range);\n        this.session.replace(range, text.toLowerCase());\n        this.selection.setSelectionRange(originalRange);\n    };\n    this.toUpperCase = function() {\n        var originalRange = this.getSelectionRange();\n        if (this.selection.isEmpty()) {\n            this.selection.selectWord();\n        }\n\n        var range = this.getSelectionRange();\n        var text = this.session.getTextRange(range);\n        this.session.replace(range, text.toUpperCase());\n        this.selection.setSelectionRange(originalRange);\n    };\n    this.indent = function() {\n        var session = this.session;\n        var range = this.getSelectionRange();\n\n        if (range.start.row < range.end.row) {\n            var rows = this.$getSelectedRows();\n            session.indentRows(rows.first, rows.last, \"\\t\");\n            return;\n        } else if (range.start.column < range.end.column) {\n            var text = session.getTextRange(range);\n            if (!/^\\s+$/.test(text)) {\n                var rows = this.$getSelectedRows();\n                session.indentRows(rows.first, rows.last, \"\\t\");\n                return;\n            }\n        }\n        \n        var line = session.getLine(range.start.row);\n        var position = range.start;\n        var size = session.getTabSize();\n        var column = session.documentToScreenColumn(position.row, position.column);\n\n        if (this.session.getUseSoftTabs()) {\n            var count = (size - column % size);\n            var indentString = lang.stringRepeat(\" \", count);\n        } else {\n            var count = column % size;\n            while (line[range.start.column - 1] == \" \" && count) {\n                range.start.column--;\n                count--;\n            }\n            this.selection.setSelectionRange(range);\n            indentString = \"\\t\";\n        }\n        return this.insert(indentString);\n    };\n    this.blockIndent = function() {\n        var rows = this.$getSelectedRows();\n        this.session.indentRows(rows.first, rows.last, \"\\t\");\n    };\n    this.blockOutdent = function() {\n        var selection = this.session.getSelection();\n        this.session.outdentRows(selection.getRange());\n    };\n    this.sortLines = function() {\n        var rows = this.$getSelectedRows();\n        var session = this.session;\n\n        var lines = [];\n        for (i = rows.first; i <= rows.last; i++)\n            lines.push(session.getLine(i));\n\n        lines.sort(function(a, b) {\n            if (a.toLowerCase() < b.toLowerCase()) return -1;\n            if (a.toLowerCase() > b.toLowerCase()) return 1;\n            return 0;\n        });\n\n        var deleteRange = new Range(0, 0, 0, 0);\n        for (var i = rows.first; i <= rows.last; i++) {\n            var line = session.getLine(i);\n            deleteRange.start.row = i;\n            deleteRange.end.row = i;\n            deleteRange.end.column = line.length;\n            session.replace(deleteRange, lines[i-rows.first]);\n        }\n    };\n    this.toggleCommentLines = function() {\n        var state = this.session.getState(this.getCursorPosition().row);\n        var rows = this.$getSelectedRows();\n        this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n    };\n\n    this.toggleBlockComment = function() {\n        var cursor = this.getCursorPosition();\n        var state = this.session.getState(cursor.row);\n        var range = this.getSelectionRange();\n        this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n    };\n    this.getNumberAt = function(row, column) {\n        var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n        _numberRx.lastIndex = 0;\n\n        var s = this.session.getLine(row);\n        while (_numberRx.lastIndex < column) {\n            var m = _numberRx.exec(s);\n            if(m.index <= column && m.index+m[0].length >= column){\n                var number = {\n                    value: m[0],\n                    start: m.index,\n                    end: m.index+m[0].length\n                };\n                return number;\n            }\n        }\n        return null;\n    };\n    this.modifyNumber = function(amount) {\n        var row = this.selection.getCursor().row;\n        var column = this.selection.getCursor().column;\n        var charRange = new Range(row, column-1, row, column);\n\n        var c = this.session.getTextRange(charRange);\n        if (!isNaN(parseFloat(c)) && isFinite(c)) {\n            var nr = this.getNumberAt(row, column);\n            if (nr) {\n                var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n                var decimals = nr.start + nr.value.length - fp;\n\n                var t = parseFloat(nr.value);\n                t *= Math.pow(10, decimals);\n\n\n                if(fp !== nr.end && column < fp){\n                    amount *= Math.pow(10, nr.end - column - 1);\n                } else {\n                    amount *= Math.pow(10, nr.end - column);\n                }\n\n                t += amount;\n                t /= Math.pow(10, decimals);\n                var nnr = t.toFixed(decimals);\n                var replaceRange = new Range(row, nr.start, row, nr.end);\n                this.session.replace(replaceRange, nnr);\n                this.moveCursorTo(row, Math.max(nr.start +1, column + nnr.length - nr.value.length));\n\n            }\n        }\n    };\n    this.removeLines = function() {\n        var rows = this.$getSelectedRows();\n        this.session.removeFullLines(rows.first, rows.last);\n        this.clearSelection();\n    };\n\n    this.duplicateSelection = function() {\n        var sel = this.selection;\n        var doc = this.session;\n        var range = sel.getRange();\n        var reverse = sel.isBackwards();\n        if (range.isEmpty()) {\n            var row = range.start.row;\n            doc.duplicateLines(row, row);\n        } else {\n            var point = reverse ? range.start : range.end;\n            var endPoint = doc.insert(point, doc.getTextRange(range), false);\n            range.start = point;\n            range.end = endPoint;\n\n            sel.setSelectionRange(range, reverse);\n        }\n    };\n    this.moveLinesDown = function() {\n        this.$moveLines(1, false);\n    };\n    this.moveLinesUp = function() {\n        this.$moveLines(-1, false);\n    };\n    this.moveText = function(range, toPosition, copy) {\n        return this.session.moveText(range, toPosition, copy);\n    };\n    this.copyLinesUp = function() {\n        this.$moveLines(-1, true);\n    };\n    this.copyLinesDown = function() {\n        this.$moveLines(1, true);\n    };\n    this.$moveLines = function(dir, copy) {\n        var rows, moved;\n        var selection = this.selection;\n        if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n            var range = selection.toOrientedRange();\n            rows = this.$getSelectedRows(range);\n            moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n            if (copy && dir == -1) moved = 0;\n            range.moveBy(moved, 0);\n            selection.fromOrientedRange(range);\n        } else {\n            var ranges = selection.rangeList.ranges;\n            selection.rangeList.detach(this.session);\n            this.inVirtualSelectionMode = true;\n            \n            var diff = 0;\n            var totalDiff = 0;\n            var l = ranges.length;\n            for (var i = 0; i < l; i++) {\n                var rangeIndex = i;\n                ranges[i].moveBy(diff, 0);\n                rows = this.$getSelectedRows(ranges[i]);\n                var first = rows.first;\n                var last = rows.last;\n                while (++i < l) {\n                    if (totalDiff) ranges[i].moveBy(totalDiff, 0);\n                    var subRows = this.$getSelectedRows(ranges[i]);\n                    if (copy && subRows.first != last)\n                        break;\n                    else if (!copy && subRows.first > last + 1)\n                        break;\n                    last = subRows.last;\n                }\n                i--;\n                diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n                if (copy && dir == -1) rangeIndex = i + 1;\n                while (rangeIndex <= i) {\n                    ranges[rangeIndex].moveBy(diff, 0);\n                    rangeIndex++;\n                }\n                if (!copy) diff = 0;\n                totalDiff += diff;\n            }\n            \n            selection.fromOrientedRange(selection.ranges[0]);\n            selection.rangeList.attach(this.session);\n            this.inVirtualSelectionMode = false;\n        }\n    };\n    this.$getSelectedRows = function(range) {\n        range = (range || this.getSelectionRange()).collapseRows();\n\n        return {\n            first: this.session.getRowFoldStart(range.start.row),\n            last: this.session.getRowFoldEnd(range.end.row)\n        };\n    };\n\n    this.onCompositionStart = function(text) {\n        this.renderer.showComposition(this.getCursorPosition());\n    };\n\n    this.onCompositionUpdate = function(text) {\n        this.renderer.setCompositionText(text);\n    };\n\n    this.onCompositionEnd = function() {\n        this.renderer.hideComposition();\n    };\n    this.getFirstVisibleRow = function() {\n        return this.renderer.getFirstVisibleRow();\n    };\n    this.getLastVisibleRow = function() {\n        return this.renderer.getLastVisibleRow();\n    };\n    this.isRowVisible = function(row) {\n        return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n    };\n    this.isRowFullyVisible = function(row) {\n        return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n    };\n    this.$getVisibleRowCount = function() {\n        return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n    };\n\n    this.$moveByPage = function(dir, select) {\n        var renderer = this.renderer;\n        var config = this.renderer.layerConfig;\n        var rows = dir * Math.floor(config.height / config.lineHeight);\n\n        this.$blockScrolling++;\n        if (select === true) {\n            this.selection.$moveSelection(function(){\n                this.moveCursorBy(rows, 0);\n            });\n        } else if (select === false) {\n            this.selection.moveCursorBy(rows, 0);\n            this.selection.clearSelection();\n        }\n        this.$blockScrolling--;\n\n        var scrollTop = renderer.scrollTop;\n\n        renderer.scrollBy(0, rows * config.lineHeight);\n        if (select != null)\n            renderer.scrollCursorIntoView(null, 0.5);\n\n        renderer.animateScrolling(scrollTop);\n    };\n    this.selectPageDown = function() {\n        this.$moveByPage(1, true);\n    };\n    this.selectPageUp = function() {\n        this.$moveByPage(-1, true);\n    };\n    this.gotoPageDown = function() {\n       this.$moveByPage(1, false);\n    };\n    this.gotoPageUp = function() {\n        this.$moveByPage(-1, false);\n    };\n    this.scrollPageDown = function() {\n        this.$moveByPage(1);\n    };\n    this.scrollPageUp = function() {\n        this.$moveByPage(-1);\n    };\n    this.scrollToRow = function(row) {\n        this.renderer.scrollToRow(row);\n    };\n    this.scrollToLine = function(line, center, animate, callback) {\n        this.renderer.scrollToLine(line, center, animate, callback);\n    };\n    this.centerSelection = function() {\n        var range = this.getSelectionRange();\n        var pos = {\n            row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n            column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n        };\n        this.renderer.alignCursor(pos, 0.5);\n    };\n    this.getCursorPosition = function() {\n        return this.selection.getCursor();\n    };\n    this.getCursorPositionScreen = function() {\n        return this.session.documentToScreenPosition(this.getCursorPosition());\n    };\n    this.getSelectionRange = function() {\n        return this.selection.getRange();\n    };\n    this.selectAll = function() {\n        this.$blockScrolling += 1;\n        this.selection.selectAll();\n        this.$blockScrolling -= 1;\n    };\n    this.clearSelection = function() {\n        this.selection.clearSelection();\n    };\n    this.moveCursorTo = function(row, column) {\n        this.selection.moveCursorTo(row, column);\n    };\n    this.moveCursorToPosition = function(pos) {\n        this.selection.moveCursorToPosition(pos);\n    };\n    this.jumpToMatching = function(select, expand) {\n        var cursor = this.getCursorPosition();\n        var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n        var prevToken = iterator.getCurrentToken();\n        var token = prevToken || iterator.stepForward();\n\n        if (!token) return;\n        var matchType;\n        var found = false;\n        var depth = {};\n        var i = cursor.column - token.start;\n        var bracketType;\n        var brackets = {\n            \")\": \"(\",\n            \"(\": \"(\",\n            \"]\": \"[\",\n            \"[\": \"[\",\n            \"{\": \"{\",\n            \"}\": \"{\"\n        };\n        \n        do {\n            if (token.value.match(/[{}()\\[\\]]/g)) {\n                for (; i < token.value.length && !found; i++) {\n                    if (!brackets[token.value[i]]) {\n                        continue;\n                    }\n\n                    bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n\n                    if (isNaN(depth[bracketType])) {\n                        depth[bracketType] = 0;\n                    }\n\n                    switch (token.value[i]) {\n                        case '(':\n                        case '[':\n                        case '{':\n                            depth[bracketType]++;\n                            break;\n                        case ')':\n                        case ']':\n                        case '}':\n                            depth[bracketType]--;\n\n                            if (depth[bracketType] === -1) {\n                                matchType = 'bracket';\n                                found = true;\n                            }\n                        break;\n                    }\n                }\n            }\n            else if (token && token.type.indexOf('tag-name') !== -1) {\n                if (isNaN(depth[token.value])) {\n                    depth[token.value] = 0;\n                }\n                \n                if (prevToken.value === '<') {\n                    depth[token.value]++;\n                }\n                else if (prevToken.value === '</') {\n                    depth[token.value]--;\n                }\n                \n                if (depth[token.value] === -1) {\n                    matchType = 'tag';\n                    found = true;\n                }\n            }\n\n            if (!found) {\n                prevToken = token;\n                token = iterator.stepForward();\n                i = 0;\n            }\n        } while (token && !found);\n        if (!matchType)\n            return;\n\n        var range, pos;\n        if (matchType === 'bracket') {\n            range = this.session.getBracketRange(cursor);\n            if (!range) {\n                range = new Range(\n                    iterator.getCurrentTokenRow(),\n                    iterator.getCurrentTokenColumn() + i - 1,\n                    iterator.getCurrentTokenRow(),\n                    iterator.getCurrentTokenColumn() + i - 1\n                );\n                pos = range.start;\n                if (expand || pos.row === cursor.row && Math.abs(pos.column - cursor.column) < 2)\n                    range = this.session.getBracketRange(pos);\n            }\n        }\n        else if (matchType === 'tag') {\n            if (token && token.type.indexOf('tag-name') !== -1) \n                var tag = token.value;\n            else\n                return;\n\n            range = new Range(\n                iterator.getCurrentTokenRow(),\n                iterator.getCurrentTokenColumn() - 2,\n                iterator.getCurrentTokenRow(),\n                iterator.getCurrentTokenColumn() - 2\n            );\n            if (range.compare(cursor.row, cursor.column) === 0) {\n                found = false;\n                do {\n                    token = prevToken;\n                    prevToken = iterator.stepBackward();\n                    \n                    if (prevToken) {\n                        if (prevToken.type.indexOf('tag-close') !== -1) {\n                            range.setEnd(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1);\n                        }\n\n                        if (token.value === tag && token.type.indexOf('tag-name') !== -1) {\n                            if (prevToken.value === '<') {\n                                depth[tag]++;\n                            }\n                            else if (prevToken.value === '</') {\n                                depth[tag]--;\n                            }\n                            \n                            if (depth[tag] === 0)\n                                found = true;\n                        }\n                    }\n                } while (prevToken && !found);\n            }\n            if (token && token.type.indexOf('tag-name')) {\n                pos = range.start;\n                if (pos.row == cursor.row && Math.abs(pos.column - cursor.column) < 2)\n                    pos = range.end;\n            }\n        }\n\n        pos = range && range.cursor || pos;\n        if (pos) {\n            if (select) {\n                if (range && expand) {\n                    this.selection.setRange(range);\n                } else if (range && range.isEqual(this.getSelectionRange())) {\n                    this.clearSelection();\n                } else {\n                    this.selection.selectTo(pos.row, pos.column);\n                }\n            } else {\n                this.selection.moveTo(pos.row, pos.column);\n            }\n        }\n    };\n    this.gotoLine = function(lineNumber, column, animate) {\n        this.selection.clearSelection();\n        this.session.unfold({row: lineNumber - 1, column: column || 0});\n\n        this.$blockScrolling += 1;\n        this.exitMultiSelectMode && this.exitMultiSelectMode();\n        this.moveCursorTo(lineNumber - 1, column || 0);\n        this.$blockScrolling -= 1;\n\n        if (!this.isRowFullyVisible(lineNumber - 1))\n            this.scrollToLine(lineNumber - 1, true, animate);\n    };\n    this.navigateTo = function(row, column) {\n        this.selection.moveTo(row, column);\n    };\n    this.navigateUp = function(times) {\n        if (this.selection.isMultiLine() && !this.selection.isBackwards()) {\n            var selectionStart = this.selection.anchor.getPosition();\n            return this.moveCursorToPosition(selectionStart);\n        }\n        this.selection.clearSelection();\n        this.selection.moveCursorBy(-times || -1, 0);\n    };\n    this.navigateDown = function(times) {\n        if (this.selection.isMultiLine() && this.selection.isBackwards()) {\n            var selectionEnd = this.selection.anchor.getPosition();\n            return this.moveCursorToPosition(selectionEnd);\n        }\n        this.selection.clearSelection();\n        this.selection.moveCursorBy(times || 1, 0);\n    };\n    this.navigateLeft = function(times) {\n        if (!this.selection.isEmpty()) {\n            var selectionStart = this.getSelectionRange().start;\n            this.moveCursorToPosition(selectionStart);\n        }\n        else {\n            times = times || 1;\n            while (times--) {\n                this.selection.moveCursorLeft();\n            }\n        }\n        this.clearSelection();\n    };\n    this.navigateRight = function(times) {\n        if (!this.selection.isEmpty()) {\n            var selectionEnd = this.getSelectionRange().end;\n            this.moveCursorToPosition(selectionEnd);\n        }\n        else {\n            times = times || 1;\n            while (times--) {\n                this.selection.moveCursorRight();\n            }\n        }\n        this.clearSelection();\n    };\n    this.navigateLineStart = function() {\n        this.selection.moveCursorLineStart();\n        this.clearSelection();\n    };\n    this.navigateLineEnd = function() {\n        this.selection.moveCursorLineEnd();\n        this.clearSelection();\n    };\n    this.navigateFileEnd = function() {\n        this.selection.moveCursorFileEnd();\n        this.clearSelection();\n    };\n    this.navigateFileStart = function() {\n        this.selection.moveCursorFileStart();\n        this.clearSelection();\n    };\n    this.navigateWordRight = function() {\n        this.selection.moveCursorWordRight();\n        this.clearSelection();\n    };\n    this.navigateWordLeft = function() {\n        this.selection.moveCursorWordLeft();\n        this.clearSelection();\n    };\n    this.replace = function(replacement, options) {\n        if (options)\n            this.$search.set(options);\n\n        var range = this.$search.find(this.session);\n        var replaced = 0;\n        if (!range)\n            return replaced;\n\n        if (this.$tryReplace(range, replacement)) {\n            replaced = 1;\n        }\n        if (range !== null) {\n            this.selection.setSelectionRange(range);\n            this.renderer.scrollSelectionIntoView(range.start, range.end);\n        }\n\n        return replaced;\n    };\n    this.replaceAll = function(replacement, options) {\n        if (options) {\n            this.$search.set(options);\n        }\n\n        var ranges = this.$search.findAll(this.session);\n        var replaced = 0;\n        if (!ranges.length)\n            return replaced;\n\n        this.$blockScrolling += 1;\n\n        var selection = this.getSelectionRange();\n        this.selection.moveTo(0, 0);\n\n        for (var i = ranges.length - 1; i >= 0; --i) {\n            if(this.$tryReplace(ranges[i], replacement)) {\n                replaced++;\n            }\n        }\n\n        this.selection.setSelectionRange(selection);\n        this.$blockScrolling -= 1;\n\n        return replaced;\n    };\n\n    this.$tryReplace = function(range, replacement) {\n        var input = this.session.getTextRange(range);\n        replacement = this.$search.replace(input, replacement);\n        if (replacement !== null) {\n            range.end = this.session.replace(range, replacement);\n            return range;\n        } else {\n            return null;\n        }\n    };\n    this.getLastSearchOptions = function() {\n        return this.$search.getOptions();\n    };\n    this.find = function(needle, options, animate) {\n        if (!options)\n            options = {};\n\n        if (typeof needle == \"string\" || needle instanceof RegExp)\n            options.needle = needle;\n        else if (typeof needle == \"object\")\n            oop.mixin(options, needle);\n\n        var range = this.selection.getRange();\n        if (options.needle == null) {\n            needle = this.session.getTextRange(range)\n                || this.$search.$options.needle;\n            if (!needle) {\n                range = this.session.getWordRange(range.start.row, range.start.column);\n                needle = this.session.getTextRange(range);\n            }\n            this.$search.set({needle: needle});\n        }\n\n        this.$search.set(options);\n        if (!options.start)\n            this.$search.set({start: range});\n\n        var newRange = this.$search.find(this.session);\n        if (options.preventScroll)\n            return newRange;\n        if (newRange) {\n            this.revealRange(newRange, animate);\n            return newRange;\n        }\n        if (options.backwards)\n            range.start = range.end;\n        else\n            range.end = range.start;\n        this.selection.setRange(range);\n    };\n    this.findNext = function(options, animate) {\n        this.find({skipCurrent: true, backwards: false}, options, animate);\n    };\n    this.findPrevious = function(options, animate) {\n        this.find(options, {skipCurrent: true, backwards: true}, animate);\n    };\n\n    this.revealRange = function(range, animate) {\n        this.$blockScrolling += 1;\n        this.session.unfold(range);\n        this.selection.setSelectionRange(range);\n        this.$blockScrolling -= 1;\n\n        var scrollTop = this.renderer.scrollTop;\n        this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n        if (animate !== false)\n            this.renderer.animateScrolling(scrollTop);\n    };\n    this.undo = function() {\n        this.$blockScrolling++;\n        this.session.getUndoManager().undo();\n        this.$blockScrolling--;\n        this.renderer.scrollCursorIntoView(null, 0.5);\n    };\n    this.redo = function() {\n        this.$blockScrolling++;\n        this.session.getUndoManager().redo();\n        this.$blockScrolling--;\n        this.renderer.scrollCursorIntoView(null, 0.5);\n    };\n    this.destroy = function() {\n        this.renderer.destroy();\n        this._signal(\"destroy\", this);\n        if (this.session) {\n            this.session.destroy();\n        }\n    };\n    this.setAutoScrollEditorIntoView = function(enable) {\n        if (!enable)\n            return;\n        var rect;\n        var self = this;\n        var shouldScroll = false;\n        if (!this.$scrollAnchor)\n            this.$scrollAnchor = document.createElement(\"div\");\n        var scrollAnchor = this.$scrollAnchor;\n        scrollAnchor.style.cssText = \"position:absolute\";\n        this.container.insertBefore(scrollAnchor, this.container.firstChild);\n        var onChangeSelection = this.on(\"changeSelection\", function() {\n            shouldScroll = true;\n        });\n        var onBeforeRender = this.renderer.on(\"beforeRender\", function() {\n            if (shouldScroll)\n                rect = self.renderer.container.getBoundingClientRect();\n        });\n        var onAfterRender = this.renderer.on(\"afterRender\", function() {\n            if (shouldScroll && rect && (self.isFocused()\n                || self.searchBox && self.searchBox.isFocused())\n            ) {\n                var renderer = self.renderer;\n                var pos = renderer.$cursorLayer.$pixelPos;\n                var config = renderer.layerConfig;\n                var top = pos.top - config.offset;\n                if (pos.top >= 0 && top + rect.top < 0) {\n                    shouldScroll = true;\n                } else if (pos.top < config.height &&\n                    pos.top + rect.top + config.lineHeight > window.innerHeight) {\n                    shouldScroll = false;\n                } else {\n                    shouldScroll = null;\n                }\n                if (shouldScroll != null) {\n                    scrollAnchor.style.top = top + \"px\";\n                    scrollAnchor.style.left = pos.left + \"px\";\n                    scrollAnchor.style.height = config.lineHeight + \"px\";\n                    scrollAnchor.scrollIntoView(shouldScroll);\n                }\n                shouldScroll = rect = null;\n            }\n        });\n        this.setAutoScrollEditorIntoView = function(enable) {\n            if (enable)\n                return;\n            delete this.setAutoScrollEditorIntoView;\n            this.off(\"changeSelection\", onChangeSelection);\n            this.renderer.off(\"afterRender\", onAfterRender);\n            this.renderer.off(\"beforeRender\", onBeforeRender);\n        };\n    };\n\n\n    this.$resetCursorStyle = function() {\n        var style = this.$cursorStyle || \"ace\";\n        var cursorLayer = this.renderer.$cursorLayer;\n        if (!cursorLayer)\n            return;\n        cursorLayer.setSmoothBlinking(/smooth/.test(style));\n        cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n        dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n    };\n\n}).call(Editor.prototype);\n\n\n\nconfig.defineOptions(Editor.prototype, \"editor\", {\n    selectionStyle: {\n        set: function(style) {\n            this.onSelectionChange();\n            this._signal(\"changeSelectionStyle\", {data: style});\n        },\n        initialValue: \"line\"\n    },\n    highlightActiveLine: {\n        set: function() {this.$updateHighlightActiveLine();},\n        initialValue: true\n    },\n    highlightSelectedWord: {\n        set: function(shouldHighlight) {this.$onSelectionChange();},\n        initialValue: true\n    },\n    readOnly: {\n        set: function(readOnly) {\n            this.$resetCursorStyle(); \n        },\n        initialValue: false\n    },\n    cursorStyle: {\n        set: function(val) { this.$resetCursorStyle(); },\n        values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n        initialValue: \"ace\"\n    },\n    mergeUndoDeltas: {\n        values: [false, true, \"always\"],\n        initialValue: true\n    },\n    behavioursEnabled: {initialValue: true},\n    wrapBehavioursEnabled: {initialValue: true},\n    autoScrollEditorIntoView: {\n        set: function(val) {this.setAutoScrollEditorIntoView(val)}\n    },\n    keyboardHandler: {\n        set: function(val) { this.setKeyboardHandler(val); },\n        get: function() { return this.keybindingId; },\n        handlesSet: true\n    },\n\n    hScrollBarAlwaysVisible: \"renderer\",\n    vScrollBarAlwaysVisible: \"renderer\",\n    highlightGutterLine: \"renderer\",\n    animatedScroll: \"renderer\",\n    showInvisibles: \"renderer\",\n    showPrintMargin: \"renderer\",\n    printMarginColumn: \"renderer\",\n    printMargin: \"renderer\",\n    fadeFoldWidgets: \"renderer\",\n    showFoldWidgets: \"renderer\",\n    showLineNumbers: \"renderer\",\n    showGutter: \"renderer\",\n    displayIndentGuides: \"renderer\",\n    fontSize: \"renderer\",\n    fontFamily: \"renderer\",\n    maxLines: \"renderer\",\n    minLines: \"renderer\",\n    scrollPastEnd: \"renderer\",\n    fixedWidthGutter: \"renderer\",\n    theme: \"renderer\",\n\n    scrollSpeed: \"$mouseHandler\",\n    dragDelay: \"$mouseHandler\",\n    dragEnabled: \"$mouseHandler\",\n    focusTimout: \"$mouseHandler\",\n    tooltipFollowsMouse: \"$mouseHandler\",\n\n    firstLineNumber: \"session\",\n    overwrite: \"session\",\n    newLineMode: \"session\",\n    useWorker: \"session\",\n    useSoftTabs: \"session\",\n    tabSize: \"session\",\n    wrap: \"session\",\n    indentedSoftWrap: \"session\",\n    foldStyle: \"session\",\n    mode: \"session\"\n});\n\nexports.Editor = Editor;\n});\n\nace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\nvar UndoManager = function() {\n    this.reset();\n};\n\n(function() {\n    this.execute = function(options) {\n        var deltaSets = options.args[0];\n        this.$doc  = options.args[1];\n        if (options.merge && this.hasUndo()){\n            this.dirtyCounter--;\n            deltaSets = this.$undoStack.pop().concat(deltaSets);\n        }\n        this.$undoStack.push(deltaSets);\n        this.$redoStack = [];\n        if (this.dirtyCounter < 0) {\n            this.dirtyCounter = NaN;\n        }\n        this.dirtyCounter++;\n    };\n    this.undo = function(dontSelect) {\n        var deltaSets = this.$undoStack.pop();\n        var undoSelectionRange = null;\n        if (deltaSets) {\n            undoSelectionRange = this.$doc.undoChanges(deltaSets, dontSelect);\n            this.$redoStack.push(deltaSets);\n            this.dirtyCounter--;\n        }\n\n        return undoSelectionRange;\n    };\n    this.redo = function(dontSelect) {\n        var deltaSets = this.$redoStack.pop();\n        var redoSelectionRange = null;\n        if (deltaSets) {\n            redoSelectionRange =\n                this.$doc.redoChanges(this.$deserializeDeltas(deltaSets), dontSelect);\n            this.$undoStack.push(deltaSets);\n            this.dirtyCounter++;\n        }\n        return redoSelectionRange;\n    };\n    this.reset = function() {\n        this.$undoStack = [];\n        this.$redoStack = [];\n        this.dirtyCounter = 0;\n    };\n    this.hasUndo = function() {\n        return this.$undoStack.length > 0;\n    };\n    this.hasRedo = function() {\n        return this.$redoStack.length > 0;\n    };\n    this.markClean = function() {\n        this.dirtyCounter = 0;\n    };\n    this.isClean = function() {\n        return this.dirtyCounter === 0;\n    };\n    this.$serializeDeltas = function(deltaSets) {\n        return cloneDeltaSetsObj(deltaSets, $serializeDelta);\n    };\n    this.$deserializeDeltas = function(deltaSets) {\n        return cloneDeltaSetsObj(deltaSets, $deserializeDelta);\n    };\n    \n    function $serializeDelta(delta){\n        return {\n            action: delta.action,\n            start: delta.start,\n            end: delta.end,\n            lines: delta.lines.length == 1 ? null : delta.lines,\n            text: delta.lines.length == 1 ? delta.lines[0] : null\n        };\n    }\n        \n    function $deserializeDelta(delta) {\n        return {\n            action: delta.action,\n            start: delta.start,\n            end: delta.end,\n            lines: delta.lines || [delta.text]\n        };\n    }\n    \n    function cloneDeltaSetsObj(deltaSets_old, fnGetModifiedDelta) {\n        var deltaSets_new = new Array(deltaSets_old.length);\n        for (var i = 0; i < deltaSets_old.length; i++) {\n            var deltaSet_old = deltaSets_old[i];\n            var deltaSet_new = { group: deltaSet_old.group, deltas: new Array(deltaSet_old.length)};\n            \n            for (var j = 0; j < deltaSet_old.deltas.length; j++) {\n                var delta_old = deltaSet_old.deltas[j];\n                deltaSet_new.deltas[j] = fnGetModifiedDelta(delta_old);\n            }\n            \n            deltaSets_new[i] = deltaSet_new;\n        }\n        return deltaSets_new;\n    }\n    \n}).call(UndoManager.prototype);\n\nexports.UndoManager = UndoManager;\n});\n\nace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\"], function(require, exports, module) {\n\"use strict\";\n\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\n\nvar Gutter = function(parentEl) {\n    this.element = dom.createElement(\"div\");\n    this.element.className = \"ace_layer ace_gutter-layer\";\n    parentEl.appendChild(this.element);\n    this.setShowFoldWidgets(this.$showFoldWidgets);\n    \n    this.gutterWidth = 0;\n\n    this.$annotations = [];\n    this.$updateAnnotations = this.$updateAnnotations.bind(this);\n\n    this.$cells = [];\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n\n    this.setSession = function(session) {\n        if (this.session)\n            this.session.removeEventListener(\"change\", this.$updateAnnotations);\n        this.session = session;\n        if (session)\n            session.on(\"change\", this.$updateAnnotations);\n    };\n\n    this.addGutterDecoration = function(row, className){\n        if (window.console)\n            console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n        this.session.addGutterDecoration(row, className);\n    };\n\n    this.removeGutterDecoration = function(row, className){\n        if (window.console)\n            console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n        this.session.removeGutterDecoration(row, className);\n    };\n\n    this.setAnnotations = function(annotations) {\n        this.$annotations = [];\n        for (var i = 0; i < annotations.length; i++) {\n            var annotation = annotations[i];\n            var row = annotation.row;\n            var rowInfo = this.$annotations[row];\n            if (!rowInfo)\n                rowInfo = this.$annotations[row] = {text: []};\n           \n            var annoText = annotation.text;\n            annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n\n            if (rowInfo.text.indexOf(annoText) === -1)\n                rowInfo.text.push(annoText);\n\n            var type = annotation.type;\n            if (type == \"error\")\n                rowInfo.className = \" ace_error\";\n            else if (type == \"warning\" && rowInfo.className != \" ace_error\")\n                rowInfo.className = \" ace_warning\";\n            else if (type == \"info\" && (!rowInfo.className))\n                rowInfo.className = \" ace_info\";\n        }\n    };\n\n    this.$updateAnnotations = function (delta) {\n        if (!this.$annotations.length)\n            return;\n        var firstRow = delta.start.row;\n        var len = delta.end.row - firstRow;\n        if (len === 0) {\n        } else if (delta.action == 'remove') {\n            this.$annotations.splice(firstRow, len + 1, null);\n        } else {\n            var args = new Array(len + 1);\n            args.unshift(firstRow, 1);\n            this.$annotations.splice.apply(this.$annotations, args);\n        }\n    };\n\n    this.update = function(config) {\n        var session = this.session;\n        var firstRow = config.firstRow;\n        var lastRow = Math.min(config.lastRow + config.gutterOffset,  // needed to compensate for hor scollbar\n            session.getLength() - 1);\n        var fold = session.getNextFoldLine(firstRow);\n        var foldStart = fold ? fold.start.row : Infinity;\n        var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n        var breakpoints = session.$breakpoints;\n        var decorations = session.$decorations;\n        var firstLineNumber = session.$firstLineNumber;\n        var lastLineNumber = 0;\n        \n        var gutterRenderer = session.gutterRenderer || this.$renderer;\n\n        var cell = null;\n        var index = -1;\n        var row = firstRow;\n        while (true) {\n            if (row > foldStart) {\n                row = fold.end.row + 1;\n                fold = session.getNextFoldLine(row, fold);\n                foldStart = fold ? fold.start.row : Infinity;\n            }\n            if (row > lastRow) {\n                while (this.$cells.length > index + 1) {\n                    cell = this.$cells.pop();\n                    this.element.removeChild(cell.element);\n                }\n                break;\n            }\n\n            cell = this.$cells[++index];\n            if (!cell) {\n                cell = {element: null, textNode: null, foldWidget: null};\n                cell.element = dom.createElement(\"div\");\n                cell.textNode = document.createTextNode('');\n                cell.element.appendChild(cell.textNode);\n                this.element.appendChild(cell.element);\n                this.$cells[index] = cell;\n            }\n\n            var className = \"ace_gutter-cell \";\n            if (breakpoints[row])\n                className += breakpoints[row];\n            if (decorations[row])\n                className += decorations[row];\n            if (this.$annotations[row])\n                className += this.$annotations[row].className;\n            if (cell.element.className != className)\n                cell.element.className = className;\n\n            var height = session.getRowLength(row) * config.lineHeight + \"px\";\n            if (height != cell.element.style.height)\n                cell.element.style.height = height;\n\n            if (foldWidgets) {\n                var c = foldWidgets[row];\n                if (c == null)\n                    c = foldWidgets[row] = session.getFoldWidget(row);\n            }\n\n            if (c) {\n                if (!cell.foldWidget) {\n                    cell.foldWidget = dom.createElement(\"span\");\n                    cell.element.appendChild(cell.foldWidget);\n                }\n                var className = \"ace_fold-widget ace_\" + c;\n                if (c == \"start\" && row == foldStart && row < fold.end.row)\n                    className += \" ace_closed\";\n                else\n                    className += \" ace_open\";\n                if (cell.foldWidget.className != className)\n                    cell.foldWidget.className = className;\n\n                var height = config.lineHeight + \"px\";\n                if (cell.foldWidget.style.height != height)\n                    cell.foldWidget.style.height = height;\n            } else {\n                if (cell.foldWidget) {\n                    cell.element.removeChild(cell.foldWidget);\n                    cell.foldWidget = null;\n                }\n            }\n            \n            var text = lastLineNumber = gutterRenderer\n                ? gutterRenderer.getText(session, row)\n                : row + firstLineNumber;\n            if (text != cell.textNode.data)\n                cell.textNode.data = text;\n\n            row++;\n        }\n\n        this.element.style.height = config.minHeight + \"px\";\n\n        if (this.$fixedWidth || session.$useWrapMode)\n            lastLineNumber = session.getLength() + firstLineNumber;\n\n        var gutterWidth = gutterRenderer \n            ? gutterRenderer.getWidth(session, lastLineNumber, config)\n            : lastLineNumber.toString().length * config.characterWidth;\n        \n        var padding = this.$padding || this.$computePadding();\n        gutterWidth += padding.left + padding.right;\n        if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n            this.gutterWidth = gutterWidth;\n            this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n            this._emit(\"changeGutterWidth\", gutterWidth);\n        }\n    };\n\n    this.$fixedWidth = false;\n    \n    this.$showLineNumbers = true;\n    this.$renderer = \"\";\n    this.setShowLineNumbers = function(show) {\n        this.$renderer = !show && {\n            getWidth: function() {return \"\"},\n            getText: function() {return \"\"}\n        };\n    };\n    \n    this.getShowLineNumbers = function() {\n        return this.$showLineNumbers;\n    };\n    \n    this.$showFoldWidgets = true;\n    this.setShowFoldWidgets = function(show) {\n        if (show)\n            dom.addCssClass(this.element, \"ace_folding-enabled\");\n        else\n            dom.removeCssClass(this.element, \"ace_folding-enabled\");\n\n        this.$showFoldWidgets = show;\n        this.$padding = null;\n    };\n    \n    this.getShowFoldWidgets = function() {\n        return this.$showFoldWidgets;\n    };\n\n    this.$computePadding = function() {\n        if (!this.element.firstChild)\n            return {left: 0, right: 0};\n        var style = dom.computedStyle(this.element.firstChild);\n        this.$padding = {};\n        this.$padding.left = parseInt(style.paddingLeft) + 1 || 0;\n        this.$padding.right = parseInt(style.paddingRight) || 0;\n        return this.$padding;\n    };\n\n    this.getRegion = function(point) {\n        var padding = this.$padding || this.$computePadding();\n        var rect = this.element.getBoundingClientRect();\n        if (point.x < padding.left + rect.left)\n            return \"markers\";\n        if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n            return \"foldWidgets\";\n    };\n\n}).call(Gutter.prototype);\n\nexports.Gutter = Gutter;\n\n});\n\nace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\nvar dom = require(\"../lib/dom\");\n\nvar Marker = function(parentEl) {\n    this.element = dom.createElement(\"div\");\n    this.element.className = \"ace_layer ace_marker-layer\";\n    parentEl.appendChild(this.element);\n};\n\n(function() {\n\n    this.$padding = 0;\n\n    this.setPadding = function(padding) {\n        this.$padding = padding;\n    };\n    this.setSession = function(session) {\n        this.session = session;\n    };\n    \n    this.setMarkers = function(markers) {\n        this.markers = markers;\n    };\n\n    this.update = function(config) {\n        var config = config || this.config;\n        if (!config)\n            return;\n\n        this.config = config;\n\n\n        var html = [];\n        for (var key in this.markers) {\n            var marker = this.markers[key];\n\n            if (!marker.range) {\n                marker.update(html, this, this.session, config);\n                continue;\n            }\n\n            var range = marker.range.clipRows(config.firstRow, config.lastRow);\n            if (range.isEmpty()) continue;\n\n            range = range.toScreenRange(this.session);\n            if (marker.renderer) {\n                var top = this.$getTop(range.start.row, config);\n                var left = this.$padding + range.start.column * config.characterWidth;\n                marker.renderer(html, range, left, top, config);\n            } else if (marker.type == \"fullLine\") {\n                this.drawFullLineMarker(html, range, marker.clazz, config);\n            } else if (marker.type == \"screenLine\") {\n                this.drawScreenLineMarker(html, range, marker.clazz, config);\n            } else if (range.isMultiLine()) {\n                if (marker.type == \"text\")\n                    this.drawTextMarker(html, range, marker.clazz, config);\n                else\n                    this.drawMultiLineMarker(html, range, marker.clazz, config);\n            } else {\n                this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n            }\n        }\n        this.element.innerHTML = html.join(\"\");\n    };\n\n    this.$getTop = function(row, layerConfig) {\n        return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n    };\n\n    function getBorderClass(tl, tr, br, bl) {\n        return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n    }\n    this.drawTextMarker = function(stringBuilder, range, clazz, layerConfig, extraStyle) {\n        var session = this.session;\n        var start = range.start.row;\n        var end = range.end.row;\n        var row = start;\n        var prev = 0; \n        var curr = 0;\n        var next = session.getScreenLastRowColumn(row);\n        var lineRange = new Range(row, range.start.column, row, curr);\n        for (; row <= end; row++) {\n            lineRange.start.row = lineRange.end.row = row;\n            lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n            lineRange.end.column = next;\n            prev = curr;\n            curr = next;\n            next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n            this.drawSingleLineMarker(stringBuilder, lineRange, \n                clazz + (row == start  ? \" ace_start\" : \"\") + \" ace_br\"\n                    + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end),\n                layerConfig, row == end ? 0 : 1, extraStyle);\n        }\n    };\n    this.drawMultiLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n        var padding = this.$padding;\n        var height = config.lineHeight;\n        var top = this.$getTop(range.start.row, config);\n        var left = padding + range.start.column * config.characterWidth;\n        extraStyle = extraStyle || \"\";\n\n        stringBuilder.push(\n            \"<div class='\", clazz, \" ace_br1 ace_start' style='\",\n            \"height:\", height, \"px;\",\n            \"right:0;\",\n            \"top:\", top, \"px;\",\n            \"left:\", left, \"px;\", extraStyle, \"'></div>\"\n        );\n        top = this.$getTop(range.end.row, config);\n        var width = range.end.column * config.characterWidth;\n\n        stringBuilder.push(\n            \"<div class='\", clazz, \" ace_br12' style='\",\n            \"height:\", height, \"px;\",\n            \"width:\", width, \"px;\",\n            \"top:\", top, \"px;\",\n            \"left:\", padding, \"px;\", extraStyle, \"'></div>\"\n        );\n        height = (range.end.row - range.start.row - 1) * config.lineHeight;\n        if (height <= 0)\n            return;\n        top = this.$getTop(range.start.row + 1, config);\n        \n        var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n\n        stringBuilder.push(\n            \"<div class='\", clazz, (radiusClass ? \" ace_br\" + radiusClass : \"\"), \"' style='\",\n            \"height:\", height, \"px;\",\n            \"right:0;\",\n            \"top:\", top, \"px;\",\n            \"left:\", padding, \"px;\", extraStyle, \"'></div>\"\n        );\n    };\n    this.drawSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength, extraStyle) {\n        var height = config.lineHeight;\n        var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n\n        var top = this.$getTop(range.start.row, config);\n        var left = this.$padding + range.start.column * config.characterWidth;\n\n        stringBuilder.push(\n            \"<div class='\", clazz, \"' style='\",\n            \"height:\", height, \"px;\",\n            \"width:\", width, \"px;\",\n            \"top:\", top, \"px;\",\n            \"left:\", left, \"px;\", extraStyle || \"\", \"'></div>\"\n        );\n    };\n\n    this.drawFullLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n        var top = this.$getTop(range.start.row, config);\n        var height = config.lineHeight;\n        if (range.start.row != range.end.row)\n            height += this.$getTop(range.end.row, config) - top;\n\n        stringBuilder.push(\n            \"<div class='\", clazz, \"' style='\",\n            \"height:\", height, \"px;\",\n            \"top:\", top, \"px;\",\n            \"left:0;right:0;\", extraStyle || \"\", \"'></div>\"\n        );\n    };\n    \n    this.drawScreenLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n        var top = this.$getTop(range.start.row, config);\n        var height = config.lineHeight;\n\n        stringBuilder.push(\n            \"<div class='\", clazz, \"' style='\",\n            \"height:\", height, \"px;\",\n            \"top:\", top, \"px;\",\n            \"left:0;right:0;\", extraStyle || \"\", \"'></div>\"\n        );\n    };\n\n}).call(Marker.prototype);\n\nexports.Marker = Marker;\n\n});\n\nace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar useragent = require(\"../lib/useragent\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\n\nvar Text = function(parentEl) {\n    this.element = dom.createElement(\"div\");\n    this.element.className = \"ace_layer ace_text-layer\";\n    parentEl.appendChild(this.element);\n    this.$updateEolChar = this.$updateEolChar.bind(this);\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n\n    this.EOF_CHAR = \"\\xB6\";\n    this.EOL_CHAR_LF = \"\\xAC\";\n    this.EOL_CHAR_CRLF = \"\\xa4\";\n    this.EOL_CHAR = this.EOL_CHAR_LF;\n    this.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\n    this.SPACE_CHAR = \"\\xB7\";\n    this.$padding = 0;\n\n    this.$updateEolChar = function() {\n        var EOL_CHAR = this.session.doc.getNewLineCharacter() == \"\\n\"\n           ? this.EOL_CHAR_LF\n           : this.EOL_CHAR_CRLF;\n        if (this.EOL_CHAR != EOL_CHAR) {\n            this.EOL_CHAR = EOL_CHAR;\n            return true;\n        }\n    }\n\n    this.setPadding = function(padding) {\n        this.$padding = padding;\n        this.element.style.padding = \"0 \" + padding + \"px\";\n    };\n\n    this.getLineHeight = function() {\n        return this.$fontMetrics.$characterSize.height || 0;\n    };\n\n    this.getCharacterWidth = function() {\n        return this.$fontMetrics.$characterSize.width || 0;\n    };\n    \n    this.$setFontMetrics = function(measure) {\n        this.$fontMetrics = measure;\n        this.$fontMetrics.on(\"changeCharacterSize\", function(e) {\n            this._signal(\"changeCharacterSize\", e);\n        }.bind(this));\n        this.$pollSizeChanges();\n    }\n\n    this.checkForSizeChanges = function() {\n        this.$fontMetrics.checkForSizeChanges();\n    };\n    this.$pollSizeChanges = function() {\n        return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n    };\n    this.setSession = function(session) {\n        this.session = session;\n        if (session)\n            this.$computeTabString();\n    };\n\n    this.showInvisibles = false;\n    this.setShowInvisibles = function(showInvisibles) {\n        if (this.showInvisibles == showInvisibles)\n            return false;\n\n        this.showInvisibles = showInvisibles;\n        this.$computeTabString();\n        return true;\n    };\n\n    this.displayIndentGuides = true;\n    this.setDisplayIndentGuides = function(display) {\n        if (this.displayIndentGuides == display)\n            return false;\n\n        this.displayIndentGuides = display;\n        this.$computeTabString();\n        return true;\n    };\n\n    this.$tabStrings = [];\n    this.onChangeTabSize =\n    this.$computeTabString = function() {\n        var tabSize = this.session.getTabSize();\n        this.tabSize = tabSize;\n        var tabStr = this.$tabStrings = [0];\n        for (var i = 1; i < tabSize + 1; i++) {\n            if (this.showInvisibles) {\n                tabStr.push(\"<span class='ace_invisible ace_invisible_tab'>\"\n                    + lang.stringRepeat(this.TAB_CHAR, i)\n                    + \"</span>\");\n            } else {\n                tabStr.push(lang.stringRepeat(\" \", i));\n            }\n        }\n        if (this.displayIndentGuides) {\n            this.$indentGuideRe =  /\\s\\S| \\t|\\t |\\s$/;\n            var className = \"ace_indent-guide\";\n            var spaceClass = \"\";\n            var tabClass = \"\";\n            if (this.showInvisibles) {\n                className += \" ace_invisible\";\n                spaceClass = \" ace_invisible_space\";\n                tabClass = \" ace_invisible_tab\";\n                var spaceContent = lang.stringRepeat(this.SPACE_CHAR, this.tabSize);\n                var tabContent = lang.stringRepeat(this.TAB_CHAR, this.tabSize);\n            } else{\n                var spaceContent = lang.stringRepeat(\" \", this.tabSize);\n                var tabContent = spaceContent;\n            }\n\n            this.$tabStrings[\" \"] = \"<span class='\" + className + spaceClass + \"'>\" + spaceContent + \"</span>\";\n            this.$tabStrings[\"\\t\"] = \"<span class='\" + className + tabClass + \"'>\" + tabContent + \"</span>\";\n        }\n    };\n\n    this.updateLines = function(config, firstRow, lastRow) {\n        if (this.config.lastRow != config.lastRow ||\n            this.config.firstRow != config.firstRow) {\n            this.scrollLines(config);\n        }\n        this.config = config;\n\n        var first = Math.max(firstRow, config.firstRow);\n        var last = Math.min(lastRow, config.lastRow);\n\n        var lineElements = this.element.childNodes;\n        var lineElementsIdx = 0;\n\n        for (var row = config.firstRow; row < first; row++) {\n            var foldLine = this.session.getFoldLine(row);\n            if (foldLine) {\n                if (foldLine.containsRow(first)) {\n                    first = foldLine.start.row;\n                    break;\n                } else {\n                    row = foldLine.end.row;\n                }\n            }\n            lineElementsIdx ++;\n        }\n\n        var row = first;\n        var foldLine = this.session.getNextFoldLine(row);\n        var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n        while (true) {\n            if (row > foldStart) {\n                row = foldLine.end.row+1;\n                foldLine = this.session.getNextFoldLine(row, foldLine);\n                foldStart = foldLine ? foldLine.start.row :Infinity;\n            }\n            if (row > last)\n                break;\n\n            var lineElement = lineElements[lineElementsIdx++];\n            if (lineElement) {\n                var html = [];\n                this.$renderLine(\n                    html, row, !this.$useLineGroups(), row == foldStart ? foldLine : false\n                );\n                lineElement.style.height = config.lineHeight * this.session.getRowLength(row) + \"px\";\n                lineElement.innerHTML = html.join(\"\");\n            }\n            row++;\n        }\n    };\n\n    this.scrollLines = function(config) {\n        var oldConfig = this.config;\n        this.config = config;\n\n        if (!oldConfig || oldConfig.lastRow < config.firstRow)\n            return this.update(config);\n\n        if (config.lastRow < oldConfig.firstRow)\n            return this.update(config);\n\n        var el = this.element;\n        if (oldConfig.firstRow < config.firstRow)\n            for (var row=this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row>0; row--)\n                el.removeChild(el.firstChild);\n\n        if (oldConfig.lastRow > config.lastRow)\n            for (var row=this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row>0; row--)\n                el.removeChild(el.lastChild);\n\n        if (config.firstRow < oldConfig.firstRow) {\n            var fragment = this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1);\n            if (el.firstChild)\n                el.insertBefore(fragment, el.firstChild);\n            else\n                el.appendChild(fragment);\n        }\n\n        if (config.lastRow > oldConfig.lastRow) {\n            var fragment = this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow);\n            el.appendChild(fragment);\n        }\n    };\n\n    this.$renderLinesFragment = function(config, firstRow, lastRow) {\n        var fragment = this.element.ownerDocument.createDocumentFragment();\n        var row = firstRow;\n        var foldLine = this.session.getNextFoldLine(row);\n        var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n        while (true) {\n            if (row > foldStart) {\n                row = foldLine.end.row+1;\n                foldLine = this.session.getNextFoldLine(row, foldLine);\n                foldStart = foldLine ? foldLine.start.row : Infinity;\n            }\n            if (row > lastRow)\n                break;\n\n            var container = dom.createElement(\"div\");\n\n            var html = [];\n            this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n            container.innerHTML = html.join(\"\");\n            if (this.$useLineGroups()) {\n                container.className = 'ace_line_group';\n                fragment.appendChild(container);\n                container.style.height = config.lineHeight * this.session.getRowLength(row) + \"px\";\n\n            } else {\n                while(container.firstChild)\n                    fragment.appendChild(container.firstChild);\n            }\n\n            row++;\n        }\n        return fragment;\n    };\n\n    this.update = function(config) {\n        this.config = config;\n\n        var html = [];\n        var firstRow = config.firstRow, lastRow = config.lastRow;\n\n        var row = firstRow;\n        var foldLine = this.session.getNextFoldLine(row);\n        var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n        while (true) {\n            if (row > foldStart) {\n                row = foldLine.end.row+1;\n                foldLine = this.session.getNextFoldLine(row, foldLine);\n                foldStart = foldLine ? foldLine.start.row :Infinity;\n            }\n            if (row > lastRow)\n                break;\n\n            if (this.$useLineGroups())\n                html.push(\"<div class='ace_line_group' style='height:\", config.lineHeight*this.session.getRowLength(row), \"px'>\")\n\n            this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n\n            if (this.$useLineGroups())\n                html.push(\"</div>\"); // end the line group\n\n            row++;\n        }\n        this.element.innerHTML = html.join(\"\");\n    };\n\n    this.$textToken = {\n        \"text\": true,\n        \"rparen\": true,\n        \"lparen\": true\n    };\n\n    this.$renderToken = function(stringBuilder, screenColumn, token, value) {\n        var self = this;\n        var replaceReg = /\\t|&|<|>|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF\\uFFF9-\\uFFFC])|[\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3000-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]/g;\n        var replaceFunc = function(c, a, b, tabIdx, idx4) {\n            if (a) {\n                return self.showInvisibles\n                    ? \"<span class='ace_invisible ace_invisible_space'>\" + lang.stringRepeat(self.SPACE_CHAR, c.length) + \"</span>\"\n                    : c;\n            } else if (c == \"&\") {\n                return \"&#38;\";\n            } else if (c == \"<\") {\n                return \"&#60;\";\n            } else if (c == \">\") {\n                return \"&#62;\";\n            } else if (c == \"\\t\") {\n                var tabSize = self.session.getScreenTabSize(screenColumn + tabIdx);\n                screenColumn += tabSize - 1;\n                return self.$tabStrings[tabSize];\n            } else if (c == \"\\u3000\") {\n                var classToUse = self.showInvisibles ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n                var space = self.showInvisibles ? self.SPACE_CHAR : \"\";\n                screenColumn += 1;\n                return \"<span class='\" + classToUse + \"' style='width:\" +\n                    (self.config.characterWidth * 2) +\n                    \"px'>\" + space + \"</span>\";\n            } else if (b) {\n                return \"<span class='ace_invisible ace_invisible_space ace_invalid'>\" + self.SPACE_CHAR + \"</span>\";\n            } else {\n                screenColumn += 1;\n                return \"<span class='ace_cjk' style='width:\" +\n                    (self.config.characterWidth * 2) +\n                    \"px'>\" + c + \"</span>\";\n            }\n        };\n\n        var output = value.replace(replaceReg, replaceFunc);\n\n        if (!this.$textToken[token.type]) {\n            var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n            var style = \"\";\n            if (token.type == \"fold\")\n                style = \" style='width:\" + (token.value.length * this.config.characterWidth) + \"px;' \";\n            stringBuilder.push(\"<span class='\", classes, \"'\", style, \">\", output, \"</span>\");\n        }\n        else {\n            stringBuilder.push(output);\n        }\n        return screenColumn + value.length;\n    };\n\n    this.renderIndentGuide = function(stringBuilder, value, max) {\n        var cols = value.search(this.$indentGuideRe);\n        if (cols <= 0 || cols >= max)\n            return value;\n        if (value[0] == \" \") {\n            cols -= cols % this.tabSize;\n            stringBuilder.push(lang.stringRepeat(this.$tabStrings[\" \"], cols/this.tabSize));\n            return value.substr(cols);\n        } else if (value[0] == \"\\t\") {\n            stringBuilder.push(lang.stringRepeat(this.$tabStrings[\"\\t\"], cols));\n            return value.substr(cols);\n        }\n        return value;\n    };\n\n    this.$renderWrappedLine = function(stringBuilder, tokens, splits, onlyContents) {\n        var chars = 0;\n        var split = 0;\n        var splitChars = splits[0];\n        var screenColumn = 0;\n\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            var value = token.value;\n            if (i == 0 && this.displayIndentGuides) {\n                chars = value.length;\n                value = this.renderIndentGuide(stringBuilder, value, splitChars);\n                if (!value)\n                    continue;\n                chars -= value.length;\n            }\n\n            if (chars + value.length < splitChars) {\n                screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n                chars += value.length;\n            } else {\n                while (chars + value.length >= splitChars) {\n                    screenColumn = this.$renderToken(\n                        stringBuilder, screenColumn,\n                        token, value.substring(0, splitChars - chars)\n                    );\n                    value = value.substring(splitChars - chars);\n                    chars = splitChars;\n\n                    if (!onlyContents) {\n                        stringBuilder.push(\"</div>\",\n                            \"<div class='ace_line' style='height:\",\n                            this.config.lineHeight, \"px'>\"\n                        );\n                    }\n\n                    stringBuilder.push(lang.stringRepeat(\"\\xa0\", splits.indent));\n\n                    split ++;\n                    screenColumn = 0;\n                    splitChars = splits[split] || Number.MAX_VALUE;\n                }\n                if (value.length != 0) {\n                    chars += value.length;\n                    screenColumn = this.$renderToken(\n                        stringBuilder, screenColumn, token, value\n                    );\n                }\n            }\n        }\n    };\n\n    this.$renderSimpleLine = function(stringBuilder, tokens) {\n        var screenColumn = 0;\n        var token = tokens[0];\n        var value = token.value;\n        if (this.displayIndentGuides)\n            value = this.renderIndentGuide(stringBuilder, value);\n        if (value)\n            screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n        for (var i = 1; i < tokens.length; i++) {\n            token = tokens[i];\n            value = token.value;\n            screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n        }\n    };\n    this.$renderLine = function(stringBuilder, row, onlyContents, foldLine) {\n        if (!foldLine && foldLine != false)\n            foldLine = this.session.getFoldLine(row);\n\n        if (foldLine)\n            var tokens = this.$getFoldLineTokens(row, foldLine);\n        else\n            var tokens = this.session.getTokens(row);\n\n\n        if (!onlyContents) {\n            stringBuilder.push(\n                \"<div class='ace_line' style='height:\", \n                    this.config.lineHeight * (\n                        this.$useLineGroups() ? 1 :this.session.getRowLength(row)\n                    ), \"px'>\"\n            );\n        }\n\n        if (tokens.length) {\n            var splits = this.session.getRowSplitData(row);\n            if (splits && splits.length)\n                this.$renderWrappedLine(stringBuilder, tokens, splits, onlyContents);\n            else\n                this.$renderSimpleLine(stringBuilder, tokens);\n        }\n\n        if (this.showInvisibles) {\n            if (foldLine)\n                row = foldLine.end.row\n\n            stringBuilder.push(\n                \"<span class='ace_invisible ace_invisible_eol'>\",\n                row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR,\n                \"</span>\"\n            );\n        }\n        if (!onlyContents)\n            stringBuilder.push(\"</div>\");\n    };\n\n    this.$getFoldLineTokens = function(row, foldLine) {\n        var session = this.session;\n        var renderTokens = [];\n\n        function addTokens(tokens, from, to) {\n            var idx = 0, col = 0;\n            while ((col + tokens[idx].value.length) < from) {\n                col += tokens[idx].value.length;\n                idx++;\n\n                if (idx == tokens.length)\n                    return;\n            }\n            if (col != from) {\n                var value = tokens[idx].value.substring(from - col);\n                if (value.length > (to - from))\n                    value = value.substring(0, to - from);\n\n                renderTokens.push({\n                    type: tokens[idx].type,\n                    value: value\n                });\n\n                col = from + value.length;\n                idx += 1;\n            }\n\n            while (col < to && idx < tokens.length) {\n                var value = tokens[idx].value;\n                if (value.length + col > to) {\n                    renderTokens.push({\n                        type: tokens[idx].type,\n                        value: value.substring(0, to - col)\n                    });\n                } else\n                    renderTokens.push(tokens[idx]);\n                col += value.length;\n                idx += 1;\n            }\n        }\n\n        var tokens = session.getTokens(row);\n        foldLine.walk(function(placeholder, row, column, lastColumn, isNewRow) {\n            if (placeholder != null) {\n                renderTokens.push({\n                    type: \"fold\",\n                    value: placeholder\n                });\n            } else {\n                if (isNewRow)\n                    tokens = session.getTokens(row);\n\n                if (tokens.length)\n                    addTokens(tokens, lastColumn, column);\n            }\n        }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n\n        return renderTokens;\n    };\n\n    this.$useLineGroups = function() {\n        return this.session.getUseWrapMode();\n    };\n\n    this.destroy = function() {\n        clearInterval(this.$pollSizeChangesTimer);\n        if (this.$measureNode)\n            this.$measureNode.parentNode.removeChild(this.$measureNode);\n        delete this.$measureNode;\n    };\n\n}).call(Text.prototype);\n\nexports.Text = Text;\n\n});\n\nace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\"use strict\";\n\nvar dom = require(\"../lib/dom\");\nvar isIE8;\n\nvar Cursor = function(parentEl) {\n    this.element = dom.createElement(\"div\");\n    this.element.className = \"ace_layer ace_cursor-layer\";\n    parentEl.appendChild(this.element);\n    \n    if (isIE8 === undefined)\n        isIE8 = !(\"opacity\" in this.element.style);\n\n    this.isVisible = false;\n    this.isBlinking = true;\n    this.blinkInterval = 1000;\n    this.smoothBlinking = false;\n\n    this.cursors = [];\n    this.cursor = this.addCursor();\n    dom.addCssClass(this.element, \"ace_hidden-cursors\");\n    this.$updateCursors = (isIE8\n        ? this.$updateVisibility\n        : this.$updateOpacity).bind(this);\n};\n\n(function() {\n    \n    this.$updateVisibility = function(val) {\n        var cursors = this.cursors;\n        for (var i = cursors.length; i--; )\n            cursors[i].style.visibility = val ? \"\" : \"hidden\";\n    };\n    this.$updateOpacity = function(val) {\n        var cursors = this.cursors;\n        for (var i = cursors.length; i--; )\n            cursors[i].style.opacity = val ? \"\" : \"0\";\n    };\n    \n\n    this.$padding = 0;\n    this.setPadding = function(padding) {\n        this.$padding = padding;\n    };\n\n    this.setSession = function(session) {\n        this.session = session;\n    };\n\n    this.setBlinking = function(blinking) {\n        if (blinking != this.isBlinking){\n            this.isBlinking = blinking;\n            this.restartTimer();\n        }\n    };\n\n    this.setBlinkInterval = function(blinkInterval) {\n        if (blinkInterval != this.blinkInterval){\n            this.blinkInterval = blinkInterval;\n            this.restartTimer();\n        }\n    };\n\n    this.setSmoothBlinking = function(smoothBlinking) {\n        if (smoothBlinking != this.smoothBlinking && !isIE8) {\n            this.smoothBlinking = smoothBlinking;\n            dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n            this.$updateCursors(true);\n            this.$updateCursors = (this.$updateOpacity).bind(this);\n            this.restartTimer();\n        }\n    };\n\n    this.addCursor = function() {\n        var el = dom.createElement(\"div\");\n        el.className = \"ace_cursor\";\n        this.element.appendChild(el);\n        this.cursors.push(el);\n        return el;\n    };\n\n    this.removeCursor = function() {\n        if (this.cursors.length > 1) {\n            var el = this.cursors.pop();\n            el.parentNode.removeChild(el);\n            return el;\n        }\n    };\n\n    this.hideCursor = function() {\n        this.isVisible = false;\n        dom.addCssClass(this.element, \"ace_hidden-cursors\");\n        this.restartTimer();\n    };\n\n    this.showCursor = function() {\n        this.isVisible = true;\n        dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n        this.restartTimer();\n    };\n\n    this.restartTimer = function() {\n        var update = this.$updateCursors;\n        clearInterval(this.intervalId);\n        clearTimeout(this.timeoutId);\n        if (this.smoothBlinking) {\n            dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n        }\n        \n        update(true);\n\n        if (!this.isBlinking || !this.blinkInterval || !this.isVisible)\n            return;\n\n        if (this.smoothBlinking) {\n            setTimeout(function(){\n                dom.addCssClass(this.element, \"ace_smooth-blinking\");\n            }.bind(this));\n        }\n        \n        var blink = function(){\n            this.timeoutId = setTimeout(function() {\n                update(false);\n            }, 0.6 * this.blinkInterval);\n        }.bind(this);\n\n        this.intervalId = setInterval(function() {\n            update(true);\n            blink();\n        }, this.blinkInterval);\n\n        blink();\n    };\n\n    this.getPixelPosition = function(position, onScreen) {\n        if (!this.config || !this.session)\n            return {left : 0, top : 0};\n\n        if (!position)\n            position = this.session.selection.getCursor();\n        var pos = this.session.documentToScreenPosition(position);\n        var cursorLeft = this.$padding + pos.column * this.config.characterWidth;\n        var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n            this.config.lineHeight;\n\n        return {left : cursorLeft, top : cursorTop};\n    };\n\n    this.update = function(config) {\n        this.config = config;\n\n        var selections = this.session.$selectionMarkers;\n        var i = 0, cursorIndex = 0;\n\n        if (selections === undefined || selections.length === 0){\n            selections = [{cursor: null}];\n        }\n\n        for (var i = 0, n = selections.length; i < n; i++) {\n            var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n            if ((pixelPos.top > config.height + config.offset ||\n                 pixelPos.top < 0) && i > 1) {\n                continue;\n            }\n\n            var style = (this.cursors[cursorIndex++] || this.addCursor()).style;\n            \n            if (!this.drawCursor) {\n                style.left = pixelPos.left + \"px\";\n                style.top = pixelPos.top + \"px\";\n                style.width = config.characterWidth + \"px\";\n                style.height = config.lineHeight + \"px\";\n            } else {\n                this.drawCursor(style, pixelPos, config, selections[i], this.session);\n            }\n        }\n        while (this.cursors.length > cursorIndex)\n            this.removeCursor();\n\n        var overwrite = this.session.getOverwrite();\n        this.$setOverwrite(overwrite);\n        this.$pixelPos = pixelPos;\n        this.restartTimer();\n    };\n    \n    this.drawCursor = null;\n\n    this.$setOverwrite = function(overwrite) {\n        if (overwrite != this.overwrite) {\n            this.overwrite = overwrite;\n            if (overwrite)\n                dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n            else\n                dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n        }\n    };\n\n    this.destroy = function() {\n        clearInterval(this.intervalId);\n        clearTimeout(this.timeoutId);\n    };\n\n}).call(Cursor.prototype);\n\nexports.Cursor = Cursor;\n\n});\n\nace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar MAX_SCROLL_H = 0x8000;\nvar ScrollBar = function(parent) {\n    this.element = dom.createElement(\"div\");\n    this.element.className = \"ace_scrollbar ace_scrollbar\" + this.classSuffix;\n\n    this.inner = dom.createElement(\"div\");\n    this.inner.className = \"ace_scrollbar-inner\";\n    this.element.appendChild(this.inner);\n\n    parent.appendChild(this.element);\n\n    this.setVisible(false);\n    this.skipEvent = false;\n\n    event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n    event.addListener(this.element, \"mousedown\", event.preventDefault);\n};\n\n(function() {\n    oop.implement(this, EventEmitter);\n\n    this.setVisible = function(isVisible) {\n        this.element.style.display = isVisible ? \"\" : \"none\";\n        this.isVisible = isVisible;\n        this.coeff = 1;\n    };\n}).call(ScrollBar.prototype);\nvar VScrollBar = function(parent, renderer) {\n    ScrollBar.call(this, parent);\n    this.scrollTop = 0;\n    this.scrollHeight = 0;\n    renderer.$scrollbarWidth = \n    this.width = dom.scrollbarWidth(parent.ownerDocument);\n    this.inner.style.width =\n    this.element.style.width = (this.width || 15) + 5 + \"px\";\n};\n\noop.inherits(VScrollBar, ScrollBar);\n\n(function() {\n\n    this.classSuffix = '-v';\n    this.onScroll = function() {\n        if (!this.skipEvent) {\n            this.scrollTop = this.element.scrollTop;\n            if (this.coeff != 1) {\n                var h = this.element.clientHeight / this.scrollHeight;\n                this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h);\n            }\n            this._emit(\"scroll\", {data: this.scrollTop});\n        }\n        this.skipEvent = false;\n    };\n    this.getWidth = function() {\n        return this.isVisible ? this.width : 0;\n    };\n    this.setHeight = function(height) {\n        this.element.style.height = height + \"px\";\n    };\n    this.setInnerHeight = \n    this.setScrollHeight = function(height) {\n        this.scrollHeight = height;\n        if (height > MAX_SCROLL_H) {\n            this.coeff = MAX_SCROLL_H / height;\n            height = MAX_SCROLL_H;\n        } else if (this.coeff != 1) {\n            this.coeff = 1\n        }\n        this.inner.style.height = height + \"px\";\n    };\n    this.setScrollTop = function(scrollTop) {\n        if (this.scrollTop != scrollTop) {\n            this.skipEvent = true;\n            this.scrollTop = scrollTop;\n            this.element.scrollTop = scrollTop * this.coeff;\n        }\n    };\n\n}).call(VScrollBar.prototype);\nvar HScrollBar = function(parent, renderer) {\n    ScrollBar.call(this, parent);\n    this.scrollLeft = 0;\n    this.height = renderer.$scrollbarWidth;\n    this.inner.style.height =\n    this.element.style.height = (this.height || 15) + 5 + \"px\";\n};\n\noop.inherits(HScrollBar, ScrollBar);\n\n(function() {\n\n    this.classSuffix = '-h';\n    this.onScroll = function() {\n        if (!this.skipEvent) {\n            this.scrollLeft = this.element.scrollLeft;\n            this._emit(\"scroll\", {data: this.scrollLeft});\n        }\n        this.skipEvent = false;\n    };\n    this.getHeight = function() {\n        return this.isVisible ? this.height : 0;\n    };\n    this.setWidth = function(width) {\n        this.element.style.width = width + \"px\";\n    };\n    this.setInnerWidth = function(width) {\n        this.inner.style.width = width + \"px\";\n    };\n    this.setScrollWidth = function(width) {\n        this.inner.style.width = width + \"px\";\n    };\n    this.setScrollLeft = function(scrollLeft) {\n        if (this.scrollLeft != scrollLeft) {\n            this.skipEvent = true;\n            this.scrollLeft = this.element.scrollLeft = scrollLeft;\n        }\n    };\n\n}).call(HScrollBar.prototype);\n\n\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\n\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n});\n\nace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(require, exports, module) {\n\"use strict\";\n\nvar event = require(\"./lib/event\");\n\n\nvar RenderLoop = function(onRender, win) {\n    this.onRender = onRender;\n    this.pending = false;\n    this.changes = 0;\n    this.window = win || window;\n};\n\n(function() {\n\n\n    this.schedule = function(change) {\n        this.changes = this.changes | change;\n        if (!this.pending && this.changes) {\n            this.pending = true;\n            var _self = this;\n            event.nextFrame(function() {\n                _self.pending = false;\n                var changes;\n                while (changes = _self.changes) {\n                    _self.changes = 0;\n                    _self.onRender(changes);\n                }\n            }, this.window);\n        }\n    };\n\n}).call(RenderLoop.prototype);\n\nexports.RenderLoop = RenderLoop;\n});\n\nace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(require, exports, module) {\n\nvar oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar useragent = require(\"../lib/useragent\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\n\nvar CHAR_COUNT = 0;\n\nvar FontMetrics = exports.FontMetrics = function(parentEl) {\n    this.el = dom.createElement(\"div\");\n    this.$setMeasureNodeStyles(this.el.style, true);\n    \n    this.$main = dom.createElement(\"div\");\n    this.$setMeasureNodeStyles(this.$main.style);\n    \n    this.$measureNode = dom.createElement(\"div\");\n    this.$setMeasureNodeStyles(this.$measureNode.style);\n    \n    \n    this.el.appendChild(this.$main);\n    this.el.appendChild(this.$measureNode);\n    parentEl.appendChild(this.el);\n    \n    if (!CHAR_COUNT)\n        this.$testFractionalRect();\n    this.$measureNode.innerHTML = lang.stringRepeat(\"X\", CHAR_COUNT);\n    \n    this.$characterSize = {width: 0, height: 0};\n    this.checkForSizeChanges();\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n        \n    this.$characterSize = {width: 0, height: 0};\n    \n    this.$testFractionalRect = function() {\n        var el = dom.createElement(\"div\");\n        this.$setMeasureNodeStyles(el.style);\n        el.style.width = \"0.2px\";\n        document.documentElement.appendChild(el);\n        var w = el.getBoundingClientRect().width;\n        if (w > 0 && w < 1)\n            CHAR_COUNT = 50;\n        else\n            CHAR_COUNT = 100;\n        el.parentNode.removeChild(el);\n    };\n    \n    this.$setMeasureNodeStyles = function(style, isRoot) {\n        style.width = style.height = \"auto\";\n        style.left = style.top = \"0px\";\n        style.visibility = \"hidden\";\n        style.position = \"absolute\";\n        style.whiteSpace = \"pre\";\n\n        if (useragent.isIE < 8) {\n            style[\"font-family\"] = \"inherit\";\n        } else {\n            style.font = \"inherit\";\n        }\n        style.overflow = isRoot ? \"hidden\" : \"visible\";\n    };\n\n    this.checkForSizeChanges = function() {\n        var size = this.$measureSizes();\n        if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n            this.$measureNode.style.fontWeight = \"bold\";\n            var boldSize = this.$measureSizes();\n            this.$measureNode.style.fontWeight = \"\";\n            this.$characterSize = size;\n            this.charSizes = Object.create(null);\n            this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n            this._emit(\"changeCharacterSize\", {data: size});\n        }\n    };\n\n    this.$pollSizeChanges = function() {\n        if (this.$pollSizeChangesTimer)\n            return this.$pollSizeChangesTimer;\n        var self = this;\n        return this.$pollSizeChangesTimer = setInterval(function() {\n            self.checkForSizeChanges();\n        }, 500);\n    };\n    \n    this.setPolling = function(val) {\n        if (val) {\n            this.$pollSizeChanges();\n        } else if (this.$pollSizeChangesTimer) {\n            clearInterval(this.$pollSizeChangesTimer);\n            this.$pollSizeChangesTimer = 0;\n        }\n    };\n\n    this.$measureSizes = function() {\n        if (CHAR_COUNT === 50) {\n            var rect = null;\n            try { \n               rect = this.$measureNode.getBoundingClientRect();\n            } catch(e) {\n               rect = {width: 0, height:0 };\n            }\n            var size = {\n                height: rect.height,\n                width: rect.width / CHAR_COUNT\n            };\n        } else {\n            var size = {\n                height: this.$measureNode.clientHeight,\n                width: this.$measureNode.clientWidth / CHAR_COUNT\n            };\n        }\n        if (size.width === 0 || size.height === 0)\n            return null;\n        return size;\n    };\n\n    this.$measureCharWidth = function(ch) {\n        this.$main.innerHTML = lang.stringRepeat(ch, CHAR_COUNT);\n        var rect = this.$main.getBoundingClientRect();\n        return rect.width / CHAR_COUNT;\n    };\n    \n    this.getCharacterWidth = function(ch) {\n        var w = this.charSizes[ch];\n        if (w === undefined) {\n            w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n        }\n        return w;\n    };\n\n    this.destroy = function() {\n        clearInterval(this.$pollSizeChangesTimer);\n        if (this.el && this.el.parentNode)\n            this.el.parentNode.removeChild(this.el);\n    };\n\n}).call(FontMetrics.prototype);\n\n});\n\nace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/config\",\"ace/lib/useragent\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar config = require(\"./config\");\nvar useragent = require(\"./lib/useragent\");\nvar GutterLayer = require(\"./layer/gutter\").Gutter;\nvar MarkerLayer = require(\"./layer/marker\").Marker;\nvar TextLayer = require(\"./layer/text\").Text;\nvar CursorLayer = require(\"./layer/cursor\").Cursor;\nvar HScrollBar = require(\"./scrollbar\").HScrollBar;\nvar VScrollBar = require(\"./scrollbar\").VScrollBar;\nvar RenderLoop = require(\"./renderloop\").RenderLoop;\nvar FontMetrics = require(\"./layer/font_metrics\").FontMetrics;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar editorCss = \".ace_editor {\\\nposition: relative;\\\noverflow: hidden;\\\nfont: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;\\\ndirection: ltr;\\\ntext-align: left;\\\n}\\\n.ace_scroller {\\\nposition: absolute;\\\noverflow: hidden;\\\ntop: 0;\\\nbottom: 0;\\\nbackground-color: inherit;\\\n-ms-user-select: none;\\\n-moz-user-select: none;\\\n-webkit-user-select: none;\\\nuser-select: none;\\\ncursor: text;\\\n}\\\n.ace_content {\\\nposition: absolute;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nmin-width: 100%;\\\n}\\\n.ace_dragging .ace_scroller:before{\\\nposition: absolute;\\\ntop: 0;\\\nleft: 0;\\\nright: 0;\\\nbottom: 0;\\\ncontent: '';\\\nbackground: rgba(250, 250, 250, 0.01);\\\nz-index: 1000;\\\n}\\\n.ace_dragging.ace_dark .ace_scroller:before{\\\nbackground: rgba(0, 0, 0, 0.01);\\\n}\\\n.ace_selecting, .ace_selecting * {\\\ncursor: text !important;\\\n}\\\n.ace_gutter {\\\nposition: absolute;\\\noverflow : hidden;\\\nwidth: auto;\\\ntop: 0;\\\nbottom: 0;\\\nleft: 0;\\\ncursor: default;\\\nz-index: 4;\\\n-ms-user-select: none;\\\n-moz-user-select: none;\\\n-webkit-user-select: none;\\\nuser-select: none;\\\n}\\\n.ace_gutter-active-line {\\\nposition: absolute;\\\nleft: 0;\\\nright: 0;\\\n}\\\n.ace_scroller.ace_scroll-left {\\\nbox-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\\\n}\\\n.ace_gutter-cell {\\\npadding-left: 19px;\\\npadding-right: 6px;\\\nbackground-repeat: no-repeat;\\\n}\\\n.ace_gutter-cell.ace_error {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==\\\");\\\nbackground-repeat: no-repeat;\\\nbackground-position: 2px center;\\\n}\\\n.ace_gutter-cell.ace_warning {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==\\\");\\\nbackground-position: 2px center;\\\n}\\\n.ace_gutter-cell.ace_info {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=\\\");\\\nbackground-position: 2px center;\\\n}\\\n.ace_dark .ace_gutter-cell.ace_info {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_scrollbar {\\\nposition: absolute;\\\nright: 0;\\\nbottom: 0;\\\nz-index: 6;\\\n}\\\n.ace_scrollbar-inner {\\\nposition: absolute;\\\ncursor: text;\\\nleft: 0;\\\ntop: 0;\\\n}\\\n.ace_scrollbar-v{\\\noverflow-x: hidden;\\\noverflow-y: scroll;\\\ntop: 0;\\\n}\\\n.ace_scrollbar-h {\\\noverflow-x: scroll;\\\noverflow-y: hidden;\\\nleft: 0;\\\n}\\\n.ace_print-margin {\\\nposition: absolute;\\\nheight: 100%;\\\n}\\\n.ace_text-input {\\\nposition: absolute;\\\nz-index: 0;\\\nwidth: 0.5em;\\\nheight: 1em;\\\nopacity: 0;\\\nbackground: transparent;\\\n-moz-appearance: none;\\\nappearance: none;\\\nborder: none;\\\nresize: none;\\\noutline: none;\\\noverflow: hidden;\\\nfont: inherit;\\\npadding: 0 1px;\\\nmargin: 0 -1px;\\\ntext-indent: -1em;\\\n-ms-user-select: text;\\\n-moz-user-select: text;\\\n-webkit-user-select: text;\\\nuser-select: text;\\\nwhite-space: pre!important;\\\n}\\\n.ace_text-input.ace_composition {\\\nbackground: inherit;\\\ncolor: inherit;\\\nz-index: 1000;\\\nopacity: 1;\\\ntext-indent: 0;\\\n}\\\n.ace_layer {\\\nz-index: 1;\\\nposition: absolute;\\\noverflow: hidden;\\\nword-wrap: normal;\\\nwhite-space: pre;\\\nheight: 100%;\\\nwidth: 100%;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\npointer-events: none;\\\n}\\\n.ace_gutter-layer {\\\nposition: relative;\\\nwidth: auto;\\\ntext-align: right;\\\npointer-events: auto;\\\n}\\\n.ace_text-layer {\\\nfont: inherit !important;\\\n}\\\n.ace_cjk {\\\ndisplay: inline-block;\\\ntext-align: center;\\\n}\\\n.ace_cursor-layer {\\\nz-index: 4;\\\n}\\\n.ace_cursor {\\\nz-index: 4;\\\nposition: absolute;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nborder-left: 2px solid;\\\ntransform: translatez(0);\\\n}\\\n.ace_slim-cursors .ace_cursor {\\\nborder-left-width: 1px;\\\n}\\\n.ace_overwrite-cursors .ace_cursor {\\\nborder-left-width: 0;\\\nborder-bottom: 1px solid;\\\n}\\\n.ace_hidden-cursors .ace_cursor {\\\nopacity: 0.2;\\\n}\\\n.ace_smooth-blinking .ace_cursor {\\\n-webkit-transition: opacity 0.18s;\\\ntransition: opacity 0.18s;\\\n}\\\n.ace_editor.ace_multiselect .ace_cursor {\\\nborder-left-width: 1px;\\\n}\\\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\\nposition: absolute;\\\nz-index: 3;\\\n}\\\n.ace_marker-layer .ace_selection {\\\nposition: absolute;\\\nz-index: 5;\\\n}\\\n.ace_marker-layer .ace_bracket {\\\nposition: absolute;\\\nz-index: 6;\\\n}\\\n.ace_marker-layer .ace_active-line {\\\nposition: absolute;\\\nz-index: 2;\\\n}\\\n.ace_marker-layer .ace_selected-word {\\\nposition: absolute;\\\nz-index: 4;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\n}\\\n.ace_line .ace_fold {\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\ndisplay: inline-block;\\\nheight: 11px;\\\nmargin-top: -2px;\\\nvertical-align: middle;\\\nbackground-image:\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\\nbackground-repeat: no-repeat, repeat-x;\\\nbackground-position: center center, top left;\\\ncolor: transparent;\\\nborder: 1px solid black;\\\nborder-radius: 2px;\\\ncursor: pointer;\\\npointer-events: auto;\\\n}\\\n.ace_dark .ace_fold {\\\n}\\\n.ace_fold:hover{\\\nbackground-image:\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_tooltip {\\\nbackground-color: #FFF;\\\nbackground-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));\\\nbackground-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));\\\nborder: 1px solid gray;\\\nborder-radius: 1px;\\\nbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\\ncolor: black;\\\nmax-width: 100%;\\\npadding: 3px 4px;\\\nposition: fixed;\\\nz-index: 999999;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\ncursor: default;\\\nwhite-space: pre;\\\nword-wrap: break-word;\\\nline-height: normal;\\\nfont-style: normal;\\\nfont-weight: normal;\\\nletter-spacing: normal;\\\npointer-events: none;\\\n}\\\n.ace_folding-enabled > .ace_gutter-cell {\\\npadding-right: 13px;\\\n}\\\n.ace_fold-widget {\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nmargin: 0 -12px 0 1px;\\\ndisplay: none;\\\nwidth: 11px;\\\nvertical-align: top;\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\\nbackground-repeat: no-repeat;\\\nbackground-position: center;\\\nborder-radius: 3px;\\\nborder: 1px solid transparent;\\\ncursor: pointer;\\\n}\\\n.ace_folding-enabled .ace_fold-widget {\\\ndisplay: inline-block;   \\\n}\\\n.ace_fold-widget.ace_end {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_fold-widget.ace_closed {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\\n}\\\n.ace_fold-widget:hover {\\\nborder: 1px solid rgba(0, 0, 0, 0.3);\\\nbackground-color: rgba(255, 255, 255, 0.2);\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\\n}\\\n.ace_fold-widget:active {\\\nborder: 1px solid rgba(0, 0, 0, 0.4);\\\nbackground-color: rgba(0, 0, 0, 0.05);\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\\n}\\\n.ace_dark .ace_fold-widget {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_dark .ace_fold-widget.ace_end {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_dark .ace_fold-widget.ace_closed {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_dark .ace_fold-widget:hover {\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\\nbackground-color: rgba(255, 255, 255, 0.1);\\\n}\\\n.ace_dark .ace_fold-widget:active {\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\\n}\\\n.ace_fold-widget.ace_invalid {\\\nbackground-color: #FFB4B4;\\\nborder-color: #DE5555;\\\n}\\\n.ace_fade-fold-widgets .ace_fold-widget {\\\n-webkit-transition: opacity 0.4s ease 0.05s;\\\ntransition: opacity 0.4s ease 0.05s;\\\nopacity: 0;\\\n}\\\n.ace_fade-fold-widgets:hover .ace_fold-widget {\\\n-webkit-transition: opacity 0.05s ease 0.05s;\\\ntransition: opacity 0.05s ease 0.05s;\\\nopacity:1;\\\n}\\\n.ace_underline {\\\ntext-decoration: underline;\\\n}\\\n.ace_bold {\\\nfont-weight: bold;\\\n}\\\n.ace_nobold .ace_bold {\\\nfont-weight: normal;\\\n}\\\n.ace_italic {\\\nfont-style: italic;\\\n}\\\n.ace_error-marker {\\\nbackground-color: rgba(255, 0, 0,0.2);\\\nposition: absolute;\\\nz-index: 9;\\\n}\\\n.ace_highlight-marker {\\\nbackground-color: rgba(255, 255, 0,0.2);\\\nposition: absolute;\\\nz-index: 8;\\\n}\\\n.ace_br1 {border-top-left-radius    : 3px;}\\\n.ace_br2 {border-top-right-radius   : 3px;}\\\n.ace_br3 {border-top-left-radius    : 3px; border-top-right-radius:    3px;}\\\n.ace_br4 {border-bottom-right-radius: 3px;}\\\n.ace_br5 {border-top-left-radius    : 3px; border-bottom-right-radius: 3px;}\\\n.ace_br6 {border-top-right-radius   : 3px; border-bottom-right-radius: 3px;}\\\n.ace_br7 {border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-right-radius: 3px;}\\\n.ace_br8 {border-bottom-left-radius : 3px;}\\\n.ace_br9 {border-top-left-radius    : 3px; border-bottom-left-radius:  3px;}\\\n.ace_br10{border-top-right-radius   : 3px; border-bottom-left-radius:  3px;}\\\n.ace_br11{border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-left-radius:  3px;}\\\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}\\\n.ace_br13{border-top-left-radius    : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}\\\n.ace_br14{border-top-right-radius   : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}\\\n.ace_br15{border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n\";\n\ndom.importCssString(editorCss, \"ace_editor.css\");\n\nvar VirtualRenderer = function(container, theme) {\n    var _self = this;\n\n    this.container = container || dom.createElement(\"div\");\n    this.$keepTextAreaAtCursor = !useragent.isOldIE;\n\n    dom.addCssClass(this.container, \"ace_editor\");\n\n    this.setTheme(theme);\n\n    this.$gutter = dom.createElement(\"div\");\n    this.$gutter.className = \"ace_gutter\";\n    this.container.appendChild(this.$gutter);\n\n    this.scroller = dom.createElement(\"div\");\n    this.scroller.className = \"ace_scroller\";\n    this.container.appendChild(this.scroller);\n\n    this.content = dom.createElement(\"div\");\n    this.content.className = \"ace_content\";\n    this.scroller.appendChild(this.content);\n\n    this.$gutterLayer = new GutterLayer(this.$gutter);\n    this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n\n    this.$markerBack = new MarkerLayer(this.content);\n\n    var textLayer = this.$textLayer = new TextLayer(this.content);\n    this.canvas = textLayer.element;\n\n    this.$markerFront = new MarkerLayer(this.content);\n\n    this.$cursorLayer = new CursorLayer(this.content);\n    this.$horizScroll = false;\n    this.$vScroll = false;\n\n    this.scrollBar = \n    this.scrollBarV = new VScrollBar(this.container, this);\n    this.scrollBarH = new HScrollBar(this.container, this);\n    this.scrollBarV.addEventListener(\"scroll\", function(e) {\n        if (!_self.$scrollAnimation)\n            _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n    });\n    this.scrollBarH.addEventListener(\"scroll\", function(e) {\n        if (!_self.$scrollAnimation)\n            _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n    });\n\n    this.scrollTop = 0;\n    this.scrollLeft = 0;\n\n    this.cursorPos = {\n        row : 0,\n        column : 0\n    };\n\n    this.$fontMetrics = new FontMetrics(this.container);\n    this.$textLayer.$setFontMetrics(this.$fontMetrics);\n    this.$textLayer.addEventListener(\"changeCharacterSize\", function(e) {\n        _self.updateCharacterSize();\n        _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n        _self._signal(\"changeCharacterSize\", e);\n    });\n\n    this.$size = {\n        width: 0,\n        height: 0,\n        scrollerHeight: 0,\n        scrollerWidth: 0,\n        $dirty: true\n    };\n\n    this.layerConfig = {\n        width : 1,\n        padding : 0,\n        firstRow : 0,\n        firstRowScreen: 0,\n        lastRow : 0,\n        lineHeight : 0,\n        characterWidth : 0,\n        minHeight : 1,\n        maxHeight : 1,\n        offset : 0,\n        height : 1,\n        gutterOffset: 1\n    };\n    \n    this.scrollMargin = {\n        left: 0,\n        right: 0,\n        top: 0,\n        bottom: 0,\n        v: 0,\n        h: 0\n    };\n\n    this.$loop = new RenderLoop(\n        this.$renderChanges.bind(this),\n        this.container.ownerDocument.defaultView\n    );\n    this.$loop.schedule(this.CHANGE_FULL);\n\n    this.updateCharacterSize();\n    this.setPadding(4);\n    config.resetOptions(this);\n    config._emit(\"renderer\", this);\n};\n\n(function() {\n\n    this.CHANGE_CURSOR = 1;\n    this.CHANGE_MARKER = 2;\n    this.CHANGE_GUTTER = 4;\n    this.CHANGE_SCROLL = 8;\n    this.CHANGE_LINES = 16;\n    this.CHANGE_TEXT = 32;\n    this.CHANGE_SIZE = 64;\n    this.CHANGE_MARKER_BACK = 128;\n    this.CHANGE_MARKER_FRONT = 256;\n    this.CHANGE_FULL = 512;\n    this.CHANGE_H_SCROLL = 1024;\n\n    oop.implement(this, EventEmitter);\n\n    this.updateCharacterSize = function() {\n        if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n            this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n            this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n        }\n\n        this.layerConfig.characterWidth =\n        this.characterWidth = this.$textLayer.getCharacterWidth();\n        this.layerConfig.lineHeight =\n        this.lineHeight = this.$textLayer.getLineHeight();\n        this.$updatePrintMargin();\n    };\n    this.setSession = function(session) {\n        if (this.session)\n            this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n            \n        this.session = session;\n        if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n            session.setScrollTop(-this.scrollMargin.top);\n\n        this.$cursorLayer.setSession(session);\n        this.$markerBack.setSession(session);\n        this.$markerFront.setSession(session);\n        this.$gutterLayer.setSession(session);\n        this.$textLayer.setSession(session);\n        if (!session)\n            return;\n        \n        this.$loop.schedule(this.CHANGE_FULL);\n        this.session.$setFontMetrics(this.$fontMetrics);\n        this.scrollBarV.scrollLeft = this.scrollBarV.scrollTop = null;\n        \n        this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n        this.onChangeNewLineMode()\n        this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n    };\n    this.updateLines = function(firstRow, lastRow, force) {\n        if (lastRow === undefined)\n            lastRow = Infinity;\n\n        if (!this.$changedLines) {\n            this.$changedLines = {\n                firstRow: firstRow,\n                lastRow: lastRow\n            };\n        }\n        else {\n            if (this.$changedLines.firstRow > firstRow)\n                this.$changedLines.firstRow = firstRow;\n\n            if (this.$changedLines.lastRow < lastRow)\n                this.$changedLines.lastRow = lastRow;\n        }\n        if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n            if (force)\n                this.$changedLines.lastRow = this.layerConfig.lastRow;\n            else\n                return;\n        }\n        if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n            return;\n        this.$loop.schedule(this.CHANGE_LINES);\n    };\n\n    this.onChangeNewLineMode = function() {\n        this.$loop.schedule(this.CHANGE_TEXT);\n        this.$textLayer.$updateEolChar();\n    };\n    \n    this.onChangeTabSize = function() {\n        this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n        this.$textLayer.onChangeTabSize();\n    };\n    this.updateText = function() {\n        this.$loop.schedule(this.CHANGE_TEXT);\n    };\n    this.updateFull = function(force) {\n        if (force)\n            this.$renderChanges(this.CHANGE_FULL, true);\n        else\n            this.$loop.schedule(this.CHANGE_FULL);\n    };\n    this.updateFontSize = function() {\n        this.$textLayer.checkForSizeChanges();\n    };\n\n    this.$changes = 0;\n    this.$updateSizeAsync = function() {\n        if (this.$loop.pending)\n            this.$size.$dirty = true;\n        else\n            this.onResize();\n    };\n    this.onResize = function(force, gutterWidth, width, height) {\n        if (this.resizing > 2)\n            return;\n        else if (this.resizing > 0)\n            this.resizing++;\n        else\n            this.resizing = force ? 1 : 0;\n        var el = this.container;\n        if (!height)\n            height = el.clientHeight || el.scrollHeight;\n        if (!width)\n            width = el.clientWidth || el.scrollWidth;\n        var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n\n        \n        if (!this.$size.scrollerHeight || (!width && !height))\n            return this.resizing = 0;\n\n        if (force)\n            this.$gutterLayer.$padding = null;\n\n        if (force)\n            this.$renderChanges(changes | this.$changes, true);\n        else\n            this.$loop.schedule(changes | this.$changes);\n\n        if (this.resizing)\n            this.resizing = 0;\n        this.scrollBarV.scrollLeft = this.scrollBarV.scrollTop = null;\n    };\n    \n    this.$updateCachedSize = function(force, gutterWidth, width, height) {\n        height -= (this.$extraHeight || 0);\n        var changes = 0;\n        var size = this.$size;\n        var oldSize = {\n            width: size.width,\n            height: size.height,\n            scrollerHeight: size.scrollerHeight,\n            scrollerWidth: size.scrollerWidth\n        };\n        if (height && (force || size.height != height)) {\n            size.height = height;\n            changes |= this.CHANGE_SIZE;\n\n            size.scrollerHeight = size.height;\n            if (this.$horizScroll)\n                size.scrollerHeight -= this.scrollBarH.getHeight();\n            this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n\n            changes = changes | this.CHANGE_SCROLL;\n        }\n\n        if (width && (force || size.width != width)) {\n            changes |= this.CHANGE_SIZE;\n            size.width = width;\n            \n            if (gutterWidth == null)\n                gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n            \n            this.gutterWidth = gutterWidth;\n            \n            this.scrollBarH.element.style.left = \n            this.scroller.style.left = gutterWidth + \"px\";\n            size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth());           \n            \n            this.scrollBarH.element.style.right = \n            this.scroller.style.right = this.scrollBarV.getWidth() + \"px\";\n            this.scroller.style.bottom = this.scrollBarH.getHeight() + \"px\";\n\n            if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force)\n                changes |= this.CHANGE_FULL;\n        }\n        \n        size.$dirty = !width || !height;\n\n        if (changes)\n            this._signal(\"resize\", oldSize);\n\n        return changes;\n    };\n\n    this.onGutterResize = function() {\n        var gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n        if (gutterWidth != this.gutterWidth)\n            this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n\n        if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n            this.$loop.schedule(this.CHANGE_FULL);\n        } else if (this.$size.$dirty) {\n            this.$loop.schedule(this.CHANGE_FULL);\n        } else {\n            this.$computeLayerConfig();\n            this.$loop.schedule(this.CHANGE_MARKER);\n        }\n    };\n    this.adjustWrapLimit = function() {\n        var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n        var limit = Math.floor(availableWidth / this.characterWidth);\n        return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n    };\n    this.setAnimatedScroll = function(shouldAnimate){\n        this.setOption(\"animatedScroll\", shouldAnimate);\n    };\n    this.getAnimatedScroll = function() {\n        return this.$animatedScroll;\n    };\n    this.setShowInvisibles = function(showInvisibles) {\n        this.setOption(\"showInvisibles\", showInvisibles);\n    };\n    this.getShowInvisibles = function() {\n        return this.getOption(\"showInvisibles\");\n    };\n    this.getDisplayIndentGuides = function() {\n        return this.getOption(\"displayIndentGuides\");\n    };\n\n    this.setDisplayIndentGuides = function(display) {\n        this.setOption(\"displayIndentGuides\", display);\n    };\n    this.setShowPrintMargin = function(showPrintMargin) {\n        this.setOption(\"showPrintMargin\", showPrintMargin);\n    };\n    this.getShowPrintMargin = function() {\n        return this.getOption(\"showPrintMargin\");\n    };\n    this.setPrintMarginColumn = function(showPrintMargin) {\n        this.setOption(\"printMarginColumn\", showPrintMargin);\n    };\n    this.getPrintMarginColumn = function() {\n        return this.getOption(\"printMarginColumn\");\n    };\n    this.getShowGutter = function(){\n        return this.getOption(\"showGutter\");\n    };\n    this.setShowGutter = function(show){\n        return this.setOption(\"showGutter\", show);\n    };\n\n    this.getFadeFoldWidgets = function(){\n        return this.getOption(\"fadeFoldWidgets\")\n    };\n\n    this.setFadeFoldWidgets = function(show) {\n        this.setOption(\"fadeFoldWidgets\", show);\n    };\n\n    this.setHighlightGutterLine = function(shouldHighlight) {\n        this.setOption(\"highlightGutterLine\", shouldHighlight);\n    };\n\n    this.getHighlightGutterLine = function() {\n        return this.getOption(\"highlightGutterLine\");\n    };\n\n    this.$updateGutterLineHighlight = function() {\n        var pos = this.$cursorLayer.$pixelPos;\n        var height = this.layerConfig.lineHeight;\n        if (this.session.getUseWrapMode()) {\n            var cursor = this.session.selection.getCursor();\n            cursor.column = 0;\n            pos = this.$cursorLayer.getPixelPosition(cursor, true);\n            height *= this.session.getRowLength(cursor.row);\n        }\n        this.$gutterLineHighlight.style.top = pos.top - this.layerConfig.offset + \"px\";\n        this.$gutterLineHighlight.style.height = height + \"px\";\n    };\n\n    this.$updatePrintMargin = function() {\n        if (!this.$showPrintMargin && !this.$printMarginEl)\n            return;\n\n        if (!this.$printMarginEl) {\n            var containerEl = dom.createElement(\"div\");\n            containerEl.className = \"ace_layer ace_print-margin-layer\";\n            this.$printMarginEl = dom.createElement(\"div\");\n            this.$printMarginEl.className = \"ace_print-margin\";\n            containerEl.appendChild(this.$printMarginEl);\n            this.content.insertBefore(containerEl, this.content.firstChild);\n        }\n\n        var style = this.$printMarginEl.style;\n        style.left = ((this.characterWidth * this.$printMarginColumn) + this.$padding) + \"px\";\n        style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n        \n        if (this.session && this.session.$wrap == -1)\n            this.adjustWrapLimit();\n    };\n    this.getContainerElement = function() {\n        return this.container;\n    };\n    this.getMouseEventTarget = function() {\n        return this.scroller;\n    };\n    this.getTextAreaContainer = function() {\n        return this.container;\n    };\n    this.$moveTextAreaToCursor = function() {\n        if (!this.$keepTextAreaAtCursor)\n            return;\n        var config = this.layerConfig;\n        var posTop = this.$cursorLayer.$pixelPos.top;\n        var posLeft = this.$cursorLayer.$pixelPos.left;\n        posTop -= config.offset;\n\n        var style = this.textarea.style;\n        var h = this.lineHeight;\n        if (posTop < 0 || posTop > config.height - h) {\n            style.top = style.left = \"0\";\n            return;\n        }\n\n        var w = this.characterWidth;\n        if (this.$composition) {\n            var val = this.textarea.value.replace(/^\\x01+/, \"\");\n            w *= (this.session.$getStringScreenWidth(val)[0]+2);\n            h += 2;\n        }\n        posLeft -= this.scrollLeft;\n        if (posLeft > this.$size.scrollerWidth - w)\n            posLeft = this.$size.scrollerWidth - w;\n\n        posLeft += this.gutterWidth;\n        style.height = h + \"px\";\n        style.width = w + \"px\";\n        style.left = Math.min(posLeft, this.$size.scrollerWidth - w) + \"px\";\n        style.top = Math.min(posTop, this.$size.height - h) + \"px\";\n    };\n    this.getFirstVisibleRow = function() {\n        return this.layerConfig.firstRow;\n    };\n    this.getFirstFullyVisibleRow = function() {\n        return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n    };\n    this.getLastFullyVisibleRow = function() {\n        var config = this.layerConfig;\n        var lastRow = config.lastRow\n        var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n        if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n            return lastRow - 1;\n        return lastRow;\n    };\n    this.getLastVisibleRow = function() {\n        return this.layerConfig.lastRow;\n    };\n\n    this.$padding = null;\n    this.setPadding = function(padding) {\n        this.$padding = padding;\n        this.$textLayer.setPadding(padding);\n        this.$cursorLayer.setPadding(padding);\n        this.$markerFront.setPadding(padding);\n        this.$markerBack.setPadding(padding);\n        this.$loop.schedule(this.CHANGE_FULL);\n        this.$updatePrintMargin();\n    };\n    \n    this.setScrollMargin = function(top, bottom, left, right) {\n        var sm = this.scrollMargin;\n        sm.top = top|0;\n        sm.bottom = bottom|0;\n        sm.right = right|0;\n        sm.left = left|0;\n        sm.v = sm.top + sm.bottom;\n        sm.h = sm.left + sm.right;\n        if (sm.top && this.scrollTop <= 0 && this.session)\n            this.session.setScrollTop(-sm.top);\n        this.updateFull();\n    };\n    this.getHScrollBarAlwaysVisible = function() {\n        return this.$hScrollBarAlwaysVisible;\n    };\n    this.setHScrollBarAlwaysVisible = function(alwaysVisible) {\n        this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n    };\n    this.getVScrollBarAlwaysVisible = function() {\n        return this.$vScrollBarAlwaysVisible;\n    };\n    this.setVScrollBarAlwaysVisible = function(alwaysVisible) {\n        this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n    };\n\n    this.$updateScrollBarV = function() {\n        var scrollHeight = this.layerConfig.maxHeight;\n        var scrollerHeight = this.$size.scrollerHeight;\n        if (!this.$maxLines && this.$scrollPastEnd) {\n            scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n            if (this.scrollTop > scrollHeight - scrollerHeight) {\n                scrollHeight = this.scrollTop + scrollerHeight;\n                this.scrollBarV.scrollTop = null;\n            }\n        }\n        this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n        this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n    };\n    this.$updateScrollBarH = function() {\n        this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n        this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n    };\n    \n    this.$frozen = false;\n    this.freeze = function() {\n        this.$frozen = true;\n    };\n    \n    this.unfreeze = function() {\n        this.$frozen = false;\n    };\n\n    this.$renderChanges = function(changes, force) {\n        if (this.$changes) {\n            changes |= this.$changes;\n            this.$changes = 0;\n        }\n        if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n            this.$changes |= changes;\n            return; \n        } \n        if (this.$size.$dirty) {\n            this.$changes |= changes;\n            return this.onResize(true);\n        }\n        if (!this.lineHeight) {\n            this.$textLayer.checkForSizeChanges();\n        }\n        \n        this._signal(\"beforeRender\");\n        var config = this.layerConfig;\n        if (changes & this.CHANGE_FULL ||\n            changes & this.CHANGE_SIZE ||\n            changes & this.CHANGE_TEXT ||\n            changes & this.CHANGE_LINES ||\n            changes & this.CHANGE_SCROLL ||\n            changes & this.CHANGE_H_SCROLL\n        ) {\n            changes |= this.$computeLayerConfig();\n            if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n                var st = this.scrollTop + (config.firstRow - this.layerConfig.firstRow) * this.lineHeight;\n                if (st > 0) {\n                    this.scrollTop = st;\n                    changes = changes | this.CHANGE_SCROLL;\n                    changes |= this.$computeLayerConfig();\n                }\n            }\n            config = this.layerConfig;\n            this.$updateScrollBarV();\n            if (changes & this.CHANGE_H_SCROLL)\n                this.$updateScrollBarH();\n            this.$gutterLayer.element.style.marginTop = (-config.offset) + \"px\";\n            this.content.style.marginTop = (-config.offset) + \"px\";\n            this.content.style.width = config.width + 2 * this.$padding + \"px\";\n            this.content.style.height = config.minHeight + \"px\";\n        }\n        if (changes & this.CHANGE_H_SCROLL) {\n            this.content.style.marginLeft = -this.scrollLeft + \"px\";\n            this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller\" : \"ace_scroller ace_scroll-left\";\n        }\n        if (changes & this.CHANGE_FULL) {\n            this.$textLayer.update(config);\n            if (this.$showGutter)\n                this.$gutterLayer.update(config);\n            this.$markerBack.update(config);\n            this.$markerFront.update(config);\n            this.$cursorLayer.update(config);\n            this.$moveTextAreaToCursor();\n            this.$highlightGutterLine && this.$updateGutterLineHighlight();\n            this._signal(\"afterRender\");\n            return;\n        }\n        if (changes & this.CHANGE_SCROLL) {\n            if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n                this.$textLayer.update(config);\n            else\n                this.$textLayer.scrollLines(config);\n\n            if (this.$showGutter)\n                this.$gutterLayer.update(config);\n            this.$markerBack.update(config);\n            this.$markerFront.update(config);\n            this.$cursorLayer.update(config);\n            this.$highlightGutterLine && this.$updateGutterLineHighlight();\n            this.$moveTextAreaToCursor();\n            this._signal(\"afterRender\");\n            return;\n        }\n\n        if (changes & this.CHANGE_TEXT) {\n            this.$textLayer.update(config);\n            if (this.$showGutter)\n                this.$gutterLayer.update(config);\n        }\n        else if (changes & this.CHANGE_LINES) {\n            if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n                this.$gutterLayer.update(config);\n        }\n        else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n            if (this.$showGutter)\n                this.$gutterLayer.update(config);\n        }\n\n        if (changes & this.CHANGE_CURSOR) {\n            this.$cursorLayer.update(config);\n            this.$moveTextAreaToCursor();\n            this.$highlightGutterLine && this.$updateGutterLineHighlight();\n        }\n\n        if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n            this.$markerFront.update(config);\n        }\n\n        if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n            this.$markerBack.update(config);\n        }\n\n        this._signal(\"afterRender\");\n    };\n\n    \n    this.$autosize = function() {\n        var height = this.session.getScreenLength() * this.lineHeight;\n        var maxHeight = this.$maxLines * this.lineHeight;\n        var desiredHeight = Math.min(maxHeight, \n            Math.max((this.$minLines || 1) * this.lineHeight, height)\n        ) + this.scrollMargin.v + (this.$extraHeight || 0);\n        if (this.$horizScroll)\n            desiredHeight += this.scrollBarH.getHeight();\n        if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight)\n            desiredHeight = this.$maxPixelHeight;\n        var vScroll = height > maxHeight;\n        \n        if (desiredHeight != this.desiredHeight ||\n            this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n            if (vScroll != this.$vScroll) {\n                this.$vScroll = vScroll;\n                this.scrollBarV.setVisible(vScroll);\n            }\n            \n            var w = this.container.clientWidth;\n            this.container.style.height = desiredHeight + \"px\";\n            this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n            this.desiredHeight = desiredHeight;\n            \n            this._signal(\"autosize\");\n        }\n    };\n    \n    this.$computeLayerConfig = function() {\n        var session = this.session;\n        var size = this.$size;\n        \n        var hideScrollbars = size.height <= 2 * this.lineHeight;\n        var screenLines = this.session.getScreenLength();\n        var maxHeight = screenLines * this.lineHeight;\n\n        var longestLine = this.$getLongestLine();\n        \n        var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n            size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n\n        var hScrollChanged = this.$horizScroll !== horizScroll;\n        if (hScrollChanged) {\n            this.$horizScroll = horizScroll;\n            this.scrollBarH.setVisible(horizScroll);\n        }\n        var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n        if (this.$maxLines && this.lineHeight > 1)\n            this.$autosize();\n\n        var offset = this.scrollTop % this.lineHeight;\n        var minHeight = size.scrollerHeight + this.lineHeight;\n        \n        var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n            ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n            : 0;\n        maxHeight += scrollPastEnd;\n        \n        var sm = this.scrollMargin;\n        this.session.setScrollTop(Math.max(-sm.top,\n            Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n\n        this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, \n            longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n        \n        var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n            size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n        var vScrollChanged = vScrollBefore !== vScroll;\n        if (vScrollChanged) {\n            this.$vScroll = vScroll;\n            this.scrollBarV.setVisible(vScroll);\n        }\n\n        var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n        var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n        var lastRow = firstRow + lineCount;\n        var firstRowScreen, firstRowHeight;\n        var lineHeight = this.lineHeight;\n        firstRow = session.screenToDocumentRow(firstRow, 0);\n        var foldLine = session.getFoldLine(firstRow);\n        if (foldLine) {\n            firstRow = foldLine.start.row;\n        }\n\n        firstRowScreen = session.documentToScreenRow(firstRow, 0);\n        firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n\n        lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n        minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n                                                firstRowHeight;\n\n        offset = this.scrollTop - firstRowScreen * lineHeight;\n\n        var changes = 0;\n        if (this.layerConfig.width != longestLine) \n            changes = this.CHANGE_H_SCROLL;\n        if (hScrollChanged || vScrollChanged) {\n            changes = this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n            this._signal(\"scrollbarVisibilityChanged\");\n            if (vScrollChanged)\n                longestLine = this.$getLongestLine();\n        }\n        \n        this.layerConfig = {\n            width : longestLine,\n            padding : this.$padding,\n            firstRow : firstRow,\n            firstRowScreen: firstRowScreen,\n            lastRow : lastRow,\n            lineHeight : lineHeight,\n            characterWidth : this.characterWidth,\n            minHeight : minHeight,\n            maxHeight : maxHeight,\n            offset : offset,\n            gutterOffset : lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0,\n            height : this.$size.scrollerHeight\n        };\n\n        return changes;\n    };\n\n    this.$updateLines = function() {\n        var firstRow = this.$changedLines.firstRow;\n        var lastRow = this.$changedLines.lastRow;\n        this.$changedLines = null;\n\n        var layerConfig = this.layerConfig;\n\n        if (firstRow > layerConfig.lastRow + 1) { return; }\n        if (lastRow < layerConfig.firstRow) { return; }\n        if (lastRow === Infinity) {\n            if (this.$showGutter)\n                this.$gutterLayer.update(layerConfig);\n            this.$textLayer.update(layerConfig);\n            return;\n        }\n        this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n        return true;\n    };\n\n    this.$getLongestLine = function() {\n        var charCount = this.session.getScreenWidth();\n        if (this.showInvisibles && !this.session.$useWrapMode)\n            charCount += 1;\n\n        return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n    };\n    this.updateFrontMarkers = function() {\n        this.$markerFront.setMarkers(this.session.getMarkers(true));\n        this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n    };\n    this.updateBackMarkers = function() {\n        this.$markerBack.setMarkers(this.session.getMarkers());\n        this.$loop.schedule(this.CHANGE_MARKER_BACK);\n    };\n    this.addGutterDecoration = function(row, className){\n        this.$gutterLayer.addGutterDecoration(row, className);\n    };\n    this.removeGutterDecoration = function(row, className){\n        this.$gutterLayer.removeGutterDecoration(row, className);\n    };\n    this.updateBreakpoints = function(rows) {\n        this.$loop.schedule(this.CHANGE_GUTTER);\n    };\n    this.setAnnotations = function(annotations) {\n        this.$gutterLayer.setAnnotations(annotations);\n        this.$loop.schedule(this.CHANGE_GUTTER);\n    };\n    this.updateCursor = function() {\n        this.$loop.schedule(this.CHANGE_CURSOR);\n    };\n    this.hideCursor = function() {\n        this.$cursorLayer.hideCursor();\n    };\n    this.showCursor = function() {\n        this.$cursorLayer.showCursor();\n    };\n\n    this.scrollSelectionIntoView = function(anchor, lead, offset) {\n        this.scrollCursorIntoView(anchor, offset);\n        this.scrollCursorIntoView(lead, offset);\n    };\n    this.scrollCursorIntoView = function(cursor, offset, $viewMargin) {\n        if (this.$size.scrollerHeight === 0)\n            return;\n\n        var pos = this.$cursorLayer.getPixelPosition(cursor);\n\n        var left = pos.left;\n        var top = pos.top;\n        \n        var topMargin = $viewMargin && $viewMargin.top || 0;\n        var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n        \n        var scrollTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n        \n        if (scrollTop + topMargin > top) {\n            if (offset && scrollTop + topMargin > top + this.lineHeight)\n                top -= offset * this.$size.scrollerHeight;\n            if (top === 0)\n                top = -this.scrollMargin.top;\n            this.session.setScrollTop(top);\n        } else if (scrollTop + this.$size.scrollerHeight - bottomMargin < top + this.lineHeight) {\n            if (offset && scrollTop + this.$size.scrollerHeight - bottomMargin < top -  this.lineHeight)\n                top += offset * this.$size.scrollerHeight;\n            this.session.setScrollTop(top + this.lineHeight - this.$size.scrollerHeight);\n        }\n\n        var scrollLeft = this.scrollLeft;\n\n        if (scrollLeft > left) {\n            if (left < this.$padding + 2 * this.layerConfig.characterWidth)\n                left = -this.scrollMargin.left;\n            this.session.setScrollLeft(left);\n        } else if (scrollLeft + this.$size.scrollerWidth < left + this.characterWidth) {\n            this.session.setScrollLeft(Math.round(left + this.characterWidth - this.$size.scrollerWidth));\n        } else if (scrollLeft <= this.$padding && left - scrollLeft < this.characterWidth) {\n            this.session.setScrollLeft(0);\n        }\n    };\n    this.getScrollTop = function() {\n        return this.session.getScrollTop();\n    };\n    this.getScrollLeft = function() {\n        return this.session.getScrollLeft();\n    };\n    this.getScrollTopRow = function() {\n        return this.scrollTop / this.lineHeight;\n    };\n    this.getScrollBottomRow = function() {\n        return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n    };\n    this.scrollToRow = function(row) {\n        this.session.setScrollTop(row * this.lineHeight);\n    };\n\n    this.alignCursor = function(cursor, alignment) {\n        if (typeof cursor == \"number\")\n            cursor = {row: cursor, column: 0};\n\n        var pos = this.$cursorLayer.getPixelPosition(cursor);\n        var h = this.$size.scrollerHeight - this.lineHeight;\n        var offset = pos.top - h * (alignment || 0);\n\n        this.session.setScrollTop(offset);\n        return offset;\n    };\n\n    this.STEPS = 8;\n    this.$calcSteps = function(fromValue, toValue){\n        var i = 0;\n        var l = this.STEPS;\n        var steps = [];\n\n        var func  = function(t, x_min, dx) {\n            return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n        };\n\n        for (i = 0; i < l; ++i)\n            steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n\n        return steps;\n    };\n    this.scrollToLine = function(line, center, animate, callback) {\n        var pos = this.$cursorLayer.getPixelPosition({row: line, column: 0});\n        var offset = pos.top;\n        if (center)\n            offset -= this.$size.scrollerHeight / 2;\n\n        var initialScroll = this.scrollTop;\n        this.session.setScrollTop(offset);\n        if (animate !== false)\n            this.animateScrolling(initialScroll, callback);\n    };\n\n    this.animateScrolling = function(fromValue, callback) {\n        var toValue = this.scrollTop;\n        if (!this.$animatedScroll)\n            return;\n        var _self = this;\n        \n        if (fromValue == toValue)\n            return;\n        \n        if (this.$scrollAnimation) {\n            var oldSteps = this.$scrollAnimation.steps;\n            if (oldSteps.length) {\n                fromValue = oldSteps[0];\n                if (fromValue == toValue)\n                    return;\n            }\n        }\n        \n        var steps = _self.$calcSteps(fromValue, toValue);\n        this.$scrollAnimation = {from: fromValue, to: toValue, steps: steps};\n\n        clearInterval(this.$timer);\n\n        _self.session.setScrollTop(steps.shift());\n        _self.session.$scrollTop = toValue;\n        this.$timer = setInterval(function() {\n            if (steps.length) {\n                _self.session.setScrollTop(steps.shift());\n                _self.session.$scrollTop = toValue;\n            } else if (toValue != null) {\n                _self.session.$scrollTop = -1;\n                _self.session.setScrollTop(toValue);\n                toValue = null;\n            } else {\n                _self.$timer = clearInterval(_self.$timer);\n                _self.$scrollAnimation = null;\n                callback && callback();\n            }\n        }, 10);\n    };\n    this.scrollToY = function(scrollTop) {\n        if (this.scrollTop !== scrollTop) {\n            this.$loop.schedule(this.CHANGE_SCROLL);\n            this.scrollTop = scrollTop;\n        }\n    };\n    this.scrollToX = function(scrollLeft) {\n        if (this.scrollLeft !== scrollLeft)\n            this.scrollLeft = scrollLeft;\n        this.$loop.schedule(this.CHANGE_H_SCROLL);\n    };\n    this.scrollTo = function(x, y) {\n        this.session.setScrollTop(y);\n        this.session.setScrollLeft(y);\n    };\n    this.scrollBy = function(deltaX, deltaY) {\n        deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n        deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n    };\n    this.isScrollableBy = function(deltaX, deltaY) {\n        if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n           return true;\n        if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n            - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n           return true;\n        if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n            return true;\n        if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n            - this.layerConfig.width < -1 + this.scrollMargin.right)\n           return true;\n    };\n\n    this.pixelToScreenCoordinates = function(x, y) {\n        var canvasPos = this.scroller.getBoundingClientRect();\n\n        var offset = (x + this.scrollLeft - canvasPos.left - this.$padding) / this.characterWidth;\n        var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n        var col = Math.round(offset);\n\n        return {row: row, column: col, side: offset - col > 0 ? 1 : -1};\n    };\n\n    this.screenToTextCoordinates = function(x, y) {\n        var canvasPos = this.scroller.getBoundingClientRect();\n\n        var col = Math.round(\n            (x + this.scrollLeft - canvasPos.left - this.$padding) / this.characterWidth\n        );\n\n        var row = (y + this.scrollTop - canvasPos.top) / this.lineHeight;\n\n        return this.session.screenToDocumentPosition(row, Math.max(col, 0));\n    };\n    this.textToScreenCoordinates = function(row, column) {\n        var canvasPos = this.scroller.getBoundingClientRect();\n        var pos = this.session.documentToScreenPosition(row, column);\n\n        var x = this.$padding + Math.round(pos.column * this.characterWidth);\n        var y = pos.row * this.lineHeight;\n\n        return {\n            pageX: canvasPos.left + x - this.scrollLeft,\n            pageY: canvasPos.top + y - this.scrollTop\n        };\n    };\n    this.visualizeFocus = function() {\n        dom.addCssClass(this.container, \"ace_focus\");\n    };\n    this.visualizeBlur = function() {\n        dom.removeCssClass(this.container, \"ace_focus\");\n    };\n    this.showComposition = function(position) {\n        if (!this.$composition)\n            this.$composition = {\n                keepTextAreaAtCursor: this.$keepTextAreaAtCursor,\n                cssText: this.textarea.style.cssText\n            };\n\n        this.$keepTextAreaAtCursor = true;\n        dom.addCssClass(this.textarea, \"ace_composition\");\n        this.textarea.style.cssText = \"\";\n        this.$moveTextAreaToCursor();\n    };\n    this.setCompositionText = function(text) {\n        this.$moveTextAreaToCursor();\n    };\n    this.hideComposition = function() {\n        if (!this.$composition)\n            return;\n\n        dom.removeCssClass(this.textarea, \"ace_composition\");\n        this.$keepTextAreaAtCursor = this.$composition.keepTextAreaAtCursor;\n        this.textarea.style.cssText = this.$composition.cssText;\n        this.$composition = null;\n    };\n    this.setTheme = function(theme, cb) {\n        var _self = this;\n        this.$themeId = theme;\n        _self._dispatchEvent('themeChange',{theme:theme});\n\n        if (!theme || typeof theme == \"string\") {\n            var moduleName = theme || this.$options.theme.initialValue;\n            config.loadModule([\"theme\", moduleName], afterLoad);\n        } else {\n            afterLoad(theme);\n        }\n\n        function afterLoad(module) {\n            if (_self.$themeId != theme)\n                return cb && cb();\n            if (!module || !module.cssClass)\n                throw new Error(\"couldn't load module \" + theme + \" or it didn't call define\");\n            dom.importCssString(\n                module.cssText,\n                module.cssClass,\n                _self.container.ownerDocument\n            );\n\n            if (_self.theme)\n                dom.removeCssClass(_self.container, _self.theme.cssClass);\n\n            var padding = \"padding\" in module ? module.padding \n                : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n            if (_self.$padding && padding != _self.$padding)\n                _self.setPadding(padding);\n            _self.$theme = module.cssClass;\n\n            _self.theme = module;\n            dom.addCssClass(_self.container, module.cssClass);\n            dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n            if (_self.$size) {\n                _self.$size.width = 0;\n                _self.$updateSizeAsync();\n            }\n\n            _self._dispatchEvent('themeLoaded', {theme:module});\n            cb && cb();\n        }\n    };\n    this.getTheme = function() {\n        return this.$themeId;\n    };\n    this.setStyle = function(style, include) {\n        dom.setCssClass(this.container, style, include !== false);\n    };\n    this.unsetStyle = function(style) {\n        dom.removeCssClass(this.container, style);\n    };\n    \n    this.setCursorStyle = function(style) {\n        if (this.scroller.style.cursor != style)\n            this.scroller.style.cursor = style;\n    };\n    this.setMouseCursor = function(cursorStyle) {\n        this.scroller.style.cursor = cursorStyle;\n    };\n    this.destroy = function() {\n        this.$textLayer.destroy();\n        this.$cursorLayer.destroy();\n    };\n\n}).call(VirtualRenderer.prototype);\n\n\nconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n    animatedScroll: {initialValue: false},\n    showInvisibles: {\n        set: function(value) {\n            if (this.$textLayer.setShowInvisibles(value))\n                this.$loop.schedule(this.CHANGE_TEXT);\n        },\n        initialValue: false\n    },\n    showPrintMargin: {\n        set: function() { this.$updatePrintMargin(); },\n        initialValue: true\n    },\n    printMarginColumn: {\n        set: function() { this.$updatePrintMargin(); },\n        initialValue: 80\n    },\n    printMargin: {\n        set: function(val) {\n            if (typeof val == \"number\")\n                this.$printMarginColumn = val;\n            this.$showPrintMargin = !!val;\n            this.$updatePrintMargin();\n        },\n        get: function() {\n            return this.$showPrintMargin && this.$printMarginColumn; \n        }\n    },\n    showGutter: {\n        set: function(show){\n            this.$gutter.style.display = show ? \"block\" : \"none\";\n            this.$loop.schedule(this.CHANGE_FULL);\n            this.onGutterResize();\n        },\n        initialValue: true\n    },\n    fadeFoldWidgets: {\n        set: function(show) {\n            dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n        },\n        initialValue: false\n    },\n    showFoldWidgets: {\n        set: function(show) {this.$gutterLayer.setShowFoldWidgets(show)},\n        initialValue: true\n    },\n    showLineNumbers: {\n        set: function(show) {\n            this.$gutterLayer.setShowLineNumbers(show);\n            this.$loop.schedule(this.CHANGE_GUTTER);\n        },\n        initialValue: true\n    },\n    displayIndentGuides: {\n        set: function(show) {\n            if (this.$textLayer.setDisplayIndentGuides(show))\n                this.$loop.schedule(this.CHANGE_TEXT);\n        },\n        initialValue: true\n    },\n    highlightGutterLine: {\n        set: function(shouldHighlight) {\n            if (!this.$gutterLineHighlight) {\n                this.$gutterLineHighlight = dom.createElement(\"div\");\n                this.$gutterLineHighlight.className = \"ace_gutter-active-line\";\n                this.$gutter.appendChild(this.$gutterLineHighlight);\n                return;\n            }\n\n            this.$gutterLineHighlight.style.display = shouldHighlight ? \"\" : \"none\";\n            if (this.$cursorLayer.$pixelPos)\n                this.$updateGutterLineHighlight();\n        },\n        initialValue: false,\n        value: true\n    },\n    hScrollBarAlwaysVisible: {\n        set: function(val) {\n            if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n                this.$loop.schedule(this.CHANGE_SCROLL);\n        },\n        initialValue: false\n    },\n    vScrollBarAlwaysVisible: {\n        set: function(val) {\n            if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n                this.$loop.schedule(this.CHANGE_SCROLL);\n        },\n        initialValue: false\n    },\n    fontSize:  {\n        set: function(size) {\n            if (typeof size == \"number\")\n                size = size + \"px\";\n            this.container.style.fontSize = size;\n            this.updateFontSize();\n        },\n        initialValue: 12\n    },\n    fontFamily: {\n        set: function(name) {\n            this.container.style.fontFamily = name;\n            this.updateFontSize();\n        }\n    },\n    maxLines: {\n        set: function(val) {\n            this.updateFull();\n        }\n    },\n    minLines: {\n        set: function(val) {\n            this.updateFull();\n        }\n    },\n    maxPixelHeight: {\n        set: function(val) {\n            this.updateFull();\n        },\n        initialValue: 0\n    },\n    scrollPastEnd: {\n        set: function(val) {\n            val = +val || 0;\n            if (this.$scrollPastEnd == val)\n                return;\n            this.$scrollPastEnd = val;\n            this.$loop.schedule(this.CHANGE_SCROLL);\n        },\n        initialValue: 0,\n        handlesSet: true\n    },\n    fixedWidthGutter: {\n        set: function(val) {\n            this.$gutterLayer.$fixedWidth = !!val;\n            this.$loop.schedule(this.CHANGE_GUTTER);\n        }\n    },\n    theme: {\n        set: function(val) { this.setTheme(val) },\n        get: function() { return this.$themeId || this.theme; },\n        initialValue: \"./theme/textmate\",\n        handlesSet: true\n    }\n});\n\nexports.VirtualRenderer = VirtualRenderer;\n});\n\nace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar net = require(\"../lib/net\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar config = require(\"../config\");\n\nvar WorkerClient = function(topLevelNamespaces, mod, classname, workerUrl) {\n    this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n    this.changeListener = this.changeListener.bind(this);\n    this.onMessage = this.onMessage.bind(this);\n    if (require.nameToUrl && !require.toUrl)\n        require.toUrl = require.nameToUrl;\n    \n    if (config.get(\"packaged\") || !require.toUrl) {\n        workerUrl = workerUrl || config.moduleUrl(mod, \"worker\");\n    } else {\n        var normalizePath = this.$normalizePath;\n        workerUrl = workerUrl || normalizePath(require.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n        var tlns = {};\n        topLevelNamespaces.forEach(function(ns) {\n            tlns[ns] = normalizePath(require.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n        });\n    }\n\n    try {\n        this.$worker = new Worker(workerUrl);\n    } catch(e) {\n        if (e instanceof window.DOMException) {\n            var blob = this.$workerBlob(workerUrl);\n            var URL = window.URL || window.webkitURL;\n            var blobURL = URL.createObjectURL(blob);\n\n            this.$worker = new Worker(blobURL);\n            URL.revokeObjectURL(blobURL);\n        } else {\n            throw e;\n        }\n    }\n    this.$worker.postMessage({\n        init : true,\n        tlns : tlns,\n        module : mod,\n        classname : classname\n    });\n\n    this.callbackId = 1;\n    this.callbacks = {};\n\n    this.$worker.onmessage = this.onMessage;\n};\n\n(function(){\n\n    oop.implement(this, EventEmitter);\n\n    this.onMessage = function(e) {\n        var msg = e.data;\n        switch(msg.type) {\n            case \"event\":\n                this._signal(msg.name, {data: msg.data});\n                break;\n            case \"call\":\n                var callback = this.callbacks[msg.id];\n                if (callback) {\n                    callback(msg.data);\n                    delete this.callbacks[msg.id];\n                }\n                break;\n            case \"error\":\n                this.reportError(msg.data);\n                break;\n            case \"log\":\n                window.console && console.log && console.log.apply(console, msg.data);\n                break;\n        }\n    };\n    \n    this.reportError = function(err) {\n        window.console && console.error && console.error(err);\n    };\n\n    this.$normalizePath = function(path) {\n        return net.qualifyURL(path);\n    };\n\n    this.terminate = function() {\n        this._signal(\"terminate\", {});\n        this.deltaQueue = null;\n        this.$worker.terminate();\n        this.$worker = null;\n        if (this.$doc)\n            this.$doc.off(\"change\", this.changeListener);\n        this.$doc = null;\n    };\n\n    this.send = function(cmd, args) {\n        this.$worker.postMessage({command: cmd, args: args});\n    };\n\n    this.call = function(cmd, args, callback) {\n        if (callback) {\n            var id = this.callbackId++;\n            this.callbacks[id] = callback;\n            args.push(id);\n        }\n        this.send(cmd, args);\n    };\n\n    this.emit = function(event, data) {\n        try {\n            this.$worker.postMessage({event: event, data: {data: data.data}});\n        }\n        catch(ex) {\n            console.error(ex.stack);\n        }\n    };\n\n    this.attachToDocument = function(doc) {\n        if(this.$doc)\n            this.terminate();\n\n        this.$doc = doc;\n        this.call(\"setValue\", [doc.getValue()]);\n        doc.on(\"change\", this.changeListener);\n    };\n\n    this.changeListener = function(delta) {\n        if (!this.deltaQueue) {\n            this.deltaQueue = [];\n            setTimeout(this.$sendDeltaQueue, 0);\n        }\n        if (delta.action == \"insert\")\n            this.deltaQueue.push(delta.start, delta.lines);\n        else\n            this.deltaQueue.push(delta.start, delta.end);\n    };\n\n    this.$sendDeltaQueue = function() {\n        var q = this.deltaQueue;\n        if (!q) return;\n        this.deltaQueue = null;\n        if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n            this.call(\"setValue\", [this.$doc.getValue()]);\n        } else\n            this.emit(\"change\", {data: q});\n    };\n\n    this.$workerBlob = function(workerUrl) {\n        var script = \"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n        try {\n            return new Blob([script], {\"type\": \"application/javascript\"});\n        } catch (e) { // Backwards-compatibility\n            var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n            var blobBuilder = new BlobBuilder();\n            blobBuilder.append(script);\n            return blobBuilder.getBlob(\"application/javascript\");\n        }\n    };\n\n}).call(WorkerClient.prototype);\n\n\nvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n    this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n    this.changeListener = this.changeListener.bind(this);\n    this.callbackId = 1;\n    this.callbacks = {};\n    this.messageBuffer = [];\n\n    var main = null;\n    var emitSync = false;\n    var sender = Object.create(EventEmitter);\n    var _self = this;\n\n    this.$worker = {};\n    this.$worker.terminate = function() {};\n    this.$worker.postMessage = function(e) {\n        _self.messageBuffer.push(e);\n        if (main) {\n            if (emitSync)\n                setTimeout(processNext);\n            else\n                processNext();\n        }\n    };\n    this.setEmitSync = function(val) { emitSync = val };\n\n    var processNext = function() {\n        var msg = _self.messageBuffer.shift();\n        if (msg.command)\n            main[msg.command].apply(main, msg.args);\n        else if (msg.event)\n            sender._signal(msg.event, msg.data);\n    };\n\n    sender.postMessage = function(msg) {\n        _self.onMessage({data: msg});\n    };\n    sender.callback = function(data, callbackId) {\n        this.postMessage({type: \"call\", id: callbackId, data: data});\n    };\n    sender.emit = function(name, data) {\n        this.postMessage({type: \"event\", name: name, data: data});\n    };\n\n    config.loadModule([\"worker\", mod], function(Main) {\n        main = new Main[classname](sender);\n        while (_self.messageBuffer.length)\n            processNext();\n    });\n};\n\nUIWorkerClient.prototype = WorkerClient.prototype;\n\nexports.UIWorkerClient = UIWorkerClient;\nexports.WorkerClient = WorkerClient;\n\n});\n\nace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar oop = require(\"./lib/oop\");\n\nvar PlaceHolder = function(session, length, pos, others, mainClass, othersClass) {\n    var _self = this;\n    this.length = length;\n    this.session = session;\n    this.doc = session.getDocument();\n    this.mainClass = mainClass;\n    this.othersClass = othersClass;\n    this.$onUpdate = this.onUpdate.bind(this);\n    this.doc.on(\"change\", this.$onUpdate);\n    this.$others = others;\n    \n    this.$onCursorChange = function() {\n        setTimeout(function() {\n            _self.onCursorChange();\n        });\n    };\n    \n    this.$pos = pos;\n    var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || {length: -1};\n    this.$undoStackDepth = undoStack.length;\n    this.setup();\n\n    session.selection.on(\"changeCursor\", this.$onCursorChange);\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n    this.setup = function() {\n        var _self = this;\n        var doc = this.doc;\n        var session = this.session;\n        \n        this.selectionBefore = session.selection.toJSON();\n        if (session.selection.inMultiSelectMode)\n            session.selection.toSingleRange();\n\n        this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n        var pos = this.pos;\n        pos.$insertRight = true;\n        pos.detach();\n        pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n        this.others = [];\n        this.$others.forEach(function(other) {\n            var anchor = doc.createAnchor(other.row, other.column);\n            anchor.$insertRight = true;\n            anchor.detach();\n            _self.others.push(anchor);\n        });\n        session.setUndoSelect(false);\n    };\n    this.showOtherMarkers = function() {\n        if (this.othersActive) return;\n        var session = this.session;\n        var _self = this;\n        this.othersActive = true;\n        this.others.forEach(function(anchor) {\n            anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column+_self.length), _self.othersClass, null, false);\n        });\n    };\n    this.hideOtherMarkers = function() {\n        if (!this.othersActive) return;\n        this.othersActive = false;\n        for (var i = 0; i < this.others.length; i++) {\n            this.session.removeMarker(this.others[i].markerId);\n        }\n    };\n    this.onUpdate = function(delta) {\n        if (this.$updating)\n            return this.updateAnchors(delta);\n            \n        var range = delta;\n        if (range.start.row !== range.end.row) return;\n        if (range.start.row !== this.pos.row) return;\n        this.$updating = true;\n        var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n        var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n        var distanceFromStart = range.start.column - this.pos.column;\n        \n        this.updateAnchors(delta);\n        \n        if (inMainRange)\n            this.length += lengthDiff;\n\n        if (inMainRange && !this.session.$fromUndo) {\n            if (delta.action === 'insert') {\n                for (var i = this.others.length - 1; i >= 0; i--) {\n                    var otherPos = this.others[i];\n                    var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart};\n                    this.doc.insertMergedLines(newPos, delta.lines);\n                }\n            } else if (delta.action === 'remove') {\n                for (var i = this.others.length - 1; i >= 0; i--) {\n                    var otherPos = this.others[i];\n                    var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart};\n                    this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n                }\n            }\n        }\n        \n        this.$updating = false;\n        this.updateMarkers();\n    };\n    \n    this.updateAnchors = function(delta) {\n        this.pos.onChange(delta);\n        for (var i = this.others.length; i--;)\n            this.others[i].onChange(delta);\n        this.updateMarkers();\n    };\n    \n    this.updateMarkers = function() {\n        if (this.$updating)\n            return;\n        var _self = this;\n        var session = this.session;\n        var updateMarker = function(pos, className) {\n            session.removeMarker(pos.markerId);\n            pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column+_self.length), className, null, false);\n        };\n        updateMarker(this.pos, this.mainClass);\n        for (var i = this.others.length; i--;)\n            updateMarker(this.others[i], this.othersClass);\n    };\n\n    this.onCursorChange = function(event) {\n        if (this.$updating || !this.session) return;\n        var pos = this.session.selection.getCursor();\n        if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n            this.showOtherMarkers();\n            this._emit(\"cursorEnter\", event);\n        } else {\n            this.hideOtherMarkers();\n            this._emit(\"cursorLeave\", event);\n        }\n    };    \n    this.detach = function() {\n        this.session.removeMarker(this.pos && this.pos.markerId);\n        this.hideOtherMarkers();\n        this.doc.removeEventListener(\"change\", this.$onUpdate);\n        this.session.selection.removeEventListener(\"changeCursor\", this.$onCursorChange);\n        this.session.setUndoSelect(true);\n        this.session = null;\n    };\n    this.cancel = function() {\n        if (this.$undoStackDepth === -1)\n            return;\n        var undoManager = this.session.getUndoManager();\n        var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth;\n        for (var i = 0; i < undosRequired; i++) {\n            undoManager.undo(true);\n        }\n        if (this.selectionBefore)\n            this.session.selection.fromJSON(this.selectionBefore);\n    };\n}).call(PlaceHolder.prototype);\n\n\nexports.PlaceHolder = PlaceHolder;\n});\n\nace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module) {\n\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nfunction isSamePoint(p1, p2) {\n    return p1.row == p2.row && p1.column == p2.column;\n}\n\nfunction onMouseDown(e) {\n    var ev = e.domEvent;\n    var alt = ev.altKey;\n    var shift = ev.shiftKey;\n    var ctrl = ev.ctrlKey;\n    var accel = e.getAccelKey();\n    var button = e.getButton();\n    \n    if (ctrl && useragent.isMac)\n        button = ev.button;\n\n    if (e.editor.inMultiSelectMode && button == 2) {\n        e.editor.textInput.onContextMenu(e.domEvent);\n        return;\n    }\n    \n    if (!ctrl && !alt && !accel) {\n        if (button === 0 && e.editor.inMultiSelectMode)\n            e.editor.exitMultiSelectMode();\n        return;\n    }\n    \n    if (button !== 0)\n        return;\n\n    var editor = e.editor;\n    var selection = editor.selection;\n    var isMultiSelect = editor.inMultiSelectMode;\n    var pos = e.getDocumentPosition();\n    var cursor = selection.getCursor();\n    var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n\n    var mouseX = e.x, mouseY = e.y;\n    var onMouseSelection = function(e) {\n        mouseX = e.clientX;\n        mouseY = e.clientY;\n    };\n    \n    var session = editor.session;\n    var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n    var screenCursor = screenAnchor;\n    \n    var selectionMode;\n    if (editor.$mouseHandler.$enableJumpToDef) {\n        if (ctrl && alt || accel && alt)\n            selectionMode = shift ? \"block\" : \"add\";\n        else if (alt && editor.$blockSelectEnabled)\n            selectionMode = \"block\";\n    } else {\n        if (accel && !alt) {\n            selectionMode = \"add\";\n            if (!isMultiSelect && shift)\n                return;\n        } else if (alt && editor.$blockSelectEnabled) {\n            selectionMode = \"block\";\n        }\n    }\n    \n    if (selectionMode && useragent.isMac && ev.ctrlKey) {\n        editor.$mouseHandler.cancelContextMenu();\n    }\n\n    if (selectionMode == \"add\") {\n        if (!isMultiSelect && inSelection)\n            return; // dragging\n\n        if (!isMultiSelect) {\n            var range = selection.toOrientedRange();\n            editor.addSelectionMarker(range);\n        }\n\n        var oldRange = selection.rangeList.rangeAtPoint(pos);\n        \n        \n        editor.$blockScrolling++;\n        editor.inVirtualSelectionMode = true;\n        \n        if (shift) {\n            oldRange = null;\n            range = selection.ranges[0] || range;\n            editor.removeSelectionMarker(range);\n        }\n        editor.once(\"mouseup\", function() {\n            var tmpSel = selection.toOrientedRange();\n\n            if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n                selection.substractPoint(tmpSel.cursor);\n            else {\n                if (shift) {\n                    selection.substractPoint(range.cursor);\n                } else if (range) {\n                    editor.removeSelectionMarker(range);\n                    selection.addRange(range);\n                }\n                selection.addRange(tmpSel);\n            }\n            editor.$blockScrolling--;\n            editor.inVirtualSelectionMode = false;\n        });\n\n    } else if (selectionMode == \"block\") {\n        e.stop();\n        editor.inVirtualSelectionMode = true;        \n        var initialRange;\n        var rectSel = [];\n        var blockSelect = function() {\n            var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n            var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column);\n\n            if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n                return;\n            screenCursor = newCursor;\n            \n            editor.$blockScrolling++;\n            editor.selection.moveToPosition(cursor);\n            editor.renderer.scrollCursorIntoView();\n\n            editor.removeSelectionMarkers(rectSel);\n            rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n            if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n                rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n            rectSel.forEach(editor.addSelectionMarker, editor);\n            editor.updateSelectionMarkers();\n            editor.$blockScrolling--;\n        };\n        editor.$blockScrolling++;\n        if (isMultiSelect && !accel) {\n            selection.toSingleRange();\n        } else if (!isMultiSelect && accel) {\n            initialRange = selection.toOrientedRange();\n            editor.addSelectionMarker(initialRange);\n        }\n        \n        if (shift)\n            screenAnchor = session.documentToScreenPosition(selection.lead);            \n        else\n            selection.moveToPosition(pos);\n        editor.$blockScrolling--;\n        \n        screenCursor = {row: -1, column: -1};\n\n        var onMouseSelectionEnd = function(e) {\n            clearInterval(timerId);\n            editor.removeSelectionMarkers(rectSel);\n            if (!rectSel.length)\n                rectSel = [selection.toOrientedRange()];\n            editor.$blockScrolling++;\n            if (initialRange) {\n                editor.removeSelectionMarker(initialRange);\n                selection.toSingleRange(initialRange);\n            }\n            for (var i = 0; i < rectSel.length; i++)\n                selection.addRange(rectSel[i]);\n            editor.inVirtualSelectionMode = false;\n            editor.$mouseHandler.$clickSelection = null;\n            editor.$blockScrolling--;\n        };\n\n        var onSelectionInterval = blockSelect;\n\n        event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n        var timerId = setInterval(function() {onSelectionInterval();}, 20);\n\n        return e.preventDefault();\n    }\n}\n\n\nexports.onMouseDown = onMouseDown;\n\n});\n\nace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(require, exports, module) {\nexports.defaultCommands = [{\n    name: \"addCursorAbove\",\n    exec: function(editor) { editor.selectMoreLines(-1); },\n    bindKey: {win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\"},\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"addCursorBelow\",\n    exec: function(editor) { editor.selectMoreLines(1); },\n    bindKey: {win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\"},\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"addCursorAboveSkipCurrent\",\n    exec: function(editor) { editor.selectMoreLines(-1, true); },\n    bindKey: {win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\"},\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"addCursorBelowSkipCurrent\",\n    exec: function(editor) { editor.selectMoreLines(1, true); },\n    bindKey: {win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\"},\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"selectMoreBefore\",\n    exec: function(editor) { editor.selectMore(-1); },\n    bindKey: {win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\"},\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"selectMoreAfter\",\n    exec: function(editor) { editor.selectMore(1); },\n    bindKey: {win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\"},\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"selectNextBefore\",\n    exec: function(editor) { editor.selectMore(-1, true); },\n    bindKey: {win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\"},\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"selectNextAfter\",\n    exec: function(editor) { editor.selectMore(1, true); },\n    bindKey: {win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\"},\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}, {\n    name: \"splitIntoLines\",\n    exec: function(editor) { editor.multiSelect.splitIntoLines(); },\n    bindKey: {win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\"},\n    readOnly: true\n}, {\n    name: \"alignCursors\",\n    exec: function(editor) { editor.alignCursors(); },\n    bindKey: {win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\"},\n    scrollIntoView: \"cursor\"\n}, {\n    name: \"findAll\",\n    exec: function(editor) { editor.findAll(); },\n    bindKey: {win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\"},\n    scrollIntoView: \"cursor\",\n    readOnly: true\n}];\nexports.multiSelectCommands = [{\n    name: \"singleSelection\",\n    bindKey: \"esc\",\n    exec: function(editor) { editor.exitMultiSelectMode(); },\n    scrollIntoView: \"cursor\",\n    readOnly: true,\n    isAvailable: function(editor) {return editor && editor.inMultiSelectMode}\n}];\n\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nexports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n});\n\nace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(require, exports, module) {\n\nvar RangeList = require(\"./range_list\").RangeList;\nvar Range = require(\"./range\").Range;\nvar Selection = require(\"./selection\").Selection;\nvar onMouseDown = require(\"./mouse/multi_select_handler\").onMouseDown;\nvar event = require(\"./lib/event\");\nvar lang = require(\"./lib/lang\");\nvar commands = require(\"./commands/multi_select_commands\");\nexports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\nvar Search = require(\"./search\").Search;\nvar search = new Search();\n\nfunction find(session, needle, dir) {\n    search.$options.wrap = true;\n    search.$options.needle = needle;\n    search.$options.backwards = dir == -1;\n    return search.find(session);\n}\nvar EditSession = require(\"./edit_session\").EditSession;\n(function() {\n    this.getSelectionMarkers = function() {\n        return this.$selectionMarkers;\n    };\n}).call(EditSession.prototype);\n(function() {\n    this.ranges = null;\n    this.rangeList = null;\n    this.addRange = function(range, $blockChangeEvents) {\n        if (!range)\n            return;\n\n        if (!this.inMultiSelectMode && this.rangeCount === 0) {\n            var oldRange = this.toOrientedRange();\n            this.rangeList.add(oldRange);\n            this.rangeList.add(range);\n            if (this.rangeList.ranges.length != 2) {\n                this.rangeList.removeAll();\n                return $blockChangeEvents || this.fromOrientedRange(range);\n            }\n            this.rangeList.removeAll();\n            this.rangeList.add(oldRange);\n            this.$onAddRange(oldRange);\n        }\n\n        if (!range.cursor)\n            range.cursor = range.end;\n\n        var removed = this.rangeList.add(range);\n\n        this.$onAddRange(range);\n\n        if (removed.length)\n            this.$onRemoveRange(removed);\n\n        if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n            this._signal(\"multiSelect\");\n            this.inMultiSelectMode = true;\n            this.session.$undoSelect = false;\n            this.rangeList.attach(this.session);\n        }\n\n        return $blockChangeEvents || this.fromOrientedRange(range);\n    };\n\n    this.toSingleRange = function(range) {\n        range = range || this.ranges[0];\n        var removed = this.rangeList.removeAll();\n        if (removed.length)\n            this.$onRemoveRange(removed);\n\n        range && this.fromOrientedRange(range);\n    };\n    this.substractPoint = function(pos) {\n        var removed = this.rangeList.substractPoint(pos);\n        if (removed) {\n            this.$onRemoveRange(removed);\n            return removed[0];\n        }\n    };\n    this.mergeOverlappingRanges = function() {\n        var removed = this.rangeList.merge();\n        if (removed.length)\n            this.$onRemoveRange(removed);\n        else if(this.ranges[0])\n            this.fromOrientedRange(this.ranges[0]);\n    };\n\n    this.$onAddRange = function(range) {\n        this.rangeCount = this.rangeList.ranges.length;\n        this.ranges.unshift(range);\n        this._signal(\"addRange\", {range: range});\n    };\n\n    this.$onRemoveRange = function(removed) {\n        this.rangeCount = this.rangeList.ranges.length;\n        if (this.rangeCount == 1 && this.inMultiSelectMode) {\n            var lastRange = this.rangeList.ranges.pop();\n            removed.push(lastRange);\n            this.rangeCount = 0;\n        }\n\n        for (var i = removed.length; i--; ) {\n            var index = this.ranges.indexOf(removed[i]);\n            this.ranges.splice(index, 1);\n        }\n\n        this._signal(\"removeRange\", {ranges: removed});\n\n        if (this.rangeCount === 0 && this.inMultiSelectMode) {\n            this.inMultiSelectMode = false;\n            this._signal(\"singleSelect\");\n            this.session.$undoSelect = true;\n            this.rangeList.detach(this.session);\n        }\n\n        lastRange = lastRange || this.ranges[0];\n        if (lastRange && !lastRange.isEqual(this.getRange()))\n            this.fromOrientedRange(lastRange);\n    };\n    this.$initRangeList = function() {\n        if (this.rangeList)\n            return;\n\n        this.rangeList = new RangeList();\n        this.ranges = [];\n        this.rangeCount = 0;\n    };\n    this.getAllRanges = function() {\n        return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n    };\n\n    this.splitIntoLines = function () {\n        if (this.rangeCount > 1) {\n            var ranges = this.rangeList.ranges;\n            var lastRange = ranges[ranges.length - 1];\n            var range = Range.fromPoints(ranges[0].start, lastRange.end);\n\n            this.toSingleRange();\n            this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n        } else {\n            var range = this.getRange();\n            var isBackwards = this.isBackwards();\n            var startRow = range.start.row;\n            var endRow = range.end.row;\n            if (startRow == endRow) {\n                if (isBackwards)\n                    var start = range.end, end = range.start;\n                else\n                    var start = range.start, end = range.end;\n                \n                this.addRange(Range.fromPoints(end, end));\n                this.addRange(Range.fromPoints(start, start));\n                return;\n            }\n\n            var rectSel = [];\n            var r = this.getLineRange(startRow, true);\n            r.start.column = range.start.column;\n            rectSel.push(r);\n\n            for (var i = startRow + 1; i < endRow; i++)\n                rectSel.push(this.getLineRange(i, true));\n\n            r = this.getLineRange(endRow, true);\n            r.end.column = range.end.column;\n            rectSel.push(r);\n\n            rectSel.forEach(this.addRange, this);\n        }\n    };\n    this.toggleBlockSelection = function () {\n        if (this.rangeCount > 1) {\n            var ranges = this.rangeList.ranges;\n            var lastRange = ranges[ranges.length - 1];\n            var range = Range.fromPoints(ranges[0].start, lastRange.end);\n\n            this.toSingleRange();\n            this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n        } else {\n            var cursor = this.session.documentToScreenPosition(this.selectionLead);\n            var anchor = this.session.documentToScreenPosition(this.selectionAnchor);\n\n            var rectSel = this.rectangularRangeBlock(cursor, anchor);\n            rectSel.forEach(this.addRange, this);\n        }\n    };\n    this.rectangularRangeBlock = function(screenCursor, screenAnchor, includeEmptyLines) {\n        var rectSel = [];\n\n        var xBackwards = screenCursor.column < screenAnchor.column;\n        if (xBackwards) {\n            var startColumn = screenCursor.column;\n            var endColumn = screenAnchor.column;\n        } else {\n            var startColumn = screenAnchor.column;\n            var endColumn = screenCursor.column;\n        }\n\n        var yBackwards = screenCursor.row < screenAnchor.row;\n        if (yBackwards) {\n            var startRow = screenCursor.row;\n            var endRow = screenAnchor.row;\n        } else {\n            var startRow = screenAnchor.row;\n            var endRow = screenCursor.row;\n        }\n\n        if (startColumn < 0)\n            startColumn = 0;\n        if (startRow < 0)\n            startRow = 0;\n\n        if (startRow == endRow)\n            includeEmptyLines = true;\n\n        for (var row = startRow; row <= endRow; row++) {\n            var range = Range.fromPoints(\n                this.session.screenToDocumentPosition(row, startColumn),\n                this.session.screenToDocumentPosition(row, endColumn)\n            );\n            if (range.isEmpty()) {\n                if (docEnd && isSamePoint(range.end, docEnd))\n                    break;\n                var docEnd = range.end;\n            }\n            range.cursor = xBackwards ? range.start : range.end;\n            rectSel.push(range);\n        }\n\n        if (yBackwards)\n            rectSel.reverse();\n\n        if (!includeEmptyLines) {\n            var end = rectSel.length - 1;\n            while (rectSel[end].isEmpty() && end > 0)\n                end--;\n            if (end > 0) {\n                var start = 0;\n                while (rectSel[start].isEmpty())\n                    start++;\n            }\n            for (var i = end; i >= start; i--) {\n                if (rectSel[i].isEmpty())\n                    rectSel.splice(i, 1);\n            }\n        }\n\n        return rectSel;\n    };\n}).call(Selection.prototype);\nvar Editor = require(\"./editor\").Editor;\n(function() {\n    this.updateSelectionMarkers = function() {\n        this.renderer.updateCursor();\n        this.renderer.updateBackMarkers();\n    };\n    this.addSelectionMarker = function(orientedRange) {\n        if (!orientedRange.cursor)\n            orientedRange.cursor = orientedRange.end;\n\n        var style = this.getSelectionStyle();\n        orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n\n        this.session.$selectionMarkers.push(orientedRange);\n        this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n        return orientedRange;\n    };\n    this.removeSelectionMarker = function(range) {\n        if (!range.marker)\n            return;\n        this.session.removeMarker(range.marker);\n        var index = this.session.$selectionMarkers.indexOf(range);\n        if (index != -1)\n            this.session.$selectionMarkers.splice(index, 1);\n        this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n    };\n\n    this.removeSelectionMarkers = function(ranges) {\n        var markerList = this.session.$selectionMarkers;\n        for (var i = ranges.length; i--; ) {\n            var range = ranges[i];\n            if (!range.marker)\n                continue;\n            this.session.removeMarker(range.marker);\n            var index = markerList.indexOf(range);\n            if (index != -1)\n                markerList.splice(index, 1);\n        }\n        this.session.selectionMarkerCount = markerList.length;\n    };\n\n    this.$onAddRange = function(e) {\n        this.addSelectionMarker(e.range);\n        this.renderer.updateCursor();\n        this.renderer.updateBackMarkers();\n    };\n\n    this.$onRemoveRange = function(e) {\n        this.removeSelectionMarkers(e.ranges);\n        this.renderer.updateCursor();\n        this.renderer.updateBackMarkers();\n    };\n\n    this.$onMultiSelect = function(e) {\n        if (this.inMultiSelectMode)\n            return;\n        this.inMultiSelectMode = true;\n\n        this.setStyle(\"ace_multiselect\");\n        this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n        this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n\n        this.renderer.updateCursor();\n        this.renderer.updateBackMarkers();\n    };\n\n    this.$onSingleSelect = function(e) {\n        if (this.session.multiSelect.inVirtualMode)\n            return;\n        this.inMultiSelectMode = false;\n\n        this.unsetStyle(\"ace_multiselect\");\n        this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n\n        this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n        this.renderer.updateCursor();\n        this.renderer.updateBackMarkers();\n        this._emit(\"changeSelection\");\n    };\n\n    this.$onMultiSelectExec = function(e) {\n        var command = e.command;\n        var editor = e.editor;\n        if (!editor.multiSelect)\n            return;\n        if (!command.multiSelectAction) {\n            var result = command.exec(editor, e.args || {});\n            editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n            editor.multiSelect.mergeOverlappingRanges();\n        } else if (command.multiSelectAction == \"forEach\") {\n            result = editor.forEachSelection(command, e.args);\n        } else if (command.multiSelectAction == \"forEachLine\") {\n            result = editor.forEachSelection(command, e.args, true);\n        } else if (command.multiSelectAction == \"single\") {\n            editor.exitMultiSelectMode();\n            result = command.exec(editor, e.args || {});\n        } else {\n            result = command.multiSelectAction(editor, e.args || {});\n        }\n        return result;\n    }; \n    this.forEachSelection = function(cmd, args, options) {\n        if (this.inVirtualSelectionMode)\n            return;\n        var keepOrder = options && options.keepOrder;\n        var $byLines = options == true || options && options.$byLines\n        var session = this.session;\n        var selection = this.selection;\n        var rangeList = selection.rangeList;\n        var ranges = (keepOrder ? selection : rangeList).ranges;\n        var result;\n        \n        if (!ranges.length)\n            return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n        \n        var reg = selection._eventRegistry;\n        selection._eventRegistry = {};\n\n        var tmpSel = new Selection(session);\n        this.inVirtualSelectionMode = true;\n        for (var i = ranges.length; i--;) {\n            if ($byLines) {\n                while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n                    i--;\n            }\n            tmpSel.fromOrientedRange(ranges[i]);\n            tmpSel.index = i;\n            this.selection = session.selection = tmpSel;\n            var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n            if (!result && cmdResult !== undefined)\n                result = cmdResult;\n            tmpSel.toOrientedRange(ranges[i]);\n        }\n        tmpSel.detach();\n\n        this.selection = session.selection = selection;\n        this.inVirtualSelectionMode = false;\n        selection._eventRegistry = reg;\n        selection.mergeOverlappingRanges();\n        \n        var anim = this.renderer.$scrollAnimation;\n        this.onCursorChange();\n        this.onSelectionChange();\n        if (anim && anim.from == anim.to)\n            this.renderer.animateScrolling(anim.from);\n        \n        return result;\n    };\n    this.exitMultiSelectMode = function() {\n        if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n            return;\n        this.multiSelect.toSingleRange();\n    };\n\n    this.getSelectedText = function() {\n        var text = \"\";\n        if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n            var ranges = this.multiSelect.rangeList.ranges;\n            var buf = [];\n            for (var i = 0; i < ranges.length; i++) {\n                buf.push(this.session.getTextRange(ranges[i]));\n            }\n            var nl = this.session.getDocument().getNewLineCharacter();\n            text = buf.join(nl);\n            if (text.length == (buf.length - 1) * nl.length)\n                text = \"\";\n        } else if (!this.selection.isEmpty()) {\n            text = this.session.getTextRange(this.getSelectionRange());\n        }\n        return text;\n    };\n    \n    this.$checkMultiselectChange = function(e, anchor) {\n        if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n            var range = this.multiSelect.ranges[0];\n            if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n                return;\n            var pos = anchor == this.multiSelect.anchor\n                ? range.cursor == range.start ? range.end : range.start\n                : range.cursor;\n            if (pos.row != anchor.row \n                || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n                this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n        }\n    };\n    this.findAll = function(needle, options, additive) {\n        options = options || {};\n        options.needle = needle || options.needle;\n        if (options.needle == undefined) {\n            var range = this.selection.isEmpty()\n                ? this.selection.getWordRange()\n                : this.selection.getRange();\n            options.needle = this.session.getTextRange(range);\n        }    \n        this.$search.set(options);\n        \n        var ranges = this.$search.findAll(this.session);\n        if (!ranges.length)\n            return 0;\n\n        this.$blockScrolling += 1;\n        var selection = this.multiSelect;\n\n        if (!additive)\n            selection.toSingleRange(ranges[0]);\n\n        for (var i = ranges.length; i--; )\n            selection.addRange(ranges[i], true);\n        if (range && selection.rangeList.rangeAtPoint(range.start))\n            selection.addRange(range, true);\n        \n        this.$blockScrolling -= 1;\n\n        return ranges.length;\n    };\n    this.selectMoreLines = function(dir, skip) {\n        var range = this.selection.toOrientedRange();\n        var isBackwards = range.cursor == range.end;\n\n        var screenLead = this.session.documentToScreenPosition(range.cursor);\n        if (this.selection.$desiredColumn)\n            screenLead.column = this.selection.$desiredColumn;\n\n        var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n\n        if (!range.isEmpty()) {\n            var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n            var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n        } else {\n            var anchor = lead;\n        }\n\n        if (isBackwards) {\n            var newRange = Range.fromPoints(lead, anchor);\n            newRange.cursor = newRange.start;\n        } else {\n            var newRange = Range.fromPoints(anchor, lead);\n            newRange.cursor = newRange.end;\n        }\n\n        newRange.desiredColumn = screenLead.column;\n        if (!this.selection.inMultiSelectMode) {\n            this.selection.addRange(range);\n        } else {\n            if (skip)\n                var toRemove = range.cursor;\n        }\n\n        this.selection.addRange(newRange);\n        if (toRemove)\n            this.selection.substractPoint(toRemove);\n    };\n    this.transposeSelections = function(dir) {\n        var session = this.session;\n        var sel = session.multiSelect;\n        var all = sel.ranges;\n\n        for (var i = all.length; i--; ) {\n            var range = all[i];\n            if (range.isEmpty()) {\n                var tmp = session.getWordRange(range.start.row, range.start.column);\n                range.start.row = tmp.start.row;\n                range.start.column = tmp.start.column;\n                range.end.row = tmp.end.row;\n                range.end.column = tmp.end.column;\n            }\n        }\n        sel.mergeOverlappingRanges();\n\n        var words = [];\n        for (var i = all.length; i--; ) {\n            var range = all[i];\n            words.unshift(session.getTextRange(range));\n        }\n\n        if (dir < 0)\n            words.unshift(words.pop());\n        else\n            words.push(words.shift());\n\n        for (var i = all.length; i--; ) {\n            var range = all[i];\n            var tmp = range.clone();\n            session.replace(range, words[i]);\n            range.start.row = tmp.start.row;\n            range.start.column = tmp.start.column;\n        }\n    };\n    this.selectMore = function(dir, skip, stopAtFirst) {\n        var session = this.session;\n        var sel = session.multiSelect;\n\n        var range = sel.toOrientedRange();\n        if (range.isEmpty()) {\n            range = session.getWordRange(range.start.row, range.start.column);\n            range.cursor = dir == -1 ? range.start : range.end;\n            this.multiSelect.addRange(range);\n            if (stopAtFirst)\n                return;\n        }\n        var needle = session.getTextRange(range);\n\n        var newRange = find(session, needle, dir);\n        if (newRange) {\n            newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n            this.$blockScrolling += 1;\n            this.session.unfold(newRange);\n            this.multiSelect.addRange(newRange);\n            this.$blockScrolling -= 1;\n            this.renderer.scrollCursorIntoView(null, 0.5);\n        }\n        if (skip)\n            this.multiSelect.substractPoint(range.cursor);\n    };\n    this.alignCursors = function() {\n        var session = this.session;\n        var sel = session.multiSelect;\n        var ranges = sel.ranges;\n        var row = -1;\n        var sameRowRanges = ranges.filter(function(r) {\n            if (r.cursor.row == row)\n                return true;\n            row = r.cursor.row;\n        });\n        \n        if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n            var range = this.selection.getRange();\n            var fr = range.start.row, lr = range.end.row;\n            var guessRange = fr == lr;\n            if (guessRange) {\n                var max = this.session.getLength();\n                var line;\n                do {\n                    line = this.session.getLine(lr);\n                } while (/[=:]/.test(line) && ++lr < max);\n                do {\n                    line = this.session.getLine(fr);\n                } while (/[=:]/.test(line) && --fr > 0);\n                \n                if (fr < 0) fr = 0;\n                if (lr >= max) lr = max - 1;\n            }\n            var lines = this.session.removeFullLines(fr, lr);\n            lines = this.$reAlignText(lines, guessRange);\n            this.session.insert({row: fr, column: 0}, lines.join(\"\\n\") + \"\\n\");\n            if (!guessRange) {\n                range.start.column = 0;\n                range.end.column = lines[lines.length - 1].length;\n            }\n            this.selection.setRange(range);\n        } else {\n            sameRowRanges.forEach(function(r) {\n                sel.substractPoint(r.cursor);\n            });\n\n            var maxCol = 0;\n            var minSpace = Infinity;\n            var spaceOffsets = ranges.map(function(r) {\n                var p = r.cursor;\n                var line = session.getLine(p.row);\n                var spaceOffset = line.substr(p.column).search(/\\S/g);\n                if (spaceOffset == -1)\n                    spaceOffset = 0;\n\n                if (p.column > maxCol)\n                    maxCol = p.column;\n                if (spaceOffset < minSpace)\n                    minSpace = spaceOffset;\n                return spaceOffset;\n            });\n            ranges.forEach(function(r, i) {\n                var p = r.cursor;\n                var l = maxCol - p.column;\n                var d = spaceOffsets[i] - minSpace;\n                if (l > d)\n                    session.insert(p, lang.stringRepeat(\" \", l - d));\n                else\n                    session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n\n                r.start.column = r.end.column = maxCol;\n                r.start.row = r.end.row = p.row;\n                r.cursor = r.end;\n            });\n            sel.fromOrientedRange(ranges[0]);\n            this.renderer.updateCursor();\n            this.renderer.updateBackMarkers();\n        }\n    };\n\n    this.$reAlignText = function(lines, forceLeft) {\n        var isLeftAligned = true, isRightAligned = true;\n        var startW, textW, endW;\n\n        return lines.map(function(line) {\n            var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n            if (!m)\n                return [line];\n\n            if (startW == null) {\n                startW = m[1].length;\n                textW = m[2].length;\n                endW = m[3].length;\n                return m;\n            }\n\n            if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n                isRightAligned = false;\n            if (startW != m[1].length)\n                isLeftAligned = false;\n\n            if (startW > m[1].length)\n                startW = m[1].length;\n            if (textW < m[2].length)\n                textW = m[2].length;\n            if (endW > m[3].length)\n                endW = m[3].length;\n\n            return m;\n        }).map(forceLeft ? alignLeft :\n            isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n\n        function spaces(n) {\n            return lang.stringRepeat(\" \", n);\n        }\n\n        function alignLeft(m) {\n            return !m[2] ? m[0] : spaces(startW) + m[2]\n                + spaces(textW - m[2].length + endW)\n                + m[4].replace(/^([=:])\\s+/, \"$1 \");\n        }\n        function alignRight(m) {\n            return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n                + spaces(endW, \" \")\n                + m[4].replace(/^([=:])\\s+/, \"$1 \");\n        }\n        function unAlign(m) {\n            return !m[2] ? m[0] : spaces(startW) + m[2]\n                + spaces(endW)\n                + m[4].replace(/^([=:])\\s+/, \"$1 \");\n        }\n    };\n}).call(Editor.prototype);\n\n\nfunction isSamePoint(p1, p2) {\n    return p1.row == p2.row && p1.column == p2.column;\n}\nexports.onSessionChange = function(e) {\n    var session = e.session;\n    if (session && !session.multiSelect) {\n        session.$selectionMarkers = [];\n        session.selection.$initRangeList();\n        session.multiSelect = session.selection;\n    }\n    this.multiSelect = session && session.multiSelect;\n\n    var oldSession = e.oldSession;\n    if (oldSession) {\n        oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n        oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n        oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n        oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n        oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n        oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n    }\n\n    if (session) {\n        session.multiSelect.on(\"addRange\", this.$onAddRange);\n        session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n        session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n        session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n        session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n        session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n    }\n\n    if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n        if (session.selection.inMultiSelectMode)\n            this.$onMultiSelect();\n        else\n            this.$onSingleSelect();\n    }\n};\nfunction MultiSelect(editor) {\n    if (editor.$multiselectOnSessionChange)\n        return;\n    editor.$onAddRange = editor.$onAddRange.bind(editor);\n    editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n    editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n    editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n    editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n    editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n\n    editor.$multiselectOnSessionChange(editor);\n    editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n\n    editor.on(\"mousedown\", onMouseDown);\n    editor.commands.addCommands(commands.defaultCommands);\n\n    addAltCursorListeners(editor);\n}\n\nfunction addAltCursorListeners(editor){\n    var el = editor.textInput.getElement();\n    var altCursor = false;\n    event.addListener(el, \"keydown\", function(e) {\n        var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n        if (editor.$blockSelectEnabled && altDown) {\n            if (!altCursor) {\n                editor.renderer.setMouseCursor(\"crosshair\");\n                altCursor = true;\n            }\n        } else if (altCursor) {\n            reset();\n        }\n    });\n\n    event.addListener(el, \"keyup\", reset);\n    event.addListener(el, \"blur\", reset);\n    function reset(e) {\n        if (altCursor) {\n            editor.renderer.setMouseCursor(\"\");\n            altCursor = false;\n        }\n    }\n}\n\nexports.MultiSelect = MultiSelect;\n\n\nrequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n    enableMultiselect: {\n        set: function(val) {\n            MultiSelect(this);\n            if (val) {\n                this.on(\"changeSession\", this.$multiselectOnSessionChange);\n                this.on(\"mousedown\", onMouseDown);\n            } else {\n                this.off(\"changeSession\", this.$multiselectOnSessionChange);\n                this.off(\"mousedown\", onMouseDown);\n            }\n        },\n        value: true\n    },\n    enableBlockSelect: {\n        set: function(val) {\n            this.$blockSelectEnabled = val;\n        },\n        value: true\n    }\n});\n\n\n\n});\n\nace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\n\n(function() {\n\n    this.foldingStartMarker = null;\n    this.foldingStopMarker = null;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        if (this.foldingStartMarker.test(line))\n            return \"start\";\n        if (foldStyle == \"markbeginend\"\n                && this.foldingStopMarker\n                && this.foldingStopMarker.test(line))\n            return \"end\";\n        return \"\";\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        return null;\n    };\n\n    this.indentationBlock = function(session, row, column) {\n        var re = /\\S/;\n        var line = session.getLine(row);\n        var startLevel = line.search(re);\n        if (startLevel == -1)\n            return;\n\n        var startColumn = column || line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n\n        while (++row < maxRow) {\n            var level = session.getLine(row).search(re);\n\n            if (level == -1)\n                continue;\n\n            if (level <= startLevel)\n                break;\n\n            endRow = row;\n        }\n\n        if (endRow > startRow) {\n            var endColumn = session.getLine(endRow).length;\n            return new Range(startRow, startColumn, endRow, endColumn);\n        }\n    };\n\n    this.openingBracketBlock = function(session, bracket, row, column, typeRe) {\n        var start = {row: row, column: column + 1};\n        var end = session.$findClosingBracket(bracket, start, typeRe);\n        if (!end)\n            return;\n\n        var fw = session.foldWidgets[end.row];\n        if (fw == null)\n            fw = session.getFoldWidget(end.row);\n\n        if (fw == \"start\" && end.row > start.row) {\n            end.row --;\n            end.column = session.getLine(end.row).length;\n        }\n        return Range.fromPoints(start, end);\n    };\n\n    this.closingBracketBlock = function(session, bracket, row, column, typeRe) {\n        var end = {row: row, column: column};\n        var start = session.$findOpeningBracket(bracket, end);\n\n        if (!start)\n            return;\n\n        start.column++;\n        end.column--;\n\n        return  Range.fromPoints(start, end);\n    };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\"use strict\";\n\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = \".ace-tm .ace_gutter {\\\nbackground: #f0f0f0;\\\ncolor: #333;\\\n}\\\n.ace-tm .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8;\\\n}\\\n.ace-tm .ace_fold {\\\nbackground-color: #6B72E6;\\\n}\\\n.ace-tm {\\\nbackground-color: #FFFFFF;\\\ncolor: black;\\\n}\\\n.ace-tm .ace_cursor {\\\ncolor: black;\\\n}\\\n.ace-tm .ace_invisible {\\\ncolor: rgb(191, 191, 191);\\\n}\\\n.ace-tm .ace_storage,\\\n.ace-tm .ace_keyword {\\\ncolor: blue;\\\n}\\\n.ace-tm .ace_constant {\\\ncolor: rgb(197, 6, 11);\\\n}\\\n.ace-tm .ace_constant.ace_buildin {\\\ncolor: rgb(88, 72, 246);\\\n}\\\n.ace-tm .ace_constant.ace_language {\\\ncolor: rgb(88, 92, 246);\\\n}\\\n.ace-tm .ace_constant.ace_library {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_invalid {\\\nbackground-color: rgba(255, 0, 0, 0.1);\\\ncolor: red;\\\n}\\\n.ace-tm .ace_support.ace_function {\\\ncolor: rgb(60, 76, 114);\\\n}\\\n.ace-tm .ace_support.ace_constant {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_support.ace_type,\\\n.ace-tm .ace_support.ace_class {\\\ncolor: rgb(109, 121, 222);\\\n}\\\n.ace-tm .ace_keyword.ace_operator {\\\ncolor: rgb(104, 118, 135);\\\n}\\\n.ace-tm .ace_string {\\\ncolor: rgb(3, 106, 7);\\\n}\\\n.ace-tm .ace_comment {\\\ncolor: rgb(76, 136, 107);\\\n}\\\n.ace-tm .ace_comment.ace_doc {\\\ncolor: rgb(0, 102, 255);\\\n}\\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\\ncolor: rgb(128, 159, 191);\\\n}\\\n.ace-tm .ace_constant.ace_numeric {\\\ncolor: rgb(0, 0, 205);\\\n}\\\n.ace-tm .ace_variable {\\\ncolor: rgb(49, 132, 149);\\\n}\\\n.ace-tm .ace_xml-pe {\\\ncolor: rgb(104, 104, 91);\\\n}\\\n.ace-tm .ace_entity.ace_name.ace_function {\\\ncolor: #0000A2;\\\n}\\\n.ace-tm .ace_heading {\\\ncolor: rgb(12, 7, 255);\\\n}\\\n.ace-tm .ace_list {\\\ncolor:rgb(185, 6, 144);\\\n}\\\n.ace-tm .ace_meta.ace_tag {\\\ncolor:rgb(0, 22, 142);\\\n}\\\n.ace-tm .ace_string.ace_regex {\\\ncolor: rgb(255, 0, 0)\\\n}\\\n.ace-tm .ace_marker-layer .ace_selection {\\\nbackground: rgb(181, 213, 255);\\\n}\\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px white;\\\n}\\\n.ace-tm .ace_marker-layer .ace_step {\\\nbackground: rgb(252, 255, 0);\\\n}\\\n.ace-tm .ace_marker-layer .ace_stack {\\\nbackground: rgb(164, 229, 101);\\\n}\\\n.ace-tm .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgb(192, 192, 192);\\\n}\\\n.ace-tm .ace_marker-layer .ace_active-line {\\\nbackground: rgba(0, 0, 0, 0.07);\\\n}\\\n.ace-tm .ace_gutter-active-line {\\\nbackground-color : #dcdcdc;\\\n}\\\n.ace-tm .ace_marker-layer .ace_selected-word {\\\nbackground: rgb(250, 250, 255);\\\nborder: 1px solid rgb(200, 200, 250);\\\n}\\\n.ace-tm .ace_indent-guide {\\\nbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\\n}\\\n\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n\nace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar Range = require(\"./range\").Range;\n\n\nfunction LineWidgets(session) {\n    this.session = session;\n    this.session.widgetManager = this;\n    this.session.getRowLength = this.getRowLength;\n    this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n    this.updateOnChange = this.updateOnChange.bind(this);\n    this.renderWidgets = this.renderWidgets.bind(this);\n    this.measureWidgets = this.measureWidgets.bind(this);\n    this.session._changedWidgets = [];\n    this.$onChangeEditor = this.$onChangeEditor.bind(this);\n    \n    this.session.on(\"change\", this.updateOnChange);\n    this.session.on(\"changeFold\", this.updateOnFold);\n    this.session.on(\"changeEditor\", this.$onChangeEditor);\n}\n\n(function() {\n    this.getRowLength = function(row) {\n        var h;\n        if (this.lineWidgets)\n            h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n        else \n            h = 0;\n        if (!this.$useWrapMode || !this.$wrapData[row]) {\n            return 1 + h;\n        } else {\n            return this.$wrapData[row].length + 1 + h;\n        }\n    };\n\n    this.$getWidgetScreenLength = function() {\n        var screenRows = 0;\n        this.lineWidgets.forEach(function(w){\n            if (w && w.rowCount && !w.hidden)\n                screenRows += w.rowCount;\n        });\n        return screenRows;\n    };    \n    \n    this.$onChangeEditor = function(e) {\n        this.attach(e.editor);\n    };\n    \n    this.attach = function(editor) {\n        if (editor  && editor.widgetManager && editor.widgetManager != this)\n            editor.widgetManager.detach();\n\n        if (this.editor == editor)\n            return;\n\n        this.detach();\n        this.editor = editor;\n        \n        if (editor) {\n            editor.widgetManager = this;\n            editor.renderer.on(\"beforeRender\", this.measureWidgets);\n            editor.renderer.on(\"afterRender\", this.renderWidgets);\n        }\n    };\n    this.detach = function(e) {\n        var editor = this.editor;\n        if (!editor)\n            return;\n        \n        this.editor = null;\n        editor.widgetManager = null;\n        \n        editor.renderer.off(\"beforeRender\", this.measureWidgets);\n        editor.renderer.off(\"afterRender\", this.renderWidgets);\n        var lineWidgets = this.session.lineWidgets;\n        lineWidgets && lineWidgets.forEach(function(w) {\n            if (w && w.el && w.el.parentNode) {\n                w._inDocument = false;\n                w.el.parentNode.removeChild(w.el);\n            }\n        });\n    };\n\n    this.updateOnFold = function(e, session) {\n        var lineWidgets = session.lineWidgets;\n        if (!lineWidgets || !e.action)\n            return;\n        var fold = e.data;\n        var start = fold.start.row;\n        var end = fold.end.row;\n        var hide = e.action == \"add\";\n        for (var i = start + 1; i < end; i++) {\n            if (lineWidgets[i])\n                lineWidgets[i].hidden = hide;\n        }\n        if (lineWidgets[end]) {\n            if (hide) {\n                if (!lineWidgets[start])\n                    lineWidgets[start] = lineWidgets[end];\n                else\n                    lineWidgets[end].hidden = hide;\n            } else {\n                if (lineWidgets[start] == lineWidgets[end])\n                    lineWidgets[start] = undefined;\n                lineWidgets[end].hidden = hide;\n            }\n        }\n    };\n    \n    this.updateOnChange = function(delta) {\n        var lineWidgets = this.session.lineWidgets;\n        if (!lineWidgets) return;\n        \n        var startRow = delta.start.row;\n        var len = delta.end.row - startRow;\n\n        if (len === 0) {\n        } else if (delta.action == 'remove') {\n            var removed = lineWidgets.splice(startRow + 1, len);\n            removed.forEach(function(w) {\n                w && this.removeLineWidget(w);\n            }, this);\n            this.$updateRows();\n        } else {\n            var args = new Array(len);\n            args.unshift(startRow, 0);\n            lineWidgets.splice.apply(lineWidgets, args);\n            this.$updateRows();\n        }\n    };\n    \n    this.$updateRows = function() {\n        var lineWidgets = this.session.lineWidgets;\n        if (!lineWidgets) return;\n        var noWidgets = true;\n        lineWidgets.forEach(function(w, i) {\n            if (w) {\n                noWidgets = false;\n                w.row = i;\n                while (w.$oldWidget) {\n                    w.$oldWidget.row = i;\n                    w = w.$oldWidget;\n                }\n            }\n        });\n        if (noWidgets)\n            this.session.lineWidgets = null;\n    };\n\n    this.addLineWidget = function(w) {\n        if (!this.session.lineWidgets)\n            this.session.lineWidgets = new Array(this.session.getLength());\n        \n        var old = this.session.lineWidgets[w.row];\n        if (old) {\n            w.$oldWidget = old;\n            if (old.el && old.el.parentNode) {\n                old.el.parentNode.removeChild(old.el);\n                old._inDocument = false;\n            }\n        }\n            \n        this.session.lineWidgets[w.row] = w;\n        \n        w.session = this.session;\n        \n        var renderer = this.editor.renderer;\n        if (w.html && !w.el) {\n            w.el = dom.createElement(\"div\");\n            w.el.innerHTML = w.html;\n        }\n        if (w.el) {\n            dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n            w.el.style.position = \"absolute\";\n            w.el.style.zIndex = 5;\n            renderer.container.appendChild(w.el);\n            w._inDocument = true;\n        }\n        \n        if (!w.coverGutter) {\n            w.el.style.zIndex = 3;\n        }\n        if (w.pixelHeight == null) {\n            w.pixelHeight = w.el.offsetHeight;\n        }\n        if (w.rowCount == null) {\n            w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n        }\n        \n        var fold = this.session.getFoldAt(w.row, 0);\n        w.$fold = fold;\n        if (fold) {\n            var lineWidgets = this.session.lineWidgets;\n            if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n                lineWidgets[fold.start.row] = w;\n            else\n                w.hidden = true;\n        }\n            \n        this.session._emit(\"changeFold\", {data:{start:{row: w.row}}});\n        \n        this.$updateRows();\n        this.renderWidgets(null, renderer);\n        this.onWidgetChanged(w);\n        return w;\n    };\n    \n    this.removeLineWidget = function(w) {\n        w._inDocument = false;\n        w.session = null;\n        if (w.el && w.el.parentNode)\n            w.el.parentNode.removeChild(w.el);\n        if (w.editor && w.editor.destroy) try {\n            w.editor.destroy();\n        } catch(e){}\n        if (this.session.lineWidgets) {\n            var w1 = this.session.lineWidgets[w.row]\n            if (w1 == w) {\n                this.session.lineWidgets[w.row] = w.$oldWidget;\n                if (w.$oldWidget)\n                    this.onWidgetChanged(w.$oldWidget);\n            } else {\n                while (w1) {\n                    if (w1.$oldWidget == w) {\n                        w1.$oldWidget = w.$oldWidget;\n                        break;\n                    }\n                    w1 = w1.$oldWidget;\n                }\n            }\n        }\n        this.session._emit(\"changeFold\", {data:{start:{row: w.row}}});\n        this.$updateRows();\n    };\n    \n    this.getWidgetsAtRow = function(row) {\n        var lineWidgets = this.session.lineWidgets;\n        var w = lineWidgets && lineWidgets[row];\n        var list = [];\n        while (w) {\n            list.push(w);\n            w = w.$oldWidget;\n        }\n        return list;\n    };\n    \n    this.onWidgetChanged = function(w) {\n        this.session._changedWidgets.push(w);\n        this.editor && this.editor.renderer.updateFull();\n    };\n    \n    this.measureWidgets = function(e, renderer) {\n        var changedWidgets = this.session._changedWidgets;\n        var config = renderer.layerConfig;\n        \n        if (!changedWidgets || !changedWidgets.length) return;\n        var min = Infinity;\n        for (var i = 0; i < changedWidgets.length; i++) {\n            var w = changedWidgets[i];\n            if (!w || !w.el) continue;\n            if (w.session != this.session) continue;\n            if (!w._inDocument) {\n                if (this.session.lineWidgets[w.row] != w)\n                    continue;\n                w._inDocument = true;\n                renderer.container.appendChild(w.el);\n            }\n            \n            w.h = w.el.offsetHeight;\n            \n            if (!w.fixedWidth) {\n                w.w = w.el.offsetWidth;\n                w.screenWidth = Math.ceil(w.w / config.characterWidth);\n            }\n            \n            var rowCount = w.h / config.lineHeight;\n            if (w.coverLine) {\n                rowCount -= this.session.getRowLineCount(w.row);\n                if (rowCount < 0)\n                    rowCount = 0;\n            }\n            if (w.rowCount != rowCount) {\n                w.rowCount = rowCount;\n                if (w.row < min)\n                    min = w.row;\n            }\n        }\n        if (min != Infinity) {\n            this.session._emit(\"changeFold\", {data:{start:{row: min}}});\n            this.session.lineWidgetWidth = null;\n        }\n        this.session._changedWidgets = [];\n    };\n    \n    this.renderWidgets = function(e, renderer) {\n        var config = renderer.layerConfig;\n        var lineWidgets = this.session.lineWidgets;\n        if (!lineWidgets)\n            return;\n        var first = Math.min(this.firstRow, config.firstRow);\n        var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n        \n        while (first > 0 && !lineWidgets[first])\n            first--;\n        \n        this.firstRow = config.firstRow;\n        this.lastRow = config.lastRow;\n\n        renderer.$cursorLayer.config = config;\n        for (var i = first; i <= last; i++) {\n            var w = lineWidgets[i];\n            if (!w || !w.el) continue;\n            if (w.hidden) {\n                w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n                continue;\n            }\n            if (!w._inDocument) {\n                w._inDocument = true;\n                renderer.container.appendChild(w.el);\n            }\n            var top = renderer.$cursorLayer.getPixelPosition({row: i, column:0}, true).top;\n            if (!w.coverLine)\n                top += config.lineHeight * this.session.getRowLineCount(w.row);\n            w.el.style.top = top - config.offset + \"px\";\n            \n            var left = w.coverGutter ? 0 : renderer.gutterWidth;\n            if (!w.fixedWidth)\n                left -= renderer.scrollLeft;\n            w.el.style.left = left + \"px\";\n            \n            if (w.fullWidth && w.screenWidth) {\n                w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n            }\n            \n            if (w.fixedWidth) {\n                w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n            } else {\n                w.el.style.right = \"\";\n            }\n        }\n    };\n    \n}).call(LineWidgets.prototype);\n\n\nexports.LineWidgets = LineWidgets;\n\n});\n\nace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\nvar LineWidgets = require(\"../line_widgets\").LineWidgets;\nvar dom = require(\"../lib/dom\");\nvar Range = require(\"../range\").Range;\n\nfunction binarySearch(array, needle, comparator) {\n    var first = 0;\n    var last = array.length - 1;\n\n    while (first <= last) {\n        var mid = (first + last) >> 1;\n        var c = comparator(needle, array[mid]);\n        if (c > 0)\n            first = mid + 1;\n        else if (c < 0)\n            last = mid - 1;\n        else\n            return mid;\n    }\n    return -(first + 1);\n}\n\nfunction findAnnotations(session, row, dir) {\n    var annotations = session.getAnnotations().sort(Range.comparePoints);\n    if (!annotations.length)\n        return;\n    \n    var i = binarySearch(annotations, {row: row, column: -1}, Range.comparePoints);\n    if (i < 0)\n        i = -i - 1;\n    \n    if (i >= annotations.length)\n        i = dir > 0 ? 0 : annotations.length - 1;\n    else if (i === 0 && dir < 0)\n        i = annotations.length - 1;\n    \n    var annotation = annotations[i];\n    if (!annotation || !dir)\n        return;\n\n    if (annotation.row === row) {\n        do {\n            annotation = annotations[i += dir];\n        } while (annotation && annotation.row === row);\n        if (!annotation)\n            return annotations.slice();\n    }\n    \n    \n    var matched = [];\n    row = annotation.row;\n    do {\n        matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n        annotation = annotations[i += dir];\n    } while (annotation && annotation.row == row);\n    return matched.length && matched;\n}\n\nexports.showErrorMarker = function(editor, dir) {\n    var session = editor.session;\n    if (!session.widgetManager) {\n        session.widgetManager = new LineWidgets(session);\n        session.widgetManager.attach(editor);\n    }\n    \n    var pos = editor.getCursorPosition();\n    var row = pos.row;\n    var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function(w) {\n        return w.type == \"errorMarker\";\n    })[0];\n    if (oldWidget) {\n        oldWidget.destroy();\n    } else {\n        row -= dir;\n    }\n    var annotations = findAnnotations(session, row, dir);\n    var gutterAnno;\n    if (annotations) {\n        var annotation = annotations[0];\n        pos.column = (annotation.pos && typeof annotation.column != \"number\"\n            ? annotation.pos.sc\n            : annotation.column) || 0;\n        pos.row = annotation.row;\n        gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n    } else if (oldWidget) {\n        return;\n    } else {\n        gutterAnno = {\n            text: [\"Looks good!\"],\n            className: \"ace_ok\"\n        };\n    }\n    editor.session.unfold(pos.row);\n    editor.selection.moveToPosition(pos);\n    \n    var w = {\n        row: pos.row, \n        fixedWidth: true,\n        coverGutter: true,\n        el: dom.createElement(\"div\"),\n        type: \"errorMarker\"\n    };\n    var el = w.el.appendChild(dom.createElement(\"div\"));\n    var arrow = w.el.appendChild(dom.createElement(\"div\"));\n    arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n    \n    var left = editor.renderer.$cursorLayer\n        .getPixelPosition(pos).left;\n    arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n    \n    w.el.className = \"error_widget_wrapper\";\n    el.className = \"error_widget \" + gutterAnno.className;\n    el.innerHTML = gutterAnno.text.join(\"<br>\");\n    \n    el.appendChild(dom.createElement(\"div\"));\n    \n    var kb = function(_, hashId, keyString) {\n        if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n            w.destroy();\n            return {command: \"null\"};\n        }\n    };\n    \n    w.destroy = function() {\n        if (editor.$mouseHandler.isMousePressed)\n            return;\n        editor.keyBinding.removeKeyboardHandler(kb);\n        session.widgetManager.removeLineWidget(w);\n        editor.off(\"changeSelection\", w.destroy);\n        editor.off(\"changeSession\", w.destroy);\n        editor.off(\"mouseup\", w.destroy);\n        editor.off(\"change\", w.destroy);\n    };\n    \n    editor.keyBinding.addKeyboardHandler(kb);\n    editor.on(\"changeSelection\", w.destroy);\n    editor.on(\"changeSession\", w.destroy);\n    editor.on(\"mouseup\", w.destroy);\n    editor.on(\"change\", w.destroy);\n    \n    editor.session.widgetManager.addLineWidget(w);\n    \n    w.el.onmousedown = editor.focus.bind(editor);\n    \n    editor.renderer.scrollCursorIntoView(null, 0.5, {bottom: w.el.offsetHeight});\n};\n\n\ndom.importCssString(\"\\\n    .error_widget_wrapper {\\\n        background: inherit;\\\n        color: inherit;\\\n        border:none\\\n    }\\\n    .error_widget {\\\n        border-top: solid 2px;\\\n        border-bottom: solid 2px;\\\n        margin: 5px 0;\\\n        padding: 10px 40px;\\\n        white-space: pre-wrap;\\\n    }\\\n    .error_widget.ace_error, .error_widget_arrow.ace_error{\\\n        border-color: #ff5a5a\\\n    }\\\n    .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\\n        border-color: #F1D817\\\n    }\\\n    .error_widget.ace_info, .error_widget_arrow.ace_info{\\\n        border-color: #5a5a5a\\\n    }\\\n    .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\\n        border-color: #5aaa5a\\\n    }\\\n    .error_widget_arrow {\\\n        position: absolute;\\\n        border: solid 5px;\\\n        border-top-color: transparent!important;\\\n        border-right-color: transparent!important;\\\n        border-left-color: transparent!important;\\\n        top: -5px;\\\n    }\\\n\", \"\");\n\n});\n\nace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nrequire(\"./lib/fixoldbrowsers\");\n\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\n\nvar Editor = require(\"./editor\").Editor;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar Renderer = require(\"./virtual_renderer\").VirtualRenderer;\nrequire(\"./worker/worker_client\");\nrequire(\"./keyboard/hash_handler\");\nrequire(\"./placeholder\");\nrequire(\"./multi_select\");\nrequire(\"./mode/folding/fold_mode\");\nrequire(\"./theme/textmate\");\nrequire(\"./ext/error_marker\");\n\nexports.config = require(\"./config\");\nexports.require = require;\n\nif (typeof define === \"function\")\n    exports.define = define;\nexports.edit = function(el) {\n    if (typeof el == \"string\") {\n        var _id = el;\n        el = document.getElementById(_id);\n        if (!el)\n            throw new Error(\"ace.edit can't find div #\" + _id);\n    }\n\n    if (el && el.env && el.env.editor instanceof Editor)\n        return el.env.editor;\n\n    var value = \"\";\n    if (el && /input|textarea/i.test(el.tagName)) {\n        var oldNode = el;\n        value = oldNode.value;\n        el = dom.createElement(\"pre\");\n        oldNode.parentNode.replaceChild(el, oldNode);\n    } else if (el) {\n        value = dom.getInnerText(el);\n        el.innerHTML = \"\";\n    }\n\n    var doc = exports.createEditSession(value);\n\n    var editor = new Editor(new Renderer(el));\n    editor.setSession(doc);\n\n    var env = {\n        document: doc,\n        editor: editor,\n        onResize: editor.resize.bind(editor, null)\n    };\n    if (oldNode) env.textarea = oldNode;\n    event.addListener(window, \"resize\", env.onResize);\n    editor.on(\"destroy\", function() {\n        event.removeListener(window, \"resize\", env.onResize);\n        env.editor.container.env = null; // prevent memory leak on old ie\n    });\n    editor.container.env = editor.env = env;\n    return editor;\n};\nexports.createEditSession = function(text, mode) {\n    var doc = new EditSession(text, mode);\n    doc.setUndoManager(new UndoManager());\n    return doc;\n}\nexports.EditSession = EditSession;\nexports.UndoManager = UndoManager;\nexports.version = \"1.2.6\";\n});\n            (function() {\n                ace.require([\"ace/ace\"], function(a) {\n                    if (a) {\n                        a.config.init(true);\n                        a.define = ace.define;\n                    }\n                    if (!window.ace)\n                        window.ace = a;\n                    for (var key in a) if (a.hasOwnProperty(key))\n                        window.ace[key] = a[key];\n                });\n            })();\n        "
  },
  {
    "path": "lib/src-noconflict/ext-beautify.js",
    "content": "ace.define(\"ace/ext/beautify/php_rules\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\nvar TokenIterator = require(\"ace/token_iterator\").TokenIterator;\nexports.newLines = [{\n    type: 'support.php_tag',\n    value: '<?php'\n}, {\n    type: 'support.php_tag',\n    value: '<?'\n}, {\n    type: 'support.php_tag',\n    value: '?>'\n}, {\n    type: 'paren.lparen',\n    value: '{',\n    indent: true\n}, {\n    type: 'paren.rparen',\n    breakBefore: true,\n    value: '}',\n    indent: false\n}, {\n    type: 'paren.rparen',\n    breakBefore: true,\n    value: '})',\n    indent: false,\n    dontBreak: true\n}, {\n    type: 'comment'\n}, {\n    type: 'text',\n    value: ';'\n}, {\n    type: 'text',\n    value: ':',\n    context: 'php'\n}, {\n    type: 'keyword',\n    value: 'case',\n    indent: true,\n    dontBreak: true\n}, {\n    type: 'keyword',\n    value: 'default',\n    indent: true,\n    dontBreak: true\n}, {\n    type: 'keyword',\n    value: 'break',\n    indent: false,\n    dontBreak: true\n}, {\n    type: 'punctuation.doctype.end',\n    value: '>'\n}, {\n    type: 'meta.tag.punctuation.end',\n    value: '>'\n}, {\n    type: 'meta.tag.punctuation.begin',\n    value: '<',\n    blockTag: true,\n    indent: true,\n    dontBreak: true\n}, {\n    type: 'meta.tag.punctuation.begin',\n    value: '</',\n    indent: false,\n    breakBefore: true,\n    dontBreak: true\n}, {\n    type: 'punctuation.operator',\n    value: ';'\n}];\n\nexports.spaces = [{\n    type: 'xml-pe',\n    prepend: true\n},{\n    type: 'entity.other.attribute-name',\n    prepend: true\n}, {\n    type: 'storage.type',\n    value: 'var',\n    append: true\n}, {\n    type: 'storage.type',\n    value: 'function',\n    append: true\n}, {\n    type: 'keyword.operator',\n    value: '='\n}, {\n    type: 'keyword',\n    value: 'as',\n    prepend: true,\n    append: true\n}, {\n    type: 'keyword',\n    value: 'function',\n    append: true\n}, {\n    type: 'support.function',\n    next: /[^\\(]/,\n    append: true\n}, {\n    type: 'keyword',\n    value: 'or',\n    append: true,\n    prepend: true\n}, {\n    type: 'keyword',\n    value: 'and',\n    append: true,\n    prepend: true\n}, {\n    type: 'keyword',\n    value: 'case',\n    append: true\n}, {\n    type: 'keyword.operator',\n    value: '||',\n    append: true,\n    prepend: true\n}, {\n    type: 'keyword.operator',\n    value: '&&',\n    append: true,\n    prepend: true\n}];\nexports.singleTags = ['!doctype','area','base','br','hr','input','img','link','meta'];\n\nexports.transform = function(iterator, maxPos, context) {\n    var token = iterator.getCurrentToken();\n    \n    var newLines = exports.newLines;\n    var spaces = exports.spaces;\n    var singleTags = exports.singleTags;\n\n    var code = '';\n    \n    var indentation = 0;\n    var dontBreak = false;\n    var tag;\n    var lastTag;\n    var lastToken = {};\n    var nextTag;\n    var nextToken = {};\n    var breakAdded = false;\n    var value = '';\n\n    while (token!==null) {\n        console.log(token);\n\n        if( !token ){\n            token = iterator.stepForward();\n            continue;\n        }\n        if( token.type == 'support.php_tag' && token.value != '?>' ){\n            context = 'php';\n        }\n        else if( token.type == 'support.php_tag' && token.value == '?>' ){\n            context = 'html';\n        }\n        else if( token.type == 'meta.tag.name.style' && context != 'css' ){\n            context = 'css';\n        }\n        else if( token.type == 'meta.tag.name.style' && context == 'css' ){\n            context = 'html';\n        }\n        else if( token.type == 'meta.tag.name.script' && context != 'js' ){\n            context = 'js';\n        }\n        else if( token.type == 'meta.tag.name.script' && context == 'js' ){\n            context = 'html';\n        }\n\n        nextToken = iterator.stepForward();\n        if (nextToken && nextToken.type.indexOf('meta.tag.name') == 0) {\n            nextTag = nextToken.value;\n        }\n        if ( lastToken.type == 'support.php_tag' && lastToken.value == '<?=') {\n            dontBreak = true;\n        }\n        if (token.type == 'meta.tag.name') {\n            token.value = token.value.toLowerCase();\n        }\n        if (token.type == 'text') {\n            token.value = token.value.trim();\n        }\n        if (!token.value) {\n            token = nextToken;\n            continue;\n        }\n        value = token.value;\n        for (var i in spaces) {\n            if (\n                token.type == spaces[i].type &&\n                (!spaces[i].value || token.value == spaces[i].value) &&\n                (\n                    nextToken &&\n                    (!spaces[i].next || spaces[i].next.test(nextToken.value))\n                )\n            ) {\n                if (spaces[i].prepend) {\n                    value = ' ' + token.value;\n                }\n\n                if (spaces[i].append) {\n                    value += ' ';\n                }\n            }\n        }\n        if (token.type.indexOf('meta.tag.name') == 0) {\n            tag = token.value;\n        }\n        breakAdded = false;\n        for (i in newLines) {\n            if (\n                token.type == newLines[i].type &&\n                (\n                    !newLines[i].value ||\n                    token.value == newLines[i].value\n                ) &&\n                (\n                    !newLines[i].blockTag ||\n                    singleTags.indexOf(nextTag) === -1\n                ) &&\n                (\n                    !newLines[i].context ||\n                    newLines[i].context === context\n                )\n            ) {\n                if (newLines[i].indent === false) {\n                    indentation--;\n                }\n\n                if (\n                    newLines[i].breakBefore &&\n                    ( !newLines[i].prev || newLines[i].prev.test(lastToken.value) )\n                ) {\n                    code += \"\\n\";\n                    breakAdded = true;\n                    for (i = 0; i < indentation; i++) {\n                        code += \"\\t\";\n                    }\n                }\n\n                break;\n            }\n        }\n\n        if (dontBreak===false) {\n            for (i in newLines) {\n                if (\n                    lastToken.type == newLines[i].type &&\n                    (\n                        !newLines[i].value || lastToken.value == newLines[i].value\n                    ) &&\n                    (\n                        !newLines[i].blockTag ||\n                        singleTags.indexOf(tag) === -1\n                    ) &&\n                    (\n                        !newLines[i].context ||\n                        newLines[i].context === context\n                    )\n                ) {\n                    if (newLines[i].indent === true) {\n                        indentation++;\n                    }\n\n                    if (!newLines[i].dontBreak  && !breakAdded) {\n                        code += \"\\n\";\n                        for (i = 0; i < indentation; i++) {\n                            code += \"\\t\";\n                        }\n                    }\n\n                    break;\n                }\n            }\n        }\n\n        code += value;\n        if ( lastToken.type == 'support.php_tag' && lastToken.value == '?>' ) {\n            dontBreak = false;\n        }\n        lastTag = tag;\n\n        lastToken = token;\n\n        token = nextToken;\n\n        if (token===null) {\n            break;\n        }\n    }\n    \n    return code;\n};\n\n\n\n});\n\nace.define(\"ace/ext/beautify\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/ext/beautify/php_rules\"], function(require, exports, module) {\n\"use strict\";\nvar TokenIterator = require(\"ace/token_iterator\").TokenIterator;\n\nvar phpTransform = require(\"./beautify/php_rules\").transform;\n\nexports.beautify = function(session) {\n    var iterator = new TokenIterator(session, 0, 0);\n    var token = iterator.getCurrentToken();\n\n    var context = session.$modeId.split(\"/\").pop();\n\n    var code = phpTransform(iterator, context);\n    session.doc.setValue(code);\n};\n\nexports.commands = [{\n    name: \"beautify\",\n    exec: function(editor) {\n        exports.beautify(editor.session);\n    },\n    bindKey: \"Ctrl-Shift-B\"\n}]\n\n});\n                (function() {\n                    ace.require([\"ace/ext/beautify\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-noconflict/ext-chromevox.js",
    "content": "ace.define(\"ace/ext/chromevox\",[\"require\",\"exports\",\"module\",\"ace/editor\",\"ace/config\"], function(require, exports, module) {\nvar cvoxAce = {};\ncvoxAce.SpeechProperty;\ncvoxAce.Cursor;\ncvoxAce.Token;\ncvoxAce.Annotation;\nvar CONSTANT_PROP = {\n  'rate': 0.8,\n  'pitch': 0.4,\n  'volume': 0.9\n};\nvar DEFAULT_PROP = {\n  'rate': 1,\n  'pitch': 0.5,\n  'volume': 0.9\n};\nvar ENTITY_PROP = {\n  'rate': 0.8,\n  'pitch': 0.8,\n  'volume': 0.9\n};\nvar KEYWORD_PROP = {\n  'rate': 0.8,\n  'pitch': 0.3,\n  'volume': 0.9\n};\nvar STORAGE_PROP = {\n  'rate': 0.8,\n  'pitch': 0.7,\n  'volume': 0.9\n};\nvar VARIABLE_PROP = {\n  'rate': 0.8,\n  'pitch': 0.8,\n  'volume': 0.9\n};\nvar DELETED_PROP = {\n  'punctuationEcho': 'none',\n  'relativePitch': -0.6\n};\nvar ERROR_EARCON = 'ALERT_NONMODAL';\nvar MODE_SWITCH_EARCON = 'ALERT_MODAL';\nvar NO_MATCH_EARCON = 'INVALID_KEYPRESS';\nvar INSERT_MODE_STATE = 'insertMode';\nvar COMMAND_MODE_STATE = 'start';\n\nvar REPLACE_LIST = [\n  {\n    substr: ';',\n    newSubstr: ' semicolon '\n  },\n  {\n    substr: ':',\n    newSubstr: ' colon '\n  }\n];\nvar Command = {\n  SPEAK_ANNOT: 'annots',\n  SPEAK_ALL_ANNOTS: 'all_annots',\n  TOGGLE_LOCATION: 'toggle_location',\n  SPEAK_MODE: 'mode',\n  SPEAK_ROW_COL: 'row_col',\n  TOGGLE_DISPLACEMENT: 'toggle_displacement',\n  FOCUS_TEXT: 'focus_text'\n};\nvar KEY_PREFIX = 'CONTROL + SHIFT ';\ncvoxAce.editor = null;\nvar lastCursor = null;\nvar annotTable = {};\nvar shouldSpeakRowLocation = false;\nvar shouldSpeakDisplacement = false;\nvar changed = false;\nvar vimState = null;\nvar keyCodeToShortcutMap = {};\nvar cmdToShortcutMap = {};\nvar getKeyShortcutString = function(keyCode) {\n  return KEY_PREFIX + String.fromCharCode(keyCode);\n};\nvar isVimMode = function() {\n  var keyboardHandler = cvoxAce.editor.keyBinding.getKeyboardHandler();\n  return keyboardHandler.$id === 'ace/keyboard/vim';\n};\nvar getCurrentToken = function(cursor) {\n  return cvoxAce.editor.getSession().getTokenAt(cursor.row, cursor.column + 1);\n};\nvar getCurrentLine = function(cursor) {\n  return cvoxAce.editor.getSession().getLine(cursor.row);\n};\nvar onRowChange = function(currCursor) {\n  if (annotTable[currCursor.row]) {\n    cvox.Api.playEarcon(ERROR_EARCON);\n  }\n  if (shouldSpeakRowLocation) {\n    cvox.Api.stop();\n    speakChar(currCursor);\n    speakTokenQueue(getCurrentToken(currCursor));\n    speakLine(currCursor.row, 1);\n  } else {\n    speakLine(currCursor.row, 0);\n  }\n};\nvar isWord = function(cursor) {\n  var line = getCurrentLine(cursor);\n  var lineSuffix = line.substr(cursor.column - 1);\n  if (cursor.column === 0) {\n    lineSuffix = ' ' + line;\n  }\n  var firstWordRegExp = /^\\W(\\w+)/;\n  var words = firstWordRegExp.exec(lineSuffix);\n  return words !== null;\n};\nvar rules = {\n  'constant': {\n    prop: CONSTANT_PROP\n  },\n  'entity': {\n    prop: ENTITY_PROP\n  },\n  'keyword': {\n    prop: KEYWORD_PROP\n  },\n  'storage': {\n    prop: STORAGE_PROP\n  },\n  'variable': {\n    prop: VARIABLE_PROP\n  },\n  'meta': {\n    prop: DEFAULT_PROP,\n    replace: [\n      {\n        substr: '</',\n        newSubstr: ' closing tag '\n      },\n      {\n        substr: '/>',\n        newSubstr: ' close tag '\n      },\n      {\n        substr: '<',\n        newSubstr: ' tag start '\n      },\n      {\n        substr: '>',\n        newSubstr: ' tag end '\n      }\n    ]\n  }\n};\nvar DEFAULT_RULE = {\n  prop: DEFAULT_RULE\n};\nvar expand = function(value, replaceRules) {\n  var newValue = value;\n  for (var i = 0; i < replaceRules.length; i++) {\n    var replaceRule = replaceRules[i];\n    var regexp = new RegExp(replaceRule.substr, 'g');\n    newValue = newValue.replace(regexp, replaceRule.newSubstr);\n  }\n  return newValue;\n};\nvar mergeTokens = function(tokens, start, end) {\n  var newToken = {};\n  newToken.value = '';\n  newToken.type = tokens[start].type;\n  for (var j = start; j < end; j++) {\n    newToken.value += tokens[j].value;\n  }\n  return newToken;\n};\nvar mergeLikeTokens = function(tokens) {\n  if (tokens.length <= 1) {\n    return tokens;\n  }\n  var newTokens = [];\n  var lastLikeIndex = 0;\n  for (var i = 1; i < tokens.length; i++) {\n    var lastLikeToken = tokens[lastLikeIndex];\n    var currToken = tokens[i];\n    if (getTokenRule(lastLikeToken) !== getTokenRule(currToken)) {\n      newTokens.push(mergeTokens(tokens, lastLikeIndex, i));\n      lastLikeIndex = i;\n    }\n  }\n  newTokens.push(mergeTokens(tokens, lastLikeIndex, tokens.length));\n  return newTokens;\n};\nvar isRowWhiteSpace = function(row) {\n  var line = cvoxAce.editor.getSession().getLine(row);\n  var whiteSpaceRegexp = /^\\s*$/;\n  return whiteSpaceRegexp.exec(line) !== null;\n};\nvar speakLine = function(row, queue) {\n  var tokens = cvoxAce.editor.getSession().getTokens(row);\n  if (tokens.length === 0 || isRowWhiteSpace(row)) {\n    cvox.Api.playEarcon('EDITABLE_TEXT');\n    return;\n  }\n  tokens = mergeLikeTokens(tokens);\n  var firstToken = tokens[0];\n  tokens = tokens.filter(function(token) {\n    return token !== firstToken;\n  });\n  speakToken_(firstToken, queue);\n  tokens.forEach(speakTokenQueue);\n};\nvar speakTokenFlush = function(token) {\n  speakToken_(token, 0);\n};\nvar speakTokenQueue = function(token) {\n  speakToken_(token, 1);\n};\nvar getTokenRule = function(token) {\n  if (!token || !token.type) {\n    return;\n  }\n  var split = token.type.split('.');\n  if (split.length === 0) {\n    return;\n  }\n  var type = split[0];\n  var rule = rules[type];\n  if (!rule) {\n    return DEFAULT_RULE;\n  }\n  return rule;\n};\nvar speakToken_ = function(token, queue) {\n  var rule = getTokenRule(token);\n  var value = expand(token.value, REPLACE_LIST);\n  if (rule.replace) {\n    value = expand(value, rule.replace);\n  }\n  cvox.Api.speak(value, queue, rule.prop);\n};\nvar speakChar = function(cursor) {\n  var line = getCurrentLine(cursor);\n  cvox.Api.speak(line[cursor.column], 1);\n};\nvar speakDisplacement = function(lastCursor, currCursor) {\n  var line = getCurrentLine(currCursor);\n  var displace = line.substring(lastCursor.column, currCursor.column);\n  displace = displace.replace(/ /g, ' space ');\n  cvox.Api.speak(displace);\n};\nvar speakCharOrWordOrLine = function(lastCursor, currCursor) {\n  if (Math.abs(lastCursor.column - currCursor.column) !== 1) {\n    var currLineLength = getCurrentLine(currCursor).length;\n    if (currCursor.column === 0 || currCursor.column === currLineLength) {\n      speakLine(currCursor.row, 0);\n      return;\n    }\n    if (isWord(currCursor)) {\n      cvox.Api.stop();\n      speakTokenQueue(getCurrentToken(currCursor));\n      return;\n    }\n  }\n  speakChar(currCursor);\n};\nvar onColumnChange = function(lastCursor, currCursor) {\n  if (!cvoxAce.editor.selection.isEmpty()) {\n    speakDisplacement(lastCursor, currCursor);\n    cvox.Api.speak('selected', 1);\n  }\n  else if (shouldSpeakDisplacement) {\n    speakDisplacement(lastCursor, currCursor);\n  } else {\n    speakCharOrWordOrLine(lastCursor, currCursor);\n  }\n};\nvar onCursorChange = function(evt) {\n  if (changed) {\n    changed = false;\n    return;\n  }\n  var currCursor = cvoxAce.editor.selection.getCursor();\n  if (currCursor.row !== lastCursor.row) {\n    onRowChange(currCursor);\n  } else {\n    onColumnChange(lastCursor, currCursor);\n  }\n  lastCursor = currCursor;\n};\nvar onSelectionChange = function(evt) {\n  if (cvoxAce.editor.selection.isEmpty()) {\n    cvox.Api.speak('unselected');\n  }\n};\nvar onChange = function(delta) {\n  switch (delta.action) {\n  case 'remove':\n    cvox.Api.speak(delta.text, 0, DELETED_PROP);\n    changed = true;\n    break;\n  case 'insert':\n    cvox.Api.speak(delta.text, 0);\n    changed = true;\n    break;\n  }\n};\nvar isNewAnnotation = function(annot) {\n  var row = annot.row;\n  var col = annot.column;\n  return !annotTable[row] || !annotTable[row][col];\n};\nvar populateAnnotations = function(annotations) {\n  annotTable = {};\n  for (var i = 0; i < annotations.length; i++) {\n    var annotation = annotations[i];\n    var row = annotation.row;\n    var col = annotation.column;\n    if (!annotTable[row]) {\n      annotTable[row] = {};\n    }\n    annotTable[row][col] = annotation;\n  }\n};\nvar onAnnotationChange = function(evt) {\n  var annotations = cvoxAce.editor.getSession().getAnnotations();\n  var newAnnotations = annotations.filter(isNewAnnotation);\n  if (newAnnotations.length > 0) {\n    cvox.Api.playEarcon(ERROR_EARCON);\n  }\n  populateAnnotations(annotations);\n};\nvar speakAnnot = function(annot) {\n  var annotText = annot.type + ' ' + annot.text + ' on ' +\n      rowColToString(annot.row, annot.column);\n  annotText = annotText.replace(';', 'semicolon');\n  cvox.Api.speak(annotText, 1);\n};\nvar speakAnnotsByRow = function(row) {\n  var annots = annotTable[row];\n  for (var col in annots) {\n    speakAnnot(annots[col]);\n  }\n};\nvar rowColToString = function(row, col) {\n  return 'row ' + (row + 1) + ' column ' + (col + 1);\n};\nvar speakCurrRowAndCol = function() {\n  cvox.Api.speak(rowColToString(lastCursor.row, lastCursor.column));\n};\nvar speakAllAnnots = function() {\n  for (var row in annotTable) {\n    speakAnnotsByRow(row);\n  }\n};\nvar speakMode = function() {\n  if (!isVimMode()) {\n    return;\n  }\n  switch (cvoxAce.editor.keyBinding.$data.state) {\n  case INSERT_MODE_STATE:\n    cvox.Api.speak('Insert mode');\n    break;\n  case COMMAND_MODE_STATE:\n    cvox.Api.speak('Command mode');\n    break;\n  }\n};\nvar toggleSpeakRowLocation = function() {\n  shouldSpeakRowLocation = !shouldSpeakRowLocation;\n  if (shouldSpeakRowLocation) {\n    cvox.Api.speak('Speak location on row change enabled.');\n  } else {\n    cvox.Api.speak('Speak location on row change disabled.');\n  }\n};\nvar toggleSpeakDisplacement = function() {\n  shouldSpeakDisplacement = !shouldSpeakDisplacement;\n  if (shouldSpeakDisplacement) {\n    cvox.Api.speak('Speak displacement on column changes.');\n  } else {\n    cvox.Api.speak('Speak current character or word on column changes.');\n  }\n};\nvar onKeyDown = function(evt) {\n  if (evt.ctrlKey && evt.shiftKey) {\n    var shortcut = keyCodeToShortcutMap[evt.keyCode];\n    if (shortcut) {\n      shortcut.func();\n    }\n  }\n};\nvar onChangeStatus = function(evt, editor) {\n  if (!isVimMode()) {\n    return;\n  }\n  var state = editor.keyBinding.$data.state;\n  if (state === vimState) {\n    return;\n  }\n  switch (state) {\n  case INSERT_MODE_STATE:\n    cvox.Api.playEarcon(MODE_SWITCH_EARCON);\n    cvox.Api.setKeyEcho(true);\n    break;\n  case COMMAND_MODE_STATE:\n    cvox.Api.playEarcon(MODE_SWITCH_EARCON);\n    cvox.Api.setKeyEcho(false);\n    break;\n  }\n  vimState = state;\n};\nvar contextMenuHandler = function(evt) {\n  var cmd = evt.detail['customCommand'];\n  var shortcut = cmdToShortcutMap[cmd];\n  if (shortcut) {\n    shortcut.func();\n    cvoxAce.editor.focus();\n  }\n};\nvar initContextMenu = function() {\n  var ACTIONS = SHORTCUTS.map(function(shortcut) {\n    return {\n      desc: shortcut.desc + getKeyShortcutString(shortcut.keyCode),\n      cmd: shortcut.cmd\n    };\n  });\n  var body = document.querySelector('body');\n  body.setAttribute('contextMenuActions', JSON.stringify(ACTIONS));\n  body.addEventListener('ATCustomEvent', contextMenuHandler, true);\n};\nvar onFindSearchbox = function(evt) {\n  if (evt.match) {\n    speakLine(lastCursor.row, 0);\n  } else {\n    cvox.Api.playEarcon(NO_MATCH_EARCON);\n  }\n};\nvar focus = function() {\n  cvoxAce.editor.focus();\n};\nvar SHORTCUTS = [\n  {\n    keyCode: 49,\n    func: function() {\n      speakAnnotsByRow(lastCursor.row);\n    },\n    cmd: Command.SPEAK_ANNOT,\n    desc: 'Speak annotations on line'\n  },\n  {\n    keyCode: 50,\n    func: speakAllAnnots,\n    cmd: Command.SPEAK_ALL_ANNOTS,\n    desc: 'Speak all annotations'\n  },\n  {\n    keyCode: 51,\n    func: speakMode,\n    cmd: Command.SPEAK_MODE,\n    desc: 'Speak Vim mode'\n  },\n  {\n    keyCode: 52,\n    func: toggleSpeakRowLocation,\n    cmd: Command.TOGGLE_LOCATION,\n    desc: 'Toggle speak row location'\n  },\n  {\n    keyCode: 53,\n    func: speakCurrRowAndCol,\n    cmd: Command.SPEAK_ROW_COL,\n    desc: 'Speak row and column'\n  },\n  {\n    keyCode: 54,\n    func: toggleSpeakDisplacement,\n    cmd: Command.TOGGLE_DISPLACEMENT,\n    desc: 'Toggle speak displacement'\n  },\n  {\n    keyCode: 55,\n    func: focus,\n    cmd: Command.FOCUS_TEXT,\n    desc: 'Focus text'\n  }\n];\nvar onFocus = function(_, editor) {\n  cvoxAce.editor = editor;\n  editor.getSession().selection.on('changeCursor', onCursorChange);\n  editor.getSession().selection.on('changeSelection', onSelectionChange);\n  editor.getSession().on('change', onChange);\n  editor.getSession().on('changeAnnotation', onAnnotationChange);\n  editor.on('changeStatus', onChangeStatus);\n  editor.on('findSearchBox', onFindSearchbox);\n  editor.container.addEventListener('keydown', onKeyDown);\n\n  lastCursor = editor.selection.getCursor();\n};\nvar init = function(editor) {\n  onFocus(null, editor);\n  SHORTCUTS.forEach(function(shortcut) {\n    keyCodeToShortcutMap[shortcut.keyCode] = shortcut;\n    cmdToShortcutMap[shortcut.cmd] = shortcut;\n  });\n\n  editor.on('focus', onFocus);\n  if (isVimMode()) {\n    cvox.Api.setKeyEcho(false);\n  }\n  initContextMenu();\n};\nfunction cvoxApiExists() {\n  return (typeof(cvox) !== 'undefined') && cvox && cvox.Api;\n}\nvar tries = 0;\nvar MAX_TRIES = 15;\nfunction watchForCvoxLoad(editor) {\n  if (cvoxApiExists()) {\n    init(editor);\n  } else {\n    tries++;\n    if (tries >= MAX_TRIES) {\n      return;\n    }\n    window.setTimeout(watchForCvoxLoad, 500, editor);\n  }\n}\n\nvar Editor = require('../editor').Editor;\nrequire('../config').defineOptions(Editor.prototype, 'editor', {\n  enableChromevoxEnhancements: {\n    set: function(val) {\n      if (val) {\n        watchForCvoxLoad(this);\n      }\n    },\n    value: true // turn it on by default or check for window.cvox\n  }\n});\n\n});\n                (function() {\n                    ace.require([\"ace/ext/chromevox\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-noconflict/ext-elastic_tabstops_lite.js",
    "content": "ace.define(\"ace/ext/elastic_tabstops_lite\",[\"require\",\"exports\",\"module\",\"ace/editor\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nvar ElasticTabstopsLite = function(editor) {\n    this.$editor = editor;\n    var self = this;\n    var changedRows = [];\n    var recordChanges = false;\n    this.onAfterExec = function() {\n        recordChanges = false;\n        self.processRows(changedRows);\n        changedRows = [];\n    };\n    this.onExec = function() {\n        recordChanges = true;\n    };\n    this.onChange = function(delta) {\n        if (recordChanges) {\n            if (changedRows.indexOf(delta.start.row) == -1)\n                changedRows.push(delta.start.row);\n            if (delta.end.row != delta.start.row)\n                changedRows.push(delta.end.row);\n        }\n    };\n};\n\n(function() {\n    this.processRows = function(rows) {\n        this.$inChange = true;\n        var checkedRows = [];\n\n        for (var r = 0, rowCount = rows.length; r < rowCount; r++) {\n            var row = rows[r];\n\n            if (checkedRows.indexOf(row) > -1)\n                continue;\n\n            var cellWidthObj = this.$findCellWidthsForBlock(row);\n            var cellWidths = this.$setBlockCellWidthsToMax(cellWidthObj.cellWidths);\n            var rowIndex = cellWidthObj.firstRow;\n\n            for (var w = 0, l = cellWidths.length; w < l; w++) {\n                var widths = cellWidths[w];\n                checkedRows.push(rowIndex);\n                this.$adjustRow(rowIndex, widths);\n                rowIndex++;\n            }\n        }\n        this.$inChange = false;\n    };\n\n    this.$findCellWidthsForBlock = function(row) {\n        var cellWidths = [], widths;\n        var rowIter = row;\n        while (rowIter >= 0) {\n            widths = this.$cellWidthsForRow(rowIter);\n            if (widths.length == 0)\n                break;\n\n            cellWidths.unshift(widths);\n            rowIter--;\n        }\n        var firstRow = rowIter + 1;\n        rowIter = row;\n        var numRows = this.$editor.session.getLength();\n\n        while (rowIter < numRows - 1) {\n            rowIter++;\n\n            widths = this.$cellWidthsForRow(rowIter);\n            if (widths.length == 0)\n                break;\n\n            cellWidths.push(widths);\n        }\n\n        return { cellWidths: cellWidths, firstRow: firstRow };\n    };\n\n    this.$cellWidthsForRow = function(row) {\n        var selectionColumns = this.$selectionColumnsForRow(row);\n\n        var tabs = [-1].concat(this.$tabsForRow(row));\n        var widths = tabs.map(function(el) { return 0; } ).slice(1);\n        var line = this.$editor.session.getLine(row);\n\n        for (var i = 0, len = tabs.length - 1; i < len; i++) {\n            var leftEdge = tabs[i]+1;\n            var rightEdge = tabs[i+1];\n\n            var rightmostSelection = this.$rightmostSelectionInCell(selectionColumns, rightEdge);\n            var cell = line.substring(leftEdge, rightEdge);\n            widths[i] = Math.max(cell.replace(/\\s+$/g,'').length, rightmostSelection - leftEdge);\n        }\n\n        return widths;\n    };\n\n    this.$selectionColumnsForRow = function(row) {\n        var selections = [], cursor = this.$editor.getCursorPosition();\n        if (this.$editor.session.getSelection().isEmpty()) {\n            if (row == cursor.row)\n                selections.push(cursor.column);\n        }\n\n        return selections;\n    };\n\n    this.$setBlockCellWidthsToMax = function(cellWidths) {\n        var startingNewBlock = true, blockStartRow, blockEndRow, maxWidth;\n        var columnInfo = this.$izip_longest(cellWidths);\n\n        for (var c = 0, l = columnInfo.length; c < l; c++) {\n            var column = columnInfo[c];\n            if (!column.push) {\n                console.error(column);\n                continue;\n            }\n            column.push(NaN);\n\n            for (var r = 0, s = column.length; r < s; r++) {\n                var width = column[r];\n                if (startingNewBlock) {\n                    blockStartRow = r;\n                    maxWidth = 0;\n                    startingNewBlock = false;\n                }\n                if (isNaN(width)) {\n                    blockEndRow = r;\n\n                    for (var j = blockStartRow; j < blockEndRow; j++) {\n                        cellWidths[j][c] = maxWidth;\n                    }\n                    startingNewBlock = true;\n                }\n\n                maxWidth = Math.max(maxWidth, width);\n            }\n        }\n\n        return cellWidths;\n    };\n\n    this.$rightmostSelectionInCell = function(selectionColumns, cellRightEdge) {\n        var rightmost = 0;\n\n        if (selectionColumns.length) {\n            var lengths = [];\n            for (var s = 0, length = selectionColumns.length; s < length; s++) {\n                if (selectionColumns[s] <= cellRightEdge)\n                    lengths.push(s);\n                else\n                    lengths.push(0);\n            }\n            rightmost = Math.max.apply(Math, lengths);\n        }\n\n        return rightmost;\n    };\n\n    this.$tabsForRow = function(row) {\n        var rowTabs = [], line = this.$editor.session.getLine(row),\n            re = /\\t/g, match;\n\n        while ((match = re.exec(line)) != null) {\n            rowTabs.push(match.index);\n        }\n\n        return rowTabs;\n    };\n\n    this.$adjustRow = function(row, widths) {\n        var rowTabs = this.$tabsForRow(row);\n\n        if (rowTabs.length == 0)\n            return;\n\n        var bias = 0, location = -1;\n        var expandedSet = this.$izip(widths, rowTabs);\n\n        for (var i = 0, l = expandedSet.length; i < l; i++) {\n            var w = expandedSet[i][0], it = expandedSet[i][1];\n            location += 1 + w;\n            it += bias;\n            var difference = location - it;\n\n            if (difference == 0)\n                continue;\n\n            var partialLine = this.$editor.session.getLine(row).substr(0, it );\n            var strippedPartialLine = partialLine.replace(/\\s*$/g, \"\");\n            var ispaces = partialLine.length - strippedPartialLine.length;\n\n            if (difference > 0) {\n                this.$editor.session.getDocument().insertInLine({row: row, column: it + 1}, Array(difference + 1).join(\" \") + \"\\t\");\n                this.$editor.session.getDocument().removeInLine(row, it, it + 1);\n\n                bias += difference;\n            }\n\n            if (difference < 0 && ispaces >= -difference) {\n                this.$editor.session.getDocument().removeInLine(row, it + difference, it);\n                bias += difference;\n            }\n        }\n    };\n    this.$izip_longest = function(iterables) {\n        if (!iterables[0])\n            return [];\n        var longest = iterables[0].length;\n        var iterablesLength = iterables.length;\n\n        for (var i = 1; i < iterablesLength; i++) {\n            var iLength = iterables[i].length;\n            if (iLength > longest)\n                longest = iLength;\n        }\n\n        var expandedSet = [];\n\n        for (var l = 0; l < longest; l++) {\n            var set = [];\n            for (var i = 0; i < iterablesLength; i++) {\n                if (iterables[i][l] === \"\")\n                    set.push(NaN);\n                else\n                    set.push(iterables[i][l]);\n            }\n\n            expandedSet.push(set);\n        }\n\n\n        return expandedSet;\n    };\n    this.$izip = function(widths, tabs) {\n        var size = widths.length >= tabs.length ? tabs.length : widths.length;\n\n        var expandedSet = [];\n        for (var i = 0; i < size; i++) {\n            var set = [ widths[i], tabs[i] ];\n            expandedSet.push(set);\n        }\n        return expandedSet;\n    };\n\n}).call(ElasticTabstopsLite.prototype);\n\nexports.ElasticTabstopsLite = ElasticTabstopsLite;\n\nvar Editor = require(\"../editor\").Editor;\nrequire(\"../config\").defineOptions(Editor.prototype, \"editor\", {\n    useElasticTabstops: {\n        set: function(val) {\n            if (val) {\n                if (!this.elasticTabstops)\n                    this.elasticTabstops = new ElasticTabstopsLite(this);\n                this.commands.on(\"afterExec\", this.elasticTabstops.onAfterExec);\n                this.commands.on(\"exec\", this.elasticTabstops.onExec);\n                this.on(\"change\", this.elasticTabstops.onChange);\n            } else if (this.elasticTabstops) {\n                this.commands.removeListener(\"afterExec\", this.elasticTabstops.onAfterExec);\n                this.commands.removeListener(\"exec\", this.elasticTabstops.onExec);\n                this.removeListener(\"change\", this.elasticTabstops.onChange);\n            }\n        }\n    }\n});\n\n});\n                (function() {\n                    ace.require([\"ace/ext/elastic_tabstops_lite\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-noconflict/ext-emmet.js",
    "content": "ace.define(\"ace/snippets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/lib/lang\",\"ace/range\",\"ace/anchor\",\"ace/keyboard/hash_handler\",\"ace/tokenizer\",\"ace/lib/dom\",\"ace/editor\"], function(require, exports, module) {\n\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar lang = require(\"./lib/lang\");\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\nvar HashHandler = require(\"./keyboard/hash_handler\").HashHandler;\nvar Tokenizer = require(\"./tokenizer\").Tokenizer;\nvar comparePoints = Range.comparePoints;\n\nvar SnippetManager = function() {\n    this.snippetMap = {};\n    this.snippetNameMap = {};\n};\n\n(function() {\n    oop.implement(this, EventEmitter);\n    \n    this.getTokenizer = function() {\n        function TabstopToken(str, _, stack) {\n            str = str.substr(1);\n            if (/^\\d+$/.test(str) && !stack.inFormatString)\n                return [{tabstopId: parseInt(str, 10)}];\n            return [{text: str}];\n        }\n        function escape(ch) {\n            return \"(?:[^\\\\\\\\\" + ch + \"]|\\\\\\\\.)\";\n        }\n        SnippetManager.$tokenizer = new Tokenizer({\n            start: [\n                {regex: /:/, onMatch: function(val, state, stack) {\n                    if (stack.length && stack[0].expectIf) {\n                        stack[0].expectIf = false;\n                        stack[0].elseBranch = stack[0];\n                        return [stack[0]];\n                    }\n                    return \":\";\n                }},\n                {regex: /\\\\./, onMatch: function(val, state, stack) {\n                    var ch = val[1];\n                    if (ch == \"}\" && stack.length) {\n                        val = ch;\n                    }else if (\"`$\\\\\".indexOf(ch) != -1) {\n                        val = ch;\n                    } else if (stack.inFormatString) {\n                        if (ch == \"n\")\n                            val = \"\\n\";\n                        else if (ch == \"t\")\n                            val = \"\\n\";\n                        else if (\"ulULE\".indexOf(ch) != -1) {\n                            val = {changeCase: ch, local: ch > \"a\"};\n                        }\n                    }\n\n                    return [val];\n                }},\n                {regex: /}/, onMatch: function(val, state, stack) {\n                    return [stack.length ? stack.shift() : val];\n                }},\n                {regex: /\\$(?:\\d+|\\w+)/, onMatch: TabstopToken},\n                {regex: /\\$\\{[\\dA-Z_a-z]+/, onMatch: function(str, state, stack) {\n                    var t = TabstopToken(str.substr(1), state, stack);\n                    stack.unshift(t[0]);\n                    return t;\n                }, next: \"snippetVar\"},\n                {regex: /\\n/, token: \"newline\", merge: false}\n            ],\n            snippetVar: [\n                {regex: \"\\\\|\" + escape(\"\\\\|\") + \"*\\\\|\", onMatch: function(val, state, stack) {\n                    stack[0].choices = val.slice(1, -1).split(\",\");\n                }, next: \"start\"},\n                {regex: \"/(\" + escape(\"/\") + \"+)/(?:(\" + escape(\"/\") + \"*)/)(\\\\w*):?\",\n                 onMatch: function(val, state, stack) {\n                    var ts = stack[0];\n                    ts.fmtString = val;\n\n                    val = this.splitRegex.exec(val);\n                    ts.guard = val[1];\n                    ts.fmt = val[2];\n                    ts.flag = val[3];\n                    return \"\";\n                }, next: \"start\"},\n                {regex: \"`\" + escape(\"`\") + \"*`\", onMatch: function(val, state, stack) {\n                    stack[0].code = val.splice(1, -1);\n                    return \"\";\n                }, next: \"start\"},\n                {regex: \"\\\\?\", onMatch: function(val, state, stack) {\n                    if (stack[0])\n                        stack[0].expectIf = true;\n                }, next: \"start\"},\n                {regex: \"([^:}\\\\\\\\]|\\\\\\\\.)*:?\", token: \"\", next: \"start\"}\n            ],\n            formatString: [\n                {regex: \"/(\" + escape(\"/\") + \"+)/\", token: \"regex\"},\n                {regex: \"\", onMatch: function(val, state, stack) {\n                    stack.inFormatString = true;\n                }, next: \"start\"}\n            ]\n        });\n        SnippetManager.prototype.getTokenizer = function() {\n            return SnippetManager.$tokenizer;\n        };\n        return SnippetManager.$tokenizer;\n    };\n\n    this.tokenizeTmSnippet = function(str, startState) {\n        return this.getTokenizer().getLineTokens(str, startState).tokens.map(function(x) {\n            return x.value || x;\n        });\n    };\n\n    this.$getDefaultValue = function(editor, name) {\n        if (/^[A-Z]\\d+$/.test(name)) {\n            var i = name.substr(1);\n            return (this.variables[name[0] + \"__\"] || {})[i];\n        }\n        if (/^\\d+$/.test(name)) {\n            return (this.variables.__ || {})[name];\n        }\n        name = name.replace(/^TM_/, \"\");\n\n        if (!editor)\n            return;\n        var s = editor.session;\n        switch(name) {\n            case \"CURRENT_WORD\":\n                var r = s.getWordRange();\n            case \"SELECTION\":\n            case \"SELECTED_TEXT\":\n                return s.getTextRange(r);\n            case \"CURRENT_LINE\":\n                return s.getLine(editor.getCursorPosition().row);\n            case \"PREV_LINE\": // not possible in textmate\n                return s.getLine(editor.getCursorPosition().row - 1);\n            case \"LINE_INDEX\":\n                return editor.getCursorPosition().column;\n            case \"LINE_NUMBER\":\n                return editor.getCursorPosition().row + 1;\n            case \"SOFT_TABS\":\n                return s.getUseSoftTabs() ? \"YES\" : \"NO\";\n            case \"TAB_SIZE\":\n                return s.getTabSize();\n            case \"FILENAME\":\n            case \"FILEPATH\":\n                return \"\";\n            case \"FULLNAME\":\n                return \"Ace\";\n        }\n    };\n    this.variables = {};\n    this.getVariableValue = function(editor, varName) {\n        if (this.variables.hasOwnProperty(varName))\n            return this.variables[varName](editor, varName) || \"\";\n        return this.$getDefaultValue(editor, varName) || \"\";\n    };\n    this.tmStrFormat = function(str, ch, editor) {\n        var flag = ch.flag || \"\";\n        var re = ch.guard;\n        re = new RegExp(re, flag.replace(/[^gi]/, \"\"));\n        var fmtTokens = this.tokenizeTmSnippet(ch.fmt, \"formatString\");\n        var _self = this;\n        var formatted = str.replace(re, function() {\n            _self.variables.__ = arguments;\n            var fmtParts = _self.resolveVariables(fmtTokens, editor);\n            var gChangeCase = \"E\";\n            for (var i  = 0; i < fmtParts.length; i++) {\n                var ch = fmtParts[i];\n                if (typeof ch == \"object\") {\n                    fmtParts[i] = \"\";\n                    if (ch.changeCase && ch.local) {\n                        var next = fmtParts[i + 1];\n                        if (next && typeof next == \"string\") {\n                            if (ch.changeCase == \"u\")\n                                fmtParts[i] = next[0].toUpperCase();\n                            else\n                                fmtParts[i] = next[0].toLowerCase();\n                            fmtParts[i + 1] = next.substr(1);\n                        }\n                    } else if (ch.changeCase) {\n                        gChangeCase = ch.changeCase;\n                    }\n                } else if (gChangeCase == \"U\") {\n                    fmtParts[i] = ch.toUpperCase();\n                } else if (gChangeCase == \"L\") {\n                    fmtParts[i] = ch.toLowerCase();\n                }\n            }\n            return fmtParts.join(\"\");\n        });\n        this.variables.__ = null;\n        return formatted;\n    };\n\n    this.resolveVariables = function(snippet, editor) {\n        var result = [];\n        for (var i = 0; i < snippet.length; i++) {\n            var ch = snippet[i];\n            if (typeof ch == \"string\") {\n                result.push(ch);\n            } else if (typeof ch != \"object\") {\n                continue;\n            } else if (ch.skip) {\n                gotoNext(ch);\n            } else if (ch.processed < i) {\n                continue;\n            } else if (ch.text) {\n                var value = this.getVariableValue(editor, ch.text);\n                if (value && ch.fmtString)\n                    value = this.tmStrFormat(value, ch);\n                ch.processed = i;\n                if (ch.expectIf == null) {\n                    if (value) {\n                        result.push(value);\n                        gotoNext(ch);\n                    }\n                } else {\n                    if (value) {\n                        ch.skip = ch.elseBranch;\n                    } else\n                        gotoNext(ch);\n                }\n            } else if (ch.tabstopId != null) {\n                result.push(ch);\n            } else if (ch.changeCase != null) {\n                result.push(ch);\n            }\n        }\n        function gotoNext(ch) {\n            var i1 = snippet.indexOf(ch, i + 1);\n            if (i1 != -1)\n                i = i1;\n        }\n        return result;\n    };\n\n    this.insertSnippetForSelection = function(editor, snippetText) {\n        var cursor = editor.getCursorPosition();\n        var line = editor.session.getLine(cursor.row);\n        var tabString = editor.session.getTabString();\n        var indentString = line.match(/^\\s*/)[0];\n        \n        if (cursor.column < indentString.length)\n            indentString = indentString.slice(0, cursor.column);\n\n        snippetText = snippetText.replace(/\\r/g, \"\");\n        var tokens = this.tokenizeTmSnippet(snippetText);\n        tokens = this.resolveVariables(tokens, editor);\n        tokens = tokens.map(function(x) {\n            if (x == \"\\n\")\n                return x + indentString;\n            if (typeof x == \"string\")\n                return x.replace(/\\t/g, tabString);\n            return x;\n        });\n        var tabstops = [];\n        tokens.forEach(function(p, i) {\n            if (typeof p != \"object\")\n                return;\n            var id = p.tabstopId;\n            var ts = tabstops[id];\n            if (!ts) {\n                ts = tabstops[id] = [];\n                ts.index = id;\n                ts.value = \"\";\n            }\n            if (ts.indexOf(p) !== -1)\n                return;\n            ts.push(p);\n            var i1 = tokens.indexOf(p, i + 1);\n            if (i1 === -1)\n                return;\n\n            var value = tokens.slice(i + 1, i1);\n            var isNested = value.some(function(t) {return typeof t === \"object\"});          \n            if (isNested && !ts.value) {\n                ts.value = value;\n            } else if (value.length && (!ts.value || typeof ts.value !== \"string\")) {\n                ts.value = value.join(\"\");\n            }\n        });\n        tabstops.forEach(function(ts) {ts.length = 0});\n        var expanding = {};\n        function copyValue(val) {\n            var copy = [];\n            for (var i = 0; i < val.length; i++) {\n                var p = val[i];\n                if (typeof p == \"object\") {\n                    if (expanding[p.tabstopId])\n                        continue;\n                    var j = val.lastIndexOf(p, i - 1);\n                    p = copy[j] || {tabstopId: p.tabstopId};\n                }\n                copy[i] = p;\n            }\n            return copy;\n        }\n        for (var i = 0; i < tokens.length; i++) {\n            var p = tokens[i];\n            if (typeof p != \"object\")\n                continue;\n            var id = p.tabstopId;\n            var i1 = tokens.indexOf(p, i + 1);\n            if (expanding[id]) {\n                if (expanding[id] === p)\n                    expanding[id] = null;\n                continue;\n            }\n            \n            var ts = tabstops[id];\n            var arg = typeof ts.value == \"string\" ? [ts.value] : copyValue(ts.value);\n            arg.unshift(i + 1, Math.max(0, i1 - i));\n            arg.push(p);\n            expanding[id] = p;\n            tokens.splice.apply(tokens, arg);\n\n            if (ts.indexOf(p) === -1)\n                ts.push(p);\n        }\n        var row = 0, column = 0;\n        var text = \"\";\n        tokens.forEach(function(t) {\n            if (typeof t === \"string\") {\n                var lines = t.split(\"\\n\");\n                if (lines.length > 1){\n                    column = lines[lines.length - 1].length;\n                    row += lines.length - 1;\n                } else\n                    column += t.length;\n                text += t;\n            } else {\n                if (!t.start)\n                    t.start = {row: row, column: column};\n                else\n                    t.end = {row: row, column: column};\n            }\n        });\n        var range = editor.getSelectionRange();\n        var end = editor.session.replace(range, text);\n\n        var tabstopManager = new TabstopManager(editor);\n        var selectionId = editor.inVirtualSelectionMode && editor.selection.index;\n        tabstopManager.addTabstops(tabstops, range.start, end, selectionId);\n    };\n    \n    this.insertSnippet = function(editor, snippetText) {\n        var self = this;\n        if (editor.inVirtualSelectionMode)\n            return self.insertSnippetForSelection(editor, snippetText);\n        \n        editor.forEachSelection(function() {\n            self.insertSnippetForSelection(editor, snippetText);\n        }, null, {keepOrder: true});\n        \n        if (editor.tabstopManager)\n            editor.tabstopManager.tabNext();\n    };\n\n    this.$getScope = function(editor) {\n        var scope = editor.session.$mode.$id || \"\";\n        scope = scope.split(\"/\").pop();\n        if (scope === \"html\" || scope === \"php\") {\n            if (scope === \"php\" && !editor.session.$mode.inlinePhp) \n                scope = \"html\";\n            var c = editor.getCursorPosition();\n            var state = editor.session.getState(c.row);\n            if (typeof state === \"object\") {\n                state = state[0];\n            }\n            if (state.substring) {\n                if (state.substring(0, 3) == \"js-\")\n                    scope = \"javascript\";\n                else if (state.substring(0, 4) == \"css-\")\n                    scope = \"css\";\n                else if (state.substring(0, 4) == \"php-\")\n                    scope = \"php\";\n            }\n        }\n        \n        return scope;\n    };\n\n    this.getActiveScopes = function(editor) {\n        var scope = this.$getScope(editor);\n        var scopes = [scope];\n        var snippetMap = this.snippetMap;\n        if (snippetMap[scope] && snippetMap[scope].includeScopes) {\n            scopes.push.apply(scopes, snippetMap[scope].includeScopes);\n        }\n        scopes.push(\"_\");\n        return scopes;\n    };\n\n    this.expandWithTab = function(editor, options) {\n        var self = this;\n        var result = editor.forEachSelection(function() {\n            return self.expandSnippetForSelection(editor, options);\n        }, null, {keepOrder: true});\n        if (result && editor.tabstopManager)\n            editor.tabstopManager.tabNext();\n        return result;\n    };\n    \n    this.expandSnippetForSelection = function(editor, options) {\n        var cursor = editor.getCursorPosition();\n        var line = editor.session.getLine(cursor.row);\n        var before = line.substring(0, cursor.column);\n        var after = line.substr(cursor.column);\n\n        var snippetMap = this.snippetMap;\n        var snippet;\n        this.getActiveScopes(editor).some(function(scope) {\n            var snippets = snippetMap[scope];\n            if (snippets)\n                snippet = this.findMatchingSnippet(snippets, before, after);\n            return !!snippet;\n        }, this);\n        if (!snippet)\n            return false;\n        if (options && options.dryRun)\n            return true;\n        editor.session.doc.removeInLine(cursor.row,\n            cursor.column - snippet.replaceBefore.length,\n            cursor.column + snippet.replaceAfter.length\n        );\n\n        this.variables.M__ = snippet.matchBefore;\n        this.variables.T__ = snippet.matchAfter;\n        this.insertSnippetForSelection(editor, snippet.content);\n\n        this.variables.M__ = this.variables.T__ = null;\n        return true;\n    };\n\n    this.findMatchingSnippet = function(snippetList, before, after) {\n        for (var i = snippetList.length; i--;) {\n            var s = snippetList[i];\n            if (s.startRe && !s.startRe.test(before))\n                continue;\n            if (s.endRe && !s.endRe.test(after))\n                continue;\n            if (!s.startRe && !s.endRe)\n                continue;\n\n            s.matchBefore = s.startRe ? s.startRe.exec(before) : [\"\"];\n            s.matchAfter = s.endRe ? s.endRe.exec(after) : [\"\"];\n            s.replaceBefore = s.triggerRe ? s.triggerRe.exec(before)[0] : \"\";\n            s.replaceAfter = s.endTriggerRe ? s.endTriggerRe.exec(after)[0] : \"\";\n            return s;\n        }\n    };\n\n    this.snippetMap = {};\n    this.snippetNameMap = {};\n    this.register = function(snippets, scope) {\n        var snippetMap = this.snippetMap;\n        var snippetNameMap = this.snippetNameMap;\n        var self = this;\n        \n        if (!snippets) \n            snippets = [];\n        \n        function wrapRegexp(src) {\n            if (src && !/^\\^?\\(.*\\)\\$?$|^\\\\b$/.test(src))\n                src = \"(?:\" + src + \")\";\n\n            return src || \"\";\n        }\n        function guardedRegexp(re, guard, opening) {\n            re = wrapRegexp(re);\n            guard = wrapRegexp(guard);\n            if (opening) {\n                re = guard + re;\n                if (re && re[re.length - 1] != \"$\")\n                    re = re + \"$\";\n            } else {\n                re = re + guard;\n                if (re && re[0] != \"^\")\n                    re = \"^\" + re;\n            }\n            return new RegExp(re);\n        }\n\n        function addSnippet(s) {\n            if (!s.scope)\n                s.scope = scope || \"_\";\n            scope = s.scope;\n            if (!snippetMap[scope]) {\n                snippetMap[scope] = [];\n                snippetNameMap[scope] = {};\n            }\n\n            var map = snippetNameMap[scope];\n            if (s.name) {\n                var old = map[s.name];\n                if (old)\n                    self.unregister(old);\n                map[s.name] = s;\n            }\n            snippetMap[scope].push(s);\n\n            if (s.tabTrigger && !s.trigger) {\n                if (!s.guard && /^\\w/.test(s.tabTrigger))\n                    s.guard = \"\\\\b\";\n                s.trigger = lang.escapeRegExp(s.tabTrigger);\n            }\n            \n            if (!s.trigger && !s.guard && !s.endTrigger && !s.endGuard)\n                return;\n            \n            s.startRe = guardedRegexp(s.trigger, s.guard, true);\n            s.triggerRe = new RegExp(s.trigger, \"\", true);\n\n            s.endRe = guardedRegexp(s.endTrigger, s.endGuard, true);\n            s.endTriggerRe = new RegExp(s.endTrigger, \"\", true);\n        }\n\n        if (snippets && snippets.content)\n            addSnippet(snippets);\n        else if (Array.isArray(snippets))\n            snippets.forEach(addSnippet);\n        \n        this._signal(\"registerSnippets\", {scope: scope});\n    };\n    this.unregister = function(snippets, scope) {\n        var snippetMap = this.snippetMap;\n        var snippetNameMap = this.snippetNameMap;\n\n        function removeSnippet(s) {\n            var nameMap = snippetNameMap[s.scope||scope];\n            if (nameMap && nameMap[s.name]) {\n                delete nameMap[s.name];\n                var map = snippetMap[s.scope||scope];\n                var i = map && map.indexOf(s);\n                if (i >= 0)\n                    map.splice(i, 1);\n            }\n        }\n        if (snippets.content)\n            removeSnippet(snippets);\n        else if (Array.isArray(snippets))\n            snippets.forEach(removeSnippet);\n    };\n    this.parseSnippetFile = function(str) {\n        str = str.replace(/\\r/g, \"\");\n        var list = [], snippet = {};\n        var re = /^#.*|^({[\\s\\S]*})\\s*$|^(\\S+) (.*)$|^((?:\\n*\\t.*)+)/gm;\n        var m;\n        while (m = re.exec(str)) {\n            if (m[1]) {\n                try {\n                    snippet = JSON.parse(m[1]);\n                    list.push(snippet);\n                } catch (e) {}\n            } if (m[4]) {\n                snippet.content = m[4].replace(/^\\t/gm, \"\");\n                list.push(snippet);\n                snippet = {};\n            } else {\n                var key = m[2], val = m[3];\n                if (key == \"regex\") {\n                    var guardRe = /\\/((?:[^\\/\\\\]|\\\\.)*)|$/g;\n                    snippet.guard = guardRe.exec(val)[1];\n                    snippet.trigger = guardRe.exec(val)[1];\n                    snippet.endTrigger = guardRe.exec(val)[1];\n                    snippet.endGuard = guardRe.exec(val)[1];\n                } else if (key == \"snippet\") {\n                    snippet.tabTrigger = val.match(/^\\S*/)[0];\n                    if (!snippet.name)\n                        snippet.name = val;\n                } else {\n                    snippet[key] = val;\n                }\n            }\n        }\n        return list;\n    };\n    this.getSnippetByName = function(name, editor) {\n        var snippetMap = this.snippetNameMap;\n        var snippet;\n        this.getActiveScopes(editor).some(function(scope) {\n            var snippets = snippetMap[scope];\n            if (snippets)\n                snippet = snippets[name];\n            return !!snippet;\n        }, this);\n        return snippet;\n    };\n\n}).call(SnippetManager.prototype);\n\n\nvar TabstopManager = function(editor) {\n    if (editor.tabstopManager)\n        return editor.tabstopManager;\n    editor.tabstopManager = this;\n    this.$onChange = this.onChange.bind(this);\n    this.$onChangeSelection = lang.delayedCall(this.onChangeSelection.bind(this)).schedule;\n    this.$onChangeSession = this.onChangeSession.bind(this);\n    this.$onAfterExec = this.onAfterExec.bind(this);\n    this.attach(editor);\n};\n(function() {\n    this.attach = function(editor) {\n        this.index = 0;\n        this.ranges = [];\n        this.tabstops = [];\n        this.$openTabstops = null;\n        this.selectedTabstop = null;\n\n        this.editor = editor;\n        this.editor.on(\"change\", this.$onChange);\n        this.editor.on(\"changeSelection\", this.$onChangeSelection);\n        this.editor.on(\"changeSession\", this.$onChangeSession);\n        this.editor.commands.on(\"afterExec\", this.$onAfterExec);\n        this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler);\n    };\n    this.detach = function() {\n        this.tabstops.forEach(this.removeTabstopMarkers, this);\n        this.ranges = null;\n        this.tabstops = null;\n        this.selectedTabstop = null;\n        this.editor.removeListener(\"change\", this.$onChange);\n        this.editor.removeListener(\"changeSelection\", this.$onChangeSelection);\n        this.editor.removeListener(\"changeSession\", this.$onChangeSession);\n        this.editor.commands.removeListener(\"afterExec\", this.$onAfterExec);\n        this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler);\n        this.editor.tabstopManager = null;\n        this.editor = null;\n    };\n\n    this.onChange = function(delta) {\n        var changeRange = delta;\n        var isRemove = delta.action[0] == \"r\";\n        var start = delta.start;\n        var end = delta.end;\n        var startRow = start.row;\n        var endRow = end.row;\n        var lineDif = endRow - startRow;\n        var colDiff = end.column - start.column;\n\n        if (isRemove) {\n            lineDif = -lineDif;\n            colDiff = -colDiff;\n        }\n        if (!this.$inChange && isRemove) {\n            var ts = this.selectedTabstop;\n            var changedOutside = ts && !ts.some(function(r) {\n                return comparePoints(r.start, start) <= 0 && comparePoints(r.end, end) >= 0;\n            });\n            if (changedOutside)\n                return this.detach();\n        }\n        var ranges = this.ranges;\n        for (var i = 0; i < ranges.length; i++) {\n            var r = ranges[i];\n            if (r.end.row < start.row)\n                continue;\n\n            if (isRemove && comparePoints(start, r.start) < 0 && comparePoints(end, r.end) > 0) {\n                this.removeRange(r);\n                i--;\n                continue;\n            }\n\n            if (r.start.row == startRow && r.start.column > start.column)\n                r.start.column += colDiff;\n            if (r.end.row == startRow && r.end.column >= start.column)\n                r.end.column += colDiff;\n            if (r.start.row >= startRow)\n                r.start.row += lineDif;\n            if (r.end.row >= startRow)\n                r.end.row += lineDif;\n\n            if (comparePoints(r.start, r.end) > 0)\n                this.removeRange(r);\n        }\n        if (!ranges.length)\n            this.detach();\n    };\n    this.updateLinkedFields = function() {\n        var ts = this.selectedTabstop;\n        if (!ts || !ts.hasLinkedRanges)\n            return;\n        this.$inChange = true;\n        var session = this.editor.session;\n        var text = session.getTextRange(ts.firstNonLinked);\n        for (var i = ts.length; i--;) {\n            var range = ts[i];\n            if (!range.linked)\n                continue;\n            var fmt = exports.snippetManager.tmStrFormat(text, range.original);\n            session.replace(range, fmt);\n        }\n        this.$inChange = false;\n    };\n    this.onAfterExec = function(e) {\n        if (e.command && !e.command.readOnly)\n            this.updateLinkedFields();\n    };\n    this.onChangeSelection = function() {\n        if (!this.editor)\n            return;\n        var lead = this.editor.selection.lead;\n        var anchor = this.editor.selection.anchor;\n        var isEmpty = this.editor.selection.isEmpty();\n        for (var i = this.ranges.length; i--;) {\n            if (this.ranges[i].linked)\n                continue;\n            var containsLead = this.ranges[i].contains(lead.row, lead.column);\n            var containsAnchor = isEmpty || this.ranges[i].contains(anchor.row, anchor.column);\n            if (containsLead && containsAnchor)\n                return;\n        }\n        this.detach();\n    };\n    this.onChangeSession = function() {\n        this.detach();\n    };\n    this.tabNext = function(dir) {\n        var max = this.tabstops.length;\n        var index = this.index + (dir || 1);\n        index = Math.min(Math.max(index, 1), max);\n        if (index == max)\n            index = 0;\n        this.selectTabstop(index);\n        if (index === 0)\n            this.detach();\n    };\n    this.selectTabstop = function(index) {\n        this.$openTabstops = null;\n        var ts = this.tabstops[this.index];\n        if (ts)\n            this.addTabstopMarkers(ts);\n        this.index = index;\n        ts = this.tabstops[this.index];\n        if (!ts || !ts.length)\n            return;\n        \n        this.selectedTabstop = ts;\n        if (!this.editor.inVirtualSelectionMode) {        \n            var sel = this.editor.multiSelect;\n            sel.toSingleRange(ts.firstNonLinked.clone());\n            for (var i = ts.length; i--;) {\n                if (ts.hasLinkedRanges && ts[i].linked)\n                    continue;\n                sel.addRange(ts[i].clone(), true);\n            }\n            if (sel.ranges[0])\n                sel.addRange(sel.ranges[0].clone());\n        } else {\n            this.editor.selection.setRange(ts.firstNonLinked);\n        }\n        \n        this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler);\n    };\n    this.addTabstops = function(tabstops, start, end) {\n        if (!this.$openTabstops)\n            this.$openTabstops = [];\n        if (!tabstops[0]) {\n            var p = Range.fromPoints(end, end);\n            moveRelative(p.start, start);\n            moveRelative(p.end, start);\n            tabstops[0] = [p];\n            tabstops[0].index = 0;\n        }\n\n        var i = this.index;\n        var arg = [i + 1, 0];\n        var ranges = this.ranges;\n        tabstops.forEach(function(ts, index) {\n            var dest = this.$openTabstops[index] || ts;\n                \n            for (var i = ts.length; i--;) {\n                var p = ts[i];\n                var range = Range.fromPoints(p.start, p.end || p.start);\n                movePoint(range.start, start);\n                movePoint(range.end, start);\n                range.original = p;\n                range.tabstop = dest;\n                ranges.push(range);\n                if (dest != ts)\n                    dest.unshift(range);\n                else\n                    dest[i] = range;\n                if (p.fmtString) {\n                    range.linked = true;\n                    dest.hasLinkedRanges = true;\n                } else if (!dest.firstNonLinked)\n                    dest.firstNonLinked = range;\n            }\n            if (!dest.firstNonLinked)\n                dest.hasLinkedRanges = false;\n            if (dest === ts) {\n                arg.push(dest);\n                this.$openTabstops[index] = dest;\n            }\n            this.addTabstopMarkers(dest);\n        }, this);\n        \n        if (arg.length > 2) {\n            if (this.tabstops.length)\n                arg.push(arg.splice(2, 1)[0]);\n            this.tabstops.splice.apply(this.tabstops, arg);\n        }\n    };\n\n    this.addTabstopMarkers = function(ts) {\n        var session = this.editor.session;\n        ts.forEach(function(range) {\n            if  (!range.markerId)\n                range.markerId = session.addMarker(range, \"ace_snippet-marker\", \"text\");\n        });\n    };\n    this.removeTabstopMarkers = function(ts) {\n        var session = this.editor.session;\n        ts.forEach(function(range) {\n            session.removeMarker(range.markerId);\n            range.markerId = null;\n        });\n    };\n    this.removeRange = function(range) {\n        var i = range.tabstop.indexOf(range);\n        range.tabstop.splice(i, 1);\n        i = this.ranges.indexOf(range);\n        this.ranges.splice(i, 1);\n        this.editor.session.removeMarker(range.markerId);\n        if (!range.tabstop.length) {\n            i = this.tabstops.indexOf(range.tabstop);\n            if (i != -1)\n                this.tabstops.splice(i, 1);\n            if (!this.tabstops.length)\n                this.detach();\n        }\n    };\n\n    this.keyboardHandler = new HashHandler();\n    this.keyboardHandler.bindKeys({\n        \"Tab\": function(ed) {\n            if (exports.snippetManager && exports.snippetManager.expandWithTab(ed)) {\n                return;\n            }\n\n            ed.tabstopManager.tabNext(1);\n        },\n        \"Shift-Tab\": function(ed) {\n            ed.tabstopManager.tabNext(-1);\n        },\n        \"Esc\": function(ed) {\n            ed.tabstopManager.detach();\n        },\n        \"Return\": function(ed) {\n            return false;\n        }\n    });\n}).call(TabstopManager.prototype);\n\n\n\nvar changeTracker = {};\nchangeTracker.onChange = Anchor.prototype.onChange;\nchangeTracker.setPosition = function(row, column) {\n    this.pos.row = row;\n    this.pos.column = column;\n};\nchangeTracker.update = function(pos, delta, $insertRight) {\n    this.$insertRight = $insertRight;\n    this.pos = pos; \n    this.onChange(delta);\n};\n\nvar movePoint = function(point, diff) {\n    if (point.row == 0)\n        point.column += diff.column;\n    point.row += diff.row;\n};\n\nvar moveRelative = function(point, start) {\n    if (point.row == start.row)\n        point.column -= start.column;\n    point.row -= start.row;\n};\n\n\nrequire(\"./lib/dom\").importCssString(\"\\\n.ace_snippet-marker {\\\n    -moz-box-sizing: border-box;\\\n    box-sizing: border-box;\\\n    background: rgba(194, 193, 208, 0.09);\\\n    border: 1px dotted rgba(211, 208, 235, 0.62);\\\n    position: absolute;\\\n}\");\n\nexports.snippetManager = new SnippetManager();\n\n\nvar Editor = require(\"./editor\").Editor;\n(function() {\n    this.insertSnippet = function(content, options) {\n        return exports.snippetManager.insertSnippet(this, content, options);\n    };\n    this.expandSnippet = function(options) {\n        return exports.snippetManager.expandWithTab(this, options);\n    };\n}).call(Editor.prototype);\n\n});\n\nace.define(\"ace/ext/emmet\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\",\"ace/editor\",\"ace/snippets\",\"ace/range\",\"resources\",\"resources\",\"tabStops\",\"resources\",\"utils\",\"actions\",\"ace/config\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\nvar HashHandler = require(\"ace/keyboard/hash_handler\").HashHandler;\nvar Editor = require(\"ace/editor\").Editor;\nvar snippetManager = require(\"ace/snippets\").snippetManager;\nvar Range = require(\"ace/range\").Range;\nvar emmet, emmetPath;\nfunction AceEmmetEditor() {}\n\nAceEmmetEditor.prototype = {\n    setupContext: function(editor) {\n        this.ace = editor;\n        this.indentation = editor.session.getTabString();\n        if (!emmet)\n            emmet = window.emmet;\n        var resources = emmet.resources || emmet.require(\"resources\");\n        resources.setVariable(\"indentation\", this.indentation);\n        this.$syntax = null;\n        this.$syntax = this.getSyntax();\n    },\n    getSelectionRange: function() {\n        var range = this.ace.getSelectionRange();\n        var doc = this.ace.session.doc;\n        return {\n            start: doc.positionToIndex(range.start),\n            end: doc.positionToIndex(range.end)\n        };\n    },\n    createSelection: function(start, end) {\n        var doc = this.ace.session.doc;\n        this.ace.selection.setRange({\n            start: doc.indexToPosition(start),\n            end: doc.indexToPosition(end)\n        });\n    },\n    getCurrentLineRange: function() {\n        var ace = this.ace;\n        var row = ace.getCursorPosition().row;\n        var lineLength = ace.session.getLine(row).length;\n        var index = ace.session.doc.positionToIndex({row: row, column: 0});\n        return {\n            start: index,\n            end: index + lineLength\n        };\n    },\n    getCaretPos: function(){\n        var pos = this.ace.getCursorPosition();\n        return this.ace.session.doc.positionToIndex(pos);\n    },\n    setCaretPos: function(index){\n        var pos = this.ace.session.doc.indexToPosition(index);\n        this.ace.selection.moveToPosition(pos);\n    },\n    getCurrentLine: function() {\n        var row = this.ace.getCursorPosition().row;\n        return this.ace.session.getLine(row);\n    },\n    replaceContent: function(value, start, end, noIndent) {\n        if (end == null)\n            end = start == null ? this.getContent().length : start;\n        if (start == null)\n            start = 0;        \n        \n        var editor = this.ace;\n        var doc = editor.session.doc;\n        var range = Range.fromPoints(doc.indexToPosition(start), doc.indexToPosition(end));\n        editor.session.remove(range);\n        \n        range.end = range.start;\n        \n        value = this.$updateTabstops(value);\n        snippetManager.insertSnippet(editor, value);\n    },\n    getContent: function(){\n        return this.ace.getValue();\n    },\n    getSyntax: function() {\n        if (this.$syntax)\n            return this.$syntax;\n        var syntax = this.ace.session.$modeId.split(\"/\").pop();\n        if (syntax == \"html\" || syntax == \"php\") {\n            var cursor = this.ace.getCursorPosition();\n            var state = this.ace.session.getState(cursor.row);\n            if (typeof state != \"string\")\n                state = state[0];\n            if (state) {\n                state = state.split(\"-\");\n                if (state.length > 1)\n                    syntax = state[0];\n                else if (syntax == \"php\")\n                    syntax = \"html\";\n            }\n        }\n        return syntax;\n    },\n    getProfileName: function() {\n        var resources = emmet.resources || emmet.require(\"resources\");\n        switch (this.getSyntax()) {\n          case \"css\": return \"css\";\n          case \"xml\":\n          case \"xsl\":\n            return \"xml\";\n          case \"html\":\n            var profile = resources.getVariable(\"profile\");\n            if (!profile)\n                profile = this.ace.session.getLines(0,2).join(\"\").search(/<!DOCTYPE[^>]+XHTML/i) != -1 ? \"xhtml\": \"html\";\n            return profile;\n          default:\n            var mode = this.ace.session.$mode;\n            return mode.emmetConfig && mode.emmetConfig.profile || \"xhtml\";\n        }\n    },\n    prompt: function(title) {\n        return prompt(title);\n    },\n    getSelection: function() {\n        return this.ace.session.getTextRange();\n    },\n    getFilePath: function() {\n        return \"\";\n    },\n    $updateTabstops: function(value) {\n        var base = 1000;\n        var zeroBase = 0;\n        var lastZero = null;\n        var ts = emmet.tabStops || emmet.require('tabStops');\n        var resources = emmet.resources || emmet.require(\"resources\");\n        var settings = resources.getVocabulary(\"user\");\n        var tabstopOptions = {\n            tabstop: function(data) {\n                var group = parseInt(data.group, 10);\n                var isZero = group === 0;\n                if (isZero)\n                    group = ++zeroBase;\n                else\n                    group += base;\n\n                var placeholder = data.placeholder;\n                if (placeholder) {\n                    placeholder = ts.processText(placeholder, tabstopOptions);\n                }\n\n                var result = '${' + group + (placeholder ? ':' + placeholder : '') + '}';\n\n                if (isZero) {\n                    lastZero = [data.start, result];\n                }\n\n                return result;\n            },\n            escape: function(ch) {\n                if (ch == '$') return '\\\\$';\n                if (ch == '\\\\') return '\\\\\\\\';\n                return ch;\n            }\n        };\n\n        value = ts.processText(value, tabstopOptions);\n\n        if (settings.variables['insert_final_tabstop'] && !/\\$\\{0\\}$/.test(value)) {\n            value += '${0}';\n        } else if (lastZero) {\n            var common = emmet.utils ? emmet.utils.common : emmet.require('utils');\n            value = common.replaceSubstring(value, '${0}', lastZero[0], lastZero[1]);\n        }\n        \n        return value;\n    }\n};\n\n\nvar keymap = {\n    expand_abbreviation: {\"mac\": \"ctrl+alt+e\", \"win\": \"alt+e\"},\n    match_pair_outward: {\"mac\": \"ctrl+d\", \"win\": \"ctrl+,\"},\n    match_pair_inward: {\"mac\": \"ctrl+j\", \"win\": \"ctrl+shift+0\"},\n    matching_pair: {\"mac\": \"ctrl+alt+j\", \"win\": \"alt+j\"},\n    next_edit_point: \"alt+right\",\n    prev_edit_point: \"alt+left\",\n    toggle_comment: {\"mac\": \"command+/\", \"win\": \"ctrl+/\"},\n    split_join_tag: {\"mac\": \"shift+command+'\", \"win\": \"shift+ctrl+`\"},\n    remove_tag: {\"mac\": \"command+'\", \"win\": \"shift+ctrl+;\"},\n    evaluate_math_expression: {\"mac\": \"shift+command+y\", \"win\": \"shift+ctrl+y\"},\n    increment_number_by_1: \"ctrl+up\",\n    decrement_number_by_1: \"ctrl+down\",\n    increment_number_by_01: \"alt+up\",\n    decrement_number_by_01: \"alt+down\",\n    increment_number_by_10: {\"mac\": \"alt+command+up\", \"win\": \"shift+alt+up\"},\n    decrement_number_by_10: {\"mac\": \"alt+command+down\", \"win\": \"shift+alt+down\"},\n    select_next_item: {\"mac\": \"shift+command+.\", \"win\": \"shift+ctrl+.\"},\n    select_previous_item: {\"mac\": \"shift+command+,\", \"win\": \"shift+ctrl+,\"},\n    reflect_css_value: {\"mac\": \"shift+command+r\", \"win\": \"shift+ctrl+r\"},\n\n    encode_decode_data_url: {\"mac\": \"shift+ctrl+d\", \"win\": \"ctrl+'\"},\n    expand_abbreviation_with_tab: \"Tab\",\n    wrap_with_abbreviation: {\"mac\": \"shift+ctrl+a\", \"win\": \"shift+ctrl+a\"}\n};\n\nvar editorProxy = new AceEmmetEditor();\nexports.commands = new HashHandler();\nexports.runEmmetCommand = function runEmmetCommand(editor) {\n    try {\n        editorProxy.setupContext(editor);\n        var actions = emmet.actions || emmet.require(\"actions\");\n    \n        if (this.action == \"expand_abbreviation_with_tab\") {\n            if (!editor.selection.isEmpty())\n                return false;\n            var pos = editor.selection.lead;\n            var token = editor.session.getTokenAt(pos.row, pos.column);\n            if (token && /\\btag\\b/.test(token.type))\n                return false;\n        }\n        \n        if (this.action == \"wrap_with_abbreviation\") {\n            return setTimeout(function() {\n                actions.run(\"wrap_with_abbreviation\", editorProxy);\n            }, 0);\n        }\n        \n        var result = actions.run(this.action, editorProxy);\n    } catch(e) {\n        if (!emmet) {\n            load(runEmmetCommand.bind(this, editor));\n            return true;\n        }\n        editor._signal(\"changeStatus\", typeof e == \"string\" ? e : e.message);\n        console.log(e);\n        result = false;\n    }\n    return result;\n};\n\nfor (var command in keymap) {\n    exports.commands.addCommand({\n        name: \"emmet:\" + command,\n        action: command,\n        bindKey: keymap[command],\n        exec: exports.runEmmetCommand,\n        multiSelectAction: \"forEach\"\n    });\n}\n\nexports.updateCommands = function(editor, enabled) {\n    if (enabled) {\n        editor.keyBinding.addKeyboardHandler(exports.commands);\n    } else {\n        editor.keyBinding.removeKeyboardHandler(exports.commands);\n    }\n};\n\nexports.isSupportedMode = function(mode) {\n    if (!mode) return false;\n    if (mode.emmetConfig) return true;\n    var id = mode.$id || mode;\n    return /css|less|scss|sass|stylus|html|php|twig|ejs|handlebars/.test(id);\n};\n\nexports.isAvailable = function(editor, command) {\n    if (/(evaluate_math_expression|expand_abbreviation)$/.test(command))\n        return true;\n    var mode = editor.session.$mode;\n    var isSupported = exports.isSupportedMode(mode);\n    if (isSupported && mode.$modes) {\n        try {\n            editorProxy.setupContext(editor);\n            if (/js|php/.test(editorProxy.getSyntax()))\n                isSupported = false;\n        } catch(e) {}\n    }\n    return isSupported;\n}\n\nvar onChangeMode = function(e, target) {\n    var editor = target;\n    if (!editor)\n        return;\n    var enabled = exports.isSupportedMode(editor.session.$mode);\n    if (e.enableEmmet === false)\n        enabled = false;\n    if (enabled)\n        load();\n    exports.updateCommands(editor, enabled);\n};\n\nvar load = function(cb) {\n    if (typeof emmetPath == \"string\") {\n        require(\"ace/config\").loadModule(emmetPath, function() {\n            emmetPath = null;\n            cb && cb();\n        });\n    }\n};\n\nexports.AceEmmetEditor = AceEmmetEditor;\nrequire(\"ace/config\").defineOptions(Editor.prototype, \"editor\", {\n    enableEmmet: {\n        set: function(val) {\n            this[val ? \"on\" : \"removeListener\"](\"changeMode\", onChangeMode);\n            onChangeMode({enableEmmet: !!val}, this);\n        },\n        value: true\n    }\n});\n\nexports.setCore = function(e) {\n    if (typeof e == \"string\")\n       emmetPath = e;\n    else\n       emmet = e;\n};\n});\n                (function() {\n                    ace.require([\"ace/ext/emmet\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-noconflict/ext-error_marker.js",
    "content": "\n;\n                (function() {\n                    ace.require([\"ace/ext/error_marker\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-noconflict/ext-keybinding_menu.js",
    "content": "ace.define(\"ace/ext/menu_tools/overlay_page\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n'use strict';\nvar dom = require(\"../../lib/dom\");\nvar cssText = \"#ace_settingsmenu, #kbshortcutmenu {\\\nbackground-color: #F7F7F7;\\\ncolor: black;\\\nbox-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);\\\npadding: 1em 0.5em 2em 1em;\\\noverflow: auto;\\\nposition: absolute;\\\nmargin: 0;\\\nbottom: 0;\\\nright: 0;\\\ntop: 0;\\\nz-index: 9991;\\\ncursor: default;\\\n}\\\n.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {\\\nbox-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);\\\nbackground-color: rgba(255, 255, 255, 0.6);\\\ncolor: black;\\\n}\\\n.ace_optionsMenuEntry:hover {\\\nbackground-color: rgba(100, 100, 100, 0.1);\\\n-webkit-transition: all 0.5s;\\\ntransition: all 0.3s\\\n}\\\n.ace_closeButton {\\\nbackground: rgba(245, 146, 146, 0.5);\\\nborder: 1px solid #F48A8A;\\\nborder-radius: 50%;\\\npadding: 7px;\\\nposition: absolute;\\\nright: -8px;\\\ntop: -8px;\\\nz-index: 1000;\\\n}\\\n.ace_closeButton{\\\nbackground: rgba(245, 146, 146, 0.9);\\\n}\\\n.ace_optionsMenuKey {\\\ncolor: darkslateblue;\\\nfont-weight: bold;\\\n}\\\n.ace_optionsMenuCommand {\\\ncolor: darkcyan;\\\nfont-weight: normal;\\\n}\";\ndom.importCssString(cssText);\nmodule.exports.overlayPage = function overlayPage(editor, contentElement, top, right, bottom, left) {\n    top = top ? 'top: ' + top + ';' : '';\n    bottom = bottom ? 'bottom: ' + bottom + ';' : '';\n    right = right ? 'right: ' + right + ';' : '';\n    left = left ? 'left: ' + left + ';' : '';\n\n    var closer = document.createElement('div');\n    var contentContainer = document.createElement('div');\n\n    function documentEscListener(e) {\n        if (e.keyCode === 27) {\n            closer.click();\n        }\n    }\n\n    closer.style.cssText = 'margin: 0; padding: 0; ' +\n        'position: fixed; top:0; bottom:0; left:0; right:0;' +\n        'z-index: 9990; ' +\n        'background-color: rgba(0, 0, 0, 0.3);';\n    closer.addEventListener('click', function() {\n        document.removeEventListener('keydown', documentEscListener);\n        closer.parentNode.removeChild(closer);\n        editor.focus();\n        closer = null;\n    });\n    document.addEventListener('keydown', documentEscListener);\n\n    contentContainer.style.cssText = top + right + bottom + left;\n    contentContainer.addEventListener('click', function(e) {\n        e.stopPropagation();\n    });\n\n    var wrapper = dom.createElement(\"div\");\n    wrapper.style.position = \"relative\";\n    \n    var closeButton = dom.createElement(\"div\");\n    closeButton.className = \"ace_closeButton\";\n    closeButton.addEventListener('click', function() {\n        closer.click();\n    });\n    \n    wrapper.appendChild(closeButton);\n    contentContainer.appendChild(wrapper);\n    \n    contentContainer.appendChild(contentElement);\n    closer.appendChild(contentContainer);\n    document.body.appendChild(closer);\n    editor.blur();\n};\n\n});\n\nace.define(\"ace/ext/menu_tools/get_editor_keyboard_shortcuts\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\"], function(require, exports, module) {\n\"use strict\";\nvar keys = require(\"../../lib/keys\");\nmodule.exports.getEditorKeybordShortcuts = function(editor) {\n    var KEY_MODS = keys.KEY_MODS;\n    var keybindings = [];\n    var commandMap = {};\n    editor.keyBinding.$handlers.forEach(function(handler) {\n        var ckb = handler.commandKeyBinding;\n        for (var i in ckb) {\n            var key = i.replace(/(^|-)\\w/g, function(x) { return x.toUpperCase(); });\n            var commands = ckb[i];\n            if (!Array.isArray(commands))\n                commands = [commands];\n            commands.forEach(function(command) {\n                if (typeof command != \"string\")\n                    command  = command.name\n                if (commandMap[command]) {\n                    commandMap[command].key += \"|\" + key;\n                } else {\n                    commandMap[command] = {key: key, command: command};\n                    keybindings.push(commandMap[command]);\n                }         \n            });\n        }\n    });\n    return keybindings;\n};\n\n});\n\nace.define(\"ace/ext/keybinding_menu\",[\"require\",\"exports\",\"module\",\"ace/editor\",\"ace/ext/menu_tools/overlay_page\",\"ace/ext/menu_tools/get_editor_keyboard_shortcuts\"], function(require, exports, module) {\n    \"use strict\";\n    var Editor = require(\"ace/editor\").Editor;\n    function showKeyboardShortcuts (editor) {\n        if(!document.getElementById('kbshortcutmenu')) {\n            var overlayPage = require('./menu_tools/overlay_page').overlayPage;\n            var getEditorKeybordShortcuts = require('./menu_tools/get_editor_keyboard_shortcuts').getEditorKeybordShortcuts;\n            var kb = getEditorKeybordShortcuts(editor);\n            var el = document.createElement('div');\n            var commands = kb.reduce(function(previous, current) {\n                return previous + '<div class=\"ace_optionsMenuEntry\"><span class=\"ace_optionsMenuCommand\">' \n                    + current.command + '</span> : '\n                    + '<span class=\"ace_optionsMenuKey\">' + current.key + '</span></div>';\n            }, '');\n\n            el.id = 'kbshortcutmenu';\n            el.innerHTML = '<h1>Keyboard Shortcuts</h1>' + commands + '</div>';\n            overlayPage(editor, el, '0', '0', '0', null);\n        }\n    }\n    module.exports.init = function(editor) {\n        Editor.prototype.showKeyboardShortcuts = function() {\n            showKeyboardShortcuts(this);\n        };\n        editor.commands.addCommands([{\n            name: \"showKeyboardShortcuts\",\n            bindKey: {win: \"Ctrl-Alt-h\", mac: \"Command-Alt-h\"},\n            exec: function(editor, line) {\n                editor.showKeyboardShortcuts();\n            }\n        }]);\n    };\n\n});\n                (function() {\n                    ace.require([\"ace/ext/keybinding_menu\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-noconflict/ext-language_tools.js",
    "content": "ace.define(\"ace/snippets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/lib/lang\",\"ace/range\",\"ace/anchor\",\"ace/keyboard/hash_handler\",\"ace/tokenizer\",\"ace/lib/dom\",\"ace/editor\"], function(require, exports, module) {\n\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar lang = require(\"./lib/lang\");\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\nvar HashHandler = require(\"./keyboard/hash_handler\").HashHandler;\nvar Tokenizer = require(\"./tokenizer\").Tokenizer;\nvar comparePoints = Range.comparePoints;\n\nvar SnippetManager = function() {\n    this.snippetMap = {};\n    this.snippetNameMap = {};\n};\n\n(function() {\n    oop.implement(this, EventEmitter);\n    \n    this.getTokenizer = function() {\n        function TabstopToken(str, _, stack) {\n            str = str.substr(1);\n            if (/^\\d+$/.test(str) && !stack.inFormatString)\n                return [{tabstopId: parseInt(str, 10)}];\n            return [{text: str}];\n        }\n        function escape(ch) {\n            return \"(?:[^\\\\\\\\\" + ch + \"]|\\\\\\\\.)\";\n        }\n        SnippetManager.$tokenizer = new Tokenizer({\n            start: [\n                {regex: /:/, onMatch: function(val, state, stack) {\n                    if (stack.length && stack[0].expectIf) {\n                        stack[0].expectIf = false;\n                        stack[0].elseBranch = stack[0];\n                        return [stack[0]];\n                    }\n                    return \":\";\n                }},\n                {regex: /\\\\./, onMatch: function(val, state, stack) {\n                    var ch = val[1];\n                    if (ch == \"}\" && stack.length) {\n                        val = ch;\n                    }else if (\"`$\\\\\".indexOf(ch) != -1) {\n                        val = ch;\n                    } else if (stack.inFormatString) {\n                        if (ch == \"n\")\n                            val = \"\\n\";\n                        else if (ch == \"t\")\n                            val = \"\\n\";\n                        else if (\"ulULE\".indexOf(ch) != -1) {\n                            val = {changeCase: ch, local: ch > \"a\"};\n                        }\n                    }\n\n                    return [val];\n                }},\n                {regex: /}/, onMatch: function(val, state, stack) {\n                    return [stack.length ? stack.shift() : val];\n                }},\n                {regex: /\\$(?:\\d+|\\w+)/, onMatch: TabstopToken},\n                {regex: /\\$\\{[\\dA-Z_a-z]+/, onMatch: function(str, state, stack) {\n                    var t = TabstopToken(str.substr(1), state, stack);\n                    stack.unshift(t[0]);\n                    return t;\n                }, next: \"snippetVar\"},\n                {regex: /\\n/, token: \"newline\", merge: false}\n            ],\n            snippetVar: [\n                {regex: \"\\\\|\" + escape(\"\\\\|\") + \"*\\\\|\", onMatch: function(val, state, stack) {\n                    stack[0].choices = val.slice(1, -1).split(\",\");\n                }, next: \"start\"},\n                {regex: \"/(\" + escape(\"/\") + \"+)/(?:(\" + escape(\"/\") + \"*)/)(\\\\w*):?\",\n                 onMatch: function(val, state, stack) {\n                    var ts = stack[0];\n                    ts.fmtString = val;\n\n                    val = this.splitRegex.exec(val);\n                    ts.guard = val[1];\n                    ts.fmt = val[2];\n                    ts.flag = val[3];\n                    return \"\";\n                }, next: \"start\"},\n                {regex: \"`\" + escape(\"`\") + \"*`\", onMatch: function(val, state, stack) {\n                    stack[0].code = val.splice(1, -1);\n                    return \"\";\n                }, next: \"start\"},\n                {regex: \"\\\\?\", onMatch: function(val, state, stack) {\n                    if (stack[0])\n                        stack[0].expectIf = true;\n                }, next: \"start\"},\n                {regex: \"([^:}\\\\\\\\]|\\\\\\\\.)*:?\", token: \"\", next: \"start\"}\n            ],\n            formatString: [\n                {regex: \"/(\" + escape(\"/\") + \"+)/\", token: \"regex\"},\n                {regex: \"\", onMatch: function(val, state, stack) {\n                    stack.inFormatString = true;\n                }, next: \"start\"}\n            ]\n        });\n        SnippetManager.prototype.getTokenizer = function() {\n            return SnippetManager.$tokenizer;\n        };\n        return SnippetManager.$tokenizer;\n    };\n\n    this.tokenizeTmSnippet = function(str, startState) {\n        return this.getTokenizer().getLineTokens(str, startState).tokens.map(function(x) {\n            return x.value || x;\n        });\n    };\n\n    this.$getDefaultValue = function(editor, name) {\n        if (/^[A-Z]\\d+$/.test(name)) {\n            var i = name.substr(1);\n            return (this.variables[name[0] + \"__\"] || {})[i];\n        }\n        if (/^\\d+$/.test(name)) {\n            return (this.variables.__ || {})[name];\n        }\n        name = name.replace(/^TM_/, \"\");\n\n        if (!editor)\n            return;\n        var s = editor.session;\n        switch(name) {\n            case \"CURRENT_WORD\":\n                var r = s.getWordRange();\n            case \"SELECTION\":\n            case \"SELECTED_TEXT\":\n                return s.getTextRange(r);\n            case \"CURRENT_LINE\":\n                return s.getLine(editor.getCursorPosition().row);\n            case \"PREV_LINE\": // not possible in textmate\n                return s.getLine(editor.getCursorPosition().row - 1);\n            case \"LINE_INDEX\":\n                return editor.getCursorPosition().column;\n            case \"LINE_NUMBER\":\n                return editor.getCursorPosition().row + 1;\n            case \"SOFT_TABS\":\n                return s.getUseSoftTabs() ? \"YES\" : \"NO\";\n            case \"TAB_SIZE\":\n                return s.getTabSize();\n            case \"FILENAME\":\n            case \"FILEPATH\":\n                return \"\";\n            case \"FULLNAME\":\n                return \"Ace\";\n        }\n    };\n    this.variables = {};\n    this.getVariableValue = function(editor, varName) {\n        if (this.variables.hasOwnProperty(varName))\n            return this.variables[varName](editor, varName) || \"\";\n        return this.$getDefaultValue(editor, varName) || \"\";\n    };\n    this.tmStrFormat = function(str, ch, editor) {\n        var flag = ch.flag || \"\";\n        var re = ch.guard;\n        re = new RegExp(re, flag.replace(/[^gi]/, \"\"));\n        var fmtTokens = this.tokenizeTmSnippet(ch.fmt, \"formatString\");\n        var _self = this;\n        var formatted = str.replace(re, function() {\n            _self.variables.__ = arguments;\n            var fmtParts = _self.resolveVariables(fmtTokens, editor);\n            var gChangeCase = \"E\";\n            for (var i  = 0; i < fmtParts.length; i++) {\n                var ch = fmtParts[i];\n                if (typeof ch == \"object\") {\n                    fmtParts[i] = \"\";\n                    if (ch.changeCase && ch.local) {\n                        var next = fmtParts[i + 1];\n                        if (next && typeof next == \"string\") {\n                            if (ch.changeCase == \"u\")\n                                fmtParts[i] = next[0].toUpperCase();\n                            else\n                                fmtParts[i] = next[0].toLowerCase();\n                            fmtParts[i + 1] = next.substr(1);\n                        }\n                    } else if (ch.changeCase) {\n                        gChangeCase = ch.changeCase;\n                    }\n                } else if (gChangeCase == \"U\") {\n                    fmtParts[i] = ch.toUpperCase();\n                } else if (gChangeCase == \"L\") {\n                    fmtParts[i] = ch.toLowerCase();\n                }\n            }\n            return fmtParts.join(\"\");\n        });\n        this.variables.__ = null;\n        return formatted;\n    };\n\n    this.resolveVariables = function(snippet, editor) {\n        var result = [];\n        for (var i = 0; i < snippet.length; i++) {\n            var ch = snippet[i];\n            if (typeof ch == \"string\") {\n                result.push(ch);\n            } else if (typeof ch != \"object\") {\n                continue;\n            } else if (ch.skip) {\n                gotoNext(ch);\n            } else if (ch.processed < i) {\n                continue;\n            } else if (ch.text) {\n                var value = this.getVariableValue(editor, ch.text);\n                if (value && ch.fmtString)\n                    value = this.tmStrFormat(value, ch);\n                ch.processed = i;\n                if (ch.expectIf == null) {\n                    if (value) {\n                        result.push(value);\n                        gotoNext(ch);\n                    }\n                } else {\n                    if (value) {\n                        ch.skip = ch.elseBranch;\n                    } else\n                        gotoNext(ch);\n                }\n            } else if (ch.tabstopId != null) {\n                result.push(ch);\n            } else if (ch.changeCase != null) {\n                result.push(ch);\n            }\n        }\n        function gotoNext(ch) {\n            var i1 = snippet.indexOf(ch, i + 1);\n            if (i1 != -1)\n                i = i1;\n        }\n        return result;\n    };\n\n    this.insertSnippetForSelection = function(editor, snippetText) {\n        var cursor = editor.getCursorPosition();\n        var line = editor.session.getLine(cursor.row);\n        var tabString = editor.session.getTabString();\n        var indentString = line.match(/^\\s*/)[0];\n        \n        if (cursor.column < indentString.length)\n            indentString = indentString.slice(0, cursor.column);\n\n        snippetText = snippetText.replace(/\\r/g, \"\");\n        var tokens = this.tokenizeTmSnippet(snippetText);\n        tokens = this.resolveVariables(tokens, editor);\n        tokens = tokens.map(function(x) {\n            if (x == \"\\n\")\n                return x + indentString;\n            if (typeof x == \"string\")\n                return x.replace(/\\t/g, tabString);\n            return x;\n        });\n        var tabstops = [];\n        tokens.forEach(function(p, i) {\n            if (typeof p != \"object\")\n                return;\n            var id = p.tabstopId;\n            var ts = tabstops[id];\n            if (!ts) {\n                ts = tabstops[id] = [];\n                ts.index = id;\n                ts.value = \"\";\n            }\n            if (ts.indexOf(p) !== -1)\n                return;\n            ts.push(p);\n            var i1 = tokens.indexOf(p, i + 1);\n            if (i1 === -1)\n                return;\n\n            var value = tokens.slice(i + 1, i1);\n            var isNested = value.some(function(t) {return typeof t === \"object\"});          \n            if (isNested && !ts.value) {\n                ts.value = value;\n            } else if (value.length && (!ts.value || typeof ts.value !== \"string\")) {\n                ts.value = value.join(\"\");\n            }\n        });\n        tabstops.forEach(function(ts) {ts.length = 0});\n        var expanding = {};\n        function copyValue(val) {\n            var copy = [];\n            for (var i = 0; i < val.length; i++) {\n                var p = val[i];\n                if (typeof p == \"object\") {\n                    if (expanding[p.tabstopId])\n                        continue;\n                    var j = val.lastIndexOf(p, i - 1);\n                    p = copy[j] || {tabstopId: p.tabstopId};\n                }\n                copy[i] = p;\n            }\n            return copy;\n        }\n        for (var i = 0; i < tokens.length; i++) {\n            var p = tokens[i];\n            if (typeof p != \"object\")\n                continue;\n            var id = p.tabstopId;\n            var i1 = tokens.indexOf(p, i + 1);\n            if (expanding[id]) {\n                if (expanding[id] === p)\n                    expanding[id] = null;\n                continue;\n            }\n            \n            var ts = tabstops[id];\n            var arg = typeof ts.value == \"string\" ? [ts.value] : copyValue(ts.value);\n            arg.unshift(i + 1, Math.max(0, i1 - i));\n            arg.push(p);\n            expanding[id] = p;\n            tokens.splice.apply(tokens, arg);\n\n            if (ts.indexOf(p) === -1)\n                ts.push(p);\n        }\n        var row = 0, column = 0;\n        var text = \"\";\n        tokens.forEach(function(t) {\n            if (typeof t === \"string\") {\n                var lines = t.split(\"\\n\");\n                if (lines.length > 1){\n                    column = lines[lines.length - 1].length;\n                    row += lines.length - 1;\n                } else\n                    column += t.length;\n                text += t;\n            } else {\n                if (!t.start)\n                    t.start = {row: row, column: column};\n                else\n                    t.end = {row: row, column: column};\n            }\n        });\n        var range = editor.getSelectionRange();\n        var end = editor.session.replace(range, text);\n\n        var tabstopManager = new TabstopManager(editor);\n        var selectionId = editor.inVirtualSelectionMode && editor.selection.index;\n        tabstopManager.addTabstops(tabstops, range.start, end, selectionId);\n    };\n    \n    this.insertSnippet = function(editor, snippetText) {\n        var self = this;\n        if (editor.inVirtualSelectionMode)\n            return self.insertSnippetForSelection(editor, snippetText);\n        \n        editor.forEachSelection(function() {\n            self.insertSnippetForSelection(editor, snippetText);\n        }, null, {keepOrder: true});\n        \n        if (editor.tabstopManager)\n            editor.tabstopManager.tabNext();\n    };\n\n    this.$getScope = function(editor) {\n        var scope = editor.session.$mode.$id || \"\";\n        scope = scope.split(\"/\").pop();\n        if (scope === \"html\" || scope === \"php\") {\n            if (scope === \"php\" && !editor.session.$mode.inlinePhp) \n                scope = \"html\";\n            var c = editor.getCursorPosition();\n            var state = editor.session.getState(c.row);\n            if (typeof state === \"object\") {\n                state = state[0];\n            }\n            if (state.substring) {\n                if (state.substring(0, 3) == \"js-\")\n                    scope = \"javascript\";\n                else if (state.substring(0, 4) == \"css-\")\n                    scope = \"css\";\n                else if (state.substring(0, 4) == \"php-\")\n                    scope = \"php\";\n            }\n        }\n        \n        return scope;\n    };\n\n    this.getActiveScopes = function(editor) {\n        var scope = this.$getScope(editor);\n        var scopes = [scope];\n        var snippetMap = this.snippetMap;\n        if (snippetMap[scope] && snippetMap[scope].includeScopes) {\n            scopes.push.apply(scopes, snippetMap[scope].includeScopes);\n        }\n        scopes.push(\"_\");\n        return scopes;\n    };\n\n    this.expandWithTab = function(editor, options) {\n        var self = this;\n        var result = editor.forEachSelection(function() {\n            return self.expandSnippetForSelection(editor, options);\n        }, null, {keepOrder: true});\n        if (result && editor.tabstopManager)\n            editor.tabstopManager.tabNext();\n        return result;\n    };\n    \n    this.expandSnippetForSelection = function(editor, options) {\n        var cursor = editor.getCursorPosition();\n        var line = editor.session.getLine(cursor.row);\n        var before = line.substring(0, cursor.column);\n        var after = line.substr(cursor.column);\n\n        var snippetMap = this.snippetMap;\n        var snippet;\n        this.getActiveScopes(editor).some(function(scope) {\n            var snippets = snippetMap[scope];\n            if (snippets)\n                snippet = this.findMatchingSnippet(snippets, before, after);\n            return !!snippet;\n        }, this);\n        if (!snippet)\n            return false;\n        if (options && options.dryRun)\n            return true;\n        editor.session.doc.removeInLine(cursor.row,\n            cursor.column - snippet.replaceBefore.length,\n            cursor.column + snippet.replaceAfter.length\n        );\n\n        this.variables.M__ = snippet.matchBefore;\n        this.variables.T__ = snippet.matchAfter;\n        this.insertSnippetForSelection(editor, snippet.content);\n\n        this.variables.M__ = this.variables.T__ = null;\n        return true;\n    };\n\n    this.findMatchingSnippet = function(snippetList, before, after) {\n        for (var i = snippetList.length; i--;) {\n            var s = snippetList[i];\n            if (s.startRe && !s.startRe.test(before))\n                continue;\n            if (s.endRe && !s.endRe.test(after))\n                continue;\n            if (!s.startRe && !s.endRe)\n                continue;\n\n            s.matchBefore = s.startRe ? s.startRe.exec(before) : [\"\"];\n            s.matchAfter = s.endRe ? s.endRe.exec(after) : [\"\"];\n            s.replaceBefore = s.triggerRe ? s.triggerRe.exec(before)[0] : \"\";\n            s.replaceAfter = s.endTriggerRe ? s.endTriggerRe.exec(after)[0] : \"\";\n            return s;\n        }\n    };\n\n    this.snippetMap = {};\n    this.snippetNameMap = {};\n    this.register = function(snippets, scope) {\n        var snippetMap = this.snippetMap;\n        var snippetNameMap = this.snippetNameMap;\n        var self = this;\n        \n        if (!snippets) \n            snippets = [];\n        \n        function wrapRegexp(src) {\n            if (src && !/^\\^?\\(.*\\)\\$?$|^\\\\b$/.test(src))\n                src = \"(?:\" + src + \")\";\n\n            return src || \"\";\n        }\n        function guardedRegexp(re, guard, opening) {\n            re = wrapRegexp(re);\n            guard = wrapRegexp(guard);\n            if (opening) {\n                re = guard + re;\n                if (re && re[re.length - 1] != \"$\")\n                    re = re + \"$\";\n            } else {\n                re = re + guard;\n                if (re && re[0] != \"^\")\n                    re = \"^\" + re;\n            }\n            return new RegExp(re);\n        }\n\n        function addSnippet(s) {\n            if (!s.scope)\n                s.scope = scope || \"_\";\n            scope = s.scope;\n            if (!snippetMap[scope]) {\n                snippetMap[scope] = [];\n                snippetNameMap[scope] = {};\n            }\n\n            var map = snippetNameMap[scope];\n            if (s.name) {\n                var old = map[s.name];\n                if (old)\n                    self.unregister(old);\n                map[s.name] = s;\n            }\n            snippetMap[scope].push(s);\n\n            if (s.tabTrigger && !s.trigger) {\n                if (!s.guard && /^\\w/.test(s.tabTrigger))\n                    s.guard = \"\\\\b\";\n                s.trigger = lang.escapeRegExp(s.tabTrigger);\n            }\n            \n            if (!s.trigger && !s.guard && !s.endTrigger && !s.endGuard)\n                return;\n            \n            s.startRe = guardedRegexp(s.trigger, s.guard, true);\n            s.triggerRe = new RegExp(s.trigger, \"\", true);\n\n            s.endRe = guardedRegexp(s.endTrigger, s.endGuard, true);\n            s.endTriggerRe = new RegExp(s.endTrigger, \"\", true);\n        }\n\n        if (snippets && snippets.content)\n            addSnippet(snippets);\n        else if (Array.isArray(snippets))\n            snippets.forEach(addSnippet);\n        \n        this._signal(\"registerSnippets\", {scope: scope});\n    };\n    this.unregister = function(snippets, scope) {\n        var snippetMap = this.snippetMap;\n        var snippetNameMap = this.snippetNameMap;\n\n        function removeSnippet(s) {\n            var nameMap = snippetNameMap[s.scope||scope];\n            if (nameMap && nameMap[s.name]) {\n                delete nameMap[s.name];\n                var map = snippetMap[s.scope||scope];\n                var i = map && map.indexOf(s);\n                if (i >= 0)\n                    map.splice(i, 1);\n            }\n        }\n        if (snippets.content)\n            removeSnippet(snippets);\n        else if (Array.isArray(snippets))\n            snippets.forEach(removeSnippet);\n    };\n    this.parseSnippetFile = function(str) {\n        str = str.replace(/\\r/g, \"\");\n        var list = [], snippet = {};\n        var re = /^#.*|^({[\\s\\S]*})\\s*$|^(\\S+) (.*)$|^((?:\\n*\\t.*)+)/gm;\n        var m;\n        while (m = re.exec(str)) {\n            if (m[1]) {\n                try {\n                    snippet = JSON.parse(m[1]);\n                    list.push(snippet);\n                } catch (e) {}\n            } if (m[4]) {\n                snippet.content = m[4].replace(/^\\t/gm, \"\");\n                list.push(snippet);\n                snippet = {};\n            } else {\n                var key = m[2], val = m[3];\n                if (key == \"regex\") {\n                    var guardRe = /\\/((?:[^\\/\\\\]|\\\\.)*)|$/g;\n                    snippet.guard = guardRe.exec(val)[1];\n                    snippet.trigger = guardRe.exec(val)[1];\n                    snippet.endTrigger = guardRe.exec(val)[1];\n                    snippet.endGuard = guardRe.exec(val)[1];\n                } else if (key == \"snippet\") {\n                    snippet.tabTrigger = val.match(/^\\S*/)[0];\n                    if (!snippet.name)\n                        snippet.name = val;\n                } else {\n                    snippet[key] = val;\n                }\n            }\n        }\n        return list;\n    };\n    this.getSnippetByName = function(name, editor) {\n        var snippetMap = this.snippetNameMap;\n        var snippet;\n        this.getActiveScopes(editor).some(function(scope) {\n            var snippets = snippetMap[scope];\n            if (snippets)\n                snippet = snippets[name];\n            return !!snippet;\n        }, this);\n        return snippet;\n    };\n\n}).call(SnippetManager.prototype);\n\n\nvar TabstopManager = function(editor) {\n    if (editor.tabstopManager)\n        return editor.tabstopManager;\n    editor.tabstopManager = this;\n    this.$onChange = this.onChange.bind(this);\n    this.$onChangeSelection = lang.delayedCall(this.onChangeSelection.bind(this)).schedule;\n    this.$onChangeSession = this.onChangeSession.bind(this);\n    this.$onAfterExec = this.onAfterExec.bind(this);\n    this.attach(editor);\n};\n(function() {\n    this.attach = function(editor) {\n        this.index = 0;\n        this.ranges = [];\n        this.tabstops = [];\n        this.$openTabstops = null;\n        this.selectedTabstop = null;\n\n        this.editor = editor;\n        this.editor.on(\"change\", this.$onChange);\n        this.editor.on(\"changeSelection\", this.$onChangeSelection);\n        this.editor.on(\"changeSession\", this.$onChangeSession);\n        this.editor.commands.on(\"afterExec\", this.$onAfterExec);\n        this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler);\n    };\n    this.detach = function() {\n        this.tabstops.forEach(this.removeTabstopMarkers, this);\n        this.ranges = null;\n        this.tabstops = null;\n        this.selectedTabstop = null;\n        this.editor.removeListener(\"change\", this.$onChange);\n        this.editor.removeListener(\"changeSelection\", this.$onChangeSelection);\n        this.editor.removeListener(\"changeSession\", this.$onChangeSession);\n        this.editor.commands.removeListener(\"afterExec\", this.$onAfterExec);\n        this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler);\n        this.editor.tabstopManager = null;\n        this.editor = null;\n    };\n\n    this.onChange = function(delta) {\n        var changeRange = delta;\n        var isRemove = delta.action[0] == \"r\";\n        var start = delta.start;\n        var end = delta.end;\n        var startRow = start.row;\n        var endRow = end.row;\n        var lineDif = endRow - startRow;\n        var colDiff = end.column - start.column;\n\n        if (isRemove) {\n            lineDif = -lineDif;\n            colDiff = -colDiff;\n        }\n        if (!this.$inChange && isRemove) {\n            var ts = this.selectedTabstop;\n            var changedOutside = ts && !ts.some(function(r) {\n                return comparePoints(r.start, start) <= 0 && comparePoints(r.end, end) >= 0;\n            });\n            if (changedOutside)\n                return this.detach();\n        }\n        var ranges = this.ranges;\n        for (var i = 0; i < ranges.length; i++) {\n            var r = ranges[i];\n            if (r.end.row < start.row)\n                continue;\n\n            if (isRemove && comparePoints(start, r.start) < 0 && comparePoints(end, r.end) > 0) {\n                this.removeRange(r);\n                i--;\n                continue;\n            }\n\n            if (r.start.row == startRow && r.start.column > start.column)\n                r.start.column += colDiff;\n            if (r.end.row == startRow && r.end.column >= start.column)\n                r.end.column += colDiff;\n            if (r.start.row >= startRow)\n                r.start.row += lineDif;\n            if (r.end.row >= startRow)\n                r.end.row += lineDif;\n\n            if (comparePoints(r.start, r.end) > 0)\n                this.removeRange(r);\n        }\n        if (!ranges.length)\n            this.detach();\n    };\n    this.updateLinkedFields = function() {\n        var ts = this.selectedTabstop;\n        if (!ts || !ts.hasLinkedRanges)\n            return;\n        this.$inChange = true;\n        var session = this.editor.session;\n        var text = session.getTextRange(ts.firstNonLinked);\n        for (var i = ts.length; i--;) {\n            var range = ts[i];\n            if (!range.linked)\n                continue;\n            var fmt = exports.snippetManager.tmStrFormat(text, range.original);\n            session.replace(range, fmt);\n        }\n        this.$inChange = false;\n    };\n    this.onAfterExec = function(e) {\n        if (e.command && !e.command.readOnly)\n            this.updateLinkedFields();\n    };\n    this.onChangeSelection = function() {\n        if (!this.editor)\n            return;\n        var lead = this.editor.selection.lead;\n        var anchor = this.editor.selection.anchor;\n        var isEmpty = this.editor.selection.isEmpty();\n        for (var i = this.ranges.length; i--;) {\n            if (this.ranges[i].linked)\n                continue;\n            var containsLead = this.ranges[i].contains(lead.row, lead.column);\n            var containsAnchor = isEmpty || this.ranges[i].contains(anchor.row, anchor.column);\n            if (containsLead && containsAnchor)\n                return;\n        }\n        this.detach();\n    };\n    this.onChangeSession = function() {\n        this.detach();\n    };\n    this.tabNext = function(dir) {\n        var max = this.tabstops.length;\n        var index = this.index + (dir || 1);\n        index = Math.min(Math.max(index, 1), max);\n        if (index == max)\n            index = 0;\n        this.selectTabstop(index);\n        if (index === 0)\n            this.detach();\n    };\n    this.selectTabstop = function(index) {\n        this.$openTabstops = null;\n        var ts = this.tabstops[this.index];\n        if (ts)\n            this.addTabstopMarkers(ts);\n        this.index = index;\n        ts = this.tabstops[this.index];\n        if (!ts || !ts.length)\n            return;\n        \n        this.selectedTabstop = ts;\n        if (!this.editor.inVirtualSelectionMode) {        \n            var sel = this.editor.multiSelect;\n            sel.toSingleRange(ts.firstNonLinked.clone());\n            for (var i = ts.length; i--;) {\n                if (ts.hasLinkedRanges && ts[i].linked)\n                    continue;\n                sel.addRange(ts[i].clone(), true);\n            }\n            if (sel.ranges[0])\n                sel.addRange(sel.ranges[0].clone());\n        } else {\n            this.editor.selection.setRange(ts.firstNonLinked);\n        }\n        \n        this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler);\n    };\n    this.addTabstops = function(tabstops, start, end) {\n        if (!this.$openTabstops)\n            this.$openTabstops = [];\n        if (!tabstops[0]) {\n            var p = Range.fromPoints(end, end);\n            moveRelative(p.start, start);\n            moveRelative(p.end, start);\n            tabstops[0] = [p];\n            tabstops[0].index = 0;\n        }\n\n        var i = this.index;\n        var arg = [i + 1, 0];\n        var ranges = this.ranges;\n        tabstops.forEach(function(ts, index) {\n            var dest = this.$openTabstops[index] || ts;\n                \n            for (var i = ts.length; i--;) {\n                var p = ts[i];\n                var range = Range.fromPoints(p.start, p.end || p.start);\n                movePoint(range.start, start);\n                movePoint(range.end, start);\n                range.original = p;\n                range.tabstop = dest;\n                ranges.push(range);\n                if (dest != ts)\n                    dest.unshift(range);\n                else\n                    dest[i] = range;\n                if (p.fmtString) {\n                    range.linked = true;\n                    dest.hasLinkedRanges = true;\n                } else if (!dest.firstNonLinked)\n                    dest.firstNonLinked = range;\n            }\n            if (!dest.firstNonLinked)\n                dest.hasLinkedRanges = false;\n            if (dest === ts) {\n                arg.push(dest);\n                this.$openTabstops[index] = dest;\n            }\n            this.addTabstopMarkers(dest);\n        }, this);\n        \n        if (arg.length > 2) {\n            if (this.tabstops.length)\n                arg.push(arg.splice(2, 1)[0]);\n            this.tabstops.splice.apply(this.tabstops, arg);\n        }\n    };\n\n    this.addTabstopMarkers = function(ts) {\n        var session = this.editor.session;\n        ts.forEach(function(range) {\n            if  (!range.markerId)\n                range.markerId = session.addMarker(range, \"ace_snippet-marker\", \"text\");\n        });\n    };\n    this.removeTabstopMarkers = function(ts) {\n        var session = this.editor.session;\n        ts.forEach(function(range) {\n            session.removeMarker(range.markerId);\n            range.markerId = null;\n        });\n    };\n    this.removeRange = function(range) {\n        var i = range.tabstop.indexOf(range);\n        range.tabstop.splice(i, 1);\n        i = this.ranges.indexOf(range);\n        this.ranges.splice(i, 1);\n        this.editor.session.removeMarker(range.markerId);\n        if (!range.tabstop.length) {\n            i = this.tabstops.indexOf(range.tabstop);\n            if (i != -1)\n                this.tabstops.splice(i, 1);\n            if (!this.tabstops.length)\n                this.detach();\n        }\n    };\n\n    this.keyboardHandler = new HashHandler();\n    this.keyboardHandler.bindKeys({\n        \"Tab\": function(ed) {\n            if (exports.snippetManager && exports.snippetManager.expandWithTab(ed)) {\n                return;\n            }\n\n            ed.tabstopManager.tabNext(1);\n        },\n        \"Shift-Tab\": function(ed) {\n            ed.tabstopManager.tabNext(-1);\n        },\n        \"Esc\": function(ed) {\n            ed.tabstopManager.detach();\n        },\n        \"Return\": function(ed) {\n            return false;\n        }\n    });\n}).call(TabstopManager.prototype);\n\n\n\nvar changeTracker = {};\nchangeTracker.onChange = Anchor.prototype.onChange;\nchangeTracker.setPosition = function(row, column) {\n    this.pos.row = row;\n    this.pos.column = column;\n};\nchangeTracker.update = function(pos, delta, $insertRight) {\n    this.$insertRight = $insertRight;\n    this.pos = pos; \n    this.onChange(delta);\n};\n\nvar movePoint = function(point, diff) {\n    if (point.row == 0)\n        point.column += diff.column;\n    point.row += diff.row;\n};\n\nvar moveRelative = function(point, start) {\n    if (point.row == start.row)\n        point.column -= start.column;\n    point.row -= start.row;\n};\n\n\nrequire(\"./lib/dom\").importCssString(\"\\\n.ace_snippet-marker {\\\n    -moz-box-sizing: border-box;\\\n    box-sizing: border-box;\\\n    background: rgba(194, 193, 208, 0.09);\\\n    border: 1px dotted rgba(211, 208, 235, 0.62);\\\n    position: absolute;\\\n}\");\n\nexports.snippetManager = new SnippetManager();\n\n\nvar Editor = require(\"./editor\").Editor;\n(function() {\n    this.insertSnippet = function(content, options) {\n        return exports.snippetManager.insertSnippet(this, content, options);\n    };\n    this.expandSnippet = function(options) {\n        return exports.snippetManager.expandWithTab(this, options);\n    };\n}).call(Editor.prototype);\n\n});\n\nace.define(\"ace/autocomplete/popup\",[\"require\",\"exports\",\"module\",\"ace/virtual_renderer\",\"ace/editor\",\"ace/range\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/lib/dom\"], function(require, exports, module) {\n\"use strict\";\n\nvar Renderer = require(\"../virtual_renderer\").VirtualRenderer;\nvar Editor = require(\"../editor\").Editor;\nvar Range = require(\"../range\").Range;\nvar event = require(\"../lib/event\");\nvar lang = require(\"../lib/lang\");\nvar dom = require(\"../lib/dom\");\n\nvar $singleLineEditor = function(el) {\n    var renderer = new Renderer(el);\n\n    renderer.$maxLines = 4;\n\n    var editor = new Editor(renderer);\n\n    editor.setHighlightActiveLine(false);\n    editor.setShowPrintMargin(false);\n    editor.renderer.setShowGutter(false);\n    editor.renderer.setHighlightGutterLine(false);\n\n    editor.$mouseHandler.$focusWaitTimout = 0;\n    editor.$highlightTagPending = true;\n\n    return editor;\n};\n\nvar AcePopup = function(parentNode) {\n    var el = dom.createElement(\"div\");\n    var popup = new $singleLineEditor(el);\n\n    if (parentNode)\n        parentNode.appendChild(el);\n    el.style.display = \"none\";\n    popup.renderer.content.style.cursor = \"default\";\n    popup.renderer.setStyle(\"ace_autocomplete\");\n\n    popup.setOption(\"displayIndentGuides\", false);\n    popup.setOption(\"dragDelay\", 150);\n\n    var noop = function(){};\n\n    popup.focus = noop;\n    popup.$isFocused = true;\n\n    popup.renderer.$cursorLayer.restartTimer = noop;\n    popup.renderer.$cursorLayer.element.style.opacity = 0;\n\n    popup.renderer.$maxLines = 8;\n    popup.renderer.$keepTextAreaAtCursor = false;\n\n    popup.setHighlightActiveLine(false);\n    popup.session.highlight(\"\");\n    popup.session.$searchHighlight.clazz = \"ace_highlight-marker\";\n\n    popup.on(\"mousedown\", function(e) {\n        var pos = e.getDocumentPosition();\n        popup.selection.moveToPosition(pos);\n        selectionMarker.start.row = selectionMarker.end.row = pos.row;\n        e.stop();\n    });\n\n    var lastMouseEvent;\n    var hoverMarker = new Range(-1,0,-1,Infinity);\n    var selectionMarker = new Range(-1,0,-1,Infinity);\n    selectionMarker.id = popup.session.addMarker(selectionMarker, \"ace_active-line\", \"fullLine\");\n    popup.setSelectOnHover = function(val) {\n        if (!val) {\n            hoverMarker.id = popup.session.addMarker(hoverMarker, \"ace_line-hover\", \"fullLine\");\n        } else if (hoverMarker.id) {\n            popup.session.removeMarker(hoverMarker.id);\n            hoverMarker.id = null;\n        }\n    };\n    popup.setSelectOnHover(false);\n    popup.on(\"mousemove\", function(e) {\n        if (!lastMouseEvent) {\n            lastMouseEvent = e;\n            return;\n        }\n        if (lastMouseEvent.x == e.x && lastMouseEvent.y == e.y) {\n            return;\n        }\n        lastMouseEvent = e;\n        lastMouseEvent.scrollTop = popup.renderer.scrollTop;\n        var row = lastMouseEvent.getDocumentPosition().row;\n        if (hoverMarker.start.row != row) {\n            if (!hoverMarker.id)\n                popup.setRow(row);\n            setHoverMarker(row);\n        }\n    });\n    popup.renderer.on(\"beforeRender\", function() {\n        if (lastMouseEvent && hoverMarker.start.row != -1) {\n            lastMouseEvent.$pos = null;\n            var row = lastMouseEvent.getDocumentPosition().row;\n            if (!hoverMarker.id)\n                popup.setRow(row);\n            setHoverMarker(row, true);\n        }\n    });\n    popup.renderer.on(\"afterRender\", function() {\n        var row = popup.getRow();\n        var t = popup.renderer.$textLayer;\n        var selected = t.element.childNodes[row - t.config.firstRow];\n        if (selected == t.selectedNode)\n            return;\n        if (t.selectedNode)\n            dom.removeCssClass(t.selectedNode, \"ace_selected\");\n        t.selectedNode = selected;\n        if (selected)\n            dom.addCssClass(selected, \"ace_selected\");\n    });\n    var hideHoverMarker = function() { setHoverMarker(-1) };\n    var setHoverMarker = function(row, suppressRedraw) {\n        if (row !== hoverMarker.start.row) {\n            hoverMarker.start.row = hoverMarker.end.row = row;\n            if (!suppressRedraw)\n                popup.session._emit(\"changeBackMarker\");\n            popup._emit(\"changeHoverMarker\");\n        }\n    };\n    popup.getHoveredRow = function() {\n        return hoverMarker.start.row;\n    };\n\n    event.addListener(popup.container, \"mouseout\", hideHoverMarker);\n    popup.on(\"hide\", hideHoverMarker);\n    popup.on(\"changeSelection\", hideHoverMarker);\n\n    popup.session.doc.getLength = function() {\n        return popup.data.length;\n    };\n    popup.session.doc.getLine = function(i) {\n        var data = popup.data[i];\n        if (typeof data == \"string\")\n            return data;\n        return (data && data.value) || \"\";\n    };\n\n    var bgTokenizer = popup.session.bgTokenizer;\n    bgTokenizer.$tokenizeRow = function(row) {\n        var data = popup.data[row];\n        var tokens = [];\n        if (!data)\n            return tokens;\n        if (typeof data == \"string\")\n            data = {value: data};\n        if (!data.caption)\n            data.caption = data.value || data.name;\n\n        var last = -1;\n        var flag, c;\n        for (var i = 0; i < data.caption.length; i++) {\n            c = data.caption[i];\n            flag = data.matchMask & (1 << i) ? 1 : 0;\n            if (last !== flag) {\n                tokens.push({type: data.className || \"\" + ( flag ? \"completion-highlight\" : \"\"), value: c});\n                last = flag;\n            } else {\n                tokens[tokens.length - 1].value += c;\n            }\n        }\n\n        if (data.meta) {\n            var maxW = popup.renderer.$size.scrollerWidth / popup.renderer.layerConfig.characterWidth;\n            var metaData = data.meta;\n            if (metaData.length + data.caption.length > maxW - 2) {\n                metaData = metaData.substr(0, maxW - data.caption.length - 3) + \"\\u2026\"\n            }\n            tokens.push({type: \"rightAlignedText\", value: metaData});\n        }\n        return tokens;\n    };\n    bgTokenizer.$updateOnChange = noop;\n    bgTokenizer.start = noop;\n\n    popup.session.$computeWidth = function() {\n        return this.screenWidth = 0;\n    };\n\n    popup.$blockScrolling = Infinity;\n    popup.isOpen = false;\n    popup.isTopdown = false;\n\n    popup.data = [];\n    popup.setData = function(list) {\n        popup.setValue(lang.stringRepeat(\"\\n\", list.length), -1);\n        popup.data = list || [];\n        popup.setRow(0);\n    };\n    popup.getData = function(row) {\n        return popup.data[row];\n    };\n\n    popup.getRow = function() {\n        return selectionMarker.start.row;\n    };\n    popup.setRow = function(line) {\n        line = Math.max(0, Math.min(this.data.length, line));\n        if (selectionMarker.start.row != line) {\n            popup.selection.clearSelection();\n            selectionMarker.start.row = selectionMarker.end.row = line || 0;\n            popup.session._emit(\"changeBackMarker\");\n            popup.moveCursorTo(line || 0, 0);\n            if (popup.isOpen)\n                popup._signal(\"select\");\n        }\n    };\n\n    popup.on(\"changeSelection\", function() {\n        if (popup.isOpen)\n            popup.setRow(popup.selection.lead.row);\n        popup.renderer.scrollCursorIntoView();\n    });\n\n    popup.hide = function() {\n        this.container.style.display = \"none\";\n        this._signal(\"hide\");\n        popup.isOpen = false;\n    };\n    popup.show = function(pos, lineHeight, topdownOnly) {\n        var el = this.container;\n        var screenHeight = window.innerHeight;\n        var screenWidth = window.innerWidth;\n        var renderer = this.renderer;\n        var maxH = renderer.$maxLines * lineHeight * 1.4;\n        var top = pos.top + this.$borderSize;\n        var allowTopdown = top > screenHeight / 2 && !topdownOnly;\n        if (allowTopdown && top + lineHeight + maxH > screenHeight) {\n            renderer.$maxPixelHeight = top - 2 * this.$borderSize;\n            el.style.top = \"\";\n            el.style.bottom = screenHeight - top + \"px\";\n            popup.isTopdown = false;\n        } else {\n            top += lineHeight;\n            renderer.$maxPixelHeight = screenHeight - top - 0.2 * lineHeight;\n            el.style.top = top + \"px\";\n            el.style.bottom = \"\";\n            popup.isTopdown = true;\n        }\n\n        el.style.display = \"\";\n        this.renderer.$textLayer.checkForSizeChanges();\n\n        var left = pos.left;\n        if (left + el.offsetWidth > screenWidth)\n            left = screenWidth - el.offsetWidth;\n\n        el.style.left = left + \"px\";\n\n        this._signal(\"show\");\n        lastMouseEvent = null;\n        popup.isOpen = true;\n    };\n\n    popup.getTextLeftOffset = function() {\n        return this.$borderSize + this.renderer.$padding + this.$imageSize;\n    };\n\n    popup.$imageSize = 0;\n    popup.$borderSize = 1;\n\n    return popup;\n};\n\ndom.importCssString(\"\\\n.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {\\\n    background-color: #CAD6FA;\\\n    z-index: 1;\\\n}\\\n.ace_editor.ace_autocomplete .ace_line-hover {\\\n    border: 1px solid #abbffe;\\\n    margin-top: -1px;\\\n    background: rgba(233,233,253,0.4);\\\n}\\\n.ace_editor.ace_autocomplete .ace_line-hover {\\\n    position: absolute;\\\n    z-index: 2;\\\n}\\\n.ace_editor.ace_autocomplete .ace_scroller {\\\n   background: none;\\\n   border: none;\\\n   box-shadow: none;\\\n}\\\n.ace_rightAlignedText {\\\n    color: gray;\\\n    display: inline-block;\\\n    position: absolute;\\\n    right: 4px;\\\n    text-align: right;\\\n    z-index: -1;\\\n}\\\n.ace_editor.ace_autocomplete .ace_completion-highlight{\\\n    color: #000;\\\n    text-shadow: 0 0 0.01em;\\\n}\\\n.ace_editor.ace_autocomplete {\\\n    width: 280px;\\\n    z-index: 200000;\\\n    background: #fbfbfb;\\\n    color: #444;\\\n    border: 1px lightgray solid;\\\n    position: fixed;\\\n    box-shadow: 2px 3px 5px rgba(0,0,0,.2);\\\n    line-height: 1.4;\\\n}\");\n\nexports.AcePopup = AcePopup;\n\n});\n\nace.define(\"ace/autocomplete/util\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.parForEach = function(array, fn, callback) {\n    var completed = 0;\n    var arLength = array.length;\n    if (arLength === 0)\n        callback();\n    for (var i = 0; i < arLength; i++) {\n        fn(array[i], function(result, err) {\n            completed++;\n            if (completed === arLength)\n                callback(result, err);\n        });\n    }\n};\n\nvar ID_REGEX = /[a-zA-Z_0-9\\$\\-\\u00A2-\\uFFFF]/;\n\nexports.retrievePrecedingIdentifier = function(text, pos, regex) {\n    regex = regex || ID_REGEX;\n    var buf = [];\n    for (var i = pos-1; i >= 0; i--) {\n        if (regex.test(text[i]))\n            buf.push(text[i]);\n        else\n            break;\n    }\n    return buf.reverse().join(\"\");\n};\n\nexports.retrieveFollowingIdentifier = function(text, pos, regex) {\n    regex = regex || ID_REGEX;\n    var buf = [];\n    for (var i = pos; i < text.length; i++) {\n        if (regex.test(text[i]))\n            buf.push(text[i]);\n        else\n            break;\n    }\n    return buf;\n};\n\nexports.getCompletionPrefix = function (editor) {\n    var pos = editor.getCursorPosition();\n    var line = editor.session.getLine(pos.row);\n    var prefix;\n    editor.completers.forEach(function(completer) {\n        if (completer.identifierRegexps) {\n            completer.identifierRegexps.forEach(function(identifierRegex) {\n                if (!prefix && identifierRegex)\n                    prefix = this.retrievePrecedingIdentifier(line, pos.column, identifierRegex);\n            }.bind(this));\n        }\n    }.bind(this));\n    return prefix || this.retrievePrecedingIdentifier(line, pos.column);\n};\n\n});\n\nace.define(\"ace/autocomplete\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\",\"ace/autocomplete/popup\",\"ace/autocomplete/util\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/lib/dom\",\"ace/snippets\"], function(require, exports, module) {\n\"use strict\";\n\nvar HashHandler = require(\"./keyboard/hash_handler\").HashHandler;\nvar AcePopup = require(\"./autocomplete/popup\").AcePopup;\nvar util = require(\"./autocomplete/util\");\nvar event = require(\"./lib/event\");\nvar lang = require(\"./lib/lang\");\nvar dom = require(\"./lib/dom\");\nvar snippetManager = require(\"./snippets\").snippetManager;\n\nvar Autocomplete = function() {\n    this.autoInsert = false;\n    this.autoSelect = true;\n    this.exactMatch = false;\n    this.gatherCompletionsId = 0;\n    this.keyboardHandler = new HashHandler();\n    this.keyboardHandler.bindKeys(this.commands);\n\n    this.blurListener = this.blurListener.bind(this);\n    this.changeListener = this.changeListener.bind(this);\n    this.mousedownListener = this.mousedownListener.bind(this);\n    this.mousewheelListener = this.mousewheelListener.bind(this);\n\n    this.changeTimer = lang.delayedCall(function() {\n        this.updateCompletions(true);\n    }.bind(this));\n\n    this.tooltipTimer = lang.delayedCall(this.updateDocTooltip.bind(this), 50);\n};\n\n(function() {\n\n    this.$init = function() {\n        this.popup = new AcePopup(document.body || document.documentElement);\n        this.popup.on(\"click\", function(e) {\n            this.insertMatch();\n            e.stop();\n        }.bind(this));\n        this.popup.focus = this.editor.focus.bind(this.editor);\n        this.popup.on(\"show\", this.tooltipTimer.bind(null, null));\n        this.popup.on(\"select\", this.tooltipTimer.bind(null, null));\n        this.popup.on(\"changeHoverMarker\", this.tooltipTimer.bind(null, null));\n        return this.popup;\n    };\n\n    this.getPopup = function() {\n        return this.popup || this.$init();\n    };\n\n    this.openPopup = function(editor, prefix, keepPopupPosition) {\n        if (!this.popup)\n            this.$init();\n\n        this.popup.setData(this.completions.filtered);\n\n        editor.keyBinding.addKeyboardHandler(this.keyboardHandler);\n        \n        var renderer = editor.renderer;\n        this.popup.setRow(this.autoSelect ? 0 : -1);\n        if (!keepPopupPosition) {\n            this.popup.setTheme(editor.getTheme());\n            this.popup.setFontSize(editor.getFontSize());\n\n            var lineHeight = renderer.layerConfig.lineHeight;\n\n            var pos = renderer.$cursorLayer.getPixelPosition(this.base, true);\n            pos.left -= this.popup.getTextLeftOffset();\n\n            var rect = editor.container.getBoundingClientRect();\n            pos.top += rect.top - renderer.layerConfig.offset;\n            pos.left += rect.left - editor.renderer.scrollLeft;\n            pos.left += renderer.gutterWidth;\n\n            this.popup.show(pos, lineHeight);\n        } else if (keepPopupPosition && !prefix) {\n            this.detach();\n        }\n    };\n\n    this.detach = function() {\n        this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler);\n        this.editor.off(\"changeSelection\", this.changeListener);\n        this.editor.off(\"blur\", this.blurListener);\n        this.editor.off(\"mousedown\", this.mousedownListener);\n        this.editor.off(\"mousewheel\", this.mousewheelListener);\n        this.changeTimer.cancel();\n        this.hideDocTooltip();\n\n        this.gatherCompletionsId += 1;\n        if (this.popup && this.popup.isOpen)\n            this.popup.hide();\n\n        if (this.base)\n            this.base.detach();\n        this.activated = false;\n        this.completions = this.base = null;\n    };\n\n    this.changeListener = function(e) {\n        var cursor = this.editor.selection.lead;\n        if (cursor.row != this.base.row || cursor.column < this.base.column) {\n            this.detach();\n        }\n        if (this.activated)\n            this.changeTimer.schedule();\n        else\n            this.detach();\n    };\n\n    this.blurListener = function(e) {\n        if (e.relatedTarget && e.relatedTarget.nodeName == \"A\" && e.relatedTarget.href) {\n            window.open(e.relatedTarget.href, \"_blank\");\n        }\n        var el = document.activeElement;\n        var text = this.editor.textInput.getElement();\n        var fromTooltip = e.relatedTarget && e.relatedTarget == this.tooltipNode;\n        var container = this.popup && this.popup.container;\n        if (el != text && el.parentNode != container && !fromTooltip\n            && el != this.tooltipNode && e.relatedTarget != text\n        ) {\n            this.detach();\n        }\n    };\n\n    this.mousedownListener = function(e) {\n        this.detach();\n    };\n\n    this.mousewheelListener = function(e) {\n        this.detach();\n    };\n\n    this.goTo = function(where) {\n        var row = this.popup.getRow();\n        var max = this.popup.session.getLength() - 1;\n\n        switch(where) {\n            case \"up\": row = row <= 0 ? max : row - 1; break;\n            case \"down\": row = row >= max ? -1 : row + 1; break;\n            case \"start\": row = 0; break;\n            case \"end\": row = max; break;\n        }\n\n        this.popup.setRow(row);\n    };\n\n    this.insertMatch = function(data, options) {\n        if (!data)\n            data = this.popup.getData(this.popup.getRow());\n        if (!data)\n            return false;\n\n        if (data.completer && data.completer.insertMatch) {\n            data.completer.insertMatch(this.editor, data);\n        } else {\n            if (this.completions.filterText) {\n                var ranges = this.editor.selection.getAllRanges();\n                for (var i = 0, range; range = ranges[i]; i++) {\n                    range.start.column -= this.completions.filterText.length;\n                    this.editor.session.remove(range);\n                }\n            }\n            if (data.snippet)\n                snippetManager.insertSnippet(this.editor, data.snippet);\n            else\n                this.editor.execCommand(\"insertstring\", data.value || data);\n        }\n        this.detach();\n    };\n\n\n    this.commands = {\n        \"Up\": function(editor) { editor.completer.goTo(\"up\"); },\n        \"Down\": function(editor) { editor.completer.goTo(\"down\"); },\n        \"Ctrl-Up|Ctrl-Home\": function(editor) { editor.completer.goTo(\"start\"); },\n        \"Ctrl-Down|Ctrl-End\": function(editor) { editor.completer.goTo(\"end\"); },\n\n        \"Esc\": function(editor) { editor.completer.detach(); },\n        \"Return\": function(editor) { return editor.completer.insertMatch(); },\n        \"Shift-Return\": function(editor) { editor.completer.insertMatch(null, {deleteSuffix: true}); },\n        \"Tab\": function(editor) {\n            var result = editor.completer.insertMatch();\n            if (!result && !editor.tabstopManager)\n                editor.completer.goTo(\"down\");\n            else\n                return result;\n        },\n\n        \"PageUp\": function(editor) { editor.completer.popup.gotoPageUp(); },\n        \"PageDown\": function(editor) { editor.completer.popup.gotoPageDown(); }\n    };\n\n    this.gatherCompletions = function(editor, callback) {\n        var session = editor.getSession();\n        var pos = editor.getCursorPosition();\n\n        var line = session.getLine(pos.row);\n        var prefix = util.getCompletionPrefix(editor);\n\n        this.base = session.doc.createAnchor(pos.row, pos.column - prefix.length);\n        this.base.$insertRight = true;\n\n        var matches = [];\n        var total = editor.completers.length;\n        editor.completers.forEach(function(completer, i) {\n            completer.getCompletions(editor, session, pos, prefix, function(err, results) {\n                if (!err && results)\n                    matches = matches.concat(results);\n                var pos = editor.getCursorPosition();\n                var line = session.getLine(pos.row);\n                callback(null, {\n                    prefix: prefix,\n                    matches: matches,\n                    finished: (--total === 0)\n                });\n            });\n        });\n        return true;\n    };\n\n    this.showPopup = function(editor) {\n        if (this.editor)\n            this.detach();\n\n        this.activated = true;\n\n        this.editor = editor;\n        if (editor.completer != this) {\n            if (editor.completer)\n                editor.completer.detach();\n            editor.completer = this;\n        }\n\n        editor.on(\"changeSelection\", this.changeListener);\n        editor.on(\"blur\", this.blurListener);\n        editor.on(\"mousedown\", this.mousedownListener);\n        editor.on(\"mousewheel\", this.mousewheelListener);\n\n        this.updateCompletions();\n    };\n\n    this.updateCompletions = function(keepPopupPosition) {\n        if (keepPopupPosition && this.base && this.completions) {\n            var pos = this.editor.getCursorPosition();\n            var prefix = this.editor.session.getTextRange({start: this.base, end: pos});\n            if (prefix == this.completions.filterText)\n                return;\n            this.completions.setFilter(prefix);\n            if (!this.completions.filtered.length)\n                return this.detach();\n            if (this.completions.filtered.length == 1\n            && this.completions.filtered[0].value == prefix\n            && !this.completions.filtered[0].snippet)\n                return this.detach();\n            this.openPopup(this.editor, prefix, keepPopupPosition);\n            return;\n        }\n        var _id = this.gatherCompletionsId;\n        this.gatherCompletions(this.editor, function(err, results) {\n            var detachIfFinished = function() {\n                if (!results.finished) return;\n                return this.detach();\n            }.bind(this);\n\n            var prefix = results.prefix;\n            var matches = results && results.matches;\n\n            if (!matches || !matches.length)\n                return detachIfFinished();\n            if (prefix.indexOf(results.prefix) !== 0 || _id != this.gatherCompletionsId)\n                return;\n\n            this.completions = new FilteredList(matches);\n\n            if (this.exactMatch)\n                this.completions.exactMatch = true;\n\n            this.completions.setFilter(prefix);\n            var filtered = this.completions.filtered;\n            if (!filtered.length)\n                return detachIfFinished();\n            if (filtered.length == 1 && filtered[0].value == prefix && !filtered[0].snippet)\n                return detachIfFinished();\n            if (this.autoInsert && filtered.length == 1 && results.finished)\n                return this.insertMatch(filtered[0]);\n\n            this.openPopup(this.editor, prefix, keepPopupPosition);\n        }.bind(this));\n    };\n\n    this.cancelContextMenu = function() {\n        this.editor.$mouseHandler.cancelContextMenu();\n    };\n\n    this.updateDocTooltip = function() {\n        var popup = this.popup;\n        var all = popup.data;\n        var selected = all && (all[popup.getHoveredRow()] || all[popup.getRow()]);\n        var doc = null;\n        if (!selected || !this.editor || !this.popup.isOpen)\n            return this.hideDocTooltip();\n        this.editor.completers.some(function(completer) {\n            if (completer.getDocTooltip)\n                doc = completer.getDocTooltip(selected);\n            return doc;\n        });\n        if (!doc)\n            doc = selected;\n\n        if (typeof doc == \"string\")\n            doc = {docText: doc};\n        if (!doc || !(doc.docHTML || doc.docText))\n            return this.hideDocTooltip();\n        this.showDocTooltip(doc);\n    };\n\n    this.showDocTooltip = function(item) {\n        if (!this.tooltipNode) {\n            this.tooltipNode = dom.createElement(\"div\");\n            this.tooltipNode.className = \"ace_tooltip ace_doc-tooltip\";\n            this.tooltipNode.style.margin = 0;\n            this.tooltipNode.style.pointerEvents = \"auto\";\n            this.tooltipNode.tabIndex = -1;\n            this.tooltipNode.onblur = this.blurListener.bind(this);\n        }\n\n        var tooltipNode = this.tooltipNode;\n        if (item.docHTML) {\n            tooltipNode.innerHTML = item.docHTML;\n        } else if (item.docText) {\n            tooltipNode.textContent = item.docText;\n        }\n\n        if (!tooltipNode.parentNode)\n            document.body.appendChild(tooltipNode);\n        var popup = this.popup;\n        var rect = popup.container.getBoundingClientRect();\n        tooltipNode.style.top = popup.container.style.top;\n        tooltipNode.style.bottom = popup.container.style.bottom;\n\n        if (window.innerWidth - rect.right < 320) {\n            tooltipNode.style.right = window.innerWidth - rect.left + \"px\";\n            tooltipNode.style.left = \"\";\n        } else {\n            tooltipNode.style.left = (rect.right + 1) + \"px\";\n            tooltipNode.style.right = \"\";\n        }\n        tooltipNode.style.display = \"block\";\n    };\n\n    this.hideDocTooltip = function() {\n        this.tooltipTimer.cancel();\n        if (!this.tooltipNode) return;\n        var el = this.tooltipNode;\n        if (!this.editor.isFocused() && document.activeElement == el)\n            this.editor.focus();\n        this.tooltipNode = null;\n        if (el.parentNode)\n            el.parentNode.removeChild(el);\n    };\n\n}).call(Autocomplete.prototype);\n\nAutocomplete.startCommand = {\n    name: \"startAutocomplete\",\n    exec: function(editor) {\n        if (!editor.completer)\n            editor.completer = new Autocomplete();\n        editor.completer.autoInsert = false;\n        editor.completer.autoSelect = true;\n        editor.completer.showPopup(editor);\n        editor.completer.cancelContextMenu();\n    },\n    bindKey: \"Ctrl-Space|Ctrl-Shift-Space|Alt-Space\"\n};\n\nvar FilteredList = function(array, filterText) {\n    this.all = array;\n    this.filtered = array;\n    this.filterText = filterText || \"\";\n    this.exactMatch = false;\n};\n(function(){\n    this.setFilter = function(str) {\n        if (str.length > this.filterText && str.lastIndexOf(this.filterText, 0) === 0)\n            var matches = this.filtered;\n        else\n            var matches = this.all;\n\n        this.filterText = str;\n        matches = this.filterCompletions(matches, this.filterText);\n        matches = matches.sort(function(a, b) {\n            return b.exactMatch - a.exactMatch || b.score - a.score;\n        });\n        var prev = null;\n        matches = matches.filter(function(item){\n            var caption = item.snippet || item.caption || item.value;\n            if (caption === prev) return false;\n            prev = caption;\n            return true;\n        });\n\n        this.filtered = matches;\n    };\n    this.filterCompletions = function(items, needle) {\n        var results = [];\n        var upper = needle.toUpperCase();\n        var lower = needle.toLowerCase();\n        loop: for (var i = 0, item; item = items[i]; i++) {\n            var caption = item.value || item.caption || item.snippet;\n            if (!caption) continue;\n            var lastIndex = -1;\n            var matchMask = 0;\n            var penalty = 0;\n            var index, distance;\n\n            if (this.exactMatch) {\n                if (needle !== caption.substr(0, needle.length))\n                    continue loop;\n            }else{\n                for (var j = 0; j < needle.length; j++) {\n                    var i1 = caption.indexOf(lower[j], lastIndex + 1);\n                    var i2 = caption.indexOf(upper[j], lastIndex + 1);\n                    index = (i1 >= 0) ? ((i2 < 0 || i1 < i2) ? i1 : i2) : i2;\n                    if (index < 0)\n                        continue loop;\n                    distance = index - lastIndex - 1;\n                    if (distance > 0) {\n                        if (lastIndex === -1)\n                            penalty += 10;\n                        penalty += distance;\n                    }\n                    matchMask = matchMask | (1 << index);\n                    lastIndex = index;\n                }\n            }\n            item.matchMask = matchMask;\n            item.exactMatch = penalty ? 0 : 1;\n            item.score = (item.score || 0) - penalty;\n            results.push(item);\n        }\n        return results;\n    };\n}).call(FilteredList.prototype);\n\nexports.Autocomplete = Autocomplete;\nexports.FilteredList = FilteredList;\n\n});\n\nace.define(\"ace/autocomplete/text_completer\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n    var Range = require(\"../range\").Range;\n    \n    var splitRegex = /[^a-zA-Z_0-9\\$\\-\\u00C0-\\u1FFF\\u2C00-\\uD7FF\\w]+/;\n\n    function getWordIndex(doc, pos) {\n        var textBefore = doc.getTextRange(Range.fromPoints({row: 0, column:0}, pos));\n        return textBefore.split(splitRegex).length - 1;\n    }\n    function wordDistance(doc, pos) {\n        var prefixPos = getWordIndex(doc, pos);\n        var words = doc.getValue().split(splitRegex);\n        var wordScores = Object.create(null);\n        \n        var currentWord = words[prefixPos];\n\n        words.forEach(function(word, idx) {\n            if (!word || word === currentWord) return;\n\n            var distance = Math.abs(prefixPos - idx);\n            var score = words.length - distance;\n            if (wordScores[word]) {\n                wordScores[word] = Math.max(score, wordScores[word]);\n            } else {\n                wordScores[word] = score;\n            }\n        });\n        return wordScores;\n    }\n\n    exports.getCompletions = function(editor, session, pos, prefix, callback) {\n        var wordScore = wordDistance(session, pos, prefix);\n        var wordList = Object.keys(wordScore);\n        callback(null, wordList.map(function(word) {\n            return {\n                caption: word,\n                value: word,\n                score: wordScore[word],\n                meta: \"local\"\n            };\n        }));\n    };\n});\n\nace.define(\"ace/ext/language_tools\",[\"require\",\"exports\",\"module\",\"ace/snippets\",\"ace/autocomplete\",\"ace/config\",\"ace/lib/lang\",\"ace/autocomplete/util\",\"ace/autocomplete/text_completer\",\"ace/editor\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nvar snippetManager = require(\"../snippets\").snippetManager;\nvar Autocomplete = require(\"../autocomplete\").Autocomplete;\nvar config = require(\"../config\");\nvar lang = require(\"../lib/lang\");\nvar util = require(\"../autocomplete/util\");\n\nvar textCompleter = require(\"../autocomplete/text_completer\");\nvar keyWordCompleter = {\n    getCompletions: function(editor, session, pos, prefix, callback) {\n        if (session.$mode.completer) {\n            return session.$mode.completer.getCompletions(editor, session, pos, prefix, callback);\n        }\n        var state = editor.session.getState(pos.row);\n        var completions = session.$mode.getCompletions(state, session, pos, prefix);\n        callback(null, completions);\n    }\n};\n\nvar snippetCompleter = {\n    getCompletions: function(editor, session, pos, prefix, callback) {\n        var snippetMap = snippetManager.snippetMap;\n        var completions = [];\n        snippetManager.getActiveScopes(editor).forEach(function(scope) {\n            var snippets = snippetMap[scope] || [];\n            for (var i = snippets.length; i--;) {\n                var s = snippets[i];\n                var caption = s.name || s.tabTrigger;\n                if (!caption)\n                    continue;\n                completions.push({\n                    caption: caption,\n                    snippet: s.content,\n                    meta: s.tabTrigger && !s.name ? s.tabTrigger + \"\\u21E5 \" : \"snippet\",\n                    type: \"snippet\"\n                });\n            }\n        }, this);\n        callback(null, completions);\n    },\n    getDocTooltip: function(item) {\n        if (item.type == \"snippet\" && !item.docHTML) {\n            item.docHTML = [\n                \"<b>\", lang.escapeHTML(item.caption), \"</b>\", \"<hr></hr>\",\n                lang.escapeHTML(item.snippet)\n            ].join(\"\");\n        }\n    }\n};\n\nvar completers = [snippetCompleter, textCompleter, keyWordCompleter];\nexports.setCompleters = function(val) {\n    completers.length = 0;\n    if (val) completers.push.apply(completers, val);\n};\nexports.addCompleter = function(completer) {\n    completers.push(completer);\n};\nexports.textCompleter = textCompleter;\nexports.keyWordCompleter = keyWordCompleter;\nexports.snippetCompleter = snippetCompleter;\n\nvar expandSnippet = {\n    name: \"expandSnippet\",\n    exec: function(editor) {\n        return snippetManager.expandWithTab(editor);\n    },\n    bindKey: \"Tab\"\n};\n\nvar onChangeMode = function(e, editor) {\n    loadSnippetsForMode(editor.session.$mode);\n};\n\nvar loadSnippetsForMode = function(mode) {\n    var id = mode.$id;\n    if (!snippetManager.files)\n        snippetManager.files = {};\n    loadSnippetFile(id);\n    if (mode.modes)\n        mode.modes.forEach(loadSnippetsForMode);\n};\n\nvar loadSnippetFile = function(id) {\n    if (!id || snippetManager.files[id])\n        return;\n    var snippetFilePath = id.replace(\"mode\", \"snippets\");\n    snippetManager.files[id] = {};\n    config.loadModule(snippetFilePath, function(m) {\n        if (m) {\n            snippetManager.files[id] = m;\n            if (!m.snippets && m.snippetText)\n                m.snippets = snippetManager.parseSnippetFile(m.snippetText);\n            snippetManager.register(m.snippets || [], m.scope);\n            if (m.includeScopes) {\n                snippetManager.snippetMap[m.scope].includeScopes = m.includeScopes;\n                m.includeScopes.forEach(function(x) {\n                    loadSnippetFile(\"ace/mode/\" + x);\n                });\n            }\n        }\n    });\n};\n\nvar doLiveAutocomplete = function(e) {\n    var editor = e.editor;\n    var hasCompleter = editor.completer && editor.completer.activated;\n    if (e.command.name === \"backspace\") {\n        if (hasCompleter && !util.getCompletionPrefix(editor))\n            editor.completer.detach();\n    }\n    else if (e.command.name === \"insertstring\") {\n        var prefix = util.getCompletionPrefix(editor);\n        if (prefix && !hasCompleter) {\n            if (!editor.completer) {\n                editor.completer = new Autocomplete();\n            }\n            editor.completer.autoInsert = false;\n            editor.completer.showPopup(editor);\n        }\n    }\n};\n\nvar Editor = require(\"../editor\").Editor;\nrequire(\"../config\").defineOptions(Editor.prototype, \"editor\", {\n    enableBasicAutocompletion: {\n        set: function(val) {\n            if (val) {\n                if (!this.completers)\n                    this.completers = Array.isArray(val)? val: completers;\n                this.commands.addCommand(Autocomplete.startCommand);\n            } else {\n                this.commands.removeCommand(Autocomplete.startCommand);\n            }\n        },\n        value: false\n    },\n    enableLiveAutocompletion: {\n        set: function(val) {\n            if (val) {\n                if (!this.completers)\n                    this.completers = Array.isArray(val)? val: completers;\n                this.commands.on('afterExec', doLiveAutocomplete);\n            } else {\n                this.commands.removeListener('afterExec', doLiveAutocomplete);\n            }\n        },\n        value: false\n    },\n    enableSnippets: {\n        set: function(val) {\n            if (val) {\n                this.commands.addCommand(expandSnippet);\n                this.on(\"changeMode\", onChangeMode);\n                onChangeMode(null, this);\n            } else {\n                this.commands.removeCommand(expandSnippet);\n                this.off(\"changeMode\", onChangeMode);\n            }\n        },\n        value: false\n    }\n});\n});\n                (function() {\n                    ace.require([\"ace/ext/language_tools\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-noconflict/ext-linking.js",
    "content": "ace.define(\"ace/ext/linking\",[\"require\",\"exports\",\"module\",\"ace/editor\",\"ace/config\"], function(require, exports, module) {\n\nvar Editor = require(\"ace/editor\").Editor;\n\nrequire(\"../config\").defineOptions(Editor.prototype, \"editor\", {\n    enableLinking: {\n        set: function(val) {\n            if (val) {\n                this.on(\"click\", onClick);\n                this.on(\"mousemove\", onMouseMove);\n            } else {\n                this.off(\"click\", onClick);\n                this.off(\"mousemove\", onMouseMove);\n            }\n        },\n        value: false\n    }\n})\n\nfunction onMouseMove(e) {\n    var editor = e.editor;\n    var ctrl = e.getAccelKey();\n\n    if (ctrl) {\n        var editor = e.editor;\n        var docPos = e.getDocumentPosition();\n        var session = editor.session;\n        var token = session.getTokenAt(docPos.row, docPos.column);\n\n        editor._emit(\"linkHover\", {position: docPos, token: token});\n    }\n}\n\nfunction onClick(e) {\n    var ctrl = e.getAccelKey();\n    var button = e.getButton();\n\n    if (button == 0 && ctrl) {\n        var editor = e.editor;\n        var docPos = e.getDocumentPosition();\n        var session = editor.session;\n        var token = session.getTokenAt(docPos.row, docPos.column);\n\n        editor._emit(\"linkClick\", {position: docPos, token: token});\n    }\n}\n\n});\n                (function() {\n                    ace.require([\"ace/ext/linking\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-noconflict/ext-modelist.js",
    "content": "ace.define(\"ace/ext/modelist\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar modes = [];\nfunction getModeForPath(path) {\n    var mode = modesByName.text;\n    var fileName = path.split(/[\\/\\\\]/).pop();\n    for (var i = 0; i < modes.length; i++) {\n        if (modes[i].supportsFile(fileName)) {\n            mode = modes[i];\n            break;\n        }\n    }\n    return mode;\n}\n\nvar Mode = function(name, caption, extensions) {\n    this.name = name;\n    this.caption = caption;\n    this.mode = \"ace/mode/\" + name;\n    this.extensions = extensions;\n    var re;\n    if (/\\^/.test(extensions)) {\n        re = extensions.replace(/\\|(\\^)?/g, function(a, b){\n            return \"$|\" + (b ? \"^\" : \"^.*\\\\.\");\n        }) + \"$\";\n    } else {\n        re = \"^.*\\\\.(\" + extensions + \")$\";\n    }\n\n    this.extRe = new RegExp(re, \"gi\");\n};\n\nMode.prototype.supportsFile = function(filename) {\n    return filename.match(this.extRe);\n};\nvar supportedModes = {\n    ABAP:        [\"abap\"],\n    ABC:         [\"abc\"],\n    ActionScript:[\"as\"],\n    ADA:         [\"ada|adb\"],\n    Apache_Conf: [\"^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd\"],\n    AsciiDoc:    [\"asciidoc|adoc\"],\n    Assembly_x86:[\"asm|a\"],\n    AutoHotKey:  [\"ahk\"],\n    BatchFile:   [\"bat|cmd\"],\n    Bro:         [\"bro\"],\n    C_Cpp:       [\"cpp|c|cc|cxx|h|hh|hpp|ino\"],\n    C9Search:    [\"c9search_results\"],\n    Cirru:       [\"cirru|cr\"],\n    Clojure:     [\"clj|cljs\"],\n    Cobol:       [\"CBL|COB\"],\n    coffee:      [\"coffee|cf|cson|^Cakefile\"],\n    ColdFusion:  [\"cfm\"],\n    CSharp:      [\"cs\"],\n    CSS:         [\"css\"],\n    Curly:       [\"curly\"],\n    D:           [\"d|di\"],\n    Dart:        [\"dart\"],\n    Diff:        [\"diff|patch\"],\n    Dockerfile:  [\"^Dockerfile\"],\n    Dot:         [\"dot\"],\n    Drools:      [\"drl\"],\n    Dummy:       [\"dummy\"],\n    DummySyntax: [\"dummy\"],\n    Eiffel:      [\"e|ge\"],\n    EJS:         [\"ejs\"],\n    Elixir:      [\"ex|exs\"],\n    Elm:         [\"elm\"],\n    Erlang:      [\"erl|hrl\"],\n    Forth:       [\"frt|fs|ldr|fth|4th\"],\n    Fortran:     [\"f|f90\"],\n    FTL:         [\"ftl\"],\n    Gcode:       [\"gcode\"],\n    Gherkin:     [\"feature\"],\n    Gitignore:   [\"^.gitignore\"],\n    Glsl:        [\"glsl|frag|vert\"],\n    Gobstones:   [\"gbs\"],\n    golang:      [\"go\"],\n    Groovy:      [\"groovy\"],\n    HAML:        [\"haml\"],\n    Handlebars:  [\"hbs|handlebars|tpl|mustache\"],\n    Haskell:     [\"hs\"],\n    Haskell_Cabal:     [\"cabal\"],\n    haXe:        [\"hx\"],\n    Hjson:       [\"hjson\"],\n    HTML:        [\"html|htm|xhtml\"],\n    HTML_Elixir: [\"eex|html.eex\"],\n    HTML_Ruby:   [\"erb|rhtml|html.erb\"],\n    INI:         [\"ini|conf|cfg|prefs\"],\n    Io:          [\"io\"],\n    Jack:        [\"jack\"],\n    Jade:        [\"jade|pug\"],\n    Java:        [\"java\"],\n    JavaScript:  [\"js|jsm|jsx\"],\n    JSON:        [\"json\"],\n    JSONiq:      [\"jq\"],\n    JSP:         [\"jsp\"],\n    JSX:         [\"jsx\"],\n    Julia:       [\"jl\"],\n    Kotlin:      [\"kt|kts\"],\n    LaTeX:       [\"tex|latex|ltx|bib\"],\n    LESS:        [\"less\"],\n    Liquid:      [\"liquid\"],\n    Lisp:        [\"lisp\"],\n    LiveScript:  [\"ls\"],\n    LogiQL:      [\"logic|lql\"],\n    LSL:         [\"lsl\"],\n    Lua:         [\"lua\"],\n    LuaPage:     [\"lp\"],\n    Lucene:      [\"lucene\"],\n    Makefile:    [\"^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make\"],\n    Markdown:    [\"md|markdown\"],\n    Mask:        [\"mask\"],\n    MATLAB:      [\"matlab\"],\n    Maze:        [\"mz\"],\n    MEL:         [\"mel\"],\n    MUSHCode:    [\"mc|mush\"],\n    MySQL:       [\"mysql\"],\n    Nix:         [\"nix\"],\n    NSIS:        [\"nsi|nsh\"],\n    ObjectiveC:  [\"m|mm\"],\n    OCaml:       [\"ml|mli\"],\n    Pascal:      [\"pas|p\"],\n    Perl:        [\"pl|pm\"],\n    pgSQL:       [\"pgsql\"],\n    PHP:         [\"php|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module\"],\n    Powershell:  [\"ps1\"],\n    Praat:       [\"praat|praatscript|psc|proc\"],\n    Prolog:      [\"plg|prolog\"],\n    Properties:  [\"properties\"],\n    Protobuf:    [\"proto\"],\n    Python:      [\"py\"],\n    R:           [\"r\"],\n    Razor:       [\"cshtml|asp\"],\n    RDoc:        [\"Rd\"],\n    RHTML:       [\"Rhtml\"],\n    RST:         [\"rst\"],\n    Ruby:        [\"rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile\"],\n    Rust:        [\"rs\"],\n    SASS:        [\"sass\"],\n    SCAD:        [\"scad\"],\n    Scala:       [\"scala\"],\n    Scheme:      [\"scm|sm|rkt|oak|scheme\"],\n    SCSS:        [\"scss\"],\n    SH:          [\"sh|bash|^.bashrc\"],\n    SJS:         [\"sjs\"],\n    Smarty:      [\"smarty|tpl\"],\n    snippets:    [\"snippets\"],\n    Soy_Template:[\"soy\"],\n    Space:       [\"space\"],\n    SQL:         [\"sql\"],\n    SQLServer:   [\"sqlserver\"],\n    Stylus:      [\"styl|stylus\"],\n    SVG:         [\"svg\"],\n    Swift:       [\"swift\"],\n    Tcl:         [\"tcl\"],\n    Tex:         [\"tex\"],\n    Text:        [\"txt\"],\n    Textile:     [\"textile\"],\n    Toml:        [\"toml\"],\n    TSX:         [\"tsx\"],\n    Twig:        [\"twig|swig\"],\n    Typescript:  [\"ts|typescript|str\"],\n    Vala:        [\"vala\"],\n    VBScript:    [\"vbs|vb\"],\n    Velocity:    [\"vm\"],\n    Verilog:     [\"v|vh|sv|svh\"],\n    VHDL:        [\"vhd|vhdl\"],\n    Wollok:      [\"wlk|wpgm|wtest\"],\n    XML:         [\"xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml\"],\n    XQuery:      [\"xq\"],\n    YAML:        [\"yaml|yml\"],\n    Django:      [\"html\"]\n};\n\nvar nameOverrides = {\n    ObjectiveC: \"Objective-C\",\n    CSharp: \"C#\",\n    golang: \"Go\",\n    C_Cpp: \"C and C++\",\n    coffee: \"CoffeeScript\",\n    HTML_Ruby: \"HTML (Ruby)\",\n    HTML_Elixir: \"HTML (Elixir)\",\n    FTL: \"FreeMarker\"\n};\nvar modesByName = {};\nfor (var name in supportedModes) {\n    var data = supportedModes[name];\n    var displayName = (nameOverrides[name] || name).replace(/_/g, \" \");\n    var filename = name.toLowerCase();\n    var mode = new Mode(filename, displayName, data[0]);\n    modesByName[filename] = mode;\n    modes.push(mode);\n}\n\nmodule.exports = {\n    getModeForPath: getModeForPath,\n    modes: modes,\n    modesByName: modesByName\n};\n\n});\n                (function() {\n                    ace.require([\"ace/ext/modelist\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-noconflict/ext-old_ie.js",
    "content": "ace.define(\"ace/ext/searchbox\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\"], function(require, exports, module) {\n\"use strict\";\n\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar searchboxCss = \"\\\n.ace_search {\\\nbackground-color: #ddd;\\\nborder: 1px solid #cbcbcb;\\\nborder-top: 0 none;\\\nmax-width: 325px;\\\noverflow: hidden;\\\nmargin: 0;\\\npadding: 4px;\\\npadding-right: 6px;\\\npadding-bottom: 0;\\\nposition: absolute;\\\ntop: 0px;\\\nz-index: 99;\\\nwhite-space: normal;\\\n}\\\n.ace_search.left {\\\nborder-left: 0 none;\\\nborder-radius: 0px 0px 5px 0px;\\\nleft: 0;\\\n}\\\n.ace_search.right {\\\nborder-radius: 0px 0px 0px 5px;\\\nborder-right: 0 none;\\\nright: 0;\\\n}\\\n.ace_search_form, .ace_replace_form {\\\nborder-radius: 3px;\\\nborder: 1px solid #cbcbcb;\\\nfloat: left;\\\nmargin-bottom: 4px;\\\noverflow: hidden;\\\n}\\\n.ace_search_form.ace_nomatch {\\\noutline: 1px solid red;\\\n}\\\n.ace_search_field {\\\nbackground-color: white;\\\ncolor: black;\\\nborder-right: 1px solid #cbcbcb;\\\nborder: 0 none;\\\n-webkit-box-sizing: border-box;\\\n-moz-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nfloat: left;\\\nheight: 22px;\\\noutline: 0;\\\npadding: 0 7px;\\\nwidth: 214px;\\\nmargin: 0;\\\n}\\\n.ace_searchbtn,\\\n.ace_replacebtn {\\\nbackground: #fff;\\\nborder: 0 none;\\\nborder-left: 1px solid #dcdcdc;\\\ncursor: pointer;\\\nfloat: left;\\\nheight: 22px;\\\nmargin: 0;\\\nposition: relative;\\\n}\\\n.ace_searchbtn:last-child,\\\n.ace_replacebtn:last-child {\\\nborder-top-right-radius: 3px;\\\nborder-bottom-right-radius: 3px;\\\n}\\\n.ace_searchbtn:disabled {\\\nbackground: none;\\\ncursor: default;\\\n}\\\n.ace_searchbtn {\\\nbackground-position: 50% 50%;\\\nbackground-repeat: no-repeat;\\\nwidth: 27px;\\\n}\\\n.ace_searchbtn.prev {\\\nbackground-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiSU1NZUAC/6E0I0yACYskCpsJiySKIiY0SUZk40FyTEgCjGgKwTRAgAEAQJUIPCE+qfkAAAAASUVORK5CYII=);    \\\n}\\\n.ace_searchbtn.next {\\\nbackground-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiTE1NZQCC/0DMyIAKwGJMUAYDEo3M/s+EpvM/mkKwCQxYjIeLMaELoLMBAgwAU7UJObTKsvAAAAAASUVORK5CYII=);    \\\n}\\\n.ace_searchbtn_close {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\\\nborder-radius: 50%;\\\nborder: 0 none;\\\ncolor: #656565;\\\ncursor: pointer;\\\nfloat: right;\\\nfont: 16px/16px Arial;\\\nheight: 14px;\\\nmargin: 5px 1px 9px 5px;\\\npadding: 0;\\\ntext-align: center;\\\nwidth: 14px;\\\n}\\\n.ace_searchbtn_close:hover {\\\nbackground-color: #656565;\\\nbackground-position: 50% 100%;\\\ncolor: white;\\\n}\\\n.ace_replacebtn.prev {\\\nwidth: 54px\\\n}\\\n.ace_replacebtn.next {\\\nwidth: 27px\\\n}\\\n.ace_button {\\\nmargin-left: 2px;\\\ncursor: pointer;\\\n-webkit-user-select: none;\\\n-moz-user-select: none;\\\n-o-user-select: none;\\\n-ms-user-select: none;\\\nuser-select: none;\\\noverflow: hidden;\\\nopacity: 0.7;\\\nborder: 1px solid rgba(100,100,100,0.23);\\\npadding: 1px;\\\n-moz-box-sizing: border-box;\\\nbox-sizing:    border-box;\\\ncolor: black;\\\n}\\\n.ace_button:hover {\\\nbackground-color: #eee;\\\nopacity:1;\\\n}\\\n.ace_button:active {\\\nbackground-color: #ddd;\\\n}\\\n.ace_button.checked {\\\nborder-color: #3399ff;\\\nopacity:1;\\\n}\\\n.ace_search_options{\\\nmargin-bottom: 3px;\\\ntext-align: right;\\\n-webkit-user-select: none;\\\n-moz-user-select: none;\\\n-o-user-select: none;\\\n-ms-user-select: none;\\\nuser-select: none;\\\n}\";\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nvar keyUtil = require(\"../lib/keys\");\n\ndom.importCssString(searchboxCss, \"ace_searchbox\");\n\nvar html = '<div class=\"ace_search right\">\\\n    <button type=\"button\" action=\"hide\" class=\"ace_searchbtn_close\"></button>\\\n    <div class=\"ace_search_form\">\\\n        <input class=\"ace_search_field\" placeholder=\"Search for\" spellcheck=\"false\"></input>\\\n        <button type=\"button\" action=\"findNext\" class=\"ace_searchbtn next\"></button>\\\n        <button type=\"button\" action=\"findPrev\" class=\"ace_searchbtn prev\"></button>\\\n        <button type=\"button\" action=\"findAll\" class=\"ace_searchbtn\" title=\"Alt-Enter\">All</button>\\\n    </div>\\\n    <div class=\"ace_replace_form\">\\\n        <input class=\"ace_search_field\" placeholder=\"Replace with\" spellcheck=\"false\"></input>\\\n        <button type=\"button\" action=\"replaceAndFindNext\" class=\"ace_replacebtn\">Replace</button>\\\n        <button type=\"button\" action=\"replaceAll\" class=\"ace_replacebtn\">All</button>\\\n    </div>\\\n    <div class=\"ace_search_options\">\\\n        <span action=\"toggleRegexpMode\" class=\"ace_button\" title=\"RegExp Search\">.*</span>\\\n        <span action=\"toggleCaseSensitive\" class=\"ace_button\" title=\"CaseSensitive Search\">Aa</span>\\\n        <span action=\"toggleWholeWords\" class=\"ace_button\" title=\"Whole Word Search\">\\\\b</span>\\\n    </div>\\\n</div>'.replace(/>\\s+/g, \">\");\n\nvar SearchBox = function(editor, range, showReplaceForm) {\n    var div = dom.createElement(\"div\");\n    div.innerHTML = html;\n    this.element = div.firstChild;\n\n    this.$init();\n    this.setEditor(editor);\n};\n\n(function() {\n    this.setEditor = function(editor) {\n        editor.searchBox = this;\n        editor.container.appendChild(this.element);\n        this.editor = editor;\n    };\n\n    this.$initElements = function(sb) {\n        this.searchBox = sb.querySelector(\".ace_search_form\");\n        this.replaceBox = sb.querySelector(\".ace_replace_form\");\n        this.searchOptions = sb.querySelector(\".ace_search_options\");\n        this.regExpOption = sb.querySelector(\"[action=toggleRegexpMode]\");\n        this.caseSensitiveOption = sb.querySelector(\"[action=toggleCaseSensitive]\");\n        this.wholeWordOption = sb.querySelector(\"[action=toggleWholeWords]\");\n        this.searchInput = this.searchBox.querySelector(\".ace_search_field\");\n        this.replaceInput = this.replaceBox.querySelector(\".ace_search_field\");\n    };\n    \n    this.$init = function() {\n        var sb = this.element;\n        \n        this.$initElements(sb);\n        \n        var _this = this;\n        event.addListener(sb, \"mousedown\", function(e) {\n            setTimeout(function(){\n                _this.activeInput.focus();\n            }, 0);\n            event.stopPropagation(e);\n        });\n        event.addListener(sb, \"click\", function(e) {\n            var t = e.target || e.srcElement;\n            var action = t.getAttribute(\"action\");\n            if (action && _this[action])\n                _this[action]();\n            else if (_this.$searchBarKb.commands[action])\n                _this.$searchBarKb.commands[action].exec(_this);\n            event.stopPropagation(e);\n        });\n\n        event.addCommandKeyListener(sb, function(e, hashId, keyCode) {\n            var keyString = keyUtil.keyCodeToString(keyCode);\n            var command = _this.$searchBarKb.findKeyCommand(hashId, keyString);\n            if (command && command.exec) {\n                command.exec(_this);\n                event.stopEvent(e);\n            }\n        });\n\n        this.$onChange = lang.delayedCall(function() {\n            _this.find(false, false);\n        });\n\n        event.addListener(this.searchInput, \"input\", function() {\n            _this.$onChange.schedule(20);\n        });\n        event.addListener(this.searchInput, \"focus\", function() {\n            _this.activeInput = _this.searchInput;\n            _this.searchInput.value && _this.highlight();\n        });\n        event.addListener(this.replaceInput, \"focus\", function() {\n            _this.activeInput = _this.replaceInput;\n            _this.searchInput.value && _this.highlight();\n        });\n    };\n    this.$closeSearchBarKb = new HashHandler([{\n        bindKey: \"Esc\",\n        name: \"closeSearchBar\",\n        exec: function(editor) {\n            editor.searchBox.hide();\n        }\n    }]);\n    this.$searchBarKb = new HashHandler();\n    this.$searchBarKb.bindKeys({\n        \"Ctrl-f|Command-f\": function(sb) {\n            var isReplace = sb.isReplace = !sb.isReplace;\n            sb.replaceBox.style.display = isReplace ? \"\" : \"none\";\n            sb.searchInput.focus();\n        },\n        \"Ctrl-H|Command-Option-F\": function(sb) {\n            sb.replaceBox.style.display = \"\";\n            sb.replaceInput.focus();\n        },\n        \"Ctrl-G|Command-G\": function(sb) {\n            sb.findNext();\n        },\n        \"Ctrl-Shift-G|Command-Shift-G\": function(sb) {\n            sb.findPrev();\n        },\n        \"esc\": function(sb) {\n            setTimeout(function() { sb.hide();});\n        },\n        \"Return\": function(sb) {\n            if (sb.activeInput == sb.replaceInput)\n                sb.replace();\n            sb.findNext();\n        },\n        \"Shift-Return\": function(sb) {\n            if (sb.activeInput == sb.replaceInput)\n                sb.replace();\n            sb.findPrev();\n        },\n        \"Alt-Return\": function(sb) {\n            if (sb.activeInput == sb.replaceInput)\n                sb.replaceAll();\n            sb.findAll();\n        },\n        \"Tab\": function(sb) {\n            (sb.activeInput == sb.replaceInput ? sb.searchInput : sb.replaceInput).focus();\n        }\n    });\n\n    this.$searchBarKb.addCommands([{\n        name: \"toggleRegexpMode\",\n        bindKey: {win: \"Alt-R|Alt-/\", mac: \"Ctrl-Alt-R|Ctrl-Alt-/\"},\n        exec: function(sb) {\n            sb.regExpOption.checked = !sb.regExpOption.checked;\n            sb.$syncOptions();\n        }\n    }, {\n        name: \"toggleCaseSensitive\",\n        bindKey: {win: \"Alt-C|Alt-I\", mac: \"Ctrl-Alt-R|Ctrl-Alt-I\"},\n        exec: function(sb) {\n            sb.caseSensitiveOption.checked = !sb.caseSensitiveOption.checked;\n            sb.$syncOptions();\n        }\n    }, {\n        name: \"toggleWholeWords\",\n        bindKey: {win: \"Alt-B|Alt-W\", mac: \"Ctrl-Alt-B|Ctrl-Alt-W\"},\n        exec: function(sb) {\n            sb.wholeWordOption.checked = !sb.wholeWordOption.checked;\n            sb.$syncOptions();\n        }\n    }]);\n\n    this.$syncOptions = function() {\n        dom.setCssClass(this.regExpOption, \"checked\", this.regExpOption.checked);\n        dom.setCssClass(this.wholeWordOption, \"checked\", this.wholeWordOption.checked);\n        dom.setCssClass(this.caseSensitiveOption, \"checked\", this.caseSensitiveOption.checked);\n        this.find(false, false);\n    };\n\n    this.highlight = function(re) {\n        this.editor.session.highlight(re || this.editor.$search.$options.re);\n        this.editor.renderer.updateBackMarkers()\n    };\n    this.find = function(skipCurrent, backwards, preventScroll) {\n        var range = this.editor.find(this.searchInput.value, {\n            skipCurrent: skipCurrent,\n            backwards: backwards,\n            wrap: true,\n            regExp: this.regExpOption.checked,\n            caseSensitive: this.caseSensitiveOption.checked,\n            wholeWord: this.wholeWordOption.checked,\n            preventScroll: preventScroll\n        });\n        var noMatch = !range && this.searchInput.value;\n        dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n        this.editor._emit(\"findSearchBox\", { match: !noMatch });\n        this.highlight();\n    };\n    this.findNext = function() {\n        this.find(true, false);\n    };\n    this.findPrev = function() {\n        this.find(true, true);\n    };\n    this.findAll = function(){\n        var range = this.editor.findAll(this.searchInput.value, {            \n            regExp: this.regExpOption.checked,\n            caseSensitive: this.caseSensitiveOption.checked,\n            wholeWord: this.wholeWordOption.checked\n        });\n        var noMatch = !range && this.searchInput.value;\n        dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n        this.editor._emit(\"findSearchBox\", { match: !noMatch });\n        this.highlight();\n        this.hide();\n    };\n    this.replace = function() {\n        if (!this.editor.getReadOnly())\n            this.editor.replace(this.replaceInput.value);\n    };    \n    this.replaceAndFindNext = function() {\n        if (!this.editor.getReadOnly()) {\n            this.editor.replace(this.replaceInput.value);\n            this.findNext()\n        }\n    };\n    this.replaceAll = function() {\n        if (!this.editor.getReadOnly())\n            this.editor.replaceAll(this.replaceInput.value);\n    };\n\n    this.hide = function() {\n        this.element.style.display = \"none\";\n        this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb);\n        this.editor.focus();\n    };\n    this.show = function(value, isReplace) {\n        this.element.style.display = \"\";\n        this.replaceBox.style.display = isReplace ? \"\" : \"none\";\n\n        this.isReplace = isReplace;\n\n        if (value)\n            this.searchInput.value = value;\n        \n        this.find(false, false, true);\n        \n        this.searchInput.focus();\n        this.searchInput.select();\n\n        this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb);\n    };\n\n    this.isFocused = function() {\n        var el = document.activeElement;\n        return el == this.searchInput || el == this.replaceInput;\n    }\n}).call(SearchBox.prototype);\n\nexports.SearchBox = SearchBox;\n\nexports.Search = function(editor, isReplace) {\n    var sb = editor.searchBox || new SearchBox(editor);\n    sb.show(editor.session.getTextRange(), isReplace);\n};\n\n});\n\nace.define(\"ace/ext/old_ie\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\",\"ace/tokenizer\",\"ace/ext/searchbox\",\"ace/mode/text\"], function(require, exports, module) {\n\"use strict\";\nvar MAX_TOKEN_COUNT = 1000;\nvar useragent = require(\"../lib/useragent\");\nvar TokenizerModule = require(\"../tokenizer\");\n\nfunction patch(obj, name, regexp, replacement) {\n    eval(\"obj['\" + name + \"']=\" + obj[name].toString().replace(\n        regexp, replacement\n    ));\n}\n\nif (useragent.isIE && useragent.isIE < 10 && window.top.document.compatMode === \"BackCompat\")\n    useragent.isOldIE = true;\n\nif (typeof document != \"undefined\" && !document.documentElement.querySelector) {    \n    useragent.isOldIE = true;\n    var qs = function(el, selector) {\n        if (selector.charAt(0) == \".\") {\n            var classNeme = selector.slice(1);\n        } else {\n            var m = selector.match(/(\\w+)=(\\w+)/);\n            var attr = m && m[1];\n            var attrVal = m && m[2];\n        }\n        for (var i = 0; i < el.all.length; i++) {\n            var ch = el.all[i];\n            if (classNeme) {\n                if (ch.className.indexOf(classNeme) != -1)\n                    return ch;\n            } else if (attr) {\n                if (ch.getAttribute(attr) == attrVal)\n                    return ch;\n            }\n        }\n    };\n    var sb = require(\"./searchbox\").SearchBox.prototype;\n    patch(\n        sb, \"$initElements\",\n        /([^\\s=]*).querySelector\\((\".*?\")\\)/g, \n        \"qs($1, $2)\"\n    );\n}\n    \nvar compliantExecNpcg = /()??/.exec(\"\")[1] === undefined;\nif (compliantExecNpcg)\n    return;\nvar proto = TokenizerModule.Tokenizer.prototype;\nTokenizerModule.Tokenizer_orig = TokenizerModule.Tokenizer;\nproto.getLineTokens_orig = proto.getLineTokens;\n\npatch(\n    TokenizerModule, \"Tokenizer\",\n    \"ruleRegExps.push(adjustedregex);\\n\", \n    function(m) {\n        return m + '\\\n        if (state[i].next && RegExp(adjustedregex).test(\"\"))\\n\\\n            rule._qre = RegExp(adjustedregex, \"g\");\\n\\\n        ';\n    }\n);\nTokenizerModule.Tokenizer.prototype = proto;\npatch(\n    proto, \"getLineTokens\",\n    /if \\(match\\[i \\+ 1\\] === undefined\\)\\s*continue;/, \n    \"if (!match[i + 1]) {\\n\\\n        if (value)continue;\\n\\\n        var qre = state[mapping[i]]._qre;\\n\\\n        if (!qre) continue;\\n\\\n        qre.lastIndex = lastIndex;\\n\\\n        if (!qre.exec(line) || qre.lastIndex != lastIndex)\\n\\\n            continue;\\n\\\n    }\"\n);\n\npatch(\n    require(\"../mode/text\").Mode.prototype, \"getTokenizer\",\n    /Tokenizer/,\n    \"TokenizerModule.Tokenizer\"\n);\n\nuseragent.isOldIE = true;\n\n});\n                (function() {\n                    ace.require([\"ace/ext/old_ie\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-noconflict/ext-searchbox.js",
    "content": "ace.define(\"ace/ext/searchbox\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\"], function(require, exports, module) {\n\"use strict\";\n\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar searchboxCss = \"\\\n.ace_search {\\\nbackground-color: #ddd;\\\nborder: 1px solid #cbcbcb;\\\nborder-top: 0 none;\\\nmax-width: 325px;\\\noverflow: hidden;\\\nmargin: 0;\\\npadding: 4px;\\\npadding-right: 6px;\\\npadding-bottom: 0;\\\nposition: absolute;\\\ntop: 0px;\\\nz-index: 99;\\\nwhite-space: normal;\\\n}\\\n.ace_search.left {\\\nborder-left: 0 none;\\\nborder-radius: 0px 0px 5px 0px;\\\nleft: 0;\\\n}\\\n.ace_search.right {\\\nborder-radius: 0px 0px 0px 5px;\\\nborder-right: 0 none;\\\nright: 0;\\\n}\\\n.ace_search_form, .ace_replace_form {\\\nborder-radius: 3px;\\\nborder: 1px solid #cbcbcb;\\\nfloat: left;\\\nmargin-bottom: 4px;\\\noverflow: hidden;\\\n}\\\n.ace_search_form.ace_nomatch {\\\noutline: 1px solid red;\\\n}\\\n.ace_search_field {\\\nbackground-color: white;\\\ncolor: black;\\\nborder-right: 1px solid #cbcbcb;\\\nborder: 0 none;\\\n-webkit-box-sizing: border-box;\\\n-moz-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nfloat: left;\\\nheight: 22px;\\\noutline: 0;\\\npadding: 0 7px;\\\nwidth: 214px;\\\nmargin: 0;\\\n}\\\n.ace_searchbtn,\\\n.ace_replacebtn {\\\nbackground: #fff;\\\nborder: 0 none;\\\nborder-left: 1px solid #dcdcdc;\\\ncursor: pointer;\\\nfloat: left;\\\nheight: 22px;\\\nmargin: 0;\\\nposition: relative;\\\n}\\\n.ace_searchbtn:last-child,\\\n.ace_replacebtn:last-child {\\\nborder-top-right-radius: 3px;\\\nborder-bottom-right-radius: 3px;\\\n}\\\n.ace_searchbtn:disabled {\\\nbackground: none;\\\ncursor: default;\\\n}\\\n.ace_searchbtn {\\\nbackground-position: 50% 50%;\\\nbackground-repeat: no-repeat;\\\nwidth: 27px;\\\n}\\\n.ace_searchbtn.prev {\\\nbackground-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiSU1NZUAC/6E0I0yACYskCpsJiySKIiY0SUZk40FyTEgCjGgKwTRAgAEAQJUIPCE+qfkAAAAASUVORK5CYII=);    \\\n}\\\n.ace_searchbtn.next {\\\nbackground-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiTE1NZQCC/0DMyIAKwGJMUAYDEo3M/s+EpvM/mkKwCQxYjIeLMaELoLMBAgwAU7UJObTKsvAAAAAASUVORK5CYII=);    \\\n}\\\n.ace_searchbtn_close {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\\\nborder-radius: 50%;\\\nborder: 0 none;\\\ncolor: #656565;\\\ncursor: pointer;\\\nfloat: right;\\\nfont: 16px/16px Arial;\\\nheight: 14px;\\\nmargin: 5px 1px 9px 5px;\\\npadding: 0;\\\ntext-align: center;\\\nwidth: 14px;\\\n}\\\n.ace_searchbtn_close:hover {\\\nbackground-color: #656565;\\\nbackground-position: 50% 100%;\\\ncolor: white;\\\n}\\\n.ace_replacebtn.prev {\\\nwidth: 54px\\\n}\\\n.ace_replacebtn.next {\\\nwidth: 27px\\\n}\\\n.ace_button {\\\nmargin-left: 2px;\\\ncursor: pointer;\\\n-webkit-user-select: none;\\\n-moz-user-select: none;\\\n-o-user-select: none;\\\n-ms-user-select: none;\\\nuser-select: none;\\\noverflow: hidden;\\\nopacity: 0.7;\\\nborder: 1px solid rgba(100,100,100,0.23);\\\npadding: 1px;\\\n-moz-box-sizing: border-box;\\\nbox-sizing:    border-box;\\\ncolor: black;\\\n}\\\n.ace_button:hover {\\\nbackground-color: #eee;\\\nopacity:1;\\\n}\\\n.ace_button:active {\\\nbackground-color: #ddd;\\\n}\\\n.ace_button.checked {\\\nborder-color: #3399ff;\\\nopacity:1;\\\n}\\\n.ace_search_options{\\\nmargin-bottom: 3px;\\\ntext-align: right;\\\n-webkit-user-select: none;\\\n-moz-user-select: none;\\\n-o-user-select: none;\\\n-ms-user-select: none;\\\nuser-select: none;\\\n}\";\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nvar keyUtil = require(\"../lib/keys\");\n\ndom.importCssString(searchboxCss, \"ace_searchbox\");\n\nvar html = '<div class=\"ace_search right\">\\\n    <button type=\"button\" action=\"hide\" class=\"ace_searchbtn_close\"></button>\\\n    <div class=\"ace_search_form\">\\\n        <input class=\"ace_search_field\" placeholder=\"Search for\" spellcheck=\"false\"></input>\\\n        <button type=\"button\" action=\"findNext\" class=\"ace_searchbtn next\"></button>\\\n        <button type=\"button\" action=\"findPrev\" class=\"ace_searchbtn prev\"></button>\\\n        <button type=\"button\" action=\"findAll\" class=\"ace_searchbtn\" title=\"Alt-Enter\">All</button>\\\n    </div>\\\n    <div class=\"ace_replace_form\">\\\n        <input class=\"ace_search_field\" placeholder=\"Replace with\" spellcheck=\"false\"></input>\\\n        <button type=\"button\" action=\"replaceAndFindNext\" class=\"ace_replacebtn\">Replace</button>\\\n        <button type=\"button\" action=\"replaceAll\" class=\"ace_replacebtn\">All</button>\\\n    </div>\\\n    <div class=\"ace_search_options\">\\\n        <span action=\"toggleRegexpMode\" class=\"ace_button\" title=\"RegExp Search\">.*</span>\\\n        <span action=\"toggleCaseSensitive\" class=\"ace_button\" title=\"CaseSensitive Search\">Aa</span>\\\n        <span action=\"toggleWholeWords\" class=\"ace_button\" title=\"Whole Word Search\">\\\\b</span>\\\n    </div>\\\n</div>'.replace(/>\\s+/g, \">\");\n\nvar SearchBox = function(editor, range, showReplaceForm) {\n    var div = dom.createElement(\"div\");\n    div.innerHTML = html;\n    this.element = div.firstChild;\n\n    this.$init();\n    this.setEditor(editor);\n};\n\n(function() {\n    this.setEditor = function(editor) {\n        editor.searchBox = this;\n        editor.container.appendChild(this.element);\n        this.editor = editor;\n    };\n\n    this.$initElements = function(sb) {\n        this.searchBox = sb.querySelector(\".ace_search_form\");\n        this.replaceBox = sb.querySelector(\".ace_replace_form\");\n        this.searchOptions = sb.querySelector(\".ace_search_options\");\n        this.regExpOption = sb.querySelector(\"[action=toggleRegexpMode]\");\n        this.caseSensitiveOption = sb.querySelector(\"[action=toggleCaseSensitive]\");\n        this.wholeWordOption = sb.querySelector(\"[action=toggleWholeWords]\");\n        this.searchInput = this.searchBox.querySelector(\".ace_search_field\");\n        this.replaceInput = this.replaceBox.querySelector(\".ace_search_field\");\n    };\n    \n    this.$init = function() {\n        var sb = this.element;\n        \n        this.$initElements(sb);\n        \n        var _this = this;\n        event.addListener(sb, \"mousedown\", function(e) {\n            setTimeout(function(){\n                _this.activeInput.focus();\n            }, 0);\n            event.stopPropagation(e);\n        });\n        event.addListener(sb, \"click\", function(e) {\n            var t = e.target || e.srcElement;\n            var action = t.getAttribute(\"action\");\n            if (action && _this[action])\n                _this[action]();\n            else if (_this.$searchBarKb.commands[action])\n                _this.$searchBarKb.commands[action].exec(_this);\n            event.stopPropagation(e);\n        });\n\n        event.addCommandKeyListener(sb, function(e, hashId, keyCode) {\n            var keyString = keyUtil.keyCodeToString(keyCode);\n            var command = _this.$searchBarKb.findKeyCommand(hashId, keyString);\n            if (command && command.exec) {\n                command.exec(_this);\n                event.stopEvent(e);\n            }\n        });\n\n        this.$onChange = lang.delayedCall(function() {\n            _this.find(false, false);\n        });\n\n        event.addListener(this.searchInput, \"input\", function() {\n            _this.$onChange.schedule(20);\n        });\n        event.addListener(this.searchInput, \"focus\", function() {\n            _this.activeInput = _this.searchInput;\n            _this.searchInput.value && _this.highlight();\n        });\n        event.addListener(this.replaceInput, \"focus\", function() {\n            _this.activeInput = _this.replaceInput;\n            _this.searchInput.value && _this.highlight();\n        });\n    };\n    this.$closeSearchBarKb = new HashHandler([{\n        bindKey: \"Esc\",\n        name: \"closeSearchBar\",\n        exec: function(editor) {\n            editor.searchBox.hide();\n        }\n    }]);\n    this.$searchBarKb = new HashHandler();\n    this.$searchBarKb.bindKeys({\n        \"Ctrl-f|Command-f\": function(sb) {\n            var isReplace = sb.isReplace = !sb.isReplace;\n            sb.replaceBox.style.display = isReplace ? \"\" : \"none\";\n            sb.searchInput.focus();\n        },\n        \"Ctrl-H|Command-Option-F\": function(sb) {\n            sb.replaceBox.style.display = \"\";\n            sb.replaceInput.focus();\n        },\n        \"Ctrl-G|Command-G\": function(sb) {\n            sb.findNext();\n        },\n        \"Ctrl-Shift-G|Command-Shift-G\": function(sb) {\n            sb.findPrev();\n        },\n        \"esc\": function(sb) {\n            setTimeout(function() { sb.hide();});\n        },\n        \"Return\": function(sb) {\n            if (sb.activeInput == sb.replaceInput)\n                sb.replace();\n            sb.findNext();\n        },\n        \"Shift-Return\": function(sb) {\n            if (sb.activeInput == sb.replaceInput)\n                sb.replace();\n            sb.findPrev();\n        },\n        \"Alt-Return\": function(sb) {\n            if (sb.activeInput == sb.replaceInput)\n                sb.replaceAll();\n            sb.findAll();\n        },\n        \"Tab\": function(sb) {\n            (sb.activeInput == sb.replaceInput ? sb.searchInput : sb.replaceInput).focus();\n        }\n    });\n\n    this.$searchBarKb.addCommands([{\n        name: \"toggleRegexpMode\",\n        bindKey: {win: \"Alt-R|Alt-/\", mac: \"Ctrl-Alt-R|Ctrl-Alt-/\"},\n        exec: function(sb) {\n            sb.regExpOption.checked = !sb.regExpOption.checked;\n            sb.$syncOptions();\n        }\n    }, {\n        name: \"toggleCaseSensitive\",\n        bindKey: {win: \"Alt-C|Alt-I\", mac: \"Ctrl-Alt-R|Ctrl-Alt-I\"},\n        exec: function(sb) {\n            sb.caseSensitiveOption.checked = !sb.caseSensitiveOption.checked;\n            sb.$syncOptions();\n        }\n    }, {\n        name: \"toggleWholeWords\",\n        bindKey: {win: \"Alt-B|Alt-W\", mac: \"Ctrl-Alt-B|Ctrl-Alt-W\"},\n        exec: function(sb) {\n            sb.wholeWordOption.checked = !sb.wholeWordOption.checked;\n            sb.$syncOptions();\n        }\n    }]);\n\n    this.$syncOptions = function() {\n        dom.setCssClass(this.regExpOption, \"checked\", this.regExpOption.checked);\n        dom.setCssClass(this.wholeWordOption, \"checked\", this.wholeWordOption.checked);\n        dom.setCssClass(this.caseSensitiveOption, \"checked\", this.caseSensitiveOption.checked);\n        this.find(false, false);\n    };\n\n    this.highlight = function(re) {\n        this.editor.session.highlight(re || this.editor.$search.$options.re);\n        this.editor.renderer.updateBackMarkers()\n    };\n    this.find = function(skipCurrent, backwards, preventScroll) {\n        var range = this.editor.find(this.searchInput.value, {\n            skipCurrent: skipCurrent,\n            backwards: backwards,\n            wrap: true,\n            regExp: this.regExpOption.checked,\n            caseSensitive: this.caseSensitiveOption.checked,\n            wholeWord: this.wholeWordOption.checked,\n            preventScroll: preventScroll\n        });\n        var noMatch = !range && this.searchInput.value;\n        dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n        this.editor._emit(\"findSearchBox\", { match: !noMatch });\n        this.highlight();\n    };\n    this.findNext = function() {\n        this.find(true, false);\n    };\n    this.findPrev = function() {\n        this.find(true, true);\n    };\n    this.findAll = function(){\n        var range = this.editor.findAll(this.searchInput.value, {            \n            regExp: this.regExpOption.checked,\n            caseSensitive: this.caseSensitiveOption.checked,\n            wholeWord: this.wholeWordOption.checked\n        });\n        var noMatch = !range && this.searchInput.value;\n        dom.setCssClass(this.searchBox, \"ace_nomatch\", noMatch);\n        this.editor._emit(\"findSearchBox\", { match: !noMatch });\n        this.highlight();\n        this.hide();\n    };\n    this.replace = function() {\n        if (!this.editor.getReadOnly())\n            this.editor.replace(this.replaceInput.value);\n    };    \n    this.replaceAndFindNext = function() {\n        if (!this.editor.getReadOnly()) {\n            this.editor.replace(this.replaceInput.value);\n            this.findNext()\n        }\n    };\n    this.replaceAll = function() {\n        if (!this.editor.getReadOnly())\n            this.editor.replaceAll(this.replaceInput.value);\n    };\n\n    this.hide = function() {\n        this.element.style.display = \"none\";\n        this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb);\n        this.editor.focus();\n    };\n    this.show = function(value, isReplace) {\n        this.element.style.display = \"\";\n        this.replaceBox.style.display = isReplace ? \"\" : \"none\";\n\n        this.isReplace = isReplace;\n\n        if (value)\n            this.searchInput.value = value;\n        \n        this.find(false, false, true);\n        \n        this.searchInput.focus();\n        this.searchInput.select();\n\n        this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb);\n    };\n\n    this.isFocused = function() {\n        var el = document.activeElement;\n        return el == this.searchInput || el == this.replaceInput;\n    }\n}).call(SearchBox.prototype);\n\nexports.SearchBox = SearchBox;\n\nexports.Search = function(editor, isReplace) {\n    var sb = editor.searchBox || new SearchBox(editor);\n    sb.show(editor.session.getTextRange(), isReplace);\n};\n\n});\n                (function() {\n                    ace.require([\"ace/ext/searchbox\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-noconflict/ext-settings_menu.js",
    "content": "ace.define(\"ace/ext/menu_tools/element_generator\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n'use strict';\nmodule.exports.createOption = function createOption (obj) {\n    var attribute;\n    var el = document.createElement('option');\n    for(attribute in obj) {\n        if(obj.hasOwnProperty(attribute)) {\n            if(attribute === 'selected') {\n                el.setAttribute(attribute, obj[attribute]);\n            } else {\n                el[attribute] = obj[attribute];\n            }\n        }\n    }\n    return el;\n};\nmodule.exports.createCheckbox = function createCheckbox (id, checked, clss) {\n    var el = document.createElement('input');\n    el.setAttribute('type', 'checkbox');\n    el.setAttribute('id', id);\n    el.setAttribute('name', id);\n    el.setAttribute('value', checked);\n    el.setAttribute('class', clss);\n    if(checked) {\n        el.setAttribute('checked', 'checked');\n    }\n    return el;\n};\nmodule.exports.createInput = function createInput (id, value, clss) {\n    var el = document.createElement('input');\n    el.setAttribute('type', 'text');\n    el.setAttribute('id', id);\n    el.setAttribute('name', id);\n    el.setAttribute('value', value);\n    el.setAttribute('class', clss);\n    return el;\n};\nmodule.exports.createLabel = function createLabel (text, labelFor) {\n    var el = document.createElement('label');\n    el.setAttribute('for', labelFor);\n    el.textContent = text;\n    return el;\n};\nmodule.exports.createSelection = function createSelection (id, values, clss) {\n    var el = document.createElement('select');\n    el.setAttribute('id', id);\n    el.setAttribute('name', id);\n    el.setAttribute('class', clss);\n    values.forEach(function(item) {\n        el.appendChild(module.exports.createOption(item));\n    });\n    return el;\n};\n\n});\n\nace.define(\"ace/ext/modelist\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar modes = [];\nfunction getModeForPath(path) {\n    var mode = modesByName.text;\n    var fileName = path.split(/[\\/\\\\]/).pop();\n    for (var i = 0; i < modes.length; i++) {\n        if (modes[i].supportsFile(fileName)) {\n            mode = modes[i];\n            break;\n        }\n    }\n    return mode;\n}\n\nvar Mode = function(name, caption, extensions) {\n    this.name = name;\n    this.caption = caption;\n    this.mode = \"ace/mode/\" + name;\n    this.extensions = extensions;\n    var re;\n    if (/\\^/.test(extensions)) {\n        re = extensions.replace(/\\|(\\^)?/g, function(a, b){\n            return \"$|\" + (b ? \"^\" : \"^.*\\\\.\");\n        }) + \"$\";\n    } else {\n        re = \"^.*\\\\.(\" + extensions + \")$\";\n    }\n\n    this.extRe = new RegExp(re, \"gi\");\n};\n\nMode.prototype.supportsFile = function(filename) {\n    return filename.match(this.extRe);\n};\nvar supportedModes = {\n    ABAP:        [\"abap\"],\n    ABC:         [\"abc\"],\n    ActionScript:[\"as\"],\n    ADA:         [\"ada|adb\"],\n    Apache_Conf: [\"^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd\"],\n    AsciiDoc:    [\"asciidoc|adoc\"],\n    Assembly_x86:[\"asm|a\"],\n    AutoHotKey:  [\"ahk\"],\n    BatchFile:   [\"bat|cmd\"],\n    Bro:         [\"bro\"],\n    C_Cpp:       [\"cpp|c|cc|cxx|h|hh|hpp|ino\"],\n    C9Search:    [\"c9search_results\"],\n    Cirru:       [\"cirru|cr\"],\n    Clojure:     [\"clj|cljs\"],\n    Cobol:       [\"CBL|COB\"],\n    coffee:      [\"coffee|cf|cson|^Cakefile\"],\n    ColdFusion:  [\"cfm\"],\n    CSharp:      [\"cs\"],\n    CSS:         [\"css\"],\n    Curly:       [\"curly\"],\n    D:           [\"d|di\"],\n    Dart:        [\"dart\"],\n    Diff:        [\"diff|patch\"],\n    Dockerfile:  [\"^Dockerfile\"],\n    Dot:         [\"dot\"],\n    Drools:      [\"drl\"],\n    Dummy:       [\"dummy\"],\n    DummySyntax: [\"dummy\"],\n    Eiffel:      [\"e|ge\"],\n    EJS:         [\"ejs\"],\n    Elixir:      [\"ex|exs\"],\n    Elm:         [\"elm\"],\n    Erlang:      [\"erl|hrl\"],\n    Forth:       [\"frt|fs|ldr|fth|4th\"],\n    Fortran:     [\"f|f90\"],\n    FTL:         [\"ftl\"],\n    Gcode:       [\"gcode\"],\n    Gherkin:     [\"feature\"],\n    Gitignore:   [\"^.gitignore\"],\n    Glsl:        [\"glsl|frag|vert\"],\n    Gobstones:   [\"gbs\"],\n    golang:      [\"go\"],\n    Groovy:      [\"groovy\"],\n    HAML:        [\"haml\"],\n    Handlebars:  [\"hbs|handlebars|tpl|mustache\"],\n    Haskell:     [\"hs\"],\n    Haskell_Cabal:     [\"cabal\"],\n    haXe:        [\"hx\"],\n    Hjson:       [\"hjson\"],\n    HTML:        [\"html|htm|xhtml\"],\n    HTML_Elixir: [\"eex|html.eex\"],\n    HTML_Ruby:   [\"erb|rhtml|html.erb\"],\n    INI:         [\"ini|conf|cfg|prefs\"],\n    Io:          [\"io\"],\n    Jack:        [\"jack\"],\n    Jade:        [\"jade|pug\"],\n    Java:        [\"java\"],\n    JavaScript:  [\"js|jsm|jsx\"],\n    JSON:        [\"json\"],\n    JSONiq:      [\"jq\"],\n    JSP:         [\"jsp\"],\n    JSX:         [\"jsx\"],\n    Julia:       [\"jl\"],\n    Kotlin:      [\"kt|kts\"],\n    LaTeX:       [\"tex|latex|ltx|bib\"],\n    LESS:        [\"less\"],\n    Liquid:      [\"liquid\"],\n    Lisp:        [\"lisp\"],\n    LiveScript:  [\"ls\"],\n    LogiQL:      [\"logic|lql\"],\n    LSL:         [\"lsl\"],\n    Lua:         [\"lua\"],\n    LuaPage:     [\"lp\"],\n    Lucene:      [\"lucene\"],\n    Makefile:    [\"^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make\"],\n    Markdown:    [\"md|markdown\"],\n    Mask:        [\"mask\"],\n    MATLAB:      [\"matlab\"],\n    Maze:        [\"mz\"],\n    MEL:         [\"mel\"],\n    MUSHCode:    [\"mc|mush\"],\n    MySQL:       [\"mysql\"],\n    Nix:         [\"nix\"],\n    NSIS:        [\"nsi|nsh\"],\n    ObjectiveC:  [\"m|mm\"],\n    OCaml:       [\"ml|mli\"],\n    Pascal:      [\"pas|p\"],\n    Perl:        [\"pl|pm\"],\n    pgSQL:       [\"pgsql\"],\n    PHP:         [\"php|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module\"],\n    Powershell:  [\"ps1\"],\n    Praat:       [\"praat|praatscript|psc|proc\"],\n    Prolog:      [\"plg|prolog\"],\n    Properties:  [\"properties\"],\n    Protobuf:    [\"proto\"],\n    Python:      [\"py\"],\n    R:           [\"r\"],\n    Razor:       [\"cshtml|asp\"],\n    RDoc:        [\"Rd\"],\n    RHTML:       [\"Rhtml\"],\n    RST:         [\"rst\"],\n    Ruby:        [\"rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile\"],\n    Rust:        [\"rs\"],\n    SASS:        [\"sass\"],\n    SCAD:        [\"scad\"],\n    Scala:       [\"scala\"],\n    Scheme:      [\"scm|sm|rkt|oak|scheme\"],\n    SCSS:        [\"scss\"],\n    SH:          [\"sh|bash|^.bashrc\"],\n    SJS:         [\"sjs\"],\n    Smarty:      [\"smarty|tpl\"],\n    snippets:    [\"snippets\"],\n    Soy_Template:[\"soy\"],\n    Space:       [\"space\"],\n    SQL:         [\"sql\"],\n    SQLServer:   [\"sqlserver\"],\n    Stylus:      [\"styl|stylus\"],\n    SVG:         [\"svg\"],\n    Swift:       [\"swift\"],\n    Tcl:         [\"tcl\"],\n    Tex:         [\"tex\"],\n    Text:        [\"txt\"],\n    Textile:     [\"textile\"],\n    Toml:        [\"toml\"],\n    TSX:         [\"tsx\"],\n    Twig:        [\"twig|swig\"],\n    Typescript:  [\"ts|typescript|str\"],\n    Vala:        [\"vala\"],\n    VBScript:    [\"vbs|vb\"],\n    Velocity:    [\"vm\"],\n    Verilog:     [\"v|vh|sv|svh\"],\n    VHDL:        [\"vhd|vhdl\"],\n    Wollok:      [\"wlk|wpgm|wtest\"],\n    XML:         [\"xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml\"],\n    XQuery:      [\"xq\"],\n    YAML:        [\"yaml|yml\"],\n    Django:      [\"html\"]\n};\n\nvar nameOverrides = {\n    ObjectiveC: \"Objective-C\",\n    CSharp: \"C#\",\n    golang: \"Go\",\n    C_Cpp: \"C and C++\",\n    coffee: \"CoffeeScript\",\n    HTML_Ruby: \"HTML (Ruby)\",\n    HTML_Elixir: \"HTML (Elixir)\",\n    FTL: \"FreeMarker\"\n};\nvar modesByName = {};\nfor (var name in supportedModes) {\n    var data = supportedModes[name];\n    var displayName = (nameOverrides[name] || name).replace(/_/g, \" \");\n    var filename = name.toLowerCase();\n    var mode = new Mode(filename, displayName, data[0]);\n    modesByName[filename] = mode;\n    modes.push(mode);\n}\n\nmodule.exports = {\n    getModeForPath: getModeForPath,\n    modes: modes,\n    modesByName: modesByName\n};\n\n});\n\nace.define(\"ace/ext/themelist\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\"], function(require, exports, module) {\n\"use strict\";\nrequire(\"ace/lib/fixoldbrowsers\");\n\nvar themeData = [\n    [\"Chrome\"         ],\n    [\"Clouds\"         ],\n    [\"Crimson Editor\" ],\n    [\"Dawn\"           ],\n    [\"Dreamweaver\"    ],\n    [\"Eclipse\"        ],\n    [\"GitHub\"         ],\n    [\"IPlastic\"       ],\n    [\"Solarized Light\"],\n    [\"TextMate\"       ],\n    [\"Tomorrow\"       ],\n    [\"XCode\"          ],\n    [\"Kuroir\"],\n    [\"KatzenMilch\"],\n    [\"SQL Server\"           ,\"sqlserver\"               , \"light\"],\n    [\"Ambiance\"             ,\"ambiance\"                ,  \"dark\"],\n    [\"Chaos\"                ,\"chaos\"                   ,  \"dark\"],\n    [\"Clouds Midnight\"      ,\"clouds_midnight\"         ,  \"dark\"],\n    [\"Cobalt\"               ,\"cobalt\"                  ,  \"dark\"],\n    [\"Gruvbox\"              ,\"gruvbox\"                 ,  \"dark\"],\n    [\"idle Fingers\"         ,\"idle_fingers\"            ,  \"dark\"],\n    [\"krTheme\"              ,\"kr_theme\"                ,  \"dark\"],\n    [\"Merbivore\"            ,\"merbivore\"               ,  \"dark\"],\n    [\"Merbivore Soft\"       ,\"merbivore_soft\"          ,  \"dark\"],\n    [\"Mono Industrial\"      ,\"mono_industrial\"         ,  \"dark\"],\n    [\"Monokai\"              ,\"monokai\"                 ,  \"dark\"],\n    [\"Pastel on dark\"       ,\"pastel_on_dark\"          ,  \"dark\"],\n    [\"Solarized Dark\"       ,\"solarized_dark\"          ,  \"dark\"],\n    [\"Terminal\"             ,\"terminal\"                ,  \"dark\"],\n    [\"Tomorrow Night\"       ,\"tomorrow_night\"          ,  \"dark\"],\n    [\"Tomorrow Night Blue\"  ,\"tomorrow_night_blue\"     ,  \"dark\"],\n    [\"Tomorrow Night Bright\",\"tomorrow_night_bright\"   ,  \"dark\"],\n    [\"Tomorrow Night 80s\"   ,\"tomorrow_night_eighties\" ,  \"dark\"],\n    [\"Twilight\"             ,\"twilight\"                ,  \"dark\"],\n    [\"Vibrant Ink\"          ,\"vibrant_ink\"             ,  \"dark\"]\n];\n\n\nexports.themesByName = {};\nexports.themes = themeData.map(function(data) {\n    var name = data[1] || data[0].replace(/ /g, \"_\").toLowerCase();\n    var theme = {\n        caption: data[0],\n        theme: \"ace/theme/\" + name,\n        isDark: data[2] == \"dark\",\n        name: name\n    };\n    exports.themesByName[name] = theme;\n    return theme;\n});\n\n});\n\nace.define(\"ace/ext/menu_tools/add_editor_menu_options\",[\"require\",\"exports\",\"module\",\"ace/ext/modelist\",\"ace/ext/themelist\"], function(require, exports, module) {\n'use strict';\nmodule.exports.addEditorMenuOptions = function addEditorMenuOptions (editor) {\n    var modelist = require('../modelist');\n    var themelist = require('../themelist');\n    editor.menuOptions = {\n        setNewLineMode: [{\n            textContent: \"unix\",\n            value: \"unix\"\n        }, {\n            textContent: \"windows\",\n            value: \"windows\"\n        }, {\n            textContent: \"auto\",\n            value: \"auto\"\n        }],\n        setTheme: [],\n        setMode: [],\n        setKeyboardHandler: [{\n            textContent: \"ace\",\n            value: \"\"\n        }, {\n            textContent: \"vim\",\n            value: \"ace/keyboard/vim\"\n        }, {\n            textContent: \"emacs\",\n            value: \"ace/keyboard/emacs\"\n        }, {\n            textContent: \"textarea\",\n            value: \"ace/keyboard/textarea\"\n        }, {\n            textContent: \"sublime\",\n            value: \"ace/keyboard/sublime\"\n        }]\n    };\n\n    editor.menuOptions.setTheme = themelist.themes.map(function(theme) {\n        return {\n            textContent: theme.caption,\n            value: theme.theme\n        };\n    });\n\n    editor.menuOptions.setMode = modelist.modes.map(function(mode) {\n        return {\n            textContent: mode.name,\n            value: mode.mode\n        };\n    });\n};\n\n\n});\n\nace.define(\"ace/ext/menu_tools/get_set_functions\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n'use strict';\nmodule.exports.getSetFunctions = function getSetFunctions (editor) {\n    var out = [];\n    var my = {\n        'editor' : editor,\n        'session' : editor.session,\n        'renderer' : editor.renderer\n    };\n    var opts = [];\n    var skip = [\n        'setOption',\n        'setUndoManager',\n        'setDocument',\n        'setValue',\n        'setBreakpoints',\n        'setScrollTop',\n        'setScrollLeft',\n        'setSelectionStyle',\n        'setWrapLimitRange'\n    ];\n    ['renderer', 'session', 'editor'].forEach(function(esra) {\n        var esr = my[esra];\n        var clss = esra;\n        for(var fn in esr) {\n            if(skip.indexOf(fn) === -1) {\n                if(/^set/.test(fn) && opts.indexOf(fn) === -1) {\n                    opts.push(fn);\n                    out.push({\n                        'functionName' : fn,\n                        'parentObj' : esr,\n                        'parentName' : clss\n                    });\n                }\n            }\n        }\n    });\n    return out;\n};\n\n});\n\nace.define(\"ace/ext/menu_tools/generate_settings_menu\",[\"require\",\"exports\",\"module\",\"ace/ext/menu_tools/element_generator\",\"ace/ext/menu_tools/add_editor_menu_options\",\"ace/ext/menu_tools/get_set_functions\",\"ace/ace\"], function(require, exports, module) {\n'use strict';\nvar egen = require('./element_generator');\nvar addEditorMenuOptions = require('./add_editor_menu_options').addEditorMenuOptions;\nvar getSetFunctions = require('./get_set_functions').getSetFunctions;\nmodule.exports.generateSettingsMenu = function generateSettingsMenu (editor) {\n    var elements = [];\n    function cleanupElementsList() {\n        elements.sort(function(a, b) {\n            var x = a.getAttribute('contains');\n            var y = b.getAttribute('contains');\n            return x.localeCompare(y);\n        });\n    }\n    function wrapElements() {\n        var topmenu = document.createElement('div');\n        topmenu.setAttribute('id', 'ace_settingsmenu');\n        elements.forEach(function(element) {\n            topmenu.appendChild(element);\n        });\n        \n        var el = topmenu.appendChild(document.createElement('div'));\n        var version = require(\"../../ace\").version;\n        el.style.padding = \"1em\";\n        el.textContent = \"Ace version \" + version;\n        \n        return topmenu;\n    }\n    function createNewEntry(obj, clss, item, val) {\n        var el;\n        var div = document.createElement('div');\n        div.setAttribute('contains', item);\n        div.setAttribute('class', 'ace_optionsMenuEntry');\n        div.setAttribute('style', 'clear: both;');\n\n        div.appendChild(egen.createLabel(\n            item.replace(/^set/, '').replace(/([A-Z])/g, ' $1').trim(),\n            item\n        ));\n\n        if (Array.isArray(val)) {\n            el = egen.createSelection(item, val, clss);\n            el.addEventListener('change', function(e) {\n                try{\n                    editor.menuOptions[e.target.id].forEach(function(x) {\n                        if(x.textContent !== e.target.textContent) {\n                            delete x.selected;\n                        }\n                    });\n                    obj[e.target.id](e.target.value);\n                } catch (err) {\n                    throw new Error(err);\n                }\n            });\n        } else if(typeof val === 'boolean') {\n            el = egen.createCheckbox(item, val, clss);\n            el.addEventListener('change', function(e) {\n                try{\n                    obj[e.target.id](!!e.target.checked);\n                } catch (err) {\n                    throw new Error(err);\n                }\n            });\n        } else {\n            el = egen.createInput(item, val, clss);\n            el.addEventListener('change', function(e) {\n                try{\n                    if(e.target.value === 'true') {\n                        obj[e.target.id](true);\n                    } else if(e.target.value === 'false') {\n                        obj[e.target.id](false);\n                    } else {\n                        obj[e.target.id](e.target.value);\n                    }\n                } catch (err) {\n                    throw new Error(err);\n                }\n            });\n        }\n        el.style.cssText = 'float:right;';\n        div.appendChild(el);\n        return div;\n    }\n    function makeDropdown(item, esr, clss, fn) {\n        var val = editor.menuOptions[item];\n        var currentVal = esr[fn]();\n        if (typeof currentVal == 'object')\n            currentVal = currentVal.$id;\n        val.forEach(function(valuex) {\n            if (valuex.value === currentVal)\n                valuex.selected = 'selected';\n        });\n        return createNewEntry(esr, clss, item, val);\n    }\n    function handleSet(setObj) {\n        var item = setObj.functionName;\n        var esr = setObj.parentObj;\n        var clss = setObj.parentName;\n        var val;\n        var fn = item.replace(/^set/, 'get');\n        if(editor.menuOptions[item] !== undefined) {\n            elements.push(makeDropdown(item, esr, clss, fn));\n        } else if(typeof esr[fn] === 'function') {\n            try {\n                val = esr[fn]();\n                if(typeof val === 'object') {\n                    val = val.$id;\n                }\n                elements.push(\n                    createNewEntry(esr, clss, item, val)\n                );\n            } catch (e) {\n            }\n        }\n    }\n    addEditorMenuOptions(editor);\n    getSetFunctions(editor).forEach(function(setObj) {\n        handleSet(setObj);\n    });\n    cleanupElementsList();\n    return wrapElements();\n};\n\n});\n\nace.define(\"ace/ext/menu_tools/overlay_page\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n'use strict';\nvar dom = require(\"../../lib/dom\");\nvar cssText = \"#ace_settingsmenu, #kbshortcutmenu {\\\nbackground-color: #F7F7F7;\\\ncolor: black;\\\nbox-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);\\\npadding: 1em 0.5em 2em 1em;\\\noverflow: auto;\\\nposition: absolute;\\\nmargin: 0;\\\nbottom: 0;\\\nright: 0;\\\ntop: 0;\\\nz-index: 9991;\\\ncursor: default;\\\n}\\\n.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {\\\nbox-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);\\\nbackground-color: rgba(255, 255, 255, 0.6);\\\ncolor: black;\\\n}\\\n.ace_optionsMenuEntry:hover {\\\nbackground-color: rgba(100, 100, 100, 0.1);\\\n-webkit-transition: all 0.5s;\\\ntransition: all 0.3s\\\n}\\\n.ace_closeButton {\\\nbackground: rgba(245, 146, 146, 0.5);\\\nborder: 1px solid #F48A8A;\\\nborder-radius: 50%;\\\npadding: 7px;\\\nposition: absolute;\\\nright: -8px;\\\ntop: -8px;\\\nz-index: 1000;\\\n}\\\n.ace_closeButton{\\\nbackground: rgba(245, 146, 146, 0.9);\\\n}\\\n.ace_optionsMenuKey {\\\ncolor: darkslateblue;\\\nfont-weight: bold;\\\n}\\\n.ace_optionsMenuCommand {\\\ncolor: darkcyan;\\\nfont-weight: normal;\\\n}\";\ndom.importCssString(cssText);\nmodule.exports.overlayPage = function overlayPage(editor, contentElement, top, right, bottom, left) {\n    top = top ? 'top: ' + top + ';' : '';\n    bottom = bottom ? 'bottom: ' + bottom + ';' : '';\n    right = right ? 'right: ' + right + ';' : '';\n    left = left ? 'left: ' + left + ';' : '';\n\n    var closer = document.createElement('div');\n    var contentContainer = document.createElement('div');\n\n    function documentEscListener(e) {\n        if (e.keyCode === 27) {\n            closer.click();\n        }\n    }\n\n    closer.style.cssText = 'margin: 0; padding: 0; ' +\n        'position: fixed; top:0; bottom:0; left:0; right:0;' +\n        'z-index: 9990; ' +\n        'background-color: rgba(0, 0, 0, 0.3);';\n    closer.addEventListener('click', function() {\n        document.removeEventListener('keydown', documentEscListener);\n        closer.parentNode.removeChild(closer);\n        editor.focus();\n        closer = null;\n    });\n    document.addEventListener('keydown', documentEscListener);\n\n    contentContainer.style.cssText = top + right + bottom + left;\n    contentContainer.addEventListener('click', function(e) {\n        e.stopPropagation();\n    });\n\n    var wrapper = dom.createElement(\"div\");\n    wrapper.style.position = \"relative\";\n    \n    var closeButton = dom.createElement(\"div\");\n    closeButton.className = \"ace_closeButton\";\n    closeButton.addEventListener('click', function() {\n        closer.click();\n    });\n    \n    wrapper.appendChild(closeButton);\n    contentContainer.appendChild(wrapper);\n    \n    contentContainer.appendChild(contentElement);\n    closer.appendChild(contentContainer);\n    document.body.appendChild(closer);\n    editor.blur();\n};\n\n});\n\nace.define(\"ace/ext/settings_menu\",[\"require\",\"exports\",\"module\",\"ace/ext/menu_tools/generate_settings_menu\",\"ace/ext/menu_tools/overlay_page\",\"ace/editor\"], function(require, exports, module) {\n\"use strict\";\nvar generateSettingsMenu = require('./menu_tools/generate_settings_menu').generateSettingsMenu;\nvar overlayPage = require('./menu_tools/overlay_page').overlayPage;\nfunction showSettingsMenu(editor) {\n    var sm = document.getElementById('ace_settingsmenu');\n    if (!sm)    \n        overlayPage(editor, generateSettingsMenu(editor), '0', '0', '0');\n}\nmodule.exports.init = function(editor) {\n    var Editor = require(\"ace/editor\").Editor;\n    Editor.prototype.showSettingsMenu = function() {\n        showSettingsMenu(this);\n    };\n};\n});\n                (function() {\n                    ace.require([\"ace/ext/settings_menu\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-noconflict/ext-spellcheck.js",
    "content": "ace.define(\"ace/ext/spellcheck\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/editor\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\nvar event = require(\"../lib/event\");\n\nexports.contextMenuHandler = function(e){\n    var host = e.target;\n    var text = host.textInput.getElement();\n    if (!host.selection.isEmpty())\n        return;\n    var c = host.getCursorPosition();\n    var r = host.session.getWordRange(c.row, c.column);\n    var w = host.session.getTextRange(r);\n\n    host.session.tokenRe.lastIndex = 0;\n    if (!host.session.tokenRe.test(w))\n        return;\n    var PLACEHOLDER = \"\\x01\\x01\";\n    var value = w + \" \" + PLACEHOLDER;\n    text.value = value;\n    text.setSelectionRange(w.length, w.length + 1);\n    text.setSelectionRange(0, 0);\n    text.setSelectionRange(0, w.length);\n\n    var afterKeydown = false;\n    event.addListener(text, \"keydown\", function onKeydown() {\n        event.removeListener(text, \"keydown\", onKeydown);\n        afterKeydown = true;\n    });\n\n    host.textInput.setInputHandler(function(newVal) {\n        console.log(newVal , value, text.selectionStart, text.selectionEnd)\n        if (newVal == value)\n            return '';\n        if (newVal.lastIndexOf(value, 0) === 0)\n            return newVal.slice(value.length);\n        if (newVal.substr(text.selectionEnd) == value)\n            return newVal.slice(0, -value.length);\n        if (newVal.slice(-2) == PLACEHOLDER) {\n            var val = newVal.slice(0, -2);\n            if (val.slice(-1) == \" \") {\n                if (afterKeydown)\n                    return val.substring(0, text.selectionEnd);\n                val = val.slice(0, -1);\n                host.session.replace(r, val);\n                return \"\";\n            }\n        }\n\n        return newVal;\n    });\n};\nvar Editor = require(\"../editor\").Editor;\nrequire(\"../config\").defineOptions(Editor.prototype, \"editor\", {\n    spellcheck: {\n        set: function(val) {\n            var text = this.textInput.getElement();\n            text.spellcheck = !!val;\n            if (!val)\n                this.removeListener(\"nativecontextmenu\", exports.contextMenuHandler);\n            else\n                this.on(\"nativecontextmenu\", exports.contextMenuHandler);\n        },\n        value: true\n    }\n});\n\n});\n                (function() {\n                    ace.require([\"ace/ext/spellcheck\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-noconflict/ext-split.js",
    "content": "ace.define(\"ace/split\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/editor\",\"ace/virtual_renderer\",\"ace/edit_session\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\n\nvar Editor = require(\"./editor\").Editor;\nvar Renderer = require(\"./virtual_renderer\").VirtualRenderer;\nvar EditSession = require(\"./edit_session\").EditSession;\n\n\nvar Split = function(container, theme, splits) {\n    this.BELOW = 1;\n    this.BESIDE = 0;\n\n    this.$container = container;\n    this.$theme = theme;\n    this.$splits = 0;\n    this.$editorCSS = \"\";\n    this.$editors = [];\n    this.$orientation = this.BESIDE;\n\n    this.setSplits(splits || 1);\n    this.$cEditor = this.$editors[0];\n\n\n    this.on(\"focus\", function(editor) {\n        this.$cEditor = editor;\n    }.bind(this));\n};\n\n(function(){\n\n    oop.implement(this, EventEmitter);\n\n    this.$createEditor = function() {\n        var el = document.createElement(\"div\");\n        el.className = this.$editorCSS;\n        el.style.cssText = \"position: absolute; top:0px; bottom:0px\";\n        this.$container.appendChild(el);\n        var editor = new Editor(new Renderer(el, this.$theme));\n\n        editor.on(\"focus\", function() {\n            this._emit(\"focus\", editor);\n        }.bind(this));\n\n        this.$editors.push(editor);\n        editor.setFontSize(this.$fontSize);\n        return editor;\n    };\n\n    this.setSplits = function(splits) {\n        var editor;\n        if (splits < 1) {\n            throw \"The number of splits have to be > 0!\";\n        }\n\n        if (splits == this.$splits) {\n            return;\n        } else if (splits > this.$splits) {\n            while (this.$splits < this.$editors.length && this.$splits < splits) {\n                editor = this.$editors[this.$splits];\n                this.$container.appendChild(editor.container);\n                editor.setFontSize(this.$fontSize);\n                this.$splits ++;\n            }\n            while (this.$splits < splits) {\n                this.$createEditor();\n                this.$splits ++;\n            }\n        } else {\n            while (this.$splits > splits) {\n                editor = this.$editors[this.$splits - 1];\n                this.$container.removeChild(editor.container);\n                this.$splits --;\n            }\n        }\n        this.resize();\n    };\n    this.getSplits = function() {\n        return this.$splits;\n    };\n    this.getEditor = function(idx) {\n        return this.$editors[idx];\n    };\n    this.getCurrentEditor = function() {\n        return this.$cEditor;\n    };\n    this.focus = function() {\n        this.$cEditor.focus();\n    };\n    this.blur = function() {\n        this.$cEditor.blur();\n    };\n    this.setTheme = function(theme) {\n        this.$editors.forEach(function(editor) {\n            editor.setTheme(theme);\n        });\n    };\n    this.setKeyboardHandler = function(keybinding) {\n        this.$editors.forEach(function(editor) {\n            editor.setKeyboardHandler(keybinding);\n        });\n    };\n    this.forEach = function(callback, scope) {\n        this.$editors.forEach(callback, scope);\n    };\n\n\n    this.$fontSize = \"\";\n    this.setFontSize = function(size) {\n        this.$fontSize = size;\n        this.forEach(function(editor) {\n           editor.setFontSize(size);\n        });\n    };\n\n    this.$cloneSession = function(session) {\n        var s = new EditSession(session.getDocument(), session.getMode());\n\n        var undoManager = session.getUndoManager();\n        if (undoManager) {\n            var undoManagerProxy = new UndoManagerProxy(undoManager, s);\n            s.setUndoManager(undoManagerProxy);\n        }\n        s.$informUndoManager = lang.delayedCall(function() { s.$deltas = []; });\n        s.setTabSize(session.getTabSize());\n        s.setUseSoftTabs(session.getUseSoftTabs());\n        s.setOverwrite(session.getOverwrite());\n        s.setBreakpoints(session.getBreakpoints());\n        s.setUseWrapMode(session.getUseWrapMode());\n        s.setUseWorker(session.getUseWorker());\n        s.setWrapLimitRange(session.$wrapLimitRange.min,\n                            session.$wrapLimitRange.max);\n        s.$foldData = session.$cloneFoldData();\n\n        return s;\n    };\n    this.setSession = function(session, idx) {\n        var editor;\n        if (idx == null) {\n            editor = this.$cEditor;\n        } else {\n            editor = this.$editors[idx];\n        }\n        var isUsed = this.$editors.some(function(editor) {\n           return editor.session === session;\n        });\n\n        if (isUsed) {\n            session = this.$cloneSession(session);\n        }\n        editor.setSession(session);\n        return session;\n    };\n    this.getOrientation = function() {\n        return this.$orientation;\n    };\n    this.setOrientation = function(orientation) {\n        if (this.$orientation == orientation) {\n            return;\n        }\n        this.$orientation = orientation;\n        this.resize();\n    };\n    this.resize = function() {\n        var width = this.$container.clientWidth;\n        var height = this.$container.clientHeight;\n        var editor;\n\n        if (this.$orientation == this.BESIDE) {\n            var editorWidth = width / this.$splits;\n            for (var i = 0; i < this.$splits; i++) {\n                editor = this.$editors[i];\n                editor.container.style.width = editorWidth + \"px\";\n                editor.container.style.top = \"0px\";\n                editor.container.style.left = i * editorWidth + \"px\";\n                editor.container.style.height = height + \"px\";\n                editor.resize();\n            }\n        } else {\n            var editorHeight = height / this.$splits;\n            for (var i = 0; i < this.$splits; i++) {\n                editor = this.$editors[i];\n                editor.container.style.width = width + \"px\";\n                editor.container.style.top = i * editorHeight + \"px\";\n                editor.container.style.left = \"0px\";\n                editor.container.style.height = editorHeight + \"px\";\n                editor.resize();\n            }\n        }\n    };\n\n}).call(Split.prototype);\n\n \nfunction UndoManagerProxy(undoManager, session) {\n    this.$u = undoManager;\n    this.$doc = session;\n}\n\n(function() {\n    this.execute = function(options) {\n        this.$u.execute(options);\n    };\n\n    this.undo = function() {\n        var selectionRange = this.$u.undo(true);\n        if (selectionRange) {\n            this.$doc.selection.setSelectionRange(selectionRange);\n        }\n    };\n\n    this.redo = function() {\n        var selectionRange = this.$u.redo(true);\n        if (selectionRange) {\n            this.$doc.selection.setSelectionRange(selectionRange);\n        }\n    };\n\n    this.reset = function() {\n        this.$u.reset();\n    };\n\n    this.hasUndo = function() {\n        return this.$u.hasUndo();\n    };\n\n    this.hasRedo = function() {\n        return this.$u.hasRedo();\n    };\n}).call(UndoManagerProxy.prototype);\n\nexports.Split = Split;\n});\n\nace.define(\"ace/ext/split\",[\"require\",\"exports\",\"module\",\"ace/split\"], function(require, exports, module) {\n\"use strict\";\nmodule.exports = require(\"../split\");\n\n});\n                (function() {\n                    ace.require([\"ace/ext/split\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-noconflict/ext-static_highlight.js",
    "content": "ace.define(\"ace/ext/static_highlight\",[\"require\",\"exports\",\"module\",\"ace/edit_session\",\"ace/layer/text\",\"ace/config\",\"ace/lib/dom\"], function(require, exports, module) {\n\"use strict\";\n\nvar EditSession = require(\"../edit_session\").EditSession;\nvar TextLayer = require(\"../layer/text\").Text;\nvar baseStyles = \".ace_static_highlight {\\\nfont-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', 'Droid Sans Mono', monospace;\\\nfont-size: 12px;\\\nwhite-space: pre-wrap\\\n}\\\n.ace_static_highlight .ace_gutter {\\\nwidth: 2em;\\\ntext-align: right;\\\npadding: 0 3px 0 0;\\\nmargin-right: 3px;\\\n}\\\n.ace_static_highlight.ace_show_gutter .ace_line {\\\npadding-left: 2.6em;\\\n}\\\n.ace_static_highlight .ace_line { position: relative; }\\\n.ace_static_highlight .ace_gutter-cell {\\\n-moz-user-select: -moz-none;\\\n-khtml-user-select: none;\\\n-webkit-user-select: none;\\\nuser-select: none;\\\ntop: 0;\\\nbottom: 0;\\\nleft: 0;\\\nposition: absolute;\\\n}\\\n.ace_static_highlight .ace_gutter-cell:before {\\\ncontent: counter(ace_line, decimal);\\\ncounter-increment: ace_line;\\\n}\\\n.ace_static_highlight {\\\ncounter-reset: ace_line;\\\n}\\\n\";\nvar config = require(\"../config\");\nvar dom = require(\"../lib/dom\");\n\nvar SimpleTextLayer = function() {\n    this.config = {};\n};\nSimpleTextLayer.prototype = TextLayer.prototype;\n\nvar highlight = function(el, opts, callback) {\n    var m = el.className.match(/lang-(\\w+)/);\n    var mode = opts.mode || m && (\"ace/mode/\" + m[1]);\n    if (!mode)\n        return false;\n    var theme = opts.theme || \"ace/theme/textmate\";\n    \n    var data = \"\";\n    var nodes = [];\n\n    if (el.firstElementChild) {\n        var textLen = 0;\n        for (var i = 0; i < el.childNodes.length; i++) {\n            var ch = el.childNodes[i];\n            if (ch.nodeType == 3) {\n                textLen += ch.data.length;\n                data += ch.data;\n            } else {\n                nodes.push(textLen, ch);\n            }\n        }\n    } else {\n        data = dom.getInnerText(el);\n        if (opts.trim)\n            data = data.trim();\n    }\n    \n    highlight.render(data, mode, theme, opts.firstLineNumber, !opts.showGutter, function (highlighted) {\n        dom.importCssString(highlighted.css, \"ace_highlight\");\n        el.innerHTML = highlighted.html;\n        var container = el.firstChild.firstChild;\n        for (var i = 0; i < nodes.length; i += 2) {\n            var pos = highlighted.session.doc.indexToPosition(nodes[i]);\n            var node = nodes[i + 1];\n            var lineEl = container.children[pos.row];\n            lineEl && lineEl.appendChild(node);\n        }\n        callback && callback();\n    });\n};\nhighlight.render = function(input, mode, theme, lineStart, disableGutter, callback) {\n    var waiting = 1;\n    var modeCache = EditSession.prototype.$modes;\n    if (typeof theme == \"string\") {\n        waiting++;\n        config.loadModule(['theme', theme], function(m) {\n            theme = m;\n            --waiting || done();\n        });\n    }\n    var modeOptions;\n    if (mode && typeof mode === \"object\" && !mode.getTokenizer) {\n        modeOptions = mode;\n        mode = modeOptions.path;\n    }\n    if (typeof mode == \"string\") {\n        waiting++;\n        config.loadModule(['mode', mode], function(m) {\n            if (!modeCache[mode] || modeOptions)\n                modeCache[mode] = new m.Mode(modeOptions);\n            mode = modeCache[mode];\n            --waiting || done();\n        });\n    }\n    function done() {\n        var result = highlight.renderSync(input, mode, theme, lineStart, disableGutter);\n        return callback ? callback(result) : result;\n    }\n    return --waiting || done();\n};\nhighlight.renderSync = function(input, mode, theme, lineStart, disableGutter) {\n    lineStart = parseInt(lineStart || 1, 10);\n\n    var session = new EditSession(\"\");\n    session.setUseWorker(false);\n    session.setMode(mode);\n\n    var textLayer = new SimpleTextLayer();\n    textLayer.setSession(session);\n\n    session.setValue(input);\n\n    var stringBuilder = [];\n    var length =  session.getLength();\n\n    for(var ix = 0; ix < length; ix++) {\n        stringBuilder.push(\"<div class='ace_line'>\");\n        if (!disableGutter)\n            stringBuilder.push(\"<span class='ace_gutter ace_gutter-cell' unselectable='on'>\" + /*(ix + lineStart) + */ \"</span>\");\n        textLayer.$renderLine(stringBuilder, ix, true, false);\n        stringBuilder.push(\"\\n</div>\");\n    }\n    var html = \"<div class='\" + theme.cssClass + \"'>\" +\n        \"<div class='ace_static_highlight\" + (disableGutter ? \"\" : \" ace_show_gutter\") +\n            \"' style='counter-reset:ace_line \" + (lineStart - 1) + \"'>\" +\n            stringBuilder.join(\"\") +\n        \"</div>\" +\n    \"</div>\";\n\n    textLayer.destroy();\n\n    return {\n        css: baseStyles + theme.cssText,\n        html: html,\n        session: session\n    };\n};\n\nmodule.exports = highlight;\nmodule.exports.highlight =highlight;\n});\n                (function() {\n                    ace.require([\"ace/ext/static_highlight\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-noconflict/ext-statusbar.js",
    "content": "ace.define(\"ace/ext/statusbar\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\nvar dom = require(\"ace/lib/dom\");\nvar lang = require(\"ace/lib/lang\");\n\nvar StatusBar = function(editor, parentNode) {\n    this.element = dom.createElement(\"div\");\n    this.element.className = \"ace_status-indicator\";\n    this.element.style.cssText = \"display: inline-block;\";\n    parentNode.appendChild(this.element);\n\n    var statusUpdate = lang.delayedCall(function(){\n        this.updateStatus(editor)\n    }.bind(this)).schedule.bind(null, 100);\n    \n    editor.on(\"changeStatus\", statusUpdate);\n    editor.on(\"changeSelection\", statusUpdate);\n    editor.on(\"keyboardActivity\", statusUpdate);\n};\n\n(function(){\n    this.updateStatus = function(editor) {\n        var status = [];\n        function add(str, separator) {\n            str && status.push(str, separator || \"|\");\n        }\n\n        add(editor.keyBinding.getStatusText(editor));\n        if (editor.commands.recording)\n            add(\"REC\");\n        \n        var sel = editor.selection;\n        var c = sel.lead;\n        \n        if (!sel.isEmpty()) {\n            var r = editor.getSelectionRange();\n            add(\"(\" + (r.end.row - r.start.row) + \":\"  +(r.end.column - r.start.column) + \")\", \" \");\n        }\n        add(c.row + \":\" + c.column, \" \");        \n        if (sel.rangeCount)\n            add(\"[\" + sel.rangeCount + \"]\", \" \");\n        status.pop();\n        this.element.textContent = status.join(\"\");\n    };\n}).call(StatusBar.prototype);\n\nexports.StatusBar = StatusBar;\n\n});\n                (function() {\n                    ace.require([\"ace/ext/statusbar\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-noconflict/ext-textarea.js",
    "content": "ace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\"use strict\";\n\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = \".ace-tm .ace_gutter {\\\nbackground: #f0f0f0;\\\ncolor: #333;\\\n}\\\n.ace-tm .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8;\\\n}\\\n.ace-tm .ace_fold {\\\nbackground-color: #6B72E6;\\\n}\\\n.ace-tm {\\\nbackground-color: #FFFFFF;\\\ncolor: black;\\\n}\\\n.ace-tm .ace_cursor {\\\ncolor: black;\\\n}\\\n.ace-tm .ace_invisible {\\\ncolor: rgb(191, 191, 191);\\\n}\\\n.ace-tm .ace_storage,\\\n.ace-tm .ace_keyword {\\\ncolor: blue;\\\n}\\\n.ace-tm .ace_constant {\\\ncolor: rgb(197, 6, 11);\\\n}\\\n.ace-tm .ace_constant.ace_buildin {\\\ncolor: rgb(88, 72, 246);\\\n}\\\n.ace-tm .ace_constant.ace_language {\\\ncolor: rgb(88, 92, 246);\\\n}\\\n.ace-tm .ace_constant.ace_library {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_invalid {\\\nbackground-color: rgba(255, 0, 0, 0.1);\\\ncolor: red;\\\n}\\\n.ace-tm .ace_support.ace_function {\\\ncolor: rgb(60, 76, 114);\\\n}\\\n.ace-tm .ace_support.ace_constant {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_support.ace_type,\\\n.ace-tm .ace_support.ace_class {\\\ncolor: rgb(109, 121, 222);\\\n}\\\n.ace-tm .ace_keyword.ace_operator {\\\ncolor: rgb(104, 118, 135);\\\n}\\\n.ace-tm .ace_string {\\\ncolor: rgb(3, 106, 7);\\\n}\\\n.ace-tm .ace_comment {\\\ncolor: rgb(76, 136, 107);\\\n}\\\n.ace-tm .ace_comment.ace_doc {\\\ncolor: rgb(0, 102, 255);\\\n}\\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\\ncolor: rgb(128, 159, 191);\\\n}\\\n.ace-tm .ace_constant.ace_numeric {\\\ncolor: rgb(0, 0, 205);\\\n}\\\n.ace-tm .ace_variable {\\\ncolor: rgb(49, 132, 149);\\\n}\\\n.ace-tm .ace_xml-pe {\\\ncolor: rgb(104, 104, 91);\\\n}\\\n.ace-tm .ace_entity.ace_name.ace_function {\\\ncolor: #0000A2;\\\n}\\\n.ace-tm .ace_heading {\\\ncolor: rgb(12, 7, 255);\\\n}\\\n.ace-tm .ace_list {\\\ncolor:rgb(185, 6, 144);\\\n}\\\n.ace-tm .ace_meta.ace_tag {\\\ncolor:rgb(0, 22, 142);\\\n}\\\n.ace-tm .ace_string.ace_regex {\\\ncolor: rgb(255, 0, 0)\\\n}\\\n.ace-tm .ace_marker-layer .ace_selection {\\\nbackground: rgb(181, 213, 255);\\\n}\\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px white;\\\n}\\\n.ace-tm .ace_marker-layer .ace_step {\\\nbackground: rgb(252, 255, 0);\\\n}\\\n.ace-tm .ace_marker-layer .ace_stack {\\\nbackground: rgb(164, 229, 101);\\\n}\\\n.ace-tm .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgb(192, 192, 192);\\\n}\\\n.ace-tm .ace_marker-layer .ace_active-line {\\\nbackground: rgba(0, 0, 0, 0.07);\\\n}\\\n.ace-tm .ace_gutter-active-line {\\\nbackground-color : #dcdcdc;\\\n}\\\n.ace-tm .ace_marker-layer .ace_selected-word {\\\nbackground: rgb(250, 250, 255);\\\nborder: 1px solid rgb(200, 200, 250);\\\n}\\\n.ace-tm .ace_indent-guide {\\\nbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\\n}\\\n\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n\nace.define(\"ace/ext/textarea\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/net\",\"ace/ace\",\"ace/theme/textmate\"], function(require, exports, module) {\n\"use strict\";\n\nvar event = require(\"../lib/event\");\nvar UA = require(\"../lib/useragent\");\nvar net = require(\"../lib/net\");\nvar ace = require(\"../ace\");\n\nrequire(\"../theme/textmate\");\n\nmodule.exports = exports = ace;\nvar getCSSProperty = function(element, container, property) {\n    var ret = element.style[property];\n\n    if (!ret) {\n        if (window.getComputedStyle) {\n            ret = window.getComputedStyle(element, '').getPropertyValue(property);\n        } else {\n            ret = element.currentStyle[property];\n        }\n    }\n\n    if (!ret || ret == 'auto' || ret == 'intrinsic') {\n        ret = container.style[property];\n    }\n    return ret;\n};\n\nfunction applyStyles(elm, styles) {\n    for (var style in styles) {\n        elm.style[style] = styles[style];\n    }\n}\n\nfunction setupContainer(element, getValue) {\n    if (element.type != 'textarea') {\n        throw new Error(\"Textarea required!\");\n    }\n\n    var parentNode = element.parentNode;\n    var container = document.createElement('div');\n    var resizeEvent = function() {\n        var style = 'position:relative;';\n        [\n            'margin-top', 'margin-left', 'margin-right', 'margin-bottom'\n        ].forEach(function(item) {\n            style += item + ':' +\n                        getCSSProperty(element, container, item) + ';';\n        });\n        var width = getCSSProperty(element, container, 'width') || (element.clientWidth + \"px\");\n        var height = getCSSProperty(element, container, 'height')  || (element.clientHeight + \"px\");\n        style += 'height:' + height + ';width:' + width + ';';\n        style += 'display:inline-block;';\n        container.setAttribute('style', style);\n    };\n    event.addListener(window, 'resize', resizeEvent);\n    resizeEvent();\n    parentNode.insertBefore(container, element.nextSibling);\n    while (parentNode !== document) {\n        if (parentNode.tagName.toUpperCase() === 'FORM') {\n            var oldSumit = parentNode.onsubmit;\n            parentNode.onsubmit = function(evt) {\n                element.value = getValue();\n                if (oldSumit) {\n                    oldSumit.call(this, evt);\n                }\n            };\n            break;\n        }\n        parentNode = parentNode.parentNode;\n    }\n    return container;\n}\n\nexports.transformTextarea = function(element, options) {\n    var session;\n    var container = setupContainer(element, function() {\n        return session.getValue();\n    });\n    element.style.display = 'none';\n    container.style.background = 'white';\n    var editorDiv = document.createElement(\"div\");\n    applyStyles(editorDiv, {\n        top: \"0px\",\n        left: \"0px\",\n        right: \"0px\",\n        bottom: \"0px\",\n        border: \"1px solid gray\",\n        position: \"absolute\"\n    });\n    container.appendChild(editorDiv);\n\n    var settingOpener = document.createElement(\"div\");\n    applyStyles(settingOpener, {\n        position: \"absolute\",\n        right: \"0px\",\n        bottom: \"0px\",\n        background: \"red\",\n        cursor: \"nw-resize\",\n        borderStyle: \"solid\",\n        borderWidth: \"9px 8px 10px 9px\",\n        width: \"2px\",\n        borderColor: \"lightblue gray gray lightblue\",\n        zIndex: 101\n    });\n\n    var settingDiv = document.createElement(\"div\");\n    var settingDivStyles = {\n        top: \"0px\",\n        left: \"20%\",\n        right: \"0px\",\n        bottom: \"0px\",\n        position: \"absolute\",\n        padding: \"5px\",\n        zIndex: 100,\n        color: \"white\",\n        display: \"none\",\n        overflow: \"auto\",\n        fontSize: \"14px\",\n        boxShadow: \"-5px 2px 3px gray\"\n    };\n    if (!UA.isOldIE) {\n        settingDivStyles.backgroundColor = \"rgba(0, 0, 0, 0.6)\";\n    } else {\n        settingDivStyles.backgroundColor = \"#333\";\n    }\n\n    applyStyles(settingDiv, settingDivStyles);\n    container.appendChild(settingDiv);\n\n    options = options || exports.defaultOptions;\n    var editor = ace.edit(editorDiv);\n    session = editor.getSession();\n\n    session.setValue(element.value || element.innerHTML);\n    editor.focus();\n    container.appendChild(settingOpener);\n    setupApi(editor, editorDiv, settingDiv, ace, options, load);\n    setupSettingPanel(settingDiv, settingOpener, editor);\n\n    var state = \"\";\n    event.addListener(settingOpener, \"mousemove\", function(e) {\n        var rect = this.getBoundingClientRect();\n        var x = e.clientX - rect.left, y = e.clientY - rect.top;\n        if (x + y < (rect.width + rect.height)/2) {\n            this.style.cursor = \"pointer\";\n            state = \"toggle\";\n        } else {\n            state = \"resize\";\n            this.style.cursor = \"nw-resize\";\n        }\n    });\n\n    event.addListener(settingOpener, \"mousedown\", function(e) {\n        if (state == \"toggle\") {\n            editor.setDisplaySettings();\n            return;\n        }\n        container.style.zIndex = 100000;\n        var rect = container.getBoundingClientRect();\n        var startX = rect.width  + rect.left - e.clientX;\n        var startY = rect.height  + rect.top - e.clientY;\n        event.capture(settingOpener, function(e) {\n            container.style.width = e.clientX - rect.left + startX + \"px\";\n            container.style.height = e.clientY - rect.top + startY + \"px\";\n            editor.resize();\n        }, function() {});\n    });\n\n    return editor;\n};\n\nfunction load(url, module, callback) {\n    net.loadScript(url, function() {\n        require([module], callback);\n    });\n}\n\nfunction setupApi(editor, editorDiv, settingDiv, ace, options, loader) {\n    var session = editor.getSession();\n    var renderer = editor.renderer;\n    loader = loader || load;\n\n    function toBool(value) {\n        return value === \"true\" || value == true;\n    }\n\n    editor.setDisplaySettings = function(display) {\n        if (display == null)\n            display = settingDiv.style.display == \"none\";\n        if (display) {\n            settingDiv.style.display = \"block\";\n            settingDiv.hideButton.focus();\n            editor.on(\"focus\", function onFocus() {\n                editor.removeListener(\"focus\", onFocus);\n                settingDiv.style.display = \"none\";\n            });\n        } else {\n            editor.focus();\n        }\n    };\n\n    editor.$setOption = editor.setOption;\n    editor.$getOption = editor.getOption;\n    editor.setOption = function(key, value) {\n        switch (key) {\n            case \"mode\":\n                editor.$setOption(\"mode\", \"ace/mode/\" + value)\n            break;\n            case \"theme\":\n                editor.$setOption(\"theme\", \"ace/theme/\" + value)\n            break;\n            case \"keybindings\":\n                switch (value) {\n                    case \"vim\":\n                        editor.setKeyboardHandler(\"ace/keyboard/vim\");\n                        break;\n                    case \"emacs\":\n                        editor.setKeyboardHandler(\"ace/keyboard/emacs\");\n                        break;\n                    default:\n                        editor.setKeyboardHandler(null);\n                }\n            break;\n\n            case \"softWrap\":\n            case \"fontSize\":\n                editor.$setOption(key, value);\n            break;\n            \n            default:\n                editor.$setOption(key, toBool(value));\n        }\n    };\n\n    editor.getOption = function(key) {\n        switch (key) {\n            case \"mode\":\n                return editor.$getOption(\"mode\").substr(\"ace/mode/\".length)\n            break;\n\n            case \"theme\":\n                return editor.$getOption(\"theme\").substr(\"ace/theme/\".length)\n            break;\n\n            case \"keybindings\":\n                var value = editor.getKeyboardHandler()\n                switch (value && value.$id) {\n                    case \"ace/keyboard/vim\":\n                        return \"vim\";\n                    case \"ace/keyboard/emacs\":\n                        return \"emacs\";\n                    default:\n                        return \"ace\";\n                }\n            break;\n\n            default:\n                return editor.$getOption(key);\n        }\n    };\n\n    editor.setOptions(options);\n    return editor;\n}\n\nfunction setupSettingPanel(settingDiv, settingOpener, editor) {\n    var BOOL = null;\n\n    var desc = {\n        mode:            \"Mode:\",\n        wrap:            \"Soft Wrap:\",\n        theme:           \"Theme:\",\n        fontSize:        \"Font Size:\",\n        showGutter:      \"Display Gutter:\",\n        keybindings:     \"Keyboard\",\n        showPrintMargin: \"Show Print Margin:\",\n        useSoftTabs:     \"Use Soft Tabs:\",\n        showInvisibles:  \"Show Invisibles\"\n    };\n\n    var optionValues = {\n        mode: {\n            text:       \"Plain\",\n            javascript: \"JavaScript\",\n            xml:        \"XML\",\n            html:       \"HTML\",\n            css:        \"CSS\",\n            scss:       \"SCSS\",\n            python:     \"Python\",\n            php:        \"PHP\",\n            java:       \"Java\",\n            ruby:       \"Ruby\",\n            c_cpp:      \"C/C++\",\n            coffee:     \"CoffeeScript\",\n            json:       \"json\",\n            perl:       \"Perl\",\n            clojure:    \"Clojure\",\n            ocaml:      \"OCaml\",\n            csharp:     \"C#\",\n            haxe:       \"haXe\",\n            svg:        \"SVG\",\n            textile:    \"Textile\",\n            groovy:     \"Groovy\",\n            liquid:     \"Liquid\",\n            Scala:      \"Scala\"\n        },\n        theme: {\n            clouds:           \"Clouds\",\n            clouds_midnight:  \"Clouds Midnight\",\n            cobalt:           \"Cobalt\",\n            crimson_editor:   \"Crimson Editor\",\n            dawn:             \"Dawn\",\n            eclipse:          \"Eclipse\",\n            idle_fingers:     \"Idle Fingers\",\n            kr_theme:         \"Kr Theme\",\n            merbivore:        \"Merbivore\",\n            merbivore_soft:   \"Merbivore Soft\",\n            mono_industrial:  \"Mono Industrial\",\n            monokai:          \"Monokai\",\n            pastel_on_dark:   \"Pastel On Dark\",\n            solarized_dark:   \"Solarized Dark\",\n            solarized_light:  \"Solarized Light\",\n            textmate:         \"Textmate\",\n            twilight:         \"Twilight\",\n            vibrant_ink:      \"Vibrant Ink\"\n        },\n        showGutter: BOOL,\n        fontSize: {\n            \"10px\": \"10px\",\n            \"11px\": \"11px\",\n            \"12px\": \"12px\",\n            \"14px\": \"14px\",\n            \"16px\": \"16px\"\n        },\n        wrap: {\n            off:    \"Off\",\n            40:     \"40\",\n            80:     \"80\",\n            free:   \"Free\"\n        },\n        keybindings: {\n            ace: \"ace\",\n            vim: \"vim\",\n            emacs: \"emacs\"\n        },\n        showPrintMargin:    BOOL,\n        useSoftTabs:        BOOL,\n        showInvisibles:     BOOL\n    };\n\n    var table = [];\n    table.push(\"<table><tr><th>Setting</th><th>Value</th></tr>\");\n\n    function renderOption(builder, option, obj, cValue) {\n        if (!obj) {\n            builder.push(\n                \"<input type='checkbox' title='\", option, \"' \",\n                    cValue + \"\" == \"true\" ? \"checked='true'\" : \"\",\n               \"'></input>\"\n            );\n            return;\n        }\n        builder.push(\"<select title='\" + option + \"'>\");\n        for (var value in obj) {\n            builder.push(\"<option value='\" + value + \"' \");\n\n            if (cValue == value) {\n                builder.push(\" selected \");\n            }\n\n            builder.push(\">\",\n                obj[value],\n                \"</option>\");\n        }\n        builder.push(\"</select>\");\n    }\n\n    for (var option in exports.defaultOptions) {\n        table.push(\"<tr><td>\", desc[option], \"</td>\");\n        table.push(\"<td>\");\n        renderOption(table, option, optionValues[option], editor.getOption(option));\n        table.push(\"</td></tr>\");\n    }\n    table.push(\"</table>\");\n    settingDiv.innerHTML = table.join(\"\");\n\n    var onChange = function(e) {\n        var select = e.currentTarget;\n        editor.setOption(select.title, select.value);\n    };\n    var onClick = function(e) {\n        var cb = e.currentTarget;\n        editor.setOption(cb.title, cb.checked);\n    };\n    var selects = settingDiv.getElementsByTagName(\"select\");\n    for (var i = 0; i < selects.length; i++)\n        selects[i].onchange = onChange;\n    var cbs = settingDiv.getElementsByTagName(\"input\");\n    for (var i = 0; i < cbs.length; i++)\n        cbs[i].onclick = onClick;\n\n\n    var button = document.createElement(\"input\");\n    button.type = \"button\";\n    button.value = \"Hide\";\n    event.addListener(button, \"click\", function() {\n        editor.setDisplaySettings(false);\n    });\n    settingDiv.appendChild(button);\n    settingDiv.hideButton = button;\n}\nexports.defaultOptions = {\n    mode:               \"javascript\",\n    theme:              \"textmate\",\n    wrap:               \"off\",\n    fontSize:           \"12px\",\n    showGutter:         \"false\",\n    keybindings:        \"ace\",\n    showPrintMargin:    \"false\",\n    useSoftTabs:        \"true\",\n    showInvisibles:     \"false\"\n};\n\n});\n                (function() {\n                    ace.require([\"ace/ext/textarea\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-noconflict/ext-themelist.js",
    "content": "ace.define(\"ace/ext/themelist\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\"], function(require, exports, module) {\n\"use strict\";\nrequire(\"ace/lib/fixoldbrowsers\");\n\nvar themeData = [\n    [\"Chrome\"         ],\n    [\"Clouds\"         ],\n    [\"Crimson Editor\" ],\n    [\"Dawn\"           ],\n    [\"Dreamweaver\"    ],\n    [\"Eclipse\"        ],\n    [\"GitHub\"         ],\n    [\"IPlastic\"       ],\n    [\"Solarized Light\"],\n    [\"TextMate\"       ],\n    [\"Tomorrow\"       ],\n    [\"XCode\"          ],\n    [\"Kuroir\"],\n    [\"KatzenMilch\"],\n    [\"SQL Server\"           ,\"sqlserver\"               , \"light\"],\n    [\"Ambiance\"             ,\"ambiance\"                ,  \"dark\"],\n    [\"Chaos\"                ,\"chaos\"                   ,  \"dark\"],\n    [\"Clouds Midnight\"      ,\"clouds_midnight\"         ,  \"dark\"],\n    [\"Cobalt\"               ,\"cobalt\"                  ,  \"dark\"],\n    [\"Gruvbox\"              ,\"gruvbox\"                 ,  \"dark\"],\n    [\"idle Fingers\"         ,\"idle_fingers\"            ,  \"dark\"],\n    [\"krTheme\"              ,\"kr_theme\"                ,  \"dark\"],\n    [\"Merbivore\"            ,\"merbivore\"               ,  \"dark\"],\n    [\"Merbivore Soft\"       ,\"merbivore_soft\"          ,  \"dark\"],\n    [\"Mono Industrial\"      ,\"mono_industrial\"         ,  \"dark\"],\n    [\"Monokai\"              ,\"monokai\"                 ,  \"dark\"],\n    [\"Pastel on dark\"       ,\"pastel_on_dark\"          ,  \"dark\"],\n    [\"Solarized Dark\"       ,\"solarized_dark\"          ,  \"dark\"],\n    [\"Terminal\"             ,\"terminal\"                ,  \"dark\"],\n    [\"Tomorrow Night\"       ,\"tomorrow_night\"          ,  \"dark\"],\n    [\"Tomorrow Night Blue\"  ,\"tomorrow_night_blue\"     ,  \"dark\"],\n    [\"Tomorrow Night Bright\",\"tomorrow_night_bright\"   ,  \"dark\"],\n    [\"Tomorrow Night 80s\"   ,\"tomorrow_night_eighties\" ,  \"dark\"],\n    [\"Twilight\"             ,\"twilight\"                ,  \"dark\"],\n    [\"Vibrant Ink\"          ,\"vibrant_ink\"             ,  \"dark\"]\n];\n\n\nexports.themesByName = {};\nexports.themes = themeData.map(function(data) {\n    var name = data[1] || data[0].replace(/ /g, \"_\").toLowerCase();\n    var theme = {\n        caption: data[0],\n        theme: \"ace/theme/\" + name,\n        isDark: data[2] == \"dark\",\n        name: name\n    };\n    exports.themesByName[name] = theme;\n    return theme;\n});\n\n});\n                (function() {\n                    ace.require([\"ace/ext/themelist\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-noconflict/ext-whitespace.js",
    "content": "ace.define(\"ace/ext/whitespace\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar lang = require(\"../lib/lang\");\nexports.$detectIndentation = function(lines, fallback) {\n    var stats = [];\n    var changes = [];\n    var tabIndents = 0;\n    var prevSpaces = 0;\n    var max = Math.min(lines.length, 1000);\n    for (var i = 0; i < max; i++) {\n        var line = lines[i];\n        if (!/^\\s*[^*+\\-\\s]/.test(line))\n            continue;\n\n        if (line[0] == \"\\t\") {\n            tabIndents++;\n            prevSpaces = -Number.MAX_VALUE;\n        } else {\n            var spaces = line.match(/^ */)[0].length;\n            if (spaces && line[spaces] != \"\\t\") {\n                var diff = spaces - prevSpaces;\n                if (diff > 0 && !(prevSpaces%diff) && !(spaces%diff))\n                    changes[diff] = (changes[diff] || 0) + 1;\n    \n                stats[spaces] = (stats[spaces] || 0) + 1;\n            }\n            prevSpaces = spaces;\n        }\n        while (i < max && line[line.length - 1] == \"\\\\\")\n            line = lines[i++];\n    }\n    \n    function getScore(indent) {\n        var score = 0;\n        for (var i = indent; i < stats.length; i += indent)\n            score += stats[i] || 0;\n        return score;\n    }\n\n    var changesTotal = changes.reduce(function(a,b){return a+b}, 0);\n\n    var first = {score: 0, length: 0};\n    var spaceIndents = 0;\n    for (var i = 1; i < 12; i++) {\n        var score = getScore(i);\n        if (i == 1) {\n            spaceIndents = score;\n            score = stats[1] ? 0.9 : 0.8;\n            if (!stats.length)\n                score = 0;\n        } else\n            score /= spaceIndents;\n\n        if (changes[i])\n            score += changes[i] / changesTotal;\n\n        if (score > first.score)\n            first = {score: score, length: i};\n    }\n\n    if (first.score && first.score > 1.4)\n        var tabLength = first.length;\n\n    if (tabIndents > spaceIndents + 1) {\n        if (tabLength == 1 || spaceIndents < tabIndents / 4 || first.score < 1.8)\n            tabLength = undefined;\n        return {ch: \"\\t\", length: tabLength};\n    }\n    if (spaceIndents > tabIndents + 1)\n        return {ch: \" \", length: tabLength};\n};\n\nexports.detectIndentation = function(session) {\n    var lines = session.getLines(0, 1000);\n    var indent = exports.$detectIndentation(lines) || {};\n\n    if (indent.ch)\n        session.setUseSoftTabs(indent.ch == \" \");\n\n    if (indent.length)\n        session.setTabSize(indent.length);\n    return indent;\n};\n\nexports.trimTrailingSpace = function(session, trimEmpty) {\n    var doc = session.getDocument();\n    var lines = doc.getAllLines();\n    \n    var min = trimEmpty ? -1 : 0;\n\n    for (var i = 0, l=lines.length; i < l; i++) {\n        var line = lines[i];\n        var index = line.search(/\\s+$/);\n\n        if (index > min)\n            doc.removeInLine(i, index, line.length);\n    }\n};\n\nexports.convertIndentation = function(session, ch, len) {\n    var oldCh = session.getTabString()[0];\n    var oldLen = session.getTabSize();\n    if (!len) len = oldLen;\n    if (!ch) ch = oldCh;\n\n    var tab = ch == \"\\t\" ? ch: lang.stringRepeat(ch, len);\n\n    var doc = session.doc;\n    var lines = doc.getAllLines();\n\n    var cache = {};\n    var spaceCache = {};\n    for (var i = 0, l=lines.length; i < l; i++) {\n        var line = lines[i];\n        var match = line.match(/^\\s*/)[0];\n        if (match) {\n            var w = session.$getStringScreenWidth(match)[0];\n            var tabCount = Math.floor(w/oldLen);\n            var reminder = w%oldLen;\n            var toInsert = cache[tabCount] || (cache[tabCount] = lang.stringRepeat(tab, tabCount));\n            toInsert += spaceCache[reminder] || (spaceCache[reminder] = lang.stringRepeat(\" \", reminder));\n\n            if (toInsert != match) {\n                doc.removeInLine(i, 0, match.length);\n                doc.insertInLine({row: i, column: 0}, toInsert);\n            }\n        }\n    }\n    session.setTabSize(len);\n    session.setUseSoftTabs(ch == \" \");\n};\n\nexports.$parseStringArg = function(text) {\n    var indent = {};\n    if (/t/.test(text))\n        indent.ch = \"\\t\";\n    else if (/s/.test(text))\n        indent.ch = \" \";\n    var m = text.match(/\\d+/);\n    if (m)\n        indent.length = parseInt(m[0], 10);\n    return indent;\n};\n\nexports.$parseArg = function(arg) {\n    if (!arg)\n        return {};\n    if (typeof arg == \"string\")\n        return exports.$parseStringArg(arg);\n    if (typeof arg.text == \"string\")\n        return exports.$parseStringArg(arg.text);\n    return arg;\n};\n\nexports.commands = [{\n    name: \"detectIndentation\",\n    exec: function(editor) {\n        exports.detectIndentation(editor.session);\n    }\n}, {\n    name: \"trimTrailingSpace\",\n    exec: function(editor) {\n        exports.trimTrailingSpace(editor.session);\n    }\n}, {\n    name: \"convertIndentation\",\n    exec: function(editor, arg) {\n        var indent = exports.$parseArg(arg);\n        exports.convertIndentation(editor.session, indent.ch, indent.length);\n    }\n}, {\n    name: \"setIndentation\",\n    exec: function(editor, arg) {\n        var indent = exports.$parseArg(arg);\n        indent.length && editor.session.setTabSize(indent.length);\n        indent.ch && editor.session.setUseSoftTabs(indent.ch == \" \");\n    }\n}];\n\n});\n                (function() {\n                    ace.require([\"ace/ext/whitespace\"], function() {});\n                })();\n            "
  },
  {
    "path": "lib/src-noconflict/keybinding-emacs.js",
    "content": "ace.define(\"ace/occur\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/search\",\"ace/edit_session\",\"ace/search_highlight\",\"ace/lib/dom\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar Range = require(\"./range\").Range;\nvar Search = require(\"./search\").Search;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar SearchHighlight = require(\"./search_highlight\").SearchHighlight;\nfunction Occur() {}\n\noop.inherits(Occur, Search);\n\n(function() {\n    this.enter = function(editor, options) {\n        if (!options.needle) return false;\n        var pos = editor.getCursorPosition();\n        this.displayOccurContent(editor, options);\n        var translatedPos = this.originalToOccurPosition(editor.session, pos);\n        editor.moveCursorToPosition(translatedPos);\n        return true;\n    }\n    this.exit = function(editor, options) {\n        var pos = options.translatePosition && editor.getCursorPosition();\n        var translatedPos = pos && this.occurToOriginalPosition(editor.session, pos);\n        this.displayOriginalContent(editor);\n        if (translatedPos)\n            editor.moveCursorToPosition(translatedPos);\n        return true;\n    }\n\n    this.highlight = function(sess, regexp) {\n        var hl = sess.$occurHighlight = sess.$occurHighlight || sess.addDynamicMarker(\n                new SearchHighlight(null, \"ace_occur-highlight\", \"text\"));\n        hl.setRegexp(regexp);\n        sess._emit(\"changeBackMarker\"); // force highlight layer redraw\n    }\n\n    this.displayOccurContent = function(editor, options) {\n        this.$originalSession = editor.session;\n        var found = this.matchingLines(editor.session, options);\n        var lines = found.map(function(foundLine) { return foundLine.content; });\n        var occurSession = new EditSession(lines.join('\\n'));\n        occurSession.$occur = this;\n        occurSession.$occurMatchingLines = found;\n        editor.setSession(occurSession);\n        this.$useEmacsStyleLineStart = this.$originalSession.$useEmacsStyleLineStart;\n        occurSession.$useEmacsStyleLineStart = this.$useEmacsStyleLineStart;\n        this.highlight(occurSession, options.re);\n        occurSession._emit('changeBackMarker');\n    }\n\n    this.displayOriginalContent = function(editor) {\n        editor.setSession(this.$originalSession);\n        this.$originalSession.$useEmacsStyleLineStart = this.$useEmacsStyleLineStart;\n    }\n    this.originalToOccurPosition = function(session, pos) {\n        var lines = session.$occurMatchingLines;\n        var nullPos = {row: 0, column: 0};\n        if (!lines) return nullPos;\n        for (var i = 0; i < lines.length; i++) {\n            if (lines[i].row === pos.row)\n                return {row: i, column: pos.column};\n        }\n        return nullPos;\n    }\n    this.occurToOriginalPosition = function(session, pos) {\n        var lines = session.$occurMatchingLines;\n        if (!lines || !lines[pos.row])\n            return pos;\n        return {row: lines[pos.row].row, column: pos.column};\n    }\n\n    this.matchingLines = function(session, options) {\n        options = oop.mixin({}, options);\n        if (!session || !options.needle) return [];\n        var search = new Search();\n        search.set(options);\n        return search.findAll(session).reduce(function(lines, range) {\n            var row = range.start.row;\n            var last = lines[lines.length-1];\n            return last && last.row === row ?\n                lines :\n                lines.concat({row: row, content: session.getLine(row)});\n        }, []);\n    }\n\n}).call(Occur.prototype);\n\nvar dom = require('./lib/dom');\ndom.importCssString(\".ace_occur-highlight {\\n\\\n    border-radius: 4px;\\n\\\n    background-color: rgba(87, 255, 8, 0.25);\\n\\\n    position: absolute;\\n\\\n    z-index: 4;\\n\\\n    -moz-box-sizing: border-box;\\n\\\n    -webkit-box-sizing: border-box;\\n\\\n    box-sizing: border-box;\\n\\\n    box-shadow: 0 0 4px rgb(91, 255, 50);\\n\\\n}\\n\\\n.ace_dark .ace_occur-highlight {\\n\\\n    background-color: rgb(80, 140, 85);\\n\\\n    box-shadow: 0 0 4px rgb(60, 120, 70);\\n\\\n}\\n\", \"incremental-occur-highlighting\");\n\nexports.Occur = Occur;\n\n});\n\nace.define(\"ace/commands/occur_commands\",[\"require\",\"exports\",\"module\",\"ace/config\",\"ace/occur\",\"ace/keyboard/hash_handler\",\"ace/lib/oop\"], function(require, exports, module) {\n\nvar config = require(\"../config\"),\n    Occur = require(\"../occur\").Occur;\nvar occurStartCommand = {\n    name: \"occur\",\n    exec: function(editor, options) {\n        var alreadyInOccur = !!editor.session.$occur;\n        var occurSessionActive = new Occur().enter(editor, options);\n        if (occurSessionActive && !alreadyInOccur)\n            OccurKeyboardHandler.installIn(editor);\n    },\n    readOnly: true\n};\n\nvar occurCommands = [{\n    name: \"occurexit\",\n    bindKey: 'esc|Ctrl-G',\n    exec: function(editor) {\n        var occur = editor.session.$occur;\n        if (!occur) return;\n        occur.exit(editor, {});\n        if (!editor.session.$occur) OccurKeyboardHandler.uninstallFrom(editor);\n    },\n    readOnly: true\n}, {\n    name: \"occuraccept\",\n    bindKey: 'enter',\n    exec: function(editor) {\n        var occur = editor.session.$occur;\n        if (!occur) return;\n        occur.exit(editor, {translatePosition: true});\n        if (!editor.session.$occur) OccurKeyboardHandler.uninstallFrom(editor);\n    },\n    readOnly: true\n}];\n\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nvar oop = require(\"../lib/oop\");\n\n\nfunction OccurKeyboardHandler() {}\n\noop.inherits(OccurKeyboardHandler, HashHandler);\n\n(function() {\n\n    this.isOccurHandler = true;\n\n    this.attach = function(editor) {\n        HashHandler.call(this, occurCommands, editor.commands.platform);\n        this.$editor = editor;\n    }\n\n    var handleKeyboard$super = this.handleKeyboard;\n    this.handleKeyboard = function(data, hashId, key, keyCode) {\n        var cmd = handleKeyboard$super.call(this, data, hashId, key, keyCode);\n        return (cmd && cmd.command) ? cmd : undefined;\n    }\n\n}).call(OccurKeyboardHandler.prototype);\n\nOccurKeyboardHandler.installIn = function(editor) {\n    var handler = new this();\n    editor.keyBinding.addKeyboardHandler(handler);\n    editor.commands.addCommands(occurCommands);\n}\n\nOccurKeyboardHandler.uninstallFrom = function(editor) {\n    editor.commands.removeCommands(occurCommands);\n    var handler = editor.getKeyboardHandler();\n    if (handler.isOccurHandler)\n        editor.keyBinding.removeKeyboardHandler(handler);\n}\n\nexports.occurStartCommand = occurStartCommand;\n\n});\n\nace.define(\"ace/commands/incremental_search_commands\",[\"require\",\"exports\",\"module\",\"ace/config\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/commands/occur_commands\"], function(require, exports, module) {\n\nvar config = require(\"../config\");\nvar oop = require(\"../lib/oop\");\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nvar occurStartCommand = require(\"./occur_commands\").occurStartCommand;\nexports.iSearchStartCommands = [{\n    name: \"iSearch\",\n    bindKey: {win: \"Ctrl-F\", mac: \"Command-F\"},\n    exec: function(editor, options) {\n        config.loadModule([\"core\", \"ace/incremental_search\"], function(e) {\n            var iSearch = e.iSearch = e.iSearch || new e.IncrementalSearch();\n            iSearch.activate(editor, options.backwards);\n            if (options.jumpToFirstMatch) iSearch.next(options);\n        });\n    },\n    readOnly: true\n}, {\n    name: \"iSearchBackwards\",\n    exec: function(editor, jumpToNext) { editor.execCommand('iSearch', {backwards: true}); },\n    readOnly: true\n}, {\n    name: \"iSearchAndGo\",\n    bindKey: {win: \"Ctrl-K\", mac: \"Command-G\"},\n    exec: function(editor, jumpToNext) { editor.execCommand('iSearch', {jumpToFirstMatch: true, useCurrentOrPrevSearch: true}); },\n    readOnly: true\n}, {\n    name: \"iSearchBackwardsAndGo\",\n    bindKey: {win: \"Ctrl-Shift-K\", mac: \"Command-Shift-G\"},\n    exec: function(editor) { editor.execCommand('iSearch', {jumpToFirstMatch: true, backwards: true, useCurrentOrPrevSearch: true}); },\n    readOnly: true\n}];\nexports.iSearchCommands = [{\n    name: \"restartSearch\",\n    bindKey: {win: \"Ctrl-F\", mac: \"Command-F\"},\n    exec: function(iSearch) {\n        iSearch.cancelSearch(true);\n    }\n}, {\n    name: \"searchForward\",\n    bindKey: {win: \"Ctrl-S|Ctrl-K\", mac: \"Ctrl-S|Command-G\"},\n    exec: function(iSearch, options) {\n        options.useCurrentOrPrevSearch = true;\n        iSearch.next(options);\n    }\n}, {\n    name: \"searchBackward\",\n    bindKey: {win: \"Ctrl-R|Ctrl-Shift-K\", mac: \"Ctrl-R|Command-Shift-G\"},\n    exec: function(iSearch, options) {\n        options.useCurrentOrPrevSearch = true;\n        options.backwards = true;\n        iSearch.next(options);\n    }\n}, {\n    name: \"extendSearchTerm\",\n    exec: function(iSearch, string) {\n        iSearch.addString(string);\n    }\n}, {\n    name: \"extendSearchTermSpace\",\n    bindKey: \"space\",\n    exec: function(iSearch) { iSearch.addString(' '); }\n}, {\n    name: \"shrinkSearchTerm\",\n    bindKey: \"backspace\",\n    exec: function(iSearch) {\n        iSearch.removeChar();\n    }\n}, {\n    name: 'confirmSearch',\n    bindKey: 'return',\n    exec: function(iSearch) { iSearch.deactivate(); }\n}, {\n    name: 'cancelSearch',\n    bindKey: 'esc|Ctrl-G',\n    exec: function(iSearch) { iSearch.deactivate(true); }\n}, {\n    name: 'occurisearch',\n    bindKey: 'Ctrl-O',\n    exec: function(iSearch) {\n        var options = oop.mixin({}, iSearch.$options);\n        iSearch.deactivate();\n        occurStartCommand.exec(iSearch.$editor, options);\n    }\n}, {\n    name: \"yankNextWord\",\n    bindKey: \"Ctrl-w\",\n    exec: function(iSearch) {\n        var ed = iSearch.$editor,\n            range = ed.selection.getRangeOfMovements(function(sel) { sel.moveCursorWordRight(); }),\n            string = ed.session.getTextRange(range);\n        iSearch.addString(string);\n    }\n}, {\n    name: \"yankNextChar\",\n    bindKey: \"Ctrl-Alt-y\",\n    exec: function(iSearch) {\n        var ed = iSearch.$editor,\n            range = ed.selection.getRangeOfMovements(function(sel) { sel.moveCursorRight(); }),\n            string = ed.session.getTextRange(range);\n        iSearch.addString(string);\n    }\n}, {\n    name: 'recenterTopBottom',\n    bindKey: 'Ctrl-l',\n    exec: function(iSearch) { iSearch.$editor.execCommand('recenterTopBottom'); }\n}, {\n    name: 'selectAllMatches',\n    bindKey: 'Ctrl-space',\n    exec: function(iSearch) {\n        var ed = iSearch.$editor,\n            hl = ed.session.$isearchHighlight,\n            ranges = hl && hl.cache ? hl.cache\n                .reduce(function(ranges, ea) {\n                    return ranges.concat(ea ? ea : []); }, []) : [];\n        iSearch.deactivate(false);\n        ranges.forEach(ed.selection.addRange.bind(ed.selection));\n    }\n}, {\n    name: 'searchAsRegExp',\n    bindKey: 'Alt-r',\n    exec: function(iSearch) {\n        iSearch.convertNeedleToRegExp();\n    }\n}].map(function(cmd) {\n    cmd.readOnly = true;\n    cmd.isIncrementalSearchCommand = true;\n    cmd.scrollIntoView = \"animate-cursor\";\n    return cmd;\n});\n\nfunction IncrementalSearchKeyboardHandler(iSearch) {\n    this.$iSearch = iSearch;\n}\n\noop.inherits(IncrementalSearchKeyboardHandler, HashHandler);\n\n(function() {\n\n    this.attach = function(editor) {\n        var iSearch = this.$iSearch;\n        HashHandler.call(this, exports.iSearchCommands, editor.commands.platform);\n        this.$commandExecHandler = editor.commands.addEventListener('exec', function(e) {\n            if (!e.command.isIncrementalSearchCommand)\n                return iSearch.deactivate();\n            e.stopPropagation();\n            e.preventDefault();\n            var scrollTop = editor.session.getScrollTop();\n            var result = e.command.exec(iSearch, e.args || {});\n            editor.renderer.scrollCursorIntoView(null, 0.5);\n            editor.renderer.animateScrolling(scrollTop);\n            return result;\n        });\n    };\n\n    this.detach = function(editor) {\n        if (!this.$commandExecHandler) return;\n        editor.commands.removeEventListener('exec', this.$commandExecHandler);\n        delete this.$commandExecHandler;\n    };\n\n    var handleKeyboard$super = this.handleKeyboard;\n    this.handleKeyboard = function(data, hashId, key, keyCode) {\n        if (((hashId === 1/*ctrl*/ || hashId === 8/*command*/) && key === 'v')\n         || (hashId === 1/*ctrl*/ && key === 'y')) return null;\n        var cmd = handleKeyboard$super.call(this, data, hashId, key, keyCode);\n        if (cmd.command) { return cmd; }\n        if (hashId == -1) {\n            var extendCmd = this.commands.extendSearchTerm;\n            if (extendCmd) { return {command: extendCmd, args: key}; }\n        }\n        return false;\n    };\n\n}).call(IncrementalSearchKeyboardHandler.prototype);\n\n\nexports.IncrementalSearchKeyboardHandler = IncrementalSearchKeyboardHandler;\n\n});\n\nace.define(\"ace/incremental_search\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/search\",\"ace/search_highlight\",\"ace/commands/incremental_search_commands\",\"ace/lib/dom\",\"ace/commands/command_manager\",\"ace/editor\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar Range = require(\"./range\").Range;\nvar Search = require(\"./search\").Search;\nvar SearchHighlight = require(\"./search_highlight\").SearchHighlight;\nvar iSearchCommandModule = require(\"./commands/incremental_search_commands\");\nvar ISearchKbd = iSearchCommandModule.IncrementalSearchKeyboardHandler;\nfunction IncrementalSearch() {\n    this.$options = {wrap: false, skipCurrent: false};\n    this.$keyboardHandler = new ISearchKbd(this);\n}\n\noop.inherits(IncrementalSearch, Search);\n\nfunction isRegExp(obj) {\n    return obj instanceof RegExp;\n}\n\nfunction regExpToObject(re) {\n    var string = String(re),\n        start = string.indexOf('/'),\n        flagStart = string.lastIndexOf('/');\n    return {\n        expression: string.slice(start+1, flagStart),\n        flags: string.slice(flagStart+1)\n    }\n}\n\nfunction stringToRegExp(string, flags) {\n    try {\n        return new RegExp(string, flags);\n    } catch (e) { return string; }\n}\n\nfunction objectToRegExp(obj) {\n    return stringToRegExp(obj.expression, obj.flags);\n}\n\n(function() {\n\n    this.activate = function(ed, backwards) {\n        this.$editor = ed;\n        this.$startPos = this.$currentPos = ed.getCursorPosition();\n        this.$options.needle = '';\n        this.$options.backwards = backwards;\n        ed.keyBinding.addKeyboardHandler(this.$keyboardHandler);\n        this.$originalEditorOnPaste = ed.onPaste; ed.onPaste = this.onPaste.bind(this);\n        this.$mousedownHandler = ed.addEventListener('mousedown', this.onMouseDown.bind(this));\n        this.selectionFix(ed);\n        this.statusMessage(true);\n    };\n\n    this.deactivate = function(reset) {\n        this.cancelSearch(reset);\n        var ed = this.$editor;\n        ed.keyBinding.removeKeyboardHandler(this.$keyboardHandler);\n        if (this.$mousedownHandler) {\n            ed.removeEventListener('mousedown', this.$mousedownHandler);\n            delete this.$mousedownHandler;\n        }\n        ed.onPaste = this.$originalEditorOnPaste;\n        this.message('');\n    };\n\n    this.selectionFix = function(editor) {\n        if (editor.selection.isEmpty() && !editor.session.$emacsMark) {\n            editor.clearSelection();\n        }\n    };\n\n    this.highlight = function(regexp) {\n        var sess = this.$editor.session,\n            hl = sess.$isearchHighlight = sess.$isearchHighlight || sess.addDynamicMarker(\n                new SearchHighlight(null, \"ace_isearch-result\", \"text\"));\n        hl.setRegexp(regexp);\n        sess._emit(\"changeBackMarker\"); // force highlight layer redraw\n    };\n\n    this.cancelSearch = function(reset) {\n        var e = this.$editor;\n        this.$prevNeedle = this.$options.needle;\n        this.$options.needle = '';\n        if (reset) {\n            e.moveCursorToPosition(this.$startPos);\n            this.$currentPos = this.$startPos;\n        } else {\n            e.pushEmacsMark && e.pushEmacsMark(this.$startPos, false);\n        }\n        this.highlight(null);\n        return Range.fromPoints(this.$currentPos, this.$currentPos);\n    };\n\n    this.highlightAndFindWithNeedle = function(moveToNext, needleUpdateFunc) {\n        if (!this.$editor) return null;\n        var options = this.$options;\n        if (needleUpdateFunc) {\n            options.needle = needleUpdateFunc.call(this, options.needle || '') || '';\n        }\n        if (options.needle.length === 0) {\n            this.statusMessage(true);\n            return this.cancelSearch(true);\n        }\n        options.start = this.$currentPos;\n        var session = this.$editor.session,\n            found = this.find(session),\n            shouldSelect = this.$editor.emacsMark ?\n                !!this.$editor.emacsMark() : !this.$editor.selection.isEmpty();\n        if (found) {\n            if (options.backwards) found = Range.fromPoints(found.end, found.start);\n            this.$editor.selection.setRange(Range.fromPoints(shouldSelect ? this.$startPos : found.end, found.end));\n            if (moveToNext) this.$currentPos = found.end;\n            this.highlight(options.re);\n        }\n\n        this.statusMessage(found);\n\n        return found;\n    };\n\n    this.addString = function(s) {\n        return this.highlightAndFindWithNeedle(false, function(needle) {\n            if (!isRegExp(needle))\n              return needle + s;\n            var reObj = regExpToObject(needle);\n            reObj.expression += s;\n            return objectToRegExp(reObj);\n        });\n    };\n\n    this.removeChar = function(c) {\n        return this.highlightAndFindWithNeedle(false, function(needle) {\n            if (!isRegExp(needle))\n              return needle.substring(0, needle.length-1);\n            var reObj = regExpToObject(needle);\n            reObj.expression = reObj.expression.substring(0, reObj.expression.length-1);\n            return objectToRegExp(reObj);\n        });\n    };\n\n    this.next = function(options) {\n        options = options || {};\n        this.$options.backwards = !!options.backwards;\n        this.$currentPos = this.$editor.getCursorPosition();\n        return this.highlightAndFindWithNeedle(true, function(needle) {\n            return options.useCurrentOrPrevSearch && needle.length === 0 ?\n                this.$prevNeedle || '' : needle;\n        });\n    };\n\n    this.onMouseDown = function(evt) {\n        this.deactivate();\n        return true;\n    };\n\n    this.onPaste = function(text) {\n        this.addString(text);\n    };\n\n    this.convertNeedleToRegExp = function() {\n        return this.highlightAndFindWithNeedle(false, function(needle) {\n            return isRegExp(needle) ? needle : stringToRegExp(needle, 'ig');\n        });\n    };\n\n    this.convertNeedleToString = function() {\n        return this.highlightAndFindWithNeedle(false, function(needle) {\n            return isRegExp(needle) ? regExpToObject(needle).expression : needle;\n        });\n    };\n\n    this.statusMessage = function(found) {\n        var options = this.$options, msg = '';\n        msg += options.backwards ? 'reverse-' : '';\n        msg += 'isearch: ' + options.needle;\n        msg += found ? '' : ' (not found)';\n        this.message(msg);\n    };\n\n    this.message = function(msg) {\n        if (this.$editor.showCommandLine) {\n            this.$editor.showCommandLine(msg);\n            this.$editor.focus();\n        } else {\n            console.log(msg);\n        }\n    };\n\n}).call(IncrementalSearch.prototype);\n\n\nexports.IncrementalSearch = IncrementalSearch;\n\nvar dom = require('./lib/dom');\ndom.importCssString && dom.importCssString(\"\\\n.ace_marker-layer .ace_isearch-result {\\\n  position: absolute;\\\n  z-index: 6;\\\n  -moz-box-sizing: border-box;\\\n  -webkit-box-sizing: border-box;\\\n  box-sizing: border-box;\\\n}\\\ndiv.ace_isearch-result {\\\n  border-radius: 4px;\\\n  background-color: rgba(255, 200, 0, 0.5);\\\n  box-shadow: 0 0 4px rgb(255, 200, 0);\\\n}\\\n.ace_dark div.ace_isearch-result {\\\n  background-color: rgb(100, 110, 160);\\\n  box-shadow: 0 0 4px rgb(80, 90, 140);\\\n}\", \"incremental-search-highlighting\");\nvar commands = require(\"./commands/command_manager\");\n(function() {\n    this.setupIncrementalSearch = function(editor, val) {\n        if (this.usesIncrementalSearch == val) return;\n        this.usesIncrementalSearch = val;\n        var iSearchCommands = iSearchCommandModule.iSearchStartCommands;\n        var method = val ? 'addCommands' : 'removeCommands';\n        this[method](iSearchCommands);\n    };\n}).call(commands.CommandManager.prototype);\nvar Editor = require(\"./editor\").Editor;\nrequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n    useIncrementalSearch: {\n        set: function(val) {\n            this.keyBinding.$handlers.forEach(function(handler) {\n                if (handler.setupIncrementalSearch) {\n                    handler.setupIncrementalSearch(this, val);\n                }\n            });\n            this._emit('incrementalSearchSettingChanged', {isEnabled: val});\n        }\n    }\n});\n\n});\n\nace.define(\"ace/keyboard/emacs\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/incremental_search\",\"ace/commands/incremental_search_commands\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\"], function(require, exports, module) {\n\"use strict\";\n\nvar dom = require(\"../lib/dom\");\nrequire(\"../incremental_search\");\nvar iSearchCommandModule = require(\"../commands/incremental_search_commands\");\n\n\nvar screenToTextBlockCoordinates = function(x, y) {\n    var canvasPos = this.scroller.getBoundingClientRect();\n\n    var col = Math.floor(\n        (x + this.scrollLeft - canvasPos.left - this.$padding) / this.characterWidth\n    );\n    var row = Math.floor(\n        (y + this.scrollTop - canvasPos.top) / this.lineHeight\n    );\n\n    return this.session.screenToDocumentPosition(row, col);\n};\n\nvar HashHandler = require(\"./hash_handler\").HashHandler;\nexports.handler = new HashHandler();\n\nexports.handler.isEmacs = true;\nexports.handler.$id = \"ace/keyboard/emacs\";\n\nvar initialized = false;\nvar $formerLongWords;\nvar $formerLineStart;\n\nexports.handler.attach = function(editor) {\n    if (!initialized) {\n        initialized = true;\n        dom.importCssString('\\\n            .emacs-mode .ace_cursor{\\\n                border: 1px rgba(50,250,50,0.8) solid!important;\\\n                -moz-box-sizing: border-box!important;\\\n                -webkit-box-sizing: border-box!important;\\\n                box-sizing: border-box!important;\\\n                background-color: rgba(0,250,0,0.9);\\\n                opacity: 0.5;\\\n            }\\\n            .emacs-mode .ace_hidden-cursors .ace_cursor{\\\n                opacity: 1;\\\n                background-color: transparent;\\\n            }\\\n            .emacs-mode .ace_overwrite-cursors .ace_cursor {\\\n                opacity: 1;\\\n                background-color: transparent;\\\n                border-width: 0 0 2px 2px !important;\\\n            }\\\n            .emacs-mode .ace_text-layer {\\\n                z-index: 4\\\n            }\\\n            .emacs-mode .ace_cursor-layer {\\\n                z-index: 2\\\n            }', 'emacsMode'\n        );\n    }\n    $formerLongWords = editor.session.$selectLongWords;\n    editor.session.$selectLongWords = true;\n    $formerLineStart = editor.session.$useEmacsStyleLineStart;\n    editor.session.$useEmacsStyleLineStart = true;\n\n    editor.session.$emacsMark = null; // the active mark\n    editor.session.$emacsMarkRing = editor.session.$emacsMarkRing || [];\n\n    editor.emacsMark = function() {\n        return this.session.$emacsMark;\n    };\n\n    editor.setEmacsMark = function(p) {\n        this.session.$emacsMark = p;\n    };\n\n    editor.pushEmacsMark = function(p, activate) {\n        var prevMark = this.session.$emacsMark;\n        if (prevMark)\n            this.session.$emacsMarkRing.push(prevMark);\n        if (!p || activate) this.setEmacsMark(p);\n        else this.session.$emacsMarkRing.push(p);\n    };\n\n    editor.popEmacsMark = function() {\n        var mark = this.emacsMark();\n        if (mark) { this.setEmacsMark(null); return mark; }\n        return this.session.$emacsMarkRing.pop();\n    };\n\n    editor.getLastEmacsMark = function(p) {\n        return this.session.$emacsMark || this.session.$emacsMarkRing.slice(-1)[0];\n    };\n\n    editor.emacsMarkForSelection = function(replacement) {\n        var sel = this.selection,\n            multiRangeLength = this.multiSelect ?\n                this.multiSelect.getAllRanges().length : 1,\n            selIndex = sel.index || 0,\n            markRing = this.session.$emacsMarkRing,\n            markIndex = markRing.length - (multiRangeLength - selIndex),\n            lastMark = markRing[markIndex] || sel.anchor;\n        if (replacement) {\n            markRing.splice(markIndex, 1,\n                \"row\" in replacement && \"column\" in replacement ?\n                    replacement : undefined);\n        }\n        return lastMark;\n    }\n\n    editor.on(\"click\", $resetMarkMode);\n    editor.on(\"changeSession\", $kbSessionChange);\n    editor.renderer.screenToTextCoordinates = screenToTextBlockCoordinates;\n    editor.setStyle(\"emacs-mode\");\n    editor.commands.addCommands(commands);\n    exports.handler.platform = editor.commands.platform;\n    editor.$emacsModeHandler = this;\n    editor.addEventListener('copy', this.onCopy);\n    editor.addEventListener('paste', this.onPaste);\n};\n\nexports.handler.detach = function(editor) {\n    delete editor.renderer.screenToTextCoordinates;\n    editor.session.$selectLongWords = $formerLongWords;\n    editor.session.$useEmacsStyleLineStart = $formerLineStart;\n    editor.removeEventListener(\"click\", $resetMarkMode);\n    editor.removeEventListener(\"changeSession\", $kbSessionChange);\n    editor.unsetStyle(\"emacs-mode\");\n    editor.commands.removeCommands(commands);\n    editor.removeEventListener('copy', this.onCopy);\n    editor.removeEventListener('paste', this.onPaste);\n    editor.$emacsModeHandler = null;\n};\n\nvar $kbSessionChange = function(e) {\n    if (e.oldSession) {\n        e.oldSession.$selectLongWords = $formerLongWords;\n        e.oldSession.$useEmacsStyleLineStart = $formerLineStart;\n    }\n\n    $formerLongWords = e.session.$selectLongWords;\n    e.session.$selectLongWords = true;\n    $formerLineStart = e.session.$useEmacsStyleLineStart;\n    e.session.$useEmacsStyleLineStart = true;\n\n    if (!e.session.hasOwnProperty('$emacsMark'))\n        e.session.$emacsMark = null;\n    if (!e.session.hasOwnProperty('$emacsMarkRing'))\n        e.session.$emacsMarkRing = [];\n};\n\nvar $resetMarkMode = function(e) {\n    e.editor.session.$emacsMark = null;\n};\n\nvar keys = require(\"../lib/keys\").KEY_MODS;\nvar eMods = {C: \"ctrl\", S: \"shift\", M: \"alt\", CMD: \"command\"};\nvar combinations = [\"C-S-M-CMD\",\n                    \"S-M-CMD\", \"C-M-CMD\", \"C-S-CMD\", \"C-S-M\",\n                    \"M-CMD\", \"S-CMD\", \"S-M\", \"C-CMD\", \"C-M\", \"C-S\",\n                    \"CMD\", \"M\", \"S\", \"C\"];\ncombinations.forEach(function(c) {\n    var hashId = 0;\n    c.split(\"-\").forEach(function(c) {\n        hashId = hashId | keys[eMods[c]];\n    });\n    eMods[hashId] = c.toLowerCase() + \"-\";\n});\n\nexports.handler.onCopy = function(e, editor) {\n    if (editor.$handlesEmacsOnCopy) return;\n    editor.$handlesEmacsOnCopy = true;\n    exports.handler.commands.killRingSave.exec(editor);\n    editor.$handlesEmacsOnCopy = false;\n};\n\nexports.handler.onPaste = function(e, editor) {\n    editor.pushEmacsMark(editor.getCursorPosition());\n};\n\nexports.handler.bindKey = function(key, command) {\n    if (typeof key == \"object\")\n        key = key[this.platform];\n    if (!key)\n        return;\n\n    var ckb = this.commandKeyBinding;\n    key.split(\"|\").forEach(function(keyPart) {\n        keyPart = keyPart.toLowerCase();\n        ckb[keyPart] = command;\n        var keyParts = keyPart.split(\" \").slice(0,-1);\n        keyParts.reduce(function(keyMapKeys, keyPart, i) {\n            var prefix = keyMapKeys[i-1] ? keyMapKeys[i-1] + ' ' : '';\n            return keyMapKeys.concat([prefix + keyPart]);\n        }, []).forEach(function(keyPart) {\n            if (!ckb[keyPart]) ckb[keyPart] = \"null\";\n        });\n    }, this);\n};\n\nexports.handler.getStatusText = function(editor, data) {\n  var str = \"\";\n  if (data.count)\n    str += data.count;\n  if (data.keyChain)\n    str += \" \" + data.keyChain\n  return str;\n};\n\nexports.handler.handleKeyboard = function(data, hashId, key, keyCode) {\n    if (keyCode === -1) return undefined;\n\n    var editor = data.editor;\n    editor._signal(\"changeStatus\");\n    if (hashId == -1) {\n        editor.pushEmacsMark();\n        if (data.count) {\n            var str = new Array(data.count + 1).join(key);\n            data.count = null;\n            return {command: \"insertstring\", args: str};\n        }\n    }\n\n    var modifier = eMods[hashId];\n    if (modifier == \"c-\" || data.count) {\n        var count = parseInt(key[key.length - 1]);\n        if (typeof count === 'number' && !isNaN(count)) {\n            data.count = Math.max(data.count, 0) || 0;\n            data.count = 10 * data.count + count;\n            return {command: \"null\"};\n        }\n    }\n    if (modifier) key = modifier + key;\n    if (data.keyChain) key = data.keyChain += \" \" + key;\n    var command = this.commandKeyBinding[key];\n    data.keyChain = command == \"null\" ? key : \"\";\n    if (!command) return undefined;\n    if (command === \"null\") return {command: \"null\"};\n\n    if (command === \"universalArgument\") {\n        data.count = -4;\n        return {command: \"null\"};\n    }\n    var args;\n    if (typeof command !== \"string\") {\n        args = command.args;\n        if (command.command) command = command.command;\n        if (command === \"goorselect\") {\n            command = editor.emacsMark() ? args[1] : args[0];\n            args = null;\n        }\n    }\n\n    if (typeof command === \"string\") {\n        if (command === \"insertstring\" ||\n            command === \"splitline\" ||\n            command === \"togglecomment\") {\n            editor.pushEmacsMark();\n        }\n        command = this.commands[command] || editor.commands.commands[command];\n        if (!command) return undefined;\n    }\n\n    if (!command.readOnly && !command.isYank)\n        data.lastCommand = null;\n\n    if (!command.readOnly && editor.emacsMark())\n        editor.setEmacsMark(null)\n        \n    if (data.count) {\n        var count = data.count;\n        data.count = 0;\n        if (!command || !command.handlesCount) {\n            return {\n                args: args,\n                command: {\n                    exec: function(editor, args) {\n                        for (var i = 0; i < count; i++)\n                            command.exec(editor, args);\n                    },\n                    multiSelectAction: command.multiSelectAction\n                }\n            };\n        } else {\n            if (!args) args = {};\n            if (typeof args === 'object') args.count = count;\n        }\n    }\n\n    return {command: command, args: args};\n};\n\nexports.emacsKeys = {\n    \"Up|C-p\"      : {command: \"goorselect\", args: [\"golineup\",\"selectup\"]},\n    \"Down|C-n\"    : {command: \"goorselect\", args: [\"golinedown\",\"selectdown\"]},\n    \"Left|C-b\"    : {command: \"goorselect\", args: [\"gotoleft\",\"selectleft\"]},\n    \"Right|C-f\"   : {command: \"goorselect\", args: [\"gotoright\",\"selectright\"]},\n    \"C-Left|M-b\"  : {command: \"goorselect\", args: [\"gotowordleft\",\"selectwordleft\"]},\n    \"C-Right|M-f\" : {command: \"goorselect\", args: [\"gotowordright\",\"selectwordright\"]},\n    \"Home|C-a\"    : {command: \"goorselect\", args: [\"gotolinestart\",\"selecttolinestart\"]},\n    \"End|C-e\"     : {command: \"goorselect\", args: [\"gotolineend\",\"selecttolineend\"]},\n    \"C-Home|S-M-,\": {command: \"goorselect\", args: [\"gotostart\",\"selecttostart\"]},\n    \"C-End|S-M-.\" : {command: \"goorselect\", args: [\"gotoend\",\"selecttoend\"]},\n    \"S-Up|S-C-p\"      : \"selectup\",\n    \"S-Down|S-C-n\"    : \"selectdown\",\n    \"S-Left|S-C-b\"    : \"selectleft\",\n    \"S-Right|S-C-f\"   : \"selectright\",\n    \"S-C-Left|S-M-b\"  : \"selectwordleft\",\n    \"S-C-Right|S-M-f\" : \"selectwordright\",\n    \"S-Home|S-C-a\"    : \"selecttolinestart\",\n    \"S-End|S-C-e\"     : \"selecttolineend\",\n    \"S-C-Home\"        : \"selecttostart\",\n    \"S-C-End\"         : \"selecttoend\",\n\n    \"C-l\" : \"recenterTopBottom\",\n    \"M-s\" : \"centerselection\",\n    \"M-g\": \"gotoline\",\n    \"C-x C-p\": \"selectall\",\n    \"C-Down\": {command: \"goorselect\", args: [\"gotopagedown\",\"selectpagedown\"]},\n    \"C-Up\": {command: \"goorselect\", args: [\"gotopageup\",\"selectpageup\"]},\n    \"PageDown|C-v\": {command: \"goorselect\", args: [\"gotopagedown\",\"selectpagedown\"]},\n    \"PageUp|M-v\": {command: \"goorselect\", args: [\"gotopageup\",\"selectpageup\"]},\n    \"S-C-Down\": \"selectpagedown\",\n    \"S-C-Up\": \"selectpageup\",\n\n    \"C-s\": \"iSearch\",\n    \"C-r\": \"iSearchBackwards\",\n\n    \"M-C-s\": \"findnext\",\n    \"M-C-r\": \"findprevious\",\n    \"S-M-5\": \"replace\",\n    \"Backspace\": \"backspace\",\n    \"Delete|C-d\": \"del\",\n    \"Return|C-m\": {command: \"insertstring\", args: \"\\n\"}, // \"newline\"\n    \"C-o\": \"splitline\",\n\n    \"M-d|C-Delete\": {command: \"killWord\", args: \"right\"},\n    \"C-Backspace|M-Backspace|M-Delete\": {command: \"killWord\", args: \"left\"},\n    \"C-k\": \"killLine\",\n\n    \"C-y|S-Delete\": \"yank\",\n    \"M-y\": \"yankRotate\",\n    \"C-g\": \"keyboardQuit\",\n\n    \"C-w|C-S-W\": \"killRegion\",\n    \"M-w\": \"killRingSave\",\n    \"C-Space\": \"setMark\",\n    \"C-x C-x\": \"exchangePointAndMark\",\n\n    \"C-t\": \"transposeletters\",\n    \"M-u\": \"touppercase\",    // Doesn't work\n    \"M-l\": \"tolowercase\",\n    \"M-/\": \"autocomplete\",   // Doesn't work\n    \"C-u\": \"universalArgument\",\n\n    \"M-;\": \"togglecomment\",\n\n    \"C-/|C-x u|S-C--|C-z\": \"undo\",\n    \"S-C-/|S-C-x u|C--|S-C-z\": \"redo\", // infinite undo?\n    \"C-x r\":  \"selectRectangularRegion\",\n    \"M-x\": {command: \"focusCommandLine\", args: \"M-x \"}\n};\n\n\nexports.handler.bindKeys(exports.emacsKeys);\n\nexports.handler.addCommands({\n    recenterTopBottom: function(editor) {\n        var renderer = editor.renderer;\n        var pos = renderer.$cursorLayer.getPixelPosition();\n        var h = renderer.$size.scrollerHeight - renderer.lineHeight;\n        var scrollTop = renderer.scrollTop;\n        if (Math.abs(pos.top - scrollTop) < 2) {\n            scrollTop = pos.top - h;\n        } else if (Math.abs(pos.top - scrollTop - h * 0.5) < 2) {\n            scrollTop = pos.top;\n        } else {\n            scrollTop = pos.top - h * 0.5;\n        }\n        editor.session.setScrollTop(scrollTop);\n    },\n    selectRectangularRegion:  function(editor) {\n        editor.multiSelect.toggleBlockSelection();\n    },\n    setMark:  {\n        exec: function(editor, args) {\n\n            if (args && args.count) {\n                if (editor.inMultiSelectMode) editor.forEachSelection(moveToMark);\n                else moveToMark();\n                moveToMark();\n                return;\n            }\n\n            var mark = editor.emacsMark(),\n                ranges = editor.selection.getAllRanges(),\n                rangePositions = ranges.map(function(r) { return {row: r.start.row, column: r.start.column}; }),\n                transientMarkModeActive = true,\n                hasNoSelection = ranges.every(function(range) { return range.isEmpty(); });\n            if (transientMarkModeActive && (mark || !hasNoSelection)) {\n                if (editor.inMultiSelectMode) editor.forEachSelection({exec: editor.clearSelection.bind(editor)});\n                else editor.clearSelection();\n                if (mark) editor.pushEmacsMark(null);\n                return;\n            }\n\n            if (!mark) {\n                rangePositions.forEach(function(pos) { editor.pushEmacsMark(pos); });\n                editor.setEmacsMark(rangePositions[rangePositions.length-1]);\n                return;\n            }\n\n            function moveToMark() {\n                var mark = editor.popEmacsMark();\n                mark && editor.moveCursorToPosition(mark);\n            }\n\n        },\n        readOnly: true,\n        handlesCount: true\n    },\n    exchangePointAndMark: {\n        exec: function exchangePointAndMark$exec(editor, args) {\n            var sel = editor.selection;\n            if (!args.count && !sel.isEmpty()) { // just invert selection\n                sel.setSelectionRange(sel.getRange(), !sel.isBackwards());\n                return;\n            }\n\n            if (args.count) { // replace mark and point\n                var pos = {row: sel.lead.row, column: sel.lead.column};\n                sel.clearSelection();\n                sel.moveCursorToPosition(editor.emacsMarkForSelection(pos));\n            } else { // create selection to last mark\n                sel.selectToPosition(editor.emacsMarkForSelection());\n            }\n        },\n        readOnly: true,\n        handlesCount: true,\n        multiSelectAction: \"forEach\"\n    },\n    killWord: {\n        exec: function(editor, dir) {\n            editor.clearSelection();\n            if (dir == \"left\")\n                editor.selection.selectWordLeft();\n            else\n                editor.selection.selectWordRight();\n\n            var range = editor.getSelectionRange();\n            var text = editor.session.getTextRange(range);\n            exports.killRing.add(text);\n\n            editor.session.remove(range);\n            editor.clearSelection();\n        },\n        multiSelectAction: \"forEach\"\n    },\n    killLine: function(editor) {\n        editor.pushEmacsMark(null);\n        editor.clearSelection();\n        var range = editor.getSelectionRange();\n        var line = editor.session.getLine(range.start.row);\n        range.end.column = line.length;\n        line = line.substr(range.start.column)\n        \n        var foldLine = editor.session.getFoldLine(range.start.row);\n        if (foldLine && range.end.row != foldLine.end.row) {\n            range.end.row = foldLine.end.row;\n            line = \"x\";\n        }\n        if (/^\\s*$/.test(line)) {\n            range.end.row++;\n            line = editor.session.getLine(range.end.row);\n            range.end.column = /^\\s*$/.test(line) ? line.length : 0;\n        }\n        var text = editor.session.getTextRange(range);\n        if (editor.prevOp.command == this)\n            exports.killRing.append(text);\n        else\n            exports.killRing.add(text);\n\n        editor.session.remove(range);\n        editor.clearSelection();\n    },\n    yank: function(editor) {\n        editor.onPaste(exports.killRing.get() || '');\n        editor.keyBinding.$data.lastCommand = \"yank\";\n    },\n    yankRotate: function(editor) {\n        if (editor.keyBinding.$data.lastCommand != \"yank\")\n            return;\n        editor.undo();\n        editor.session.$emacsMarkRing.pop(); // also undo recording mark\n        editor.onPaste(exports.killRing.rotate());\n        editor.keyBinding.$data.lastCommand = \"yank\";\n    },\n    killRegion: {\n        exec: function(editor) {\n            exports.killRing.add(editor.getCopyText());\n            editor.commands.byName.cut.exec(editor);\n            editor.setEmacsMark(null);\n        },\n        readOnly: true,\n        multiSelectAction: \"forEach\"\n    },\n    killRingSave: {\n        exec: function(editor) {\n\n            editor.$handlesEmacsOnCopy = true;\n            var marks = editor.session.$emacsMarkRing.slice(),\n                deselectedMarks = [];\n            exports.killRing.add(editor.getCopyText());\n\n            setTimeout(function() {\n                function deselect() {\n                    var sel = editor.selection, range = sel.getRange(),\n                        pos = sel.isBackwards() ? range.end : range.start;\n                    deselectedMarks.push({row: pos.row, column: pos.column});\n                    sel.clearSelection();\n                }\n                editor.$handlesEmacsOnCopy = false;\n                if (editor.inMultiSelectMode) editor.forEachSelection({exec: deselect});\n                else deselect();\n                editor.session.$emacsMarkRing = marks.concat(deselectedMarks.reverse());\n            }, 0);\n        },\n        readOnly: true\n    },\n    keyboardQuit: function(editor) {\n        editor.selection.clearSelection();\n        editor.setEmacsMark(null);\n        editor.keyBinding.$data.count = null;\n    },\n    focusCommandLine: function(editor, arg) {\n        if (editor.showCommandLine)\n            editor.showCommandLine(arg);\n    }\n});\n\nexports.handler.addCommands(iSearchCommandModule.iSearchStartCommands);\n\nvar commands = exports.handler.commands;\ncommands.yank.isYank = true;\ncommands.yankRotate.isYank = true;\n\nexports.killRing = {\n    $data: [],\n    add: function(str) {\n        str && this.$data.push(str);\n        if (this.$data.length > 30)\n            this.$data.shift();\n    },\n    append: function(str) {\n        var idx = this.$data.length - 1;\n        var text = this.$data[idx] || \"\";\n        if (str) text += str;\n        if (text) this.$data[idx] = text;\n    },\n    get: function(n) {\n        n = n || 1;\n        return this.$data.slice(this.$data.length-n, this.$data.length).reverse().join('\\n');\n    },\n    pop: function() {\n        if (this.$data.length > 1)\n            this.$data.pop();\n        return this.get();\n    },\n    rotate: function() {\n        this.$data.unshift(this.$data.pop());\n        return this.get();\n    }\n};\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/keybinding-vim.js",
    "content": "ace.define(\"ace/keyboard/vim\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/keys\",\"ace/lib/event\",\"ace/search\",\"ace/lib/useragent\",\"ace/search_highlight\",\"ace/commands/multi_select_commands\",\"ace/mode/text\",\"ace/multi_select\"], function(require, exports, module) {\n  'use strict';\n\n  function log() {\n    var d = \"\";\n    function format(p) {\n      if (typeof p != \"object\")\n        return p + \"\";\n      if (\"line\" in p) {\n        return p.line + \":\" + p.ch;\n      }\n      if (\"anchor\" in p) {\n        return format(p.anchor) + \"->\" + format(p.head);\n      }\n      if (Array.isArray(p))\n        return \"[\" + p.map(function(x) {\n          return format(x);\n        }) + \"]\";\n      return JSON.stringify(p);\n    }\n    for (var i = 0; i < arguments.length; i++) {\n      var p = arguments[i];\n      var f = format(p);\n      d += f + \"  \";\n    }\n    console.log(d);\n  }\n  var Range = require(\"../range\").Range;\n  var EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\n  var dom = require(\"../lib/dom\");\n  var oop = require(\"../lib/oop\");\n  var KEYS = require(\"../lib/keys\");\n  var event = require(\"../lib/event\");\n  var Search = require(\"../search\").Search;\n  var useragent = require(\"../lib/useragent\");\n  var SearchHighlight = require(\"../search_highlight\").SearchHighlight;\n  var multiSelectCommands = require(\"../commands/multi_select_commands\");\n  var TextModeTokenRe = require(\"../mode/text\").Mode.prototype.tokenRe;\n  require(\"../multi_select\");\n\n  var CodeMirror = function(ace) {\n    this.ace = ace;\n    this.state = {};\n    this.marks = {};\n    this.$uid = 0;\n    this.onChange = this.onChange.bind(this);\n    this.onSelectionChange = this.onSelectionChange.bind(this);\n    this.onBeforeEndOperation = this.onBeforeEndOperation.bind(this);\n    this.ace.on('change', this.onChange);\n    this.ace.on('changeSelection', this.onSelectionChange);\n    this.ace.on('beforeEndOperation', this.onBeforeEndOperation);\n  };\n  CodeMirror.Pos = function(line, ch) {\n    if (!(this instanceof Pos)) return new Pos(line, ch);\n    this.line = line; this.ch = ch;\n  };\n  CodeMirror.defineOption = function(name, val, setter) {};\n  CodeMirror.commands = {\n    redo: function(cm) { cm.ace.redo(); },\n    undo: function(cm) { cm.ace.undo(); },\n    newlineAndIndent: function(cm) { cm.ace.insert(\"\\n\"); }\n  };\n  CodeMirror.keyMap = {};\n  CodeMirror.addClass = CodeMirror.rmClass =\n  CodeMirror.e_stop = function() {};\n  CodeMirror.keyName = function(e) {\n    if (e.key) return e.key;\n    var key = (KEYS[e.keyCode] || \"\");\n    if (key.length == 1) key = key.toUpperCase();\n    key = event.getModifierString(e).replace(/(^|-)\\w/g, function(m) {\n      return m.toUpperCase();\n    }) + key;\n    return key;\n  };\n  CodeMirror.keyMap['default'] = function(key) {\n    return function(cm) {\n      var cmd = cm.ace.commands.commandKeyBinding[key.toLowerCase()];\n      return cmd && cm.ace.execCommand(cmd) !== false;\n    };\n  };\n  CodeMirror.lookupKey = function lookupKey(key, map, handle) {\n    if (typeof map == \"string\")\n      map = CodeMirror.keyMap[map];\n    var found = typeof map == \"function\" ? map(key) : map[key];\n    if (found === false) return \"nothing\";\n    if (found === \"...\") return \"multi\";\n    if (found != null && handle(found)) return \"handled\";\n\n    if (map.fallthrough) {\n      if (!Array.isArray(map.fallthrough))\n        return lookupKey(key, map.fallthrough, handle);\n      for (var i = 0; i < map.fallthrough.length; i++) {\n        var result = lookupKey(key, map.fallthrough[i], handle);\n        if (result) return result;\n      }\n    }\n  };\n\n  CodeMirror.signal = function(o, name, e) { return o._signal(name, e) };\n  CodeMirror.on = event.addListener;\n  CodeMirror.off = event.removeListener;\n  CodeMirror.isWordChar = function(ch) {\n    if (ch < \"\\x7f\") return /^\\w$/.test(ch);\n    TextModeTokenRe.lastIndex = 0;\n    return TextModeTokenRe.test(ch);\n  };\n  \n(function() {\n  oop.implement(CodeMirror.prototype, EventEmitter);\n  \n  this.destroy = function() {\n    this.ace.off('change', this.onChange);\n    this.ace.off('changeSelection', this.onSelectionChange);\n    this.ace.off('beforeEndOperation', this.onBeforeEndOperation);\n    this.removeOverlay();\n  };\n  this.virtualSelectionMode = function() {\n    return this.ace.inVirtualSelectionMode && this.ace.selection.index;\n  };\n  this.onChange = function(delta) {\n    var change = { text: delta.action[0] == 'i' ? delta.lines : [] };\n    var curOp = this.curOp = this.curOp || {};\n    if (!curOp.changeHandlers)\n      curOp.changeHandlers = this._eventRegistry[\"change\"] && this._eventRegistry[\"change\"].slice();\n    if (this.virtualSelectionMode()) return;\n    if (!curOp.lastChange) {\n      curOp.lastChange = curOp.change = change;\n    } else {\n      curOp.lastChange.next = curOp.lastChange = change;\n    }\n    this.$updateMarkers(delta);\n  };\n  this.onSelectionChange = function() {\n    var curOp = this.curOp = this.curOp || {};\n    if (!curOp.cursorActivityHandlers)\n      curOp.cursorActivityHandlers = this._eventRegistry[\"cursorActivity\"] && this._eventRegistry[\"cursorActivity\"].slice();\n    this.curOp.cursorActivity = true;\n    if (this.ace.inMultiSelectMode) {\n      this.ace.keyBinding.removeKeyboardHandler(multiSelectCommands.keyboardHandler);\n    }\n  };\n  this.operation = function(fn, force) {\n    if (!force && this.curOp || force && this.curOp && this.curOp.force) {\n      return fn();\n    }\n    if (force || !this.ace.curOp) {\n      if (this.curOp)\n        this.onBeforeEndOperation();\n    }\n    if (!this.ace.curOp) {\n      var prevOp = this.ace.prevOp;\n      this.ace.startOperation({\n        command: { name: \"vim\",  scrollIntoView: \"cursor\" }\n      });\n    }\n    var curOp = this.curOp = this.curOp || {};\n    this.curOp.force = force;\n    var result = fn();\n    if (this.ace.curOp && this.ace.curOp.command.name == \"vim\") {\n      this.ace.endOperation();\n      if (!curOp.cursorActivity && !curOp.lastChange && prevOp)\n        this.ace.prevOp = prevOp;\n    }\n    if (force || !this.ace.curOp) {\n      if (this.curOp)\n        this.onBeforeEndOperation();\n    }\n    return result;\n  };\n  this.onBeforeEndOperation = function() {\n    var op = this.curOp;\n    if (op) {\n      if (op.change) { this.signal(\"change\", op.change, op); }\n      if (op && op.cursorActivity) { this.signal(\"cursorActivity\", null, op); }\n      this.curOp = null;\n    }\n  };\n\n  this.signal = function(eventName, e, handlers) {\n    var listeners = handlers ? handlers[eventName + \"Handlers\"]\n        : (this._eventRegistry || {})[eventName];\n    if (!listeners)\n        return;\n    listeners = listeners.slice();\n    for (var i=0; i<listeners.length; i++)\n        listeners[i](this, e);\n  };\n  this.firstLine = function() { return 0; };\n  this.lastLine = function() { return this.ace.session.getLength() - 1; };\n  this.lineCount = function() { return this.ace.session.getLength(); };\n  this.setCursor = function(line, ch) {\n    if (typeof line === 'object') {\n      ch = line.ch;\n      line = line.line;\n    }\n    if (!this.ace.inVirtualSelectionMode)\n      this.ace.exitMultiSelectMode();\n    this.ace.session.unfold({row: line, column: ch});\n    this.ace.selection.moveTo(line, ch);\n  };\n  this.getCursor = function(p) {\n    var sel = this.ace.selection;\n    var pos = p == 'anchor' ? (sel.isEmpty() ? sel.lead : sel.anchor) :\n        p == 'head' || !p ? sel.lead : sel.getRange()[p];\n    return toCmPos(pos);\n  };\n  this.listSelections = function(p) {\n    var ranges = this.ace.multiSelect.rangeList.ranges;\n    if (!ranges.length || this.ace.inVirtualSelectionMode)\n      return [{anchor: this.getCursor('anchor'), head: this.getCursor('head')}];\n    return ranges.map(function(r) {\n      return {\n        anchor: this.clipPos(toCmPos(r.cursor == r.end ? r.start : r.end)),\n        head: this.clipPos(toCmPos(r.cursor))\n      };\n    }, this);\n  };\n  this.setSelections = function(p, primIndex) {\n    var sel = this.ace.multiSelect;\n    var ranges = p.map(function(x) {\n      var anchor = toAcePos(x.anchor);\n      var head = toAcePos(x.head);\n      var r = Range.comparePoints(anchor, head) < 0\n        ? new Range.fromPoints(anchor, head)\n        : new Range.fromPoints(head, anchor);\n      r.cursor = Range.comparePoints(r.start, head) ? r.end : r.start;\n      return r;\n    });\n    \n    if (this.ace.inVirtualSelectionMode) {\n      this.ace.selection.fromOrientedRange(ranges[0]);\n      return;\n    }\n    if (!primIndex) {\n        ranges = ranges.reverse();\n    } else if (ranges[primIndex]) {\n       ranges.push(ranges.splice(primIndex, 1)[0]);\n    }\n    sel.toSingleRange(ranges[0].clone());\n    var session = this.ace.session;\n    for (var i = 0; i < ranges.length; i++) {\n      var range = session.$clipRangeToDocument(ranges[i]); // todo why ace doesn't do this?\n      sel.addRange(range);\n    }\n  };\n  this.setSelection = function(a, h, options) {\n    var sel = this.ace.selection;\n    sel.moveTo(a.line, a.ch);\n    sel.selectTo(h.line, h.ch);\n    if (options && options.origin == '*mouse') {\n      this.onBeforeEndOperation();\n    }\n  };\n  this.somethingSelected = function(p) {\n    return !this.ace.selection.isEmpty();\n  };\n  this.clipPos = function(p) {\n    var pos = this.ace.session.$clipPositionToDocument(p.line, p.ch);\n    return toCmPos(pos);\n  };\n  this.markText = function(cursor) {\n    return {clear: function() {}, find: function() {}};\n  };\n  this.$updateMarkers = function(delta) {\n    var isInsert = delta.action == \"insert\";\n    var start = delta.start;\n    var end = delta.end;\n    var rowShift = (end.row - start.row) * (isInsert ? 1 : -1);\n    var colShift = (end.column - start.column) * (isInsert ? 1 : -1);\n    if (isInsert) end = start;\n    \n    for (var i in this.marks) {\n      var point = this.marks[i];\n      var cmp = Range.comparePoints(point, start);\n      if (cmp < 0) {\n        continue; // delta starts after the range\n      }\n      if (cmp === 0) {\n        if (isInsert) {\n          if (point.bias == 1) {\n            cmp = 1;\n          } else {\n            point.bias == -1;\n            continue;\n          }\n        }\n      }\n      var cmp2 = isInsert ? cmp : Range.comparePoints(point, end);\n      if (cmp2 > 0) {\n        point.row += rowShift;\n        point.column += point.row == end.row ? colShift : 0;\n        continue;\n      }\n      if (!isInsert && cmp2 <= 0) {\n        point.row = start.row;\n        point.column = start.column;\n        if (cmp2 === 0)\n          point.bias = 1;\n      }\n    }\n  };\n  var Marker = function(cm, id, row, column) {\n    this.cm = cm;\n    this.id = id;\n    this.row = row;\n    this.column = column;\n    cm.marks[this.id] = this;\n  };\n  Marker.prototype.clear = function() { delete this.cm.marks[this.id] };\n  Marker.prototype.find = function() { return toCmPos(this) };\n  this.setBookmark = function(cursor, options) {\n    var bm = new Marker(this, this.$uid++, cursor.line, cursor.ch);\n    if (!options || !options.insertLeft)\n      bm.$insertRight = true;\n    this.marks[bm.id] = bm;\n    return bm;\n  };\n  this.moveH = function(increment, unit) {\n    if (unit == 'char') {\n      var sel = this.ace.selection;\n      sel.clearSelection();\n      sel.moveCursorBy(0, increment);\n    }\n  };\n  this.findPosV = function(start, amount, unit, goalColumn) {\n    if (unit == 'page') {\n      var renderer = this.ace.renderer;\n      var config = renderer.layerConfig;\n      amount = amount * Math.floor(config.height / config.lineHeight);\n      unit = 'line';\n    }\n    if (unit == 'line') {\n      var screenPos = this.ace.session.documentToScreenPosition(start.line, start.ch);\n      if (goalColumn != null)\n        screenPos.column = goalColumn;\n      screenPos.row += amount;\n      screenPos.row = Math.min(Math.max(0, screenPos.row), this.ace.session.getScreenLength() - 1);\n      var pos = this.ace.session.screenToDocumentPosition(screenPos.row, screenPos.column);\n      return toCmPos(pos);\n    } else {\n      debugger;\n    }\n  };\n  this.charCoords = function(pos, mode) {\n    if (mode == 'div' || !mode) {\n      var sc = this.ace.session.documentToScreenPosition(pos.line, pos.ch);\n      return {left: sc.column, top: sc.row};\n    }if (mode == 'local') {\n      var renderer = this.ace.renderer;\n      var sc = this.ace.session.documentToScreenPosition(pos.line, pos.ch);\n      var lh = renderer.layerConfig.lineHeight;\n      var cw = renderer.layerConfig.characterWidth;\n      var top = lh * sc.row;\n      return {left: sc.column * cw, top: top, bottom: top + lh};\n    }\n  };\n  this.coordsChar = function(pos, mode) {\n    var renderer = this.ace.renderer;\n    if (mode == 'local') {\n      var row = Math.max(0, Math.floor(pos.top / renderer.lineHeight));\n      var col = Math.max(0, Math.floor(pos.left / renderer.characterWidth));\n      var ch = renderer.session.screenToDocumentPosition(row, col);\n      return toCmPos(ch);\n    } else if (mode == 'div') {\n      throw \"not implemented\";\n    }\n  };\n  this.getSearchCursor = function(query, pos, caseFold) {\n    var caseSensitive = false;\n    var isRegexp = false;\n    if (query instanceof RegExp && !query.global) {\n      caseSensitive = !query.ignoreCase;\n      query = query.source;\n      isRegexp = true;\n    }\n    var search = new Search();\n    if (pos.ch == undefined) pos.ch = Number.MAX_VALUE;\n    var acePos = {row: pos.line, column: pos.ch};\n    var cm = this;\n    var last = null;\n    return {\n      findNext: function() { return this.find(false) },\n      findPrevious: function() {return this.find(true) },\n      find: function(back) {\n        search.setOptions({\n          needle: query,\n          caseSensitive: caseSensitive,\n          wrap: false,\n          backwards: back,\n          regExp: isRegexp,\n          start: last || acePos\n        });\n        var range = search.find(cm.ace.session);\n        if (range && range.isEmpty()) {\n          if (cm.getLine(range.start.row).length == range.start.column) {\n            search.$options.start = range;\n            range = search.find(cm.ace.session);\n          }\n        }\n        last = range;\n        return last;\n      },\n      from: function() { return last && toCmPos(last.start) },\n      to: function() { return last && toCmPos(last.end) },\n      replace: function(text) {\n        if (last) {\n          last.end = cm.ace.session.doc.replace(last, text);\n        }\n      }\n    };\n  };\n  this.scrollTo = function(x, y) {\n    var renderer = this.ace.renderer;\n    var config = renderer.layerConfig;\n    var maxHeight = config.maxHeight;\n    maxHeight -= (renderer.$size.scrollerHeight - renderer.lineHeight) * renderer.$scrollPastEnd;\n    if (y != null) this.ace.session.setScrollTop(Math.max(0, Math.min(y, maxHeight)));\n    if (x != null) this.ace.session.setScrollLeft(Math.max(0, Math.min(x, config.width)));\n  };\n  this.scrollInfo = function() { return 0; };\n  this.scrollIntoView = function(pos, margin) {\n    if (pos) {\n      var renderer = this.ace.renderer;\n      var viewMargin = { \"top\": 0, \"bottom\": margin };\n      renderer.scrollCursorIntoView(toAcePos(pos),\n        (renderer.lineHeight * 2) / renderer.$size.scrollerHeight, viewMargin);\n    }\n  };\n  this.getLine = function(row) { return this.ace.session.getLine(row) };\n  this.getRange = function(s, e) {\n    return this.ace.session.getTextRange(new Range(s.line, s.ch, e.line, e.ch));\n  };\n  this.replaceRange = function(text, s, e) {\n    if (!e) e = s;\n    return this.ace.session.replace(new Range(s.line, s.ch, e.line, e.ch), text);\n  };\n  this.replaceSelections = function(p) {\n    var sel = this.ace.selection;\n    if (this.ace.inVirtualSelectionMode) {\n      this.ace.session.replace(sel.getRange(), p[0] || \"\");\n      return;\n    }\n    sel.inVirtualSelectionMode = true;\n    var ranges = sel.rangeList.ranges;\n    if (!ranges.length) ranges = [this.ace.multiSelect.getRange()];\n    for (var i = ranges.length; i--;)\n       this.ace.session.replace(ranges[i], p[i] || \"\");\n    sel.inVirtualSelectionMode = false;\n  };\n  this.getSelection = function() {\n    return this.ace.getSelectedText();\n  };\n  this.getSelections = function() {\n    return this.listSelections().map(function(x) {\n      return this.getRange(x.anchor, x.head);\n    }, this);\n  };\n  this.getInputField = function() {\n    return this.ace.textInput.getElement();\n  };\n  this.getWrapperElement = function() {\n    return this.ace.containter;\n  };\n  var optMap = {\n    indentWithTabs: \"useSoftTabs\",\n    indentUnit: \"tabSize\",\n    tabSize: \"tabSize\",\n    firstLineNumber: \"firstLineNumber\",\n    readOnly: \"readOnly\"\n  };\n  this.setOption = function(name, val) {\n    this.state[name] = val;\n    switch (name) {\n      case 'indentWithTabs':\n        name = optMap[name];\n        val = !val;\n      break;\n      default:\n        name = optMap[name];\n    }\n    if (name)\n      this.ace.setOption(name, val);\n  };\n  this.getOption = function(name, val) {\n    var aceOpt = optMap[name];\n    if (aceOpt)\n      val = this.ace.getOption(aceOpt);\n    switch (name) {\n      case 'indentWithTabs':\n        name = optMap[name];\n        return !val;\n    }\n    return aceOpt ? val : this.state[name];\n  };\n  this.toggleOverwrite = function(on) {\n    this.state.overwrite = on;\n    return this.ace.setOverwrite(on);\n  };\n  this.addOverlay = function(o) {\n    if (!this.$searchHighlight || !this.$searchHighlight.session) {\n      var highlight = new SearchHighlight(null, \"ace_highlight-marker\", \"text\");\n      var marker = this.ace.session.addDynamicMarker(highlight);\n      highlight.id = marker.id;\n      highlight.session = this.ace.session;\n      highlight.destroy = function(o) {\n        highlight.session.off(\"change\", highlight.updateOnChange);\n        highlight.session.off(\"changeEditor\", highlight.destroy);\n        highlight.session.removeMarker(highlight.id);\n        highlight.session = null;\n      };\n      highlight.updateOnChange = function(delta) {\n        var row = delta.start.row;\n        if (row == delta.end.row) highlight.cache[row] = undefined;\n        else highlight.cache.splice(row, highlight.cache.length);\n      };\n      highlight.session.on(\"changeEditor\", highlight.destroy);\n      highlight.session.on(\"change\", highlight.updateOnChange);\n    }\n    var re = new RegExp(o.query.source, \"gmi\");\n    this.$searchHighlight = o.highlight = highlight;\n    this.$searchHighlight.setRegexp(re);\n    this.ace.renderer.updateBackMarkers();\n  };\n  this.removeOverlay = function(o) {\n    if (this.$searchHighlight && this.$searchHighlight.session) {\n      this.$searchHighlight.destroy();\n    }\n  };\n  this.getScrollInfo = function() {\n    var renderer = this.ace.renderer;\n    var config = renderer.layerConfig;\n    return {\n      left: renderer.scrollLeft,\n      top: renderer.scrollTop,\n      height: config.maxHeight,\n      width: config.width,\n      clientHeight: config.height,\n      clientWidth: config.width\n    };\n  };\n  this.getValue = function() {\n    return this.ace.getValue();\n  };\n  this.setValue = function(v) {\n    return this.ace.setValue(v);\n  };\n  this.getTokenTypeAt = function(pos) {\n    var token = this.ace.session.getTokenAt(pos.line, pos.ch);\n    return token && /comment|string/.test(token.type) ? \"string\" : \"\";\n  };\n  this.findMatchingBracket = function(pos) {\n    var m = this.ace.session.findMatchingBracket(toAcePos(pos));\n    return {to: m && toCmPos(m)};\n  };\n  this.indentLine = function(line, method) {\n    if (method === true)\n        this.ace.session.indentRows(line, line, \"\\t\");\n    else if (method === false)\n        this.ace.session.outdentRows(new Range(line, 0, line, 0));\n  };\n  this.indexFromPos = function(pos) {\n    return this.ace.session.doc.positionToIndex(toAcePos(pos));\n  };\n  this.posFromIndex = function(index) {\n    return toCmPos(this.ace.session.doc.indexToPosition(index));\n  };\n  this.focus = function(index) {\n    return this.ace.focus();\n  };\n  this.blur = function(index) {\n    return this.ace.blur();\n  };\n  this.defaultTextHeight = function(index) {\n    return this.ace.renderer.layerConfig.lineHeight;\n  };\n  this.scanForBracket = function(pos, dir, _, options) {\n    var re = options.bracketRegex.source;\n    if (dir == 1) {\n      var m = this.ace.session.$findClosingBracket(re.slice(1, 2), toAcePos(pos), /paren|text/);\n    } else {\n      var m = this.ace.session.$findOpeningBracket(re.slice(-2, -1), {row: pos.line, column: pos.ch + 1}, /paren|text/);\n    }\n    return m && {pos: toCmPos(m)};\n  };\n  this.refresh = function() {\n    return this.ace.resize(true);\n  };\n  this.getMode = function() {\n    return { name : this.getOption(\"mode\") };\n  }\n}).call(CodeMirror.prototype);\n  function toAcePos(cmPos) {\n    return {row: cmPos.line, column: cmPos.ch};\n  }\n  function toCmPos(acePos) {\n    return new Pos(acePos.row, acePos.column);\n  }\n\n  var StringStream = CodeMirror.StringStream = function(string, tabSize) {\n    this.pos = this.start = 0;\n    this.string = string;\n    this.tabSize = tabSize || 8;\n    this.lastColumnPos = this.lastColumnValue = 0;\n    this.lineStart = 0;\n  };\n\n  StringStream.prototype = {\n    eol: function() {return this.pos >= this.string.length;},\n    sol: function() {return this.pos == this.lineStart;},\n    peek: function() {return this.string.charAt(this.pos) || undefined;},\n    next: function() {\n      if (this.pos < this.string.length)\n        return this.string.charAt(this.pos++);\n    },\n    eat: function(match) {\n      var ch = this.string.charAt(this.pos);\n      if (typeof match == \"string\") var ok = ch == match;\n      else var ok = ch && (match.test ? match.test(ch) : match(ch));\n      if (ok) {++this.pos; return ch;}\n    },\n    eatWhile: function(match) {\n      var start = this.pos;\n      while (this.eat(match)){}\n      return this.pos > start;\n    },\n    eatSpace: function() {\n      var start = this.pos;\n      while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos;\n      return this.pos > start;\n    },\n    skipToEnd: function() {this.pos = this.string.length;},\n    skipTo: function(ch) {\n      var found = this.string.indexOf(ch, this.pos);\n      if (found > -1) {this.pos = found; return true;}\n    },\n    backUp: function(n) {this.pos -= n;},\n    column: function() {\n      throw \"not implemented\";\n    },\n    indentation: function() {\n      throw \"not implemented\";\n    },\n    match: function(pattern, consume, caseInsensitive) {\n      if (typeof pattern == \"string\") {\n        var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;};\n        var substr = this.string.substr(this.pos, pattern.length);\n        if (cased(substr) == cased(pattern)) {\n          if (consume !== false) this.pos += pattern.length;\n          return true;\n        }\n      } else {\n        var match = this.string.slice(this.pos).match(pattern);\n        if (match && match.index > 0) return null;\n        if (match && consume !== false) this.pos += match[0].length;\n        return match;\n      }\n    },\n    current: function(){return this.string.slice(this.start, this.pos);},\n    hideFirstChars: function(n, inner) {\n      this.lineStart += n;\n      try { return inner(); }\n      finally { this.lineStart -= n; }\n    }\n  };\nCodeMirror.defineExtension = function(name, fn) {\n  CodeMirror.prototype[name] = fn;\n};\ndom.importCssString(\".normal-mode .ace_cursor{\\\n  border: 1px solid red;\\\n  background-color: red;\\\n  opacity: 0.5;\\\n}\\\n.normal-mode .ace_hidden-cursors .ace_cursor{\\\n  background-color: transparent;\\\n}\\\n.ace_dialog {\\\n  position: absolute;\\\n  left: 0; right: 0;\\\n  background: white;\\\n  z-index: 15;\\\n  padding: .1em .8em;\\\n  overflow: hidden;\\\n  color: #333;\\\n}\\\n.ace_dialog-top {\\\n  border-bottom: 1px solid #eee;\\\n  top: 0;\\\n}\\\n.ace_dialog-bottom {\\\n  border-top: 1px solid #eee;\\\n  bottom: 0;\\\n}\\\n.ace_dialog input {\\\n  border: none;\\\n  outline: none;\\\n  background: transparent;\\\n  width: 20em;\\\n  color: inherit;\\\n  font-family: monospace;\\\n}\", \"vimMode\");\n(function() {\n  function dialogDiv(cm, template, bottom) {\n    var wrap = cm.ace.container;\n    var dialog;\n    dialog = wrap.appendChild(document.createElement(\"div\"));\n    if (bottom)\n      dialog.className = \"ace_dialog ace_dialog-bottom\";\n    else\n      dialog.className = \"ace_dialog ace_dialog-top\";\n\n    if (typeof template == \"string\") {\n      dialog.innerHTML = template;\n    } else { // Assuming it's a detached DOM element.\n      dialog.appendChild(template);\n    }\n    return dialog;\n  }\n\n  function closeNotification(cm, newVal) {\n    if (cm.state.currentNotificationClose)\n      cm.state.currentNotificationClose();\n    cm.state.currentNotificationClose = newVal;\n  }\n\n  CodeMirror.defineExtension(\"openDialog\", function(template, callback, options) {\n    if (this.virtualSelectionMode()) return;\n    if (!options) options = {};\n\n    closeNotification(this, null);\n\n    var dialog = dialogDiv(this, template, options.bottom);\n    var closed = false, me = this;\n    function close(newVal) {\n      if (typeof newVal == 'string') {\n        inp.value = newVal;\n      } else {\n        if (closed) return;\n        closed = true;\n        dialog.parentNode.removeChild(dialog);\n        me.focus();\n\n        if (options.onClose) options.onClose(dialog);\n      }\n    }\n\n    var inp = dialog.getElementsByTagName(\"input\")[0], button;\n    if (inp) {\n      if (options.value) {\n        inp.value = options.value;\n        if (options.select !== false) inp.select();\n      }\n\n      if (options.onInput)\n        CodeMirror.on(inp, \"input\", function(e) { options.onInput(e, inp.value, close);});\n      if (options.onKeyUp)\n        CodeMirror.on(inp, \"keyup\", function(e) {options.onKeyUp(e, inp.value, close);});\n\n      CodeMirror.on(inp, \"keydown\", function(e) {\n        if (options && options.onKeyDown && options.onKeyDown(e, inp.value, close)) { return; }\n        if (e.keyCode == 27 || (options.closeOnEnter !== false && e.keyCode == 13)) {\n          inp.blur();\n          CodeMirror.e_stop(e);\n          close();\n        }\n        if (e.keyCode == 13) callback(inp.value);\n      });\n\n      if (options.closeOnBlur !== false) CodeMirror.on(inp, \"blur\", close);\n\n      inp.focus();\n    } else if (button = dialog.getElementsByTagName(\"button\")[0]) {\n      CodeMirror.on(button, \"click\", function() {\n        close();\n        me.focus();\n      });\n\n      if (options.closeOnBlur !== false) CodeMirror.on(button, \"blur\", close);\n\n      button.focus();\n    }\n    return close;\n  });\n\n  CodeMirror.defineExtension(\"openNotification\", function(template, options) {\n    if (this.virtualSelectionMode()) return;\n    closeNotification(this, close);\n    var dialog = dialogDiv(this, template, options && options.bottom);\n    var closed = false, doneTimer;\n    var duration = options && typeof options.duration !== \"undefined\" ? options.duration : 5000;\n\n    function close() {\n      if (closed) return;\n      closed = true;\n      clearTimeout(doneTimer);\n      dialog.parentNode.removeChild(dialog);\n    }\n\n    CodeMirror.on(dialog, 'click', function(e) {\n      CodeMirror.e_preventDefault(e);\n      close();\n    });\n\n    if (duration)\n      doneTimer = setTimeout(close, duration);\n\n    return close;\n  });\n})();\n\n  \n  var defaultKeymap = [\n    { keys: '<Left>', type: 'keyToKey', toKeys: 'h' },\n    { keys: '<Right>', type: 'keyToKey', toKeys: 'l' },\n    { keys: '<Up>', type: 'keyToKey', toKeys: 'k' },\n    { keys: '<Down>', type: 'keyToKey', toKeys: 'j' },\n    { keys: '<Space>', type: 'keyToKey', toKeys: 'l' },\n    { keys: '<BS>', type: 'keyToKey', toKeys: 'h', context: 'normal'},\n    { keys: '<C-Space>', type: 'keyToKey', toKeys: 'W' },\n    { keys: '<C-BS>', type: 'keyToKey', toKeys: 'B', context: 'normal' },\n    { keys: '<S-Space>', type: 'keyToKey', toKeys: 'w' },\n    { keys: '<S-BS>', type: 'keyToKey', toKeys: 'b', context: 'normal' },\n    { keys: '<C-n>', type: 'keyToKey', toKeys: 'j' },\n    { keys: '<C-p>', type: 'keyToKey', toKeys: 'k' },\n    { keys: '<C-[>', type: 'keyToKey', toKeys: '<Esc>' },\n    { keys: '<C-c>', type: 'keyToKey', toKeys: '<Esc>' },\n    { keys: '<C-[>', type: 'keyToKey', toKeys: '<Esc>', context: 'insert' },\n    { keys: '<C-c>', type: 'keyToKey', toKeys: '<Esc>', context: 'insert' },\n    { keys: 's', type: 'keyToKey', toKeys: 'cl', context: 'normal' },\n    { keys: 's', type: 'keyToKey', toKeys: 'c', context: 'visual'},\n    { keys: 'S', type: 'keyToKey', toKeys: 'cc', context: 'normal' },\n    { keys: 'S', type: 'keyToKey', toKeys: 'VdO', context: 'visual' },\n    { keys: '<Home>', type: 'keyToKey', toKeys: '0' },\n    { keys: '<End>', type: 'keyToKey', toKeys: '$' },\n    { keys: '<PageUp>', type: 'keyToKey', toKeys: '<C-b>' },\n    { keys: '<PageDown>', type: 'keyToKey', toKeys: '<C-f>' },\n    { keys: '<CR>', type: 'keyToKey', toKeys: 'j^', context: 'normal' },\n    { keys: 'H', type: 'motion', motion: 'moveToTopLine', motionArgs: { linewise: true, toJumplist: true }},\n    { keys: 'M', type: 'motion', motion: 'moveToMiddleLine', motionArgs: { linewise: true, toJumplist: true }},\n    { keys: 'L', type: 'motion', motion: 'moveToBottomLine', motionArgs: { linewise: true, toJumplist: true }},\n    { keys: 'h', type: 'motion', motion: 'moveByCharacters', motionArgs: { forward: false }},\n    { keys: 'l', type: 'motion', motion: 'moveByCharacters', motionArgs: { forward: true }},\n    { keys: 'j', type: 'motion', motion: 'moveByLines', motionArgs: { forward: true, linewise: true }},\n    { keys: 'k', type: 'motion', motion: 'moveByLines', motionArgs: { forward: false, linewise: true }},\n    { keys: 'gj', type: 'motion', motion: 'moveByDisplayLines', motionArgs: { forward: true }},\n    { keys: 'gk', type: 'motion', motion: 'moveByDisplayLines', motionArgs: { forward: false }},\n    { keys: 'w', type: 'motion', motion: 'moveByWords', motionArgs: { forward: true, wordEnd: false }},\n    { keys: 'W', type: 'motion', motion: 'moveByWords', motionArgs: { forward: true, wordEnd: false, bigWord: true }},\n    { keys: 'e', type: 'motion', motion: 'moveByWords', motionArgs: { forward: true, wordEnd: true, inclusive: true }},\n    { keys: 'E', type: 'motion', motion: 'moveByWords', motionArgs: { forward: true, wordEnd: true, bigWord: true, inclusive: true }},\n    { keys: 'b', type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: false }},\n    { keys: 'B', type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: false, bigWord: true }},\n    { keys: 'ge', type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: true, inclusive: true }},\n    { keys: 'gE', type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: true, bigWord: true, inclusive: true }},\n    { keys: '{', type: 'motion', motion: 'moveByParagraph', motionArgs: { forward: false, toJumplist: true }},\n    { keys: '}', type: 'motion', motion: 'moveByParagraph', motionArgs: { forward: true, toJumplist: true }},\n    { keys: '<C-f>', type: 'motion', motion: 'moveByPage', motionArgs: { forward: true }},\n    { keys: '<C-b>', type: 'motion', motion: 'moveByPage', motionArgs: { forward: false }},\n    { keys: '<C-d>', type: 'motion', motion: 'moveByScroll', motionArgs: { forward: true, explicitRepeat: true }},\n    { keys: '<C-u>', type: 'motion', motion: 'moveByScroll', motionArgs: { forward: false, explicitRepeat: true }},\n    { keys: 'gg', type: 'motion', motion: 'moveToLineOrEdgeOfDocument', motionArgs: { forward: false, explicitRepeat: true, linewise: true, toJumplist: true }},\n    { keys: 'G', type: 'motion', motion: 'moveToLineOrEdgeOfDocument', motionArgs: { forward: true, explicitRepeat: true, linewise: true, toJumplist: true }},\n    { keys: '0', type: 'motion', motion: 'moveToStartOfLine' },\n    { keys: '^', type: 'motion', motion: 'moveToFirstNonWhiteSpaceCharacter' },\n    { keys: '+', type: 'motion', motion: 'moveByLines', motionArgs: { forward: true, toFirstChar:true }},\n    { keys: '-', type: 'motion', motion: 'moveByLines', motionArgs: { forward: false, toFirstChar:true }},\n    { keys: '_', type: 'motion', motion: 'moveByLines', motionArgs: { forward: true, toFirstChar:true, repeatOffset:-1 }},\n    { keys: '$', type: 'motion', motion: 'moveToEol', motionArgs: { inclusive: true }},\n    { keys: '%', type: 'motion', motion: 'moveToMatchedSymbol', motionArgs: { inclusive: true, toJumplist: true }},\n    { keys: 'f<character>', type: 'motion', motion: 'moveToCharacter', motionArgs: { forward: true , inclusive: true }},\n    { keys: 'F<character>', type: 'motion', motion: 'moveToCharacter', motionArgs: { forward: false }},\n    { keys: 't<character>', type: 'motion', motion: 'moveTillCharacter', motionArgs: { forward: true, inclusive: true }},\n    { keys: 'T<character>', type: 'motion', motion: 'moveTillCharacter', motionArgs: { forward: false }},\n    { keys: ';', type: 'motion', motion: 'repeatLastCharacterSearch', motionArgs: { forward: true }},\n    { keys: ',', type: 'motion', motion: 'repeatLastCharacterSearch', motionArgs: { forward: false }},\n    { keys: '\\'<character>', type: 'motion', motion: 'goToMark', motionArgs: {toJumplist: true, linewise: true}},\n    { keys: '`<character>', type: 'motion', motion: 'goToMark', motionArgs: {toJumplist: true}},\n    { keys: ']`', type: 'motion', motion: 'jumpToMark', motionArgs: { forward: true } },\n    { keys: '[`', type: 'motion', motion: 'jumpToMark', motionArgs: { forward: false } },\n    { keys: ']\\'', type: 'motion', motion: 'jumpToMark', motionArgs: { forward: true, linewise: true } },\n    { keys: '[\\'', type: 'motion', motion: 'jumpToMark', motionArgs: { forward: false, linewise: true } },\n    { keys: ']p', type: 'action', action: 'paste', isEdit: true, actionArgs: { after: true, isEdit: true, matchIndent: true}},\n    { keys: '[p', type: 'action', action: 'paste', isEdit: true, actionArgs: { after: false, isEdit: true, matchIndent: true}},\n    { keys: ']<character>', type: 'motion', motion: 'moveToSymbol', motionArgs: { forward: true, toJumplist: true}},\n    { keys: '[<character>', type: 'motion', motion: 'moveToSymbol', motionArgs: { forward: false, toJumplist: true}},\n    { keys: '|', type: 'motion', motion: 'moveToColumn'},\n    { keys: 'o', type: 'motion', motion: 'moveToOtherHighlightedEnd', context:'visual'},\n    { keys: 'O', type: 'motion', motion: 'moveToOtherHighlightedEnd', motionArgs: {sameLine: true}, context:'visual'},\n    { keys: 'd', type: 'operator', operator: 'delete' },\n    { keys: 'y', type: 'operator', operator: 'yank' },\n    { keys: 'c', type: 'operator', operator: 'change' },\n    { keys: '>', type: 'operator', operator: 'indent', operatorArgs: { indentRight: true }},\n    { keys: '<', type: 'operator', operator: 'indent', operatorArgs: { indentRight: false }},\n    { keys: 'g~', type: 'operator', operator: 'changeCase' },\n    { keys: 'gu', type: 'operator', operator: 'changeCase', operatorArgs: {toLower: true}, isEdit: true },\n    { keys: 'gU', type: 'operator', operator: 'changeCase', operatorArgs: {toLower: false}, isEdit: true },\n    { keys: 'n', type: 'motion', motion: 'findNext', motionArgs: { forward: true, toJumplist: true }},\n    { keys: 'N', type: 'motion', motion: 'findNext', motionArgs: { forward: false, toJumplist: true }},\n    { keys: 'x', type: 'operatorMotion', operator: 'delete', motion: 'moveByCharacters', motionArgs: { forward: true }, operatorMotionArgs: { visualLine: false }},\n    { keys: 'X', type: 'operatorMotion', operator: 'delete', motion: 'moveByCharacters', motionArgs: { forward: false }, operatorMotionArgs: { visualLine: true }},\n    { keys: 'D', type: 'operatorMotion', operator: 'delete', motion: 'moveToEol', motionArgs: { inclusive: true }, context: 'normal'},\n    { keys: 'D', type: 'operator', operator: 'delete', operatorArgs: { linewise: true }, context: 'visual'},\n    { keys: 'Y', type: 'operatorMotion', operator: 'yank', motion: 'moveToEol', motionArgs: { inclusive: true }, context: 'normal'},\n    { keys: 'Y', type: 'operator', operator: 'yank', operatorArgs: { linewise: true }, context: 'visual'},\n    { keys: 'C', type: 'operatorMotion', operator: 'change', motion: 'moveToEol', motionArgs: { inclusive: true }, context: 'normal'},\n    { keys: 'C', type: 'operator', operator: 'change', operatorArgs: { linewise: true }, context: 'visual'},\n    { keys: '~', type: 'operatorMotion', operator: 'changeCase', motion: 'moveByCharacters', motionArgs: { forward: true }, operatorArgs: { shouldMoveCursor: true }, context: 'normal'},\n    { keys: '~', type: 'operator', operator: 'changeCase', context: 'visual'},\n    { keys: '<C-w>', type: 'operatorMotion', operator: 'delete', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: false }, context: 'insert' },\n    { keys: '<C-i>', type: 'action', action: 'jumpListWalk', actionArgs: { forward: true }},\n    { keys: '<C-o>', type: 'action', action: 'jumpListWalk', actionArgs: { forward: false }},\n    { keys: '<C-e>', type: 'action', action: 'scroll', actionArgs: { forward: true, linewise: true }},\n    { keys: '<C-y>', type: 'action', action: 'scroll', actionArgs: { forward: false, linewise: true }},\n    { keys: 'a', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'charAfter' }, context: 'normal' },\n    { keys: 'A', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'eol' }, context: 'normal' },\n    { keys: 'A', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'endOfSelectedArea' }, context: 'visual' },\n    { keys: 'i', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'inplace' }, context: 'normal' },\n    { keys: 'I', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'firstNonBlank'}, context: 'normal' },\n    { keys: 'I', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'startOfSelectedArea' }, context: 'visual' },\n    { keys: 'o', type: 'action', action: 'newLineAndEnterInsertMode', isEdit: true, interlaceInsertRepeat: true, actionArgs: { after: true }, context: 'normal' },\n    { keys: 'O', type: 'action', action: 'newLineAndEnterInsertMode', isEdit: true, interlaceInsertRepeat: true, actionArgs: { after: false }, context: 'normal' },\n    { keys: 'v', type: 'action', action: 'toggleVisualMode' },\n    { keys: 'V', type: 'action', action: 'toggleVisualMode', actionArgs: { linewise: true }},\n    { keys: '<C-v>', type: 'action', action: 'toggleVisualMode', actionArgs: { blockwise: true }},\n    { keys: '<C-q>', type: 'action', action: 'toggleVisualMode', actionArgs: { blockwise: true }},\n    { keys: 'gv', type: 'action', action: 'reselectLastSelection' },\n    { keys: 'J', type: 'action', action: 'joinLines', isEdit: true },\n    { keys: 'p', type: 'action', action: 'paste', isEdit: true, actionArgs: { after: true, isEdit: true }},\n    { keys: 'P', type: 'action', action: 'paste', isEdit: true, actionArgs: { after: false, isEdit: true }},\n    { keys: 'r<character>', type: 'action', action: 'replace', isEdit: true },\n    { keys: '@<character>', type: 'action', action: 'replayMacro' },\n    { keys: 'q<character>', type: 'action', action: 'enterMacroRecordMode' },\n    { keys: 'R', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { replace: true }},\n    { keys: 'u', type: 'action', action: 'undo', context: 'normal' },\n    { keys: 'u', type: 'operator', operator: 'changeCase', operatorArgs: {toLower: true}, context: 'visual', isEdit: true },\n    { keys: 'U', type: 'operator', operator: 'changeCase', operatorArgs: {toLower: false}, context: 'visual', isEdit: true },\n    { keys: '<C-r>', type: 'action', action: 'redo' },\n    { keys: 'm<character>', type: 'action', action: 'setMark' },\n    { keys: '\"<character>', type: 'action', action: 'setRegister' },\n    { keys: 'zz', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'center' }},\n    { keys: 'z.', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'center' }, motion: 'moveToFirstNonWhiteSpaceCharacter' },\n    { keys: 'zt', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'top' }},\n    { keys: 'z<CR>', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'top' }, motion: 'moveToFirstNonWhiteSpaceCharacter' },\n    { keys: 'z-', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'bottom' }},\n    { keys: 'zb', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'bottom' }, motion: 'moveToFirstNonWhiteSpaceCharacter' },\n    { keys: '.', type: 'action', action: 'repeatLastEdit' },\n    { keys: '<C-a>', type: 'action', action: 'incrementNumberToken', isEdit: true, actionArgs: {increase: true, backtrack: false}},\n    { keys: '<C-x>', type: 'action', action: 'incrementNumberToken', isEdit: true, actionArgs: {increase: false, backtrack: false}},\n    { keys: 'a<character>', type: 'motion', motion: 'textObjectManipulation' },\n    { keys: 'i<character>', type: 'motion', motion: 'textObjectManipulation', motionArgs: { textObjectInner: true }},\n    { keys: '/', type: 'search', searchArgs: { forward: true, querySrc: 'prompt', toJumplist: true }},\n    { keys: '?', type: 'search', searchArgs: { forward: false, querySrc: 'prompt', toJumplist: true }},\n    { keys: '*', type: 'search', searchArgs: { forward: true, querySrc: 'wordUnderCursor', wholeWordOnly: true, toJumplist: true }},\n    { keys: '#', type: 'search', searchArgs: { forward: false, querySrc: 'wordUnderCursor', wholeWordOnly: true, toJumplist: true }},\n    { keys: 'g*', type: 'search', searchArgs: { forward: true, querySrc: 'wordUnderCursor', toJumplist: true }},\n    { keys: 'g#', type: 'search', searchArgs: { forward: false, querySrc: 'wordUnderCursor', toJumplist: true }},\n    { keys: ':', type: 'ex' }\n  ];\n  var defaultExCommandMap = [\n    { name: 'colorscheme', shortName: 'colo' },\n    { name: 'map' },\n    { name: 'imap', shortName: 'im' },\n    { name: 'nmap', shortName: 'nm' },\n    { name: 'vmap', shortName: 'vm' },\n    { name: 'unmap' },\n    { name: 'write', shortName: 'w' },\n    { name: 'undo', shortName: 'u' },\n    { name: 'redo', shortName: 'red' },\n    { name: 'set', shortName: 'se' },\n    { name: 'set', shortName: 'se' },\n    { name: 'setlocal', shortName: 'setl' },\n    { name: 'setglobal', shortName: 'setg' },\n    { name: 'sort', shortName: 'sor' },\n    { name: 'substitute', shortName: 's', possiblyAsync: true },\n    { name: 'nohlsearch', shortName: 'noh' },\n    { name: 'delmarks', shortName: 'delm' },\n    { name: 'registers', shortName: 'reg', excludeFromCommandHistory: true },\n    { name: 'global', shortName: 'g' }\n  ];\n\n  var Pos = CodeMirror.Pos;\n\n  var Vim = function() { return vimApi; } //{\n    function enterVimMode(cm) {\n      cm.setOption('disableInput', true);\n      cm.setOption('showCursorWhenSelecting', false);\n      CodeMirror.signal(cm, \"vim-mode-change\", {mode: \"normal\"});\n      cm.on('cursorActivity', onCursorActivity);\n      maybeInitVimState(cm);\n      CodeMirror.on(cm.getInputField(), 'paste', getOnPasteFn(cm));\n    }\n\n    function leaveVimMode(cm) {\n      cm.setOption('disableInput', false);\n      cm.off('cursorActivity', onCursorActivity);\n      CodeMirror.off(cm.getInputField(), 'paste', getOnPasteFn(cm));\n      cm.state.vim = null;\n    }\n\n    function detachVimMap(cm, next) {\n      if (this == CodeMirror.keyMap.vim)\n        CodeMirror.rmClass(cm.getWrapperElement(), \"cm-fat-cursor\");\n\n      if (!next || next.attach != attachVimMap)\n        leaveVimMode(cm, false);\n    }\n    function attachVimMap(cm, prev) {\n      if (this == CodeMirror.keyMap.vim)\n        CodeMirror.addClass(cm.getWrapperElement(), \"cm-fat-cursor\");\n\n      if (!prev || prev.attach != attachVimMap)\n        enterVimMode(cm);\n    }\n    CodeMirror.defineOption('vimMode', false, function(cm, val, prev) {\n      if (val && cm.getOption(\"keyMap\") != \"vim\")\n        cm.setOption(\"keyMap\", \"vim\");\n      else if (!val && prev != CodeMirror.Init && /^vim/.test(cm.getOption(\"keyMap\")))\n        cm.setOption(\"keyMap\", \"default\");\n    });\n\n    function cmKey(key, cm) {\n      if (!cm) { return undefined; }\n      var vimKey = cmKeyToVimKey(key);\n      if (!vimKey) {\n        return false;\n      }\n      var cmd = CodeMirror.Vim.findKey(cm, vimKey);\n      if (typeof cmd == 'function') {\n        CodeMirror.signal(cm, 'vim-keypress', vimKey);\n      }\n      return cmd;\n    }\n\n    var modifiers = {'Shift': 'S', 'Ctrl': 'C', 'Alt': 'A', 'Cmd': 'D', 'Mod': 'A'};\n    var specialKeys = {Enter:'CR',Backspace:'BS',Delete:'Del'};\n    function cmKeyToVimKey(key) {\n      if (key.charAt(0) == '\\'') {\n        return key.charAt(1);\n      }\n      var pieces = key.split(/-(?!$)/);\n      var lastPiece = pieces[pieces.length - 1];\n      if (pieces.length == 1 && pieces[0].length == 1) {\n        return false;\n      } else if (pieces.length == 2 && pieces[0] == 'Shift' && lastPiece.length == 1) {\n        return false;\n      }\n      var hasCharacter = false;\n      for (var i = 0; i < pieces.length; i++) {\n        var piece = pieces[i];\n        if (piece in modifiers) { pieces[i] = modifiers[piece]; }\n        else { hasCharacter = true; }\n        if (piece in specialKeys) { pieces[i] = specialKeys[piece]; }\n      }\n      if (!hasCharacter) {\n        return false;\n      }\n      if (isUpperCase(lastPiece)) {\n        pieces[pieces.length - 1] = lastPiece.toLowerCase();\n      }\n      return '<' + pieces.join('-') + '>';\n    }\n\n    function getOnPasteFn(cm) {\n      var vim = cm.state.vim;\n      if (!vim.onPasteFn) {\n        vim.onPasteFn = function() {\n          if (!vim.insertMode) {\n            cm.setCursor(offsetCursor(cm.getCursor(), 0, 1));\n            actions.enterInsertMode(cm, {}, vim);\n          }\n        };\n      }\n      return vim.onPasteFn;\n    }\n\n    var numberRegex = /[\\d]/;\n    var wordCharTest = [CodeMirror.isWordChar, function(ch) {\n      return ch && !CodeMirror.isWordChar(ch) && !/\\s/.test(ch);\n    }], bigWordCharTest = [function(ch) {\n      return /\\S/.test(ch);\n    }];\n    function makeKeyRange(start, size) {\n      var keys = [];\n      for (var i = start; i < start + size; i++) {\n        keys.push(String.fromCharCode(i));\n      }\n      return keys;\n    }\n    var upperCaseAlphabet = makeKeyRange(65, 26);\n    var lowerCaseAlphabet = makeKeyRange(97, 26);\n    var numbers = makeKeyRange(48, 10);\n    var validMarks = [].concat(upperCaseAlphabet, lowerCaseAlphabet, numbers, ['<', '>']);\n    var validRegisters = [].concat(upperCaseAlphabet, lowerCaseAlphabet, numbers, ['-', '\"', '.', ':', '/']);\n\n    function isLine(cm, line) {\n      return line >= cm.firstLine() && line <= cm.lastLine();\n    }\n    function isLowerCase(k) {\n      return (/^[a-z]$/).test(k);\n    }\n    function isMatchableSymbol(k) {\n      return '()[]{}'.indexOf(k) != -1;\n    }\n    function isNumber(k) {\n      return numberRegex.test(k);\n    }\n    function isUpperCase(k) {\n      return (/^[A-Z]$/).test(k);\n    }\n    function isWhiteSpaceString(k) {\n      return (/^\\s*$/).test(k);\n    }\n    function inArray(val, arr) {\n      for (var i = 0; i < arr.length; i++) {\n        if (arr[i] == val) {\n          return true;\n        }\n      }\n      return false;\n    }\n\n    var options = {};\n    function defineOption(name, defaultValue, type, aliases, callback) {\n      if (defaultValue === undefined && !callback) {\n        throw Error('defaultValue is required unless callback is provided');\n      }\n      if (!type) { type = 'string'; }\n      options[name] = {\n        type: type,\n        defaultValue: defaultValue,\n        callback: callback\n      };\n      if (aliases) {\n        for (var i = 0; i < aliases.length; i++) {\n          options[aliases[i]] = options[name];\n        }\n      }\n      if (defaultValue) {\n        setOption(name, defaultValue);\n      }\n    }\n\n    function setOption(name, value, cm, cfg) {\n      var option = options[name];\n      cfg = cfg || {};\n      var scope = cfg.scope;\n      if (!option) {\n        throw Error('Unknown option: ' + name);\n      }\n      if (option.type == 'boolean') {\n        if (value && value !== true) {\n          throw Error('Invalid argument: ' + name + '=' + value);\n        } else if (value !== false) {\n          value = true;\n        }\n      }\n      if (option.callback) {\n        if (scope !== 'local') {\n          option.callback(value, undefined);\n        }\n        if (scope !== 'global' && cm) {\n          option.callback(value, cm);\n        }\n      } else {\n        if (scope !== 'local') {\n          option.value = option.type == 'boolean' ? !!value : value;\n        }\n        if (scope !== 'global' && cm) {\n          cm.state.vim.options[name] = {value: value};\n        }\n      }\n    }\n\n    function getOption(name, cm, cfg) {\n      var option = options[name];\n      cfg = cfg || {};\n      var scope = cfg.scope;\n      if (!option) {\n        throw Error('Unknown option: ' + name);\n      }\n      if (option.callback) {\n        var local = cm && option.callback(undefined, cm);\n        if (scope !== 'global' && local !== undefined) {\n          return local;\n        }\n        if (scope !== 'local') {\n          return option.callback();\n        }\n        return;\n      } else {\n        var local = (scope !== 'global') && (cm && cm.state.vim.options[name]);\n        return (local || (scope !== 'local') && option || {}).value;\n      }\n    }\n\n    defineOption('filetype', undefined, 'string', ['ft'], function(name, cm) {\n      if (cm === undefined) {\n        return;\n      }\n      if (name === undefined) {\n        var mode = cm.getOption('mode');\n        return mode == 'null' ? '' : mode;\n      } else {\n        var mode = name == '' ? 'null' : name;\n        cm.setOption('mode', mode);\n      }\n    });\n\n    var createCircularJumpList = function() {\n      var size = 100;\n      var pointer = -1;\n      var head = 0;\n      var tail = 0;\n      var buffer = new Array(size);\n      function add(cm, oldCur, newCur) {\n        var current = pointer % size;\n        var curMark = buffer[current];\n        function useNextSlot(cursor) {\n          var next = ++pointer % size;\n          var trashMark = buffer[next];\n          if (trashMark) {\n            trashMark.clear();\n          }\n          buffer[next] = cm.setBookmark(cursor);\n        }\n        if (curMark) {\n          var markPos = curMark.find();\n          if (markPos && !cursorEqual(markPos, oldCur)) {\n            useNextSlot(oldCur);\n          }\n        } else {\n          useNextSlot(oldCur);\n        }\n        useNextSlot(newCur);\n        head = pointer;\n        tail = pointer - size + 1;\n        if (tail < 0) {\n          tail = 0;\n        }\n      }\n      function move(cm, offset) {\n        pointer += offset;\n        if (pointer > head) {\n          pointer = head;\n        } else if (pointer < tail) {\n          pointer = tail;\n        }\n        var mark = buffer[(size + pointer) % size];\n        if (mark && !mark.find()) {\n          var inc = offset > 0 ? 1 : -1;\n          var newCur;\n          var oldCur = cm.getCursor();\n          do {\n            pointer += inc;\n            mark = buffer[(size + pointer) % size];\n            if (mark &&\n                (newCur = mark.find()) &&\n                !cursorEqual(oldCur, newCur)) {\n              break;\n            }\n          } while (pointer < head && pointer > tail);\n        }\n        return mark;\n      }\n      return {\n        cachedCursor: undefined, //used for # and * jumps\n        add: add,\n        move: move\n      };\n    };\n    var createInsertModeChanges = function(c) {\n      if (c) {\n        return {\n          changes: c.changes,\n          expectCursorActivityForChange: c.expectCursorActivityForChange\n        };\n      }\n      return {\n        changes: [],\n        expectCursorActivityForChange: false\n      };\n    };\n\n    function MacroModeState() {\n      this.latestRegister = undefined;\n      this.isPlaying = false;\n      this.isRecording = false;\n      this.replaySearchQueries = [];\n      this.onRecordingDone = undefined;\n      this.lastInsertModeChanges = createInsertModeChanges();\n    }\n    MacroModeState.prototype = {\n      exitMacroRecordMode: function() {\n        var macroModeState = vimGlobalState.macroModeState;\n        if (macroModeState.onRecordingDone) {\n          macroModeState.onRecordingDone(); // close dialog\n        }\n        macroModeState.onRecordingDone = undefined;\n        macroModeState.isRecording = false;\n      },\n      enterMacroRecordMode: function(cm, registerName) {\n        var register =\n            vimGlobalState.registerController.getRegister(registerName);\n        if (register) {\n          register.clear();\n          this.latestRegister = registerName;\n          if (cm.openDialog) {\n            this.onRecordingDone = cm.openDialog(\n                '(recording)['+registerName+']', null, {bottom:true});\n          }\n          this.isRecording = true;\n        }\n      }\n    };\n\n    function maybeInitVimState(cm) {\n      if (!cm.state.vim) {\n        cm.state.vim = {\n          inputState: new InputState(),\n          lastEditInputState: undefined,\n          lastEditActionCommand: undefined,\n          lastHPos: -1,\n          lastHSPos: -1,\n          lastMotion: null,\n          marks: {},\n          fakeCursor: null,\n          insertMode: false,\n          insertModeRepeat: undefined,\n          visualMode: false,\n          visualLine: false,\n          visualBlock: false,\n          lastSelection: null,\n          lastPastedText: null,\n          sel: {},\n          options: {}\n        };\n      }\n      return cm.state.vim;\n    }\n    var vimGlobalState;\n    function resetVimGlobalState() {\n      vimGlobalState = {\n        searchQuery: null,\n        searchIsReversed: false,\n        lastSubstituteReplacePart: undefined,\n        jumpList: createCircularJumpList(),\n        macroModeState: new MacroModeState,\n        lastChararacterSearch: {increment:0, forward:true, selectedCharacter:''},\n        registerController: new RegisterController({}),\n        searchHistoryController: new HistoryController({}),\n        exCommandHistoryController : new HistoryController({})\n      };\n      for (var optionName in options) {\n        var option = options[optionName];\n        option.value = option.defaultValue;\n      }\n    }\n\n    var lastInsertModeKeyTimer;\n    var vimApi= {\n      buildKeyMap: function() {\n      },\n      getRegisterController: function() {\n        return vimGlobalState.registerController;\n      },\n      resetVimGlobalState_: resetVimGlobalState,\n      getVimGlobalState_: function() {\n        return vimGlobalState;\n      },\n      maybeInitVimState_: maybeInitVimState,\n\n      suppressErrorLogging: false,\n\n      InsertModeKey: InsertModeKey,\n      map: function(lhs, rhs, ctx) {\n        exCommandDispatcher.map(lhs, rhs, ctx);\n      },\n      unmap: function(lhs, ctx) {\n        exCommandDispatcher.unmap(lhs, ctx);\n      },\n      setOption: setOption,\n      getOption: getOption,\n      defineOption: defineOption,\n      defineEx: function(name, prefix, func){\n        if (!prefix) {\n          prefix = name;\n        } else if (name.indexOf(prefix) !== 0) {\n          throw new Error('(Vim.defineEx) \"'+prefix+'\" is not a prefix of \"'+name+'\", command not registered');\n        }\n        exCommands[name]=func;\n        exCommandDispatcher.commandMap_[prefix]={name:name, shortName:prefix, type:'api'};\n      },\n      handleKey: function (cm, key, origin) {\n        var command = this.findKey(cm, key, origin);\n        if (typeof command === 'function') {\n          return command();\n        }\n      },\n      findKey: function(cm, key, origin) {\n        var vim = maybeInitVimState(cm);\n        function handleMacroRecording() {\n          var macroModeState = vimGlobalState.macroModeState;\n          if (macroModeState.isRecording) {\n            if (key == 'q') {\n              macroModeState.exitMacroRecordMode();\n              clearInputState(cm);\n              return true;\n            }\n            if (origin != 'mapping') {\n              logKey(macroModeState, key);\n            }\n          }\n        }\n        function handleEsc() {\n          if (key == '<Esc>') {\n            clearInputState(cm);\n            if (vim.visualMode) {\n              exitVisualMode(cm);\n            } else if (vim.insertMode) {\n              exitInsertMode(cm);\n            }\n            return true;\n          }\n        }\n        function doKeyToKey(keys) {\n          var match;\n          while (keys) {\n            match = (/<\\w+-.+?>|<\\w+>|./).exec(keys);\n            key = match[0];\n            keys = keys.substring(match.index + key.length);\n            CodeMirror.Vim.handleKey(cm, key, 'mapping');\n          }\n        }\n\n        function handleKeyInsertMode() {\n          if (handleEsc()) { return true; }\n          var keys = vim.inputState.keyBuffer = vim.inputState.keyBuffer + key;\n          var keysAreChars = key.length == 1;\n          var match = commandDispatcher.matchCommand(keys, defaultKeymap, vim.inputState, 'insert');\n          while (keys.length > 1 && match.type != 'full') {\n            var keys = vim.inputState.keyBuffer = keys.slice(1);\n            var thisMatch = commandDispatcher.matchCommand(keys, defaultKeymap, vim.inputState, 'insert');\n            if (thisMatch.type != 'none') { match = thisMatch; }\n          }\n          if (match.type == 'none') { clearInputState(cm); return false; }\n          else if (match.type == 'partial') {\n            if (lastInsertModeKeyTimer) { window.clearTimeout(lastInsertModeKeyTimer); }\n            lastInsertModeKeyTimer = window.setTimeout(\n              function() { if (vim.insertMode && vim.inputState.keyBuffer) { clearInputState(cm); } },\n              getOption('insertModeEscKeysTimeout'));\n            return !keysAreChars;\n          }\n\n          if (lastInsertModeKeyTimer) { window.clearTimeout(lastInsertModeKeyTimer); }\n          if (keysAreChars) {\n            var selections = cm.listSelections();\n            for (var i = 0; i < selections.length; i++) {\n              var here = selections[i].head;\n              cm.replaceRange('', offsetCursor(here, 0, -(keys.length - 1)), here, '+input');\n            }\n            vimGlobalState.macroModeState.lastInsertModeChanges.changes.pop();\n          }\n          clearInputState(cm);\n          return match.command;\n        }\n\n        function handleKeyNonInsertMode() {\n          if (handleMacroRecording() || handleEsc()) { return true; }\n\n          var keys = vim.inputState.keyBuffer = vim.inputState.keyBuffer + key;\n          if (/^[1-9]\\d*$/.test(keys)) { return true; }\n\n          var keysMatcher = /^(\\d*)(.*)$/.exec(keys);\n          if (!keysMatcher) { clearInputState(cm); return false; }\n          var context = vim.visualMode ? 'visual' :\n                                         'normal';\n          var match = commandDispatcher.matchCommand(keysMatcher[2] || keysMatcher[1], defaultKeymap, vim.inputState, context);\n          if (match.type == 'none') { clearInputState(cm); return false; }\n          else if (match.type == 'partial') { return true; }\n\n          vim.inputState.keyBuffer = '';\n          var keysMatcher = /^(\\d*)(.*)$/.exec(keys);\n          if (keysMatcher[1] && keysMatcher[1] != '0') {\n            vim.inputState.pushRepeatDigit(keysMatcher[1]);\n          }\n          return match.command;\n        }\n\n        var command;\n        if (vim.insertMode) { command = handleKeyInsertMode(); }\n        else { command = handleKeyNonInsertMode(); }\n        if (command === false) {\n          return undefined;\n        } else if (command === true) {\n          return function() { return true; };\n        } else {\n          return function() {\n            if ((command.operator || command.isEdit) && cm.getOption('readOnly'))\n              return; // ace_patch\n            return cm.operation(function() {\n              cm.curOp.isVimOp = true;\n              try {\n                if (command.type == 'keyToKey') {\n                  doKeyToKey(command.toKeys);\n                } else {\n                  commandDispatcher.processCommand(cm, vim, command);\n                }\n              } catch (e) {\n                cm.state.vim = undefined;\n                maybeInitVimState(cm);\n                if (!CodeMirror.Vim.suppressErrorLogging) {\n                  console['log'](e);\n                }\n                throw e;\n              }\n              return true;\n            });\n          };\n        }\n      },\n      handleEx: function(cm, input) {\n        exCommandDispatcher.processCommand(cm, input);\n      },\n\n      defineMotion: defineMotion,\n      defineAction: defineAction,\n      defineOperator: defineOperator,\n      mapCommand: mapCommand,\n      _mapCommand: _mapCommand,\n\n      defineRegister: defineRegister,\n\n      exitVisualMode: exitVisualMode,\n      exitInsertMode: exitInsertMode\n    };\n    function InputState() {\n      this.prefixRepeat = [];\n      this.motionRepeat = [];\n\n      this.operator = null;\n      this.operatorArgs = null;\n      this.motion = null;\n      this.motionArgs = null;\n      this.keyBuffer = []; // For matching multi-key commands.\n      this.registerName = null; // Defaults to the unnamed register.\n    }\n    InputState.prototype.pushRepeatDigit = function(n) {\n      if (!this.operator) {\n        this.prefixRepeat = this.prefixRepeat.concat(n);\n      } else {\n        this.motionRepeat = this.motionRepeat.concat(n);\n      }\n    };\n    InputState.prototype.getRepeat = function() {\n      var repeat = 0;\n      if (this.prefixRepeat.length > 0 || this.motionRepeat.length > 0) {\n        repeat = 1;\n        if (this.prefixRepeat.length > 0) {\n          repeat *= parseInt(this.prefixRepeat.join(''), 10);\n        }\n        if (this.motionRepeat.length > 0) {\n          repeat *= parseInt(this.motionRepeat.join(''), 10);\n        }\n      }\n      return repeat;\n    };\n\n    function clearInputState(cm, reason) {\n      cm.state.vim.inputState = new InputState();\n      CodeMirror.signal(cm, 'vim-command-done', reason);\n    }\n    function Register(text, linewise, blockwise) {\n      this.clear();\n      this.keyBuffer = [text || ''];\n      this.insertModeChanges = [];\n      this.searchQueries = [];\n      this.linewise = !!linewise;\n      this.blockwise = !!blockwise;\n    }\n    Register.prototype = {\n      setText: function(text, linewise, blockwise) {\n        this.keyBuffer = [text || ''];\n        this.linewise = !!linewise;\n        this.blockwise = !!blockwise;\n      },\n      pushText: function(text, linewise) {\n        if (linewise) {\n          if (!this.linewise) {\n            this.keyBuffer.push('\\n');\n          }\n          this.linewise = true;\n        }\n        this.keyBuffer.push(text);\n      },\n      pushInsertModeChanges: function(changes) {\n        this.insertModeChanges.push(createInsertModeChanges(changes));\n      },\n      pushSearchQuery: function(query) {\n        this.searchQueries.push(query);\n      },\n      clear: function() {\n        this.keyBuffer = [];\n        this.insertModeChanges = [];\n        this.searchQueries = [];\n        this.linewise = false;\n      },\n      toString: function() {\n        return this.keyBuffer.join('');\n      }\n    };\n    function defineRegister(name, register) {\n      var registers = vimGlobalState.registerController.registers[name];\n      if (!name || name.length != 1) {\n        throw Error('Register name must be 1 character');\n      }\n      registers[name] = register;\n      validRegisters.push(name);\n    }\n    function RegisterController(registers) {\n      this.registers = registers;\n      this.unnamedRegister = registers['\"'] = new Register();\n      registers['.'] = new Register();\n      registers[':'] = new Register();\n      registers['/'] = new Register();\n    }\n    RegisterController.prototype = {\n      pushText: function(registerName, operator, text, linewise, blockwise) {\n        if (linewise && text.charAt(0) == '\\n') {\n          text = text.slice(1) + '\\n';\n        }\n        if (linewise && text.charAt(text.length - 1) !== '\\n'){\n          text += '\\n';\n        }\n        var register = this.isValidRegister(registerName) ?\n            this.getRegister(registerName) : null;\n        if (!register) {\n          switch (operator) {\n            case 'yank':\n              this.registers['0'] = new Register(text, linewise, blockwise);\n              break;\n            case 'delete':\n            case 'change':\n              if (text.indexOf('\\n') == -1) {\n                this.registers['-'] = new Register(text, linewise);\n              } else {\n                this.shiftNumericRegisters_();\n                this.registers['1'] = new Register(text, linewise);\n              }\n              break;\n          }\n          this.unnamedRegister.setText(text, linewise, blockwise);\n          return;\n        }\n        var append = isUpperCase(registerName);\n        if (append) {\n          register.pushText(text, linewise);\n        } else {\n          register.setText(text, linewise, blockwise);\n        }\n        this.unnamedRegister.setText(register.toString(), linewise);\n      },\n      getRegister: function(name) {\n        if (!this.isValidRegister(name)) {\n          return this.unnamedRegister;\n        }\n        name = name.toLowerCase();\n        if (!this.registers[name]) {\n          this.registers[name] = new Register();\n        }\n        return this.registers[name];\n      },\n      isValidRegister: function(name) {\n        return name && inArray(name, validRegisters);\n      },\n      shiftNumericRegisters_: function() {\n        for (var i = 9; i >= 2; i--) {\n          this.registers[i] = this.getRegister('' + (i - 1));\n        }\n      }\n    };\n    function HistoryController() {\n        this.historyBuffer = [];\n        this.iterator;\n        this.initialPrefix = null;\n    }\n    HistoryController.prototype = {\n      nextMatch: function (input, up) {\n        var historyBuffer = this.historyBuffer;\n        var dir = up ? -1 : 1;\n        if (this.initialPrefix === null) this.initialPrefix = input;\n        for (var i = this.iterator + dir; up ? i >= 0 : i < historyBuffer.length; i+= dir) {\n          var element = historyBuffer[i];\n          for (var j = 0; j <= element.length; j++) {\n            if (this.initialPrefix == element.substring(0, j)) {\n              this.iterator = i;\n              return element;\n            }\n          }\n        }\n        if (i >= historyBuffer.length) {\n          this.iterator = historyBuffer.length;\n          return this.initialPrefix;\n        }\n        if (i < 0 ) return input;\n      },\n      pushInput: function(input) {\n        var index = this.historyBuffer.indexOf(input);\n        if (index > -1) this.historyBuffer.splice(index, 1);\n        if (input.length) this.historyBuffer.push(input);\n      },\n      reset: function() {\n        this.initialPrefix = null;\n        this.iterator = this.historyBuffer.length;\n      }\n    };\n    var commandDispatcher = {\n      matchCommand: function(keys, keyMap, inputState, context) {\n        var matches = commandMatches(keys, keyMap, context, inputState);\n        if (!matches.full && !matches.partial) {\n          return {type: 'none'};\n        } else if (!matches.full && matches.partial) {\n          return {type: 'partial'};\n        }\n\n        var bestMatch;\n        for (var i = 0; i < matches.full.length; i++) {\n          var match = matches.full[i];\n          if (!bestMatch) {\n            bestMatch = match;\n          }\n        }\n        if (bestMatch.keys.slice(-11) == '<character>') {\n          inputState.selectedCharacter = lastChar(keys);\n        }\n        return {type: 'full', command: bestMatch};\n      },\n      processCommand: function(cm, vim, command) {\n        vim.inputState.repeatOverride = command.repeatOverride;\n        switch (command.type) {\n          case 'motion':\n            this.processMotion(cm, vim, command);\n            break;\n          case 'operator':\n            this.processOperator(cm, vim, command);\n            break;\n          case 'operatorMotion':\n            this.processOperatorMotion(cm, vim, command);\n            break;\n          case 'action':\n            this.processAction(cm, vim, command);\n            break;\n          case 'search':\n            this.processSearch(cm, vim, command);\n            break;\n          case 'ex':\n          case 'keyToEx':\n            this.processEx(cm, vim, command);\n            break;\n          default:\n            break;\n        }\n      },\n      processMotion: function(cm, vim, command) {\n        vim.inputState.motion = command.motion;\n        vim.inputState.motionArgs = copyArgs(command.motionArgs);\n        this.evalInput(cm, vim);\n      },\n      processOperator: function(cm, vim, command) {\n        var inputState = vim.inputState;\n        if (inputState.operator) {\n          if (inputState.operator == command.operator) {\n            inputState.motion = 'expandToLine';\n            inputState.motionArgs = { linewise: true };\n            this.evalInput(cm, vim);\n            return;\n          } else {\n            clearInputState(cm);\n          }\n        }\n        inputState.operator = command.operator;\n        inputState.operatorArgs = copyArgs(command.operatorArgs);\n        if (vim.visualMode) {\n          this.evalInput(cm, vim);\n        }\n      },\n      processOperatorMotion: function(cm, vim, command) {\n        var visualMode = vim.visualMode;\n        var operatorMotionArgs = copyArgs(command.operatorMotionArgs);\n        if (operatorMotionArgs) {\n          if (visualMode && operatorMotionArgs.visualLine) {\n            vim.visualLine = true;\n          }\n        }\n        this.processOperator(cm, vim, command);\n        if (!visualMode) {\n          this.processMotion(cm, vim, command);\n        }\n      },\n      processAction: function(cm, vim, command) {\n        var inputState = vim.inputState;\n        var repeat = inputState.getRepeat();\n        var repeatIsExplicit = !!repeat;\n        var actionArgs = copyArgs(command.actionArgs) || {};\n        if (inputState.selectedCharacter) {\n          actionArgs.selectedCharacter = inputState.selectedCharacter;\n        }\n        if (command.operator) {\n          this.processOperator(cm, vim, command);\n        }\n        if (command.motion) {\n          this.processMotion(cm, vim, command);\n        }\n        if (command.motion || command.operator) {\n          this.evalInput(cm, vim);\n        }\n        actionArgs.repeat = repeat || 1;\n        actionArgs.repeatIsExplicit = repeatIsExplicit;\n        actionArgs.registerName = inputState.registerName;\n        clearInputState(cm);\n        vim.lastMotion = null;\n        if (command.isEdit) {\n          this.recordLastEdit(vim, inputState, command);\n        }\n        actions[command.action](cm, actionArgs, vim);\n      },\n      processSearch: function(cm, vim, command) {\n        if (!cm.getSearchCursor) {\n          return;\n        }\n        var forward = command.searchArgs.forward;\n        var wholeWordOnly = command.searchArgs.wholeWordOnly;\n        getSearchState(cm).setReversed(!forward);\n        var promptPrefix = (forward) ? '/' : '?';\n        var originalQuery = getSearchState(cm).getQuery();\n        var originalScrollPos = cm.getScrollInfo();\n        function handleQuery(query, ignoreCase, smartCase) {\n          vimGlobalState.searchHistoryController.pushInput(query);\n          vimGlobalState.searchHistoryController.reset();\n          try {\n            updateSearchQuery(cm, query, ignoreCase, smartCase);\n          } catch (e) {\n            showConfirm(cm, 'Invalid regex: ' + query);\n            clearInputState(cm);\n            return;\n          }\n          commandDispatcher.processMotion(cm, vim, {\n            type: 'motion',\n            motion: 'findNext',\n            motionArgs: { forward: true, toJumplist: command.searchArgs.toJumplist }\n          });\n        }\n        function onPromptClose(query) {\n          cm.scrollTo(originalScrollPos.left, originalScrollPos.top);\n          handleQuery(query, true /** ignoreCase */, true /** smartCase */);\n          var macroModeState = vimGlobalState.macroModeState;\n          if (macroModeState.isRecording) {\n            logSearchQuery(macroModeState, query);\n          }\n        }\n        function onPromptKeyUp(e, query, close) {\n          var keyName = CodeMirror.keyName(e), up;\n          if (keyName == 'Up' || keyName == 'Down') {\n            up = keyName == 'Up' ? true : false;\n            query = vimGlobalState.searchHistoryController.nextMatch(query, up) || '';\n            close(query);\n          } else {\n            if ( keyName != 'Left' && keyName != 'Right' && keyName != 'Ctrl' && keyName != 'Alt' && keyName != 'Shift')\n              vimGlobalState.searchHistoryController.reset();\n          }\n          var parsedQuery;\n          try {\n            parsedQuery = updateSearchQuery(cm, query,\n                true /** ignoreCase */, true /** smartCase */);\n          } catch (e) {\n          }\n          if (parsedQuery) {\n            cm.scrollIntoView(findNext(cm, !forward, parsedQuery), 30);\n          } else {\n            clearSearchHighlight(cm);\n            cm.scrollTo(originalScrollPos.left, originalScrollPos.top);\n          }\n        }\n        function onPromptKeyDown(e, query, close) {\n          var keyName = CodeMirror.keyName(e);\n          if (keyName == 'Esc' || keyName == 'Ctrl-C' || keyName == 'Ctrl-[' ||\n              (keyName == 'Backspace' && query == '')) {\n            vimGlobalState.searchHistoryController.pushInput(query);\n            vimGlobalState.searchHistoryController.reset();\n            updateSearchQuery(cm, originalQuery);\n            clearSearchHighlight(cm);\n            cm.scrollTo(originalScrollPos.left, originalScrollPos.top);\n            CodeMirror.e_stop(e);\n            clearInputState(cm);\n            close();\n            cm.focus();\n          } else if (keyName == 'Ctrl-U') {\n            CodeMirror.e_stop(e);\n            close('');\n          }\n        }\n        switch (command.searchArgs.querySrc) {\n          case 'prompt':\n            var macroModeState = vimGlobalState.macroModeState;\n            if (macroModeState.isPlaying) {\n              var query = macroModeState.replaySearchQueries.shift();\n              handleQuery(query, true /** ignoreCase */, false /** smartCase */);\n            } else {\n              showPrompt(cm, {\n                  onClose: onPromptClose,\n                  prefix: promptPrefix,\n                  desc: searchPromptDesc,\n                  onKeyUp: onPromptKeyUp,\n                  onKeyDown: onPromptKeyDown\n              });\n            }\n            break;\n          case 'wordUnderCursor':\n            var word = expandWordUnderCursor(cm, false /** inclusive */,\n                true /** forward */, false /** bigWord */,\n                true /** noSymbol */);\n            var isKeyword = true;\n            if (!word) {\n              word = expandWordUnderCursor(cm, false /** inclusive */,\n                  true /** forward */, false /** bigWord */,\n                  false /** noSymbol */);\n              isKeyword = false;\n            }\n            if (!word) {\n              return;\n            }\n            var query = cm.getLine(word.start.line).substring(word.start.ch,\n                word.end.ch);\n            if (isKeyword && wholeWordOnly) {\n                query = '\\\\b' + query + '\\\\b';\n            } else {\n              query = escapeRegex(query);\n            }\n            vimGlobalState.jumpList.cachedCursor = cm.getCursor();\n            cm.setCursor(word.start);\n\n            handleQuery(query, true /** ignoreCase */, false /** smartCase */);\n            break;\n        }\n      },\n      processEx: function(cm, vim, command) {\n        function onPromptClose(input) {\n          vimGlobalState.exCommandHistoryController.pushInput(input);\n          vimGlobalState.exCommandHistoryController.reset();\n          exCommandDispatcher.processCommand(cm, input);\n        }\n        function onPromptKeyDown(e, input, close) {\n          var keyName = CodeMirror.keyName(e), up;\n          if (keyName == 'Esc' || keyName == 'Ctrl-C' || keyName == 'Ctrl-[' ||\n              (keyName == 'Backspace' && input == '')) {\n            vimGlobalState.exCommandHistoryController.pushInput(input);\n            vimGlobalState.exCommandHistoryController.reset();\n            CodeMirror.e_stop(e);\n            clearInputState(cm);\n            close();\n            cm.focus();\n          }\n          if (keyName == 'Up' || keyName == 'Down') {\n            up = keyName == 'Up' ? true : false;\n            input = vimGlobalState.exCommandHistoryController.nextMatch(input, up) || '';\n            close(input);\n          } else if (keyName == 'Ctrl-U') {\n            CodeMirror.e_stop(e);\n            close('');\n          } else {\n            if ( keyName != 'Left' && keyName != 'Right' && keyName != 'Ctrl' && keyName != 'Alt' && keyName != 'Shift')\n              vimGlobalState.exCommandHistoryController.reset();\n          }\n        }\n        if (command.type == 'keyToEx') {\n          exCommandDispatcher.processCommand(cm, command.exArgs.input);\n        } else {\n          if (vim.visualMode) {\n            showPrompt(cm, { onClose: onPromptClose, prefix: ':', value: '\\'<,\\'>',\n                onKeyDown: onPromptKeyDown});\n          } else {\n            showPrompt(cm, { onClose: onPromptClose, prefix: ':',\n                onKeyDown: onPromptKeyDown});\n          }\n        }\n      },\n      evalInput: function(cm, vim) {\n        var inputState = vim.inputState;\n        var motion = inputState.motion;\n        var motionArgs = inputState.motionArgs || {};\n        var operator = inputState.operator;\n        var operatorArgs = inputState.operatorArgs || {};\n        var registerName = inputState.registerName;\n        var sel = vim.sel;\n        var origHead = copyCursor(vim.visualMode ? clipCursorToContent(cm, sel.head): cm.getCursor('head'));\n        var origAnchor = copyCursor(vim.visualMode ? clipCursorToContent(cm, sel.anchor) : cm.getCursor('anchor'));\n        var oldHead = copyCursor(origHead);\n        var oldAnchor = copyCursor(origAnchor);\n        var newHead, newAnchor;\n        var repeat;\n        if (operator) {\n          this.recordLastEdit(vim, inputState);\n        }\n        if (inputState.repeatOverride !== undefined) {\n          repeat = inputState.repeatOverride;\n        } else {\n          repeat = inputState.getRepeat();\n        }\n        if (repeat > 0 && motionArgs.explicitRepeat) {\n          motionArgs.repeatIsExplicit = true;\n        } else if (motionArgs.noRepeat ||\n            (!motionArgs.explicitRepeat && repeat === 0)) {\n          repeat = 1;\n          motionArgs.repeatIsExplicit = false;\n        }\n        if (inputState.selectedCharacter) {\n          motionArgs.selectedCharacter = operatorArgs.selectedCharacter =\n              inputState.selectedCharacter;\n        }\n        motionArgs.repeat = repeat;\n        clearInputState(cm);\n        if (motion) {\n          var motionResult = motions[motion](cm, origHead, motionArgs, vim);\n          vim.lastMotion = motions[motion];\n          if (!motionResult) {\n            return;\n          }\n          if (motionArgs.toJumplist) {\n            if (!operator && cm.ace.curOp != null)\n              cm.ace.curOp.command.scrollIntoView = \"center-animate\"; // ace_patch\n            var jumpList = vimGlobalState.jumpList;\n            var cachedCursor = jumpList.cachedCursor;\n            if (cachedCursor) {\n              recordJumpPosition(cm, cachedCursor, motionResult);\n              delete jumpList.cachedCursor;\n            } else {\n              recordJumpPosition(cm, origHead, motionResult);\n            }\n          }\n          if (motionResult instanceof Array) {\n            newAnchor = motionResult[0];\n            newHead = motionResult[1];\n          } else {\n            newHead = motionResult;\n          }\n          if (!newHead) {\n            newHead = copyCursor(origHead);\n          }\n          if (vim.visualMode) {\n            if (!(vim.visualBlock && newHead.ch === Infinity)) {\n              newHead = clipCursorToContent(cm, newHead, vim.visualBlock);\n            }\n            if (newAnchor) {\n              newAnchor = clipCursorToContent(cm, newAnchor, true);\n            }\n            newAnchor = newAnchor || oldAnchor;\n            sel.anchor = newAnchor;\n            sel.head = newHead;\n            updateCmSelection(cm);\n            updateMark(cm, vim, '<',\n                cursorIsBefore(newAnchor, newHead) ? newAnchor\n                    : newHead);\n            updateMark(cm, vim, '>',\n                cursorIsBefore(newAnchor, newHead) ? newHead\n                    : newAnchor);\n          } else if (!operator) {\n            newHead = clipCursorToContent(cm, newHead);\n            cm.setCursor(newHead.line, newHead.ch);\n          }\n        }\n        if (operator) {\n          if (operatorArgs.lastSel) {\n            newAnchor = oldAnchor;\n            var lastSel = operatorArgs.lastSel;\n            var lineOffset = Math.abs(lastSel.head.line - lastSel.anchor.line);\n            var chOffset = Math.abs(lastSel.head.ch - lastSel.anchor.ch);\n            if (lastSel.visualLine) {\n              newHead = Pos(oldAnchor.line + lineOffset, oldAnchor.ch);\n            } else if (lastSel.visualBlock) {\n              newHead = Pos(oldAnchor.line + lineOffset, oldAnchor.ch + chOffset);\n            } else if (lastSel.head.line == lastSel.anchor.line) {\n              newHead = Pos(oldAnchor.line, oldAnchor.ch + chOffset);\n            } else {\n              newHead = Pos(oldAnchor.line + lineOffset, oldAnchor.ch);\n            }\n            vim.visualMode = true;\n            vim.visualLine = lastSel.visualLine;\n            vim.visualBlock = lastSel.visualBlock;\n            sel = vim.sel = {\n              anchor: newAnchor,\n              head: newHead\n            };\n            updateCmSelection(cm);\n          } else if (vim.visualMode) {\n            operatorArgs.lastSel = {\n              anchor: copyCursor(sel.anchor),\n              head: copyCursor(sel.head),\n              visualBlock: vim.visualBlock,\n              visualLine: vim.visualLine\n            };\n          }\n          var curStart, curEnd, linewise, mode;\n          var cmSel;\n          if (vim.visualMode) {\n            curStart = cursorMin(sel.head, sel.anchor);\n            curEnd = cursorMax(sel.head, sel.anchor);\n            linewise = vim.visualLine || operatorArgs.linewise;\n            mode = vim.visualBlock ? 'block' :\n                   linewise ? 'line' :\n                   'char';\n            cmSel = makeCmSelection(cm, {\n              anchor: curStart,\n              head: curEnd\n            }, mode);\n            if (linewise) {\n              var ranges = cmSel.ranges;\n              if (mode == 'block') {\n                for (var i = 0; i < ranges.length; i++) {\n                  ranges[i].head.ch = lineLength(cm, ranges[i].head.line);\n                }\n              } else if (mode == 'line') {\n                ranges[0].head = Pos(ranges[0].head.line + 1, 0);\n              }\n            }\n          } else {\n            curStart = copyCursor(newAnchor || oldAnchor);\n            curEnd = copyCursor(newHead || oldHead);\n            if (cursorIsBefore(curEnd, curStart)) {\n              var tmp = curStart;\n              curStart = curEnd;\n              curEnd = tmp;\n            }\n            linewise = motionArgs.linewise || operatorArgs.linewise;\n            if (linewise) {\n              expandSelectionToLine(cm, curStart, curEnd);\n            } else if (motionArgs.forward) {\n              clipToLine(cm, curStart, curEnd);\n            }\n            mode = 'char';\n            var exclusive = !motionArgs.inclusive || linewise;\n            cmSel = makeCmSelection(cm, {\n              anchor: curStart,\n              head: curEnd\n            }, mode, exclusive);\n          }\n          cm.setSelections(cmSel.ranges, cmSel.primary);\n          vim.lastMotion = null;\n          operatorArgs.repeat = repeat; // For indent in visual mode.\n          operatorArgs.registerName = registerName;\n          operatorArgs.linewise = linewise;\n          var operatorMoveTo = operators[operator](\n            cm, operatorArgs, cmSel.ranges, oldAnchor, newHead);\n          if (vim.visualMode) {\n            exitVisualMode(cm, operatorMoveTo != null);\n          }\n          if (operatorMoveTo) {\n            cm.setCursor(operatorMoveTo);\n          }\n        }\n      },\n      recordLastEdit: function(vim, inputState, actionCommand) {\n        var macroModeState = vimGlobalState.macroModeState;\n        if (macroModeState.isPlaying) { return; }\n        vim.lastEditInputState = inputState;\n        vim.lastEditActionCommand = actionCommand;\n        macroModeState.lastInsertModeChanges.changes = [];\n        macroModeState.lastInsertModeChanges.expectCursorActivityForChange = false;\n      }\n    };\n    var motions = {\n      moveToTopLine: function(cm, _head, motionArgs) {\n        var line = getUserVisibleLines(cm).top + motionArgs.repeat -1;\n        return Pos(line, findFirstNonWhiteSpaceCharacter(cm.getLine(line)));\n      },\n      moveToMiddleLine: function(cm) {\n        var range = getUserVisibleLines(cm);\n        var line = Math.floor((range.top + range.bottom) * 0.5);\n        return Pos(line, findFirstNonWhiteSpaceCharacter(cm.getLine(line)));\n      },\n      moveToBottomLine: function(cm, _head, motionArgs) {\n        var line = getUserVisibleLines(cm).bottom - motionArgs.repeat +1;\n        return Pos(line, findFirstNonWhiteSpaceCharacter(cm.getLine(line)));\n      },\n      expandToLine: function(_cm, head, motionArgs) {\n        var cur = head;\n        return Pos(cur.line + motionArgs.repeat - 1, Infinity);\n      },\n      findNext: function(cm, _head, motionArgs) {\n        var state = getSearchState(cm);\n        var query = state.getQuery();\n        if (!query) {\n          return;\n        }\n        var prev = !motionArgs.forward;\n        prev = (state.isReversed()) ? !prev : prev;\n        highlightSearchMatches(cm, query);\n        return findNext(cm, prev/** prev */, query, motionArgs.repeat);\n      },\n      goToMark: function(cm, _head, motionArgs, vim) {\n        var mark = vim.marks[motionArgs.selectedCharacter];\n        if (mark) {\n          var pos = mark.find();\n          return motionArgs.linewise ? { line: pos.line, ch: findFirstNonWhiteSpaceCharacter(cm.getLine(pos.line)) } : pos;\n        }\n        return null;\n      },\n      moveToOtherHighlightedEnd: function(cm, _head, motionArgs, vim) {\n        if (vim.visualBlock && motionArgs.sameLine) {\n          var sel = vim.sel;\n          return [\n            clipCursorToContent(cm, Pos(sel.anchor.line, sel.head.ch)),\n            clipCursorToContent(cm, Pos(sel.head.line, sel.anchor.ch))\n          ];\n        } else {\n          return ([vim.sel.head, vim.sel.anchor]);\n        }\n      },\n      jumpToMark: function(cm, head, motionArgs, vim) {\n        var best = head;\n        for (var i = 0; i < motionArgs.repeat; i++) {\n          var cursor = best;\n          for (var key in vim.marks) {\n            if (!isLowerCase(key)) {\n              continue;\n            }\n            var mark = vim.marks[key].find();\n            var isWrongDirection = (motionArgs.forward) ?\n              cursorIsBefore(mark, cursor) : cursorIsBefore(cursor, mark);\n\n            if (isWrongDirection) {\n              continue;\n            }\n            if (motionArgs.linewise && (mark.line == cursor.line)) {\n              continue;\n            }\n\n            var equal = cursorEqual(cursor, best);\n            var between = (motionArgs.forward) ?\n              cursorIsBetween(cursor, mark, best) :\n              cursorIsBetween(best, mark, cursor);\n\n            if (equal || between) {\n              best = mark;\n            }\n          }\n        }\n\n        if (motionArgs.linewise) {\n          best = Pos(best.line, findFirstNonWhiteSpaceCharacter(cm.getLine(best.line)));\n        }\n        return best;\n      },\n      moveByCharacters: function(_cm, head, motionArgs) {\n        var cur = head;\n        var repeat = motionArgs.repeat;\n        var ch = motionArgs.forward ? cur.ch + repeat : cur.ch - repeat;\n        return Pos(cur.line, ch);\n      },\n      moveByLines: function(cm, head, motionArgs, vim) {\n        var cur = head;\n        var endCh = cur.ch;\n        switch (vim.lastMotion) {\n          case this.moveByLines:\n          case this.moveByDisplayLines:\n          case this.moveByScroll:\n          case this.moveToColumn:\n          case this.moveToEol:\n            endCh = vim.lastHPos;\n            break;\n          default:\n            vim.lastHPos = endCh;\n        }\n        var repeat = motionArgs.repeat+(motionArgs.repeatOffset||0);\n        var line = motionArgs.forward ? cur.line + repeat : cur.line - repeat;\n        var first = cm.firstLine();\n        var last = cm.lastLine();\n        if ((line < first && cur.line == first) ||\n            (line > last && cur.line == last)) {\n          return;\n        }\n        var fold = cm.ace.session.getFoldLine(line);\n        if (fold) {\n          if (motionArgs.forward) {\n            if (line > fold.start.row)\n              line = fold.end.row + 1;\n          } else {\n            line = fold.start.row;\n          }\n        }\n        if (motionArgs.toFirstChar){\n          endCh=findFirstNonWhiteSpaceCharacter(cm.getLine(line));\n          vim.lastHPos = endCh;\n        }\n        vim.lastHSPos = cm.charCoords(Pos(line, endCh),'div').left;\n        return Pos(line, endCh);\n      },\n      moveByDisplayLines: function(cm, head, motionArgs, vim) {\n        var cur = head;\n        switch (vim.lastMotion) {\n          case this.moveByDisplayLines:\n          case this.moveByScroll:\n          case this.moveByLines:\n          case this.moveToColumn:\n          case this.moveToEol:\n            break;\n          default:\n            vim.lastHSPos = cm.charCoords(cur,'div').left;\n        }\n        var repeat = motionArgs.repeat;\n        var res=cm.findPosV(cur,(motionArgs.forward ? repeat : -repeat),'line',vim.lastHSPos);\n        if (res.hitSide) {\n          if (motionArgs.forward) {\n            var lastCharCoords = cm.charCoords(res, 'div');\n            var goalCoords = { top: lastCharCoords.top + 8, left: vim.lastHSPos };\n            var res = cm.coordsChar(goalCoords, 'div');\n          } else {\n            var resCoords = cm.charCoords(Pos(cm.firstLine(), 0), 'div');\n            resCoords.left = vim.lastHSPos;\n            res = cm.coordsChar(resCoords, 'div');\n          }\n        }\n        vim.lastHPos = res.ch;\n        return res;\n      },\n      moveByPage: function(cm, head, motionArgs) {\n        var curStart = head;\n        var repeat = motionArgs.repeat;\n        return cm.findPosV(curStart, (motionArgs.forward ? repeat : -repeat), 'page');\n      },\n      moveByParagraph: function(cm, head, motionArgs) {\n        var dir = motionArgs.forward ? 1 : -1;\n        return findParagraph(cm, head, motionArgs.repeat, dir);\n      },\n      moveByScroll: function(cm, head, motionArgs, vim) {\n        var scrollbox = cm.getScrollInfo();\n        var curEnd = null;\n        var repeat = motionArgs.repeat;\n        if (!repeat) {\n          repeat = scrollbox.clientHeight / (2 * cm.defaultTextHeight());\n        }\n        var orig = cm.charCoords(head, 'local');\n        motionArgs.repeat = repeat;\n        var curEnd = motions.moveByDisplayLines(cm, head, motionArgs, vim);\n        if (!curEnd) {\n          return null;\n        }\n        var dest = cm.charCoords(curEnd, 'local');\n        cm.scrollTo(null, scrollbox.top + dest.top - orig.top);\n        return curEnd;\n      },\n      moveByWords: function(cm, head, motionArgs) {\n        return moveToWord(cm, head, motionArgs.repeat, !!motionArgs.forward,\n            !!motionArgs.wordEnd, !!motionArgs.bigWord);\n      },\n      moveTillCharacter: function(cm, _head, motionArgs) {\n        var repeat = motionArgs.repeat;\n        var curEnd = moveToCharacter(cm, repeat, motionArgs.forward,\n            motionArgs.selectedCharacter);\n        var increment = motionArgs.forward ? -1 : 1;\n        recordLastCharacterSearch(increment, motionArgs);\n        if (!curEnd) return null;\n        curEnd.ch += increment;\n        return curEnd;\n      },\n      moveToCharacter: function(cm, head, motionArgs) {\n        var repeat = motionArgs.repeat;\n        recordLastCharacterSearch(0, motionArgs);\n        return moveToCharacter(cm, repeat, motionArgs.forward,\n            motionArgs.selectedCharacter) || head;\n      },\n      moveToSymbol: function(cm, head, motionArgs) {\n        var repeat = motionArgs.repeat;\n        return findSymbol(cm, repeat, motionArgs.forward,\n            motionArgs.selectedCharacter) || head;\n      },\n      moveToColumn: function(cm, head, motionArgs, vim) {\n        var repeat = motionArgs.repeat;\n        vim.lastHPos = repeat - 1;\n        vim.lastHSPos = cm.charCoords(head,'div').left;\n        return moveToColumn(cm, repeat);\n      },\n      moveToEol: function(cm, head, motionArgs, vim) {\n        var cur = head;\n        vim.lastHPos = Infinity;\n        var retval= Pos(cur.line + motionArgs.repeat - 1, Infinity);\n        var end=cm.clipPos(retval);\n        end.ch--;\n        vim.lastHSPos = cm.charCoords(end,'div').left;\n        return retval;\n      },\n      moveToFirstNonWhiteSpaceCharacter: function(cm, head) {\n        var cursor = head;\n        return Pos(cursor.line,\n                   findFirstNonWhiteSpaceCharacter(cm.getLine(cursor.line)));\n      },\n      moveToMatchedSymbol: function(cm, head) {\n        var cursor = head;\n        var line = cursor.line;\n        var ch = cursor.ch;\n        var lineText = cm.getLine(line);\n        var symbol;\n        do {\n          symbol = lineText.charAt(ch++);\n          if (symbol && isMatchableSymbol(symbol)) {\n            var style = cm.getTokenTypeAt(Pos(line, ch));\n            if (style !== \"string\" && style !== \"comment\") {\n              break;\n            }\n          }\n        } while (symbol);\n        if (symbol) {\n          var matched = cm.findMatchingBracket(Pos(line, ch));\n          return matched.to;\n        } else {\n          return cursor;\n        }\n      },\n      moveToStartOfLine: function(_cm, head) {\n        return Pos(head.line, 0);\n      },\n      moveToLineOrEdgeOfDocument: function(cm, _head, motionArgs) {\n        var lineNum = motionArgs.forward ? cm.lastLine() : cm.firstLine();\n        if (motionArgs.repeatIsExplicit) {\n          lineNum = motionArgs.repeat - cm.getOption('firstLineNumber');\n        }\n        return Pos(lineNum,\n                   findFirstNonWhiteSpaceCharacter(cm.getLine(lineNum)));\n      },\n      textObjectManipulation: function(cm, head, motionArgs, vim) {\n        var mirroredPairs = {'(': ')', ')': '(',\n                             '{': '}', '}': '{',\n                             '[': ']', ']': '['};\n        var selfPaired = {'\\'': true, '\"': true};\n\n        var character = motionArgs.selectedCharacter;\n        if (character == 'b') {\n          character = '(';\n        } else if (character == 'B') {\n          character = '{';\n        }\n        var inclusive = !motionArgs.textObjectInner;\n\n        var tmp;\n        if (mirroredPairs[character]) {\n          tmp = selectCompanionObject(cm, head, character, inclusive);\n        } else if (selfPaired[character]) {\n          tmp = findBeginningAndEnd(cm, head, character, inclusive);\n        } else if (character === 'W') {\n          tmp = expandWordUnderCursor(cm, inclusive, true /** forward */,\n                                                     true /** bigWord */);\n        } else if (character === 'w') {\n          tmp = expandWordUnderCursor(cm, inclusive, true /** forward */,\n                                                     false /** bigWord */);\n        } else if (character === 'p') {\n          tmp = findParagraph(cm, head, motionArgs.repeat, 0, inclusive);\n          motionArgs.linewise = true;\n          if (vim.visualMode) {\n            if (!vim.visualLine) { vim.visualLine = true; }\n          } else {\n            var operatorArgs = vim.inputState.operatorArgs;\n            if (operatorArgs) { operatorArgs.linewise = true; }\n            tmp.end.line--;\n          }\n        } else {\n          return null;\n        }\n\n        if (!cm.state.vim.visualMode) {\n          return [tmp.start, tmp.end];\n        } else {\n          return expandSelection(cm, tmp.start, tmp.end);\n        }\n      },\n\n      repeatLastCharacterSearch: function(cm, head, motionArgs) {\n        var lastSearch = vimGlobalState.lastChararacterSearch;\n        var repeat = motionArgs.repeat;\n        var forward = motionArgs.forward === lastSearch.forward;\n        var increment = (lastSearch.increment ? 1 : 0) * (forward ? -1 : 1);\n        cm.moveH(-increment, 'char');\n        motionArgs.inclusive = forward ? true : false;\n        var curEnd = moveToCharacter(cm, repeat, forward, lastSearch.selectedCharacter);\n        if (!curEnd) {\n          cm.moveH(increment, 'char');\n          return head;\n        }\n        curEnd.ch += increment;\n        return curEnd;\n      }\n    };\n\n    function defineMotion(name, fn) {\n      motions[name] = fn;\n    }\n\n    function fillArray(val, times) {\n      var arr = [];\n      for (var i = 0; i < times; i++) {\n        arr.push(val);\n      }\n      return arr;\n    }\n    var operators = {\n      change: function(cm, args, ranges) {\n        var finalHead, text;\n        var vim = cm.state.vim;\n        vimGlobalState.macroModeState.lastInsertModeChanges.inVisualBlock = vim.visualBlock;\n        if (!vim.visualMode) {\n          var anchor = ranges[0].anchor,\n              head = ranges[0].head;\n          text = cm.getRange(anchor, head);\n          var lastState = vim.lastEditInputState || {};\n          if (lastState.motion == \"moveByWords\" && !isWhiteSpaceString(text)) {\n            var match = (/\\s+$/).exec(text);\n            if (match && lastState.motionArgs && lastState.motionArgs.forward) {\n              head = offsetCursor(head, 0, - match[0].length);\n              text = text.slice(0, - match[0].length);\n            }\n          }\n          var prevLineEnd = new Pos(anchor.line - 1, Number.MAX_VALUE);\n          var wasLastLine = cm.firstLine() == cm.lastLine();\n          if (head.line > cm.lastLine() && args.linewise && !wasLastLine) {\n            cm.replaceRange('', prevLineEnd, head);\n          } else {\n            cm.replaceRange('', anchor, head);\n          }\n          if (args.linewise) {\n            if (!wasLastLine) {\n              cm.setCursor(prevLineEnd);\n              CodeMirror.commands.newlineAndIndent(cm);\n            }\n            anchor.ch = Number.MAX_VALUE;\n          }\n          finalHead = anchor;\n        } else {\n          text = cm.getSelection();\n          var replacement = fillArray('', ranges.length);\n          cm.replaceSelections(replacement);\n          finalHead = cursorMin(ranges[0].head, ranges[0].anchor);\n        }\n        vimGlobalState.registerController.pushText(\n            args.registerName, 'change', text,\n            args.linewise, ranges.length > 1);\n        actions.enterInsertMode(cm, {head: finalHead}, cm.state.vim);\n      },\n      'delete': function(cm, args, ranges) {\n        var finalHead, text;\n        var vim = cm.state.vim;\n        if (!vim.visualBlock) {\n          var anchor = ranges[0].anchor,\n              head = ranges[0].head;\n          if (args.linewise &&\n              head.line != cm.firstLine() &&\n              anchor.line == cm.lastLine() &&\n              anchor.line == head.line - 1) {\n            if (anchor.line == cm.firstLine()) {\n              anchor.ch = 0;\n            } else {\n              anchor = Pos(anchor.line - 1, lineLength(cm, anchor.line - 1));\n            }\n          }\n          text = cm.getRange(anchor, head);\n          cm.replaceRange('', anchor, head);\n          finalHead = anchor;\n          if (args.linewise) {\n            finalHead = motions.moveToFirstNonWhiteSpaceCharacter(cm, anchor);\n          }\n        } else {\n          text = cm.getSelection();\n          var replacement = fillArray('', ranges.length);\n          cm.replaceSelections(replacement);\n          finalHead = ranges[0].anchor;\n        }\n        vimGlobalState.registerController.pushText(\n            args.registerName, 'delete', text,\n            args.linewise, vim.visualBlock);\n        return clipCursorToContent(cm, finalHead);\n      },\n      indent: function(cm, args, ranges) {\n        var vim = cm.state.vim;\n        var startLine = ranges[0].anchor.line;\n        var endLine = vim.visualBlock ?\n          ranges[ranges.length - 1].anchor.line :\n          ranges[0].head.line;\n        var repeat = (vim.visualMode) ? args.repeat : 1;\n        if (args.linewise) {\n          endLine--;\n        }\n        for (var i = startLine; i <= endLine; i++) {\n          for (var j = 0; j < repeat; j++) {\n            cm.indentLine(i, args.indentRight);\n          }\n        }\n        return motions.moveToFirstNonWhiteSpaceCharacter(cm, ranges[0].anchor);\n      },\n      changeCase: function(cm, args, ranges, oldAnchor, newHead) {\n        var selections = cm.getSelections();\n        var swapped = [];\n        var toLower = args.toLower;\n        for (var j = 0; j < selections.length; j++) {\n          var toSwap = selections[j];\n          var text = '';\n          if (toLower === true) {\n            text = toSwap.toLowerCase();\n          } else if (toLower === false) {\n            text = toSwap.toUpperCase();\n          } else {\n            for (var i = 0; i < toSwap.length; i++) {\n              var character = toSwap.charAt(i);\n              text += isUpperCase(character) ? character.toLowerCase() :\n                  character.toUpperCase();\n            }\n          }\n          swapped.push(text);\n        }\n        cm.replaceSelections(swapped);\n        if (args.shouldMoveCursor){\n          return newHead;\n        } else if (!cm.state.vim.visualMode && args.linewise && ranges[0].anchor.line + 1 == ranges[0].head.line) {\n          return motions.moveToFirstNonWhiteSpaceCharacter(cm, oldAnchor);\n        } else if (args.linewise){\n          return oldAnchor;\n        } else {\n          return cursorMin(ranges[0].anchor, ranges[0].head);\n        }\n      },\n      yank: function(cm, args, ranges, oldAnchor) {\n        var vim = cm.state.vim;\n        var text = cm.getSelection();\n        var endPos = vim.visualMode\n          ? cursorMin(vim.sel.anchor, vim.sel.head, ranges[0].head, ranges[0].anchor)\n          : oldAnchor;\n        vimGlobalState.registerController.pushText(\n            args.registerName, 'yank',\n            text, args.linewise, vim.visualBlock);\n        return endPos;\n      }\n    };\n\n    function defineOperator(name, fn) {\n      operators[name] = fn;\n    }\n\n    var actions = {\n      jumpListWalk: function(cm, actionArgs, vim) {\n        if (vim.visualMode) {\n          return;\n        }\n        var repeat = actionArgs.repeat;\n        var forward = actionArgs.forward;\n        var jumpList = vimGlobalState.jumpList;\n\n        var mark = jumpList.move(cm, forward ? repeat : -repeat);\n        var markPos = mark ? mark.find() : undefined;\n        markPos = markPos ? markPos : cm.getCursor();\n        cm.setCursor(markPos);\n        cm.ace.curOp.command.scrollIntoView = \"center-animate\"; // ace_patch\n      },\n      scroll: function(cm, actionArgs, vim) {\n        if (vim.visualMode) {\n          return;\n        }\n        var repeat = actionArgs.repeat || 1;\n        var lineHeight = cm.defaultTextHeight();\n        var top = cm.getScrollInfo().top;\n        var delta = lineHeight * repeat;\n        var newPos = actionArgs.forward ? top + delta : top - delta;\n        var cursor = copyCursor(cm.getCursor());\n        var cursorCoords = cm.charCoords(cursor, 'local');\n        if (actionArgs.forward) {\n          if (newPos > cursorCoords.top) {\n             cursor.line += (newPos - cursorCoords.top) / lineHeight;\n             cursor.line = Math.ceil(cursor.line);\n             cm.setCursor(cursor);\n             cursorCoords = cm.charCoords(cursor, 'local');\n             cm.scrollTo(null, cursorCoords.top);\n          } else {\n             cm.scrollTo(null, newPos);\n          }\n        } else {\n          var newBottom = newPos + cm.getScrollInfo().clientHeight;\n          if (newBottom < cursorCoords.bottom) {\n             cursor.line -= (cursorCoords.bottom - newBottom) / lineHeight;\n             cursor.line = Math.floor(cursor.line);\n             cm.setCursor(cursor);\n             cursorCoords = cm.charCoords(cursor, 'local');\n             cm.scrollTo(\n                 null, cursorCoords.bottom - cm.getScrollInfo().clientHeight);\n          } else {\n             cm.scrollTo(null, newPos);\n          }\n        }\n      },\n      scrollToCursor: function(cm, actionArgs) {\n        var lineNum = cm.getCursor().line;\n        var charCoords = cm.charCoords(Pos(lineNum, 0), 'local');\n        var height = cm.getScrollInfo().clientHeight;\n        var y = charCoords.top;\n        var lineHeight = charCoords.bottom - y;\n        switch (actionArgs.position) {\n          case 'center': y = y - (height / 2) + lineHeight;\n            break;\n          case 'bottom': y = y - height + lineHeight*1.4;\n            break;\n          case 'top': y = y + lineHeight*0.4;\n            break;\n        }\n        cm.scrollTo(null, y);\n      },\n      replayMacro: function(cm, actionArgs, vim) {\n        var registerName = actionArgs.selectedCharacter;\n        var repeat = actionArgs.repeat;\n        var macroModeState = vimGlobalState.macroModeState;\n        if (registerName == '@') {\n          registerName = macroModeState.latestRegister;\n        }\n        while(repeat--){\n          executeMacroRegister(cm, vim, macroModeState, registerName);\n        }\n      },\n      enterMacroRecordMode: function(cm, actionArgs) {\n        var macroModeState = vimGlobalState.macroModeState;\n        var registerName = actionArgs.selectedCharacter;\n        macroModeState.enterMacroRecordMode(cm, registerName);\n      },\n      enterInsertMode: function(cm, actionArgs, vim) {\n        if (cm.getOption('readOnly')) { return; }\n        vim.insertMode = true;\n        vim.insertModeRepeat = actionArgs && actionArgs.repeat || 1;\n        var insertAt = (actionArgs) ? actionArgs.insertAt : null;\n        var sel = vim.sel;\n        var head = actionArgs.head || cm.getCursor('head');\n        var height = cm.listSelections().length;\n        if (insertAt == 'eol') {\n          head = Pos(head.line, lineLength(cm, head.line));\n        } else if (insertAt == 'charAfter') {\n          head = offsetCursor(head, 0, 1);\n        } else if (insertAt == 'firstNonBlank') {\n          head = motions.moveToFirstNonWhiteSpaceCharacter(cm, head);\n        } else if (insertAt == 'startOfSelectedArea') {\n          if (!vim.visualBlock) {\n            if (sel.head.line < sel.anchor.line) {\n              head = sel.head;\n            } else {\n              head = Pos(sel.anchor.line, 0);\n            }\n          } else {\n            head = Pos(\n                Math.min(sel.head.line, sel.anchor.line),\n                Math.min(sel.head.ch, sel.anchor.ch));\n            height = Math.abs(sel.head.line - sel.anchor.line) + 1;\n          }\n        } else if (insertAt == 'endOfSelectedArea') {\n          if (!vim.visualBlock) {\n            if (sel.head.line >= sel.anchor.line) {\n              head = offsetCursor(sel.head, 0, 1);\n            } else {\n              head = Pos(sel.anchor.line, 0);\n            }\n          } else {\n            head = Pos(\n                Math.min(sel.head.line, sel.anchor.line),\n                Math.max(sel.head.ch + 1, sel.anchor.ch));\n            height = Math.abs(sel.head.line - sel.anchor.line) + 1;\n          }\n        } else if (insertAt == 'inplace') {\n          if (vim.visualMode){\n            return;\n          }\n        }\n        cm.setOption('keyMap', 'vim-insert');\n        cm.setOption('disableInput', false);\n        if (actionArgs && actionArgs.replace) {\n          cm.toggleOverwrite(true);\n          cm.setOption('keyMap', 'vim-replace');\n          CodeMirror.signal(cm, \"vim-mode-change\", {mode: \"replace\"});\n        } else {\n          cm.setOption('keyMap', 'vim-insert');\n          CodeMirror.signal(cm, \"vim-mode-change\", {mode: \"insert\"});\n        }\n        if (!vimGlobalState.macroModeState.isPlaying) {\n          cm.on('change', onChange);\n          CodeMirror.on(cm.getInputField(), 'keydown', onKeyEventTargetKeyDown);\n        }\n        if (vim.visualMode) {\n          exitVisualMode(cm);\n        }\n        selectForInsert(cm, head, height);\n      },\n      toggleVisualMode: function(cm, actionArgs, vim) {\n        var repeat = actionArgs.repeat;\n        var anchor = cm.getCursor();\n        var head;\n        if (!vim.visualMode) {\n          vim.visualMode = true;\n          vim.visualLine = !!actionArgs.linewise;\n          vim.visualBlock = !!actionArgs.blockwise;\n          head = clipCursorToContent(\n              cm, Pos(anchor.line, anchor.ch + repeat - 1),\n              true /** includeLineBreak */);\n          vim.sel = {\n            anchor: anchor,\n            head: head\n          };\n          CodeMirror.signal(cm, \"vim-mode-change\", {mode: \"visual\", subMode: vim.visualLine ? \"linewise\" : vim.visualBlock ? \"blockwise\" : \"\"});\n          updateCmSelection(cm);\n          updateMark(cm, vim, '<', cursorMin(anchor, head));\n          updateMark(cm, vim, '>', cursorMax(anchor, head));\n        } else if (vim.visualLine ^ actionArgs.linewise ||\n            vim.visualBlock ^ actionArgs.blockwise) {\n          vim.visualLine = !!actionArgs.linewise;\n          vim.visualBlock = !!actionArgs.blockwise;\n          CodeMirror.signal(cm, \"vim-mode-change\", {mode: \"visual\", subMode: vim.visualLine ? \"linewise\" : vim.visualBlock ? \"blockwise\" : \"\"});\n          updateCmSelection(cm);\n        } else {\n          exitVisualMode(cm);\n        }\n      },\n      reselectLastSelection: function(cm, _actionArgs, vim) {\n        var lastSelection = vim.lastSelection;\n        if (vim.visualMode) {\n          updateLastSelection(cm, vim);\n        }\n        if (lastSelection) {\n          var anchor = lastSelection.anchorMark.find();\n          var head = lastSelection.headMark.find();\n          if (!anchor || !head) {\n            return;\n          }\n          vim.sel = {\n            anchor: anchor,\n            head: head\n          };\n          vim.visualMode = true;\n          vim.visualLine = lastSelection.visualLine;\n          vim.visualBlock = lastSelection.visualBlock;\n          updateCmSelection(cm);\n          updateMark(cm, vim, '<', cursorMin(anchor, head));\n          updateMark(cm, vim, '>', cursorMax(anchor, head));\n          CodeMirror.signal(cm, 'vim-mode-change', {\n            mode: 'visual',\n            subMode: vim.visualLine ? 'linewise' :\n                     vim.visualBlock ? 'blockwise' : ''});\n        }\n      },\n      joinLines: function(cm, actionArgs, vim) {\n        var curStart, curEnd;\n        if (vim.visualMode) {\n          curStart = cm.getCursor('anchor');\n          curEnd = cm.getCursor('head');\n          if (cursorIsBefore(curEnd, curStart)) {\n            var tmp = curEnd;\n            curEnd = curStart;\n            curStart = tmp;\n          }\n          curEnd.ch = lineLength(cm, curEnd.line) - 1;\n        } else {\n          var repeat = Math.max(actionArgs.repeat, 2);\n          curStart = cm.getCursor();\n          curEnd = clipCursorToContent(cm, Pos(curStart.line + repeat - 1,\n                                               Infinity));\n        }\n        var finalCh = 0;\n        for (var i = curStart.line; i < curEnd.line; i++) {\n          finalCh = lineLength(cm, curStart.line);\n          var tmp = Pos(curStart.line + 1,\n                        lineLength(cm, curStart.line + 1));\n          var text = cm.getRange(curStart, tmp);\n          text = text.replace(/\\n\\s*/g, ' ');\n          cm.replaceRange(text, curStart, tmp);\n        }\n        var curFinalPos = Pos(curStart.line, finalCh);\n        if (vim.visualMode) {\n          exitVisualMode(cm, false);\n        }\n        cm.setCursor(curFinalPos);\n      },\n      newLineAndEnterInsertMode: function(cm, actionArgs, vim) {\n        vim.insertMode = true;\n        var insertAt = copyCursor(cm.getCursor());\n        if (insertAt.line === cm.firstLine() && !actionArgs.after) {\n          cm.replaceRange('\\n', Pos(cm.firstLine(), 0));\n          cm.setCursor(cm.firstLine(), 0);\n        } else {\n          insertAt.line = (actionArgs.after) ? insertAt.line :\n              insertAt.line - 1;\n          insertAt.ch = lineLength(cm, insertAt.line);\n          cm.setCursor(insertAt);\n          var newlineFn = CodeMirror.commands.newlineAndIndentContinueComment ||\n              CodeMirror.commands.newlineAndIndent;\n          newlineFn(cm);\n        }\n        this.enterInsertMode(cm, { repeat: actionArgs.repeat }, vim);\n      },\n      paste: function(cm, actionArgs, vim) {\n        var cur = copyCursor(cm.getCursor());\n        var register = vimGlobalState.registerController.getRegister(\n            actionArgs.registerName);\n        var text = register.toString();\n        if (!text) {\n          return;\n        }\n        if (actionArgs.matchIndent) {\n          var tabSize = cm.getOption(\"tabSize\");\n          var whitespaceLength = function(str) {\n            var tabs = (str.split(\"\\t\").length - 1);\n            var spaces = (str.split(\" \").length - 1);\n            return tabs * tabSize + spaces * 1;\n          };\n          var currentLine = cm.getLine(cm.getCursor().line);\n          var indent = whitespaceLength(currentLine.match(/^\\s*/)[0]);\n          var chompedText = text.replace(/\\n$/, '');\n          var wasChomped = text !== chompedText;\n          var firstIndent = whitespaceLength(text.match(/^\\s*/)[0]);\n          var text = chompedText.replace(/^\\s*/gm, function(wspace) {\n            var newIndent = indent + (whitespaceLength(wspace) - firstIndent);\n            if (newIndent < 0) {\n              return \"\";\n            }\n            else if (cm.getOption(\"indentWithTabs\")) {\n              var quotient = Math.floor(newIndent / tabSize);\n              return Array(quotient + 1).join('\\t');\n            }\n            else {\n              return Array(newIndent + 1).join(' ');\n            }\n          });\n          text += wasChomped ? \"\\n\" : \"\";\n        }\n        if (actionArgs.repeat > 1) {\n          var text = Array(actionArgs.repeat + 1).join(text);\n        }\n        var linewise = register.linewise;\n        var blockwise = register.blockwise;\n        if (linewise && !blockwise) {\n          if(vim.visualMode) {\n            text = vim.visualLine ? text.slice(0, -1) : '\\n' + text.slice(0, text.length - 1) + '\\n';\n          } else if (actionArgs.after) {\n            text = '\\n' + text.slice(0, text.length - 1);\n            cur.ch = lineLength(cm, cur.line);\n          } else {\n            cur.ch = 0;\n          }\n        } else {\n          if (blockwise) {\n            text = text.split('\\n');\n            for (var i = 0; i < text.length; i++) {\n              text[i] = (text[i] == '') ? ' ' : text[i];\n            }\n          }\n          cur.ch += actionArgs.after ? 1 : 0;\n        }\n        var curPosFinal;\n        var idx;\n        if (vim.visualMode) {\n          vim.lastPastedText = text;\n          var lastSelectionCurEnd;\n          var selectedArea = getSelectedAreaRange(cm, vim);\n          var selectionStart = selectedArea[0];\n          var selectionEnd = selectedArea[1];\n          var selectedText = cm.getSelection();\n          var selections = cm.listSelections();\n          var emptyStrings = new Array(selections.length).join('1').split('1');\n          if (vim.lastSelection) {\n            lastSelectionCurEnd = vim.lastSelection.headMark.find();\n          }\n          vimGlobalState.registerController.unnamedRegister.setText(selectedText);\n          if (blockwise) {\n            cm.replaceSelections(emptyStrings);\n            selectionEnd = Pos(selectionStart.line + text.length-1, selectionStart.ch);\n            cm.setCursor(selectionStart);\n            selectBlock(cm, selectionEnd);\n            cm.replaceSelections(text);\n            curPosFinal = selectionStart;\n          } else if (vim.visualBlock) {\n            cm.replaceSelections(emptyStrings);\n            cm.setCursor(selectionStart);\n            cm.replaceRange(text, selectionStart, selectionStart);\n            curPosFinal = selectionStart;\n          } else {\n            cm.replaceRange(text, selectionStart, selectionEnd);\n            curPosFinal = cm.posFromIndex(cm.indexFromPos(selectionStart) + text.length - 1);\n          }\n          if(lastSelectionCurEnd) {\n            vim.lastSelection.headMark = cm.setBookmark(lastSelectionCurEnd);\n          }\n          if (linewise) {\n            curPosFinal.ch=0;\n          }\n        } else {\n          if (blockwise) {\n            cm.setCursor(cur);\n            for (var i = 0; i < text.length; i++) {\n              var line = cur.line+i;\n              if (line > cm.lastLine()) {\n                cm.replaceRange('\\n',  Pos(line, 0));\n              }\n              var lastCh = lineLength(cm, line);\n              if (lastCh < cur.ch) {\n                extendLineToColumn(cm, line, cur.ch);\n              }\n            }\n            cm.setCursor(cur);\n            selectBlock(cm, Pos(cur.line + text.length-1, cur.ch));\n            cm.replaceSelections(text);\n            curPosFinal = cur;\n          } else {\n            cm.replaceRange(text, cur);\n            if (linewise && actionArgs.after) {\n              curPosFinal = Pos(\n              cur.line + 1,\n              findFirstNonWhiteSpaceCharacter(cm.getLine(cur.line + 1)));\n            } else if (linewise && !actionArgs.after) {\n              curPosFinal = Pos(\n                cur.line,\n                findFirstNonWhiteSpaceCharacter(cm.getLine(cur.line)));\n            } else if (!linewise && actionArgs.after) {\n              idx = cm.indexFromPos(cur);\n              curPosFinal = cm.posFromIndex(idx + text.length - 1);\n            } else {\n              idx = cm.indexFromPos(cur);\n              curPosFinal = cm.posFromIndex(idx + text.length);\n            }\n          }\n        }\n        if (vim.visualMode) {\n          exitVisualMode(cm, false);\n        }\n        cm.setCursor(curPosFinal);\n      },\n      undo: function(cm, actionArgs) {\n        cm.operation(function() {\n          repeatFn(cm, CodeMirror.commands.undo, actionArgs.repeat)();\n          cm.setCursor(cm.getCursor('anchor'));\n        });\n      },\n      redo: function(cm, actionArgs) {\n        repeatFn(cm, CodeMirror.commands.redo, actionArgs.repeat)();\n      },\n      setRegister: function(_cm, actionArgs, vim) {\n        vim.inputState.registerName = actionArgs.selectedCharacter;\n      },\n      setMark: function(cm, actionArgs, vim) {\n        var markName = actionArgs.selectedCharacter;\n        updateMark(cm, vim, markName, cm.getCursor());\n      },\n      replace: function(cm, actionArgs, vim) {\n        var replaceWith = actionArgs.selectedCharacter;\n        var curStart = cm.getCursor();\n        var replaceTo;\n        var curEnd;\n        var selections = cm.listSelections();\n        if (vim.visualMode) {\n          curStart = cm.getCursor('start');\n          curEnd = cm.getCursor('end');\n        } else {\n          var line = cm.getLine(curStart.line);\n          replaceTo = curStart.ch + actionArgs.repeat;\n          if (replaceTo > line.length) {\n            replaceTo=line.length;\n          }\n          curEnd = Pos(curStart.line, replaceTo);\n        }\n        if (replaceWith=='\\n') {\n          if (!vim.visualMode) cm.replaceRange('', curStart, curEnd);\n          (CodeMirror.commands.newlineAndIndentContinueComment || CodeMirror.commands.newlineAndIndent)(cm);\n        } else {\n          var replaceWithStr = cm.getRange(curStart, curEnd);\n          replaceWithStr = replaceWithStr.replace(/[^\\n]/g, replaceWith);\n          if (vim.visualBlock) {\n            var spaces = new Array(cm.getOption(\"tabSize\")+1).join(' ');\n            replaceWithStr = cm.getSelection();\n            replaceWithStr = replaceWithStr.replace(/\\t/g, spaces).replace(/[^\\n]/g, replaceWith).split('\\n');\n            cm.replaceSelections(replaceWithStr);\n          } else {\n            cm.replaceRange(replaceWithStr, curStart, curEnd);\n          }\n          if (vim.visualMode) {\n            curStart = cursorIsBefore(selections[0].anchor, selections[0].head) ?\n                         selections[0].anchor : selections[0].head;\n            cm.setCursor(curStart);\n            exitVisualMode(cm, false);\n          } else {\n            cm.setCursor(offsetCursor(curEnd, 0, -1));\n          }\n        }\n      },\n      incrementNumberToken: function(cm, actionArgs) {\n        var cur = cm.getCursor();\n        var lineStr = cm.getLine(cur.line);\n        var re = /-?\\d+/g;\n        var match;\n        var start;\n        var end;\n        var numberStr;\n        var token;\n        while ((match = re.exec(lineStr)) !== null) {\n          token = match[0];\n          start = match.index;\n          end = start + token.length;\n          if (cur.ch < end)break;\n        }\n        if (!actionArgs.backtrack && (end <= cur.ch))return;\n        if (token) {\n          var increment = actionArgs.increase ? 1 : -1;\n          var number = parseInt(token) + (increment * actionArgs.repeat);\n          var from = Pos(cur.line, start);\n          var to = Pos(cur.line, end);\n          numberStr = number.toString();\n          cm.replaceRange(numberStr, from, to);\n        } else {\n          return;\n        }\n        cm.setCursor(Pos(cur.line, start + numberStr.length - 1));\n      },\n      repeatLastEdit: function(cm, actionArgs, vim) {\n        var lastEditInputState = vim.lastEditInputState;\n        if (!lastEditInputState) { return; }\n        var repeat = actionArgs.repeat;\n        if (repeat && actionArgs.repeatIsExplicit) {\n          vim.lastEditInputState.repeatOverride = repeat;\n        } else {\n          repeat = vim.lastEditInputState.repeatOverride || repeat;\n        }\n        repeatLastEdit(cm, vim, repeat, false /** repeatForInsert */);\n      },\n      exitInsertMode: exitInsertMode\n    };\n\n    function defineAction(name, fn) {\n      actions[name] = fn;\n    }\n    function clipCursorToContent(cm, cur, includeLineBreak) {\n      var line = Math.min(Math.max(cm.firstLine(), cur.line), cm.lastLine() );\n      var maxCh = lineLength(cm, line) - 1;\n      maxCh = (includeLineBreak) ? maxCh + 1 : maxCh;\n      var ch = Math.min(Math.max(0, cur.ch), maxCh);\n      return Pos(line, ch);\n    }\n    function copyArgs(args) {\n      var ret = {};\n      for (var prop in args) {\n        if (args.hasOwnProperty(prop)) {\n          ret[prop] = args[prop];\n        }\n      }\n      return ret;\n    }\n    function offsetCursor(cur, offsetLine, offsetCh) {\n      if (typeof offsetLine === 'object') {\n        offsetCh = offsetLine.ch;\n        offsetLine = offsetLine.line;\n      }\n      return Pos(cur.line + offsetLine, cur.ch + offsetCh);\n    }\n    function getOffset(anchor, head) {\n      return {\n        line: head.line - anchor.line,\n        ch: head.line - anchor.line\n      };\n    }\n    function commandMatches(keys, keyMap, context, inputState) {\n      var match, partial = [], full = [];\n      for (var i = 0; i < keyMap.length; i++) {\n        var command = keyMap[i];\n        if (context == 'insert' && command.context != 'insert' ||\n            command.context && command.context != context ||\n            inputState.operator && command.type == 'action' ||\n            !(match = commandMatch(keys, command.keys))) { continue; }\n        if (match == 'partial') { partial.push(command); }\n        if (match == 'full') { full.push(command); }\n      }\n      return {\n        partial: partial.length && partial,\n        full: full.length && full\n      };\n    }\n    function commandMatch(pressed, mapped) {\n      if (mapped.slice(-11) == '<character>') {\n        var prefixLen = mapped.length - 11;\n        var pressedPrefix = pressed.slice(0, prefixLen);\n        var mappedPrefix = mapped.slice(0, prefixLen);\n        return pressedPrefix == mappedPrefix && pressed.length > prefixLen ? 'full' :\n               mappedPrefix.indexOf(pressedPrefix) == 0 ? 'partial' : false;\n      } else {\n        return pressed == mapped ? 'full' :\n               mapped.indexOf(pressed) == 0 ? 'partial' : false;\n      }\n    }\n    function lastChar(keys) {\n      var match = /^.*(<[\\w\\-]+>)$/.exec(keys);\n      var selectedCharacter = match ? match[1] : keys.slice(-1);\n      if (selectedCharacter.length > 1){\n        switch(selectedCharacter){\n          case '<CR>':\n            selectedCharacter='\\n';\n            break;\n          case '<Space>':\n            selectedCharacter=' ';\n            break;\n          default:\n            break;\n        }\n      }\n      return selectedCharacter;\n    }\n    function repeatFn(cm, fn, repeat) {\n      return function() {\n        for (var i = 0; i < repeat; i++) {\n          fn(cm);\n        }\n      };\n    }\n    function copyCursor(cur) {\n      return Pos(cur.line, cur.ch);\n    }\n    function cursorEqual(cur1, cur2) {\n      return cur1.ch == cur2.ch && cur1.line == cur2.line;\n    }\n    function cursorIsBefore(cur1, cur2) {\n      if (cur1.line < cur2.line) {\n        return true;\n      }\n      if (cur1.line == cur2.line && cur1.ch < cur2.ch) {\n        return true;\n      }\n      return false;\n    }\n    function cursorMin(cur1, cur2) {\n      if (arguments.length > 2) {\n        cur2 = cursorMin.apply(undefined, Array.prototype.slice.call(arguments, 1));\n      }\n      return cursorIsBefore(cur1, cur2) ? cur1 : cur2;\n    }\n    function cursorMax(cur1, cur2) {\n      if (arguments.length > 2) {\n        cur2 = cursorMax.apply(undefined, Array.prototype.slice.call(arguments, 1));\n      }\n      return cursorIsBefore(cur1, cur2) ? cur2 : cur1;\n    }\n    function cursorIsBetween(cur1, cur2, cur3) {\n      var cur1before2 = cursorIsBefore(cur1, cur2);\n      var cur2before3 = cursorIsBefore(cur2, cur3);\n      return cur1before2 && cur2before3;\n    }\n    function lineLength(cm, lineNum) {\n      return cm.getLine(lineNum).length;\n    }\n    function trim(s) {\n      if (s.trim) {\n        return s.trim();\n      }\n      return s.replace(/^\\s+|\\s+$/g, '');\n    }\n    function escapeRegex(s) {\n      return s.replace(/([.?*+$\\[\\]\\/\\\\(){}|\\-])/g, '\\\\$1');\n    }\n    function extendLineToColumn(cm, lineNum, column) {\n      var endCh = lineLength(cm, lineNum);\n      var spaces = new Array(column-endCh+1).join(' ');\n      cm.setCursor(Pos(lineNum, endCh));\n      cm.replaceRange(spaces, cm.getCursor());\n    }\n    function selectBlock(cm, selectionEnd) {\n      var selections = [], ranges = cm.listSelections();\n      var head = copyCursor(cm.clipPos(selectionEnd));\n      var isClipped = !cursorEqual(selectionEnd, head);\n      var curHead = cm.getCursor('head');\n      var primIndex = getIndex(ranges, curHead);\n      var wasClipped = cursorEqual(ranges[primIndex].head, ranges[primIndex].anchor);\n      var max = ranges.length - 1;\n      var index = max - primIndex > primIndex ? max : 0;\n      var base = ranges[index].anchor;\n\n      var firstLine = Math.min(base.line, head.line);\n      var lastLine = Math.max(base.line, head.line);\n      var baseCh = base.ch, headCh = head.ch;\n\n      var dir = ranges[index].head.ch - baseCh;\n      var newDir = headCh - baseCh;\n      if (dir > 0 && newDir <= 0) {\n        baseCh++;\n        if (!isClipped) { headCh--; }\n      } else if (dir < 0 && newDir >= 0) {\n        baseCh--;\n        if (!wasClipped) { headCh++; }\n      } else if (dir < 0 && newDir == -1) {\n        baseCh--;\n        headCh++;\n      }\n      for (var line = firstLine; line <= lastLine; line++) {\n        var range = {anchor: new Pos(line, baseCh), head: new Pos(line, headCh)};\n        selections.push(range);\n      }\n      primIndex = head.line == lastLine ? selections.length - 1 : 0;\n      cm.setSelections(selections);\n      selectionEnd.ch = headCh;\n      base.ch = baseCh;\n      return base;\n    }\n    function selectForInsert(cm, head, height) {\n      var sel = [];\n      for (var i = 0; i < height; i++) {\n        var lineHead = offsetCursor(head, i, 0);\n        sel.push({anchor: lineHead, head: lineHead});\n      }\n      cm.setSelections(sel, 0);\n    }\n    function getIndex(ranges, cursor, end) {\n      for (var i = 0; i < ranges.length; i++) {\n        var atAnchor = end != 'head' && cursorEqual(ranges[i].anchor, cursor);\n        var atHead = end != 'anchor' && cursorEqual(ranges[i].head, cursor);\n        if (atAnchor || atHead) {\n          return i;\n        }\n      }\n      return -1;\n    }\n    function getSelectedAreaRange(cm, vim) {\n      var lastSelection = vim.lastSelection;\n      var getCurrentSelectedAreaRange = function() {\n        var selections = cm.listSelections();\n        var start =  selections[0];\n        var end = selections[selections.length-1];\n        var selectionStart = cursorIsBefore(start.anchor, start.head) ? start.anchor : start.head;\n        var selectionEnd = cursorIsBefore(end.anchor, end.head) ? end.head : end.anchor;\n        return [selectionStart, selectionEnd];\n      };\n      var getLastSelectedAreaRange = function() {\n        var selectionStart = cm.getCursor();\n        var selectionEnd = cm.getCursor();\n        var block = lastSelection.visualBlock;\n        if (block) {\n          var width = block.width;\n          var height = block.height;\n          selectionEnd = Pos(selectionStart.line + height, selectionStart.ch + width);\n          var selections = [];\n          for (var i = selectionStart.line; i < selectionEnd.line; i++) {\n            var anchor = Pos(i, selectionStart.ch);\n            var head = Pos(i, selectionEnd.ch);\n            var range = {anchor: anchor, head: head};\n            selections.push(range);\n          }\n          cm.setSelections(selections);\n        } else {\n          var start = lastSelection.anchorMark.find();\n          var end = lastSelection.headMark.find();\n          var line = end.line - start.line;\n          var ch = end.ch - start.ch;\n          selectionEnd = {line: selectionEnd.line + line, ch: line ? selectionEnd.ch : ch + selectionEnd.ch};\n          if (lastSelection.visualLine) {\n            selectionStart = Pos(selectionStart.line, 0);\n            selectionEnd = Pos(selectionEnd.line, lineLength(cm, selectionEnd.line));\n          }\n          cm.setSelection(selectionStart, selectionEnd);\n        }\n        return [selectionStart, selectionEnd];\n      };\n      if (!vim.visualMode) {\n        return getLastSelectedAreaRange();\n      } else {\n        return getCurrentSelectedAreaRange();\n      }\n    }\n    function updateLastSelection(cm, vim) {\n      var anchor = vim.sel.anchor;\n      var head = vim.sel.head;\n      if (vim.lastPastedText) {\n        head = cm.posFromIndex(cm.indexFromPos(anchor) + vim.lastPastedText.length);\n        vim.lastPastedText = null;\n      }\n      vim.lastSelection = {'anchorMark': cm.setBookmark(anchor),\n                           'headMark': cm.setBookmark(head),\n                           'anchor': copyCursor(anchor),\n                           'head': copyCursor(head),\n                           'visualMode': vim.visualMode,\n                           'visualLine': vim.visualLine,\n                           'visualBlock': vim.visualBlock};\n    }\n    function expandSelection(cm, start, end) {\n      var sel = cm.state.vim.sel;\n      var head = sel.head;\n      var anchor = sel.anchor;\n      var tmp;\n      if (cursorIsBefore(end, start)) {\n        tmp = end;\n        end = start;\n        start = tmp;\n      }\n      if (cursorIsBefore(head, anchor)) {\n        head = cursorMin(start, head);\n        anchor = cursorMax(anchor, end);\n      } else {\n        anchor = cursorMin(start, anchor);\n        head = cursorMax(head, end);\n        head = offsetCursor(head, 0, -1);\n        if (head.ch == -1 && head.line != cm.firstLine()) {\n          head = Pos(head.line - 1, lineLength(cm, head.line - 1));\n        }\n      }\n      return [anchor, head];\n    }\n    function updateCmSelection(cm, sel, mode) {\n      var vim = cm.state.vim;\n      sel = sel || vim.sel;\n      var mode = mode ||\n        vim.visualLine ? 'line' : vim.visualBlock ? 'block' : 'char';\n      var cmSel = makeCmSelection(cm, sel, mode);\n      cm.setSelections(cmSel.ranges, cmSel.primary);\n      updateFakeCursor(cm);\n    }\n    function makeCmSelection(cm, sel, mode, exclusive) {\n      var head = copyCursor(sel.head);\n      var anchor = copyCursor(sel.anchor);\n      if (mode == 'char') {\n        var headOffset = !exclusive && !cursorIsBefore(sel.head, sel.anchor) ? 1 : 0;\n        var anchorOffset = cursorIsBefore(sel.head, sel.anchor) ? 1 : 0;\n        head = offsetCursor(sel.head, 0, headOffset);\n        anchor = offsetCursor(sel.anchor, 0, anchorOffset);\n        return {\n          ranges: [{anchor: anchor, head: head}],\n          primary: 0\n        };\n      } else if (mode == 'line') {\n        if (!cursorIsBefore(sel.head, sel.anchor)) {\n          anchor.ch = 0;\n\n          var lastLine = cm.lastLine();\n          if (head.line > lastLine) {\n            head.line = lastLine;\n          }\n          head.ch = lineLength(cm, head.line);\n        } else {\n          head.ch = 0;\n          anchor.ch = lineLength(cm, anchor.line);\n        }\n        return {\n          ranges: [{anchor: anchor, head: head}],\n          primary: 0\n        };\n      } else if (mode == 'block') {\n        var top = Math.min(anchor.line, head.line),\n            left = Math.min(anchor.ch, head.ch),\n            bottom = Math.max(anchor.line, head.line),\n            right = Math.max(anchor.ch, head.ch) + 1;\n        var height = bottom - top + 1;\n        var primary = head.line == top ? 0 : height - 1;\n        var ranges = [];\n        for (var i = 0; i < height; i++) {\n          ranges.push({\n            anchor: Pos(top + i, left),\n            head: Pos(top + i, right)\n          });\n        }\n        return {\n          ranges: ranges,\n          primary: primary\n        };\n      }\n    }\n    function getHead(cm) {\n      var cur = cm.getCursor('head');\n      if (cm.getSelection().length == 1) {\n        cur = cursorMin(cur, cm.getCursor('anchor'));\n      }\n      return cur;\n    }\n    function exitVisualMode(cm, moveHead) {\n      var vim = cm.state.vim;\n      if (moveHead !== false) {\n        cm.setCursor(clipCursorToContent(cm, vim.sel.head));\n      }\n      updateLastSelection(cm, vim);\n      vim.visualMode = false;\n      vim.visualLine = false;\n      vim.visualBlock = false;\n      CodeMirror.signal(cm, \"vim-mode-change\", {mode: \"normal\"});\n      if (vim.fakeCursor) {\n        vim.fakeCursor.clear();\n      }\n    }\n    function clipToLine(cm, curStart, curEnd) {\n      var selection = cm.getRange(curStart, curEnd);\n      if (/\\n\\s*$/.test(selection)) {\n        var lines = selection.split('\\n');\n        lines.pop();\n        var line;\n        for (var line = lines.pop(); lines.length > 0 && line && isWhiteSpaceString(line); line = lines.pop()) {\n          curEnd.line--;\n          curEnd.ch = 0;\n        }\n        if (line) {\n          curEnd.line--;\n          curEnd.ch = lineLength(cm, curEnd.line);\n        } else {\n          curEnd.ch = 0;\n        }\n      }\n    }\n    function expandSelectionToLine(_cm, curStart, curEnd) {\n      curStart.ch = 0;\n      curEnd.ch = 0;\n      curEnd.line++;\n    }\n\n    function findFirstNonWhiteSpaceCharacter(text) {\n      if (!text) {\n        return 0;\n      }\n      var firstNonWS = text.search(/\\S/);\n      return firstNonWS == -1 ? text.length : firstNonWS;\n    }\n\n    function expandWordUnderCursor(cm, inclusive, _forward, bigWord, noSymbol) {\n      var cur = getHead(cm);\n      var line = cm.getLine(cur.line);\n      var idx = cur.ch;\n      var test = noSymbol ? wordCharTest[0] : bigWordCharTest [0];\n      while (!test(line.charAt(idx))) {\n        idx++;\n        if (idx >= line.length) { return null; }\n      }\n\n      if (bigWord) {\n        test = bigWordCharTest[0];\n      } else {\n        test = wordCharTest[0];\n        if (!test(line.charAt(idx))) {\n          test = wordCharTest[1];\n        }\n      }\n\n      var end = idx, start = idx;\n      while (test(line.charAt(end)) && end < line.length) { end++; }\n      while (test(line.charAt(start)) && start >= 0) { start--; }\n      start++;\n\n      if (inclusive) {\n        var wordEnd = end;\n        while (/\\s/.test(line.charAt(end)) && end < line.length) { end++; }\n        if (wordEnd == end) {\n          var wordStart = start;\n          while (/\\s/.test(line.charAt(start - 1)) && start > 0) { start--; }\n          if (!start) { start = wordStart; }\n        }\n      }\n      return { start: Pos(cur.line, start), end: Pos(cur.line, end) };\n    }\n\n    function recordJumpPosition(cm, oldCur, newCur) {\n      if (!cursorEqual(oldCur, newCur)) {\n        vimGlobalState.jumpList.add(cm, oldCur, newCur);\n      }\n    }\n\n    function recordLastCharacterSearch(increment, args) {\n        vimGlobalState.lastChararacterSearch.increment = increment;\n        vimGlobalState.lastChararacterSearch.forward = args.forward;\n        vimGlobalState.lastChararacterSearch.selectedCharacter = args.selectedCharacter;\n    }\n\n    var symbolToMode = {\n        '(': 'bracket', ')': 'bracket', '{': 'bracket', '}': 'bracket',\n        '[': 'section', ']': 'section',\n        '*': 'comment', '/': 'comment',\n        'm': 'method', 'M': 'method',\n        '#': 'preprocess'\n    };\n    var findSymbolModes = {\n      bracket: {\n        isComplete: function(state) {\n          if (state.nextCh === state.symb) {\n            state.depth++;\n            if (state.depth >= 1)return true;\n          } else if (state.nextCh === state.reverseSymb) {\n            state.depth--;\n          }\n          return false;\n        }\n      },\n      section: {\n        init: function(state) {\n          state.curMoveThrough = true;\n          state.symb = (state.forward ? ']' : '[') === state.symb ? '{' : '}';\n        },\n        isComplete: function(state) {\n          return state.index === 0 && state.nextCh === state.symb;\n        }\n      },\n      comment: {\n        isComplete: function(state) {\n          var found = state.lastCh === '*' && state.nextCh === '/';\n          state.lastCh = state.nextCh;\n          return found;\n        }\n      },\n      method: {\n        init: function(state) {\n          state.symb = (state.symb === 'm' ? '{' : '}');\n          state.reverseSymb = state.symb === '{' ? '}' : '{';\n        },\n        isComplete: function(state) {\n          if (state.nextCh === state.symb)return true;\n          return false;\n        }\n      },\n      preprocess: {\n        init: function(state) {\n          state.index = 0;\n        },\n        isComplete: function(state) {\n          if (state.nextCh === '#') {\n            var token = state.lineText.match(/#(\\w+)/)[1];\n            if (token === 'endif') {\n              if (state.forward && state.depth === 0) {\n                return true;\n              }\n              state.depth++;\n            } else if (token === 'if') {\n              if (!state.forward && state.depth === 0) {\n                return true;\n              }\n              state.depth--;\n            }\n            if (token === 'else' && state.depth === 0)return true;\n          }\n          return false;\n        }\n      }\n    };\n    function findSymbol(cm, repeat, forward, symb) {\n      var cur = copyCursor(cm.getCursor());\n      var increment = forward ? 1 : -1;\n      var endLine = forward ? cm.lineCount() : -1;\n      var curCh = cur.ch;\n      var line = cur.line;\n      var lineText = cm.getLine(line);\n      var state = {\n        lineText: lineText,\n        nextCh: lineText.charAt(curCh),\n        lastCh: null,\n        index: curCh,\n        symb: symb,\n        reverseSymb: (forward ?  { ')': '(', '}': '{' } : { '(': ')', '{': '}' })[symb],\n        forward: forward,\n        depth: 0,\n        curMoveThrough: false\n      };\n      var mode = symbolToMode[symb];\n      if (!mode)return cur;\n      var init = findSymbolModes[mode].init;\n      var isComplete = findSymbolModes[mode].isComplete;\n      if (init) { init(state); }\n      while (line !== endLine && repeat) {\n        state.index += increment;\n        state.nextCh = state.lineText.charAt(state.index);\n        if (!state.nextCh) {\n          line += increment;\n          state.lineText = cm.getLine(line) || '';\n          if (increment > 0) {\n            state.index = 0;\n          } else {\n            var lineLen = state.lineText.length;\n            state.index = (lineLen > 0) ? (lineLen-1) : 0;\n          }\n          state.nextCh = state.lineText.charAt(state.index);\n        }\n        if (isComplete(state)) {\n          cur.line = line;\n          cur.ch = state.index;\n          repeat--;\n        }\n      }\n      if (state.nextCh || state.curMoveThrough) {\n        return Pos(line, state.index);\n      }\n      return cur;\n    }\n    function findWord(cm, cur, forward, bigWord, emptyLineIsWord) {\n      var lineNum = cur.line;\n      var pos = cur.ch;\n      var line = cm.getLine(lineNum);\n      var dir = forward ? 1 : -1;\n      var charTests = bigWord ? bigWordCharTest: wordCharTest;\n\n      if (emptyLineIsWord && line == '') {\n        lineNum += dir;\n        line = cm.getLine(lineNum);\n        if (!isLine(cm, lineNum)) {\n          return null;\n        }\n        pos = (forward) ? 0 : line.length;\n      }\n\n      while (true) {\n        if (emptyLineIsWord && line == '') {\n          return { from: 0, to: 0, line: lineNum };\n        }\n        var stop = (dir > 0) ? line.length : -1;\n        var wordStart = stop, wordEnd = stop;\n        while (pos != stop) {\n          var foundWord = false;\n          for (var i = 0; i < charTests.length && !foundWord; ++i) {\n            if (charTests[i](line.charAt(pos))) {\n              wordStart = pos;\n              while (pos != stop && charTests[i](line.charAt(pos))) {\n                pos += dir;\n              }\n              wordEnd = pos;\n              foundWord = wordStart != wordEnd;\n              if (wordStart == cur.ch && lineNum == cur.line &&\n                  wordEnd == wordStart + dir) {\n                continue;\n              } else {\n                return {\n                  from: Math.min(wordStart, wordEnd + 1),\n                  to: Math.max(wordStart, wordEnd),\n                  line: lineNum };\n              }\n            }\n          }\n          if (!foundWord) {\n            pos += dir;\n          }\n        }\n        lineNum += dir;\n        if (!isLine(cm, lineNum)) {\n          return null;\n        }\n        line = cm.getLine(lineNum);\n        pos = (dir > 0) ? 0 : line.length;\n      }\n      throw new Error('The impossible happened.');\n    }\n    function moveToWord(cm, cur, repeat, forward, wordEnd, bigWord) {\n      var curStart = copyCursor(cur);\n      var words = [];\n      if (forward && !wordEnd || !forward && wordEnd) {\n        repeat++;\n      }\n      var emptyLineIsWord = !(forward && wordEnd);\n      for (var i = 0; i < repeat; i++) {\n        var word = findWord(cm, cur, forward, bigWord, emptyLineIsWord);\n        if (!word) {\n          var eodCh = lineLength(cm, cm.lastLine());\n          words.push(forward\n              ? {line: cm.lastLine(), from: eodCh, to: eodCh}\n              : {line: 0, from: 0, to: 0});\n          break;\n        }\n        words.push(word);\n        cur = Pos(word.line, forward ? (word.to - 1) : word.from);\n      }\n      var shortCircuit = words.length != repeat;\n      var firstWord = words[0];\n      var lastWord = words.pop();\n      if (forward && !wordEnd) {\n        if (!shortCircuit && (firstWord.from != curStart.ch || firstWord.line != curStart.line)) {\n          lastWord = words.pop();\n        }\n        return Pos(lastWord.line, lastWord.from);\n      } else if (forward && wordEnd) {\n        return Pos(lastWord.line, lastWord.to - 1);\n      } else if (!forward && wordEnd) {\n        if (!shortCircuit && (firstWord.to != curStart.ch || firstWord.line != curStart.line)) {\n          lastWord = words.pop();\n        }\n        return Pos(lastWord.line, lastWord.to);\n      } else {\n        return Pos(lastWord.line, lastWord.from);\n      }\n    }\n\n    function moveToCharacter(cm, repeat, forward, character) {\n      var cur = cm.getCursor();\n      var start = cur.ch;\n      var idx;\n      for (var i = 0; i < repeat; i ++) {\n        var line = cm.getLine(cur.line);\n        idx = charIdxInLine(start, line, character, forward, true);\n        if (idx == -1) {\n          return null;\n        }\n        start = idx;\n      }\n      return Pos(cm.getCursor().line, idx);\n    }\n\n    function moveToColumn(cm, repeat) {\n      var line = cm.getCursor().line;\n      return clipCursorToContent(cm, Pos(line, repeat - 1));\n    }\n\n    function updateMark(cm, vim, markName, pos) {\n      if (!inArray(markName, validMarks)) {\n        return;\n      }\n      if (vim.marks[markName]) {\n        vim.marks[markName].clear();\n      }\n      vim.marks[markName] = cm.setBookmark(pos);\n    }\n\n    function charIdxInLine(start, line, character, forward, includeChar) {\n      var idx;\n      if (forward) {\n        idx = line.indexOf(character, start + 1);\n        if (idx != -1 && !includeChar) {\n          idx -= 1;\n        }\n      } else {\n        idx = line.lastIndexOf(character, start - 1);\n        if (idx != -1 && !includeChar) {\n          idx += 1;\n        }\n      }\n      return idx;\n    }\n\n    function findParagraph(cm, head, repeat, dir, inclusive) {\n      var line = head.line;\n      var min = cm.firstLine();\n      var max = cm.lastLine();\n      var start, end, i = line;\n      function isEmpty(i) { return !/\\S/.test(cm.getLine(i)); } // ace_patch\n      function isBoundary(i, dir, any) {\n        if (any) { return isEmpty(i) != isEmpty(i + dir); }\n        return !isEmpty(i) && isEmpty(i + dir);\n      }\n      function skipFold(i) {\n          dir = dir > 0 ? 1 : -1;\n          var foldLine = cm.ace.session.getFoldLine(i);\n          if (foldLine) {\n              if (i + dir > foldLine.start.row && i + dir < foldLine.end.row)\n                  dir = (dir > 0 ? foldLine.end.row : foldLine.start.row) - i;\n          }\n      }\n      if (dir) {\n        while (min <= i && i <= max && repeat > 0) {\n          skipFold(i);\n          if (isBoundary(i, dir)) { repeat--; }\n          i += dir;\n        }\n        return new Pos(i, 0);\n      }\n\n      var vim = cm.state.vim;\n      if (vim.visualLine && isBoundary(line, 1, true)) {\n        var anchor = vim.sel.anchor;\n        if (isBoundary(anchor.line, -1, true)) {\n          if (!inclusive || anchor.line != line) {\n            line += 1;\n          }\n        }\n      }\n      var startState = isEmpty(line);\n      for (i = line; i <= max && repeat; i++) {\n        if (isBoundary(i, 1, true)) {\n          if (!inclusive || isEmpty(i) != startState) {\n            repeat--;\n          }\n        }\n      }\n      end = new Pos(i, 0);\n      if (i > max && !startState) { startState = true; }\n      else { inclusive = false; }\n      for (i = line; i > min; i--) {\n        if (!inclusive || isEmpty(i) == startState || i == line) {\n          if (isBoundary(i, -1, true)) { break; }\n        }\n      }\n      start = new Pos(i, 0);\n      return { start: start, end: end };\n    }\n    function selectCompanionObject(cm, head, symb, inclusive) {\n      var cur = head, start, end;\n\n      var bracketRegexp = ({\n        '(': /[()]/, ')': /[()]/,\n        '[': /[[\\]]/, ']': /[[\\]]/,\n        '{': /[{}]/, '}': /[{}]/})[symb];\n      var openSym = ({\n        '(': '(', ')': '(',\n        '[': '[', ']': '[',\n        '{': '{', '}': '{'})[symb];\n      var curChar = cm.getLine(cur.line).charAt(cur.ch);\n      var offset = curChar === openSym ? 1 : 0;\n\n      start = cm.scanForBracket(Pos(cur.line, cur.ch + offset), -1, null, {'bracketRegex': bracketRegexp});\n      end = cm.scanForBracket(Pos(cur.line, cur.ch + offset), 1, null, {'bracketRegex': bracketRegexp});\n\n      if (!start || !end) {\n        return { start: cur, end: cur };\n      }\n\n      start = start.pos;\n      end = end.pos;\n\n      if ((start.line == end.line && start.ch > end.ch)\n          || (start.line > end.line)) {\n        var tmp = start;\n        start = end;\n        end = tmp;\n      }\n\n      if (inclusive) {\n        end.ch += 1;\n      } else {\n        start.ch += 1;\n      }\n\n      return { start: start, end: end };\n    }\n    function findBeginningAndEnd(cm, head, symb, inclusive) {\n      var cur = copyCursor(head);\n      var line = cm.getLine(cur.line);\n      var chars = line.split('');\n      var start, end, i, len;\n      var firstIndex = chars.indexOf(symb);\n      if (cur.ch < firstIndex) {\n        cur.ch = firstIndex;\n      }\n      else if (firstIndex < cur.ch && chars[cur.ch] == symb) {\n        end = cur.ch; // assign end to the current cursor\n        --cur.ch; // make sure to look backwards\n      }\n      if (chars[cur.ch] == symb && !end) {\n        start = cur.ch + 1; // assign start to ahead of the cursor\n      } else {\n        for (i = cur.ch; i > -1 && !start; i--) {\n          if (chars[i] == symb) {\n            start = i + 1;\n          }\n        }\n      }\n      if (start && !end) {\n        for (i = start, len = chars.length; i < len && !end; i++) {\n          if (chars[i] == symb) {\n            end = i;\n          }\n        }\n      }\n      if (!start || !end) {\n        return { start: cur, end: cur };\n      }\n      if (inclusive) {\n        --start; ++end;\n      }\n\n      return {\n        start: Pos(cur.line, start),\n        end: Pos(cur.line, end)\n      };\n    }\n    defineOption('pcre', true, 'boolean');\n    function SearchState() {}\n    SearchState.prototype = {\n      getQuery: function() {\n        return vimGlobalState.query;\n      },\n      setQuery: function(query) {\n        vimGlobalState.query = query;\n      },\n      getOverlay: function() {\n        return this.searchOverlay;\n      },\n      setOverlay: function(overlay) {\n        this.searchOverlay = overlay;\n      },\n      isReversed: function() {\n        return vimGlobalState.isReversed;\n      },\n      setReversed: function(reversed) {\n        vimGlobalState.isReversed = reversed;\n      },\n      getScrollbarAnnotate: function() {\n        return this.annotate;\n      },\n      setScrollbarAnnotate: function(annotate) {\n        this.annotate = annotate;\n      }\n    };\n    function getSearchState(cm) {\n      var vim = cm.state.vim;\n      return vim.searchState_ || (vim.searchState_ = new SearchState());\n    }\n    function dialog(cm, template, shortText, onClose, options) {\n      if (cm.openDialog) {\n        cm.openDialog(template, onClose, { bottom: true, value: options.value,\n            onKeyDown: options.onKeyDown, onKeyUp: options.onKeyUp,\n            selectValueOnOpen: false});\n      }\n      else {\n        onClose(prompt(shortText, ''));\n      }\n    }\n    function splitBySlash(argString) {\n      var slashes = findUnescapedSlashes(argString) || [];\n      if (!slashes.length) return [];\n      var tokens = [];\n      if (slashes[0] !== 0) return;\n      for (var i = 0; i < slashes.length; i++) {\n        if (typeof slashes[i] == 'number')\n          tokens.push(argString.substring(slashes[i] + 1, slashes[i+1]));\n      }\n      return tokens;\n    }\n\n    function findUnescapedSlashes(str) {\n      var escapeNextChar = false;\n      var slashes = [];\n      for (var i = 0; i < str.length; i++) {\n        var c = str.charAt(i);\n        if (!escapeNextChar && c == '/') {\n          slashes.push(i);\n        }\n        escapeNextChar = !escapeNextChar && (c == '\\\\');\n      }\n      return slashes;\n    }\n    function translateRegex(str) {\n      var specials = '|(){';\n      var unescape = '}';\n      var escapeNextChar = false;\n      var out = [];\n      for (var i = -1; i < str.length; i++) {\n        var c = str.charAt(i) || '';\n        var n = str.charAt(i+1) || '';\n        var specialComesNext = (n && specials.indexOf(n) != -1);\n        if (escapeNextChar) {\n          if (c !== '\\\\' || !specialComesNext) {\n            out.push(c);\n          }\n          escapeNextChar = false;\n        } else {\n          if (c === '\\\\') {\n            escapeNextChar = true;\n            if (n && unescape.indexOf(n) != -1) {\n              specialComesNext = true;\n            }\n            if (!specialComesNext || n === '\\\\') {\n              out.push(c);\n            }\n          } else {\n            out.push(c);\n            if (specialComesNext && n !== '\\\\') {\n              out.push('\\\\');\n            }\n          }\n        }\n      }\n      return out.join('');\n    }\n    var charUnescapes = {'\\\\n': '\\n', '\\\\r': '\\r', '\\\\t': '\\t'};\n    function translateRegexReplace(str) {\n      var escapeNextChar = false;\n      var out = [];\n      for (var i = -1; i < str.length; i++) {\n        var c = str.charAt(i) || '';\n        var n = str.charAt(i+1) || '';\n        if (charUnescapes[c + n]) {\n          out.push(charUnescapes[c+n]);\n          i++;\n        } else if (escapeNextChar) {\n          out.push(c);\n          escapeNextChar = false;\n        } else {\n          if (c === '\\\\') {\n            escapeNextChar = true;\n            if ((isNumber(n) || n === '$')) {\n              out.push('$');\n            } else if (n !== '/' && n !== '\\\\') {\n              out.push('\\\\');\n            }\n          } else {\n            if (c === '$') {\n              out.push('$');\n            }\n            out.push(c);\n            if (n === '/') {\n              out.push('\\\\');\n            }\n          }\n        }\n      }\n      return out.join('');\n    }\n    var unescapes = {'\\\\/': '/', '\\\\\\\\': '\\\\', '\\\\n': '\\n', '\\\\r': '\\r', '\\\\t': '\\t'};\n    function unescapeRegexReplace(str) {\n      var stream = new CodeMirror.StringStream(str);\n      var output = [];\n      while (!stream.eol()) {\n        while (stream.peek() && stream.peek() != '\\\\') {\n          output.push(stream.next());\n        }\n        var matched = false;\n        for (var matcher in unescapes) {\n          if (stream.match(matcher, true)) {\n            matched = true;\n            output.push(unescapes[matcher]);\n            break;\n          }\n        }\n        if (!matched) {\n          output.push(stream.next());\n        }\n      }\n      return output.join('');\n    }\n    function parseQuery(query, ignoreCase, smartCase) {\n      var lastSearchRegister = vimGlobalState.registerController.getRegister('/');\n      lastSearchRegister.setText(query);\n      if (query instanceof RegExp) { return query; }\n      var slashes = findUnescapedSlashes(query);\n      var regexPart;\n      var forceIgnoreCase;\n      if (!slashes.length) {\n        regexPart = query;\n      } else {\n        regexPart = query.substring(0, slashes[0]);\n        var flagsPart = query.substring(slashes[0]);\n        forceIgnoreCase = (flagsPart.indexOf('i') != -1);\n      }\n      if (!regexPart) {\n        return null;\n      }\n      if (!getOption('pcre')) {\n        regexPart = translateRegex(regexPart);\n      }\n      if (smartCase) {\n        ignoreCase = (/^[^A-Z]*$/).test(regexPart);\n      }\n      var regexp = new RegExp(regexPart,\n          (ignoreCase || forceIgnoreCase) ? 'i' : undefined);\n      return regexp;\n    }\n    function showConfirm(cm, text) {\n      if (cm.openNotification) {\n        cm.openNotification('<span style=\"color: red\">' + text + '</span>',\n                            {bottom: true, duration: 5000});\n      } else {\n        alert(text);\n      }\n    }\n    function makePrompt(prefix, desc) {\n      var raw = '';\n      if (prefix) {\n        raw += '<span style=\"font-family: monospace\">' + prefix + '</span>';\n      }\n      raw += '<input type=\"text\"/> ' +\n          '<span style=\"color: #888\">';\n      if (desc) {\n        raw += '<span style=\"color: #888\">';\n        raw += desc;\n        raw += '</span>';\n      }\n      return raw;\n    }\n    var searchPromptDesc = '(Javascript regexp)';\n    function showPrompt(cm, options) {\n      var shortText = (options.prefix || '') + ' ' + (options.desc || '');\n      var prompt = makePrompt(options.prefix, options.desc);\n      dialog(cm, prompt, shortText, options.onClose, options);\n    }\n    function regexEqual(r1, r2) {\n      if (r1 instanceof RegExp && r2 instanceof RegExp) {\n          var props = ['global', 'multiline', 'ignoreCase', 'source'];\n          for (var i = 0; i < props.length; i++) {\n              var prop = props[i];\n              if (r1[prop] !== r2[prop]) {\n                  return false;\n              }\n          }\n          return true;\n      }\n      return false;\n    }\n    function updateSearchQuery(cm, rawQuery, ignoreCase, smartCase) {\n      if (!rawQuery) {\n        return;\n      }\n      var state = getSearchState(cm);\n      var query = parseQuery(rawQuery, !!ignoreCase, !!smartCase);\n      if (!query) {\n        return;\n      }\n      highlightSearchMatches(cm, query);\n      if (regexEqual(query, state.getQuery())) {\n        return query;\n      }\n      state.setQuery(query);\n      return query;\n    }\n    function searchOverlay(query) {\n      if (query.source.charAt(0) == '^') {\n        var matchSol = true;\n      }\n      return {\n        token: function(stream) {\n          if (matchSol && !stream.sol()) {\n            stream.skipToEnd();\n            return;\n          }\n          var match = stream.match(query, false);\n          if (match) {\n            if (match[0].length == 0) {\n              stream.next();\n              return 'searching';\n            }\n            if (!stream.sol()) {\n              stream.backUp(1);\n              if (!query.exec(stream.next() + match[0])) {\n                stream.next();\n                return null;\n              }\n            }\n            stream.match(query);\n            return 'searching';\n          }\n          while (!stream.eol()) {\n            stream.next();\n            if (stream.match(query, false)) break;\n          }\n        },\n        query: query\n      };\n    }\n    function highlightSearchMatches(cm, query) {\n      var searchState = getSearchState(cm);\n      var overlay = searchState.getOverlay();\n      if (!overlay || query != overlay.query) {\n        if (overlay) {\n          cm.removeOverlay(overlay);\n        }\n        overlay = searchOverlay(query);\n        cm.addOverlay(overlay);\n        if (cm.showMatchesOnScrollbar) {\n          if (searchState.getScrollbarAnnotate()) {\n            searchState.getScrollbarAnnotate().clear();\n          }\n          searchState.setScrollbarAnnotate(cm.showMatchesOnScrollbar(query));\n        }\n        searchState.setOverlay(overlay);\n      }\n    }\n    function findNext(cm, prev, query, repeat) {\n      if (repeat === undefined) { repeat = 1; }\n      return cm.operation(function() {\n        var pos = cm.getCursor();\n        var cursor = cm.getSearchCursor(query, pos);\n        for (var i = 0; i < repeat; i++) {\n          var found = cursor.find(prev);\n          if (i == 0 && found && cursorEqual(cursor.from(), pos)) { found = cursor.find(prev); }\n          if (!found) {\n            cursor = cm.getSearchCursor(query,\n                (prev) ? Pos(cm.lastLine()) : Pos(cm.firstLine(), 0) );\n            if (!cursor.find(prev)) {\n              return;\n            }\n          }\n        }\n        return cursor.from();\n      });\n    }\n    function clearSearchHighlight(cm) {\n      var state = getSearchState(cm);\n      cm.removeOverlay(getSearchState(cm).getOverlay());\n      state.setOverlay(null);\n      if (state.getScrollbarAnnotate()) {\n        state.getScrollbarAnnotate().clear();\n        state.setScrollbarAnnotate(null);\n      }\n    }\n    function isInRange(pos, start, end) {\n      if (typeof pos != 'number') {\n        pos = pos.line;\n      }\n      if (start instanceof Array) {\n        return inArray(pos, start);\n      } else {\n        if (end) {\n          return (pos >= start && pos <= end);\n        } else {\n          return pos == start;\n        }\n      }\n    }\n    function getUserVisibleLines(cm) {\n      var renderer = cm.ace.renderer;\n      return {\n        top: renderer.getFirstFullyVisibleRow(),\n        bottom: renderer.getLastFullyVisibleRow()\n      }\n    }\n\n    var ExCommandDispatcher = function() {\n      this.buildCommandMap_();\n    };\n    ExCommandDispatcher.prototype = {\n      processCommand: function(cm, input, opt_params) {\n        var that = this;\n        cm.operation(function () {\n          cm.curOp.isVimOp = true;\n          that._processCommand(cm, input, opt_params);\n        });\n      },\n      _processCommand: function(cm, input, opt_params) {\n        var vim = cm.state.vim;\n        var commandHistoryRegister = vimGlobalState.registerController.getRegister(':');\n        var previousCommand = commandHistoryRegister.toString();\n        if (vim.visualMode) {\n          exitVisualMode(cm);\n        }\n        var inputStream = new CodeMirror.StringStream(input);\n        commandHistoryRegister.setText(input);\n        var params = opt_params || {};\n        params.input = input;\n        try {\n          this.parseInput_(cm, inputStream, params);\n        } catch(e) {\n          showConfirm(cm, e);\n          throw e;\n        }\n        var command;\n        var commandName;\n        if (!params.commandName) {\n          if (params.line !== undefined) {\n            commandName = 'move';\n          }\n        } else {\n          command = this.matchCommand_(params.commandName);\n          if (command) {\n            commandName = command.name;\n            if (command.excludeFromCommandHistory) {\n              commandHistoryRegister.setText(previousCommand);\n            }\n            this.parseCommandArgs_(inputStream, params, command);\n            if (command.type == 'exToKey') {\n              for (var i = 0; i < command.toKeys.length; i++) {\n                CodeMirror.Vim.handleKey(cm, command.toKeys[i], 'mapping');\n              }\n              return;\n            } else if (command.type == 'exToEx') {\n              this.processCommand(cm, command.toInput);\n              return;\n            }\n          }\n        }\n        if (!commandName) {\n          showConfirm(cm, 'Not an editor command \":' + input + '\"');\n          return;\n        }\n        try {\n          exCommands[commandName](cm, params);\n          if ((!command || !command.possiblyAsync) && params.callback) {\n            params.callback();\n          }\n        } catch(e) {\n          showConfirm(cm, e);\n          throw e;\n        }\n      },\n      parseInput_: function(cm, inputStream, result) {\n        inputStream.eatWhile(':');\n        if (inputStream.eat('%')) {\n          result.line = cm.firstLine();\n          result.lineEnd = cm.lastLine();\n        } else {\n          result.line = this.parseLineSpec_(cm, inputStream);\n          if (result.line !== undefined && inputStream.eat(',')) {\n            result.lineEnd = this.parseLineSpec_(cm, inputStream);\n          }\n        }\n        var commandMatch = inputStream.match(/^(\\w+)/);\n        if (commandMatch) {\n          result.commandName = commandMatch[1];\n        } else {\n          result.commandName = inputStream.match(/.*/)[0];\n        }\n\n        return result;\n      },\n      parseLineSpec_: function(cm, inputStream) {\n        var numberMatch = inputStream.match(/^(\\d+)/);\n        if (numberMatch) {\n          return parseInt(numberMatch[1], 10) - 1;\n        }\n        switch (inputStream.next()) {\n          case '.':\n            return cm.getCursor().line;\n          case '$':\n            return cm.lastLine();\n          case '\\'':\n            var mark = cm.state.vim.marks[inputStream.next()];\n            if (mark && mark.find()) {\n              return mark.find().line;\n            }\n            throw new Error('Mark not set');\n          default:\n            inputStream.backUp(1);\n            return undefined;\n        }\n      },\n      parseCommandArgs_: function(inputStream, params, command) {\n        if (inputStream.eol()) {\n          return;\n        }\n        params.argString = inputStream.match(/.*/)[0];\n        var delim = command.argDelimiter || /\\s+/;\n        var args = trim(params.argString).split(delim);\n        if (args.length && args[0]) {\n          params.args = args;\n        }\n      },\n      matchCommand_: function(commandName) {\n        for (var i = commandName.length; i > 0; i--) {\n          var prefix = commandName.substring(0, i);\n          if (this.commandMap_[prefix]) {\n            var command = this.commandMap_[prefix];\n            if (command.name.indexOf(commandName) === 0) {\n              return command;\n            }\n          }\n        }\n        return null;\n      },\n      buildCommandMap_: function() {\n        this.commandMap_ = {};\n        for (var i = 0; i < defaultExCommandMap.length; i++) {\n          var command = defaultExCommandMap[i];\n          var key = command.shortName || command.name;\n          this.commandMap_[key] = command;\n        }\n      },\n      map: function(lhs, rhs, ctx) {\n        if (lhs != ':' && lhs.charAt(0) == ':') {\n          if (ctx) { throw Error('Mode not supported for ex mappings'); }\n          var commandName = lhs.substring(1);\n          if (rhs != ':' && rhs.charAt(0) == ':') {\n            this.commandMap_[commandName] = {\n              name: commandName,\n              type: 'exToEx',\n              toInput: rhs.substring(1),\n              user: true\n            };\n          } else {\n            this.commandMap_[commandName] = {\n              name: commandName,\n              type: 'exToKey',\n              toKeys: rhs,\n              user: true\n            };\n          }\n        } else {\n          if (rhs != ':' && rhs.charAt(0) == ':') {\n            var mapping = {\n              keys: lhs,\n              type: 'keyToEx',\n              exArgs: { input: rhs.substring(1) },\n              user: true};\n            if (ctx) { mapping.context = ctx; }\n            defaultKeymap.unshift(mapping);\n          } else {\n            var mapping = {\n              keys: lhs,\n              type: 'keyToKey',\n              toKeys: rhs,\n              user: true\n            };\n            if (ctx) { mapping.context = ctx; }\n            defaultKeymap.unshift(mapping);\n          }\n        }\n      },\n      unmap: function(lhs, ctx) {\n        if (lhs != ':' && lhs.charAt(0) == ':') {\n          if (ctx) { throw Error('Mode not supported for ex mappings'); }\n          var commandName = lhs.substring(1);\n          if (this.commandMap_[commandName] && this.commandMap_[commandName].user) {\n            delete this.commandMap_[commandName];\n            return;\n          }\n        } else {\n          var keys = lhs;\n          for (var i = 0; i < defaultKeymap.length; i++) {\n            if (keys == defaultKeymap[i].keys\n                && defaultKeymap[i].context === ctx\n                && defaultKeymap[i].user) {\n              defaultKeymap.splice(i, 1);\n              return;\n            }\n          }\n        }\n      }\n    };\n\n    var exCommands = {\n      colorscheme: function(cm, params) {\n        if (!params.args || params.args.length < 1) {\n          showConfirm(cm, cm.getOption('theme'));\n          return;\n        }\n        cm.setOption('theme', params.args[0]);\n      },\n      map: function(cm, params, ctx) {\n        var mapArgs = params.args;\n        if (!mapArgs || mapArgs.length < 2) {\n          if (cm) {\n            showConfirm(cm, 'Invalid mapping: ' + params.input);\n          }\n          return;\n        }\n        exCommandDispatcher.map(mapArgs[0], mapArgs[1], ctx);\n      },\n      imap: function(cm, params) { this.map(cm, params, 'insert'); },\n      nmap: function(cm, params) { this.map(cm, params, 'normal'); },\n      vmap: function(cm, params) { this.map(cm, params, 'visual'); },\n      unmap: function(cm, params, ctx) {\n        var mapArgs = params.args;\n        if (!mapArgs || mapArgs.length < 1) {\n          if (cm) {\n            showConfirm(cm, 'No such mapping: ' + params.input);\n          }\n          return;\n        }\n        exCommandDispatcher.unmap(mapArgs[0], ctx);\n      },\n      move: function(cm, params) {\n        commandDispatcher.processCommand(cm, cm.state.vim, {\n            type: 'motion',\n            motion: 'moveToLineOrEdgeOfDocument',\n            motionArgs: { forward: false, explicitRepeat: true,\n              linewise: true },\n            repeatOverride: params.line+1});\n      },\n      set: function(cm, params) {\n        var setArgs = params.args;\n        var setCfg = params.setCfg || {};\n        if (!setArgs || setArgs.length < 1) {\n          if (cm) {\n            showConfirm(cm, 'Invalid mapping: ' + params.input);\n          }\n          return;\n        }\n        var expr = setArgs[0].split('=');\n        var optionName = expr[0];\n        var value = expr[1];\n        var forceGet = false;\n\n        if (optionName.charAt(optionName.length - 1) == '?') {\n          if (value) { throw Error('Trailing characters: ' + params.argString); }\n          optionName = optionName.substring(0, optionName.length - 1);\n          forceGet = true;\n        }\n        if (value === undefined && optionName.substring(0, 2) == 'no') {\n          optionName = optionName.substring(2);\n          value = false;\n        }\n\n        var optionIsBoolean = options[optionName] && options[optionName].type == 'boolean';\n        if (optionIsBoolean && value == undefined) {\n          value = true;\n        }\n        if (!optionIsBoolean && value === undefined || forceGet) {\n          var oldValue = getOption(optionName, cm, setCfg);\n          if (oldValue === true || oldValue === false) {\n            showConfirm(cm, ' ' + (oldValue ? '' : 'no') + optionName);\n          } else {\n            showConfirm(cm, '  ' + optionName + '=' + oldValue);\n          }\n        } else {\n          setOption(optionName, value, cm, setCfg);\n        }\n      },\n      setlocal: function (cm, params) {\n        params.setCfg = {scope: 'local'};\n        this.set(cm, params);\n      },\n      setglobal: function (cm, params) {\n        params.setCfg = {scope: 'global'};\n        this.set(cm, params);\n      },\n      registers: function(cm, params) {\n        var regArgs = params.args;\n        var registers = vimGlobalState.registerController.registers;\n        var regInfo = '----------Registers----------<br><br>';\n        if (!regArgs) {\n          for (var registerName in registers) {\n            var text = registers[registerName].toString();\n            if (text.length) {\n              regInfo += '\"' + registerName + '    ' + text + '<br>';\n            }\n          }\n        } else {\n          var registerName;\n          regArgs = regArgs.join('');\n          for (var i = 0; i < regArgs.length; i++) {\n            registerName = regArgs.charAt(i);\n            if (!vimGlobalState.registerController.isValidRegister(registerName)) {\n              continue;\n            }\n            var register = registers[registerName] || new Register();\n            regInfo += '\"' + registerName + '    ' + register.toString() + '<br>';\n          }\n        }\n        showConfirm(cm, regInfo);\n      },\n      sort: function(cm, params) {\n        var reverse, ignoreCase, unique, number;\n        function parseArgs() {\n          if (params.argString) {\n            var args = new CodeMirror.StringStream(params.argString);\n            if (args.eat('!')) { reverse = true; }\n            if (args.eol()) { return; }\n            if (!args.eatSpace()) { return 'Invalid arguments'; }\n            var opts = args.match(/[a-z]+/);\n            if (opts) {\n              opts = opts[0];\n              ignoreCase = opts.indexOf('i') != -1;\n              unique = opts.indexOf('u') != -1;\n              var decimal = opts.indexOf('d') != -1 && 1;\n              var hex = opts.indexOf('x') != -1 && 1;\n              var octal = opts.indexOf('o') != -1 && 1;\n              if (decimal + hex + octal > 1) { return 'Invalid arguments'; }\n              number = decimal && 'decimal' || hex && 'hex' || octal && 'octal';\n            }\n            if (args.match(/\\/.*\\//)) { return 'patterns not supported'; }\n          }\n        }\n        var err = parseArgs();\n        if (err) {\n          showConfirm(cm, err + ': ' + params.argString);\n          return;\n        }\n        var lineStart = params.line || cm.firstLine();\n        var lineEnd = params.lineEnd || params.line || cm.lastLine();\n        if (lineStart == lineEnd) { return; }\n        var curStart = Pos(lineStart, 0);\n        var curEnd = Pos(lineEnd, lineLength(cm, lineEnd));\n        var text = cm.getRange(curStart, curEnd).split('\\n');\n        var numberRegex = (number == 'decimal') ? /(-?)([\\d]+)/ :\n           (number == 'hex') ? /(-?)(?:0x)?([0-9a-f]+)/i :\n           (number == 'octal') ? /([0-7]+)/ : null;\n        var radix = (number == 'decimal') ? 10 : (number == 'hex') ? 16 : (number == 'octal') ? 8 : null;\n        var numPart = [], textPart = [];\n        if (number) {\n          for (var i = 0; i < text.length; i++) {\n            if (numberRegex.exec(text[i])) {\n              numPart.push(text[i]);\n            } else {\n              textPart.push(text[i]);\n            }\n          }\n        } else {\n          textPart = text;\n        }\n        function compareFn(a, b) {\n          if (reverse) { var tmp; tmp = a; a = b; b = tmp; }\n          if (ignoreCase) { a = a.toLowerCase(); b = b.toLowerCase(); }\n          var anum = number && numberRegex.exec(a);\n          var bnum = number && numberRegex.exec(b);\n          if (!anum) { return a < b ? -1 : 1; }\n          anum = parseInt((anum[1] + anum[2]).toLowerCase(), radix);\n          bnum = parseInt((bnum[1] + bnum[2]).toLowerCase(), radix);\n          return anum - bnum;\n        }\n        numPart.sort(compareFn);\n        textPart.sort(compareFn);\n        text = (!reverse) ? textPart.concat(numPart) : numPart.concat(textPart);\n        if (unique) { // Remove duplicate lines\n          var textOld = text;\n          var lastLine;\n          text = [];\n          for (var i = 0; i < textOld.length; i++) {\n            if (textOld[i] != lastLine) {\n              text.push(textOld[i]);\n            }\n            lastLine = textOld[i];\n          }\n        }\n        cm.replaceRange(text.join('\\n'), curStart, curEnd);\n      },\n      global: function(cm, params) {\n        var argString = params.argString;\n        if (!argString) {\n          showConfirm(cm, 'Regular Expression missing from global');\n          return;\n        }\n        var lineStart = (params.line !== undefined) ? params.line : cm.firstLine();\n        var lineEnd = params.lineEnd || params.line || cm.lastLine();\n        var tokens = splitBySlash(argString);\n        var regexPart = argString, cmd;\n        if (tokens.length) {\n          regexPart = tokens[0];\n          cmd = tokens.slice(1, tokens.length).join('/');\n        }\n        if (regexPart) {\n          try {\n           updateSearchQuery(cm, regexPart, true /** ignoreCase */,\n             true /** smartCase */);\n          } catch (e) {\n           showConfirm(cm, 'Invalid regex: ' + regexPart);\n           return;\n          }\n        }\n        var query = getSearchState(cm).getQuery();\n        var matchedLines = [], content = '';\n        for (var i = lineStart; i <= lineEnd; i++) {\n          var matched = query.test(cm.getLine(i));\n          if (matched) {\n            matchedLines.push(i+1);\n            content+= cm.getLine(i) + '<br>';\n          }\n        }\n        if (!cmd) {\n          showConfirm(cm, content);\n          return;\n        }\n        var index = 0;\n        var nextCommand = function() {\n          if (index < matchedLines.length) {\n            var command = matchedLines[index] + cmd;\n            exCommandDispatcher.processCommand(cm, command, {\n              callback: nextCommand\n            });\n          }\n          index++;\n        };\n        nextCommand();\n      },\n      substitute: function(cm, params) {\n        if (!cm.getSearchCursor) {\n          throw new Error('Search feature not available. Requires searchcursor.js or ' +\n              'any other getSearchCursor implementation.');\n        }\n        var argString = params.argString;\n        var tokens = argString ? splitBySlash(argString) : [];\n        var regexPart, replacePart = '', trailing, flagsPart, count;\n        var confirm = false; // Whether to confirm each replace.\n        var global = false; // True to replace all instances on a line, false to replace only 1.\n        if (tokens.length) {\n          regexPart = tokens[0];\n          replacePart = tokens[1];\n          if (replacePart !== undefined) {\n            if (getOption('pcre')) {\n              replacePart = unescapeRegexReplace(replacePart);\n            } else {\n              replacePart = translateRegexReplace(replacePart);\n            }\n            vimGlobalState.lastSubstituteReplacePart = replacePart;\n          }\n          trailing = tokens[2] ? tokens[2].split(' ') : [];\n        } else {\n          if (argString && argString.length) {\n            showConfirm(cm, 'Substitutions should be of the form ' +\n                ':s/pattern/replace/');\n            return;\n          }\n        }\n        if (trailing) {\n          flagsPart = trailing[0];\n          count = parseInt(trailing[1]);\n          if (flagsPart) {\n            if (flagsPart.indexOf('c') != -1) {\n              confirm = true;\n              flagsPart.replace('c', '');\n            }\n            if (flagsPart.indexOf('g') != -1) {\n              global = true;\n              flagsPart.replace('g', '');\n            }\n            regexPart = regexPart + '/' + flagsPart;\n          }\n        }\n        if (regexPart) {\n          try {\n            updateSearchQuery(cm, regexPart, true /** ignoreCase */,\n              true /** smartCase */);\n          } catch (e) {\n            showConfirm(cm, 'Invalid regex: ' + regexPart);\n            return;\n          }\n        }\n        replacePart = replacePart || vimGlobalState.lastSubstituteReplacePart;\n        if (replacePart === undefined) {\n          showConfirm(cm, 'No previous substitute regular expression');\n          return;\n        }\n        var state = getSearchState(cm);\n        var query = state.getQuery();\n        var lineStart = (params.line !== undefined) ? params.line : cm.getCursor().line;\n        var lineEnd = params.lineEnd || lineStart;\n        if (lineStart == cm.firstLine() && lineEnd == cm.lastLine()) {\n          lineEnd = Infinity;\n        }\n        if (count) {\n          lineStart = lineEnd;\n          lineEnd = lineStart + count - 1;\n        }\n        var startPos = clipCursorToContent(cm, Pos(lineStart, 0));\n        var cursor = cm.getSearchCursor(query, startPos);\n        doReplace(cm, confirm, global, lineStart, lineEnd, cursor, query, replacePart, params.callback);\n      },\n      redo: CodeMirror.commands.redo,\n      undo: CodeMirror.commands.undo,\n      write: function(cm) {\n        if (CodeMirror.commands.save) {\n          CodeMirror.commands.save(cm);\n        } else {\n          cm.save();\n        }\n      },\n      nohlsearch: function(cm) {\n        clearSearchHighlight(cm);\n      },\n      delmarks: function(cm, params) {\n        if (!params.argString || !trim(params.argString)) {\n          showConfirm(cm, 'Argument required');\n          return;\n        }\n\n        var state = cm.state.vim;\n        var stream = new CodeMirror.StringStream(trim(params.argString));\n        while (!stream.eol()) {\n          stream.eatSpace();\n          var count = stream.pos;\n\n          if (!stream.match(/[a-zA-Z]/, false)) {\n            showConfirm(cm, 'Invalid argument: ' + params.argString.substring(count));\n            return;\n          }\n\n          var sym = stream.next();\n          if (stream.match('-', true)) {\n            if (!stream.match(/[a-zA-Z]/, false)) {\n              showConfirm(cm, 'Invalid argument: ' + params.argString.substring(count));\n              return;\n            }\n\n            var startMark = sym;\n            var finishMark = stream.next();\n            if (isLowerCase(startMark) && isLowerCase(finishMark) ||\n                isUpperCase(startMark) && isUpperCase(finishMark)) {\n              var start = startMark.charCodeAt(0);\n              var finish = finishMark.charCodeAt(0);\n              if (start >= finish) {\n                showConfirm(cm, 'Invalid argument: ' + params.argString.substring(count));\n                return;\n              }\n              for (var j = 0; j <= finish - start; j++) {\n                var mark = String.fromCharCode(start + j);\n                delete state.marks[mark];\n              }\n            } else {\n              showConfirm(cm, 'Invalid argument: ' + startMark + '-');\n              return;\n            }\n          } else {\n            delete state.marks[sym];\n          }\n        }\n      }\n    };\n\n    var exCommandDispatcher = new ExCommandDispatcher();\n    function doReplace(cm, confirm, global, lineStart, lineEnd, searchCursor, query,\n        replaceWith, callback) {\n      cm.state.vim.exMode = true;\n      var done = false;\n      var lastPos = searchCursor.from();\n      function replaceAll() {\n        cm.operation(function() {\n          while (!done) {\n            replace();\n            next();\n          }\n          stop();\n        });\n      }\n      function replace() {\n        var text = cm.getRange(searchCursor.from(), searchCursor.to());\n        var newText = text.replace(query, replaceWith);\n        searchCursor.replace(newText);\n      }\n      function next() {\n        while(searchCursor.findNext() &&\n              isInRange(searchCursor.from(), lineStart, lineEnd)) {\n          if (!global && lastPos && searchCursor.from().line == lastPos.line) {\n            continue;\n          }\n          cm.scrollIntoView(searchCursor.from(), 30);\n          cm.setSelection(searchCursor.from(), searchCursor.to());\n          lastPos = searchCursor.from();\n          done = false;\n          return;\n        }\n        done = true;\n      }\n      function stop(close) {\n        if (close) { close(); }\n        cm.focus();\n        if (lastPos) {\n          cm.setCursor(lastPos);\n          var vim = cm.state.vim;\n          vim.exMode = false;\n          vim.lastHPos = vim.lastHSPos = lastPos.ch;\n        }\n        if (callback) { callback(); }\n      }\n      function onPromptKeyDown(e, _value, close) {\n        CodeMirror.e_stop(e);\n        var keyName = CodeMirror.keyName(e);\n        switch (keyName) {\n          case 'Y':\n            replace(); next(); break;\n          case 'N':\n            next(); break;\n          case 'A':\n            var savedCallback = callback;\n            callback = undefined;\n            cm.operation(replaceAll);\n            callback = savedCallback;\n            break;\n          case 'L':\n            replace();\n          case 'Q':\n          case 'Esc':\n          case 'Ctrl-C':\n          case 'Ctrl-[':\n            stop(close);\n            break;\n        }\n        if (done) { stop(close); }\n        return true;\n      }\n      next();\n      if (done) {\n        showConfirm(cm, 'No matches for ' + query.source);\n        return;\n      }\n      if (!confirm) {\n        replaceAll();\n        if (callback) { callback(); }\n        return;\n      }\n      showPrompt(cm, {\n        prefix: 'replace with <strong>' + replaceWith + '</strong> (y/n/a/q/l)',\n        onKeyDown: onPromptKeyDown\n      });\n    }\n\n    CodeMirror.keyMap.vim = {\n      attach: attachVimMap,\n      detach: detachVimMap,\n      call: cmKey\n    };\n\n    function exitInsertMode(cm) {\n      var vim = cm.state.vim;\n      var macroModeState = vimGlobalState.macroModeState;\n      var insertModeChangeRegister = vimGlobalState.registerController.getRegister('.');\n      var isPlaying = macroModeState.isPlaying;\n      var lastChange = macroModeState.lastInsertModeChanges;\n      var text = [];\n      if (!isPlaying) {\n        var selLength = lastChange.inVisualBlock ? vim.lastSelection.visualBlock.height : 1;\n        var changes = lastChange.changes;\n        var text = [];\n        var i = 0;\n        while (i < changes.length) {\n          text.push(changes[i]);\n          if (changes[i] instanceof InsertModeKey) {\n             i++;\n          } else {\n             i+= selLength;\n          }\n        }\n        lastChange.changes = text;\n        cm.off('change', onChange);\n        CodeMirror.off(cm.getInputField(), 'keydown', onKeyEventTargetKeyDown);\n      }\n      if (!isPlaying && vim.insertModeRepeat > 1) {\n        repeatLastEdit(cm, vim, vim.insertModeRepeat - 1,\n            true /** repeatForInsert */);\n        vim.lastEditInputState.repeatOverride = vim.insertModeRepeat;\n      }\n      delete vim.insertModeRepeat;\n      vim.insertMode = false;\n      cm.setCursor(cm.getCursor().line, cm.getCursor().ch-1);\n      cm.setOption('keyMap', 'vim');\n      cm.setOption('disableInput', true);\n      cm.toggleOverwrite(false); // exit replace mode if we were in it.\n      insertModeChangeRegister.setText(lastChange.changes.join(''));\n      CodeMirror.signal(cm, \"vim-mode-change\", {mode: \"normal\"});\n      if (macroModeState.isRecording) {\n        logInsertModeChange(macroModeState);\n      }\n    }\n\n    function _mapCommand(command) {\n      defaultKeymap.unshift(command);\n    }\n\n    function mapCommand(keys, type, name, args, extra) {\n      var command = {keys: keys, type: type};\n      command[type] = name;\n      command[type + \"Args\"] = args;\n      for (var key in extra)\n        command[key] = extra[key];\n      _mapCommand(command);\n    }\n    defineOption('insertModeEscKeysTimeout', 200, 'number');\n\n    CodeMirror.keyMap['vim-insert'] = {\n      'Ctrl-N': 'autocomplete',\n      'Ctrl-P': 'autocomplete',\n      'Enter': function(cm) {\n        var fn = CodeMirror.commands.newlineAndIndentContinueComment ||\n            CodeMirror.commands.newlineAndIndent;\n        fn(cm);\n      },\n      fallthrough: ['default'],\n      attach: attachVimMap,\n      detach: detachVimMap,\n      call: cmKey\n    };\n\n    CodeMirror.keyMap['vim-replace'] = {\n      'Backspace': 'goCharLeft',\n      fallthrough: ['vim-insert'],\n      attach: attachVimMap,\n      detach: detachVimMap,\n      call: cmKey\n    };\n\n    function executeMacroRegister(cm, vim, macroModeState, registerName) {\n      var register = vimGlobalState.registerController.getRegister(registerName);\n      if (registerName == ':') {\n        if (register.keyBuffer[0]) {\n          exCommandDispatcher.processCommand(cm, register.keyBuffer[0]);\n        }\n        macroModeState.isPlaying = false;\n        return;\n      }\n      var keyBuffer = register.keyBuffer;\n      var imc = 0;\n      macroModeState.isPlaying = true;\n      macroModeState.replaySearchQueries = register.searchQueries.slice(0);\n      for (var i = 0; i < keyBuffer.length; i++) {\n        var text = keyBuffer[i];\n        var match, key;\n        while (text) {\n          match = (/<\\w+-.+?>|<\\w+>|./).exec(text);\n          key = match[0];\n          text = text.substring(match.index + key.length);\n          CodeMirror.Vim.handleKey(cm, key, 'macro');\n          if (vim.insertMode) {\n            var changes = register.insertModeChanges[imc++].changes;\n            vimGlobalState.macroModeState.lastInsertModeChanges.changes =\n                changes;\n            repeatInsertModeChanges(cm, changes, 1);\n            exitInsertMode(cm);\n          }\n        }\n      }\n      macroModeState.isPlaying = false;\n    }\n\n    function logKey(macroModeState, key) {\n      if (macroModeState.isPlaying) { return; }\n      var registerName = macroModeState.latestRegister;\n      var register = vimGlobalState.registerController.getRegister(registerName);\n      if (register) {\n        register.pushText(key);\n      }\n    }\n\n    function logInsertModeChange(macroModeState) {\n      if (macroModeState.isPlaying) { return; }\n      var registerName = macroModeState.latestRegister;\n      var register = vimGlobalState.registerController.getRegister(registerName);\n      if (register && register.pushInsertModeChanges) {\n        register.pushInsertModeChanges(macroModeState.lastInsertModeChanges);\n      }\n    }\n\n    function logSearchQuery(macroModeState, query) {\n      if (macroModeState.isPlaying) { return; }\n      var registerName = macroModeState.latestRegister;\n      var register = vimGlobalState.registerController.getRegister(registerName);\n      if (register && register.pushSearchQuery) {\n        register.pushSearchQuery(query);\n      }\n    }\n    function onChange(_cm, changeObj) {\n      var macroModeState = vimGlobalState.macroModeState;\n      var lastChange = macroModeState.lastInsertModeChanges;\n      if (!macroModeState.isPlaying) {\n        while(changeObj) {\n          lastChange.expectCursorActivityForChange = true;\n          if (changeObj.origin == '+input' || changeObj.origin == 'paste'\n              || changeObj.origin === undefined /* only in testing */) {\n            var text = changeObj.text.join('\\n');\n            if (lastChange.maybeReset) {\n              lastChange.changes = [];\n              lastChange.maybeReset = false;\n            }\n            lastChange.changes.push(text);\n          }\n          changeObj = changeObj.next;\n        }\n      }\n    }\n    function onCursorActivity(cm) {\n      var vim = cm.state.vim;\n      if (vim.insertMode) {\n        var macroModeState = vimGlobalState.macroModeState;\n        if (macroModeState.isPlaying) { return; }\n        var lastChange = macroModeState.lastInsertModeChanges;\n        if (lastChange.expectCursorActivityForChange) {\n          lastChange.expectCursorActivityForChange = false;\n        } else {\n          lastChange.maybeReset = true;\n        }\n      } else if (!cm.curOp.isVimOp) {\n        handleExternalSelection(cm, vim);\n      }\n      if (vim.visualMode) {\n        updateFakeCursor(cm);\n      }\n    }\n    function updateFakeCursor(cm) {\n      var vim = cm.state.vim;\n      var from = clipCursorToContent(cm, copyCursor(vim.sel.head));\n      var to = offsetCursor(from, 0, 1);\n      if (vim.fakeCursor) {\n        vim.fakeCursor.clear();\n      }\n      vim.fakeCursor = cm.markText(from, to, {className: 'cm-animate-fat-cursor'});\n    }\n    function handleExternalSelection(cm, vim) {\n      var anchor = cm.getCursor('anchor');\n      var head = cm.getCursor('head');\n      if (vim.visualMode && !cm.somethingSelected()) {\n        exitVisualMode(cm, false);\n      } else if (!vim.visualMode && !vim.insertMode && cm.somethingSelected()) {\n        vim.visualMode = true;\n        vim.visualLine = false;\n        CodeMirror.signal(cm, \"vim-mode-change\", {mode: \"visual\"});\n      }\n      if (vim.visualMode) {\n        var headOffset = !cursorIsBefore(head, anchor) ? -1 : 0;\n        var anchorOffset = cursorIsBefore(head, anchor) ? -1 : 0;\n        head = offsetCursor(head, 0, headOffset);\n        anchor = offsetCursor(anchor, 0, anchorOffset);\n        vim.sel = {\n          anchor: anchor,\n          head: head\n        };\n        updateMark(cm, vim, '<', cursorMin(head, anchor));\n        updateMark(cm, vim, '>', cursorMax(head, anchor));\n      } else if (!vim.insertMode) {\n        vim.lastHPos = cm.getCursor().ch;\n      }\n    }\n    function InsertModeKey(keyName) {\n      this.keyName = keyName;\n    }\n    function onKeyEventTargetKeyDown(e) {\n      var macroModeState = vimGlobalState.macroModeState;\n      var lastChange = macroModeState.lastInsertModeChanges;\n      var keyName = CodeMirror.keyName(e);\n      if (!keyName) { return; }\n      function onKeyFound() {\n        if (lastChange.maybeReset) {\n          lastChange.changes = [];\n          lastChange.maybeReset = false;\n        }\n        lastChange.changes.push(new InsertModeKey(keyName));\n        return true;\n      }\n      if (keyName.indexOf('Delete') != -1 || keyName.indexOf('Backspace') != -1) {\n        CodeMirror.lookupKey(keyName, 'vim-insert', onKeyFound);\n      }\n    }\n    function repeatLastEdit(cm, vim, repeat, repeatForInsert) {\n      var macroModeState = vimGlobalState.macroModeState;\n      macroModeState.isPlaying = true;\n      var isAction = !!vim.lastEditActionCommand;\n      var cachedInputState = vim.inputState;\n      function repeatCommand() {\n        if (isAction) {\n          commandDispatcher.processAction(cm, vim, vim.lastEditActionCommand);\n        } else {\n          commandDispatcher.evalInput(cm, vim);\n        }\n      }\n      function repeatInsert(repeat) {\n        if (macroModeState.lastInsertModeChanges.changes.length > 0) {\n          repeat = !vim.lastEditActionCommand ? 1 : repeat;\n          var changeObject = macroModeState.lastInsertModeChanges;\n          repeatInsertModeChanges(cm, changeObject.changes, repeat);\n        }\n      }\n      vim.inputState = vim.lastEditInputState;\n      if (isAction && vim.lastEditActionCommand.interlaceInsertRepeat) {\n        for (var i = 0; i < repeat; i++) {\n          repeatCommand();\n          repeatInsert(1);\n        }\n      } else {\n        if (!repeatForInsert) {\n          repeatCommand();\n        }\n        repeatInsert(repeat);\n      }\n      vim.inputState = cachedInputState;\n      if (vim.insertMode && !repeatForInsert) {\n        exitInsertMode(cm);\n      }\n      macroModeState.isPlaying = false;\n    }\n\n    function repeatInsertModeChanges(cm, changes, repeat) {\n      function keyHandler(binding) {\n        if (typeof binding == 'string') {\n          CodeMirror.commands[binding](cm);\n        } else {\n          binding(cm);\n        }\n        return true;\n      }\n      var head = cm.getCursor('head');\n      var inVisualBlock = vimGlobalState.macroModeState.lastInsertModeChanges.inVisualBlock;\n      if (inVisualBlock) {\n        var vim = cm.state.vim;\n        var lastSel = vim.lastSelection;\n        var offset = getOffset(lastSel.anchor, lastSel.head);\n        selectForInsert(cm, head, offset.line + 1);\n        repeat = cm.listSelections().length;\n        cm.setCursor(head);\n      }\n      for (var i = 0; i < repeat; i++) {\n        if (inVisualBlock) {\n          cm.setCursor(offsetCursor(head, i, 0));\n        }\n        for (var j = 0; j < changes.length; j++) {\n          var change = changes[j];\n          if (change instanceof InsertModeKey) {\n            CodeMirror.lookupKey(change.keyName, 'vim-insert', keyHandler);\n          } else {\n            var cur = cm.getCursor();\n            cm.replaceRange(change, cur, cur);\n          }\n        }\n      }\n      if (inVisualBlock) {\n        cm.setCursor(offsetCursor(head, 0, 1));\n      }\n    }\n\n    resetVimGlobalState();\n  CodeMirror.Vim = Vim();\n\n  Vim = CodeMirror.Vim;\n\n  var specialKey = {'return':'CR',backspace:'BS','delete':'Del',esc:'Esc',\n    left:'Left',right:'Right',up:'Up',down:'Down',space: 'Space',\n    home:'Home',end:'End',pageup:'PageUp',pagedown:'PageDown', enter: 'CR'\n  };\n  function lookupKey(hashId, key, e) {\n    if (key.length > 1 && key[0] == \"n\") {\n      key = key.replace(\"numpad\", \"\");\n    }\n    key = specialKey[key] || key;\n    var name = '';\n    if (e.ctrlKey) { name += 'C-'; }\n    if (e.altKey) { name += 'A-'; }\n    if (e.shiftKey) { name += 'S-'; }\n\n    name += key;\n    if (name.length > 1) { name = '<' + name + '>'; }\n    return name;\n  }\n  var handleKey = Vim.handleKey.bind(Vim);\n  Vim.handleKey = function(cm, key, origin) {\n    return cm.operation(function() {\n      return handleKey(cm, key, origin);\n    }, true);\n  }\n  function cloneVimState(state) {\n    var n = new state.constructor();\n    Object.keys(state).forEach(function(key) {\n      var o = state[key];\n      if (Array.isArray(o))\n        o = o.slice();\n      else if (o && typeof o == \"object\" && o.constructor != Object)\n        o = cloneVimState(o);\n      n[key] = o;\n    });\n    if (state.sel) {\n      n.sel = {\n        head: state.sel.head && copyCursor(state.sel.head),\n        anchor: state.sel.anchor && copyCursor(state.sel.anchor)\n      };\n    }\n    return n;\n  }\n  function multiSelectHandleKey(cm, key, origin) {\n    var isHandled = false;\n    var vim = Vim.maybeInitVimState_(cm);\n    var visualBlock = vim.visualBlock || vim.wasInVisualBlock;\n    if (vim.wasInVisualBlock && !cm.ace.inMultiSelectMode) {\n      vim.wasInVisualBlock = false;\n    } else if (cm.ace.inMultiSelectMode && vim.visualBlock) {\n       vim.wasInVisualBlock = true;\n    }\n    \n    if (key == '<Esc>' && !vim.insertMode && !vim.visualMode && cm.ace.inMultiSelectMode) {\n      cm.ace.exitMultiSelectMode();\n    } else if (visualBlock || !cm.ace.inMultiSelectMode || cm.ace.inVirtualSelectionMode) {\n      isHandled = Vim.handleKey(cm, key, origin);\n    } else {\n      var old = cloneVimState(vim);\n      cm.operation(function() {\n        cm.ace.forEachSelection(function() {\n          var sel = cm.ace.selection;\n          cm.state.vim.lastHPos = sel.$desiredColumn == null ? sel.lead.column : sel.$desiredColumn;\n          var head = cm.getCursor(\"head\");\n          var anchor = cm.getCursor(\"anchor\");\n          var headOffset = !cursorIsBefore(head, anchor) ? -1 : 0;\n          var anchorOffset = cursorIsBefore(head, anchor) ? -1 : 0;\n          head = offsetCursor(head, 0, headOffset);\n          anchor = offsetCursor(anchor, 0, anchorOffset);\n          cm.state.vim.sel.head = head;\n          cm.state.vim.sel.anchor = anchor;\n          \n          isHandled = handleKey(cm, key, origin);\n          sel.$desiredColumn = cm.state.vim.lastHPos == -1 ? null : cm.state.vim.lastHPos;\n          if (cm.virtualSelectionMode()) {\n            cm.state.vim = cloneVimState(old);\n          }\n        });\n        if (cm.curOp.cursorActivity && !isHandled)\n          cm.curOp.cursorActivity = false;\n      }, true);\n    }\n    return isHandled;\n  }\n  exports.CodeMirror = CodeMirror;\n  var getVim = Vim.maybeInitVimState_;\n  exports.handler = {\n    $id: \"ace/keyboard/vim\",\n    drawCursor: function(style, pixelPos, config, sel, session) {\n      var vim = this.state.vim || {};\n      var w = config.characterWidth;\n      var h = config.lineHeight;\n      var top = pixelPos.top;\n      var left = pixelPos.left;\n      if (!vim.insertMode) {\n        var isbackwards = !sel.cursor \n            ? session.selection.isBackwards() || session.selection.isEmpty()\n            : Range.comparePoints(sel.cursor, sel.start) <= 0;\n        if (!isbackwards && left > w)\n          left -= w;\n      }     \n      if (!vim.insertMode && vim.status) {\n        h = h / 2;\n        top += h;\n      }\n      style.left = left + \"px\";\n      style.top =  top + \"px\";\n      style.width = w + \"px\";\n      style.height = h + \"px\";\n    },\n    handleKeyboard: function(data, hashId, key, keyCode, e) {\n      var editor = data.editor;\n      var cm = editor.state.cm;\n      var vim = getVim(cm);\n      if (keyCode == -1) return;\n      \n      if (key == \"c\" && hashId == 1) { // key == \"ctrl-c\"\n        if (!useragent.isMac && editor.getCopyText()) {\n          editor.once(\"copy\", function() {\n            editor.selection.clearSelection();\n          });\n          return {command: \"null\", passEvent: true};\n        }\n      } else if (!vim.insertMode) {\n        if (useragent.isMac && this.handleMacRepeat(data, hashId, key)) {\n          hashId = -1;\n          key = data.inputChar;\n        }\n      }\n      \n      if (hashId == -1 || hashId & 1 || hashId === 0 && key.length > 1) {\n        var insertMode = vim.insertMode;\n        var name = lookupKey(hashId, key, e || {});\n        if (vim.status == null)\n          vim.status = \"\";\n        var isHandled = multiSelectHandleKey(cm, name, 'user');\n        vim = getVim(cm); // may be changed by multiSelectHandleKey\n        if (isHandled && vim.status != null)\n          vim.status += name;\n        else if (vim.status == null)\n          vim.status = \"\";\n        cm._signal(\"changeStatus\");\n        if (!isHandled && (hashId != -1 || insertMode))\n          return;\n        return {command: \"null\", passEvent: !isHandled};\n      }\n    },\n    attach: function(editor) {\n      if (!editor.state) editor.state = {};\n      var cm = new CodeMirror(editor);\n      editor.state.cm = cm;\n      editor.$vimModeHandler = this;\n      CodeMirror.keyMap.vim.attach(cm);\n      getVim(cm).status = null;\n      cm.on('vim-command-done', function() {\n        if (cm.virtualSelectionMode()) return;\n        getVim(cm).status = null;\n        cm.ace._signal(\"changeStatus\");\n        cm.ace.session.markUndoGroup();\n      });\n      cm.on(\"changeStatus\", function() {\n        cm.ace.renderer.updateCursor();\n        cm.ace._signal(\"changeStatus\");\n      });\n      cm.on(\"vim-mode-change\", function() {\n        if (cm.virtualSelectionMode()) return;\n        cm.ace.renderer.setStyle(\"normal-mode\", !getVim(cm).insertMode);\n        cm._signal(\"changeStatus\");\n      });\n      cm.ace.renderer.setStyle(\"normal-mode\", !getVim(cm).insertMode);\n      editor.renderer.$cursorLayer.drawCursor = this.drawCursor.bind(cm);\n      this.updateMacCompositionHandlers(editor, true);\n    },\n    detach: function(editor) {\n      var cm = editor.state.cm;\n      CodeMirror.keyMap.vim.detach(cm);\n      cm.destroy();\n      editor.state.cm = null;\n      editor.$vimModeHandler = null;\n      editor.renderer.$cursorLayer.drawCursor = null;\n      editor.renderer.setStyle(\"normal-mode\", false);\n      this.updateMacCompositionHandlers(editor, false);\n    },\n    getStatusText: function(editor) {\n      var cm = editor.state.cm;\n      var vim = getVim(cm);\n      if (vim.insertMode)\n        return \"INSERT\";\n      var status = \"\";\n      if (vim.visualMode) {\n        status += \"VISUAL\";\n        if (vim.visualLine)\n          status += \" LINE\";\n        if (vim.visualBlock)\n          status += \" BLOCK\";\n      }\n      if (vim.status)\n        status += (status ? \" \" : \"\") + vim.status;\n      return status;\n    },\n    handleMacRepeat: function(data, hashId, key) {\n      if (hashId == -1) {\n        data.inputChar = key;\n        data.lastEvent = \"input\";\n      } else if (data.inputChar && data.$lastHash == hashId && data.$lastKey == key) {\n        if (data.lastEvent == \"input\") {\n          data.lastEvent = \"input1\";\n        } else if (data.lastEvent == \"input1\") {\n          return true;\n        }\n      } else {\n        data.$lastHash = hashId;\n        data.$lastKey = key;\n        data.lastEvent = \"keypress\";\n      }\n    },\n    updateMacCompositionHandlers: function(editor, enable) {\n      var onCompositionUpdateOverride = function(text) {\n        var cm = editor.state.cm;\n        var vim = getVim(cm);\n        if (!vim.insertMode) {\n          var el = this.textInput.getElement();\n          el.blur();\n          el.focus();\n          el.value = text;\n        } else {\n          this.onCompositionUpdateOrig(text);\n        }\n      };\n      var onCompositionStartOverride = function(text) {\n        var cm = editor.state.cm;\n        var vim = getVim(cm);\n        if (!vim.insertMode) {\n          this.onCompositionStartOrig(text);\n        }\n      };\n      if (enable) {\n        if (!editor.onCompositionUpdateOrig) {\n          editor.onCompositionUpdateOrig = editor.onCompositionUpdate;\n          editor.onCompositionUpdate = onCompositionUpdateOverride;\n          editor.onCompositionStartOrig = editor.onCompositionStart;\n          editor.onCompositionStart = onCompositionStartOverride;\n        }\n      } else {\n        if (editor.onCompositionUpdateOrig) {\n          editor.onCompositionUpdate = editor.onCompositionUpdateOrig;\n          editor.onCompositionUpdateOrig = null;\n          editor.onCompositionStart = editor.onCompositionStartOrig;\n          editor.onCompositionStartOrig = null;\n        }\n      }\n    }\n  };\n  var renderVirtualNumbers = {\n    getText: function(session, row) {\n      return (Math.abs(session.selection.lead.row - row)  || (row + 1 + (row < 9? \"\\xb7\" : \"\" ))) + \"\";\n    },\n    getWidth: function(session, lastLineNumber, config) {\n      return session.getLength().toString().length * config.characterWidth;\n    },\n    update: function(e, editor) {\n      editor.renderer.$loop.schedule(editor.renderer.CHANGE_GUTTER);\n    },\n    attach: function(editor) {\n      editor.renderer.$gutterLayer.$renderer = this;\n      editor.on(\"changeSelection\", this.update);\n    },\n    detach: function(editor) {\n      editor.renderer.$gutterLayer.$renderer = null;\n      editor.off(\"changeSelection\", this.update);\n    }\n  };\n  Vim.defineOption({\n    name: \"wrap\",\n    set: function(value, cm) {\n      if (cm) {cm.ace.setOption(\"wrap\", value)}\n    },\n    type: \"boolean\"\n  }, false);\n  Vim.defineEx('write', 'w', function() {\n    console.log(':write is not implemented')\n  });\n  defaultKeymap.push(\n    { keys: 'zc', type: 'action', action: 'fold', actionArgs: { open: false } },\n    { keys: 'zC', type: 'action', action: 'fold', actionArgs: { open: false, all: true } },\n    { keys: 'zo', type: 'action', action: 'fold', actionArgs: { open: true } },\n    { keys: 'zO', type: 'action', action: 'fold', actionArgs: { open: true, all: true } },\n    { keys: 'za', type: 'action', action: 'fold', actionArgs: { toggle: true } },\n    { keys: 'zA', type: 'action', action: 'fold', actionArgs: { toggle: true, all: true } },\n    { keys: 'zf', type: 'action', action: 'fold', actionArgs: { open: true, all: true } },\n    { keys: 'zd', type: 'action', action: 'fold', actionArgs: { open: true, all: true } },\n    \n    { keys: '<C-A-k>', type: 'action', action: 'aceCommand', actionArgs: { name: \"addCursorAbove\" } },\n    { keys: '<C-A-j>', type: 'action', action: 'aceCommand', actionArgs: { name: \"addCursorBelow\" } },\n    { keys: '<C-A-S-k>', type: 'action', action: 'aceCommand', actionArgs: { name: \"addCursorAboveSkipCurrent\" } },\n    { keys: '<C-A-S-j>', type: 'action', action: 'aceCommand', actionArgs: { name: \"addCursorBelowSkipCurrent\" } },\n    { keys: '<C-A-h>', type: 'action', action: 'aceCommand', actionArgs: { name: \"selectMoreBefore\" } },\n    { keys: '<C-A-l>', type: 'action', action: 'aceCommand', actionArgs: { name: \"selectMoreAfter\" } },\n    { keys: '<C-A-S-h>', type: 'action', action: 'aceCommand', actionArgs: { name: \"selectNextBefore\" } },\n    { keys: '<C-A-S-l>', type: 'action', action: 'aceCommand', actionArgs: { name: \"selectNextAfter\" } }\n  );\n  actions.aceCommand = function(cm, actionArgs, vim) {\n    cm.vimCmd = actionArgs;\n    if (cm.ace.inVirtualSelectionMode)\n      cm.ace.on(\"beforeEndOperation\", delayedExecAceCommand);\n    else\n      delayedExecAceCommand(null, cm.ace);\n  };\n  function delayedExecAceCommand(op, ace) {\n    ace.off(\"beforeEndOperation\", delayedExecAceCommand);\n    var cmd = ace.state.cm.vimCmd;\n    if (cmd) {\n      ace.execCommand(cmd.exec ? cmd : cmd.name, cmd.args);\n    }\n    ace.curOp = ace.prevOp;\n  }\n  actions.fold = function(cm, actionArgs, vim) {\n    cm.ace.execCommand(['toggleFoldWidget', 'toggleFoldWidget', 'foldOther', 'unfoldall'\n      ][(actionArgs.all ? 2 : 0) + (actionArgs.open ? 1 : 0)]);\n  };\n\n  exports.handler.defaultKeymap = defaultKeymap;\n  exports.handler.actions = actions;\n  exports.Vim = Vim;\n  \n  Vim.map(\"Y\", \"yy\", \"normal\");\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-abap.js",
    "content": "ace.define(\"ace/mode/abap_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar AbapHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\": \"this\",\n        \"keyword\": \n            \"ADD ALIAS ALIASES ASCENDING ASSERT ASSIGN ASSIGNING AT BACK\" +\n            \" CALL CASE CATCH CHECK CLASS CLEAR CLOSE CNT COLLECT COMMIT COMMUNICATION COMPUTE CONCATENATE CONDENSE CONSTANTS CONTINUE CONTROLS CONVERT CREATE CURRENCY\" +\n            \" DATA DEFINE DEFINITION DEFERRED DELETE DESCENDING DESCRIBE DETAIL DIVIDE DO\" +\n            \" ELSE ELSEIF ENDAT ENDCASE ENDCLASS ENDDO ENDEXEC ENDFORM ENDFUNCTION ENDIF ENDIFEND ENDINTERFACE ENDLOOP ENDMETHOD ENDMODULE ENDON ENDPROVIDE ENDSELECT ENDTRY ENDWHILE EVENT EVENTS EXEC EXIT EXPORT EXPORTING EXTRACT\" +\n            \" FETCH FIELDS FORM FORMAT FREE FROM FUNCTION\" +\n            \" GENERATE GET\" +\n            \" HIDE\" +\n            \" IF IMPORT IMPORTING INDEX INFOTYPES INITIALIZATION INTERFACE INTERFACES INPUT INSERT IMPLEMENTATION\" +\n            \" LEAVE LIKE LINE LOAD LOCAL LOOP\" +\n            \" MESSAGE METHOD METHODS MODIFY MODULE MOVE MULTIPLY\" +\n            \" ON OVERLAY OPTIONAL OTHERS\" +\n            \" PACK PARAMETERS PERFORM POSITION PROGRAM PROVIDE PUT\" +\n            \" RAISE RANGES READ RECEIVE RECEIVING REDEFINITION REFERENCE REFRESH REJECT REPLACE REPORT RESERVE RESTORE RETURN RETURNING ROLLBACK\" +\n            \" SCAN SCROLL SEARCH SELECT SET SHIFT SKIP SORT SORTED SPLIT STANDARD STATICS STEP STOP SUBMIT SUBTRACT SUM SUMMARY SUPPRESS\" +\n            \" TABLES TIMES TRANSFER TRANSLATE TRY TYPE TYPES\" +\n            \" UNASSIGN ULINE UNPACK UPDATE\" +\n            \" WHEN WHILE WINDOW WRITE\" +\n            \" OCCURS STRUCTURE OBJECT PROPERTY\" +\n            \" CASTING APPEND RAISING VALUE COLOR\" +\n            \" CHANGING EXCEPTION EXCEPTIONS DEFAULT CHECKBOX COMMENT\" +\n            \" ID NUMBER FOR TITLE OUTPUT\" +\n            \" WITH EXIT USING\" +\n            \" INTO WHERE GROUP BY HAVING ORDER BY SINGLE\" +\n            \" APPENDING CORRESPONDING FIELDS OF TABLE\" +\n            \" LEFT RIGHT OUTER INNER JOIN AS CLIENT SPECIFIED BYPASSING BUFFER UP TO ROWS CONNECTING\" +\n            \" EQ NE LT LE GT GE NOT AND OR XOR IN LIKE BETWEEN\",\n        \"constant.language\": \n            \"TRUE FALSE NULL SPACE\",\n        \"support.type\": \n            \"c n i p f d t x string xstring decfloat16 decfloat34\",\n        \"keyword.operator\":\n            \"abs sign ceil floor trunc frac acos asin atan cos sin tan\" +\n            \" abapOperator cosh sinh tanh exp log log10 sqrt\" +\n            \" strlen xstrlen charlen numofchar dbmaxlen lines\" \n    }, \"text\", true, \" \");\n\n    var compoundKeywords = \"WITH\\\\W+(?:HEADER\\\\W+LINE|FRAME|KEY)|NO\\\\W+STANDARD\\\\W+PAGE\\\\W+HEADING|\"+\n        \"EXIT\\\\W+FROM\\\\W+STEP\\\\W+LOOP|BEGIN\\\\W+OF\\\\W+(?:BLOCK|LINE)|BEGIN\\\\W+OF|\"+\n        \"END\\\\W+OF\\\\W+(?:BLOCK|LINE)|END\\\\W+OF|NO\\\\W+INTERVALS|\"+\n        \"RESPECTING\\\\W+BLANKS|SEPARATED\\\\W+BY|USING\\\\W+(?:EDIT\\\\W+MASK)|\"+\n        \"WHERE\\\\W+(?:LINE)|RADIOBUTTON\\\\W+GROUP|REF\\\\W+TO|\"+\n        \"(?:PUBLIC|PRIVATE|PROTECTED)(?:\\\\W+SECTION)?|DELETING\\\\W+(?:TRAILING|LEADING)\"+\n        \"(?:ALL\\\\W+OCCURRENCES)|(?:FIRST|LAST)\\\\W+OCCURRENCE|INHERITING\\\\W+FROM|\"+\n        \"LINE-COUNT|ADD-CORRESPONDING|AUTHORITY-CHECK|BREAK-POINT|CLASS-DATA|CLASS-METHODS|\"+\n        \"CLASS-METHOD|DIVIDE-CORRESPONDING|EDITOR-CALL|END-OF-DEFINITION|END-OF-PAGE|END-OF-SELECTION|\"+\n        \"FIELD-GROUPS|FIELD-SYMBOLS|FUNCTION-POOL|MOVE-CORRESPONDING|MULTIPLY-CORRESPONDING|NEW-LINE|\"+\n        \"NEW-PAGE|NEW-SECTION|PRINT-CONTROL|RP-PROVIDE-FROM-LAST|SELECT-OPTIONS|SELECTION-SCREEN|\"+\n        \"START-OF-SELECTION|SUBTRACT-CORRESPONDING|SYNTAX-CHECK|SYNTAX-TRACE|TOP-OF-PAGE|TYPE-POOL|\"+\n        \"TYPE-POOLS|LINE-SIZE|LINE-COUNT|MESSAGE-ID|DISPLAY-MODE|READ(?:-ONLY)?|\"+\n        \"IS\\\\W+(?:NOT\\\\W+)?(?:ASSIGNED|BOUND|INITIAL|SUPPLIED)\";\n     \n    this.$rules = {\n        \"start\" : [\n            {token : \"string\", regex : \"`\", next  : \"string\"},\n            {token : \"string\", regex : \"'\", next  : \"qstring\"},\n            {token : \"doc.comment\", regex : /^\\*.+/},\n            {token : \"comment\",  regex : /\".+$/},\n            {token : \"invalid\", regex: \"\\\\.{2,}\"},\n            {token : \"keyword.operator\", regex: /\\W[\\-+%=<>*]\\W|\\*\\*|[~:,\\.&$]|->*?|=>/},\n            {token : \"paren.lparen\", regex : \"[\\\\[({]\"},\n            {token : \"paren.rparen\", regex : \"[\\\\])}]\"},\n            {token : \"constant.numeric\", regex: \"[+-]?\\\\d+\\\\b\"},\n            {token : \"variable.parameter\", regex : /sy|pa?\\d\\d\\d\\d\\|t\\d\\d\\d\\.|innnn/}, \n            {token : \"keyword\", regex : compoundKeywords}, \n            {token : \"variable.parameter\", regex : /\\w+-\\w+(?:-\\w+)*/}, \n            {token : keywordMapper, regex : \"\\\\b\\\\w+\\\\b\"},\n            {caseInsensitive: true}\n        ],\n        \"qstring\" : [\n            {token : \"constant.language.escape\",   regex : \"''\"},\n            {token : \"string\", regex : \"'\",     next  : \"start\"},\n            {defaultToken : \"string\"}\n        ],\n        \"string\" : [\n            {token : \"constant.language.escape\",   regex : \"``\"},\n            {token : \"string\", regex : \"`\",     next  : \"start\"},\n            {defaultToken : \"string\"}\n        ]\n    };\n};\noop.inherits(AbapHighlightRules, TextHighlightRules);\n\nexports.AbapHighlightRules = AbapHighlightRules;\n});\n\nace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var range = this.indentationBlock(session, row);\n        if (range)\n            return range;\n\n        var re = /\\S/;\n        var line = session.getLine(row);\n        var startLevel = line.search(re);\n        if (startLevel == -1 || line[startLevel] != \"#\")\n            return;\n\n        var startColumn = line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var level = line.search(re);\n\n            if (level == -1)\n                continue;\n\n            if (line[level] != \"#\")\n                break;\n\n            endRow = row;\n        }\n\n        if (endRow > startRow) {\n            var endColumn = session.getLine(endRow).length;\n            return new Range(startRow, startColumn, endRow, endColumn);\n        }\n    };\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var indent = line.search(/\\S/);\n        var next = session.getLine(row + 1);\n        var prev = session.getLine(row - 1);\n        var prevIndent = prev.search(/\\S/);\n        var nextIndent = next.search(/\\S/);\n\n        if (indent == -1) {\n            session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n            return \"\";\n        }\n        if (prevIndent == -1) {\n            if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n                session.foldWidgets[row - 1] = \"\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"start\";\n            }\n        } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n            if (session.getLine(row - 2).search(/\\S/) == -1) {\n                session.foldWidgets[row - 1] = \"start\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"\";\n            }\n        }\n\n        if (prevIndent!= -1 && prevIndent < indent)\n            session.foldWidgets[row - 1] = \"start\";\n        else\n            session.foldWidgets[row - 1] = \"\";\n\n        if (indent < nextIndent)\n            return \"start\";\n        else\n            return \"\";\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/abap\",[\"require\",\"exports\",\"module\",\"ace/mode/abap_highlight_rules\",\"ace/mode/folding/coffee\",\"ace/range\",\"ace/mode/text\",\"ace/lib/oop\"], function(require, exports, module) {\n\"use strict\";\n\nvar Rules = require(\"./abap_highlight_rules\").AbapHighlightRules;\nvar FoldMode = require(\"./folding/coffee\").FoldMode;\nvar Range = require(\"../range\").Range;\nvar TextMode = require(\"./text\").Mode;\nvar oop = require(\"../lib/oop\");\n\nfunction Mode() {\n    this.HighlightRules = Rules;\n    this.foldingRules = new FoldMode();\n}\n\noop.inherits(Mode, TextMode);\n\n(function() {\n    \n    this.lineCommentStart = '\"'\n    \n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        return indent;\n    };    \n    \n    this.$id = \"ace/mode/abap\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-abc.js",
    "content": "ace.define(\"ace/mode/abc_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function (require, exports, module) {\n    \"use strict\";\n\n    var oop = require(\"../lib/oop\");\n    var TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\n    var ABCHighlightRules = function () {\n\n        this.$rules = {\n            start: [\n                {\n                    token: ['zupfnoter.information.comment.line.percentage', 'information.keyword', 'in formation.keyword.embedded'],\n                    regex: '(%%%%)(hn\\\\.[a-z]*)(.*)',\n                    comment: 'Instruction Comment'\n                },\n                {\n                    token: ['information.comment.line.percentage', 'information.keyword.embedded'],\n                    regex: '(%%)(.*)',\n                    comment: 'Instruction Comment'\n                },\n\n                {\n                    token: 'comment.line.percentage',\n                    regex: '%.*',\n                    comment: 'Comments'\n                },\n\n                {\n                    token: 'barline.keyword.operator',\n                    regex: '[\\\\[:]*[|:][|\\\\]:]*(?:\\\\[?[0-9]+)?|\\\\[[0-9]+',\n                    comment: 'Bar lines'\n                },\n                {\n                    token: ['information.keyword.embedded', 'information.argument.string.unquoted'],\n                    regex: '(\\\\[[A-Za-z]:)([^\\\\]]*\\\\])',\n                    comment: 'embedded Header lines'\n                },\n                {\n                    token: ['information.keyword', 'information.argument.string.unquoted'],\n                    regex: '^([A-Za-z]:)([^%\\\\\\\\]*)',\n                    comment: 'Header lines'\n                },\n                {\n                    token: ['text', 'entity.name.function', 'string.unquoted', 'text'],\n                    regex: '(\\\\[)([A-Z]:)(.*?)(\\\\])',\n                    comment: 'Inline fields'\n                },\n                {\n                    token: ['accent.constant.language', 'pitch.constant.numeric', 'duration.constant.numeric'],\n                    regex: '([\\\\^=_]*)([A-Ga-gz][,\\']*)([0-9]*/*[><0-9]*)',\n                    comment: 'Notes'\n                },\n                {\n                    token: 'zupfnoter.jumptarget.string.quoted',\n                    regex: '[\\\\\"!]\\\\^\\\\:.*?[\\\\\"!]',\n                    comment: 'Zupfnoter jumptarget'\n                }, {\n                    token: 'zupfnoter.goto.string.quoted',\n                    regex: '[\\\\\"!]\\\\^\\\\@.*?[\\\\\"!]',\n                    comment: 'Zupfnoter goto'\n                },\n                {\n                    token: 'zupfnoter.annotation.string.quoted',\n                    regex: '[\\\\\"!]\\\\^\\\\!.*?[\\\\\"!]',\n                    comment: 'Zupfnoter annoation'\n                },\n                {\n                    token: 'zupfnoter.annotationref.string.quoted',\n                    regex: '[\\\\\"!]\\\\^\\\\#.*?[\\\\\"!]',\n                    comment: 'Zupfnoter annotation reference'\n                },\n                {\n                    token: 'chordname.string.quoted',\n                    regex: '[\\\\\"!]\\\\^.*?[\\\\\"!]',\n                    comment: 'abc chord'\n                },\n                {\n                    token: 'string.quoted',\n                    regex: '[\\\\\"!].*?[\\\\\"!]',\n                    comment: 'abc annotation'\n                }\n\n            ]\n        };\n\n        this.normalizeRules();\n    };\n\n    ABCHighlightRules.metaData = {\n        fileTypes: ['abc'],\n        name: 'ABC',\n        scopeName: 'text.abcnotation'\n    };\n\n\n    oop.inherits(ABCHighlightRules, TextHighlightRules);\n\n    exports.ABCHighlightRules = ABCHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/abc\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/abc_highlight_rules\",\"ace/mode/folding/cstyle\"], function (require, exports, module) {\n    \"use strict\";\n\n    var oop = require(\"../lib/oop\");\n    var TextMode = require(\"./text\").Mode;\n    var ABCHighlightRules = require(\"./abc_highlight_rules\").ABCHighlightRules;\n    var FoldMode = require(\"./folding/cstyle\").FoldMode;\n\n    var Mode = function () {\n        this.HighlightRules = ABCHighlightRules;\n        this.foldingRules = new FoldMode();\n        this.$behaviour = this.$defaultBehaviour;\n    };\n    oop.inherits(Mode, TextMode);\n\n    (function () {\n        this.$id = \"ace/mode/abc\"\n    }).call(Mode.prototype);\n\n    exports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-actionscript.js",
    "content": "ace.define(\"ace/mode/actionscript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar ActionScriptHighlightRules = function() {\n\n    this.$rules = { start: \n       [ { token: 'support.class.actionscript.2',\n           regex: '\\\\b(?:R(?:ecordset|DBMSResolver|adioButton(?:Group)?)|X(?:ML(?:Socket|Node|Connector)?|UpdateResolverDataHolder)|M(?:M(?:Save|Execute)|icrophoneMicrophone|o(?:use|vieClip(?:Loader)?)|e(?:nu(?:Bar)?|dia(?:Controller|Display|Playback))|ath)|B(?:yName|inding|utton)|S(?:haredObject|ystem|crollPane|t(?:yleSheet|age|ream)|ound|e(?:ndEvent|rviceObject)|OAPCall|lide)|N(?:umericStepper|et(?:stream|S(?:tream|ervices)|Connection|Debug(?:Config)?))|C(?:heckBox|o(?:ntextMenu(?:Item)?|okie|lor|m(?:ponentMixins|boBox))|ustomActions|lient|amera)|T(?:ypedValue|ext(?:Snapshot|Input|F(?:ield|ormat)|Area)|ree|AB)|Object|D(?:ownload|elta(?:Item|Packet)?|at(?:e(?:Chooser|Field)?|a(?:G(?:lue|rid)|Set|Type)))|U(?:RL|TC|IScrollBar)|P(?:opUpManager|endingCall|r(?:intJob|o(?:duct|gressBar)))|E(?:ndPoint|rror)|Video|Key|F(?:RadioButton|GridColumn|MessageBox|BarChart|S(?:croll(?:Bar|Pane)|tyleFormat|plitView)|orm|C(?:heckbox|omboBox|alendar)|unction|T(?:icker|ooltip(?:Lite)?|ree(?:Node)?)|IconButton|D(?:ataGrid|raggablePane)|P(?:ieChart|ushButton|ro(?:gressBar|mptBox))|L(?:i(?:stBox|neChart)|oadingBox)|AdvancedMessageBox)|W(?:indow|SDLURL|ebService(?:Connector)?)|L(?:ist|o(?:calConnection|ad(?:er|Vars)|g)|a(?:unch|bel))|A(?:sBroadcaster|cc(?:ordion|essibility)|S(?:Set(?:Native|PropFlags)|N(?:ew|ative)|C(?:onstructor|lamp(?:2)?)|InstanceOf)|pplication|lert|rray))\\\\b' },\n         { token: 'support.function.actionscript.2',\n           regex: '\\\\b(?:s(?:h(?:ift|ow(?:GridLines|Menu|Border|Settings|Headers|ColumnHeaders|Today|Preferences)?|ad(?:ow|ePane))|c(?:hema|ale(?:X|Mode|Y|Content)|r(?:oll(?:Track|Drag)?|een(?:Resolution|Color|DPI)))|t(?:yleSheet|op(?:Drag|A(?:nimation|llSounds|gent))?|epSize|a(?:tus|rt(?:Drag|A(?:nimation|gent))?))|i(?:n|ze|lence(?:TimeOut|Level))|o(?:ngname|urce|rt(?:Items(?:By)?|On(?:HeaderRelease)?|able(?:Columns)?)?)|u(?:ppressInvalidCalls|bstr(?:ing)?)|p(?:li(?:ce|t)|aceCol(?:umnsEqually|lumnsEqually))|e(?:nd(?:DefaultPushButtonEvent|AndLoad)?|curity|t(?:R(?:GB|o(?:otNode|w(?:Height|Count))|esizable(?:Columns)?|a(?:nge|te))|G(?:ain|roupName)|X(?:AxisTitle)?|M(?:i(?:n(?:imum|utes)|lliseconds)|o(?:nth(?:Names)?|tionLevel|de)|ultilineMode|e(?:ssage|nu(?:ItemEnabled(?:At)?|EnabledAt)|dia)|a(?:sk|ximum))|B(?:u(?:tton(?:s|Width)|fferTime)|a(?:seTabIndex|ndwidthLimit|ckground))|S(?:howAsDisabled|croll(?:ing|Speed|Content|Target|P(?:osition|roperties)|barState|Location)|t(?:yle(?:Property)?|opOnFocus|at(?:us|e))|i(?:ze|lenceLevel)|ort(?:able(?:Columns)?|Function)|p(?:litterBarPosition|acing)|e(?:conds|lect(?:Multiple|ion(?:Required|Type)?|Style|Color|ed(?:Node(?:s)?|Cell|I(?:nd(?:ices|ex)|tem(?:s)?))?|able))|kin|m(?:oothness|allScroll))|H(?:ighlight(?:s|Color)|Scroll|o(?:urs|rizontal)|eader(?:Symbol|Height|Text|Property|Format|Width|Location)?|as(?:Shader|CloseBox))|Y(?:ear|AxisTitle)?|N(?:ode(?:Properties|ExpansionHandler)|ewTextFormat)|C(?:h(?:ildNodes|a(?:ngeHandler|rt(?:Title|EventHandler)))|o(?:ntent(?:Size)?|okie|lumns)|ell(?:Symbol|Data)|l(?:i(?:ckHandler|pboard)|oseHandler)|redentials)|T(?:ype(?:dVaule)?|i(?:tle(?:barHeight)?|p(?:Target|Offset)?|me(?:out(?:Handler)?)?)|oggle|extFormat|ransform)|I(?:s(?:Branch|Open)|n(?:terval|putProperty)|con(?:SymbolName)?|te(?:rator|m(?:ByKey|Symbol)))|Orientation|D(?:i(?:splay(?:Range|Graphics|Mode|Clip|Text|edMonth)|rection)|uration|e(?:pth(?:Below|To|Above)|fault(?:GatewayURL|Mappings|NodeIconSymbolName)|l(?:iveryMode|ay)|bug(?:ID)?)|a(?:yOfWeekNames|t(?:e(?:Filter)?|a(?:Mapping(?:s)?|Item(?:Text|Property|Format)|Provider|All(?:Height|Property|Format|Width))?))|ra(?:wConnectors|gContent))|U(?:se(?:Shadow|HandCursor|EchoSuppression|rInput|Fade)|TC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear))|P(?:osition|ercentComplete|an(?:e(?:M(?:inimumSize|aximumSize)|Size|Title))?|ro(?:pert(?:y(?:Data)?|iesAt)|gress))|E(?:nabled|dit(?:Handler|able)|xpand(?:NodeTrigger|erSymbolName))|V(?:Scroll|olume|alue(?:Source)?)|KeyFrameInterval|Quality|F(?:i(?:eld|rst(?:DayOfWeek|VisibleNode))|ocus|ullYear|ps|ade(?:InLength|OutLength)|rame(?:Color|Width))|Width|L(?:ine(?:Color|Weight)|o(?:opback|adTarget)|a(?:rgeScroll|bel(?:Source|Placement)?))|A(?:s(?:Boolean|String|Number)|n(?:yTypedValue|imation)|ctiv(?:e(?:State(?:Handler)?|Handler)|ateHandler)|utoH(?:ideScrollBar|eight)))?|paratorBefore|ek|lect(?:ion(?:Disabled|Unfocused)?|ed(?:Node(?:s)?|Child|I(?:nd(?:ices|ex)|tem(?:s)?)|Dat(?:e|a))?|able(?:Ranges)?)|rver(?:String)?)|kip|qrt|wapDepths|lice|aveToSharedObj|moothing)|h(?:scroll(?:Policy)?|tml(?:Text)?|i(?:t(?:Test(?:TextNearPos)?|Area)|de(?:BuiltInItems|Child)?|ghlight(?:2D|3D)?)|orizontal|e(?:ight|ader(?:Re(?:nderer|lease)|Height|Text))|P(?:osition|ageScrollSize)|a(?:s(?:childNodes|MP3|S(?:creen(?:Broadcast|Playback)|treaming(?:Video|Audio)|ort)|Next|OwnProperty|Pr(?:inting|evious)|EmbeddedVideo|VideoEncoder|A(?:ccesibility|udio(?:Encoder)?))|ndlerName)|LineScrollSize)|ye(?:sLabel|ar)|n(?:o(?:t|de(?:Name|Close|Type|Open|Value)|Label)|u(?:llValue|mChild(?:S(?:creens|lides)|ren|Forms))|e(?:w(?:Item|line|Value|LocationDialog)|xt(?:S(?:cene|ibling|lide)|TabIndex|Value|Frame)?)?|ame(?:s)?)|c(?:h(?:ildNodes|eck|a(?:nge(?:sPending)?|r(?:CodeAt|At))|r)|o(?:s|n(?:st(?:ant|ructor)|nect|c(?:urrency|at)|t(?:ent(?:Type|Path)?|ains|rol(?:Placement|lerPolicy))|denseWhite|version)|py|l(?:or|umn(?:Stretch|Name(?:s)?|Count))|m(?:p(?:onent|lete)|ment))|u(?:stomItems|ePoint(?:s)?|r(?:veTo|Value|rent(?:Slide|ChildSlide|Item|F(?:ocused(?:S(?:creen|lide)|Form)|ps))))|e(?:il|ll(?:Renderer|Press|Edit|Focus(?:In|Out)))|l(?:i(?:ck|ents)|o(?:se(?:Button|Pane)?|ne(?:Node)?)|ear(?:S(?:haredObjects|treams)|Timeout|Interval)?)|a(?:ncelLabel|tch|p(?:tion|abilities)|l(?:cFields|l(?:e(?:e|r))?))|reate(?:GatewayConnection|Menu|Se(?:rver|gment)|C(?:hild(?:AtDepth)?|l(?:ient|ass(?:ChildAtDepth|Object(?:AtDepth)?))|all)|Text(?:Node|Field)|Item|Object(?:AtDepth)?|PopUp|E(?:lement|mptyMovieClip)))|t(?:h(?:is|row)|ype(?:of|Name)?|i(?:tle(?:StyleDeclaration)?|me(?:out)?)|o(?:talTime|String|olTipText|p|UpperCase|ggle(?:HighQuality)?|Lo(?:caleString|werCase))|e(?:st|llTarget|xt(?:RightMargin|Bold|S(?:ize|elected)|Height|Color|I(?:ndent|talic)|Disabled|Underline|F(?:ield|ont)|Width|LeftMargin|Align)?)|a(?:n|rget(?:Path)?|b(?:Stops|Children|Index|Enabled|leName))|r(?:y|igger|ac(?:e|k(?:AsMenu)?)))|i(?:s(?:Running|Branch|NaN|Con(?:soleOpen|nected)|Toggled|Installed|Open|D(?:own|ebugger)|P(?:urchased|ro(?:totypeOf|pertyEnumerable))|Empty|F(?:inite|ullyPopulated)|Local|Active)|n(?:s(?:tall|ertBefore)|cludeDeltaPacketInfo|t|it(?:ialize|Component|Pod|A(?:pplication|gent))?|de(?:nt|terminate|x(?:InParent(?:Slide|Form)?|Of)?)|put|validate|finity|LocalInternetCache)?|con(?:F(?:ield|unction))?|t(?:e(?:ratorScrolled|m(?:s|RollO(?:ut|ver)|ClassName))|alic)|d3|p|fFrameLoaded|gnore(?:Case|White))|o(?:s|n(?:R(?:ollO(?:ut|ver)|e(?:s(?:ize|ult)|l(?:ease(?:Outside)?|aseOutside)))|XML|Mouse(?:Move|Down|Up|Wheel)|S(?:ync|croller|tatus|oundComplete|e(?:tFocus|lect(?:edItem)?))|N(?:oticeEvent|etworkChange)|C(?:hanged|onnect|l(?:ipEvent|ose))|ID3|D(?:isconnect|eactivate|ata|ragO(?:ut|ver))|Un(?:install|load)|P(?:aymentResult|ress)|EnterFrame|K(?:illFocus|ey(?:Down|Up))|Fault|Lo(?:ad|g)|A(?:ctiv(?:ity|ate)|ppSt(?:op|art)))?|pe(?:n|ration)|verLayChildren|kLabel|ldValue|r(?:d)?)|d(?:i(?:s(?:connect|play(?:Normal|ed(?:Month|Year)|Full)|able(?:Shader|d(?:Ranges|Days)|CloseBox|Events))|rection)|o(?:cTypeDecl|tall|Decoding|main|LazyDecoding)|u(?:plicateMovieClip|ration)|e(?:stroy(?:ChildAt|Object)|code|fault(?:PushButton(?:Enabled)?|KeydownHandler)?|l(?:ta(?:Packet(?:Changed)?)?|ete(?:PopUp|All)?)|blocking)|a(?:shBoardSave|yNames|ta(?:Provider)?|rkshadow)|r(?:opdown(?:Width)?|a(?:w|gO(?:ut|ver))))|u(?:se(?:Sort|HandCursor|Codepage|EchoSuppression)|n(?:shift|install|derline|escape|format|watch|lo(?:ck|ad(?:Movie(?:Num)?)?))|pdate(?:Results|Mode|I(?:nputProperties|tem(?:ByIndex)?)|P(?:acket|roperties)|View|AfterEvent)|rl)|join|p(?:ixelAspectRatio|o(?:sition|p|w)|u(?:sh|rge|blish)|ercen(?:tComplete|Loaded)|lay(?:head(?:Change|Time)|ing|Hidden|erType)?|a(?:ssword|use|r(?:se(?:XML|CSS|Int|Float)|ent(?:Node|Is(?:S(?:creen|lide)|Form))|ams))|r(?:int(?:Num|AsBitmap(?:Num)?)?|o(?:to(?:type)?|pert(?:y|ies)|gress)|e(?:ss|v(?:ious(?:S(?:ibling|lide)|Value)?|Scene|Frame)|ferred(?:Height|Width))))|e(?:scape|n(?:code(?:r)?|ter(?:Frame)?|dFill|able(?:Shader|d|CloseBox|Events))|dit(?:able|Field|LocationDialog)|v(?:ent|al(?:uate)?)|q|x(?:tended|p|ec(?:ute)?|actSettings)|m(?:phasized(?:StyleDeclaration)?|bedFonts))|v(?:i(?:sible|ewPod)|ScrollPolicy|o(?:id|lume)|ersion|P(?:osition|ageScrollSize)|a(?:l(?:idat(?:ionError|e(?:Property|ActivationKey)?)|ue(?:Of)?)|riable)|LineScrollSize)|k(?:ind|ey(?:Down|Up|Press|FrameInterval))|q(?:sort|uality)|f(?:scommand|i(?:n(?:d(?:Text|First|Last)?|ally)|eldInfo|lter(?:ed|Func)?|rst(?:Slide|Child|DayOfWeek|VisibleNode)?)|o(?:nt|cus(?:In|edCell|Out|Enabled)|r(?:egroundDisabled|mat(?:ter)?))|unctionName|ps|l(?:oor|ush)|ace|romCharCode)|w(?:i(?:th|dth)|ordWrap|atch|riteAccess)|l(?:t|i(?:st(?:Owner)?|ne(?:Style|To))|o(?:c(?:k|a(?:t(?:ion|eByld)|l(?:ToGlobal|FileReadDisable)))|opback|ad(?:Movie(?:Num)?|S(?:crollContent|ound)|ed|Variables(?:Num)?|Application)?|g(?:Changes)?)|e(?:ngth|ft(?:Margin)?|ading)?|a(?:st(?:Slide|Child|Index(?:Of)?)?|nguage|b(?:el(?:Placement|F(?:ield|unction))?|leField)))|a(?:s(?:scociate(?:Controller|Display)|in|pectRatio|function)|nd|c(?:ceptConnection|tiv(?:ityLevel|ePlayControl)|os)|t(?:t(?:ach(?:Movie|Sound|Video|Audio)|ributes)|an(?:2)?)|dd(?:header|RequestHeader|Menu(?:Item(?:At)?|At)?|Sort|Header|No(?:tice|de(?:At)?)|C(?:olumn(?:At)?|uePoint)|T(?:oLocalInternetCache|reeNode(?:At)?)|I(?:con|tem(?:s(?:At)?|At)?)|DeltaItem|P(?:od|age|roperty)|EventListener|View|FieldInfo|Listener|Animation)?|uto(?:Size|Play|KeyNav|Load)|pp(?:endChild|ly(?:Changes|Updates)?)|vHardwareDisable|fterLoaded|l(?:ternateRowColors|ign|l(?:ow(?:InsecureDomain|Domain)|Transitions(?:InDone|OutDone))|bum)|r(?:tist|row|g(?:uments|List))|gent|bs)|r(?:ight(?:Margin)?|o(?:ot(?:S(?:creen|lide)|Form)|und|w(?:Height|Count)|llO(?:ut|ver))|e(?:s(?:yncDepth|t(?:orePane|artAnimation|rict)|iz(?:e|able(?:Columns)?)|olveDelta|ult(?:s)?|ponse)|c(?:o(?:ncile(?:Results|Updates)|rd)|eive(?:Video|Audio))|draw|jectConnection|place(?:Sel|ItemAt|AllItems)?|ve(?:al(?:Child)?|rse)|quest(?:SizeChange|Payment)?|f(?:errer|resh(?:ScrollContent|Destinations|Pane|FromSources)?)|lease(?:Outside)?|ad(?:Only|Access)|gister(?:SkinElement|C(?:olor(?:Style|Name)|lass)|InheritingStyle|Proxy)|move(?:Range|M(?:ovieClip|enu(?:Item(?:At)?|At))|Background|Sort|No(?:tice|de(?:sAt|At)?)|C(?:olum(?:nAt|At)|uePoints)|T(?:extField|reeNode(?:At)?)|Item(?:At)?|Pod|EventListener|FromLocalInternetCache|Listener|All(?:C(?:olumns|uePoints)|Items)?))|a(?:ndom|te|dioDot))|g(?:t|oto(?:Slide|NextSlide|PreviousSlide|FirstSlide|LastSlide|And(?:Stop|Play))|e(?:nre|t(?:R(?:GB|o(?:otNode|wCount)|e(?:sizable|mote))|X(?:AxisTitle)?|M(?:i(?:n(?:imum(?:Size)?|utes)|lliseconds)|onth(?:Names)?|ultilineMode|e(?:ssage|nu(?:ItemAt|EnabledAt|At))|aximum(?:Size)?)|B(?:ytes(?:Total|Loaded)|ounds|utton(?:s|Width)|eginIndex|a(?:ndwidthLimit|ckground))|S(?:howAsDisabled|croll(?:ing|Speed|Content|Position|barState|Location)|t(?:yle(?:Names)?|opOnFocus|ate)|ize|o(?:urce|rtState)|p(?:litterBarPosition|acing)|e(?:conds|lect(?:Multiple|ion(?:Required|Type)|Style|ed(?:Node(?:s)?|Cell|Text|I(?:nd(?:ices|ex)|tem(?:s)?))?)|rvice)|moothness|WFVersion)|H(?:ighlight(?:s|Color)|ours|e(?:ight|ader(?:Height|Text|Property|Format|Width|Location)?)|as(?:Shader|CloseBox))|Y(?:ear|AxisTitle)?|N(?:o(?:tices|de(?:DisplayedAt|At))|um(?:Children|berAvailable)|e(?:wTextFormat|xtHighestDepth))|C(?:h(?:ild(?:S(?:creen|lide)|Nodes|Form|At)|artTitle)|o(?:n(?:tent|figInfo)|okie|de|unt|lumn(?:Names|Count|Index|At))|uePoint|ellIndex|loseHandler|a(?:ll|retIndex))|T(?:ypedValue|i(?:tle(?:barHeight)?|p(?:Target|Offset)?|me(?:stamp|zoneOffset|out(?:State|Handler)|r)?)|oggle|ext(?:Extent|Format)?|r(?:ee(?:NodeAt|Length)|ans(?:form|actionId)))|I(?:s(?:Branch|Open)|n(?:stanceAtDepth|d(?:icesByKey|exByKey))|con(?:SymbolName)?|te(?:rator|m(?:sByKey|By(?:Name|Key)|id|ID|At))|d)|O(?:utput(?:Parameter(?:s|ByName)?|Value(?:s)?)|peration|ri(?:entation|ginalCellData))|D(?:i(?:s(?:play(?:Range|Mode|Clip|Index|edMonth)|kUsage)|rection)|uration|e(?:pth|faultNodeIconSymbolName|l(?:taPacket|ay)|bug(?:Config|ID)?)|a(?:y(?:OfWeekNames)?|t(?:e|a(?:Mapping(?:s)?|Item(?:Text|Property|Format)|Label|All(?:Height|Property|Format|Width))?))|rawConnectors)|U(?:se(?:Shadow|HandCursor|rInput|Fade)|RL|TC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear))|P(?:o(?:sition|ds)|ercentComplete|a(?:n(?:e(?:M(?:inimums|aximums)|Height|Title|Width))?|rentNode)|r(?:operty(?:Name|Data)?|efer(?:ences|red(?:Height|Width))))|E(?:n(?:dIndex|abled)|ditingData|x(?:panderSymbolName|andNodeTrigger))|V(?:iewed(?:Pods|Applications)|olume|ersion|alue(?:Source)?)|F(?:i(?:eld|rst(?:DayOfWeek|VisibleNode))|o(?:ntList|cus)|ullYear|ade(?:InLength|OutLength)|rame(?:Color|Width))|Width|L(?:ine(?:Color|Weight)|o(?:cal|adTarget)|ength|a(?:stTabIndex|bel(?:Source)?))|A(?:s(?:cii|Boolean|String|Number)|n(?:yTypedValue|imation)|ctiv(?:eState(?:Handler)?|ateHandler)|utoH(?:ideScrollBar|eight)|llItems|gent))?)?|lobal(?:StyleFormat|ToLocal)?|ain|roupName)|x(?:updatePackety|mlDecl)?|m(?:y(?:MethodName|Call)|in(?:imum)?|o(?:nthNames|tion(?:TimeOut|Level)|de(?:lChanged)?|use(?:Move|O(?:ut|ver)|Down(?:Somewhere|Outside)?|Up(?:Somewhere)?|WheelEnabled)|ve(?:To)?)|u(?:ted|lti(?:pleS(?:imultaneousAllowed|elections)|line))|e(?:ssage|nu(?:Show|Hide)?|th(?:od)?|diaType)|a(?:nufacturer|tch|x(?:scroll|hscroll|imum|HPosition|Chars|VPosition)?)|b(?:substring|chr|ord|length))|b(?:ytes(?:Total|Loaded)|indFormat(?:Strings|Function)|o(?:ttom(?:Scroll)?|ld|rder(?:Color)?)|u(?:tton(?:Height|Width)|iltInItems|ffer(?:Time|Length)|llet)|e(?:foreApplyUpdates|gin(?:GradientFill|Fill))|lockIndent|a(?:ndwidth|ckground(?:Style|Color|Disabled)?)|roadcastMessage)|onHTTPStatus)\\\\b' },\n         { token: 'support.constant.actionscript.2',\n           regex: '\\\\b(?:__proto__|__resolve|_accProps|_alpha|_changed|_currentframe|_droptarget|_flash|_focusrect|_framesloaded|_global|_height|_highquality|_level|_listeners|_lockroot|_name|_parent|_quality|_root|_rotation|_soundbuftime|_target|_totalframes|_url|_visible|_width|_x|_xmouse|_xscale|_y|_ymouse|_yscale)\\\\b' },\n         { token: 'keyword.control.actionscript.2',\n           regex: '\\\\b(?:dynamic|extends|import|implements|interface|public|private|new|static|super|var|for|in|break|continue|while|do|return|if|else|case|switch)\\\\b' },\n         { token: 'storage.type.actionscript.2',\n           regex: '\\\\b(?:Boolean|Number|String|Void)\\\\b' },\n         { token: 'constant.language.actionscript.2',\n           regex: '\\\\b(?:null|undefined|true|false)\\\\b' },\n         { token: 'constant.numeric.actionscript.2',\n           regex: '\\\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\\\.?[0-9]*|\\\\.[0-9]+)(?:(?:e|E)(?:\\\\+|-)?[0-9]+)?)(?:L|l|UL|ul|u|U|F|f)?\\\\b' },\n         { token: 'punctuation.definition.string.begin.actionscript.2',\n           regex: '\"',\n           push: \n            [ { token: 'punctuation.definition.string.end.actionscript.2',\n                regex: '\"',\n                next: 'pop' },\n              { token: 'constant.character.escape.actionscript.2',\n                regex: '\\\\\\\\.' },\n              { defaultToken: 'string.quoted.double.actionscript.2' } ] },\n         { token: 'punctuation.definition.string.begin.actionscript.2',\n           regex: '\\'',\n           push: \n            [ { token: 'punctuation.definition.string.end.actionscript.2',\n                regex: '\\'',\n                next: 'pop' },\n              { token: 'constant.character.escape.actionscript.2',\n                regex: '\\\\\\\\.' },\n              { defaultToken: 'string.quoted.single.actionscript.2' } ] },\n         { token: 'support.constant.actionscript.2',\n           regex: '\\\\b(?:BACKSPACE|CAPSLOCK|CONTROL|DELETEKEY|DOWN|END|ENTER|HOME|INSERT|LEFT|LN10|LN2|LOG10E|LOG2E|MAX_VALUE|MIN_VALUE|NEGATIVE_INFINITY|NaN|PGDN|PGUP|PI|POSITIVE_INFINITY|RIGHT|SPACE|SQRT1_2|SQRT2|UP)\\\\b' },\n         { token: 'punctuation.definition.comment.actionscript.2',\n           regex: '/\\\\*',\n           push: \n            [ { token: 'punctuation.definition.comment.actionscript.2',\n                regex: '\\\\*/',\n                next: 'pop' },\n              { defaultToken: 'comment.block.actionscript.2' } ] },\n         { token: 'punctuation.definition.comment.actionscript.2',\n           regex: '//.*$',\n           push_: \n            [ { token: 'comment.line.double-slash.actionscript.2',\n                regex: '$',\n                next: 'pop' },\n              { defaultToken: 'comment.line.double-slash.actionscript.2' } ] },\n         { token: 'keyword.operator.actionscript.2',\n           regex: '\\\\binstanceof\\\\b' },\n         { token: 'keyword.operator.symbolic.actionscript.2',\n           regex: '[-!%&*+=/?:]' },\n         { token: \n            [ 'meta.preprocessor.actionscript.2',\n              'punctuation.definition.preprocessor.actionscript.2',\n              'meta.preprocessor.actionscript.2' ],\n           regex: '^([ \\\\t]*)(#)([a-zA-Z]+)' },\n         { token: \n            [ 'storage.type.function.actionscript.2',\n              'meta.function.actionscript.2',\n              'entity.name.function.actionscript.2',\n              'meta.function.actionscript.2',\n              'punctuation.definition.parameters.begin.actionscript.2' ],\n           regex: '\\\\b(function)(\\\\s+)([a-zA-Z_]\\\\w*)(\\\\s*)(\\\\()',\n           push: \n            [ { token: 'punctuation.definition.parameters.end.actionscript.2',\n                regex: '\\\\)',\n                next: 'pop' },\n              { token: 'variable.parameter.function.actionscript.2',\n                regex: '[^,)$]+' },\n              { defaultToken: 'meta.function.actionscript.2' } ] },\n         { token: \n            [ 'storage.type.class.actionscript.2',\n              'meta.class.actionscript.2',\n              'entity.name.type.class.actionscript.2',\n              'meta.class.actionscript.2',\n              'storage.modifier.extends.actionscript.2',\n              'meta.class.actionscript.2',\n              'entity.other.inherited-class.actionscript.2' ],\n           regex: '\\\\b(class)(\\\\s+)([a-zA-Z_](?:\\\\w|\\\\.)*)(?:(\\\\s+)(extends)(\\\\s+)([a-zA-Z_](?:\\\\w|\\\\.)*))?' } ] }\n    \n    this.normalizeRules();\n};\n\nActionScriptHighlightRules.metaData = { fileTypes: [ 'as' ],\n      keyEquivalent: '^~A',\n      name: 'ActionScript',\n      scopeName: 'source.actionscript.2' }\n\n\noop.inherits(ActionScriptHighlightRules, TextHighlightRules);\n\nexports.ActionScriptHighlightRules = ActionScriptHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/actionscript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/actionscript_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar ActionScriptHighlightRules = require(\"./actionscript_highlight_rules\").ActionScriptHighlightRules;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = ActionScriptHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n    this.$id = \"ace/mode/actionscript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-ada.js",
    "content": "ace.define(\"ace/mode/ada_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar AdaHighlightRules = function() {\nvar keywords = \"abort|else|new|return|abs|elsif|not|reverse|abstract|end|null|accept|entry|select|\" +\n\"access|exception|of|separate|aliased|exit|or|some|all|others|subtype|and|for|out|synchronized|\" +\n\"array|function|overriding|at|tagged|generic|package|task|begin|goto|pragma|terminate|\" +\n\"body|private|then|if|procedure|type|case|in|protected|constant|interface|until|\" +\n\"|is|raise|use|declare|range|delay|limited|record|when|delta|loop|rem|while|digits|renames|with|do|mod|requeue|xor\";\n\n    var builtinConstants = (\n        \"true|false|null\"\n    );\n\n    var builtinFunctions = (\n        \"count|min|max|avg|sum|rank|now|coalesce|main\"\n    );\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": builtinFunctions,\n        \"keyword\": keywords,\n        \"constant.language\": builtinConstants\n    }, \"identifier\", true);\n\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment\",\n            regex : \"--.*$\"\n        }, {\n            token : \"string\",           // \" string\n            regex : '\".*?\"'\n        }, {\n            token : \"string\",           // ' string\n            regex : \"'.*?'\"\n        }, {\n            token : \"constant.numeric\", // float\n            regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n        }, {\n            token : keywordMapper,\n            regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n        }, {\n            token : \"keyword.operator\",\n            regex : \"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\"\n        }, {\n            token : \"paren.lparen\",\n            regex : \"[\\\\(]\"\n        }, {\n            token : \"paren.rparen\",\n            regex : \"[\\\\)]\"\n        }, {\n            token : \"text\",\n            regex : \"\\\\s+\"\n        } ]\n    };\n};\n\noop.inherits(AdaHighlightRules, TextHighlightRules);\n\nexports.AdaHighlightRules = AdaHighlightRules;\n});\n\nace.define(\"ace/mode/ada\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ada_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar AdaHighlightRules = require(\"./ada_highlight_rules\").AdaHighlightRules;\n\nvar Mode = function() {\n    this.HighlightRules = AdaHighlightRules;\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"--\";\n\n    this.$id = \"ace/mode/ada\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-apache_conf.js",
    "content": "ace.define(\"ace/mode/apache_conf_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar ApacheConfHighlightRules = function() {\n\n    this.$rules = { start: \n       [ { token: \n            [ 'punctuation.definition.comment.apacheconf',\n              'comment.line.hash.ini',\n              'comment.line.hash.ini' ],\n           regex: '^((?:\\\\s)*)(#)(.*$)' },\n         { token: \n            [ 'punctuation.definition.tag.apacheconf',\n              'entity.tag.apacheconf',\n              'text',\n              'string.value.apacheconf',\n              'punctuation.definition.tag.apacheconf' ],\n           regex: '(<)(Proxy|ProxyMatch|IfVersion|Directory|DirectoryMatch|Files|FilesMatch|IfDefine|IfModule|Limit|LimitExcept|Location|LocationMatch|VirtualHost)(?:(\\\\s)(.+?))?(>)' },\n         { token: \n            [ 'punctuation.definition.tag.apacheconf',\n              'entity.tag.apacheconf',\n              'punctuation.definition.tag.apacheconf' ],\n           regex: '(</)(Proxy|ProxyMatch|IfVersion|Directory|DirectoryMatch|Files|FilesMatch|IfDefine|IfModule|Limit|LimitExcept|Location|LocationMatch|VirtualHost)(>)' },\n         { token: \n            [ 'keyword.alias.apacheconf', 'text',\n              'string.regexp.apacheconf', 'text',\n              'string.replacement.apacheconf', 'text' ],\n           regex: '(Rewrite(?:Rule|Cond))(\\\\s+)(.+?)(\\\\s+)(.+?)($|\\\\s)' },\n         { token: \n            [ 'keyword.alias.apacheconf', 'text',\n              'entity.status.apacheconf', 'text',\n              'string.regexp.apacheconf', 'text',\n              'string.path.apacheconf', 'text' ],\n           regex: '(RedirectMatch)(?:(\\\\s+)(\\\\d\\\\d\\\\d|permanent|temp|seeother|gone))?(\\\\s+)(.+?)(\\\\s+)(?:(.+?)($|\\\\s))?' },\n         { token: \n            [ 'keyword.alias.apacheconf', 'text', \n              'entity.status.apacheconf', 'text',\n              'string.path.apacheconf', 'text',\n              'string.path.apacheconf', 'text' ],\n           regex: '(Redirect)(?:(\\\\s+)(\\\\d\\\\d\\\\d|permanent|temp|seeother|gone))?(\\\\s+)(.+?)(\\\\s+)(?:(.+?)($|\\\\s))?' },\n         { token: \n            [ 'keyword.alias.apacheconf', 'text',\n              'string.regexp.apacheconf', 'text',\n              'string.path.apacheconf', 'text' ],\n           regex: '(ScriptAliasMatch|AliasMatch)(\\\\s+)(.+?)(\\\\s+)(?:(.+?)(\\\\s))?' },\n         { token: \n            [ 'keyword.alias.apacheconf', 'text',\n              'string.path.apacheconf', 'text',\n              'string.path.apacheconf', 'text' ],\n           regex: '(RedirectPermanent|RedirectTemp|ScriptAlias|Alias)(\\\\s+)(.+?)(\\\\s+)(?:(.+?)($|\\\\s))?' },\n         { token: 'keyword.core.apacheconf',\n           regex: '\\\\b(?:AcceptPathInfo|AccessFileName|AddDefaultCharset|AddOutputFilterByType|AllowEncodedSlashes|AllowOverride|AuthName|AuthType|CGIMapExtension|ContentDigest|DefaultType|DocumentRoot|EnableMMAP|EnableSendfile|ErrorDocument|ErrorLog|FileETag|ForceType|HostnameLookups|IdentityCheck|Include|KeepAlive|KeepAliveTimeout|LimitInternalRecursion|LimitRequestBody|LimitRequestFields|LimitRequestFieldSize|LimitRequestLine|LimitXMLRequestBody|LogLevel|MaxKeepAliveRequests|NameVirtualHost|Options|Require|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScriptInterpreterSource|ServerAdmin|ServerAlias|ServerName|ServerPath|ServerRoot|ServerSignature|ServerTokens|SetHandler|SetInputFilter|SetOutputFilter|TimeOut|TraceEnable|UseCanonicalName)\\\\b' },\n         { token: 'keyword.mpm.apacheconf',\n           regex: '\\\\b(?:AcceptMutex|AssignUserID|BS2000Account|ChildPerUserID|CoreDumpDirectory|EnableExceptionHook|Group|Listen|ListenBacklog|LockFile|MaxClients|MaxMemFree|MaxRequestsPerChild|MaxRequestsPerThread|MaxSpareServers|MaxSpareThreads|MaxThreads|MaxThreadsPerChild|MinSpareServers|MinSpareThreads|NumServers|PidFile|ReceiveBufferSize|ScoreBoardFile|SendBufferSize|ServerLimit|StartServers|StartThreads|ThreadLimit|ThreadsPerChild|ThreadStackSize|User|Win32DisableAcceptEx)\\\\b' },\n         { token: 'keyword.access.apacheconf',\n           regex: '\\\\b(?:Allow|Deny|Order)\\\\b' },\n         { token: 'keyword.actions.apacheconf',\n           regex: '\\\\b(?:Action|Script)\\\\b' },\n         { token: 'keyword.alias.apacheconf',\n           regex: '\\\\b(?:Alias|AliasMatch|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ScriptAlias|ScriptAliasMatch)\\\\b' },\n         { token: 'keyword.auth.apacheconf',\n           regex: '\\\\b(?:AuthAuthoritative|AuthGroupFile|AuthUserFile)\\\\b' },\n         { token: 'keyword.auth_anon.apacheconf',\n           regex: '\\\\b(?:Anonymous|Anonymous_Authoritative|Anonymous_LogEmail|Anonymous_MustGiveEmail|Anonymous_NoUserID|Anonymous_VerifyEmail)\\\\b' },\n         { token: 'keyword.auth_dbm.apacheconf',\n           regex: '\\\\b(?:AuthDBMAuthoritative|AuthDBMGroupFile|AuthDBMType|AuthDBMUserFile)\\\\b' },\n         { token: 'keyword.auth_digest.apacheconf',\n           regex: '\\\\b(?:AuthDigestAlgorithm|AuthDigestDomain|AuthDigestFile|AuthDigestGroupFile|AuthDigestNcCheck|AuthDigestNonceFormat|AuthDigestNonceLifetime|AuthDigestQop|AuthDigestShmemSize)\\\\b' },\n         { token: 'keyword.auth_ldap.apacheconf',\n           regex: '\\\\b(?:AuthLDAPAuthoritative|AuthLDAPBindDN|AuthLDAPBindPassword|AuthLDAPCharsetConfig|AuthLDAPCompareDNOnServer|AuthLDAPDereferenceAliases|AuthLDAPEnabled|AuthLDAPFrontPageHack|AuthLDAPGroupAttribute|AuthLDAPGroupAttributeIsDN|AuthLDAPRemoteUserIsDN|AuthLDAPUrl)\\\\b' },\n         { token: 'keyword.autoindex.apacheconf',\n           regex: '\\\\b(?:AddAlt|AddAltByEncoding|AddAltByType|AddDescription|AddIcon|AddIconByEncoding|AddIconByType|DefaultIcon|HeaderName|IndexIgnore|IndexOptions|IndexOrderDefault|ReadmeName)\\\\b' },\n         { token: 'keyword.cache.apacheconf',\n           regex: '\\\\b(?:CacheDefaultExpire|CacheDisable|CacheEnable|CacheForceCompletion|CacheIgnoreCacheControl|CacheIgnoreHeaders|CacheIgnoreNoLastMod|CacheLastModifiedFactor|CacheMaxExpire)\\\\b' },\n         { token: 'keyword.cern_meta.apacheconf',\n           regex: '\\\\b(?:MetaDir|MetaFiles|MetaSuffix)\\\\b' },\n         { token: 'keyword.cgi.apacheconf',\n           regex: '\\\\b(?:ScriptLog|ScriptLogBuffer|ScriptLogLength)\\\\b' },\n         { token: 'keyword.cgid.apacheconf',\n           regex: '\\\\b(?:ScriptLog|ScriptLogBuffer|ScriptLogLength|ScriptSock)\\\\b' },\n         { token: 'keyword.charset_lite.apacheconf',\n           regex: '\\\\b(?:CharsetDefault|CharsetOptions|CharsetSourceEnc)\\\\b' },\n         { token: 'keyword.dav.apacheconf',\n           regex: '\\\\b(?:Dav|DavDepthInfinity|DavMinTimeout|DavLockDB)\\\\b' },\n         { token: 'keyword.deflate.apacheconf',\n           regex: '\\\\b(?:DeflateBufferSize|DeflateCompressionLevel|DeflateFilterNote|DeflateMemLevel|DeflateWindowSize)\\\\b' },\n         { token: 'keyword.dir.apacheconf',\n           regex: '\\\\b(?:DirectoryIndex|DirectorySlash)\\\\b' },\n         { token: 'keyword.disk_cache.apacheconf',\n           regex: '\\\\b(?:CacheDirLength|CacheDirLevels|CacheExpiryCheck|CacheGcClean|CacheGcDaily|CacheGcInterval|CacheGcMemUsage|CacheGcUnused|CacheMaxFileSize|CacheMinFileSize|CacheRoot|CacheSize|CacheTimeMargin)\\\\b' },\n         { token: 'keyword.dumpio.apacheconf',\n           regex: '\\\\b(?:DumpIOInput|DumpIOOutput)\\\\b' },\n         { token: 'keyword.env.apacheconf',\n           regex: '\\\\b(?:PassEnv|SetEnv|UnsetEnv)\\\\b' },\n         { token: 'keyword.expires.apacheconf',\n           regex: '\\\\b(?:ExpiresActive|ExpiresByType|ExpiresDefault)\\\\b' },\n         { token: 'keyword.ext_filter.apacheconf',\n           regex: '\\\\b(?:ExtFilterDefine|ExtFilterOptions)\\\\b' },\n         { token: 'keyword.file_cache.apacheconf',\n           regex: '\\\\b(?:CacheFile|MMapFile)\\\\b' },\n         { token: 'keyword.headers.apacheconf',\n           regex: '\\\\b(?:Header|RequestHeader)\\\\b' },\n         { token: 'keyword.imap.apacheconf',\n           regex: '\\\\b(?:ImapBase|ImapDefault|ImapMenu)\\\\b' },\n         { token: 'keyword.include.apacheconf',\n           regex: '\\\\b(?:SSIEndTag|SSIErrorMsg|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|XBitHack)\\\\b' },\n         { token: 'keyword.isapi.apacheconf',\n           regex: '\\\\b(?:ISAPIAppendLogToErrors|ISAPIAppendLogToQuery|ISAPICacheFile|ISAPIFakeAsync|ISAPILogNotSupported|ISAPIReadAheadBuffer)\\\\b' },\n         { token: 'keyword.ldap.apacheconf',\n           regex: '\\\\b(?:LDAPCacheEntries|LDAPCacheTTL|LDAPConnectionTimeout|LDAPOpCacheEntries|LDAPOpCacheTTL|LDAPSharedCacheFile|LDAPSharedCacheSize|LDAPTrustedCA|LDAPTrustedCAType)\\\\b' },\n         { token: 'keyword.log.apacheconf',\n           regex: '\\\\b(?:BufferedLogs|CookieLog|CustomLog|LogFormat|TransferLog|ForensicLog)\\\\b' },\n         { token: 'keyword.mem_cache.apacheconf',\n           regex: '\\\\b(?:MCacheMaxObjectCount|MCacheMaxObjectSize|MCacheMaxStreamingBuffer|MCacheMinObjectSize|MCacheRemovalAlgorithm|MCacheSize)\\\\b' },\n         { token: 'keyword.mime.apacheconf',\n           regex: '\\\\b(?:AddCharset|AddEncoding|AddHandler|AddInputFilter|AddLanguage|AddOutputFilter|AddType|DefaultLanguage|ModMimeUsePathInfo|MultiviewsMatch|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|TypesConfig)\\\\b' },\n         { token: 'keyword.misc.apacheconf',\n           regex: '\\\\b(?:ProtocolEcho|Example|AddModuleInfo|MimeMagicFile|CheckSpelling|ExtendedStatus|SuexecUserGroup|UserDir)\\\\b' },\n         { token: 'keyword.negotiation.apacheconf',\n           regex: '\\\\b(?:CacheNegotiatedDocs|ForceLanguagePriority|LanguagePriority)\\\\b' },\n         { token: 'keyword.nw_ssl.apacheconf',\n           regex: '\\\\b(?:NWSSLTrustedCerts|NWSSLUpgradeable|SecureListen)\\\\b' },\n         { token: 'keyword.proxy.apacheconf',\n           regex: '\\\\b(?:AllowCONNECT|NoProxy|ProxyBadHeader|ProxyBlock|ProxyDomain|ProxyErrorOverride|ProxyFtpDirCharset|ProxyIOBufferSize|ProxyMaxForwards|ProxyPass|ProxyPassReverse|ProxyPreserveHost|ProxyReceiveBufferSize|ProxyRemote|ProxyRemoteMatch|ProxyRequests|ProxyTimeout|ProxyVia)\\\\b' },\n         { token: 'keyword.rewrite.apacheconf',\n           regex: '\\\\b(?:RewriteBase|RewriteCond|RewriteEngine|RewriteLock|RewriteLog|RewriteLogLevel|RewriteMap|RewriteOptions|RewriteRule)\\\\b' },\n         { token: 'keyword.setenvif.apacheconf',\n           regex: '\\\\b(?:BrowserMatch|BrowserMatchNoCase|SetEnvIf|SetEnvIfNoCase)\\\\b' },\n         { token: 'keyword.so.apacheconf',\n           regex: '\\\\b(?:LoadFile|LoadModule)\\\\b' },\n         { token: 'keyword.ssl.apacheconf',\n           regex: '\\\\b(?:SSLCACertificateFile|SSLCACertificatePath|SSLCARevocationFile|SSLCARevocationPath|SSLCertificateChainFile|SSLCertificateFile|SSLCertificateKeyFile|SSLCipherSuite|SSLEngine|SSLMutex|SSLOptions|SSLPassPhraseDialog|SSLProtocol|SSLProxyCACertificateFile|SSLProxyCACertificatePath|SSLProxyCARevocationFile|SSLProxyCARevocationPath|SSLProxyCipherSuite|SSLProxyEngine|SSLProxyMachineCertificateFile|SSLProxyMachineCertificatePath|SSLProxyProtocol|SSLProxyVerify|SSLProxyVerifyDepth|SSLRandomSeed|SSLRequire|SSLRequireSSL|SSLSessionCache|SSLSessionCacheTimeout|SSLUserName|SSLVerifyClient|SSLVerifyDepth)\\\\b' },\n         { token: 'keyword.usertrack.apacheconf',\n           regex: '\\\\b(?:CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking)\\\\b' },\n         { token: 'keyword.vhost_alias.apacheconf',\n           regex: '\\\\b(?:VirtualDocumentRoot|VirtualDocumentRootIP|VirtualScriptAlias|VirtualScriptAliasIP)\\\\b' },\n         { token: \n            [ 'keyword.php.apacheconf',\n              'text',\n              'entity.property.apacheconf',\n              'text',\n              'string.value.apacheconf',\n              'text' ],\n           regex: '\\\\b(php_value|php_flag)\\\\b(?:(\\\\s+)(.+?)(?:(\\\\s+)(.+?))?)?(\\\\s)' },\n         { token: \n            [ 'punctuation.variable.apacheconf',\n              'variable.env.apacheconf',\n              'variable.misc.apacheconf',\n              'punctuation.variable.apacheconf' ],\n           regex: '(%\\\\{)(?:(HTTP_USER_AGENT|HTTP_REFERER|HTTP_COOKIE|HTTP_FORWARDED|HTTP_HOST|HTTP_PROXY_CONNECTION|HTTP_ACCEPT|REMOTE_ADDR|REMOTE_HOST|REMOTE_PORT|REMOTE_USER|REMOTE_IDENT|REQUEST_METHOD|SCRIPT_FILENAME|PATH_INFO|QUERY_STRING|AUTH_TYPE|DOCUMENT_ROOT|SERVER_ADMIN|SERVER_NAME|SERVER_ADDR|SERVER_PORT|SERVER_PROTOCOL|SERVER_SOFTWARE|TIME_YEAR|TIME_MON|TIME_DAY|TIME_HOUR|TIME_MIN|TIME_SEC|TIME_WDAY|TIME|API_VERSION|THE_REQUEST|REQUEST_URI|REQUEST_FILENAME|IS_SUBREQ|HTTPS)|(.*?))(\\\\})' },\n         { token: [ 'entity.mime-type.apacheconf', 'text' ],\n           regex: '\\\\b((?:text|image|application|video|audio)/.+?)(\\\\s)' },\n         { token: 'entity.helper.apacheconf',\n           regex: '\\\\b(?:from|unset|set|on|off)\\\\b',\n           caseInsensitive: true },\n         { token: 'constant.integer.apacheconf', regex: '\\\\b\\\\d+\\\\b' },\n         { token: \n            [ 'text',\n              'punctuation.definition.flag.apacheconf',\n              'string.flag.apacheconf',\n              'punctuation.definition.flag.apacheconf',\n              'text' ],\n           regex: '(\\\\s)(\\\\[)(.*?)(\\\\])(\\\\s)' } ] }\n    \n    this.normalizeRules();\n};\n\nApacheConfHighlightRules.metaData = { fileTypes: \n       [ 'conf',\n         'CONF',\n         'htaccess',\n         'HTACCESS',\n         'htgroups',\n         'HTGROUPS',\n         'htpasswd',\n         'HTPASSWD',\n         '.htaccess',\n         '.HTACCESS',\n         '.htgroups',\n         '.HTGROUPS',\n         '.htpasswd',\n         '.HTPASSWD' ],\n      name: 'Apache Conf',\n      scopeName: 'source.apacheconf' }\n\n\noop.inherits(ApacheConfHighlightRules, TextHighlightRules);\n\nexports.ApacheConfHighlightRules = ApacheConfHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/apache_conf\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/apache_conf_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar ApacheConfHighlightRules = require(\"./apache_conf_highlight_rules\").ApacheConfHighlightRules;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = ApacheConfHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"#\";\n    this.$id = \"ace/mode/apache_conf\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-applescript.js",
    "content": "ace.define(\"ace/mode/applescript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar AppleScriptHighlightRules = function() {\n    var keywords = (\n        \"about|above|after|against|and|around|as|at|back|before|beginning|\" +\n        \"behind|below|beneath|beside|between|but|by|considering|\" +\n        \"contain|contains|continue|copy|div|does|eighth|else|end|equal|\" +\n        \"equals|error|every|exit|fifth|first|for|fourth|from|front|\" +\n        \"get|given|global|if|ignoring|in|into|is|it|its|last|local|me|\" +\n        \"middle|mod|my|ninth|not|of|on|onto|or|over|prop|property|put|ref|\" +\n        \"reference|repeat|returning|script|second|set|seventh|since|\" +\n        \"sixth|some|tell|tenth|that|the|then|third|through|thru|\" +\n        \"timeout|times|to|transaction|try|until|where|while|whose|with|without\"\n    );\n\n    var builtinConstants = (\n        \"AppleScript|false|linefeed|return|pi|quote|result|space|tab|true\"\n    );\n\n    var builtinFunctions = (\n        \"activate|beep|count|delay|launch|log|offset|read|round|run|say|\" +\n        \"summarize|write\"\n    );\n\n    var builtinTypes = (\n        \"alias|application|boolean|class|constant|date|file|integer|list|\" +\n        \"number|real|record|string|text|character|characters|contents|day|\" +\n        \"frontmost|id|item|length|month|name|paragraph|paragraphs|rest|\" +\n        \"reverse|running|time|version|weekday|word|words|year\"\n    );\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": builtinFunctions,\n        \"constant.language\": builtinConstants,\n        \"support.type\": builtinTypes,\n        \"keyword\": keywords\n    }, \"identifier\");\n\n    this.$rules = {\n        \"start\": [\n            {\n                token: \"comment\",\n                regex: \"--.*$\"\n            },\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\(\\\\*\",\n                next : \"comment\"\n            },\n            {\n                token: \"string\",           // \" string\n                regex: '\".*?\"'\n            },\n            {\n                token: \"support.type\",\n                regex: '\\\\b(POSIX file|POSIX path|(date|time) string|quoted form)\\\\b'\n            },\n            {\n                token: \"support.function\",\n                regex: '\\\\b(clipboard info|the clipboard|info for|list (disks|folder)|' +\n          'mount volume|path to|(close|open for) access|(get|set) eof|' +\n          'current date|do shell script|get volume settings|random number|' +\n          'set volume|system attribute|system info|time to GMT|' +\n          '(load|run|store) script|scripting components|' +\n          'ASCII (character|number)|localized string|' +\n          'choose (application|color|file|file name|' +\n          'folder|from list|remote application|URL)|' +\n          'display (alert|dialog))\\\\b|^\\\\s*return\\\\b'\n            },\n            {\n                token: \"constant.language\",\n                regex: '\\\\b(text item delimiters|current application|missing value)\\\\b'\n            },\n            {\n                token: \"keyword\",\n                regex: '\\\\b(apart from|aside from|instead of|out of|greater than|' +\n          \"isn't|(doesn't|does not) (equal|come before|come after|contain)|\" +\n          '(greater|less) than( or equal)?|(starts?|ends|begins?) with|' +\n          'contained by|comes (before|after)|a (ref|reference))\\\\b'\n            },\n            {\n                token: keywordMapper,\n                regex: \"[a-zA-Z][a-zA-Z0-9_]*\\\\b\"\n            }\n        ],\n        \"comment\": [\n            {\n                token: \"comment\", // closing comment\n                regex: \"\\\\*\\\\)\",\n                next: \"start\"\n            }, {\n                defaultToken: \"comment\"\n            }\n        ]\n    }\n\n    this.normalizeRules();\n};\n\noop.inherits(AppleScriptHighlightRules, TextHighlightRules);\n\nexports.AppleScriptHighlightRules = AppleScriptHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/applescript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/applescript_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar AppleScriptHighlightRules = require(\"./applescript_highlight_rules\").AppleScriptHighlightRules;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = AppleScriptHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"--\";\n    this.blockComment = {start: \"(*\", end: \"*)\"};\n    this.$id = \"ace/mode/applescript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-asciidoc.js",
    "content": "ace.define(\"ace/mode/asciidoc_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar AsciidocHighlightRules = function() {\n    var identifierRe = \"[a-zA-Z\\u00a1-\\uffff]+\\\\b\";\n\n    this.$rules = {\n        \"start\": [\n            {token: \"empty\",   regex: /$/},\n            {token: \"literal\", regex: /^\\.{4,}\\s*$/,  next: \"listingBlock\"},\n            {token: \"literal\", regex: /^-{4,}\\s*$/,   next: \"literalBlock\"},\n            {token: \"string\",  regex: /^\\+{4,}\\s*$/,  next: \"passthroughBlock\"},\n            {token: \"keyword\", regex: /^={4,}\\s*$/},\n            {token: \"text\",    regex: /^\\s*$/},\n            {token: \"empty\", regex: \"\", next: \"dissallowDelimitedBlock\"}\n        ],\n\n        \"dissallowDelimitedBlock\": [\n            {include: \"paragraphEnd\"},\n            {token: \"comment\", regex: '^//.+$'},\n            {token: \"keyword\", regex: \"^(?:NOTE|TIP|IMPORTANT|WARNING|CAUTION):\"},\n\n            {include: \"listStart\"},\n            {token: \"literal\", regex: /^\\s+.+$/, next: \"indentedBlock\"},\n            {token: \"empty\",   regex: \"\", next: \"text\"}\n        ],\n\n        \"paragraphEnd\": [\n            {token: \"doc.comment\", regex: /^\\/{4,}\\s*$/,    next: \"commentBlock\"},\n            {token: \"tableBlock\",  regex: /^\\s*[|!]=+\\s*$/, next: \"tableBlock\"},\n            {token: \"keyword\",     regex: /^(?:--|''')\\s*$/, next: \"start\"},\n            {token: \"option\",      regex: /^\\[.*\\]\\s*$/,     next: \"start\"},\n            {token: \"pageBreak\",   regex: /^>{3,}$/,         next: \"start\"},\n            {token: \"literal\",     regex: /^\\.{4,}\\s*$/,     next: \"listingBlock\"},\n            {token: \"titleUnderline\",    regex: /^(?:={2,}|-{2,}|~{2,}|\\^{2,}|\\+{2,})\\s*$/, next: \"start\"},\n            {token: \"singleLineTitle\",   regex: /^={1,5}\\s+\\S.*$/, next: \"start\"},\n\n            {token: \"otherBlock\",    regex: /^(?:\\*{2,}|_{2,})\\s*$/, next: \"start\"},\n            {token: \"optionalTitle\", regex: /^\\.[^.\\s].+$/,  next: \"start\"}\n        ],\n\n        \"listStart\": [\n            {token: \"keyword\",  regex: /^\\s*(?:\\d+\\.|[a-zA-Z]\\.|[ixvmIXVM]+\\)|\\*{1,5}|-|\\.{1,5})\\s/, next: \"listText\"},\n            {token: \"meta.tag\", regex: /^.+(?::{2,4}|;;)(?: |$)/, next: \"listText\"},\n            {token: \"support.function.list.callout\", regex: /^(?:<\\d+>|\\d+>|>) /, next: \"text\"},\n            {token: \"keyword\",  regex: /^\\+\\s*$/, next: \"start\"}\n        ],\n\n        \"text\": [\n            {token: [\"link\", \"variable.language\"], regex: /((?:https?:\\/\\/|ftp:\\/\\/|file:\\/\\/|mailto:|callto:)[^\\s\\[]+)(\\[.*?\\])/},\n            {token: \"link\", regex: /(?:https?:\\/\\/|ftp:\\/\\/|file:\\/\\/|mailto:|callto:)[^\\s\\[]+/},\n            {token: \"link\", regex: /\\b[\\w\\.\\/\\-]+@[\\w\\.\\/\\-]+\\b/},\n            {include: \"macros\"},\n            {include: \"paragraphEnd\"},\n            {token: \"literal\", regex:/\\+{3,}/, next:\"smallPassthrough\"},\n            {token: \"escape\", regex: /\\((?:C|TM|R)\\)|\\.{3}|->|<-|=>|<=|&#(?:\\d+|x[a-fA-F\\d]+);|(?: |^)--(?=\\s+\\S)/},\n            {token: \"escape\", regex: /\\\\[_*'`+#]|\\\\{2}[_*'`+#]{2}/},\n            {token: \"keyword\", regex: /\\s\\+$/},\n            {token: \"text\", regex: identifierRe},\n            {token: [\"keyword\", \"string\", \"keyword\"],\n                regex: /(<<[\\w\\d\\-$]+,)(.*?)(>>|$)/},\n            {token: \"keyword\", regex: /<<[\\w\\d\\-$]+,?|>>/},\n            {token: \"constant.character\", regex: /\\({2,3}.*?\\){2,3}/},\n            {token: \"keyword\", regex: /\\[\\[.+?\\]\\]/},\n            {token: \"support\", regex: /^\\[{3}[\\w\\d =\\-]+\\]{3}/},\n\n            {include: \"quotes\"},\n            {token: \"empty\", regex: /^\\s*$/, next: \"start\"}\n        ],\n\n        \"listText\": [\n            {include: \"listStart\"},\n            {include: \"text\"}\n        ],\n\n        \"indentedBlock\": [\n            {token: \"literal\", regex: /^[\\s\\w].+$/, next: \"indentedBlock\"},\n            {token: \"literal\", regex: \"\", next: \"start\"}\n        ],\n\n        \"listingBlock\": [\n            {token: \"literal\", regex: /^\\.{4,}\\s*$/, next: \"dissallowDelimitedBlock\"},\n            {token: \"constant.numeric\", regex: '<\\\\d+>'},\n            {token: \"literal\", regex: '[^<]+'},\n            {token: \"literal\", regex: '<'}\n        ],\n        \"literalBlock\": [\n            {token: \"literal\", regex: /^-{4,}\\s*$/, next: \"dissallowDelimitedBlock\"},\n            {token: \"constant.numeric\", regex: '<\\\\d+>'},\n            {token: \"literal\", regex: '[^<]+'},\n            {token: \"literal\", regex: '<'}\n        ],\n        \"passthroughBlock\": [\n            {token: \"literal\", regex: /^\\+{4,}\\s*$/, next: \"dissallowDelimitedBlock\"},\n            {token: \"literal\", regex: identifierRe + \"|\\\\d+\"},\n            {include: \"macros\"},\n            {token: \"literal\", regex: \".\"}\n        ],\n\n        \"smallPassthrough\": [\n            {token: \"literal\", regex: /[+]{3,}/, next: \"dissallowDelimitedBlock\"},\n            {token: \"literal\", regex: /^\\s*$/, next: \"dissallowDelimitedBlock\"},\n            {token: \"literal\", regex: identifierRe + \"|\\\\d+\"},\n            {include: \"macros\"}\n        ],\n\n        \"commentBlock\": [\n            {token: \"doc.comment\", regex: /^\\/{4,}\\s*$/, next: \"dissallowDelimitedBlock\"},\n            {token: \"doc.comment\", regex: '^.*$'}\n        ],\n        \"tableBlock\": [\n            {token: \"tableBlock\", regex: /^\\s*\\|={3,}\\s*$/, next: \"dissallowDelimitedBlock\"},\n            {token: \"tableBlock\", regex: /^\\s*!={3,}\\s*$/, next: \"innerTableBlock\"},\n            {token: \"tableBlock\", regex: /\\|/},\n            {include: \"text\", noEscape: true}\n        ],\n        \"innerTableBlock\": [\n            {token: \"tableBlock\", regex: /^\\s*!={3,}\\s*$/, next: \"tableBlock\"},\n            {token: \"tableBlock\", regex: /^\\s*|={3,}\\s*$/, next: \"dissallowDelimitedBlock\"},\n            {token: \"tableBlock\", regex: /!/}\n        ],\n        \"macros\": [\n            {token: \"macro\", regex: /{[\\w\\-$]+}/},\n            {token: [\"text\", \"string\", \"text\", \"constant.character\", \"text\"], regex: /({)([\\w\\-$]+)(:)?(.+)?(})/},\n            {token: [\"text\", \"markup.list.macro\", \"keyword\", \"string\"], regex: /(\\w+)(footnote(?:ref)?::?)([^\\s\\[]+)?(\\[.*?\\])?/},\n            {token: [\"markup.list.macro\", \"keyword\", \"string\"], regex: /([a-zA-Z\\-][\\w\\.\\/\\-]*::?)([^\\s\\[]+)(\\[.*?\\])?/},\n            {token: [\"markup.list.macro\", \"keyword\"], regex: /([a-zA-Z\\-][\\w\\.\\/\\-]+::?)(\\[.*?\\])/},\n            {token: \"keyword\",     regex: /^:.+?:(?= |$)/}\n        ],\n\n        \"quotes\": [\n            {token: \"string.italic\", regex: /__[^_\\s].*?__/},\n            {token: \"string.italic\", regex: quoteRule(\"_\")},\n            \n            {token: \"keyword.bold\", regex: /\\*\\*[^*\\s].*?\\*\\*/},\n            {token: \"keyword.bold\", regex: quoteRule(\"\\\\*\")},\n            \n            {token: \"literal\", regex: quoteRule(\"\\\\+\")},\n            {token: \"literal\", regex: /\\+\\+[^+\\s].*?\\+\\+/},\n            {token: \"literal\", regex: /\\$\\$.+?\\$\\$/},\n            {token: \"literal\", regex: quoteRule(\"`\")},\n\n            {token: \"keyword\", regex: quoteRule(\"^\")},\n            {token: \"keyword\", regex: quoteRule(\"~\")},\n            {token: \"keyword\", regex: /##?/},\n            {token: \"keyword\", regex: /(?:\\B|^)``|\\b''/}\n        ]\n\n    };\n\n    function quoteRule(ch) {\n        var prefix = /\\w/.test(ch) ? \"\\\\b\" : \"(?:\\\\B|^)\";\n        return prefix + ch + \"[^\" + ch + \"].*?\" + ch + \"(?![\\\\w*])\";\n    }\n\n    var tokenMap = {\n        macro: \"constant.character\",\n        tableBlock: \"doc.comment\",\n        titleUnderline: \"markup.heading\",\n        singleLineTitle: \"markup.heading\",\n        pageBreak: \"string\",\n        option: \"string.regexp\",\n        otherBlock: \"markup.list\",\n        literal: \"support.function\",\n        optionalTitle: \"constant.numeric\",\n        escape: \"constant.language.escape\",\n        link: \"markup.underline.list\"\n    };\n\n    for (var state in this.$rules) {\n        var stateRules = this.$rules[state];\n        for (var i = stateRules.length; i--; ) {\n            var rule = stateRules[i];\n            if (rule.include || typeof rule == \"string\") {\n                var args = [i, 1].concat(this.$rules[rule.include || rule]);\n                if (rule.noEscape) {\n                    args = args.filter(function(x) {\n                        return !x.next;\n                    });\n                }\n                stateRules.splice.apply(stateRules, args);\n            } else if (rule.token in tokenMap) {\n                rule.token = tokenMap[rule.token];\n            }\n        }\n    }\n};\noop.inherits(AsciidocHighlightRules, TextHighlightRules);\n\nexports.AsciidocHighlightRules = AsciidocHighlightRules;\n});\n\nace.define(\"ace/mode/folding/asciidoc\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    this.foldingStartMarker = /^(?:\\|={10,}|[\\.\\/=\\-~^+]{4,}\\s*$|={1,5} )/;\n    this.singleLineHeadingRe = /^={1,5}(?=\\s+\\S)/;\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        if (!this.foldingStartMarker.test(line))\n            return \"\"\n\n        if (line[0] == \"=\") {\n            if (this.singleLineHeadingRe.test(line))\n                return \"start\";\n            if (session.getLine(row - 1).length != session.getLine(row).length)\n                return \"\";\n            return \"start\";\n        }\n        if (session.bgTokenizer.getState(row) == \"dissallowDelimitedBlock\")\n            return \"end\";\n        return \"start\";\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var startColumn = line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n        if (!line.match(this.foldingStartMarker))\n            return;\n\n        var token;\n        function getTokenType(row) {\n            token = session.getTokens(row)[0];\n            return token && token.type;\n        }\n\n        var levels = [\"=\",\"-\",\"~\",\"^\",\"+\"];\n        var heading = \"markup.heading\";\n        var singleLineHeadingRe = this.singleLineHeadingRe;\n        function getLevel() {\n            var match = token.value.match(singleLineHeadingRe);\n            if (match)\n                return match[0].length;\n            var level = levels.indexOf(token.value[0]) + 1;\n            if (level == 1) {\n                if (session.getLine(row - 1).length != session.getLine(row).length)\n                    return Infinity;\n            }\n            return level;\n        }\n\n        if (getTokenType(row) == heading) {\n            var startHeadingLevel = getLevel();\n            while (++row < maxRow) {\n                if (getTokenType(row) != heading)\n                    continue;\n                var level = getLevel();\n                if (level <= startHeadingLevel)\n                    break;\n            }\n\n            var isSingleLineHeading = token && token.value.match(this.singleLineHeadingRe);\n            endRow = isSingleLineHeading ? row - 1 : row - 2;\n\n            if (endRow > startRow) {\n                while (endRow > startRow && (!getTokenType(endRow) || token.value[0] == \"[\"))\n                    endRow--;\n            }\n\n            if (endRow > startRow) {\n                var endColumn = session.getLine(endRow).length;\n                return new Range(startRow, startColumn, endRow, endColumn);\n            }\n        } else {\n            var state = session.bgTokenizer.getState(row);\n            if (state == \"dissallowDelimitedBlock\") {\n                while (row -- > 0) {\n                    if (session.bgTokenizer.getState(row).lastIndexOf(\"Block\") == -1)\n                        break;\n                }\n                endRow = row + 1;\n                if (endRow < startRow) {\n                    var endColumn = session.getLine(row).length;\n                    return new Range(endRow, 5, startRow, startColumn - 5);\n                }\n            } else {\n                while (++row < maxRow) {\n                    if (session.bgTokenizer.getState(row) == \"dissallowDelimitedBlock\")\n                        break;\n                }\n                endRow = row;\n                if (endRow > startRow) {\n                    var endColumn = session.getLine(row).length;\n                    return new Range(startRow, 5, endRow, endColumn - 5);\n                }\n            }\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/asciidoc\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/asciidoc_highlight_rules\",\"ace/mode/folding/asciidoc\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar AsciidocHighlightRules = require(\"./asciidoc_highlight_rules\").AsciidocHighlightRules;\nvar AsciidocFoldMode = require(\"./folding/asciidoc\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = AsciidocHighlightRules;\n    \n    this.foldingRules = new AsciidocFoldMode();    \n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.type = \"text\";\n    this.getNextLineIndent = function(state, line, tab) {\n        if (state == \"listblock\") {\n            var match = /^((?:.+)?)([-+*][ ]+)/.exec(line);\n            if (match) {\n                return new Array(match[1].length + 1).join(\" \") + match[2];\n            } else {\n                return \"\";\n            }\n        } else {\n            return this.$getIndent(line);\n        }\n    };\n    this.$id = \"ace/mode/asciidoc\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-assembly_x86.js",
    "content": "ace.define(\"ace/mode/assembly_x86_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar AssemblyX86HighlightRules = function() {\n\n    this.$rules = { start: \n       [ { token: 'keyword.control.assembly',\n           regex: '\\\\b(?:aaa|aad|aam|aas|adc|add|addpd|addps|addsd|addss|addsubpd|addsubps|aesdec|aesdeclast|aesenc|aesenclast|aesimc|aeskeygenassist|and|andpd|andps|andnpd|andnps|arpl|blendpd|blendps|blendvpd|blendvps|bound|bsf|bsr|bswap|bt|btc|btr|bts|cbw|cwde|cdqe|clc|cld|cflush|clts|cmc|cmov(?:n?e|ge?|ae?|le?|be?|n?o|n?z)|cmp|cmppd|cmpps|cmps|cnpsb|cmpsw|cmpsd|cmpsq|cmpss|cmpxchg|cmpxchg8b|cmpxchg16b|comisd|comiss|cpuid|crc32|cvtdq2pd|cvtdq2ps|cvtpd2dq|cvtpd2pi|cvtpd2ps|cvtpi2pd|cvtpi2ps|cvtps2dq|cvtps2pd|cvtps2pi|cvtsd2si|cvtsd2ss|cvts2sd|cvtsi2ss|cvtss2sd|cvtss2si|cvttpd2dq|cvtpd2pi|cvttps2dq|cvttps2pi|cvttps2dq|cvttps2pi|cvttsd2si|cvttss2si|cwd|cdq|cqo|daa|das|dec|div|divpd|divps|divsd|divss|dppd|dpps|emms|enter|extractps|f2xm1|fabs|fadd|faddp|fiadd|fbld|fbstp|fchs|fclex|fnclex|fcmov(?:n?e|ge?|ae?|le?|be?|n?o|n?z)|fcom|fcmop|fcompp|fcomi|fcomip|fucomi|fucomip|fcos|fdecstp|fdiv|fdivp|fidiv|fdivr|fdivrp|fidivr|ffree|ficom|ficomp|fild|fincstp|finit|fnint|fist|fistp|fisttp|fld|fld1|fldl2t|fldl2e|fldpi|fldlg2|fldln2|fldz|fldcw|fldenv|fmul|fmulp|fimul|fnop|fpatan|fprem|fprem1|fptan|frndint|frstor|fsave|fnsave|fscale|fsin|fsincos|fsqrt|fst|fstp|fstcw|fnstcw|fstenv|fnstenv|fsts|fnstsw|fsub|fsubp|fisub|fsubr|fsubrp|fisubr|ftst|fucom|fucomp|fucompp|fxam|fxch|fxrstor|fxsave|fxtract|fyl2x|fyl2xp1|haddpd|haddps|husbpd|hsubps|idiv|imul|in|inc|ins|insb|insw|insd|insertps|int|into|invd|invplg|invpcid|iret|iretd|iretq|lahf|lar|lddqu|ldmxcsr|lds|les|lfs|lgs|lss|lea|leave|lfence|lgdt|lidt|llgdt|lmsw|lock|lods|lodsb|lodsw|lodsd|lodsq|lsl|ltr|maskmovdqu|maskmovq|maxpd|maxps|maxsd|maxss|mfence|minpd|minps|minsd|minss|monitor|mov|movapd|movaps|movbe|movd|movq|movddup|movdqa|movdqu|movq2q|movhlps|movhpd|movhps|movlhps|movlpd|movlps|movmskpd|movmskps|movntdqa|movntdq|movnti|movntpd|movntps|movntq|movq|movq2dq|movs|movsb|movsw|movsd|movsq|movsd|movshdup|movsldup|movss|movsx|movsxd|movupd|movups|movzx|mpsadbw|mul|mulpd|mulps|mulsd|mulss|mwait|neg|not|or|orpd|orps|out|outs|outsb|outsw|outsd|pabsb|pabsw|pabsd|packsswb|packssdw|packusdw|packuswbpaddb|paddw|paddd|paddq|paddsb|paddsw|paddusb|paddusw|palignr|pand|pandn|pause|pavgb|pavgw|pblendvb|pblendw|pclmulqdq|pcmpeqb|pcmpeqw|pcmpeqd|pcmpeqq|pcmpestri|pcmpestrm|pcmptb|pcmptgw|pcmpgtd|pcmpgtq|pcmpistri|pcmpisrm|pextrb|pextrd|pextrq|pextrw|phaddw|phaddd|phaddsw|phinposuw|phsubw|phsubd|phsubsw|pinsrb|pinsrd|pinsrq|pinsrw|pmaddubsw|pmadddwd|pmaxsb|pmaxsd|pmaxsw|pmaxsw|pmaxub|pmaxud|pmaxuw|pminsb|pminsd|pminsw|pminub|pminud|pminuw|pmovmskb|pmovsx|pmovzx|pmuldq|pmulhrsw|pmulhuw|pmulhw|pmulld|pmullw|pmuludw|pop|popa|popad|popcnt|popf|popfd|popfq|por|prefetch|psadbw|pshufb|pshufd|pshufhw|pshuflw|pshufw|psignb|psignw|psignd|pslldq|psllw|pslld|psllq|psraw|psrad|psrldq|psrlw|psrld|psrlq|psubb|psubw|psubd|psubq|psubsb|psubsw|psubusb|psubusw|test|ptest|punpckhbw|punpckhwd|punpckhdq|punpckhddq|punpcklbw|punpcklwd|punpckldq|punpckldqd|push|pusha|pushad|pushf|pushfd|pxor|prcl|rcr|rol|ror|rcpps|rcpss|rdfsbase|rdgsbase|rdmsr|rdpmc|rdrand|rdtsc|rdtscp|rep|repe|repz|repne|repnz|roundpd|roundps|roundsd|roundss|rsm|rsqrps|rsqrtss|sahf|sal|sar|shl|shr|sbb|scas|scasb|scasw|scasd|set(?:n?e|ge?|ae?|le?|be?|n?o|n?z)|sfence|sgdt|shld|shrd|shufpd|shufps|sidt|sldt|smsw|sqrtpd|sqrtps|sqrtsd|sqrtss|stc|std|stmxcsr|stos|stosb|stosw|stosd|stosq|str|sub|subpd|subps|subsd|subss|swapgs|syscall|sysenter|sysexit|sysret|teset|ucomisd|ucomiss|ud2|unpckhpd|unpckhps|unpcklpd|unpcklps|vbroadcast|vcvtph2ps|vcvtp2sph|verr|verw|vextractf128|vinsertf128|vmaskmov|vpermilpd|vpermilps|vperm2f128|vtestpd|vtestps|vzeroall|vzeroupper|wait|fwait|wbinvd|wrfsbase|wrgsbase|wrmsr|xadd|xchg|xgetbv|xlat|xlatb|xor|xorpd|xorps|xrstor|xsave|xsaveopt|xsetbv|lzcnt|extrq|insertq|movntsd|movntss|vfmaddpd|vfmaddps|vfmaddsd|vfmaddss|vfmaddsubbpd|vfmaddsubps|vfmsubaddpd|vfmsubaddps|vfmsubpd|vfmsubps|vfmsubsd|vfnmaddpd|vfnmaddps|vfnmaddsd|vfnmaddss|vfnmsubpd|vfnmusbps|vfnmusbsd|vfnmusbss|cvt|xor|cli|sti|hlt|nop|lock|wait|enter|leave|ret|loop(?:n?e|n?z)?|call|j(?:mp|n?e|ge?|ae?|le?|be?|n?o|n?z))\\\\b',\n           caseInsensitive: true },\n         { token: 'variable.parameter.register.assembly',\n           regex: '\\\\b(?:CS|DS|ES|FS|GS|SS|RAX|EAX|RBX|EBX|RCX|ECX|RDX|EDX|RCX|RIP|EIP|IP|RSP|ESP|SP|RSI|ESI|SI|RDI|EDI|DI|RFLAGS|EFLAGS|FLAGS|R8-15|(?:Y|X)MM(?:[0-9]|10|11|12|13|14|15)|(?:A|B|C|D)(?:X|H|L)|CR(?:[0-4]|DR(?:[0-7]|TR6|TR7|EFER)))\\\\b',\n           caseInsensitive: true },\n         { token: 'constant.character.decimal.assembly',\n           regex: '\\\\b[0-9]+\\\\b' },\n         { token: 'constant.character.hexadecimal.assembly',\n           regex: '\\\\b0x[A-F0-9]+\\\\b',\n           caseInsensitive: true },\n         { token: 'constant.character.hexadecimal.assembly',\n           regex: '\\\\b[A-F0-9]+h\\\\b',\n           caseInsensitive: true },\n         { token: 'string.assembly', regex: /'([^\\\\']|\\\\.)*'/ },\n         { token: 'string.assembly', regex: /\"([^\\\\\"]|\\\\.)*\"/ },\n         { token: 'support.function.directive.assembly',\n           regex: '^\\\\[',\n           push: \n            [ { token: 'support.function.directive.assembly',\n                regex: '\\\\]$',\n                next: 'pop' },\n              { defaultToken: 'support.function.directive.assembly' } ] },\n         { token: \n            [ 'support.function.directive.assembly',\n              'support.function.directive.assembly',\n              'entity.name.function.assembly' ],\n           regex: '(^struc)( )([_a-zA-Z][_a-zA-Z0-9]*)' },\n         { token: 'support.function.directive.assembly',\n           regex: '^endstruc\\\\b' },\n        { token: \n            [ 'support.function.directive.assembly',\n              'entity.name.function.assembly',\n              'support.function.directive.assembly',\n              'constant.character.assembly' ],\n           regex: '^(%macro )([_a-zA-Z][_a-zA-Z0-9]*)( )([0-9]+)' },\n         { token: 'support.function.directive.assembly',\n           regex: '^%endmacro' },\n         { token: \n            [ 'text',\n              'support.function.directive.assembly',\n              'text',\n              'entity.name.function.assembly' ],\n           regex: '(\\\\s*)(%define|%xdefine|%idefine|%undef|%assign|%defstr|%strcat|%strlen|%substr|%00|%0|%rotate|%rep|%endrep|%include|\\\\$\\\\$|\\\\$|%unmacro|%if|%elif|%else|%endif|%(?:el)?ifdef|%(?:el)?ifmacro|%(?:el)?ifctx|%(?:el)?ifidn|%(?:el)?ifidni|%(?:el)?ifid|%(?:el)?ifnum|%(?:el)?ifstr|%(?:el)?iftoken|%(?:el)?ifempty|%(?:el)?ifenv|%pathsearch|%depend|%use|%push|%pop|%repl|%arg|%stacksize|%local|%error|%warning|%fatal|%line|%!|%comment|%endcomment|__NASM_VERSION_ID__|__NASM_VER__|__FILE__|__LINE__|__BITS__|__OUTPUT_FORMAT__|__DATE__|__TIME__|__DATE_NUM__|_TIME__NUM__|__UTC_DATE__|__UTC_TIME__|__UTC_DATE_NUM__|__UTC_TIME_NUM__|__POSIX_TIME__|__PASS__|ISTRUC|AT|IEND|BITS 16|BITS 32|BITS 64|USE16|USE32|__SECT__|ABSOLUTE|EXTERN|GLOBAL|COMMON|CPU|FLOAT)\\\\b( ?)((?:[_a-zA-Z][_a-zA-Z0-9]*)?)',\n           caseInsensitive: true },\n          { token: 'support.function.directive.assembly',\n           regex: '\\\\b(?:d[bwdqtoy]|res[bwdqto]|equ|times|align|alignb|sectalign|section|ptr|byte|word|dword|qword|incbin)\\\\b',\n           caseInsensitive: true },\n         { token: 'entity.name.function.assembly', regex: '^\\\\s*%%[\\\\w.]+?:$' },\n         { token: 'entity.name.function.assembly', regex: '^\\\\s*%\\\\$[\\\\w.]+?:$' },\n         { token: 'entity.name.function.assembly', regex: '^[\\\\w.]+?:' },\n         { token: 'entity.name.function.assembly', regex: '^[\\\\w.]+?\\\\b' },\n         { token: 'comment.assembly', regex: ';.*$' } ] \n    }\n    \n    this.normalizeRules();\n};\n\nAssemblyX86HighlightRules.metaData = { fileTypes: [ 'asm' ],\n      name: 'Assembly x86',\n      scopeName: 'source.assembly' }\n\n\noop.inherits(AssemblyX86HighlightRules, TextHighlightRules);\n\nexports.AssemblyX86HighlightRules = AssemblyX86HighlightRules;\n});\n\nace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var range = this.indentationBlock(session, row);\n        if (range)\n            return range;\n\n        var re = /\\S/;\n        var line = session.getLine(row);\n        var startLevel = line.search(re);\n        if (startLevel == -1 || line[startLevel] != \"#\")\n            return;\n\n        var startColumn = line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var level = line.search(re);\n\n            if (level == -1)\n                continue;\n\n            if (line[level] != \"#\")\n                break;\n\n            endRow = row;\n        }\n\n        if (endRow > startRow) {\n            var endColumn = session.getLine(endRow).length;\n            return new Range(startRow, startColumn, endRow, endColumn);\n        }\n    };\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var indent = line.search(/\\S/);\n        var next = session.getLine(row + 1);\n        var prev = session.getLine(row - 1);\n        var prevIndent = prev.search(/\\S/);\n        var nextIndent = next.search(/\\S/);\n\n        if (indent == -1) {\n            session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n            return \"\";\n        }\n        if (prevIndent == -1) {\n            if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n                session.foldWidgets[row - 1] = \"\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"start\";\n            }\n        } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n            if (session.getLine(row - 2).search(/\\S/) == -1) {\n                session.foldWidgets[row - 1] = \"start\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"\";\n            }\n        }\n\n        if (prevIndent!= -1 && prevIndent < indent)\n            session.foldWidgets[row - 1] = \"start\";\n        else\n            session.foldWidgets[row - 1] = \"\";\n\n        if (indent < nextIndent)\n            return \"start\";\n        else\n            return \"\";\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/assembly_x86\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/assembly_x86_highlight_rules\",\"ace/mode/folding/coffee\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar AssemblyX86HighlightRules = require(\"./assembly_x86_highlight_rules\").AssemblyX86HighlightRules;\nvar FoldMode = require(\"./folding/coffee\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = AssemblyX86HighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \";\";\n    this.$id = \"ace/mode/assembly_x86\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-autohotkey.js",
    "content": "ace.define(\"ace/mode/autohotkey_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar AutoHotKeyHighlightRules = function() {\n    var autoItKeywords = 'And|ByRef|Case|Const|ContinueCase|ContinueLoop|Default|Dim|Do|Else|ElseIf|EndFunc|EndIf|EndSelect|EndSwitch|EndWith|Enum|Exit|ExitLoop|False|For|Func|Global|If|In|Local|Next|Not|Or|ReDim|Return|Select|Step|Switch|Then|To|True|Until|WEnd|While|With|' +       \n        'Abs|ACos|AdlibDisable|AdlibEnable|Asc|AscW|ASin|Assign|ATan|AutoItSetOption|AutoItWinGetTitle|AutoItWinSetTitle|Beep|Binary|BinaryLen|BinaryMid|BinaryToString|BitAND|BitNOT|BitOR|BitRotate|BitShift|BitXOR|BlockInput|Break|Call|CDTray|Ceiling|Chr|ChrW|ClipGet|ClipPut|ConsoleRead|ConsoleWrite|ConsoleWriteError|ControlClick|ControlCommand|ControlDisable|ControlEnable|ControlFocus|ControlGetFocus|ControlGetHandle|ControlGetPos|ControlGetText|ControlHide|ControlListView|ControlMove|ControlSend|ControlSetText|ControlShow|ControlTreeView|Cos|Dec|DirCopy|DirCreate|DirGetSize|DirMove|DirRemove|DllCall|DllCallbackFree|DllCallbackGetPtr|DllCallbackRegister|DllClose|DllOpen|DllStructCreate|DllStructGetData|DllStructGetPtr|DllStructGetSize|DllStructSetData|DriveGetDrive|DriveGetFileSystem|DriveGetLabel|DriveGetSerial|DriveGetType|DriveMapAdd|DriveMapDel|DriveMapGet|DriveSetLabel|DriveSpaceFree|DriveSpaceTotal|DriveStatus|EnvGet|EnvSet|EnvUpdate|Eval|Execute|Exp|FileChangeDir|FileClose|FileCopy|FileCreateNTFSLink|FileCreateShortcut|FileDelete|FileExists|FileFindFirstFile|FileFindNextFile|FileGetAttrib|FileGetLongName|FileGetShortcut|FileGetShortName|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileOpen|FileOpenDialog|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileSaveDialog|FileSelectFolder|FileSetAttrib|FileSetTime|FileWrite|FileWriteLine|Floor|FtpSetProxy|GUICreate|GUICtrlCreateAvi|GUICtrlCreateButton|GUICtrlCreateCheckbox|GUICtrlCreateCombo|GUICtrlCreateContextMenu|GUICtrlCreateDate|GUICtrlCreateDummy|GUICtrlCreateEdit|GUICtrlCreateGraphic|GUICtrlCreateGroup|GUICtrlCreateIcon|GUICtrlCreateInput|GUICtrlCreateLabel|GUICtrlCreateList|GUICtrlCreateListView|GUICtrlCreateListViewItem|GUICtrlCreateMenu|GUICtrlCreateMenuItem|GUICtrlCreateMonthCal|GUICtrlCreateObj|GUICtrlCreatePic|GUICtrlCreateProgress|GUICtrlCreateRadio|GUICtrlCreateSlider|GUICtrlCreateTab|GUICtrlCreateTabItem|GUICtrlCreateTreeView|GUICtrlCreateTreeViewItem|GUICtrlCreateUpdown|GUICtrlDelete|GUICtrlGetHandle|GUICtrlGetState|GUICtrlRead|GUICtrlRecvMsg|GUICtrlRegisterListViewSort|GUICtrlSendMsg|GUICtrlSendToDummy|GUICtrlSetBkColor|GUICtrlSetColor|GUICtrlSetCursor|GUICtrlSetData|GUICtrlSetFont|GUICtrlSetDefColor|GUICtrlSetDefBkColor|GUICtrlSetGraphic|GUICtrlSetImage|GUICtrlSetLimit|GUICtrlSetOnEvent|GUICtrlSetPos|GUICtrlSetResizing|GUICtrlSetState|GUICtrlSetStyle|GUICtrlSetTip|GUIDelete|GUIGetCursorInfo|GUIGetMsg|GUIGetStyle|GUIRegisterMsg|GUISetAccelerators()|GUISetBkColor|GUISetCoord|GUISetCursor|GUISetFont|GUISetHelp|GUISetIcon|GUISetOnEvent|GUISetState|GUISetStyle|GUIStartGroup|GUISwitch|Hex|HotKeySet|HttpSetProxy|HWnd|InetGet|InetGetSize|IniDelete|IniRead|IniReadSection|IniReadSectionNames|IniRenameSection|IniWrite|IniWriteSection|InputBox|Int|IsAdmin|IsArray|IsBinary|IsBool|IsDeclared|IsDllStruct|IsFloat|IsHWnd|IsInt|IsKeyword|IsNumber|IsObj|IsPtr|IsString|Log|MemGetStats|Mod|MouseClick|MouseClickDrag|MouseDown|MouseGetCursor|MouseGetPos|MouseMove|MouseUp|MouseWheel|MsgBox|Number|ObjCreate|ObjEvent|ObjGet|ObjName|Opt|Ping|PixelChecksum|PixelGetColor|PixelSearch|PluginClose|PluginOpen|ProcessClose|ProcessExists|ProcessGetStats|ProcessList|ProcessSetPriority|ProcessWait|ProcessWaitClose|ProgressOff|ProgressOn|ProgressSet|Ptr|Random|RegDelete|RegEnumKey|RegEnumVal|RegRead|RegWrite|Round|Run|RunAs|RunAsWait|RunWait|Send|SendKeepActive|SetError|SetExtended|ShellExecute|ShellExecuteWait|Shutdown|Sin|Sleep|SoundPlay|SoundSetWaveVolume|SplashImageOn|SplashOff|SplashTextOn|Sqrt|SRandom|StatusbarGetText|StderrRead|StdinWrite|StdioClose|StdoutRead|String|StringAddCR|StringCompare|StringFormat|StringInStr|StringIsAlNum|StringIsAlpha|StringIsASCII|StringIsDigit|StringIsFloat|StringIsInt|StringIsLower|StringIsSpace|StringIsUpper|StringIsXDigit|StringLeft|StringLen|StringLower|StringMid|StringRegExp|StringRegExpReplace|StringReplace|StringRight|StringSplit|StringStripCR|StringStripWS|StringToBinary|StringTrimLeft|StringTrimRight|StringUpper|Tan|TCPAccept|TCPCloseSocket|TCPConnect|TCPListen|TCPNameToIP|TCPRecv|TCPSend|TCPShutdown|TCPStartup|TimerDiff|TimerInit|ToolTip|TrayCreateItem|TrayCreateMenu|TrayGetMsg|TrayItemDelete|TrayItemGetHandle|TrayItemGetState|TrayItemGetText|TrayItemSetOnEvent|TrayItemSetState|TrayItemSetText|TraySetClick|TraySetIcon|TraySetOnEvent|TraySetPauseIcon|TraySetState|TraySetToolTip|TrayTip|UBound|UDPBind|UDPCloseSocket|UDPOpen|UDPRecv|UDPSend|UDPShutdown|UDPStartup|VarGetType|WinActivate|WinActive|WinClose|WinExists|WinFlash|WinGetCaretPos|WinGetClassList|WinGetClientSize|WinGetHandle|WinGetPos|WinGetProcess|WinGetState|WinGetText|WinGetTitle|WinKill|WinList|WinMenuSelectItem|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinSetOnTop|WinSetState|WinSetTitle|WinSetTrans|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive|' +\n        'ArrayAdd|ArrayBinarySearch|ArrayConcatenate|ArrayDelete|ArrayDisplay|ArrayFindAll|ArrayInsert|ArrayMax|ArrayMaxIndex|ArrayMin|ArrayMinIndex|ArrayPop|ArrayPush|ArrayReverse|ArraySearch|ArraySort|ArraySwap|ArrayToClip|ArrayToString|ArrayTrim|ChooseColor|ChooseFont|ClipBoard_ChangeChain|ClipBoard_Close|ClipBoard_CountFormats|ClipBoard_Empty|ClipBoard_EnumFormats|ClipBoard_FormatStr|ClipBoard_GetData|ClipBoard_GetDataEx|ClipBoard_GetFormatName|ClipBoard_GetOpenWindow|ClipBoard_GetOwner|ClipBoard_GetPriorityFormat|ClipBoard_GetSequenceNumber|ClipBoard_GetViewer|ClipBoard_IsFormatAvailable|ClipBoard_Open|ClipBoard_RegisterFormat|ClipBoard_SetData|ClipBoard_SetDataEx|ClipBoard_SetViewer|ClipPutFile|ColorConvertHSLtoRGB|ColorConvertRGBtoHSL|ColorGetBlue|ColorGetGreen|ColorGetRed|Date_Time_CompareFileTime|Date_Time_DOSDateTimeToArray|Date_Time_DOSDateTimeToFileTime|Date_Time_DOSDateTimeToStr|Date_Time_DOSDateToArray|Date_Time_DOSDateToStr|Date_Time_DOSTimeToArray|Date_Time_DOSTimeToStr|Date_Time_EncodeFileTime|Date_Time_EncodeSystemTime|Date_Time_FileTimeToArray|Date_Time_FileTimeToDOSDateTime|Date_Time_FileTimeToLocalFileTime|Date_Time_FileTimeToStr|Date_Time_FileTimeToSystemTime|Date_Time_GetFileTime|Date_Time_GetLocalTime|Date_Time_GetSystemTime|Date_Time_GetSystemTimeAdjustment|Date_Time_GetSystemTimeAsFileTime|Date_Time_GetSystemTimes|Date_Time_GetTickCount|Date_Time_GetTimeZoneInformation|Date_Time_LocalFileTimeToFileTime|Date_Time_SetFileTime|Date_Time_SetLocalTime|Date_Time_SetSystemTime|Date_Time_SetSystemTimeAdjustment|Date_Time_SetTimeZoneInformation|Date_Time_SystemTimeToArray|Date_Time_SystemTimeToDateStr|Date_Time_SystemTimeToDateTimeStr|Date_Time_SystemTimeToFileTime|Date_Time_SystemTimeToTimeStr|Date_Time_SystemTimeToTzSpecificLocalTime|Date_Time_TzSpecificLocalTimeToSystemTime|DateAdd|DateDayOfWeek|DateDaysInMonth|DateDiff|DateIsLeapYear|DateIsValid|DateTimeFormat|DateTimeSplit|DateToDayOfWeek|DateToDayOfWeekISO|DateToDayValue|DateToMonth|DayValueToDate|DebugBugReportEnv|DebugOut|DebugSetup|Degree|EventLog__Backup|EventLog__Clear|EventLog__Close|EventLog__Count|EventLog__DeregisterSource|EventLog__Full|EventLog__Notify|EventLog__Oldest|EventLog__Open|EventLog__OpenBackup|EventLog__Read|EventLog__RegisterSource|EventLog__Report|FileCountLines|FileCreate|FileListToArray|FilePrint|FileReadToArray|FileWriteFromArray|FileWriteLog|FileWriteToLine|GDIPlus_ArrowCapCreate|GDIPlus_ArrowCapDispose|GDIPlus_ArrowCapGetFillState|GDIPlus_ArrowCapGetHeight|GDIPlus_ArrowCapGetMiddleInset|GDIPlus_ArrowCapGetWidth|GDIPlus_ArrowCapSetFillState|GDIPlus_ArrowCapSetHeight|GDIPlus_ArrowCapSetMiddleInset|GDIPlus_ArrowCapSetWidth|GDIPlus_BitmapCloneArea|GDIPlus_BitmapCreateFromFile|GDIPlus_BitmapCreateFromGraphics|GDIPlus_BitmapCreateFromHBITMAP|GDIPlus_BitmapCreateHBITMAPFromBitmap|GDIPlus_BitmapDispose|GDIPlus_BitmapLockBits|GDIPlus_BitmapUnlockBits|GDIPlus_BrushClone|GDIPlus_BrushCreateSolid|GDIPlus_BrushDispose|GDIPlus_BrushGetType|GDIPlus_CustomLineCapDispose|GDIPlus_Decoders|GDIPlus_DecodersGetCount|GDIPlus_DecodersGetSize|GDIPlus_Encoders|GDIPlus_EncodersGetCLSID|GDIPlus_EncodersGetCount|GDIPlus_EncodersGetParamList|GDIPlus_EncodersGetParamListSize|GDIPlus_EncodersGetSize|GDIPlus_FontCreate|GDIPlus_FontDispose|GDIPlus_FontFamilyCreate|GDIPlus_FontFamilyDispose|GDIPlus_GraphicsClear|GDIPlus_GraphicsCreateFromHDC|GDIPlus_GraphicsCreateFromHWND|GDIPlus_GraphicsDispose|GDIPlus_GraphicsDrawArc|GDIPlus_GraphicsDrawBezier|GDIPlus_GraphicsDrawClosedCurve|GDIPlus_GraphicsDrawCurve|GDIPlus_GraphicsDrawEllipse|GDIPlus_GraphicsDrawImage|GDIPlus_GraphicsDrawImageRect|GDIPlus_GraphicsDrawImageRectRect|GDIPlus_GraphicsDrawLine|GDIPlus_GraphicsDrawPie|GDIPlus_GraphicsDrawPolygon|GDIPlus_GraphicsDrawRect|GDIPlus_GraphicsDrawString|GDIPlus_GraphicsDrawStringEx|GDIPlus_GraphicsFillClosedCurve|GDIPlus_GraphicsFillEllipse|GDIPlus_GraphicsFillPie|GDIPlus_GraphicsFillRect|GDIPlus_GraphicsGetDC|GDIPlus_GraphicsGetSmoothingMode|GDIPlus_GraphicsMeasureString|GDIPlus_GraphicsReleaseDC|GDIPlus_GraphicsSetSmoothingMode|GDIPlus_GraphicsSetTransform|GDIPlus_ImageDispose|GDIPlus_ImageGetGraphicsContext|GDIPlus_ImageGetHeight|GDIPlus_ImageGetWidth|GDIPlus_ImageLoadFromFile|GDIPlus_ImageSaveToFile|GDIPlus_ImageSaveToFileEx|GDIPlus_MatrixCreate|GDIPlus_MatrixDispose|GDIPlus_MatrixRotate|GDIPlus_ParamAdd|GDIPlus_ParamInit|GDIPlus_PenCreate|GDIPlus_PenDispose|GDIPlus_PenGetAlignment|GDIPlus_PenGetColor|GDIPlus_PenGetCustomEndCap|GDIPlus_PenGetDashCap|GDIPlus_PenGetDashStyle|GDIPlus_PenGetEndCap|GDIPlus_PenGetWidth|GDIPlus_PenSetAlignment|GDIPlus_PenSetColor|GDIPlus_PenSetCustomEndCap|GDIPlus_PenSetDashCap|GDIPlus_PenSetDashStyle|GDIPlus_PenSetEndCap|GDIPlus_PenSetWidth|GDIPlus_RectFCreate|GDIPlus_Shutdown|GDIPlus_Startup|GDIPlus_StringFormatCreate|GDIPlus_StringFormatDispose|GetIP|GUICtrlAVI_Close|GUICtrlAVI_Create|GUICtrlAVI_Destroy|GUICtrlAVI_Open|GUICtrlAVI_OpenEx|GUICtrlAVI_Play|GUICtrlAVI_Seek|GUICtrlAVI_Show|GUICtrlAVI_Stop|GUICtrlButton_Click|GUICtrlButton_Create|GUICtrlButton_Destroy|GUICtrlButton_Enable|GUICtrlButton_GetCheck|GUICtrlButton_GetFocus|GUICtrlButton_GetIdealSize|GUICtrlButton_GetImage|GUICtrlButton_GetImageList|GUICtrlButton_GetState|GUICtrlButton_GetText|GUICtrlButton_GetTextMargin|GUICtrlButton_SetCheck|GUICtrlButton_SetFocus|GUICtrlButton_SetImage|GUICtrlButton_SetImageList|GUICtrlButton_SetSize|GUICtrlButton_SetState|GUICtrlButton_SetStyle|GUICtrlButton_SetText|GUICtrlButton_SetTextMargin|GUICtrlButton_Show|GUICtrlComboBox_AddDir|GUICtrlComboBox_AddString|GUICtrlComboBox_AutoComplete|GUICtrlComboBox_BeginUpdate|GUICtrlComboBox_Create|GUICtrlComboBox_DeleteString|GUICtrlComboBox_Destroy|GUICtrlComboBox_EndUpdate|GUICtrlComboBox_FindString|GUICtrlComboBox_FindStringExact|GUICtrlComboBox_GetComboBoxInfo|GUICtrlComboBox_GetCount|GUICtrlComboBox_GetCurSel|GUICtrlComboBox_GetDroppedControlRect|GUICtrlComboBox_GetDroppedControlRectEx|GUICtrlComboBox_GetDroppedState|GUICtrlComboBox_GetDroppedWidth|GUICtrlComboBox_GetEditSel|GUICtrlComboBox_GetEditText|GUICtrlComboBox_GetExtendedUI|GUICtrlComboBox_GetHorizontalExtent|GUICtrlComboBox_GetItemHeight|GUICtrlComboBox_GetLBText|GUICtrlComboBox_GetLBTextLen|GUICtrlComboBox_GetList|GUICtrlComboBox_GetListArray|GUICtrlComboBox_GetLocale|GUICtrlComboBox_GetLocaleCountry|GUICtrlComboBox_GetLocaleLang|GUICtrlComboBox_GetLocalePrimLang|GUICtrlComboBox_GetLocaleSubLang|GUICtrlComboBox_GetMinVisible|GUICtrlComboBox_GetTopIndex|GUICtrlComboBox_InitStorage|GUICtrlComboBox_InsertString|GUICtrlComboBox_LimitText|GUICtrlComboBox_ReplaceEditSel|GUICtrlComboBox_ResetContent|GUICtrlComboBox_SelectString|GUICtrlComboBox_SetCurSel|GUICtrlComboBox_SetDroppedWidth|GUICtrlComboBox_SetEditSel|GUICtrlComboBox_SetEditText|GUICtrlComboBox_SetExtendedUI|GUICtrlComboBox_SetHorizontalExtent|GUICtrlComboBox_SetItemHeight|GUICtrlComboBox_SetMinVisible|GUICtrlComboBox_SetTopIndex|GUICtrlComboBox_ShowDropDown|GUICtrlComboBoxEx_AddDir|GUICtrlComboBoxEx_AddString|GUICtrlComboBoxEx_BeginUpdate|GUICtrlComboBoxEx_Create|GUICtrlComboBoxEx_CreateSolidBitMap|GUICtrlComboBoxEx_DeleteString|GUICtrlComboBoxEx_Destroy|GUICtrlComboBoxEx_EndUpdate|GUICtrlComboBoxEx_FindStringExact|GUICtrlComboBoxEx_GetComboBoxInfo|GUICtrlComboBoxEx_GetComboControl|GUICtrlComboBoxEx_GetCount|GUICtrlComboBoxEx_GetCurSel|GUICtrlComboBoxEx_GetDroppedControlRect|GUICtrlComboBoxEx_GetDroppedControlRectEx|GUICtrlComboBoxEx_GetDroppedState|GUICtrlComboBoxEx_GetDroppedWidth|GUICtrlComboBoxEx_GetEditControl|GUICtrlComboBoxEx_GetEditSel|GUICtrlComboBoxEx_GetEditText|GUICtrlComboBoxEx_GetExtendedStyle|GUICtrlComboBoxEx_GetExtendedUI|GUICtrlComboBoxEx_GetImageList|GUICtrlComboBoxEx_GetItem|GUICtrlComboBoxEx_GetItemEx|GUICtrlComboBoxEx_GetItemHeight|GUICtrlComboBoxEx_GetItemImage|GUICtrlComboBoxEx_GetItemIndent|GUICtrlComboBoxEx_GetItemOverlayImage|GUICtrlComboBoxEx_GetItemParam|GUICtrlComboBoxEx_GetItemSelectedImage|GUICtrlComboBoxEx_GetItemText|GUICtrlComboBoxEx_GetItemTextLen|GUICtrlComboBoxEx_GetList|GUICtrlComboBoxEx_GetListArray|GUICtrlComboBoxEx_GetLocale|GUICtrlComboBoxEx_GetLocaleCountry|GUICtrlComboBoxEx_GetLocaleLang|GUICtrlComboBoxEx_GetLocalePrimLang|GUICtrlComboBoxEx_GetLocaleSubLang|GUICtrlComboBoxEx_GetMinVisible|GUICtrlComboBoxEx_GetTopIndex|GUICtrlComboBoxEx_InitStorage|GUICtrlComboBoxEx_InsertString|GUICtrlComboBoxEx_LimitText|GUICtrlComboBoxEx_ReplaceEditSel|GUICtrlComboBoxEx_ResetContent|GUICtrlComboBoxEx_SetCurSel|GUICtrlComboBoxEx_SetDroppedWidth|GUICtrlComboBoxEx_SetEditSel|GUICtrlComboBoxEx_SetEditText|GUICtrlComboBoxEx_SetExtendedStyle|GUICtrlComboBoxEx_SetExtendedUI|GUICtrlComboBoxEx_SetImageList|GUICtrlComboBoxEx_SetItem|GUICtrlComboBoxEx_SetItemEx|GUICtrlComboBoxEx_SetItemHeight|GUICtrlComboBoxEx_SetItemImage|GUICtrlComboBoxEx_SetItemIndent|GUICtrlComboBoxEx_SetItemOverlayImage|GUICtrlComboBoxEx_SetItemParam|GUICtrlComboBoxEx_SetItemSelectedImage|GUICtrlComboBoxEx_SetMinVisible|GUICtrlComboBoxEx_SetTopIndex|GUICtrlComboBoxEx_ShowDropDown|GUICtrlDTP_Create|GUICtrlDTP_Destroy|GUICtrlDTP_GetMCColor|GUICtrlDTP_GetMCFont|GUICtrlDTP_GetMonthCal|GUICtrlDTP_GetRange|GUICtrlDTP_GetRangeEx|GUICtrlDTP_GetSystemTime|GUICtrlDTP_GetSystemTimeEx|GUICtrlDTP_SetFormat|GUICtrlDTP_SetMCColor|GUICtrlDTP_SetMCFont|GUICtrlDTP_SetRange|GUICtrlDTP_SetRangeEx|GUICtrlDTP_SetSystemTime|GUICtrlDTP_SetSystemTimeEx|GUICtrlEdit_AppendText|GUICtrlEdit_BeginUpdate|GUICtrlEdit_CanUndo|GUICtrlEdit_CharFromPos|GUICtrlEdit_Create|GUICtrlEdit_Destroy|GUICtrlEdit_EmptyUndoBuffer|GUICtrlEdit_EndUpdate|GUICtrlEdit_Find|GUICtrlEdit_FmtLines|GUICtrlEdit_GetFirstVisibleLine|GUICtrlEdit_GetLimitText|GUICtrlEdit_GetLine|GUICtrlEdit_GetLineCount|GUICtrlEdit_GetMargins|GUICtrlEdit_GetModify|GUICtrlEdit_GetPasswordChar|GUICtrlEdit_GetRECT|GUICtrlEdit_GetRECTEx|GUICtrlEdit_GetSel|GUICtrlEdit_GetText|GUICtrlEdit_GetTextLen|GUICtrlEdit_HideBalloonTip|GUICtrlEdit_InsertText|GUICtrlEdit_LineFromChar|GUICtrlEdit_LineIndex|GUICtrlEdit_LineLength|GUICtrlEdit_LineScroll|GUICtrlEdit_PosFromChar|GUICtrlEdit_ReplaceSel|GUICtrlEdit_Scroll|GUICtrlEdit_SetLimitText|GUICtrlEdit_SetMargins|GUICtrlEdit_SetModify|GUICtrlEdit_SetPasswordChar|GUICtrlEdit_SetReadOnly|GUICtrlEdit_SetRECT|GUICtrlEdit_SetRECTEx|GUICtrlEdit_SetRECTNP|GUICtrlEdit_SetRectNPEx|GUICtrlEdit_SetSel|GUICtrlEdit_SetTabStops|GUICtrlEdit_SetText|GUICtrlEdit_ShowBalloonTip|GUICtrlEdit_Undo|GUICtrlHeader_AddItem|GUICtrlHeader_ClearFilter|GUICtrlHeader_ClearFilterAll|GUICtrlHeader_Create|GUICtrlHeader_CreateDragImage|GUICtrlHeader_DeleteItem|GUICtrlHeader_Destroy|GUICtrlHeader_EditFilter|GUICtrlHeader_GetBitmapMargin|GUICtrlHeader_GetImageList|GUICtrlHeader_GetItem|GUICtrlHeader_GetItemAlign|GUICtrlHeader_GetItemBitmap|GUICtrlHeader_GetItemCount|GUICtrlHeader_GetItemDisplay|GUICtrlHeader_GetItemFlags|GUICtrlHeader_GetItemFormat|GUICtrlHeader_GetItemImage|GUICtrlHeader_GetItemOrder|GUICtrlHeader_GetItemParam|GUICtrlHeader_GetItemRect|GUICtrlHeader_GetItemRectEx|GUICtrlHeader_GetItemText|GUICtrlHeader_GetItemWidth|GUICtrlHeader_GetOrderArray|GUICtrlHeader_GetUnicodeFormat|GUICtrlHeader_HitTest|GUICtrlHeader_InsertItem|GUICtrlHeader_Layout|GUICtrlHeader_OrderToIndex|GUICtrlHeader_SetBitmapMargin|GUICtrlHeader_SetFilterChangeTimeout|GUICtrlHeader_SetHotDivider|GUICtrlHeader_SetImageList|GUICtrlHeader_SetItem|GUICtrlHeader_SetItemAlign|GUICtrlHeader_SetItemBitmap|GUICtrlHeader_SetItemDisplay|GUICtrlHeader_SetItemFlags|GUICtrlHeader_SetItemFormat|GUICtrlHeader_SetItemImage|GUICtrlHeader_SetItemOrder|GUICtrlHeader_SetItemParam|GUICtrlHeader_SetItemText|GUICtrlHeader_SetItemWidth|GUICtrlHeader_SetOrderArray|GUICtrlHeader_SetUnicodeFormat|GUICtrlIpAddress_ClearAddress|GUICtrlIpAddress_Create|GUICtrlIpAddress_Destroy|GUICtrlIpAddress_Get|GUICtrlIpAddress_GetArray|GUICtrlIpAddress_GetEx|GUICtrlIpAddress_IsBlank|GUICtrlIpAddress_Set|GUICtrlIpAddress_SetArray|GUICtrlIpAddress_SetEx|GUICtrlIpAddress_SetFocus|GUICtrlIpAddress_SetFont|GUICtrlIpAddress_SetRange|GUICtrlIpAddress_ShowHide|GUICtrlListBox_AddFile|GUICtrlListBox_AddString|GUICtrlListBox_BeginUpdate|GUICtrlListBox_Create|GUICtrlListBox_DeleteString|GUICtrlListBox_Destroy|GUICtrlListBox_Dir|GUICtrlListBox_EndUpdate|GUICtrlListBox_FindInText|GUICtrlListBox_FindString|GUICtrlListBox_GetAnchorIndex|GUICtrlListBox_GetCaretIndex|GUICtrlListBox_GetCount|GUICtrlListBox_GetCurSel|GUICtrlListBox_GetHorizontalExtent|GUICtrlListBox_GetItemData|GUICtrlListBox_GetItemHeight|GUICtrlListBox_GetItemRect|GUICtrlListBox_GetItemRectEx|GUICtrlListBox_GetListBoxInfo|GUICtrlListBox_GetLocale|GUICtrlListBox_GetLocaleCountry|GUICtrlListBox_GetLocaleLang|GUICtrlListBox_GetLocalePrimLang|GUICtrlListBox_GetLocaleSubLang|GUICtrlListBox_GetSel|GUICtrlListBox_GetSelCount|GUICtrlListBox_GetSelItems|GUICtrlListBox_GetSelItemsText|GUICtrlListBox_GetText|GUICtrlListBox_GetTextLen|GUICtrlListBox_GetTopIndex|GUICtrlListBox_InitStorage|GUICtrlListBox_InsertString|GUICtrlListBox_ItemFromPoint|GUICtrlListBox_ReplaceString|GUICtrlListBox_ResetContent|GUICtrlListBox_SelectString|GUICtrlListBox_SelItemRange|GUICtrlListBox_SelItemRangeEx|GUICtrlListBox_SetAnchorIndex|GUICtrlListBox_SetCaretIndex|GUICtrlListBox_SetColumnWidth|GUICtrlListBox_SetCurSel|GUICtrlListBox_SetHorizontalExtent|GUICtrlListBox_SetItemData|GUICtrlListBox_SetItemHeight|GUICtrlListBox_SetLocale|GUICtrlListBox_SetSel|GUICtrlListBox_SetTabStops|GUICtrlListBox_SetTopIndex|GUICtrlListBox_Sort|GUICtrlListBox_SwapString|GUICtrlListBox_UpdateHScroll|GUICtrlListView_AddArray|GUICtrlListView_AddColumn|GUICtrlListView_AddItem|GUICtrlListView_AddSubItem|GUICtrlListView_ApproximateViewHeight|GUICtrlListView_ApproximateViewRect|GUICtrlListView_ApproximateViewWidth|GUICtrlListView_Arrange|GUICtrlListView_BeginUpdate|GUICtrlListView_CancelEditLabel|GUICtrlListView_ClickItem|GUICtrlListView_CopyItems|GUICtrlListView_Create|GUICtrlListView_CreateDragImage|GUICtrlListView_CreateSolidBitMap|GUICtrlListView_DeleteAllItems|GUICtrlListView_DeleteColumn|GUICtrlListView_DeleteItem|GUICtrlListView_DeleteItemsSelected|GUICtrlListView_Destroy|GUICtrlListView_DrawDragImage|GUICtrlListView_EditLabel|GUICtrlListView_EnableGroupView|GUICtrlListView_EndUpdate|GUICtrlListView_EnsureVisible|GUICtrlListView_FindInText|GUICtrlListView_FindItem|GUICtrlListView_FindNearest|GUICtrlListView_FindParam|GUICtrlListView_FindText|GUICtrlListView_GetBkColor|GUICtrlListView_GetBkImage|GUICtrlListView_GetCallbackMask|GUICtrlListView_GetColumn|GUICtrlListView_GetColumnCount|GUICtrlListView_GetColumnOrder|GUICtrlListView_GetColumnOrderArray|GUICtrlListView_GetColumnWidth|GUICtrlListView_GetCounterPage|GUICtrlListView_GetEditControl|GUICtrlListView_GetExtendedListViewStyle|GUICtrlListView_GetGroupInfo|GUICtrlListView_GetGroupViewEnabled|GUICtrlListView_GetHeader|GUICtrlListView_GetHotCursor|GUICtrlListView_GetHotItem|GUICtrlListView_GetHoverTime|GUICtrlListView_GetImageList|GUICtrlListView_GetISearchString|GUICtrlListView_GetItem|GUICtrlListView_GetItemChecked|GUICtrlListView_GetItemCount|GUICtrlListView_GetItemCut|GUICtrlListView_GetItemDropHilited|GUICtrlListView_GetItemEx|GUICtrlListView_GetItemFocused|GUICtrlListView_GetItemGroupID|GUICtrlListView_GetItemImage|GUICtrlListView_GetItemIndent|GUICtrlListView_GetItemParam|GUICtrlListView_GetItemPosition|GUICtrlListView_GetItemPositionX|GUICtrlListView_GetItemPositionY|GUICtrlListView_GetItemRect|GUICtrlListView_GetItemRectEx|GUICtrlListView_GetItemSelected|GUICtrlListView_GetItemSpacing|GUICtrlListView_GetItemSpacingX|GUICtrlListView_GetItemSpacingY|GUICtrlListView_GetItemState|GUICtrlListView_GetItemStateImage|GUICtrlListView_GetItemText|GUICtrlListView_GetItemTextArray|GUICtrlListView_GetItemTextString|GUICtrlListView_GetNextItem|GUICtrlListView_GetNumberOfWorkAreas|GUICtrlListView_GetOrigin|GUICtrlListView_GetOriginX|GUICtrlListView_GetOriginY|GUICtrlListView_GetOutlineColor|GUICtrlListView_GetSelectedColumn|GUICtrlListView_GetSelectedCount|GUICtrlListView_GetSelectedIndices|GUICtrlListView_GetSelectionMark|GUICtrlListView_GetStringWidth|GUICtrlListView_GetSubItemRect|GUICtrlListView_GetTextBkColor|GUICtrlListView_GetTextColor|GUICtrlListView_GetToolTips|GUICtrlListView_GetTopIndex|GUICtrlListView_GetUnicodeFormat|GUICtrlListView_GetView|GUICtrlListView_GetViewDetails|GUICtrlListView_GetViewLarge|GUICtrlListView_GetViewList|GUICtrlListView_GetViewRect|GUICtrlListView_GetViewSmall|GUICtrlListView_GetViewTile|GUICtrlListView_HideColumn|GUICtrlListView_HitTest|GUICtrlListView_InsertColumn|GUICtrlListView_InsertGroup|GUICtrlListView_InsertItem|GUICtrlListView_JustifyColumn|GUICtrlListView_MapIDToIndex|GUICtrlListView_MapIndexToID|GUICtrlListView_RedrawItems|GUICtrlListView_RegisterSortCallBack|GUICtrlListView_RemoveAllGroups|GUICtrlListView_RemoveGroup|GUICtrlListView_Scroll|GUICtrlListView_SetBkColor|GUICtrlListView_SetBkImage|GUICtrlListView_SetCallBackMask|GUICtrlListView_SetColumn|GUICtrlListView_SetColumnOrder|GUICtrlListView_SetColumnOrderArray|GUICtrlListView_SetColumnWidth|GUICtrlListView_SetExtendedListViewStyle|GUICtrlListView_SetGroupInfo|GUICtrlListView_SetHotItem|GUICtrlListView_SetHoverTime|GUICtrlListView_SetIconSpacing|GUICtrlListView_SetImageList|GUICtrlListView_SetItem|GUICtrlListView_SetItemChecked|GUICtrlListView_SetItemCount|GUICtrlListView_SetItemCut|GUICtrlListView_SetItemDropHilited|GUICtrlListView_SetItemEx|GUICtrlListView_SetItemFocused|GUICtrlListView_SetItemGroupID|GUICtrlListView_SetItemImage|GUICtrlListView_SetItemIndent|GUICtrlListView_SetItemParam|GUICtrlListView_SetItemPosition|GUICtrlListView_SetItemPosition32|GUICtrlListView_SetItemSelected|GUICtrlListView_SetItemState|GUICtrlListView_SetItemStateImage|GUICtrlListView_SetItemText|GUICtrlListView_SetOutlineColor|GUICtrlListView_SetSelectedColumn|GUICtrlListView_SetSelectionMark|GUICtrlListView_SetTextBkColor|GUICtrlListView_SetTextColor|GUICtrlListView_SetToolTips|GUICtrlListView_SetUnicodeFormat|GUICtrlListView_SetView|GUICtrlListView_SetWorkAreas|GUICtrlListView_SimpleSort|GUICtrlListView_SortItems|GUICtrlListView_SubItemHitTest|GUICtrlListView_UnRegisterSortCallBack|GUICtrlMenu_AddMenuItem|GUICtrlMenu_AppendMenu|GUICtrlMenu_CheckMenuItem|GUICtrlMenu_CheckRadioItem|GUICtrlMenu_CreateMenu|GUICtrlMenu_CreatePopup|GUICtrlMenu_DeleteMenu|GUICtrlMenu_DestroyMenu|GUICtrlMenu_DrawMenuBar|GUICtrlMenu_EnableMenuItem|GUICtrlMenu_FindItem|GUICtrlMenu_FindParent|GUICtrlMenu_GetItemBmp|GUICtrlMenu_GetItemBmpChecked|GUICtrlMenu_GetItemBmpUnchecked|GUICtrlMenu_GetItemChecked|GUICtrlMenu_GetItemCount|GUICtrlMenu_GetItemData|GUICtrlMenu_GetItemDefault|GUICtrlMenu_GetItemDisabled|GUICtrlMenu_GetItemEnabled|GUICtrlMenu_GetItemGrayed|GUICtrlMenu_GetItemHighlighted|GUICtrlMenu_GetItemID|GUICtrlMenu_GetItemInfo|GUICtrlMenu_GetItemRect|GUICtrlMenu_GetItemRectEx|GUICtrlMenu_GetItemState|GUICtrlMenu_GetItemStateEx|GUICtrlMenu_GetItemSubMenu|GUICtrlMenu_GetItemText|GUICtrlMenu_GetItemType|GUICtrlMenu_GetMenu|GUICtrlMenu_GetMenuBackground|GUICtrlMenu_GetMenuBarInfo|GUICtrlMenu_GetMenuContextHelpID|GUICtrlMenu_GetMenuData|GUICtrlMenu_GetMenuDefaultItem|GUICtrlMenu_GetMenuHeight|GUICtrlMenu_GetMenuInfo|GUICtrlMenu_GetMenuStyle|GUICtrlMenu_GetSystemMenu|GUICtrlMenu_InsertMenuItem|GUICtrlMenu_InsertMenuItemEx|GUICtrlMenu_IsMenu|GUICtrlMenu_LoadMenu|GUICtrlMenu_MapAccelerator|GUICtrlMenu_MenuItemFromPoint|GUICtrlMenu_RemoveMenu|GUICtrlMenu_SetItemBitmaps|GUICtrlMenu_SetItemBmp|GUICtrlMenu_SetItemBmpChecked|GUICtrlMenu_SetItemBmpUnchecked|GUICtrlMenu_SetItemChecked|GUICtrlMenu_SetItemData|GUICtrlMenu_SetItemDefault|GUICtrlMenu_SetItemDisabled|GUICtrlMenu_SetItemEnabled|GUICtrlMenu_SetItemGrayed|GUICtrlMenu_SetItemHighlighted|GUICtrlMenu_SetItemID|GUICtrlMenu_SetItemInfo|GUICtrlMenu_SetItemState|GUICtrlMenu_SetItemSubMenu|GUICtrlMenu_SetItemText|GUICtrlMenu_SetItemType|GUICtrlMenu_SetMenu|GUICtrlMenu_SetMenuBackground|GUICtrlMenu_SetMenuContextHelpID|GUICtrlMenu_SetMenuData|GUICtrlMenu_SetMenuDefaultItem|GUICtrlMenu_SetMenuHeight|GUICtrlMenu_SetMenuInfo|GUICtrlMenu_SetMenuStyle|GUICtrlMenu_TrackPopupMenu|GUICtrlMonthCal_Create|GUICtrlMonthCal_Destroy|GUICtrlMonthCal_GetColor|GUICtrlMonthCal_GetColorArray|GUICtrlMonthCal_GetCurSel|GUICtrlMonthCal_GetCurSelStr|GUICtrlMonthCal_GetFirstDOW|GUICtrlMonthCal_GetFirstDOWStr|GUICtrlMonthCal_GetMaxSelCount|GUICtrlMonthCal_GetMaxTodayWidth|GUICtrlMonthCal_GetMinReqHeight|GUICtrlMonthCal_GetMinReqRect|GUICtrlMonthCal_GetMinReqRectArray|GUICtrlMonthCal_GetMinReqWidth|GUICtrlMonthCal_GetMonthDelta|GUICtrlMonthCal_GetMonthRange|GUICtrlMonthCal_GetMonthRangeMax|GUICtrlMonthCal_GetMonthRangeMaxStr|GUICtrlMonthCal_GetMonthRangeMin|GUICtrlMonthCal_GetMonthRangeMinStr|GUICtrlMonthCal_GetMonthRangeSpan|GUICtrlMonthCal_GetRange|GUICtrlMonthCal_GetRangeMax|GUICtrlMonthCal_GetRangeMaxStr|GUICtrlMonthCal_GetRangeMin|GUICtrlMonthCal_GetRangeMinStr|GUICtrlMonthCal_GetSelRange|GUICtrlMonthCal_GetSelRangeMax|GUICtrlMonthCal_GetSelRangeMaxStr|GUICtrlMonthCal_GetSelRangeMin|GUICtrlMonthCal_GetSelRangeMinStr|GUICtrlMonthCal_GetToday|GUICtrlMonthCal_GetTodayStr|GUICtrlMonthCal_GetUnicodeFormat|GUICtrlMonthCal_HitTest|GUICtrlMonthCal_SetColor|GUICtrlMonthCal_SetCurSel|GUICtrlMonthCal_SetDayState|GUICtrlMonthCal_SetFirstDOW|GUICtrlMonthCal_SetMaxSelCount|GUICtrlMonthCal_SetMonthDelta|GUICtrlMonthCal_SetRange|GUICtrlMonthCal_SetSelRange|GUICtrlMonthCal_SetToday|GUICtrlMonthCal_SetUnicodeFormat|GUICtrlRebar_AddBand|GUICtrlRebar_AddToolBarBand|GUICtrlRebar_BeginDrag|GUICtrlRebar_Create|GUICtrlRebar_DeleteBand|GUICtrlRebar_Destroy|GUICtrlRebar_DragMove|GUICtrlRebar_EndDrag|GUICtrlRebar_GetBandBackColor|GUICtrlRebar_GetBandBorders|GUICtrlRebar_GetBandBordersEx|GUICtrlRebar_GetBandChildHandle|GUICtrlRebar_GetBandChildSize|GUICtrlRebar_GetBandCount|GUICtrlRebar_GetBandForeColor|GUICtrlRebar_GetBandHeaderSize|GUICtrlRebar_GetBandID|GUICtrlRebar_GetBandIdealSize|GUICtrlRebar_GetBandLength|GUICtrlRebar_GetBandLParam|GUICtrlRebar_GetBandMargins|GUICtrlRebar_GetBandMarginsEx|GUICtrlRebar_GetBandRect|GUICtrlRebar_GetBandRectEx|GUICtrlRebar_GetBandStyle|GUICtrlRebar_GetBandStyleBreak|GUICtrlRebar_GetBandStyleChildEdge|GUICtrlRebar_GetBandStyleFixedBMP|GUICtrlRebar_GetBandStyleFixedSize|GUICtrlRebar_GetBandStyleGripperAlways|GUICtrlRebar_GetBandStyleHidden|GUICtrlRebar_GetBandStyleHideTitle|GUICtrlRebar_GetBandStyleNoGripper|GUICtrlRebar_GetBandStyleTopAlign|GUICtrlRebar_GetBandStyleUseChevron|GUICtrlRebar_GetBandStyleVariableHeight|GUICtrlRebar_GetBandText|GUICtrlRebar_GetBarHeight|GUICtrlRebar_GetBKColor|GUICtrlRebar_GetColorScheme|GUICtrlRebar_GetRowCount|GUICtrlRebar_GetRowHeight|GUICtrlRebar_GetTextColor|GUICtrlRebar_GetToolTips|GUICtrlRebar_GetUnicodeFormat|GUICtrlRebar_HitTest|GUICtrlRebar_IDToIndex|GUICtrlRebar_MaximizeBand|GUICtrlRebar_MinimizeBand|GUICtrlRebar_MoveBand|GUICtrlRebar_SetBandBackColor|GUICtrlRebar_SetBandForeColor|GUICtrlRebar_SetBandHeaderSize|GUICtrlRebar_SetBandID|GUICtrlRebar_SetBandIdealSize|GUICtrlRebar_SetBandLength|GUICtrlRebar_SetBandLParam|GUICtrlRebar_SetBandStyle|GUICtrlRebar_SetBandStyleBreak|GUICtrlRebar_SetBandStyleChildEdge|GUICtrlRebar_SetBandStyleFixedBMP|GUICtrlRebar_SetBandStyleFixedSize|GUICtrlRebar_SetBandStyleGripperAlways|GUICtrlRebar_SetBandStyleHidden|GUICtrlRebar_SetBandStyleHideTitle|GUICtrlRebar_SetBandStyleNoGripper|GUICtrlRebar_SetBandStyleTopAlign|GUICtrlRebar_SetBandStyleUseChevron|GUICtrlRebar_SetBandStyleVariableHeight|GUICtrlRebar_SetBandText|GUICtrlRebar_SetBKColor|GUICtrlRebar_SetColorScheme|GUICtrlRebar_SetTextColor|GUICtrlRebar_SetToolTips|GUICtrlRebar_SetUnicodeFormat|GUICtrlRebar_ShowBand|GUICtrlSlider_ClearSel|GUICtrlSlider_ClearTics|GUICtrlSlider_Create|GUICtrlSlider_Destroy|GUICtrlSlider_GetBuddy|GUICtrlSlider_GetChannelRect|GUICtrlSlider_GetLineSize|GUICtrlSlider_GetNumTics|GUICtrlSlider_GetPageSize|GUICtrlSlider_GetPos|GUICtrlSlider_GetPTics|GUICtrlSlider_GetRange|GUICtrlSlider_GetRangeMax|GUICtrlSlider_GetRangeMin|GUICtrlSlider_GetSel|GUICtrlSlider_GetSelEnd|GUICtrlSlider_GetSelStart|GUICtrlSlider_GetThumbLength|GUICtrlSlider_GetThumbRect|GUICtrlSlider_GetThumbRectEx|GUICtrlSlider_GetTic|GUICtrlSlider_GetTicPos|GUICtrlSlider_GetToolTips|GUICtrlSlider_GetUnicodeFormat|GUICtrlSlider_SetBuddy|GUICtrlSlider_SetLineSize|GUICtrlSlider_SetPageSize|GUICtrlSlider_SetPos|GUICtrlSlider_SetRange|GUICtrlSlider_SetRangeMax|GUICtrlSlider_SetRangeMin|GUICtrlSlider_SetSel|GUICtrlSlider_SetSelEnd|GUICtrlSlider_SetSelStart|GUICtrlSlider_SetThumbLength|GUICtrlSlider_SetTic|GUICtrlSlider_SetTicFreq|GUICtrlSlider_SetTipSide|GUICtrlSlider_SetToolTips|GUICtrlSlider_SetUnicodeFormat|GUICtrlStatusBar_Create|GUICtrlStatusBar_Destroy|GUICtrlStatusBar_EmbedControl|GUICtrlStatusBar_GetBorders|GUICtrlStatusBar_GetBordersHorz|GUICtrlStatusBar_GetBordersRect|GUICtrlStatusBar_GetBordersVert|GUICtrlStatusBar_GetCount|GUICtrlStatusBar_GetHeight|GUICtrlStatusBar_GetIcon|GUICtrlStatusBar_GetParts|GUICtrlStatusBar_GetRect|GUICtrlStatusBar_GetRectEx|GUICtrlStatusBar_GetText|GUICtrlStatusBar_GetTextFlags|GUICtrlStatusBar_GetTextLength|GUICtrlStatusBar_GetTextLengthEx|GUICtrlStatusBar_GetTipText|GUICtrlStatusBar_GetUnicodeFormat|GUICtrlStatusBar_GetWidth|GUICtrlStatusBar_IsSimple|GUICtrlStatusBar_Resize|GUICtrlStatusBar_SetBkColor|GUICtrlStatusBar_SetIcon|GUICtrlStatusBar_SetMinHeight|GUICtrlStatusBar_SetParts|GUICtrlStatusBar_SetSimple|GUICtrlStatusBar_SetText|GUICtrlStatusBar_SetTipText|GUICtrlStatusBar_SetUnicodeFormat|GUICtrlStatusBar_ShowHide|GUICtrlTab_Create|GUICtrlTab_DeleteAllItems|GUICtrlTab_DeleteItem|GUICtrlTab_DeselectAll|GUICtrlTab_Destroy|GUICtrlTab_FindTab|GUICtrlTab_GetCurFocus|GUICtrlTab_GetCurSel|GUICtrlTab_GetDisplayRect|GUICtrlTab_GetDisplayRectEx|GUICtrlTab_GetExtendedStyle|GUICtrlTab_GetImageList|GUICtrlTab_GetItem|GUICtrlTab_GetItemCount|GUICtrlTab_GetItemImage|GUICtrlTab_GetItemParam|GUICtrlTab_GetItemRect|GUICtrlTab_GetItemRectEx|GUICtrlTab_GetItemState|GUICtrlTab_GetItemText|GUICtrlTab_GetRowCount|GUICtrlTab_GetToolTips|GUICtrlTab_GetUnicodeFormat|GUICtrlTab_HighlightItem|GUICtrlTab_HitTest|GUICtrlTab_InsertItem|GUICtrlTab_RemoveImage|GUICtrlTab_SetCurFocus|GUICtrlTab_SetCurSel|GUICtrlTab_SetExtendedStyle|GUICtrlTab_SetImageList|GUICtrlTab_SetItem|GUICtrlTab_SetItemImage|GUICtrlTab_SetItemParam|GUICtrlTab_SetItemSize|GUICtrlTab_SetItemState|GUICtrlTab_SetItemText|GUICtrlTab_SetMinTabWidth|GUICtrlTab_SetPadding|GUICtrlTab_SetToolTips|GUICtrlTab_SetUnicodeFormat|GUICtrlToolbar_AddBitmap|GUICtrlToolbar_AddButton|GUICtrlToolbar_AddButtonSep|GUICtrlToolbar_AddString|GUICtrlToolbar_ButtonCount|GUICtrlToolbar_CheckButton|GUICtrlToolbar_ClickAccel|GUICtrlToolbar_ClickButton|GUICtrlToolbar_ClickIndex|GUICtrlToolbar_CommandToIndex|GUICtrlToolbar_Create|GUICtrlToolbar_Customize|GUICtrlToolbar_DeleteButton|GUICtrlToolbar_Destroy|GUICtrlToolbar_EnableButton|GUICtrlToolbar_FindToolbar|GUICtrlToolbar_GetAnchorHighlight|GUICtrlToolbar_GetBitmapFlags|GUICtrlToolbar_GetButtonBitmap|GUICtrlToolbar_GetButtonInfo|GUICtrlToolbar_GetButtonInfoEx|GUICtrlToolbar_GetButtonParam|GUICtrlToolbar_GetButtonRect|GUICtrlToolbar_GetButtonRectEx|GUICtrlToolbar_GetButtonSize|GUICtrlToolbar_GetButtonState|GUICtrlToolbar_GetButtonStyle|GUICtrlToolbar_GetButtonText|GUICtrlToolbar_GetColorScheme|GUICtrlToolbar_GetDisabledImageList|GUICtrlToolbar_GetExtendedStyle|GUICtrlToolbar_GetHotImageList|GUICtrlToolbar_GetHotItem|GUICtrlToolbar_GetImageList|GUICtrlToolbar_GetInsertMark|GUICtrlToolbar_GetInsertMarkColor|GUICtrlToolbar_GetMaxSize|GUICtrlToolbar_GetMetrics|GUICtrlToolbar_GetPadding|GUICtrlToolbar_GetRows|GUICtrlToolbar_GetString|GUICtrlToolbar_GetStyle|GUICtrlToolbar_GetStyleAltDrag|GUICtrlToolbar_GetStyleCustomErase|GUICtrlToolbar_GetStyleFlat|GUICtrlToolbar_GetStyleList|GUICtrlToolbar_GetStyleRegisterDrop|GUICtrlToolbar_GetStyleToolTips|GUICtrlToolbar_GetStyleTransparent|GUICtrlToolbar_GetStyleWrapable|GUICtrlToolbar_GetTextRows|GUICtrlToolbar_GetToolTips|GUICtrlToolbar_GetUnicodeFormat|GUICtrlToolbar_HideButton|GUICtrlToolbar_HighlightButton|GUICtrlToolbar_HitTest|GUICtrlToolbar_IndexToCommand|GUICtrlToolbar_InsertButton|GUICtrlToolbar_InsertMarkHitTest|GUICtrlToolbar_IsButtonChecked|GUICtrlToolbar_IsButtonEnabled|GUICtrlToolbar_IsButtonHidden|GUICtrlToolbar_IsButtonHighlighted|GUICtrlToolbar_IsButtonIndeterminate|GUICtrlToolbar_IsButtonPressed|GUICtrlToolbar_LoadBitmap|GUICtrlToolbar_LoadImages|GUICtrlToolbar_MapAccelerator|GUICtrlToolbar_MoveButton|GUICtrlToolbar_PressButton|GUICtrlToolbar_SetAnchorHighlight|GUICtrlToolbar_SetBitmapSize|GUICtrlToolbar_SetButtonBitMap|GUICtrlToolbar_SetButtonInfo|GUICtrlToolbar_SetButtonInfoEx|GUICtrlToolbar_SetButtonParam|GUICtrlToolbar_SetButtonSize|GUICtrlToolbar_SetButtonState|GUICtrlToolbar_SetButtonStyle|GUICtrlToolbar_SetButtonText|GUICtrlToolbar_SetButtonWidth|GUICtrlToolbar_SetCmdID|GUICtrlToolbar_SetColorScheme|GUICtrlToolbar_SetDisabledImageList|GUICtrlToolbar_SetDrawTextFlags|GUICtrlToolbar_SetExtendedStyle|GUICtrlToolbar_SetHotImageList|GUICtrlToolbar_SetHotItem|GUICtrlToolbar_SetImageList|GUICtrlToolbar_SetIndent|GUICtrlToolbar_SetIndeterminate|GUICtrlToolbar_SetInsertMark|GUICtrlToolbar_SetInsertMarkColor|GUICtrlToolbar_SetMaxTextRows|GUICtrlToolbar_SetMetrics|GUICtrlToolbar_SetPadding|GUICtrlToolbar_SetParent|GUICtrlToolbar_SetRows|GUICtrlToolbar_SetStyle|GUICtrlToolbar_SetStyleAltDrag|GUICtrlToolbar_SetStyleCustomErase|GUICtrlToolbar_SetStyleFlat|GUICtrlToolbar_SetStyleList|GUICtrlToolbar_SetStyleRegisterDrop|GUICtrlToolbar_SetStyleToolTips|GUICtrlToolbar_SetStyleTransparent|GUICtrlToolbar_SetStyleWrapable|GUICtrlToolbar_SetToolTips|GUICtrlToolbar_SetUnicodeFormat|GUICtrlToolbar_SetWindowTheme|GUICtrlTreeView_Add|GUICtrlTreeView_AddChild|GUICtrlTreeView_AddChildFirst|GUICtrlTreeView_AddFirst|GUICtrlTreeView_BeginUpdate|GUICtrlTreeView_ClickItem|GUICtrlTreeView_Create|GUICtrlTreeView_CreateDragImage|GUICtrlTreeView_CreateSolidBitMap|GUICtrlTreeView_Delete|GUICtrlTreeView_DeleteAll|GUICtrlTreeView_DeleteChildren|GUICtrlTreeView_Destroy|GUICtrlTreeView_DisplayRect|GUICtrlTreeView_DisplayRectEx|GUICtrlTreeView_EditText|GUICtrlTreeView_EndEdit|GUICtrlTreeView_EndUpdate|GUICtrlTreeView_EnsureVisible|GUICtrlTreeView_Expand|GUICtrlTreeView_ExpandedOnce|GUICtrlTreeView_FindItem|GUICtrlTreeView_FindItemEx|GUICtrlTreeView_GetBkColor|GUICtrlTreeView_GetBold|GUICtrlTreeView_GetChecked|GUICtrlTreeView_GetChildCount|GUICtrlTreeView_GetChildren|GUICtrlTreeView_GetCount|GUICtrlTreeView_GetCut|GUICtrlTreeView_GetDropTarget|GUICtrlTreeView_GetEditControl|GUICtrlTreeView_GetExpanded|GUICtrlTreeView_GetFirstChild|GUICtrlTreeView_GetFirstItem|GUICtrlTreeView_GetFirstVisible|GUICtrlTreeView_GetFocused|GUICtrlTreeView_GetHeight|GUICtrlTreeView_GetImageIndex|GUICtrlTreeView_GetImageListIconHandle|GUICtrlTreeView_GetIndent|GUICtrlTreeView_GetInsertMarkColor|GUICtrlTreeView_GetISearchString|GUICtrlTreeView_GetItemByIndex|GUICtrlTreeView_GetItemHandle|GUICtrlTreeView_GetItemParam|GUICtrlTreeView_GetLastChild|GUICtrlTreeView_GetLineColor|GUICtrlTreeView_GetNext|GUICtrlTreeView_GetNextChild|GUICtrlTreeView_GetNextSibling|GUICtrlTreeView_GetNextVisible|GUICtrlTreeView_GetNormalImageList|GUICtrlTreeView_GetParentHandle|GUICtrlTreeView_GetParentParam|GUICtrlTreeView_GetPrev|GUICtrlTreeView_GetPrevChild|GUICtrlTreeView_GetPrevSibling|GUICtrlTreeView_GetPrevVisible|GUICtrlTreeView_GetScrollTime|GUICtrlTreeView_GetSelected|GUICtrlTreeView_GetSelectedImageIndex|GUICtrlTreeView_GetSelection|GUICtrlTreeView_GetSiblingCount|GUICtrlTreeView_GetState|GUICtrlTreeView_GetStateImageIndex|GUICtrlTreeView_GetStateImageList|GUICtrlTreeView_GetText|GUICtrlTreeView_GetTextColor|GUICtrlTreeView_GetToolTips|GUICtrlTreeView_GetTree|GUICtrlTreeView_GetUnicodeFormat|GUICtrlTreeView_GetVisible|GUICtrlTreeView_GetVisibleCount|GUICtrlTreeView_HitTest|GUICtrlTreeView_HitTestEx|GUICtrlTreeView_HitTestItem|GUICtrlTreeView_Index|GUICtrlTreeView_InsertItem|GUICtrlTreeView_IsFirstItem|GUICtrlTreeView_IsParent|GUICtrlTreeView_Level|GUICtrlTreeView_SelectItem|GUICtrlTreeView_SelectItemByIndex|GUICtrlTreeView_SetBkColor|GUICtrlTreeView_SetBold|GUICtrlTreeView_SetChecked|GUICtrlTreeView_SetCheckedByIndex|GUICtrlTreeView_SetChildren|GUICtrlTreeView_SetCut|GUICtrlTreeView_SetDropTarget|GUICtrlTreeView_SetFocused|GUICtrlTreeView_SetHeight|GUICtrlTreeView_SetIcon|GUICtrlTreeView_SetImageIndex|GUICtrlTreeView_SetIndent|GUICtrlTreeView_SetInsertMark|GUICtrlTreeView_SetInsertMarkColor|GUICtrlTreeView_SetItemHeight|GUICtrlTreeView_SetItemParam|GUICtrlTreeView_SetLineColor|GUICtrlTreeView_SetNormalImageList|GUICtrlTreeView_SetScrollTime|GUICtrlTreeView_SetSelected|GUICtrlTreeView_SetSelectedImageIndex|GUICtrlTreeView_SetState|GUICtrlTreeView_SetStateImageIndex|GUICtrlTreeView_SetStateImageList|GUICtrlTreeView_SetText|GUICtrlTreeView_SetTextColor|GUICtrlTreeView_SetToolTips|GUICtrlTreeView_SetUnicodeFormat|GUICtrlTreeView_Sort|GUIImageList_Add|GUIImageList_AddBitmap|GUIImageList_AddIcon|GUIImageList_AddMasked|GUIImageList_BeginDrag|GUIImageList_Copy|GUIImageList_Create|GUIImageList_Destroy|GUIImageList_DestroyIcon|GUIImageList_DragEnter|GUIImageList_DragLeave|GUIImageList_DragMove|GUIImageList_Draw|GUIImageList_DrawEx|GUIImageList_Duplicate|GUIImageList_EndDrag|GUIImageList_GetBkColor|GUIImageList_GetIcon|GUIImageList_GetIconHeight|GUIImageList_GetIconSize|GUIImageList_GetIconSizeEx|GUIImageList_GetIconWidth|GUIImageList_GetImageCount|GUIImageList_GetImageInfoEx|GUIImageList_Remove|GUIImageList_ReplaceIcon|GUIImageList_SetBkColor|GUIImageList_SetIconSize|GUIImageList_SetImageCount|GUIImageList_Swap|GUIScrollBars_EnableScrollBar|GUIScrollBars_GetScrollBarInfoEx|GUIScrollBars_GetScrollBarRect|GUIScrollBars_GetScrollBarRGState|GUIScrollBars_GetScrollBarXYLineButton|GUIScrollBars_GetScrollBarXYThumbBottom|GUIScrollBars_GetScrollBarXYThumbTop|GUIScrollBars_GetScrollInfo|GUIScrollBars_GetScrollInfoEx|GUIScrollBars_GetScrollInfoMax|GUIScrollBars_GetScrollInfoMin|GUIScrollBars_GetScrollInfoPage|GUIScrollBars_GetScrollInfoPos|GUIScrollBars_GetScrollInfoTrackPos|GUIScrollBars_GetScrollPos|GUIScrollBars_GetScrollRange|GUIScrollBars_Init|GUIScrollBars_ScrollWindow|GUIScrollBars_SetScrollInfo|GUIScrollBars_SetScrollInfoMax|GUIScrollBars_SetScrollInfoMin|GUIScrollBars_SetScrollInfoPage|GUIScrollBars_SetScrollInfoPos|GUIScrollBars_SetScrollRange|GUIScrollBars_ShowScrollBar|GUIToolTip_Activate|GUIToolTip_AddTool|GUIToolTip_AdjustRect|GUIToolTip_BitsToTTF|GUIToolTip_Create|GUIToolTip_DelTool|GUIToolTip_Destroy|GUIToolTip_EnumTools|GUIToolTip_GetBubbleHeight|GUIToolTip_GetBubbleSize|GUIToolTip_GetBubbleWidth|GUIToolTip_GetCurrentTool|GUIToolTip_GetDelayTime|GUIToolTip_GetMargin|GUIToolTip_GetMarginEx|GUIToolTip_GetMaxTipWidth|GUIToolTip_GetText|GUIToolTip_GetTipBkColor|GUIToolTip_GetTipTextColor|GUIToolTip_GetTitleBitMap|GUIToolTip_GetTitleText|GUIToolTip_GetToolCount|GUIToolTip_GetToolInfo|GUIToolTip_HitTest|GUIToolTip_NewToolRect|GUIToolTip_Pop|GUIToolTip_PopUp|GUIToolTip_SetDelayTime|GUIToolTip_SetMargin|GUIToolTip_SetMaxTipWidth|GUIToolTip_SetTipBkColor|GUIToolTip_SetTipTextColor|GUIToolTip_SetTitle|GUIToolTip_SetToolInfo|GUIToolTip_SetWindowTheme|GUIToolTip_ToolExists|GUIToolTip_ToolToArray|GUIToolTip_TrackActivate|GUIToolTip_TrackPosition|GUIToolTip_TTFToBits|GUIToolTip_Update|GUIToolTip_UpdateTipText|HexToString|IE_Example|IE_Introduction|IE_VersionInfo|IEAction|IEAttach|IEBodyReadHTML|IEBodyReadText|IEBodyWriteHTML|IECreate|IECreateEmbedded|IEDocGetObj|IEDocInsertHTML|IEDocInsertText|IEDocReadHTML|IEDocWriteHTML|IEErrorHandlerDeRegister|IEErrorHandlerRegister|IEErrorNotify|IEFormElementCheckBoxSelect|IEFormElementGetCollection|IEFormElementGetObjByName|IEFormElementGetValue|IEFormElementOptionSelect|IEFormElementRadioSelect|IEFormElementSetValue|IEFormGetCollection|IEFormGetObjByName|IEFormImageClick|IEFormReset|IEFormSubmit|IEFrameGetCollection|IEFrameGetObjByName|IEGetObjById|IEGetObjByName|IEHeadInsertEventScript|IEImgClick|IEImgGetCollection|IEIsFrameSet|IELinkClickByIndex|IELinkClickByText|IELinkGetCollection|IELoadWait|IELoadWaitTimeout|IENavigate|IEPropertyGet|IEPropertySet|IEQuit|IETableGetCollection|IETableWriteToArray|IETagNameAllGetCollection|IETagNameGetCollection|Iif|INetExplorerCapable|INetGetSource|INetMail|INetSmtpMail|IsPressed|MathCheckDiv|Max|MemGlobalAlloc|MemGlobalFree|MemGlobalLock|MemGlobalSize|MemGlobalUnlock|MemMoveMemory|MemMsgBox|MemShowError|MemVirtualAlloc|MemVirtualAllocEx|MemVirtualFree|MemVirtualFreeEx|Min|MouseTrap|NamedPipes_CallNamedPipe|NamedPipes_ConnectNamedPipe|NamedPipes_CreateNamedPipe|NamedPipes_CreatePipe|NamedPipes_DisconnectNamedPipe|NamedPipes_GetNamedPipeHandleState|NamedPipes_GetNamedPipeInfo|NamedPipes_PeekNamedPipe|NamedPipes_SetNamedPipeHandleState|NamedPipes_TransactNamedPipe|NamedPipes_WaitNamedPipe|Net_Share_ConnectionEnum|Net_Share_FileClose|Net_Share_FileEnum|Net_Share_FileGetInfo|Net_Share_PermStr|Net_Share_ResourceStr|Net_Share_SessionDel|Net_Share_SessionEnum|Net_Share_SessionGetInfo|Net_Share_ShareAdd|Net_Share_ShareCheck|Net_Share_ShareDel|Net_Share_ShareEnum|Net_Share_ShareGetInfo|Net_Share_ShareSetInfo|Net_Share_StatisticsGetSvr|Net_Share_StatisticsGetWrk|Now|NowCalc|NowCalcDate|NowDate|NowTime|PathFull|PathMake|PathSplit|ProcessGetName|ProcessGetPriority|Radian|ReplaceStringInFile|RunDOS|ScreenCapture_Capture|ScreenCapture_CaptureWnd|ScreenCapture_SaveImage|ScreenCapture_SetBMPFormat|ScreenCapture_SetJPGQuality|ScreenCapture_SetTIFColorDepth|ScreenCapture_SetTIFCompression|Security__AdjustTokenPrivileges|Security__GetAccountSid|Security__GetLengthSid|Security__GetTokenInformation|Security__ImpersonateSelf|Security__IsValidSid|Security__LookupAccountName|Security__LookupAccountSid|Security__LookupPrivilegeValue|Security__OpenProcessToken|Security__OpenThreadToken|Security__OpenThreadTokenEx|Security__SetPrivilege|Security__SidToStringSid|Security__SidTypeStr|Security__StringSidToSid|SendMessage|SendMessageA|SetDate|SetTime|Singleton|SoundClose|SoundLength|SoundOpen|SoundPause|SoundPlay|SoundPos|SoundResume|SoundSeek|SoundStatus|SoundStop|SQLite_Changes|SQLite_Close|SQLite_Display2DResult|SQLite_Encode|SQLite_ErrCode|SQLite_ErrMsg|SQLite_Escape|SQLite_Exec|SQLite_FetchData|SQLite_FetchNames|SQLite_GetTable|SQLite_GetTable2d|SQLite_LastInsertRowID|SQLite_LibVersion|SQLite_Open|SQLite_Query|SQLite_QueryFinalize|SQLite_QueryReset|SQLite_QuerySingleRow|SQLite_SaveMode|SQLite_SetTimeout|SQLite_Shutdown|SQLite_SQLiteExe|SQLite_Startup|SQLite_TotalChanges|StringAddComma|StringBetween|StringEncrypt|StringInsert|StringProper|StringRepeat|StringReverse|StringSplit|StringToHex|TCPIpToName|TempFile|TicksToTime|Timer_Diff|Timer_GetTimerID|Timer_Init|Timer_KillAllTimers|Timer_KillTimer|Timer_SetTimer|TimeToTicks|VersionCompare|viClose|viExecCommand|viFindGpib|viGpibBusReset|viGTL|viOpen|viSetAttribute|viSetTimeout|WeekNumberISO|WinAPI_AttachConsole|WinAPI_AttachThreadInput|WinAPI_Beep|WinAPI_BitBlt|WinAPI_CallNextHookEx|WinAPI_Check|WinAPI_ClientToScreen|WinAPI_CloseHandle|WinAPI_CommDlgExtendedError|WinAPI_CopyIcon|WinAPI_CreateBitmap|WinAPI_CreateCompatibleBitmap|WinAPI_CreateCompatibleDC|WinAPI_CreateEvent|WinAPI_CreateFile|WinAPI_CreateFont|WinAPI_CreateFontIndirect|WinAPI_CreateProcess|WinAPI_CreateSolidBitmap|WinAPI_CreateSolidBrush|WinAPI_CreateWindowEx|WinAPI_DefWindowProc|WinAPI_DeleteDC|WinAPI_DeleteObject|WinAPI_DestroyIcon|WinAPI_DestroyWindow|WinAPI_DrawEdge|WinAPI_DrawFrameControl|WinAPI_DrawIcon|WinAPI_DrawIconEx|WinAPI_DrawText|WinAPI_EnableWindow|WinAPI_EnumDisplayDevices|WinAPI_EnumWindows|WinAPI_EnumWindowsPopup|WinAPI_EnumWindowsTop|WinAPI_ExpandEnvironmentStrings|WinAPI_ExtractIconEx|WinAPI_FatalAppExit|WinAPI_FillRect|WinAPI_FindExecutable|WinAPI_FindWindow|WinAPI_FlashWindow|WinAPI_FlashWindowEx|WinAPI_FloatToInt|WinAPI_FlushFileBuffers|WinAPI_FormatMessage|WinAPI_FrameRect|WinAPI_FreeLibrary|WinAPI_GetAncestor|WinAPI_GetAsyncKeyState|WinAPI_GetClassName|WinAPI_GetClientHeight|WinAPI_GetClientRect|WinAPI_GetClientWidth|WinAPI_GetCurrentProcess|WinAPI_GetCurrentProcessID|WinAPI_GetCurrentThread|WinAPI_GetCurrentThreadId|WinAPI_GetCursorInfo|WinAPI_GetDC|WinAPI_GetDesktopWindow|WinAPI_GetDeviceCaps|WinAPI_GetDIBits|WinAPI_GetDlgCtrlID|WinAPI_GetDlgItem|WinAPI_GetFileSizeEx|WinAPI_GetFocus|WinAPI_GetForegroundWindow|WinAPI_GetIconInfo|WinAPI_GetLastError|WinAPI_GetLastErrorMessage|WinAPI_GetModuleHandle|WinAPI_GetMousePos|WinAPI_GetMousePosX|WinAPI_GetMousePosY|WinAPI_GetObject|WinAPI_GetOpenFileName|WinAPI_GetOverlappedResult|WinAPI_GetParent|WinAPI_GetProcessAffinityMask|WinAPI_GetSaveFileName|WinAPI_GetStdHandle|WinAPI_GetStockObject|WinAPI_GetSysColor|WinAPI_GetSysColorBrush|WinAPI_GetSystemMetrics|WinAPI_GetTextExtentPoint32|WinAPI_GetWindow|WinAPI_GetWindowDC|WinAPI_GetWindowHeight|WinAPI_GetWindowLong|WinAPI_GetWindowRect|WinAPI_GetWindowText|WinAPI_GetWindowThreadProcessId|WinAPI_GetWindowWidth|WinAPI_GetXYFromPoint|WinAPI_GlobalMemStatus|WinAPI_GUIDFromString|WinAPI_GUIDFromStringEx|WinAPI_HiWord|WinAPI_InProcess|WinAPI_IntToFloat|WinAPI_InvalidateRect|WinAPI_IsClassName|WinAPI_IsWindow|WinAPI_IsWindowVisible|WinAPI_LoadBitmap|WinAPI_LoadImage|WinAPI_LoadLibrary|WinAPI_LoadLibraryEx|WinAPI_LoadShell32Icon|WinAPI_LoadString|WinAPI_LocalFree|WinAPI_LoWord|WinAPI_MakeDWord|WinAPI_MAKELANGID|WinAPI_MAKELCID|WinAPI_MakeLong|WinAPI_MessageBeep|WinAPI_Mouse_Event|WinAPI_MoveWindow|WinAPI_MsgBox|WinAPI_MulDiv|WinAPI_MultiByteToWideChar|WinAPI_MultiByteToWideCharEx|WinAPI_OpenProcess|WinAPI_PointFromRect|WinAPI_PostMessage|WinAPI_PrimaryLangId|WinAPI_PtInRect|WinAPI_ReadFile|WinAPI_ReadProcessMemory|WinAPI_RectIsEmpty|WinAPI_RedrawWindow|WinAPI_RegisterWindowMessage|WinAPI_ReleaseCapture|WinAPI_ReleaseDC|WinAPI_ScreenToClient|WinAPI_SelectObject|WinAPI_SetBkColor|WinAPI_SetCapture|WinAPI_SetCursor|WinAPI_SetDefaultPrinter|WinAPI_SetDIBits|WinAPI_SetEvent|WinAPI_SetFocus|WinAPI_SetFont|WinAPI_SetHandleInformation|WinAPI_SetLastError|WinAPI_SetParent|WinAPI_SetProcessAffinityMask|WinAPI_SetSysColors|WinAPI_SetTextColor|WinAPI_SetWindowLong|WinAPI_SetWindowPos|WinAPI_SetWindowsHookEx|WinAPI_SetWindowText|WinAPI_ShowCursor|WinAPI_ShowError|WinAPI_ShowMsg|WinAPI_ShowWindow|WinAPI_StringFromGUID|WinAPI_SubLangId|WinAPI_SystemParametersInfo|WinAPI_TwipsPerPixelX|WinAPI_TwipsPerPixelY|WinAPI_UnhookWindowsHookEx|WinAPI_UpdateLayeredWindow|WinAPI_UpdateWindow|WinAPI_ValidateClassName|WinAPI_WaitForInputIdle|WinAPI_WaitForMultipleObjects|WinAPI_WaitForSingleObject|WinAPI_WideCharToMultiByte|WinAPI_WindowFromPoint|WinAPI_WriteConsole|WinAPI_WriteFile|WinAPI_WriteProcessMemory|WinNet_AddConnection|WinNet_AddConnection2|WinNet_AddConnection3|WinNet_CancelConnection|WinNet_CancelConnection2|WinNet_CloseEnum|WinNet_ConnectionDialog|WinNet_ConnectionDialog1|WinNet_DisconnectDialog|WinNet_DisconnectDialog1|WinNet_EnumResource|WinNet_GetConnection|WinNet_GetConnectionPerformance|WinNet_GetLastError|WinNet_GetNetworkInformation|WinNet_GetProviderName|WinNet_GetResourceInformation|WinNet_GetResourceParent|WinNet_GetUniversalName|WinNet_GetUser|WinNet_OpenEnum|WinNet_RestoreConnection|WinNet_UseConnection|Word_VersionInfo|WordAttach|WordCreate|WordDocAdd|WordDocAddLink|WordDocAddPicture|WordDocClose|WordDocFindReplace|WordDocGetCollection|WordDocLinkGetCollection|WordDocOpen|WordDocPrint|WordDocPropertyGet|WordDocPropertySet|WordDocSave|WordDocSaveAs|WordErrorHandlerDeRegister|WordErrorHandlerRegister|WordErrorNotify|WordMacroRun|WordPropertyGet|WordPropertySet|WordQuit|' +\n        'ce|comments-end|comments-start|cs|include|include-once|NoTrayIcon|RequireAdmin|' +\n        'AutoIt3Wrapper_Au3Check_Parameters|AutoIt3Wrapper_Au3Check_Stop_OnWarning|AutoIt3Wrapper_Change2CUI|AutoIt3Wrapper_Compression|AutoIt3Wrapper_cvsWrapper_Parameters|AutoIt3Wrapper_Icon|AutoIt3Wrapper_Outfile|AutoIt3Wrapper_Outfile_Type|AutoIt3Wrapper_Plugin_Funcs|AutoIt3Wrapper_Res_Comment|AutoIt3Wrapper_Res_Description|AutoIt3Wrapper_Res_Field|AutoIt3Wrapper_Res_File_Add|AutoIt3Wrapper_Res_Fileversion|AutoIt3Wrapper_Res_FileVersion_AutoIncrement|AutoIt3Wrapper_Res_Icon_Add|AutoIt3Wrapper_Res_Language|AutoIt3Wrapper_Res_LegalCopyright|AutoIt3Wrapper_res_requestedExecutionLevel|AutoIt3Wrapper_Res_SaveSource|AutoIt3Wrapper_Run_After|AutoIt3Wrapper_Run_Au3check|AutoIt3Wrapper_Run_Before|AutoIt3Wrapper_Run_cvsWrapper|AutoIt3Wrapper_Run_Debug_Mode|AutoIt3Wrapper_Run_Obfuscator|AutoIt3Wrapper_Run_Tidy|AutoIt3Wrapper_Tidy_Stop_OnError|AutoIt3Wrapper_UseAnsi|AutoIt3Wrapper_UseUpx|AutoIt3Wrapper_UseX64|AutoIt3Wrapper_Version|EndRegion|forceref|Obfuscator_Ignore_Funcs|Obfuscator_Ignore_Variables|Obfuscator_Parameters|Region|Tidy_Parameters'\n    var atKeywords = 'AppDataCommonDir|AppDataDir|AutoItExe|AutoItPID|AutoItUnicode|AutoItVersion|AutoItX64|COM_EventObj|CommonFilesDir|Compiled|ComputerName|ComSpec|CR|CRLF|DesktopCommonDir|DesktopDepth|DesktopDir|DesktopHeight|DesktopRefresh|DesktopWidth|DocumentsCommonDir|error|exitCode|exitMethod|extended|FavoritesCommonDir|FavoritesDir|GUI_CtrlHandle|GUI_CtrlId|GUI_DragFile|GUI_DragId|GUI_DropId|GUI_WinHandle|HomeDrive|HomePath|HomeShare|HotKeyPressed|HOUR|InetGetActive|InetGetBytesRead|IPAddress1|IPAddress2|IPAddress3|IPAddress4|KBLayout|LF|LogonDNSDomain|LogonDomain|LogonServer|MDAY|MIN|MON|MyDocumentsDir|NumParams|OSBuild|OSLang|OSServicePack|OSTYPE|OSVersion|ProcessorArch|ProgramFilesDir|ProgramsCommonDir|ProgramsDir|ScriptDir|ScriptFullPath|ScriptLineNumber|ScriptName|SEC|StartMenuCommonDir|StartMenuDir|StartupCommonDir|StartupDir|SW_DISABLE|SW_ENABLE|SW_HIDE|SW_LOCK|SW_MAXIMIZE|SW_MINIMIZE|SW_RESTORE|SW_SHOW|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWMINNOACTIVE|SW_SHOWNA|SW_SHOWNOACTIVATE|SW_SHOWNORMAL|SW_UNLOCK|SystemDir|TAB|TempDir|TRAY_ID|TrayIconFlashing|TrayIconVisible|UserName|UserProfileDir|WDAY|WindowsDir|WorkingDir|YDAY|YEAR'\n    \n    this.$rules = { start: \n       [ { token: 'comment.line.ahk', regex: '(?:^| );.*$' },\n         { token: 'comment.block.ahk',\n           regex: '/\\\\*', push: \n            [ { token: 'comment.block.ahk', regex: '\\\\*/', next: 'pop' },\n              { defaultToken: 'comment.block.ahk' } ] },\n         { token: 'doc.comment.ahk',\n           regex: '#cs', push: \n            [ { token: 'doc.comment.ahk', regex: '#ce', next: 'pop' },\n              { defaultToken: 'doc.comment.ahk' } ] },\n         { token: 'keyword.command.ahk',\n           regex: '(?:\\\\b|^)(?:allowsamelinecomments|clipboardtimeout|commentflag|errorstdout|escapechar|hotkeyinterval|hotkeymodifiertimeout|hotstring|include|includeagain|installkeybdhook|installmousehook|keyhistory|ltrim|maxhotkeysperinterval|maxmem|maxthreads|maxthreadsbuffer|maxthreadsperhotkey|noenv|notrayicon|persistent|singleinstance|usehook|winactivateforce|autotrim|blockinput|click|clipwait|continue|control|controlclick|controlfocus|controlget|controlgetfocus|controlgetpos|controlgettext|controlmove|controlsend|controlsendraw|controlsettext|coordmode|critical|detecthiddentext|detecthiddenwindows|drive|driveget|drivespacefree|edit|endrepeat|envadd|envdiv|envget|envmult|envset|envsub|envupdate|exit|exitapp|fileappend|filecopy|filecopydir|filecreatedir|filecreateshortcut|filedelete|filegetattrib|filegetshortcut|filegetsize|filegettime|filegetversion|fileinstall|filemove|filemovedir|fileread|filereadline|filerecycle|filerecycleempty|fileremovedir|fileselectfile|fileselectfolder|filesetattrib|filesettime|formattime|getkeystate|gosub|goto|groupactivate|groupadd|groupclose|groupdeactivate|gui|guicontrol|guicontrolget|hideautoitwin|hotkey|ifequal|ifexist|ifgreater|ifgreaterorequal|ifinstring|ifless|iflessorequal|ifmsgbox|ifnotequal|ifnotexist|ifnotinstring|ifwinactive|ifwinexist|ifwinnotactive|ifwinnotexist|imagesearch|inidelete|iniread|iniwrite|input|inputbox|keyhistory|keywait|listhotkeys|listlines|listvars|menu|mouseclick|mouseclickdrag|mousegetpos|mousemove|msgbox|onexit|outputdebug|pause|pixelgetcolor|pixelsearch|postmessage|process|progress|random|regdelete|regread|regwrite|reload|repeat|run|runas|runwait|send|sendevent|sendinput|sendmode|sendplay|sendmessage|sendraw|setbatchlines|setcapslockstate|setcontroldelay|setdefaultmousespeed|setenv|setformat|setkeydelay|setmousedelay|setnumlockstate|setscrolllockstate|setstorecapslockmode|settimer|settitlematchmode|setwindelay|setworkingdir|shutdown|sleep|sort|soundbeep|soundget|soundgetwavevolume|soundplay|soundset|soundsetwavevolume|splashimage|splashtextoff|splashtexton|splitpath|statusbargettext|statusbarwait|stringcasesense|stringgetpos|stringleft|stringlen|stringlower|stringmid|stringreplace|stringright|stringsplit|stringtrimleft|stringtrimright|stringupper|suspend|sysget|thread|tooltip|transform|traytip|urldownloadtofile|while|winactivate|winactivatebottom|winclose|winget|wingetactivestats|wingetactivetitle|wingetclass|wingetpos|wingettext|wingettitle|winhide|winkill|winmaximize|winmenuselectitem|winminimize|winminimizeall|winminimizeallundo|winmove|winrestore|winset|winsettitle|winshow|winwait|winwaitactive|winwaitclose|winwaitnotactive)\\\\b',\n           caseInsensitive: true },\n         { token: 'keyword.control.ahk',\n           regex: '(?:\\\\b|^)(?:if|else|return|loop|break|for|while|global|local|byref)\\\\b',\n           caseInsensitive: true },\n         { token: 'support.function.ahk',\n           regex: '(?:\\\\b|^)(?:abs|acos|asc|asin|atan|ceil|chr|cos|dllcall|exp|fileexist|floor|getkeystate|il_add|il_create|il_destroy|instr|substr|isfunc|islabel|ln|log|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|onmessage|numget|numput|registercallback|regexmatch|regexreplace|round|sin|tan|sqrt|strlen|sb_seticon|sb_setparts|sb_settext|tv_add|tv_delete|tv_getchild|tv_getcount|tv_getnext|tv_get|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist)\\\\b',\n           caseInsensitive: true },\n         { token: 'variable.predefined.ahk',\n           regex: '(?:\\\\b|^)(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_formatfloat|a_formatinteger|a_gui|a_guievent|a_guicontrol|a_guicontrolevent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|programfiles|a_programfiles|a_programs|a_programscommon|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel)\\\\b',\n           caseInsensitive: true },\n         { token: 'support.constant.ahk',\n           regex: '(?:\\\\b|^)(?:shift|lshift|rshift|alt|lalt|ralt|control|lcontrol|rcontrol|ctrl|lctrl|rctrl|lwin|rwin|appskey|altdown|altup|shiftdown|shiftup|ctrldown|ctrlup|lwindown|lwinup|rwindown|rwinup|lbutton|rbutton|mbutton|wheelup|wheelleft|wheelright|wheeldown|xbutton1|xbutton2|joy1|joy2|joy3|joy4|joy5|joy6|joy7|joy8|joy9|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy30|joy31|joy32|joyx|joyy|joyz|joyr|joyu|joyv|joypov|joyname|joybuttons|joyaxes|joyinfo|space|tab|enter|escape|esc|backspace|bs|delete|del|insert|ins|pgup|pgdn|home|end|up|down|left|right|printscreen|ctrlbreak|pause|scrolllock|capslock|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadmult|numpadadd|numpadsub|numpaddiv|numpaddot|numpaddel|numpadins|numpadclear|numpadup|numpaddown|numpadleft|numpadright|numpadhome|numpadend|numpadpgup|numpadpgdn|numpadenter|f1|f2|f3|f4|f5|f6|f7|f8|f9|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f20|f21|f22|f23|f24|browser_back|browser_forward|browser_refresh|browser_stop|browser_search|browser_favorites|browser_home|volume_mute|volume_down|volume_up|media_next|media_prev|media_stop|media_play_pause|launch_mail|launch_media|launch_app1|launch_app2)\\\\b',\n           caseInsensitive: true },\n         { token: 'variable.parameter',\n           regex: '(?:\\\\b|^)(?:pixel|mouse|screen|relative|rgb|ltrim|rtrim|join|low|belownormal|normal|abovenormal|high|realtime|ahk_id|ahk_pid|ahk_class|ahk_group|between|contains|in|is|integer|float|integerfast|floatfast|number|digit|xdigit|alpha|upper|lower|alnum|time|date|not|or|and|alwaysontop|topmost|top|bottom|transparent|transcolor|redraw|region|id|idlast|processname|minmax|controllist|count|list|capacity|statuscd|eject|lock|unlock|label|filesystem|label|setlabel|serial|type|status|static|seconds|minutes|hours|days|read|parse|logoff|close|error|single|tray|add|rename|check|uncheck|togglecheck|enable|disable|toggleenable|default|nodefault|standard|nostandard|color|delete|deleteall|icon|noicon|tip|click|show|mainwindow|nomainwindow|useerrorlevel|text|picture|pic|groupbox|button|checkbox|radio|dropdownlist|ddl|combobox|listbox|listview|datetime|monthcal|updown|slider|tab|tab2|statusbar|treeview|iconsmall|tile|report|sortdesc|nosort|nosorthdr|grid|hdr|autosize|range|xm|ym|ys|xs|xp|yp|font|resize|owner|submit|nohide|minimize|maximize|restore|noactivate|na|cancel|destroy|center|margin|maxsize|minsize|owndialogs|guiescape|guiclose|guisize|guicontextmenu|guidropfiles|tabstop|section|altsubmit|wrap|hscroll|vscroll|border|top|bottom|buttons|expand|first|imagelist|lines|wantctrla|wantf2|vis|visfirst|number|uppercase|lowercase|limit|password|multi|wantreturn|group|background|bold|italic|strike|underline|norm|backgroundtrans|theme|caption|delimiter|minimizebox|maximizebox|sysmenu|toolwindow|flash|style|exstyle|check3|checked|checkedgray|readonly|password|hidden|left|right|center|notab|section|move|focus|hide|choose|choosestring|text|pos|enabled|disabled|visible|lastfound|lastfoundexist|alttab|shiftalttab|alttabmenu|alttabandmenu|alttabmenudismiss|notimers|interrupt|priority|waitclose|blind|raw|unicode|deref|pow|bitnot|bitand|bitor|bitxor|bitshiftleft|bitshiftright|yes|no|ok|cancel|abort|retry|ignore|tryagain|on|off|all|hkey_local_machine|hkey_users|hkey_current_user|hkey_classes_root|hkey_current_config|hklm|hku|hkcu|hkcr|hkcc|reg_sz|reg_expand_sz|reg_multi_sz|reg_dword|reg_qword|reg_binary|reg_link|reg_resource_list|reg_full_resource_descriptor|reg_resource_requirements_list|reg_dword_big_endian)\\\\b',\n           caseInsensitive: true },\n         { keywordMap: {\"constant.language\": autoItKeywords}, regex: '\\\\w+\\\\b'},\n         { keywordMap: {\"variable.function\": atKeywords}, regex: '@\\\\w+\\\\b'},\n         { token : \"constant.numeric\", regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},\n         { token: 'keyword.operator.ahk',\n           regex: '=|==|<>|:=|<|>|\\\\*|\\\\/|\\\\+|:|\\\\?|\\\\-' },\n         { token: 'punctuation.ahk',\n           regex: '#|`|::|,|\\\\{|\\\\}|\\\\(|\\\\)|\\\\%' },\n         { token: \n            [ 'punctuation.quote.double',\n              'string.quoted.ahk',\n              'punctuation.quote.double' ],\n           regex: '(\")((?:[^\"]|\"\")*)(\")' },\n         { token: [ 'label.ahk', 'punctuation.definition.label.ahk' ],\n           regex: '^([^: ]+)(:)(?!:)' } ] }\n    \n    this.normalizeRules();\n};\n\nAutoHotKeyHighlightRules.metaData = { name: 'AutoHotKey',\n      scopeName: 'source.ahk',\n      fileTypes: [ 'ahk' ],\n      foldingStartMarker: '^\\\\s*/\\\\*|^(?![^{]*?;|[^{]*?/\\\\*(?!.*?\\\\*/.*?\\\\{)).*?\\\\{\\\\s*($|;|/\\\\*(?!.*?\\\\*/.*\\\\S))',\n      foldingStopMarker: '^\\\\s*\\\\*/|^\\\\s*\\\\}' }\n\n\noop.inherits(AutoHotKeyHighlightRules, TextHighlightRules);\n\nexports.AutoHotKeyHighlightRules = AutoHotKeyHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/autohotkey\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/autohotkey_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar AutoHotKeyHighlightRules = require(\"./autohotkey_highlight_rules\").AutoHotKeyHighlightRules;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = AutoHotKeyHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \";\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n    this.$id = \"ace/mode/autohotkey\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-batchfile.js",
    "content": "ace.define(\"ace/mode/batchfile_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar BatchFileHighlightRules = function() {\n\n    this.$rules = { start: \n       [ { token: 'keyword.command.dosbatch',\n           regex: '\\\\b(?:append|assoc|at|attrib|break|cacls|cd|chcp|chdir|chkdsk|chkntfs|cls|cmd|color|comp|compact|convert|copy|date|del|dir|diskcomp|diskcopy|doskey|echo|endlocal|erase|fc|find|findstr|format|ftype|graftabl|help|keyb|label|md|mkdir|mode|more|move|path|pause|popd|print|prompt|pushd|rd|recover|ren|rename|replace|restore|rmdir|set|setlocal|shift|sort|start|subst|time|title|tree|type|ver|verify|vol|xcopy)\\\\b',\n           caseInsensitive: true },\n         { token: 'keyword.control.statement.dosbatch',\n           regex: '\\\\b(?:goto|call|exit)\\\\b',\n           caseInsensitive: true },\n         { token: 'keyword.control.conditional.if.dosbatch',\n           regex: '\\\\bif\\\\s+not\\\\s+(?:exist|defined|errorlevel|cmdextversion)\\\\b',\n           caseInsensitive: true },\n         { token: 'keyword.control.conditional.dosbatch',\n           regex: '\\\\b(?:if|else)\\\\b',\n           caseInsensitive: true },\n         { token: 'keyword.control.repeat.dosbatch',\n           regex: '\\\\bfor\\\\b',\n           caseInsensitive: true },\n         { token: 'keyword.operator.dosbatch',\n           regex: '\\\\b(?:EQU|NEQ|LSS|LEQ|GTR|GEQ)\\\\b' },\n         { token: ['doc.comment', 'comment'],\n           regex: '(?:^|\\\\b)(rem)($|\\\\s.*$)',\n           caseInsensitive: true },\n         { token: 'comment.line.colons.dosbatch',\n           regex: '::.*$' },\n         { include: 'variable' },\n         { token: 'punctuation.definition.string.begin.shell',\n           regex: '\"',\n           push: [ \n              { token: 'punctuation.definition.string.end.shell', regex: '\"', next: 'pop' },\n              { include: 'variable' },\n              { defaultToken: 'string.quoted.double.dosbatch' } ] },\n         { token: 'keyword.operator.pipe.dosbatch', regex: '[|]' },\n         { token: 'keyword.operator.redirect.shell',\n           regex: '&>|\\\\d*>&\\\\d*|\\\\d*(?:>>|>|<)|\\\\d*<&|\\\\d*<>' } ],\n        variable: [\n         { token: 'constant.numeric', regex: '%%\\\\w+|%[*\\\\d]|%\\\\w+%'},\n         { token: 'constant.numeric', regex: '%~\\\\d+'},\n         { token: ['markup.list', 'constant.other', 'markup.list'],\n            regex: '(%)(\\\\w+)(%?)' }]}\n    \n    this.normalizeRules();\n};\n\nBatchFileHighlightRules.metaData = { name: 'Batch File',\n      scopeName: 'source.dosbatch',\n      fileTypes: [ 'bat' ] }\n\n\noop.inherits(BatchFileHighlightRules, TextHighlightRules);\n\nexports.BatchFileHighlightRules = BatchFileHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/batchfile\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/batchfile_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar BatchFileHighlightRules = require(\"./batchfile_highlight_rules\").BatchFileHighlightRules;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = BatchFileHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"::\";\n    this.blockComment = \"\";\n    this.$id = \"ace/mode/batchfile\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-bro.js",
    "content": "ace.define(\"ace/mode/bro_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar BroHighlightRules = function() {\n\n    this.$rules = {\n        start: [{\n            token: \"punctuation.definition.comment.bro\",\n            regex: /#/,\n            push: [{\n                token: \"comment.line.number-sign.bro\",\n                regex: /$/,\n                next: \"pop\"\n            }, {\n                defaultToken: \"comment.line.number-sign.bro\"\n            }]\n        }, {\n            token: \"keyword.control.bro\",\n            regex: /\\b(?:break|case|continue|else|for|if|return|switch|next|when|timeout|schedule)\\b/\n        }, {\n            token: [\n                \"meta.function.bro\",\n                \"meta.function.bro\",\n                \"storage.type.bro\",\n                \"meta.function.bro\",\n                \"entity.name.function.bro\",\n                \"meta.function.bro\"\n            ],\n            regex: /^(\\s*)(?:function|hook|event)(\\s*)(.*)(\\s*\\()(.*)(\\).*$)/\n        }, {\n            token: \"storage.type.bro\",\n            regex: /\\b(?:bool|enum|double|int|count|port|addr|subnet|any|file|interval|time|string|table|vector|set|record|pattern|hook)\\b/\n        }, {\n            token: \"storage.modifier.bro\",\n            regex: /\\b(?:global|const|redef|local|&(?:optional|rotate_interval|rotate_size|add_func|del_func|expire_func|expire_create|expire_read|expire_write|persistent|synchronized|encrypt|mergeable|priority|group|type_column|log|error_handler))\\b/\n        }, {\n            token: \"keyword.operator.bro\",\n            regex: /\\s*(?:\\||&&|(?:>|<|!)=?|==)\\s*|\\b!?in\\b/\n        }, {\n            token: \"constant.language.bro\",\n            regex: /\\b(?:T|F)\\b/\n        }, {\n            token: \"constant.numeric.bro\",\n            regex: /\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\.?[0-9]*|\\.[0-9]+)(?:(?:e|E)(?:\\+|-)?[0-9]+)?)(?:\\/(?:tcp|udp|icmp)|\\s*(?:u?sec|min|hr|day)s?)?\\b/\n        }, {\n            token: \"punctuation.definition.string.begin.bro\",\n            regex: /\"/,\n            push: [{\n                token: \"punctuation.definition.string.end.bro\",\n                regex: /\"/,\n                next: \"pop\"\n            }, {\n                include: \"#string_escaped_char\"\n            }, {\n                include: \"#string_placeholder\"\n            }, {\n                defaultToken: \"string.quoted.double.bro\"\n            }]\n        }, {\n            token: \"punctuation.definition.string.begin.bro\",\n            regex: /\\//,\n            push: [{\n                token: \"punctuation.definition.string.end.bro\",\n                regex: /\\//,\n                next: \"pop\"\n            }, {\n                include: \"#string_escaped_char\"\n            }, {\n                include: \"#string_placeholder\"\n            }, {\n                defaultToken: \"string.quoted.regex.bro\"\n            }]\n        }, {\n            token: [\n                \"meta.preprocessor.bro.load\",\n                \"keyword.other.special-method.bro\"\n            ],\n            regex: /^(\\s*)(\\@load(?:-sigs)?)\\b/,\n            push: [{\n                token: [],\n                regex: /(?=\\#)|$/,\n                next: \"pop\"\n            }, {\n                defaultToken: \"meta.preprocessor.bro.load\"\n            }]\n        }, {\n            token: [\n                \"meta.preprocessor.bro.if\",\n                \"keyword.other.special-method.bro\",\n                \"meta.preprocessor.bro.if\"\n            ],\n            regex: /^(\\s*)(\\@endif|\\@if(?:n?def)?)(.*$)/,\n            push: [{\n                token: [],\n                regex: /$/,\n                next: \"pop\"\n            }, {\n                defaultToken: \"meta.preprocessor.bro.if\"\n            }]\n        }],\n        \"#disabled\": [{\n            token: \"text\",\n            regex: /^\\s*\\@if(?:n?def)?\\b.*$/,\n            push: [{\n                token: \"text\",\n                regex: /^\\s*\\@endif\\b.*$/,\n                next: \"pop\"\n            }, {\n                include: \"#disabled\"\n            }, {\n                include: \"#pragma-mark\"\n            }],\n            comment: \"eat nested preprocessor ifdefs\"\n        }],\n        \"#preprocessor-rule-other\": [{\n            token: [\n                \"text\",\n                \"meta.preprocessor.bro\",\n                \"meta.preprocessor.bro\",\n                \"text\"\n            ],\n            regex: /^(\\s*)(@if)((?:n?def)?)\\b(.*?)(?:(?=)|$)/,\n            push: [{\n                token: [\"text\", \"meta.preprocessor.bro\", \"text\"],\n                regex: /^(\\s*)(@endif)\\b(.*$)/,\n                next: \"pop\"\n            }, {\n                include: \"$base\"\n            }]\n        }],\n        \"#string_escaped_char\": [{\n            token: \"constant.character.escape.bro\",\n            regex: /\\\\(?:\\\\|[abefnprtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-fA-F0-9]{,2})/\n        }, {\n            token: \"invalid.illegal.unknown-escape.bro\",\n            regex: /\\\\./\n        }],\n        \"#string_placeholder\": [{\n            token: \"constant.other.placeholder.bro\",\n            regex: /%(?:\\d+\\$)?[#0\\- +']*[,;:_]?(?:-?\\d+|\\*(?:-?\\d+\\$)?)?(?:\\.(?:-?\\d+|\\*(?:-?\\d+\\$)?)?)?(?:hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?[diouxXDOUeEfFgGaACcSspn%]/\n        }, {\n            token: \"invalid.illegal.placeholder.bro\",\n            regex: /%/\n        }]\n    }\n    \n    this.normalizeRules();\n};\n\nBroHighlightRules.metaData = {\n    fileTypes: [\"bro\"],\n    foldingStartMarker: \"^(\\\\@if(n?def)?)\",\n    foldingStopMarker: \"^\\\\@endif\",\n    keyEquivalent: \"@B\",\n    name: \"Bro\",\n    scopeName: \"source.bro\"\n}\n\n\noop.inherits(BroHighlightRules, TextHighlightRules);\n\nexports.BroHighlightRules = BroHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/bro\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/bro_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar BroHighlightRules = require(\"./bro_highlight_rules\").BroHighlightRules;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = BroHighlightRules;\n    this.foldingRules = new FoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.$id = \"ace/mode/bro\"\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-c9search.js",
    "content": "ace.define(\"ace/mode/c9search_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nfunction safeCreateRegexp(source, flag) {\n    try {\n        return new RegExp(source, flag);\n    } catch(e) {}\n}\n\nvar C9SearchHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [\n            {\n                tokenNames : [\"c9searchresults.constant.numeric\", \"c9searchresults.text\", \"c9searchresults.text\", \"c9searchresults.keyword\"],\n                regex : /(^\\s+[0-9]+)(:)(\\d*\\s?)([^\\r\\n]+)/,\n                onMatch : function(val, state, stack) {\n                    var values = this.splitRegex.exec(val);\n                    var types = this.tokenNames;\n                    var tokens = [{\n                        type: types[0],\n                        value: values[1]\n                    }, {\n                        type: types[1],\n                        value: values[2]\n                    }];\n                    \n                    if (values[3]) {\n                        if (values[3] == \" \")\n                            tokens[1] = { type: types[1], value: values[2] + \" \" };\n                        else\n                            tokens.push({ type: types[1], value: values[3] });\n                    }\n                    var regex = stack[1];\n                    var str = values[4];\n                    \n                    var m;\n                    var last = 0;\n                    if (regex && regex.exec) {\n                        regex.lastIndex = 0;\n                        while (m = regex.exec(str)) {\n                            var skipped = str.substring(last, m.index);\n                            last = regex.lastIndex;\n                            if (skipped)\n                                tokens.push({type: types[2], value: skipped});\n                            if (m[0])\n                                tokens.push({type: types[3], value: m[0]});\n                            else if (!skipped)\n                                break;\n                        }\n                    }\n                    if (last < str.length)\n                        tokens.push({type: types[2], value: str.substr(last)});\n                    return tokens;\n                }\n            },\n            {\n                regex : \"^Searching for [^\\\\r\\\\n]*$\",\n                onMatch: function(val, state, stack) {\n                    var parts = val.split(\"\\x01\");\n                    if (parts.length < 3)\n                        return \"text\";\n\n                    var options, search, replace;\n                    \n                    var i = 0;\n                    var tokens = [{\n                        value: parts[i++] + \"'\",\n                        type: \"text\"\n                    }, {\n                        value: search = parts[i++],\n                        type: \"text\" // \"c9searchresults.keyword\"\n                    }, {\n                        value: \"'\" + parts[i++],\n                        type: \"text\"\n                    }];\n                    if (parts[2] !== \" in\") {\n                        replace = parts[i];\n                        tokens.push({\n                            value: \"'\" + parts[i++] + \"'\",\n                            type: \"text\"\n                        }, {\n                            value: parts[i++],\n                            type: \"text\"\n                        });\n                    }\n                    tokens.push({\n                        value: \" \" + parts[i++] + \" \",\n                        type: \"text\"\n                    });\n                    if (parts[i+1]) {\n                        options = parts[i+1];\n                        tokens.push({\n                            value: \"(\" + parts[i+1] + \")\",\n                            type: \"text\"\n                        });\n                        i += 1;\n                    } else {\n                        i -= 1;\n                    }\n                    while (i++ < parts.length) {\n                        parts[i] && tokens.push({\n                            value: parts[i],\n                            type: \"text\"\n                        });\n                    }\n                    \n                    if (replace) {\n                        search = replace;\n                        options = \"\";\n                    }\n                    \n                    if (search) {\n                        if (!/regex/.test(options))\n                            search = lang.escapeRegExp(search);\n                        if (/whole/.test(options))\n                            search = \"\\\\b\" + search + \"\\\\b\";\n                    }\n                    \n                    var regex = search && safeCreateRegexp(\n                        \"(\" + search + \")\",\n                        / sensitive/.test(options) ? \"g\" : \"ig\"\n                    );\n                    if (regex) {\n                        stack[0] = state;\n                        stack[1] = regex;\n                    }\n                    \n                    return tokens;\n                }\n            },\n            {\n                regex : \"^(?=Found \\\\d+ matches)\",\n                token : \"text\",\n                next : \"numbers\"\n            },\n            {\n                token : \"string\", // single line\n                regex : \"^\\\\S:?[^:]+\",\n                next : \"numbers\"\n            }\n        ],\n        numbers:[{\n            regex : \"\\\\d+\",\n            token : \"constant.numeric\"\n        }, {\n            regex : \"$\",\n            token : \"text\",\n            next : \"start\"\n        }]\n    };\n    this.normalizeRules();\n};\n\noop.inherits(C9SearchHighlightRules, TextHighlightRules);\n\nexports.C9SearchHighlightRules = C9SearchHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/c9search\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.foldingStartMarker = /^(\\S.*:|Searching for.*)$/;\n    this.foldingStopMarker = /^(\\s+|Found.*)$/;\n    \n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var lines = session.doc.getAllLines(row);\n        var line = lines[row];\n        var level1 = /^(Found.*|Searching for.*)$/;\n        var level2 = /^(\\S.*:|\\s*)$/;\n        var re = level1.test(line) ? level1 : level2;\n        \n        var startRow = row;\n        var endRow = row;\n\n        if (this.foldingStartMarker.test(line)) {\n            for (var i = row + 1, l = session.getLength(); i < l; i++) {\n                if (re.test(lines[i]))\n                    break;\n            }\n            endRow = i;\n        }\n        else if (this.foldingStopMarker.test(line)) {\n            for (var i = row - 1; i >= 0; i--) {\n                line = lines[i];\n                if (re.test(line))\n                    break;\n            }\n            startRow = i;\n        }\n        if (startRow != endRow) {\n            var col = line.length;\n            if (re === level1)\n                col = line.search(/\\(Found[^)]+\\)$|$/);\n            return new Range(startRow, col, endRow, 0);\n        }\n    };\n    \n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/c9search\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c9search_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/c9search\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar C9SearchHighlightRules = require(\"./c9search_highlight_rules\").C9SearchHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar C9StyleFoldMode = require(\"./folding/c9search\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = C9SearchHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.foldingRules = new C9StyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    \n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.$id = \"ace/mode/c9search\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-c_cpp.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar cFunctions = exports.cFunctions = \"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\"\n\nvar c_cppHighlightRules = function() {\n\n    var keywordControls = (\n        \"break|case|continue|default|do|else|for|goto|if|_Pragma|\" +\n        \"return|switch|while|catch|operator|try|throw|using\"\n    );\n    \n    var storageType = (\n        \"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|\" +\n        \"_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|\" +\n        \"class|wchar_t|template|char16_t|char32_t\"\n    );\n\n    var storageModifiers = (\n        \"const|extern|register|restrict|static|volatile|inline|private|\" +\n        \"protected|public|friend|explicit|virtual|export|mutable|typename|\" +\n        \"constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\"\n    );\n\n    var keywordOperators = (\n        \"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq\" +\n        \"const_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\"\n    );\n\n    var builtinConstants = (\n        \"NULL|true|false|TRUE|FALSE|nullptr\"\n    );\n\n    var keywordMapper = this.$keywords = this.createKeywordMapper({\n        \"keyword.control\" : keywordControls,\n        \"storage.type\" : storageType,\n        \"storage.modifier\" : storageModifiers,\n        \"keyword.operator\" : keywordOperators,\n        \"variable.language\": \"this\",\n        \"constant.language\": builtinConstants\n    }, \"identifier\");\n\n    var identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\";\n    var escapeRe = /\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source;\n\n    this.$rules = { \n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"//$\",\n                next : \"start\"\n            }, {\n                token : \"comment\",\n                regex : \"//\",\n                next : \"singleLineComment\"\n            },\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n                token : \"string\", // character\n                regex : \"'(?:\" + escapeRe + \"|.)?'\"\n            }, {\n                token : \"string.start\",\n                regex : '\"', \n                stateName: \"qqstring\",\n                next: [\n                    { token: \"string\", regex: /\\\\\\s*$/, next: \"qqstring\" },\n                    { token: \"constant.language.escape\", regex: escapeRe },\n                    { token: \"constant.language.escape\", regex: /%[^'\"\\\\]/ },\n                    { token: \"string.end\", regex: '\"|$', next: \"start\" },\n                    { defaultToken: \"string\"}\n                ]\n            }, {\n                token : \"string.start\",\n                regex : 'R\"\\\\(', \n                stateName: \"rawString\",\n                next: [\n                    { token: \"string.end\", regex: '\\\\)\"', next: \"start\" },\n                    { defaultToken: \"string\"}\n                ]\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : \"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"\n            }, {\n                token : \"keyword\", // pre-compiler directives\n                regex : \"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",\n                next  : \"directive\"\n            }, {\n                token : \"keyword\", // special case pre-compiler directive\n                regex : \"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"\n            }, {\n                token : \"support.function.C99.c\",\n                regex : cFunctions\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/\n            }, {\n              token : \"punctuation.operator\",\n              regex : \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ],\n        \"singleLineComment\" : [\n            {\n                token : \"comment\",\n                regex : /\\\\$/,\n                next : \"singleLineComment\"\n            }, {\n                token : \"comment\",\n                regex : /$/,\n                next : \"start\"\n            }, {\n                defaultToken: \"comment\"\n            }\n        ],\n        \"directive\" : [\n            {\n                token : \"constant.other.multiline\",\n                regex : /\\\\/\n            },\n            {\n                token : \"constant.other.multiline\",\n                regex : /.*\\\\/\n            },\n            {\n                token : \"constant.other\",\n                regex : \"\\\\s*<.+?>\",\n                next : \"start\"\n            },\n            {\n                token : \"constant.other\", // single line\n                regex : '\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',\n                next : \"start\"\n            }, \n            {\n                token : \"constant.other\", // single line\n                regex : \"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",\n                next : \"start\"\n            },\n            {\n                token : \"constant.other\",\n                regex : /[^\\\\\\/]+/,\n                next : \"start\"\n            }\n        ]\n    };\n\n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n    this.normalizeRules();\n};\n\noop.inherits(c_cppHighlightRules, TextHighlightRules);\n\nexports.c_cppHighlightRules = c_cppHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/c_cpp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c_cpp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar c_cppHighlightRules = require(\"./c_cpp_highlight_rules\").c_cppHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar Range = require(\"../range\").Range;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = c_cppHighlightRules;\n\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.$id = \"ace/mode/c_cpp\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-cirru.js",
    "content": "ace.define(\"ace/mode/cirru_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar CirruHighlightRules = function() {\n    this.$rules = {\n        start: [{\n            token: 'constant.numeric',\n            regex: /[\\d\\.]+/\n        }, {\n            token: 'comment.line.double-dash',\n            regex: /--/,\n            next: 'comment'\n        }, {\n            token: 'storage.modifier',\n            regex: /\\(/\n        }, {\n            token: 'storage.modifier',\n            regex: /,/,\n            next: 'line'\n        }, {\n            token: 'support.function',\n            regex: /[^\\(\\)\"\\s]+/,\n            next: 'line'\n        }, {\n            token: 'string.quoted.double',\n            regex: /\"/,\n            next: 'string'\n        }, {\n            token: 'storage.modifier',\n            regex: /\\)/\n        }],\n        comment: [{\n            token: 'comment.line.double-dash',\n            regex: / +[^\\n]+/,\n            next: 'start'\n        }],\n        string: [{\n            token: 'string.quoted.double',\n            regex: /\"/,\n            next: 'line'\n        }, {\n            token: 'constant.character.escape',\n            regex: /\\\\/,\n            next: 'escape'\n        }, {\n            token: 'string.quoted.double',\n            regex: /[^\\\\\"]+/\n        }],\n        escape: [{\n            token: 'constant.character.escape',\n            regex: /./,\n            next: 'string'\n        }],\n        line: [{\n            token: 'constant.numeric',\n            regex: /[\\d\\.]+/\n        }, {\n            token: 'markup.raw',\n            regex: /^\\s*/,\n            next: 'start'\n        }, {\n            token: 'storage.modifier',\n            regex: /\\$/,\n            next: 'start'\n        }, {\n            token: 'variable.parameter',\n            regex: /[^\\(\\)\"\\s]+/\n        }, {\n            token: 'storage.modifier',\n            regex: /\\(/,\n            next: 'start'\n        }, {\n            token: 'storage.modifier',\n            regex: /\\)/\n        }, {\n            token: 'markup.raw',\n            regex: /^ */,\n            next: 'start'\n        }, {\n            token: 'string.quoted.double',\n            regex: /\"/,\n            next: 'string'\n        }]\n    }\n\n};\n\noop.inherits(CirruHighlightRules, TextHighlightRules);\n\nexports.CirruHighlightRules = CirruHighlightRules;\n});\n\nace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var range = this.indentationBlock(session, row);\n        if (range)\n            return range;\n\n        var re = /\\S/;\n        var line = session.getLine(row);\n        var startLevel = line.search(re);\n        if (startLevel == -1 || line[startLevel] != \"#\")\n            return;\n\n        var startColumn = line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var level = line.search(re);\n\n            if (level == -1)\n                continue;\n\n            if (line[level] != \"#\")\n                break;\n\n            endRow = row;\n        }\n\n        if (endRow > startRow) {\n            var endColumn = session.getLine(endRow).length;\n            return new Range(startRow, startColumn, endRow, endColumn);\n        }\n    };\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var indent = line.search(/\\S/);\n        var next = session.getLine(row + 1);\n        var prev = session.getLine(row - 1);\n        var prevIndent = prev.search(/\\S/);\n        var nextIndent = next.search(/\\S/);\n\n        if (indent == -1) {\n            session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n            return \"\";\n        }\n        if (prevIndent == -1) {\n            if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n                session.foldWidgets[row - 1] = \"\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"start\";\n            }\n        } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n            if (session.getLine(row - 2).search(/\\S/) == -1) {\n                session.foldWidgets[row - 1] = \"start\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"\";\n            }\n        }\n\n        if (prevIndent!= -1 && prevIndent < indent)\n            session.foldWidgets[row - 1] = \"start\";\n        else\n            session.foldWidgets[row - 1] = \"\";\n\n        if (indent < nextIndent)\n            return \"start\";\n        else\n            return \"\";\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/cirru\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/cirru_highlight_rules\",\"ace/mode/folding/coffee\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CirruHighlightRules = require(\"./cirru_highlight_rules\").CirruHighlightRules;\nvar CoffeeFoldMode = require(\"./folding/coffee\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = CirruHighlightRules;\n    this.foldingRules = new CoffeeFoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"--\";\n    this.$id = \"ace/mode/cirru\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-clojure.js",
    "content": "ace.define(\"ace/mode/clojure_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\n\n\nvar ClojureHighlightRules = function() {\n\n    var builtinFunctions = (\n        '* *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* ' +\n        '*command-line-args* *compile-files* *compile-path* *e *err* *file* ' +\n        '*flush-on-newline* *in* *macro-meta* *math-context* *ns* *out* ' +\n        '*print-dup* *print-length* *print-level* *print-meta* *print-readably* ' +\n        '*read-eval* *source-path* *use-context-classloader* ' +\n        '*warn-on-reflection* + - -> ->> .. / < <= = ' +\n        '== > &gt; >= &gt;= accessor aclone ' +\n        'add-classpath add-watch agent agent-errors aget alength alias all-ns ' +\n        'alter alter-meta! alter-var-root amap ancestors and apply areduce ' +\n        'array-map aset aset-boolean aset-byte aset-char aset-double aset-float ' +\n        'aset-int aset-long aset-short assert assoc assoc! assoc-in associative? ' +\n        'atom await await-for await1 bases bean bigdec bigint binding bit-and ' +\n        'bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left ' +\n        'bit-shift-right bit-test bit-xor boolean boolean-array booleans ' +\n        'bound-fn bound-fn* butlast byte byte-array bytes cast char char-array ' +\n        'char-escape-string char-name-string char? chars chunk chunk-append ' +\n        'chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? ' +\n        'class class? clear-agent-errors clojure-version coll? comment commute ' +\n        'comp comparator compare compare-and-set! compile complement concat cond ' +\n        'condp conj conj! cons constantly construct-proxy contains? count ' +\n        'counted? create-ns create-struct cycle dec decimal? declare definline ' +\n        'defmacro defmethod defmulti defn defn- defonce defstruct delay delay? ' +\n        'deliver deref derive descendants destructure disj disj! dissoc dissoc! ' +\n        'distinct distinct? doall doc dorun doseq dosync dotimes doto double ' +\n        'double-array doubles drop drop-last drop-while empty empty? ensure ' +\n        'enumeration-seq eval even? every? false? ffirst file-seq filter find ' +\n        'find-doc find-ns find-var first float float-array float? floats flush ' +\n        'fn fn? fnext for force format future future-call future-cancel ' +\n        'future-cancelled? future-done? future? gen-class gen-interface gensym ' +\n        'get get-in get-method get-proxy-class get-thread-bindings get-validator ' +\n        'hash hash-map hash-set identical? identity if-let if-not ifn? import ' +\n        'in-ns inc init-proxy instance? int int-array integer? interleave intern ' +\n        'interpose into into-array ints io! isa? iterate iterator-seq juxt key ' +\n        'keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list ' +\n        'list* list? load load-file load-reader load-string loaded-libs locking ' +\n        'long long-array longs loop macroexpand macroexpand-1 make-array ' +\n        'make-hierarchy map map? mapcat max max-key memfn memoize merge ' +\n        'merge-with meta method-sig methods min min-key mod name namespace neg? ' +\n        'newline next nfirst nil? nnext not not-any? not-empty not-every? not= ' +\n        'ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ' +\n        'ns-refers ns-resolve ns-unalias ns-unmap nth nthnext num number? odd? ' +\n        'or parents partial partition pcalls peek persistent! pmap pop pop! ' +\n        'pop-thread-bindings pos? pr pr-str prefer-method prefers ' +\n        'primitives-classnames print print-ctor print-doc print-dup print-method ' +\n        'print-namespace-doc print-simple print-special-doc print-str printf ' +\n        'println println-str prn prn-str promise proxy proxy-call-with-super ' +\n        'proxy-mappings proxy-name proxy-super push-thread-bindings pvalues quot ' +\n        'rand rand-int range ratio? rational? rationalize re-find re-groups ' +\n        're-matcher re-matches re-pattern re-seq read read-line read-string ' +\n        'reduce ref ref-history-count ref-max-history ref-min-history ref-set ' +\n        'refer refer-clojure release-pending-sends rem remove remove-method ' +\n        'remove-ns remove-watch repeat repeatedly replace replicate require ' +\n        'reset! reset-meta! resolve rest resultset-seq reverse reversible? rseq ' +\n        'rsubseq second select-keys send send-off seq seq? seque sequence ' +\n        'sequential? set set-validator! set? short short-array shorts ' +\n        'shutdown-agents slurp some sort sort-by sorted-map sorted-map-by ' +\n        'sorted-set sorted-set-by sorted? special-form-anchor special-symbol? ' +\n        'split-at split-with str stream? string? struct struct-map subs subseq ' +\n        'subvec supers swap! symbol symbol? sync syntax-symbol-anchor take ' +\n        'take-last take-nth take-while test the-ns time to-array to-array-2d ' +\n        'trampoline transient tree-seq true? type unchecked-add unchecked-dec ' +\n        'unchecked-divide unchecked-inc unchecked-multiply unchecked-negate ' +\n        'unchecked-remainder unchecked-subtract underive unquote ' +\n        'unquote-splicing update-in update-proxy use val vals var-get var-set ' +\n        'var? vary-meta vec vector vector? when when-first when-let when-not ' +\n        'while with-bindings with-bindings* with-in-str with-loading-context ' +\n        'with-local-vars with-meta with-open with-out-str with-precision xml-seq ' +\n        'zero? zipmap'\n    );\n\n    var keywords = ('throw try var ' +\n        'def do fn if let loop monitor-enter monitor-exit new quote recur set!'\n    );\n\n    var buildinConstants = (\"true false nil\");\n\n    var keywordMapper = this.createKeywordMapper({\n        \"keyword\": keywords,\n        \"constant.language\": buildinConstants,\n        \"support.function\": builtinFunctions\n    }, \"identifier\", false, \" \");\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \";.*$\"\n            }, {\n                token : \"keyword\", //parens\n                regex : \"[\\\\(|\\\\)]\"\n            }, {\n                token : \"keyword\", //lists\n                regex : \"[\\\\'\\\\(]\"\n            }, {\n                token : \"keyword\", //vectors\n                regex : \"[\\\\[|\\\\]]\"\n            }, {\n                token : \"keyword\", //sets and maps\n                regex : \"[\\\\{|\\\\}|\\\\#\\\\{|\\\\#\\\\}]\"\n            }, {\n                    token : \"keyword\", // ampersands\n                    regex : '[\\\\&]'\n            }, {\n                    token : \"keyword\", // metadata\n                    regex : '[\\\\#\\\\^\\\\{]'\n            }, {\n                    token : \"keyword\", // anonymous fn syntactic sugar\n                    regex : '[\\\\%]'\n            }, {\n                    token : \"keyword\", // deref reader macro\n                    regex : '[@]'\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n            }, {\n                token : \"constant.language\",\n                regex : '[!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+||=|!=|<=|>=|<>|<|>|!|&&]'\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$\\\\-]*\\\\b\"\n            }, {\n                token : \"string\", // single line\n                regex : '\"',\n                next: \"string\"\n            }, {\n                token : \"constant\", // symbol\n                regex : /:[^()\\[\\]{}'\"\\^%`,;\\s]+/\n            }, {\n                token : \"string.regexp\", //Regular Expressions\n                regex : '/#\"(?:\\\\.|(?:\\\\\")|[^\"\"\\n])*\"/g'\n            }\n\n        ],\n        \"string\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : \"\\\\\\\\.|\\\\\\\\$\"\n            }, {\n                token : \"string\",\n                regex : '[^\"\\\\\\\\]+'\n            }, {\n                token : \"string\",\n                regex : '\"',\n                next : \"start\"\n            }\n        ]\n    };\n};\n\noop.inherits(ClojureHighlightRules, TextHighlightRules);\n\nexports.ClojureHighlightRules = ClojureHighlightRules;\n});\n\nace.define(\"ace/mode/matching_parens_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingParensOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\)/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\))/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        var match = line.match(/^(\\s+)/);\n        if (match) {\n            return match[1];\n        }\n\n        return \"\";\n    };\n\n}).call(MatchingParensOutdent.prototype);\n\nexports.MatchingParensOutdent = MatchingParensOutdent;\n});\n\nace.define(\"ace/mode/clojure\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/clojure_highlight_rules\",\"ace/mode/matching_parens_outdent\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar ClojureHighlightRules = require(\"./clojure_highlight_rules\").ClojureHighlightRules;\nvar MatchingParensOutdent = require(\"./matching_parens_outdent\").MatchingParensOutdent;\n\nvar Mode = function() {\n    this.HighlightRules = ClojureHighlightRules;\n    this.$outdent = new MatchingParensOutdent();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \";\";\n    this.minorIndentFunctions = [\"defn\", \"defn-\", \"defmacro\", \"def\", \"deftest\", \"testing\"];\n\n    this.$toIndent = function(str) {\n        return str.split('').map(function(ch) {\n            if (/\\s/.exec(ch)) {\n                return ch;\n            } else {\n                return ' ';\n            }\n        }).join('');\n    };\n\n    this.$calculateIndent = function(line, tab) {\n        var baseIndent = this.$getIndent(line);\n        var delta = 0;\n        var isParen, ch;\n        for (var i = line.length - 1; i >= 0; i--) {\n            ch = line[i];\n            if (ch === '(') {\n                delta--;\n                isParen = true;\n            } else if (ch === '(' || ch === '[' || ch === '{') {\n                delta--;\n                isParen = false;\n            } else if (ch === ')' || ch === ']' || ch === '}') {\n                delta++;\n            }\n            if (delta < 0) {\n                break;\n            }\n        }\n        if (delta < 0 && isParen) {\n            i += 1;\n            var iBefore = i;\n            var fn = '';\n            while (true) {\n                ch = line[i];\n                if (ch === ' ' || ch === '\\t') {\n                    if(this.minorIndentFunctions.indexOf(fn) !== -1) {\n                        return this.$toIndent(line.substring(0, iBefore - 1) + tab);\n                    } else {\n                        return this.$toIndent(line.substring(0, i + 1));\n                    }\n                } else if (ch === undefined) {\n                    return this.$toIndent(line.substring(0, iBefore - 1) + tab);\n                }\n                fn += line[i];\n                i++;\n            }\n        } else if(delta < 0 && !isParen) {\n            return this.$toIndent(line.substring(0, i+1));\n        } else if(delta > 0) {\n            baseIndent = baseIndent.substring(0, baseIndent.length - tab.length);\n            return baseIndent;\n        } else {\n            return baseIndent;\n        }\n    };\n\n    this.getNextLineIndent = function(state, line, tab) {\n        return this.$calculateIndent(line, tab);\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.$id = \"ace/mode/clojure\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-cobol.js",
    "content": "ace.define(\"ace/mode/cobol_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar CobolHighlightRules = function() {\nvar keywords = \"ACCEPT|MERGE|SUM|ADD||MESSAGE|TABLE|ADVANCING|MODE|TAPE|\" +\n\"AFTER|MULTIPLY|TEST|ALL|NEGATIVE|TEXT|ALPHABET|NEXT|THAN|\" +\n\"ALSO|NO|THEN|ALTERNATE|NOT|THROUGH|AND|NUMBER|THRU|ANY|OCCURS|\" +\n\"TIME|ARE|OF|TO|AREA|OFF|TOP||ASCENDING|OMITTED|TRUE|ASSIGN|ON|TYPE|AT|OPEN|\" +\n\"UNIT|AUTHOR|OR|UNTIL|BEFORE|OTHER|UP|BLANK|OUTPUT|USE|BLOCK|PAGE|USING|BOTTOM|\" +\n\"PERFORM|VALUE|BY|PIC|VALUES|CALL|PICTURE|WHEN|CANCEL|PLUS|WITH|CD|POINTER|WRITE|\" +\n\"CHARACTER|POSITION||ZERO|CLOSE|POSITIVE|ZEROS|COLUMN|PROCEDURE|ZEROES|COMMA|PROGRAM|\" +\n\"COMMON|PROGRAM-ID|COMMUNICATION|QUOTE|COMP|RANDOM|COMPUTE|READ|CONTAINS|RECEIVE|CONFIGURATION|\" +\n\"RECORD|CONTINUE|REDEFINES|CONTROL|REFERENCE|COPY|REMAINDER|COUNT|REPLACE|DATA|REPORT|DATE|RESERVE|\" +\n\"DAY|RESET|DELETE|RETURN|DESTINATION|REWIND|DISABLE|REWRITE|DISPLAY|RIGHT|DIVIDE|RUN|DOWN|SAME|\" +\n\"ELSE|SEARCH|ENABLE|SECTION|END|SELECT|ENVIRONMENT|SENTENCE|EQUAL|SET|ERROR|SIGN|EXIT|SEQUENTIAL|\" +\n\"EXTERNAL|SIZE|FLASE|SORT|FILE|SOURCE|LENGTH|SPACE|LESS|STANDARD|LIMIT|START|LINE|STOP|LOCK|STRING|LOW-VALUE|SUBTRACT\";\n\n    var builtinConstants = (\n        \"true|false|null\"\n    );\n\n    var builtinFunctions = (\n        \"count|min|max|avg|sum|rank|now|coalesce|main\"\n    );\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": builtinFunctions,\n        \"keyword\": keywords,\n        \"constant.language\": builtinConstants\n    }, \"identifier\", true);\n\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment\",\n            regex : \"\\\\*.*$\"\n        }, {\n            token : \"string\",           // \" string\n            regex : '\".*?\"'\n        }, {\n            token : \"string\",           // ' string\n            regex : \"'.*?'\"\n        }, {\n            token : \"constant.numeric\", // float\n            regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n        }, {\n            token : keywordMapper,\n            regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n        }, {\n            token : \"keyword.operator\",\n            regex : \"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\"\n        }, {\n            token : \"paren.lparen\",\n            regex : \"[\\\\(]\"\n        }, {\n            token : \"paren.rparen\",\n            regex : \"[\\\\)]\"\n        }, {\n            token : \"text\",\n            regex : \"\\\\s+\"\n        } ]\n    };\n};\n\noop.inherits(CobolHighlightRules, TextHighlightRules);\n\nexports.CobolHighlightRules = CobolHighlightRules;\n});\n\nace.define(\"ace/mode/cobol\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/cobol_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CobolHighlightRules = require(\"./cobol_highlight_rules\").CobolHighlightRules;\n\nvar Mode = function() {\n    this.HighlightRules = CobolHighlightRules;\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"*\";\n\n    this.$id = \"ace/mode/cobol\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-coffee.js",
    "content": "ace.define(\"ace/mode/coffee_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\n    var oop = require(\"../lib/oop\");\n    var TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\n    oop.inherits(CoffeeHighlightRules, TextHighlightRules);\n\n    function CoffeeHighlightRules() {\n        var identifier = \"[$A-Za-z_\\\\x7f-\\\\uffff][$\\\\w\\\\x7f-\\\\uffff]*\";\n\n        var keywords = (\n            \"this|throw|then|try|typeof|super|switch|return|break|by|continue|\" +\n            \"catch|class|in|instanceof|is|isnt|if|else|extends|for|own|\" +\n            \"finally|function|while|when|new|no|not|delete|debugger|do|loop|of|off|\" +\n            \"or|on|unless|until|and|yes\"\n        );\n\n        var langConstant = (\n            \"true|false|null|undefined|NaN|Infinity\"\n        );\n\n        var illegal = (\n            \"case|const|default|function|var|void|with|enum|export|implements|\" +\n            \"interface|let|package|private|protected|public|static|yield\"\n        );\n\n        var supportClass = (\n            \"Array|Boolean|Date|Function|Number|Object|RegExp|ReferenceError|String|\" +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\" +\n            \"SyntaxError|TypeError|URIError|\"  +\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\" +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray\"\n        );\n\n        var supportFunction = (\n            \"Math|JSON|isNaN|isFinite|parseInt|parseFloat|encodeURI|\" +\n            \"encodeURIComponent|decodeURI|decodeURIComponent|String|\"\n        );\n\n        var variableLanguage = (\n            \"window|arguments|prototype|document\"\n        );\n\n        var keywordMapper = this.createKeywordMapper({\n            \"keyword\": keywords,\n            \"constant.language\": langConstant,\n            \"invalid.illegal\": illegal,\n            \"language.support.class\": supportClass,\n            \"language.support.function\": supportFunction,\n            \"variable.language\": variableLanguage\n        }, \"identifier\");\n\n        var functionRule = {\n            token: [\"paren.lparen\", \"variable.parameter\", \"paren.rparen\", \"text\", \"storage.type\"],\n            regex: /(?:(\\()((?:\"[^\")]*?\"|'[^')]*?'|\\/[^\\/)]*?\\/|[^()\"'\\/])*?)(\\))(\\s*))?([\\-=]>)/.source\n        };\n\n        var stringEscape = /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)/;\n\n        this.$rules = {\n            start : [\n                {\n                    token : \"constant.numeric\",\n                    regex : \"(?:0x[\\\\da-fA-F]+|(?:\\\\d+(?:\\\\.\\\\d+)?|\\\\.\\\\d+)(?:[eE][+-]?\\\\d+)?)\"\n                }, {\n                    stateName: \"qdoc\",\n                    token : \"string\", regex : \"'''\", next : [\n                        {token : \"string\", regex : \"'''\", next : \"start\"},\n                        {token : \"constant.language.escape\", regex : stringEscape},\n                        {defaultToken: \"string\"}\n                    ]\n                }, {\n                    stateName: \"qqdoc\",\n                    token : \"string\",\n                    regex : '\"\"\"',\n                    next : [\n                        {token : \"string\", regex : '\"\"\"', next : \"start\"},\n                        {token : \"paren.string\", regex : '#{', push : \"start\"},\n                        {token : \"constant.language.escape\", regex : stringEscape},\n                        {defaultToken: \"string\"}\n                    ]\n                }, {\n                    stateName: \"qstring\",\n                    token : \"string\", regex : \"'\", next : [\n                        {token : \"string\", regex : \"'\", next : \"start\"},\n                        {token : \"constant.language.escape\", regex : stringEscape},\n                        {defaultToken: \"string\"}\n                    ]\n                }, {\n                    stateName: \"qqstring\",\n                    token : \"string.start\", regex : '\"', next : [\n                        {token : \"string.end\", regex : '\"', next : \"start\"},\n                        {token : \"paren.string\", regex : '#{', push : \"start\"},\n                        {token : \"constant.language.escape\", regex : stringEscape},\n                        {defaultToken: \"string\"}\n                    ]\n                }, {\n                    stateName: \"js\",\n                    token : \"string\", regex : \"`\", next : [\n                        {token : \"string\", regex : \"`\", next : \"start\"},\n                        {token : \"constant.language.escape\", regex : stringEscape},\n                        {defaultToken: \"string\"}\n                    ]\n                }, {\n                    regex: \"[{}]\", onMatch: function(val, state, stack) {\n                        this.next = \"\";\n                        if (val == \"{\" && stack.length) {\n                            stack.unshift(\"start\", state);\n                            return \"paren\";\n                        }\n                        if (val == \"}\" && stack.length) {\n                            stack.shift();\n                            this.next = stack.shift() || \"\";\n                            if (this.next.indexOf(\"string\") != -1)\n                                return \"paren.string\";\n                        }\n                        return \"paren\";\n                    }\n                }, {\n                    token : \"string.regex\",\n                    regex : \"///\",\n                    next : \"heregex\"\n                }, {\n                    token : \"string.regex\",\n                    regex : /(?:\\/(?![\\s=])[^[\\/\\n\\\\]*(?:(?:\\\\[\\s\\S]|\\[[^\\]\\n\\\\]*(?:\\\\[\\s\\S][^\\]\\n\\\\]*)*])[^[\\/\\n\\\\]*)*\\/)(?:[imgy]{0,4})(?!\\w)/\n                }, {\n                    token : \"comment\",\n                    regex : \"###(?!#)\",\n                    next : \"comment\"\n                }, {\n                    token : \"comment\",\n                    regex : \"#.*\"\n                }, {\n                    token : [\"punctuation.operator\", \"text\", \"identifier\"],\n                    regex : \"(\\\\.)(\\\\s*)(\" + illegal + \")\"\n                }, {\n                    token : \"punctuation.operator\",\n                    regex : \"\\\\.{1,3}\"\n                }, {\n                    token : [\"keyword\", \"text\", \"language.support.class\",\n                     \"text\", \"keyword\", \"text\", \"language.support.class\"],\n                    regex : \"(class)(\\\\s+)(\" + identifier + \")(?:(\\\\s+)(extends)(\\\\s+)(\" + identifier + \"))?\"\n                }, {\n                    token : [\"entity.name.function\", \"text\", \"keyword.operator\", \"text\"].concat(functionRule.token),\n                    regex : \"(\" + identifier + \")(\\\\s*)([=:])(\\\\s*)\" + functionRule.regex\n                }, \n                functionRule, \n                {\n                    token : \"variable\",\n                    regex : \"@(?:\" + identifier + \")?\"\n                }, {\n                    token: keywordMapper,\n                    regex : identifier\n                }, {\n                    token : \"punctuation.operator\",\n                    regex : \"\\\\,|\\\\.\"\n                }, {\n                    token : \"storage.type\",\n                    regex : \"[\\\\-=]>\"\n                }, {\n                    token : \"keyword.operator\",\n                    regex : \"(?:[-+*/%<>&|^!?=]=|>>>=?|\\\\-\\\\-|\\\\+\\\\+|::|&&=|\\\\|\\\\|=|<<=|>>=|\\\\?\\\\.|\\\\.{2,3}|[!*+-=><])\"\n                }, {\n                    token : \"paren.lparen\",\n                    regex : \"[({[]\"\n                }, {\n                    token : \"paren.rparen\",\n                    regex : \"[\\\\]})]\"\n                }, {\n                    token : \"text\",\n                    regex : \"\\\\s+\"\n                }],\n\n\n            heregex : [{\n                token : \"string.regex\",\n                regex : '.*?///[imgy]{0,4}',\n                next : \"start\"\n            }, {\n                token : \"comment.regex\",\n                regex : \"\\\\s+(?:#.*)?\"\n            }, {\n                token : \"string.regex\",\n                regex : \"\\\\S+\"\n            }],\n\n            comment : [{\n                token : \"comment\",\n                regex : '###',\n                next : \"start\"\n            }, {\n                defaultToken : \"comment\"\n            }]\n        };\n        this.normalizeRules();\n    }\n\n    exports.CoffeeHighlightRules = CoffeeHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var range = this.indentationBlock(session, row);\n        if (range)\n            return range;\n\n        var re = /\\S/;\n        var line = session.getLine(row);\n        var startLevel = line.search(re);\n        if (startLevel == -1 || line[startLevel] != \"#\")\n            return;\n\n        var startColumn = line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var level = line.search(re);\n\n            if (level == -1)\n                continue;\n\n            if (line[level] != \"#\")\n                break;\n\n            endRow = row;\n        }\n\n        if (endRow > startRow) {\n            var endColumn = session.getLine(endRow).length;\n            return new Range(startRow, startColumn, endRow, endColumn);\n        }\n    };\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var indent = line.search(/\\S/);\n        var next = session.getLine(row + 1);\n        var prev = session.getLine(row - 1);\n        var prevIndent = prev.search(/\\S/);\n        var nextIndent = next.search(/\\S/);\n\n        if (indent == -1) {\n            session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n            return \"\";\n        }\n        if (prevIndent == -1) {\n            if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n                session.foldWidgets[row - 1] = \"\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"start\";\n            }\n        } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n            if (session.getLine(row - 2).search(/\\S/) == -1) {\n                session.foldWidgets[row - 1] = \"start\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"\";\n            }\n        }\n\n        if (prevIndent!= -1 && prevIndent < indent)\n            session.foldWidgets[row - 1] = \"start\";\n        else\n            session.foldWidgets[row - 1] = \"\";\n\n        if (indent < nextIndent)\n            return \"start\";\n        else\n            return \"\";\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/coffee\",[\"require\",\"exports\",\"module\",\"ace/mode/coffee_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/coffee\",\"ace/range\",\"ace/mode/text\",\"ace/worker/worker_client\",\"ace/lib/oop\"], function(require, exports, module) {\n\"use strict\";\n\nvar Rules = require(\"./coffee_highlight_rules\").CoffeeHighlightRules;\nvar Outdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar FoldMode = require(\"./folding/coffee\").FoldMode;\nvar Range = require(\"../range\").Range;\nvar TextMode = require(\"./text\").Mode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar oop = require(\"../lib/oop\");\n\nfunction Mode() {\n    this.HighlightRules = Rules;\n    this.$outdent = new Outdent();\n    this.foldingRules = new FoldMode();\n}\n\noop.inherits(Mode, TextMode);\n\n(function() {\n    var indenter = /(?:[({[=:]|[-=]>|\\b(?:else|try|(?:swi|ca)tch(?:\\s+[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*)?|finally))\\s*$|^\\s*(else\\b\\s*)?(?:if|for|while|loop)\\b(?!.*\\bthen\\b)/;\n    \n    this.lineCommentStart = \"#\";\n    this.blockComment = {start: \"###\", end: \"###\"};\n    \n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n    \n        if (!(tokens.length && tokens[tokens.length - 1].type === 'comment') &&\n            state === 'start' && indenter.test(line))\n            indent += tab;\n        return indent;\n    };\n    \n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n    \n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n    \n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/coffee_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n        \n        worker.on(\"annotate\", function(e) {\n            session.setAnnotations(e.data);\n        });\n        \n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n        \n        return worker;\n    };\n\n    this.$id = \"ace/mode/coffee\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-coldfusion.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar propertyMap = {\n    \"background\": {\"#$0\": 1},\n    \"background-color\": {\"#$0\": 1, \"transparent\": 1, \"fixed\": 1},\n    \"background-image\": {\"url('/$0')\": 1},\n    \"background-repeat\": {\"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1},\n    \"background-position\": {\"bottom\":2, \"center\":2, \"left\":2, \"right\":2, \"top\":2, \"inherit\":2},\n    \"background-attachment\": {\"scroll\": 1, \"fixed\": 1},\n    \"background-size\": {\"cover\": 1, \"contain\": 1},\n    \"background-clip\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"background-origin\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"border\": {\"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1},\n    \"border-color\": {\"#$0\": 1},\n    \"border-style\": {\"solid\":2, \"dashed\":2, \"dotted\":2, \"double\":2, \"groove\":2, \"hidden\":2, \"inherit\":2, \"inset\":2, \"none\":2, \"outset\":2, \"ridged\":2},\n    \"border-collapse\": {\"collapse\": 1, \"separate\": 1},\n    \"bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"clear\": {\"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1},\n    \"color\": {\"#$0\": 1, \"rgb(#$00,0,0)\": 1},\n    \"cursor\": {\"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1},\n    \"display\": {\"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1},\n    \"empty-cells\": {\"show\": 1, \"hide\": 1},\n    \"float\": {\"left\": 1, \"right\": 1, \"none\": 1},\n    \"font-family\": {\"Arial\":2,\"Comic Sans MS\":2,\"Consolas\":2,\"Courier New\":2,\"Courier\":2,\"Georgia\":2,\"Monospace\":2,\"Sans-Serif\":2, \"Segoe UI\":2,\"Tahoma\":2,\"Times New Roman\":2,\"Trebuchet MS\":2,\"Verdana\": 1},\n    \"font-size\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"font-weight\": {\"bold\": 1, \"normal\": 1},\n    \"font-style\": {\"italic\": 1, \"normal\": 1},\n    \"font-variant\": {\"normal\": 1, \"small-caps\": 1},\n    \"height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"letter-spacing\": {\"normal\": 1},\n    \"line-height\": {\"normal\": 1},\n    \"list-style-type\": {\"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1},\n    \"margin\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"overflow\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-x\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-y\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"padding\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"page-break-after\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"page-break-before\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"position\": {\"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1},\n    \"right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"table-layout\": {\"fixed\": 1, \"auto\": 1},\n    \"text-decoration\": {\"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1},\n    \"text-align\": {\"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1},\n    \"text-transform\": {\"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1},\n    \"top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"vertical-align\": {\"top\": 1, \"bottom\": 1},\n    \"visibility\": {\"hidden\": 1, \"visible\": 1},\n    \"white-space\": {\"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1},\n    \"width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"word-spacing\": {\"normal\": 1},\n    \"filter\": {\"alpha(opacity=$0100)\": 1},\n\n    \"text-shadow\": {\"$02px 2px 2px #777\": 1},\n    \"text-overflow\": {\"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1},\n    \"-moz-border-radius\": 1,\n    \"-moz-border-radius-topright\": 1,\n    \"-moz-border-radius-bottomright\": 1,\n    \"-moz-border-radius-topleft\": 1,\n    \"-moz-border-radius-bottomleft\": 1,\n    \"-webkit-border-radius\": 1,\n    \"-webkit-border-top-right-radius\": 1,\n    \"-webkit-border-top-left-radius\": 1,\n    \"-webkit-border-bottom-right-radius\": 1,\n    \"-webkit-border-bottom-left-radius\": 1,\n    \"-moz-box-shadow\": 1,\n    \"-webkit-box-shadow\": 1,\n    \"transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-moz-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-webkit-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\n\nvar CssCompletions = function() {\n\n};\n\n(function() {\n\n    this.completionsDefined = false;\n\n    this.defineCompletions = function() {\n        if (document) {\n            var style = document.createElement('c').style;\n\n            for (var i in style) {\n                if (typeof style[i] !== 'string')\n                    continue;\n\n                var name = i.replace(/[A-Z]/g, function(x) {\n                    return '-' + x.toLowerCase();\n                });\n\n                if (!propertyMap.hasOwnProperty(name))\n                    propertyMap[name] = 1;\n            }\n        }\n\n        this.completionsDefined = true;\n    }\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        if (!this.completionsDefined) {\n            this.defineCompletions();\n        }\n\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (state==='ruleset'){\n            var line = session.getLine(pos.row).substr(0, pos.column);\n            if (/:[^;]+$/.test(line)) {\n                /([\\w\\-]+):[^:]*$/.test(line);\n\n                return this.getPropertyValueCompletions(state, session, pos, prefix);\n            } else {\n                return this.getPropertyCompletions(state, session, pos, prefix);\n            }\n        }\n\n        return [];\n    };\n\n    this.getPropertyCompletions = function(state, session, pos, prefix) {\n        var properties = Object.keys(propertyMap);\n        return properties.map(function(property){\n            return {\n                caption: property,\n                snippet: property + ': $0',\n                meta: \"property\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getPropertyValueCompletions = function(state, session, pos, prefix) {\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n\n        if (!property)\n            return [];\n        var values = [];\n        if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n            values = Object.keys(propertyMap[property]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"property value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(CssCompletions.prototype);\n\nexports.CssCompletions = CssCompletions;\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar CssBehaviour = function () {\n\n    this.inherit(CstyleBehaviour);\n\n    this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(cursor.row);\n                var rightChar = line.substring(cursor.column, cursor.column + 1);\n                if (rightChar === ':') {\n                    return {\n                       text: '',\n                       selection: [1, 1]\n                    }\n                }\n                if (!line.substring(cursor.column).match(/^\\s*;/)) {\n                    return {\n                       text: ':;',\n                       selection: [1, 1]\n                    }\n                }\n            }\n        }\n    });\n\n    this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && selected === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(range.start.row);\n                var rightChar = line.substring(range.end.column, range.end.column + 1);\n                if (rightChar === ';') {\n                    range.end.column ++;\n                    return range;\n                }\n            }\n        }\n    });\n\n    this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ';') {\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar === ';') {\n                return {\n                   text: '',\n                   selection: [1, 1]\n                }\n            }\n        }\n    });\n\n}\noop.inherits(CssBehaviour, CstyleBehaviour);\n\nexports.CssBehaviour = CssBehaviour;\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = CssHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CssBehaviour();\n    this.$completer = new CssCompletions();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.foldingRules = \"cStyle\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        var match = line.match(/^.*\\{\\s*$/);\n        if (match) {\n            indent += tab;\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/css\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n    a           : 'anchor',\n    button \t    : 'form',\n    form        : 'form',\n    img         : 'image',\n    input       : 'form',\n    label       : 'form',\n    option      : 'form',\n    script      : 'script',\n    select      : 'form',\n    textarea    : 'form',\n    style       : 'style',\n    table       : 'table',\n    tbody       : 'table',\n    td          : 'table',\n    tfoot       : 'table',\n    th          : 'table',\n    tr          : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.addRules({\n        attributes: [{\n            include : \"tag_whitespace\"\n        }, {\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"[-_a-zA-Z0-9:.]+\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\",\n            push : [{\n                include: \"tag_whitespace\"\n            }, {\n                token : \"string.unquoted.attribute-value.html\",\n                regex : \"[^<>='\\\"`\\\\s]+\",\n                next : \"pop\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"pop\"\n            }]\n        }, {\n            include : \"attribute_value\"\n        }],\n        tag: [{\n            token : function(start, tag) {\n                var group = tagMap[tag];\n                return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                    \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n            },\n            regex : \"(</?)([-_a-zA-Z0-9:.]+)\",\n            next: \"tag_stuff\"\n        }],\n        tag_stuff: [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n        ]\n    });\n\n    this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"js-\", \"script\");\n\n    if (this.constructor === HtmlHighlightRules)\n        this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nvar XmlBehaviour = function () {\n\n    this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '\"' || text == \"'\") {\n            var quote = text;\n            var selected = session.doc.getTextRange(editor.getSelectionRange());\n            if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n                return {\n                    text: quote + selected + quote,\n                    selection: false\n                };\n            }\n\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n                return {\n                    text: \"\",\n                    selection: [1, 1]\n                };\n            }\n\n            if (!token)\n                token = iterator.stepBackward();\n\n            if (!token)\n                return;\n\n            while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n                token = iterator.stepBackward();\n            }\n            var rightSpace = !rightChar || rightChar.match(/\\s/);\n            if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n                return {\n                    text: quote + quote,\n                    selection: [1, 1]\n                };\n            }\n        }\n    });\n\n    this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == selected) {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n\n    this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '>') {\n            var position = editor.getSelectionRange().start;\n            var iterator = new TokenIterator(session, position.row, position.column);\n            var token = iterator.getCurrentToken() || iterator.stepBackward();\n            if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n                return;\n            if (is(token, \"reference.attribute-value\"))\n                return;\n            if (is(token, \"attribute-value\")) {\n                var firstChar = token.value.charAt(0);\n                if (firstChar == '\"' || firstChar == \"'\") {\n                    var lastChar = token.value.charAt(token.value.length - 1);\n                    var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;\n                    if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)\n                        return;\n                }\n            }\n            while (!is(token, \"tag-name\")) {\n                token = iterator.stepBackward();\n                if (token.value == \"<\") {\n                    token = iterator.stepForward();\n                    break;\n                }\n            }\n\n            var tokenRow = iterator.getCurrentTokenRow();\n            var tokenColumn = iterator.getCurrentTokenColumn();\n            if (is(iterator.stepBackward(), \"end-tag-open\"))\n                return;\n\n            var element = token.value;\n            if (tokenRow == position.row)\n                element = element.substring(0, position.column - tokenColumn);\n\n            if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n                 return;\n\n            return {\n               text: \">\" + \"</\" + element + \">\",\n               selection: [1, 1]\n            };\n        }\n    });\n\n    this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == \"\\n\") {\n            var cursor = editor.getCursorPosition();\n            var line = session.getLine(cursor.row);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (token && token.type.indexOf(\"tag-close\") !== -1) {\n                if (token.value == \"/>\")\n                    return;\n                while (token && token.type.indexOf(\"tag-name\") === -1) {\n                    token = iterator.stepBackward();\n                }\n\n                if (!token) {\n                    return;\n                }\n\n                var tag = token.value;\n                var row = iterator.getCurrentTokenRow();\n                token = iterator.stepBackward();\n                if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n                    return;\n                }\n\n                if (this.voidElements && !this.voidElements[tag]) {\n                    var nextToken = session.getTokenAt(cursor.row, cursor.column+1);\n                    var line = session.getLine(row);\n                    var nextIndent = this.$getIndent(line);\n                    var indent = nextIndent + session.getTabString();\n\n                    if (nextToken && nextToken.value === \"</\") {\n                        return {\n                            text: \"\\n\" + indent + \"\\n\" + nextIndent,\n                            selection: [1, indent.length, 1, indent.length]\n                        };\n                    } else {\n                        return {\n                            text: \"\\n\" + indent\n                        };\n                    }\n                }\n            }\n        }\n    });\n\n};\n\noop.inherits(XmlBehaviour, Behaviour);\n\nexports.XmlBehaviour = XmlBehaviour;\n});\n\nace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(defaultMode, subModes) {\n    this.defaultMode = defaultMode;\n    this.subModes = subModes;\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n\n    this.$getMode = function(state) {\n        if (typeof state != \"string\") \n            state = state[0];\n        for (var key in this.subModes) {\n            if (state.indexOf(key) === 0)\n                return this.subModes[key];\n        }\n        return null;\n    };\n    \n    this.$tryMode = function(state, session, foldStyle, row) {\n        var mode = this.$getMode(state);\n        return (mode ? mode.getFoldWidget(session, foldStyle, row) : \"\");\n    };\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        return (\n            this.$tryMode(session.getState(row-1), session, foldStyle, row) ||\n            this.$tryMode(session.getState(row), session, foldStyle, row) ||\n            this.defaultMode.getFoldWidget(session, foldStyle, row)\n        );\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var mode = this.$getMode(session.getState(row-1));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.$getMode(session.getState(row));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.defaultMode;\n        \n        return mode.getFoldWidgetRange(session, foldStyle, row);\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar lang = require(\"../../lib/lang\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalEndTags) {\n    BaseFoldMode.call(this);\n    this.voidElements = voidElements || {};\n    this.optionalEndTags = oop.mixin({}, this.voidElements);\n    if (optionalEndTags)\n        oop.mixin(this.optionalEndTags, optionalEndTags);\n    \n};\noop.inherits(FoldMode, BaseFoldMode);\n\nvar Tag = function() {\n    this.tagName = \"\";\n    this.closing = false;\n    this.selfClosing = false;\n    this.start = {row: 0, column: 0};\n    this.end = {row: 0, column: 0};\n};\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\n(function() {\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var tag = this._getFirstTagInLine(session, row);\n\n        if (!tag)\n            return \"\";\n\n        if (tag.closing || (!tag.tagName && tag.selfClosing))\n            return foldStyle == \"markbeginend\" ? \"end\" : \"\";\n\n        if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n            return \"\";\n\n        if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n            return \"\";\n\n        return \"start\";\n    };\n    this._getFirstTagInLine = function(session, row) {\n        var tokens = session.getTokens(row);\n        var tag = new Tag();\n\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            if (is(token, \"tag-open\")) {\n                tag.end.column = tag.start.column + token.value.length;\n                tag.closing = is(token, \"end-tag-open\");\n                token = tokens[++i];\n                if (!token)\n                    return null;\n                tag.tagName = token.value;\n                tag.end.column += token.value.length;\n                for (i++; i < tokens.length; i++) {\n                    token = tokens[i];\n                    tag.end.column += token.value.length;\n                    if (is(token, \"tag-close\")) {\n                        tag.selfClosing = token.value == '/>';\n                        break;\n                    }\n                }\n                return tag;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == '/>';\n                return tag;\n            }\n            tag.start.column += token.value.length;\n        }\n\n        return null;\n    };\n\n    this._findEndTagInLine = function(session, row, tagName, startColumn) {\n        var tokens = session.getTokens(row);\n        var column = 0;\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            column += token.value.length;\n            if (column < startColumn)\n                continue;\n            if (is(token, \"end-tag-open\")) {\n                token = tokens[i + 1];\n                if (token && token.value == tagName)\n                    return true;\n            }\n        }\n        return false;\n    };\n    this._readTagForward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n                iterator.stepForward();\n                return tag;\n            }\n        } while(token = iterator.stepForward());\n\n        return null;\n    };\n    \n    this._readTagBackward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n                iterator.stepBackward();\n                return tag;\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n            }\n        } while(token = iterator.stepBackward());\n\n        return null;\n    };\n    \n    this._pop = function(stack, tag) {\n        while (stack.length) {\n            \n            var top = stack[stack.length-1];\n            if (!tag || top.tagName == tag.tagName) {\n                return stack.pop();\n            }\n            else if (this.optionalEndTags.hasOwnProperty(top.tagName)) {\n                stack.pop();\n                continue;\n            } else {\n                return null;\n            }\n        }\n    };\n    \n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var firstTag = this._getFirstTagInLine(session, row);\n        \n        if (!firstTag)\n            return null;\n        \n        var isBackward = firstTag.closing || firstTag.selfClosing;\n        var stack = [];\n        var tag;\n        \n        if (!isBackward) {\n            var iterator = new TokenIterator(session, row, firstTag.start.column);\n            var start = {\n                row: row,\n                column: firstTag.start.column + firstTag.tagName.length + 2\n            };\n            if (firstTag.start.row == firstTag.end.row)\n                start.column = firstTag.end.column;\n            while (tag = this._readTagForward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0)\n                        return Range.fromPoints(start, tag.start);\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        else {\n            var iterator = new TokenIterator(session, row, firstTag.end.column);\n            var end = {\n                row: row,\n                column: firstTag.start.column\n            };\n            \n            while (tag = this._readTagBackward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (!tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0) {\n                        tag.start.column += tag.tagName.length + 2;\n                        if (tag.start.row == tag.end.row && tag.start.column < tag.end.column)\n                            tag.start.column = tag.end.column;\n                        return Range.fromPoints(tag.start, end);\n                    }\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        \n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar MixedFoldMode = require(\"./mixed\").FoldMode;\nvar XmlFoldMode = require(\"./xml\").FoldMode;\nvar CStyleFoldMode = require(\"./cstyle\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalTags) {\n    MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), {\n        \"js-\": new CStyleFoldMode(),\n        \"css-\": new CStyleFoldMode()\n    });\n};\n\noop.inherits(FoldMode, MixedFoldMode);\n\n});\n\nace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\n\nvar commonAttributes = [\n    \"accesskey\",\n    \"class\",\n    \"contenteditable\",\n    \"contextmenu\",\n    \"dir\",\n    \"draggable\",\n    \"dropzone\",\n    \"hidden\",\n    \"id\",\n    \"inert\",\n    \"itemid\",\n    \"itemprop\",\n    \"itemref\",\n    \"itemscope\",\n    \"itemtype\",\n    \"lang\",\n    \"spellcheck\",\n    \"style\",\n    \"tabindex\",\n    \"title\",\n    \"translate\"\n];\n\nvar eventAttributes = [\n    \"onabort\",\n    \"onblur\",\n    \"oncancel\",\n    \"oncanplay\",\n    \"oncanplaythrough\",\n    \"onchange\",\n    \"onclick\",\n    \"onclose\",\n    \"oncontextmenu\",\n    \"oncuechange\",\n    \"ondblclick\",\n    \"ondrag\",\n    \"ondragend\",\n    \"ondragenter\",\n    \"ondragleave\",\n    \"ondragover\",\n    \"ondragstart\",\n    \"ondrop\",\n    \"ondurationchange\",\n    \"onemptied\",\n    \"onended\",\n    \"onerror\",\n    \"onfocus\",\n    \"oninput\",\n    \"oninvalid\",\n    \"onkeydown\",\n    \"onkeypress\",\n    \"onkeyup\",\n    \"onload\",\n    \"onloadeddata\",\n    \"onloadedmetadata\",\n    \"onloadstart\",\n    \"onmousedown\",\n    \"onmousemove\",\n    \"onmouseout\",\n    \"onmouseover\",\n    \"onmouseup\",\n    \"onmousewheel\",\n    \"onpause\",\n    \"onplay\",\n    \"onplaying\",\n    \"onprogress\",\n    \"onratechange\",\n    \"onreset\",\n    \"onscroll\",\n    \"onseeked\",\n    \"onseeking\",\n    \"onselect\",\n    \"onshow\",\n    \"onstalled\",\n    \"onsubmit\",\n    \"onsuspend\",\n    \"ontimeupdate\",\n    \"onvolumechange\",\n    \"onwaiting\"\n];\n\nvar globalAttributes = commonAttributes.concat(eventAttributes);\n\nvar attributeMap = {\n    \"html\": {\"manifest\": 1},\n    \"head\": {},\n    \"title\": {},\n    \"base\": {\"href\": 1, \"target\": 1},\n    \"link\": {\"href\": 1, \"hreflang\": 1, \"rel\": {\"stylesheet\": 1, \"icon\": 1}, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"type\": {\"text/css\": 1, \"image/png\": 1, \"image/jpeg\": 1, \"image/gif\": 1}, \"sizes\": 1},\n    \"meta\": {\"http-equiv\": {\"content-type\": 1}, \"name\": {\"description\": 1, \"keywords\": 1}, \"content\": {\"text/html; charset=UTF-8\": 1}, \"charset\": 1},\n    \"style\": {\"type\": 1, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"scoped\": 1},\n    \"script\": {\"charset\": 1, \"type\": {\"text/javascript\": 1}, \"src\": 1, \"defer\": 1, \"async\": 1},\n    \"noscript\": {\"href\": 1},\n    \"body\": {\"onafterprint\": 1, \"onbeforeprint\": 1, \"onbeforeunload\": 1, \"onhashchange\": 1, \"onmessage\": 1, \"onoffline\": 1, \"onpopstate\": 1, \"onredo\": 1, \"onresize\": 1, \"onstorage\": 1, \"onundo\": 1, \"onunload\": 1},\n    \"section\": {},\n    \"nav\": {},\n    \"article\": {\"pubdate\": 1},\n    \"aside\": {},\n    \"h1\": {},\n    \"h2\": {},\n    \"h3\": {},\n    \"h4\": {},\n    \"h5\": {},\n    \"h6\": {},\n    \"header\": {},\n    \"footer\": {},\n    \"address\": {},\n    \"main\": {},\n    \"p\": {},\n    \"hr\": {},\n    \"pre\": {},\n    \"blockquote\": {\"cite\": 1},\n    \"ol\": {\"start\": 1, \"reversed\": 1},\n    \"ul\": {},\n    \"li\": {\"value\": 1},\n    \"dl\": {},\n    \"dt\": {},\n    \"dd\": {},\n    \"figure\": {},\n    \"figcaption\": {},\n    \"div\": {},\n    \"a\": {\"href\": 1, \"target\": {\"_blank\": 1, \"top\": 1}, \"ping\": 1, \"rel\": {\"nofollow\": 1, \"alternate\": 1, \"author\": 1, \"bookmark\": 1, \"help\": 1, \"license\": 1, \"next\": 1, \"noreferrer\": 1, \"prefetch\": 1, \"prev\": 1, \"search\": 1, \"tag\": 1}, \"media\": 1, \"hreflang\": 1, \"type\": 1},\n    \"em\": {},\n    \"strong\": {},\n    \"small\": {},\n    \"s\": {},\n    \"cite\": {},\n    \"q\": {\"cite\": 1},\n    \"dfn\": {},\n    \"abbr\": {},\n    \"data\": {},\n    \"time\": {\"datetime\": 1},\n    \"code\": {},\n    \"var\": {},\n    \"samp\": {},\n    \"kbd\": {},\n    \"sub\": {},\n    \"sup\": {},\n    \"i\": {},\n    \"b\": {},\n    \"u\": {},\n    \"mark\": {},\n    \"ruby\": {},\n    \"rt\": {},\n    \"rp\": {},\n    \"bdi\": {},\n    \"bdo\": {},\n    \"span\": {},\n    \"br\": {},\n    \"wbr\": {},\n    \"ins\": {\"cite\": 1, \"datetime\": 1},\n    \"del\": {\"cite\": 1, \"datetime\": 1},\n    \"img\": {\"alt\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"usemap\": 1, \"ismap\": 1},\n    \"iframe\": {\"name\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"sandbox\": {\"allow-same-origin\": 1, \"allow-top-navigation\": 1, \"allow-forms\": 1, \"allow-scripts\": 1}, \"seamless\": {\"seamless\": 1}},\n    \"embed\": {\"src\": 1, \"height\": 1, \"width\": 1, \"type\": 1},\n    \"object\": {\"param\": 1, \"data\": 1, \"type\": 1, \"height\" : 1, \"width\": 1, \"usemap\": 1, \"name\": 1, \"form\": 1, \"classid\": 1},\n    \"param\": {\"name\": 1, \"value\": 1},\n    \"video\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"width\": 1, \"height\": 1, \"poster\": 1, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1}},\n    \"audio\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1 }},\n    \"source\": {\"src\": 1, \"type\": 1, \"media\": 1},\n    \"track\": {\"kind\": 1, \"src\": 1, \"srclang\": 1, \"label\": 1, \"default\": 1},\n    \"canvas\": {\"width\": 1, \"height\": 1},\n    \"map\": {\"name\": 1},\n    \"area\": {\"shape\": 1, \"coords\": 1, \"href\": 1, \"hreflang\": 1, \"alt\": 1, \"target\": 1, \"media\": 1, \"rel\": 1, \"ping\": 1, \"type\": 1},\n    \"svg\": {},\n    \"math\": {},\n    \"table\": {\"summary\": 1},\n    \"caption\": {},\n    \"colgroup\": {\"span\": 1},\n    \"col\": {\"span\": 1},\n    \"tbody\": {},\n    \"thead\": {},\n    \"tfoot\": {},\n    \"tr\": {},\n    \"td\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1},\n    \"th\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1, \"scope\": 1},\n    \"form\": {\"accept-charset\": 1, \"action\": 1, \"autocomplete\": 1, \"enctype\": {\"multipart/form-data\": 1, \"application/x-www-form-urlencoded\": 1}, \"method\": {\"get\": 1, \"post\": 1}, \"name\": 1, \"novalidate\": 1, \"target\": {\"_blank\": 1, \"top\": 1}},\n    \"fieldset\": {\"disabled\": 1, \"form\": 1, \"name\": 1},\n    \"legend\": {},\n    \"label\": {\"form\": 1, \"for\": 1},\n    \"input\": {\n        \"type\": {\"text\": 1, \"password\": 1, \"hidden\": 1, \"checkbox\": 1, \"submit\": 1, \"radio\": 1, \"file\": 1, \"button\": 1, \"reset\": 1, \"image\": 31, \"color\": 1, \"date\": 1, \"datetime\": 1, \"datetime-local\": 1, \"email\": 1, \"month\": 1, \"number\": 1, \"range\": 1, \"search\": 1, \"tel\": 1, \"time\": 1, \"url\": 1, \"week\": 1},\n        \"accept\": 1, \"alt\": 1, \"autocomplete\": {\"on\": 1, \"off\": 1}, \"autofocus\": {\"autofocus\": 1}, \"checked\": {\"checked\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": {\"application/x-www-form-urlencoded\": 1, \"multipart/form-data\": 1, \"text/plain\": 1}, \"formmethod\": {\"get\": 1, \"post\": 1}, \"formnovalidate\": {\"formnovalidate\": 1}, \"formtarget\": {\"_blank\": 1, \"_self\": 1, \"_parent\": 1, \"_top\": 1}, \"height\": 1, \"list\": 1, \"max\": 1, \"maxlength\": 1, \"min\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"pattern\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"size\": 1, \"src\": 1, \"step\": 1, \"width\": 1, \"files\": 1, \"value\": 1},\n    \"button\": {\"autofocus\": 1, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": 1, \"formmethod\": 1, \"formnovalidate\": 1, \"formtarget\": 1, \"name\": 1, \"value\": 1, \"type\": {\"button\": 1, \"submit\": 1}},\n    \"select\": {\"autofocus\": 1, \"disabled\": 1, \"form\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"size\": 1, \"readonly\":{\"readonly\": 1}},\n    \"datalist\": {},\n    \"optgroup\": {\"disabled\": 1, \"label\": 1},\n    \"option\": {\"disabled\": 1, \"selected\": 1, \"label\": 1, \"value\": 1},\n    \"textarea\": {\"autofocus\": {\"autofocus\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"maxlength\": 1, \"name\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"rows\": 1, \"cols\": 1, \"wrap\": {\"on\": 1, \"off\": 1, \"hard\": 1, \"soft\": 1}},\n    \"keygen\": {\"autofocus\": 1, \"challenge\": {\"challenge\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"keytype\": {\"rsa\": 1, \"dsa\": 1, \"ec\": 1}, \"name\": 1},\n    \"output\": {\"for\": 1, \"form\": 1, \"name\": 1},\n    \"progress\": {\"value\": 1, \"max\": 1},\n    \"meter\": {\"value\": 1, \"min\": 1, \"max\": 1, \"low\": 1, \"high\": 1, \"optimum\": 1},\n    \"details\": {\"open\": 1},\n    \"summary\": {},\n    \"command\": {\"type\": 1, \"label\": 1, \"icon\": 1, \"disabled\": 1, \"checked\": 1, \"radiogroup\": 1, \"command\": 1},\n    \"menu\": {\"type\": 1, \"label\": 1},\n    \"dialog\": {\"open\": 1}\n};\n\nvar elements = Object.keys(attributeMap);\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nfunction findTagName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"tag-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nfunction findAttributeName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"attribute-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nvar HtmlCompletions = function() {\n\n};\n\n(function() {\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (is(token, \"tag-name\") || is(token, \"tag-open\") || is(token, \"end-tag-open\"))\n            return this.getTagCompletions(state, session, pos, prefix);\n        if (is(token, \"tag-whitespace\") || is(token, \"attribute-name\"))\n            return this.getAttributeCompletions(state, session, pos, prefix);\n        if (is(token, \"attribute-value\"))\n            return this.getAttributeValueCompletions(state, session, pos, prefix);\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        if (/&[a-z]*$/i.test(line))\n            return this.getHTMLEntityCompletions(state, session, pos, prefix);\n\n        return [];\n    };\n\n    this.getTagCompletions = function(state, session, pos, prefix) {\n        return elements.map(function(element){\n            return {\n                value: element,\n                meta: \"tag\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        if (!tagName)\n            return [];\n        var attributes = globalAttributes;\n        if (tagName in attributeMap) {\n            attributes = attributes.concat(Object.keys(attributeMap[tagName]));\n        }\n        return attributes.map(function(attribute){\n            return {\n                caption: attribute,\n                snippet: attribute + '=\"$0\"',\n                meta: \"attribute\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeValueCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        var attributeName = findAttributeName(session, pos);\n        \n        if (!tagName)\n            return [];\n        var values = [];\n        if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === \"object\") {\n            values = Object.keys(attributeMap[tagName][attributeName]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"attribute value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getHTMLEntityCompletions = function(state, session, pos, prefix) {\n        var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;'];\n\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"html entity\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(HtmlCompletions.prototype);\n\nexports.HtmlCompletions = HtmlCompletions;\n});\n\nace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar CssMode = require(\"./css\").Mode;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar HtmlFoldMode = require(\"./folding/html\").FoldMode;\nvar HtmlCompletions = require(\"./html_completions\").HtmlCompletions;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar voidElements = [\"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"menuitem\", \"param\", \"source\", \"track\", \"wbr\"];\nvar optionalEndTags = [\"li\", \"dt\", \"dd\", \"p\", \"rt\", \"rp\", \"optgroup\", \"option\", \"colgroup\", \"td\", \"th\"];\n\nvar Mode = function(options) {\n    this.fragmentContext = options && options.fragmentContext;\n    this.HighlightRules = HtmlHighlightRules;\n    this.$behaviour = new XmlBehaviour();\n    this.$completer = new HtmlCompletions();\n    \n    this.createModeDelegates({\n        \"js-\": JavaScriptMode,\n        \"css-\": CssMode\n    });\n    \n    this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags));\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.blockComment = {start: \"<!--\", end: \"-->\"};\n\n    this.voidElements = lang.arrayToMap(voidElements);\n\n    this.getNextLineIndent = function(state, line, tab) {\n        return this.$getIndent(line);\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return false;\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        if (this.constructor != Mode)\n            return;\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/html_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        if (this.fragmentContext)\n            worker.call(\"setOptions\", [{context: this.fragmentContext}]);\n\n        worker.on(\"error\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/html\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/coldfusion_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/html_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\n\nvar ColdfusionHighlightRules = function() {\n    HtmlHighlightRules.call(this);\n    this.$rules.tag[2].token = function (start, tag) {\n        var group = tag.slice(0,2) == \"cf\" ? \"keyword\" : \"meta.tag\";\n        return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n            group + \".tag-name.xml\"];\n    }\n\n    var jsAndCss = Object.keys(this.$rules).filter(function(x) {\n        return /^(js|css)-/.test(x);\n    });\n    this.embedRules({\n        cfmlComment: [\n            { regex: \"<!---\", token: \"comment.start\", push: \"cfmlComment\"}, \n            { regex: \"--->\", token: \"comment.end\", next: \"pop\"},\n            { defaultToken: \"comment\"}\n        ]\n    }, \"\", [\n        { regex: \"<!---\", token: \"comment.start\", push: \"cfmlComment\"}\n    ], [\n        \"comment\", \"start\", \"tag_whitespace\", \"cdata\"\n    ].concat(jsAndCss));\n    \n    \n    this.$rules.cfTag = [\n        {include : \"attributes\"},\n        {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"pop\"}\n    ];\n    var cfTag = {\n        token : function(start, tag) {\n            return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                \"keyword.tag-name.xml\"];\n        },\n        regex : \"(</?)(cf[-_a-zA-Z0-9:.]+)\",\n        push: \"cfTag\"\n    };\n    jsAndCss.forEach(function(s) {\n        this.$rules[s].unshift(cfTag);\n    }, this);\n    \n    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"cfjs-\", \"cfscript\");\n\n    this.normalizeRules();\n};\n\noop.inherits(ColdfusionHighlightRules, HtmlHighlightRules);\n\nexports.ColdfusionHighlightRules = ColdfusionHighlightRules;\n});\n\nace.define(\"ace/mode/coldfusion\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/html\",\"ace/mode/coldfusion_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar HtmlMode = require(\"./html\").Mode;\nvar ColdfusionHighlightRules = require(\"./coldfusion_highlight_rules\").ColdfusionHighlightRules;\n\nvar voidElements = \"cfabort|cfapplication|cfargument|cfassociate|cfbreak|cfcache|cfcollection|cfcookie|cfdbinfo|cfdirectory|cfdump|cfelse|cfelseif|cferror|cfexchangecalendar|cfexchangeconnection|cfexchangecontact|cfexchangefilter|cfexchangetask|cfexit|cffeed|cffile|cfflush|cfftp|cfheader|cfhtmlhead|cfhttpparam|cfimage|cfimport|cfinclude|cfindex|cfinsert|cfinvokeargument|cflocation|cflog|cfmailparam|cfNTauthenticate|cfobject|cfobjectcache|cfparam|cfpdfformparam|cfprint|cfprocparam|cfprocresult|cfproperty|cfqueryparam|cfregistry|cfreportparam|cfrethrow|cfreturn|cfschedule|cfsearch|cfset|cfsetting|cfthrow|cfzipparam)\".split(\"|\");\n\nvar Mode = function() {\n    HtmlMode.call(this);\n    \n    this.HighlightRules = ColdfusionHighlightRules;\n};\noop.inherits(Mode, HtmlMode);\n\n(function() {\n    this.voidElements = oop.mixin(lang.arrayToMap(voidElements), this.voidElements);\n\n    this.getNextLineIndent = function(state, line, tab) {\n        return this.$getIndent(line);\n    };\n\n    this.$id = \"ace/mode/coldfusion\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-csharp.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/csharp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar CSharpHighlightRules = function() {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\": \"this\",\n        \"keyword\": \"abstract|event|new|struct|as|explicit|null|switch|base|extern|object|this|bool|false|operator|throw|break|finally|out|true|byte|fixed|override|try|case|float|params|typeof|catch|for|private|uint|char|foreach|protected|ulong|checked|goto|public|unchecked|class|if|readonly|unsafe|const|implicit|ref|ushort|continue|in|return|using|decimal|int|sbyte|virtual|default|interface|sealed|volatile|delegate|internal|short|void|do|is|sizeof|while|double|lock|stackalloc|else|long|static|enum|namespace|string|var|dynamic\",\n        \"constant.language\": \"null|true|false\"\n    }, \"identifier\");\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"\\\\/\\\\/.*$\"\n            },\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n                token : \"string\", // character\n                regex : /'(?:.|\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n]))'/\n            }, {\n                token : \"string\", start : '\"', end : '\"|$', next: [\n                    {token: \"constant.language.escape\", regex: /\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n])/},\n                    {token: \"invalid\", regex: /\\\\./}\n                ]\n            }, {\n                token : \"string\", start : '@\"', end : '\"', next:[\n                    {token: \"constant.language.escape\", regex: '\"\"'}\n                ]\n            }, {\n                token : \"string\", start : /\\$\"/, end : '\"|$', next: [\n                    {token: \"constant.language.escape\", regex: /\\\\(:?$)|{{/},\n                    {token: \"constant.language.escape\", regex: /\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n])/},\n                    {token: \"invalid\", regex: /\\\\./}\n                ]\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n            }, {\n                token : \"constant.language.boolean\",\n                regex : \"(?:true|false)\\\\b\"\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n            }, {\n                token : \"keyword\",\n                regex : \"^\\\\s*#(if|else|elif|endif|define|undef|warning|error|line|region|endregion|pragma)\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ]\n    };\n\n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n    this.normalizeRules();\n};\n\noop.inherits(CSharpHighlightRules, TextHighlightRules);\n\nexports.CSharpHighlightRules = CSharpHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/csharp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar CFoldMode = require(\"./cstyle\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, CFoldMode);\n\n(function() {\n    this.usingRe = /^\\s*using \\S/;\n\n    this.getFoldWidgetRangeBase = this.getFoldWidgetRange;\n    this.getFoldWidgetBase = this.getFoldWidget;\n    \n    this.getFoldWidget = function(session, foldStyle, row) {\n        var fw = this.getFoldWidgetBase(session, foldStyle, row);\n        if (!fw) {\n            var line = session.getLine(row);\n            if (/^\\s*#region\\b/.test(line)) \n                return \"start\";\n            var usingRe = this.usingRe;\n            if (usingRe.test(line)) {\n                var prev = session.getLine(row - 1);\n                var next = session.getLine(row + 1);\n                if (!usingRe.test(prev) && usingRe.test(next))\n                    return \"start\"\n            }\n        }\n        return fw;\n    };\n    \n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var range = this.getFoldWidgetRangeBase(session, foldStyle, row);\n        if (range)\n            return range;\n\n        var line = session.getLine(row);\n        if (this.usingRe.test(line))\n            return this.getUsingStatementBlock(session, line, row);\n            \n        if (/^\\s*#region\\b/.test(line))\n            return this.getRegionBlock(session, line, row);\n    };\n    \n    this.getUsingStatementBlock = function(session, line, row) {\n        var startColumn = line.match(this.usingRe)[0].length - 1;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            if (/^\\s*$/.test(line))\n                continue;\n            if (!this.usingRe.test(line))\n                break;\n\n            endRow = row;\n        }\n\n        if (endRow > startRow) {\n            var endColumn = session.getLine(endRow).length;\n            return new Range(startRow, startColumn, endRow, endColumn);\n        }\n    };\n    \n    this.getRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*#(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m)\n                continue;\n            if (m[1])\n                depth--;\n            else\n                depth++;\n\n            if (!depth)\n                break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/csharp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/csharp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/csharp\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CSharpHighlightRules = require(\"./csharp_highlight_rules\").CSharpHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/csharp\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = CSharpHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    \n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n    \n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n  \n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n  \n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n    \n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        }\n  \n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n  \n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n\n    this.createWorker = function(session) {\n        return null;\n    };\n\n    this.$id = \"ace/mode/csharp\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-css.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar propertyMap = {\n    \"background\": {\"#$0\": 1},\n    \"background-color\": {\"#$0\": 1, \"transparent\": 1, \"fixed\": 1},\n    \"background-image\": {\"url('/$0')\": 1},\n    \"background-repeat\": {\"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1},\n    \"background-position\": {\"bottom\":2, \"center\":2, \"left\":2, \"right\":2, \"top\":2, \"inherit\":2},\n    \"background-attachment\": {\"scroll\": 1, \"fixed\": 1},\n    \"background-size\": {\"cover\": 1, \"contain\": 1},\n    \"background-clip\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"background-origin\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"border\": {\"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1},\n    \"border-color\": {\"#$0\": 1},\n    \"border-style\": {\"solid\":2, \"dashed\":2, \"dotted\":2, \"double\":2, \"groove\":2, \"hidden\":2, \"inherit\":2, \"inset\":2, \"none\":2, \"outset\":2, \"ridged\":2},\n    \"border-collapse\": {\"collapse\": 1, \"separate\": 1},\n    \"bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"clear\": {\"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1},\n    \"color\": {\"#$0\": 1, \"rgb(#$00,0,0)\": 1},\n    \"cursor\": {\"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1},\n    \"display\": {\"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1},\n    \"empty-cells\": {\"show\": 1, \"hide\": 1},\n    \"float\": {\"left\": 1, \"right\": 1, \"none\": 1},\n    \"font-family\": {\"Arial\":2,\"Comic Sans MS\":2,\"Consolas\":2,\"Courier New\":2,\"Courier\":2,\"Georgia\":2,\"Monospace\":2,\"Sans-Serif\":2, \"Segoe UI\":2,\"Tahoma\":2,\"Times New Roman\":2,\"Trebuchet MS\":2,\"Verdana\": 1},\n    \"font-size\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"font-weight\": {\"bold\": 1, \"normal\": 1},\n    \"font-style\": {\"italic\": 1, \"normal\": 1},\n    \"font-variant\": {\"normal\": 1, \"small-caps\": 1},\n    \"height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"letter-spacing\": {\"normal\": 1},\n    \"line-height\": {\"normal\": 1},\n    \"list-style-type\": {\"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1},\n    \"margin\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"overflow\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-x\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-y\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"padding\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"page-break-after\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"page-break-before\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"position\": {\"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1},\n    \"right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"table-layout\": {\"fixed\": 1, \"auto\": 1},\n    \"text-decoration\": {\"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1},\n    \"text-align\": {\"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1},\n    \"text-transform\": {\"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1},\n    \"top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"vertical-align\": {\"top\": 1, \"bottom\": 1},\n    \"visibility\": {\"hidden\": 1, \"visible\": 1},\n    \"white-space\": {\"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1},\n    \"width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"word-spacing\": {\"normal\": 1},\n    \"filter\": {\"alpha(opacity=$0100)\": 1},\n\n    \"text-shadow\": {\"$02px 2px 2px #777\": 1},\n    \"text-overflow\": {\"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1},\n    \"-moz-border-radius\": 1,\n    \"-moz-border-radius-topright\": 1,\n    \"-moz-border-radius-bottomright\": 1,\n    \"-moz-border-radius-topleft\": 1,\n    \"-moz-border-radius-bottomleft\": 1,\n    \"-webkit-border-radius\": 1,\n    \"-webkit-border-top-right-radius\": 1,\n    \"-webkit-border-top-left-radius\": 1,\n    \"-webkit-border-bottom-right-radius\": 1,\n    \"-webkit-border-bottom-left-radius\": 1,\n    \"-moz-box-shadow\": 1,\n    \"-webkit-box-shadow\": 1,\n    \"transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-moz-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-webkit-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\n\nvar CssCompletions = function() {\n\n};\n\n(function() {\n\n    this.completionsDefined = false;\n\n    this.defineCompletions = function() {\n        if (document) {\n            var style = document.createElement('c').style;\n\n            for (var i in style) {\n                if (typeof style[i] !== 'string')\n                    continue;\n\n                var name = i.replace(/[A-Z]/g, function(x) {\n                    return '-' + x.toLowerCase();\n                });\n\n                if (!propertyMap.hasOwnProperty(name))\n                    propertyMap[name] = 1;\n            }\n        }\n\n        this.completionsDefined = true;\n    }\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        if (!this.completionsDefined) {\n            this.defineCompletions();\n        }\n\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (state==='ruleset'){\n            var line = session.getLine(pos.row).substr(0, pos.column);\n            if (/:[^;]+$/.test(line)) {\n                /([\\w\\-]+):[^:]*$/.test(line);\n\n                return this.getPropertyValueCompletions(state, session, pos, prefix);\n            } else {\n                return this.getPropertyCompletions(state, session, pos, prefix);\n            }\n        }\n\n        return [];\n    };\n\n    this.getPropertyCompletions = function(state, session, pos, prefix) {\n        var properties = Object.keys(propertyMap);\n        return properties.map(function(property){\n            return {\n                caption: property,\n                snippet: property + ': $0',\n                meta: \"property\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getPropertyValueCompletions = function(state, session, pos, prefix) {\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n\n        if (!property)\n            return [];\n        var values = [];\n        if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n            values = Object.keys(propertyMap[property]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"property value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(CssCompletions.prototype);\n\nexports.CssCompletions = CssCompletions;\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar CssBehaviour = function () {\n\n    this.inherit(CstyleBehaviour);\n\n    this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(cursor.row);\n                var rightChar = line.substring(cursor.column, cursor.column + 1);\n                if (rightChar === ':') {\n                    return {\n                       text: '',\n                       selection: [1, 1]\n                    }\n                }\n                if (!line.substring(cursor.column).match(/^\\s*;/)) {\n                    return {\n                       text: ':;',\n                       selection: [1, 1]\n                    }\n                }\n            }\n        }\n    });\n\n    this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && selected === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(range.start.row);\n                var rightChar = line.substring(range.end.column, range.end.column + 1);\n                if (rightChar === ';') {\n                    range.end.column ++;\n                    return range;\n                }\n            }\n        }\n    });\n\n    this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ';') {\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar === ';') {\n                return {\n                   text: '',\n                   selection: [1, 1]\n                }\n            }\n        }\n    });\n\n}\noop.inherits(CssBehaviour, CstyleBehaviour);\n\nexports.CssBehaviour = CssBehaviour;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = CssHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CssBehaviour();\n    this.$completer = new CssCompletions();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.foldingRules = \"cStyle\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        var match = line.match(/^.*\\{\\s*$/);\n        if (match) {\n            indent += tab;\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/css\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-curly.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar propertyMap = {\n    \"background\": {\"#$0\": 1},\n    \"background-color\": {\"#$0\": 1, \"transparent\": 1, \"fixed\": 1},\n    \"background-image\": {\"url('/$0')\": 1},\n    \"background-repeat\": {\"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1},\n    \"background-position\": {\"bottom\":2, \"center\":2, \"left\":2, \"right\":2, \"top\":2, \"inherit\":2},\n    \"background-attachment\": {\"scroll\": 1, \"fixed\": 1},\n    \"background-size\": {\"cover\": 1, \"contain\": 1},\n    \"background-clip\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"background-origin\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"border\": {\"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1},\n    \"border-color\": {\"#$0\": 1},\n    \"border-style\": {\"solid\":2, \"dashed\":2, \"dotted\":2, \"double\":2, \"groove\":2, \"hidden\":2, \"inherit\":2, \"inset\":2, \"none\":2, \"outset\":2, \"ridged\":2},\n    \"border-collapse\": {\"collapse\": 1, \"separate\": 1},\n    \"bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"clear\": {\"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1},\n    \"color\": {\"#$0\": 1, \"rgb(#$00,0,0)\": 1},\n    \"cursor\": {\"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1},\n    \"display\": {\"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1},\n    \"empty-cells\": {\"show\": 1, \"hide\": 1},\n    \"float\": {\"left\": 1, \"right\": 1, \"none\": 1},\n    \"font-family\": {\"Arial\":2,\"Comic Sans MS\":2,\"Consolas\":2,\"Courier New\":2,\"Courier\":2,\"Georgia\":2,\"Monospace\":2,\"Sans-Serif\":2, \"Segoe UI\":2,\"Tahoma\":2,\"Times New Roman\":2,\"Trebuchet MS\":2,\"Verdana\": 1},\n    \"font-size\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"font-weight\": {\"bold\": 1, \"normal\": 1},\n    \"font-style\": {\"italic\": 1, \"normal\": 1},\n    \"font-variant\": {\"normal\": 1, \"small-caps\": 1},\n    \"height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"letter-spacing\": {\"normal\": 1},\n    \"line-height\": {\"normal\": 1},\n    \"list-style-type\": {\"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1},\n    \"margin\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"overflow\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-x\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-y\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"padding\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"page-break-after\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"page-break-before\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"position\": {\"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1},\n    \"right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"table-layout\": {\"fixed\": 1, \"auto\": 1},\n    \"text-decoration\": {\"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1},\n    \"text-align\": {\"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1},\n    \"text-transform\": {\"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1},\n    \"top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"vertical-align\": {\"top\": 1, \"bottom\": 1},\n    \"visibility\": {\"hidden\": 1, \"visible\": 1},\n    \"white-space\": {\"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1},\n    \"width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"word-spacing\": {\"normal\": 1},\n    \"filter\": {\"alpha(opacity=$0100)\": 1},\n\n    \"text-shadow\": {\"$02px 2px 2px #777\": 1},\n    \"text-overflow\": {\"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1},\n    \"-moz-border-radius\": 1,\n    \"-moz-border-radius-topright\": 1,\n    \"-moz-border-radius-bottomright\": 1,\n    \"-moz-border-radius-topleft\": 1,\n    \"-moz-border-radius-bottomleft\": 1,\n    \"-webkit-border-radius\": 1,\n    \"-webkit-border-top-right-radius\": 1,\n    \"-webkit-border-top-left-radius\": 1,\n    \"-webkit-border-bottom-right-radius\": 1,\n    \"-webkit-border-bottom-left-radius\": 1,\n    \"-moz-box-shadow\": 1,\n    \"-webkit-box-shadow\": 1,\n    \"transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-moz-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-webkit-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\n\nvar CssCompletions = function() {\n\n};\n\n(function() {\n\n    this.completionsDefined = false;\n\n    this.defineCompletions = function() {\n        if (document) {\n            var style = document.createElement('c').style;\n\n            for (var i in style) {\n                if (typeof style[i] !== 'string')\n                    continue;\n\n                var name = i.replace(/[A-Z]/g, function(x) {\n                    return '-' + x.toLowerCase();\n                });\n\n                if (!propertyMap.hasOwnProperty(name))\n                    propertyMap[name] = 1;\n            }\n        }\n\n        this.completionsDefined = true;\n    }\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        if (!this.completionsDefined) {\n            this.defineCompletions();\n        }\n\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (state==='ruleset'){\n            var line = session.getLine(pos.row).substr(0, pos.column);\n            if (/:[^;]+$/.test(line)) {\n                /([\\w\\-]+):[^:]*$/.test(line);\n\n                return this.getPropertyValueCompletions(state, session, pos, prefix);\n            } else {\n                return this.getPropertyCompletions(state, session, pos, prefix);\n            }\n        }\n\n        return [];\n    };\n\n    this.getPropertyCompletions = function(state, session, pos, prefix) {\n        var properties = Object.keys(propertyMap);\n        return properties.map(function(property){\n            return {\n                caption: property,\n                snippet: property + ': $0',\n                meta: \"property\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getPropertyValueCompletions = function(state, session, pos, prefix) {\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n\n        if (!property)\n            return [];\n        var values = [];\n        if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n            values = Object.keys(propertyMap[property]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"property value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(CssCompletions.prototype);\n\nexports.CssCompletions = CssCompletions;\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar CssBehaviour = function () {\n\n    this.inherit(CstyleBehaviour);\n\n    this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(cursor.row);\n                var rightChar = line.substring(cursor.column, cursor.column + 1);\n                if (rightChar === ':') {\n                    return {\n                       text: '',\n                       selection: [1, 1]\n                    }\n                }\n                if (!line.substring(cursor.column).match(/^\\s*;/)) {\n                    return {\n                       text: ':;',\n                       selection: [1, 1]\n                    }\n                }\n            }\n        }\n    });\n\n    this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && selected === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(range.start.row);\n                var rightChar = line.substring(range.end.column, range.end.column + 1);\n                if (rightChar === ';') {\n                    range.end.column ++;\n                    return range;\n                }\n            }\n        }\n    });\n\n    this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ';') {\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar === ';') {\n                return {\n                   text: '',\n                   selection: [1, 1]\n                }\n            }\n        }\n    });\n\n}\noop.inherits(CssBehaviour, CstyleBehaviour);\n\nexports.CssBehaviour = CssBehaviour;\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = CssHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CssBehaviour();\n    this.$completer = new CssCompletions();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.foldingRules = \"cStyle\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        var match = line.match(/^.*\\{\\s*$/);\n        if (match) {\n            indent += tab;\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/css\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n    a           : 'anchor',\n    button \t    : 'form',\n    form        : 'form',\n    img         : 'image',\n    input       : 'form',\n    label       : 'form',\n    option      : 'form',\n    script      : 'script',\n    select      : 'form',\n    textarea    : 'form',\n    style       : 'style',\n    table       : 'table',\n    tbody       : 'table',\n    td          : 'table',\n    tfoot       : 'table',\n    th          : 'table',\n    tr          : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.addRules({\n        attributes: [{\n            include : \"tag_whitespace\"\n        }, {\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"[-_a-zA-Z0-9:.]+\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\",\n            push : [{\n                include: \"tag_whitespace\"\n            }, {\n                token : \"string.unquoted.attribute-value.html\",\n                regex : \"[^<>='\\\"`\\\\s]+\",\n                next : \"pop\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"pop\"\n            }]\n        }, {\n            include : \"attribute_value\"\n        }],\n        tag: [{\n            token : function(start, tag) {\n                var group = tagMap[tag];\n                return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                    \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n            },\n            regex : \"(</?)([-_a-zA-Z0-9:.]+)\",\n            next: \"tag_stuff\"\n        }],\n        tag_stuff: [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n        ]\n    });\n\n    this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"js-\", \"script\");\n\n    if (this.constructor === HtmlHighlightRules)\n        this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nvar XmlBehaviour = function () {\n\n    this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '\"' || text == \"'\") {\n            var quote = text;\n            var selected = session.doc.getTextRange(editor.getSelectionRange());\n            if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n                return {\n                    text: quote + selected + quote,\n                    selection: false\n                };\n            }\n\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n                return {\n                    text: \"\",\n                    selection: [1, 1]\n                };\n            }\n\n            if (!token)\n                token = iterator.stepBackward();\n\n            if (!token)\n                return;\n\n            while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n                token = iterator.stepBackward();\n            }\n            var rightSpace = !rightChar || rightChar.match(/\\s/);\n            if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n                return {\n                    text: quote + quote,\n                    selection: [1, 1]\n                };\n            }\n        }\n    });\n\n    this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == selected) {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n\n    this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '>') {\n            var position = editor.getSelectionRange().start;\n            var iterator = new TokenIterator(session, position.row, position.column);\n            var token = iterator.getCurrentToken() || iterator.stepBackward();\n            if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n                return;\n            if (is(token, \"reference.attribute-value\"))\n                return;\n            if (is(token, \"attribute-value\")) {\n                var firstChar = token.value.charAt(0);\n                if (firstChar == '\"' || firstChar == \"'\") {\n                    var lastChar = token.value.charAt(token.value.length - 1);\n                    var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;\n                    if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)\n                        return;\n                }\n            }\n            while (!is(token, \"tag-name\")) {\n                token = iterator.stepBackward();\n                if (token.value == \"<\") {\n                    token = iterator.stepForward();\n                    break;\n                }\n            }\n\n            var tokenRow = iterator.getCurrentTokenRow();\n            var tokenColumn = iterator.getCurrentTokenColumn();\n            if (is(iterator.stepBackward(), \"end-tag-open\"))\n                return;\n\n            var element = token.value;\n            if (tokenRow == position.row)\n                element = element.substring(0, position.column - tokenColumn);\n\n            if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n                 return;\n\n            return {\n               text: \">\" + \"</\" + element + \">\",\n               selection: [1, 1]\n            };\n        }\n    });\n\n    this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == \"\\n\") {\n            var cursor = editor.getCursorPosition();\n            var line = session.getLine(cursor.row);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (token && token.type.indexOf(\"tag-close\") !== -1) {\n                if (token.value == \"/>\")\n                    return;\n                while (token && token.type.indexOf(\"tag-name\") === -1) {\n                    token = iterator.stepBackward();\n                }\n\n                if (!token) {\n                    return;\n                }\n\n                var tag = token.value;\n                var row = iterator.getCurrentTokenRow();\n                token = iterator.stepBackward();\n                if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n                    return;\n                }\n\n                if (this.voidElements && !this.voidElements[tag]) {\n                    var nextToken = session.getTokenAt(cursor.row, cursor.column+1);\n                    var line = session.getLine(row);\n                    var nextIndent = this.$getIndent(line);\n                    var indent = nextIndent + session.getTabString();\n\n                    if (nextToken && nextToken.value === \"</\") {\n                        return {\n                            text: \"\\n\" + indent + \"\\n\" + nextIndent,\n                            selection: [1, indent.length, 1, indent.length]\n                        };\n                    } else {\n                        return {\n                            text: \"\\n\" + indent\n                        };\n                    }\n                }\n            }\n        }\n    });\n\n};\n\noop.inherits(XmlBehaviour, Behaviour);\n\nexports.XmlBehaviour = XmlBehaviour;\n});\n\nace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(defaultMode, subModes) {\n    this.defaultMode = defaultMode;\n    this.subModes = subModes;\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n\n    this.$getMode = function(state) {\n        if (typeof state != \"string\") \n            state = state[0];\n        for (var key in this.subModes) {\n            if (state.indexOf(key) === 0)\n                return this.subModes[key];\n        }\n        return null;\n    };\n    \n    this.$tryMode = function(state, session, foldStyle, row) {\n        var mode = this.$getMode(state);\n        return (mode ? mode.getFoldWidget(session, foldStyle, row) : \"\");\n    };\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        return (\n            this.$tryMode(session.getState(row-1), session, foldStyle, row) ||\n            this.$tryMode(session.getState(row), session, foldStyle, row) ||\n            this.defaultMode.getFoldWidget(session, foldStyle, row)\n        );\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var mode = this.$getMode(session.getState(row-1));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.$getMode(session.getState(row));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.defaultMode;\n        \n        return mode.getFoldWidgetRange(session, foldStyle, row);\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar lang = require(\"../../lib/lang\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalEndTags) {\n    BaseFoldMode.call(this);\n    this.voidElements = voidElements || {};\n    this.optionalEndTags = oop.mixin({}, this.voidElements);\n    if (optionalEndTags)\n        oop.mixin(this.optionalEndTags, optionalEndTags);\n    \n};\noop.inherits(FoldMode, BaseFoldMode);\n\nvar Tag = function() {\n    this.tagName = \"\";\n    this.closing = false;\n    this.selfClosing = false;\n    this.start = {row: 0, column: 0};\n    this.end = {row: 0, column: 0};\n};\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\n(function() {\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var tag = this._getFirstTagInLine(session, row);\n\n        if (!tag)\n            return \"\";\n\n        if (tag.closing || (!tag.tagName && tag.selfClosing))\n            return foldStyle == \"markbeginend\" ? \"end\" : \"\";\n\n        if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n            return \"\";\n\n        if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n            return \"\";\n\n        return \"start\";\n    };\n    this._getFirstTagInLine = function(session, row) {\n        var tokens = session.getTokens(row);\n        var tag = new Tag();\n\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            if (is(token, \"tag-open\")) {\n                tag.end.column = tag.start.column + token.value.length;\n                tag.closing = is(token, \"end-tag-open\");\n                token = tokens[++i];\n                if (!token)\n                    return null;\n                tag.tagName = token.value;\n                tag.end.column += token.value.length;\n                for (i++; i < tokens.length; i++) {\n                    token = tokens[i];\n                    tag.end.column += token.value.length;\n                    if (is(token, \"tag-close\")) {\n                        tag.selfClosing = token.value == '/>';\n                        break;\n                    }\n                }\n                return tag;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == '/>';\n                return tag;\n            }\n            tag.start.column += token.value.length;\n        }\n\n        return null;\n    };\n\n    this._findEndTagInLine = function(session, row, tagName, startColumn) {\n        var tokens = session.getTokens(row);\n        var column = 0;\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            column += token.value.length;\n            if (column < startColumn)\n                continue;\n            if (is(token, \"end-tag-open\")) {\n                token = tokens[i + 1];\n                if (token && token.value == tagName)\n                    return true;\n            }\n        }\n        return false;\n    };\n    this._readTagForward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n                iterator.stepForward();\n                return tag;\n            }\n        } while(token = iterator.stepForward());\n\n        return null;\n    };\n    \n    this._readTagBackward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n                iterator.stepBackward();\n                return tag;\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n            }\n        } while(token = iterator.stepBackward());\n\n        return null;\n    };\n    \n    this._pop = function(stack, tag) {\n        while (stack.length) {\n            \n            var top = stack[stack.length-1];\n            if (!tag || top.tagName == tag.tagName) {\n                return stack.pop();\n            }\n            else if (this.optionalEndTags.hasOwnProperty(top.tagName)) {\n                stack.pop();\n                continue;\n            } else {\n                return null;\n            }\n        }\n    };\n    \n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var firstTag = this._getFirstTagInLine(session, row);\n        \n        if (!firstTag)\n            return null;\n        \n        var isBackward = firstTag.closing || firstTag.selfClosing;\n        var stack = [];\n        var tag;\n        \n        if (!isBackward) {\n            var iterator = new TokenIterator(session, row, firstTag.start.column);\n            var start = {\n                row: row,\n                column: firstTag.start.column + firstTag.tagName.length + 2\n            };\n            if (firstTag.start.row == firstTag.end.row)\n                start.column = firstTag.end.column;\n            while (tag = this._readTagForward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0)\n                        return Range.fromPoints(start, tag.start);\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        else {\n            var iterator = new TokenIterator(session, row, firstTag.end.column);\n            var end = {\n                row: row,\n                column: firstTag.start.column\n            };\n            \n            while (tag = this._readTagBackward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (!tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0) {\n                        tag.start.column += tag.tagName.length + 2;\n                        if (tag.start.row == tag.end.row && tag.start.column < tag.end.column)\n                            tag.start.column = tag.end.column;\n                        return Range.fromPoints(tag.start, end);\n                    }\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        \n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar MixedFoldMode = require(\"./mixed\").FoldMode;\nvar XmlFoldMode = require(\"./xml\").FoldMode;\nvar CStyleFoldMode = require(\"./cstyle\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalTags) {\n    MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), {\n        \"js-\": new CStyleFoldMode(),\n        \"css-\": new CStyleFoldMode()\n    });\n};\n\noop.inherits(FoldMode, MixedFoldMode);\n\n});\n\nace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\n\nvar commonAttributes = [\n    \"accesskey\",\n    \"class\",\n    \"contenteditable\",\n    \"contextmenu\",\n    \"dir\",\n    \"draggable\",\n    \"dropzone\",\n    \"hidden\",\n    \"id\",\n    \"inert\",\n    \"itemid\",\n    \"itemprop\",\n    \"itemref\",\n    \"itemscope\",\n    \"itemtype\",\n    \"lang\",\n    \"spellcheck\",\n    \"style\",\n    \"tabindex\",\n    \"title\",\n    \"translate\"\n];\n\nvar eventAttributes = [\n    \"onabort\",\n    \"onblur\",\n    \"oncancel\",\n    \"oncanplay\",\n    \"oncanplaythrough\",\n    \"onchange\",\n    \"onclick\",\n    \"onclose\",\n    \"oncontextmenu\",\n    \"oncuechange\",\n    \"ondblclick\",\n    \"ondrag\",\n    \"ondragend\",\n    \"ondragenter\",\n    \"ondragleave\",\n    \"ondragover\",\n    \"ondragstart\",\n    \"ondrop\",\n    \"ondurationchange\",\n    \"onemptied\",\n    \"onended\",\n    \"onerror\",\n    \"onfocus\",\n    \"oninput\",\n    \"oninvalid\",\n    \"onkeydown\",\n    \"onkeypress\",\n    \"onkeyup\",\n    \"onload\",\n    \"onloadeddata\",\n    \"onloadedmetadata\",\n    \"onloadstart\",\n    \"onmousedown\",\n    \"onmousemove\",\n    \"onmouseout\",\n    \"onmouseover\",\n    \"onmouseup\",\n    \"onmousewheel\",\n    \"onpause\",\n    \"onplay\",\n    \"onplaying\",\n    \"onprogress\",\n    \"onratechange\",\n    \"onreset\",\n    \"onscroll\",\n    \"onseeked\",\n    \"onseeking\",\n    \"onselect\",\n    \"onshow\",\n    \"onstalled\",\n    \"onsubmit\",\n    \"onsuspend\",\n    \"ontimeupdate\",\n    \"onvolumechange\",\n    \"onwaiting\"\n];\n\nvar globalAttributes = commonAttributes.concat(eventAttributes);\n\nvar attributeMap = {\n    \"html\": {\"manifest\": 1},\n    \"head\": {},\n    \"title\": {},\n    \"base\": {\"href\": 1, \"target\": 1},\n    \"link\": {\"href\": 1, \"hreflang\": 1, \"rel\": {\"stylesheet\": 1, \"icon\": 1}, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"type\": {\"text/css\": 1, \"image/png\": 1, \"image/jpeg\": 1, \"image/gif\": 1}, \"sizes\": 1},\n    \"meta\": {\"http-equiv\": {\"content-type\": 1}, \"name\": {\"description\": 1, \"keywords\": 1}, \"content\": {\"text/html; charset=UTF-8\": 1}, \"charset\": 1},\n    \"style\": {\"type\": 1, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"scoped\": 1},\n    \"script\": {\"charset\": 1, \"type\": {\"text/javascript\": 1}, \"src\": 1, \"defer\": 1, \"async\": 1},\n    \"noscript\": {\"href\": 1},\n    \"body\": {\"onafterprint\": 1, \"onbeforeprint\": 1, \"onbeforeunload\": 1, \"onhashchange\": 1, \"onmessage\": 1, \"onoffline\": 1, \"onpopstate\": 1, \"onredo\": 1, \"onresize\": 1, \"onstorage\": 1, \"onundo\": 1, \"onunload\": 1},\n    \"section\": {},\n    \"nav\": {},\n    \"article\": {\"pubdate\": 1},\n    \"aside\": {},\n    \"h1\": {},\n    \"h2\": {},\n    \"h3\": {},\n    \"h4\": {},\n    \"h5\": {},\n    \"h6\": {},\n    \"header\": {},\n    \"footer\": {},\n    \"address\": {},\n    \"main\": {},\n    \"p\": {},\n    \"hr\": {},\n    \"pre\": {},\n    \"blockquote\": {\"cite\": 1},\n    \"ol\": {\"start\": 1, \"reversed\": 1},\n    \"ul\": {},\n    \"li\": {\"value\": 1},\n    \"dl\": {},\n    \"dt\": {},\n    \"dd\": {},\n    \"figure\": {},\n    \"figcaption\": {},\n    \"div\": {},\n    \"a\": {\"href\": 1, \"target\": {\"_blank\": 1, \"top\": 1}, \"ping\": 1, \"rel\": {\"nofollow\": 1, \"alternate\": 1, \"author\": 1, \"bookmark\": 1, \"help\": 1, \"license\": 1, \"next\": 1, \"noreferrer\": 1, \"prefetch\": 1, \"prev\": 1, \"search\": 1, \"tag\": 1}, \"media\": 1, \"hreflang\": 1, \"type\": 1},\n    \"em\": {},\n    \"strong\": {},\n    \"small\": {},\n    \"s\": {},\n    \"cite\": {},\n    \"q\": {\"cite\": 1},\n    \"dfn\": {},\n    \"abbr\": {},\n    \"data\": {},\n    \"time\": {\"datetime\": 1},\n    \"code\": {},\n    \"var\": {},\n    \"samp\": {},\n    \"kbd\": {},\n    \"sub\": {},\n    \"sup\": {},\n    \"i\": {},\n    \"b\": {},\n    \"u\": {},\n    \"mark\": {},\n    \"ruby\": {},\n    \"rt\": {},\n    \"rp\": {},\n    \"bdi\": {},\n    \"bdo\": {},\n    \"span\": {},\n    \"br\": {},\n    \"wbr\": {},\n    \"ins\": {\"cite\": 1, \"datetime\": 1},\n    \"del\": {\"cite\": 1, \"datetime\": 1},\n    \"img\": {\"alt\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"usemap\": 1, \"ismap\": 1},\n    \"iframe\": {\"name\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"sandbox\": {\"allow-same-origin\": 1, \"allow-top-navigation\": 1, \"allow-forms\": 1, \"allow-scripts\": 1}, \"seamless\": {\"seamless\": 1}},\n    \"embed\": {\"src\": 1, \"height\": 1, \"width\": 1, \"type\": 1},\n    \"object\": {\"param\": 1, \"data\": 1, \"type\": 1, \"height\" : 1, \"width\": 1, \"usemap\": 1, \"name\": 1, \"form\": 1, \"classid\": 1},\n    \"param\": {\"name\": 1, \"value\": 1},\n    \"video\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"width\": 1, \"height\": 1, \"poster\": 1, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1}},\n    \"audio\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1 }},\n    \"source\": {\"src\": 1, \"type\": 1, \"media\": 1},\n    \"track\": {\"kind\": 1, \"src\": 1, \"srclang\": 1, \"label\": 1, \"default\": 1},\n    \"canvas\": {\"width\": 1, \"height\": 1},\n    \"map\": {\"name\": 1},\n    \"area\": {\"shape\": 1, \"coords\": 1, \"href\": 1, \"hreflang\": 1, \"alt\": 1, \"target\": 1, \"media\": 1, \"rel\": 1, \"ping\": 1, \"type\": 1},\n    \"svg\": {},\n    \"math\": {},\n    \"table\": {\"summary\": 1},\n    \"caption\": {},\n    \"colgroup\": {\"span\": 1},\n    \"col\": {\"span\": 1},\n    \"tbody\": {},\n    \"thead\": {},\n    \"tfoot\": {},\n    \"tr\": {},\n    \"td\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1},\n    \"th\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1, \"scope\": 1},\n    \"form\": {\"accept-charset\": 1, \"action\": 1, \"autocomplete\": 1, \"enctype\": {\"multipart/form-data\": 1, \"application/x-www-form-urlencoded\": 1}, \"method\": {\"get\": 1, \"post\": 1}, \"name\": 1, \"novalidate\": 1, \"target\": {\"_blank\": 1, \"top\": 1}},\n    \"fieldset\": {\"disabled\": 1, \"form\": 1, \"name\": 1},\n    \"legend\": {},\n    \"label\": {\"form\": 1, \"for\": 1},\n    \"input\": {\n        \"type\": {\"text\": 1, \"password\": 1, \"hidden\": 1, \"checkbox\": 1, \"submit\": 1, \"radio\": 1, \"file\": 1, \"button\": 1, \"reset\": 1, \"image\": 31, \"color\": 1, \"date\": 1, \"datetime\": 1, \"datetime-local\": 1, \"email\": 1, \"month\": 1, \"number\": 1, \"range\": 1, \"search\": 1, \"tel\": 1, \"time\": 1, \"url\": 1, \"week\": 1},\n        \"accept\": 1, \"alt\": 1, \"autocomplete\": {\"on\": 1, \"off\": 1}, \"autofocus\": {\"autofocus\": 1}, \"checked\": {\"checked\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": {\"application/x-www-form-urlencoded\": 1, \"multipart/form-data\": 1, \"text/plain\": 1}, \"formmethod\": {\"get\": 1, \"post\": 1}, \"formnovalidate\": {\"formnovalidate\": 1}, \"formtarget\": {\"_blank\": 1, \"_self\": 1, \"_parent\": 1, \"_top\": 1}, \"height\": 1, \"list\": 1, \"max\": 1, \"maxlength\": 1, \"min\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"pattern\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"size\": 1, \"src\": 1, \"step\": 1, \"width\": 1, \"files\": 1, \"value\": 1},\n    \"button\": {\"autofocus\": 1, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": 1, \"formmethod\": 1, \"formnovalidate\": 1, \"formtarget\": 1, \"name\": 1, \"value\": 1, \"type\": {\"button\": 1, \"submit\": 1}},\n    \"select\": {\"autofocus\": 1, \"disabled\": 1, \"form\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"size\": 1, \"readonly\":{\"readonly\": 1}},\n    \"datalist\": {},\n    \"optgroup\": {\"disabled\": 1, \"label\": 1},\n    \"option\": {\"disabled\": 1, \"selected\": 1, \"label\": 1, \"value\": 1},\n    \"textarea\": {\"autofocus\": {\"autofocus\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"maxlength\": 1, \"name\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"rows\": 1, \"cols\": 1, \"wrap\": {\"on\": 1, \"off\": 1, \"hard\": 1, \"soft\": 1}},\n    \"keygen\": {\"autofocus\": 1, \"challenge\": {\"challenge\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"keytype\": {\"rsa\": 1, \"dsa\": 1, \"ec\": 1}, \"name\": 1},\n    \"output\": {\"for\": 1, \"form\": 1, \"name\": 1},\n    \"progress\": {\"value\": 1, \"max\": 1},\n    \"meter\": {\"value\": 1, \"min\": 1, \"max\": 1, \"low\": 1, \"high\": 1, \"optimum\": 1},\n    \"details\": {\"open\": 1},\n    \"summary\": {},\n    \"command\": {\"type\": 1, \"label\": 1, \"icon\": 1, \"disabled\": 1, \"checked\": 1, \"radiogroup\": 1, \"command\": 1},\n    \"menu\": {\"type\": 1, \"label\": 1},\n    \"dialog\": {\"open\": 1}\n};\n\nvar elements = Object.keys(attributeMap);\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nfunction findTagName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"tag-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nfunction findAttributeName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"attribute-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nvar HtmlCompletions = function() {\n\n};\n\n(function() {\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (is(token, \"tag-name\") || is(token, \"tag-open\") || is(token, \"end-tag-open\"))\n            return this.getTagCompletions(state, session, pos, prefix);\n        if (is(token, \"tag-whitespace\") || is(token, \"attribute-name\"))\n            return this.getAttributeCompletions(state, session, pos, prefix);\n        if (is(token, \"attribute-value\"))\n            return this.getAttributeValueCompletions(state, session, pos, prefix);\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        if (/&[a-z]*$/i.test(line))\n            return this.getHTMLEntityCompletions(state, session, pos, prefix);\n\n        return [];\n    };\n\n    this.getTagCompletions = function(state, session, pos, prefix) {\n        return elements.map(function(element){\n            return {\n                value: element,\n                meta: \"tag\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        if (!tagName)\n            return [];\n        var attributes = globalAttributes;\n        if (tagName in attributeMap) {\n            attributes = attributes.concat(Object.keys(attributeMap[tagName]));\n        }\n        return attributes.map(function(attribute){\n            return {\n                caption: attribute,\n                snippet: attribute + '=\"$0\"',\n                meta: \"attribute\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeValueCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        var attributeName = findAttributeName(session, pos);\n        \n        if (!tagName)\n            return [];\n        var values = [];\n        if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === \"object\") {\n            values = Object.keys(attributeMap[tagName][attributeName]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"attribute value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getHTMLEntityCompletions = function(state, session, pos, prefix) {\n        var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;'];\n\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"html entity\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(HtmlCompletions.prototype);\n\nexports.HtmlCompletions = HtmlCompletions;\n});\n\nace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar CssMode = require(\"./css\").Mode;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar HtmlFoldMode = require(\"./folding/html\").FoldMode;\nvar HtmlCompletions = require(\"./html_completions\").HtmlCompletions;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar voidElements = [\"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"menuitem\", \"param\", \"source\", \"track\", \"wbr\"];\nvar optionalEndTags = [\"li\", \"dt\", \"dd\", \"p\", \"rt\", \"rp\", \"optgroup\", \"option\", \"colgroup\", \"td\", \"th\"];\n\nvar Mode = function(options) {\n    this.fragmentContext = options && options.fragmentContext;\n    this.HighlightRules = HtmlHighlightRules;\n    this.$behaviour = new XmlBehaviour();\n    this.$completer = new HtmlCompletions();\n    \n    this.createModeDelegates({\n        \"js-\": JavaScriptMode,\n        \"css-\": CssMode\n    });\n    \n    this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags));\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.blockComment = {start: \"<!--\", end: \"-->\"};\n\n    this.voidElements = lang.arrayToMap(voidElements);\n\n    this.getNextLineIndent = function(state, line, tab) {\n        return this.$getIndent(line);\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return false;\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        if (this.constructor != Mode)\n            return;\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/html_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        if (this.fragmentContext)\n            worker.call(\"setOptions\", [{context: this.fragmentContext}]);\n\n        worker.on(\"error\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/html\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/curly_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\n\n\nvar CurlyHighlightRules = function() {\n    HtmlHighlightRules.call(this);\n\n    this.$rules[\"start\"].unshift({\n        token: \"variable\",\n        regex: \"{{\",\n        push: \"curly-start\"\n    });\n\n    this.$rules[\"curly-start\"] = [{\n        token: \"variable\",\n        regex: \"}}\",\n        next: \"pop\"\n    }];\n\n    this.normalizeRules();\n};\n\noop.inherits(CurlyHighlightRules, HtmlHighlightRules);\n\nexports.CurlyHighlightRules = CurlyHighlightRules;\n\n});\n\nace.define(\"ace/mode/curly\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/html\",\"ace/mode/curly_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar HtmlMode = require(\"./html\").Mode;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar HtmlFoldMode = require(\"./folding/html\").FoldMode;\nvar CurlyHighlightRules = require(\"./curly_highlight_rules\").CurlyHighlightRules;\n\nvar Mode = function() {\n    HtmlMode.call(this);\n    this.HighlightRules = CurlyHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.foldingRules = new HtmlFoldMode();\n};\noop.inherits(Mode, HtmlMode);\n\n(function() {\n    this.$id = \"ace/mode/curly\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-d.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/d_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DHighlightRules = function() {\n\n    var keywords = (\n        \"this|super|import|module|body|mixin|__traits|invariant|alias|asm|delete|\"+\n        \"typeof|typeid|sizeof|cast|new|in|is|typedef|__vector|__parameters\"\n    );\n\n    var keywordControls = (\n        \"break|case|continue|default|do|else|for|foreach|foreach_reverse|goto|if|\" +\n        \"return|switch|while|catch|try|throw|finally|version|assert|unittest|with\"\n    );\n    \n    var types = (\n        \"auto|bool|char|dchar|wchar|byte|ubyte|float|double|real|\" +\n        \"cfloat|creal|cdouble|cent|ifloat|ireal|idouble|\" +\n        \"int|long|short|void|uint|ulong|ushort|ucent|\" +\n        \"function|delegate|string|wstring|dstring|size_t|ptrdiff_t|hash_t|Object\"\n    );\n\n    var modifiers = (\n        \"abstract|align|debug|deprecated|export|extern|const|final|in|inout|out|\" +\n        \"ref|immutable|lazy|nothrow|override|package|pragma|private|protected|\" +\n        \"public|pure|scope|shared|__gshared|synchronized|static|volatile\"\n    );\n    \n    var storages = (\n        \"class|struct|union|template|interface|enum|macro\"\n    );\n    \n    var stringEscapesSeq =  {\n        token: \"constant.language.escape\",\n        regex: \"\\\\\\\\(?:(?:x[0-9A-F]{2})|(?:[0-7]{1,3})|(?:['\\\"\\\\?0abfnrtv\\\\\\\\])|\" +\n            \"(?:u[0-9a-fA-F]{4})|(?:U[0-9a-fA-F]{8}))\"\n    };\n\n    var builtinConstants = (\n        \"null|true|false|\"+\n        \"__DATE__|__EOF__|__TIME__|__TIMESTAMP__|__VENDOR__|__VERSION__|\"+\n        \"__FILE__|__MODULE__|__LINE__|__FUNCTION__|__PRETTY_FUNCTION__\"\n    );\n    \n    var operators = (\n        \"/|/\\\\=|&|&\\\\=|&&|\\\\|\\\\|\\\\=|\\\\|\\\\||\\\\-|\\\\-\\\\=|\\\\-\\\\-|\\\\+|\" +\n        \"\\\\+\\\\=|\\\\+\\\\+|\\\\<|\\\\<\\\\=|\\\\<\\\\<|\\\\<\\\\<\\\\=|\\\\<\\\\>|\\\\<\\\\>\\\\=|\\\\>|\\\\>\\\\=|\\\\>\\\\>\\\\=|\" +\n        \"\\\\>\\\\>\\\\>\\\\=|\\\\>\\\\>|\\\\>\\\\>\\\\>|\\\\!|\\\\!\\\\=|\\\\!\\\\<\\\\>|\\\\!\\\\<\\\\>\\\\=|\\\\!\\\\<|\\\\!\\\\<\\\\=|\" +\n        \"\\\\!\\\\>|\\\\!\\\\>\\\\=|\\\\?|\\\\$|\\\\=|\\\\=\\\\=|\\\\*|\\\\*\\\\=|%|%\\\\=|\" +\n        \"\\\\^|\\\\^\\\\=|\\\\^\\\\^|\\\\^\\\\^\\\\=|~|~\\\\=|\\\\=\\\\>|#\"\n    );\n\n    var keywordMapper = this.$keywords = this.createKeywordMapper({\n        \"keyword.modifier\" : modifiers,\n        \"keyword.control\" :  keywordControls,\n        \"keyword.type\" :     types,\n        \"keyword\":           keywords,\n        \"keyword.storage\":   storages,\n        \"punctation\": \"\\\\.|\\\\,|;|\\\\.\\\\.|\\\\.\\\\.\\\\.\",\n        \"keyword.operator\" : operators,\n        \"constant.language\": builtinConstants\n    }, \"identifier\");\n    \n    var identifierRe = \"[a-zA-Z_\\u00a1-\\uffff][a-zA-Z\\\\d_\\u00a1-\\uffff]*\\\\b\";\n\n    this.$rules = {\n        \"start\" : [\n            {     //-------------------------------------------------------- COMMENTS\n                token : \"comment\",\n                regex : \"\\\\/\\\\/.*$\"\n            },\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"star-comment\"\n            }, {\n                token: \"comment.shebang\",\n                regex: \"^\\\\s*#!.*\"\n            }, {\n                token : \"comment\",\n                regex : \"\\\\/\\\\+\",\n                next: \"plus-comment\"\n            }, {  //-------------------------------------------------------- STRINGS\n                onMatch: function(value, currentState, state) {\n                    state.unshift(this.next, value.substr(2));\n                    return \"string\";\n                },\n                regex: 'q\"(?:[\\\\[\\\\(\\\\{\\\\<]+)',\n                next: 'operator-heredoc-string'\n            }, {\n                onMatch: function(value, currentState, state) {\n                    state.unshift(this.next, value.substr(2));\n                    return \"string\";\n                },\n                regex: 'q\"(?:[a-zA-Z_]+)$',\n                next: 'identifier-heredoc-string'\n            }, {\n                token : \"string\", // multi line string start\n                regex : '[xr]?\"',\n                next : \"quote-string\"\n            }, {\n                token : \"string\", // multi line string start\n                regex : '[xr]?`',\n                next : \"backtick-string\"\n            }, {\n                token : \"string\", // single line\n                regex : \"[xr]?['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?['][cdw]?\"\n            }, {  //-------------------------------------------------------- RULES\n                token: [\"keyword\", \"text\", \"paren.lparen\"],\n                regex: /(asm)(\\s*)({)/,\n                next: \"d-asm\"\n            }, {\n                token: [\"keyword\", \"text\", \"paren.lparen\", \"constant.language\"],\n                regex: \"(__traits)(\\\\s*)(\\\\()(\"+identifierRe+\")\"\n            }, { // import|module abc\n                token: [\"keyword\", \"text\", \"variable.module\"],\n                regex: \"(import|module)(\\\\s+)((?:\"+identifierRe+\"\\\\.?)*)\"\n            }, { // storage Name\n                token: [\"keyword.storage\", \"text\", \"entity.name.type\"],\n                regex: \"(\"+storages+\")(\\\\s*)(\"+identifierRe+\")\"\n            }, { // alias|typedef foo bar;\n                token: [\"keyword\", \"text\", \"variable.storage\", \"text\"],\n                regex: \"(alias|typedef)(\\\\s*)(\"+identifierRe+\")(\\\\s*)\"\n            }, {  //-------------------------------------------------------- OTHERS\n                token : \"constant.numeric\", // hex\n                regex : \"0[xX][0-9a-fA-F_]+(l|ul|u|f|F|L|U|UL)?\\\\b\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : \"[+-]?\\\\d[\\\\d_]*(?:(?:\\\\.[\\\\d_]*)?(?:[eE][+-]?[\\\\d_]+)?)?(l|ul|u|f|F|L|U|UL)?\\\\b\"\n            }, {\n                token: \"entity.other.attribute-name\",\n                regex: \"@\"+identifierRe\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\"\n            }, {\n                token : \"keyword.operator\",\n                regex : operators\n            }, {\n                token : \"punctuation.operator\",\n                regex : \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.|\\\\:\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"star-comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \"\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                defaultToken: 'comment'\n            }\n        ],\n        \"plus-comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \"\\\\+\\\\/\",\n                next : \"start\"\n            }, {\n                defaultToken: 'comment'\n            }\n        ],\n        \n        \"quote-string\" : [\n           stringEscapesSeq,\n           {\n                token : \"string\",\n                regex : '\"[cdw]?',\n                next : \"start\"\n            }, {\n                defaultToken: 'string'\n            }\n        ],\n        \n        \"backtick-string\" : [\n           stringEscapesSeq,\n           {\n                token : \"string\",\n                regex : '`[cdw]?',\n                next : \"start\"\n            }, {\n                defaultToken: 'string'\n            }\n        ],\n        \n        \"operator-heredoc-string\": [\n            {\n                onMatch: function(value, currentState, state) {\n                    value = value.substring(value.length-2, value.length-1);\n                    var map = {'>':'<',']':'[',')':'(','}':'{'};\n                    if(Object.keys(map).indexOf(value) != -1)\n                        value = map[value];\n                    if(value != state[1]) return \"string\";\n                    state.shift();\n                    state.shift();\n                    \n                    return \"string\";\n                },\n                regex: '(?:[\\\\]\\\\)}>]+)\"',\n                next: 'start'\n            }, {\n                token: 'string',\n                regex: '[^\\\\]\\\\)}>]+'\n            }\n        ],\n        \n        \"identifier-heredoc-string\": [\n            {\n                onMatch: function(value, currentState, state) {\n                    value = value.substring(0, value.length-1);\n                    if(value != state[1]) return \"string\";\n                    state.shift();\n                    state.shift();\n                    \n                    return \"string\";\n                },\n                regex: '^(?:[A-Za-z_][a-zA-Z0-9]+)\"',\n                next: 'start'\n            }, {\n                token: 'string',\n                regex: '[^\\\\]\\\\)}>]+'\n            }\n        ],\n        \n        \"d-asm\": [\n            {\n                token: \"paren.rparen\",\n                regex: \"\\\\}\",\n                next: \"start\"\n            }, {\n                token: 'keyword.instruction',\n                regex: '[a-zA-Z]+',\n                next: 'd-asm-instruction' \n            }, {\n                token: \"text\",\n                regex: \"\\\\s+\"\n            }\n        ],\n        'd-asm-instruction': [\n            {\n                token: 'constant.language',\n                regex: /AL|AH|AX|EAX|BL|BH|BX|EBX|CL|CH|CX|ECX|DL|DH|DX|EDX|BP|EBP|SP|ESP|DI|EDI|SI|ESI/i\n            }, {\n                token: 'identifier',\n                regex: '[a-zA-Z]+'\n            }, {\n                token: 'string',\n                regex: '\".*\"'\n            }, {\n                token: 'comment',\n                regex: '//.*$'\n            }, {\n                token: 'constant.numeric',\n                regex: '[0-9.xA-F]+'\n            }, {\n                token: 'punctuation.operator',\n                regex: '\\\\,'\n            }, {\n                token: 'punctuation.operator',\n                regex: ';',\n                next: 'd-asm'\n            }, {\n                token: 'text',\n                regex: '\\\\s+'\n            }\n        ]\n    };\n\n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n};\n\nDHighlightRules.metaData = {\n      comment: 'D language',\n      fileTypes: [ 'd', 'di' ],\n      firstLineMatch: '^#!.*\\\\b[glr]?dmd\\\\b.',\n      foldingStartMarker: '(?x)/\\\\*\\\\*(?!\\\\*)|^(?![^{]*?//|[^{]*?/\\\\*(?!.*?\\\\*/.*?\\\\{)).*?\\\\{\\\\s*($|//|/\\\\*(?!.*?\\\\*/.*\\\\S))',\n      foldingStopMarker: '(?<!\\\\*)\\\\*\\\\*/|^\\\\s*\\\\}',\n      keyEquivalent: '^~D',\n      name: 'D',\n      scopeName: 'source.d'\n};\noop.inherits(DHighlightRules, TextHighlightRules);\n\nexports.DHighlightRules = DHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/d\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/d_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar DHighlightRules = require(\"./d_highlight_rules\").DHighlightRules;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = DHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n    this.$id = \"ace/mode/d\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-dart.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar cFunctions = exports.cFunctions = \"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\"\n\nvar c_cppHighlightRules = function() {\n\n    var keywordControls = (\n        \"break|case|continue|default|do|else|for|goto|if|_Pragma|\" +\n        \"return|switch|while|catch|operator|try|throw|using\"\n    );\n    \n    var storageType = (\n        \"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|\" +\n        \"_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|\" +\n        \"class|wchar_t|template|char16_t|char32_t\"\n    );\n\n    var storageModifiers = (\n        \"const|extern|register|restrict|static|volatile|inline|private|\" +\n        \"protected|public|friend|explicit|virtual|export|mutable|typename|\" +\n        \"constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\"\n    );\n\n    var keywordOperators = (\n        \"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq\" +\n        \"const_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\"\n    );\n\n    var builtinConstants = (\n        \"NULL|true|false|TRUE|FALSE|nullptr\"\n    );\n\n    var keywordMapper = this.$keywords = this.createKeywordMapper({\n        \"keyword.control\" : keywordControls,\n        \"storage.type\" : storageType,\n        \"storage.modifier\" : storageModifiers,\n        \"keyword.operator\" : keywordOperators,\n        \"variable.language\": \"this\",\n        \"constant.language\": builtinConstants\n    }, \"identifier\");\n\n    var identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\";\n    var escapeRe = /\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source;\n\n    this.$rules = { \n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"//$\",\n                next : \"start\"\n            }, {\n                token : \"comment\",\n                regex : \"//\",\n                next : \"singleLineComment\"\n            },\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n                token : \"string\", // character\n                regex : \"'(?:\" + escapeRe + \"|.)?'\"\n            }, {\n                token : \"string.start\",\n                regex : '\"', \n                stateName: \"qqstring\",\n                next: [\n                    { token: \"string\", regex: /\\\\\\s*$/, next: \"qqstring\" },\n                    { token: \"constant.language.escape\", regex: escapeRe },\n                    { token: \"constant.language.escape\", regex: /%[^'\"\\\\]/ },\n                    { token: \"string.end\", regex: '\"|$', next: \"start\" },\n                    { defaultToken: \"string\"}\n                ]\n            }, {\n                token : \"string.start\",\n                regex : 'R\"\\\\(', \n                stateName: \"rawString\",\n                next: [\n                    { token: \"string.end\", regex: '\\\\)\"', next: \"start\" },\n                    { defaultToken: \"string\"}\n                ]\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : \"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"\n            }, {\n                token : \"keyword\", // pre-compiler directives\n                regex : \"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",\n                next  : \"directive\"\n            }, {\n                token : \"keyword\", // special case pre-compiler directive\n                regex : \"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"\n            }, {\n                token : \"support.function.C99.c\",\n                regex : cFunctions\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/\n            }, {\n              token : \"punctuation.operator\",\n              regex : \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ],\n        \"singleLineComment\" : [\n            {\n                token : \"comment\",\n                regex : /\\\\$/,\n                next : \"singleLineComment\"\n            }, {\n                token : \"comment\",\n                regex : /$/,\n                next : \"start\"\n            }, {\n                defaultToken: \"comment\"\n            }\n        ],\n        \"directive\" : [\n            {\n                token : \"constant.other.multiline\",\n                regex : /\\\\/\n            },\n            {\n                token : \"constant.other.multiline\",\n                regex : /.*\\\\/\n            },\n            {\n                token : \"constant.other\",\n                regex : \"\\\\s*<.+?>\",\n                next : \"start\"\n            },\n            {\n                token : \"constant.other\", // single line\n                regex : '\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',\n                next : \"start\"\n            }, \n            {\n                token : \"constant.other\", // single line\n                regex : \"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",\n                next : \"start\"\n            },\n            {\n                token : \"constant.other\",\n                regex : /[^\\\\\\/]+/,\n                next : \"start\"\n            }\n        ]\n    };\n\n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n    this.normalizeRules();\n};\n\noop.inherits(c_cppHighlightRules, TextHighlightRules);\n\nexports.c_cppHighlightRules = c_cppHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/c_cpp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c_cpp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar c_cppHighlightRules = require(\"./c_cpp_highlight_rules\").c_cppHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar Range = require(\"../range\").Range;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = c_cppHighlightRules;\n\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.$id = \"ace/mode/c_cpp\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/dart_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DartHighlightRules = function() {\n\n    var constantLanguage = \"true|false|null\";\n    var variableLanguage = \"this|super\";\n    var keywordControl = \"try|catch|finally|throw|rethrow|assert|break|case|continue|default|do|else|for|if|in|return|switch|while|new|deferred|async|await\";\n    var keywordDeclaration = \"abstract|class|extends|external|factory|implements|get|native|operator|set|typedef|with|enum\";\n    var storageModifier = \"static|final|const\";\n    var storageType = \"void|bool|num|int|double|dynamic|var|String\";\n\n    var keywordMapper = this.createKeywordMapper({\n        \"constant.language.dart\": constantLanguage,\n        \"variable.language.dart\": variableLanguage,\n        \"keyword.control.dart\": keywordControl,\n        \"keyword.declaration.dart\": keywordDeclaration,\n        \"storage.modifier.dart\": storageModifier,\n        \"storage.type.primitive.dart\": storageType\n    }, \"identifier\");\n\n    var stringfill = {\n        token : \"string\",\n        regex : \".+\"\n    };\n\n    this.$rules = \n        {\n    \"start\": [\n        {\n            token : \"comment\",\n            regex : /\\/\\/.*$/\n        },\n        DocCommentHighlightRules.getStartRule(\"doc-start\"),\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next : \"comment\"\n        },\n        {\n            token: [\"meta.preprocessor.script.dart\"],\n            regex: \"^(#!.*)$\"\n        },\n        {\n            token: \"keyword.other.import.dart\",\n            regex: \"(?:\\\\b)(?:library|import|export|part|of|show|hide)(?:\\\\b)\"\n        },\n        {\n            token : [\"keyword.other.import.dart\", \"text\"],\n            regex : \"(?:\\\\b)(prefix)(\\\\s*:)\"\n        },\n        {\n            regex: \"\\\\bas\\\\b\",\n            token: \"keyword.cast.dart\"\n        },\n        {\n            regex: \"\\\\?|:\",\n            token: \"keyword.control.ternary.dart\"\n        },\n        {\n            regex: \"(?:\\\\b)(is\\\\!?)(?:\\\\b)\",\n            token: [\"keyword.operator.dart\"]\n        },\n        {\n            regex: \"(<<|>>>?|~|\\\\^|\\\\||&)\",\n            token: [\"keyword.operator.bitwise.dart\"]\n        },\n        {\n            regex: \"((?:&|\\\\^|\\\\||<<|>>>?)=)\",\n            token: [\"keyword.operator.assignment.bitwise.dart\"]\n        },\n        {\n            regex: \"(===?|!==?|<=?|>=?)\",\n            token: [\"keyword.operator.comparison.dart\"]\n        },\n        {\n            regex: \"((?:[+*/%-]|\\\\~)=)\",\n            token: [\"keyword.operator.assignment.arithmetic.dart\"]\n        },\n        {\n            regex: \"=\",\n            token: \"keyword.operator.assignment.dart\"\n        },\n        {\n            token : \"string\",\n            regex : \"'''\",\n            next : \"qdoc\"\n        }, \n        {\n            token : \"string\",\n            regex : '\"\"\"',\n            next : \"qqdoc\"\n        }, \n        {\n            token : \"string\",\n            regex : \"'\",\n            next : \"qstring\"\n        }, \n        {\n            token : \"string\",\n            regex : '\"',\n            next : \"qqstring\"\n        }, \n        {\n            regex: \"(\\\\-\\\\-|\\\\+\\\\+)\",\n            token: [\"keyword.operator.increment-decrement.dart\"]\n        },\n        {\n            regex: \"(\\\\-|\\\\+|\\\\*|\\\\/|\\\\~\\\\/|%)\",\n            token: [\"keyword.operator.arithmetic.dart\"]\n        },\n        {\n            regex: \"(!|&&|\\\\|\\\\|)\",\n            token: [\"keyword.operator.logical.dart\"]\n        },\n        {\n            token : \"constant.numeric\", // hex\n            regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n        }, \n        {\n            token : \"constant.numeric\", // float\n            regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n        }, \n        {\n            token : keywordMapper,\n            regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n        }\n    ],\n    \"comment\" : [\n        {\n            token : \"comment\", // closing comment\n            regex : \".*?\\\\*\\\\/\",\n            next : \"start\"\n        }, {\n            token : \"comment\", // comment spanning whole line\n            regex : \".+\"\n        }\n    ],\n    \"qdoc\" : [\n        {\n            token : \"string\",\n            regex : \".*?'''\",\n            next : \"start\"\n        }, stringfill],\n\n    \"qqdoc\" : [\n        {\n            token : \"string\",\n            regex : '.*?\"\"\"',\n            next : \"start\"\n        }, stringfill],\n\n    \"qstring\" : [\n        {\n            token : \"string\",\n            regex : \"[^\\\\\\\\']*(?:\\\\\\\\.[^\\\\\\\\']*)*'\",\n            next : \"start\"\n        }, stringfill],\n\n    \"qqstring\" : [\n        {\n            token : \"string\",\n            regex : '[^\\\\\\\\\"]*(?:\\\\\\\\.[^\\\\\\\\\"]*)*\"',\n            next : \"start\"\n        }, stringfill]\n}\n\n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n};\n\noop.inherits(DartHighlightRules, TextHighlightRules);\n\nexports.DartHighlightRules = DartHighlightRules;\n});\n\nace.define(\"ace/mode/dart\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/c_cpp\",\"ace/mode/dart_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar CMode = require(\"./c_cpp\").Mode;\nvar DartHighlightRules = require(\"./dart_highlight_rules\").DartHighlightRules;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    CMode.call(this);\n    this.HighlightRules = DartHighlightRules;\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, CMode);\n\n(function() { \n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n    this.$id = \"ace/mode/dart\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-diff.js",
    "content": "ace.define(\"ace/mode/diff_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DiffHighlightRules = function() {\n\n    this.$rules = {\n        \"start\" : [{\n                regex: \"^(?:\\\\*{15}|={67}|-{3}|\\\\+{3})$\",\n                token: \"punctuation.definition.separator.diff\",\n                \"name\": \"keyword\"\n            }, { //diff.range.unified\n                regex: \"^(@@)(\\\\s*.+?\\\\s*)(@@)(.*)$\",\n                token: [\n                    \"constant\",\n                    \"constant.numeric\",\n                    \"constant\",\n                    \"comment.doc.tag\"\n                ]\n            }, { //diff.range.normal\n                regex: \"^(\\\\d+)([,\\\\d]+)(a|d|c)(\\\\d+)([,\\\\d]+)(.*)$\",\n                token: [\n                    \"constant.numeric\",\n                    \"punctuation.definition.range.diff\",\n                    \"constant.function\",\n                    \"constant.numeric\",\n                    \"punctuation.definition.range.diff\",\n                    \"invalid\"\n                ],\n                \"name\": \"meta.\"\n            }, {\n                regex: \"^(\\\\-{3}|\\\\+{3}|\\\\*{3})( .+)$\",\n                token: [\n                    \"constant.numeric\",\n                    \"meta.tag\"\n                ]\n            }, { // added\n                regex: \"^([!+>])(.*?)(\\\\s*)$\",\n                token: [\n                    \"support.constant\",\n                    \"text\",\n                    \"invalid\"\n                ]\n            }, { // removed\n                regex: \"^([<\\\\-])(.*?)(\\\\s*)$\",\n                token: [\n                    \"support.function\",\n                    \"string\",\n                    \"invalid\"\n                ]\n            }, {\n                regex: \"^(diff)(\\\\s+--\\\\w+)?(.+?)( .+)?$\",\n                token: [\"variable\", \"variable\", \"keyword\", \"variable\"]\n            }, {\n                regex: \"^Index.+$\",\n                token: \"variable\"\n            }, {\n                regex: \"^\\\\s+$\",\n                token: \"text\"\n            }, {\n                regex: \"\\\\s*$\",\n                token: \"invalid\"\n            }, {\n                defaultToken: \"invisible\",\n                caseInsensitive: true\n            }\n        ]\n    };\n};\n\noop.inherits(DiffHighlightRules, TextHighlightRules);\n\nexports.DiffHighlightRules = DiffHighlightRules;\n});\n\nace.define(\"ace/mode/folding/diff\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function(levels, flag) {\n\tthis.regExpList = levels;\n\tthis.flag = flag;\n\tthis.foldingStartMarker = RegExp(\"^(\" + levels.join(\"|\") + \")\", this.flag);\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var start = {row: row, column: line.length};\n\n        var regList = this.regExpList;\n        for (var i = 1; i <= regList.length; i++) {\n            var re = RegExp(\"^(\" + regList.slice(0, i).join(\"|\") + \")\", this.flag);\n            if (re.test(line))\n                break;\n        }\n\n        for (var l = session.getLength(); ++row < l; ) {\n            line = session.getLine(row);\n            if (re.test(line))\n                break;\n        }\n        if (row == start.row + 1)\n            return;\n        return  Range.fromPoints(start, {row: row - 1, column: line.length});\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/diff\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/diff_highlight_rules\",\"ace/mode/folding/diff\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar HighlightRules = require(\"./diff_highlight_rules\").DiffHighlightRules;\nvar FoldMode = require(\"./folding/diff\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = HighlightRules;\n    this.foldingRules = new FoldMode([\"diff\", \"index\", \"\\\\+{3}\", \"@@|\\\\*{5}\"], \"i\");\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.$id = \"ace/mode/diff\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-django.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar propertyMap = {\n    \"background\": {\"#$0\": 1},\n    \"background-color\": {\"#$0\": 1, \"transparent\": 1, \"fixed\": 1},\n    \"background-image\": {\"url('/$0')\": 1},\n    \"background-repeat\": {\"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1},\n    \"background-position\": {\"bottom\":2, \"center\":2, \"left\":2, \"right\":2, \"top\":2, \"inherit\":2},\n    \"background-attachment\": {\"scroll\": 1, \"fixed\": 1},\n    \"background-size\": {\"cover\": 1, \"contain\": 1},\n    \"background-clip\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"background-origin\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"border\": {\"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1},\n    \"border-color\": {\"#$0\": 1},\n    \"border-style\": {\"solid\":2, \"dashed\":2, \"dotted\":2, \"double\":2, \"groove\":2, \"hidden\":2, \"inherit\":2, \"inset\":2, \"none\":2, \"outset\":2, \"ridged\":2},\n    \"border-collapse\": {\"collapse\": 1, \"separate\": 1},\n    \"bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"clear\": {\"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1},\n    \"color\": {\"#$0\": 1, \"rgb(#$00,0,0)\": 1},\n    \"cursor\": {\"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1},\n    \"display\": {\"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1},\n    \"empty-cells\": {\"show\": 1, \"hide\": 1},\n    \"float\": {\"left\": 1, \"right\": 1, \"none\": 1},\n    \"font-family\": {\"Arial\":2,\"Comic Sans MS\":2,\"Consolas\":2,\"Courier New\":2,\"Courier\":2,\"Georgia\":2,\"Monospace\":2,\"Sans-Serif\":2, \"Segoe UI\":2,\"Tahoma\":2,\"Times New Roman\":2,\"Trebuchet MS\":2,\"Verdana\": 1},\n    \"font-size\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"font-weight\": {\"bold\": 1, \"normal\": 1},\n    \"font-style\": {\"italic\": 1, \"normal\": 1},\n    \"font-variant\": {\"normal\": 1, \"small-caps\": 1},\n    \"height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"letter-spacing\": {\"normal\": 1},\n    \"line-height\": {\"normal\": 1},\n    \"list-style-type\": {\"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1},\n    \"margin\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"overflow\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-x\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-y\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"padding\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"page-break-after\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"page-break-before\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"position\": {\"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1},\n    \"right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"table-layout\": {\"fixed\": 1, \"auto\": 1},\n    \"text-decoration\": {\"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1},\n    \"text-align\": {\"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1},\n    \"text-transform\": {\"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1},\n    \"top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"vertical-align\": {\"top\": 1, \"bottom\": 1},\n    \"visibility\": {\"hidden\": 1, \"visible\": 1},\n    \"white-space\": {\"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1},\n    \"width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"word-spacing\": {\"normal\": 1},\n    \"filter\": {\"alpha(opacity=$0100)\": 1},\n\n    \"text-shadow\": {\"$02px 2px 2px #777\": 1},\n    \"text-overflow\": {\"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1},\n    \"-moz-border-radius\": 1,\n    \"-moz-border-radius-topright\": 1,\n    \"-moz-border-radius-bottomright\": 1,\n    \"-moz-border-radius-topleft\": 1,\n    \"-moz-border-radius-bottomleft\": 1,\n    \"-webkit-border-radius\": 1,\n    \"-webkit-border-top-right-radius\": 1,\n    \"-webkit-border-top-left-radius\": 1,\n    \"-webkit-border-bottom-right-radius\": 1,\n    \"-webkit-border-bottom-left-radius\": 1,\n    \"-moz-box-shadow\": 1,\n    \"-webkit-box-shadow\": 1,\n    \"transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-moz-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-webkit-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\n\nvar CssCompletions = function() {\n\n};\n\n(function() {\n\n    this.completionsDefined = false;\n\n    this.defineCompletions = function() {\n        if (document) {\n            var style = document.createElement('c').style;\n\n            for (var i in style) {\n                if (typeof style[i] !== 'string')\n                    continue;\n\n                var name = i.replace(/[A-Z]/g, function(x) {\n                    return '-' + x.toLowerCase();\n                });\n\n                if (!propertyMap.hasOwnProperty(name))\n                    propertyMap[name] = 1;\n            }\n        }\n\n        this.completionsDefined = true;\n    }\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        if (!this.completionsDefined) {\n            this.defineCompletions();\n        }\n\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (state==='ruleset'){\n            var line = session.getLine(pos.row).substr(0, pos.column);\n            if (/:[^;]+$/.test(line)) {\n                /([\\w\\-]+):[^:]*$/.test(line);\n\n                return this.getPropertyValueCompletions(state, session, pos, prefix);\n            } else {\n                return this.getPropertyCompletions(state, session, pos, prefix);\n            }\n        }\n\n        return [];\n    };\n\n    this.getPropertyCompletions = function(state, session, pos, prefix) {\n        var properties = Object.keys(propertyMap);\n        return properties.map(function(property){\n            return {\n                caption: property,\n                snippet: property + ': $0',\n                meta: \"property\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getPropertyValueCompletions = function(state, session, pos, prefix) {\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n\n        if (!property)\n            return [];\n        var values = [];\n        if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n            values = Object.keys(propertyMap[property]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"property value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(CssCompletions.prototype);\n\nexports.CssCompletions = CssCompletions;\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar CssBehaviour = function () {\n\n    this.inherit(CstyleBehaviour);\n\n    this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(cursor.row);\n                var rightChar = line.substring(cursor.column, cursor.column + 1);\n                if (rightChar === ':') {\n                    return {\n                       text: '',\n                       selection: [1, 1]\n                    }\n                }\n                if (!line.substring(cursor.column).match(/^\\s*;/)) {\n                    return {\n                       text: ':;',\n                       selection: [1, 1]\n                    }\n                }\n            }\n        }\n    });\n\n    this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && selected === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(range.start.row);\n                var rightChar = line.substring(range.end.column, range.end.column + 1);\n                if (rightChar === ';') {\n                    range.end.column ++;\n                    return range;\n                }\n            }\n        }\n    });\n\n    this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ';') {\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar === ';') {\n                return {\n                   text: '',\n                   selection: [1, 1]\n                }\n            }\n        }\n    });\n\n}\noop.inherits(CssBehaviour, CstyleBehaviour);\n\nexports.CssBehaviour = CssBehaviour;\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = CssHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CssBehaviour();\n    this.$completer = new CssCompletions();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.foldingRules = \"cStyle\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        var match = line.match(/^.*\\{\\s*$/);\n        if (match) {\n            indent += tab;\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/css\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n    a           : 'anchor',\n    button \t    : 'form',\n    form        : 'form',\n    img         : 'image',\n    input       : 'form',\n    label       : 'form',\n    option      : 'form',\n    script      : 'script',\n    select      : 'form',\n    textarea    : 'form',\n    style       : 'style',\n    table       : 'table',\n    tbody       : 'table',\n    td          : 'table',\n    tfoot       : 'table',\n    th          : 'table',\n    tr          : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.addRules({\n        attributes: [{\n            include : \"tag_whitespace\"\n        }, {\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"[-_a-zA-Z0-9:.]+\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\",\n            push : [{\n                include: \"tag_whitespace\"\n            }, {\n                token : \"string.unquoted.attribute-value.html\",\n                regex : \"[^<>='\\\"`\\\\s]+\",\n                next : \"pop\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"pop\"\n            }]\n        }, {\n            include : \"attribute_value\"\n        }],\n        tag: [{\n            token : function(start, tag) {\n                var group = tagMap[tag];\n                return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                    \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n            },\n            regex : \"(</?)([-_a-zA-Z0-9:.]+)\",\n            next: \"tag_stuff\"\n        }],\n        tag_stuff: [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n        ]\n    });\n\n    this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"js-\", \"script\");\n\n    if (this.constructor === HtmlHighlightRules)\n        this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nvar XmlBehaviour = function () {\n\n    this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '\"' || text == \"'\") {\n            var quote = text;\n            var selected = session.doc.getTextRange(editor.getSelectionRange());\n            if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n                return {\n                    text: quote + selected + quote,\n                    selection: false\n                };\n            }\n\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n                return {\n                    text: \"\",\n                    selection: [1, 1]\n                };\n            }\n\n            if (!token)\n                token = iterator.stepBackward();\n\n            if (!token)\n                return;\n\n            while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n                token = iterator.stepBackward();\n            }\n            var rightSpace = !rightChar || rightChar.match(/\\s/);\n            if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n                return {\n                    text: quote + quote,\n                    selection: [1, 1]\n                };\n            }\n        }\n    });\n\n    this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == selected) {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n\n    this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '>') {\n            var position = editor.getSelectionRange().start;\n            var iterator = new TokenIterator(session, position.row, position.column);\n            var token = iterator.getCurrentToken() || iterator.stepBackward();\n            if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n                return;\n            if (is(token, \"reference.attribute-value\"))\n                return;\n            if (is(token, \"attribute-value\")) {\n                var firstChar = token.value.charAt(0);\n                if (firstChar == '\"' || firstChar == \"'\") {\n                    var lastChar = token.value.charAt(token.value.length - 1);\n                    var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;\n                    if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)\n                        return;\n                }\n            }\n            while (!is(token, \"tag-name\")) {\n                token = iterator.stepBackward();\n                if (token.value == \"<\") {\n                    token = iterator.stepForward();\n                    break;\n                }\n            }\n\n            var tokenRow = iterator.getCurrentTokenRow();\n            var tokenColumn = iterator.getCurrentTokenColumn();\n            if (is(iterator.stepBackward(), \"end-tag-open\"))\n                return;\n\n            var element = token.value;\n            if (tokenRow == position.row)\n                element = element.substring(0, position.column - tokenColumn);\n\n            if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n                 return;\n\n            return {\n               text: \">\" + \"</\" + element + \">\",\n               selection: [1, 1]\n            };\n        }\n    });\n\n    this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == \"\\n\") {\n            var cursor = editor.getCursorPosition();\n            var line = session.getLine(cursor.row);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (token && token.type.indexOf(\"tag-close\") !== -1) {\n                if (token.value == \"/>\")\n                    return;\n                while (token && token.type.indexOf(\"tag-name\") === -1) {\n                    token = iterator.stepBackward();\n                }\n\n                if (!token) {\n                    return;\n                }\n\n                var tag = token.value;\n                var row = iterator.getCurrentTokenRow();\n                token = iterator.stepBackward();\n                if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n                    return;\n                }\n\n                if (this.voidElements && !this.voidElements[tag]) {\n                    var nextToken = session.getTokenAt(cursor.row, cursor.column+1);\n                    var line = session.getLine(row);\n                    var nextIndent = this.$getIndent(line);\n                    var indent = nextIndent + session.getTabString();\n\n                    if (nextToken && nextToken.value === \"</\") {\n                        return {\n                            text: \"\\n\" + indent + \"\\n\" + nextIndent,\n                            selection: [1, indent.length, 1, indent.length]\n                        };\n                    } else {\n                        return {\n                            text: \"\\n\" + indent\n                        };\n                    }\n                }\n            }\n        }\n    });\n\n};\n\noop.inherits(XmlBehaviour, Behaviour);\n\nexports.XmlBehaviour = XmlBehaviour;\n});\n\nace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(defaultMode, subModes) {\n    this.defaultMode = defaultMode;\n    this.subModes = subModes;\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n\n    this.$getMode = function(state) {\n        if (typeof state != \"string\") \n            state = state[0];\n        for (var key in this.subModes) {\n            if (state.indexOf(key) === 0)\n                return this.subModes[key];\n        }\n        return null;\n    };\n    \n    this.$tryMode = function(state, session, foldStyle, row) {\n        var mode = this.$getMode(state);\n        return (mode ? mode.getFoldWidget(session, foldStyle, row) : \"\");\n    };\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        return (\n            this.$tryMode(session.getState(row-1), session, foldStyle, row) ||\n            this.$tryMode(session.getState(row), session, foldStyle, row) ||\n            this.defaultMode.getFoldWidget(session, foldStyle, row)\n        );\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var mode = this.$getMode(session.getState(row-1));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.$getMode(session.getState(row));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.defaultMode;\n        \n        return mode.getFoldWidgetRange(session, foldStyle, row);\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar lang = require(\"../../lib/lang\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalEndTags) {\n    BaseFoldMode.call(this);\n    this.voidElements = voidElements || {};\n    this.optionalEndTags = oop.mixin({}, this.voidElements);\n    if (optionalEndTags)\n        oop.mixin(this.optionalEndTags, optionalEndTags);\n    \n};\noop.inherits(FoldMode, BaseFoldMode);\n\nvar Tag = function() {\n    this.tagName = \"\";\n    this.closing = false;\n    this.selfClosing = false;\n    this.start = {row: 0, column: 0};\n    this.end = {row: 0, column: 0};\n};\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\n(function() {\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var tag = this._getFirstTagInLine(session, row);\n\n        if (!tag)\n            return \"\";\n\n        if (tag.closing || (!tag.tagName && tag.selfClosing))\n            return foldStyle == \"markbeginend\" ? \"end\" : \"\";\n\n        if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n            return \"\";\n\n        if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n            return \"\";\n\n        return \"start\";\n    };\n    this._getFirstTagInLine = function(session, row) {\n        var tokens = session.getTokens(row);\n        var tag = new Tag();\n\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            if (is(token, \"tag-open\")) {\n                tag.end.column = tag.start.column + token.value.length;\n                tag.closing = is(token, \"end-tag-open\");\n                token = tokens[++i];\n                if (!token)\n                    return null;\n                tag.tagName = token.value;\n                tag.end.column += token.value.length;\n                for (i++; i < tokens.length; i++) {\n                    token = tokens[i];\n                    tag.end.column += token.value.length;\n                    if (is(token, \"tag-close\")) {\n                        tag.selfClosing = token.value == '/>';\n                        break;\n                    }\n                }\n                return tag;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == '/>';\n                return tag;\n            }\n            tag.start.column += token.value.length;\n        }\n\n        return null;\n    };\n\n    this._findEndTagInLine = function(session, row, tagName, startColumn) {\n        var tokens = session.getTokens(row);\n        var column = 0;\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            column += token.value.length;\n            if (column < startColumn)\n                continue;\n            if (is(token, \"end-tag-open\")) {\n                token = tokens[i + 1];\n                if (token && token.value == tagName)\n                    return true;\n            }\n        }\n        return false;\n    };\n    this._readTagForward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n                iterator.stepForward();\n                return tag;\n            }\n        } while(token = iterator.stepForward());\n\n        return null;\n    };\n    \n    this._readTagBackward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n                iterator.stepBackward();\n                return tag;\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n            }\n        } while(token = iterator.stepBackward());\n\n        return null;\n    };\n    \n    this._pop = function(stack, tag) {\n        while (stack.length) {\n            \n            var top = stack[stack.length-1];\n            if (!tag || top.tagName == tag.tagName) {\n                return stack.pop();\n            }\n            else if (this.optionalEndTags.hasOwnProperty(top.tagName)) {\n                stack.pop();\n                continue;\n            } else {\n                return null;\n            }\n        }\n    };\n    \n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var firstTag = this._getFirstTagInLine(session, row);\n        \n        if (!firstTag)\n            return null;\n        \n        var isBackward = firstTag.closing || firstTag.selfClosing;\n        var stack = [];\n        var tag;\n        \n        if (!isBackward) {\n            var iterator = new TokenIterator(session, row, firstTag.start.column);\n            var start = {\n                row: row,\n                column: firstTag.start.column + firstTag.tagName.length + 2\n            };\n            if (firstTag.start.row == firstTag.end.row)\n                start.column = firstTag.end.column;\n            while (tag = this._readTagForward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0)\n                        return Range.fromPoints(start, tag.start);\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        else {\n            var iterator = new TokenIterator(session, row, firstTag.end.column);\n            var end = {\n                row: row,\n                column: firstTag.start.column\n            };\n            \n            while (tag = this._readTagBackward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (!tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0) {\n                        tag.start.column += tag.tagName.length + 2;\n                        if (tag.start.row == tag.end.row && tag.start.column < tag.end.column)\n                            tag.start.column = tag.end.column;\n                        return Range.fromPoints(tag.start, end);\n                    }\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        \n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar MixedFoldMode = require(\"./mixed\").FoldMode;\nvar XmlFoldMode = require(\"./xml\").FoldMode;\nvar CStyleFoldMode = require(\"./cstyle\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalTags) {\n    MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), {\n        \"js-\": new CStyleFoldMode(),\n        \"css-\": new CStyleFoldMode()\n    });\n};\n\noop.inherits(FoldMode, MixedFoldMode);\n\n});\n\nace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\n\nvar commonAttributes = [\n    \"accesskey\",\n    \"class\",\n    \"contenteditable\",\n    \"contextmenu\",\n    \"dir\",\n    \"draggable\",\n    \"dropzone\",\n    \"hidden\",\n    \"id\",\n    \"inert\",\n    \"itemid\",\n    \"itemprop\",\n    \"itemref\",\n    \"itemscope\",\n    \"itemtype\",\n    \"lang\",\n    \"spellcheck\",\n    \"style\",\n    \"tabindex\",\n    \"title\",\n    \"translate\"\n];\n\nvar eventAttributes = [\n    \"onabort\",\n    \"onblur\",\n    \"oncancel\",\n    \"oncanplay\",\n    \"oncanplaythrough\",\n    \"onchange\",\n    \"onclick\",\n    \"onclose\",\n    \"oncontextmenu\",\n    \"oncuechange\",\n    \"ondblclick\",\n    \"ondrag\",\n    \"ondragend\",\n    \"ondragenter\",\n    \"ondragleave\",\n    \"ondragover\",\n    \"ondragstart\",\n    \"ondrop\",\n    \"ondurationchange\",\n    \"onemptied\",\n    \"onended\",\n    \"onerror\",\n    \"onfocus\",\n    \"oninput\",\n    \"oninvalid\",\n    \"onkeydown\",\n    \"onkeypress\",\n    \"onkeyup\",\n    \"onload\",\n    \"onloadeddata\",\n    \"onloadedmetadata\",\n    \"onloadstart\",\n    \"onmousedown\",\n    \"onmousemove\",\n    \"onmouseout\",\n    \"onmouseover\",\n    \"onmouseup\",\n    \"onmousewheel\",\n    \"onpause\",\n    \"onplay\",\n    \"onplaying\",\n    \"onprogress\",\n    \"onratechange\",\n    \"onreset\",\n    \"onscroll\",\n    \"onseeked\",\n    \"onseeking\",\n    \"onselect\",\n    \"onshow\",\n    \"onstalled\",\n    \"onsubmit\",\n    \"onsuspend\",\n    \"ontimeupdate\",\n    \"onvolumechange\",\n    \"onwaiting\"\n];\n\nvar globalAttributes = commonAttributes.concat(eventAttributes);\n\nvar attributeMap = {\n    \"html\": {\"manifest\": 1},\n    \"head\": {},\n    \"title\": {},\n    \"base\": {\"href\": 1, \"target\": 1},\n    \"link\": {\"href\": 1, \"hreflang\": 1, \"rel\": {\"stylesheet\": 1, \"icon\": 1}, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"type\": {\"text/css\": 1, \"image/png\": 1, \"image/jpeg\": 1, \"image/gif\": 1}, \"sizes\": 1},\n    \"meta\": {\"http-equiv\": {\"content-type\": 1}, \"name\": {\"description\": 1, \"keywords\": 1}, \"content\": {\"text/html; charset=UTF-8\": 1}, \"charset\": 1},\n    \"style\": {\"type\": 1, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"scoped\": 1},\n    \"script\": {\"charset\": 1, \"type\": {\"text/javascript\": 1}, \"src\": 1, \"defer\": 1, \"async\": 1},\n    \"noscript\": {\"href\": 1},\n    \"body\": {\"onafterprint\": 1, \"onbeforeprint\": 1, \"onbeforeunload\": 1, \"onhashchange\": 1, \"onmessage\": 1, \"onoffline\": 1, \"onpopstate\": 1, \"onredo\": 1, \"onresize\": 1, \"onstorage\": 1, \"onundo\": 1, \"onunload\": 1},\n    \"section\": {},\n    \"nav\": {},\n    \"article\": {\"pubdate\": 1},\n    \"aside\": {},\n    \"h1\": {},\n    \"h2\": {},\n    \"h3\": {},\n    \"h4\": {},\n    \"h5\": {},\n    \"h6\": {},\n    \"header\": {},\n    \"footer\": {},\n    \"address\": {},\n    \"main\": {},\n    \"p\": {},\n    \"hr\": {},\n    \"pre\": {},\n    \"blockquote\": {\"cite\": 1},\n    \"ol\": {\"start\": 1, \"reversed\": 1},\n    \"ul\": {},\n    \"li\": {\"value\": 1},\n    \"dl\": {},\n    \"dt\": {},\n    \"dd\": {},\n    \"figure\": {},\n    \"figcaption\": {},\n    \"div\": {},\n    \"a\": {\"href\": 1, \"target\": {\"_blank\": 1, \"top\": 1}, \"ping\": 1, \"rel\": {\"nofollow\": 1, \"alternate\": 1, \"author\": 1, \"bookmark\": 1, \"help\": 1, \"license\": 1, \"next\": 1, \"noreferrer\": 1, \"prefetch\": 1, \"prev\": 1, \"search\": 1, \"tag\": 1}, \"media\": 1, \"hreflang\": 1, \"type\": 1},\n    \"em\": {},\n    \"strong\": {},\n    \"small\": {},\n    \"s\": {},\n    \"cite\": {},\n    \"q\": {\"cite\": 1},\n    \"dfn\": {},\n    \"abbr\": {},\n    \"data\": {},\n    \"time\": {\"datetime\": 1},\n    \"code\": {},\n    \"var\": {},\n    \"samp\": {},\n    \"kbd\": {},\n    \"sub\": {},\n    \"sup\": {},\n    \"i\": {},\n    \"b\": {},\n    \"u\": {},\n    \"mark\": {},\n    \"ruby\": {},\n    \"rt\": {},\n    \"rp\": {},\n    \"bdi\": {},\n    \"bdo\": {},\n    \"span\": {},\n    \"br\": {},\n    \"wbr\": {},\n    \"ins\": {\"cite\": 1, \"datetime\": 1},\n    \"del\": {\"cite\": 1, \"datetime\": 1},\n    \"img\": {\"alt\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"usemap\": 1, \"ismap\": 1},\n    \"iframe\": {\"name\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"sandbox\": {\"allow-same-origin\": 1, \"allow-top-navigation\": 1, \"allow-forms\": 1, \"allow-scripts\": 1}, \"seamless\": {\"seamless\": 1}},\n    \"embed\": {\"src\": 1, \"height\": 1, \"width\": 1, \"type\": 1},\n    \"object\": {\"param\": 1, \"data\": 1, \"type\": 1, \"height\" : 1, \"width\": 1, \"usemap\": 1, \"name\": 1, \"form\": 1, \"classid\": 1},\n    \"param\": {\"name\": 1, \"value\": 1},\n    \"video\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"width\": 1, \"height\": 1, \"poster\": 1, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1}},\n    \"audio\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1 }},\n    \"source\": {\"src\": 1, \"type\": 1, \"media\": 1},\n    \"track\": {\"kind\": 1, \"src\": 1, \"srclang\": 1, \"label\": 1, \"default\": 1},\n    \"canvas\": {\"width\": 1, \"height\": 1},\n    \"map\": {\"name\": 1},\n    \"area\": {\"shape\": 1, \"coords\": 1, \"href\": 1, \"hreflang\": 1, \"alt\": 1, \"target\": 1, \"media\": 1, \"rel\": 1, \"ping\": 1, \"type\": 1},\n    \"svg\": {},\n    \"math\": {},\n    \"table\": {\"summary\": 1},\n    \"caption\": {},\n    \"colgroup\": {\"span\": 1},\n    \"col\": {\"span\": 1},\n    \"tbody\": {},\n    \"thead\": {},\n    \"tfoot\": {},\n    \"tr\": {},\n    \"td\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1},\n    \"th\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1, \"scope\": 1},\n    \"form\": {\"accept-charset\": 1, \"action\": 1, \"autocomplete\": 1, \"enctype\": {\"multipart/form-data\": 1, \"application/x-www-form-urlencoded\": 1}, \"method\": {\"get\": 1, \"post\": 1}, \"name\": 1, \"novalidate\": 1, \"target\": {\"_blank\": 1, \"top\": 1}},\n    \"fieldset\": {\"disabled\": 1, \"form\": 1, \"name\": 1},\n    \"legend\": {},\n    \"label\": {\"form\": 1, \"for\": 1},\n    \"input\": {\n        \"type\": {\"text\": 1, \"password\": 1, \"hidden\": 1, \"checkbox\": 1, \"submit\": 1, \"radio\": 1, \"file\": 1, \"button\": 1, \"reset\": 1, \"image\": 31, \"color\": 1, \"date\": 1, \"datetime\": 1, \"datetime-local\": 1, \"email\": 1, \"month\": 1, \"number\": 1, \"range\": 1, \"search\": 1, \"tel\": 1, \"time\": 1, \"url\": 1, \"week\": 1},\n        \"accept\": 1, \"alt\": 1, \"autocomplete\": {\"on\": 1, \"off\": 1}, \"autofocus\": {\"autofocus\": 1}, \"checked\": {\"checked\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": {\"application/x-www-form-urlencoded\": 1, \"multipart/form-data\": 1, \"text/plain\": 1}, \"formmethod\": {\"get\": 1, \"post\": 1}, \"formnovalidate\": {\"formnovalidate\": 1}, \"formtarget\": {\"_blank\": 1, \"_self\": 1, \"_parent\": 1, \"_top\": 1}, \"height\": 1, \"list\": 1, \"max\": 1, \"maxlength\": 1, \"min\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"pattern\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"size\": 1, \"src\": 1, \"step\": 1, \"width\": 1, \"files\": 1, \"value\": 1},\n    \"button\": {\"autofocus\": 1, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": 1, \"formmethod\": 1, \"formnovalidate\": 1, \"formtarget\": 1, \"name\": 1, \"value\": 1, \"type\": {\"button\": 1, \"submit\": 1}},\n    \"select\": {\"autofocus\": 1, \"disabled\": 1, \"form\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"size\": 1, \"readonly\":{\"readonly\": 1}},\n    \"datalist\": {},\n    \"optgroup\": {\"disabled\": 1, \"label\": 1},\n    \"option\": {\"disabled\": 1, \"selected\": 1, \"label\": 1, \"value\": 1},\n    \"textarea\": {\"autofocus\": {\"autofocus\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"maxlength\": 1, \"name\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"rows\": 1, \"cols\": 1, \"wrap\": {\"on\": 1, \"off\": 1, \"hard\": 1, \"soft\": 1}},\n    \"keygen\": {\"autofocus\": 1, \"challenge\": {\"challenge\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"keytype\": {\"rsa\": 1, \"dsa\": 1, \"ec\": 1}, \"name\": 1},\n    \"output\": {\"for\": 1, \"form\": 1, \"name\": 1},\n    \"progress\": {\"value\": 1, \"max\": 1},\n    \"meter\": {\"value\": 1, \"min\": 1, \"max\": 1, \"low\": 1, \"high\": 1, \"optimum\": 1},\n    \"details\": {\"open\": 1},\n    \"summary\": {},\n    \"command\": {\"type\": 1, \"label\": 1, \"icon\": 1, \"disabled\": 1, \"checked\": 1, \"radiogroup\": 1, \"command\": 1},\n    \"menu\": {\"type\": 1, \"label\": 1},\n    \"dialog\": {\"open\": 1}\n};\n\nvar elements = Object.keys(attributeMap);\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nfunction findTagName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"tag-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nfunction findAttributeName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"attribute-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nvar HtmlCompletions = function() {\n\n};\n\n(function() {\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (is(token, \"tag-name\") || is(token, \"tag-open\") || is(token, \"end-tag-open\"))\n            return this.getTagCompletions(state, session, pos, prefix);\n        if (is(token, \"tag-whitespace\") || is(token, \"attribute-name\"))\n            return this.getAttributeCompletions(state, session, pos, prefix);\n        if (is(token, \"attribute-value\"))\n            return this.getAttributeValueCompletions(state, session, pos, prefix);\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        if (/&[a-z]*$/i.test(line))\n            return this.getHTMLEntityCompletions(state, session, pos, prefix);\n\n        return [];\n    };\n\n    this.getTagCompletions = function(state, session, pos, prefix) {\n        return elements.map(function(element){\n            return {\n                value: element,\n                meta: \"tag\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        if (!tagName)\n            return [];\n        var attributes = globalAttributes;\n        if (tagName in attributeMap) {\n            attributes = attributes.concat(Object.keys(attributeMap[tagName]));\n        }\n        return attributes.map(function(attribute){\n            return {\n                caption: attribute,\n                snippet: attribute + '=\"$0\"',\n                meta: \"attribute\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeValueCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        var attributeName = findAttributeName(session, pos);\n        \n        if (!tagName)\n            return [];\n        var values = [];\n        if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === \"object\") {\n            values = Object.keys(attributeMap[tagName][attributeName]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"attribute value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getHTMLEntityCompletions = function(state, session, pos, prefix) {\n        var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;'];\n\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"html entity\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(HtmlCompletions.prototype);\n\nexports.HtmlCompletions = HtmlCompletions;\n});\n\nace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar CssMode = require(\"./css\").Mode;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar HtmlFoldMode = require(\"./folding/html\").FoldMode;\nvar HtmlCompletions = require(\"./html_completions\").HtmlCompletions;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar voidElements = [\"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"menuitem\", \"param\", \"source\", \"track\", \"wbr\"];\nvar optionalEndTags = [\"li\", \"dt\", \"dd\", \"p\", \"rt\", \"rp\", \"optgroup\", \"option\", \"colgroup\", \"td\", \"th\"];\n\nvar Mode = function(options) {\n    this.fragmentContext = options && options.fragmentContext;\n    this.HighlightRules = HtmlHighlightRules;\n    this.$behaviour = new XmlBehaviour();\n    this.$completer = new HtmlCompletions();\n    \n    this.createModeDelegates({\n        \"js-\": JavaScriptMode,\n        \"css-\": CssMode\n    });\n    \n    this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags));\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.blockComment = {start: \"<!--\", end: \"-->\"};\n\n    this.voidElements = lang.arrayToMap(voidElements);\n\n    this.getNextLineIndent = function(state, line, tab) {\n        return this.$getIndent(line);\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return false;\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        if (this.constructor != Mode)\n            return;\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/html_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        if (this.fragmentContext)\n            worker.call(\"setOptions\", [{context: this.fragmentContext}]);\n\n        worker.on(\"error\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/html\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/django\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/html_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\nvar oop = require(\"../lib/oop\");\nvar HtmlMode = require(\"./html\").Mode;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DjangoHighlightRules = function(){\n    this.$rules = {\n        'start': [{\n            token: \"string\",\n            regex: '\".*?\"'\n        }, {\n            token: \"string\",\n            regex: \"'.*?'\"\n        }, {\n            token: \"constant\",\n            regex: '[0-9]+'\n        }, {\n            token: \"variable\",\n            regex: \"[-_a-zA-Z0-9:]+\"\n        }],\n        'comment': [{\n            token : \"comment.block\",\n            merge: true,\n            regex : \".+?\"\n        }],\n        'tag': [{\n            token: \"entity.name.function\",\n            regex: \"[a-zA-Z][_a-zA-Z0-9]*\",\n            next: \"start\"\n        }]\n    };\n};\n\noop.inherits(DjangoHighlightRules, TextHighlightRules)\n\nvar DjangoHtmlHighlightRules = function() {\n    this.$rules = new HtmlHighlightRules().getRules();\n\n    for (var i in this.$rules) {\n        this.$rules[i].unshift({\n            token: \"comment.line\",\n            regex: \"\\\\{#.*?#\\\\}\"\n        }, {\n            token: \"comment.block\",\n            regex: \"\\\\{\\\\%\\\\s*comment\\\\s*\\\\%\\\\}\",\n            merge: true,\n            next: \"django-comment\"\n        }, {\n            token: \"constant.language\",\n            regex: \"\\\\{\\\\{\",\n            next: \"django-start\"\n        }, {\n            token: \"constant.language\",\n            regex: \"\\\\{\\\\%\",\n            next: \"django-tag\"\n        });\n        this.embedRules(DjangoHighlightRules, \"django-\", [{\n                token: \"comment.block\",\n                regex: \"\\\\{\\\\%\\\\s*endcomment\\\\s*\\\\%\\\\}\",\n                merge: true,\n                next: \"start\"\n            }, {\n                token: \"constant.language\",\n                regex: \"\\\\%\\\\}\",\n                next: \"start\"\n            }, {\n                token: \"constant.language\",\n                regex: \"\\\\}\\\\}\",\n                next: \"start\"\n        }]);\n    }\n};\n\noop.inherits(DjangoHtmlHighlightRules, HtmlHighlightRules);\n\nvar Mode = function() {\n    HtmlMode.call(this);\n    this.HighlightRules = DjangoHtmlHighlightRules;\n};\noop.inherits(Mode, HtmlMode);\n\n(function() {\n    this.$id = \"ace/mode/django\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-dockerfile.js",
    "content": "ace.define(\"ace/mode/sh_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar reservedKeywords = exports.reservedKeywords = (\n        '!|{|}|case|do|done|elif|else|'+\n        'esac|fi|for|if|in|then|until|while|'+\n        '&|;|export|local|read|typeset|unset|'+\n        'elif|select|set|function|declare|readonly'\n    );\n\nvar languageConstructs = exports.languageConstructs = (\n    '[|]|alias|bg|bind|break|builtin|'+\n     'cd|command|compgen|complete|continue|'+\n     'dirs|disown|echo|enable|eval|exec|'+\n     'exit|fc|fg|getopts|hash|help|history|'+\n     'jobs|kill|let|logout|popd|printf|pushd|'+\n     'pwd|return|set|shift|shopt|source|'+\n     'suspend|test|times|trap|type|ulimit|'+\n     'umask|unalias|wait'\n);\n\nvar ShHighlightRules = function() {\n    var keywordMapper = this.createKeywordMapper({\n        \"keyword\": reservedKeywords,\n        \"support.function.builtin\": languageConstructs,\n        \"invalid.deprecated\": \"debugger\"\n    }, \"identifier\");\n\n    var integer = \"(?:(?:[1-9]\\\\d*)|(?:0))\";\n\n    var fraction = \"(?:\\\\.\\\\d+)\";\n    var intPart = \"(?:\\\\d+)\";\n    var pointFloat = \"(?:(?:\" + intPart + \"?\" + fraction + \")|(?:\" + intPart + \"\\\\.))\";\n    var exponentFloat = \"(?:(?:\" + pointFloat + \"|\" +  intPart + \")\" + \")\";\n    var floatNumber = \"(?:\" + exponentFloat + \"|\" + pointFloat + \")\";\n    var fileDescriptor = \"(?:&\" + intPart + \")\";\n\n    var variableName = \"[a-zA-Z_][a-zA-Z0-9_]*\";\n    var variable = \"(?:\" + variableName + \"=)\";\n\n    var builtinVariable = \"(?:\\\\$(?:SHLVL|\\\\$|\\\\!|\\\\?))\";\n\n    var func = \"(?:\" + variableName + \"\\\\s*\\\\(\\\\))\";\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"constant\",\n            regex : /\\\\./\n        }, {\n            token : [\"text\", \"comment\"],\n            regex : /(^|\\s)(#.*)$/\n        }, {\n            token : \"string.start\",\n            regex : '\"',\n            push : [{\n                token : \"constant.language.escape\",\n                regex : /\\\\(?:[$`\"\\\\]|$)/\n            }, {\n                include : \"variables\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /`/ // TODO highlight `\n            }, {\n                token : \"string.end\",\n                regex : '\"',\n                next: \"pop\"\n            }, {\n                defaultToken: \"string\"\n            }]\n        }, {\n            token : \"string\",\n            regex : \"\\\\$'\",\n            push : [{\n                token : \"constant.language.escape\",\n                regex : /\\\\(?:[abeEfnrtv\\\\'\"]|x[a-fA-F\\d]{1,2}|u[a-fA-F\\d]{4}([a-fA-F\\d]{4})?|c.|\\d{1,3})/\n            }, {\n                token : \"string\",\n                regex : \"'\",\n                next: \"pop\"\n            }, {\n                defaultToken: \"string\"\n            }]\n        }, {\n            regex : \"<<<\",\n            token : \"keyword.operator\"\n        }, {\n            stateName: \"heredoc\",\n            regex : \"(<<-?)(\\\\s*)(['\\\"`]?)([\\\\w\\\\-]+)(['\\\"`]?)\",\n            onMatch : function(value, currentState, stack) {\n                var next = value[2] == '-' ? \"indentedHeredoc\" : \"heredoc\";\n                var tokens = value.split(this.splitRegex);\n                stack.push(next, tokens[4]);\n                return [\n                    {type:\"constant\", value: tokens[1]},\n                    {type:\"text\", value: tokens[2]},\n                    {type:\"string\", value: tokens[3]},\n                    {type:\"support.class\", value: tokens[4]},\n                    {type:\"string\", value: tokens[5]}\n                ];\n            },\n            rules: {\n                heredoc: [{\n                    onMatch:  function(value, currentState, stack) {\n                        if (value === stack[1]) {\n                            stack.shift();\n                            stack.shift();\n                            this.next = stack[0] || \"start\";\n                            return \"support.class\";\n                        }\n                        this.next = \"\";\n                        return \"string\";\n                    },\n                    regex: \".*$\",\n                    next: \"start\"\n                }],\n                indentedHeredoc: [{\n                    token: \"string\",\n                    regex: \"^\\t+\"\n                }, {\n                    onMatch:  function(value, currentState, stack) {\n                        if (value === stack[1]) {\n                            stack.shift();\n                            stack.shift();\n                            this.next = stack[0] || \"start\";\n                            return \"support.class\";\n                        }\n                        this.next = \"\";\n                        return \"string\";\n                    },\n                    regex: \".*$\",\n                    next: \"start\"\n                }]\n            }\n        }, {\n            regex : \"$\",\n            token : \"empty\",\n            next : function(currentState, stack) {\n                if (stack[0] === \"heredoc\" || stack[0] === \"indentedHeredoc\")\n                    return stack[0];\n                return currentState;\n            }\n        }, {\n            token : [\"keyword\", \"text\", \"text\", \"text\", \"variable\"],\n            regex : /(declare|local|readonly)(\\s+)(?:(-[fixar]+)(\\s+))?([a-zA-Z_][a-zA-Z0-9_]*\\b)/\n        }, {\n            token : \"variable.language\",\n            regex : builtinVariable\n        }, {\n            token : \"variable\",\n            regex : variable\n        }, {\n            include : \"variables\"\n        }, {\n            token : \"support.function\",\n            regex : func\n        }, {\n            token : \"support.function\",\n            regex : fileDescriptor\n        }, {\n            token : \"string\",           // ' string\n            start : \"'\", end : \"'\"\n        }, {\n            token : \"constant.numeric\", // float\n            regex : floatNumber\n        }, {\n            token : \"constant.numeric\", // integer\n            regex : integer + \"\\\\b\"\n        }, {\n            token : keywordMapper,\n            regex : \"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\"\n        }, {\n            token : \"keyword.operator\",\n            regex : \"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|~|<|>|<=|=>|=|!=|[%&|`]\"\n        }, {\n            token : \"punctuation.operator\",\n            regex : \";\"\n        }, {\n            token : \"paren.lparen\",\n            regex : \"[\\\\[\\\\(\\\\{]\"\n        }, {\n            token : \"paren.rparen\",\n            regex : \"[\\\\]]\"\n        }, {\n            token : \"paren.rparen\",\n            regex : \"[\\\\)\\\\}]\",\n            next : \"pop\"\n        }],\n        variables: [{\n            token : \"variable\",\n            regex : /(\\$)(\\w+)/\n        }, {\n            token : [\"variable\", \"paren.lparen\"],\n            regex : /(\\$)(\\()/,\n            push : \"start\"\n        }, {\n            token : [\"variable\", \"paren.lparen\", \"keyword.operator\", \"variable\", \"keyword.operator\"],\n            regex : /(\\$)(\\{)([#!]?)(\\w+|[*@#?\\-$!0_])(:[?+\\-=]?|##?|%%?|,,?\\/|\\^\\^?)?/,\n            push : \"start\"\n        }, {\n            token : \"variable\",\n            regex : /\\$[*@#?\\-$!0_]/\n        }, {\n            token : [\"variable\", \"paren.lparen\"],\n            regex : /(\\$)(\\{)/,\n            push : \"start\"\n        }]\n    };\n    \n    this.normalizeRules();\n};\n\noop.inherits(ShHighlightRules, TextHighlightRules);\n\nexports.ShHighlightRules = ShHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/sh\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/sh_highlight_rules\",\"ace/range\",\"ace/mode/folding/cstyle\",\"ace/mode/behaviour/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar ShHighlightRules = require(\"./sh_highlight_rules\").ShHighlightRules;\nvar Range = require(\"../range\").Range;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\n\nvar Mode = function() {\n    this.HighlightRules = ShHighlightRules;\n    this.foldingRules = new CStyleFoldMode();\n    this.$behaviour = new CstyleBehaviour();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n   \n    this.lineCommentStart = \"#\";\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[:]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        }\n\n        return indent;\n    };\n\n    var outdents = {\n        \"pass\": 1,\n        \"return\": 1,\n        \"raise\": 1,\n        \"break\": 1,\n        \"continue\": 1\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        if (input !== \"\\r\\n\" && input !== \"\\r\" && input !== \"\\n\")\n            return false;\n\n        var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;\n\n        if (!tokens)\n            return false;\n        do {\n            var last = tokens.pop();\n        } while (last && (last.type == \"comment\" || (last.type == \"text\" && last.value.match(/^\\s+$/))));\n\n        if (!last)\n            return false;\n\n        return (last.type == \"keyword\" && outdents[last.value]);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n\n        row += 1;\n        var indent = this.$getIndent(doc.getLine(row));\n        var tab = doc.getTabString();\n        if (indent.slice(-tab.length) == tab)\n            doc.remove(new Range(row, indent.length-tab.length, row, indent.length));\n    };\n\n    this.$id = \"ace/mode/sh\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/dockerfile_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/sh_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar ShHighlightRules = require(\"./sh_highlight_rules\").ShHighlightRules;\n\nvar DockerfileHighlightRules = function() {\n    ShHighlightRules.call(this);\n\n    var startRules = this.$rules.start;\n    for (var i = 0; i < startRules.length; i++) {\n        if (startRules[i].token == \"variable.language\") {\n            startRules.splice(i, 0, {\n                token: \"constant.language\",\n                regex: \"(?:^(?:FROM|MAINTAINER|RUN|CMD|EXPOSE|ENV|ADD|ENTRYPOINT|VOLUME|USER|WORKDIR|ONBUILD|COPY|LABEL)\\\\b)\",\n                caseInsensitive: true\n            });\n            break;\n        }\n    }\n    \n};\n\noop.inherits(DockerfileHighlightRules, ShHighlightRules);\n\nexports.DockerfileHighlightRules = DockerfileHighlightRules;\n});\n\nace.define(\"ace/mode/dockerfile\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/sh\",\"ace/mode/dockerfile_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar ShMode = require(\"./sh\").Mode;\nvar DockerfileHighlightRules = require(\"./dockerfile_highlight_rules\").DockerfileHighlightRules;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    ShMode.call(this);\n    \n    this.HighlightRules = DockerfileHighlightRules;\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, ShMode);\n\n(function() {\n    this.$id = \"ace/mode/dockerfile\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-dot.js",
    "content": "ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/dot_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/doc_comment_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\n\nvar DotHighlightRules = function() {\n\n   var keywords = lang.arrayToMap(\n        (\"strict|node|edge|graph|digraph|subgraph\").split(\"|\")\n   );\n\n   var attributes = lang.arrayToMap(\n        (\"damping|k|url|area|arrowhead|arrowsize|arrowtail|aspect|bb|bgcolor|center|charset|clusterrank|color|colorscheme|comment|compound|concentrate|constraint|decorate|defaultdist|dim|dimen|dir|diredgeconstraints|distortion|dpi|edgeurl|edgehref|edgetarget|edgetooltip|epsilon|esep|fillcolor|fixedsize|fontcolor|fontname|fontnames|fontpath|fontsize|forcelabels|gradientangle|group|headurl|head_lp|headclip|headhref|headlabel|headport|headtarget|headtooltip|height|href|id|image|imagepath|imagescale|label|labelurl|label_scheme|labelangle|labeldistance|labelfloat|labelfontcolor|labelfontname|labelfontsize|labelhref|labeljust|labelloc|labeltarget|labeltooltip|landscape|layer|layerlistsep|layers|layerselect|layersep|layout|len|levels|levelsgap|lhead|lheight|lp|ltail|lwidth|margin|maxiter|mclimit|mindist|minlen|mode|model|mosek|nodesep|nojustify|normalize|nslimit|nslimit1|ordering|orientation|outputorder|overlap|overlap_scaling|pack|packmode|pad|page|pagedir|pencolor|penwidth|peripheries|pin|pos|quadtree|quantum|rank|rankdir|ranksep|ratio|rects|regular|remincross|repulsiveforce|resolution|root|rotate|rotation|samehead|sametail|samplepoints|scale|searchsize|sep|shape|shapefile|showboxes|sides|size|skew|smoothing|sortv|splines|start|style|stylesheet|tailurl|tail_lp|tailclip|tailhref|taillabel|tailport|tailtarget|tailtooltip|target|tooltip|truecolor|vertices|viewport|voro_margin|weight|width|xlabel|xlp|z\").split(\"|\")\n   );\n\n   this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : /\\/\\/.*$/\n            }, {\n                token : \"comment\",\n                regex : /#.*$/\n            }, {\n                token : \"comment\", // multi line comment\n                merge : true,\n                regex : /\\/\\*/,\n                next : \"comment\"\n            }, {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\",\n                regex : /[+\\-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?)?\\b/\n            }, {\n                token : \"keyword.operator\",\n                regex : /\\+|=|\\->/\n            }, {\n                token : \"punctuation.operator\",\n                regex : /,|;/\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[{]/\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\]}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }, {\n                token: function(value) {\n                    if (keywords.hasOwnProperty(value.toLowerCase())) {\n                        return \"keyword\";\n                    }\n                    else if (attributes.hasOwnProperty(value.toLowerCase())) {\n                        return \"variable\";\n                    }\n                    else {\n                        return \"text\";\n                    }\n                },\n                regex: \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n           }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                merge : true,\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                merge : true,\n                regex : \".+\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"string\",\n                regex : '[^\"\\\\\\\\]+',\n                merge : true\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\",\n                merge : true\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"start\",\n                merge : true\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"string\",\n                regex : \"[^'\\\\\\\\]+\",\n                merge : true\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\",\n                merge : true\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"start\",\n                merge : true\n            }\n        ]\n   };\n};\n\noop.inherits(DotHighlightRules, TextHighlightRules);\n\nexports.DotHighlightRules = DotHighlightRules;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/dot\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/matching_brace_outdent\",\"ace/mode/dot_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar DotHighlightRules = require(\"./dot_highlight_rules\").DotHighlightRules;\nvar DotFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = DotHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.foldingRules = new DotFoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = [\"//\", \"#\"];\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.$id = \"ace/mode/dot\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-drools.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/java_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar JavaHighlightRules = function() {\n    var keywords = (\n    \"abstract|continue|for|new|switch|\" +\n    \"assert|default|goto|package|synchronized|\" +\n    \"boolean|do|if|private|this|\" +\n    \"break|double|implements|protected|throw|\" +\n    \"byte|else|import|public|throws|\" +\n    \"case|enum|instanceof|return|transient|\" +\n    \"catch|extends|int|short|try|\" +\n    \"char|final|interface|static|void|\" +\n    \"class|finally|long|strictfp|volatile|\" +\n    \"const|float|native|super|while\"\n    );\n\n    var buildinConstants = (\"null|Infinity|NaN|undefined\");\n\n\n    var langClasses = (\n        \"AbstractMethodError|AssertionError|ClassCircularityError|\"+\n        \"ClassFormatError|Deprecated|EnumConstantNotPresentException|\"+\n        \"ExceptionInInitializerError|IllegalAccessError|\"+\n        \"IllegalThreadStateException|InstantiationError|InternalError|\"+\n        \"NegativeArraySizeException|NoSuchFieldError|Override|Process|\"+\n        \"ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|\"+\n        \"SuppressWarnings|TypeNotPresentException|UnknownError|\"+\n        \"UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|\"+\n        \"InstantiationException|IndexOutOfBoundsException|\"+\n        \"ArrayIndexOutOfBoundsException|CloneNotSupportedException|\"+\n        \"NoSuchFieldException|IllegalArgumentException|NumberFormatException|\"+\n        \"SecurityException|Void|InheritableThreadLocal|IllegalStateException|\"+\n        \"InterruptedException|NoSuchMethodException|IllegalAccessException|\"+\n        \"UnsupportedOperationException|Enum|StrictMath|Package|Compiler|\"+\n        \"Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|\"+\n        \"NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|\"+\n        \"NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|\"+\n        \"Character|Boolean|StackTraceElement|Appendable|StringBuffer|\"+\n        \"Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|\"+\n        \"StackOverflowError|OutOfMemoryError|VirtualMachineError|\"+\n        \"ArrayStoreException|ClassCastException|LinkageError|\"+\n        \"NoClassDefFoundError|ClassNotFoundException|RuntimeException|\"+\n        \"Exception|ThreadDeath|Error|Throwable|System|ClassLoader|\"+\n        \"Cloneable|Class|CharSequence|Comparable|String|Object\"\n    );\n\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\": \"this\",\n        \"keyword\": keywords,\n        \"constant.language\": buildinConstants,\n        \"support.function\": langClasses\n    }, \"identifier\");\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"\\\\/\\\\/.*$\"\n            },\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n                token : \"string\", // single line\n                regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n            }, {\n                token : \"string\", // single line\n                regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.[\\d_]*)?(?:[eE][+-]?[\\d_]+)?)?[LlSsDdFfYy]?\\b/\n            }, {\n                token : \"constant.language.boolean\",\n                regex : \"(?:true|false)\\\\b\"\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n            }, {\n                token : \"lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ]\n    };\n\n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n};\n\noop.inherits(JavaHighlightRules, TextHighlightRules);\n\nexports.JavaHighlightRules = JavaHighlightRules;\n});\n\nace.define(\"ace/mode/drools_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/java_highlight_rules\",\"ace/mode/doc_comment_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JavaHighlightRules = require(\"./java_highlight_rules\").JavaHighlightRules;\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\n\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\nvar packageIdentifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][\\\\.a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar DroolsHighlightRules = function() {\n\n    var keywords = (\"date|effective|expires|lock|on|active|no|loop|auto|focus\" +\n        \"|activation|group|agenda|ruleflow|duration|timer|calendars|refract|direct\" +\n        \"|dialect|salience|enabled|attributes|extends|template\" +\n        \"|function|contains|matches|eval|excludes|soundslike\" +\n        \"|memberof|not|in|or|and|exists|forall|over|from|entry|point|accumulate|acc|collect\" +\n        \"|action|reverse|result|end|init|instanceof|extends|super|boolean|char|byte|short\" +\n        \"|int|long|float|double|this|void|class|new|case|final|if|else|for|while|do\" +\n        \"|default|try|catch|finally|switch|synchronized|return|throw|break|continue|assert\" +\n        \"|modify|static|public|protected|private|abstract|native|transient|volatile\" +\n        \"|strictfp|throws|interface|enum|implements|type|window|trait|no-loop|str\"\n      );\n\n      var langClasses = (\n          \"AbstractMethodError|AssertionError|ClassCircularityError|\"+\n          \"ClassFormatError|Deprecated|EnumConstantNotPresentException|\"+\n          \"ExceptionInInitializerError|IllegalAccessError|\"+\n          \"IllegalThreadStateException|InstantiationError|InternalError|\"+\n          \"NegativeArraySizeException|NoSuchFieldError|Override|Process|\"+\n          \"ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|\"+\n          \"SuppressWarnings|TypeNotPresentException|UnknownError|\"+\n          \"UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|\"+\n          \"InstantiationException|IndexOutOfBoundsException|\"+\n          \"ArrayIndexOutOfBoundsException|CloneNotSupportedException|\"+\n          \"NoSuchFieldException|IllegalArgumentException|NumberFormatException|\"+\n          \"SecurityException|Void|InheritableThreadLocal|IllegalStateException|\"+\n          \"InterruptedException|NoSuchMethodException|IllegalAccessException|\"+\n          \"UnsupportedOperationException|Enum|StrictMath|Package|Compiler|\"+\n          \"Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|\"+\n          \"NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|\"+\n          \"NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|\"+\n          \"Character|Boolean|StackTraceElement|Appendable|StringBuffer|\"+\n          \"Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|\"+\n          \"StackOverflowError|OutOfMemoryError|VirtualMachineError|\"+\n          \"ArrayStoreException|ClassCastException|LinkageError|\"+\n          \"NoClassDefFoundError|ClassNotFoundException|RuntimeException|\"+\n          \"Exception|ThreadDeath|Error|Throwable|System|ClassLoader|\"+\n          \"Cloneable|Class|CharSequence|Comparable|String|Object\"\n      );\n\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\": \"this\",\n        \"keyword\": keywords,\n        \"constant.language\": \"null\",\n        \"support.class\" : langClasses,\n        \"support.function\" : \"retract|update|modify|insert\"\n    }, \"identifier\");\n\n    var stringRules = function() {\n      return [{\n        token : \"string\", // single line\n        regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n      }, {\n        token : \"string\", // single line\n        regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n      }];\n    };\n\n\n      var basicPreRules = function(blockCommentRules) {\n        return [{\n            token : \"comment\",\n            regex : \"\\\\/\\\\/.*$\"\n        },\n        DocCommentHighlightRules.getStartRule(\"doc-start\"),\n        {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            next : blockCommentRules\n        }, {\n            token : \"constant.numeric\", // hex\n            regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n        }, {\n            token : \"constant.numeric\", // float\n            regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n        }, {\n            token : \"constant.language.boolean\",\n            regex : \"(?:true|false)\\\\b\"\n          }];\n      };\n\n      var blockCommentRules = function(returnRule) {\n        return [\n            {\n                token : \"comment.block\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : returnRule\n            }, {\n                token : \"comment.block\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ];\n      }\n\n      var basicPostRules = function() {\n        return [{\n            token : keywordMapper,\n            regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n        }, {\n            token : \"keyword.operator\",\n            regex : \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n        }, {\n            token : \"lparen\",\n            regex : \"[[({]\"\n        }, {\n            token : \"rparen\",\n            regex : \"[\\\\])}]\"\n        }, {\n            token : \"text\",\n            regex : \"\\\\s+\"\n        }];\n      };\n\n\n    this.$rules = {\n        \"start\" : [].concat(basicPreRules(\"block.comment\"), [\n              {\n                token : \"entity.name.type\",\n                regex : \"@[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n              }, {\n                token : [\"keyword\",\"text\",\"entity.name.type\"],\n                regex : \"(package)(\\\\s+)(\" + packageIdentifierRe +\")\"\n              }, {\n                token : [\"keyword\",\"text\",\"keyword\",\"text\",\"entity.name.type\"],\n                regex : \"(import)(\\\\s+)(function)(\\\\s+)(\" + packageIdentifierRe +\")\"\n              }, {\n                token : [\"keyword\",\"text\",\"entity.name.type\"],\n                regex : \"(import)(\\\\s+)(\" + packageIdentifierRe +\")\"\n              }, {\n                token : [\"keyword\",\"text\",\"entity.name.type\",\"text\",\"variable\"],\n                regex : \"(global)(\\\\s+)(\" + packageIdentifierRe +\")(\\\\s+)(\" + identifierRe +\")\"\n              }, {\n                token : [\"keyword\",\"text\",\"keyword\",\"text\",\"entity.name.type\"],\n                regex : \"(declare)(\\\\s+)(trait)(\\\\s+)(\" + identifierRe +\")\"\n              }, {\n                token : [\"keyword\",\"text\",\"entity.name.type\"],\n                regex : \"(declare)(\\\\s+)(\" + identifierRe +\")\"\n              }, {\n                token : [\"keyword\",\"text\",\"entity.name.type\"],\n                regex : \"(extends)(\\\\s+)(\" + packageIdentifierRe +\")\"\n              }, {\n                token : [\"keyword\",\"text\"],\n                regex : \"(rule)(\\\\s+)\",\n                next :  \"asset.name\"\n              }],\n              stringRules(),\n              [{\n                token : [\"variable.other\",\"text\",\"text\"],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)\"\n              }, {\n                token : [\"keyword\",\"text\"],\n                regex : \"(query)(\\\\s+)\",\n                next :  \"asset.name\"\n              }, {\n                token : [\"keyword\",\"text\"],\n                regex : \"(when)(\\\\s*)\"\n              }, {\n                token : [\"keyword\",\"text\"],\n                regex : \"(then)(\\\\s*)\",\n                next :  \"java-start\"\n              }, {\n                  token : \"paren.lparen\",\n                  regex : /[\\[({]/\n              }, {\n                  token : \"paren.rparen\",\n                  regex : /[\\])}]/\n              }], basicPostRules()),\n        \"block.comment\" : blockCommentRules(\"start\"),\n        \"asset.name\" : [\n            {\n                token : \"entity.name\",\n                regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n            }, {\n                token : \"entity.name\",\n                regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n            }, {\n                token : \"entity.name\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"start\"\n            }]\n    };\n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n\n    this.embedRules(JavaHighlightRules, \"java-\", [\n      {\n       token : \"support.function\",\n       regex: \"\\\\b(insert|modify|retract|update)\\\\b\"\n     }, {\n       token : \"keyword\",\n       regex: \"\\\\bend\\\\b\",\n       next  : \"start\"\n    }]);\n\n};\n\noop.inherits(DroolsHighlightRules, TextHighlightRules);\n\nexports.DroolsHighlightRules = DroolsHighlightRules;\n});\n\nace.define(\"ace/mode/folding/drools\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    this.foldingStartMarker = /\\b(rule|declare|query|when|then)\\b/; \n    this.foldingStopMarker = /\\bend\\b/;\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1]) {\n                var position = {row: row, column: line.length};\n                var iterator = new TokenIterator(session, position.row, position.column);\n                var seek = \"end\";\n                var token = iterator.getCurrentToken();\n                if (token.value == \"when\") {\n                    seek = \"then\";\n                }\n                while (token) {\n                    if (token.value == seek) { \n                        return Range.fromPoints(position ,{\n                            row: iterator.getCurrentTokenRow(),\n                            column: iterator.getCurrentTokenColumn()\n                        });\n                    }\n                    token = iterator.stepForward();\n                }\n            }\n\n        }\n    }\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/drools\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/drools_highlight_rules\",\"ace/mode/folding/drools\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar DroolsHighlightRules = require(\"./drools_highlight_rules\").DroolsHighlightRules;\nvar DroolsFoldMode = require(\"./folding/drools\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = DroolsHighlightRules;\n    this.foldingRules = new DroolsFoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"//\";\n    this.$id = \"ace/mode/drools\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-eiffel.js",
    "content": "ace.define(\"ace/mode/eiffel_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar EiffelHighlightRules = function() {\n    var keywords = \"across|agent|alias|all|attached|as|assign|attribute|check|\" +\n        \"class|convert|create|debug|deferred|detachable|do|else|elseif|end|\" +\n        \"ensure|expanded|export|external|feature|from|frozen|if|inherit|\" +\n        \"inspect|invariant|like|local|loop|not|note|obsolete|old|once|\" +\n        \"Precursor|redefine|rename|require|rescue|retry|select|separate|\" +\n        \"some|then|undefine|until|variant|when\";\n\n    var operatorKeywords = \"and|implies|or|xor\";\n\n    var languageConstants = \"Void\";\n\n    var booleanConstants = \"True|False\";\n\n    var languageVariables = \"Current|Result\";\n\n    var keywordMapper = this.createKeywordMapper({\n        \"constant.language\": languageConstants,\n        \"constant.language.boolean\": booleanConstants,\n        \"variable.language\": languageVariables,\n        \"keyword.operator\": operatorKeywords,\n        \"keyword\": keywords\n    }, \"identifier\", true);\n\n    var simpleString = /(?:[^\"%\\b\\f\\v]|%[A-DFHLNQR-V%'\"()<>]|%\\/(?:0[xX][\\da-fA-F](?:_*[\\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\\d(?:_*\\d)*)\\/)+?/;\n\n    this.$rules = {\n        \"start\": [{\n                token : \"string.quoted.other\", // Aligned-verbatim-strings (verbatim option not supported)\n                regex : /\"\\[/,\n                next: \"aligned_verbatim_string\"\n            }, {\n                token : \"string.quoted.other\", // Non-aligned-verbatim-strings (verbatim option not supported)\n                regex : /\"\\{/,\n                next: \"non-aligned_verbatim_string\"\n            }, {\n                token : \"string.quoted.double\",\n                regex : /\"(?:[^%\\b\\f\\n\\r\\v]|%[A-DFHLNQR-V%'\"()<>]|%\\/(?:0[xX][\\da-fA-F](?:_*[\\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\\d(?:_*\\d)*)\\/)*?\"/\n            }, {\n                token : \"comment.line.double-dash\",\n                regex : /--.*/\n            }, {\n                token : \"constant.character\",\n                regex : /'(?:[^%\\b\\f\\n\\r\\t\\v]|%[A-DFHLNQR-V%'\"()<>]|%\\/(?:0[xX][\\da-fA-F](?:_*[\\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\\d(?:_*\\d)*)\\/)'/\n            }, {\n                token : \"constant.numeric\", // hexa | octal | bin\n                regex : /\\b0(?:[xX][\\da-fA-F](?:_*[\\da-fA-F])*|[cC][0-7](?:_*[0-7])*|[bB][01](?:_*[01])*)\\b/\n            }, {\n                token : \"constant.numeric\",\n                regex : /(?:\\d(?:_*\\d)*)?\\.(?:(?:\\d(?:_*\\d)*)?[eE][+-]?)?\\d(?:_*\\d)*|\\d(?:_*\\d)*\\.?/\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]|<<|\\|\\(/\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]|>>|\\|\\)/\n            }, {\n                token : \"keyword.operator\", // punctuation\n                regex : /:=|->|\\.(?=\\w)|[;,:?]/\n            }, {\n                token : \"keyword.operator\",\n                regex : /\\\\\\\\|\\|\\.\\.\\||\\.\\.|\\/[~\\/]?|[><\\/]=?|[-+*^=~]/\n            }, {\n                token : function (v) {\n                    var result = keywordMapper(v);\n                    if (result === \"identifier\" && v === v.toUpperCase()) {\n                        result =  \"entity.name.type\";\n                    }\n                    return result;\n                },\n                regex : /[a-zA-Z][a-zA-Z\\d_]*\\b/\n            }, {\n                token : \"text\",\n                regex : /\\s+/\n            }\n        ],\n        \"aligned_verbatim_string\" : [{\n                token : \"string\",\n                regex : /]\"/,\n                next : \"start\"\n            }, {\n                token : \"string\",\n                regex : simpleString\n            }\n        ],\n        \"non-aligned_verbatim_string\" : [{\n                token : \"string.quoted.other\",\n                regex : /}\"/,\n                next : \"start\"\n            }, {\n                token : \"string.quoted.other\",\n                regex : simpleString\n            }\n        ]};\n};\n\noop.inherits(EiffelHighlightRules, TextHighlightRules);\n\nexports.EiffelHighlightRules = EiffelHighlightRules;\n});\n\nace.define(\"ace/mode/eiffel\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/eiffel_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar EiffelHighlightRules = require(\"./eiffel_highlight_rules\").EiffelHighlightRules;\n\nvar Mode = function() {\n    this.HighlightRules = EiffelHighlightRules;\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"--\";\n    this.$id = \"ace/mode/eiffel\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-ejs.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n    a           : 'anchor',\n    button \t    : 'form',\n    form        : 'form',\n    img         : 'image',\n    input       : 'form',\n    label       : 'form',\n    option      : 'form',\n    script      : 'script',\n    select      : 'form',\n    textarea    : 'form',\n    style       : 'style',\n    table       : 'table',\n    tbody       : 'table',\n    td          : 'table',\n    tfoot       : 'table',\n    th          : 'table',\n    tr          : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.addRules({\n        attributes: [{\n            include : \"tag_whitespace\"\n        }, {\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"[-_a-zA-Z0-9:.]+\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\",\n            push : [{\n                include: \"tag_whitespace\"\n            }, {\n                token : \"string.unquoted.attribute-value.html\",\n                regex : \"[^<>='\\\"`\\\\s]+\",\n                next : \"pop\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"pop\"\n            }]\n        }, {\n            include : \"attribute_value\"\n        }],\n        tag: [{\n            token : function(start, tag) {\n                var group = tagMap[tag];\n                return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                    \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n            },\n            regex : \"(</?)([-_a-zA-Z0-9:.]+)\",\n            next: \"tag_stuff\"\n        }],\n        tag_stuff: [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n        ]\n    });\n\n    this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"js-\", \"script\");\n\n    if (this.constructor === HtmlHighlightRules)\n        this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar propertyMap = {\n    \"background\": {\"#$0\": 1},\n    \"background-color\": {\"#$0\": 1, \"transparent\": 1, \"fixed\": 1},\n    \"background-image\": {\"url('/$0')\": 1},\n    \"background-repeat\": {\"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1},\n    \"background-position\": {\"bottom\":2, \"center\":2, \"left\":2, \"right\":2, \"top\":2, \"inherit\":2},\n    \"background-attachment\": {\"scroll\": 1, \"fixed\": 1},\n    \"background-size\": {\"cover\": 1, \"contain\": 1},\n    \"background-clip\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"background-origin\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"border\": {\"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1},\n    \"border-color\": {\"#$0\": 1},\n    \"border-style\": {\"solid\":2, \"dashed\":2, \"dotted\":2, \"double\":2, \"groove\":2, \"hidden\":2, \"inherit\":2, \"inset\":2, \"none\":2, \"outset\":2, \"ridged\":2},\n    \"border-collapse\": {\"collapse\": 1, \"separate\": 1},\n    \"bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"clear\": {\"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1},\n    \"color\": {\"#$0\": 1, \"rgb(#$00,0,0)\": 1},\n    \"cursor\": {\"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1},\n    \"display\": {\"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1},\n    \"empty-cells\": {\"show\": 1, \"hide\": 1},\n    \"float\": {\"left\": 1, \"right\": 1, \"none\": 1},\n    \"font-family\": {\"Arial\":2,\"Comic Sans MS\":2,\"Consolas\":2,\"Courier New\":2,\"Courier\":2,\"Georgia\":2,\"Monospace\":2,\"Sans-Serif\":2, \"Segoe UI\":2,\"Tahoma\":2,\"Times New Roman\":2,\"Trebuchet MS\":2,\"Verdana\": 1},\n    \"font-size\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"font-weight\": {\"bold\": 1, \"normal\": 1},\n    \"font-style\": {\"italic\": 1, \"normal\": 1},\n    \"font-variant\": {\"normal\": 1, \"small-caps\": 1},\n    \"height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"letter-spacing\": {\"normal\": 1},\n    \"line-height\": {\"normal\": 1},\n    \"list-style-type\": {\"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1},\n    \"margin\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"overflow\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-x\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-y\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"padding\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"page-break-after\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"page-break-before\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"position\": {\"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1},\n    \"right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"table-layout\": {\"fixed\": 1, \"auto\": 1},\n    \"text-decoration\": {\"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1},\n    \"text-align\": {\"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1},\n    \"text-transform\": {\"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1},\n    \"top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"vertical-align\": {\"top\": 1, \"bottom\": 1},\n    \"visibility\": {\"hidden\": 1, \"visible\": 1},\n    \"white-space\": {\"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1},\n    \"width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"word-spacing\": {\"normal\": 1},\n    \"filter\": {\"alpha(opacity=$0100)\": 1},\n\n    \"text-shadow\": {\"$02px 2px 2px #777\": 1},\n    \"text-overflow\": {\"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1},\n    \"-moz-border-radius\": 1,\n    \"-moz-border-radius-topright\": 1,\n    \"-moz-border-radius-bottomright\": 1,\n    \"-moz-border-radius-topleft\": 1,\n    \"-moz-border-radius-bottomleft\": 1,\n    \"-webkit-border-radius\": 1,\n    \"-webkit-border-top-right-radius\": 1,\n    \"-webkit-border-top-left-radius\": 1,\n    \"-webkit-border-bottom-right-radius\": 1,\n    \"-webkit-border-bottom-left-radius\": 1,\n    \"-moz-box-shadow\": 1,\n    \"-webkit-box-shadow\": 1,\n    \"transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-moz-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-webkit-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\n\nvar CssCompletions = function() {\n\n};\n\n(function() {\n\n    this.completionsDefined = false;\n\n    this.defineCompletions = function() {\n        if (document) {\n            var style = document.createElement('c').style;\n\n            for (var i in style) {\n                if (typeof style[i] !== 'string')\n                    continue;\n\n                var name = i.replace(/[A-Z]/g, function(x) {\n                    return '-' + x.toLowerCase();\n                });\n\n                if (!propertyMap.hasOwnProperty(name))\n                    propertyMap[name] = 1;\n            }\n        }\n\n        this.completionsDefined = true;\n    }\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        if (!this.completionsDefined) {\n            this.defineCompletions();\n        }\n\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (state==='ruleset'){\n            var line = session.getLine(pos.row).substr(0, pos.column);\n            if (/:[^;]+$/.test(line)) {\n                /([\\w\\-]+):[^:]*$/.test(line);\n\n                return this.getPropertyValueCompletions(state, session, pos, prefix);\n            } else {\n                return this.getPropertyCompletions(state, session, pos, prefix);\n            }\n        }\n\n        return [];\n    };\n\n    this.getPropertyCompletions = function(state, session, pos, prefix) {\n        var properties = Object.keys(propertyMap);\n        return properties.map(function(property){\n            return {\n                caption: property,\n                snippet: property + ': $0',\n                meta: \"property\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getPropertyValueCompletions = function(state, session, pos, prefix) {\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n\n        if (!property)\n            return [];\n        var values = [];\n        if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n            values = Object.keys(propertyMap[property]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"property value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(CssCompletions.prototype);\n\nexports.CssCompletions = CssCompletions;\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar CssBehaviour = function () {\n\n    this.inherit(CstyleBehaviour);\n\n    this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(cursor.row);\n                var rightChar = line.substring(cursor.column, cursor.column + 1);\n                if (rightChar === ':') {\n                    return {\n                       text: '',\n                       selection: [1, 1]\n                    }\n                }\n                if (!line.substring(cursor.column).match(/^\\s*;/)) {\n                    return {\n                       text: ':;',\n                       selection: [1, 1]\n                    }\n                }\n            }\n        }\n    });\n\n    this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && selected === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(range.start.row);\n                var rightChar = line.substring(range.end.column, range.end.column + 1);\n                if (rightChar === ';') {\n                    range.end.column ++;\n                    return range;\n                }\n            }\n        }\n    });\n\n    this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ';') {\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar === ';') {\n                return {\n                   text: '',\n                   selection: [1, 1]\n                }\n            }\n        }\n    });\n\n}\noop.inherits(CssBehaviour, CstyleBehaviour);\n\nexports.CssBehaviour = CssBehaviour;\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = CssHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CssBehaviour();\n    this.$completer = new CssCompletions();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.foldingRules = \"cStyle\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        var match = line.match(/^.*\\{\\s*$/);\n        if (match) {\n            indent += tab;\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/css\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nvar XmlBehaviour = function () {\n\n    this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '\"' || text == \"'\") {\n            var quote = text;\n            var selected = session.doc.getTextRange(editor.getSelectionRange());\n            if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n                return {\n                    text: quote + selected + quote,\n                    selection: false\n                };\n            }\n\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n                return {\n                    text: \"\",\n                    selection: [1, 1]\n                };\n            }\n\n            if (!token)\n                token = iterator.stepBackward();\n\n            if (!token)\n                return;\n\n            while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n                token = iterator.stepBackward();\n            }\n            var rightSpace = !rightChar || rightChar.match(/\\s/);\n            if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n                return {\n                    text: quote + quote,\n                    selection: [1, 1]\n                };\n            }\n        }\n    });\n\n    this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == selected) {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n\n    this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '>') {\n            var position = editor.getSelectionRange().start;\n            var iterator = new TokenIterator(session, position.row, position.column);\n            var token = iterator.getCurrentToken() || iterator.stepBackward();\n            if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n                return;\n            if (is(token, \"reference.attribute-value\"))\n                return;\n            if (is(token, \"attribute-value\")) {\n                var firstChar = token.value.charAt(0);\n                if (firstChar == '\"' || firstChar == \"'\") {\n                    var lastChar = token.value.charAt(token.value.length - 1);\n                    var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;\n                    if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)\n                        return;\n                }\n            }\n            while (!is(token, \"tag-name\")) {\n                token = iterator.stepBackward();\n                if (token.value == \"<\") {\n                    token = iterator.stepForward();\n                    break;\n                }\n            }\n\n            var tokenRow = iterator.getCurrentTokenRow();\n            var tokenColumn = iterator.getCurrentTokenColumn();\n            if (is(iterator.stepBackward(), \"end-tag-open\"))\n                return;\n\n            var element = token.value;\n            if (tokenRow == position.row)\n                element = element.substring(0, position.column - tokenColumn);\n\n            if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n                 return;\n\n            return {\n               text: \">\" + \"</\" + element + \">\",\n               selection: [1, 1]\n            };\n        }\n    });\n\n    this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == \"\\n\") {\n            var cursor = editor.getCursorPosition();\n            var line = session.getLine(cursor.row);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (token && token.type.indexOf(\"tag-close\") !== -1) {\n                if (token.value == \"/>\")\n                    return;\n                while (token && token.type.indexOf(\"tag-name\") === -1) {\n                    token = iterator.stepBackward();\n                }\n\n                if (!token) {\n                    return;\n                }\n\n                var tag = token.value;\n                var row = iterator.getCurrentTokenRow();\n                token = iterator.stepBackward();\n                if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n                    return;\n                }\n\n                if (this.voidElements && !this.voidElements[tag]) {\n                    var nextToken = session.getTokenAt(cursor.row, cursor.column+1);\n                    var line = session.getLine(row);\n                    var nextIndent = this.$getIndent(line);\n                    var indent = nextIndent + session.getTabString();\n\n                    if (nextToken && nextToken.value === \"</\") {\n                        return {\n                            text: \"\\n\" + indent + \"\\n\" + nextIndent,\n                            selection: [1, indent.length, 1, indent.length]\n                        };\n                    } else {\n                        return {\n                            text: \"\\n\" + indent\n                        };\n                    }\n                }\n            }\n        }\n    });\n\n};\n\noop.inherits(XmlBehaviour, Behaviour);\n\nexports.XmlBehaviour = XmlBehaviour;\n});\n\nace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(defaultMode, subModes) {\n    this.defaultMode = defaultMode;\n    this.subModes = subModes;\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n\n    this.$getMode = function(state) {\n        if (typeof state != \"string\") \n            state = state[0];\n        for (var key in this.subModes) {\n            if (state.indexOf(key) === 0)\n                return this.subModes[key];\n        }\n        return null;\n    };\n    \n    this.$tryMode = function(state, session, foldStyle, row) {\n        var mode = this.$getMode(state);\n        return (mode ? mode.getFoldWidget(session, foldStyle, row) : \"\");\n    };\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        return (\n            this.$tryMode(session.getState(row-1), session, foldStyle, row) ||\n            this.$tryMode(session.getState(row), session, foldStyle, row) ||\n            this.defaultMode.getFoldWidget(session, foldStyle, row)\n        );\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var mode = this.$getMode(session.getState(row-1));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.$getMode(session.getState(row));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.defaultMode;\n        \n        return mode.getFoldWidgetRange(session, foldStyle, row);\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar lang = require(\"../../lib/lang\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalEndTags) {\n    BaseFoldMode.call(this);\n    this.voidElements = voidElements || {};\n    this.optionalEndTags = oop.mixin({}, this.voidElements);\n    if (optionalEndTags)\n        oop.mixin(this.optionalEndTags, optionalEndTags);\n    \n};\noop.inherits(FoldMode, BaseFoldMode);\n\nvar Tag = function() {\n    this.tagName = \"\";\n    this.closing = false;\n    this.selfClosing = false;\n    this.start = {row: 0, column: 0};\n    this.end = {row: 0, column: 0};\n};\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\n(function() {\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var tag = this._getFirstTagInLine(session, row);\n\n        if (!tag)\n            return \"\";\n\n        if (tag.closing || (!tag.tagName && tag.selfClosing))\n            return foldStyle == \"markbeginend\" ? \"end\" : \"\";\n\n        if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n            return \"\";\n\n        if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n            return \"\";\n\n        return \"start\";\n    };\n    this._getFirstTagInLine = function(session, row) {\n        var tokens = session.getTokens(row);\n        var tag = new Tag();\n\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            if (is(token, \"tag-open\")) {\n                tag.end.column = tag.start.column + token.value.length;\n                tag.closing = is(token, \"end-tag-open\");\n                token = tokens[++i];\n                if (!token)\n                    return null;\n                tag.tagName = token.value;\n                tag.end.column += token.value.length;\n                for (i++; i < tokens.length; i++) {\n                    token = tokens[i];\n                    tag.end.column += token.value.length;\n                    if (is(token, \"tag-close\")) {\n                        tag.selfClosing = token.value == '/>';\n                        break;\n                    }\n                }\n                return tag;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == '/>';\n                return tag;\n            }\n            tag.start.column += token.value.length;\n        }\n\n        return null;\n    };\n\n    this._findEndTagInLine = function(session, row, tagName, startColumn) {\n        var tokens = session.getTokens(row);\n        var column = 0;\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            column += token.value.length;\n            if (column < startColumn)\n                continue;\n            if (is(token, \"end-tag-open\")) {\n                token = tokens[i + 1];\n                if (token && token.value == tagName)\n                    return true;\n            }\n        }\n        return false;\n    };\n    this._readTagForward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n                iterator.stepForward();\n                return tag;\n            }\n        } while(token = iterator.stepForward());\n\n        return null;\n    };\n    \n    this._readTagBackward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n                iterator.stepBackward();\n                return tag;\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n            }\n        } while(token = iterator.stepBackward());\n\n        return null;\n    };\n    \n    this._pop = function(stack, tag) {\n        while (stack.length) {\n            \n            var top = stack[stack.length-1];\n            if (!tag || top.tagName == tag.tagName) {\n                return stack.pop();\n            }\n            else if (this.optionalEndTags.hasOwnProperty(top.tagName)) {\n                stack.pop();\n                continue;\n            } else {\n                return null;\n            }\n        }\n    };\n    \n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var firstTag = this._getFirstTagInLine(session, row);\n        \n        if (!firstTag)\n            return null;\n        \n        var isBackward = firstTag.closing || firstTag.selfClosing;\n        var stack = [];\n        var tag;\n        \n        if (!isBackward) {\n            var iterator = new TokenIterator(session, row, firstTag.start.column);\n            var start = {\n                row: row,\n                column: firstTag.start.column + firstTag.tagName.length + 2\n            };\n            if (firstTag.start.row == firstTag.end.row)\n                start.column = firstTag.end.column;\n            while (tag = this._readTagForward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0)\n                        return Range.fromPoints(start, tag.start);\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        else {\n            var iterator = new TokenIterator(session, row, firstTag.end.column);\n            var end = {\n                row: row,\n                column: firstTag.start.column\n            };\n            \n            while (tag = this._readTagBackward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (!tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0) {\n                        tag.start.column += tag.tagName.length + 2;\n                        if (tag.start.row == tag.end.row && tag.start.column < tag.end.column)\n                            tag.start.column = tag.end.column;\n                        return Range.fromPoints(tag.start, end);\n                    }\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        \n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar MixedFoldMode = require(\"./mixed\").FoldMode;\nvar XmlFoldMode = require(\"./xml\").FoldMode;\nvar CStyleFoldMode = require(\"./cstyle\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalTags) {\n    MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), {\n        \"js-\": new CStyleFoldMode(),\n        \"css-\": new CStyleFoldMode()\n    });\n};\n\noop.inherits(FoldMode, MixedFoldMode);\n\n});\n\nace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\n\nvar commonAttributes = [\n    \"accesskey\",\n    \"class\",\n    \"contenteditable\",\n    \"contextmenu\",\n    \"dir\",\n    \"draggable\",\n    \"dropzone\",\n    \"hidden\",\n    \"id\",\n    \"inert\",\n    \"itemid\",\n    \"itemprop\",\n    \"itemref\",\n    \"itemscope\",\n    \"itemtype\",\n    \"lang\",\n    \"spellcheck\",\n    \"style\",\n    \"tabindex\",\n    \"title\",\n    \"translate\"\n];\n\nvar eventAttributes = [\n    \"onabort\",\n    \"onblur\",\n    \"oncancel\",\n    \"oncanplay\",\n    \"oncanplaythrough\",\n    \"onchange\",\n    \"onclick\",\n    \"onclose\",\n    \"oncontextmenu\",\n    \"oncuechange\",\n    \"ondblclick\",\n    \"ondrag\",\n    \"ondragend\",\n    \"ondragenter\",\n    \"ondragleave\",\n    \"ondragover\",\n    \"ondragstart\",\n    \"ondrop\",\n    \"ondurationchange\",\n    \"onemptied\",\n    \"onended\",\n    \"onerror\",\n    \"onfocus\",\n    \"oninput\",\n    \"oninvalid\",\n    \"onkeydown\",\n    \"onkeypress\",\n    \"onkeyup\",\n    \"onload\",\n    \"onloadeddata\",\n    \"onloadedmetadata\",\n    \"onloadstart\",\n    \"onmousedown\",\n    \"onmousemove\",\n    \"onmouseout\",\n    \"onmouseover\",\n    \"onmouseup\",\n    \"onmousewheel\",\n    \"onpause\",\n    \"onplay\",\n    \"onplaying\",\n    \"onprogress\",\n    \"onratechange\",\n    \"onreset\",\n    \"onscroll\",\n    \"onseeked\",\n    \"onseeking\",\n    \"onselect\",\n    \"onshow\",\n    \"onstalled\",\n    \"onsubmit\",\n    \"onsuspend\",\n    \"ontimeupdate\",\n    \"onvolumechange\",\n    \"onwaiting\"\n];\n\nvar globalAttributes = commonAttributes.concat(eventAttributes);\n\nvar attributeMap = {\n    \"html\": {\"manifest\": 1},\n    \"head\": {},\n    \"title\": {},\n    \"base\": {\"href\": 1, \"target\": 1},\n    \"link\": {\"href\": 1, \"hreflang\": 1, \"rel\": {\"stylesheet\": 1, \"icon\": 1}, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"type\": {\"text/css\": 1, \"image/png\": 1, \"image/jpeg\": 1, \"image/gif\": 1}, \"sizes\": 1},\n    \"meta\": {\"http-equiv\": {\"content-type\": 1}, \"name\": {\"description\": 1, \"keywords\": 1}, \"content\": {\"text/html; charset=UTF-8\": 1}, \"charset\": 1},\n    \"style\": {\"type\": 1, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"scoped\": 1},\n    \"script\": {\"charset\": 1, \"type\": {\"text/javascript\": 1}, \"src\": 1, \"defer\": 1, \"async\": 1},\n    \"noscript\": {\"href\": 1},\n    \"body\": {\"onafterprint\": 1, \"onbeforeprint\": 1, \"onbeforeunload\": 1, \"onhashchange\": 1, \"onmessage\": 1, \"onoffline\": 1, \"onpopstate\": 1, \"onredo\": 1, \"onresize\": 1, \"onstorage\": 1, \"onundo\": 1, \"onunload\": 1},\n    \"section\": {},\n    \"nav\": {},\n    \"article\": {\"pubdate\": 1},\n    \"aside\": {},\n    \"h1\": {},\n    \"h2\": {},\n    \"h3\": {},\n    \"h4\": {},\n    \"h5\": {},\n    \"h6\": {},\n    \"header\": {},\n    \"footer\": {},\n    \"address\": {},\n    \"main\": {},\n    \"p\": {},\n    \"hr\": {},\n    \"pre\": {},\n    \"blockquote\": {\"cite\": 1},\n    \"ol\": {\"start\": 1, \"reversed\": 1},\n    \"ul\": {},\n    \"li\": {\"value\": 1},\n    \"dl\": {},\n    \"dt\": {},\n    \"dd\": {},\n    \"figure\": {},\n    \"figcaption\": {},\n    \"div\": {},\n    \"a\": {\"href\": 1, \"target\": {\"_blank\": 1, \"top\": 1}, \"ping\": 1, \"rel\": {\"nofollow\": 1, \"alternate\": 1, \"author\": 1, \"bookmark\": 1, \"help\": 1, \"license\": 1, \"next\": 1, \"noreferrer\": 1, \"prefetch\": 1, \"prev\": 1, \"search\": 1, \"tag\": 1}, \"media\": 1, \"hreflang\": 1, \"type\": 1},\n    \"em\": {},\n    \"strong\": {},\n    \"small\": {},\n    \"s\": {},\n    \"cite\": {},\n    \"q\": {\"cite\": 1},\n    \"dfn\": {},\n    \"abbr\": {},\n    \"data\": {},\n    \"time\": {\"datetime\": 1},\n    \"code\": {},\n    \"var\": {},\n    \"samp\": {},\n    \"kbd\": {},\n    \"sub\": {},\n    \"sup\": {},\n    \"i\": {},\n    \"b\": {},\n    \"u\": {},\n    \"mark\": {},\n    \"ruby\": {},\n    \"rt\": {},\n    \"rp\": {},\n    \"bdi\": {},\n    \"bdo\": {},\n    \"span\": {},\n    \"br\": {},\n    \"wbr\": {},\n    \"ins\": {\"cite\": 1, \"datetime\": 1},\n    \"del\": {\"cite\": 1, \"datetime\": 1},\n    \"img\": {\"alt\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"usemap\": 1, \"ismap\": 1},\n    \"iframe\": {\"name\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"sandbox\": {\"allow-same-origin\": 1, \"allow-top-navigation\": 1, \"allow-forms\": 1, \"allow-scripts\": 1}, \"seamless\": {\"seamless\": 1}},\n    \"embed\": {\"src\": 1, \"height\": 1, \"width\": 1, \"type\": 1},\n    \"object\": {\"param\": 1, \"data\": 1, \"type\": 1, \"height\" : 1, \"width\": 1, \"usemap\": 1, \"name\": 1, \"form\": 1, \"classid\": 1},\n    \"param\": {\"name\": 1, \"value\": 1},\n    \"video\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"width\": 1, \"height\": 1, \"poster\": 1, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1}},\n    \"audio\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1 }},\n    \"source\": {\"src\": 1, \"type\": 1, \"media\": 1},\n    \"track\": {\"kind\": 1, \"src\": 1, \"srclang\": 1, \"label\": 1, \"default\": 1},\n    \"canvas\": {\"width\": 1, \"height\": 1},\n    \"map\": {\"name\": 1},\n    \"area\": {\"shape\": 1, \"coords\": 1, \"href\": 1, \"hreflang\": 1, \"alt\": 1, \"target\": 1, \"media\": 1, \"rel\": 1, \"ping\": 1, \"type\": 1},\n    \"svg\": {},\n    \"math\": {},\n    \"table\": {\"summary\": 1},\n    \"caption\": {},\n    \"colgroup\": {\"span\": 1},\n    \"col\": {\"span\": 1},\n    \"tbody\": {},\n    \"thead\": {},\n    \"tfoot\": {},\n    \"tr\": {},\n    \"td\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1},\n    \"th\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1, \"scope\": 1},\n    \"form\": {\"accept-charset\": 1, \"action\": 1, \"autocomplete\": 1, \"enctype\": {\"multipart/form-data\": 1, \"application/x-www-form-urlencoded\": 1}, \"method\": {\"get\": 1, \"post\": 1}, \"name\": 1, \"novalidate\": 1, \"target\": {\"_blank\": 1, \"top\": 1}},\n    \"fieldset\": {\"disabled\": 1, \"form\": 1, \"name\": 1},\n    \"legend\": {},\n    \"label\": {\"form\": 1, \"for\": 1},\n    \"input\": {\n        \"type\": {\"text\": 1, \"password\": 1, \"hidden\": 1, \"checkbox\": 1, \"submit\": 1, \"radio\": 1, \"file\": 1, \"button\": 1, \"reset\": 1, \"image\": 31, \"color\": 1, \"date\": 1, \"datetime\": 1, \"datetime-local\": 1, \"email\": 1, \"month\": 1, \"number\": 1, \"range\": 1, \"search\": 1, \"tel\": 1, \"time\": 1, \"url\": 1, \"week\": 1},\n        \"accept\": 1, \"alt\": 1, \"autocomplete\": {\"on\": 1, \"off\": 1}, \"autofocus\": {\"autofocus\": 1}, \"checked\": {\"checked\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": {\"application/x-www-form-urlencoded\": 1, \"multipart/form-data\": 1, \"text/plain\": 1}, \"formmethod\": {\"get\": 1, \"post\": 1}, \"formnovalidate\": {\"formnovalidate\": 1}, \"formtarget\": {\"_blank\": 1, \"_self\": 1, \"_parent\": 1, \"_top\": 1}, \"height\": 1, \"list\": 1, \"max\": 1, \"maxlength\": 1, \"min\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"pattern\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"size\": 1, \"src\": 1, \"step\": 1, \"width\": 1, \"files\": 1, \"value\": 1},\n    \"button\": {\"autofocus\": 1, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": 1, \"formmethod\": 1, \"formnovalidate\": 1, \"formtarget\": 1, \"name\": 1, \"value\": 1, \"type\": {\"button\": 1, \"submit\": 1}},\n    \"select\": {\"autofocus\": 1, \"disabled\": 1, \"form\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"size\": 1, \"readonly\":{\"readonly\": 1}},\n    \"datalist\": {},\n    \"optgroup\": {\"disabled\": 1, \"label\": 1},\n    \"option\": {\"disabled\": 1, \"selected\": 1, \"label\": 1, \"value\": 1},\n    \"textarea\": {\"autofocus\": {\"autofocus\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"maxlength\": 1, \"name\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"rows\": 1, \"cols\": 1, \"wrap\": {\"on\": 1, \"off\": 1, \"hard\": 1, \"soft\": 1}},\n    \"keygen\": {\"autofocus\": 1, \"challenge\": {\"challenge\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"keytype\": {\"rsa\": 1, \"dsa\": 1, \"ec\": 1}, \"name\": 1},\n    \"output\": {\"for\": 1, \"form\": 1, \"name\": 1},\n    \"progress\": {\"value\": 1, \"max\": 1},\n    \"meter\": {\"value\": 1, \"min\": 1, \"max\": 1, \"low\": 1, \"high\": 1, \"optimum\": 1},\n    \"details\": {\"open\": 1},\n    \"summary\": {},\n    \"command\": {\"type\": 1, \"label\": 1, \"icon\": 1, \"disabled\": 1, \"checked\": 1, \"radiogroup\": 1, \"command\": 1},\n    \"menu\": {\"type\": 1, \"label\": 1},\n    \"dialog\": {\"open\": 1}\n};\n\nvar elements = Object.keys(attributeMap);\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nfunction findTagName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"tag-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nfunction findAttributeName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"attribute-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nvar HtmlCompletions = function() {\n\n};\n\n(function() {\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (is(token, \"tag-name\") || is(token, \"tag-open\") || is(token, \"end-tag-open\"))\n            return this.getTagCompletions(state, session, pos, prefix);\n        if (is(token, \"tag-whitespace\") || is(token, \"attribute-name\"))\n            return this.getAttributeCompletions(state, session, pos, prefix);\n        if (is(token, \"attribute-value\"))\n            return this.getAttributeValueCompletions(state, session, pos, prefix);\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        if (/&[a-z]*$/i.test(line))\n            return this.getHTMLEntityCompletions(state, session, pos, prefix);\n\n        return [];\n    };\n\n    this.getTagCompletions = function(state, session, pos, prefix) {\n        return elements.map(function(element){\n            return {\n                value: element,\n                meta: \"tag\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        if (!tagName)\n            return [];\n        var attributes = globalAttributes;\n        if (tagName in attributeMap) {\n            attributes = attributes.concat(Object.keys(attributeMap[tagName]));\n        }\n        return attributes.map(function(attribute){\n            return {\n                caption: attribute,\n                snippet: attribute + '=\"$0\"',\n                meta: \"attribute\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeValueCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        var attributeName = findAttributeName(session, pos);\n        \n        if (!tagName)\n            return [];\n        var values = [];\n        if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === \"object\") {\n            values = Object.keys(attributeMap[tagName][attributeName]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"attribute value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getHTMLEntityCompletions = function(state, session, pos, prefix) {\n        var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;'];\n\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"html entity\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(HtmlCompletions.prototype);\n\nexports.HtmlCompletions = HtmlCompletions;\n});\n\nace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar CssMode = require(\"./css\").Mode;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar HtmlFoldMode = require(\"./folding/html\").FoldMode;\nvar HtmlCompletions = require(\"./html_completions\").HtmlCompletions;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar voidElements = [\"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"menuitem\", \"param\", \"source\", \"track\", \"wbr\"];\nvar optionalEndTags = [\"li\", \"dt\", \"dd\", \"p\", \"rt\", \"rp\", \"optgroup\", \"option\", \"colgroup\", \"td\", \"th\"];\n\nvar Mode = function(options) {\n    this.fragmentContext = options && options.fragmentContext;\n    this.HighlightRules = HtmlHighlightRules;\n    this.$behaviour = new XmlBehaviour();\n    this.$completer = new HtmlCompletions();\n    \n    this.createModeDelegates({\n        \"js-\": JavaScriptMode,\n        \"css-\": CssMode\n    });\n    \n    this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags));\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.blockComment = {start: \"<!--\", end: \"-->\"};\n\n    this.voidElements = lang.arrayToMap(voidElements);\n\n    this.getNextLineIndent = function(state, line, tab) {\n        return this.$getIndent(line);\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return false;\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        if (this.constructor != Mode)\n            return;\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/html_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        if (this.fragmentContext)\n            worker.call(\"setOptions\", [{context: this.fragmentContext}]);\n\n        worker.on(\"error\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/html\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/ruby_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar constantOtherSymbol = exports.constantOtherSymbol = {\n    token : \"constant.other.symbol.ruby\", // symbol\n    regex : \"[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?\"\n};\n\nvar qString = exports.qString = {\n    token : \"string\", // single line\n    regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n};\n\nvar qqString = exports.qqString = {\n    token : \"string\", // single line\n    regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n};\n\nvar tString = exports.tString = {\n    token : \"string\", // backtick string\n    regex : \"[`](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[`]\"\n};\n\nvar constantNumericHex = exports.constantNumericHex = {\n    token : \"constant.numeric\", // hex\n    regex : \"0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\\\b\"\n};\n\nvar constantNumericFloat = exports.constantNumericFloat = {\n    token : \"constant.numeric\", // float\n    regex : \"[+-]?\\\\d(?:\\\\d|_(?=\\\\d))*(?:(?:\\\\.\\\\d(?:\\\\d|_(?=\\\\d))*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n};\n\nvar RubyHighlightRules = function() {\n\n    var builtinFunctions = (\n        \"abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|\" +\n        \"assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|\" +\n        \"assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|\" +\n        \"assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|\" +\n        \"assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|\" +\n        \"assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|\" +\n        \"attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|\" +\n        \"caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|\" +\n        \"exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|\" +\n        \"gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|\" +\n        \"link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|\" +\n        \"p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|\" +\n        \"raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|\" +\n        \"set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|\" +\n        \"throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|\" +\n        \"render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|\" +\n        \"content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|\" +\n        \"fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|\" +\n        \"time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|\" +\n        \"select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|\" +\n        \"file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|\" +\n        \"protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|\" +\n        \"send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|\" +\n        \"validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|\" +\n        \"validates_inclusion_of|validates_numericality_of|validates_with|validates_each|\" +\n        \"authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|\" +\n        \"filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|\" +\n        \"translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|\" +\n        \"cache|expire_fragment|expire_cache_for|observe|cache_sweeper|\" +\n        \"has_many|has_one|belongs_to|has_and_belongs_to_many\"\n    );\n\n    var keywords = (\n        \"alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|\" +\n        \"__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|\" +\n        \"redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield\"\n    );\n\n    var buildinConstants = (\n        \"true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|\" +\n        \"RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING\"\n    );\n\n    var builtinVariables = (\n        \"$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|\" +\n        \"$!|root_url|flash|session|cookies|params|request|response|logger|self\"\n    );\n\n    var keywordMapper = this.$keywords = this.createKeywordMapper({\n        \"keyword\": keywords,\n        \"constant.language\": buildinConstants,\n        \"variable.language\": builtinVariables,\n        \"support.function\": builtinFunctions,\n        \"invalid.deprecated\": \"debugger\" // TODO is this a remnant from js mode?\n    }, \"identifier\");\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"#.*$\"\n            }, {\n                token : \"comment\", // multi line comment\n                regex : \"^=begin(?:$|\\\\s.*$)\",\n                next : \"comment\"\n            }, {\n                token : \"string.regexp\",\n                regex : \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"\n            },\n\n            [{\n                regex: \"[{}]\", onMatch: function(val, state, stack) {\n                    this.next = val == \"{\" ? this.nextState : \"\";\n                    if (val == \"{\" && stack.length) {\n                        stack.unshift(\"start\", state);\n                        return \"paren.lparen\";\n                    }\n                    if (val == \"}\" && stack.length) {\n                        stack.shift();\n                        this.next = stack.shift();\n                        if (this.next.indexOf(\"string\") != -1)\n                            return \"paren.end\";\n                    }\n                    return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n                },\n                nextState: \"start\"\n            }, {\n                token : \"string.start\",\n                regex : /\"/,\n                push  : [{\n                    token : \"constant.language.escape\",\n                    regex : /\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/\n                }, {\n                    token : \"paren.start\",\n                    regex : /#{/,\n                    push  : \"start\"\n                }, {\n                    token : \"string.end\",\n                    regex : /\"/,\n                    next  : \"pop\"\n                }, {\n                    defaultToken: \"string\"\n                }]\n            }, {\n                token : \"string.start\",\n                regex : /`/,\n                push  : [{\n                    token : \"constant.language.escape\",\n                    regex : /\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/\n                }, {\n                    token : \"paren.start\",\n                    regex : /#{/,\n                    push  : \"start\"\n                }, {\n                    token : \"string.end\",\n                    regex : /`/,\n                    next  : \"pop\"\n                }, {\n                    defaultToken: \"string\"\n                }]\n            }, {\n                token : \"string.start\",\n                regex : /'/,\n                push  : [{\n                    token : \"constant.language.escape\",\n                    regex : /\\\\['\\\\]/\n                },  {\n                    token : \"string.end\",\n                    regex : /'/,\n                    next  : \"pop\"\n                }, {\n                    defaultToken: \"string\"\n                }]\n            }],\n\n            {\n                token : \"text\", // namespaces aren't symbols\n                regex : \"::\"\n            }, {\n                token : \"variable.instance\", // instance variable\n                regex : \"@{1,2}[a-zA-Z_\\\\d]+\"\n            }, {\n                token : \"support.class\", // class name\n                regex : \"[A-Z][a-zA-Z_\\\\d]+\"\n            },\n\n            constantOtherSymbol,\n            constantNumericHex,\n            constantNumericFloat,\n\n            {\n                token : \"constant.language.boolean\",\n                regex : \"(?:true|false)\\\\b\"\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n            }, {\n                token : \"punctuation.separator.key-value\",\n                regex : \"=>\"\n            }, {\n                stateName: \"heredoc\",\n                onMatch : function(value, currentState, stack) {\n                    var next = value[2] == '-' ? \"indentedHeredoc\" : \"heredoc\";\n                    var tokens = value.split(this.splitRegex);\n                    stack.push(next, tokens[3]);\n                    return [\n                        {type:\"constant\", value: tokens[1]},\n                        {type:\"string\", value: tokens[2]},\n                        {type:\"support.class\", value: tokens[3]},\n                        {type:\"string\", value: tokens[4]}\n                    ];\n                },\n                regex : \"(<<-?)(['\\\"`]?)([\\\\w]+)(['\\\"`]?)\",\n                rules: {\n                    heredoc: [{\n                        onMatch:  function(value, currentState, stack) {\n                            if (value === stack[1]) {\n                                stack.shift();\n                                stack.shift();\n                                this.next = stack[0] || \"start\";\n                                return \"support.class\";\n                            }\n                            this.next = \"\";\n                            return \"string\";\n                        },\n                        regex: \".*$\",\n                        next: \"start\"\n                    }],\n                    indentedHeredoc: [{\n                        token: \"string\",\n                        regex: \"^ +\"\n                    }, {\n                        onMatch:  function(value, currentState, stack) {\n                            if (value === stack[1]) {\n                                stack.shift();\n                                stack.shift();\n                                this.next = stack[0] || \"start\";\n                                return \"support.class\";\n                            }\n                            this.next = \"\";\n                            return \"string\";\n                        },\n                        regex: \".*$\",\n                        next: \"start\"\n                    }]\n                }\n            }, {\n                regex : \"$\",\n                token : \"empty\",\n                next : function(currentState, stack) {\n                    if (stack[0] === \"heredoc\" || stack[0] === \"indentedHeredoc\")\n                        return stack[0];\n                    return currentState;\n                }\n            }, {\n               token : \"string.character\",\n               regex : \"\\\\B\\\\?.\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \"^=end(?:$|\\\\s.*$)\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(RubyHighlightRules, TextHighlightRules);\n\nexports.RubyHighlightRules = RubyHighlightRules;\n});\n\nace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var range = this.indentationBlock(session, row);\n        if (range)\n            return range;\n\n        var re = /\\S/;\n        var line = session.getLine(row);\n        var startLevel = line.search(re);\n        if (startLevel == -1 || line[startLevel] != \"#\")\n            return;\n\n        var startColumn = line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var level = line.search(re);\n\n            if (level == -1)\n                continue;\n\n            if (line[level] != \"#\")\n                break;\n\n            endRow = row;\n        }\n\n        if (endRow > startRow) {\n            var endColumn = session.getLine(endRow).length;\n            return new Range(startRow, startColumn, endRow, endColumn);\n        }\n    };\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var indent = line.search(/\\S/);\n        var next = session.getLine(row + 1);\n        var prev = session.getLine(row - 1);\n        var prevIndent = prev.search(/\\S/);\n        var nextIndent = next.search(/\\S/);\n\n        if (indent == -1) {\n            session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n            return \"\";\n        }\n        if (prevIndent == -1) {\n            if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n                session.foldWidgets[row - 1] = \"\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"start\";\n            }\n        } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n            if (session.getLine(row - 2).search(/\\S/) == -1) {\n                session.foldWidgets[row - 1] = \"start\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"\";\n            }\n        }\n\n        if (prevIndent!= -1 && prevIndent < indent)\n            session.foldWidgets[row - 1] = \"start\";\n        else\n            session.foldWidgets[row - 1] = \"\";\n\n        if (indent < nextIndent)\n            return \"start\";\n        else\n            return \"\";\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/ruby\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ruby_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/coffee\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar RubyHighlightRules = require(\"./ruby_highlight_rules\").RubyHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar Range = require(\"../range\").Range;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar FoldMode = require(\"./folding/coffee\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = RubyHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new FoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n\n    this.lineCommentStart = \"#\";\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n            var startingClassOrMethod = line.match(/^\\s*(class|def|module)\\s.*$/);\n            var startingDoBlock = line.match(/.*do(\\s*|\\s+\\|.*\\|\\s*)$/);\n            var startingConditional = line.match(/^\\s*(if|else|when)\\s*/)\n            if (match || startingClassOrMethod || startingDoBlock || startingConditional) {\n                indent += tab;\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return /^\\s+(end|else)$/.test(line + input) || this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, session, row) {\n        var line = session.getLine(row);\n        if (/}/.test(line))\n            return this.$outdent.autoOutdent(session, row);\n        var indent = this.$getIndent(line);\n        var prevLine = session.getLine(row - 1);\n        var prevIndent = this.$getIndent(prevLine);\n        var tab = session.getTabString();\n        if (prevIndent.length <= indent.length) {\n            if (indent.slice(-tab.length) == tab)\n                session.remove(new Range(row, indent.length-tab.length, row, indent.length));\n        }\n    };\n\n    this.$id = \"ace/mode/ruby\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/ejs\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/ruby\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\n\nvar EjsHighlightRules = function(start, end) {\n    HtmlHighlightRules.call(this);\n    \n    if (!start)\n        start = \"(?:<%|<\\\\?|{{)\";\n    if (!end)\n        end = \"(?:%>|\\\\?>|}})\";\n\n    for (var i in this.$rules) {\n        this.$rules[i].unshift({\n            token : \"markup.list.meta.tag\",\n            regex : start + \"(?![>}])[-=]?\",\n            push  : \"ejs-start\"\n        });\n    }\n    \n    this.embedRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"ejs-\", [{\n        token : \"markup.list.meta.tag\",\n        regex : \"-?\" + end,\n        next  : \"pop\"\n    }, {\n        token: \"comment\",\n        regex: \"//.*?\" + end,\n        next: \"pop\"\n    }]);\n    \n    this.normalizeRules();\n};\n\n\noop.inherits(EjsHighlightRules, HtmlHighlightRules);\n\nexports.EjsHighlightRules = EjsHighlightRules;\n\n\nvar oop = require(\"../lib/oop\");\nvar HtmlMode = require(\"./html\").Mode;\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar CssMode = require(\"./css\").Mode;\nvar RubyMode = require(\"./ruby\").Mode;\n\nvar Mode = function() {\n    HtmlMode.call(this);\n    this.HighlightRules = EjsHighlightRules;    \n    this.createModeDelegates({\n        \"js-\": JavaScriptMode,\n        \"css-\": CssMode,\n        \"ejs-\": JavaScriptMode\n    });\n};\noop.inherits(Mode, HtmlMode);\n\n(function() {\n\n    this.$id = \"ace/mode/ejs\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-elixir.js",
    "content": "ace.define(\"ace/mode/elixir_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar ElixirHighlightRules = function() {\n\n    this.$rules = { start: \n       [ { token: \n            [ 'meta.module.elixir',\n              'keyword.control.module.elixir',\n              'meta.module.elixir',\n              'entity.name.type.module.elixir' ],\n           regex: '^(\\\\s*)(defmodule)(\\\\s+)((?:[A-Z]\\\\w*\\\\s*\\\\.\\\\s*)*[A-Z]\\\\w*)' },\n         { token: 'comment.documentation.heredoc',\n           regex: '@(?:module|type)?doc (?:~[a-z])?\"\"\"',\n           push: \n            [ { token: 'comment.documentation.heredoc',\n                regex: '\\\\s*\"\"\"',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'comment.documentation.heredoc' } ],\n           comment: '@doc with heredocs is treated as documentation' },\n         { token: 'comment.documentation.heredoc',\n           regex: '@(?:module|type)?doc ~[A-Z]\"\"\"',\n           push: \n            [ { token: 'comment.documentation.heredoc',\n                regex: '\\\\s*\"\"\"',\n                next: 'pop' },\n              { defaultToken: 'comment.documentation.heredoc' } ],\n           comment: '@doc with heredocs is treated as documentation' },\n         { token: 'comment.documentation.heredoc',\n           regex: '@(?:module|type)?doc (?:~[a-z])?\\'\\'\\'',\n           push: \n            [ { token: 'comment.documentation.heredoc',\n                regex: '\\\\s*\\'\\'\\'',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'comment.documentation.heredoc' } ],\n           comment: '@doc with heredocs is treated as documentation' },\n         { token: 'comment.documentation.heredoc',\n           regex: '@(?:module|type)?doc ~[A-Z]\\'\\'\\'',\n           push: \n            [ { token: 'comment.documentation.heredoc',\n                regex: '\\\\s*\\'\\'\\'',\n                next: 'pop' },\n              { defaultToken: 'comment.documentation.heredoc' } ],\n           comment: '@doc with heredocs is treated as documentation' },\n         { token: 'comment.documentation.false',\n           regex: '@(?:module|type)?doc false',\n           comment: '@doc false is treated as documentation' },\n         { token: 'comment.documentation.string',\n           regex: '@(?:module|type)?doc \"',\n           push: \n            [ { token: 'comment.documentation.string',\n                regex: '\"',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'comment.documentation.string' } ],\n           comment: '@doc with string is treated as documentation' },\n         { token: 'keyword.control.elixir',\n           regex: '\\\\b(?:do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\\\\b(?![?!])',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?<!\\\\.)\\\\b(do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\\\\b(?![?!])' },\n         { token: 'keyword.operator.elixir',\n           regex: '\\\\b(?:and|not|or|when|xor|in|inlist|inbits)\\\\b',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?<!\\\\.)\\\\b(and|not|or|when|xor|in|inlist|inbits)\\\\b',\n           comment: ' as above, just doesn\\'t need a \\'end\\' and does a logic operation' },\n         { token: 'constant.language.elixir',\n           regex: '\\\\b(?:nil|true|false)\\\\b(?![?!])' },\n         { token: 'variable.language.elixir',\n           regex: '\\\\b__(?:CALLER|ENV|MODULE|DIR)__\\\\b(?![?!])' },\n         { token: \n            [ 'punctuation.definition.variable.elixir',\n              'variable.other.readwrite.module.elixir' ],\n           regex: '(@)([a-zA-Z_]\\\\w*)' },\n         { token: \n            [ 'punctuation.definition.variable.elixir',\n              'variable.other.anonymous.elixir' ],\n           regex: '(&)(\\\\d*)' },\n         { token: 'variable.other.constant.elixir',\n           regex: '\\\\b[A-Z]\\\\w*\\\\b' },\n         { token: 'constant.numeric.elixir',\n           regex: '\\\\b(?:0x[\\\\da-fA-F](?:_?[\\\\da-fA-F])*|\\\\d(?:_?\\\\d)*(?:\\\\.(?![^[:space:][:digit:]])(?:_?\\\\d)*)?(?:[eE][-+]?\\\\d(?:_?\\\\d)*)?|0b[01]+|0o[0-7]+)\\\\b',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '\\\\b(0x\\\\h(?>_?\\\\h)*|\\\\d(?>_?\\\\d)*(\\\\.(?![^[:space:][:digit:]])(?>_?\\\\d)*)?([eE][-+]?\\\\d(?>_?\\\\d)*)?|0b[01]+|0o[0-7]+)\\\\b' },\n         { token: 'punctuation.definition.constant.elixir',\n           regex: ':\\'',\n           push: \n            [ { token: 'punctuation.definition.constant.elixir',\n                regex: '\\'',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'constant.other.symbol.single-quoted.elixir' } ] },\n         { token: 'punctuation.definition.constant.elixir',\n           regex: ':\"',\n           push: \n            [ { token: 'punctuation.definition.constant.elixir',\n                regex: '\"',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'constant.other.symbol.double-quoted.elixir' } ] },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '(?:\\'\\'\\')',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?>\\'\\'\\')',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '^\\\\s*\\'\\'\\'',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'support.function.variable.quoted.single.heredoc.elixir' } ],\n           comment: 'Single-quoted heredocs' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '\\'',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '\\'',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'support.function.variable.quoted.single.elixir' } ],\n           comment: 'single quoted string (allows for interpolation)' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '(?:\"\"\")',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?>\"\"\")',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '^\\\\s*\"\"\"',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'string.quoted.double.heredoc.elixir' } ],\n           comment: 'Double-quoted heredocs' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '\"',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '\"',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'string.quoted.double.elixir' } ],\n           comment: 'double quoted string (allows for interpolation)' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '~[a-z](?:\"\"\")',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '~[a-z](?>\"\"\")',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '^\\\\s*\"\"\"',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'string.quoted.double.heredoc.elixir' } ],\n           comment: 'Double-quoted heredocs sigils' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '~[a-z]\\\\{',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '\\\\}[a-z]*',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'string.interpolated.elixir' } ],\n           comment: 'sigil (allow for interpolation)' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '~[a-z]\\\\[',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '\\\\][a-z]*',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'string.interpolated.elixir' } ],\n           comment: 'sigil (allow for interpolation)' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '~[a-z]\\\\<',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '\\\\>[a-z]*',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'string.interpolated.elixir' } ],\n           comment: 'sigil (allow for interpolation)' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '~[a-z]\\\\(',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '\\\\)[a-z]*',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'string.interpolated.elixir' } ],\n           comment: 'sigil (allow for interpolation)' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '~[a-z][^\\\\w]',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '[^\\\\w][a-z]*',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { include: '#escaped_char' },\n              { defaultToken: 'string.interpolated.elixir' } ],\n           comment: 'sigil (allow for interpolation)' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '~[A-Z](?:\"\"\")',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '~[A-Z](?>\"\"\")',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '^\\\\s*\"\"\"',\n                next: 'pop' },\n              { defaultToken: 'string.quoted.other.literal.upper.elixir' } ],\n           comment: 'Double-quoted heredocs sigils' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '~[A-Z]\\\\{',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '\\\\}[a-z]*',\n                next: 'pop' },\n              { defaultToken: 'string.quoted.other.literal.upper.elixir' } ],\n           comment: 'sigil (without interpolation)' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '~[A-Z]\\\\[',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '\\\\][a-z]*',\n                next: 'pop' },\n              { defaultToken: 'string.quoted.other.literal.upper.elixir' } ],\n           comment: 'sigil (without interpolation)' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '~[A-Z]\\\\<',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '\\\\>[a-z]*',\n                next: 'pop' },\n              { defaultToken: 'string.quoted.other.literal.upper.elixir' } ],\n           comment: 'sigil (without interpolation)' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '~[A-Z]\\\\(',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '\\\\)[a-z]*',\n                next: 'pop' },\n              { defaultToken: 'string.quoted.other.literal.upper.elixir' } ],\n           comment: 'sigil (without interpolation)' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '~[A-Z][^\\\\w]',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '[^\\\\w][a-z]*',\n                next: 'pop' },\n              { defaultToken: 'string.quoted.other.literal.upper.elixir' } ],\n           comment: 'sigil (without interpolation)' },\n         { token: ['punctuation.definition.constant.elixir', 'constant.other.symbol.elixir'],\n           regex: '(:)([a-zA-Z_][\\\\w@]*(?:[?!]|=(?![>=]))?|\\\\<\\\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\\\-|\\\\|>|=>|~|~=|=|/|\\\\\\\\\\\\\\\\|\\\\*\\\\*?|\\\\.\\\\.?\\\\.?|>=?|<=?|&&?&?|\\\\+\\\\+?|\\\\-\\\\-?|\\\\|\\\\|?\\\\|?|\\\\!|@|\\\\%?\\\\{\\\\}|%|\\\\[\\\\]|\\\\^(?:\\\\^\\\\^)?)',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?<!:)(:)(?>[a-zA-Z_][\\\\w@]*(?>[?!]|=(?![>=]))?|\\\\<\\\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\\\-|\\\\|>|=>|~|~=|=|/|\\\\\\\\\\\\\\\\|\\\\*\\\\*?|\\\\.\\\\.?\\\\.?|>=?|<=?|&&?&?|\\\\+\\\\+?|\\\\-\\\\-?|\\\\|\\\\|?\\\\|?|\\\\!|@|\\\\%?\\\\{\\\\}|%|\\\\[\\\\]|\\\\^(\\\\^\\\\^)?)',\n           comment: 'symbols' },\n         { token: 'punctuation.definition.constant.elixir',\n           regex: '(?:[a-zA-Z_][\\\\w@]*(?:[?!])?):(?!:)',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?>[a-zA-Z_][\\\\w@]*(?>[?!])?)(:)(?!:)',\n           comment: 'symbols' },\n         { token: \n            [ 'punctuation.definition.comment.elixir',\n              'comment.line.number-sign.elixir' ],\n           regex: '(#)(.*)' },\n         { token: 'constant.numeric.elixir',\n           regex: '\\\\?(?:\\\\\\\\(?:x[\\\\da-fA-F]{1,2}(?![\\\\da-fA-F])\\\\b|[^xMC])|[^\\\\s\\\\\\\\])',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?<!\\\\w)\\\\?(\\\\\\\\(x\\\\h{1,2}(?!\\\\h)\\\\b|[^xMC])|[^\\\\s\\\\\\\\])',\n           comment: '\\n\\t\\t\\tmatches questionmark-letters.\\n\\n\\t\\t\\texamples (1st alternation = hex):\\n\\t\\t\\t?\\\\x1     ?\\\\x61\\n\\n\\t\\t\\texamples (2rd alternation = escaped):\\n\\t\\t\\t?\\\\n      ?\\\\b\\n\\n\\t\\t\\texamples (3rd alternation = normal):\\n\\t\\t\\t?a       ?A       ?0 \\n\\t\\t\\t?*       ?\"       ?( \\n\\t\\t\\t?.       ?#\\n\\t\\t\\t\\n\\t\\t\\tthe negative lookbehind prevents against matching\\n\\t\\t\\tp(42.tainted?)\\n\\t\\t\\t' },\n         { token: 'keyword.operator.assignment.augmented.elixir',\n           regex: '\\\\+=|\\\\-=|\\\\|\\\\|=|~=|&&=' },\n         { token: 'keyword.operator.comparison.elixir',\n           regex: '===?|!==?|<=?|>=?' },\n         { token: 'keyword.operator.bitwise.elixir',\n           regex: '\\\\|{3}|&{3}|\\\\^{3}|<{3}|>{3}|~{3}' },\n         { token: 'keyword.operator.logical.elixir',\n           regex: '!+|\\\\bnot\\\\b|&&|\\\\band\\\\b|\\\\|\\\\||\\\\bor\\\\b|\\\\bxor\\\\b',\n           originalRegex: '(?<=[ \\\\t])!+|\\\\bnot\\\\b|&&|\\\\band\\\\b|\\\\|\\\\||\\\\bor\\\\b|\\\\bxor\\\\b' },\n         { token: 'keyword.operator.arithmetic.elixir',\n           regex: '\\\\*|\\\\+|\\\\-|/' },\n         { token: 'keyword.operator.other.elixir',\n           regex: '\\\\||\\\\+\\\\+|\\\\-\\\\-|\\\\*\\\\*|\\\\\\\\\\\\\\\\|\\\\<\\\\-|\\\\<\\\\>|\\\\<\\\\<|\\\\>\\\\>|\\\\:\\\\:|\\\\.\\\\.|\\\\|>|~|=>' },\n         { token: 'keyword.operator.assignment.elixir', regex: '=' },\n         { token: 'punctuation.separator.other.elixir', regex: ':' },\n         { token: 'punctuation.separator.statement.elixir',\n           regex: '\\\\;' },\n         { token: 'punctuation.separator.object.elixir', regex: ',' },\n         { token: 'punctuation.separator.method.elixir', regex: '\\\\.' },\n         { token: 'punctuation.section.scope.elixir', regex: '\\\\{|\\\\}' },\n         { token: 'punctuation.section.array.elixir', regex: '\\\\[|\\\\]' },\n         { token: 'punctuation.section.function.elixir',\n           regex: '\\\\(|\\\\)' } ],\n      '#escaped_char': \n       [ { token: 'constant.character.escape.elixir',\n           regex: '\\\\\\\\(?:x[\\\\da-fA-F]{1,2}|.)' } ],\n      '#interpolated_elixir': \n       [ { token: \n            [ 'source.elixir.embedded.source',\n              'source.elixir.embedded.source.empty' ],\n           regex: '(#\\\\{)(\\\\})' },\n         { todo: \n            { token: 'punctuation.section.embedded.elixir',\n              regex: '#\\\\{',\n              push: \n               [ { token: 'punctuation.section.embedded.elixir',\n                   regex: '\\\\}',\n                   next: 'pop' },\n                 { include: '#nest_curly_and_self' },\n                 { include: '$self' },\n                 { defaultToken: 'source.elixir.embedded.source' } ] } } ],\n      '#nest_curly_and_self': \n       [ { token: 'punctuation.section.scope.elixir',\n           regex: '\\\\{',\n           push: \n            [ { token: 'punctuation.section.scope.elixir',\n                regex: '\\\\}',\n                next: 'pop' },\n              { include: '#nest_curly_and_self' } ] },\n         { include: '$self' } ],\n      '#regex_sub': \n       [ { include: '#interpolated_elixir' },\n         { include: '#escaped_char' },\n         { token: \n            [ 'punctuation.definition.arbitrary-repitition.elixir',\n              'string.regexp.arbitrary-repitition.elixir',\n              'string.regexp.arbitrary-repitition.elixir',\n              'punctuation.definition.arbitrary-repitition.elixir' ],\n           regex: '(\\\\{)(\\\\d+)((?:,\\\\d+)?)(\\\\})' },\n         { token: 'punctuation.definition.character-class.elixir',\n           regex: '\\\\[(?:\\\\^?\\\\])?',\n           push: \n            [ { token: 'punctuation.definition.character-class.elixir',\n                regex: '\\\\]',\n                next: 'pop' },\n              { include: '#escaped_char' },\n              { defaultToken: 'string.regexp.character-class.elixir' } ] },\n         { token: 'punctuation.definition.group.elixir',\n           regex: '\\\\(',\n           push: \n            [ { token: 'punctuation.definition.group.elixir',\n                regex: '\\\\)',\n                next: 'pop' },\n              { include: '#regex_sub' },\n              { defaultToken: 'string.regexp.group.elixir' } ] },\n         { token: \n            [ 'punctuation.definition.comment.elixir',\n              'comment.line.number-sign.elixir' ],\n           regex: '(?:^|\\\\s)(#)(\\\\s[[a-zA-Z0-9,. \\\\t?!-][^\\\\x00-\\\\x7F]]*$)',\n           originalRegex: '(?<=^|\\\\s)(#)\\\\s[[a-zA-Z0-9,. \\\\t?!-][^\\\\x{00}-\\\\x{7F}]]*$',\n           comment: 'We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.' } ] }\n    \n    this.normalizeRules();\n};\n\nElixirHighlightRules.metaData = { comment: 'Textmate bundle for Elixir Programming Language.',\n      fileTypes: [ 'ex', 'exs' ],\n      firstLineMatch: '^#!/.*\\\\belixir',\n      foldingStartMarker: '(after|else|catch|rescue|\\\\-\\\\>|\\\\{|\\\\[|do)\\\\s*$',\n      foldingStopMarker: '^\\\\s*((\\\\}|\\\\]|after|else|catch|rescue)\\\\s*$|end\\\\b)',\n      keyEquivalent: '^~E',\n      name: 'Elixir',\n      scopeName: 'source.elixir' }\n\n\noop.inherits(ElixirHighlightRules, TextHighlightRules);\n\nexports.ElixirHighlightRules = ElixirHighlightRules;\n});\n\nace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var range = this.indentationBlock(session, row);\n        if (range)\n            return range;\n\n        var re = /\\S/;\n        var line = session.getLine(row);\n        var startLevel = line.search(re);\n        if (startLevel == -1 || line[startLevel] != \"#\")\n            return;\n\n        var startColumn = line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var level = line.search(re);\n\n            if (level == -1)\n                continue;\n\n            if (line[level] != \"#\")\n                break;\n\n            endRow = row;\n        }\n\n        if (endRow > startRow) {\n            var endColumn = session.getLine(endRow).length;\n            return new Range(startRow, startColumn, endRow, endColumn);\n        }\n    };\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var indent = line.search(/\\S/);\n        var next = session.getLine(row + 1);\n        var prev = session.getLine(row - 1);\n        var prevIndent = prev.search(/\\S/);\n        var nextIndent = next.search(/\\S/);\n\n        if (indent == -1) {\n            session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n            return \"\";\n        }\n        if (prevIndent == -1) {\n            if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n                session.foldWidgets[row - 1] = \"\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"start\";\n            }\n        } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n            if (session.getLine(row - 2).search(/\\S/) == -1) {\n                session.foldWidgets[row - 1] = \"start\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"\";\n            }\n        }\n\n        if (prevIndent!= -1 && prevIndent < indent)\n            session.foldWidgets[row - 1] = \"start\";\n        else\n            session.foldWidgets[row - 1] = \"\";\n\n        if (indent < nextIndent)\n            return \"start\";\n        else\n            return \"\";\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/elixir\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/elixir_highlight_rules\",\"ace/mode/folding/coffee\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar ElixirHighlightRules = require(\"./elixir_highlight_rules\").ElixirHighlightRules;\nvar FoldMode = require(\"./folding/coffee\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = ElixirHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"#\";\n    this.$id = \"ace/mode/elixir\"\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-elm.js",
    "content": "ace.define(\"ace/mode/elm_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar ElmHighlightRules = function() {\n    var keywordMapper = this.createKeywordMapper({\n       \"keyword\": \"as|case|class|data|default|deriving|do|else|export|foreign|\" +\n            \"hiding|jsevent|if|import|in|infix|infixl|infixr|instance|let|\" +\n            \"module|newtype|of|open|then|type|where|_|port|\\u03BB\"\n    }, \"identifier\");\n    \n    var escapeRe = /\\\\(\\d+|['\"\\\\&trnbvf])/;\n    \n    var smallRe = /[a-z_]/.source;\n    var largeRe = /[A-Z]/.source;\n    var idRe = /[a-z_A-Z0-9']/.source;\n\n    this.$rules = {\n        start: [{\n            token: \"string.start\",\n            regex: '\"',\n            next: \"string\"\n        }, {\n            token: \"string.character\",\n            regex: \"'(?:\" + escapeRe.source + \"|.)'?\"\n        }, {\n            regex: /0(?:[xX][0-9A-Fa-f]+|[oO][0-7]+)|\\d+(\\.\\d+)?([eE][-+]?\\d*)?/,\n            token: \"constant.numeric\"\n        }, {\n            token: \"comment\",\n            regex: \"--.*\"\n        }, {\n            token : \"keyword\",\n            regex : /\\.\\.|\\||:|=|\\\\|\"|->|<-|\\u2192/\n        }, {\n            token : \"keyword.operator\",\n            regex : /[-!#$%&*+.\\/<=>?@\\\\^|~:\\u03BB\\u2192]+/\n        }, {\n            token : \"operator.punctuation\",\n            regex : /[,;`]/\n        }, {\n            regex : largeRe + idRe + \"+\\\\.?\",\n            token : function(value) {\n                if (value[value.length - 1] == \".\")\n                    return \"entity.name.function\"; \n                return \"constant.language\"; \n            }\n        }, {\n            regex : \"^\" + smallRe  + idRe + \"+\",\n            token : function(value) {\n                return \"constant.language\"; \n            }\n        }, {\n            token : keywordMapper,\n            regex : \"[\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]+\\\\b\"\n        }, {\n            regex: \"{-#?\",\n            token: \"comment.start\",\n            onMatch: function(value, currentState, stack) {\n                this.next = value.length == 2 ? \"blockComment\" : \"docComment\";\n                return this.token;\n            }\n        }, {\n            token: \"variable.language\",\n            regex: /\\[markdown\\|/,\n            next: \"markdown\"\n        }, {\n            token: \"paren.lparen\",\n            regex: /[\\[({]/ \n        }, {\n            token: \"paren.rparen\",\n            regex: /[\\])}]/\n        } ],\n        markdown: [{\n            regex: /\\|\\]/,\n            next: \"start\"\n        }, {\n            defaultToken : \"string\"\n        }],\n        blockComment: [{\n            regex: \"{-\",\n            token: \"comment.start\",\n            push: \"blockComment\"\n        }, {\n            regex: \"-}\",\n            token: \"comment.end\",\n            next: \"pop\"\n        }, {\n            defaultToken: \"comment\"\n        }],\n        docComment: [{\n            regex: \"{-\",\n            token: \"comment.start\",\n            push: \"docComment\"\n        }, {\n            regex: \"-}\",\n            token: \"comment.end\",\n            next: \"pop\" \n        }, {\n            defaultToken: \"doc.comment\"\n        }],\n        string: [{\n            token: \"constant.language.escape\",\n            regex: escapeRe\n        }, {\n            token: \"text\",\n            regex: /\\\\(\\s|$)/,\n            next: \"stringGap\"\n        }, {\n            token: \"string.end\",\n            regex: '\"',\n            next: \"start\"\n        }, {\n            defaultToken: \"string\"\n        }],\n        stringGap: [{\n            token: \"text\",\n            regex: /\\\\/,\n            next: \"string\"\n        }, {\n            token: \"error\",\n            regex: \"\",\n            next: \"start\"\n        }]\n    };\n    \n    this.normalizeRules();\n};\n\noop.inherits(ElmHighlightRules, TextHighlightRules);\n\nexports.ElmHighlightRules = ElmHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/elm\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/elm_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar HighlightRules = require(\"./elm_highlight_rules\").ElmHighlightRules;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = HighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"--\";\n    this.blockComment = {start: \"{-\", end: \"-}\", nestable: true};\n    this.$id = \"ace/mode/elm\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-erlang.js",
    "content": "ace.define(\"ace/mode/erlang_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar ErlangHighlightRules = function() {\n\n    this.$rules = { start: \n       [ { include: '#module-directive' },\n         { include: '#import-export-directive' },\n         { include: '#behaviour-directive' },\n         { include: '#record-directive' },\n         { include: '#define-directive' },\n         { include: '#macro-directive' },\n         { include: '#directive' },\n         { include: '#function' },\n         { include: '#everything-else' } ],\n      '#atom': \n       [ { token: 'punctuation.definition.symbol.begin.erlang',\n           regex: '\\'',\n           push: \n            [ { token: 'punctuation.definition.symbol.end.erlang',\n                regex: '\\'',\n                next: 'pop' },\n              { token: \n                 [ 'punctuation.definition.escape.erlang',\n                   'constant.other.symbol.escape.erlang',\n                   'punctuation.definition.escape.erlang',\n                   'constant.other.symbol.escape.erlang',\n                   'constant.other.symbol.escape.erlang' ],\n                regex: '(\\\\\\\\)(?:([bdefnrstv\\\\\\\\\\'\"])|(\\\\^)([@-_])|([0-7]{1,3}))' },\n              { token: 'invalid.illegal.atom.erlang', regex: '\\\\\\\\\\\\^?.?' },\n              { defaultToken: 'constant.other.symbol.quoted.single.erlang' } ] },\n         { token: 'constant.other.symbol.unquoted.erlang',\n           regex: '[a-z][a-zA-Z\\\\d@_]*' } ],\n      '#behaviour-directive': \n       [ { token: \n            [ 'meta.directive.behaviour.erlang',\n              'punctuation.section.directive.begin.erlang',\n              'meta.directive.behaviour.erlang',\n              'keyword.control.directive.behaviour.erlang',\n              'meta.directive.behaviour.erlang',\n              'punctuation.definition.parameters.begin.erlang',\n              'meta.directive.behaviour.erlang',\n              'entity.name.type.class.behaviour.definition.erlang',\n              'meta.directive.behaviour.erlang',\n              'punctuation.definition.parameters.end.erlang',\n              'meta.directive.behaviour.erlang',\n              'punctuation.section.directive.end.erlang' ],\n           regex: '^(\\\\s*)(-)(\\\\s*)(behaviour)(\\\\s*)(\\\\()(\\\\s*)([a-z][a-zA-Z\\\\d@_]*)(\\\\s*)(\\\\))(\\\\s*)(\\\\.)' } ],\n      '#binary': \n       [ { token: 'punctuation.definition.binary.begin.erlang',\n           regex: '<<',\n           push: \n            [ { token: 'punctuation.definition.binary.end.erlang',\n                regex: '>>',\n                next: 'pop' },\n              { token: \n                 [ 'punctuation.separator.binary.erlang',\n                   'punctuation.separator.value-size.erlang' ],\n                regex: '(,)|(:)' },\n              { include: '#internal-type-specifiers' },\n              { include: '#everything-else' },\n              { defaultToken: 'meta.structure.binary.erlang' } ] } ],\n      '#character': \n       [ { token: \n            [ 'punctuation.definition.character.erlang',\n              'punctuation.definition.escape.erlang',\n              'constant.character.escape.erlang',\n              'punctuation.definition.escape.erlang',\n              'constant.character.escape.erlang',\n              'constant.character.escape.erlang' ],\n           regex: '(\\\\$)(\\\\\\\\)(?:([bdefnrstv\\\\\\\\\\'\"])|(\\\\^)([@-_])|([0-7]{1,3}))' },\n         { token: 'invalid.illegal.character.erlang',\n           regex: '\\\\$\\\\\\\\\\\\^?.?' },\n         { token: \n            [ 'punctuation.definition.character.erlang',\n              'constant.character.erlang' ],\n           regex: '(\\\\$)(\\\\S)' },\n         { token: 'invalid.illegal.character.erlang', regex: '\\\\$.?' } ],\n      '#comment': \n       [ { token: 'punctuation.definition.comment.erlang',\n           regex: '%.*$',\n           push_: \n            [ { token: 'comment.line.percentage.erlang',\n                regex: '$',\n                next: 'pop' },\n              { defaultToken: 'comment.line.percentage.erlang' } ] } ],\n      '#define-directive': \n       [ { token: \n            [ 'meta.directive.define.erlang',\n              'punctuation.section.directive.begin.erlang',\n              'meta.directive.define.erlang',\n              'keyword.control.directive.define.erlang',\n              'meta.directive.define.erlang',\n              'punctuation.definition.parameters.begin.erlang',\n              'meta.directive.define.erlang',\n              'entity.name.function.macro.definition.erlang',\n              'meta.directive.define.erlang',\n              'punctuation.separator.parameters.erlang' ],\n           regex: '^(\\\\s*)(-)(\\\\s*)(define)(\\\\s*)(\\\\()(\\\\s*)([a-zA-Z\\\\d@_]+)(\\\\s*)(,)',\n           push: \n            [ { token: \n                 [ 'punctuation.definition.parameters.end.erlang',\n                   'meta.directive.define.erlang',\n                   'punctuation.section.directive.end.erlang' ],\n                regex: '(\\\\))(\\\\s*)(\\\\.)',\n                next: 'pop' },\n              { include: '#everything-else' },\n              { defaultToken: 'meta.directive.define.erlang' } ] },\n         { token: 'meta.directive.define.erlang',\n           regex: '(?=^\\\\s*-\\\\s*define\\\\s*\\\\(\\\\s*[a-zA-Z\\\\d@_]+\\\\s*\\\\()',\n           push: \n            [ { token: \n                 [ 'punctuation.definition.parameters.end.erlang',\n                   'meta.directive.define.erlang',\n                   'punctuation.section.directive.end.erlang' ],\n                regex: '(\\\\))(\\\\s*)(\\\\.)',\n                next: 'pop' },\n              { token: \n                 [ 'text',\n                   'punctuation.section.directive.begin.erlang',\n                   'text',\n                   'keyword.control.directive.define.erlang',\n                   'text',\n                   'punctuation.definition.parameters.begin.erlang',\n                   'text',\n                   'entity.name.function.macro.definition.erlang',\n                   'text',\n                   'punctuation.definition.parameters.begin.erlang' ],\n                regex: '^(\\\\s*)(-)(\\\\s*)(define)(\\\\s*)(\\\\()(\\\\s*)([a-zA-Z\\\\d@_]+)(\\\\s*)(\\\\()',\n                push: \n                 [ { token: \n                      [ 'punctuation.definition.parameters.end.erlang',\n                        'text',\n                        'punctuation.separator.parameters.erlang' ],\n                     regex: '(\\\\))(\\\\s*)(,)',\n                     next: 'pop' },\n                   { token: 'punctuation.separator.parameters.erlang', regex: ',' },\n                   { include: '#everything-else' } ] },\n              { token: 'punctuation.separator.define.erlang',\n                regex: '\\\\|\\\\||\\\\||:|;|,|\\\\.|->' },\n              { include: '#everything-else' },\n              { defaultToken: 'meta.directive.define.erlang' } ] } ],\n      '#directive': \n       [ { token: \n            [ 'meta.directive.erlang',\n              'punctuation.section.directive.begin.erlang',\n              'meta.directive.erlang',\n              'keyword.control.directive.erlang',\n              'meta.directive.erlang',\n              'punctuation.definition.parameters.begin.erlang' ],\n           regex: '^(\\\\s*)(-)(\\\\s*)([a-z][a-zA-Z\\\\d@_]*)(\\\\s*)(\\\\(?)',\n           push: \n            [ { token: \n                 [ 'punctuation.definition.parameters.end.erlang',\n                   'meta.directive.erlang',\n                   'punctuation.section.directive.end.erlang' ],\n                regex: '(\\\\)?)(\\\\s*)(\\\\.)',\n                next: 'pop' },\n              { include: '#everything-else' },\n              { defaultToken: 'meta.directive.erlang' } ] },\n         { token: \n            [ 'meta.directive.erlang',\n              'punctuation.section.directive.begin.erlang',\n              'meta.directive.erlang',\n              'keyword.control.directive.erlang',\n              'meta.directive.erlang',\n              'punctuation.section.directive.end.erlang' ],\n           regex: '^(\\\\s*)(-)(\\\\s*)([a-z][a-zA-Z\\\\d@_]*)(\\\\s*)(\\\\.)' } ],\n      '#everything-else': \n       [ { include: '#comment' },\n         { include: '#record-usage' },\n         { include: '#macro-usage' },\n         { include: '#expression' },\n         { include: '#keyword' },\n         { include: '#textual-operator' },\n         { include: '#function-call' },\n         { include: '#tuple' },\n         { include: '#list' },\n         { include: '#binary' },\n         { include: '#parenthesized-expression' },\n         { include: '#character' },\n         { include: '#number' },\n         { include: '#atom' },\n         { include: '#string' },\n         { include: '#symbolic-operator' },\n         { include: '#variable' } ],\n      '#expression': \n       [ { token: 'keyword.control.if.erlang',\n           regex: '\\\\bif\\\\b',\n           push: \n            [ { token: 'keyword.control.end.erlang',\n                regex: '\\\\bend\\\\b',\n                next: 'pop' },\n              { include: '#internal-expression-punctuation' },\n              { include: '#everything-else' },\n              { defaultToken: 'meta.expression.if.erlang' } ] },\n         { token: 'keyword.control.case.erlang',\n           regex: '\\\\bcase\\\\b',\n           push: \n            [ { token: 'keyword.control.end.erlang',\n                regex: '\\\\bend\\\\b',\n                next: 'pop' },\n              { include: '#internal-expression-punctuation' },\n              { include: '#everything-else' },\n              { defaultToken: 'meta.expression.case.erlang' } ] },\n         { token: 'keyword.control.receive.erlang',\n           regex: '\\\\breceive\\\\b',\n           push: \n            [ { token: 'keyword.control.end.erlang',\n                regex: '\\\\bend\\\\b',\n                next: 'pop' },\n              { include: '#internal-expression-punctuation' },\n              { include: '#everything-else' },\n              { defaultToken: 'meta.expression.receive.erlang' } ] },\n         { token: \n            [ 'keyword.control.fun.erlang',\n              'text',\n              'entity.name.type.class.module.erlang',\n              'text',\n              'punctuation.separator.module-function.erlang',\n              'text',\n              'entity.name.function.erlang',\n              'text',\n              'punctuation.separator.function-arity.erlang' ],\n           regex: '\\\\b(fun)(\\\\s*)(?:([a-z][a-zA-Z\\\\d@_]*)(\\\\s*)(:)(\\\\s*))?([a-z][a-zA-Z\\\\d@_]*)(\\\\s*)(/)' },\n         { token: 'keyword.control.fun.erlang',\n           regex: '\\\\bfun\\\\b',\n           push: \n            [ { token: 'keyword.control.end.erlang',\n                regex: '\\\\bend\\\\b',\n                next: 'pop' },\n              { token: 'text',\n                regex: '(?=\\\\()',\n                push: \n                 [ { token: 'punctuation.separator.clauses.erlang',\n                     regex: ';|(?=\\\\bend\\\\b)',\n                     next: 'pop' },\n                   { include: '#internal-function-parts' } ] },\n              { include: '#everything-else' },\n              { defaultToken: 'meta.expression.fun.erlang' } ] },\n         { token: 'keyword.control.try.erlang',\n           regex: '\\\\btry\\\\b',\n           push: \n            [ { token: 'keyword.control.end.erlang',\n                regex: '\\\\bend\\\\b',\n                next: 'pop' },\n              { include: '#internal-expression-punctuation' },\n              { include: '#everything-else' },\n              { defaultToken: 'meta.expression.try.erlang' } ] },\n         { token: 'keyword.control.begin.erlang',\n           regex: '\\\\bbegin\\\\b',\n           push: \n            [ { token: 'keyword.control.end.erlang',\n                regex: '\\\\bend\\\\b',\n                next: 'pop' },\n              { include: '#internal-expression-punctuation' },\n              { include: '#everything-else' },\n              { defaultToken: 'meta.expression.begin.erlang' } ] },\n         { token: 'keyword.control.query.erlang',\n           regex: '\\\\bquery\\\\b',\n           push: \n            [ { token: 'keyword.control.end.erlang',\n                regex: '\\\\bend\\\\b',\n                next: 'pop' },\n              { include: '#everything-else' },\n              { defaultToken: 'meta.expression.query.erlang' } ] } ],\n      '#function': \n       [ { token: \n            [ 'meta.function.erlang',\n              'entity.name.function.definition.erlang',\n              'meta.function.erlang' ],\n           regex: '^(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|\\'[^\\']*\\')(\\\\s*)(?=\\\\()',\n           push: \n            [ { token: 'punctuation.terminator.function.erlang',\n                regex: '\\\\.',\n                next: 'pop' },\n              { token: [ 'text', 'entity.name.function.erlang', 'text' ],\n                regex: '^(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|\\'[^\\']*\\')(\\\\s*)(?=\\\\()' },\n              { token: 'text',\n                regex: '(?=\\\\()',\n                push: \n                 [ { token: 'punctuation.separator.clauses.erlang',\n                     regex: ';|(?=\\\\.)',\n                     next: 'pop' },\n                   { include: '#parenthesized-expression' },\n                   { include: '#internal-function-parts' } ] },\n              { include: '#everything-else' },\n              { defaultToken: 'meta.function.erlang' } ] } ],\n      '#function-call': \n       [ { token: 'meta.function-call.erlang',\n           regex: '(?=(?:[a-z][a-zA-Z\\\\d@_]*|\\'[^\\']*\\')\\\\s*(?:\\\\(|:\\\\s*(?:[a-z][a-zA-Z\\\\d@_]*|\\'[^\\']*\\')\\\\s*\\\\())',\n           push: \n            [ { token: 'punctuation.definition.parameters.end.erlang',\n                regex: '\\\\)',\n                next: 'pop' },\n              { token: \n                 [ 'entity.name.type.class.module.erlang',\n                   'text',\n                   'punctuation.separator.module-function.erlang',\n                   'text',\n                   'entity.name.function.guard.erlang',\n                   'text',\n                   'punctuation.definition.parameters.begin.erlang' ],\n                regex: '(?:(erlang)(\\\\s*)(:)(\\\\s*))?(is_atom|is_binary|is_constant|is_float|is_function|is_integer|is_list|is_number|is_pid|is_port|is_reference|is_tuple|is_record|abs|element|hd|length|node|round|self|size|tl|trunc)(\\\\s*)(\\\\()',\n                push: \n                 [ { token: 'text', regex: '(?=\\\\))', next: 'pop' },\n                   { token: 'punctuation.separator.parameters.erlang', regex: ',' },\n                   { include: '#everything-else' } ] },\n              { token: \n                 [ 'entity.name.type.class.module.erlang',\n                   'text',\n                   'punctuation.separator.module-function.erlang',\n                   'text',\n                   'entity.name.function.erlang',\n                   'text',\n                   'punctuation.definition.parameters.begin.erlang' ],\n                regex: '(?:([a-z][a-zA-Z\\\\d@_]*|\\'[^\\']*\\')(\\\\s*)(:)(\\\\s*))?([a-z][a-zA-Z\\\\d@_]*|\\'[^\\']*\\')(\\\\s*)(\\\\()',\n                push: \n                 [ { token: 'text', regex: '(?=\\\\))', next: 'pop' },\n                   { token: 'punctuation.separator.parameters.erlang', regex: ',' },\n                   { include: '#everything-else' } ] },\n              { defaultToken: 'meta.function-call.erlang' } ] } ],\n      '#import-export-directive': \n       [ { token: \n            [ 'meta.directive.import.erlang',\n              'punctuation.section.directive.begin.erlang',\n              'meta.directive.import.erlang',\n              'keyword.control.directive.import.erlang',\n              'meta.directive.import.erlang',\n              'punctuation.definition.parameters.begin.erlang',\n              'meta.directive.import.erlang',\n              'entity.name.type.class.module.erlang',\n              'meta.directive.import.erlang',\n              'punctuation.separator.parameters.erlang' ],\n           regex: '^(\\\\s*)(-)(\\\\s*)(import)(\\\\s*)(\\\\()(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|\\'[^\\']*\\')(\\\\s*)(,)',\n           push: \n            [ { token: \n                 [ 'punctuation.definition.parameters.end.erlang',\n                   'meta.directive.import.erlang',\n                   'punctuation.section.directive.end.erlang' ],\n                regex: '(\\\\))(\\\\s*)(\\\\.)',\n                next: 'pop' },\n              { include: '#internal-function-list' },\n              { defaultToken: 'meta.directive.import.erlang' } ] },\n         { token: \n            [ 'meta.directive.export.erlang',\n              'punctuation.section.directive.begin.erlang',\n              'meta.directive.export.erlang',\n              'keyword.control.directive.export.erlang',\n              'meta.directive.export.erlang',\n              'punctuation.definition.parameters.begin.erlang' ],\n           regex: '^(\\\\s*)(-)(\\\\s*)(export)(\\\\s*)(\\\\()',\n           push: \n            [ { token: \n                 [ 'punctuation.definition.parameters.end.erlang',\n                   'meta.directive.export.erlang',\n                   'punctuation.section.directive.end.erlang' ],\n                regex: '(\\\\))(\\\\s*)(\\\\.)',\n                next: 'pop' },\n              { include: '#internal-function-list' },\n              { defaultToken: 'meta.directive.export.erlang' } ] } ],\n      '#internal-expression-punctuation': \n       [ { token: \n            [ 'punctuation.separator.clause-head-body.erlang',\n              'punctuation.separator.clauses.erlang',\n              'punctuation.separator.expressions.erlang' ],\n           regex: '(->)|(;)|(,)' } ],\n      '#internal-function-list': \n       [ { token: 'punctuation.definition.list.begin.erlang',\n           regex: '\\\\[',\n           push: \n            [ { token: 'punctuation.definition.list.end.erlang',\n                regex: '\\\\]',\n                next: 'pop' },\n              { token: \n                 [ 'entity.name.function.erlang',\n                   'text',\n                   'punctuation.separator.function-arity.erlang' ],\n                regex: '([a-z][a-zA-Z\\\\d@_]*|\\'[^\\']*\\')(\\\\s*)(/)',\n                push: \n                 [ { token: 'punctuation.separator.list.erlang',\n                     regex: ',|(?=\\\\])',\n                     next: 'pop' },\n                   { include: '#everything-else' } ] },\n              { include: '#everything-else' },\n              { defaultToken: 'meta.structure.list.function.erlang' } ] } ],\n      '#internal-function-parts': \n       [ { token: 'text',\n           regex: '(?=\\\\()',\n           push: \n            [ { token: 'punctuation.separator.clause-head-body.erlang',\n                regex: '->',\n                next: 'pop' },\n              { token: 'punctuation.definition.parameters.begin.erlang',\n                regex: '\\\\(',\n                push: \n                 [ { token: 'punctuation.definition.parameters.end.erlang',\n                     regex: '\\\\)',\n                     next: 'pop' },\n                   { token: 'punctuation.separator.parameters.erlang', regex: ',' },\n                   { include: '#everything-else' } ] },\n              { token: 'punctuation.separator.guards.erlang', regex: ',|;' },\n              { include: '#everything-else' } ] },\n         { token: 'punctuation.separator.expressions.erlang',\n           regex: ',' },\n         { include: '#everything-else' } ],\n      '#internal-record-body': \n       [ { token: 'punctuation.definition.class.record.begin.erlang',\n           regex: '\\\\{',\n           push: \n            [ { token: 'meta.structure.record.erlang',\n                regex: '(?=\\\\})',\n                next: 'pop' },\n              { token: \n                 [ 'variable.other.field.erlang',\n                   'variable.language.omitted.field.erlang',\n                   'text',\n                   'keyword.operator.assignment.erlang' ],\n                regex: '(?:([a-z][a-zA-Z\\\\d@_]*|\\'[^\\']*\\')|(_))(\\\\s*)(=|::)',\n                push: \n                 [ { token: 'punctuation.separator.class.record.erlang',\n                     regex: ',|(?=\\\\})',\n                     next: 'pop' },\n                   { include: '#everything-else' } ] },\n              { token: \n                 [ 'variable.other.field.erlang',\n                   'text',\n                   'punctuation.separator.class.record.erlang' ],\n                regex: '([a-z][a-zA-Z\\\\d@_]*|\\'[^\\']*\\')(\\\\s*)((?:,)?)' },\n              { include: '#everything-else' },\n              { defaultToken: 'meta.structure.record.erlang' } ] } ],\n      '#internal-type-specifiers': \n       [ { token: 'punctuation.separator.value-type.erlang',\n           regex: '/',\n           push: \n            [ { token: 'text', regex: '(?=,|:|>>)', next: 'pop' },\n              { token: \n                 [ 'storage.type.erlang',\n                   'storage.modifier.signedness.erlang',\n                   'storage.modifier.endianness.erlang',\n                   'storage.modifier.unit.erlang',\n                   'punctuation.separator.type-specifiers.erlang' ],\n                regex: '(integer|float|binary|bytes|bitstring|bits)|(signed|unsigned)|(big|little|native)|(unit)|(-)' } ] } ],\n      '#keyword': \n       [ { token: 'keyword.control.erlang',\n           regex: '\\\\b(?:after|begin|case|catch|cond|end|fun|if|let|of|query|try|receive|when)\\\\b' } ],\n      '#list': \n       [ { token: 'punctuation.definition.list.begin.erlang',\n           regex: '\\\\[',\n           push: \n            [ { token: 'punctuation.definition.list.end.erlang',\n                regex: '\\\\]',\n                next: 'pop' },\n              { token: 'punctuation.separator.list.erlang',\n                regex: '\\\\||\\\\|\\\\||,' },\n              { include: '#everything-else' },\n              { defaultToken: 'meta.structure.list.erlang' } ] } ],\n      '#macro-directive': \n       [ { token: \n            [ 'meta.directive.ifdef.erlang',\n              'punctuation.section.directive.begin.erlang',\n              'meta.directive.ifdef.erlang',\n              'keyword.control.directive.ifdef.erlang',\n              'meta.directive.ifdef.erlang',\n              'punctuation.definition.parameters.begin.erlang',\n              'meta.directive.ifdef.erlang',\n              'entity.name.function.macro.erlang',\n              'meta.directive.ifdef.erlang',\n              'punctuation.definition.parameters.end.erlang',\n              'meta.directive.ifdef.erlang',\n              'punctuation.section.directive.end.erlang' ],\n           regex: '^(\\\\s*)(-)(\\\\s*)(ifdef)(\\\\s*)(\\\\()(\\\\s*)([a-zA-Z\\\\d@_]+)(\\\\s*)(\\\\))(\\\\s*)(\\\\.)' },\n         { token: \n            [ 'meta.directive.ifndef.erlang',\n              'punctuation.section.directive.begin.erlang',\n              'meta.directive.ifndef.erlang',\n              'keyword.control.directive.ifndef.erlang',\n              'meta.directive.ifndef.erlang',\n              'punctuation.definition.parameters.begin.erlang',\n              'meta.directive.ifndef.erlang',\n              'entity.name.function.macro.erlang',\n              'meta.directive.ifndef.erlang',\n              'punctuation.definition.parameters.end.erlang',\n              'meta.directive.ifndef.erlang',\n              'punctuation.section.directive.end.erlang' ],\n           regex: '^(\\\\s*)(-)(\\\\s*)(ifndef)(\\\\s*)(\\\\()(\\\\s*)([a-zA-Z\\\\d@_]+)(\\\\s*)(\\\\))(\\\\s*)(\\\\.)' },\n         { token: \n            [ 'meta.directive.undef.erlang',\n              'punctuation.section.directive.begin.erlang',\n              'meta.directive.undef.erlang',\n              'keyword.control.directive.undef.erlang',\n              'meta.directive.undef.erlang',\n              'punctuation.definition.parameters.begin.erlang',\n              'meta.directive.undef.erlang',\n              'entity.name.function.macro.erlang',\n              'meta.directive.undef.erlang',\n              'punctuation.definition.parameters.end.erlang',\n              'meta.directive.undef.erlang',\n              'punctuation.section.directive.end.erlang' ],\n           regex: '^(\\\\s*)(-)(\\\\s*)(undef)(\\\\s*)(\\\\()(\\\\s*)([a-zA-Z\\\\d@_]+)(\\\\s*)(\\\\))(\\\\s*)(\\\\.)' } ],\n      '#macro-usage': \n       [ { token: \n            [ 'keyword.operator.macro.erlang',\n              'meta.macro-usage.erlang',\n              'entity.name.function.macro.erlang' ],\n           regex: '(\\\\?\\\\??)(\\\\s*)([a-zA-Z\\\\d@_]+)' } ],\n      '#module-directive': \n       [ { token: \n            [ 'meta.directive.module.erlang',\n              'punctuation.section.directive.begin.erlang',\n              'meta.directive.module.erlang',\n              'keyword.control.directive.module.erlang',\n              'meta.directive.module.erlang',\n              'punctuation.definition.parameters.begin.erlang',\n              'meta.directive.module.erlang',\n              'entity.name.type.class.module.definition.erlang',\n              'meta.directive.module.erlang',\n              'punctuation.definition.parameters.end.erlang',\n              'meta.directive.module.erlang',\n              'punctuation.section.directive.end.erlang' ],\n           regex: '^(\\\\s*)(-)(\\\\s*)(module)(\\\\s*)(\\\\()(\\\\s*)([a-z][a-zA-Z\\\\d@_]*)(\\\\s*)(\\\\))(\\\\s*)(\\\\.)' } ],\n      '#number': \n       [ { token: 'text',\n           regex: '(?=\\\\d)',\n           push: \n            [ { token: 'text', regex: '(?!\\\\d)', next: 'pop' },\n              { token: \n                 [ 'constant.numeric.float.erlang',\n                   'punctuation.separator.integer-float.erlang',\n                   'constant.numeric.float.erlang',\n                   'punctuation.separator.float-exponent.erlang' ],\n                regex: '(\\\\d+)(\\\\.)(\\\\d+)((?:[eE][\\\\+\\\\-]?\\\\d+)?)' },\n              { token: \n                 [ 'constant.numeric.integer.binary.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.binary.erlang' ],\n                regex: '(2)(#)([0-1]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-3.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-3.erlang' ],\n                regex: '(3)(#)([0-2]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-4.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-4.erlang' ],\n                regex: '(4)(#)([0-3]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-5.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-5.erlang' ],\n                regex: '(5)(#)([0-4]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-6.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-6.erlang' ],\n                regex: '(6)(#)([0-5]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-7.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-7.erlang' ],\n                regex: '(7)(#)([0-6]+)' },\n              { token: \n                 [ 'constant.numeric.integer.octal.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.octal.erlang' ],\n                regex: '(8)(#)([0-7]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-9.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-9.erlang' ],\n                regex: '(9)(#)([0-8]+)' },\n              { token: \n                 [ 'constant.numeric.integer.decimal.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.decimal.erlang' ],\n                regex: '(10)(#)(\\\\d+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-11.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-11.erlang' ],\n                regex: '(11)(#)([\\\\daA]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-12.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-12.erlang' ],\n                regex: '(12)(#)([\\\\da-bA-B]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-13.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-13.erlang' ],\n                regex: '(13)(#)([\\\\da-cA-C]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-14.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-14.erlang' ],\n                regex: '(14)(#)([\\\\da-dA-D]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-15.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-15.erlang' ],\n                regex: '(15)(#)([\\\\da-eA-E]+)' },\n              { token: \n                 [ 'constant.numeric.integer.hexadecimal.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.hexadecimal.erlang' ],\n                regex: '(16)(#)([\\\\da-fA-F]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-17.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-17.erlang' ],\n                regex: '(17)(#)([\\\\da-gA-G]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-18.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-18.erlang' ],\n                regex: '(18)(#)([\\\\da-hA-H]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-19.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-19.erlang' ],\n                regex: '(19)(#)([\\\\da-iA-I]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-20.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-20.erlang' ],\n                regex: '(20)(#)([\\\\da-jA-J]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-21.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-21.erlang' ],\n                regex: '(21)(#)([\\\\da-kA-K]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-22.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-22.erlang' ],\n                regex: '(22)(#)([\\\\da-lA-L]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-23.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-23.erlang' ],\n                regex: '(23)(#)([\\\\da-mA-M]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-24.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-24.erlang' ],\n                regex: '(24)(#)([\\\\da-nA-N]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-25.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-25.erlang' ],\n                regex: '(25)(#)([\\\\da-oA-O]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-26.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-26.erlang' ],\n                regex: '(26)(#)([\\\\da-pA-P]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-27.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-27.erlang' ],\n                regex: '(27)(#)([\\\\da-qA-Q]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-28.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-28.erlang' ],\n                regex: '(28)(#)([\\\\da-rA-R]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-29.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-29.erlang' ],\n                regex: '(29)(#)([\\\\da-sA-S]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-30.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-30.erlang' ],\n                regex: '(30)(#)([\\\\da-tA-T]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-31.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-31.erlang' ],\n                regex: '(31)(#)([\\\\da-uA-U]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-32.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-32.erlang' ],\n                regex: '(32)(#)([\\\\da-vA-V]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-33.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-33.erlang' ],\n                regex: '(33)(#)([\\\\da-wA-W]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-34.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-34.erlang' ],\n                regex: '(34)(#)([\\\\da-xA-X]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-35.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-35.erlang' ],\n                regex: '(35)(#)([\\\\da-yA-Y]+)' },\n              { token: \n                 [ 'constant.numeric.integer.base-36.erlang',\n                   'punctuation.separator.base-integer.erlang',\n                   'constant.numeric.integer.base-36.erlang' ],\n                regex: '(36)(#)([\\\\da-zA-Z]+)' },\n              { token: 'invalid.illegal.integer.erlang',\n                regex: '\\\\d+#[\\\\da-zA-Z]+' },\n              { token: 'constant.numeric.integer.decimal.erlang',\n                regex: '\\\\d+' } ] } ],\n      '#parenthesized-expression': \n       [ { token: 'punctuation.section.expression.begin.erlang',\n           regex: '\\\\(',\n           push: \n            [ { token: 'punctuation.section.expression.end.erlang',\n                regex: '\\\\)',\n                next: 'pop' },\n              { include: '#everything-else' },\n              { defaultToken: 'meta.expression.parenthesized' } ] } ],\n      '#record-directive': \n       [ { token: \n            [ 'meta.directive.record.erlang',\n              'punctuation.section.directive.begin.erlang',\n              'meta.directive.record.erlang',\n              'keyword.control.directive.import.erlang',\n              'meta.directive.record.erlang',\n              'punctuation.definition.parameters.begin.erlang',\n              'meta.directive.record.erlang',\n              'entity.name.type.class.record.definition.erlang',\n              'meta.directive.record.erlang',\n              'punctuation.separator.parameters.erlang' ],\n           regex: '^(\\\\s*)(-)(\\\\s*)(record)(\\\\s*)(\\\\()(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|\\'[^\\']*\\')(\\\\s*)(,)',\n           push: \n            [ { token: \n                 [ 'punctuation.definition.class.record.end.erlang',\n                   'meta.directive.record.erlang',\n                   'punctuation.definition.parameters.end.erlang',\n                   'meta.directive.record.erlang',\n                   'punctuation.section.directive.end.erlang' ],\n                regex: '(\\\\})(\\\\s*)(\\\\))(\\\\s*)(\\\\.)',\n                next: 'pop' },\n              { include: '#internal-record-body' },\n              { defaultToken: 'meta.directive.record.erlang' } ] } ],\n      '#record-usage': \n       [ { token: \n            [ 'keyword.operator.record.erlang',\n              'meta.record-usage.erlang',\n              'entity.name.type.class.record.erlang',\n              'meta.record-usage.erlang',\n              'punctuation.separator.record-field.erlang',\n              'meta.record-usage.erlang',\n              'variable.other.field.erlang' ],\n           regex: '(#)(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|\\'[^\\']*\\')(\\\\s*)(\\\\.)(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|\\'[^\\']*\\')' },\n         { token: \n            [ 'keyword.operator.record.erlang',\n              'meta.record-usage.erlang',\n              'entity.name.type.class.record.erlang' ],\n           regex: '(#)(\\\\s*)([a-z][a-zA-Z\\\\d@_]*|\\'[^\\']*\\')',\n           push: \n            [ { token: 'punctuation.definition.class.record.end.erlang',\n                regex: '\\\\}',\n                next: 'pop' },\n              { include: '#internal-record-body' },\n              { defaultToken: 'meta.record-usage.erlang' } ] } ],\n      '#string': \n       [ { token: 'punctuation.definition.string.begin.erlang',\n           regex: '\"',\n           push: \n            [ { token: 'punctuation.definition.string.end.erlang',\n                regex: '\"',\n                next: 'pop' },\n              { token: \n                 [ 'punctuation.definition.escape.erlang',\n                   'constant.character.escape.erlang',\n                   'punctuation.definition.escape.erlang',\n                   'constant.character.escape.erlang',\n                   'constant.character.escape.erlang' ],\n                regex: '(\\\\\\\\)(?:([bdefnrstv\\\\\\\\\\'\"])|(\\\\^)([@-_])|([0-7]{1,3}))' },\n              { token: 'invalid.illegal.string.erlang', regex: '\\\\\\\\\\\\^?.?' },\n              { token: \n                 [ 'punctuation.definition.placeholder.erlang',\n                   'punctuation.separator.placeholder-parts.erlang',\n                   'constant.other.placeholder.erlang',\n                   'punctuation.separator.placeholder-parts.erlang',\n                   'punctuation.separator.placeholder-parts.erlang',\n                   'constant.other.placeholder.erlang',\n                   'punctuation.separator.placeholder-parts.erlang',\n                   'punctuation.separator.placeholder-parts.erlang',\n                   'punctuation.separator.placeholder-parts.erlang',\n                   'constant.other.placeholder.erlang',\n                   'constant.other.placeholder.erlang' ],\n                regex: '(~)(?:((?:\\\\-)?)(\\\\d+)|(\\\\*))?(?:(\\\\.)(?:(\\\\d+)|(\\\\*)))?(?:(\\\\.)(?:(\\\\*)|(.)))?([~cfegswpWPBX#bx\\\\+ni])' },\n              { token: \n                 [ 'punctuation.definition.placeholder.erlang',\n                   'punctuation.separator.placeholder-parts.erlang',\n                   'constant.other.placeholder.erlang',\n                   'constant.other.placeholder.erlang' ],\n                regex: '(~)((?:\\\\*)?)((?:\\\\d+)?)([~du\\\\-#fsacl])' },\n              { token: 'invalid.illegal.string.erlang', regex: '~.?' },\n              { defaultToken: 'string.quoted.double.erlang' } ] } ],\n      '#symbolic-operator': \n       [ { token: 'keyword.operator.symbolic.erlang',\n           regex: '\\\\+\\\\+|\\\\+|--|-|\\\\*|/=|/|=/=|=:=|==|=<|=|<-|<|>=|>|!|::' } ],\n      '#textual-operator': \n       [ { token: 'keyword.operator.textual.erlang',\n           regex: '\\\\b(?:andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\\\\b' } ],\n      '#tuple': \n       [ { token: 'punctuation.definition.tuple.begin.erlang',\n           regex: '\\\\{',\n           push: \n            [ { token: 'punctuation.definition.tuple.end.erlang',\n                regex: '\\\\}',\n                next: 'pop' },\n              { token: 'punctuation.separator.tuple.erlang', regex: ',' },\n              { include: '#everything-else' },\n              { defaultToken: 'meta.structure.tuple.erlang' } ] } ],\n      '#variable': \n       [ { token: [ 'variable.other.erlang', 'variable.language.omitted.erlang' ],\n           regex: '(_[a-zA-Z\\\\d@_]+|[A-Z][a-zA-Z\\\\d@_]*)|(_)' } ] }\n    \n    this.normalizeRules();\n};\n\nErlangHighlightRules.metaData = { comment: 'The recognition of function definitions and compiler directives (such as module, record and macro definitions) requires that each of the aforementioned constructs must be the first string inside a line (except for whitespace).  Also, the function/module/record/macro names must be given unquoted.  -- desp',\n      fileTypes: [ 'erl', 'hrl' ],\n      keyEquivalent: '^~E',\n      name: 'Erlang',\n      scopeName: 'source.erlang' }\n\n\noop.inherits(ErlangHighlightRules, TextHighlightRules);\n\nexports.ErlangHighlightRules = ErlangHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/erlang\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/erlang_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar ErlangHighlightRules = require(\"./erlang_highlight_rules\").ErlangHighlightRules;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = ErlangHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"%\";\n    this.blockComment = null;\n    this.$id = \"ace/mode/erlang\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-forth.js",
    "content": "ace.define(\"ace/mode/forth_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar ForthHighlightRules = function() {\n\n    this.$rules = { start: [ { include: '#forth' } ],\n      '#comment':\n       [ { token: 'comment.line.double-dash.forth',\n           regex: '(?:^|\\\\s)--\\\\s.*$',\n           comment: 'line comments for iForth' },\n         { token: 'comment.line.backslash.forth',\n           regex: '(?:^|\\\\s)\\\\\\\\[\\\\s\\\\S]*$',\n           comment: 'ANSI line comment' },\n         { token: 'comment.line.backslash-g.forth',\n           regex: '(?:^|\\\\s)\\\\\\\\[Gg] .*$',\n           comment: 'gForth line comment' },\n         { token: 'comment.block.forth',\n           regex: '(?:^|\\\\s)\\\\(\\\\*(?=\\\\s|$)',\n           push:\n            [ { token: 'comment.block.forth',\n                regex: '(?:^|\\\\s)\\\\*\\\\)(?=\\\\s|$)',\n                next: 'pop' },\n              { defaultToken: 'comment.block.forth' } ],\n           comment: 'multiline comments for iForth' },\n         { token: 'comment.block.documentation.forth',\n           regex: '\\\\bDOC\\\\b',\n           caseInsensitive: true,\n           push:\n            [ { token: 'comment.block.documentation.forth',\n                regex: '\\\\bENDDOC\\\\b',\n                caseInsensitive: true,\n                next: 'pop' },\n              { defaultToken: 'comment.block.documentation.forth' } ],\n           comment: 'documentation comments for iForth' },\n         { token: 'comment.line.parentheses.forth',\n           regex: '(?:^|\\\\s)\\\\.?\\\\( [^)]*\\\\)',\n           comment: 'ANSI line comment' } ],\n      '#constant':\n       [ { token: 'constant.language.forth',\n           regex: '(?:^|\\\\s)(?:TRUE|FALSE|BL|PI|CELL|C/L|R/O|W/O|R/W)(?=\\\\s|$)',\n           caseInsensitive: true},\n         { token: 'constant.numeric.forth',\n           regex: '(?:^|\\\\s)[$#%]?[-+]?[0-9]+(?:\\\\.[0-9]*e-?[0-9]+|\\\\.?[0-9a-fA-F]*)(?=\\\\s|$)'},\n         { token: 'constant.character.forth',\n           regex: '(?:^|\\\\s)(?:[&^]\\\\S|(?:\"|\\')\\\\S(?:\"|\\'))(?=\\\\s|$)'}],\n      '#forth':\n       [ { include: '#constant' },\n         { include: '#comment' },\n         { include: '#string' },\n         { include: '#word' },\n         { include: '#variable' },\n         { include: '#storage' },\n         { include: '#word-def' } ],\n      '#storage':\n       [ { token: 'storage.type.forth',\n           regex: '(?:^|\\\\s)(?:2CONSTANT|2VARIABLE|ALIAS|CONSTANT|CREATE-INTERPRET/COMPILE[:]?|CREATE|DEFER|FCONSTANT|FIELD|FVARIABLE|USER|VALUE|VARIABLE|VOCABULARY)(?=\\\\s|$)',\n           caseInsensitive: true}],\n      '#string':\n       [ { token: 'string.quoted.double.forth',\n           regex: '(ABORT\" |BREAK\" |\\\\.\" |C\" |0\"|S\\\\\\\\?\" )([^\"]+\")',\n           caseInsensitive: true},\n         { token: 'string.unquoted.forth',\n           regex: '(?:INCLUDE|NEEDS|REQUIRE|USE)[ ]\\\\S+(?=\\\\s|$)',\n           caseInsensitive: true}],\n      '#variable':\n       [ { token: 'variable.language.forth',\n           regex: '\\\\b(?:I|J)\\\\b',\n           caseInsensitive: true } ],\n      '#word':\n       [ { token: 'keyword.control.immediate.forth',\n           regex: '(?:^|\\\\s)\\\\[(?:\\\\?DO|\\\\+LOOP|AGAIN|BEGIN|DEFINED|DO|ELSE|ENDIF|FOR|IF|IFDEF|IFUNDEF|LOOP|NEXT|REPEAT|THEN|UNTIL|WHILE)\\\\](?=\\\\s|$)',\n           caseInsensitive: true},\n         { token: 'keyword.other.immediate.forth',\n           regex: '(?:^|\\\\s)(?:COMPILE-ONLY|IMMEDIATE|IS|RESTRICT|TO|WHAT\\'S|])(?=\\\\s|$)',\n           caseInsensitive: true},\n         { token: 'keyword.control.compile-only.forth',\n           regex: '(?:^|\\\\s)(?:-DO|\\\\-LOOP|\\\\?DO|\\\\?LEAVE|\\\\+DO|\\\\+LOOP|ABORT\\\\\"|AGAIN|AHEAD|BEGIN|CASE|DO|ELSE|ENDCASE|ENDIF|ENDOF|ENDTRY\\\\-IFERROR|ENDTRY|FOR|IF|IFERROR|LEAVE|LOOP|NEXT|RECOVER|REPEAT|RESTORE|THEN|TRY|U\\\\-DO|U\\\\+DO|UNTIL|WHILE)(?=\\\\s|$)',\n           caseInsensitive: true},\n         { token: 'keyword.other.compile-only.forth',\n           regex: '(?:^|\\\\s)(?:\\\\?DUP-0=-IF|\\\\?DUP-IF|\\\\)|\\\\[|\\\\[\\'\\\\]|\\\\[CHAR\\\\]|\\\\[COMPILE\\\\]|\\\\[IS\\\\]|\\\\[TO\\\\]|<COMPILATION|<INTERPRETATION|ASSERT\\\\(|ASSERT0\\\\(|ASSERT1\\\\(|ASSERT2\\\\(|ASSERT3\\\\(|COMPILATION>|DEFERS|DOES>|INTERPRETATION>|OF|POSTPONE)(?=\\\\s|$)',\n           caseInsensitive: true},\n         { token: 'keyword.other.non-immediate.forth',\n           regex: '(?:^|\\\\s)(?:\\'|<IS>|<TO>|CHAR|END-STRUCT|INCLUDE[D]?|LOAD|NEEDS|REQUIRE[D]?|REVISION|SEE|STRUCT|THRU|USE)(?=\\\\s|$)',\n           caseInsensitive: true},\n         { token: 'keyword.other.warning.forth',\n           regex: '(?:^|\\\\s)(?:~~|BREAK:|BREAK\"|DBG)(?=\\\\s|$)',\n           caseInsensitive: true}],\n      '#word-def':\n       [ { token:\n            [ 'keyword.other.compile-only.forth',\n              'keyword.other.compile-only.forth',\n              'meta.block.forth',\n              'entity.name.function.forth' ],\n           regex: '(:NONAME)|(^:|\\\\s:)(\\\\s)(\\\\S+)(?=\\\\s|$)',\n           caseInsensitive: true,\n           push:\n            [ { token: 'keyword.other.compile-only.forth',\n                regex: ';(?:CODE)?',\n                caseInsensitive: true,\n                next: 'pop' },\n              { include: '#constant' },\n              { include: '#comment' },\n              { include: '#string' },\n              { include: '#word' },\n              { include: '#variable' },\n              { include: '#storage' },\n              { defaultToken: 'meta.block.forth' } ] } ] }\n    \n    this.normalizeRules();\n};\n\nForthHighlightRules.metaData = { fileTypes: [ 'frt', 'fs', 'ldr', 'fth', '4th' ],\n      foldingStartMarker: '/\\\\*\\\\*|\\\\{\\\\s*$',\n      foldingStopMarker: '\\\\*\\\\*/|^\\\\s*\\\\}',\n      keyEquivalent: '^~F',\n      name: 'Forth',\n      scopeName: 'source.forth' }\n\n\noop.inherits(ForthHighlightRules, TextHighlightRules);\n\nexports.ForthHighlightRules = ForthHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/forth\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/forth_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar ForthHighlightRules = require(\"./forth_highlight_rules\").ForthHighlightRules;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = ForthHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"--\";\n    this.blockComment = null;\n    this.$id = \"ace/mode/forth\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-fortran.js",
    "content": "ace.define(\"ace/mode/fortran_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar FortranHighlightRules = function() {\n\n    var keywords = (\n        \"call|case|contains|continue|cycle|do|else|elseif|end|enddo|endif|function|\"+ \n        \"if|implicit|in|include|inout|intent|module|none|only|out|print|program|return|\"+ \n        \"select|status|stop|subroutine|\" +\n        \"return|then|use|while|write|\"+\n        \"CALL|CASE|CONTAINS|CONTINUE|CYCLE|DO|ELSE|ELSEIF|END|ENDDO|ENDIF|FUNCTION|\"+\n        \"IF|IMPLICIT|IN|INCLUDE|INOUT|INTENT|MODULE|NONE|ONLY|OUT|PRINT|PROGRAM|RETURN|\"+\n        \"SELECT|STATUS|STOP|SUBROUTINE|\" +\n        \"RETURN|THEN|USE|WHILE|WRITE\"\n    );\n\n    var keywordOperators = (\n        \"and|or|not|eq|ne|gt|ge|lt|le|\" +\n        \"AND|OR|NOT|EQ|NE|GT|GE|LT|LE\" \n    );\n\n    var builtinConstants = (\n        \"true|false|TRUE|FALSE\"\n    );\n\n    var builtinFunctions = (\n        \"abs|achar|acos|acosh|adjustl|adjustr|aimag|aint|all|allocate|\"+\n        \"anint|any|asin|asinh|associated|atan|atan2|atanh|\"+\n        \"bessel_j0|bessel_j1|bessel_jn|bessel_y0|bessel_y1|bessel_yn|\"+\n        \"bge|bgt|bit_size|ble|blt|btest|ceiling|char|cmplx|conjg|cos|cosh|\"+\n        \"count|cpu_time|cshift|date_and_time|dble|deallocate|digits|dim|dot_product|dprod|\"+\n        \"dshiftl|dshiftr|dsqrt|eoshift|epsilon|erf|erfc|erfc_scaled|exp|float|floor|\"+\n        \"format|fraction|gamma|input|len|lge|lgt|lle|llt|log|log10|maskl|maskr|matmul|max|maxloc|maxval|\"+\n        \"merge|min|minloc|minval|mod|modulo|nint|not|norm2|null|nullify|pack|parity|popcnt|poppar|\"+\n        \"precision|present|product|radix|random_number|random_seed|range|repeat|reshape|round|\"+\n        \"rrspacing|same_type_as|scale|scan|selected_char_kind|selected_int_kind|selected_real_kind|\"+\n        \"set_exponent|shape|shifta|shiftl|shiftr|sign|sin|sinh|size|sngl|spacing|spread|\"+\n        \"sqrt|sum|system_clock|tan|tanh|tiny|trailz|transfer|transpose|trim|ubound|unpack|verify|\" +\n        \"ABS|ACHAR|ACOS|ACOSH|ADJUSTL|ADJUSTR|AIMAG|AINT|ALL|ALLOCATE|\"+\n        \"ANINT|ANY|ASIN|ASINH|ASSOCIATED|ATAN|ATAN2|ATANH|\"+\n        \"BESSEL_J0|BESSEL_J1|BESSEL_JN|BESSEL_Y0|BESSEL_Y1|BESSEL_YN|\"+\n        \"BGE|BGT|BIT_SIZE|BLE|BLT|BTEST|CEILING|CHAR|CMPLX|CONJG|COS|COSH|\"+\n        \"COUNT|CPU_TIME|CSHIFT|DATE_AND_TIME|DBLE|DEALLOCATE|DIGITS|DIM|DOT_PRODUCT|DPROD|\"+\n        \"DSHIFTL|DSHIFTR|DSQRT|EOSHIFT|EPSILON|ERF|ERFC|ERFC_SCALED|EXP|FLOAT|FLOOR|\"+\n        \"FORMAT|FRACTION|GAMMA|INPUT|LEN|LGE|LGT|LLE|LLT|LOG|LOG10|MASKL|MASKR|MATMUL|MAX|MAXLOC|MAXVAL|\"+\n        \"MERGE|MIN|MINLOC|MINVAL|MOD|MODULO|NINT|NOT|NORM2|NULL|NULLIFY|PACK|PARITY|POPCNT|POPPAR|\"+\n        \"PRECISION|PRESENT|PRODUCT|RADIX|RANDOM_NUMBER|RANDOM_SEED|RANGE|REPEAT|RESHAPE|ROUND|\"+\n        \"RRSPACING|SAME_TYPE_AS|SCALE|SCAN|SELECTED_CHAR_KIND|SELECTED_INT_KIND|SELECTED_REAL_KIND|\"+\n        \"SET_EXPONENT|SHAPE|SHIFTA|SHIFTL|SHIFTR|SIGN|SIN|SINH|SIZE|SNGL|SPACING|SPREAD|\"+\n        \"SQRT|SUM|SYSTEM_CLOCK|TAN|TANH|TINY|TRAILZ|TRANSFER|TRANSPOSE|TRIM|UBOUND|UNPACK|VERIFY\"\n    );\n\n    var storageType = (\n        \"logical|character|integer|real|type|\" +\n        \"LOGICAL|CHARACTER|INTEGER|REAL|TYPE\"    \n    );\n\n    var storageModifiers = ( \n        \"allocatable|dimension|intent|parameter|pointer|target|private|public|\" +\n        \"ALLOCATABLE|DIMENSION|INTENT|PARAMETER|POINTER|TARGET|PRIVATE|PUBLIC\"\n    );\n\n    var keywordMapper = this.createKeywordMapper({\n        \"invalid.deprecated\": \"debugger\",\n        \"support.function\": builtinFunctions,\n        \"constant.language\": builtinConstants,\n        \"keyword\": keywords,\n        \"keyword.operator\": keywordOperators,\n        \"storage.type\": storageType,\n        \"storage.modifier\" : storageModifiers\n    }, \"identifier\");\n\n    var strPre = \"(?:r|u|ur|R|U|UR|Ur|uR)?\";\n\n    var decimalInteger = \"(?:(?:[1-9]\\\\d*)|(?:0))\";\n    var octInteger = \"(?:0[oO]?[0-7]+)\";\n    var hexInteger = \"(?:0[xX][\\\\dA-Fa-f]+)\";\n    var binInteger = \"(?:0[bB][01]+)\";\n    var integer = \"(?:\" + decimalInteger + \"|\" + octInteger + \"|\" + hexInteger + \"|\" + binInteger + \")\";\n\n    var exponent = \"(?:[eE][+-]?\\\\d+)\";\n    var fraction = \"(?:\\\\.\\\\d+)\";\n    var intPart = \"(?:\\\\d+)\";\n    var pointFloat = \"(?:(?:\" + intPart + \"?\" + fraction + \")|(?:\" + intPart + \"\\\\.))\";\n    var exponentFloat = \"(?:(?:\" + pointFloat + \"|\" +  intPart + \")\" + exponent + \")\";\n    var floatNumber = \"(?:\" + exponentFloat + \"|\" + pointFloat + \")\";\n\n    var stringEscape =  \"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";\n\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment\",\n            regex : \"!.*$\"\n        }, {\n            token : \"string\",           // multi line \"\"\" string start\n            regex : strPre + '\"{3}',\n            next : \"qqstring3\"\n        }, {\n            token : \"string\",           // \" string\n            regex : strPre + '\"(?=.)',\n            next : \"qqstring\"\n        }, {\n            token : \"string\",           // multi line ''' string start\n            regex : strPre + \"'{3}\",\n            next : \"qstring3\"\n        }, {\n            token : \"string\",           // ' string\n            regex : strPre + \"'(?=.)\",\n            next : \"qstring\"\n        }, {\n            token : \"constant.numeric\", // imaginary\n            regex : \"(?:\" + floatNumber + \"|\\\\d+)[jJ]\\\\b\"\n        }, {\n            token : \"constant.numeric\", // float\n            regex : floatNumber\n        }, {\n            token : \"constant.numeric\", // long integer\n            regex : integer + \"[lL]\\\\b\"\n        }, {\n            token : \"constant.numeric\", // integer\n            regex : integer + \"\\\\b\"\n        }, {\n            token : \"keyword\", // pre-compiler directives\n            regex : \"#\\\\s*(?:include|import|define|undef|INCLUDE|IMPORT|DEFINE|UNDEF)\\\\b\"\n        }, {\n            token : \"keyword\", // special case pre-compiler directive\n            regex : \"#\\\\s*(?:endif|ifdef|else|elseif|ifndef|ENDIF|IFDEF|ELSE|ELSEIF|IFNDEF)\\\\b\"\n        }, {\n            token : keywordMapper,\n            regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n        }, {\n            token : \"keyword.operator\",\n            regex : \"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"\n        }, {\n            token : \"paren.lparen\",\n            regex : \"[\\\\[\\\\(\\\\{]\"\n        }, {\n            token : \"paren.rparen\",\n            regex : \"[\\\\]\\\\)\\\\}]\"\n        }, {\n            token : \"text\",\n            regex : \"\\\\s+\"\n        } ],\n        \"qqstring3\" : [ {\n            token : \"constant.language.escape\",\n            regex : stringEscape\n        }, {\n            token : \"string\", // multi line \"\"\" string end\n            regex : '\"{3}',\n            next : \"start\"\n        }, {\n            defaultToken : \"string\"\n        } ],\n        \"qstring3\" : [ {\n            token : \"constant.language.escape\",\n            regex : stringEscape\n        }, {\n            token : \"string\", // multi line \"\"\" string end\n            regex : '\"{3}',\n            next : \"start\"\n        }, {\n            defaultToken : \"string\"\n        } ],\n        \"qqstring\" : [{\n            token : \"constant.language.escape\",\n            regex : stringEscape\n        }, {\n            token : \"string\",\n            regex : \"\\\\\\\\$\",\n            next  : \"qqstring\"\n        }, {\n            token : \"string\",\n            regex : '\"|$',\n            next  : \"start\"\n        }, {\n            defaultToken: \"string\"\n        }],\n        \"qstring\" : [{\n            token : \"constant.language.escape\",\n            regex : stringEscape\n        }, {\n            token : \"string\",\n            regex : \"\\\\\\\\$\",\n            next  : \"qstring\"\n        }, {\n            token : \"string\",\n            regex : \"'|$\",\n            next  : \"start\"\n        }, {\n            defaultToken: \"string\"\n        }]\n    };\n};\n\noop.inherits(FortranHighlightRules, TextHighlightRules);\n\nexports.FortranHighlightRules = FortranHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/fortran\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/fortran_highlight_rules\",\"ace/mode/folding/cstyle\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar FortranHighlightRules = require(\"./fortran_highlight_rules\").FortranHighlightRules;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Range = require(\"../range\").Range;\n\nvar Mode = function() {\n    this.HighlightRules = FortranHighlightRules;\n    this.foldingRules = new CStyleFoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"!\";\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[:]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        }\n\n        return indent;\n    };\n\n    var outdents = {\n        \"return\": 1,\n        \"break\": 1,\n        \"continue\": 1,\n        \"RETURN\": 1,\n        \"BREAK\": 1,\n        \"CONTINUE\": 1\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        if (input !== \"\\r\\n\" && input !== \"\\r\" && input !== \"\\n\")\n            return false;\n\n        var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;\n\n        if (!tokens)\n            return false;\n        do {\n            var last = tokens.pop();\n        } while (last && (last.type == \"comment\" || (last.type == \"text\" && last.value.match(/^\\s+$/))));\n\n        if (!last)\n            return false;\n\n        return (last.type == \"keyword\" && outdents[last.value]);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n\n        row += 1;\n        var indent = this.$getIndent(doc.getLine(row));\n        var tab = doc.getTabString();\n        if (indent.slice(-tab.length) == tab)\n            doc.remove(new Range(row, indent.length-tab.length, row, indent.length));\n    };\n\n    this.$id = \"ace/mode/fortran\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-ftl.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n    a           : 'anchor',\n    button \t    : 'form',\n    form        : 'form',\n    img         : 'image',\n    input       : 'form',\n    label       : 'form',\n    option      : 'form',\n    script      : 'script',\n    select      : 'form',\n    textarea    : 'form',\n    style       : 'style',\n    table       : 'table',\n    tbody       : 'table',\n    td          : 'table',\n    tfoot       : 'table',\n    th          : 'table',\n    tr          : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.addRules({\n        attributes: [{\n            include : \"tag_whitespace\"\n        }, {\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"[-_a-zA-Z0-9:.]+\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\",\n            push : [{\n                include: \"tag_whitespace\"\n            }, {\n                token : \"string.unquoted.attribute-value.html\",\n                regex : \"[^<>='\\\"`\\\\s]+\",\n                next : \"pop\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"pop\"\n            }]\n        }, {\n            include : \"attribute_value\"\n        }],\n        tag: [{\n            token : function(start, tag) {\n                var group = tagMap[tag];\n                return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                    \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n            },\n            regex : \"(</?)([-_a-zA-Z0-9:.]+)\",\n            next: \"tag_stuff\"\n        }],\n        tag_stuff: [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n        ]\n    });\n\n    this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"js-\", \"script\");\n\n    if (this.constructor === HtmlHighlightRules)\n        this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/ftl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar FtlLangHighlightRules = function () {\n\n    var stringBuiltIns = \"\\\\?|substring|cap_first|uncap_first|capitalize|chop_linebreak|date|time|datetime|\"\n        + \"ends_with|html|groups|index_of|j_string|js_string|json_string|last_index_of|length|lower_case|\"\n        + \"left_pad|right_pad|contains|matches|number|replace|rtf|url|split|starts_with|string|trim|\"\n        + \"upper_case|word_list|xhtml|xml\";\n    var numberBuiltIns = \"c|round|floor|ceiling\";\n    var dateBuiltIns = \"iso_[a-z_]+\";\n    var seqBuiltIns = \"first|last|seq_contains|seq_index_of|seq_last_index_of|reverse|size|sort|sort_by|chunk\";\n    var hashBuiltIns = \"keys|values\";\n    var xmlBuiltIns = \"children|parent|root|ancestors|node_name|node_type|node_namespace\";\n    var expertBuiltIns = \"byte|double|float|int|long|short|number_to_date|number_to_time|number_to_datetime|\"\n        + \"eval|has_content|interpret|is_[a-z_]+|namespacenew\";\n    var allBuiltIns = stringBuiltIns + numberBuiltIns + dateBuiltIns + seqBuiltIns + hashBuiltIns\n        + xmlBuiltIns + expertBuiltIns;\n\n    var deprecatedBuiltIns = \"default|exists|if_exists|web_safe\";\n\n    var variables = \"data_model|error|globals|lang|locale|locals|main|namespace|node|current_node|\"\n        + \"now|output_encoding|template_name|url_escaping_charset|vars|version\";\n\n    var operators = \"gt|gte|lt|lte|as|in|using\";\n\n    var reserved = \"true|false\";\n\n    var attributes = \"encoding|parse|locale|number_format|date_format|time_format|datetime_format|time_zone|\"\n        + \"url_escaping_charset|classic_compatible|strip_whitespace|strip_text|strict_syntax|ns_prefixes|\"\n        + \"attributes\";\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"constant.character.entity\",\n            regex : /&[^;]+;/\n        }, {\n            token : \"support.function\",\n            regex : \"\\\\?(\"+allBuiltIns+\")\"\n        },  {\n            token : \"support.function.deprecated\",\n            regex : \"\\\\?(\"+deprecatedBuiltIns+\")\"\n        }, {\n            token : \"language.variable\",\n            regex : \"\\\\.(?:\"+variables+\")\"\n        }, {\n            token : \"constant.language\",\n            regex : \"\\\\b(\"+reserved+\")\\\\b\"\n        }, {\n            token : \"keyword.operator\",\n            regex : \"\\\\b(?:\"+operators+\")\\\\b\"\n        }, {\n            token : \"entity.other.attribute-name\",\n            regex : attributes\n        }, {\n            token : \"string\", //\n            regex : /['\"]/,\n            next : \"qstring\"\n        }, {\n            token : function(value) {\n                if (value.match(\"^[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?$\")) {\n                    return \"constant.numeric\";\n                } else {\n                    return \"variable\";\n                }\n            },\n            regex : /[\\w.+\\-]+/\n        }, {\n            token : \"keyword.operator\",\n            regex : \"!|\\\\.|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=\"\n        }, {\n            token : \"paren.lparen\",\n            regex : \"[[({]\"\n        }, {\n            token : \"paren.rparen\",\n            regex : \"[\\\\])}]\"\n        }, {\n            token : \"text\",\n            regex : \"\\\\s+\"\n        }],\n\n        \"qstring\" : [{\n            token : \"constant.character.escape\",\n            regex : '\\\\\\\\[nrtvef\\\\\\\\\"$]'\n        }, {\n            token : \"string\",\n            regex : /['\"]/,\n            next : \"start\"\n        }, {\n            defaultToken : \"string\"\n        }]\n    };\n};\n\noop.inherits(FtlLangHighlightRules, TextHighlightRules);\n\nvar FtlHighlightRules = function() {\n    HtmlHighlightRules.call(this);\n\n    var directives = \"assign|attempt|break|case|compress|default|elseif|else|escape|fallback|function|flush|\"\n        + \"ftl|global|if|import|include|list|local|lt|macro|nested|noescape|noparse|nt|recover|recurse|return|rt|\"\n        + \"setting|stop|switch|t|visit\";\n\n    var startRules = [\n        {\n            token : \"comment\",\n            regex : \"<#--\",\n            next : \"ftl-dcomment\"\n        }, {\n            token : \"string.interpolated\",\n            regex : \"\\\\${\",\n            push  : \"ftl-start\"\n        }, {\n            token : \"keyword.function\",\n            regex :  \"</?#(\"+directives+\")\",\n            push : \"ftl-start\"\n        }, {\n            token : \"keyword.other\",\n            regex : \"</?@[a-zA-Z\\\\.]+\",\n            push : \"ftl-start\"\n        }\n    ];\n\n    var endRules = [\n        {\n           token : \"keyword\",\n            regex : \"/?>\",\n            next  : \"pop\"\n        }, {\n            token : \"string.interpolated\",\n            regex : \"}\",\n            next  : \"pop\"\n        }\n    ];\n\n    for (var key in this.$rules)\n        this.$rules[key].unshift.apply(this.$rules[key], startRules);\n\n    this.embedRules(FtlLangHighlightRules, \"ftl-\", endRules, [\"start\"]);\n\n    this.addRules({\n        \"ftl-dcomment\" : [{\n            token : \"comment\",\n            regex : \".*?-->\",\n            next : \"pop\"\n        }, {\n            token : \"comment\",\n            regex : \".+\"\n        }]\n    });\n\n    this.normalizeRules();\n};\n\noop.inherits(FtlHighlightRules, HtmlHighlightRules);\n\nexports.FtlHighlightRules = FtlHighlightRules;\n});\n\nace.define(\"ace/mode/ftl\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ftl_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar FtlHighlightRules = require(\"./ftl_highlight_rules\").FtlHighlightRules;\n\nvar Mode = function() {\n    this.HighlightRules = FtlHighlightRules;\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.$id = \"ace/mode/ftl\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-gcode.js",
    "content": "ace.define(\"ace/mode/gcode_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n    \"use strict\";\n\n    var oop = require(\"../lib/oop\");\n    var TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\n    var GcodeHighlightRules = function() {\n\n        var keywords = (\n            \"IF|DO|WHILE|ENDWHILE|CALL|ENDIF|SUB|ENDSUB|GOTO|REPEAT|ENDREPEAT|CALL\"\n            );\n\n        var builtinConstants = (\n            \"PI\"\n            );\n\n        var builtinFunctions = (\n            \"ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN\"\n            );\n        var keywordMapper = this.createKeywordMapper({\n            \"support.function\": builtinFunctions,\n            \"keyword\": keywords,\n            \"constant.language\": builtinConstants\n        }, \"identifier\", true);\n\n        this.$rules = {\n            \"start\" : [ {\n                token : \"comment\",\n                regex : \"\\\\(.*\\\\)\"\n            }, {\n                token : \"comment\",           // block number\n                regex : \"([N])([0-9]+)\"\n            }, {\n                token : \"string\",           // \" string\n                regex : \"([G])([0-9]+\\\\.?[0-9]?)\"\n            }, {\n                token : \"string\",           // ' string\n                regex : \"([M])([0-9]+\\\\.?[0-9]?)\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : \"([-+]?([0-9]*\\\\.?[0-9]+\\\\.?))|(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)\"\n            }, {\n                token : keywordMapper,\n                regex : \"[A-Z]\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"EQ|LT|GT|NE|GE|LE|OR|XOR\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[\\\\[]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\]]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            } ]\n        };\n    };\n\n    oop.inherits(GcodeHighlightRules, TextHighlightRules);\n\n    exports.GcodeHighlightRules = GcodeHighlightRules;\n});\n\nace.define(\"ace/mode/gcode\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/gcode_highlight_rules\",\"ace/range\"], function(require, exports, module) {\n    \"use strict\";\n\n    var oop = require(\"../lib/oop\");\n    var TextMode = require(\"./text\").Mode;\n    var GcodeHighlightRules = require(\"./gcode_highlight_rules\").GcodeHighlightRules;\n    var Range = require(\"../range\").Range;\n\n    var Mode = function() {\n        this.HighlightRules = GcodeHighlightRules;\n        this.$behaviour = this.$defaultBehaviour;\n    };\n    oop.inherits(Mode, TextMode);\n\n    (function() {\n        this.$id = \"ace/mode/gcode\";\n    }).call(Mode.prototype);\n\n    exports.Mode = Mode;\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-gherkin.js",
    "content": "ace.define(\"ace/mode/gherkin_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar stringEscape =  \"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";\n\nvar GherkinHighlightRules = function() {\n    var languages = [{\n        name: \"en\",\n        labels: \"Feature|Background|Scenario(?: Outline)?|Examples\",\n        keywords: \"Given|When|Then|And|But\"\n    }];\n    \n    var labels = languages.map(function(l) {\n        return l.labels;\n    }).join(\"|\");\n    var keywords = languages.map(function(l) {\n        return l.keywords;\n    }).join(\"|\");\n    this.$rules = {\n        start : [{\n            token: \"constant.numeric\",\n            regex: \"(?:(?:[1-9]\\\\d*)|(?:0))\"\n        }, {\n            token : \"comment\",\n            regex : \"#.*$\"\n        }, {\n            token : \"keyword\",\n            regex : \"(?:\" + labels + \"):|(?:\" + keywords + \")\\\\b\"\n        }, {\n            token : \"keyword\",\n            regex : \"\\\\*\"\n        }, {\n            token : \"string\",           // multi line \"\"\" string start\n            regex : '\"{3}',\n            next : \"qqstring3\"\n        }, {\n            token : \"string\",           // \" string\n            regex : '\"',\n            next : \"qqstring\"\n        }, {\n            token : \"text\",\n            regex : \"^\\\\s*(?=@[\\\\w])\",\n            next : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : \"variable.parameter\",\n                regex : \"@[\\\\w]+\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"start\"\n            }]\n        }, {\n            token : \"comment\",\n            regex : \"<[^>]+>\"\n        }, {\n            token : \"comment\",\n            regex : \"\\\\|(?=.)\",\n            next : \"table-item\"\n        }, {\n            token : \"comment\",\n            regex : \"\\\\|$\",\n            next : \"start\"\n        }],\n        \"qqstring3\" : [ {\n            token : \"constant.language.escape\",\n            regex : stringEscape\n        }, {\n            token : \"string\", // multi line \"\"\" string end\n            regex : '\"{3}',\n            next : \"start\"\n        }, {\n            defaultToken : \"string\"\n        }],\n        \"qqstring\" : [{\n            token : \"constant.language.escape\",\n            regex : stringEscape\n        }, {\n            token : \"string\",\n            regex : \"\\\\\\\\$\",\n            next  : \"qqstring\"\n        }, {\n            token : \"string\",\n            regex : '\"|$',\n            next  : \"start\"\n        }, {\n            defaultToken: \"string\"\n        }],\n        \"table-item\" : [{\n            token : \"comment\",\n            regex : /$/,\n            next : \"start\"\n        }, {\n            token : \"comment\",\n            regex : /\\|/\n        }, {\n            token : \"string\",\n            regex : /\\\\./\n        }, {\n            defaultToken : \"string\"\n        }]\n    };\n    this.normalizeRules();\n}\n\noop.inherits(GherkinHighlightRules, TextHighlightRules);\n\nexports.GherkinHighlightRules = GherkinHighlightRules;\n});\n\nace.define(\"ace/mode/gherkin\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/gherkin_highlight_rules\"], function(require, exports, module) {\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar GherkinHighlightRules = require(\"./gherkin_highlight_rules\").GherkinHighlightRules;\n\nvar Mode = function() {\n    this.HighlightRules = GherkinHighlightRules;\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"#\";\n    this.$id = \"ace/mode/gherkin\";\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var space2 = \"  \";\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        \n        console.log(state)\n        \n        if(line.match(\"[ ]*\\\\|\")) {\n            indent += \"| \";\n        }\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n        \n\n        if (state == \"start\") {\n            if (line.match(\"Scenario:|Feature:|Scenario Outline:|Background:\")) {\n                indent += space2;\n            } else if(line.match(\"(Given|Then).+(:)$|Examples:\")) {\n                indent += space2;\n            } else if(line.match(\"\\\\*.+\")) {\n                indent += \"* \";\n            } \n        }\n        \n\n        return indent;\n    };\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-gitignore.js",
    "content": "ace.define(\"ace/mode/gitignore_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar GitignoreHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : /^\\s*#.*$/\n            }, {\n                token : \"keyword\", // negated patterns\n                regex : /^\\s*!.*$/\n            }\n        ]\n    };\n    \n    this.normalizeRules();\n};\n\nGitignoreHighlightRules.metaData = {\n    fileTypes: ['gitignore'],\n    name: 'Gitignore'\n};\n\noop.inherits(GitignoreHighlightRules, TextHighlightRules);\n\nexports.GitignoreHighlightRules = GitignoreHighlightRules;\n});\n\nace.define(\"ace/mode/gitignore\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/gitignore_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar GitignoreHighlightRules = require(\"./gitignore_highlight_rules\").GitignoreHighlightRules;\n\nvar Mode = function() {\n    this.HighlightRules = GitignoreHighlightRules;\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"#\";\n    this.$id = \"ace/mode/gitignore\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-glsl.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar cFunctions = exports.cFunctions = \"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\"\n\nvar c_cppHighlightRules = function() {\n\n    var keywordControls = (\n        \"break|case|continue|default|do|else|for|goto|if|_Pragma|\" +\n        \"return|switch|while|catch|operator|try|throw|using\"\n    );\n    \n    var storageType = (\n        \"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|\" +\n        \"_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|\" +\n        \"class|wchar_t|template|char16_t|char32_t\"\n    );\n\n    var storageModifiers = (\n        \"const|extern|register|restrict|static|volatile|inline|private|\" +\n        \"protected|public|friend|explicit|virtual|export|mutable|typename|\" +\n        \"constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\"\n    );\n\n    var keywordOperators = (\n        \"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq\" +\n        \"const_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\"\n    );\n\n    var builtinConstants = (\n        \"NULL|true|false|TRUE|FALSE|nullptr\"\n    );\n\n    var keywordMapper = this.$keywords = this.createKeywordMapper({\n        \"keyword.control\" : keywordControls,\n        \"storage.type\" : storageType,\n        \"storage.modifier\" : storageModifiers,\n        \"keyword.operator\" : keywordOperators,\n        \"variable.language\": \"this\",\n        \"constant.language\": builtinConstants\n    }, \"identifier\");\n\n    var identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\";\n    var escapeRe = /\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source;\n\n    this.$rules = { \n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"//$\",\n                next : \"start\"\n            }, {\n                token : \"comment\",\n                regex : \"//\",\n                next : \"singleLineComment\"\n            },\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n                token : \"string\", // character\n                regex : \"'(?:\" + escapeRe + \"|.)?'\"\n            }, {\n                token : \"string.start\",\n                regex : '\"', \n                stateName: \"qqstring\",\n                next: [\n                    { token: \"string\", regex: /\\\\\\s*$/, next: \"qqstring\" },\n                    { token: \"constant.language.escape\", regex: escapeRe },\n                    { token: \"constant.language.escape\", regex: /%[^'\"\\\\]/ },\n                    { token: \"string.end\", regex: '\"|$', next: \"start\" },\n                    { defaultToken: \"string\"}\n                ]\n            }, {\n                token : \"string.start\",\n                regex : 'R\"\\\\(', \n                stateName: \"rawString\",\n                next: [\n                    { token: \"string.end\", regex: '\\\\)\"', next: \"start\" },\n                    { defaultToken: \"string\"}\n                ]\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : \"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"\n            }, {\n                token : \"keyword\", // pre-compiler directives\n                regex : \"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",\n                next  : \"directive\"\n            }, {\n                token : \"keyword\", // special case pre-compiler directive\n                regex : \"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"\n            }, {\n                token : \"support.function.C99.c\",\n                regex : cFunctions\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/\n            }, {\n              token : \"punctuation.operator\",\n              regex : \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ],\n        \"singleLineComment\" : [\n            {\n                token : \"comment\",\n                regex : /\\\\$/,\n                next : \"singleLineComment\"\n            }, {\n                token : \"comment\",\n                regex : /$/,\n                next : \"start\"\n            }, {\n                defaultToken: \"comment\"\n            }\n        ],\n        \"directive\" : [\n            {\n                token : \"constant.other.multiline\",\n                regex : /\\\\/\n            },\n            {\n                token : \"constant.other.multiline\",\n                regex : /.*\\\\/\n            },\n            {\n                token : \"constant.other\",\n                regex : \"\\\\s*<.+?>\",\n                next : \"start\"\n            },\n            {\n                token : \"constant.other\", // single line\n                regex : '\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',\n                next : \"start\"\n            }, \n            {\n                token : \"constant.other\", // single line\n                regex : \"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",\n                next : \"start\"\n            },\n            {\n                token : \"constant.other\",\n                regex : /[^\\\\\\/]+/,\n                next : \"start\"\n            }\n        ]\n    };\n\n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n    this.normalizeRules();\n};\n\noop.inherits(c_cppHighlightRules, TextHighlightRules);\n\nexports.c_cppHighlightRules = c_cppHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/c_cpp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c_cpp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar c_cppHighlightRules = require(\"./c_cpp_highlight_rules\").c_cppHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar Range = require(\"../range\").Range;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = c_cppHighlightRules;\n\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.$id = \"ace/mode/c_cpp\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/glsl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/c_cpp_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar c_cppHighlightRules = require(\"./c_cpp_highlight_rules\").c_cppHighlightRules;\n\nvar glslHighlightRules = function() {\n\n    var keywords = (\n        \"attribute|const|uniform|varying|break|continue|do|for|while|\" +\n        \"if|else|in|out|inout|float|int|void|bool|true|false|\" +\n        \"lowp|mediump|highp|precision|invariant|discard|return|mat2|mat3|\" +\n        \"mat4|vec2|vec3|vec4|ivec2|ivec3|ivec4|bvec2|bvec3|bvec4|sampler2D|\" +\n        \"samplerCube|struct\"\n    );\n\n    var buildinConstants = (\n        \"radians|degrees|sin|cos|tan|asin|acos|atan|pow|\" +\n        \"exp|log|exp2|log2|sqrt|inversesqrt|abs|sign|floor|ceil|fract|mod|\" +\n        \"min|max|clamp|mix|step|smoothstep|length|distance|dot|cross|\" +\n        \"normalize|faceforward|reflect|refract|matrixCompMult|lessThan|\" +\n        \"lessThanEqual|greaterThan|greaterThanEqual|equal|notEqual|any|all|\" +\n        \"not|dFdx|dFdy|fwidth|texture2D|texture2DProj|texture2DLod|\" +\n        \"texture2DProjLod|textureCube|textureCubeLod|\" +\n        \"gl_MaxVertexAttribs|gl_MaxVertexUniformVectors|gl_MaxVaryingVectors|\" +\n        \"gl_MaxVertexTextureImageUnits|gl_MaxCombinedTextureImageUnits|\" +\n        \"gl_MaxTextureImageUnits|gl_MaxFragmentUniformVectors|gl_MaxDrawBuffers|\" +\n        \"gl_DepthRangeParameters|gl_DepthRange|\" +\n        \"gl_Position|gl_PointSize|\" +\n        \"gl_FragCoord|gl_FrontFacing|gl_PointCoord|gl_FragColor|gl_FragData\"\n    );\n\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\": \"this\",\n        \"keyword\": keywords,\n        \"constant.language\": buildinConstants\n    }, \"identifier\");\n\n    this.$rules = new c_cppHighlightRules().$rules;\n    this.$rules.start.forEach(function(rule) {\n        if (typeof rule.token == \"function\")\n            rule.token = keywordMapper;\n    })\n};\n\noop.inherits(glslHighlightRules, c_cppHighlightRules);\n\nexports.glslHighlightRules = glslHighlightRules;\n});\n\nace.define(\"ace/mode/glsl\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/c_cpp\",\"ace/mode/glsl_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar CMode = require(\"./c_cpp\").Mode;\nvar glslHighlightRules = require(\"./glsl_highlight_rules\").glslHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar Range = require(\"../range\").Range;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = glslHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, CMode);\n\n(function() {\n    this.$id = \"ace/mode/glsl\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-gobstones.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/gobstones_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar GobstonesHighlightRules = function() {\n\n    var keywords = (\n    \"program|procedure|function|interactive|if|then|else|switch|repeat|while|foreach|in|not|div|mod|Skip|return\"\n    );\n\n    var buildinConstants = (\n        \"False|True\"\n    );\n\n\n    var langClasses = (\n        \"Poner|Sacar|Mover|IrAlBorde|VaciarTablero|\" +\n        \"nroBolitas|hayBolitas|puedeMover|siguiente|previo|opuesto|minBool|maxBool|\" +\n        \"minDir|maxDir|minColor|maxColor\"\n    );\n\n    var supportType = (\n        \"Verde|Rojo|Azul|Negro|Norte|Sur|Este|Oeste\"\n    );\n\n    var keywordMapper = this.createKeywordMapper({\n        \"keyword\": keywords,\n        \"constant.language\": buildinConstants,\n        \"support.function\": langClasses,\n        \"support.type\": supportType\n    }, \"identifier\");\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"\\\\/\\\\/.*$\"\n            },\n            {\n                token : \"comment\",\n                regex : \"\\\\-\\\\-.*$\"\n            },\n            {\n                token : \"comment\",\n                regex : \"#.*$\"\n            },\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n\n                token : \"string\", // single line\n                regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n            }, {\n                token : \"string\", // single line\n                regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.[\\d_]*)?(?:[eE][+-]?[\\d_]+)?)?[LlSsDdFfYy]?\\b/\n            }, {\n                token : \"constant.language.boolean\",\n                regex : \"(?:True|False)\\\\b\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \":=|\\\\.\\\\.|,|;|\\\\|\\\\||\\\\/\\\\/|\\\\+|\\\\-|\\\\^|\\\\*|>|<|>=|=>|==|&&\"\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n            }, {\n                token : \"lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ]\n    };\n\n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n};\n\noop.inherits(GobstonesHighlightRules, TextHighlightRules);\n\nexports.GobstonesHighlightRules = GobstonesHighlightRules;\n});\n\nace.define(\"ace/mode/gobstones\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/gobstones_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar GobstonesHighlightRules = require(\"./gobstones_highlight_rules\").GobstonesHighlightRules;\n\nvar Mode = function() {\n    JavaScriptMode.call(this);\n    this.HighlightRules = GobstonesHighlightRules;\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, JavaScriptMode);\n\n(function() {\n    \n    this.createWorker = function(session) {\n        return null;\n    };\n\n    this.$id = \"ace/mode/gobstones\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-golang.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/golang_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n    var oop = require(\"../lib/oop\");\n    var DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\n    var TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\n    var GolangHighlightRules = function() {\n        var keywords = (\n            \"else|break|case|return|goto|if|const|select|\" +\n            \"continue|struct|default|switch|for|range|\" +\n            \"func|import|package|chan|defer|fallthrough|go|interface|map|range|\" +\n            \"select|type|var\"\n        );\n        var builtinTypes = (\n            \"string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|\" +\n            \"float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error\"\n        );\n        var builtinFunctions = (\n            \"new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append\"\n        );\n        var builtinConstants = (\"nil|true|false|iota\");\n\n        var keywordMapper = this.createKeywordMapper({\n            \"keyword\": keywords,\n            \"constant.language\": builtinConstants,\n            \"support.function\": builtinFunctions,\n            \"support.type\": builtinTypes\n        }, \"\");\n        \n        var stringEscapeRe = \"\\\\\\\\(?:[0-7]{3}|x\\\\h{2}|u{4}|U\\\\h{6}|[abfnrtv'\\\"\\\\\\\\])\".replace(/\\\\h/g, \"[a-fA-F\\\\d]\");\n\n        this.$rules = {\n            \"start\" : [\n                {\n                    token : \"comment\",\n                    regex : \"\\\\/\\\\/.*$\"\n                },\n                DocCommentHighlightRules.getStartRule(\"doc-start\"),\n                {\n                    token : \"comment.start\", // multi line comment\n                    regex : \"\\\\/\\\\*\",\n                    next : \"comment\"\n                }, {\n                    token : \"string\", // single line\n                    regex : /\"(?:[^\"\\\\]|\\\\.)*?\"/\n                }, {\n                    token : \"string\", // raw\n                    regex : '`',\n                    next : \"bqstring\"\n                }, {\n                    token : \"constant.numeric\", // rune\n                    regex : \"'(?:[^\\\\'\\uD800-\\uDBFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|\" + stringEscapeRe.replace('\"', '')  + \")'\"\n                }, {\n                    token : \"constant.numeric\", // hex\n                    regex : \"0[xX][0-9a-fA-F]+\\\\b\" \n                }, {\n                    token : \"constant.numeric\", // float\n                    regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n                }, {\n                    token : [\"keyword\", \"text\", \"entity.name.function\"],\n                    regex : \"(func)(\\\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\\\b\"\n                }, {\n                    token : function(val) {\n                        if (val[val.length - 1] == \"(\") {\n                            return [{\n                                type: keywordMapper(val.slice(0, -1)) || \"support.function\",\n                                value: val.slice(0, -1)\n                            }, {\n                                type: \"paren.lparen\",\n                                value: val.slice(-1)\n                            }];\n                        }\n                        \n                        return keywordMapper(val) || \"identifier\";\n                    },\n                    regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\\\\(?\"\n                }, {\n                    token : \"keyword.operator\",\n                    regex : \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=\"\n                }, {\n                    token : \"punctuation.operator\",\n                    regex : \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n                }, {\n                    token : \"paren.lparen\",\n                    regex : \"[[({]\"\n                }, {\n                    token : \"paren.rparen\",\n                    regex : \"[\\\\])}]\"\n                }, {\n                    token : \"text\",\n                    regex : \"\\\\s+\"\n                }\n            ],\n            \"comment\" : [\n                {\n                    token : \"comment.end\",\n                    regex : \"\\\\*\\\\/\",\n                    next : \"start\"\n                }, {\n                    defaultToken : \"comment\"\n                }\n            ],\n            \"bqstring\" : [\n                {\n                    token : \"string\",\n                    regex : '`',\n                    next : \"start\"\n                }, {\n                    defaultToken : \"string\"\n                }\n            ]\n        };\n\n        this.embedRules(DocCommentHighlightRules, \"doc-\",\n            [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n    };\n    oop.inherits(GolangHighlightRules, TextHighlightRules);\n\n    exports.GolangHighlightRules = GolangHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/golang\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/golang_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar GolangHighlightRules = require(\"./golang_highlight_rules\").GolangHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = GolangHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.foldingRules = new CStyleFoldMode();\n    this.$behaviour = new CstyleBehaviour();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    \n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n        \n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        }\n\n        return indent;\n    };//end getNextLineIndent\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.$id = \"ace/mode/golang\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-groovy.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/groovy_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar GroovyHighlightRules = function() {\n\n    var keywords = (\n        \"assert|with|abstract|continue|for|new|switch|\" +\n        \"assert|default|goto|package|synchronized|\" +\n        \"boolean|do|if|private|this|\" +\n        \"break|double|implements|protected|throw|\" +\n        \"byte|else|import|public|throws|\" +\n        \"case|enum|instanceof|return|transient|\" +\n        \"catch|extends|int|short|try|\" +\n        \"char|final|interface|static|void|\" +\n        \"class|finally|long|strictfp|volatile|\" +\n        \"def|float|native|super|while\"\n    );\n\n    var buildinConstants = (\n        \"null|Infinity|NaN|undefined\"\n    );\n\n    var langClasses = (\n        \"AbstractMethodError|AssertionError|ClassCircularityError|\"+\n        \"ClassFormatError|Deprecated|EnumConstantNotPresentException|\"+\n        \"ExceptionInInitializerError|IllegalAccessError|\"+\n        \"IllegalThreadStateException|InstantiationError|InternalError|\"+\n        \"NegativeArraySizeException|NoSuchFieldError|Override|Process|\"+\n        \"ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|\"+\n        \"SuppressWarnings|TypeNotPresentException|UnknownError|\"+\n        \"UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|\"+\n        \"InstantiationException|IndexOutOfBoundsException|\"+\n        \"ArrayIndexOutOfBoundsException|CloneNotSupportedException|\"+\n        \"NoSuchFieldException|IllegalArgumentException|NumberFormatException|\"+\n        \"SecurityException|Void|InheritableThreadLocal|IllegalStateException|\"+\n        \"InterruptedException|NoSuchMethodException|IllegalAccessException|\"+\n        \"UnsupportedOperationException|Enum|StrictMath|Package|Compiler|\"+\n        \"Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|\"+\n        \"NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|\"+\n        \"NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|\"+\n        \"Character|Boolean|StackTraceElement|Appendable|StringBuffer|\"+\n        \"Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|\"+\n        \"StackOverflowError|OutOfMemoryError|VirtualMachineError|\"+\n        \"ArrayStoreException|ClassCastException|LinkageError|\"+\n        \"NoClassDefFoundError|ClassNotFoundException|RuntimeException|\"+\n        \"Exception|ThreadDeath|Error|Throwable|System|ClassLoader|\"+\n        \"Cloneable|Class|CharSequence|Comparable|String|Object\"\n    );\n\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\": \"this\",\n        \"keyword\": keywords,\n        \"support.function\": langClasses,\n        \"constant.language\": buildinConstants\n    }, \"identifier\");\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"\\\\/\\\\/.*$\"\n            },\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n                token : \"string.regexp\",\n                regex : \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"\n            }, {\n                token : \"string\",\n                regex : '\"\"\"',\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : \"'''\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\", // single line\n                regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n            }, {\n                token : \"string\", // single line\n                regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n            }, {\n                token : \"constant.language.boolean\",\n                regex : \"(?:true|false)\\\\b\"\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"\\\\?:|\\\\?\\\\.|\\\\*\\\\.|<=>|=~|==~|\\\\.@|\\\\*\\\\.@|\\\\.&|as|in|is|!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n            }, {\n                token : \"lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : /\\\\(?:u[0-9A-Fa-f]{4}|.|$)/\n            }, {\n                token : \"constant.language.escape\",\n                regex : /\\$[\\w\\d]+/\n            }, {\n                token : \"constant.language.escape\",\n                regex : /\\$\\{[^\"\\}]+\\}?/\n            }, {\n                token : \"string\",\n                regex : '\"{3,5}',\n                next : \"start\"\n            }, {\n                token : \"string\",\n                regex : '.+?'\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : /\\\\(?:u[0-9A-Fa-f]{4}|.|$)/\n            }, {\n                token : \"string\",\n                regex : \"'{3,5}\",\n                next : \"start\"\n            }, {\n                token : \"string\",\n                regex : \".+?\"\n            }\n        ]\n    };\n\n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n};\n\noop.inherits(GroovyHighlightRules, TextHighlightRules);\n\nexports.GroovyHighlightRules = GroovyHighlightRules;\n});\n\nace.define(\"ace/mode/groovy\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/groovy_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar GroovyHighlightRules = require(\"./groovy_highlight_rules\").GroovyHighlightRules;\n\nvar Mode = function() {\n    JavaScriptMode.call(this);\n    this.HighlightRules = GroovyHighlightRules;\n};\noop.inherits(Mode, JavaScriptMode);\n\n(function() {\n\n    this.createWorker = function(session) {\n        return null;\n    };\n\n    this.$id = \"ace/mode/groovy\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-haml.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n    a           : 'anchor',\n    button \t    : 'form',\n    form        : 'form',\n    img         : 'image',\n    input       : 'form',\n    label       : 'form',\n    option      : 'form',\n    script      : 'script',\n    select      : 'form',\n    textarea    : 'form',\n    style       : 'style',\n    table       : 'table',\n    tbody       : 'table',\n    td          : 'table',\n    tfoot       : 'table',\n    th          : 'table',\n    tr          : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.addRules({\n        attributes: [{\n            include : \"tag_whitespace\"\n        }, {\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"[-_a-zA-Z0-9:.]+\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\",\n            push : [{\n                include: \"tag_whitespace\"\n            }, {\n                token : \"string.unquoted.attribute-value.html\",\n                regex : \"[^<>='\\\"`\\\\s]+\",\n                next : \"pop\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"pop\"\n            }]\n        }, {\n            include : \"attribute_value\"\n        }],\n        tag: [{\n            token : function(start, tag) {\n                var group = tagMap[tag];\n                return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                    \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n            },\n            regex : \"(</?)([-_a-zA-Z0-9:.]+)\",\n            next: \"tag_stuff\"\n        }],\n        tag_stuff: [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n        ]\n    });\n\n    this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"js-\", \"script\");\n\n    if (this.constructor === HtmlHighlightRules)\n        this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/ruby_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar constantOtherSymbol = exports.constantOtherSymbol = {\n    token : \"constant.other.symbol.ruby\", // symbol\n    regex : \"[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?\"\n};\n\nvar qString = exports.qString = {\n    token : \"string\", // single line\n    regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n};\n\nvar qqString = exports.qqString = {\n    token : \"string\", // single line\n    regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n};\n\nvar tString = exports.tString = {\n    token : \"string\", // backtick string\n    regex : \"[`](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[`]\"\n};\n\nvar constantNumericHex = exports.constantNumericHex = {\n    token : \"constant.numeric\", // hex\n    regex : \"0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\\\b\"\n};\n\nvar constantNumericFloat = exports.constantNumericFloat = {\n    token : \"constant.numeric\", // float\n    regex : \"[+-]?\\\\d(?:\\\\d|_(?=\\\\d))*(?:(?:\\\\.\\\\d(?:\\\\d|_(?=\\\\d))*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n};\n\nvar RubyHighlightRules = function() {\n\n    var builtinFunctions = (\n        \"abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|\" +\n        \"assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|\" +\n        \"assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|\" +\n        \"assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|\" +\n        \"assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|\" +\n        \"assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|\" +\n        \"attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|\" +\n        \"caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|\" +\n        \"exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|\" +\n        \"gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|\" +\n        \"link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|\" +\n        \"p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|\" +\n        \"raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|\" +\n        \"set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|\" +\n        \"throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|\" +\n        \"render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|\" +\n        \"content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|\" +\n        \"fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|\" +\n        \"time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|\" +\n        \"select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|\" +\n        \"file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|\" +\n        \"protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|\" +\n        \"send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|\" +\n        \"validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|\" +\n        \"validates_inclusion_of|validates_numericality_of|validates_with|validates_each|\" +\n        \"authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|\" +\n        \"filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|\" +\n        \"translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|\" +\n        \"cache|expire_fragment|expire_cache_for|observe|cache_sweeper|\" +\n        \"has_many|has_one|belongs_to|has_and_belongs_to_many\"\n    );\n\n    var keywords = (\n        \"alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|\" +\n        \"__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|\" +\n        \"redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield\"\n    );\n\n    var buildinConstants = (\n        \"true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|\" +\n        \"RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING\"\n    );\n\n    var builtinVariables = (\n        \"$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|\" +\n        \"$!|root_url|flash|session|cookies|params|request|response|logger|self\"\n    );\n\n    var keywordMapper = this.$keywords = this.createKeywordMapper({\n        \"keyword\": keywords,\n        \"constant.language\": buildinConstants,\n        \"variable.language\": builtinVariables,\n        \"support.function\": builtinFunctions,\n        \"invalid.deprecated\": \"debugger\" // TODO is this a remnant from js mode?\n    }, \"identifier\");\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"#.*$\"\n            }, {\n                token : \"comment\", // multi line comment\n                regex : \"^=begin(?:$|\\\\s.*$)\",\n                next : \"comment\"\n            }, {\n                token : \"string.regexp\",\n                regex : \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"\n            },\n\n            [{\n                regex: \"[{}]\", onMatch: function(val, state, stack) {\n                    this.next = val == \"{\" ? this.nextState : \"\";\n                    if (val == \"{\" && stack.length) {\n                        stack.unshift(\"start\", state);\n                        return \"paren.lparen\";\n                    }\n                    if (val == \"}\" && stack.length) {\n                        stack.shift();\n                        this.next = stack.shift();\n                        if (this.next.indexOf(\"string\") != -1)\n                            return \"paren.end\";\n                    }\n                    return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n                },\n                nextState: \"start\"\n            }, {\n                token : \"string.start\",\n                regex : /\"/,\n                push  : [{\n                    token : \"constant.language.escape\",\n                    regex : /\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/\n                }, {\n                    token : \"paren.start\",\n                    regex : /#{/,\n                    push  : \"start\"\n                }, {\n                    token : \"string.end\",\n                    regex : /\"/,\n                    next  : \"pop\"\n                }, {\n                    defaultToken: \"string\"\n                }]\n            }, {\n                token : \"string.start\",\n                regex : /`/,\n                push  : [{\n                    token : \"constant.language.escape\",\n                    regex : /\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/\n                }, {\n                    token : \"paren.start\",\n                    regex : /#{/,\n                    push  : \"start\"\n                }, {\n                    token : \"string.end\",\n                    regex : /`/,\n                    next  : \"pop\"\n                }, {\n                    defaultToken: \"string\"\n                }]\n            }, {\n                token : \"string.start\",\n                regex : /'/,\n                push  : [{\n                    token : \"constant.language.escape\",\n                    regex : /\\\\['\\\\]/\n                },  {\n                    token : \"string.end\",\n                    regex : /'/,\n                    next  : \"pop\"\n                }, {\n                    defaultToken: \"string\"\n                }]\n            }],\n\n            {\n                token : \"text\", // namespaces aren't symbols\n                regex : \"::\"\n            }, {\n                token : \"variable.instance\", // instance variable\n                regex : \"@{1,2}[a-zA-Z_\\\\d]+\"\n            }, {\n                token : \"support.class\", // class name\n                regex : \"[A-Z][a-zA-Z_\\\\d]+\"\n            },\n\n            constantOtherSymbol,\n            constantNumericHex,\n            constantNumericFloat,\n\n            {\n                token : \"constant.language.boolean\",\n                regex : \"(?:true|false)\\\\b\"\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n            }, {\n                token : \"punctuation.separator.key-value\",\n                regex : \"=>\"\n            }, {\n                stateName: \"heredoc\",\n                onMatch : function(value, currentState, stack) {\n                    var next = value[2] == '-' ? \"indentedHeredoc\" : \"heredoc\";\n                    var tokens = value.split(this.splitRegex);\n                    stack.push(next, tokens[3]);\n                    return [\n                        {type:\"constant\", value: tokens[1]},\n                        {type:\"string\", value: tokens[2]},\n                        {type:\"support.class\", value: tokens[3]},\n                        {type:\"string\", value: tokens[4]}\n                    ];\n                },\n                regex : \"(<<-?)(['\\\"`]?)([\\\\w]+)(['\\\"`]?)\",\n                rules: {\n                    heredoc: [{\n                        onMatch:  function(value, currentState, stack) {\n                            if (value === stack[1]) {\n                                stack.shift();\n                                stack.shift();\n                                this.next = stack[0] || \"start\";\n                                return \"support.class\";\n                            }\n                            this.next = \"\";\n                            return \"string\";\n                        },\n                        regex: \".*$\",\n                        next: \"start\"\n                    }],\n                    indentedHeredoc: [{\n                        token: \"string\",\n                        regex: \"^ +\"\n                    }, {\n                        onMatch:  function(value, currentState, stack) {\n                            if (value === stack[1]) {\n                                stack.shift();\n                                stack.shift();\n                                this.next = stack[0] || \"start\";\n                                return \"support.class\";\n                            }\n                            this.next = \"\";\n                            return \"string\";\n                        },\n                        regex: \".*$\",\n                        next: \"start\"\n                    }]\n                }\n            }, {\n                regex : \"$\",\n                token : \"empty\",\n                next : function(currentState, stack) {\n                    if (stack[0] === \"heredoc\" || stack[0] === \"indentedHeredoc\")\n                        return stack[0];\n                    return currentState;\n                }\n            }, {\n               token : \"string.character\",\n               regex : \"\\\\B\\\\?.\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \"^=end(?:$|\\\\s.*$)\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(RubyHighlightRules, TextHighlightRules);\n\nexports.RubyHighlightRules = RubyHighlightRules;\n});\n\nace.define(\"ace/mode/haml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/ruby_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar RubyExports = require(\"./ruby_highlight_rules\");\nvar RubyHighlightRules = RubyExports.RubyHighlightRules;\n\nvar HamlHighlightRules = function() {\n    HtmlHighlightRules.call(this);\n    this.$rules.start.unshift(\n        {\n            token : \"punctuation.section.comment\",\n            regex : /^\\s*\\/.*/\n        },\n        {\n            token: \"string.quoted.double\",\n            regex: \"==.+?==\"\n        },\n        {\n            token: \"keyword.other.doctype\",\n            regex: \"^!!!\\\\s*(?:[a-zA-Z0-9-_]+)?\"\n        },\n        RubyExports.qString,\n        RubyExports.qqString,\n        RubyExports.tString,\n        {\n            token: \"character.escape.haml\",\n            regex: \"^\\\\s*\\\\\\\\.\"\n        },\n        {\n            token: \"text\",\n            regex: /^\\s*/,\n            next: \"tag_single\"\n        },\n        RubyExports.constantNumericHex,\n        RubyExports.constantNumericFloat,\n        \n        RubyExports.constantOtherSymbol,\n        {\n            token: \"text\",\n            regex: \"=|-|~\",\n            next: \"embedded_ruby\"\n        }\n    );\n    this.$rules.tag_single = [\n        {\n            token: \"meta.tag.haml\",\n            regex: /(%[\\w:\\-]+)/\n        },\n        {\n            token: \"keyword.attribute-name.class.haml\",\n            regex: \"\\\\.[\\\\w-]+\"\n        },\n        {\n            token: \"keyword.attribute-name.id.haml\",\n            regex: \"#[\\\\w-]+\"\n        },\n        {\n            token: \"punctuation.section\",\n            regex: \"\\\\{\",\n            next: \"section\"\n        },\n        \n        RubyExports.constantOtherSymbol,\n        \n        {\n            token: \"text\",\n            regex: /\\s/,\n            next: \"start\"\n        },\n        {\n            token: \"empty\",\n            regex: \"$|(?!\\\\.|#|\\\\{|\\\\[|=|-|~|\\\\/)\",\n            next: \"start\"\n        }\n    ];\n    this.$rules.section = [\n        RubyExports.constantOtherSymbol,\n        \n        RubyExports.qString,\n        RubyExports.qqString,\n        RubyExports.tString,\n        \n        RubyExports.constantNumericHex,\n        RubyExports.constantNumericFloat,\n        {\n            token: \"punctuation.section\",\n            regex: \"\\\\}\",\n            next: \"start\"\n        } \n    ];\n    \n    this.$rules.embedded_ruby = [ \n        RubyExports.constantNumericHex,\n        RubyExports.constantNumericFloat,\n        {\n                token : \"support.class\", // class name\n                regex : \"[A-Z][a-zA-Z_\\\\d]+\"\n        },    \n        {\n            token : new RubyHighlightRules().getKeywords(),\n            regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n        },\n        {\n            token : [\"keyword\", \"text\", \"text\"],\n            regex : \"(?:do|\\\\{)(?: \\\\|[^|]+\\\\|)?$\",\n            next  : \"start\"\n        }, \n        {\n            token : [\"text\"],\n            regex : \"^$\",\n            next  : \"start\"\n        }, \n        {\n            token : [\"text\"],\n            regex : \"^(?!.*\\\\|\\\\s*$)\",\n            next  : \"start\"\n        }\n    ];\n\n    this.normalizeRules();\n};\n\noop.inherits(HamlHighlightRules, HtmlHighlightRules);\n\nexports.HamlHighlightRules = HamlHighlightRules;\n});\n\nace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var range = this.indentationBlock(session, row);\n        if (range)\n            return range;\n\n        var re = /\\S/;\n        var line = session.getLine(row);\n        var startLevel = line.search(re);\n        if (startLevel == -1 || line[startLevel] != \"#\")\n            return;\n\n        var startColumn = line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var level = line.search(re);\n\n            if (level == -1)\n                continue;\n\n            if (line[level] != \"#\")\n                break;\n\n            endRow = row;\n        }\n\n        if (endRow > startRow) {\n            var endColumn = session.getLine(endRow).length;\n            return new Range(startRow, startColumn, endRow, endColumn);\n        }\n    };\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var indent = line.search(/\\S/);\n        var next = session.getLine(row + 1);\n        var prev = session.getLine(row - 1);\n        var prevIndent = prev.search(/\\S/);\n        var nextIndent = next.search(/\\S/);\n\n        if (indent == -1) {\n            session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n            return \"\";\n        }\n        if (prevIndent == -1) {\n            if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n                session.foldWidgets[row - 1] = \"\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"start\";\n            }\n        } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n            if (session.getLine(row - 2).search(/\\S/) == -1) {\n                session.foldWidgets[row - 1] = \"start\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"\";\n            }\n        }\n\n        if (prevIndent!= -1 && prevIndent < indent)\n            session.foldWidgets[row - 1] = \"start\";\n        else\n            session.foldWidgets[row - 1] = \"\";\n\n        if (indent < nextIndent)\n            return \"start\";\n        else\n            return \"\";\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/haml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/haml_highlight_rules\",\"ace/mode/folding/coffee\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar HamlHighlightRules = require(\"./haml_highlight_rules\").HamlHighlightRules;\nvar FoldMode = require(\"./folding/coffee\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = HamlHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"//\";\n    \n    this.$id = \"ace/mode/haml\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-handlebars.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar propertyMap = {\n    \"background\": {\"#$0\": 1},\n    \"background-color\": {\"#$0\": 1, \"transparent\": 1, \"fixed\": 1},\n    \"background-image\": {\"url('/$0')\": 1},\n    \"background-repeat\": {\"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1},\n    \"background-position\": {\"bottom\":2, \"center\":2, \"left\":2, \"right\":2, \"top\":2, \"inherit\":2},\n    \"background-attachment\": {\"scroll\": 1, \"fixed\": 1},\n    \"background-size\": {\"cover\": 1, \"contain\": 1},\n    \"background-clip\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"background-origin\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"border\": {\"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1},\n    \"border-color\": {\"#$0\": 1},\n    \"border-style\": {\"solid\":2, \"dashed\":2, \"dotted\":2, \"double\":2, \"groove\":2, \"hidden\":2, \"inherit\":2, \"inset\":2, \"none\":2, \"outset\":2, \"ridged\":2},\n    \"border-collapse\": {\"collapse\": 1, \"separate\": 1},\n    \"bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"clear\": {\"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1},\n    \"color\": {\"#$0\": 1, \"rgb(#$00,0,0)\": 1},\n    \"cursor\": {\"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1},\n    \"display\": {\"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1},\n    \"empty-cells\": {\"show\": 1, \"hide\": 1},\n    \"float\": {\"left\": 1, \"right\": 1, \"none\": 1},\n    \"font-family\": {\"Arial\":2,\"Comic Sans MS\":2,\"Consolas\":2,\"Courier New\":2,\"Courier\":2,\"Georgia\":2,\"Monospace\":2,\"Sans-Serif\":2, \"Segoe UI\":2,\"Tahoma\":2,\"Times New Roman\":2,\"Trebuchet MS\":2,\"Verdana\": 1},\n    \"font-size\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"font-weight\": {\"bold\": 1, \"normal\": 1},\n    \"font-style\": {\"italic\": 1, \"normal\": 1},\n    \"font-variant\": {\"normal\": 1, \"small-caps\": 1},\n    \"height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"letter-spacing\": {\"normal\": 1},\n    \"line-height\": {\"normal\": 1},\n    \"list-style-type\": {\"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1},\n    \"margin\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"overflow\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-x\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-y\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"padding\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"page-break-after\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"page-break-before\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"position\": {\"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1},\n    \"right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"table-layout\": {\"fixed\": 1, \"auto\": 1},\n    \"text-decoration\": {\"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1},\n    \"text-align\": {\"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1},\n    \"text-transform\": {\"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1},\n    \"top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"vertical-align\": {\"top\": 1, \"bottom\": 1},\n    \"visibility\": {\"hidden\": 1, \"visible\": 1},\n    \"white-space\": {\"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1},\n    \"width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"word-spacing\": {\"normal\": 1},\n    \"filter\": {\"alpha(opacity=$0100)\": 1},\n\n    \"text-shadow\": {\"$02px 2px 2px #777\": 1},\n    \"text-overflow\": {\"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1},\n    \"-moz-border-radius\": 1,\n    \"-moz-border-radius-topright\": 1,\n    \"-moz-border-radius-bottomright\": 1,\n    \"-moz-border-radius-topleft\": 1,\n    \"-moz-border-radius-bottomleft\": 1,\n    \"-webkit-border-radius\": 1,\n    \"-webkit-border-top-right-radius\": 1,\n    \"-webkit-border-top-left-radius\": 1,\n    \"-webkit-border-bottom-right-radius\": 1,\n    \"-webkit-border-bottom-left-radius\": 1,\n    \"-moz-box-shadow\": 1,\n    \"-webkit-box-shadow\": 1,\n    \"transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-moz-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-webkit-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\n\nvar CssCompletions = function() {\n\n};\n\n(function() {\n\n    this.completionsDefined = false;\n\n    this.defineCompletions = function() {\n        if (document) {\n            var style = document.createElement('c').style;\n\n            for (var i in style) {\n                if (typeof style[i] !== 'string')\n                    continue;\n\n                var name = i.replace(/[A-Z]/g, function(x) {\n                    return '-' + x.toLowerCase();\n                });\n\n                if (!propertyMap.hasOwnProperty(name))\n                    propertyMap[name] = 1;\n            }\n        }\n\n        this.completionsDefined = true;\n    }\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        if (!this.completionsDefined) {\n            this.defineCompletions();\n        }\n\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (state==='ruleset'){\n            var line = session.getLine(pos.row).substr(0, pos.column);\n            if (/:[^;]+$/.test(line)) {\n                /([\\w\\-]+):[^:]*$/.test(line);\n\n                return this.getPropertyValueCompletions(state, session, pos, prefix);\n            } else {\n                return this.getPropertyCompletions(state, session, pos, prefix);\n            }\n        }\n\n        return [];\n    };\n\n    this.getPropertyCompletions = function(state, session, pos, prefix) {\n        var properties = Object.keys(propertyMap);\n        return properties.map(function(property){\n            return {\n                caption: property,\n                snippet: property + ': $0',\n                meta: \"property\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getPropertyValueCompletions = function(state, session, pos, prefix) {\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n\n        if (!property)\n            return [];\n        var values = [];\n        if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n            values = Object.keys(propertyMap[property]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"property value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(CssCompletions.prototype);\n\nexports.CssCompletions = CssCompletions;\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar CssBehaviour = function () {\n\n    this.inherit(CstyleBehaviour);\n\n    this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(cursor.row);\n                var rightChar = line.substring(cursor.column, cursor.column + 1);\n                if (rightChar === ':') {\n                    return {\n                       text: '',\n                       selection: [1, 1]\n                    }\n                }\n                if (!line.substring(cursor.column).match(/^\\s*;/)) {\n                    return {\n                       text: ':;',\n                       selection: [1, 1]\n                    }\n                }\n            }\n        }\n    });\n\n    this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && selected === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(range.start.row);\n                var rightChar = line.substring(range.end.column, range.end.column + 1);\n                if (rightChar === ';') {\n                    range.end.column ++;\n                    return range;\n                }\n            }\n        }\n    });\n\n    this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ';') {\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar === ';') {\n                return {\n                   text: '',\n                   selection: [1, 1]\n                }\n            }\n        }\n    });\n\n}\noop.inherits(CssBehaviour, CstyleBehaviour);\n\nexports.CssBehaviour = CssBehaviour;\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = CssHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CssBehaviour();\n    this.$completer = new CssCompletions();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.foldingRules = \"cStyle\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        var match = line.match(/^.*\\{\\s*$/);\n        if (match) {\n            indent += tab;\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/css\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n    a           : 'anchor',\n    button \t    : 'form',\n    form        : 'form',\n    img         : 'image',\n    input       : 'form',\n    label       : 'form',\n    option      : 'form',\n    script      : 'script',\n    select      : 'form',\n    textarea    : 'form',\n    style       : 'style',\n    table       : 'table',\n    tbody       : 'table',\n    td          : 'table',\n    tfoot       : 'table',\n    th          : 'table',\n    tr          : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.addRules({\n        attributes: [{\n            include : \"tag_whitespace\"\n        }, {\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"[-_a-zA-Z0-9:.]+\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\",\n            push : [{\n                include: \"tag_whitespace\"\n            }, {\n                token : \"string.unquoted.attribute-value.html\",\n                regex : \"[^<>='\\\"`\\\\s]+\",\n                next : \"pop\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"pop\"\n            }]\n        }, {\n            include : \"attribute_value\"\n        }],\n        tag: [{\n            token : function(start, tag) {\n                var group = tagMap[tag];\n                return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                    \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n            },\n            regex : \"(</?)([-_a-zA-Z0-9:.]+)\",\n            next: \"tag_stuff\"\n        }],\n        tag_stuff: [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n        ]\n    });\n\n    this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"js-\", \"script\");\n\n    if (this.constructor === HtmlHighlightRules)\n        this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nvar XmlBehaviour = function () {\n\n    this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '\"' || text == \"'\") {\n            var quote = text;\n            var selected = session.doc.getTextRange(editor.getSelectionRange());\n            if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n                return {\n                    text: quote + selected + quote,\n                    selection: false\n                };\n            }\n\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n                return {\n                    text: \"\",\n                    selection: [1, 1]\n                };\n            }\n\n            if (!token)\n                token = iterator.stepBackward();\n\n            if (!token)\n                return;\n\n            while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n                token = iterator.stepBackward();\n            }\n            var rightSpace = !rightChar || rightChar.match(/\\s/);\n            if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n                return {\n                    text: quote + quote,\n                    selection: [1, 1]\n                };\n            }\n        }\n    });\n\n    this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == selected) {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n\n    this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '>') {\n            var position = editor.getSelectionRange().start;\n            var iterator = new TokenIterator(session, position.row, position.column);\n            var token = iterator.getCurrentToken() || iterator.stepBackward();\n            if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n                return;\n            if (is(token, \"reference.attribute-value\"))\n                return;\n            if (is(token, \"attribute-value\")) {\n                var firstChar = token.value.charAt(0);\n                if (firstChar == '\"' || firstChar == \"'\") {\n                    var lastChar = token.value.charAt(token.value.length - 1);\n                    var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;\n                    if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)\n                        return;\n                }\n            }\n            while (!is(token, \"tag-name\")) {\n                token = iterator.stepBackward();\n                if (token.value == \"<\") {\n                    token = iterator.stepForward();\n                    break;\n                }\n            }\n\n            var tokenRow = iterator.getCurrentTokenRow();\n            var tokenColumn = iterator.getCurrentTokenColumn();\n            if (is(iterator.stepBackward(), \"end-tag-open\"))\n                return;\n\n            var element = token.value;\n            if (tokenRow == position.row)\n                element = element.substring(0, position.column - tokenColumn);\n\n            if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n                 return;\n\n            return {\n               text: \">\" + \"</\" + element + \">\",\n               selection: [1, 1]\n            };\n        }\n    });\n\n    this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == \"\\n\") {\n            var cursor = editor.getCursorPosition();\n            var line = session.getLine(cursor.row);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (token && token.type.indexOf(\"tag-close\") !== -1) {\n                if (token.value == \"/>\")\n                    return;\n                while (token && token.type.indexOf(\"tag-name\") === -1) {\n                    token = iterator.stepBackward();\n                }\n\n                if (!token) {\n                    return;\n                }\n\n                var tag = token.value;\n                var row = iterator.getCurrentTokenRow();\n                token = iterator.stepBackward();\n                if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n                    return;\n                }\n\n                if (this.voidElements && !this.voidElements[tag]) {\n                    var nextToken = session.getTokenAt(cursor.row, cursor.column+1);\n                    var line = session.getLine(row);\n                    var nextIndent = this.$getIndent(line);\n                    var indent = nextIndent + session.getTabString();\n\n                    if (nextToken && nextToken.value === \"</\") {\n                        return {\n                            text: \"\\n\" + indent + \"\\n\" + nextIndent,\n                            selection: [1, indent.length, 1, indent.length]\n                        };\n                    } else {\n                        return {\n                            text: \"\\n\" + indent\n                        };\n                    }\n                }\n            }\n        }\n    });\n\n};\n\noop.inherits(XmlBehaviour, Behaviour);\n\nexports.XmlBehaviour = XmlBehaviour;\n});\n\nace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(defaultMode, subModes) {\n    this.defaultMode = defaultMode;\n    this.subModes = subModes;\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n\n    this.$getMode = function(state) {\n        if (typeof state != \"string\") \n            state = state[0];\n        for (var key in this.subModes) {\n            if (state.indexOf(key) === 0)\n                return this.subModes[key];\n        }\n        return null;\n    };\n    \n    this.$tryMode = function(state, session, foldStyle, row) {\n        var mode = this.$getMode(state);\n        return (mode ? mode.getFoldWidget(session, foldStyle, row) : \"\");\n    };\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        return (\n            this.$tryMode(session.getState(row-1), session, foldStyle, row) ||\n            this.$tryMode(session.getState(row), session, foldStyle, row) ||\n            this.defaultMode.getFoldWidget(session, foldStyle, row)\n        );\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var mode = this.$getMode(session.getState(row-1));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.$getMode(session.getState(row));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.defaultMode;\n        \n        return mode.getFoldWidgetRange(session, foldStyle, row);\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar lang = require(\"../../lib/lang\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalEndTags) {\n    BaseFoldMode.call(this);\n    this.voidElements = voidElements || {};\n    this.optionalEndTags = oop.mixin({}, this.voidElements);\n    if (optionalEndTags)\n        oop.mixin(this.optionalEndTags, optionalEndTags);\n    \n};\noop.inherits(FoldMode, BaseFoldMode);\n\nvar Tag = function() {\n    this.tagName = \"\";\n    this.closing = false;\n    this.selfClosing = false;\n    this.start = {row: 0, column: 0};\n    this.end = {row: 0, column: 0};\n};\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\n(function() {\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var tag = this._getFirstTagInLine(session, row);\n\n        if (!tag)\n            return \"\";\n\n        if (tag.closing || (!tag.tagName && tag.selfClosing))\n            return foldStyle == \"markbeginend\" ? \"end\" : \"\";\n\n        if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n            return \"\";\n\n        if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n            return \"\";\n\n        return \"start\";\n    };\n    this._getFirstTagInLine = function(session, row) {\n        var tokens = session.getTokens(row);\n        var tag = new Tag();\n\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            if (is(token, \"tag-open\")) {\n                tag.end.column = tag.start.column + token.value.length;\n                tag.closing = is(token, \"end-tag-open\");\n                token = tokens[++i];\n                if (!token)\n                    return null;\n                tag.tagName = token.value;\n                tag.end.column += token.value.length;\n                for (i++; i < tokens.length; i++) {\n                    token = tokens[i];\n                    tag.end.column += token.value.length;\n                    if (is(token, \"tag-close\")) {\n                        tag.selfClosing = token.value == '/>';\n                        break;\n                    }\n                }\n                return tag;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == '/>';\n                return tag;\n            }\n            tag.start.column += token.value.length;\n        }\n\n        return null;\n    };\n\n    this._findEndTagInLine = function(session, row, tagName, startColumn) {\n        var tokens = session.getTokens(row);\n        var column = 0;\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            column += token.value.length;\n            if (column < startColumn)\n                continue;\n            if (is(token, \"end-tag-open\")) {\n                token = tokens[i + 1];\n                if (token && token.value == tagName)\n                    return true;\n            }\n        }\n        return false;\n    };\n    this._readTagForward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n                iterator.stepForward();\n                return tag;\n            }\n        } while(token = iterator.stepForward());\n\n        return null;\n    };\n    \n    this._readTagBackward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n                iterator.stepBackward();\n                return tag;\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n            }\n        } while(token = iterator.stepBackward());\n\n        return null;\n    };\n    \n    this._pop = function(stack, tag) {\n        while (stack.length) {\n            \n            var top = stack[stack.length-1];\n            if (!tag || top.tagName == tag.tagName) {\n                return stack.pop();\n            }\n            else if (this.optionalEndTags.hasOwnProperty(top.tagName)) {\n                stack.pop();\n                continue;\n            } else {\n                return null;\n            }\n        }\n    };\n    \n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var firstTag = this._getFirstTagInLine(session, row);\n        \n        if (!firstTag)\n            return null;\n        \n        var isBackward = firstTag.closing || firstTag.selfClosing;\n        var stack = [];\n        var tag;\n        \n        if (!isBackward) {\n            var iterator = new TokenIterator(session, row, firstTag.start.column);\n            var start = {\n                row: row,\n                column: firstTag.start.column + firstTag.tagName.length + 2\n            };\n            if (firstTag.start.row == firstTag.end.row)\n                start.column = firstTag.end.column;\n            while (tag = this._readTagForward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0)\n                        return Range.fromPoints(start, tag.start);\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        else {\n            var iterator = new TokenIterator(session, row, firstTag.end.column);\n            var end = {\n                row: row,\n                column: firstTag.start.column\n            };\n            \n            while (tag = this._readTagBackward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (!tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0) {\n                        tag.start.column += tag.tagName.length + 2;\n                        if (tag.start.row == tag.end.row && tag.start.column < tag.end.column)\n                            tag.start.column = tag.end.column;\n                        return Range.fromPoints(tag.start, end);\n                    }\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        \n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar MixedFoldMode = require(\"./mixed\").FoldMode;\nvar XmlFoldMode = require(\"./xml\").FoldMode;\nvar CStyleFoldMode = require(\"./cstyle\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalTags) {\n    MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), {\n        \"js-\": new CStyleFoldMode(),\n        \"css-\": new CStyleFoldMode()\n    });\n};\n\noop.inherits(FoldMode, MixedFoldMode);\n\n});\n\nace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\n\nvar commonAttributes = [\n    \"accesskey\",\n    \"class\",\n    \"contenteditable\",\n    \"contextmenu\",\n    \"dir\",\n    \"draggable\",\n    \"dropzone\",\n    \"hidden\",\n    \"id\",\n    \"inert\",\n    \"itemid\",\n    \"itemprop\",\n    \"itemref\",\n    \"itemscope\",\n    \"itemtype\",\n    \"lang\",\n    \"spellcheck\",\n    \"style\",\n    \"tabindex\",\n    \"title\",\n    \"translate\"\n];\n\nvar eventAttributes = [\n    \"onabort\",\n    \"onblur\",\n    \"oncancel\",\n    \"oncanplay\",\n    \"oncanplaythrough\",\n    \"onchange\",\n    \"onclick\",\n    \"onclose\",\n    \"oncontextmenu\",\n    \"oncuechange\",\n    \"ondblclick\",\n    \"ondrag\",\n    \"ondragend\",\n    \"ondragenter\",\n    \"ondragleave\",\n    \"ondragover\",\n    \"ondragstart\",\n    \"ondrop\",\n    \"ondurationchange\",\n    \"onemptied\",\n    \"onended\",\n    \"onerror\",\n    \"onfocus\",\n    \"oninput\",\n    \"oninvalid\",\n    \"onkeydown\",\n    \"onkeypress\",\n    \"onkeyup\",\n    \"onload\",\n    \"onloadeddata\",\n    \"onloadedmetadata\",\n    \"onloadstart\",\n    \"onmousedown\",\n    \"onmousemove\",\n    \"onmouseout\",\n    \"onmouseover\",\n    \"onmouseup\",\n    \"onmousewheel\",\n    \"onpause\",\n    \"onplay\",\n    \"onplaying\",\n    \"onprogress\",\n    \"onratechange\",\n    \"onreset\",\n    \"onscroll\",\n    \"onseeked\",\n    \"onseeking\",\n    \"onselect\",\n    \"onshow\",\n    \"onstalled\",\n    \"onsubmit\",\n    \"onsuspend\",\n    \"ontimeupdate\",\n    \"onvolumechange\",\n    \"onwaiting\"\n];\n\nvar globalAttributes = commonAttributes.concat(eventAttributes);\n\nvar attributeMap = {\n    \"html\": {\"manifest\": 1},\n    \"head\": {},\n    \"title\": {},\n    \"base\": {\"href\": 1, \"target\": 1},\n    \"link\": {\"href\": 1, \"hreflang\": 1, \"rel\": {\"stylesheet\": 1, \"icon\": 1}, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"type\": {\"text/css\": 1, \"image/png\": 1, \"image/jpeg\": 1, \"image/gif\": 1}, \"sizes\": 1},\n    \"meta\": {\"http-equiv\": {\"content-type\": 1}, \"name\": {\"description\": 1, \"keywords\": 1}, \"content\": {\"text/html; charset=UTF-8\": 1}, \"charset\": 1},\n    \"style\": {\"type\": 1, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"scoped\": 1},\n    \"script\": {\"charset\": 1, \"type\": {\"text/javascript\": 1}, \"src\": 1, \"defer\": 1, \"async\": 1},\n    \"noscript\": {\"href\": 1},\n    \"body\": {\"onafterprint\": 1, \"onbeforeprint\": 1, \"onbeforeunload\": 1, \"onhashchange\": 1, \"onmessage\": 1, \"onoffline\": 1, \"onpopstate\": 1, \"onredo\": 1, \"onresize\": 1, \"onstorage\": 1, \"onundo\": 1, \"onunload\": 1},\n    \"section\": {},\n    \"nav\": {},\n    \"article\": {\"pubdate\": 1},\n    \"aside\": {},\n    \"h1\": {},\n    \"h2\": {},\n    \"h3\": {},\n    \"h4\": {},\n    \"h5\": {},\n    \"h6\": {},\n    \"header\": {},\n    \"footer\": {},\n    \"address\": {},\n    \"main\": {},\n    \"p\": {},\n    \"hr\": {},\n    \"pre\": {},\n    \"blockquote\": {\"cite\": 1},\n    \"ol\": {\"start\": 1, \"reversed\": 1},\n    \"ul\": {},\n    \"li\": {\"value\": 1},\n    \"dl\": {},\n    \"dt\": {},\n    \"dd\": {},\n    \"figure\": {},\n    \"figcaption\": {},\n    \"div\": {},\n    \"a\": {\"href\": 1, \"target\": {\"_blank\": 1, \"top\": 1}, \"ping\": 1, \"rel\": {\"nofollow\": 1, \"alternate\": 1, \"author\": 1, \"bookmark\": 1, \"help\": 1, \"license\": 1, \"next\": 1, \"noreferrer\": 1, \"prefetch\": 1, \"prev\": 1, \"search\": 1, \"tag\": 1}, \"media\": 1, \"hreflang\": 1, \"type\": 1},\n    \"em\": {},\n    \"strong\": {},\n    \"small\": {},\n    \"s\": {},\n    \"cite\": {},\n    \"q\": {\"cite\": 1},\n    \"dfn\": {},\n    \"abbr\": {},\n    \"data\": {},\n    \"time\": {\"datetime\": 1},\n    \"code\": {},\n    \"var\": {},\n    \"samp\": {},\n    \"kbd\": {},\n    \"sub\": {},\n    \"sup\": {},\n    \"i\": {},\n    \"b\": {},\n    \"u\": {},\n    \"mark\": {},\n    \"ruby\": {},\n    \"rt\": {},\n    \"rp\": {},\n    \"bdi\": {},\n    \"bdo\": {},\n    \"span\": {},\n    \"br\": {},\n    \"wbr\": {},\n    \"ins\": {\"cite\": 1, \"datetime\": 1},\n    \"del\": {\"cite\": 1, \"datetime\": 1},\n    \"img\": {\"alt\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"usemap\": 1, \"ismap\": 1},\n    \"iframe\": {\"name\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"sandbox\": {\"allow-same-origin\": 1, \"allow-top-navigation\": 1, \"allow-forms\": 1, \"allow-scripts\": 1}, \"seamless\": {\"seamless\": 1}},\n    \"embed\": {\"src\": 1, \"height\": 1, \"width\": 1, \"type\": 1},\n    \"object\": {\"param\": 1, \"data\": 1, \"type\": 1, \"height\" : 1, \"width\": 1, \"usemap\": 1, \"name\": 1, \"form\": 1, \"classid\": 1},\n    \"param\": {\"name\": 1, \"value\": 1},\n    \"video\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"width\": 1, \"height\": 1, \"poster\": 1, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1}},\n    \"audio\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1 }},\n    \"source\": {\"src\": 1, \"type\": 1, \"media\": 1},\n    \"track\": {\"kind\": 1, \"src\": 1, \"srclang\": 1, \"label\": 1, \"default\": 1},\n    \"canvas\": {\"width\": 1, \"height\": 1},\n    \"map\": {\"name\": 1},\n    \"area\": {\"shape\": 1, \"coords\": 1, \"href\": 1, \"hreflang\": 1, \"alt\": 1, \"target\": 1, \"media\": 1, \"rel\": 1, \"ping\": 1, \"type\": 1},\n    \"svg\": {},\n    \"math\": {},\n    \"table\": {\"summary\": 1},\n    \"caption\": {},\n    \"colgroup\": {\"span\": 1},\n    \"col\": {\"span\": 1},\n    \"tbody\": {},\n    \"thead\": {},\n    \"tfoot\": {},\n    \"tr\": {},\n    \"td\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1},\n    \"th\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1, \"scope\": 1},\n    \"form\": {\"accept-charset\": 1, \"action\": 1, \"autocomplete\": 1, \"enctype\": {\"multipart/form-data\": 1, \"application/x-www-form-urlencoded\": 1}, \"method\": {\"get\": 1, \"post\": 1}, \"name\": 1, \"novalidate\": 1, \"target\": {\"_blank\": 1, \"top\": 1}},\n    \"fieldset\": {\"disabled\": 1, \"form\": 1, \"name\": 1},\n    \"legend\": {},\n    \"label\": {\"form\": 1, \"for\": 1},\n    \"input\": {\n        \"type\": {\"text\": 1, \"password\": 1, \"hidden\": 1, \"checkbox\": 1, \"submit\": 1, \"radio\": 1, \"file\": 1, \"button\": 1, \"reset\": 1, \"image\": 31, \"color\": 1, \"date\": 1, \"datetime\": 1, \"datetime-local\": 1, \"email\": 1, \"month\": 1, \"number\": 1, \"range\": 1, \"search\": 1, \"tel\": 1, \"time\": 1, \"url\": 1, \"week\": 1},\n        \"accept\": 1, \"alt\": 1, \"autocomplete\": {\"on\": 1, \"off\": 1}, \"autofocus\": {\"autofocus\": 1}, \"checked\": {\"checked\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": {\"application/x-www-form-urlencoded\": 1, \"multipart/form-data\": 1, \"text/plain\": 1}, \"formmethod\": {\"get\": 1, \"post\": 1}, \"formnovalidate\": {\"formnovalidate\": 1}, \"formtarget\": {\"_blank\": 1, \"_self\": 1, \"_parent\": 1, \"_top\": 1}, \"height\": 1, \"list\": 1, \"max\": 1, \"maxlength\": 1, \"min\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"pattern\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"size\": 1, \"src\": 1, \"step\": 1, \"width\": 1, \"files\": 1, \"value\": 1},\n    \"button\": {\"autofocus\": 1, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": 1, \"formmethod\": 1, \"formnovalidate\": 1, \"formtarget\": 1, \"name\": 1, \"value\": 1, \"type\": {\"button\": 1, \"submit\": 1}},\n    \"select\": {\"autofocus\": 1, \"disabled\": 1, \"form\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"size\": 1, \"readonly\":{\"readonly\": 1}},\n    \"datalist\": {},\n    \"optgroup\": {\"disabled\": 1, \"label\": 1},\n    \"option\": {\"disabled\": 1, \"selected\": 1, \"label\": 1, \"value\": 1},\n    \"textarea\": {\"autofocus\": {\"autofocus\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"maxlength\": 1, \"name\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"rows\": 1, \"cols\": 1, \"wrap\": {\"on\": 1, \"off\": 1, \"hard\": 1, \"soft\": 1}},\n    \"keygen\": {\"autofocus\": 1, \"challenge\": {\"challenge\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"keytype\": {\"rsa\": 1, \"dsa\": 1, \"ec\": 1}, \"name\": 1},\n    \"output\": {\"for\": 1, \"form\": 1, \"name\": 1},\n    \"progress\": {\"value\": 1, \"max\": 1},\n    \"meter\": {\"value\": 1, \"min\": 1, \"max\": 1, \"low\": 1, \"high\": 1, \"optimum\": 1},\n    \"details\": {\"open\": 1},\n    \"summary\": {},\n    \"command\": {\"type\": 1, \"label\": 1, \"icon\": 1, \"disabled\": 1, \"checked\": 1, \"radiogroup\": 1, \"command\": 1},\n    \"menu\": {\"type\": 1, \"label\": 1},\n    \"dialog\": {\"open\": 1}\n};\n\nvar elements = Object.keys(attributeMap);\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nfunction findTagName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"tag-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nfunction findAttributeName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"attribute-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nvar HtmlCompletions = function() {\n\n};\n\n(function() {\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (is(token, \"tag-name\") || is(token, \"tag-open\") || is(token, \"end-tag-open\"))\n            return this.getTagCompletions(state, session, pos, prefix);\n        if (is(token, \"tag-whitespace\") || is(token, \"attribute-name\"))\n            return this.getAttributeCompletions(state, session, pos, prefix);\n        if (is(token, \"attribute-value\"))\n            return this.getAttributeValueCompletions(state, session, pos, prefix);\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        if (/&[a-z]*$/i.test(line))\n            return this.getHTMLEntityCompletions(state, session, pos, prefix);\n\n        return [];\n    };\n\n    this.getTagCompletions = function(state, session, pos, prefix) {\n        return elements.map(function(element){\n            return {\n                value: element,\n                meta: \"tag\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        if (!tagName)\n            return [];\n        var attributes = globalAttributes;\n        if (tagName in attributeMap) {\n            attributes = attributes.concat(Object.keys(attributeMap[tagName]));\n        }\n        return attributes.map(function(attribute){\n            return {\n                caption: attribute,\n                snippet: attribute + '=\"$0\"',\n                meta: \"attribute\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeValueCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        var attributeName = findAttributeName(session, pos);\n        \n        if (!tagName)\n            return [];\n        var values = [];\n        if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === \"object\") {\n            values = Object.keys(attributeMap[tagName][attributeName]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"attribute value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getHTMLEntityCompletions = function(state, session, pos, prefix) {\n        var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;'];\n\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"html entity\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(HtmlCompletions.prototype);\n\nexports.HtmlCompletions = HtmlCompletions;\n});\n\nace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar CssMode = require(\"./css\").Mode;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar HtmlFoldMode = require(\"./folding/html\").FoldMode;\nvar HtmlCompletions = require(\"./html_completions\").HtmlCompletions;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar voidElements = [\"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"menuitem\", \"param\", \"source\", \"track\", \"wbr\"];\nvar optionalEndTags = [\"li\", \"dt\", \"dd\", \"p\", \"rt\", \"rp\", \"optgroup\", \"option\", \"colgroup\", \"td\", \"th\"];\n\nvar Mode = function(options) {\n    this.fragmentContext = options && options.fragmentContext;\n    this.HighlightRules = HtmlHighlightRules;\n    this.$behaviour = new XmlBehaviour();\n    this.$completer = new HtmlCompletions();\n    \n    this.createModeDelegates({\n        \"js-\": JavaScriptMode,\n        \"css-\": CssMode\n    });\n    \n    this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags));\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.blockComment = {start: \"<!--\", end: \"-->\"};\n\n    this.voidElements = lang.arrayToMap(voidElements);\n\n    this.getNextLineIndent = function(state, line, tab) {\n        return this.$getIndent(line);\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return false;\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        if (this.constructor != Mode)\n            return;\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/html_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        if (this.fragmentContext)\n            worker.call(\"setOptions\", [{context: this.fragmentContext}]);\n\n        worker.on(\"error\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/html\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/handlebars_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\n\nfunction pop2(currentState, stack) {\n    stack.splice(0, 3);\n    return stack.shift() || \"start\";\n}\nvar HandlebarsHighlightRules = function() {\n    HtmlHighlightRules.call(this);\n    var hbs = {\n        regex : \"(?={{)\",\n        push : \"handlebars\"\n    };\n    for (var key in this.$rules) {\n        this.$rules[key].unshift(hbs);\n    }\n    this.$rules.handlebars = [{\n        token : \"comment.start\",\n        regex : \"{{!--\",\n        push : [{\n            token : \"comment.end\",\n            regex : \"--}}\",\n            next : pop2\n        }, {\n            defaultToken : \"comment\"\n        }]\n    }, {\n        token : \"comment.start\",\n        regex : \"{{!\",\n        push : [{\n            token : \"comment.end\",\n            regex : \"}}\",\n            next : pop2\n        }, {\n            defaultToken : \"comment\"\n        }]\n    }, {\n        token : \"support.function\", // unescaped variable\n        regex : \"{{{\",\n        push : [{\n            token : \"support.function\",\n            regex : \"}}}\",\n            next : pop2\n        }, {\n            token : \"variable.parameter\",\n            regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\"\n        }]\n    }, {\n        token : \"storage.type.start\", // begin section\n        regex : \"{{[#\\\\^/&]?\",\n        push : [{\n            token : \"storage.type.end\",\n            regex : \"}}\",\n            next : pop2\n        }, {\n            token : \"variable.parameter\",\n            regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\"\n        }]\n    }];\n\n    this.normalizeRules();\n};\n\noop.inherits(HandlebarsHighlightRules, HtmlHighlightRules);\n\nexports.HandlebarsHighlightRules = HandlebarsHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour/xml\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar XmlBehaviour = require(\"../behaviour/xml\").XmlBehaviour;\n\nvar HtmlBehaviour = function () {\n\n    XmlBehaviour.call(this);\n\n};\n\noop.inherits(HtmlBehaviour, XmlBehaviour);\n\nexports.HtmlBehaviour = HtmlBehaviour;\n});\n\nace.define(\"ace/mode/handlebars\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/handlebars_highlight_rules\",\"ace/mode/behaviour/html\",\"ace/mode/folding/html\"], function(require, exports, module) {\n  \"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar HtmlMode = require(\"./html\").Mode;\nvar HandlebarsHighlightRules = require(\"./handlebars_highlight_rules\").HandlebarsHighlightRules;\nvar HtmlBehaviour = require(\"./behaviour/html\").HtmlBehaviour;\nvar HtmlFoldMode = require(\"./folding/html\").FoldMode;\n\nvar Mode = function() {\n    HtmlMode.call(this);\n    this.HighlightRules = HandlebarsHighlightRules;\n    this.$behaviour = new HtmlBehaviour();\n};\n\noop.inherits(Mode, HtmlMode);\n\n(function() {\n    this.blockComment = {start: \"{{!--\", end: \"--}}\"};\n    this.$id = \"ace/mode/handlebars\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-haskell.js",
    "content": "ace.define(\"ace/mode/haskell_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar HaskellHighlightRules = function() {\n\n    this.$rules = { start:\n       [ { token:\n            [ 'punctuation.definition.entity.haskell',\n              'keyword.operator.function.infix.haskell',\n              'punctuation.definition.entity.haskell' ],\n           regex: '(`)([a-zA-Z_\\']*?)(`)',\n           comment: 'In case this regex seems unusual for an infix operator, note that Haskell allows any ordinary function application (elem 4 [1..10]) to be rewritten as an infix expression (4 `elem` [1..10]).' },\n         { token: 'constant.language.unit.haskell', regex: '\\\\(\\\\)' },\n         { token: 'constant.language.empty-list.haskell',\n           regex: '\\\\[\\\\]' },\n         { token: 'keyword.other.haskell',\n           regex: '\\\\bmodule\\\\b',\n           push:\n            [ { token: 'keyword.other.haskell', regex: '\\\\bwhere\\\\b', next: 'pop' },\n              { include: '#module_name' },\n              { include: '#module_exports' },\n              { token: 'invalid', regex: '[a-z]+' },\n              { defaultToken: 'meta.declaration.module.haskell' } ] },\n         { token: 'keyword.other.haskell',\n           regex: '\\\\bclass\\\\b',\n           push:\n            [ { token: 'keyword.other.haskell',\n                regex: '\\\\bwhere\\\\b',\n                next: 'pop' },\n              { token: 'support.class.prelude.haskell',\n                regex: '\\\\b(?:Monad|Functor|Eq|Ord|Read|Show|Num|(?:Frac|Ra)tional|Enum|Bounded|Real(?:Frac|Float)?|Integral|Floating)\\\\b' },\n              { token: 'entity.other.inherited-class.haskell',\n                regex: '[A-Z][A-Za-z_\\']*' },\n              { token: 'variable.other.generic-type.haskell',\n                regex: '\\\\b[a-z][a-zA-Z0-9_\\']*\\\\b' },\n              { defaultToken: 'meta.declaration.class.haskell' } ] },\n         { token: 'keyword.other.haskell',\n           regex: '\\\\binstance\\\\b',\n           push:\n            [ { token: 'keyword.other.haskell',\n                regex: '\\\\bwhere\\\\b|$',\n                next: 'pop' },\n              { include: '#type_signature' },\n              { defaultToken: 'meta.declaration.instance.haskell' } ] },\n         { token: 'keyword.other.haskell',\n           regex: 'import',\n           push:\n            [ { token: 'meta.import.haskell', regex: '$|;|^', next: 'pop' },\n              { token: 'keyword.other.haskell', regex: 'qualified|as|hiding' },\n              { include: '#module_name' },\n              { include: '#module_exports' },\n              { defaultToken: 'meta.import.haskell' } ] },\n         { token: [ 'keyword.other.haskell', 'meta.deriving.haskell' ],\n           regex: '(deriving)(\\\\s*\\\\()',\n           push:\n            [ { token: 'meta.deriving.haskell', regex: '\\\\)', next: 'pop' },\n              { token: 'entity.other.inherited-class.haskell',\n                regex: '\\\\b[A-Z][a-zA-Z_\\']*' },\n              { defaultToken: 'meta.deriving.haskell' } ] },\n         { token: 'keyword.other.haskell',\n           regex: '\\\\b(?:deriving|where|data|type|case|of|let|in|newtype|default)\\\\b' },\n         { token: 'keyword.operator.haskell', regex: '\\\\binfix[lr]?\\\\b' },\n         { token: 'keyword.control.haskell',\n           regex: '\\\\b(?:do|if|then|else)\\\\b' },\n         { token: 'constant.numeric.float.haskell',\n           regex: '\\\\b(?:[0-9]+\\\\.[0-9]+(?:[eE][+-]?[0-9]+)?|[0-9]+[eE][+-]?[0-9]+)\\\\b',\n           comment: 'Floats are always decimal' },\n         { token: 'constant.numeric.haskell',\n           regex: '\\\\b(?:[0-9]+|0(?:[xX][0-9a-fA-F]+|[oO][0-7]+))\\\\b' },\n         { token:\n            [ 'meta.preprocessor.c',\n              'punctuation.definition.preprocessor.c',\n              'meta.preprocessor.c' ],\n           regex: '^(\\\\s*)(#)(\\\\s*\\\\w+)',\n           comment: 'In addition to Haskell\\'s \"native\" syntax, GHC permits the C preprocessor to be run on a source file.' },\n         { include: '#pragma' },\n         { token: 'punctuation.definition.string.begin.haskell',\n           regex: '\"',\n           push:\n            [ { token: 'punctuation.definition.string.end.haskell',\n                regex: '\"',\n                next: 'pop' },\n              { token: 'constant.character.escape.haskell',\n                regex: '\\\\\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\\\\\\\"\\'\\\\&])' },\n              { token: 'constant.character.escape.octal.haskell',\n                regex: '\\\\\\\\o[0-7]+|\\\\\\\\x[0-9A-Fa-f]+|\\\\\\\\[0-9]+' },\n              { token: 'constant.character.escape.control.haskell',\n                regex: '\\\\^[A-Z@\\\\[\\\\]\\\\\\\\\\\\^_]' },\n              { defaultToken: 'string.quoted.double.haskell' } ] },\n         { token:\n            [ 'punctuation.definition.string.begin.haskell',\n              'string.quoted.single.haskell',\n              'constant.character.escape.haskell',\n              'constant.character.escape.octal.haskell',\n              'constant.character.escape.hexadecimal.haskell',\n              'constant.character.escape.control.haskell',\n              'punctuation.definition.string.end.haskell' ],\n           regex: '(\\')(?:([\\\\ -\\\\[\\\\]-~])|(\\\\\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\\\\\\\"\\'\\\\&]))|(\\\\\\\\o[0-7]+)|(\\\\\\\\x[0-9A-Fa-f]+)|(\\\\^[A-Z@\\\\[\\\\]\\\\\\\\\\\\^_]))(\\')' },\n         { token:\n            [ 'meta.function.type-declaration.haskell',\n              'entity.name.function.haskell',\n              'meta.function.type-declaration.haskell',\n              'keyword.other.double-colon.haskell' ],\n           regex: '^(\\\\s*)([a-z_][a-zA-Z0-9_\\']*|\\\\([|!%$+\\\\-.,=</>]+\\\\))(\\\\s*)(::)',\n           push:\n            [ { token: 'meta.function.type-declaration.haskell',\n                regex: '$',\n                next: 'pop' },\n              { include: '#type_signature' },\n              { defaultToken: 'meta.function.type-declaration.haskell' } ] },\n         { token: 'support.constant.haskell',\n           regex: '\\\\b(?:Just|Nothing|Left|Right|True|False|LT|EQ|GT|\\\\(\\\\)|\\\\[\\\\])\\\\b' },\n         { token: 'constant.other.haskell', regex: '\\\\b[A-Z]\\\\w*\\\\b' },\n         { include: '#comments' },\n         { token: 'support.function.prelude.haskell',\n           regex: '\\\\b(?:abs|acos|acosh|all|and|any|appendFile|applyM|asTypeOf|asin|asinh|atan|atan2|atanh|break|catch|ceiling|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|div|divMod|drop|dropWhile|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromEnum|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|head|id|init|interact|ioError|isDenormalized|isIEEE|isInfinite|isNaN|isNegativeZero|iterate|last|lcm|length|lex|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|odd|or|otherwise|pi|pred|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|read|readFile|readIO|readList|readLn|readParen|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showList|showParen|showString|shows|showsPrec|significand|signum|sin|sinh|snd|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|toEnum|toInteger|toRational|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\\\\b' },\n         { include: '#infix_op' },\n         { token: 'keyword.operator.haskell',\n           regex: '[|!%$?~+:\\\\-.=</>\\\\\\\\]+',\n           comment: 'In case this regex seems overly general, note that Haskell permits the definition of new operators which can be nearly any string of punctuation characters, such as $%^&*.' },\n         { token: 'punctuation.separator.comma.haskell', regex: ',' } ],\n      '#block_comment':\n       [ { token: 'punctuation.definition.comment.haskell',\n           regex: '\\\\{-(?!#)',\n           push:\n            [ { include: '#block_comment' },\n              { token: 'punctuation.definition.comment.haskell',\n                regex: '-\\\\}',\n                next: 'pop' },\n              { defaultToken: 'comment.block.haskell' } ] } ],\n      '#comments':\n       [ { token: 'punctuation.definition.comment.haskell',\n           regex: '--.*',\n           push_:\n            [ { token: 'comment.line.double-dash.haskell',\n                regex: '$',\n                next: 'pop' },\n              { defaultToken: 'comment.line.double-dash.haskell' } ] },\n         { include: '#block_comment' } ],\n      '#infix_op':\n       [ { token: 'entity.name.function.infix.haskell',\n           regex: '\\\\([|!%$+:\\\\-.=</>]+\\\\)|\\\\(,+\\\\)' } ],\n      '#module_exports':\n       [ { token: 'meta.declaration.exports.haskell',\n           regex: '\\\\(',\n           push:\n            [ { token: 'meta.declaration.exports.haskell.end',\n                regex: '\\\\)',\n                next: 'pop' },\n              { token: 'entity.name.function.haskell',\n                regex: '\\\\b[a-z][a-zA-Z_\\']*' },\n              { token: 'storage.type.haskell', regex: '\\\\b[A-Z][A-Za-z_\\']*' },\n              { token: 'punctuation.separator.comma.haskell', regex: ',' },\n              { include: '#infix_op' },\n              { token: 'meta.other.unknown.haskell',\n                regex: '\\\\(.*?\\\\)',\n                comment: 'So named because I don\\'t know what to call this.' },\n              { defaultToken: 'meta.declaration.exports.haskell.end' } ] } ],\n      '#module_name':\n       [ { token: 'support.other.module.haskell',\n           regex: '[A-Z][A-Za-z._\\']*' } ],\n      '#pragma':\n       [ { token: 'meta.preprocessor.haskell',\n           regex: '\\\\{-#',\n           push:\n            [ { token: 'meta.preprocessor.haskell',\n                regex: '#-\\\\}',\n                next: 'pop' },\n              { token: 'keyword.other.preprocessor.haskell',\n                regex: '\\\\b(?:LANGUAGE|UNPACK|INLINE)\\\\b' },\n              { defaultToken: 'meta.preprocessor.haskell' } ] } ],\n      '#type_signature':\n       [ { token:\n            [ 'meta.class-constraint.haskell',\n              'entity.other.inherited-class.haskell',\n              'meta.class-constraint.haskell',\n              'variable.other.generic-type.haskell',\n              'meta.class-constraint.haskell',\n              'keyword.other.big-arrow.haskell' ],\n           regex: '(\\\\(\\\\s*)([A-Z][A-Za-z]*)(\\\\s+)([a-z][A-Za-z_\\']*)(\\\\)\\\\s*)(=>)' },\n         { include: '#pragma' },\n         { token: 'keyword.other.arrow.haskell', regex: '->' },\n         { token: 'keyword.other.big-arrow.haskell', regex: '=>' },\n         { token: 'support.type.prelude.haskell',\n           regex: '\\\\b(?:Int(?:eger)?|Maybe|Either|Bool|Float|Double|Char|String|Ordering|ShowS|ReadS|FilePath|IO(?:Error)?)\\\\b' },\n         { token: 'variable.other.generic-type.haskell',\n           regex: '\\\\b[a-z][a-zA-Z0-9_\\']*\\\\b' },\n         { token: 'storage.type.haskell',\n           regex: '\\\\b[A-Z][a-zA-Z0-9_\\']*\\\\b' },\n         { token: 'support.constant.unit.haskell', regex: '\\\\(\\\\)' },\n         { include: '#comments' } ] }\n\n    this.normalizeRules();\n};\n\nHaskellHighlightRules.metaData = { fileTypes: [ 'hs' ],\n      keyEquivalent: '^~H',\n      name: 'Haskell',\n      scopeName: 'source.haskell' }\n\n\noop.inherits(HaskellHighlightRules, TextHighlightRules);\n\nexports.HaskellHighlightRules = HaskellHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/haskell\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/haskell_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar HaskellHighlightRules = require(\"./haskell_highlight_rules\").HaskellHighlightRules;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = HaskellHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"--\";\n    this.blockComment = null;\n    this.$id = \"ace/mode/haskell\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-haskell_cabal.js",
    "content": "ace.define(\"ace/mode/haskell_cabal_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar CabalHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"^\\\\s*--.*$\"\n            }, {\n                token: [\"keyword\"],\n                regex: /^(\\s*\\w.*?)(:(?:\\s+|$))/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[\\d_]+(?:(?:[\\.\\d_]*)?)/\n            }, {\n                token : \"constant.language.boolean\",\n                regex : \"(?:true|false|TRUE|FALSE|True|False|yes|no)\\\\b\"\n            }, {\n                token : \"markup.heading\",\n                regex : /^(\\w.*)$/\n            }\n        ]};\n\n};\n\noop.inherits(CabalHighlightRules, TextHighlightRules);\n\nexports.CabalHighlightRules = CabalHighlightRules;\n});\n\nace.define(\"ace/mode/folding/haskell_cabal\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n  this.isHeading = function (session,row) {\n      var heading = \"markup.heading\";\n      var token = session.getTokens(row)[0];\n      return row==0 || (token && token.type.lastIndexOf(heading, 0) === 0);\n  };\n\n  this.getFoldWidget = function(session, foldStyle, row) {\n      if (this.isHeading(session,row)){\n        return \"start\";\n      } else if (foldStyle === \"markbeginend\" && !(/^\\s*$/.test(session.getLine(row)))){\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n          if (!(/^\\s*$/.test(session.getLine(row)))){\n              break;\n          }\n        }\n        if (row==maxRow || this.isHeading(session,row)){\n          return \"end\";\n        }\n      }\n      return \"\";\n  };\n\n\n  this.getFoldWidgetRange = function(session, foldStyle, row) {\n      var line = session.getLine(row);\n      var startColumn = line.length;\n      var maxRow = session.getLength();\n      var startRow = row;\n      var endRow = row;\n      if (this.isHeading(session,row)) {\n          while (++row < maxRow) {\n              if (this.isHeading(session,row)){\n                row--;\n                break;\n              }\n          }\n\n          endRow = row;\n          if (endRow > startRow) {\n              while (endRow > startRow && /^\\s*$/.test(session.getLine(endRow)))\n                  endRow--;\n          }\n\n          if (endRow > startRow) {\n              var endColumn = session.getLine(endRow).length;\n              return new Range(startRow, startColumn, endRow, endColumn);\n          }\n      } else if (this.getFoldWidget(session, foldStyle, row)===\"end\"){\n        var endRow = row;\n        var endColumn = session.getLine(endRow).length;\n        while (--row>=0){\n          if (this.isHeading(session,row)){\n            break;\n          }\n        }\n        var line = session.getLine(row);\n        var startColumn = line.length;\n        return new Range(row, startColumn, endRow, endColumn);\n      }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/haskell_cabal\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/haskell_cabal_highlight_rules\",\"ace/mode/folding/haskell_cabal\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CabalHighlightRules = require(\"./haskell_cabal_highlight_rules\").CabalHighlightRules;\nvar FoldMode = require(\"./folding/haskell_cabal\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = CabalHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"--\";\n    this.blockComment = null;\n    this.$id = \"ace/mode/haskell_cabal\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-haxe.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/haxe_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\n\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar HaxeHighlightRules = function() {\n\n    var keywords = (\n        \"break|case|cast|catch|class|continue|default|else|enum|extends|for|function|if|implements|import|in|inline|interface|new|override|package|private|public|return|static|super|switch|this|throw|trace|try|typedef|untyped|var|while|Array|Void|Bool|Int|UInt|Float|Dynamic|String|List|Hash|IntHash|Error|Unknown|Type|Std\"\n    );\n\n    var buildinConstants = (\n        \"null|true|false\"\n    );\n\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\": \"this\",\n        \"keyword\": keywords,\n        \"constant.language\": buildinConstants\n    }, \"identifier\");\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"\\\\/\\\\/.*$\"\n            },\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n                token : \"string.regexp\",\n                regex : \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"\n            }, {\n                token : \"string\", // single line\n                regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n            }, {\n                token : \"string\", // single line\n                regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n            }, {\n                token : \"constant.language.boolean\",\n                regex : \"(?:true|false)\\\\b\"\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({<]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}>]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ]\n    };\n\n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n};\n\noop.inherits(HaxeHighlightRules, TextHighlightRules);\n\nexports.HaxeHighlightRules = HaxeHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/haxe\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/haxe_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar HaxeHighlightRules = require(\"./haxe_highlight_rules\").HaxeHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = HaxeHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n    \n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.$id = \"ace/mode/haxe\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-hjson.js",
    "content": "ace.define(\"ace/mode/hjson_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar HjsonHighlightRules = function() {\n\n    this.$rules = {\n        start: [{\n            include: \"#comments\"\n        }, {\n            include: \"#rootObject\"\n        }, {\n            include: \"#value\"\n        }],\n        \"#array\": [{\n            token: \"paren.lparen\",\n            regex: /\\[/,\n            push: [{\n                token: \"paren.rparen\",\n                regex: /\\]/,\n                next: \"pop\"\n            }, {\n                include: \"#value\"\n            }, {\n                include: \"#comments\"\n            }, {\n                token: \"text\",\n                regex: /,|$/\n            }, {\n                token: \"invalid.illegal\",\n                regex: /[^\\s\\]]/\n            }, {\n                defaultToken: \"array\"\n            }]\n        }],\n        \"#comments\": [{\n            token: [\n                \"comment.punctuation\",\n                \"comment.line\"\n            ],\n            regex: /(#)(.*$)/\n        }, {\n            token: \"comment.punctuation\",\n            regex: /\\/\\*/,\n            push: [{\n                token: \"comment.punctuation\",\n                regex: /\\*\\//,\n                next: \"pop\"\n            }, {\n                defaultToken: \"comment.block\"\n            }]\n        }, {\n            token: [\n                \"comment.punctuation\",\n                \"comment.line\"\n            ],\n            regex: /(\\/\\/)(.*$)/\n        }],\n        \"#constant\": [{\n            token: \"constant\",\n            regex: /\\b(?:true|false|null)\\b/\n        }],\n        \"#keyname\": [{\n            token: \"keyword\",\n            regex: /(?:[^,\\{\\[\\}\\]\\s]+|\"(?:[^\"\\\\]|\\\\.)*\")\\s*(?=:)/\n        }],\n        \"#mstring\": [{\n            token: \"string\",\n            regex: /'''/,\n            push: [{\n                token: \"string\",\n                regex: /'''/,\n                next: \"pop\"\n            }, {\n                defaultToken: \"string\"\n            }]\n        }],\n        \"#number\": [{\n            token: \"constant.numeric\",\n            regex: /-?(?:0|[1-9]\\d*)(?:(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)?/,\n            comment: \"handles integer and decimal numbers\"\n        }],\n        \"#object\": [{\n            token: \"paren.lparen\",\n            regex: /\\{/,\n            push: [{\n                token: \"paren.rparen\",\n                regex: /\\}/,\n                next: \"pop\"\n            }, {\n                include: \"#keyname\"\n            }, {\n                include: \"#value\"\n            }, {\n                token: \"text\",\n                regex: /:/\n            }, {\n                token: \"text\",\n                regex: /,/\n            }, {\n                defaultToken: \"paren\"\n            }]\n        }],\n        \"#rootObject\": [{\n            token: \"paren\",\n            regex: /(?=\\s*(?:[^,\\{\\[\\}\\]\\s]+|\"(?:[^\"\\\\]|\\\\.)*\")\\s*:)/,\n            push: [{\n                token: \"paren.rparen\",\n                regex: /---none---/,\n                next: \"pop\"\n            }, {\n                include: \"#keyname\"\n            }, {\n                include: \"#value\"\n            }, {\n                token: \"text\",\n                regex: /:/\n            }, {\n                token: \"text\",\n                regex: /,/\n            }, {\n                defaultToken: \"paren\"\n            }]\n        }],\n        \"#string\": [{\n            token: \"string\",\n            regex: /\"/,\n            push: [{\n                token: \"string\",\n                regex: /\"/,\n                next: \"pop\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\\\(?:[\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/\n            }, {\n                token: \"invalid.illegal\",\n                regex: /\\\\./\n            }, {\n                defaultToken: \"string\"\n            }]\n        }],\n        \"#ustring\": [{\n            token: \"string\",\n            regex: /\\b[^:,0-9\\-\\{\\[\\}\\]\\s].*$/\n        }],\n        \"#value\": [{\n            include: \"#constant\"\n        }, {\n            include: \"#number\"\n        }, {\n            include: \"#string\"\n        }, {\n            include: \"#array\"\n        }, {\n            include: \"#object\"\n        }, {\n            include: \"#comments\"\n        }, {\n            include: \"#mstring\"\n        }, {\n            include: \"#ustring\"\n        }]\n    }\n\n    this.normalizeRules();\n};\n\nHjsonHighlightRules.metaData = {\n    fileTypes: [\"hjson\"],\n    foldingStartMarker: \"(?x:     # turn on extended mode\\n              ^    # a line beginning with\\n              \\\\s*    # some optional space\\n              [{\\\\[]  # the start of an object or array\\n              (?!    # but not followed by\\n              .*   # whatever\\n              [}\\\\]]  # and the close of an object or array\\n              ,?   # an optional comma\\n              \\\\s*  # some optional space\\n              $    # at the end of the line\\n              )\\n              |    # ...or...\\n              [{\\\\[]  # the start of an object or array\\n              \\\\s*    # some optional space\\n              $    # at the end of the line\\n            )\",\n    foldingStopMarker: \"(?x:   # turn on extended mode\\n             ^    # a line beginning with\\n             \\\\s*  # some optional space\\n             [}\\\\]]  # and the close of an object or array\\n             )\",\n    keyEquivalent: \"^~J\",\n    name: \"Hjson\",\n    scopeName: \"source.hjson\"\n}\n\n\noop.inherits(HjsonHighlightRules, TextHighlightRules);\n\nexports.HjsonHighlightRules = HjsonHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/hjson\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/hjson_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar HjsonHighlightRules = require(\"./hjson_highlight_rules\").HjsonHighlightRules;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = HjsonHighlightRules;\n    this.foldingRules = new FoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"//\";\n    this.blockComment = { start: \"/*\", end: \"*/\" };\n    this.$id = \"ace/mode/hjson\"\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-html.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar propertyMap = {\n    \"background\": {\"#$0\": 1},\n    \"background-color\": {\"#$0\": 1, \"transparent\": 1, \"fixed\": 1},\n    \"background-image\": {\"url('/$0')\": 1},\n    \"background-repeat\": {\"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1},\n    \"background-position\": {\"bottom\":2, \"center\":2, \"left\":2, \"right\":2, \"top\":2, \"inherit\":2},\n    \"background-attachment\": {\"scroll\": 1, \"fixed\": 1},\n    \"background-size\": {\"cover\": 1, \"contain\": 1},\n    \"background-clip\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"background-origin\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"border\": {\"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1},\n    \"border-color\": {\"#$0\": 1},\n    \"border-style\": {\"solid\":2, \"dashed\":2, \"dotted\":2, \"double\":2, \"groove\":2, \"hidden\":2, \"inherit\":2, \"inset\":2, \"none\":2, \"outset\":2, \"ridged\":2},\n    \"border-collapse\": {\"collapse\": 1, \"separate\": 1},\n    \"bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"clear\": {\"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1},\n    \"color\": {\"#$0\": 1, \"rgb(#$00,0,0)\": 1},\n    \"cursor\": {\"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1},\n    \"display\": {\"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1},\n    \"empty-cells\": {\"show\": 1, \"hide\": 1},\n    \"float\": {\"left\": 1, \"right\": 1, \"none\": 1},\n    \"font-family\": {\"Arial\":2,\"Comic Sans MS\":2,\"Consolas\":2,\"Courier New\":2,\"Courier\":2,\"Georgia\":2,\"Monospace\":2,\"Sans-Serif\":2, \"Segoe UI\":2,\"Tahoma\":2,\"Times New Roman\":2,\"Trebuchet MS\":2,\"Verdana\": 1},\n    \"font-size\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"font-weight\": {\"bold\": 1, \"normal\": 1},\n    \"font-style\": {\"italic\": 1, \"normal\": 1},\n    \"font-variant\": {\"normal\": 1, \"small-caps\": 1},\n    \"height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"letter-spacing\": {\"normal\": 1},\n    \"line-height\": {\"normal\": 1},\n    \"list-style-type\": {\"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1},\n    \"margin\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"overflow\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-x\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-y\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"padding\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"page-break-after\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"page-break-before\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"position\": {\"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1},\n    \"right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"table-layout\": {\"fixed\": 1, \"auto\": 1},\n    \"text-decoration\": {\"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1},\n    \"text-align\": {\"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1},\n    \"text-transform\": {\"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1},\n    \"top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"vertical-align\": {\"top\": 1, \"bottom\": 1},\n    \"visibility\": {\"hidden\": 1, \"visible\": 1},\n    \"white-space\": {\"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1},\n    \"width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"word-spacing\": {\"normal\": 1},\n    \"filter\": {\"alpha(opacity=$0100)\": 1},\n\n    \"text-shadow\": {\"$02px 2px 2px #777\": 1},\n    \"text-overflow\": {\"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1},\n    \"-moz-border-radius\": 1,\n    \"-moz-border-radius-topright\": 1,\n    \"-moz-border-radius-bottomright\": 1,\n    \"-moz-border-radius-topleft\": 1,\n    \"-moz-border-radius-bottomleft\": 1,\n    \"-webkit-border-radius\": 1,\n    \"-webkit-border-top-right-radius\": 1,\n    \"-webkit-border-top-left-radius\": 1,\n    \"-webkit-border-bottom-right-radius\": 1,\n    \"-webkit-border-bottom-left-radius\": 1,\n    \"-moz-box-shadow\": 1,\n    \"-webkit-box-shadow\": 1,\n    \"transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-moz-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-webkit-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\n\nvar CssCompletions = function() {\n\n};\n\n(function() {\n\n    this.completionsDefined = false;\n\n    this.defineCompletions = function() {\n        if (document) {\n            var style = document.createElement('c').style;\n\n            for (var i in style) {\n                if (typeof style[i] !== 'string')\n                    continue;\n\n                var name = i.replace(/[A-Z]/g, function(x) {\n                    return '-' + x.toLowerCase();\n                });\n\n                if (!propertyMap.hasOwnProperty(name))\n                    propertyMap[name] = 1;\n            }\n        }\n\n        this.completionsDefined = true;\n    }\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        if (!this.completionsDefined) {\n            this.defineCompletions();\n        }\n\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (state==='ruleset'){\n            var line = session.getLine(pos.row).substr(0, pos.column);\n            if (/:[^;]+$/.test(line)) {\n                /([\\w\\-]+):[^:]*$/.test(line);\n\n                return this.getPropertyValueCompletions(state, session, pos, prefix);\n            } else {\n                return this.getPropertyCompletions(state, session, pos, prefix);\n            }\n        }\n\n        return [];\n    };\n\n    this.getPropertyCompletions = function(state, session, pos, prefix) {\n        var properties = Object.keys(propertyMap);\n        return properties.map(function(property){\n            return {\n                caption: property,\n                snippet: property + ': $0',\n                meta: \"property\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getPropertyValueCompletions = function(state, session, pos, prefix) {\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n\n        if (!property)\n            return [];\n        var values = [];\n        if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n            values = Object.keys(propertyMap[property]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"property value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(CssCompletions.prototype);\n\nexports.CssCompletions = CssCompletions;\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar CssBehaviour = function () {\n\n    this.inherit(CstyleBehaviour);\n\n    this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(cursor.row);\n                var rightChar = line.substring(cursor.column, cursor.column + 1);\n                if (rightChar === ':') {\n                    return {\n                       text: '',\n                       selection: [1, 1]\n                    }\n                }\n                if (!line.substring(cursor.column).match(/^\\s*;/)) {\n                    return {\n                       text: ':;',\n                       selection: [1, 1]\n                    }\n                }\n            }\n        }\n    });\n\n    this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && selected === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(range.start.row);\n                var rightChar = line.substring(range.end.column, range.end.column + 1);\n                if (rightChar === ';') {\n                    range.end.column ++;\n                    return range;\n                }\n            }\n        }\n    });\n\n    this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ';') {\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar === ';') {\n                return {\n                   text: '',\n                   selection: [1, 1]\n                }\n            }\n        }\n    });\n\n}\noop.inherits(CssBehaviour, CstyleBehaviour);\n\nexports.CssBehaviour = CssBehaviour;\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = CssHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CssBehaviour();\n    this.$completer = new CssCompletions();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.foldingRules = \"cStyle\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        var match = line.match(/^.*\\{\\s*$/);\n        if (match) {\n            indent += tab;\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/css\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n    a           : 'anchor',\n    button \t    : 'form',\n    form        : 'form',\n    img         : 'image',\n    input       : 'form',\n    label       : 'form',\n    option      : 'form',\n    script      : 'script',\n    select      : 'form',\n    textarea    : 'form',\n    style       : 'style',\n    table       : 'table',\n    tbody       : 'table',\n    td          : 'table',\n    tfoot       : 'table',\n    th          : 'table',\n    tr          : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.addRules({\n        attributes: [{\n            include : \"tag_whitespace\"\n        }, {\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"[-_a-zA-Z0-9:.]+\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\",\n            push : [{\n                include: \"tag_whitespace\"\n            }, {\n                token : \"string.unquoted.attribute-value.html\",\n                regex : \"[^<>='\\\"`\\\\s]+\",\n                next : \"pop\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"pop\"\n            }]\n        }, {\n            include : \"attribute_value\"\n        }],\n        tag: [{\n            token : function(start, tag) {\n                var group = tagMap[tag];\n                return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                    \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n            },\n            regex : \"(</?)([-_a-zA-Z0-9:.]+)\",\n            next: \"tag_stuff\"\n        }],\n        tag_stuff: [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n        ]\n    });\n\n    this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"js-\", \"script\");\n\n    if (this.constructor === HtmlHighlightRules)\n        this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nvar XmlBehaviour = function () {\n\n    this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '\"' || text == \"'\") {\n            var quote = text;\n            var selected = session.doc.getTextRange(editor.getSelectionRange());\n            if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n                return {\n                    text: quote + selected + quote,\n                    selection: false\n                };\n            }\n\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n                return {\n                    text: \"\",\n                    selection: [1, 1]\n                };\n            }\n\n            if (!token)\n                token = iterator.stepBackward();\n\n            if (!token)\n                return;\n\n            while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n                token = iterator.stepBackward();\n            }\n            var rightSpace = !rightChar || rightChar.match(/\\s/);\n            if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n                return {\n                    text: quote + quote,\n                    selection: [1, 1]\n                };\n            }\n        }\n    });\n\n    this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == selected) {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n\n    this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '>') {\n            var position = editor.getSelectionRange().start;\n            var iterator = new TokenIterator(session, position.row, position.column);\n            var token = iterator.getCurrentToken() || iterator.stepBackward();\n            if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n                return;\n            if (is(token, \"reference.attribute-value\"))\n                return;\n            if (is(token, \"attribute-value\")) {\n                var firstChar = token.value.charAt(0);\n                if (firstChar == '\"' || firstChar == \"'\") {\n                    var lastChar = token.value.charAt(token.value.length - 1);\n                    var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;\n                    if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)\n                        return;\n                }\n            }\n            while (!is(token, \"tag-name\")) {\n                token = iterator.stepBackward();\n                if (token.value == \"<\") {\n                    token = iterator.stepForward();\n                    break;\n                }\n            }\n\n            var tokenRow = iterator.getCurrentTokenRow();\n            var tokenColumn = iterator.getCurrentTokenColumn();\n            if (is(iterator.stepBackward(), \"end-tag-open\"))\n                return;\n\n            var element = token.value;\n            if (tokenRow == position.row)\n                element = element.substring(0, position.column - tokenColumn);\n\n            if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n                 return;\n\n            return {\n               text: \">\" + \"</\" + element + \">\",\n               selection: [1, 1]\n            };\n        }\n    });\n\n    this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == \"\\n\") {\n            var cursor = editor.getCursorPosition();\n            var line = session.getLine(cursor.row);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (token && token.type.indexOf(\"tag-close\") !== -1) {\n                if (token.value == \"/>\")\n                    return;\n                while (token && token.type.indexOf(\"tag-name\") === -1) {\n                    token = iterator.stepBackward();\n                }\n\n                if (!token) {\n                    return;\n                }\n\n                var tag = token.value;\n                var row = iterator.getCurrentTokenRow();\n                token = iterator.stepBackward();\n                if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n                    return;\n                }\n\n                if (this.voidElements && !this.voidElements[tag]) {\n                    var nextToken = session.getTokenAt(cursor.row, cursor.column+1);\n                    var line = session.getLine(row);\n                    var nextIndent = this.$getIndent(line);\n                    var indent = nextIndent + session.getTabString();\n\n                    if (nextToken && nextToken.value === \"</\") {\n                        return {\n                            text: \"\\n\" + indent + \"\\n\" + nextIndent,\n                            selection: [1, indent.length, 1, indent.length]\n                        };\n                    } else {\n                        return {\n                            text: \"\\n\" + indent\n                        };\n                    }\n                }\n            }\n        }\n    });\n\n};\n\noop.inherits(XmlBehaviour, Behaviour);\n\nexports.XmlBehaviour = XmlBehaviour;\n});\n\nace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(defaultMode, subModes) {\n    this.defaultMode = defaultMode;\n    this.subModes = subModes;\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n\n    this.$getMode = function(state) {\n        if (typeof state != \"string\") \n            state = state[0];\n        for (var key in this.subModes) {\n            if (state.indexOf(key) === 0)\n                return this.subModes[key];\n        }\n        return null;\n    };\n    \n    this.$tryMode = function(state, session, foldStyle, row) {\n        var mode = this.$getMode(state);\n        return (mode ? mode.getFoldWidget(session, foldStyle, row) : \"\");\n    };\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        return (\n            this.$tryMode(session.getState(row-1), session, foldStyle, row) ||\n            this.$tryMode(session.getState(row), session, foldStyle, row) ||\n            this.defaultMode.getFoldWidget(session, foldStyle, row)\n        );\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var mode = this.$getMode(session.getState(row-1));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.$getMode(session.getState(row));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.defaultMode;\n        \n        return mode.getFoldWidgetRange(session, foldStyle, row);\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar lang = require(\"../../lib/lang\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalEndTags) {\n    BaseFoldMode.call(this);\n    this.voidElements = voidElements || {};\n    this.optionalEndTags = oop.mixin({}, this.voidElements);\n    if (optionalEndTags)\n        oop.mixin(this.optionalEndTags, optionalEndTags);\n    \n};\noop.inherits(FoldMode, BaseFoldMode);\n\nvar Tag = function() {\n    this.tagName = \"\";\n    this.closing = false;\n    this.selfClosing = false;\n    this.start = {row: 0, column: 0};\n    this.end = {row: 0, column: 0};\n};\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\n(function() {\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var tag = this._getFirstTagInLine(session, row);\n\n        if (!tag)\n            return \"\";\n\n        if (tag.closing || (!tag.tagName && tag.selfClosing))\n            return foldStyle == \"markbeginend\" ? \"end\" : \"\";\n\n        if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n            return \"\";\n\n        if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n            return \"\";\n\n        return \"start\";\n    };\n    this._getFirstTagInLine = function(session, row) {\n        var tokens = session.getTokens(row);\n        var tag = new Tag();\n\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            if (is(token, \"tag-open\")) {\n                tag.end.column = tag.start.column + token.value.length;\n                tag.closing = is(token, \"end-tag-open\");\n                token = tokens[++i];\n                if (!token)\n                    return null;\n                tag.tagName = token.value;\n                tag.end.column += token.value.length;\n                for (i++; i < tokens.length; i++) {\n                    token = tokens[i];\n                    tag.end.column += token.value.length;\n                    if (is(token, \"tag-close\")) {\n                        tag.selfClosing = token.value == '/>';\n                        break;\n                    }\n                }\n                return tag;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == '/>';\n                return tag;\n            }\n            tag.start.column += token.value.length;\n        }\n\n        return null;\n    };\n\n    this._findEndTagInLine = function(session, row, tagName, startColumn) {\n        var tokens = session.getTokens(row);\n        var column = 0;\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            column += token.value.length;\n            if (column < startColumn)\n                continue;\n            if (is(token, \"end-tag-open\")) {\n                token = tokens[i + 1];\n                if (token && token.value == tagName)\n                    return true;\n            }\n        }\n        return false;\n    };\n    this._readTagForward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n                iterator.stepForward();\n                return tag;\n            }\n        } while(token = iterator.stepForward());\n\n        return null;\n    };\n    \n    this._readTagBackward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n                iterator.stepBackward();\n                return tag;\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n            }\n        } while(token = iterator.stepBackward());\n\n        return null;\n    };\n    \n    this._pop = function(stack, tag) {\n        while (stack.length) {\n            \n            var top = stack[stack.length-1];\n            if (!tag || top.tagName == tag.tagName) {\n                return stack.pop();\n            }\n            else if (this.optionalEndTags.hasOwnProperty(top.tagName)) {\n                stack.pop();\n                continue;\n            } else {\n                return null;\n            }\n        }\n    };\n    \n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var firstTag = this._getFirstTagInLine(session, row);\n        \n        if (!firstTag)\n            return null;\n        \n        var isBackward = firstTag.closing || firstTag.selfClosing;\n        var stack = [];\n        var tag;\n        \n        if (!isBackward) {\n            var iterator = new TokenIterator(session, row, firstTag.start.column);\n            var start = {\n                row: row,\n                column: firstTag.start.column + firstTag.tagName.length + 2\n            };\n            if (firstTag.start.row == firstTag.end.row)\n                start.column = firstTag.end.column;\n            while (tag = this._readTagForward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0)\n                        return Range.fromPoints(start, tag.start);\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        else {\n            var iterator = new TokenIterator(session, row, firstTag.end.column);\n            var end = {\n                row: row,\n                column: firstTag.start.column\n            };\n            \n            while (tag = this._readTagBackward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (!tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0) {\n                        tag.start.column += tag.tagName.length + 2;\n                        if (tag.start.row == tag.end.row && tag.start.column < tag.end.column)\n                            tag.start.column = tag.end.column;\n                        return Range.fromPoints(tag.start, end);\n                    }\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        \n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar MixedFoldMode = require(\"./mixed\").FoldMode;\nvar XmlFoldMode = require(\"./xml\").FoldMode;\nvar CStyleFoldMode = require(\"./cstyle\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalTags) {\n    MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), {\n        \"js-\": new CStyleFoldMode(),\n        \"css-\": new CStyleFoldMode()\n    });\n};\n\noop.inherits(FoldMode, MixedFoldMode);\n\n});\n\nace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\n\nvar commonAttributes = [\n    \"accesskey\",\n    \"class\",\n    \"contenteditable\",\n    \"contextmenu\",\n    \"dir\",\n    \"draggable\",\n    \"dropzone\",\n    \"hidden\",\n    \"id\",\n    \"inert\",\n    \"itemid\",\n    \"itemprop\",\n    \"itemref\",\n    \"itemscope\",\n    \"itemtype\",\n    \"lang\",\n    \"spellcheck\",\n    \"style\",\n    \"tabindex\",\n    \"title\",\n    \"translate\"\n];\n\nvar eventAttributes = [\n    \"onabort\",\n    \"onblur\",\n    \"oncancel\",\n    \"oncanplay\",\n    \"oncanplaythrough\",\n    \"onchange\",\n    \"onclick\",\n    \"onclose\",\n    \"oncontextmenu\",\n    \"oncuechange\",\n    \"ondblclick\",\n    \"ondrag\",\n    \"ondragend\",\n    \"ondragenter\",\n    \"ondragleave\",\n    \"ondragover\",\n    \"ondragstart\",\n    \"ondrop\",\n    \"ondurationchange\",\n    \"onemptied\",\n    \"onended\",\n    \"onerror\",\n    \"onfocus\",\n    \"oninput\",\n    \"oninvalid\",\n    \"onkeydown\",\n    \"onkeypress\",\n    \"onkeyup\",\n    \"onload\",\n    \"onloadeddata\",\n    \"onloadedmetadata\",\n    \"onloadstart\",\n    \"onmousedown\",\n    \"onmousemove\",\n    \"onmouseout\",\n    \"onmouseover\",\n    \"onmouseup\",\n    \"onmousewheel\",\n    \"onpause\",\n    \"onplay\",\n    \"onplaying\",\n    \"onprogress\",\n    \"onratechange\",\n    \"onreset\",\n    \"onscroll\",\n    \"onseeked\",\n    \"onseeking\",\n    \"onselect\",\n    \"onshow\",\n    \"onstalled\",\n    \"onsubmit\",\n    \"onsuspend\",\n    \"ontimeupdate\",\n    \"onvolumechange\",\n    \"onwaiting\"\n];\n\nvar globalAttributes = commonAttributes.concat(eventAttributes);\n\nvar attributeMap = {\n    \"html\": {\"manifest\": 1},\n    \"head\": {},\n    \"title\": {},\n    \"base\": {\"href\": 1, \"target\": 1},\n    \"link\": {\"href\": 1, \"hreflang\": 1, \"rel\": {\"stylesheet\": 1, \"icon\": 1}, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"type\": {\"text/css\": 1, \"image/png\": 1, \"image/jpeg\": 1, \"image/gif\": 1}, \"sizes\": 1},\n    \"meta\": {\"http-equiv\": {\"content-type\": 1}, \"name\": {\"description\": 1, \"keywords\": 1}, \"content\": {\"text/html; charset=UTF-8\": 1}, \"charset\": 1},\n    \"style\": {\"type\": 1, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"scoped\": 1},\n    \"script\": {\"charset\": 1, \"type\": {\"text/javascript\": 1}, \"src\": 1, \"defer\": 1, \"async\": 1},\n    \"noscript\": {\"href\": 1},\n    \"body\": {\"onafterprint\": 1, \"onbeforeprint\": 1, \"onbeforeunload\": 1, \"onhashchange\": 1, \"onmessage\": 1, \"onoffline\": 1, \"onpopstate\": 1, \"onredo\": 1, \"onresize\": 1, \"onstorage\": 1, \"onundo\": 1, \"onunload\": 1},\n    \"section\": {},\n    \"nav\": {},\n    \"article\": {\"pubdate\": 1},\n    \"aside\": {},\n    \"h1\": {},\n    \"h2\": {},\n    \"h3\": {},\n    \"h4\": {},\n    \"h5\": {},\n    \"h6\": {},\n    \"header\": {},\n    \"footer\": {},\n    \"address\": {},\n    \"main\": {},\n    \"p\": {},\n    \"hr\": {},\n    \"pre\": {},\n    \"blockquote\": {\"cite\": 1},\n    \"ol\": {\"start\": 1, \"reversed\": 1},\n    \"ul\": {},\n    \"li\": {\"value\": 1},\n    \"dl\": {},\n    \"dt\": {},\n    \"dd\": {},\n    \"figure\": {},\n    \"figcaption\": {},\n    \"div\": {},\n    \"a\": {\"href\": 1, \"target\": {\"_blank\": 1, \"top\": 1}, \"ping\": 1, \"rel\": {\"nofollow\": 1, \"alternate\": 1, \"author\": 1, \"bookmark\": 1, \"help\": 1, \"license\": 1, \"next\": 1, \"noreferrer\": 1, \"prefetch\": 1, \"prev\": 1, \"search\": 1, \"tag\": 1}, \"media\": 1, \"hreflang\": 1, \"type\": 1},\n    \"em\": {},\n    \"strong\": {},\n    \"small\": {},\n    \"s\": {},\n    \"cite\": {},\n    \"q\": {\"cite\": 1},\n    \"dfn\": {},\n    \"abbr\": {},\n    \"data\": {},\n    \"time\": {\"datetime\": 1},\n    \"code\": {},\n    \"var\": {},\n    \"samp\": {},\n    \"kbd\": {},\n    \"sub\": {},\n    \"sup\": {},\n    \"i\": {},\n    \"b\": {},\n    \"u\": {},\n    \"mark\": {},\n    \"ruby\": {},\n    \"rt\": {},\n    \"rp\": {},\n    \"bdi\": {},\n    \"bdo\": {},\n    \"span\": {},\n    \"br\": {},\n    \"wbr\": {},\n    \"ins\": {\"cite\": 1, \"datetime\": 1},\n    \"del\": {\"cite\": 1, \"datetime\": 1},\n    \"img\": {\"alt\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"usemap\": 1, \"ismap\": 1},\n    \"iframe\": {\"name\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"sandbox\": {\"allow-same-origin\": 1, \"allow-top-navigation\": 1, \"allow-forms\": 1, \"allow-scripts\": 1}, \"seamless\": {\"seamless\": 1}},\n    \"embed\": {\"src\": 1, \"height\": 1, \"width\": 1, \"type\": 1},\n    \"object\": {\"param\": 1, \"data\": 1, \"type\": 1, \"height\" : 1, \"width\": 1, \"usemap\": 1, \"name\": 1, \"form\": 1, \"classid\": 1},\n    \"param\": {\"name\": 1, \"value\": 1},\n    \"video\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"width\": 1, \"height\": 1, \"poster\": 1, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1}},\n    \"audio\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1 }},\n    \"source\": {\"src\": 1, \"type\": 1, \"media\": 1},\n    \"track\": {\"kind\": 1, \"src\": 1, \"srclang\": 1, \"label\": 1, \"default\": 1},\n    \"canvas\": {\"width\": 1, \"height\": 1},\n    \"map\": {\"name\": 1},\n    \"area\": {\"shape\": 1, \"coords\": 1, \"href\": 1, \"hreflang\": 1, \"alt\": 1, \"target\": 1, \"media\": 1, \"rel\": 1, \"ping\": 1, \"type\": 1},\n    \"svg\": {},\n    \"math\": {},\n    \"table\": {\"summary\": 1},\n    \"caption\": {},\n    \"colgroup\": {\"span\": 1},\n    \"col\": {\"span\": 1},\n    \"tbody\": {},\n    \"thead\": {},\n    \"tfoot\": {},\n    \"tr\": {},\n    \"td\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1},\n    \"th\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1, \"scope\": 1},\n    \"form\": {\"accept-charset\": 1, \"action\": 1, \"autocomplete\": 1, \"enctype\": {\"multipart/form-data\": 1, \"application/x-www-form-urlencoded\": 1}, \"method\": {\"get\": 1, \"post\": 1}, \"name\": 1, \"novalidate\": 1, \"target\": {\"_blank\": 1, \"top\": 1}},\n    \"fieldset\": {\"disabled\": 1, \"form\": 1, \"name\": 1},\n    \"legend\": {},\n    \"label\": {\"form\": 1, \"for\": 1},\n    \"input\": {\n        \"type\": {\"text\": 1, \"password\": 1, \"hidden\": 1, \"checkbox\": 1, \"submit\": 1, \"radio\": 1, \"file\": 1, \"button\": 1, \"reset\": 1, \"image\": 31, \"color\": 1, \"date\": 1, \"datetime\": 1, \"datetime-local\": 1, \"email\": 1, \"month\": 1, \"number\": 1, \"range\": 1, \"search\": 1, \"tel\": 1, \"time\": 1, \"url\": 1, \"week\": 1},\n        \"accept\": 1, \"alt\": 1, \"autocomplete\": {\"on\": 1, \"off\": 1}, \"autofocus\": {\"autofocus\": 1}, \"checked\": {\"checked\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": {\"application/x-www-form-urlencoded\": 1, \"multipart/form-data\": 1, \"text/plain\": 1}, \"formmethod\": {\"get\": 1, \"post\": 1}, \"formnovalidate\": {\"formnovalidate\": 1}, \"formtarget\": {\"_blank\": 1, \"_self\": 1, \"_parent\": 1, \"_top\": 1}, \"height\": 1, \"list\": 1, \"max\": 1, \"maxlength\": 1, \"min\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"pattern\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"size\": 1, \"src\": 1, \"step\": 1, \"width\": 1, \"files\": 1, \"value\": 1},\n    \"button\": {\"autofocus\": 1, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": 1, \"formmethod\": 1, \"formnovalidate\": 1, \"formtarget\": 1, \"name\": 1, \"value\": 1, \"type\": {\"button\": 1, \"submit\": 1}},\n    \"select\": {\"autofocus\": 1, \"disabled\": 1, \"form\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"size\": 1, \"readonly\":{\"readonly\": 1}},\n    \"datalist\": {},\n    \"optgroup\": {\"disabled\": 1, \"label\": 1},\n    \"option\": {\"disabled\": 1, \"selected\": 1, \"label\": 1, \"value\": 1},\n    \"textarea\": {\"autofocus\": {\"autofocus\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"maxlength\": 1, \"name\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"rows\": 1, \"cols\": 1, \"wrap\": {\"on\": 1, \"off\": 1, \"hard\": 1, \"soft\": 1}},\n    \"keygen\": {\"autofocus\": 1, \"challenge\": {\"challenge\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"keytype\": {\"rsa\": 1, \"dsa\": 1, \"ec\": 1}, \"name\": 1},\n    \"output\": {\"for\": 1, \"form\": 1, \"name\": 1},\n    \"progress\": {\"value\": 1, \"max\": 1},\n    \"meter\": {\"value\": 1, \"min\": 1, \"max\": 1, \"low\": 1, \"high\": 1, \"optimum\": 1},\n    \"details\": {\"open\": 1},\n    \"summary\": {},\n    \"command\": {\"type\": 1, \"label\": 1, \"icon\": 1, \"disabled\": 1, \"checked\": 1, \"radiogroup\": 1, \"command\": 1},\n    \"menu\": {\"type\": 1, \"label\": 1},\n    \"dialog\": {\"open\": 1}\n};\n\nvar elements = Object.keys(attributeMap);\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nfunction findTagName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"tag-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nfunction findAttributeName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"attribute-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nvar HtmlCompletions = function() {\n\n};\n\n(function() {\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (is(token, \"tag-name\") || is(token, \"tag-open\") || is(token, \"end-tag-open\"))\n            return this.getTagCompletions(state, session, pos, prefix);\n        if (is(token, \"tag-whitespace\") || is(token, \"attribute-name\"))\n            return this.getAttributeCompletions(state, session, pos, prefix);\n        if (is(token, \"attribute-value\"))\n            return this.getAttributeValueCompletions(state, session, pos, prefix);\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        if (/&[a-z]*$/i.test(line))\n            return this.getHTMLEntityCompletions(state, session, pos, prefix);\n\n        return [];\n    };\n\n    this.getTagCompletions = function(state, session, pos, prefix) {\n        return elements.map(function(element){\n            return {\n                value: element,\n                meta: \"tag\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        if (!tagName)\n            return [];\n        var attributes = globalAttributes;\n        if (tagName in attributeMap) {\n            attributes = attributes.concat(Object.keys(attributeMap[tagName]));\n        }\n        return attributes.map(function(attribute){\n            return {\n                caption: attribute,\n                snippet: attribute + '=\"$0\"',\n                meta: \"attribute\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeValueCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        var attributeName = findAttributeName(session, pos);\n        \n        if (!tagName)\n            return [];\n        var values = [];\n        if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === \"object\") {\n            values = Object.keys(attributeMap[tagName][attributeName]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"attribute value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getHTMLEntityCompletions = function(state, session, pos, prefix) {\n        var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;'];\n\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"html entity\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(HtmlCompletions.prototype);\n\nexports.HtmlCompletions = HtmlCompletions;\n});\n\nace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar CssMode = require(\"./css\").Mode;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar HtmlFoldMode = require(\"./folding/html\").FoldMode;\nvar HtmlCompletions = require(\"./html_completions\").HtmlCompletions;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar voidElements = [\"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"menuitem\", \"param\", \"source\", \"track\", \"wbr\"];\nvar optionalEndTags = [\"li\", \"dt\", \"dd\", \"p\", \"rt\", \"rp\", \"optgroup\", \"option\", \"colgroup\", \"td\", \"th\"];\n\nvar Mode = function(options) {\n    this.fragmentContext = options && options.fragmentContext;\n    this.HighlightRules = HtmlHighlightRules;\n    this.$behaviour = new XmlBehaviour();\n    this.$completer = new HtmlCompletions();\n    \n    this.createModeDelegates({\n        \"js-\": JavaScriptMode,\n        \"css-\": CssMode\n    });\n    \n    this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags));\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.blockComment = {start: \"<!--\", end: \"-->\"};\n\n    this.voidElements = lang.arrayToMap(voidElements);\n\n    this.getNextLineIndent = function(state, line, tab) {\n        return this.$getIndent(line);\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return false;\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        if (this.constructor != Mode)\n            return;\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/html_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        if (this.fragmentContext)\n            worker.call(\"setOptions\", [{context: this.fragmentContext}]);\n\n        worker.on(\"error\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/html\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-html_elixir.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n    a           : 'anchor',\n    button \t    : 'form',\n    form        : 'form',\n    img         : 'image',\n    input       : 'form',\n    label       : 'form',\n    option      : 'form',\n    script      : 'script',\n    select      : 'form',\n    textarea    : 'form',\n    style       : 'style',\n    table       : 'table',\n    tbody       : 'table',\n    td          : 'table',\n    tfoot       : 'table',\n    th          : 'table',\n    tr          : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.addRules({\n        attributes: [{\n            include : \"tag_whitespace\"\n        }, {\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"[-_a-zA-Z0-9:.]+\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\",\n            push : [{\n                include: \"tag_whitespace\"\n            }, {\n                token : \"string.unquoted.attribute-value.html\",\n                regex : \"[^<>='\\\"`\\\\s]+\",\n                next : \"pop\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"pop\"\n            }]\n        }, {\n            include : \"attribute_value\"\n        }],\n        tag: [{\n            token : function(start, tag) {\n                var group = tagMap[tag];\n                return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                    \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n            },\n            regex : \"(</?)([-_a-zA-Z0-9:.]+)\",\n            next: \"tag_stuff\"\n        }],\n        tag_stuff: [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n        ]\n    });\n\n    this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"js-\", \"script\");\n\n    if (this.constructor === HtmlHighlightRules)\n        this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/elixir_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar ElixirHighlightRules = function() {\n\n    this.$rules = { start: \n       [ { token: \n            [ 'meta.module.elixir',\n              'keyword.control.module.elixir',\n              'meta.module.elixir',\n              'entity.name.type.module.elixir' ],\n           regex: '^(\\\\s*)(defmodule)(\\\\s+)((?:[A-Z]\\\\w*\\\\s*\\\\.\\\\s*)*[A-Z]\\\\w*)' },\n         { token: 'comment.documentation.heredoc',\n           regex: '@(?:module|type)?doc (?:~[a-z])?\"\"\"',\n           push: \n            [ { token: 'comment.documentation.heredoc',\n                regex: '\\\\s*\"\"\"',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'comment.documentation.heredoc' } ],\n           comment: '@doc with heredocs is treated as documentation' },\n         { token: 'comment.documentation.heredoc',\n           regex: '@(?:module|type)?doc ~[A-Z]\"\"\"',\n           push: \n            [ { token: 'comment.documentation.heredoc',\n                regex: '\\\\s*\"\"\"',\n                next: 'pop' },\n              { defaultToken: 'comment.documentation.heredoc' } ],\n           comment: '@doc with heredocs is treated as documentation' },\n         { token: 'comment.documentation.heredoc',\n           regex: '@(?:module|type)?doc (?:~[a-z])?\\'\\'\\'',\n           push: \n            [ { token: 'comment.documentation.heredoc',\n                regex: '\\\\s*\\'\\'\\'',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'comment.documentation.heredoc' } ],\n           comment: '@doc with heredocs is treated as documentation' },\n         { token: 'comment.documentation.heredoc',\n           regex: '@(?:module|type)?doc ~[A-Z]\\'\\'\\'',\n           push: \n            [ { token: 'comment.documentation.heredoc',\n                regex: '\\\\s*\\'\\'\\'',\n                next: 'pop' },\n              { defaultToken: 'comment.documentation.heredoc' } ],\n           comment: '@doc with heredocs is treated as documentation' },\n         { token: 'comment.documentation.false',\n           regex: '@(?:module|type)?doc false',\n           comment: '@doc false is treated as documentation' },\n         { token: 'comment.documentation.string',\n           regex: '@(?:module|type)?doc \"',\n           push: \n            [ { token: 'comment.documentation.string',\n                regex: '\"',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'comment.documentation.string' } ],\n           comment: '@doc with string is treated as documentation' },\n         { token: 'keyword.control.elixir',\n           regex: '\\\\b(?:do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\\\\b(?![?!])',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?<!\\\\.)\\\\b(do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\\\\b(?![?!])' },\n         { token: 'keyword.operator.elixir',\n           regex: '\\\\b(?:and|not|or|when|xor|in|inlist|inbits)\\\\b',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?<!\\\\.)\\\\b(and|not|or|when|xor|in|inlist|inbits)\\\\b',\n           comment: ' as above, just doesn\\'t need a \\'end\\' and does a logic operation' },\n         { token: 'constant.language.elixir',\n           regex: '\\\\b(?:nil|true|false)\\\\b(?![?!])' },\n         { token: 'variable.language.elixir',\n           regex: '\\\\b__(?:CALLER|ENV|MODULE|DIR)__\\\\b(?![?!])' },\n         { token: \n            [ 'punctuation.definition.variable.elixir',\n              'variable.other.readwrite.module.elixir' ],\n           regex: '(@)([a-zA-Z_]\\\\w*)' },\n         { token: \n            [ 'punctuation.definition.variable.elixir',\n              'variable.other.anonymous.elixir' ],\n           regex: '(&)(\\\\d*)' },\n         { token: 'variable.other.constant.elixir',\n           regex: '\\\\b[A-Z]\\\\w*\\\\b' },\n         { token: 'constant.numeric.elixir',\n           regex: '\\\\b(?:0x[\\\\da-fA-F](?:_?[\\\\da-fA-F])*|\\\\d(?:_?\\\\d)*(?:\\\\.(?![^[:space:][:digit:]])(?:_?\\\\d)*)?(?:[eE][-+]?\\\\d(?:_?\\\\d)*)?|0b[01]+|0o[0-7]+)\\\\b',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '\\\\b(0x\\\\h(?>_?\\\\h)*|\\\\d(?>_?\\\\d)*(\\\\.(?![^[:space:][:digit:]])(?>_?\\\\d)*)?([eE][-+]?\\\\d(?>_?\\\\d)*)?|0b[01]+|0o[0-7]+)\\\\b' },\n         { token: 'punctuation.definition.constant.elixir',\n           regex: ':\\'',\n           push: \n            [ { token: 'punctuation.definition.constant.elixir',\n                regex: '\\'',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'constant.other.symbol.single-quoted.elixir' } ] },\n         { token: 'punctuation.definition.constant.elixir',\n           regex: ':\"',\n           push: \n            [ { token: 'punctuation.definition.constant.elixir',\n                regex: '\"',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'constant.other.symbol.double-quoted.elixir' } ] },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '(?:\\'\\'\\')',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?>\\'\\'\\')',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '^\\\\s*\\'\\'\\'',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'support.function.variable.quoted.single.heredoc.elixir' } ],\n           comment: 'Single-quoted heredocs' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '\\'',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '\\'',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'support.function.variable.quoted.single.elixir' } ],\n           comment: 'single quoted string (allows for interpolation)' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '(?:\"\"\")',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?>\"\"\")',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '^\\\\s*\"\"\"',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'string.quoted.double.heredoc.elixir' } ],\n           comment: 'Double-quoted heredocs' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '\"',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '\"',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'string.quoted.double.elixir' } ],\n           comment: 'double quoted string (allows for interpolation)' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '~[a-z](?:\"\"\")',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '~[a-z](?>\"\"\")',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '^\\\\s*\"\"\"',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'string.quoted.double.heredoc.elixir' } ],\n           comment: 'Double-quoted heredocs sigils' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '~[a-z]\\\\{',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '\\\\}[a-z]*',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'string.interpolated.elixir' } ],\n           comment: 'sigil (allow for interpolation)' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '~[a-z]\\\\[',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '\\\\][a-z]*',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'string.interpolated.elixir' } ],\n           comment: 'sigil (allow for interpolation)' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '~[a-z]\\\\<',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '\\\\>[a-z]*',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'string.interpolated.elixir' } ],\n           comment: 'sigil (allow for interpolation)' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '~[a-z]\\\\(',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '\\\\)[a-z]*',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { defaultToken: 'string.interpolated.elixir' } ],\n           comment: 'sigil (allow for interpolation)' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '~[a-z][^\\\\w]',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '[^\\\\w][a-z]*',\n                next: 'pop' },\n              { include: '#interpolated_elixir' },\n              { include: '#escaped_char' },\n              { include: '#escaped_char' },\n              { defaultToken: 'string.interpolated.elixir' } ],\n           comment: 'sigil (allow for interpolation)' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '~[A-Z](?:\"\"\")',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '~[A-Z](?>\"\"\")',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '^\\\\s*\"\"\"',\n                next: 'pop' },\n              { defaultToken: 'string.quoted.other.literal.upper.elixir' } ],\n           comment: 'Double-quoted heredocs sigils' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '~[A-Z]\\\\{',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '\\\\}[a-z]*',\n                next: 'pop' },\n              { defaultToken: 'string.quoted.other.literal.upper.elixir' } ],\n           comment: 'sigil (without interpolation)' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '~[A-Z]\\\\[',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '\\\\][a-z]*',\n                next: 'pop' },\n              { defaultToken: 'string.quoted.other.literal.upper.elixir' } ],\n           comment: 'sigil (without interpolation)' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '~[A-Z]\\\\<',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '\\\\>[a-z]*',\n                next: 'pop' },\n              { defaultToken: 'string.quoted.other.literal.upper.elixir' } ],\n           comment: 'sigil (without interpolation)' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '~[A-Z]\\\\(',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '\\\\)[a-z]*',\n                next: 'pop' },\n              { defaultToken: 'string.quoted.other.literal.upper.elixir' } ],\n           comment: 'sigil (without interpolation)' },\n         { token: 'punctuation.definition.string.begin.elixir',\n           regex: '~[A-Z][^\\\\w]',\n           push: \n            [ { token: 'punctuation.definition.string.end.elixir',\n                regex: '[^\\\\w][a-z]*',\n                next: 'pop' },\n              { defaultToken: 'string.quoted.other.literal.upper.elixir' } ],\n           comment: 'sigil (without interpolation)' },\n         { token: ['punctuation.definition.constant.elixir', 'constant.other.symbol.elixir'],\n           regex: '(:)([a-zA-Z_][\\\\w@]*(?:[?!]|=(?![>=]))?|\\\\<\\\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\\\-|\\\\|>|=>|~|~=|=|/|\\\\\\\\\\\\\\\\|\\\\*\\\\*?|\\\\.\\\\.?\\\\.?|>=?|<=?|&&?&?|\\\\+\\\\+?|\\\\-\\\\-?|\\\\|\\\\|?\\\\|?|\\\\!|@|\\\\%?\\\\{\\\\}|%|\\\\[\\\\]|\\\\^(?:\\\\^\\\\^)?)',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?<!:)(:)(?>[a-zA-Z_][\\\\w@]*(?>[?!]|=(?![>=]))?|\\\\<\\\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\\\-|\\\\|>|=>|~|~=|=|/|\\\\\\\\\\\\\\\\|\\\\*\\\\*?|\\\\.\\\\.?\\\\.?|>=?|<=?|&&?&?|\\\\+\\\\+?|\\\\-\\\\-?|\\\\|\\\\|?\\\\|?|\\\\!|@|\\\\%?\\\\{\\\\}|%|\\\\[\\\\]|\\\\^(\\\\^\\\\^)?)',\n           comment: 'symbols' },\n         { token: 'punctuation.definition.constant.elixir',\n           regex: '(?:[a-zA-Z_][\\\\w@]*(?:[?!])?):(?!:)',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?>[a-zA-Z_][\\\\w@]*(?>[?!])?)(:)(?!:)',\n           comment: 'symbols' },\n         { token: \n            [ 'punctuation.definition.comment.elixir',\n              'comment.line.number-sign.elixir' ],\n           regex: '(#)(.*)' },\n         { token: 'constant.numeric.elixir',\n           regex: '\\\\?(?:\\\\\\\\(?:x[\\\\da-fA-F]{1,2}(?![\\\\da-fA-F])\\\\b|[^xMC])|[^\\\\s\\\\\\\\])',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?<!\\\\w)\\\\?(\\\\\\\\(x\\\\h{1,2}(?!\\\\h)\\\\b|[^xMC])|[^\\\\s\\\\\\\\])',\n           comment: '\\n\\t\\t\\tmatches questionmark-letters.\\n\\n\\t\\t\\texamples (1st alternation = hex):\\n\\t\\t\\t?\\\\x1     ?\\\\x61\\n\\n\\t\\t\\texamples (2rd alternation = escaped):\\n\\t\\t\\t?\\\\n      ?\\\\b\\n\\n\\t\\t\\texamples (3rd alternation = normal):\\n\\t\\t\\t?a       ?A       ?0 \\n\\t\\t\\t?*       ?\"       ?( \\n\\t\\t\\t?.       ?#\\n\\t\\t\\t\\n\\t\\t\\tthe negative lookbehind prevents against matching\\n\\t\\t\\tp(42.tainted?)\\n\\t\\t\\t' },\n         { token: 'keyword.operator.assignment.augmented.elixir',\n           regex: '\\\\+=|\\\\-=|\\\\|\\\\|=|~=|&&=' },\n         { token: 'keyword.operator.comparison.elixir',\n           regex: '===?|!==?|<=?|>=?' },\n         { token: 'keyword.operator.bitwise.elixir',\n           regex: '\\\\|{3}|&{3}|\\\\^{3}|<{3}|>{3}|~{3}' },\n         { token: 'keyword.operator.logical.elixir',\n           regex: '!+|\\\\bnot\\\\b|&&|\\\\band\\\\b|\\\\|\\\\||\\\\bor\\\\b|\\\\bxor\\\\b',\n           originalRegex: '(?<=[ \\\\t])!+|\\\\bnot\\\\b|&&|\\\\band\\\\b|\\\\|\\\\||\\\\bor\\\\b|\\\\bxor\\\\b' },\n         { token: 'keyword.operator.arithmetic.elixir',\n           regex: '\\\\*|\\\\+|\\\\-|/' },\n         { token: 'keyword.operator.other.elixir',\n           regex: '\\\\||\\\\+\\\\+|\\\\-\\\\-|\\\\*\\\\*|\\\\\\\\\\\\\\\\|\\\\<\\\\-|\\\\<\\\\>|\\\\<\\\\<|\\\\>\\\\>|\\\\:\\\\:|\\\\.\\\\.|\\\\|>|~|=>' },\n         { token: 'keyword.operator.assignment.elixir', regex: '=' },\n         { token: 'punctuation.separator.other.elixir', regex: ':' },\n         { token: 'punctuation.separator.statement.elixir',\n           regex: '\\\\;' },\n         { token: 'punctuation.separator.object.elixir', regex: ',' },\n         { token: 'punctuation.separator.method.elixir', regex: '\\\\.' },\n         { token: 'punctuation.section.scope.elixir', regex: '\\\\{|\\\\}' },\n         { token: 'punctuation.section.array.elixir', regex: '\\\\[|\\\\]' },\n         { token: 'punctuation.section.function.elixir',\n           regex: '\\\\(|\\\\)' } ],\n      '#escaped_char': \n       [ { token: 'constant.character.escape.elixir',\n           regex: '\\\\\\\\(?:x[\\\\da-fA-F]{1,2}|.)' } ],\n      '#interpolated_elixir': \n       [ { token: \n            [ 'source.elixir.embedded.source',\n              'source.elixir.embedded.source.empty' ],\n           regex: '(#\\\\{)(\\\\})' },\n         { todo: \n            { token: 'punctuation.section.embedded.elixir',\n              regex: '#\\\\{',\n              push: \n               [ { token: 'punctuation.section.embedded.elixir',\n                   regex: '\\\\}',\n                   next: 'pop' },\n                 { include: '#nest_curly_and_self' },\n                 { include: '$self' },\n                 { defaultToken: 'source.elixir.embedded.source' } ] } } ],\n      '#nest_curly_and_self': \n       [ { token: 'punctuation.section.scope.elixir',\n           regex: '\\\\{',\n           push: \n            [ { token: 'punctuation.section.scope.elixir',\n                regex: '\\\\}',\n                next: 'pop' },\n              { include: '#nest_curly_and_self' } ] },\n         { include: '$self' } ],\n      '#regex_sub': \n       [ { include: '#interpolated_elixir' },\n         { include: '#escaped_char' },\n         { token: \n            [ 'punctuation.definition.arbitrary-repitition.elixir',\n              'string.regexp.arbitrary-repitition.elixir',\n              'string.regexp.arbitrary-repitition.elixir',\n              'punctuation.definition.arbitrary-repitition.elixir' ],\n           regex: '(\\\\{)(\\\\d+)((?:,\\\\d+)?)(\\\\})' },\n         { token: 'punctuation.definition.character-class.elixir',\n           regex: '\\\\[(?:\\\\^?\\\\])?',\n           push: \n            [ { token: 'punctuation.definition.character-class.elixir',\n                regex: '\\\\]',\n                next: 'pop' },\n              { include: '#escaped_char' },\n              { defaultToken: 'string.regexp.character-class.elixir' } ] },\n         { token: 'punctuation.definition.group.elixir',\n           regex: '\\\\(',\n           push: \n            [ { token: 'punctuation.definition.group.elixir',\n                regex: '\\\\)',\n                next: 'pop' },\n              { include: '#regex_sub' },\n              { defaultToken: 'string.regexp.group.elixir' } ] },\n         { token: \n            [ 'punctuation.definition.comment.elixir',\n              'comment.line.number-sign.elixir' ],\n           regex: '(?:^|\\\\s)(#)(\\\\s[[a-zA-Z0-9,. \\\\t?!-][^\\\\x00-\\\\x7F]]*$)',\n           originalRegex: '(?<=^|\\\\s)(#)\\\\s[[a-zA-Z0-9,. \\\\t?!-][^\\\\x{00}-\\\\x{7F}]]*$',\n           comment: 'We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.' } ] }\n    \n    this.normalizeRules();\n};\n\nElixirHighlightRules.metaData = { comment: 'Textmate bundle for Elixir Programming Language.',\n      fileTypes: [ 'ex', 'exs' ],\n      firstLineMatch: '^#!/.*\\\\belixir',\n      foldingStartMarker: '(after|else|catch|rescue|\\\\-\\\\>|\\\\{|\\\\[|do)\\\\s*$',\n      foldingStopMarker: '^\\\\s*((\\\\}|\\\\]|after|else|catch|rescue)\\\\s*$|end\\\\b)',\n      keyEquivalent: '^~E',\n      name: 'Elixir',\n      scopeName: 'source.elixir' }\n\n\noop.inherits(ElixirHighlightRules, TextHighlightRules);\n\nexports.ElixirHighlightRules = ElixirHighlightRules;\n});\n\nace.define(\"ace/mode/html_elixir_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/elixir_highlight_rules\"], function(require, exports, module) {\n    \"use strict\";\n\n    var oop = require(\"../lib/oop\");\n    var HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\n    var ElixirHighlightRules = require(\"./elixir_highlight_rules\").ElixirHighlightRules;\n\n    var HtmlElixirHighlightRules = function() {\n        HtmlHighlightRules.call(this);\n\n        var startRules = [\n            {\n                regex: \"<%%|%%>\",\n                token: \"constant.language.escape\"\n            }, {\n                token : \"comment.start.eex\",\n                regex : \"<%#\",\n                push  : [{\n                    token : \"comment.end.eex\",\n                    regex: \"%>\",\n                    next: \"pop\",\n                    defaultToken:\"comment\"\n                }]\n            }, {\n                token : \"support.elixir_tag\",\n                regex : \"<%+(?!>)[-=]?\",\n                push  : \"elixir-start\"\n            }\n        ];\n\n        var endRules = [\n            {\n                token : \"support.elixir_tag\",\n                regex : \"%>\",\n                next  : \"pop\"\n            }, {\n                token: \"comment\",\n                regex: \"#(?:[^%]|%[^>])*\"\n            }\n        ];\n\n        for (var key in this.$rules)\n            this.$rules[key].unshift.apply(this.$rules[key], startRules);\n\n        this.embedRules(ElixirHighlightRules, \"elixir-\", endRules, [\"start\"]);\n\n        this.normalizeRules();\n    };\n\n\n    oop.inherits(HtmlElixirHighlightRules, HtmlHighlightRules);\n\n    exports.HtmlElixirHighlightRules = HtmlElixirHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar propertyMap = {\n    \"background\": {\"#$0\": 1},\n    \"background-color\": {\"#$0\": 1, \"transparent\": 1, \"fixed\": 1},\n    \"background-image\": {\"url('/$0')\": 1},\n    \"background-repeat\": {\"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1},\n    \"background-position\": {\"bottom\":2, \"center\":2, \"left\":2, \"right\":2, \"top\":2, \"inherit\":2},\n    \"background-attachment\": {\"scroll\": 1, \"fixed\": 1},\n    \"background-size\": {\"cover\": 1, \"contain\": 1},\n    \"background-clip\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"background-origin\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"border\": {\"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1},\n    \"border-color\": {\"#$0\": 1},\n    \"border-style\": {\"solid\":2, \"dashed\":2, \"dotted\":2, \"double\":2, \"groove\":2, \"hidden\":2, \"inherit\":2, \"inset\":2, \"none\":2, \"outset\":2, \"ridged\":2},\n    \"border-collapse\": {\"collapse\": 1, \"separate\": 1},\n    \"bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"clear\": {\"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1},\n    \"color\": {\"#$0\": 1, \"rgb(#$00,0,0)\": 1},\n    \"cursor\": {\"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1},\n    \"display\": {\"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1},\n    \"empty-cells\": {\"show\": 1, \"hide\": 1},\n    \"float\": {\"left\": 1, \"right\": 1, \"none\": 1},\n    \"font-family\": {\"Arial\":2,\"Comic Sans MS\":2,\"Consolas\":2,\"Courier New\":2,\"Courier\":2,\"Georgia\":2,\"Monospace\":2,\"Sans-Serif\":2, \"Segoe UI\":2,\"Tahoma\":2,\"Times New Roman\":2,\"Trebuchet MS\":2,\"Verdana\": 1},\n    \"font-size\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"font-weight\": {\"bold\": 1, \"normal\": 1},\n    \"font-style\": {\"italic\": 1, \"normal\": 1},\n    \"font-variant\": {\"normal\": 1, \"small-caps\": 1},\n    \"height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"letter-spacing\": {\"normal\": 1},\n    \"line-height\": {\"normal\": 1},\n    \"list-style-type\": {\"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1},\n    \"margin\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"overflow\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-x\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-y\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"padding\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"page-break-after\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"page-break-before\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"position\": {\"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1},\n    \"right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"table-layout\": {\"fixed\": 1, \"auto\": 1},\n    \"text-decoration\": {\"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1},\n    \"text-align\": {\"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1},\n    \"text-transform\": {\"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1},\n    \"top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"vertical-align\": {\"top\": 1, \"bottom\": 1},\n    \"visibility\": {\"hidden\": 1, \"visible\": 1},\n    \"white-space\": {\"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1},\n    \"width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"word-spacing\": {\"normal\": 1},\n    \"filter\": {\"alpha(opacity=$0100)\": 1},\n\n    \"text-shadow\": {\"$02px 2px 2px #777\": 1},\n    \"text-overflow\": {\"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1},\n    \"-moz-border-radius\": 1,\n    \"-moz-border-radius-topright\": 1,\n    \"-moz-border-radius-bottomright\": 1,\n    \"-moz-border-radius-topleft\": 1,\n    \"-moz-border-radius-bottomleft\": 1,\n    \"-webkit-border-radius\": 1,\n    \"-webkit-border-top-right-radius\": 1,\n    \"-webkit-border-top-left-radius\": 1,\n    \"-webkit-border-bottom-right-radius\": 1,\n    \"-webkit-border-bottom-left-radius\": 1,\n    \"-moz-box-shadow\": 1,\n    \"-webkit-box-shadow\": 1,\n    \"transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-moz-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-webkit-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\n\nvar CssCompletions = function() {\n\n};\n\n(function() {\n\n    this.completionsDefined = false;\n\n    this.defineCompletions = function() {\n        if (document) {\n            var style = document.createElement('c').style;\n\n            for (var i in style) {\n                if (typeof style[i] !== 'string')\n                    continue;\n\n                var name = i.replace(/[A-Z]/g, function(x) {\n                    return '-' + x.toLowerCase();\n                });\n\n                if (!propertyMap.hasOwnProperty(name))\n                    propertyMap[name] = 1;\n            }\n        }\n\n        this.completionsDefined = true;\n    }\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        if (!this.completionsDefined) {\n            this.defineCompletions();\n        }\n\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (state==='ruleset'){\n            var line = session.getLine(pos.row).substr(0, pos.column);\n            if (/:[^;]+$/.test(line)) {\n                /([\\w\\-]+):[^:]*$/.test(line);\n\n                return this.getPropertyValueCompletions(state, session, pos, prefix);\n            } else {\n                return this.getPropertyCompletions(state, session, pos, prefix);\n            }\n        }\n\n        return [];\n    };\n\n    this.getPropertyCompletions = function(state, session, pos, prefix) {\n        var properties = Object.keys(propertyMap);\n        return properties.map(function(property){\n            return {\n                caption: property,\n                snippet: property + ': $0',\n                meta: \"property\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getPropertyValueCompletions = function(state, session, pos, prefix) {\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n\n        if (!property)\n            return [];\n        var values = [];\n        if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n            values = Object.keys(propertyMap[property]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"property value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(CssCompletions.prototype);\n\nexports.CssCompletions = CssCompletions;\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar CssBehaviour = function () {\n\n    this.inherit(CstyleBehaviour);\n\n    this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(cursor.row);\n                var rightChar = line.substring(cursor.column, cursor.column + 1);\n                if (rightChar === ':') {\n                    return {\n                       text: '',\n                       selection: [1, 1]\n                    }\n                }\n                if (!line.substring(cursor.column).match(/^\\s*;/)) {\n                    return {\n                       text: ':;',\n                       selection: [1, 1]\n                    }\n                }\n            }\n        }\n    });\n\n    this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && selected === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(range.start.row);\n                var rightChar = line.substring(range.end.column, range.end.column + 1);\n                if (rightChar === ';') {\n                    range.end.column ++;\n                    return range;\n                }\n            }\n        }\n    });\n\n    this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ';') {\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar === ';') {\n                return {\n                   text: '',\n                   selection: [1, 1]\n                }\n            }\n        }\n    });\n\n}\noop.inherits(CssBehaviour, CstyleBehaviour);\n\nexports.CssBehaviour = CssBehaviour;\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = CssHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CssBehaviour();\n    this.$completer = new CssCompletions();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.foldingRules = \"cStyle\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        var match = line.match(/^.*\\{\\s*$/);\n        if (match) {\n            indent += tab;\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/css\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nvar XmlBehaviour = function () {\n\n    this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '\"' || text == \"'\") {\n            var quote = text;\n            var selected = session.doc.getTextRange(editor.getSelectionRange());\n            if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n                return {\n                    text: quote + selected + quote,\n                    selection: false\n                };\n            }\n\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n                return {\n                    text: \"\",\n                    selection: [1, 1]\n                };\n            }\n\n            if (!token)\n                token = iterator.stepBackward();\n\n            if (!token)\n                return;\n\n            while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n                token = iterator.stepBackward();\n            }\n            var rightSpace = !rightChar || rightChar.match(/\\s/);\n            if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n                return {\n                    text: quote + quote,\n                    selection: [1, 1]\n                };\n            }\n        }\n    });\n\n    this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == selected) {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n\n    this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '>') {\n            var position = editor.getSelectionRange().start;\n            var iterator = new TokenIterator(session, position.row, position.column);\n            var token = iterator.getCurrentToken() || iterator.stepBackward();\n            if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n                return;\n            if (is(token, \"reference.attribute-value\"))\n                return;\n            if (is(token, \"attribute-value\")) {\n                var firstChar = token.value.charAt(0);\n                if (firstChar == '\"' || firstChar == \"'\") {\n                    var lastChar = token.value.charAt(token.value.length - 1);\n                    var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;\n                    if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)\n                        return;\n                }\n            }\n            while (!is(token, \"tag-name\")) {\n                token = iterator.stepBackward();\n                if (token.value == \"<\") {\n                    token = iterator.stepForward();\n                    break;\n                }\n            }\n\n            var tokenRow = iterator.getCurrentTokenRow();\n            var tokenColumn = iterator.getCurrentTokenColumn();\n            if (is(iterator.stepBackward(), \"end-tag-open\"))\n                return;\n\n            var element = token.value;\n            if (tokenRow == position.row)\n                element = element.substring(0, position.column - tokenColumn);\n\n            if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n                 return;\n\n            return {\n               text: \">\" + \"</\" + element + \">\",\n               selection: [1, 1]\n            };\n        }\n    });\n\n    this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == \"\\n\") {\n            var cursor = editor.getCursorPosition();\n            var line = session.getLine(cursor.row);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (token && token.type.indexOf(\"tag-close\") !== -1) {\n                if (token.value == \"/>\")\n                    return;\n                while (token && token.type.indexOf(\"tag-name\") === -1) {\n                    token = iterator.stepBackward();\n                }\n\n                if (!token) {\n                    return;\n                }\n\n                var tag = token.value;\n                var row = iterator.getCurrentTokenRow();\n                token = iterator.stepBackward();\n                if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n                    return;\n                }\n\n                if (this.voidElements && !this.voidElements[tag]) {\n                    var nextToken = session.getTokenAt(cursor.row, cursor.column+1);\n                    var line = session.getLine(row);\n                    var nextIndent = this.$getIndent(line);\n                    var indent = nextIndent + session.getTabString();\n\n                    if (nextToken && nextToken.value === \"</\") {\n                        return {\n                            text: \"\\n\" + indent + \"\\n\" + nextIndent,\n                            selection: [1, indent.length, 1, indent.length]\n                        };\n                    } else {\n                        return {\n                            text: \"\\n\" + indent\n                        };\n                    }\n                }\n            }\n        }\n    });\n\n};\n\noop.inherits(XmlBehaviour, Behaviour);\n\nexports.XmlBehaviour = XmlBehaviour;\n});\n\nace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(defaultMode, subModes) {\n    this.defaultMode = defaultMode;\n    this.subModes = subModes;\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n\n    this.$getMode = function(state) {\n        if (typeof state != \"string\") \n            state = state[0];\n        for (var key in this.subModes) {\n            if (state.indexOf(key) === 0)\n                return this.subModes[key];\n        }\n        return null;\n    };\n    \n    this.$tryMode = function(state, session, foldStyle, row) {\n        var mode = this.$getMode(state);\n        return (mode ? mode.getFoldWidget(session, foldStyle, row) : \"\");\n    };\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        return (\n            this.$tryMode(session.getState(row-1), session, foldStyle, row) ||\n            this.$tryMode(session.getState(row), session, foldStyle, row) ||\n            this.defaultMode.getFoldWidget(session, foldStyle, row)\n        );\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var mode = this.$getMode(session.getState(row-1));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.$getMode(session.getState(row));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.defaultMode;\n        \n        return mode.getFoldWidgetRange(session, foldStyle, row);\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar lang = require(\"../../lib/lang\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalEndTags) {\n    BaseFoldMode.call(this);\n    this.voidElements = voidElements || {};\n    this.optionalEndTags = oop.mixin({}, this.voidElements);\n    if (optionalEndTags)\n        oop.mixin(this.optionalEndTags, optionalEndTags);\n    \n};\noop.inherits(FoldMode, BaseFoldMode);\n\nvar Tag = function() {\n    this.tagName = \"\";\n    this.closing = false;\n    this.selfClosing = false;\n    this.start = {row: 0, column: 0};\n    this.end = {row: 0, column: 0};\n};\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\n(function() {\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var tag = this._getFirstTagInLine(session, row);\n\n        if (!tag)\n            return \"\";\n\n        if (tag.closing || (!tag.tagName && tag.selfClosing))\n            return foldStyle == \"markbeginend\" ? \"end\" : \"\";\n\n        if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n            return \"\";\n\n        if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n            return \"\";\n\n        return \"start\";\n    };\n    this._getFirstTagInLine = function(session, row) {\n        var tokens = session.getTokens(row);\n        var tag = new Tag();\n\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            if (is(token, \"tag-open\")) {\n                tag.end.column = tag.start.column + token.value.length;\n                tag.closing = is(token, \"end-tag-open\");\n                token = tokens[++i];\n                if (!token)\n                    return null;\n                tag.tagName = token.value;\n                tag.end.column += token.value.length;\n                for (i++; i < tokens.length; i++) {\n                    token = tokens[i];\n                    tag.end.column += token.value.length;\n                    if (is(token, \"tag-close\")) {\n                        tag.selfClosing = token.value == '/>';\n                        break;\n                    }\n                }\n                return tag;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == '/>';\n                return tag;\n            }\n            tag.start.column += token.value.length;\n        }\n\n        return null;\n    };\n\n    this._findEndTagInLine = function(session, row, tagName, startColumn) {\n        var tokens = session.getTokens(row);\n        var column = 0;\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            column += token.value.length;\n            if (column < startColumn)\n                continue;\n            if (is(token, \"end-tag-open\")) {\n                token = tokens[i + 1];\n                if (token && token.value == tagName)\n                    return true;\n            }\n        }\n        return false;\n    };\n    this._readTagForward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n                iterator.stepForward();\n                return tag;\n            }\n        } while(token = iterator.stepForward());\n\n        return null;\n    };\n    \n    this._readTagBackward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n                iterator.stepBackward();\n                return tag;\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n            }\n        } while(token = iterator.stepBackward());\n\n        return null;\n    };\n    \n    this._pop = function(stack, tag) {\n        while (stack.length) {\n            \n            var top = stack[stack.length-1];\n            if (!tag || top.tagName == tag.tagName) {\n                return stack.pop();\n            }\n            else if (this.optionalEndTags.hasOwnProperty(top.tagName)) {\n                stack.pop();\n                continue;\n            } else {\n                return null;\n            }\n        }\n    };\n    \n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var firstTag = this._getFirstTagInLine(session, row);\n        \n        if (!firstTag)\n            return null;\n        \n        var isBackward = firstTag.closing || firstTag.selfClosing;\n        var stack = [];\n        var tag;\n        \n        if (!isBackward) {\n            var iterator = new TokenIterator(session, row, firstTag.start.column);\n            var start = {\n                row: row,\n                column: firstTag.start.column + firstTag.tagName.length + 2\n            };\n            if (firstTag.start.row == firstTag.end.row)\n                start.column = firstTag.end.column;\n            while (tag = this._readTagForward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0)\n                        return Range.fromPoints(start, tag.start);\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        else {\n            var iterator = new TokenIterator(session, row, firstTag.end.column);\n            var end = {\n                row: row,\n                column: firstTag.start.column\n            };\n            \n            while (tag = this._readTagBackward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (!tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0) {\n                        tag.start.column += tag.tagName.length + 2;\n                        if (tag.start.row == tag.end.row && tag.start.column < tag.end.column)\n                            tag.start.column = tag.end.column;\n                        return Range.fromPoints(tag.start, end);\n                    }\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        \n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar MixedFoldMode = require(\"./mixed\").FoldMode;\nvar XmlFoldMode = require(\"./xml\").FoldMode;\nvar CStyleFoldMode = require(\"./cstyle\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalTags) {\n    MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), {\n        \"js-\": new CStyleFoldMode(),\n        \"css-\": new CStyleFoldMode()\n    });\n};\n\noop.inherits(FoldMode, MixedFoldMode);\n\n});\n\nace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\n\nvar commonAttributes = [\n    \"accesskey\",\n    \"class\",\n    \"contenteditable\",\n    \"contextmenu\",\n    \"dir\",\n    \"draggable\",\n    \"dropzone\",\n    \"hidden\",\n    \"id\",\n    \"inert\",\n    \"itemid\",\n    \"itemprop\",\n    \"itemref\",\n    \"itemscope\",\n    \"itemtype\",\n    \"lang\",\n    \"spellcheck\",\n    \"style\",\n    \"tabindex\",\n    \"title\",\n    \"translate\"\n];\n\nvar eventAttributes = [\n    \"onabort\",\n    \"onblur\",\n    \"oncancel\",\n    \"oncanplay\",\n    \"oncanplaythrough\",\n    \"onchange\",\n    \"onclick\",\n    \"onclose\",\n    \"oncontextmenu\",\n    \"oncuechange\",\n    \"ondblclick\",\n    \"ondrag\",\n    \"ondragend\",\n    \"ondragenter\",\n    \"ondragleave\",\n    \"ondragover\",\n    \"ondragstart\",\n    \"ondrop\",\n    \"ondurationchange\",\n    \"onemptied\",\n    \"onended\",\n    \"onerror\",\n    \"onfocus\",\n    \"oninput\",\n    \"oninvalid\",\n    \"onkeydown\",\n    \"onkeypress\",\n    \"onkeyup\",\n    \"onload\",\n    \"onloadeddata\",\n    \"onloadedmetadata\",\n    \"onloadstart\",\n    \"onmousedown\",\n    \"onmousemove\",\n    \"onmouseout\",\n    \"onmouseover\",\n    \"onmouseup\",\n    \"onmousewheel\",\n    \"onpause\",\n    \"onplay\",\n    \"onplaying\",\n    \"onprogress\",\n    \"onratechange\",\n    \"onreset\",\n    \"onscroll\",\n    \"onseeked\",\n    \"onseeking\",\n    \"onselect\",\n    \"onshow\",\n    \"onstalled\",\n    \"onsubmit\",\n    \"onsuspend\",\n    \"ontimeupdate\",\n    \"onvolumechange\",\n    \"onwaiting\"\n];\n\nvar globalAttributes = commonAttributes.concat(eventAttributes);\n\nvar attributeMap = {\n    \"html\": {\"manifest\": 1},\n    \"head\": {},\n    \"title\": {},\n    \"base\": {\"href\": 1, \"target\": 1},\n    \"link\": {\"href\": 1, \"hreflang\": 1, \"rel\": {\"stylesheet\": 1, \"icon\": 1}, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"type\": {\"text/css\": 1, \"image/png\": 1, \"image/jpeg\": 1, \"image/gif\": 1}, \"sizes\": 1},\n    \"meta\": {\"http-equiv\": {\"content-type\": 1}, \"name\": {\"description\": 1, \"keywords\": 1}, \"content\": {\"text/html; charset=UTF-8\": 1}, \"charset\": 1},\n    \"style\": {\"type\": 1, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"scoped\": 1},\n    \"script\": {\"charset\": 1, \"type\": {\"text/javascript\": 1}, \"src\": 1, \"defer\": 1, \"async\": 1},\n    \"noscript\": {\"href\": 1},\n    \"body\": {\"onafterprint\": 1, \"onbeforeprint\": 1, \"onbeforeunload\": 1, \"onhashchange\": 1, \"onmessage\": 1, \"onoffline\": 1, \"onpopstate\": 1, \"onredo\": 1, \"onresize\": 1, \"onstorage\": 1, \"onundo\": 1, \"onunload\": 1},\n    \"section\": {},\n    \"nav\": {},\n    \"article\": {\"pubdate\": 1},\n    \"aside\": {},\n    \"h1\": {},\n    \"h2\": {},\n    \"h3\": {},\n    \"h4\": {},\n    \"h5\": {},\n    \"h6\": {},\n    \"header\": {},\n    \"footer\": {},\n    \"address\": {},\n    \"main\": {},\n    \"p\": {},\n    \"hr\": {},\n    \"pre\": {},\n    \"blockquote\": {\"cite\": 1},\n    \"ol\": {\"start\": 1, \"reversed\": 1},\n    \"ul\": {},\n    \"li\": {\"value\": 1},\n    \"dl\": {},\n    \"dt\": {},\n    \"dd\": {},\n    \"figure\": {},\n    \"figcaption\": {},\n    \"div\": {},\n    \"a\": {\"href\": 1, \"target\": {\"_blank\": 1, \"top\": 1}, \"ping\": 1, \"rel\": {\"nofollow\": 1, \"alternate\": 1, \"author\": 1, \"bookmark\": 1, \"help\": 1, \"license\": 1, \"next\": 1, \"noreferrer\": 1, \"prefetch\": 1, \"prev\": 1, \"search\": 1, \"tag\": 1}, \"media\": 1, \"hreflang\": 1, \"type\": 1},\n    \"em\": {},\n    \"strong\": {},\n    \"small\": {},\n    \"s\": {},\n    \"cite\": {},\n    \"q\": {\"cite\": 1},\n    \"dfn\": {},\n    \"abbr\": {},\n    \"data\": {},\n    \"time\": {\"datetime\": 1},\n    \"code\": {},\n    \"var\": {},\n    \"samp\": {},\n    \"kbd\": {},\n    \"sub\": {},\n    \"sup\": {},\n    \"i\": {},\n    \"b\": {},\n    \"u\": {},\n    \"mark\": {},\n    \"ruby\": {},\n    \"rt\": {},\n    \"rp\": {},\n    \"bdi\": {},\n    \"bdo\": {},\n    \"span\": {},\n    \"br\": {},\n    \"wbr\": {},\n    \"ins\": {\"cite\": 1, \"datetime\": 1},\n    \"del\": {\"cite\": 1, \"datetime\": 1},\n    \"img\": {\"alt\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"usemap\": 1, \"ismap\": 1},\n    \"iframe\": {\"name\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"sandbox\": {\"allow-same-origin\": 1, \"allow-top-navigation\": 1, \"allow-forms\": 1, \"allow-scripts\": 1}, \"seamless\": {\"seamless\": 1}},\n    \"embed\": {\"src\": 1, \"height\": 1, \"width\": 1, \"type\": 1},\n    \"object\": {\"param\": 1, \"data\": 1, \"type\": 1, \"height\" : 1, \"width\": 1, \"usemap\": 1, \"name\": 1, \"form\": 1, \"classid\": 1},\n    \"param\": {\"name\": 1, \"value\": 1},\n    \"video\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"width\": 1, \"height\": 1, \"poster\": 1, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1}},\n    \"audio\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1 }},\n    \"source\": {\"src\": 1, \"type\": 1, \"media\": 1},\n    \"track\": {\"kind\": 1, \"src\": 1, \"srclang\": 1, \"label\": 1, \"default\": 1},\n    \"canvas\": {\"width\": 1, \"height\": 1},\n    \"map\": {\"name\": 1},\n    \"area\": {\"shape\": 1, \"coords\": 1, \"href\": 1, \"hreflang\": 1, \"alt\": 1, \"target\": 1, \"media\": 1, \"rel\": 1, \"ping\": 1, \"type\": 1},\n    \"svg\": {},\n    \"math\": {},\n    \"table\": {\"summary\": 1},\n    \"caption\": {},\n    \"colgroup\": {\"span\": 1},\n    \"col\": {\"span\": 1},\n    \"tbody\": {},\n    \"thead\": {},\n    \"tfoot\": {},\n    \"tr\": {},\n    \"td\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1},\n    \"th\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1, \"scope\": 1},\n    \"form\": {\"accept-charset\": 1, \"action\": 1, \"autocomplete\": 1, \"enctype\": {\"multipart/form-data\": 1, \"application/x-www-form-urlencoded\": 1}, \"method\": {\"get\": 1, \"post\": 1}, \"name\": 1, \"novalidate\": 1, \"target\": {\"_blank\": 1, \"top\": 1}},\n    \"fieldset\": {\"disabled\": 1, \"form\": 1, \"name\": 1},\n    \"legend\": {},\n    \"label\": {\"form\": 1, \"for\": 1},\n    \"input\": {\n        \"type\": {\"text\": 1, \"password\": 1, \"hidden\": 1, \"checkbox\": 1, \"submit\": 1, \"radio\": 1, \"file\": 1, \"button\": 1, \"reset\": 1, \"image\": 31, \"color\": 1, \"date\": 1, \"datetime\": 1, \"datetime-local\": 1, \"email\": 1, \"month\": 1, \"number\": 1, \"range\": 1, \"search\": 1, \"tel\": 1, \"time\": 1, \"url\": 1, \"week\": 1},\n        \"accept\": 1, \"alt\": 1, \"autocomplete\": {\"on\": 1, \"off\": 1}, \"autofocus\": {\"autofocus\": 1}, \"checked\": {\"checked\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": {\"application/x-www-form-urlencoded\": 1, \"multipart/form-data\": 1, \"text/plain\": 1}, \"formmethod\": {\"get\": 1, \"post\": 1}, \"formnovalidate\": {\"formnovalidate\": 1}, \"formtarget\": {\"_blank\": 1, \"_self\": 1, \"_parent\": 1, \"_top\": 1}, \"height\": 1, \"list\": 1, \"max\": 1, \"maxlength\": 1, \"min\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"pattern\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"size\": 1, \"src\": 1, \"step\": 1, \"width\": 1, \"files\": 1, \"value\": 1},\n    \"button\": {\"autofocus\": 1, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": 1, \"formmethod\": 1, \"formnovalidate\": 1, \"formtarget\": 1, \"name\": 1, \"value\": 1, \"type\": {\"button\": 1, \"submit\": 1}},\n    \"select\": {\"autofocus\": 1, \"disabled\": 1, \"form\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"size\": 1, \"readonly\":{\"readonly\": 1}},\n    \"datalist\": {},\n    \"optgroup\": {\"disabled\": 1, \"label\": 1},\n    \"option\": {\"disabled\": 1, \"selected\": 1, \"label\": 1, \"value\": 1},\n    \"textarea\": {\"autofocus\": {\"autofocus\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"maxlength\": 1, \"name\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"rows\": 1, \"cols\": 1, \"wrap\": {\"on\": 1, \"off\": 1, \"hard\": 1, \"soft\": 1}},\n    \"keygen\": {\"autofocus\": 1, \"challenge\": {\"challenge\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"keytype\": {\"rsa\": 1, \"dsa\": 1, \"ec\": 1}, \"name\": 1},\n    \"output\": {\"for\": 1, \"form\": 1, \"name\": 1},\n    \"progress\": {\"value\": 1, \"max\": 1},\n    \"meter\": {\"value\": 1, \"min\": 1, \"max\": 1, \"low\": 1, \"high\": 1, \"optimum\": 1},\n    \"details\": {\"open\": 1},\n    \"summary\": {},\n    \"command\": {\"type\": 1, \"label\": 1, \"icon\": 1, \"disabled\": 1, \"checked\": 1, \"radiogroup\": 1, \"command\": 1},\n    \"menu\": {\"type\": 1, \"label\": 1},\n    \"dialog\": {\"open\": 1}\n};\n\nvar elements = Object.keys(attributeMap);\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nfunction findTagName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"tag-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nfunction findAttributeName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"attribute-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nvar HtmlCompletions = function() {\n\n};\n\n(function() {\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (is(token, \"tag-name\") || is(token, \"tag-open\") || is(token, \"end-tag-open\"))\n            return this.getTagCompletions(state, session, pos, prefix);\n        if (is(token, \"tag-whitespace\") || is(token, \"attribute-name\"))\n            return this.getAttributeCompletions(state, session, pos, prefix);\n        if (is(token, \"attribute-value\"))\n            return this.getAttributeValueCompletions(state, session, pos, prefix);\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        if (/&[a-z]*$/i.test(line))\n            return this.getHTMLEntityCompletions(state, session, pos, prefix);\n\n        return [];\n    };\n\n    this.getTagCompletions = function(state, session, pos, prefix) {\n        return elements.map(function(element){\n            return {\n                value: element,\n                meta: \"tag\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        if (!tagName)\n            return [];\n        var attributes = globalAttributes;\n        if (tagName in attributeMap) {\n            attributes = attributes.concat(Object.keys(attributeMap[tagName]));\n        }\n        return attributes.map(function(attribute){\n            return {\n                caption: attribute,\n                snippet: attribute + '=\"$0\"',\n                meta: \"attribute\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeValueCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        var attributeName = findAttributeName(session, pos);\n        \n        if (!tagName)\n            return [];\n        var values = [];\n        if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === \"object\") {\n            values = Object.keys(attributeMap[tagName][attributeName]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"attribute value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getHTMLEntityCompletions = function(state, session, pos, prefix) {\n        var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;'];\n\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"html entity\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(HtmlCompletions.prototype);\n\nexports.HtmlCompletions = HtmlCompletions;\n});\n\nace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar CssMode = require(\"./css\").Mode;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar HtmlFoldMode = require(\"./folding/html\").FoldMode;\nvar HtmlCompletions = require(\"./html_completions\").HtmlCompletions;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar voidElements = [\"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"menuitem\", \"param\", \"source\", \"track\", \"wbr\"];\nvar optionalEndTags = [\"li\", \"dt\", \"dd\", \"p\", \"rt\", \"rp\", \"optgroup\", \"option\", \"colgroup\", \"td\", \"th\"];\n\nvar Mode = function(options) {\n    this.fragmentContext = options && options.fragmentContext;\n    this.HighlightRules = HtmlHighlightRules;\n    this.$behaviour = new XmlBehaviour();\n    this.$completer = new HtmlCompletions();\n    \n    this.createModeDelegates({\n        \"js-\": JavaScriptMode,\n        \"css-\": CssMode\n    });\n    \n    this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags));\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.blockComment = {start: \"<!--\", end: \"-->\"};\n\n    this.voidElements = lang.arrayToMap(voidElements);\n\n    this.getNextLineIndent = function(state, line, tab) {\n        return this.$getIndent(line);\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return false;\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        if (this.constructor != Mode)\n            return;\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/html_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        if (this.fragmentContext)\n            worker.call(\"setOptions\", [{context: this.fragmentContext}]);\n\n        worker.on(\"error\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/html\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var range = this.indentationBlock(session, row);\n        if (range)\n            return range;\n\n        var re = /\\S/;\n        var line = session.getLine(row);\n        var startLevel = line.search(re);\n        if (startLevel == -1 || line[startLevel] != \"#\")\n            return;\n\n        var startColumn = line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var level = line.search(re);\n\n            if (level == -1)\n                continue;\n\n            if (line[level] != \"#\")\n                break;\n\n            endRow = row;\n        }\n\n        if (endRow > startRow) {\n            var endColumn = session.getLine(endRow).length;\n            return new Range(startRow, startColumn, endRow, endColumn);\n        }\n    };\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var indent = line.search(/\\S/);\n        var next = session.getLine(row + 1);\n        var prev = session.getLine(row - 1);\n        var prevIndent = prev.search(/\\S/);\n        var nextIndent = next.search(/\\S/);\n\n        if (indent == -1) {\n            session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n            return \"\";\n        }\n        if (prevIndent == -1) {\n            if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n                session.foldWidgets[row - 1] = \"\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"start\";\n            }\n        } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n            if (session.getLine(row - 2).search(/\\S/) == -1) {\n                session.foldWidgets[row - 1] = \"start\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"\";\n            }\n        }\n\n        if (prevIndent!= -1 && prevIndent < indent)\n            session.foldWidgets[row - 1] = \"start\";\n        else\n            session.foldWidgets[row - 1] = \"\";\n\n        if (indent < nextIndent)\n            return \"start\";\n        else\n            return \"\";\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/elixir\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/elixir_highlight_rules\",\"ace/mode/folding/coffee\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar ElixirHighlightRules = require(\"./elixir_highlight_rules\").ElixirHighlightRules;\nvar FoldMode = require(\"./folding/coffee\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = ElixirHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"#\";\n    this.$id = \"ace/mode/elixir\"\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/html_elixir\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_elixir_highlight_rules\",\"ace/mode/html\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/elixir\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar HtmlElixirHighlightRules = require(\"./html_elixir_highlight_rules\").HtmlElixirHighlightRules;\nvar HtmlMode = require(\"./html\").Mode;\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar CssMode = require(\"./css\").Mode;\nvar ElixirMode = require(\"./elixir\").Mode;\n\nvar Mode = function() {\n    HtmlMode.call(this);   \n    this.HighlightRules = HtmlElixirHighlightRules;\n    this.createModeDelegates({\n        \"js-\": JavaScriptMode,\n        \"css-\": CssMode,\n        \"elixir-\": ElixirMode\n    });\n};\noop.inherits(Mode, HtmlMode);\n\n(function() {\n\n    this.$id = \"ace/mode/html_elixir\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-html_ruby.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n    a           : 'anchor',\n    button \t    : 'form',\n    form        : 'form',\n    img         : 'image',\n    input       : 'form',\n    label       : 'form',\n    option      : 'form',\n    script      : 'script',\n    select      : 'form',\n    textarea    : 'form',\n    style       : 'style',\n    table       : 'table',\n    tbody       : 'table',\n    td          : 'table',\n    tfoot       : 'table',\n    th          : 'table',\n    tr          : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.addRules({\n        attributes: [{\n            include : \"tag_whitespace\"\n        }, {\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"[-_a-zA-Z0-9:.]+\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\",\n            push : [{\n                include: \"tag_whitespace\"\n            }, {\n                token : \"string.unquoted.attribute-value.html\",\n                regex : \"[^<>='\\\"`\\\\s]+\",\n                next : \"pop\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"pop\"\n            }]\n        }, {\n            include : \"attribute_value\"\n        }],\n        tag: [{\n            token : function(start, tag) {\n                var group = tagMap[tag];\n                return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                    \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n            },\n            regex : \"(</?)([-_a-zA-Z0-9:.]+)\",\n            next: \"tag_stuff\"\n        }],\n        tag_stuff: [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n        ]\n    });\n\n    this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"js-\", \"script\");\n\n    if (this.constructor === HtmlHighlightRules)\n        this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/ruby_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar constantOtherSymbol = exports.constantOtherSymbol = {\n    token : \"constant.other.symbol.ruby\", // symbol\n    regex : \"[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?\"\n};\n\nvar qString = exports.qString = {\n    token : \"string\", // single line\n    regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n};\n\nvar qqString = exports.qqString = {\n    token : \"string\", // single line\n    regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n};\n\nvar tString = exports.tString = {\n    token : \"string\", // backtick string\n    regex : \"[`](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[`]\"\n};\n\nvar constantNumericHex = exports.constantNumericHex = {\n    token : \"constant.numeric\", // hex\n    regex : \"0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\\\b\"\n};\n\nvar constantNumericFloat = exports.constantNumericFloat = {\n    token : \"constant.numeric\", // float\n    regex : \"[+-]?\\\\d(?:\\\\d|_(?=\\\\d))*(?:(?:\\\\.\\\\d(?:\\\\d|_(?=\\\\d))*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n};\n\nvar RubyHighlightRules = function() {\n\n    var builtinFunctions = (\n        \"abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|\" +\n        \"assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|\" +\n        \"assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|\" +\n        \"assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|\" +\n        \"assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|\" +\n        \"assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|\" +\n        \"attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|\" +\n        \"caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|\" +\n        \"exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|\" +\n        \"gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|\" +\n        \"link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|\" +\n        \"p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|\" +\n        \"raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|\" +\n        \"set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|\" +\n        \"throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|\" +\n        \"render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|\" +\n        \"content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|\" +\n        \"fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|\" +\n        \"time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|\" +\n        \"select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|\" +\n        \"file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|\" +\n        \"protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|\" +\n        \"send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|\" +\n        \"validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|\" +\n        \"validates_inclusion_of|validates_numericality_of|validates_with|validates_each|\" +\n        \"authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|\" +\n        \"filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|\" +\n        \"translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|\" +\n        \"cache|expire_fragment|expire_cache_for|observe|cache_sweeper|\" +\n        \"has_many|has_one|belongs_to|has_and_belongs_to_many\"\n    );\n\n    var keywords = (\n        \"alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|\" +\n        \"__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|\" +\n        \"redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield\"\n    );\n\n    var buildinConstants = (\n        \"true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|\" +\n        \"RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING\"\n    );\n\n    var builtinVariables = (\n        \"$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|\" +\n        \"$!|root_url|flash|session|cookies|params|request|response|logger|self\"\n    );\n\n    var keywordMapper = this.$keywords = this.createKeywordMapper({\n        \"keyword\": keywords,\n        \"constant.language\": buildinConstants,\n        \"variable.language\": builtinVariables,\n        \"support.function\": builtinFunctions,\n        \"invalid.deprecated\": \"debugger\" // TODO is this a remnant from js mode?\n    }, \"identifier\");\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"#.*$\"\n            }, {\n                token : \"comment\", // multi line comment\n                regex : \"^=begin(?:$|\\\\s.*$)\",\n                next : \"comment\"\n            }, {\n                token : \"string.regexp\",\n                regex : \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"\n            },\n\n            [{\n                regex: \"[{}]\", onMatch: function(val, state, stack) {\n                    this.next = val == \"{\" ? this.nextState : \"\";\n                    if (val == \"{\" && stack.length) {\n                        stack.unshift(\"start\", state);\n                        return \"paren.lparen\";\n                    }\n                    if (val == \"}\" && stack.length) {\n                        stack.shift();\n                        this.next = stack.shift();\n                        if (this.next.indexOf(\"string\") != -1)\n                            return \"paren.end\";\n                    }\n                    return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n                },\n                nextState: \"start\"\n            }, {\n                token : \"string.start\",\n                regex : /\"/,\n                push  : [{\n                    token : \"constant.language.escape\",\n                    regex : /\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/\n                }, {\n                    token : \"paren.start\",\n                    regex : /#{/,\n                    push  : \"start\"\n                }, {\n                    token : \"string.end\",\n                    regex : /\"/,\n                    next  : \"pop\"\n                }, {\n                    defaultToken: \"string\"\n                }]\n            }, {\n                token : \"string.start\",\n                regex : /`/,\n                push  : [{\n                    token : \"constant.language.escape\",\n                    regex : /\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/\n                }, {\n                    token : \"paren.start\",\n                    regex : /#{/,\n                    push  : \"start\"\n                }, {\n                    token : \"string.end\",\n                    regex : /`/,\n                    next  : \"pop\"\n                }, {\n                    defaultToken: \"string\"\n                }]\n            }, {\n                token : \"string.start\",\n                regex : /'/,\n                push  : [{\n                    token : \"constant.language.escape\",\n                    regex : /\\\\['\\\\]/\n                },  {\n                    token : \"string.end\",\n                    regex : /'/,\n                    next  : \"pop\"\n                }, {\n                    defaultToken: \"string\"\n                }]\n            }],\n\n            {\n                token : \"text\", // namespaces aren't symbols\n                regex : \"::\"\n            }, {\n                token : \"variable.instance\", // instance variable\n                regex : \"@{1,2}[a-zA-Z_\\\\d]+\"\n            }, {\n                token : \"support.class\", // class name\n                regex : \"[A-Z][a-zA-Z_\\\\d]+\"\n            },\n\n            constantOtherSymbol,\n            constantNumericHex,\n            constantNumericFloat,\n\n            {\n                token : \"constant.language.boolean\",\n                regex : \"(?:true|false)\\\\b\"\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n            }, {\n                token : \"punctuation.separator.key-value\",\n                regex : \"=>\"\n            }, {\n                stateName: \"heredoc\",\n                onMatch : function(value, currentState, stack) {\n                    var next = value[2] == '-' ? \"indentedHeredoc\" : \"heredoc\";\n                    var tokens = value.split(this.splitRegex);\n                    stack.push(next, tokens[3]);\n                    return [\n                        {type:\"constant\", value: tokens[1]},\n                        {type:\"string\", value: tokens[2]},\n                        {type:\"support.class\", value: tokens[3]},\n                        {type:\"string\", value: tokens[4]}\n                    ];\n                },\n                regex : \"(<<-?)(['\\\"`]?)([\\\\w]+)(['\\\"`]?)\",\n                rules: {\n                    heredoc: [{\n                        onMatch:  function(value, currentState, stack) {\n                            if (value === stack[1]) {\n                                stack.shift();\n                                stack.shift();\n                                this.next = stack[0] || \"start\";\n                                return \"support.class\";\n                            }\n                            this.next = \"\";\n                            return \"string\";\n                        },\n                        regex: \".*$\",\n                        next: \"start\"\n                    }],\n                    indentedHeredoc: [{\n                        token: \"string\",\n                        regex: \"^ +\"\n                    }, {\n                        onMatch:  function(value, currentState, stack) {\n                            if (value === stack[1]) {\n                                stack.shift();\n                                stack.shift();\n                                this.next = stack[0] || \"start\";\n                                return \"support.class\";\n                            }\n                            this.next = \"\";\n                            return \"string\";\n                        },\n                        regex: \".*$\",\n                        next: \"start\"\n                    }]\n                }\n            }, {\n                regex : \"$\",\n                token : \"empty\",\n                next : function(currentState, stack) {\n                    if (stack[0] === \"heredoc\" || stack[0] === \"indentedHeredoc\")\n                        return stack[0];\n                    return currentState;\n                }\n            }, {\n               token : \"string.character\",\n               regex : \"\\\\B\\\\?.\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \"^=end(?:$|\\\\s.*$)\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(RubyHighlightRules, TextHighlightRules);\n\nexports.RubyHighlightRules = RubyHighlightRules;\n});\n\nace.define(\"ace/mode/html_ruby_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/ruby_highlight_rules\"], function(require, exports, module) {\n    \"use strict\";\n\n    var oop = require(\"../lib/oop\");\n    var HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\n    var RubyHighlightRules = require(\"./ruby_highlight_rules\").RubyHighlightRules;\n\n    var HtmlRubyHighlightRules = function() {\n        HtmlHighlightRules.call(this);\n\n        var startRules = [\n            {\n                regex: \"<%%|%%>\",\n                token: \"constant.language.escape\"\n            }, {\n                token : \"comment.start.erb\",\n                regex : \"<%#\",\n                push  : [{\n                    token : \"comment.end.erb\",\n                    regex: \"%>\",\n                    next: \"pop\",\n                    defaultToken:\"comment\"\n                }]\n            }, {\n                token : \"support.ruby_tag\",\n                regex : \"<%+(?!>)[-=]?\",\n                push  : \"ruby-start\"\n            }\n        ];\n\n        var endRules = [\n            {\n                token : \"support.ruby_tag\",\n                regex : \"%>\",\n                next  : \"pop\"\n            }, {\n                token: \"comment\",\n                regex: \"#(?:[^%]|%[^>])*\"\n            }\n        ];\n\n        for (var key in this.$rules)\n            this.$rules[key].unshift.apply(this.$rules[key], startRules);\n\n        this.embedRules(RubyHighlightRules, \"ruby-\", endRules, [\"start\"]);\n\n        this.normalizeRules();\n    };\n\n\n    oop.inherits(HtmlRubyHighlightRules, HtmlHighlightRules);\n\n    exports.HtmlRubyHighlightRules = HtmlRubyHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar propertyMap = {\n    \"background\": {\"#$0\": 1},\n    \"background-color\": {\"#$0\": 1, \"transparent\": 1, \"fixed\": 1},\n    \"background-image\": {\"url('/$0')\": 1},\n    \"background-repeat\": {\"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1},\n    \"background-position\": {\"bottom\":2, \"center\":2, \"left\":2, \"right\":2, \"top\":2, \"inherit\":2},\n    \"background-attachment\": {\"scroll\": 1, \"fixed\": 1},\n    \"background-size\": {\"cover\": 1, \"contain\": 1},\n    \"background-clip\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"background-origin\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"border\": {\"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1},\n    \"border-color\": {\"#$0\": 1},\n    \"border-style\": {\"solid\":2, \"dashed\":2, \"dotted\":2, \"double\":2, \"groove\":2, \"hidden\":2, \"inherit\":2, \"inset\":2, \"none\":2, \"outset\":2, \"ridged\":2},\n    \"border-collapse\": {\"collapse\": 1, \"separate\": 1},\n    \"bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"clear\": {\"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1},\n    \"color\": {\"#$0\": 1, \"rgb(#$00,0,0)\": 1},\n    \"cursor\": {\"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1},\n    \"display\": {\"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1},\n    \"empty-cells\": {\"show\": 1, \"hide\": 1},\n    \"float\": {\"left\": 1, \"right\": 1, \"none\": 1},\n    \"font-family\": {\"Arial\":2,\"Comic Sans MS\":2,\"Consolas\":2,\"Courier New\":2,\"Courier\":2,\"Georgia\":2,\"Monospace\":2,\"Sans-Serif\":2, \"Segoe UI\":2,\"Tahoma\":2,\"Times New Roman\":2,\"Trebuchet MS\":2,\"Verdana\": 1},\n    \"font-size\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"font-weight\": {\"bold\": 1, \"normal\": 1},\n    \"font-style\": {\"italic\": 1, \"normal\": 1},\n    \"font-variant\": {\"normal\": 1, \"small-caps\": 1},\n    \"height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"letter-spacing\": {\"normal\": 1},\n    \"line-height\": {\"normal\": 1},\n    \"list-style-type\": {\"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1},\n    \"margin\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"overflow\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-x\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-y\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"padding\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"page-break-after\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"page-break-before\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"position\": {\"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1},\n    \"right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"table-layout\": {\"fixed\": 1, \"auto\": 1},\n    \"text-decoration\": {\"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1},\n    \"text-align\": {\"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1},\n    \"text-transform\": {\"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1},\n    \"top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"vertical-align\": {\"top\": 1, \"bottom\": 1},\n    \"visibility\": {\"hidden\": 1, \"visible\": 1},\n    \"white-space\": {\"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1},\n    \"width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"word-spacing\": {\"normal\": 1},\n    \"filter\": {\"alpha(opacity=$0100)\": 1},\n\n    \"text-shadow\": {\"$02px 2px 2px #777\": 1},\n    \"text-overflow\": {\"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1},\n    \"-moz-border-radius\": 1,\n    \"-moz-border-radius-topright\": 1,\n    \"-moz-border-radius-bottomright\": 1,\n    \"-moz-border-radius-topleft\": 1,\n    \"-moz-border-radius-bottomleft\": 1,\n    \"-webkit-border-radius\": 1,\n    \"-webkit-border-top-right-radius\": 1,\n    \"-webkit-border-top-left-radius\": 1,\n    \"-webkit-border-bottom-right-radius\": 1,\n    \"-webkit-border-bottom-left-radius\": 1,\n    \"-moz-box-shadow\": 1,\n    \"-webkit-box-shadow\": 1,\n    \"transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-moz-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-webkit-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\n\nvar CssCompletions = function() {\n\n};\n\n(function() {\n\n    this.completionsDefined = false;\n\n    this.defineCompletions = function() {\n        if (document) {\n            var style = document.createElement('c').style;\n\n            for (var i in style) {\n                if (typeof style[i] !== 'string')\n                    continue;\n\n                var name = i.replace(/[A-Z]/g, function(x) {\n                    return '-' + x.toLowerCase();\n                });\n\n                if (!propertyMap.hasOwnProperty(name))\n                    propertyMap[name] = 1;\n            }\n        }\n\n        this.completionsDefined = true;\n    }\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        if (!this.completionsDefined) {\n            this.defineCompletions();\n        }\n\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (state==='ruleset'){\n            var line = session.getLine(pos.row).substr(0, pos.column);\n            if (/:[^;]+$/.test(line)) {\n                /([\\w\\-]+):[^:]*$/.test(line);\n\n                return this.getPropertyValueCompletions(state, session, pos, prefix);\n            } else {\n                return this.getPropertyCompletions(state, session, pos, prefix);\n            }\n        }\n\n        return [];\n    };\n\n    this.getPropertyCompletions = function(state, session, pos, prefix) {\n        var properties = Object.keys(propertyMap);\n        return properties.map(function(property){\n            return {\n                caption: property,\n                snippet: property + ': $0',\n                meta: \"property\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getPropertyValueCompletions = function(state, session, pos, prefix) {\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n\n        if (!property)\n            return [];\n        var values = [];\n        if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n            values = Object.keys(propertyMap[property]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"property value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(CssCompletions.prototype);\n\nexports.CssCompletions = CssCompletions;\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar CssBehaviour = function () {\n\n    this.inherit(CstyleBehaviour);\n\n    this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(cursor.row);\n                var rightChar = line.substring(cursor.column, cursor.column + 1);\n                if (rightChar === ':') {\n                    return {\n                       text: '',\n                       selection: [1, 1]\n                    }\n                }\n                if (!line.substring(cursor.column).match(/^\\s*;/)) {\n                    return {\n                       text: ':;',\n                       selection: [1, 1]\n                    }\n                }\n            }\n        }\n    });\n\n    this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && selected === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(range.start.row);\n                var rightChar = line.substring(range.end.column, range.end.column + 1);\n                if (rightChar === ';') {\n                    range.end.column ++;\n                    return range;\n                }\n            }\n        }\n    });\n\n    this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ';') {\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar === ';') {\n                return {\n                   text: '',\n                   selection: [1, 1]\n                }\n            }\n        }\n    });\n\n}\noop.inherits(CssBehaviour, CstyleBehaviour);\n\nexports.CssBehaviour = CssBehaviour;\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = CssHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CssBehaviour();\n    this.$completer = new CssCompletions();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.foldingRules = \"cStyle\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        var match = line.match(/^.*\\{\\s*$/);\n        if (match) {\n            indent += tab;\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/css\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nvar XmlBehaviour = function () {\n\n    this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '\"' || text == \"'\") {\n            var quote = text;\n            var selected = session.doc.getTextRange(editor.getSelectionRange());\n            if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n                return {\n                    text: quote + selected + quote,\n                    selection: false\n                };\n            }\n\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n                return {\n                    text: \"\",\n                    selection: [1, 1]\n                };\n            }\n\n            if (!token)\n                token = iterator.stepBackward();\n\n            if (!token)\n                return;\n\n            while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n                token = iterator.stepBackward();\n            }\n            var rightSpace = !rightChar || rightChar.match(/\\s/);\n            if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n                return {\n                    text: quote + quote,\n                    selection: [1, 1]\n                };\n            }\n        }\n    });\n\n    this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == selected) {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n\n    this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '>') {\n            var position = editor.getSelectionRange().start;\n            var iterator = new TokenIterator(session, position.row, position.column);\n            var token = iterator.getCurrentToken() || iterator.stepBackward();\n            if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n                return;\n            if (is(token, \"reference.attribute-value\"))\n                return;\n            if (is(token, \"attribute-value\")) {\n                var firstChar = token.value.charAt(0);\n                if (firstChar == '\"' || firstChar == \"'\") {\n                    var lastChar = token.value.charAt(token.value.length - 1);\n                    var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;\n                    if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)\n                        return;\n                }\n            }\n            while (!is(token, \"tag-name\")) {\n                token = iterator.stepBackward();\n                if (token.value == \"<\") {\n                    token = iterator.stepForward();\n                    break;\n                }\n            }\n\n            var tokenRow = iterator.getCurrentTokenRow();\n            var tokenColumn = iterator.getCurrentTokenColumn();\n            if (is(iterator.stepBackward(), \"end-tag-open\"))\n                return;\n\n            var element = token.value;\n            if (tokenRow == position.row)\n                element = element.substring(0, position.column - tokenColumn);\n\n            if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n                 return;\n\n            return {\n               text: \">\" + \"</\" + element + \">\",\n               selection: [1, 1]\n            };\n        }\n    });\n\n    this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == \"\\n\") {\n            var cursor = editor.getCursorPosition();\n            var line = session.getLine(cursor.row);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (token && token.type.indexOf(\"tag-close\") !== -1) {\n                if (token.value == \"/>\")\n                    return;\n                while (token && token.type.indexOf(\"tag-name\") === -1) {\n                    token = iterator.stepBackward();\n                }\n\n                if (!token) {\n                    return;\n                }\n\n                var tag = token.value;\n                var row = iterator.getCurrentTokenRow();\n                token = iterator.stepBackward();\n                if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n                    return;\n                }\n\n                if (this.voidElements && !this.voidElements[tag]) {\n                    var nextToken = session.getTokenAt(cursor.row, cursor.column+1);\n                    var line = session.getLine(row);\n                    var nextIndent = this.$getIndent(line);\n                    var indent = nextIndent + session.getTabString();\n\n                    if (nextToken && nextToken.value === \"</\") {\n                        return {\n                            text: \"\\n\" + indent + \"\\n\" + nextIndent,\n                            selection: [1, indent.length, 1, indent.length]\n                        };\n                    } else {\n                        return {\n                            text: \"\\n\" + indent\n                        };\n                    }\n                }\n            }\n        }\n    });\n\n};\n\noop.inherits(XmlBehaviour, Behaviour);\n\nexports.XmlBehaviour = XmlBehaviour;\n});\n\nace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(defaultMode, subModes) {\n    this.defaultMode = defaultMode;\n    this.subModes = subModes;\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n\n    this.$getMode = function(state) {\n        if (typeof state != \"string\") \n            state = state[0];\n        for (var key in this.subModes) {\n            if (state.indexOf(key) === 0)\n                return this.subModes[key];\n        }\n        return null;\n    };\n    \n    this.$tryMode = function(state, session, foldStyle, row) {\n        var mode = this.$getMode(state);\n        return (mode ? mode.getFoldWidget(session, foldStyle, row) : \"\");\n    };\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        return (\n            this.$tryMode(session.getState(row-1), session, foldStyle, row) ||\n            this.$tryMode(session.getState(row), session, foldStyle, row) ||\n            this.defaultMode.getFoldWidget(session, foldStyle, row)\n        );\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var mode = this.$getMode(session.getState(row-1));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.$getMode(session.getState(row));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.defaultMode;\n        \n        return mode.getFoldWidgetRange(session, foldStyle, row);\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar lang = require(\"../../lib/lang\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalEndTags) {\n    BaseFoldMode.call(this);\n    this.voidElements = voidElements || {};\n    this.optionalEndTags = oop.mixin({}, this.voidElements);\n    if (optionalEndTags)\n        oop.mixin(this.optionalEndTags, optionalEndTags);\n    \n};\noop.inherits(FoldMode, BaseFoldMode);\n\nvar Tag = function() {\n    this.tagName = \"\";\n    this.closing = false;\n    this.selfClosing = false;\n    this.start = {row: 0, column: 0};\n    this.end = {row: 0, column: 0};\n};\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\n(function() {\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var tag = this._getFirstTagInLine(session, row);\n\n        if (!tag)\n            return \"\";\n\n        if (tag.closing || (!tag.tagName && tag.selfClosing))\n            return foldStyle == \"markbeginend\" ? \"end\" : \"\";\n\n        if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n            return \"\";\n\n        if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n            return \"\";\n\n        return \"start\";\n    };\n    this._getFirstTagInLine = function(session, row) {\n        var tokens = session.getTokens(row);\n        var tag = new Tag();\n\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            if (is(token, \"tag-open\")) {\n                tag.end.column = tag.start.column + token.value.length;\n                tag.closing = is(token, \"end-tag-open\");\n                token = tokens[++i];\n                if (!token)\n                    return null;\n                tag.tagName = token.value;\n                tag.end.column += token.value.length;\n                for (i++; i < tokens.length; i++) {\n                    token = tokens[i];\n                    tag.end.column += token.value.length;\n                    if (is(token, \"tag-close\")) {\n                        tag.selfClosing = token.value == '/>';\n                        break;\n                    }\n                }\n                return tag;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == '/>';\n                return tag;\n            }\n            tag.start.column += token.value.length;\n        }\n\n        return null;\n    };\n\n    this._findEndTagInLine = function(session, row, tagName, startColumn) {\n        var tokens = session.getTokens(row);\n        var column = 0;\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            column += token.value.length;\n            if (column < startColumn)\n                continue;\n            if (is(token, \"end-tag-open\")) {\n                token = tokens[i + 1];\n                if (token && token.value == tagName)\n                    return true;\n            }\n        }\n        return false;\n    };\n    this._readTagForward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n                iterator.stepForward();\n                return tag;\n            }\n        } while(token = iterator.stepForward());\n\n        return null;\n    };\n    \n    this._readTagBackward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n                iterator.stepBackward();\n                return tag;\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n            }\n        } while(token = iterator.stepBackward());\n\n        return null;\n    };\n    \n    this._pop = function(stack, tag) {\n        while (stack.length) {\n            \n            var top = stack[stack.length-1];\n            if (!tag || top.tagName == tag.tagName) {\n                return stack.pop();\n            }\n            else if (this.optionalEndTags.hasOwnProperty(top.tagName)) {\n                stack.pop();\n                continue;\n            } else {\n                return null;\n            }\n        }\n    };\n    \n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var firstTag = this._getFirstTagInLine(session, row);\n        \n        if (!firstTag)\n            return null;\n        \n        var isBackward = firstTag.closing || firstTag.selfClosing;\n        var stack = [];\n        var tag;\n        \n        if (!isBackward) {\n            var iterator = new TokenIterator(session, row, firstTag.start.column);\n            var start = {\n                row: row,\n                column: firstTag.start.column + firstTag.tagName.length + 2\n            };\n            if (firstTag.start.row == firstTag.end.row)\n                start.column = firstTag.end.column;\n            while (tag = this._readTagForward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0)\n                        return Range.fromPoints(start, tag.start);\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        else {\n            var iterator = new TokenIterator(session, row, firstTag.end.column);\n            var end = {\n                row: row,\n                column: firstTag.start.column\n            };\n            \n            while (tag = this._readTagBackward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (!tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0) {\n                        tag.start.column += tag.tagName.length + 2;\n                        if (tag.start.row == tag.end.row && tag.start.column < tag.end.column)\n                            tag.start.column = tag.end.column;\n                        return Range.fromPoints(tag.start, end);\n                    }\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        \n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar MixedFoldMode = require(\"./mixed\").FoldMode;\nvar XmlFoldMode = require(\"./xml\").FoldMode;\nvar CStyleFoldMode = require(\"./cstyle\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalTags) {\n    MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), {\n        \"js-\": new CStyleFoldMode(),\n        \"css-\": new CStyleFoldMode()\n    });\n};\n\noop.inherits(FoldMode, MixedFoldMode);\n\n});\n\nace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\n\nvar commonAttributes = [\n    \"accesskey\",\n    \"class\",\n    \"contenteditable\",\n    \"contextmenu\",\n    \"dir\",\n    \"draggable\",\n    \"dropzone\",\n    \"hidden\",\n    \"id\",\n    \"inert\",\n    \"itemid\",\n    \"itemprop\",\n    \"itemref\",\n    \"itemscope\",\n    \"itemtype\",\n    \"lang\",\n    \"spellcheck\",\n    \"style\",\n    \"tabindex\",\n    \"title\",\n    \"translate\"\n];\n\nvar eventAttributes = [\n    \"onabort\",\n    \"onblur\",\n    \"oncancel\",\n    \"oncanplay\",\n    \"oncanplaythrough\",\n    \"onchange\",\n    \"onclick\",\n    \"onclose\",\n    \"oncontextmenu\",\n    \"oncuechange\",\n    \"ondblclick\",\n    \"ondrag\",\n    \"ondragend\",\n    \"ondragenter\",\n    \"ondragleave\",\n    \"ondragover\",\n    \"ondragstart\",\n    \"ondrop\",\n    \"ondurationchange\",\n    \"onemptied\",\n    \"onended\",\n    \"onerror\",\n    \"onfocus\",\n    \"oninput\",\n    \"oninvalid\",\n    \"onkeydown\",\n    \"onkeypress\",\n    \"onkeyup\",\n    \"onload\",\n    \"onloadeddata\",\n    \"onloadedmetadata\",\n    \"onloadstart\",\n    \"onmousedown\",\n    \"onmousemove\",\n    \"onmouseout\",\n    \"onmouseover\",\n    \"onmouseup\",\n    \"onmousewheel\",\n    \"onpause\",\n    \"onplay\",\n    \"onplaying\",\n    \"onprogress\",\n    \"onratechange\",\n    \"onreset\",\n    \"onscroll\",\n    \"onseeked\",\n    \"onseeking\",\n    \"onselect\",\n    \"onshow\",\n    \"onstalled\",\n    \"onsubmit\",\n    \"onsuspend\",\n    \"ontimeupdate\",\n    \"onvolumechange\",\n    \"onwaiting\"\n];\n\nvar globalAttributes = commonAttributes.concat(eventAttributes);\n\nvar attributeMap = {\n    \"html\": {\"manifest\": 1},\n    \"head\": {},\n    \"title\": {},\n    \"base\": {\"href\": 1, \"target\": 1},\n    \"link\": {\"href\": 1, \"hreflang\": 1, \"rel\": {\"stylesheet\": 1, \"icon\": 1}, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"type\": {\"text/css\": 1, \"image/png\": 1, \"image/jpeg\": 1, \"image/gif\": 1}, \"sizes\": 1},\n    \"meta\": {\"http-equiv\": {\"content-type\": 1}, \"name\": {\"description\": 1, \"keywords\": 1}, \"content\": {\"text/html; charset=UTF-8\": 1}, \"charset\": 1},\n    \"style\": {\"type\": 1, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"scoped\": 1},\n    \"script\": {\"charset\": 1, \"type\": {\"text/javascript\": 1}, \"src\": 1, \"defer\": 1, \"async\": 1},\n    \"noscript\": {\"href\": 1},\n    \"body\": {\"onafterprint\": 1, \"onbeforeprint\": 1, \"onbeforeunload\": 1, \"onhashchange\": 1, \"onmessage\": 1, \"onoffline\": 1, \"onpopstate\": 1, \"onredo\": 1, \"onresize\": 1, \"onstorage\": 1, \"onundo\": 1, \"onunload\": 1},\n    \"section\": {},\n    \"nav\": {},\n    \"article\": {\"pubdate\": 1},\n    \"aside\": {},\n    \"h1\": {},\n    \"h2\": {},\n    \"h3\": {},\n    \"h4\": {},\n    \"h5\": {},\n    \"h6\": {},\n    \"header\": {},\n    \"footer\": {},\n    \"address\": {},\n    \"main\": {},\n    \"p\": {},\n    \"hr\": {},\n    \"pre\": {},\n    \"blockquote\": {\"cite\": 1},\n    \"ol\": {\"start\": 1, \"reversed\": 1},\n    \"ul\": {},\n    \"li\": {\"value\": 1},\n    \"dl\": {},\n    \"dt\": {},\n    \"dd\": {},\n    \"figure\": {},\n    \"figcaption\": {},\n    \"div\": {},\n    \"a\": {\"href\": 1, \"target\": {\"_blank\": 1, \"top\": 1}, \"ping\": 1, \"rel\": {\"nofollow\": 1, \"alternate\": 1, \"author\": 1, \"bookmark\": 1, \"help\": 1, \"license\": 1, \"next\": 1, \"noreferrer\": 1, \"prefetch\": 1, \"prev\": 1, \"search\": 1, \"tag\": 1}, \"media\": 1, \"hreflang\": 1, \"type\": 1},\n    \"em\": {},\n    \"strong\": {},\n    \"small\": {},\n    \"s\": {},\n    \"cite\": {},\n    \"q\": {\"cite\": 1},\n    \"dfn\": {},\n    \"abbr\": {},\n    \"data\": {},\n    \"time\": {\"datetime\": 1},\n    \"code\": {},\n    \"var\": {},\n    \"samp\": {},\n    \"kbd\": {},\n    \"sub\": {},\n    \"sup\": {},\n    \"i\": {},\n    \"b\": {},\n    \"u\": {},\n    \"mark\": {},\n    \"ruby\": {},\n    \"rt\": {},\n    \"rp\": {},\n    \"bdi\": {},\n    \"bdo\": {},\n    \"span\": {},\n    \"br\": {},\n    \"wbr\": {},\n    \"ins\": {\"cite\": 1, \"datetime\": 1},\n    \"del\": {\"cite\": 1, \"datetime\": 1},\n    \"img\": {\"alt\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"usemap\": 1, \"ismap\": 1},\n    \"iframe\": {\"name\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"sandbox\": {\"allow-same-origin\": 1, \"allow-top-navigation\": 1, \"allow-forms\": 1, \"allow-scripts\": 1}, \"seamless\": {\"seamless\": 1}},\n    \"embed\": {\"src\": 1, \"height\": 1, \"width\": 1, \"type\": 1},\n    \"object\": {\"param\": 1, \"data\": 1, \"type\": 1, \"height\" : 1, \"width\": 1, \"usemap\": 1, \"name\": 1, \"form\": 1, \"classid\": 1},\n    \"param\": {\"name\": 1, \"value\": 1},\n    \"video\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"width\": 1, \"height\": 1, \"poster\": 1, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1}},\n    \"audio\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1 }},\n    \"source\": {\"src\": 1, \"type\": 1, \"media\": 1},\n    \"track\": {\"kind\": 1, \"src\": 1, \"srclang\": 1, \"label\": 1, \"default\": 1},\n    \"canvas\": {\"width\": 1, \"height\": 1},\n    \"map\": {\"name\": 1},\n    \"area\": {\"shape\": 1, \"coords\": 1, \"href\": 1, \"hreflang\": 1, \"alt\": 1, \"target\": 1, \"media\": 1, \"rel\": 1, \"ping\": 1, \"type\": 1},\n    \"svg\": {},\n    \"math\": {},\n    \"table\": {\"summary\": 1},\n    \"caption\": {},\n    \"colgroup\": {\"span\": 1},\n    \"col\": {\"span\": 1},\n    \"tbody\": {},\n    \"thead\": {},\n    \"tfoot\": {},\n    \"tr\": {},\n    \"td\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1},\n    \"th\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1, \"scope\": 1},\n    \"form\": {\"accept-charset\": 1, \"action\": 1, \"autocomplete\": 1, \"enctype\": {\"multipart/form-data\": 1, \"application/x-www-form-urlencoded\": 1}, \"method\": {\"get\": 1, \"post\": 1}, \"name\": 1, \"novalidate\": 1, \"target\": {\"_blank\": 1, \"top\": 1}},\n    \"fieldset\": {\"disabled\": 1, \"form\": 1, \"name\": 1},\n    \"legend\": {},\n    \"label\": {\"form\": 1, \"for\": 1},\n    \"input\": {\n        \"type\": {\"text\": 1, \"password\": 1, \"hidden\": 1, \"checkbox\": 1, \"submit\": 1, \"radio\": 1, \"file\": 1, \"button\": 1, \"reset\": 1, \"image\": 31, \"color\": 1, \"date\": 1, \"datetime\": 1, \"datetime-local\": 1, \"email\": 1, \"month\": 1, \"number\": 1, \"range\": 1, \"search\": 1, \"tel\": 1, \"time\": 1, \"url\": 1, \"week\": 1},\n        \"accept\": 1, \"alt\": 1, \"autocomplete\": {\"on\": 1, \"off\": 1}, \"autofocus\": {\"autofocus\": 1}, \"checked\": {\"checked\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": {\"application/x-www-form-urlencoded\": 1, \"multipart/form-data\": 1, \"text/plain\": 1}, \"formmethod\": {\"get\": 1, \"post\": 1}, \"formnovalidate\": {\"formnovalidate\": 1}, \"formtarget\": {\"_blank\": 1, \"_self\": 1, \"_parent\": 1, \"_top\": 1}, \"height\": 1, \"list\": 1, \"max\": 1, \"maxlength\": 1, \"min\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"pattern\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"size\": 1, \"src\": 1, \"step\": 1, \"width\": 1, \"files\": 1, \"value\": 1},\n    \"button\": {\"autofocus\": 1, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": 1, \"formmethod\": 1, \"formnovalidate\": 1, \"formtarget\": 1, \"name\": 1, \"value\": 1, \"type\": {\"button\": 1, \"submit\": 1}},\n    \"select\": {\"autofocus\": 1, \"disabled\": 1, \"form\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"size\": 1, \"readonly\":{\"readonly\": 1}},\n    \"datalist\": {},\n    \"optgroup\": {\"disabled\": 1, \"label\": 1},\n    \"option\": {\"disabled\": 1, \"selected\": 1, \"label\": 1, \"value\": 1},\n    \"textarea\": {\"autofocus\": {\"autofocus\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"maxlength\": 1, \"name\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"rows\": 1, \"cols\": 1, \"wrap\": {\"on\": 1, \"off\": 1, \"hard\": 1, \"soft\": 1}},\n    \"keygen\": {\"autofocus\": 1, \"challenge\": {\"challenge\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"keytype\": {\"rsa\": 1, \"dsa\": 1, \"ec\": 1}, \"name\": 1},\n    \"output\": {\"for\": 1, \"form\": 1, \"name\": 1},\n    \"progress\": {\"value\": 1, \"max\": 1},\n    \"meter\": {\"value\": 1, \"min\": 1, \"max\": 1, \"low\": 1, \"high\": 1, \"optimum\": 1},\n    \"details\": {\"open\": 1},\n    \"summary\": {},\n    \"command\": {\"type\": 1, \"label\": 1, \"icon\": 1, \"disabled\": 1, \"checked\": 1, \"radiogroup\": 1, \"command\": 1},\n    \"menu\": {\"type\": 1, \"label\": 1},\n    \"dialog\": {\"open\": 1}\n};\n\nvar elements = Object.keys(attributeMap);\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nfunction findTagName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"tag-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nfunction findAttributeName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"attribute-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nvar HtmlCompletions = function() {\n\n};\n\n(function() {\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (is(token, \"tag-name\") || is(token, \"tag-open\") || is(token, \"end-tag-open\"))\n            return this.getTagCompletions(state, session, pos, prefix);\n        if (is(token, \"tag-whitespace\") || is(token, \"attribute-name\"))\n            return this.getAttributeCompletions(state, session, pos, prefix);\n        if (is(token, \"attribute-value\"))\n            return this.getAttributeValueCompletions(state, session, pos, prefix);\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        if (/&[a-z]*$/i.test(line))\n            return this.getHTMLEntityCompletions(state, session, pos, prefix);\n\n        return [];\n    };\n\n    this.getTagCompletions = function(state, session, pos, prefix) {\n        return elements.map(function(element){\n            return {\n                value: element,\n                meta: \"tag\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        if (!tagName)\n            return [];\n        var attributes = globalAttributes;\n        if (tagName in attributeMap) {\n            attributes = attributes.concat(Object.keys(attributeMap[tagName]));\n        }\n        return attributes.map(function(attribute){\n            return {\n                caption: attribute,\n                snippet: attribute + '=\"$0\"',\n                meta: \"attribute\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeValueCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        var attributeName = findAttributeName(session, pos);\n        \n        if (!tagName)\n            return [];\n        var values = [];\n        if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === \"object\") {\n            values = Object.keys(attributeMap[tagName][attributeName]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"attribute value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getHTMLEntityCompletions = function(state, session, pos, prefix) {\n        var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;'];\n\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"html entity\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(HtmlCompletions.prototype);\n\nexports.HtmlCompletions = HtmlCompletions;\n});\n\nace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar CssMode = require(\"./css\").Mode;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar HtmlFoldMode = require(\"./folding/html\").FoldMode;\nvar HtmlCompletions = require(\"./html_completions\").HtmlCompletions;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar voidElements = [\"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"menuitem\", \"param\", \"source\", \"track\", \"wbr\"];\nvar optionalEndTags = [\"li\", \"dt\", \"dd\", \"p\", \"rt\", \"rp\", \"optgroup\", \"option\", \"colgroup\", \"td\", \"th\"];\n\nvar Mode = function(options) {\n    this.fragmentContext = options && options.fragmentContext;\n    this.HighlightRules = HtmlHighlightRules;\n    this.$behaviour = new XmlBehaviour();\n    this.$completer = new HtmlCompletions();\n    \n    this.createModeDelegates({\n        \"js-\": JavaScriptMode,\n        \"css-\": CssMode\n    });\n    \n    this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags));\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.blockComment = {start: \"<!--\", end: \"-->\"};\n\n    this.voidElements = lang.arrayToMap(voidElements);\n\n    this.getNextLineIndent = function(state, line, tab) {\n        return this.$getIndent(line);\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return false;\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        if (this.constructor != Mode)\n            return;\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/html_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        if (this.fragmentContext)\n            worker.call(\"setOptions\", [{context: this.fragmentContext}]);\n\n        worker.on(\"error\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/html\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var range = this.indentationBlock(session, row);\n        if (range)\n            return range;\n\n        var re = /\\S/;\n        var line = session.getLine(row);\n        var startLevel = line.search(re);\n        if (startLevel == -1 || line[startLevel] != \"#\")\n            return;\n\n        var startColumn = line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var level = line.search(re);\n\n            if (level == -1)\n                continue;\n\n            if (line[level] != \"#\")\n                break;\n\n            endRow = row;\n        }\n\n        if (endRow > startRow) {\n            var endColumn = session.getLine(endRow).length;\n            return new Range(startRow, startColumn, endRow, endColumn);\n        }\n    };\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var indent = line.search(/\\S/);\n        var next = session.getLine(row + 1);\n        var prev = session.getLine(row - 1);\n        var prevIndent = prev.search(/\\S/);\n        var nextIndent = next.search(/\\S/);\n\n        if (indent == -1) {\n            session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n            return \"\";\n        }\n        if (prevIndent == -1) {\n            if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n                session.foldWidgets[row - 1] = \"\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"start\";\n            }\n        } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n            if (session.getLine(row - 2).search(/\\S/) == -1) {\n                session.foldWidgets[row - 1] = \"start\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"\";\n            }\n        }\n\n        if (prevIndent!= -1 && prevIndent < indent)\n            session.foldWidgets[row - 1] = \"start\";\n        else\n            session.foldWidgets[row - 1] = \"\";\n\n        if (indent < nextIndent)\n            return \"start\";\n        else\n            return \"\";\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/ruby\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ruby_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/coffee\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar RubyHighlightRules = require(\"./ruby_highlight_rules\").RubyHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar Range = require(\"../range\").Range;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar FoldMode = require(\"./folding/coffee\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = RubyHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new FoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n\n    this.lineCommentStart = \"#\";\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n            var startingClassOrMethod = line.match(/^\\s*(class|def|module)\\s.*$/);\n            var startingDoBlock = line.match(/.*do(\\s*|\\s+\\|.*\\|\\s*)$/);\n            var startingConditional = line.match(/^\\s*(if|else|when)\\s*/)\n            if (match || startingClassOrMethod || startingDoBlock || startingConditional) {\n                indent += tab;\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return /^\\s+(end|else)$/.test(line + input) || this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, session, row) {\n        var line = session.getLine(row);\n        if (/}/.test(line))\n            return this.$outdent.autoOutdent(session, row);\n        var indent = this.$getIndent(line);\n        var prevLine = session.getLine(row - 1);\n        var prevIndent = this.$getIndent(prevLine);\n        var tab = session.getTabString();\n        if (prevIndent.length <= indent.length) {\n            if (indent.slice(-tab.length) == tab)\n                session.remove(new Range(row, indent.length-tab.length, row, indent.length));\n        }\n    };\n\n    this.$id = \"ace/mode/ruby\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/html_ruby\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_ruby_highlight_rules\",\"ace/mode/html\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/ruby\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar HtmlRubyHighlightRules = require(\"./html_ruby_highlight_rules\").HtmlRubyHighlightRules;\nvar HtmlMode = require(\"./html\").Mode;\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar CssMode = require(\"./css\").Mode;\nvar RubyMode = require(\"./ruby\").Mode;\n\nvar Mode = function() {\n    HtmlMode.call(this);   \n    this.HighlightRules = HtmlRubyHighlightRules;    \n    this.createModeDelegates({\n        \"js-\": JavaScriptMode,\n        \"css-\": CssMode,\n        \"ruby-\": RubyMode\n    });\n};\noop.inherits(Mode, HtmlMode);\n\n(function() {\n\n    this.$id = \"ace/mode/html_ruby\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-ini.js",
    "content": "ace.define(\"ace/mode/ini_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar escapeRe = \"\\\\\\\\(?:[\\\\\\\\0abtrn;#=:]|x[a-fA-F\\\\d]{4})\";\n\nvar IniHighlightRules = function() {\n    this.$rules = {\n        start: [{\n            token: 'punctuation.definition.comment.ini',\n            regex: '#.*',\n            push_: [{\n                token: 'comment.line.number-sign.ini',\n                regex: '$|^',\n                next: 'pop'\n            }, {\n                defaultToken: 'comment.line.number-sign.ini'\n            }]\n        }, {\n            token: 'punctuation.definition.comment.ini',\n            regex: ';.*',\n            push_: [{\n                token: 'comment.line.semicolon.ini',\n                regex: '$|^',\n                next: 'pop'\n            }, {\n                defaultToken: 'comment.line.semicolon.ini'\n            }]\n        }, {\n            token: ['keyword.other.definition.ini', 'text', 'punctuation.separator.key-value.ini'],\n            regex: '\\\\b([a-zA-Z0-9_.-]+)\\\\b(\\\\s*)(=)'\n        }, {\n            token: ['punctuation.definition.entity.ini', 'constant.section.group-title.ini', 'punctuation.definition.entity.ini'],\n            regex: '^(\\\\[)(.*?)(\\\\])'\n        }, {\n            token: 'punctuation.definition.string.begin.ini',\n            regex: \"'\",\n            push: [{\n                token: 'punctuation.definition.string.end.ini',\n                regex: \"'\",\n                next: 'pop'\n            }, {\n                token: \"constant.language.escape\",\n                regex: escapeRe\n            }, {\n                defaultToken: 'string.quoted.single.ini'\n            }]\n        }, {\n            token: 'punctuation.definition.string.begin.ini',\n            regex: '\"',\n            push: [{\n                token: \"constant.language.escape\",\n                regex: escapeRe\n            }, {\n                token: 'punctuation.definition.string.end.ini',\n                regex: '\"',\n                next: 'pop'\n            }, {\n                defaultToken: 'string.quoted.double.ini'\n            }]\n        }]\n    };\n\n    this.normalizeRules();\n};\n\nIniHighlightRules.metaData = {\n    fileTypes: ['ini', 'conf'],\n    keyEquivalent: '^~I',\n    name: 'Ini',\n    scopeName: 'source.ini'\n};\n\n\noop.inherits(IniHighlightRules, TextHighlightRules);\n\nexports.IniHighlightRules = IniHighlightRules;\n});\n\nace.define(\"ace/mode/folding/ini\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function() {\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.foldingStartMarker = /^\\s*\\[([^\\])]*)]\\s*(?:$|[;#])/;\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var re = this.foldingStartMarker;\n        var line = session.getLine(row);\n        \n        var m = line.match(re);\n        \n        if (!m) return;\n        \n        var startName = m[1] + \".\";\n        \n        var startColumn = line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            if (/^\\s*$/.test(line))\n                continue;\n            m = line.match(re);\n            if (m && m[1].lastIndexOf(startName, 0) !== 0)\n                break;\n\n            endRow = row;\n        }\n\n        if (endRow > startRow) {\n            var endColumn = session.getLine(endRow).length;\n            return new Range(startRow, startColumn, endRow, endColumn);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/ini\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ini_highlight_rules\",\"ace/mode/folding/ini\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar IniHighlightRules = require(\"./ini_highlight_rules\").IniHighlightRules;\nvar FoldMode = require(\"./folding/ini\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = IniHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \";\";\n    this.blockComment = null;\n    this.$id = \"ace/mode/ini\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-io.js",
    "content": "ace.define(\"ace/mode/io_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar IoHighlightRules = function() {\n\n    this.$rules = { start: \n       [ { token: [ 'text', 'meta.empty-parenthesis.io' ],\n           regex: '(\\\\()(\\\\))',\n           comment: 'we match this to overload return inside () --Allan; scoping rules for what gets the scope have changed, so we now group the ) instead of the ( -- Rob' },\n         { token: [ 'text', 'meta.comma-parenthesis.io' ],\n           regex: '(\\\\,)(\\\\))',\n           comment: 'We want to do the same for ,) -- Seckar; same as above -- Rob' },\n         { token: 'keyword.control.io',\n           regex: '\\\\b(?:if|ifTrue|ifFalse|ifTrueIfFalse|for|loop|reverseForeach|foreach|map|continue|break|while|do|return)\\\\b' },\n         { token: 'punctuation.definition.comment.io',\n           regex: '/\\\\*',\n           push: \n            [ { token: 'punctuation.definition.comment.io',\n                regex: '\\\\*/',\n                next: 'pop' },\n              { defaultToken: 'comment.block.io' } ] },\n         { token: 'punctuation.definition.comment.io',\n           regex: '//',\n           push: \n            [ { token: 'comment.line.double-slash.io',\n                regex: '$',\n                next: 'pop' },\n              { defaultToken: 'comment.line.double-slash.io' } ] },\n         { token: 'punctuation.definition.comment.io',\n           regex: '#',\n           push: \n            [ { token: 'comment.line.number-sign.io', regex: '$', next: 'pop' },\n              { defaultToken: 'comment.line.number-sign.io' } ] },\n         { token: 'variable.language.io',\n           regex: '\\\\b(?:self|sender|target|proto|protos|parent)\\\\b',\n           comment: 'I wonder if some of this isn\\'t variable.other.language? --Allan; scoping this as variable.language to match Objective-C\\'s handling of \\'self\\', which is inconsistent with C++\\'s handling of \\'this\\' but perhaps intentionally so -- Rob' },\n         { token: 'keyword.operator.io',\n           regex: '<=|>=|=|:=|\\\\*|\\\\||\\\\|\\\\||\\\\+|-|/|&|&&|>|<|\\\\?|@|@@|\\\\b(?:and|or)\\\\b' },\n         { token: 'constant.other.io', regex: '\\\\bGL[\\\\w_]+\\\\b' },\n         { token: 'support.class.io', regex: '\\\\b[A-Z](?:\\\\w+)?\\\\b' },\n         { token: 'support.function.io',\n           regex: '\\\\b(?:clone|call|init|method|list|vector|block|\\\\w+(?=\\\\s*\\\\())\\\\b' },\n         { token: 'support.function.open-gl.io',\n           regex: '\\\\bgl(?:u|ut)?[A-Z]\\\\w+\\\\b' },\n         { token: 'punctuation.definition.string.begin.io',\n           regex: '\"\"\"',\n           push: \n            [ { token: 'punctuation.definition.string.end.io',\n                regex: '\"\"\"',\n                next: 'pop' },\n              { token: 'constant.character.escape.io', regex: '\\\\\\\\.' },\n              { defaultToken: 'string.quoted.triple.io' } ] },\n         { token: 'punctuation.definition.string.begin.io',\n           regex: '\"',\n           push: \n            [ { token: 'punctuation.definition.string.end.io',\n                regex: '\"',\n                next: 'pop' },\n              { token: 'constant.character.escape.io', regex: '\\\\\\\\.' },\n              { defaultToken: 'string.quoted.double.io' } ] },\n         { token: 'constant.numeric.io',\n           regex: '\\\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\\\.?[0-9]*|\\\\.[0-9]+)(?:(?:e|E)(?:\\\\+|-)?[0-9]+)?)(?:L|l|UL|ul|u|U|F|f)?\\\\b' },\n         { token: 'variable.other.global.io', regex: 'Lobby\\\\b' },\n         { token: 'constant.language.io',\n           regex: '\\\\b(?:TRUE|true|FALSE|false|NULL|null|Null|Nil|nil|YES|NO)\\\\b' } ] }\n    \n    this.normalizeRules();\n};\n\nIoHighlightRules.metaData = { fileTypes: [ 'io' ],\n      keyEquivalent: '^~I',\n      name: 'Io',\n      scopeName: 'source.io' }\n\n\noop.inherits(IoHighlightRules, TextHighlightRules);\n\nexports.IoHighlightRules = IoHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/io\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/io_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar IoHighlightRules = require(\"./io_highlight_rules\").IoHighlightRules;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = IoHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n    this.$id = \"ace/mode/io\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-jack.js",
    "content": "ace.define(\"ace/mode/jack_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar JackHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"string\",\n                regex : '\"',\n                next  : \"string2\"\n            }, {\n                token : \"string\",\n                regex : \"'\",\n                next  : \"string1\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex: \"-?0[xX][0-9a-fA-F]+\\\\b\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : \"(?:0|[-+]?[1-9][0-9]*)\\\\b\"\n            }, {\n                token : \"constant.binary\",\n                regex : \"<[0-9A-Fa-f][0-9A-Fa-f](\\\\s+[0-9A-Fa-f][0-9A-Fa-f])*>\"\n            }, {\n                token : \"constant.language.boolean\",\n                regex : \"(?:true|false)\\\\b\"\n            }, {\n                token : \"constant.language.null\",\n                regex : \"null\\\\b\"\n            }, {\n                token : \"storage.type\",\n                regex: \"(?:Integer|Boolean|Null|String|Buffer|Tuple|List|Object|Function|Coroutine|Form)\\\\b\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:return|abort|vars|for|delete|in|is|escape|exec|split|and|if|elif|else|while)\\\\b\"\n            }, {\n                token : \"language.builtin\",\n                regex : \"(?:lines|source|parse|read-stream|interval|substr|parseint|write|print|range|rand|inspect|bind|i-values|i-pairs|i-map|i-filter|i-chunk|i-all\\\\?|i-any\\\\?|i-collect|i-zip|i-merge|i-each)\\\\b\"\n            }, {\n                token : \"comment\",\n                regex : \"--.*$\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"storage.form\",\n                regex : \"@[a-z]+\"\n            }, {\n                token : \"constant.other.symbol\",\n                regex : ':+[a-zA-Z_]([-]?[a-zA-Z0-9_])*[?!]?'\n            }, {\n                token : \"variable\",\n                regex : '[a-zA-Z_]([-]?[a-zA-Z0-9_])*[?!]?'\n            }, {\n                token : \"keyword.operator\",\n                regex : \"\\\\|\\\\||\\\\^\\\\^|&&|!=|==|<=|<|>=|>|\\\\+|-|\\\\*|\\\\/|\\\\^|\\\\%|\\\\#|\\\\!\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"string1\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|['\"\\\\\\/bfnrt])/\n            }, {\n                token : \"string\",\n                regex : \"[^'\\\\\\\\]+\"\n            }, {\n                token : \"string\",\n                regex : \"'\",\n                next  : \"start\"\n            }, {\n                token : \"string\",\n                regex : \"\",\n                next  : \"start\"\n            }\n        ],\n        \"string2\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|['\"\\\\\\/bfnrt])/\n            }, {\n                token : \"string\",\n                regex : '[^\"\\\\\\\\]+'\n            }, {\n                token : \"string\",\n                regex : '\"',\n                next  : \"start\"\n            }, {\n                token : \"string\",\n                regex : \"\",\n                next  : \"start\"\n            }\n        ]\n    };\n    \n};\n\noop.inherits(JackHighlightRules, TextHighlightRules);\n\nexports.JackHighlightRules = JackHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/jack\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jack_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar HighlightRules = require(\"./jack_highlight_rules\").JackHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = HighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"--\";\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n\n    this.$id = \"ace/mode/jack\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-jade.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n    a           : 'anchor',\n    button \t    : 'form',\n    form        : 'form',\n    img         : 'image',\n    input       : 'form',\n    label       : 'form',\n    option      : 'form',\n    script      : 'script',\n    select      : 'form',\n    textarea    : 'form',\n    style       : 'style',\n    table       : 'table',\n    tbody       : 'table',\n    td          : 'table',\n    tfoot       : 'table',\n    th          : 'table',\n    tr          : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.addRules({\n        attributes: [{\n            include : \"tag_whitespace\"\n        }, {\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"[-_a-zA-Z0-9:.]+\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\",\n            push : [{\n                include: \"tag_whitespace\"\n            }, {\n                token : \"string.unquoted.attribute-value.html\",\n                regex : \"[^<>='\\\"`\\\\s]+\",\n                next : \"pop\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"pop\"\n            }]\n        }, {\n            include : \"attribute_value\"\n        }],\n        tag: [{\n            token : function(start, tag) {\n                var group = tagMap[tag];\n                return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                    \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n            },\n            regex : \"(</?)([-_a-zA-Z0-9:.]+)\",\n            next: \"tag_stuff\"\n        }],\n        tag_stuff: [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n        ]\n    });\n\n    this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"js-\", \"script\");\n\n    if (this.constructor === HtmlHighlightRules)\n        this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/markdown_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\",\"ace/mode/html_highlight_rules\",\"ace/mode/css_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\n\nvar escaped = function(ch) {\n    return \"(?:[^\" + lang.escapeRegExp(ch) + \"\\\\\\\\]|\\\\\\\\.)*\";\n}\n\nfunction github_embed(tag, prefix) {\n    return { // Github style block\n        token : \"support.function\",\n        regex : \"^\\\\s*```\" + tag + \"\\\\s*$\",\n        push  : prefix + \"start\"\n    };\n}\n\nvar MarkdownHighlightRules = function() {\n    HtmlHighlightRules.call(this);\n\n    this.$rules[\"start\"].unshift({\n        token : \"empty_line\",\n        regex : '^$',\n        next: \"allowBlock\"\n    }, { // h1\n        token: \"markup.heading.1\",\n        regex: \"^=+(?=\\\\s*$)\"\n    }, { // h2\n        token: \"markup.heading.2\",\n        regex: \"^\\\\-+(?=\\\\s*$)\"\n    }, {\n        token : function(value) {\n            return \"markup.heading.\" + value.length;\n        },\n        regex : /^#{1,6}(?=\\s*[^ #]|\\s+#.)/,\n        next : \"header\"\n    },\n       github_embed(\"(?:javascript|js)\", \"jscode-\"),\n       github_embed(\"xml\", \"xmlcode-\"),\n       github_embed(\"html\", \"htmlcode-\"),\n       github_embed(\"css\", \"csscode-\"),\n    { // Github style block\n        token : \"support.function\",\n        regex : \"^\\\\s*```\\\\s*\\\\S*(?:{.*?\\\\})?\\\\s*$\",\n        next  : \"githubblock\"\n    }, { // block quote\n        token : \"string.blockquote\",\n        regex : \"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",\n        next  : \"blockquote\"\n    }, { // HR * - _\n        token : \"constant\",\n        regex : \"^ {0,2}(?:(?: ?\\\\* ?){3,}|(?: ?\\\\- ?){3,}|(?: ?\\\\_ ?){3,})\\\\s*$\",\n        next: \"allowBlock\"\n    }, { // list\n        token : \"markup.list\",\n        regex : \"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",\n        next  : \"listblock-start\"\n    }, {\n        include : \"basic\"\n    });\n\n    this.addRules({\n        \"basic\" : [{\n            token : \"constant.language.escape\",\n            regex : /\\\\[\\\\`*_{}\\[\\]()#+\\-.!]/\n        }, { // code span `\n            token : \"support.function\",\n            regex : \"(`+)(.*?[^`])(\\\\1)\"\n        }, { // reference\n            token : [\"text\", \"constant\", \"text\", \"url\", \"string\", \"text\"],\n            regex : \"^([ ]{0,3}\\\\[)([^\\\\]]+)(\\\\]:\\\\s*)([^ ]+)(\\\\s*(?:[\\\"][^\\\"]+[\\\"])?(\\\\s*))$\"\n        }, { // link by reference\n            token : [\"text\", \"string\", \"text\", \"constant\", \"text\"],\n            regex : \"(\\\\[)(\" + escaped(\"]\") + \")(\\\\]\\\\s*\\\\[)(\"+ escaped(\"]\") + \")(\\\\])\"\n        }, { // link by url\n            token : [\"text\", \"string\", \"text\", \"markup.underline\", \"string\", \"text\"],\n            regex : \"(\\\\[)(\" +                                        // [\n                    escaped(\"]\") +                                    // link text\n                    \")(\\\\]\\\\()\"+                                      // ](\n                    '((?:[^\\\\)\\\\s\\\\\\\\]|\\\\\\\\.|\\\\s(?=[^\"]))*)' +        // href\n                    '(\\\\s*\"' +  escaped('\"') + '\"\\\\s*)?' +            // \"title\"\n                    \"(\\\\))\"                                           // )\n        }, { // strong ** __\n            token : \"string.strong\",\n            regex : \"([*]{2}|[_]{2}(?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"\n        }, { // emphasis * _\n            token : \"string.emphasis\",\n            regex : \"([*]|[_](?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"\n        }, { //\n            token : [\"text\", \"url\", \"text\"],\n            regex : \"(<)(\"+\n                      \"(?:https?|ftp|dict):[^'\\\">\\\\s]+\"+\n                      \"|\"+\n                      \"(?:mailto:)?[-.\\\\w]+\\\\@[-a-z0-9]+(?:\\\\.[-a-z0-9]+)*\\\\.[a-z]+\"+\n                    \")(>)\"\n        }],\n        \"allowBlock\": [\n            {token : \"support.function\", regex : \"^ {4}.+\", next : \"allowBlock\"},\n            {token : \"empty_line\", regex : '^$', next: \"allowBlock\"},\n            {token : \"empty\", regex : \"\", next : \"start\"}\n        ],\n\n        \"header\" : [{\n            regex: \"$\",\n            next : \"start\"\n        }, {\n            include: \"basic\"\n        }, {\n            defaultToken : \"heading\"\n        } ],\n\n        \"listblock-start\" : [{\n            token : \"support.variable\",\n            regex : /(?:\\[[ x]\\])?/,\n            next  : \"listblock\"\n        }],\n\n        \"listblock\" : [ { // Lists only escape on completely blank lines.\n            token : \"empty_line\",\n            regex : \"^$\",\n            next  : \"start\"\n        }, { // list\n            token : \"markup.list\",\n            regex : \"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",\n            next  : \"listblock-start\"\n        }, {\n            include : \"basic\", noEscape: true\n        }, { // Github style block\n            token : \"support.function\",\n            regex : \"^\\\\s*```\\\\s*[a-zA-Z]*(?:{.*?\\\\})?\\\\s*$\",\n            next  : \"githubblock\"\n        }, {\n            defaultToken : \"list\" //do not use markup.list to allow stling leading `*` differntly\n        } ],\n\n        \"blockquote\" : [ { // Blockquotes only escape on blank lines.\n            token : \"empty_line\",\n            regex : \"^\\\\s*$\",\n            next  : \"start\"\n        }, { // block quote\n            token : \"string.blockquote\",\n            regex : \"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",\n            next  : \"blockquote\"\n        }, {\n            include : \"basic\", noEscape: true\n        }, {\n            defaultToken : \"string.blockquote\"\n        } ],\n\n        \"githubblock\" : [ {\n            token : \"support.function\",\n            regex : \"^\\\\s*```\",\n            next  : \"start\"\n        }, {\n            token : \"support.function\",\n            regex : \".+\"\n        } ]\n    });\n\n    this.embedRules(JavaScriptHighlightRules, \"jscode-\", [{\n       token : \"support.function\",\n       regex : \"^\\\\s*```\",\n       next  : \"pop\"\n    }]);\n\n    this.embedRules(HtmlHighlightRules, \"htmlcode-\", [{\n       token : \"support.function\",\n       regex : \"^\\\\s*```\",\n       next  : \"pop\"\n    }]);\n\n    this.embedRules(CssHighlightRules, \"csscode-\", [{\n       token : \"support.function\",\n       regex : \"^\\\\s*```\",\n       next  : \"pop\"\n    }]);\n\n    this.embedRules(XmlHighlightRules, \"xmlcode-\", [{\n       token : \"support.function\",\n       regex : \"^\\\\s*```\",\n       next  : \"pop\"\n    }]);\n\n    this.normalizeRules();\n};\noop.inherits(MarkdownHighlightRules, TextHighlightRules);\n\nexports.MarkdownHighlightRules = MarkdownHighlightRules;\n});\n\nace.define(\"ace/mode/scss_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar ScssHighlightRules = function() {\n    \n    var properties = lang.arrayToMap( (function () {\n\n        var browserPrefix = (\"-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-\").split(\"|\");\n        \n        var prefixProperties = (\"appearance|background-clip|background-inline-policy|background-origin|\" + \n             \"background-size|binding|border-bottom-colors|border-left-colors|\" + \n             \"border-right-colors|border-top-colors|border-end|border-end-color|\" + \n             \"border-end-style|border-end-width|border-image|border-start|\" + \n             \"border-start-color|border-start-style|border-start-width|box-align|\" + \n             \"box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|\" + \n             \"box-pack|box-sizing|column-count|column-gap|column-width|column-rule|\" + \n             \"column-rule-width|column-rule-style|column-rule-color|float-edge|\" + \n             \"font-feature-settings|font-language-override|force-broken-image-icon|\" + \n             \"image-region|margin-end|margin-start|opacity|outline|outline-color|\" + \n             \"outline-offset|outline-radius|outline-radius-bottomleft|\" + \n             \"outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|\" + \n             \"outline-style|outline-width|padding-end|padding-start|stack-sizing|\" + \n             \"tab-size|text-blink|text-decoration-color|text-decoration-line|\" + \n             \"text-decoration-style|transform|transform-origin|transition|\" + \n             \"transition-delay|transition-duration|transition-property|\" + \n             \"transition-timing-function|user-focus|user-input|user-modify|user-select|\" +\n             \"window-shadow|border-radius\").split(\"|\");\n        \n        var properties = (\"azimuth|background-attachment|background-color|background-image|\" +\n            \"background-position|background-repeat|background|border-bottom-color|\" +\n            \"border-bottom-style|border-bottom-width|border-bottom|border-collapse|\" +\n            \"border-color|border-left-color|border-left-style|border-left-width|\" +\n            \"border-left|border-right-color|border-right-style|border-right-width|\" +\n            \"border-right|border-spacing|border-style|border-top-color|\" +\n            \"border-top-style|border-top-width|border-top|border-width|border|bottom|\" +\n            \"box-shadow|box-sizing|caption-side|clear|clip|color|content|counter-increment|\" +\n            \"counter-reset|cue-after|cue-before|cue|cursor|direction|display|\" +\n            \"elevation|empty-cells|float|font-family|font-size-adjust|font-size|\" +\n            \"font-stretch|font-style|font-variant|font-weight|font|height|left|\" +\n            \"letter-spacing|line-height|list-style-image|list-style-position|\" +\n            \"list-style-type|list-style|margin-bottom|margin-left|margin-right|\" +\n            \"margin-top|marker-offset|margin|marks|max-height|max-width|min-height|\" +\n            \"min-width|opacity|orphans|outline-color|\" +\n            \"outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|\" +\n            \"padding-left|padding-right|padding-top|padding|page-break-after|\" +\n            \"page-break-before|page-break-inside|page|pause-after|pause-before|\" +\n            \"pause|pitch-range|pitch|play-during|position|quotes|richness|right|\" +\n            \"size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|\" +\n            \"stress|table-layout|text-align|text-decoration|text-indent|\" +\n            \"text-shadow|text-transform|top|unicode-bidi|vertical-align|\" +\n            \"visibility|voice-family|volume|white-space|widows|width|word-spacing|\" +\n            \"z-index\").split(\"|\");\n        var ret = [];\n        for (var i=0, ln=browserPrefix.length; i<ln; i++) {\n            Array.prototype.push.apply(\n                ret,\n                (( browserPrefix[i] + prefixProperties.join(\"|\" + browserPrefix[i]) ).split(\"|\"))\n            );\n        }\n        Array.prototype.push.apply(ret, prefixProperties);\n        Array.prototype.push.apply(ret, properties);\n        \n        return ret;\n        \n    })() );\n    \n\n\n    var functions = lang.arrayToMap(\n        (\"hsl|hsla|rgb|rgba|url|attr|counter|counters|abs|adjust_color|adjust_hue|\" +\n         \"alpha|join|blue|ceil|change_color|comparable|complement|darken|desaturate|\" + \n         \"floor|grayscale|green|hue|if|invert|join|length|lighten|lightness|mix|\" + \n         \"nth|opacify|opacity|percentage|quote|red|round|saturate|saturation|\" +\n         \"scale_color|transparentize|type_of|unit|unitless|unqoute\").split(\"|\")\n    );\n\n    var constants = lang.arrayToMap(\n        (\"absolute|all-scroll|always|armenian|auto|baseline|below|bidi-override|\" +\n        \"block|bold|bolder|border-box|both|bottom|break-all|break-word|capitalize|center|\" +\n        \"char|circle|cjk-ideographic|col-resize|collapse|content-box|crosshair|dashed|\" +\n        \"decimal-leading-zero|decimal|default|disabled|disc|\" +\n        \"distribute-all-lines|distribute-letter|distribute-space|\" +\n        \"distribute|dotted|double|e-resize|ellipsis|fixed|georgian|groove|\" +\n        \"hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|\" +\n        \"ideograph-alpha|ideograph-numeric|ideograph-parenthesis|\" +\n        \"ideograph-space|inactive|inherit|inline-block|inline|inset|inside|\" +\n        \"inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|\" +\n        \"keep-all|left|lighter|line-edge|line-through|line|list-item|loose|\" +\n        \"lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|\" +\n        \"medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|\" +\n        \"nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|\" +\n        \"overline|pointer|progress|relative|repeat-x|repeat-y|repeat|right|\" +\n        \"ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|\" +\n        \"solid|square|static|strict|super|sw-resize|table-footer-group|\" +\n        \"table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|\" +\n        \"transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|\" +\n        \"vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|\" +\n        \"zero\").split(\"|\")\n    );\n\n    var colors = lang.arrayToMap(\n        (\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|\" +\n        \"purple|red|silver|teal|white|yellow\").split(\"|\")\n    );\n    \n    var keywords = lang.arrayToMap(\n        (\"@mixin|@extend|@include|@import|@media|@debug|@warn|@if|@for|@each|@while|@else|@font-face|@-webkit-keyframes|if|and|!default|module|def|end|declare\").split(\"|\")\n    )\n    \n    var tags = lang.arrayToMap(\n        (\"a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|\" + \n         \"big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|\" + \n         \"command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|\" + \n         \"figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|\" + \n         \"header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|\" + \n         \"link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|\" + \n         \"option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|\" + \n         \"small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|\" + \n         \"textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp\").split(\"|\")\n    );\n\n    var numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"\\\\/\\\\/.*$\"\n            },\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n                token : \"string\", // single line\n                regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n            }, {\n                token : \"string\", // multi line string start\n                regex : '[\"].*\\\\\\\\$',\n                next : \"qqstring\"\n            }, {\n                token : \"string\", // single line\n                regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n            }, {\n                token : \"string\", // multi line string start\n                regex : \"['].*\\\\\\\\$\",\n                next : \"qstring\"\n            }, {\n                token : \"constant.numeric\",\n                regex : numRe + \"(?:em|ex|px|cm|mm|in|pt|pc|deg|rad|grad|ms|s|hz|khz|%)\"\n            }, {\n                token : \"constant.numeric\", // hex6 color\n                regex : \"#[a-f0-9]{6}\"\n            }, {\n                token : \"constant.numeric\", // hex3 color\n                regex : \"#[a-f0-9]{3}\"\n            }, {\n                token : \"constant.numeric\",\n                regex : numRe\n            }, {\n                token : [\"support.function\", \"string\", \"support.function\"],\n                regex : \"(url\\\\()(.*)(\\\\))\"\n            }, {\n                token : function(value) {\n                    if (properties.hasOwnProperty(value.toLowerCase()))\n                        return \"support.type\";\n                    if (keywords.hasOwnProperty(value))\n                        return \"keyword\";\n                    else if (constants.hasOwnProperty(value))\n                        return \"constant.language\";\n                    else if (functions.hasOwnProperty(value))\n                        return \"support.function\";\n                    else if (colors.hasOwnProperty(value.toLowerCase()))\n                        return \"support.constant.color\";\n                    else if (tags.hasOwnProperty(value.toLowerCase()))\n                        return \"variable.language\";\n                    else\n                        return \"text\";\n                },\n                regex : \"\\\\-?[@a-z_][@a-z0-9_\\\\-]*\"\n            }, {\n                token : \"variable\",\n                regex : \"[a-z_\\\\-$][a-z0-9_\\\\-$]*\\\\b\"\n            }, {\n                token: \"variable.language\",\n                regex: \"#[a-z0-9-_]+\"\n            }, {\n                token: \"variable.language\",\n                regex: \"\\\\.[a-z0-9-_]+\"\n            }, {\n                token: \"variable.language\",\n                regex: \":[a-z0-9-_]+\"\n            }, {\n                token: \"constant\",\n                regex: \"[a-z0-9-_]+\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"<|>|<=|>=|==|!=|-|%|#|\\\\+|\\\\$|\\\\+|\\\\*\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                caseInsensitive: true\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"string\",\n                regex : '(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',\n                next : \"start\"\n            }, {\n                token : \"string\",\n                regex : '.+'\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"string\",\n                regex : \"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",\n                next : \"start\"\n            }, {\n                token : \"string\",\n                regex : '.+'\n            }\n        ]\n    };\n};\n\noop.inherits(ScssHighlightRules, TextHighlightRules);\n\nexports.ScssHighlightRules = ScssHighlightRules;\n\n});\n\nace.define(\"ace/mode/less_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/css_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar CssHighlightRules = require('./css_highlight_rules');\n\nvar LessHighlightRules = function() {\n\n\n    var keywordList = \"@import|@media|@font-face|@keyframes|@-webkit-keyframes|@supports|\" + \n        \"@charset|@plugin|@namespace|@document|@page|@viewport|@-ms-viewport|\" +\n        \"or|and|when|not\";\n\n    var keywords = keywordList.split('|');\n\n    var properties = CssHighlightRules.supportType.split('|');\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.constant\": CssHighlightRules.supportConstant,\n        \"keyword\": keywordList,\n        \"support.constant.color\": CssHighlightRules.supportConstantColor,\n        \"support.constant.fonts\": CssHighlightRules.supportConstantFonts\n    }, \"identifier\", true);   \n\n    var numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"\\\\/\\\\/.*$\"\n            },\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n                token : \"string\", // single line\n                regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n            }, {\n                token : \"string\", // single line\n                regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n            }, {\n                token : [\"constant.numeric\", \"keyword\"],\n                regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n            }, {\n                token : \"constant.numeric\", // hex6 color\n                regex : \"#[a-f0-9]{6}\"\n            }, {\n                token : \"constant.numeric\", // hex3 color\n                regex : \"#[a-f0-9]{3}\"\n            }, {\n                token : \"constant.numeric\",\n                regex : numRe\n            }, {\n                token : [\"support.function\", \"paren.lparen\", \"string\", \"paren.rparen\"],\n                regex : \"(url)(\\\\()(.*)(\\\\))\"\n            }, {\n                token : [\"support.function\", \"paren.lparen\"],\n                regex : \"(:extend|[a-z0-9_\\\\-]+)(\\\\()\"\n            }, {\n                token : function(value) {\n                    if (keywords.indexOf(value.toLowerCase()) > -1)\n                        return \"keyword\";\n                    else\n                        return \"variable\";\n                },\n                regex : \"[@\\\\$][a-z0-9_\\\\-@\\\\$]*\\\\b\"\n            }, {\n                token : \"variable\",\n                regex : \"[@\\\\$]\\\\{[a-z0-9_\\\\-@\\\\$]*\\\\}\"\n            }, {\n                token : function(first, second) {\n                    if(properties.indexOf(first.toLowerCase()) > -1) {\n                        return [\"support.type.property\", \"text\"];\n                    }\n                    else {\n                        return [\"support.type.unknownProperty\", \"text\"];\n                    }\n                },\n                regex : \"([a-z0-9-_]+)(\\\\s*:)\"\n            }, {\n                token : \"keyword\",\n                regex : \"&\"   // special case - always treat as keyword\n            }, {\n                token : keywordMapper,\n                regex : \"\\\\-?[@a-z_][@a-z0-9_\\\\-]*\"\n            }, {\n                token: \"variable.language\",\n                regex: \"#[a-z0-9-_]+\"\n            }, {\n                token: \"variable.language\",\n                regex: \"\\\\.[a-z0-9-_]+\"\n            }, {\n                token: \"variable.language\",\n                regex: \":[a-z_][a-z0-9-_]*\"\n            }, {\n                token: \"constant\",\n                regex: \"[a-z0-9-_]+\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"<|>|<=|>=|=|!=|-|%|\\\\+|\\\\*\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                caseInsensitive: true\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ]\n    };\n    this.normalizeRules();\n};\n\noop.inherits(LessHighlightRules, TextHighlightRules);\n\nexports.LessHighlightRules = LessHighlightRules;\n\n});\n\nace.define(\"ace/mode/coffee_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\n    var oop = require(\"../lib/oop\");\n    var TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\n    oop.inherits(CoffeeHighlightRules, TextHighlightRules);\n\n    function CoffeeHighlightRules() {\n        var identifier = \"[$A-Za-z_\\\\x7f-\\\\uffff][$\\\\w\\\\x7f-\\\\uffff]*\";\n\n        var keywords = (\n            \"this|throw|then|try|typeof|super|switch|return|break|by|continue|\" +\n            \"catch|class|in|instanceof|is|isnt|if|else|extends|for|own|\" +\n            \"finally|function|while|when|new|no|not|delete|debugger|do|loop|of|off|\" +\n            \"or|on|unless|until|and|yes\"\n        );\n\n        var langConstant = (\n            \"true|false|null|undefined|NaN|Infinity\"\n        );\n\n        var illegal = (\n            \"case|const|default|function|var|void|with|enum|export|implements|\" +\n            \"interface|let|package|private|protected|public|static|yield\"\n        );\n\n        var supportClass = (\n            \"Array|Boolean|Date|Function|Number|Object|RegExp|ReferenceError|String|\" +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\" +\n            \"SyntaxError|TypeError|URIError|\"  +\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\" +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray\"\n        );\n\n        var supportFunction = (\n            \"Math|JSON|isNaN|isFinite|parseInt|parseFloat|encodeURI|\" +\n            \"encodeURIComponent|decodeURI|decodeURIComponent|String|\"\n        );\n\n        var variableLanguage = (\n            \"window|arguments|prototype|document\"\n        );\n\n        var keywordMapper = this.createKeywordMapper({\n            \"keyword\": keywords,\n            \"constant.language\": langConstant,\n            \"invalid.illegal\": illegal,\n            \"language.support.class\": supportClass,\n            \"language.support.function\": supportFunction,\n            \"variable.language\": variableLanguage\n        }, \"identifier\");\n\n        var functionRule = {\n            token: [\"paren.lparen\", \"variable.parameter\", \"paren.rparen\", \"text\", \"storage.type\"],\n            regex: /(?:(\\()((?:\"[^\")]*?\"|'[^')]*?'|\\/[^\\/)]*?\\/|[^()\"'\\/])*?)(\\))(\\s*))?([\\-=]>)/.source\n        };\n\n        var stringEscape = /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)/;\n\n        this.$rules = {\n            start : [\n                {\n                    token : \"constant.numeric\",\n                    regex : \"(?:0x[\\\\da-fA-F]+|(?:\\\\d+(?:\\\\.\\\\d+)?|\\\\.\\\\d+)(?:[eE][+-]?\\\\d+)?)\"\n                }, {\n                    stateName: \"qdoc\",\n                    token : \"string\", regex : \"'''\", next : [\n                        {token : \"string\", regex : \"'''\", next : \"start\"},\n                        {token : \"constant.language.escape\", regex : stringEscape},\n                        {defaultToken: \"string\"}\n                    ]\n                }, {\n                    stateName: \"qqdoc\",\n                    token : \"string\",\n                    regex : '\"\"\"',\n                    next : [\n                        {token : \"string\", regex : '\"\"\"', next : \"start\"},\n                        {token : \"paren.string\", regex : '#{', push : \"start\"},\n                        {token : \"constant.language.escape\", regex : stringEscape},\n                        {defaultToken: \"string\"}\n                    ]\n                }, {\n                    stateName: \"qstring\",\n                    token : \"string\", regex : \"'\", next : [\n                        {token : \"string\", regex : \"'\", next : \"start\"},\n                        {token : \"constant.language.escape\", regex : stringEscape},\n                        {defaultToken: \"string\"}\n                    ]\n                }, {\n                    stateName: \"qqstring\",\n                    token : \"string.start\", regex : '\"', next : [\n                        {token : \"string.end\", regex : '\"', next : \"start\"},\n                        {token : \"paren.string\", regex : '#{', push : \"start\"},\n                        {token : \"constant.language.escape\", regex : stringEscape},\n                        {defaultToken: \"string\"}\n                    ]\n                }, {\n                    stateName: \"js\",\n                    token : \"string\", regex : \"`\", next : [\n                        {token : \"string\", regex : \"`\", next : \"start\"},\n                        {token : \"constant.language.escape\", regex : stringEscape},\n                        {defaultToken: \"string\"}\n                    ]\n                }, {\n                    regex: \"[{}]\", onMatch: function(val, state, stack) {\n                        this.next = \"\";\n                        if (val == \"{\" && stack.length) {\n                            stack.unshift(\"start\", state);\n                            return \"paren\";\n                        }\n                        if (val == \"}\" && stack.length) {\n                            stack.shift();\n                            this.next = stack.shift() || \"\";\n                            if (this.next.indexOf(\"string\") != -1)\n                                return \"paren.string\";\n                        }\n                        return \"paren\";\n                    }\n                }, {\n                    token : \"string.regex\",\n                    regex : \"///\",\n                    next : \"heregex\"\n                }, {\n                    token : \"string.regex\",\n                    regex : /(?:\\/(?![\\s=])[^[\\/\\n\\\\]*(?:(?:\\\\[\\s\\S]|\\[[^\\]\\n\\\\]*(?:\\\\[\\s\\S][^\\]\\n\\\\]*)*])[^[\\/\\n\\\\]*)*\\/)(?:[imgy]{0,4})(?!\\w)/\n                }, {\n                    token : \"comment\",\n                    regex : \"###(?!#)\",\n                    next : \"comment\"\n                }, {\n                    token : \"comment\",\n                    regex : \"#.*\"\n                }, {\n                    token : [\"punctuation.operator\", \"text\", \"identifier\"],\n                    regex : \"(\\\\.)(\\\\s*)(\" + illegal + \")\"\n                }, {\n                    token : \"punctuation.operator\",\n                    regex : \"\\\\.{1,3}\"\n                }, {\n                    token : [\"keyword\", \"text\", \"language.support.class\",\n                     \"text\", \"keyword\", \"text\", \"language.support.class\"],\n                    regex : \"(class)(\\\\s+)(\" + identifier + \")(?:(\\\\s+)(extends)(\\\\s+)(\" + identifier + \"))?\"\n                }, {\n                    token : [\"entity.name.function\", \"text\", \"keyword.operator\", \"text\"].concat(functionRule.token),\n                    regex : \"(\" + identifier + \")(\\\\s*)([=:])(\\\\s*)\" + functionRule.regex\n                }, \n                functionRule, \n                {\n                    token : \"variable\",\n                    regex : \"@(?:\" + identifier + \")?\"\n                }, {\n                    token: keywordMapper,\n                    regex : identifier\n                }, {\n                    token : \"punctuation.operator\",\n                    regex : \"\\\\,|\\\\.\"\n                }, {\n                    token : \"storage.type\",\n                    regex : \"[\\\\-=]>\"\n                }, {\n                    token : \"keyword.operator\",\n                    regex : \"(?:[-+*/%<>&|^!?=]=|>>>=?|\\\\-\\\\-|\\\\+\\\\+|::|&&=|\\\\|\\\\|=|<<=|>>=|\\\\?\\\\.|\\\\.{2,3}|[!*+-=><])\"\n                }, {\n                    token : \"paren.lparen\",\n                    regex : \"[({[]\"\n                }, {\n                    token : \"paren.rparen\",\n                    regex : \"[\\\\]})]\"\n                }, {\n                    token : \"text\",\n                    regex : \"\\\\s+\"\n                }],\n\n\n            heregex : [{\n                token : \"string.regex\",\n                regex : '.*?///[imgy]{0,4}',\n                next : \"start\"\n            }, {\n                token : \"comment.regex\",\n                regex : \"\\\\s+(?:#.*)?\"\n            }, {\n                token : \"string.regex\",\n                regex : \"\\\\S+\"\n            }],\n\n            comment : [{\n                token : \"comment\",\n                regex : '###',\n                next : \"start\"\n            }, {\n                defaultToken : \"comment\"\n            }]\n        };\n        this.normalizeRules();\n    }\n\n    exports.CoffeeHighlightRules = CoffeeHighlightRules;\n});\n\nace.define(\"ace/mode/jade_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/markdown_highlight_rules\",\"ace/mode/scss_highlight_rules\",\"ace/mode/less_highlight_rules\",\"ace/mode/coffee_highlight_rules\",\"ace/mode/javascript_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar MarkdownHighlightRules = require(\"./markdown_highlight_rules\").MarkdownHighlightRules;\nvar SassHighlightRules = require(\"./scss_highlight_rules\").ScssHighlightRules;\nvar LessHighlightRules = require(\"./less_highlight_rules\").LessHighlightRules;\nvar CoffeeHighlightRules = require(\"./coffee_highlight_rules\").CoffeeHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\n\nfunction mixin_embed(tag, prefix) {\n    return { \n        token : \"entity.name.function.jade\",\n        regex : \"^\\\\s*\\\\:\" + tag,\n        next  : prefix + \"start\"\n    };\n}\n\nvar JadeHighlightRules = function() {\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-6][0-7]?|\" + // oct\n        \"37[0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = \n        {\n    \"start\": [\n        {\n            token: \"keyword.control.import.include.jade\",\n            regex: \"\\\\s*\\\\binclude\\\\b\"\n        },\n        {\n            token: \"keyword.other.doctype.jade\",\n            regex: \"^!!!\\\\s*(?:[a-zA-Z0-9-_]+)?\"\n        },\n        {\n            onMatch: function(value, currentState, stack) {\n                stack.unshift(this.next, value.length - 2, currentState);\n                return \"comment\";\n            },\n            regex: /^\\s*\\/\\//,\n            next: \"comment_block\"\n        },\n        mixin_embed(\"markdown\", \"markdown-\"),\n        mixin_embed(\"sass\", \"sass-\"),\n        mixin_embed(\"less\", \"less-\"),\n        mixin_embed(\"coffee\", \"coffee-\"),\n        {\n            token: [ \"storage.type.function.jade\",\n                       \"entity.name.function.jade\",\n                       \"punctuation.definition.parameters.begin.jade\",\n                       \"variable.parameter.function.jade\",\n                       \"punctuation.definition.parameters.end.jade\"\n                    ],\n            regex: \"^(\\\\s*mixin)( [\\\\w\\\\-]+)(\\\\s*\\\\()(.*?)(\\\\))\"\n        },\n        {\n            token: [ \"storage.type.function.jade\", \"entity.name.function.jade\"],\n            regex: \"^(\\\\s*mixin)( [\\\\w\\\\-]+)\"\n        },\n        {\n            token: \"source.js.embedded.jade\",\n            regex: \"^\\\\s*(?:-|=|!=)\",\n            next: \"js-start\"\n        },\n        {\n            token: \"string.interpolated.jade\",\n            regex: \"[#!]\\\\{[^\\\\}]+\\\\}\"\n        },\n        {\n            token: \"meta.tag.any.jade\",\n            regex: /^\\s*(?!\\w+:)(?:[\\w-]+|(?=\\.|#)])/,\n            next: \"tag_single\"\n        },\n        {\n            token: \"suport.type.attribute.id.jade\",\n            regex: \"#\\\\w+\"\n        },\n        {\n            token: \"suport.type.attribute.class.jade\",\n            regex: \"\\\\.\\\\w+\"\n        },\n        {\n            token: \"punctuation\",\n            regex: \"\\\\s*(?:\\\\()\",\n            next: \"tag_attributes\"\n        }\n    ],\n    \"comment_block\": [\n        {regex: /^\\s*(?:\\/\\/)?/, onMatch: function(value, currentState, stack) {\n            if (value.length <= stack[1]) {\n                if (value.slice(-1) == \"/\") {\n                    stack[1] = value.length - 2;\n                    this.next = \"\";\n                    return \"comment\";\n                }\n                stack.shift();\n                stack.shift();\n                this.next = stack.shift();\n                return \"text\";\n            } else {\n                this.next = \"\";\n                return \"comment\";\n            }\n        }, next: \"start\"},\n        {defaultToken: \"comment\"}\n    ],\n    \"tag_single\": [\n        {\n            token: \"entity.other.attribute-name.class.jade\",\n            regex: \"\\\\.[\\\\w-]+\"\n        },\n        {\n            token: \"entity.other.attribute-name.id.jade\",\n            regex: \"#[\\\\w-]+\"\n        },\n        {\n            token: [\"text\", \"punctuation\"],\n            regex: \"($)|((?!\\\\.|#|=|-))\",\n            next: \"start\"\n        }\n    ],\n    \"tag_attributes\": [ \n        {\n            token : \"string\",\n            regex : \"'(?=.)\",\n            next  : \"qstring\"\n        }, \n        {\n            token : \"string\",\n            regex : '\"(?=.)',\n            next  : \"qqstring\"\n        },\n        {\n            token: [\"entity.other.attribute-name.jade\", \"punctuation\"],\n            regex: \"([a-zA-Z:\\\\.-]+)(=)?\",\n            next: \"attribute_strings\"\n        },\n        {\n            token: \"punctuation\",\n            regex: \"\\\\)\",\n            next: \"start\"\n        }\n    ],\n    \"attribute_strings\": [\n        {\n            token : \"string\",\n            regex : \"'(?=.)\",\n            next  : \"qstring\"\n        }, \n        {\n            token : \"string\",\n            regex : '\"(?=.)',\n            next  : \"qqstring\"\n        },\n        {\n            token : \"string\",\n            regex : '(?=\\\\S)',\n            next  : \"tag_attributes\"\n        }\n    ],\n    \"qqstring\" : [\n        {\n            token : \"constant.language.escape\",\n            regex : escapedRe\n        }, {\n            token : \"string\",\n            regex : '[^\"\\\\\\\\]+'\n        }, {\n            token : \"string\",\n            regex : \"\\\\\\\\$\",\n            next  : \"qqstring\"\n        }, {\n            token : \"string\",\n            regex : '\"|$',\n            next  : \"tag_attributes\"\n        }\n    ],\n    \"qstring\" : [\n        {\n            token : \"constant.language.escape\",\n            regex : escapedRe\n        }, {\n            token : \"string\",\n            regex : \"[^'\\\\\\\\]+\"\n        }, {\n            token : \"string\",\n            regex : \"\\\\\\\\$\",\n            next  : \"qstring\"\n        }, {\n            token : \"string\",\n            regex : \"'|$\",\n            next  : \"tag_attributes\"\n        }\n    ]\n};\n\n    this.embedRules(JavaScriptHighlightRules, \"js-\", [{\n        token: \"text\",\n        regex: \".$\",\n        next: \"start\"\n    }]);\n};\n\noop.inherits(JadeHighlightRules, TextHighlightRules);\n\nexports.JadeHighlightRules = JadeHighlightRules;\n});\n\nace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var range = this.indentationBlock(session, row);\n        if (range)\n            return range;\n\n        var re = /\\S/;\n        var line = session.getLine(row);\n        var startLevel = line.search(re);\n        if (startLevel == -1 || line[startLevel] != \"#\")\n            return;\n\n        var startColumn = line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var level = line.search(re);\n\n            if (level == -1)\n                continue;\n\n            if (line[level] != \"#\")\n                break;\n\n            endRow = row;\n        }\n\n        if (endRow > startRow) {\n            var endColumn = session.getLine(endRow).length;\n            return new Range(startRow, startColumn, endRow, endColumn);\n        }\n    };\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var indent = line.search(/\\S/);\n        var next = session.getLine(row + 1);\n        var prev = session.getLine(row - 1);\n        var prevIndent = prev.search(/\\S/);\n        var nextIndent = next.search(/\\S/);\n\n        if (indent == -1) {\n            session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n            return \"\";\n        }\n        if (prevIndent == -1) {\n            if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n                session.foldWidgets[row - 1] = \"\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"start\";\n            }\n        } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n            if (session.getLine(row - 2).search(/\\S/) == -1) {\n                session.foldWidgets[row - 1] = \"start\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"\";\n            }\n        }\n\n        if (prevIndent!= -1 && prevIndent < indent)\n            session.foldWidgets[row - 1] = \"start\";\n        else\n            session.foldWidgets[row - 1] = \"\";\n\n        if (indent < nextIndent)\n            return \"start\";\n        else\n            return \"\";\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/jade\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jade_highlight_rules\",\"ace/mode/folding/coffee\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JadeHighlightRules = require(\"./jade_highlight_rules\").JadeHighlightRules;\nvar FoldMode = require(\"./folding/coffee\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JadeHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() { \n\tthis.lineCommentStart = \"//\";\n    this.$id = \"ace/mode/jade\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-java.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/java_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar JavaHighlightRules = function() {\n    var keywords = (\n    \"abstract|continue|for|new|switch|\" +\n    \"assert|default|goto|package|synchronized|\" +\n    \"boolean|do|if|private|this|\" +\n    \"break|double|implements|protected|throw|\" +\n    \"byte|else|import|public|throws|\" +\n    \"case|enum|instanceof|return|transient|\" +\n    \"catch|extends|int|short|try|\" +\n    \"char|final|interface|static|void|\" +\n    \"class|finally|long|strictfp|volatile|\" +\n    \"const|float|native|super|while\"\n    );\n\n    var buildinConstants = (\"null|Infinity|NaN|undefined\");\n\n\n    var langClasses = (\n        \"AbstractMethodError|AssertionError|ClassCircularityError|\"+\n        \"ClassFormatError|Deprecated|EnumConstantNotPresentException|\"+\n        \"ExceptionInInitializerError|IllegalAccessError|\"+\n        \"IllegalThreadStateException|InstantiationError|InternalError|\"+\n        \"NegativeArraySizeException|NoSuchFieldError|Override|Process|\"+\n        \"ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|\"+\n        \"SuppressWarnings|TypeNotPresentException|UnknownError|\"+\n        \"UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|\"+\n        \"InstantiationException|IndexOutOfBoundsException|\"+\n        \"ArrayIndexOutOfBoundsException|CloneNotSupportedException|\"+\n        \"NoSuchFieldException|IllegalArgumentException|NumberFormatException|\"+\n        \"SecurityException|Void|InheritableThreadLocal|IllegalStateException|\"+\n        \"InterruptedException|NoSuchMethodException|IllegalAccessException|\"+\n        \"UnsupportedOperationException|Enum|StrictMath|Package|Compiler|\"+\n        \"Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|\"+\n        \"NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|\"+\n        \"NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|\"+\n        \"Character|Boolean|StackTraceElement|Appendable|StringBuffer|\"+\n        \"Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|\"+\n        \"StackOverflowError|OutOfMemoryError|VirtualMachineError|\"+\n        \"ArrayStoreException|ClassCastException|LinkageError|\"+\n        \"NoClassDefFoundError|ClassNotFoundException|RuntimeException|\"+\n        \"Exception|ThreadDeath|Error|Throwable|System|ClassLoader|\"+\n        \"Cloneable|Class|CharSequence|Comparable|String|Object\"\n    );\n\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\": \"this\",\n        \"keyword\": keywords,\n        \"constant.language\": buildinConstants,\n        \"support.function\": langClasses\n    }, \"identifier\");\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"\\\\/\\\\/.*$\"\n            },\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n                token : \"string\", // single line\n                regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n            }, {\n                token : \"string\", // single line\n                regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.[\\d_]*)?(?:[eE][+-]?[\\d_]+)?)?[LlSsDdFfYy]?\\b/\n            }, {\n                token : \"constant.language.boolean\",\n                regex : \"(?:true|false)\\\\b\"\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n            }, {\n                token : \"lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ]\n    };\n\n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n};\n\noop.inherits(JavaHighlightRules, TextHighlightRules);\n\nexports.JavaHighlightRules = JavaHighlightRules;\n});\n\nace.define(\"ace/mode/java\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/java_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar JavaHighlightRules = require(\"./java_highlight_rules\").JavaHighlightRules;\n\nvar Mode = function() {\n    JavaScriptMode.call(this);\n    this.HighlightRules = JavaHighlightRules;\n};\noop.inherits(Mode, JavaScriptMode);\n\n(function() {\n    \n    this.createWorker = function(session) {\n        return null;\n    };\n\n    this.$id = \"ace/mode/java\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-javascript.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-json.js",
    "content": "ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar JsonHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"variable\", // single line\n                regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n            }, {\n                token : \"string\", // single line\n                regex : '\"',\n                next  : \"string\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n            }, {\n                token : \"constant.language.boolean\",\n                regex : \"(?:true|false)\\\\b\"\n            }, {\n                token : \"invalid.illegal\", // single quoted strings are not allowed\n                regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n            }, {\n                token : \"invalid.illegal\", // comments are not allowed\n                regex : \"\\\\/\\\\/.*$\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"string\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n            }, {\n                token : \"string\",\n                regex : '[^\"\\\\\\\\]+'\n            }, {\n                token : \"string\",\n                regex : '\"',\n                next  : \"start\"\n            }, {\n                token : \"string\",\n                regex : \"\",\n                next  : \"start\"\n            }\n        ]\n    };\n    \n};\n\noop.inherits(JsonHighlightRules, TextHighlightRules);\n\nexports.JsonHighlightRules = JsonHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar HighlightRules = require(\"./json_highlight_rules\").JsonHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\n\nvar Mode = function() {\n    this.HighlightRules = HighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/json_worker\", \"JsonWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n\n    this.$id = \"ace/mode/json\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-jsoniq.js",
    "content": "ace.define(\"ace/mode/xquery/jsoniq_lexer\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\nmodule.exports = (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error(\"Cannot find module '\"+o+\"'\")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({\n1:[function(_dereq_,module,exports){\n                                                            var JSONiqTokenizer = exports.JSONiqTokenizer = function JSONiqTokenizer(string, parsingEventHandler)\n                                                            {\n                                                              init(string, parsingEventHandler);\n  var self = this;\n\n  this.ParseException = function(b, e, s, o, x)\n  {\n    var\n      begin = b,\n      end = e,\n      state = s,\n      offending = o,\n      expected = x;\n\n    this.getBegin = function() {return begin;};\n    this.getEnd = function() {return end;};\n    this.getState = function() {return state;};\n    this.getExpected = function() {return expected;};\n    this.getOffending = function() {return offending;};\n\n    this.getMessage = function()\n    {\n      return offending < 0 ? \"lexical analysis failed\" : \"syntax error\";\n    };\n  };\n\n  function init(string, parsingEventHandler)\n  {\n    eventHandler = parsingEventHandler;\n    input = string;\n    size = string.length;\n    reset(0, 0, 0);\n  }\n\n  this.getInput = function()\n  {\n    return input;\n  };\n\n  function reset(l, b, e)\n  {\n            b0 = b; e0 = b;\n    l1 = l; b1 = b; e1 = e;\n    end = e;\n    eventHandler.reset(input);\n  }\n\n  this.getOffendingToken = function(e)\n  {\n    var o = e.getOffending();\n    return o >= 0 ? JSONiqTokenizer.TOKEN[o] : null;\n  };\n\n  this.getExpectedTokenSet = function(e)\n  {\n    var expected;\n    if (e.getExpected() < 0)\n    {\n      expected = JSONiqTokenizer.getTokenSet(- e.getState());\n    }\n    else\n    {\n      expected = [JSONiqTokenizer.TOKEN[e.getExpected()]];\n    }\n    return expected;\n  };\n\n  this.getErrorMessage = function(e)\n  {\n    var tokenSet = this.getExpectedTokenSet(e);\n    var found = this.getOffendingToken(e);\n    var prefix = input.substring(0, e.getBegin());\n    var lines = prefix.split(\"\\n\");\n    var line = lines.length;\n    var column = lines[line - 1].length + 1;\n    var size = e.getEnd() - e.getBegin();\n    return e.getMessage()\n         + (found == null ? \"\" : \", found \" + found)\n         + \"\\nwhile expecting \"\n         + (tokenSet.length == 1 ? tokenSet[0] : (\"[\" + tokenSet.join(\", \") + \"]\"))\n         + \"\\n\"\n         + (size == 0 || found != null ? \"\" : \"after successfully scanning \" + size + \" characters beginning \")\n         + \"at line \" + line + \", column \" + column + \":\\n...\"\n         + input.substring(e.getBegin(), Math.min(input.length, e.getBegin() + 64))\n         + \"...\";\n  };\n\n  this.parse_start = function()\n  {\n    eventHandler.startNonterminal(\"start\", e0);\n    lookahead1W(14);                // ModuleDecl | Annotation | OptionDecl | Operator | Variable | Tag | AttrTest |\n    switch (l1)\n    {\n    case 58:                        // '<![CDATA['\n      shift(58);                    // '<![CDATA['\n      break;\n    case 57:                        // '<!--'\n      shift(57);                    // '<!--'\n      break;\n    case 59:                        // '<?'\n      shift(59);                    // '<?'\n      break;\n    case 43:                        // '(#'\n      shift(43);                    // '(#'\n      break;\n    case 45:                        // '(:~'\n      shift(45);                    // '(:~'\n      break;\n    case 44:                        // '(:'\n      shift(44);                    // '(:'\n      break;\n    case 37:                        // '\"'\n      shift(37);                    // '\"'\n      break;\n    case 41:                        // \"'\"\n      shift(41);                    // \"'\"\n      break;\n    case 277:                       // '}'\n      shift(277);                   // '}'\n      break;\n    case 274:                       // '{'\n      shift(274);                   // '{'\n      break;\n    case 42:                        // '('\n      shift(42);                    // '('\n      break;\n    case 46:                        // ')'\n      shift(46);                    // ')'\n      break;\n    case 52:                        // '/'\n      shift(52);                    // '/'\n      break;\n    case 65:                        // '['\n      shift(65);                    // '['\n      break;\n    case 66:                        // ']'\n      shift(66);                    // ']'\n      break;\n    case 49:                        // ','\n      shift(49);                    // ','\n      break;\n    case 51:                        // '.'\n      shift(51);                    // '.'\n      break;\n    case 56:                        // ';'\n      shift(56);                    // ';'\n      break;\n    case 54:                        // ':'\n      shift(54);                    // ':'\n      break;\n    case 36:                        // '!'\n      shift(36);                    // '!'\n      break;\n    case 276:                       // '|'\n      shift(276);                   // '|'\n      break;\n    case 40:                        // '$$'\n      shift(40);                    // '$$'\n      break;\n    case 5:                         // Annotation\n      shift(5);                     // Annotation\n      break;\n    case 4:                         // ModuleDecl\n      shift(4);                     // ModuleDecl\n      break;\n    case 6:                         // OptionDecl\n      shift(6);                     // OptionDecl\n      break;\n    case 15:                        // AttrTest\n      shift(15);                    // AttrTest\n      break;\n    case 16:                        // Wildcard\n      shift(16);                    // Wildcard\n      break;\n    case 18:                        // IntegerLiteral\n      shift(18);                    // IntegerLiteral\n      break;\n    case 19:                        // DecimalLiteral\n      shift(19);                    // DecimalLiteral\n      break;\n    case 20:                        // DoubleLiteral\n      shift(20);                    // DoubleLiteral\n      break;\n    case 8:                         // Variable\n      shift(8);                     // Variable\n      break;\n    case 9:                         // Tag\n      shift(9);                     // Tag\n      break;\n    case 7:                         // Operator\n      shift(7);                     // Operator\n      break;\n    case 35:                        // EOF\n      shift(35);                    // EOF\n      break;\n    default:\n      parse_EQName();\n    }\n    eventHandler.endNonterminal(\"start\", e0);\n  };\n\n  this.parse_StartTag = function()\n  {\n    eventHandler.startNonterminal(\"StartTag\", e0);\n    lookahead1W(8);                 // QName | S^WS | EOF | '\"' | \"'\" | '/>' | '=' | '>'\n    switch (l1)\n    {\n    case 61:                        // '>'\n      shift(61);                    // '>'\n      break;\n    case 53:                        // '/>'\n      shift(53);                    // '/>'\n      break;\n    case 29:                        // QName\n      shift(29);                    // QName\n      break;\n    case 60:                        // '='\n      shift(60);                    // '='\n      break;\n    case 37:                        // '\"'\n      shift(37);                    // '\"'\n      break;\n    case 41:                        // \"'\"\n      shift(41);                    // \"'\"\n      break;\n    default:\n      shift(35);                    // EOF\n    }\n    eventHandler.endNonterminal(\"StartTag\", e0);\n  };\n\n  this.parse_TagContent = function()\n  {\n    eventHandler.startNonterminal(\"TagContent\", e0);\n    lookahead1(11);                 // Tag | EndTag | PredefinedEntityRef | ElementContentChar | CharRef | EOF |\n    switch (l1)\n    {\n    case 25:                        // ElementContentChar\n      shift(25);                    // ElementContentChar\n      break;\n    case 9:                         // Tag\n      shift(9);                     // Tag\n      break;\n    case 10:                        // EndTag\n      shift(10);                    // EndTag\n      break;\n    case 58:                        // '<![CDATA['\n      shift(58);                    // '<![CDATA['\n      break;\n    case 57:                        // '<!--'\n      shift(57);                    // '<!--'\n      break;\n    case 21:                        // PredefinedEntityRef\n      shift(21);                    // PredefinedEntityRef\n      break;\n    case 31:                        // CharRef\n      shift(31);                    // CharRef\n      break;\n    case 275:                       // '{{'\n      shift(275);                   // '{{'\n      break;\n    case 278:                       // '}}'\n      shift(278);                   // '}}'\n      break;\n    case 274:                       // '{'\n      shift(274);                   // '{'\n      break;\n    default:\n      shift(35);                    // EOF\n    }\n    eventHandler.endNonterminal(\"TagContent\", e0);\n  };\n\n  this.parse_AposAttr = function()\n  {\n    eventHandler.startNonterminal(\"AposAttr\", e0);\n    lookahead1(10);                 // PredefinedEntityRef | EscapeApos | AposAttrContentChar | CharRef | EOF | \"'\" |\n    switch (l1)\n    {\n    case 23:                        // EscapeApos\n      shift(23);                    // EscapeApos\n      break;\n    case 27:                        // AposAttrContentChar\n      shift(27);                    // AposAttrContentChar\n      break;\n    case 21:                        // PredefinedEntityRef\n      shift(21);                    // PredefinedEntityRef\n      break;\n    case 31:                        // CharRef\n      shift(31);                    // CharRef\n      break;\n    case 275:                       // '{{'\n      shift(275);                   // '{{'\n      break;\n    case 278:                       // '}}'\n      shift(278);                   // '}}'\n      break;\n    case 274:                       // '{'\n      shift(274);                   // '{'\n      break;\n    case 41:                        // \"'\"\n      shift(41);                    // \"'\"\n      break;\n    default:\n      shift(35);                    // EOF\n    }\n    eventHandler.endNonterminal(\"AposAttr\", e0);\n  };\n\n  this.parse_QuotAttr = function()\n  {\n    eventHandler.startNonterminal(\"QuotAttr\", e0);\n    lookahead1(9);                  // PredefinedEntityRef | EscapeQuot | QuotAttrContentChar | CharRef | EOF | '\"' |\n    switch (l1)\n    {\n    case 22:                        // EscapeQuot\n      shift(22);                    // EscapeQuot\n      break;\n    case 26:                        // QuotAttrContentChar\n      shift(26);                    // QuotAttrContentChar\n      break;\n    case 21:                        // PredefinedEntityRef\n      shift(21);                    // PredefinedEntityRef\n      break;\n    case 31:                        // CharRef\n      shift(31);                    // CharRef\n      break;\n    case 275:                       // '{{'\n      shift(275);                   // '{{'\n      break;\n    case 278:                       // '}}'\n      shift(278);                   // '}}'\n      break;\n    case 274:                       // '{'\n      shift(274);                   // '{'\n      break;\n    case 37:                        // '\"'\n      shift(37);                    // '\"'\n      break;\n    default:\n      shift(35);                    // EOF\n    }\n    eventHandler.endNonterminal(\"QuotAttr\", e0);\n  };\n\n  this.parse_CData = function()\n  {\n    eventHandler.startNonterminal(\"CData\", e0);\n    lookahead1(1);                  // CDataSectionContents | EOF | ']]>'\n    switch (l1)\n    {\n    case 14:                        // CDataSectionContents\n      shift(14);                    // CDataSectionContents\n      break;\n    case 67:                        // ']]>'\n      shift(67);                    // ']]>'\n      break;\n    default:\n      shift(35);                    // EOF\n    }\n    eventHandler.endNonterminal(\"CData\", e0);\n  };\n\n  this.parse_XMLComment = function()\n  {\n    eventHandler.startNonterminal(\"XMLComment\", e0);\n    lookahead1(0);                  // DirCommentContents | EOF | '-->'\n    switch (l1)\n    {\n    case 12:                        // DirCommentContents\n      shift(12);                    // DirCommentContents\n      break;\n    case 50:                        // '-->'\n      shift(50);                    // '-->'\n      break;\n    default:\n      shift(35);                    // EOF\n    }\n    eventHandler.endNonterminal(\"XMLComment\", e0);\n  };\n\n  this.parse_PI = function()\n  {\n    eventHandler.startNonterminal(\"PI\", e0);\n    lookahead1(3);                  // DirPIContents | EOF | '?' | '?>'\n    switch (l1)\n    {\n    case 13:                        // DirPIContents\n      shift(13);                    // DirPIContents\n      break;\n    case 62:                        // '?'\n      shift(62);                    // '?'\n      break;\n    case 63:                        // '?>'\n      shift(63);                    // '?>'\n      break;\n    default:\n      shift(35);                    // EOF\n    }\n    eventHandler.endNonterminal(\"PI\", e0);\n  };\n\n  this.parse_Pragma = function()\n  {\n    eventHandler.startNonterminal(\"Pragma\", e0);\n    lookahead1(2);                  // PragmaContents | EOF | '#' | '#)'\n    switch (l1)\n    {\n    case 11:                        // PragmaContents\n      shift(11);                    // PragmaContents\n      break;\n    case 38:                        // '#'\n      shift(38);                    // '#'\n      break;\n    case 39:                        // '#)'\n      shift(39);                    // '#)'\n      break;\n    default:\n      shift(35);                    // EOF\n    }\n    eventHandler.endNonterminal(\"Pragma\", e0);\n  };\n\n  this.parse_Comment = function()\n  {\n    eventHandler.startNonterminal(\"Comment\", e0);\n    lookahead1(4);                  // CommentContents | EOF | '(:' | ':)'\n    switch (l1)\n    {\n    case 55:                        // ':)'\n      shift(55);                    // ':)'\n      break;\n    case 44:                        // '(:'\n      shift(44);                    // '(:'\n      break;\n    case 32:                        // CommentContents\n      shift(32);                    // CommentContents\n      break;\n    default:\n      shift(35);                    // EOF\n    }\n    eventHandler.endNonterminal(\"Comment\", e0);\n  };\n\n  this.parse_CommentDoc = function()\n  {\n    eventHandler.startNonterminal(\"CommentDoc\", e0);\n    lookahead1(6);                  // DocTag | DocCommentContents | EOF | '(:' | ':)'\n    switch (l1)\n    {\n    case 33:                        // DocTag\n      shift(33);                    // DocTag\n      break;\n    case 34:                        // DocCommentContents\n      shift(34);                    // DocCommentContents\n      break;\n    case 55:                        // ':)'\n      shift(55);                    // ':)'\n      break;\n    case 44:                        // '(:'\n      shift(44);                    // '(:'\n      break;\n    default:\n      shift(35);                    // EOF\n    }\n    eventHandler.endNonterminal(\"CommentDoc\", e0);\n  };\n\n  this.parse_QuotString = function()\n  {\n    eventHandler.startNonterminal(\"QuotString\", e0);\n    lookahead1(5);                  // JSONChar | JSONCharRef | JSONPredefinedCharRef | EOF | '\"'\n    switch (l1)\n    {\n    case 3:                         // JSONPredefinedCharRef\n      shift(3);                     // JSONPredefinedCharRef\n      break;\n    case 2:                         // JSONCharRef\n      shift(2);                     // JSONCharRef\n      break;\n    case 1:                         // JSONChar\n      shift(1);                     // JSONChar\n      break;\n    case 37:                        // '\"'\n      shift(37);                    // '\"'\n      break;\n    default:\n      shift(35);                    // EOF\n    }\n    eventHandler.endNonterminal(\"QuotString\", e0);\n  };\n\n  this.parse_AposString = function()\n  {\n    eventHandler.startNonterminal(\"AposString\", e0);\n    lookahead1(7);                  // PredefinedEntityRef | EscapeApos | AposChar | CharRef | EOF | \"'\"\n    switch (l1)\n    {\n    case 21:                        // PredefinedEntityRef\n      shift(21);                    // PredefinedEntityRef\n      break;\n    case 31:                        // CharRef\n      shift(31);                    // CharRef\n      break;\n    case 23:                        // EscapeApos\n      shift(23);                    // EscapeApos\n      break;\n    case 24:                        // AposChar\n      shift(24);                    // AposChar\n      break;\n    case 41:                        // \"'\"\n      shift(41);                    // \"'\"\n      break;\n    default:\n      shift(35);                    // EOF\n    }\n    eventHandler.endNonterminal(\"AposString\", e0);\n  };\n\n  this.parse_Prefix = function()\n  {\n    eventHandler.startNonterminal(\"Prefix\", e0);\n    lookahead1W(13);                // NCName^Token | S^WS | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' |\n    whitespace();\n    parse_NCName();\n    eventHandler.endNonterminal(\"Prefix\", e0);\n  };\n\n  this.parse__EQName = function()\n  {\n    eventHandler.startNonterminal(\"_EQName\", e0);\n    lookahead1W(12);                // EQName^Token | S^WS | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' |\n    whitespace();\n    parse_EQName();\n    eventHandler.endNonterminal(\"_EQName\", e0);\n  };\n\n  function parse_EQName()\n  {\n    eventHandler.startNonterminal(\"EQName\", e0);\n    switch (l1)\n    {\n    case 80:                        // 'attribute'\n      shift(80);                    // 'attribute'\n      break;\n    case 94:                        // 'comment'\n      shift(94);                    // 'comment'\n      break;\n    case 118:                       // 'document-node'\n      shift(118);                   // 'document-node'\n      break;\n    case 119:                       // 'element'\n      shift(119);                   // 'element'\n      break;\n    case 122:                       // 'empty-sequence'\n      shift(122);                   // 'empty-sequence'\n      break;\n    case 143:                       // 'function'\n      shift(143);                   // 'function'\n      break;\n    case 150:                       // 'if'\n      shift(150);                   // 'if'\n      break;\n    case 163:                       // 'item'\n      shift(163);                   // 'item'\n      break;\n    case 183:                       // 'namespace-node'\n      shift(183);                   // 'namespace-node'\n      break;\n    case 189:                       // 'node'\n      shift(189);                   // 'node'\n      break;\n    case 214:                       // 'processing-instruction'\n      shift(214);                   // 'processing-instruction'\n      break;\n    case 224:                       // 'schema-attribute'\n      shift(224);                   // 'schema-attribute'\n      break;\n    case 225:                       // 'schema-element'\n      shift(225);                   // 'schema-element'\n      break;\n    case 241:                       // 'switch'\n      shift(241);                   // 'switch'\n      break;\n    case 242:                       // 'text'\n      shift(242);                   // 'text'\n      break;\n    case 251:                       // 'typeswitch'\n      shift(251);                   // 'typeswitch'\n      break;\n    default:\n      parse_FunctionName();\n    }\n    eventHandler.endNonterminal(\"EQName\", e0);\n  }\n\n  function parse_FunctionName()\n  {\n    eventHandler.startNonterminal(\"FunctionName\", e0);\n    switch (l1)\n    {\n    case 17:                        // EQName^Token\n      shift(17);                    // EQName^Token\n      break;\n    case 68:                        // 'after'\n      shift(68);                    // 'after'\n      break;\n    case 71:                        // 'ancestor'\n      shift(71);                    // 'ancestor'\n      break;\n    case 72:                        // 'ancestor-or-self'\n      shift(72);                    // 'ancestor-or-self'\n      break;\n    case 73:                        // 'and'\n      shift(73);                    // 'and'\n      break;\n    case 77:                        // 'as'\n      shift(77);                    // 'as'\n      break;\n    case 78:                        // 'ascending'\n      shift(78);                    // 'ascending'\n      break;\n    case 82:                        // 'before'\n      shift(82);                    // 'before'\n      break;\n    case 86:                        // 'case'\n      shift(86);                    // 'case'\n      break;\n    case 87:                        // 'cast'\n      shift(87);                    // 'cast'\n      break;\n    case 88:                        // 'castable'\n      shift(88);                    // 'castable'\n      break;\n    case 91:                        // 'child'\n      shift(91);                    // 'child'\n      break;\n    case 92:                        // 'collation'\n      shift(92);                    // 'collation'\n      break;\n    case 101:                       // 'copy'\n      shift(101);                   // 'copy'\n      break;\n    case 103:                       // 'count'\n      shift(103);                   // 'count'\n      break;\n    case 106:                       // 'declare'\n      shift(106);                   // 'declare'\n      break;\n    case 107:                       // 'default'\n      shift(107);                   // 'default'\n      break;\n    case 108:                       // 'delete'\n      shift(108);                   // 'delete'\n      break;\n    case 109:                       // 'descendant'\n      shift(109);                   // 'descendant'\n      break;\n    case 110:                       // 'descendant-or-self'\n      shift(110);                   // 'descendant-or-self'\n      break;\n    case 111:                       // 'descending'\n      shift(111);                   // 'descending'\n      break;\n    case 116:                       // 'div'\n      shift(116);                   // 'div'\n      break;\n    case 117:                       // 'document'\n      shift(117);                   // 'document'\n      break;\n    case 120:                       // 'else'\n      shift(120);                   // 'else'\n      break;\n    case 121:                       // 'empty'\n      shift(121);                   // 'empty'\n      break;\n    case 124:                       // 'end'\n      shift(124);                   // 'end'\n      break;\n    case 126:                       // 'eq'\n      shift(126);                   // 'eq'\n      break;\n    case 127:                       // 'every'\n      shift(127);                   // 'every'\n      break;\n    case 129:                       // 'except'\n      shift(129);                   // 'except'\n      break;\n    case 132:                       // 'first'\n      shift(132);                   // 'first'\n      break;\n    case 133:                       // 'following'\n      shift(133);                   // 'following'\n      break;\n    case 134:                       // 'following-sibling'\n      shift(134);                   // 'following-sibling'\n      break;\n    case 135:                       // 'for'\n      shift(135);                   // 'for'\n      break;\n    case 144:                       // 'ge'\n      shift(144);                   // 'ge'\n      break;\n    case 146:                       // 'group'\n      shift(146);                   // 'group'\n      break;\n    case 148:                       // 'gt'\n      shift(148);                   // 'gt'\n      break;\n    case 149:                       // 'idiv'\n      shift(149);                   // 'idiv'\n      break;\n    case 151:                       // 'import'\n      shift(151);                   // 'import'\n      break;\n    case 157:                       // 'insert'\n      shift(157);                   // 'insert'\n      break;\n    case 158:                       // 'instance'\n      shift(158);                   // 'instance'\n      break;\n    case 160:                       // 'intersect'\n      shift(160);                   // 'intersect'\n      break;\n    case 161:                       // 'into'\n      shift(161);                   // 'into'\n      break;\n    case 162:                       // 'is'\n      shift(162);                   // 'is'\n      break;\n    case 168:                       // 'last'\n      shift(168);                   // 'last'\n      break;\n    case 170:                       // 'le'\n      shift(170);                   // 'le'\n      break;\n    case 172:                       // 'let'\n      shift(172);                   // 'let'\n      break;\n    case 176:                       // 'lt'\n      shift(176);                   // 'lt'\n      break;\n    case 178:                       // 'mod'\n      shift(178);                   // 'mod'\n      break;\n    case 179:                       // 'modify'\n      shift(179);                   // 'modify'\n      break;\n    case 180:                       // 'module'\n      shift(180);                   // 'module'\n      break;\n    case 182:                       // 'namespace'\n      shift(182);                   // 'namespace'\n      break;\n    case 184:                       // 'ne'\n      shift(184);                   // 'ne'\n      break;\n    case 196:                       // 'only'\n      shift(196);                   // 'only'\n      break;\n    case 198:                       // 'or'\n      shift(198);                   // 'or'\n      break;\n    case 199:                       // 'order'\n      shift(199);                   // 'order'\n      break;\n    case 200:                       // 'ordered'\n      shift(200);                   // 'ordered'\n      break;\n    case 204:                       // 'parent'\n      shift(204);                   // 'parent'\n      break;\n    case 210:                       // 'preceding'\n      shift(210);                   // 'preceding'\n      break;\n    case 211:                       // 'preceding-sibling'\n      shift(211);                   // 'preceding-sibling'\n      break;\n    case 216:                       // 'rename'\n      shift(216);                   // 'rename'\n      break;\n    case 217:                       // 'replace'\n      shift(217);                   // 'replace'\n      break;\n    case 218:                       // 'return'\n      shift(218);                   // 'return'\n      break;\n    case 222:                       // 'satisfies'\n      shift(222);                   // 'satisfies'\n      break;\n    case 227:                       // 'self'\n      shift(227);                   // 'self'\n      break;\n    case 233:                       // 'some'\n      shift(233);                   // 'some'\n      break;\n    case 234:                       // 'stable'\n      shift(234);                   // 'stable'\n      break;\n    case 235:                       // 'start'\n      shift(235);                   // 'start'\n      break;\n    case 246:                       // 'to'\n      shift(246);                   // 'to'\n      break;\n    case 247:                       // 'treat'\n      shift(247);                   // 'treat'\n      break;\n    case 248:                       // 'try'\n      shift(248);                   // 'try'\n      break;\n    case 252:                       // 'union'\n      shift(252);                   // 'union'\n      break;\n    case 254:                       // 'unordered'\n      shift(254);                   // 'unordered'\n      break;\n    case 258:                       // 'validate'\n      shift(258);                   // 'validate'\n      break;\n    case 264:                       // 'where'\n      shift(264);                   // 'where'\n      break;\n    case 268:                       // 'with'\n      shift(268);                   // 'with'\n      break;\n    case 272:                       // 'xquery'\n      shift(272);                   // 'xquery'\n      break;\n    case 70:                        // 'allowing'\n      shift(70);                    // 'allowing'\n      break;\n    case 79:                        // 'at'\n      shift(79);                    // 'at'\n      break;\n    case 81:                        // 'base-uri'\n      shift(81);                    // 'base-uri'\n      break;\n    case 83:                        // 'boundary-space'\n      shift(83);                    // 'boundary-space'\n      break;\n    case 84:                        // 'break'\n      shift(84);                    // 'break'\n      break;\n    case 89:                        // 'catch'\n      shift(89);                    // 'catch'\n      break;\n    case 96:                        // 'construction'\n      shift(96);                    // 'construction'\n      break;\n    case 99:                        // 'context'\n      shift(99);                    // 'context'\n      break;\n    case 100:                       // 'continue'\n      shift(100);                   // 'continue'\n      break;\n    case 102:                       // 'copy-namespaces'\n      shift(102);                   // 'copy-namespaces'\n      break;\n    case 104:                       // 'decimal-format'\n      shift(104);                   // 'decimal-format'\n      break;\n    case 123:                       // 'encoding'\n      shift(123);                   // 'encoding'\n      break;\n    case 130:                       // 'exit'\n      shift(130);                   // 'exit'\n      break;\n    case 131:                       // 'external'\n      shift(131);                   // 'external'\n      break;\n    case 139:                       // 'ft-option'\n      shift(139);                   // 'ft-option'\n      break;\n    case 152:                       // 'in'\n      shift(152);                   // 'in'\n      break;\n    case 153:                       // 'index'\n      shift(153);                   // 'index'\n      break;\n    case 159:                       // 'integrity'\n      shift(159);                   // 'integrity'\n      break;\n    case 169:                       // 'lax'\n      shift(169);                   // 'lax'\n      break;\n    case 190:                       // 'nodes'\n      shift(190);                   // 'nodes'\n      break;\n    case 197:                       // 'option'\n      shift(197);                   // 'option'\n      break;\n    case 201:                       // 'ordering'\n      shift(201);                   // 'ordering'\n      break;\n    case 220:                       // 'revalidation'\n      shift(220);                   // 'revalidation'\n      break;\n    case 223:                       // 'schema'\n      shift(223);                   // 'schema'\n      break;\n    case 226:                       // 'score'\n      shift(226);                   // 'score'\n      break;\n    case 232:                       // 'sliding'\n      shift(232);                   // 'sliding'\n      break;\n    case 238:                       // 'strict'\n      shift(238);                   // 'strict'\n      break;\n    case 249:                       // 'tumbling'\n      shift(249);                   // 'tumbling'\n      break;\n    case 250:                       // 'type'\n      shift(250);                   // 'type'\n      break;\n    case 255:                       // 'updating'\n      shift(255);                   // 'updating'\n      break;\n    case 259:                       // 'value'\n      shift(259);                   // 'value'\n      break;\n    case 260:                       // 'variable'\n      shift(260);                   // 'variable'\n      break;\n    case 261:                       // 'version'\n      shift(261);                   // 'version'\n      break;\n    case 265:                       // 'while'\n      shift(265);                   // 'while'\n      break;\n    case 95:                        // 'constraint'\n      shift(95);                    // 'constraint'\n      break;\n    case 174:                       // 'loop'\n      shift(174);                   // 'loop'\n      break;\n    default:\n      shift(219);                   // 'returning'\n    }\n    eventHandler.endNonterminal(\"FunctionName\", e0);\n  }\n\n  function parse_NCName()\n  {\n    eventHandler.startNonterminal(\"NCName\", e0);\n    switch (l1)\n    {\n    case 28:                        // NCName^Token\n      shift(28);                    // NCName^Token\n      break;\n    case 68:                        // 'after'\n      shift(68);                    // 'after'\n      break;\n    case 73:                        // 'and'\n      shift(73);                    // 'and'\n      break;\n    case 77:                        // 'as'\n      shift(77);                    // 'as'\n      break;\n    case 78:                        // 'ascending'\n      shift(78);                    // 'ascending'\n      break;\n    case 82:                        // 'before'\n      shift(82);                    // 'before'\n      break;\n    case 86:                        // 'case'\n      shift(86);                    // 'case'\n      break;\n    case 87:                        // 'cast'\n      shift(87);                    // 'cast'\n      break;\n    case 88:                        // 'castable'\n      shift(88);                    // 'castable'\n      break;\n    case 92:                        // 'collation'\n      shift(92);                    // 'collation'\n      break;\n    case 103:                       // 'count'\n      shift(103);                   // 'count'\n      break;\n    case 107:                       // 'default'\n      shift(107);                   // 'default'\n      break;\n    case 111:                       // 'descending'\n      shift(111);                   // 'descending'\n      break;\n    case 116:                       // 'div'\n      shift(116);                   // 'div'\n      break;\n    case 120:                       // 'else'\n      shift(120);                   // 'else'\n      break;\n    case 121:                       // 'empty'\n      shift(121);                   // 'empty'\n      break;\n    case 124:                       // 'end'\n      shift(124);                   // 'end'\n      break;\n    case 126:                       // 'eq'\n      shift(126);                   // 'eq'\n      break;\n    case 129:                       // 'except'\n      shift(129);                   // 'except'\n      break;\n    case 135:                       // 'for'\n      shift(135);                   // 'for'\n      break;\n    case 144:                       // 'ge'\n      shift(144);                   // 'ge'\n      break;\n    case 146:                       // 'group'\n      shift(146);                   // 'group'\n      break;\n    case 148:                       // 'gt'\n      shift(148);                   // 'gt'\n      break;\n    case 149:                       // 'idiv'\n      shift(149);                   // 'idiv'\n      break;\n    case 158:                       // 'instance'\n      shift(158);                   // 'instance'\n      break;\n    case 160:                       // 'intersect'\n      shift(160);                   // 'intersect'\n      break;\n    case 161:                       // 'into'\n      shift(161);                   // 'into'\n      break;\n    case 162:                       // 'is'\n      shift(162);                   // 'is'\n      break;\n    case 170:                       // 'le'\n      shift(170);                   // 'le'\n      break;\n    case 172:                       // 'let'\n      shift(172);                   // 'let'\n      break;\n    case 176:                       // 'lt'\n      shift(176);                   // 'lt'\n      break;\n    case 178:                       // 'mod'\n      shift(178);                   // 'mod'\n      break;\n    case 179:                       // 'modify'\n      shift(179);                   // 'modify'\n      break;\n    case 184:                       // 'ne'\n      shift(184);                   // 'ne'\n      break;\n    case 196:                       // 'only'\n      shift(196);                   // 'only'\n      break;\n    case 198:                       // 'or'\n      shift(198);                   // 'or'\n      break;\n    case 199:                       // 'order'\n      shift(199);                   // 'order'\n      break;\n    case 218:                       // 'return'\n      shift(218);                   // 'return'\n      break;\n    case 222:                       // 'satisfies'\n      shift(222);                   // 'satisfies'\n      break;\n    case 234:                       // 'stable'\n      shift(234);                   // 'stable'\n      break;\n    case 235:                       // 'start'\n      shift(235);                   // 'start'\n      break;\n    case 246:                       // 'to'\n      shift(246);                   // 'to'\n      break;\n    case 247:                       // 'treat'\n      shift(247);                   // 'treat'\n      break;\n    case 252:                       // 'union'\n      shift(252);                   // 'union'\n      break;\n    case 264:                       // 'where'\n      shift(264);                   // 'where'\n      break;\n    case 268:                       // 'with'\n      shift(268);                   // 'with'\n      break;\n    case 71:                        // 'ancestor'\n      shift(71);                    // 'ancestor'\n      break;\n    case 72:                        // 'ancestor-or-self'\n      shift(72);                    // 'ancestor-or-self'\n      break;\n    case 80:                        // 'attribute'\n      shift(80);                    // 'attribute'\n      break;\n    case 91:                        // 'child'\n      shift(91);                    // 'child'\n      break;\n    case 94:                        // 'comment'\n      shift(94);                    // 'comment'\n      break;\n    case 101:                       // 'copy'\n      shift(101);                   // 'copy'\n      break;\n    case 106:                       // 'declare'\n      shift(106);                   // 'declare'\n      break;\n    case 108:                       // 'delete'\n      shift(108);                   // 'delete'\n      break;\n    case 109:                       // 'descendant'\n      shift(109);                   // 'descendant'\n      break;\n    case 110:                       // 'descendant-or-self'\n      shift(110);                   // 'descendant-or-self'\n      break;\n    case 117:                       // 'document'\n      shift(117);                   // 'document'\n      break;\n    case 118:                       // 'document-node'\n      shift(118);                   // 'document-node'\n      break;\n    case 119:                       // 'element'\n      shift(119);                   // 'element'\n      break;\n    case 122:                       // 'empty-sequence'\n      shift(122);                   // 'empty-sequence'\n      break;\n    case 127:                       // 'every'\n      shift(127);                   // 'every'\n      break;\n    case 132:                       // 'first'\n      shift(132);                   // 'first'\n      break;\n    case 133:                       // 'following'\n      shift(133);                   // 'following'\n      break;\n    case 134:                       // 'following-sibling'\n      shift(134);                   // 'following-sibling'\n      break;\n    case 143:                       // 'function'\n      shift(143);                   // 'function'\n      break;\n    case 150:                       // 'if'\n      shift(150);                   // 'if'\n      break;\n    case 151:                       // 'import'\n      shift(151);                   // 'import'\n      break;\n    case 157:                       // 'insert'\n      shift(157);                   // 'insert'\n      break;\n    case 163:                       // 'item'\n      shift(163);                   // 'item'\n      break;\n    case 168:                       // 'last'\n      shift(168);                   // 'last'\n      break;\n    case 180:                       // 'module'\n      shift(180);                   // 'module'\n      break;\n    case 182:                       // 'namespace'\n      shift(182);                   // 'namespace'\n      break;\n    case 183:                       // 'namespace-node'\n      shift(183);                   // 'namespace-node'\n      break;\n    case 189:                       // 'node'\n      shift(189);                   // 'node'\n      break;\n    case 200:                       // 'ordered'\n      shift(200);                   // 'ordered'\n      break;\n    case 204:                       // 'parent'\n      shift(204);                   // 'parent'\n      break;\n    case 210:                       // 'preceding'\n      shift(210);                   // 'preceding'\n      break;\n    case 211:                       // 'preceding-sibling'\n      shift(211);                   // 'preceding-sibling'\n      break;\n    case 214:                       // 'processing-instruction'\n      shift(214);                   // 'processing-instruction'\n      break;\n    case 216:                       // 'rename'\n      shift(216);                   // 'rename'\n      break;\n    case 217:                       // 'replace'\n      shift(217);                   // 'replace'\n      break;\n    case 224:                       // 'schema-attribute'\n      shift(224);                   // 'schema-attribute'\n      break;\n    case 225:                       // 'schema-element'\n      shift(225);                   // 'schema-element'\n      break;\n    case 227:                       // 'self'\n      shift(227);                   // 'self'\n      break;\n    case 233:                       // 'some'\n      shift(233);                   // 'some'\n      break;\n    case 241:                       // 'switch'\n      shift(241);                   // 'switch'\n      break;\n    case 242:                       // 'text'\n      shift(242);                   // 'text'\n      break;\n    case 248:                       // 'try'\n      shift(248);                   // 'try'\n      break;\n    case 251:                       // 'typeswitch'\n      shift(251);                   // 'typeswitch'\n      break;\n    case 254:                       // 'unordered'\n      shift(254);                   // 'unordered'\n      break;\n    case 258:                       // 'validate'\n      shift(258);                   // 'validate'\n      break;\n    case 260:                       // 'variable'\n      shift(260);                   // 'variable'\n      break;\n    case 272:                       // 'xquery'\n      shift(272);                   // 'xquery'\n      break;\n    case 70:                        // 'allowing'\n      shift(70);                    // 'allowing'\n      break;\n    case 79:                        // 'at'\n      shift(79);                    // 'at'\n      break;\n    case 81:                        // 'base-uri'\n      shift(81);                    // 'base-uri'\n      break;\n    case 83:                        // 'boundary-space'\n      shift(83);                    // 'boundary-space'\n      break;\n    case 84:                        // 'break'\n      shift(84);                    // 'break'\n      break;\n    case 89:                        // 'catch'\n      shift(89);                    // 'catch'\n      break;\n    case 96:                        // 'construction'\n      shift(96);                    // 'construction'\n      break;\n    case 99:                        // 'context'\n      shift(99);                    // 'context'\n      break;\n    case 100:                       // 'continue'\n      shift(100);                   // 'continue'\n      break;\n    case 102:                       // 'copy-namespaces'\n      shift(102);                   // 'copy-namespaces'\n      break;\n    case 104:                       // 'decimal-format'\n      shift(104);                   // 'decimal-format'\n      break;\n    case 123:                       // 'encoding'\n      shift(123);                   // 'encoding'\n      break;\n    case 130:                       // 'exit'\n      shift(130);                   // 'exit'\n      break;\n    case 131:                       // 'external'\n      shift(131);                   // 'external'\n      break;\n    case 139:                       // 'ft-option'\n      shift(139);                   // 'ft-option'\n      break;\n    case 152:                       // 'in'\n      shift(152);                   // 'in'\n      break;\n    case 153:                       // 'index'\n      shift(153);                   // 'index'\n      break;\n    case 159:                       // 'integrity'\n      shift(159);                   // 'integrity'\n      break;\n    case 169:                       // 'lax'\n      shift(169);                   // 'lax'\n      break;\n    case 190:                       // 'nodes'\n      shift(190);                   // 'nodes'\n      break;\n    case 197:                       // 'option'\n      shift(197);                   // 'option'\n      break;\n    case 201:                       // 'ordering'\n      shift(201);                   // 'ordering'\n      break;\n    case 220:                       // 'revalidation'\n      shift(220);                   // 'revalidation'\n      break;\n    case 223:                       // 'schema'\n      shift(223);                   // 'schema'\n      break;\n    case 226:                       // 'score'\n      shift(226);                   // 'score'\n      break;\n    case 232:                       // 'sliding'\n      shift(232);                   // 'sliding'\n      break;\n    case 238:                       // 'strict'\n      shift(238);                   // 'strict'\n      break;\n    case 249:                       // 'tumbling'\n      shift(249);                   // 'tumbling'\n      break;\n    case 250:                       // 'type'\n      shift(250);                   // 'type'\n      break;\n    case 255:                       // 'updating'\n      shift(255);                   // 'updating'\n      break;\n    case 259:                       // 'value'\n      shift(259);                   // 'value'\n      break;\n    case 261:                       // 'version'\n      shift(261);                   // 'version'\n      break;\n    case 265:                       // 'while'\n      shift(265);                   // 'while'\n      break;\n    case 95:                        // 'constraint'\n      shift(95);                    // 'constraint'\n      break;\n    case 174:                       // 'loop'\n      shift(174);                   // 'loop'\n      break;\n    default:\n      shift(219);                   // 'returning'\n    }\n    eventHandler.endNonterminal(\"NCName\", e0);\n  }\n\n  function shift(t)\n  {\n    if (l1 == t)\n    {\n      whitespace();\n      eventHandler.terminal(JSONiqTokenizer.TOKEN[l1], b1, e1 > size ? size : e1);\n      b0 = b1; e0 = e1; l1 = 0;\n    }\n    else\n    {\n      error(b1, e1, 0, l1, t);\n    }\n  }\n\n  function whitespace()\n  {\n    if (e0 != b1)\n    {\n      b0 = e0;\n      e0 = b1;\n      eventHandler.whitespace(b0, e0);\n    }\n  }\n\n  function matchW(set)\n  {\n    var code;\n    for (;;)\n    {\n      code = match(set);\n      if (code != 30)               // S^WS\n      {\n        break;\n      }\n    }\n    return code;\n  }\n\n  function lookahead1W(set)\n  {\n    if (l1 == 0)\n    {\n      l1 = matchW(set);\n      b1 = begin;\n      e1 = end;\n    }\n  }\n\n  function lookahead1(set)\n  {\n    if (l1 == 0)\n    {\n      l1 = match(set);\n      b1 = begin;\n      e1 = end;\n    }\n  }\n\n  function error(b, e, s, l, t)\n  {\n    throw new self.ParseException(b, e, s, l, t);\n  }\n\n  var lk, b0, e0;\n  var l1, b1, e1;\n  var eventHandler;\n\n  var input;\n  var size;\n  var begin;\n  var end;\n\n  function match(tokenSetId)\n  {\n    var nonbmp = false;\n    begin = end;\n    var current = end;\n    var result = JSONiqTokenizer.INITIAL[tokenSetId];\n    var state = 0;\n\n    for (var code = result & 4095; code != 0; )\n    {\n      var charclass;\n      var c0 = current < size ? input.charCodeAt(current) : 0;\n      ++current;\n      if (c0 < 0x80)\n      {\n        charclass = JSONiqTokenizer.MAP0[c0];\n      }\n      else if (c0 < 0xd800)\n      {\n        var c1 = c0 >> 4;\n        charclass = JSONiqTokenizer.MAP1[(c0 & 15) + JSONiqTokenizer.MAP1[(c1 & 31) + JSONiqTokenizer.MAP1[c1 >> 5]]];\n      }\n      else\n      {\n        if (c0 < 0xdc00)\n        {\n          var c1 = current < size ? input.charCodeAt(current) : 0;\n          if (c1 >= 0xdc00 && c1 < 0xe000)\n          {\n            ++current;\n            c0 = ((c0 & 0x3ff) << 10) + (c1 & 0x3ff) + 0x10000;\n            nonbmp = true;\n          }\n        }\n        var lo = 0, hi = 5;\n        for (var m = 3; ; m = (hi + lo) >> 1)\n        {\n          if (JSONiqTokenizer.MAP2[m] > c0) hi = m - 1;\n          else if (JSONiqTokenizer.MAP2[6 + m] < c0) lo = m + 1;\n          else {charclass = JSONiqTokenizer.MAP2[12 + m]; break;}\n          if (lo > hi) {charclass = 0; break;}\n        }\n      }\n\n      state = code;\n      var i0 = (charclass << 12) + code - 1;\n      code = JSONiqTokenizer.TRANSITION[(i0 & 15) + JSONiqTokenizer.TRANSITION[i0 >> 4]];\n\n      if (code > 4095)\n      {\n        result = code;\n        code &= 4095;\n        end = current;\n      }\n    }\n\n    result >>= 12;\n    if (result == 0)\n    {\n      end = current - 1;\n      var c1 = end < size ? input.charCodeAt(end) : 0;\n      if (c1 >= 0xdc00 && c1 < 0xe000) --end;\n      return error(begin, end, state, -1, -1);\n    }\n\n    if (nonbmp)\n    {\n      for (var i = result >> 9; i > 0; --i)\n      {\n        --end;\n        var c1 = end < size ? input.charCodeAt(end) : 0;\n        if (c1 >= 0xdc00 && c1 < 0xe000) --end;\n      }\n    }\n    else\n    {\n      end -= result >> 9;\n    }\n\n    return (result & 511) - 1;\n  }\n}\n\nJSONiqTokenizer.getTokenSet = function(tokenSetId)\n{\n  var set = [];\n  var s = tokenSetId < 0 ? - tokenSetId : INITIAL[tokenSetId] & 4095;\n  for (var i = 0; i < 279; i += 32)\n  {\n    var j = i;\n    var i0 = (i >> 5) * 2066 + s - 1;\n    var i1 = i0 >> 2;\n    var i2 = i1 >> 2;\n    var f = JSONiqTokenizer.EXPECTED[(i0 & 3) + JSONiqTokenizer.EXPECTED[(i1 & 3) + JSONiqTokenizer.EXPECTED[(i2 & 3) + JSONiqTokenizer.EXPECTED[i2 >> 2]]]];\n    for ( ; f != 0; f >>>= 1, ++j)\n    {\n      if ((f & 1) != 0)\n      {\n        set.push(JSONiqTokenizer.TOKEN[j]);\n      }\n    }\n  }\n  return set;\n};\n\nJSONiqTokenizer.MAP0 =\n[ 67, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 27, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 31, 31, 33, 31, 31, 31, 31, 31, 31, 34, 35, 36, 37, 31, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 31, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 31, 62, 63, 64, 65, 37\n];\n\nJSONiqTokenizer.MAP1 =\n[ 108, 124, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 156, 181, 181, 181, 181, 181, 214, 215, 213, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 247, 261, 277, 293, 309, 347, 363, 379, 416, 416, 416, 408, 331, 323, 331, 323, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 433, 433, 433, 433, 433, 433, 433, 316, 331, 331, 331, 331, 331, 331, 331, 331, 394, 416, 416, 417, 415, 416, 416, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 330, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 416, 67, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 27, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 37, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 31, 31, 33, 31, 31, 31, 31, 31, 31, 34, 35, 36, 37, 31, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 31, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 31, 62, 63, 64, 65, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 31, 31, 37, 37, 37, 37, 37, 37, 37, 66, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66\n];\n\nJSONiqTokenizer.MAP2 =\n[ 57344, 63744, 64976, 65008, 65536, 983040, 63743, 64975, 65007, 65533, 983039, 1114111, 37, 31, 37, 31, 31, 37\n];\n\nJSONiqTokenizer.INITIAL =\n[ 1, 2, 49155, 57348, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15\n];\n\nJSONiqTokenizer.TRANSITION =\n[ 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 17408, 19288, 17439, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 22126, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17672, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 19469, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 36919, 18234, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18419, 18432, 18304, 18448, 18485, 18523, 18553, 18583, 18599, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 18825, 18841, 18871, 18906, 18944, 18960, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19074, 36169, 17439, 36866, 17466, 36890, 36866, 22314, 19105, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 22126, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17672, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 19469, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 36919, 18234, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18419, 18432, 18304, 18448, 18485, 18523, 18553, 18583, 18599, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 18825, 18841, 18871, 18906, 18944, 18960, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22182, 19288, 19121, 36866, 17466, 18345, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19273, 19552, 19304, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19332, 17423, 19363, 36866, 17466, 17537, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 18614, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 19391, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 19427, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36154, 19288, 19457, 36866, 17466, 17740, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22780, 19288, 19457, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22375, 22197, 18469, 36866, 17466, 36890, 36866, 21991, 24018, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 21331, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 19485, 19501, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19537, 22390, 19568, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19596, 19611, 19457, 36866, 17466, 36890, 36866, 18246, 19627, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22242, 20553, 19457, 36866, 17466, 36890, 36866, 18648, 30477, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36472, 19288, 19457, 36866, 17466, 17809, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 21770, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 19643, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 19672, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 20538, 19288, 19457, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 17975, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22345, 19288, 19457, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19726, 19742, 21529, 24035, 23112, 26225, 23511, 27749, 27397, 24035, 34360, 24035, 24036, 23114, 35166, 23114, 23114, 19758, 23511, 35247, 23511, 23511, 28447, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 24254, 19821, 23511, 23511, 23511, 23511, 23512, 19441, 36539, 24035, 24035, 24035, 24035, 19846, 19869, 23114, 23114, 23114, 28618, 32187, 19892, 23511, 23511, 23511, 34585, 20402, 36647, 24035, 24035, 24036, 23114, 33757, 23114, 23114, 23029, 20271, 23511, 27070, 23511, 23511, 30562, 24035, 24035, 29274, 26576, 23114, 23114, 31118, 23036, 29695, 23511, 23511, 32431, 23634, 30821, 24035, 23110, 19913, 23114, 23467, 31261, 23261, 34299, 19932, 24035, 32609, 19965, 35389, 19984, 27689, 19830, 29391, 29337, 20041, 22643, 35619, 33728, 20062, 20121, 20166, 35100, 26145, 20211, 23008, 19876, 20208, 20227, 25670, 20132, 26578, 27685, 20141, 20243, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36094, 19288, 19457, 36866, 17466, 21724, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22735, 19552, 20287, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22750, 19288, 21529, 24035, 23112, 28056, 23511, 29483, 28756, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 20327, 23511, 23511, 23511, 23511, 31156, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 24254, 20371, 23511, 23511, 23511, 23511, 27443, 20395, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 29457, 29700, 23511, 23511, 23511, 23511, 33444, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 28350, 20421, 23511, 23511, 23511, 23511, 25645, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 20447, 20475, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 20499, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 20523, 22257, 20569, 20783, 21715, 17603, 20699, 20837, 20614, 20630, 21149, 20670, 21405, 17486, 17509, 17525, 18373, 19179, 20695, 20716, 20732, 20755, 19194, 18042, 21641, 20592, 20779, 20598, 21412, 17470, 17591, 20896, 17468, 17619, 20799, 20700, 21031, 20744, 20699, 20828, 18075, 21259, 20581, 20853, 18048, 20868, 20884, 17756, 17784, 17800, 17825, 17854, 21171, 21200, 20931, 20947, 21378, 20955, 20971, 18086, 20645, 21002, 20986, 18178, 17960, 18012, 18381, 18064, 29176, 21044, 21438, 21018, 21122, 21393, 21060, 21844, 21094, 20654, 17493, 18150, 18166, 18214, 25967, 20763, 21799, 21110, 21830, 21138, 21246, 21301, 18336, 18361, 21165, 21187, 20812, 21216, 21232, 21287, 21317, 18553, 21347, 21363, 21428, 21454, 21271, 21483, 21499, 21515, 21575, 21467, 18712, 21591, 21633, 21078, 18189, 18198, 20679, 21657, 21701, 21074, 21687, 21740, 21756, 21786, 21815, 21860, 21876, 21892, 21946, 21962, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36457, 19288, 19457, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 36813, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 21981, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 22151, 22007, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 27898, 17884, 18890, 17906, 17928, 22042, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 22070, 22112, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 22142, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36109, 19288, 18469, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22167, 19288, 19457, 36866, 17466, 17768, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22227, 36487, 22273, 36866, 17466, 36890, 36866, 19316, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18749, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 22304, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 19580, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22330, 19089, 19457, 36866, 17466, 18721, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22765, 19347, 19457, 36866, 17466, 36890, 36866, 18114, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36079, 19288, 21605, 24035, 23112, 32618, 23511, 29483, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22420, 23511, 23511, 23511, 23511, 29116, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 22468, 23511, 23511, 23511, 23511, 27443, 22493, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 28618, 29700, 23511, 23511, 23511, 23511, 34541, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 22839, 23511, 23511, 23511, 23511, 25645, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 32683, 22516, 23511, 23511, 23511, 22540, 24035, 24035, 23110, 23114, 23114, 20499, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36079, 19288, 21605, 24035, 23112, 32618, 23511, 29483, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22420, 23511, 23511, 23511, 23511, 29116, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 22468, 23511, 23511, 23511, 23511, 27443, 22493, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 28618, 29700, 23511, 23511, 23511, 23511, 34564, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 22839, 23511, 23511, 23511, 23511, 25645, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 32683, 22516, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 20499, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36079, 19288, 21605, 24035, 23112, 32618, 23511, 29483, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22420, 23511, 23511, 23511, 23511, 29908, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 22468, 23511, 23511, 23511, 23511, 27443, 22493, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 28618, 29700, 23511, 23511, 23511, 23511, 34564, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 22839, 23511, 23511, 23511, 23511, 25645, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 32683, 22516, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 20499, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36079, 19288, 21605, 24035, 23112, 32618, 23511, 29483, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22420, 23511, 23511, 23511, 23511, 29116, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 22468, 23511, 23511, 23511, 23511, 27443, 22561, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 28618, 29700, 23511, 23511, 23511, 23511, 34564, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 22839, 23511, 23511, 23511, 23511, 25645, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 32683, 22516, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 20499, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36079, 19288, 21605, 24035, 23112, 23837, 23511, 29483, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22584, 23511, 23511, 23511, 23511, 29116, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 22468, 23511, 23511, 23511, 23511, 27443, 22493, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 28618, 29700, 23511, 23511, 23511, 23511, 34564, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 22839, 23511, 23511, 23511, 23511, 25645, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 32683, 22516, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 20499, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36079, 19288, 21605, 24035, 23112, 32618, 23511, 31507, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22420, 23511, 23511, 23511, 23511, 28306, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 22468, 23511, 23511, 23511, 23511, 23512, 24694, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 28618, 29700, 23511, 23511, 23511, 23511, 34585, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 20271, 23511, 23511, 23511, 23511, 30562, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23036, 29695, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 23467, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36442, 19288, 21605, 24035, 23112, 28137, 23511, 31507, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22420, 23511, 23511, 23511, 23511, 28306, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 22468, 23511, 23511, 23511, 23511, 23512, 24694, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 28618, 29700, 23511, 23511, 23511, 23511, 34585, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 20271, 23511, 23511, 23511, 23511, 30562, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23036, 29695, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 23467, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36079, 19288, 21605, 24035, 23112, 32618, 23511, 31507, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22420, 23511, 23511, 23511, 23511, 28306, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 22468, 23511, 23511, 23511, 23511, 23512, 24694, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 28618, 29700, 23511, 23511, 23511, 23511, 34585, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 20271, 23511, 23511, 23511, 23511, 31568, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23036, 29695, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 23467, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22690, 19288, 19457, 36866, 17466, 36890, 36866, 21991, 27584, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 22659, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22360, 19552, 19457, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22675, 22811, 19457, 36866, 17466, 36890, 36866, 19133, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 22827, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36139, 19288, 19457, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36064, 19288, 22865, 22881, 32031, 22897, 22913, 22956, 29939, 24035, 24035, 24035, 23003, 23114, 23114, 23114, 23024, 22420, 23511, 23511, 23511, 23052, 29116, 23073, 29268, 24035, 25563, 26915, 23106, 23131, 23114, 23114, 23159, 23181, 23197, 23248, 23511, 23511, 23282, 23305, 22493, 32364, 24035, 33472, 30138, 26325, 31770, 33508, 27345, 33667, 23114, 23321, 23473, 23351, 35793, 36576, 23511, 23375, 22500, 24145, 24035, 29197, 20192, 24533, 23440, 23114, 19017, 23459, 22839, 23489, 23510, 23511, 33563, 23528, 32076, 25389, 24035, 26576, 23561, 23583, 23114, 32683, 22516, 23622, 23655, 23511, 23634, 35456, 37144, 23110, 23683, 34153, 20499, 32513, 25824, 23705, 24035, 24035, 23111, 23114, 19874, 27078, 33263, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 20507, 32241, 20150, 31862, 27464, 35108, 23727, 23007, 35895, 34953, 26578, 27685, 20141, 24569, 31691, 19787, 33967, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36427, 19552, 21605, 24035, 23112, 32618, 23511, 29483, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22420, 23511, 23511, 23511, 23511, 29116, 19803, 24035, 24035, 24035, 27027, 26576, 23114, 23114, 23114, 31471, 23756, 22468, 23511, 23511, 23511, 34687, 23772, 22493, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 28618, 29700, 23511, 23511, 23511, 23511, 34564, 23788, 24035, 24035, 24035, 21559, 23828, 23114, 23114, 23114, 25086, 22839, 23853, 23511, 23511, 23511, 23876, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 32683, 22516, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 20499, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 31761, 23909, 23953, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36049, 19288, 21605, 30825, 23112, 23987, 23511, 24003, 31001, 27617, 24034, 24035, 24036, 24052, 24089, 23114, 23114, 22420, 24109, 24168, 23511, 23511, 29116, 24188, 27609, 20017, 29516, 24035, 26576, 24222, 19968, 23114, 24252, 33811, 22468, 24270, 33587, 23511, 24320, 27443, 22493, 24035, 24035, 24035, 24035, 24339, 23113, 23114, 23114, 23114, 28128, 28618, 29700, 23511, 23511, 23511, 28276, 34564, 20402, 24035, 24035, 32929, 24036, 23114, 23114, 23114, 24357, 23029, 22839, 23511, 23511, 23511, 24377, 25645, 24035, 34112, 24035, 26576, 23114, 26643, 23114, 32683, 22516, 23511, 25638, 23511, 23711, 24035, 24395, 27809, 23114, 24414, 20499, 24432, 30917, 23628, 24035, 30680, 23111, 23114, 30233, 27078, 25748, 24452, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 24475, 19829, 26577, 26597, 26154, 24519, 24556, 24596, 23007, 20046, 20132, 26578, 24634, 20141, 24569, 31691, 24679, 24727, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36412, 19288, 21605, 19943, 34861, 32618, 26027, 29483, 32016, 32050, 36233, 24776, 35574, 24801, 24819, 32671, 31289, 22420, 24868, 24886, 20087, 26849, 29116, 19803, 24035, 24035, 24035, 36228, 26576, 23114, 23114, 23114, 24981, 33811, 22468, 23511, 23511, 23511, 29028, 27443, 22493, 24923, 27965, 24035, 24035, 32797, 24946, 23443, 23114, 23114, 29636, 24997, 22849, 28252, 23511, 23511, 23511, 25042, 25110, 24035, 24035, 34085, 24036, 25133, 23114, 23114, 25152, 23029, 22839, 25169, 23511, 36764, 23511, 25645, 30403, 24035, 25186, 26576, 31806, 24093, 25212, 32683, 22516, 32713, 26245, 34293, 23634, 24035, 24035, 23110, 23114, 23114, 20499, 23511, 23261, 23628, 24035, 32406, 23111, 23114, 28676, 30944, 27689, 25234, 24035, 23112, 19872, 37063, 23266, 24036, 23114, 30243, 20379, 26100, 29218, 20211, 30105, 25257, 25284, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 24834, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36034, 19288, 21671, 25314, 25072, 25330, 25346, 25362, 29939, 29951, 35288, 29984, 23812, 27216, 25405, 25424, 30456, 22584, 26292, 25461, 25480, 31592, 29116, 25516, 34963, 25545, 27007, 25579, 33937, 25614, 25661, 25686, 34872, 25702, 25718, 25734, 25769, 25795, 25811, 25840, 22493, 26533, 25856, 24035, 25876, 30763, 27481, 25909, 23114, 28987, 25936, 25954, 29700, 25983, 23511, 31412, 26043, 26063, 22568, 29241, 29592, 26116, 31216, 35383, 26170, 34783, 26194, 26221, 22839, 26241, 26261, 22477, 26283, 26308, 27306, 31035, 24655, 26576, 29854, 33386, 26341, 32683, 22516, 32153, 30926, 26361, 19996, 26381, 35463, 26397, 26424, 34646, 26478, 35605, 31386, 26494, 35567, 31964, 22940, 23689, 25218, 30309, 32289, 19830, 33605, 23112, 32109, 27733, 27084, 24496, 35886, 35221, 26525, 36602, 26549, 26558, 26574, 26594, 26613, 26629, 26666, 26700, 26578, 27685, 23740, 24285, 31691, 26733, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36397, 19552, 18991, 25887, 28117, 32618, 26776, 29483, 29939, 26802, 24035, 24035, 24036, 28664, 23114, 23114, 23114, 22420, 30297, 23511, 23511, 23511, 29116, 19803, 24035, 24035, 24035, 25559, 26576, 23114, 23114, 23114, 30525, 33811, 22468, 23511, 23511, 23511, 28725, 27443, 22493, 24035, 24035, 27249, 24035, 24035, 23113, 23114, 23114, 26827, 23114, 28618, 29700, 23511, 23511, 26845, 23511, 34564, 20402, 24035, 24035, 26979, 24036, 23114, 23114, 23114, 24974, 23029, 22839, 23511, 23511, 23511, 26865, 25645, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 32683, 22516, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 20499, 23511, 23261, 23628, 33305, 24035, 25598, 23114, 19874, 34253, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 26886, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 26931, 24569, 26439, 26947, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36019, 19288, 26995, 24035, 23112, 32618, 23511, 31507, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22420, 23511, 23511, 23511, 23511, 28306, 27043, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 27061, 23511, 23511, 23511, 23511, 23512, 24694, 24035, 24035, 29978, 24035, 24035, 23113, 23114, 33114, 23114, 23114, 30010, 29700, 23511, 35913, 23511, 23511, 34585, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 20271, 23511, 23511, 23511, 23511, 30562, 24035, 24035, 27155, 26576, 23114, 23114, 30447, 23036, 29695, 23511, 23511, 30935, 20099, 24152, 25529, 27100, 34461, 27121, 22625, 29156, 26009, 27137, 30422, 31903, 31655, 28870, 27171, 32439, 31731, 19830, 27232, 22612, 27265, 26786, 25494, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 20342, 27288, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36079, 19288, 21605, 27322, 27339, 28020, 27361, 27382, 29939, 24035, 24035, 32581, 24036, 23114, 23114, 23114, 27425, 22420, 23511, 23511, 23511, 27442, 28306, 19803, 24035, 24035, 24035, 24035, 26710, 23114, 23114, 23114, 23114, 32261, 22468, 23511, 23511, 23511, 23511, 35719, 24694, 29510, 24035, 24035, 24035, 24035, 26717, 23114, 23114, 23114, 23114, 28618, 32217, 23511, 23511, 23511, 23511, 34585, 20402, 24035, 24035, 24035, 27459, 23114, 23114, 23114, 36252, 23029, 20271, 23511, 23511, 23511, 28840, 30562, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23036, 29695, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 23467, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 27480, 34483, 28401, 29761, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36382, 19288, 21605, 27497, 27517, 28504, 28898, 27569, 29939, 29401, 27600, 27323, 27633, 19025, 27662, 23114, 27705, 22420, 20483, 27721, 23511, 27765, 28306, 19803, 23540, 24035, 24610, 27781, 27805, 26650, 23114, 28573, 32990, 25920, 22468, 26870, 23511, 26684, 34262, 34737, 25057, 34622, 24035, 24035, 23971, 24206, 27825, 27847, 23114, 23114, 27865, 27885, 35766, 27914, 23511, 23511, 32766, 32844, 27934, 28795, 26909, 27955, 26092, 27988, 25445, 28005, 28036, 28052, 21965, 23511, 32196, 19897, 28072, 28102, 36534, 21541, 23801, 28153, 28180, 28197, 28221, 23036, 32695, 28251, 28268, 28292, 23667, 34825, 23930, 24580, 28322, 28344, 31627, 28366, 25996, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 35625, 33477, 33359, 27674, 28393, 33992, 24036, 23114, 30243, 19829, 28417, 28433, 28463, 23008, 19876, 20208, 23007, 20046, 20132, 28489, 28520, 20141, 24569, 31691, 19787, 28550, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36079, 19288, 21605, 24035, 23112, 32618, 23511, 31507, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22420, 23511, 23511, 23511, 23511, 28306, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 22468, 23511, 23511, 23511, 23511, 23512, 24694, 28589, 24035, 24035, 24035, 24035, 28608, 23114, 23114, 23114, 23114, 28618, 20431, 23511, 23511, 23511, 23511, 34585, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 20271, 23511, 23511, 23511, 23511, 30562, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23036, 29695, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 23467, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36004, 19288, 28634, 31951, 28565, 28702, 28718, 28741, 32544, 20175, 28792, 32086, 20105, 28811, 29059, 29862, 28856, 22420, 28886, 30354, 23359, 28922, 28306, 28952, 23888, 26320, 36506, 24035, 29331, 28968, 36609, 23114, 29003, 31661, 27061, 30649, 27366, 23511, 29023, 27918, 24694, 24035, 24035, 23893, 33094, 30867, 23113, 23114, 23114, 29044, 34184, 30010, 29700, 23511, 23511, 29081, 29102, 34585, 20402, 27789, 24035, 24035, 24036, 23114, 29132, 23114, 23114, 23029, 20271, 23511, 29153, 23511, 23511, 30562, 30174, 24035, 24035, 27409, 25438, 23114, 23114, 29172, 36668, 31332, 23511, 23511, 29192, 30144, 24035, 23110, 30203, 23114, 23467, 31544, 23261, 23628, 24035, 22545, 23111, 23114, 29213, 27078, 27689, 29234, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 29257, 23008, 19876, 20208, 28768, 29290, 29320, 34776, 29353, 20141, 22435, 29378, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36367, 19288, 21605, 34616, 19006, 32618, 31497, 31507, 36216, 20184, 24035, 34393, 29424, 34668, 23114, 34900, 29447, 22420, 30360, 23511, 37089, 29473, 28306, 19803, 29499, 24398, 24035, 24035, 26576, 31799, 29532, 29550, 23114, 33811, 22468, 32298, 29571, 31184, 23511, 23512, 37127, 36628, 29589, 24035, 24135, 24035, 23113, 29608, 23114, 27831, 29634, 28618, 29652, 30037, 23511, 24172, 29671, 34585, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 29555, 29690, 23511, 23511, 23511, 23511, 30562, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23036, 29695, 23511, 23511, 23511, 23634, 29719, 24035, 23110, 29738, 23114, 23467, 34035, 29756, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 29777, 34364, 28181, 30243, 29799, 31920, 27272, 27185, 23008, 31126, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29828, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 35989, 19552, 19687, 35139, 28649, 29878, 29894, 29924, 29939, 23224, 23085, 31969, 24036, 35173, 24752, 24803, 23114, 22420, 31190, 30318, 24870, 23511, 28306, 29967, 23967, 24035, 24035, 24035, 26576, 30000, 23114, 23114, 23114, 33811, 22468, 30026, 23511, 23511, 23511, 23512, 26078, 24035, 24035, 24035, 30053, 37137, 30071, 23114, 23114, 33368, 25136, 28618, 30723, 23511, 23511, 37096, 31356, 34585, 20402, 30092, 30127, 30160, 24036, 35740, 30219, 24960, 30259, 23029, 20271, 34042, 30285, 30342, 30376, 23289, 30055, 30400, 30419, 30438, 32640, 33532, 33514, 30472, 18792, 26267, 24323, 23057, 30493, 23639, 20008, 30196, 33188, 30517, 20075, 23511, 30541, 23628, 30578, 33928, 28776, 30594, 19874, 30610, 30637, 19830, 30677, 27646, 19872, 25779, 23266, 23232, 35016, 30243, 30696, 29812, 30712, 30746, 27206, 30779, 30807, 23007, 33395, 20132, 26578, 27685, 31703, 22928, 31691, 19787, 31079, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36352, 19288, 23335, 30841, 26131, 30888, 30904, 30986, 29939, 24035, 24704, 31017, 20025, 23114, 26178, 31051, 31095, 22420, 23511, 22524, 31142, 31172, 28534, 31206, 35497, 25196, 24035, 28592, 24503, 23114, 31239, 31285, 23114, 31305, 31321, 31355, 31372, 31407, 23511, 30556, 24694, 24035, 27501, 19805, 24035, 24035, 23113, 23114, 31428, 24066, 23114, 28618, 29700, 23511, 31837, 18809, 23511, 34585, 31448, 24035, 24035, 24035, 23090, 23114, 23114, 23114, 23114, 31619, 35038, 23511, 23511, 23511, 23511, 33714, 24035, 33085, 24035, 29431, 23114, 31467, 23114, 23143, 31487, 23511, 31523, 23511, 35195, 36783, 24035, 30111, 23567, 23114, 23467, 31543, 31560, 23628, 24035, 24035, 23111, 23114, 19874, 30953, 31584, 34508, 24035, 31608, 26345, 37055, 23266, 31643, 31677, 31719, 31747, 31786, 31822, 26898, 23008, 19876, 31859, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 31878, 31936, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 35974, 19288, 21605, 27972, 35663, 31985, 29655, 32001, 36715, 24785, 25893, 23545, 31912, 19853, 19916, 25938, 24540, 22420, 31843, 29674, 29573, 32735, 28936, 19803, 24035, 24035, 32047, 24035, 26576, 23114, 23114, 27544, 23114, 33811, 22468, 23511, 23511, 32161, 23511, 23512, 32066, 24035, 33313, 24035, 24035, 24035, 23113, 27426, 32102, 23114, 23114, 28618, 32125, 23511, 32144, 23511, 23511, 33569, 20402, 24035, 27045, 24035, 24036, 23114, 23114, 28328, 23114, 30076, 32177, 23511, 23511, 30384, 23511, 30562, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23595, 32212, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 23467, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 22635, 25753, 32233, 32257, 32277, 19829, 26577, 26597, 20211, 23008, 19876, 32322, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36079, 19288, 32352, 35285, 32380, 34196, 33016, 30661, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22420, 23511, 23511, 23511, 23511, 28306, 32404, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 32422, 23511, 23511, 23511, 23511, 23512, 24694, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 30269, 29700, 23511, 23511, 23511, 23511, 34585, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 20271, 23511, 23511, 23511, 23511, 30562, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23036, 29695, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 23467, 23511, 23261, 23628, 19949, 24035, 23111, 32455, 19874, 31269, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36337, 19552, 19209, 21617, 26509, 32475, 32491, 32529, 29939, 24035, 32578, 25241, 32597, 23114, 32634, 29007, 32656, 22420, 23511, 32729, 26365, 32751, 28306, 32788, 32882, 24035, 24035, 32813, 36727, 23114, 33182, 23114, 27553, 33235, 32829, 23511, 32706, 23511, 28906, 28377, 26962, 32881, 32904, 32898, 32920, 24035, 32953, 23114, 32977, 26408, 23114, 28164, 33006, 23511, 33039, 35774, 23511, 32306, 20402, 33076, 30872, 24035, 24036, 25408, 33110, 28979, 23114, 23029, 20271, 35835, 33130, 33054, 23511, 30562, 33148, 24035, 24035, 33167, 23114, 23114, 33775, 23036, 20459, 23511, 23511, 25464, 24646, 24035, 24035, 22446, 23114, 23114, 25627, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 31391, 33204, 33220, 33251, 33287, 26577, 26597, 20211, 33329, 19876, 33345, 23007, 20046, 20132, 26578, 27685, 28473, 22599, 31691, 33411, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 35959, 19288, 21907, 27243, 29843, 32618, 33427, 31507, 29939, 33460, 34090, 24035, 24036, 33493, 24416, 33530, 23114, 22420, 33548, 24379, 33585, 23511, 28306, 19803, 33603, 24202, 24035, 24035, 25593, 33749, 28205, 23114, 23114, 32388, 22468, 33853, 33060, 23511, 23511, 31339, 33621, 24035, 24035, 34397, 24618, 30757, 33663, 23114, 23114, 33683, 35684, 28618, 26678, 23511, 23511, 32506, 33699, 34585, 20402, 24035, 32562, 26973, 24036, 23114, 23114, 33377, 33773, 23029, 20271, 23511, 23511, 30621, 23511, 23860, 24035, 33791, 21553, 26576, 36558, 23114, 33809, 23036, 32857, 26047, 23511, 33827, 23634, 24035, 24035, 23110, 23114, 23114, 31252, 23511, 33845, 23628, 24035, 24459, 23111, 23114, 33869, 27078, 30791, 29783, 24035, 24742, 19872, 33895, 23266, 26462, 19710, 33879, 33919, 26577, 26597, 24123, 24930, 21930, 20208, 30501, 33953, 25268, 20252, 33983, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36322, 19552, 23390, 33634, 35154, 34008, 34024, 34058, 35544, 34106, 34128, 26811, 33151, 34144, 34169, 34212, 23114, 34228, 34244, 34278, 34315, 23511, 34331, 34347, 34380, 34413, 24035, 24663, 26576, 34429, 34453, 34477, 29534, 33811, 22468, 34499, 34524, 34557, 25170, 34580, 35436, 23937, 34601, 24035, 24341, 26453, 23113, 34638, 34662, 23114, 24236, 28618, 34684, 34703, 34729, 23511, 35352, 34753, 34799, 24035, 34815, 32558, 34848, 34888, 35814, 34923, 23165, 29137, 23606, 30326, 30730, 34939, 33023, 30562, 36848, 34979, 24035, 24847, 34996, 23114, 23114, 35032, 29695, 35054, 23511, 23511, 35091, 33296, 35124, 24296, 28235, 24361, 36276, 32772, 35067, 35189, 27301, 30855, 24852, 22452, 35211, 35237, 35316, 25500, 35270, 23405, 24304, 35304, 29362, 24036, 23114, 35332, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 35368, 28823, 23920, 32336, 35405, 20141, 24569, 31691, 35421, 35479, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 35944, 22795, 21605, 33647, 35877, 35513, 30962, 35529, 34073, 35557, 24035, 24035, 20405, 31107, 23114, 23114, 23114, 35590, 34713, 23511, 23511, 23511, 35641, 19803, 29408, 32937, 25298, 24035, 35657, 23115, 27849, 24760, 35679, 26205, 22468, 23511, 35700, 24907, 24901, 35075, 31893, 34980, 24035, 24035, 24035, 24035, 23113, 35009, 23114, 23114, 23114, 28618, 35716, 30970, 23511, 23511, 23511, 34585, 23215, 24035, 24035, 24035, 24036, 35735, 23114, 23114, 23114, 27105, 35756, 35790, 23511, 23511, 23511, 35254, 35446, 24035, 24035, 31223, 35809, 23114, 23114, 23036, 36825, 35830, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 23467, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 31031, 20355, 19872, 33903, 23266, 24036, 23114, 28686, 19829, 26577, 26597, 20211, 23008, 23424, 20208, 24711, 31065, 24486, 26578, 27685, 20141, 19773, 35851, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36307, 19288, 21605, 35494, 19702, 32618, 33437, 31507, 29939, 25117, 24035, 27939, 24036, 27869, 23114, 26829, 23114, 22420, 23494, 23511, 33132, 23511, 28306, 19803, 24035, 34832, 24035, 24035, 26576, 23114, 25153, 23114, 23114, 33811, 22468, 23511, 23511, 35911, 23511, 23512, 24694, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 28618, 29700, 23511, 23511, 23511, 23511, 34585, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 20271, 23511, 23511, 23511, 23511, 30562, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23036, 29695, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 23467, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 35929, 19288, 21605, 25860, 23112, 36185, 23511, 36201, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22420, 23511, 23511, 23511, 23511, 28306, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 22468, 23511, 23511, 23511, 23511, 23512, 26748, 24035, 24035, 24035, 24035, 24035, 36249, 23114, 23114, 23114, 23114, 28618, 28835, 23511, 23511, 23511, 23511, 34585, 20402, 24035, 27151, 24035, 26760, 23114, 27989, 23114, 23114, 36268, 20271, 23511, 24436, 23511, 29703, 30562, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23036, 29695, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 23467, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36292, 19288, 21605, 36503, 21922, 32618, 34534, 31507, 36522, 24035, 33793, 24035, 35864, 23114, 23114, 36555, 23417, 22420, 23511, 23511, 36574, 26020, 28306, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 22468, 23511, 23511, 23511, 23511, 23512, 36592, 24035, 24035, 36625, 24035, 24035, 23113, 23114, 32961, 23114, 23114, 29618, 29700, 23511, 29086, 23511, 23511, 34585, 20402, 36644, 24035, 24035, 24036, 29740, 23114, 23114, 23114, 29065, 36663, 31527, 23511, 23511, 23511, 30562, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23036, 29695, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 23467, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36079, 19288, 21605, 31451, 23112, 36684, 23511, 36700, 29939, 24035, 24035, 24035, 30185, 23114, 23114, 23114, 27526, 22420, 23511, 23511, 23511, 32865, 28306, 19803, 36743, 24035, 27017, 24035, 26576, 27535, 23114, 31432, 23114, 33811, 22468, 33271, 23511, 32128, 23511, 23512, 24694, 24035, 27196, 24035, 24035, 24035, 23113, 32459, 23114, 23114, 23114, 28618, 29700, 33829, 36762, 23511, 23511, 34585, 20402, 24035, 36746, 24035, 29722, 23114, 23114, 34437, 23114, 34907, 20271, 23511, 23511, 18801, 23511, 23206, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23036, 29695, 23511, 23511, 23511, 36837, 24035, 24035, 33739, 23114, 23114, 25094, 23511, 23261, 23628, 24035, 36780, 23111, 24073, 19874, 27078, 35344, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22720, 19288, 36799, 36866, 17466, 36890, 36864, 21991, 22211, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 17631, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 36883, 36906, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22705, 19288, 19457, 36866, 17466, 36890, 36866, 19375, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36124, 19288, 36951, 36866, 17466, 36890, 36866, 21991, 22404, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18567, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 36979, 36995, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36139, 19288, 19457, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18027, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36139, 19288, 21529, 24035, 23112, 23033, 23511, 31507, 25377, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 37040, 23511, 23511, 23511, 23511, 28086, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 24254, 37079, 23511, 23511, 23511, 23511, 23512, 34766, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 28618, 29700, 23511, 23511, 23511, 23511, 34585, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 20271, 23511, 23511, 23511, 23511, 30562, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23036, 29695, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 23467, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 37112, 37160, 18469, 36866, 17466, 36890, 36866, 17656, 37174, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18537, 22984, 17553, 17572, 22285, 18780, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 36883, 36906, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 127011, 110630, 114730, 106539, 127011, 127011, 127011, 53264, 18, 18, 0, 0, 57366, 0, 24, 24, 24, 0, 28, 28, 28, 28, 102432, 0, 0, 127011, 0, 2220032, 110630, 0, 0, 0, 114730, 106539, 0, 2170880, 2170880, 2170880, 2170880, 0, 0, 0, 2170880, 2170880, 2170880, 3002368, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2576384, 2215936, 2215936, 2215936, 2416640, 2424832, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2543616, 2215936, 2215936, 2215936, 2215936, 2215936, 2629632, 2215936, 2617344, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2691072, 2215936, 2707456, 2215936, 2715648, 2215936, 2723840, 2764800, 2215936, 2215936, 2797568, 2215936, 2822144, 2215936, 2215936, 2854912, 2215936, 2215936, 2215936, 2912256, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 0, 0, 0, 180224, 0, 0, 2174976, 0, 0, 2170880, 2617344, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2691072, 2170880, 2707456, 2170880, 2715648, 2170880, 2723840, 2764800, 2170880, 2170880, 2797568, 2170880, 2170880, 2797568, 2170880, 2822144, 2170880, 2170880, 2854912, 2170880, 2170880, 2170880, 2912256, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2215936, 2215936, 2215936, 2215936, 2609152, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2654208, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 0, 0, 0, 184599, 280, 0, 2174976, 0, 0, 2215936, 3117056, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 0, 544, 0, 546, 0, 0, 2179072, 0, 0, 0, 552, 0, 0, 2170880, 2170880, 2170880, 3117056, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 0, 0, 0, 2158592, 2158592, 2232320, 2232320, 0, 2240512, 2240512, 0, 0, 0, 644, 0, 0, 0, 0, 0, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3129344, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2215936, 2215936, 2215936, 2400256, 2215936, 2215936, 2215936, 2215936, 2711552, 2170880, 2170880, 2170880, 2170880, 2170880, 2760704, 2768896, 2789376, 2813952, 2170880, 2170880, 2170880, 2875392, 2904064, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2453504, 2457600, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 0, 167936, 0, 0, 0, 0, 2174976, 0, 0, 2215936, 2215936, 2514944, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2592768, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 32768, 0, 0, 0, 0, 0, 2174976, 32768, 0, 2633728, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2711552, 2215936, 2215936, 2215936, 2215936, 2215936, 2760704, 2768896, 2789376, 2813952, 2215936, 2215936, 2215936, 2875392, 2904064, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 0, 0, 0, 0, 0, 0, 2174976, 0, 65819, 2215936, 2215936, 3031040, 2215936, 3055616, 2215936, 2215936, 2215936, 2215936, 3092480, 2215936, 2215936, 3125248, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 3002368, 2215936, 2215936, 2170880, 2170880, 2494464, 2170880, 2170880, 0, 0, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 3198976, 2215936, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 0, 0, 0, 2379776, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2445312, 2170880, 2465792, 2473984, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2523136, 2170880, 2170880, 2641920, 2170880, 2170880, 2170880, 2699264, 2170880, 2727936, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2879488, 2170880, 2916352, 2170880, 2170880, 2170880, 2879488, 2170880, 2916352, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3026944, 2170880, 2170880, 3063808, 2170880, 2170880, 3112960, 2170880, 2170880, 3133440, 2170880, 2170880, 3112960, 2170880, 2170880, 3133440, 2170880, 2170880, 2170880, 3162112, 2170880, 2170880, 3182592, 3186688, 2170880, 2379776, 2215936, 2523136, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2596864, 2215936, 2621440, 2215936, 2215936, 2641920, 2215936, 2215936, 0, 0, 0, 0, 0, 0, 2179072, 548, 0, 0, 0, 0, 287, 2170880, 0, 2170880, 2170880, 2170880, 2400256, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3117056, 2170880, 2170880, 2170880, 2170880, 2215936, 2215936, 2699264, 2215936, 2727936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2879488, 2215936, 2916352, 2215936, 2215936, 0, 0, 0, 0, 188416, 0, 2179072, 0, 0, 0, 0, 0, 287, 2170880, 0, 2171019, 2171019, 2171019, 2400395, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 3031179, 2171019, 3055755, 2171019, 2171019, 2215936, 3133440, 2215936, 2215936, 2215936, 3162112, 2215936, 2215936, 3182592, 3186688, 2215936, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2523275, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2597003, 2171019, 2621579, 2170880, 2170880, 2170880, 3162112, 2170880, 2170880, 3182592, 3186688, 2170880, 0, 0, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 0, 53264, 0, 18, 18, 24, 24, 0, 4337664, 28, 2170880, 2170880, 2170880, 2629632, 2170880, 2170880, 2170880, 2170880, 2719744, 2744320, 2170880, 2170880, 2170880, 2834432, 2838528, 2170880, 2908160, 2170880, 2170880, 2936832, 2215936, 2215936, 2215936, 2215936, 2719744, 2744320, 2215936, 2215936, 2215936, 2834432, 2838528, 2215936, 2908160, 2215936, 2215936, 2936832, 2215936, 2215936, 2985984, 2215936, 2994176, 2215936, 2215936, 3014656, 2215936, 3059712, 3076096, 3088384, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2445312, 2215936, 2465792, 2473984, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2171166, 2171166, 2171166, 2171166, 2171166, 0, 0, 0, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171019, 2171019, 2494603, 2171019, 2171019, 2215936, 2215936, 2215936, 3215360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2379776, 2170880, 2170880, 2170880, 2170880, 2985984, 2170880, 2994176, 2170880, 2170880, 3016168, 2170880, 3059712, 3076096, 3088384, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 0, 53264, 0, 18, 18, 124, 124, 0, 128, 128, 2170880, 2170880, 2170880, 3215360, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2486272, 2170880, 2170880, 2506752, 2170880, 2170880, 2170880, 2535424, 2539520, 2170880, 2170880, 2588672, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2920448, 2170880, 2170880, 2170880, 2990080, 2170880, 2170880, 2170880, 2170880, 3051520, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3170304, 0, 2387968, 2392064, 2170880, 2170880, 2433024, 2170880, 2170880, 2170880, 3170304, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2486272, 2215936, 2215936, 2506752, 2215936, 2215936, 2215936, 2535424, 2539520, 2215936, 2215936, 2588672, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 0, 0, 0, 0, 0, 0, 2174976, 136, 0, 2215936, 2215936, 2920448, 2215936, 2215936, 2215936, 2990080, 2215936, 2215936, 2215936, 2215936, 3051520, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 3108864, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 3026944, 2215936, 2215936, 3063808, 2215936, 2215936, 3112960, 2215936, 2215936, 2215936, 3170304, 0, 0, 0, 0, 0, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2453504, 2457600, 2170880, 2170880, 2170880, 2486272, 2170880, 2170880, 2506752, 2170880, 2170880, 2170880, 2537049, 2539520, 2170880, 2170880, 2588672, 2170880, 2170880, 2170880, 1508, 2170880, 2170880, 2170880, 1512, 2170880, 2920448, 2170880, 2170880, 2170880, 2990080, 2170880, 2170880, 2170880, 2461696, 2170880, 2170880, 2170880, 2510848, 2170880, 2170880, 2170880, 2170880, 2580480, 2170880, 2605056, 2637824, 2170880, 2170880, 18, 0, 0, 0, 0, 0, 0, 0, 0, 2220032, 0, 0, 0, 0, 0, 0, 0, 2170880, 2170880, 2170880, 2170880, 2686976, 2748416, 2170880, 2170880, 2170880, 2924544, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3121152, 2170880, 2170880, 3145728, 3158016, 3166208, 2170880, 2420736, 2428928, 2170880, 2478080, 2170880, 2170880, 2170880, 2170880, 0, 0, 2170880, 2170880, 2170880, 2170880, 2646016, 2670592, 0, 0, 3145728, 3158016, 3166208, 2387968, 2392064, 2215936, 2215936, 2433024, 2215936, 2461696, 2215936, 2215936, 2215936, 2510848, 2215936, 2215936, 0, 0, 0, 0, 0, 0, 2179072, 0, 0, 0, 0, 0, 0, 2170880, 2215936, 2215936, 2580480, 2215936, 2605056, 2637824, 2215936, 2215936, 2686976, 2748416, 2215936, 2215936, 2215936, 2924544, 2215936, 2215936, 0, 0, 0, 0, 0, 0, 2179072, 0, 0, 0, 0, 0, 286, 2170880, 2215936, 2215936, 2215936, 2215936, 2215936, 3121152, 2215936, 2215936, 3145728, 3158016, 3166208, 2387968, 2392064, 2170880, 2170880, 2433024, 2170880, 2461696, 2170880, 2170880, 2170880, 2510848, 2170880, 2170880, 1625, 2170880, 2170880, 2580480, 2170880, 2605056, 2637824, 2170880, 647, 2170880, 2170880, 2170880, 2400256, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2576384, 2170880, 2170880, 2170880, 2170880, 2170880, 2609152, 2170880, 2170880, 2686976, 0, 0, 2748416, 2170880, 2170880, 0, 2170880, 2924544, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 0, 53264, 0, 18, 18, 24, 0, 0, 28, 28, 2170880, 3141632, 2215936, 2420736, 2428928, 2215936, 2478080, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2646016, 2670592, 2752512, 2756608, 2846720, 2961408, 2215936, 2998272, 2215936, 3010560, 2215936, 2215936, 2215936, 3141632, 2170880, 2420736, 2428928, 2752512, 2756608, 0, 2846720, 2961408, 2170880, 2998272, 2170880, 3010560, 2170880, 2170880, 2170880, 3141632, 2170880, 2170880, 2490368, 2215936, 2490368, 2215936, 2215936, 2215936, 2547712, 2555904, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 0, 0, 0, 0, 0, 0, 2174976, 245760, 0, 3129344, 2170880, 2170880, 2490368, 2170880, 2170880, 2170880, 0, 0, 2547712, 2555904, 2170880, 2170880, 2170880, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2220032, 0, 0, 45056, 0, 2584576, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2170880, 2170880, 2170880, 2170880, 0, 0, 0, 2170880, 2170880, 2158592, 0, 0, 0, 0, 0, 0, 0, 0, 2220032, 0, 0, 0, 0, 0, 0, 0, 0, 1482, 97, 97, 97, 97, 97, 97, 97, 1354, 97, 97, 97, 97, 97, 97, 97, 97, 1148, 97, 97, 97, 97, 97, 97, 97, 2584576, 2170880, 2170880, 1512, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2441216, 2170880, 2527232, 2170880, 2600960, 2170880, 2850816, 2170880, 2170880, 2170880, 3022848, 2215936, 2441216, 2215936, 2527232, 2215936, 2600960, 2215936, 2850816, 2215936, 2215936, 0, 0, 0, 0, 0, 0, 2179072, 0, 0, 0, 0, 0, 287, 2170880, 2215936, 3022848, 2170880, 2441216, 2170880, 2527232, 0, 0, 2170880, 2600960, 2170880, 0, 2850816, 2170880, 2170880, 2170880, 2170880, 2170880, 2523136, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2596864, 2170880, 2621440, 2170880, 2170880, 2641920, 2170880, 2170880, 2170880, 3022848, 2170880, 2519040, 2170880, 2170880, 2170880, 2170880, 2170880, 2215936, 2519040, 2215936, 2215936, 2215936, 2215936, 2215936, 2170880, 2170880, 2170880, 2453504, 2457600, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2514944, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2592768, 2170880, 2170880, 2519040, 0, 2024, 2170880, 2170880, 0, 2170880, 2170880, 2170880, 2396160, 2170880, 2170880, 2170880, 2170880, 3018752, 2396160, 2215936, 2215936, 2215936, 2215936, 3018752, 2396160, 0, 2024, 2170880, 2170880, 2170880, 2170880, 3018752, 2170880, 2650112, 2965504, 2170880, 2215936, 2650112, 2965504, 2215936, 0, 0, 2170880, 2650112, 2965504, 2170880, 2551808, 2170880, 2551808, 2215936, 0, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 41098, 45, 45, 141, 45, 45, 67, 67, 67, 67, 67, 224, 67, 67, 238, 67, 67, 67, 67, 67, 67, 67, 1288, 67, 67, 67, 67, 67, 67, 67, 67, 67, 469, 67, 67, 67, 67, 67, 67, 0, 2551808, 2170880, 2170880, 2215936, 0, 2170880, 2170880, 2215936, 0, 2170880, 2170880, 2215936, 0, 2170880, 2977792, 2977792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53264, 18, 49172, 57366, 24, 8192, 29, 102432, 127011, 110630, 114730, 106539, 127011, 127011, 127011, 53264, 18, 18, 49172, 0, 0, 0, 24, 24, 24, 0, 28, 28, 28, 28, 102432, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140, 2170880, 2170880, 2170880, 2416640, 0, 0, 0, 0, 2220032, 110630, 0, 0, 0, 114730, 106539, 136, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 0, 53264, 0, 4256099, 4256099, 24, 24, 0, 28, 28, 2170880, 2461696, 2170880, 2170880, 2170880, 2510848, 2170880, 2170880, 0, 2170880, 2170880, 2580480, 2170880, 2605056, 2637824, 2170880, 2170880, 2170880, 2547712, 2555904, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3129344, 2215936, 2215936, 543, 543, 545, 545, 0, 0, 2179072, 0, 550, 551, 551, 0, 287, 2171166, 2171166, 18, 0, 0, 0, 0, 0, 0, 0, 0, 2220032, 0, 0, 645, 0, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 41098, 45, 45, 45, 149, 2584576, 2170880, 2170880, 0, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2441216, 2170880, 2527232, 2170880, 2600960, 2519040, 0, 0, 2170880, 2170880, 0, 2170880, 2170880, 2170880, 2396160, 2170880, 2170880, 2170880, 2170880, 3018752, 2396160, 2215936, 2215936, 2215936, 2215936, 3018752, 2396160, 0, 0, 2170880, 2170880, 2170880, 2170880, 3018752, 2170880, 2650112, 2965504, 53264, 18, 49172, 57366, 24, 155648, 28, 102432, 155648, 155687, 114730, 106539, 0, 0, 155648, 53264, 18, 18, 49172, 0, 57366, 0, 24, 24, 24, 0, 28, 28, 28, 28, 102432, 0, 0, 0, 0, 2220032, 0, 94208, 0, 0, 114730, 106539, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 0, 53264, 208896, 18, 278528, 24, 24, 0, 28, 28, 53264, 18, 159765, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 0, 53264, 18, 18, 49172, 0, 57366, 0, 24, 24, 24, 0, 28, 139394, 28, 28, 102432, 131, 0, 0, 0, 2220032, 110630, 0, 0, 0, 114730, 106539, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 32768, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 0, 546, 0, 0, 2183168, 0, 0, 552, 832, 2170880, 2170880, 2170880, 2400256, 2170880, 2170880, 2170880, 2170880, 2170880, 2609152, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2654208, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 3198976, 2215936, 0, 1084, 0, 1088, 0, 1092, 0, 0, 0, 0, 0, 41606, 0, 0, 0, 0, 45, 45, 45, 45, 45, 937, 0, 0, 0, 0, 2220032, 110630, 0, 0, 0, 114730, 106539, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3198976, 2170880, 0, 0, 644, 0, 0, 0, 2215936, 3117056, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 0, 826, 0, 828, 0, 0, 2183168, 0, 0, 830, 0, 2170880, 2170880, 2170880, 2400256, 2170880, 2170880, 2170880, 2170880, 2592768, 2170880, 2170880, 2170880, 2170880, 2633728, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2711552, 2170880, 2170880, 2170880, 2170880, 2170880, 2760704, 53264, 18, 49172, 57366, 24, 8192, 28, 172066, 172032, 110630, 172066, 106539, 0, 0, 172032, 53264, 18, 18, 49172, 0, 57366, 0, 24, 24, 24, 16384, 28, 28, 28, 28, 102432, 0, 98304, 0, 0, 2220032, 110630, 0, 0, 0, 0, 106539, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3198976, 2170880, 0, 0, 45056, 0, 0, 0, 53264, 18, 49172, 57366, 25, 8192, 30, 102432, 0, 110630, 114730, 106539, 0, 0, 176219, 53264, 18, 18, 49172, 0, 57366, 0, 124, 124, 124, 0, 128, 128, 128, 128, 102432, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140, 2170880, 2170880, 2170880, 2416640, 0, 546, 0, 0, 2183168, 0, 65536, 552, 0, 2170880, 2170880, 2170880, 2400256, 2170880, 2170880, 2170880, 2170880, 2646016, 2670592, 2752512, 2756608, 2846720, 2961408, 2170880, 2998272, 2170880, 3010560, 2170880, 2170880, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 3198976, 2215936, 0, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 41098, 45, 45, 143, 45, 45, 67, 67, 67, 67, 67, 227, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1824, 67, 1826, 67, 67, 67, 67, 17, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 32768, 120, 121, 18, 18, 49172, 0, 57366, 0, 24, 24, 24, 0, 28, 28, 28, 28, 102432, 67, 67, 37139, 37139, 24853, 24853, 0, 0, 2179072, 548, 0, 65820, 65820, 0, 287, 97, 0, 0, 97, 97, 0, 97, 97, 97, 45, 45, 45, 45, 2033, 45, 67, 67, 67, 67, 0, 0, 97, 97, 97, 97, 45, 45, 67, 67, 0, 369, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 978, 0, 546, 70179, 0, 2183168, 0, 0, 552, 0, 97, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 1013, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 473, 67, 67, 67, 67, 483, 67, 67, 1025, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 1119, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1359, 97, 97, 97, 67, 67, 1584, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 497, 67, 67, 1659, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1667, 45, 45, 45, 45, 45, 169, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1668, 45, 45, 45, 45, 67, 67, 1694, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 774, 67, 67, 1713, 97, 97, 97, 97, 97, 97, 97, 0, 97, 97, 1723, 97, 97, 97, 97, 0, 45, 45, 45, 45, 45, 45, 1538, 45, 45, 45, 45, 45, 1559, 45, 45, 1561, 45, 45, 45, 45, 45, 45, 45, 687, 45, 45, 45, 45, 45, 45, 45, 45, 448, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 1771, 1772, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 0, 0, 0, 97, 67, 67, 67, 67, 67, 1821, 67, 67, 67, 67, 67, 67, 1827, 67, 67, 67, 0, 0, 0, 0, 0, 0, 97, 97, 1614, 97, 97, 97, 97, 97, 603, 97, 97, 605, 97, 97, 608, 97, 97, 97, 97, 0, 1532, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 450, 45, 45, 45, 45, 67, 67, 97, 97, 97, 97, 97, 97, 0, 0, 1839, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 97, 1883, 97, 1885, 97, 0, 1888, 0, 97, 97, 0, 97, 97, 1848, 97, 97, 97, 97, 1852, 45, 45, 45, 45, 45, 45, 45, 384, 391, 45, 45, 45, 45, 45, 45, 45, 385, 45, 45, 45, 45, 45, 45, 45, 45, 1237, 45, 45, 45, 45, 45, 45, 67, 0, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 1951, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 1963, 97, 2023, 0, 97, 97, 0, 97, 97, 97, 45, 45, 45, 45, 45, 45, 67, 67, 1994, 67, 1995, 67, 67, 67, 67, 67, 67, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 97, 97, 0, 0, 0, 0, 2220032, 110630, 0, 0, 0, 114730, 106539, 137, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2793472, 2805760, 2170880, 2830336, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3031040, 2170880, 3055616, 2170880, 2170880, 67, 67, 37139, 37139, 24853, 24853, 0, 0, 281, 549, 0, 65820, 65820, 0, 287, 97, 0, 0, 97, 97, 0, 97, 97, 97, 45, 45, 2031, 2032, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1769, 67, 0, 546, 70179, 549, 549, 0, 0, 552, 0, 97, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 1858, 45, 641, 0, 0, 0, 0, 41606, 926, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 456, 67, 0, 0, 0, 1313, 0, 0, 0, 1096, 1319, 0, 0, 0, 0, 97, 97, 97, 97, 97, 97, 97, 97, 1110, 97, 97, 97, 97, 67, 67, 67, 67, 1301, 1476, 0, 0, 0, 0, 1307, 1478, 0, 0, 0, 0, 0, 0, 0, 0, 97, 97, 97, 97, 1486, 97, 1487, 97, 1313, 1480, 0, 0, 0, 0, 1319, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 566, 97, 97, 97, 97, 97, 97, 67, 67, 67, 1476, 0, 1478, 0, 1480, 0, 97, 97, 97, 97, 97, 97, 97, 45, 1853, 45, 1855, 45, 45, 45, 45, 53264, 18, 49172, 57366, 26, 8192, 31, 102432, 0, 110630, 114730, 106539, 0, 0, 225368, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 32768, 53264, 18, 18, 49172, 163840, 57366, 0, 24, 24, 229376, 0, 28, 28, 28, 229376, 102432, 0, 0, 0, 0, 2220167, 110630, 0, 0, 0, 114730, 106539, 0, 2171019, 2171019, 2171019, 2171019, 2592907, 2171019, 2171019, 2171019, 2171019, 2633867, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2654347, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 3117195, 2171019, 2171019, 2171019, 2171019, 2240641, 0, 0, 0, 0, 0, 0, 0, 0, 368, 0, 140, 2171019, 2171019, 2171019, 2416779, 2424971, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2617483, 2171019, 2171019, 2642059, 2171019, 2171019, 2171019, 2699403, 2171019, 2728075, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 3215499, 2215936, 2215936, 2215936, 2215936, 2215936, 2437120, 2215936, 2215936, 2171019, 2822283, 2171019, 2171019, 2855051, 2171019, 2171019, 2171019, 2912395, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 3002507, 2171019, 2171019, 2215936, 2215936, 2494464, 2215936, 2215936, 2215936, 2171166, 2171166, 2416926, 2425118, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2576670, 2171166, 2617630, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2691358, 2171166, 2707742, 2171166, 2715934, 2171166, 2724126, 2765086, 2171166, 2171166, 2797854, 2171166, 2822430, 2171166, 2171166, 2855198, 2171166, 2171166, 2171166, 2912542, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2793758, 2806046, 2171166, 2830622, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 3109150, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2543902, 2171166, 2171166, 2171166, 2171166, 2171166, 2629918, 2793611, 2805899, 2171019, 2830475, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 0, 546, 0, 0, 2183168, 0, 0, 552, 0, 2171166, 2171166, 2171166, 2400542, 2171166, 2171166, 2171166, 0, 2171166, 2171166, 2171166, 0, 2171166, 2920734, 2171166, 2171166, 2171166, 2990366, 2171166, 2171166, 2171166, 2171166, 3117342, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 0, 53264, 0, 18, 18, 4329472, 2232445, 0, 2240641, 4337664, 2711691, 2171019, 2171019, 2171019, 2171019, 2171019, 2760843, 2769035, 2789515, 2814091, 2171019, 2171019, 2171019, 2875531, 2904203, 2171019, 2171019, 3092619, 2171019, 2171019, 3125387, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 3199115, 2171019, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2453504, 2457600, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2793472, 2805760, 2215936, 2830336, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2170880, 2170880, 2170880, 2170880, 2170880, 0, 0, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2494464, 2170880, 2170880, 2171166, 2171166, 2634014, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2711838, 2171166, 2171166, 2171166, 2171166, 2171166, 2760990, 2769182, 2789662, 2814238, 2171166, 2171166, 2171166, 2875678, 2904350, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 3199262, 2171166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2379915, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2445451, 2171019, 2465931, 2474123, 2171019, 2171019, 3113099, 2171019, 2171019, 3133579, 2171019, 2171019, 2171019, 3162251, 2171019, 2171019, 3182731, 3186827, 2171019, 2379776, 2879627, 2171019, 2916491, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 3027083, 2171019, 2171019, 3063947, 2699550, 2171166, 2728222, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2879774, 2171166, 2916638, 2171166, 2171166, 2171166, 2171166, 2171166, 2609438, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2654494, 2171166, 2171166, 2171166, 2171166, 2171166, 2445598, 2171166, 2466078, 2474270, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2523422, 2171019, 2437259, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2543755, 2171019, 2171019, 2171019, 2584715, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2908299, 2171019, 2171019, 2936971, 2171019, 2171019, 2986123, 2171019, 2994315, 2171019, 2171019, 3014795, 2171019, 3059851, 3076235, 3088523, 2171166, 2171166, 2986270, 2171166, 2994462, 2171166, 2171166, 3014942, 2171166, 3059998, 3076382, 3088670, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 3027230, 2171166, 2171166, 3064094, 2171166, 2171166, 3113246, 2171166, 2171166, 3133726, 2506891, 2171019, 2171019, 2171019, 2535563, 2539659, 2171019, 2171019, 2588811, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2691211, 2171019, 2707595, 2171019, 2715787, 2171019, 2723979, 2764939, 2171019, 2171019, 2797707, 2215936, 2215936, 3170304, 0, 0, 0, 0, 0, 0, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2453790, 2457886, 2171166, 2171166, 2171166, 2486558, 2171166, 2171166, 2507038, 2171166, 2171166, 2171166, 2535710, 2539806, 2171166, 2171166, 2588958, 2171166, 2171166, 2171166, 2171166, 2515230, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2593054, 2171166, 2171166, 2171166, 2171166, 3051806, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 3170590, 0, 2388107, 2392203, 2171019, 2171019, 2433163, 2171019, 2461835, 2171019, 2171019, 2171019, 2510987, 2171019, 2171019, 2171019, 2171019, 2580619, 2171019, 2605195, 2637963, 2171019, 2171019, 2171019, 2920587, 2171019, 2171019, 2171019, 2990219, 2171019, 2171019, 2171019, 2171019, 3051659, 2171019, 2171019, 2171019, 2453643, 2457739, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2515083, 2171019, 2171019, 2171019, 2171019, 2646155, 2670731, 2752651, 2756747, 2846859, 2961547, 2171019, 2998411, 2171019, 3010699, 2171019, 2171019, 2687115, 2748555, 2171019, 2171019, 2171019, 2924683, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 3121291, 2171019, 2171019, 2171019, 3170443, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2486272, 2215936, 2215936, 2506752, 3145867, 3158155, 3166347, 2387968, 2392064, 2215936, 2215936, 2433024, 2215936, 2461696, 2215936, 2215936, 2215936, 2510848, 2215936, 2215936, 0, 0, 0, 0, 0, 0, 2179072, 0, 0, 0, 0, 0, 553, 2170880, 2215936, 2215936, 2215936, 2215936, 2215936, 3121152, 2215936, 2215936, 3145728, 3158016, 3166208, 2388254, 2392350, 2171166, 2171166, 2433310, 2171166, 2461982, 2171166, 2171166, 2171166, 2511134, 2171166, 2171166, 0, 2171166, 2171166, 2580766, 2171166, 2605342, 2638110, 2171166, 2171166, 2171166, 2171166, 3031326, 2171166, 3055902, 2171166, 2171166, 2171166, 2171166, 3092766, 2171166, 2171166, 3125534, 2171166, 2171166, 2171166, 3162398, 2171166, 2171166, 3182878, 3186974, 2171166, 0, 0, 0, 2171019, 2171019, 2171019, 2171019, 3109003, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2215936, 2215936, 2215936, 2400256, 2215936, 2215936, 2215936, 2215936, 2171166, 2687262, 0, 0, 2748702, 2171166, 2171166, 0, 2171166, 2924830, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2597150, 2171166, 2621726, 2171166, 2171166, 2642206, 2171166, 2171166, 2171166, 2171166, 3121438, 2171166, 2171166, 3146014, 3158302, 3166494, 2171019, 2420875, 2429067, 2171019, 2478219, 2171019, 2171019, 2171019, 2171019, 2547851, 2556043, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 3129483, 2215936, 2171019, 3141771, 2215936, 2420736, 2428928, 2215936, 2478080, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2646016, 2670592, 2752512, 2756608, 2846720, 2961408, 2215936, 2998272, 2215936, 3010560, 2215936, 2215936, 2215936, 3141632, 2171166, 2421022, 2429214, 2171166, 2478366, 2171166, 2171166, 2171166, 2171166, 0, 0, 2171166, 2171166, 2171166, 2171166, 2646302, 2670878, 0, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 0, 45, 45, 45, 45, 45, 1405, 1406, 45, 45, 45, 45, 1409, 45, 45, 45, 45, 45, 1415, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1238, 45, 45, 45, 45, 67, 2752798, 2756894, 0, 2847006, 2961694, 2171166, 2998558, 2171166, 3010846, 2171166, 2171166, 2171166, 3141918, 2171019, 2171019, 2490507, 3129344, 2171166, 2171166, 2490654, 2171166, 2171166, 2171166, 0, 0, 2547998, 2556190, 2171166, 2171166, 2171166, 0, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 41098, 45, 45, 45, 45, 167, 45, 45, 45, 45, 185, 187, 45, 45, 198, 45, 45, 0, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 3129630, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2576523, 2171019, 2171019, 2171019, 2171019, 2171019, 2609291, 2171019, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 3002368, 2215936, 2215936, 2171166, 2171166, 2494750, 2171166, 2171166, 0, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 41098, 45, 45, 45, 147, 2584576, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2171166, 2171166, 2171166, 2171166, 0, 0, 0, 2171166, 2171166, 2171166, 2171166, 0, 0, 0, 2171166, 2171166, 2171166, 3002654, 2171166, 2171166, 2171019, 2171019, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 0, 0, 0, 0, 0, 0, 2175257, 0, 0, 2584862, 2171166, 2171166, 0, 0, 2171166, 2171166, 2171166, 2171166, 2171166, 2171019, 2441355, 2171019, 2527371, 2171019, 2601099, 2171019, 2850955, 2171019, 2171019, 2171019, 3022987, 2215936, 2441216, 2215936, 2527232, 2215936, 2600960, 2215936, 2850816, 2215936, 2215936, 0, 0, 0, 0, 0, 0, 2179072, 0, 0, 0, 0, 69632, 287, 2170880, 2215936, 3022848, 2171166, 2441502, 2171166, 2527518, 0, 0, 2171166, 2601246, 2171166, 0, 2851102, 2171166, 2171166, 2171166, 2171166, 2720030, 2744606, 2171166, 2171166, 2171166, 2834718, 2838814, 2171166, 2908446, 2171166, 2171166, 2937118, 3023134, 2171019, 2519179, 2171019, 2171019, 2171019, 2171019, 2171019, 2215936, 2519040, 2215936, 2215936, 2215936, 2215936, 2215936, 2171166, 2171166, 2171166, 3215646, 0, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2486411, 2171019, 2171019, 2171019, 2629771, 2171019, 2171019, 2171019, 2171019, 2719883, 2744459, 2171019, 2171019, 2171019, 2834571, 2838667, 2171019, 2519326, 0, 0, 2171166, 2171166, 0, 2171166, 2171166, 2171166, 2396299, 2171019, 2171019, 2171019, 2171019, 3018891, 2396160, 2215936, 2215936, 2215936, 2215936, 3018752, 2396446, 0, 0, 2171166, 2171166, 2171166, 2171166, 3019038, 2171019, 2650251, 2965643, 2171019, 2215936, 2650112, 2965504, 2215936, 0, 0, 2171166, 2650398, 2965790, 2171166, 2551947, 2171019, 2551808, 2215936, 0, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 41098, 45, 45, 144, 45, 45, 67, 67, 67, 67, 67, 228, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1929, 97, 97, 97, 97, 0, 0, 0, 2552094, 2171166, 2171019, 2215936, 0, 2171166, 2171019, 2215936, 0, 2171166, 2171019, 2215936, 0, 2171166, 2977931, 2977792, 2978078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 1321, 97, 131072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 0, 140, 0, 2379776, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2445312, 2170880, 2465792, 2473984, 2170880, 2170880, 2170880, 2584576, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2170880, 2170880, 2170880, 3162112, 2170880, 2170880, 3182592, 3186688, 2170880, 0, 140, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3002368, 2170880, 2170880, 2215936, 2215936, 2494464, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 3215360, 544, 0, 0, 0, 544, 0, 546, 0, 0, 0, 546, 0, 0, 2183168, 0, 0, 552, 0, 2170880, 2170880, 2170880, 2400256, 2170880, 2170880, 2170880, 0, 2170880, 2170880, 2170880, 0, 2170880, 2920448, 2170880, 2170880, 2170880, 2990080, 2170880, 2170880, 552, 0, 0, 0, 552, 0, 287, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2437120, 2170880, 2170880, 18, 0, 0, 0, 0, 0, 0, 0, 0, 2220032, 0, 0, 644, 0, 2215936, 2215936, 3170304, 544, 0, 546, 0, 552, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3198976, 2170880, 0, 0, 0, 140, 0, 0, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 249856, 110630, 114730, 106539, 0, 0, 32768, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 151640, 53264, 18, 18, 49172, 0, 57366, 0, 24, 24, 24, 0, 28, 28, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2170880, 2170880, 2170880, 2416640, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 253952, 110630, 114730, 106539, 0, 0, 32856, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 192512, 53264, 18, 18, 49172, 0, 57366, 0, 2232445, 184320, 2232445, 0, 2240641, 2240641, 184320, 2240641, 102432, 0, 0, 0, 221184, 2220032, 110630, 0, 0, 0, 114730, 106539, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3108864, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2215936, 0, 0, 0, 45056, 0, 0, 0, 0, 0, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 0, 53264, 0, 18, 18, 24, 24, 0, 127, 127, 53264, 18, 49172, 258071, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 32768, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 204800, 53264, 18, 49172, 57366, 24, 27, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 0, 53264, 18, 49172, 57366, 24, 8192, 28, 33, 0, 33, 33, 33, 0, 0, 0, 53264, 18, 18, 49172, 0, 57366, 0, 24, 24, 24, 16384, 28, 28, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, 2170880, 2170880, 2170880, 2416640, 67, 67, 37139, 37139, 24853, 24853, 0, 70179, 0, 0, 0, 65820, 65820, 369, 287, 97, 0, 0, 97, 97, 0, 97, 97, 97, 45, 2030, 45, 45, 45, 45, 67, 1573, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1699, 67, 67, 67, 67, 25403, 546, 70179, 0, 0, 66365, 66365, 552, 0, 97, 97, 97, 97, 97, 97, 97, 97, 1355, 97, 97, 97, 1358, 97, 97, 97, 641, 0, 0, 0, 925, 41606, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 1187, 45, 45, 45, 45, 45, 0, 1480, 0, 0, 0, 0, 1319, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 592, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1531, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1680, 45, 45, 45, 641, 0, 924, 0, 925, 41606, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 1186, 45, 45, 45, 45, 45, 45, 67, 67, 37139, 37139, 24853, 24853, 0, 70179, 282, 0, 0, 65820, 65820, 369, 287, 97, 0, 0, 97, 97, 0, 97, 2028, 97, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1767, 67, 67, 67, 0, 0, 0, 0, 0, 0, 1612, 97, 97, 97, 97, 97, 97, 0, 1785, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 1790, 97, 0, 0, 2170880, 2170880, 3051520, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3170304, 241664, 2387968, 2392064, 2170880, 2170880, 2433024, 53264, 19, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 274432, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 270336, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 1134711, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 1126440, 1126440, 1126440, 0, 0, 1126400, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 36, 110630, 114730, 106539, 0, 0, 217088, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 94, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 96, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 24666, 53264, 18, 18, 49172, 0, 57366, 0, 24, 24, 24, 126, 28, 28, 28, 28, 102432, 53264, 122, 123, 49172, 0, 57366, 0, 24, 24, 24, 0, 28, 28, 28, 28, 102432, 2170880, 2170880, 4256099, 0, 0, 0, 0, 0, 0, 0, 0, 2220032, 0, 0, 0, 0, 0, 0, 0, 0, 1319, 0, 0, 0, 0, 97, 97, 97, 97, 97, 97, 97, 1109, 97, 97, 97, 97, 1113, 132, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 41098, 45, 45, 45, 146, 150, 45, 45, 45, 45, 45, 175, 45, 180, 45, 186, 45, 189, 45, 45, 203, 67, 256, 67, 67, 270, 67, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 97, 97, 97, 293, 297, 97, 97, 97, 97, 97, 322, 97, 327, 97, 333, 97, 0, 0, 97, 2026, 0, 2027, 97, 97, 45, 45, 45, 45, 45, 45, 67, 67, 67, 1685, 67, 67, 67, 67, 67, 67, 67, 1690, 67, 336, 97, 97, 350, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 356, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140, 2170880, 2170880, 2170880, 2416640, 2424832, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2617344, 2170880, 45, 439, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 525, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 97, 97, 97, 622, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1524, 97, 97, 1527, 369, 648, 45, 45, 45, 45, 45, 45, 45, 45, 45, 659, 45, 45, 45, 45, 408, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1239, 45, 45, 45, 67, 729, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 762, 67, 746, 67, 67, 67, 67, 67, 67, 67, 67, 67, 759, 67, 67, 67, 67, 0, 0, 0, 1477, 0, 1086, 0, 0, 0, 1479, 0, 1090, 67, 67, 796, 67, 67, 799, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1291, 67, 67, 67, 811, 67, 67, 67, 67, 67, 816, 67, 67, 67, 67, 67, 67, 67, 37689, 544, 25403, 546, 70179, 0, 0, 66365, 66365, 552, 833, 97, 97, 97, 97, 97, 97, 97, 97, 1380, 0, 0, 0, 45, 45, 45, 45, 45, 1185, 45, 45, 45, 45, 45, 45, 45, 386, 45, 45, 45, 45, 45, 45, 45, 45, 1810, 45, 45, 45, 45, 45, 45, 67, 97, 97, 844, 97, 97, 97, 97, 97, 97, 97, 97, 97, 857, 97, 97, 97, 0, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 45, 45, 45, 97, 97, 97, 894, 97, 97, 897, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 0, 1382, 45, 45, 45, 97, 909, 97, 97, 97, 97, 97, 914, 97, 97, 97, 97, 97, 97, 97, 923, 67, 67, 1079, 67, 67, 67, 67, 67, 37689, 1085, 25403, 1089, 66365, 1093, 0, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 41098, 45, 45, 45, 148, 1114, 97, 97, 97, 97, 97, 97, 1122, 97, 97, 97, 97, 97, 97, 97, 97, 97, 606, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1173, 97, 97, 97, 97, 97, 12288, 0, 925, 0, 1179, 0, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 41098, 45, 45, 145, 45, 45, 67, 67, 67, 67, 67, 1762, 67, 67, 67, 1766, 67, 67, 67, 67, 67, 67, 528, 67, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 0, 1934, 67, 67, 1255, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1035, 67, 67, 67, 67, 67, 67, 1297, 67, 67, 67, 67, 67, 67, 0, 0, 0, 0, 0, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1111, 97, 97, 97, 97, 97, 97, 1327, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 33344, 97, 97, 97, 1335, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 97, 97, 1377, 97, 97, 97, 97, 97, 97, 0, 1179, 0, 45, 45, 45, 45, 670, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 430, 45, 45, 45, 45, 67, 67, 1438, 67, 67, 1442, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1592, 67, 67, 67, 1451, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1458, 67, 67, 67, 67, 0, 0, 1305, 0, 0, 0, 0, 0, 1311, 0, 0, 0, 1317, 0, 0, 0, 0, 0, 0, 0, 97, 97, 1322, 97, 97, 1491, 97, 97, 1495, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1551, 45, 1553, 45, 1504, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1513, 97, 97, 97, 97, 0, 45, 45, 45, 45, 1536, 45, 45, 45, 45, 1540, 45, 67, 67, 67, 67, 67, 1585, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1700, 67, 67, 67, 97, 1648, 97, 97, 97, 97, 97, 97, 97, 97, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1541, 0, 97, 97, 97, 97, 0, 1940, 0, 97, 97, 97, 97, 97, 97, 45, 45, 2011, 45, 45, 45, 2015, 67, 67, 2017, 67, 67, 67, 2021, 97, 67, 67, 812, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 37689, 544, 97, 97, 97, 910, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 923, 0, 0, 0, 45, 45, 45, 45, 1184, 45, 45, 45, 45, 1188, 45, 45, 45, 45, 1414, 45, 45, 45, 1417, 45, 1419, 45, 45, 45, 45, 45, 443, 45, 45, 45, 45, 45, 45, 453, 45, 45, 67, 67, 67, 67, 1244, 67, 67, 67, 67, 1248, 67, 67, 67, 67, 67, 67, 67, 0, 37139, 24853, 0, 0, 0, 282, 41098, 65820, 97, 1324, 97, 97, 97, 97, 1328, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 930, 45, 45, 45, 45, 97, 97, 97, 97, 1378, 97, 97, 97, 97, 0, 1179, 0, 45, 45, 45, 45, 671, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 975, 45, 45, 45, 45, 67, 67, 1923, 67, 1925, 67, 67, 1927, 67, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 1985, 45, 45, 45, 45, 45, 45, 1560, 45, 45, 45, 45, 45, 45, 45, 45, 45, 946, 45, 45, 950, 45, 45, 45, 0, 97, 97, 97, 1939, 0, 0, 0, 97, 1943, 97, 97, 1945, 97, 45, 45, 45, 669, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 990, 45, 45, 45, 67, 257, 67, 67, 67, 67, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 337, 97, 97, 97, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 356, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 370, 2170880, 2170880, 2170880, 2416640, 401, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 459, 461, 67, 67, 67, 67, 67, 67, 67, 67, 475, 67, 480, 67, 67, 67, 67, 67, 67, 1054, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1698, 67, 67, 67, 67, 67, 484, 67, 67, 487, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1459, 67, 67, 97, 556, 558, 97, 97, 97, 97, 97, 97, 97, 97, 572, 97, 577, 97, 97, 0, 0, 1896, 97, 97, 97, 97, 97, 97, 1903, 45, 45, 45, 45, 983, 45, 45, 45, 45, 988, 45, 45, 45, 45, 45, 45, 1195, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1549, 45, 45, 45, 45, 45, 581, 97, 97, 584, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1153, 97, 97, 369, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 662, 45, 45, 45, 684, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1004, 45, 45, 45, 67, 67, 67, 749, 67, 67, 67, 67, 67, 67, 67, 67, 67, 761, 67, 67, 67, 67, 67, 67, 1068, 67, 67, 67, 1071, 67, 67, 67, 67, 1076, 794, 795, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 544, 97, 97, 97, 97, 847, 97, 97, 97, 97, 97, 97, 97, 97, 97, 859, 97, 0, 0, 2025, 97, 20480, 97, 97, 2029, 45, 45, 45, 45, 45, 45, 67, 67, 67, 1575, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1775, 67, 67, 67, 97, 97, 97, 97, 892, 893, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1515, 97, 993, 994, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 992, 67, 67, 67, 1284, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1607, 67, 67, 97, 1364, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 596, 97, 45, 1556, 1557, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 696, 45, 1596, 1597, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 499, 67, 97, 97, 97, 1621, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1346, 97, 97, 97, 97, 1740, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1678, 45, 45, 45, 45, 45, 67, 97, 97, 97, 97, 97, 97, 1836, 0, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 1984, 97, 45, 45, 45, 45, 45, 45, 1808, 45, 45, 45, 45, 45, 45, 45, 45, 67, 739, 67, 67, 67, 67, 67, 744, 45, 45, 1909, 45, 45, 45, 45, 45, 45, 45, 67, 1917, 67, 1918, 67, 67, 67, 67, 67, 67, 1247, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 532, 67, 67, 67, 67, 67, 67, 1922, 67, 67, 67, 67, 67, 67, 67, 97, 1930, 97, 1931, 97, 0, 0, 97, 97, 0, 97, 97, 97, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 1576, 67, 67, 67, 67, 1580, 67, 67, 0, 97, 97, 1938, 97, 0, 0, 0, 97, 97, 97, 97, 97, 97, 45, 45, 45, 699, 45, 45, 45, 704, 45, 45, 45, 45, 45, 45, 45, 45, 987, 45, 45, 45, 45, 45, 45, 45, 67, 67, 97, 97, 97, 97, 0, 0, 97, 97, 97, 2006, 97, 97, 97, 97, 0, 45, 1533, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1416, 45, 45, 45, 45, 45, 45, 45, 45, 722, 723, 45, 45, 45, 45, 45, 45, 2045, 67, 67, 67, 2047, 0, 0, 97, 97, 97, 2051, 45, 45, 67, 67, 0, 0, 0, 0, 925, 41606, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 409, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1957, 45, 67, 67, 67, 67, 67, 1836, 97, 97, 45, 67, 0, 97, 45, 67, 0, 97, 45, 67, 0, 97, 45, 45, 67, 67, 67, 1761, 67, 67, 67, 1764, 67, 67, 67, 67, 67, 67, 67, 494, 67, 67, 67, 67, 67, 67, 67, 67, 67, 787, 67, 67, 67, 67, 67, 67, 45, 45, 420, 45, 45, 422, 45, 45, 425, 45, 45, 45, 45, 45, 45, 45, 387, 45, 45, 45, 45, 397, 45, 45, 45, 67, 460, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 515, 67, 485, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 498, 67, 67, 67, 67, 67, 97, 0, 2039, 97, 97, 97, 97, 97, 45, 45, 45, 45, 1426, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1689, 67, 67, 67, 97, 557, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 612, 97, 582, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 595, 97, 97, 97, 97, 97, 896, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 885, 97, 97, 97, 97, 97, 45, 939, 45, 45, 45, 45, 943, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1916, 67, 67, 67, 67, 67, 45, 67, 67, 67, 67, 67, 67, 67, 1015, 67, 67, 67, 67, 1019, 67, 67, 67, 67, 67, 67, 1271, 67, 67, 67, 67, 67, 67, 1277, 67, 67, 67, 67, 67, 67, 1287, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 804, 67, 67, 67, 67, 67, 1077, 67, 67, 67, 67, 67, 67, 67, 37689, 0, 25403, 0, 66365, 0, 0, 0, 0, 0, 0, 0, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2437120, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2543616, 2170880, 2170880, 2170880, 2170880, 2170880, 2629632, 1169, 97, 1171, 97, 97, 97, 97, 97, 97, 97, 12288, 0, 925, 0, 1179, 0, 0, 0, 0, 925, 41606, 0, 0, 0, 0, 45, 45, 45, 45, 936, 45, 45, 67, 67, 214, 67, 220, 67, 67, 233, 67, 243, 67, 248, 67, 67, 67, 67, 67, 67, 1298, 67, 67, 67, 67, 0, 0, 0, 0, 0, 0, 97, 97, 97, 97, 97, 1617, 97, 0, 0, 0, 45, 45, 45, 1183, 45, 45, 45, 45, 45, 45, 45, 45, 45, 393, 45, 45, 45, 45, 45, 45, 67, 67, 1243, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1074, 67, 67, 1281, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 776, 1323, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 907, 45, 1412, 45, 45, 45, 45, 45, 45, 45, 1418, 45, 45, 45, 45, 45, 45, 686, 45, 45, 45, 690, 45, 45, 695, 45, 45, 67, 67, 67, 67, 67, 1465, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 1712, 97, 97, 97, 97, 1741, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 426, 45, 45, 45, 45, 45, 45, 67, 67, 67, 1924, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 0, 0, 97, 97, 1983, 97, 97, 45, 45, 1987, 45, 1988, 45, 0, 97, 97, 97, 97, 0, 0, 0, 1942, 97, 97, 97, 97, 97, 45, 45, 45, 700, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 711, 45, 45, 153, 45, 45, 166, 45, 176, 45, 181, 45, 45, 188, 191, 196, 45, 204, 255, 258, 263, 67, 271, 67, 67, 0, 37139, 24853, 0, 0, 0, 282, 41098, 65820, 97, 97, 97, 294, 97, 300, 97, 97, 313, 97, 323, 97, 328, 97, 97, 335, 338, 343, 97, 351, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 356, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 41098, 0, 140, 45, 45, 45, 45, 1404, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1411, 67, 67, 486, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1251, 67, 67, 501, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 513, 67, 67, 67, 67, 67, 67, 1443, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1263, 67, 67, 67, 67, 67, 97, 97, 583, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1526, 97, 598, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 610, 97, 97, 0, 97, 97, 1796, 97, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 1744, 45, 45, 45, 369, 0, 651, 45, 653, 45, 654, 45, 656, 45, 45, 45, 660, 45, 45, 45, 45, 1558, 45, 45, 45, 45, 45, 45, 45, 45, 1566, 45, 45, 681, 45, 683, 45, 45, 45, 45, 45, 45, 45, 45, 691, 692, 694, 45, 45, 45, 716, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 709, 45, 45, 712, 45, 714, 45, 45, 45, 718, 45, 45, 45, 45, 45, 45, 45, 726, 45, 45, 45, 733, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1691, 67, 67, 747, 67, 67, 67, 67, 67, 67, 67, 67, 67, 760, 67, 67, 67, 0, 0, 0, 0, 0, 0, 97, 1613, 97, 97, 97, 97, 97, 97, 1509, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 1179, 0, 45, 45, 45, 45, 67, 764, 67, 67, 67, 67, 768, 67, 770, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 0, 0, 0, 1977, 67, 778, 779, 781, 67, 67, 67, 67, 67, 67, 788, 789, 67, 67, 792, 793, 67, 67, 67, 813, 67, 67, 67, 67, 67, 67, 67, 67, 67, 824, 37689, 544, 25403, 546, 70179, 0, 0, 66365, 66365, 552, 0, 836, 97, 838, 97, 839, 97, 841, 97, 97, 97, 845, 97, 97, 97, 97, 97, 97, 97, 97, 97, 858, 97, 97, 0, 1728, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 45, 1802, 45, 97, 97, 862, 97, 97, 97, 97, 866, 97, 868, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 1788, 97, 97, 97, 0, 0, 97, 97, 876, 877, 879, 97, 97, 97, 97, 97, 97, 886, 887, 97, 97, 890, 891, 97, 97, 97, 97, 97, 97, 97, 899, 97, 97, 97, 903, 97, 97, 97, 0, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 1646, 97, 97, 97, 97, 911, 97, 97, 97, 97, 97, 97, 97, 97, 97, 922, 923, 45, 955, 45, 957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 195, 45, 45, 45, 45, 45, 981, 982, 45, 45, 45, 45, 45, 45, 989, 45, 45, 45, 45, 45, 170, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 411, 45, 45, 45, 45, 45, 67, 1023, 67, 67, 67, 67, 67, 67, 1031, 67, 1033, 67, 67, 67, 67, 67, 67, 67, 817, 819, 67, 67, 67, 67, 67, 37689, 544, 67, 1065, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 516, 67, 67, 1078, 67, 67, 1081, 1082, 67, 67, 37689, 0, 25403, 0, 66365, 0, 0, 0, 0, 0, 0, 0, 0, 2171166, 2171166, 2171166, 2171166, 2171166, 2437406, 2171166, 2171166, 97, 1115, 97, 1117, 97, 97, 97, 97, 97, 97, 1125, 97, 1127, 97, 97, 97, 0, 97, 97, 97, 0, 97, 97, 97, 97, 1644, 97, 97, 97, 0, 97, 97, 97, 0, 97, 97, 1642, 97, 97, 97, 97, 97, 97, 625, 97, 97, 97, 97, 97, 97, 97, 97, 97, 316, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1159, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1502, 97, 97, 97, 97, 97, 1172, 97, 97, 1175, 1176, 97, 97, 12288, 0, 925, 0, 1179, 0, 0, 0, 0, 925, 41606, 0, 0, 0, 0, 45, 45, 45, 935, 45, 45, 45, 1233, 45, 45, 45, 1236, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 1873, 67, 67, 45, 45, 1218, 45, 45, 45, 1223, 45, 45, 45, 45, 45, 45, 45, 1230, 45, 45, 67, 67, 215, 219, 222, 67, 230, 67, 67, 244, 246, 249, 67, 67, 67, 67, 67, 67, 1882, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 97, 97, 45, 1904, 45, 1905, 45, 67, 67, 67, 67, 67, 1258, 67, 1260, 67, 67, 67, 67, 67, 67, 67, 67, 67, 495, 67, 67, 67, 67, 67, 67, 67, 67, 1283, 67, 67, 67, 67, 67, 67, 67, 1290, 67, 67, 67, 67, 67, 67, 67, 818, 67, 67, 67, 67, 67, 67, 37689, 544, 67, 67, 1295, 67, 67, 67, 67, 67, 67, 67, 67, 0, 0, 0, 0, 0, 0, 2174976, 0, 0, 97, 97, 97, 1326, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1514, 97, 97, 97, 97, 97, 1338, 97, 1340, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1500, 97, 97, 1503, 97, 1363, 97, 97, 97, 97, 97, 97, 97, 1370, 97, 97, 97, 97, 97, 97, 97, 563, 97, 97, 97, 97, 97, 97, 578, 97, 1375, 97, 97, 97, 97, 97, 97, 97, 97, 0, 1179, 0, 45, 45, 45, 45, 685, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1003, 45, 45, 45, 45, 67, 67, 67, 1463, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1778, 97, 97, 97, 97, 97, 1518, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 609, 97, 97, 97, 45, 1542, 45, 45, 45, 45, 45, 45, 45, 1548, 45, 45, 45, 45, 45, 1554, 45, 1570, 1571, 45, 67, 67, 67, 67, 67, 67, 1578, 67, 67, 67, 67, 67, 67, 67, 1055, 67, 67, 67, 67, 67, 1061, 67, 67, 1582, 67, 67, 67, 67, 67, 67, 67, 1588, 67, 67, 67, 67, 67, 1594, 67, 67, 67, 67, 67, 97, 2038, 0, 97, 97, 97, 97, 97, 2044, 45, 45, 45, 995, 45, 45, 45, 45, 1000, 45, 45, 45, 45, 45, 45, 45, 1809, 45, 1811, 45, 45, 45, 45, 45, 67, 1610, 1611, 67, 1476, 0, 1478, 0, 1480, 0, 97, 97, 97, 97, 97, 97, 1618, 1647, 1649, 97, 97, 97, 1652, 97, 1654, 1655, 97, 0, 45, 45, 45, 1658, 45, 45, 67, 67, 216, 67, 67, 67, 67, 234, 67, 67, 67, 67, 252, 254, 1845, 97, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 945, 45, 947, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 1881, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 97, 1902, 45, 45, 45, 45, 45, 45, 1908, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1921, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 0, 97, 1937, 97, 97, 1940, 0, 0, 97, 97, 97, 97, 97, 97, 1947, 1948, 1949, 45, 45, 45, 1952, 45, 1954, 45, 45, 45, 45, 1959, 1960, 1961, 67, 67, 67, 67, 67, 67, 1455, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 757, 67, 67, 67, 67, 67, 67, 1964, 67, 1966, 67, 67, 67, 67, 1971, 1972, 1973, 97, 0, 0, 0, 97, 97, 1104, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 884, 97, 97, 97, 889, 97, 97, 1978, 97, 0, 0, 1981, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 736, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1018, 67, 67, 67, 45, 67, 67, 67, 67, 0, 2049, 97, 97, 97, 97, 45, 45, 67, 67, 0, 0, 0, 0, 925, 41606, 0, 0, 0, 0, 45, 933, 45, 45, 45, 45, 1234, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 97, 97, 288, 97, 97, 97, 97, 97, 97, 317, 97, 97, 97, 97, 97, 97, 0, 0, 97, 1787, 97, 97, 97, 97, 0, 0, 45, 45, 378, 45, 45, 45, 45, 45, 390, 45, 45, 45, 45, 45, 45, 45, 424, 45, 45, 45, 431, 433, 45, 45, 45, 67, 1050, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 518, 67, 97, 97, 97, 1144, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 632, 97, 97, 97, 97, 97, 97, 97, 1367, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 855, 97, 97, 97, 97, 67, 97, 97, 97, 97, 97, 97, 1837, 0, 97, 97, 97, 97, 97, 0, 0, 0, 1897, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 1208, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 724, 45, 45, 45, 45, 45, 97, 2010, 45, 45, 45, 45, 45, 45, 2016, 67, 67, 67, 67, 67, 67, 2022, 45, 2046, 67, 67, 67, 0, 0, 2050, 97, 97, 97, 45, 45, 67, 67, 0, 0, 0, 0, 925, 41606, 0, 0, 0, 0, 932, 45, 45, 45, 45, 45, 1222, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1227, 45, 45, 45, 45, 45, 133, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 41098, 45, 45, 45, 45, 701, 702, 45, 45, 705, 706, 45, 45, 45, 45, 45, 45, 703, 45, 45, 45, 45, 45, 45, 45, 45, 45, 719, 45, 45, 45, 45, 45, 725, 45, 45, 45, 369, 649, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1216, 25403, 546, 70179, 0, 0, 66365, 66365, 552, 834, 97, 97, 97, 97, 97, 97, 97, 1342, 97, 97, 97, 97, 97, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 1799, 97, 97, 45, 45, 45, 1569, 45, 45, 45, 1572, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 0, 0, 1306, 0, 67, 67, 67, 1598, 67, 67, 67, 67, 67, 67, 67, 67, 1606, 67, 67, 1609, 97, 97, 97, 1650, 97, 97, 1653, 97, 97, 97, 0, 45, 45, 1657, 45, 45, 45, 1206, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1421, 45, 45, 45, 1703, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 1711, 97, 97, 0, 1895, 0, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 958, 45, 960, 45, 45, 45, 45, 45, 45, 45, 45, 1913, 45, 45, 1915, 67, 67, 67, 67, 67, 67, 67, 466, 67, 67, 67, 67, 67, 67, 481, 67, 45, 1749, 45, 45, 45, 45, 45, 45, 45, 45, 1755, 45, 45, 45, 45, 45, 173, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 974, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 1773, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 1886, 0, 0, 0, 97, 97, 67, 2035, 2036, 67, 67, 97, 0, 0, 97, 2041, 2042, 97, 97, 45, 45, 45, 45, 1662, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1397, 45, 45, 45, 45, 151, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 437, 205, 45, 67, 67, 67, 218, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1047, 67, 67, 67, 67, 97, 97, 97, 97, 298, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 870, 97, 97, 97, 97, 97, 97, 97, 97, 352, 97, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 0, 0, 0, 0, 0, 0, 365, 0, 41098, 0, 140, 45, 45, 45, 45, 45, 1427, 45, 45, 67, 67, 67, 67, 67, 67, 67, 1435, 520, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1037, 617, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 923, 45, 1232, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 1919, 67, 1759, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1021, 45, 154, 45, 162, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 964, 45, 45, 45, 206, 45, 67, 67, 67, 67, 221, 67, 229, 67, 67, 67, 67, 67, 67, 67, 67, 530, 67, 67, 67, 67, 67, 67, 67, 67, 755, 67, 67, 67, 67, 67, 67, 67, 67, 785, 67, 67, 67, 67, 67, 67, 67, 67, 802, 67, 67, 67, 807, 67, 67, 67, 97, 97, 97, 97, 353, 97, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 0, 0, 0, 0, 0, 0, 366, 0, 0, 0, 140, 2170880, 2170880, 2170880, 2416640, 402, 45, 45, 45, 45, 45, 45, 45, 410, 45, 45, 45, 45, 45, 45, 45, 674, 45, 45, 45, 45, 45, 45, 45, 45, 389, 45, 394, 45, 45, 398, 45, 45, 45, 45, 441, 45, 45, 45, 45, 45, 447, 45, 45, 45, 454, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1768, 67, 67, 67, 67, 67, 488, 67, 67, 67, 67, 67, 67, 67, 496, 67, 67, 67, 67, 67, 67, 67, 1774, 67, 67, 67, 67, 67, 97, 97, 97, 97, 0, 0, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 67, 67, 523, 67, 67, 527, 67, 67, 67, 67, 67, 533, 67, 67, 67, 540, 97, 97, 97, 585, 97, 97, 97, 97, 97, 97, 97, 593, 97, 97, 97, 97, 97, 97, 1784, 0, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 97, 97, 0, 0, 0, 18, 18, 24, 24, 0, 28, 28, 97, 97, 620, 97, 97, 624, 97, 97, 97, 97, 97, 630, 97, 97, 97, 637, 713, 45, 45, 45, 45, 45, 45, 721, 45, 45, 45, 45, 45, 45, 45, 45, 1197, 45, 45, 45, 45, 45, 45, 45, 45, 730, 732, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1581, 67, 45, 67, 67, 67, 67, 1012, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1059, 67, 67, 67, 67, 67, 1024, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 775, 67, 67, 67, 67, 1066, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 479, 67, 67, 67, 67, 67, 67, 1080, 67, 67, 67, 67, 37689, 0, 25403, 0, 66365, 0, 0, 0, 0, 0, 0, 0, 287, 0, 0, 0, 287, 0, 2379776, 2170880, 2170880, 97, 97, 97, 1118, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 920, 97, 97, 0, 0, 0, 0, 45, 1181, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 432, 45, 45, 45, 45, 45, 45, 1219, 45, 45, 45, 45, 45, 45, 1226, 45, 45, 45, 45, 45, 45, 959, 45, 45, 45, 45, 45, 45, 45, 45, 45, 184, 45, 45, 45, 45, 202, 45, 1241, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1266, 67, 1268, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1279, 67, 67, 67, 67, 67, 272, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 67, 67, 67, 67, 67, 1286, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1293, 67, 67, 67, 1296, 67, 67, 67, 67, 67, 67, 67, 0, 0, 0, 0, 0, 281, 94, 0, 0, 97, 97, 97, 1366, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1373, 97, 97, 18, 0, 139621, 0, 0, 0, 0, 0, 0, 364, 0, 0, 367, 0, 97, 1376, 97, 97, 97, 97, 97, 97, 97, 0, 0, 0, 45, 45, 1384, 45, 45, 67, 208, 67, 67, 67, 67, 67, 67, 237, 67, 67, 67, 67, 67, 67, 67, 1069, 1070, 67, 67, 67, 67, 67, 67, 67, 0, 37140, 24854, 0, 0, 0, 0, 41098, 65821, 45, 1423, 45, 45, 45, 45, 45, 45, 67, 67, 1431, 67, 67, 67, 67, 67, 67, 67, 1083, 37689, 0, 25403, 0, 66365, 0, 0, 0, 1436, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1830, 67, 1452, 1453, 67, 67, 67, 67, 1456, 67, 67, 67, 67, 67, 67, 67, 67, 67, 771, 67, 67, 67, 67, 67, 67, 1461, 67, 67, 67, 1464, 67, 1466, 67, 67, 67, 67, 67, 67, 1470, 67, 67, 67, 67, 67, 67, 1587, 67, 67, 67, 67, 67, 67, 67, 67, 1595, 1489, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1129, 97, 1505, 1506, 97, 97, 97, 97, 1510, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1163, 1164, 97, 97, 97, 97, 97, 1516, 97, 97, 97, 1519, 97, 1521, 97, 97, 97, 97, 97, 97, 1525, 97, 97, 18, 0, 139621, 0, 0, 0, 0, 0, 0, 364, 0, 0, 367, 41606, 67, 67, 67, 67, 67, 1586, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1276, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1600, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1301, 0, 0, 0, 1307, 97, 97, 1620, 97, 97, 97, 97, 97, 97, 97, 1627, 97, 97, 97, 97, 97, 97, 913, 97, 97, 97, 97, 919, 97, 97, 97, 0, 97, 97, 97, 1781, 97, 97, 0, 0, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 97, 97, 0, 1792, 1860, 45, 1862, 1863, 45, 1865, 45, 67, 67, 67, 67, 67, 67, 67, 67, 1875, 67, 1877, 1878, 67, 1880, 67, 97, 97, 97, 97, 97, 1887, 0, 1889, 97, 97, 18, 0, 139621, 0, 0, 0, 0, 0, 0, 364, 237568, 0, 367, 0, 97, 1893, 0, 0, 0, 97, 1898, 1899, 97, 1901, 97, 45, 45, 45, 45, 45, 2014, 45, 67, 67, 67, 67, 67, 2020, 67, 97, 1989, 45, 1990, 45, 45, 45, 67, 67, 67, 67, 67, 67, 1996, 67, 1997, 67, 67, 67, 67, 67, 273, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 67, 67, 97, 97, 97, 97, 0, 0, 97, 97, 2005, 0, 97, 2007, 97, 97, 18, 0, 139621, 0, 0, 0, 642, 0, 133, 364, 0, 0, 367, 41606, 0, 97, 97, 2056, 2057, 0, 2059, 45, 67, 0, 97, 45, 67, 0, 97, 45, 45, 67, 209, 67, 67, 67, 223, 67, 67, 67, 67, 67, 67, 67, 67, 67, 786, 67, 67, 67, 791, 67, 67, 45, 45, 940, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 727, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 1016, 67, 67, 67, 67, 67, 67, 67, 67, 37689, 0, 25403, 0, 66365, 0, 0, 0, 133, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 41098, 45, 45, 142, 45, 45, 67, 210, 67, 67, 67, 225, 67, 67, 239, 67, 67, 67, 250, 67, 67, 67, 67, 67, 464, 67, 67, 67, 67, 67, 476, 67, 67, 67, 67, 67, 67, 67, 1709, 67, 67, 67, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 97, 1843, 0, 67, 259, 67, 67, 67, 67, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 97, 97, 289, 97, 97, 97, 303, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 901, 97, 97, 97, 97, 97, 339, 97, 97, 97, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 0, 358, 0, 0, 0, 0, 0, 0, 41098, 0, 140, 45, 45, 45, 45, 45, 1953, 45, 1955, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 1687, 1688, 67, 67, 67, 67, 45, 45, 405, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1203, 45, 458, 67, 67, 67, 67, 67, 67, 67, 67, 67, 470, 477, 67, 67, 67, 67, 67, 67, 67, 1970, 97, 97, 97, 1974, 0, 0, 0, 97, 1103, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1372, 97, 97, 97, 97, 67, 522, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 536, 67, 67, 67, 67, 67, 67, 1696, 67, 67, 67, 67, 67, 67, 67, 1701, 67, 555, 97, 97, 97, 97, 97, 97, 97, 97, 97, 567, 574, 97, 97, 97, 97, 97, 301, 97, 309, 97, 97, 97, 97, 97, 97, 97, 97, 97, 900, 97, 97, 97, 905, 97, 97, 97, 619, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 633, 97, 97, 18, 0, 139621, 0, 0, 362, 0, 0, 0, 364, 0, 0, 367, 41606, 369, 649, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 663, 664, 67, 67, 67, 67, 750, 751, 67, 67, 67, 67, 758, 67, 67, 67, 67, 67, 67, 67, 1272, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1057, 1058, 67, 67, 67, 67, 67, 67, 67, 67, 797, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 512, 67, 67, 67, 97, 97, 97, 97, 895, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 902, 97, 97, 97, 97, 67, 67, 1051, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1062, 67, 67, 67, 67, 67, 491, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1302, 0, 0, 0, 1308, 97, 97, 97, 97, 1145, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1139, 97, 97, 97, 97, 1156, 97, 97, 97, 97, 97, 97, 1161, 97, 97, 97, 97, 97, 1166, 97, 97, 18, 640, 139621, 0, 641, 0, 0, 0, 0, 364, 0, 0, 367, 41606, 67, 67, 67, 67, 1257, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 0, 1305, 0, 0, 97, 97, 1337, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1630, 97, 67, 1474, 67, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2380062, 2171166, 2171166, 97, 1529, 97, 97, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1228, 45, 45, 45, 45, 67, 67, 67, 67, 1707, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 0, 0, 0, 97, 1891, 1739, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1198, 45, 1200, 45, 45, 45, 45, 97, 97, 1894, 0, 0, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 672, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1420, 45, 45, 45, 45, 67, 67, 1965, 67, 1967, 67, 67, 67, 97, 97, 97, 97, 0, 1976, 0, 97, 97, 45, 67, 0, 97, 45, 67, 0, 97, 45, 67, 0, 97, 45, 97, 97, 1979, 0, 0, 97, 1982, 97, 97, 97, 1986, 45, 45, 45, 45, 45, 735, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1770, 67, 67, 2000, 97, 97, 97, 2002, 0, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 1798, 97, 97, 97, 45, 45, 45, 2034, 67, 67, 67, 67, 97, 0, 0, 2040, 97, 97, 97, 97, 45, 45, 45, 45, 1752, 45, 45, 45, 1753, 1754, 45, 45, 45, 45, 45, 45, 383, 45, 45, 45, 45, 45, 45, 45, 45, 45, 675, 45, 45, 45, 45, 45, 45, 438, 45, 45, 45, 45, 45, 445, 45, 45, 45, 45, 45, 45, 45, 45, 67, 1430, 67, 67, 67, 67, 67, 67, 67, 67, 67, 524, 67, 67, 67, 67, 67, 531, 67, 67, 67, 67, 67, 67, 67, 67, 37689, 0, 25403, 0, 66365, 0, 0, 1096, 97, 97, 97, 621, 97, 97, 97, 97, 97, 628, 97, 97, 97, 97, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 356, 28, 28, 665, 45, 45, 45, 45, 45, 45, 45, 45, 45, 676, 45, 45, 45, 45, 45, 942, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 707, 708, 45, 45, 45, 45, 763, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 809, 810, 67, 67, 67, 67, 783, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 1303, 0, 0, 0, 97, 861, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 613, 97, 45, 45, 956, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1215, 45, 67, 67, 67, 67, 1027, 67, 67, 67, 67, 1032, 67, 67, 67, 67, 67, 67, 67, 67, 37689, 0, 25403, 0, 66365, 0, 0, 1097, 1064, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1075, 67, 1098, 0, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 331, 97, 97, 97, 97, 1158, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 594, 97, 97, 1309, 0, 0, 0, 1315, 0, 0, 0, 0, 0, 0, 0, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1374, 97, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1240, 67, 67, 1583, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1252, 67, 97, 97, 97, 1635, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 1800, 97, 45, 45, 45, 97, 97, 1793, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 45, 45, 45, 1743, 45, 45, 45, 1746, 45, 0, 97, 97, 97, 97, 97, 1851, 97, 45, 45, 45, 45, 1856, 45, 45, 45, 45, 1864, 45, 45, 67, 67, 1869, 67, 67, 67, 67, 1874, 67, 0, 97, 97, 45, 67, 2058, 97, 45, 67, 0, 97, 45, 67, 0, 97, 45, 45, 67, 211, 67, 67, 67, 67, 67, 67, 240, 67, 67, 67, 67, 67, 67, 67, 1444, 67, 67, 67, 67, 67, 67, 67, 67, 67, 509, 67, 67, 67, 67, 67, 67, 67, 67, 67, 268, 67, 67, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 97, 97, 290, 97, 97, 97, 305, 97, 97, 319, 97, 97, 97, 330, 97, 97, 18, 640, 139621, 0, 641, 0, 0, 0, 0, 364, 0, 643, 367, 41606, 97, 97, 348, 97, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 139621, 0, 0, 0, 0, 364, 0, 367, 41098, 369, 140, 45, 45, 45, 45, 380, 45, 45, 45, 45, 45, 45, 395, 45, 45, 45, 400, 369, 0, 45, 45, 45, 45, 45, 45, 45, 45, 658, 45, 45, 45, 45, 45, 972, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 427, 45, 45, 45, 45, 45, 745, 67, 67, 67, 67, 67, 67, 67, 67, 756, 67, 67, 67, 67, 67, 67, 67, 67, 37689, 1086, 25403, 1090, 66365, 1094, 0, 0, 97, 843, 97, 97, 97, 97, 97, 97, 97, 97, 854, 97, 97, 97, 97, 97, 97, 1121, 97, 97, 97, 97, 1126, 97, 97, 97, 97, 45, 980, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1400, 45, 67, 67, 67, 1011, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 1304, 0, 0, 0, 1190, 45, 45, 1193, 1194, 45, 45, 45, 45, 45, 1199, 45, 1201, 45, 45, 45, 45, 1911, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 1579, 67, 67, 67, 67, 45, 1205, 45, 45, 45, 45, 45, 45, 45, 45, 1211, 45, 45, 45, 45, 45, 984, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1550, 45, 45, 45, 45, 45, 1217, 45, 45, 45, 45, 45, 45, 1225, 45, 45, 45, 45, 1229, 45, 45, 45, 1388, 45, 45, 45, 45, 45, 45, 1396, 45, 45, 45, 45, 45, 444, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 1574, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1590, 67, 67, 67, 67, 67, 1254, 67, 67, 67, 67, 67, 1259, 67, 1261, 67, 67, 67, 67, 1265, 67, 67, 67, 67, 67, 67, 1708, 67, 67, 67, 67, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 97, 0, 0, 67, 67, 67, 67, 1285, 67, 67, 67, 67, 1289, 67, 67, 67, 67, 67, 67, 67, 67, 37689, 1087, 25403, 1091, 66365, 1095, 0, 0, 97, 97, 97, 97, 1339, 97, 1341, 97, 97, 97, 97, 1345, 97, 97, 97, 97, 97, 561, 97, 97, 97, 97, 97, 573, 97, 97, 97, 97, 97, 97, 1717, 97, 0, 97, 97, 97, 97, 97, 97, 97, 591, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1329, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1351, 97, 97, 97, 97, 97, 97, 1357, 97, 97, 97, 97, 97, 588, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 568, 97, 97, 97, 97, 97, 97, 97, 1365, 97, 97, 97, 97, 1369, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1356, 97, 97, 97, 97, 97, 97, 45, 45, 1403, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1399, 45, 45, 45, 1413, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1669, 45, 1422, 45, 45, 1425, 45, 45, 1428, 45, 1429, 67, 67, 67, 67, 67, 67, 67, 67, 1468, 67, 67, 67, 67, 67, 67, 67, 67, 529, 67, 67, 67, 67, 67, 67, 539, 67, 67, 1475, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140, 2170880, 2170880, 2170880, 2416640, 97, 97, 1530, 97, 0, 45, 45, 1534, 45, 45, 45, 45, 45, 45, 45, 45, 1956, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1599, 67, 67, 1601, 67, 67, 67, 67, 67, 67, 67, 67, 67, 803, 67, 67, 67, 67, 67, 67, 1632, 97, 1634, 0, 97, 97, 97, 1640, 97, 97, 97, 1643, 97, 97, 1645, 97, 97, 97, 97, 97, 912, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 0, 45, 45, 45, 45, 45, 45, 1660, 1661, 45, 45, 45, 45, 1665, 1666, 45, 45, 45, 45, 45, 1670, 1692, 1693, 67, 67, 67, 67, 67, 1697, 67, 67, 67, 67, 67, 67, 67, 1702, 97, 97, 1714, 1715, 97, 97, 97, 97, 0, 1721, 1722, 97, 97, 97, 97, 97, 97, 1353, 97, 97, 97, 97, 97, 97, 97, 97, 1362, 1726, 97, 0, 0, 97, 97, 97, 0, 97, 97, 97, 1734, 97, 97, 97, 97, 97, 848, 849, 97, 97, 97, 97, 856, 97, 97, 97, 97, 97, 354, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 45, 45, 1750, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1681, 45, 0, 1846, 97, 97, 97, 97, 97, 97, 45, 45, 1854, 45, 45, 45, 45, 1859, 67, 67, 67, 1879, 67, 67, 97, 97, 1884, 97, 97, 0, 0, 0, 97, 97, 97, 1105, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1344, 97, 97, 97, 1347, 97, 1892, 97, 0, 0, 0, 97, 97, 97, 1900, 97, 97, 45, 45, 45, 45, 45, 997, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1002, 45, 45, 1005, 1006, 45, 67, 67, 67, 67, 67, 1926, 67, 67, 1928, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 1737, 97, 0, 97, 97, 97, 97, 0, 0, 0, 97, 97, 1944, 97, 97, 1946, 45, 45, 45, 1544, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 190, 45, 45, 45, 152, 155, 45, 163, 45, 45, 177, 179, 182, 45, 45, 45, 193, 197, 45, 45, 45, 1672, 45, 45, 45, 45, 45, 1677, 45, 1679, 45, 45, 45, 45, 996, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1212, 45, 45, 45, 45, 67, 260, 264, 67, 67, 67, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 97, 97, 97, 295, 299, 302, 97, 310, 97, 97, 324, 326, 329, 97, 97, 97, 0, 97, 97, 1639, 0, 1641, 97, 97, 97, 97, 97, 97, 97, 97, 1511, 97, 97, 97, 97, 97, 97, 97, 97, 1523, 97, 97, 97, 97, 97, 97, 97, 97, 1719, 97, 97, 97, 97, 97, 97, 97, 97, 1720, 97, 97, 97, 97, 97, 97, 97, 312, 97, 97, 97, 97, 97, 97, 97, 97, 1123, 97, 97, 97, 97, 97, 97, 97, 340, 344, 97, 97, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 139621, 0, 0, 0, 0, 364, 0, 367, 41098, 369, 140, 45, 45, 373, 375, 419, 45, 45, 45, 45, 45, 45, 45, 45, 45, 428, 45, 45, 435, 45, 45, 45, 1751, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1410, 45, 45, 45, 67, 67, 67, 505, 67, 67, 67, 67, 67, 67, 67, 67, 67, 514, 67, 67, 67, 67, 67, 67, 1969, 67, 97, 97, 97, 97, 0, 0, 0, 97, 97, 45, 67, 0, 97, 45, 67, 0, 97, 2064, 2065, 0, 2066, 45, 521, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 534, 67, 67, 67, 67, 67, 67, 465, 67, 67, 67, 474, 67, 67, 67, 67, 67, 67, 67, 1467, 67, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 1933, 0, 97, 97, 97, 602, 97, 97, 97, 97, 97, 97, 97, 97, 97, 611, 97, 97, 18, 640, 139621, 358, 641, 0, 0, 0, 0, 364, 0, 0, 367, 0, 618, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 631, 97, 97, 97, 97, 97, 881, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 569, 97, 97, 97, 97, 97, 369, 0, 45, 652, 45, 45, 45, 45, 45, 657, 45, 45, 45, 45, 45, 45, 1235, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 1432, 67, 67, 67, 67, 67, 67, 67, 766, 67, 67, 67, 67, 67, 67, 67, 67, 773, 67, 67, 67, 0, 1305, 0, 1311, 0, 1317, 97, 97, 97, 97, 97, 97, 97, 1624, 97, 97, 97, 97, 97, 97, 97, 97, 0, 97, 97, 97, 1724, 97, 97, 97, 777, 67, 67, 782, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 535, 67, 67, 67, 67, 67, 67, 67, 814, 67, 67, 67, 67, 67, 67, 67, 67, 67, 37689, 544, 25403, 546, 70179, 0, 0, 66365, 66365, 552, 0, 97, 837, 97, 97, 97, 97, 97, 97, 1496, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 918, 97, 97, 97, 97, 0, 842, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1168, 97, 97, 97, 97, 864, 97, 97, 97, 97, 97, 97, 97, 97, 871, 97, 97, 97, 0, 1637, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1801, 45, 45, 97, 875, 97, 97, 880, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1151, 1152, 97, 97, 97, 67, 67, 67, 1040, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 790, 67, 67, 67, 1180, 0, 649, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 200, 45, 45, 67, 67, 67, 1454, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 806, 67, 67, 67, 0, 0, 0, 1481, 0, 1094, 0, 0, 97, 1483, 97, 97, 97, 97, 97, 97, 304, 97, 97, 318, 97, 97, 97, 97, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 97, 97, 97, 1507, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1332, 97, 97, 97, 1619, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1631, 97, 1633, 97, 0, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1381, 0, 0, 45, 45, 45, 45, 97, 97, 1727, 0, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 626, 97, 97, 97, 97, 97, 97, 636, 45, 45, 1760, 67, 67, 67, 67, 67, 67, 67, 1765, 67, 67, 67, 67, 67, 67, 67, 1299, 67, 67, 67, 0, 0, 0, 0, 0, 0, 97, 97, 97, 97, 1616, 97, 97, 1803, 45, 45, 45, 45, 1807, 45, 45, 45, 45, 45, 1813, 45, 45, 45, 67, 67, 1684, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 822, 67, 67, 37689, 544, 67, 67, 1818, 67, 67, 67, 67, 1822, 67, 67, 67, 67, 67, 1828, 67, 67, 67, 67, 67, 97, 0, 0, 97, 97, 97, 97, 97, 45, 45, 45, 2012, 2013, 45, 45, 67, 67, 67, 2018, 2019, 67, 67, 97, 67, 97, 97, 97, 1833, 97, 97, 0, 0, 97, 97, 1840, 97, 97, 0, 0, 97, 97, 97, 0, 97, 97, 1733, 97, 1735, 97, 97, 97, 0, 97, 97, 97, 1849, 97, 97, 97, 45, 45, 45, 45, 45, 1857, 45, 45, 45, 1910, 45, 1912, 45, 45, 1914, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1017, 67, 67, 1020, 67, 45, 1861, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 1872, 67, 67, 67, 67, 67, 67, 752, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1446, 67, 67, 67, 67, 67, 1876, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 0, 0, 0, 1890, 97, 97, 97, 97, 97, 1134, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 570, 97, 97, 97, 97, 580, 1935, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 1906, 45, 67, 67, 67, 67, 2048, 0, 97, 97, 97, 97, 45, 45, 67, 67, 0, 0, 0, 0, 925, 41606, 0, 0, 0, 931, 45, 45, 45, 45, 45, 45, 1674, 45, 1676, 45, 45, 45, 45, 45, 45, 45, 446, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 1871, 67, 67, 67, 67, 0, 97, 97, 45, 67, 0, 97, 2060, 2061, 0, 2063, 45, 67, 0, 97, 45, 45, 156, 45, 45, 45, 45, 45, 45, 45, 45, 45, 192, 45, 45, 45, 45, 1673, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 429, 45, 45, 45, 45, 67, 67, 67, 269, 67, 67, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 97, 97, 349, 97, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 139621, 0, 0, 0, 0, 364, 0, 367, 41098, 369, 140, 45, 45, 374, 45, 45, 67, 67, 213, 217, 67, 67, 67, 67, 67, 242, 67, 247, 67, 253, 45, 45, 698, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 399, 45, 45, 0, 0, 0, 0, 925, 41606, 0, 929, 0, 0, 45, 45, 45, 45, 45, 45, 1391, 45, 45, 1395, 45, 45, 45, 45, 45, 45, 423, 45, 45, 45, 45, 45, 45, 45, 436, 45, 67, 67, 67, 67, 1041, 67, 1043, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1776, 67, 67, 97, 97, 97, 1099, 0, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 888, 97, 97, 97, 1131, 97, 97, 97, 97, 1135, 97, 1137, 97, 97, 97, 97, 97, 97, 97, 1497, 97, 97, 97, 97, 97, 97, 97, 97, 97, 883, 97, 97, 97, 97, 97, 97, 1310, 0, 0, 0, 1316, 0, 0, 0, 0, 1100, 0, 0, 0, 97, 97, 97, 97, 97, 1107, 97, 97, 97, 97, 97, 97, 97, 97, 1343, 97, 97, 97, 97, 97, 97, 1348, 0, 0, 1317, 0, 0, 0, 0, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1112, 97, 45, 1804, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 1868, 67, 1870, 67, 67, 67, 67, 67, 1817, 67, 67, 1819, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 823, 67, 37689, 544, 67, 97, 1832, 97, 97, 1834, 97, 0, 0, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 0, 1732, 97, 97, 97, 97, 97, 97, 97, 850, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1177, 0, 0, 925, 0, 0, 0, 0, 97, 97, 97, 97, 0, 0, 1941, 97, 97, 97, 97, 97, 97, 45, 45, 45, 1991, 1992, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1998, 134, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 41098, 45, 45, 45, 45, 941, 45, 45, 944, 45, 45, 45, 45, 45, 45, 952, 45, 45, 207, 67, 67, 67, 67, 67, 226, 67, 67, 67, 67, 67, 67, 67, 67, 67, 820, 67, 67, 67, 67, 37689, 544, 369, 650, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1682, 25403, 546, 70179, 0, 0, 66365, 66365, 552, 835, 97, 97, 97, 97, 97, 97, 97, 1522, 97, 97, 97, 97, 97, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 1725, 67, 67, 67, 1695, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1034, 67, 1036, 67, 67, 67, 265, 67, 67, 67, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 97, 97, 97, 296, 97, 97, 97, 97, 314, 97, 97, 97, 97, 332, 334, 97, 97, 97, 97, 97, 1146, 1147, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1626, 97, 97, 97, 97, 97, 97, 345, 97, 97, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 139621, 0, 0, 0, 0, 364, 0, 367, 41098, 369, 140, 45, 372, 45, 45, 45, 1220, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1213, 45, 45, 45, 45, 404, 406, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 434, 45, 45, 45, 440, 45, 45, 45, 45, 45, 45, 45, 45, 451, 452, 45, 45, 45, 67, 1683, 67, 67, 67, 1686, 67, 67, 67, 67, 67, 67, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 67, 67, 67, 67, 490, 492, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1447, 67, 67, 1450, 67, 67, 67, 67, 67, 526, 67, 67, 67, 67, 67, 67, 67, 67, 537, 538, 67, 67, 67, 67, 67, 506, 67, 67, 508, 67, 67, 511, 67, 67, 67, 67, 0, 1476, 0, 0, 0, 0, 0, 1478, 0, 0, 0, 0, 0, 0, 0, 0, 97, 97, 1484, 97, 97, 97, 97, 97, 97, 865, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1499, 97, 97, 97, 97, 97, 97, 97, 97, 97, 587, 589, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 629, 97, 97, 97, 97, 97, 97, 97, 97, 97, 623, 97, 97, 97, 97, 97, 97, 97, 97, 634, 635, 97, 97, 97, 97, 97, 1160, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1628, 97, 97, 97, 97, 369, 0, 45, 45, 45, 45, 45, 655, 45, 45, 45, 45, 45, 45, 45, 45, 999, 45, 1001, 45, 45, 45, 45, 45, 45, 45, 45, 715, 45, 45, 45, 720, 45, 45, 45, 45, 45, 45, 45, 45, 728, 25403, 546, 70179, 0, 0, 66365, 66365, 552, 0, 97, 97, 97, 97, 97, 840, 97, 97, 97, 97, 97, 1174, 97, 97, 97, 97, 0, 0, 925, 0, 0, 0, 0, 0, 0, 0, 1100, 97, 97, 97, 97, 97, 97, 97, 97, 627, 97, 97, 97, 97, 97, 97, 97, 938, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 680, 45, 968, 45, 970, 45, 973, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 962, 45, 45, 45, 45, 45, 979, 45, 45, 45, 45, 45, 985, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1224, 45, 45, 45, 45, 45, 45, 45, 45, 688, 45, 45, 45, 45, 45, 45, 45, 1007, 1008, 67, 67, 67, 67, 67, 1014, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1045, 67, 67, 67, 67, 67, 67, 67, 1038, 67, 67, 67, 67, 67, 67, 1044, 67, 1046, 67, 1049, 67, 67, 67, 67, 67, 67, 800, 67, 67, 67, 67, 67, 67, 808, 67, 67, 0, 0, 0, 1102, 97, 97, 97, 97, 97, 1108, 97, 97, 97, 97, 97, 97, 306, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1371, 97, 97, 97, 97, 97, 97, 97, 97, 1132, 97, 97, 97, 97, 97, 97, 1138, 97, 1140, 97, 1143, 97, 97, 97, 97, 97, 1352, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 869, 97, 97, 97, 97, 97, 45, 1191, 45, 45, 45, 45, 45, 1196, 45, 45, 45, 45, 45, 45, 45, 45, 1407, 45, 45, 45, 45, 45, 45, 45, 45, 986, 45, 45, 45, 45, 45, 45, 991, 45, 67, 67, 67, 1256, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1048, 67, 67, 67, 97, 1336, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 615, 97, 1386, 45, 1387, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 455, 45, 457, 45, 45, 1424, 45, 45, 45, 45, 45, 67, 67, 67, 67, 1433, 67, 1434, 67, 67, 67, 67, 67, 767, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1591, 67, 1593, 67, 67, 45, 45, 1805, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1814, 45, 45, 1816, 67, 67, 67, 67, 1820, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1829, 67, 67, 67, 67, 67, 815, 67, 67, 67, 67, 821, 67, 67, 67, 37689, 544, 67, 1831, 97, 97, 97, 97, 1835, 0, 0, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 1731, 97, 97, 97, 97, 97, 97, 97, 97, 97, 853, 97, 97, 97, 97, 97, 97, 0, 97, 97, 97, 97, 1850, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 1547, 45, 45, 45, 45, 45, 45, 45, 45, 1664, 45, 45, 45, 45, 45, 45, 45, 45, 961, 45, 45, 45, 45, 965, 45, 967, 1907, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 1920, 0, 1936, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 97, 97, 45, 45, 67, 67, 67, 67, 67, 67, 1763, 67, 67, 67, 67, 67, 67, 67, 67, 1056, 67, 67, 67, 67, 67, 67, 67, 67, 1273, 67, 67, 67, 67, 67, 67, 67, 67, 1457, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 0, 0, 28672, 97, 45, 67, 67, 67, 67, 0, 0, 97, 97, 97, 97, 45, 45, 67, 67, 2054, 97, 97, 291, 97, 97, 97, 97, 97, 97, 320, 97, 97, 97, 97, 97, 97, 307, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 12288, 0, 925, 926, 1179, 0, 45, 377, 45, 45, 45, 381, 45, 45, 392, 45, 45, 396, 45, 45, 45, 45, 971, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1756, 45, 45, 45, 67, 67, 67, 67, 463, 67, 67, 67, 467, 67, 67, 478, 67, 67, 482, 67, 67, 67, 67, 67, 1028, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1469, 67, 67, 1472, 67, 502, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1460, 67, 97, 97, 97, 97, 560, 97, 97, 97, 564, 97, 97, 575, 97, 97, 579, 97, 97, 97, 97, 97, 1368, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 925, 0, 0, 930, 97, 599, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 872, 97, 45, 666, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1758, 0, 362, 0, 0, 925, 41606, 0, 0, 0, 0, 45, 45, 934, 45, 45, 45, 164, 168, 174, 178, 45, 45, 45, 45, 45, 194, 45, 45, 45, 165, 45, 45, 45, 45, 45, 45, 45, 45, 45, 199, 45, 45, 45, 67, 67, 1010, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1060, 67, 67, 67, 67, 67, 67, 1052, 1053, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1063, 97, 1157, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1167, 97, 97, 97, 97, 97, 1379, 97, 97, 97, 0, 0, 0, 45, 1383, 45, 45, 45, 1806, 45, 45, 45, 45, 45, 45, 1812, 45, 45, 45, 45, 67, 67, 67, 67, 67, 1577, 67, 67, 67, 67, 67, 67, 67, 753, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1262, 67, 67, 67, 67, 67, 67, 67, 1282, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1471, 67, 45, 1402, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 417, 45, 67, 1462, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 37689, 544, 97, 1517, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1128, 97, 97, 97, 97, 1636, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 851, 97, 97, 97, 97, 97, 97, 97, 67, 67, 1705, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 1842, 0, 0, 1779, 97, 97, 97, 1782, 97, 0, 0, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 1789, 97, 97, 0, 0, 0, 97, 1847, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 1675, 45, 45, 45, 45, 45, 45, 45, 45, 737, 738, 67, 740, 67, 741, 67, 743, 67, 67, 67, 67, 67, 67, 1968, 67, 67, 97, 97, 97, 97, 0, 0, 0, 97, 97, 45, 67, 0, 97, 45, 67, 2062, 97, 45, 67, 0, 97, 45, 67, 67, 97, 97, 2001, 97, 0, 0, 2004, 97, 97, 0, 97, 97, 97, 97, 1797, 97, 97, 97, 97, 97, 45, 45, 45, 67, 261, 67, 67, 67, 67, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 97, 97, 292, 97, 97, 97, 97, 311, 315, 321, 325, 97, 97, 97, 97, 97, 97, 1623, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1330, 97, 97, 1333, 1334, 97, 341, 97, 97, 97, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 139621, 0, 0, 0, 363, 364, 0, 367, 41098, 369, 140, 45, 45, 45, 45, 1221, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 413, 45, 45, 416, 45, 376, 45, 45, 45, 45, 382, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1408, 45, 45, 45, 45, 45, 403, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 414, 45, 45, 45, 418, 67, 67, 67, 462, 67, 67, 67, 67, 468, 67, 67, 67, 67, 67, 67, 67, 67, 1602, 67, 1604, 67, 67, 67, 67, 67, 67, 67, 67, 489, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 500, 67, 67, 67, 67, 67, 1067, 67, 67, 67, 67, 67, 1072, 67, 67, 67, 67, 67, 67, 274, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 67, 67, 504, 67, 67, 67, 67, 67, 67, 67, 510, 67, 67, 67, 517, 519, 541, 67, 37139, 37139, 24853, 24853, 0, 70179, 0, 0, 0, 65820, 65820, 369, 287, 554, 97, 97, 97, 559, 97, 97, 97, 97, 565, 97, 97, 97, 97, 97, 97, 97, 1718, 0, 97, 97, 97, 97, 97, 97, 97, 898, 97, 97, 97, 97, 97, 97, 906, 97, 97, 97, 97, 586, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 597, 97, 97, 97, 97, 97, 1520, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 45, 1656, 45, 45, 45, 97, 97, 601, 97, 97, 97, 97, 97, 97, 97, 607, 97, 97, 97, 614, 616, 638, 97, 18, 0, 139621, 0, 0, 0, 0, 0, 0, 364, 0, 0, 367, 41606, 369, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 661, 45, 45, 45, 407, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1815, 45, 67, 45, 667, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 678, 45, 45, 45, 421, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 976, 977, 45, 45, 45, 682, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 693, 45, 45, 697, 67, 67, 748, 67, 67, 67, 67, 754, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1274, 67, 67, 67, 67, 67, 67, 67, 67, 765, 67, 67, 67, 67, 769, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1589, 67, 67, 67, 67, 67, 67, 67, 67, 780, 67, 67, 784, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1777, 67, 97, 97, 97, 97, 97, 97, 846, 97, 97, 97, 97, 852, 97, 97, 97, 97, 97, 97, 97, 1742, 45, 45, 45, 45, 45, 45, 45, 1747, 97, 97, 97, 863, 97, 97, 97, 97, 867, 97, 97, 97, 97, 97, 97, 97, 308, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 12288, 1178, 925, 0, 1179, 0, 97, 97, 97, 878, 97, 97, 882, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 12288, 0, 925, 0, 1179, 0, 908, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 925, 0, 0, 0, 954, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 963, 45, 45, 966, 45, 45, 157, 45, 45, 171, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 948, 45, 45, 45, 45, 45, 1022, 67, 67, 1026, 67, 67, 67, 1030, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1603, 1605, 67, 67, 67, 1608, 67, 67, 67, 1039, 67, 67, 1042, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 471, 67, 67, 67, 67, 67, 0, 1100, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 904, 97, 97, 97, 97, 1116, 97, 97, 1120, 97, 97, 97, 1124, 97, 97, 97, 97, 97, 97, 562, 97, 97, 97, 571, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1133, 97, 97, 1136, 97, 97, 97, 97, 97, 97, 97, 97, 915, 917, 97, 97, 97, 97, 97, 0, 97, 1170, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 925, 0, 0, 0, 0, 0, 41606, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 1993, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1275, 67, 67, 67, 1278, 67, 0, 0, 0, 45, 45, 1182, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1189, 1204, 45, 45, 45, 1207, 45, 45, 1209, 45, 1210, 45, 45, 45, 45, 45, 45, 1546, 45, 45, 45, 45, 45, 45, 45, 45, 45, 689, 45, 45, 45, 45, 45, 45, 1231, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 236, 67, 67, 67, 67, 67, 67, 67, 801, 67, 67, 67, 805, 67, 67, 67, 67, 67, 1242, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1249, 67, 67, 67, 67, 67, 67, 507, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1300, 0, 0, 0, 0, 0, 1267, 67, 67, 1269, 67, 1270, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1280, 97, 1349, 97, 1350, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1360, 97, 97, 97, 0, 1980, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 673, 45, 45, 45, 45, 677, 45, 45, 45, 45, 1401, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 953, 67, 1437, 67, 1440, 67, 67, 67, 67, 1445, 67, 67, 67, 1448, 67, 67, 67, 67, 67, 67, 1029, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1825, 67, 67, 67, 67, 67, 1473, 67, 67, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 0, 834, 97, 97, 97, 97, 1490, 97, 1493, 97, 97, 97, 97, 1498, 97, 97, 97, 1501, 97, 97, 97, 0, 97, 1638, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 916, 97, 97, 97, 97, 97, 97, 0, 1528, 97, 97, 97, 0, 45, 45, 45, 1535, 45, 45, 45, 45, 45, 45, 45, 1867, 67, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 1932, 0, 0, 1555, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1567, 45, 45, 158, 45, 45, 172, 45, 45, 45, 183, 45, 45, 45, 45, 201, 45, 45, 67, 212, 67, 67, 67, 67, 231, 235, 241, 245, 67, 67, 67, 67, 67, 67, 493, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 472, 67, 67, 67, 67, 67, 97, 97, 97, 97, 1651, 97, 97, 97, 97, 97, 0, 45, 45, 45, 45, 45, 45, 45, 1539, 45, 45, 45, 67, 1704, 67, 1706, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 1841, 97, 0, 1844, 97, 97, 97, 97, 1716, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 590, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 0, 45, 45, 45, 1385, 1748, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1757, 45, 45, 159, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 415, 45, 45, 97, 97, 1780, 97, 97, 97, 0, 0, 1786, 97, 97, 97, 97, 97, 0, 0, 97, 97, 1730, 0, 97, 97, 97, 97, 97, 1736, 97, 1738, 67, 97, 97, 97, 97, 97, 97, 0, 1838, 97, 97, 97, 97, 97, 0, 0, 97, 1729, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 1162, 97, 97, 97, 1165, 97, 97, 97, 45, 1950, 45, 45, 45, 45, 45, 45, 45, 45, 1958, 67, 67, 67, 1962, 67, 67, 67, 67, 67, 1246, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 97, 1710, 97, 97, 97, 1999, 67, 97, 97, 97, 97, 0, 2003, 97, 97, 97, 0, 97, 97, 2008, 2009, 45, 67, 67, 67, 67, 0, 0, 97, 97, 97, 97, 45, 2052, 67, 2053, 0, 0, 0, 0, 925, 41606, 0, 0, 930, 0, 45, 45, 45, 45, 45, 45, 1392, 45, 1394, 45, 45, 45, 45, 45, 45, 45, 1545, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1563, 1565, 45, 45, 45, 1568, 0, 97, 2055, 45, 67, 0, 97, 45, 67, 0, 97, 45, 67, 28672, 97, 45, 45, 160, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 679, 45, 45, 67, 67, 266, 67, 67, 67, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 97, 346, 97, 97, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 139621, 0, 0, 362, 0, 364, 0, 367, 41098, 369, 140, 371, 45, 45, 45, 379, 45, 45, 45, 388, 45, 45, 45, 45, 45, 45, 45, 45, 1663, 45, 45, 45, 45, 45, 45, 45, 45, 45, 449, 45, 45, 45, 45, 45, 67, 67, 542, 37139, 37139, 24853, 24853, 0, 70179, 0, 0, 0, 65820, 65820, 369, 287, 97, 97, 97, 97, 97, 1622, 97, 97, 97, 97, 97, 97, 97, 1629, 97, 97, 0, 1794, 1795, 97, 97, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 1745, 45, 45, 97, 639, 18, 0, 139621, 0, 0, 0, 0, 0, 0, 364, 0, 0, 367, 41606, 45, 731, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 251, 67, 67, 67, 67, 67, 798, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1073, 67, 67, 67, 860, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 873, 0, 0, 1101, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 921, 97, 0, 67, 67, 67, 67, 1245, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1250, 67, 67, 1253, 0, 0, 1312, 0, 0, 0, 1318, 0, 0, 0, 0, 0, 0, 97, 97, 97, 97, 1106, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1149, 97, 97, 97, 97, 97, 1155, 97, 97, 1325, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1141, 97, 97, 67, 67, 1439, 67, 1441, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1264, 67, 67, 67, 97, 97, 1492, 97, 1494, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1331, 97, 97, 97, 97, 67, 67, 67, 2037, 67, 97, 0, 0, 97, 97, 97, 2043, 97, 45, 45, 45, 442, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 232, 67, 67, 67, 67, 67, 67, 67, 67, 1823, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 1975, 0, 0, 97, 874, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1142, 97, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 65, 86, 117, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 63, 84, 115, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 61, 82, 113, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 59, 80, 111, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 57, 78, 109, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 55, 76, 107, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 53, 74, 105, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 51, 72, 103, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 49, 70, 101, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 47, 68, 99, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 45, 67, 97, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 213085, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 0, 0, 44, 0, 0, 32863, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 41, 41, 41, 0, 0, 1138688, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 0, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 89, 53264, 18, 18, 49172, 0, 57366, 0, 24, 24, 24, 0, 127, 127, 127, 127, 102432, 67, 262, 67, 67, 67, 67, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 342, 97, 97, 97, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 139621, 0, 360, 0, 0, 364, 0, 367, 41098, 369, 140, 45, 45, 45, 45, 717, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 412, 45, 45, 45, 45, 45, 67, 1009, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1292, 67, 67, 1294, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 0, 0, 0, 0, 0, 97, 97, 97, 1615, 97, 97, 97, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 66, 87, 118, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 64, 85, 116, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 62, 83, 114, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 60, 81, 112, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 58, 79, 110, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 56, 77, 108, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 54, 75, 106, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 52, 73, 104, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 50, 71, 102, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 48, 69, 100, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 46, 67, 98, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 233472, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 69724, 53264, 18, 18, 49172, 0, 57366, 262144, 24, 24, 24, 0, 28, 28, 28, 28, 102432, 45, 45, 161, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 710, 45, 45, 28, 139621, 359, 0, 0, 0, 364, 0, 367, 41098, 369, 140, 45, 45, 45, 45, 1389, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 949, 45, 45, 45, 45, 67, 503, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1449, 67, 67, 97, 600, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1154, 97, 0, 0, 0, 0, 925, 41606, 927, 0, 0, 0, 45, 45, 45, 45, 45, 45, 1866, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 772, 67, 67, 67, 67, 67, 45, 45, 969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 951, 45, 45, 45, 45, 1192, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1202, 45, 45, 0, 0, 0, 1314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 97, 97, 97, 97, 97, 97, 1488, 67, 67, 267, 67, 67, 67, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 97, 347, 97, 97, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 139621, 0, 361, 0, 0, 364, 0, 367, 41098, 369, 140, 45, 45, 45, 45, 734, 45, 45, 45, 67, 67, 67, 67, 67, 742, 67, 67, 45, 45, 668, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1214, 45, 45, 1130, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1361, 97, 45, 45, 1671, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1552, 45, 45, 0, 0, 0, 0, 2220032, 0, 0, 1130496, 0, 0, 0, 0, 2170880, 2171020, 2170880, 2170880, 18, 0, 0, 131072, 0, 0, 0, 90112, 0, 2220032, 0, 0, 0, 0, 0, 0, 0, 0, 97, 97, 97, 1485, 97, 97, 97, 97, 0, 45, 45, 45, 45, 45, 1537, 45, 45, 45, 45, 45, 1390, 45, 1393, 45, 45, 45, 45, 1398, 45, 45, 45, 2170880, 2171167, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2576384, 2215936, 3117056, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 0, 0, 0, 0, 0, 0, 2174976, 0, 0, 0, 0, 0, 0, 2183168, 0, 0, 0, 0, 2170880, 2170880, 2170880, 2400256, 2170880, 2170880, 2170880, 2170880, 2721252, 2744320, 2170880, 2170880, 2170880, 2834432, 2840040, 2170880, 2908160, 2170880, 2170880, 2936832, 2170880, 2170880, 2985984, 2170880, 2994176, 2170880, 2170880, 3014656, 2170880, 3059712, 3076096, 3088384, 2170880, 2170880, 2170880, 2170880, 0, 0, 0, 0, 2220032, 0, 0, 0, 1142784, 0, 0, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3215360, 2215936, 2215936, 2215936, 2215936, 2215936, 2437120, 2215936, 2215936, 2215936, 3117056, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 0, 543, 0, 545, 0, 0, 2183168, 0, 0, 831, 0, 2170880, 2170880, 2170880, 2400256, 2170880, 2170880, 2170880, 2170880, 3031040, 2170880, 3055616, 2170880, 2170880, 2170880, 2170880, 3092480, 2170880, 2170880, 3125248, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3198976, 2170880, 0, 0, 0, 0, 0, 0, 67, 67, 37139, 37139, 24853, 24853, 0, 0, 0, 0, 0, 65820, 65820, 0, 287, 97, 97, 97, 97, 97, 1783, 0, 0, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 97, 97, 1791, 0, 0, 546, 70179, 0, 0, 0, 0, 552, 0, 97, 97, 97, 97, 97, 97, 97, 604, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1150, 97, 97, 97, 97, 97, 147456, 147456, 147456, 147456, 147456, 147456, 147456, 147456, 147456, 147456, 147456, 147456, 0, 0, 147456, 0, 0, 0, 0, 925, 41606, 0, 928, 0, 0, 45, 45, 45, 45, 45, 45, 998, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1562, 45, 1564, 45, 45, 45, 45, 0, 2158592, 2158592, 0, 0, 0, 0, 2232320, 2232320, 2232320, 0, 2240512, 2240512, 2240512, 2240512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2170880, 2170880, 2170880, 2416640\n];\n\nJSONiqTokenizer.EXPECTED =\n[ 291, 300, 304, 341, 315, 309, 305, 295, 319, 323, 327, 329, 296, 333, 337, 339, 342, 346, 350, 294, 356, 360, 312, 367, 352, 371, 363, 375, 379, 383, 387, 391, 395, 726, 399, 405, 518, 684, 405, 405, 405, 405, 808, 405, 405, 405, 512, 405, 405, 405, 431, 405, 405, 406, 405, 405, 404, 405, 405, 405, 405, 405, 405, 405, 908, 631, 410, 415, 405, 414, 419, 608, 405, 429, 602, 405, 435, 443, 405, 441, 641, 478, 405, 447, 451, 450, 456, 643, 461, 460, 762, 679, 465, 469, 741, 473, 477, 482, 486, 492, 932, 931, 523, 498, 504, 720, 405, 510, 596, 405, 516, 941, 580, 522, 929, 527, 590, 589, 897, 939, 534, 538, 547, 551, 555, 559, 563, 567, 571, 969, 575, 708, 690, 689, 579, 584, 634, 405, 594, 731, 405, 600, 882, 405, 606, 895, 786, 452, 612, 405, 615, 620, 876, 624, 628, 638, 647, 651, 655, 659, 663, 667, 676, 683, 688, 695, 694, 791, 405, 699, 437, 405, 706, 714, 405, 712, 825, 870, 405, 718, 724, 769, 768, 823, 730, 735, 745, 751, 422, 755, 759, 425, 766, 902, 810, 587, 775, 888, 887, 405, 773, 992, 405, 779, 962, 405, 785, 781, 986, 790, 795, 797, 506, 500, 499, 801, 805, 814, 820, 829, 833, 837, 841, 845, 849, 853, 857, 861, 616, 865, 869, 868, 488, 405, 874, 816, 405, 880, 738, 405, 886, 892, 543, 405, 901, 906, 913, 912, 918, 494, 541, 922, 926, 936, 945, 949, 953, 957, 530, 966, 973, 960, 702, 701, 405, 979, 981, 405, 985, 747, 405, 990, 998, 914, 405, 996, 1004, 672, 975, 974, 1014, 1002, 1008, 670, 1012, 405, 405, 405, 405, 405, 401, 1018, 1022, 1026, 1106, 1071, 1111, 1111, 1111, 1082, 1145, 1030, 1101, 1034, 1038, 1106, 1106, 1106, 1106, 1046, 1206, 1052, 1106, 1072, 1111, 1111, 1042, 1134, 1065, 1111, 1112, 1056, 1160, 1207, 1062, 1204, 1208, 1069, 1106, 1106, 1106, 1076, 1111, 1207, 1161, 1122, 1205, 1064, 1094, 1106, 1106, 1107, 1111, 1111, 1111, 1078, 1086, 1207, 1092, 1098, 1046, 1058, 1106, 1106, 1110, 1111, 1111, 1116, 1120, 1161, 1126, 1202, 1104, 1106, 1145, 1146, 1129, 1138, 1088, 1151, 1048, 1157, 1153, 1132, 1141, 1165, 1107, 1111, 1172, 1179, 1109, 1183, 1175, 1143, 1147, 1187, 1108, 1191, 1195, 1144, 1199, 1168, 1212, 1216, 1220, 1224, 1228, 1232, 1236, 1557, 1247, 1241, 1241, 1038, 1434, 1241, 1241, 1241, 1241, 1254, 1275, 1617, 1241, 1280, 1287, 1241, 1241, 1241, 1287, 1241, 2114, 1291, 1241, 1243, 1241, 2049, 1824, 2094, 2095, 1520, 1309, 1241, 1241, 1302, 1241, 1321, 1311, 1241, 1241, 1313, 1778, 1325, 1336, 1241, 1241, 1325, 1330, 1353, 1241, 1241, 1695, 1354, 1241, 1241, 1241, 1294, 1686, 1331, 1241, 1696, 1368, 1241, 1338, 1370, 1241, 1392, 1399, 1364, 2017, 1406, 2016, 1405, 1716, 1406, 1407, 1422, 1417, 1421, 1241, 1241, 1241, 1349, 1426, 1241, 1774, 1756, 1241, 1773, 1241, 1241, 1345, 1964, 1812, 1432, 1241, 1241, 1345, 1993, 1459, 1241, 1241, 1241, 1395, 1848, 1767, 1465, 1241, 1241, 1394, 1847, 1242, 1477, 1241, 1241, 1428, 1241, 1445, 1492, 1241, 1241, 1438, 1241, 1499, 1241, 1241, 1241, 1455, 1241, 1818, 1448, 1241, 1250, 1241, 2026, 1623, 1449, 1241, 1612, 1616, 1241, 1614, 1241, 1257, 1241, 1241, 1985, 1292, 1586, 1512, 1241, 1517, 2050, 1526, 1674, 1519, 1524, 1647, 2051, 1532, 1537, 1551, 1544, 1550, 1555, 1561, 1571, 1578, 1584, 1590, 1591, 1653, 1595, 1602, 1606, 1610, 1634, 1628, 1640, 1633, 1645, 1241, 1241, 1241, 1469, 1241, 1970, 1651, 1241, 1270, 1241, 1241, 1819, 1449, 1241, 1293, 1664, 1241, 1241, 1481, 1485, 1574, 1672, 1241, 1241, 1513, 1317, 1487, 1684, 1241, 1241, 1533, 1299, 1694, 1241, 1241, 1295, 1241, 1241, 1241, 1546, 1700, 1241, 1241, 1707, 1241, 1713, 1241, 1849, 1715, 1241, 1720, 1241, 1276, 1267, 1241, 1241, 2107, 1657, 1864, 1241, 1881, 1241, 1326, 1292, 1241, 1685, 1358, 1724, 1338, 1241, 1363, 1362, 1342, 1340, 1361, 1339, 1833, 1372, 1360, 1833, 1833, 1342, 1343, 1835, 1341, 1731, 1738, 1344, 1241, 1745, 1241, 1379, 1241, 1241, 2092, 1241, 1388, 1761, 1754, 1241, 1386, 1241, 1400, 1760, 1241, 1241, 1241, 1598, 1734, 1241, 1241, 1241, 1635, 1645, 1241, 1780, 1766, 1241, 1241, 1332, 1771, 1241, 1241, 1629, 2079, 1241, 1242, 1784, 1241, 1241, 1680, 1639, 2063, 1790, 1241, 1241, 1741, 1241, 1241, 1800, 1241, 1241, 1762, 1473, 1241, 1806, 1241, 1241, 1786, 1240, 1709, 1241, 1241, 1241, 1668, 1811, 1241, 1940, 1241, 1401, 1974, 1241, 1408, 1413, 1382, 1241, 1816, 1241, 1241, 1802, 2086, 1811, 1241, 1817, 1945, 1823, 2095, 2095, 2047, 2094, 2046, 2080, 1241, 1409, 1312, 1376, 2096, 2048, 1241, 1241, 1807, 1241, 1241, 1241, 2035, 1241, 1241, 1828, 1241, 2057, 2061, 1241, 1241, 1843, 1241, 2059, 1241, 1241, 1241, 1690, 1847, 1241, 1241, 1241, 1703, 2102, 1848, 1241, 1241, 1853, 1292, 1848, 1241, 2016, 1857, 1241, 2002, 1868, 1241, 1436, 1241, 1241, 1271, 1305, 1241, 1874, 1241, 1241, 1884, 2037, 1892, 1241, 1890, 1241, 1461, 1241, 1241, 1795, 1241, 1241, 1891, 1241, 1878, 1241, 1888, 1241, 1888, 1905, 1896, 2087, 1912, 1903, 1241, 1911, 1906, 1916, 1905, 2027, 1863, 1925, 2088, 1859, 1861, 1922, 1927, 1931, 1935, 1494, 1241, 1241, 1918, 1907, 1939, 1917, 1944, 1949, 1241, 1241, 1451, 1955, 1241, 1241, 1241, 1796, 1727, 2061, 1241, 1241, 1899, 1241, 1660, 1968, 1241, 1241, 1951, 1678, 1978, 1241, 1241, 1241, 1839, 1241, 1241, 1984, 1982, 1241, 1488, 1241, 1241, 1624, 1450, 1989, 1241, 1241, 1241, 1870, 1995, 1292, 1241, 1241, 1958, 1261, 1241, 1996, 1241, 1241, 1241, 2039, 2008, 1241, 1241, 1750, 2000, 1241, 1256, 2001, 1960, 1241, 1564, 1241, 1504, 1241, 1241, 1442, 1241, 1241, 1564, 1528, 1263, 1241, 1508, 1241, 1241, 1468, 1498, 2006, 1540, 2015, 1539, 2014, 1748, 2013, 1539, 1831, 2014, 2012, 1500, 1567, 2022, 2021, 1241, 1580, 1241, 1241, 2033, 2037, 1791, 2045, 2031, 1241, 1621, 1241, 1641, 2044, 1241, 1241, 1241, 2093, 1241, 1241, 2055, 1241, 1241, 2067, 1241, 1283, 1241, 1241, 1241, 2101, 2071, 1241, 1241, 1241, 2073, 1848, 2040, 1241, 1241, 1241, 2077, 1241, 1241, 2106, 1241, 1241, 2084, 1241, 2111, 1241, 1241, 1381, 1380, 1241, 1241, 1241, 2100, 1241, 2129, 2118, 2122, 2126, 2197, 2133, 3010, 2825, 2145, 2698, 2156, 2226, 2160, 2161, 2165, 2174, 2293, 2194, 2630, 2201, 2203, 2152, 3019, 2226, 2263, 2209, 2213, 2218, 2269, 2292, 2269, 2269, 2184, 2226, 2238, 2148, 2151, 3017, 2245, 2214, 2269, 2269, 2185, 2226, 2292, 2269, 2291, 2269, 2269, 2269, 2292, 2205, 3019, 2226, 2226, 2160, 2160, 2160, 2261, 2160, 2160, 2160, 2262, 2276, 2160, 2160, 2277, 2216, 2283, 2216, 2269, 2269, 2268, 2269, 2267, 2269, 2269, 2269, 2271, 2568, 2292, 2269, 2293, 2269, 2182, 2190, 2269, 2186, 2226, 2226, 2226, 2226, 2227, 2160, 2160, 2160, 2160, 2263, 2160, 2275, 2277, 2282, 2215, 2217, 2269, 2269, 2291, 2269, 2269, 2293, 2291, 2269, 2220, 2269, 2295, 2294, 2269, 2269, 2305, 2233, 2262, 2278, 2218, 2269, 2234, 2226, 2226, 2228, 2160, 2160, 2160, 2289, 2220, 2294, 2294, 2269, 2269, 2304, 2269, 2160, 2160, 2287, 2269, 2269, 2305, 2269, 2269, 2312, 2269, 2269, 2225, 2226, 2160, 2287, 2289, 2219, 2304, 2295, 2314, 2234, 2226, 2314, 2269, 2226, 2226, 2160, 2288, 2219, 2222, 2304, 2296, 2269, 2224, 2160, 2160, 2269, 2302, 2294, 2314, 2224, 2226, 2288, 2220, 2294, 2269, 2290, 2269, 2269, 2293, 2269, 2269, 2269, 2269, 2270, 2221, 2313, 2225, 2227, 2160, 2300, 2269, 2225, 2261, 2309, 2234, 2229, 2223, 2318, 2318, 2318, 2328, 2336, 2340, 2344, 2350, 2637, 2712, 2358, 2362, 2372, 2135, 2378, 2398, 2135, 2135, 2135, 2135, 2136, 2417, 2241, 2135, 2378, 2135, 2135, 2980, 2984, 2135, 3006, 2135, 2135, 2135, 2945, 2931, 2425, 2400, 2135, 2135, 2135, 2954, 2135, 2481, 2433, 2135, 2135, 2988, 2824, 2135, 2135, 2482, 2434, 2135, 2135, 2440, 2445, 2452, 2135, 2135, 2998, 3002, 2961, 2441, 2446, 2453, 2463, 2974, 2135, 2135, 2135, 2140, 2642, 2709, 2459, 2470, 2465, 2135, 2135, 3005, 2135, 2135, 2987, 2823, 2458, 2469, 2464, 2975, 2135, 2135, 2135, 2353, 2488, 2447, 2324, 2974, 2135, 2409, 2459, 2448, 2135, 2961, 2487, 2446, 2476, 2323, 2973, 2135, 2135, 2135, 2354, 2476, 2974, 2135, 2135, 2135, 2957, 2135, 2135, 2960, 2135, 2135, 2135, 2363, 2409, 2459, 2474, 2465, 2487, 2571, 2973, 2135, 2135, 2168, 2973, 2135, 2135, 2135, 2959, 2135, 2135, 2135, 2506, 2135, 2957, 2488, 2170, 2135, 2135, 2135, 2960, 2135, 2818, 2493, 2135, 2135, 3033, 2135, 2135, 2135, 2934, 2819, 2494, 2135, 2135, 2135, 2976, 2780, 2499, 2135, 2135, 2135, 3000, 2968, 2135, 2935, 2135, 2135, 2135, 2364, 2507, 2135, 2135, 2934, 2135, 2135, 2780, 2492, 2507, 2135, 2135, 2506, 2780, 2135, 2135, 2782, 2780, 2135, 2782, 2135, 2783, 2374, 2514, 2135, 2135, 2135, 3007, 2530, 2974, 2135, 2135, 2135, 3008, 2135, 2135, 2134, 2135, 2526, 2531, 2975, 2135, 2135, 3042, 2581, 2575, 2956, 2135, 2135, 2135, 2394, 2135, 2508, 2535, 2840, 2844, 2495, 2135, 2135, 2136, 2684, 2537, 2842, 2846, 2135, 2136, 2561, 2581, 2551, 2536, 2841, 2845, 2975, 3043, 2582, 2843, 2555, 2135, 3040, 3044, 2538, 2844, 2975, 2135, 2135, 2253, 2644, 2672, 2542, 2554, 2135, 2135, 2346, 2873, 2551, 2555, 2135, 2135, 2135, 2381, 2559, 2565, 2538, 2553, 2135, 2560, 2914, 2576, 2590, 2135, 2135, 2135, 2408, 2136, 2596, 2624, 2135, 2135, 2135, 2409, 2135, 2618, 2597, 3008, 2135, 2135, 2380, 2956, 2601, 2135, 2135, 2135, 2410, 2620, 2624, 2135, 2136, 2383, 2135, 2135, 2783, 2623, 2135, 2135, 2393, 2888, 2136, 2621, 3008, 2135, 2618, 2618, 2622, 2135, 2135, 2405, 2414, 2619, 2384, 2624, 2135, 2136, 2950, 2135, 2138, 2135, 2139, 2135, 2604, 2623, 2135, 2140, 2878, 2665, 2957, 2622, 2135, 2135, 2428, 2762, 2606, 2612, 2135, 2135, 2501, 2586, 2604, 3038, 2135, 2604, 3036, 2387, 2958, 2386, 2135, 2141, 2135, 2421, 2387, 2385, 2135, 2385, 2384, 2384, 2135, 2386, 2628, 2384, 2135, 2135, 2501, 2596, 2591, 2135, 2135, 2135, 2400, 2135, 2634, 2135, 2135, 2559, 2580, 2575, 2648, 2135, 2135, 2135, 2429, 2649, 2135, 2135, 2135, 2435, 2654, 2658, 2135, 2135, 2135, 2436, 2649, 2178, 2659, 2135, 2135, 2595, 2601, 2669, 2677, 2135, 2135, 2616, 2957, 2879, 2665, 2691, 2135, 2363, 2367, 2900, 2878, 2664, 2690, 2975, 2877, 2643, 2670, 2974, 2671, 2975, 2135, 2135, 2619, 2608, 2669, 2673, 2135, 2135, 2653, 2177, 2672, 2135, 2135, 2135, 2486, 2168, 2251, 2255, 2695, 2974, 2709, 2135, 2135, 2135, 2487, 2169, 2399, 2716, 2975, 2135, 2363, 2770, 2776, 2640, 2717, 2135, 2135, 2729, 2135, 2135, 2641, 2718, 2135, 2135, 2135, 2505, 2135, 2640, 2257, 2974, 2135, 2727, 2975, 2135, 2365, 2332, 2895, 2957, 2135, 2959, 2135, 2365, 2749, 2754, 2959, 2958, 2958, 2135, 2380, 2793, 2799, 2135, 2735, 2738, 2135, 2381, 2135, 2135, 2940, 2974, 2135, 2744, 2135, 2135, 2739, 2519, 2976, 2745, 2135, 2135, 2135, 2509, 2755, 2135, 2135, 2135, 2510, 2772, 2778, 2135, 2135, 2740, 2520, 2135, 2771, 2777, 2135, 2135, 2759, 2750, 2792, 2798, 2135, 2135, 2781, 2392, 2779, 2135, 2135, 2135, 2521, 2135, 2679, 2248, 2135, 2135, 2681, 2480, 2135, 2135, 2786, 3000, 2135, 2679, 2683, 2135, 2135, 2416, 2135, 2135, 2135, 2525, 2135, 2730, 2135, 2135, 2135, 2560, 2581, 2135, 2805, 2135, 2135, 2804, 2962, 2832, 2974, 2135, 2382, 2135, 2135, 2958, 2135, 2135, 2960, 2135, 2829, 2833, 2975, 2961, 2965, 2969, 2973, 2968, 2972, 2135, 2135, 2135, 2641, 2135, 2515, 2966, 2970, 2851, 2478, 2135, 2135, 2808, 2135, 2809, 2135, 2135, 2135, 2722, 2852, 2479, 2135, 2135, 2815, 2135, 2135, 2766, 2853, 2480, 2135, 2857, 2479, 2135, 2388, 2723, 2135, 2364, 2331, 2894, 2858, 2480, 2135, 2135, 2850, 2478, 2135, 2135, 2135, 2806, 2864, 2135, 2399, 2256, 2974, 2865, 2135, 2135, 2862, 2135, 2135, 2135, 2685, 2807, 2865, 2135, 2135, 2807, 2863, 2135, 2135, 2135, 2686, 2884, 2807, 2135, 2809, 2807, 2135, 2135, 2807, 2806, 2705, 2810, 2808, 2700, 2869, 2702, 2702, 2702, 2704, 2883, 2135, 2135, 2135, 2730, 2884, 2135, 2135, 2135, 2731, 2321, 2546, 2135, 2135, 2876, 2255, 2889, 2322, 2547, 2135, 2401, 2135, 2135, 2135, 2949, 2367, 2893, 2544, 2973, 2906, 2973, 2135, 2135, 2877, 2663, 2368, 2901, 2907, 2974, 2366, 2899, 2905, 2972, 2920, 2974, 2135, 2135, 2911, 2900, 2920, 2363, 2913, 2918, 2465, 2941, 2975, 2135, 2135, 2924, 2928, 2974, 2945, 2931, 2135, 2135, 2135, 2765, 2136, 2955, 2135, 2135, 2939, 2931, 2380, 2135, 2135, 2380, 2135, 2135, 2135, 2780, 2507, 2137, 2135, 2137, 2135, 2139, 2135, 2806, 2810, 2135, 2135, 2135, 2992, 2135, 2135, 2962, 2966, 2970, 2974, 2135, 2135, 2787, 3014, 2135, 2521, 2993, 2135, 2135, 2135, 2803, 2135, 2135, 2135, 2618, 2607, 2997, 3001, 2135, 2135, 2963, 2967, 2971, 2975, 2135, 2135, 2791, 2797, 2135, 3009, 2999, 3003, 2787, 3001, 2135, 2135, 2964, 2968, 2785, 2999, 3003, 2135, 2135, 2135, 2804, 2785, 2999, 3004, 2135, 2135, 2135, 2807, 2135, 2135, 3023, 2135, 2135, 2135, 2811, 2135, 2135, 3027, 2135, 2135, 2135, 2837, 2968, 3028, 2135, 2135, 2135, 2875, 2135, 2784, 3029, 2135, 2408, 2457, 2446, 0, 14, 0, -2120220672, 1610612736, -2074083328, -2002780160, -2111830528, 1073872896, 1342177280, 1075807216, 4096, 16384, 2048, 8192, 0, 8192, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, -2145386496, 8388608, 1073741824, 0, 0x80000000, 0x80000000, 2097152, 2097152, 2097152, 536870912, 0, 0, 134217728, 33554432, 1536, 268435456, 268435456, 268435456, 268435456, 128, 256, 32, 0, 65536, 131072, 524288, 16777216, 268435456, 0x80000000, 1572864, 1835008, 640, 32768, 65536, 262144, 1048576, 2097152, 196608, 196800, 196608, 196608, 0, 131072, 131072, 131072, 196608, 196624, 196608, 196624, 196608, 196608, 128, 4096, 16384, 16384, 2048, 0, 4, 0, 0, 0x80000000, 2097152, 0, 1024, 32, 32, 0, 65536, 1572864, 1048576, 32768, 32768, 32768, 32768, 196608, 196608, 196608, 64, 64, 196608, 196608, 131072, 131072, 131072, 131072, 268435456, 268435456, 64, 196736, 196608, 196608, 196608, 131072, 196608, 196608, 16384, 4, 4, 4, 2, 32, 32, 65536, 1048576, 12582912, 1073741824, 0, 0, 2, 8, 16, 96, 2048, 32768, 0, 0, 131072, 268435456, 268435456, 268435456, 256, 256, 196608, 196672, 196608, 196608, 196608, 196608, 4, 0, 256, 256, 256, 256, 32, 32, 32768, 32, 32, 32, 32, 32768, 268435456, 268435456, 268435456, 196608, 196608, 196608, 196624, 196608, 196608, 196608, 16, 16, 16, 268435456, 196608, 64, 64, 64, 196608, 196608, 196608, 196672, 268435456, 64, 64, 196608, 196608, 16, 196608, 196608, 196608, 268435456, 64, 196608, 131072, 262144, 4194304, 25165824, 33554432, 134217728, 268435456, 268435456, 196608, 262152, 8, 256, 512, 3072, 16384, 200, -1073741816, 8392713, 40, 8392718, 520, 807404072, 40, 520, 100663304, 0, 0, -540651761, -540651761, 257589048, 0, 262144, 0, 0, 3, 8, 256, 0, 4, 6, 4100, 8388612, 0, 0, 0, 3, 4, 8, 256, 512, 1024, 0, 2097152, 0, 0, -537854471, -537854471, 0, 100663296, 0, 0, 1, 2, 0, 0, 0, 16384, 0, 0, 0, 96, 14336, 0, 0, 0, 7, 8, 234881024, 0, 0, 0, 8, 0, 0, 0, 0, 262144, 0, 0, 16, 64, 384, 512, 0, 1, 1, 0, 12582912, 0, 0, 0, 0, 33554432, 67108864, -606084144, -606084144, -606084138, 0, 0, 28, 32, 768, 1966080, -608174080, 0, 0, 0, 14, 35056, 16, 64, 896, 24576, 98304, 98304, 131072, 262144, 524288, 1048576, 4194304, 25165824, 1048576, 62914560, 134217728, -805306368, 0, 384, 512, 16384, 65536, 131072, 262144, 29360128, 33554432, 134217728, 268435456, 1073741824, 0x80000000, 262144, 524288, 1048576, 29360128, 33554432, 524288, 1048576, 16777216, 33554432, 134217728, 268435456, 1073741824, 0, 0, 0, 123856, 1966080, 0, 64, 384, 16384, 65536, 131072, 16384, 65536, 524288, 268435456, 0x80000000, 0, 0, 524288, 0x80000000, 0, 0, 1, 16, 0, 256, 524288, 0, 0, 0, 25, 96, 128, -537854471, 0, 0, 0, 32, 7404800, -545259520, 0, 0, 0, 60, 0, 249, 64768, 1048576, 6291456, 6291456, 25165824, 100663296, 402653184, 1073741824, 96, 128, 1280, 2048, 4096, 57344, 6291456, 57344, 6291456, 8388608, 16777216, 33554432, 201326592, 1342177280, 0x80000000, 0, 57344, 6291456, 8388608, 100663296, 134217728, 0x80000000, 0, 0, 0, 1, 8, 16, 64, 128, 64, 128, 256, 1024, 131072, 131072, 131072, 262144, 524288, 16777216, 57344, 6291456, 8388608, 67108864, 134217728, 64, 256, 1024, 2048, 4096, 57344, 64, 256, 0, 24576, 32768, 6291456, 67108864, 134217728, 0, 1, 64, 256, 24576, 32768, 4194304, 32768, 4194304, 67108864, 0, 0, 64, 256, 0, 0, 24576, 32768, 0, 16384, 4194304, 67108864, 64, 16384, 0, 0, 1, 64, 256, 16384, 4194304, 67108864, 0, 0, 0, 16384, 0, 16384, 16384, 0, -470447874, -470447874, -470447874, 0, 0, 128, 0, 0, 8, 96, 2048, 32768, 262144, 8388608, 35056, 1376256, -471859200, 0, 0, 14, 16, 224, 2048, 32768, 2097152, 4194304, 8388608, -486539264, 0, 96, 128, 2048, 32768, 262144, 2097152, 262144, 2097152, 8388608, 33554432, 536870912, 1073741824, 0x80000000, 0, 1610612736, 0x80000000, 0, 0, 1, 524288, 1048576, 12582912, 0, 0, 0, 151311, 264503296, 2097152, 8388608, 33554432, 1610612736, 0x80000000, 262144, 8388608, 33554432, 536870912, 67108864, 4194304, 0, 4194304, 0, 4194304, 4194304, 0, 0, 524288, 8388608, 536870912, 1073741824, 0x80000000, 1, 4097, 8388609, 96, 2048, 32768, 1073741824, 0x80000000, 0, 96, 2048, 0x80000000, 0, 0, 96, 2048, 0, 0, 1, 12582912, 0, 0, 0, 0, 1641895695, 1641895695, 0, 0, 0, 249, 7404800, 15, 87808, 1835008, 1639972864, 0, 768, 5120, 16384, 65536, 1835008, 1835008, 12582912, 16777216, 1610612736, 0, 3, 4, 8, 768, 4096, 65536, 0, 0, 256, 512, 786432, 8, 256, 512, 4096, 16384, 1835008, 16384, 1835008, 12582912, 1610612736, 0, 0, 0, 256, 0, 0, 0, 4, 8, 16, 32, 1, 2, 8, 256, 16384, 524288, 16384, 524288, 1048576, 12582912, 1610612736, 0, 0, 0, 8388608, 0, 0, 0, 524288, 4194304, 0, 0, 0, 8388608, -548662288, -548662288, -548662288, 0, 0, 256, 16384, 65536, 520093696, -1073741824, 0, 0, 0, 16777216, 0, 16, 32, 960, 4096, 4980736, 520093696, 1073741824, 0, 32, 896, 4096, 57344, 1048576, 6291456, 8388608, 16777216, 100663296, 134217728, 268435456, 0x80000000, 0, 512, 786432, 4194304, 33554432, 134217728, 268435456, 0, 786432, 4194304, 134217728, 268435456, 0, 524288, 4194304, 268435456, 0, 0, 0, 0, 0, 4194304, 4194304, -540651761, 0, 0, 0, 2, 4, 8, 16, 96, 128, 264503296, -805306368, 0, 0, 0, 8, 256, 512, 19456, 131072, 3072, 16384, 131072, 262144, 8388608, 16777216, 512, 1024, 2048, 16384, 131072, 262144, 131072, 262144, 8388608, 33554432, 201326592, 268435456, 0, 3, 4, 256, 1024, 2048, 57344, 16384, 131072, 8388608, 33554432, 134217728, 268435456, 0, 3, 256, 1024, 16384, 131072, 33554432, 134217728, 1073741824, 0x80000000, 0, 0, 256, 524288, 0x80000000, 0, 3, 256, 33554432, 134217728, 1073741824, 0, 1, 2, 33554432, 1, 2, 134217728, 1073741824, 0, 1, 2, 134217728, 0, 0, 0, 64, 0, 0, 0, 16, 32, 896, 4096, 786432, 4194304, 16777216, 33554432, 201326592, 268435456, 1073741824, 0x80000000, 0, 0, 0, 15, 0, 4980736, 4980736, 4980736, 70460, 70460, 3478332, 0, 0, 1008, 4984832, 520093696, 60, 4864, 65536, 0, 0, 0, 12, 16, 32, 256, 512, 4096, 65536, 0, 0, 0, 67108864, 0, 0, 0, 12, 0, 256, 512, 65536, 0, 0, 1024, 512, 131072, 131072, 4, 16, 32, 65536, 0, 4, 16, 32, 0, 0, 0, 4, 16, 0, 0, 16384, 67108864, 0, 0, 1, 24, 96, 128, 256, 1024\n];\n\nJSONiqTokenizer.TOKEN =\n[\n  \"(0)\",\n  \"JSONChar\",\n  \"JSONCharRef\",\n  \"JSONPredefinedCharRef\",\n  \"ModuleDecl\",\n  \"Annotation\",\n  \"OptionDecl\",\n  \"Operator\",\n  \"Variable\",\n  \"Tag\",\n  \"EndTag\",\n  \"PragmaContents\",\n  \"DirCommentContents\",\n  \"DirPIContents\",\n  \"CDataSectionContents\",\n  \"AttrTest\",\n  \"Wildcard\",\n  \"EQName\",\n  \"IntegerLiteral\",\n  \"DecimalLiteral\",\n  \"DoubleLiteral\",\n  \"PredefinedEntityRef\",\n  \"'\\\"\\\"'\",\n  \"EscapeApos\",\n  \"AposChar\",\n  \"ElementContentChar\",\n  \"QuotAttrContentChar\",\n  \"AposAttrContentChar\",\n  \"NCName\",\n  \"QName\",\n  \"S\",\n  \"CharRef\",\n  \"CommentContents\",\n  \"DocTag\",\n  \"DocCommentContents\",\n  \"EOF\",\n  \"'!'\",\n  \"'\\\"'\",\n  \"'#'\",\n  \"'#)'\",\n  \"'$$'\",\n  \"''''\",\n  \"'('\",\n  \"'(#'\",\n  \"'(:'\",\n  \"'(:~'\",\n  \"')'\",\n  \"'*'\",\n  \"'*'\",\n  \"','\",\n  \"'-->'\",\n  \"'.'\",\n  \"'/'\",\n  \"'/>'\",\n  \"':'\",\n  \"':)'\",\n  \"';'\",\n  \"'<!--'\",\n  \"'<![CDATA['\",\n  \"'<?'\",\n  \"'='\",\n  \"'>'\",\n  \"'?'\",\n  \"'?>'\",\n  \"'NaN'\",\n  \"'['\",\n  \"']'\",\n  \"']]>'\",\n  \"'after'\",\n  \"'all'\",\n  \"'allowing'\",\n  \"'ancestor'\",\n  \"'ancestor-or-self'\",\n  \"'and'\",\n  \"'any'\",\n  \"'append'\",\n  \"'array'\",\n  \"'as'\",\n  \"'ascending'\",\n  \"'at'\",\n  \"'attribute'\",\n  \"'base-uri'\",\n  \"'before'\",\n  \"'boundary-space'\",\n  \"'break'\",\n  \"'by'\",\n  \"'case'\",\n  \"'cast'\",\n  \"'castable'\",\n  \"'catch'\",\n  \"'check'\",\n  \"'child'\",\n  \"'collation'\",\n  \"'collection'\",\n  \"'comment'\",\n  \"'constraint'\",\n  \"'construction'\",\n  \"'contains'\",\n  \"'content'\",\n  \"'context'\",\n  \"'continue'\",\n  \"'copy'\",\n  \"'copy-namespaces'\",\n  \"'count'\",\n  \"'decimal-format'\",\n  \"'decimal-separator'\",\n  \"'declare'\",\n  \"'default'\",\n  \"'delete'\",\n  \"'descendant'\",\n  \"'descendant-or-self'\",\n  \"'descending'\",\n  \"'diacritics'\",\n  \"'different'\",\n  \"'digit'\",\n  \"'distance'\",\n  \"'div'\",\n  \"'document'\",\n  \"'document-node'\",\n  \"'element'\",\n  \"'else'\",\n  \"'empty'\",\n  \"'empty-sequence'\",\n  \"'encoding'\",\n  \"'end'\",\n  \"'entire'\",\n  \"'eq'\",\n  \"'every'\",\n  \"'exactly'\",\n  \"'except'\",\n  \"'exit'\",\n  \"'external'\",\n  \"'first'\",\n  \"'following'\",\n  \"'following-sibling'\",\n  \"'for'\",\n  \"'foreach'\",\n  \"'foreign'\",\n  \"'from'\",\n  \"'ft-option'\",\n  \"'ftand'\",\n  \"'ftnot'\",\n  \"'ftor'\",\n  \"'function'\",\n  \"'ge'\",\n  \"'greatest'\",\n  \"'group'\",\n  \"'grouping-separator'\",\n  \"'gt'\",\n  \"'idiv'\",\n  \"'if'\",\n  \"'import'\",\n  \"'in'\",\n  \"'index'\",\n  \"'infinity'\",\n  \"'inherit'\",\n  \"'insensitive'\",\n  \"'insert'\",\n  \"'instance'\",\n  \"'integrity'\",\n  \"'intersect'\",\n  \"'into'\",\n  \"'is'\",\n  \"'item'\",\n  \"'json'\",\n  \"'json-item'\",\n  \"'key'\",\n  \"'language'\",\n  \"'last'\",\n  \"'lax'\",\n  \"'le'\",\n  \"'least'\",\n  \"'let'\",\n  \"'levels'\",\n  \"'loop'\",\n  \"'lowercase'\",\n  \"'lt'\",\n  \"'minus-sign'\",\n  \"'mod'\",\n  \"'modify'\",\n  \"'module'\",\n  \"'most'\",\n  \"'namespace'\",\n  \"'namespace-node'\",\n  \"'ne'\",\n  \"'next'\",\n  \"'no'\",\n  \"'no-inherit'\",\n  \"'no-preserve'\",\n  \"'node'\",\n  \"'nodes'\",\n  \"'not'\",\n  \"'object'\",\n  \"'occurs'\",\n  \"'of'\",\n  \"'on'\",\n  \"'only'\",\n  \"'option'\",\n  \"'or'\",\n  \"'order'\",\n  \"'ordered'\",\n  \"'ordering'\",\n  \"'paragraph'\",\n  \"'paragraphs'\",\n  \"'parent'\",\n  \"'pattern-separator'\",\n  \"'per-mille'\",\n  \"'percent'\",\n  \"'phrase'\",\n  \"'position'\",\n  \"'preceding'\",\n  \"'preceding-sibling'\",\n  \"'preserve'\",\n  \"'previous'\",\n  \"'processing-instruction'\",\n  \"'relationship'\",\n  \"'rename'\",\n  \"'replace'\",\n  \"'return'\",\n  \"'returning'\",\n  \"'revalidation'\",\n  \"'same'\",\n  \"'satisfies'\",\n  \"'schema'\",\n  \"'schema-attribute'\",\n  \"'schema-element'\",\n  \"'score'\",\n  \"'self'\",\n  \"'sensitive'\",\n  \"'sentence'\",\n  \"'sentences'\",\n  \"'skip'\",\n  \"'sliding'\",\n  \"'some'\",\n  \"'stable'\",\n  \"'start'\",\n  \"'stemming'\",\n  \"'stop'\",\n  \"'strict'\",\n  \"'strip'\",\n  \"'structured-item'\",\n  \"'switch'\",\n  \"'text'\",\n  \"'then'\",\n  \"'thesaurus'\",\n  \"'times'\",\n  \"'to'\",\n  \"'treat'\",\n  \"'try'\",\n  \"'tumbling'\",\n  \"'type'\",\n  \"'typeswitch'\",\n  \"'union'\",\n  \"'unique'\",\n  \"'unordered'\",\n  \"'updating'\",\n  \"'uppercase'\",\n  \"'using'\",\n  \"'validate'\",\n  \"'value'\",\n  \"'variable'\",\n  \"'version'\",\n  \"'weight'\",\n  \"'when'\",\n  \"'where'\",\n  \"'while'\",\n  \"'wildcards'\",\n  \"'window'\",\n  \"'with'\",\n  \"'without'\",\n  \"'word'\",\n  \"'words'\",\n  \"'xquery'\",\n  \"'zero-digit'\",\n  \"'{'\",\n  \"'{{'\",\n  \"'|'\",\n  \"'}'\",\n  \"'}}'\"\n];\n\n},\n{}],\n2:[function(_dereq_,module,exports){\n'use strict';\n\nvar JSONiqTokenizer = _dereq_('./JSONiqTokenizer').JSONiqTokenizer;\nvar Lexer = _dereq_('./lexer').Lexer;\n\nvar keys = 'NaN|after|allowing|ancestor|ancestor-or-self|and|append|array|as|ascending|at|attribute|base-uri|before|boundary-space|break|by|case|cast|castable|catch|child|collation|comment|constraint|construction|contains|context|continue|copy|copy-namespaces|count|decimal-format|decimal-separator|declare|default|delete|descendant|descendant-or-self|descending|digit|div|document|document-node|element|else|empty|empty-sequence|encoding|end|eq|every|except|exit|external|false|first|following|following-sibling|for|from|ft-option|function|ge|greatest|group|grouping-separator|gt|idiv|if|import|in|index|infinity|insert|instance|integrity|intersect|into|is|item|json|json-item|jsoniq|last|lax|le|least|let|loop|lt|minus-sign|mod|modify|module|namespace|namespace-node|ne|next|node|nodes|not|null|object|of|only|option|or|order|ordered|ordering|paragraphs|parent|pattern-separator|per-mille|percent|preceding|preceding-sibling|previous|processing-instruction|rename|replace|return|returning|revalidation|satisfies|schema|schema-attribute|schema-element|score|select|self|sentences|sliding|some|stable|start|strict|switch|text|then|times|to|treat|true|try|tumbling|type|typeswitch|union|unordered|updating|validate|value|variable|version|when|where|while|window|with|words|xquery|zero-digit'.split('|');\nvar keywords = keys.map(function(val) { return { name: '\\'' + val + '\\'', token: 'keyword' }; });\nvar ncnames = keys.map(function(val) { return { name: '\\'' + val + '\\'', token: 'text', next: function(stack){ stack.pop(); } }; });\n\nvar cdata = 'constant.language';\nvar number = 'constant';\nvar xmlcomment = 'comment';\nvar pi = 'xml-pe';\nvar pragma = 'constant.buildin';\nvar n = function(name){\n    return '\\'' + name + '\\'';\n};\nvar Rules = {\n    start: [\n        { name: n('(#'), token: pragma, next: function(stack){ stack.push('Pragma'); } },\n        { name: n('(:'), token: 'comment', next: function(stack){ stack.push('Comment'); } },\n        { name: n('(:~'), token: 'comment.doc', next: function(stack){ stack.push('CommentDoc'); } },\n        { name: n('<!--'), token: xmlcomment, next: function(stack){ stack.push('XMLComment'); } },\n        { name: n('<?'), token: pi, next: function(stack) { stack.push('PI'); } },\n        { name: n('\\'\\''), token: 'string', next: function(stack){ stack.push('AposString'); } },\n        { name: n('\"'), token: 'string', next: function(stack){ stack.push('QuotString'); } },\n        { name: 'Annotation', token: 'support.function' },\n        { name: 'ModuleDecl', token: 'keyword', next: function(stack){ stack.push('Prefix'); } },\n        { name: 'OptionDecl', token: 'keyword', next: function(stack){ stack.push('_EQName'); } },\n        { name: 'AttrTest', token: 'support.type' },\n        { name: 'Variable', token: 'variable' },\n        { name: n('<![CDATA['), token: cdata, next: function(stack){ stack.push('CData'); } },\n        { name: 'IntegerLiteral', token: number },\n        { name: 'DecimalLiteral', token: number },\n        { name: 'DoubleLiteral', token: number },\n        { name: 'Operator', token: 'keyword.operator' },\n        { name: 'EQName', token: function(val) { return keys.indexOf(val) !== -1 ? 'keyword' : 'support.function'; } },\n        { name: n('('), token: 'lparen' },\n        { name: n(')'), token: 'rparen' },\n        { name: 'Tag', token: 'meta.tag', next: function(stack){ stack.push('StartTag'); } },\n        { name: n('}'), token: 'text', next: function(stack){ if(stack.length > 1) { stack.pop(); } } },\n        { name: n('{'), token: 'text', next: function(stack){ stack.push('start'); } } //, next: function(stack){ if(stack.length > 1) { stack.pop(); } } }\n    ].concat(keywords),\n    _EQName: [\n        { name: 'EQName', token: 'text', next: function(stack) { stack.pop(); } }\n    ].concat(ncnames),\n    Prefix: [\n        { name: 'NCName', token: 'text', next: function(stack) { stack.pop(); } }\n    ].concat(ncnames),\n    StartTag: [\n        { name: n('>'), token: 'meta.tag', next: function(stack){ stack.push('TagContent'); } },\n        { name: 'QName', token: 'entity.other.attribute-name' },\n        { name: n('='), token: 'text' },\n        { name: n('\\'\\''), token: 'string', next: function(stack){ stack.push('AposAttr'); } },\n        { name: n('\"'), token: 'string', next: function(stack){ stack.push('QuotAttr'); } },\n        { name: n('/>'), token: 'meta.tag.r', next: function(stack){ stack.pop(); } }\n    ],\n    TagContent: [\n        { name: 'ElementContentChar', token: 'text' },\n        { name: n('<![CDATA['), token: cdata, next: function(stack){ stack.push('CData'); } },\n        { name: n('<!--'), token: xmlcomment, next: function(stack){ stack.push('XMLComment'); } },\n        { name: 'Tag', token: 'meta.tag', next: function(stack){ stack.push('StartTag'); } },\n        { name: 'PredefinedEntityRef', token: 'constant.language.escape' },\n        { name: 'CharRef', token: 'constant.language.escape' },\n        { name: n('{{'), token: 'text' },\n        { name: n('}}'), token: 'text' },\n        { name: n('{'), token: 'text', next: function(stack){ stack.push('start'); } },\n        { name: 'EndTag', token: 'meta.tag', next: function(stack){ stack.pop(); stack.pop(); } }\n    ],\n    AposAttr: [\n        { name: n('\\'\\''), token: 'string', next: function(stack){ stack.pop(); } },\n        { name: 'EscapeApos', token: 'constant.language.escape' },\n        { name: 'AposAttrContentChar', token: 'string' },\n        { name: 'PredefinedEntityRef', token: 'constant.language.escape' },\n        { name: 'CharRef', token: 'constant.language.escape' },\n        { name: n('{{'), token: 'string' },\n        { name: n('}}'), token: 'string' },\n        { name: n('{'), token: 'text', next: function(stack){ stack.push('start'); } }\n    ],\n    QuotAttr: [\n        { name: n('\\\"'), token: 'string', next: function(stack){ stack.pop(); } },\n        { name: 'EscapeQuot', token: 'constant.language.escape' },\n        { name: 'QuotAttrContentChar', token: 'string' },\n        { name: 'PredefinedEntityRef', token: 'constant.language.escape' },\n        { name: 'CharRef', token: 'constant.language.escape' },\n        { name: n('{{'), token: 'string' },\n        { name: n('}}'), token: 'string' },\n        { name: n('{'), token: 'text', next: function(stack){ stack.push('start'); } }\n    ],\n    Pragma: [\n        { name: 'PragmaContents', token: pragma },\n        { name: n('#'), token: pragma },\n        { name: n('#)'), token: pragma, next: function(stack){ stack.pop(); } }\n    ],\n    Comment: [\n        { name: 'CommentContents', token: 'comment' },\n        { name: n('(:'), token: 'comment', next: function(stack){ stack.push('Comment'); } },\n        { name: n(':)'), token: 'comment', next: function(stack){ stack.pop(); } }\n    ],\n    CommentDoc: [\n        { name: 'DocCommentContents', token: 'comment.doc' },\n        { name: 'DocTag', token: 'comment.doc.tag' },\n        { name: n('(:'), token: 'comment.doc', next: function(stack){ stack.push('CommentDoc'); } },\n        { name: n(':)'), token: 'comment.doc', next: function(stack){ stack.pop(); } }\n    ],\n    XMLComment: [\n        { name: 'DirCommentContents', token: xmlcomment },\n        { name: n('-->'), token: xmlcomment, next: function(stack){ stack.pop(); } }\n    ],\n    CData: [\n        { name: 'CDataSectionContents', token: cdata },\n        { name: n(']]>'), token: cdata, next: function(stack){ stack.pop(); } }\n    ],\n    PI: [\n        { name: 'DirPIContents', token: pi },\n        { name: n('?'), token: pi },\n        { name: n('?>'), token: pi, next: function(stack){ stack.pop(); } }\n    ],\n    AposString: [\n        { name: n('\\'\\''), token: 'string', next: function(stack){ stack.pop(); } },\n        { name: 'PredefinedEntityRef', token: 'constant.language.escape' },\n        { name: 'CharRef', token: 'constant.language.escape' },\n        { name: 'EscapeApos', token: 'constant.language.escape' },\n        { name: 'AposChar', token: 'string' }\n    ],\n    QuotString: [\n        { name: n('\"'), token: 'string', next: function(stack){ stack.pop(); } },\n        { name: 'JSONPredefinedCharRef', token: 'constant.language.escape' },\n        { name: 'JSONCharRef', token: 'constant.language.escape' },\n        { name: 'JSONChar', token: 'string' }\n    ]\n};\n    \nexports.JSONiqLexer = function(){ return new Lexer(JSONiqTokenizer, Rules); };\n},\n{\"./JSONiqTokenizer\":1,\"./lexer\":3}],\n3:[function(_dereq_,module,exports){\n'use strict';\n\nvar TokenHandler = function(code) {\n    var input = code;\n    this.tokens = [];\n \n    this.reset = function() {\n        input = input;\n        this.tokens = [];\n    };\n    \n    this.startNonterminal = function() {};\n    this.endNonterminal = function() {};\n\n    this.terminal = function(name, begin, end) {\n        this.tokens.push({\n            name: name,\n            value: input.substring(begin, end)\n        });\n    };\n\n    this.whitespace = function(begin, end) {\n        this.tokens.push({\n            name: 'WS',\n            value: input.substring(begin, end)\n        });\n    };\n};\n\nexports.Lexer = function(Tokenizer, Rules) {\n\n    this.tokens = [];\n  \n    this.getLineTokens = function(line, state) {\n        state = (state === 'start' || !state) ? '[\"start\"]' : state;\n        var stack = JSON.parse(state);\n        var h = new TokenHandler(line);\n        var tokenizer = new Tokenizer(line, h);\n        var tokens = [];\n    \n        while(true) {\n            var currentState = stack[stack.length - 1];\n            try {\n                h.tokens = [];\n                tokenizer['parse_' + currentState]();\n                var info = null;\n        \n                if(h.tokens.length > 1 && h.tokens[0].name === 'WS') {\n                    tokens.push({\n                        type: 'text',\n                        value: h.tokens[0].value\n                    });\n                    h.tokens.splice(0, 1);\n                }\n        \n                var token = h.tokens[0];\n                var rules  = Rules[currentState];\n                for(var k = 0; k < rules.length; k++) {\n                    var rule = Rules[currentState][k];\n                    if((typeof(rule.name) === 'function' && rule.name(token)) || rule.name === token.name) {\n                        info = rule;\n                        break;\n                    }\n                }\n        \n                if(token.name === 'EOF') { break; }\n                if(token.value === '') { throw 'Encountered empty string lexical rule.'; }\n        \n                tokens.push({\n                    type: info === null ? 'text' : (typeof(info.token) === 'function' ? info.token(token.value) : info.token),\n                    value: token.value\n                });\n        \n                if(info && info.next) {\n                    info.next(stack);\n                }\n      \n            } catch(e) {\n                if(e instanceof tokenizer.ParseException) {\n                    var index = 0;\n                    for(var i=0; i < tokens.length; i++) {\n                        index += tokens[i].value.length;\n                    }\n                    tokens.push({ type: 'text', value: line.substring(index) });\n                    return {\n                        tokens: tokens,\n                        state: JSON.stringify(['start'])\n                    };\n                } else {\n                    throw e;\n                }\n            }\n        }\n\n        return {\n            tokens: tokens,\n            state: JSON.stringify(stack)\n        };\n    };\n};\n},\n{}]},{},[2])\n(2)\n\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nvar XmlBehaviour = function () {\n\n    this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '\"' || text == \"'\") {\n            var quote = text;\n            var selected = session.doc.getTextRange(editor.getSelectionRange());\n            if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n                return {\n                    text: quote + selected + quote,\n                    selection: false\n                };\n            }\n\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n                return {\n                    text: \"\",\n                    selection: [1, 1]\n                };\n            }\n\n            if (!token)\n                token = iterator.stepBackward();\n\n            if (!token)\n                return;\n\n            while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n                token = iterator.stepBackward();\n            }\n            var rightSpace = !rightChar || rightChar.match(/\\s/);\n            if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n                return {\n                    text: quote + quote,\n                    selection: [1, 1]\n                };\n            }\n        }\n    });\n\n    this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == selected) {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n\n    this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '>') {\n            var position = editor.getSelectionRange().start;\n            var iterator = new TokenIterator(session, position.row, position.column);\n            var token = iterator.getCurrentToken() || iterator.stepBackward();\n            if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n                return;\n            if (is(token, \"reference.attribute-value\"))\n                return;\n            if (is(token, \"attribute-value\")) {\n                var firstChar = token.value.charAt(0);\n                if (firstChar == '\"' || firstChar == \"'\") {\n                    var lastChar = token.value.charAt(token.value.length - 1);\n                    var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;\n                    if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)\n                        return;\n                }\n            }\n            while (!is(token, \"tag-name\")) {\n                token = iterator.stepBackward();\n                if (token.value == \"<\") {\n                    token = iterator.stepForward();\n                    break;\n                }\n            }\n\n            var tokenRow = iterator.getCurrentTokenRow();\n            var tokenColumn = iterator.getCurrentTokenColumn();\n            if (is(iterator.stepBackward(), \"end-tag-open\"))\n                return;\n\n            var element = token.value;\n            if (tokenRow == position.row)\n                element = element.substring(0, position.column - tokenColumn);\n\n            if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n                 return;\n\n            return {\n               text: \">\" + \"</\" + element + \">\",\n               selection: [1, 1]\n            };\n        }\n    });\n\n    this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == \"\\n\") {\n            var cursor = editor.getCursorPosition();\n            var line = session.getLine(cursor.row);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (token && token.type.indexOf(\"tag-close\") !== -1) {\n                if (token.value == \"/>\")\n                    return;\n                while (token && token.type.indexOf(\"tag-name\") === -1) {\n                    token = iterator.stepBackward();\n                }\n\n                if (!token) {\n                    return;\n                }\n\n                var tag = token.value;\n                var row = iterator.getCurrentTokenRow();\n                token = iterator.stepBackward();\n                if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n                    return;\n                }\n\n                if (this.voidElements && !this.voidElements[tag]) {\n                    var nextToken = session.getTokenAt(cursor.row, cursor.column+1);\n                    var line = session.getLine(row);\n                    var nextIndent = this.$getIndent(line);\n                    var indent = nextIndent + session.getTabString();\n\n                    if (nextToken && nextToken.value === \"</\") {\n                        return {\n                            text: \"\\n\" + indent + \"\\n\" + nextIndent,\n                            selection: [1, indent.length, 1, indent.length]\n                        };\n                    } else {\n                        return {\n                            text: \"\\n\" + indent\n                        };\n                    }\n                }\n            }\n        }\n    });\n\n};\n\noop.inherits(XmlBehaviour, Behaviour);\n\nexports.XmlBehaviour = XmlBehaviour;\n});\n\nace.define(\"ace/mode/behaviour/xquery\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/mode/behaviour/xml\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\n  var oop = require(\"../../lib/oop\");\n  var Behaviour = require('../behaviour').Behaviour;\n  var CstyleBehaviour = require('./cstyle').CstyleBehaviour;\n  var XmlBehaviour = require(\"../behaviour/xml\").XmlBehaviour;\n  var TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nfunction hasType(token, type) {\n    var hasType = true;\n    var typeList = token.type.split('.');\n    var needleList = type.split('.');\n    needleList.forEach(function(needle){\n        if (typeList.indexOf(needle) == -1) {\n            hasType = false;\n            return false;\n        }\n    });\n    return hasType;\n}\n \n  var XQueryBehaviour = function () {\n      \n      this.inherit(CstyleBehaviour, [\"braces\", \"parens\", \"string_dquotes\"]); // Get string behaviour\n      this.inherit(XmlBehaviour); // Get xml behaviour\n      \n      this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '>') {\n            var position = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, position.row, position.column);\n            var token = iterator.getCurrentToken();\n            var atCursor = false;\n            var state = JSON.parse(state).pop();\n            if ((token && token.value === '>') || state !== \"StartTag\") return;\n            if (!token || !hasType(token, 'meta.tag') && !(hasType(token, 'text') && token.value.match('/'))){\n                do {\n                    token = iterator.stepBackward();\n                } while (token && (hasType(token, 'string') || hasType(token, 'keyword.operator') || hasType(token, 'entity.attribute-name') || hasType(token, 'text')));\n            } else {\n                atCursor = true;\n            }\n            var previous = iterator.stepBackward();\n            if (!token || !hasType(token, 'meta.tag') || (previous !== null && previous.value.match('/'))) {\n                return\n            }\n            var tag = token.value.substring(1);\n            if (atCursor){\n                var tag = tag.substring(0, position.column - token.start);\n            }\n\n            return {\n               text: '>' + '</' + tag + '>',\n               selection: [1, 1]\n            }\n        }\n    });\n\n  }\n  oop.inherits(XQueryBehaviour, Behaviour);\n\n  exports.XQueryBehaviour = XQueryBehaviour;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/jsoniq\",[\"require\",\"exports\",\"module\",\"ace/worker/worker_client\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/xquery/jsoniq_lexer\",\"ace/range\",\"ace/mode/behaviour/xquery\",\"ace/mode/folding/cstyle\",\"ace/anchor\"], function(require, exports, module) {\n\"use strict\";\n\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JSONiqLexer = require(\"./xquery/jsoniq_lexer\").JSONiqLexer;\nvar Range = require(\"../range\").Range;\nvar XQueryBehaviour = require(\"./behaviour/xquery\").XQueryBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Anchor = require(\"../anchor\").Anchor;\n\nvar Mode = function() {\n    this.$tokenizer   = new JSONiqLexer();\n    this.$behaviour   = new XQueryBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n    this.$highlightRules = new TextHighlightRules();\n};\n\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.completer = {\n        getCompletions: function(editor, session, pos, prefix, callback) {\n            if (!session.$worker)\n                return callback();\n            session.$worker.emit(\"complete\", { data: { pos: pos, prefix: prefix } });\n            session.$worker.on(\"complete\", function(e){\n                callback(null, e.data);\n            });\n        }\n    };\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var match = line.match(/\\s*(?:then|else|return|[{\\(]|<\\w+>)\\s*$/);\n        if (match)\n            indent += tab;\n        return indent;\n    };\n    \n    this.checkOutdent = function(state, line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*[\\}\\)]/.test(input);\n    };\n    \n    this.autoOutdent = function(state, doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*[\\}\\)])/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.toggleCommentLines = function(state, doc, startRow, endRow) {\n        var i, line;\n        var outdent = true;\n        var re = /^\\s*\\(:(.*):\\)/;\n\n        for (i=startRow; i<= endRow; i++) {\n            if (!re.test(doc.getLine(i))) {\n                outdent = false;\n                break;\n            }\n        }\n\n        var range = new Range(0, 0, 0, 0);\n        for (i=startRow; i<= endRow; i++) {\n            line = doc.getLine(i);\n            range.start.row  = i;\n            range.end.row    = i;\n            range.end.column = line.length;\n\n            doc.replace(range, outdent ? line.match(re)[1] : \"(:\" + line + \":)\");\n        }\n    };\n    this.createWorker = function(session) {\n        \n      var worker = new WorkerClient([\"ace\"], \"ace/mode/xquery_worker\", \"XQueryWorker\");\n        var that = this;\n\n        worker.attachToDocument(session.getDocument());\n        \n        worker.on(\"ok\", function(e) {\n          session.clearAnnotations();\n        });\n        \n        worker.on(\"markers\", function(e) {\n          session.clearAnnotations();\n          that.addMarkers(e.data, session);\n        });\n \n        return worker;\n    };\n \n    this.removeMarkers = function(session) {\n        var markers = session.getMarkers(false);\n        for (var id in markers) {\n            if (markers[id].clazz.indexOf('language_highlight_') === 0) {\n                session.removeMarker(id);\n            }\n        }\n        for (var i = 0; i < session.markerAnchors.length; i++) {\n            session.markerAnchors[i].detach();\n        }\n        session.markerAnchors = [];\n    };\n\n    this.addMarkers = function(annos, mySession) {\n        var _self = this;\n        \n        if (!mySession.markerAnchors) mySession.markerAnchors = [];\n        this.removeMarkers(mySession);\n        mySession.languageAnnos = [];\n        annos.forEach(function(anno) {\n            var anchor = new Anchor(mySession.getDocument(), anno.pos.sl, anno.pos.sc || 0);\n            mySession.markerAnchors.push(anchor);\n            var markerId;\n            var colDiff = anno.pos.ec - anno.pos.sc;\n            var rowDiff = anno.pos.el - anno.pos.sl;\n            var gutterAnno = {\n                guttertext: anno.message,\n                type: anno.level || \"warning\",\n                text: anno.message\n            };\n\n            function updateFloat(single) {\n                if (markerId)\n                    mySession.removeMarker(markerId);\n                gutterAnno.row = anchor.row;\n                if (anno.pos.sc !== undefined && anno.pos.ec !== undefined) {\n                    var range = new Range(anno.pos.sl, anno.pos.sc, anno.pos.el, anno.pos.ec);\n                    markerId = mySession.addMarker(range, \"language_highlight_\" + (anno.type ? anno.type : \"default\"));\n                }\n                if (single) mySession.setAnnotations(mySession.languageAnnos);\n            }\n            updateFloat();\n            anchor.on(\"change\", function() {\n                updateFloat(true);\n            });\n            if (anno.message) mySession.languageAnnos.push(gutterAnno);\n        });\n        mySession.setAnnotations(mySession.languageAnnos);\n    }; \n\n    this.$id = \"ace/mode/jsoniq\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-jsp.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n    a           : 'anchor',\n    button \t    : 'form',\n    form        : 'form',\n    img         : 'image',\n    input       : 'form',\n    label       : 'form',\n    option      : 'form',\n    script      : 'script',\n    select      : 'form',\n    textarea    : 'form',\n    style       : 'style',\n    table       : 'table',\n    tbody       : 'table',\n    td          : 'table',\n    tfoot       : 'table',\n    th          : 'table',\n    tr          : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.addRules({\n        attributes: [{\n            include : \"tag_whitespace\"\n        }, {\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"[-_a-zA-Z0-9:.]+\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\",\n            push : [{\n                include: \"tag_whitespace\"\n            }, {\n                token : \"string.unquoted.attribute-value.html\",\n                regex : \"[^<>='\\\"`\\\\s]+\",\n                next : \"pop\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"pop\"\n            }]\n        }, {\n            include : \"attribute_value\"\n        }],\n        tag: [{\n            token : function(start, tag) {\n                var group = tagMap[tag];\n                return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                    \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n            },\n            regex : \"(</?)([-_a-zA-Z0-9:.]+)\",\n            next: \"tag_stuff\"\n        }],\n        tag_stuff: [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n        ]\n    });\n\n    this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"js-\", \"script\");\n\n    if (this.constructor === HtmlHighlightRules)\n        this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/java_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar JavaHighlightRules = function() {\n    var keywords = (\n    \"abstract|continue|for|new|switch|\" +\n    \"assert|default|goto|package|synchronized|\" +\n    \"boolean|do|if|private|this|\" +\n    \"break|double|implements|protected|throw|\" +\n    \"byte|else|import|public|throws|\" +\n    \"case|enum|instanceof|return|transient|\" +\n    \"catch|extends|int|short|try|\" +\n    \"char|final|interface|static|void|\" +\n    \"class|finally|long|strictfp|volatile|\" +\n    \"const|float|native|super|while\"\n    );\n\n    var buildinConstants = (\"null|Infinity|NaN|undefined\");\n\n\n    var langClasses = (\n        \"AbstractMethodError|AssertionError|ClassCircularityError|\"+\n        \"ClassFormatError|Deprecated|EnumConstantNotPresentException|\"+\n        \"ExceptionInInitializerError|IllegalAccessError|\"+\n        \"IllegalThreadStateException|InstantiationError|InternalError|\"+\n        \"NegativeArraySizeException|NoSuchFieldError|Override|Process|\"+\n        \"ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|\"+\n        \"SuppressWarnings|TypeNotPresentException|UnknownError|\"+\n        \"UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|\"+\n        \"InstantiationException|IndexOutOfBoundsException|\"+\n        \"ArrayIndexOutOfBoundsException|CloneNotSupportedException|\"+\n        \"NoSuchFieldException|IllegalArgumentException|NumberFormatException|\"+\n        \"SecurityException|Void|InheritableThreadLocal|IllegalStateException|\"+\n        \"InterruptedException|NoSuchMethodException|IllegalAccessException|\"+\n        \"UnsupportedOperationException|Enum|StrictMath|Package|Compiler|\"+\n        \"Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|\"+\n        \"NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|\"+\n        \"NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|\"+\n        \"Character|Boolean|StackTraceElement|Appendable|StringBuffer|\"+\n        \"Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|\"+\n        \"StackOverflowError|OutOfMemoryError|VirtualMachineError|\"+\n        \"ArrayStoreException|ClassCastException|LinkageError|\"+\n        \"NoClassDefFoundError|ClassNotFoundException|RuntimeException|\"+\n        \"Exception|ThreadDeath|Error|Throwable|System|ClassLoader|\"+\n        \"Cloneable|Class|CharSequence|Comparable|String|Object\"\n    );\n\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\": \"this\",\n        \"keyword\": keywords,\n        \"constant.language\": buildinConstants,\n        \"support.function\": langClasses\n    }, \"identifier\");\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"\\\\/\\\\/.*$\"\n            },\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n                token : \"string\", // single line\n                regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n            }, {\n                token : \"string\", // single line\n                regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.[\\d_]*)?(?:[eE][+-]?[\\d_]+)?)?[LlSsDdFfYy]?\\b/\n            }, {\n                token : \"constant.language.boolean\",\n                regex : \"(?:true|false)\\\\b\"\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n            }, {\n                token : \"lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ]\n    };\n\n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n};\n\noop.inherits(JavaHighlightRules, TextHighlightRules);\n\nexports.JavaHighlightRules = JavaHighlightRules;\n});\n\nace.define(\"ace/mode/jsp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/java_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar JavaHighlightRules = require(\"./java_highlight_rules\").JavaHighlightRules;\n\nvar JspHighlightRules = function() {\n    HtmlHighlightRules.call(this);\n\n    var builtinVariables = 'request|response|out|session|' +\n            'application|config|pageContext|page|Exception';\n\n    var keywords = 'page|include|taglib';\n\n    var startRules = [\n        {\n            token : \"comment\",\n            regex : \"<%--\",\n            push : \"jsp-dcomment\"\n        }, {\n            token : \"meta.tag\", // jsp open tag\n            regex : \"<%@?|<%=?|<%!?|<jsp:[^>]+>\",\n            push  : \"jsp-start\"\n        }\n    ];\n\n    var endRules = [\n        {\n            token : \"meta.tag\", // jsp close tag\n            regex : \"%>|<\\\\/jsp:[^>]+>\",\n            next  : \"pop\"\n        }, {\n            token: \"variable.language\",\n            regex : builtinVariables\n        }, {\n            token: \"keyword\",\n            regex : keywords\n        }\n    ];\n\n    for (var key in this.$rules)\n        this.$rules[key].unshift.apply(this.$rules[key], startRules);\n\n    this.embedRules(JavaHighlightRules, \"jsp-\", endRules, [\"start\"]);\n\n    this.addRules({\n        \"jsp-dcomment\" : [{\n            token : \"comment\",\n            regex : \".*?--%>\",\n            next : \"pop\"\n        }]\n    });\n\n    this.normalizeRules();\n};\n\noop.inherits(JspHighlightRules, HtmlHighlightRules);\n\nexports.JspHighlightRules = JspHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/jsp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jsp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JspHighlightRules = require(\"./jsp_highlight_rules\").JspHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JspHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.$id = \"ace/mode/jsp\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-jsx.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/jsx_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar JsxHighlightRules = function() {\n    var keywords = lang.arrayToMap(\n        (\"break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|\" +\n         \"if|throw|\" +\n         \"delete|in|try|\" +\n         \"class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|\" +\n         \"number|int|string|boolean|variant|\" +\n         \"log|assert\").split(\"|\")\n    );\n    \n    var buildinConstants = lang.arrayToMap(\n        (\"null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined\").split(\"|\")\n    );\n    \n    var reserved = lang.arrayToMap(\n        (\"debugger|with|\" +\n         \"const|export|\" +\n         \"let|private|public|yield|protected|\" +\n         \"extern|native|as|operator|__fake__|__readonly__\").split(\"|\")\n    );\n    \n    var identifierRe = \"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\";\n    \n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"\\\\/\\\\/.*$\"\n            },\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n                token : \"string.regexp\",\n                regex : \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"\n            }, {\n                token : \"string\", // single line\n                regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n            }, {\n                token : \"string\", // single line\n                regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n            }, {\n                token : \"constant.language.boolean\",\n                regex : \"(?:true|false)\\\\b\"\n            }, {\n                token : [\n                    \"storage.type\",\n                    \"text\",\n                    \"entity.name.function\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")\"\n            }, {\n                token : function(value) {\n                    if (value == \"this\")\n                        return \"variable.language\";\n                    else if (value == \"function\")\n                        return \"storage.type\";\n                    else if (keywords.hasOwnProperty(value) || reserved.hasOwnProperty(value))\n                        return \"keyword\";\n                    else if (buildinConstants.hasOwnProperty(value))\n                        return \"constant.language\";\n                    else if (/^_?[A-Z][a-zA-Z0-9_]*$/.test(value))\n                        return \"language.support.class\";\n                    else\n                        return \"identifier\";\n                },\n                regex : identifierRe\n            }, {\n                token : \"keyword.operator\",\n                regex : \"!|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({<]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}>]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ]\n    };\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n};\n\noop.inherits(JsxHighlightRules, TextHighlightRules);\n\nexports.JsxHighlightRules = JsxHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/jsx\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/jsx_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JsxHighlightRules = require(\"./jsx_highlight_rules\").JsxHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nfunction Mode() {\n    this.HighlightRules = JsxHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n}\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.$id = \"ace/mode/jsx\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-julia.js",
    "content": "ace.define(\"ace/mode/julia_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar JuliaHighlightRules = function() {\n\n    this.$rules = { start: \n       [ { include: '#function_decl' },\n         { include: '#function_call' },\n         { include: '#type_decl' },\n         { include: '#keyword' },\n         { include: '#operator' },\n         { include: '#number' },\n         { include: '#string' },\n         { include: '#comment' } ],\n      '#bracket': \n       [ { token: 'keyword.bracket.julia',\n           regex: '\\\\(|\\\\)|\\\\[|\\\\]|\\\\{|\\\\}|,' } ],\n      '#comment': \n       [ { token: \n            [ 'punctuation.definition.comment.julia',\n              'comment.line.number-sign.julia' ],\n           regex: '(#)(?!\\\\{)(.*$)'} ],\n      '#function_call': \n       [ { token: [ 'support.function.julia', 'text' ],\n           regex: '([a-zA-Z0-9_]+!?)([\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]*\\\\()'} ],\n      '#function_decl': \n       [ { token: [ 'keyword.other.julia', 'meta.function.julia',\n               'entity.name.function.julia', 'meta.function.julia','text' ],\n           regex: '(function|macro)(\\\\s*)([a-zA-Z0-9_\\\\{]+!?)([\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]*)([(\\\\\\\\{])'} ],\n      '#keyword':\n       [ { token: 'keyword.other.julia',\n           regex: '\\\\b(?:function|type|immutable|macro|quote|abstract|bitstype|typealias|module|baremodule|new)\\\\b' },\n         { token: 'keyword.control.julia',\n           regex: '\\\\b(?:if|else|elseif|while|for|in|begin|let|end|do|try|catch|finally|return|break|continue)\\\\b' },\n         { token: 'storage.modifier.variable.julia',\n           regex: '\\\\b(?:global|local|const|export|import|importall|using)\\\\b' },\n         { token: 'variable.macro.julia', regex: '@[\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]+\\\\b' } ],\n      '#number': \n       [ { token: 'constant.numeric.julia',\n           regex: '\\\\b0(?:x|X)[0-9a-fA-F]*|(?:\\\\b[0-9]+\\\\.?[0-9]*|\\\\.[0-9]+)(?:(?:e|E)(?:\\\\+|-)?[0-9]*)?(?:im)?|\\\\bInf(?:32)?\\\\b|\\\\bNaN(?:32)?\\\\b|\\\\btrue\\\\b|\\\\bfalse\\\\b' } ],\n      '#operator': \n       [ { token: 'keyword.operator.update.julia',\n           regex: '=|:=|\\\\+=|-=|\\\\*=|/=|//=|\\\\.//=|\\\\.\\\\*=|\\\\\\\\=|\\\\.\\\\\\\\=|^=|\\\\.^=|%=|\\\\|=|&=|\\\\$=|<<=|>>=' },\n         { token: 'keyword.operator.ternary.julia', regex: '\\\\?|:' },\n         { token: 'keyword.operator.boolean.julia',\n           regex: '\\\\|\\\\||&&|!' },\n         { token: 'keyword.operator.arrow.julia', regex: '->|<-|-->' },\n         { token: 'keyword.operator.relation.julia',\n           regex: '>|<|>=|<=|==|!=|\\\\.>|\\\\.<|\\\\.>=|\\\\.>=|\\\\.==|\\\\.!=|\\\\.=|\\\\.!|<:|:>' },\n         { token: 'keyword.operator.range.julia', regex: ':' },\n         { token: 'keyword.operator.shift.julia', regex: '<<|>>' },\n         { token: 'keyword.operator.bitwise.julia', regex: '\\\\||\\\\&|~' },\n         { token: 'keyword.operator.arithmetic.julia',\n           regex: '\\\\+|-|\\\\*|\\\\.\\\\*|/|\\\\./|//|\\\\.//|%|\\\\.%|\\\\\\\\|\\\\.\\\\\\\\|\\\\^|\\\\.\\\\^' },\n         { token: 'keyword.operator.isa.julia', regex: '::' },\n         { token: 'keyword.operator.dots.julia',\n           regex: '\\\\.(?=[a-zA-Z])|\\\\.\\\\.+' },\n         { token: 'keyword.operator.interpolation.julia',\n           regex: '\\\\$#?(?=.)' },\n         { token: [ 'variable', 'keyword.operator.transposed-variable.julia' ],\n           regex: '([\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]+)((?:\\'|\\\\.\\')*\\\\.?\\')' },\n         { token: 'text',\n           regex: '\\\\[|\\\\('},\n         { token: [ 'text', 'keyword.operator.transposed-matrix.julia' ],\n            regex: \"([\\\\]\\\\)])((?:'|\\\\.')*\\\\.?')\"} ],\n      '#string': \n       [ { token: 'punctuation.definition.string.begin.julia',\n           regex: '\\'',\n           push: \n            [ { token: 'punctuation.definition.string.end.julia',\n                regex: '\\'',\n                next: 'pop' },\n              { include: '#string_escaped_char' },\n              { defaultToken: 'string.quoted.single.julia' } ] },\n         { token: 'punctuation.definition.string.begin.julia',\n           regex: '\"',\n           push: \n            [ { token: 'punctuation.definition.string.end.julia',\n                regex: '\"',\n                next: 'pop' },\n              { include: '#string_escaped_char' },\n              { defaultToken: 'string.quoted.double.julia' } ] },\n         { token: 'punctuation.definition.string.begin.julia',\n           regex: '\\\\b[\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]+\"',\n           push: \n            [ { token: 'punctuation.definition.string.end.julia',\n                regex: '\"[\\\\w\\\\xff-\\\\u218e\\\\u2455-\\\\uffff]*',\n                next: 'pop' },\n              { include: '#string_custom_escaped_char' },\n              { defaultToken: 'string.quoted.custom-double.julia' } ] },\n         { token: 'punctuation.definition.string.begin.julia',\n           regex: '`',\n           push: \n            [ { token: 'punctuation.definition.string.end.julia',\n                regex: '`',\n                next: 'pop' },\n              { include: '#string_escaped_char' },\n              { defaultToken: 'string.quoted.backtick.julia' } ] } ],\n      '#string_custom_escaped_char': [ { token: 'constant.character.escape.julia', regex: '\\\\\\\\\"' } ],\n      '#string_escaped_char': \n       [ { token: 'constant.character.escape.julia',\n           regex: '\\\\\\\\(?:\\\\\\\\|[0-3]\\\\d{,2}|[4-7]\\\\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8}|.)' } ],\n      '#type_decl': \n       [ { token: \n            [ 'keyword.control.type.julia',\n              'meta.type.julia',\n              'entity.name.type.julia',\n              'entity.other.inherited-class.julia',\n              'punctuation.separator.inheritance.julia',\n              'entity.other.inherited-class.julia' ],\n           regex: '(type|immutable)(\\\\s+)([a-zA-Z0-9_]+)(?:(\\\\s*)(<:)(\\\\s*[.a-zA-Z0-9_:]+))?' },\n         { token: [ 'other.typed-variable.julia', 'support.type.julia' ],\n           regex: '([a-zA-Z0-9_]+)(::[a-zA-Z0-9_{}]+)' } ] }\n    \n    this.normalizeRules();\n};\n\nJuliaHighlightRules.metaData = { fileTypes: [ 'jl' ],\n      firstLineMatch: '^#!.*\\\\bjulia\\\\s*$',\n      foldingStartMarker: '^\\\\s*(?:if|while|for|begin|function|macro|module|baremodule|type|immutable|let)\\\\b(?!.*\\\\bend\\\\b).*$',\n      foldingStopMarker: '^\\\\s*(?:end)\\\\b.*$',\n      name: 'Julia',\n      scopeName: 'source.julia' }\n\n\noop.inherits(JuliaHighlightRules, TextHighlightRules);\n\nexports.JuliaHighlightRules = JuliaHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/julia\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/julia_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JuliaHighlightRules = require(\"./julia_highlight_rules\").JuliaHighlightRules;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JuliaHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"#\";\n    this.blockComment = \"\";\n    this.$id = \"ace/mode/julia\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-kotlin.js",
    "content": "ace.define(\"ace/mode/kotlin_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar KotlinHighlightRules = function() {\n\n    this.$rules = {\n        start: [{\n            include: \"#comments\"\n        }, {\n            token: [\n                \"text\",\n                \"keyword.other.kotlin\",\n                \"text\",\n                \"entity.name.package.kotlin\",\n                \"text\"\n            ],\n            regex: /^(\\s*)(package)\\b(?:(\\s*)([^ ;$]+)(\\s*))?/\n        }, {\n            include: \"#imports\"\n        }, {\n            include: \"#statements\"\n        }],\n        \"#classes\": [{\n            token: \"text\",\n            regex: /(?=\\s*(?:companion|class|object|interface))/,\n            push: [{\n                token: \"text\",\n                regex: /}|(?=$)/,\n                next: \"pop\"\n            }, {\n                token: [\"keyword.other.kotlin\", \"text\"],\n                regex: /\\b((?:companion\\s*)?)(class|object|interface)\\b/,\n                push: [{\n                    token: \"text\",\n                    regex: /(?=<|{|\\(|:)/,\n                    next: \"pop\"\n                }, {\n                    token: \"keyword.other.kotlin\",\n                    regex: /\\bobject\\b/\n                }, {\n                    token: \"entity.name.type.class.kotlin\",\n                    regex: /\\w+/\n                }]\n            }, {\n                token: \"text\",\n                regex: /</,\n                push: [{\n                    token: \"text\",\n                    regex: />/,\n                    next: \"pop\"\n                }, {\n                    include: \"#generics\"\n                }]\n            }, {\n                token: \"text\",\n                regex: /\\(/,\n                push: [{\n                    token: \"text\",\n                    regex: /\\)/,\n                    next: \"pop\"\n                }, {\n                    include: \"#parameters\"\n                }]\n            }, {\n                token: \"keyword.operator.declaration.kotlin\",\n                regex: /:/,\n                push: [{\n                    token: \"text\",\n                    regex: /(?={|$)/,\n                    next: \"pop\"\n                }, {\n                    token: \"entity.other.inherited-class.kotlin\",\n                    regex: /\\w+/\n                }, {\n                    token: \"text\",\n                    regex: /\\(/,\n                    push: [{\n                        token: \"text\",\n                        regex: /\\)/,\n                        next: \"pop\"\n                    }, {\n                        include: \"#expressions\"\n                    }]\n                }]\n            }, {\n                token: \"text\",\n                regex: /\\{/,\n                push: [{\n                    token: \"text\",\n                    regex: /\\}/,\n                    next: \"pop\"\n                }, {\n                    include: \"#statements\"\n                }]\n            }]\n        }],\n        \"#comments\": [{\n            token: \"punctuation.definition.comment.kotlin\",\n            regex: /\\/\\*/,\n            push: [{\n                token: \"punctuation.definition.comment.kotlin\",\n                regex: /\\*\\//,\n                next: \"pop\"\n            }, {\n                defaultToken: \"comment.block.kotlin\"\n            }]\n        }, {\n            token: [\n                \"text\",\n                \"punctuation.definition.comment.kotlin\",\n                \"comment.line.double-slash.kotlin\"\n            ],\n            regex: /(\\s*)(\\/\\/)(.*$)/\n        }],\n        \"#constants\": [{\n            token: \"constant.language.kotlin\",\n            regex: /\\b(?:true|false|null|this|super)\\b/\n        }, {\n            token: \"constant.numeric.kotlin\",\n            regex: /\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\.?[0-9]*|\\.[0-9]+)(?:(?:e|E)(?:\\+|-)?[0-9]+)?)(?:[LlFfUuDd]|UL|ul)?\\b/\n        }, {\n            token: \"constant.other.kotlin\",\n            regex: /\\b[A-Z][A-Z0-9_]+\\b/\n        }],\n        \"#expressions\": [{\n            token: \"text\",\n            regex: /\\(/,\n            push: [{\n                token: \"text\",\n                regex: /\\)/,\n                next: \"pop\"\n            }, {\n                include: \"#expressions\"\n            }]\n        }, {\n            include: \"#types\"\n        }, {\n            include: \"#strings\"\n        }, {\n            include: \"#constants\"\n        }, {\n            include: \"#comments\"\n        }, {\n            include: \"#keywords\"\n        }],\n        \"#functions\": [{\n            token: \"text\",\n            regex: /(?=\\s*fun)/,\n            push: [{\n                token: \"text\",\n                regex: /}|(?=$)/,\n                next: \"pop\"\n            }, {\n                token: \"keyword.other.kotlin\",\n                regex: /\\bfun\\b/,\n                push: [{\n                    token: \"text\",\n                    regex: /(?=\\()/,\n                    next: \"pop\"\n                }, {\n                    token: \"text\",\n                    regex: /</,\n                    push: [{\n                        token: \"text\",\n                        regex: />/,\n                        next: \"pop\"\n                    }, {\n                        include: \"#generics\"\n                    }]\n                }, {\n                    token: [\"text\", \"entity.name.function.kotlin\"],\n                    regex: /((?:[\\.<\\?>\\w]+\\.)?)(\\w+)/\n                }]\n            }, {\n                token: \"text\",\n                regex: /\\(/,\n                push: [{\n                    token: \"text\",\n                    regex: /\\)/,\n                    next: \"pop\"\n                }, {\n                    include: \"#parameters\"\n                }]\n            }, {\n                token: \"keyword.operator.declaration.kotlin\",\n                regex: /:/,\n                push: [{\n                    token: \"text\",\n                    regex: /(?={|=|$)/,\n                    next: \"pop\"\n                }, {\n                    include: \"#types\"\n                }]\n            }, {\n                token: \"text\",\n                regex: /\\{/,\n                push: [{\n                    token: \"text\",\n                    regex: /(?=\\})/,\n                    next: \"pop\"\n                }, {\n                    include: \"#statements\"\n                }]\n            }, {\n                token: \"keyword.operator.assignment.kotlin\",\n                regex: /=/,\n                push: [{\n                    token: \"text\",\n                    regex: /(?=$)/,\n                    next: \"pop\"\n                }, {\n                    include: \"#expressions\"\n                }]\n            }]\n        }],\n        \"#generics\": [{\n            token: \"keyword.operator.declaration.kotlin\",\n            regex: /:/,\n            push: [{\n                token: \"text\",\n                regex: /(?=,|>)/,\n                next: \"pop\"\n            }, {\n                include: \"#types\"\n            }]\n        }, {\n            include: \"#keywords\"\n        }, {\n            token: \"storage.type.generic.kotlin\",\n            regex: /\\w+/\n        }],\n        \"#getters-and-setters\": [{\n            token: [\"entity.name.function.kotlin\", \"text\"],\n            regex: /\\b(get)\\b(\\s*\\(\\s*\\))/,\n            push: [{\n                token: \"text\",\n                regex: /\\}|(?=\\bset\\b)|$/,\n                next: \"pop\"\n            }, {\n                token: \"keyword.operator.assignment.kotlin\",\n                regex: /=/,\n                push: [{\n                    token: \"text\",\n                    regex: /(?=$|\\bset\\b)/,\n                    next: \"pop\"\n                }, {\n                    include: \"#expressions\"\n                }]\n            }, {\n                token: \"text\",\n                regex: /\\{/,\n                push: [{\n                    token: \"text\",\n                    regex: /\\}/,\n                    next: \"pop\"\n                }, {\n                    include: \"#expressions\"\n                }]\n            }]\n        }, {\n            token: [\"entity.name.function.kotlin\", \"text\"],\n            regex: /\\b(set)\\b(\\s*)(?=\\()/,\n            push: [{\n                token: \"text\",\n                regex: /\\}|(?=\\bget\\b)|$/,\n                next: \"pop\"\n            }, {\n                token: \"text\",\n                regex: /\\(/,\n                push: [{\n                    token: \"text\",\n                    regex: /\\)/,\n                    next: \"pop\"\n                }, {\n                    include: \"#parameters\"\n                }]\n            }, {\n                token: \"keyword.operator.assignment.kotlin\",\n                regex: /=/,\n                push: [{\n                    token: \"text\",\n                    regex: /(?=$|\\bset\\b)/,\n                    next: \"pop\"\n                }, {\n                    include: \"#expressions\"\n                }]\n            }, {\n                token: \"text\",\n                regex: /\\{/,\n                push: [{\n                    token: \"text\",\n                    regex: /\\}/,\n                    next: \"pop\"\n                }, {\n                    include: \"#expressions\"\n                }]\n            }]\n        }],\n        \"#imports\": [{\n            token: [\n                \"text\",\n                \"keyword.other.kotlin\",\n                \"text\",\n                \"keyword.other.kotlin\"\n            ],\n            regex: /^(\\s*)(import)(\\s+[^ $]+\\s+)((?:as)?)/\n        }],\n        \"#keywords\": [{\n            token: \"storage.modifier.kotlin\",\n            regex: /\\b(?:var|val|public|private|protected|abstract|final|enum|open|attribute|annotation|override|inline|var|val|vararg|lazy|in|out|internal|data|tailrec|operator|infix|const|yield|typealias|typeof)\\b/\n        }, {\n            token: \"keyword.control.catch-exception.kotlin\",\n            regex: /\\b(?:try|catch|finally|throw)\\b/\n        }, {\n            token: \"keyword.control.kotlin\",\n            regex: /\\b(?:if|else|while|for|do|return|when|where|break|continue)\\b/\n        }, {\n            token: \"keyword.operator.kotlin\",\n            regex: /\\b(?:in|is|as|assert)\\b/\n        }, {\n            token: \"keyword.operator.comparison.kotlin\",\n            regex: /==|!=|===|!==|<=|>=|<|>/\n        }, {\n            token: \"keyword.operator.assignment.kotlin\",\n            regex: /=/\n        }, {\n            token: \"keyword.operator.declaration.kotlin\",\n            regex: /:/\n        }, {\n            token: \"keyword.operator.dot.kotlin\",\n            regex: /\\./\n        }, {\n            token: \"keyword.operator.increment-decrement.kotlin\",\n            regex: /\\-\\-|\\+\\+/\n        }, {\n            token: \"keyword.operator.arithmetic.kotlin\",\n            regex: /\\-|\\+|\\*|\\/|%/\n        }, {\n            token: \"keyword.operator.arithmetic.assign.kotlin\",\n            regex: /\\+=|\\-=|\\*=|\\/=/\n        }, {\n            token: \"keyword.operator.logical.kotlin\",\n            regex: /!|&&|\\|\\|/\n        }, {\n            token: \"keyword.operator.range.kotlin\",\n            regex: /\\.\\./\n        }, {\n            token: \"punctuation.terminator.kotlin\",\n            regex: /;/\n        }],\n        \"#namespaces\": [{\n            token: \"keyword.other.kotlin\",\n            regex: /\\bnamespace\\b/\n        }, {\n            token: \"text\",\n            regex: /\\{/,\n            push: [{\n                token: \"text\",\n                regex: /\\}/,\n                next: \"pop\"\n            }, {\n                include: \"#statements\"\n            }]\n        }],\n        \"#parameters\": [{\n            token: \"keyword.operator.declaration.kotlin\",\n            regex: /:/,\n            push: [{\n                token: \"text\",\n                regex: /(?=,|\\)|=)/,\n                next: \"pop\"\n            }, {\n                include: \"#types\"\n            }]\n        }, {\n            token: \"keyword.operator.declaration.kotlin\",\n            regex: /=/,\n            push: [{\n                token: \"text\",\n                regex: /(?=,|\\))/,\n                next: \"pop\"\n            }, {\n                include: \"#expressions\"\n            }]\n        }, {\n            include: \"#keywords\"\n        }, {\n            token: \"variable.parameter.function.kotlin\",\n            regex: /\\w+/\n        }],\n        \"#statements\": [{\n            include: \"#namespaces\"\n        }, {\n            include: \"#typedefs\"\n        }, {\n            include: \"#classes\"\n        }, {\n            include: \"#functions\"\n        }, {\n            include: \"#variables\"\n        }, {\n            include: \"#getters-and-setters\"\n        }, {\n            include: \"#expressions\"\n        }],\n        \"#strings\": [{\n            token: \"punctuation.definition.string.begin.kotlin\",\n            regex: /\"\"\"/,\n            push: [{\n                token: \"punctuation.definition.string.end.kotlin\",\n                regex: /\"\"\"/,\n                next: \"pop\"\n            }, {\n                token: \"variable.parameter.template.kotlin\",\n                regex: /\\$\\w+|\\$\\{[^\\}]+\\}/\n            }, {\n                token: \"constant.character.escape.kotlin\",\n                regex: /\\\\./\n            }, {\n                defaultToken: \"string.quoted.third.kotlin\"\n            }]\n        }, {\n            token: \"punctuation.definition.string.begin.kotlin\",\n            regex: /\"/,\n            push: [{\n                token: \"punctuation.definition.string.end.kotlin\",\n                regex: /\"/,\n                next: \"pop\"\n            }, {\n                token: \"variable.parameter.template.kotlin\",\n                regex: /\\$\\w+|\\$\\{[^\\}]+\\}/\n            }, {\n                token: \"constant.character.escape.kotlin\",\n                regex: /\\\\./\n            }, {\n                defaultToken: \"string.quoted.double.kotlin\"\n            }]\n        }, {\n            token: \"punctuation.definition.string.begin.kotlin\",\n            regex: /'/,\n            push: [{\n                token: \"punctuation.definition.string.end.kotlin\",\n                regex: /'/,\n                next: \"pop\"\n            }, {\n                token: \"constant.character.escape.kotlin\",\n                regex: /\\\\./\n            }, {\n                defaultToken: \"string.quoted.single.kotlin\"\n            }]\n        }, {\n            token: \"punctuation.definition.string.begin.kotlin\",\n            regex: /`/,\n            push: [{\n                token: \"punctuation.definition.string.end.kotlin\",\n                regex: /`/,\n                next: \"pop\"\n            }, {\n                defaultToken: \"string.quoted.single.kotlin\"\n            }]\n        }],\n        \"#typedefs\": [{\n            token: \"text\",\n            regex: /(?=\\s*type)/,\n            push: [{\n                token: \"text\",\n                regex: /(?=$)/,\n                next: \"pop\"\n            }, {\n                token: \"keyword.other.kotlin\",\n                regex: /\\btype\\b/\n            }, {\n                token: \"text\",\n                regex: /</,\n                push: [{\n                    token: \"text\",\n                    regex: />/,\n                    next: \"pop\"\n                }, {\n                    include: \"#generics\"\n                }]\n            }, {\n                include: \"#expressions\"\n            }]\n        }],\n        \"#types\": [{\n            token: \"storage.type.buildin.kotlin\",\n            regex: /\\b(?:Any|Unit|String|Int|Boolean|Char|Long|Double|Float|Short|Byte|dynamic)\\b/\n        }, {\n            token: \"storage.type.buildin.array.kotlin\",\n            regex: /\\b(?:IntArray|BooleanArray|CharArray|LongArray|DoubleArray|FloatArray|ShortArray|ByteArray)\\b/\n        }, {\n            token: [\n                \"storage.type.buildin.collection.kotlin\",\n                \"text\"\n            ],\n            regex: /\\b(Array|List|Map)(<\\b)/,\n            push: [{\n                token: \"text\",\n                regex: />/,\n                next: \"pop\"\n            }, {\n                include: \"#types\"\n            }, {\n                include: \"#keywords\"\n            }]\n        }, {\n            token: \"text\",\n            regex: /\\w+</,\n            push: [{\n                token: \"text\",\n                regex: />/,\n                next: \"pop\"\n            }, {\n                include: \"#types\"\n            }, {\n                include: \"#keywords\"\n            }]\n        }, {\n            token: [\"keyword.operator.tuple.kotlin\", \"text\"],\n            regex: /(#)(\\()/,\n            push: [{\n                token: \"text\",\n                regex: /\\)/,\n                next: \"pop\"\n            }, {\n                include: \"#expressions\"\n            }]\n        }, {\n            token: \"text\",\n            regex: /\\{/,\n            push: [{\n                token: \"text\",\n                regex: /\\}/,\n                next: \"pop\"\n            }, {\n                include: \"#statements\"\n            }]\n        }, {\n            token: \"text\",\n            regex: /\\(/,\n            push: [{\n                token: \"text\",\n                regex: /\\)/,\n                next: \"pop\"\n            }, {\n                include: \"#types\"\n            }]\n        }, {\n            token: \"keyword.operator.declaration.kotlin\",\n            regex: /->/\n        }],\n        \"#variables\": [{\n            token: \"text\",\n            regex: /(?=\\s*(?:var|val))/,\n            push: [{\n                token: \"text\",\n                regex: /(?=:|=|$)/,\n                next: \"pop\"\n            }, {\n                token: \"keyword.other.kotlin\",\n                regex: /\\b(?:var|val)\\b/,\n                push: [{\n                    token: \"text\",\n                    regex: /(?=:|=|$)/,\n                    next: \"pop\"\n                }, {\n                    token: \"text\",\n                    regex: /</,\n                    push: [{\n                        token: \"text\",\n                        regex: />/,\n                        next: \"pop\"\n                    }, {\n                        include: \"#generics\"\n                    }]\n                }, {\n                    token: [\"text\", \"entity.name.variable.kotlin\"],\n                    regex: /((?:[\\.<\\?>\\w]+\\.)?)(\\w+)/\n                }]\n            }, {\n                token: \"keyword.operator.declaration.kotlin\",\n                regex: /:/,\n                push: [{\n                    token: \"text\",\n                    regex: /(?==|$)/,\n                    next: \"pop\"\n                }, {\n                    include: \"#types\"\n                }, {\n                    include: \"#getters-and-setters\"\n                }]\n            }, {\n                token: \"keyword.operator.assignment.kotlin\",\n                regex: /=/,\n                push: [{\n                    token: \"text\",\n                    regex: /(?=$)/,\n                    next: \"pop\"\n                }, {\n                    include: \"#expressions\"\n                }, {\n                    include: \"#getters-and-setters\"\n                }]\n            }]\n        }]\n    }\n    \n    this.normalizeRules();\n};\n\nKotlinHighlightRules.metaData = {\n    fileTypes: [\"kt\", \"kts\"],\n    name: \"Kotlin\",\n    scopeName: \"source.Kotlin\"\n}\n\n\noop.inherits(KotlinHighlightRules, TextHighlightRules);\n\nexports.KotlinHighlightRules = KotlinHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/kotlin\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/kotlin_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar KotlinHighlightRules = require(\"./kotlin_highlight_rules\").KotlinHighlightRules;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = KotlinHighlightRules;\n    this.foldingRules = new FoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.$id = \"ace/mode/kotlin\"\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-latex.js",
    "content": "ace.define(\"ace/mode/latex_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar LatexHighlightRules = function() {  \n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\",\n            regex : \"%.*$\"\n        }, {\n            token : [\"keyword\", \"lparen\", \"variable.parameter\", \"rparen\", \"lparen\", \"storage.type\", \"rparen\"],\n            regex : \"(\\\\\\\\(?:documentclass|usepackage|input))(?:(\\\\[)([^\\\\]]*)(\\\\]))?({)([^}]*)(})\"\n        }, {\n            token : [\"keyword\",\"lparen\", \"variable.parameter\", \"rparen\"],\n            regex : \"(\\\\\\\\(?:label|v?ref|cite(?:[^{]*)))(?:({)([^}]*)(}))?\"\n        }, {\n            token : [\"storage.type\", \"lparen\", \"variable.parameter\", \"rparen\"],\n            regex : \"(\\\\\\\\(?:begin|end))({)(\\\\w*)(})\"\n        }, {\n            token : \"storage.type\",\n            regex : \"\\\\\\\\[a-zA-Z]+\"\n        }, {\n            token : \"lparen\",\n            regex : \"[[({]\"\n        }, {\n            token : \"rparen\",\n            regex : \"[\\\\])}]\"\n        }, {\n            token : \"constant.character.escape\",\n            regex : \"\\\\\\\\[^a-zA-Z]?\"\n        }, {\n            token : \"string\",\n            regex : \"\\\\${1,2}\",\n            next  : \"equation\"\n        }],\n        \"equation\" : [{\n            token : \"comment\",\n            regex : \"%.*$\"\n        }, {\n            token : \"string\",\n            regex : \"\\\\${1,2}\",\n            next  : \"start\"\n        }, {\n            token : \"constant.character.escape\",\n            regex : \"\\\\\\\\(?:[^a-zA-Z]|[a-zA-Z]+)\"\n        }, {\n            token : \"error\", \n            regex : \"^\\\\s*$\", \n            next : \"start\" \n        }, {\n            defaultToken : \"string\"\n        }]\n\n    };\n};\noop.inherits(LatexHighlightRules, TextHighlightRules);\n\nexports.LatexHighlightRules = LatexHighlightRules;\n\n});\n\nace.define(\"ace/mode/folding/latex\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar FoldMode = exports.FoldMode = function() {};\n\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.foldingStartMarker = /^\\s*\\\\(begin)|(section|subsection|paragraph)\\b|{\\s*$/;\n    this.foldingStopMarker = /^\\s*\\\\(end)\\b|^\\s*}/;\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var line = session.doc.getLine(row);\n        var match = this.foldingStartMarker.exec(line);\n        if (match) {\n            if (match[1])\n                return this.latexBlock(session, row, match[0].length - 1);\n            if (match[2])\n                return this.latexSection(session, row, match[0].length - 1);\n\n            return this.openingBracketBlock(session, \"{\", row, match.index);\n        }\n\n        var match = this.foldingStopMarker.exec(line);\n        if (match) {\n            if (match[1])\n                return this.latexBlock(session, row, match[0].length - 1);\n\n            return this.closingBracketBlock(session, \"}\", row, match.index + match[0].length);\n        }\n    };\n\n    this.latexBlock = function(session, row, column) {\n        var keywords = {\n            \"\\\\begin\": 1,\n            \"\\\\end\": -1\n        };\n\n        var stream = new TokenIterator(session, row, column);\n        var token = stream.getCurrentToken();\n        if (!token || !(token.type == \"storage.type\" || token.type == \"constant.character.escape\"))\n            return;\n\n        var val = token.value;\n        var dir = keywords[val];\n\n        var getType = function() {\n            var token = stream.stepForward();\n            var type = token.type == \"lparen\" ?stream.stepForward().value : \"\";\n            if (dir === -1) {\n                stream.stepBackward();\n                if (type)\n                    stream.stepBackward();\n            }\n            return type;\n        };\n        var stack = [getType()];\n        var startColumn = dir === -1 ? stream.getCurrentTokenColumn() : session.getLine(row).length;\n        var startRow = row;\n\n        stream.step = dir === -1 ? stream.stepBackward : stream.stepForward;\n        while(token = stream.step()) {\n            if (!token || !(token.type == \"storage.type\" || token.type == \"constant.character.escape\"))\n                continue;\n            var level = keywords[token.value];\n            if (!level)\n                continue;\n            var type = getType();\n            if (level === dir)\n                stack.unshift(type);\n            else if (stack.shift() !== type || !stack.length)\n                break;\n        }\n\n        if (stack.length)\n            return;\n\n        var row = stream.getCurrentTokenRow();\n        if (dir === -1)\n            return new Range(row, session.getLine(row).length, startRow, startColumn);\n        stream.stepBackward();\n        return new Range(startRow, startColumn, row, stream.getCurrentTokenColumn());\n    };\n\n    this.latexSection = function(session, row, column) {\n        var keywords = [\"\\\\subsection\", \"\\\\section\", \"\\\\begin\", \"\\\\end\", \"\\\\paragraph\"];\n\n        var stream = new TokenIterator(session, row, column);\n        var token = stream.getCurrentToken();\n        if (!token || token.type != \"storage.type\")\n            return;\n\n        var startLevel = keywords.indexOf(token.value);\n        var stackDepth = 0\n        var endRow = row;\n\n        while(token = stream.stepForward()) {\n            if (token.type !== \"storage.type\")\n                continue;\n            var level = keywords.indexOf(token.value);\n\n            if (level >= 2) {\n                if (!stackDepth)\n                    endRow = stream.getCurrentTokenRow() - 1;\n                stackDepth += level == 2 ? 1 : - 1;\n                if (stackDepth < 0)\n                    break\n            } else if (level >= startLevel)\n                break;\n        }\n\n        if (!stackDepth)\n            endRow = stream.getCurrentTokenRow() - 1;\n\n        while (endRow > row && !/\\S/.test(session.getLine(endRow)))\n            endRow--;\n\n        return new Range(\n            row, session.getLine(row).length,\n            endRow, session.getLine(endRow).length\n        );\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/latex\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/latex_highlight_rules\",\"ace/mode/folding/latex\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar LatexHighlightRules = require(\"./latex_highlight_rules\").LatexHighlightRules;\nvar LatexFoldMode = require(\"./folding/latex\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = LatexHighlightRules;\n    this.foldingRules = new LatexFoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.type = \"text\";\n    \n    this.lineCommentStart = \"%\";\n\n    this.$id = \"ace/mode/latex\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-lean.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/lean_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar leanHighlightRules = function() {\n\n    var keywordControls = (\n        [ \"add_rewrite\", \"alias\", \"as\", \"assume\", \"attribute\",\n          \"begin\", \"by\", \"calc\", \"calc_refl\", \"calc_subst\", \"calc_trans\", \"check\",\n          \"classes\", \"coercions\", \"conjecture\", \"constants\", \"context\",\n          \"corollary\", \"else\", \"end\", \"environment\", \"eval\", \"example\",\n          \"exists\", \"exit\", \"export\", \"exposing\", \"extends\", \"fields\", \"find_decl\",\n          \"forall\", \"from\", \"fun\", \"have\", \"help\", \"hiding\", \"if\",\n          \"import\", \"in\", \"infix\", \"infixl\", \"infixr\", \"instances\",\n          \"let\", \"local\", \"match\", \"namespace\", \"notation\", \"obtain\", \"obtains\",\n          \"omit\", \"opaque\", \"open\", \"options\", \"parameter\", \"parameters\", \"postfix\",\n          \"precedence\", \"prefix\", \"premise\", \"premises\", \"print\", \"private\", \"proof\",\n          \"protected\", \"qed\", \"raw\", \"renaming\", \"section\", \"set_option\",\n          \"show\", \"tactic_hint\", \"take\", \"then\", \"universe\",\n          \"universes\", \"using\", \"variable\", \"variables\", \"with\"].join(\"|\")\n    );\n\n    var nameProviders = (\n        [\"inductive\", \"structure\", \"record\", \"theorem\", \"axiom\",\n         \"axioms\", \"lemma\", \"hypothesis\", \"definition\", \"constant\"].join(\"|\")\n    );\n\n    var storageType = (\n        [\"Prop\", \"Type\", \"Type'\", \"Type₊\", \"Type₁\", \"Type₂\", \"Type₃\"].join(\"|\")\n    );\n\n    var storageModifiers = (\n        \"\\\\[(\" +\n            [\"abbreviations\", \"all-transparent\", \"begin-end-hints\", \"class\", \"classes\", \"coercion\",\n             \"coercions\", \"declarations\", \"decls\", \"instance\", \"irreducible\",\n             \"multiple-instances\", \"notation\", \"notations\", \"parsing-only\", \"persistent\",\n             \"reduce-hints\", \"reducible\", \"tactic-hints\", \"visible\", \"wf\", \"whnf\"\n            ].join(\"|\") +\n            \")\\\\]\"\n    );\n\n    var keywordOperators = (\n        [].join(\"|\")\n    );\n\n    var keywordMapper = this.$keywords = this.createKeywordMapper({\n        \"keyword.control\" : keywordControls,\n        \"storage.type\" : storageType,\n        \"keyword.operator\" : keywordOperators,\n        \"variable.language\": \"sorry\"\n    }, \"identifier\");\n\n    var identifierRe = \"[A-Za-z_\\u03b1-\\u03ba\\u03bc-\\u03fb\\u1f00-\\u1ffe\\u2100-\\u214f][A-Za-z0-9_'\\u03b1-\\u03ba\\u03bc-\\u03fb\\u1f00-\\u1ffe\\u2070-\\u2079\\u207f-\\u2089\\u2090-\\u209c\\u2100-\\u214f]*\";\n    var operatorRe = new RegExp([\"#\", \"@\", \"->\", \"∼\", \"↔\", \"/\", \"==\", \"=\", \":=\", \"<->\",\n                                 \"/\\\\\", \"\\\\/\", \"∧\", \"∨\", \"≠\", \"<\", \">\", \"≤\", \"≥\", \"¬\",\n                                 \"<=\", \">=\", \"⁻¹\", \"⬝\", \"▸\", \"\\\\+\", \"\\\\*\", \"-\", \"/\",\n                                 \"λ\", \"→\", \"∃\", \"∀\", \":=\"].join(\"|\"));\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\", // single line comment \"--\"\n                regex : \"--.*$\"\n            },\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            {\n                token : \"comment\", // multi line comment \"/-\"\n                regex : \"\\\\/-\",\n                next : \"comment\"\n            }, {\n                stateName: \"qqstring\",\n                token : \"string.start\", regex : '\"', next : [\n                    {token : \"string.end\", regex : '\"', next : \"start\"},\n                    {token : \"constant.language.escape\", regex : /\\\\[n\"\\\\]/},\n                    {defaultToken: \"string\"}\n                ]\n            }, {\n                token : \"keyword.control\", regex : nameProviders, next : [\n                    {token : \"variable.language\", regex : identifierRe, next : \"start\"} ]\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : \"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"\n            }, {\n                token : \"storage.modifier\",\n                regex : storageModifiers\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"operator\",\n                regex : operatorRe\n            }, {\n              token : \"punctuation.operator\",\n              regex : \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [ {token: \"comment\", regex: \"-/\", next: \"start\"},\n                      {defaultToken: \"comment\"} ]\n    };\n\n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n    this.normalizeRules();\n};\n\noop.inherits(leanHighlightRules, TextHighlightRules);\n\nexports.leanHighlightRules = leanHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/lean\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/lean_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar leanHighlightRules = require(\"./lean_highlight_rules\").leanHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar Range = require(\"../range\").Range;\n\nvar Mode = function() {\n    this.HighlightRules = leanHighlightRules;\n\n    this.$outdent = new MatchingBraceOutdent();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"--\";\n    this.blockComment = {start: \"/-\", end: \"-/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"- \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.$id = \"ace/mode/lean\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-less.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/less_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/css_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar CssHighlightRules = require('./css_highlight_rules');\n\nvar LessHighlightRules = function() {\n\n\n    var keywordList = \"@import|@media|@font-face|@keyframes|@-webkit-keyframes|@supports|\" + \n        \"@charset|@plugin|@namespace|@document|@page|@viewport|@-ms-viewport|\" +\n        \"or|and|when|not\";\n\n    var keywords = keywordList.split('|');\n\n    var properties = CssHighlightRules.supportType.split('|');\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.constant\": CssHighlightRules.supportConstant,\n        \"keyword\": keywordList,\n        \"support.constant.color\": CssHighlightRules.supportConstantColor,\n        \"support.constant.fonts\": CssHighlightRules.supportConstantFonts\n    }, \"identifier\", true);   \n\n    var numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"\\\\/\\\\/.*$\"\n            },\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n                token : \"string\", // single line\n                regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n            }, {\n                token : \"string\", // single line\n                regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n            }, {\n                token : [\"constant.numeric\", \"keyword\"],\n                regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n            }, {\n                token : \"constant.numeric\", // hex6 color\n                regex : \"#[a-f0-9]{6}\"\n            }, {\n                token : \"constant.numeric\", // hex3 color\n                regex : \"#[a-f0-9]{3}\"\n            }, {\n                token : \"constant.numeric\",\n                regex : numRe\n            }, {\n                token : [\"support.function\", \"paren.lparen\", \"string\", \"paren.rparen\"],\n                regex : \"(url)(\\\\()(.*)(\\\\))\"\n            }, {\n                token : [\"support.function\", \"paren.lparen\"],\n                regex : \"(:extend|[a-z0-9_\\\\-]+)(\\\\()\"\n            }, {\n                token : function(value) {\n                    if (keywords.indexOf(value.toLowerCase()) > -1)\n                        return \"keyword\";\n                    else\n                        return \"variable\";\n                },\n                regex : \"[@\\\\$][a-z0-9_\\\\-@\\\\$]*\\\\b\"\n            }, {\n                token : \"variable\",\n                regex : \"[@\\\\$]\\\\{[a-z0-9_\\\\-@\\\\$]*\\\\}\"\n            }, {\n                token : function(first, second) {\n                    if(properties.indexOf(first.toLowerCase()) > -1) {\n                        return [\"support.type.property\", \"text\"];\n                    }\n                    else {\n                        return [\"support.type.unknownProperty\", \"text\"];\n                    }\n                },\n                regex : \"([a-z0-9-_]+)(\\\\s*:)\"\n            }, {\n                token : \"keyword\",\n                regex : \"&\"   // special case - always treat as keyword\n            }, {\n                token : keywordMapper,\n                regex : \"\\\\-?[@a-z_][@a-z0-9_\\\\-]*\"\n            }, {\n                token: \"variable.language\",\n                regex: \"#[a-z0-9-_]+\"\n            }, {\n                token: \"variable.language\",\n                regex: \"\\\\.[a-z0-9-_]+\"\n            }, {\n                token: \"variable.language\",\n                regex: \":[a-z_][a-z0-9-_]*\"\n            }, {\n                token: \"constant\",\n                regex: \"[a-z0-9-_]+\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"<|>|<=|>=|=|!=|-|%|\\\\+|\\\\*\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                caseInsensitive: true\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ]\n    };\n    this.normalizeRules();\n};\n\noop.inherits(LessHighlightRules, TextHighlightRules);\n\nexports.LessHighlightRules = LessHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar CssBehaviour = function () {\n\n    this.inherit(CstyleBehaviour);\n\n    this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(cursor.row);\n                var rightChar = line.substring(cursor.column, cursor.column + 1);\n                if (rightChar === ':') {\n                    return {\n                       text: '',\n                       selection: [1, 1]\n                    }\n                }\n                if (!line.substring(cursor.column).match(/^\\s*;/)) {\n                    return {\n                       text: ':;',\n                       selection: [1, 1]\n                    }\n                }\n            }\n        }\n    });\n\n    this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && selected === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(range.start.row);\n                var rightChar = line.substring(range.end.column, range.end.column + 1);\n                if (rightChar === ';') {\n                    range.end.column ++;\n                    return range;\n                }\n            }\n        }\n    });\n\n    this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ';') {\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar === ';') {\n                return {\n                   text: '',\n                   selection: [1, 1]\n                }\n            }\n        }\n    });\n\n}\noop.inherits(CssBehaviour, CstyleBehaviour);\n\nexports.CssBehaviour = CssBehaviour;\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar propertyMap = {\n    \"background\": {\"#$0\": 1},\n    \"background-color\": {\"#$0\": 1, \"transparent\": 1, \"fixed\": 1},\n    \"background-image\": {\"url('/$0')\": 1},\n    \"background-repeat\": {\"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1},\n    \"background-position\": {\"bottom\":2, \"center\":2, \"left\":2, \"right\":2, \"top\":2, \"inherit\":2},\n    \"background-attachment\": {\"scroll\": 1, \"fixed\": 1},\n    \"background-size\": {\"cover\": 1, \"contain\": 1},\n    \"background-clip\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"background-origin\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"border\": {\"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1},\n    \"border-color\": {\"#$0\": 1},\n    \"border-style\": {\"solid\":2, \"dashed\":2, \"dotted\":2, \"double\":2, \"groove\":2, \"hidden\":2, \"inherit\":2, \"inset\":2, \"none\":2, \"outset\":2, \"ridged\":2},\n    \"border-collapse\": {\"collapse\": 1, \"separate\": 1},\n    \"bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"clear\": {\"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1},\n    \"color\": {\"#$0\": 1, \"rgb(#$00,0,0)\": 1},\n    \"cursor\": {\"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1},\n    \"display\": {\"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1},\n    \"empty-cells\": {\"show\": 1, \"hide\": 1},\n    \"float\": {\"left\": 1, \"right\": 1, \"none\": 1},\n    \"font-family\": {\"Arial\":2,\"Comic Sans MS\":2,\"Consolas\":2,\"Courier New\":2,\"Courier\":2,\"Georgia\":2,\"Monospace\":2,\"Sans-Serif\":2, \"Segoe UI\":2,\"Tahoma\":2,\"Times New Roman\":2,\"Trebuchet MS\":2,\"Verdana\": 1},\n    \"font-size\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"font-weight\": {\"bold\": 1, \"normal\": 1},\n    \"font-style\": {\"italic\": 1, \"normal\": 1},\n    \"font-variant\": {\"normal\": 1, \"small-caps\": 1},\n    \"height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"letter-spacing\": {\"normal\": 1},\n    \"line-height\": {\"normal\": 1},\n    \"list-style-type\": {\"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1},\n    \"margin\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"overflow\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-x\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-y\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"padding\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"page-break-after\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"page-break-before\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"position\": {\"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1},\n    \"right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"table-layout\": {\"fixed\": 1, \"auto\": 1},\n    \"text-decoration\": {\"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1},\n    \"text-align\": {\"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1},\n    \"text-transform\": {\"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1},\n    \"top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"vertical-align\": {\"top\": 1, \"bottom\": 1},\n    \"visibility\": {\"hidden\": 1, \"visible\": 1},\n    \"white-space\": {\"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1},\n    \"width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"word-spacing\": {\"normal\": 1},\n    \"filter\": {\"alpha(opacity=$0100)\": 1},\n\n    \"text-shadow\": {\"$02px 2px 2px #777\": 1},\n    \"text-overflow\": {\"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1},\n    \"-moz-border-radius\": 1,\n    \"-moz-border-radius-topright\": 1,\n    \"-moz-border-radius-bottomright\": 1,\n    \"-moz-border-radius-topleft\": 1,\n    \"-moz-border-radius-bottomleft\": 1,\n    \"-webkit-border-radius\": 1,\n    \"-webkit-border-top-right-radius\": 1,\n    \"-webkit-border-top-left-radius\": 1,\n    \"-webkit-border-bottom-right-radius\": 1,\n    \"-webkit-border-bottom-left-radius\": 1,\n    \"-moz-box-shadow\": 1,\n    \"-webkit-box-shadow\": 1,\n    \"transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-moz-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-webkit-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\n\nvar CssCompletions = function() {\n\n};\n\n(function() {\n\n    this.completionsDefined = false;\n\n    this.defineCompletions = function() {\n        if (document) {\n            var style = document.createElement('c').style;\n\n            for (var i in style) {\n                if (typeof style[i] !== 'string')\n                    continue;\n\n                var name = i.replace(/[A-Z]/g, function(x) {\n                    return '-' + x.toLowerCase();\n                });\n\n                if (!propertyMap.hasOwnProperty(name))\n                    propertyMap[name] = 1;\n            }\n        }\n\n        this.completionsDefined = true;\n    }\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        if (!this.completionsDefined) {\n            this.defineCompletions();\n        }\n\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (state==='ruleset'){\n            var line = session.getLine(pos.row).substr(0, pos.column);\n            if (/:[^;]+$/.test(line)) {\n                /([\\w\\-]+):[^:]*$/.test(line);\n\n                return this.getPropertyValueCompletions(state, session, pos, prefix);\n            } else {\n                return this.getPropertyCompletions(state, session, pos, prefix);\n            }\n        }\n\n        return [];\n    };\n\n    this.getPropertyCompletions = function(state, session, pos, prefix) {\n        var properties = Object.keys(propertyMap);\n        return properties.map(function(property){\n            return {\n                caption: property,\n                snippet: property + ': $0',\n                meta: \"property\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getPropertyValueCompletions = function(state, session, pos, prefix) {\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n\n        if (!property)\n            return [];\n        var values = [];\n        if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n            values = Object.keys(propertyMap[property]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"property value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(CssCompletions.prototype);\n\nexports.CssCompletions = CssCompletions;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/less\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/less_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/css\",\"ace/mode/css_completions\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar LessHighlightRules = require(\"./less_highlight_rules\").LessHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\n\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = LessHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CssBehaviour();\n    this.$completer = new CssCompletions();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n    \n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        var match = line.match(/^.*\\{\\s*$/);\n        if (match) {\n            indent += tab;\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(\"ruleset\", session, pos, prefix);\n    };\n\n    this.$id = \"ace/mode/less\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-liquid.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n    a           : 'anchor',\n    button \t    : 'form',\n    form        : 'form',\n    img         : 'image',\n    input       : 'form',\n    label       : 'form',\n    option      : 'form',\n    script      : 'script',\n    select      : 'form',\n    textarea    : 'form',\n    style       : 'style',\n    table       : 'table',\n    tbody       : 'table',\n    td          : 'table',\n    tfoot       : 'table',\n    th          : 'table',\n    tr          : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.addRules({\n        attributes: [{\n            include : \"tag_whitespace\"\n        }, {\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"[-_a-zA-Z0-9:.]+\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\",\n            push : [{\n                include: \"tag_whitespace\"\n            }, {\n                token : \"string.unquoted.attribute-value.html\",\n                regex : \"[^<>='\\\"`\\\\s]+\",\n                next : \"pop\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"pop\"\n            }]\n        }, {\n            include : \"attribute_value\"\n        }],\n        tag: [{\n            token : function(start, tag) {\n                var group = tagMap[tag];\n                return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                    \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n            },\n            regex : \"(</?)([-_a-zA-Z0-9:.]+)\",\n            next: \"tag_stuff\"\n        }],\n        tag_stuff: [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n        ]\n    });\n\n    this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"js-\", \"script\");\n\n    if (this.constructor === HtmlHighlightRules)\n        this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/liquid_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/html_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\n\nvar LiquidHighlightRules = function() {\n    HtmlHighlightRules.call(this);\n    var functions = (\n        \"date|capitalize|downcase|upcase|first|last|join|sort|map|size|escape|\" +\n         \"escape_once|strip_html|strip_newlines|newline_to_br|replace|replace_first|\" +\n         \"truncate|truncatewords|prepend|append|minus|plus|times|divided_by|split\"\n    );\n\n    var keywords = (\n        \"capture|endcapture|case|endcase|when|comment|endcomment|\" +\n        \"cycle|for|endfor|in|reversed|if|endif|else|elsif|include|endinclude|unless|endunless|\" +\n        \"style|text|image|widget|plugin|marker|endmarker|tablerow|endtablerow\"\n    );\n\n    var builtinVariables = 'forloop|tablerowloop';\n\n    var definitions = (\"assign\");\n\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\": builtinVariables,\n        \"keyword\": keywords,\n        \"support.function\": functions,\n        \"keyword.definition\": definitions\n    }, \"identifier\");\n    for (var rule in this.$rules) {\n        this.$rules[rule].unshift({\n            token : \"variable\",\n            regex : \"{%\",\n            push : \"liquid-start\"\n        }, {\n            token : \"variable\",\n            regex : \"{{\",\n            push : \"liquid-start\"\n        });\n    }\n\n    this.addRules({\n        \"liquid-start\" : [{\n            token: \"variable\",\n            regex: \"}}\",\n            next: \"pop\"\n        }, {\n            token: \"variable\",\n            regex: \"%}\",\n            next: \"pop\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : \"constant.numeric\", // hex\n            regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n        }, {\n            token : \"constant.numeric\", // float\n            regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n        }, {\n            token : \"constant.language.boolean\",\n            regex : \"(?:true|false)\\\\b\"\n        }, {\n            token : keywordMapper,\n            regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n        }, {\n            token : \"keyword.operator\",\n            regex : \"/|\\\\*|\\\\-|\\\\+|=|!=|\\\\?\\\\:\"\n        }, {\n            token : \"paren.lparen\",\n            regex : /[\\[\\({]/\n        }, {\n            token : \"paren.rparen\",\n            regex : /[\\])}]/\n        }, {\n            token : \"text\",\n            regex : \"\\\\s+\"\n        }]\n    });\n\n    this.normalizeRules();\n};\noop.inherits(LiquidHighlightRules, TextHighlightRules);\n\nexports.LiquidHighlightRules = LiquidHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/liquid\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/liquid_highlight_rules\",\"ace/mode/matching_brace_outdent\"], function(require, exports, module) {\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar LiquidHighlightRules = require(\"./liquid_highlight_rules\").LiquidHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\n\nvar Mode = function() {\n    this.HighlightRules = LiquidHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.blockComment = {start: \"<!--\", end: \"-->\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.$id = \"ace/mode/liquid\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-lisp.js",
    "content": "ace.define(\"ace/mode/lisp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar LispHighlightRules = function() {\n    var keywordControl = \"case|do|let|loop|if|else|when\";\n    var keywordOperator = \"eq|neq|and|or\";\n    var constantLanguage = \"null|nil\";\n    var supportFunctions = \"cons|car|cdr|cond|lambda|format|setq|setf|quote|eval|append|list|listp|memberp|t|load|progn\";\n\n    var keywordMapper = this.createKeywordMapper({\n        \"keyword.control\": keywordControl,\n        \"keyword.operator\": keywordOperator,\n        \"constant.language\": constantLanguage,\n        \"support.function\": supportFunctions\n    }, \"identifier\", true);\n\n    this.$rules = \n        {\n    \"start\": [\n        {\n            token : \"comment\",\n            regex : \";.*$\"\n        },\n        {\n            token: [\"storage.type.function-type.lisp\", \"text\", \"entity.name.function.lisp\"],\n            regex: \"(?:\\\\b(?:(defun|defmethod|defmacro))\\\\b)(\\\\s+)((?:\\\\w|\\\\-|\\\\!|\\\\?)*)\"\n        },\n        {\n            token: [\"punctuation.definition.constant.character.lisp\", \"constant.character.lisp\"],\n            regex: \"(#)((?:\\\\w|[\\\\\\\\+-=<>'\\\"&#])+)\"\n        },\n        {\n            token: [\"punctuation.definition.variable.lisp\", \"variable.other.global.lisp\", \"punctuation.definition.variable.lisp\"],\n            regex: \"(\\\\*)(\\\\S*)(\\\\*)\"\n        },\n        {\n            token : \"constant.numeric\", // hex\n            regex : \"0[xX][0-9a-fA-F]+(?:L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"\n        }, \n        {\n            token : \"constant.numeric\", // float\n            regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(?:L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"\n        },\n        {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n        },\n        {\n            token : \"string\",\n            regex : '\"(?=.)',\n            next  : \"qqstring\"\n        }\n    ],\n    \"qqstring\": [\n        {\n            token: \"constant.character.escape.lisp\",\n            regex: \"\\\\\\\\.\"\n        },\n        {\n            token : \"string\",\n            regex : '[^\"\\\\\\\\]+'\n        }, {\n            token : \"string\",\n            regex : \"\\\\\\\\$\",\n            next  : \"qqstring\"\n        }, {\n            token : \"string\",\n            regex : '\"|$',\n            next  : \"start\"\n        }\n    ]\n}\n\n};\n\noop.inherits(LispHighlightRules, TextHighlightRules);\n\nexports.LispHighlightRules = LispHighlightRules;\n});\n\nace.define(\"ace/mode/lisp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/lisp_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar LispHighlightRules = require(\"./lisp_highlight_rules\").LispHighlightRules;\n\nvar Mode = function() {\n    this.HighlightRules = LispHighlightRules;\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n       \n    this.lineCommentStart = \";\";\n    \n    this.$id = \"ace/mode/lisp\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-live_script.js",
    "content": "ace.define(\"ace/mode/live_script_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar LiveScriptHighlightRules = function() {\n\n    this.$rules = { start: \n       [ { token: 'punctuation.definition.comment.livescript',\n           regex: '\\\\/\\\\*',\n           push: \n            [ { token: 'punctuation.definition.comment.livescript',\n                regex: '\\\\*\\\\/',\n                next: 'pop' },\n              { token: 'storage.type.annotation.livescriptscript',\n                regex: '@\\\\w*' },\n              { defaultToken: 'comment.block.livescript' } ] },\n         { token: \n            [ 'punctuation.definition.comment.livescript',\n              'comment.line.number-sign.livescript' ],\n           regex: '(#)(?!\\\\{)(.*$)' },\n         { token: \n            [ 'variable.parameter.function.livescript',\n              'meta.inline.function.livescript',\n              'storage.type.function.livescript',\n              'meta.inline.function.livescript',\n              'variable.parameter.function.livescript',\n              'meta.inline.function.livescript',\n              'storage.type.function.livescript' ],\n           regex: '(\\\\s*\\\\!?\\\\(\\\\s*[^()]*?\\\\))(\\\\s*)(!?[~-]{1,2}>)|(\\\\s*\\\\!?)(\\\\(?[^()]*?\\\\)?)(\\\\s*)(<[~-]{1,2}!?)',\n           comment: 'match stuff like: a -> … ' },\n         { token: \n            [ 'keyword.operator.new.livescript',\n              'meta.class.instance.constructor',\n              'entity.name.type.instance.livescript' ],\n           regex: '(new)(\\\\s+)(\\\\w+(?:\\\\.\\\\w*)*)' },\n         { token: 'keyword.illegal.livescript',\n           regex: '\\\\bp(?:ackage|r(?:ivate|otected)|ublic)|interface|enum|static|yield\\\\b' },\n         { token: 'punctuation.definition.string.begin.livescript',\n           regex: '\\'\\'\\'',\n           push: \n            [ { token: 'punctuation.definition.string.end.livescript',\n                regex: '\\'\\'\\'',\n                next: 'pop' },\n              { defaultToken: 'string.quoted.heredoc.livescript' } ] },\n         { token: 'punctuation.definition.string.begin.livescript',\n           regex: '\"\"\"',\n           push: \n            [ { token: 'punctuation.definition.string.end.livescript',\n                regex: '\"\"\"',\n                next: 'pop' },\n              { token: 'constant.character.escape.livescript',\n                regex: '\\\\\\\\.' },\n              { include: '#interpolated_livescript' },\n              { defaultToken: 'string.quoted.double.heredoc.livescript' } ] },\n         { token: 'punctuation.definition.string.begin.livescript',\n           regex: '``',\n           push: \n            [ { token: 'punctuation.definition.string.end.livescript',\n                regex: '``',\n                next: 'pop' },\n              { token: 'constant.character.escape.livescript',\n                regex: '\\\\\\\\(?:x[\\\\da-fA-F]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)' },\n              { defaultToken: 'string.quoted.script.livescript' } ] },\n         { token: 'string.array-literal.livescript',\n           regex: '<\\\\[',\n           push: \n            [ { token: 'string.array-literal.livescript',\n                regex: '\\\\]>',\n                next: 'pop' },\n              { defaultToken: 'string.array-literal.livescript' } ] },\n         { token: 'string.regexp.livescript',\n           regex: '/{2}(?![\\\\s=/*+{}?]).*?[^\\\\\\\\]/[igmy]{0,4}(?![a-zA-Z0-9])/{2}' },\n         { token: 'string.regexp.livescript',\n           regex: '/{2}$',\n           push: \n            [ { token: 'string.regexp.livescript',\n                regex: '/{2}[imgy]{0,4}',\n                next: 'pop' },\n              { include: '#embedded_spaced_comment' },\n              { include: '#interpolated_livescript' },\n              { defaultToken: 'string.regexp.livescript' } ] },\n         { token: 'string.regexp.livescript',\n           regex: '/{2}',\n           push: \n            [ { token: 'string.regexp.livescript',\n                regex: '/{2}[imgy]{0,4}',\n                next: 'pop' },\n              { token: 'constant.character.escape.livescript',\n                regex: '\\\\\\\\(?:x[\\\\da-fA-F]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)' },\n              { include: '#interpolated_livescript' },\n              { defaultToken: 'string.regexp.livescript' } ] },\n         { token: 'string.regexp.livescript',\n           regex: '/(?![\\\\s=/*+{}?]).*?[^\\\\\\\\]/[igmy]{0,4}(?![a-zA-Z0-9])' },\n         { token: 'keyword.control.livescript',\n           regex: '\\\\b(?<![\\\\.\\\\$\\\\-])(?:t(?:h(?:is|row|en)|ry|ypeof!?|il|o)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\\\s+own)?|inally|unction|rom|allthrough)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith|hen)|o(?:f|r|therwise)|return|break|let|var|loop|match|by)(?!\\\\-|\\\\s*:)\\\\b',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?x)\\n\\t\\t\\t\\t\\\\b(?<![\\\\.\\\\$\\\\-])(?:\\n\\t\\t        t(?:h(?:is|row|en)|ry|ypeof!?|il|o)\\n\\t\\t        |c(?:on(?:tinue|st)|a(?:se|tch)|lass)\\n\\t\\t        |i(?:n(?:stanceof)?|mp(?:ort(?:\\\\s+all)?|lements)|[fs])\\n\\t\\t        |d(?:e(?:fault|lete|bugger)|o)\\n\\t\\t        |f(?:or(?:\\\\s+own)?|inally|unction|rom|allthrough)\\n\\t\\t        |s(?:uper|witch)\\n\\t\\t        |e(?:lse|x(?:tends|port)|val)\\n\\t\\t        |a(?:nd|rguments)\\n\\t\\t        |n(?:ew|ot)\\n\\t\\t        |un(?:less|til)\\n\\t\\t        |w(?:hile|ith|hen)\\n\\t\\t        |o(?:f|r|therwise)\\n\\t\\t        |return|break|let|var|loop\\n\\t\\t        |match\\n\\t\\t        |by\\n\\t\\t\\t\\t)(?!\\\\-|\\\\s*:)\\\\b\\n\\t\\t\\t' },\n         { token: 'keyword.operator.livescript',\n           regex: '\\\\b(?<![\\\\.\\\\$\\\\-])(?:instanceof|new|delete|typeof|and|or|is|isnt|not)(?!\\\\-|\\\\s*:)\\\\b',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?x)\\n\\t\\t\\t\\t\\\\b(?<![\\\\.\\\\$\\\\-])(\\n\\t\\t\\t\\t\\tinstanceof|new|delete|typeof|and|or|is|isnt|not\\n\\t\\t\\t\\t)(?!\\\\-|\\\\s*:)\\\\b\\n\\t\\t\\t' },\n         { token: 'keyword.operator.livescript',\n           regex: 'and=|or=|%|&|\\\\^|\\\\*|\\\\/|(?<![a-zA-Z$_])(?:\\\\-)?\\\\-(?!\\\\-?>)|\\\\+\\\\+|\\\\+|~(?!~?>)|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<(?!\\\\[)|(?<!\\\\])>|(?<!\\\\w)!(?!(?:[~\\\\-]+)?>)|&&|\\\\.\\\\.(?:\\\\.)?|\\\\s\\\\.\\\\s|\\\\?|\\\\||\\\\|\\\\||\\\\:|\\\\*=|(?<!\\\\()/=|%=|\\\\+=|\\\\-=|\\\\.=|&=|\\\\(\\\\.|\\\\.\\\\)|\\\\^=',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?x)\\n\\t\\t\\t\\tand=|or=|%|&|\\\\^|\\\\*|\\\\/|(?<![a-zA-Z$_])(\\\\-)?\\\\-(?!\\\\-?>)|\\\\+\\\\+|\\\\+|\\n\\t\\t\\t\\t~(?!~?>)|==|=|!=|<=|>=|<<=|>>=|\\n\\t\\t\\t\\t>>>=|<>|<(?!\\\\[)|(?<!\\\\])>|(?<!\\\\w)!(?!([~\\\\-]+)?>)|&&|\\\\.\\\\.(\\\\.)?|\\\\s\\\\.\\\\s|\\\\?|\\\\||\\\\|\\\\||\\\\:|\\\\*=|(?<!\\\\()/=|%=|\\\\+=|\\\\-=|\\\\.=|&=|\\\\(\\\\.|\\\\.\\\\)|\\n\\t\\t\\t\\t\\\\^=\\n\\t\\t\\t' },\n         { token: \n            [ 'variable.assignment.livescript',\n              'variable.assignment.livescript',\n              'variable.assignment.livescript',\n              'punctuation.separator.key-value',\n              'keyword.operator.livescript',\n              'variable.assignment.livescript' ],\n           regex: '([a-zA-Z\\\\$_])((?:[\\\\w$.-])*)(\\\\s*)(?!\\\\::)(?:(:)|(=))(\\\\s*)(?!(?:\\\\s*!?\\\\s*\\\\(.*\\\\))?\\\\s*!?[~-]{1,2}>)' },\n         { token: 'keyword.operator.livescript',\n           regex: '(?<=\\\\s|^)[\\\\[\\\\{](?=.*?[\\\\]\\\\}]\\\\s+[:=])',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?<=\\\\s|^)([\\\\[\\\\{])(?=.*?[\\\\]\\\\}]\\\\s+[:=])',\n           push: \n            [ { token: 'keyword.operator.livescript',\n                regex: '[\\\\]\\\\}]\\\\s*[:=]',\n                next: 'pop' },\n              { include: '#variable_name' },\n              { include: '#instance_variable' },\n              { include: '#single_quoted_string' },\n              { include: '#double_quoted_string' },\n              { include: '#numeric' },\n              { defaultToken: 'meta.variable.assignment.destructured.livescript' } ] },\n         { token: \n            [ 'meta.function.livescript',\n              'entity.name.function.livescript',\n              'entity.name.function.livescript',\n              'entity.name.function.livescript',\n              'entity.name.function.livescript',\n              'variable.parameter.function.livescript',\n              'entity.name.function.livescript',\n              'storage.type.function.livescript' ],\n           regex: '(\\\\s*)(?=[a-zA-Z\\\\$_])([a-zA-Z\\\\$_])((?:[\\\\w$.:-])*)(\\\\s*)([:=])((?:\\\\s*!?\\\\s*\\\\(.*\\\\))?)(\\\\s*)(!?[~-]{1,2}>)' },\n         { token: 'storage.type.function.livescript',\n           regex: '!?[~-]{1,2}>' },\n         { token: 'constant.language.boolean.true.livescript',\n           regex: '\\\\b(?<!\\\\.)(?:true|on|yes)(?!\\\\s*[:=])\\\\b',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '\\\\b(?<!\\\\.)(true|on|yes)(?!\\\\s*[:=])\\\\b' },\n         { token: 'constant.language.boolean.false.livescript',\n           regex: '\\\\b(?<!\\\\.)(?:false|off|no)(?!\\\\s*[:=])\\\\b',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '\\\\b(?<!\\\\.)(false|off|no)(?!\\\\s*[:=])\\\\b' },\n         { token: 'constant.language.null.livescript',\n           regex: '\\\\b(?<!\\\\.)(?:null|void)(?!\\\\s*[:=])\\\\b',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '\\\\b(?<!\\\\.)(null|void)(?!\\\\s*[:=])\\\\b' },\n         { token: 'variable.language.livescript',\n           regex: '\\\\b(?<!\\\\.)(?:super|this|extends)(?!\\\\s*[:=])\\\\b',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '\\\\b(?<!\\\\.)(super|this|extends)(?!\\\\s*[:=])\\\\b' },\n         { token: \n            [ 'storage.type.class.livescript',\n              'meta.class.livescript',\n              'entity.name.type.class.livescript',\n              'meta.class.livescript',\n              'keyword.control.inheritance.livescript',\n              'meta.class.livescript',\n              'entity.other.inherited-class.livescript' ],\n           regex: '(class\\\\b)(\\\\s+)((?:@?[a-zA-Z$_][\\\\w$.-]*)?)(?:(\\\\s+)(extends)(\\\\s+)(@?[a-zA-Z$_][\\\\w$.-]*))?' },\n         { token: 'keyword.other.livescript',\n           regex: '\\\\b(?:debugger|\\\\\\\\)\\\\b' },\n         { token: 'support.class.livescript',\n           regex: '\\\\b(?:Array|ArrayBuffer|Blob|Boolean|Date|document|event|Function|Int(?:8|16|32|64)Array|Math|Map|Number|Object|Proxy|RegExp|Set|String|WeakMap|window|Uint(?:8|16|32|64)Array|XMLHttpRequest)\\\\b' },\n         { token: 'entity.name.type.object.livescript',\n           regex: '\\\\bconsole\\\\b' },\n         { token: 'support.function.console.livescript',\n           regex: '(?<=console\\\\.)(?:debug|warn|info|log|error|time(?:End|-end)|assert)\\\\b',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '((?<=console\\\\.)(debug|warn|info|log|error|time(End|-end)|assert))\\\\b' },\n         { token: 'support.function.livescript',\n           regex: '\\\\b(?:decodeURI(?:Component)?|encodeURI(?:Component)?|eval|parse(?:Float|Int)|require)\\\\b' },\n         { token: 'support.function.prelude.livescript',\n           regex: '(?<![.-])\\\\b(?:map|filter|reject|partition|find|each|head|tail|last|initial|empty|values|keys|length|cons|append|join|reverse|fold(?:l|r)?1?|unfoldr|and(?:List|-list)|or(?:List|-list)|any|all|unique|sum|product|mean|compact|concat(?:Map|-map)?|maximum|minimum|scan(?:l|r)?1?|replicate|slice|apply|split(?:At|-at)?|take(?:While|-while)?|drop(?:While|-while)?|span|first|break(?:It|-it)|list(?:ToObj|-to-obj)|obj(?:ToFunc|-to-func)|pairs(?:ToObj|-to-obj)|obj(?:ToPairs|-to-pairs|ToLists|-to-lists)|zip(?:All|-all)?(?:With|-with)?|compose|curry|partial|flip|fix|sort(?:With|-with|By|-by)?|group(?:By|-by)|break(?:List|-list|Str|-str)|difference|intersection|union|average|flatten|chars|unchars|repeat|lines|unlines|words|unwords|max|min|negate|abs|signum|quot|rem|div|mod|recip|pi|tau|exp|sqrt|ln|pow|sin|cos|tan|asin|acos|atan|atan2|truncate|round|ceiling|floor|is(?:It|-it)NaN|even|odd|gcd|lcm|disabled__id)\\\\b(?![.-])',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?x)(?<![.-])\\\\b(\\n\\t\\t\\t\\tmap|filter|reject|partition|find|each|head|tail|last|initial|empty|\\n\\t\\t\\t\\tvalues|keys|length|cons|append|join|reverse|fold(l|r)?1?|unfoldr|\\n\\t\\t\\t\\tand(List|-list)|or(List|-list)|any|all|unique|sum|product|mean|compact|\\n\\t\\t\\t\\tconcat(Map|-map)?|maximum|minimum|scan(l|r)?1?|replicate|slice|apply|\\n\\t\\t\\t\\tsplit(At|-at)?|take(While|-while)?|drop(While|-while)?|span|first|\\n\\t\\t\\t\\tbreak(It|-it)|list(ToObj|-to-obj)|obj(ToFunc|-to-func)|\\n\\t\\t\\t\\tpairs(ToObj|-to-obj)|obj(ToPairs|-to-pairs|ToLists|-to-lists)|\\n\\t\\t\\t\\tzip(All|-all)?(With|-with)?|compose|curry|partial|flip|fix|\\n\\t\\t\\t\\tsort(With|-with|By|-by)?|group(By|-by)|break(List|-list|Str|-str)|\\n\\t\\t\\t\\tdifference|intersection|union|average|flatten|chars|unchars|repeat|\\n\\t\\t\\t\\tlines|unlines|words|unwords|max|min|negate|abs|signum|quot|rem|div|mod|\\n\\t\\t\\t\\trecip|pi|tau|exp|sqrt|ln|pow|sin|cos|tan|asin|acos|atan|atan2|truncate|\\n\\t\\t\\t\\tround|ceiling|floor|is(It|-it)NaN|even|odd|gcd|lcm|disabled__id\\n\\t\\t\\t)\\\\b(?![.-])',\n           comment: 'Generated by DOM query from http://gkz.github.com/prelude-ls/:\\n\\t      [].slice\\n\\t        .call(document.querySelectorAll(\".nav-pills li a\"))\\n\\t        .map(function(_) {return _.innerText})\\n\\t        .filter(function(_) {return _.trim() !== \\'})\\n\\t        .slice(2)\\n\\t        .join(\"|\")\\n     \\t\\t' },\n         { token: 'support.function.semireserved.livescript',\n           regex: '(?<![.-])\\\\b(?:that|it|e)\\\\b',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?x)(?<![.-])\\\\b(that|it|e)\\\\b' },\n         { token: 'support.function.method.array.livescript',\n           regex: '(?<=(?:\\\\.|\\\\]|\\\\)))(?:apply|call|concat|every|filter|for(?:Each|-each)|from|has(?:Own|-own)(?:Property|-property)|index(?:Of|-of)|is(?:Prototype|-prototype)(?:Of|-of)|join|last(?:Index|-index)(?:Of|-of)|map|of|pop|property(?:Is|-is)(?:Enumerable|-enumerable)|push|reduce(?:Right|-right)?|reverse|shift|slice|some|sort|splice|to(?:Locale|-locale)?(?:String|-string)|unshift|valueOf)\\\\b(?!-)',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?x)((?<=(\\\\.|\\\\]|\\\\)))(\\n\\t\\t\\t\\tapply|call|concat|every|filter|for(Each|-each)|\\n\\t\\t\\t\\tfrom|has(Own|-own)(Property|-property)|index(Of|-of)|\\n\\t\\t\\t\\tis(Prototype|-prototype)(Of|-of)|join|last(Index|-index)(Of|-of)|\\n\\t\\t\\t\\tmap|of|pop|property(Is|-is)(Enumerable|-enumerable)|push|\\n\\t\\t\\t\\treduce(Right|-right)?|reverse|shift|slice|some|sort|\\n\\t\\t\\t\\tsplice|to(Locale|-locale)?(String|-string)|unshift|valueOf\\n\\t\\t\\t))\\\\b(?!-) ' },\n         { token: 'support.function.static.array.livescript',\n           regex: '(?<=Array\\\\.)isArray\\\\b',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?x)((?<=Array\\\\.)(\\n\\t\\t\\t\\tisArray\\n\\t\\t\\t))\\\\b' },\n         { token: 'support.function.static.object.livescript',\n           regex: '(?<=Object\\\\.)(?:create|ace.define(?:Propert|-propert)(?:ies|y)|freeze|get(?:Own|-own)(?:Property|-property)(?:Descriptors?|Names)|get(?:Property|-property)(?:Descriptor|Names)|getPrototypeOf|is(?:(?:Extensible|-extensible)|(?:Frozen|-frozen)|(?:Sealed|-sealed))?|keys|prevent(?:Extensions|-extensions)|seal)\\\\b',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?x)((?<=Object\\\\.)(\\n\\t\\t\\t\\tcreate|ace.define(Propert|-propert)(ies|y)|freeze|\\n\\t\\t\\t\\tget(Own|-own)(Property|-property)(Descriptors?|Names)|\\n\\t\\t\\t\\tget(Property|-property)(Descriptor|Names)|getPrototypeOf|\\n\\t\\t\\t\\tis((Extensible|-extensible)|(Frozen|-frozen)|(Sealed|-sealed))?|\\n\\t\\t\\t\\tkeys|prevent(Extensions|-extensions)|seal\\n\\t\\t\\t))\\\\b' },\n         { token: 'support.function.static.math.livescript',\n           regex: '(?<=Math\\\\.)(?:abs|acos|acosh|asin|asinh|atan|atan2|atanh|ceil|cos|cosh|exp|expm1|floor|hypot|log|log10|log1p|log2|max|min|pow|random|round|sign|sin|sinh|sqrt|tan|tanh|trunc)\\\\b',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?x)((?<=Math\\\\.)(\\n\\t\\t\\t\\tabs|acos|acosh|asin|asinh|atan|atan2|atanh|ceil|cos|cosh|exp|expm1|floor|\\n\\t\\t\\t\\thypot|log|log10|log1p|log2|max|min|pow|random|round|sign|sin|sinh|sqrt|\\n\\t\\t\\t\\ttan|tanh|trunc\\n\\t\\t\\t))\\\\b' },\n         { token: 'support.function.static.number.livescript',\n           regex: '(?<=Number\\\\.)(?:is(?:Finite|Integer|NaN)|to(?:Integer|-integer))\\\\b',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?x)((?<=Number\\\\.)(\\n\\t\\t\\t\\tis(Finite|Integer|NaN)|to(Integer|-integer)\\n\\t\\t\\t))\\\\b' },\n         { token: 'constant.language.livescript',\n           regex: '\\\\b(?:Infinity|NaN|undefined)\\\\b' },\n         { token: 'punctuation.terminator.statement.livescript',\n           regex: '\\\\;' },\n         { token: 'meta.delimiter.object.comma.livescript',\n           regex: ',[ |\\\\t]*' },\n         { token: 'meta.delimiter.method.period.livescript',\n           regex: '\\\\.' },\n         { token: 'meta.brace.curly.livescript', regex: '\\\\{|\\\\}' },\n         { token: 'meta.brace.round.livescript', regex: '\\\\(|\\\\)' },\n         { token: 'meta.brace.square.livescript', regex: '\\\\[|\\\\]\\\\s*' },\n         { include: '#instance_variable' },\n         { include: '#backslash_string' },\n         { include: '#single_quoted_string' },\n         { include: '#double_quoted_string' },\n         { include: '#numeric' } ],\n      '#backslash_string': \n       [ { token: 'string.quoted.single.livescript',\n           regex: '\\\\\\\\(?:[\\\\\\\\)\\\\s,\\\\};\\\\]])?',\n           push: \n            [ { token: 'punctuation.definition.string.end.livescript',\n                regex: '[\\\\\\\\)\\\\s,\\\\};\\\\]]',\n                next: 'pop' },\n              { defaultToken: 'string.quoted.single.livescript' } ] } ],\n      '#double_quoted_string': \n       [ { token: 'punctuation.definition.string.begin.livescript',\n           regex: '\"',\n           push: \n            [ { token: 'punctuation.definition.string.end.livescript',\n                regex: '\"',\n                next: 'pop' },\n              { token: 'constant.character.escape.livescript',\n                regex: '\\\\\\\\(?:x[\\\\da-fA-F]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)' },\n              { include: '#interpolated_livescript' },\n              { defaultToken: 'string.quoted.double.livescript' } ] } ],\n      '#embedded_comment': \n       [ { token: \n            [ 'punctuation.definition.comment.livescript',\n              'comment.line.number-sign.livescript' ],\n           regex: '(?<!\\\\\\\\)(#)(.*$)',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?<!\\\\\\\\)(#).*$\\\\n' } ],\n      '#embedded_spaced_comment': \n       [ { token: \n            [ 'punctuation.definition.comment.livescript',\n              'comment.line.number-sign.livescript' ],\n           regex: '(?<!\\\\\\\\)(#\\\\s)(.*$)',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?<!\\\\\\\\)(#\\\\s).*$\\\\n' } ],\n      '#constructor_variable': \n       [ { token: 'variable.other.readwrite.constructor.livescript',\n           regex: '[a-zA-Z$_][\\\\w$-]*@{2}(?:[a-zA-Z$_][\\\\w$-]*)?' } ],\n      '#instance_variable': \n       [ { token: 'variable.other.readwrite.instance.livescript',\n           regex: '(?<!\\\\S)@(?:[a-zA-Z$_][\\\\w$-]*)?',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?<!\\\\S)(@)([a-zA-Z$_][\\\\w$-]*)?' } ],\n      '#interpolated_livescript': \n       [ { todo: \n            { token: 'punctuation.section.embedded.livescript',\n              regex: '\\\\#\\\\{',\n              push: \n               [ { token: 'punctuation.section.embedded.livescript',\n                   regex: '\\\\}',\n                   next: 'pop' },\n                 { include: '$self' },\n                 { defaultToken: 'source.livescript.embedded.source' } ] } },\n         { todo: \n            { token: 'source.livescript.embedded.source.simple',\n              regex: '\\\\#',\n              push: \n               [ { token: 'source.livescript.embedded.source.simple',\n                   regex: '',\n                   next: 'pop' },\n                 { include: '$self' },\n                 { defaultToken: 'source.livescript.embedded.source.simple' } ] } } ],\n      '#numeric': \n       [ { token: 'constant.numeric.livescript',\n           regex: '(?<![\\\\$@a-zA-Z_])(?:[0-9]+r[0-9_]+|(?:16r|0[xX])[0-9a-fA-F_]+|[0-9]+(?:\\\\.[0-9_]+)?(?:e[+\\\\-]?[0-9_]+)?[_a-zA-Z]*)',\n           TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n           originalRegex: '(?<![\\\\$@a-zA-Z_])(([0-9]+r[0-9_]+)|((16r|0[xX])[0-9a-fA-F_]+)|([0-9]+(\\\\.[0-9_]+)?(e[+\\\\-]?[0-9_]+)?)[_a-zA-Z]*)' } ],\n      '#single_quoted_string': \n       [ { token: 'punctuation.definition.string.begin.livescript',\n           regex: '\\'',\n           push: \n            [ { token: 'punctuation.definition.string.end.livescript',\n                regex: '\\'',\n                next: 'pop' },\n              { token: 'constant.character.escape.livescript',\n                regex: '\\\\\\\\(?:x[\\\\da-fA-F]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)' },\n              { defaultToken: 'string.quoted.single.livescript' } ] } ],\n      '#variable_name': \n       [ { token: 'variable.assignment.livescript',\n           regex: '[a-zA-Z\\\\$_][\\\\w$-]*(?:\\\\.\\\\w+)*(?!\\\\-)' } ] }\n    \n    this.normalizeRules();\n};\n\nLiveScriptHighlightRules.metaData = { comment: 'LiveScript Syntax: version 1',\n      fileTypes: [ 'ls', 'Slakefile', 'ls.erb' ],\n      firstLineMatch: '^#!.*\\\\bls',\n      foldingStartMarker: '^\\\\s*class\\\\s+\\\\S.*$|.*(->|=>)\\\\s*$|.*[\\\\[{]\\\\s*$',\n      foldingStopMarker: '^\\\\s*$|^\\\\s*[}\\\\]]\\\\s*$',\n      keyEquivalent: '^~C',\n      name: 'LiveScript',\n      scopeName: 'source.livescript' }\n\n\noop.inherits(LiveScriptHighlightRules, TextHighlightRules);\n\nexports.LiveScriptHighlightRules = LiveScriptHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    \n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/)#(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/live_script\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/live_script_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar LiveScriptHighlightRules = require(\"./live_script_highlight_rules\").LiveScriptHighlightRules;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = LiveScriptHighlightRules;\n    this.foldingRules = new FoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.$id = \"ace/mode/live_script\"\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-livescript.js",
    "content": "ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/livescript\",[\"require\",\"exports\",\"module\",\"ace/tokenizer\",\"ace/mode/matching_brace_outdent\",\"ace/mode/text\"], function(require, exports, module){\n  var identifier, LiveScriptMode, keywordend, stringfill;\n  identifier = '(?![\\\\d\\\\s])[$\\\\w\\\\xAA-\\\\uFFDC](?:(?!\\\\s)[$\\\\w\\\\xAA-\\\\uFFDC]|-[A-Za-z])*';\n  exports.Mode = LiveScriptMode = (function(superclass){\n    var indenter, prototype = extend$((import$(LiveScriptMode, superclass).displayName = 'LiveScriptMode', LiveScriptMode), superclass).prototype, constructor = LiveScriptMode;\n    function LiveScriptMode(){\n      var that;\n      this.$tokenizer = new (require('../tokenizer')).Tokenizer(LiveScriptMode.Rules);\n      if (that = require('../mode/matching_brace_outdent')) {\n        this.$outdent = new that.MatchingBraceOutdent;\n      }\n      this.$id = \"ace/mode/livescript\";\n    }\n    indenter = RegExp('(?:[({[=:]|[-~]>|\\\\b(?:e(?:lse|xport)|d(?:o|efault)|t(?:ry|hen)|finally|import(?:\\\\s*all)?|const|var|let|new|catch(?:\\\\s*' + identifier + ')?))\\\\s*$');\n    prototype.getNextLineIndent = function(state, line, tab){\n      var indent, tokens;\n      indent = this.$getIndent(line);\n      tokens = this.$tokenizer.getLineTokens(line, state).tokens;\n      if (!(tokens.length && tokens[tokens.length - 1].type === 'comment')) {\n        if (state === 'start' && indenter.test(line)) {\n          indent += tab;\n        }\n      }\n      return indent;\n    };\n    prototype.lineCommentStart = \"#\";\n    prototype.blockComment = {start: \"###\", end: \"###\"};\n    prototype.checkOutdent = function(state, line, input){\n      var ref$;\n      return (ref$ = this.$outdent) != null ? ref$.checkOutdent(line, input) : void 8;\n    };\n    prototype.autoOutdent = function(state, doc, row){\n      var ref$;\n      return (ref$ = this.$outdent) != null ? ref$.autoOutdent(doc, row) : void 8;\n    };\n    return LiveScriptMode;\n  }(require('../mode/text').Mode));\n  keywordend = '(?![$\\\\w]|-[A-Za-z]|\\\\s*:(?![:=]))';\n  stringfill = {\n    defaultToken: 'string'\n  };\n  LiveScriptMode.Rules = {\n    start: [\n      {\n        token: 'keyword',\n        regex: '(?:t(?:h(?:is|row|en)|ry|ypeof!?)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\\\s+own)?|inally|unction)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith)|o[fr]|return|break|let|var|loop)' + keywordend\n      }, {\n        token: 'constant.language',\n        regex: '(?:true|false|yes|no|on|off|null|void|undefined)' + keywordend\n      }, {\n        token: 'invalid.illegal',\n        regex: '(?:p(?:ackage|r(?:ivate|otected)|ublic)|i(?:mplements|nterface)|enum|static|yield)' + keywordend\n      }, {\n        token: 'language.support.class',\n        regex: '(?:R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|Array|Boolean|Date|Function|Number|Object|TypeError|URIError)' + keywordend\n      }, {\n        token: 'language.support.function',\n        regex: '(?:is(?:NaN|Finite)|parse(?:Int|Float)|Math|JSON|(?:en|de)codeURI(?:Component)?)' + keywordend\n      }, {\n        token: 'variable.language',\n        regex: '(?:t(?:hat|il|o)|f(?:rom|allthrough)|it|by|e)' + keywordend\n      }, {\n        token: 'identifier',\n        regex: identifier + '\\\\s*:(?![:=])'\n      }, {\n        token: 'variable',\n        regex: identifier\n      }, {\n        token: 'keyword.operator',\n        regex: '(?:\\\\.{3}|\\\\s+\\\\?)'\n      }, {\n        token: 'keyword.variable',\n        regex: '(?:@+|::|\\\\.\\\\.)',\n        next: 'key'\n      }, {\n        token: 'keyword.operator',\n        regex: '\\\\.\\\\s*',\n        next: 'key'\n      }, {\n        token: 'string',\n        regex: '\\\\\\\\\\\\S[^\\\\s,;)}\\\\]]*'\n      }, {\n        token: 'string.doc',\n        regex: '\\'\\'\\'',\n        next: 'qdoc'\n      }, {\n        token: 'string.doc',\n        regex: '\"\"\"',\n        next: 'qqdoc'\n      }, {\n        token: 'string',\n        regex: '\\'',\n        next: 'qstring'\n      }, {\n        token: 'string',\n        regex: '\"',\n        next: 'qqstring'\n      }, {\n        token: 'string',\n        regex: '`',\n        next: 'js'\n      }, {\n        token: 'string',\n        regex: '<\\\\[',\n        next: 'words'\n      }, {\n        token: 'string.regex',\n        regex: '//',\n        next: 'heregex'\n      }, {\n        token: 'comment.doc',\n        regex: '/\\\\*',\n        next: 'comment'\n      }, {\n        token: 'comment',\n        regex: '#.*'\n      }, {\n        token: 'string.regex',\n        regex: '\\\\/(?:[^[\\\\/\\\\n\\\\\\\\]*(?:(?:\\\\\\\\.|\\\\[[^\\\\]\\\\n\\\\\\\\]*(?:\\\\\\\\.[^\\\\]\\\\n\\\\\\\\]*)*\\\\])[^[\\\\/\\\\n\\\\\\\\]*)*)\\\\/[gimy$]{0,4}',\n        next: 'key'\n      }, {\n        token: 'constant.numeric',\n        regex: '(?:0x[\\\\da-fA-F][\\\\da-fA-F_]*|(?:[2-9]|[12]\\\\d|3[0-6])r[\\\\da-zA-Z][\\\\da-zA-Z_]*|(?:\\\\d[\\\\d_]*(?:\\\\.\\\\d[\\\\d_]*)?|\\\\.\\\\d[\\\\d_]*)(?:e[+-]?\\\\d[\\\\d_]*)?[\\\\w$]*)'\n      }, {\n        token: 'lparen',\n        regex: '[({[]'\n      }, {\n        token: 'rparen',\n        regex: '[)}\\\\]]',\n        next: 'key'\n      }, {\n        token: 'keyword.operator',\n        regex: '[\\\\^!|&%+\\\\-]+'\n      }, {\n        token: 'text',\n        regex: '\\\\s+'\n      }\n    ],\n    heregex: [\n      {\n        token: 'string.regex',\n        regex: '.*?//[gimy$?]{0,4}',\n        next: 'start'\n      }, {\n        token: 'string.regex',\n        regex: '\\\\s*#{'\n      }, {\n        token: 'comment.regex',\n        regex: '\\\\s+(?:#.*)?'\n      }, {\n        defaultToken: 'string.regex'\n      }\n    ],\n    key: [\n      {\n        token: 'keyword.operator',\n        regex: '[.?@!]+'\n      }, {\n        token: 'identifier',\n        regex: identifier,\n        next: 'start'\n      }, {\n        token: 'text',\n        regex: '',\n        next: 'start'\n      }\n    ],\n    comment: [\n      {\n        token: 'comment.doc',\n        regex: '.*?\\\\*/',\n        next: 'start'\n      }, {\n        defaultToken: 'comment.doc'\n      }\n    ],\n    qdoc: [\n      {\n        token: 'string',\n        regex: \".*?'''\",\n        next: 'key'\n      }, stringfill\n    ],\n    qqdoc: [\n      {\n        token: 'string',\n        regex: '.*?\"\"\"',\n        next: 'key'\n      }, stringfill\n    ],\n    qstring: [\n      {\n        token: 'string',\n        regex: '[^\\\\\\\\\\']*(?:\\\\\\\\.[^\\\\\\\\\\']*)*\\'',\n        next: 'key'\n      }, stringfill\n    ],\n    qqstring: [\n      {\n        token: 'string',\n        regex: '[^\\\\\\\\\"]*(?:\\\\\\\\.[^\\\\\\\\\"]*)*\"',\n        next: 'key'\n      }, stringfill\n    ],\n    js: [\n      {\n        token: 'string',\n        regex: '[^\\\\\\\\`]*(?:\\\\\\\\.[^\\\\\\\\`]*)*`',\n        next: 'key'\n      }, stringfill\n    ],\n    words: [\n      {\n        token: 'string',\n        regex: '.*?\\\\]>',\n        next: 'key'\n      }, stringfill\n    ]\n  };\nfunction extend$(sub, sup){\n  function fun(){} fun.prototype = (sub.superclass = sup).prototype;\n  (sub.prototype = new fun).constructor = sub;\n  if (typeof sup.extended == 'function') sup.extended(sub);\n  return sub;\n}\nfunction import$(obj, src){\n  var own = {}.hasOwnProperty;\n  for (var key in src) if (own.call(src, key)) obj[key] = src[key];\n  return obj;\n}\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-logiql.js",
    "content": "ace.define(\"ace/mode/logiql_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar LogiQLHighlightRules = function() {\n\n    this.$rules = { start: \n       [ { token: 'comment.block',\n           regex: '/\\\\*',\n           push: \n            [ { token: 'comment.block', regex: '\\\\*/', next: 'pop' },\n              { defaultToken: 'comment.block' } ]\n            },\n         { token: 'comment.single',\n           regex: '//.*'\n            },\n         { token: 'constant.numeric',\n           regex: '\\\\d+(?:\\\\.\\\\d+)?(?:[eE][+-]?\\\\d+)?[fd]?'\n            },\n         { token: 'string',\n           regex: '\"',\n           push: \n            [ { token: 'string', regex: '\"', next: 'pop' },\n              { defaultToken: 'string' } ]\n            },\n         { token: 'constant.language',\n           regex: '\\\\b(true|false)\\\\b'\n            },\n         { token: 'entity.name.type.logicblox',\n           regex: '`[a-zA-Z_:]+(\\\\d|\\\\a)*\\\\b'\n            },\n         { token: 'keyword.start', regex: '->',  comment: 'Constraint' },\n         { token: 'keyword.start', regex: '-->', comment: 'Level 1 Constraint'},\n         { token: 'keyword.start', regex: '<-',  comment: 'Rule' },\n         { token: 'keyword.start', regex: '<--', comment: 'Level 1 Rule' },\n         { token: 'keyword.end',   regex: '\\\\.', comment: 'Terminator' },\n         { token: 'keyword.other', regex: '!',   comment: 'Negation' },\n         { token: 'keyword.other', regex: ',',   comment: 'Conjunction' },\n         { token: 'keyword.other', regex: ';',   comment: 'Disjunction' },\n         { token: 'keyword.operator', regex: '<=|>=|!=|<|>', comment: 'Equality'},\n         { token: 'keyword.other', regex: '@', comment: 'Equality' },\n         { token: 'keyword.operator', regex: '\\\\+|-|\\\\*|/', comment: 'Arithmetic operations'},\n         { token: 'keyword', regex: '::', comment: 'Colon colon' },\n         { token: 'support.function',\n           regex: '\\\\b(agg\\\\s*<<)',\n           push: \n            [ { include: '$self' },\n              { token: 'support.function',\n                regex: '>>',\n                next: 'pop' } ]\n            },\n         { token: 'storage.modifier',\n           regex: '\\\\b(lang:[\\\\w:]*)'\n            },\n         { token: [ 'storage.type', 'text' ],\n           regex: '(export|sealed|clauses|block|alias|alias_all)(\\\\s*\\\\()(?=`)'\n            },\n         { token: 'entity.name',\n           regex: '[a-zA-Z_][a-zA-Z_0-9:]*(@prev|@init|@final)?(?=(\\\\(|\\\\[))'\n            },\n         { token: 'variable.parameter',\n           regex: '([a-zA-Z][a-zA-Z_0-9]*|_)\\\\s*(?=(,|\\\\.|<-|->|\\\\)|\\\\]|=))'\n            } ] }\n    \n    this.normalizeRules();\n};\n\noop.inherits(LogiQLHighlightRules, TextHighlightRules);\n\nexports.LogiQLHighlightRules = LogiQLHighlightRules;\n});\n\nace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var range = this.indentationBlock(session, row);\n        if (range)\n            return range;\n\n        var re = /\\S/;\n        var line = session.getLine(row);\n        var startLevel = line.search(re);\n        if (startLevel == -1 || line[startLevel] != \"#\")\n            return;\n\n        var startColumn = line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var level = line.search(re);\n\n            if (level == -1)\n                continue;\n\n            if (line[level] != \"#\")\n                break;\n\n            endRow = row;\n        }\n\n        if (endRow > startRow) {\n            var endColumn = session.getLine(endRow).length;\n            return new Range(startRow, startColumn, endRow, endColumn);\n        }\n    };\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var indent = line.search(/\\S/);\n        var next = session.getLine(row + 1);\n        var prev = session.getLine(row - 1);\n        var prevIndent = prev.search(/\\S/);\n        var nextIndent = next.search(/\\S/);\n\n        if (indent == -1) {\n            session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n            return \"\";\n        }\n        if (prevIndent == -1) {\n            if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n                session.foldWidgets[row - 1] = \"\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"start\";\n            }\n        } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n            if (session.getLine(row - 2).search(/\\S/) == -1) {\n                session.foldWidgets[row - 1] = \"start\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"\";\n            }\n        }\n\n        if (prevIndent!= -1 && prevIndent < indent)\n            session.foldWidgets[row - 1] = \"start\";\n        else\n            session.foldWidgets[row - 1] = \"\";\n\n        if (indent < nextIndent)\n            return \"start\";\n        else\n            return \"\";\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/logiql\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/logiql_highlight_rules\",\"ace/mode/folding/coffee\",\"ace/token_iterator\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/matching_brace_outdent\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar LogiQLHighlightRules = require(\"./logiql_highlight_rules\").LogiQLHighlightRules;\nvar FoldMode = require(\"./folding/coffee\").FoldMode;\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\n\nvar Mode = function() {\n    this.HighlightRules = LogiQLHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n        if (/comment|string/.test(endState))  \n            return indent;\n        if (tokens.length && tokens[tokens.length - 1].type == \"comment.single\")\n            return indent;\n\n        var match = line.match();\n        if (/(-->|<--|<-|->|{)\\s*$/.test(line))\n            indent += tab;\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        if (this.$outdent.checkOutdent(line, input))\n            return true;\n\n        if (input !== \"\\n\" && input !== \"\\r\\n\")\n            return false;\n            \n        if (!/^\\s+/.test(line))\n            return false;\n\n        return true;\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        if (this.$outdent.autoOutdent(doc, row))\n            return;\n        var prevLine = doc.getLine(row);\n        var match = prevLine.match(/^\\s+/);\n        var column = prevLine.lastIndexOf(\".\") + 1;\n        if (!match || !row || !column) return 0;\n\n        var line = doc.getLine(row + 1);\n        var startRange = this.getMatching(doc, {row: row, column: column});\n        if (!startRange || startRange.start.row == row) return 0;\n\n        column = match[0].length;\n        var indent = this.$getIndent(doc.getLine(startRange.start.row));\n        doc.replace(new Range(row + 1, 0, row + 1, column), indent);\n    };\n\n    this.getMatching = function(session, row, column) {\n        if (row == undefined)\n            row = session.selection.lead\n        if (typeof row == \"object\") {\n            column = row.column;\n            row = row.row;\n        }\n\n        var startToken = session.getTokenAt(row, column);\n        var KW_START = \"keyword.start\", KW_END = \"keyword.end\";\n        var tok;\n        if (!startToken)\n            return;\n        if (startToken.type == KW_START) {\n            var it = new TokenIterator(session, row, column);\n            it.step = it.stepForward;\n        } else if (startToken.type == KW_END) {\n            var it = new TokenIterator(session, row, column);\n            it.step = it.stepBackward;\n        } else\n            return;\n\n        while (tok = it.step()) {\n            if (tok.type == KW_START || tok.type == KW_END)\n                break;\n        }\n        if (!tok || tok.type == startToken.type)\n            return;\n\n        var col = it.getCurrentTokenColumn();\n        var row = it.getCurrentTokenRow();\n        return new Range(row, col, row, col + tok.value.length);\n    };\n    this.$id = \"ace/mode/logiql\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-lsl.js",
    "content": "ace.define(\"ace/mode/lsl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\noop.inherits(LSLHighlightRules, TextHighlightRules);\n\nfunction LSLHighlightRules() {\n    var keywordMapper = this.createKeywordMapper({\n        \"constant.language.float.lsl\" : \"DEG_TO_RAD|PI|PI_BY_TWO|RAD_TO_DEG|SQRT2|TWO_PI\",\n        \"constant.language.integer.lsl\": \"ACTIVE|AGENT|AGENT_ALWAYS_RUN|AGENT_ATTACHMENTS|AGENT_AUTOPILOT|AGENT_AWAY|AGENT_BUSY|AGENT_BY_LEGACY_NAME|AGENT_BY_USERNAME|AGENT_CROUCHING|AGENT_FLYING|AGENT_IN_AIR|AGENT_LIST_PARCEL|AGENT_LIST_PARCEL_OWNER|AGENT_LIST_REGION|AGENT_MOUSELOOK|AGENT_ON_OBJECT|AGENT_SCRIPTED|AGENT_SITTING|AGENT_TYPING|AGENT_WALKING|ALL_SIDES|ANIM_ON|ATTACH_AVATAR_CENTER|ATTACH_BACK|ATTACH_BELLY|ATTACH_CHEST|ATTACH_CHIN|ATTACH_HEAD|ATTACH_HUD_BOTTOM|ATTACH_HUD_BOTTOM_LEFT|ATTACH_HUD_BOTTOM_RIGHT|ATTACH_HUD_CENTER_1|ATTACH_HUD_CENTER_2|ATTACH_HUD_TOP_CENTER|ATTACH_HUD_TOP_LEFT|ATTACH_HUD_TOP_RIGHT|ATTACH_LEAR|ATTACH_LEFT_PEC|ATTACH_LEYE|ATTACH_LFOOT|ATTACH_LHAND|ATTACH_LHIP|ATTACH_LLARM|ATTACH_LLLEG|ATTACH_LSHOULDER|ATTACH_LUARM|ATTACH_LULEG|ATTACH_MOUTH|ATTACH_NECK|ATTACH_NOSE|ATTACH_PELVIS|ATTACH_REAR|ATTACH_REYE|ATTACH_RFOOT|ATTACH_RHAND|ATTACH_RHIP|ATTACH_RIGHT_PEC|ATTACH_RLARM|ATTACH_RLLEG|ATTACH_RSHOULDER|ATTACH_RUARM|ATTACH_RULEG|AVOID_CHARACTERS|AVOID_DYNAMIC_OBSTACLES|AVOID_NONE|CAMERA_ACTIVE|CAMERA_BEHINDNESS_ANGLE|CAMERA_BEHINDNESS_LAG|CAMERA_DISTANCE|CAMERA_FOCUS|CAMERA_FOCUS_LAG|CAMERA_FOCUS_LOCKED|CAMERA_FOCUS_OFFSET|CAMERA_FOCUS_THRESHOLD|CAMERA_PITCH|CAMERA_POSITION|CAMERA_POSITION_LAG|CAMERA_POSITION_LOCKED|CAMERA_POSITION_THRESHOLD|CHANGED_ALLOWED_DROP|CHANGED_COLOR|CHANGED_INVENTORY|CHANGED_LINK|CHANGED_MEDIA|CHANGED_OWNER|CHANGED_REGION|CHANGED_REGION_START|CHANGED_SCALE|CHANGED_SHAPE|CHANGED_TELEPORT|CHANGED_TEXTURE|CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES|CHARACTER_AVOIDANCE_MODE|CHARACTER_CMD_JUMP|CHARACTER_CMD_SMOOTH_STOP|CHARACTER_CMD_STOP|CHARACTER_DESIRED_SPEED|CHARACTER_DESIRED_TURN_SPEED|CHARACTER_LENGTH|CHARACTER_MAX_ACCEL|CHARACTER_MAX_DECEL|CHARACTER_MAX_SPEED|CHARACTER_MAX_TURN_RADIUS|CHARACTER_ORIENTATION|CHARACTER_RADIUS|CHARACTER_STAY_WITHIN_PARCEL|CHARACTER_TYPE|CHARACTER_TYPE_A|CHARACTER_TYPE_B|CHARACTER_TYPE_C|CHARACTER_TYPE_D|CHARACTER_TYPE_NONE|CLICK_ACTION_BUY|CLICK_ACTION_NONE|CLICK_ACTION_OPEN|CLICK_ACTION_OPEN_MEDIA|CLICK_ACTION_PAY|CLICK_ACTION_PLAY|CLICK_ACTION_SIT|CLICK_ACTION_TOUCH|CONTENT_TYPE_ATOM|CONTENT_TYPE_FORM|CONTENT_TYPE_HTML|CONTENT_TYPE_JSON|CONTENT_TYPE_LLSD|CONTENT_TYPE_RSS|CONTENT_TYPE_TEXT|CONTENT_TYPE_XHTML|CONTENT_TYPE_XML|CONTROL_BACK|CONTROL_DOWN|CONTROL_FWD|CONTROL_LBUTTON|CONTROL_LEFT|CONTROL_ML_LBUTTON|CONTROL_RIGHT|CONTROL_ROT_LEFT|CONTROL_ROT_RIGHT|CONTROL_UP|DATA_BORN|DATA_NAME|DATA_ONLINE|DATA_PAYINFO|DATA_SIM_POS|DATA_SIM_RATING|DATA_SIM_STATUS|DEBUG_CHANNEL|DENSITY|ERR_GENERIC|ERR_MALFORMED_PARAMS|ERR_PARCEL_PERMISSIONS|ERR_RUNTIME_PERMISSIONS|ERR_THROTTLED|ESTATE_ACCESS_ALLOWED_AGENT_ADD|ESTATE_ACCESS_ALLOWED_AGENT_REMOVE|ESTATE_ACCESS_ALLOWED_GROUP_ADD|ESTATE_ACCESS_ALLOWED_GROUP_REMOVE|ESTATE_ACCESS_BANNED_AGENT_ADD|ESTATE_ACCESS_BANNED_AGENT_REMOVE|FALSE|FORCE_DIRECT_PATH|FRICTION|GCNP_RADIUS|GCNP_STATIC|GRAVITY_MULTIPLIER|HORIZONTAL|HTTP_BODY_MAXLENGTH|HTTP_BODY_TRUNCATED|HTTP_CUSTOM_HEADER|HTTP_METHOD|HTTP_MIMETYPE|HTTP_PRAGMA_NO_CACHE|HTTP_VERBOSE_THROTTLE|HTTP_VERIFY_CERT|INVENTORY_ALL|INVENTORY_ANIMATION|INVENTORY_BODYPART|INVENTORY_CLOTHING|INVENTORY_GESTURE|INVENTORY_LANDMARK|INVENTORY_NONE|INVENTORY_NOTECARD|INVENTORY_OBJECT|INVENTORY_SCRIPT|INVENTORY_SOUND|INVENTORY_TEXTURE|JSON_APPEND|KFM_CMD_PAUSE|KFM_CMD_PLAY|KFM_CMD_SET_MODE|KFM_CMD_STOP|KFM_COMMAND|KFM_DATA|KFM_FORWARD|KFM_LOOP|KFM_MODE|KFM_PING_PONG|KFM_REVERSE|KFM_ROTATION|KFM_TRANSLATION|LAND_LEVEL|LAND_LOWER|LAND_NOISE|LAND_RAISE|LAND_REVERT|LAND_SMOOTH|LINK_ALL_CHILDREN|LINK_ALL_OTHERS|LINK_ROOT|LINK_SET|LINK_THIS|LIST_STAT_GEOMETRIC_MEAN|LIST_STAT_MAX|LIST_STAT_MEAN|LIST_STAT_MEDIAN|LIST_STAT_MIN|LIST_STAT_NUM_COUNT|LIST_STAT_RANGE|LIST_STAT_STD_DEV|LIST_STAT_SUM|LIST_STAT_SUM_SQUARES|LOOP|MASK_BASE|MASK_EVERYONE|MASK_GROUP|MASK_NEXT|MASK_OWNER|OBJECT_ATTACHED_POINT|OBJECT_BODY_SHAPE_TYPE|OBJECT_CHARACTER_TIME|OBJECT_CLICK_ACTION|OBJECT_CREATOR|OBJECT_DESC|OBJECT_GROUP|OBJECT_HOVER_HEIGHT|OBJECT_LAST_OWNER_ID|OBJECT_NAME|OBJECT_OWNER|OBJECT_PATHFINDING_TYPE|OBJECT_PHANTOM|OBJECT_PHYSICS|OBJECT_PHYSICS_COST|OBJECT_POS|OBJECT_PRIM_EQUIVALENCE|OBJECT_RENDER_WEIGHT|OBJECT_RETURN_PARCEL|OBJECT_RETURN_PARCEL_OWNER|OBJECT_RETURN_REGION|OBJECT_ROOT|OBJECT_ROT|OBJECT_RUNNING_SCRIPT_COUNT|OBJECT_SCRIPT_MEMORY|OBJECT_SCRIPT_TIME|OBJECT_SERVER_COST|OBJECT_STREAMING_COST|OBJECT_TEMP_ON_REZ|OBJECT_TOTAL_SCRIPT_COUNT|OBJECT_UNKNOWN_DETAIL|OBJECT_VELOCITY|OPT_AVATAR|OPT_CHARACTER|OPT_EXCLUSION_VOLUME|OPT_LEGACY_LINKSET|OPT_MATERIAL_VOLUME|OPT_OTHER|OPT_STATIC_OBSTACLE|OPT_WALKABLE|PARCEL_COUNT_GROUP|PARCEL_COUNT_OTHER|PARCEL_COUNT_OWNER|PARCEL_COUNT_SELECTED|PARCEL_COUNT_TEMP|PARCEL_COUNT_TOTAL|PARCEL_DETAILS_AREA|PARCEL_DETAILS_DESC|PARCEL_DETAILS_GROUP|PARCEL_DETAILS_ID|PARCEL_DETAILS_NAME|PARCEL_DETAILS_OWNER|PARCEL_DETAILS_SEE_AVATARS|PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY|PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS|PARCEL_FLAG_ALLOW_CREATE_OBJECTS|PARCEL_FLAG_ALLOW_DAMAGE|PARCEL_FLAG_ALLOW_FLY|PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY|PARCEL_FLAG_ALLOW_GROUP_SCRIPTS|PARCEL_FLAG_ALLOW_LANDMARK|PARCEL_FLAG_ALLOW_SCRIPTS|PARCEL_FLAG_ALLOW_TERRAFORM|PARCEL_FLAG_LOCAL_SOUND_ONLY|PARCEL_FLAG_RESTRICT_PUSHOBJECT|PARCEL_FLAG_USE_ACCESS_GROUP|PARCEL_FLAG_USE_ACCESS_LIST|PARCEL_FLAG_USE_BAN_LIST|PARCEL_FLAG_USE_LAND_PASS_LIST|PARCEL_MEDIA_COMMAND_AGENT|PARCEL_MEDIA_COMMAND_AUTO_ALIGN|PARCEL_MEDIA_COMMAND_DESC|PARCEL_MEDIA_COMMAND_LOOP|PARCEL_MEDIA_COMMAND_LOOP_SET|PARCEL_MEDIA_COMMAND_PAUSE|PARCEL_MEDIA_COMMAND_PLAY|PARCEL_MEDIA_COMMAND_SIZE|PARCEL_MEDIA_COMMAND_STOP|PARCEL_MEDIA_COMMAND_TEXTURE|PARCEL_MEDIA_COMMAND_TIME|PARCEL_MEDIA_COMMAND_TYPE|PARCEL_MEDIA_COMMAND_UNLOAD|PARCEL_MEDIA_COMMAND_URL|PASS_ALWAYS|PASS_IF_NOT_HANDLED|PASS_NEVER|PASSIVE|PATROL_PAUSE_AT_WAYPOINTS|PAYMENT_INFO_ON_FILE|PAYMENT_INFO_USED|PAY_DEFAULT|PAY_HIDE|PERMISSION_ATTACH|PERMISSION_CHANGE_LINKS|PERMISSION_CONTROL_CAMERA|PERMISSION_DEBIT|PERMISSION_OVERRIDE_ANIMATIONS|PERMISSION_RETURN_OBJECTS|PERMISSION_SILENT_ESTATE_MANAGEMENT|PERMISSION_TAKE_CONTROLS|PERMISSION_TELEPORT|PERMISSION_TRACK_CAMERA|PERMISSION_TRIGGER_ANIMATION|PERM_ALL|PERM_COPY|PERM_MODIFY|PERM_MOVE|PERM_TRANSFER|PING_PONG|PRIM_ALPHA_MODE|PRIM_ALPHA_MODE_BLEND|PRIM_ALPHA_MODE_EMISSIVE|PRIM_ALPHA_MODE_MASK|PRIM_ALPHA_MODE_NONE|PRIM_BUMP_BARK|PRIM_BUMP_BLOBS|PRIM_BUMP_BRICKS|PRIM_BUMP_BRIGHT|PRIM_BUMP_CHECKER|PRIM_BUMP_CONCRETE|PRIM_BUMP_DARK|PRIM_BUMP_DISKS|PRIM_BUMP_GRAVEL|PRIM_BUMP_LARGETILE|PRIM_BUMP_NONE|PRIM_BUMP_SHINY|PRIM_BUMP_SIDING|PRIM_BUMP_STONE|PRIM_BUMP_STUCCO|PRIM_BUMP_SUCTION|PRIM_BUMP_TILE|PRIM_BUMP_WEAVE|PRIM_BUMP_WOOD|PRIM_COLOR|PRIM_DESC|PRIM_FLEXIBLE|PRIM_FULLBRIGHT|PRIM_GLOW|PRIM_HOLE_CIRCLE|PRIM_HOLE_DEFAULT|PRIM_HOLE_SQUARE|PRIM_HOLE_TRIANGLE|PRIM_LINK_TARGET|PRIM_MATERIAL|PRIM_MATERIAL_FLESH|PRIM_MATERIAL_GLASS|PRIM_MATERIAL_METAL|PRIM_MATERIAL_PLASTIC|PRIM_MATERIAL_RUBBER|PRIM_MATERIAL_STONE|PRIM_MATERIAL_WOOD|PRIM_MEDIA_ALT_IMAGE_ENABLE|PRIM_MEDIA_AUTO_LOOP|PRIM_MEDIA_AUTO_PLAY|PRIM_MEDIA_AUTO_SCALE|PRIM_MEDIA_AUTO_ZOOM|PRIM_MEDIA_CONTROLS|PRIM_MEDIA_CONTROLS_MINI|PRIM_MEDIA_CONTROLS_STANDARD|PRIM_MEDIA_CURRENT_URL|PRIM_MEDIA_FIRST_CLICK_INTERACT|PRIM_MEDIA_HEIGHT_PIXELS|PRIM_MEDIA_HOME_URL|PRIM_MEDIA_MAX_HEIGHT_PIXELS|PRIM_MEDIA_MAX_URL_LENGTH|PRIM_MEDIA_MAX_WHITELIST_COUNT|PRIM_MEDIA_MAX_WHITELIST_SIZE|PRIM_MEDIA_MAX_WIDTH_PIXELS|PRIM_MEDIA_PARAM_MAX|PRIM_MEDIA_PERMS_CONTROL|PRIM_MEDIA_PERMS_INTERACT|PRIM_MEDIA_PERM_ANYONE|PRIM_MEDIA_PERM_GROUP|PRIM_MEDIA_PERM_NONE|PRIM_MEDIA_PERM_OWNER|PRIM_MEDIA_WHITELIST|PRIM_MEDIA_WHITELIST_ENABLE|PRIM_MEDIA_WIDTH_PIXELS|PRIM_NAME|PRIM_NORMAL|PRIM_OMEGA|PRIM_PHANTOM|PRIM_PHYSICS|PRIM_PHYSICS_SHAPE_CONVEX|PRIM_PHYSICS_SHAPE_NONE|PRIM_PHYSICS_SHAPE_PRIM|PRIM_PHYSICS_SHAPE_TYPE|PRIM_POINT_LIGHT|PRIM_POSITION|PRIM_POS_LOCAL|PRIM_ROTATION|PRIM_ROT_LOCAL|PRIM_SCULPT_FLAG_INVERT|PRIM_SCULPT_FLAG_MIRROR|PRIM_SCULPT_TYPE_CYLINDER|PRIM_SCULPT_TYPE_MASK|PRIM_SCULPT_TYPE_PLANE|PRIM_SCULPT_TYPE_SPHERE|PRIM_SCULPT_TYPE_TORUS|PRIM_SHINY_HIGH|PRIM_SHINY_LOW|PRIM_SHINY_MEDIUM|PRIM_SHINY_NONE|PRIM_SIZE|PRIM_SLICE|PRIM_SPECULAR|PRIM_TEMP_ON_REZ|PRIM_TEXGEN|PRIM_TEXGEN_DEFAULT|PRIM_TEXGEN_PLANAR|PRIM_TEXT|PRIM_TEXTURE|PRIM_TYPE|PRIM_TYPE_BOX|PRIM_TYPE_CYLINDER|PRIM_TYPE_PRISM|PRIM_TYPE_RING|PRIM_TYPE_SCULPT|PRIM_TYPE_SPHERE|PRIM_TYPE_TORUS|PRIM_TYPE_TUBE|PROFILE_NONE|PROFILE_SCRIPT_MEMORY|PSYS_PART_BF_DEST_COLOR|PSYS_PART_BF_ONE|PSYS_PART_BF_ONE_MINUS_DEST_COLOR|PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA|PSYS_PART_BF_ONE_MINUS_SOURCE_COLOR|PSYS_PART_BF_SOURCE_ALPHA|PSYS_PART_BF_SOURCE_COLOR|PSYS_PART_BF_ZERO|PSYS_PART_BLEND_FUNC_DEST|PSYS_PART_BLEND_FUNC_SOURCE|PSYS_PART_BOUNCE_MASK|PSYS_PART_EMISSIVE_MASK|PSYS_PART_END_ALPHA|PSYS_PART_END_COLOR|PSYS_PART_END_GLOW|PSYS_PART_END_SCALE|PSYS_PART_FLAGS|PSYS_PART_FOLLOW_SRC_MASK|PSYS_PART_FOLLOW_VELOCITY_MASK|PSYS_PART_INTERP_COLOR_MASK|PSYS_PART_INTERP_SCALE_MASK|PSYS_PART_MAX_AGE|PSYS_PART_RIBBON_MASK|PSYS_PART_START_ALPHA|PSYS_PART_START_COLOR|PSYS_PART_START_GLOW|PSYS_PART_START_SCALE|PSYS_PART_TARGET_LINEAR_MASK|PSYS_PART_TARGET_POS_MASK|PSYS_PART_WIND_MASK|PSYS_SRC_ACCEL|PSYS_SRC_ANGLE_BEGIN|PSYS_SRC_ANGLE_END|PSYS_SRC_BURST_PART_COUNT|PSYS_SRC_BURST_RADIUS|PSYS_SRC_BURST_RATE|PSYS_SRC_BURST_SPEED_MAX|PSYS_SRC_BURST_SPEED_MIN|PSYS_SRC_MAX_AGE|PSYS_SRC_OMEGA|PSYS_SRC_PATTERN|PSYS_SRC_PATTERN_ANGLE|PSYS_SRC_PATTERN_ANGLE_CONE|PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY|PSYS_SRC_PATTERN_DROP|PSYS_SRC_PATTERN_EXPLODE|PSYS_SRC_TARGET_KEY|PSYS_SRC_TEXTURE|PUBLIC_CHANNEL|PURSUIT_FUZZ_FACTOR|PURSUIT_GOAL_TOLERANCE|PURSUIT_INTERCEPT|PURSUIT_OFFSET|PU_EVADE_HIDDEN|PU_EVADE_SPOTTED|PU_FAILURE_DYNAMIC_PATHFINDING_DISABLED|PU_FAILURE_INVALID_GOAL|PU_FAILURE_INVALID_START|PU_FAILURE_NO_NAVMESH|PU_FAILURE_NO_VALID_DESTINATION|PU_FAILURE_OTHER|PU_FAILURE_PARCEL_UNREACHABLE|PU_FAILURE_TARGET_GONE|PU_FAILURE_UNREACHABLE|PU_GOAL_REACHED|PU_SLOWDOWN_DISTANCE_REACHED|RCERR_CAST_TIME_EXCEEDED|RCERR_SIM_PERF_LOW|RCERR_UNKNOWN|RC_DATA_FLAGS|RC_DETECT_PHANTOM|RC_GET_LINK_NUM|RC_GET_NORMAL|RC_GET_ROOT_KEY|RC_MAX_HITS|RC_REJECT_AGENTS|RC_REJECT_LAND|RC_REJECT_NONPHYSICAL|RC_REJECT_PHYSICAL|RC_REJECT_TYPES|REGION_FLAG_ALLOW_DAMAGE|REGION_FLAG_ALLOW_DIRECT_TELEPORT|REGION_FLAG_BLOCK_FLY|REGION_FLAG_BLOCK_TERRAFORM|REGION_FLAG_DISABLE_COLLISIONS|REGION_FLAG_DISABLE_PHYSICS|REGION_FLAG_FIXED_SUN|REGION_FLAG_RESTRICT_PUSHOBJECT|REGION_FLAG_SANDBOX|REMOTE_DATA_CHANNEL|REMOTE_DATA_REPLY|REMOTE_DATA_REQUEST|REQUIRE_LINE_OF_SIGHT|RESTITUTION|REVERSE|ROTATE|SCALE|SCRIPTED|SIM_STAT_PCT_CHARS_STEPPED|SMOOTH|STATUS_BLOCK_GRAB|STATUS_BLOCK_GRAB_OBJECT|STATUS_BOUNDS_ERROR|STATUS_CAST_SHADOWS|STATUS_DIE_AT_EDGE|STATUS_INTERNAL_ERROR|STATUS_MALFORMED_PARAMS|STATUS_NOT_FOUND|STATUS_NOT_SUPPORTED|STATUS_OK|STATUS_PHANTOM|STATUS_PHYSICS|STATUS_RETURN_AT_EDGE|STATUS_ROTATE_X|STATUS_ROTATE_Y|STATUS_ROTATE_Z|STATUS_SANDBOX|STATUS_TYPE_MISMATCH|STATUS_WHITELIST_FAILED|STRING_TRIM|STRING_TRIM_HEAD|STRING_TRIM_TAIL|TOUCH_INVALID_FACE|TRAVERSAL_TYPE|TRAVERSAL_TYPE_FAST|TRAVERSAL_TYPE_NONE|TRAVERSAL_TYPE_SLOW|TRUE|TYPE_FLOAT|TYPE_INTEGER|TYPE_INVALID|TYPE_KEY|TYPE_ROTATION|TYPE_STRING|TYPE_VECTOR|VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY|VEHICLE_ANGULAR_DEFLECTION_TIMESCALE|VEHICLE_ANGULAR_FRICTION_TIMESCALE|VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE|VEHICLE_ANGULAR_MOTOR_DIRECTION|VEHICLE_ANGULAR_MOTOR_TIMESCALE|VEHICLE_BANKING_EFFICIENCY|VEHICLE_BANKING_MIX|VEHICLE_BANKING_TIMESCALE|VEHICLE_BUOYANCY|VEHICLE_FLAG_CAMERA_DECOUPLED|VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT|VEHICLE_FLAG_HOVER_TERRAIN_ONLY|VEHICLE_FLAG_HOVER_UP_ONLY|VEHICLE_FLAG_HOVER_WATER_ONLY|VEHICLE_FLAG_LIMIT_MOTOR_UP|VEHICLE_FLAG_LIMIT_ROLL_ONLY|VEHICLE_FLAG_MOUSELOOK_BANK|VEHICLE_FLAG_MOUSELOOK_STEER|VEHICLE_FLAG_NO_DEFLECTION_UP|VEHICLE_HOVER_EFFICIENCY|VEHICLE_HOVER_HEIGHT|VEHICLE_HOVER_TIMESCALE|VEHICLE_LINEAR_DEFLECTION_EFFICIENCY|VEHICLE_LINEAR_DEFLECTION_TIMESCALE|VEHICLE_LINEAR_FRICTION_TIMESCALE|VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE|VEHICLE_LINEAR_MOTOR_DIRECTION|VEHICLE_LINEAR_MOTOR_OFFSET|VEHICLE_LINEAR_MOTOR_TIMESCALE|VEHICLE_REFERENCE_FRAME|VEHICLE_TYPE_AIRPLANE|VEHICLE_TYPE_BALLOON|VEHICLE_TYPE_BOAT|VEHICLE_TYPE_CAR|VEHICLE_TYPE_NONE|VEHICLE_TYPE_SLED|VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY|VEHICLE_VERTICAL_ATTRACTION_TIMESCALE|VERTICAL|WANDER_PAUSE_AT_WAYPOINTS|XP_ERROR_EXPERIENCES_DISABLED|XP_ERROR_EXPERIENCE_DISABLED|XP_ERROR_EXPERIENCE_SUSPENDED|XP_ERROR_INVALID_EXPERIENCE|XP_ERROR_INVALID_PARAMETERS|XP_ERROR_KEY_NOT_FOUND|XP_ERROR_MATURITY_EXCEEDED|XP_ERROR_NONE|XP_ERROR_NOT_FOUND|XP_ERROR_NOT_PERMITTED|XP_ERROR_NO_EXPERIENCE|XP_ERROR_QUOTA_EXCEEDED|XP_ERROR_RETRY_UPDATE|XP_ERROR_STORAGE_EXCEPTION|XP_ERROR_STORE_DISABLED|XP_ERROR_THROTTLED|XP_ERROR_UNKNOWN_ERROR\",\n        \"constant.language.integer.boolean.lsl\" : \"FALSE|TRUE\",\n        \"constant.language.quaternion.lsl\" : \"ZERO_ROTATION\",\n        \"constant.language.string.lsl\" : \"EOF|JSON_ARRAY|JSON_DELETE|JSON_FALSE|JSON_INVALID|JSON_NULL|JSON_NUMBER|JSON_OBJECT|JSON_STRING|JSON_TRUE|NULL_KEY|TEXTURE_BLANK|TEXTURE_DEFAULT|TEXTURE_MEDIA|TEXTURE_PLYWOOD|TEXTURE_TRANSPARENT|URL_REQUEST_DENIED|URL_REQUEST_GRANTED\",\n        \"constant.language.vector.lsl\" : \"TOUCH_INVALID_TEXCOORD|TOUCH_INVALID_VECTOR|ZERO_VECTOR\",\n        \"invalid.broken.lsl\": \"LAND_LARGE_BRUSH|LAND_MEDIUM_BRUSH|LAND_SMALL_BRUSH\",\n        \"invalid.deprecated.lsl\" : \"ATTACH_LPEC|ATTACH_RPEC|DATA_RATING|OBJECT_ATTACHMENT_GEOMETRY_BYTES|OBJECT_ATTACHMENT_SURFACE_AREA|PRIM_CAST_SHADOWS|PRIM_MATERIAL_LIGHT|PRIM_TYPE_LEGACY|PSYS_SRC_INNERANGLE|PSYS_SRC_OUTERANGLE|VEHICLE_FLAG_NO_FLY_UP|llClearExperiencePermissions|llCloud|llGetExperienceList|llMakeExplosion|llMakeFire|llMakeFountain|llMakeSmoke|llRemoteDataSetRegion|llSound|llSoundPreload|llXorBase64Strings|llXorBase64StringsCorrect\",\n        \"invalid.illegal.lsl\": \"event\",\n        \"invalid.unimplemented.lsl\": \"CHARACTER_MAX_ANGULAR_ACCEL|CHARACTER_MAX_ANGULAR_SPEED|CHARACTER_TURN_SPEED_MULTIPLIER|PERMISSION_CHANGE_JOINTS|PERMISSION_CHANGE_PERMISSIONS|PERMISSION_EXPERIENCE|PERMISSION_RELEASE_OWNERSHIP|PERMISSION_REMAP_CONTROLS|PRIM_PHYSICS_MATERIAL|PSYS_SRC_OBJ_REL_MASK|llCollisionSprite|llPointAt|llRefreshPrimURL|llReleaseCamera|llRemoteLoadScript|llSetPrimURL|llStopPointAt|llTakeCamera\",\n        \"reserved.godmode.lsl\": \"llGodLikeRezObject|llSetInventoryPermMask|llSetObjectPermMask\",\n        \"reserved.log.lsl\" : \"print\",\n        \"keyword.control.lsl\" : \"do|else|for|if|jump|return|while\",\n        \"storage.type.lsl\" : \"float|integer|key|list|quaternion|rotation|string|vector\",\n        \"support.function.lsl\": \"llAbs|llAcos|llAddToLandBanList|llAddToLandPassList|llAdjustSoundVolume|llAgentInExperience|llAllowInventoryDrop|llAngleBetween|llApplyImpulse|llApplyRotationalImpulse|llAsin|llAtan2|llAttachToAvatar|llAttachToAvatarTemp|llAvatarOnLinkSitTarget|llAvatarOnSitTarget|llAxes2Rot|llAxisAngle2Rot|llBase64ToInteger|llBase64ToString|llBreakAllLinks|llBreakLink|llCSV2List|llCastRay|llCeil|llClearCameraParams|llClearLinkMedia|llClearPrimMedia|llCloseRemoteDataChannel|llCollisionFilter|llCollisionSound|llCos|llCreateCharacter|llCreateKeyValue|llCreateLink|llDataSizeKeyValue|llDeleteCharacter|llDeleteKeyValue|llDeleteSubList|llDeleteSubString|llDetachFromAvatar|llDetectedGrab|llDetectedGroup|llDetectedKey|llDetectedLinkNumber|llDetectedName|llDetectedOwner|llDetectedPos|llDetectedRot|llDetectedTouchBinormal|llDetectedTouchFace|llDetectedTouchNormal|llDetectedTouchPos|llDetectedTouchST|llDetectedTouchUV|llDetectedType|llDetectedVel|llDialog|llDie|llDumpList2String|llEdgeOfWorld|llEjectFromLand|llEmail|llEscapeURL|llEuler2Rot|llEvade|llExecCharacterCmd|llFabs|llFleeFrom|llFloor|llForceMouselook|llFrand|llGenerateKey|llGetAccel|llGetAgentInfo|llGetAgentLanguage|llGetAgentList|llGetAgentSize|llGetAlpha|llGetAndResetTime|llGetAnimation|llGetAnimationList|llGetAnimationOverride|llGetAttached|llGetAttachedList|llGetBoundingBox|llGetCameraPos|llGetCameraRot|llGetCenterOfMass|llGetClosestNavPoint|llGetColor|llGetCreator|llGetDate|llGetDisplayName|llGetEnergy|llGetEnv|llGetExperienceDetails|llGetExperienceErrorMessage|llGetForce|llGetFreeMemory|llGetFreeURLs|llGetGMTclock|llGetGeometricCenter|llGetHTTPHeader|llGetInventoryCreator|llGetInventoryKey|llGetInventoryName|llGetInventoryNumber|llGetInventoryPermMask|llGetInventoryType|llGetKey|llGetLandOwnerAt|llGetLinkKey|llGetLinkMedia|llGetLinkName|llGetLinkNumber|llGetLinkNumberOfSides|llGetLinkPrimitiveParams|llGetListEntryType|llGetListLength|llGetLocalPos|llGetLocalRot|llGetMass|llGetMassMKS|llGetMaxScaleFactor|llGetMemoryLimit|llGetMinScaleFactor|llGetNextEmail|llGetNotecardLine|llGetNumberOfNotecardLines|llGetNumberOfPrims|llGetNumberOfSides|llGetObjectDesc|llGetObjectDetails|llGetObjectMass|llGetObjectName|llGetObjectPermMask|llGetObjectPrimCount|llGetOmega|llGetOwner|llGetOwnerKey|llGetParcelDetails|llGetParcelFlags|llGetParcelMaxPrims|llGetParcelMusicURL|llGetParcelPrimCount|llGetParcelPrimOwners|llGetPermissions|llGetPermissionsKey|llGetPhysicsMaterial|llGetPos|llGetPrimMediaParams|llGetPrimitiveParams|llGetRegionAgentCount|llGetRegionCorner|llGetRegionFPS|llGetRegionFlags|llGetRegionName|llGetRegionTimeDilation|llGetRootPosition|llGetRootRotation|llGetRot|llGetSPMaxMemory|llGetScale|llGetScriptName|llGetScriptState|llGetSimStats|llGetSimulatorHostname|llGetStartParameter|llGetStaticPath|llGetStatus|llGetSubString|llGetSunDirection|llGetTexture|llGetTextureOffset|llGetTextureRot|llGetTextureScale|llGetTime|llGetTimeOfDay|llGetTimestamp|llGetTorque|llGetUnixTime|llGetUsedMemory|llGetUsername|llGetVel|llGetWallclock|llGiveInventory|llGiveInventoryList|llGiveMoney|llGround|llGroundContour|llGroundNormal|llGroundRepel|llGroundSlope|llHTTPRequest|llHTTPResponse|llInsertString|llInstantMessage|llIntegerToBase64|llJson2List|llJsonGetValue|llJsonSetValue|llJsonValueType|llKey2Name|llKeyCountKeyValue|llKeysKeyValue|llLinkParticleSystem|llLinkSitTarget|llList2CSV|llList2Float|llList2Integer|llList2Json|llList2Key|llList2List|llList2ListStrided|llList2Rot|llList2String|llList2Vector|llListFindList|llListInsertList|llListRandomize|llListReplaceList|llListSort|llListStatistics|llListen|llListenControl|llListenRemove|llLoadURL|llLog|llLog10|llLookAt|llLoopSound|llLoopSoundMaster|llLoopSoundSlave|llMD5String|llManageEstateAccess|llMapDestination|llMessageLinked|llMinEventDelay|llModPow|llModifyLand|llMoveToTarget|llNavigateTo|llOffsetTexture|llOpenRemoteDataChannel|llOverMyLand|llOwnerSay|llParcelMediaCommandList|llParcelMediaQuery|llParseString2List|llParseStringKeepNulls|llParticleSystem|llPassCollisions|llPassTouches|llPatrolPoints|llPlaySound|llPlaySoundSlave|llPow|llPreloadSound|llPursue|llPushObject|llReadKeyValue|llRegionSay|llRegionSayTo|llReleaseControls|llReleaseURL|llRemoteDataReply|llRemoteLoadScriptPin|llRemoveFromLandBanList|llRemoveFromLandPassList|llRemoveInventory|llRemoveVehicleFlags|llRequestAgentData|llRequestDisplayName|llRequestExperiencePermissions|llRequestInventoryData|llRequestPermissions|llRequestSecureURL|llRequestSimulatorData|llRequestURL|llRequestUsername|llResetAnimationOverride|llResetLandBanList|llResetLandPassList|llResetOtherScript|llResetScript|llResetTime|llReturnObjectsByID|llReturnObjectsByOwner|llRezAtRoot|llRezObject|llRot2Angle|llRot2Axis|llRot2Euler|llRot2Fwd|llRot2Left|llRot2Up|llRotBetween|llRotLookAt|llRotTarget|llRotTargetRemove|llRotateTexture|llRound|llSHA1String|llSameGroup|llSay|llScaleByFactor|llScaleTexture|llScriptDanger|llScriptProfiler|llSendRemoteData|llSensor|llSensorRemove|llSensorRepeat|llSetAlpha|llSetAngularVelocity|llSetAnimationOverride|llSetBuoyancy|llSetCameraAtOffset|llSetCameraEyeOffset|llSetCameraParams|llSetClickAction|llSetColor|llSetContentType|llSetDamage|llSetForce|llSetForceAndTorque|llSetHoverHeight|llSetKeyframedMotion|llSetLinkAlpha|llSetLinkCamera|llSetLinkColor|llSetLinkMedia|llSetLinkPrimitiveParams|llSetLinkPrimitiveParamsFast|llSetLinkTexture|llSetLinkTextureAnim|llSetLocalRot|llSetMemoryLimit|llSetObjectDesc|llSetObjectName|llSetParcelMusicURL|llSetPayPrice|llSetPhysicsMaterial|llSetPos|llSetPrimMediaParams|llSetPrimitiveParams|llSetRegionPos|llSetRemoteScriptAccessPin|llSetRot|llSetScale|llSetScriptState|llSetSitText|llSetSoundQueueing|llSetSoundRadius|llSetStatus|llSetText|llSetTexture|llSetTextureAnim|llSetTimerEvent|llSetTorque|llSetTouchText|llSetVehicleFlags|llSetVehicleFloatParam|llSetVehicleRotationParam|llSetVehicleType|llSetVehicleVectorParam|llSetVelocity|llShout|llSin|llSitTarget|llSleep|llSqrt|llStartAnimation|llStopAnimation|llStopHover|llStopLookAt|llStopMoveToTarget|llStopSound|llStringLength|llStringToBase64|llStringTrim|llSubStringIndex|llTakeControls|llTan|llTarget|llTargetOmega|llTargetRemove|llTeleportAgent|llTeleportAgentGlobalCoords|llTeleportAgentHome|llTextBox|llToLower|llToUpper|llTransferLindenDollars|llTriggerSound|llTriggerSoundLimited|llUnSit|llUnescapeURL|llUpdateCharacter|llUpdateKeyValue|llVecDist|llVecMag|llVecNorm|llVolumeDetect|llWanderWithin|llWater|llWhisper|llWind|llXorBase64\",\n        \"support.function.event.lsl\" : \"at_rot_target|at_target|attach|changed|collision|collision_end|collision_start|control|dataserver|email|experience_permissions|experience_permissions_denied|http_request|http_response|land_collision|land_collision_end|land_collision_start|link_message|listen|money|moving_end|moving_start|no_sensor|not_at_rot_target|not_at_target|object_rez|on_rez|path_update|remote_data|run_time_permissions|sensor|state_entry|state_exit|timer|touch|touch_end|touch_start|transaction_result\"\n        }, \"identifier\");\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment.line.double-slash.lsl\",\n                regex : \"\\\\/\\\\/.*$\"\n            }, {\n                token : \"comment.block.begin.lsl\",\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n                token : \"string.quoted.double.lsl\",\n                start : '\"',\n                end : '\"',\n                next : [{\n                    token : \"constant.character.escape.lsl\",\n                    regex : /\\\\[tn\"\\\\]/\n                }]\n            }, {\n                token : \"constant.numeric.lsl\",\n                regex : \"(0[xX][0-9a-fA-F]+|[+-]?[0-9]+(?:(?:\\\\.[0-9]*)?(?:[eE][+-]?[0-9]+)?)?)\\\\b\"\n            }, {\n                token : \"entity.name.state.lsl\",\n                regex : \"\\\\b((state)\\\\s+[A-Za-z_]\\\\w*|default)\\\\b\"\n            }, {\n                token : keywordMapper,\n                regex : \"\\\\b[a-zA-Z_][a-zA-Z0-9_]*\\\\b\"\n            }, {\n                token : \"support.function.user-defined.lsl\",\n                regex : /\\b([a-zA-Z_]\\w*)(?=\\(.*?\\))/\n            }, {\n                token : \"keyword.operator.lsl\",\n                regex : \"\\\\+\\\\+|\\\\-\\\\-|<<|>>|&&?|\\\\|\\\\|?|\\\\^|~|[!%<>=*+\\\\-\\\\/]=?\"\n            }, {\n                token : \"invalid.illegal.keyword.operator.lsl\",\n                regex : \":=?\"\n            }, {\n                token : \"punctuation.operator.lsl\",\n                regex : \"\\\\,|\\\\;\"\n            }, {\n                token : \"paren.lparen.lsl\",\n                regex : \"[\\\\[\\\\(\\\\{]\"\n            }, {\n                token : \"paren.rparen.lsl\",\n                regex : \"[\\\\]\\\\)\\\\}]\"\n            }, {\n                token : \"text.lsl\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment.block.end.lsl\",\n                regex : \"\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                defaultToken : \"comment.block.lsl\"\n            }\n        ]\n    };\n    this.normalizeRules();\n}\n\nexports.LSLHighlightRules = LSLHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/lsl\",[\"require\",\"exports\",\"module\",\"ace/mode/lsl_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/text\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/lib/oop\"], function(require, exports, module) {\n\"use strict\";\n\nvar Rules = require(\"./lsl_highlight_rules\").LSLHighlightRules;\nvar Outdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar Range = require(\"../range\").Range;\nvar TextMode = require(\"./text\").Mode;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar oop = require(\"../lib/oop\");\n\nvar Mode = function() {\n    this.HighlightRules = Rules;\n    this.$outdent = new Outdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = [\"//\"];\n\n    this.blockComment = {\n        start: \"/*\",\n        end: \"*/\"\n    };\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type === \"comment.block.lsl\") {\n            return indent;\n        }\n\n        if (state === \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.$id = \"ace/mode/lsl\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-lua.js",
    "content": "ace.define(\"ace/mode/lua_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar LuaHighlightRules = function() {\n\n    var keywords = (\n        \"break|do|else|elseif|end|for|function|if|in|local|repeat|\"+\n         \"return|then|until|while|or|and|not\"\n    );\n\n    var builtinConstants = (\"true|false|nil|_G|_VERSION\");\n\n    var functions = (\n        \"string|xpcall|package|tostring|print|os|unpack|require|\"+\n        \"getfenv|setmetatable|next|assert|tonumber|io|rawequal|\"+\n        \"collectgarbage|getmetatable|module|rawset|math|debug|\"+\n        \"pcall|table|newproxy|type|coroutine|_G|select|gcinfo|\"+\n        \"pairs|rawget|loadstring|ipairs|_VERSION|dofile|setfenv|\"+\n        \"load|error|loadfile|\"+\n\n        \"sub|upper|len|gfind|rep|find|match|char|dump|gmatch|\"+\n        \"reverse|byte|format|gsub|lower|preload|loadlib|loaded|\"+\n        \"loaders|cpath|config|path|seeall|exit|setlocale|date|\"+\n        \"getenv|difftime|remove|time|clock|tmpname|rename|execute|\"+\n        \"lines|write|close|flush|open|output|type|read|stderr|\"+\n        \"stdin|input|stdout|popen|tmpfile|log|max|acos|huge|\"+\n        \"ldexp|pi|cos|tanh|pow|deg|tan|cosh|sinh|random|randomseed|\"+\n        \"frexp|ceil|floor|rad|abs|sqrt|modf|asin|min|mod|fmod|log10|\"+\n        \"atan2|exp|sin|atan|getupvalue|debug|sethook|getmetatable|\"+\n        \"gethook|setmetatable|setlocal|traceback|setfenv|getinfo|\"+\n        \"setupvalue|getlocal|getregistry|getfenv|setn|insert|getn|\"+\n        \"foreachi|maxn|foreach|concat|sort|remove|resume|yield|\"+\n        \"status|wrap|create|running|\"+\n        \"__add|__sub|__mod|__unm|__concat|__lt|__index|__call|__gc|__metatable|\"+\n         \"__mul|__div|__pow|__len|__eq|__le|__newindex|__tostring|__mode|__tonumber\"\n    );\n\n    var stdLibaries = (\"string|package|os|io|math|debug|table|coroutine\");\n\n    var deprecatedIn5152 = (\"setn|foreach|foreachi|gcinfo|log10|maxn\");\n\n    var keywordMapper = this.createKeywordMapper({\n        \"keyword\": keywords,\n        \"support.function\": functions,\n        \"keyword.deprecated\": deprecatedIn5152,\n        \"constant.library\": stdLibaries,\n        \"constant.language\": builtinConstants,\n        \"variable.language\": \"self\"\n    }, \"identifier\");\n\n    var decimalInteger = \"(?:(?:[1-9]\\\\d*)|(?:0))\";\n    var hexInteger = \"(?:0[xX][\\\\dA-Fa-f]+)\";\n    var integer = \"(?:\" + decimalInteger + \"|\" + hexInteger + \")\";\n\n    var fraction = \"(?:\\\\.\\\\d+)\";\n    var intPart = \"(?:\\\\d+)\";\n    var pointFloat = \"(?:(?:\" + intPart + \"?\" + fraction + \")|(?:\" + intPart + \"\\\\.))\";\n    var floatNumber = \"(?:\" + pointFloat + \")\";\n\n    this.$rules = {\n        \"start\" : [{\n            stateName: \"bracketedComment\",\n            onMatch : function(value, currentState, stack){\n                stack.unshift(this.next, value.length - 2, currentState);\n                return \"comment\";\n            },\n            regex : /\\-\\-\\[=*\\[/,\n            next  : [\n                {\n                    onMatch : function(value, currentState, stack) {\n                        if (value.length == stack[1]) {\n                            stack.shift();\n                            stack.shift();\n                            this.next = stack.shift();\n                        } else {\n                            this.next = \"\";\n                        }\n                        return \"comment\";\n                    },\n                    regex : /\\]=*\\]/,\n                    next  : \"start\"\n                }, {\n                    defaultToken : \"comment\"\n                }\n            ]\n        },\n\n        {\n            token : \"comment\",\n            regex : \"\\\\-\\\\-.*$\"\n        },\n        {\n            stateName: \"bracketedString\",\n            onMatch : function(value, currentState, stack){\n                stack.unshift(this.next, value.length, currentState);\n                return \"comment\";\n            },\n            regex : /\\[=*\\[/,\n            next  : [\n                {\n                    onMatch : function(value, currentState, stack) {\n                        if (value.length == stack[1]) {\n                            stack.shift();\n                            stack.shift();\n                            this.next = stack.shift();\n                        } else {\n                            this.next = \"\";\n                        }\n                        return \"comment\";\n                    },\n                    \n                    regex : /\\]=*\\]/,\n                    next  : \"start\"\n                }, {\n                    defaultToken : \"comment\"\n                }\n            ]\n        },\n        {\n            token : \"string\",           // \" string\n            regex : '\"(?:[^\\\\\\\\]|\\\\\\\\.)*?\"'\n        }, {\n            token : \"string\",           // ' string\n            regex : \"'(?:[^\\\\\\\\]|\\\\\\\\.)*?'\"\n        }, {\n            token : \"constant.numeric\", // float\n            regex : floatNumber\n        }, {\n            token : \"constant.numeric\", // integer\n            regex : integer + \"\\\\b\"\n        }, {\n            token : keywordMapper,\n            regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n        }, {\n            token : \"keyword.operator\",\n            regex : \"\\\\+|\\\\-|\\\\*|\\\\/|%|\\\\#|\\\\^|~|<|>|<=|=>|==|~=|=|\\\\:|\\\\.\\\\.\\\\.|\\\\.\\\\.\"\n        }, {\n            token : \"paren.lparen\",\n            regex : \"[\\\\[\\\\(\\\\{]\"\n        }, {\n            token : \"paren.rparen\",\n            regex : \"[\\\\]\\\\)\\\\}]\"\n        }, {\n            token : \"text\",\n            regex : \"\\\\s+|\\\\w+\"\n        } ]\n    };\n    \n    this.normalizeRules();\n}\n\noop.inherits(LuaHighlightRules, TextHighlightRules);\n\nexports.LuaHighlightRules = LuaHighlightRules;\n});\n\nace.define(\"ace/mode/folding/lua\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\n\nvar FoldMode = exports.FoldMode = function() {};\n\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.foldingStartMarker = /\\b(function|then|do|repeat)\\b|{\\s*$|(\\[=*\\[)/;\n    this.foldingStopMarker = /\\bend\\b|^\\s*}|\\]=*\\]/;\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var isStart = this.foldingStartMarker.test(line);\n        var isEnd = this.foldingStopMarker.test(line);\n\n        if (isStart && !isEnd) {\n            var match = line.match(this.foldingStartMarker);\n            if (match[1] == \"then\" && /\\belseif\\b/.test(line))\n                return;\n            if (match[1]) {\n                if (session.getTokenAt(row, match.index + 1).type === \"keyword\")\n                    return \"start\";\n            } else if (match[2]) {\n                var type = session.bgTokenizer.getState(row) || \"\";\n                if (type[0] == \"bracketedComment\" || type[0] == \"bracketedString\")\n                    return \"start\";\n            } else {\n                return \"start\";\n            }\n        }\n        if (foldStyle != \"markbeginend\" || !isEnd || isStart && isEnd)\n            return \"\";\n\n        var match = line.match(this.foldingStopMarker);\n        if (match[0] === \"end\") {\n            if (session.getTokenAt(row, match.index + 1).type === \"keyword\")\n                return \"end\";\n        } else if (match[0][0] === \"]\") {\n            var type = session.bgTokenizer.getState(row - 1) || \"\";\n            if (type[0] == \"bracketedComment\" || type[0] == \"bracketedString\")\n                return \"end\";\n        } else\n            return \"end\";\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var line = session.doc.getLine(row);\n        var match = this.foldingStartMarker.exec(line);\n        if (match) {\n            if (match[1])\n                return this.luaBlock(session, row, match.index + 1);\n\n            if (match[2])\n                return session.getCommentFoldRange(row, match.index + 1);\n\n            return this.openingBracketBlock(session, \"{\", row, match.index);\n        }\n\n        var match = this.foldingStopMarker.exec(line);\n        if (match) {\n            if (match[0] === \"end\") {\n                if (session.getTokenAt(row, match.index + 1).type === \"keyword\")\n                    return this.luaBlock(session, row, match.index + 1);\n            }\n\n            if (match[0][0] === \"]\")\n                return session.getCommentFoldRange(row, match.index + 1);\n\n            return this.closingBracketBlock(session, \"}\", row, match.index + match[0].length);\n        }\n    };\n\n    this.luaBlock = function(session, row, column) {\n        var stream = new TokenIterator(session, row, column);\n        var indentKeywords = {\n            \"function\": 1,\n            \"do\": 1,\n            \"then\": 1,\n            \"elseif\": -1,\n            \"end\": -1,\n            \"repeat\": 1,\n            \"until\": -1\n        };\n\n        var token = stream.getCurrentToken();\n        if (!token || token.type != \"keyword\")\n            return;\n\n        var val = token.value;\n        var stack = [val];\n        var dir = indentKeywords[val];\n\n        if (!dir)\n            return;\n\n        var startColumn = dir === -1 ? stream.getCurrentTokenColumn() : session.getLine(row).length;\n        var startRow = row;\n\n        stream.step = dir === -1 ? stream.stepBackward : stream.stepForward;\n        while(token = stream.step()) {\n            if (token.type !== \"keyword\")\n                continue;\n            var level = dir * indentKeywords[token.value];\n\n            if (level > 0) {\n                stack.unshift(token.value);\n            } else if (level <= 0) {\n                stack.shift();\n                if (!stack.length && token.value != \"elseif\")\n                    break;\n                if (level === 0)\n                    stack.unshift(token.value);\n            }\n        }\n\n        var row = stream.getCurrentTokenRow();\n        if (dir === -1)\n            return new Range(row, session.getLine(row).length, startRow, startColumn);\n        else\n            return new Range(startRow, startColumn, row, stream.getCurrentTokenColumn());\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/lua\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/lua_highlight_rules\",\"ace/mode/folding/lua\",\"ace/range\",\"ace/worker/worker_client\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar LuaHighlightRules = require(\"./lua_highlight_rules\").LuaHighlightRules;\nvar LuaFoldMode = require(\"./folding/lua\").FoldMode;\nvar Range = require(\"../range\").Range;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\n\nvar Mode = function() {\n    this.HighlightRules = LuaHighlightRules;\n    \n    this.foldingRules = new LuaFoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n   \n    this.lineCommentStart = \"--\";\n    this.blockComment = {start: \"--[\", end: \"]--\"};\n    \n    var indentKeywords = {\n        \"function\": 1,\n        \"then\": 1,\n        \"do\": 1,\n        \"else\": 1,\n        \"elseif\": 1,\n        \"repeat\": 1,\n        \"end\": -1,\n        \"until\": -1\n    };\n    var outdentKeywords = [\n        \"else\",\n        \"elseif\",\n        \"end\",\n        \"until\"\n    ];\n\n    function getNetIndentLevel(tokens) {\n        var level = 0;\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            if (token.type == \"keyword\") {\n                if (token.value in indentKeywords) {\n                    level += indentKeywords[token.value];\n                }\n            } else if (token.type == \"paren.lparen\") {\n                level += token.value.length;\n            } else if (token.type == \"paren.rparen\") {\n                level -= token.value.length;\n            }\n        }\n        if (level < 0) {\n            return -1;\n        } else if (level > 0) {\n            return 1;\n        } else {\n            return 0;\n        }\n    }\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var level = 0;\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n\n        if (state == \"start\") {\n            level = getNetIndentLevel(tokens);\n        }\n        if (level > 0) {\n            return indent + tab;\n        } else if (level < 0 && indent.substr(indent.length - tab.length) == tab) {\n            if (!this.checkOutdent(state, line, \"\\n\")) {\n                return indent.substr(0, indent.length - tab.length);\n            }\n        }\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        if (input != \"\\n\" && input != \"\\r\" && input != \"\\r\\n\")\n            return false;\n\n        if (line.match(/^\\s*[\\)\\}\\]]$/))\n            return true;\n\n        var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;\n\n        if (!tokens || !tokens.length)\n            return false;\n\n        return (tokens[0].type == \"keyword\" && outdentKeywords.indexOf(tokens[0].value) != -1);\n    };\n\n    this.autoOutdent = function(state, session, row) {\n        var prevLine = session.getLine(row - 1);\n        var prevIndent = this.$getIndent(prevLine).length;\n        var prevTokens = this.getTokenizer().getLineTokens(prevLine, \"start\").tokens;\n        var tabLength = session.getTabString().length;\n        var expectedIndent = prevIndent + tabLength * getNetIndentLevel(prevTokens);\n        var curIndent = this.$getIndent(session.getLine(row)).length;\n        if (curIndent < expectedIndent) {\n            return;\n        }\n        session.outdentRows(new Range(row, 0, row + 2, 0));\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/lua_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n        \n        worker.on(\"annotate\", function(e) {\n            session.setAnnotations(e.data);\n        });\n        \n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n        \n        return worker;\n    };\n\n    this.$id = \"ace/mode/lua\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-luapage.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar propertyMap = {\n    \"background\": {\"#$0\": 1},\n    \"background-color\": {\"#$0\": 1, \"transparent\": 1, \"fixed\": 1},\n    \"background-image\": {\"url('/$0')\": 1},\n    \"background-repeat\": {\"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1},\n    \"background-position\": {\"bottom\":2, \"center\":2, \"left\":2, \"right\":2, \"top\":2, \"inherit\":2},\n    \"background-attachment\": {\"scroll\": 1, \"fixed\": 1},\n    \"background-size\": {\"cover\": 1, \"contain\": 1},\n    \"background-clip\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"background-origin\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"border\": {\"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1},\n    \"border-color\": {\"#$0\": 1},\n    \"border-style\": {\"solid\":2, \"dashed\":2, \"dotted\":2, \"double\":2, \"groove\":2, \"hidden\":2, \"inherit\":2, \"inset\":2, \"none\":2, \"outset\":2, \"ridged\":2},\n    \"border-collapse\": {\"collapse\": 1, \"separate\": 1},\n    \"bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"clear\": {\"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1},\n    \"color\": {\"#$0\": 1, \"rgb(#$00,0,0)\": 1},\n    \"cursor\": {\"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1},\n    \"display\": {\"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1},\n    \"empty-cells\": {\"show\": 1, \"hide\": 1},\n    \"float\": {\"left\": 1, \"right\": 1, \"none\": 1},\n    \"font-family\": {\"Arial\":2,\"Comic Sans MS\":2,\"Consolas\":2,\"Courier New\":2,\"Courier\":2,\"Georgia\":2,\"Monospace\":2,\"Sans-Serif\":2, \"Segoe UI\":2,\"Tahoma\":2,\"Times New Roman\":2,\"Trebuchet MS\":2,\"Verdana\": 1},\n    \"font-size\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"font-weight\": {\"bold\": 1, \"normal\": 1},\n    \"font-style\": {\"italic\": 1, \"normal\": 1},\n    \"font-variant\": {\"normal\": 1, \"small-caps\": 1},\n    \"height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"letter-spacing\": {\"normal\": 1},\n    \"line-height\": {\"normal\": 1},\n    \"list-style-type\": {\"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1},\n    \"margin\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"overflow\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-x\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-y\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"padding\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"page-break-after\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"page-break-before\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"position\": {\"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1},\n    \"right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"table-layout\": {\"fixed\": 1, \"auto\": 1},\n    \"text-decoration\": {\"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1},\n    \"text-align\": {\"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1},\n    \"text-transform\": {\"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1},\n    \"top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"vertical-align\": {\"top\": 1, \"bottom\": 1},\n    \"visibility\": {\"hidden\": 1, \"visible\": 1},\n    \"white-space\": {\"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1},\n    \"width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"word-spacing\": {\"normal\": 1},\n    \"filter\": {\"alpha(opacity=$0100)\": 1},\n\n    \"text-shadow\": {\"$02px 2px 2px #777\": 1},\n    \"text-overflow\": {\"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1},\n    \"-moz-border-radius\": 1,\n    \"-moz-border-radius-topright\": 1,\n    \"-moz-border-radius-bottomright\": 1,\n    \"-moz-border-radius-topleft\": 1,\n    \"-moz-border-radius-bottomleft\": 1,\n    \"-webkit-border-radius\": 1,\n    \"-webkit-border-top-right-radius\": 1,\n    \"-webkit-border-top-left-radius\": 1,\n    \"-webkit-border-bottom-right-radius\": 1,\n    \"-webkit-border-bottom-left-radius\": 1,\n    \"-moz-box-shadow\": 1,\n    \"-webkit-box-shadow\": 1,\n    \"transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-moz-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-webkit-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\n\nvar CssCompletions = function() {\n\n};\n\n(function() {\n\n    this.completionsDefined = false;\n\n    this.defineCompletions = function() {\n        if (document) {\n            var style = document.createElement('c').style;\n\n            for (var i in style) {\n                if (typeof style[i] !== 'string')\n                    continue;\n\n                var name = i.replace(/[A-Z]/g, function(x) {\n                    return '-' + x.toLowerCase();\n                });\n\n                if (!propertyMap.hasOwnProperty(name))\n                    propertyMap[name] = 1;\n            }\n        }\n\n        this.completionsDefined = true;\n    }\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        if (!this.completionsDefined) {\n            this.defineCompletions();\n        }\n\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (state==='ruleset'){\n            var line = session.getLine(pos.row).substr(0, pos.column);\n            if (/:[^;]+$/.test(line)) {\n                /([\\w\\-]+):[^:]*$/.test(line);\n\n                return this.getPropertyValueCompletions(state, session, pos, prefix);\n            } else {\n                return this.getPropertyCompletions(state, session, pos, prefix);\n            }\n        }\n\n        return [];\n    };\n\n    this.getPropertyCompletions = function(state, session, pos, prefix) {\n        var properties = Object.keys(propertyMap);\n        return properties.map(function(property){\n            return {\n                caption: property,\n                snippet: property + ': $0',\n                meta: \"property\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getPropertyValueCompletions = function(state, session, pos, prefix) {\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n\n        if (!property)\n            return [];\n        var values = [];\n        if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n            values = Object.keys(propertyMap[property]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"property value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(CssCompletions.prototype);\n\nexports.CssCompletions = CssCompletions;\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar CssBehaviour = function () {\n\n    this.inherit(CstyleBehaviour);\n\n    this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(cursor.row);\n                var rightChar = line.substring(cursor.column, cursor.column + 1);\n                if (rightChar === ':') {\n                    return {\n                       text: '',\n                       selection: [1, 1]\n                    }\n                }\n                if (!line.substring(cursor.column).match(/^\\s*;/)) {\n                    return {\n                       text: ':;',\n                       selection: [1, 1]\n                    }\n                }\n            }\n        }\n    });\n\n    this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && selected === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(range.start.row);\n                var rightChar = line.substring(range.end.column, range.end.column + 1);\n                if (rightChar === ';') {\n                    range.end.column ++;\n                    return range;\n                }\n            }\n        }\n    });\n\n    this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ';') {\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar === ';') {\n                return {\n                   text: '',\n                   selection: [1, 1]\n                }\n            }\n        }\n    });\n\n}\noop.inherits(CssBehaviour, CstyleBehaviour);\n\nexports.CssBehaviour = CssBehaviour;\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = CssHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CssBehaviour();\n    this.$completer = new CssCompletions();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.foldingRules = \"cStyle\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        var match = line.match(/^.*\\{\\s*$/);\n        if (match) {\n            indent += tab;\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/css\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n    a           : 'anchor',\n    button \t    : 'form',\n    form        : 'form',\n    img         : 'image',\n    input       : 'form',\n    label       : 'form',\n    option      : 'form',\n    script      : 'script',\n    select      : 'form',\n    textarea    : 'form',\n    style       : 'style',\n    table       : 'table',\n    tbody       : 'table',\n    td          : 'table',\n    tfoot       : 'table',\n    th          : 'table',\n    tr          : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.addRules({\n        attributes: [{\n            include : \"tag_whitespace\"\n        }, {\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"[-_a-zA-Z0-9:.]+\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\",\n            push : [{\n                include: \"tag_whitespace\"\n            }, {\n                token : \"string.unquoted.attribute-value.html\",\n                regex : \"[^<>='\\\"`\\\\s]+\",\n                next : \"pop\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"pop\"\n            }]\n        }, {\n            include : \"attribute_value\"\n        }],\n        tag: [{\n            token : function(start, tag) {\n                var group = tagMap[tag];\n                return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                    \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n            },\n            regex : \"(</?)([-_a-zA-Z0-9:.]+)\",\n            next: \"tag_stuff\"\n        }],\n        tag_stuff: [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n        ]\n    });\n\n    this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"js-\", \"script\");\n\n    if (this.constructor === HtmlHighlightRules)\n        this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nvar XmlBehaviour = function () {\n\n    this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '\"' || text == \"'\") {\n            var quote = text;\n            var selected = session.doc.getTextRange(editor.getSelectionRange());\n            if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n                return {\n                    text: quote + selected + quote,\n                    selection: false\n                };\n            }\n\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n                return {\n                    text: \"\",\n                    selection: [1, 1]\n                };\n            }\n\n            if (!token)\n                token = iterator.stepBackward();\n\n            if (!token)\n                return;\n\n            while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n                token = iterator.stepBackward();\n            }\n            var rightSpace = !rightChar || rightChar.match(/\\s/);\n            if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n                return {\n                    text: quote + quote,\n                    selection: [1, 1]\n                };\n            }\n        }\n    });\n\n    this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == selected) {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n\n    this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '>') {\n            var position = editor.getSelectionRange().start;\n            var iterator = new TokenIterator(session, position.row, position.column);\n            var token = iterator.getCurrentToken() || iterator.stepBackward();\n            if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n                return;\n            if (is(token, \"reference.attribute-value\"))\n                return;\n            if (is(token, \"attribute-value\")) {\n                var firstChar = token.value.charAt(0);\n                if (firstChar == '\"' || firstChar == \"'\") {\n                    var lastChar = token.value.charAt(token.value.length - 1);\n                    var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;\n                    if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)\n                        return;\n                }\n            }\n            while (!is(token, \"tag-name\")) {\n                token = iterator.stepBackward();\n                if (token.value == \"<\") {\n                    token = iterator.stepForward();\n                    break;\n                }\n            }\n\n            var tokenRow = iterator.getCurrentTokenRow();\n            var tokenColumn = iterator.getCurrentTokenColumn();\n            if (is(iterator.stepBackward(), \"end-tag-open\"))\n                return;\n\n            var element = token.value;\n            if (tokenRow == position.row)\n                element = element.substring(0, position.column - tokenColumn);\n\n            if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n                 return;\n\n            return {\n               text: \">\" + \"</\" + element + \">\",\n               selection: [1, 1]\n            };\n        }\n    });\n\n    this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == \"\\n\") {\n            var cursor = editor.getCursorPosition();\n            var line = session.getLine(cursor.row);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (token && token.type.indexOf(\"tag-close\") !== -1) {\n                if (token.value == \"/>\")\n                    return;\n                while (token && token.type.indexOf(\"tag-name\") === -1) {\n                    token = iterator.stepBackward();\n                }\n\n                if (!token) {\n                    return;\n                }\n\n                var tag = token.value;\n                var row = iterator.getCurrentTokenRow();\n                token = iterator.stepBackward();\n                if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n                    return;\n                }\n\n                if (this.voidElements && !this.voidElements[tag]) {\n                    var nextToken = session.getTokenAt(cursor.row, cursor.column+1);\n                    var line = session.getLine(row);\n                    var nextIndent = this.$getIndent(line);\n                    var indent = nextIndent + session.getTabString();\n\n                    if (nextToken && nextToken.value === \"</\") {\n                        return {\n                            text: \"\\n\" + indent + \"\\n\" + nextIndent,\n                            selection: [1, indent.length, 1, indent.length]\n                        };\n                    } else {\n                        return {\n                            text: \"\\n\" + indent\n                        };\n                    }\n                }\n            }\n        }\n    });\n\n};\n\noop.inherits(XmlBehaviour, Behaviour);\n\nexports.XmlBehaviour = XmlBehaviour;\n});\n\nace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(defaultMode, subModes) {\n    this.defaultMode = defaultMode;\n    this.subModes = subModes;\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n\n    this.$getMode = function(state) {\n        if (typeof state != \"string\") \n            state = state[0];\n        for (var key in this.subModes) {\n            if (state.indexOf(key) === 0)\n                return this.subModes[key];\n        }\n        return null;\n    };\n    \n    this.$tryMode = function(state, session, foldStyle, row) {\n        var mode = this.$getMode(state);\n        return (mode ? mode.getFoldWidget(session, foldStyle, row) : \"\");\n    };\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        return (\n            this.$tryMode(session.getState(row-1), session, foldStyle, row) ||\n            this.$tryMode(session.getState(row), session, foldStyle, row) ||\n            this.defaultMode.getFoldWidget(session, foldStyle, row)\n        );\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var mode = this.$getMode(session.getState(row-1));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.$getMode(session.getState(row));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.defaultMode;\n        \n        return mode.getFoldWidgetRange(session, foldStyle, row);\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar lang = require(\"../../lib/lang\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalEndTags) {\n    BaseFoldMode.call(this);\n    this.voidElements = voidElements || {};\n    this.optionalEndTags = oop.mixin({}, this.voidElements);\n    if (optionalEndTags)\n        oop.mixin(this.optionalEndTags, optionalEndTags);\n    \n};\noop.inherits(FoldMode, BaseFoldMode);\n\nvar Tag = function() {\n    this.tagName = \"\";\n    this.closing = false;\n    this.selfClosing = false;\n    this.start = {row: 0, column: 0};\n    this.end = {row: 0, column: 0};\n};\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\n(function() {\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var tag = this._getFirstTagInLine(session, row);\n\n        if (!tag)\n            return \"\";\n\n        if (tag.closing || (!tag.tagName && tag.selfClosing))\n            return foldStyle == \"markbeginend\" ? \"end\" : \"\";\n\n        if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n            return \"\";\n\n        if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n            return \"\";\n\n        return \"start\";\n    };\n    this._getFirstTagInLine = function(session, row) {\n        var tokens = session.getTokens(row);\n        var tag = new Tag();\n\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            if (is(token, \"tag-open\")) {\n                tag.end.column = tag.start.column + token.value.length;\n                tag.closing = is(token, \"end-tag-open\");\n                token = tokens[++i];\n                if (!token)\n                    return null;\n                tag.tagName = token.value;\n                tag.end.column += token.value.length;\n                for (i++; i < tokens.length; i++) {\n                    token = tokens[i];\n                    tag.end.column += token.value.length;\n                    if (is(token, \"tag-close\")) {\n                        tag.selfClosing = token.value == '/>';\n                        break;\n                    }\n                }\n                return tag;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == '/>';\n                return tag;\n            }\n            tag.start.column += token.value.length;\n        }\n\n        return null;\n    };\n\n    this._findEndTagInLine = function(session, row, tagName, startColumn) {\n        var tokens = session.getTokens(row);\n        var column = 0;\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            column += token.value.length;\n            if (column < startColumn)\n                continue;\n            if (is(token, \"end-tag-open\")) {\n                token = tokens[i + 1];\n                if (token && token.value == tagName)\n                    return true;\n            }\n        }\n        return false;\n    };\n    this._readTagForward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n                iterator.stepForward();\n                return tag;\n            }\n        } while(token = iterator.stepForward());\n\n        return null;\n    };\n    \n    this._readTagBackward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n                iterator.stepBackward();\n                return tag;\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n            }\n        } while(token = iterator.stepBackward());\n\n        return null;\n    };\n    \n    this._pop = function(stack, tag) {\n        while (stack.length) {\n            \n            var top = stack[stack.length-1];\n            if (!tag || top.tagName == tag.tagName) {\n                return stack.pop();\n            }\n            else if (this.optionalEndTags.hasOwnProperty(top.tagName)) {\n                stack.pop();\n                continue;\n            } else {\n                return null;\n            }\n        }\n    };\n    \n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var firstTag = this._getFirstTagInLine(session, row);\n        \n        if (!firstTag)\n            return null;\n        \n        var isBackward = firstTag.closing || firstTag.selfClosing;\n        var stack = [];\n        var tag;\n        \n        if (!isBackward) {\n            var iterator = new TokenIterator(session, row, firstTag.start.column);\n            var start = {\n                row: row,\n                column: firstTag.start.column + firstTag.tagName.length + 2\n            };\n            if (firstTag.start.row == firstTag.end.row)\n                start.column = firstTag.end.column;\n            while (tag = this._readTagForward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0)\n                        return Range.fromPoints(start, tag.start);\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        else {\n            var iterator = new TokenIterator(session, row, firstTag.end.column);\n            var end = {\n                row: row,\n                column: firstTag.start.column\n            };\n            \n            while (tag = this._readTagBackward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (!tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0) {\n                        tag.start.column += tag.tagName.length + 2;\n                        if (tag.start.row == tag.end.row && tag.start.column < tag.end.column)\n                            tag.start.column = tag.end.column;\n                        return Range.fromPoints(tag.start, end);\n                    }\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        \n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar MixedFoldMode = require(\"./mixed\").FoldMode;\nvar XmlFoldMode = require(\"./xml\").FoldMode;\nvar CStyleFoldMode = require(\"./cstyle\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalTags) {\n    MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), {\n        \"js-\": new CStyleFoldMode(),\n        \"css-\": new CStyleFoldMode()\n    });\n};\n\noop.inherits(FoldMode, MixedFoldMode);\n\n});\n\nace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\n\nvar commonAttributes = [\n    \"accesskey\",\n    \"class\",\n    \"contenteditable\",\n    \"contextmenu\",\n    \"dir\",\n    \"draggable\",\n    \"dropzone\",\n    \"hidden\",\n    \"id\",\n    \"inert\",\n    \"itemid\",\n    \"itemprop\",\n    \"itemref\",\n    \"itemscope\",\n    \"itemtype\",\n    \"lang\",\n    \"spellcheck\",\n    \"style\",\n    \"tabindex\",\n    \"title\",\n    \"translate\"\n];\n\nvar eventAttributes = [\n    \"onabort\",\n    \"onblur\",\n    \"oncancel\",\n    \"oncanplay\",\n    \"oncanplaythrough\",\n    \"onchange\",\n    \"onclick\",\n    \"onclose\",\n    \"oncontextmenu\",\n    \"oncuechange\",\n    \"ondblclick\",\n    \"ondrag\",\n    \"ondragend\",\n    \"ondragenter\",\n    \"ondragleave\",\n    \"ondragover\",\n    \"ondragstart\",\n    \"ondrop\",\n    \"ondurationchange\",\n    \"onemptied\",\n    \"onended\",\n    \"onerror\",\n    \"onfocus\",\n    \"oninput\",\n    \"oninvalid\",\n    \"onkeydown\",\n    \"onkeypress\",\n    \"onkeyup\",\n    \"onload\",\n    \"onloadeddata\",\n    \"onloadedmetadata\",\n    \"onloadstart\",\n    \"onmousedown\",\n    \"onmousemove\",\n    \"onmouseout\",\n    \"onmouseover\",\n    \"onmouseup\",\n    \"onmousewheel\",\n    \"onpause\",\n    \"onplay\",\n    \"onplaying\",\n    \"onprogress\",\n    \"onratechange\",\n    \"onreset\",\n    \"onscroll\",\n    \"onseeked\",\n    \"onseeking\",\n    \"onselect\",\n    \"onshow\",\n    \"onstalled\",\n    \"onsubmit\",\n    \"onsuspend\",\n    \"ontimeupdate\",\n    \"onvolumechange\",\n    \"onwaiting\"\n];\n\nvar globalAttributes = commonAttributes.concat(eventAttributes);\n\nvar attributeMap = {\n    \"html\": {\"manifest\": 1},\n    \"head\": {},\n    \"title\": {},\n    \"base\": {\"href\": 1, \"target\": 1},\n    \"link\": {\"href\": 1, \"hreflang\": 1, \"rel\": {\"stylesheet\": 1, \"icon\": 1}, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"type\": {\"text/css\": 1, \"image/png\": 1, \"image/jpeg\": 1, \"image/gif\": 1}, \"sizes\": 1},\n    \"meta\": {\"http-equiv\": {\"content-type\": 1}, \"name\": {\"description\": 1, \"keywords\": 1}, \"content\": {\"text/html; charset=UTF-8\": 1}, \"charset\": 1},\n    \"style\": {\"type\": 1, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"scoped\": 1},\n    \"script\": {\"charset\": 1, \"type\": {\"text/javascript\": 1}, \"src\": 1, \"defer\": 1, \"async\": 1},\n    \"noscript\": {\"href\": 1},\n    \"body\": {\"onafterprint\": 1, \"onbeforeprint\": 1, \"onbeforeunload\": 1, \"onhashchange\": 1, \"onmessage\": 1, \"onoffline\": 1, \"onpopstate\": 1, \"onredo\": 1, \"onresize\": 1, \"onstorage\": 1, \"onundo\": 1, \"onunload\": 1},\n    \"section\": {},\n    \"nav\": {},\n    \"article\": {\"pubdate\": 1},\n    \"aside\": {},\n    \"h1\": {},\n    \"h2\": {},\n    \"h3\": {},\n    \"h4\": {},\n    \"h5\": {},\n    \"h6\": {},\n    \"header\": {},\n    \"footer\": {},\n    \"address\": {},\n    \"main\": {},\n    \"p\": {},\n    \"hr\": {},\n    \"pre\": {},\n    \"blockquote\": {\"cite\": 1},\n    \"ol\": {\"start\": 1, \"reversed\": 1},\n    \"ul\": {},\n    \"li\": {\"value\": 1},\n    \"dl\": {},\n    \"dt\": {},\n    \"dd\": {},\n    \"figure\": {},\n    \"figcaption\": {},\n    \"div\": {},\n    \"a\": {\"href\": 1, \"target\": {\"_blank\": 1, \"top\": 1}, \"ping\": 1, \"rel\": {\"nofollow\": 1, \"alternate\": 1, \"author\": 1, \"bookmark\": 1, \"help\": 1, \"license\": 1, \"next\": 1, \"noreferrer\": 1, \"prefetch\": 1, \"prev\": 1, \"search\": 1, \"tag\": 1}, \"media\": 1, \"hreflang\": 1, \"type\": 1},\n    \"em\": {},\n    \"strong\": {},\n    \"small\": {},\n    \"s\": {},\n    \"cite\": {},\n    \"q\": {\"cite\": 1},\n    \"dfn\": {},\n    \"abbr\": {},\n    \"data\": {},\n    \"time\": {\"datetime\": 1},\n    \"code\": {},\n    \"var\": {},\n    \"samp\": {},\n    \"kbd\": {},\n    \"sub\": {},\n    \"sup\": {},\n    \"i\": {},\n    \"b\": {},\n    \"u\": {},\n    \"mark\": {},\n    \"ruby\": {},\n    \"rt\": {},\n    \"rp\": {},\n    \"bdi\": {},\n    \"bdo\": {},\n    \"span\": {},\n    \"br\": {},\n    \"wbr\": {},\n    \"ins\": {\"cite\": 1, \"datetime\": 1},\n    \"del\": {\"cite\": 1, \"datetime\": 1},\n    \"img\": {\"alt\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"usemap\": 1, \"ismap\": 1},\n    \"iframe\": {\"name\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"sandbox\": {\"allow-same-origin\": 1, \"allow-top-navigation\": 1, \"allow-forms\": 1, \"allow-scripts\": 1}, \"seamless\": {\"seamless\": 1}},\n    \"embed\": {\"src\": 1, \"height\": 1, \"width\": 1, \"type\": 1},\n    \"object\": {\"param\": 1, \"data\": 1, \"type\": 1, \"height\" : 1, \"width\": 1, \"usemap\": 1, \"name\": 1, \"form\": 1, \"classid\": 1},\n    \"param\": {\"name\": 1, \"value\": 1},\n    \"video\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"width\": 1, \"height\": 1, \"poster\": 1, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1}},\n    \"audio\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1 }},\n    \"source\": {\"src\": 1, \"type\": 1, \"media\": 1},\n    \"track\": {\"kind\": 1, \"src\": 1, \"srclang\": 1, \"label\": 1, \"default\": 1},\n    \"canvas\": {\"width\": 1, \"height\": 1},\n    \"map\": {\"name\": 1},\n    \"area\": {\"shape\": 1, \"coords\": 1, \"href\": 1, \"hreflang\": 1, \"alt\": 1, \"target\": 1, \"media\": 1, \"rel\": 1, \"ping\": 1, \"type\": 1},\n    \"svg\": {},\n    \"math\": {},\n    \"table\": {\"summary\": 1},\n    \"caption\": {},\n    \"colgroup\": {\"span\": 1},\n    \"col\": {\"span\": 1},\n    \"tbody\": {},\n    \"thead\": {},\n    \"tfoot\": {},\n    \"tr\": {},\n    \"td\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1},\n    \"th\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1, \"scope\": 1},\n    \"form\": {\"accept-charset\": 1, \"action\": 1, \"autocomplete\": 1, \"enctype\": {\"multipart/form-data\": 1, \"application/x-www-form-urlencoded\": 1}, \"method\": {\"get\": 1, \"post\": 1}, \"name\": 1, \"novalidate\": 1, \"target\": {\"_blank\": 1, \"top\": 1}},\n    \"fieldset\": {\"disabled\": 1, \"form\": 1, \"name\": 1},\n    \"legend\": {},\n    \"label\": {\"form\": 1, \"for\": 1},\n    \"input\": {\n        \"type\": {\"text\": 1, \"password\": 1, \"hidden\": 1, \"checkbox\": 1, \"submit\": 1, \"radio\": 1, \"file\": 1, \"button\": 1, \"reset\": 1, \"image\": 31, \"color\": 1, \"date\": 1, \"datetime\": 1, \"datetime-local\": 1, \"email\": 1, \"month\": 1, \"number\": 1, \"range\": 1, \"search\": 1, \"tel\": 1, \"time\": 1, \"url\": 1, \"week\": 1},\n        \"accept\": 1, \"alt\": 1, \"autocomplete\": {\"on\": 1, \"off\": 1}, \"autofocus\": {\"autofocus\": 1}, \"checked\": {\"checked\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": {\"application/x-www-form-urlencoded\": 1, \"multipart/form-data\": 1, \"text/plain\": 1}, \"formmethod\": {\"get\": 1, \"post\": 1}, \"formnovalidate\": {\"formnovalidate\": 1}, \"formtarget\": {\"_blank\": 1, \"_self\": 1, \"_parent\": 1, \"_top\": 1}, \"height\": 1, \"list\": 1, \"max\": 1, \"maxlength\": 1, \"min\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"pattern\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"size\": 1, \"src\": 1, \"step\": 1, \"width\": 1, \"files\": 1, \"value\": 1},\n    \"button\": {\"autofocus\": 1, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": 1, \"formmethod\": 1, \"formnovalidate\": 1, \"formtarget\": 1, \"name\": 1, \"value\": 1, \"type\": {\"button\": 1, \"submit\": 1}},\n    \"select\": {\"autofocus\": 1, \"disabled\": 1, \"form\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"size\": 1, \"readonly\":{\"readonly\": 1}},\n    \"datalist\": {},\n    \"optgroup\": {\"disabled\": 1, \"label\": 1},\n    \"option\": {\"disabled\": 1, \"selected\": 1, \"label\": 1, \"value\": 1},\n    \"textarea\": {\"autofocus\": {\"autofocus\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"maxlength\": 1, \"name\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"rows\": 1, \"cols\": 1, \"wrap\": {\"on\": 1, \"off\": 1, \"hard\": 1, \"soft\": 1}},\n    \"keygen\": {\"autofocus\": 1, \"challenge\": {\"challenge\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"keytype\": {\"rsa\": 1, \"dsa\": 1, \"ec\": 1}, \"name\": 1},\n    \"output\": {\"for\": 1, \"form\": 1, \"name\": 1},\n    \"progress\": {\"value\": 1, \"max\": 1},\n    \"meter\": {\"value\": 1, \"min\": 1, \"max\": 1, \"low\": 1, \"high\": 1, \"optimum\": 1},\n    \"details\": {\"open\": 1},\n    \"summary\": {},\n    \"command\": {\"type\": 1, \"label\": 1, \"icon\": 1, \"disabled\": 1, \"checked\": 1, \"radiogroup\": 1, \"command\": 1},\n    \"menu\": {\"type\": 1, \"label\": 1},\n    \"dialog\": {\"open\": 1}\n};\n\nvar elements = Object.keys(attributeMap);\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nfunction findTagName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"tag-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nfunction findAttributeName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"attribute-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nvar HtmlCompletions = function() {\n\n};\n\n(function() {\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (is(token, \"tag-name\") || is(token, \"tag-open\") || is(token, \"end-tag-open\"))\n            return this.getTagCompletions(state, session, pos, prefix);\n        if (is(token, \"tag-whitespace\") || is(token, \"attribute-name\"))\n            return this.getAttributeCompletions(state, session, pos, prefix);\n        if (is(token, \"attribute-value\"))\n            return this.getAttributeValueCompletions(state, session, pos, prefix);\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        if (/&[a-z]*$/i.test(line))\n            return this.getHTMLEntityCompletions(state, session, pos, prefix);\n\n        return [];\n    };\n\n    this.getTagCompletions = function(state, session, pos, prefix) {\n        return elements.map(function(element){\n            return {\n                value: element,\n                meta: \"tag\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        if (!tagName)\n            return [];\n        var attributes = globalAttributes;\n        if (tagName in attributeMap) {\n            attributes = attributes.concat(Object.keys(attributeMap[tagName]));\n        }\n        return attributes.map(function(attribute){\n            return {\n                caption: attribute,\n                snippet: attribute + '=\"$0\"',\n                meta: \"attribute\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeValueCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        var attributeName = findAttributeName(session, pos);\n        \n        if (!tagName)\n            return [];\n        var values = [];\n        if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === \"object\") {\n            values = Object.keys(attributeMap[tagName][attributeName]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"attribute value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getHTMLEntityCompletions = function(state, session, pos, prefix) {\n        var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;'];\n\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"html entity\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(HtmlCompletions.prototype);\n\nexports.HtmlCompletions = HtmlCompletions;\n});\n\nace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar CssMode = require(\"./css\").Mode;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar HtmlFoldMode = require(\"./folding/html\").FoldMode;\nvar HtmlCompletions = require(\"./html_completions\").HtmlCompletions;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar voidElements = [\"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"menuitem\", \"param\", \"source\", \"track\", \"wbr\"];\nvar optionalEndTags = [\"li\", \"dt\", \"dd\", \"p\", \"rt\", \"rp\", \"optgroup\", \"option\", \"colgroup\", \"td\", \"th\"];\n\nvar Mode = function(options) {\n    this.fragmentContext = options && options.fragmentContext;\n    this.HighlightRules = HtmlHighlightRules;\n    this.$behaviour = new XmlBehaviour();\n    this.$completer = new HtmlCompletions();\n    \n    this.createModeDelegates({\n        \"js-\": JavaScriptMode,\n        \"css-\": CssMode\n    });\n    \n    this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags));\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.blockComment = {start: \"<!--\", end: \"-->\"};\n\n    this.voidElements = lang.arrayToMap(voidElements);\n\n    this.getNextLineIndent = function(state, line, tab) {\n        return this.$getIndent(line);\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return false;\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        if (this.constructor != Mode)\n            return;\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/html_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        if (this.fragmentContext)\n            worker.call(\"setOptions\", [{context: this.fragmentContext}]);\n\n        worker.on(\"error\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/html\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/lua_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar LuaHighlightRules = function() {\n\n    var keywords = (\n        \"break|do|else|elseif|end|for|function|if|in|local|repeat|\"+\n         \"return|then|until|while|or|and|not\"\n    );\n\n    var builtinConstants = (\"true|false|nil|_G|_VERSION\");\n\n    var functions = (\n        \"string|xpcall|package|tostring|print|os|unpack|require|\"+\n        \"getfenv|setmetatable|next|assert|tonumber|io|rawequal|\"+\n        \"collectgarbage|getmetatable|module|rawset|math|debug|\"+\n        \"pcall|table|newproxy|type|coroutine|_G|select|gcinfo|\"+\n        \"pairs|rawget|loadstring|ipairs|_VERSION|dofile|setfenv|\"+\n        \"load|error|loadfile|\"+\n\n        \"sub|upper|len|gfind|rep|find|match|char|dump|gmatch|\"+\n        \"reverse|byte|format|gsub|lower|preload|loadlib|loaded|\"+\n        \"loaders|cpath|config|path|seeall|exit|setlocale|date|\"+\n        \"getenv|difftime|remove|time|clock|tmpname|rename|execute|\"+\n        \"lines|write|close|flush|open|output|type|read|stderr|\"+\n        \"stdin|input|stdout|popen|tmpfile|log|max|acos|huge|\"+\n        \"ldexp|pi|cos|tanh|pow|deg|tan|cosh|sinh|random|randomseed|\"+\n        \"frexp|ceil|floor|rad|abs|sqrt|modf|asin|min|mod|fmod|log10|\"+\n        \"atan2|exp|sin|atan|getupvalue|debug|sethook|getmetatable|\"+\n        \"gethook|setmetatable|setlocal|traceback|setfenv|getinfo|\"+\n        \"setupvalue|getlocal|getregistry|getfenv|setn|insert|getn|\"+\n        \"foreachi|maxn|foreach|concat|sort|remove|resume|yield|\"+\n        \"status|wrap|create|running|\"+\n        \"__add|__sub|__mod|__unm|__concat|__lt|__index|__call|__gc|__metatable|\"+\n         \"__mul|__div|__pow|__len|__eq|__le|__newindex|__tostring|__mode|__tonumber\"\n    );\n\n    var stdLibaries = (\"string|package|os|io|math|debug|table|coroutine\");\n\n    var deprecatedIn5152 = (\"setn|foreach|foreachi|gcinfo|log10|maxn\");\n\n    var keywordMapper = this.createKeywordMapper({\n        \"keyword\": keywords,\n        \"support.function\": functions,\n        \"keyword.deprecated\": deprecatedIn5152,\n        \"constant.library\": stdLibaries,\n        \"constant.language\": builtinConstants,\n        \"variable.language\": \"self\"\n    }, \"identifier\");\n\n    var decimalInteger = \"(?:(?:[1-9]\\\\d*)|(?:0))\";\n    var hexInteger = \"(?:0[xX][\\\\dA-Fa-f]+)\";\n    var integer = \"(?:\" + decimalInteger + \"|\" + hexInteger + \")\";\n\n    var fraction = \"(?:\\\\.\\\\d+)\";\n    var intPart = \"(?:\\\\d+)\";\n    var pointFloat = \"(?:(?:\" + intPart + \"?\" + fraction + \")|(?:\" + intPart + \"\\\\.))\";\n    var floatNumber = \"(?:\" + pointFloat + \")\";\n\n    this.$rules = {\n        \"start\" : [{\n            stateName: \"bracketedComment\",\n            onMatch : function(value, currentState, stack){\n                stack.unshift(this.next, value.length - 2, currentState);\n                return \"comment\";\n            },\n            regex : /\\-\\-\\[=*\\[/,\n            next  : [\n                {\n                    onMatch : function(value, currentState, stack) {\n                        if (value.length == stack[1]) {\n                            stack.shift();\n                            stack.shift();\n                            this.next = stack.shift();\n                        } else {\n                            this.next = \"\";\n                        }\n                        return \"comment\";\n                    },\n                    regex : /\\]=*\\]/,\n                    next  : \"start\"\n                }, {\n                    defaultToken : \"comment\"\n                }\n            ]\n        },\n\n        {\n            token : \"comment\",\n            regex : \"\\\\-\\\\-.*$\"\n        },\n        {\n            stateName: \"bracketedString\",\n            onMatch : function(value, currentState, stack){\n                stack.unshift(this.next, value.length, currentState);\n                return \"comment\";\n            },\n            regex : /\\[=*\\[/,\n            next  : [\n                {\n                    onMatch : function(value, currentState, stack) {\n                        if (value.length == stack[1]) {\n                            stack.shift();\n                            stack.shift();\n                            this.next = stack.shift();\n                        } else {\n                            this.next = \"\";\n                        }\n                        return \"comment\";\n                    },\n                    \n                    regex : /\\]=*\\]/,\n                    next  : \"start\"\n                }, {\n                    defaultToken : \"comment\"\n                }\n            ]\n        },\n        {\n            token : \"string\",           // \" string\n            regex : '\"(?:[^\\\\\\\\]|\\\\\\\\.)*?\"'\n        }, {\n            token : \"string\",           // ' string\n            regex : \"'(?:[^\\\\\\\\]|\\\\\\\\.)*?'\"\n        }, {\n            token : \"constant.numeric\", // float\n            regex : floatNumber\n        }, {\n            token : \"constant.numeric\", // integer\n            regex : integer + \"\\\\b\"\n        }, {\n            token : keywordMapper,\n            regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n        }, {\n            token : \"keyword.operator\",\n            regex : \"\\\\+|\\\\-|\\\\*|\\\\/|%|\\\\#|\\\\^|~|<|>|<=|=>|==|~=|=|\\\\:|\\\\.\\\\.\\\\.|\\\\.\\\\.\"\n        }, {\n            token : \"paren.lparen\",\n            regex : \"[\\\\[\\\\(\\\\{]\"\n        }, {\n            token : \"paren.rparen\",\n            regex : \"[\\\\]\\\\)\\\\}]\"\n        }, {\n            token : \"text\",\n            regex : \"\\\\s+|\\\\w+\"\n        } ]\n    };\n    \n    this.normalizeRules();\n}\n\noop.inherits(LuaHighlightRules, TextHighlightRules);\n\nexports.LuaHighlightRules = LuaHighlightRules;\n});\n\nace.define(\"ace/mode/folding/lua\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\n\nvar FoldMode = exports.FoldMode = function() {};\n\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.foldingStartMarker = /\\b(function|then|do|repeat)\\b|{\\s*$|(\\[=*\\[)/;\n    this.foldingStopMarker = /\\bend\\b|^\\s*}|\\]=*\\]/;\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var isStart = this.foldingStartMarker.test(line);\n        var isEnd = this.foldingStopMarker.test(line);\n\n        if (isStart && !isEnd) {\n            var match = line.match(this.foldingStartMarker);\n            if (match[1] == \"then\" && /\\belseif\\b/.test(line))\n                return;\n            if (match[1]) {\n                if (session.getTokenAt(row, match.index + 1).type === \"keyword\")\n                    return \"start\";\n            } else if (match[2]) {\n                var type = session.bgTokenizer.getState(row) || \"\";\n                if (type[0] == \"bracketedComment\" || type[0] == \"bracketedString\")\n                    return \"start\";\n            } else {\n                return \"start\";\n            }\n        }\n        if (foldStyle != \"markbeginend\" || !isEnd || isStart && isEnd)\n            return \"\";\n\n        var match = line.match(this.foldingStopMarker);\n        if (match[0] === \"end\") {\n            if (session.getTokenAt(row, match.index + 1).type === \"keyword\")\n                return \"end\";\n        } else if (match[0][0] === \"]\") {\n            var type = session.bgTokenizer.getState(row - 1) || \"\";\n            if (type[0] == \"bracketedComment\" || type[0] == \"bracketedString\")\n                return \"end\";\n        } else\n            return \"end\";\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var line = session.doc.getLine(row);\n        var match = this.foldingStartMarker.exec(line);\n        if (match) {\n            if (match[1])\n                return this.luaBlock(session, row, match.index + 1);\n\n            if (match[2])\n                return session.getCommentFoldRange(row, match.index + 1);\n\n            return this.openingBracketBlock(session, \"{\", row, match.index);\n        }\n\n        var match = this.foldingStopMarker.exec(line);\n        if (match) {\n            if (match[0] === \"end\") {\n                if (session.getTokenAt(row, match.index + 1).type === \"keyword\")\n                    return this.luaBlock(session, row, match.index + 1);\n            }\n\n            if (match[0][0] === \"]\")\n                return session.getCommentFoldRange(row, match.index + 1);\n\n            return this.closingBracketBlock(session, \"}\", row, match.index + match[0].length);\n        }\n    };\n\n    this.luaBlock = function(session, row, column) {\n        var stream = new TokenIterator(session, row, column);\n        var indentKeywords = {\n            \"function\": 1,\n            \"do\": 1,\n            \"then\": 1,\n            \"elseif\": -1,\n            \"end\": -1,\n            \"repeat\": 1,\n            \"until\": -1\n        };\n\n        var token = stream.getCurrentToken();\n        if (!token || token.type != \"keyword\")\n            return;\n\n        var val = token.value;\n        var stack = [val];\n        var dir = indentKeywords[val];\n\n        if (!dir)\n            return;\n\n        var startColumn = dir === -1 ? stream.getCurrentTokenColumn() : session.getLine(row).length;\n        var startRow = row;\n\n        stream.step = dir === -1 ? stream.stepBackward : stream.stepForward;\n        while(token = stream.step()) {\n            if (token.type !== \"keyword\")\n                continue;\n            var level = dir * indentKeywords[token.value];\n\n            if (level > 0) {\n                stack.unshift(token.value);\n            } else if (level <= 0) {\n                stack.shift();\n                if (!stack.length && token.value != \"elseif\")\n                    break;\n                if (level === 0)\n                    stack.unshift(token.value);\n            }\n        }\n\n        var row = stream.getCurrentTokenRow();\n        if (dir === -1)\n            return new Range(row, session.getLine(row).length, startRow, startColumn);\n        else\n            return new Range(startRow, startColumn, row, stream.getCurrentTokenColumn());\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/lua\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/lua_highlight_rules\",\"ace/mode/folding/lua\",\"ace/range\",\"ace/worker/worker_client\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar LuaHighlightRules = require(\"./lua_highlight_rules\").LuaHighlightRules;\nvar LuaFoldMode = require(\"./folding/lua\").FoldMode;\nvar Range = require(\"../range\").Range;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\n\nvar Mode = function() {\n    this.HighlightRules = LuaHighlightRules;\n    \n    this.foldingRules = new LuaFoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n   \n    this.lineCommentStart = \"--\";\n    this.blockComment = {start: \"--[\", end: \"]--\"};\n    \n    var indentKeywords = {\n        \"function\": 1,\n        \"then\": 1,\n        \"do\": 1,\n        \"else\": 1,\n        \"elseif\": 1,\n        \"repeat\": 1,\n        \"end\": -1,\n        \"until\": -1\n    };\n    var outdentKeywords = [\n        \"else\",\n        \"elseif\",\n        \"end\",\n        \"until\"\n    ];\n\n    function getNetIndentLevel(tokens) {\n        var level = 0;\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            if (token.type == \"keyword\") {\n                if (token.value in indentKeywords) {\n                    level += indentKeywords[token.value];\n                }\n            } else if (token.type == \"paren.lparen\") {\n                level += token.value.length;\n            } else if (token.type == \"paren.rparen\") {\n                level -= token.value.length;\n            }\n        }\n        if (level < 0) {\n            return -1;\n        } else if (level > 0) {\n            return 1;\n        } else {\n            return 0;\n        }\n    }\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var level = 0;\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n\n        if (state == \"start\") {\n            level = getNetIndentLevel(tokens);\n        }\n        if (level > 0) {\n            return indent + tab;\n        } else if (level < 0 && indent.substr(indent.length - tab.length) == tab) {\n            if (!this.checkOutdent(state, line, \"\\n\")) {\n                return indent.substr(0, indent.length - tab.length);\n            }\n        }\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        if (input != \"\\n\" && input != \"\\r\" && input != \"\\r\\n\")\n            return false;\n\n        if (line.match(/^\\s*[\\)\\}\\]]$/))\n            return true;\n\n        var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;\n\n        if (!tokens || !tokens.length)\n            return false;\n\n        return (tokens[0].type == \"keyword\" && outdentKeywords.indexOf(tokens[0].value) != -1);\n    };\n\n    this.autoOutdent = function(state, session, row) {\n        var prevLine = session.getLine(row - 1);\n        var prevIndent = this.$getIndent(prevLine).length;\n        var prevTokens = this.getTokenizer().getLineTokens(prevLine, \"start\").tokens;\n        var tabLength = session.getTabString().length;\n        var expectedIndent = prevIndent + tabLength * getNetIndentLevel(prevTokens);\n        var curIndent = this.$getIndent(session.getLine(row)).length;\n        if (curIndent < expectedIndent) {\n            return;\n        }\n        session.outdentRows(new Range(row, 0, row + 2, 0));\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/lua_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n        \n        worker.on(\"annotate\", function(e) {\n            session.setAnnotations(e.data);\n        });\n        \n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n        \n        return worker;\n    };\n\n    this.$id = \"ace/mode/lua\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/luapage_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\",\"ace/mode/lua_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar LuaHighlightRules = require(\"./lua_highlight_rules\").LuaHighlightRules;\n\nvar LuaPageHighlightRules = function() {\n    HtmlHighlightRules.call(this);\n\n    var startRules = [\n        {\n            token: \"keyword\",\n            regex: \"<\\\\%\\\\=?\",\n            push: \"lua-start\"\n        }, {\n            token: \"keyword\",\n            regex: \"<\\\\?lua\\\\=?\",\n            push: \"lua-start\"\n        }\n    ];\n\n    var endRules = [\n        {\n            token: \"keyword\",\n            regex: \"\\\\%>\",\n            next: \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"\\\\?>\",\n            next: \"pop\"\n        }\n    ];\n\n    this.embedRules(LuaHighlightRules, \"lua-\", endRules, [\"start\"]);\n\n    for (var key in this.$rules)\n        this.$rules[key].unshift.apply(this.$rules[key], startRules);\n\n    this.normalizeRules();\n};\n\noop.inherits(LuaPageHighlightRules, HtmlHighlightRules);\n\nexports.LuaPageHighlightRules = LuaPageHighlightRules;\n\n});\n\nace.define(\"ace/mode/luapage\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/lua\",\"ace/mode/luapage_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar HtmlMode = require(\"./html\").Mode;\nvar LuaMode = require(\"./lua\").Mode;\nvar LuaPageHighlightRules = require(\"./luapage_highlight_rules\").LuaPageHighlightRules;\n\nvar Mode = function() {\n    HtmlMode.call(this);\n    \n    this.HighlightRules = LuaPageHighlightRules;\n    this.createModeDelegates({\n        \"lua-\": LuaMode\n    });\n};\noop.inherits(Mode, HtmlMode);\n\n(function() {\n    this.$id = \"ace/mode/luapage\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-lucene.js",
    "content": "ace.define(\"ace/mode/lucene_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar LuceneHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"constant.character.negation\",\n                regex : \"[\\\\-]\"\n            }, {\n                token : \"constant.character.interro\",\n                regex : \"[\\\\?]\"\n            }, {\n                token : \"constant.character.asterisk\",\n                regex : \"[\\\\*]\"\n            }, {\n                token: 'constant.character.proximity',\n                regex: '~[0-9]+\\\\b'\n            }, {\n                token : 'keyword.operator',\n                regex: '(?:AND|OR|NOT)\\\\b'\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[\\\\(]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\)]\"\n            }, {\n                token : \"keyword\",\n                regex : \"[\\\\S]+:\"\n            }, {\n                token : \"string\",           // \" string\n                regex : '\".*?\"'\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ]\n    };\n};\n\noop.inherits(LuceneHighlightRules, TextHighlightRules);\n\nexports.LuceneHighlightRules = LuceneHighlightRules;\n});\n\nace.define(\"ace/mode/lucene\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/lucene_highlight_rules\"], function(require, exports, module) {\n'use strict';\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar LuceneHighlightRules = require(\"./lucene_highlight_rules\").LuceneHighlightRules;\n\nvar Mode = function() {\n    this.HighlightRules = LuceneHighlightRules;\n    this.$behaviour = this.$defaultBehaviour;\n};\n\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.$id = \"ace/mode/lucene\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-makefile.js",
    "content": "ace.define(\"ace/mode/sh_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar reservedKeywords = exports.reservedKeywords = (\n        '!|{|}|case|do|done|elif|else|'+\n        'esac|fi|for|if|in|then|until|while|'+\n        '&|;|export|local|read|typeset|unset|'+\n        'elif|select|set|function|declare|readonly'\n    );\n\nvar languageConstructs = exports.languageConstructs = (\n    '[|]|alias|bg|bind|break|builtin|'+\n     'cd|command|compgen|complete|continue|'+\n     'dirs|disown|echo|enable|eval|exec|'+\n     'exit|fc|fg|getopts|hash|help|history|'+\n     'jobs|kill|let|logout|popd|printf|pushd|'+\n     'pwd|return|set|shift|shopt|source|'+\n     'suspend|test|times|trap|type|ulimit|'+\n     'umask|unalias|wait'\n);\n\nvar ShHighlightRules = function() {\n    var keywordMapper = this.createKeywordMapper({\n        \"keyword\": reservedKeywords,\n        \"support.function.builtin\": languageConstructs,\n        \"invalid.deprecated\": \"debugger\"\n    }, \"identifier\");\n\n    var integer = \"(?:(?:[1-9]\\\\d*)|(?:0))\";\n\n    var fraction = \"(?:\\\\.\\\\d+)\";\n    var intPart = \"(?:\\\\d+)\";\n    var pointFloat = \"(?:(?:\" + intPart + \"?\" + fraction + \")|(?:\" + intPart + \"\\\\.))\";\n    var exponentFloat = \"(?:(?:\" + pointFloat + \"|\" +  intPart + \")\" + \")\";\n    var floatNumber = \"(?:\" + exponentFloat + \"|\" + pointFloat + \")\";\n    var fileDescriptor = \"(?:&\" + intPart + \")\";\n\n    var variableName = \"[a-zA-Z_][a-zA-Z0-9_]*\";\n    var variable = \"(?:\" + variableName + \"=)\";\n\n    var builtinVariable = \"(?:\\\\$(?:SHLVL|\\\\$|\\\\!|\\\\?))\";\n\n    var func = \"(?:\" + variableName + \"\\\\s*\\\\(\\\\))\";\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"constant\",\n            regex : /\\\\./\n        }, {\n            token : [\"text\", \"comment\"],\n            regex : /(^|\\s)(#.*)$/\n        }, {\n            token : \"string.start\",\n            regex : '\"',\n            push : [{\n                token : \"constant.language.escape\",\n                regex : /\\\\(?:[$`\"\\\\]|$)/\n            }, {\n                include : \"variables\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /`/ // TODO highlight `\n            }, {\n                token : \"string.end\",\n                regex : '\"',\n                next: \"pop\"\n            }, {\n                defaultToken: \"string\"\n            }]\n        }, {\n            token : \"string\",\n            regex : \"\\\\$'\",\n            push : [{\n                token : \"constant.language.escape\",\n                regex : /\\\\(?:[abeEfnrtv\\\\'\"]|x[a-fA-F\\d]{1,2}|u[a-fA-F\\d]{4}([a-fA-F\\d]{4})?|c.|\\d{1,3})/\n            }, {\n                token : \"string\",\n                regex : \"'\",\n                next: \"pop\"\n            }, {\n                defaultToken: \"string\"\n            }]\n        }, {\n            regex : \"<<<\",\n            token : \"keyword.operator\"\n        }, {\n            stateName: \"heredoc\",\n            regex : \"(<<-?)(\\\\s*)(['\\\"`]?)([\\\\w\\\\-]+)(['\\\"`]?)\",\n            onMatch : function(value, currentState, stack) {\n                var next = value[2] == '-' ? \"indentedHeredoc\" : \"heredoc\";\n                var tokens = value.split(this.splitRegex);\n                stack.push(next, tokens[4]);\n                return [\n                    {type:\"constant\", value: tokens[1]},\n                    {type:\"text\", value: tokens[2]},\n                    {type:\"string\", value: tokens[3]},\n                    {type:\"support.class\", value: tokens[4]},\n                    {type:\"string\", value: tokens[5]}\n                ];\n            },\n            rules: {\n                heredoc: [{\n                    onMatch:  function(value, currentState, stack) {\n                        if (value === stack[1]) {\n                            stack.shift();\n                            stack.shift();\n                            this.next = stack[0] || \"start\";\n                            return \"support.class\";\n                        }\n                        this.next = \"\";\n                        return \"string\";\n                    },\n                    regex: \".*$\",\n                    next: \"start\"\n                }],\n                indentedHeredoc: [{\n                    token: \"string\",\n                    regex: \"^\\t+\"\n                }, {\n                    onMatch:  function(value, currentState, stack) {\n                        if (value === stack[1]) {\n                            stack.shift();\n                            stack.shift();\n                            this.next = stack[0] || \"start\";\n                            return \"support.class\";\n                        }\n                        this.next = \"\";\n                        return \"string\";\n                    },\n                    regex: \".*$\",\n                    next: \"start\"\n                }]\n            }\n        }, {\n            regex : \"$\",\n            token : \"empty\",\n            next : function(currentState, stack) {\n                if (stack[0] === \"heredoc\" || stack[0] === \"indentedHeredoc\")\n                    return stack[0];\n                return currentState;\n            }\n        }, {\n            token : [\"keyword\", \"text\", \"text\", \"text\", \"variable\"],\n            regex : /(declare|local|readonly)(\\s+)(?:(-[fixar]+)(\\s+))?([a-zA-Z_][a-zA-Z0-9_]*\\b)/\n        }, {\n            token : \"variable.language\",\n            regex : builtinVariable\n        }, {\n            token : \"variable\",\n            regex : variable\n        }, {\n            include : \"variables\"\n        }, {\n            token : \"support.function\",\n            regex : func\n        }, {\n            token : \"support.function\",\n            regex : fileDescriptor\n        }, {\n            token : \"string\",           // ' string\n            start : \"'\", end : \"'\"\n        }, {\n            token : \"constant.numeric\", // float\n            regex : floatNumber\n        }, {\n            token : \"constant.numeric\", // integer\n            regex : integer + \"\\\\b\"\n        }, {\n            token : keywordMapper,\n            regex : \"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\"\n        }, {\n            token : \"keyword.operator\",\n            regex : \"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|~|<|>|<=|=>|=|!=|[%&|`]\"\n        }, {\n            token : \"punctuation.operator\",\n            regex : \";\"\n        }, {\n            token : \"paren.lparen\",\n            regex : \"[\\\\[\\\\(\\\\{]\"\n        }, {\n            token : \"paren.rparen\",\n            regex : \"[\\\\]]\"\n        }, {\n            token : \"paren.rparen\",\n            regex : \"[\\\\)\\\\}]\",\n            next : \"pop\"\n        }],\n        variables: [{\n            token : \"variable\",\n            regex : /(\\$)(\\w+)/\n        }, {\n            token : [\"variable\", \"paren.lparen\"],\n            regex : /(\\$)(\\()/,\n            push : \"start\"\n        }, {\n            token : [\"variable\", \"paren.lparen\", \"keyword.operator\", \"variable\", \"keyword.operator\"],\n            regex : /(\\$)(\\{)([#!]?)(\\w+|[*@#?\\-$!0_])(:[?+\\-=]?|##?|%%?|,,?\\/|\\^\\^?)?/,\n            push : \"start\"\n        }, {\n            token : \"variable\",\n            regex : /\\$[*@#?\\-$!0_]/\n        }, {\n            token : [\"variable\", \"paren.lparen\"],\n            regex : /(\\$)(\\{)/,\n            push : \"start\"\n        }]\n    };\n    \n    this.normalizeRules();\n};\n\noop.inherits(ShHighlightRules, TextHighlightRules);\n\nexports.ShHighlightRules = ShHighlightRules;\n});\n\nace.define(\"ace/mode/makefile_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/sh_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar ShHighlightFile = require(\"./sh_highlight_rules\");\n\nvar MakefileHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"keyword\": ShHighlightFile.reservedKeywords,\n        \"support.function.builtin\": ShHighlightFile.languageConstructs,\n        \"invalid.deprecated\": \"debugger\"\n    }, \"string\");\n\n    this.$rules = \n        {\n    \"start\": [\n        {\n            token: \"string.interpolated.backtick.makefile\",\n            regex: \"`\",\n            next: \"shell-start\"\n        },\n        {\n            token: \"punctuation.definition.comment.makefile\",\n            regex: /#(?=.)/,\n            next: \"comment\"\n        },\n        {\n            token: [ \"keyword.control.makefile\"],\n            regex: \"^(?:\\\\s*\\\\b)(\\\\-??include|ifeq|ifneq|ifdef|ifndef|else|endif|vpath|export|unexport|define|endef|override)(?:\\\\b)\"\n        },\n        {// ^([^\\t ]+(\\s[^\\t ]+)*:(?!\\=))\\s*.*\n            token: [\"entity.name.function.makefile\", \"text\"],\n            regex: \"^([^\\\\t ]+(?:\\\\s[^\\\\t ]+)*:)(\\\\s*.*)\"\n        }\n    ],\n    \"comment\": [\n        {\n            token : \"punctuation.definition.comment.makefile\",\n            regex : /.+\\\\/\n        },\n        {\n            token : \"punctuation.definition.comment.makefile\",\n            regex : \".+\",\n            next  : \"start\"\n        }\n    ],\n    \"shell-start\": [\n        {\n            token: keywordMapper,\n            regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n        }, \n        {\n            token: \"string\",\n            regex : \"\\\\w+\"\n        }, \n        {\n            token : \"string.interpolated.backtick.makefile\",\n            regex : \"`\",\n            next  : \"start\"\n        }\n    ]\n}\n\n};\n\noop.inherits(MakefileHighlightRules, TextHighlightRules);\n\nexports.MakefileHighlightRules = MakefileHighlightRules;\n});\n\nace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var range = this.indentationBlock(session, row);\n        if (range)\n            return range;\n\n        var re = /\\S/;\n        var line = session.getLine(row);\n        var startLevel = line.search(re);\n        if (startLevel == -1 || line[startLevel] != \"#\")\n            return;\n\n        var startColumn = line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var level = line.search(re);\n\n            if (level == -1)\n                continue;\n\n            if (line[level] != \"#\")\n                break;\n\n            endRow = row;\n        }\n\n        if (endRow > startRow) {\n            var endColumn = session.getLine(endRow).length;\n            return new Range(startRow, startColumn, endRow, endColumn);\n        }\n    };\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var indent = line.search(/\\S/);\n        var next = session.getLine(row + 1);\n        var prev = session.getLine(row - 1);\n        var prevIndent = prev.search(/\\S/);\n        var nextIndent = next.search(/\\S/);\n\n        if (indent == -1) {\n            session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n            return \"\";\n        }\n        if (prevIndent == -1) {\n            if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n                session.foldWidgets[row - 1] = \"\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"start\";\n            }\n        } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n            if (session.getLine(row - 2).search(/\\S/) == -1) {\n                session.foldWidgets[row - 1] = \"start\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"\";\n            }\n        }\n\n        if (prevIndent!= -1 && prevIndent < indent)\n            session.foldWidgets[row - 1] = \"start\";\n        else\n            session.foldWidgets[row - 1] = \"\";\n\n        if (indent < nextIndent)\n            return \"start\";\n        else\n            return \"\";\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/makefile\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/makefile_highlight_rules\",\"ace/mode/folding/coffee\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar MakefileHighlightRules = require(\"./makefile_highlight_rules\").MakefileHighlightRules;\nvar FoldMode = require(\"./folding/coffee\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = MakefileHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n       \n    this.lineCommentStart = \"#\";    \n    this.$indentWithTabs = true;\n    \n    this.$id = \"ace/mode/makefile\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-markdown.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nvar XmlBehaviour = function () {\n\n    this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '\"' || text == \"'\") {\n            var quote = text;\n            var selected = session.doc.getTextRange(editor.getSelectionRange());\n            if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n                return {\n                    text: quote + selected + quote,\n                    selection: false\n                };\n            }\n\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n                return {\n                    text: \"\",\n                    selection: [1, 1]\n                };\n            }\n\n            if (!token)\n                token = iterator.stepBackward();\n\n            if (!token)\n                return;\n\n            while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n                token = iterator.stepBackward();\n            }\n            var rightSpace = !rightChar || rightChar.match(/\\s/);\n            if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n                return {\n                    text: quote + quote,\n                    selection: [1, 1]\n                };\n            }\n        }\n    });\n\n    this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == selected) {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n\n    this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '>') {\n            var position = editor.getSelectionRange().start;\n            var iterator = new TokenIterator(session, position.row, position.column);\n            var token = iterator.getCurrentToken() || iterator.stepBackward();\n            if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n                return;\n            if (is(token, \"reference.attribute-value\"))\n                return;\n            if (is(token, \"attribute-value\")) {\n                var firstChar = token.value.charAt(0);\n                if (firstChar == '\"' || firstChar == \"'\") {\n                    var lastChar = token.value.charAt(token.value.length - 1);\n                    var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;\n                    if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)\n                        return;\n                }\n            }\n            while (!is(token, \"tag-name\")) {\n                token = iterator.stepBackward();\n                if (token.value == \"<\") {\n                    token = iterator.stepForward();\n                    break;\n                }\n            }\n\n            var tokenRow = iterator.getCurrentTokenRow();\n            var tokenColumn = iterator.getCurrentTokenColumn();\n            if (is(iterator.stepBackward(), \"end-tag-open\"))\n                return;\n\n            var element = token.value;\n            if (tokenRow == position.row)\n                element = element.substring(0, position.column - tokenColumn);\n\n            if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n                 return;\n\n            return {\n               text: \">\" + \"</\" + element + \">\",\n               selection: [1, 1]\n            };\n        }\n    });\n\n    this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == \"\\n\") {\n            var cursor = editor.getCursorPosition();\n            var line = session.getLine(cursor.row);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (token && token.type.indexOf(\"tag-close\") !== -1) {\n                if (token.value == \"/>\")\n                    return;\n                while (token && token.type.indexOf(\"tag-name\") === -1) {\n                    token = iterator.stepBackward();\n                }\n\n                if (!token) {\n                    return;\n                }\n\n                var tag = token.value;\n                var row = iterator.getCurrentTokenRow();\n                token = iterator.stepBackward();\n                if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n                    return;\n                }\n\n                if (this.voidElements && !this.voidElements[tag]) {\n                    var nextToken = session.getTokenAt(cursor.row, cursor.column+1);\n                    var line = session.getLine(row);\n                    var nextIndent = this.$getIndent(line);\n                    var indent = nextIndent + session.getTabString();\n\n                    if (nextToken && nextToken.value === \"</\") {\n                        return {\n                            text: \"\\n\" + indent + \"\\n\" + nextIndent,\n                            selection: [1, indent.length, 1, indent.length]\n                        };\n                    } else {\n                        return {\n                            text: \"\\n\" + indent\n                        };\n                    }\n                }\n            }\n        }\n    });\n\n};\n\noop.inherits(XmlBehaviour, Behaviour);\n\nexports.XmlBehaviour = XmlBehaviour;\n});\n\nace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar lang = require(\"../../lib/lang\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalEndTags) {\n    BaseFoldMode.call(this);\n    this.voidElements = voidElements || {};\n    this.optionalEndTags = oop.mixin({}, this.voidElements);\n    if (optionalEndTags)\n        oop.mixin(this.optionalEndTags, optionalEndTags);\n    \n};\noop.inherits(FoldMode, BaseFoldMode);\n\nvar Tag = function() {\n    this.tagName = \"\";\n    this.closing = false;\n    this.selfClosing = false;\n    this.start = {row: 0, column: 0};\n    this.end = {row: 0, column: 0};\n};\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\n(function() {\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var tag = this._getFirstTagInLine(session, row);\n\n        if (!tag)\n            return \"\";\n\n        if (tag.closing || (!tag.tagName && tag.selfClosing))\n            return foldStyle == \"markbeginend\" ? \"end\" : \"\";\n\n        if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n            return \"\";\n\n        if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n            return \"\";\n\n        return \"start\";\n    };\n    this._getFirstTagInLine = function(session, row) {\n        var tokens = session.getTokens(row);\n        var tag = new Tag();\n\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            if (is(token, \"tag-open\")) {\n                tag.end.column = tag.start.column + token.value.length;\n                tag.closing = is(token, \"end-tag-open\");\n                token = tokens[++i];\n                if (!token)\n                    return null;\n                tag.tagName = token.value;\n                tag.end.column += token.value.length;\n                for (i++; i < tokens.length; i++) {\n                    token = tokens[i];\n                    tag.end.column += token.value.length;\n                    if (is(token, \"tag-close\")) {\n                        tag.selfClosing = token.value == '/>';\n                        break;\n                    }\n                }\n                return tag;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == '/>';\n                return tag;\n            }\n            tag.start.column += token.value.length;\n        }\n\n        return null;\n    };\n\n    this._findEndTagInLine = function(session, row, tagName, startColumn) {\n        var tokens = session.getTokens(row);\n        var column = 0;\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            column += token.value.length;\n            if (column < startColumn)\n                continue;\n            if (is(token, \"end-tag-open\")) {\n                token = tokens[i + 1];\n                if (token && token.value == tagName)\n                    return true;\n            }\n        }\n        return false;\n    };\n    this._readTagForward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n                iterator.stepForward();\n                return tag;\n            }\n        } while(token = iterator.stepForward());\n\n        return null;\n    };\n    \n    this._readTagBackward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n                iterator.stepBackward();\n                return tag;\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n            }\n        } while(token = iterator.stepBackward());\n\n        return null;\n    };\n    \n    this._pop = function(stack, tag) {\n        while (stack.length) {\n            \n            var top = stack[stack.length-1];\n            if (!tag || top.tagName == tag.tagName) {\n                return stack.pop();\n            }\n            else if (this.optionalEndTags.hasOwnProperty(top.tagName)) {\n                stack.pop();\n                continue;\n            } else {\n                return null;\n            }\n        }\n    };\n    \n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var firstTag = this._getFirstTagInLine(session, row);\n        \n        if (!firstTag)\n            return null;\n        \n        var isBackward = firstTag.closing || firstTag.selfClosing;\n        var stack = [];\n        var tag;\n        \n        if (!isBackward) {\n            var iterator = new TokenIterator(session, row, firstTag.start.column);\n            var start = {\n                row: row,\n                column: firstTag.start.column + firstTag.tagName.length + 2\n            };\n            if (firstTag.start.row == firstTag.end.row)\n                start.column = firstTag.end.column;\n            while (tag = this._readTagForward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0)\n                        return Range.fromPoints(start, tag.start);\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        else {\n            var iterator = new TokenIterator(session, row, firstTag.end.column);\n            var end = {\n                row: row,\n                column: firstTag.start.column\n            };\n            \n            while (tag = this._readTagBackward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (!tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0) {\n                        tag.start.column += tag.tagName.length + 2;\n                        if (tag.start.row == tag.end.row && tag.start.column < tag.end.column)\n                            tag.start.column = tag.end.column;\n                        return Range.fromPoints(tag.start, end);\n                    }\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        \n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar XmlFoldMode = require(\"./folding/xml\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\n\nvar Mode = function() {\n   this.HighlightRules = XmlHighlightRules;\n   this.$behaviour = new XmlBehaviour();\n   this.foldingRules = new XmlFoldMode();\n};\n\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.voidElements = lang.arrayToMap([]);\n\n    this.blockComment = {start: \"<!--\", end: \"-->\"};\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/xml_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"error\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n    \n    this.$id = \"ace/mode/xml\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar propertyMap = {\n    \"background\": {\"#$0\": 1},\n    \"background-color\": {\"#$0\": 1, \"transparent\": 1, \"fixed\": 1},\n    \"background-image\": {\"url('/$0')\": 1},\n    \"background-repeat\": {\"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1},\n    \"background-position\": {\"bottom\":2, \"center\":2, \"left\":2, \"right\":2, \"top\":2, \"inherit\":2},\n    \"background-attachment\": {\"scroll\": 1, \"fixed\": 1},\n    \"background-size\": {\"cover\": 1, \"contain\": 1},\n    \"background-clip\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"background-origin\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"border\": {\"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1},\n    \"border-color\": {\"#$0\": 1},\n    \"border-style\": {\"solid\":2, \"dashed\":2, \"dotted\":2, \"double\":2, \"groove\":2, \"hidden\":2, \"inherit\":2, \"inset\":2, \"none\":2, \"outset\":2, \"ridged\":2},\n    \"border-collapse\": {\"collapse\": 1, \"separate\": 1},\n    \"bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"clear\": {\"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1},\n    \"color\": {\"#$0\": 1, \"rgb(#$00,0,0)\": 1},\n    \"cursor\": {\"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1},\n    \"display\": {\"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1},\n    \"empty-cells\": {\"show\": 1, \"hide\": 1},\n    \"float\": {\"left\": 1, \"right\": 1, \"none\": 1},\n    \"font-family\": {\"Arial\":2,\"Comic Sans MS\":2,\"Consolas\":2,\"Courier New\":2,\"Courier\":2,\"Georgia\":2,\"Monospace\":2,\"Sans-Serif\":2, \"Segoe UI\":2,\"Tahoma\":2,\"Times New Roman\":2,\"Trebuchet MS\":2,\"Verdana\": 1},\n    \"font-size\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"font-weight\": {\"bold\": 1, \"normal\": 1},\n    \"font-style\": {\"italic\": 1, \"normal\": 1},\n    \"font-variant\": {\"normal\": 1, \"small-caps\": 1},\n    \"height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"letter-spacing\": {\"normal\": 1},\n    \"line-height\": {\"normal\": 1},\n    \"list-style-type\": {\"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1},\n    \"margin\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"overflow\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-x\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-y\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"padding\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"page-break-after\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"page-break-before\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"position\": {\"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1},\n    \"right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"table-layout\": {\"fixed\": 1, \"auto\": 1},\n    \"text-decoration\": {\"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1},\n    \"text-align\": {\"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1},\n    \"text-transform\": {\"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1},\n    \"top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"vertical-align\": {\"top\": 1, \"bottom\": 1},\n    \"visibility\": {\"hidden\": 1, \"visible\": 1},\n    \"white-space\": {\"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1},\n    \"width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"word-spacing\": {\"normal\": 1},\n    \"filter\": {\"alpha(opacity=$0100)\": 1},\n\n    \"text-shadow\": {\"$02px 2px 2px #777\": 1},\n    \"text-overflow\": {\"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1},\n    \"-moz-border-radius\": 1,\n    \"-moz-border-radius-topright\": 1,\n    \"-moz-border-radius-bottomright\": 1,\n    \"-moz-border-radius-topleft\": 1,\n    \"-moz-border-radius-bottomleft\": 1,\n    \"-webkit-border-radius\": 1,\n    \"-webkit-border-top-right-radius\": 1,\n    \"-webkit-border-top-left-radius\": 1,\n    \"-webkit-border-bottom-right-radius\": 1,\n    \"-webkit-border-bottom-left-radius\": 1,\n    \"-moz-box-shadow\": 1,\n    \"-webkit-box-shadow\": 1,\n    \"transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-moz-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-webkit-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\n\nvar CssCompletions = function() {\n\n};\n\n(function() {\n\n    this.completionsDefined = false;\n\n    this.defineCompletions = function() {\n        if (document) {\n            var style = document.createElement('c').style;\n\n            for (var i in style) {\n                if (typeof style[i] !== 'string')\n                    continue;\n\n                var name = i.replace(/[A-Z]/g, function(x) {\n                    return '-' + x.toLowerCase();\n                });\n\n                if (!propertyMap.hasOwnProperty(name))\n                    propertyMap[name] = 1;\n            }\n        }\n\n        this.completionsDefined = true;\n    }\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        if (!this.completionsDefined) {\n            this.defineCompletions();\n        }\n\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (state==='ruleset'){\n            var line = session.getLine(pos.row).substr(0, pos.column);\n            if (/:[^;]+$/.test(line)) {\n                /([\\w\\-]+):[^:]*$/.test(line);\n\n                return this.getPropertyValueCompletions(state, session, pos, prefix);\n            } else {\n                return this.getPropertyCompletions(state, session, pos, prefix);\n            }\n        }\n\n        return [];\n    };\n\n    this.getPropertyCompletions = function(state, session, pos, prefix) {\n        var properties = Object.keys(propertyMap);\n        return properties.map(function(property){\n            return {\n                caption: property,\n                snippet: property + ': $0',\n                meta: \"property\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getPropertyValueCompletions = function(state, session, pos, prefix) {\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n\n        if (!property)\n            return [];\n        var values = [];\n        if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n            values = Object.keys(propertyMap[property]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"property value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(CssCompletions.prototype);\n\nexports.CssCompletions = CssCompletions;\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar CssBehaviour = function () {\n\n    this.inherit(CstyleBehaviour);\n\n    this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(cursor.row);\n                var rightChar = line.substring(cursor.column, cursor.column + 1);\n                if (rightChar === ':') {\n                    return {\n                       text: '',\n                       selection: [1, 1]\n                    }\n                }\n                if (!line.substring(cursor.column).match(/^\\s*;/)) {\n                    return {\n                       text: ':;',\n                       selection: [1, 1]\n                    }\n                }\n            }\n        }\n    });\n\n    this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && selected === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(range.start.row);\n                var rightChar = line.substring(range.end.column, range.end.column + 1);\n                if (rightChar === ';') {\n                    range.end.column ++;\n                    return range;\n                }\n            }\n        }\n    });\n\n    this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ';') {\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar === ';') {\n                return {\n                   text: '',\n                   selection: [1, 1]\n                }\n            }\n        }\n    });\n\n}\noop.inherits(CssBehaviour, CstyleBehaviour);\n\nexports.CssBehaviour = CssBehaviour;\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = CssHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CssBehaviour();\n    this.$completer = new CssCompletions();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.foldingRules = \"cStyle\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        var match = line.match(/^.*\\{\\s*$/);\n        if (match) {\n            indent += tab;\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/css\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n    a           : 'anchor',\n    button \t    : 'form',\n    form        : 'form',\n    img         : 'image',\n    input       : 'form',\n    label       : 'form',\n    option      : 'form',\n    script      : 'script',\n    select      : 'form',\n    textarea    : 'form',\n    style       : 'style',\n    table       : 'table',\n    tbody       : 'table',\n    td          : 'table',\n    tfoot       : 'table',\n    th          : 'table',\n    tr          : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.addRules({\n        attributes: [{\n            include : \"tag_whitespace\"\n        }, {\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"[-_a-zA-Z0-9:.]+\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\",\n            push : [{\n                include: \"tag_whitespace\"\n            }, {\n                token : \"string.unquoted.attribute-value.html\",\n                regex : \"[^<>='\\\"`\\\\s]+\",\n                next : \"pop\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"pop\"\n            }]\n        }, {\n            include : \"attribute_value\"\n        }],\n        tag: [{\n            token : function(start, tag) {\n                var group = tagMap[tag];\n                return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                    \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n            },\n            regex : \"(</?)([-_a-zA-Z0-9:.]+)\",\n            next: \"tag_stuff\"\n        }],\n        tag_stuff: [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n        ]\n    });\n\n    this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"js-\", \"script\");\n\n    if (this.constructor === HtmlHighlightRules)\n        this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(defaultMode, subModes) {\n    this.defaultMode = defaultMode;\n    this.subModes = subModes;\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n\n    this.$getMode = function(state) {\n        if (typeof state != \"string\") \n            state = state[0];\n        for (var key in this.subModes) {\n            if (state.indexOf(key) === 0)\n                return this.subModes[key];\n        }\n        return null;\n    };\n    \n    this.$tryMode = function(state, session, foldStyle, row) {\n        var mode = this.$getMode(state);\n        return (mode ? mode.getFoldWidget(session, foldStyle, row) : \"\");\n    };\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        return (\n            this.$tryMode(session.getState(row-1), session, foldStyle, row) ||\n            this.$tryMode(session.getState(row), session, foldStyle, row) ||\n            this.defaultMode.getFoldWidget(session, foldStyle, row)\n        );\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var mode = this.$getMode(session.getState(row-1));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.$getMode(session.getState(row));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.defaultMode;\n        \n        return mode.getFoldWidgetRange(session, foldStyle, row);\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar MixedFoldMode = require(\"./mixed\").FoldMode;\nvar XmlFoldMode = require(\"./xml\").FoldMode;\nvar CStyleFoldMode = require(\"./cstyle\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalTags) {\n    MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), {\n        \"js-\": new CStyleFoldMode(),\n        \"css-\": new CStyleFoldMode()\n    });\n};\n\noop.inherits(FoldMode, MixedFoldMode);\n\n});\n\nace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\n\nvar commonAttributes = [\n    \"accesskey\",\n    \"class\",\n    \"contenteditable\",\n    \"contextmenu\",\n    \"dir\",\n    \"draggable\",\n    \"dropzone\",\n    \"hidden\",\n    \"id\",\n    \"inert\",\n    \"itemid\",\n    \"itemprop\",\n    \"itemref\",\n    \"itemscope\",\n    \"itemtype\",\n    \"lang\",\n    \"spellcheck\",\n    \"style\",\n    \"tabindex\",\n    \"title\",\n    \"translate\"\n];\n\nvar eventAttributes = [\n    \"onabort\",\n    \"onblur\",\n    \"oncancel\",\n    \"oncanplay\",\n    \"oncanplaythrough\",\n    \"onchange\",\n    \"onclick\",\n    \"onclose\",\n    \"oncontextmenu\",\n    \"oncuechange\",\n    \"ondblclick\",\n    \"ondrag\",\n    \"ondragend\",\n    \"ondragenter\",\n    \"ondragleave\",\n    \"ondragover\",\n    \"ondragstart\",\n    \"ondrop\",\n    \"ondurationchange\",\n    \"onemptied\",\n    \"onended\",\n    \"onerror\",\n    \"onfocus\",\n    \"oninput\",\n    \"oninvalid\",\n    \"onkeydown\",\n    \"onkeypress\",\n    \"onkeyup\",\n    \"onload\",\n    \"onloadeddata\",\n    \"onloadedmetadata\",\n    \"onloadstart\",\n    \"onmousedown\",\n    \"onmousemove\",\n    \"onmouseout\",\n    \"onmouseover\",\n    \"onmouseup\",\n    \"onmousewheel\",\n    \"onpause\",\n    \"onplay\",\n    \"onplaying\",\n    \"onprogress\",\n    \"onratechange\",\n    \"onreset\",\n    \"onscroll\",\n    \"onseeked\",\n    \"onseeking\",\n    \"onselect\",\n    \"onshow\",\n    \"onstalled\",\n    \"onsubmit\",\n    \"onsuspend\",\n    \"ontimeupdate\",\n    \"onvolumechange\",\n    \"onwaiting\"\n];\n\nvar globalAttributes = commonAttributes.concat(eventAttributes);\n\nvar attributeMap = {\n    \"html\": {\"manifest\": 1},\n    \"head\": {},\n    \"title\": {},\n    \"base\": {\"href\": 1, \"target\": 1},\n    \"link\": {\"href\": 1, \"hreflang\": 1, \"rel\": {\"stylesheet\": 1, \"icon\": 1}, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"type\": {\"text/css\": 1, \"image/png\": 1, \"image/jpeg\": 1, \"image/gif\": 1}, \"sizes\": 1},\n    \"meta\": {\"http-equiv\": {\"content-type\": 1}, \"name\": {\"description\": 1, \"keywords\": 1}, \"content\": {\"text/html; charset=UTF-8\": 1}, \"charset\": 1},\n    \"style\": {\"type\": 1, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"scoped\": 1},\n    \"script\": {\"charset\": 1, \"type\": {\"text/javascript\": 1}, \"src\": 1, \"defer\": 1, \"async\": 1},\n    \"noscript\": {\"href\": 1},\n    \"body\": {\"onafterprint\": 1, \"onbeforeprint\": 1, \"onbeforeunload\": 1, \"onhashchange\": 1, \"onmessage\": 1, \"onoffline\": 1, \"onpopstate\": 1, \"onredo\": 1, \"onresize\": 1, \"onstorage\": 1, \"onundo\": 1, \"onunload\": 1},\n    \"section\": {},\n    \"nav\": {},\n    \"article\": {\"pubdate\": 1},\n    \"aside\": {},\n    \"h1\": {},\n    \"h2\": {},\n    \"h3\": {},\n    \"h4\": {},\n    \"h5\": {},\n    \"h6\": {},\n    \"header\": {},\n    \"footer\": {},\n    \"address\": {},\n    \"main\": {},\n    \"p\": {},\n    \"hr\": {},\n    \"pre\": {},\n    \"blockquote\": {\"cite\": 1},\n    \"ol\": {\"start\": 1, \"reversed\": 1},\n    \"ul\": {},\n    \"li\": {\"value\": 1},\n    \"dl\": {},\n    \"dt\": {},\n    \"dd\": {},\n    \"figure\": {},\n    \"figcaption\": {},\n    \"div\": {},\n    \"a\": {\"href\": 1, \"target\": {\"_blank\": 1, \"top\": 1}, \"ping\": 1, \"rel\": {\"nofollow\": 1, \"alternate\": 1, \"author\": 1, \"bookmark\": 1, \"help\": 1, \"license\": 1, \"next\": 1, \"noreferrer\": 1, \"prefetch\": 1, \"prev\": 1, \"search\": 1, \"tag\": 1}, \"media\": 1, \"hreflang\": 1, \"type\": 1},\n    \"em\": {},\n    \"strong\": {},\n    \"small\": {},\n    \"s\": {},\n    \"cite\": {},\n    \"q\": {\"cite\": 1},\n    \"dfn\": {},\n    \"abbr\": {},\n    \"data\": {},\n    \"time\": {\"datetime\": 1},\n    \"code\": {},\n    \"var\": {},\n    \"samp\": {},\n    \"kbd\": {},\n    \"sub\": {},\n    \"sup\": {},\n    \"i\": {},\n    \"b\": {},\n    \"u\": {},\n    \"mark\": {},\n    \"ruby\": {},\n    \"rt\": {},\n    \"rp\": {},\n    \"bdi\": {},\n    \"bdo\": {},\n    \"span\": {},\n    \"br\": {},\n    \"wbr\": {},\n    \"ins\": {\"cite\": 1, \"datetime\": 1},\n    \"del\": {\"cite\": 1, \"datetime\": 1},\n    \"img\": {\"alt\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"usemap\": 1, \"ismap\": 1},\n    \"iframe\": {\"name\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"sandbox\": {\"allow-same-origin\": 1, \"allow-top-navigation\": 1, \"allow-forms\": 1, \"allow-scripts\": 1}, \"seamless\": {\"seamless\": 1}},\n    \"embed\": {\"src\": 1, \"height\": 1, \"width\": 1, \"type\": 1},\n    \"object\": {\"param\": 1, \"data\": 1, \"type\": 1, \"height\" : 1, \"width\": 1, \"usemap\": 1, \"name\": 1, \"form\": 1, \"classid\": 1},\n    \"param\": {\"name\": 1, \"value\": 1},\n    \"video\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"width\": 1, \"height\": 1, \"poster\": 1, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1}},\n    \"audio\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1 }},\n    \"source\": {\"src\": 1, \"type\": 1, \"media\": 1},\n    \"track\": {\"kind\": 1, \"src\": 1, \"srclang\": 1, \"label\": 1, \"default\": 1},\n    \"canvas\": {\"width\": 1, \"height\": 1},\n    \"map\": {\"name\": 1},\n    \"area\": {\"shape\": 1, \"coords\": 1, \"href\": 1, \"hreflang\": 1, \"alt\": 1, \"target\": 1, \"media\": 1, \"rel\": 1, \"ping\": 1, \"type\": 1},\n    \"svg\": {},\n    \"math\": {},\n    \"table\": {\"summary\": 1},\n    \"caption\": {},\n    \"colgroup\": {\"span\": 1},\n    \"col\": {\"span\": 1},\n    \"tbody\": {},\n    \"thead\": {},\n    \"tfoot\": {},\n    \"tr\": {},\n    \"td\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1},\n    \"th\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1, \"scope\": 1},\n    \"form\": {\"accept-charset\": 1, \"action\": 1, \"autocomplete\": 1, \"enctype\": {\"multipart/form-data\": 1, \"application/x-www-form-urlencoded\": 1}, \"method\": {\"get\": 1, \"post\": 1}, \"name\": 1, \"novalidate\": 1, \"target\": {\"_blank\": 1, \"top\": 1}},\n    \"fieldset\": {\"disabled\": 1, \"form\": 1, \"name\": 1},\n    \"legend\": {},\n    \"label\": {\"form\": 1, \"for\": 1},\n    \"input\": {\n        \"type\": {\"text\": 1, \"password\": 1, \"hidden\": 1, \"checkbox\": 1, \"submit\": 1, \"radio\": 1, \"file\": 1, \"button\": 1, \"reset\": 1, \"image\": 31, \"color\": 1, \"date\": 1, \"datetime\": 1, \"datetime-local\": 1, \"email\": 1, \"month\": 1, \"number\": 1, \"range\": 1, \"search\": 1, \"tel\": 1, \"time\": 1, \"url\": 1, \"week\": 1},\n        \"accept\": 1, \"alt\": 1, \"autocomplete\": {\"on\": 1, \"off\": 1}, \"autofocus\": {\"autofocus\": 1}, \"checked\": {\"checked\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": {\"application/x-www-form-urlencoded\": 1, \"multipart/form-data\": 1, \"text/plain\": 1}, \"formmethod\": {\"get\": 1, \"post\": 1}, \"formnovalidate\": {\"formnovalidate\": 1}, \"formtarget\": {\"_blank\": 1, \"_self\": 1, \"_parent\": 1, \"_top\": 1}, \"height\": 1, \"list\": 1, \"max\": 1, \"maxlength\": 1, \"min\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"pattern\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"size\": 1, \"src\": 1, \"step\": 1, \"width\": 1, \"files\": 1, \"value\": 1},\n    \"button\": {\"autofocus\": 1, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": 1, \"formmethod\": 1, \"formnovalidate\": 1, \"formtarget\": 1, \"name\": 1, \"value\": 1, \"type\": {\"button\": 1, \"submit\": 1}},\n    \"select\": {\"autofocus\": 1, \"disabled\": 1, \"form\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"size\": 1, \"readonly\":{\"readonly\": 1}},\n    \"datalist\": {},\n    \"optgroup\": {\"disabled\": 1, \"label\": 1},\n    \"option\": {\"disabled\": 1, \"selected\": 1, \"label\": 1, \"value\": 1},\n    \"textarea\": {\"autofocus\": {\"autofocus\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"maxlength\": 1, \"name\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"rows\": 1, \"cols\": 1, \"wrap\": {\"on\": 1, \"off\": 1, \"hard\": 1, \"soft\": 1}},\n    \"keygen\": {\"autofocus\": 1, \"challenge\": {\"challenge\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"keytype\": {\"rsa\": 1, \"dsa\": 1, \"ec\": 1}, \"name\": 1},\n    \"output\": {\"for\": 1, \"form\": 1, \"name\": 1},\n    \"progress\": {\"value\": 1, \"max\": 1},\n    \"meter\": {\"value\": 1, \"min\": 1, \"max\": 1, \"low\": 1, \"high\": 1, \"optimum\": 1},\n    \"details\": {\"open\": 1},\n    \"summary\": {},\n    \"command\": {\"type\": 1, \"label\": 1, \"icon\": 1, \"disabled\": 1, \"checked\": 1, \"radiogroup\": 1, \"command\": 1},\n    \"menu\": {\"type\": 1, \"label\": 1},\n    \"dialog\": {\"open\": 1}\n};\n\nvar elements = Object.keys(attributeMap);\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nfunction findTagName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"tag-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nfunction findAttributeName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"attribute-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nvar HtmlCompletions = function() {\n\n};\n\n(function() {\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (is(token, \"tag-name\") || is(token, \"tag-open\") || is(token, \"end-tag-open\"))\n            return this.getTagCompletions(state, session, pos, prefix);\n        if (is(token, \"tag-whitespace\") || is(token, \"attribute-name\"))\n            return this.getAttributeCompletions(state, session, pos, prefix);\n        if (is(token, \"attribute-value\"))\n            return this.getAttributeValueCompletions(state, session, pos, prefix);\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        if (/&[a-z]*$/i.test(line))\n            return this.getHTMLEntityCompletions(state, session, pos, prefix);\n\n        return [];\n    };\n\n    this.getTagCompletions = function(state, session, pos, prefix) {\n        return elements.map(function(element){\n            return {\n                value: element,\n                meta: \"tag\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        if (!tagName)\n            return [];\n        var attributes = globalAttributes;\n        if (tagName in attributeMap) {\n            attributes = attributes.concat(Object.keys(attributeMap[tagName]));\n        }\n        return attributes.map(function(attribute){\n            return {\n                caption: attribute,\n                snippet: attribute + '=\"$0\"',\n                meta: \"attribute\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeValueCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        var attributeName = findAttributeName(session, pos);\n        \n        if (!tagName)\n            return [];\n        var values = [];\n        if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === \"object\") {\n            values = Object.keys(attributeMap[tagName][attributeName]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"attribute value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getHTMLEntityCompletions = function(state, session, pos, prefix) {\n        var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;'];\n\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"html entity\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(HtmlCompletions.prototype);\n\nexports.HtmlCompletions = HtmlCompletions;\n});\n\nace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar CssMode = require(\"./css\").Mode;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar HtmlFoldMode = require(\"./folding/html\").FoldMode;\nvar HtmlCompletions = require(\"./html_completions\").HtmlCompletions;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar voidElements = [\"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"menuitem\", \"param\", \"source\", \"track\", \"wbr\"];\nvar optionalEndTags = [\"li\", \"dt\", \"dd\", \"p\", \"rt\", \"rp\", \"optgroup\", \"option\", \"colgroup\", \"td\", \"th\"];\n\nvar Mode = function(options) {\n    this.fragmentContext = options && options.fragmentContext;\n    this.HighlightRules = HtmlHighlightRules;\n    this.$behaviour = new XmlBehaviour();\n    this.$completer = new HtmlCompletions();\n    \n    this.createModeDelegates({\n        \"js-\": JavaScriptMode,\n        \"css-\": CssMode\n    });\n    \n    this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags));\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.blockComment = {start: \"<!--\", end: \"-->\"};\n\n    this.voidElements = lang.arrayToMap(voidElements);\n\n    this.getNextLineIndent = function(state, line, tab) {\n        return this.$getIndent(line);\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return false;\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        if (this.constructor != Mode)\n            return;\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/html_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        if (this.fragmentContext)\n            worker.call(\"setOptions\", [{context: this.fragmentContext}]);\n\n        worker.on(\"error\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/html\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/markdown_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\",\"ace/mode/html_highlight_rules\",\"ace/mode/css_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\n\nvar escaped = function(ch) {\n    return \"(?:[^\" + lang.escapeRegExp(ch) + \"\\\\\\\\]|\\\\\\\\.)*\";\n}\n\nfunction github_embed(tag, prefix) {\n    return { // Github style block\n        token : \"support.function\",\n        regex : \"^\\\\s*```\" + tag + \"\\\\s*$\",\n        push  : prefix + \"start\"\n    };\n}\n\nvar MarkdownHighlightRules = function() {\n    HtmlHighlightRules.call(this);\n\n    this.$rules[\"start\"].unshift({\n        token : \"empty_line\",\n        regex : '^$',\n        next: \"allowBlock\"\n    }, { // h1\n        token: \"markup.heading.1\",\n        regex: \"^=+(?=\\\\s*$)\"\n    }, { // h2\n        token: \"markup.heading.2\",\n        regex: \"^\\\\-+(?=\\\\s*$)\"\n    }, {\n        token : function(value) {\n            return \"markup.heading.\" + value.length;\n        },\n        regex : /^#{1,6}(?=\\s*[^ #]|\\s+#.)/,\n        next : \"header\"\n    },\n       github_embed(\"(?:javascript|js)\", \"jscode-\"),\n       github_embed(\"xml\", \"xmlcode-\"),\n       github_embed(\"html\", \"htmlcode-\"),\n       github_embed(\"css\", \"csscode-\"),\n    { // Github style block\n        token : \"support.function\",\n        regex : \"^\\\\s*```\\\\s*\\\\S*(?:{.*?\\\\})?\\\\s*$\",\n        next  : \"githubblock\"\n    }, { // block quote\n        token : \"string.blockquote\",\n        regex : \"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",\n        next  : \"blockquote\"\n    }, { // HR * - _\n        token : \"constant\",\n        regex : \"^ {0,2}(?:(?: ?\\\\* ?){3,}|(?: ?\\\\- ?){3,}|(?: ?\\\\_ ?){3,})\\\\s*$\",\n        next: \"allowBlock\"\n    }, { // list\n        token : \"markup.list\",\n        regex : \"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",\n        next  : \"listblock-start\"\n    }, {\n        include : \"basic\"\n    });\n\n    this.addRules({\n        \"basic\" : [{\n            token : \"constant.language.escape\",\n            regex : /\\\\[\\\\`*_{}\\[\\]()#+\\-.!]/\n        }, { // code span `\n            token : \"support.function\",\n            regex : \"(`+)(.*?[^`])(\\\\1)\"\n        }, { // reference\n            token : [\"text\", \"constant\", \"text\", \"url\", \"string\", \"text\"],\n            regex : \"^([ ]{0,3}\\\\[)([^\\\\]]+)(\\\\]:\\\\s*)([^ ]+)(\\\\s*(?:[\\\"][^\\\"]+[\\\"])?(\\\\s*))$\"\n        }, { // link by reference\n            token : [\"text\", \"string\", \"text\", \"constant\", \"text\"],\n            regex : \"(\\\\[)(\" + escaped(\"]\") + \")(\\\\]\\\\s*\\\\[)(\"+ escaped(\"]\") + \")(\\\\])\"\n        }, { // link by url\n            token : [\"text\", \"string\", \"text\", \"markup.underline\", \"string\", \"text\"],\n            regex : \"(\\\\[)(\" +                                        // [\n                    escaped(\"]\") +                                    // link text\n                    \")(\\\\]\\\\()\"+                                      // ](\n                    '((?:[^\\\\)\\\\s\\\\\\\\]|\\\\\\\\.|\\\\s(?=[^\"]))*)' +        // href\n                    '(\\\\s*\"' +  escaped('\"') + '\"\\\\s*)?' +            // \"title\"\n                    \"(\\\\))\"                                           // )\n        }, { // strong ** __\n            token : \"string.strong\",\n            regex : \"([*]{2}|[_]{2}(?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"\n        }, { // emphasis * _\n            token : \"string.emphasis\",\n            regex : \"([*]|[_](?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"\n        }, { //\n            token : [\"text\", \"url\", \"text\"],\n            regex : \"(<)(\"+\n                      \"(?:https?|ftp|dict):[^'\\\">\\\\s]+\"+\n                      \"|\"+\n                      \"(?:mailto:)?[-.\\\\w]+\\\\@[-a-z0-9]+(?:\\\\.[-a-z0-9]+)*\\\\.[a-z]+\"+\n                    \")(>)\"\n        }],\n        \"allowBlock\": [\n            {token : \"support.function\", regex : \"^ {4}.+\", next : \"allowBlock\"},\n            {token : \"empty_line\", regex : '^$', next: \"allowBlock\"},\n            {token : \"empty\", regex : \"\", next : \"start\"}\n        ],\n\n        \"header\" : [{\n            regex: \"$\",\n            next : \"start\"\n        }, {\n            include: \"basic\"\n        }, {\n            defaultToken : \"heading\"\n        } ],\n\n        \"listblock-start\" : [{\n            token : \"support.variable\",\n            regex : /(?:\\[[ x]\\])?/,\n            next  : \"listblock\"\n        }],\n\n        \"listblock\" : [ { // Lists only escape on completely blank lines.\n            token : \"empty_line\",\n            regex : \"^$\",\n            next  : \"start\"\n        }, { // list\n            token : \"markup.list\",\n            regex : \"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",\n            next  : \"listblock-start\"\n        }, {\n            include : \"basic\", noEscape: true\n        }, { // Github style block\n            token : \"support.function\",\n            regex : \"^\\\\s*```\\\\s*[a-zA-Z]*(?:{.*?\\\\})?\\\\s*$\",\n            next  : \"githubblock\"\n        }, {\n            defaultToken : \"list\" //do not use markup.list to allow stling leading `*` differntly\n        } ],\n\n        \"blockquote\" : [ { // Blockquotes only escape on blank lines.\n            token : \"empty_line\",\n            regex : \"^\\\\s*$\",\n            next  : \"start\"\n        }, { // block quote\n            token : \"string.blockquote\",\n            regex : \"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",\n            next  : \"blockquote\"\n        }, {\n            include : \"basic\", noEscape: true\n        }, {\n            defaultToken : \"string.blockquote\"\n        } ],\n\n        \"githubblock\" : [ {\n            token : \"support.function\",\n            regex : \"^\\\\s*```\",\n            next  : \"start\"\n        }, {\n            token : \"support.function\",\n            regex : \".+\"\n        } ]\n    });\n\n    this.embedRules(JavaScriptHighlightRules, \"jscode-\", [{\n       token : \"support.function\",\n       regex : \"^\\\\s*```\",\n       next  : \"pop\"\n    }]);\n\n    this.embedRules(HtmlHighlightRules, \"htmlcode-\", [{\n       token : \"support.function\",\n       regex : \"^\\\\s*```\",\n       next  : \"pop\"\n    }]);\n\n    this.embedRules(CssHighlightRules, \"csscode-\", [{\n       token : \"support.function\",\n       regex : \"^\\\\s*```\",\n       next  : \"pop\"\n    }]);\n\n    this.embedRules(XmlHighlightRules, \"xmlcode-\", [{\n       token : \"support.function\",\n       regex : \"^\\\\s*```\",\n       next  : \"pop\"\n    }]);\n\n    this.normalizeRules();\n};\noop.inherits(MarkdownHighlightRules, TextHighlightRules);\n\nexports.MarkdownHighlightRules = MarkdownHighlightRules;\n});\n\nace.define(\"ace/mode/folding/markdown\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    this.foldingStartMarker = /^(?:[=-]+\\s*$|#{1,6} |`{3})/;\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        if (!this.foldingStartMarker.test(line))\n            return \"\";\n\n        if (line[0] == \"`\") {\n            if (session.bgTokenizer.getState(row) == \"start\")\n                return \"end\";\n            return \"start\";\n        }\n\n        return \"start\";\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var startColumn = line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n        if (!line.match(this.foldingStartMarker))\n            return;\n\n        if (line[0] == \"`\") {\n            if (session.bgTokenizer.getState(row) !== \"start\") {\n                while (++row < maxRow) {\n                    line = session.getLine(row);\n                    if (line[0] == \"`\" & line.substring(0, 3) == \"```\")\n                        break;\n                }\n                return new Range(startRow, startColumn, row, 0);\n            } else {\n                while (row -- > 0) {\n                    line = session.getLine(row);\n                    if (line[0] == \"`\" & line.substring(0, 3) == \"```\")\n                        break;\n                }\n                return new Range(row, line.length, startRow, 0);\n            }\n        }\n\n        var token;\n        function isHeading(row) {\n            token = session.getTokens(row)[0];\n            return token && token.type.lastIndexOf(heading, 0) === 0;\n        }\n\n        var heading = \"markup.heading\";\n        function getLevel() {\n            var ch = token.value[0];\n            if (ch == \"=\") return 6;\n            if (ch == \"-\") return 5;\n            return 7 - token.value.search(/[^#]/);\n        }\n\n        if (isHeading(row)) {\n            var startHeadingLevel = getLevel();\n            while (++row < maxRow) {\n                if (!isHeading(row))\n                    continue;\n                var level = getLevel();\n                if (level >= startHeadingLevel)\n                    break;\n            }\n\n            endRow = row - (!token || [\"=\", \"-\"].indexOf(token.value[0]) == -1 ? 1 : 2);\n\n            if (endRow > startRow) {\n                while (endRow > startRow && /^\\s*$/.test(session.getLine(endRow)))\n                    endRow--;\n            }\n\n            if (endRow > startRow) {\n                var endColumn = session.getLine(endRow).length;\n                return new Range(startRow, startColumn, endRow, endColumn);\n            }\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/markdown\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/xml\",\"ace/mode/html\",\"ace/mode/markdown_highlight_rules\",\"ace/mode/folding/markdown\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar XmlMode = require(\"./xml\").Mode;\nvar HtmlMode = require(\"./html\").Mode;\nvar MarkdownHighlightRules = require(\"./markdown_highlight_rules\").MarkdownHighlightRules;\nvar MarkdownFoldMode = require(\"./folding/markdown\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = MarkdownHighlightRules;\n\n    this.createModeDelegates({\n        \"js-\": JavaScriptMode,\n        \"xml-\": XmlMode,\n        \"html-\": HtmlMode\n    });\n\n    this.foldingRules = new MarkdownFoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.type = \"text\";\n    this.blockComment = {start: \"<!--\", end: \"-->\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        if (state == \"listblock\") {\n            var match = /^(\\s*)(?:([-+*])|(\\d+)\\.)(\\s+)/.exec(line);\n            if (!match)\n                return \"\";\n            var marker = match[2];\n            if (!marker)\n                marker = parseInt(match[3], 10) + 1 + \".\";\n            return match[1] + marker + match[4];\n        } else {\n            return this.$getIndent(line);\n        }\n    };\n    this.$id = \"ace/mode/markdown\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-mask.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n    a           : 'anchor',\n    button \t    : 'form',\n    form        : 'form',\n    img         : 'image',\n    input       : 'form',\n    label       : 'form',\n    option      : 'form',\n    script      : 'script',\n    select      : 'form',\n    textarea    : 'form',\n    style       : 'style',\n    table       : 'table',\n    tbody       : 'table',\n    td          : 'table',\n    tfoot       : 'table',\n    th          : 'table',\n    tr          : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.addRules({\n        attributes: [{\n            include : \"tag_whitespace\"\n        }, {\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"[-_a-zA-Z0-9:.]+\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\",\n            push : [{\n                include: \"tag_whitespace\"\n            }, {\n                token : \"string.unquoted.attribute-value.html\",\n                regex : \"[^<>='\\\"`\\\\s]+\",\n                next : \"pop\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"pop\"\n            }]\n        }, {\n            include : \"attribute_value\"\n        }],\n        tag: [{\n            token : function(start, tag) {\n                var group = tagMap[tag];\n                return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                    \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n            },\n            regex : \"(</?)([-_a-zA-Z0-9:.]+)\",\n            next: \"tag_stuff\"\n        }],\n        tag_stuff: [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n        ]\n    });\n\n    this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"js-\", \"script\");\n\n    if (this.constructor === HtmlHighlightRules)\n        this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/markdown_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\",\"ace/mode/html_highlight_rules\",\"ace/mode/css_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\n\nvar escaped = function(ch) {\n    return \"(?:[^\" + lang.escapeRegExp(ch) + \"\\\\\\\\]|\\\\\\\\.)*\";\n}\n\nfunction github_embed(tag, prefix) {\n    return { // Github style block\n        token : \"support.function\",\n        regex : \"^\\\\s*```\" + tag + \"\\\\s*$\",\n        push  : prefix + \"start\"\n    };\n}\n\nvar MarkdownHighlightRules = function() {\n    HtmlHighlightRules.call(this);\n\n    this.$rules[\"start\"].unshift({\n        token : \"empty_line\",\n        regex : '^$',\n        next: \"allowBlock\"\n    }, { // h1\n        token: \"markup.heading.1\",\n        regex: \"^=+(?=\\\\s*$)\"\n    }, { // h2\n        token: \"markup.heading.2\",\n        regex: \"^\\\\-+(?=\\\\s*$)\"\n    }, {\n        token : function(value) {\n            return \"markup.heading.\" + value.length;\n        },\n        regex : /^#{1,6}(?=\\s*[^ #]|\\s+#.)/,\n        next : \"header\"\n    },\n       github_embed(\"(?:javascript|js)\", \"jscode-\"),\n       github_embed(\"xml\", \"xmlcode-\"),\n       github_embed(\"html\", \"htmlcode-\"),\n       github_embed(\"css\", \"csscode-\"),\n    { // Github style block\n        token : \"support.function\",\n        regex : \"^\\\\s*```\\\\s*\\\\S*(?:{.*?\\\\})?\\\\s*$\",\n        next  : \"githubblock\"\n    }, { // block quote\n        token : \"string.blockquote\",\n        regex : \"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",\n        next  : \"blockquote\"\n    }, { // HR * - _\n        token : \"constant\",\n        regex : \"^ {0,2}(?:(?: ?\\\\* ?){3,}|(?: ?\\\\- ?){3,}|(?: ?\\\\_ ?){3,})\\\\s*$\",\n        next: \"allowBlock\"\n    }, { // list\n        token : \"markup.list\",\n        regex : \"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",\n        next  : \"listblock-start\"\n    }, {\n        include : \"basic\"\n    });\n\n    this.addRules({\n        \"basic\" : [{\n            token : \"constant.language.escape\",\n            regex : /\\\\[\\\\`*_{}\\[\\]()#+\\-.!]/\n        }, { // code span `\n            token : \"support.function\",\n            regex : \"(`+)(.*?[^`])(\\\\1)\"\n        }, { // reference\n            token : [\"text\", \"constant\", \"text\", \"url\", \"string\", \"text\"],\n            regex : \"^([ ]{0,3}\\\\[)([^\\\\]]+)(\\\\]:\\\\s*)([^ ]+)(\\\\s*(?:[\\\"][^\\\"]+[\\\"])?(\\\\s*))$\"\n        }, { // link by reference\n            token : [\"text\", \"string\", \"text\", \"constant\", \"text\"],\n            regex : \"(\\\\[)(\" + escaped(\"]\") + \")(\\\\]\\\\s*\\\\[)(\"+ escaped(\"]\") + \")(\\\\])\"\n        }, { // link by url\n            token : [\"text\", \"string\", \"text\", \"markup.underline\", \"string\", \"text\"],\n            regex : \"(\\\\[)(\" +                                        // [\n                    escaped(\"]\") +                                    // link text\n                    \")(\\\\]\\\\()\"+                                      // ](\n                    '((?:[^\\\\)\\\\s\\\\\\\\]|\\\\\\\\.|\\\\s(?=[^\"]))*)' +        // href\n                    '(\\\\s*\"' +  escaped('\"') + '\"\\\\s*)?' +            // \"title\"\n                    \"(\\\\))\"                                           // )\n        }, { // strong ** __\n            token : \"string.strong\",\n            regex : \"([*]{2}|[_]{2}(?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"\n        }, { // emphasis * _\n            token : \"string.emphasis\",\n            regex : \"([*]|[_](?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"\n        }, { //\n            token : [\"text\", \"url\", \"text\"],\n            regex : \"(<)(\"+\n                      \"(?:https?|ftp|dict):[^'\\\">\\\\s]+\"+\n                      \"|\"+\n                      \"(?:mailto:)?[-.\\\\w]+\\\\@[-a-z0-9]+(?:\\\\.[-a-z0-9]+)*\\\\.[a-z]+\"+\n                    \")(>)\"\n        }],\n        \"allowBlock\": [\n            {token : \"support.function\", regex : \"^ {4}.+\", next : \"allowBlock\"},\n            {token : \"empty_line\", regex : '^$', next: \"allowBlock\"},\n            {token : \"empty\", regex : \"\", next : \"start\"}\n        ],\n\n        \"header\" : [{\n            regex: \"$\",\n            next : \"start\"\n        }, {\n            include: \"basic\"\n        }, {\n            defaultToken : \"heading\"\n        } ],\n\n        \"listblock-start\" : [{\n            token : \"support.variable\",\n            regex : /(?:\\[[ x]\\])?/,\n            next  : \"listblock\"\n        }],\n\n        \"listblock\" : [ { // Lists only escape on completely blank lines.\n            token : \"empty_line\",\n            regex : \"^$\",\n            next  : \"start\"\n        }, { // list\n            token : \"markup.list\",\n            regex : \"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",\n            next  : \"listblock-start\"\n        }, {\n            include : \"basic\", noEscape: true\n        }, { // Github style block\n            token : \"support.function\",\n            regex : \"^\\\\s*```\\\\s*[a-zA-Z]*(?:{.*?\\\\})?\\\\s*$\",\n            next  : \"githubblock\"\n        }, {\n            defaultToken : \"list\" //do not use markup.list to allow stling leading `*` differntly\n        } ],\n\n        \"blockquote\" : [ { // Blockquotes only escape on blank lines.\n            token : \"empty_line\",\n            regex : \"^\\\\s*$\",\n            next  : \"start\"\n        }, { // block quote\n            token : \"string.blockquote\",\n            regex : \"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",\n            next  : \"blockquote\"\n        }, {\n            include : \"basic\", noEscape: true\n        }, {\n            defaultToken : \"string.blockquote\"\n        } ],\n\n        \"githubblock\" : [ {\n            token : \"support.function\",\n            regex : \"^\\\\s*```\",\n            next  : \"start\"\n        }, {\n            token : \"support.function\",\n            regex : \".+\"\n        } ]\n    });\n\n    this.embedRules(JavaScriptHighlightRules, \"jscode-\", [{\n       token : \"support.function\",\n       regex : \"^\\\\s*```\",\n       next  : \"pop\"\n    }]);\n\n    this.embedRules(HtmlHighlightRules, \"htmlcode-\", [{\n       token : \"support.function\",\n       regex : \"^\\\\s*```\",\n       next  : \"pop\"\n    }]);\n\n    this.embedRules(CssHighlightRules, \"csscode-\", [{\n       token : \"support.function\",\n       regex : \"^\\\\s*```\",\n       next  : \"pop\"\n    }]);\n\n    this.embedRules(XmlHighlightRules, \"xmlcode-\", [{\n       token : \"support.function\",\n       regex : \"^\\\\s*```\",\n       next  : \"pop\"\n    }]);\n\n    this.normalizeRules();\n};\noop.inherits(MarkdownHighlightRules, TextHighlightRules);\n\nexports.MarkdownHighlightRules = MarkdownHighlightRules;\n});\n\nace.define(\"ace/mode/mask_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/css_highlight_rules\",\"ace/mode/markdown_highlight_rules\",\"ace/mode/html_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nexports.MaskHighlightRules = MaskHighlightRules;\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextRules   = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JSRules     = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar CssRules    = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MDRules     = require(\"./markdown_highlight_rules\").MarkdownHighlightRules;\nvar HTMLRules   = require(\"./html_highlight_rules\").HtmlHighlightRules;\n\nvar token_TAG       = \"keyword.support.constant.language\",\n    token_COMPO     = \"support.function.markup.bold\",\n    token_KEYWORD   = \"keyword\",\n    token_LANG      = \"constant.language\",\n    token_UTIL      = \"keyword.control.markup.italic\",\n    token_ATTR      = \"support.variable.class\",\n    token_PUNKT     = \"keyword.operator\",\n    token_ITALIC    = \"markup.italic\",\n    token_BOLD      = \"markup.bold\",\n    token_LPARE     = \"paren.lparen\",\n    token_RPARE     = \"paren.rparen\";\n\nvar const_FUNCTIONS,\n    const_KEYWORDS,\n    const_CONST,\n    const_TAGS;\n(function(){\n    const_FUNCTIONS = lang.arrayToMap(\n        (\"log\").split(\"|\")\n    );\n    const_CONST = lang.arrayToMap(\n        (\":dualbind|:bind|:import|slot|event|style|html|markdown|md\").split(\"|\")\n    );\n    const_KEYWORDS = lang.arrayToMap(\n        (\"debugger|define|var|if|each|for|of|else|switch|case|with|visible|+if|+each|+for|+switch|+with|+visible|include|import\").split(\"|\")\n    );\n    const_TAGS = lang.arrayToMap(\n        (\"a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|\" + \n         \"big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|\" + \n         \"command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|\" + \n         \"figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|\" + \n         \"header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|\" + \n         \"link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|\" + \n         \"option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|\" + \n         \"small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|\" + \n         \"textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp\").split(\"|\")\n    );\n}());\n\nfunction MaskHighlightRules () {\n\n    this.$rules = {\n        \"start\" : [\n            Token(\"comment\", \"\\\\/\\\\/.*$\"),\n            Token(\"comment\", \"\\\\/\\\\*\", [\n                Token(\"comment\", \".*?\\\\*\\\\/\", \"start\"),\n                Token(\"comment\", \".+\")\n            ]),\n            \n            Blocks.string(\"'''\"),\n            Blocks.string('\"\"\"'),\n            Blocks.string('\"'),\n            Blocks.string(\"'\"),\n            \n            Blocks.syntax(/(markdown|md)\\b/, \"md-multiline\", \"multiline\"),\n            Blocks.syntax(/html\\b/, \"html-multiline\", \"multiline\"),\n            Blocks.syntax(/(slot|event)\\b/, \"js-block\", \"block\"),\n            Blocks.syntax(/style\\b/, \"css-block\", \"block\"),\n            Blocks.syntax(/var\\b/, \"js-statement\", \"attr\"),\n            \n            Blocks.tag(),\n            \n            Token(token_LPARE, \"[[({>]\"),\n            Token(token_RPARE, \"[\\\\])};]\", \"start\"),\n            {\n                caseInsensitive: true\n            }\n        ]\n    };\n    var rules = this;\n    \n    addJavaScript(\"interpolation\", /\\]/, token_RPARE + \".\" + token_ITALIC);\n    addJavaScript(\"statement\", /\\)|}|;/);\n    addJavaScript(\"block\", /\\}/);\n    addCss();\n    addMarkdown();\n    addHtml();\n    \n    function addJavaScript(name, escape, closeType) {\n        var prfx  =  \"js-\" + name + \"-\",\n            rootTokens = name === \"block\" ? [\"start\"] : [\"start\", \"no_regex\"];\n        add(\n            JSRules\n            , prfx\n            , escape\n            , rootTokens\n            , closeType\n        );\n    }\n    function addCss() {\n        add(CssRules, \"css-block-\", /\\}/);\n    }\n    function addMarkdown() {\n        add(MDRules, \"md-multiline-\", /(\"\"\"|''')/, []);\n    }\n    function addHtml() {\n        add(HTMLRules, \"html-multiline-\", /(\"\"\"|''')/);\n    }\n    function add(Rules, strPrfx, rgxEnd, rootTokens, closeType) {\n        var next = \"pop\";\n        var tokens = rootTokens || [ \"start\" ];\n        if (tokens.length === 0) {\n            tokens = null;\n        }\n        if (/block|multiline/.test(strPrfx)) {\n            next = strPrfx + \"end\";\n            rules.$rules[next] = [\n                Token(\"empty\", \"\", \"start\")\n            ];\n        }\n        rules.embedRules(\n            Rules\n            , strPrfx\n            , [ Token(closeType || token_RPARE, rgxEnd, next) ]\n            , tokens\n            , tokens == null ? true : false\n        );\n    }\n\n    this.normalizeRules();\n}\noop.inherits(MaskHighlightRules, TextRules);\n\nvar Blocks = {\n    string: function(str, next){\n        var token = Token(\n            \"string.start\"\n            , str\n            , [\n                Token(token_LPARE + \".\" + token_ITALIC, /~\\[/, Blocks.interpolation()),\n                Token(\"string.end\", str, \"pop\"),\n                {\n                    defaultToken: \"string\"\n                }\n            ]\n            , next\n        );\n        if (str.length === 1){\n            var escaped = Token(\"string.escape\", \"\\\\\\\\\" + str);\n            token.push.unshift(escaped);\n        }\n        return token;\n    },\n    interpolation: function(){\n        return [\n            Token(token_UTIL, /\\s*\\w*\\s*:/),\n            \"js-interpolation-start\"\n        ];\n    },\n    tagHead: function (rgx) {\n      return Token(token_ATTR, rgx, [\n            Token(token_ATTR, /[\\w\\-_]+/),\n            Token(token_LPARE + \".\" + token_ITALIC, /~\\[/, Blocks.interpolation()),\n            Blocks.goUp()\n        ]);\n    },\n    tag: function () {\n        return {\n            token: 'tag',\n            onMatch :  function(value) {\n                if (void 0 !== const_KEYWORDS[value])\n                    return token_KEYWORD;\n                if (void 0 !== const_CONST[value])\n                    return token_LANG;\n                if (void 0 !== const_FUNCTIONS[value])\n                    return \"support.function\";\n                if (void 0 !== const_TAGS[value.toLowerCase()])\n                    return token_TAG;\n                \n                return token_COMPO;\n            },\n            regex : /([@\\w\\-_:+]+)|((^|\\s)(?=\\s*(\\.|#)))/,\n            push: [\n                Blocks.tagHead(/\\./) ,\n                Blocks.tagHead(/#/) ,\n                Blocks.expression(),\n                Blocks.attribute(),\n                \n                Token(token_LPARE, /[;>{]/, \"pop\")\n            ]\n        };\n    },\n    syntax: function(rgx, next, type){\n        return {\n            token: token_LANG,\n            regex : rgx,\n            push: ({\n                \"attr\": [\n                    next + \"-start\",\n                    Token(token_PUNKT, /;/, \"start\")\n                ],\n                \"multiline\": [\n                    Blocks.tagHead(/\\./) ,\n                    Blocks.tagHead(/#/) ,\n                    Blocks.attribute(),\n                    Blocks.expression(),\n                    Token(token_LPARE, /[>\\{]/),\n                    Token(token_PUNKT, /;/, \"start\"),\n                    Token(token_LPARE, /'''|\"\"\"/, [ next + \"-start\" ])\n                ],\n                \"block\": [\n                    Blocks.tagHead(/\\./) ,\n                    Blocks.tagHead(/#/) ,\n                    Blocks.attribute(),\n                    Blocks.expression(),\n                    Token(token_LPARE, /\\{/, [ next + \"-start\" ])\n                ]\n            })[type]\n        };\n    },\n    attribute: function(){\n        return Token(function(value){\n            return  /^x\\-/.test(value)\n                ? token_ATTR + \".\" + token_BOLD\n                : token_ATTR;\n        }, /[\\w_-]+/, [\n            Token(token_PUNKT, /\\s*=\\s*/, [\n                Blocks.string('\"'),\n                Blocks.string(\"'\"),\n                Blocks.word(),\n                Blocks.goUp()\n            ]),\n            Blocks.goUp()\n        ]);\n    },\n    expression: function(){\n        return Token(token_LPARE, /\\(/, [ \"js-statement-start\" ]);\n    },\n    word: function(){\n        return Token(\"string\", /[\\w-_]+/);\n    },\n    goUp: function(){\n        return Token(\"text\", \"\", \"pop\");\n    },\n    goStart: function(){\n        return Token(\"text\", \"\", \"start\");\n    }\n};\n\n\nfunction Token(token, rgx, mix) {\n    var push, next, onMatch;\n    if (arguments.length === 4) {\n        push = mix;\n        next = arguments[3];\n    }\n    else if (typeof mix === \"string\") {\n        next = mix;\n    }\n    else {\n        push = mix;\n    }\n    if (typeof token === \"function\") {\n        onMatch = token;\n        token   = \"empty\";\n    }\n    return {\n        token: token,\n        regex: rgx,\n        push: push,\n        next: next,\n        onMatch: onMatch\n    };\n}\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar CssBehaviour = function () {\n\n    this.inherit(CstyleBehaviour);\n\n    this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(cursor.row);\n                var rightChar = line.substring(cursor.column, cursor.column + 1);\n                if (rightChar === ':') {\n                    return {\n                       text: '',\n                       selection: [1, 1]\n                    }\n                }\n                if (!line.substring(cursor.column).match(/^\\s*;/)) {\n                    return {\n                       text: ':;',\n                       selection: [1, 1]\n                    }\n                }\n            }\n        }\n    });\n\n    this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && selected === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(range.start.row);\n                var rightChar = line.substring(range.end.column, range.end.column + 1);\n                if (rightChar === ';') {\n                    range.end.column ++;\n                    return range;\n                }\n            }\n        }\n    });\n\n    this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ';') {\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar === ';') {\n                return {\n                   text: '',\n                   selection: [1, 1]\n                }\n            }\n        }\n    });\n\n}\noop.inherits(CssBehaviour, CstyleBehaviour);\n\nexports.CssBehaviour = CssBehaviour;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/mask\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/mask_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar MaskHighlightRules = require(\"./mask_highlight_rules\").MaskHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = MaskHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CssBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n   \n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        var match = line.match(/^.*\\{\\s*$/);\n        if (match) {\n            indent += tab;\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.$id = \"ace/mode/mask\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-matlab.js",
    "content": "ace.define(\"ace/mode/matlab_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar MatlabHighlightRules = function() {\n\nvar keywords = (\n        \"break|case|catch|classdef|continue|else|elseif|end|for|function|global|if|otherwise|parfor|persistent|return|spmd|switch|try|while\"\n    );\n\n    var builtinConstants = (\n        \"true|false|inf|Inf|nan|NaN|eps|pi|ans|nargin|nargout|varargin|varargout\"\n    );\n\n    var builtinFunctions = (\n        \"abs|accumarray|acos(?:d|h)?|acot(?:d|h)?|acsc(?:d|h)?|actxcontrol(?:list|select)?|actxGetRunningServer|actxserver|addlistener|addpath|addpref|addtodate|\"+\n\t\t\"airy|align|alim|all|allchild|alpha|alphamap|amd|ancestor|and|angle|annotation|any|area|arrayfun|asec(?:d|h)?|asin(?:d|h)?|assert|assignin|atan(?:2|d|h)?|\" +\n\t\t\"audiodevinfo|audioplayer|audiorecorder|aufinfo|auread|autumn|auwrite|avifile|aviinfo|aviread|axes|axis|balance|bar(?:3|3h|h)?|base2dec|beep|BeginInvoke|bench|\"+\n\t\t\"bessel(?:h|i|j|k|y)|beta|betainc|betaincinv|betaln|bicg|bicgstab|bicgstabl|bin2dec|bitand|bitcmp|bitget|bitmax|bitnot|bitor|bitset|bitshift|bitxor|blanks|blkdiag|\"+\n\t\t\"bone|box|brighten|brush|bsxfun|builddocsearchdb|builtin|bvp4c|bvp5c|bvpget|bvpinit|bvpset|bvpxtend|calendar|calllib|callSoapService|camdolly|cameratoolbar|camlight|\"+\n\t\t\"camlookat|camorbit|campan|campos|camproj|camroll|camtarget|camup|camva|camzoom|cart2pol|cart2sph|cast|cat|caxis|cd|cdf2rdf|cdfepoch|cdfinfo|cdflib(?:.(?:close|closeVar|\"+\n\t\t\"computeEpoch|computeEpoch16|create|createAttr|createVar|delete|deleteAttr|deleteAttrEntry|deleteAttrgEntry|deleteVar|deleteVarRecords|epoch16Breakdown|epochBreakdown|getAttrEntry|\"+\n\t\t\"getAttrgEntry|getAttrMaxEntry|getAttrMaxgEntry|getAttrName|getAttrNum|getAttrScope|getCacheSize|getChecksum|getCompression|getCompressionCacheSize|getConstantNames|\"+\n\t\t\"getConstantValue|getCopyright|getFileBackward|getFormat|getLibraryCopyright|getLibraryVersion|getMajority|getName|getNumAttrEntries|getNumAttrgEntries|getNumAttributes|\"+\n\t\t\"getNumgAttributes|getReadOnlyMode|getStageCacheSize|getValidate|getVarAllocRecords|getVarBlockingFactor|getVarCacheSize|getVarCompression|getVarData|getVarMaxAllocRecNum|\"+\n\t\t\"getVarMaxWrittenRecNum|getVarName|getVarNum|getVarNumRecsWritten|getVarPadValue|getVarRecordData|getVarReservePercent|getVarsMaxWrittenRecNum|getVarSparseRecords|getVersion|\"+\n\t\t\"hyperGetVarData|hyperPutVarData|inquire|inquireAttr|inquireAttrEntry|inquireAttrgEntry|inquireVar|open|putAttrEntry|putAttrgEntry|putVarData|putVarRecordData|renameAttr|\"+\n\t\t\"renameVar|setCacheSize|setChecksum|setCompression|setCompressionCacheSize|setFileBackward|setFormat|setMajority|setReadOnlyMode|setStageCacheSize|setValidate|\"+\n\t\t\"setVarAllocBlockRecords|setVarBlockingFactor|setVarCacheSize|setVarCompression|setVarInitialRecs|setVarPadValue|SetVarReservePercent|setVarsCacheSize|setVarSparseRecords))?|\"+\n\t\t\"cdfread|cdfwrite|ceil|cell2mat|cell2struct|celldisp|cellfun|cellplot|cellstr|cgs|checkcode|checkin|checkout|chol|cholinc|cholupdate|circshift|cla|clabel|class|clc|clear|\"+\n\t\t\"clearvars|clf|clipboard|clock|close|closereq|cmopts|cmpermute|cmunique|colamd|colon|colorbar|colordef|colormap|colormapeditor|colperm|Combine|comet|comet3|commandhistory|\"+\n\t\t\"commandwindow|compan|compass|complex|computer|cond|condeig|condest|coneplot|conj|containers.Map|contour(?:3|c|f|slice)?|contrast|conv|conv2|convhull|convhulln|convn|cool|\"+\n\t\t\"copper|copyfile|copyobj|corrcoef|cos(?:d|h)?|cot(?:d|h)?|cov|cplxpair|cputime|createClassFromWsdl|createSoapMessage|cross|csc(?:d|h)?|csvread|csvwrite|ctranspose|cumprod|\"+\n\t\t\"cumsum|cumtrapz|curl|customverctrl|cylinder|daqread|daspect|datacursormode|datatipinfo|date|datenum|datestr|datetick|datevec|dbclear|dbcont|dbdown|dblquad|dbmex|dbquit|\"+\n\t\t\"dbstack|dbstatus|dbstep|dbstop|dbtype|dbup|dde23|ddeget|ddesd|ddeset|deal|deblank|dec2base|dec2bin|dec2hex|decic|deconv|del2|delaunay|delaunay3|delaunayn|DelaunayTri|delete|\"+\n\t\t\"demo|depdir|depfun|det|detrend|deval|diag|dialog|diary|diff|diffuse|dir|disp|display|dither|divergence|dlmread|dlmwrite|dmperm|doc|docsearch|dos|dot|dragrect|drawnow|dsearch|\"+\n\t\t\"dsearchn|dynamicprops|echo|echodemo|edit|eig|eigs|ellipj|ellipke|ellipsoid|empty|enableNETfromNetworkDrive|enableservice|EndInvoke|enumeration|eomday|eq|erf|erfc|erfcinv|\"+\n\t\t\"erfcx|erfinv|error|errorbar|errordlg|etime|etree|etreeplot|eval|evalc|evalin|event.(?:EventData|listener|PropertyEvent|proplistener)|exifread|exist|exit|exp|expint|expm|\"+\n\t\t\"expm1|export2wsdlg|eye|ezcontour|ezcontourf|ezmesh|ezmeshc|ezplot|ezplot3|ezpolar|ezsurf|ezsurfc|factor|factorial|fclose|feather|feature|feof|ferror|feval|fft|fft2|fftn|\"+\n\t\t\"fftshift|fftw|fgetl|fgets|fieldnames|figure|figurepalette|fileattrib|filebrowser|filemarker|fileparts|fileread|filesep|fill|fill3|filter|filter2|find|findall|findfigs|\"+\n\t\t\"findobj|findstr|finish|fitsdisp|fitsinfo|fitsread|fitswrite|fix|flag|flipdim|fliplr|flipud|floor|flow|fminbnd|fminsearch|fopen|format|fplot|fprintf|frame2im|fread|freqspace|\"+\n\t\t\"frewind|fscanf|fseek|ftell|FTP|full|fullfile|func2str|functions|funm|fwrite|fzero|gallery|gamma|gammainc|gammaincinv|gammaln|gca|gcbf|gcbo|gcd|gcf|gco|ge|genpath|genvarname|\"+\n\t\t\"get|getappdata|getenv|getfield|getframe|getpixelposition|getpref|ginput|gmres|gplot|grabcode|gradient|gray|graymon|grid|griddata(?:3|n)?|griddedInterpolant|gsvd|gt|gtext|\"+\n\t\t\"guidata|guide|guihandles|gunzip|gzip|h5create|h5disp|h5info|h5read|h5readatt|h5write|h5writeatt|hadamard|handle|hankel|hdf|hdf5|hdf5info|hdf5read|hdf5write|hdfinfo|\"+\n\t\t\"hdfread|hdftool|help|helpbrowser|helpdesk|helpdlg|helpwin|hess|hex2dec|hex2num|hgexport|hggroup|hgload|hgsave|hgsetget|hgtransform|hidden|hilb|hist|histc|hold|home|horzcat|\"+\n\t\t\"hostid|hot|hsv|hsv2rgb|hypot|ichol|idivide|ifft|ifft2|ifftn|ifftshift|ilu|im2frame|im2java|imag|image|imagesc|imapprox|imfinfo|imformats|import|importdata|imread|imwrite|\"+\n\t\t\"ind2rgb|ind2sub|inferiorto|info|inline|inmem|inpolygon|input|inputdlg|inputname|inputParser|inspect|instrcallback|instrfind|instrfindall|int2str|integral(?:2|3)?|interp(?:1|\"+\n\t\t\"1q|2|3|ft|n)|interpstreamspeed|intersect|intmax|intmin|inv|invhilb|ipermute|isa|isappdata|iscell|iscellstr|ischar|iscolumn|isdir|isempty|isequal|isequaln|isequalwithequalnans|\"+\n\t\t\"isfield|isfinite|isfloat|isglobal|ishandle|ishghandle|ishold|isinf|isinteger|isjava|iskeyword|isletter|islogical|ismac|ismatrix|ismember|ismethod|isnan|isnumeric|isobject|\"+\n\t\t\"isocaps|isocolors|isonormals|isosurface|ispc|ispref|isprime|isprop|isreal|isrow|isscalar|issorted|isspace|issparse|isstr|isstrprop|isstruct|isstudent|isunix|isvarname|\"+\n\t\t\"isvector|javaaddpath|javaArray|javachk|javaclasspath|javacomponent|javaMethod|javaMethodEDT|javaObject|javaObjectEDT|javarmpath|jet|keyboard|kron|lasterr|lasterror|\"+\n\t\t\"lastwarn|lcm|ldivide|ldl|le|legend|legendre|length|libfunctions|libfunctionsview|libisloaded|libpointer|libstruct|license|light|lightangle|lighting|lin2mu|line|lines|\"+\n\t\t\"linkaxes|linkdata|linkprop|linsolve|linspace|listdlg|listfonts|load|loadlibrary|loadobj|log|log10|log1p|log2|loglog|logm|logspace|lookfor|lower|ls|lscov|lsqnonneg|lsqr|\"+\n\t\t\"lt|lu|luinc|magic|makehgtform|mat2cell|mat2str|material|matfile|matlab.io.MatFile|matlab.mixin.(?:Copyable|Heterogeneous(?:.getDefaultScalarElement)?)|matlabrc|\"+\n\t\t\"matlabroot|max|maxNumCompThreads|mean|median|membrane|memmapfile|memory|menu|mesh|meshc|meshgrid|meshz|meta.(?:class(?:.fromName)?|DynamicProperty|EnumeratedValue|event|\"+\n\t\t\"MetaData|method|package(?:.(?:fromName|getAllPackages))?|property)|metaclass|methods|methodsview|mex(?:.getCompilerConfigurations)?|MException|mexext|mfilename|min|minres|\"+\n\t\t\"minus|mislocked|mkdir|mkpp|mldivide|mlint|mlintrpt|mlock|mmfileinfo|mmreader|mod|mode|more|move|movefile|movegui|movie|movie2avi|mpower|mrdivide|msgbox|mtimes|mu2lin|\"+\n\t\t\"multibandread|multibandwrite|munlock|namelengthmax|nargchk|narginchk|nargoutchk|native2unicode|nccreate|ncdisp|nchoosek|ncinfo|ncread|ncreadatt|ncwrite|ncwriteatt|\"+\n\t\t\"ncwriteschema|ndgrid|ndims|ne|NET(?:.(?:addAssembly|Assembly|convertArray|createArray|createGeneric|disableAutoRelease|enableAutoRelease|GenericClass|invokeGenericMethod|\"+\n\t\t\"NetException|setStaticProperty))?|netcdf.(?:abort|close|copyAtt|create|defDim|defGrp|defVar|defVarChunking|defVarDeflate|defVarFill|defVarFletcher32|delAtt|endDef|getAtt|\"+\n\t\t\"getChunkCache|getConstant|getConstantNames|getVar|inq|inqAtt|inqAttID|inqAttName|inqDim|inqDimID|inqDimIDs|inqFormat|inqGrpName|inqGrpNameFull|inqGrpParent|inqGrps|\"+\n\t\t\"inqLibVers|inqNcid|inqUnlimDims|inqVar|inqVarChunking|inqVarDeflate|inqVarFill|inqVarFletcher32|inqVarID|inqVarIDs|open|putAtt|putVar|reDef|renameAtt|renameDim|renameVar|\"+\n\t\t\"setChunkCache|setDefaultFormat|setFill|sync)|newplot|nextpow2|nnz|noanimate|nonzeros|norm|normest|not|notebook|now|nthroot|null|num2cell|num2hex|num2str|numel|nzmax|\"+\n\t\t\"ode(?:113|15i|15s|23|23s|23t|23tb|45)|odeget|odeset|odextend|onCleanup|ones|open|openfig|opengl|openvar|optimget|optimset|or|ordeig|orderfields|ordqz|ordschur|orient|\"+\n\t\t\"orth|pack|padecoef|pagesetupdlg|pan|pareto|parseSoapResponse|pascal|patch|path|path2rc|pathsep|pathtool|pause|pbaspect|pcg|pchip|pcode|pcolor|pdepe|pdeval|peaks|perl|perms|\"+\n\t\t\"permute|pie|pink|pinv|planerot|playshow|plot|plot3|plotbrowser|plotedit|plotmatrix|plottools|plotyy|plus|pol2cart|polar|poly|polyarea|polyder|polyeig|polyfit|polyint|polyval|\"+\n\t\t\"polyvalm|pow2|power|ppval|prefdir|preferences|primes|print|printdlg|printopt|printpreview|prod|profile|profsave|propedit|propertyeditor|psi|publish|PutCharArray|PutFullMatrix|\"+\n\t\t\"PutWorkspaceData|pwd|qhull|qmr|qr|qrdelete|qrinsert|qrupdate|quad|quad2d|quadgk|quadl|quadv|questdlg|quit|quiver|quiver3|qz|rand|randi|randn|randperm|RandStream(?:.(?:create|\"+\n\t\t\"getDefaultStream|getGlobalStream|list|setDefaultStream|setGlobalStream))?|rank|rat|rats|rbbox|rcond|rdivide|readasync|real|reallog|realmax|realmin|realpow|realsqrt|record|\"+\n\t\t\"rectangle|rectint|recycle|reducepatch|reducevolume|refresh|refreshdata|regexp|regexpi|regexprep|regexptranslate|rehash|rem|Remove|RemoveAll|repmat|reset|reshape|residue|\"+\n\t\t\"restoredefaultpath|rethrow|rgb2hsv|rgb2ind|rgbplot|ribbon|rmappdata|rmdir|rmfield|rmpath|rmpref|rng|roots|rose|rosser|rot90|rotate|rotate3d|round|rref|rsf2csf|run|save|saveas|\"+\n\t\t\"saveobj|savepath|scatter|scatter3|schur|sec|secd|sech|selectmoveresize|semilogx|semilogy|sendmail|serial|set|setappdata|setdiff|setenv|setfield|setpixelposition|setpref|setstr|\"+\n\t\t\"setxor|shading|shg|shiftdim|showplottool|shrinkfaces|sign|sin(?:d|h)?|size|slice|smooth3|snapnow|sort|sortrows|sound|soundsc|spalloc|spaugment|spconvert|spdiags|specular|speye|\"+\n\t\t\"spfun|sph2cart|sphere|spinmap|spline|spones|spparms|sprand|sprandn|sprandsym|sprank|spring|sprintf|spy|sqrt|sqrtm|squeeze|ss2tf|sscanf|stairs|startup|std|stem|stem3|stopasync|\"+\n\t\t\"str2double|str2func|str2mat|str2num|strcat|strcmp|strcmpi|stream2|stream3|streamline|streamparticles|streamribbon|streamslice|streamtube|strfind|strjust|strmatch|strncmp|\"+\n\t\t\"strncmpi|strread|strrep|strtok|strtrim|struct2cell|structfun|strvcat|sub2ind|subplot|subsasgn|subsindex|subspace|subsref|substruct|subvolume|sum|summer|superclasses|superiorto|\"+\n\t\t\"support|surf|surf2patch|surface|surfc|surfl|surfnorm|svd|svds|swapbytes|symamd|symbfact|symmlq|symrcm|symvar|system|tan(?:d|h)?|tar|tempdir|tempname|tetramesh|texlabel|text|\"+\n\t\t\"textread|textscan|textwrap|tfqmr|throw|tic|Tiff(?:.(?:getTagNames|getVersion))?|timer|timerfind|timerfindall|times|timeseries|title|toc|todatenum|toeplitz|toolboxdir|trace|\"+\n\t\t\"transpose|trapz|treelayout|treeplot|tril|trimesh|triplequad|triplot|TriRep|TriScatteredInterp|trisurf|triu|tscollection|tsearch|tsearchn|tstool|type|typecast|uibuttongroup|\"+\n\t\t\"uicontextmenu|uicontrol|uigetdir|uigetfile|uigetpref|uiimport|uimenu|uiopen|uipanel|uipushtool|uiputfile|uiresume|uisave|uisetcolor|uisetfont|uisetpref|uistack|uitable|\"+\n\t\t\"uitoggletool|uitoolbar|uiwait|uminus|undocheckout|unicode2native|union|unique|unix|unloadlibrary|unmesh|unmkpp|untar|unwrap|unzip|uplus|upper|urlread|urlwrite|usejava|\"+\n\t\t\"userpath|validateattributes|validatestring|vander|var|vectorize|ver|verctrl|verLessThan|version|vertcat|VideoReader(?:.isPlatformSupported)?|VideoWriter(?:.getProfiles)?|\"+\n\t\t\"view|viewmtx|visdiff|volumebounds|voronoi|voronoin|wait|waitbar|waitfor|waitforbuttonpress|warndlg|warning|waterfall|wavfinfo|wavplay|wavread|wavrecord|wavwrite|web|weekday|\"+\n\t\t\"what|whatsnew|which|whitebg|who|whos|wilkinson|winopen|winqueryreg|winter|wk1finfo|wk1read|wk1write|workspace|xlabel|xlim|xlsfinfo|xlsread|xlswrite|xmlread|xmlwrite|xor|xslt|\"+\n\t\t\"ylabel|ylim|zeros|zip|zlabel|zlim|zoom|addedvarplot|andrewsplot|anova(?:1|2|n)|ansaribradley|aoctool|barttest|bbdesign|beta(?:cdf|fit|inv|like|pdf|rnd|stat)|bino(?:cdf|fit|inv|\"+\n\t\t\"pdf|rnd|stat)|biplot|bootci|bootstrp|boxplot|candexch|candgen|canoncorr|capability|capaplot|caseread|casewrite|categorical|ccdesign|cdfplot|chi2(?:cdf|gof|inv|pdf|rnd|stat)|\"+\n\t\t\"cholcov|Classification(?:BaggedEnsemble|Discriminant(?:.(?:fit|make|template))?|Ensemble|KNN(?:.(?:fit|template))?|PartitionedEnsemble|PartitionedModel|Tree(?:.(?:fit|\"+\n\t\t\"template))?)|classify|classregtree|cluster|clusterdata|cmdscale|combnk|Compact(?:Classification(?:Discriminant|Ensemble|Tree)|Regression(?:Ensemble|Tree)|TreeBagger)|confusionmat|\"+\n\t\t\"controlchart|controlrules|cophenet|copula(?:cdf|fit|param|pdf|rnd|stat)|cordexch|corr|corrcov|coxphfit|createns|crosstab|crossval|cvpartition|datasample|dataset|daugment|dcovary|\"+\n\t\t\"dendrogram|dfittool|disttool|dummyvar|dwtest|ecdf|ecdfhist|ev(?:cdf|fit|inv|like|pdf|rnd|stat)|ExhaustiveSearcher|exp(?:cdf|fit|inv|like|pdf|rnd|stat)|factoran|fcdf|ff2n|finv|\"+\n\t\t\"fitdist|fitensemble|fpdf|fracfact|fracfactgen|friedman|frnd|fstat|fsurfht|fullfact|gagerr|gam(?:cdf|fit|inv|like|pdf|rnd|stat)|GeneralizedLinearModel(?:.fit)?|geo(?:cdf|inv|mean|\"+\n\t\t\"pdf|rnd|stat)|gev(?:cdf|fit|inv|like|pdf|rnd|stat)|gline|glmfit|glmval|glyphplot|gmdistribution(?:.fit)?|gname|gp(?:cdf|fit|inv|like|pdf|rnd|stat)|gplotmatrix|grp2idx|grpstats|\"+\n\t\t\"gscatter|haltonset|harmmean|hist3|histfit|hmm(?:decode|estimate|generate|train|viterbi)|hougen|hyge(?:cdf|inv|pdf|rnd|stat)|icdf|inconsistent|interactionplot|invpred|iqr|iwishrnd|\"+\n\t\t\"jackknife|jbtest|johnsrnd|KDTreeSearcher|kmeans|knnsearch|kruskalwallis|ksdensity|kstest|kstest2|kurtosis|lasso|lassoglm|lassoPlot|leverage|lhsdesign|lhsnorm|lillietest|\"+\n\t\t\"LinearModel(?:.fit)?|linhyptest|linkage|logn(?:cdf|fit|inv|like|pdf|rnd|stat)|lsline|mad|mahal|maineffectsplot|manova1|manovacluster|mdscale|mhsample|mle|mlecov|mnpdf|\"+\n\t\t\"mnrfit|mnrnd|mnrval|moment|multcompare|multivarichart|mvn(?:cdf|pdf|rnd)|mvregress|mvregresslike|mvt(?:cdf|pdf|rnd)|NaiveBayes(?:.fit)?|nan(?:cov|max|mean|median|min|std|\"+\n\t\t\"sum|var)|nbin(?:cdf|fit|inv|pdf|rnd|stat)|ncf(?:cdf|inv|pdf|rnd|stat)|nct(?:cdf|inv|pdf|rnd|stat)|ncx2(?:cdf|inv|pdf|rnd|stat)|NeighborSearcher|nlinfit|nlintool|nlmefit|nlmefitsa|\"+\n\t\t\"nlparci|nlpredci|nnmf|nominal|NonLinearModel(?:.fit)?|norm(?:cdf|fit|inv|like|pdf|rnd|stat)|normplot|normspec|ordinal|outlierMeasure|parallelcoords|paretotails|partialcorr|\"+\n\t\t\"pcacov|pcares|pdf|pdist|pdist2|pearsrnd|perfcurve|perms|piecewisedistribution|plsregress|poiss(?:cdf|fit|inv|pdf|rnd|tat)|polyconf|polytool|prctile|princomp|ProbDist(?:Kernel|\"+\n\t\t\"Parametric|UnivKernel|UnivParam)?|probplot|procrustes|qqplot|qrandset|qrandstream|quantile|randg|random|randsample|randtool|range|rangesearch|ranksum|rayl(?:cdf|fit|inv|pdf|\"+\n\t\t\"rnd|stat)|rcoplot|refcurve|refline|regress|Regression(?:BaggedEnsemble|Ensemble|PartitionedEnsemble|PartitionedModel|Tree(?:.(?:fit|template))?)|regstats|relieff|ridge|\"+\n\t\t\"robustdemo|robustfit|rotatefactors|rowexch|rsmdemo|rstool|runstest|sampsizepwr|scatterhist|sequentialfs|signrank|signtest|silhouette|skewness|slicesample|sobolset|squareform|\"+\n\t\t\"statget|statset|stepwise|stepwisefit|surfht|tabulate|tblread|tblwrite|tcdf|tdfread|tiedrank|tinv|tpdf|TreeBagger|treedisp|treefit|treeprune|treetest|treeval|trimmean|trnd|tstat|\"+\n\t\t\"ttest|ttest2|unid(?:cdf|inv|pdf|rnd|stat)|unif(?:cdf|inv|it|pdf|rnd|stat)|vartest(?:2|n)?|wbl(?:cdf|fit|inv|like|pdf|rnd|stat)|wblplot|wishrnd|x2fx|xptread|zscore|ztest\"+\n\t\t\"adapthisteq|analyze75info|analyze75read|applycform|applylut|axes2pix|bestblk|blockproc|bwarea|bwareaopen|bwboundaries|bwconncomp|bwconvhull|bwdist|bwdistgeodesic|bweuler|\"+\n\t\t\"bwhitmiss|bwlabel|bwlabeln|bwmorph|bwpack|bwperim|bwselect|bwtraceboundary|bwulterode|bwunpack|checkerboard|col2im|colfilt|conndef|convmtx2|corner|cornermetric|corr2|cp2tform|\"+\n\t\t\"cpcorr|cpselect|cpstruct2pairs|dct2|dctmtx|deconvblind|deconvlucy|deconvreg|deconvwnr|decorrstretch|demosaic|dicom(?:anon|dict|info|lookup|read|uid|write)|edge|edgetaper|entropy|\"+\n\t\t\"entropyfilt|fan2para|fanbeam|findbounds|fliptform|freqz2|fsamp2|fspecial|ftrans2|fwind1|fwind2|getheight|getimage|getimagemodel|getline|getneighbors|getnhood|getpts|\"+\n\t\t\"getrangefromclass|getrect|getsequence|gray2ind|graycomatrix|graycoprops|graydist|grayslice|graythresh|hdrread|hdrwrite|histeq|hough|houghlines|houghpeaks|iccfind|iccread|\"+\n\t\t\"iccroot|iccwrite|idct2|ifanbeam|im2bw|im2col|im2double|im2int16|im2java2d|im2single|im2uint16|im2uint8|imabsdiff|imadd|imadjust|ImageAdapter|imageinfo|imagemodel|imapplymatrix|\"+\n\t\t\"imattributes|imbothat|imclearborder|imclose|imcolormaptool|imcomplement|imcontour|imcontrast|imcrop|imdilate|imdisplayrange|imdistline|imdivide|imellipse|imerode|imextendedmax|\"+\n\t\t\"imextendedmin|imfill|imfilter|imfindcircles|imfreehand|imfuse|imgca|imgcf|imgetfile|imhandles|imhist|imhmax|imhmin|imimposemin|imlincomb|imline|immagbox|immovie|immultiply|imnoise|\"+\n\t\t\"imopen|imoverview|imoverviewpanel|impixel|impixelinfo|impixelinfoval|impixelregion|impixelregionpanel|implay|impoint|impoly|impositionrect|improfile|imputfile|impyramid|\"+\n\t\t\"imreconstruct|imrect|imregconfig|imregionalmax|imregionalmin|imregister|imresize|imroi|imrotate|imsave|imscrollpanel|imshow|imshowpair|imsubtract|imtool|imtophat|imtransform|\"+\n\t\t\"imview|ind2gray|ind2rgb|interfileinfo|interfileread|intlut|ippl|iptaddcallback|iptcheckconn|iptcheckhandle|iptcheckinput|iptcheckmap|iptchecknargin|iptcheckstrs|iptdemos|iptgetapi|\"+\n\t\t\"iptGetPointerBehavior|iptgetpref|ipticondir|iptnum2ordinal|iptPointerManager|iptprefs|iptremovecallback|iptSetPointerBehavior|iptsetpref|iptwindowalign|iradon|isbw|isflat|isgray|\"+\n\t\t\"isicc|isind|isnitf|isrgb|isrset|lab2double|lab2uint16|lab2uint8|label2rgb|labelmatrix|makecform|makeConstrainToRectFcn|makehdr|makelut|makeresampler|maketform|mat2gray|mean2|\"+\n\t\t\"medfilt2|montage|nitfinfo|nitfread|nlfilter|normxcorr2|ntsc2rgb|openrset|ordfilt2|otf2psf|padarray|para2fan|phantom|poly2mask|psf2otf|qtdecomp|qtgetblk|qtsetblk|radon|rangefilt|\"+\n\t\t\"reflect|regionprops|registration.metric.(?:MattesMutualInformation|MeanSquares)|registration.optimizer.(?:OnePlusOneEvolutionary|RegularStepGradientDescent)|rgb2gray|\"+\n\t\t\"rgb2ntsc|rgb2ycbcr|roicolor|roifill|roifilt2|roipoly|rsetwrite|std2|stdfilt|strel|stretchlim|subimage|tformarray|tformfwd|tforminv|tonemap|translate|truesize|uintlut|viscircles|\"+\n\t\t\"warp|watershed|whitepoint|wiener2|xyz2double|xyz2uint16|ycbcr2rgb|bintprog|color|fgoalattain|fminbnd|fmincon|fminimax|fminsearch|fminunc|fseminf|fsolve|fzero|fzmult|gangstr|ktrlink|\"+\n\t\t\"linprog|lsqcurvefit|lsqlin|lsqnonlin|lsqnonneg|optimget|optimset|optimtool|quadprog\"\n    );\n    var storageType = (\n        \"cell|struct|char|double|single|logical|u?int(?:8|16|32|64)|sparse\"\n    );\n    var keywordMapper = this.createKeywordMapper({\n        \"storage.type\": storageType,\n        \"support.function\": builtinFunctions,\n        \"keyword\": keywords,\n        \"constant.language\": builtinConstants\n    }, \"identifier\", true);\n\n    this.$rules = {\n        start: [{ \n            token : \"string\",\n            regex : \"'\",\n            stateName : \"qstring\",\n            next  : [{\n                token : \"constant.language.escape\",\n                regex : \"''\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"start\"\n            }, {\n                defaultToken: \"string\"\n            }]\n        }, {\n            token : \"text\",\n            regex : \"\\\\s+\"\n        }, {\n            regex: \"\",\n            next: \"noQstring\"\n        }],        \n        noQstring : [{\n            regex: \"^\\\\s*%{\\\\s*$\",\n            token: \"comment.start\",\n            push: \"blockComment\"\n        }, {\n            token : \"comment\",\n            regex : \"%[^\\r\\n]*\"\n        }, {\n            token : \"string\",\n            regex : '\"',\n            stateName : \"qqstring\",\n            next  : [{\n                token : \"constant.language.escape\",\n                regex : /\\\\./\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"start\"\n            }, {\n                defaultToken: \"string\"\n            }]\n        }, {\n            token : \"constant.numeric\", // float\n            regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n        }, {\n            token : keywordMapper,\n            regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n        }, {\n            token : \"keyword.operator\",\n            regex : \"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\",\n            next: \"start\"\n        }, {\n            token : \"punctuation.operator\",\n            regex : \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\",\n            next: \"start\"\n        }, {\n            token : \"paren.lparen\",\n            regex : \"[({\\\\[]\",\n            next: \"start\"\n        }, {\n            token : \"paren.rparen\",\n            regex : \"[\\\\]})]\"\n        }, {\n            token : \"text\",\n            regex : \"\\\\s+\"\n        }, {\n            token : \"text\",\n            regex : \"$\",\n            next  : \"start\"\n        }],\n        blockComment: [{\n            regex: \"^\\\\s*%{\\\\s*$\",\n            token: \"comment.start\",\n            push: \"blockComment\"\n        }, {\n            regex: \"^\\\\s*%}\\\\s*$\",\n            token: \"comment.end\",\n            next: \"pop\"\n        }, {\n            defaultToken: \"comment\"\n        }]\n    };\n    \n    this.normalizeRules();\n};\n\noop.inherits(MatlabHighlightRules, TextHighlightRules);\n\nexports.MatlabHighlightRules = MatlabHighlightRules;\n});\n\nace.define(\"ace/mode/matlab\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/matlab_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar MatlabHighlightRules = require(\"./matlab_highlight_rules\").MatlabHighlightRules;\n\nvar Mode = function() {\n    this.HighlightRules = MatlabHighlightRules;\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"%\";\n    this.blockComment = {start: \"%{\", end: \"%}\"};\n\n    this.$id = \"ace/mode/matlab\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-mavens_mate_log.js",
    "content": "ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/mavens_mate_log\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/mavens_mate_log_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar MavensMateLogHighlightRules = require(\"./mavens_mate_log_highlight_rules\").MavensMateLogHighlightRules;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = MavensMateLogHighlightRules;\n    this.foldingRules = new FoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.$id = \"ace/mode/mavens_mate_log\"\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-maze.js",
    "content": "ace.define(\"ace/mode/maze_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar MazeHighlightRules = function() {\n\n    this.$rules = {\n        start: [{\n            token: \"keyword.control\",\n            regex: /##|``/,\n            comment: \"Wall\"\n        }, {\n            token: \"entity.name.tag\",\n            regex: /\\.\\./,\n            comment: \"Path\"\n        }, {\n            token: \"keyword.control\",\n            regex: /<>/,\n            comment: \"Splitter\"\n        }, {\n            token: \"entity.name.tag\",\n            regex: /\\*[\\*A-Za-z0-9]/,\n            comment: \"Signal\"\n        }, {\n            token: \"constant.numeric\",\n            regex: /[0-9]{2}/,\n            comment: \"Pause\"\n        }, {\n            token: \"keyword.control\",\n            regex: /\\^\\^/,\n            comment: \"Start\"\n        }, {\n            token: \"keyword.control\",\n            regex: /\\(\\)/,\n            comment: \"Hole\"\n        }, {\n            token: \"support.function\",\n            regex: />>/,\n            comment: \"Out\"\n        }, {\n            token: \"support.function\",\n            regex: />\\//,\n            comment: \"Ln Out\"\n        }, {\n            token: \"support.function\",\n            regex: /<</,\n            comment: \"In\"\n        }, {\n            token: \"keyword.control\",\n            regex: /--/,\n            comment: \"One use\"\n        }, {\n            token: \"constant.language\",\n            regex: /%[LRUDNlrudn]/,\n            comment: \"Direction\"\n        }, {\n            token: [\n                \"entity.name.function\",\n                \"keyword.other\",\n                \"keyword.operator\",\n                \"keyword.other\",\n                \"keyword.operator\",\n                \"constant.numeric\",\n                \"keyword.operator\",\n                \"keyword.other\",\n                \"keyword.operator\",\n                \"constant.numeric\",\n                \"string.quoted.double\",\n                \"string.quoted.single\"\n            ],\n            regex: /([A-Za-z][A-Za-z0-9])( *-> *)(?:([-+*\\/]=)( *)((?:-)?)([0-9]+)|(=)( *)(?:((?:-)?)([0-9]+)|(\"[^\"]*\")|('[^']*')))/,\n            comment: \"Assignment function\"\n        }, {\n            token: [\n                \"entity.name.function\",\n                \"keyword.other\",\n                \"keyword.control\",\n                \"keyword.other\",\n                \"keyword.operator\",\n                \"keyword.other\",\n                \"keyword.operator\",\n                \"constant.numeric\",\n                \"entity.name.tag\",\n                \"keyword.other\",\n                \"keyword.control\",\n                \"keyword.other\",\n                \"constant.language\",\n                \"keyword.other\",\n                \"keyword.control\",\n                \"keyword.other\",\n                \"constant.language\"\n            ],\n            regex: /([A-Za-z][A-Za-z0-9])( *-> *)(IF|if)( *)(?:([<>]=?|==)( *)((?:-)?)([0-9]+)|(\\*[\\*A-Za-z0-9]))( *)(THEN|then)( *)(%[LRUDNlrudn])(?:( *)(ELSE|else)( *)(%[LRUDNlrudn]))?/,\n            comment: \"Equality Function\"\n        }, {\n            token: \"entity.name.function\",\n            regex: /[A-Za-z][A-Za-z0-9]/,\n            comment: \"Function cell\"\n        }, {\n            token: \"comment.line.double-slash\",\n            regex: / *\\/\\/.*/,\n            comment: \"Comment\"\n        }]\n    };\n\n    this.normalizeRules();\n};\n\nMazeHighlightRules.metaData = {\n    fileTypes: [\"mz\"],\n    name: \"Maze\",\n    scopeName: \"source.maze\"\n};\n\n\noop.inherits(MazeHighlightRules, TextHighlightRules);\n\nexports.MazeHighlightRules = MazeHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/maze\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/maze_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar MazeHighlightRules = require(\"./maze_highlight_rules\").MazeHighlightRules;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = MazeHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"//\";\n    this.$id = \"ace/mode/maze\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-mel.js",
    "content": "ace.define(\"ace/mode/mel_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar MELHighlightRules = function() {\n\n    this.$rules = { start: \n       [ { caseInsensitive: true,\n           token: 'storage.type.mel',\n           regex: '\\\\b(matrix|string|vector|float|int|void)\\\\b' },\n         { caseInsensitive: true,\n           token: 'support.function.mel',\n           regex: '\\\\b((s(h(ow(ManipCtx|S(hadingGroupAttrEditor|electionInTitle)|H(idden|elp)|Window)|el(f(Button|TabLayout|Layout)|lField)|ading(GeometryRelCtx|Node|Connection|LightRelCtx))|y(s(tem|File)|mbol(Button|CheckBox))|nap(shot|Mode|2to2 |TogetherCtx|Key)|c(ulpt|ene(UIReplacement|Editor)|ale(BrushBrightness |Constraint|Key(Ctx)?)?|r(ipt(Node|Ctx|Table|edPanel(Type)?|Job|EditorInfo)|oll(Field|Layout))|mh)|t(itch(Surface(Points)?|AndExplodeShell )|a(ckTrace|rt(sWith |String ))|r(cmp|i(ng(ToStringArray |Array(Remove(Duplicates | )|C(ount |atenate )|ToString |Intersector))|p )|oke))|i(n(gleProfileBirailSurface)?|ze|gn|mplify)|o(u(nd(Control)?|rce)|ft(Mod(Ctx)?)?|rt)|u(perCtx|rface(S(haderList|ampler))?|b(st(itute(Geometry|AllString )?|ring)|d(M(irror|a(tchTopology|p(SewMove|Cut)))|iv(Crease|DisplaySmoothness)?|C(ollapse|leanTopology)|T(o(Blind|Poly)|ransferUVsToCache)|DuplicateAndConnect|EditUV|ListComponentConversion|AutoProjection)))|p(h(ere|rand)|otLight(PreviewPort)?|aceLocator|r(ing|eadSheetEditor))|e(t(s|MenuMode|Sta(te |rtupMessage|mpDensity )|NodeTypeFlag|ConstraintRestPosition |ToolTo|In(putDeviceMapping|finity)|D(ynamic|efaultShadingGroup|rivenKeyframe)|UITemplate|P(ar(ticleAttr|ent)|roject )|E(scapeCtx|dit(or|Ctx))|Key(Ctx|frame|Path)|F(ocus|luidAttr)|Attr(Mapping)?)|parator|ed|l(ect(Mode|ionConnection|Context|Type|edNodes|Pr(iority|ef)|Key(Ctx)?)?|LoadSettings)|archPathArray )|kin(Cluster|Percent)|q(uareSurface|rt)|w(itchTable|atchDisplayPort)|a(ve(Menu|Shelf|ToolSettings|I(nitialState|mage)|Pref(s|Objects)|Fluid|A(ttrPreset |llShelves))|mpleImage)|rtContext|mooth(step|Curve|TangentSurface))|h(sv_to_rgb|yp(ot|er(Graph|Shade|Panel))|i(tTest|de|lite)|ot(Box|key(Check)?)|ud(Button|Slider(Button)?)|e(lp(Line)?|adsUpDisplay|rmite)|wRe(nder(Load)?|flectionMap)|ard(enPointCurve|ware(RenderPanel)?))|n(o(nLinear|ise|de(Type|IconButton|Outliner|Preset)|rmal(ize |Constraint))|urbs(Boolean|S(elect|quare)|C(opyUVSet|ube)|To(Subdiv|Poly(gonsPref)?)|Plane|ViewDirectionVector )|ew(ton|PanelItems)|ame(space(Info)?|Command|Field))|c(h(oice|dir|eck(Box(Grp)?|DefaultRenderGlobals)|a(n(nelBox|geSubdiv(Region|ComponentDisplayLevel))|racter(Map|OutlineEditor)?))|y(cleCheck|linder)|tx(Completion|Traverse|EditMode|Abort)|irc(ularFillet|le)|o(s|n(str(uctionHistory|ain(Value)?)|nect(ionInfo|Control|Dynamic|Joint|Attr)|t(extInfo|rol)|dition|e|vert(SolidTx|Tessellation|Unit|FromOldLayers |Lightmap)|firmDialog)|py(SkinWeights|Key|Flexor|Array )|l(or(Slider(Grp|ButtonGrp)|Index(SliderGrp)?|Editor|AtPoint)?|umnLayout|lision)|arsenSubdivSelectionList|m(p(onentEditor|utePolysetVolume |actHairSystem )|mand(Port|Echo|Line)))|u(tKey|r(ve(MoveEPCtx|SketchCtx|CVCtx|Intersect|OnSurface|E(ditorCtx|PCtx)|AddPtCtx)?|rent(Ctx|Time(Ctx)?|Unit)))|p(GetSolverAttr|Button|S(olver(Types)?|e(t(SolverAttr|Edit)|am))|C(o(nstraint|llision)|ache)|Tool|P(anel|roperty))|eil|l(ip(Schedule(rOutliner)?|TrimBefore |Editor(CurrentTimeCtx)?)?|ose(Surface|Curve)|uster|ear(Cache)?|amp)|a(n(CreateManip|vas)|tch(Quiet)?|pitalizeString |mera(View)?)|r(oss(Product )?|eate(RenderLayer|MotionField |SubdivRegion|N(ode|ewShelf )|D(isplayLayer|rawCtx)|Editor))|md(Shell|FileOutput))|M(R(ender(ShadowData|Callback|Data|Util|View|Line(Array)?)|ampAttribute)|G(eometryData|lobal)|M(odelMessage|essage|a(nipData|t(erial|rix)))|BoundingBox|S(yntax|ceneMessage|t(atus|ring(Array)?)|imple|pace|elect(ion(Mask|List)|Info)|watchRender(Register|Base))|H(ardwareRenderer|WShaderSwatchGenerator)|NodeMessage|C(o(nditionMessage|lor(Array)?|m(putation|mand(Result|Message)))|ursor|loth(Material|S(ystem|olverRegister)|Con(straint|trol)|Triangle|Particle|Edge|Force)|allbackIdArray)|T(ypeId|ime(r(Message)?|Array)?|oolsInfo|esselationParams|r(imBoundaryArray|ansformationMatrix))|I(ntArray|t(Geometry|Mesh(Polygon|Edge|Vertex|FaceVertex)|S(urfaceCV|electionList)|CurveCV|Instancer|eratorType|D(ependency(Graph|Nodes)|ag)|Keyframe)|k(System|HandleGroup)|mage)|3dView|Object(SetMessage|Handle|Array)?|D(G(M(odifier|essage)|Context)|ynSwept(Triangle|Line)|istance|oubleArray|evice(State|Channel)|a(ta(Block|Handle)|g(M(odifier|essage)|Path(Array)?))|raw(Request(Queue)?|Info|Data|ProcedureBase))|U(serEventMessage|i(nt(Array|64Array)|Message))|P(o(int(Array)?|lyMessage)|lug(Array)?|rogressWindow|x(G(eometry(Iterator|Data)|lBuffer)|M(idiInputDevice|odelEditorCommand|anipContainer)|S(urfaceShape(UI)?|pringNode|electionContext)|HwShaderNode|Node|Co(ntext(Command)?|m(ponentShape|mand))|T(oolCommand|ransform(ationMatrix)?)|IkSolver(Node)?|3dModelView|ObjectSet|D(eformerNode|ata|ragAndDropBehavior)|PolyT(weakUVCommand|rg)|EmitterNode|F(i(eldNode|leTranslator)|luidEmitterNode)|LocatorNode))|E(ulerRotation|vent(Message)?)|ayatomr|Vector(Array)?|Quaternion|F(n(R(otateManip|eflectShader|adialField)|G(e(nericAttribute|ometry(Data|Filter))|ravityField)|M(otionPath|es(sageAttribute|h(Data)?)|a(nip3D|trix(Data|Attribute)))|B(l(innShader|endShapeDeformer)|ase)|S(caleManip|t(ateManip|ring(Data|ArrayData))|ingleIndexedComponent|ubd(Names|Data)?|p(hereData|otLight)|et|kinCluster)|HikEffector|N(on(ExtendedLight|AmbientLight)|u(rbs(Surface(Data)?|Curve(Data)?)|meric(Data|Attribute))|ewtonField)|C(haracter|ircleSweepManip|ompo(nent(ListData)?|undAttribute)|urveSegmentManip|lip|amera)|T(ypedAttribute|oggleManip|urbulenceField|r(ipleIndexedComponent|ansform))|I(ntArrayData|k(Solver|Handle|Joint|Effector))|D(ynSweptGeometryData|i(s(cManip|tanceManip)|rection(Manip|alLight))|ouble(IndexedComponent|ArrayData)|ependencyNode|a(ta|gNode)|ragField)|U(ni(tAttribute|formField)|Int64ArrayData)|P(hong(Shader|EShader)|oint(On(SurfaceManip|CurveManip)|Light|ArrayData)|fxGeometry|lugin(Data)?|arti(cleSystem|tion))|E(numAttribute|xpression)|V(o(lume(Light|AxisField)|rtexField)|ectorArrayData)|KeyframeDelta(Move|B(lockAddRemove|reakdown)|Scale|Tangent|InfType|Weighted|AddRemove)?|F(ield|luid|reePointTriadManip)|W(ireDeformer|eightGeometryFilter)|L(ight(DataAttribute)?|a(yeredShader|ttice(D(eformer|ata))?|mbertShader))|A(ni(sotropyShader|mCurve)|ttribute|irField|r(eaLight|rayAttrsData)|mbientLight))?|ile(IO|Object)|eedbackLine|loat(Matrix|Point(Array)?|Vector(Array)?|Array))|L(i(ghtLinks|brary)|ockMessage)|A(n(im(Message|C(ontrol|urveC(hange|lipboard(Item(Array)?)?))|Util)|gle)|ttribute(Spec(Array)?|Index)|r(rayData(Builder|Handle)|g(Database|Parser|List))))|t(hreePointArcCtx|ime(Control|Port|rX)|o(ol(Button|HasOptions|Collection|Dropped|PropertyWindow)|NativePath |upper|kenize(List )?|l(ower|erance)|rus|ggle(WindowVisibility|Axis)?)|u(rbulence|mble(Ctx)?)|ex(RotateContext|M(oveContext|anipContext)|t(ScrollList|Curves|ure(HairColor |DisplacePlane |PlacementContext|Window)|ToShelf |Field(Grp|ButtonGrp)?)?|S(caleContext|electContext|mudgeUVContext)|WinToolCtx)|woPointArcCtx|a(n(gentConstraint)?|bLayout)|r(im|unc(ate(HairCache|FluidCache))?|a(ns(formLimits|lator)|c(e|k(Ctx)?))))|i(s(olateSelect|Connected|True|Dirty|ParentOf |Valid(String |ObjectName |UiName )|AnimCurve )|n(s(tance(r)?|ert(Joint(Ctx)?|K(not(Surface|Curve)|eyCtx)))|heritTransform|t(S(crollBar|lider(Grp)?)|er(sect|nalVar|ToUI )|Field(Grp)?))|conText(Radio(Button|Collection)|Button|StaticLabel|CheckBox)|temFilter(Render|Type|Attr)?|prEngine|k(S(ystem(Info)?|olver|plineHandleCtx)|Handle(Ctx|DisplayScale)?|fkDisplayMethod)|m(portComposerCurves |fPlugins|age))|o(ceanNurbsPreviewPlane |utliner(Panel|Editor)|p(tion(Menu(Grp)?|Var)|en(GLExtension|MayaPref))|verrideModifier|ffset(Surface|Curve(OnSurface)?)|r(ientConstraint|bit(Ctx)?)|b(soleteProc |j(ect(Center|Type(UI)?|Layer )|Exists)))|d(yn(RelEd(itor|Panel)|Globals|C(ontrol|ache)|P(a(intEditor|rticleCtx)|ref)|Exp(ort|ression)|amicLoad)|i(s(connect(Joint|Attr)|tanceDim(Context|ension)|pla(y(RGBColor|S(tats|urface|moothness)|C(olor|ull)|Pref|LevelOfDetail|Affected)|cementToPoly)|kCache|able)|r(name |ect(ionalLight|KeyCtx)|map)|mWhen)|o(cServer|Blur|t(Product )?|ubleProfileBirailSurface|peSheetEditor|lly(Ctx)?)|uplicate(Surface|Curve)?|e(tach(Surface|Curve|DeviceAttr)|vice(Panel|Editor)|f(ine(DataServer|VirtualDevice)|ormer|ault(Navigation|LightListCheckBox))|l(ete(Sh(elfTab |adingGroupsAndMaterials )|U(nusedBrushes |I)|Attr)?|randstr)|g_to_rad)|agPose|r(opoffLocator|ag(gerContext)?)|g(timer|dirty|Info|eval))|CBG |u(serCtx|n(t(angleUV|rim)|i(t|form)|do(Info)?|loadPlugin|assignInputDevice|group)|iTemplate|p(dateAE |Axis)|v(Snapshot|Link))|joint(C(tx|luster)|DisplayScale|Lattice)?|p(sd(ChannelOutliner|TextureFile|E(ditTextureFile|xport))|close|i(c(ture|kWalk)|xelMove)|o(se|int(MatrixMult |C(onstraint|urveConstraint)|On(Surface|Curve)|Position|Light)|p(upMenu|en)|w|l(y(Reduce|GeoSampler|M(irrorFace|ove(UV|Edge|Vertex|Facet(UV)?)|erge(UV|Edge(Ctx)?|Vertex|Facet(Ctx)?)|ap(Sew(Move)?|Cut|Del))|B(oolOp|evel|l(indData|endColor))|S(traightenUVBorder|oftEdge|u(perCtx|bdivide(Edge|Facet))|p(her(icalProjection|e)|lit(Ring|Ctx|Edge|Vertex)?)|e(tToFaceNormal|parate|wEdge|lect(Constraint(Monitor)?|EditCtx))|mooth)|Normal(izeUV|PerVertex)?|C(hipOff|ylind(er|ricalProjection)|o(ne|pyUV|l(or(BlindData|Set|PerVertex)|lapse(Edge|Facet)))|u(t(Ctx)?|be)|l(ipboard|oseBorder)|acheMonitor|rea(seEdge|teFacet(Ctx)?))|T(o(Subdiv|rus)|r(iangulate|ansfer))|In(stallAction|fo)|Options|D(uplicate(Edge|AndConnect)|el(Edge|Vertex|Facet))|U(nite|VSet)|P(yramid|oke|lan(e|arProjection)|r(ism|ojection))|E(ditUV|valuate|xtrude(Edge|Facet))|Qu(eryBlindData|ad)|F(orceUV|lip(UV|Edge))|WedgeFace|L(istComponentConversion|ayoutUV)|A(utoProjection|ppend(Vertex|FacetCtx)?|verage(Normal|Vertex)))|eVectorConstraint))|utenv|er(cent|formanceOptions)|fxstrokes|wd|l(uginInfo|a(y(b(last|ackOptions))?|n(e|arSrf)))|a(steKey|ne(l(History|Configuration)?|Layout)|thAnimation|irBlend|use|lettePort|r(ti(cle(RenderInfo|Instancer|Exists)?|tion)|ent(Constraint)?|am(Dim(Context|ension)|Locator)))|r(int|o(j(ect(ion(Manip|Context)|Curve|Tangent)|FileViewer)|pMo(dCtx|ve)|gress(Bar|Window)|mptDialog)|eloadRefEd))|e(n(codeString|d(sWith |String )|v|ableDevice)|dit(RenderLayer(Globals|Members)|or(Template)?|DisplayLayer(Globals|Members)|AttrLimits )|v(ent|al(Deferred|Echo)?)|quivalent(Tol | )|ffector|r(f|ror)|x(clusiveLightCheckBox|t(end(Surface|Curve)|rude)|ists|p(ortComposerCurves |ression(EditorListen)?)?|ec(uteForEachObject )?|actWorldBoundingBox)|mit(ter)?)|v(i(sor|ew(Set|HeadOn|2dToolCtx|C(lipPlane|amera)|Place|Fit|LookAt))|o(lumeAxis|rtex)|e(ctorize|rifyCmd )|alidateShelfName )|key(Tangent|frame(Region(MoveKeyCtx|S(caleKeyCtx|e(tKeyCtx|lectKeyCtx))|CurrentTimeCtx|TrackCtx|InsertKeyCtx|D(irectKeyCtx|ollyCtx))|Stats|Outliner)?)|qu(it|erySubdiv)|f(c(heck|lose)|i(nd(RelatedSkinCluster |MenuItem |er|Keyframe|AllIntersections )|tBspline|l(ter(StudioImport|Curve|Expand)?|e(BrowserDialog|test|Info|Dialog|Extension )?|letCurve)|rstParentOf )|o(ntDialog|pen|rmLayout)|print|eof|flush|write|l(o(or|w|at(S(crollBar|lider(Grp|ButtonGrp|2)?)|Eq |Field(Grp)?))|u(shUndo|id(CacheInfo|Emitter|VoxelInfo))|exor)|r(omNativePath |e(eFormFillet|wind|ad)|ameLayout)|get(word|line)|mod)|w(hatIs|i(ndow(Pref)?|re(Context)?)|orkspace|ebBrowser(Prefs)?|a(itCursor|rning)|ri(nkle(Context)?|teTake))|l(s(T(hroughFilter|ype )|UI)?|i(st(Relatives|MenuAnnotation |Sets|History|NodeTypes|C(onnections|ameras)|Transforms |InputDevice(s|Buttons|Axes)|erEditor|DeviceAttachments|Unselected |A(nimatable|ttr))|n(step|eIntersection )|ght(link|List(Panel|Editor)?))|o(ckNode|okThru|ft|ad(NewShelf |P(lugin|refObjects)|Fluid)|g)|a(ssoContext|y(out|er(Button|ed(ShaderPort|TexturePort)))|ttice(DeformKeyCtx)?|unch(ImageEditor)?))|a(ssign(Command|InputDevice)|n(notate|im(C(one|urveEditor)|Display|View)|gle(Between)?)|tt(ach(Surface|Curve|DeviceAttr)|r(ibute(Menu|Info|Exists|Query)|NavigationControlGrp|Co(ntrolGrp|lorSliderGrp|mpatibility)|PresetEditWin|EnumOptionMenu(Grp)?|Field(Grp|SliderGrp)))|i(r|mConstraint)|d(d(NewShelfTab|Dynamic|PP|Attr(ibuteEditorNodeHelp)?)|vanceToNextDrivenKey)|uto(Place|Keyframe)|pp(endStringArray|l(y(Take|AttrPreset)|icationName))|ffect(s|edNet)|l(i(as(Attr)?|gn(Surface|C(tx|urve))?)|lViewFit)|r(c(len|Len(DimContext|gthDimension))|t(BuildPaintMenu|Se(tPaintCtx|lectCtx)|3dPaintCtx|UserPaintCtx|PuttyCtx|FluidAttrCtx|Attr(SkinPaintCtx|Ctx|PaintVertexCtx))|rayMapper)|mbientLight|b(s|out))|r(igid(Body|Solver)|o(t(at(ionInterpolation|e))?|otOf |undConstantRadius|w(ColumnLayout|Layout)|ll(Ctx)?)|un(up|TimeCommand)|e(s(olutionNode|et(Tool|AE )|ampleFluid)|hash|n(der(GlobalsNode|Manip|ThumbnailUpdate|Info|er|Partition|QualityNode|Window(SelectContext|Editor)|LayerButton)?|ame(SelectionList |UI|Attr)?)|cord(Device|Attr)|target|order(Deformers)?|do|v(olve|erse(Surface|Curve))|quires|f(ineSubdivSelectionList|erence(Edit|Query)?|resh(AE )?)|loadImage|adTake|root|move(MultiInstance|Joint)|build(Surface|Curve))|a(n(d(state|omizeFollicles )?|geControl)|d(i(o(MenuItemCollection|Button(Grp)?|Collection)|al)|_to_deg)|mpColorPort)|gb_to_hsv)|g(o(toBindPose |al)|e(t(M(odifiers|ayaPanelTypes )|Classification|InputDeviceRange|pid|env|DefaultBrush|Pa(nel|rticleAttr)|F(ileList|luidAttr)|A(ttr|pplicationVersionAsFloat ))|ometryConstraint)|l(Render(Editor)?|obalStitch)|a(uss|mma)|r(id(Layout)?|oup(ObjectsByName )?|a(dientControl(NoAttr)?|ph(SelectContext|TrackCtx|DollyCtx)|vity|bColor))|match)|x(pmPicker|form|bmLangPathList )|m(i(n(imizeApp)?|rrorJoint)|o(del(CurrentTimeCtx|Panel|Editor)|use|v(In|e(IKtoFK |VertexAlongDirection|KeyCtx)?|Out))|u(te|ltiProfileBirailSurface)|e(ssageLine|nu(BarLayout|Item(ToShelf )?|Editor)?|mory)|a(nip(Rotate(Context|LimitsCtx)|Move(Context|LimitsCtx)|Scale(Context|LimitsCtx)|Options)|tch|ke(Roll |SingleSurface|TubeOn |Identity|Paintable|bot|Live)|rker|g|x))|b(in(Membership|d(Skin|Pose))|o(neLattice|undary|x(ZoomCtx|DollyCtx))|u(tton(Manip)?|ild(BookmarkMenu|KeyframeMenu)|fferCurve)|e(ssel|vel(Plus)?)|l(indDataType|end(Shape(Panel|Editor)?|2|TwoAttr))|a(sename(Ex | )|tchRender|ke(Results|Simulation|Clip|PartialHistory|FluidShading )))))\\\\b' },\n         { caseInsensitive: true,\n           token: 'support.constant.mel',\n           regex: '\\\\b(s(h(ellTessellate|a(d(ing(Map|Engine)|erGlow)|pe))|n(ow|apshot(Shape)?)|c(ulpt|aleConstraint|ript)|t(yleCurve|itch(Srf|AsNurbsShell)|u(cco|dioClearCoat)|encil|roke(Globals)?)|i(ngleShadingSwitch|mpleVolumeShader)|o(ftMod(Manip|Handle)?|lidFractal)|u(rface(Sha(der|pe)|Info|EdManip|VarGroup|Luminance)|b(Surface|d(M(odifier(UV|World)?|ap(SewMove|Cut|pingManip))|B(lindData|ase)|iv(ReverseFaces|SurfaceVarGroup|Co(llapse|mponentId)|To(Nurbs|Poly))?|HierBlind|CleanTopology|Tweak(UV)?|P(lanarProj|rojManip)|LayoutUV|A(ddTopology|utoProj))|Curve))|p(BirailSrf|otLight|ring)|e(tRange|lectionListOperator)|k(inCluster|etchPlane)|quareSrf|ampler(Info)?|m(ooth(Curve|TangentSrf)|ear))|h(svToRgb|yper(GraphInfo|View|Layout)|ik(Solver|Handle|Effector)|oldMatrix|eightField|w(Re(nderGlobals|flectionMap)|Shader)|a(ir(System|Constraint|TubeShader)|rd(enPoint|wareRenderGlobals)))|n(o(n(ExtendedLightShapeNode|Linear|AmbientLightShapeNode)|ise|rmalConstraint)|urbs(Surface|Curve|T(oSubdiv(Proc)?|essellate)|DimShape)|e(twork|wtonField))|c(h(o(ice|oser)|ecker|aracter(Map|Offset)?)|o(n(straint|tr(olPoint|ast)|dition)|py(ColorSet|UVSet))|urve(Range|Shape|Normalizer(Linear|Angle)?|In(tersect|fo)|VarGroup|From(Mesh(CoM|Edge)?|Su(rface(Bnd|CoS|Iso)?|bdiv(Edge|Face)?)))|l(ip(Scheduler|Library)|o(se(stPointOnSurface|Surface|Curve)|th|ud)|uster(Handle)?|amp)|amera(View)?|r(eate(BPManip|ColorSet|UVSet)|ater))|t(ime(ToUnitConversion|Function)?|oo(nLineAttributes|lDrawManip)|urbulenceField|ex(BaseDeformManip|ture(BakeSet|2d|ToGeom|3d|Env)|SmudgeUVManip|LatticeDeformManip)|weak|angentConstraint|r(i(pleShadingSwitch|m(WithBoundaries)?)|ansform(Geometry)?))|i(n(s(tancer|ertKnot(Surface|Curve))|tersectSurface)|k(RPsolver|MCsolver|S(ystem|olver|Csolver|plineSolver)|Handle|PASolver|Effector)|m(plicit(Box|Sphere|Cone)|agePlane))|o(cean(Shader)?|pticalFX|ffset(Surface|C(os|urve))|ldBlindDataBase|rient(Constraint|ationMarker)|bject(RenderFilter|MultiFilter|BinFilter|S(criptFilter|et)|NameFilter|TypeFilter|Filter|AttrFilter))|d(yn(Globals|Base)|i(s(tance(Between|DimShape)|pla(yLayer(Manager)?|cementShader)|kCache)|rect(ionalLight|edDisc)|mensionShape)|o(ubleShadingSwitch|f)|pBirailSrf|e(tach(Surface|Curve)|pendNode|f(orm(Bend|S(ine|quash)|Twist|ableShape|F(unc|lare)|Wave)|ault(RenderUtilityList|ShaderList|TextureList|LightList))|lete(Co(lorSet|mponent)|UVSet))|ag(Node|Pose)|r(opoffLocator|agField))|u(seBackground|n(trim|i(t(Conversion|ToTimeConversion)|formField)|known(Transform|Dag)?)|vChooser)|j(iggle|oint(Cluster|Ffd|Lattice)?)|p(sdFileTex|hong(E)?|o(s(tProcessList|itionMarker)|int(MatrixMult|Constraint|On(SurfaceInfo|CurveInfo)|Emitter|Light)|l(y(Reduce|M(irror|o(difier(UV|World)?|ve(UV|Edge|Vertex|Face(tUV)?))|erge(UV|Edge|Vert|Face)|ap(Sew(Move)?|Cut|Del))|B(oolOp|evel|lindData|ase)|S(traightenUVBorder|oftEdge|ubd(Edge|Face)|p(h(ere|Proj)|lit(Ring|Edge|Vert)?)|e(parate|wEdge)|mooth(Proxy|Face)?)|Normal(izeUV|PerVertex)?|C(hipOff|yl(inder|Proj)|o(ne|pyUV|l(orPerVertex|lapse(Edge|F)))|u(t(Manip(Container)?)?|be)|loseBorder|rea(seEdge|t(or|eFace)))|T(o(Subdiv|rus)|weak(UV)?|r(iangulate|ansfer))|OptUvs|D(uplicateEdge|el(Edge|Vertex|Facet))|Unite|P(yramid|oke(Manip)?|lan(e|arProj)|r(i(sm|mitive)|oj))|Extrude(Edge|Vertex|Face)|VertexNormalManip|Quad|Flip(UV|Edge)|WedgeFace|LayoutUV|A(utoProj|ppend(Vertex)?|verageVertex))|eVectorConstraint))|fx(Geometry|Hair|Toon)|l(usMinusAverage|a(n(e|arTrimSurface)|ce(2dTexture|3dTexture)))|a(ssMatrix|irBlend|r(ti(cle(SamplerInfo|C(olorMapper|loud)|TranspMapper|IncandMapper|AgeMapper)?|tion)|ent(Constraint|Tessellate)|amDimension))|r(imitive|o(ject(ion|Curve|Tangent)|xyManager)))|e(n(tity|v(Ball|ironmentFog|S(phere|ky)|C(hrome|ube)|Fog))|x(t(end(Surface|Curve)|rude)|p(lodeNurbsShell|ression)))|v(iewManip|o(lume(Shader|Noise|Fog|Light|AxisField)|rtexField)|e(ctor(RenderGlobals|Product)|rtexBakeSet))|quadShadingSwitch|f(i(tBspline|eld|l(ter(Resample|Simplify|ClosestSample|Euler)?|e|letCurve))|o(urByFourMatrix|llicle)|urPointOn(MeshInfo|Subd)|f(BlendSrf(Obsolete)?|d|FilletSrf)|l(ow|uid(S(hape|liceManip)|Texture(2D|3D)|Emitter)|exorShape)|ra(ctal|meCache))|w(tAddMatrix|ire|ood|eightGeometryFilter|ater|rap)|l(ight(Info|Fog|Li(st|nker))?|o(cator|okAt|d(Group|Thresholds)|ft)|uminance|ea(stSquaresModifier|ther)|a(yered(Shader|Texture)|ttice|mbert))|a(n(notationShape|i(sotropic|m(Blend(InOut)?|C(urve(T(T|U|L|A)|U(T|U|L|A))?|lip)))|gleBetween)|tt(ach(Surface|Curve)|rHierarchyTest)|i(rField|mConstraint)|dd(Matrix|DoubleLinear)|udio|vg(SurfacePoints|NurbsSurfacePoints|Curves)|lign(Manip|Surface|Curve)|r(cLengthDimension|tAttrPaintTest|eaLight|rayMapper)|mbientLight|bstractBase(NurbsConversion|Create))|r(igid(Body|Solver|Constraint)|o(ck|undConstantRadius)|e(s(olution|ultCurve(TimeTo(Time|Unitless|Linear|Angular))?)|nder(Rect|Globals(List)?|Box|Sphere|Cone|Quality|L(ight|ayer(Manager)?))|cord|v(olve(dPrimitive)?|erse(Surface|Curve)?)|f(erence|lect)|map(Hsv|Color|Value)|build(Surface|Curve))|a(dialField|mp(Shader)?)|gbToHsv|bfSrf)|g(uide|eo(Connect(or|able)|metry(Shape|Constraint|VarGroup|Filter))|lobal(Stitch|CacheControl)|ammaCorrect|r(id|oup(Id|Parts)|a(nite|vityField)))|Fur(Globals|Description|Feedback|Attractors)|xformManip|m(o(tionPath|untain|vie)|u(te|lt(Matrix|i(plyDivide|listerLight)|DoubleLinear))|pBirailSrf|e(sh(VarGroup)?|ntalray(Texture|IblShape))|a(terialInfo|ke(Group|Nurb(sSquare|Sphere|C(ylinder|ircle|one|ube)|Torus|Plane)|CircularArc|T(hreePointCircularArc|extCurves|woPointCircularArc))|rble))|b(irailSrf|o(neLattice|olean|undary(Base)?)|u(lge|mp(2d|3d))|evel(Plus)?|l(in(n|dDataTemplate)|end(Shape|Color(s|Sets)|TwoAttr|Device|Weighted)?)|a(se(GeometryVarGroup|ShadingSwitch|Lattice)|keSet)|r(ownian|ush)))\\\\b' },\n         { caseInsensitive: true,\n           token: 'keyword.control.mel',\n           regex: '\\\\b(if|in|else|for|while|break|continue|case|default|do|switch|return|switch|case|source|catch|alias)\\\\b' },\n         { token: 'keyword.other.mel', regex: '\\\\b(global)\\\\b' },\n         { caseInsensitive: true,\n           token: 'constant.language.mel',\n           regex: '\\\\b(null|undefined)\\\\b' },\n         { token: 'constant.numeric.mel',\n           regex: '\\\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\\\.?[0-9]*)|(\\\\.[0-9]+))((e|E)(\\\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\\\b' },\n         { token: 'punctuation.definition.string.begin.mel',\n           regex: '\"',\n           push: \n            [ { token: 'constant.character.escape.mel', regex: '\\\\\\\\.' },\n              { token: 'punctuation.definition.string.end.mel',\n                regex: '\"',\n                next: 'pop' },\n              { defaultToken: 'string.quoted.double.mel' } ] },\n         \n         { token: [ 'variable.other.mel', 'punctuation.definition.variable.mel' ],\n           regex: '(\\\\$)([a-zA-Z_\\\\x7f-\\\\xff][a-zA-Z0-9_\\\\x7f-\\\\xff]*?\\\\b)' },\n           \n         { token: 'punctuation.definition.string.begin.mel',\n           regex: '\\'',\n           push: \n            [ { token: 'constant.character.escape.mel', regex: '\\\\\\\\.' },\n              { token: 'punctuation.definition.string.end.mel',\n                regex: '\\'',\n                next: 'pop' },\n              { defaultToken: 'string.quoted.single.mel' } ] },\n         \n         { token: 'constant.language.mel',\n           regex: '\\\\b(false|true|yes|no|on|off)\\\\b' },\n           \n         { token: 'punctuation.definition.comment.mel',\n           regex: '/\\\\*',\n           push: \n            [ { token: 'punctuation.definition.comment.mel',\n                regex: '\\\\*/',\n                next: 'pop' },\n              { defaultToken: 'comment.block.mel' } ] },\n         \n         { token: [ 'comment.line.double-slash.mel', 'punctuation.definition.comment.mel' ],\n           regex: '(//)(.*$\\\\n?)' },\n           \n         { caseInsensitive: true,\n           token: 'keyword.operator.mel',\n           regex: '\\\\b(instanceof)\\\\b' },\n         { token: 'keyword.operator.symbolic.mel',\n           regex: '[-\\\\!\\\\%\\\\&\\\\*\\\\+\\\\=\\\\/\\\\?\\\\:]' },\n         \n         { token: [ 'meta.preprocessor.mel', 'punctuation.definition.preprocessor.mel' ],\n           regex: '(^[ \\\\t]*)((?:#)[a-zA-Z]+)' },\n         \n         { token: [ 'meta.function.mel', 'keyword.other.mel', 'storage.type.mel', 'entity.name.function.mel', 'punctuation.section.function.mel' ],\n           regex: '(global\\\\s*)?(proc\\\\s*)(\\\\w+\\\\s*\\\\[?\\\\]?\\\\s+|\\\\s+)([A-Za-z_][A-Za-z0-9_\\\\.]*)(\\\\s*\\\\()',\n           push: \n            [ { include: '$self' },\n              { token: 'punctuation.section.function.mel',\n                regex: '\\\\)',\n                next: 'pop' },\n              { defaultToken: 'meta.function.mel' } ] }\n              \n              ] }\n    \n    this.normalizeRules();\n};\n\noop.inherits(MELHighlightRules, TextHighlightRules);\n\nexports.MELHighlightRules = MELHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/mel\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/mel_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar MELHighlightRules = require(\"./mel_highlight_rules\").MELHighlightRules;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = MELHighlightRules;\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n    this.$id = \"ace/mode/mel\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-mips_assembler.js",
    "content": "ace.define(\"ace/mode/mips_assembler_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar MIPSAssemblerHighlightRules = function() {\n\n    this.$rules = { start: \n       [ { token: 'support.function.pseudo.mips',\n           regex: '\\\\b(?:mul|abs|div|divu|mulo|mulou|neg|negu|not|rem|remu|rol|ror|li|seq|sge|sgeu|sgt|sgtu|sle|sleu|sne|b|beqz|bge|bgeu|bgt|bgtu|ble|bleu|blt|bltu|bnez|la|ld|ulh|ulhu|ulw|sd|ush|usw|move|mfc1\\\\.d|l\\\\.d|l\\\\.s|s\\\\.d|s\\\\.s)\\\\b',\n           comment: 'ok actually this are instructions, but one also could call them funtions…' },\n         { token: 'support.function.mips',\n           regex: '\\\\b(?:abs\\\\.d|abs\\\\.s|add|add\\\\.d|add\\\\.s|addi|addiu|addu|and|andi|bc1f|bc1t|beq|bgez|bgezal|bgtz|blez|bltz|bltzal|bne|break|c\\\\.eq\\\\.d|c\\\\.eq\\\\.s|c\\\\.le\\\\.d|c\\\\.le\\\\.s|c\\\\.lt\\\\.d|c\\\\.lt\\\\.s|ceil\\\\.w\\\\.d|ceil\\\\.w\\\\.s|clo|clz|cvt\\\\.d\\\\.s|cvt\\\\.d\\\\.w|cvt\\\\.s\\\\.d|cvt\\\\.s\\\\.w|cvt\\\\.w\\\\.d|cvt\\\\.w\\\\.s|div|div\\\\.d|div\\\\.s|divu|eret|floor\\\\.w\\\\.d|floor\\\\.w\\\\.s|j|jal|jalr|jr|lb|lbu|lh|lhu|ll|lui|lw|lwc1|lwl|lwr|madd|maddu|mfc0|mfc1|mfhi|mflo|mov\\\\.d|mov\\\\.s|movf|movf\\\\.d|movf\\\\.s|movn|movn\\\\.d|movn\\\\.s|movt|movt\\\\.d|movt\\\\.s|movz|movz\\\\.d|movz\\\\.s|msub|mtc0|mtc1|mthi|mtlo|mul|mul\\\\.d|mul\\\\.s|mult|multu|neg\\\\.d|neg\\\\.s|nop|nor|or|ori|round\\\\.w\\\\.d|round\\\\.w\\\\.s|sb|sc|sdc1|sh|sll|sllv|slt|slti|sltiu|sltu|sqrt\\\\.d|sqrt\\\\.s|sra|srav|srl|srlv|sub|sub\\\\.d|sub\\\\.s|subu|sw|swc1|swl|swr|syscall|teq|teqi|tge|tgei|tgeiu|tgeu|tlt|tlti|tltiu|tltu|trunc\\\\.w\\\\.d|trunc\\\\.w\\\\.s|xor|xori)\\\\b' },\n         { token: 'storage.type.mips',\n           regex: '\\\\.(?:ascii|asciiz|byte|data|double|float|half|kdata|ktext|space|text|word|set\\\\s*(?:noat|at))\\\\b' },\n         { token: 'storage.modifier.mips',\n           regex: '\\\\.(?:align|extern||globl)\\\\b' },\n         { token: \n            [ 'entity.name.function.label.mips',\n              'meta.function.label.mips' ],\n           regex: '\\\\b([A-Za-z0-9_]+)(:)' },\n         { token: \n            [ 'punctuation.definition.variable.mips',\n              'variable.other.register.usable.by-number.mips' ],\n           regex: '(\\\\$)(0|[2-9]|1[0-9]|2[0-5]|2[89]|3[0-1])\\\\b' },\n         { token: \n            [ 'punctuation.definition.variable.mips',\n              'variable.other.register.usable.by-name.mips' ],\n           regex: '(\\\\$)(zero|v[01]|a[0-3]|t[0-9]|s[0-7]|gp|sp|fp|ra)\\\\b' },\n         { token: \n            [ 'punctuation.definition.variable.mips',\n              'variable.other.register.reserved.mips' ],\n           regex: '(\\\\$)(at|k[01]|1|2[67])\\\\b' },\n         { token: \n            [ 'punctuation.definition.variable.mips',\n              'variable.other.register.usable.floating-point.mips',\n              'variable.other.register.usable.floating-point.mips' ],\n           regex: '(\\\\$)(f)([0-9]|1[0-9]|2[0-9]|3[0-1])\\\\b' },\n         { token: 'constant.numeric.float.mips',\n           regex: '\\\\b\\\\d+\\\\.\\\\d+\\\\b' },\n         { token: 'constant.numeric.integer.mips',\n           regex: '\\\\b(?:\\\\d+|0(?:x|X)[a-fA-F0-9]+)\\\\b' },\n         { token: 'punctuation.definition.string.begin.mips',\n           regex: '\"',\n           push: \n            [ { token: 'punctuation.definition.string.end.mips',\n                regex: '\"',\n                next: 'pop' },\n              { token: 'constant.character.escape.mips',\n                regex: '\\\\\\\\[rnt\\\\\\\\\"]' },\n              { defaultToken: 'string.quoted.double.mips' } ] },\n         { token: 'punctuation.definition.comment.mips',\n           regex: '#',\n           push: \n            [ { token: 'comment.line.number-sign.mips',\n                regex: '$',\n                next: 'pop' },\n              { defaultToken: 'comment.line.number-sign.mips' } ] } ] }\n    \n    this.normalizeRules();\n};\n\nMIPSAssemblerHighlightRules.metaData = { fileTypes: [ 's', 'mips', 'spim', 'asm' ],\n      keyEquivalent: '^~M',\n      name: 'MIPS Assembler',\n      scopeName: 'source.mips' }\n\n\noop.inherits(MIPSAssemblerHighlightRules, TextHighlightRules);\n\nexports.MIPSAssemblerHighlightRules = MIPSAssemblerHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    \n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/)#(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/mips_assembler\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/mips_assembler_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar MIPSAssemblerHighlightRules = require(\"./mips_assembler_highlight_rules\").MIPSAssemblerHighlightRules;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = MIPSAssemblerHighlightRules;\n    this.foldingRules = new FoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.$id = \"ace/mode/mips_assembler\"\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-mipsassembler.js",
    "content": "ace.define(\"ace/mode/mipsassembler_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar mipsassemblerHighlightRules = function() {\n\n    this.$rules = {\n            start: [{\n                token: \"string.start\",\n                regex: '\"',\n                next: \"qstring\"\n            }],\n            qstring: [{\n                token: \"escape\",\n                regex: /\\\\./,\n            }, {\n                token: \"string.end\",\n                regex: '\"',\n                next: \"start\"\n            }],\n        }\n    \n    this.normalizeRules();\n};\n\nmipsassemblerHighlightRules.metaData = \n\n\noop.inherits(mipsassemblerHighlightRules, TextHighlightRules);\n\nexports.mipsassemblerHighlightRules = mipsassemblerHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    \n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/)#(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/mipsassembler\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/mipsassembler_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar HighlightRules = require(\"./mipsassembler_highlight_rules\").HighlightRules;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = HighlightRules;\n    this.foldingRules = new FoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.$id = \"ace/mode/mipsassembler\"\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-mushcode.js",
    "content": "ace.define(\"ace/mode/mushcode_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar MushCodeRules = function() {\n\n\n    var keywords = (\n \"@if|\"+\n \"@ifelse|\"+\n \"@switch|\"+\n \"@halt|\"+\n \"@dolist|\"+\n \"@create|\"+\n \"@scent|\"+\n \"@sound|\"+\n \"@touch|\"+\n \"@ataste|\"+\n \"@osound|\"+\n \"@ahear|\"+\n \"@aahear|\"+\n \"@amhear|\"+\n \"@otouch|\"+\n \"@otaste|\"+\n \"@drop|\"+\n \"@odrop|\"+\n \"@adrop|\"+\n \"@dropfail|\"+\n \"@odropfail|\"+\n \"@smell|\"+\n \"@oemit|\"+\n \"@emit|\"+\n \"@pemit|\"+\n \"@parent|\"+\n \"@clone|\"+\n \"@taste|\"+\n \"whisper|\"+\n \"page|\"+\n \"say|\"+\n \"pose|\"+\n \"semipose|\"+\n \"teach|\"+\n \"touch|\"+\n \"taste|\"+\n \"smell|\"+\n \"listen|\"+\n \"look|\"+\n \"move|\"+\n \"go|\"+\n \"home|\"+\n \"follow|\"+\n \"unfollow|\"+\n \"desert|\"+\n \"dismiss|\"+\n \"@tel\"\n    );\n\n    var builtinConstants = (\n        \"=#0\"\n    );\n\n    var builtinFunctions = (\n \"default|\"+\n \"edefault|\"+\n \"eval|\"+\n \"get_eval|\"+\n \"get|\"+\n \"grep|\"+\n \"grepi|\"+\n \"hasattr|\"+\n \"hasattrp|\"+\n \"hasattrval|\"+\n \"hasattrpval|\"+\n \"lattr|\"+\n \"nattr|\"+\n \"poss|\"+\n \"udefault|\"+\n \"ufun|\"+\n \"u|\"+\n \"v|\"+\n \"uldefault|\"+\n \"xget|\"+\n \"zfun|\"+\n \"band|\"+\n \"bnand|\"+\n \"bnot|\"+\n \"bor|\"+\n \"bxor|\"+\n \"shl|\"+\n \"shr|\"+\n \"and|\"+\n \"cand|\"+\n \"cor|\"+\n \"eq|\"+\n \"gt|\"+\n \"gte|\"+\n \"lt|\"+\n \"lte|\"+\n \"nand|\"+\n \"neq|\"+\n \"nor|\"+\n \"not|\"+\n \"or|\"+\n \"t|\"+\n \"xor|\"+\n \"con|\"+\n \"entrances|\"+\n \"exit|\"+\n \"followers|\"+\n \"home|\"+\n \"lcon|\"+\n \"lexits|\"+\n \"loc|\"+\n \"locate|\"+\n \"lparent|\"+\n \"lsearch|\"+\n \"next|\"+\n \"num|\"+\n \"owner|\"+\n \"parent|\"+\n \"pmatch|\"+\n \"rloc|\"+\n \"rnum|\"+\n \"room|\"+\n \"where|\"+\n \"zone|\"+\n \"worn|\"+\n \"held|\"+\n \"carried|\"+\n \"acos|\"+\n \"asin|\"+\n \"atan|\"+\n \"ceil|\"+\n \"cos|\"+\n \"e|\"+\n \"exp|\"+\n \"fdiv|\"+\n \"fmod|\"+\n \"floor|\"+\n \"log|\"+\n \"ln|\"+\n \"pi|\"+\n \"power|\"+\n \"round|\"+\n \"sin|\"+\n \"sqrt|\"+\n \"tan|\"+\n \"aposs|\"+\n \"andflags|\"+\n \"conn|\"+\n \"commandssent|\"+\n \"controls|\"+\n \"doing|\"+\n \"elock|\"+\n \"findable|\"+\n \"flags|\"+\n \"fullname|\"+\n \"hasflag|\"+\n \"haspower|\"+\n \"hastype|\"+\n \"hidden|\"+\n \"idle|\"+\n \"isbaker|\"+\n \"lock|\"+\n \"lstats|\"+\n \"money|\"+\n \"who|\"+\n \"name|\"+\n \"nearby|\"+\n \"obj|\"+\n \"objflags|\"+\n \"photo|\"+\n \"poll|\"+\n \"powers|\"+\n \"pendingtext|\"+\n \"receivedtext|\"+\n \"restarts|\"+\n \"restarttime|\"+\n \"subj|\"+\n \"shortestpath|\"+\n \"tmoney|\"+\n \"type|\"+\n \"visible|\"+\n \"cat|\"+\n \"element|\"+\n \"elements|\"+\n \"extract|\"+\n \"filter|\"+\n \"filterbool|\"+\n \"first|\"+\n \"foreach|\"+\n \"fold|\"+\n \"grab|\"+\n \"graball|\"+\n \"index|\"+\n \"insert|\"+\n \"itemize|\"+\n \"items|\"+\n \"iter|\"+\n \"last|\"+\n \"ldelete|\"+\n \"map|\"+\n \"match|\"+\n \"matchall|\"+\n \"member|\"+\n \"mix|\"+\n \"munge|\"+\n \"pick|\"+\n \"remove|\"+\n \"replace|\"+\n \"rest|\"+\n \"revwords|\"+\n \"setdiff|\"+\n \"setinter|\"+\n \"setunion|\"+\n \"shuffle|\"+\n \"sort|\"+\n \"sortby|\"+\n \"splice|\"+\n \"step|\"+\n \"wordpos|\"+\n \"words|\"+\n \"add|\"+\n \"lmath|\"+\n \"max|\"+\n \"mean|\"+\n \"median|\"+\n \"min|\"+\n \"mul|\"+\n \"percent|\"+\n \"sign|\"+\n \"stddev|\"+\n \"sub|\"+\n \"val|\"+\n \"bound|\"+\n \"abs|\"+\n \"inc|\"+\n \"dec|\"+\n \"dist2d|\"+\n \"dist3d|\"+\n \"div|\"+\n \"floordiv|\"+\n \"mod|\"+\n \"modulo|\"+\n \"remainder|\"+\n \"vadd|\"+\n \"vdim|\"+\n \"vdot|\"+\n \"vmag|\"+\n \"vmax|\"+\n \"vmin|\"+\n \"vmul|\"+\n \"vsub|\"+\n \"vunit|\"+\n \"regedit|\"+\n \"regeditall|\"+\n \"regeditalli|\"+\n \"regediti|\"+\n \"regmatch|\"+\n \"regmatchi|\"+\n \"regrab|\"+\n \"regraball|\"+\n \"regraballi|\"+\n \"regrabi|\"+\n \"regrep|\"+\n \"regrepi|\"+\n \"after|\"+\n \"alphamin|\"+\n \"alphamax|\"+\n \"art|\"+\n \"before|\"+\n \"brackets|\"+\n \"capstr|\"+\n \"case|\"+\n \"caseall|\"+\n \"center|\"+\n \"containsfansi|\"+\n \"comp|\"+\n \"decompose|\"+\n \"decrypt|\"+\n \"delete|\"+\n \"edit|\"+\n \"encrypt|\"+\n \"escape|\"+\n \"if|\"+\n \"ifelse|\"+\n \"lcstr|\"+\n \"left|\"+\n \"lit|\"+\n \"ljust|\"+\n \"merge|\"+\n \"mid|\"+\n \"ostrlen|\"+\n \"pos|\"+\n \"repeat|\"+\n \"reverse|\"+\n \"right|\"+\n \"rjust|\"+\n \"scramble|\"+\n \"secure|\"+\n \"space|\"+\n \"spellnum|\"+\n \"squish|\"+\n \"strcat|\"+\n \"strmatch|\"+\n \"strinsert|\"+\n \"stripansi|\"+\n \"stripfansi|\"+\n \"strlen|\"+\n \"switch|\"+\n \"switchall|\"+\n \"table|\"+\n \"tr|\"+\n \"trim|\"+\n \"ucstr|\"+\n \"unsafe|\"+\n \"wrap|\"+\n \"ctitle|\"+\n \"cwho|\"+\n \"channels|\"+\n \"clock|\"+\n \"cflags|\"+\n \"ilev|\"+\n \"itext|\"+\n \"inum|\"+\n \"convsecs|\"+\n \"convutcsecs|\"+\n \"convtime|\"+\n \"ctime|\"+\n \"etimefmt|\"+\n \"isdaylight|\"+\n \"mtime|\"+\n \"secs|\"+\n \"msecs|\"+\n \"starttime|\"+\n \"time|\"+\n \"timefmt|\"+\n \"timestring|\"+\n \"utctime|\"+\n \"atrlock|\"+\n \"clone|\"+\n \"create|\"+\n \"cook|\"+\n \"dig|\"+\n \"emit|\"+\n \"lemit|\"+\n \"link|\"+\n \"oemit|\"+\n \"open|\"+\n \"pemit|\"+\n \"remit|\"+\n \"set|\"+\n \"tel|\"+\n \"wipe|\"+\n \"zemit|\"+\n \"fbcreate|\"+\n \"fbdestroy|\"+\n \"fbwrite|\"+\n \"fbclear|\"+\n \"fbcopy|\"+\n \"fbcopyto|\"+\n \"fbclip|\"+\n \"fbdump|\"+\n \"fbflush|\"+\n \"fbhset|\"+\n \"fblist|\"+\n \"fbstats|\"+\n \"qentries|\"+\n \"qentry|\"+\n \"play|\"+\n \"ansi|\"+\n \"break|\"+\n \"c|\"+\n \"asc|\"+\n \"die|\"+\n \"isdbref|\"+\n \"isint|\"+\n \"isnum|\"+\n \"isletters|\"+\n \"linecoords|\"+\n \"localize|\"+\n \"lnum|\"+\n \"nameshort|\"+\n \"null|\"+\n \"objeval|\"+\n \"r|\"+\n \"rand|\"+\n \"s|\"+\n \"setq|\"+\n \"setr|\"+\n \"soundex|\"+\n \"soundslike|\"+\n \"valid|\"+\n \"vchart|\"+\n \"vchart2|\"+\n \"vlabel|\"+\n \"@@|\"+\n \"bakerdays|\"+\n \"bodybuild|\"+\n \"box|\"+\n \"capall|\"+\n \"catalog|\"+\n \"children|\"+\n \"ctrailer|\"+\n \"darttime|\"+\n \"debt|\"+\n \"detailbar|\"+\n \"exploredroom|\"+\n \"fansitoansi|\"+\n \"fansitoxansi|\"+\n \"fullbar|\"+\n \"halfbar|\"+\n \"isdarted|\"+\n \"isnewbie|\"+\n \"isword|\"+\n \"lambda|\"+\n \"lobjects|\"+\n \"lplayers|\"+\n \"lthings|\"+\n \"lvexits|\"+\n \"lvobjects|\"+\n \"lvplayers|\"+\n \"lvthings|\"+\n \"newswrap|\"+\n \"numsuffix|\"+\n \"playerson|\"+\n \"playersthisweek|\"+\n \"randomad|\"+\n \"randword|\"+\n \"realrandword|\"+\n \"replacechr|\"+\n \"second|\"+\n \"splitamount|\"+\n \"strlenall|\"+\n \"text|\"+\n \"third|\"+\n \"tofansi|\"+\n \"totalac|\"+\n \"unique|\"+\n \"getaddressroom|\"+\n \"listpropertycomm|\"+\n \"listpropertyres|\"+\n \"lotowner|\"+\n \"lotrating|\"+\n \"lotratingcount|\"+\n \"lotvalue|\"+\n \"boughtproduct|\"+\n \"companyabb|\"+\n \"companyicon|\"+\n \"companylist|\"+\n \"companyname|\"+\n \"companyowners|\"+\n \"companyvalue|\"+\n \"employees|\"+\n \"invested|\"+\n \"productlist|\"+\n \"productname|\"+\n \"productowners|\"+\n \"productrating|\"+\n \"productratingcount|\"+\n \"productsoldat|\"+\n \"producttype|\"+\n \"ratedproduct|\"+\n \"soldproduct|\"+\n \"topproducts|\"+\n \"totalspentonproduct|\"+\n \"totalstock|\"+\n \"transfermoney|\"+\n \"uniquebuyercount|\"+\n \"uniqueproductsbought|\"+\n \"validcompany|\"+\n \"deletepicture|\"+\n \"fbsave|\"+\n \"getpicturesecurity|\"+\n \"haspicture|\"+\n \"listpictures|\"+\n \"picturesize|\"+\n \"replacecolor|\"+\n \"rgbtocolor|\"+\n \"savepicture|\"+\n \"setpicturesecurity|\"+\n \"showpicture|\"+\n \"piechart|\"+\n \"piechartlabel|\"+\n \"createmaze|\"+\n \"drawmaze|\"+\n \"drawwireframe\"\n    );\n    var keywordMapper = this.createKeywordMapper({\n        \"invalid.deprecated\": \"debugger\",\n        \"support.function\": builtinFunctions,\n        \"constant.language\": builtinConstants,\n        \"keyword\": keywords\n    }, \"identifier\");\n\n    var strPre = \"(?:r|u|ur|R|U|UR|Ur|uR)?\";\n\n    var decimalInteger = \"(?:(?:[1-9]\\\\d*)|(?:0))\";\n    var octInteger = \"(?:0[oO]?[0-7]+)\";\n    var hexInteger = \"(?:0[xX][\\\\dA-Fa-f]+)\";\n    var binInteger = \"(?:0[bB][01]+)\";\n    var integer = \"(?:\" + decimalInteger + \"|\" + octInteger + \"|\" + hexInteger + \"|\" + binInteger + \")\";\n\n    var exponent = \"(?:[eE][+-]?\\\\d+)\";\n    var fraction = \"(?:\\\\.\\\\d+)\";\n    var intPart = \"(?:\\\\d+)\";\n    var pointFloat = \"(?:(?:\" + intPart + \"?\" + fraction + \")|(?:\" + intPart + \"\\\\.))\";\n    var exponentFloat = \"(?:(?:\" + pointFloat + \"|\" +  intPart + \")\" + exponent + \")\";\n    var floatNumber = \"(?:\" + exponentFloat + \"|\" + pointFloat + \")\";\n\n    this.$rules = {\n        \"start\" : [\n         {\n                token : \"variable\", // mush substitution register\n                regex : \"%[0-9]{1}\"\n         },\n         {\n                token : \"variable\", // mush substitution register\n                regex : \"%q[0-9A-Za-z]{1}\"\n         },\n         {\n                token : \"variable\", // mush special character register\n                regex : \"%[a-zA-Z]{1}\"\n         },\n         {\n                token: \"variable.language\",\n                regex: \"%[a-z0-9-_]+\"\n         },\n        {\n            token : \"constant.numeric\", // imaginary\n            regex : \"(?:\" + floatNumber + \"|\\\\d+)[jJ]\\\\b\"\n        }, {\n            token : \"constant.numeric\", // float\n            regex : floatNumber\n        }, {\n            token : \"constant.numeric\", // long integer\n            regex : integer + \"[lL]\\\\b\"\n        }, {\n            token : \"constant.numeric\", // integer\n            regex : integer + \"\\\\b\"\n        }, {\n            token : keywordMapper,\n            regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n        }, {\n            token : \"keyword.operator\",\n            regex : \"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|#|%|<<|>>|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"\n        }, {\n            token : \"paren.lparen\",\n            regex : \"[\\\\[\\\\(\\\\{]\"\n        }, {\n            token : \"paren.rparen\",\n            regex : \"[\\\\]\\\\)\\\\}]\"\n        }, {\n            token : \"text\",\n            regex : \"\\\\s+\"\n        } ]\n    };\n};\n\noop.inherits(MushCodeRules, TextHighlightRules);\n\nexports.MushCodeRules = MushCodeRules;\n});\n\nace.define(\"ace/mode/folding/pythonic\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(markers) {\n    this.foldingStartMarker = new RegExp(\"([\\\\[{])(?:\\\\s*)$|(\" + markers + \")(?:\\\\s*)(?:#.*)?$\");\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, match.index);\n            if (match[2])\n                return this.indentationBlock(session, row, match.index + match[2].length);\n            return this.indentationBlock(session, row);\n        }\n    }\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/mushcode\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/mushcode_highlight_rules\",\"ace/mode/folding/pythonic\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar MushCodeRules = require(\"./mushcode_highlight_rules\").MushCodeRules;\nvar PythonFoldMode = require(\"./folding/pythonic\").FoldMode;\nvar Range = require(\"../range\").Range;\n\nvar Mode = function() {\n    this.HighlightRules = MushCodeRules;\n    this.foldingRules = new PythonFoldMode(\"\\\\:\");\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[:]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        }\n\n        return indent;\n    };\n\n   var outdents = {\n        \"pass\": 1,\n        \"return\": 1,\n        \"raise\": 1,\n        \"break\": 1,\n        \"continue\": 1\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        if (input !== \"\\r\\n\" && input !== \"\\r\" && input !== \"\\n\")\n            return false;\n\n        var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;\n\n        if (!tokens)\n            return false;\n        do {\n            var last = tokens.pop();\n        } while (last && (last.type == \"comment\" || (last.type == \"text\" && last.value.match(/^\\s+$/))));\n\n        if (!last)\n            return false;\n\n        return (last.type == \"keyword\" && outdents[last.value]);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n\n        row += 1;\n        var indent = this.$getIndent(doc.getLine(row));\n        var tab = doc.getTabString();\n        if (indent.slice(-tab.length) == tab)\n            doc.remove(new Range(row, indent.length-tab.length, row, indent.length));\n    };\n\n    this.$id = \"ace/mode/mushcode\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-mysql.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/mysql_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar MysqlHighlightRules = function() {\n\n    var mySqlKeywords = /*sql*/ \"alter|and|as|asc|between|count|create|delete|desc|distinct|drop|from|having|in|insert|into|is|join|like|not|on|or|order|select|set|table|union|update|values|where\" + \"|accessible|action|add|after|algorithm|all|analyze|asensitive|at|authors|auto_increment|autocommit|avg|avg_row_length|before|binary|binlog|both|btree|cache|call|cascade|cascaded|case|catalog_name|chain|change|changed|character|check|checkpoint|checksum|class_origin|client_statistics|close|coalesce|code|collate|collation|collations|column|columns|comment|commit|committed|completion|concurrent|condition|connection|consistent|constraint|contains|continue|contributors|convert|cross|current_date|current_time|current_timestamp|current_user|cursor|data|database|databases|day_hour|day_microsecond|day_minute|day_second|deallocate|dec|declare|default|delay_key_write|delayed|delimiter|des_key_file|describe|deterministic|dev_pop|dev_samp|deviance|directory|disable|discard|distinctrow|div|dual|dumpfile|each|elseif|enable|enclosed|end|ends|engine|engines|enum|errors|escape|escaped|even|event|events|every|execute|exists|exit|explain|extended|fast|fetch|field|fields|first|flush|for|force|foreign|found_rows|full|fulltext|function|general|global|grant|grants|group|groupby_concat|handler|hash|help|high_priority|hosts|hour_microsecond|hour_minute|hour_second|if|ignore|ignore_server_ids|import|index|index_statistics|infile|inner|innodb|inout|insensitive|insert_method|install|interval|invoker|isolation|iterate|key|keys|kill|language|last|leading|leave|left|level|limit|linear|lines|list|load|local|localtime|localtimestamp|lock|logs|low_priority|master|master_heartbeat_period|master_ssl_verify_server_cert|masters|match|max|max_rows|maxvalue|message_text|middleint|migrate|min|min_rows|minute_microsecond|minute_second|mod|mode|modifies|modify|mutex|mysql_errno|natural|next|no|no_write_to_binlog|offline|offset|one|online|open|optimize|option|optionally|out|outer|outfile|pack_keys|parser|partition|partitions|password|phase|plugin|plugins|prepare|preserve|prev|primary|privileges|procedure|processlist|profile|profiles|purge|query|quick|range|read|read_write|reads|real|rebuild|recover|references|regexp|relaylog|release|remove|rename|reorganize|repair|repeatable|replace|require|resignal|restrict|resume|return|returns|revoke|right|rlike|rollback|rollup|row|row_format|rtree|savepoint|schedule|schema|schema_name|schemas|second_microsecond|security|sensitive|separator|serializable|server|session|share|show|signal|slave|slow|smallint|snapshot|soname|spatial|specific|sql|sql_big_result|sql_buffer_result|sql_cache|sql_calc_found_rows|sql_no_cache|sql_small_result|sqlexception|sqlstate|sqlwarning|ssl|start|starting|starts|status|std|stddev|stddev_pop|stddev_samp|storage|straight_join|subclass_origin|sum|suspend|table_name|table_statistics|tables|tablespace|temporary|terminated|to|trailing|transaction|trigger|triggers|truncate|uncommitted|undo|uninstall|unique|unlock|upgrade|usage|use|use_frm|user|user_resources|user_statistics|using|utc_date|utc_time|utc_timestamp|value|variables|varying|view|views|warnings|when|while|with|work|write|xa|xor|year_month|zerofill|begin|do|then|else|loop|repeat\";\n    var builtins = \"by|bool|boolean|bit|blob|decimal|double|enum|float|long|longblob|longtext|medium|mediumblob|mediumint|mediumtext|time|timestamp|tinyblob|tinyint|tinytext|text|bigint|int|int1|int2|int3|int4|int8|integer|float|float4|float8|double|char|varbinary|varchar|varcharacter|precision|date|datetime|year|unsigned|signed|numeric|ucase|lcase|mid|len|round|rank|now|format|coalesce|ifnull|isnull|nvl\"\n    var variable = \"charset|clear|connect|edit|ego|exit|go|help|nopager|notee|nowarning|pager|print|prompt|quit|rehash|source|status|system|tee\"\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": builtins,\n        \"keyword\": mySqlKeywords,\n        \"constant\": \"false|true|null|unknown|date|time|timestamp|ODBCdotTable|zerolessFloat\",\n        \"variable.language\": variable\n    }, \"identifier\", true);\n\n    \n    function string(rule) {\n        var start = rule.start;\n        var escapeSeq = rule.escape;\n        return {\n            token: \"string.start\",\n            regex: start,\n            next: [\n                {token: \"constant.language.escape\", regex: escapeSeq},\n                {token: \"string.end\", next: \"start\", regex: start},\n                {defaultToken: \"string\"}\n            ]\n        };\n    }\n\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment\", regex : \"(?:-- |#).*$\"\n        },  \n        string({start: '\"', escape: /\\\\[0'\"bnrtZ\\\\%_]?/}),\n        string({start: \"'\", escape: /\\\\[0'\"bnrtZ\\\\%_]?/}),\n        DocCommentHighlightRules.getStartRule(\"doc-start\"),\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next : \"comment\"\n        }, {\n            token : \"constant.numeric\", // hex\n            regex : /0[xX][0-9a-fA-F]+|[xX]'[0-9a-fA-F]+'|0[bB][01]+|[bB]'[01]+'/\n        }, {\n            token : \"constant.numeric\", // float\n            regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n        }, {\n            token : keywordMapper,\n            regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n        }, {\n            token : \"constant.class\",\n            regex : \"@@?[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n        }, {\n            token : \"constant.buildin\",\n            regex : \"`[^`]*`\"\n        }, {\n            token : \"keyword.operator\",\n            regex : \"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\"\n        }, {\n            token : \"paren.lparen\",\n            regex : \"[\\\\(]\"\n        }, {\n            token : \"paren.rparen\",\n            regex : \"[\\\\)]\"\n        }, {\n            token : \"text\",\n            regex : \"\\\\s+\"\n        } ],\n        \"comment\" : [\n            {token : \"comment\", regex : \"\\\\*\\\\/\", next : \"start\"},\n            {defaultToken : \"comment\"}\n        ]\n    };\n\n    this.embedRules(DocCommentHighlightRules, \"doc-\", [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n    this.normalizeRules();\n};\n\noop.inherits(MysqlHighlightRules, TextHighlightRules);\n\nexports.MysqlHighlightRules = MysqlHighlightRules;\n});\n\nace.define(\"ace/mode/mysql\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/mysql_highlight_rules\"], function(require, exports, module) {\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"../mode/text\").Mode;\nvar MysqlHighlightRules = require(\"./mysql_highlight_rules\").MysqlHighlightRules;\n\nvar Mode = function() {\n    this.HighlightRules = MysqlHighlightRules;\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {       \n    this.lineCommentStart = [\"--\", \"#\"]; // todo space\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.$id = \"ace/mode/mysql\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-nix.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar cFunctions = exports.cFunctions = \"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\"\n\nvar c_cppHighlightRules = function() {\n\n    var keywordControls = (\n        \"break|case|continue|default|do|else|for|goto|if|_Pragma|\" +\n        \"return|switch|while|catch|operator|try|throw|using\"\n    );\n    \n    var storageType = (\n        \"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|\" +\n        \"_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|\" +\n        \"class|wchar_t|template|char16_t|char32_t\"\n    );\n\n    var storageModifiers = (\n        \"const|extern|register|restrict|static|volatile|inline|private|\" +\n        \"protected|public|friend|explicit|virtual|export|mutable|typename|\" +\n        \"constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\"\n    );\n\n    var keywordOperators = (\n        \"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq\" +\n        \"const_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\"\n    );\n\n    var builtinConstants = (\n        \"NULL|true|false|TRUE|FALSE|nullptr\"\n    );\n\n    var keywordMapper = this.$keywords = this.createKeywordMapper({\n        \"keyword.control\" : keywordControls,\n        \"storage.type\" : storageType,\n        \"storage.modifier\" : storageModifiers,\n        \"keyword.operator\" : keywordOperators,\n        \"variable.language\": \"this\",\n        \"constant.language\": builtinConstants\n    }, \"identifier\");\n\n    var identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\";\n    var escapeRe = /\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source;\n\n    this.$rules = { \n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"//$\",\n                next : \"start\"\n            }, {\n                token : \"comment\",\n                regex : \"//\",\n                next : \"singleLineComment\"\n            },\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n                token : \"string\", // character\n                regex : \"'(?:\" + escapeRe + \"|.)?'\"\n            }, {\n                token : \"string.start\",\n                regex : '\"', \n                stateName: \"qqstring\",\n                next: [\n                    { token: \"string\", regex: /\\\\\\s*$/, next: \"qqstring\" },\n                    { token: \"constant.language.escape\", regex: escapeRe },\n                    { token: \"constant.language.escape\", regex: /%[^'\"\\\\]/ },\n                    { token: \"string.end\", regex: '\"|$', next: \"start\" },\n                    { defaultToken: \"string\"}\n                ]\n            }, {\n                token : \"string.start\",\n                regex : 'R\"\\\\(', \n                stateName: \"rawString\",\n                next: [\n                    { token: \"string.end\", regex: '\\\\)\"', next: \"start\" },\n                    { defaultToken: \"string\"}\n                ]\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : \"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"\n            }, {\n                token : \"keyword\", // pre-compiler directives\n                regex : \"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",\n                next  : \"directive\"\n            }, {\n                token : \"keyword\", // special case pre-compiler directive\n                regex : \"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"\n            }, {\n                token : \"support.function.C99.c\",\n                regex : cFunctions\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/\n            }, {\n              token : \"punctuation.operator\",\n              regex : \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ],\n        \"singleLineComment\" : [\n            {\n                token : \"comment\",\n                regex : /\\\\$/,\n                next : \"singleLineComment\"\n            }, {\n                token : \"comment\",\n                regex : /$/,\n                next : \"start\"\n            }, {\n                defaultToken: \"comment\"\n            }\n        ],\n        \"directive\" : [\n            {\n                token : \"constant.other.multiline\",\n                regex : /\\\\/\n            },\n            {\n                token : \"constant.other.multiline\",\n                regex : /.*\\\\/\n            },\n            {\n                token : \"constant.other\",\n                regex : \"\\\\s*<.+?>\",\n                next : \"start\"\n            },\n            {\n                token : \"constant.other\", // single line\n                regex : '\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',\n                next : \"start\"\n            }, \n            {\n                token : \"constant.other\", // single line\n                regex : \"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",\n                next : \"start\"\n            },\n            {\n                token : \"constant.other\",\n                regex : /[^\\\\\\/]+/,\n                next : \"start\"\n            }\n        ]\n    };\n\n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n    this.normalizeRules();\n};\n\noop.inherits(c_cppHighlightRules, TextHighlightRules);\n\nexports.c_cppHighlightRules = c_cppHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/c_cpp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c_cpp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar c_cppHighlightRules = require(\"./c_cpp_highlight_rules\").c_cppHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar Range = require(\"../range\").Range;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = c_cppHighlightRules;\n\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.$id = \"ace/mode/c_cpp\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/nix_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n    \"use strict\";\n\n    var oop = require(\"../lib/oop\");\n    var TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\n    var NixHighlightRules = function() {\n\n        var constantLanguage = \"true|false\";\n        var keywordControl = \"with|import|if|else|then|inherit\";\n        var keywordDeclaration = \"let|in|rec\";\n\n        var keywordMapper = this.createKeywordMapper({\n            \"constant.language.nix\": constantLanguage,\n            \"keyword.control.nix\": keywordControl,\n            \"keyword.declaration.nix\": keywordDeclaration\n        }, \"identifier\");\n\n        this.$rules = {\n            \"start\": [{\n                    token: \"comment\",\n                    regex: /#.*$/\n                }, {\n                    token: \"comment\",\n                    regex: /\\/\\*/,\n                    next: \"comment\"\n                }, {\n                    token: \"constant\",\n                    regex: \"<[^>]+>\"\n                }, {\n                    regex: \"(==|!=|<=?|>=?)\",\n                    token: [\"keyword.operator.comparison.nix\"]\n                }, {\n                    regex: \"((?:[+*/%-]|\\\\~)=)\",\n                    token: [\"keyword.operator.assignment.arithmetic.nix\"]\n                }, {\n                    regex: \"=\",\n                    token: \"keyword.operator.assignment.nix\"\n                }, {\n                    token: \"string\",\n                    regex: \"''\",\n                    next: \"qqdoc\"\n                }, {\n                    token: \"string\",\n                    regex: \"'\",\n                    next: \"qstring\"\n                }, {\n                    token: \"string\",\n                    regex: '\"',\n                    push: \"qqstring\"\n                }, {\n                    token: \"constant.numeric\", // hex\n                    regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n                }, {\n                    token: \"constant.numeric\", // float\n                    regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n                }, {\n                    token: keywordMapper,\n                    regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n                }, {\n                    regex: \"}\",\n                    token: function(val, start, stack) {\n                        return stack[1] && stack[1].charAt(0) == \"q\" ? \"constant.language.escape\" : \"text\";\n                    },\n                    next: \"pop\"\n                }],\n            \"comment\": [{\n                token: \"comment\", // closing comment\n                regex: \".*?\\\\*\\\\/\",\n                next: \"start\"\n            }, {\n                token: \"comment\", // comment spanning whole line\n                regex: \".+\"\n            }],\n            \"qqdoc\": [\n                {\n                    token: \"constant.language.escape\",\n                    regex: /\\$\\{/,\n                    push: \"start\"\n                }, {\n                    token: \"string\",\n                    regex: \"''\",\n                    next: \"pop\"\n                }, {\n                    defaultToken: \"string\"\n                }],\n            \"qqstring\": [\n                {\n                    token: \"constant.language.escape\",\n                    regex: /\\$\\{/,\n                    push: \"start\"\n                }, {\n                    token: \"string\",\n                    regex: '\"',\n                    next: \"pop\"\n                }, {\n                    defaultToken: \"string\"\n                }],\n            \"qstring\": [\n                {\n                    token: \"constant.language.escape\",\n                    regex: /\\$\\{/,\n                    push: \"start\"\n                }, {\n                    token: \"string\",\n                    regex: \"'\",\n                    next: \"pop\"\n                }, {\n                    defaultToken: \"string\"\n                }]\n        };\n\n        this.normalizeRules();\n    };\n\n    oop.inherits(NixHighlightRules, TextHighlightRules);\n\n    exports.NixHighlightRules = NixHighlightRules;\n});\n\nace.define(\"ace/mode/nix\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/c_cpp\",\"ace/mode/nix_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar CMode = require(\"./c_cpp\").Mode;\nvar NixHighlightRules = require(\"./nix_highlight_rules\").NixHighlightRules;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    CMode.call(this);\n    this.HighlightRules = NixHighlightRules;\n    this.foldingRules = new CStyleFoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, CMode);\n\n(function() { \n    this.lineCommentStart = \"#\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n    this.$id = \"ace/mode/nix\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-nsis.js",
    "content": "ace.define(\"ace/mode/nsis_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar NSISHighlightRules = function() {\n\n    this.$rules = {\n        start: [{\n            token: \"keyword.compiler.nsis\",\n            regex: /^\\s*!(?:include|addincludedir|addplugindir|appendfile|cd|delfile|echo|error|execute|packhdr|finalize|getdllversion|system|tempfile|warning|verbose|define|undef|insertmacro|macro|macroend|makensis|searchparse|searchreplace)\\b/,\n            caseInsensitive: true\n        }, {\n            token: \"keyword.command.nsis\",\n            regex: /^\\s*(?:Abort|AddBrandingImage|AddSize|AllowRootDirInstall|AllowSkipFiles|AutoCloseWindow|BGFont|BGGradient|BrandingText|BringToFront|Call|CallInstDLL|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|CreateDirectory|CreateFont|CreateShortCut|Delete|DeleteINISec|DeleteINIStr|DeleteRegKey|DeleteRegValue|DetailPrint|DetailsButtonText|DirText|DirVar|DirVerify|EnableWindow|EnumRegKey|EnumRegValue|Exch|Exec|ExecShell|ExecWait|ExpandEnvStrings|File|FileBufSize|FileClose|FileErrorText|FileOpen|FileRead|FileReadByte|FileReadUTF16LE|FileReadWord|FileWriteUTF16LE|FileSeek|FileWrite|FileWriteByte|FileWriteWord|FindClose|FindFirst|FindNext|FindWindow|FlushINI|GetCurInstType|GetCurrentAddress|GetDlgItem|GetDLLVersion|GetDLLVersionLocal|GetErrorLevel|GetFileTime|GetFileTimeLocal|GetFullPathName|GetFunctionAddress|GetInstDirError|GetLabelAddress|GetTempFileName|Goto|HideWindow|Icon|IfAbort|IfErrors|IfFileExists|IfRebootFlag|IfSilent|InitPluginsDir|InstallButtonText|InstallColors|InstallDir|InstallDirRegKey|InstProgressFlags|InstType|InstTypeGetText|InstTypeSetText|IntCmp|IntCmpU|IntFmt|IntOp|IsWindow|LangString|LicenseBkColor|LicenseData|LicenseForceSelection|LicenseLangString|LicenseText|LoadLanguageFile|LockWindow|LogSet|LogText|ManifestDPIAware|ManifestSupportedOS|MessageBox|MiscButtonText|Name|Nop|OutFile|Page|PageCallbacks|Pop|Push|Quit|ReadEnvStr|ReadINIStr|ReadRegDWORD|ReadRegStr|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|SectionGetFlags|SectionGetInstTypes|SectionGetSize|SectionGetText|SectionIn|SectionSetFlags|SectionSetInstTypes|SectionSetSize|SectionSetText|SendMessage|SetAutoClose|SetBrandingImage|SetCompress|SetCompressor|SetCompressorDictSize|SetCtlColors|SetCurInstType|SetDatablockOptimize|SetDateSave|SetDetailsPrint|SetDetailsView|SetErrorLevel|SetErrors|SetFileAttributes|SetFont|SetOutPath|SetOverwrite|SetRebootFlag|SetRegView|SetShellVarContext|SetSilent|ShowInstDetails|ShowUninstDetails|ShowWindow|SilentInstall|SilentUnInstall|Sleep|SpaceTexts|StrCmp|StrCmpS|StrCpy|StrLen|SubCaption|Unicode|UninstallButtonText|UninstallCaption|UninstallIcon|UninstallSubCaption|UninstallText|UninstPage|UnRegDLL|Var|VIAddVersionKey|VIFileVersion|VIProductVersion|WindowIcon|WriteINIStr|WriteRegBin|WriteRegDWORD|WriteRegExpandStr|WriteRegStr|WriteUninstaller|XPStyle)\\b/,\n            caseInsensitive: true\n        }, {\n            token: \"keyword.control.nsis\",\n            regex: /^\\s*!(?:ifdef|ifndef|if|ifmacrodef|ifmacrondef|else|endif)\\b/,\n            caseInsensitive: true\n        }, {\n            token: \"keyword.plugin.nsis\",\n            regex: /^\\s*\\w+::\\w+/,\n            caseInsensitive: true\n        }, {\n            token: \"keyword.operator.comparison.nsis\",\n            regex: /[!<>]?=|<>|<|>/\n        }, {\n            token: \"support.function.nsis\",\n            regex: /(?:\\b|^\\s*)(?:Function|FunctionEnd|Section|SectionEnd|SectionGroup|SectionGroupEnd|PageEx|PageExEnd)\\b/,\n            caseInsensitive: true\n        }, {\n            token: \"support.library.nsis\",\n            regex: /\\${[\\w\\.:-]+}/\n        }, {\n            token: \"constant.nsis\",\n            regex: /\\b(?:ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HIDDEN|HKCC|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|IDD_DIR|IDD_INST|IDD_INSTFILES|IDD_LICENSE|IDD_SELCOM|IDD_UNINST|IDD_VERIFY|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|MB_YESNOCANCEL|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SW_HIDE|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWNORMAL|SYSTEM|TEMPORARY)\\b/,\n            caseInsensitive: true\n        }, {\n            token: \"constant.library.nsis\",\n            regex: /\\${(?:AtLeastServicePack|AtLeastWin7|AtLeastWin8|AtLeastWin10|AtLeastWin95|AtLeastWin98|AtLeastWin2000|AtLeastWin2003|AtLeastWin2008|AtLeastWin2008R2|AtLeastWinME|AtLeastWinNT4|AtLeastWinVista|AtLeastWinXP|AtMostServicePack|AtMostWin7|AtMostWin8|AtMostWin10|AtMostWin95|AtMostWin98|AtMostWin2000|AtMostWin2003|AtMostWin2008|AtMostWin2008R2|AtMostWinME|AtMostWinNT4|AtMostWinVista|AtMostWinXP|IsNT|IsServer|IsServicePack|IsWin7|IsWin8|IsWin10|IsWin95|IsWin98|IsWin2000|IsWin2003|IsWin2008|IsWin2008R2|IsWinME|IsWinNT4|IsWinVista|IsWinXP)}/\n        }, {\n            token: \"constant.language.boolean.true.nsis\",\n            regex: /\\b(?:true|on)\\b/\n        }, {\n            token: \"constant.language.boolean.false.nsis\",\n            regex: /\\b(?:false|off)\\b/\n        }, {\n            token: \"constant.language.option.nsis\",\n            regex: /(?:\\b|^\\s*)(?:(?:un\\.)?components|(?:un\\.)?custom|(?:un\\.)?directory|(?:un\\.)?instfiles|(?:un\\.)?license|uninstConfirm|admin|all|auto|both|bottom|bzip2|current|force|hide|highest|ifdiff|ifnewer|lastused|leave|left|listonly|lzma|nevershow|none|normal|notset|right|show|silent|silentlog|textonly|top|try|user|Win10|Win7|Win8|WinVista|zlib)\\b/,\n            caseInsensitive: true\n        }, {\n            token: \"constant.language.slash-option.nsis\",\n            regex: /\\b\\/(?:a|BRANDING|CENTER|COMPONENTSONLYONCUSTOM|CUSTOMSTRING=|date|e|ENABLECANCEL|FILESONLY|file|FINAL|GLOBAL|gray|ifempty|ifndef|ignorecase|IMGID=|ITALIC|LANG=|NOCUSTOM|noerrors|NONFATAL|nonfatal|oname=|o|REBOOTOK|redef|RESIZETOFIT|r|SHORT|SILENT|SOLID|STRIKE|TRIM|UNDERLINE|utcdate|windows|x)\\b/,\n            caseInsensitive: true\n        }, {\n            token: \"constant.numeric.nsis\",\n            regex: /\\b(?:0(?:x|X)[0-9a-fA-F]+|[0-9]+(?:\\.[0-9]+)?)\\b/\n        }, {\n            token: \"entity.name.function.nsis\",\n            regex: /\\$\\([\\w\\.:-]+\\)/\n        }, {\n            token: \"storage.type.function.nsis\",\n            regex: /\\$[\\w]+/\n        }, {\n            token: \"punctuation.definition.string.begin.nsis\",\n            regex: /`/,\n            push: [{\n                token: \"punctuation.definition.string.end.nsis\",\n                regex: /`/,\n                next: \"pop\"\n            }, {\n                token: \"constant.character.escape.nsis\",\n                regex: /\\$\\\\./\n            }, {\n                defaultToken: \"string.quoted.back.nsis\"\n            }]\n        }, {\n            token: \"punctuation.definition.string.begin.nsis\",\n            regex: /\"/,\n            push: [{\n                token: \"punctuation.definition.string.end.nsis\",\n                regex: /\"/,\n                next: \"pop\"\n            }, {\n                token: \"constant.character.escape.nsis\",\n                regex: /\\$\\\\./\n            }, {\n                defaultToken: \"string.quoted.double.nsis\"\n            }]\n        }, {\n            token: \"punctuation.definition.string.begin.nsis\",\n            regex: /'/,\n            push: [{\n                token: \"punctuation.definition.string.end.nsis\",\n                regex: /'/,\n                next: \"pop\"\n            }, {\n                token: \"constant.character.escape.nsis\",\n                regex: /\\$\\\\./\n            }, {\n                defaultToken: \"string.quoted.single.nsis\"\n            }]\n        }, {\n            token: [\n                \"punctuation.definition.comment.nsis\",\n                \"comment.line.nsis\"\n            ],\n            regex: /(;|#)(.*$)/\n        }, {\n            token: \"punctuation.definition.comment.nsis\",\n            regex: /\\/\\*/,\n            push: [{\n                token: \"punctuation.definition.comment.nsis\",\n                regex: /\\*\\//,\n                next: \"pop\"\n            }, {\n                defaultToken: \"comment.block.nsis\"\n            }]\n        }, {\n            token: \"text\",\n            regex: /(?:!include|!insertmacro)\\b/\n        }]\n    };\n    \n    this.normalizeRules();\n};\n\nNSISHighlightRules.metaData = {\n    comment: \"\\n\\ttodo: - highlight functions\\n\\t\",\n    fileTypes: [\"nsi\", \"nsh\"],\n    name: \"NSIS\",\n    scopeName: \"source.nsis\"\n};\n\n\noop.inherits(NSISHighlightRules, TextHighlightRules);\n\nexports.NSISHighlightRules = NSISHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/nsis\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/nsis_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar NSISHighlightRules = require(\"./nsis_highlight_rules\").NSISHighlightRules;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = NSISHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = [\";\", \"#\"];\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n    this.$id = \"ace/mode/nsis\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-objectivec.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar cFunctions = exports.cFunctions = \"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\"\n\nvar c_cppHighlightRules = function() {\n\n    var keywordControls = (\n        \"break|case|continue|default|do|else|for|goto|if|_Pragma|\" +\n        \"return|switch|while|catch|operator|try|throw|using\"\n    );\n    \n    var storageType = (\n        \"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|\" +\n        \"_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|\" +\n        \"class|wchar_t|template|char16_t|char32_t\"\n    );\n\n    var storageModifiers = (\n        \"const|extern|register|restrict|static|volatile|inline|private|\" +\n        \"protected|public|friend|explicit|virtual|export|mutable|typename|\" +\n        \"constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\"\n    );\n\n    var keywordOperators = (\n        \"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq\" +\n        \"const_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\"\n    );\n\n    var builtinConstants = (\n        \"NULL|true|false|TRUE|FALSE|nullptr\"\n    );\n\n    var keywordMapper = this.$keywords = this.createKeywordMapper({\n        \"keyword.control\" : keywordControls,\n        \"storage.type\" : storageType,\n        \"storage.modifier\" : storageModifiers,\n        \"keyword.operator\" : keywordOperators,\n        \"variable.language\": \"this\",\n        \"constant.language\": builtinConstants\n    }, \"identifier\");\n\n    var identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\";\n    var escapeRe = /\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source;\n\n    this.$rules = { \n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"//$\",\n                next : \"start\"\n            }, {\n                token : \"comment\",\n                regex : \"//\",\n                next : \"singleLineComment\"\n            },\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n                token : \"string\", // character\n                regex : \"'(?:\" + escapeRe + \"|.)?'\"\n            }, {\n                token : \"string.start\",\n                regex : '\"', \n                stateName: \"qqstring\",\n                next: [\n                    { token: \"string\", regex: /\\\\\\s*$/, next: \"qqstring\" },\n                    { token: \"constant.language.escape\", regex: escapeRe },\n                    { token: \"constant.language.escape\", regex: /%[^'\"\\\\]/ },\n                    { token: \"string.end\", regex: '\"|$', next: \"start\" },\n                    { defaultToken: \"string\"}\n                ]\n            }, {\n                token : \"string.start\",\n                regex : 'R\"\\\\(', \n                stateName: \"rawString\",\n                next: [\n                    { token: \"string.end\", regex: '\\\\)\"', next: \"start\" },\n                    { defaultToken: \"string\"}\n                ]\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : \"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"\n            }, {\n                token : \"keyword\", // pre-compiler directives\n                regex : \"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",\n                next  : \"directive\"\n            }, {\n                token : \"keyword\", // special case pre-compiler directive\n                regex : \"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"\n            }, {\n                token : \"support.function.C99.c\",\n                regex : cFunctions\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/\n            }, {\n              token : \"punctuation.operator\",\n              regex : \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ],\n        \"singleLineComment\" : [\n            {\n                token : \"comment\",\n                regex : /\\\\$/,\n                next : \"singleLineComment\"\n            }, {\n                token : \"comment\",\n                regex : /$/,\n                next : \"start\"\n            }, {\n                defaultToken: \"comment\"\n            }\n        ],\n        \"directive\" : [\n            {\n                token : \"constant.other.multiline\",\n                regex : /\\\\/\n            },\n            {\n                token : \"constant.other.multiline\",\n                regex : /.*\\\\/\n            },\n            {\n                token : \"constant.other\",\n                regex : \"\\\\s*<.+?>\",\n                next : \"start\"\n            },\n            {\n                token : \"constant.other\", // single line\n                regex : '\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',\n                next : \"start\"\n            }, \n            {\n                token : \"constant.other\", // single line\n                regex : \"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",\n                next : \"start\"\n            },\n            {\n                token : \"constant.other\",\n                regex : /[^\\\\\\/]+/,\n                next : \"start\"\n            }\n        ]\n    };\n\n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n    this.normalizeRules();\n};\n\noop.inherits(c_cppHighlightRules, TextHighlightRules);\n\nexports.c_cppHighlightRules = c_cppHighlightRules;\n});\n\nace.define(\"ace/mode/objectivec_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/c_cpp_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar C_Highlight_File = require(\"./c_cpp_highlight_rules\");\nvar CHighlightRules = C_Highlight_File.c_cppHighlightRules;\n\nvar ObjectiveCHighlightRules = function() {\n\n    var escapedConstRe = \"\\\\\\\\(?:[abefnrtv'\\\"?\\\\\\\\]|\" + \n                         \"[0-3]\\\\d{1,2}|\" +\n                         \"[4-7]\\\\d?|\" +\n                         \"222|\" +\n                         \"x[a-zA-Z0-9]+)\";\n\n    var specialVariables = [{\n            regex: \"\\\\b_cmd\\\\b\",\n            token: \"variable.other.selector.objc\"\n        }, {\n            regex: \"\\\\b(?:self|super)\\\\b\",\n            token: \"variable.language.objc\"\n        }\n    ];\n\n    var cObj = new CHighlightRules();\n    var cRules = cObj.getRules();\n\n    this.$rules = {\n    \"start\": [ \n        {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/.*$\"\n        },\n        DocCommentHighlightRules.getStartRule(\"doc-start\"),\n        {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            next : \"comment\"\n        }, \n        {\n            token: [ \"storage.type.objc\", \"punctuation.definition.storage.type.objc\", \n                       \"entity.name.type.objc\", \"text\", \"entity.other.inherited-class.objc\"\n                     ],\n            regex: \"(@)(interface|protocol)(?!.+;)(\\\\s+[A-Za-z_][A-Za-z0-9_]*)(\\\\s*:\\\\s*)([A-Za-z]+)\"\n        },\n        {\n            token: [ \"storage.type.objc\" ],\n            regex: \"(@end)\"\n        },\n        {\n            token: [ \"storage.type.objc\", \"entity.name.type.objc\", \n                        \"entity.other.inherited-class.objc\"\n                     ],\n            regex: \"(@implementation)(\\\\s+[A-Za-z_][A-Za-z0-9_]*)(\\\\s*?::\\\\s*(?:[A-Za-z][A-Za-z0-9]*))?\"\n        },\n        {\n            token: \"string.begin.objc\",\n            regex: '@\"',\n            next: \"constant_NSString\"\n        },\n        {\n            token: \"storage.type.objc\",\n            regex: \"\\\\bid\\\\s*<\",\n            next: \"protocol_list\"\n        },\n        {\n            token: \"keyword.control.macro.objc\",\n            regex: \"\\\\bNS_DURING|NS_HANDLER|NS_ENDHANDLER\\\\b\"\n        },\n        {\n            token: [\"punctuation.definition.keyword.objc\", \"keyword.control.exception.objc\"],\n            regex: \"(@)(try|catch|finally|throw)\\\\b\"\n        },\n        {\n            token: [\"punctuation.definition.keyword.objc\", \"keyword.other.objc\"],\n            regex: \"(@)(defs|encode)\\\\b\"\n        },\n        {\n            token: [\"storage.type.id.objc\", \"text\"],\n            regex: \"(\\\\bid\\\\b)(\\\\s|\\\\n)?\"\n        },\n        {\n            token: \"storage.type.objc\",\n            regex: \"\\\\bIBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class\\\\b\"\n        },\n        {\n            token: [ \"punctuation.definition.storage.type.objc\", \"storage.type.objc\"],\n            regex: \"(@)(class|protocol)\\\\b\"\n        },\n        {\n            token: [ \"punctuation.definition.storage.type.objc\", \"punctuation\"],\n            regex: \"(@selector)(\\\\s*\\\\()\",\n            next: \"selectors\"\n        },\n        {\n            token: [ \"punctuation.definition.storage.modifier.objc\", \"storage.modifier.objc\"],\n            regex: \"(@)(synchronized|public|private|protected|package)\\\\b\"\n        },\n        {\n            token: \"constant.language.objc\",\n            regex: \"\\\\bYES|NO|Nil|nil\\\\b\"\n        },\n        {\n            token:  \"support.variable.foundation\",\n            regex: \"\\\\bNSApp\\\\b\"\n        },\n        {\n            token: [ \"support.function.cocoa.leopard\"],\n            regex: \"(?:\\\\b)(NS(?:Rect(?:ToCGRect|FromCGRect)|MakeCollectable|S(?:tringFromProtocol|ize(?:ToCGSize|FromCGSize))|Draw(?:NinePartImage|ThreePartImage)|P(?:oint(?:ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))(?:\\\\b)\"\n        },\n        {\n            token: [\"support.function.cocoa\"],\n            regex: \"(?:\\\\b)(NS(?:R(?:ound(?:DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(?:CriticalAlertPanel(?:RelativeToWindow)?|InformationalAlertPanel(?:RelativeToWindow)?|AlertPanel(?:RelativeToWindow)?)|e(?:set(?:MapTable|HashTable)|c(?:ycleZone|t(?:Clip(?:List)?|F(?:ill(?:UsingOperation|List(?:UsingOperation|With(?:Grays|Colors(?:UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(?:dPixel|l(?:MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(?:SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(?:s)?|WindowServerMemory|AlertPanel)|M(?:i(?:n(?:X|Y)|d(?:X|Y))|ouseInRect|a(?:p(?:Remove|Get|Member|Insert(?:IfAbsent|KnownAbsent)?)|ke(?:R(?:ect|ange)|Size|Point)|x(?:Range|X|Y)))|B(?:itsPer(?:SampleFromDepth|PixelFromDepth)|e(?:stDepth|ep|gin(?:CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(?:ho(?:uldRetainWithZone|w(?:sServicesMenuItem|AnimationEffect))|tringFrom(?:R(?:ect|ange)|MapTable|S(?:ize|elector)|HashTable|Class|Point)|izeFromString|e(?:t(?:ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(?:Big(?:ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(?:ToHost|LongToHost))|Short|Host(?:ShortTo(?:Big|Little)|IntTo(?:Big|Little)|DoubleTo(?:Big|Little)|FloatTo(?:Big|Little)|Long(?:To(?:Big|Little)|LongTo(?:Big|Little)))|Int|Double|Float|L(?:ittle(?:ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(?:ToHost|LongToHost))|ong(?:Long)?)))|H(?:ighlightRect|o(?:stByteOrder|meDirectory(?:ForUser)?)|eight|ash(?:Remove|Get|Insert(?:IfAbsent|KnownAbsent)?)|FSType(?:CodeFromFileType|OfFile))|N(?:umberOfColorComponents|ext(?:MapEnumeratorPair|HashEnumeratorItem))|C(?:o(?:n(?:tainsRect|vert(?:GlyphsToPackedGlyphs|Swapped(?:DoubleToHost|FloatToHost)|Host(?:DoubleToSwapped|FloatToSwapped)))|unt(?:MapTable|HashTable|Frames|Windows(?:ForContext)?)|py(?:M(?:emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(?:MapTables|HashTables))|lassFromString|reate(?:MapTable(?:WithZone)?|HashTable(?:WithZone)?|Zone|File(?:namePboardType|ContentsPboardType)))|TemporaryDirectory|I(?:s(?:ControllerMarker|EmptyRect|FreedObject)|n(?:setRect|crementExtraRefCount|te(?:r(?:sect(?:sRect|ionR(?:ect|ange))|faceStyleForKey)|gralRect)))|Zone(?:Realloc|Malloc|Name|Calloc|Fr(?:omPointer|ee))|O(?:penStepRootDirectory|ffsetRect)|D(?:i(?:sableScreenUpdates|videRect)|ottedFrameRect|e(?:c(?:imal(?:Round|Multiply|S(?:tring|ubtract)|Normalize|Co(?:py|mpa(?:ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(?:MemoryPages|Object))|raw(?:Gr(?:oove|ayBezel)|B(?:itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(?:hiteBezel|indowBackground)|LightBezel))|U(?:serName|n(?:ionR(?:ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(?:Bundle(?:Setup|Cleanup)|Setup(?:VirtualMachine)?|Needs(?:ToLoadClasses|VirtualMachine)|ClassesF(?:orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(?:oint(?:InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(?:n(?:d(?:MapTableEnumeration|HashTableEnumeration)|umerate(?:MapTable|HashTable)|ableScreenUpdates)|qual(?:R(?:ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(?:ileTypeForHFSTypeCode|ullUserName|r(?:ee(?:MapTable|HashTable)|ame(?:Rect(?:WithWidth(?:UsingOperation)?)?|Address)))|Wi(?:ndowList(?:ForContext)?|dth)|Lo(?:cationInRange|g(?:v|PageSize)?)|A(?:ccessibility(?:R(?:oleDescription(?:ForUIElement)?|aiseBadArgumentException)|Unignored(?:Children(?:ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(?:Main|Load)|vailableWindowDepths|ll(?:MapTable(?:Values|Keys)|HashTableObjects|ocate(?:MemoryPages|Collectable|Object)))))(?:\\\\b)\"\n        },\n        {\n            token: [\"support.class.cocoa.leopard\"],\n            regex: \"(?:\\\\b)(NS(?:RuleEditor|G(?:arbageCollector|radient)|MapTable|HashTable|Co(?:ndition|llectionView(?:Item)?)|T(?:oolbarItemGroup|extInputClient|r(?:eeNode|ackingArea))|InvocationOperation|Operation(?:Queue)?|D(?:ictionaryController|ockTile)|P(?:ointer(?:Functions|Array)|athC(?:o(?:ntrol(?:Delegate)?|mponentCell)|ell(?:Delegate)?)|r(?:intPanelAccessorizing|edicateEditor(?:RowTemplate)?))|ViewController|FastEnumeration|Animat(?:ionContext|ablePropertyContainer)))(?:\\\\b)\"\n        },\n        {\n            token: [\"support.class.cocoa\"],\n            regex: \"(?:\\\\b)(NS(?:R(?:u(?:nLoop|ler(?:Marker|View))|e(?:sponder|cursiveLock|lativeSpecifier)|an(?:domSpecifier|geSpecifier))|G(?:etCommand|lyph(?:Generator|Storage|Info)|raphicsContext)|XML(?:Node|D(?:ocument|TD(?:Node)?)|Parser|Element)|M(?:iddleSpecifier|ov(?:ie(?:View)?|eCommand)|utable(?:S(?:tring|et)|C(?:haracterSet|opying)|IndexSet|D(?:ictionary|ata)|URLRequest|ParagraphStyle|A(?:ttributedString|rray))|e(?:ssagePort(?:NameServer)?|nu(?:Item(?:Cell)?|View)?|t(?:hodSignature|adata(?:Item|Query(?:ResultGroup|AttributeValueTuple)?)))|a(?:ch(?:BootstrapServer|Port)|trix))|B(?:itmapImageRep|ox|u(?:ndle|tton(?:Cell)?)|ezierPath|rowser(?:Cell)?)|S(?:hadow|c(?:anner|r(?:ipt(?:SuiteRegistry|C(?:o(?:ercionHandler|mmand(?:Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(?:er|View)|een))|t(?:epper(?:Cell)?|atus(?:Bar|Item)|r(?:ing|eam))|imple(?:HorizontalTypesetter|CString)|o(?:cketPort(?:NameServer)?|und|rtDescriptor)|p(?:e(?:cifierTest|ech(?:Recognizer|Synthesizer)|ll(?:Server|Checker))|litView)|e(?:cureTextField(?:Cell)?|t(?:Command)?|archField(?:Cell)?|rializer|gmentedC(?:ontrol|ell))|lider(?:Cell)?|avePanel)|H(?:ost|TTP(?:Cookie(?:Storage)?|URLResponse)|elpManager)|N(?:ib(?:Con(?:nector|trolConnector)|OutletConnector)?|otification(?:Center|Queue)?|u(?:ll|mber(?:Formatter)?)|etService(?:Browser)?|ameSpecifier)|C(?:ha(?:ngeSpelling|racterSet)|o(?:n(?:stantString|nection|trol(?:ler)?|ditionLock)|d(?:ing|er)|unt(?:Command|edSet)|pying|lor(?:Space|P(?:ick(?:ing(?:Custom|Default)|er)|anel)|Well|List)?|m(?:p(?:oundPredicate|arisonPredicate)|boBox(?:Cell)?))|u(?:stomImageRep|rsor)|IImageRep|ell|l(?:ipView|o(?:seCommand|neCommand)|assDescription)|a(?:ched(?:ImageRep|URLResponse)|lendar(?:Date)?)|reateCommand)|T(?:hread|ypesetter|ime(?:Zone|r)|o(?:olbar(?:Item(?:Validations)?)?|kenField(?:Cell)?)|ext(?:Block|Storage|Container|Tab(?:le(?:Block)?)?|Input|View|Field(?:Cell)?|List|Attachment(?:Cell)?)?|a(?:sk|b(?:le(?:Header(?:Cell|View)|Column|View)|View(?:Item)?))|reeController)|I(?:n(?:dex(?:S(?:pecifier|et)|Path)|put(?:Manager|S(?:tream|erv(?:iceProvider|er(?:MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(?:Rep|Cell|View)?)|O(?:ut(?:putStream|lineView)|pen(?:GL(?:Context|Pixel(?:Buffer|Format)|View)|Panel)|bj(?:CTypeSerializationCallBack|ect(?:Controller)?))|D(?:i(?:st(?:antObject(?:Request)?|ributed(?:NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(?:Controller)?|e(?:serializer|cimalNumber(?:Behaviors|Handler)?|leteCommand)|at(?:e(?:Components|Picker(?:Cell)?|Formatter)?|a)|ra(?:wer|ggingInfo))|U(?:ser(?:InterfaceValidations|Defaults(?:Controller)?)|RL(?:Re(?:sponse|quest)|Handle(?:Client)?|C(?:onnection|ache|redential(?:Storage)?)|Download(?:Delegate)?|Prot(?:ocol(?:Client)?|ectionSpace)|AuthenticationChallenge(?:Sender)?)?|n(?:iqueIDSpecifier|doManager|archiver))|P(?:ipe|o(?:sitionalSpecifier|pUpButton(?:Cell)?|rt(?:Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(?:steboard|nel|ragraphStyle|geLayout)|r(?:int(?:Info|er|Operation|Panel)|o(?:cessInfo|tocolChecker|perty(?:Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(?:numerator|vent|PSImageRep|rror|x(?:ception|istsCommand|pression))|V(?:iew(?:Animation)?|al(?:idated(?:ToobarItem|UserInterfaceItem)|ue(?:Transformer)?))|Keyed(?:Unarchiver|Archiver)|Qui(?:ckDrawView|tCommand)|F(?:ile(?:Manager|Handle|Wrapper)|o(?:nt(?:Manager|Descriptor|Panel)?|rm(?:Cell|atter)))|W(?:hoseSpecifier|indow(?:Controller)?|orkspace)|L(?:o(?:c(?:k(?:ing)?|ale)|gicalTest)|evelIndicator(?:Cell)?|ayoutManager)|A(?:ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(?:ication|e(?:Script|Event(?:Manager|Descriptor)))|ffineTransform|lert|r(?:chiver|ray(?:Controller)?))))(?:\\\\b)\"\n        },\n        {\n            token: [\"support.type.cocoa.leopard\"],\n            regex: \"(?:\\\\b)(NS(?:R(?:u(?:nLoop|ler(?:Marker|View))|e(?:sponder|cursiveLock|lativeSpecifier)|an(?:domSpecifier|geSpecifier))|G(?:etCommand|lyph(?:Generator|Storage|Info)|raphicsContext)|XML(?:Node|D(?:ocument|TD(?:Node)?)|Parser|Element)|M(?:iddleSpecifier|ov(?:ie(?:View)?|eCommand)|utable(?:S(?:tring|et)|C(?:haracterSet|opying)|IndexSet|D(?:ictionary|ata)|URLRequest|ParagraphStyle|A(?:ttributedString|rray))|e(?:ssagePort(?:NameServer)?|nu(?:Item(?:Cell)?|View)?|t(?:hodSignature|adata(?:Item|Query(?:ResultGroup|AttributeValueTuple)?)))|a(?:ch(?:BootstrapServer|Port)|trix))|B(?:itmapImageRep|ox|u(?:ndle|tton(?:Cell)?)|ezierPath|rowser(?:Cell)?)|S(?:hadow|c(?:anner|r(?:ipt(?:SuiteRegistry|C(?:o(?:ercionHandler|mmand(?:Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(?:er|View)|een))|t(?:epper(?:Cell)?|atus(?:Bar|Item)|r(?:ing|eam))|imple(?:HorizontalTypesetter|CString)|o(?:cketPort(?:NameServer)?|und|rtDescriptor)|p(?:e(?:cifierTest|ech(?:Recognizer|Synthesizer)|ll(?:Server|Checker))|litView)|e(?:cureTextField(?:Cell)?|t(?:Command)?|archField(?:Cell)?|rializer|gmentedC(?:ontrol|ell))|lider(?:Cell)?|avePanel)|H(?:ost|TTP(?:Cookie(?:Storage)?|URLResponse)|elpManager)|N(?:ib(?:Con(?:nector|trolConnector)|OutletConnector)?|otification(?:Center|Queue)?|u(?:ll|mber(?:Formatter)?)|etService(?:Browser)?|ameSpecifier)|C(?:ha(?:ngeSpelling|racterSet)|o(?:n(?:stantString|nection|trol(?:ler)?|ditionLock)|d(?:ing|er)|unt(?:Command|edSet)|pying|lor(?:Space|P(?:ick(?:ing(?:Custom|Default)|er)|anel)|Well|List)?|m(?:p(?:oundPredicate|arisonPredicate)|boBox(?:Cell)?))|u(?:stomImageRep|rsor)|IImageRep|ell|l(?:ipView|o(?:seCommand|neCommand)|assDescription)|a(?:ched(?:ImageRep|URLResponse)|lendar(?:Date)?)|reateCommand)|T(?:hread|ypesetter|ime(?:Zone|r)|o(?:olbar(?:Item(?:Validations)?)?|kenField(?:Cell)?)|ext(?:Block|Storage|Container|Tab(?:le(?:Block)?)?|Input|View|Field(?:Cell)?|List|Attachment(?:Cell)?)?|a(?:sk|b(?:le(?:Header(?:Cell|View)|Column|View)|View(?:Item)?))|reeController)|I(?:n(?:dex(?:S(?:pecifier|et)|Path)|put(?:Manager|S(?:tream|erv(?:iceProvider|er(?:MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(?:Rep|Cell|View)?)|O(?:ut(?:putStream|lineView)|pen(?:GL(?:Context|Pixel(?:Buffer|Format)|View)|Panel)|bj(?:CTypeSerializationCallBack|ect(?:Controller)?))|D(?:i(?:st(?:antObject(?:Request)?|ributed(?:NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(?:Controller)?|e(?:serializer|cimalNumber(?:Behaviors|Handler)?|leteCommand)|at(?:e(?:Components|Picker(?:Cell)?|Formatter)?|a)|ra(?:wer|ggingInfo))|U(?:ser(?:InterfaceValidations|Defaults(?:Controller)?)|RL(?:Re(?:sponse|quest)|Handle(?:Client)?|C(?:onnection|ache|redential(?:Storage)?)|Download(?:Delegate)?|Prot(?:ocol(?:Client)?|ectionSpace)|AuthenticationChallenge(?:Sender)?)?|n(?:iqueIDSpecifier|doManager|archiver))|P(?:ipe|o(?:sitionalSpecifier|pUpButton(?:Cell)?|rt(?:Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(?:steboard|nel|ragraphStyle|geLayout)|r(?:int(?:Info|er|Operation|Panel)|o(?:cessInfo|tocolChecker|perty(?:Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(?:numerator|vent|PSImageRep|rror|x(?:ception|istsCommand|pression))|V(?:iew(?:Animation)?|al(?:idated(?:ToobarItem|UserInterfaceItem)|ue(?:Transformer)?))|Keyed(?:Unarchiver|Archiver)|Qui(?:ckDrawView|tCommand)|F(?:ile(?:Manager|Handle|Wrapper)|o(?:nt(?:Manager|Descriptor|Panel)?|rm(?:Cell|atter)))|W(?:hoseSpecifier|indow(?:Controller)?|orkspace)|L(?:o(?:c(?:k(?:ing)?|ale)|gicalTest)|evelIndicator(?:Cell)?|ayoutManager)|A(?:ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(?:ication|e(?:Script|Event(?:Manager|Descriptor)))|ffineTransform|lert|r(?:chiver|ray(?:Controller)?))))(?:\\\\b)\"\n        },\n        {\n            token: [\"support.class.quartz\"],\n            regex: \"(?:\\\\b)(C(?:I(?:Sampler|Co(?:ntext|lor)|Image(?:Accumulator)?|PlugIn(?:Registration)?|Vector|Kernel|Filter(?:Generator|Shape)?)|A(?:Renderer|MediaTiming(?:Function)?|BasicAnimation|ScrollLayer|Constraint(?:LayoutManager)?|T(?:iledLayer|extLayer|rans(?:ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(?:nimation(?:Group)?|ction))))(?:\\\\b)\"\n        },\n        {\n            token: [\"support.type.quartz\"],\n            regex: \"(?:\\\\b)(C(?:G(?:Float|Point|Size|Rect)|IFormat|AConstraintAttribute))(?:\\\\b)\"\n        },\n        {\n            token: [\"support.type.cocoa\"],\n            regex: \"(?:\\\\b)(NS(?:R(?:ect(?:Edge)?|ange)|G(?:lyph(?:Relation|LayoutMode)?|radientType)|M(?:odalSession|a(?:trixMode|p(?:Table|Enumerator)))|B(?:itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(?:cr(?:oll(?:er(?:Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(?:Granularity|Direction|Affinity)|wapped(?:Double|Float)|aveOperationType)|Ha(?:sh(?:Table|Enumerator)|ndler(?:2)?)|C(?:o(?:ntrol(?:Size|Tint)|mp(?:ositingOperation|arisonResult))|ell(?:State|Type|ImagePosition|Attribute))|T(?:hreadPrivate|ypesetterGlyphInfo|i(?:ckMarkPosition|tlePosition|meInterval)|o(?:ol(?:TipTag|bar(?:SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(?:TabType|Alignment)|ab(?:State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(?:ContextAuxiliary|PixelFormatAuxiliary)|D(?:ocumentChangeType|atePickerElementFlags|ra(?:werState|gOperation))|UsableScrollerParts|P(?:oint|r(?:intingPageOrder|ogressIndicator(?:Style|Th(?:ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(?:nt(?:SymbolicTraits|TraitMask|Action)|cusRingType)|W(?:indow(?:OrderingMode|Depth)|orkspace(?:IconCreationOptions|LaunchOptions)|ritingDirection)|L(?:ineBreakMode|ayout(?:Status|Direction))|A(?:nimation(?:Progress|Effect)|ppl(?:ication(?:TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle)))(?:\\\\b)\"\n        },\n        {\n            token: [\"support.constant.cocoa\"],\n            regex: \"(?:\\\\b)(NS(?:NotFound|Ordered(?:Ascending|Descending|Same)))(?:\\\\b)\"\n        },\n        {\n            token: [\"support.constant.notification.cocoa.leopard\"],\n            regex: \"(?:\\\\b)(NS(?:MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification)(?:\\\\b)\"\n        },\n        {\n            token: [\"support.constant.notification.cocoa\"],\n            regex: \"(?:\\\\b)(NS(?:Menu(?:Did(?:RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(?:ystemColorsDidChange|plitView(?:DidResizeSubviews|WillResizeSubviews))|C(?:o(?:nt(?:extHelpModeDid(?:Deactivate|Activate)|rolT(?:intDidChange|extDid(?:BeginEditing|Change|EndEditing)))|lor(?:PanelColorDidChange|ListDidChange)|mboBox(?:Selection(?:IsChanging|DidChange)|Will(?:Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(?:oolbar(?:DidRemoveItem|WillAddItem)|ext(?:Storage(?:DidProcessEditing|WillProcessEditing)|Did(?:BeginEditing|Change|EndEditing)|View(?:DidChange(?:Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(?:Selection(?:IsChanging|DidChange)|ColumnDid(?:Resize|Move)))|ImageRepRegistryDidChange|OutlineView(?:Selection(?:IsChanging|DidChange)|ColumnDid(?:Resize|Move)|Item(?:Did(?:Collapse|Expand)|Will(?:Collapse|Expand)))|Drawer(?:Did(?:Close|Open)|Will(?:Close|Open))|PopUpButton(?:CellWillPopUp|WillPopUp)|View(?:GlobalFrameDidChange|BoundsDidChange|F(?:ocusDidChange|rameDidChange))|FontSetChanged|W(?:indow(?:Did(?:Resi(?:ze|gn(?:Main|Key))|M(?:iniaturize|ove)|Become(?:Main|Key)|ChangeScreen(?:|Profile)|Deminiaturize|Update|E(?:ndSheet|xpose))|Will(?:M(?:iniaturize|ove)|BeginSheet|Close))|orkspace(?:SessionDid(?:ResignActive|BecomeActive)|Did(?:Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(?:Sleep|Unmount|PowerOff|LaunchApplication)))|A(?:ntialiasThresholdChanged|ppl(?:ication(?:Did(?:ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(?:nhide|pdate)|FinishLaunching)|Will(?:ResignActive|BecomeActive|Hide|Terminate|U(?:nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification)(?:\\\\b)\"\n        },\n        {\n            token: [\"support.constant.cocoa.leopard\"],\n            regex: \"(?:\\\\b)(NS(?:RuleEditor(?:RowType(?:Simple|Compound)|NestingMode(?:Si(?:ngle|mple)|Compound|List))|GradientDraws(?:BeforeStartingLocation|AfterEndingLocation)|M(?:inusSetExpressionType|a(?:chPortDeallocate(?:ReceiveRight|SendRight|None)|pTable(?:StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(?:oxCustom|undleExecutableArchitecture(?:X86|I386|PPC(?:64)?)|etweenPredicateOperatorType|ackgroundStyle(?:Raised|Dark|L(?:ight|owered)))|S(?:tring(?:DrawingTruncatesLastVisibleLine|EncodingConversion(?:ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(?:e(?:ech(?:SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(?:GrammarFlag|SpellingFlag))|litViewDividerStyleThi(?:n|ck))|e(?:rvice(?:RequestTimedOutError|M(?:iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(?:inimum|aximum)|Application(?:NotFoundError|LaunchFailedError))|gmentStyle(?:Round(?:Rect|ed)|SmallSquare|Capsule|Textured(?:Rounded|Square)|Automatic)))|H(?:UDWindowMask|ashTable(?:StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(?:oModeColorPanel|etServiceNoAutoRename)|C(?:hangeRedone|o(?:ntainsPredicateOperatorType|l(?:orRenderingIntent(?:RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(?:None|ContentArea|TrackableArea|EditableTextArea))|T(?:imeZoneNameStyle(?:S(?:hort(?:Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(?:Regular|SourceList)|racking(?:Mouse(?:Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(?:ssumeInside|ctive(?:In(?:KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(?:n(?:tersectSetExpressionType|dexedColorSpaceModel)|mageScale(?:None|Proportionally(?:Down|UpOrDown)|AxesIndependently))|Ope(?:nGLPFAAllowOfflineRenderers|rationQueue(?:DefaultMaxConcurrentOperationCount|Priority(?:High|Normal|Very(?:High|Low)|Low)))|D(?:iacriticInsensitiveSearch|ownloadsDirectory)|U(?:nionSetExpressionType|TF(?:16(?:BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(?:BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(?:ointerFunctions(?:Ma(?:chVirtualMemory|llocMemory)|Str(?:ongMemory|uctPersonality)|C(?:StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(?:paque(?:Memory|Personality)|bjectP(?:ointerPersonality|ersonality)))|at(?:hStyle(?:Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(?:Scaling|Copies|Orientation|P(?:a(?:perSize|ge(?:Range|SetupAccessory))|review)))|Executable(?:RuntimeMismatchError|NotLoadableError|ErrorM(?:inimum|aximum)|L(?:inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(?:Initial|Prior)|F(?:i(?:ndPanelSubstringMatchType(?:StartsWith|Contains|EndsWith|FullWord)|leRead(?:TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(?:ndow(?:BackingLocation(?:MainMemory|Default|VideoMemory)|Sharing(?:Read(?:Only|Write)|None)|CollectionBehavior(?:MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType))(?:\\\\b)\"\n        },\n        {\n            token: [\"support.constant.cocoa\"],\n            regex: \"(?:\\\\b)(NS(?:R(?:GB(?:ModeColorPanel|ColorSpaceModel)|ight(?:Mouse(?:D(?:own(?:Mask)?|ragged(?:Mask)?)|Up(?:Mask)?)|T(?:ext(?:Movement|Alignment)|ab(?:sBezelBorder|StopType))|ArrowFunctionKey)|ound(?:RectBezelStyle|Bankers|ed(?:BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(?:CapStyle|JoinStyle))|un(?:StoppedResponse|ContinuesResponse|AbortedResponse)|e(?:s(?:izableWindowMask|et(?:CursorRectsRunLoopOrdering|FunctionKey))|ce(?:ssedBezelStyle|iver(?:sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(?:evancyLevelIndicatorStyle|ative(?:Before|After))|gular(?:SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(?:n(?:domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(?:ModeMatrix|Button)))|G(?:IFFileType|lyph(?:Below|Inscribe(?:B(?:elow|ase)|Over(?:strike|Below)|Above)|Layout(?:WithPrevious|A(?:tAPoint|gainstAPoint))|A(?:ttribute(?:BidiLevel|Soft|Inscribe|Elastic)|bove))|r(?:ooveBorder|eaterThan(?:Comparison|OrEqualTo(?:Comparison|PredicateOperatorType)|PredicateOperatorType)|a(?:y(?:ModeColorPanel|ColorSpaceModel)|dient(?:None|Con(?:cave(?:Strong|Weak)|vex(?:Strong|Weak)))|phiteControlTint)))|XML(?:N(?:o(?:tationDeclarationKind|de(?:CompactEmptyElement|IsCDATA|OptionsNone|Use(?:SingleQuotes|DoubleQuotes)|Pre(?:serve(?:NamespaceOrder|C(?:haracterReferences|DATA)|DTD|Prefixes|E(?:ntities|mptyElements)|Quotes|Whitespace|A(?:ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(?:ocument(?:X(?:MLKind|HTMLKind|Include)|HTMLKind|T(?:idy(?:XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(?:arser(?:GTRequiredError|XMLDeclNot(?:StartedError|FinishedError)|Mi(?:splaced(?:XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(?:StartedError|FinishedError))|S(?:t(?:andaloneValueError|ringNot(?:StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(?:MTOKENRequiredError|o(?:t(?:ationNot(?:StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(?:haracterRef(?:In(?:DTDError|PrologError|EpilogError)|AtEOFError)|o(?:nditionalSectionNot(?:StartedError|FinishedError)|mment(?:NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(?:ternalError|valid(?:HexCharacterRefError|C(?:haracter(?:RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(?:NameError|Error)))|OutOfMemoryError|D(?:ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(?:RI(?:RequiredError|FragmentError)|n(?:declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(?:CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(?:MissingSemiError|NoNameError|In(?:Internal(?:SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(?:ocessingInstructionNot(?:StartedError|FinishedError)|ematureDocumentEndError))|E(?:n(?:codingNotSupportedError|tity(?:Ref(?:In(?:DTDError|PrologError|EpilogError)|erence(?:MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(?:StartedError|FinishedError)|Is(?:ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(?:StartedError|FinishedError)|xt(?:ernalS(?:tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(?:iteralNot(?:StartedError|FinishedError)|T(?:RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(?:RedefinedError|HasNoValueError|Not(?:StartedError|FinishedError)|ListNot(?:StartedError|FinishedError)))|rocessingInstructionKind)|E(?:ntity(?:GeneralKind|DeclarationKind|UnparsedKind|P(?:ar(?:sedKind|ameterKind)|redefined))|lement(?:Declaration(?:MixedKind|UndefinedKind|E(?:lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(?:N(?:MToken(?:sKind|Kind)|otationKind)|CDATAKind|ID(?:Ref(?:sKind|Kind)|Kind)|DeclarationKind|En(?:tit(?:yKind|iesKind)|umerationKind)|Kind))|M(?:i(?:n(?:XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(?:nthCalendarUnit|deSwitchFunctionKey|use(?:Moved(?:Mask)?|E(?:ntered(?:Mask)?|ventSubtype|xited(?:Mask)?))|veToBezierPathElement|mentary(?:ChangeButton|Push(?:Button|InButton)|Light(?:Button)?))|enuFunctionKey|a(?:c(?:intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(?:XEdge|YEdge))|ACHOperatingSystem)|B(?:MPFileType|o(?:ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(?:Se(?:condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(?:zelBorder|velLineJoinStyle|low(?:Bottom|Top)|gin(?:sWith(?:Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(?:spaceCharacter|tabTextMovement|ingStore(?:Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(?:owser(?:NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(?:h(?:ift(?:JISStringEncoding|KeyMask)|ow(?:ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(?:s(?:ReqFunctionKey|tem(?:D(?:omainMask|efined(?:Mask)?)|FunctionKey))|mbolStringEncoding)|c(?:a(?:nnedOption|le(?:None|ToFit|Proportionally))|r(?:oll(?:er(?:NoPart|Increment(?:Page|Line|Arrow)|Decrement(?:Page|Line|Arrow)|Knob(?:Slot)?|Arrows(?:M(?:inEnd|axEnd)|None|DefaultSetting))|Wheel(?:Mask)?|LockFunctionKey)|eenChangedEventType))|t(?:opFunctionKey|r(?:ingDrawing(?:OneShot|DisableScreenFontSubstitution|Uses(?:DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(?:Status(?:Reading|NotOpen|Closed|Open(?:ing)?|Error|Writing|AtEnd)|Event(?:Has(?:BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(?:ndEncountered|rrorOccurred)))))|i(?:ngle(?:DateMode|UnderlineStyle)|ze(?:DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(?:condCalendarUnit|lect(?:By(?:Character|Paragraph|Word)|i(?:ng(?:Next|Previous)|onAffinity(?:Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(?:Momentary|Select(?:One|Any)))|quareLineCapStyle|witchButton|ave(?:ToOperation|Op(?:tions(?:Yes|No|Ask)|eration)|AsOperation)|mall(?:SquareBezelStyle|C(?:ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(?:ighlightModeMatrix|SBModeColorPanel|o(?:ur(?:Minute(?:SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(?:Never|OnlyFromMainDocumentDomain|Always)|e(?:lp(?:ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(?:MonthDa(?:yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(?:o(?:n(?:StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(?:ification(?:SuspensionBehavior(?:Hold|Coalesce|D(?:eliverImmediately|rop))|NoCoalescing|CoalescingOn(?:Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(?:cr(?:iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(?:itle|opLevelContainersSpecifierError|abs(?:BezelBorder|NoBorder|LineBorder))|I(?:nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(?:ll(?:Glyph|CellType)|m(?:eric(?:Search|PadKeyMask)|berFormatter(?:Round(?:Half(?:Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(?:10|Default)|S(?:cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(?:ercentStyle|ad(?:Before(?:Suffix|Prefix)|After(?:Suffix|Prefix))))))|e(?:t(?:Services(?:BadArgumentError|NotFoundError|C(?:ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(?:StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(?:t(?:iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(?:hange(?:ReadOtherContents|GrayCell(?:Mask)?|BackgroundCell(?:Mask)?|Cleared|Done|Undone|Autosaved)|MYK(?:ModeColorPanel|ColorSpaceModel)|ircular(?:BezelStyle|Slider)|o(?:n(?:stantValueExpressionType|t(?:inuousCapacityLevelIndicatorStyle|entsCellMask|ain(?:sComparison|erSpecifierError)|rol(?:Glyph|KeyMask))|densedFontMask)|lor(?:Panel(?:RGBModeMask|GrayModeMask|HSBModeMask|C(?:MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(?:p(?:osite(?:XOR|Source(?:In|O(?:ut|ver)|Atop)|Highlight|C(?:opy|lear)|Destination(?:In|O(?:ut|ver)|Atop)|Plus(?:Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(?:stom(?:SelectorPredicateOperatorType|PaletteModeColorPanel)|r(?:sor(?:Update(?:Mask)?|PointingDevice)|veToBezierPathElement))|e(?:nterT(?:extAlignment|abStopType)|ll(?:State|H(?:ighlighted|as(?:Image(?:Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(?:Bordered|InsetButton)|Disabled|Editable|LightsBy(?:Gray|Background|Contents)|AllowsMixedState))|l(?:ipPagination|o(?:s(?:ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(?:ControlTint|DisplayFunctionKey|LineFunctionKey))|a(?:seInsensitive(?:Search|PredicateOption)|n(?:notCreateScriptCommandError|cel(?:Button|TextMovement))|chesDirectory|lculation(?:NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(?:itical(?:Request|AlertStyle)|ayonModeColorPanel))|T(?:hick(?:SquareBezelStyle|erSquareBezelStyle)|ypesetter(?:Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(?:ineBreakAction|atestBehavior))|i(?:ckMark(?:Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(?:olbarItemVisibilityPriority(?:Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(?:Compression(?:N(?:one|EXT)|CCITTFAX(?:3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(?:rminate(?:Now|Cancel|Later)|xt(?:Read(?:InapplicableDocumentTypeError|WriteErrorM(?:inimum|aximum))|Block(?:M(?:i(?:nimum(?:Height|Width)|ddleAlignment)|a(?:rgin|ximum(?:Height|Width)))|B(?:o(?:ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(?:ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(?:Characters|Attributes)|CellType|ured(?:RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(?:FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(?:RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(?:Character|TextMovement|le(?:tP(?:oint(?:Mask|EventSubtype)?|roximity(?:Mask|EventSubtype)?)|Column(?:NoResizing|UserResizingMask|AutoresizingMask)|View(?:ReverseSequentialColumnAutoresizingStyle|GridNone|S(?:olid(?:HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(?:n(?:sert(?:CharFunctionKey|FunctionKey|LineFunctionKey)|t(?:Type|ernalS(?:criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(?:Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(?:2022JPStringEncoding|Latin(?:1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(?:R(?:ight|ep(?:MatchesDevice|LoadStatus(?:ReadingHeader|Completed|InvalidData|Un(?:expectedEOF|knownType)|WillNeedAllData)))|Below|C(?:ellType|ache(?:BySize|Never|Default|Always))|Interpolation(?:High|None|Default|Low)|O(?:nly|verlaps)|Frame(?:Gr(?:oove|ayBezel)|Button|None|Photo)|L(?:oadStatus(?:ReadError|C(?:ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(?:lign(?:Right|Bottom(?:Right|Left)?|Center|Top(?:Right|Left)?|Left)|bove)))|O(?:n(?:State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(?:Mouse(?:D(?:own(?:Mask)?|ragged(?:Mask)?)|Up(?:Mask)?)|TextMovement)|SF1OperatingSystem|pe(?:n(?:GL(?:GO(?:Re(?:setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(?:R(?:obust|endererID)|M(?:inimumPolicy|ulti(?:sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(?:creenMask|te(?:ncilSize|reo)|ingleRenderer|upersample|ample(?:s|Buffers|Alpha))|NoRecovery|C(?:o(?:lor(?:Size|Float)|mpliant)|losestPolicy)|OffScreen|D(?:oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(?:cc(?:umSize|elerated)|ux(?:Buffers|DepthStencil)|l(?:phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(?:criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(?:B(?:itfield|oolType)|S(?:hortType|tr(?:ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(?:Type|longType)|ArrayType))|D(?:i(?:s(?:c(?:losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(?:Selection|PredicateModifier))|o(?:c(?:ModalWindowMask|ument(?:Directory|ationDirectory))|ubleType|wn(?:TextMovement|ArrowFunctionKey))|e(?:s(?:cendingPageOrder|ktopDirectory)|cimalTabStopType|v(?:ice(?:NColorSpaceModel|IndependentModifierFlagsMask)|eloper(?:Directory|ApplicationDirectory))|fault(?:ControlTint|TokenStyle)|lete(?:Char(?:acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(?:yCalendarUnit|teFormatter(?:MediumStyle|Behavior(?:10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(?:wer(?:Clos(?:ingState|edState)|Open(?:ingState|State))|gOperation(?:Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(?:ser(?:CancelledError|D(?:irectory|omainMask)|FunctionKey)|RL(?:Handle(?:NotLoaded|Load(?:Succeeded|InProgress|Failed))|CredentialPersistence(?:None|Permanent|ForSession))|n(?:scaledWindowMask|cachedRead|i(?:codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(?:o(?:CloseGroupingRunLoopOrdering|FunctionKey)|e(?:finedDateComponent|rline(?:Style(?:Single|None|Thick|Double)|Pattern(?:Solid|D(?:ot|ash(?:Dot(?:Dot)?)?)))))|known(?:ColorSpaceModel|P(?:ointingDevice|ageOrder)|KeyS(?:criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(?:dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(?:ustifiedTextAlignment|PEG(?:2000FileType|FileType)|apaneseEUC(?:GlyphPacking|StringEncoding))|P(?:o(?:s(?:t(?:Now|erFontMask|WhenIdle|ASAP)|iti(?:on(?:Replace|Be(?:fore|ginning)|End|After)|ve(?:IntType|DoubleType|FloatType)))|pUp(?:NoArrow|ArrowAt(?:Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(?:InCell(?:Mask)?|OnPushOffButton)|e(?:n(?:TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(?:Mask)?)|P(?:S(?:caleField|tatus(?:Title|Field)|aveButton)|N(?:ote(?:Title|Field)|ame(?:Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(?:a(?:perFeedButton|ge(?:Range(?:To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(?:useFunctionKey|ragraphSeparatorCharacter|ge(?:DownFunctionKey|UpFunctionKey))|r(?:int(?:ing(?:ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(?:NotFound|OK|Error)|FunctionKey)|o(?:p(?:ertyList(?:XMLFormat|MutableContainers(?:AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(?:BarStyle|SpinningStyle|Preferred(?:SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(?:ssedTab|vFunctionKey))|L(?:HeightForm|CancelButton|TitleField|ImageButton|O(?:KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(?:n(?:terCharacter|d(?:sWith(?:Comparison|PredicateOperatorType)|FunctionKey))|v(?:e(?:nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(?:Comparison|PredicateOperatorType)|ra(?:serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(?:clude(?:10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(?:i(?:ew(?:M(?:in(?:XMargin|YMargin)|ax(?:XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(?:lidationErrorM(?:inimum|aximum)|riableExpressionType))|Key(?:SpecifierEvaluationScriptError|Down(?:Mask)?|Up(?:Mask)?|PathExpressionType|Value(?:MinusSetMutation|SetSetMutation|Change(?:Re(?:placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(?:New|Old)|UnionSetMutation|ValidationError))|QTMovie(?:NormalPlayback|Looping(?:BackAndForthPlayback|Playback))|F(?:1(?:1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(?:nd(?:PanelAction(?:Replace(?:A(?:ndFind|ll(?:InSelection)?))?|S(?:howFindPanel|e(?:tFindString|lectAll(?:InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(?:Read(?:No(?:SuchFileError|PermissionError)|CorruptFileError|In(?:validFileNameError|applicableStringEncodingError)|Un(?:supportedSchemeError|knownError))|HandlingPanel(?:CancelButton|OKButton)|NoSuchFileError|ErrorM(?:inimum|aximum)|Write(?:NoPermissionError|In(?:validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(?:supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(?:1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(?:nt(?:Mo(?:noSpaceTrait|dernSerifsClass)|BoldTrait|S(?:ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(?:o(?:ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(?:ntegerAdvancementsRenderingMode|talicTrait)|O(?:ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(?:nknownClass|IOptimizedTrait)|Panel(?:S(?:hadowEffectModeMask|t(?:andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(?:ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(?:amilyClassMask|reeformSerifsClass)|Antialiased(?:RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(?:Below|Type(?:None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(?:attingError(?:M(?:inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(?:ExpressionType|KeyMask)|3(?:1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(?:RevertButton|S(?:ize(?:Title|Field)|etButton)|CurrentField|Preview(?:Button|Field))|l(?:oat(?:ingPointSamplesBitmapFormat|Type)|agsChanged(?:Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(?:heelModeColorPanel|indow(?:s(?:NTOperatingSystem|CP125(?:1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(?:InterfaceStyle|OperatingSystem))|M(?:iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(?:NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(?:ctivation|ddingToRecents)|A(?:sync|nd(?:Hide(?:Others)?|Print)|llowingClassicStartup))|eek(?:day(?:CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(?:ntsBidiLevels|rningAlertStyle)|r(?:itingDirection(?:RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(?:i(?:stModeMatrix|ne(?:Moves(?:Right|Down|Up|Left)|B(?:order|reakBy(?:C(?:harWrapping|lipping)|Truncating(?:Middle|Head|Tail)|WordWrapping))|S(?:eparatorCharacter|weep(?:Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(?:ssThan(?:Comparison|OrEqualTo(?:Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(?:Mouse(?:D(?:own(?:Mask)?|ragged(?:Mask)?)|Up(?:Mask)?)|T(?:ext(?:Movement|Alignment)|ab(?:sBezelBorder|StopType))|ArrowFunctionKey))|a(?:yout(?:RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(?:sc(?:iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(?:y(?:Type|PredicateModifier|EventMask)|choredSearch|imation(?:Blocking|Nonblocking(?:Threaded)?|E(?:ffect(?:DisappearingItemDefault|Poof)|ase(?:In(?:Out)?|Out))|Linear)|dPredicateType)|t(?:Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(?:obe(?:GB1CharacterCollection|CNS1CharacterCollection|Japan(?:1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(?:saveOperation|Pagination)|pp(?:lication(?:SupportDirectory|D(?:irectory|e(?:fined(?:Mask)?|legateReply(?:Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(?:Mask)?)|l(?:ternateKeyMask|pha(?:ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(?:SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(?:ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(?:sWrongScriptError|EvaluationScriptError)|bove(?:Bottom|Top)|WTEventType)))(?:\\\\b)\"\n        },\n        {\n        token: \"support.function.C99.c\",\n        regex: C_Highlight_File.cFunctions\n        },\n        {\n            token : cObj.getKeywords(),\n            regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n        },\n        {\n            token: \"punctuation.section.scope.begin.objc\",\n            regex: \"\\\\[\",\n            next: \"bracketed_content\"\n        },\n        {\n            token: \"meta.function.objc\",\n            regex: \"^(?:-|\\\\+)\\\\s*\"\n        }\n    ],\n    \"constant_NSString\": [\n        {\n            token: \"constant.character.escape.objc\",\n            regex: escapedConstRe\n        },\n        {\n            token: \"invalid.illegal.unknown-escape.objc\",\n            regex: \"\\\\\\\\.\"\n        },\n        {\n            token: \"string\",\n            regex: '[^\"\\\\\\\\]+'\n        },\n        {\n            token: \"punctuation.definition.string.end\",\n            regex: \"\\\"\",\n            next: \"start\"\n        }\n    ],\n    \"protocol_list\": [\n        {\n            token: \"punctuation.section.scope.end.objc\",\n            regex: \">\",\n            next: \"start\"\n        },\n        {\n            token: \"support.other.protocol.objc\",\n            regex: \"\\bNS(?:GlyphStorage|M(?:utableCopying|enuItem)|C(?:hangeSpelling|o(?:ding|pying|lorPicking(?:Custom|Default)))|T(?:oolbarItemValidations|ext(?:Input|AttachmentCell))|I(?:nputServ(?:iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(?:CTypeSerializationCallBack|ect)|D(?:ecimalNumberBehaviors|raggingInfo)|U(?:serInterfaceValidations|RL(?:HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(?:ToobarItem|UserInterfaceItem)|Locking)\\b\"\n        }\n    ],\n    \"selectors\": [\n        {\n            token: \"support.function.any-method.name-of-parameter.objc\",\n            regex: \"\\\\b(?:[a-zA-Z_:][\\\\w]*)+\"\n        },\n        {\n            token: \"punctuation\",\n            regex: \"\\\\)\",\n            next: \"start\"\n        }\n    ],\n    \"bracketed_content\": [\n        {\n            token: \"punctuation.section.scope.end.objc\",\n            regex: \"]\",\n            next: \"start\"\n        },\n        {\n            token: [\"support.function.any-method.objc\"],\n            regex: \"(?:predicateWithFormat:| NSPredicate predicateWithFormat:)\",\n            next: \"start\"\n        },\n        {\n            token: \"support.function.any-method.objc\",\n            regex: \"\\\\w+(?::|(?=]))\",\n            next: \"start\"\n        }\n    ],\n    \"bracketed_strings\": [\n        {\n            token: \"punctuation.section.scope.end.objc\",\n            regex: \"]\",\n            next: \"start\"\n        },\n        {\n            token: \"keyword.operator.logical.predicate.cocoa\",\n            regex: \"\\\\b(?:AND|OR|NOT|IN)\\\\b\"\n        },\n        {\n            token: [\"invalid.illegal.unknown-method.objc\", \"punctuation.separator.arguments.objc\"],\n            regex: \"\\\\b(\\\\w+)(:)\"\n        },\n        {\n            regex: \"\\\\b(?:ALL|ANY|SOME|NONE)\\\\b\",\n            token: \"constant.language.predicate.cocoa\"\n        },\n        {\n            regex: \"\\\\b(?:NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\\\b\",\n            token: \"constant.language.predicate.cocoa\"\n        },\n        {\n            regex: \"\\\\b(?:MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\\\b\",\n            token: \"keyword.operator.comparison.predicate.cocoa\"\n        },\n        {\n            regex: \"\\\\bC(?:ASEINSENSITIVE|I)\\\\b\",\n            token: \"keyword.other.modifier.predicate.cocoa\"\n        },\n        {\n            regex: \"\\\\b(?:ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\\\b\",\n            token: \"keyword.other.predicate.cocoa\"\n        },\n        {\n            regex: escapedConstRe,\n            token: \"constant.character.escape.objc\"\n        },\n        {\n            regex: \"\\\\\\\\.\",\n            token: \"invalid.illegal.unknown-escape.objc\"\n        },\n        {\n            token: \"string\",\n            regex: '[^\"\\\\\\\\]'\n        },\n        {\n            token: \"punctuation.definition.string.end.objc\",\n            regex: \"\\\"\",\n            next: \"predicates\"\n        }\n    ],\n    \"comment\" : [\n        {\n            token : \"comment\", // closing comment\n            regex : \".*?\\\\*\\\\/\",\n            next : \"start\"\n        }, {\n            token : \"comment\", // comment spanning whole line\n            regex : \".+\"\n        }\n    ],\n    \"methods\" : [\n        {\n            token : \"meta.function.objc\",\n            regex : \"(?=\\\\{|#)|;\",\n            next : \"start\"\n        }\n    ]\n}\n    for (var r in cRules) {\n        if (this.$rules[r]) {\n            if (this.$rules[r].push)\n                this.$rules[r].push.apply(this.$rules[r], cRules[r]);\n        } else {\n            this.$rules[r] = cRules[r];\n        }\n    }\n    \n    this.$rules.bracketed_content = this.$rules.bracketed_content.concat(\n        this.$rules.start, specialVariables\n    );\n\n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n};\n\noop.inherits(ObjectiveCHighlightRules, CHighlightRules);\n\nexports.ObjectiveCHighlightRules = ObjectiveCHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/objectivec\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/objectivec_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar ObjectiveCHighlightRules = require(\"./objectivec_highlight_rules\").ObjectiveCHighlightRules;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = ObjectiveCHighlightRules;\n    this.foldingRules = new CStyleFoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n    this.$id = \"ace/mode/objectivec\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-ocaml.js",
    "content": "ace.define(\"ace/mode/ocaml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar OcamlHighlightRules = function() {\n\n    var keywords = (\n        \"and|as|assert|begin|class|constraint|do|done|downto|else|end|\"  +\n        \"exception|external|for|fun|function|functor|if|in|include|\"     +\n        \"inherit|initializer|lazy|let|match|method|module|mutable|new|\"  +\n        \"object|of|open|or|private|rec|sig|struct|then|to|try|type|val|\" +\n        \"virtual|when|while|with\"\n    );\n\n    var builtinConstants = (\"true|false\");\n\n    var builtinFunctions = (\n        \"abs|abs_big_int|abs_float|abs_num|abstract_tag|accept|access|acos|add|\" +\n        \"add_available_units|add_big_int|add_buffer|add_channel|add_char|\" +\n        \"add_initializer|add_int_big_int|add_interfaces|add_num|add_string|\" +\n        \"add_substitute|add_substring|alarm|allocated_bytes|allow_only|\" +\n        \"allow_unsafe_modules|always|append|appname_get|appname_set|\" +\n        \"approx_num_exp|approx_num_fix|arg|argv|arith_status|array|\" +\n        \"array1_of_genarray|array2_of_genarray|array3_of_genarray|asin|asr|\" +\n        \"assoc|assq|at_exit|atan|atan2|auto_synchronize|background|basename|\" +\n        \"beginning_of_input|big_int_of_int|big_int_of_num|big_int_of_string|bind|\" +\n        \"bind_class|bind_tag|bits|bits_of_float|black|blit|blit_image|blue|bool|\" +\n        \"bool_of_string|bounded_full_split|bounded_split|bounded_split_delim|\" +\n        \"bprintf|break|broadcast|bscanf|button_down|c_layout|capitalize|cardinal|\" +\n        \"cardinal|catch|catch_break|ceil|ceiling_num|channel|char|char_of_int|\" +\n        \"chdir|check|check_suffix|chmod|choose|chop_extension|chop_suffix|chown|\" +\n        \"chown|chr|chroot|classify_float|clear|clear_available_units|\" +\n        \"clear_close_on_exec|clear_graph|clear_nonblock|clear_parser|\" +\n        \"close|close|closeTk|close_box|close_graph|close_in|close_in_noerr|\" +\n        \"close_out|close_out_noerr|close_process|close_process|\" +\n        \"close_process_full|close_process_in|close_process_out|close_subwindow|\" +\n        \"close_tag|close_tbox|closedir|closedir|closure_tag|code|combine|\" +\n        \"combine|combine|command|compact|compare|compare_big_int|compare_num|\" +\n        \"complex32|complex64|concat|conj|connect|contains|contains_from|contents|\" +\n        \"copy|cos|cosh|count|count|counters|create|create_alarm|create_image|\" +\n        \"create_matrix|create_matrix|create_matrix|create_object|\" +\n        \"create_object_and_run_initializers|create_object_opt|create_process|\" +\n        \"create_process|create_process_env|create_process_env|create_table|\" +\n        \"current|current_dir_name|current_point|current_x|current_y|curveto|\" +\n        \"custom_tag|cyan|data_size|decr|decr_num|default_available_units|delay|\" +\n        \"delete_alarm|descr_of_in_channel|descr_of_out_channel|destroy|diff|dim|\" +\n        \"dim1|dim2|dim3|dims|dirname|display_mode|div|div_big_int|div_num|\" +\n        \"double_array_tag|double_tag|draw_arc|draw_char|draw_circle|draw_ellipse|\" +\n        \"draw_image|draw_poly|draw_poly_line|draw_rect|draw_segments|draw_string|\" +\n        \"dummy_pos|dummy_table|dump_image|dup|dup2|elements|empty|end_of_input|\" +\n        \"environment|eprintf|epsilon_float|eq_big_int|eq_num|equal|err_formatter|\" +\n        \"error_message|escaped|establish_server|executable_name|execv|execve|execvp|\" +\n        \"execvpe|exists|exists2|exit|exp|failwith|fast_sort|fchmod|fchown|field|\" +\n        \"file|file_exists|fill|fill_arc|fill_circle|fill_ellipse|fill_poly|fill_rect|\" +\n        \"filter|final_tag|finalise|find|find_all|first_chars|firstkey|flatten|\" +\n        \"float|float32|float64|float_of_big_int|float_of_bits|float_of_int|\" +\n        \"float_of_num|float_of_string|floor|floor_num|flush|flush_all|flush_input|\" +\n        \"flush_str_formatter|fold|fold_left|fold_left2|fold_right|fold_right2|\" +\n        \"for_all|for_all2|force|force_newline|force_val|foreground|fork|\" +\n        \"format_of_string|formatter_of_buffer|formatter_of_out_channel|\" +\n        \"fortran_layout|forward_tag|fprintf|frexp|from|from_channel|from_file|\" +\n        \"from_file_bin|from_function|from_string|fscanf|fst|fstat|ftruncate|\" +\n        \"full_init|full_major|full_split|gcd_big_int|ge_big_int|ge_num|\" +\n        \"genarray_of_array1|genarray_of_array2|genarray_of_array3|get|\" +\n        \"get_all_formatter_output_functions|get_approx_printing|get_copy|\" +\n        \"get_ellipsis_text|get_error_when_null_denominator|get_floating_precision|\" +\n        \"get_formatter_output_functions|get_formatter_tag_functions|get_image|\" +\n        \"get_margin|get_mark_tags|get_max_boxes|get_max_indent|get_method|\" +\n        \"get_method_label|get_normalize_ratio|get_normalize_ratio_when_printing|\" +\n        \"get_print_tags|get_state|get_variable|getcwd|getegid|getegid|getenv|\" +\n        \"getenv|getenv|geteuid|geteuid|getgid|getgid|getgrgid|getgrgid|getgrnam|\" +\n        \"getgrnam|getgroups|gethostbyaddr|gethostbyname|gethostname|getitimer|\" +\n        \"getlogin|getpeername|getpid|getppid|getprotobyname|getprotobynumber|\" +\n        \"getpwnam|getpwuid|getservbyname|getservbyport|getsockname|getsockopt|\" +\n        \"getsockopt_float|getsockopt_int|getsockopt_optint|gettimeofday|getuid|\" +\n        \"global_replace|global_substitute|gmtime|green|grid|group_beginning|\" +\n        \"group_end|gt_big_int|gt_num|guard|handle_unix_error|hash|hash_param|\" +\n        \"hd|header_size|i|id|ignore|in_channel_length|in_channel_of_descr|incr|\" +\n        \"incr_num|index|index_from|inet_addr_any|inet_addr_of_string|infinity|\" +\n        \"infix_tag|init|init_class|input|input_binary_int|input_byte|input_char|\" +\n        \"input_line|input_value|int|int16_signed|int16_unsigned|int32|int64|\" +\n        \"int8_signed|int8_unsigned|int_of_big_int|int_of_char|int_of_float|\" +\n        \"int_of_num|int_of_string|integer_num|inter|interactive|inv|invalid_arg|\" +\n        \"is_block|is_empty|is_implicit|is_int|is_int_big_int|is_integer_num|\" +\n        \"is_relative|iter|iter2|iteri|join|junk|key_pressed|kill|kind|kprintf|\" +\n        \"kscanf|land|last_chars|layout|lazy_from_fun|lazy_from_val|lazy_is_val|\" +\n        \"lazy_tag|ldexp|le_big_int|le_num|length|lexeme|lexeme_char|lexeme_end|\" +\n        \"lexeme_end_p|lexeme_start|lexeme_start_p|lineto|link|list|listen|lnot|\" +\n        \"loadfile|loadfile_private|localtime|lock|lockf|log|log10|logand|lognot|\" +\n        \"logor|logxor|lor|lower_window|lowercase|lseek|lsl|lsr|lstat|lt_big_int|\" +\n        \"lt_num|lxor|magenta|magic|mainLoop|major|major_slice|make|make_formatter|\" +\n        \"make_image|make_lexer|make_matrix|make_self_init|map|map2|map_file|mapi|\" +\n        \"marshal|match_beginning|match_end|matched_group|matched_string|max|\" +\n        \"max_array_length|max_big_int|max_elt|max_float|max_int|max_num|\" +\n        \"max_string_length|mem|mem_assoc|mem_assq|memq|merge|min|min_big_int|\" +\n        \"min_elt|min_float|min_int|min_num|minor|minus_big_int|minus_num|\" +\n        \"minus_one|mkdir|mkfifo|mktime|mod|mod_big_int|mod_float|mod_num|modf|\" +\n        \"mouse_pos|moveto|mul|mult_big_int|mult_int_big_int|mult_num|nan|narrow|\" +\n        \"nat_of_num|nativeint|neg|neg_infinity|new_block|new_channel|new_method|\" +\n        \"new_variable|next|nextkey|nice|nice|no_scan_tag|norm|norm2|not|npeek|\" +\n        \"nth|nth_dim|num_digits_big_int|num_dims|num_of_big_int|num_of_int|\" +\n        \"num_of_nat|num_of_ratio|num_of_string|O|obj|object_tag|ocaml_version|\" +\n        \"of_array|of_channel|of_float|of_int|of_int32|of_list|of_nativeint|\" +\n        \"of_string|one|openTk|open_box|open_connection|open_graph|open_hbox|\" +\n        \"open_hovbox|open_hvbox|open_in|open_in_bin|open_in_gen|open_out|\" +\n        \"open_out_bin|open_out_gen|open_process|open_process_full|open_process_in|\" +\n        \"open_process_out|open_subwindow|open_tag|open_tbox|open_temp_file|\" +\n        \"open_vbox|opendbm|opendir|openfile|or|os_type|out_channel_length|\" +\n        \"out_channel_of_descr|output|output_binary_int|output_buffer|output_byte|\" +\n        \"output_char|output_string|output_value|over_max_boxes|pack|params|\" +\n        \"parent_dir_name|parse|parse_argv|partition|pause|peek|pipe|pixels|\" +\n        \"place|plot|plots|point_color|polar|poll|pop|pos_in|pos_out|pow|\" +\n        \"power_big_int_positive_big_int|power_big_int_positive_int|\" +\n        \"power_int_positive_big_int|power_int_positive_int|power_num|\" +\n        \"pp_close_box|pp_close_tag|pp_close_tbox|pp_force_newline|\" +\n        \"pp_get_all_formatter_output_functions|pp_get_ellipsis_text|\" +\n        \"pp_get_formatter_output_functions|pp_get_formatter_tag_functions|\" +\n        \"pp_get_margin|pp_get_mark_tags|pp_get_max_boxes|pp_get_max_indent|\" +\n        \"pp_get_print_tags|pp_open_box|pp_open_hbox|pp_open_hovbox|pp_open_hvbox|\" +\n        \"pp_open_tag|pp_open_tbox|pp_open_vbox|pp_over_max_boxes|pp_print_as|\" +\n        \"pp_print_bool|pp_print_break|pp_print_char|pp_print_cut|pp_print_float|\" +\n        \"pp_print_flush|pp_print_if_newline|pp_print_int|pp_print_newline|\" +\n        \"pp_print_space|pp_print_string|pp_print_tab|pp_print_tbreak|\" +\n        \"pp_set_all_formatter_output_functions|pp_set_ellipsis_text|\" +\n        \"pp_set_formatter_out_channel|pp_set_formatter_output_functions|\" +\n        \"pp_set_formatter_tag_functions|pp_set_margin|pp_set_mark_tags|\" +\n        \"pp_set_max_boxes|pp_set_max_indent|pp_set_print_tags|pp_set_tab|\" +\n        \"pp_set_tags|pred|pred_big_int|pred_num|prerr_char|prerr_endline|\" +\n        \"prerr_float|prerr_int|prerr_newline|prerr_string|print|print_as|\" +\n        \"print_bool|print_break|print_char|print_cut|print_endline|print_float|\" +\n        \"print_flush|print_if_newline|print_int|print_newline|print_space|\" +\n        \"print_stat|print_string|print_tab|print_tbreak|printf|prohibit|\" +\n        \"public_method_label|push|putenv|quo_num|quomod_big_int|quote|raise|\" +\n        \"raise_window|ratio_of_num|rcontains_from|read|read_float|read_int|\" +\n        \"read_key|read_line|readdir|readdir|readlink|really_input|receive|recv|\" +\n        \"recvfrom|red|ref|regexp|regexp_case_fold|regexp_string|\" +\n        \"regexp_string_case_fold|register|register_exception|rem|remember_mode|\" +\n        \"remove|remove_assoc|remove_assq|rename|replace|replace_first|\" +\n        \"replace_matched|repr|reset|reshape|reshape_1|reshape_2|reshape_3|rev|\" +\n        \"rev_append|rev_map|rev_map2|rewinddir|rgb|rhs_end|rhs_end_pos|rhs_start|\" +\n        \"rhs_start_pos|rindex|rindex_from|rlineto|rmdir|rmoveto|round_num|\" +\n        \"run_initializers|run_initializers_opt|scanf|search_backward|\" +\n        \"search_forward|seek_in|seek_out|select|self|self_init|send|sendto|set|\" +\n        \"set_all_formatter_output_functions|set_approx_printing|\" +\n        \"set_binary_mode_in|set_binary_mode_out|set_close_on_exec|\" +\n        \"set_close_on_exec|set_color|set_ellipsis_text|\" +\n        \"set_error_when_null_denominator|set_field|set_floating_precision|\" +\n        \"set_font|set_formatter_out_channel|set_formatter_output_functions|\" +\n        \"set_formatter_tag_functions|set_line_width|set_margin|set_mark_tags|\" +\n        \"set_max_boxes|set_max_indent|set_method|set_nonblock|set_nonblock|\" +\n        \"set_normalize_ratio|set_normalize_ratio_when_printing|set_print_tags|\" +\n        \"set_signal|set_state|set_tab|set_tag|set_tags|set_text_size|\" +\n        \"set_window_title|setgid|setgid|setitimer|setitimer|setsid|setsid|\" +\n        \"setsockopt|setsockopt|setsockopt_float|setsockopt_float|setsockopt_int|\" +\n        \"setsockopt_int|setsockopt_optint|setsockopt_optint|setuid|setuid|\" +\n        \"shift_left|shift_left|shift_left|shift_right|shift_right|shift_right|\" +\n        \"shift_right_logical|shift_right_logical|shift_right_logical|show_buckets|\" +\n        \"shutdown|shutdown|shutdown_connection|shutdown_connection|sigabrt|\" +\n        \"sigalrm|sigchld|sigcont|sigfpe|sighup|sigill|sigint|sigkill|sign_big_int|\" +\n        \"sign_num|signal|signal|sigpending|sigpending|sigpipe|sigprocmask|\" +\n        \"sigprocmask|sigprof|sigquit|sigsegv|sigstop|sigsuspend|sigsuspend|\" +\n        \"sigterm|sigtstp|sigttin|sigttou|sigusr1|sigusr2|sigvtalrm|sin|singleton|\" +\n        \"sinh|size|size|size_x|size_y|sleep|sleep|sleep|slice_left|slice_left|\" +\n        \"slice_left_1|slice_left_2|slice_right|slice_right|slice_right_1|\" +\n        \"slice_right_2|snd|socket|socket|socket|socketpair|socketpair|sort|sound|\" +\n        \"split|split_delim|sprintf|sprintf|sqrt|sqrt|sqrt_big_int|square_big_int|\" +\n        \"square_num|sscanf|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|\" +\n        \"stable_sort|stat|stat|stat|stat|stat|stats|stats|std_formatter|stdbuf|\" +\n        \"stderr|stderr|stderr|stdib|stdin|stdin|stdin|stdout|stdout|stdout|\" +\n        \"str_formatter|string|string_after|string_before|string_match|\" +\n        \"string_of_big_int|string_of_bool|string_of_float|string_of_format|\" +\n        \"string_of_inet_addr|string_of_inet_addr|string_of_int|string_of_num|\" +\n        \"string_partial_match|string_tag|sub|sub|sub_big_int|sub_left|sub_num|\" +\n        \"sub_right|subset|subset|substitute_first|substring|succ|succ|\" +\n        \"succ|succ|succ_big_int|succ_num|symbol_end|symbol_end_pos|symbol_start|\" +\n        \"symbol_start_pos|symlink|symlink|sync|synchronize|system|system|system|\" +\n        \"tag|take|tan|tanh|tcdrain|tcdrain|tcflow|tcflow|tcflush|tcflush|\" +\n        \"tcgetattr|tcgetattr|tcsendbreak|tcsendbreak|tcsetattr|tcsetattr|\" +\n        \"temp_file|text_size|time|time|time|timed_read|timed_write|times|times|\" +\n        \"tl|tl|tl|to_buffer|to_channel|to_float|to_hex|to_int|to_int32|to_list|\" +\n        \"to_list|to_list|to_nativeint|to_string|to_string|to_string|to_string|\" +\n        \"to_string|top|top|total_size|transfer|transp|truncate|truncate|truncate|\" +\n        \"truncate|truncate|truncate|try_lock|umask|umask|uncapitalize|uncapitalize|\" +\n        \"uncapitalize|union|union|unit_big_int|unlink|unlink|unlock|unmarshal|\" +\n        \"unsafe_blit|unsafe_fill|unsafe_get|unsafe_get|unsafe_set|unsafe_set|\" +\n        \"update|uppercase|uppercase|uppercase|uppercase|usage|utimes|utimes|wait|\" +\n        \"wait|wait|wait|wait_next_event|wait_pid|wait_read|wait_signal|\" +\n        \"wait_timed_read|wait_timed_write|wait_write|waitpid|white|\" +\n        \"widen|window_id|word_size|wrap|wrap_abort|write|yellow|yield|zero|zero_big_int|\" +\n\n        \"Arg|Arith_status|Array|Array1|Array2|Array3|ArrayLabels|Big_int|Bigarray|\" +\n        \"Buffer|Callback|CamlinternalOO|Char|Complex|Condition|Dbm|Digest|Dynlink|\" +\n        \"Event|Filename|Format|Gc|Genarray|Genlex|Graphics|GraphicsX11|Hashtbl|\" +\n        \"Int32|Int64|LargeFile|Lazy|Lexing|List|ListLabels|Make|Map|Marshal|\" +\n        \"MoreLabels|Mutex|Nativeint|Num|Obj|Oo|Parsing|Pervasives|Printexc|\" +\n        \"Printf|Queue|Random|Scanf|Scanning|Set|Sort|Stack|State|StdLabels|Str|\" +\n        \"Stream|String|StringLabels|Sys|Thread|ThreadUnix|Tk|Unix|UnixLabels|Weak\"\n    );\n\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\": \"this\",\n        \"keyword\": keywords,\n        \"constant.language\": builtinConstants,\n        \"support.function\": builtinFunctions\n    }, \"identifier\");\n\n    var decimalInteger = \"(?:(?:[1-9]\\\\d*)|(?:0))\";\n    var octInteger = \"(?:0[oO]?[0-7]+)\";\n    var hexInteger = \"(?:0[xX][\\\\dA-Fa-f]+)\";\n    var binInteger = \"(?:0[bB][01]+)\";\n    var integer = \"(?:\" + decimalInteger + \"|\" + octInteger + \"|\" + hexInteger + \"|\" + binInteger + \")\";\n\n    var exponent = \"(?:[eE][+-]?\\\\d+)\";\n    var fraction = \"(?:\\\\.\\\\d+)\";\n    var intPart = \"(?:\\\\d+)\";\n    var pointFloat = \"(?:(?:\" + intPart + \"?\" + fraction + \")|(?:\" + intPart + \"\\\\.))\";\n    var exponentFloat = \"(?:(?:\" + pointFloat + \"|\" +  intPart + \")\" + exponent + \")\";\n    var floatNumber = \"(?:\" + exponentFloat + \"|\" + pointFloat + \")\";\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : '\\\\(\\\\*.*?\\\\*\\\\)\\\\s*?$'\n            },\n            {\n                token : \"comment\",\n                regex : '\\\\(\\\\*.*',\n                next : \"comment\"\n            },\n            {\n                token : \"string\", // single line\n                regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n            },\n            {\n                token : \"string\", // single char\n                regex : \"'.'\"\n            },\n            {\n                token : \"string\", // \" string\n                regex : '\"',\n                next  : \"qstring\"\n            },\n            {\n                token : \"constant.numeric\", // imaginary\n                regex : \"(?:\" + floatNumber + \"|\\\\d+)[jJ]\\\\b\"\n            },\n            {\n                token : \"constant.numeric\", // float\n                regex : floatNumber\n            },\n            {\n                token : \"constant.numeric\", // integer\n                regex : integer + \"\\\\b\"\n            },\n            {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n            },\n            {\n                token : \"keyword.operator\",\n                regex : \"\\\\+\\\\.|\\\\-\\\\.|\\\\*\\\\.|\\\\/\\\\.|#|;;|\\\\+|\\\\-|\\\\*|\\\\*\\\\*\\\\/|\\\\/\\\\/|%|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|<-|=\"\n            },\n            {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            },\n            {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            },\n            {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\)\",\n                next : \"start\"\n            },\n            {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ],\n\n        \"qstring\" : [\n            {\n                token : \"string\",\n                regex : '\"',\n                next : \"start\"\n            }, {\n                token : \"string\",\n                regex : '.+'\n            }\n        ]\n    };\n};\n\noop.inherits(OcamlHighlightRules, TextHighlightRules);\n\nexports.OcamlHighlightRules = OcamlHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/ocaml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ocaml_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar OcamlHighlightRules = require(\"./ocaml_highlight_rules\").OcamlHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar Range = require(\"../range\").Range;\n\nvar Mode = function() {\n    this.HighlightRules = OcamlHighlightRules;\n    this.$behaviour = this.$defaultBehaviour;\n    \n    this.$outdent   = new MatchingBraceOutdent();\n};\noop.inherits(Mode, TextMode);\n\nvar indenter = /(?:[({[=:]|[-=]>|\\b(?:else|try|with))\\s*$/;\n\n(function() {\n\n    this.toggleCommentLines = function(state, doc, startRow, endRow) {\n        var i, line;\n        var outdent = true;\n        var re = /^\\s*\\(\\*(.*)\\*\\)/;\n\n        for (i=startRow; i<= endRow; i++) {\n            if (!re.test(doc.getLine(i))) {\n                outdent = false;\n                break;\n            }\n        }\n\n        var range = new Range(0, 0, 0, 0);\n        for (i=startRow; i<= endRow; i++) {\n            line = doc.getLine(i);\n            range.start.row  = i;\n            range.end.row    = i;\n            range.end.column = line.length;\n\n            doc.replace(range, outdent ? line.match(re)[1] : \"(*\" + line + \"*)\");\n        }\n    };\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n\n        if (!(tokens.length && tokens[tokens.length - 1].type === 'comment') &&\n            state === 'start' && indenter.test(line))\n            indent += tab;\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.$id = \"ace/mode/ocaml\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-pascal.js",
    "content": "ace.define(\"ace/mode/pascal_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar PascalHighlightRules = function() {\n\n    this.$rules = { start: \n       [ { caseInsensitive: true,\n           token: 'keyword.control.pascal',\n           regex: '\\\\b(?:(absolute|abstract|all|and|and_then|array|as|asm|attribute|begin|bindable|case|class|const|constructor|destructor|div|do|do|else|end|except|export|exports|external|far|file|finalization|finally|for|forward|goto|if|implementation|import|in|inherited|initialization|interface|interrupt|is|label|library|mod|module|name|near|nil|not|object|of|only|operator|or|or_else|otherwise|packed|pow|private|program|property|protected|public|published|qualified|record|repeat|resident|restricted|segment|set|shl|shr|then|to|try|type|unit|until|uses|value|var|view|virtual|while|with|xor))\\\\b' },\n         { caseInsensitive: true,           \n           token: \n            [ 'variable.pascal', \"text\",\n              'storage.type.prototype.pascal',\n              'entity.name.function.prototype.pascal' ],\n           regex: '\\\\b(function|procedure)(\\\\s+)(\\\\w+)(\\\\.\\\\w+)?(?=(?:\\\\(.*?\\\\))?;\\\\s*(?:attribute|forward|external))' },\n         { caseInsensitive: true,\n           token: \n            [ 'variable.pascal', \"text\",\n              'storage.type.function.pascal',\n              'entity.name.function.pascal' ],\n           regex: '\\\\b(function|procedure)(\\\\s+)(\\\\w+)(\\\\.\\\\w+)?' },\n         { token: 'constant.numeric.pascal',\n           regex: '\\\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\\\.?[0-9]*)|(\\\\.[0-9]+))((e|E)(\\\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b' },\n         { token: 'punctuation.definition.comment.pascal',\n           regex: '--.*$',\n           push_: \n            [ { token: 'comment.line.double-dash.pascal.one',\n                regex: '$',\n                next: 'pop' },\n              { defaultToken: 'comment.line.double-dash.pascal.one' } ] },\n         { token: 'punctuation.definition.comment.pascal',\n           regex: '//.*$',\n           push_: \n            [ { token: 'comment.line.double-slash.pascal.two',\n                regex: '$',\n                next: 'pop' },\n              { defaultToken: 'comment.line.double-slash.pascal.two' } ] },\n         { token: 'punctuation.definition.comment.pascal',\n           regex: '\\\\(\\\\*',\n           push: \n            [ { token: 'punctuation.definition.comment.pascal',\n                regex: '\\\\*\\\\)',\n                next: 'pop' },\n              { defaultToken: 'comment.block.pascal.one' } ] },\n         { token: 'punctuation.definition.comment.pascal',\n           regex: '\\\\{',\n           push: \n            [ { token: 'punctuation.definition.comment.pascal',\n                regex: '\\\\}',\n                next: 'pop' },\n              { defaultToken: 'comment.block.pascal.two' } ] },\n         { token: 'punctuation.definition.string.begin.pascal',\n           regex: '\"',\n           push: \n            [ { token: 'constant.character.escape.pascal', regex: '\\\\\\\\.' },\n              { token: 'punctuation.definition.string.end.pascal',\n                regex: '\"',\n                next: 'pop' },\n              { defaultToken: 'string.quoted.double.pascal' } ]\n            },\n         { token: 'punctuation.definition.string.begin.pascal',\n           regex: '\\'',\n           push: \n            [ { token: 'constant.character.escape.apostrophe.pascal',\n                regex: '\\'\\'' },\n              { token: 'punctuation.definition.string.end.pascal',\n                regex: '\\'',\n                next: 'pop' },\n              { defaultToken: 'string.quoted.single.pascal' } ] },\n          { token: 'keyword.operator',\n           regex: '[+\\\\-;,/*%]|:=|=' } ] }\n    \n    this.normalizeRules();\n};\n\noop.inherits(PascalHighlightRules, TextHighlightRules);\n\nexports.PascalHighlightRules = PascalHighlightRules;\n});\n\nace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var range = this.indentationBlock(session, row);\n        if (range)\n            return range;\n\n        var re = /\\S/;\n        var line = session.getLine(row);\n        var startLevel = line.search(re);\n        if (startLevel == -1 || line[startLevel] != \"#\")\n            return;\n\n        var startColumn = line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var level = line.search(re);\n\n            if (level == -1)\n                continue;\n\n            if (line[level] != \"#\")\n                break;\n\n            endRow = row;\n        }\n\n        if (endRow > startRow) {\n            var endColumn = session.getLine(endRow).length;\n            return new Range(startRow, startColumn, endRow, endColumn);\n        }\n    };\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var indent = line.search(/\\S/);\n        var next = session.getLine(row + 1);\n        var prev = session.getLine(row - 1);\n        var prevIndent = prev.search(/\\S/);\n        var nextIndent = next.search(/\\S/);\n\n        if (indent == -1) {\n            session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n            return \"\";\n        }\n        if (prevIndent == -1) {\n            if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n                session.foldWidgets[row - 1] = \"\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"start\";\n            }\n        } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n            if (session.getLine(row - 2).search(/\\S/) == -1) {\n                session.foldWidgets[row - 1] = \"start\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"\";\n            }\n        }\n\n        if (prevIndent!= -1 && prevIndent < indent)\n            session.foldWidgets[row - 1] = \"start\";\n        else\n            session.foldWidgets[row - 1] = \"\";\n\n        if (indent < nextIndent)\n            return \"start\";\n        else\n            return \"\";\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/pascal\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/pascal_highlight_rules\",\"ace/mode/folding/coffee\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar PascalHighlightRules = require(\"./pascal_highlight_rules\").PascalHighlightRules;\nvar FoldMode = require(\"./folding/coffee\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = PascalHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n       \n    this.lineCommentStart = [\"--\", \"//\"];\n    this.blockComment = [\n        {start: \"(*\", end: \"*)\"},\n        {start: \"{\", end: \"}\"}\n    ];\n    \n    this.$id = \"ace/mode/pascal\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-perl.js",
    "content": "ace.define(\"ace/mode/perl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar PerlHighlightRules = function() {\n\n    var keywords = (\n        \"base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|\" +\n         \"no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars\"\n    );\n\n    var buildinConstants = (\"ARGV|ENV|INC|SIG\");\n\n    var builtinFunctions = (\n        \"getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|\" +\n         \"gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|\" +\n         \"getpeername|setpriority|getprotoent|setprotoent|getpriority|\" +\n         \"endprotoent|getservent|setservent|endservent|sethostent|socketpair|\" +\n         \"getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|\" +\n         \"localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|\" +\n         \"closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|\" +\n         \"shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|\" +\n         \"dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|\" +\n         \"setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|\" +\n         \"lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|\" +\n         \"waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|\" +\n         \"chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|\" +\n         \"unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|\" +\n         \"length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|\" +\n         \"undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|\" +\n         \"sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|\" +\n         \"BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|\" +\n         \"join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|\" +\n         \"keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|\" +\n         \"eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|\" +\n         \"map|die|uc|lc|do\"\n    );\n\n    var keywordMapper = this.createKeywordMapper({\n        \"keyword\": keywords,\n        \"constant.language\": buildinConstants,\n        \"support.function\": builtinFunctions\n    }, \"identifier\");\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment.doc\",\n                regex : \"^=(?:begin|item)\\\\b\",\n                next : \"block_comment\"\n            }, {\n                token : \"string.regexp\",\n                regex : \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"\n            }, {\n                token : \"string\", // single line\n                regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n            }, {\n                token : \"string\", // multi line string start\n                regex : '[\"].*\\\\\\\\$',\n                next : \"qqstring\"\n            }, {\n                token : \"string\", // single line\n                regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n            }, {\n                token : \"string\", // multi line string start\n                regex : \"['].*\\\\\\\\$\",\n                next : \"qstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : \"0x[0-9a-fA-F]+\\\\b\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"%#|\\\\$#|\\\\.\\\\.\\\\.|\\\\|\\\\|=|>>=|<<=|<=>|&&=|=>|!~|\\\\^=|&=|\\\\|=|\\\\.=|x=|%=|\\\\/=|\\\\*=|\\\\-=|\\\\+=|=~|\\\\*\\\\*|\\\\-\\\\-|\\\\.\\\\.|\\\\|\\\\||&&|\\\\+\\\\+|\\\\->|!=|==|>=|<=|>>|<<|,|=|\\\\?\\\\:|\\\\^|\\\\||x|%|\\\\/|\\\\*|<|&|\\\\\\\\|~|!|>|\\\\.|\\\\-|\\\\+|\\\\-C|\\\\-b|\\\\-S|\\\\-u|\\\\-t|\\\\-p|\\\\-l|\\\\-d|\\\\-f|\\\\-g|\\\\-s|\\\\-z|\\\\-k|\\\\-e|\\\\-O|\\\\-T|\\\\-B|\\\\-M|\\\\-A|\\\\-X|\\\\-W|\\\\-c|\\\\-R|\\\\-o|\\\\-x|\\\\-w|\\\\-r|\\\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)\"\n            }, {\n                token : \"comment\",\n                regex : \"#.*$\"\n            }, {\n                token : \"lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"string\",\n                regex : '(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',\n                next : \"start\"\n            }, {\n                token : \"string\",\n                regex : '.+'\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"string\",\n                regex : \"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",\n                next : \"start\"\n            }, {\n                token : \"string\",\n                regex : '.+'\n            }\n        ],\n        \"block_comment\": [\n            {\n                token: \"comment.doc\", \n                regex: \"^=cut\\\\b\",\n                next: \"start\"\n            },\n            {\n                defaultToken: \"comment.doc\"\n            }\n        ]\n    };\n};\n\noop.inherits(PerlHighlightRules, TextHighlightRules);\n\nexports.PerlHighlightRules = PerlHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/perl\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/perl_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar PerlHighlightRules = require(\"./perl_highlight_rules\").PerlHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = PerlHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.foldingRules = new CStyleFoldMode({start: \"^=(begin|item)\\\\b\", end: \"^=(cut)\\\\b\"});\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"#\";\n    this.blockComment = [\n        {start: \"=begin\", end: \"=cut\", lineStartOnly: true},\n        {start: \"=item\", end: \"=cut\", lineStartOnly: true}\n    ];\n\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[:]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.$id = \"ace/mode/perl\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-pgsql.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/perl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar PerlHighlightRules = function() {\n\n    var keywords = (\n        \"base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|\" +\n         \"no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars\"\n    );\n\n    var buildinConstants = (\"ARGV|ENV|INC|SIG\");\n\n    var builtinFunctions = (\n        \"getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|\" +\n         \"gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|\" +\n         \"getpeername|setpriority|getprotoent|setprotoent|getpriority|\" +\n         \"endprotoent|getservent|setservent|endservent|sethostent|socketpair|\" +\n         \"getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|\" +\n         \"localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|\" +\n         \"closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|\" +\n         \"shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|\" +\n         \"dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|\" +\n         \"setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|\" +\n         \"lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|\" +\n         \"waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|\" +\n         \"chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|\" +\n         \"unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|\" +\n         \"length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|\" +\n         \"undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|\" +\n         \"sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|\" +\n         \"BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|\" +\n         \"join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|\" +\n         \"keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|\" +\n         \"eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|\" +\n         \"map|die|uc|lc|do\"\n    );\n\n    var keywordMapper = this.createKeywordMapper({\n        \"keyword\": keywords,\n        \"constant.language\": buildinConstants,\n        \"support.function\": builtinFunctions\n    }, \"identifier\");\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment.doc\",\n                regex : \"^=(?:begin|item)\\\\b\",\n                next : \"block_comment\"\n            }, {\n                token : \"string.regexp\",\n                regex : \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"\n            }, {\n                token : \"string\", // single line\n                regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n            }, {\n                token : \"string\", // multi line string start\n                regex : '[\"].*\\\\\\\\$',\n                next : \"qqstring\"\n            }, {\n                token : \"string\", // single line\n                regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n            }, {\n                token : \"string\", // multi line string start\n                regex : \"['].*\\\\\\\\$\",\n                next : \"qstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : \"0x[0-9a-fA-F]+\\\\b\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"%#|\\\\$#|\\\\.\\\\.\\\\.|\\\\|\\\\|=|>>=|<<=|<=>|&&=|=>|!~|\\\\^=|&=|\\\\|=|\\\\.=|x=|%=|\\\\/=|\\\\*=|\\\\-=|\\\\+=|=~|\\\\*\\\\*|\\\\-\\\\-|\\\\.\\\\.|\\\\|\\\\||&&|\\\\+\\\\+|\\\\->|!=|==|>=|<=|>>|<<|,|=|\\\\?\\\\:|\\\\^|\\\\||x|%|\\\\/|\\\\*|<|&|\\\\\\\\|~|!|>|\\\\.|\\\\-|\\\\+|\\\\-C|\\\\-b|\\\\-S|\\\\-u|\\\\-t|\\\\-p|\\\\-l|\\\\-d|\\\\-f|\\\\-g|\\\\-s|\\\\-z|\\\\-k|\\\\-e|\\\\-O|\\\\-T|\\\\-B|\\\\-M|\\\\-A|\\\\-X|\\\\-W|\\\\-c|\\\\-R|\\\\-o|\\\\-x|\\\\-w|\\\\-r|\\\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)\"\n            }, {\n                token : \"comment\",\n                regex : \"#.*$\"\n            }, {\n                token : \"lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"string\",\n                regex : '(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',\n                next : \"start\"\n            }, {\n                token : \"string\",\n                regex : '.+'\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"string\",\n                regex : \"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",\n                next : \"start\"\n            }, {\n                token : \"string\",\n                regex : '.+'\n            }\n        ],\n        \"block_comment\": [\n            {\n                token: \"comment.doc\", \n                regex: \"^=cut\\\\b\",\n                next: \"start\"\n            },\n            {\n                defaultToken: \"comment.doc\"\n            }\n        ]\n    };\n};\n\noop.inherits(PerlHighlightRules, TextHighlightRules);\n\nexports.PerlHighlightRules = PerlHighlightRules;\n});\n\nace.define(\"ace/mode/python_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar PythonHighlightRules = function() {\n\n    var keywords = (\n        \"and|as|assert|break|class|continue|def|del|elif|else|except|exec|\" +\n        \"finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|\" +\n        \"raise|return|try|while|with|yield\"\n    );\n\n    var builtinConstants = (\n        \"True|False|None|NotImplemented|Ellipsis|__debug__\"\n    );\n\n    var builtinFunctions = (\n        \"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|\" +\n        \"eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|\" +\n        \"binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|\" +\n        \"float|list|raw_input|unichr|callable|format|locals|reduce|unicode|\" +\n        \"chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|\" +\n        \"cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|\" +\n        \"__import__|complex|hash|min|set|apply|delattr|help|next|setattr|\" +\n        \"buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern\"\n    );\n    var keywordMapper = this.createKeywordMapper({\n        \"invalid.deprecated\": \"debugger\",\n        \"support.function\": builtinFunctions,\n        \"constant.language\": builtinConstants,\n        \"keyword\": keywords\n    }, \"identifier\");\n\n    var strPre = \"(?:r|u|ur|R|U|UR|Ur|uR)?\";\n\n    var decimalInteger = \"(?:(?:[1-9]\\\\d*)|(?:0))\";\n    var octInteger = \"(?:0[oO]?[0-7]+)\";\n    var hexInteger = \"(?:0[xX][\\\\dA-Fa-f]+)\";\n    var binInteger = \"(?:0[bB][01]+)\";\n    var integer = \"(?:\" + decimalInteger + \"|\" + octInteger + \"|\" + hexInteger + \"|\" + binInteger + \")\";\n\n    var exponent = \"(?:[eE][+-]?\\\\d+)\";\n    var fraction = \"(?:\\\\.\\\\d+)\";\n    var intPart = \"(?:\\\\d+)\";\n    var pointFloat = \"(?:(?:\" + intPart + \"?\" + fraction + \")|(?:\" + intPart + \"\\\\.))\";\n    var exponentFloat = \"(?:(?:\" + pointFloat + \"|\" +  intPart + \")\" + exponent + \")\";\n    var floatNumber = \"(?:\" + exponentFloat + \"|\" + pointFloat + \")\";\n\n    var stringEscape =  \"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";\n\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment\",\n            regex : \"#.*$\"\n        }, {\n            token : \"string\",           // multi line \"\"\" string start\n            regex : strPre + '\"{3}',\n            next : \"qqstring3\"\n        }, {\n            token : \"string\",           // \" string\n            regex : strPre + '\"(?=.)',\n            next : \"qqstring\"\n        }, {\n            token : \"string\",           // multi line ''' string start\n            regex : strPre + \"'{3}\",\n            next : \"qstring3\"\n        }, {\n            token : \"string\",           // ' string\n            regex : strPre + \"'(?=.)\",\n            next : \"qstring\"\n        }, {\n            token : \"constant.numeric\", // imaginary\n            regex : \"(?:\" + floatNumber + \"|\\\\d+)[jJ]\\\\b\"\n        }, {\n            token : \"constant.numeric\", // float\n            regex : floatNumber\n        }, {\n            token : \"constant.numeric\", // long integer\n            regex : integer + \"[lL]\\\\b\"\n        }, {\n            token : \"constant.numeric\", // integer\n            regex : integer + \"\\\\b\"\n        }, {\n            token : keywordMapper,\n            regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n        }, {\n            token : \"keyword.operator\",\n            regex : \"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"\n        }, {\n            token : \"paren.lparen\",\n            regex : \"[\\\\[\\\\(\\\\{]\"\n        }, {\n            token : \"paren.rparen\",\n            regex : \"[\\\\]\\\\)\\\\}]\"\n        }, {\n            token : \"text\",\n            regex : \"\\\\s+\"\n        } ],\n        \"qqstring3\" : [ {\n            token : \"constant.language.escape\",\n            regex : stringEscape\n        }, {\n            token : \"string\", // multi line \"\"\" string end\n            regex : '\"{3}',\n            next : \"start\"\n        }, {\n            defaultToken : \"string\"\n        } ],\n        \"qstring3\" : [ {\n            token : \"constant.language.escape\",\n            regex : stringEscape\n        }, {\n            token : \"string\",  // multi line ''' string end\n            regex : \"'{3}\",\n            next : \"start\"\n        }, {\n            defaultToken : \"string\"\n        } ],\n        \"qqstring\" : [{\n            token : \"constant.language.escape\",\n            regex : stringEscape\n        }, {\n            token : \"string\",\n            regex : \"\\\\\\\\$\",\n            next  : \"qqstring\"\n        }, {\n            token : \"string\",\n            regex : '\"|$',\n            next  : \"start\"\n        }, {\n            defaultToken: \"string\"\n        }],\n        \"qstring\" : [{\n            token : \"constant.language.escape\",\n            regex : stringEscape\n        }, {\n            token : \"string\",\n            regex : \"\\\\\\\\$\",\n            next  : \"qstring\"\n        }, {\n            token : \"string\",\n            regex : \"'|$\",\n            next  : \"start\"\n        }, {\n            defaultToken: \"string\"\n        }]\n    };\n};\n\noop.inherits(PythonHighlightRules, TextHighlightRules);\n\nexports.PythonHighlightRules = PythonHighlightRules;\n});\n\nace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar JsonHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"variable\", // single line\n                regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n            }, {\n                token : \"string\", // single line\n                regex : '\"',\n                next  : \"string\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n            }, {\n                token : \"constant.language.boolean\",\n                regex : \"(?:true|false)\\\\b\"\n            }, {\n                token : \"invalid.illegal\", // single quoted strings are not allowed\n                regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n            }, {\n                token : \"invalid.illegal\", // comments are not allowed\n                regex : \"\\\\/\\\\/.*$\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"string\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n            }, {\n                token : \"string\",\n                regex : '[^\"\\\\\\\\]+'\n            }, {\n                token : \"string\",\n                regex : '\"',\n                next  : \"start\"\n            }, {\n                token : \"string\",\n                regex : \"\",\n                next  : \"start\"\n            }\n        ]\n    };\n    \n};\n\noop.inherits(JsonHighlightRules, TextHighlightRules);\n\nexports.JsonHighlightRules = JsonHighlightRules;\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/pgsql_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\",\"ace/mode/perl_highlight_rules\",\"ace/mode/python_highlight_rules\",\"ace/mode/json_highlight_rules\",\"ace/mode/javascript_highlight_rules\"], function(require, exports, module) {\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar PerlHighlightRules = require(\"./perl_highlight_rules\").PerlHighlightRules;\nvar PythonHighlightRules = require(\"./python_highlight_rules\").PythonHighlightRules;\nvar JsonHighlightRules = require(\"./json_highlight_rules\").JsonHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\n\nvar PgsqlHighlightRules = function() {\n    var keywords = (\n        \"abort|absolute|abstime|access|aclitem|action|add|admin|after|aggregate|all|also|alter|always|\" +\n        \"analyse|analyze|and|any|anyarray|anyelement|anyenum|anynonarray|anyrange|array|as|asc|\" +\n        \"assertion|assignment|asymmetric|at|attribute|authorization|backward|before|begin|between|\" +\n        \"bigint|binary|bit|bool|boolean|both|box|bpchar|by|bytea|cache|called|cascade|cascaded|case|cast|\" +\n        \"catalog|chain|char|character|characteristics|check|checkpoint|cid|cidr|circle|class|close|\" +\n        \"cluster|coalesce|collate|collation|column|comment|comments|commit|committed|concurrently|\" +\n        \"configuration|connection|constraint|constraints|content|continue|conversion|copy|cost|\" +\n        \"create|cross|cstring|csv|current|current_catalog|current_date|current_role|\" +\n        \"current_schema|current_time|current_timestamp|current_user|cursor|cycle|data|database|\" +\n        \"date|daterange|day|deallocate|dec|decimal|declare|default|defaults|deferrable|deferred|\" +\n        \"definer|delete|delimiter|delimiters|desc|dictionary|disable|discard|distinct|do|document|\" +\n        \"domain|double|drop|each|else|enable|encoding|encrypted|end|enum|escape|event|event_trigger|\" +\n        \"except|exclude|excluding|exclusive|execute|exists|explain|extension|external|extract|false|\" +\n        \"family|fdw_handler|fetch|first|float|float4|float8|following|for|force|foreign|forward|\" +\n        \"freeze|from|full|function|functions|global|grant|granted|greatest|group|gtsvector|handler|\" +\n        \"having|header|hold|hour|identity|if|ilike|immediate|immutable|implicit|in|including|\" +\n        \"increment|index|indexes|inet|inherit|inherits|initially|inline|inner|inout|input|\" +\n        \"insensitive|insert|instead|int|int2|int2vector|int4|int4range|int8|int8range|integer|\" +\n        \"internal|intersect|interval|into|invoker|is|isnull|isolation|join|json|key|label|language|\" +\n        \"language_handler|large|last|lateral|lc_collate|lc_ctype|leading|leakproof|least|left|level|\" +\n        \"like|limit|line|listen|load|local|localtime|localtimestamp|location|lock|lseg|macaddr|\" +\n        \"mapping|match|materialized|maxvalue|minute|minvalue|mode|money|month|move|name|names|\" +\n        \"national|natural|nchar|next|no|none|not|nothing|notify|notnull|nowait|null|nullif|nulls|\" +\n        \"numeric|numrange|object|of|off|offset|oid|oids|oidvector|on|only|opaque|operator|option|\" +\n        \"options|or|order|out|outer|over|overlaps|overlay|owned|owner|parser|partial|partition|passing|\" +\n        \"password|path|pg_attribute|pg_auth_members|pg_authid|pg_class|pg_database|pg_node_tree|\" +\n        \"pg_proc|pg_type|placing|plans|point|polygon|position|preceding|precision|prepare|prepared|\" +\n        \"preserve|primary|prior|privileges|procedural|procedure|program|quote|range|read|real|\" +\n        \"reassign|recheck|record|recursive|ref|refcursor|references|refresh|regclass|regconfig|\" +\n        \"regdictionary|regoper|regoperator|regproc|regprocedure|regtype|reindex|relative|release|\" +\n        \"reltime|rename|repeatable|replace|replica|reset|restart|restrict|returning|returns|revoke|\" +\n        \"right|role|rollback|row|rows|rule|savepoint|schema|scroll|search|second|security|select|\" +\n        \"sequence|sequences|serializable|server|session|session_user|set|setof|share|show|similar|\" +\n        \"simple|smallint|smgr|snapshot|some|stable|standalone|start|statement|statistics|stdin|\" +\n        \"stdout|storage|strict|strip|substring|symmetric|sysid|system|table|tables|tablespace|temp|\" +\n        \"template|temporary|text|then|tid|time|timestamp|timestamptz|timetz|tinterval|to|trailing|\" +\n        \"transaction|treat|trigger|trim|true|truncate|trusted|tsquery|tsrange|tstzrange|tsvector|\" +\n        \"txid_snapshot|type|types|unbounded|uncommitted|unencrypted|union|unique|unknown|unlisten|\" +\n        \"unlogged|until|update|user|using|uuid|vacuum|valid|validate|validator|value|values|varbit|\" +\n        \"varchar|variadic|varying|verbose|version|view|void|volatile|when|where|whitespace|window|\" +\n        \"with|without|work|wrapper|write|xid|xml|xmlattributes|xmlconcat|xmlelement|xmlexists|\" +\n        \"xmlforest|xmlparse|xmlpi|xmlroot|xmlserialize|year|yes|zone\"\n    );\n\n\n    var builtinFunctions = (\n        \"RI_FKey_cascade_del|RI_FKey_cascade_upd|RI_FKey_check_ins|RI_FKey_check_upd|\" +\n        \"RI_FKey_noaction_del|RI_FKey_noaction_upd|RI_FKey_restrict_del|RI_FKey_restrict_upd|\" +\n        \"RI_FKey_setdefault_del|RI_FKey_setdefault_upd|RI_FKey_setnull_del|\" +\n        \"RI_FKey_setnull_upd|abbrev|abs|abstime|abstimeeq|abstimege|abstimegt|abstimein|abstimele|\" +\n        \"abstimelt|abstimene|abstimeout|abstimerecv|abstimesend|aclcontains|acldefault|\" +\n        \"aclexplode|aclinsert|aclitemeq|aclitemin|aclitemout|aclremove|acos|age|any_in|any_out|\" +\n        \"anyarray_in|anyarray_out|anyarray_recv|anyarray_send|anyelement_in|anyelement_out|\" +\n        \"anyenum_in|anyenum_out|anynonarray_in|anynonarray_out|anyrange_in|anyrange_out|\" +\n        \"anytextcat|area|areajoinsel|areasel|array_agg|array_agg_finalfn|array_agg_transfn|\" +\n        \"array_append|array_cat|array_dims|array_eq|array_fill|array_ge|array_gt|array_in|\" +\n        \"array_larger|array_le|array_length|array_lower|array_lt|array_ndims|array_ne|array_out|\" +\n        \"array_prepend|array_recv|array_remove|array_replace|array_send|array_smaller|\" +\n        \"array_to_json|array_to_string|array_typanalyze|array_upper|arraycontained|\" +\n        \"arraycontains|arraycontjoinsel|arraycontsel|arrayoverlap|ascii|ascii_to_mic|\" +\n        \"ascii_to_utf8|asin|atan|atan2|avg|big5_to_euc_tw|big5_to_mic|big5_to_utf8|bit_and|bit_in|\" +\n        \"bit_length|bit_or|bit_out|bit_recv|bit_send|bitand|bitcat|bitcmp|biteq|bitge|bitgt|bitle|\" +\n        \"bitlt|bitne|bitnot|bitor|bitshiftleft|bitshiftright|bittypmodin|bittypmodout|bitxor|bool|\" +\n        \"bool_and|bool_or|booland_statefunc|booleq|boolge|boolgt|boolin|boolle|boollt|boolne|\" +\n        \"boolor_statefunc|boolout|boolrecv|boolsend|box|box_above|box_above_eq|box_add|box_below|\" +\n        \"box_below_eq|box_center|box_contain|box_contain_pt|box_contained|box_distance|box_div|\" +\n        \"box_eq|box_ge|box_gt|box_in|box_intersect|box_le|box_left|box_lt|box_mul|box_out|\" +\n        \"box_overabove|box_overbelow|box_overlap|box_overleft|box_overright|box_recv|box_right|\" +\n        \"box_same|box_send|box_sub|bpchar_larger|bpchar_pattern_ge|bpchar_pattern_gt|\" +\n        \"bpchar_pattern_le|bpchar_pattern_lt|bpchar_smaller|bpcharcmp|bpchareq|bpcharge|\" +\n        \"bpchargt|bpchariclike|bpcharicnlike|bpcharicregexeq|bpcharicregexne|bpcharin|bpcharle|\" +\n        \"bpcharlike|bpcharlt|bpcharne|bpcharnlike|bpcharout|bpcharrecv|bpcharregexeq|\" +\n        \"bpcharregexne|bpcharsend|bpchartypmodin|bpchartypmodout|broadcast|btabstimecmp|\" +\n        \"btarraycmp|btbeginscan|btboolcmp|btbpchar_pattern_cmp|btbuild|btbuildempty|\" +\n        \"btbulkdelete|btcanreturn|btcharcmp|btcostestimate|btendscan|btfloat48cmp|btfloat4cmp|\" +\n        \"btfloat4sortsupport|btfloat84cmp|btfloat8cmp|btfloat8sortsupport|btgetbitmap|\" +\n        \"btgettuple|btinsert|btint24cmp|btint28cmp|btint2cmp|btint2sortsupport|btint42cmp|\" +\n        \"btint48cmp|btint4cmp|btint4sortsupport|btint82cmp|btint84cmp|btint8cmp|\" +\n        \"btint8sortsupport|btmarkpos|btnamecmp|btnamesortsupport|btoidcmp|btoidsortsupport|\" +\n        \"btoidvectorcmp|btoptions|btrecordcmp|btreltimecmp|btrescan|btrestrpos|btrim|\" +\n        \"bttext_pattern_cmp|bttextcmp|bttidcmp|bttintervalcmp|btvacuumcleanup|\" +\n        \"bytea_string_agg_finalfn|bytea_string_agg_transfn|byteacat|byteacmp|byteaeq|byteage|\" +\n        \"byteagt|byteain|byteale|bytealike|bytealt|byteane|byteanlike|byteaout|bytearecv|byteasend|\" +\n        \"cash_cmp|cash_div_cash|cash_div_flt4|cash_div_flt8|cash_div_int2|cash_div_int4|cash_eq|\" +\n        \"cash_ge|cash_gt|cash_in|cash_le|cash_lt|cash_mi|cash_mul_flt4|cash_mul_flt8|\" +\n        \"cash_mul_int2|cash_mul_int4|cash_ne|cash_out|cash_pl|cash_recv|cash_send|cash_words|\" +\n        \"cashlarger|cashsmaller|cbrt|ceil|ceiling|center|char|char_length|character_length|chareq|\" +\n        \"charge|chargt|charin|charle|charlt|charne|charout|charrecv|charsend|chr|cideq|cidin|cidout|\" +\n        \"cidr|cidr_in|cidr_out|cidr_recv|cidr_send|cidrecv|cidsend|circle|circle_above|\" +\n        \"circle_add_pt|circle_below|circle_center|circle_contain|circle_contain_pt|\" +\n        \"circle_contained|circle_distance|circle_div_pt|circle_eq|circle_ge|circle_gt|circle_in|\" +\n        \"circle_le|circle_left|circle_lt|circle_mul_pt|circle_ne|circle_out|circle_overabove|\" +\n        \"circle_overbelow|circle_overlap|circle_overleft|circle_overright|circle_recv|\" +\n        \"circle_right|circle_same|circle_send|circle_sub_pt|clock_timestamp|close_lb|close_ls|\" +\n        \"close_lseg|close_pb|close_pl|close_ps|close_sb|close_sl|col_description|concat|concat_ws|\" +\n        \"contjoinsel|contsel|convert|convert_from|convert_to|corr|cos|cot|count|covar_pop|\" +\n        \"covar_samp|cstring_in|cstring_out|cstring_recv|cstring_send|cume_dist|current_database|\" +\n        \"current_query|current_schema|current_schemas|current_setting|current_user|currtid|\" +\n        \"currtid2|currval|cursor_to_xml|cursor_to_xmlschema|database_to_xml|\" +\n        \"database_to_xml_and_xmlschema|database_to_xmlschema|date|date_cmp|date_cmp_timestamp|\" +\n        \"date_cmp_timestamptz|date_eq|date_eq_timestamp|date_eq_timestamptz|date_ge|\" +\n        \"date_ge_timestamp|date_ge_timestamptz|date_gt|date_gt_timestamp|date_gt_timestamptz|\" +\n        \"date_in|date_larger|date_le|date_le_timestamp|date_le_timestamptz|date_lt|\" +\n        \"date_lt_timestamp|date_lt_timestamptz|date_mi|date_mi_interval|date_mii|date_ne|\" +\n        \"date_ne_timestamp|date_ne_timestamptz|date_out|date_part|date_pl_interval|date_pli|\" +\n        \"date_recv|date_send|date_smaller|date_sortsupport|date_trunc|daterange|\" +\n        \"daterange_canonical|daterange_subdiff|datetime_pl|datetimetz_pl|dcbrt|decode|degrees|\" +\n        \"dense_rank|dexp|diagonal|diameter|dispell_init|dispell_lexize|dist_cpoly|dist_lb|dist_pb|\" +\n        \"dist_pc|dist_pl|dist_ppath|dist_ps|dist_sb|dist_sl|div|dlog1|dlog10|domain_in|domain_recv|\" +\n        \"dpow|dround|dsimple_init|dsimple_lexize|dsnowball_init|dsnowball_lexize|dsqrt|\" +\n        \"dsynonym_init|dsynonym_lexize|dtrunc|elem_contained_by_range|encode|enum_cmp|enum_eq|\" +\n        \"enum_first|enum_ge|enum_gt|enum_in|enum_larger|enum_last|enum_le|enum_lt|enum_ne|enum_out|\" +\n        \"enum_range|enum_recv|enum_send|enum_smaller|eqjoinsel|eqsel|euc_cn_to_mic|\" +\n        \"euc_cn_to_utf8|euc_jis_2004_to_shift_jis_2004|euc_jis_2004_to_utf8|euc_jp_to_mic|\" +\n        \"euc_jp_to_sjis|euc_jp_to_utf8|euc_kr_to_mic|euc_kr_to_utf8|euc_tw_to_big5|\" +\n        \"euc_tw_to_mic|euc_tw_to_utf8|event_trigger_in|event_trigger_out|every|exp|factorial|\" +\n        \"family|fdw_handler_in|fdw_handler_out|first_value|float4|float48div|float48eq|float48ge|\" +\n        \"float48gt|float48le|float48lt|float48mi|float48mul|float48ne|float48pl|float4_accum|\" +\n        \"float4abs|float4div|float4eq|float4ge|float4gt|float4in|float4larger|float4le|float4lt|\" +\n        \"float4mi|float4mul|float4ne|float4out|float4pl|float4recv|float4send|float4smaller|\" +\n        \"float4um|float4up|float8|float84div|float84eq|float84ge|float84gt|float84le|float84lt|\" +\n        \"float84mi|float84mul|float84ne|float84pl|float8_accum|float8_avg|float8_corr|\" +\n        \"float8_covar_pop|float8_covar_samp|float8_regr_accum|float8_regr_avgx|\" +\n        \"float8_regr_avgy|float8_regr_intercept|float8_regr_r2|float8_regr_slope|\" +\n        \"float8_regr_sxx|float8_regr_sxy|float8_regr_syy|float8_stddev_pop|float8_stddev_samp|\" +\n        \"float8_var_pop|float8_var_samp|float8abs|float8div|float8eq|float8ge|float8gt|float8in|\" +\n        \"float8larger|float8le|float8lt|float8mi|float8mul|float8ne|float8out|float8pl|float8recv|\" +\n        \"float8send|float8smaller|float8um|float8up|floor|flt4_mul_cash|flt8_mul_cash|\" +\n        \"fmgr_c_validator|fmgr_internal_validator|fmgr_sql_validator|format|format_type|\" +\n        \"gb18030_to_utf8|gbk_to_utf8|generate_series|generate_subscripts|get_bit|get_byte|\" +\n        \"get_current_ts_config|getdatabaseencoding|getpgusername|gin_cmp_prefix|\" +\n        \"gin_cmp_tslexeme|gin_extract_tsquery|gin_extract_tsvector|gin_tsquery_consistent|\" +\n        \"ginarrayconsistent|ginarrayextract|ginbeginscan|ginbuild|ginbuildempty|ginbulkdelete|\" +\n        \"gincostestimate|ginendscan|gingetbitmap|gininsert|ginmarkpos|ginoptions|\" +\n        \"ginqueryarrayextract|ginrescan|ginrestrpos|ginvacuumcleanup|gist_box_compress|\" +\n        \"gist_box_consistent|gist_box_decompress|gist_box_penalty|gist_box_picksplit|\" +\n        \"gist_box_same|gist_box_union|gist_circle_compress|gist_circle_consistent|\" +\n        \"gist_point_compress|gist_point_consistent|gist_point_distance|gist_poly_compress|\" +\n        \"gist_poly_consistent|gistbeginscan|gistbuild|gistbuildempty|gistbulkdelete|\" +\n        \"gistcostestimate|gistendscan|gistgetbitmap|gistgettuple|gistinsert|gistmarkpos|\" +\n        \"gistoptions|gistrescan|gistrestrpos|gistvacuumcleanup|gtsquery_compress|\" +\n        \"gtsquery_consistent|gtsquery_decompress|gtsquery_penalty|gtsquery_picksplit|\" +\n        \"gtsquery_same|gtsquery_union|gtsvector_compress|gtsvector_consistent|\" +\n        \"gtsvector_decompress|gtsvector_penalty|gtsvector_picksplit|gtsvector_same|\" +\n        \"gtsvector_union|gtsvectorin|gtsvectorout|has_any_column_privilege|\" +\n        \"has_column_privilege|has_database_privilege|has_foreign_data_wrapper_privilege|\" +\n        \"has_function_privilege|has_language_privilege|has_schema_privilege|\" +\n        \"has_sequence_privilege|has_server_privilege|has_table_privilege|\" +\n        \"has_tablespace_privilege|has_type_privilege|hash_aclitem|hash_array|hash_numeric|\" +\n        \"hash_range|hashbeginscan|hashbpchar|hashbuild|hashbuildempty|hashbulkdelete|hashchar|\" +\n        \"hashcostestimate|hashendscan|hashenum|hashfloat4|hashfloat8|hashgetbitmap|hashgettuple|\" +\n        \"hashinet|hashinsert|hashint2|hashint2vector|hashint4|hashint8|hashmacaddr|hashmarkpos|\" +\n        \"hashname|hashoid|hashoidvector|hashoptions|hashrescan|hashrestrpos|hashtext|\" +\n        \"hashvacuumcleanup|hashvarlena|height|host|hostmask|iclikejoinsel|iclikesel|\" +\n        \"icnlikejoinsel|icnlikesel|icregexeqjoinsel|icregexeqsel|icregexnejoinsel|icregexnesel|\" +\n        \"inet_client_addr|inet_client_port|inet_in|inet_out|inet_recv|inet_send|\" +\n        \"inet_server_addr|inet_server_port|inetand|inetmi|inetmi_int8|inetnot|inetor|inetpl|\" +\n        \"initcap|int2|int24div|int24eq|int24ge|int24gt|int24le|int24lt|int24mi|int24mul|int24ne|\" +\n        \"int24pl|int28div|int28eq|int28ge|int28gt|int28le|int28lt|int28mi|int28mul|int28ne|int28pl|\" +\n        \"int2_accum|int2_avg_accum|int2_mul_cash|int2_sum|int2abs|int2and|int2div|int2eq|int2ge|\" +\n        \"int2gt|int2in|int2larger|int2le|int2lt|int2mi|int2mod|int2mul|int2ne|int2not|int2or|int2out|\" +\n        \"int2pl|int2recv|int2send|int2shl|int2shr|int2smaller|int2um|int2up|int2vectoreq|\" +\n        \"int2vectorin|int2vectorout|int2vectorrecv|int2vectorsend|int2xor|int4|int42div|int42eq|\" +\n        \"int42ge|int42gt|int42le|int42lt|int42mi|int42mul|int42ne|int42pl|int48div|int48eq|int48ge|\" +\n        \"int48gt|int48le|int48lt|int48mi|int48mul|int48ne|int48pl|int4_accum|int4_avg_accum|\" +\n        \"int4_mul_cash|int4_sum|int4abs|int4and|int4div|int4eq|int4ge|int4gt|int4in|int4inc|\" +\n        \"int4larger|int4le|int4lt|int4mi|int4mod|int4mul|int4ne|int4not|int4or|int4out|int4pl|\" +\n        \"int4range|int4range_canonical|int4range_subdiff|int4recv|int4send|int4shl|int4shr|\" +\n        \"int4smaller|int4um|int4up|int4xor|int8|int82div|int82eq|int82ge|int82gt|int82le|int82lt|\" +\n        \"int82mi|int82mul|int82ne|int82pl|int84div|int84eq|int84ge|int84gt|int84le|int84lt|int84mi|\" +\n        \"int84mul|int84ne|int84pl|int8_accum|int8_avg|int8_avg_accum|int8_sum|int8abs|int8and|\" +\n        \"int8div|int8eq|int8ge|int8gt|int8in|int8inc|int8inc_any|int8inc_float8_float8|int8larger|\" +\n        \"int8le|int8lt|int8mi|int8mod|int8mul|int8ne|int8not|int8or|int8out|int8pl|int8pl_inet|\" +\n        \"int8range|int8range_canonical|int8range_subdiff|int8recv|int8send|int8shl|int8shr|\" +\n        \"int8smaller|int8um|int8up|int8xor|integer_pl_date|inter_lb|inter_sb|inter_sl|internal_in|\" +\n        \"internal_out|interval_accum|interval_avg|interval_cmp|interval_div|interval_eq|\" +\n        \"interval_ge|interval_gt|interval_hash|interval_in|interval_larger|interval_le|\" +\n        \"interval_lt|interval_mi|interval_mul|interval_ne|interval_out|interval_pl|\" +\n        \"interval_pl_date|interval_pl_time|interval_pl_timestamp|interval_pl_timestamptz|\" +\n        \"interval_pl_timetz|interval_recv|interval_send|interval_smaller|interval_transform|\" +\n        \"interval_um|intervaltypmodin|intervaltypmodout|intinterval|isclosed|isempty|isfinite|\" +\n        \"ishorizontal|iso8859_1_to_utf8|iso8859_to_utf8|iso_to_koi8r|iso_to_mic|iso_to_win1251|\" +\n        \"iso_to_win866|isopen|isparallel|isperp|isvertical|johab_to_utf8|json_agg|\" +\n        \"json_agg_finalfn|json_agg_transfn|json_array_element|json_array_element_text|\" +\n        \"json_array_elements|json_array_length|json_each|json_each_text|json_extract_path|\" +\n        \"json_extract_path_op|json_extract_path_text|json_extract_path_text_op|json_in|\" +\n        \"json_object_field|json_object_field_text|json_object_keys|json_out|\" +\n        \"json_populate_record|json_populate_recordset|json_recv|json_send|justify_days|\" +\n        \"justify_hours|justify_interval|koi8r_to_iso|koi8r_to_mic|koi8r_to_utf8|\" +\n        \"koi8r_to_win1251|koi8r_to_win866|koi8u_to_utf8|lag|language_handler_in|\" +\n        \"language_handler_out|last_value|lastval|latin1_to_mic|latin2_to_mic|latin2_to_win1250|\" +\n        \"latin3_to_mic|latin4_to_mic|lead|left|length|like|like_escape|likejoinsel|likesel|line|\" +\n        \"line_distance|line_eq|line_horizontal|line_in|line_interpt|line_intersect|line_out|\" +\n        \"line_parallel|line_perp|line_recv|line_send|line_vertical|ln|lo_close|lo_creat|lo_create|\" +\n        \"lo_export|lo_import|lo_lseek|lo_lseek64|lo_open|lo_tell|lo_tell64|lo_truncate|\" +\n        \"lo_truncate64|lo_unlink|log|loread|lower|lower_inc|lower_inf|lowrite|lpad|lseg|lseg_center|\" +\n        \"lseg_distance|lseg_eq|lseg_ge|lseg_gt|lseg_horizontal|lseg_in|lseg_interpt|\" +\n        \"lseg_intersect|lseg_le|lseg_length|lseg_lt|lseg_ne|lseg_out|lseg_parallel|lseg_perp|\" +\n        \"lseg_recv|lseg_send|lseg_vertical|ltrim|macaddr_and|macaddr_cmp|macaddr_eq|macaddr_ge|\" +\n        \"macaddr_gt|macaddr_in|macaddr_le|macaddr_lt|macaddr_ne|macaddr_not|macaddr_or|\" +\n        \"macaddr_out|macaddr_recv|macaddr_send|makeaclitem|masklen|max|md5|mic_to_ascii|\" +\n        \"mic_to_big5|mic_to_euc_cn|mic_to_euc_jp|mic_to_euc_kr|mic_to_euc_tw|mic_to_iso|\" +\n        \"mic_to_koi8r|mic_to_latin1|mic_to_latin2|mic_to_latin3|mic_to_latin4|mic_to_sjis|\" +\n        \"mic_to_win1250|mic_to_win1251|mic_to_win866|min|mktinterval|mod|money|mul_d_interval|\" +\n        \"name|nameeq|namege|namegt|nameiclike|nameicnlike|nameicregexeq|nameicregexne|namein|\" +\n        \"namele|namelike|namelt|namene|namenlike|nameout|namerecv|nameregexeq|nameregexne|namesend|\" +\n        \"neqjoinsel|neqsel|netmask|network|network_cmp|network_eq|network_ge|network_gt|\" +\n        \"network_le|network_lt|network_ne|network_sub|network_subeq|network_sup|network_supeq|\" +\n        \"nextval|nlikejoinsel|nlikesel|notlike|now|npoints|nth_value|ntile|numeric_abs|\" +\n        \"numeric_accum|numeric_add|numeric_avg|numeric_avg_accum|numeric_cmp|numeric_div|\" +\n        \"numeric_div_trunc|numeric_eq|numeric_exp|numeric_fac|numeric_ge|numeric_gt|numeric_in|\" +\n        \"numeric_inc|numeric_larger|numeric_le|numeric_ln|numeric_log|numeric_lt|numeric_mod|\" +\n        \"numeric_mul|numeric_ne|numeric_out|numeric_power|numeric_recv|numeric_send|\" +\n        \"numeric_smaller|numeric_sqrt|numeric_stddev_pop|numeric_stddev_samp|numeric_sub|\" +\n        \"numeric_transform|numeric_uminus|numeric_uplus|numeric_var_pop|numeric_var_samp|\" +\n        \"numerictypmodin|numerictypmodout|numnode|numrange|numrange_subdiff|obj_description|\" +\n        \"octet_length|oid|oideq|oidge|oidgt|oidin|oidlarger|oidle|oidlt|oidne|oidout|oidrecv|oidsend|\" +\n        \"oidsmaller|oidvectoreq|oidvectorge|oidvectorgt|oidvectorin|oidvectorle|oidvectorlt|\" +\n        \"oidvectorne|oidvectorout|oidvectorrecv|oidvectorsend|oidvectortypes|on_pb|on_pl|\" +\n        \"on_ppath|on_ps|on_sb|on_sl|opaque_in|opaque_out|overlaps|overlay|path|path_add|path_add_pt|\" +\n        \"path_center|path_contain_pt|path_distance|path_div_pt|path_in|path_inter|path_length|\" +\n        \"path_mul_pt|path_n_eq|path_n_ge|path_n_gt|path_n_le|path_n_lt|path_npoints|path_out|\" +\n        \"path_recv|path_send|path_sub_pt|pclose|percent_rank|pg_advisory_lock|\" +\n        \"pg_advisory_lock_shared|pg_advisory_unlock|pg_advisory_unlock_all|\" +\n        \"pg_advisory_unlock_shared|pg_advisory_xact_lock|pg_advisory_xact_lock_shared|\" +\n        \"pg_available_extension_versions|pg_available_extensions|pg_backend_pid|\" +\n        \"pg_backup_start_time|pg_cancel_backend|pg_char_to_encoding|pg_client_encoding|\" +\n        \"pg_collation_for|pg_collation_is_visible|pg_column_is_updatable|pg_column_size|\" +\n        \"pg_conf_load_time|pg_conversion_is_visible|pg_create_restore_point|\" +\n        \"pg_current_xlog_insert_location|pg_current_xlog_location|pg_cursor|pg_database_size|\" +\n        \"pg_describe_object|pg_encoding_max_length|pg_encoding_to_char|\" +\n        \"pg_event_trigger_dropped_objects|pg_export_snapshot|pg_extension_config_dump|\" +\n        \"pg_extension_update_paths|pg_function_is_visible|pg_get_constraintdef|pg_get_expr|\" +\n        \"pg_get_function_arguments|pg_get_function_identity_arguments|\" +\n        \"pg_get_function_result|pg_get_functiondef|pg_get_indexdef|pg_get_keywords|\" +\n        \"pg_get_multixact_members|pg_get_ruledef|pg_get_serial_sequence|pg_get_triggerdef|\" +\n        \"pg_get_userbyid|pg_get_viewdef|pg_has_role|pg_identify_object|pg_indexes_size|\" +\n        \"pg_is_in_backup|pg_is_in_recovery|pg_is_other_temp_schema|pg_is_xlog_replay_paused|\" +\n        \"pg_last_xact_replay_timestamp|pg_last_xlog_receive_location|\" +\n        \"pg_last_xlog_replay_location|pg_listening_channels|pg_lock_status|pg_ls_dir|\" +\n        \"pg_my_temp_schema|pg_node_tree_in|pg_node_tree_out|pg_node_tree_recv|\" +\n        \"pg_node_tree_send|pg_notify|pg_opclass_is_visible|pg_operator_is_visible|\" +\n        \"pg_opfamily_is_visible|pg_options_to_table|pg_postmaster_start_time|\" +\n        \"pg_prepared_statement|pg_prepared_xact|pg_read_binary_file|pg_read_file|\" +\n        \"pg_relation_filenode|pg_relation_filepath|pg_relation_is_updatable|pg_relation_size|\" +\n        \"pg_reload_conf|pg_rotate_logfile|pg_sequence_parameters|pg_show_all_settings|\" +\n        \"pg_size_pretty|pg_sleep|pg_start_backup|pg_stat_clear_snapshot|pg_stat_file|\" +\n        \"pg_stat_get_activity|pg_stat_get_analyze_count|pg_stat_get_autoanalyze_count|\" +\n        \"pg_stat_get_autovacuum_count|pg_stat_get_backend_activity|\" +\n        \"pg_stat_get_backend_activity_start|pg_stat_get_backend_client_addr|\" +\n        \"pg_stat_get_backend_client_port|pg_stat_get_backend_dbid|pg_stat_get_backend_idset|\" +\n        \"pg_stat_get_backend_pid|pg_stat_get_backend_start|pg_stat_get_backend_userid|\" +\n        \"pg_stat_get_backend_waiting|pg_stat_get_backend_xact_start|\" +\n        \"pg_stat_get_bgwriter_buf_written_checkpoints|\" +\n        \"pg_stat_get_bgwriter_buf_written_clean|pg_stat_get_bgwriter_maxwritten_clean|\" +\n        \"pg_stat_get_bgwriter_requested_checkpoints|pg_stat_get_bgwriter_stat_reset_time|\" +\n        \"pg_stat_get_bgwriter_timed_checkpoints|pg_stat_get_blocks_fetched|\" +\n        \"pg_stat_get_blocks_hit|pg_stat_get_buf_alloc|pg_stat_get_buf_fsync_backend|\" +\n        \"pg_stat_get_buf_written_backend|pg_stat_get_checkpoint_sync_time|\" +\n        \"pg_stat_get_checkpoint_write_time|pg_stat_get_db_blk_read_time|\" +\n        \"pg_stat_get_db_blk_write_time|pg_stat_get_db_blocks_fetched|\" +\n        \"pg_stat_get_db_blocks_hit|pg_stat_get_db_conflict_all|\" +\n        \"pg_stat_get_db_conflict_bufferpin|pg_stat_get_db_conflict_lock|\" +\n        \"pg_stat_get_db_conflict_snapshot|pg_stat_get_db_conflict_startup_deadlock|\" +\n        \"pg_stat_get_db_conflict_tablespace|pg_stat_get_db_deadlocks|\" +\n        \"pg_stat_get_db_numbackends|pg_stat_get_db_stat_reset_time|\" +\n        \"pg_stat_get_db_temp_bytes|pg_stat_get_db_temp_files|pg_stat_get_db_tuples_deleted|\" +\n        \"pg_stat_get_db_tuples_fetched|pg_stat_get_db_tuples_inserted|\" +\n        \"pg_stat_get_db_tuples_returned|pg_stat_get_db_tuples_updated|\" +\n        \"pg_stat_get_db_xact_commit|pg_stat_get_db_xact_rollback|pg_stat_get_dead_tuples|\" +\n        \"pg_stat_get_function_calls|pg_stat_get_function_self_time|\" +\n        \"pg_stat_get_function_total_time|pg_stat_get_last_analyze_time|\" +\n        \"pg_stat_get_last_autoanalyze_time|pg_stat_get_last_autovacuum_time|\" +\n        \"pg_stat_get_last_vacuum_time|pg_stat_get_live_tuples|pg_stat_get_numscans|\" +\n        \"pg_stat_get_tuples_deleted|pg_stat_get_tuples_fetched|\" +\n        \"pg_stat_get_tuples_hot_updated|pg_stat_get_tuples_inserted|\" +\n        \"pg_stat_get_tuples_returned|pg_stat_get_tuples_updated|pg_stat_get_vacuum_count|\" +\n        \"pg_stat_get_wal_senders|pg_stat_get_xact_blocks_fetched|\" +\n        \"pg_stat_get_xact_blocks_hit|pg_stat_get_xact_function_calls|\" +\n        \"pg_stat_get_xact_function_self_time|pg_stat_get_xact_function_total_time|\" +\n        \"pg_stat_get_xact_numscans|pg_stat_get_xact_tuples_deleted|\" +\n        \"pg_stat_get_xact_tuples_fetched|pg_stat_get_xact_tuples_hot_updated|\" +\n        \"pg_stat_get_xact_tuples_inserted|pg_stat_get_xact_tuples_returned|\" +\n        \"pg_stat_get_xact_tuples_updated|pg_stat_reset|pg_stat_reset_shared|\" +\n        \"pg_stat_reset_single_function_counters|pg_stat_reset_single_table_counters|\" +\n        \"pg_stop_backup|pg_switch_xlog|pg_table_is_visible|pg_table_size|\" +\n        \"pg_tablespace_databases|pg_tablespace_location|pg_tablespace_size|\" +\n        \"pg_terminate_backend|pg_timezone_abbrevs|pg_timezone_names|pg_total_relation_size|\" +\n        \"pg_trigger_depth|pg_try_advisory_lock|pg_try_advisory_lock_shared|\" +\n        \"pg_try_advisory_xact_lock|pg_try_advisory_xact_lock_shared|pg_ts_config_is_visible|\" +\n        \"pg_ts_dict_is_visible|pg_ts_parser_is_visible|pg_ts_template_is_visible|\" +\n        \"pg_type_is_visible|pg_typeof|pg_xlog_location_diff|pg_xlog_replay_pause|\" +\n        \"pg_xlog_replay_resume|pg_xlogfile_name|pg_xlogfile_name_offset|pi|plainto_tsquery|\" +\n        \"plpgsql_call_handler|plpgsql_inline_handler|plpgsql_validator|point|point_above|\" +\n        \"point_add|point_below|point_distance|point_div|point_eq|point_horiz|point_in|point_left|\" +\n        \"point_mul|point_ne|point_out|point_recv|point_right|point_send|point_sub|point_vert|\" +\n        \"poly_above|poly_below|poly_center|poly_contain|poly_contain_pt|poly_contained|\" +\n        \"poly_distance|poly_in|poly_left|poly_npoints|poly_out|poly_overabove|poly_overbelow|\" +\n        \"poly_overlap|poly_overleft|poly_overright|poly_recv|poly_right|poly_same|poly_send|\" +\n        \"polygon|popen|position|positionjoinsel|positionsel|postgresql_fdw_validator|pow|power|\" +\n        \"prsd_end|prsd_headline|prsd_lextype|prsd_nexttoken|prsd_start|pt_contained_circle|\" +\n        \"pt_contained_poly|query_to_xml|query_to_xml_and_xmlschema|query_to_xmlschema|\" +\n        \"querytree|quote_ident|quote_literal|quote_nullable|radians|radius|random|range_adjacent|\" +\n        \"range_after|range_before|range_cmp|range_contained_by|range_contains|\" +\n        \"range_contains_elem|range_eq|range_ge|range_gist_compress|range_gist_consistent|\" +\n        \"range_gist_decompress|range_gist_penalty|range_gist_picksplit|range_gist_same|\" +\n        \"range_gist_union|range_gt|range_in|range_intersect|range_le|range_lt|range_minus|\" +\n        \"range_ne|range_out|range_overlaps|range_overleft|range_overright|range_recv|range_send|\" +\n        \"range_typanalyze|range_union|rangesel|rank|record_eq|record_ge|record_gt|record_in|\" +\n        \"record_le|record_lt|record_ne|record_out|record_recv|record_send|regclass|regclassin|\" +\n        \"regclassout|regclassrecv|regclasssend|regconfigin|regconfigout|regconfigrecv|\" +\n        \"regconfigsend|regdictionaryin|regdictionaryout|regdictionaryrecv|regdictionarysend|\" +\n        \"regexeqjoinsel|regexeqsel|regexnejoinsel|regexnesel|regexp_matches|regexp_replace|\" +\n        \"regexp_split_to_array|regexp_split_to_table|regoperatorin|regoperatorout|\" +\n        \"regoperatorrecv|regoperatorsend|regoperin|regoperout|regoperrecv|regopersend|\" +\n        \"regprocedurein|regprocedureout|regprocedurerecv|regproceduresend|regprocin|regprocout|\" +\n        \"regprocrecv|regprocsend|regr_avgx|regr_avgy|regr_count|regr_intercept|regr_r2|\" +\n        \"regr_slope|regr_sxx|regr_sxy|regr_syy|regtypein|regtypeout|regtyperecv|regtypesend|\" +\n        \"reltime|reltimeeq|reltimege|reltimegt|reltimein|reltimele|reltimelt|reltimene|reltimeout|\" +\n        \"reltimerecv|reltimesend|repeat|replace|reverse|right|round|row_number|row_to_json|rpad|\" +\n        \"rtrim|scalargtjoinsel|scalargtsel|scalarltjoinsel|scalarltsel|schema_to_xml|\" +\n        \"schema_to_xml_and_xmlschema|schema_to_xmlschema|session_user|set_bit|set_byte|\" +\n        \"set_config|set_masklen|setseed|setval|setweight|shell_in|shell_out|\" +\n        \"shift_jis_2004_to_euc_jis_2004|shift_jis_2004_to_utf8|shobj_description|sign|\" +\n        \"similar_escape|sin|sjis_to_euc_jp|sjis_to_mic|sjis_to_utf8|slope|smgreq|smgrin|smgrne|\" +\n        \"smgrout|spg_kd_choose|spg_kd_config|spg_kd_inner_consistent|spg_kd_picksplit|\" +\n        \"spg_quad_choose|spg_quad_config|spg_quad_inner_consistent|spg_quad_leaf_consistent|\" +\n        \"spg_quad_picksplit|spg_range_quad_choose|spg_range_quad_config|\" +\n        \"spg_range_quad_inner_consistent|spg_range_quad_leaf_consistent|\" +\n        \"spg_range_quad_picksplit|spg_text_choose|spg_text_config|spg_text_inner_consistent|\" +\n        \"spg_text_leaf_consistent|spg_text_picksplit|spgbeginscan|spgbuild|spgbuildempty|\" +\n        \"spgbulkdelete|spgcanreturn|spgcostestimate|spgendscan|spggetbitmap|spggettuple|\" +\n        \"spginsert|spgmarkpos|spgoptions|spgrescan|spgrestrpos|spgvacuumcleanup|split_part|sqrt|\" +\n        \"statement_timestamp|stddev|stddev_pop|stddev_samp|string_agg|string_agg_finalfn|\" +\n        \"string_agg_transfn|string_to_array|strip|strpos|substr|substring|sum|\" +\n        \"suppress_redundant_updates_trigger|table_to_xml|table_to_xml_and_xmlschema|\" +\n        \"table_to_xmlschema|tan|text|text_ge|text_gt|text_larger|text_le|text_lt|text_pattern_ge|\" +\n        \"text_pattern_gt|text_pattern_le|text_pattern_lt|text_smaller|textanycat|textcat|texteq|\" +\n        \"texticlike|texticnlike|texticregexeq|texticregexne|textin|textlen|textlike|textne|\" +\n        \"textnlike|textout|textrecv|textregexeq|textregexne|textsend|thesaurus_init|\" +\n        \"thesaurus_lexize|tideq|tidge|tidgt|tidin|tidlarger|tidle|tidlt|tidne|tidout|tidrecv|tidsend|\" +\n        \"tidsmaller|time_cmp|time_eq|time_ge|time_gt|time_hash|time_in|time_larger|time_le|time_lt|\" +\n        \"time_mi_interval|time_mi_time|time_ne|time_out|time_pl_interval|time_recv|time_send|\" +\n        \"time_smaller|time_transform|timedate_pl|timemi|timenow|timeofday|timepl|timestamp_cmp|\" +\n        \"timestamp_cmp_date|timestamp_cmp_timestamptz|timestamp_eq|timestamp_eq_date|\" +\n        \"timestamp_eq_timestamptz|timestamp_ge|timestamp_ge_date|timestamp_ge_timestamptz|\" +\n        \"timestamp_gt|timestamp_gt_date|timestamp_gt_timestamptz|timestamp_hash|timestamp_in|\" +\n        \"timestamp_larger|timestamp_le|timestamp_le_date|timestamp_le_timestamptz|\" +\n        \"timestamp_lt|timestamp_lt_date|timestamp_lt_timestamptz|timestamp_mi|\" +\n        \"timestamp_mi_interval|timestamp_ne|timestamp_ne_date|timestamp_ne_timestamptz|\" +\n        \"timestamp_out|timestamp_pl_interval|timestamp_recv|timestamp_send|timestamp_smaller|\" +\n        \"timestamp_sortsupport|timestamp_transform|timestamptypmodin|timestamptypmodout|\" +\n        \"timestamptz_cmp|timestamptz_cmp_date|timestamptz_cmp_timestamp|timestamptz_eq|\" +\n        \"timestamptz_eq_date|timestamptz_eq_timestamp|timestamptz_ge|timestamptz_ge_date|\" +\n        \"timestamptz_ge_timestamp|timestamptz_gt|timestamptz_gt_date|\" +\n        \"timestamptz_gt_timestamp|timestamptz_in|timestamptz_larger|timestamptz_le|\" +\n        \"timestamptz_le_date|timestamptz_le_timestamp|timestamptz_lt|timestamptz_lt_date|\" +\n        \"timestamptz_lt_timestamp|timestamptz_mi|timestamptz_mi_interval|timestamptz_ne|\" +\n        \"timestamptz_ne_date|timestamptz_ne_timestamp|timestamptz_out|\" +\n        \"timestamptz_pl_interval|timestamptz_recv|timestamptz_send|timestamptz_smaller|\" +\n        \"timestamptztypmodin|timestamptztypmodout|timetypmodin|timetypmodout|timetz_cmp|\" +\n        \"timetz_eq|timetz_ge|timetz_gt|timetz_hash|timetz_in|timetz_larger|timetz_le|timetz_lt|\" +\n        \"timetz_mi_interval|timetz_ne|timetz_out|timetz_pl_interval|timetz_recv|timetz_send|\" +\n        \"timetz_smaller|timetzdate_pl|timetztypmodin|timetztypmodout|timezone|tinterval|\" +\n        \"tintervalct|tintervalend|tintervaleq|tintervalge|tintervalgt|tintervalin|tintervalle|\" +\n        \"tintervalleneq|tintervallenge|tintervallengt|tintervallenle|tintervallenlt|\" +\n        \"tintervallenne|tintervallt|tintervalne|tintervalout|tintervalov|tintervalrecv|\" +\n        \"tintervalrel|tintervalsame|tintervalsend|tintervalstart|to_ascii|to_char|to_date|to_hex|\" +\n        \"to_json|to_number|to_timestamp|to_tsquery|to_tsvector|transaction_timestamp|translate|\" +\n        \"trigger_in|trigger_out|trunc|ts_debug|ts_headline|ts_lexize|ts_match_qv|ts_match_tq|\" +\n        \"ts_match_tt|ts_match_vq|ts_parse|ts_rank|ts_rank_cd|ts_rewrite|ts_stat|ts_token_type|\" +\n        \"ts_typanalyze|tsmatchjoinsel|tsmatchsel|tsq_mcontained|tsq_mcontains|tsquery_and|\" +\n        \"tsquery_cmp|tsquery_eq|tsquery_ge|tsquery_gt|tsquery_le|tsquery_lt|tsquery_ne|\" +\n        \"tsquery_not|tsquery_or|tsqueryin|tsqueryout|tsqueryrecv|tsquerysend|tsrange|\" +\n        \"tsrange_subdiff|tstzrange|tstzrange_subdiff|tsvector_cmp|tsvector_concat|tsvector_eq|\" +\n        \"tsvector_ge|tsvector_gt|tsvector_le|tsvector_lt|tsvector_ne|tsvector_update_trigger|\" +\n        \"tsvector_update_trigger_column|tsvectorin|tsvectorout|tsvectorrecv|tsvectorsend|\" +\n        \"txid_current|txid_current_snapshot|txid_snapshot_in|txid_snapshot_out|\" +\n        \"txid_snapshot_recv|txid_snapshot_send|txid_snapshot_xip|txid_snapshot_xmax|\" +\n        \"txid_snapshot_xmin|txid_visible_in_snapshot|uhc_to_utf8|unique_key_recheck|unknownin|\" +\n        \"unknownout|unknownrecv|unknownsend|unnest|upper|upper_inc|upper_inf|utf8_to_ascii|\" +\n        \"utf8_to_big5|utf8_to_euc_cn|utf8_to_euc_jis_2004|utf8_to_euc_jp|utf8_to_euc_kr|\" +\n        \"utf8_to_euc_tw|utf8_to_gb18030|utf8_to_gbk|utf8_to_iso8859|utf8_to_iso8859_1|\" +\n        \"utf8_to_johab|utf8_to_koi8r|utf8_to_koi8u|utf8_to_shift_jis_2004|utf8_to_sjis|\" +\n        \"utf8_to_uhc|utf8_to_win|uuid_cmp|uuid_eq|uuid_ge|uuid_gt|uuid_hash|uuid_in|uuid_le|\" +\n        \"uuid_lt|uuid_ne|uuid_out|uuid_recv|uuid_send|var_pop|var_samp|varbit_in|varbit_out|\" +\n        \"varbit_recv|varbit_send|varbit_transform|varbitcmp|varbiteq|varbitge|varbitgt|varbitle|\" +\n        \"varbitlt|varbitne|varbittypmodin|varbittypmodout|varchar_transform|varcharin|\" +\n        \"varcharout|varcharrecv|varcharsend|varchartypmodin|varchartypmodout|variance|version|\" +\n        \"void_in|void_out|void_recv|void_send|width|width_bucket|win1250_to_latin2|\" +\n        \"win1250_to_mic|win1251_to_iso|win1251_to_koi8r|win1251_to_mic|win1251_to_win866|\" +\n        \"win866_to_iso|win866_to_koi8r|win866_to_mic|win866_to_win1251|win_to_utf8|xideq|\" +\n        \"xideqint4|xidin|xidout|xidrecv|xidsend|xml|xml_in|xml_is_well_formed|\" +\n        \"xml_is_well_formed_content|xml_is_well_formed_document|xml_out|xml_recv|xml_send|\" +\n        \"xmlagg|xmlcomment|xmlconcat2|xmlexists|xmlvalidate|xpath|xpath_exists\"\n    );\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": builtinFunctions,\n        \"keyword\": keywords\n    }, \"identifier\", true);\n\n\n    var sqlRules = [{\n            token : \"string\", // single line string -- assume dollar strings if multi-line for now\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : \"variable.language\", // pg identifier\n            regex : '\".*?\"'\n        }, {\n            token : \"constant.numeric\", // float\n            regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n        }, {\n            token : keywordMapper,\n            regex : \"[a-zA-Z_][a-zA-Z0-9_$]*\\\\b\" // TODO - Unicode in identifiers\n        }, {\n            token : \"keyword.operator\",\n            regex : \"!|!!|!~|!~\\\\*|!~~|!~~\\\\*|#|##|#<|#<=|#<>|#=|#>|#>=|%|\\\\&|\\\\&\\\\&|\\\\&<|\\\\&<\\\\||\\\\&>|\\\\*|\\\\+|\" +\n                    \"\\\\-|/|<|<#>|<\\\\->|<<|<<=|<<\\\\||<=|<>|<\\\\?>|<@|<\\\\^|=|>|>=|>>|>>=|>\\\\^|\\\\?#|\\\\?\\\\-|\\\\?\\\\-\\\\||\" +\n                    \"\\\\?\\\\||\\\\?\\\\|\\\\||@|@\\\\-@|@>|@@|@@@|\\\\^|\\\\||\\\\|\\\\&>|\\\\|/|\\\\|>>|\\\\|\\\\||\\\\|\\\\|/|~|~\\\\*|~<=~|~<~|\" +\n                    \"~=|~>=~|~>~|~~|~~\\\\*\"\n        }, {\n            token : \"paren.lparen\",\n            regex : \"[\\\\(]\"\n        }, {\n            token : \"paren.rparen\",\n            regex : \"[\\\\)]\"\n        }, {\n            token : \"text\",\n            regex : \"\\\\s+\"\n        }\n    ];\n\n\n    this.$rules = {\n        \"start\" : [{\n                token : \"comment\",\n                regex : \"--.*$\"\n            },\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            {\n                token : \"comment\", // multi-line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            },{\n                token : \"keyword.statementBegin\",\n                regex : \"^[a-zA-Z]+\", // Could enumerate starting keywords but this allows things to work when new statements are added.\n                next : \"statement\"\n            },{\n                token : \"support.buildin\", // psql directive\n                regex : \"^\\\\\\\\[\\\\S]+.*$\"\n            }\n        ],\n\n        \"statement\" : [{\n                token : \"comment\",\n                regex : \"--.*$\"\n            }, {\n                token : \"comment\", // multi-line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"commentStatement\"\n            }, {\n                token : \"statementEnd\",\n                regex : \";\",\n                next : \"start\"\n            }, {\n                token : \"string\",\n                regex : \"\\\\$perl\\\\$\",\n                next : \"perl-start\"\n            }, {\n                token : \"string\",\n                regex : \"\\\\$python\\\\$\",\n                next : \"python-start\"\n            }, {\n                token : \"string\",\n                regex : \"\\\\$json\\\\$\",\n                next : \"json-start\"\n            }, {\n                token : \"string\",\n                regex : \"\\\\$(js|javascript)\\\\$\",\n                next : \"javascript-start\"\n            }, {\n                token : \"string\",\n                regex : \"\\\\$[\\\\w_0-9]*\\\\$$\", // dollar quote at the end of a line\n                next : \"dollarSql\"\n            }, {\n                token : \"string\",\n                regex : \"\\\\$[\\\\w_0-9]*\\\\$\",\n                next : \"dollarStatementString\"\n            }\n        ].concat(sqlRules),\n\n        \"dollarSql\" : [{\n                token : \"comment\",\n                regex : \"--.*$\"\n            }, {\n                token : \"comment\", // multi-line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"commentDollarSql\"\n            }, {\n                token : \"string\", // end quoting with dollar at the start of a line\n                regex : \"^\\\\$[\\\\w_0-9]*\\\\$\",\n                next : \"statement\"\n            }, {\n                token : \"string\",\n                regex : \"\\\\$[\\\\w_0-9]*\\\\$\",\n                next : \"dollarSqlString\"\n            }\n        ].concat(sqlRules),\n\n        \"comment\" : [{\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ],\n\n        \"commentStatement\" : [{\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"statement\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ],\n\n        \"commentDollarSql\" : [{\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"dollarSql\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ],\n\n        \"dollarStatementString\" : [{\n                token : \"string\", // closing dollarstring\n                regex : \".*?\\\\$[\\\\w_0-9]*\\\\$\",\n                next : \"statement\"\n            }, {\n                token : \"string\", // dollarstring spanning whole line\n                regex : \".+\"\n            }\n        ],\n\n        \"dollarSqlString\" : [{\n                token : \"string\", // closing dollarstring\n                regex : \".*?\\\\$[\\\\w_0-9]*\\\\$\",\n                next : \"dollarSql\"\n            }, {\n                token : \"string\", // dollarstring spanning whole line\n                regex : \".+\"\n            }\n        ]\n    };\n\n    this.embedRules(DocCommentHighlightRules, \"doc-\", [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n    this.embedRules(PerlHighlightRules, \"perl-\", [{token : \"string\", regex : \"\\\\$perl\\\\$\", next : \"statement\"}]);\n    this.embedRules(PythonHighlightRules, \"python-\", [{token : \"string\", regex : \"\\\\$python\\\\$\", next : \"statement\"}]);\n    this.embedRules(JsonHighlightRules, \"json-\", [{token : \"string\", regex : \"\\\\$json\\\\$\", next : \"statement\"}]);\n    this.embedRules(JavaScriptHighlightRules, \"javascript-\", [{token : \"string\", regex : \"\\\\$(js|javascript)\\\\$\", next : \"statement\"}]);\n};\n\noop.inherits(PgsqlHighlightRules, TextHighlightRules);\n\nexports.PgsqlHighlightRules = PgsqlHighlightRules;\n});\n\nace.define(\"ace/mode/pgsql\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/pgsql_highlight_rules\"], function(require, exports, module) {\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"../mode/text\").Mode;\nvar PgsqlHighlightRules = require(\"./pgsql_highlight_rules\").PgsqlHighlightRules;\n\nvar Mode = function() {\n    this.HighlightRules = PgsqlHighlightRules;\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"--\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) { \n        if (state == \"start\" || state == \"keyword.statementEnd\") {\n            return \"\";\n        } else {\n            return this.$getIndent(line); // Keep whatever indent the previous line has\n        }\n    };\n\n    this.$id = \"ace/mode/pgsql\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-php.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n    a           : 'anchor',\n    button \t    : 'form',\n    form        : 'form',\n    img         : 'image',\n    input       : 'form',\n    label       : 'form',\n    option      : 'form',\n    script      : 'script',\n    select      : 'form',\n    textarea    : 'form',\n    style       : 'style',\n    table       : 'table',\n    tbody       : 'table',\n    td          : 'table',\n    tfoot       : 'table',\n    th          : 'table',\n    tr          : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.addRules({\n        attributes: [{\n            include : \"tag_whitespace\"\n        }, {\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"[-_a-zA-Z0-9:.]+\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\",\n            push : [{\n                include: \"tag_whitespace\"\n            }, {\n                token : \"string.unquoted.attribute-value.html\",\n                regex : \"[^<>='\\\"`\\\\s]+\",\n                next : \"pop\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"pop\"\n            }]\n        }, {\n            include : \"attribute_value\"\n        }],\n        tag: [{\n            token : function(start, tag) {\n                var group = tagMap[tag];\n                return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                    \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n            },\n            regex : \"(</?)([-_a-zA-Z0-9:.]+)\",\n            next: \"tag_stuff\"\n        }],\n        tag_stuff: [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n        ]\n    });\n\n    this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"js-\", \"script\");\n\n    if (this.constructor === HtmlHighlightRules)\n        this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/php_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\",\"ace/mode/html_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\n\nvar PhpLangHighlightRules = function() {\n    var docComment = DocCommentHighlightRules;\n    var builtinFunctions = lang.arrayToMap(\n        ('abs|acos|acosh|addcslashes|addslashes|aggregate|aggregate_info|aggregate_methods|aggregate_methods_by_list|aggregate_methods_by_regexp|' +\n        'aggregate_properties|aggregate_properties_by_list|aggregate_properties_by_regexp|aggregation_info|amqpconnection|amqpexchange|amqpqueue|' +\n        'apache_child_terminate|apache_get_modules|apache_get_version|apache_getenv|apache_lookup_uri|apache_note|apache_request_headers|' +\n        'apache_reset_timeout|apache_response_headers|apache_setenv|apc_add|apc_bin_dump|apc_bin_dumpfile|apc_bin_load|apc_bin_loadfile|' +\n        'apc_cache_info|apc_cas|apc_clear_cache|apc_compile_file|apc_dec|apc_define_constants|apc_delete|apc_delete_file|apc_exists|apc_fetch|' +\n        'apc_inc|apc_load_constants|apc_sma_info|apc_store|apciterator|apd_breakpoint|apd_callstack|apd_clunk|apd_continue|apd_croak|' +\n        'apd_dump_function_table|apd_dump_persistent_resources|apd_dump_regular_resources|apd_echo|apd_get_active_symbols|apd_set_pprof_trace|' +\n        'apd_set_session|apd_set_session_trace|apd_set_session_trace_socket|appenditerator|array|array_change_key_case|array_chunk|array_combine|' +\n        'array_count_values|array_diff|array_diff_assoc|array_diff_key|array_diff_uassoc|array_diff_ukey|array_fill|array_fill_keys|array_filter|' +\n        'array_flip|array_intersect|array_intersect_assoc|array_intersect_key|array_intersect_uassoc|array_intersect_ukey|array_key_exists|' +\n        'array_keys|array_map|array_merge|array_merge_recursive|array_multisort|array_pad|array_pop|array_product|array_push|array_rand|' +\n        'array_reduce|array_replace|array_replace_recursive|array_reverse|array_search|array_shift|array_slice|array_splice|array_sum|array_udiff|' +\n        'array_udiff_assoc|array_udiff_uassoc|array_uintersect|array_uintersect_assoc|array_uintersect_uassoc|array_unique|array_unshift|' +\n        'array_values|array_walk|array_walk_recursive|arrayaccess|arrayiterator|arrayobject|arsort|asin|asinh|asort|assert|assert_options|atan|' +\n        'atan2|atanh|audioproperties|badfunctioncallexception|badmethodcallexception|base64_decode|base64_encode|base_convert|basename|' +\n        'bbcode_add_element|bbcode_add_smiley|bbcode_create|bbcode_destroy|bbcode_parse|bbcode_set_arg_parser|bbcode_set_flags|bcadd|bccomp|bcdiv|' +\n        'bcmod|bcmul|bcompiler_load|bcompiler_load_exe|bcompiler_parse_class|bcompiler_read|bcompiler_write_class|bcompiler_write_constant|' +\n        'bcompiler_write_exe_footer|bcompiler_write_file|bcompiler_write_footer|bcompiler_write_function|bcompiler_write_functions_from_file|' +\n        'bcompiler_write_header|bcompiler_write_included_filename|bcpow|bcpowmod|bcscale|bcsqrt|bcsub|bin2hex|bind_textdomain_codeset|bindec|' +\n        'bindtextdomain|bson_decode|bson_encode|bumpValue|bzclose|bzcompress|bzdecompress|bzerrno|bzerror|bzerrstr|bzflush|bzopen|bzread|bzwrite|' +\n        'cachingiterator|cairo|cairo_create|cairo_font_face_get_type|cairo_font_face_status|cairo_font_options_create|cairo_font_options_equal|' +\n        'cairo_font_options_get_antialias|cairo_font_options_get_hint_metrics|cairo_font_options_get_hint_style|' +\n        'cairo_font_options_get_subpixel_order|cairo_font_options_hash|cairo_font_options_merge|cairo_font_options_set_antialias|' +\n        'cairo_font_options_set_hint_metrics|cairo_font_options_set_hint_style|cairo_font_options_set_subpixel_order|cairo_font_options_status|' +\n        'cairo_format_stride_for_width|cairo_image_surface_create|cairo_image_surface_create_for_data|cairo_image_surface_create_from_png|' +\n        'cairo_image_surface_get_data|cairo_image_surface_get_format|cairo_image_surface_get_height|cairo_image_surface_get_stride|' +\n        'cairo_image_surface_get_width|cairo_matrix_create_scale|cairo_matrix_create_translate|cairo_matrix_invert|cairo_matrix_multiply|' +\n        'cairo_matrix_rotate|cairo_matrix_transform_distance|cairo_matrix_transform_point|cairo_matrix_translate|cairo_pattern_add_color_stop_rgb|' +\n        'cairo_pattern_add_color_stop_rgba|cairo_pattern_create_for_surface|cairo_pattern_create_linear|cairo_pattern_create_radial|' +\n        'cairo_pattern_create_rgb|cairo_pattern_create_rgba|cairo_pattern_get_color_stop_count|cairo_pattern_get_color_stop_rgba|' +\n        'cairo_pattern_get_extend|cairo_pattern_get_filter|cairo_pattern_get_linear_points|cairo_pattern_get_matrix|' +\n        'cairo_pattern_get_radial_circles|cairo_pattern_get_rgba|cairo_pattern_get_surface|cairo_pattern_get_type|cairo_pattern_set_extend|' +\n        'cairo_pattern_set_filter|cairo_pattern_set_matrix|cairo_pattern_status|cairo_pdf_surface_create|cairo_pdf_surface_set_size|' +\n        'cairo_ps_get_levels|cairo_ps_level_to_string|cairo_ps_surface_create|cairo_ps_surface_dsc_begin_page_setup|' +\n        'cairo_ps_surface_dsc_begin_setup|cairo_ps_surface_dsc_comment|cairo_ps_surface_get_eps|cairo_ps_surface_restrict_to_level|' +\n        'cairo_ps_surface_set_eps|cairo_ps_surface_set_size|cairo_scaled_font_create|cairo_scaled_font_extents|cairo_scaled_font_get_ctm|' +\n        'cairo_scaled_font_get_font_face|cairo_scaled_font_get_font_matrix|cairo_scaled_font_get_font_options|cairo_scaled_font_get_scale_matrix|' +\n        'cairo_scaled_font_get_type|cairo_scaled_font_glyph_extents|cairo_scaled_font_status|cairo_scaled_font_text_extents|' +\n        'cairo_surface_copy_page|cairo_surface_create_similar|cairo_surface_finish|cairo_surface_flush|cairo_surface_get_content|' +\n        'cairo_surface_get_device_offset|cairo_surface_get_font_options|cairo_surface_get_type|cairo_surface_mark_dirty|' +\n        'cairo_surface_mark_dirty_rectangle|cairo_surface_set_device_offset|cairo_surface_set_fallback_resolution|cairo_surface_show_page|' +\n        'cairo_surface_status|cairo_surface_write_to_png|cairo_svg_surface_create|cairo_svg_surface_restrict_to_version|' +\n        'cairo_svg_version_to_string|cairoantialias|cairocontent|cairocontext|cairoexception|cairoextend|cairofillrule|cairofilter|cairofontface|' +\n        'cairofontoptions|cairofontslant|cairofonttype|cairofontweight|cairoformat|cairogradientpattern|cairohintmetrics|cairohintstyle|' +\n        'cairoimagesurface|cairolineargradient|cairolinecap|cairolinejoin|cairomatrix|cairooperator|cairopath|cairopattern|cairopatterntype|' +\n        'cairopdfsurface|cairopslevel|cairopssurface|cairoradialgradient|cairoscaledfont|cairosolidpattern|cairostatus|cairosubpixelorder|' +\n        'cairosurface|cairosurfacepattern|cairosurfacetype|cairosvgsurface|cairosvgversion|cairotoyfontface|cal_days_in_month|cal_from_jd|cal_info|' +\n        'cal_to_jd|calcul_hmac|calculhmac|call_user_func|call_user_func_array|call_user_method|call_user_method_array|callbackfilteriterator|ceil|' +\n        'chdb|chdb_create|chdir|checkdate|checkdnsrr|chgrp|chmod|chop|chown|chr|chroot|chunk_split|class_alias|class_exists|class_implements|' +\n        'class_parents|class_uses|classkit_import|classkit_method_add|classkit_method_copy|classkit_method_redefine|classkit_method_remove|' +\n        'classkit_method_rename|clearstatcache|clone|closedir|closelog|collator|com|com_addref|com_create_guid|com_event_sink|com_get|' +\n        'com_get_active_object|com_invoke|com_isenum|com_load|com_load_typelib|com_message_pump|com_print_typeinfo|com_propget|com_propput|' +\n        'com_propset|com_release|com_set|compact|connection_aborted|connection_status|connection_timeout|constant|construct|construct|construct|' +\n        'convert_cyr_string|convert_uudecode|convert_uuencode|copy|cos|cosh|count|count_chars|countable|counter_bump|counter_bump_value|' +\n        'counter_create|counter_get|counter_get_meta|counter_get_named|counter_get_value|counter_reset|counter_reset_value|crack_check|' +\n        'crack_closedict|crack_getlastmessage|crack_opendict|crc32|create_function|crypt|ctype_alnum|ctype_alpha|ctype_cntrl|ctype_digit|' +\n        'ctype_graph|ctype_lower|ctype_print|ctype_punct|ctype_space|ctype_upper|ctype_xdigit|cubrid_affected_rows|cubrid_bind|' +\n        'cubrid_client_encoding|cubrid_close|cubrid_close_prepare|cubrid_close_request|cubrid_col_get|cubrid_col_size|cubrid_column_names|' +\n        'cubrid_column_types|cubrid_commit|cubrid_connect|cubrid_connect_with_url|cubrid_current_oid|cubrid_data_seek|cubrid_db_name|' +\n        'cubrid_disconnect|cubrid_drop|cubrid_errno|cubrid_error|cubrid_error_code|cubrid_error_code_facility|cubrid_error_msg|cubrid_execute|' +\n        'cubrid_fetch|cubrid_fetch_array|cubrid_fetch_assoc|cubrid_fetch_field|cubrid_fetch_lengths|cubrid_fetch_object|cubrid_fetch_row|' +\n        'cubrid_field_flags|cubrid_field_len|cubrid_field_name|cubrid_field_seek|cubrid_field_table|cubrid_field_type|cubrid_free_result|' +\n        'cubrid_get|cubrid_get_autocommit|cubrid_get_charset|cubrid_get_class_name|cubrid_get_client_info|cubrid_get_db_parameter|' +\n        'cubrid_get_server_info|cubrid_insert_id|cubrid_is_instance|cubrid_list_dbs|cubrid_load_from_glo|cubrid_lob_close|cubrid_lob_export|' +\n        'cubrid_lob_get|cubrid_lob_send|cubrid_lob_size|cubrid_lock_read|cubrid_lock_write|cubrid_move_cursor|cubrid_new_glo|cubrid_next_result|' +\n        'cubrid_num_cols|cubrid_num_fields|cubrid_num_rows|cubrid_ping|cubrid_prepare|cubrid_put|cubrid_query|cubrid_real_escape_string|' +\n        'cubrid_result|cubrid_rollback|cubrid_save_to_glo|cubrid_schema|cubrid_send_glo|cubrid_seq_drop|cubrid_seq_insert|cubrid_seq_put|' +\n        'cubrid_set_add|cubrid_set_autocommit|cubrid_set_db_parameter|cubrid_set_drop|cubrid_unbuffered_query|cubrid_version|curl_close|' +\n        'curl_copy_handle|curl_errno|curl_error|curl_exec|curl_getinfo|curl_init|curl_multi_add_handle|curl_multi_close|curl_multi_exec|' +\n        'curl_multi_getcontent|curl_multi_info_read|curl_multi_init|curl_multi_remove_handle|curl_multi_select|curl_setopt|curl_setopt_array|' +\n        'curl_version|current|cyrus_authenticate|cyrus_bind|cyrus_close|cyrus_connect|cyrus_query|cyrus_unbind|date|date_add|date_create|' +\n        'date_create_from_format|date_date_set|date_default_timezone_get|date_default_timezone_set|date_diff|date_format|date_get_last_errors|' +\n        'date_interval_create_from_date_string|date_interval_format|date_isodate_set|date_modify|date_offset_get|date_parse|date_parse_from_format|' +\n        'date_sub|date_sun_info|date_sunrise|date_sunset|date_time_set|date_timestamp_get|date_timestamp_set|date_timezone_get|date_timezone_set|' +\n        'dateinterval|dateperiod|datetime|datetimezone|db2_autocommit|db2_bind_param|db2_client_info|db2_close|db2_column_privileges|db2_columns|' +\n        'db2_commit|db2_conn_error|db2_conn_errormsg|db2_connect|db2_cursor_type|db2_escape_string|db2_exec|db2_execute|db2_fetch_array|' +\n        'db2_fetch_assoc|db2_fetch_both|db2_fetch_object|db2_fetch_row|db2_field_display_size|db2_field_name|db2_field_num|db2_field_precision|' +\n        'db2_field_scale|db2_field_type|db2_field_width|db2_foreign_keys|db2_free_result|db2_free_stmt|db2_get_option|db2_last_insert_id|' +\n        'db2_lob_read|db2_next_result|db2_num_fields|db2_num_rows|db2_pclose|db2_pconnect|db2_prepare|db2_primary_keys|db2_procedure_columns|' +\n        'db2_procedures|db2_result|db2_rollback|db2_server_info|db2_set_option|db2_special_columns|db2_statistics|db2_stmt_error|db2_stmt_errormsg|' +\n        'db2_table_privileges|db2_tables|dba_close|dba_delete|dba_exists|dba_fetch|dba_firstkey|dba_handlers|dba_insert|dba_key_split|dba_list|' +\n        'dba_nextkey|dba_open|dba_optimize|dba_popen|dba_replace|dba_sync|dbase_add_record|dbase_close|dbase_create|dbase_delete_record|' +\n        'dbase_get_header_info|dbase_get_record|dbase_get_record_with_names|dbase_numfields|dbase_numrecords|dbase_open|dbase_pack|' +\n        'dbase_replace_record|dbplus_add|dbplus_aql|dbplus_chdir|dbplus_close|dbplus_curr|dbplus_errcode|dbplus_errno|dbplus_find|dbplus_first|' +\n        'dbplus_flush|dbplus_freealllocks|dbplus_freelock|dbplus_freerlocks|dbplus_getlock|dbplus_getunique|dbplus_info|dbplus_last|dbplus_lockrel|' +\n        'dbplus_next|dbplus_open|dbplus_prev|dbplus_rchperm|dbplus_rcreate|dbplus_rcrtexact|dbplus_rcrtlike|dbplus_resolve|dbplus_restorepos|' +\n        'dbplus_rkeys|dbplus_ropen|dbplus_rquery|dbplus_rrename|dbplus_rsecindex|dbplus_runlink|dbplus_rzap|dbplus_savepos|dbplus_setindex|' +\n        'dbplus_setindexbynumber|dbplus_sql|dbplus_tcl|dbplus_tremove|dbplus_undo|dbplus_undoprepare|dbplus_unlockrel|dbplus_unselect|' +\n        'dbplus_update|dbplus_xlockrel|dbplus_xunlockrel|dbx_close|dbx_compare|dbx_connect|dbx_error|dbx_escape_string|dbx_fetch_row|dbx_query|' +\n        'dbx_sort|dcgettext|dcngettext|deaggregate|debug_backtrace|debug_print_backtrace|debug_zval_dump|decbin|dechex|decoct|define|' +\n        'define_syslog_variables|defined|deg2rad|delete|dgettext|die|dio_close|dio_fcntl|dio_open|dio_read|dio_seek|dio_stat|dio_tcsetattr|' +\n        'dio_truncate|dio_write|dir|directoryiterator|dirname|disk_free_space|disk_total_space|diskfreespace|dl|dngettext|dns_check_record|' +\n        'dns_get_mx|dns_get_record|dom_import_simplexml|domainexception|domattr|domattribute_name|domattribute_set_value|domattribute_specified|' +\n        'domattribute_value|domcharacterdata|domcomment|domdocument|domdocument_add_root|domdocument_create_attribute|' +\n        'domdocument_create_cdata_section|domdocument_create_comment|domdocument_create_element|domdocument_create_element_ns|' +\n        'domdocument_create_entity_reference|domdocument_create_processing_instruction|domdocument_create_text_node|domdocument_doctype|' +\n        'domdocument_document_element|domdocument_dump_file|domdocument_dump_mem|domdocument_get_element_by_id|domdocument_get_elements_by_tagname|' +\n        'domdocument_html_dump_mem|domdocument_xinclude|domdocumentfragment|domdocumenttype|domdocumenttype_entities|' +\n        'domdocumenttype_internal_subset|domdocumenttype_name|domdocumenttype_notations|domdocumenttype_public_id|domdocumenttype_system_id|' +\n        'domelement|domelement_get_attribute|domelement_get_attribute_node|domelement_get_elements_by_tagname|domelement_has_attribute|' +\n        'domelement_remove_attribute|domelement_set_attribute|domelement_set_attribute_node|domelement_tagname|domentity|domentityreference|' +\n        'domexception|domimplementation|domnamednodemap|domnode|domnode_add_namespace|domnode_append_child|domnode_append_sibling|' +\n        'domnode_attributes|domnode_child_nodes|domnode_clone_node|domnode_dump_node|domnode_first_child|domnode_get_content|' +\n        'domnode_has_attributes|domnode_has_child_nodes|domnode_insert_before|domnode_is_blank_node|domnode_last_child|domnode_next_sibling|' +\n        'domnode_node_name|domnode_node_type|domnode_node_value|domnode_owner_document|domnode_parent_node|domnode_prefix|domnode_previous_sibling|' +\n        'domnode_remove_child|domnode_replace_child|domnode_replace_node|domnode_set_content|domnode_set_name|domnode_set_namespace|' +\n        'domnode_unlink_node|domnodelist|domnotation|domprocessinginstruction|domprocessinginstruction_data|domprocessinginstruction_target|' +\n        'domtext|domxml_new_doc|domxml_open_file|domxml_open_mem|domxml_version|domxml_xmltree|domxml_xslt_stylesheet|domxml_xslt_stylesheet_doc|' +\n        'domxml_xslt_stylesheet_file|domxml_xslt_version|domxpath|domxsltstylesheet_process|domxsltstylesheet_result_dump_file|' +\n        'domxsltstylesheet_result_dump_mem|dotnet|dotnet_load|doubleval|each|easter_date|easter_days|echo|empty|emptyiterator|' +\n        'enchant_broker_describe|enchant_broker_dict_exists|enchant_broker_free|enchant_broker_free_dict|enchant_broker_get_error|' +\n        'enchant_broker_init|enchant_broker_list_dicts|enchant_broker_request_dict|enchant_broker_request_pwl_dict|enchant_broker_set_ordering|' +\n        'enchant_dict_add_to_personal|enchant_dict_add_to_session|enchant_dict_check|enchant_dict_describe|enchant_dict_get_error|' +\n        'enchant_dict_is_in_session|enchant_dict_quick_check|enchant_dict_store_replacement|enchant_dict_suggest|end|ereg|ereg_replace|eregi|' +\n        'eregi_replace|error_get_last|error_log|error_reporting|errorexception|escapeshellarg|escapeshellcmd|eval|event_add|event_base_free|' +\n        'event_base_loop|event_base_loopbreak|event_base_loopexit|event_base_new|event_base_priority_init|event_base_set|event_buffer_base_set|' +\n        'event_buffer_disable|event_buffer_enable|event_buffer_fd_set|event_buffer_free|event_buffer_new|event_buffer_priority_set|' +\n        'event_buffer_read|event_buffer_set_callback|event_buffer_timeout_set|event_buffer_watermark_set|event_buffer_write|event_del|event_free|' +\n        'event_new|event_set|exception|exec|exif_imagetype|exif_read_data|exif_tagname|exif_thumbnail|exit|exp|expect_expectl|expect_popen|explode|' +\n        'expm1|export|export|extension_loaded|extract|ezmlm_hash|fam_cancel_monitor|fam_close|fam_monitor_collection|fam_monitor_directory|' +\n        'fam_monitor_file|fam_next_event|fam_open|fam_pending|fam_resume_monitor|fam_suspend_monitor|fbsql_affected_rows|fbsql_autocommit|' +\n        'fbsql_blob_size|fbsql_change_user|fbsql_clob_size|fbsql_close|fbsql_commit|fbsql_connect|fbsql_create_blob|fbsql_create_clob|' +\n        'fbsql_create_db|fbsql_data_seek|fbsql_database|fbsql_database_password|fbsql_db_query|fbsql_db_status|fbsql_drop_db|fbsql_errno|' +\n        'fbsql_error|fbsql_fetch_array|fbsql_fetch_assoc|fbsql_fetch_field|fbsql_fetch_lengths|fbsql_fetch_object|fbsql_fetch_row|' +\n        'fbsql_field_flags|fbsql_field_len|fbsql_field_name|fbsql_field_seek|fbsql_field_table|fbsql_field_type|fbsql_free_result|' +\n        'fbsql_get_autostart_info|fbsql_hostname|fbsql_insert_id|fbsql_list_dbs|fbsql_list_fields|fbsql_list_tables|fbsql_next_result|' +\n        'fbsql_num_fields|fbsql_num_rows|fbsql_password|fbsql_pconnect|fbsql_query|fbsql_read_blob|fbsql_read_clob|fbsql_result|fbsql_rollback|' +\n        'fbsql_rows_fetched|fbsql_select_db|fbsql_set_characterset|fbsql_set_lob_mode|fbsql_set_password|fbsql_set_transaction|fbsql_start_db|' +\n        'fbsql_stop_db|fbsql_table_name|fbsql_tablename|fbsql_username|fbsql_warnings|fclose|fdf_add_doc_javascript|fdf_add_template|fdf_close|' +\n        'fdf_create|fdf_enum_values|fdf_errno|fdf_error|fdf_get_ap|fdf_get_attachment|fdf_get_encoding|fdf_get_file|fdf_get_flags|fdf_get_opt|' +\n        'fdf_get_status|fdf_get_value|fdf_get_version|fdf_header|fdf_next_field_name|fdf_open|fdf_open_string|fdf_remove_item|fdf_save|' +\n        'fdf_save_string|fdf_set_ap|fdf_set_encoding|fdf_set_file|fdf_set_flags|fdf_set_javascript_action|fdf_set_on_import_javascript|fdf_set_opt|' +\n        'fdf_set_status|fdf_set_submit_form_action|fdf_set_target_frame|fdf_set_value|fdf_set_version|feof|fflush|fgetc|fgetcsv|fgets|fgetss|file|' +\n        'file_exists|file_get_contents|file_put_contents|fileatime|filectime|filegroup|fileinode|filemtime|fileowner|fileperms|filepro|' +\n        'filepro_fieldcount|filepro_fieldname|filepro_fieldtype|filepro_fieldwidth|filepro_retrieve|filepro_rowcount|filesize|filesystemiterator|' +\n        'filetype|filter_has_var|filter_id|filter_input|filter_input_array|filter_list|filter_var|filter_var_array|filteriterator|finfo_buffer|' +\n        'finfo_close|finfo_file|finfo_open|finfo_set_flags|floatval|flock|floor|flush|fmod|fnmatch|fopen|forward_static_call|' +\n        'forward_static_call_array|fpassthru|fprintf|fputcsv|fputs|fread|frenchtojd|fribidi_log2vis|fscanf|fseek|fsockopen|fstat|ftell|ftok|' +\n        'ftp_alloc|ftp_cdup|ftp_chdir|ftp_chmod|ftp_close|ftp_connect|ftp_delete|ftp_exec|ftp_fget|ftp_fput|ftp_get|ftp_get_option|ftp_login|' +\n        'ftp_mdtm|ftp_mkdir|ftp_nb_continue|ftp_nb_fget|ftp_nb_fput|ftp_nb_get|ftp_nb_put|ftp_nlist|ftp_pasv|ftp_put|ftp_pwd|ftp_quit|ftp_raw|' +\n        'ftp_rawlist|ftp_rename|ftp_rmdir|ftp_set_option|ftp_site|ftp_size|ftp_ssl_connect|ftp_systype|ftruncate|func_get_arg|func_get_args|' +\n        'func_num_args|function_exists|fwrite|gc_collect_cycles|gc_disable|gc_enable|gc_enabled|gd_info|gearmanclient|gearmanjob|gearmantask|' +\n        'gearmanworker|geoip_continent_code_by_name|geoip_country_code3_by_name|geoip_country_code_by_name|geoip_country_name_by_name|' +\n        'geoip_database_info|geoip_db_avail|geoip_db_filename|geoip_db_get_all_info|geoip_id_by_name|geoip_isp_by_name|geoip_org_by_name|' +\n        'geoip_record_by_name|geoip_region_by_name|geoip_region_name_by_code|geoip_time_zone_by_country_and_region|getMeta|getNamed|getValue|' +\n        'get_browser|get_called_class|get_cfg_var|get_class|get_class_methods|get_class_vars|get_current_user|get_declared_classes|' +\n        'get_declared_interfaces|get_declared_traits|get_defined_constants|get_defined_functions|get_defined_vars|get_extension_funcs|get_headers|' +\n        'get_html_translation_table|get_include_path|get_included_files|get_loaded_extensions|get_magic_quotes_gpc|get_magic_quotes_runtime|' +\n        'get_meta_tags|get_object_vars|get_parent_class|get_required_files|get_resource_type|getallheaders|getconstant|getconstants|getconstructor|' +\n        'getcwd|getdate|getdefaultproperties|getdoccomment|getendline|getenv|getextension|getextensionname|getfilename|gethostbyaddr|gethostbyname|' +\n        'gethostbynamel|gethostname|getimagesize|getinterfacenames|getinterfaces|getlastmod|getmethod|getmethods|getmodifiers|getmxrr|getmygid|' +\n        'getmyinode|getmypid|getmyuid|getname|getnamespacename|getopt|getparentclass|getproperties|getproperty|getprotobyname|getprotobynumber|' +\n        'getrandmax|getrusage|getservbyname|getservbyport|getshortname|getstartline|getstaticproperties|getstaticpropertyvalue|gettext|' +\n        'gettimeofday|gettype|glob|globiterator|gmagick|gmagickdraw|gmagickpixel|gmdate|gmmktime|gmp_abs|gmp_add|gmp_and|gmp_clrbit|gmp_cmp|' +\n        'gmp_com|gmp_div|gmp_div_q|gmp_div_qr|gmp_div_r|gmp_divexact|gmp_fact|gmp_gcd|gmp_gcdext|gmp_hamdist|gmp_init|gmp_intval|gmp_invert|' +\n        'gmp_jacobi|gmp_legendre|gmp_mod|gmp_mul|gmp_neg|gmp_nextprime|gmp_or|gmp_perfect_square|gmp_popcount|gmp_pow|gmp_powm|gmp_prob_prime|' +\n        'gmp_random|gmp_scan0|gmp_scan1|gmp_setbit|gmp_sign|gmp_sqrt|gmp_sqrtrem|gmp_strval|gmp_sub|gmp_testbit|gmp_xor|gmstrftime|' +\n        'gnupg_adddecryptkey|gnupg_addencryptkey|gnupg_addsignkey|gnupg_cleardecryptkeys|gnupg_clearencryptkeys|gnupg_clearsignkeys|gnupg_decrypt|' +\n        'gnupg_decryptverify|gnupg_encrypt|gnupg_encryptsign|gnupg_export|gnupg_geterror|gnupg_getprotocol|gnupg_import|gnupg_init|gnupg_keyinfo|' +\n        'gnupg_setarmor|gnupg_seterrormode|gnupg_setsignmode|gnupg_sign|gnupg_verify|gopher_parsedir|grapheme_extract|grapheme_stripos|' +\n        'grapheme_stristr|grapheme_strlen|grapheme_strpos|grapheme_strripos|grapheme_strrpos|grapheme_strstr|grapheme_substr|gregoriantojd|' +\n        'gupnp_context_get_host_ip|gupnp_context_get_port|gupnp_context_get_subscription_timeout|gupnp_context_host_path|gupnp_context_new|' +\n        'gupnp_context_set_subscription_timeout|gupnp_context_timeout_add|gupnp_context_unhost_path|gupnp_control_point_browse_start|' +\n        'gupnp_control_point_browse_stop|gupnp_control_point_callback_set|gupnp_control_point_new|gupnp_device_action_callback_set|' +\n        'gupnp_device_info_get|gupnp_device_info_get_service|gupnp_root_device_get_available|gupnp_root_device_get_relative_location|' +\n        'gupnp_root_device_new|gupnp_root_device_set_available|gupnp_root_device_start|gupnp_root_device_stop|gupnp_service_action_get|' +\n        'gupnp_service_action_return|gupnp_service_action_return_error|gupnp_service_action_set|gupnp_service_freeze_notify|gupnp_service_info_get|' +\n        'gupnp_service_info_get_introspection|gupnp_service_introspection_get_state_variable|gupnp_service_notify|gupnp_service_proxy_action_get|' +\n        'gupnp_service_proxy_action_set|gupnp_service_proxy_add_notify|gupnp_service_proxy_callback_set|gupnp_service_proxy_get_subscribed|' +\n        'gupnp_service_proxy_remove_notify|gupnp_service_proxy_set_subscribed|gupnp_service_thaw_notify|gzclose|gzcompress|gzdecode|gzdeflate|' +\n        'gzencode|gzeof|gzfile|gzgetc|gzgets|gzgetss|gzinflate|gzopen|gzpassthru|gzputs|gzread|gzrewind|gzseek|gztell|gzuncompress|gzwrite|' +\n        'halt_compiler|haruannotation|haruannotation_setborderstyle|haruannotation_sethighlightmode|haruannotation_seticon|' +\n        'haruannotation_setopened|harudestination|harudestination_setfit|harudestination_setfitb|harudestination_setfitbh|harudestination_setfitbv|' +\n        'harudestination_setfith|harudestination_setfitr|harudestination_setfitv|harudestination_setxyz|harudoc|harudoc_addpage|' +\n        'harudoc_addpagelabel|harudoc_construct|harudoc_createoutline|harudoc_getcurrentencoder|harudoc_getcurrentpage|harudoc_getencoder|' +\n        'harudoc_getfont|harudoc_getinfoattr|harudoc_getpagelayout|harudoc_getpagemode|harudoc_getstreamsize|harudoc_insertpage|harudoc_loadjpeg|' +\n        'harudoc_loadpng|harudoc_loadraw|harudoc_loadttc|harudoc_loadttf|harudoc_loadtype1|harudoc_output|harudoc_readfromstream|' +\n        'harudoc_reseterror|harudoc_resetstream|harudoc_save|harudoc_savetostream|harudoc_setcompressionmode|harudoc_setcurrentencoder|' +\n        'harudoc_setencryptionmode|harudoc_setinfoattr|harudoc_setinfodateattr|harudoc_setopenaction|harudoc_setpagelayout|harudoc_setpagemode|' +\n        'harudoc_setpagesconfiguration|harudoc_setpassword|harudoc_setpermission|harudoc_usecnsencodings|harudoc_usecnsfonts|' +\n        'harudoc_usecntencodings|harudoc_usecntfonts|harudoc_usejpencodings|harudoc_usejpfonts|harudoc_usekrencodings|harudoc_usekrfonts|' +\n        'haruencoder|haruencoder_getbytetype|haruencoder_gettype|haruencoder_getunicode|haruencoder_getwritingmode|haruexception|harufont|' +\n        'harufont_getascent|harufont_getcapheight|harufont_getdescent|harufont_getencodingname|harufont_getfontname|harufont_gettextwidth|' +\n        'harufont_getunicodewidth|harufont_getxheight|harufont_measuretext|haruimage|haruimage_getbitspercomponent|haruimage_getcolorspace|' +\n        'haruimage_getheight|haruimage_getsize|haruimage_getwidth|haruimage_setcolormask|haruimage_setmaskimage|haruoutline|' +\n        'haruoutline_setdestination|haruoutline_setopened|harupage|harupage_arc|harupage_begintext|harupage_circle|harupage_closepath|' +\n        'harupage_concat|harupage_createdestination|harupage_createlinkannotation|harupage_createtextannotation|harupage_createurlannotation|' +\n        'harupage_curveto|harupage_curveto2|harupage_curveto3|harupage_drawimage|harupage_ellipse|harupage_endpath|harupage_endtext|' +\n        'harupage_eofill|harupage_eofillstroke|harupage_fill|harupage_fillstroke|harupage_getcharspace|harupage_getcmykfill|harupage_getcmykstroke|' +\n        'harupage_getcurrentfont|harupage_getcurrentfontsize|harupage_getcurrentpos|harupage_getcurrenttextpos|harupage_getdash|' +\n        'harupage_getfillingcolorspace|harupage_getflatness|harupage_getgmode|harupage_getgrayfill|harupage_getgraystroke|harupage_getheight|' +\n        'harupage_gethorizontalscaling|harupage_getlinecap|harupage_getlinejoin|harupage_getlinewidth|harupage_getmiterlimit|harupage_getrgbfill|' +\n        'harupage_getrgbstroke|harupage_getstrokingcolorspace|harupage_gettextleading|harupage_gettextmatrix|harupage_gettextrenderingmode|' +\n        'harupage_gettextrise|harupage_gettextwidth|harupage_gettransmatrix|harupage_getwidth|harupage_getwordspace|harupage_lineto|' +\n        'harupage_measuretext|harupage_movetextpos|harupage_moveto|harupage_movetonextline|harupage_rectangle|harupage_setcharspace|' +\n        'harupage_setcmykfill|harupage_setcmykstroke|harupage_setdash|harupage_setflatness|harupage_setfontandsize|harupage_setgrayfill|' +\n        'harupage_setgraystroke|harupage_setheight|harupage_sethorizontalscaling|harupage_setlinecap|harupage_setlinejoin|harupage_setlinewidth|' +\n        'harupage_setmiterlimit|harupage_setrgbfill|harupage_setrgbstroke|harupage_setrotate|harupage_setsize|harupage_setslideshow|' +\n        'harupage_settextleading|harupage_settextmatrix|harupage_settextrenderingmode|harupage_settextrise|harupage_setwidth|harupage_setwordspace|' +\n        'harupage_showtext|harupage_showtextnextline|harupage_stroke|harupage_textout|harupage_textrect|hasconstant|hash|hash_algos|hash_copy|' +\n        'hash_file|hash_final|hash_hmac|hash_hmac_file|hash_init|hash_update|hash_update_file|hash_update_stream|hasmethod|hasproperty|header|' +\n        'header_register_callback|header_remove|headers_list|headers_sent|hebrev|hebrevc|hex2bin|hexdec|highlight_file|highlight_string|' +\n        'html_entity_decode|htmlentities|htmlspecialchars|htmlspecialchars_decode|http_build_cookie|http_build_query|http_build_str|http_build_url|' +\n        'http_cache_etag|http_cache_last_modified|http_chunked_decode|http_date|http_deflate|http_get|http_get_request_body|' +\n        'http_get_request_body_stream|http_get_request_headers|http_head|http_inflate|http_match_etag|http_match_modified|' +\n        'http_match_request_header|http_negotiate_charset|http_negotiate_content_type|http_negotiate_language|http_parse_cookie|http_parse_headers|' +\n        'http_parse_message|http_parse_params|http_persistent_handles_clean|http_persistent_handles_count|http_persistent_handles_ident|' +\n        'http_post_data|http_post_fields|http_put_data|http_put_file|http_put_stream|http_redirect|http_request|http_request_body_encode|' +\n        'http_request_method_exists|http_request_method_name|http_request_method_register|http_request_method_unregister|http_response_code|' +\n        'http_send_content_disposition|http_send_content_type|http_send_data|http_send_file|http_send_last_modified|http_send_status|' +\n        'http_send_stream|http_support|http_throttle|httpdeflatestream|httpdeflatestream_construct|httpdeflatestream_factory|' +\n        'httpdeflatestream_finish|httpdeflatestream_flush|httpdeflatestream_update|httpinflatestream|httpinflatestream_construct|' +\n        'httpinflatestream_factory|httpinflatestream_finish|httpinflatestream_flush|httpinflatestream_update|httpmessage|httpmessage_addheaders|' +\n        'httpmessage_construct|httpmessage_detach|httpmessage_factory|httpmessage_fromenv|httpmessage_fromstring|httpmessage_getbody|' +\n        'httpmessage_getheader|httpmessage_getheaders|httpmessage_gethttpversion|httpmessage_getparentmessage|httpmessage_getrequestmethod|' +\n        'httpmessage_getrequesturl|httpmessage_getresponsecode|httpmessage_getresponsestatus|httpmessage_gettype|httpmessage_guesscontenttype|' +\n        'httpmessage_prepend|httpmessage_reverse|httpmessage_send|httpmessage_setbody|httpmessage_setheaders|httpmessage_sethttpversion|' +\n        'httpmessage_setrequestmethod|httpmessage_setrequesturl|httpmessage_setresponsecode|httpmessage_setresponsestatus|httpmessage_settype|' +\n        'httpmessage_tomessagetypeobject|httpmessage_tostring|httpquerystring|httpquerystring_construct|httpquerystring_get|httpquerystring_mod|' +\n        'httpquerystring_set|httpquerystring_singleton|httpquerystring_toarray|httpquerystring_tostring|httpquerystring_xlate|httprequest|' +\n        'httprequest_addcookies|httprequest_addheaders|httprequest_addpostfields|httprequest_addpostfile|httprequest_addputdata|' +\n        'httprequest_addquerydata|httprequest_addrawpostdata|httprequest_addssloptions|httprequest_clearhistory|httprequest_construct|' +\n        'httprequest_enablecookies|httprequest_getcontenttype|httprequest_getcookies|httprequest_getheaders|httprequest_gethistory|' +\n        'httprequest_getmethod|httprequest_getoptions|httprequest_getpostfields|httprequest_getpostfiles|httprequest_getputdata|' +\n        'httprequest_getputfile|httprequest_getquerydata|httprequest_getrawpostdata|httprequest_getrawrequestmessage|' +\n        'httprequest_getrawresponsemessage|httprequest_getrequestmessage|httprequest_getresponsebody|httprequest_getresponsecode|' +\n        'httprequest_getresponsecookies|httprequest_getresponsedata|httprequest_getresponseheader|httprequest_getresponseinfo|' +\n        'httprequest_getresponsemessage|httprequest_getresponsestatus|httprequest_getssloptions|httprequest_geturl|httprequest_resetcookies|' +\n        'httprequest_send|httprequest_setcontenttype|httprequest_setcookies|httprequest_setheaders|httprequest_setmethod|httprequest_setoptions|' +\n        'httprequest_setpostfields|httprequest_setpostfiles|httprequest_setputdata|httprequest_setputfile|httprequest_setquerydata|' +\n        'httprequest_setrawpostdata|httprequest_setssloptions|httprequest_seturl|httprequestpool|httprequestpool_attach|httprequestpool_construct|' +\n        'httprequestpool_destruct|httprequestpool_detach|httprequestpool_getattachedrequests|httprequestpool_getfinishedrequests|' +\n        'httprequestpool_reset|httprequestpool_send|httprequestpool_socketperform|httprequestpool_socketselect|httpresponse|httpresponse_capture|' +\n        'httpresponse_getbuffersize|httpresponse_getcache|httpresponse_getcachecontrol|httpresponse_getcontentdisposition|' +\n        'httpresponse_getcontenttype|httpresponse_getdata|httpresponse_getetag|httpresponse_getfile|httpresponse_getgzip|httpresponse_getheader|' +\n        'httpresponse_getlastmodified|httpresponse_getrequestbody|httpresponse_getrequestbodystream|httpresponse_getrequestheaders|' +\n        'httpresponse_getstream|httpresponse_getthrottledelay|httpresponse_guesscontenttype|httpresponse_redirect|httpresponse_send|' +\n        'httpresponse_setbuffersize|httpresponse_setcache|httpresponse_setcachecontrol|httpresponse_setcontentdisposition|' +\n        'httpresponse_setcontenttype|httpresponse_setdata|httpresponse_setetag|httpresponse_setfile|httpresponse_setgzip|httpresponse_setheader|' +\n        'httpresponse_setlastmodified|httpresponse_setstream|httpresponse_setthrottledelay|httpresponse_status|hw_array2objrec|hw_changeobject|' +\n        'hw_children|hw_childrenobj|hw_close|hw_connect|hw_connection_info|hw_cp|hw_deleteobject|hw_docbyanchor|hw_docbyanchorobj|' +\n        'hw_document_attributes|hw_document_bodytag|hw_document_content|hw_document_setcontent|hw_document_size|hw_dummy|hw_edittext|hw_error|' +\n        'hw_errormsg|hw_free_document|hw_getanchors|hw_getanchorsobj|hw_getandlock|hw_getchildcoll|hw_getchildcollobj|hw_getchilddoccoll|' +\n        'hw_getchilddoccollobj|hw_getobject|hw_getobjectbyquery|hw_getobjectbyquerycoll|hw_getobjectbyquerycollobj|hw_getobjectbyqueryobj|' +\n        'hw_getparents|hw_getparentsobj|hw_getrellink|hw_getremote|hw_getremotechildren|hw_getsrcbydestobj|hw_gettext|hw_getusername|hw_identify|' +\n        'hw_incollections|hw_info|hw_inscoll|hw_insdoc|hw_insertanchors|hw_insertdocument|hw_insertobject|hw_mapid|hw_modifyobject|hw_mv|' +\n        'hw_new_document|hw_objrec2array|hw_output_document|hw_pconnect|hw_pipedocument|hw_root|hw_setlinkroot|hw_stat|hw_unlock|hw_who|' +\n        'hwapi_attribute|hwapi_attribute_key|hwapi_attribute_langdepvalue|hwapi_attribute_value|hwapi_attribute_values|hwapi_checkin|' +\n        'hwapi_checkout|hwapi_children|hwapi_content|hwapi_content_mimetype|hwapi_content_read|hwapi_copy|hwapi_dbstat|hwapi_dcstat|' +\n        'hwapi_dstanchors|hwapi_dstofsrcanchor|hwapi_error_count|hwapi_error_reason|hwapi_find|hwapi_ftstat|hwapi_hgcsp|hwapi_hwstat|' +\n        'hwapi_identify|hwapi_info|hwapi_insert|hwapi_insertanchor|hwapi_insertcollection|hwapi_insertdocument|hwapi_link|hwapi_lock|hwapi_move|' +\n        'hwapi_new_content|hwapi_object|hwapi_object_assign|hwapi_object_attreditable|hwapi_object_count|hwapi_object_insert|hwapi_object_new|' +\n        'hwapi_object_remove|hwapi_object_title|hwapi_object_value|hwapi_objectbyanchor|hwapi_parents|hwapi_reason_description|hwapi_reason_type|' +\n        'hwapi_remove|hwapi_replace|hwapi_setcommittedversion|hwapi_srcanchors|hwapi_srcsofdst|hwapi_unlock|hwapi_user|hwapi_userlist|hypot|' +\n        'ibase_add_user|ibase_affected_rows|ibase_backup|ibase_blob_add|ibase_blob_cancel|ibase_blob_close|ibase_blob_create|ibase_blob_echo|' +\n        'ibase_blob_get|ibase_blob_import|ibase_blob_info|ibase_blob_open|ibase_close|ibase_commit|ibase_commit_ret|ibase_connect|ibase_db_info|' +\n        'ibase_delete_user|ibase_drop_db|ibase_errcode|ibase_errmsg|ibase_execute|ibase_fetch_assoc|ibase_fetch_object|ibase_fetch_row|' +\n        'ibase_field_info|ibase_free_event_handler|ibase_free_query|ibase_free_result|ibase_gen_id|ibase_maintain_db|ibase_modify_user|' +\n        'ibase_name_result|ibase_num_fields|ibase_num_params|ibase_param_info|ibase_pconnect|ibase_prepare|ibase_query|ibase_restore|' +\n        'ibase_rollback|ibase_rollback_ret|ibase_server_info|ibase_service_attach|ibase_service_detach|ibase_set_event_handler|ibase_timefmt|' +\n        'ibase_trans|ibase_wait_event|iconv|iconv_get_encoding|iconv_mime_decode|iconv_mime_decode_headers|iconv_mime_encode|iconv_set_encoding|' +\n        'iconv_strlen|iconv_strpos|iconv_strrpos|iconv_substr|id3_get_frame_long_name|id3_get_frame_short_name|id3_get_genre_id|id3_get_genre_list|' +\n        'id3_get_genre_name|id3_get_tag|id3_get_version|id3_remove_tag|id3_set_tag|id3v2attachedpictureframe|id3v2frame|id3v2tag|idate|' +\n        'idn_to_ascii|idn_to_unicode|idn_to_utf8|ifx_affected_rows|ifx_blobinfile_mode|ifx_byteasvarchar|ifx_close|ifx_connect|ifx_copy_blob|' +\n        'ifx_create_blob|ifx_create_char|ifx_do|ifx_error|ifx_errormsg|ifx_fetch_row|ifx_fieldproperties|ifx_fieldtypes|ifx_free_blob|' +\n        'ifx_free_char|ifx_free_result|ifx_get_blob|ifx_get_char|ifx_getsqlca|ifx_htmltbl_result|ifx_nullformat|ifx_num_fields|ifx_num_rows|' +\n        'ifx_pconnect|ifx_prepare|ifx_query|ifx_textasvarchar|ifx_update_blob|ifx_update_char|ifxus_close_slob|ifxus_create_slob|ifxus_free_slob|' +\n        'ifxus_open_slob|ifxus_read_slob|ifxus_seek_slob|ifxus_tell_slob|ifxus_write_slob|ignore_user_abort|iis_add_server|iis_get_dir_security|' +\n        'iis_get_script_map|iis_get_server_by_comment|iis_get_server_by_path|iis_get_server_rights|iis_get_service_state|iis_remove_server|' +\n        'iis_set_app_settings|iis_set_dir_security|iis_set_script_map|iis_set_server_rights|iis_start_server|iis_start_service|iis_stop_server|' +\n        'iis_stop_service|image2wbmp|image_type_to_extension|image_type_to_mime_type|imagealphablending|imageantialias|imagearc|imagechar|' +\n        'imagecharup|imagecolorallocate|imagecolorallocatealpha|imagecolorat|imagecolorclosest|imagecolorclosestalpha|imagecolorclosesthwb|' +\n        'imagecolordeallocate|imagecolorexact|imagecolorexactalpha|imagecolormatch|imagecolorresolve|imagecolorresolvealpha|imagecolorset|' +\n        'imagecolorsforindex|imagecolorstotal|imagecolortransparent|imageconvolution|imagecopy|imagecopymerge|imagecopymergegray|' +\n        'imagecopyresampled|imagecopyresized|imagecreate|imagecreatefromgd|imagecreatefromgd2|imagecreatefromgd2part|imagecreatefromgif|' +\n        'imagecreatefromjpeg|imagecreatefrompng|imagecreatefromstring|imagecreatefromwbmp|imagecreatefromxbm|imagecreatefromxpm|' +\n        'imagecreatetruecolor|imagedashedline|imagedestroy|imageellipse|imagefill|imagefilledarc|imagefilledellipse|imagefilledpolygon|' +\n        'imagefilledrectangle|imagefilltoborder|imagefilter|imagefontheight|imagefontwidth|imageftbbox|imagefttext|imagegammacorrect|imagegd|' +\n        'imagegd2|imagegif|imagegrabscreen|imagegrabwindow|imageinterlace|imageistruecolor|imagejpeg|imagelayereffect|imageline|imageloadfont|' +\n        'imagepalettecopy|imagepng|imagepolygon|imagepsbbox|imagepsencodefont|imagepsextendfont|imagepsfreefont|imagepsloadfont|imagepsslantfont|' +\n        'imagepstext|imagerectangle|imagerotate|imagesavealpha|imagesetbrush|imagesetpixel|imagesetstyle|imagesetthickness|imagesettile|' +\n        'imagestring|imagestringup|imagesx|imagesy|imagetruecolortopalette|imagettfbbox|imagettftext|imagetypes|imagewbmp|imagexbm|imagick|' +\n        'imagick_adaptiveblurimage|imagick_adaptiveresizeimage|imagick_adaptivesharpenimage|imagick_adaptivethresholdimage|imagick_addimage|' +\n        'imagick_addnoiseimage|imagick_affinetransformimage|imagick_animateimages|imagick_annotateimage|imagick_appendimages|imagick_averageimages|' +\n        'imagick_blackthresholdimage|imagick_blurimage|imagick_borderimage|imagick_charcoalimage|imagick_chopimage|imagick_clear|imagick_clipimage|' +\n        'imagick_clippathimage|imagick_clone|imagick_clutimage|imagick_coalesceimages|imagick_colorfloodfillimage|imagick_colorizeimage|' +\n        'imagick_combineimages|imagick_commentimage|imagick_compareimagechannels|imagick_compareimagelayers|imagick_compareimages|' +\n        'imagick_compositeimage|imagick_construct|imagick_contrastimage|imagick_contraststretchimage|imagick_convolveimage|imagick_cropimage|' +\n        'imagick_cropthumbnailimage|imagick_current|imagick_cyclecolormapimage|imagick_decipherimage|imagick_deconstructimages|' +\n        'imagick_deleteimageartifact|imagick_despeckleimage|imagick_destroy|imagick_displayimage|imagick_displayimages|imagick_distortimage|' +\n        'imagick_drawimage|imagick_edgeimage|imagick_embossimage|imagick_encipherimage|imagick_enhanceimage|imagick_equalizeimage|' +\n        'imagick_evaluateimage|imagick_extentimage|imagick_flattenimages|imagick_flipimage|imagick_floodfillpaintimage|imagick_flopimage|' +\n        'imagick_frameimage|imagick_fximage|imagick_gammaimage|imagick_gaussianblurimage|imagick_getcolorspace|imagick_getcompression|' +\n        'imagick_getcompressionquality|imagick_getcopyright|imagick_getfilename|imagick_getfont|imagick_getformat|imagick_getgravity|' +\n        'imagick_gethomeurl|imagick_getimage|imagick_getimagealphachannel|imagick_getimageartifact|imagick_getimagebackgroundcolor|' +\n        'imagick_getimageblob|imagick_getimageblueprimary|imagick_getimagebordercolor|imagick_getimagechanneldepth|' +\n        'imagick_getimagechanneldistortion|imagick_getimagechanneldistortions|imagick_getimagechannelextrema|imagick_getimagechannelmean|' +\n        'imagick_getimagechannelrange|imagick_getimagechannelstatistics|imagick_getimageclipmask|imagick_getimagecolormapcolor|' +\n        'imagick_getimagecolors|imagick_getimagecolorspace|imagick_getimagecompose|imagick_getimagecompression|imagick_getimagecompressionquality|' +\n        'imagick_getimagedelay|imagick_getimagedepth|imagick_getimagedispose|imagick_getimagedistortion|imagick_getimageextrema|' +\n        'imagick_getimagefilename|imagick_getimageformat|imagick_getimagegamma|imagick_getimagegeometry|imagick_getimagegravity|' +\n        'imagick_getimagegreenprimary|imagick_getimageheight|imagick_getimagehistogram|imagick_getimageindex|imagick_getimageinterlacescheme|' +\n        'imagick_getimageinterpolatemethod|imagick_getimageiterations|imagick_getimagelength|imagick_getimagemagicklicense|imagick_getimagematte|' +\n        'imagick_getimagemattecolor|imagick_getimageorientation|imagick_getimagepage|imagick_getimagepixelcolor|imagick_getimageprofile|' +\n        'imagick_getimageprofiles|imagick_getimageproperties|imagick_getimageproperty|imagick_getimageredprimary|imagick_getimageregion|' +\n        'imagick_getimagerenderingintent|imagick_getimageresolution|imagick_getimagesblob|imagick_getimagescene|imagick_getimagesignature|' +\n        'imagick_getimagesize|imagick_getimagetickspersecond|imagick_getimagetotalinkdensity|imagick_getimagetype|imagick_getimageunits|' +\n        'imagick_getimagevirtualpixelmethod|imagick_getimagewhitepoint|imagick_getimagewidth|imagick_getinterlacescheme|imagick_getiteratorindex|' +\n        'imagick_getnumberimages|imagick_getoption|imagick_getpackagename|imagick_getpage|imagick_getpixeliterator|imagick_getpixelregioniterator|' +\n        'imagick_getpointsize|imagick_getquantumdepth|imagick_getquantumrange|imagick_getreleasedate|imagick_getresource|imagick_getresourcelimit|' +\n        'imagick_getsamplingfactors|imagick_getsize|imagick_getsizeoffset|imagick_getversion|imagick_hasnextimage|imagick_haspreviousimage|' +\n        'imagick_identifyimage|imagick_implodeimage|imagick_labelimage|imagick_levelimage|imagick_linearstretchimage|imagick_liquidrescaleimage|' +\n        'imagick_magnifyimage|imagick_mapimage|imagick_mattefloodfillimage|imagick_medianfilterimage|imagick_mergeimagelayers|imagick_minifyimage|' +\n        'imagick_modulateimage|imagick_montageimage|imagick_morphimages|imagick_mosaicimages|imagick_motionblurimage|imagick_negateimage|' +\n        'imagick_newimage|imagick_newpseudoimage|imagick_nextimage|imagick_normalizeimage|imagick_oilpaintimage|imagick_opaquepaintimage|' +\n        'imagick_optimizeimagelayers|imagick_orderedposterizeimage|imagick_paintfloodfillimage|imagick_paintopaqueimage|' +\n        'imagick_painttransparentimage|imagick_pingimage|imagick_pingimageblob|imagick_pingimagefile|imagick_polaroidimage|imagick_posterizeimage|' +\n        'imagick_previewimages|imagick_previousimage|imagick_profileimage|imagick_quantizeimage|imagick_quantizeimages|imagick_queryfontmetrics|' +\n        'imagick_queryfonts|imagick_queryformats|imagick_radialblurimage|imagick_raiseimage|imagick_randomthresholdimage|imagick_readimage|' +\n        'imagick_readimageblob|imagick_readimagefile|imagick_recolorimage|imagick_reducenoiseimage|imagick_removeimage|imagick_removeimageprofile|' +\n        'imagick_render|imagick_resampleimage|imagick_resetimagepage|imagick_resizeimage|imagick_rollimage|imagick_rotateimage|' +\n        'imagick_roundcorners|imagick_sampleimage|imagick_scaleimage|imagick_separateimagechannel|imagick_sepiatoneimage|' +\n        'imagick_setbackgroundcolor|imagick_setcolorspace|imagick_setcompression|imagick_setcompressionquality|imagick_setfilename|' +\n        'imagick_setfirstiterator|imagick_setfont|imagick_setformat|imagick_setgravity|imagick_setimage|imagick_setimagealphachannel|' +\n        'imagick_setimageartifact|imagick_setimagebackgroundcolor|imagick_setimagebias|imagick_setimageblueprimary|imagick_setimagebordercolor|' +\n        'imagick_setimagechanneldepth|imagick_setimageclipmask|imagick_setimagecolormapcolor|imagick_setimagecolorspace|imagick_setimagecompose|' +\n        'imagick_setimagecompression|imagick_setimagecompressionquality|imagick_setimagedelay|imagick_setimagedepth|imagick_setimagedispose|' +\n        'imagick_setimageextent|imagick_setimagefilename|imagick_setimageformat|imagick_setimagegamma|imagick_setimagegravity|' +\n        'imagick_setimagegreenprimary|imagick_setimageindex|imagick_setimageinterlacescheme|imagick_setimageinterpolatemethod|' +\n        'imagick_setimageiterations|imagick_setimagematte|imagick_setimagemattecolor|imagick_setimageopacity|imagick_setimageorientation|' +\n        'imagick_setimagepage|imagick_setimageprofile|imagick_setimageproperty|imagick_setimageredprimary|imagick_setimagerenderingintent|' +\n        'imagick_setimageresolution|imagick_setimagescene|imagick_setimagetickspersecond|imagick_setimagetype|imagick_setimageunits|' +\n        'imagick_setimagevirtualpixelmethod|imagick_setimagewhitepoint|imagick_setinterlacescheme|imagick_setiteratorindex|imagick_setlastiterator|' +\n        'imagick_setoption|imagick_setpage|imagick_setpointsize|imagick_setresolution|imagick_setresourcelimit|imagick_setsamplingfactors|' +\n        'imagick_setsize|imagick_setsizeoffset|imagick_settype|imagick_shadeimage|imagick_shadowimage|imagick_sharpenimage|imagick_shaveimage|' +\n        'imagick_shearimage|imagick_sigmoidalcontrastimage|imagick_sketchimage|imagick_solarizeimage|imagick_spliceimage|imagick_spreadimage|' +\n        'imagick_steganoimage|imagick_stereoimage|imagick_stripimage|imagick_swirlimage|imagick_textureimage|imagick_thresholdimage|' +\n        'imagick_thumbnailimage|imagick_tintimage|imagick_transformimage|imagick_transparentpaintimage|imagick_transposeimage|' +\n        'imagick_transverseimage|imagick_trimimage|imagick_uniqueimagecolors|imagick_unsharpmaskimage|imagick_valid|imagick_vignetteimage|' +\n        'imagick_waveimage|imagick_whitethresholdimage|imagick_writeimage|imagick_writeimagefile|imagick_writeimages|imagick_writeimagesfile|' +\n        'imagickdraw|imagickdraw_affine|imagickdraw_annotation|imagickdraw_arc|imagickdraw_bezier|imagickdraw_circle|imagickdraw_clear|' +\n        'imagickdraw_clone|imagickdraw_color|imagickdraw_comment|imagickdraw_composite|imagickdraw_construct|imagickdraw_destroy|' +\n        'imagickdraw_ellipse|imagickdraw_getclippath|imagickdraw_getcliprule|imagickdraw_getclipunits|imagickdraw_getfillcolor|' +\n        'imagickdraw_getfillopacity|imagickdraw_getfillrule|imagickdraw_getfont|imagickdraw_getfontfamily|imagickdraw_getfontsize|' +\n        'imagickdraw_getfontstyle|imagickdraw_getfontweight|imagickdraw_getgravity|imagickdraw_getstrokeantialias|imagickdraw_getstrokecolor|' +\n        'imagickdraw_getstrokedasharray|imagickdraw_getstrokedashoffset|imagickdraw_getstrokelinecap|imagickdraw_getstrokelinejoin|' +\n        'imagickdraw_getstrokemiterlimit|imagickdraw_getstrokeopacity|imagickdraw_getstrokewidth|imagickdraw_gettextalignment|' +\n        'imagickdraw_gettextantialias|imagickdraw_gettextdecoration|imagickdraw_gettextencoding|imagickdraw_gettextundercolor|' +\n        'imagickdraw_getvectorgraphics|imagickdraw_line|imagickdraw_matte|imagickdraw_pathclose|imagickdraw_pathcurvetoabsolute|' +\n        'imagickdraw_pathcurvetoquadraticbezierabsolute|imagickdraw_pathcurvetoquadraticbezierrelative|' +\n        'imagickdraw_pathcurvetoquadraticbeziersmoothabsolute|imagickdraw_pathcurvetoquadraticbeziersmoothrelative|imagickdraw_pathcurvetorelative|' +\n        'imagickdraw_pathcurvetosmoothabsolute|imagickdraw_pathcurvetosmoothrelative|imagickdraw_pathellipticarcabsolute|' +\n        'imagickdraw_pathellipticarcrelative|imagickdraw_pathfinish|imagickdraw_pathlinetoabsolute|imagickdraw_pathlinetohorizontalabsolute|' +\n        'imagickdraw_pathlinetohorizontalrelative|imagickdraw_pathlinetorelative|imagickdraw_pathlinetoverticalabsolute|' +\n        'imagickdraw_pathlinetoverticalrelative|imagickdraw_pathmovetoabsolute|imagickdraw_pathmovetorelative|imagickdraw_pathstart|' +\n        'imagickdraw_point|imagickdraw_polygon|imagickdraw_polyline|imagickdraw_pop|imagickdraw_popclippath|imagickdraw_popdefs|' +\n        'imagickdraw_poppattern|imagickdraw_push|imagickdraw_pushclippath|imagickdraw_pushdefs|imagickdraw_pushpattern|imagickdraw_rectangle|' +\n        'imagickdraw_render|imagickdraw_rotate|imagickdraw_roundrectangle|imagickdraw_scale|imagickdraw_setclippath|imagickdraw_setcliprule|' +\n        'imagickdraw_setclipunits|imagickdraw_setfillalpha|imagickdraw_setfillcolor|imagickdraw_setfillopacity|imagickdraw_setfillpatternurl|' +\n        'imagickdraw_setfillrule|imagickdraw_setfont|imagickdraw_setfontfamily|imagickdraw_setfontsize|imagickdraw_setfontstretch|' +\n        'imagickdraw_setfontstyle|imagickdraw_setfontweight|imagickdraw_setgravity|imagickdraw_setstrokealpha|imagickdraw_setstrokeantialias|' +\n        'imagickdraw_setstrokecolor|imagickdraw_setstrokedasharray|imagickdraw_setstrokedashoffset|imagickdraw_setstrokelinecap|' +\n        'imagickdraw_setstrokelinejoin|imagickdraw_setstrokemiterlimit|imagickdraw_setstrokeopacity|imagickdraw_setstrokepatternurl|' +\n        'imagickdraw_setstrokewidth|imagickdraw_settextalignment|imagickdraw_settextantialias|imagickdraw_settextdecoration|' +\n        'imagickdraw_settextencoding|imagickdraw_settextundercolor|imagickdraw_setvectorgraphics|imagickdraw_setviewbox|imagickdraw_skewx|' +\n        'imagickdraw_skewy|imagickdraw_translate|imagickpixel|imagickpixel_clear|imagickpixel_construct|imagickpixel_destroy|imagickpixel_getcolor|' +\n        'imagickpixel_getcolorasstring|imagickpixel_getcolorcount|imagickpixel_getcolorvalue|imagickpixel_gethsl|imagickpixel_issimilar|' +\n        'imagickpixel_setcolor|imagickpixel_setcolorvalue|imagickpixel_sethsl|imagickpixeliterator|imagickpixeliterator_clear|' +\n        'imagickpixeliterator_construct|imagickpixeliterator_destroy|imagickpixeliterator_getcurrentiteratorrow|' +\n        'imagickpixeliterator_getiteratorrow|imagickpixeliterator_getnextiteratorrow|imagickpixeliterator_getpreviousiteratorrow|' +\n        'imagickpixeliterator_newpixeliterator|imagickpixeliterator_newpixelregioniterator|imagickpixeliterator_resetiterator|' +\n        'imagickpixeliterator_setiteratorfirstrow|imagickpixeliterator_setiteratorlastrow|imagickpixeliterator_setiteratorrow|' +\n        'imagickpixeliterator_synciterator|imap_8bit|imap_alerts|imap_append|imap_base64|imap_binary|imap_body|imap_bodystruct|imap_check|' +\n        'imap_clearflag_full|imap_close|imap_create|imap_createmailbox|imap_delete|imap_deletemailbox|imap_errors|imap_expunge|imap_fetch_overview|' +\n        'imap_fetchbody|imap_fetchheader|imap_fetchmime|imap_fetchstructure|imap_fetchtext|imap_gc|imap_get_quota|imap_get_quotaroot|imap_getacl|' +\n        'imap_getmailboxes|imap_getsubscribed|imap_header|imap_headerinfo|imap_headers|imap_last_error|imap_list|imap_listmailbox|imap_listscan|' +\n        'imap_listsubscribed|imap_lsub|imap_mail|imap_mail_compose|imap_mail_copy|imap_mail_move|imap_mailboxmsginfo|imap_mime_header_decode|' +\n        'imap_msgno|imap_num_msg|imap_num_recent|imap_open|imap_ping|imap_qprint|imap_rename|imap_renamemailbox|imap_reopen|' +\n        'imap_rfc822_parse_adrlist|imap_rfc822_parse_headers|imap_rfc822_write_address|imap_savebody|imap_scan|imap_scanmailbox|imap_search|' +\n        'imap_set_quota|imap_setacl|imap_setflag_full|imap_sort|imap_status|imap_subscribe|imap_thread|imap_timeout|imap_uid|imap_undelete|' +\n        'imap_unsubscribe|imap_utf7_decode|imap_utf7_encode|imap_utf8|implementsinterface|implode|import_request_variables|in_array|include|' +\n        'include_once|inclued_get_data|inet_ntop|inet_pton|infiniteiterator|ingres_autocommit|ingres_autocommit_state|ingres_charset|ingres_close|' +\n        'ingres_commit|ingres_connect|ingres_cursor|ingres_errno|ingres_error|ingres_errsqlstate|ingres_escape_string|ingres_execute|' +\n        'ingres_fetch_array|ingres_fetch_assoc|ingres_fetch_object|ingres_fetch_proc_return|ingres_fetch_row|ingres_field_length|ingres_field_name|' +\n        'ingres_field_nullable|ingres_field_precision|ingres_field_scale|ingres_field_type|ingres_free_result|ingres_next_error|ingres_num_fields|' +\n        'ingres_num_rows|ingres_pconnect|ingres_prepare|ingres_query|ingres_result_seek|ingres_rollback|ingres_set_environment|' +\n        'ingres_unbuffered_query|ini_alter|ini_get|ini_get_all|ini_restore|ini_set|innamespace|inotify_add_watch|inotify_init|inotify_queue_len|' +\n        'inotify_read|inotify_rm_watch|interface_exists|intl_error_name|intl_get_error_code|intl_get_error_message|intl_is_failure|' +\n        'intldateformatter|intval|invalidargumentexception|invoke|invokeargs|ip2long|iptcembed|iptcparse|is_a|is_array|is_bool|is_callable|is_dir|' +\n        'is_double|is_executable|is_file|is_finite|is_float|is_infinite|is_int|is_integer|is_link|is_long|is_nan|is_null|is_numeric|is_object|' +\n        'is_readable|is_real|is_resource|is_scalar|is_soap_fault|is_string|is_subclass_of|is_uploaded_file|is_writable|is_writeable|isabstract|' +\n        'iscloneable|isdisabled|isfinal|isinstance|isinstantiable|isinterface|isinternal|isiterateable|isset|issubclassof|isuserdefined|iterator|' +\n        'iterator_apply|iterator_count|iterator_to_array|iteratoraggregate|iteratoriterator|java_last_exception_clear|java_last_exception_get|' +\n        'jddayofweek|jdmonthname|jdtofrench|jdtogregorian|jdtojewish|jdtojulian|jdtounix|jewishtojd|join|jpeg2wbmp|json_decode|json_encode|' +\n        'json_last_error|jsonserializable|judy|judy_type|judy_version|juliantojd|kadm5_chpass_principal|kadm5_create_principal|' +\n        'kadm5_delete_principal|kadm5_destroy|kadm5_flush|kadm5_get_policies|kadm5_get_principal|kadm5_get_principals|kadm5_init_with_password|' +\n        'kadm5_modify_principal|key|krsort|ksort|lcfirst|lcg_value|lchgrp|lchown|ldap_8859_to_t61|ldap_add|ldap_bind|ldap_close|ldap_compare|' +\n        'ldap_connect|ldap_count_entries|ldap_delete|ldap_dn2ufn|ldap_err2str|ldap_errno|ldap_error|ldap_explode_dn|ldap_first_attribute|' +\n        'ldap_first_entry|ldap_first_reference|ldap_free_result|ldap_get_attributes|ldap_get_dn|ldap_get_entries|ldap_get_option|ldap_get_values|' +\n        'ldap_get_values_len|ldap_list|ldap_mod_add|ldap_mod_del|ldap_mod_replace|ldap_modify|ldap_next_attribute|ldap_next_entry|' +\n        'ldap_next_reference|ldap_parse_reference|ldap_parse_result|ldap_read|ldap_rename|ldap_sasl_bind|ldap_search|ldap_set_option|' +\n        'ldap_set_rebind_proc|ldap_sort|ldap_start_tls|ldap_t61_to_8859|ldap_unbind|lengthexception|levenshtein|libxml_clear_errors|' +\n        'libxml_disable_entity_loader|libxml_get_errors|libxml_get_last_error|libxml_set_streams_context|libxml_use_internal_errors|libxmlerror|' +\n        'limititerator|link|linkinfo|list|locale|localeconv|localtime|log|log10|log1p|logicexception|long2ip|lstat|ltrim|lzf_compress|' +\n        'lzf_decompress|lzf_optimized_for|m_checkstatus|m_completeauthorizations|m_connect|m_connectionerror|m_deletetrans|m_destroyconn|' +\n        'm_destroyengine|m_getcell|m_getcellbynum|m_getcommadelimited|m_getheader|m_initconn|m_initengine|m_iscommadelimited|m_maxconntimeout|' +\n        'm_monitor|m_numcolumns|m_numrows|m_parsecommadelimited|m_responsekeys|m_responseparam|m_returnstatus|m_setblocking|m_setdropfile|m_setip|' +\n        'm_setssl|m_setssl_cafile|m_setssl_files|m_settimeout|m_sslcert_gen_hash|m_transactionssent|m_transinqueue|m_transkeyval|m_transnew|' +\n        'm_transsend|m_uwait|m_validateidentifier|m_verifyconnection|m_verifysslcert|magic_quotes_runtime|mail|' +\n        'mailparse_determine_best_xfer_encoding|mailparse_msg_create|mailparse_msg_extract_part|mailparse_msg_extract_part_file|' +\n        'mailparse_msg_extract_whole_part_file|mailparse_msg_free|mailparse_msg_get_part|mailparse_msg_get_part_data|mailparse_msg_get_structure|' +\n        'mailparse_msg_parse|mailparse_msg_parse_file|mailparse_rfc822_parse_addresses|mailparse_stream_encode|mailparse_uudecode_all|main|max|' +\n        'maxdb_affected_rows|maxdb_autocommit|maxdb_bind_param|maxdb_bind_result|maxdb_change_user|maxdb_character_set_name|maxdb_client_encoding|' +\n        'maxdb_close|maxdb_close_long_data|maxdb_commit|maxdb_connect|maxdb_connect_errno|maxdb_connect_error|maxdb_data_seek|maxdb_debug|' +\n        'maxdb_disable_reads_from_master|maxdb_disable_rpl_parse|maxdb_dump_debug_info|maxdb_embedded_connect|maxdb_enable_reads_from_master|' +\n        'maxdb_enable_rpl_parse|maxdb_errno|maxdb_error|maxdb_escape_string|maxdb_execute|maxdb_fetch|maxdb_fetch_array|maxdb_fetch_assoc|' +\n        'maxdb_fetch_field|maxdb_fetch_field_direct|maxdb_fetch_fields|maxdb_fetch_lengths|maxdb_fetch_object|maxdb_fetch_row|maxdb_field_count|' +\n        'maxdb_field_seek|maxdb_field_tell|maxdb_free_result|maxdb_get_client_info|maxdb_get_client_version|maxdb_get_host_info|maxdb_get_metadata|' +\n        'maxdb_get_proto_info|maxdb_get_server_info|maxdb_get_server_version|maxdb_info|maxdb_init|maxdb_insert_id|maxdb_kill|maxdb_master_query|' +\n        'maxdb_more_results|maxdb_multi_query|maxdb_next_result|maxdb_num_fields|maxdb_num_rows|maxdb_options|maxdb_param_count|maxdb_ping|' +\n        'maxdb_prepare|maxdb_query|maxdb_real_connect|maxdb_real_escape_string|maxdb_real_query|maxdb_report|maxdb_rollback|' +\n        'maxdb_rpl_parse_enabled|maxdb_rpl_probe|maxdb_rpl_query_type|maxdb_select_db|maxdb_send_long_data|maxdb_send_query|maxdb_server_end|' +\n        'maxdb_server_init|maxdb_set_opt|maxdb_sqlstate|maxdb_ssl_set|maxdb_stat|maxdb_stmt_affected_rows|maxdb_stmt_bind_param|' +\n        'maxdb_stmt_bind_result|maxdb_stmt_close|maxdb_stmt_close_long_data|maxdb_stmt_data_seek|maxdb_stmt_errno|maxdb_stmt_error|' +\n        'maxdb_stmt_execute|maxdb_stmt_fetch|maxdb_stmt_free_result|maxdb_stmt_init|maxdb_stmt_num_rows|maxdb_stmt_param_count|maxdb_stmt_prepare|' +\n        'maxdb_stmt_reset|maxdb_stmt_result_metadata|maxdb_stmt_send_long_data|maxdb_stmt_sqlstate|maxdb_stmt_store_result|maxdb_store_result|' +\n        'maxdb_thread_id|maxdb_thread_safe|maxdb_use_result|maxdb_warning_count|mb_check_encoding|mb_convert_case|mb_convert_encoding|' +\n        'mb_convert_kana|mb_convert_variables|mb_decode_mimeheader|mb_decode_numericentity|mb_detect_encoding|mb_detect_order|mb_encode_mimeheader|' +\n        'mb_encode_numericentity|mb_encoding_aliases|mb_ereg|mb_ereg_match|mb_ereg_replace|mb_ereg_search|mb_ereg_search_getpos|' +\n        'mb_ereg_search_getregs|mb_ereg_search_init|mb_ereg_search_pos|mb_ereg_search_regs|mb_ereg_search_setpos|mb_eregi|mb_eregi_replace|' +\n        'mb_get_info|mb_http_input|mb_http_output|mb_internal_encoding|mb_language|mb_list_encodings|mb_output_handler|mb_parse_str|' +\n        'mb_preferred_mime_name|mb_regex_encoding|mb_regex_set_options|mb_send_mail|mb_split|mb_strcut|mb_strimwidth|mb_stripos|mb_stristr|' +\n        'mb_strlen|mb_strpos|mb_strrchr|mb_strrichr|mb_strripos|mb_strrpos|mb_strstr|mb_strtolower|mb_strtoupper|mb_strwidth|' +\n        'mb_substitute_character|mb_substr|mb_substr_count|mcrypt_cbc|mcrypt_cfb|mcrypt_create_iv|mcrypt_decrypt|mcrypt_ecb|' +\n        'mcrypt_enc_get_algorithms_name|mcrypt_enc_get_block_size|mcrypt_enc_get_iv_size|mcrypt_enc_get_key_size|mcrypt_enc_get_modes_name|' +\n        'mcrypt_enc_get_supported_key_sizes|mcrypt_enc_is_block_algorithm|mcrypt_enc_is_block_algorithm_mode|mcrypt_enc_is_block_mode|' +\n        'mcrypt_enc_self_test|mcrypt_encrypt|mcrypt_generic|mcrypt_generic_deinit|mcrypt_generic_end|mcrypt_generic_init|mcrypt_get_block_size|' +\n        'mcrypt_get_cipher_name|mcrypt_get_iv_size|mcrypt_get_key_size|mcrypt_list_algorithms|mcrypt_list_modes|mcrypt_module_close|' +\n        'mcrypt_module_get_algo_block_size|mcrypt_module_get_algo_key_size|mcrypt_module_get_supported_key_sizes|mcrypt_module_is_block_algorithm|' +\n        'mcrypt_module_is_block_algorithm_mode|mcrypt_module_is_block_mode|mcrypt_module_open|mcrypt_module_self_test|mcrypt_ofb|md5|md5_file|' +\n        'mdecrypt_generic|memcache|memcache_debug|memcached|memory_get_peak_usage|memory_get_usage|messageformatter|metaphone|method_exists|mhash|' +\n        'mhash_count|mhash_get_block_size|mhash_get_hash_name|mhash_keygen_s2k|microtime|mime_content_type|min|ming_keypress|' +\n        'ming_setcubicthreshold|ming_setscale|ming_setswfcompression|ming_useconstants|ming_useswfversion|mkdir|mktime|money_format|mongo|' +\n        'mongobindata|mongocode|mongocollection|mongoconnectionexception|mongocursor|mongocursorexception|mongocursortimeoutexception|mongodate|' +\n        'mongodb|mongodbref|mongoexception|mongogridfs|mongogridfscursor|mongogridfsexception|mongogridfsfile|mongoid|mongoint32|mongoint64|' +\n        'mongomaxkey|mongominkey|mongoregex|mongotimestamp|move_uploaded_file|mpegfile|mqseries_back|mqseries_begin|mqseries_close|mqseries_cmit|' +\n        'mqseries_conn|mqseries_connx|mqseries_disc|mqseries_get|mqseries_inq|mqseries_open|mqseries_put|mqseries_put1|mqseries_set|' +\n        'mqseries_strerror|msession_connect|msession_count|msession_create|msession_destroy|msession_disconnect|msession_find|msession_get|' +\n        'msession_get_array|msession_get_data|msession_inc|msession_list|msession_listvar|msession_lock|msession_plugin|msession_randstr|' +\n        'msession_set|msession_set_array|msession_set_data|msession_timeout|msession_uniq|msession_unlock|msg_get_queue|msg_queue_exists|' +\n        'msg_receive|msg_remove_queue|msg_send|msg_set_queue|msg_stat_queue|msql|msql_affected_rows|msql_close|msql_connect|msql_create_db|' +\n        'msql_createdb|msql_data_seek|msql_db_query|msql_dbname|msql_drop_db|msql_error|msql_fetch_array|msql_fetch_field|msql_fetch_object|' +\n        'msql_fetch_row|msql_field_flags|msql_field_len|msql_field_name|msql_field_seek|msql_field_table|msql_field_type|msql_fieldflags|' +\n        'msql_fieldlen|msql_fieldname|msql_fieldtable|msql_fieldtype|msql_free_result|msql_list_dbs|msql_list_fields|msql_list_tables|' +\n        'msql_num_fields|msql_num_rows|msql_numfields|msql_numrows|msql_pconnect|msql_query|msql_regcase|msql_result|msql_select_db|msql_tablename|' +\n        'mssql_bind|mssql_close|mssql_connect|mssql_data_seek|mssql_execute|mssql_fetch_array|mssql_fetch_assoc|mssql_fetch_batch|' +\n        'mssql_fetch_field|mssql_fetch_object|mssql_fetch_row|mssql_field_length|mssql_field_name|mssql_field_seek|mssql_field_type|' +\n        'mssql_free_result|mssql_free_statement|mssql_get_last_message|mssql_guid_string|mssql_init|mssql_min_error_severity|' +\n        'mssql_min_message_severity|mssql_next_result|mssql_num_fields|mssql_num_rows|mssql_pconnect|mssql_query|mssql_result|mssql_rows_affected|' +\n        'mssql_select_db|mt_getrandmax|mt_rand|mt_srand|multipleiterator|mysql_affected_rows|mysql_client_encoding|mysql_close|mysql_connect|' +\n        'mysql_create_db|mysql_data_seek|mysql_db_name|mysql_db_query|mysql_drop_db|mysql_errno|mysql_error|mysql_escape_string|mysql_fetch_array|' +\n        'mysql_fetch_assoc|mysql_fetch_field|mysql_fetch_lengths|mysql_fetch_object|mysql_fetch_row|mysql_field_flags|mysql_field_len|' +\n        'mysql_field_name|mysql_field_seek|mysql_field_table|mysql_field_type|mysql_free_result|mysql_get_client_info|mysql_get_host_info|' +\n        'mysql_get_proto_info|mysql_get_server_info|mysql_info|mysql_insert_id|mysql_list_dbs|mysql_list_fields|mysql_list_processes|' +\n        'mysql_list_tables|mysql_num_fields|mysql_num_rows|mysql_pconnect|mysql_ping|mysql_query|mysql_real_escape_string|mysql_result|' +\n        'mysql_select_db|mysql_set_charset|mysql_stat|mysql_tablename|mysql_thread_id|mysql_unbuffered_query|mysqli|mysqli_affected_rows|' +\n        'mysqli_autocommit|mysqli_bind_param|mysqli_bind_result|mysqli_cache_stats|mysqli_change_user|mysqli_character_set_name|' +\n        'mysqli_client_encoding|mysqli_close|mysqli_commit|mysqli_connect|mysqli_connect_errno|mysqli_connect_error|mysqli_data_seek|' +\n        'mysqli_debug|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_driver|mysqli_dump_debug_info|mysqli_embedded_server_end|' +\n        'mysqli_embedded_server_start|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_errno|mysqli_error|mysqli_escape_string|' +\n        'mysqli_execute|mysqli_fetch|mysqli_fetch_all|mysqli_fetch_array|mysqli_fetch_assoc|mysqli_fetch_field|mysqli_fetch_field_direct|' +\n        'mysqli_fetch_fields|mysqli_fetch_lengths|mysqli_fetch_object|mysqli_fetch_row|mysqli_field_count|mysqli_field_seek|mysqli_field_tell|' +\n        'mysqli_free_result|mysqli_get_charset|mysqli_get_client_info|mysqli_get_client_stats|mysqli_get_client_version|mysqli_get_connection_stats|' +\n        'mysqli_get_host_info|mysqli_get_metadata|mysqli_get_proto_info|mysqli_get_server_info|mysqli_get_server_version|mysqli_get_warnings|' +\n        'mysqli_info|mysqli_init|mysqli_insert_id|mysqli_kill|mysqli_link_construct|mysqli_master_query|mysqli_more_results|mysqli_multi_query|' +\n        'mysqli_next_result|mysqli_num_fields|mysqli_num_rows|mysqli_options|mysqli_param_count|mysqli_ping|mysqli_poll|mysqli_prepare|' +\n        'mysqli_query|mysqli_real_connect|mysqli_real_escape_string|mysqli_real_query|mysqli_reap_async_query|mysqli_refresh|mysqli_report|' +\n        'mysqli_result|mysqli_rollback|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_select_db|mysqli_send_long_data|' +\n        'mysqli_send_query|mysqli_set_charset|mysqli_set_local_infile_default|mysqli_set_local_infile_handler|mysqli_set_opt|mysqli_slave_query|' +\n        'mysqli_sqlstate|mysqli_ssl_set|mysqli_stat|mysqli_stmt|mysqli_stmt_affected_rows|mysqli_stmt_attr_get|mysqli_stmt_attr_set|' +\n        'mysqli_stmt_bind_param|mysqli_stmt_bind_result|mysqli_stmt_close|mysqli_stmt_data_seek|mysqli_stmt_errno|mysqli_stmt_error|' +\n        'mysqli_stmt_execute|mysqli_stmt_fetch|mysqli_stmt_field_count|mysqli_stmt_free_result|mysqli_stmt_get_result|mysqli_stmt_get_warnings|' +\n        'mysqli_stmt_init|mysqli_stmt_insert_id|mysqli_stmt_next_result|mysqli_stmt_num_rows|mysqli_stmt_param_count|mysqli_stmt_prepare|' +\n        'mysqli_stmt_reset|mysqli_stmt_result_metadata|mysqli_stmt_send_long_data|mysqli_stmt_sqlstate|mysqli_stmt_store_result|mysqli_store_result|' +\n        'mysqli_thread_id|mysqli_thread_safe|mysqli_use_result|mysqli_warning|mysqli_warning_count|mysqlnd_ms_get_stats|' +\n        'mysqlnd_ms_query_is_select|mysqlnd_ms_set_user_pick_server|mysqlnd_qc_change_handler|mysqlnd_qc_clear_cache|mysqlnd_qc_get_cache_info|' +\n        'mysqlnd_qc_get_core_stats|mysqlnd_qc_get_handler|mysqlnd_qc_get_query_trace_log|mysqlnd_qc_set_user_handlers|natcasesort|natsort|' +\n        'ncurses_addch|ncurses_addchnstr|ncurses_addchstr|ncurses_addnstr|ncurses_addstr|ncurses_assume_default_colors|ncurses_attroff|' +\n        'ncurses_attron|ncurses_attrset|ncurses_baudrate|ncurses_beep|ncurses_bkgd|ncurses_bkgdset|ncurses_border|ncurses_bottom_panel|' +\n        'ncurses_can_change_color|ncurses_cbreak|ncurses_clear|ncurses_clrtobot|ncurses_clrtoeol|ncurses_color_content|ncurses_color_set|' +\n        'ncurses_curs_set|ncurses_def_prog_mode|ncurses_def_shell_mode|ncurses_define_key|ncurses_del_panel|ncurses_delay_output|ncurses_delch|' +\n        'ncurses_deleteln|ncurses_delwin|ncurses_doupdate|ncurses_echo|ncurses_echochar|ncurses_end|ncurses_erase|ncurses_erasechar|ncurses_filter|' +\n        'ncurses_flash|ncurses_flushinp|ncurses_getch|ncurses_getmaxyx|ncurses_getmouse|ncurses_getyx|ncurses_halfdelay|ncurses_has_colors|' +\n        'ncurses_has_ic|ncurses_has_il|ncurses_has_key|ncurses_hide_panel|ncurses_hline|ncurses_inch|ncurses_init|ncurses_init_color|' +\n        'ncurses_init_pair|ncurses_insch|ncurses_insdelln|ncurses_insertln|ncurses_insstr|ncurses_instr|ncurses_isendwin|ncurses_keyok|' +\n        'ncurses_keypad|ncurses_killchar|ncurses_longname|ncurses_meta|ncurses_mouse_trafo|ncurses_mouseinterval|ncurses_mousemask|ncurses_move|' +\n        'ncurses_move_panel|ncurses_mvaddch|ncurses_mvaddchnstr|ncurses_mvaddchstr|ncurses_mvaddnstr|ncurses_mvaddstr|ncurses_mvcur|' +\n        'ncurses_mvdelch|ncurses_mvgetch|ncurses_mvhline|ncurses_mvinch|ncurses_mvvline|ncurses_mvwaddstr|ncurses_napms|ncurses_new_panel|' +\n        'ncurses_newpad|ncurses_newwin|ncurses_nl|ncurses_nocbreak|ncurses_noecho|ncurses_nonl|ncurses_noqiflush|ncurses_noraw|' +\n        'ncurses_pair_content|ncurses_panel_above|ncurses_panel_below|ncurses_panel_window|ncurses_pnoutrefresh|ncurses_prefresh|ncurses_putp|' +\n        'ncurses_qiflush|ncurses_raw|ncurses_refresh|ncurses_replace_panel|ncurses_reset_prog_mode|ncurses_reset_shell_mode|ncurses_resetty|' +\n        'ncurses_savetty|ncurses_scr_dump|ncurses_scr_init|ncurses_scr_restore|ncurses_scr_set|ncurses_scrl|ncurses_show_panel|ncurses_slk_attr|' +\n        'ncurses_slk_attroff|ncurses_slk_attron|ncurses_slk_attrset|ncurses_slk_clear|ncurses_slk_color|ncurses_slk_init|ncurses_slk_noutrefresh|' +\n        'ncurses_slk_refresh|ncurses_slk_restore|ncurses_slk_set|ncurses_slk_touch|ncurses_standend|ncurses_standout|ncurses_start_color|' +\n        'ncurses_termattrs|ncurses_termname|ncurses_timeout|ncurses_top_panel|ncurses_typeahead|ncurses_ungetch|ncurses_ungetmouse|' +\n        'ncurses_update_panels|ncurses_use_default_colors|ncurses_use_env|ncurses_use_extended_names|ncurses_vidattr|ncurses_vline|ncurses_waddch|' +\n        'ncurses_waddstr|ncurses_wattroff|ncurses_wattron|ncurses_wattrset|ncurses_wborder|ncurses_wclear|ncurses_wcolor_set|ncurses_werase|' +\n        'ncurses_wgetch|ncurses_whline|ncurses_wmouse_trafo|ncurses_wmove|ncurses_wnoutrefresh|ncurses_wrefresh|ncurses_wstandend|' +\n        'ncurses_wstandout|ncurses_wvline|newinstance|newinstanceargs|newt_bell|newt_button|newt_button_bar|newt_centered_window|newt_checkbox|' +\n        'newt_checkbox_get_value|newt_checkbox_set_flags|newt_checkbox_set_value|newt_checkbox_tree|newt_checkbox_tree_add_item|' +\n        'newt_checkbox_tree_find_item|newt_checkbox_tree_get_current|newt_checkbox_tree_get_entry_value|newt_checkbox_tree_get_multi_selection|' +\n        'newt_checkbox_tree_get_selection|newt_checkbox_tree_multi|newt_checkbox_tree_set_current|newt_checkbox_tree_set_entry|' +\n        'newt_checkbox_tree_set_entry_value|newt_checkbox_tree_set_width|newt_clear_key_buffer|newt_cls|newt_compact_button|' +\n        'newt_component_add_callback|newt_component_takes_focus|newt_create_grid|newt_cursor_off|newt_cursor_on|newt_delay|newt_draw_form|' +\n        'newt_draw_root_text|newt_entry|newt_entry_get_value|newt_entry_set|newt_entry_set_filter|newt_entry_set_flags|newt_finished|newt_form|' +\n        'newt_form_add_component|newt_form_add_components|newt_form_add_hot_key|newt_form_destroy|newt_form_get_current|newt_form_run|' +\n        'newt_form_set_background|newt_form_set_height|newt_form_set_size|newt_form_set_timer|newt_form_set_width|newt_form_watch_fd|' +\n        'newt_get_screen_size|newt_grid_add_components_to_form|newt_grid_basic_window|newt_grid_free|newt_grid_get_size|newt_grid_h_close_stacked|' +\n        'newt_grid_h_stacked|newt_grid_place|newt_grid_set_field|newt_grid_simple_window|newt_grid_v_close_stacked|newt_grid_v_stacked|' +\n        'newt_grid_wrapped_window|newt_grid_wrapped_window_at|newt_init|newt_label|newt_label_set_text|newt_listbox|newt_listbox_append_entry|' +\n        'newt_listbox_clear|newt_listbox_clear_selection|newt_listbox_delete_entry|newt_listbox_get_current|newt_listbox_get_selection|' +\n        'newt_listbox_insert_entry|newt_listbox_item_count|newt_listbox_select_item|newt_listbox_set_current|newt_listbox_set_current_by_key|' +\n        'newt_listbox_set_data|newt_listbox_set_entry|newt_listbox_set_width|newt_listitem|newt_listitem_get_data|newt_listitem_set|' +\n        'newt_open_window|newt_pop_help_line|newt_pop_window|newt_push_help_line|newt_radio_get_current|newt_radiobutton|newt_redraw_help_line|' +\n        'newt_reflow_text|newt_refresh|newt_resize_screen|newt_resume|newt_run_form|newt_scale|newt_scale_set|newt_scrollbar_set|' +\n        'newt_set_help_callback|newt_set_suspend_callback|newt_suspend|newt_textbox|newt_textbox_get_num_lines|newt_textbox_reflowed|' +\n        'newt_textbox_set_height|newt_textbox_set_text|newt_vertical_scrollbar|newt_wait_for_key|newt_win_choice|newt_win_entries|newt_win_menu|' +\n        'newt_win_message|newt_win_messagev|newt_win_ternary|next|ngettext|nl2br|nl_langinfo|norewinditerator|normalizer|notes_body|notes_copy_db|' +\n        'notes_create_db|notes_create_note|notes_drop_db|notes_find_note|notes_header_info|notes_list_msgs|notes_mark_read|notes_mark_unread|' +\n        'notes_nav_create|notes_search|notes_unread|notes_version|nsapi_request_headers|nsapi_response_headers|nsapi_virtual|nthmac|number_format|' +\n        'numberformatter|oauth|oauth_get_sbs|oauth_urlencode|oauthexception|oauthprovider|ob_clean|ob_deflatehandler|ob_end_clean|ob_end_flush|' +\n        'ob_etaghandler|ob_flush|ob_get_clean|ob_get_contents|ob_get_flush|ob_get_length|ob_get_level|ob_get_status|ob_gzhandler|ob_iconv_handler|' +\n        'ob_implicit_flush|ob_inflatehandler|ob_list_handlers|ob_start|ob_tidyhandler|oci_bind_array_by_name|oci_bind_by_name|oci_cancel|' +\n        'oci_client_version|oci_close|oci_collection_append|oci_collection_assign|oci_collection_element_assign|oci_collection_element_get|' +\n        'oci_collection_free|oci_collection_max|oci_collection_size|oci_collection_trim|oci_commit|oci_connect|oci_define_by_name|oci_error|' +\n        'oci_execute|oci_fetch|oci_fetch_all|oci_fetch_array|oci_fetch_assoc|oci_fetch_object|oci_fetch_row|oci_field_is_null|oci_field_name|' +\n        'oci_field_precision|oci_field_scale|oci_field_size|oci_field_type|oci_field_type_raw|oci_free_statement|oci_internal_debug|oci_lob_append|' +\n        'oci_lob_close|oci_lob_copy|oci_lob_eof|oci_lob_erase|oci_lob_export|oci_lob_flush|oci_lob_free|oci_lob_getbuffering|oci_lob_import|' +\n        'oci_lob_is_equal|oci_lob_load|oci_lob_read|oci_lob_rewind|oci_lob_save|oci_lob_savefile|oci_lob_seek|oci_lob_setbuffering|oci_lob_size|' +\n        'oci_lob_tell|oci_lob_truncate|oci_lob_write|oci_lob_writetemporary|oci_lob_writetofile|oci_new_collection|oci_new_connect|oci_new_cursor|' +\n        'oci_new_descriptor|oci_num_fields|oci_num_rows|oci_parse|oci_password_change|oci_pconnect|oci_result|oci_rollback|oci_server_version|' +\n        'oci_set_action|oci_set_client_identifier|oci_set_client_info|oci_set_edition|oci_set_module_name|oci_set_prefetch|oci_statement_type|' +\n        'ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|' +\n        'ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|' +\n        'ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|' +\n        'ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|' +\n        'ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|' +\n        'octdec|odbc_autocommit|odbc_binmode|odbc_close|odbc_close_all|odbc_columnprivileges|odbc_columns|odbc_commit|odbc_connect|odbc_cursor|' +\n        'odbc_data_source|odbc_do|odbc_error|odbc_errormsg|odbc_exec|odbc_execute|odbc_fetch_array|odbc_fetch_into|odbc_fetch_object|' +\n        'odbc_fetch_row|odbc_field_len|odbc_field_name|odbc_field_num|odbc_field_precision|odbc_field_scale|odbc_field_type|odbc_foreignkeys|' +\n        'odbc_free_result|odbc_gettypeinfo|odbc_longreadlen|odbc_next_result|odbc_num_fields|odbc_num_rows|odbc_pconnect|odbc_prepare|' +\n        'odbc_primarykeys|odbc_procedurecolumns|odbc_procedures|odbc_result|odbc_result_all|odbc_rollback|odbc_setoption|odbc_specialcolumns|' +\n        'odbc_statistics|odbc_tableprivileges|odbc_tables|openal_buffer_create|openal_buffer_data|openal_buffer_destroy|openal_buffer_get|' +\n        'openal_buffer_loadwav|openal_context_create|openal_context_current|openal_context_destroy|openal_context_process|openal_context_suspend|' +\n        'openal_device_close|openal_device_open|openal_listener_get|openal_listener_set|openal_source_create|openal_source_destroy|' +\n        'openal_source_get|openal_source_pause|openal_source_play|openal_source_rewind|openal_source_set|openal_source_stop|openal_stream|opendir|' +\n        'openlog|openssl_cipher_iv_length|openssl_csr_export|openssl_csr_export_to_file|openssl_csr_get_public_key|openssl_csr_get_subject|' +\n        'openssl_csr_new|openssl_csr_sign|openssl_decrypt|openssl_dh_compute_key|openssl_digest|openssl_encrypt|openssl_error_string|' +\n        'openssl_free_key|openssl_get_cipher_methods|openssl_get_md_methods|openssl_get_privatekey|openssl_get_publickey|openssl_open|' +\n        'openssl_pkcs12_export|openssl_pkcs12_export_to_file|openssl_pkcs12_read|openssl_pkcs7_decrypt|openssl_pkcs7_encrypt|openssl_pkcs7_sign|' +\n        'openssl_pkcs7_verify|openssl_pkey_export|openssl_pkey_export_to_file|openssl_pkey_free|openssl_pkey_get_details|openssl_pkey_get_private|' +\n        'openssl_pkey_get_public|openssl_pkey_new|openssl_private_decrypt|openssl_private_encrypt|openssl_public_decrypt|openssl_public_encrypt|' +\n        'openssl_random_pseudo_bytes|openssl_seal|openssl_sign|openssl_verify|openssl_x509_check_private_key|openssl_x509_checkpurpose|' +\n        'openssl_x509_export|openssl_x509_export_to_file|openssl_x509_free|openssl_x509_parse|openssl_x509_read|ord|outeriterator|' +\n        'outofboundsexception|outofrangeexception|output_add_rewrite_var|output_reset_rewrite_vars|overflowexception|overload|override_function|' +\n        'ovrimos_close|ovrimos_commit|ovrimos_connect|ovrimos_cursor|ovrimos_exec|ovrimos_execute|ovrimos_fetch_into|ovrimos_fetch_row|' +\n        'ovrimos_field_len|ovrimos_field_name|ovrimos_field_num|ovrimos_field_type|ovrimos_free_result|ovrimos_longreadlen|ovrimos_num_fields|' +\n        'ovrimos_num_rows|ovrimos_prepare|ovrimos_result|ovrimos_result_all|ovrimos_rollback|pack|parentiterator|parse_ini_file|parse_ini_string|' +\n        'parse_str|parse_url|parsekit_compile_file|parsekit_compile_string|parsekit_func_arginfo|passthru|pathinfo|pclose|pcntl_alarm|pcntl_exec|' +\n        'pcntl_fork|pcntl_getpriority|pcntl_setpriority|pcntl_signal|pcntl_signal_dispatch|pcntl_sigprocmask|pcntl_sigtimedwait|pcntl_sigwaitinfo|' +\n        'pcntl_wait|pcntl_waitpid|pcntl_wexitstatus|pcntl_wifexited|pcntl_wifsignaled|pcntl_wifstopped|pcntl_wstopsig|pcntl_wtermsig|' +\n        'pdf_activate_item|pdf_add_annotation|pdf_add_bookmark|pdf_add_launchlink|pdf_add_locallink|pdf_add_nameddest|pdf_add_note|pdf_add_outline|' +\n        'pdf_add_pdflink|pdf_add_table_cell|pdf_add_textflow|pdf_add_thumbnail|pdf_add_weblink|pdf_arc|pdf_arcn|pdf_attach_file|pdf_begin_document|' +\n        'pdf_begin_font|pdf_begin_glyph|pdf_begin_item|pdf_begin_layer|pdf_begin_page|pdf_begin_page_ext|pdf_begin_pattern|pdf_begin_template|' +\n        'pdf_begin_template_ext|pdf_circle|pdf_clip|pdf_close|pdf_close_image|pdf_close_pdi|pdf_close_pdi_page|pdf_closepath|' +\n        'pdf_closepath_fill_stroke|pdf_closepath_stroke|pdf_concat|pdf_continue_text|pdf_create_3dview|pdf_create_action|pdf_create_annotation|' +\n        'pdf_create_bookmark|pdf_create_field|pdf_create_fieldgroup|pdf_create_gstate|pdf_create_pvf|pdf_create_textflow|pdf_curveto|' +\n        'pdf_define_layer|pdf_delete|pdf_delete_pvf|pdf_delete_table|pdf_delete_textflow|pdf_encoding_set_char|pdf_end_document|pdf_end_font|' +\n        'pdf_end_glyph|pdf_end_item|pdf_end_layer|pdf_end_page|pdf_end_page_ext|pdf_end_pattern|pdf_end_template|pdf_endpath|pdf_fill|' +\n        'pdf_fill_imageblock|pdf_fill_pdfblock|pdf_fill_stroke|pdf_fill_textblock|pdf_findfont|pdf_fit_image|pdf_fit_pdi_page|pdf_fit_table|' +\n        'pdf_fit_textflow|pdf_fit_textline|pdf_get_apiname|pdf_get_buffer|pdf_get_errmsg|pdf_get_errnum|pdf_get_font|pdf_get_fontname|' +\n        'pdf_get_fontsize|pdf_get_image_height|pdf_get_image_width|pdf_get_majorversion|pdf_get_minorversion|pdf_get_parameter|' +\n        'pdf_get_pdi_parameter|pdf_get_pdi_value|pdf_get_value|pdf_info_font|pdf_info_matchbox|pdf_info_table|pdf_info_textflow|pdf_info_textline|' +\n        'pdf_initgraphics|pdf_lineto|pdf_load_3ddata|pdf_load_font|pdf_load_iccprofile|pdf_load_image|pdf_makespotcolor|pdf_moveto|pdf_new|' +\n        'pdf_open_ccitt|pdf_open_file|pdf_open_gif|pdf_open_image|pdf_open_image_file|pdf_open_jpeg|pdf_open_memory_image|pdf_open_pdi|' +\n        'pdf_open_pdi_document|pdf_open_pdi_page|pdf_open_tiff|pdf_pcos_get_number|pdf_pcos_get_stream|pdf_pcos_get_string|pdf_place_image|' +\n        'pdf_place_pdi_page|pdf_process_pdi|pdf_rect|pdf_restore|pdf_resume_page|pdf_rotate|pdf_save|pdf_scale|pdf_set_border_color|' +\n        'pdf_set_border_dash|pdf_set_border_style|pdf_set_char_spacing|pdf_set_duration|pdf_set_gstate|pdf_set_horiz_scaling|pdf_set_info|' +\n        'pdf_set_info_author|pdf_set_info_creator|pdf_set_info_keywords|pdf_set_info_subject|pdf_set_info_title|pdf_set_layer_dependency|' +\n        'pdf_set_leading|pdf_set_parameter|pdf_set_text_matrix|pdf_set_text_pos|pdf_set_text_rendering|pdf_set_text_rise|pdf_set_value|' +\n        'pdf_set_word_spacing|pdf_setcolor|pdf_setdash|pdf_setdashpattern|pdf_setflat|pdf_setfont|pdf_setgray|pdf_setgray_fill|pdf_setgray_stroke|' +\n        'pdf_setlinecap|pdf_setlinejoin|pdf_setlinewidth|pdf_setmatrix|pdf_setmiterlimit|pdf_setpolydash|pdf_setrgbcolor|pdf_setrgbcolor_fill|' +\n        'pdf_setrgbcolor_stroke|pdf_shading|pdf_shading_pattern|pdf_shfill|pdf_show|pdf_show_boxed|pdf_show_xy|pdf_skew|pdf_stringwidth|pdf_stroke|' +\n        'pdf_suspend_page|pdf_translate|pdf_utf16_to_utf8|pdf_utf32_to_utf16|pdf_utf8_to_utf16|pdo|pdo_cubrid_schema|pdo_pgsqllobcreate|' +\n        'pdo_pgsqllobopen|pdo_pgsqllobunlink|pdo_sqlitecreateaggregate|pdo_sqlitecreatefunction|pdoexception|pdostatement|pfsockopen|' +\n        'pg_affected_rows|pg_cancel_query|pg_client_encoding|pg_close|pg_connect|pg_connection_busy|pg_connection_reset|pg_connection_status|' +\n        'pg_convert|pg_copy_from|pg_copy_to|pg_dbname|pg_delete|pg_end_copy|pg_escape_bytea|pg_escape_string|pg_execute|pg_fetch_all|' +\n        'pg_fetch_all_columns|pg_fetch_array|pg_fetch_assoc|pg_fetch_object|pg_fetch_result|pg_fetch_row|pg_field_is_null|pg_field_name|' +\n        'pg_field_num|pg_field_prtlen|pg_field_size|pg_field_table|pg_field_type|pg_field_type_oid|pg_free_result|pg_get_notify|pg_get_pid|' +\n        'pg_get_result|pg_host|pg_insert|pg_last_error|pg_last_notice|pg_last_oid|pg_lo_close|pg_lo_create|pg_lo_export|pg_lo_import|pg_lo_open|' +\n        'pg_lo_read|pg_lo_read_all|pg_lo_seek|pg_lo_tell|pg_lo_unlink|pg_lo_write|pg_meta_data|pg_num_fields|pg_num_rows|pg_options|' +\n        'pg_parameter_status|pg_pconnect|pg_ping|pg_port|pg_prepare|pg_put_line|pg_query|pg_query_params|pg_result_error|pg_result_error_field|' +\n        'pg_result_seek|pg_result_status|pg_select|pg_send_execute|pg_send_prepare|pg_send_query|pg_send_query_params|pg_set_client_encoding|' +\n        'pg_set_error_verbosity|pg_trace|pg_transaction_status|pg_tty|pg_unescape_bytea|pg_untrace|pg_update|pg_version|php_check_syntax|' +\n        'php_ini_loaded_file|php_ini_scanned_files|php_logo_guid|php_sapi_name|php_strip_whitespace|php_uname|phpcredits|phpinfo|phpversion|pi|' +\n        'png2wbmp|popen|pos|posix_access|posix_ctermid|posix_errno|posix_get_last_error|posix_getcwd|posix_getegid|posix_geteuid|posix_getgid|' +\n        'posix_getgrgid|posix_getgrnam|posix_getgroups|posix_getlogin|posix_getpgid|posix_getpgrp|posix_getpid|posix_getppid|posix_getpwnam|' +\n        'posix_getpwuid|posix_getrlimit|posix_getsid|posix_getuid|posix_initgroups|posix_isatty|posix_kill|posix_mkfifo|posix_mknod|posix_setegid|' +\n        'posix_seteuid|posix_setgid|posix_setpgid|posix_setsid|posix_setuid|posix_strerror|posix_times|posix_ttyname|posix_uname|pow|preg_filter|' +\n        'preg_grep|preg_last_error|preg_match|preg_match_all|preg_quote|preg_replace|preg_replace_callback|preg_split|prev|print|print_r|' +\n        'printer_abort|printer_close|printer_create_brush|printer_create_dc|printer_create_font|printer_create_pen|printer_delete_brush|' +\n        'printer_delete_dc|printer_delete_font|printer_delete_pen|printer_draw_bmp|printer_draw_chord|printer_draw_elipse|printer_draw_line|' +\n        'printer_draw_pie|printer_draw_rectangle|printer_draw_roundrect|printer_draw_text|printer_end_doc|printer_end_page|printer_get_option|' +\n        'printer_list|printer_logical_fontheight|printer_open|printer_select_brush|printer_select_font|printer_select_pen|printer_set_option|' +\n        'printer_start_doc|printer_start_page|printer_write|printf|proc_close|proc_get_status|proc_nice|proc_open|proc_terminate|property_exists|' +\n        'ps_add_bookmark|ps_add_launchlink|ps_add_locallink|ps_add_note|ps_add_pdflink|ps_add_weblink|ps_arc|ps_arcn|ps_begin_page|' +\n        'ps_begin_pattern|ps_begin_template|ps_circle|ps_clip|ps_close|ps_close_image|ps_closepath|ps_closepath_stroke|ps_continue_text|ps_curveto|' +\n        'ps_delete|ps_end_page|ps_end_pattern|ps_end_template|ps_fill|ps_fill_stroke|ps_findfont|ps_get_buffer|ps_get_parameter|ps_get_value|' +\n        'ps_hyphenate|ps_include_file|ps_lineto|ps_makespotcolor|ps_moveto|ps_new|ps_open_file|ps_open_image|ps_open_image_file|' +\n        'ps_open_memory_image|ps_place_image|ps_rect|ps_restore|ps_rotate|ps_save|ps_scale|ps_set_border_color|ps_set_border_dash|' +\n        'ps_set_border_style|ps_set_info|ps_set_parameter|ps_set_text_pos|ps_set_value|ps_setcolor|ps_setdash|ps_setflat|ps_setfont|ps_setgray|' +\n        'ps_setlinecap|ps_setlinejoin|ps_setlinewidth|ps_setmiterlimit|ps_setoverprintmode|ps_setpolydash|ps_shading|ps_shading_pattern|ps_shfill|' +\n        'ps_show|ps_show2|ps_show_boxed|ps_show_xy|ps_show_xy2|ps_string_geometry|ps_stringwidth|ps_stroke|ps_symbol|ps_symbol_name|' +\n        'ps_symbol_width|ps_translate|pspell_add_to_personal|pspell_add_to_session|pspell_check|pspell_clear_session|pspell_config_create|' +\n        'pspell_config_data_dir|pspell_config_dict_dir|pspell_config_ignore|pspell_config_mode|pspell_config_personal|pspell_config_repl|' +\n        'pspell_config_runtogether|pspell_config_save_repl|pspell_new|pspell_new_config|pspell_new_personal|pspell_save_wordlist|' +\n        'pspell_store_replacement|pspell_suggest|putenv|px_close|px_create_fp|px_date2string|px_delete|px_delete_record|px_get_field|px_get_info|' +\n        'px_get_parameter|px_get_record|px_get_schema|px_get_value|px_insert_record|px_new|px_numfields|px_numrecords|px_open_fp|px_put_record|' +\n        'px_retrieve_record|px_set_blob_file|px_set_parameter|px_set_tablename|px_set_targetencoding|px_set_value|px_timestamp2string|' +\n        'px_update_record|qdom_error|qdom_tree|quoted_printable_decode|quoted_printable_encode|quotemeta|rad2deg|radius_acct_open|' +\n        'radius_add_server|radius_auth_open|radius_close|radius_config|radius_create_request|radius_cvt_addr|radius_cvt_int|radius_cvt_string|' +\n        'radius_demangle|radius_demangle_mppe_key|radius_get_attr|radius_get_vendor_attr|radius_put_addr|radius_put_attr|radius_put_int|' +\n        'radius_put_string|radius_put_vendor_addr|radius_put_vendor_attr|radius_put_vendor_int|radius_put_vendor_string|' +\n        'radius_request_authenticator|radius_send_request|radius_server_secret|radius_strerror|rand|range|rangeexception|rar_wrapper_cache_stats|' +\n        'rararchive|rarentry|rarexception|rawurldecode|rawurlencode|read_exif_data|readdir|readfile|readgzfile|readline|readline_add_history|' +\n        'readline_callback_handler_install|readline_callback_handler_remove|readline_callback_read_char|readline_clear_history|' +\n        'readline_completion_function|readline_info|readline_list_history|readline_on_new_line|readline_read_history|readline_redisplay|' +\n        'readline_write_history|readlink|realpath|realpath_cache_get|realpath_cache_size|recode|recode_file|recode_string|recursivearrayiterator|' +\n        'recursivecachingiterator|recursivecallbackfilteriterator|recursivedirectoryiterator|recursivefilteriterator|recursiveiterator|' +\n        'recursiveiteratoriterator|recursiveregexiterator|recursivetreeiterator|reflection|reflectionclass|reflectionexception|reflectionextension|' +\n        'reflectionfunction|reflectionfunctionabstract|reflectionmethod|reflectionobject|reflectionparameter|reflectionproperty|reflector|' +\n        'regexiterator|register_shutdown_function|register_tick_function|rename|rename_function|require|require_once|reset|resetValue|' +\n        'resourcebundle|restore_error_handler|restore_exception_handler|restore_include_path|return|rewind|rewinddir|rmdir|round|rpm_close|' +\n        'rpm_get_tag|rpm_is_valid|rpm_open|rpm_version|rrd_create|rrd_error|rrd_fetch|rrd_first|rrd_graph|rrd_info|rrd_last|rrd_lastupdate|' +\n        'rrd_restore|rrd_tune|rrd_update|rrd_xport|rrdcreator|rrdgraph|rrdupdater|rsort|rtrim|runkit_class_adopt|runkit_class_emancipate|' +\n        'runkit_constant_add|runkit_constant_redefine|runkit_constant_remove|runkit_function_add|runkit_function_copy|runkit_function_redefine|' +\n        'runkit_function_remove|runkit_function_rename|runkit_import|runkit_lint|runkit_lint_file|runkit_method_add|runkit_method_copy|' +\n        'runkit_method_redefine|runkit_method_remove|runkit_method_rename|runkit_return_value_used|runkit_sandbox_output_handler|' +\n        'runkit_superglobals|runtimeexception|samconnection_commit|samconnection_connect|samconnection_constructor|samconnection_disconnect|' +\n        'samconnection_errno|samconnection_error|samconnection_isconnected|samconnection_peek|samconnection_peekall|samconnection_receive|' +\n        'samconnection_remove|samconnection_rollback|samconnection_send|samconnection_setDebug|samconnection_subscribe|samconnection_unsubscribe|' +\n        'sammessage_body|sammessage_constructor|sammessage_header|sca_createdataobject|sca_getservice|sca_localproxy_createdataobject|' +\n        'sca_soapproxy_createdataobject|scandir|sdo_das_changesummary_beginlogging|sdo_das_changesummary_endlogging|' +\n        'sdo_das_changesummary_getchangeddataobjects|sdo_das_changesummary_getchangetype|sdo_das_changesummary_getoldcontainer|' +\n        'sdo_das_changesummary_getoldvalues|sdo_das_changesummary_islogging|sdo_das_datafactory_addpropertytotype|sdo_das_datafactory_addtype|' +\n        'sdo_das_datafactory_getdatafactory|sdo_das_dataobject_getchangesummary|sdo_das_relational_applychanges|sdo_das_relational_construct|' +\n        'sdo_das_relational_createrootdataobject|sdo_das_relational_executepreparedquery|sdo_das_relational_executequery|' +\n        'sdo_das_setting_getlistindex|sdo_das_setting_getpropertyindex|sdo_das_setting_getpropertyname|sdo_das_setting_getvalue|' +\n        'sdo_das_setting_isset|sdo_das_xml_addtypes|sdo_das_xml_create|sdo_das_xml_createdataobject|sdo_das_xml_createdocument|' +\n        'sdo_das_xml_document_getrootdataobject|sdo_das_xml_document_getrootelementname|sdo_das_xml_document_getrootelementuri|' +\n        'sdo_das_xml_document_setencoding|sdo_das_xml_document_setxmldeclaration|sdo_das_xml_document_setxmlversion|sdo_das_xml_loadfile|' +\n        'sdo_das_xml_loadstring|sdo_das_xml_savefile|sdo_das_xml_savestring|sdo_datafactory_create|sdo_dataobject_clear|' +\n        'sdo_dataobject_createdataobject|sdo_dataobject_getcontainer|sdo_dataobject_getsequence|sdo_dataobject_gettypename|' +\n        'sdo_dataobject_gettypenamespaceuri|sdo_exception_getcause|sdo_list_insert|sdo_model_property_getcontainingtype|' +\n        'sdo_model_property_getdefault|sdo_model_property_getname|sdo_model_property_gettype|sdo_model_property_iscontainment|' +\n        'sdo_model_property_ismany|sdo_model_reflectiondataobject_construct|sdo_model_reflectiondataobject_export|' +\n        'sdo_model_reflectiondataobject_getcontainmentproperty|sdo_model_reflectiondataobject_getinstanceproperties|' +\n        'sdo_model_reflectiondataobject_gettype|sdo_model_type_getbasetype|sdo_model_type_getname|sdo_model_type_getnamespaceuri|' +\n        'sdo_model_type_getproperties|sdo_model_type_getproperty|sdo_model_type_isabstracttype|sdo_model_type_isdatatype|sdo_model_type_isinstance|' +\n        'sdo_model_type_isopentype|sdo_model_type_issequencedtype|sdo_sequence_getproperty|sdo_sequence_insert|sdo_sequence_move|seekableiterator|' +\n        'sem_acquire|sem_get|sem_release|sem_remove|serializable|serialize|session_cache_expire|session_cache_limiter|session_commit|' +\n        'session_decode|session_destroy|session_encode|session_get_cookie_params|session_id|session_is_registered|session_module_name|session_name|' +\n        'session_pgsql_add_error|session_pgsql_get_error|session_pgsql_get_field|session_pgsql_reset|session_pgsql_set_field|session_pgsql_status|' +\n        'session_regenerate_id|session_register|session_save_path|session_set_cookie_params|session_set_save_handler|session_start|' +\n        'session_unregister|session_unset|session_write_close|setCounterClass|set_error_handler|set_exception_handler|set_file_buffer|' +\n        'set_include_path|set_magic_quotes_runtime|set_socket_blocking|set_time_limit|setcookie|setlocale|setproctitle|setrawcookie|' +\n        'setstaticpropertyvalue|setthreadtitle|settype|sha1|sha1_file|shell_exec|shm_attach|shm_detach|shm_get_var|shm_has_var|shm_put_var|' +\n        'shm_remove|shm_remove_var|shmop_close|shmop_delete|shmop_open|shmop_read|shmop_size|shmop_write|show_source|shuffle|signeurlpaiement|' +\n        'similar_text|simplexml_import_dom|simplexml_load_file|simplexml_load_string|simplexmlelement|simplexmliterator|sin|sinh|sizeof|sleep|snmp|' +\n        'snmp2_get|snmp2_getnext|snmp2_real_walk|snmp2_set|snmp2_walk|snmp3_get|snmp3_getnext|snmp3_real_walk|snmp3_set|snmp3_walk|' +\n        'snmp_get_quick_print|snmp_get_valueretrieval|snmp_read_mib|snmp_set_enum_print|snmp_set_oid_numeric_print|snmp_set_oid_output_format|' +\n        'snmp_set_quick_print|snmp_set_valueretrieval|snmpget|snmpgetnext|snmprealwalk|snmpset|snmpwalk|snmpwalkoid|soapclient|soapfault|' +\n        'soapheader|soapparam|soapserver|soapvar|socket_accept|socket_bind|socket_clear_error|socket_close|socket_connect|socket_create|' +\n        'socket_create_listen|socket_create_pair|socket_get_option|socket_get_status|socket_getpeername|socket_getsockname|socket_last_error|' +\n        'socket_listen|socket_read|socket_recv|socket_recvfrom|socket_select|socket_send|socket_sendto|socket_set_block|socket_set_blocking|' +\n        'socket_set_nonblock|socket_set_option|socket_set_timeout|socket_shutdown|socket_strerror|socket_write|solr_get_version|solrclient|' +\n        'solrclientexception|solrdocument|solrdocumentfield|solrexception|solrgenericresponse|solrillegalargumentexception|' +\n        'solrillegaloperationexception|solrinputdocument|solrmodifiableparams|solrobject|solrparams|solrpingresponse|solrquery|solrqueryresponse|' +\n        'solrresponse|solrupdateresponse|solrutils|sort|soundex|sphinxclient|spl_autoload|spl_autoload_call|spl_autoload_extensions|' +\n        'spl_autoload_functions|spl_autoload_register|spl_autoload_unregister|spl_classes|spl_object_hash|splbool|spldoublylinkedlist|splenum|' +\n        'splfileinfo|splfileobject|splfixedarray|splfloat|splheap|splint|split|spliti|splmaxheap|splminheap|splobjectstorage|splobserver|' +\n        'splpriorityqueue|splqueue|splstack|splstring|splsubject|spltempfileobject|spoofchecker|sprintf|sql_regcase|sqlite3|sqlite3result|' +\n        'sqlite3stmt|sqlite_array_query|sqlite_busy_timeout|sqlite_changes|sqlite_close|sqlite_column|sqlite_create_aggregate|' +\n        'sqlite_create_function|sqlite_current|sqlite_error_string|sqlite_escape_string|sqlite_exec|sqlite_factory|sqlite_fetch_all|' +\n        'sqlite_fetch_array|sqlite_fetch_column_types|sqlite_fetch_object|sqlite_fetch_single|sqlite_fetch_string|sqlite_field_name|' +\n        'sqlite_has_more|sqlite_has_prev|sqlite_key|sqlite_last_error|sqlite_last_insert_rowid|sqlite_libencoding|sqlite_libversion|sqlite_next|' +\n        'sqlite_num_fields|sqlite_num_rows|sqlite_open|sqlite_popen|sqlite_prev|sqlite_query|sqlite_rewind|sqlite_seek|sqlite_single_query|' +\n        'sqlite_udf_decode_binary|sqlite_udf_encode_binary|sqlite_unbuffered_query|sqlite_valid|sqrt|srand|sscanf|ssdeep_fuzzy_compare|' +\n        'ssdeep_fuzzy_hash|ssdeep_fuzzy_hash_filename|ssh2_auth_hostbased_file|ssh2_auth_none|ssh2_auth_password|ssh2_auth_pubkey_file|' +\n        'ssh2_connect|ssh2_exec|ssh2_fetch_stream|ssh2_fingerprint|ssh2_methods_negotiated|ssh2_publickey_add|ssh2_publickey_init|' +\n        'ssh2_publickey_list|ssh2_publickey_remove|ssh2_scp_recv|ssh2_scp_send|ssh2_sftp|ssh2_sftp_lstat|ssh2_sftp_mkdir|ssh2_sftp_readlink|' +\n        'ssh2_sftp_realpath|ssh2_sftp_rename|ssh2_sftp_rmdir|ssh2_sftp_stat|ssh2_sftp_symlink|ssh2_sftp_unlink|ssh2_shell|ssh2_tunnel|stat|' +\n        'stats_absolute_deviation|stats_cdf_beta|stats_cdf_binomial|stats_cdf_cauchy|stats_cdf_chisquare|stats_cdf_exponential|stats_cdf_f|' +\n        'stats_cdf_gamma|stats_cdf_laplace|stats_cdf_logistic|stats_cdf_negative_binomial|stats_cdf_noncentral_chisquare|stats_cdf_noncentral_f|' +\n        'stats_cdf_poisson|stats_cdf_t|stats_cdf_uniform|stats_cdf_weibull|stats_covariance|stats_den_uniform|stats_dens_beta|stats_dens_cauchy|' +\n        'stats_dens_chisquare|stats_dens_exponential|stats_dens_f|stats_dens_gamma|stats_dens_laplace|stats_dens_logistic|' +\n        'stats_dens_negative_binomial|stats_dens_normal|stats_dens_pmf_binomial|stats_dens_pmf_hypergeometric|stats_dens_pmf_poisson|stats_dens_t|' +\n        'stats_dens_weibull|stats_harmonic_mean|stats_kurtosis|stats_rand_gen_beta|stats_rand_gen_chisquare|stats_rand_gen_exponential|' +\n        'stats_rand_gen_f|stats_rand_gen_funiform|stats_rand_gen_gamma|stats_rand_gen_ibinomial|stats_rand_gen_ibinomial_negative|' +\n        'stats_rand_gen_int|stats_rand_gen_ipoisson|stats_rand_gen_iuniform|stats_rand_gen_noncenral_chisquare|stats_rand_gen_noncentral_f|' +\n        'stats_rand_gen_noncentral_t|stats_rand_gen_normal|stats_rand_gen_t|stats_rand_get_seeds|stats_rand_phrase_to_seeds|stats_rand_ranf|' +\n        'stats_rand_setall|stats_skew|stats_standard_deviation|stats_stat_binomial_coef|stats_stat_correlation|stats_stat_gennch|' +\n        'stats_stat_independent_t|stats_stat_innerproduct|stats_stat_noncentral_t|stats_stat_paired_t|stats_stat_percentile|stats_stat_powersum|' +\n        'stats_variance|stomp|stomp_connect_error|stomp_version|stompexception|stompframe|str_getcsv|str_ireplace|str_pad|str_repeat|str_replace|' +\n        'str_rot13|str_shuffle|str_split|str_word_count|strcasecmp|strchr|strcmp|strcoll|strcspn|stream_bucket_append|stream_bucket_make_writeable|' +\n        'stream_bucket_new|stream_bucket_prepend|stream_context_create|stream_context_get_default|stream_context_get_options|' +\n        'stream_context_get_params|stream_context_set_default|stream_context_set_option|stream_context_set_params|stream_copy_to_stream|' +\n        'stream_encoding|stream_filter_append|stream_filter_prepend|stream_filter_register|stream_filter_remove|stream_get_contents|' +\n        'stream_get_filters|stream_get_line|stream_get_meta_data|stream_get_transports|stream_get_wrappers|stream_is_local|' +\n        'stream_notification_callback|stream_register_wrapper|stream_resolve_include_path|stream_select|stream_set_blocking|stream_set_read_buffer|' +\n        'stream_set_timeout|stream_set_write_buffer|stream_socket_accept|stream_socket_client|stream_socket_enable_crypto|stream_socket_get_name|' +\n        'stream_socket_pair|stream_socket_recvfrom|stream_socket_sendto|stream_socket_server|stream_socket_shutdown|stream_supports_lock|' +\n        'stream_wrapper_register|stream_wrapper_restore|stream_wrapper_unregister|streamwrapper|strftime|strip_tags|stripcslashes|stripos|' +\n        'stripslashes|stristr|strlen|strnatcasecmp|strnatcmp|strncasecmp|strncmp|strpbrk|strpos|strptime|strrchr|strrev|strripos|strrpos|strspn|' +\n        'strstr|strtok|strtolower|strtotime|strtoupper|strtr|strval|substr|substr_compare|substr_count|substr_replace|svm|svmmodel|svn_add|' +\n        'svn_auth_get_parameter|svn_auth_set_parameter|svn_blame|svn_cat|svn_checkout|svn_cleanup|svn_client_version|svn_commit|svn_delete|' +\n        'svn_diff|svn_export|svn_fs_abort_txn|svn_fs_apply_text|svn_fs_begin_txn2|svn_fs_change_node_prop|svn_fs_check_path|' +\n        'svn_fs_contents_changed|svn_fs_copy|svn_fs_delete|svn_fs_dir_entries|svn_fs_file_contents|svn_fs_file_length|svn_fs_is_dir|svn_fs_is_file|' +\n        'svn_fs_make_dir|svn_fs_make_file|svn_fs_node_created_rev|svn_fs_node_prop|svn_fs_props_changed|svn_fs_revision_prop|svn_fs_revision_root|' +\n        'svn_fs_txn_root|svn_fs_youngest_rev|svn_import|svn_log|svn_ls|svn_mkdir|svn_repos_create|svn_repos_fs|svn_repos_fs_begin_txn_for_commit|' +\n        'svn_repos_fs_commit_txn|svn_repos_hotcopy|svn_repos_open|svn_repos_recover|svn_revert|svn_status|svn_update|swf_actiongeturl|' +\n        'swf_actiongotoframe|swf_actiongotolabel|swf_actionnextframe|swf_actionplay|swf_actionprevframe|swf_actionsettarget|swf_actionstop|' +\n        'swf_actiontogglequality|swf_actionwaitforframe|swf_addbuttonrecord|swf_addcolor|swf_closefile|swf_definebitmap|swf_definefont|' +\n        'swf_defineline|swf_definepoly|swf_definerect|swf_definetext|swf_endbutton|swf_enddoaction|swf_endshape|swf_endsymbol|swf_fontsize|' +\n        'swf_fontslant|swf_fonttracking|swf_getbitmapinfo|swf_getfontinfo|swf_getframe|swf_labelframe|swf_lookat|swf_modifyobject|swf_mulcolor|' +\n        'swf_nextid|swf_oncondition|swf_openfile|swf_ortho|swf_ortho2|swf_perspective|swf_placeobject|swf_polarview|swf_popmatrix|swf_posround|' +\n        'swf_pushmatrix|swf_removeobject|swf_rotate|swf_scale|swf_setfont|swf_setframe|swf_shapearc|swf_shapecurveto|swf_shapecurveto3|' +\n        'swf_shapefillbitmapclip|swf_shapefillbitmaptile|swf_shapefilloff|swf_shapefillsolid|swf_shapelinesolid|swf_shapelineto|swf_shapemoveto|' +\n        'swf_showframe|swf_startbutton|swf_startdoaction|swf_startshape|swf_startsymbol|swf_textwidth|swf_translate|swf_viewport|swfaction|' +\n        'swfbitmap|swfbutton|swfdisplayitem|swffill|swffont|swffontchar|swfgradient|swfmorph|swfmovie|swfprebuiltclip|swfshape|swfsound|' +\n        'swfsoundinstance|swfsprite|swftext|swftextfield|swfvideostream|swish_construct|swish_getmetalist|swish_getpropertylist|swish_prepare|' +\n        'swish_query|swishresult_getmetalist|swishresult_stem|swishresults_getparsedwords|swishresults_getremovedstopwords|swishresults_nextresult|' +\n        'swishresults_seekresult|swishsearch_execute|swishsearch_resetlimit|swishsearch_setlimit|swishsearch_setphrasedelimiter|' +\n        'swishsearch_setsort|swishsearch_setstructure|sybase_affected_rows|sybase_close|sybase_connect|sybase_data_seek|' +\n        'sybase_deadlock_retry_count|sybase_fetch_array|sybase_fetch_assoc|sybase_fetch_field|sybase_fetch_object|sybase_fetch_row|' +\n        'sybase_field_seek|sybase_free_result|sybase_get_last_message|sybase_min_client_severity|sybase_min_error_severity|' +\n        'sybase_min_message_severity|sybase_min_server_severity|sybase_num_fields|sybase_num_rows|sybase_pconnect|sybase_query|sybase_result|' +\n        'sybase_select_db|sybase_set_message_handler|sybase_unbuffered_query|symlink|sys_get_temp_dir|sys_getloadavg|syslog|system|tag|tan|tanh|' +\n        'tcpwrap_check|tempnam|textdomain|tidy|tidy_access_count|tidy_config_count|tidy_diagnose|tidy_error_count|tidy_get_error_buffer|' +\n        'tidy_get_output|tidy_load_config|tidy_reset_config|tidy_save_config|tidy_set_encoding|tidy_setopt|tidy_warning_count|tidynode|time|' +\n        'time_nanosleep|time_sleep_until|timezone_abbreviations_list|timezone_identifiers_list|timezone_location_get|timezone_name_from_abbr|' +\n        'timezone_name_get|timezone_offset_get|timezone_open|timezone_transitions_get|timezone_version_get|tmpfile|token_get_all|token_name|' +\n        'tokyotyrant|tokyotyrantquery|tokyotyranttable|tostring|tostring|touch|trait_exists|transliterator|traversable|trigger_error|trim|uasort|ucfirst|' +\n        'ucwords|udm_add_search_limit|udm_alloc_agent|udm_alloc_agent_array|udm_api_version|udm_cat_list|udm_cat_path|udm_check_charset|' +\n        'udm_check_stored|udm_clear_search_limits|udm_close_stored|udm_crc32|udm_errno|udm_error|udm_find|udm_free_agent|udm_free_ispell_data|' +\n        'udm_free_res|udm_get_doc_count|udm_get_res_field|udm_get_res_param|udm_hash32|udm_load_ispell_data|udm_open_stored|udm_set_agent_param|' +\n        'uksort|umask|underflowexception|unexpectedvalueexception|uniqid|unixtojd|unlink|unpack|unregister_tick_function|unserialize|unset|' +\n        'urldecode|urlencode|use_soap_error_handler|user_error|usleep|usort|utf8_decode|utf8_encode|v8js|v8jsexception|var_dump|var_export|variant|' +\n        'variant_abs|variant_add|variant_and|variant_cast|variant_cat|variant_cmp|variant_date_from_timestamp|variant_date_to_timestamp|' +\n        'variant_div|variant_eqv|variant_fix|variant_get_type|variant_idiv|variant_imp|variant_int|variant_mod|variant_mul|variant_neg|variant_not|' +\n        'variant_or|variant_pow|variant_round|variant_set|variant_set_type|variant_sub|variant_xor|version_compare|vfprintf|virtual|' +\n        'vpopmail_add_alias_domain|vpopmail_add_alias_domain_ex|vpopmail_add_domain|vpopmail_add_domain_ex|vpopmail_add_user|vpopmail_alias_add|' +\n        'vpopmail_alias_del|vpopmail_alias_del_domain|vpopmail_alias_get|vpopmail_alias_get_all|vpopmail_auth_user|vpopmail_del_domain|' +\n        'vpopmail_del_domain_ex|vpopmail_del_user|vpopmail_error|vpopmail_passwd|vpopmail_set_user_quota|vprintf|vsprintf|w32api_deftype|' +\n        'w32api_init_dtype|w32api_invoke_function|w32api_register_function|w32api_set_call_method|wddx_add_vars|wddx_deserialize|wddx_packet_end|' +\n        'wddx_packet_start|wddx_serialize_value|wddx_serialize_vars|win32_continue_service|win32_create_service|win32_delete_service|' +\n        'win32_get_last_control_message|win32_pause_service|win32_ps_list_procs|win32_ps_stat_mem|win32_ps_stat_proc|win32_query_service_status|' +\n        'win32_set_service_status|win32_start_service|win32_start_service_ctrl_dispatcher|win32_stop_service|wincache_fcache_fileinfo|' +\n        'wincache_fcache_meminfo|wincache_lock|wincache_ocache_fileinfo|wincache_ocache_meminfo|wincache_refresh_if_changed|' +\n        'wincache_rplist_fileinfo|wincache_rplist_meminfo|wincache_scache_info|wincache_scache_meminfo|wincache_ucache_add|wincache_ucache_cas|' +\n        'wincache_ucache_clear|wincache_ucache_dec|wincache_ucache_delete|wincache_ucache_exists|wincache_ucache_get|wincache_ucache_inc|' +\n        'wincache_ucache_info|wincache_ucache_meminfo|wincache_ucache_set|wincache_unlock|wordwrap|xattr_get|xattr_list|xattr_remove|xattr_set|' +\n        'xattr_supported|xdiff_file_bdiff|xdiff_file_bdiff_size|xdiff_file_bpatch|xdiff_file_diff|xdiff_file_diff_binary|xdiff_file_merge3|' +\n        'xdiff_file_patch|xdiff_file_patch_binary|xdiff_file_rabdiff|xdiff_string_bdiff|xdiff_string_bdiff_size|xdiff_string_bpatch|' +\n        'xdiff_string_diff|xdiff_string_diff_binary|xdiff_string_merge3|xdiff_string_patch|xdiff_string_patch_binary|xdiff_string_rabdiff|' +\n        'xhprof_disable|xhprof_enable|xhprof_sample_disable|xhprof_sample_enable|xml_error_string|xml_get_current_byte_index|' +\n        'xml_get_current_column_number|xml_get_current_line_number|xml_get_error_code|xml_parse|xml_parse_into_struct|xml_parser_create|' +\n        'xml_parser_create_ns|xml_parser_free|xml_parser_get_option|xml_parser_set_option|xml_set_character_data_handler|xml_set_default_handler|' +\n        'xml_set_element_handler|xml_set_end_namespace_decl_handler|xml_set_external_entity_ref_handler|xml_set_notation_decl_handler|' +\n        'xml_set_object|xml_set_processing_instruction_handler|xml_set_start_namespace_decl_handler|xml_set_unparsed_entity_decl_handler|xmlreader|' +\n        'xmlrpc_decode|xmlrpc_decode_request|xmlrpc_encode|xmlrpc_encode_request|xmlrpc_get_type|xmlrpc_is_fault|xmlrpc_parse_method_descriptions|' +\n        'xmlrpc_server_add_introspection_data|xmlrpc_server_call_method|xmlrpc_server_create|xmlrpc_server_destroy|' +\n        'xmlrpc_server_register_introspection_callback|xmlrpc_server_register_method|xmlrpc_set_type|xmlwriter_end_attribute|xmlwriter_end_cdata|' +\n        'xmlwriter_end_comment|xmlwriter_end_document|xmlwriter_end_dtd|xmlwriter_end_dtd_attlist|xmlwriter_end_dtd_element|' +\n        'xmlwriter_end_dtd_entity|xmlwriter_end_element|xmlwriter_end_pi|xmlwriter_flush|xmlwriter_full_end_element|xmlwriter_open_memory|' +\n        'xmlwriter_open_uri|xmlwriter_output_memory|xmlwriter_set_indent|xmlwriter_set_indent_string|xmlwriter_start_attribute|' +\n        'xmlwriter_start_attribute_ns|xmlwriter_start_cdata|xmlwriter_start_comment|xmlwriter_start_document|xmlwriter_start_dtd|' +\n        'xmlwriter_start_dtd_attlist|xmlwriter_start_dtd_element|xmlwriter_start_dtd_entity|xmlwriter_start_element|xmlwriter_start_element_ns|' +\n        'xmlwriter_start_pi|xmlwriter_text|xmlwriter_write_attribute|xmlwriter_write_attribute_ns|xmlwriter_write_cdata|xmlwriter_write_comment|' +\n        'xmlwriter_write_dtd|xmlwriter_write_dtd_attlist|xmlwriter_write_dtd_element|xmlwriter_write_dtd_entity|xmlwriter_write_element|' +\n        'xmlwriter_write_element_ns|xmlwriter_write_pi|xmlwriter_write_raw|xpath_eval|xpath_eval_expression|xpath_new_context|xpath_register_ns|' +\n        'xpath_register_ns_auto|xptr_eval|xptr_new_context|xslt_backend_info|xslt_backend_name|xslt_backend_version|xslt_create|xslt_errno|' +\n        'xslt_error|xslt_free|xslt_getopt|xslt_process|xslt_set_base|xslt_set_encoding|xslt_set_error_handler|xslt_set_log|xslt_set_object|' +\n        'xslt_set_sax_handler|xslt_set_sax_handlers|xslt_set_scheme_handler|xslt_set_scheme_handlers|xslt_setopt|xsltprocessor|yaml_emit|' +\n        'yaml_emit_file|yaml_parse|yaml_parse_file|yaml_parse_url|yaz_addinfo|yaz_ccl_conf|yaz_ccl_parse|yaz_close|yaz_connect|yaz_database|' +\n        'yaz_element|yaz_errno|yaz_error|yaz_es|yaz_es_result|yaz_get_option|yaz_hits|yaz_itemorder|yaz_present|yaz_range|yaz_record|yaz_scan|' +\n        'yaz_scan_result|yaz_schema|yaz_search|yaz_set_option|yaz_sort|yaz_syntax|yaz_wait|yp_all|yp_cat|yp_err_string|yp_errno|yp_first|' +\n        'yp_get_default_domain|yp_master|yp_match|yp_next|yp_order|zend_logo_guid|zend_thread_id|zend_version|zip_close|zip_entry_close|' +\n        'zip_entry_compressedsize|zip_entry_compressionmethod|zip_entry_filesize|zip_entry_name|zip_entry_open|zip_entry_read|zip_open|zip_read|' +\n        'ziparchive|ziparchive_addemptydir|ziparchive_addfile|ziparchive_addfromstring|ziparchive_close|ziparchive_deleteindex|' +\n        'ziparchive_deletename|ziparchive_extractto|ziparchive_getarchivecomment|ziparchive_getcommentindex|ziparchive_getcommentname|' +\n        'ziparchive_getfromindex|ziparchive_getfromname|ziparchive_getnameindex|ziparchive_getstatusstring|ziparchive_getstream|' +\n        'ziparchive_locatename|ziparchive_open|ziparchive_renameindex|ziparchive_renamename|ziparchive_setCommentName|ziparchive_setarchivecomment|' +\n        'ziparchive_setcommentindex|ziparchive_statindex|ziparchive_statname|ziparchive_unchangeall|ziparchive_unchangearchive|' +\n        'ziparchive_unchangeindex|ziparchive_unchangename|zlib_get_coding_type').split('|')\n    );\n    var keywords = lang.arrayToMap(\n        ('abstract|and|array|as|break|case|catch|class|clone|const|continue|declare|default|do|else|elseif|enddeclare|endfor|endforeach|endif|' +\n        'endswitch|endwhile|extends|final|for|foreach|function|global|goto|if|implements|interface|instanceof|namespace|new|or|private|protected|' +\n        'public|static|switch|throw|trait|try|use|var|while|xor').split('|')\n    );\n    var languageConstructs = lang.arrayToMap(\n        ('die|echo|empty|exit|eval|include|include_once|isset|list|require|require_once|return|print|unset').split('|')\n    );\n\n    var builtinConstants = lang.arrayToMap(\n        ('true|TRUE|false|FALSE|null|NULL|__CLASS__|__DIR__|__FILE__|__LINE__|__METHOD__|__FUNCTION__|__NAMESPACE__').split('|')\n    );\n\n    var builtinVariables = lang.arrayToMap(\n        ('$GLOBALS|$_SERVER|$_GET|$_POST|$_FILES|$_REQUEST|$_SESSION|$_ENV|$_COOKIE|$php_errormsg|$HTTP_RAW_POST_DATA|' +\n        '$http_response_header|$argc|$argv').split('|')\n    );\n    var builtinFunctionsDeprecated = lang.arrayToMap(\n        ('key_exists|cairo_matrix_create_scale|cairo_matrix_create_translate|call_user_method|call_user_method_array|com_addref|com_get|' +\n        'com_invoke|com_isenum|com_load|com_release|com_set|connection_timeout|cubrid_load_from_glo|cubrid_new_glo|cubrid_save_to_glo|' +\n        'cubrid_send_glo|define_syslog_variables|dl|ereg|ereg_replace|eregi|eregi_replace|hw_documentattributes|hw_documentbodytag|' +\n        'hw_documentsize|hw_outputdocument|imagedashedline|maxdb_bind_param|maxdb_bind_result|maxdb_client_encoding|maxdb_close_long_data|' +\n        'maxdb_execute|maxdb_fetch|maxdb_get_metadata|maxdb_param_count|maxdb_send_long_data|mcrypt_ecb|mcrypt_generic_end|mime_content_type|' +\n        'mysql_createdb|mysql_dbname|mysql_db_query|mysql_drop_db|mysql_dropdb|mysql_escape_string|mysql_fieldflags|mysql_fieldflags|' +\n        'mysql_fieldname|mysql_fieldtable|mysql_fieldtype|mysql_freeresult|mysql_listdbs|mysql_list_fields|mysql_listfields|mysql_list_tables|' +\n        'mysql_listtables|mysql_numfields|mysql_numrows|mysql_selectdb|mysql_tablename|mysqli_bind_param|mysqli_bind_result|' +\n        'mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_execute|' +\n        'mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|' +\n        'mysqli_send_long_data|mysqli_send_query|mysqli_slave_query|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|' +\n        'ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|' +\n        'ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|' +\n        'ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|' +\n        'ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|' +\n        'ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|PDF_add_annotation|PDF_add_bookmark|' +\n        'PDF_add_launchlink|PDF_add_locallink|PDF_add_note|PDF_add_outline|PDF_add_pdflink|PDF_add_weblink|PDF_attach_file|PDF_begin_page|' +\n        'PDF_begin_template|PDF_close_pdi|PDF_close|PDF_findfont|PDF_get_font|PDF_get_fontname|PDF_get_fontsize|PDF_get_image_height|' +\n        'PDF_get_image_width|PDF_get_majorversion|PDF_get_minorversion|PDF_get_pdi_parameter|PDF_get_pdi_value|PDF_open_ccitt|PDF_open_file|' +\n        'PDF_open_gif|PDF_open_image_file|PDF_open_image|PDF_open_jpeg|PDF_open_pdi|PDF_open_tiff|PDF_place_image|PDF_place_pdi_page|' +\n        'PDF_set_border_color|PDF_set_border_dash|PDF_set_border_style|PDF_set_char_spacing|PDF_set_duration|PDF_set_horiz_scaling|' +\n        'PDF_set_info_author|PDF_set_info_creator|PDF_set_info_keywords|PDF_set_info_subject|PDF_set_info_title|PDF_set_leading|' +\n        'PDF_set_text_matrix|PDF_set_text_rendering|PDF_set_text_rise|PDF_set_word_spacing|PDF_setgray_fill|PDF_setgray_stroke|PDF_setgray|' +\n        'PDF_setpolydash|PDF_setrgbcolor_fill|PDF_setrgbcolor_stroke|PDF_setrgbcolor|PDF_show_boxed|php_check_syntax|px_set_tablename|' +\n        'px_set_targetencoding|runkit_sandbox_output_handler|session_is_registered|session_register|session_unregister' +\n        'set_magic_quotes_runtime|magic_quotes_runtime|set_socket_blocking|socket_set_blocking|set_socket_timeout|socket_set_timeout|split|spliti|' +\n        'sql_regcase').split('|')\n    );\n\n    var keywordsDeprecated = lang.arrayToMap(\n        ('cfunction|old_function').split('|')\n    );\n\n    var futureReserved = lang.arrayToMap([]);\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : /(?:#|\\/\\/)(?:[^?]|\\?[^>])*/\n            },\n            docComment.getStartRule(\"doc-start\"),\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n                token : \"string.regexp\",\n                regex : \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/][gimy]*\\\\s*(?=[).,;]|$)\"\n            }, {\n                token : \"string\", // \" string start\n                regex : '\"',\n                next : \"qqstring\"\n            }, {\n                token : \"string\", // ' string start\n                regex : \"'\",\n                next : \"qstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n            }, {\n                token : \"constant.language\", // constants\n                regex : \"\\\\b(?:DEFAULT_INCLUDE_PATH|E_(?:ALL|CO(?:MPILE_(?:ERROR|WARNING)|RE_(?:ERROR|WARNING))|\" +\n                        \"ERROR|NOTICE|PARSE|STRICT|USER_(?:ERROR|NOTICE|WARNING)|WARNING)|P(?:EAR_(?:EXTENSION_DIR|INSTALL_DIR)|\" +\n                        \"HP_(?:BINDIR|CONFIG_FILE_(?:PATH|SCAN_DIR)|DATADIR|E(?:OL|XTENSION_DIR)|INT_(?:MAX|SIZE)|\" +\n                        \"L(?:IBDIR|OCALSTATEDIR)|O(?:S|UTPUT_HANDLER_(?:CONT|END|START))|PREFIX|S(?:API|HLIB_SUFFIX|YSCONFDIR)|\" +\n                        \"VERSION))|__COMPILER_HALT_OFFSET__)\\\\b\"\n            }, {\n                token : [\"keyword\", \"text\", \"support.class\"],\n                regex : \"\\\\b(new)(\\\\s+)(\\\\w+)\"\n            }, {\n                token : [\"support.class\", \"keyword.operator\"],\n                regex : \"\\\\b(\\\\w+)(::)\"\n            }, {\n                token : \"constant.language\", // constants\n                regex : \"\\\\b(?:A(?:B(?:DAY_(?:1|2|3|4|5|6|7)|MON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9))|LT_DIGITS|M_STR|\" +\n                        \"SSERT_(?:ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(?:ASE_(?:LOWER|UPPER)|HAR_MAX|\" +\n                        \"O(?:DESET|NNECTION_(?:ABORTED|NORMAL|TIMEOUT)|UNT_(?:NORMAL|RECURSIVE))|\" +\n                        \"R(?:EDITS_(?:ALL|DOCS|FULLPAGE|G(?:ENERAL|ROUP)|MODULES|QA|SAPI)|NCYSTR|\" +\n                        \"YPT_(?:BLOWFISH|EXT_DES|MD5|S(?:ALT_LENGTH|TD_DES)))|URRENCY_SYMBOL)|D(?:AY_(?:1|2|3|4|5|6|7)|\" +\n                        \"ECIMAL_POINT|IRECTORY_SEPARATOR|_(?:FMT|T_FMT))|E(?:NT_(?:COMPAT|NOQUOTES|QUOTES)|RA(?:_(?:D_(?:FMT|T_FMT)|\" +\n                        \"T_FMT|YEAR)|)|XTR_(?:IF_EXISTS|OVERWRITE|PREFIX_(?:ALL|I(?:F_EXISTS|NVALID)|SAME)|SKIP))|FRAC_DIGITS|GROUPING|\" +\n                        \"HTML_(?:ENTITIES|SPECIALCHARS)|IN(?:FO_(?:ALL|C(?:ONFIGURATION|REDITS)|ENVIRONMENT|GENERAL|LICENSE|MODULES|VARIABLES)|\" +\n                        \"I_(?:ALL|PERDIR|SYSTEM|USER)|T_(?:CURR_SYMBOL|FRAC_DIGITS))|L(?:C_(?:ALL|C(?:OLLATE|TYPE)|M(?:ESSAGES|ONETARY)|NUMERIC|TIME)|\" +\n                        \"O(?:CK_(?:EX|NB|SH|UN)|G_(?:A(?:LERT|UTH(?:PRIV|))|C(?:ONS|R(?:IT|ON))|D(?:AEMON|EBUG)|E(?:MERG|RR)|INFO|KERN|\" +\n                        \"L(?:OCAL(?:0|1|2|3|4|5|6|7)|PR)|MAIL|N(?:DELAY|EWS|O(?:TICE|WAIT))|ODELAY|P(?:ERROR|ID)|SYSLOG|U(?:SER|UCP)|WARNING)))|\" +\n                        \"M(?:ON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|_(?:1_PI|2_(?:PI|SQRTPI)|E|L(?:N(?:10|2)|\" +\n                        \"OG(?:10E|2E))|PI(?:_(?:2|4)|)|SQRT(?:1_2|2)))|N(?:EGATIVE_SIGN|O(?:EXPR|STR)|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|\" +\n                        \"P(?:ATH(?:INFO_(?:BASENAME|DIRNAME|EXTENSION)|_SEPARATOR)|M_STR|OSITIVE_SIGN|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|\" +\n                        \"RADIXCHAR|S(?:EEK_(?:CUR|END|SET)|ORT_(?:ASC|DESC|NUMERIC|REGULAR|STRING)|TR_PAD_(?:BOTH|LEFT|RIGHT))|\" +\n                        \"T(?:HOUS(?:ANDS_SEP|EP)|_FMT(?:_AMPM|))|YES(?:EXPR|STR)|STD(?:IN|OUT|ERR))\\\\b\"\n            }, {\n                token : function(value) {\n                    if (keywords.hasOwnProperty(value))\n                        return \"keyword\";\n                    else if (builtinConstants.hasOwnProperty(value))\n                        return \"constant.language\";\n                    else if (builtinVariables.hasOwnProperty(value))\n                        return \"variable.language\";\n                    else if (futureReserved.hasOwnProperty(value))\n                        return \"invalid.illegal\";\n                    else if (builtinFunctions.hasOwnProperty(value))\n                        return \"support.function\";\n                    else if (value == \"debugger\")\n                        return \"invalid.deprecated\";\n                    else\n                        if(value.match(/^(\\$[a-zA-Z_\\x7f-\\uffff][a-zA-Z0-9_\\x7f-\\uffff]*|self|parent)$/))\n                            return \"variable\";\n                        return \"identifier\";\n                },\n                regex : /[a-zA-Z_$\\x7f-\\uffff][a-zA-Z0-9_\\x7f-\\uffff]*/\n            }, {\n                onMatch : function(value, currentSate, state) {\n                    value = value.substr(3);\n                    if (value[0] == \"'\" || value[0] == '\"')\n                        value = value.slice(1, -1);\n                    state.unshift(this.next, value);\n                    return \"markup.list\";\n                },\n                regex : /<<<(?:\\w+|'\\w+'|\"\\w+\")$/,\n                next: \"heredoc\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"::|!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|!=|!==|<=|>=|=>|<<=|>>=|>>>=|<>|<|>|=|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"heredoc\" : [\n            {\n                onMatch : function(value, currentSate, stack) {\n                    if (stack[1] != value)\n                        return \"string\";\n                    stack.shift();\n                    stack.shift();\n                    return \"markup.list\";\n                },\n                regex : \"^\\\\w+(?=;?$)\",\n                next: \"start\"\n            }, {\n                token: \"string\",\n                regex : \".*\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\",\n                regex : \"\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                defaultToken : \"comment\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : '\\\\\\\\(?:[nrtvef\\\\\\\\\"$]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2})'\n            }, {\n                token : \"variable\",\n                regex : /\\$[\\w]+(?:\\[[\\w\\]+]|[=\\-]>\\w+)?/\n            }, {\n                token : \"variable\",\n                regex : /\\$\\{[^\"\\}]+\\}?/           // this is wrong but ok for now\n            },\n            {token : \"string\", regex : '\"', next : \"start\"},\n            {defaultToken : \"string\"}\n        ],\n        \"qstring\" : [\n            {token : \"constant.language.escape\", regex : /\\\\['\\\\]/},\n            {token : \"string\", regex : \"'\", next : \"start\"},\n            {defaultToken : \"string\"}\n        ]\n    };\n\n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n};\n\noop.inherits(PhpLangHighlightRules, TextHighlightRules);\n\n\nvar PhpHighlightRules = function() {\n    HtmlHighlightRules.call(this);\n\n    var startRules = [\n        {\n            token : \"support.php_tag\", // php open tag\n            regex : \"<\\\\?(?:php|=)?\",\n            push  : \"php-start\"\n        }\n    ];\n\n    var endRules = [\n        {\n            token : \"support.php_tag\", // php close tag\n            regex : \"\\\\?>\",\n            next  : \"pop\"\n        }\n    ];\n\n    for (var key in this.$rules)\n        this.$rules[key].unshift.apply(this.$rules[key], startRules);\n\n    this.embedRules(PhpLangHighlightRules, \"php-\", endRules, [\"start\"]);\n\n    this.normalizeRules();\n};\n\noop.inherits(PhpHighlightRules, HtmlHighlightRules);\n\nexports.PhpHighlightRules = PhpHighlightRules;\nexports.PhpLangHighlightRules = PhpLangHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/php_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar functionMap = {\n    \"abs\": [\n        \"int abs(int number)\",\n        \"Return the absolute value of the number\"\n    ],\n    \"acos\": [\n        \"float acos(float number)\",\n        \"Return the arc cosine of the number in radians\"\n    ],\n    \"acosh\": [\n        \"float acosh(float number)\",\n        \"Returns the inverse hyperbolic cosine of the number, i.e. the value whose hyperbolic cosine is number\"\n    ],\n    \"addGlob\": [\n        \"bool addGlob(string pattern[,int flags [, array options]])\",\n        \"Add files matching the glob pattern. See php's glob for the pattern syntax.\"\n    ],\n    \"addPattern\": [\n        \"bool addPattern(string pattern[, string path [, array options]])\",\n        \"Add files matching the pcre pattern. See php's pcre for the pattern syntax.\"\n    ],\n    \"addcslashes\": [\n        \"string addcslashes(string str, string charlist)\",\n        \"Escapes all chars mentioned in charlist with backslash. It creates octal representations if asked to backslash characters with 8th bit set or with ASCII<32 (except '\\\\n', '\\\\r', '\\\\t' etc...)\"\n    ],\n    \"addslashes\": [\n        \"string addslashes(string str)\",\n        \"Escapes single quote, double quotes and backslash characters in a string with backslashes\"\n    ],\n    \"apache_child_terminate\": [\n        \"bool apache_child_terminate(void)\",\n        \"Terminate apache process after this request\"\n    ],\n    \"apache_get_modules\": [\n        \"array apache_get_modules(void)\",\n        \"Get a list of loaded Apache modules\"\n    ],\n    \"apache_get_version\": [\n        \"string apache_get_version(void)\",\n        \"Fetch Apache version\"\n    ],\n    \"apache_getenv\": [\n        \"bool apache_getenv(string variable [, bool walk_to_top])\",\n        \"Get an Apache subprocess_env variable\"\n    ],\n    \"apache_lookup_uri\": [\n        \"object apache_lookup_uri(string URI)\",\n        \"Perform a partial request of the given URI to obtain information about it\"\n    ],\n    \"apache_note\": [\n        \"string apache_note(string note_name [, string note_value])\",\n        \"Get and set Apache request notes\"\n    ],\n    \"apache_request_auth_name\": [\n        \"string apache_request_auth_name()\",\n        \"\"\n    ],\n    \"apache_request_auth_type\": [\n        \"string apache_request_auth_type()\",\n        \"\"\n    ],\n    \"apache_request_discard_request_body\": [\n        \"long apache_request_discard_request_body()\",\n        \"\"\n    ],\n    \"apache_request_err_headers_out\": [\n        \"array apache_request_err_headers_out([{string name|array list} [, string value [, bool replace = false]]])\",\n        \"* fetch all headers that go out in case of an error or a subrequest\"\n    ],\n    \"apache_request_headers\": [\n        \"array apache_request_headers(void)\",\n        \"Fetch all HTTP request headers\"\n    ],\n    \"apache_request_headers_in\": [\n        \"array apache_request_headers_in()\",\n        \"* fetch all incoming request headers\"\n    ],\n    \"apache_request_headers_out\": [\n        \"array apache_request_headers_out([{string name|array list} [, string value [, bool replace = false]]])\",\n        \"* fetch all outgoing request headers\"\n    ],\n    \"apache_request_is_initial_req\": [\n        \"bool apache_request_is_initial_req()\",\n        \"\"\n    ],\n    \"apache_request_log_error\": [\n        \"boolean apache_request_log_error(string message, [long facility])\",\n        \"\"\n    ],\n    \"apache_request_meets_conditions\": [\n        \"long apache_request_meets_conditions()\",\n        \"\"\n    ],\n    \"apache_request_remote_host\": [\n        \"int apache_request_remote_host([int type])\",\n        \"\"\n    ],\n    \"apache_request_run\": [\n        \"long apache_request_run()\",\n        \"This is a wrapper for ap_sub_run_req and ap_destory_sub_req.  It takes      sub_request, runs it, destroys it, and returns it's status.\"\n    ],\n    \"apache_request_satisfies\": [\n        \"long apache_request_satisfies()\",\n        \"\"\n    ],\n    \"apache_request_server_port\": [\n        \"int apache_request_server_port()\",\n        \"\"\n    ],\n    \"apache_request_set_etag\": [\n        \"void apache_request_set_etag()\",\n        \"\"\n    ],\n    \"apache_request_set_last_modified\": [\n        \"void apache_request_set_last_modified()\",\n        \"\"\n    ],\n    \"apache_request_some_auth_required\": [\n        \"bool apache_request_some_auth_required()\",\n        \"\"\n    ],\n    \"apache_request_sub_req_lookup_file\": [\n        \"object apache_request_sub_req_lookup_file(string file)\",\n        \"Returns sub-request for the specified file.  You would     need to run it yourself with run().\"\n    ],\n    \"apache_request_sub_req_lookup_uri\": [\n        \"object apache_request_sub_req_lookup_uri(string uri)\",\n        \"Returns sub-request for the specified uri.  You would     need to run it yourself with run()\"\n    ],\n    \"apache_request_sub_req_method_uri\": [\n        \"object apache_request_sub_req_method_uri(string method, string uri)\",\n        \"Returns sub-request for the specified file.  You would     need to run it yourself with run().\"\n    ],\n    \"apache_request_update_mtime\": [\n        \"long apache_request_update_mtime([int dependency_mtime])\",\n        \"\"\n    ],\n    \"apache_reset_timeout\": [\n        \"bool apache_reset_timeout(void)\",\n        \"Reset the Apache write timer\"\n    ],\n    \"apache_response_headers\": [\n        \"array apache_response_headers(void)\",\n        \"Fetch all HTTP response headers\"\n    ],\n    \"apache_setenv\": [\n        \"bool apache_setenv(string variable, string value [, bool walk_to_top])\",\n        \"Set an Apache subprocess_env variable\"\n    ],\n    \"array_change_key_case\": [\n        \"array array_change_key_case(array input [, int case=CASE_LOWER])\",\n        \"Retuns an array with all string keys lowercased [or uppercased]\"\n    ],\n    \"array_chunk\": [\n        \"array array_chunk(array input, int size [, bool preserve_keys])\",\n        \"Split array into chunks\"\n    ],\n    \"array_combine\": [\n        \"array array_combine(array keys, array values)\",\n        \"Creates an array by using the elements of the first parameter as keys and the elements of the second as the corresponding values\"\n    ],\n    \"array_count_values\": [\n        \"array array_count_values(array input)\",\n        \"Return the value as key and the frequency of that value in input as value\"\n    ],\n    \"array_diff\": [\n        \"array array_diff(array arr1, array arr2 [, array ...])\",\n        \"Returns the entries of arr1 that have values which are not present in any of the others arguments.\"\n    ],\n    \"array_diff_assoc\": [\n        \"array array_diff_assoc(array arr1, array arr2 [, array ...])\",\n        \"Returns the entries of arr1 that have values which are not present in any of the others arguments but do additional checks whether the keys are equal\"\n    ],\n    \"array_diff_key\": [\n        \"array array_diff_key(array arr1, array arr2 [, array ...])\",\n        \"Returns the entries of arr1 that have keys which are not present in any of the others arguments. This function is like array_diff() but works on the keys instead of the values. The associativity is preserved.\"\n    ],\n    \"array_diff_uassoc\": [\n        \"array array_diff_uassoc(array arr1, array arr2 [, array ...], callback data_comp_func)\",\n        \"Returns the entries of arr1 that have values which are not present in any of the others arguments but do additional checks whether the keys are equal. Elements are compared by user supplied function.\"\n    ],\n    \"array_diff_ukey\": [\n        \"array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func)\",\n        \"Returns the entries of arr1 that have keys which are not present in any of the others arguments. User supplied function is used for comparing the keys. This function is like array_udiff() but works on the keys instead of the values. The associativity is preserved.\"\n    ],\n    \"array_fill\": [\n        \"array array_fill(int start_key, int num, mixed val)\",\n        \"Create an array containing num elements starting with index start_key each initialized to val\"\n    ],\n    \"array_fill_keys\": [\n        \"array array_fill_keys(array keys, mixed val)\",\n        \"Create an array using the elements of the first parameter as keys each initialized to val\"\n    ],\n    \"array_filter\": [\n        \"array array_filter(array input [, mixed callback])\",\n        \"Filters elements from the array via the callback.\"\n    ],\n    \"array_flip\": [\n        \"array array_flip(array input)\",\n        \"Return array with key <-> value flipped\"\n    ],\n    \"array_intersect\": [\n        \"array array_intersect(array arr1, array arr2 [, array ...])\",\n        \"Returns the entries of arr1 that have values which are present in all the other arguments\"\n    ],\n    \"array_intersect_assoc\": [\n        \"array array_intersect_assoc(array arr1, array arr2 [, array ...])\",\n        \"Returns the entries of arr1 that have values which are present in all the other arguments. Keys are used to do more restrictive check\"\n    ],\n    \"array_intersect_key\": [\n        \"array array_intersect_key(array arr1, array arr2 [, array ...])\",\n        \"Returns the entries of arr1 that have keys which are present in all the other arguments. Kind of equivalent to array_diff(array_keys($arr1), array_keys($arr2)[,array_keys(...)]). Equivalent of array_intersect_assoc() but does not do compare of the data.\"\n    ],\n    \"array_intersect_uassoc\": [\n        \"array array_intersect_uassoc(array arr1, array arr2 [, array ...], callback key_compare_func)\",\n        \"Returns the entries of arr1 that have values which are present in all the other arguments. Keys are used to do more restrictive check and they are compared by using an user-supplied callback.\"\n    ],\n    \"array_intersect_ukey\": [\n        \"array array_intersect_ukey(array arr1, array arr2 [, array ...], callback key_compare_func)\",\n        \"Returns the entries of arr1 that have keys which are present in all the other arguments. Kind of equivalent to array_diff(array_keys($arr1), array_keys($arr2)[,array_keys(...)]). The comparison of the keys is performed by a user supplied function. Equivalent of array_intersect_uassoc() but does not do compare of the data.\"\n    ],\n    \"array_key_exists\": [\n        \"bool array_key_exists(mixed key, array search)\",\n        \"Checks if the given key or index exists in the array\"\n    ],\n    \"array_keys\": [\n        \"array array_keys(array input [, mixed search_value[, bool strict]])\",\n        \"Return just the keys from the input array, optionally only for the specified search_value\"\n    ],\n    \"array_map\": [\n        \"array array_map(mixed callback, array input1 [, array input2 ,...])\",\n        \"Applies the callback to the elements in given arrays.\"\n    ],\n    \"array_merge\": [\n        \"array array_merge(array arr1, array arr2 [, array ...])\",\n        \"Merges elements from passed arrays into one array\"\n    ],\n    \"array_merge_recursive\": [\n        \"array array_merge_recursive(array arr1, array arr2 [, array ...])\",\n        \"Recursively merges elements from passed arrays into one array\"\n    ],\n    \"array_multisort\": [\n        \"bool array_multisort(array ar1 [, SORT_ASC|SORT_DESC [, SORT_REGULAR|SORT_NUMERIC|SORT_STRING]] [, array ar2 [, SORT_ASC|SORT_DESC [, SORT_REGULAR|SORT_NUMERIC|SORT_STRING]], ...])\",\n        \"Sort multiple arrays at once similar to how ORDER BY clause works in SQL\"\n    ],\n    \"array_pad\": [\n        \"array array_pad(array input, int pad_size, mixed pad_value)\",\n        \"Returns a copy of input array padded with pad_value to size pad_size\"\n    ],\n    \"array_pop\": [\n        \"mixed array_pop(array stack)\",\n        \"Pops an element off the end of the array\"\n    ],\n    \"array_product\": [\n        \"mixed array_product(array input)\",\n        \"Returns the product of the array entries\"\n    ],\n    \"array_push\": [\n        \"int array_push(array stack, mixed var [, mixed ...])\",\n        \"Pushes elements onto the end of the array\"\n    ],\n    \"array_rand\": [\n        \"mixed array_rand(array input [, int num_req])\",\n        \"Return key/keys for random entry/entries in the array\"\n    ],\n    \"array_reduce\": [\n        \"mixed array_reduce(array input, mixed callback [, mixed initial])\",\n        \"Iteratively reduce the array to a single value via the callback.\"\n    ],\n    \"array_replace\": [\n        \"array array_replace(array arr1, array arr2 [, array ...])\",\n        \"Replaces elements from passed arrays into one array\"\n    ],\n    \"array_replace_recursive\": [\n        \"array array_replace_recursive(array arr1, array arr2 [, array ...])\",\n        \"Recursively replaces elements from passed arrays into one array\"\n    ],\n    \"array_reverse\": [\n        \"array array_reverse(array input [, bool preserve keys])\",\n        \"Return input as a new array with the order of the entries reversed\"\n    ],\n    \"array_search\": [\n        \"mixed array_search(mixed needle, array haystack [, bool strict])\",\n        \"Searches the array for a given value and returns the corresponding key if successful\"\n    ],\n    \"array_shift\": [\n        \"mixed array_shift(array stack)\",\n        \"Pops an element off the beginning of the array\"\n    ],\n    \"array_slice\": [\n        \"array array_slice(array input, int offset [, int length [, bool preserve_keys]])\",\n        \"Returns elements specified by offset and length\"\n    ],\n    \"array_splice\": [\n        \"array array_splice(array input, int offset [, int length [, array replacement]])\",\n        \"Removes the elements designated by offset and length and replace them with supplied array\"\n    ],\n    \"array_sum\": [\n        \"mixed array_sum(array input)\",\n        \"Returns the sum of the array entries\"\n    ],\n    \"array_udiff\": [\n        \"array array_udiff(array arr1, array arr2 [, array ...], callback data_comp_func)\",\n        \"Returns the entries of arr1 that have values which are not present in any of the others arguments. Elements are compared by user supplied function.\"\n    ],\n    \"array_udiff_assoc\": [\n        \"array array_udiff_assoc(array arr1, array arr2 [, array ...], callback key_comp_func)\",\n        \"Returns the entries of arr1 that have values which are not present in any of the others arguments but do additional checks whether the keys are equal. Keys are compared by user supplied function.\"\n    ],\n    \"array_udiff_uassoc\": [\n        \"array array_udiff_uassoc(array arr1, array arr2 [, array ...], callback data_comp_func, callback key_comp_func)\",\n        \"Returns the entries of arr1 that have values which are not present in any of the others arguments but do additional checks whether the keys are equal. Keys and elements are compared by user supplied functions.\"\n    ],\n    \"array_uintersect\": [\n        \"array array_uintersect(array arr1, array arr2 [, array ...], callback data_compare_func)\",\n        \"Returns the entries of arr1 that have values which are present in all the other arguments. Data is compared by using an user-supplied callback.\"\n    ],\n    \"array_uintersect_assoc\": [\n        \"array array_uintersect_assoc(array arr1, array arr2 [, array ...], callback data_compare_func)\",\n        \"Returns the entries of arr1 that have values which are present in all the other arguments. Keys are used to do more restrictive check. Data is compared by using an user-supplied callback.\"\n    ],\n    \"array_uintersect_uassoc\": [\n        \"array array_uintersect_uassoc(array arr1, array arr2 [, array ...], callback data_compare_func, callback key_compare_func)\",\n        \"Returns the entries of arr1 that have values which are present in all the other arguments. Keys are used to do more restrictive check. Both data and keys are compared by using user-supplied callbacks.\"\n    ],\n    \"array_unique\": [\n        \"array array_unique(array input [, int sort_flags])\",\n        \"Removes duplicate values from array\"\n    ],\n    \"array_unshift\": [\n        \"int array_unshift(array stack, mixed var [, mixed ...])\",\n        \"Pushes elements onto the beginning of the array\"\n    ],\n    \"array_values\": [\n        \"array array_values(array input)\",\n        \"Return just the values from the input array\"\n    ],\n    \"array_walk\": [\n        \"bool array_walk(array input, string funcname [, mixed userdata])\",\n        \"Apply a user function to every member of an array\"\n    ],\n    \"array_walk_recursive\": [\n        \"bool array_walk_recursive(array input, string funcname [, mixed userdata])\",\n        \"Apply a user function recursively to every member of an array\"\n    ],\n    \"arsort\": [\n        \"bool arsort(array &array_arg [, int sort_flags])\",\n        \"Sort an array in reverse order and maintain index association\"\n    ],\n    \"asin\": [\n        \"float asin(float number)\",\n        \"Returns the arc sine of the number in radians\"\n    ],\n    \"asinh\": [\n        \"float asinh(float number)\",\n        \"Returns the inverse hyperbolic sine of the number, i.e. the value whose hyperbolic sine is number\"\n    ],\n    \"asort\": [\n        \"bool asort(array &array_arg [, int sort_flags])\",\n        \"Sort an array and maintain index association\"\n    ],\n    \"assert\": [\n        \"int assert(string|bool assertion)\",\n        \"Checks if assertion is false\"\n    ],\n    \"assert_options\": [\n        \"mixed assert_options(int what [, mixed value])\",\n        \"Set/get the various assert flags\"\n    ],\n    \"atan\": [\n        \"float atan(float number)\",\n        \"Returns the arc tangent of the number in radians\"\n    ],\n    \"atan2\": [\n        \"float atan2(float y, float x)\",\n        \"Returns the arc tangent of y/x, with the resulting quadrant determined by the signs of y and x\"\n    ],\n    \"atanh\": [\n        \"float atanh(float number)\",\n        \"Returns the inverse hyperbolic tangent of the number, i.e. the value whose hyperbolic tangent is number\"\n    ],\n    \"attachIterator\": [\n        \"void attachIterator(Iterator iterator[, mixed info])\",\n        \"Attach a new iterator\"\n    ],\n    \"base64_decode\": [\n        \"string base64_decode(string str[, bool strict])\",\n        \"Decodes string using MIME base64 algorithm\"\n    ],\n    \"base64_encode\": [\n        \"string base64_encode(string str)\",\n        \"Encodes string using MIME base64 algorithm\"\n    ],\n    \"base_convert\": [\n        \"string base_convert(string number, int frombase, int tobase)\",\n        \"Converts a number in a string from any base <= 36 to any base <= 36\"\n    ],\n    \"basename\": [\n        \"string basename(string path [, string suffix])\",\n        \"Returns the filename component of the path\"\n    ],\n    \"bcadd\": [\n        \"string bcadd(string left_operand, string right_operand [, int scale])\",\n        \"Returns the sum of two arbitrary precision numbers\"\n    ],\n    \"bccomp\": [\n        \"int bccomp(string left_operand, string right_operand [, int scale])\",\n        \"Compares two arbitrary precision numbers\"\n    ],\n    \"bcdiv\": [\n        \"string bcdiv(string left_operand, string right_operand [, int scale])\",\n        \"Returns the quotient of two arbitrary precision numbers (division)\"\n    ],\n    \"bcmod\": [\n        \"string bcmod(string left_operand, string right_operand)\",\n        \"Returns the modulus of the two arbitrary precision operands\"\n    ],\n    \"bcmul\": [\n        \"string bcmul(string left_operand, string right_operand [, int scale])\",\n        \"Returns the multiplication of two arbitrary precision numbers\"\n    ],\n    \"bcpow\": [\n        \"string bcpow(string x, string y [, int scale])\",\n        \"Returns the value of an arbitrary precision number raised to the power of another\"\n    ],\n    \"bcpowmod\": [\n        \"string bcpowmod(string x, string y, string mod [, int scale])\",\n        \"Returns the value of an arbitrary precision number raised to the power of another reduced by a modulous\"\n    ],\n    \"bcscale\": [\n        \"bool bcscale(int scale)\",\n        \"Sets default scale parameter for all bc math functions\"\n    ],\n    \"bcsqrt\": [\n        \"string bcsqrt(string operand [, int scale])\",\n        \"Returns the square root of an arbitray precision number\"\n    ],\n    \"bcsub\": [\n        \"string bcsub(string left_operand, string right_operand [, int scale])\",\n        \"Returns the difference between two arbitrary precision numbers\"\n    ],\n    \"bin2hex\": [\n        \"string bin2hex(string data)\",\n        \"Converts the binary representation of data to hex\"\n    ],\n    \"bind_textdomain_codeset\": [\n        \"string bind_textdomain_codeset (string domain, string codeset)\",\n        \"Specify the character encoding in which the messages from the DOMAIN message catalog will be returned.\"\n    ],\n    \"bindec\": [\n        \"int bindec(string binary_number)\",\n        \"Returns the decimal equivalent of the binary number\"\n    ],\n    \"bindtextdomain\": [\n        \"string bindtextdomain(string domain_name, string dir)\",\n        \"Bind to the text domain domain_name, looking for translations in dir. Returns the current domain\"\n    ],\n    \"birdstep_autocommit\": [\n        \"bool birdstep_autocommit(int index)\",\n        \"\"\n    ],\n    \"birdstep_close\": [\n        \"bool birdstep_close(int id)\",\n        \"\"\n    ],\n    \"birdstep_commit\": [\n        \"bool birdstep_commit(int index)\",\n        \"\"\n    ],\n    \"birdstep_connect\": [\n        \"int birdstep_connect(string server, string user, string pass)\",\n        \"\"\n    ],\n    \"birdstep_exec\": [\n        \"int birdstep_exec(int index, string exec_str)\",\n        \"\"\n    ],\n    \"birdstep_fetch\": [\n        \"bool birdstep_fetch(int index)\",\n        \"\"\n    ],\n    \"birdstep_fieldname\": [\n        \"string birdstep_fieldname(int index, int col)\",\n        \"\"\n    ],\n    \"birdstep_fieldnum\": [\n        \"int birdstep_fieldnum(int index)\",\n        \"\"\n    ],\n    \"birdstep_freeresult\": [\n        \"bool birdstep_freeresult(int index)\",\n        \"\"\n    ],\n    \"birdstep_off_autocommit\": [\n        \"bool birdstep_off_autocommit(int index)\",\n        \"\"\n    ],\n    \"birdstep_result\": [\n        \"mixed birdstep_result(int index, mixed col)\",\n        \"\"\n    ],\n    \"birdstep_rollback\": [\n        \"bool birdstep_rollback(int index)\",\n        \"\"\n    ],\n    \"bzcompress\": [\n        \"string bzcompress(string source [, int blocksize100k [, int workfactor]])\",\n        \"Compresses a string into BZip2 encoded data\"\n    ],\n    \"bzdecompress\": [\n        \"string bzdecompress(string source [, int small])\",\n        \"Decompresses BZip2 compressed data\"\n    ],\n    \"bzerrno\": [\n        \"int bzerrno(resource bz)\",\n        \"Returns the error number\"\n    ],\n    \"bzerror\": [\n        \"array bzerror(resource bz)\",\n        \"Returns the error number and error string in an associative array\"\n    ],\n    \"bzerrstr\": [\n        \"string bzerrstr(resource bz)\",\n        \"Returns the error string\"\n    ],\n    \"bzopen\": [\n        \"resource bzopen(string|int file|fp, string mode)\",\n        \"Opens a new BZip2 stream\"\n    ],\n    \"bzread\": [\n        \"string bzread(resource bz[, int length])\",\n        \"Reads up to length bytes from a BZip2 stream, or 1024 bytes if length is not specified\"\n    ],\n    \"cal_days_in_month\": [\n        \"int cal_days_in_month(int calendar, int month, int year)\",\n        \"Returns the number of days in a month for a given year and calendar\"\n    ],\n    \"cal_from_jd\": [\n        \"array cal_from_jd(int jd, int calendar)\",\n        \"Converts from Julian Day Count to a supported calendar and return extended information\"\n    ],\n    \"cal_info\": [\n        \"array cal_info([int calendar])\",\n        \"Returns information about a particular calendar\"\n    ],\n    \"cal_to_jd\": [\n        \"int cal_to_jd(int calendar, int month, int day, int year)\",\n        \"Converts from a supported calendar to Julian Day Count\"\n    ],\n    \"call_user_func\": [\n        \"mixed call_user_func(mixed function_name [, mixed parmeter] [, mixed ...])\",\n        \"Call a user function which is the first parameter\"\n    ],\n    \"call_user_func_array\": [\n        \"mixed call_user_func_array(string function_name, array parameters)\",\n        \"Call a user function which is the first parameter with the arguments contained in array\"\n    ],\n    \"call_user_method\": [\n        \"mixed call_user_method(string method_name, mixed object [, mixed parameter] [, mixed ...])\",\n        \"Call a user method on a specific object or class\"\n    ],\n    \"call_user_method_array\": [\n        \"mixed call_user_method_array(string method_name, mixed object, array params)\",\n        \"Call a user method on a specific object or class using a parameter array\"\n    ],\n    \"ceil\": [\n        \"float ceil(float number)\",\n        \"Returns the next highest integer value of the number\"\n    ],\n    \"chdir\": [\n        \"bool chdir(string directory)\",\n        \"Change the current directory\"\n    ],\n    \"checkdate\": [\n        \"bool checkdate(int month, int day, int year)\",\n        \"Returns true(1) if it is a valid date in gregorian calendar\"\n    ],\n    \"chgrp\": [\n        \"bool chgrp(string filename, mixed group)\",\n        \"Change file group\"\n    ],\n    \"chmod\": [\n        \"bool chmod(string filename, int mode)\",\n        \"Change file mode\"\n    ],\n    \"chown\": [\n        \"bool chown (string filename, mixed user)\",\n        \"Change file owner\"\n    ],\n    \"chr\": [\n        \"string chr(int ascii)\",\n        \"Converts ASCII code to a character\"\n    ],\n    \"chroot\": [\n        \"bool chroot(string directory)\",\n        \"Change root directory\"\n    ],\n    \"chunk_split\": [\n        \"string chunk_split(string str [, int chunklen [, string ending]])\",\n        \"Returns split line\"\n    ],\n    \"class_alias\": [\n        \"bool class_alias(string user_class_name , string alias_name [, bool autoload])\",\n        \"Creates an alias for user defined class\"\n    ],\n    \"class_exists\": [\n        \"bool class_exists(string classname [, bool autoload])\",\n        \"Checks if the class exists\"\n    ],\n    \"class_implements\": [\n        \"array class_implements(mixed what [, bool autoload ])\",\n        \"Return all classes and interfaces implemented by SPL\"\n    ],\n    \"class_parents\": [\n        \"array class_parents(object instance [, boolean autoload = true])\",\n        \"Return an array containing the names of all parent classes\"\n    ],\n    \"clearstatcache\": [\n        \"void clearstatcache([bool clear_realpath_cache[, string filename]])\",\n        \"Clear file stat cache\"\n    ],\n    \"closedir\": [\n        \"void closedir([resource dir_handle])\",\n        \"Close directory connection identified by the dir_handle\"\n    ],\n    \"closelog\": [\n        \"bool closelog(void)\",\n        \"Close connection to system logger\"\n    ],\n    \"collator_asort\": [\n        \"bool collator_asort( Collator $coll, array(string) $arr )\",\n        \"* Sort array using specified collator, maintaining index association.\"\n    ],\n    \"collator_compare\": [\n        \"int collator_compare( Collator $coll, string $str1, string $str2 )\",\n        \"* Compare two strings.\"\n    ],\n    \"collator_create\": [\n        \"Collator collator_create( string $locale )\",\n        \"* Create collator.\"\n    ],\n    \"collator_get_attribute\": [\n        \"int collator_get_attribute( Collator $coll, int $attr )\",\n        \"* Get collation attribute value.\"\n    ],\n    \"collator_get_error_code\": [\n        \"int collator_get_error_code( Collator $coll )\",\n        \"* Get collator's last error code.\"\n    ],\n    \"collator_get_error_message\": [\n        \"string collator_get_error_message( Collator $coll )\",\n        \"* Get text description for collator's last error code.\"\n    ],\n    \"collator_get_locale\": [\n        \"string collator_get_locale( Collator $coll, int $type )\",\n        \"* Gets the locale name of the collator.\"\n    ],\n    \"collator_get_sort_key\": [\n        \"bool collator_get_sort_key( Collator $coll, string $str )\",\n        \"* Get a sort key for a string from a Collator. }}}\"\n    ],\n    \"collator_get_strength\": [\n        \"int collator_get_strength(Collator coll)\",\n        \"* Returns the current collation strength.\"\n    ],\n    \"collator_set_attribute\": [\n        \"bool collator_set_attribute( Collator $coll, int $attr, int $val )\",\n        \"* Set collation attribute.\"\n    ],\n    \"collator_set_strength\": [\n        \"bool collator_set_strength(Collator coll, int strength)\",\n        \"* Set the collation strength.\"\n    ],\n    \"collator_sort\": [\n        \"bool collator_sort(  Collator $coll, array(string) $arr [, int $sort_flags] )\",\n        \"* Sort array using specified collator.\"\n    ],\n    \"collator_sort_with_sort_keys\": [\n        \"bool collator_sort_with_sort_keys( Collator $coll, array(string) $arr )\",\n        \"* Equivalent to standard PHP sort using Collator.  * Uses ICU ucol_getSortKey for performance.\"\n    ],\n    \"com_create_guid\": [\n        \"string com_create_guid()\",\n        \"Generate a globally unique identifier (GUID)\"\n    ],\n    \"com_event_sink\": [\n        \"bool com_event_sink(object comobject, object sinkobject [, mixed sinkinterface])\",\n        \"Connect events from a COM object to a PHP object\"\n    ],\n    \"com_get_active_object\": [\n        \"object com_get_active_object(string progid [, int code_page ])\",\n        \"Returns a handle to an already running instance of a COM object\"\n    ],\n    \"com_load_typelib\": [\n        \"bool com_load_typelib(string typelib_name [, int case_insensitive])\",\n        \"Loads a Typelibrary and registers its constants\"\n    ],\n    \"com_message_pump\": [\n        \"bool com_message_pump([int timeoutms])\",\n        \"Process COM messages, sleeping for up to timeoutms milliseconds\"\n    ],\n    \"com_print_typeinfo\": [\n        \"bool com_print_typeinfo(object comobject | string typelib, string dispinterface, bool wantsink)\",\n        \"Print out a PHP class definition for a dispatchable interface\"\n    ],\n    \"compact\": [\n        \"array compact(mixed var_names [, mixed ...])\",\n        \"Creates a hash containing variables and their values\"\n    ],\n    \"compose_locale\": [\n        \"static string compose_locale($array)\",\n        \"* Creates a locale by combining the parts of locale-ID passed  * }}}\"\n    ],\n    \"confirm_extname_compiled\": [\n        \"string confirm_extname_compiled(string arg)\",\n        \"Return a string to confirm that the module is compiled in\"\n    ],\n    \"connection_aborted\": [\n        \"int connection_aborted(void)\",\n        \"Returns true if client disconnected\"\n    ],\n    \"connection_status\": [\n        \"int connection_status(void)\",\n        \"Returns the connection status bitfield\"\n    ],\n    \"constant\": [\n        \"mixed constant(string const_name)\",\n        \"Given the name of a constant this function will return the constant's associated value\"\n    ],\n    \"convert_cyr_string\": [\n        \"string convert_cyr_string(string str, string from, string to)\",\n        \"Convert from one Cyrillic character set to another\"\n    ],\n    \"convert_uudecode\": [\n        \"string convert_uudecode(string data)\",\n        \"decode a uuencoded string\"\n    ],\n    \"convert_uuencode\": [\n        \"string convert_uuencode(string data)\",\n        \"uuencode a string\"\n    ],\n    \"copy\": [\n        \"bool copy(string source_file, string destination_file [, resource context])\",\n        \"Copy a file\"\n    ],\n    \"cos\": [\n        \"float cos(float number)\",\n        \"Returns the cosine of the number in radians\"\n    ],\n    \"cosh\": [\n        \"float cosh(float number)\",\n        \"Returns the hyperbolic cosine of the number, defined as (exp(number) + exp(-number))/2\"\n    ],\n    \"count\": [\n        \"int count(mixed var [, int mode])\",\n        \"Count the number of elements in a variable (usually an array)\"\n    ],\n    \"count_chars\": [\n        \"mixed count_chars(string input [, int mode])\",\n        \"Returns info about what characters are used in input\"\n    ],\n    \"crc32\": [\n        \"string crc32(string str)\",\n        \"Calculate the crc32 polynomial of a string\"\n    ],\n    \"create_function\": [\n        \"string create_function(string args, string code)\",\n        \"Creates an anonymous function, and returns its name (funny, eh?)\"\n    ],\n    \"crypt\": [\n        \"string crypt(string str [, string salt])\",\n        \"Hash a string\"\n    ],\n    \"ctype_alnum\": [\n        \"bool ctype_alnum(mixed c)\",\n        \"Checks for alphanumeric character(s)\"\n    ],\n    \"ctype_alpha\": [\n        \"bool ctype_alpha(mixed c)\",\n        \"Checks for alphabetic character(s)\"\n    ],\n    \"ctype_cntrl\": [\n        \"bool ctype_cntrl(mixed c)\",\n        \"Checks for control character(s)\"\n    ],\n    \"ctype_digit\": [\n        \"bool ctype_digit(mixed c)\",\n        \"Checks for numeric character(s)\"\n    ],\n    \"ctype_graph\": [\n        \"bool ctype_graph(mixed c)\",\n        \"Checks for any printable character(s) except space\"\n    ],\n    \"ctype_lower\": [\n        \"bool ctype_lower(mixed c)\",\n        \"Checks for lowercase character(s)\"\n    ],\n    \"ctype_print\": [\n        \"bool ctype_print(mixed c)\",\n        \"Checks for printable character(s)\"\n    ],\n    \"ctype_punct\": [\n        \"bool ctype_punct(mixed c)\",\n        \"Checks for any printable character which is not whitespace or an alphanumeric character\"\n    ],\n    \"ctype_space\": [\n        \"bool ctype_space(mixed c)\",\n        \"Checks for whitespace character(s)\"\n    ],\n    \"ctype_upper\": [\n        \"bool ctype_upper(mixed c)\",\n        \"Checks for uppercase character(s)\"\n    ],\n    \"ctype_xdigit\": [\n        \"bool ctype_xdigit(mixed c)\",\n        \"Checks for character(s) representing a hexadecimal digit\"\n    ],\n    \"curl_close\": [\n        \"void curl_close(resource ch)\",\n        \"Close a cURL session\"\n    ],\n    \"curl_copy_handle\": [\n        \"resource curl_copy_handle(resource ch)\",\n        \"Copy a cURL handle along with all of it's preferences\"\n    ],\n    \"curl_errno\": [\n        \"int curl_errno(resource ch)\",\n        \"Return an integer containing the last error number\"\n    ],\n    \"curl_error\": [\n        \"string curl_error(resource ch)\",\n        \"Return a string contain the last error for the current session\"\n    ],\n    \"curl_exec\": [\n        \"bool curl_exec(resource ch)\",\n        \"Perform a cURL session\"\n    ],\n    \"curl_getinfo\": [\n        \"mixed curl_getinfo(resource ch [, int option])\",\n        \"Get information regarding a specific transfer\"\n    ],\n    \"curl_init\": [\n        \"resource curl_init([string url])\",\n        \"Initialize a cURL session\"\n    ],\n    \"curl_multi_add_handle\": [\n        \"int curl_multi_add_handle(resource mh, resource ch)\",\n        \"Add a normal cURL handle to a cURL multi handle\"\n    ],\n    \"curl_multi_close\": [\n        \"void curl_multi_close(resource mh)\",\n        \"Close a set of cURL handles\"\n    ],\n    \"curl_multi_exec\": [\n        \"int curl_multi_exec(resource mh, int &still_running)\",\n        \"Run the sub-connections of the current cURL handle\"\n    ],\n    \"curl_multi_getcontent\": [\n        \"string curl_multi_getcontent(resource ch)\",\n        \"Return the content of a cURL handle if CURLOPT_RETURNTRANSFER is set\"\n    ],\n    \"curl_multi_info_read\": [\n        \"array curl_multi_info_read(resource mh [, long msgs_in_queue])\",\n        \"Get information about the current transfers\"\n    ],\n    \"curl_multi_init\": [\n        \"resource curl_multi_init(void)\",\n        \"Returns a new cURL multi handle\"\n    ],\n    \"curl_multi_remove_handle\": [\n        \"int curl_multi_remove_handle(resource mh, resource ch)\",\n        \"Remove a multi handle from a set of cURL handles\"\n    ],\n    \"curl_multi_select\": [\n        \"int curl_multi_select(resource mh[, double timeout])\",\n        \"Get all the sockets associated with the cURL extension, which can then be \\\"selected\\\"\"\n    ],\n    \"curl_setopt\": [\n        \"bool curl_setopt(resource ch, int option, mixed value)\",\n        \"Set an option for a cURL transfer\"\n    ],\n    \"curl_setopt_array\": [\n        \"bool curl_setopt_array(resource ch, array options)\",\n        \"Set an array of option for a cURL transfer\"\n    ],\n    \"curl_version\": [\n        \"array curl_version([int version])\",\n        \"Return cURL version information.\"\n    ],\n    \"current\": [\n        \"mixed current(array array_arg)\",\n        \"Return the element currently pointed to by the internal array pointer\"\n    ],\n    \"date\": [\n        \"string date(string format [, long timestamp])\",\n        \"Format a local date/time\"\n    ],\n    \"date_add\": [\n        \"DateTime date_add(DateTime object, DateInterval interval)\",\n        \"Adds an interval to the current date in object.\"\n    ],\n    \"date_create\": [\n        \"DateTime date_create([string time[, DateTimeZone object]])\",\n        \"Returns new DateTime object\"\n    ],\n    \"date_create_from_format\": [\n        \"DateTime date_create_from_format(string format, string time[, DateTimeZone object])\",\n        \"Returns new DateTime object formatted according to the specified format\"\n    ],\n    \"date_date_set\": [\n        \"DateTime date_date_set(DateTime object, long year, long month, long day)\",\n        \"Sets the date.\"\n    ],\n    \"date_default_timezone_get\": [\n        \"string date_default_timezone_get()\",\n        \"Gets the default timezone used by all date/time functions in a script\"\n    ],\n    \"date_default_timezone_set\": [\n        \"bool date_default_timezone_set(string timezone_identifier)\",\n        \"Sets the default timezone used by all date/time functions in a script\"\n    ],\n    \"date_diff\": [\n        \"DateInterval date_diff(DateTime object [, bool absolute])\",\n        \"Returns the difference between two DateTime objects.\"\n    ],\n    \"date_format\": [\n        \"string date_format(DateTime object, string format)\",\n        \"Returns date formatted according to given format\"\n    ],\n    \"date_get_last_errors\": [\n        \"array date_get_last_errors()\",\n        \"Returns the warnings and errors found while parsing a date/time string.\"\n    ],\n    \"date_interval_create_from_date_string\": [\n        \"DateInterval date_interval_create_from_date_string(string time)\",\n        \"Uses the normal date parsers and sets up a DateInterval from the relative parts of the parsed string\"\n    ],\n    \"date_interval_format\": [\n        \"string date_interval_format(DateInterval object, string format)\",\n        \"Formats the interval.\"\n    ],\n    \"date_isodate_set\": [\n        \"DateTime date_isodate_set(DateTime object, long year, long week[, long day])\",\n        \"Sets the ISO date.\"\n    ],\n    \"date_modify\": [\n        \"DateTime date_modify(DateTime object, string modify)\",\n        \"Alters the timestamp.\"\n    ],\n    \"date_offset_get\": [\n        \"long date_offset_get(DateTime object)\",\n        \"Returns the DST offset.\"\n    ],\n    \"date_parse\": [\n        \"array date_parse(string date)\",\n        \"Returns associative array with detailed info about given date\"\n    ],\n    \"date_parse_from_format\": [\n        \"array date_parse_from_format(string format, string date)\",\n        \"Returns associative array with detailed info about given date\"\n    ],\n    \"date_sub\": [\n        \"DateTime date_sub(DateTime object, DateInterval interval)\",\n        \"Subtracts an interval to the current date in object.\"\n    ],\n    \"date_sun_info\": [\n        \"array date_sun_info(long time, float latitude, float longitude)\",\n        \"Returns an array with information about sun set/rise and twilight begin/end\"\n    ],\n    \"date_sunrise\": [\n        \"mixed date_sunrise(mixed time [, int format [, float latitude [, float longitude [, float zenith [, float gmt_offset]]]]])\",\n        \"Returns time of sunrise for a given day and location\"\n    ],\n    \"date_sunset\": [\n        \"mixed date_sunset(mixed time [, int format [, float latitude [, float longitude [, float zenith [, float gmt_offset]]]]])\",\n        \"Returns time of sunset for a given day and location\"\n    ],\n    \"date_time_set\": [\n        \"DateTime date_time_set(DateTime object, long hour, long minute[, long second])\",\n        \"Sets the time.\"\n    ],\n    \"date_timestamp_get\": [\n        \"long date_timestamp_get(DateTime object)\",\n        \"Gets the Unix timestamp.\"\n    ],\n    \"date_timestamp_set\": [\n        \"DateTime date_timestamp_set(DateTime object, long unixTimestamp)\",\n        \"Sets the date and time based on an Unix timestamp.\"\n    ],\n    \"date_timezone_get\": [\n        \"DateTimeZone date_timezone_get(DateTime object)\",\n        \"Return new DateTimeZone object relative to give DateTime\"\n    ],\n    \"date_timezone_set\": [\n        \"DateTime date_timezone_set(DateTime object, DateTimeZone object)\",\n        \"Sets the timezone for the DateTime object.\"\n    ],\n    \"datefmt_create\": [\n        \"IntlDateFormatter datefmt_create(string $locale, long date_type, long time_type[, string $timezone_str, long $calendar, string $pattern] )\",\n        \"* Create formatter.\"\n    ],\n    \"datefmt_format\": [\n        \"string datefmt_format( [mixed]int $args or array $args )\",\n        \"* Format the time value as a string. }}}\"\n    ],\n    \"datefmt_get_calendar\": [\n        \"string datefmt_get_calendar( IntlDateFormatter $mf )\",\n        \"* Get formatter calendar.\"\n    ],\n    \"datefmt_get_datetype\": [\n        \"string datefmt_get_datetype( IntlDateFormatter $mf )\",\n        \"* Get formatter datetype.\"\n    ],\n    \"datefmt_get_error_code\": [\n        \"int datefmt_get_error_code( IntlDateFormatter $nf )\",\n        \"* Get formatter's last error code.\"\n    ],\n    \"datefmt_get_error_message\": [\n        \"string datefmt_get_error_message( IntlDateFormatter $coll )\",\n        \"* Get text description for formatter's last error code.\"\n    ],\n    \"datefmt_get_locale\": [\n        \"string datefmt_get_locale(IntlDateFormatter $mf)\",\n        \"* Get formatter locale.\"\n    ],\n    \"datefmt_get_pattern\": [\n        \"string datefmt_get_pattern( IntlDateFormatter $mf )\",\n        \"* Get formatter pattern.\"\n    ],\n    \"datefmt_get_timetype\": [\n        \"string datefmt_get_timetype( IntlDateFormatter $mf )\",\n        \"* Get formatter timetype.\"\n    ],\n    \"datefmt_get_timezone_id\": [\n        \"string datefmt_get_timezone_id( IntlDateFormatter $mf )\",\n        \"* Get formatter timezone_id.\"\n    ],\n    \"datefmt_isLenient\": [\n        \"string datefmt_isLenient(IntlDateFormatter $mf)\",\n        \"* Get formatter locale.\"\n    ],\n    \"datefmt_localtime\": [\n        \"integer datefmt_localtime( IntlDateFormatter $fmt, string $text_to_parse[, int $parse_pos ])\",\n        \"* Parse the string $value to a localtime array  }}}\"\n    ],\n    \"datefmt_parse\": [\n        \"integer datefmt_parse( IntlDateFormatter $fmt, string $text_to_parse [, int $parse_pos] )\",\n        \"* Parse the string $value starting at parse_pos to a Unix timestamp -int }}}\"\n    ],\n    \"datefmt_setLenient\": [\n        \"string datefmt_setLenient(IntlDateFormatter $mf)\",\n        \"* Set formatter lenient.\"\n    ],\n    \"datefmt_set_calendar\": [\n        \"bool datefmt_set_calendar( IntlDateFormatter $mf, int $calendar )\",\n        \"* Set formatter calendar.\"\n    ],\n    \"datefmt_set_pattern\": [\n        \"bool datefmt_set_pattern( IntlDateFormatter $mf, string $pattern )\",\n        \"* Set formatter pattern.\"\n    ],\n    \"datefmt_set_timezone_id\": [\n        \"boolean datefmt_set_timezone_id( IntlDateFormatter $mf,$timezone_id)\",\n        \"* Set formatter timezone_id.\"\n    ],\n    \"dba_close\": [\n        \"void dba_close(resource handle)\",\n        \"Closes database\"\n    ],\n    \"dba_delete\": [\n        \"bool dba_delete(string key, resource handle)\",\n        \"Deletes the entry associated with key    If inifile: remove all other key lines\"\n    ],\n    \"dba_exists\": [\n        \"bool dba_exists(string key, resource handle)\",\n        \"Checks, if the specified key exists\"\n    ],\n    \"dba_fetch\": [\n        \"string dba_fetch(string key, [int skip ,] resource handle)\",\n        \"Fetches the data associated with key\"\n    ],\n    \"dba_firstkey\": [\n        \"string dba_firstkey(resource handle)\",\n        \"Resets the internal key pointer and returns the first key\"\n    ],\n    \"dba_handlers\": [\n        \"array dba_handlers([bool full_info])\",\n        \"List configured database handlers\"\n    ],\n    \"dba_insert\": [\n        \"bool dba_insert(string key, string value, resource handle)\",\n        \"If not inifile: Insert value as key, return false, if key exists already     If inifile: Add vakue as key (next instance of key)\"\n    ],\n    \"dba_key_split\": [\n        \"array|false dba_key_split(string key)\",\n        \"Splits an inifile key into an array of the form array(0=>group,1=>value_name) but returns false if input is false or null\"\n    ],\n    \"dba_list\": [\n        \"array dba_list()\",\n        \"List opened databases\"\n    ],\n    \"dba_nextkey\": [\n        \"string dba_nextkey(resource handle)\",\n        \"Returns the next key\"\n    ],\n    \"dba_open\": [\n        \"resource dba_open(string path, string mode [, string handlername, string ...])\",\n        \"Opens path using the specified handler in mode\"\n    ],\n    \"dba_optimize\": [\n        \"bool dba_optimize(resource handle)\",\n        \"Optimizes (e.g. clean up, vacuum) database\"\n    ],\n    \"dba_popen\": [\n        \"resource dba_popen(string path, string mode [, string handlername, string ...])\",\n        \"Opens path using the specified handler in mode persistently\"\n    ],\n    \"dba_replace\": [\n        \"bool dba_replace(string key, string value, resource handle)\",\n        \"Inserts value as key, replaces key, if key exists already    If inifile: remove all other key lines\"\n    ],\n    \"dba_sync\": [\n        \"bool dba_sync(resource handle)\",\n        \"Synchronizes database\"\n    ],\n    \"dcgettext\": [\n        \"string dcgettext(string domain_name, string msgid, long category)\",\n        \"Return the translation of msgid for domain_name and category, or msgid unaltered if a translation does not exist\"\n    ],\n    \"dcngettext\": [\n        \"string dcngettext (string domain, string msgid1, string msgid2, int n, int category)\",\n        \"Plural version of dcgettext()\"\n    ],\n    \"debug_backtrace\": [\n        \"array debug_backtrace([bool provide_object])\",\n        \"Return backtrace as array\"\n    ],\n    \"debug_print_backtrace\": [\n        \"void debug_print_backtrace(void) */\",\n        \"ZEND_FUNCTION(debug_print_backtrace) {  zend_execute_data *ptr, *skip;  int lineno;  char *function_name;  char *filename;  char *class_name = NULL;  char *call_type;  char *include_filename = NULL;  zval *arg_array = NULL;  int indent = 0;   if (zend_parse_parameters_none() == FAILURE) {   return;  }   ptr = EG(current_execute_data);\",\n        \"PHP_FUNCTION(dom_document_relaxNG_validate_file) {  _dom_document_relaxNG_validate(INTERNAL_FUNCTION_PARAM_PASSTHRU, DOM_LOAD_FILE); } /* }}} end dom_document_relaxNG_validate_file\"\n    ],\n    \"dom_document_relaxNG_validate_xml\": [\n        \"boolean dom_document_relaxNG_validate_xml(string source); */\",\n        \"PHP_FUNCTION(dom_document_relaxNG_validate_xml) {  _dom_document_relaxNG_validate(INTERNAL_FUNCTION_PARAM_PASSTHRU, DOM_LOAD_STRING); } /* }}} end dom_document_relaxNG_validate_xml\"\n    ],\n    \"dom_document_rename_node\": [\n        \"DOMNode dom_document_rename_node(node n, string namespaceURI, string qualifiedName);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Document3-renameNode Since: DOM Level 3\"\n    ],\n    \"dom_document_save\": [\n        \"int dom_document_save(string file);\",\n        \"Convenience method to save to file\"\n    ],\n    \"dom_document_save_html\": [\n        \"string dom_document_save_html();\",\n        \"Convenience method to output as html\"\n    ],\n    \"dom_document_save_html_file\": [\n        \"int dom_document_save_html_file(string file);\",\n        \"Convenience method to save to file as html\"\n    ],\n    \"dom_document_savexml\": [\n        \"string dom_document_savexml([node n]);\",\n        \"URL: http://www.w3.org/TR/DOM-Level-3-LS/load-save.html#LS-DocumentLS-saveXML Since: DOM Level 3\"\n    ],\n    \"dom_document_schema_validate\": [\n        \"boolean dom_document_schema_validate(string source); */\",\n        \"PHP_FUNCTION(dom_document_schema_validate_xml) {  _dom_document_schema_validate(INTERNAL_FUNCTION_PARAM_PASSTHRU, DOM_LOAD_STRING); } /* }}} end dom_document_schema_validate\"\n    ],\n    \"dom_document_schema_validate_file\": [\n        \"boolean dom_document_schema_validate_file(string filename); */\",\n        \"PHP_FUNCTION(dom_document_schema_validate_file) {  _dom_document_schema_validate(INTERNAL_FUNCTION_PARAM_PASSTHRU, DOM_LOAD_FILE); } /* }}} end dom_document_schema_validate_file\"\n    ],\n    \"dom_document_validate\": [\n        \"boolean dom_document_validate();\",\n        \"Since: DOM extended\"\n    ],\n    \"dom_document_xinclude\": [\n        \"int dom_document_xinclude([int options])\",\n        \"Substitutues xincludes in a DomDocument\"\n    ],\n    \"dom_domconfiguration_can_set_parameter\": [\n        \"boolean dom_domconfiguration_can_set_parameter(string name, domuserdata value);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMConfiguration-canSetParameter Since:\"\n    ],\n    \"dom_domconfiguration_get_parameter\": [\n        \"domdomuserdata dom_domconfiguration_get_parameter(string name);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMConfiguration-getParameter Since:\"\n    ],\n    \"dom_domconfiguration_set_parameter\": [\n        \"dom_void dom_domconfiguration_set_parameter(string name, domuserdata value);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMConfiguration-property Since:\"\n    ],\n    \"dom_domerrorhandler_handle_error\": [\n        \"dom_boolean dom_domerrorhandler_handle_error(domerror error);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-ERRORS-DOMErrorHandler-handleError Since:\"\n    ],\n    \"dom_domimplementation_create_document\": [\n        \"DOMDocument dom_domimplementation_create_document(string namespaceURI, string qualifiedName, DOMDocumentType doctype);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Level-2-Core-DOM-createDocument Since: DOM Level 2\"\n    ],\n    \"dom_domimplementation_create_document_type\": [\n        \"DOMDocumentType dom_domimplementation_create_document_type(string qualifiedName, string publicId, string systemId);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Level-2-Core-DOM-createDocType Since: DOM Level 2\"\n    ],\n    \"dom_domimplementation_get_feature\": [\n        \"DOMNode dom_domimplementation_get_feature(string feature, string version);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMImplementation3-getFeature Since: DOM Level 3\"\n    ],\n    \"dom_domimplementation_has_feature\": [\n        \"boolean dom_domimplementation_has_feature(string feature, string version);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-5CED94D7 Since:\"\n    ],\n    \"dom_domimplementationlist_item\": [\n        \"domdomimplementation dom_domimplementationlist_item(int index);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMImplementationList-item Since:\"\n    ],\n    \"dom_domimplementationsource_get_domimplementation\": [\n        \"domdomimplementation dom_domimplementationsource_get_domimplementation(string features);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-getDOMImpl Since:\"\n    ],\n    \"dom_domimplementationsource_get_domimplementations\": [\n        \"domimplementationlist dom_domimplementationsource_get_domimplementations(string features);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-getDOMImpls Since:\"\n    ],\n    \"dom_domstringlist_item\": [\n        \"domstring dom_domstringlist_item(int index);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMStringList-item Since:\"\n    ],\n    \"dom_element_get_attribute\": [\n        \"string dom_element_get_attribute(string name);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-666EE0F9 Since:\"\n    ],\n    \"dom_element_get_attribute_node\": [\n        \"DOMAttr dom_element_get_attribute_node(string name);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-217A91B8 Since:\"\n    ],\n    \"dom_element_get_attribute_node_ns\": [\n        \"DOMAttr dom_element_get_attribute_node_ns(string namespaceURI, string localName);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElGetAtNodeNS Since: DOM Level 2\"\n    ],\n    \"dom_element_get_attribute_ns\": [\n        \"string dom_element_get_attribute_ns(string namespaceURI, string localName);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElGetAttrNS Since: DOM Level 2\"\n    ],\n    \"dom_element_get_elements_by_tag_name\": [\n        \"DOMNodeList dom_element_get_elements_by_tag_name(string name);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1938918D Since:\"\n    ],\n    \"dom_element_get_elements_by_tag_name_ns\": [\n        \"DOMNodeList dom_element_get_elements_by_tag_name_ns(string namespaceURI, string localName);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-A6C90942 Since: DOM Level 2\"\n    ],\n    \"dom_element_has_attribute\": [\n        \"boolean dom_element_has_attribute(string name);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElHasAttr Since: DOM Level 2\"\n    ],\n    \"dom_element_has_attribute_ns\": [\n        \"boolean dom_element_has_attribute_ns(string namespaceURI, string localName);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElHasAttrNS Since: DOM Level 2\"\n    ],\n    \"dom_element_remove_attribute\": [\n        \"void dom_element_remove_attribute(string name);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-6D6AC0F9 Since:\"\n    ],\n    \"dom_element_remove_attribute_node\": [\n        \"DOMAttr dom_element_remove_attribute_node(DOMAttr oldAttr);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-D589198 Since:\"\n    ],\n    \"dom_element_remove_attribute_ns\": [\n        \"void dom_element_remove_attribute_ns(string namespaceURI, string localName);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElRemAtNS Since: DOM Level 2\"\n    ],\n    \"dom_element_set_attribute\": [\n        \"void dom_element_set_attribute(string name, string value);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-F68F082 Since:\"\n    ],\n    \"dom_element_set_attribute_node\": [\n        \"DOMAttr dom_element_set_attribute_node(DOMAttr newAttr);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-887236154 Since:\"\n    ],\n    \"dom_element_set_attribute_node_ns\": [\n        \"DOMAttr dom_element_set_attribute_node_ns(DOMAttr newAttr);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetAtNodeNS Since: DOM Level 2\"\n    ],\n    \"dom_element_set_attribute_ns\": [\n        \"void dom_element_set_attribute_ns(string namespaceURI, string qualifiedName, string value);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetAttrNS Since: DOM Level 2\"\n    ],\n    \"dom_element_set_id_attribute\": [\n        \"void dom_element_set_id_attribute(string name, boolean isId);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetIdAttr Since: DOM Level 3\"\n    ],\n    \"dom_element_set_id_attribute_node\": [\n        \"void dom_element_set_id_attribute_node(attr idAttr, boolean isId);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetIdAttrNode Since: DOM Level 3\"\n    ],\n    \"dom_element_set_id_attribute_ns\": [\n        \"void dom_element_set_id_attribute_ns(string namespaceURI, string localName, boolean isId);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetIdAttrNS Since: DOM Level 3\"\n    ],\n    \"dom_import_simplexml\": [\n        \"somNode dom_import_simplexml(sxeobject node)\",\n        \"Get a simplexml_element object from dom to allow for processing\"\n    ],\n    \"dom_namednodemap_get_named_item\": [\n        \"DOMNode dom_namednodemap_get_named_item(string name);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1074577549 Since:\"\n    ],\n    \"dom_namednodemap_get_named_item_ns\": [\n        \"DOMNode dom_namednodemap_get_named_item_ns(string namespaceURI, string localName);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-getNamedItemNS Since: DOM Level 2\"\n    ],\n    \"dom_namednodemap_item\": [\n        \"DOMNode dom_namednodemap_item(int index);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-349467F9 Since:\"\n    ],\n    \"dom_namednodemap_remove_named_item\": [\n        \"DOMNode dom_namednodemap_remove_named_item(string name);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-D58B193 Since:\"\n    ],\n    \"dom_namednodemap_remove_named_item_ns\": [\n        \"DOMNode dom_namednodemap_remove_named_item_ns(string namespaceURI, string localName);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-removeNamedItemNS Since: DOM Level 2\"\n    ],\n    \"dom_namednodemap_set_named_item\": [\n        \"DOMNode dom_namednodemap_set_named_item(DOMNode arg);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1025163788 Since:\"\n    ],\n    \"dom_namednodemap_set_named_item_ns\": [\n        \"DOMNode dom_namednodemap_set_named_item_ns(DOMNode arg);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-setNamedItemNS Since: DOM Level 2\"\n    ],\n    \"dom_namelist_get_name\": [\n        \"string dom_namelist_get_name(int index);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#NameList-getName Since:\"\n    ],\n    \"dom_namelist_get_namespace_uri\": [\n        \"string dom_namelist_get_namespace_uri(int index);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#NameList-getNamespaceURI Since:\"\n    ],\n    \"dom_node_append_child\": [\n        \"DomNode dom_node_append_child(DomNode newChild);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-184E7107 Since:\"\n    ],\n    \"dom_node_clone_node\": [\n        \"DomNode dom_node_clone_node(boolean deep);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-3A0ED0A4 Since:\"\n    ],\n    \"dom_node_compare_document_position\": [\n        \"short dom_node_compare_document_position(DomNode other);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-compareDocumentPosition Since: DOM Level 3\"\n    ],\n    \"dom_node_get_feature\": [\n        \"DomNode dom_node_get_feature(string feature, string version);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-getFeature Since: DOM Level 3\"\n    ],\n    \"dom_node_get_user_data\": [\n        \"mixed dom_node_get_user_data(string key);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-getUserData Since: DOM Level 3\"\n    ],\n    \"dom_node_has_attributes\": [\n        \"boolean dom_node_has_attributes();\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-NodeHasAttrs Since: DOM Level 2\"\n    ],\n    \"dom_node_has_child_nodes\": [\n        \"boolean dom_node_has_child_nodes();\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-810594187 Since:\"\n    ],\n    \"dom_node_insert_before\": [\n        \"domnode dom_node_insert_before(DomNode newChild, DomNode refChild);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-952280727 Since:\"\n    ],\n    \"dom_node_is_default_namespace\": [\n        \"boolean dom_node_is_default_namespace(string namespaceURI);\",\n        \"URL: http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-isDefaultNamespace Since: DOM Level 3\"\n    ],\n    \"dom_node_is_equal_node\": [\n        \"boolean dom_node_is_equal_node(DomNode arg);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-isEqualNode Since: DOM Level 3\"\n    ],\n    \"dom_node_is_same_node\": [\n        \"boolean dom_node_is_same_node(DomNode other);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-isSameNode Since: DOM Level 3\"\n    ],\n    \"dom_node_is_supported\": [\n        \"boolean dom_node_is_supported(string feature, string version);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Level-2-Core-Node-supports Since: DOM Level 2\"\n    ],\n    \"dom_node_lookup_namespace_uri\": [\n        \"string dom_node_lookup_namespace_uri(string prefix);\",\n        \"URL: http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespaceURI Since: DOM Level 3\"\n    ],\n    \"dom_node_lookup_prefix\": [\n        \"string dom_node_lookup_prefix(string namespaceURI);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-lookupNamespacePrefix Since: DOM Level 3\"\n    ],\n    \"dom_node_normalize\": [\n        \"void dom_node_normalize();\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-normalize Since:\"\n    ],\n    \"dom_node_remove_child\": [\n        \"DomNode dom_node_remove_child(DomNode oldChild);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1734834066 Since:\"\n    ],\n    \"dom_node_replace_child\": [\n        \"DomNode dom_node_replace_child(DomNode newChild, DomNode oldChild);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-785887307 Since:\"\n    ],\n    \"dom_node_set_user_data\": [\n        \"mixed dom_node_set_user_data(string key, mixed data, userdatahandler handler);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-setUserData Since: DOM Level 3\"\n    ],\n    \"dom_nodelist_item\": [\n        \"DOMNode dom_nodelist_item(int index);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-844377136 Since:\"\n    ],\n    \"dom_string_extend_find_offset16\": [\n        \"int dom_string_extend_find_offset16(int offset32);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#i18n-methods-StringExtend-findOffset16 Since:\"\n    ],\n    \"dom_string_extend_find_offset32\": [\n        \"int dom_string_extend_find_offset32(int offset16);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#i18n-methods-StringExtend-findOffset32 Since:\"\n    ],\n    \"dom_text_is_whitespace_in_element_content\": [\n        \"boolean dom_text_is_whitespace_in_element_content();\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Text3-isWhitespaceInElementContent Since: DOM Level 3\"\n    ],\n    \"dom_text_replace_whole_text\": [\n        \"DOMText dom_text_replace_whole_text(string content);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Text3-replaceWholeText Since: DOM Level 3\"\n    ],\n    \"dom_text_split_text\": [\n        \"DOMText dom_text_split_text(int offset);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-38853C1D Since:\"\n    ],\n    \"dom_userdatahandler_handle\": [\n        \"dom_void dom_userdatahandler_handle(short operation, string key, domobject data, node src, node dst);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-handleUserDataEvent Since:\"\n    ],\n    \"dom_xpath_evaluate\": [\n        \"mixed dom_xpath_evaluate(string expr [,DOMNode context]); */\",\n        \"PHP_FUNCTION(dom_xpath_evaluate) {  php_xpath_eval(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_DOM_XPATH_EVALUATE); } /* }}} end dom_xpath_evaluate\"\n    ],\n    \"dom_xpath_query\": [\n        \"DOMNodeList dom_xpath_query(string expr [,DOMNode context]); */\",\n        \"PHP_FUNCTION(dom_xpath_query) {  php_xpath_eval(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_DOM_XPATH_QUERY); } /* }}} end dom_xpath_query\"\n    ],\n    \"dom_xpath_register_ns\": [\n        \"boolean dom_xpath_register_ns(string prefix, string uri); */\",\n        \"PHP_FUNCTION(dom_xpath_register_ns) {  zval *id;  xmlXPathContextPtr ctxp;  int prefix_len, ns_uri_len;  dom_xpath_object *intern;  unsigned char *prefix, *ns_uri;   if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), \\\"Oss\\\", &id, dom_xpath_class_entry, &prefix, &prefix_len, &ns_uri, &ns_uri_len) == FAILURE) {   return;  }   intern = (dom_xpath_object *)zend_object_store_get_object(id TSRMLS_CC);   ctxp = (xmlXPathContextPtr) intern->ptr;  if (ctxp == NULL) {   php_error_docref(NULL TSRMLS_CC, E_WARNING, \\\"Invalid XPath Context\\\");   RETURN_FALSE;  }   if (xmlXPathRegisterNs(ctxp, prefix, ns_uri) != 0) {   RETURN_FALSE  }  RETURN_TRUE; } /* }}}\"\n    ],\n    \"dom_xpath_register_php_functions\": [\n        \"void dom_xpath_register_php_functions() */\",\n        \"PHP_FUNCTION(dom_xpath_register_php_functions) {  zval *id;  dom_xpath_object *intern;  zval *array_value, **entry, *new_string;  int  name_len = 0;  char *name;   DOM_GET_THIS(id);    if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, \\\"a\\\",  &array_value) == SUCCESS) {   intern = (dom_xpath_object *)zend_object_store_get_object(id TSRMLS_CC);   zend_hash_internal_pointer_reset(Z_ARRVAL_P(array_value));    while (zend_hash_get_current_data(Z_ARRVAL_P(array_value), (void **)&entry) == SUCCESS) {    SEPARATE_ZVAL(entry);    convert_to_string_ex(entry);     MAKE_STD_ZVAL(new_string);    ZVAL_LONG(new_string,1);       zend_hash_update(intern->registered_phpfunctions, Z_STRVAL_PP(entry), Z_STRLEN_PP(entry) + 1, &new_string, sizeof(zval*), NULL);    zend_hash_move_forward(Z_ARRVAL_P(array_value));   }   intern->registerPhpFunctions = 2;   RETURN_TRUE;   } else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, \\\"s\\\",  &name, &name_len) == SUCCESS) {   intern = (dom_xpath_object *)zend_object_store_get_object(id TSRMLS_CC);      MAKE_STD_ZVAL(new_string);   ZVAL_LONG(new_string,1);   zend_hash_update(intern->registered_phpfunctions, name, name_len + 1, &new_string, sizeof(zval*), NULL);   intern->registerPhpFunctions = 2;     } else {   intern = (dom_xpath_object *)zend_object_store_get_object(id TSRMLS_CC);   intern->registerPhpFunctions = 1;  }   } /* }}} end dom_xpath_register_php_functions\"\n    ],\n    \"each\": [\n        \"array each(array arr)\",\n        \"Return the currently pointed key..value pair in the passed array, and advance the pointer to the next element\"\n    ],\n    \"easter_date\": [\n        \"int easter_date([int year])\",\n        \"Return the timestamp of midnight on Easter of a given year (defaults to current year)\"\n    ],\n    \"easter_days\": [\n        \"int easter_days([int year, [int method]])\",\n        \"Return the number of days after March 21 that Easter falls on for a given year (defaults to current year)\"\n    ],\n    \"echo\": [\n        \"void echo(string arg1 [, string ...])\",\n        \"Output one or more strings\"\n    ],\n    \"empty\": [\n        \"bool empty( mixed var )\",\n        \"Determine whether a variable is empty\"\n    ],\n    \"enchant_broker_describe\": [\n        \"array enchant_broker_describe(resource broker)\",\n        \"Enumerates the Enchant providers and tells you some rudimentary information about them. The same info is provided through phpinfo()\"\n    ],\n    \"enchant_broker_dict_exists\": [\n        \"bool enchant_broker_dict_exists(resource broker, string tag)\",\n        \"Wether a dictionary exists or not. Using non-empty tag\"\n    ],\n    \"enchant_broker_free\": [\n        \"boolean enchant_broker_free(resource broker)\",\n        \"Destroys the broker object and its dictionnaries\"\n    ],\n    \"enchant_broker_free_dict\": [\n        \"resource enchant_broker_free_dict(resource dict)\",\n        \"Free the dictionary resource\"\n    ],\n    \"enchant_broker_get_dict_path\": [\n        \"string enchant_broker_get_dict_path(resource broker, int dict_type)\",\n        \"Get the directory path for a given backend, works with ispell and myspell\"\n    ],\n    \"enchant_broker_get_error\": [\n        \"string enchant_broker_get_error(resource broker)\",\n        \"Returns the last error of the broker\"\n    ],\n    \"enchant_broker_init\": [\n        \"resource enchant_broker_init()\",\n        \"create a new broker object capable of requesting\"\n    ],\n    \"enchant_broker_list_dicts\": [\n        \"string enchant_broker_list_dicts(resource broker)\",\n        \"Lists the dictionaries available for the given broker\"\n    ],\n    \"enchant_broker_request_dict\": [\n        \"resource enchant_broker_request_dict(resource broker, string tag)\",\n        \"create a new dictionary using tag, the non-empty language tag you wish to request  a dictionary for (\\\"en_US\\\", \\\"de_DE\\\", ...)\"\n    ],\n    \"enchant_broker_request_pwl_dict\": [\n        \"resource enchant_broker_request_pwl_dict(resource broker, string filename)\",\n        \"creates a dictionary using a PWL file. A PWL file is personal word file one word per line. It must exist before the call.\"\n    ],\n    \"enchant_broker_set_dict_path\": [\n        \"bool enchant_broker_set_dict_path(resource broker, int dict_type, string value)\",\n        \"Set the directory path for a given backend, works with ispell and myspell\"\n    ],\n    \"enchant_broker_set_ordering\": [\n        \"bool enchant_broker_set_ordering(resource broker, string tag, string ordering)\",\n        \"Declares a preference of dictionaries to use for the language  described/referred to by 'tag'. The ordering is a comma delimited  list of provider names. As a special exception, the \\\"*\\\" tag can  be used as a language tag to declare a default ordering for any  language that does not explictly declare an ordering.\"\n    ],\n    \"enchant_dict_add_to_personal\": [\n        \"void enchant_dict_add_to_personal(resource dict, string word)\",\n        \"add 'word' to personal word list\"\n    ],\n    \"enchant_dict_add_to_session\": [\n        \"void enchant_dict_add_to_session(resource dict, string word)\",\n        \"add 'word' to this spell-checking session\"\n    ],\n    \"enchant_dict_check\": [\n        \"bool enchant_dict_check(resource dict, string word)\",\n        \"If the word is correctly spelled return true, otherwise return false\"\n    ],\n    \"enchant_dict_describe\": [\n        \"array enchant_dict_describe(resource dict)\",\n        \"Describes an individual dictionary 'dict'\"\n    ],\n    \"enchant_dict_get_error\": [\n        \"string enchant_dict_get_error(resource dict)\",\n        \"Returns the last error of the current spelling-session\"\n    ],\n    \"enchant_dict_is_in_session\": [\n        \"bool enchant_dict_is_in_session(resource dict, string word)\",\n        \"whether or not 'word' exists in this spelling-session\"\n    ],\n    \"enchant_dict_quick_check\": [\n        \"bool enchant_dict_quick_check(resource dict, string word [, array &suggestions])\",\n        \"If the word is correctly spelled return true, otherwise return false, if suggestions variable     is provided, fill it with spelling alternatives.\"\n    ],\n    \"enchant_dict_store_replacement\": [\n        \"void enchant_dict_store_replacement(resource dict, string mis, string cor)\",\n        \"add a correction for 'mis' using 'cor'.  Notes that you replaced @mis with @cor, so it's possibly more likely  that future occurrences of @mis will be replaced with @cor. So it might  bump @cor up in the suggestion list.\"\n    ],\n    \"enchant_dict_suggest\": [\n        \"array enchant_dict_suggest(resource dict, string word)\",\n        \"Will return a list of values if any of those pre-conditions are not met.\"\n    ],\n    \"end\": [\n        \"mixed end(array array_arg)\",\n        \"Advances array argument's internal pointer to the last element and return it\"\n    ],\n    \"ereg\": [\n        \"int ereg(string pattern, string string [, array registers])\",\n        \"Regular expression match\"\n    ],\n    \"ereg_replace\": [\n        \"string ereg_replace(string pattern, string replacement, string string)\",\n        \"Replace regular expression\"\n    ],\n    \"eregi\": [\n        \"int eregi(string pattern, string string [, array registers])\",\n        \"Case-insensitive regular expression match\"\n    ],\n    \"eregi_replace\": [\n        \"string eregi_replace(string pattern, string replacement, string string)\",\n        \"Case insensitive replace regular expression\"\n    ],\n    \"error_get_last\": [\n        \"array error_get_last()\",\n        \"Get the last occurred error as associative array. Returns NULL if there hasn't been an error yet.\"\n    ],\n    \"error_log\": [\n        \"bool error_log(string message [, int message_type [, string destination [, string extra_headers]]])\",\n        \"Send an error message somewhere\"\n    ],\n    \"error_reporting\": [\n        \"int error_reporting([int new_error_level])\",\n        \"Return the current error_reporting level, and if an argument was passed - change to the new level\"\n    ],\n    \"escapeshellarg\": [\n        \"string escapeshellarg(string arg)\",\n        \"Quote and escape an argument for use in a shell command\"\n    ],\n    \"escapeshellcmd\": [\n        \"string escapeshellcmd(string command)\",\n        \"Escape shell metacharacters\"\n    ],\n    \"exec\": [\n        \"string exec(string command [, array &output [, int &return_value]])\",\n        \"Execute an external program\"\n    ],\n    \"exif_imagetype\": [\n        \"int exif_imagetype(string imagefile)\",\n        \"Get the type of an image\"\n    ],\n    \"exif_read_data\": [\n        \"array exif_read_data(string filename [, sections_needed [, sub_arrays[, read_thumbnail]]])\",\n        \"Reads header data from the JPEG/TIFF image filename and optionally reads the internal thumbnails\"\n    ],\n    \"exif_tagname\": [\n        \"string exif_tagname(index)\",\n        \"Get headername for index or false if not defined\"\n    ],\n    \"exif_thumbnail\": [\n        \"string exif_thumbnail(string filename [, &width, &height [, &imagetype]])\",\n        \"Reads the embedded thumbnail\"\n    ],\n    \"exit\": [\n        \"void exit([mixed status])\",\n        \"Output a message and terminate the current script\"\n    ],\n    \"exp\": [\n        \"float exp(float number)\",\n        \"Returns e raised to the power of the number\"\n    ],\n    \"explode\": [\n        \"array explode(string separator, string str [, int limit])\",\n        \"Splits a string on string separator and return array of components. If limit is positive only limit number of components is returned. If limit is negative all components except the last abs(limit) are returned.\"\n    ],\n    \"expm1\": [\n        \"float expm1(float number)\",\n        \"Returns exp(number) - 1, computed in a way that accurate even when the value of number is close to zero\"\n    ],\n    \"extension_loaded\": [\n        \"bool extension_loaded(string extension_name)\",\n        \"Returns true if the named extension is loaded\"\n    ],\n    \"extract\": [\n        \"int extract(array var_array [, int extract_type [, string prefix]])\",\n        \"Imports variables into symbol table from an array\"\n    ],\n    \"ezmlm_hash\": [\n        \"int ezmlm_hash(string addr)\",\n        \"Calculate EZMLM list hash value.\"\n    ],\n    \"fclose\": [\n        \"bool fclose(resource fp)\",\n        \"Close an open file pointer\"\n    ],\n    \"feof\": [\n        \"bool feof(resource fp)\",\n        \"Test for end-of-file on a file pointer\"\n    ],\n    \"fflush\": [\n        \"bool fflush(resource fp)\",\n        \"Flushes output\"\n    ],\n    \"fgetc\": [\n        \"string fgetc(resource fp)\",\n        \"Get a character from file pointer\"\n    ],\n    \"fgetcsv\": [\n        \"array fgetcsv(resource fp [,int length [, string delimiter [, string enclosure [, string escape]]]])\",\n        \"Get line from file pointer and parse for CSV fields\"\n    ],\n    \"fgets\": [\n        \"string fgets(resource fp[, int length])\",\n        \"Get a line from file pointer\"\n    ],\n    \"fgetss\": [\n        \"string fgetss(resource fp [, int length [, string allowable_tags]])\",\n        \"Get a line from file pointer and strip HTML tags\"\n    ],\n    \"file\": [\n        \"array file(string filename [, int flags[, resource context]])\",\n        \"Read entire file into an array\"\n    ],\n    \"file_exists\": [\n        \"bool file_exists(string filename)\",\n        \"Returns true if filename exists\"\n    ],\n    \"file_get_contents\": [\n        \"string file_get_contents(string filename [, bool use_include_path [, resource context [, long offset [, long maxlen]]]])\",\n        \"Read the entire file into a string\"\n    ],\n    \"file_put_contents\": [\n        \"int file_put_contents(string file, mixed data [, int flags [, resource context]])\",\n        \"Write/Create a file with contents data and return the number of bytes written\"\n    ],\n    \"fileatime\": [\n        \"int fileatime(string filename)\",\n        \"Get last access time of file\"\n    ],\n    \"filectime\": [\n        \"int filectime(string filename)\",\n        \"Get inode modification time of file\"\n    ],\n    \"filegroup\": [\n        \"int filegroup(string filename)\",\n        \"Get file group\"\n    ],\n    \"fileinode\": [\n        \"int fileinode(string filename)\",\n        \"Get file inode\"\n    ],\n    \"filemtime\": [\n        \"int filemtime(string filename)\",\n        \"Get last modification time of file\"\n    ],\n    \"fileowner\": [\n        \"int fileowner(string filename)\",\n        \"Get file owner\"\n    ],\n    \"fileperms\": [\n        \"int fileperms(string filename)\",\n        \"Get file permissions\"\n    ],\n    \"filesize\": [\n        \"int filesize(string filename)\",\n        \"Get file size\"\n    ],\n    \"filetype\": [\n        \"string filetype(string filename)\",\n        \"Get file type\"\n    ],\n    \"filter_has_var\": [\n        \"mixed filter_has_var(constant type, string variable_name)\",\n        \"* Returns true if the variable with the name 'name' exists in source.\"\n    ],\n    \"filter_input\": [\n        \"mixed filter_input(constant type, string variable_name [, long filter [, mixed options]])\",\n        \"* Returns the filtered variable 'name'* from source `type`.\"\n    ],\n    \"filter_input_array\": [\n        \"mixed filter_input_array(constant type, [, mixed options]])\",\n        \"* Returns an array with all arguments defined in 'definition'.\"\n    ],\n    \"filter_var\": [\n        \"mixed filter_var(mixed variable [, long filter [, mixed options]])\",\n        \"* Returns the filtered version of the vriable.\"\n    ],\n    \"filter_var_array\": [\n        \"mixed filter_var_array(array data, [, mixed options]])\",\n        \"* Returns an array with all arguments defined in 'definition'.\"\n    ],\n    \"finfo_buffer\": [\n        \"string finfo_buffer(resource finfo, char *string [, int options [, resource context]])\",\n        \"Return infromation about a string buffer.\"\n    ],\n    \"finfo_close\": [\n        \"resource finfo_close(resource finfo)\",\n        \"Close fileinfo resource.\"\n    ],\n    \"finfo_file\": [\n        \"string finfo_file(resource finfo, char *file_name [, int options [, resource context]])\",\n        \"Return information about a file.\"\n    ],\n    \"finfo_open\": [\n        \"resource finfo_open([int options [, string arg]])\",\n        \"Create a new fileinfo resource.\"\n    ],\n    \"finfo_set_flags\": [\n        \"bool finfo_set_flags(resource finfo, int options)\",\n        \"Set libmagic configuration options.\"\n    ],\n    \"floatval\": [\n        \"float floatval(mixed var)\",\n        \"Get the float value of a variable\"\n    ],\n    \"flock\": [\n        \"bool flock(resource fp, int operation [, int &wouldblock])\",\n        \"Portable file locking\"\n    ],\n    \"floor\": [\n        \"float floor(float number)\",\n        \"Returns the next lowest integer value from the number\"\n    ],\n    \"flush\": [\n        \"void flush(void)\",\n        \"Flush the output buffer\"\n    ],\n    \"fmod\": [\n        \"float fmod(float x, float y)\",\n        \"Returns the remainder of dividing x by y as a float\"\n    ],\n    \"fnmatch\": [\n        \"bool fnmatch(string pattern, string filename [, int flags])\",\n        \"Match filename against pattern\"\n    ],\n    \"fopen\": [\n        \"resource fopen(string filename, string mode [, bool use_include_path [, resource context]])\",\n        \"Open a file or a URL and return a file pointer\"\n    ],\n    \"forward_static_call\": [\n        \"mixed forward_static_call(mixed function_name [, mixed parmeter] [, mixed ...])\",\n        \"Call a user function which is the first parameter\"\n    ],\n    \"fpassthru\": [\n        \"int fpassthru(resource fp)\",\n        \"Output all remaining data from a file pointer\"\n    ],\n    \"fprintf\": [\n        \"int fprintf(resource stream, string format [, mixed arg1 [, mixed ...]])\",\n        \"Output a formatted string into a stream\"\n    ],\n    \"fputcsv\": [\n        \"int fputcsv(resource fp, array fields [, string delimiter [, string enclosure]])\",\n        \"Format line as CSV and write to file pointer\"\n    ],\n    \"fread\": [\n        \"string fread(resource fp, int length)\",\n        \"Binary-safe file read\"\n    ],\n    \"frenchtojd\": [\n        \"int frenchtojd(int month, int day, int year)\",\n        \"Converts a french republic calendar date to julian day count\"\n    ],\n    \"fscanf\": [\n        \"mixed fscanf(resource stream, string format [, string ...])\",\n        \"Implements a mostly ANSI compatible fscanf()\"\n    ],\n    \"fseek\": [\n        \"int fseek(resource fp, int offset [, int whence])\",\n        \"Seek on a file pointer\"\n    ],\n    \"fsockopen\": [\n        \"resource fsockopen(string hostname, int port [, int errno [, string errstr [, float timeout]]])\",\n        \"Open Internet or Unix domain socket connection\"\n    ],\n    \"fstat\": [\n        \"array fstat(resource fp)\",\n        \"Stat() on a filehandle\"\n    ],\n    \"ftell\": [\n        \"int ftell(resource fp)\",\n        \"Get file pointer's read/write position\"\n    ],\n    \"ftok\": [\n        \"int ftok(string pathname, string proj)\",\n        \"Convert a pathname and a project identifier to a System V IPC key\"\n    ],\n    \"ftp_alloc\": [\n        \"bool ftp_alloc(resource stream, int size[, &response])\",\n        \"Attempt to allocate space on the remote FTP server\"\n    ],\n    \"ftp_cdup\": [\n        \"bool ftp_cdup(resource stream)\",\n        \"Changes to the parent directory\"\n    ],\n    \"ftp_chdir\": [\n        \"bool ftp_chdir(resource stream, string directory)\",\n        \"Changes directories\"\n    ],\n    \"ftp_chmod\": [\n        \"int ftp_chmod(resource stream, int mode, string filename)\",\n        \"Sets permissions on a file\"\n    ],\n    \"ftp_close\": [\n        \"bool ftp_close(resource stream)\",\n        \"Closes the FTP stream\"\n    ],\n    \"ftp_connect\": [\n        \"resource ftp_connect(string host [, int port [, int timeout]])\",\n        \"Opens a FTP stream\"\n    ],\n    \"ftp_delete\": [\n        \"bool ftp_delete(resource stream, string file)\",\n        \"Deletes a file\"\n    ],\n    \"ftp_exec\": [\n        \"bool ftp_exec(resource stream, string command)\",\n        \"Requests execution of a program on the FTP server\"\n    ],\n    \"ftp_fget\": [\n        \"bool ftp_fget(resource stream, resource fp, string remote_file, int mode[, int resumepos])\",\n        \"Retrieves a file from the FTP server and writes it to an open file\"\n    ],\n    \"ftp_fput\": [\n        \"bool ftp_fput(resource stream, string remote_file, resource fp, int mode[, int startpos])\",\n        \"Stores a file from an open file to the FTP server\"\n    ],\n    \"ftp_get\": [\n        \"bool ftp_get(resource stream, string local_file, string remote_file, int mode[, int resume_pos])\",\n        \"Retrieves a file from the FTP server and writes it to a local file\"\n    ],\n    \"ftp_get_option\": [\n        \"mixed ftp_get_option(resource stream, int option)\",\n        \"Gets an FTP option\"\n    ],\n    \"ftp_login\": [\n        \"bool ftp_login(resource stream, string username, string password)\",\n        \"Logs into the FTP server\"\n    ],\n    \"ftp_mdtm\": [\n        \"int ftp_mdtm(resource stream, string filename)\",\n        \"Returns the last modification time of the file, or -1 on error\"\n    ],\n    \"ftp_mkdir\": [\n        \"string ftp_mkdir(resource stream, string directory)\",\n        \"Creates a directory and returns the absolute path for the new directory or false on error\"\n    ],\n    \"ftp_nb_continue\": [\n        \"int ftp_nb_continue(resource stream)\",\n        \"Continues retrieving/sending a file nbronously\"\n    ],\n    \"ftp_nb_fget\": [\n        \"int ftp_nb_fget(resource stream, resource fp, string remote_file, int mode[, int resumepos])\",\n        \"Retrieves a file from the FTP server asynchronly and writes it to an open file\"\n    ],\n    \"ftp_nb_fput\": [\n        \"int ftp_nb_fput(resource stream, string remote_file, resource fp, int mode[, int startpos])\",\n        \"Stores a file from an open file to the FTP server nbronly\"\n    ],\n    \"ftp_nb_get\": [\n        \"int ftp_nb_get(resource stream, string local_file, string remote_file, int mode[, int resume_pos])\",\n        \"Retrieves a file from the FTP server nbhronly and writes it to a local file\"\n    ],\n    \"ftp_nb_put\": [\n        \"int ftp_nb_put(resource stream, string remote_file, string local_file, int mode[, int startpos])\",\n        \"Stores a file on the FTP server\"\n    ],\n    \"ftp_nlist\": [\n        \"array ftp_nlist(resource stream, string directory)\",\n        \"Returns an array of filenames in the given directory\"\n    ],\n    \"ftp_pasv\": [\n        \"bool ftp_pasv(resource stream, bool pasv)\",\n        \"Turns passive mode on or off\"\n    ],\n    \"ftp_put\": [\n        \"bool ftp_put(resource stream, string remote_file, string local_file, int mode[, int startpos])\",\n        \"Stores a file on the FTP server\"\n    ],\n    \"ftp_pwd\": [\n        \"string ftp_pwd(resource stream)\",\n        \"Returns the present working directory\"\n    ],\n    \"ftp_raw\": [\n        \"array ftp_raw(resource stream, string command)\",\n        \"Sends a literal command to the FTP server\"\n    ],\n    \"ftp_rawlist\": [\n        \"array ftp_rawlist(resource stream, string directory [, bool recursive])\",\n        \"Returns a detailed listing of a directory as an array of output lines\"\n    ],\n    \"ftp_rename\": [\n        \"bool ftp_rename(resource stream, string src, string dest)\",\n        \"Renames the given file to a new path\"\n    ],\n    \"ftp_rmdir\": [\n        \"bool ftp_rmdir(resource stream, string directory)\",\n        \"Removes a directory\"\n    ],\n    \"ftp_set_option\": [\n        \"bool ftp_set_option(resource stream, int option, mixed value)\",\n        \"Sets an FTP option\"\n    ],\n    \"ftp_site\": [\n        \"bool ftp_site(resource stream, string cmd)\",\n        \"Sends a SITE command to the server\"\n    ],\n    \"ftp_size\": [\n        \"int ftp_size(resource stream, string filename)\",\n        \"Returns the size of the file, or -1 on error\"\n    ],\n    \"ftp_ssl_connect\": [\n        \"resource ftp_ssl_connect(string host [, int port [, int timeout]])\",\n        \"Opens a FTP-SSL stream\"\n    ],\n    \"ftp_systype\": [\n        \"string ftp_systype(resource stream)\",\n        \"Returns the system type identifier\"\n    ],\n    \"ftruncate\": [\n        \"bool ftruncate(resource fp, int size)\",\n        \"Truncate file to 'size' length\"\n    ],\n    \"func_get_arg\": [\n        \"mixed func_get_arg(int arg_num)\",\n        \"Get the $arg_num'th argument that was passed to the function\"\n    ],\n    \"func_get_args\": [\n        \"array func_get_args()\",\n        \"Get an array of the arguments that were passed to the function\"\n    ],\n    \"func_num_args\": [\n        \"int func_num_args(void)\",\n        \"Get the number of arguments that were passed to the function\"\n    ],\n    \"function_exists\": [\n        \"bool function_exists(string function_name)\",\n        \"Checks if the function exists\"\n    ],\n    \"fwrite\": [\n        \"int fwrite(resource fp, string str [, int length])\",\n        \"Binary-safe file write\"\n    ],\n    \"gc_collect_cycles\": [\n        \"int gc_collect_cycles(void)\",\n        \"Forces collection of any existing garbage cycles.    Returns number of freed zvals\"\n    ],\n    \"gc_disable\": [\n        \"void gc_disable(void)\",\n        \"Deactivates the circular reference collector\"\n    ],\n    \"gc_enable\": [\n        \"void gc_enable(void)\",\n        \"Activates the circular reference collector\"\n    ],\n    \"gc_enabled\": [\n        \"void gc_enabled(void)\",\n        \"Returns status of the circular reference collector\"\n    ],\n    \"gd_info\": [\n        \"array gd_info()\",\n        \"\"\n    ],\n    \"getKeywords\": [\n        \"static array getKeywords(string $locale) {\",\n        \"* return an associative array containing keyword-value  * pairs for this locale. The keys are keys to the array (doh!)  * }}}\"\n    ],\n    \"get_browser\": [\n        \"mixed get_browser([string browser_name [, bool return_array]])\",\n        \"Get information about the capabilities of a browser. If browser_name is omitted or null, HTTP_USER_AGENT is used. Returns an object by default; if return_array is true, returns an array.\"\n    ],\n    \"get_called_class\": [\n        \"string get_called_class()\",\n        \"Retrieves the \\\"Late Static Binding\\\" class name\"\n    ],\n    \"get_cfg_var\": [\n        \"mixed get_cfg_var(string option_name)\",\n        \"Get the value of a PHP configuration option\"\n    ],\n    \"get_class\": [\n        \"string get_class([object object])\",\n        \"Retrieves the class name\"\n    ],\n    \"get_class_methods\": [\n        \"array get_class_methods(mixed class)\",\n        \"Returns an array of method names for class or class instance.\"\n    ],\n    \"get_class_vars\": [\n        \"array get_class_vars(string class_name)\",\n        \"Returns an array of default properties of the class.\"\n    ],\n    \"get_current_user\": [\n        \"string get_current_user(void)\",\n        \"Get the name of the owner of the current PHP script\"\n    ],\n    \"get_declared_classes\": [\n        \"array get_declared_classes()\",\n        \"Returns an array of all declared classes.\"\n    ],\n    \"get_declared_interfaces\": [\n        \"array get_declared_interfaces()\",\n        \"Returns an array of all declared interfaces.\"\n    ],\n    \"get_defined_constants\": [\n        \"array get_defined_constants([bool categorize])\",\n        \"Return an array containing the names and values of all defined constants\"\n    ],\n    \"get_defined_functions\": [\n        \"array get_defined_functions(void)\",\n        \"Returns an array of all defined functions\"\n    ],\n    \"get_defined_vars\": [\n        \"array get_defined_vars(void)\",\n        \"Returns an associative array of names and values of all currently defined variable names (variables in the current scope)\"\n    ],\n    \"get_display_language\": [\n        \"static string get_display_language($locale[, $in_locale = null])\",\n        \"* gets the language for the $locale in $in_locale or default_locale\"\n    ],\n    \"get_display_name\": [\n        \"static string get_display_name($locale[, $in_locale = null])\",\n        \"* gets the name for the $locale in $in_locale or default_locale\"\n    ],\n    \"get_display_region\": [\n        \"static string get_display_region($locale, $in_locale = null)\",\n        \"* gets the region for the $locale in $in_locale or default_locale\"\n    ],\n    \"get_display_script\": [\n        \"static string get_display_script($locale, $in_locale = null)\",\n        \"* gets the script for the $locale in $in_locale or default_locale\"\n    ],\n    \"get_extension_funcs\": [\n        \"array get_extension_funcs(string extension_name)\",\n        \"Returns an array with the names of functions belonging to the named extension\"\n    ],\n    \"get_headers\": [\n        \"array get_headers(string url[, int format])\",\n        \"fetches all the headers sent by the server in response to a HTTP request\"\n    ],\n    \"get_html_translation_table\": [\n        \"array get_html_translation_table([int table [, int quote_style]])\",\n        \"Returns the internal translation table used by htmlspecialchars and htmlentities\"\n    ],\n    \"get_include_path\": [\n        \"string get_include_path()\",\n        \"Get the current include_path configuration option\"\n    ],\n    \"get_included_files\": [\n        \"array get_included_files(void)\",\n        \"Returns an array with the file names that were include_once()'d\"\n    ],\n    \"get_loaded_extensions\": [\n        \"array get_loaded_extensions([bool zend_extensions])\",\n        \"Return an array containing names of loaded extensions\"\n    ],\n    \"get_magic_quotes_gpc\": [\n        \"int get_magic_quotes_gpc(void)\",\n        \"Get the current active configuration setting of magic_quotes_gpc\"\n    ],\n    \"get_magic_quotes_runtime\": [\n        \"int get_magic_quotes_runtime(void)\",\n        \"Get the current active configuration setting of magic_quotes_runtime\"\n    ],\n    \"get_meta_tags\": [\n        \"array get_meta_tags(string filename [, bool use_include_path])\",\n        \"Extracts all meta tag content attributes from a file and returns an array\"\n    ],\n    \"get_object_vars\": [\n        \"array get_object_vars(object obj)\",\n        \"Returns an array of object properties\"\n    ],\n    \"get_parent_class\": [\n        \"string get_parent_class([mixed object])\",\n        \"Retrieves the parent class name for object or class or current scope.\"\n    ],\n    \"get_resource_type\": [\n        \"string get_resource_type(resource res)\",\n        \"Get the resource type name for a given resource\"\n    ],\n    \"getallheaders\": [\n        \"array getallheaders(void)\",\n        \"\"\n    ],\n    \"getcwd\": [\n        \"mixed getcwd(void)\",\n        \"Gets the current directory\"\n    ],\n    \"getdate\": [\n        \"array getdate([int timestamp])\",\n        \"Get date/time information\"\n    ],\n    \"getenv\": [\n        \"string getenv(string varname)\",\n        \"Get the value of an environment variable\"\n    ],\n    \"gethostbyaddr\": [\n        \"string gethostbyaddr(string ip_address)\",\n        \"Get the Internet host name corresponding to a given IP address\"\n    ],\n    \"gethostbyname\": [\n        \"string gethostbyname(string hostname)\",\n        \"Get the IP address corresponding to a given Internet host name\"\n    ],\n    \"gethostbynamel\": [\n        \"array gethostbynamel(string hostname)\",\n        \"Return a list of IP addresses that a given hostname resolves to.\"\n    ],\n    \"gethostname\": [\n        \"string gethostname()\",\n        \"Get the host name of the current machine\"\n    ],\n    \"getimagesize\": [\n        \"array getimagesize(string imagefile [, array info])\",\n        \"Get the size of an image as 4-element array\"\n    ],\n    \"getlastmod\": [\n        \"int getlastmod(void)\",\n        \"Get time of last page modification\"\n    ],\n    \"getmygid\": [\n        \"int getmygid(void)\",\n        \"Get PHP script owner's GID\"\n    ],\n    \"getmyinode\": [\n        \"int getmyinode(void)\",\n        \"Get the inode of the current script being parsed\"\n    ],\n    \"getmypid\": [\n        \"int getmypid(void)\",\n        \"Get current process ID\"\n    ],\n    \"getmyuid\": [\n        \"int getmyuid(void)\",\n        \"Get PHP script owner's UID\"\n    ],\n    \"getopt\": [\n        \"array getopt(string options [, array longopts])\",\n        \"Get options from the command line argument list\"\n    ],\n    \"getprotobyname\": [\n        \"int getprotobyname(string name)\",\n        \"Returns protocol number associated with name as per /etc/protocols\"\n    ],\n    \"getprotobynumber\": [\n        \"string getprotobynumber(int proto)\",\n        \"Returns protocol name associated with protocol number proto\"\n    ],\n    \"getrandmax\": [\n        \"int getrandmax(void)\",\n        \"Returns the maximum value a random number can have\"\n    ],\n    \"getrusage\": [\n        \"array getrusage([int who])\",\n        \"Returns an array of usage statistics\"\n    ],\n    \"getservbyname\": [\n        \"int getservbyname(string service, string protocol)\",\n        \"Returns port associated with service. Protocol must be \\\"tcp\\\" or \\\"udp\\\"\"\n    ],\n    \"getservbyport\": [\n        \"string getservbyport(int port, string protocol)\",\n        \"Returns service name associated with port. Protocol must be \\\"tcp\\\" or \\\"udp\\\"\"\n    ],\n    \"gettext\": [\n        \"string gettext(string msgid)\",\n        \"Return the translation of msgid for the current domain, or msgid unaltered if a translation does not exist\"\n    ],\n    \"gettimeofday\": [\n        \"array gettimeofday([bool get_as_float])\",\n        \"Returns the current time as array\"\n    ],\n    \"gettype\": [\n        \"string gettype(mixed var)\",\n        \"Returns the type of the variable\"\n    ],\n    \"glob\": [\n        \"array glob(string pattern [, int flags])\",\n        \"Find pathnames matching a pattern\"\n    ],\n    \"gmdate\": [\n        \"string gmdate(string format [, long timestamp])\",\n        \"Format a GMT date/time\"\n    ],\n    \"gmmktime\": [\n        \"int gmmktime([int hour [, int min [, int sec [, int mon [, int day [, int year]]]]]])\",\n        \"Get UNIX timestamp for a GMT date\"\n    ],\n    \"gmp_abs\": [\n        \"resource gmp_abs(resource a)\",\n        \"Calculates absolute value\"\n    ],\n    \"gmp_add\": [\n        \"resource gmp_add(resource a, resource b)\",\n        \"Add a and b\"\n    ],\n    \"gmp_and\": [\n        \"resource gmp_and(resource a, resource b)\",\n        \"Calculates logical AND of a and b\"\n    ],\n    \"gmp_clrbit\": [\n        \"void gmp_clrbit(resource &a, int index)\",\n        \"Clears bit in a\"\n    ],\n    \"gmp_cmp\": [\n        \"int gmp_cmp(resource a, resource b)\",\n        \"Compares two numbers\"\n    ],\n    \"gmp_com\": [\n        \"resource gmp_com(resource a)\",\n        \"Calculates one's complement of a\"\n    ],\n    \"gmp_div_q\": [\n        \"resource gmp_div_q(resource a, resource b [, int round])\",\n        \"Divide a by b, returns quotient only\"\n    ],\n    \"gmp_div_qr\": [\n        \"array gmp_div_qr(resource a, resource b [, int round])\",\n        \"Divide a by b, returns quotient and reminder\"\n    ],\n    \"gmp_div_r\": [\n        \"resource gmp_div_r(resource a, resource b [, int round])\",\n        \"Divide a by b, returns reminder only\"\n    ],\n    \"gmp_divexact\": [\n        \"resource gmp_divexact(resource a, resource b)\",\n        \"Divide a by b using exact division algorithm\"\n    ],\n    \"gmp_fact\": [\n        \"resource gmp_fact(int a)\",\n        \"Calculates factorial function\"\n    ],\n    \"gmp_gcd\": [\n        \"resource gmp_gcd(resource a, resource b)\",\n        \"Computes greatest common denominator (gcd) of a and b\"\n    ],\n    \"gmp_gcdext\": [\n        \"array gmp_gcdext(resource a, resource b)\",\n        \"Computes G, S, and T, such that AS + BT = G = `gcd' (A, B)\"\n    ],\n    \"gmp_hamdist\": [\n        \"int gmp_hamdist(resource a, resource b)\",\n        \"Calculates hamming distance between a and b\"\n    ],\n    \"gmp_init\": [\n        \"resource gmp_init(mixed number [, int base])\",\n        \"Initializes GMP number\"\n    ],\n    \"gmp_intval\": [\n        \"int gmp_intval(resource gmpnumber)\",\n        \"Gets signed long value of GMP number\"\n    ],\n    \"gmp_invert\": [\n        \"resource gmp_invert(resource a, resource b)\",\n        \"Computes the inverse of a modulo b\"\n    ],\n    \"gmp_jacobi\": [\n        \"int gmp_jacobi(resource a, resource b)\",\n        \"Computes Jacobi symbol\"\n    ],\n    \"gmp_legendre\": [\n        \"int gmp_legendre(resource a, resource b)\",\n        \"Computes Legendre symbol\"\n    ],\n    \"gmp_mod\": [\n        \"resource gmp_mod(resource a, resource b)\",\n        \"Computes a modulo b\"\n    ],\n    \"gmp_mul\": [\n        \"resource gmp_mul(resource a, resource b)\",\n        \"Multiply a and b\"\n    ],\n    \"gmp_neg\": [\n        \"resource gmp_neg(resource a)\",\n        \"Negates a number\"\n    ],\n    \"gmp_nextprime\": [\n        \"resource gmp_nextprime(resource a)\",\n        \"Finds next prime of a\"\n    ],\n    \"gmp_or\": [\n        \"resource gmp_or(resource a, resource b)\",\n        \"Calculates logical OR of a and b\"\n    ],\n    \"gmp_perfect_square\": [\n        \"bool gmp_perfect_square(resource a)\",\n        \"Checks if a is an exact square\"\n    ],\n    \"gmp_popcount\": [\n        \"int gmp_popcount(resource a)\",\n        \"Calculates the population count of a\"\n    ],\n    \"gmp_pow\": [\n        \"resource gmp_pow(resource base, int exp)\",\n        \"Raise base to power exp\"\n    ],\n    \"gmp_powm\": [\n        \"resource gmp_powm(resource base, resource exp, resource mod)\",\n        \"Raise base to power exp and take result modulo mod\"\n    ],\n    \"gmp_prob_prime\": [\n        \"int gmp_prob_prime(resource a[, int reps])\",\n        \"Checks if a is \\\"probably prime\\\"\"\n    ],\n    \"gmp_random\": [\n        \"resource gmp_random([int limiter])\",\n        \"Gets random number\"\n    ],\n    \"gmp_scan0\": [\n        \"int gmp_scan0(resource a, int start)\",\n        \"Finds first zero bit\"\n    ],\n    \"gmp_scan1\": [\n        \"int gmp_scan1(resource a, int start)\",\n        \"Finds first non-zero bit\"\n    ],\n    \"gmp_setbit\": [\n        \"void gmp_setbit(resource &a, int index[, bool set_clear])\",\n        \"Sets or clear bit in a\"\n    ],\n    \"gmp_sign\": [\n        \"int gmp_sign(resource a)\",\n        \"Gets the sign of the number\"\n    ],\n    \"gmp_sqrt\": [\n        \"resource gmp_sqrt(resource a)\",\n        \"Takes integer part of square root of a\"\n    ],\n    \"gmp_sqrtrem\": [\n        \"array gmp_sqrtrem(resource a)\",\n        \"Square root with remainder\"\n    ],\n    \"gmp_strval\": [\n        \"string gmp_strval(resource gmpnumber [, int base])\",\n        \"Gets string representation of GMP number\"\n    ],\n    \"gmp_sub\": [\n        \"resource gmp_sub(resource a, resource b)\",\n        \"Subtract b from a\"\n    ],\n    \"gmp_testbit\": [\n        \"bool gmp_testbit(resource a, int index)\",\n        \"Tests if bit is set in a\"\n    ],\n    \"gmp_xor\": [\n        \"resource gmp_xor(resource a, resource b)\",\n        \"Calculates logical exclusive OR of a and b\"\n    ],\n    \"gmstrftime\": [\n        \"string gmstrftime(string format [, int timestamp])\",\n        \"Format a GMT/UCT time/date according to locale settings\"\n    ],\n    \"grapheme_extract\": [\n        \"string grapheme_extract(string str, int size[, int extract_type[, int start[, int next]]])\",\n        \"Function to extract a sequence of default grapheme clusters\"\n    ],\n    \"grapheme_stripos\": [\n        \"int grapheme_stripos(string haystack, string needle [, int offset ])\",\n        \"Find position of first occurrence of a string within another, ignoring case differences\"\n    ],\n    \"grapheme_stristr\": [\n        \"string grapheme_stristr(string haystack, string needle[, bool part])\",\n        \"Finds first occurrence of a string within another\"\n    ],\n    \"grapheme_strlen\": [\n        \"int grapheme_strlen(string str)\",\n        \"Get number of graphemes in a string\"\n    ],\n    \"grapheme_strpos\": [\n        \"int grapheme_strpos(string haystack, string needle [, int offset ])\",\n        \"Find position of first occurrence of a string within another\"\n    ],\n    \"grapheme_strripos\": [\n        \"int grapheme_strripos(string haystack, string needle [, int offset])\",\n        \"Find position of last occurrence of a string within another, ignoring case\"\n    ],\n    \"grapheme_strrpos\": [\n        \"int grapheme_strrpos(string haystack, string needle [, int offset])\",\n        \"Find position of last occurrence of a string within another\"\n    ],\n    \"grapheme_strstr\": [\n        \"string grapheme_strstr(string haystack, string needle[, bool part])\",\n        \"Finds first occurrence of a string within another\"\n    ],\n    \"grapheme_substr\": [\n        \"string grapheme_substr(string str, int start [, int length])\",\n        \"Returns part of a string\"\n    ],\n    \"gregoriantojd\": [\n        \"int gregoriantojd(int month, int day, int year)\",\n        \"Converts a gregorian calendar date to julian day count\"\n    ],\n    \"gzcompress\": [\n        \"string gzcompress(string data [, int level])\",\n        \"Gzip-compress a string\"\n    ],\n    \"gzdeflate\": [\n        \"string gzdeflate(string data [, int level])\",\n        \"Gzip-compress a string\"\n    ],\n    \"gzencode\": [\n        \"string gzencode(string data [, int level [, int encoding_mode]])\",\n        \"GZ encode a string\"\n    ],\n    \"gzfile\": [\n        \"array gzfile(string filename [, int use_include_path])\",\n        \"Read und uncompress entire .gz-file into an array\"\n    ],\n    \"gzinflate\": [\n        \"string gzinflate(string data [, int length])\",\n        \"Unzip a gzip-compressed string\"\n    ],\n    \"gzopen\": [\n        \"resource gzopen(string filename, string mode [, int use_include_path])\",\n        \"Open a .gz-file and return a .gz-file pointer\"\n    ],\n    \"gzuncompress\": [\n        \"string gzuncompress(string data [, int length])\",\n        \"Unzip a gzip-compressed string\"\n    ],\n    \"hash\": [\n        \"string hash(string algo, string data[, bool raw_output = false])\",\n        \"Generate a hash of a given input string Returns lowercase hexits by default\"\n    ],\n    \"hash_algos\": [\n        \"array hash_algos(void)\",\n        \"Return a list of registered hashing algorithms\"\n    ],\n    \"hash_copy\": [\n        \"resource hash_copy(resource context)\",\n        \"Copy hash resource\"\n    ],\n    \"hash_file\": [\n        \"string hash_file(string algo, string filename[, bool raw_output = false])\",\n        \"Generate a hash of a given file Returns lowercase hexits by default\"\n    ],\n    \"hash_final\": [\n        \"string hash_final(resource context[, bool raw_output=false])\",\n        \"Output resulting digest\"\n    ],\n    \"hash_hmac\": [\n        \"string hash_hmac(string algo, string data, string key[, bool raw_output = false])\",\n        \"Generate a hash of a given input string with a key using HMAC Returns lowercase hexits by default\"\n    ],\n    \"hash_hmac_file\": [\n        \"string hash_hmac_file(string algo, string filename, string key[, bool raw_output = false])\",\n        \"Generate a hash of a given file with a key using HMAC Returns lowercase hexits by default\"\n    ],\n    \"hash_init\": [\n        \"resource hash_init(string algo[, int options, string key])\",\n        \"Initialize a hashing context\"\n    ],\n    \"hash_update\": [\n        \"bool hash_update(resource context, string data)\",\n        \"Pump data into the hashing algorithm\"\n    ],\n    \"hash_update_file\": [\n        \"bool hash_update_file(resource context, string filename[, resource context])\",\n        \"Pump data into the hashing algorithm from a file\"\n    ],\n    \"hash_update_stream\": [\n        \"int hash_update_stream(resource context, resource handle[, integer length])\",\n        \"Pump data into the hashing algorithm from an open stream\"\n    ],\n    \"header\": [\n        \"void header(string header [, bool replace, [int http_response_code]])\",\n        \"Sends a raw HTTP header\"\n    ],\n    \"header_remove\": [\n        \"void header_remove([string name])\",\n        \"Removes an HTTP header previously set using header()\"\n    ],\n    \"headers_list\": [\n        \"array headers_list(void)\",\n        \"Return list of headers to be sent / already sent\"\n    ],\n    \"headers_sent\": [\n        \"bool headers_sent([string &$file [, int &$line]])\",\n        \"Returns true if headers have already been sent, false otherwise\"\n    ],\n    \"hebrev\": [\n        \"string hebrev(string str [, int max_chars_per_line])\",\n        \"Converts logical Hebrew text to visual text\"\n    ],\n    \"hebrevc\": [\n        \"string hebrevc(string str [, int max_chars_per_line])\",\n        \"Converts logical Hebrew text to visual text with newline conversion\"\n    ],\n    \"hexdec\": [\n        \"int hexdec(string hexadecimal_number)\",\n        \"Returns the decimal equivalent of the hexadecimal number\"\n    ],\n    \"highlight_file\": [\n        \"bool highlight_file(string file_name [, bool return] )\",\n        \"Syntax highlight a source file\"\n    ],\n    \"highlight_string\": [\n        \"bool highlight_string(string string [, bool return] )\",\n        \"Syntax highlight a string or optionally return it\"\n    ],\n    \"html_entity_decode\": [\n        \"string html_entity_decode(string string [, int quote_style][, string charset])\",\n        \"Convert all HTML entities to their applicable characters\"\n    ],\n    \"htmlentities\": [\n        \"string htmlentities(string string [, int quote_style[, string charset[, bool double_encode]]])\",\n        \"Convert all applicable characters to HTML entities\"\n    ],\n    \"htmlspecialchars\": [\n        \"string htmlspecialchars(string string [, int quote_style[, string charset[, bool double_encode]]])\",\n        \"Convert special characters to HTML entities\"\n    ],\n    \"htmlspecialchars_decode\": [\n        \"string htmlspecialchars_decode(string string [, int quote_style])\",\n        \"Convert special HTML entities back to characters\"\n    ],\n    \"http_build_query\": [\n        \"string http_build_query(mixed formdata [, string prefix [, string arg_separator]])\",\n        \"Generates a form-encoded query string from an associative array or object.\"\n    ],\n    \"hypot\": [\n        \"float hypot(float num1, float num2)\",\n        \"Returns sqrt(num1*num1 + num2*num2)\"\n    ],\n    \"ibase_add_user\": [\n        \"bool ibase_add_user(resource service_handle, string user_name, string password [, string first_name [, string middle_name [, string last_name]]])\",\n        \"Add a user to security database\"\n    ],\n    \"ibase_affected_rows\": [\n        \"int ibase_affected_rows( [ resource link_identifier ] )\",\n        \"Returns the number of rows affected by the previous INSERT, UPDATE or DELETE statement\"\n    ],\n    \"ibase_backup\": [\n        \"mixed ibase_backup(resource service_handle, string source_db, string dest_file [, int options [, bool verbose]])\",\n        \"Initiates a backup task in the service manager and returns immediately\"\n    ],\n    \"ibase_blob_add\": [\n        \"bool ibase_blob_add(resource blob_handle, string data)\",\n        \"Add data into created blob\"\n    ],\n    \"ibase_blob_cancel\": [\n        \"bool ibase_blob_cancel(resource blob_handle)\",\n        \"Cancel creating blob\"\n    ],\n    \"ibase_blob_close\": [\n        \"string ibase_blob_close(resource blob_handle)\",\n        \"Close blob\"\n    ],\n    \"ibase_blob_create\": [\n        \"resource ibase_blob_create([resource link_identifier])\",\n        \"Create blob for adding data\"\n    ],\n    \"ibase_blob_echo\": [\n        \"bool ibase_blob_echo([ resource link_identifier, ] string blob_id)\",\n        \"Output blob contents to browser\"\n    ],\n    \"ibase_blob_get\": [\n        \"string ibase_blob_get(resource blob_handle, int len)\",\n        \"Get len bytes data from open blob\"\n    ],\n    \"ibase_blob_import\": [\n        \"string ibase_blob_import([ resource link_identifier, ] resource file)\",\n        \"Create blob, copy file in it, and close it\"\n    ],\n    \"ibase_blob_info\": [\n        \"array ibase_blob_info([ resource link_identifier, ] string blob_id)\",\n        \"Return blob length and other useful info\"\n    ],\n    \"ibase_blob_open\": [\n        \"resource ibase_blob_open([ resource link_identifier, ] string blob_id)\",\n        \"Open blob for retrieving data parts\"\n    ],\n    \"ibase_close\": [\n        \"bool ibase_close([resource link_identifier])\",\n        \"Close an InterBase connection\"\n    ],\n    \"ibase_commit\": [\n        \"bool ibase_commit( resource link_identifier )\",\n        \"Commit transaction\"\n    ],\n    \"ibase_commit_ret\": [\n        \"bool ibase_commit_ret( resource link_identifier )\",\n        \"Commit transaction and retain the transaction context\"\n    ],\n    \"ibase_connect\": [\n        \"resource ibase_connect(string database [, string username [, string password [, string charset [, int buffers [, int dialect [, string role]]]]]])\",\n        \"Open a connection to an InterBase database\"\n    ],\n    \"ibase_db_info\": [\n        \"string ibase_db_info(resource service_handle, string db, int action [, int argument])\",\n        \"Request statistics about a database\"\n    ],\n    \"ibase_delete_user\": [\n        \"bool ibase_delete_user(resource service_handle, string user_name, string password [, string first_name [, string middle_name [, string last_name]]])\",\n        \"Delete a user from security database\"\n    ],\n    \"ibase_drop_db\": [\n        \"bool ibase_drop_db([resource link_identifier])\",\n        \"Drop an InterBase database\"\n    ],\n    \"ibase_errcode\": [\n        \"int ibase_errcode(void)\",\n        \"Return error code\"\n    ],\n    \"ibase_errmsg\": [\n        \"string ibase_errmsg(void)\",\n        \"Return error message\"\n    ],\n    \"ibase_execute\": [\n        \"mixed ibase_execute(resource query [, mixed bind_arg [, mixed bind_arg [, ...]]])\",\n        \"Execute a previously prepared query\"\n    ],\n    \"ibase_fetch_assoc\": [\n        \"array ibase_fetch_assoc(resource result [, int fetch_flags])\",\n        \"Fetch a row  from the results of a query\"\n    ],\n    \"ibase_fetch_object\": [\n        \"object ibase_fetch_object(resource result [, int fetch_flags])\",\n        \"Fetch a object from the results of a query\"\n    ],\n    \"ibase_fetch_row\": [\n        \"array ibase_fetch_row(resource result [, int fetch_flags])\",\n        \"Fetch a row  from the results of a query\"\n    ],\n    \"ibase_field_info\": [\n        \"array ibase_field_info(resource query_result, int field_number)\",\n        \"Get information about a field\"\n    ],\n    \"ibase_free_event_handler\": [\n        \"bool ibase_free_event_handler(resource event)\",\n        \"Frees the event handler set by ibase_set_event_handler()\"\n    ],\n    \"ibase_free_query\": [\n        \"bool ibase_free_query(resource query)\",\n        \"Free memory used by a query\"\n    ],\n    \"ibase_free_result\": [\n        \"bool ibase_free_result(resource result)\",\n        \"Free the memory used by a result\"\n    ],\n    \"ibase_gen_id\": [\n        \"int ibase_gen_id(string generator [, int increment [, resource link_identifier ]])\",\n        \"Increments the named generator and returns its new value\"\n    ],\n    \"ibase_maintain_db\": [\n        \"bool ibase_maintain_db(resource service_handle, string db, int action [, int argument])\",\n        \"Execute a maintenance command on the database server\"\n    ],\n    \"ibase_modify_user\": [\n        \"bool ibase_modify_user(resource service_handle, string user_name, string password [, string first_name [, string middle_name [, string last_name]]])\",\n        \"Modify a user in security database\"\n    ],\n    \"ibase_name_result\": [\n        \"bool ibase_name_result(resource result, string name)\",\n        \"Assign a name to a result for use with ... WHERE CURRENT OF <name> statements\"\n    ],\n    \"ibase_num_fields\": [\n        \"int ibase_num_fields(resource query_result)\",\n        \"Get the number of fields in result\"\n    ],\n    \"ibase_num_params\": [\n        \"int ibase_num_params(resource query)\",\n        \"Get the number of params in a prepared query\"\n    ],\n    \"ibase_num_rows\": [\n        \"int ibase_num_rows( resource result_identifier )\",\n        \"Return the number of rows that are available in a result\"\n    ],\n    \"ibase_param_info\": [\n        \"array ibase_param_info(resource query, int field_number)\",\n        \"Get information about a parameter\"\n    ],\n    \"ibase_pconnect\": [\n        \"resource ibase_pconnect(string database [, string username [, string password [, string charset [, int buffers [, int dialect [, string role]]]]]])\",\n        \"Open a persistent connection to an InterBase database\"\n    ],\n    \"ibase_prepare\": [\n        \"resource ibase_prepare(resource link_identifier[, string query [, resource trans_identifier ]])\",\n        \"Prepare a query for later execution\"\n    ],\n    \"ibase_query\": [\n        \"mixed ibase_query([resource link_identifier, [ resource link_identifier, ]] string query [, mixed bind_arg [, mixed bind_arg [, ...]]])\",\n        \"Execute a query\"\n    ],\n    \"ibase_restore\": [\n        \"mixed ibase_restore(resource service_handle, string source_file, string dest_db [, int options [, bool verbose]])\",\n        \"Initiates a restore task in the service manager and returns immediately\"\n    ],\n    \"ibase_rollback\": [\n        \"bool ibase_rollback( resource link_identifier )\",\n        \"Rollback transaction\"\n    ],\n    \"ibase_rollback_ret\": [\n        \"bool ibase_rollback_ret( resource link_identifier )\",\n        \"Rollback transaction and retain the transaction context\"\n    ],\n    \"ibase_server_info\": [\n        \"string ibase_server_info(resource service_handle, int action)\",\n        \"Request information about a database server\"\n    ],\n    \"ibase_service_attach\": [\n        \"resource ibase_service_attach(string host, string dba_username, string dba_password)\",\n        \"Connect to the service manager\"\n    ],\n    \"ibase_service_detach\": [\n        \"bool ibase_service_detach(resource service_handle)\",\n        \"Disconnect from the service manager\"\n    ],\n    \"ibase_set_event_handler\": [\n        \"resource ibase_set_event_handler([resource link_identifier,] callback handler, string event [, string event [, ...]])\",\n        \"Register the callback for handling each of the named events\"\n    ],\n    \"ibase_trans\": [\n        \"resource ibase_trans([int trans_args [, resource link_identifier [, ... ], int trans_args [, resource link_identifier [, ... ]] [, ...]]])\",\n        \"Start a transaction over one or several databases\"\n    ],\n    \"ibase_wait_event\": [\n        \"string ibase_wait_event([resource link_identifier,] string event [, string event [, ...]])\",\n        \"Waits for any one of the passed Interbase events to be posted by the database, and returns its name\"\n    ],\n    \"iconv\": [\n        \"string iconv(string in_charset, string out_charset, string str)\",\n        \"Returns str converted to the out_charset character set\"\n    ],\n    \"iconv_get_encoding\": [\n        \"mixed iconv_get_encoding([string type])\",\n        \"Get internal encoding and output encoding for ob_iconv_handler()\"\n    ],\n    \"iconv_mime_decode\": [\n        \"string iconv_mime_decode(string encoded_string [, int mode, string charset])\",\n        \"Decodes a mime header field\"\n    ],\n    \"iconv_mime_decode_headers\": [\n        \"array iconv_mime_decode_headers(string headers [, int mode, string charset])\",\n        \"Decodes multiple mime header fields\"\n    ],\n    \"iconv_mime_encode\": [\n        \"string iconv_mime_encode(string field_name, string field_value [, array preference])\",\n        \"Composes a mime header field with field_name and field_value in a specified scheme\"\n    ],\n    \"iconv_set_encoding\": [\n        \"bool iconv_set_encoding(string type, string charset)\",\n        \"Sets internal encoding and output encoding for ob_iconv_handler()\"\n    ],\n    \"iconv_strlen\": [\n        \"int iconv_strlen(string str [, string charset])\",\n        \"Returns the character count of str\"\n    ],\n    \"iconv_strpos\": [\n        \"int iconv_strpos(string haystack, string needle [, int offset [, string charset]])\",\n        \"Finds position of first occurrence of needle within part of haystack beginning with offset\"\n    ],\n    \"iconv_strrpos\": [\n        \"int iconv_strrpos(string haystack, string needle [, string charset])\",\n        \"Finds position of last occurrence of needle within part of haystack beginning with offset\"\n    ],\n    \"iconv_substr\": [\n        \"string iconv_substr(string str, int offset, [int length, string charset])\",\n        \"Returns specified part of a string\"\n    ],\n    \"idate\": [\n        \"int idate(string format [, int timestamp])\",\n        \"Format a local time/date as integer\"\n    ],\n    \"idn_to_ascii\": [\n        \"int idn_to_ascii(string domain[, int options])\",\n        \"Converts an Unicode domain to ASCII representation, as defined in the IDNA RFC\"\n    ],\n    \"idn_to_utf8\": [\n        \"int idn_to_utf8(string domain[, int options])\",\n        \"Converts an ASCII representation of the domain to Unicode (UTF-8), as defined in the IDNA RFC\"\n    ],\n    \"ignore_user_abort\": [\n        \"int ignore_user_abort([string value])\",\n        \"Set whether we want to ignore a user abort event or not\"\n    ],\n    \"image2wbmp\": [\n        \"bool image2wbmp(resource im [, string filename [, int threshold]])\",\n        \"Output WBMP image to browser or file\"\n    ],\n    \"image_type_to_extension\": [\n        \"string image_type_to_extension(int imagetype [, bool include_dot])\",\n        \"Get file extension for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype\"\n    ],\n    \"image_type_to_mime_type\": [\n        \"string image_type_to_mime_type(int imagetype)\",\n        \"Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype\"\n    ],\n    \"imagealphablending\": [\n        \"bool imagealphablending(resource im, bool on)\",\n        \"Turn alpha blending mode on or off for the given image\"\n    ],\n    \"imageantialias\": [\n        \"bool imageantialias(resource im, bool on)\",\n        \"Should antialiased functions used or not\"\n    ],\n    \"imagearc\": [\n        \"bool imagearc(resource im, int cx, int cy, int w, int h, int s, int e, int col)\",\n        \"Draw a partial ellipse\"\n    ],\n    \"imagechar\": [\n        \"bool imagechar(resource im, int font, int x, int y, string c, int col)\",\n        \"Draw a character\"\n    ],\n    \"imagecharup\": [\n        \"bool imagecharup(resource im, int font, int x, int y, string c, int col)\",\n        \"Draw a character rotated 90 degrees counter-clockwise\"\n    ],\n    \"imagecolorallocate\": [\n        \"int imagecolorallocate(resource im, int red, int green, int blue)\",\n        \"Allocate a color for an image\"\n    ],\n    \"imagecolorallocatealpha\": [\n        \"int imagecolorallocatealpha(resource im, int red, int green, int blue, int alpha)\",\n        \"Allocate a color with an alpha level.  Works for true color and palette based images\"\n    ],\n    \"imagecolorat\": [\n        \"int imagecolorat(resource im, int x, int y)\",\n        \"Get the index of the color of a pixel\"\n    ],\n    \"imagecolorclosest\": [\n        \"int imagecolorclosest(resource im, int red, int green, int blue)\",\n        \"Get the index of the closest color to the specified color\"\n    ],\n    \"imagecolorclosestalpha\": [\n        \"int imagecolorclosestalpha(resource im, int red, int green, int blue, int alpha)\",\n        \"Find the closest matching colour with alpha transparency\"\n    ],\n    \"imagecolorclosesthwb\": [\n        \"int imagecolorclosesthwb(resource im, int red, int green, int blue)\",\n        \"Get the index of the color which has the hue, white and blackness nearest to the given color\"\n    ],\n    \"imagecolordeallocate\": [\n        \"bool imagecolordeallocate(resource im, int index)\",\n        \"De-allocate a color for an image\"\n    ],\n    \"imagecolorexact\": [\n        \"int imagecolorexact(resource im, int red, int green, int blue)\",\n        \"Get the index of the specified color\"\n    ],\n    \"imagecolorexactalpha\": [\n        \"int imagecolorexactalpha(resource im, int red, int green, int blue, int alpha)\",\n        \"Find exact match for colour with transparency\"\n    ],\n    \"imagecolormatch\": [\n        \"bool imagecolormatch(resource im1, resource im2)\",\n        \"Makes the colors of the palette version of an image more closely match the true color version\"\n    ],\n    \"imagecolorresolve\": [\n        \"int imagecolorresolve(resource im, int red, int green, int blue)\",\n        \"Get the index of the specified color or its closest possible alternative\"\n    ],\n    \"imagecolorresolvealpha\": [\n        \"int imagecolorresolvealpha(resource im, int red, int green, int blue, int alpha)\",\n        \"Resolve/Allocate a colour with an alpha level.  Works for true colour and palette based images\"\n    ],\n    \"imagecolorset\": [\n        \"void imagecolorset(resource im, int col, int red, int green, int blue)\",\n        \"Set the color for the specified palette index\"\n    ],\n    \"imagecolorsforindex\": [\n        \"array imagecolorsforindex(resource im, int col)\",\n        \"Get the colors for an index\"\n    ],\n    \"imagecolorstotal\": [\n        \"int imagecolorstotal(resource im)\",\n        \"Find out the number of colors in an image's palette\"\n    ],\n    \"imagecolortransparent\": [\n        \"int imagecolortransparent(resource im [, int col])\",\n        \"Define a color as transparent\"\n    ],\n    \"imageconvolution\": [\n        \"resource imageconvolution(resource src_im, array matrix3x3, double div, double offset)\",\n        \"Apply a 3x3 convolution matrix, using coefficient div and offset\"\n    ],\n    \"imagecopy\": [\n        \"bool imagecopy(resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h)\",\n        \"Copy part of an image\"\n    ],\n    \"imagecopymerge\": [\n        \"bool imagecopymerge(resource src_im, resource dst_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct)\",\n        \"Merge one part of an image with another\"\n    ],\n    \"imagecopymergegray\": [\n        \"bool imagecopymergegray(resource src_im, resource dst_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct)\",\n        \"Merge one part of an image with another\"\n    ],\n    \"imagecopyresampled\": [\n        \"bool imagecopyresampled(resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h)\",\n        \"Copy and resize part of an image using resampling to help ensure clarity\"\n    ],\n    \"imagecopyresized\": [\n        \"bool imagecopyresized(resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h)\",\n        \"Copy and resize part of an image\"\n    ],\n    \"imagecreate\": [\n        \"resource imagecreate(int x_size, int y_size)\",\n        \"Create a new image\"\n    ],\n    \"imagecreatefromgd\": [\n        \"resource imagecreatefromgd(string filename)\",\n        \"Create a new image from GD file or URL\"\n    ],\n    \"imagecreatefromgd2\": [\n        \"resource imagecreatefromgd2(string filename)\",\n        \"Create a new image from GD2 file or URL\"\n    ],\n    \"imagecreatefromgd2part\": [\n        \"resource imagecreatefromgd2part(string filename, int srcX, int srcY, int width, int height)\",\n        \"Create a new image from a given part of GD2 file or URL\"\n    ],\n    \"imagecreatefromgif\": [\n        \"resource imagecreatefromgif(string filename)\",\n        \"Create a new image from GIF file or URL\"\n    ],\n    \"imagecreatefromjpeg\": [\n        \"resource imagecreatefromjpeg(string filename)\",\n        \"Create a new image from JPEG file or URL\"\n    ],\n    \"imagecreatefrompng\": [\n        \"resource imagecreatefrompng(string filename)\",\n        \"Create a new image from PNG file or URL\"\n    ],\n    \"imagecreatefromstring\": [\n        \"resource imagecreatefromstring(string image)\",\n        \"Create a new image from the image stream in the string\"\n    ],\n    \"imagecreatefromwbmp\": [\n        \"resource imagecreatefromwbmp(string filename)\",\n        \"Create a new image from WBMP file or URL\"\n    ],\n    \"imagecreatefromxbm\": [\n        \"resource imagecreatefromxbm(string filename)\",\n        \"Create a new image from XBM file or URL\"\n    ],\n    \"imagecreatefromxpm\": [\n        \"resource imagecreatefromxpm(string filename)\",\n        \"Create a new image from XPM file or URL\"\n    ],\n    \"imagecreatetruecolor\": [\n        \"resource imagecreatetruecolor(int x_size, int y_size)\",\n        \"Create a new true color image\"\n    ],\n    \"imagedashedline\": [\n        \"bool imagedashedline(resource im, int x1, int y1, int x2, int y2, int col)\",\n        \"Draw a dashed line\"\n    ],\n    \"imagedestroy\": [\n        \"bool imagedestroy(resource im)\",\n        \"Destroy an image\"\n    ],\n    \"imageellipse\": [\n        \"bool imageellipse(resource im, int cx, int cy, int w, int h, int color)\",\n        \"Draw an ellipse\"\n    ],\n    \"imagefill\": [\n        \"bool imagefill(resource im, int x, int y, int col)\",\n        \"Flood fill\"\n    ],\n    \"imagefilledarc\": [\n        \"bool imagefilledarc(resource im, int cx, int cy, int w, int h, int s, int e, int col, int style)\",\n        \"Draw a filled partial ellipse\"\n    ],\n    \"imagefilledellipse\": [\n        \"bool imagefilledellipse(resource im, int cx, int cy, int w, int h, int color)\",\n        \"Draw an ellipse\"\n    ],\n    \"imagefilledpolygon\": [\n        \"bool imagefilledpolygon(resource im, array point, int num_points, int col)\",\n        \"Draw a filled polygon\"\n    ],\n    \"imagefilledrectangle\": [\n        \"bool imagefilledrectangle(resource im, int x1, int y1, int x2, int y2, int col)\",\n        \"Draw a filled rectangle\"\n    ],\n    \"imagefilltoborder\": [\n        \"bool imagefilltoborder(resource im, int x, int y, int border, int col)\",\n        \"Flood fill to specific color\"\n    ],\n    \"imagefilter\": [\n        \"bool imagefilter(resource src_im, int filtertype, [args] )\",\n        \"Applies Filter an image using a custom angle\"\n    ],\n    \"imagefontheight\": [\n        \"int imagefontheight(int font)\",\n        \"Get font height\"\n    ],\n    \"imagefontwidth\": [\n        \"int imagefontwidth(int font)\",\n        \"Get font width\"\n    ],\n    \"imageftbbox\": [\n        \"array imageftbbox(float size, float angle, string font_file, string text [, array extrainfo])\",\n        \"Give the bounding box of a text using fonts via freetype2\"\n    ],\n    \"imagefttext\": [\n        \"array imagefttext(resource im, float size, float angle, int x, int y, int col, string font_file, string text [, array extrainfo])\",\n        \"Write text to the image using fonts via freetype2\"\n    ],\n    \"imagegammacorrect\": [\n        \"bool imagegammacorrect(resource im, float inputgamma, float outputgamma)\",\n        \"Apply a gamma correction to a GD image\"\n    ],\n    \"imagegd\": [\n        \"bool imagegd(resource im [, string filename])\",\n        \"Output GD image to browser or file\"\n    ],\n    \"imagegd2\": [\n        \"bool imagegd2(resource im [, string filename, [, int chunk_size, [, int type]]])\",\n        \"Output GD2 image to browser or file\"\n    ],\n    \"imagegif\": [\n        \"bool imagegif(resource im [, string filename])\",\n        \"Output GIF image to browser or file\"\n    ],\n    \"imagegrabscreen\": [\n        \"resource imagegrabscreen()\",\n        \"Grab a screenshot\"\n    ],\n    \"imagegrabwindow\": [\n        \"resource imagegrabwindow(int window_handle [, int client_area])\",\n        \"Grab a window or its client area using a windows handle (HWND property in COM instance)\"\n    ],\n    \"imageinterlace\": [\n        \"int imageinterlace(resource im [, int interlace])\",\n        \"Enable or disable interlace\"\n    ],\n    \"imageistruecolor\": [\n        \"bool imageistruecolor(resource im)\",\n        \"return true if the image uses truecolor\"\n    ],\n    \"imagejpeg\": [\n        \"bool imagejpeg(resource im [, string filename [, int quality]])\",\n        \"Output JPEG image to browser or file\"\n    ],\n    \"imagelayereffect\": [\n        \"bool imagelayereffect(resource im, int effect)\",\n        \"Set the alpha blending flag to use the bundled libgd layering effects\"\n    ],\n    \"imageline\": [\n        \"bool imageline(resource im, int x1, int y1, int x2, int y2, int col)\",\n        \"Draw a line\"\n    ],\n    \"imageloadfont\": [\n        \"int imageloadfont(string filename)\",\n        \"Load a new font\"\n    ],\n    \"imagepalettecopy\": [\n        \"void imagepalettecopy(resource dst, resource src)\",\n        \"Copy the palette from the src image onto the dst image\"\n    ],\n    \"imagepng\": [\n        \"bool imagepng(resource im [, string filename])\",\n        \"Output PNG image to browser or file\"\n    ],\n    \"imagepolygon\": [\n        \"bool imagepolygon(resource im, array point, int num_points, int col)\",\n        \"Draw a polygon\"\n    ],\n    \"imagepsbbox\": [\n        \"array imagepsbbox(string text, resource font, int size [, int space, int tightness, float angle])\",\n        \"Return the bounding box needed by a string if rasterized\"\n    ],\n    \"imagepscopyfont\": [\n        \"int imagepscopyfont(int font_index)\",\n        \"Make a copy of a font for purposes like extending or reenconding\"\n    ],\n    \"imagepsencodefont\": [\n        \"bool imagepsencodefont(resource font_index, string filename)\",\n        \"To change a fonts character encoding vector\"\n    ],\n    \"imagepsextendfont\": [\n        \"bool imagepsextendfont(resource font_index, float extend)\",\n        \"Extend or or condense (if extend < 1) a font\"\n    ],\n    \"imagepsfreefont\": [\n        \"bool imagepsfreefont(resource font_index)\",\n        \"Free memory used by a font\"\n    ],\n    \"imagepsloadfont\": [\n        \"resource imagepsloadfont(string pathname)\",\n        \"Load a new font from specified file\"\n    ],\n    \"imagepsslantfont\": [\n        \"bool imagepsslantfont(resource font_index, float slant)\",\n        \"Slant a font\"\n    ],\n    \"imagepstext\": [\n        \"array imagepstext(resource image, string text, resource font, int size, int foreground, int background, int xcoord, int ycoord [, int space [, int tightness [, float angle [, int antialias])\",\n        \"Rasterize a string over an image\"\n    ],\n    \"imagerectangle\": [\n        \"bool imagerectangle(resource im, int x1, int y1, int x2, int y2, int col)\",\n        \"Draw a rectangle\"\n    ],\n    \"imagerotate\": [\n        \"resource imagerotate(resource src_im, float angle, int bgdcolor [, int ignoretransparent])\",\n        \"Rotate an image using a custom angle\"\n    ],\n    \"imagesavealpha\": [\n        \"bool imagesavealpha(resource im, bool on)\",\n        \"Include alpha channel to a saved image\"\n    ],\n    \"imagesetbrush\": [\n        \"bool imagesetbrush(resource image, resource brush)\",\n        \"Set the brush image to $brush when filling $image with the \\\"IMG_COLOR_BRUSHED\\\" color\"\n    ],\n    \"imagesetpixel\": [\n        \"bool imagesetpixel(resource im, int x, int y, int col)\",\n        \"Set a single pixel\"\n    ],\n    \"imagesetstyle\": [\n        \"bool imagesetstyle(resource im, array styles)\",\n        \"Set the line drawing styles for use with imageline and IMG_COLOR_STYLED.\"\n    ],\n    \"imagesetthickness\": [\n        \"bool imagesetthickness(resource im, int thickness)\",\n        \"Set line thickness for drawing lines, ellipses, rectangles, polygons etc.\"\n    ],\n    \"imagesettile\": [\n        \"bool imagesettile(resource image, resource tile)\",\n        \"Set the tile image to $tile when filling $image with the \\\"IMG_COLOR_TILED\\\" color\"\n    ],\n    \"imagestring\": [\n        \"bool imagestring(resource im, int font, int x, int y, string str, int col)\",\n        \"Draw a string horizontally\"\n    ],\n    \"imagestringup\": [\n        \"bool imagestringup(resource im, int font, int x, int y, string str, int col)\",\n        \"Draw a string vertically - rotated 90 degrees counter-clockwise\"\n    ],\n    \"imagesx\": [\n        \"int imagesx(resource im)\",\n        \"Get image width\"\n    ],\n    \"imagesy\": [\n        \"int imagesy(resource im)\",\n        \"Get image height\"\n    ],\n    \"imagetruecolortopalette\": [\n        \"void imagetruecolortopalette(resource im, bool ditherFlag, int colorsWanted)\",\n        \"Convert a true colour image to a palette based image with a number of colours, optionally using dithering.\"\n    ],\n    \"imagettfbbox\": [\n        \"array imagettfbbox(float size, float angle, string font_file, string text)\",\n        \"Give the bounding box of a text using TrueType fonts\"\n    ],\n    \"imagettftext\": [\n        \"array imagettftext(resource im, float size, float angle, int x, int y, int col, string font_file, string text)\",\n        \"Write text to the image using a TrueType font\"\n    ],\n    \"imagetypes\": [\n        \"int imagetypes(void)\",\n        \"Return the types of images supported in a bitfield - 1=GIF, 2=JPEG, 4=PNG, 8=WBMP, 16=XPM\"\n    ],\n    \"imagewbmp\": [\n        \"bool imagewbmp(resource im [, string filename, [, int foreground]])\",\n        \"Output WBMP image to browser or file\"\n    ],\n    \"imagexbm\": [\n        \"int imagexbm(int im, string filename [, int foreground])\",\n        \"Output XBM image to browser or file\"\n    ],\n    \"imap_8bit\": [\n        \"string imap_8bit(string text)\",\n        \"Convert an 8-bit string to a quoted-printable string\"\n    ],\n    \"imap_alerts\": [\n        \"array imap_alerts(void)\",\n        \"Returns an array of all IMAP alerts that have been generated since the last page load or since the last imap_alerts() call, whichever came last. The alert stack is cleared after imap_alerts() is called.\"\n    ],\n    \"imap_append\": [\n        \"bool imap_append(resource stream_id, string folder, string message [, string options [, string internal_date]])\",\n        \"Append a new message to a specified mailbox\"\n    ],\n    \"imap_base64\": [\n        \"string imap_base64(string text)\",\n        \"Decode BASE64 encoded text\"\n    ],\n    \"imap_binary\": [\n        \"string imap_binary(string text)\",\n        \"Convert an 8bit string to a base64 string\"\n    ],\n    \"imap_body\": [\n        \"string imap_body(resource stream_id, int msg_no [, int options])\",\n        \"Read the message body\"\n    ],\n    \"imap_bodystruct\": [\n        \"object imap_bodystruct(resource stream_id, int msg_no, string section)\",\n        \"Read the structure of a specified body section of a specific message\"\n    ],\n    \"imap_check\": [\n        \"object imap_check(resource stream_id)\",\n        \"Get mailbox properties\"\n    ],\n    \"imap_clearflag_full\": [\n        \"bool imap_clearflag_full(resource stream_id, string sequence, string flag [, int options])\",\n        \"Clears flags on messages\"\n    ],\n    \"imap_close\": [\n        \"bool imap_close(resource stream_id [, int options])\",\n        \"Close an IMAP stream\"\n    ],\n    \"imap_createmailbox\": [\n        \"bool imap_createmailbox(resource stream_id, string mailbox)\",\n        \"Create a new mailbox\"\n    ],\n    \"imap_delete\": [\n        \"bool imap_delete(resource stream_id, int msg_no [, int options])\",\n        \"Mark a message for deletion\"\n    ],\n    \"imap_deletemailbox\": [\n        \"bool imap_deletemailbox(resource stream_id, string mailbox)\",\n        \"Delete a mailbox\"\n    ],\n    \"imap_errors\": [\n        \"array imap_errors(void)\",\n        \"Returns an array of all IMAP errors generated since the last page load, or since the last imap_errors() call, whichever came last. The error stack is cleared after imap_errors() is called.\"\n    ],\n    \"imap_expunge\": [\n        \"bool imap_expunge(resource stream_id)\",\n        \"Permanently delete all messages marked for deletion\"\n    ],\n    \"imap_fetch_overview\": [\n        \"array imap_fetch_overview(resource stream_id, string sequence [, int options])\",\n        \"Read an overview of the information in the headers of the given message sequence\"\n    ],\n    \"imap_fetchbody\": [\n        \"string imap_fetchbody(resource stream_id, int msg_no, string section [, int options])\",\n        \"Get a specific body section\"\n    ],\n    \"imap_fetchheader\": [\n        \"string imap_fetchheader(resource stream_id, int msg_no [, int options])\",\n        \"Get the full unfiltered header for a message\"\n    ],\n    \"imap_fetchstructure\": [\n        \"object imap_fetchstructure(resource stream_id, int msg_no [, int options])\",\n        \"Read the full structure of a message\"\n    ],\n    \"imap_gc\": [\n        \"bool imap_gc(resource stream_id, int flags)\",\n        \"This function garbage collects (purges) the cache of entries of a specific type.\"\n    ],\n    \"imap_get_quota\": [\n        \"array imap_get_quota(resource stream_id, string qroot)\",\n        \"Returns the quota set to the mailbox account qroot\"\n    ],\n    \"imap_get_quotaroot\": [\n        \"array imap_get_quotaroot(resource stream_id, string mbox)\",\n        \"Returns the quota set to the mailbox account mbox\"\n    ],\n    \"imap_getacl\": [\n        \"array imap_getacl(resource stream_id, string mailbox)\",\n        \"Gets the ACL for a given mailbox\"\n    ],\n    \"imap_getmailboxes\": [\n        \"array imap_getmailboxes(resource stream_id, string ref, string pattern)\",\n        \"Reads the list of mailboxes and returns a full array of objects containing name, attributes, and delimiter\"\n    ],\n    \"imap_getsubscribed\": [\n        \"array imap_getsubscribed(resource stream_id, string ref, string pattern)\",\n        \"Return a list of subscribed mailboxes, in the same format as imap_getmailboxes()\"\n    ],\n    \"imap_headerinfo\": [\n        \"object imap_headerinfo(resource stream_id, int msg_no [, int from_length [, int subject_length [, string default_host]]])\",\n        \"Read the headers of the message\"\n    ],\n    \"imap_headers\": [\n        \"array imap_headers(resource stream_id)\",\n        \"Returns headers for all messages in a mailbox\"\n    ],\n    \"imap_last_error\": [\n        \"string imap_last_error(void)\",\n        \"Returns the last error that was generated by an IMAP function. The error stack is NOT cleared after this call.\"\n    ],\n    \"imap_list\": [\n        \"array imap_list(resource stream_id, string ref, string pattern)\",\n        \"Read the list of mailboxes\"\n    ],\n    \"imap_listscan\": [\n        \"array imap_listscan(resource stream_id, string ref, string pattern, string content)\",\n        \"Read list of mailboxes containing a certain string\"\n    ],\n    \"imap_lsub\": [\n        \"array imap_lsub(resource stream_id, string ref, string pattern)\",\n        \"Return a list of subscribed mailboxes\"\n    ],\n    \"imap_mail\": [\n        \"bool imap_mail(string to, string subject, string message [, string additional_headers [, string cc [, string bcc [, string rpath]]]])\",\n        \"Send an email message\"\n    ],\n    \"imap_mail_compose\": [\n        \"string imap_mail_compose(array envelope, array body)\",\n        \"Create a MIME message based on given envelope and body sections\"\n    ],\n    \"imap_mail_copy\": [\n        \"bool imap_mail_copy(resource stream_id, string msglist, string mailbox [, int options])\",\n        \"Copy specified message to a mailbox\"\n    ],\n    \"imap_mail_move\": [\n        \"bool imap_mail_move(resource stream_id, string sequence, string mailbox [, int options])\",\n        \"Move specified message to a mailbox\"\n    ],\n    \"imap_mailboxmsginfo\": [\n        \"object imap_mailboxmsginfo(resource stream_id)\",\n        \"Returns info about the current mailbox\"\n    ],\n    \"imap_mime_header_decode\": [\n        \"array imap_mime_header_decode(string str)\",\n        \"Decode mime header element in accordance with RFC 2047 and return array of objects containing 'charset' encoding and decoded 'text'\"\n    ],\n    \"imap_msgno\": [\n        \"int imap_msgno(resource stream_id, int unique_msg_id)\",\n        \"Get the sequence number associated with a UID\"\n    ],\n    \"imap_mutf7_to_utf8\": [\n        \"string imap_mutf7_to_utf8(string in)\",\n        \"Decode a modified UTF-7 string to UTF-8\"\n    ],\n    \"imap_num_msg\": [\n        \"int imap_num_msg(resource stream_id)\",\n        \"Gives the number of messages in the current mailbox\"\n    ],\n    \"imap_num_recent\": [\n        \"int imap_num_recent(resource stream_id)\",\n        \"Gives the number of recent messages in current mailbox\"\n    ],\n    \"imap_open\": [\n        \"resource imap_open(string mailbox, string user, string password [, int options [, int n_retries]])\",\n        \"Open an IMAP stream to a mailbox\"\n    ],\n    \"imap_ping\": [\n        \"bool imap_ping(resource stream_id)\",\n        \"Check if the IMAP stream is still active\"\n    ],\n    \"imap_qprint\": [\n        \"string imap_qprint(string text)\",\n        \"Convert a quoted-printable string to an 8-bit string\"\n    ],\n    \"imap_renamemailbox\": [\n        \"bool imap_renamemailbox(resource stream_id, string old_name, string new_name)\",\n        \"Rename a mailbox\"\n    ],\n    \"imap_reopen\": [\n        \"bool imap_reopen(resource stream_id, string mailbox [, int options [, int n_retries]])\",\n        \"Reopen an IMAP stream to a new mailbox\"\n    ],\n    \"imap_rfc822_parse_adrlist\": [\n        \"array imap_rfc822_parse_adrlist(string address_string, string default_host)\",\n        \"Parses an address string\"\n    ],\n    \"imap_rfc822_parse_headers\": [\n        \"object imap_rfc822_parse_headers(string headers [, string default_host])\",\n        \"Parse a set of mail headers contained in a string, and return an object similar to imap_headerinfo()\"\n    ],\n    \"imap_rfc822_write_address\": [\n        \"string imap_rfc822_write_address(string mailbox, string host, string personal)\",\n        \"Returns a properly formatted email address given the mailbox, host, and personal info\"\n    ],\n    \"imap_savebody\": [\n        \"bool imap_savebody(resource stream_id, string|resource file, int msg_no[, string section = \\\"\\\"[, int options = 0]])\",\n        \"Save a specific body section to a file\"\n    ],\n    \"imap_search\": [\n        \"array imap_search(resource stream_id, string criteria [, int options [, string charset]])\",\n        \"Return a list of messages matching the given criteria\"\n    ],\n    \"imap_set_quota\": [\n        \"bool imap_set_quota(resource stream_id, string qroot, int mailbox_size)\",\n        \"Will set the quota for qroot mailbox\"\n    ],\n    \"imap_setacl\": [\n        \"bool imap_setacl(resource stream_id, string mailbox, string id, string rights)\",\n        \"Sets the ACL for a given mailbox\"\n    ],\n    \"imap_setflag_full\": [\n        \"bool imap_setflag_full(resource stream_id, string sequence, string flag [, int options])\",\n        \"Sets flags on messages\"\n    ],\n    \"imap_sort\": [\n        \"array imap_sort(resource stream_id, int criteria, int reverse [, int options [, string search_criteria [, string charset]]])\",\n        \"Sort an array of message headers, optionally including only messages that meet specified criteria.\"\n    ],\n    \"imap_status\": [\n        \"object imap_status(resource stream_id, string mailbox, int options)\",\n        \"Get status info from a mailbox\"\n    ],\n    \"imap_subscribe\": [\n        \"bool imap_subscribe(resource stream_id, string mailbox)\",\n        \"Subscribe to a mailbox\"\n    ],\n    \"imap_thread\": [\n        \"array imap_thread(resource stream_id [, int options])\",\n        \"Return threaded by REFERENCES tree\"\n    ],\n    \"imap_timeout\": [\n        \"mixed imap_timeout(int timeout_type [, int timeout])\",\n        \"Set or fetch imap timeout\"\n    ],\n    \"imap_uid\": [\n        \"int imap_uid(resource stream_id, int msg_no)\",\n        \"Get the unique message id associated with a standard sequential message number\"\n    ],\n    \"imap_undelete\": [\n        \"bool imap_undelete(resource stream_id, int msg_no [, int flags])\",\n        \"Remove the delete flag from a message\"\n    ],\n    \"imap_unsubscribe\": [\n        \"bool imap_unsubscribe(resource stream_id, string mailbox)\",\n        \"Unsubscribe from a mailbox\"\n    ],\n    \"imap_utf7_decode\": [\n        \"string imap_utf7_decode(string buf)\",\n        \"Decode a modified UTF-7 string\"\n    ],\n    \"imap_utf7_encode\": [\n        \"string imap_utf7_encode(string buf)\",\n        \"Encode a string in modified UTF-7\"\n    ],\n    \"imap_utf8\": [\n        \"string imap_utf8(string mime_encoded_text)\",\n        \"Convert a mime-encoded text to UTF-8\"\n    ],\n    \"imap_utf8_to_mutf7\": [\n        \"string imap_utf8_to_mutf7(string in)\",\n        \"Encode a UTF-8 string to modified UTF-7\"\n    ],\n    \"implode\": [\n        \"string implode([string glue,] array pieces)\",\n        \"Joins array elements placing glue string between items and return one string\"\n    ],\n    \"import_request_variables\": [\n        \"bool import_request_variables(string types [, string prefix])\",\n        \"Import GET/POST/Cookie variables into the global scope\"\n    ],\n    \"in_array\": [\n        \"bool in_array(mixed needle, array haystack [, bool strict])\",\n        \"Checks if the given value exists in the array\"\n    ],\n    \"include\": [\n        \"bool include(string path)\",\n        \"Includes and evaluates the specified file\"\n    ],\n    \"include_once\": [\n        \"bool include_once(string path)\",\n        \"Includes and evaluates the specified file\"\n    ],\n    \"inet_ntop\": [\n        \"string inet_ntop(string in_addr)\",\n        \"Converts a packed inet address to a human readable IP address string\"\n    ],\n    \"inet_pton\": [\n        \"string inet_pton(string ip_address)\",\n        \"Converts a human readable IP address to a packed binary string\"\n    ],\n    \"ini_get\": [\n        \"string ini_get(string varname)\",\n        \"Get a configuration option\"\n    ],\n    \"ini_get_all\": [\n        \"array ini_get_all([string extension[, bool details = true]])\",\n        \"Get all configuration options\"\n    ],\n    \"ini_restore\": [\n        \"void ini_restore(string varname)\",\n        \"Restore the value of a configuration option specified by varname\"\n    ],\n    \"ini_set\": [\n        \"string ini_set(string varname, string newvalue)\",\n        \"Set a configuration option, returns false on error and the old value of the configuration option on success\"\n    ],\n    \"interface_exists\": [\n        \"bool interface_exists(string classname [, bool autoload])\",\n        \"Checks if the class exists\"\n    ],\n    \"intl_error_name\": [\n        \"string intl_error_name()\",\n        \"* Return a string for a given error code.  * The string will be the same as the name of the error code constant.\"\n    ],\n    \"intl_get_error_code\": [\n        \"int intl_get_error_code()\",\n        \"* Get code of the last occured error.\"\n    ],\n    \"intl_get_error_message\": [\n        \"string intl_get_error_message()\",\n        \"* Get text description of the last occured error.\"\n    ],\n    \"intl_is_failure\": [\n        \"bool intl_is_failure()\",\n        \"* Check whether the given error code indicates a failure.  * Returns true if it does, and false if the code  * indicates success or a warning.\"\n    ],\n    \"intval\": [\n        \"int intval(mixed var [, int base])\",\n        \"Get the integer value of a variable using the optional base for the conversion\"\n    ],\n    \"ip2long\": [\n        \"int ip2long(string ip_address)\",\n        \"Converts a string containing an (IPv4) Internet Protocol dotted address into a proper address\"\n    ],\n    \"iptcembed\": [\n        \"array iptcembed(string iptcdata, string jpeg_file_name [, int spool])\",\n        \"Embed binary IPTC data into a JPEG image.\"\n    ],\n    \"iptcparse\": [\n        \"array iptcparse(string iptcdata)\",\n        \"Parse binary IPTC-data into associative array\"\n    ],\n    \"is_a\": [\n        \"bool is_a(object object, string class_name)\",\n        \"Returns true if the object is of this class or has this class as one of its parents\"\n    ],\n    \"is_array\": [\n        \"bool is_array(mixed var)\",\n        \"Returns true if variable is an array\"\n    ],\n    \"is_bool\": [\n        \"bool is_bool(mixed var)\",\n        \"Returns true if variable is a boolean\"\n    ],\n    \"is_callable\": [\n        \"bool is_callable(mixed var [, bool syntax_only [, string callable_name]])\",\n        \"Returns true if var is callable.\"\n    ],\n    \"is_dir\": [\n        \"bool is_dir(string filename)\",\n        \"Returns true if file is directory\"\n    ],\n    \"is_executable\": [\n        \"bool is_executable(string filename)\",\n        \"Returns true if file is executable\"\n    ],\n    \"is_file\": [\n        \"bool is_file(string filename)\",\n        \"Returns true if file is a regular file\"\n    ],\n    \"is_finite\": [\n        \"bool is_finite(float val)\",\n        \"Returns whether argument is finite\"\n    ],\n    \"is_float\": [\n        \"bool is_float(mixed var)\",\n        \"Returns true if variable is float point\"\n    ],\n    \"is_infinite\": [\n        \"bool is_infinite(float val)\",\n        \"Returns whether argument is infinite\"\n    ],\n    \"is_link\": [\n        \"bool is_link(string filename)\",\n        \"Returns true if file is symbolic link\"\n    ],\n    \"is_long\": [\n        \"bool is_long(mixed var)\",\n        \"Returns true if variable is a long (integer)\"\n    ],\n    \"is_nan\": [\n        \"bool is_nan(float val)\",\n        \"Returns whether argument is not a number\"\n    ],\n    \"is_null\": [\n        \"bool is_null(mixed var)\",\n        \"Returns true if variable is null\"\n    ],\n    \"is_numeric\": [\n        \"bool is_numeric(mixed value)\",\n        \"Returns true if value is a number or a numeric string\"\n    ],\n    \"is_object\": [\n        \"bool is_object(mixed var)\",\n        \"Returns true if variable is an object\"\n    ],\n    \"is_readable\": [\n        \"bool is_readable(string filename)\",\n        \"Returns true if file can be read\"\n    ],\n    \"is_resource\": [\n        \"bool is_resource(mixed var)\",\n        \"Returns true if variable is a resource\"\n    ],\n    \"is_scalar\": [\n        \"bool is_scalar(mixed value)\",\n        \"Returns true if value is a scalar\"\n    ],\n    \"is_string\": [\n        \"bool is_string(mixed var)\",\n        \"Returns true if variable is a string\"\n    ],\n    \"is_subclass_of\": [\n        \"bool is_subclass_of(object object, string class_name)\",\n        \"Returns true if the object has this class as one of its parents\"\n    ],\n    \"is_uploaded_file\": [\n        \"bool is_uploaded_file(string path)\",\n        \"Check if file was created by rfc1867 upload\"\n    ],\n    \"is_writable\": [\n        \"bool is_writable(string filename)\",\n        \"Returns true if file can be written\"\n    ],\n    \"isset\": [\n        \"bool isset(mixed var [, mixed var])\",\n        \"Determine whether a variable is set\"\n    ],\n    \"iterator_apply\": [\n        \"int iterator_apply(Traversable it, mixed function [, mixed params])\",\n        \"Calls a function for every element in an iterator\"\n    ],\n    \"iterator_count\": [\n        \"int iterator_count(Traversable it)\",\n        \"Count the elements in an iterator\"\n    ],\n    \"iterator_to_array\": [\n        \"array iterator_to_array(Traversable it [, bool use_keys = true])\",\n        \"Copy the iterator into an array\"\n    ],\n    \"jddayofweek\": [\n        \"mixed jddayofweek(int juliandaycount [, int mode])\",\n        \"Returns name or number of day of week from julian day count\"\n    ],\n    \"jdmonthname\": [\n        \"string jdmonthname(int juliandaycount, int mode)\",\n        \"Returns name of month for julian day count\"\n    ],\n    \"jdtofrench\": [\n        \"string jdtofrench(int juliandaycount)\",\n        \"Converts a julian day count to a french republic calendar date\"\n    ],\n    \"jdtogregorian\": [\n        \"string jdtogregorian(int juliandaycount)\",\n        \"Converts a julian day count to a gregorian calendar date\"\n    ],\n    \"jdtojewish\": [\n        \"string jdtojewish(int juliandaycount [, bool hebrew [, int fl]])\",\n        \"Converts a julian day count to a jewish calendar date\"\n    ],\n    \"jdtojulian\": [\n        \"string jdtojulian(int juliandaycount)\",\n        \"Convert a julian day count to a julian calendar date\"\n    ],\n    \"jdtounix\": [\n        \"int jdtounix(int jday)\",\n        \"Convert Julian Day to UNIX timestamp\"\n    ],\n    \"jewishtojd\": [\n        \"int jewishtojd(int month, int day, int year)\",\n        \"Converts a jewish calendar date to a julian day count\"\n    ],\n    \"join\": [\n        \"string join(array src, string glue)\",\n        \"An alias for implode\"\n    ],\n    \"jpeg2wbmp\": [\n        \"bool jpeg2wbmp (string f_org, string f_dest, int d_height, int d_width, int threshold)\",\n        \"Convert JPEG image to WBMP image\"\n    ],\n    \"json_decode\": [\n        \"mixed json_decode(string json [, bool assoc [, long depth]])\",\n        \"Decodes the JSON representation into a PHP value\"\n    ],\n    \"json_encode\": [\n        \"string json_encode(mixed data [, int options])\",\n        \"Returns the JSON representation of a value\"\n    ],\n    \"json_last_error\": [\n        \"int json_last_error()\",\n        \"Returns the error code of the last json_decode().\"\n    ],\n    \"juliantojd\": [\n        \"int juliantojd(int month, int day, int year)\",\n        \"Converts a julian calendar date to julian day count\"\n    ],\n    \"key\": [\n        \"mixed key(array array_arg)\",\n        \"Return the key of the element currently pointed to by the internal array pointer\"\n    ],\n    \"krsort\": [\n        \"bool krsort(array &array_arg [, int sort_flags])\",\n        \"Sort an array by key value in reverse order\"\n    ],\n    \"ksort\": [\n        \"bool ksort(array &array_arg [, int sort_flags])\",\n        \"Sort an array by key\"\n    ],\n    \"lcfirst\": [\n        \"string lcfirst(string str)\",\n        \"Make a string's first character lowercase\"\n    ],\n    \"lcg_value\": [\n        \"float lcg_value()\",\n        \"Returns a value from the combined linear congruential generator\"\n    ],\n    \"lchgrp\": [\n        \"bool lchgrp(string filename, mixed group)\",\n        \"Change symlink group\"\n    ],\n    \"ldap_8859_to_t61\": [\n        \"string ldap_8859_to_t61(string value)\",\n        \"Translate 8859 characters to t61 characters\"\n    ],\n    \"ldap_add\": [\n        \"bool ldap_add(resource link, string dn, array entry)\",\n        \"Add entries to LDAP directory\"\n    ],\n    \"ldap_bind\": [\n        \"bool ldap_bind(resource link [, string dn [, string password]])\",\n        \"Bind to LDAP directory\"\n    ],\n    \"ldap_compare\": [\n        \"bool ldap_compare(resource link, string dn, string attr, string value)\",\n        \"Determine if an entry has a specific value for one of its attributes\"\n    ],\n    \"ldap_connect\": [\n        \"resource ldap_connect([string host [, int port [, string wallet [, string wallet_passwd [, int authmode]]]]])\",\n        \"Connect to an LDAP server\"\n    ],\n    \"ldap_count_entries\": [\n        \"int ldap_count_entries(resource link, resource result)\",\n        \"Count the number of entries in a search result\"\n    ],\n    \"ldap_delete\": [\n        \"bool ldap_delete(resource link, string dn)\",\n        \"Delete an entry from a directory\"\n    ],\n    \"ldap_dn2ufn\": [\n        \"string ldap_dn2ufn(string dn)\",\n        \"Convert DN to User Friendly Naming format\"\n    ],\n    \"ldap_err2str\": [\n        \"string ldap_err2str(int errno)\",\n        \"Convert error number to error string\"\n    ],\n    \"ldap_errno\": [\n        \"int ldap_errno(resource link)\",\n        \"Get the current ldap error number\"\n    ],\n    \"ldap_error\": [\n        \"string ldap_error(resource link)\",\n        \"Get the current ldap error string\"\n    ],\n    \"ldap_explode_dn\": [\n        \"array ldap_explode_dn(string dn, int with_attrib)\",\n        \"Splits DN into its component parts\"\n    ],\n    \"ldap_first_attribute\": [\n        \"string ldap_first_attribute(resource link, resource result_entry)\",\n        \"Return first attribute\"\n    ],\n    \"ldap_first_entry\": [\n        \"resource ldap_first_entry(resource link, resource result)\",\n        \"Return first result id\"\n    ],\n    \"ldap_first_reference\": [\n        \"resource ldap_first_reference(resource link, resource result)\",\n        \"Return first reference\"\n    ],\n    \"ldap_free_result\": [\n        \"bool ldap_free_result(resource result)\",\n        \"Free result memory\"\n    ],\n    \"ldap_get_attributes\": [\n        \"array ldap_get_attributes(resource link, resource result_entry)\",\n        \"Get attributes from a search result entry\"\n    ],\n    \"ldap_get_dn\": [\n        \"string ldap_get_dn(resource link, resource result_entry)\",\n        \"Get the DN of a result entry\"\n    ],\n    \"ldap_get_entries\": [\n        \"array ldap_get_entries(resource link, resource result)\",\n        \"Get all result entries\"\n    ],\n    \"ldap_get_option\": [\n        \"bool ldap_get_option(resource link, int option, mixed retval)\",\n        \"Get the current value of various session-wide parameters\"\n    ],\n    \"ldap_get_values_len\": [\n        \"array ldap_get_values_len(resource link, resource result_entry, string attribute)\",\n        \"Get all values with lengths from a result entry\"\n    ],\n    \"ldap_list\": [\n        \"resource ldap_list(resource|array link, string base_dn, string filter [, array attrs [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])\",\n        \"Single-level search\"\n    ],\n    \"ldap_mod_add\": [\n        \"bool ldap_mod_add(resource link, string dn, array entry)\",\n        \"Add attribute values to current\"\n    ],\n    \"ldap_mod_del\": [\n        \"bool ldap_mod_del(resource link, string dn, array entry)\",\n        \"Delete attribute values\"\n    ],\n    \"ldap_mod_replace\": [\n        \"bool ldap_mod_replace(resource link, string dn, array entry)\",\n        \"Replace attribute values with new ones\"\n    ],\n    \"ldap_next_attribute\": [\n        \"string ldap_next_attribute(resource link, resource result_entry)\",\n        \"Get the next attribute in result\"\n    ],\n    \"ldap_next_entry\": [\n        \"resource ldap_next_entry(resource link, resource result_entry)\",\n        \"Get next result entry\"\n    ],\n    \"ldap_next_reference\": [\n        \"resource ldap_next_reference(resource link, resource reference_entry)\",\n        \"Get next reference\"\n    ],\n    \"ldap_parse_reference\": [\n        \"bool ldap_parse_reference(resource link, resource reference_entry, array referrals)\",\n        \"Extract information from reference entry\"\n    ],\n    \"ldap_parse_result\": [\n        \"bool ldap_parse_result(resource link, resource result, int errcode, string matcheddn, string errmsg, array referrals)\",\n        \"Extract information from result\"\n    ],\n    \"ldap_read\": [\n        \"resource ldap_read(resource|array link, string base_dn, string filter [, array attrs [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])\",\n        \"Read an entry\"\n    ],\n    \"ldap_rename\": [\n        \"bool ldap_rename(resource link, string dn, string newrdn, string newparent, bool deleteoldrdn);\",\n        \"Modify the name of an entry\"\n    ],\n    \"ldap_sasl_bind\": [\n        \"bool ldap_sasl_bind(resource link [, string binddn [, string password [, string sasl_mech [, string sasl_realm [, string sasl_authc_id [, string sasl_authz_id [, string props]]]]]]])\",\n        \"Bind to LDAP directory using SASL\"\n    ],\n    \"ldap_search\": [\n        \"resource ldap_search(resource|array link, string base_dn, string filter [, array attrs [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])\",\n        \"Search LDAP tree under base_dn\"\n    ],\n    \"ldap_set_option\": [\n        \"bool ldap_set_option(resource link, int option, mixed newval)\",\n        \"Set the value of various session-wide parameters\"\n    ],\n    \"ldap_set_rebind_proc\": [\n        \"bool ldap_set_rebind_proc(resource link, string callback)\",\n        \"Set a callback function to do re-binds on referral chasing.\"\n    ],\n    \"ldap_sort\": [\n        \"bool ldap_sort(resource link, resource result, string sortfilter)\",\n        \"Sort LDAP result entries\"\n    ],\n    \"ldap_start_tls\": [\n        \"bool ldap_start_tls(resource link)\",\n        \"Start TLS\"\n    ],\n    \"ldap_t61_to_8859\": [\n        \"string ldap_t61_to_8859(string value)\",\n        \"Translate t61 characters to 8859 characters\"\n    ],\n    \"ldap_unbind\": [\n        \"bool ldap_unbind(resource link)\",\n        \"Unbind from LDAP directory\"\n    ],\n    \"leak\": [\n        \"void leak(int num_bytes=3)\",\n        \"Cause an intentional memory leak, for testing/debugging purposes\"\n    ],\n    \"levenshtein\": [\n        \"int levenshtein(string str1, string str2[, int cost_ins, int cost_rep, int cost_del])\",\n        \"Calculate Levenshtein distance between two strings\"\n    ],\n    \"libxml_clear_errors\": [\n        \"void libxml_clear_errors()\",\n        \"Clear last error from libxml\"\n    ],\n    \"libxml_disable_entity_loader\": [\n        \"bool libxml_disable_entity_loader([boolean disable])\",\n        \"Disable/Enable ability to load external entities\"\n    ],\n    \"libxml_get_errors\": [\n        \"object libxml_get_errors()\",\n        \"Retrieve array of errors\"\n    ],\n    \"libxml_get_last_error\": [\n        \"object libxml_get_last_error()\",\n        \"Retrieve last error from libxml\"\n    ],\n    \"libxml_set_streams_context\": [\n        \"void libxml_set_streams_context(resource streams_context)\",\n        \"Set the streams context for the next libxml document load or write\"\n    ],\n    \"libxml_use_internal_errors\": [\n        \"bool libxml_use_internal_errors([boolean use_errors])\",\n        \"Disable libxml errors and allow user to fetch error information as needed\"\n    ],\n    \"link\": [\n        \"int link(string target, string link)\",\n        \"Create a hard link\"\n    ],\n    \"linkinfo\": [\n        \"int linkinfo(string filename)\",\n        \"Returns the st_dev field of the UNIX C stat structure describing the link\"\n    ],\n    \"litespeed_request_headers\": [\n        \"array litespeed_request_headers(void)\",\n        \"Fetch all HTTP request headers\"\n    ],\n    \"litespeed_response_headers\": [\n        \"array litespeed_response_headers(void)\",\n        \"Fetch all HTTP response headers\"\n    ],\n    \"locale_accept_from_http\": [\n        \"string locale_accept_from_http(string $http_accept)\",\n        null\n    ],\n    \"locale_canonicalize\": [\n        \"static string locale_canonicalize(Locale $loc, string $locale)\",\n        \"* @param string $locale The locale string to canonicalize\"\n    ],\n    \"locale_filter_matches\": [\n        \"boolean locale_filter_matches(string $langtag, string $locale[, bool $canonicalize])\",\n        \"* Checks if a $langtag filter matches with $locale according to RFC 4647's basic filtering algorithm\"\n    ],\n    \"locale_get_all_variants\": [\n        \"static array locale_get_all_variants($locale)\",\n        \"* gets an array containing the list of variants, or null\"\n    ],\n    \"locale_get_default\": [\n        \"static string locale_get_default( )\",\n        \"Get default locale\"\n    ],\n    \"locale_get_keywords\": [\n        \"static array locale_get_keywords(string $locale) {\",\n        \"* return an associative array containing keyword-value  * pairs for this locale. The keys are keys to the array (doh!)\"\n    ],\n    \"locale_get_primary_language\": [\n        \"static string locale_get_primary_language($locale)\",\n        \"* gets the primary language for the $locale\"\n    ],\n    \"locale_get_region\": [\n        \"static string locale_get_region($locale)\",\n        \"* gets the region for the $locale\"\n    ],\n    \"locale_get_script\": [\n        \"static string locale_get_script($locale)\",\n        \"* gets the script for the $locale\"\n    ],\n    \"locale_lookup\": [\n        \"string locale_lookup(array $langtag, string $locale[, bool $canonicalize[, string $default = null]])\",\n        \"* Searchs the items in $langtag for the best match to the language * range\"\n    ],\n    \"locale_set_default\": [\n        \"static string locale_set_default( string $locale )\",\n        \"Set default locale\"\n    ],\n    \"localeconv\": [\n        \"array localeconv(void)\",\n        \"Returns numeric formatting information based on the current locale\"\n    ],\n    \"localtime\": [\n        \"array localtime([int timestamp [, bool associative_array]])\",\n        \"Returns the results of the C system call localtime as an associative array if the associative_array argument is set to 1 other wise it is a regular array\"\n    ],\n    \"log\": [\n        \"float log(float number, [float base])\",\n        \"Returns the natural logarithm of the number, or the base log if base is specified\"\n    ],\n    \"log10\": [\n        \"float log10(float number)\",\n        \"Returns the base-10 logarithm of the number\"\n    ],\n    \"log1p\": [\n        \"float log1p(float number)\",\n        \"Returns log(1 + number), computed in a way that accurate even when the value of number is close to zero\"\n    ],\n    \"long2ip\": [\n        \"string long2ip(int proper_address)\",\n        \"Converts an (IPv4) Internet network address into a string in Internet standard dotted format\"\n    ],\n    \"lstat\": [\n        \"array lstat(string filename)\",\n        \"Give information about a file or symbolic link\"\n    ],\n    \"ltrim\": [\n        \"string ltrim(string str [, string character_mask])\",\n        \"Strips whitespace from the beginning of a string\"\n    ],\n    \"mail\": [\n        \"int mail(string to, string subject, string message [, string additional_headers [, string additional_parameters]])\",\n        \"Send an email message\"\n    ],\n    \"max\": [\n        \"mixed max(mixed arg1 [, mixed arg2 [, mixed ...]])\",\n        \"Return the highest value in an array or a series of arguments\"\n    ],\n    \"mb_check_encoding\": [\n        \"bool mb_check_encoding([string var[, string encoding]])\",\n        \"Check if the string is valid for the specified encoding\"\n    ],\n    \"mb_convert_case\": [\n        \"string mb_convert_case(string sourcestring, int mode [, string encoding])\",\n        \"Returns a case-folded version of sourcestring\"\n    ],\n    \"mb_convert_encoding\": [\n        \"string mb_convert_encoding(string str, string to-encoding [, mixed from-encoding])\",\n        \"Returns converted string in desired encoding\"\n    ],\n    \"mb_convert_kana\": [\n        \"string mb_convert_kana(string str [, string option] [, string encoding])\",\n        \"Conversion between full-width character and half-width character (Japanese)\"\n    ],\n    \"mb_convert_variables\": [\n        \"string mb_convert_variables(string to-encoding, mixed from-encoding, mixed vars [, ...])\",\n        \"Converts the string resource in variables to desired encoding\"\n    ],\n    \"mb_decode_mimeheader\": [\n        \"string mb_decode_mimeheader(string string)\",\n        \"Decodes the MIME \\\"encoded-word\\\" in the string\"\n    ],\n    \"mb_decode_numericentity\": [\n        \"string mb_decode_numericentity(string string, array convmap [, string encoding])\",\n        \"Converts HTML numeric entities to character code\"\n    ],\n    \"mb_detect_encoding\": [\n        \"string mb_detect_encoding(string str [, mixed encoding_list [, bool strict]])\",\n        \"Encodings of the given string is returned (as a string)\"\n    ],\n    \"mb_detect_order\": [\n        \"bool|array mb_detect_order([mixed encoding-list])\",\n        \"Sets the current detect_order or Return the current detect_order as a array\"\n    ],\n    \"mb_encode_mimeheader\": [\n        \"string mb_encode_mimeheader(string str [, string charset [, string transfer-encoding [, string linefeed [, int indent]]]])\",\n        \"Converts the string to MIME \\\"encoded-word\\\" in the format of =?charset?(B|Q)?encoded_string?=\"\n    ],\n    \"mb_encode_numericentity\": [\n        \"string mb_encode_numericentity(string string, array convmap [, string encoding])\",\n        \"Converts specified characters to HTML numeric entities\"\n    ],\n    \"mb_encoding_aliases\": [\n        \"array mb_encoding_aliases(string encoding)\",\n        \"Returns an array of the aliases of a given encoding name\"\n    ],\n    \"mb_ereg\": [\n        \"int mb_ereg(string pattern, string string [, array registers])\",\n        \"Regular expression match for multibyte string\"\n    ],\n    \"mb_ereg_match\": [\n        \"bool mb_ereg_match(string pattern, string string [,string option])\",\n        \"Regular expression match for multibyte string\"\n    ],\n    \"mb_ereg_replace\": [\n        \"string mb_ereg_replace(string pattern, string replacement, string string [, string option])\",\n        \"Replace regular expression for multibyte string\"\n    ],\n    \"mb_ereg_search\": [\n        \"bool mb_ereg_search([string pattern[, string option]])\",\n        \"Regular expression search for multibyte string\"\n    ],\n    \"mb_ereg_search_getpos\": [\n        \"int mb_ereg_search_getpos(void)\",\n        \"Get search start position\"\n    ],\n    \"mb_ereg_search_getregs\": [\n        \"array mb_ereg_search_getregs(void)\",\n        \"Get matched substring of the last time\"\n    ],\n    \"mb_ereg_search_init\": [\n        \"bool mb_ereg_search_init(string string [, string pattern[, string option]])\",\n        \"Initialize string and regular expression for search.\"\n    ],\n    \"mb_ereg_search_pos\": [\n        \"array mb_ereg_search_pos([string pattern[, string option]])\",\n        \"Regular expression search for multibyte string\"\n    ],\n    \"mb_ereg_search_regs\": [\n        \"array mb_ereg_search_regs([string pattern[, string option]])\",\n        \"Regular expression search for multibyte string\"\n    ],\n    \"mb_ereg_search_setpos\": [\n        \"bool mb_ereg_search_setpos(int position)\",\n        \"Set search start position\"\n    ],\n    \"mb_eregi\": [\n        \"int mb_eregi(string pattern, string string [, array registers])\",\n        \"Case-insensitive regular expression match for multibyte string\"\n    ],\n    \"mb_eregi_replace\": [\n        \"string mb_eregi_replace(string pattern, string replacement, string string)\",\n        \"Case insensitive replace regular expression for multibyte string\"\n    ],\n    \"mb_get_info\": [\n        \"mixed mb_get_info([string type])\",\n        \"Returns the current settings of mbstring\"\n    ],\n    \"mb_http_input\": [\n        \"mixed mb_http_input([string type])\",\n        \"Returns the input encoding\"\n    ],\n    \"mb_http_output\": [\n        \"string mb_http_output([string encoding])\",\n        \"Sets the current output_encoding or returns the current output_encoding as a string\"\n    ],\n    \"mb_internal_encoding\": [\n        \"string mb_internal_encoding([string encoding])\",\n        \"Sets the current internal encoding or Returns the current internal encoding as a string\"\n    ],\n    \"mb_language\": [\n        \"string mb_language([string language])\",\n        \"Sets the current language or Returns the current language as a string\"\n    ],\n    \"mb_list_encodings\": [\n        \"mixed mb_list_encodings()\",\n        \"Returns an array of all supported entity encodings\"\n    ],\n    \"mb_output_handler\": [\n        \"string mb_output_handler(string contents, int status)\",\n        \"Returns string in output buffer converted to the http_output encoding\"\n    ],\n    \"mb_parse_str\": [\n        \"bool mb_parse_str(string encoded_string [, array result])\",\n        \"Parses GET/POST/COOKIE data and sets global variables\"\n    ],\n    \"mb_preferred_mime_name\": [\n        \"string mb_preferred_mime_name(string encoding)\",\n        \"Return the preferred MIME name (charset) as a string\"\n    ],\n    \"mb_regex_encoding\": [\n        \"string mb_regex_encoding([string encoding])\",\n        \"Returns the current encoding for regex as a string.\"\n    ],\n    \"mb_regex_set_options\": [\n        \"string mb_regex_set_options([string options])\",\n        \"Set or get the default options for mbregex functions\"\n    ],\n    \"mb_send_mail\": [\n        \"int mb_send_mail(string to, string subject, string message [, string additional_headers [, string additional_parameters]])\",\n        \"*  Sends an email message with MIME scheme\"\n    ],\n    \"mb_split\": [\n        \"array mb_split(string pattern, string string [, int limit])\",\n        \"split multibyte string into array by regular expression\"\n    ],\n    \"mb_strcut\": [\n        \"string mb_strcut(string str, int start [, int length [, string encoding]])\",\n        \"Returns part of a string\"\n    ],\n    \"mb_strimwidth\": [\n        \"string mb_strimwidth(string str, int start, int width [, string trimmarker [, string encoding]])\",\n        \"Trim the string in terminal width\"\n    ],\n    \"mb_stripos\": [\n        \"int mb_stripos(string haystack, string needle [, int offset [, string encoding]])\",\n        \"Finds position of first occurrence of a string within another, case insensitive\"\n    ],\n    \"mb_stristr\": [\n        \"string mb_stristr(string haystack, string needle[, bool part[, string encoding]])\",\n        \"Finds first occurrence of a string within another, case insensitive\"\n    ],\n    \"mb_strlen\": [\n        \"int mb_strlen(string str [, string encoding])\",\n        \"Get character numbers of a string\"\n    ],\n    \"mb_strpos\": [\n        \"int mb_strpos(string haystack, string needle [, int offset [, string encoding]])\",\n        \"Find position of first occurrence of a string within another\"\n    ],\n    \"mb_strrchr\": [\n        \"string mb_strrchr(string haystack, string needle[, bool part[, string encoding]])\",\n        \"Finds the last occurrence of a character in a string within another\"\n    ],\n    \"mb_strrichr\": [\n        \"string mb_strrichr(string haystack, string needle[, bool part[, string encoding]])\",\n        \"Finds the last occurrence of a character in a string within another, case insensitive\"\n    ],\n    \"mb_strripos\": [\n        \"int mb_strripos(string haystack, string needle [, int offset [, string encoding]])\",\n        \"Finds position of last occurrence of a string within another, case insensitive\"\n    ],\n    \"mb_strrpos\": [\n        \"int mb_strrpos(string haystack, string needle [, int offset [, string encoding]])\",\n        \"Find position of last occurrence of a string within another\"\n    ],\n    \"mb_strstr\": [\n        \"string mb_strstr(string haystack, string needle[, bool part[, string encoding]])\",\n        \"Finds first occurrence of a string within another\"\n    ],\n    \"mb_strtolower\": [\n        \"string mb_strtolower(string sourcestring [, string encoding])\",\n        \"*  Returns a lowercased version of sourcestring\"\n    ],\n    \"mb_strtoupper\": [\n        \"string mb_strtoupper(string sourcestring [, string encoding])\",\n        \"*  Returns a uppercased version of sourcestring\"\n    ],\n    \"mb_strwidth\": [\n        \"int mb_strwidth(string str [, string encoding])\",\n        \"Gets terminal width of a string\"\n    ],\n    \"mb_substitute_character\": [\n        \"mixed mb_substitute_character([mixed substchar])\",\n        \"Sets the current substitute_character or returns the current substitute_character\"\n    ],\n    \"mb_substr\": [\n        \"string mb_substr(string str, int start [, int length [, string encoding]])\",\n        \"Returns part of a string\"\n    ],\n    \"mb_substr_count\": [\n        \"int mb_substr_count(string haystack, string needle [, string encoding])\",\n        \"Count the number of substring occurrences\"\n    ],\n    \"mcrypt_cbc\": [\n        \"string mcrypt_cbc(int cipher, string key, string data, int mode, string iv)\",\n        \"CBC crypt/decrypt data using key key with cipher cipher starting with iv\"\n    ],\n    \"mcrypt_cfb\": [\n        \"string mcrypt_cfb(int cipher, string key, string data, int mode, string iv)\",\n        \"CFB crypt/decrypt data using key key with cipher cipher starting with iv\"\n    ],\n    \"mcrypt_create_iv\": [\n        \"string mcrypt_create_iv(int size, int source)\",\n        \"Create an initialization vector (IV)\"\n    ],\n    \"mcrypt_decrypt\": [\n        \"string mcrypt_decrypt(string cipher, string key, string data, string mode, string iv)\",\n        \"OFB crypt/decrypt data using key key with cipher cipher starting with iv\"\n    ],\n    \"mcrypt_ecb\": [\n        \"string mcrypt_ecb(int cipher, string key, string data, int mode, string iv)\",\n        \"ECB crypt/decrypt data using key key with cipher cipher starting with iv\"\n    ],\n    \"mcrypt_enc_get_algorithms_name\": [\n        \"string mcrypt_enc_get_algorithms_name(resource td)\",\n        \"Returns the name of the algorithm specified by the descriptor td\"\n    ],\n    \"mcrypt_enc_get_block_size\": [\n        \"int mcrypt_enc_get_block_size(resource td)\",\n        \"Returns the block size of the cipher specified by the descriptor td\"\n    ],\n    \"mcrypt_enc_get_iv_size\": [\n        \"int mcrypt_enc_get_iv_size(resource td)\",\n        \"Returns the size of the IV in bytes of the algorithm specified by the descriptor td\"\n    ],\n    \"mcrypt_enc_get_key_size\": [\n        \"int mcrypt_enc_get_key_size(resource td)\",\n        \"Returns the maximum supported key size in bytes of the algorithm specified by the descriptor td\"\n    ],\n    \"mcrypt_enc_get_modes_name\": [\n        \"string mcrypt_enc_get_modes_name(resource td)\",\n        \"Returns the name of the mode specified by the descriptor td\"\n    ],\n    \"mcrypt_enc_get_supported_key_sizes\": [\n        \"array mcrypt_enc_get_supported_key_sizes(resource td)\",\n        \"This function decrypts the crypttext\"\n    ],\n    \"mcrypt_enc_is_block_algorithm\": [\n        \"bool mcrypt_enc_is_block_algorithm(resource td)\",\n        \"Returns TRUE if the alrogithm is a block algorithms\"\n    ],\n    \"mcrypt_enc_is_block_algorithm_mode\": [\n        \"bool mcrypt_enc_is_block_algorithm_mode(resource td)\",\n        \"Returns TRUE if the mode is for use with block algorithms\"\n    ],\n    \"mcrypt_enc_is_block_mode\": [\n        \"bool mcrypt_enc_is_block_mode(resource td)\",\n        \"Returns TRUE if the mode outputs blocks\"\n    ],\n    \"mcrypt_enc_self_test\": [\n        \"int mcrypt_enc_self_test(resource td)\",\n        \"This function runs the self test on the algorithm specified by the descriptor td\"\n    ],\n    \"mcrypt_encrypt\": [\n        \"string mcrypt_encrypt(string cipher, string key, string data, string mode, string iv)\",\n        \"OFB crypt/decrypt data using key key with cipher cipher starting with iv\"\n    ],\n    \"mcrypt_generic\": [\n        \"string mcrypt_generic(resource td, string data)\",\n        \"This function encrypts the plaintext\"\n    ],\n    \"mcrypt_generic_deinit\": [\n        \"bool mcrypt_generic_deinit(resource td)\",\n        \"This function terminates encrypt specified by the descriptor td\"\n    ],\n    \"mcrypt_generic_init\": [\n        \"int mcrypt_generic_init(resource td, string key, string iv)\",\n        \"This function initializes all buffers for the specific module\"\n    ],\n    \"mcrypt_get_block_size\": [\n        \"int mcrypt_get_block_size(string cipher, string module)\",\n        \"Get the key size of cipher\"\n    ],\n    \"mcrypt_get_cipher_name\": [\n        \"string mcrypt_get_cipher_name(string cipher)\",\n        \"Get the key size of cipher\"\n    ],\n    \"mcrypt_get_iv_size\": [\n        \"int mcrypt_get_iv_size(string cipher, string module)\",\n        \"Get the IV size of cipher (Usually the same as the blocksize)\"\n    ],\n    \"mcrypt_get_key_size\": [\n        \"int mcrypt_get_key_size(string cipher, string module)\",\n        \"Get the key size of cipher\"\n    ],\n    \"mcrypt_list_algorithms\": [\n        \"array mcrypt_list_algorithms([string lib_dir])\",\n        \"List all algorithms in \\\"module_dir\\\"\"\n    ],\n    \"mcrypt_list_modes\": [\n        \"array mcrypt_list_modes([string lib_dir])\",\n        \"List all modes \\\"module_dir\\\"\"\n    ],\n    \"mcrypt_module_close\": [\n        \"bool mcrypt_module_close(resource td)\",\n        \"Free the descriptor td\"\n    ],\n    \"mcrypt_module_get_algo_block_size\": [\n        \"int mcrypt_module_get_algo_block_size(string algorithm [, string lib_dir])\",\n        \"Returns the block size of the algorithm\"\n    ],\n    \"mcrypt_module_get_algo_key_size\": [\n        \"int mcrypt_module_get_algo_key_size(string algorithm [, string lib_dir])\",\n        \"Returns the maximum supported key size of the algorithm\"\n    ],\n    \"mcrypt_module_get_supported_key_sizes\": [\n        \"array mcrypt_module_get_supported_key_sizes(string algorithm [, string lib_dir])\",\n        \"This function decrypts the crypttext\"\n    ],\n    \"mcrypt_module_is_block_algorithm\": [\n        \"bool mcrypt_module_is_block_algorithm(string algorithm [, string lib_dir])\",\n        \"Returns TRUE if the algorithm is a block algorithm\"\n    ],\n    \"mcrypt_module_is_block_algorithm_mode\": [\n        \"bool mcrypt_module_is_block_algorithm_mode(string mode [, string lib_dir])\",\n        \"Returns TRUE if the mode is for use with block algorithms\"\n    ],\n    \"mcrypt_module_is_block_mode\": [\n        \"bool mcrypt_module_is_block_mode(string mode [, string lib_dir])\",\n        \"Returns TRUE if the mode outputs blocks of bytes\"\n    ],\n    \"mcrypt_module_open\": [\n        \"resource mcrypt_module_open(string cipher, string cipher_directory, string mode, string mode_directory)\",\n        \"Opens the module of the algorithm and the mode to be used\"\n    ],\n    \"mcrypt_module_self_test\": [\n        \"bool mcrypt_module_self_test(string algorithm [, string lib_dir])\",\n        \"Does a self test of the module \\\"module\\\"\"\n    ],\n    \"mcrypt_ofb\": [\n        \"string mcrypt_ofb(int cipher, string key, string data, int mode, string iv)\",\n        \"OFB crypt/decrypt data using key key with cipher cipher starting with iv\"\n    ],\n    \"md5\": [\n        \"string md5(string str, [ bool raw_output])\",\n        \"Calculate the md5 hash of a string\"\n    ],\n    \"md5_file\": [\n        \"string md5_file(string filename [, bool raw_output])\",\n        \"Calculate the md5 hash of given filename\"\n    ],\n    \"mdecrypt_generic\": [\n        \"string mdecrypt_generic(resource td, string data)\",\n        \"This function decrypts the plaintext\"\n    ],\n    \"memory_get_peak_usage\": [\n        \"int memory_get_peak_usage([real_usage])\",\n        \"Returns the peak allocated by PHP memory\"\n    ],\n    \"memory_get_usage\": [\n        \"int memory_get_usage([real_usage])\",\n        \"Returns the allocated by PHP memory\"\n    ],\n    \"metaphone\": [\n        \"string metaphone(string text[, int phones])\",\n        \"Break english phrases down into their phonemes\"\n    ],\n    \"method_exists\": [\n        \"bool method_exists(object object, string method)\",\n        \"Checks if the class method exists\"\n    ],\n    \"mhash\": [\n        \"string mhash(int hash, string data [, string key])\",\n        \"Hash data with hash\"\n    ],\n    \"mhash_count\": [\n        \"int mhash_count(void)\",\n        \"Gets the number of available hashes\"\n    ],\n    \"mhash_get_block_size\": [\n        \"int mhash_get_block_size(int hash)\",\n        \"Gets the block size of hash\"\n    ],\n    \"mhash_get_hash_name\": [\n        \"string mhash_get_hash_name(int hash)\",\n        \"Gets the name of hash\"\n    ],\n    \"mhash_keygen_s2k\": [\n        \"string mhash_keygen_s2k(int hash, string input_password, string salt, int bytes)\",\n        \"Generates a key using hash functions\"\n    ],\n    \"microtime\": [\n        \"mixed microtime([bool get_as_float])\",\n        \"Returns either a string or a float containing the current time in seconds and microseconds\"\n    ],\n    \"mime_content_type\": [\n        \"string mime_content_type(string filename|resource stream)\",\n        \"Return content-type for file\"\n    ],\n    \"min\": [\n        \"mixed min(mixed arg1 [, mixed arg2 [, mixed ...]])\",\n        \"Return the lowest value in an array or a series of arguments\"\n    ],\n    \"mkdir\": [\n        \"bool mkdir(string pathname [, int mode [, bool recursive [, resource context]]])\",\n        \"Create a directory\"\n    ],\n    \"mktime\": [\n        \"int mktime([int hour [, int min [, int sec [, int mon [, int day [, int year]]]]]])\",\n        \"Get UNIX timestamp for a date\"\n    ],\n    \"money_format\": [\n        \"string money_format(string format , float value)\",\n        \"Convert monetary value(s) to string\"\n    ],\n    \"move_uploaded_file\": [\n        \"bool move_uploaded_file(string path, string new_path)\",\n        \"Move a file if and only if it was created by an upload\"\n    ],\n    \"msg_get_queue\": [\n        \"resource msg_get_queue(int key [, int perms])\",\n        \"Attach to a message queue\"\n    ],\n    \"msg_queue_exists\": [\n        \"bool msg_queue_exists(int key)\",\n        \"Check wether a message queue exists\"\n    ],\n    \"msg_receive\": [\n        \"mixed msg_receive(resource queue, int desiredmsgtype, int &msgtype, int maxsize, mixed message [, bool unserialize=true [, int flags=0 [, int errorcode]]])\",\n        \"Send a message of type msgtype (must be > 0) to a message queue\"\n    ],\n    \"msg_remove_queue\": [\n        \"bool msg_remove_queue(resource queue)\",\n        \"Destroy the queue\"\n    ],\n    \"msg_send\": [\n        \"bool msg_send(resource queue, int msgtype, mixed message [, bool serialize=true [, bool blocking=true [, int errorcode]]])\",\n        \"Send a message of type msgtype (must be > 0) to a message queue\"\n    ],\n    \"msg_set_queue\": [\n        \"bool msg_set_queue(resource queue, array data)\",\n        \"Set information for a message queue\"\n    ],\n    \"msg_stat_queue\": [\n        \"array msg_stat_queue(resource queue)\",\n        \"Returns information about a message queue\"\n    ],\n    \"msgfmt_create\": [\n        \"MessageFormatter msgfmt_create( string $locale, string $pattern )\",\n        \"* Create formatter.\"\n    ],\n    \"msgfmt_format\": [\n        \"mixed msgfmt_format( MessageFormatter $nf, array $args )\",\n        \"* Format a message.\"\n    ],\n    \"msgfmt_format_message\": [\n        \"mixed msgfmt_format_message( string $locale, string $pattern, array $args )\",\n        \"* Format a message.\"\n    ],\n    \"msgfmt_get_error_code\": [\n        \"int msgfmt_get_error_code( MessageFormatter $nf )\",\n        \"* Get formatter's last error code.\"\n    ],\n    \"msgfmt_get_error_message\": [\n        \"string msgfmt_get_error_message( MessageFormatter $coll )\",\n        \"* Get text description for formatter's last error code.\"\n    ],\n    \"msgfmt_get_locale\": [\n        \"string msgfmt_get_locale(MessageFormatter $mf)\",\n        \"* Get formatter locale.\"\n    ],\n    \"msgfmt_get_pattern\": [\n        \"string msgfmt_get_pattern( MessageFormatter $mf )\",\n        \"* Get formatter pattern.\"\n    ],\n    \"msgfmt_parse\": [\n        \"array msgfmt_parse( MessageFormatter $nf, string $source )\",\n        \"* Parse a message.\"\n    ],\n    \"msgfmt_set_pattern\": [\n        \"bool msgfmt_set_pattern( MessageFormatter $mf, string $pattern )\",\n        \"* Set formatter pattern.\"\n    ],\n    \"mssql_bind\": [\n        \"bool mssql_bind(resource stmt, string param_name, mixed var, int type [, bool is_output [, bool is_null [, int maxlen]]])\",\n        \"Adds a parameter to a stored procedure or a remote stored procedure\"\n    ],\n    \"mssql_close\": [\n        \"bool mssql_close([resource conn_id])\",\n        \"Closes a connection to a MS-SQL server\"\n    ],\n    \"mssql_connect\": [\n        \"int mssql_connect([string servername [, string username [, string password [, bool new_link]]]])\",\n        \"Establishes a connection to a MS-SQL server\"\n    ],\n    \"mssql_data_seek\": [\n        \"bool mssql_data_seek(resource result_id, int offset)\",\n        \"Moves the internal row pointer of the MS-SQL result associated with the specified result identifier to pointer to the specified row number\"\n    ],\n    \"mssql_execute\": [\n        \"mixed mssql_execute(resource stmt [, bool skip_results = false])\",\n        \"Executes a stored procedure on a MS-SQL server database\"\n    ],\n    \"mssql_fetch_array\": [\n        \"array mssql_fetch_array(resource result_id [, int result_type])\",\n        \"Returns an associative array of the current row in the result set specified by result_id\"\n    ],\n    \"mssql_fetch_assoc\": [\n        \"array mssql_fetch_assoc(resource result_id)\",\n        \"Returns an associative array of the current row in the result set specified by result_id\"\n    ],\n    \"mssql_fetch_batch\": [\n        \"int mssql_fetch_batch(resource result_index)\",\n        \"Returns the next batch of records\"\n    ],\n    \"mssql_fetch_field\": [\n        \"object mssql_fetch_field(resource result_id [, int offset])\",\n        \"Gets information about certain fields in a query result\"\n    ],\n    \"mssql_fetch_object\": [\n        \"object mssql_fetch_object(resource result_id)\",\n        \"Returns a pseudo-object of the current row in the result set specified by result_id\"\n    ],\n    \"mssql_fetch_row\": [\n        \"array mssql_fetch_row(resource result_id)\",\n        \"Returns an array of the current row in the result set specified by result_id\"\n    ],\n    \"mssql_field_length\": [\n        \"int mssql_field_length(resource result_id [, int offset])\",\n        \"Get the length of a MS-SQL field\"\n    ],\n    \"mssql_field_name\": [\n        \"string mssql_field_name(resource result_id [, int offset])\",\n        \"Returns the name of the field given by offset in the result set given by result_id\"\n    ],\n    \"mssql_field_seek\": [\n        \"bool mssql_field_seek(resource result_id, int offset)\",\n        \"Seeks to the specified field offset\"\n    ],\n    \"mssql_field_type\": [\n        \"string mssql_field_type(resource result_id [, int offset])\",\n        \"Returns the type of a field\"\n    ],\n    \"mssql_free_result\": [\n        \"bool mssql_free_result(resource result_index)\",\n        \"Free a MS-SQL result index\"\n    ],\n    \"mssql_free_statement\": [\n        \"bool mssql_free_statement(resource result_index)\",\n        \"Free a MS-SQL statement index\"\n    ],\n    \"mssql_get_last_message\": [\n        \"string mssql_get_last_message(void)\",\n        \"Gets the last message from the MS-SQL server\"\n    ],\n    \"mssql_guid_string\": [\n        \"string mssql_guid_string(string binary [,bool short_format])\",\n        \"Converts a 16 byte binary GUID to a string\"\n    ],\n    \"mssql_init\": [\n        \"int mssql_init(string sp_name [, resource conn_id])\",\n        \"Initializes a stored procedure or a remote stored procedure\"\n    ],\n    \"mssql_min_error_severity\": [\n        \"void mssql_min_error_severity(int severity)\",\n        \"Sets the lower error severity\"\n    ],\n    \"mssql_min_message_severity\": [\n        \"void mssql_min_message_severity(int severity)\",\n        \"Sets the lower message severity\"\n    ],\n    \"mssql_next_result\": [\n        \"bool mssql_next_result(resource result_id)\",\n        \"Move the internal result pointer to the next result\"\n    ],\n    \"mssql_num_fields\": [\n        \"int mssql_num_fields(resource mssql_result_index)\",\n        \"Returns the number of fields fetched in from the result id specified\"\n    ],\n    \"mssql_num_rows\": [\n        \"int mssql_num_rows(resource mssql_result_index)\",\n        \"Returns the number of rows fetched in from the result id specified\"\n    ],\n    \"mssql_pconnect\": [\n        \"int mssql_pconnect([string servername [, string username [, string password [, bool new_link]]]])\",\n        \"Establishes a persistent connection to a MS-SQL server\"\n    ],\n    \"mssql_query\": [\n        \"resource mssql_query(string query [, resource conn_id [, int batch_size]])\",\n        \"Perform an SQL query on a MS-SQL server database\"\n    ],\n    \"mssql_result\": [\n        \"string mssql_result(resource result_id, int row, mixed field)\",\n        \"Returns the contents of one cell from a MS-SQL result set\"\n    ],\n    \"mssql_rows_affected\": [\n        \"int mssql_rows_affected(resource conn_id)\",\n        \"Returns the number of records affected by the query\"\n    ],\n    \"mssql_select_db\": [\n        \"bool mssql_select_db(string database_name [, resource conn_id])\",\n        \"Select a MS-SQL database\"\n    ],\n    \"mt_getrandmax\": [\n        \"int mt_getrandmax(void)\",\n        \"Returns the maximum value a random number from Mersenne Twister can have\"\n    ],\n    \"mt_rand\": [\n        \"int mt_rand([int min, int max])\",\n        \"Returns a random number from Mersenne Twister\"\n    ],\n    \"mt_srand\": [\n        \"void mt_srand([int seed])\",\n        \"Seeds Mersenne Twister random number generator\"\n    ],\n    \"mysql_affected_rows\": [\n        \"int mysql_affected_rows([int link_identifier])\",\n        \"Gets number of affected rows in previous MySQL operation\"\n    ],\n    \"mysql_client_encoding\": [\n        \"string mysql_client_encoding([int link_identifier])\",\n        \"Returns the default character set for the current connection\"\n    ],\n    \"mysql_close\": [\n        \"bool mysql_close([int link_identifier])\",\n        \"Close a MySQL connection\"\n    ],\n    \"mysql_connect\": [\n        \"resource mysql_connect([string hostname[:port][:/path/to/socket] [, string username [, string password [, bool new [, int flags]]]]])\",\n        \"Opens a connection to a MySQL Server\"\n    ],\n    \"mysql_create_db\": [\n        \"bool mysql_create_db(string database_name [, int link_identifier])\",\n        \"Create a MySQL database\"\n    ],\n    \"mysql_data_seek\": [\n        \"bool mysql_data_seek(resource result, int row_number)\",\n        \"Move internal result pointer\"\n    ],\n    \"mysql_db_query\": [\n        \"resource mysql_db_query(string database_name, string query [, int link_identifier])\",\n        \"Sends an SQL query to MySQL\"\n    ],\n    \"mysql_drop_db\": [\n        \"bool mysql_drop_db(string database_name [, int link_identifier])\",\n        \"Drops (delete) a MySQL database\"\n    ],\n    \"mysql_errno\": [\n        \"int mysql_errno([int link_identifier])\",\n        \"Returns the number of the error message from previous MySQL operation\"\n    ],\n    \"mysql_error\": [\n        \"string mysql_error([int link_identifier])\",\n        \"Returns the text of the error message from previous MySQL operation\"\n    ],\n    \"mysql_escape_string\": [\n        \"string mysql_escape_string(string to_be_escaped)\",\n        \"Escape string for mysql query\"\n    ],\n    \"mysql_fetch_array\": [\n        \"array mysql_fetch_array(resource result [, int result_type])\",\n        \"Fetch a result row as an array (associative, numeric or both)\"\n    ],\n    \"mysql_fetch_assoc\": [\n        \"array mysql_fetch_assoc(resource result)\",\n        \"Fetch a result row as an associative array\"\n    ],\n    \"mysql_fetch_field\": [\n        \"object mysql_fetch_field(resource result [, int field_offset])\",\n        \"Gets column information from a result and return as an object\"\n    ],\n    \"mysql_fetch_lengths\": [\n        \"array mysql_fetch_lengths(resource result)\",\n        \"Gets max data size of each column in a result\"\n    ],\n    \"mysql_fetch_object\": [\n        \"object mysql_fetch_object(resource result [, string class_name [, NULL|array ctor_params]])\",\n        \"Fetch a result row as an object\"\n    ],\n    \"mysql_fetch_row\": [\n        \"array mysql_fetch_row(resource result)\",\n        \"Gets a result row as an enumerated array\"\n    ],\n    \"mysql_field_flags\": [\n        \"string mysql_field_flags(resource result, int field_offset)\",\n        \"Gets the flags associated with the specified field in a result\"\n    ],\n    \"mysql_field_len\": [\n        \"int mysql_field_len(resource result, int field_offset)\",\n        \"Returns the length of the specified field\"\n    ],\n    \"mysql_field_name\": [\n        \"string mysql_field_name(resource result, int field_index)\",\n        \"Gets the name of the specified field in a result\"\n    ],\n    \"mysql_field_seek\": [\n        \"bool mysql_field_seek(resource result, int field_offset)\",\n        \"Sets result pointer to a specific field offset\"\n    ],\n    \"mysql_field_table\": [\n        \"string mysql_field_table(resource result, int field_offset)\",\n        \"Gets name of the table the specified field is in\"\n    ],\n    \"mysql_field_type\": [\n        \"string mysql_field_type(resource result, int field_offset)\",\n        \"Gets the type of the specified field in a result\"\n    ],\n    \"mysql_free_result\": [\n        \"bool mysql_free_result(resource result)\",\n        \"Free result memory\"\n    ],\n    \"mysql_get_client_info\": [\n        \"string mysql_get_client_info(void)\",\n        \"Returns a string that represents the client library version\"\n    ],\n    \"mysql_get_host_info\": [\n        \"string mysql_get_host_info([int link_identifier])\",\n        \"Returns a string describing the type of connection in use, including the server host name\"\n    ],\n    \"mysql_get_proto_info\": [\n        \"int mysql_get_proto_info([int link_identifier])\",\n        \"Returns the protocol version used by current connection\"\n    ],\n    \"mysql_get_server_info\": [\n        \"string mysql_get_server_info([int link_identifier])\",\n        \"Returns a string that represents the server version number\"\n    ],\n    \"mysql_info\": [\n        \"string mysql_info([int link_identifier])\",\n        \"Returns a string containing information about the most recent query\"\n    ],\n    \"mysql_insert_id\": [\n        \"int mysql_insert_id([int link_identifier])\",\n        \"Gets the ID generated from the previous INSERT operation\"\n    ],\n    \"mysql_list_dbs\": [\n        \"resource mysql_list_dbs([int link_identifier])\",\n        \"List databases available on a MySQL server\"\n    ],\n    \"mysql_list_fields\": [\n        \"resource mysql_list_fields(string database_name, string table_name [, int link_identifier])\",\n        \"List MySQL result fields\"\n    ],\n    \"mysql_list_processes\": [\n        \"resource mysql_list_processes([int link_identifier])\",\n        \"Returns a result set describing the current server threads\"\n    ],\n    \"mysql_list_tables\": [\n        \"resource mysql_list_tables(string database_name [, int link_identifier])\",\n        \"List tables in a MySQL database\"\n    ],\n    \"mysql_num_fields\": [\n        \"int mysql_num_fields(resource result)\",\n        \"Gets number of fields in a result\"\n    ],\n    \"mysql_num_rows\": [\n        \"int mysql_num_rows(resource result)\",\n        \"Gets number of rows in a result\"\n    ],\n    \"mysql_pconnect\": [\n        \"resource mysql_pconnect([string hostname[:port][:/path/to/socket] [, string username [, string password [, int flags]]]])\",\n        \"Opens a persistent connection to a MySQL Server\"\n    ],\n    \"mysql_ping\": [\n        \"bool mysql_ping([int link_identifier])\",\n        \"Ping a server connection. If no connection then reconnect.\"\n    ],\n    \"mysql_query\": [\n        \"resource mysql_query(string query [, int link_identifier])\",\n        \"Sends an SQL query to MySQL\"\n    ],\n    \"mysql_real_escape_string\": [\n        \"string mysql_real_escape_string(string to_be_escaped [, int link_identifier])\",\n        \"Escape special characters in a string for use in a SQL statement, taking into account the current charset of the connection\"\n    ],\n    \"mysql_result\": [\n        \"mixed mysql_result(resource result, int row [, mixed field])\",\n        \"Gets result data\"\n    ],\n    \"mysql_select_db\": [\n        \"bool mysql_select_db(string database_name [, int link_identifier])\",\n        \"Selects a MySQL database\"\n    ],\n    \"mysql_set_charset\": [\n        \"bool mysql_set_charset(string csname [, int link_identifier])\",\n        \"sets client character set\"\n    ],\n    \"mysql_stat\": [\n        \"string mysql_stat([int link_identifier])\",\n        \"Returns a string containing status information\"\n    ],\n    \"mysql_thread_id\": [\n        \"int mysql_thread_id([int link_identifier])\",\n        \"Returns the thread id of current connection\"\n    ],\n    \"mysql_unbuffered_query\": [\n        \"resource mysql_unbuffered_query(string query [, int link_identifier])\",\n        \"Sends an SQL query to MySQL, without fetching and buffering the result rows\"\n    ],\n    \"mysqli_affected_rows\": [\n        \"mixed mysqli_affected_rows(object link)\",\n        \"Get number of affected rows in previous MySQL operation\"\n    ],\n    \"mysqli_autocommit\": [\n        \"bool mysqli_autocommit(object link, bool mode)\",\n        \"Turn auto commit on or of\"\n    ],\n    \"mysqli_cache_stats\": [\n        \"array mysqli_cache_stats(void)\",\n        \"Returns statistics about the zval cache\"\n    ],\n    \"mysqli_change_user\": [\n        \"bool mysqli_change_user(object link, string user, string password, string database)\",\n        \"Change logged-in user of the active connection\"\n    ],\n    \"mysqli_character_set_name\": [\n        \"string mysqli_character_set_name(object link)\",\n        \"Returns the name of the character set used for this connection\"\n    ],\n    \"mysqli_close\": [\n        \"bool mysqli_close(object link)\",\n        \"Close connection\"\n    ],\n    \"mysqli_commit\": [\n        \"bool mysqli_commit(object link)\",\n        \"Commit outstanding actions and close transaction\"\n    ],\n    \"mysqli_connect\": [\n        \"object mysqli_connect([string hostname [,string username [,string passwd [,string dbname [,int port [,string socket]]]]]])\",\n        \"Open a connection to a mysql server\"\n    ],\n    \"mysqli_connect_errno\": [\n        \"int mysqli_connect_errno(void)\",\n        \"Returns the numerical value of the error message from last connect command\"\n    ],\n    \"mysqli_connect_error\": [\n        \"string mysqli_connect_error(void)\",\n        \"Returns the text of the error message from previous MySQL operation\"\n    ],\n    \"mysqli_data_seek\": [\n        \"bool mysqli_data_seek(object result, int offset)\",\n        \"Move internal result pointer\"\n    ],\n    \"mysqli_debug\": [\n        \"void mysqli_debug(string debug)\",\n        \"\"\n    ],\n    \"mysqli_dump_debug_info\": [\n        \"bool mysqli_dump_debug_info(object link)\",\n        \"\"\n    ],\n    \"mysqli_embedded_server_end\": [\n        \"void mysqli_embedded_server_end(void)\",\n        \"\"\n    ],\n    \"mysqli_embedded_server_start\": [\n        \"bool mysqli_embedded_server_start(bool start, array arguments, array groups)\",\n        \"initialize and start embedded server\"\n    ],\n    \"mysqli_errno\": [\n        \"int mysqli_errno(object link)\",\n        \"Returns the numerical value of the error message from previous MySQL operation\"\n    ],\n    \"mysqli_error\": [\n        \"string mysqli_error(object link)\",\n        \"Returns the text of the error message from previous MySQL operation\"\n    ],\n    \"mysqli_fetch_all\": [\n        \"mixed mysqli_fetch_all (object result [,int resulttype])\",\n        \"Fetches all result rows as an associative array, a numeric array, or both\"\n    ],\n    \"mysqli_fetch_array\": [\n        \"mixed mysqli_fetch_array (object result [,int resulttype])\",\n        \"Fetch a result row as an associative array, a numeric array, or both\"\n    ],\n    \"mysqli_fetch_assoc\": [\n        \"mixed mysqli_fetch_assoc (object result)\",\n        \"Fetch a result row as an associative array\"\n    ],\n    \"mysqli_fetch_field\": [\n        \"mixed mysqli_fetch_field (object result)\",\n        \"Get column information from a result and return as an object\"\n    ],\n    \"mysqli_fetch_field_direct\": [\n        \"mixed mysqli_fetch_field_direct (object result, int offset)\",\n        \"Fetch meta-data for a single field\"\n    ],\n    \"mysqli_fetch_fields\": [\n        \"mixed mysqli_fetch_fields (object result)\",\n        \"Return array of objects containing field meta-data\"\n    ],\n    \"mysqli_fetch_lengths\": [\n        \"mixed mysqli_fetch_lengths (object result)\",\n        \"Get the length of each output in a result\"\n    ],\n    \"mysqli_fetch_object\": [\n        \"mixed mysqli_fetch_object (object result [, string class_name [, NULL|array ctor_params]])\",\n        \"Fetch a result row as an object\"\n    ],\n    \"mysqli_fetch_row\": [\n        \"array mysqli_fetch_row (object result)\",\n        \"Get a result row as an enumerated array\"\n    ],\n    \"mysqli_field_count\": [\n        \"int mysqli_field_count(object link)\",\n        \"Fetch the number of fields returned by the last query for the given link\"\n    ],\n    \"mysqli_field_seek\": [\n        \"int mysqli_field_seek(object result, int fieldnr)\",\n        \"Set result pointer to a specified field offset\"\n    ],\n    \"mysqli_field_tell\": [\n        \"int mysqli_field_tell(object result)\",\n        \"Get current field offset of result pointer\"\n    ],\n    \"mysqli_free_result\": [\n        \"void mysqli_free_result(object result)\",\n        \"Free query result memory for the given result handle\"\n    ],\n    \"mysqli_get_charset\": [\n        \"object mysqli_get_charset(object link)\",\n        \"returns a character set object\"\n    ],\n    \"mysqli_get_client_info\": [\n        \"string mysqli_get_client_info(void)\",\n        \"Get MySQL client info\"\n    ],\n    \"mysqli_get_client_stats\": [\n        \"array mysqli_get_client_stats(void)\",\n        \"Returns statistics about the zval cache\"\n    ],\n    \"mysqli_get_client_version\": [\n        \"int mysqli_get_client_version(void)\",\n        \"Get MySQL client info\"\n    ],\n    \"mysqli_get_connection_stats\": [\n        \"array mysqli_get_connection_stats(void)\",\n        \"Returns statistics about the zval cache\"\n    ],\n    \"mysqli_get_host_info\": [\n        \"string mysqli_get_host_info (object link)\",\n        \"Get MySQL host info\"\n    ],\n    \"mysqli_get_proto_info\": [\n        \"int mysqli_get_proto_info(object link)\",\n        \"Get MySQL protocol information\"\n    ],\n    \"mysqli_get_server_info\": [\n        \"string mysqli_get_server_info(object link)\",\n        \"Get MySQL server info\"\n    ],\n    \"mysqli_get_server_version\": [\n        \"int mysqli_get_server_version(object link)\",\n        \"Return the MySQL version for the server referenced by the given link\"\n    ],\n    \"mysqli_get_warnings\": [\n        \"object mysqli_get_warnings(object link) */\",\n        \"PHP_FUNCTION(mysqli_get_warnings) {  MY_MYSQL   *mysql;  zval    *mysql_link;  MYSQLI_RESOURCE  *mysqli_resource;  MYSQLI_WARNING  *w;   if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), \\\"O\\\", &mysql_link, mysqli_link_class_entry) == FAILURE) {   return;  }  MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL*, &mysql_link, \\\"mysqli_link\\\", MYSQLI_STATUS_VALID);   if (mysql_warning_count(mysql->mysql)) {   w = php_get_warnings(mysql->mysql TSRMLS_CC);   } else {   RETURN_FALSE;  }  mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));  mysqli_resource->ptr = mysqli_resource->info = (void *)w;  mysqli_resource->status = MYSQLI_STATUS_VALID;  MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_warning_class_entry);  } /* }}}\"\n    ],\n    \"mysqli_info\": [\n        \"string mysqli_info(object link)\",\n        \"Get information about the most recent query\"\n    ],\n    \"mysqli_init\": [\n        \"resource mysqli_init(void)\",\n        \"Initialize mysqli and return a resource for use with mysql_real_connect\"\n    ],\n    \"mysqli_insert_id\": [\n        \"mixed mysqli_insert_id(object link)\",\n        \"Get the ID generated from the previous INSERT operation\"\n    ],\n    \"mysqli_kill\": [\n        \"bool mysqli_kill(object link, int processid)\",\n        \"Kill a mysql process on the server\"\n    ],\n    \"mysqli_link_construct\": [\n        \"object mysqli_link_construct()\",\n        \"\"\n    ],\n    \"mysqli_more_results\": [\n        \"bool mysqli_more_results(object link)\",\n        \"check if there any more query results from a multi query\"\n    ],\n    \"mysqli_multi_query\": [\n        \"bool mysqli_multi_query(object link, string query)\",\n        \"allows to execute multiple queries\"\n    ],\n    \"mysqli_next_result\": [\n        \"bool mysqli_next_result(object link)\",\n        \"read next result from multi_query\"\n    ],\n    \"mysqli_num_fields\": [\n        \"int mysqli_num_fields(object result)\",\n        \"Get number of fields in result\"\n    ],\n    \"mysqli_num_rows\": [\n        \"mixed mysqli_num_rows(object result)\",\n        \"Get number of rows in result\"\n    ],\n    \"mysqli_options\": [\n        \"bool mysqli_options(object link, int flags, mixed values)\",\n        \"Set options\"\n    ],\n    \"mysqli_ping\": [\n        \"bool mysqli_ping(object link)\",\n        \"Ping a server connection or reconnect if there is no connection\"\n    ],\n    \"mysqli_poll\": [\n        \"int mysqli_poll(array read, array write, array error, long sec [, long usec])\",\n        \"Poll connections\"\n    ],\n    \"mysqli_prepare\": [\n        \"mixed mysqli_prepare(object link, string query)\",\n        \"Prepare a SQL statement for execution\"\n    ],\n    \"mysqli_query\": [\n        \"mixed mysqli_query(object link, string query [,int resultmode]) */\",\n        \"PHP_FUNCTION(mysqli_query) {  MY_MYSQL   *mysql;  zval    *mysql_link;  MYSQLI_RESOURCE  *mysqli_resource;  MYSQL_RES    *result;  char    *query = NULL;  unsigned int   query_len;  unsigned long   resultmode = MYSQLI_STORE_RESULT;   if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), \\\"Os|l\\\", &mysql_link, mysqli_link_class_entry, &query, &query_len, &resultmode) == FAILURE) {   return;  }   if (!query_len) {   php_error_docref(NULL TSRMLS_CC, E_WARNING, \\\"Empty query\\\");   RETURN_FALSE;  }  if ((resultmode & ~MYSQLI_ASYNC) != MYSQLI_USE_RESULT && (resultmode & ~MYSQLI_ASYNC) != MYSQLI_STORE_RESULT) {   php_error_docref(NULL TSRMLS_CC, E_WARNING, \\\"Invalid value for resultmode\\\");   RETURN_FALSE;  }   MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL*, &mysql_link, \\\"mysqli_link\\\", MYSQLI_STATUS_VALID);   MYSQLI_DISABLE_MQ;   #ifdef MYSQLI_USE_MYSQLND  if (resultmode & MYSQLI_ASYNC) {   if (mysqli_async_query(mysql->mysql, query, query_len)) {    MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);    RETURN_FALSE;   }   mysql->async_result_fetch_type = resultmode & ~MYSQLI_ASYNC;   RETURN_TRUE;  } #endif   if (mysql_real_query(mysql->mysql, query, query_len)) {   MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);   RETURN_FALSE;  }   if (!mysql_field_count(mysql->mysql)) {   /* no result set - not a SELECT\"\n    ],\n    \"mysqli_real_connect\": [\n        \"bool mysqli_real_connect(object link [,string hostname [,string username [,string passwd [,string dbname [,int port [,string socket [,int flags]]]]]]])\",\n        \"Open a connection to a mysql server\"\n    ],\n    \"mysqli_real_escape_string\": [\n        \"string mysqli_real_escape_string(object link, string escapestr)\",\n        \"Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection\"\n    ],\n    \"mysqli_real_query\": [\n        \"bool mysqli_real_query(object link, string query)\",\n        \"Binary-safe version of mysql_query()\"\n    ],\n    \"mysqli_reap_async_query\": [\n        \"int mysqli_reap_async_query(object link)\",\n        \"Poll connections\"\n    ],\n    \"mysqli_refresh\": [\n        \"bool mysqli_refresh(object link, long options)\",\n        \"Flush tables or caches, or reset replication server information\"\n    ],\n    \"mysqli_report\": [\n        \"bool mysqli_report(int flags)\",\n        \"sets report level\"\n    ],\n    \"mysqli_rollback\": [\n        \"bool mysqli_rollback(object link)\",\n        \"Undo actions from current transaction\"\n    ],\n    \"mysqli_select_db\": [\n        \"bool mysqli_select_db(object link, string dbname)\",\n        \"Select a MySQL database\"\n    ],\n    \"mysqli_set_charset\": [\n        \"bool mysqli_set_charset(object link, string csname)\",\n        \"sets client character set\"\n    ],\n    \"mysqli_set_local_infile_default\": [\n        \"void mysqli_set_local_infile_default(object link)\",\n        \"unsets user defined handler for load local infile command\"\n    ],\n    \"mysqli_set_local_infile_handler\": [\n        \"bool mysqli_set_local_infile_handler(object link, callback read_func)\",\n        \"Set callback functions for LOAD DATA LOCAL INFILE\"\n    ],\n    \"mysqli_sqlstate\": [\n        \"string mysqli_sqlstate(object link)\",\n        \"Returns the SQLSTATE error from previous MySQL operation\"\n    ],\n    \"mysqli_ssl_set\": [\n        \"bool mysqli_ssl_set(object link ,string key ,string cert ,string ca ,string capath ,string cipher])\",\n        \"\"\n    ],\n    \"mysqli_stat\": [\n        \"mixed mysqli_stat(object link)\",\n        \"Get current system status\"\n    ],\n    \"mysqli_stmt_affected_rows\": [\n        \"mixed mysqli_stmt_affected_rows(object stmt)\",\n        \"Return the number of rows affected in the last query for the given link\"\n    ],\n    \"mysqli_stmt_attr_get\": [\n        \"int mysqli_stmt_attr_get(object stmt, long attr)\",\n        \"\"\n    ],\n    \"mysqli_stmt_attr_set\": [\n        \"int mysqli_stmt_attr_set(object stmt, long attr, long mode)\",\n        \"\"\n    ],\n    \"mysqli_stmt_bind_param\": [\n        \"bool mysqli_stmt_bind_param(object stmt, string types, mixed variable [,mixed,....])\",\n        \"Bind variables to a prepared statement as parameters\"\n    ],\n    \"mysqli_stmt_bind_result\": [\n        \"bool mysqli_stmt_bind_result(object stmt, mixed var, [,mixed, ...])\",\n        \"Bind variables to a prepared statement for result storage\"\n    ],\n    \"mysqli_stmt_close\": [\n        \"bool mysqli_stmt_close(object stmt)\",\n        \"Close statement\"\n    ],\n    \"mysqli_stmt_data_seek\": [\n        \"void mysqli_stmt_data_seek(object stmt, int offset)\",\n        \"Move internal result pointer\"\n    ],\n    \"mysqli_stmt_errno\": [\n        \"int mysqli_stmt_errno(object stmt)\",\n        \"\"\n    ],\n    \"mysqli_stmt_error\": [\n        \"string mysqli_stmt_error(object stmt)\",\n        \"\"\n    ],\n    \"mysqli_stmt_execute\": [\n        \"bool mysqli_stmt_execute(object stmt)\",\n        \"Execute a prepared statement\"\n    ],\n    \"mysqli_stmt_fetch\": [\n        \"mixed mysqli_stmt_fetch(object stmt)\",\n        \"Fetch results from a prepared statement into the bound variables\"\n    ],\n    \"mysqli_stmt_field_count\": [\n        \"int mysqli_stmt_field_count(object stmt) {\",\n        \"Return the number of result columns for the given statement\"\n    ],\n    \"mysqli_stmt_free_result\": [\n        \"void mysqli_stmt_free_result(object stmt)\",\n        \"Free stored result memory for the given statement handle\"\n    ],\n    \"mysqli_stmt_get_result\": [\n        \"object mysqli_stmt_get_result(object link)\",\n        \"Buffer result set on client\"\n    ],\n    \"mysqli_stmt_get_warnings\": [\n        \"object mysqli_stmt_get_warnings(object link) */\",\n        \"PHP_FUNCTION(mysqli_stmt_get_warnings) {  MY_STMT    *stmt;  zval    *stmt_link;  MYSQLI_RESOURCE  *mysqli_resource;  MYSQLI_WARNING  *w;   if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), \\\"O\\\", &stmt_link, mysqli_stmt_class_entry) == FAILURE) {   return;  }  MYSQLI_FETCH_RESOURCE(stmt, MY_STMT*, &stmt_link, \\\"mysqli_stmt\\\", MYSQLI_STATUS_VALID);   if (mysqli_stmt_warning_count(stmt->stmt)) {   w = php_get_warnings(mysqli_stmt_get_connection(stmt->stmt) TSRMLS_CC);   } else {   RETURN_FALSE;  }  mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));  mysqli_resource->ptr = mysqli_resource->info = (void *)w;  mysqli_resource->status = MYSQLI_STATUS_VALID;  MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_warning_class_entry); } /* }}}\"\n    ],\n    \"mysqli_stmt_init\": [\n        \"mixed mysqli_stmt_init(object link)\",\n        \"Initialize statement object\"\n    ],\n    \"mysqli_stmt_insert_id\": [\n        \"mixed mysqli_stmt_insert_id(object stmt)\",\n        \"Get the ID generated from the previous INSERT operation\"\n    ],\n    \"mysqli_stmt_next_result\": [\n        \"bool mysqli_stmt_next_result(object link)\",\n        \"read next result from multi_query\"\n    ],\n    \"mysqli_stmt_num_rows\": [\n        \"mixed mysqli_stmt_num_rows(object stmt)\",\n        \"Return the number of rows in statements result set\"\n    ],\n    \"mysqli_stmt_param_count\": [\n        \"int mysqli_stmt_param_count(object stmt)\",\n        \"Return the number of parameter for the given statement\"\n    ],\n    \"mysqli_stmt_prepare\": [\n        \"bool mysqli_stmt_prepare(object stmt, string query)\",\n        \"prepare server side statement with query\"\n    ],\n    \"mysqli_stmt_reset\": [\n        \"bool mysqli_stmt_reset(object stmt)\",\n        \"reset a prepared statement\"\n    ],\n    \"mysqli_stmt_result_metadata\": [\n        \"mixed mysqli_stmt_result_metadata(object stmt)\",\n        \"return result set from statement\"\n    ],\n    \"mysqli_stmt_send_long_data\": [\n        \"bool mysqli_stmt_send_long_data(object stmt, int param_nr, string data)\",\n        \"\"\n    ],\n    \"mysqli_stmt_sqlstate\": [\n        \"string mysqli_stmt_sqlstate(object stmt)\",\n        \"\"\n    ],\n    \"mysqli_stmt_store_result\": [\n        \"bool mysqli_stmt_store_result(stmt)\",\n        \"\"\n    ],\n    \"mysqli_store_result\": [\n        \"object mysqli_store_result(object link)\",\n        \"Buffer result set on client\"\n    ],\n    \"mysqli_thread_id\": [\n        \"int mysqli_thread_id(object link)\",\n        \"Return the current thread ID\"\n    ],\n    \"mysqli_thread_safe\": [\n        \"bool mysqli_thread_safe(void)\",\n        \"Return whether thread safety is given or not\"\n    ],\n    \"mysqli_use_result\": [\n        \"mixed mysqli_use_result(object link)\",\n        \"Directly retrieve query results - do not buffer results on client side\"\n    ],\n    \"mysqli_warning_count\": [\n        \"int mysqli_warning_count (object link)\",\n        \"Return number of warnings from the last query for the given link\"\n    ],\n    \"natcasesort\": [\n        \"void natcasesort(array &array_arg)\",\n        \"Sort an array using case-insensitive natural sort\"\n    ],\n    \"natsort\": [\n        \"void natsort(array &array_arg)\",\n        \"Sort an array using natural sort\"\n    ],\n    \"next\": [\n        \"mixed next(array array_arg)\",\n        \"Move array argument's internal pointer to the next element and return it\"\n    ],\n    \"ngettext\": [\n        \"string ngettext(string MSGID1, string MSGID2, int N)\",\n        \"Plural version of gettext()\"\n    ],\n    \"nl2br\": [\n        \"string nl2br(string str [, bool is_xhtml])\",\n        \"Converts newlines to HTML line breaks\"\n    ],\n    \"nl_langinfo\": [\n        \"string nl_langinfo(int item)\",\n        \"Query language and locale information\"\n    ],\n    \"normalizer_is_normalize\": [\n        \"bool normalizer_is_normalize( string $input [, string $form = FORM_C] )\",\n        \"* Test if a string is in a given normalization form.\"\n    ],\n    \"normalizer_normalize\": [\n        \"string normalizer_normalize( string $input [, string $form = FORM_C] )\",\n        \"* Normalize a string.\"\n    ],\n    \"nsapi_request_headers\": [\n        \"array nsapi_request_headers(void)\",\n        \"Get all headers from the request\"\n    ],\n    \"nsapi_response_headers\": [\n        \"array nsapi_response_headers(void)\",\n        \"Get all headers from the response\"\n    ],\n    \"nsapi_virtual\": [\n        \"bool nsapi_virtual(string uri)\",\n        \"Perform an NSAPI sub-request\"\n    ],\n    \"number_format\": [\n        \"string number_format(float number [, int num_decimal_places [, string dec_seperator, string thousands_seperator]])\",\n        \"Formats a number with grouped thousands\"\n    ],\n    \"numfmt_create\": [\n        \"NumberFormatter numfmt_create( string $locale, int style[, string $pattern ] )\",\n        \"* Create number formatter.\"\n    ],\n    \"numfmt_format\": [\n        \"mixed numfmt_format( NumberFormatter $nf, mixed $num[, int type] )\",\n        \"* Format a number.\"\n    ],\n    \"numfmt_format_currency\": [\n        \"mixed numfmt_format_currency( NumberFormatter $nf, double $num, string $currency )\",\n        \"* Format a number as currency.\"\n    ],\n    \"numfmt_get_attribute\": [\n        \"mixed numfmt_get_attribute( NumberFormatter $nf, int $attr )\",\n        \"* Get formatter attribute value.\"\n    ],\n    \"numfmt_get_error_code\": [\n        \"int numfmt_get_error_code( NumberFormatter $nf )\",\n        \"* Get formatter's last error code.\"\n    ],\n    \"numfmt_get_error_message\": [\n        \"string numfmt_get_error_message( NumberFormatter $nf )\",\n        \"* Get text description for formatter's last error code.\"\n    ],\n    \"numfmt_get_locale\": [\n        \"string numfmt_get_locale( NumberFormatter $nf[, int type] )\",\n        \"* Get formatter locale.\"\n    ],\n    \"numfmt_get_pattern\": [\n        \"string numfmt_get_pattern( NumberFormatter $nf )\",\n        \"* Get formatter pattern.\"\n    ],\n    \"numfmt_get_symbol\": [\n        \"string numfmt_get_symbol( NumberFormatter $nf, int $attr )\",\n        \"* Get formatter symbol value.\"\n    ],\n    \"numfmt_get_text_attribute\": [\n        \"string numfmt_get_text_attribute( NumberFormatter $nf, int $attr )\",\n        \"* Get formatter attribute value.\"\n    ],\n    \"numfmt_parse\": [\n        \"mixed numfmt_parse( NumberFormatter $nf, string $str[, int $type, int &$position ])\",\n        \"* Parse a number.\"\n    ],\n    \"numfmt_parse_currency\": [\n        \"double numfmt_parse_currency( NumberFormatter $nf, string $str, string $&currency[, int $&position] )\",\n        \"* Parse a number as currency.\"\n    ],\n    \"numfmt_parse_message\": [\n        \"array numfmt_parse_message( string $locale, string $pattern, string $source )\",\n        \"* Parse a message.\"\n    ],\n    \"numfmt_set_attribute\": [\n        \"bool numfmt_set_attribute( NumberFormatter $nf, int $attr, mixed $value )\",\n        \"* Get formatter attribute value.\"\n    ],\n    \"numfmt_set_pattern\": [\n        \"bool numfmt_set_pattern( NumberFormatter $nf, string $pattern )\",\n        \"* Set formatter pattern.\"\n    ],\n    \"numfmt_set_symbol\": [\n        \"bool numfmt_set_symbol( NumberFormatter $nf, int $attr, string $symbol )\",\n        \"* Set formatter symbol value.\"\n    ],\n    \"numfmt_set_text_attribute\": [\n        \"bool numfmt_set_text_attribute( NumberFormatter $nf, int $attr, string $value )\",\n        \"* Get formatter attribute value.\"\n    ],\n    \"ob_clean\": [\n        \"bool ob_clean(void)\",\n        \"Clean (delete) the current output buffer\"\n    ],\n    \"ob_end_clean\": [\n        \"bool ob_end_clean(void)\",\n        \"Clean the output buffer, and delete current output buffer\"\n    ],\n    \"ob_end_flush\": [\n        \"bool ob_end_flush(void)\",\n        \"Flush (send) the output buffer, and delete current output buffer\"\n    ],\n    \"ob_flush\": [\n        \"bool ob_flush(void)\",\n        \"Flush (send) contents of the output buffer. The last buffer content is sent to next buffer\"\n    ],\n    \"ob_get_clean\": [\n        \"bool ob_get_clean(void)\",\n        \"Get current buffer contents and delete current output buffer\"\n    ],\n    \"ob_get_contents\": [\n        \"string ob_get_contents(void)\",\n        \"Return the contents of the output buffer\"\n    ],\n    \"ob_get_flush\": [\n        \"bool ob_get_flush(void)\",\n        \"Get current buffer contents, flush (send) the output buffer, and delete current output buffer\"\n    ],\n    \"ob_get_length\": [\n        \"int ob_get_length(void)\",\n        \"Return the length of the output buffer\"\n    ],\n    \"ob_get_level\": [\n        \"int ob_get_level(void)\",\n        \"Return the nesting level of the output buffer\"\n    ],\n    \"ob_get_status\": [\n        \"false|array ob_get_status([bool full_status])\",\n        \"Return the status of the active or all output buffers\"\n    ],\n    \"ob_gzhandler\": [\n        \"string ob_gzhandler(string str, int mode)\",\n        \"Encode str based on accept-encoding setting - designed to be called from ob_start()\"\n    ],\n    \"ob_iconv_handler\": [\n        \"string ob_iconv_handler(string contents, int status)\",\n        \"Returns str in output buffer converted to the iconv.output_encoding character set\"\n    ],\n    \"ob_implicit_flush\": [\n        \"void ob_implicit_flush([int flag])\",\n        \"Turn implicit flush on/off and is equivalent to calling flush() after every output call\"\n    ],\n    \"ob_list_handlers\": [\n        \"false|array ob_list_handlers()\",\n        \"*  List all output_buffers in an array\"\n    ],\n    \"ob_start\": [\n        \"bool ob_start([ string|array user_function [, int chunk_size [, bool erase]]])\",\n        \"Turn on Output Buffering (specifying an optional output handler).\"\n    ],\n    \"oci_bind_array_by_name\": [\n        \"bool oci_bind_array_by_name(resource stmt, string name, array &var, int max_table_length [, int max_item_length [, int type ]])\",\n        \"Bind a PHP array to an Oracle PL/SQL type by name\"\n    ],\n    \"oci_bind_by_name\": [\n        \"bool oci_bind_by_name(resource stmt, string name, mixed &var, [, int maxlength [, int type]])\",\n        \"Bind a PHP variable to an Oracle placeholder by name\"\n    ],\n    \"oci_cancel\": [\n        \"bool oci_cancel(resource stmt)\",\n        \"Cancel reading from a cursor\"\n    ],\n    \"oci_close\": [\n        \"bool oci_close(resource connection)\",\n        \"Disconnect from database\"\n    ],\n    \"oci_collection_append\": [\n        \"bool oci_collection_append(string value)\",\n        \"Append an object to the collection\"\n    ],\n    \"oci_collection_assign\": [\n        \"bool oci_collection_assign(object from)\",\n        \"Assign a collection from another existing collection\"\n    ],\n    \"oci_collection_element_assign\": [\n        \"bool oci_collection_element_assign(int index, string val)\",\n        \"Assign element val to collection at index ndx\"\n    ],\n    \"oci_collection_element_get\": [\n        \"string oci_collection_element_get(int ndx)\",\n        \"Retrieve the value at collection index ndx\"\n    ],\n    \"oci_collection_max\": [\n        \"int oci_collection_max()\",\n        \"Return the max value of a collection. For a varray this is the maximum length of the array\"\n    ],\n    \"oci_collection_size\": [\n        \"int oci_collection_size()\",\n        \"Return the size of a collection\"\n    ],\n    \"oci_collection_trim\": [\n        \"bool oci_collection_trim(int num)\",\n        \"Trim num elements from the end of a collection\"\n    ],\n    \"oci_commit\": [\n        \"bool oci_commit(resource connection)\",\n        \"Commit the current context\"\n    ],\n    \"oci_connect\": [\n        \"resource oci_connect(string user, string pass [, string db [, string charset [, int session_mode ]])\",\n        \"Connect to an Oracle database and log on. Returns a new session.\"\n    ],\n    \"oci_define_by_name\": [\n        \"bool oci_define_by_name(resource stmt, string name, mixed &var [, int type])\",\n        \"Define a PHP variable to an Oracle column by name\"\n    ],\n    \"oci_error\": [\n        \"array oci_error([resource stmt|connection|global])\",\n        \"Return the last error of stmt|connection|global. If no error happened returns false.\"\n    ],\n    \"oci_execute\": [\n        \"bool oci_execute(resource stmt [, int mode])\",\n        \"Execute a parsed statement\"\n    ],\n    \"oci_fetch\": [\n        \"bool oci_fetch(resource stmt)\",\n        \"Prepare a new row of data for reading\"\n    ],\n    \"oci_fetch_all\": [\n        \"int oci_fetch_all(resource stmt, array &output[, int skip[, int maxrows[, int flags]]])\",\n        \"Fetch all rows of result data into an array\"\n    ],\n    \"oci_fetch_array\": [\n        \"array oci_fetch_array( resource stmt [, int mode ])\",\n        \"Fetch a result row as an array\"\n    ],\n    \"oci_fetch_assoc\": [\n        \"array oci_fetch_assoc( resource stmt )\",\n        \"Fetch a result row as an associative array\"\n    ],\n    \"oci_fetch_object\": [\n        \"object oci_fetch_object( resource stmt )\",\n        \"Fetch a result row as an object\"\n    ],\n    \"oci_fetch_row\": [\n        \"array oci_fetch_row( resource stmt )\",\n        \"Fetch a result row as an enumerated array\"\n    ],\n    \"oci_field_is_null\": [\n        \"bool oci_field_is_null(resource stmt, int col)\",\n        \"Tell whether a column is NULL\"\n    ],\n    \"oci_field_name\": [\n        \"string oci_field_name(resource stmt, int col)\",\n        \"Tell the name of a column\"\n    ],\n    \"oci_field_precision\": [\n        \"int oci_field_precision(resource stmt, int col)\",\n        \"Tell the precision of a column\"\n    ],\n    \"oci_field_scale\": [\n        \"int oci_field_scale(resource stmt, int col)\",\n        \"Tell the scale of a column\"\n    ],\n    \"oci_field_size\": [\n        \"int oci_field_size(resource stmt, int col)\",\n        \"Tell the maximum data size of a column\"\n    ],\n    \"oci_field_type\": [\n        \"mixed oci_field_type(resource stmt, int col)\",\n        \"Tell the data type of a column\"\n    ],\n    \"oci_field_type_raw\": [\n        \"int oci_field_type_raw(resource stmt, int col)\",\n        \"Tell the raw oracle data type of a column\"\n    ],\n    \"oci_free_collection\": [\n        \"bool oci_free_collection()\",\n        \"Deletes collection object\"\n    ],\n    \"oci_free_descriptor\": [\n        \"bool oci_free_descriptor()\",\n        \"Deletes large object description\"\n    ],\n    \"oci_free_statement\": [\n        \"bool oci_free_statement(resource stmt)\",\n        \"Free all resources associated with a statement\"\n    ],\n    \"oci_internal_debug\": [\n        \"void oci_internal_debug(int onoff)\",\n        \"Toggle internal debugging output for the OCI extension\"\n    ],\n    \"oci_lob_append\": [\n        \"bool oci_lob_append( object lob )\",\n        \"Appends data from a LOB to another LOB\"\n    ],\n    \"oci_lob_close\": [\n        \"bool oci_lob_close()\",\n        \"Closes lob descriptor\"\n    ],\n    \"oci_lob_copy\": [\n        \"bool oci_lob_copy( object lob_to, object lob_from [, int length ] )\",\n        \"Copies data from a LOB to another LOB\"\n    ],\n    \"oci_lob_eof\": [\n        \"bool oci_lob_eof()\",\n        \"Checks if EOF is reached\"\n    ],\n    \"oci_lob_erase\": [\n        \"int oci_lob_erase( [ int offset [, int length ] ] )\",\n        \"Erases a specified portion of the internal LOB, starting at a specified offset\"\n    ],\n    \"oci_lob_export\": [\n        \"bool oci_lob_export([string filename [, int start [, int length]]])\",\n        \"Writes a large object into a file\"\n    ],\n    \"oci_lob_flush\": [\n        \"bool oci_lob_flush( [ int flag ] )\",\n        \"Flushes the LOB buffer\"\n    ],\n    \"oci_lob_import\": [\n        \"bool oci_lob_import( string filename )\",\n        \"Loads file into a LOB\"\n    ],\n    \"oci_lob_is_equal\": [\n        \"bool oci_lob_is_equal( object lob1, object lob2 )\",\n        \"Tests to see if two LOB/FILE locators are equal\"\n    ],\n    \"oci_lob_load\": [\n        \"string oci_lob_load()\",\n        \"Loads a large object\"\n    ],\n    \"oci_lob_read\": [\n        \"string oci_lob_read( int length )\",\n        \"Reads particular part of a large object\"\n    ],\n    \"oci_lob_rewind\": [\n        \"bool oci_lob_rewind()\",\n        \"Rewind pointer of a LOB\"\n    ],\n    \"oci_lob_save\": [\n        \"bool oci_lob_save( string data [, int offset ])\",\n        \"Saves a large object\"\n    ],\n    \"oci_lob_seek\": [\n        \"bool oci_lob_seek( int offset [, int whence ])\",\n        \"Moves the pointer of a LOB\"\n    ],\n    \"oci_lob_size\": [\n        \"int oci_lob_size()\",\n        \"Returns size of a large object\"\n    ],\n    \"oci_lob_tell\": [\n        \"int oci_lob_tell()\",\n        \"Tells LOB pointer position\"\n    ],\n    \"oci_lob_truncate\": [\n        \"bool oci_lob_truncate( [ int length ])\",\n        \"Truncates a LOB\"\n    ],\n    \"oci_lob_write\": [\n        \"int oci_lob_write( string string [, int length ])\",\n        \"Writes data to current position of a LOB\"\n    ],\n    \"oci_lob_write_temporary\": [\n        \"bool oci_lob_write_temporary(string var [, int lob_type])\",\n        \"Writes temporary blob\"\n    ],\n    \"oci_new_collection\": [\n        \"object oci_new_collection(resource connection, string tdo [, string schema])\",\n        \"Initialize a new collection\"\n    ],\n    \"oci_new_connect\": [\n        \"resource oci_new_connect(string user, string pass [, string db])\",\n        \"Connect to an Oracle database and log on. Returns a new session.\"\n    ],\n    \"oci_new_cursor\": [\n        \"resource oci_new_cursor(resource connection)\",\n        \"Return a new cursor (Statement-Handle) - use this to bind ref-cursors!\"\n    ],\n    \"oci_new_descriptor\": [\n        \"object oci_new_descriptor(resource connection [, int type])\",\n        \"Initialize a new empty descriptor LOB/FILE (LOB is default)\"\n    ],\n    \"oci_num_fields\": [\n        \"int oci_num_fields(resource stmt)\",\n        \"Return the number of result columns in a statement\"\n    ],\n    \"oci_num_rows\": [\n        \"int oci_num_rows(resource stmt)\",\n        \"Return the row count of an OCI statement\"\n    ],\n    \"oci_parse\": [\n        \"resource oci_parse(resource connection, string query)\",\n        \"Parse a query and return a statement\"\n    ],\n    \"oci_password_change\": [\n        \"bool oci_password_change(resource connection, string username, string old_password, string new_password)\",\n        \"Changes the password of an account\"\n    ],\n    \"oci_pconnect\": [\n        \"resource oci_pconnect(string user, string pass [, string db [, string charset ]])\",\n        \"Connect to an Oracle database using a persistent connection and log on. Returns a new session.\"\n    ],\n    \"oci_result\": [\n        \"string oci_result(resource stmt, mixed column)\",\n        \"Return a single column of result data\"\n    ],\n    \"oci_rollback\": [\n        \"bool oci_rollback(resource connection)\",\n        \"Rollback the current context\"\n    ],\n    \"oci_server_version\": [\n        \"string oci_server_version(resource connection)\",\n        \"Return a string containing server version information\"\n    ],\n    \"oci_set_action\": [\n        \"bool oci_set_action(resource connection, string value)\",\n        \"Sets the action attribute on the connection\"\n    ],\n    \"oci_set_client_identifier\": [\n        \"bool oci_set_client_identifier(resource connection, string value)\",\n        \"Sets the client identifier attribute on the connection\"\n    ],\n    \"oci_set_client_info\": [\n        \"bool oci_set_client_info(resource connection, string value)\",\n        \"Sets the client info attribute on the connection\"\n    ],\n    \"oci_set_edition\": [\n        \"bool oci_set_edition(string value)\",\n        \"Sets the edition attribute for all subsequent connections created\"\n    ],\n    \"oci_set_module_name\": [\n        \"bool oci_set_module_name(resource connection, string value)\",\n        \"Sets the module attribute on the connection\"\n    ],\n    \"oci_set_prefetch\": [\n        \"bool oci_set_prefetch(resource stmt, int prefetch_rows)\",\n        \"Sets the number of rows to be prefetched on execute to prefetch_rows for stmt\"\n    ],\n    \"oci_statement_type\": [\n        \"string oci_statement_type(resource stmt)\",\n        \"Return the query type of an OCI statement\"\n    ],\n    \"ocifetchinto\": [\n        \"int ocifetchinto(resource stmt, array &output [, int mode])\",\n        \"Fetch a row of result data into an array\"\n    ],\n    \"ocigetbufferinglob\": [\n        \"bool ocigetbufferinglob()\",\n        \"Returns current state of buffering for a LOB\"\n    ],\n    \"ocisetbufferinglob\": [\n        \"bool ocisetbufferinglob( boolean flag )\",\n        \"Enables/disables buffering for a LOB\"\n    ],\n    \"octdec\": [\n        \"int octdec(string octal_number)\",\n        \"Returns the decimal equivalent of an octal string\"\n    ],\n    \"odbc_autocommit\": [\n        \"mixed odbc_autocommit(resource connection_id [, int OnOff])\",\n        \"Toggle autocommit mode or get status\"\n    ],\n    \"odbc_binmode\": [\n        \"bool odbc_binmode(int result_id, int mode)\",\n        \"Handle binary column data\"\n    ],\n    \"odbc_close\": [\n        \"void odbc_close(resource connection_id)\",\n        \"Close an ODBC connection\"\n    ],\n    \"odbc_close_all\": [\n        \"void odbc_close_all(void)\",\n        \"Close all ODBC connections\"\n    ],\n    \"odbc_columnprivileges\": [\n        \"resource odbc_columnprivileges(resource connection_id, string catalog, string schema, string table, string column)\",\n        \"Returns a result identifier that can be used to fetch a list of columns and associated privileges for the specified table\"\n    ],\n    \"odbc_columns\": [\n        \"resource odbc_columns(resource connection_id [, string qualifier [, string owner [, string table_name [, string column_name]]]])\",\n        \"Returns a result identifier that can be used to fetch a list of column names in specified tables\"\n    ],\n    \"odbc_commit\": [\n        \"bool odbc_commit(resource connection_id)\",\n        \"Commit an ODBC transaction\"\n    ],\n    \"odbc_connect\": [\n        \"resource odbc_connect(string DSN, string user, string password [, int cursor_option])\",\n        \"Connect to a datasource\"\n    ],\n    \"odbc_cursor\": [\n        \"string odbc_cursor(resource result_id)\",\n        \"Get cursor name\"\n    ],\n    \"odbc_data_source\": [\n        \"array odbc_data_source(resource connection_id, int fetch_type)\",\n        \"Return information about the currently connected data source\"\n    ],\n    \"odbc_error\": [\n        \"string odbc_error([resource connection_id])\",\n        \"Get the last error code\"\n    ],\n    \"odbc_errormsg\": [\n        \"string odbc_errormsg([resource connection_id])\",\n        \"Get the last error message\"\n    ],\n    \"odbc_exec\": [\n        \"resource odbc_exec(resource connection_id, string query [, int flags])\",\n        \"Prepare and execute an SQL statement\"\n    ],\n    \"odbc_execute\": [\n        \"bool odbc_execute(resource result_id [, array parameters_array])\",\n        \"Execute a prepared statement\"\n    ],\n    \"odbc_fetch_array\": [\n        \"array odbc_fetch_array(int result [, int rownumber])\",\n        \"Fetch a result row as an associative array\"\n    ],\n    \"odbc_fetch_into\": [\n        \"int odbc_fetch_into(resource result_id, array &result_array, [, int rownumber])\",\n        \"Fetch one result row into an array\"\n    ],\n    \"odbc_fetch_object\": [\n        \"object odbc_fetch_object(int result [, int rownumber])\",\n        \"Fetch a result row as an object\"\n    ],\n    \"odbc_fetch_row\": [\n        \"bool odbc_fetch_row(resource result_id [, int row_number])\",\n        \"Fetch a row\"\n    ],\n    \"odbc_field_len\": [\n        \"int odbc_field_len(resource result_id, int field_number)\",\n        \"Get the length (precision) of a column\"\n    ],\n    \"odbc_field_name\": [\n        \"string odbc_field_name(resource result_id, int field_number)\",\n        \"Get a column name\"\n    ],\n    \"odbc_field_num\": [\n        \"int odbc_field_num(resource result_id, string field_name)\",\n        \"Return column number\"\n    ],\n    \"odbc_field_scale\": [\n        \"int odbc_field_scale(resource result_id, int field_number)\",\n        \"Get the scale of a column\"\n    ],\n    \"odbc_field_type\": [\n        \"string odbc_field_type(resource result_id, int field_number)\",\n        \"Get the datatype of a column\"\n    ],\n    \"odbc_foreignkeys\": [\n        \"resource odbc_foreignkeys(resource connection_id, string pk_qualifier, string pk_owner, string pk_table, string fk_qualifier, string fk_owner, string fk_table)\",\n        \"Returns a result identifier to either a list of foreign keys in the specified table or a list of foreign keys in other tables that refer to the primary key in the specified table\"\n    ],\n    \"odbc_free_result\": [\n        \"bool odbc_free_result(resource result_id)\",\n        \"Free resources associated with a result\"\n    ],\n    \"odbc_gettypeinfo\": [\n        \"resource odbc_gettypeinfo(resource connection_id [, int data_type])\",\n        \"Returns a result identifier containing information about data types supported by the data source\"\n    ],\n    \"odbc_longreadlen\": [\n        \"bool odbc_longreadlen(int result_id, int length)\",\n        \"Handle LONG columns\"\n    ],\n    \"odbc_next_result\": [\n        \"bool odbc_next_result(resource result_id)\",\n        \"Checks if multiple results are avaiable\"\n    ],\n    \"odbc_num_fields\": [\n        \"int odbc_num_fields(resource result_id)\",\n        \"Get number of columns in a result\"\n    ],\n    \"odbc_num_rows\": [\n        \"int odbc_num_rows(resource result_id)\",\n        \"Get number of rows in a result\"\n    ],\n    \"odbc_pconnect\": [\n        \"resource odbc_pconnect(string DSN, string user, string password [, int cursor_option])\",\n        \"Establish a persistent connection to a datasource\"\n    ],\n    \"odbc_prepare\": [\n        \"resource odbc_prepare(resource connection_id, string query)\",\n        \"Prepares a statement for execution\"\n    ],\n    \"odbc_primarykeys\": [\n        \"resource odbc_primarykeys(resource connection_id, string qualifier, string owner, string table)\",\n        \"Returns a result identifier listing the column names that comprise the primary key for a table\"\n    ],\n    \"odbc_procedurecolumns\": [\n        \"resource odbc_procedurecolumns(resource connection_id [, string qualifier, string owner, string proc, string column])\",\n        \"Returns a result identifier containing the list of input and output parameters, as well as the columns that make up the result set for the specified procedures\"\n    ],\n    \"odbc_procedures\": [\n        \"resource odbc_procedures(resource connection_id [, string qualifier, string owner, string name])\",\n        \"Returns a result identifier containg the list of procedure names in a datasource\"\n    ],\n    \"odbc_result\": [\n        \"mixed odbc_result(resource result_id, mixed field)\",\n        \"Get result data\"\n    ],\n    \"odbc_result_all\": [\n        \"int odbc_result_all(resource result_id [, string format])\",\n        \"Print result as HTML table\"\n    ],\n    \"odbc_rollback\": [\n        \"bool odbc_rollback(resource connection_id)\",\n        \"Rollback a transaction\"\n    ],\n    \"odbc_setoption\": [\n        \"bool odbc_setoption(resource conn_id|result_id, int which, int option, int value)\",\n        \"Sets connection or statement options\"\n    ],\n    \"odbc_specialcolumns\": [\n        \"resource odbc_specialcolumns(resource connection_id, int type, string qualifier, string owner, string table, int scope, int nullable)\",\n        \"Returns a result identifier containing either the optimal set of columns that uniquely identifies a row in the table or columns that are automatically updated when any value in the row is updated by a transaction\"\n    ],\n    \"odbc_statistics\": [\n        \"resource odbc_statistics(resource connection_id, string qualifier, string owner, string name, int unique, int accuracy)\",\n        \"Returns a result identifier that contains statistics about a single table and the indexes associated with the table\"\n    ],\n    \"odbc_tableprivileges\": [\n        \"resource odbc_tableprivileges(resource connection_id, string qualifier, string owner, string name)\",\n        \"Returns a result identifier containing a list of tables and the privileges associated with each table\"\n    ],\n    \"odbc_tables\": [\n        \"resource odbc_tables(resource connection_id [, string qualifier [, string owner [, string name [, string table_types]]]])\",\n        \"Call the SQLTables function\"\n    ],\n    \"opendir\": [\n        \"mixed opendir(string path[, resource context])\",\n        \"Open a directory and return a dir_handle\"\n    ],\n    \"openlog\": [\n        \"bool openlog(string ident, int option, int facility)\",\n        \"Open connection to system logger\"\n    ],\n    \"openssl_csr_export\": [\n        \"bool openssl_csr_export(resource csr, string &out [, bool notext=true])\",\n        \"Exports a CSR to file or a var\"\n    ],\n    \"openssl_csr_export_to_file\": [\n        \"bool openssl_csr_export_to_file(resource csr, string outfilename [, bool notext=true])\",\n        \"Exports a CSR to file\"\n    ],\n    \"openssl_csr_get_public_key\": [\n        \"mixed openssl_csr_get_public_key(mixed csr)\",\n        \"Returns the subject of a CERT or FALSE on error\"\n    ],\n    \"openssl_csr_get_subject\": [\n        \"mixed openssl_csr_get_subject(mixed csr)\",\n        \"Returns the subject of a CERT or FALSE on error\"\n    ],\n    \"openssl_csr_new\": [\n        \"bool openssl_csr_new(array dn, resource &privkey [, array configargs [, array extraattribs]])\",\n        \"Generates a privkey and CSR\"\n    ],\n    \"openssl_csr_sign\": [\n        \"resource openssl_csr_sign(mixed csr, mixed x509, mixed priv_key, long days [, array config_args [, long serial]])\",\n        \"Signs a cert with another CERT\"\n    ],\n    \"openssl_decrypt\": [\n        \"string openssl_decrypt(string data, string method, string password [, bool raw_input=false])\",\n        \"Takes raw or base64 encoded string and dectupt it using given method and key\"\n    ],\n    \"openssl_dh_compute_key\": [\n        \"string openssl_dh_compute_key(string pub_key, resource dh_key)\",\n        \"Computes shared sicret for public value of remote DH key and local DH key\"\n    ],\n    \"openssl_digest\": [\n        \"string openssl_digest(string data, string method [, bool raw_output=false])\",\n        \"Computes digest hash value for given data using given method, returns raw or binhex encoded string\"\n    ],\n    \"openssl_encrypt\": [\n        \"string openssl_encrypt(string data, string method, string password [, bool raw_output=false])\",\n        \"Encrypts given data with given method and key, returns raw or base64 encoded string\"\n    ],\n    \"openssl_error_string\": [\n        \"mixed openssl_error_string(void)\",\n        \"Returns a description of the last error, and alters the index of the error messages. Returns false when the are no more messages\"\n    ],\n    \"openssl_get_cipher_methods\": [\n        \"array openssl_get_cipher_methods([bool aliases = false])\",\n        \"Return array of available cipher methods\"\n    ],\n    \"openssl_get_md_methods\": [\n        \"array openssl_get_md_methods([bool aliases = false])\",\n        \"Return array of available digest methods\"\n    ],\n    \"openssl_open\": [\n        \"bool openssl_open(string data, &string opendata, string ekey, mixed privkey)\",\n        \"Opens data\"\n    ],\n    \"openssl_pkcs12_export\": [\n        \"bool openssl_pkcs12_export(mixed x509, string &out, mixed priv_key, string pass[, array args])\",\n        \"Creates and exports a PKCS12 to a var\"\n    ],\n    \"openssl_pkcs12_export_to_file\": [\n        \"bool openssl_pkcs12_export_to_file(mixed x509, string filename, mixed priv_key, string pass[, array args])\",\n        \"Creates and exports a PKCS to file\"\n    ],\n    \"openssl_pkcs12_read\": [\n        \"bool openssl_pkcs12_read(string PKCS12, array &certs, string pass)\",\n        \"Parses a PKCS12 to an array\"\n    ],\n    \"openssl_pkcs7_decrypt\": [\n        \"bool openssl_pkcs7_decrypt(string infilename, string outfilename, mixed recipcert [, mixed recipkey])\",\n        \"Decrypts the S/MIME message in the file name infilename and output the results to the file name outfilename.  recipcert is a CERT for one of the recipients. recipkey specifies the private key matching recipcert, if recipcert does not include the key\"\n    ],\n    \"openssl_pkcs7_encrypt\": [\n        \"bool openssl_pkcs7_encrypt(string infile, string outfile, mixed recipcerts, array headers [, long flags [, long cipher]])\",\n        \"Encrypts the message in the file named infile with the certificates in recipcerts and output the result to the file named outfile\"\n    ],\n    \"openssl_pkcs7_sign\": [\n        \"bool openssl_pkcs7_sign(string infile, string outfile, mixed signcert, mixed signkey, array headers [, long flags [, string extracertsfilename]])\",\n        \"Signs the MIME message in the file named infile with signcert/signkey and output the result to file name outfile. headers lists plain text headers to exclude from the signed portion of the message, and should include to, from and subject as a minimum\"\n    ],\n    \"openssl_pkcs7_verify\": [\n        \"bool openssl_pkcs7_verify(string filename, long flags [, string signerscerts [, array cainfo [, string extracerts [, string content]]]])\",\n        \"Verifys that the data block is intact, the signer is who they say they are, and returns the CERTs of the signers\"\n    ],\n    \"openssl_pkey_export\": [\n        \"bool openssl_pkey_export(mixed key, &mixed out [, string passphrase [, array config_args]])\",\n        \"Gets an exportable representation of a key into a string or file\"\n    ],\n    \"openssl_pkey_export_to_file\": [\n        \"bool openssl_pkey_export_to_file(mixed key, string outfilename [, string passphrase, array config_args)\",\n        \"Gets an exportable representation of a key into a file\"\n    ],\n    \"openssl_pkey_free\": [\n        \"void openssl_pkey_free(int key)\",\n        \"Frees a key\"\n    ],\n    \"openssl_pkey_get_details\": [\n        \"resource openssl_pkey_get_details(resource key)\",\n        \"returns an array with the key details (bits, pkey, type)\"\n    ],\n    \"openssl_pkey_get_private\": [\n        \"int openssl_pkey_get_private(string key [, string passphrase])\",\n        \"Gets private keys\"\n    ],\n    \"openssl_pkey_get_public\": [\n        \"int openssl_pkey_get_public(mixed cert)\",\n        \"Gets public key from X.509 certificate\"\n    ],\n    \"openssl_pkey_new\": [\n        \"resource openssl_pkey_new([array configargs])\",\n        \"Generates a new private key\"\n    ],\n    \"openssl_private_decrypt\": [\n        \"bool openssl_private_decrypt(string data, string &decrypted, mixed key [, int padding])\",\n        \"Decrypts data with private key\"\n    ],\n    \"openssl_private_encrypt\": [\n        \"bool openssl_private_encrypt(string data, string &crypted, mixed key [, int padding])\",\n        \"Encrypts data with private key\"\n    ],\n    \"openssl_public_decrypt\": [\n        \"bool openssl_public_decrypt(string data, string &crypted, resource key [, int padding])\",\n        \"Decrypts data with public key\"\n    ],\n    \"openssl_public_encrypt\": [\n        \"bool openssl_public_encrypt(string data, string &crypted, mixed key [, int padding])\",\n        \"Encrypts data with public key\"\n    ],\n    \"openssl_random_pseudo_bytes\": [\n        \"string openssl_random_pseudo_bytes(integer length [, &bool returned_strong_result])\",\n        \"Returns a string of the length specified filled with random pseudo bytes\"\n    ],\n    \"openssl_seal\": [\n        \"int openssl_seal(string data, &string sealdata, &array ekeys, array pubkeys)\",\n        \"Seals data\"\n    ],\n    \"openssl_sign\": [\n        \"bool openssl_sign(string data, &string signature, mixed key[, mixed method])\",\n        \"Signs data\"\n    ],\n    \"openssl_verify\": [\n        \"int openssl_verify(string data, string signature, mixed key[, mixed method])\",\n        \"Verifys data\"\n    ],\n    \"openssl_x509_check_private_key\": [\n        \"bool openssl_x509_check_private_key(mixed cert, mixed key)\",\n        \"Checks if a private key corresponds to a CERT\"\n    ],\n    \"openssl_x509_checkpurpose\": [\n        \"int openssl_x509_checkpurpose(mixed x509cert, int purpose, array cainfo [, string untrustedfile])\",\n        \"Checks the CERT to see if it can be used for the purpose in purpose. cainfo holds information about trusted CAs\"\n    ],\n    \"openssl_x509_export\": [\n        \"bool openssl_x509_export(mixed x509, string &out [, bool notext = true])\",\n        \"Exports a CERT to file or a var\"\n    ],\n    \"openssl_x509_export_to_file\": [\n        \"bool openssl_x509_export_to_file(mixed x509, string outfilename [, bool notext = true])\",\n        \"Exports a CERT to file or a var\"\n    ],\n    \"openssl_x509_free\": [\n        \"void openssl_x509_free(resource x509)\",\n        \"Frees X.509 certificates\"\n    ],\n    \"openssl_x509_parse\": [\n        \"array openssl_x509_parse(mixed x509 [, bool shortnames=true])\",\n        \"Returns an array of the fields/values of the CERT\"\n    ],\n    \"openssl_x509_read\": [\n        \"resource openssl_x509_read(mixed cert)\",\n        \"Reads X.509 certificates\"\n    ],\n    \"ord\": [\n        \"int ord(string character)\",\n        \"Returns ASCII value of character\"\n    ],\n    \"output_add_rewrite_var\": [\n        \"bool output_add_rewrite_var(string name, string value)\",\n        \"Add URL rewriter values\"\n    ],\n    \"output_reset_rewrite_vars\": [\n        \"bool output_reset_rewrite_vars(void)\",\n        \"Reset(clear) URL rewriter values\"\n    ],\n    \"pack\": [\n        \"string pack(string format, mixed arg1 [, mixed arg2 [, mixed ...]])\",\n        \"Takes one or more arguments and packs them into a binary string according to the format argument\"\n    ],\n    \"parse_ini_file\": [\n        \"array parse_ini_file(string filename [, bool process_sections [, int scanner_mode]])\",\n        \"Parse configuration file\"\n    ],\n    \"parse_ini_string\": [\n        \"array parse_ini_string(string ini_string [, bool process_sections [, int scanner_mode]])\",\n        \"Parse configuration string\"\n    ],\n    \"parse_locale\": [\n        \"static array parse_locale($locale)\",\n        \"* parses a locale-id into an array the different parts of it\"\n    ],\n    \"parse_str\": [\n        \"void parse_str(string encoded_string [, array result])\",\n        \"Parses GET/POST/COOKIE data and sets global variables\"\n    ],\n    \"parse_url\": [\n        \"mixed parse_url(string url, [int url_component])\",\n        \"Parse a URL and return its components\"\n    ],\n    \"passthru\": [\n        \"void passthru(string command [, int &return_value])\",\n        \"Execute an external program and display raw output\"\n    ],\n    \"pathinfo\": [\n        \"array pathinfo(string path[, int options])\",\n        \"Returns information about a certain string\"\n    ],\n    \"pclose\": [\n        \"int pclose(resource fp)\",\n        \"Close a file pointer opened by popen()\"\n    ],\n    \"pcnlt_sigwaitinfo\": [\n        \"int pcnlt_sigwaitinfo(array set[, array &siginfo])\",\n        \"Synchronously wait for queued signals\"\n    ],\n    \"pcntl_alarm\": [\n        \"int pcntl_alarm(int seconds)\",\n        \"Set an alarm clock for delivery of a signal\"\n    ],\n    \"pcntl_exec\": [\n        \"bool pcntl_exec(string path [, array args [, array envs]])\",\n        \"Executes specified program in current process space as defined by exec(2)\"\n    ],\n    \"pcntl_fork\": [\n        \"int pcntl_fork(void)\",\n        \"Forks the currently running process following the same behavior as the UNIX fork() system call\"\n    ],\n    \"pcntl_getpriority\": [\n        \"int pcntl_getpriority([int pid [, int process_identifier]])\",\n        \"Get the priority of any process\"\n    ],\n    \"pcntl_setpriority\": [\n        \"bool pcntl_setpriority(int priority [, int pid [, int process_identifier]])\",\n        \"Change the priority of any process\"\n    ],\n    \"pcntl_signal\": [\n        \"bool pcntl_signal(int signo, callback handle [, bool restart_syscalls])\",\n        \"Assigns a system signal handler to a PHP function\"\n    ],\n    \"pcntl_signal_dispatch\": [\n        \"bool pcntl_signal_dispatch()\",\n        \"Dispatch signals to signal handlers\"\n    ],\n    \"pcntl_sigprocmask\": [\n        \"bool pcntl_sigprocmask(int how, array set[, array &oldset])\",\n        \"Examine and change blocked signals\"\n    ],\n    \"pcntl_sigtimedwait\": [\n        \"int pcntl_sigtimedwait(array set[, array &siginfo[, int seconds[, int nanoseconds]]])\",\n        \"Wait for queued signals\"\n    ],\n    \"pcntl_wait\": [\n        \"int pcntl_wait(int &status)\",\n        \"Waits on or returns the status of a forked child as defined by the waitpid() system call\"\n    ],\n    \"pcntl_waitpid\": [\n        \"int pcntl_waitpid(int pid, int &status, int options)\",\n        \"Waits on or returns the status of a forked child as defined by the waitpid() system call\"\n    ],\n    \"pcntl_wexitstatus\": [\n        \"int pcntl_wexitstatus(int status)\",\n        \"Returns the status code of a child's exit\"\n    ],\n    \"pcntl_wifexited\": [\n        \"bool pcntl_wifexited(int status)\",\n        \"Returns true if the child status code represents a successful exit\"\n    ],\n    \"pcntl_wifsignaled\": [\n        \"bool pcntl_wifsignaled(int status)\",\n        \"Returns true if the child status code represents a process that was terminated due to a signal\"\n    ],\n    \"pcntl_wifstopped\": [\n        \"bool pcntl_wifstopped(int status)\",\n        \"Returns true if the child status code represents a stopped process (WUNTRACED must have been used with waitpid)\"\n    ],\n    \"pcntl_wstopsig\": [\n        \"int pcntl_wstopsig(int status)\",\n        \"Returns the number of the signal that caused the process to stop who's status code is passed\"\n    ],\n    \"pcntl_wtermsig\": [\n        \"int pcntl_wtermsig(int status)\",\n        \"Returns the number of the signal that terminated the process who's status code is passed\"\n    ],\n    \"pdo_drivers\": [\n        \"array pdo_drivers()\",\n        \"Return array of available PDO drivers\"\n    ],\n    \"pfsockopen\": [\n        \"resource pfsockopen(string hostname, int port [, int errno [, string errstr [, float timeout]]])\",\n        \"Open persistent Internet or Unix domain socket connection\"\n    ],\n    \"pg_affected_rows\": [\n        \"int pg_affected_rows(resource result)\",\n        \"Returns the number of affected tuples\"\n    ],\n    \"pg_cancel_query\": [\n        \"bool pg_cancel_query(resource connection)\",\n        \"Cancel request\"\n    ],\n    \"pg_client_encoding\": [\n        \"string pg_client_encoding([resource connection])\",\n        \"Get the current client encoding\"\n    ],\n    \"pg_close\": [\n        \"bool pg_close([resource connection])\",\n        \"Close a PostgreSQL connection\"\n    ],\n    \"pg_connect\": [\n        \"resource pg_connect(string connection_string[, int connect_type] | [string host, string port [, string options [, string tty,]]] string database)\",\n        \"Open a PostgreSQL connection\"\n    ],\n    \"pg_connection_busy\": [\n        \"bool pg_connection_busy(resource connection)\",\n        \"Get connection is busy or not\"\n    ],\n    \"pg_connection_reset\": [\n        \"bool pg_connection_reset(resource connection)\",\n        \"Reset connection (reconnect)\"\n    ],\n    \"pg_connection_status\": [\n        \"int pg_connection_status(resource connnection)\",\n        \"Get connection status\"\n    ],\n    \"pg_convert\": [\n        \"array pg_convert(resource db, string table, array values[, int options])\",\n        \"Check and convert values for PostgreSQL SQL statement\"\n    ],\n    \"pg_copy_from\": [\n        \"bool pg_copy_from(resource connection, string table_name , array rows [, string delimiter [, string null_as]])\",\n        \"Copy table from array\"\n    ],\n    \"pg_copy_to\": [\n        \"array pg_copy_to(resource connection, string table_name [, string delimiter [, string null_as]])\",\n        \"Copy table to array\"\n    ],\n    \"pg_dbname\": [\n        \"string pg_dbname([resource connection])\",\n        \"Get the database name\"\n    ],\n    \"pg_delete\": [\n        \"mixed pg_delete(resource db, string table, array ids[, int options])\",\n        \"Delete records has ids (id=>value)\"\n    ],\n    \"pg_end_copy\": [\n        \"bool pg_end_copy([resource connection])\",\n        \"Sync with backend. Completes the Copy command\"\n    ],\n    \"pg_escape_bytea\": [\n        \"string pg_escape_bytea([resource connection,] string data)\",\n        \"Escape binary for bytea type\"\n    ],\n    \"pg_escape_string\": [\n        \"string pg_escape_string([resource connection,] string data)\",\n        \"Escape string for text/char type\"\n    ],\n    \"pg_execute\": [\n        \"resource pg_execute([resource connection,] string stmtname, array params)\",\n        \"Execute a prepared query\"\n    ],\n    \"pg_fetch_all\": [\n        \"array pg_fetch_all(resource result)\",\n        \"Fetch all rows into array\"\n    ],\n    \"pg_fetch_all_columns\": [\n        \"array pg_fetch_all_columns(resource result [, int column_number])\",\n        \"Fetch all rows into array\"\n    ],\n    \"pg_fetch_array\": [\n        \"array pg_fetch_array(resource result [, int row [, int result_type]])\",\n        \"Fetch a row as an array\"\n    ],\n    \"pg_fetch_assoc\": [\n        \"array pg_fetch_assoc(resource result [, int row])\",\n        \"Fetch a row as an assoc array\"\n    ],\n    \"pg_fetch_object\": [\n        \"object pg_fetch_object(resource result [, int row [, string class_name [, NULL|array ctor_params]]])\",\n        \"Fetch a row as an object\"\n    ],\n    \"pg_fetch_result\": [\n        \"mixed pg_fetch_result(resource result, [int row_number,] mixed field_name)\",\n        \"Returns values from a result identifier\"\n    ],\n    \"pg_fetch_row\": [\n        \"array pg_fetch_row(resource result [, int row [, int result_type]])\",\n        \"Get a row as an enumerated array\"\n    ],\n    \"pg_field_is_null\": [\n        \"int pg_field_is_null(resource result, [int row,] mixed field_name_or_number)\",\n        \"Test if a field is NULL\"\n    ],\n    \"pg_field_name\": [\n        \"string pg_field_name(resource result, int field_number)\",\n        \"Returns the name of the field\"\n    ],\n    \"pg_field_num\": [\n        \"int pg_field_num(resource result, string field_name)\",\n        \"Returns the field number of the named field\"\n    ],\n    \"pg_field_prtlen\": [\n        \"int pg_field_prtlen(resource result, [int row,] mixed field_name_or_number)\",\n        \"Returns the printed length\"\n    ],\n    \"pg_field_size\": [\n        \"int pg_field_size(resource result, int field_number)\",\n        \"Returns the internal size of the field\"\n    ],\n    \"pg_field_table\": [\n        \"mixed pg_field_table(resource result, int field_number[, bool oid_only])\",\n        \"Returns the name of the table field belongs to, or table's oid if oid_only is true\"\n    ],\n    \"pg_field_type\": [\n        \"string pg_field_type(resource result, int field_number)\",\n        \"Returns the type name for the given field\"\n    ],\n    \"pg_field_type_oid\": [\n        \"string pg_field_type_oid(resource result, int field_number)\",\n        \"Returns the type oid for the given field\"\n    ],\n    \"pg_free_result\": [\n        \"bool pg_free_result(resource result)\",\n        \"Free result memory\"\n    ],\n    \"pg_get_notify\": [\n        \"array pg_get_notify([resource connection[, result_type]])\",\n        \"Get asynchronous notification\"\n    ],\n    \"pg_get_pid\": [\n        \"int pg_get_pid([resource connection)\",\n        \"Get backend(server) pid\"\n    ],\n    \"pg_get_result\": [\n        \"resource pg_get_result(resource connection)\",\n        \"Get asynchronous query result\"\n    ],\n    \"pg_host\": [\n        \"string pg_host([resource connection])\",\n        \"Returns the host name associated with the connection\"\n    ],\n    \"pg_insert\": [\n        \"mixed pg_insert(resource db, string table, array values[, int options])\",\n        \"Insert values (filed=>value) to table\"\n    ],\n    \"pg_last_error\": [\n        \"string pg_last_error([resource connection])\",\n        \"Get the error message string\"\n    ],\n    \"pg_last_notice\": [\n        \"string pg_last_notice(resource connection)\",\n        \"Returns the last notice set by the backend\"\n    ],\n    \"pg_last_oid\": [\n        \"string pg_last_oid(resource result)\",\n        \"Returns the last object identifier\"\n    ],\n    \"pg_lo_close\": [\n        \"bool pg_lo_close(resource large_object)\",\n        \"Close a large object\"\n    ],\n    \"pg_lo_create\": [\n        \"mixed pg_lo_create([resource connection],[mixed large_object_oid])\",\n        \"Create a large object\"\n    ],\n    \"pg_lo_export\": [\n        \"bool pg_lo_export([resource connection, ] int objoid, string filename)\",\n        \"Export large object direct to filesystem\"\n    ],\n    \"pg_lo_import\": [\n        \"int pg_lo_import([resource connection, ] string filename [, mixed oid])\",\n        \"Import large object direct from filesystem\"\n    ],\n    \"pg_lo_open\": [\n        \"resource pg_lo_open([resource connection,] int large_object_oid, string mode)\",\n        \"Open a large object and return fd\"\n    ],\n    \"pg_lo_read\": [\n        \"string pg_lo_read(resource large_object [, int len])\",\n        \"Read a large object\"\n    ],\n    \"pg_lo_read_all\": [\n        \"int pg_lo_read_all(resource large_object)\",\n        \"Read a large object and send straight to browser\"\n    ],\n    \"pg_lo_seek\": [\n        \"bool pg_lo_seek(resource large_object, int offset [, int whence])\",\n        \"Seeks position of large object\"\n    ],\n    \"pg_lo_tell\": [\n        \"int pg_lo_tell(resource large_object)\",\n        \"Returns current position of large object\"\n    ],\n    \"pg_lo_unlink\": [\n        \"bool pg_lo_unlink([resource connection,] string large_object_oid)\",\n        \"Delete a large object\"\n    ],\n    \"pg_lo_write\": [\n        \"int pg_lo_write(resource large_object, string buf [, int len])\",\n        \"Write a large object\"\n    ],\n    \"pg_meta_data\": [\n        \"array pg_meta_data(resource db, string table)\",\n        \"Get meta_data\"\n    ],\n    \"pg_num_fields\": [\n        \"int pg_num_fields(resource result)\",\n        \"Return the number of fields in the result\"\n    ],\n    \"pg_num_rows\": [\n        \"int pg_num_rows(resource result)\",\n        \"Return the number of rows in the result\"\n    ],\n    \"pg_options\": [\n        \"string pg_options([resource connection])\",\n        \"Get the options associated with the connection\"\n    ],\n    \"pg_parameter_status\": [\n        \"string|false pg_parameter_status([resource connection,] string param_name)\",\n        \"Returns the value of a server parameter\"\n    ],\n    \"pg_pconnect\": [\n        \"resource pg_pconnect(string connection_string | [string host, string port [, string options [, string tty,]]] string database)\",\n        \"Open a persistent PostgreSQL connection\"\n    ],\n    \"pg_ping\": [\n        \"bool pg_ping([resource connection])\",\n        \"Ping database. If connection is bad, try to reconnect.\"\n    ],\n    \"pg_port\": [\n        \"int pg_port([resource connection])\",\n        \"Return the port number associated with the connection\"\n    ],\n    \"pg_prepare\": [\n        \"resource pg_prepare([resource connection,] string stmtname, string query)\",\n        \"Prepare a query for future execution\"\n    ],\n    \"pg_put_line\": [\n        \"bool pg_put_line([resource connection,] string query)\",\n        \"Send null-terminated string to backend server\"\n    ],\n    \"pg_query\": [\n        \"resource pg_query([resource connection,] string query)\",\n        \"Execute a query\"\n    ],\n    \"pg_query_params\": [\n        \"resource pg_query_params([resource connection,] string query, array params)\",\n        \"Execute a query\"\n    ],\n    \"pg_result_error\": [\n        \"string pg_result_error(resource result)\",\n        \"Get error message associated with result\"\n    ],\n    \"pg_result_error_field\": [\n        \"string pg_result_error_field(resource result, int fieldcode)\",\n        \"Get error message field associated with result\"\n    ],\n    \"pg_result_seek\": [\n        \"bool pg_result_seek(resource result, int offset)\",\n        \"Set internal row offset\"\n    ],\n    \"pg_result_status\": [\n        \"mixed pg_result_status(resource result[, long result_type])\",\n        \"Get status of query result\"\n    ],\n    \"pg_select\": [\n        \"mixed pg_select(resource db, string table, array ids[, int options])\",\n        \"Select records that has ids (id=>value)\"\n    ],\n    \"pg_send_execute\": [\n        \"bool pg_send_execute(resource connection, string stmtname, array params)\",\n        \"Executes prevriously prepared stmtname asynchronously\"\n    ],\n    \"pg_send_prepare\": [\n        \"bool pg_send_prepare(resource connection, string stmtname, string query)\",\n        \"Asynchronously prepare a query for future execution\"\n    ],\n    \"pg_send_query\": [\n        \"bool pg_send_query(resource connection, string query)\",\n        \"Send asynchronous query\"\n    ],\n    \"pg_send_query_params\": [\n        \"bool pg_send_query_params(resource connection, string query, array params)\",\n        \"Send asynchronous parameterized query\"\n    ],\n    \"pg_set_client_encoding\": [\n        \"int pg_set_client_encoding([resource connection,] string encoding)\",\n        \"Set client encoding\"\n    ],\n    \"pg_set_error_verbosity\": [\n        \"int pg_set_error_verbosity([resource connection,] int verbosity)\",\n        \"Set error verbosity\"\n    ],\n    \"pg_trace\": [\n        \"bool pg_trace(string filename [, string mode [, resource connection]])\",\n        \"Enable tracing a PostgreSQL connection\"\n    ],\n    \"pg_transaction_status\": [\n        \"int pg_transaction_status(resource connnection)\",\n        \"Get transaction status\"\n    ],\n    \"pg_tty\": [\n        \"string pg_tty([resource connection])\",\n        \"Return the tty name associated with the connection\"\n    ],\n    \"pg_unescape_bytea\": [\n        \"string pg_unescape_bytea(string data)\",\n        \"Unescape binary for bytea type\"\n    ],\n    \"pg_untrace\": [\n        \"bool pg_untrace([resource connection])\",\n        \"Disable tracing of a PostgreSQL connection\"\n    ],\n    \"pg_update\": [\n        \"mixed pg_update(resource db, string table, array fields, array ids[, int options])\",\n        \"Update table using values (field=>value) and ids (id=>value)\"\n    ],\n    \"pg_version\": [\n        \"array pg_version([resource connection])\",\n        \"Returns an array with client, protocol and server version (when available)\"\n    ],\n    \"php_egg_logo_guid\": [\n        \"string php_egg_logo_guid(void)\",\n        \"Return the special ID used to request the PHP logo in phpinfo screens\"\n    ],\n    \"php_ini_loaded_file\": [\n        \"string php_ini_loaded_file(void)\",\n        \"Return the actual loaded ini filename\"\n    ],\n    \"php_ini_scanned_files\": [\n        \"string php_ini_scanned_files(void)\",\n        \"Return comma-separated string of .ini files parsed from the additional ini dir\"\n    ],\n    \"php_logo_guid\": [\n        \"string php_logo_guid(void)\",\n        \"Return the special ID used to request the PHP logo in phpinfo screens\"\n    ],\n    \"php_real_logo_guid\": [\n        \"string php_real_logo_guid(void)\",\n        \"Return the special ID used to request the PHP logo in phpinfo screens\"\n    ],\n    \"php_sapi_name\": [\n        \"string php_sapi_name(void)\",\n        \"Return the current SAPI module name\"\n    ],\n    \"php_snmpv3\": [\n        \"void php_snmpv3(INTERNAL_FUNCTION_PARAMETERS, int st)\",\n        \"* * Generic SNMPv3 object fetcher * From here is passed on the the common internal object fetcher. * * st=SNMP_CMD_GET   snmp3_get() - query an agent and return a single value. * st=SNMP_CMD_GETNEXT   snmp3_getnext() - query an agent and return the next single value. * st=SNMP_CMD_WALK   snmp3_walk() - walk the mib and return a single dimensional array  *                       containing the values. * st=SNMP_CMD_REALWALK   snmp3_real_walk() - walk the mib and return an  *                            array of oid,value pairs. * st=SNMP_CMD_SET  snmp3_set() - query an agent and set a single value *\"\n    ],\n    \"php_strip_whitespace\": [\n        \"string php_strip_whitespace(string file_name)\",\n        \"Return source with stripped comments and whitespace\"\n    ],\n    \"php_uname\": [\n        \"string php_uname(void)\",\n        \"Return information about the system PHP was built on\"\n    ],\n    \"phpcredits\": [\n        \"void phpcredits([int flag])\",\n        \"Prints the list of people who've contributed to the PHP project\"\n    ],\n    \"phpinfo\": [\n        \"void phpinfo([int what])\",\n        \"Output a page of useful information about PHP and the current request\"\n    ],\n    \"phpversion\": [\n        \"string phpversion([string extension])\",\n        \"Return the current PHP version\"\n    ],\n    \"pi\": [\n        \"float pi(void)\",\n        \"Returns an approximation of pi\"\n    ],\n    \"png2wbmp\": [\n        \"bool png2wbmp (string f_org, string f_dest, int d_height, int d_width, int threshold)\",\n        \"Convert PNG image to WBMP image\"\n    ],\n    \"popen\": [\n        \"resource popen(string command, string mode)\",\n        \"Execute a command and open either a read or a write pipe to it\"\n    ],\n    \"posix_access\": [\n        \"bool posix_access(string file [, int mode])\",\n        \"Determine accessibility of a file (POSIX.1 5.6.3)\"\n    ],\n    \"posix_ctermid\": [\n        \"string posix_ctermid(void)\",\n        \"Generate terminal path name (POSIX.1, 4.7.1)\"\n    ],\n    \"posix_get_last_error\": [\n        \"int posix_get_last_error(void)\",\n        \"Retrieve the error number set by the last posix function which failed.\"\n    ],\n    \"posix_getcwd\": [\n        \"string posix_getcwd(void)\",\n        \"Get working directory pathname (POSIX.1, 5.2.2)\"\n    ],\n    \"posix_getegid\": [\n        \"int posix_getegid(void)\",\n        \"Get the current effective group id (POSIX.1, 4.2.1)\"\n    ],\n    \"posix_geteuid\": [\n        \"int posix_geteuid(void)\",\n        \"Get the current effective user id (POSIX.1, 4.2.1)\"\n    ],\n    \"posix_getgid\": [\n        \"int posix_getgid(void)\",\n        \"Get the current group id (POSIX.1, 4.2.1)\"\n    ],\n    \"posix_getgrgid\": [\n        \"array posix_getgrgid(long gid)\",\n        \"Group database access (POSIX.1, 9.2.1)\"\n    ],\n    \"posix_getgrnam\": [\n        \"array posix_getgrnam(string groupname)\",\n        \"Group database access (POSIX.1, 9.2.1)\"\n    ],\n    \"posix_getgroups\": [\n        \"array posix_getgroups(void)\",\n        \"Get supplementary group id's (POSIX.1, 4.2.3)\"\n    ],\n    \"posix_getlogin\": [\n        \"string posix_getlogin(void)\",\n        \"Get user name (POSIX.1, 4.2.4)\"\n    ],\n    \"posix_getpgid\": [\n        \"int posix_getpgid(void)\",\n        \"Get the process group id of the specified process (This is not a POSIX function, but a SVR4ism, so we compile conditionally)\"\n    ],\n    \"posix_getpgrp\": [\n        \"int posix_getpgrp(void)\",\n        \"Get current process group id (POSIX.1, 4.3.1)\"\n    ],\n    \"posix_getpid\": [\n        \"int posix_getpid(void)\",\n        \"Get the current process id (POSIX.1, 4.1.1)\"\n    ],\n    \"posix_getppid\": [\n        \"int posix_getppid(void)\",\n        \"Get the parent process id (POSIX.1, 4.1.1)\"\n    ],\n    \"posix_getpwnam\": [\n        \"array posix_getpwnam(string groupname)\",\n        \"User database access (POSIX.1, 9.2.2)\"\n    ],\n    \"posix_getpwuid\": [\n        \"array posix_getpwuid(long uid)\",\n        \"User database access (POSIX.1, 9.2.2)\"\n    ],\n    \"posix_getrlimit\": [\n        \"array posix_getrlimit(void)\",\n        \"Get system resource consumption limits (This is not a POSIX function, but a BSDism and a SVR4ism. We compile conditionally)\"\n    ],\n    \"posix_getsid\": [\n        \"int posix_getsid(void)\",\n        \"Get process group id of session leader (This is not a POSIX function, but a SVR4ism, so be compile conditionally)\"\n    ],\n    \"posix_getuid\": [\n        \"int posix_getuid(void)\",\n        \"Get the current user id (POSIX.1, 4.2.1)\"\n    ],\n    \"posix_initgroups\": [\n        \"bool posix_initgroups(string name, int base_group_id)\",\n        \"Calculate the group access list for the user specified in name.\"\n    ],\n    \"posix_isatty\": [\n        \"bool posix_isatty(int fd)\",\n        \"Determine if filedesc is a tty (POSIX.1, 4.7.1)\"\n    ],\n    \"posix_kill\": [\n        \"bool posix_kill(int pid, int sig)\",\n        \"Send a signal to a process (POSIX.1, 3.3.2)\"\n    ],\n    \"posix_mkfifo\": [\n        \"bool posix_mkfifo(string pathname, int mode)\",\n        \"Make a FIFO special file (POSIX.1, 5.4.2)\"\n    ],\n    \"posix_mknod\": [\n        \"bool posix_mknod(string pathname, int mode [, int major [, int minor]])\",\n        \"Make a special or ordinary file (POSIX.1)\"\n    ],\n    \"posix_setegid\": [\n        \"bool posix_setegid(long uid)\",\n        \"Set effective group id\"\n    ],\n    \"posix_seteuid\": [\n        \"bool posix_seteuid(long uid)\",\n        \"Set effective user id\"\n    ],\n    \"posix_setgid\": [\n        \"bool posix_setgid(int uid)\",\n        \"Set group id (POSIX.1, 4.2.2)\"\n    ],\n    \"posix_setpgid\": [\n        \"bool posix_setpgid(int pid, int pgid)\",\n        \"Set process group id for job control (POSIX.1, 4.3.3)\"\n    ],\n    \"posix_setsid\": [\n        \"int posix_setsid(void)\",\n        \"Create session and set process group id (POSIX.1, 4.3.2)\"\n    ],\n    \"posix_setuid\": [\n        \"bool posix_setuid(long uid)\",\n        \"Set user id (POSIX.1, 4.2.2)\"\n    ],\n    \"posix_strerror\": [\n        \"string posix_strerror(int errno)\",\n        \"Retrieve the system error message associated with the given errno.\"\n    ],\n    \"posix_times\": [\n        \"array posix_times(void)\",\n        \"Get process times (POSIX.1, 4.5.2)\"\n    ],\n    \"posix_ttyname\": [\n        \"string posix_ttyname(int fd)\",\n        \"Determine terminal device name (POSIX.1, 4.7.2)\"\n    ],\n    \"posix_uname\": [\n        \"array posix_uname(void)\",\n        \"Get system name (POSIX.1, 4.4.1)\"\n    ],\n    \"pow\": [\n        \"number pow(number base, number exponent)\",\n        \"Returns base raised to the power of exponent. Returns integer result when possible\"\n    ],\n    \"preg_filter\": [\n        \"mixed preg_filter(mixed regex, mixed replace, mixed subject [, int limit [, int &count]])\",\n        \"Perform Perl-style regular expression replacement and only return matches.\"\n    ],\n    \"preg_grep\": [\n        \"array preg_grep(string regex, array input [, int flags])\",\n        \"Searches array and returns entries which match regex\"\n    ],\n    \"preg_last_error\": [\n        \"int preg_last_error()\",\n        \"Returns the error code of the last regexp execution.\"\n    ],\n    \"preg_match\": [\n        \"int preg_match(string pattern, string subject [, array &subpatterns [, int flags [, int offset]]])\",\n        \"Perform a Perl-style regular expression match\"\n    ],\n    \"preg_match_all\": [\n        \"int preg_match_all(string pattern, string subject, array &subpatterns [, int flags [, int offset]])\",\n        \"Perform a Perl-style global regular expression match\"\n    ],\n    \"preg_quote\": [\n        \"string preg_quote(string str [, string delim_char])\",\n        \"Quote regular expression characters plus an optional character\"\n    ],\n    \"preg_replace\": [\n        \"mixed preg_replace(mixed regex, mixed replace, mixed subject [, int limit [, int &count]])\",\n        \"Perform Perl-style regular expression replacement.\"\n    ],\n    \"preg_replace_callback\": [\n        \"mixed preg_replace_callback(mixed regex, mixed callback, mixed subject [, int limit [, int &count]])\",\n        \"Perform Perl-style regular expression replacement using replacement callback.\"\n    ],\n    \"preg_split\": [\n        \"array preg_split(string pattern, string subject [, int limit [, int flags]])\",\n        \"Split string into an array using a perl-style regular expression as a delimiter\"\n    ],\n    \"prev\": [\n        \"mixed prev(array array_arg)\",\n        \"Move array argument's internal pointer to the previous element and return it\"\n    ],\n    \"print\": [\n        \"int print(string arg)\",\n        \"Output a string\"\n    ],\n    \"print_r\": [\n        \"mixed print_r(mixed var [, bool return])\",\n        \"Prints out or returns information about the specified variable\"\n    ],\n    \"printf\": [\n        \"int printf(string format [, mixed arg1 [, mixed ...]])\",\n        \"Output a formatted string\"\n    ],\n    \"proc_close\": [\n        \"int proc_close(resource process)\",\n        \"close a process opened by proc_open\"\n    ],\n    \"proc_get_status\": [\n        \"array proc_get_status(resource process)\",\n        \"get information about a process opened by proc_open\"\n    ],\n    \"proc_nice\": [\n        \"bool proc_nice(int priority)\",\n        \"Change the priority of the current process\"\n    ],\n    \"proc_open\": [\n        \"resource proc_open(string command, array descriptorspec, array &pipes [, string cwd [, array env [, array other_options]]])\",\n        \"Run a process with more control over it's file descriptors\"\n    ],\n    \"proc_terminate\": [\n        \"bool proc_terminate(resource process [, long signal])\",\n        \"kill a process opened by proc_open\"\n    ],\n    \"property_exists\": [\n        \"bool property_exists(mixed object_or_class, string property_name)\",\n        \"Checks if the object or class has a property\"\n    ],\n    \"pspell_add_to_personal\": [\n        \"bool pspell_add_to_personal(int pspell, string word)\",\n        \"Adds a word to a personal list\"\n    ],\n    \"pspell_add_to_session\": [\n        \"bool pspell_add_to_session(int pspell, string word)\",\n        \"Adds a word to the current session\"\n    ],\n    \"pspell_check\": [\n        \"bool pspell_check(int pspell, string word)\",\n        \"Returns true if word is valid\"\n    ],\n    \"pspell_clear_session\": [\n        \"bool pspell_clear_session(int pspell)\",\n        \"Clears the current session\"\n    ],\n    \"pspell_config_create\": [\n        \"int pspell_config_create(string language [, string spelling [, string jargon [, string encoding]]])\",\n        \"Create a new config to be used later to create a manager\"\n    ],\n    \"pspell_config_data_dir\": [\n        \"bool pspell_config_data_dir(int conf, string directory)\",\n        \"location of language data files\"\n    ],\n    \"pspell_config_dict_dir\": [\n        \"bool pspell_config_dict_dir(int conf, string directory)\",\n        \"location of the main word list\"\n    ],\n    \"pspell_config_ignore\": [\n        \"bool pspell_config_ignore(int conf, int ignore)\",\n        \"Ignore words <= n chars\"\n    ],\n    \"pspell_config_mode\": [\n        \"bool pspell_config_mode(int conf, long mode)\",\n        \"Select mode for config (PSPELL_FAST, PSPELL_NORMAL or PSPELL_BAD_SPELLERS)\"\n    ],\n    \"pspell_config_personal\": [\n        \"bool pspell_config_personal(int conf, string personal)\",\n        \"Use a personal dictionary for this config\"\n    ],\n    \"pspell_config_repl\": [\n        \"bool pspell_config_repl(int conf, string repl)\",\n        \"Use a personal dictionary with replacement pairs for this config\"\n    ],\n    \"pspell_config_runtogether\": [\n        \"bool pspell_config_runtogether(int conf, bool runtogether)\",\n        \"Consider run-together words as valid components\"\n    ],\n    \"pspell_config_save_repl\": [\n        \"bool pspell_config_save_repl(int conf, bool save)\",\n        \"Save replacement pairs when personal list is saved for this config\"\n    ],\n    \"pspell_new\": [\n        \"int pspell_new(string language [, string spelling [, string jargon [, string encoding [, int mode]]]])\",\n        \"Load a dictionary\"\n    ],\n    \"pspell_new_config\": [\n        \"int pspell_new_config(int config)\",\n        \"Load a dictionary based on the given config\"\n    ],\n    \"pspell_new_personal\": [\n        \"int pspell_new_personal(string personal, string language [, string spelling [, string jargon [, string encoding [, int mode]]]])\",\n        \"Load a dictionary with a personal wordlist\"\n    ],\n    \"pspell_save_wordlist\": [\n        \"bool pspell_save_wordlist(int pspell)\",\n        \"Saves the current (personal) wordlist\"\n    ],\n    \"pspell_store_replacement\": [\n        \"bool pspell_store_replacement(int pspell, string misspell, string correct)\",\n        \"Notify the dictionary of a user-selected replacement\"\n    ],\n    \"pspell_suggest\": [\n        \"array pspell_suggest(int pspell, string word)\",\n        \"Returns array of suggestions\"\n    ],\n    \"putenv\": [\n        \"bool putenv(string setting)\",\n        \"Set the value of an environment variable\"\n    ],\n    \"quoted_printable_decode\": [\n        \"string quoted_printable_decode(string str)\",\n        \"Convert a quoted-printable string to an 8 bit string\"\n    ],\n    \"quoted_printable_encode\": [\n        \"string quoted_printable_encode(string str) */\",\n        \"PHP_FUNCTION(quoted_printable_encode) {  char *str, *new_str;  int str_len;  size_t new_str_len;   if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, \\\"s\\\", &str, &str_len) != SUCCESS) {   return;  }   if (!str_len) {   RETURN_EMPTY_STRING();  }   new_str = (char *)php_quot_print_encode((unsigned char *)str, (size_t)str_len, &new_str_len);  RETURN_STRINGL(new_str, new_str_len, 0); } /* }}}\"\n    ],\n    \"quotemeta\": [\n        \"string quotemeta(string str)\",\n        \"Quotes meta characters\"\n    ],\n    \"rad2deg\": [\n        \"float rad2deg(float number)\",\n        \"Converts the radian number to the equivalent number in degrees\"\n    ],\n    \"rand\": [\n        \"int rand([int min, int max])\",\n        \"Returns a random number\"\n    ],\n    \"range\": [\n        \"array range(mixed low, mixed high[, int step])\",\n        \"Create an array containing the range of integers or characters from low to high (inclusive)\"\n    ],\n    \"rawurldecode\": [\n        \"string rawurldecode(string str)\",\n        \"Decodes URL-encodes string\"\n    ],\n    \"rawurlencode\": [\n        \"string rawurlencode(string str)\",\n        \"URL-encodes string\"\n    ],\n    \"readdir\": [\n        \"string readdir([resource dir_handle])\",\n        \"Read directory entry from dir_handle\"\n    ],\n    \"readfile\": [\n        \"int readfile(string filename [, bool use_include_path[, resource context]])\",\n        \"Output a file or a URL\"\n    ],\n    \"readgzfile\": [\n        \"int readgzfile(string filename [, int use_include_path])\",\n        \"Output a .gz-file\"\n    ],\n    \"readline\": [\n        \"string readline([string prompt])\",\n        \"Reads a line\"\n    ],\n    \"readline_add_history\": [\n        \"bool readline_add_history(string prompt)\",\n        \"Adds a line to the history\"\n    ],\n    \"readline_callback_handler_install\": [\n        \"void readline_callback_handler_install(string prompt, mixed callback)\",\n        \"Initializes the readline callback interface and terminal, prints the prompt and returns immediately\"\n    ],\n    \"readline_callback_handler_remove\": [\n        \"bool readline_callback_handler_remove()\",\n        \"Removes a previously installed callback handler and restores terminal settings\"\n    ],\n    \"readline_callback_read_char\": [\n        \"void readline_callback_read_char()\",\n        \"Informs the readline callback interface that a character is ready for input\"\n    ],\n    \"readline_clear_history\": [\n        \"bool readline_clear_history(void)\",\n        \"Clears the history\"\n    ],\n    \"readline_completion_function\": [\n        \"bool readline_completion_function(string funcname)\",\n        \"Readline completion function?\"\n    ],\n    \"readline_info\": [\n        \"mixed readline_info([string varname [, string newvalue]])\",\n        \"Gets/sets various internal readline variables.\"\n    ],\n    \"readline_list_history\": [\n        \"array readline_list_history(void)\",\n        \"Lists the history\"\n    ],\n    \"readline_on_new_line\": [\n        \"void readline_on_new_line(void)\",\n        \"Inform readline that the cursor has moved to a new line\"\n    ],\n    \"readline_read_history\": [\n        \"bool readline_read_history([string filename])\",\n        \"Reads the history\"\n    ],\n    \"readline_redisplay\": [\n        \"void readline_redisplay(void)\",\n        \"Ask readline to redraw the display\"\n    ],\n    \"readline_write_history\": [\n        \"bool readline_write_history([string filename])\",\n        \"Writes the history\"\n    ],\n    \"readlink\": [\n        \"string readlink(string filename)\",\n        \"Return the target of a symbolic link\"\n    ],\n    \"realpath\": [\n        \"string realpath(string path)\",\n        \"Return the resolved path\"\n    ],\n    \"realpath_cache_get\": [\n        \"bool realpath_cache_get()\",\n        \"Get current size of realpath cache\"\n    ],\n    \"realpath_cache_size\": [\n        \"bool realpath_cache_size()\",\n        \"Get current size of realpath cache\"\n    ],\n    \"recode_file\": [\n        \"bool recode_file(string request, resource input, resource output)\",\n        \"Recode file input into file output according to request\"\n    ],\n    \"recode_string\": [\n        \"string recode_string(string request, string str)\",\n        \"Recode string str according to request string\"\n    ],\n    \"register_shutdown_function\": [\n        \"void register_shutdown_function(string function_name)\",\n        \"Register a user-level function to be called on request termination\"\n    ],\n    \"register_tick_function\": [\n        \"bool register_tick_function(string function_name [, mixed arg [, mixed ... ]])\",\n        \"Registers a tick callback function\"\n    ],\n    \"rename\": [\n        \"bool rename(string old_name, string new_name[, resource context])\",\n        \"Rename a file\"\n    ],\n    \"require\": [\n        \"bool require(string path)\",\n        \"Includes and evaluates the specified file, erroring if the file cannot be included\"\n    ],\n    \"require_once\": [\n        \"bool require_once(string path)\",\n        \"Includes and evaluates the specified file, erroring if the file cannot be included\"\n    ],\n    \"reset\": [\n        \"mixed reset(array array_arg)\",\n        \"Set array argument's internal pointer to the first element and return it\"\n    ],\n    \"restore_error_handler\": [\n        \"void restore_error_handler(void)\",\n        \"Restores the previously defined error handler function\"\n    ],\n    \"restore_exception_handler\": [\n        \"void restore_exception_handler(void)\",\n        \"Restores the previously defined exception handler function\"\n    ],\n    \"restore_include_path\": [\n        \"void restore_include_path()\",\n        \"Restore the value of the include_path configuration option\"\n    ],\n    \"rewind\": [\n        \"bool rewind(resource fp)\",\n        \"Rewind the position of a file pointer\"\n    ],\n    \"rewinddir\": [\n        \"void rewinddir([resource dir_handle])\",\n        \"Rewind dir_handle back to the start\"\n    ],\n    \"rmdir\": [\n        \"bool rmdir(string dirname[, resource context])\",\n        \"Remove a directory\"\n    ],\n    \"round\": [\n        \"float round(float number [, int precision [, int mode]])\",\n        \"Returns the number rounded to specified precision\"\n    ],\n    \"rsort\": [\n        \"bool rsort(array &array_arg [, int sort_flags])\",\n        \"Sort an array in reverse order\"\n    ],\n    \"rtrim\": [\n        \"string rtrim(string str [, string character_mask])\",\n        \"Removes trailing whitespace\"\n    ],\n    \"scandir\": [\n        \"array scandir(string dir [, int sorting_order [, resource context]])\",\n        \"List files & directories inside the specified path\"\n    ],\n    \"sem_acquire\": [\n        \"bool sem_acquire(resource id)\",\n        \"Acquires the semaphore with the given id, blocking if necessary\"\n    ],\n    \"sem_get\": [\n        \"resource sem_get(int key [, int max_acquire [, int perm [, int auto_release]])\",\n        \"Return an id for the semaphore with the given key, and allow max_acquire (default 1) processes to acquire it simultaneously\"\n    ],\n    \"sem_release\": [\n        \"bool sem_release(resource id)\",\n        \"Releases the semaphore with the given id\"\n    ],\n    \"sem_remove\": [\n        \"bool sem_remove(resource id)\",\n        \"Removes semaphore from Unix systems\"\n    ],\n    \"serialize\": [\n        \"string serialize(mixed variable)\",\n        \"Returns a string representation of variable (which can later be unserialized)\"\n    ],\n    \"session_cache_expire\": [\n        \"int session_cache_expire([int new_cache_expire])\",\n        \"Return the current cache expire. If new_cache_expire is given, the current cache_expire is replaced with new_cache_expire\"\n    ],\n    \"session_cache_limiter\": [\n        \"string session_cache_limiter([string new_cache_limiter])\",\n        \"Return the current cache limiter. If new_cache_limited is given, the current cache_limiter is replaced with new_cache_limiter\"\n    ],\n    \"session_decode\": [\n        \"bool session_decode(string data)\",\n        \"Deserializes data and reinitializes the variables\"\n    ],\n    \"session_destroy\": [\n        \"bool session_destroy(void)\",\n        \"Destroy the current session and all data associated with it\"\n    ],\n    \"session_encode\": [\n        \"string session_encode(void)\",\n        \"Serializes the current setup and returns the serialized representation\"\n    ],\n    \"session_get_cookie_params\": [\n        \"array session_get_cookie_params(void)\",\n        \"Return the session cookie parameters\"\n    ],\n    \"session_id\": [\n        \"string session_id([string newid])\",\n        \"Return the current session id. If newid is given, the session id is replaced with newid\"\n    ],\n    \"session_is_registered\": [\n        \"bool session_is_registered(string varname)\",\n        \"Checks if a variable is registered in session\"\n    ],\n    \"session_module_name\": [\n        \"string session_module_name([string newname])\",\n        \"Return the current module name used for accessing session data. If newname is given, the module name is replaced with newname\"\n    ],\n    \"session_name\": [\n        \"string session_name([string newname])\",\n        \"Return the current session name. If newname is given, the session name is replaced with newname\"\n    ],\n    \"session_regenerate_id\": [\n        \"bool session_regenerate_id([bool delete_old_session])\",\n        \"Update the current session id with a newly generated one. If delete_old_session is set to true, remove the old session.\"\n    ],\n    \"session_register\": [\n        \"bool session_register(mixed var_names [, mixed ...])\",\n        \"Adds varname(s) to the list of variables which are freezed at the session end\"\n    ],\n    \"session_save_path\": [\n        \"string session_save_path([string newname])\",\n        \"Return the current save path passed to module_name. If newname is given, the save path is replaced with newname\"\n    ],\n    \"session_set_cookie_params\": [\n        \"void session_set_cookie_params(int lifetime [, string path [, string domain [, bool secure[, bool httponly]]]])\",\n        \"Set session cookie parameters\"\n    ],\n    \"session_set_save_handler\": [\n        \"void session_set_save_handler(string open, string close, string read, string write, string destroy, string gc)\",\n        \"Sets user-level functions\"\n    ],\n    \"session_start\": [\n        \"bool session_start(void)\",\n        \"Begin session - reinitializes freezed variables, registers browsers etc\"\n    ],\n    \"session_unregister\": [\n        \"bool session_unregister(string varname)\",\n        \"Removes varname from the list of variables which are freezed at the session end\"\n    ],\n    \"session_unset\": [\n        \"void session_unset(void)\",\n        \"Unset all registered variables\"\n    ],\n    \"session_write_close\": [\n        \"void session_write_close(void)\",\n        \"Write session data and end session\"\n    ],\n    \"set_error_handler\": [\n        \"string set_error_handler(string error_handler [, int error_types])\",\n        \"Sets a user-defined error handler function.  Returns the previously defined error handler, or false on error\"\n    ],\n    \"set_exception_handler\": [\n        \"string set_exception_handler(callable exception_handler)\",\n        \"Sets a user-defined exception handler function.  Returns the previously defined exception handler, or false on error\"\n    ],\n    \"set_include_path\": [\n        \"string set_include_path(string new_include_path)\",\n        \"Sets the include_path configuration option\"\n    ],\n    \"set_magic_quotes_runtime\": [\n        \"bool set_magic_quotes_runtime(int new_setting)\",\n        \"Set the current active configuration setting of magic_quotes_runtime and return previous\"\n    ],\n    \"set_time_limit\": [\n        \"bool set_time_limit(int seconds)\",\n        \"Sets the maximum time a script can run\"\n    ],\n    \"setcookie\": [\n        \"bool setcookie(string name [, string value [, int expires [, string path [, string domain [, bool secure[, bool httponly]]]]]])\",\n        \"Send a cookie\"\n    ],\n    \"setlocale\": [\n        \"string setlocale(mixed category, string locale [, string ...])\",\n        \"Set locale information\"\n    ],\n    \"setrawcookie\": [\n        \"bool setrawcookie(string name [, string value [, int expires [, string path [, string domain [, bool secure[, bool httponly]]]]]])\",\n        \"Send a cookie with no url encoding of the value\"\n    ],\n    \"settype\": [\n        \"bool settype(mixed var, string type)\",\n        \"Set the type of the variable\"\n    ],\n    \"sha1\": [\n        \"string sha1(string str [, bool raw_output])\",\n        \"Calculate the sha1 hash of a string\"\n    ],\n    \"sha1_file\": [\n        \"string sha1_file(string filename [, bool raw_output])\",\n        \"Calculate the sha1 hash of given filename\"\n    ],\n    \"shell_exec\": [\n        \"string shell_exec(string cmd)\",\n        \"Execute command via shell and return complete output as string\"\n    ],\n    \"shm_attach\": [\n        \"int shm_attach(int key [, int memsize [, int perm]])\",\n        \"Creates or open a shared memory segment\"\n    ],\n    \"shm_detach\": [\n        \"bool shm_detach(resource shm_identifier)\",\n        \"Disconnects from shared memory segment\"\n    ],\n    \"shm_get_var\": [\n        \"mixed shm_get_var(resource id, int variable_key)\",\n        \"Returns a variable from shared memory\"\n    ],\n    \"shm_has_var\": [\n        \"bool shm_has_var(resource id, int variable_key)\",\n        \"Checks whether a specific entry exists\"\n    ],\n    \"shm_put_var\": [\n        \"bool shm_put_var(resource shm_identifier, int variable_key, mixed variable)\",\n        \"Inserts or updates a variable in shared memory\"\n    ],\n    \"shm_remove\": [\n        \"bool shm_remove(resource shm_identifier)\",\n        \"Removes shared memory from Unix systems\"\n    ],\n    \"shm_remove_var\": [\n        \"bool shm_remove_var(resource id, int variable_key)\",\n        \"Removes variable from shared memory\"\n    ],\n    \"shmop_close\": [\n        \"void shmop_close (int shmid)\",\n        \"closes a shared memory segment\"\n    ],\n    \"shmop_delete\": [\n        \"bool shmop_delete (int shmid)\",\n        \"mark segment for deletion\"\n    ],\n    \"shmop_open\": [\n        \"int shmop_open (int key, string flags, int mode, int size)\",\n        \"gets and attaches a shared memory segment\"\n    ],\n    \"shmop_read\": [\n        \"string shmop_read (int shmid, int start, int count)\",\n        \"reads from a shm segment\"\n    ],\n    \"shmop_size\": [\n        \"int shmop_size (int shmid)\",\n        \"returns the shm size\"\n    ],\n    \"shmop_write\": [\n        \"int shmop_write (int shmid, string data, int offset)\",\n        \"writes to a shared memory segment\"\n    ],\n    \"shuffle\": [\n        \"bool shuffle(array array_arg)\",\n        \"Randomly shuffle the contents of an array\"\n    ],\n    \"similar_text\": [\n        \"int similar_text(string str1, string str2 [, float percent])\",\n        \"Calculates the similarity between two strings\"\n    ],\n    \"simplexml_import_dom\": [\n        \"simplemxml_element simplexml_import_dom(domNode node [, string class_name])\",\n        \"Get a simplexml_element object from dom to allow for processing\"\n    ],\n    \"simplexml_load_file\": [\n        \"simplemxml_element simplexml_load_file(string filename [, string class_name [, int options [, string ns [, bool is_prefix]]]])\",\n        \"Load a filename and return a simplexml_element object to allow for processing\"\n    ],\n    \"simplexml_load_string\": [\n        \"simplemxml_element simplexml_load_string(string data [, string class_name [, int options [, string ns [, bool is_prefix]]]])\",\n        \"Load a string and return a simplexml_element object to allow for processing\"\n    ],\n    \"sin\": [\n        \"float sin(float number)\",\n        \"Returns the sine of the number in radians\"\n    ],\n    \"sinh\": [\n        \"float sinh(float number)\",\n        \"Returns the hyperbolic sine of the number, defined as (exp(number) - exp(-number))/2\"\n    ],\n    \"sleep\": [\n        \"void sleep(int seconds)\",\n        \"Delay for a given number of seconds\"\n    ],\n    \"smfi_addheader\": [\n        \"bool smfi_addheader(string headerf, string headerv)\",\n        \"Adds a header to the current message.\"\n    ],\n    \"smfi_addrcpt\": [\n        \"bool smfi_addrcpt(string rcpt)\",\n        \"Add a recipient to the message envelope.\"\n    ],\n    \"smfi_chgheader\": [\n        \"bool smfi_chgheader(string headerf, string headerv)\",\n        \"Changes a header's value for the current message.\"\n    ],\n    \"smfi_delrcpt\": [\n        \"bool smfi_delrcpt(string rcpt)\",\n        \"Removes the named recipient from the current message's envelope.\"\n    ],\n    \"smfi_getsymval\": [\n        \"string smfi_getsymval(string macro)\",\n        \"Returns the value of the given macro or NULL if the macro is not defined.\"\n    ],\n    \"smfi_replacebody\": [\n        \"bool smfi_replacebody(string body)\",\n        \"Replaces the body of the current message. If called more than once,    subsequent calls result in data being appended to the new body.\"\n    ],\n    \"smfi_setflags\": [\n        \"void smfi_setflags(long flags)\",\n        \"Sets the flags describing the actions the filter may take.\"\n    ],\n    \"smfi_setreply\": [\n        \"bool smfi_setreply(string rcode, string xcode, string message)\",\n        \"Directly set the SMTP error reply code for this connection.    This code will be used on subsequent error replies resulting from actions taken by this filter.\"\n    ],\n    \"smfi_settimeout\": [\n        \"void smfi_settimeout(long timeout)\",\n        \"Sets the number of seconds libmilter will wait for an MTA connection before timing out a socket.\"\n    ],\n    \"snmp2_get\": [\n        \"string snmp2_get(string host, string community, string object_id [, int timeout [, int retries]])\",\n        \"Fetch a SNMP object\"\n    ],\n    \"snmp2_getnext\": [\n        \"string snmp2_getnext(string host, string community, string object_id [, int timeout [, int retries]])\",\n        \"Fetch a SNMP object\"\n    ],\n    \"snmp2_real_walk\": [\n        \"array snmp2_real_walk(string host, string community, string object_id [, int timeout [, int retries]])\",\n        \"Return all objects including their respective object id withing the specified one\"\n    ],\n    \"snmp2_set\": [\n        \"int snmp2_set(string host, string community, string object_id, string type, mixed value [, int timeout [, int retries]])\",\n        \"Set the value of a SNMP object\"\n    ],\n    \"snmp2_walk\": [\n        \"array snmp2_walk(string host, string community, string object_id [, int timeout [, int retries]])\",\n        \"Return all objects under the specified object id\"\n    ],\n    \"snmp3_get\": [\n        \"int snmp3_get(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id [, int timeout [, int retries]])\",\n        \"Fetch the value of a SNMP object\"\n    ],\n    \"snmp3_getnext\": [\n        \"int snmp3_getnext(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id [, int timeout [, int retries]])\",\n        \"Fetch the value of a SNMP object\"\n    ],\n    \"snmp3_real_walk\": [\n        \"int snmp3_real_walk(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id [, int timeout [, int retries]])\",\n        \"Fetch the value of a SNMP object\"\n    ],\n    \"snmp3_set\": [\n        \"int snmp3_set(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id, string type, mixed value [, int timeout [, int retries]])\",\n        \"Fetch the value of a SNMP object\"\n    ],\n    \"snmp3_walk\": [\n        \"int snmp3_walk(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id [, int timeout [, int retries]])\",\n        \"Fetch the value of a SNMP object\"\n    ],\n    \"snmp_get_quick_print\": [\n        \"bool snmp_get_quick_print(void)\",\n        \"Return the current status of quick_print\"\n    ],\n    \"snmp_get_valueretrieval\": [\n        \"int snmp_get_valueretrieval()\",\n        \"Return the method how the SNMP values will be returned\"\n    ],\n    \"snmp_read_mib\": [\n        \"int snmp_read_mib(string filename)\",\n        \"Reads and parses a MIB file into the active MIB tree.\"\n    ],\n    \"snmp_set_enum_print\": [\n        \"void snmp_set_enum_print(int enum_print)\",\n        \"Return all values that are enums with their enum value instead of the raw integer\"\n    ],\n    \"snmp_set_oid_output_format\": [\n        \"void snmp_set_oid_output_format(int oid_format)\",\n        \"Set the OID output format.\"\n    ],\n    \"snmp_set_quick_print\": [\n        \"void snmp_set_quick_print(int quick_print)\",\n        \"Return all objects including their respective object id withing the specified one\"\n    ],\n    \"snmp_set_valueretrieval\": [\n        \"void snmp_set_valueretrieval(int method)\",\n        \"Specify the method how the SNMP values will be returned\"\n    ],\n    \"snmpget\": [\n        \"string snmpget(string host, string community, string object_id [, int timeout [, int retries]])\",\n        \"Fetch a SNMP object\"\n    ],\n    \"snmpgetnext\": [\n        \"string snmpgetnext(string host, string community, string object_id [, int timeout [, int retries]])\",\n        \"Fetch a SNMP object\"\n    ],\n    \"snmprealwalk\": [\n        \"array snmprealwalk(string host, string community, string object_id [, int timeout [, int retries]])\",\n        \"Return all objects including their respective object id withing the specified one\"\n    ],\n    \"snmpset\": [\n        \"int snmpset(string host, string community, string object_id, string type, mixed value [, int timeout [, int retries]])\",\n        \"Set the value of a SNMP object\"\n    ],\n    \"snmpwalk\": [\n        \"array snmpwalk(string host, string community, string object_id [, int timeout [, int retries]])\",\n        \"Return all objects under the specified object id\"\n    ],\n    \"socket_accept\": [\n        \"resource socket_accept(resource socket)\",\n        \"Accepts a connection on the listening socket fd\"\n    ],\n    \"socket_bind\": [\n        \"bool socket_bind(resource socket, string addr [, int port])\",\n        \"Binds an open socket to a listening port, port is only specified in AF_INET family.\"\n    ],\n    \"socket_clear_error\": [\n        \"void socket_clear_error([resource socket])\",\n        \"Clears the error on the socket or the last error code.\"\n    ],\n    \"socket_close\": [\n        \"void socket_close(resource socket)\",\n        \"Closes a file descriptor\"\n    ],\n    \"socket_connect\": [\n        \"bool socket_connect(resource socket, string addr [, int port])\",\n        \"Opens a connection to addr:port on the socket specified by socket\"\n    ],\n    \"socket_create\": [\n        \"resource socket_create(int domain, int type, int protocol)\",\n        \"Creates an endpoint for communication in the domain specified by domain, of type specified by type\"\n    ],\n    \"socket_create_listen\": [\n        \"resource socket_create_listen(int port[, int backlog])\",\n        \"Opens a socket on port to accept connections\"\n    ],\n    \"socket_create_pair\": [\n        \"bool socket_create_pair(int domain, int type, int protocol, array &fd)\",\n        \"Creates a pair of indistinguishable sockets and stores them in fds.\"\n    ],\n    \"socket_get_option\": [\n        \"mixed socket_get_option(resource socket, int level, int optname)\",\n        \"Gets socket options for the socket\"\n    ],\n    \"socket_getpeername\": [\n        \"bool socket_getpeername(resource socket, string &addr[, int &port])\",\n        \"Queries the remote side of the given socket which may either result in host/port or in a UNIX filesystem path, dependent on its type.\"\n    ],\n    \"socket_getsockname\": [\n        \"bool socket_getsockname(resource socket, string &addr[, int &port])\",\n        \"Queries the remote side of the given socket which may either result in host/port or in a UNIX filesystem path, dependent on its type.\"\n    ],\n    \"socket_last_error\": [\n        \"int socket_last_error([resource socket])\",\n        \"Returns the last socket error (either the last used or the provided socket resource)\"\n    ],\n    \"socket_listen\": [\n        \"bool socket_listen(resource socket[, int backlog])\",\n        \"Sets the maximum number of connections allowed to be waited for on the socket specified by fd\"\n    ],\n    \"socket_read\": [\n        \"string socket_read(resource socket, int length [, int type])\",\n        \"Reads a maximum of length bytes from socket\"\n    ],\n    \"socket_recv\": [\n        \"int socket_recv(resource socket, string &buf, int len, int flags)\",\n        \"Receives data from a connected socket\"\n    ],\n    \"socket_recvfrom\": [\n        \"int socket_recvfrom(resource socket, string &buf, int len, int flags, string &name [, int &port])\",\n        \"Receives data from a socket, connected or not\"\n    ],\n    \"socket_select\": [\n        \"int socket_select(array &read_fds, array &write_fds, array &except_fds, int tv_sec[, int tv_usec])\",\n        \"Runs the select() system call on the sets mentioned with a timeout specified by tv_sec and tv_usec\"\n    ],\n    \"socket_send\": [\n        \"int socket_send(resource socket, string buf, int len, int flags)\",\n        \"Sends data to a connected socket\"\n    ],\n    \"socket_sendto\": [\n        \"int socket_sendto(resource socket, string buf, int len, int flags, string addr [, int port])\",\n        \"Sends a message to a socket, whether it is connected or not\"\n    ],\n    \"socket_set_block\": [\n        \"bool socket_set_block(resource socket)\",\n        \"Sets blocking mode on a socket resource\"\n    ],\n    \"socket_set_nonblock\": [\n        \"bool socket_set_nonblock(resource socket)\",\n        \"Sets nonblocking mode on a socket resource\"\n    ],\n    \"socket_set_option\": [\n        \"bool socket_set_option(resource socket, int level, int optname, int|array optval)\",\n        \"Sets socket options for the socket\"\n    ],\n    \"socket_shutdown\": [\n        \"bool socket_shutdown(resource socket[, int how])\",\n        \"Shuts down a socket for receiving, sending, or both.\"\n    ],\n    \"socket_strerror\": [\n        \"string socket_strerror(int errno)\",\n        \"Returns a string describing an error\"\n    ],\n    \"socket_write\": [\n        \"int socket_write(resource socket, string buf[, int length])\",\n        \"Writes the buffer to the socket resource, length is optional\"\n    ],\n    \"solid_fetch_prev\": [\n        \"bool solid_fetch_prev(resource result_id)\",\n        \"\"\n    ],\n    \"sort\": [\n        \"bool sort(array &array_arg [, int sort_flags])\",\n        \"Sort an array\"\n    ],\n    \"soundex\": [\n        \"string soundex(string str)\",\n        \"Calculate the soundex key of a string\"\n    ],\n    \"spl_autoload\": [\n        \"void spl_autoload(string class_name [, string file_extensions])\",\n        \"Default implementation for __autoload()\"\n    ],\n    \"spl_autoload_call\": [\n        \"void spl_autoload_call(string class_name)\",\n        \"Try all registerd autoload function to load the requested class\"\n    ],\n    \"spl_autoload_extensions\": [\n        \"string spl_autoload_extensions([string file_extensions])\",\n        \"Register and return default file extensions for spl_autoload\"\n    ],\n    \"spl_autoload_functions\": [\n        \"false|array spl_autoload_functions()\",\n        \"Return all registered __autoload() functionns\"\n    ],\n    \"spl_autoload_register\": [\n        \"bool spl_autoload_register([mixed autoload_function = \\\"spl_autoload\\\" [, throw = true [, prepend]]])\",\n        \"Register given function as __autoload() implementation\"\n    ],\n    \"spl_autoload_unregister\": [\n        \"bool spl_autoload_unregister(mixed autoload_function)\",\n        \"Unregister given function as __autoload() implementation\"\n    ],\n    \"spl_classes\": [\n        \"array spl_classes()\",\n        \"Return an array containing the names of all clsses and interfaces defined in SPL\"\n    ],\n    \"spl_object_hash\": [\n        \"string spl_object_hash(object obj)\",\n        \"Return hash id for given object\"\n    ],\n    \"split\": [\n        \"array split(string pattern, string string [, int limit])\",\n        \"Split string into array by regular expression\"\n    ],\n    \"spliti\": [\n        \"array spliti(string pattern, string string [, int limit])\",\n        \"Split string into array by regular expression case-insensitive\"\n    ],\n    \"sprintf\": [\n        \"string sprintf(string format [, mixed arg1 [, mixed ...]])\",\n        \"Return a formatted string\"\n    ],\n    \"sql_regcase\": [\n        \"string sql_regcase(string string)\",\n        \"Make regular expression for case insensitive match\"\n    ],\n    \"sqlite_array_query\": [\n        \"array sqlite_array_query(resource db, string query [ , int result_type [, bool decode_binary]])\",\n        \"Executes a query against a given database and returns an array of arrays.\"\n    ],\n    \"sqlite_busy_timeout\": [\n        \"void sqlite_busy_timeout(resource db, int ms)\",\n        \"Set busy timeout duration. If ms <= 0, all busy handlers are disabled.\"\n    ],\n    \"sqlite_changes\": [\n        \"int sqlite_changes(resource db)\",\n        \"Returns the number of rows that were changed by the most recent SQL statement.\"\n    ],\n    \"sqlite_close\": [\n        \"void sqlite_close(resource db)\",\n        \"Closes an open sqlite database.\"\n    ],\n    \"sqlite_column\": [\n        \"mixed sqlite_column(resource result, mixed index_or_name [, bool decode_binary])\",\n        \"Fetches a column from the current row of a result set.\"\n    ],\n    \"sqlite_create_aggregate\": [\n        \"bool sqlite_create_aggregate(resource db, string funcname, mixed step_func, mixed finalize_func[, long num_args])\",\n        \"Registers an aggregate function for queries.\"\n    ],\n    \"sqlite_create_function\": [\n        \"bool sqlite_create_function(resource db, string funcname, mixed callback[, long num_args])\",\n        \"Registers a \\\"regular\\\" function for queries.\"\n    ],\n    \"sqlite_current\": [\n        \"array sqlite_current(resource result [, int result_type [, bool decode_binary]])\",\n        \"Fetches the current row from a result set as an array.\"\n    ],\n    \"sqlite_error_string\": [\n        \"string sqlite_error_string(int error_code)\",\n        \"Returns the textual description of an error code.\"\n    ],\n    \"sqlite_escape_string\": [\n        \"string sqlite_escape_string(string item)\",\n        \"Escapes a string for use as a query parameter.\"\n    ],\n    \"sqlite_exec\": [\n        \"boolean sqlite_exec(string query, resource db[, string &error_message])\",\n        \"Executes a result-less query against a given database\"\n    ],\n    \"sqlite_factory\": [\n        \"object sqlite_factory(string filename [, int mode [, string &error_message]])\",\n        \"Opens a SQLite database and creates an object for it. Will create the database if it does not exist.\"\n    ],\n    \"sqlite_fetch_all\": [\n        \"array sqlite_fetch_all(resource result [, int result_type [, bool decode_binary]])\",\n        \"Fetches all rows from a result set as an array of arrays.\"\n    ],\n    \"sqlite_fetch_array\": [\n        \"array sqlite_fetch_array(resource result [, int result_type [, bool decode_binary]])\",\n        \"Fetches the next row from a result set as an array.\"\n    ],\n    \"sqlite_fetch_column_types\": [\n        \"resource sqlite_fetch_column_types(string table_name, resource db [, int result_type])\",\n        \"Return an array of column types from a particular table.\"\n    ],\n    \"sqlite_fetch_object\": [\n        \"object sqlite_fetch_object(resource result [, string class_name [, NULL|array ctor_params [, bool decode_binary]]])\",\n        \"Fetches the next row from a result set as an object.\"\n    ],\n    \"sqlite_fetch_single\": [\n        \"string sqlite_fetch_single(resource result [, bool decode_binary])\",\n        \"Fetches the first column of a result set as a string.\"\n    ],\n    \"sqlite_field_name\": [\n        \"string sqlite_field_name(resource result, int field_index)\",\n        \"Returns the name of a particular field of a result set.\"\n    ],\n    \"sqlite_has_prev\": [\n        \"bool sqlite_has_prev(resource result)\",\n        \"* Returns whether a previous row is available.\"\n    ],\n    \"sqlite_key\": [\n        \"int sqlite_key(resource result)\",\n        \"Return the current row index of a buffered result.\"\n    ],\n    \"sqlite_last_error\": [\n        \"int sqlite_last_error(resource db)\",\n        \"Returns the error code of the last error for a database.\"\n    ],\n    \"sqlite_last_insert_rowid\": [\n        \"int sqlite_last_insert_rowid(resource db)\",\n        \"Returns the rowid of the most recently inserted row.\"\n    ],\n    \"sqlite_libencoding\": [\n        \"string sqlite_libencoding()\",\n        \"Returns the encoding (iso8859 or UTF-8) of the linked SQLite library.\"\n    ],\n    \"sqlite_libversion\": [\n        \"string sqlite_libversion()\",\n        \"Returns the version of the linked SQLite library.\"\n    ],\n    \"sqlite_next\": [\n        \"bool sqlite_next(resource result)\",\n        \"Seek to the next row number of a result set.\"\n    ],\n    \"sqlite_num_fields\": [\n        \"int sqlite_num_fields(resource result)\",\n        \"Returns the number of fields in a result set.\"\n    ],\n    \"sqlite_num_rows\": [\n        \"int sqlite_num_rows(resource result)\",\n        \"Returns the number of rows in a buffered result set.\"\n    ],\n    \"sqlite_open\": [\n        \"resource sqlite_open(string filename [, int mode [, string &error_message]])\",\n        \"Opens a SQLite database. Will create the database if it does not exist.\"\n    ],\n    \"sqlite_popen\": [\n        \"resource sqlite_popen(string filename [, int mode [, string &error_message]])\",\n        \"Opens a persistent handle to a SQLite database. Will create the database if it does not exist.\"\n    ],\n    \"sqlite_prev\": [\n        \"bool sqlite_prev(resource result)\",\n        \"* Seek to the previous row number of a result set.\"\n    ],\n    \"sqlite_query\": [\n        \"resource sqlite_query(string query, resource db [, int result_type [, string &error_message]])\",\n        \"Executes a query against a given database and returns a result handle.\"\n    ],\n    \"sqlite_rewind\": [\n        \"bool sqlite_rewind(resource result)\",\n        \"Seek to the first row number of a buffered result set.\"\n    ],\n    \"sqlite_seek\": [\n        \"bool sqlite_seek(resource result, int row)\",\n        \"Seek to a particular row number of a buffered result set.\"\n    ],\n    \"sqlite_single_query\": [\n        \"array sqlite_single_query(resource db, string query [, bool first_row_only [, bool decode_binary]])\",\n        \"Executes a query and returns either an array for one single column or the value of the first row.\"\n    ],\n    \"sqlite_udf_decode_binary\": [\n        \"string sqlite_udf_decode_binary(string data)\",\n        \"Decode binary encoding on a string parameter passed to an UDF.\"\n    ],\n    \"sqlite_udf_encode_binary\": [\n        \"string sqlite_udf_encode_binary(string data)\",\n        \"Apply binary encoding (if required) to a string to return from an UDF.\"\n    ],\n    \"sqlite_unbuffered_query\": [\n        \"resource sqlite_unbuffered_query(string query, resource db [ , int result_type [, string &error_message]])\",\n        \"Executes a query that does not prefetch and buffer all data.\"\n    ],\n    \"sqlite_valid\": [\n        \"bool sqlite_valid(resource result)\",\n        \"Returns whether more rows are available.\"\n    ],\n    \"sqrt\": [\n        \"float sqrt(float number)\",\n        \"Returns the square root of the number\"\n    ],\n    \"srand\": [\n        \"void srand([int seed])\",\n        \"Seeds random number generator\"\n    ],\n    \"sscanf\": [\n        \"mixed sscanf(string str, string format [, string ...])\",\n        \"Implements an ANSI C compatible sscanf\"\n    ],\n    \"stat\": [\n        \"array stat(string filename)\",\n        \"Give information about a file\"\n    ],\n    \"str_getcsv\": [\n        \"array str_getcsv(string input[, string delimiter[, string enclosure[, string escape]]])\",\n        \"Parse a CSV string into an array\"\n    ],\n    \"str_ireplace\": [\n        \"mixed str_ireplace(mixed search, mixed replace, mixed subject [, int &replace_count])\",\n        \"Replaces all occurrences of search in haystack with replace / case-insensitive\"\n    ],\n    \"str_pad\": [\n        \"string str_pad(string input, int pad_length [, string pad_string [, int pad_type]])\",\n        \"Returns input string padded on the left or right to specified length with pad_string\"\n    ],\n    \"str_repeat\": [\n        \"string str_repeat(string input, int mult)\",\n        \"Returns the input string repeat mult times\"\n    ],\n    \"str_replace\": [\n        \"mixed str_replace(mixed search, mixed replace, mixed subject [, int &replace_count])\",\n        \"Replaces all occurrences of search in haystack with replace\"\n    ],\n    \"str_rot13\": [\n        \"string str_rot13(string str)\",\n        \"Perform the rot13 transform on a string\"\n    ],\n    \"str_shuffle\": [\n        \"void str_shuffle(string str)\",\n        \"Shuffles string. One permutation of all possible is created\"\n    ],\n    \"str_split\": [\n        \"array str_split(string str [, int split_length])\",\n        \"Convert a string to an array. If split_length is specified, break the string down into chunks each split_length characters long.\"\n    ],\n    \"str_word_count\": [\n        \"mixed str_word_count(string str, [int format [, string charlist]])\",\n        \"Counts the number of words inside a string. If format of 1 is specified,     then the function will return an array containing all the words     found inside the string. If format of 2 is specified, then the function     will return an associated array where the position of the word is the key     and the word itself is the value.          For the purpose of this function, 'word' is defined as a locale dependent     string containing alphabetic characters, which also may contain, but not start     with \\\"'\\\" and \\\"-\\\" characters.\"\n    ],\n    \"strcasecmp\": [\n        \"int strcasecmp(string str1, string str2)\",\n        \"Binary safe case-insensitive string comparison\"\n    ],\n    \"strchr\": [\n        \"string strchr(string haystack, string needle)\",\n        \"An alias for strstr\"\n    ],\n    \"strcmp\": [\n        \"int strcmp(string str1, string str2)\",\n        \"Binary safe string comparison\"\n    ],\n    \"strcoll\": [\n        \"int strcoll(string str1, string str2)\",\n        \"Compares two strings using the current locale\"\n    ],\n    \"strcspn\": [\n        \"int strcspn(string str, string mask [, start [, len]])\",\n        \"Finds length of initial segment consisting entirely of characters not found in mask. If start or/and length is provide works like strcspn(substr($s,$start,$len),$bad_chars)\"\n    ],\n    \"stream_bucket_append\": [\n        \"void stream_bucket_append(resource brigade, resource bucket)\",\n        \"Append bucket to brigade\"\n    ],\n    \"stream_bucket_make_writeable\": [\n        \"object stream_bucket_make_writeable(resource brigade)\",\n        \"Return a bucket object from the brigade for operating on\"\n    ],\n    \"stream_bucket_new\": [\n        \"resource stream_bucket_new(resource stream, string buffer)\",\n        \"Create a new bucket for use on the current stream\"\n    ],\n    \"stream_bucket_prepend\": [\n        \"void stream_bucket_prepend(resource brigade, resource bucket)\",\n        \"Prepend bucket to brigade\"\n    ],\n    \"stream_context_create\": [\n        \"resource stream_context_create([array options[, array params]])\",\n        \"Create a file context and optionally set parameters\"\n    ],\n    \"stream_context_get_default\": [\n        \"resource stream_context_get_default([array options])\",\n        \"Get a handle on the default file/stream context and optionally set parameters\"\n    ],\n    \"stream_context_get_options\": [\n        \"array stream_context_get_options(resource context|resource stream)\",\n        \"Retrieve options for a stream/wrapper/context\"\n    ],\n    \"stream_context_get_params\": [\n        \"array stream_context_get_params(resource context|resource stream)\",\n        \"Get parameters of a file context\"\n    ],\n    \"stream_context_set_default\": [\n        \"resource stream_context_set_default(array options)\",\n        \"Set default file/stream context, returns the context as a resource\"\n    ],\n    \"stream_context_set_option\": [\n        \"bool stream_context_set_option(resource context|resource stream, string wrappername, string optionname, mixed value)\",\n        \"Set an option for a wrapper\"\n    ],\n    \"stream_context_set_params\": [\n        \"bool stream_context_set_params(resource context|resource stream, array options)\",\n        \"Set parameters for a file context\"\n    ],\n    \"stream_copy_to_stream\": [\n        \"long stream_copy_to_stream(resource source, resource dest [, long maxlen [, long pos]])\",\n        \"Reads up to maxlen bytes from source stream and writes them to dest stream.\"\n    ],\n    \"stream_filter_append\": [\n        \"resource stream_filter_append(resource stream, string filtername[, int read_write[, string filterparams]])\",\n        \"Append a filter to a stream\"\n    ],\n    \"stream_filter_prepend\": [\n        \"resource stream_filter_prepend(resource stream, string filtername[, int read_write[, string filterparams]])\",\n        \"Prepend a filter to a stream\"\n    ],\n    \"stream_filter_register\": [\n        \"bool stream_filter_register(string filtername, string classname)\",\n        \"Registers a custom filter handler class\"\n    ],\n    \"stream_filter_remove\": [\n        \"bool stream_filter_remove(resource stream_filter)\",\n        \"Flushes any data in the filter's internal buffer, removes it from the chain, and frees the resource\"\n    ],\n    \"stream_get_contents\": [\n        \"string stream_get_contents(resource source [, long maxlen [, long offset]])\",\n        \"Reads all remaining bytes (or up to maxlen bytes) from a stream and returns them as a string.\"\n    ],\n    \"stream_get_filters\": [\n        \"array stream_get_filters(void)\",\n        \"Returns a list of registered filters\"\n    ],\n    \"stream_get_line\": [\n        \"string stream_get_line(resource stream, int maxlen [, string ending])\",\n        \"Read up to maxlen bytes from a stream or until the ending string is found\"\n    ],\n    \"stream_get_meta_data\": [\n        \"array stream_get_meta_data(resource fp)\",\n        \"Retrieves header/meta data from streams/file pointers\"\n    ],\n    \"stream_get_transports\": [\n        \"array stream_get_transports()\",\n        \"Retrieves list of registered socket transports\"\n    ],\n    \"stream_get_wrappers\": [\n        \"array stream_get_wrappers()\",\n        \"Retrieves list of registered stream wrappers\"\n    ],\n    \"stream_is_local\": [\n        \"bool stream_is_local(resource stream|string url)\",\n        \"\"\n    ],\n    \"stream_resolve_include_path\": [\n        \"string stream_resolve_include_path(string filename)\",\n        \"Determine what file will be opened by calls to fopen() with a relative path\"\n    ],\n    \"stream_select\": [\n        \"int stream_select(array &read_streams, array &write_streams, array &except_streams, int tv_sec[, int tv_usec])\",\n        \"Runs the select() system call on the sets of streams with a timeout specified by tv_sec and tv_usec\"\n    ],\n    \"stream_set_blocking\": [\n        \"bool stream_set_blocking(resource socket, int mode)\",\n        \"Set blocking/non-blocking mode on a socket or stream\"\n    ],\n    \"stream_set_timeout\": [\n        \"bool stream_set_timeout(resource stream, int seconds [, int microseconds])\",\n        \"Set timeout on stream read to seconds + microseonds\"\n    ],\n    \"stream_set_write_buffer\": [\n        \"int stream_set_write_buffer(resource fp, int buffer)\",\n        \"Set file write buffer\"\n    ],\n    \"stream_socket_accept\": [\n        \"resource stream_socket_accept(resource serverstream, [ double timeout [, string &peername ]])\",\n        \"Accept a client connection from a server socket\"\n    ],\n    \"stream_socket_client\": [\n        \"resource stream_socket_client(string remoteaddress [, long &errcode [, string &errstring [, double timeout [, long flags [, resource context]]]]])\",\n        \"Open a client connection to a remote address\"\n    ],\n    \"stream_socket_enable_crypto\": [\n        \"int stream_socket_enable_crypto(resource stream, bool enable [, int cryptokind [, resource sessionstream]])\",\n        \"Enable or disable a specific kind of crypto on the stream\"\n    ],\n    \"stream_socket_get_name\": [\n        \"string stream_socket_get_name(resource stream, bool want_peer)\",\n        \"Returns either the locally bound or remote name for a socket stream\"\n    ],\n    \"stream_socket_pair\": [\n        \"array stream_socket_pair(int domain, int type, int protocol)\",\n        \"Creates a pair of connected, indistinguishable socket streams\"\n    ],\n    \"stream_socket_recvfrom\": [\n        \"string stream_socket_recvfrom(resource stream, long amount [, long flags [, string &remote_addr]])\",\n        \"Receives data from a socket stream\"\n    ],\n    \"stream_socket_sendto\": [\n        \"long stream_socket_sendto(resouce stream, string data [, long flags [, string target_addr]])\",\n        \"Send data to a socket stream.  If target_addr is specified it must be in dotted quad (or [ipv6]) format\"\n    ],\n    \"stream_socket_server\": [\n        \"resource stream_socket_server(string localaddress [, long &errcode [, string &errstring [, long flags [, resource context]]]])\",\n        \"Create a server socket bound to localaddress\"\n    ],\n    \"stream_socket_shutdown\": [\n        \"int stream_socket_shutdown(resource stream, int how)\",\n        \"causes all or part of a full-duplex connection on the socket associated  with stream to be shut down.  If how is SHUT_RD,  further receptions will  be disallowed. If how is SHUT_WR, further transmissions will be disallowed.  If how is SHUT_RDWR,  further  receptions and transmissions will be  disallowed.\"\n    ],\n    \"stream_supports_lock\": [\n        \"bool stream_supports_lock(resource stream)\",\n        \"Tells wether the stream supports locking through flock().\"\n    ],\n    \"stream_wrapper_register\": [\n        \"bool stream_wrapper_register(string protocol, string classname[, integer flags])\",\n        \"Registers a custom URL protocol handler class\"\n    ],\n    \"stream_wrapper_restore\": [\n        \"bool stream_wrapper_restore(string protocol)\",\n        \"Restore the original protocol handler, overriding if necessary\"\n    ],\n    \"stream_wrapper_unregister\": [\n        \"bool stream_wrapper_unregister(string protocol)\",\n        \"Unregister a wrapper for the life of the current request.\"\n    ],\n    \"strftime\": [\n        \"string strftime(string format [, int timestamp])\",\n        \"Format a local time/date according to locale settings\"\n    ],\n    \"strip_tags\": [\n        \"string strip_tags(string str [, string allowable_tags])\",\n        \"Strips HTML and PHP tags from a string\"\n    ],\n    \"stripcslashes\": [\n        \"string stripcslashes(string str)\",\n        \"Strips backslashes from a string. Uses C-style conventions\"\n    ],\n    \"stripos\": [\n        \"int stripos(string haystack, string needle [, int offset])\",\n        \"Finds position of first occurrence of a string within another, case insensitive\"\n    ],\n    \"stripslashes\": [\n        \"string stripslashes(string str)\",\n        \"Strips backslashes from a string\"\n    ],\n    \"stristr\": [\n        \"string stristr(string haystack, string needle[, bool part])\",\n        \"Finds first occurrence of a string within another, case insensitive\"\n    ],\n    \"strlen\": [\n        \"int strlen(string str)\",\n        \"Get string length\"\n    ],\n    \"strnatcasecmp\": [\n        \"int strnatcasecmp(string s1, string s2)\",\n        \"Returns the result of case-insensitive string comparison using 'natural' algorithm\"\n    ],\n    \"strnatcmp\": [\n        \"int strnatcmp(string s1, string s2)\",\n        \"Returns the result of string comparison using 'natural' algorithm\"\n    ],\n    \"strncasecmp\": [\n        \"int strncasecmp(string str1, string str2, int len)\",\n        \"Binary safe string comparison\"\n    ],\n    \"strncmp\": [\n        \"int strncmp(string str1, string str2, int len)\",\n        \"Binary safe string comparison\"\n    ],\n    \"strpbrk\": [\n        \"array strpbrk(string haystack, string char_list)\",\n        \"Search a string for any of a set of characters\"\n    ],\n    \"strpos\": [\n        \"int strpos(string haystack, string needle [, int offset])\",\n        \"Finds position of first occurrence of a string within another\"\n    ],\n    \"strptime\": [\n        \"string strptime(string timestamp, string format)\",\n        \"Parse a time/date generated with strftime()\"\n    ],\n    \"strrchr\": [\n        \"string strrchr(string haystack, string needle)\",\n        \"Finds the last occurrence of a character in a string within another\"\n    ],\n    \"strrev\": [\n        \"string strrev(string str)\",\n        \"Reverse a string\"\n    ],\n    \"strripos\": [\n        \"int strripos(string haystack, string needle [, int offset])\",\n        \"Finds position of last occurrence of a string within another string\"\n    ],\n    \"strrpos\": [\n        \"int strrpos(string haystack, string needle [, int offset])\",\n        \"Finds position of last occurrence of a string within another string\"\n    ],\n    \"strspn\": [\n        \"int strspn(string str, string mask [, start [, len]])\",\n        \"Finds length of initial segment consisting entirely of characters found in mask. If start or/and length is provided works like strspn(substr($s,$start,$len),$good_chars)\"\n    ],\n    \"strstr\": [\n        \"string strstr(string haystack, string needle[, bool part])\",\n        \"Finds first occurrence of a string within another\"\n    ],\n    \"strtok\": [\n        \"string strtok([string str,] string token)\",\n        \"Tokenize a string\"\n    ],\n    \"strtolower\": [\n        \"string strtolower(string str)\",\n        \"Makes a string lowercase\"\n    ],\n    \"strtotime\": [\n        \"int strtotime(string time [, int now ])\",\n        \"Convert string representation of date and time to a timestamp\"\n    ],\n    \"strtoupper\": [\n        \"string strtoupper(string str)\",\n        \"Makes a string uppercase\"\n    ],\n    \"strtr\": [\n        \"string strtr(string str, string from[, string to])\",\n        \"Translates characters in str using given translation tables\"\n    ],\n    \"strval\": [\n        \"string strval(mixed var)\",\n        \"Get the string value of a variable\"\n    ],\n    \"substr\": [\n        \"string substr(string str, int start [, int length])\",\n        \"Returns part of a string\"\n    ],\n    \"substr_compare\": [\n        \"int substr_compare(string main_str, string str, int offset [, int length [, bool case_sensitivity]])\",\n        \"Binary safe optionally case insensitive comparison of 2 strings from an offset, up to length characters\"\n    ],\n    \"substr_count\": [\n        \"int substr_count(string haystack, string needle [, int offset [, int length]])\",\n        \"Returns the number of times a substring occurs in the string\"\n    ],\n    \"substr_replace\": [\n        \"mixed substr_replace(mixed str, mixed repl, mixed start [, mixed length])\",\n        \"Replaces part of a string with another string\"\n    ],\n    \"sybase_affected_rows\": [\n        \"int sybase_affected_rows([resource link_id])\",\n        \"Get number of affected rows in last query\"\n    ],\n    \"sybase_close\": [\n        \"bool sybase_close([resource link_id])\",\n        \"Close Sybase connection\"\n    ],\n    \"sybase_connect\": [\n        \"int sybase_connect([string host [, string user [, string password [, string charset [, string appname [, bool new]]]]]])\",\n        \"Open Sybase server connection\"\n    ],\n    \"sybase_data_seek\": [\n        \"bool sybase_data_seek(resource result, int offset)\",\n        \"Move internal row pointer\"\n    ],\n    \"sybase_deadlock_retry_count\": [\n        \"void sybase_deadlock_retry_count(int retry_count)\",\n        \"Sets deadlock retry count\"\n    ],\n    \"sybase_fetch_array\": [\n        \"array sybase_fetch_array(resource result)\",\n        \"Fetch row as array\"\n    ],\n    \"sybase_fetch_assoc\": [\n        \"array sybase_fetch_assoc(resource result)\",\n        \"Fetch row as array without numberic indices\"\n    ],\n    \"sybase_fetch_field\": [\n        \"object sybase_fetch_field(resource result [, int offset])\",\n        \"Get field information\"\n    ],\n    \"sybase_fetch_object\": [\n        \"object sybase_fetch_object(resource result [, mixed object])\",\n        \"Fetch row as object\"\n    ],\n    \"sybase_fetch_row\": [\n        \"array sybase_fetch_row(resource result)\",\n        \"Get row as enumerated array\"\n    ],\n    \"sybase_field_seek\": [\n        \"bool sybase_field_seek(resource result, int offset)\",\n        \"Set field offset\"\n    ],\n    \"sybase_free_result\": [\n        \"bool sybase_free_result(resource result)\",\n        \"Free result memory\"\n    ],\n    \"sybase_get_last_message\": [\n        \"string sybase_get_last_message(void)\",\n        \"Returns the last message from server (over min_message_severity)\"\n    ],\n    \"sybase_min_client_severity\": [\n        \"void sybase_min_client_severity(int severity)\",\n        \"Sets minimum client severity\"\n    ],\n    \"sybase_min_server_severity\": [\n        \"void sybase_min_server_severity(int severity)\",\n        \"Sets minimum server severity\"\n    ],\n    \"sybase_num_fields\": [\n        \"int sybase_num_fields(resource result)\",\n        \"Get number of fields in result\"\n    ],\n    \"sybase_num_rows\": [\n        \"int sybase_num_rows(resource result)\",\n        \"Get number of rows in result\"\n    ],\n    \"sybase_pconnect\": [\n        \"int sybase_pconnect([string host [, string user [, string password [, string charset [, string appname]]]]])\",\n        \"Open persistent Sybase connection\"\n    ],\n    \"sybase_query\": [\n        \"int sybase_query(string query [, resource link_id])\",\n        \"Send Sybase query\"\n    ],\n    \"sybase_result\": [\n        \"string sybase_result(resource result, int row, mixed field)\",\n        \"Get result data\"\n    ],\n    \"sybase_select_db\": [\n        \"bool sybase_select_db(string database [, resource link_id])\",\n        \"Select Sybase database\"\n    ],\n    \"sybase_set_message_handler\": [\n        \"bool sybase_set_message_handler(mixed error_func [, resource connection])\",\n        \"Set the error handler, to be called when a server message is raised.     If error_func is NULL the handler will be deleted\"\n    ],\n    \"sybase_unbuffered_query\": [\n        \"int sybase_unbuffered_query(string query [, resource link_id])\",\n        \"Send Sybase query\"\n    ],\n    \"symlink\": [\n        \"int symlink(string target, string link)\",\n        \"Create a symbolic link\"\n    ],\n    \"sys_get_temp_dir\": [\n        \"string sys_get_temp_dir()\",\n        \"Returns directory path used for temporary files\"\n    ],\n    \"sys_getloadavg\": [\n        \"array sys_getloadavg()\",\n        \"\"\n    ],\n    \"syslog\": [\n        \"bool syslog(int priority, string message)\",\n        \"Generate a system log message\"\n    ],\n    \"system\": [\n        \"int system(string command [, int &return_value])\",\n        \"Execute an external program and display output\"\n    ],\n    \"tan\": [\n        \"float tan(float number)\",\n        \"Returns the tangent of the number in radians\"\n    ],\n    \"tanh\": [\n        \"float tanh(float number)\",\n        \"Returns the hyperbolic tangent of the number, defined as sinh(number)/cosh(number)\"\n    ],\n    \"tempnam\": [\n        \"string tempnam(string dir, string prefix)\",\n        \"Create a unique filename in a directory\"\n    ],\n    \"textdomain\": [\n        \"string textdomain(string domain)\",\n        \"Set the textdomain to \\\"domain\\\". Returns the current domain\"\n    ],\n    \"tidy_access_count\": [\n        \"int tidy_access_count()\",\n        \"Returns the Number of Tidy accessibility warnings encountered for specified document.\"\n    ],\n    \"tidy_clean_repair\": [\n        \"boolean tidy_clean_repair()\",\n        \"Execute configured cleanup and repair operations on parsed markup\"\n    ],\n    \"tidy_config_count\": [\n        \"int tidy_config_count()\",\n        \"Returns the Number of Tidy configuration errors encountered for specified document.\"\n    ],\n    \"tidy_diagnose\": [\n        \"boolean tidy_diagnose()\",\n        \"Run configured diagnostics on parsed and repaired markup.\"\n    ],\n    \"tidy_error_count\": [\n        \"int tidy_error_count()\",\n        \"Returns the Number of Tidy errors encountered for specified document.\"\n    ],\n    \"tidy_get_body\": [\n        \"TidyNode tidy_get_body(resource tidy)\",\n        \"Returns a TidyNode Object starting from the <BODY> tag of the tidy parse tree\"\n    ],\n    \"tidy_get_config\": [\n        \"array tidy_get_config()\",\n        \"Get current Tidy configuarion\"\n    ],\n    \"tidy_get_error_buffer\": [\n        \"string tidy_get_error_buffer([boolean detailed])\",\n        \"Return warnings and errors which occured parsing the specified document\"\n    ],\n    \"tidy_get_head\": [\n        \"TidyNode tidy_get_head()\",\n        \"Returns a TidyNode Object starting from the <HEAD> tag of the tidy parse tree\"\n    ],\n    \"tidy_get_html\": [\n        \"TidyNode tidy_get_html()\",\n        \"Returns a TidyNode Object starting from the <HTML> tag of the tidy parse tree\"\n    ],\n    \"tidy_get_html_ver\": [\n        \"int tidy_get_html_ver()\",\n        \"Get the Detected HTML version for the specified document.\"\n    ],\n    \"tidy_get_opt_doc\": [\n        \"string tidy_get_opt_doc(tidy resource, string optname)\",\n        \"Returns the documentation for the given option name\"\n    ],\n    \"tidy_get_output\": [\n        \"string tidy_get_output()\",\n        \"Return a string representing the parsed tidy markup\"\n    ],\n    \"tidy_get_release\": [\n        \"string tidy_get_release()\",\n        \"Get release date (version) for Tidy library\"\n    ],\n    \"tidy_get_root\": [\n        \"TidyNode tidy_get_root()\",\n        \"Returns a TidyNode Object representing the root of the tidy parse tree\"\n    ],\n    \"tidy_get_status\": [\n        \"int tidy_get_status()\",\n        \"Get status of specfied document.\"\n    ],\n    \"tidy_getopt\": [\n        \"mixed tidy_getopt(string option)\",\n        \"Returns the value of the specified configuration option for the tidy document.\"\n    ],\n    \"tidy_is_xhtml\": [\n        \"boolean tidy_is_xhtml()\",\n        \"Indicates if the document is a XHTML document.\"\n    ],\n    \"tidy_is_xml\": [\n        \"boolean tidy_is_xml()\",\n        \"Indicates if the document is a generic (non HTML/XHTML) XML document.\"\n    ],\n    \"tidy_parse_file\": [\n        \"boolean tidy_parse_file(string file [, mixed config_options [, string encoding [, bool use_include_path]]])\",\n        \"Parse markup in file or URI\"\n    ],\n    \"tidy_parse_string\": [\n        \"bool tidy_parse_string(string input [, mixed config_options [, string encoding]])\",\n        \"Parse a document stored in a string\"\n    ],\n    \"tidy_repair_file\": [\n        \"boolean tidy_repair_file(string filename [, mixed config_file [, string encoding [, bool use_include_path]]])\",\n        \"Repair a file using an optionally provided configuration file\"\n    ],\n    \"tidy_repair_string\": [\n        \"boolean tidy_repair_string(string data [, mixed config_file [, string encoding]])\",\n        \"Repair a string using an optionally provided configuration file\"\n    ],\n    \"tidy_warning_count\": [\n        \"int tidy_warning_count()\",\n        \"Returns the Number of Tidy warnings encountered for specified document.\"\n    ],\n    \"time\": [\n        \"int time(void)\",\n        \"Return current UNIX timestamp\"\n    ],\n    \"time_nanosleep\": [\n        \"mixed time_nanosleep(long seconds, long nanoseconds)\",\n        \"Delay for a number of seconds and nano seconds\"\n    ],\n    \"time_sleep_until\": [\n        \"mixed time_sleep_until(float timestamp)\",\n        \"Make the script sleep until the specified time\"\n    ],\n    \"timezone_abbreviations_list\": [\n        \"array timezone_abbreviations_list()\",\n        \"Returns associative array containing dst, offset and the timezone name\"\n    ],\n    \"timezone_identifiers_list\": [\n        \"array timezone_identifiers_list([long what[, string country]])\",\n        \"Returns numerically index array with all timezone identifiers.\"\n    ],\n    \"timezone_location_get\": [\n        \"array timezone_location_get()\",\n        \"Returns location information for a timezone, including country code, latitude/longitude and comments\"\n    ],\n    \"timezone_name_from_abbr\": [\n        \"string timezone_name_from_abbr(string abbr[, long gmtOffset[, long isdst]])\",\n        \"Returns the timezone name from abbrevation\"\n    ],\n    \"timezone_name_get\": [\n        \"string timezone_name_get(DateTimeZone object)\",\n        \"Returns the name of the timezone.\"\n    ],\n    \"timezone_offset_get\": [\n        \"long timezone_offset_get(DateTimeZone object, DateTime object)\",\n        \"Returns the timezone offset.\"\n    ],\n    \"timezone_open\": [\n        \"DateTimeZone timezone_open(string timezone)\",\n        \"Returns new DateTimeZone object\"\n    ],\n    \"timezone_transitions_get\": [\n        \"array timezone_transitions_get(DateTimeZone object [, long timestamp_begin [, long timestamp_end ]])\",\n        \"Returns numerically indexed array containing associative array for all transitions in the specified range for the timezone.\"\n    ],\n    \"timezone_version_get\": [\n        \"array timezone_version_get()\",\n        \"Returns the Olson database version number.\"\n    ],\n    \"tmpfile\": [\n        \"resource tmpfile(void)\",\n        \"Create a temporary file that will be deleted automatically after use\"\n    ],\n    \"token_get_all\": [\n        \"array token_get_all(string source)\",\n        \"\"\n    ],\n    \"token_name\": [\n        \"string token_name(int type)\",\n        \"\"\n    ],\n    \"touch\": [\n        \"bool touch(string filename [, int time [, int atime]])\",\n        \"Set modification time of file\"\n    ],\n    \"trigger_error\": [\n        \"void trigger_error(string messsage [, int error_type])\",\n        \"Generates a user-level error/warning/notice message\"\n    ],\n    \"trim\": [\n        \"string trim(string str [, string character_mask])\",\n        \"Strips whitespace from the beginning and end of a string\"\n    ],\n    \"uasort\": [\n        \"bool uasort(array array_arg, string cmp_function)\",\n        \"Sort an array with a user-defined comparison function and maintain index association\"\n    ],\n    \"ucfirst\": [\n        \"string ucfirst(string str)\",\n        \"Make a string's first character lowercase\"\n    ],\n    \"ucwords\": [\n        \"string ucwords(string str)\",\n        \"Uppercase the first character of every word in a string\"\n    ],\n    \"uksort\": [\n        \"bool uksort(array array_arg, string cmp_function)\",\n        \"Sort an array by keys using a user-defined comparison function\"\n    ],\n    \"umask\": [\n        \"int umask([int mask])\",\n        \"Return or change the umask\"\n    ],\n    \"uniqid\": [\n        \"string uniqid([string prefix [, bool more_entropy]])\",\n        \"Generates a unique ID\"\n    ],\n    \"unixtojd\": [\n        \"int unixtojd([int timestamp])\",\n        \"Convert UNIX timestamp to Julian Day\"\n    ],\n    \"unlink\": [\n        \"bool unlink(string filename[, context context])\",\n        \"Delete a file\"\n    ],\n    \"unpack\": [\n        \"array unpack(string format, string input)\",\n        \"Unpack binary string into named array elements according to format argument\"\n    ],\n    \"unregister_tick_function\": [\n        \"void unregister_tick_function(string function_name)\",\n        \"Unregisters a tick callback function\"\n    ],\n    \"unserialize\": [\n        \"mixed unserialize(string variable_representation)\",\n        \"Takes a string representation of variable and recreates it\"\n    ],\n    \"unset\": [\n        \"void unset (mixed var [, mixed var])\",\n        \"Unset a given variable\"\n    ],\n    \"urldecode\": [\n        \"string urldecode(string str)\",\n        \"Decodes URL-encoded string\"\n    ],\n    \"urlencode\": [\n        \"string urlencode(string str)\",\n        \"URL-encodes string\"\n    ],\n    \"usleep\": [\n        \"void usleep(int micro_seconds)\",\n        \"Delay for a given number of micro seconds\"\n    ],\n    \"usort\": [\n        \"bool usort(array array_arg, string cmp_function)\",\n        \"Sort an array by values using a user-defined comparison function\"\n    ],\n    \"utf8_decode\": [\n        \"string utf8_decode(string data)\",\n        \"Converts a UTF-8 encoded string to ISO-8859-1\"\n    ],\n    \"utf8_encode\": [\n        \"string utf8_encode(string data)\",\n        \"Encodes an ISO-8859-1 string to UTF-8\"\n    ],\n    \"var_dump\": [\n        \"void var_dump(mixed var)\",\n        \"Dumps a string representation of variable to output\"\n    ],\n    \"var_export\": [\n        \"mixed var_export(mixed var [, bool return])\",\n        \"Outputs or returns a string representation of a variable\"\n    ],\n    \"variant_abs\": [\n        \"mixed variant_abs(mixed left)\",\n        \"Returns the absolute value of a variant\"\n    ],\n    \"variant_add\": [\n        \"mixed variant_add(mixed left, mixed right)\",\n        \"\\\"Adds\\\" two variant values together and returns the result\"\n    ],\n    \"variant_and\": [\n        \"mixed variant_and(mixed left, mixed right)\",\n        \"performs a bitwise AND operation between two variants and returns the result\"\n    ],\n    \"variant_cast\": [\n        \"object variant_cast(object variant, int type)\",\n        \"Convert a variant into a new variant object of another type\"\n    ],\n    \"variant_cat\": [\n        \"mixed variant_cat(mixed left, mixed right)\",\n        \"concatenates two variant values together and returns the result\"\n    ],\n    \"variant_cmp\": [\n        \"int variant_cmp(mixed left, mixed right [, int lcid [, int flags]])\",\n        \"Compares two variants\"\n    ],\n    \"variant_date_from_timestamp\": [\n        \"object variant_date_from_timestamp(int timestamp)\",\n        \"Returns a variant date representation of a unix timestamp\"\n    ],\n    \"variant_date_to_timestamp\": [\n        \"int variant_date_to_timestamp(object variant)\",\n        \"Converts a variant date/time value to unix timestamp\"\n    ],\n    \"variant_div\": [\n        \"mixed variant_div(mixed left, mixed right)\",\n        \"Returns the result from dividing two variants\"\n    ],\n    \"variant_eqv\": [\n        \"mixed variant_eqv(mixed left, mixed right)\",\n        \"Performs a bitwise equivalence on two variants\"\n    ],\n    \"variant_fix\": [\n        \"mixed variant_fix(mixed left)\",\n        \"Returns the integer part ? of a variant\"\n    ],\n    \"variant_get_type\": [\n        \"int variant_get_type(object variant)\",\n        \"Returns the VT_XXX type code for a variant\"\n    ],\n    \"variant_idiv\": [\n        \"mixed variant_idiv(mixed left, mixed right)\",\n        \"Converts variants to integers and then returns the result from dividing them\"\n    ],\n    \"variant_imp\": [\n        \"mixed variant_imp(mixed left, mixed right)\",\n        \"Performs a bitwise implication on two variants\"\n    ],\n    \"variant_int\": [\n        \"mixed variant_int(mixed left)\",\n        \"Returns the integer portion of a variant\"\n    ],\n    \"variant_mod\": [\n        \"mixed variant_mod(mixed left, mixed right)\",\n        \"Divides two variants and returns only the remainder\"\n    ],\n    \"variant_mul\": [\n        \"mixed variant_mul(mixed left, mixed right)\",\n        \"multiplies the values of the two variants and returns the result\"\n    ],\n    \"variant_neg\": [\n        \"mixed variant_neg(mixed left)\",\n        \"Performs logical negation on a variant\"\n    ],\n    \"variant_not\": [\n        \"mixed variant_not(mixed left)\",\n        \"Performs bitwise not negation on a variant\"\n    ],\n    \"variant_or\": [\n        \"mixed variant_or(mixed left, mixed right)\",\n        \"Performs a logical disjunction on two variants\"\n    ],\n    \"variant_pow\": [\n        \"mixed variant_pow(mixed left, mixed right)\",\n        \"Returns the result of performing the power function with two variants\"\n    ],\n    \"variant_round\": [\n        \"mixed variant_round(mixed left, int decimals)\",\n        \"Rounds a variant to the specified number of decimal places\"\n    ],\n    \"variant_set\": [\n        \"void variant_set(object variant, mixed value)\",\n        \"Assigns a new value for a variant object\"\n    ],\n    \"variant_set_type\": [\n        \"void variant_set_type(object variant, int type)\",\n        \"Convert a variant into another type.  Variant is modified \\\"in-place\\\"\"\n    ],\n    \"variant_sub\": [\n        \"mixed variant_sub(mixed left, mixed right)\",\n        \"subtracts the value of the right variant from the left variant value and returns the result\"\n    ],\n    \"variant_xor\": [\n        \"mixed variant_xor(mixed left, mixed right)\",\n        \"Performs a logical exclusion on two variants\"\n    ],\n    \"version_compare\": [\n        \"int version_compare(string ver1, string ver2 [, string oper])\",\n        \"Compares two \\\"PHP-standardized\\\" version number strings\"\n    ],\n    \"vfprintf\": [\n        \"int vfprintf(resource stream, string format, array args)\",\n        \"Output a formatted string into a stream\"\n    ],\n    \"virtual\": [\n        \"bool virtual(string filename)\",\n        \"Perform an Apache sub-request\"\n    ],\n    \"vprintf\": [\n        \"int vprintf(string format, array args)\",\n        \"Output a formatted string\"\n    ],\n    \"vsprintf\": [\n        \"string vsprintf(string format, array args)\",\n        \"Return a formatted string\"\n    ],\n    \"wddx_add_vars\": [\n        \"int wddx_add_vars(resource packet_id,  mixed var_names [, mixed ...])\",\n        \"Serializes given variables and adds them to packet given by packet_id\"\n    ],\n    \"wddx_deserialize\": [\n        \"mixed wddx_deserialize(mixed packet)\",\n        \"Deserializes given packet and returns a PHP value\"\n    ],\n    \"wddx_packet_end\": [\n        \"string wddx_packet_end(resource packet_id)\",\n        \"Ends specified WDDX packet and returns the string containing the packet\"\n    ],\n    \"wddx_packet_start\": [\n        \"resource wddx_packet_start([string comment])\",\n        \"Starts a WDDX packet with optional comment and returns the packet id\"\n    ],\n    \"wddx_serialize_value\": [\n        \"string wddx_serialize_value(mixed var [, string comment])\",\n        \"Creates a new packet and serializes the given value\"\n    ],\n    \"wddx_serialize_vars\": [\n        \"string wddx_serialize_vars(mixed var_name [, mixed ...])\",\n        \"Creates a new packet and serializes given variables into a struct\"\n    ],\n    \"wordwrap\": [\n        \"string wordwrap(string str [, int width [, string break [, boolean cut]]])\",\n        \"Wraps buffer to selected number of characters using string break char\"\n    ],\n    \"xml_error_string\": [\n        \"string xml_error_string(int code)\",\n        \"Get XML parser error string\"\n    ],\n    \"xml_get_current_byte_index\": [\n        \"int xml_get_current_byte_index(resource parser)\",\n        \"Get current byte index for an XML parser\"\n    ],\n    \"xml_get_current_column_number\": [\n        \"int xml_get_current_column_number(resource parser)\",\n        \"Get current column number for an XML parser\"\n    ],\n    \"xml_get_current_line_number\": [\n        \"int xml_get_current_line_number(resource parser)\",\n        \"Get current line number for an XML parser\"\n    ],\n    \"xml_get_error_code\": [\n        \"int xml_get_error_code(resource parser)\",\n        \"Get XML parser error code\"\n    ],\n    \"xml_parse\": [\n        \"int xml_parse(resource parser, string data [, int isFinal])\",\n        \"Start parsing an XML document\"\n    ],\n    \"xml_parse_into_struct\": [\n        \"int xml_parse_into_struct(resource parser, string data, array &values [, array &index ])\",\n        \"Parsing a XML document\"\n    ],\n    \"xml_parser_create\": [\n        \"resource xml_parser_create([string encoding])\",\n        \"Create an XML parser\"\n    ],\n    \"xml_parser_create_ns\": [\n        \"resource xml_parser_create_ns([string encoding [, string sep]])\",\n        \"Create an XML parser\"\n    ],\n    \"xml_parser_free\": [\n        \"int xml_parser_free(resource parser)\",\n        \"Free an XML parser\"\n    ],\n    \"xml_parser_get_option\": [\n        \"int xml_parser_get_option(resource parser, int option)\",\n        \"Get options from an XML parser\"\n    ],\n    \"xml_parser_set_option\": [\n        \"int xml_parser_set_option(resource parser, int option, mixed value)\",\n        \"Set options in an XML parser\"\n    ],\n    \"xml_set_character_data_handler\": [\n        \"int xml_set_character_data_handler(resource parser, string hdl)\",\n        \"Set up character data handler\"\n    ],\n    \"xml_set_default_handler\": [\n        \"int xml_set_default_handler(resource parser, string hdl)\",\n        \"Set up default handler\"\n    ],\n    \"xml_set_element_handler\": [\n        \"int xml_set_element_handler(resource parser, string shdl, string ehdl)\",\n        \"Set up start and end element handlers\"\n    ],\n    \"xml_set_end_namespace_decl_handler\": [\n        \"int xml_set_end_namespace_decl_handler(resource parser, string hdl)\",\n        \"Set up character data handler\"\n    ],\n    \"xml_set_external_entity_ref_handler\": [\n        \"int xml_set_external_entity_ref_handler(resource parser, string hdl)\",\n        \"Set up external entity reference handler\"\n    ],\n    \"xml_set_notation_decl_handler\": [\n        \"int xml_set_notation_decl_handler(resource parser, string hdl)\",\n        \"Set up notation declaration handler\"\n    ],\n    \"xml_set_object\": [\n        \"int xml_set_object(resource parser, object &obj)\",\n        \"Set up object which should be used for callbacks\"\n    ],\n    \"xml_set_processing_instruction_handler\": [\n        \"int xml_set_processing_instruction_handler(resource parser, string hdl)\",\n        \"Set up processing instruction (PI) handler\"\n    ],\n    \"xml_set_start_namespace_decl_handler\": [\n        \"int xml_set_start_namespace_decl_handler(resource parser, string hdl)\",\n        \"Set up character data handler\"\n    ],\n    \"xml_set_unparsed_entity_decl_handler\": [\n        \"int xml_set_unparsed_entity_decl_handler(resource parser, string hdl)\",\n        \"Set up unparsed entity declaration handler\"\n    ],\n    \"xmlrpc_decode\": [\n        \"array xmlrpc_decode(string xml [, string encoding])\",\n        \"Decodes XML into native PHP types\"\n    ],\n    \"xmlrpc_decode_request\": [\n        \"array xmlrpc_decode_request(string xml, string& method [, string encoding])\",\n        \"Decodes XML into native PHP types\"\n    ],\n    \"xmlrpc_encode\": [\n        \"string xmlrpc_encode(mixed value)\",\n        \"Generates XML for a PHP value\"\n    ],\n    \"xmlrpc_encode_request\": [\n        \"string xmlrpc_encode_request(string method, mixed params [, array output_options])\",\n        \"Generates XML for a method request\"\n    ],\n    \"xmlrpc_get_type\": [\n        \"string xmlrpc_get_type(mixed value)\",\n        \"Gets xmlrpc type for a PHP value. Especially useful for base64 and datetime strings\"\n    ],\n    \"xmlrpc_is_fault\": [\n        \"bool xmlrpc_is_fault(array)\",\n        \"Determines if an array value represents an XMLRPC fault.\"\n    ],\n    \"xmlrpc_parse_method_descriptions\": [\n        \"array xmlrpc_parse_method_descriptions(string xml)\",\n        \"Decodes XML into a list of method descriptions\"\n    ],\n    \"xmlrpc_server_add_introspection_data\": [\n        \"int xmlrpc_server_add_introspection_data(resource server, array desc)\",\n        \"Adds introspection documentation\"\n    ],\n    \"xmlrpc_server_call_method\": [\n        \"mixed xmlrpc_server_call_method(resource server, string xml, mixed user_data [, array output_options])\",\n        \"Parses XML requests and call methods\"\n    ],\n    \"xmlrpc_server_create\": [\n        \"resource xmlrpc_server_create(void)\",\n        \"Creates an xmlrpc server\"\n    ],\n    \"xmlrpc_server_destroy\": [\n        \"int xmlrpc_server_destroy(resource server)\",\n        \"Destroys server resources\"\n    ],\n    \"xmlrpc_server_register_introspection_callback\": [\n        \"bool xmlrpc_server_register_introspection_callback(resource server, string function)\",\n        \"Register a PHP function to generate documentation\"\n    ],\n    \"xmlrpc_server_register_method\": [\n        \"bool xmlrpc_server_register_method(resource server, string method_name, string function)\",\n        \"Register a PHP function to handle method matching method_name\"\n    ],\n    \"xmlrpc_set_type\": [\n        \"bool xmlrpc_set_type(string value, string type)\",\n        \"Sets xmlrpc type, base64 or datetime, for a PHP string value\"\n    ],\n    \"xmlwriter_end_attribute\": [\n        \"bool xmlwriter_end_attribute(resource xmlwriter)\",\n        \"End attribute - returns FALSE on error\"\n    ],\n    \"xmlwriter_end_cdata\": [\n        \"bool xmlwriter_end_cdata(resource xmlwriter)\",\n        \"End current CDATA - returns FALSE on error\"\n    ],\n    \"xmlwriter_end_comment\": [\n        \"bool xmlwriter_end_comment(resource xmlwriter)\",\n        \"Create end comment - returns FALSE on error\"\n    ],\n    \"xmlwriter_end_document\": [\n        \"bool xmlwriter_end_document(resource xmlwriter)\",\n        \"End current document - returns FALSE on error\"\n    ],\n    \"xmlwriter_end_dtd\": [\n        \"bool xmlwriter_end_dtd(resource xmlwriter)\",\n        \"End current DTD - returns FALSE on error\"\n    ],\n    \"xmlwriter_end_dtd_attlist\": [\n        \"bool xmlwriter_end_dtd_attlist(resource xmlwriter)\",\n        \"End current DTD AttList - returns FALSE on error\"\n    ],\n    \"xmlwriter_end_dtd_element\": [\n        \"bool xmlwriter_end_dtd_element(resource xmlwriter)\",\n        \"End current DTD element - returns FALSE on error\"\n    ],\n    \"xmlwriter_end_dtd_entity\": [\n        \"bool xmlwriter_end_dtd_entity(resource xmlwriter)\",\n        \"End current DTD Entity - returns FALSE on error\"\n    ],\n    \"xmlwriter_end_element\": [\n        \"bool xmlwriter_end_element(resource xmlwriter)\",\n        \"End current element - returns FALSE on error\"\n    ],\n    \"xmlwriter_end_pi\": [\n        \"bool xmlwriter_end_pi(resource xmlwriter)\",\n        \"End current PI - returns FALSE on error\"\n    ],\n    \"xmlwriter_flush\": [\n        \"mixed xmlwriter_flush(resource xmlwriter [,bool empty])\",\n        \"Output current buffer\"\n    ],\n    \"xmlwriter_full_end_element\": [\n        \"bool xmlwriter_full_end_element(resource xmlwriter)\",\n        \"End current element - returns FALSE on error\"\n    ],\n    \"xmlwriter_open_memory\": [\n        \"resource xmlwriter_open_memory()\",\n        \"Create new xmlwriter using memory for string output\"\n    ],\n    \"xmlwriter_open_uri\": [\n        \"resource xmlwriter_open_uri(resource xmlwriter, string source)\",\n        \"Create new xmlwriter using source uri for output\"\n    ],\n    \"xmlwriter_output_memory\": [\n        \"string xmlwriter_output_memory(resource xmlwriter [,bool flush])\",\n        \"Output current buffer as string\"\n    ],\n    \"xmlwriter_set_indent\": [\n        \"bool xmlwriter_set_indent(resource xmlwriter, bool indent)\",\n        \"Toggle indentation on/off - returns FALSE on error\"\n    ],\n    \"xmlwriter_set_indent_string\": [\n        \"bool xmlwriter_set_indent_string(resource xmlwriter, string indentString)\",\n        \"Set string used for indenting - returns FALSE on error\"\n    ],\n    \"xmlwriter_start_attribute\": [\n        \"bool xmlwriter_start_attribute(resource xmlwriter, string name)\",\n        \"Create start attribute - returns FALSE on error\"\n    ],\n    \"xmlwriter_start_attribute_ns\": [\n        \"bool xmlwriter_start_attribute_ns(resource xmlwriter, string prefix, string name, string uri)\",\n        \"Create start namespaced attribute - returns FALSE on error\"\n    ],\n    \"xmlwriter_start_cdata\": [\n        \"bool xmlwriter_start_cdata(resource xmlwriter)\",\n        \"Create start CDATA tag - returns FALSE on error\"\n    ],\n    \"xmlwriter_start_comment\": [\n        \"bool xmlwriter_start_comment(resource xmlwriter)\",\n        \"Create start comment - returns FALSE on error\"\n    ],\n    \"xmlwriter_start_document\": [\n        \"bool xmlwriter_start_document(resource xmlwriter, string version, string encoding, string standalone)\",\n        \"Create document tag - returns FALSE on error\"\n    ],\n    \"xmlwriter_start_dtd\": [\n        \"bool xmlwriter_start_dtd(resource xmlwriter, string name, string pubid, string sysid)\",\n        \"Create start DTD tag - returns FALSE on error\"\n    ],\n    \"xmlwriter_start_dtd_attlist\": [\n        \"bool xmlwriter_start_dtd_attlist(resource xmlwriter, string name)\",\n        \"Create start DTD AttList - returns FALSE on error\"\n    ],\n    \"xmlwriter_start_dtd_element\": [\n        \"bool xmlwriter_start_dtd_element(resource xmlwriter, string name)\",\n        \"Create start DTD element - returns FALSE on error\"\n    ],\n    \"xmlwriter_start_dtd_entity\": [\n        \"bool xmlwriter_start_dtd_entity(resource xmlwriter, string name, bool isparam)\",\n        \"Create start DTD Entity - returns FALSE on error\"\n    ],\n    \"xmlwriter_start_element\": [\n        \"bool xmlwriter_start_element(resource xmlwriter, string name)\",\n        \"Create start element tag - returns FALSE on error\"\n    ],\n    \"xmlwriter_start_element_ns\": [\n        \"bool xmlwriter_start_element_ns(resource xmlwriter, string prefix, string name, string uri)\",\n        \"Create start namespaced element tag - returns FALSE on error\"\n    ],\n    \"xmlwriter_start_pi\": [\n        \"bool xmlwriter_start_pi(resource xmlwriter, string target)\",\n        \"Create start PI tag - returns FALSE on error\"\n    ],\n    \"xmlwriter_text\": [\n        \"bool xmlwriter_text(resource xmlwriter, string content)\",\n        \"Write text - returns FALSE on error\"\n    ],\n    \"xmlwriter_write_attribute\": [\n        \"bool xmlwriter_write_attribute(resource xmlwriter, string name, string content)\",\n        \"Write full attribute - returns FALSE on error\"\n    ],\n    \"xmlwriter_write_attribute_ns\": [\n        \"bool xmlwriter_write_attribute_ns(resource xmlwriter, string prefix, string name, string uri, string content)\",\n        \"Write full namespaced attribute - returns FALSE on error\"\n    ],\n    \"xmlwriter_write_cdata\": [\n        \"bool xmlwriter_write_cdata(resource xmlwriter, string content)\",\n        \"Write full CDATA tag - returns FALSE on error\"\n    ],\n    \"xmlwriter_write_comment\": [\n        \"bool xmlwriter_write_comment(resource xmlwriter, string content)\",\n        \"Write full comment tag - returns FALSE on error\"\n    ],\n    \"xmlwriter_write_dtd\": [\n        \"bool xmlwriter_write_dtd(resource xmlwriter, string name, string pubid, string sysid, string subset)\",\n        \"Write full DTD tag - returns FALSE on error\"\n    ],\n    \"xmlwriter_write_dtd_attlist\": [\n        \"bool xmlwriter_write_dtd_attlist(resource xmlwriter, string name, string content)\",\n        \"Write full DTD AttList tag - returns FALSE on error\"\n    ],\n    \"xmlwriter_write_dtd_element\": [\n        \"bool xmlwriter_write_dtd_element(resource xmlwriter, string name, string content)\",\n        \"Write full DTD element tag - returns FALSE on error\"\n    ],\n    \"xmlwriter_write_dtd_entity\": [\n        \"bool xmlwriter_write_dtd_entity(resource xmlwriter, string name, string content [, int pe [, string pubid [, string sysid [, string ndataid]]]])\",\n        \"Write full DTD Entity tag - returns FALSE on error\"\n    ],\n    \"xmlwriter_write_element\": [\n        \"bool xmlwriter_write_element(resource xmlwriter, string name[, string content])\",\n        \"Write full element tag - returns FALSE on error\"\n    ],\n    \"xmlwriter_write_element_ns\": [\n        \"bool xmlwriter_write_element_ns(resource xmlwriter, string prefix, string name, string uri[, string content])\",\n        \"Write full namesapced element tag - returns FALSE on error\"\n    ],\n    \"xmlwriter_write_pi\": [\n        \"bool xmlwriter_write_pi(resource xmlwriter, string target, string content)\",\n        \"Write full PI tag - returns FALSE on error\"\n    ],\n    \"xmlwriter_write_raw\": [\n        \"bool xmlwriter_write_raw(resource xmlwriter, string content)\",\n        \"Write text - returns FALSE on error\"\n    ],\n    \"xsl_xsltprocessor_get_parameter\": [\n        \"string xsl_xsltprocessor_get_parameter(string namespace, string name);\",\n        \"\"\n    ],\n    \"xsl_xsltprocessor_has_exslt_support\": [\n        \"bool xsl_xsltprocessor_has_exslt_support();\",\n        \"\"\n    ],\n    \"xsl_xsltprocessor_import_stylesheet\": [\n        \"void xsl_xsltprocessor_import_stylesheet(domdocument doc);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html# Since:\"\n    ],\n    \"xsl_xsltprocessor_register_php_functions\": [\n        \"void xsl_xsltprocessor_register_php_functions([mixed $restrict]);\",\n        \"\"\n    ],\n    \"xsl_xsltprocessor_remove_parameter\": [\n        \"bool xsl_xsltprocessor_remove_parameter(string namespace, string name);\",\n        \"\"\n    ],\n    \"xsl_xsltprocessor_set_parameter\": [\n        \"bool xsl_xsltprocessor_set_parameter(string namespace, mixed name [, string value]);\",\n        \"\"\n    ],\n    \"xsl_xsltprocessor_set_profiling\": [\n        \"bool xsl_xsltprocessor_set_profiling(string filename) */\",\n        \"PHP_FUNCTION(xsl_xsltprocessor_set_profiling) {  zval *id;  xsl_object *intern;  char *filename = NULL;  int filename_len;  DOM_GET_THIS(id);   if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, \\\"s!\\\", &filename, &filename_len) == SUCCESS) {   intern = (xsl_object *)zend_object_store_get_object(id TSRMLS_CC);   if (intern->profiling) {    efree(intern->profiling);   }   if (filename != NULL) {    intern->profiling = estrndup(filename,filename_len);   } else {    intern->profiling = NULL;   }   RETURN_TRUE;  } else {   WRONG_PARAM_COUNT;  } } /* }}} end xsl_xsltprocessor_set_profiling\"\n    ],\n    \"xsl_xsltprocessor_transform_to_doc\": [\n        \"domdocument xsl_xsltprocessor_transform_to_doc(domnode doc);\",\n        \"URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html# Since:\"\n    ],\n    \"xsl_xsltprocessor_transform_to_uri\": [\n        \"int xsl_xsltprocessor_transform_to_uri(domdocument doc, string uri);\",\n        \"\"\n    ],\n    \"xsl_xsltprocessor_transform_to_xml\": [\n        \"string xsl_xsltprocessor_transform_to_xml(domdocument doc);\",\n        \"\"\n    ],\n    \"zend_logo_guid\": [\n        \"string zend_logo_guid(void)\",\n        \"Return the special ID used to request the Zend logo in phpinfo screens\"\n    ],\n    \"zend_version\": [\n        \"string zend_version(void)\",\n        \"Get the version of the Zend Engine\"\n    ],\n    \"zip_close\": [\n        \"void zip_close(resource zip)\",\n        \"Close a Zip archive\"\n    ],\n    \"zip_entry_close\": [\n        \"void zip_entry_close(resource zip_ent)\",\n        \"Close a zip entry\"\n    ],\n    \"zip_entry_compressedsize\": [\n        \"int zip_entry_compressedsize(resource zip_entry)\",\n        \"Return the compressed size of a ZZip entry\"\n    ],\n    \"zip_entry_compressionmethod\": [\n        \"string zip_entry_compressionmethod(resource zip_entry)\",\n        \"Return a string containing the compression method used on a particular entry\"\n    ],\n    \"zip_entry_filesize\": [\n        \"int zip_entry_filesize(resource zip_entry)\",\n        \"Return the actual filesize of a ZZip entry\"\n    ],\n    \"zip_entry_name\": [\n        \"string zip_entry_name(resource zip_entry)\",\n        \"Return the name given a ZZip entry\"\n    ],\n    \"zip_entry_open\": [\n        \"bool zip_entry_open(resource zip_dp, resource zip_entry [, string mode])\",\n        \"Open a Zip File, pointed by the resource entry\"\n    ],\n    \"zip_entry_read\": [\n        \"mixed zip_entry_read(resource zip_entry [, int len])\",\n        \"Read from an open directory entry\"\n    ],\n    \"zip_open\": [\n        \"resource zip_open(string filename)\",\n        \"Create new zip using source uri for output\"\n    ],\n    \"zip_read\": [\n        \"resource zip_read(resource zip)\",\n        \"Returns the next file in the archive\"\n    ],\n    \"zlib_get_coding_type\": [\n        \"string zlib_get_coding_type(void)\",\n        \"Returns the coding type used for output compression\"\n    ]\n};\n\nvar variableMap = {\n    \"$_COOKIE\": {\n        type: \"array\"\n    },\n    \"$_ENV\": {\n        type: \"array\"\n    },\n    \"$_FILES\": {\n        type: \"array\"\n    },\n    \"$_GET\": {\n        type: \"array\"\n    },\n    \"$_POST\": {\n        type: \"array\"\n    },\n    \"$_REQUEST\": {\n        type: \"array\"\n    },\n    \"$_SERVER\": {\n        type: \"array\",\n        value: {\n            \"DOCUMENT_ROOT\":  1,\n            \"GATEWAY_INTERFACE\":  1,\n            \"HTTP_ACCEPT\":  1,\n            \"HTTP_ACCEPT_CHARSET\":  1,\n            \"HTTP_ACCEPT_ENCODING\":  1 ,\n            \"HTTP_ACCEPT_LANGUAGE\":  1,\n            \"HTTP_CONNECTION\":  1,\n            \"HTTP_HOST\":  1,\n            \"HTTP_REFERER\":  1,\n            \"HTTP_USER_AGENT\":  1,\n            \"PATH_TRANSLATED\":  1,\n            \"PHP_SELF\":  1,\n            \"QUERY_STRING\":  1,\n            \"REMOTE_ADDR\":  1,\n            \"REMOTE_PORT\":  1,\n            \"REQUEST_METHOD\":  1,\n            \"REQUEST_URI\":  1,\n            \"SCRIPT_FILENAME\":  1,\n            \"SCRIPT_NAME\":  1,\n            \"SERVER_ADMIN\":  1,\n            \"SERVER_NAME\":  1,\n            \"SERVER_PORT\":  1,\n            \"SERVER_PROTOCOL\":  1,\n            \"SERVER_SIGNATURE\":  1,\n            \"SERVER_SOFTWARE\":  1\n        }\n    },\n    \"$_SESSION\": {\n        type: \"array\"\n    },\n    \"$GLOBALS\": {\n        type: \"array\"\n    }\n};\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type) > -1;\n}\n\nvar PhpCompletions = function() {\n\n};\n\n(function() {\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (token.type==='identifier')\n            return this.getFunctionCompletions(state, session, pos, prefix);\n        if (is(token, \"variable\"))\n            return this.getVariableCompletions(state, session, pos, prefix);\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        if (token.type==='string' && /(\\$[\\w]*)\\[[\"']([^'\"]*)$/i.test(line))\n            return this.getArrayKeyCompletions(state, session, pos, prefix);\n\n        return [];\n    };\n\n    this.getFunctionCompletions = function(state, session, pos, prefix) {\n        var functions = Object.keys(functionMap);\n        return functions.map(function(func){\n            return {\n                caption: func,\n                snippet: func + '($0)',\n                meta: \"php function\",\n                score: Number.MAX_VALUE,\n                docHTML: functionMap[func][1]\n            };\n        });\n    };\n\n    this.getVariableCompletions = function(state, session, pos, prefix) {\n        var variables = Object.keys(variableMap);\n        return variables.map(function(variable){\n            return {\n                caption: variable,\n                value: variable,\n                meta: \"php variable\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getArrayKeyCompletions = function(state, session, pos, prefix) {\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        var variable = line.match(/(\\$[\\w]*)\\[[\"']([^'\"]*)$/i)[1];\n\n        if (!variableMap[variable]) {\n            return [];\n        }\n\n        var keys = [];\n        if (variableMap[variable].type==='array' && variableMap[variable].value)\n            keys = Object.keys(variableMap[variable].value);\n\n        return keys.map(function(key) {\n            return {\n                caption: key,\n                value: key,\n                meta: \"php array key\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(PhpCompletions.prototype);\n\nexports.PhpCompletions = PhpCompletions;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar propertyMap = {\n    \"background\": {\"#$0\": 1},\n    \"background-color\": {\"#$0\": 1, \"transparent\": 1, \"fixed\": 1},\n    \"background-image\": {\"url('/$0')\": 1},\n    \"background-repeat\": {\"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1},\n    \"background-position\": {\"bottom\":2, \"center\":2, \"left\":2, \"right\":2, \"top\":2, \"inherit\":2},\n    \"background-attachment\": {\"scroll\": 1, \"fixed\": 1},\n    \"background-size\": {\"cover\": 1, \"contain\": 1},\n    \"background-clip\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"background-origin\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"border\": {\"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1},\n    \"border-color\": {\"#$0\": 1},\n    \"border-style\": {\"solid\":2, \"dashed\":2, \"dotted\":2, \"double\":2, \"groove\":2, \"hidden\":2, \"inherit\":2, \"inset\":2, \"none\":2, \"outset\":2, \"ridged\":2},\n    \"border-collapse\": {\"collapse\": 1, \"separate\": 1},\n    \"bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"clear\": {\"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1},\n    \"color\": {\"#$0\": 1, \"rgb(#$00,0,0)\": 1},\n    \"cursor\": {\"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1},\n    \"display\": {\"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1},\n    \"empty-cells\": {\"show\": 1, \"hide\": 1},\n    \"float\": {\"left\": 1, \"right\": 1, \"none\": 1},\n    \"font-family\": {\"Arial\":2,\"Comic Sans MS\":2,\"Consolas\":2,\"Courier New\":2,\"Courier\":2,\"Georgia\":2,\"Monospace\":2,\"Sans-Serif\":2, \"Segoe UI\":2,\"Tahoma\":2,\"Times New Roman\":2,\"Trebuchet MS\":2,\"Verdana\": 1},\n    \"font-size\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"font-weight\": {\"bold\": 1, \"normal\": 1},\n    \"font-style\": {\"italic\": 1, \"normal\": 1},\n    \"font-variant\": {\"normal\": 1, \"small-caps\": 1},\n    \"height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"letter-spacing\": {\"normal\": 1},\n    \"line-height\": {\"normal\": 1},\n    \"list-style-type\": {\"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1},\n    \"margin\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"overflow\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-x\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-y\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"padding\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"page-break-after\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"page-break-before\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"position\": {\"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1},\n    \"right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"table-layout\": {\"fixed\": 1, \"auto\": 1},\n    \"text-decoration\": {\"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1},\n    \"text-align\": {\"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1},\n    \"text-transform\": {\"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1},\n    \"top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"vertical-align\": {\"top\": 1, \"bottom\": 1},\n    \"visibility\": {\"hidden\": 1, \"visible\": 1},\n    \"white-space\": {\"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1},\n    \"width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"word-spacing\": {\"normal\": 1},\n    \"filter\": {\"alpha(opacity=$0100)\": 1},\n\n    \"text-shadow\": {\"$02px 2px 2px #777\": 1},\n    \"text-overflow\": {\"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1},\n    \"-moz-border-radius\": 1,\n    \"-moz-border-radius-topright\": 1,\n    \"-moz-border-radius-bottomright\": 1,\n    \"-moz-border-radius-topleft\": 1,\n    \"-moz-border-radius-bottomleft\": 1,\n    \"-webkit-border-radius\": 1,\n    \"-webkit-border-top-right-radius\": 1,\n    \"-webkit-border-top-left-radius\": 1,\n    \"-webkit-border-bottom-right-radius\": 1,\n    \"-webkit-border-bottom-left-radius\": 1,\n    \"-moz-box-shadow\": 1,\n    \"-webkit-box-shadow\": 1,\n    \"transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-moz-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-webkit-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\n\nvar CssCompletions = function() {\n\n};\n\n(function() {\n\n    this.completionsDefined = false;\n\n    this.defineCompletions = function() {\n        if (document) {\n            var style = document.createElement('c').style;\n\n            for (var i in style) {\n                if (typeof style[i] !== 'string')\n                    continue;\n\n                var name = i.replace(/[A-Z]/g, function(x) {\n                    return '-' + x.toLowerCase();\n                });\n\n                if (!propertyMap.hasOwnProperty(name))\n                    propertyMap[name] = 1;\n            }\n        }\n\n        this.completionsDefined = true;\n    }\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        if (!this.completionsDefined) {\n            this.defineCompletions();\n        }\n\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (state==='ruleset'){\n            var line = session.getLine(pos.row).substr(0, pos.column);\n            if (/:[^;]+$/.test(line)) {\n                /([\\w\\-]+):[^:]*$/.test(line);\n\n                return this.getPropertyValueCompletions(state, session, pos, prefix);\n            } else {\n                return this.getPropertyCompletions(state, session, pos, prefix);\n            }\n        }\n\n        return [];\n    };\n\n    this.getPropertyCompletions = function(state, session, pos, prefix) {\n        var properties = Object.keys(propertyMap);\n        return properties.map(function(property){\n            return {\n                caption: property,\n                snippet: property + ': $0',\n                meta: \"property\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getPropertyValueCompletions = function(state, session, pos, prefix) {\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n\n        if (!property)\n            return [];\n        var values = [];\n        if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n            values = Object.keys(propertyMap[property]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"property value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(CssCompletions.prototype);\n\nexports.CssCompletions = CssCompletions;\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar CssBehaviour = function () {\n\n    this.inherit(CstyleBehaviour);\n\n    this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(cursor.row);\n                var rightChar = line.substring(cursor.column, cursor.column + 1);\n                if (rightChar === ':') {\n                    return {\n                       text: '',\n                       selection: [1, 1]\n                    }\n                }\n                if (!line.substring(cursor.column).match(/^\\s*;/)) {\n                    return {\n                       text: ':;',\n                       selection: [1, 1]\n                    }\n                }\n            }\n        }\n    });\n\n    this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && selected === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(range.start.row);\n                var rightChar = line.substring(range.end.column, range.end.column + 1);\n                if (rightChar === ';') {\n                    range.end.column ++;\n                    return range;\n                }\n            }\n        }\n    });\n\n    this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ';') {\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar === ';') {\n                return {\n                   text: '',\n                   selection: [1, 1]\n                }\n            }\n        }\n    });\n\n}\noop.inherits(CssBehaviour, CstyleBehaviour);\n\nexports.CssBehaviour = CssBehaviour;\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = CssHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CssBehaviour();\n    this.$completer = new CssCompletions();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.foldingRules = \"cStyle\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        var match = line.match(/^.*\\{\\s*$/);\n        if (match) {\n            indent += tab;\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/css\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nvar XmlBehaviour = function () {\n\n    this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '\"' || text == \"'\") {\n            var quote = text;\n            var selected = session.doc.getTextRange(editor.getSelectionRange());\n            if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n                return {\n                    text: quote + selected + quote,\n                    selection: false\n                };\n            }\n\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n                return {\n                    text: \"\",\n                    selection: [1, 1]\n                };\n            }\n\n            if (!token)\n                token = iterator.stepBackward();\n\n            if (!token)\n                return;\n\n            while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n                token = iterator.stepBackward();\n            }\n            var rightSpace = !rightChar || rightChar.match(/\\s/);\n            if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n                return {\n                    text: quote + quote,\n                    selection: [1, 1]\n                };\n            }\n        }\n    });\n\n    this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == selected) {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n\n    this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '>') {\n            var position = editor.getSelectionRange().start;\n            var iterator = new TokenIterator(session, position.row, position.column);\n            var token = iterator.getCurrentToken() || iterator.stepBackward();\n            if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n                return;\n            if (is(token, \"reference.attribute-value\"))\n                return;\n            if (is(token, \"attribute-value\")) {\n                var firstChar = token.value.charAt(0);\n                if (firstChar == '\"' || firstChar == \"'\") {\n                    var lastChar = token.value.charAt(token.value.length - 1);\n                    var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;\n                    if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)\n                        return;\n                }\n            }\n            while (!is(token, \"tag-name\")) {\n                token = iterator.stepBackward();\n                if (token.value == \"<\") {\n                    token = iterator.stepForward();\n                    break;\n                }\n            }\n\n            var tokenRow = iterator.getCurrentTokenRow();\n            var tokenColumn = iterator.getCurrentTokenColumn();\n            if (is(iterator.stepBackward(), \"end-tag-open\"))\n                return;\n\n            var element = token.value;\n            if (tokenRow == position.row)\n                element = element.substring(0, position.column - tokenColumn);\n\n            if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n                 return;\n\n            return {\n               text: \">\" + \"</\" + element + \">\",\n               selection: [1, 1]\n            };\n        }\n    });\n\n    this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == \"\\n\") {\n            var cursor = editor.getCursorPosition();\n            var line = session.getLine(cursor.row);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (token && token.type.indexOf(\"tag-close\") !== -1) {\n                if (token.value == \"/>\")\n                    return;\n                while (token && token.type.indexOf(\"tag-name\") === -1) {\n                    token = iterator.stepBackward();\n                }\n\n                if (!token) {\n                    return;\n                }\n\n                var tag = token.value;\n                var row = iterator.getCurrentTokenRow();\n                token = iterator.stepBackward();\n                if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n                    return;\n                }\n\n                if (this.voidElements && !this.voidElements[tag]) {\n                    var nextToken = session.getTokenAt(cursor.row, cursor.column+1);\n                    var line = session.getLine(row);\n                    var nextIndent = this.$getIndent(line);\n                    var indent = nextIndent + session.getTabString();\n\n                    if (nextToken && nextToken.value === \"</\") {\n                        return {\n                            text: \"\\n\" + indent + \"\\n\" + nextIndent,\n                            selection: [1, indent.length, 1, indent.length]\n                        };\n                    } else {\n                        return {\n                            text: \"\\n\" + indent\n                        };\n                    }\n                }\n            }\n        }\n    });\n\n};\n\noop.inherits(XmlBehaviour, Behaviour);\n\nexports.XmlBehaviour = XmlBehaviour;\n});\n\nace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(defaultMode, subModes) {\n    this.defaultMode = defaultMode;\n    this.subModes = subModes;\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n\n    this.$getMode = function(state) {\n        if (typeof state != \"string\") \n            state = state[0];\n        for (var key in this.subModes) {\n            if (state.indexOf(key) === 0)\n                return this.subModes[key];\n        }\n        return null;\n    };\n    \n    this.$tryMode = function(state, session, foldStyle, row) {\n        var mode = this.$getMode(state);\n        return (mode ? mode.getFoldWidget(session, foldStyle, row) : \"\");\n    };\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        return (\n            this.$tryMode(session.getState(row-1), session, foldStyle, row) ||\n            this.$tryMode(session.getState(row), session, foldStyle, row) ||\n            this.defaultMode.getFoldWidget(session, foldStyle, row)\n        );\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var mode = this.$getMode(session.getState(row-1));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.$getMode(session.getState(row));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.defaultMode;\n        \n        return mode.getFoldWidgetRange(session, foldStyle, row);\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar lang = require(\"../../lib/lang\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalEndTags) {\n    BaseFoldMode.call(this);\n    this.voidElements = voidElements || {};\n    this.optionalEndTags = oop.mixin({}, this.voidElements);\n    if (optionalEndTags)\n        oop.mixin(this.optionalEndTags, optionalEndTags);\n    \n};\noop.inherits(FoldMode, BaseFoldMode);\n\nvar Tag = function() {\n    this.tagName = \"\";\n    this.closing = false;\n    this.selfClosing = false;\n    this.start = {row: 0, column: 0};\n    this.end = {row: 0, column: 0};\n};\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\n(function() {\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var tag = this._getFirstTagInLine(session, row);\n\n        if (!tag)\n            return \"\";\n\n        if (tag.closing || (!tag.tagName && tag.selfClosing))\n            return foldStyle == \"markbeginend\" ? \"end\" : \"\";\n\n        if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n            return \"\";\n\n        if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n            return \"\";\n\n        return \"start\";\n    };\n    this._getFirstTagInLine = function(session, row) {\n        var tokens = session.getTokens(row);\n        var tag = new Tag();\n\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            if (is(token, \"tag-open\")) {\n                tag.end.column = tag.start.column + token.value.length;\n                tag.closing = is(token, \"end-tag-open\");\n                token = tokens[++i];\n                if (!token)\n                    return null;\n                tag.tagName = token.value;\n                tag.end.column += token.value.length;\n                for (i++; i < tokens.length; i++) {\n                    token = tokens[i];\n                    tag.end.column += token.value.length;\n                    if (is(token, \"tag-close\")) {\n                        tag.selfClosing = token.value == '/>';\n                        break;\n                    }\n                }\n                return tag;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == '/>';\n                return tag;\n            }\n            tag.start.column += token.value.length;\n        }\n\n        return null;\n    };\n\n    this._findEndTagInLine = function(session, row, tagName, startColumn) {\n        var tokens = session.getTokens(row);\n        var column = 0;\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            column += token.value.length;\n            if (column < startColumn)\n                continue;\n            if (is(token, \"end-tag-open\")) {\n                token = tokens[i + 1];\n                if (token && token.value == tagName)\n                    return true;\n            }\n        }\n        return false;\n    };\n    this._readTagForward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n                iterator.stepForward();\n                return tag;\n            }\n        } while(token = iterator.stepForward());\n\n        return null;\n    };\n    \n    this._readTagBackward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n                iterator.stepBackward();\n                return tag;\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n            }\n        } while(token = iterator.stepBackward());\n\n        return null;\n    };\n    \n    this._pop = function(stack, tag) {\n        while (stack.length) {\n            \n            var top = stack[stack.length-1];\n            if (!tag || top.tagName == tag.tagName) {\n                return stack.pop();\n            }\n            else if (this.optionalEndTags.hasOwnProperty(top.tagName)) {\n                stack.pop();\n                continue;\n            } else {\n                return null;\n            }\n        }\n    };\n    \n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var firstTag = this._getFirstTagInLine(session, row);\n        \n        if (!firstTag)\n            return null;\n        \n        var isBackward = firstTag.closing || firstTag.selfClosing;\n        var stack = [];\n        var tag;\n        \n        if (!isBackward) {\n            var iterator = new TokenIterator(session, row, firstTag.start.column);\n            var start = {\n                row: row,\n                column: firstTag.start.column + firstTag.tagName.length + 2\n            };\n            if (firstTag.start.row == firstTag.end.row)\n                start.column = firstTag.end.column;\n            while (tag = this._readTagForward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0)\n                        return Range.fromPoints(start, tag.start);\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        else {\n            var iterator = new TokenIterator(session, row, firstTag.end.column);\n            var end = {\n                row: row,\n                column: firstTag.start.column\n            };\n            \n            while (tag = this._readTagBackward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (!tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0) {\n                        tag.start.column += tag.tagName.length + 2;\n                        if (tag.start.row == tag.end.row && tag.start.column < tag.end.column)\n                            tag.start.column = tag.end.column;\n                        return Range.fromPoints(tag.start, end);\n                    }\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        \n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar MixedFoldMode = require(\"./mixed\").FoldMode;\nvar XmlFoldMode = require(\"./xml\").FoldMode;\nvar CStyleFoldMode = require(\"./cstyle\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalTags) {\n    MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), {\n        \"js-\": new CStyleFoldMode(),\n        \"css-\": new CStyleFoldMode()\n    });\n};\n\noop.inherits(FoldMode, MixedFoldMode);\n\n});\n\nace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\n\nvar commonAttributes = [\n    \"accesskey\",\n    \"class\",\n    \"contenteditable\",\n    \"contextmenu\",\n    \"dir\",\n    \"draggable\",\n    \"dropzone\",\n    \"hidden\",\n    \"id\",\n    \"inert\",\n    \"itemid\",\n    \"itemprop\",\n    \"itemref\",\n    \"itemscope\",\n    \"itemtype\",\n    \"lang\",\n    \"spellcheck\",\n    \"style\",\n    \"tabindex\",\n    \"title\",\n    \"translate\"\n];\n\nvar eventAttributes = [\n    \"onabort\",\n    \"onblur\",\n    \"oncancel\",\n    \"oncanplay\",\n    \"oncanplaythrough\",\n    \"onchange\",\n    \"onclick\",\n    \"onclose\",\n    \"oncontextmenu\",\n    \"oncuechange\",\n    \"ondblclick\",\n    \"ondrag\",\n    \"ondragend\",\n    \"ondragenter\",\n    \"ondragleave\",\n    \"ondragover\",\n    \"ondragstart\",\n    \"ondrop\",\n    \"ondurationchange\",\n    \"onemptied\",\n    \"onended\",\n    \"onerror\",\n    \"onfocus\",\n    \"oninput\",\n    \"oninvalid\",\n    \"onkeydown\",\n    \"onkeypress\",\n    \"onkeyup\",\n    \"onload\",\n    \"onloadeddata\",\n    \"onloadedmetadata\",\n    \"onloadstart\",\n    \"onmousedown\",\n    \"onmousemove\",\n    \"onmouseout\",\n    \"onmouseover\",\n    \"onmouseup\",\n    \"onmousewheel\",\n    \"onpause\",\n    \"onplay\",\n    \"onplaying\",\n    \"onprogress\",\n    \"onratechange\",\n    \"onreset\",\n    \"onscroll\",\n    \"onseeked\",\n    \"onseeking\",\n    \"onselect\",\n    \"onshow\",\n    \"onstalled\",\n    \"onsubmit\",\n    \"onsuspend\",\n    \"ontimeupdate\",\n    \"onvolumechange\",\n    \"onwaiting\"\n];\n\nvar globalAttributes = commonAttributes.concat(eventAttributes);\n\nvar attributeMap = {\n    \"html\": {\"manifest\": 1},\n    \"head\": {},\n    \"title\": {},\n    \"base\": {\"href\": 1, \"target\": 1},\n    \"link\": {\"href\": 1, \"hreflang\": 1, \"rel\": {\"stylesheet\": 1, \"icon\": 1}, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"type\": {\"text/css\": 1, \"image/png\": 1, \"image/jpeg\": 1, \"image/gif\": 1}, \"sizes\": 1},\n    \"meta\": {\"http-equiv\": {\"content-type\": 1}, \"name\": {\"description\": 1, \"keywords\": 1}, \"content\": {\"text/html; charset=UTF-8\": 1}, \"charset\": 1},\n    \"style\": {\"type\": 1, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"scoped\": 1},\n    \"script\": {\"charset\": 1, \"type\": {\"text/javascript\": 1}, \"src\": 1, \"defer\": 1, \"async\": 1},\n    \"noscript\": {\"href\": 1},\n    \"body\": {\"onafterprint\": 1, \"onbeforeprint\": 1, \"onbeforeunload\": 1, \"onhashchange\": 1, \"onmessage\": 1, \"onoffline\": 1, \"onpopstate\": 1, \"onredo\": 1, \"onresize\": 1, \"onstorage\": 1, \"onundo\": 1, \"onunload\": 1},\n    \"section\": {},\n    \"nav\": {},\n    \"article\": {\"pubdate\": 1},\n    \"aside\": {},\n    \"h1\": {},\n    \"h2\": {},\n    \"h3\": {},\n    \"h4\": {},\n    \"h5\": {},\n    \"h6\": {},\n    \"header\": {},\n    \"footer\": {},\n    \"address\": {},\n    \"main\": {},\n    \"p\": {},\n    \"hr\": {},\n    \"pre\": {},\n    \"blockquote\": {\"cite\": 1},\n    \"ol\": {\"start\": 1, \"reversed\": 1},\n    \"ul\": {},\n    \"li\": {\"value\": 1},\n    \"dl\": {},\n    \"dt\": {},\n    \"dd\": {},\n    \"figure\": {},\n    \"figcaption\": {},\n    \"div\": {},\n    \"a\": {\"href\": 1, \"target\": {\"_blank\": 1, \"top\": 1}, \"ping\": 1, \"rel\": {\"nofollow\": 1, \"alternate\": 1, \"author\": 1, \"bookmark\": 1, \"help\": 1, \"license\": 1, \"next\": 1, \"noreferrer\": 1, \"prefetch\": 1, \"prev\": 1, \"search\": 1, \"tag\": 1}, \"media\": 1, \"hreflang\": 1, \"type\": 1},\n    \"em\": {},\n    \"strong\": {},\n    \"small\": {},\n    \"s\": {},\n    \"cite\": {},\n    \"q\": {\"cite\": 1},\n    \"dfn\": {},\n    \"abbr\": {},\n    \"data\": {},\n    \"time\": {\"datetime\": 1},\n    \"code\": {},\n    \"var\": {},\n    \"samp\": {},\n    \"kbd\": {},\n    \"sub\": {},\n    \"sup\": {},\n    \"i\": {},\n    \"b\": {},\n    \"u\": {},\n    \"mark\": {},\n    \"ruby\": {},\n    \"rt\": {},\n    \"rp\": {},\n    \"bdi\": {},\n    \"bdo\": {},\n    \"span\": {},\n    \"br\": {},\n    \"wbr\": {},\n    \"ins\": {\"cite\": 1, \"datetime\": 1},\n    \"del\": {\"cite\": 1, \"datetime\": 1},\n    \"img\": {\"alt\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"usemap\": 1, \"ismap\": 1},\n    \"iframe\": {\"name\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"sandbox\": {\"allow-same-origin\": 1, \"allow-top-navigation\": 1, \"allow-forms\": 1, \"allow-scripts\": 1}, \"seamless\": {\"seamless\": 1}},\n    \"embed\": {\"src\": 1, \"height\": 1, \"width\": 1, \"type\": 1},\n    \"object\": {\"param\": 1, \"data\": 1, \"type\": 1, \"height\" : 1, \"width\": 1, \"usemap\": 1, \"name\": 1, \"form\": 1, \"classid\": 1},\n    \"param\": {\"name\": 1, \"value\": 1},\n    \"video\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"width\": 1, \"height\": 1, \"poster\": 1, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1}},\n    \"audio\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1 }},\n    \"source\": {\"src\": 1, \"type\": 1, \"media\": 1},\n    \"track\": {\"kind\": 1, \"src\": 1, \"srclang\": 1, \"label\": 1, \"default\": 1},\n    \"canvas\": {\"width\": 1, \"height\": 1},\n    \"map\": {\"name\": 1},\n    \"area\": {\"shape\": 1, \"coords\": 1, \"href\": 1, \"hreflang\": 1, \"alt\": 1, \"target\": 1, \"media\": 1, \"rel\": 1, \"ping\": 1, \"type\": 1},\n    \"svg\": {},\n    \"math\": {},\n    \"table\": {\"summary\": 1},\n    \"caption\": {},\n    \"colgroup\": {\"span\": 1},\n    \"col\": {\"span\": 1},\n    \"tbody\": {},\n    \"thead\": {},\n    \"tfoot\": {},\n    \"tr\": {},\n    \"td\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1},\n    \"th\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1, \"scope\": 1},\n    \"form\": {\"accept-charset\": 1, \"action\": 1, \"autocomplete\": 1, \"enctype\": {\"multipart/form-data\": 1, \"application/x-www-form-urlencoded\": 1}, \"method\": {\"get\": 1, \"post\": 1}, \"name\": 1, \"novalidate\": 1, \"target\": {\"_blank\": 1, \"top\": 1}},\n    \"fieldset\": {\"disabled\": 1, \"form\": 1, \"name\": 1},\n    \"legend\": {},\n    \"label\": {\"form\": 1, \"for\": 1},\n    \"input\": {\n        \"type\": {\"text\": 1, \"password\": 1, \"hidden\": 1, \"checkbox\": 1, \"submit\": 1, \"radio\": 1, \"file\": 1, \"button\": 1, \"reset\": 1, \"image\": 31, \"color\": 1, \"date\": 1, \"datetime\": 1, \"datetime-local\": 1, \"email\": 1, \"month\": 1, \"number\": 1, \"range\": 1, \"search\": 1, \"tel\": 1, \"time\": 1, \"url\": 1, \"week\": 1},\n        \"accept\": 1, \"alt\": 1, \"autocomplete\": {\"on\": 1, \"off\": 1}, \"autofocus\": {\"autofocus\": 1}, \"checked\": {\"checked\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": {\"application/x-www-form-urlencoded\": 1, \"multipart/form-data\": 1, \"text/plain\": 1}, \"formmethod\": {\"get\": 1, \"post\": 1}, \"formnovalidate\": {\"formnovalidate\": 1}, \"formtarget\": {\"_blank\": 1, \"_self\": 1, \"_parent\": 1, \"_top\": 1}, \"height\": 1, \"list\": 1, \"max\": 1, \"maxlength\": 1, \"min\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"pattern\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"size\": 1, \"src\": 1, \"step\": 1, \"width\": 1, \"files\": 1, \"value\": 1},\n    \"button\": {\"autofocus\": 1, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": 1, \"formmethod\": 1, \"formnovalidate\": 1, \"formtarget\": 1, \"name\": 1, \"value\": 1, \"type\": {\"button\": 1, \"submit\": 1}},\n    \"select\": {\"autofocus\": 1, \"disabled\": 1, \"form\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"size\": 1, \"readonly\":{\"readonly\": 1}},\n    \"datalist\": {},\n    \"optgroup\": {\"disabled\": 1, \"label\": 1},\n    \"option\": {\"disabled\": 1, \"selected\": 1, \"label\": 1, \"value\": 1},\n    \"textarea\": {\"autofocus\": {\"autofocus\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"maxlength\": 1, \"name\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"rows\": 1, \"cols\": 1, \"wrap\": {\"on\": 1, \"off\": 1, \"hard\": 1, \"soft\": 1}},\n    \"keygen\": {\"autofocus\": 1, \"challenge\": {\"challenge\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"keytype\": {\"rsa\": 1, \"dsa\": 1, \"ec\": 1}, \"name\": 1},\n    \"output\": {\"for\": 1, \"form\": 1, \"name\": 1},\n    \"progress\": {\"value\": 1, \"max\": 1},\n    \"meter\": {\"value\": 1, \"min\": 1, \"max\": 1, \"low\": 1, \"high\": 1, \"optimum\": 1},\n    \"details\": {\"open\": 1},\n    \"summary\": {},\n    \"command\": {\"type\": 1, \"label\": 1, \"icon\": 1, \"disabled\": 1, \"checked\": 1, \"radiogroup\": 1, \"command\": 1},\n    \"menu\": {\"type\": 1, \"label\": 1},\n    \"dialog\": {\"open\": 1}\n};\n\nvar elements = Object.keys(attributeMap);\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nfunction findTagName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"tag-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nfunction findAttributeName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"attribute-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nvar HtmlCompletions = function() {\n\n};\n\n(function() {\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (is(token, \"tag-name\") || is(token, \"tag-open\") || is(token, \"end-tag-open\"))\n            return this.getTagCompletions(state, session, pos, prefix);\n        if (is(token, \"tag-whitespace\") || is(token, \"attribute-name\"))\n            return this.getAttributeCompletions(state, session, pos, prefix);\n        if (is(token, \"attribute-value\"))\n            return this.getAttributeValueCompletions(state, session, pos, prefix);\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        if (/&[a-z]*$/i.test(line))\n            return this.getHTMLEntityCompletions(state, session, pos, prefix);\n\n        return [];\n    };\n\n    this.getTagCompletions = function(state, session, pos, prefix) {\n        return elements.map(function(element){\n            return {\n                value: element,\n                meta: \"tag\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        if (!tagName)\n            return [];\n        var attributes = globalAttributes;\n        if (tagName in attributeMap) {\n            attributes = attributes.concat(Object.keys(attributeMap[tagName]));\n        }\n        return attributes.map(function(attribute){\n            return {\n                caption: attribute,\n                snippet: attribute + '=\"$0\"',\n                meta: \"attribute\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeValueCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        var attributeName = findAttributeName(session, pos);\n        \n        if (!tagName)\n            return [];\n        var values = [];\n        if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === \"object\") {\n            values = Object.keys(attributeMap[tagName][attributeName]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"attribute value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getHTMLEntityCompletions = function(state, session, pos, prefix) {\n        var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;'];\n\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"html entity\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(HtmlCompletions.prototype);\n\nexports.HtmlCompletions = HtmlCompletions;\n});\n\nace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar CssMode = require(\"./css\").Mode;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar HtmlFoldMode = require(\"./folding/html\").FoldMode;\nvar HtmlCompletions = require(\"./html_completions\").HtmlCompletions;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar voidElements = [\"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"menuitem\", \"param\", \"source\", \"track\", \"wbr\"];\nvar optionalEndTags = [\"li\", \"dt\", \"dd\", \"p\", \"rt\", \"rp\", \"optgroup\", \"option\", \"colgroup\", \"td\", \"th\"];\n\nvar Mode = function(options) {\n    this.fragmentContext = options && options.fragmentContext;\n    this.HighlightRules = HtmlHighlightRules;\n    this.$behaviour = new XmlBehaviour();\n    this.$completer = new HtmlCompletions();\n    \n    this.createModeDelegates({\n        \"js-\": JavaScriptMode,\n        \"css-\": CssMode\n    });\n    \n    this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags));\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.blockComment = {start: \"<!--\", end: \"-->\"};\n\n    this.voidElements = lang.arrayToMap(voidElements);\n\n    this.getNextLineIndent = function(state, line, tab) {\n        return this.$getIndent(line);\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return false;\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        if (this.constructor != Mode)\n            return;\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/html_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        if (this.fragmentContext)\n            worker.call(\"setOptions\", [{context: this.fragmentContext}]);\n\n        worker.on(\"error\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/html\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/php\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/php_highlight_rules\",\"ace/mode/php_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/php_completions\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/unicode\",\"ace/mode/html\",\"ace/mode/javascript\",\"ace/mode/css\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar PhpHighlightRules = require(\"./php_highlight_rules\").PhpHighlightRules;\nvar PhpLangHighlightRules = require(\"./php_highlight_rules\").PhpLangHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar Range = require(\"../range\").Range;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar PhpCompletions = require(\"./php_completions\").PhpCompletions;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar unicode = require(\"../unicode\");\nvar HtmlMode = require(\"./html\").Mode;\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar CssMode = require(\"./css\").Mode;\n\nvar PhpMode = function(opts) {\n    this.HighlightRules = PhpLangHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.$completer = new PhpCompletions();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(PhpMode, TextMode);\n\n(function() {\n\n    this.tokenRe = new RegExp(\"^[\"\n        + unicode.packages.L\n        + unicode.packages.Mn + unicode.packages.Mc\n        + unicode.packages.Nd\n        + unicode.packages.Pc + \"_]+\", \"g\"\n    );\n\n    this.nonTokenRe = new RegExp(\"^(?:[^\"\n        + unicode.packages.L\n        + unicode.packages.Mn + unicode.packages.Mc\n        + unicode.packages.Nd\n        + unicode.packages.Pc + \"_]|\\\\s])+\", \"g\"\n    );\n\n\n    this.lineCommentStart = [\"//\", \"#\"];\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[:]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState != \"doc-start\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.$id = \"ace/mode/php-inline\";\n}).call(PhpMode.prototype);\n\nvar Mode = function(opts) {\n    if (opts && opts.inline) {\n        var mode = new PhpMode();\n        mode.createWorker = this.createWorker;\n        mode.inlinePhp = true;\n        return mode;\n    }\n    HtmlMode.call(this);\n    this.HighlightRules = PhpHighlightRules;\n    this.createModeDelegates({\n        \"js-\": JavaScriptMode,\n        \"css-\": CssMode,\n        \"php-\": PhpMode\n    });\n    this.foldingRules.subModes[\"php-\"] = new CStyleFoldMode();\n};\noop.inherits(Mode, HtmlMode);\n\n(function() {\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/php_worker\", \"PhpWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        if (this.inlinePhp)\n            worker.call(\"setOptions\", [{inline: true}]);\n\n        worker.on(\"annotate\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/php\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-plain_text.js",
    "content": "ace.define(\"ace/mode/plain_text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar Behaviour = require(\"./behaviour\").Behaviour;\n\nvar Mode = function() {\n    this.HighlightRules = TextHighlightRules;\n    this.$behaviour = new Behaviour();\n};\n\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.type = \"text\";\n    this.getNextLineIndent = function(state, line, tab) {\n        return '';\n    };\n    this.$id = \"ace/mode/plain_text\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-powershell.js",
    "content": "ace.define(\"ace/mode/powershell_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar PowershellHighlightRules = function() {\n    var keywords = (\n        \"begin|break|catch|continue|data|do|dynamicparam|else|elseif|end|exit|filter|\" +\n        \"finally|for|foreach|from|function|if|in|inlinescript|hidden|parallel|param|\" +\n        \"process|return|sequence|switch|throw|trap|try|until|while|workflow\"\n    );\n    var builtinFunctions = (\n        \"Get-AppBackgroundTask|Start-AppBackgroundTask|Unregister-AppBackgroundTask|Disable-AppBackgroundTaskDiagnosticLog|Enable-AppBackgroundTaskDiagnosticLog|Set-AppBackgroundTaskResourcePolicy|\" +\n        \"Get-AppLockerFileInformation|Get-AppLockerPolicy|New-AppLockerPolicy|Set-AppLockerPolicy|Test-AppLockerPolicy|\" +\n        \"Get-AppxLastError|Get-AppxLog|Add-AppxPackage|Add-AppxVolume|Dismount-AppxVolume|Get-AppxDefaultVolume|Get-AppxPackage|Get-AppxPackageManifest|Get-AppxVolume|Mount-AppxVolume|Move-AppxPackage|Remove-AppxPackage|Remove-AppxVolume|Set-AppxDefaultVolume|\" +\n        \"Clear-AssignedAccess|Get-AssignedAccess|Set-AssignedAccess|\" +\n        \"Add-BitLockerKeyProtector|Backup-BitLockerKeyProtector|Clear-BitLockerAutoUnlock|Disable-BitLocker|Disable-BitLockerAutoUnlock|Enable-BitLocker|Enable-BitLockerAutoUnlock|Get-BitLockerVolume|Lock-BitLocker|Remove-BitLockerKeyProtector|Resume-BitLocker|Suspend-BitLocker|Unlock-BitLocker|\" +\n        \"Add-BitsFile|Complete-BitsTransfer|Get-BitsTransfer|Remove-BitsTransfer|Resume-BitsTransfer|Set-BitsTransfer|Start-BitsTransfer|Suspend-BitsTransfer|\" +\n        \"Add-BCDataCacheExtension|Clear-BCCache|Disable-BC|Disable-BCDowngrading|Disable-BCServeOnBattery|Enable-BCDistributed|Enable-BCDowngrading|Enable-BCHostedClient|Enable-BCHostedServer|Enable-BCLocal|Enable-BCServeOnBattery|Export-BCCachePackage|Export-BCSecretKey|Get-BCClientConfiguration|Get-BCContentServerConfiguration|Get-BCDataCache|Get-BCDataCacheExtension|Get-BCHashCache|Get-BCHostedCacheServerConfiguration|Get-BCNetworkConfiguration|Get-BCStatus|Import-BCCachePackage|Import-BCSecretKey|Publish-BCFileContent|Publish-BCWebContent|Remove-BCDataCacheExtension|Reset-BC|Set-BCAuthentication|Set-BCCache|Set-BCDataCacheEntryMaxAge|Set-BCMinSMBLatency|Set-BCSecretKey|\" +\n        \"Export-BinaryMiLog|Get-CimAssociatedInstance|Get-CimClass|Get-CimInstance|Get-CimSession|Import-BinaryMiLog|Invoke-CimMethod|New-CimInstance|New-CimSession|New-CimSessionOption|Register-CimIndicationEvent|Remove-CimInstance|Remove-CimSession|Set-CimInstance|\" +\n        \"ConvertFrom-CIPolicy|\" +\n        \"Add-SignerRule|Edit-CIPolicyRule|Get-CIPolicy|Get-CIPolicyInfo|Get-SystemDriver|Merge-CIPolicy|New-CIPolicy|New-CIPolicyRule|Remove-CIPolicyRule|Set-CIPolicyVersion|Set-HVCIOptions|Set-RuleOption|\" +\n        \"Add-MpPreference|Get-MpComputerStatus|Get-MpPreference|Get-MpThreat|Get-MpThreatCatalog|Get-MpThreatDetection|Remove-MpPreference|Remove-MpThreat|Set-MpPreference|Start-MpScan|Start-MpWDOScan|Update-MpSignature|\" +\n        \"Disable-DAManualEntryPointSelection|Enable-DAManualEntryPointSelection|Get-DAClientExperienceConfiguration|Get-DAEntryPointTableItem|New-DAEntryPointTableItem|Remove-DAEntryPointTableItem|Rename-DAEntryPointTableItem|Reset-DAClientExperienceConfiguration|Reset-DAEntryPointTableItem|Set-DAClientExperienceConfiguration|Set-DAEntryPointTableItem|\" +\n        \"Add-ProvisionedAppxPackage|Apply-WindowsUnattend|Get-ProvisionedAppxPackage|Remove-ProvisionedAppxPackage|Add-AppxProvisionedPackage|Add-WindowsCapability|Add-WindowsDriver|Add-WindowsImage|Add-WindowsPackage|Clear-WindowsCorruptMountPoint|Disable-WindowsOptionalFeature|Dismount-WindowsImage|Enable-WindowsOptionalFeature|Expand-WindowsCustomDataImage|Expand-WindowsImage|Export-WindowsDriver|Export-WindowsImage|Get-AppxProvisionedPackage|Get-WIMBootEntry|Get-WindowsCapability|Get-WindowsDriver|Get-WindowsEdition|Get-WindowsImage|Get-WindowsImageContent|Get-WindowsOptionalFeature|Get-WindowsPackage|Mount-WindowsImage|New-WindowsCustomImage|New-WindowsImage|Optimize-WindowsImage|Remove-AppxProvisionedPackage|Remove-WindowsCapability|Remove-WindowsDriver|Remove-WindowsImage|Remove-WindowsPackage|Repair-WindowsImage|Save-WindowsImage|Set-AppXProvisionedDataFile|Set-WindowsEdition|Set-WindowsProductKey|Split-WindowsImage|Update-WIMBootEntry|Use-WindowsUnattend|\" +\n        \"Add-DnsClientNrptRule|Clear-DnsClientCache|Get-DnsClient|Get-DnsClientCache|Get-DnsClientGlobalSetting|Get-DnsClientNrptGlobal|Get-DnsClientNrptPolicy|Get-DnsClientNrptRule|Get-DnsClientServerAddress|Register-DnsClient|Remove-DnsClientNrptRule|Set-DnsClient|Set-DnsClientGlobalSetting|Set-DnsClientNrptGlobal|Set-DnsClientNrptRule|Set-DnsClientServerAddress|Resolve-DnsName|\" +\n        \"Add-EtwTraceProvider|Get-AutologgerConfig|Get-EtwTraceProvider|Get-EtwTraceSession|New-AutologgerConfig|New-EtwTraceSession|Remove-AutologgerConfig|Remove-EtwTraceProvider|Remove-EtwTraceSession|Send-EtwTraceSession|Set-AutologgerConfig|Set-EtwTraceProvider|Set-EtwTraceSession|\" +\n        \"Get-WinAcceptLanguageFromLanguageListOptOut|Get-WinCultureFromLanguageListOptOut|Get-WinDefaultInputMethodOverride|Get-WinHomeLocation|Get-WinLanguageBarOption|Get-WinSystemLocale|Get-WinUILanguageOverride|Get-WinUserLanguageList|New-WinUserLanguageList|Set-Culture|Set-WinAcceptLanguageFromLanguageListOptOut|Set-WinCultureFromLanguageListOptOut|Set-WinDefaultInputMethodOverride|Set-WinHomeLocation|Set-WinLanguageBarOption|Set-WinSystemLocale|Set-WinUILanguageOverride|Set-WinUserLanguageList|\" +\n        \"Connect-IscsiTarget|Disconnect-IscsiTarget|Get-IscsiConnection|Get-IscsiSession|Get-IscsiTarget|Get-IscsiTargetPortal|New-IscsiTargetPortal|Register-IscsiSession|Remove-IscsiTargetPortal|Set-IscsiChapSecret|Unregister-IscsiSession|Update-IscsiTarget|Update-IscsiTargetPortal|\" +\n        \"Get-IseSnippet|Import-IseSnippet|New-IseSnippet|\" +\n        \"Add-KdsRootKey|Clear-KdsCache|Get-KdsConfiguration|Get-KdsRootKey|Set-KdsConfiguration|Test-KdsRootKey|\" +\n        \"Compress-Archive|Expand-Archive|\" +\n        \"Export-Counter|Get-Counter|Get-WinEvent|Import-Counter|New-WinEvent|\" +\n        \"Start-Transcript|Stop-Transcript|\" +\n        \"Add-Computer|Add-Content|Checkpoint-Computer|Clear-Content|Clear-EventLog|Clear-Item|Clear-ItemProperty|Clear-RecycleBin|Complete-Transaction|Convert-Path|Copy-Item|Copy-ItemProperty|Debug-Process|Disable-ComputerRestore|Enable-ComputerRestore|Get-ChildItem|Get-Clipboard|Get-ComputerRestorePoint|Get-Content|Get-ControlPanelItem|Get-EventLog|Get-HotFix|Get-Item|Get-ItemProperty|Get-ItemPropertyValue|Get-Location|Get-Process|Get-PSDrive|Get-PSProvider|Get-Service|Get-Transaction|Get-WmiObject|Invoke-Item|Invoke-WmiMethod|Join-Path|Limit-EventLog|Move-Item|Move-ItemProperty|New-EventLog|New-Item|New-ItemProperty|New-PSDrive|New-Service|New-WebServiceProxy|Pop-Location|Push-Location|Register-WmiEvent|Remove-Computer|Remove-EventLog|Remove-Item|Remove-ItemProperty|Remove-PSDrive|Remove-WmiObject|Rename-Computer|Rename-Item|Rename-ItemProperty|Reset-ComputerMachinePassword|Resolve-Path|Restart-Computer|Restart-Service|Restore-Computer|Resume-Service|Set-Clipboard|Set-Content|Set-Item|Set-ItemProperty|Set-Location|Set-Service|Set-WmiInstance|Show-ControlPanelItem|Show-EventLog|Split-Path|Start-Process|Start-Service|Start-Transaction|Stop-Computer|Stop-Process|Stop-Service|Suspend-Service|Test-ComputerSecureChannel|Test-Connection|Test-Path|Undo-Transaction|Use-Transaction|Wait-Process|Write-EventLog|\" +\n        \"Export-ODataEndpointProxy|\" +\n        \"ConvertFrom-SecureString|ConvertTo-SecureString|Get-Acl|Get-AuthenticodeSignature|Get-CmsMessage|Get-Credential|Get-ExecutionPolicy|Get-PfxCertificate|Protect-CmsMessage|Set-Acl|Set-AuthenticodeSignature|Set-ExecutionPolicy|Unprotect-CmsMessage|\" +\n        \"ConvertFrom-SddlString|Format-Hex|Get-FileHash|Import-PowerShellDataFile|New-Guid|New-TemporaryFile|Add-Member|Add-Type|Clear-Variable|Compare-Object|ConvertFrom-Csv|ConvertFrom-Json|ConvertFrom-String|ConvertFrom-StringData|Convert-String|ConvertTo-Csv|ConvertTo-Html|ConvertTo-Json|ConvertTo-Xml|Debug-Runspace|Disable-PSBreakpoint|Disable-RunspaceDebug|Enable-PSBreakpoint|Enable-RunspaceDebug|Export-Alias|Export-Clixml|Export-Csv|Export-FormatData|Export-PSSession|Format-Custom|Format-List|Format-Table|Format-Wide|Get-Alias|Get-Culture|Get-Date|Get-Event|Get-EventSubscriber|Get-FormatData|Get-Host|Get-Member|Get-PSBreakpoint|Get-PSCallStack|Get-Random|Get-Runspace|Get-RunspaceDebug|Get-TraceSource|Get-TypeData|Get-UICulture|Get-Unique|Get-Variable|Group-Object|Import-Alias|Import-Clixml|Import-Csv|Import-LocalizedData|Import-PSSession|Invoke-Expression|Invoke-RestMethod|Invoke-WebRequest|Measure-Command|Measure-Object|New-Alias|New-Event|New-Object|New-TimeSpan|New-Variable|Out-File|Out-GridView|Out-Printer|Out-String|Read-Host|Register-EngineEvent|Register-ObjectEvent|Remove-Event|Remove-PSBreakpoint|Remove-TypeData|Remove-Variable|Select-Object|Select-String|Select-Xml|Send-MailMessage|Set-Alias|Set-Date|Set-PSBreakpoint|Set-TraceSource|Set-Variable|Show-Command|Sort-Object|Start-Sleep|Tee-Object|Trace-Command|Unblock-File|Unregister-Event|Update-FormatData|Update-List|Update-TypeData|Wait-Debugger|Wait-Event|Write-Debug|Write-Error|Write-Host|Write-Information|Write-Output|Write-Progress|Write-Verbose|Write-Warning|\" +\n        \"Connect-WSMan|Disable-WSManCredSSP|Disconnect-WSMan|Enable-WSManCredSSP|Get-WSManCredSSP|Get-WSManInstance|Invoke-WSManAction|New-WSManInstance|New-WSManSessionOption|Remove-WSManInstance|Set-WSManInstance|Set-WSManQuickConfig|Test-WSMan|\" +\n        \"Debug-MMAppPrelaunch|Disable-MMAgent|Enable-MMAgent|Get-MMAgent|Set-MMAgent|\" +\n        \"Add-DtcClusterTMMapping|Get-Dtc|Get-DtcAdvancedHostSetting|Get-DtcAdvancedSetting|Get-DtcClusterDefault|Get-DtcClusterTMMapping|Get-DtcDefault|Get-DtcLog|Get-DtcNetworkSetting|Get-DtcTransaction|Get-DtcTransactionsStatistics|Get-DtcTransactionsTraceSession|Get-DtcTransactionsTraceSetting|Install-Dtc|Remove-DtcClusterTMMapping|Reset-DtcLog|Set-DtcAdvancedHostSetting|Set-DtcAdvancedSetting|Set-DtcClusterDefault|Set-DtcClusterTMMapping|Set-DtcDefault|Set-DtcLog|Set-DtcNetworkSetting|Set-DtcTransaction|Set-DtcTransactionsTraceSession|Set-DtcTransactionsTraceSetting|Start-Dtc|Start-DtcTransactionsTraceSession|Stop-Dtc|Stop-DtcTransactionsTraceSession|Test-Dtc|Uninstall-Dtc|Write-DtcTransactionsTraceSession|Complete-DtcDiagnosticTransaction|Join-DtcDiagnosticResourceManager|New-DtcDiagnosticTransaction|Receive-DtcDiagnosticTransaction|Send-DtcDiagnosticTransaction|Start-DtcDiagnosticResourceManager|Stop-DtcDiagnosticResourceManager|Undo-DtcDiagnosticTransaction|\" +\n        \"Disable-NetAdapter|Disable-NetAdapterBinding|Disable-NetAdapterChecksumOffload|Disable-NetAdapterEncapsulatedPacketTaskOffload|Disable-NetAdapterIPsecOffload|Disable-NetAdapterLso|Disable-NetAdapterPacketDirect|Disable-NetAdapterPowerManagement|Disable-NetAdapterQos|Disable-NetAdapterRdma|Disable-NetAdapterRsc|Disable-NetAdapterRss|Disable-NetAdapterSriov|Disable-NetAdapterVmq|Enable-NetAdapter|Enable-NetAdapterBinding|Enable-NetAdapterChecksumOffload|Enable-NetAdapterEncapsulatedPacketTaskOffload|Enable-NetAdapterIPsecOffload|Enable-NetAdapterLso|Enable-NetAdapterPacketDirect|Enable-NetAdapterPowerManagement|Enable-NetAdapterQos|Enable-NetAdapterRdma|Enable-NetAdapterRsc|Enable-NetAdapterRss|Enable-NetAdapterSriov|Enable-NetAdapterVmq|Get-NetAdapter|Get-NetAdapterAdvancedProperty|Get-NetAdapterBinding|Get-NetAdapterChecksumOffload|Get-NetAdapterEncapsulatedPacketTaskOffload|Get-NetAdapterHardwareInfo|Get-NetAdapterIPsecOffload|Get-NetAdapterLso|Get-NetAdapterPacketDirect|Get-NetAdapterPowerManagement|Get-NetAdapterQos|Get-NetAdapterRdma|Get-NetAdapterRsc|Get-NetAdapterRss|Get-NetAdapterSriov|Get-NetAdapterSriovVf|Get-NetAdapterStatistics|Get-NetAdapterVmq|Get-NetAdapterVmqQueue|Get-NetAdapterVPort|New-NetAdapterAdvancedProperty|Remove-NetAdapterAdvancedProperty|Rename-NetAdapter|Reset-NetAdapterAdvancedProperty|Restart-NetAdapter|Set-NetAdapter|Set-NetAdapterAdvancedProperty|Set-NetAdapterBinding|Set-NetAdapterChecksumOffload|Set-NetAdapterEncapsulatedPacketTaskOffload|Set-NetAdapterIPsecOffload|Set-NetAdapterLso|Set-NetAdapterPacketDirect|Set-NetAdapterPowerManagement|Set-NetAdapterQos|Set-NetAdapterRdma|Set-NetAdapterRsc|Set-NetAdapterRss|Set-NetAdapterSriov|Set-NetAdapterVmq|\" +\n        \"Get-NetConnectionProfile|Set-NetConnectionProfile|\" +\n        \"Add-NetEventNetworkAdapter|Add-NetEventPacketCaptureProvider|Add-NetEventProvider|Add-NetEventVmNetworkAdapter|Add-NetEventVmSwitch|Add-NetEventWFPCaptureProvider|Get-NetEventNetworkAdapter|Get-NetEventPacketCaptureProvider|Get-NetEventProvider|Get-NetEventSession|Get-NetEventVmNetworkAdapter|Get-NetEventVmSwitch|Get-NetEventWFPCaptureProvider|New-NetEventSession|Remove-NetEventNetworkAdapter|Remove-NetEventPacketCaptureProvider|Remove-NetEventProvider|Remove-NetEventSession|Remove-NetEventVmNetworkAdapter|Remove-NetEventVmSwitch|Remove-NetEventWFPCaptureProvider|Set-NetEventPacketCaptureProvider|Set-NetEventProvider|Set-NetEventSession|Set-NetEventWFPCaptureProvider|Start-NetEventSession|Stop-NetEventSession|\" +\n        \"Add-NetLbfoTeamMember|Add-NetLbfoTeamNic|Get-NetLbfoTeam|Get-NetLbfoTeamMember|Get-NetLbfoTeamNic|New-NetLbfoTeam|Remove-NetLbfoTeam|Remove-NetLbfoTeamMember|Remove-NetLbfoTeamNic|Rename-NetLbfoTeam|Set-NetLbfoTeam|Set-NetLbfoTeamMember|Set-NetLbfoTeamNic|\" +\n        \"Add-NetNatExternalAddress|Add-NetNatStaticMapping|Get-NetNat|Get-NetNatExternalAddress|Get-NetNatGlobal|Get-NetNatSession|Get-NetNatStaticMapping|New-NetNat|Remove-NetNat|Remove-NetNatExternalAddress|Remove-NetNatStaticMapping|Set-NetNat|Set-NetNatGlobal|\" +\n        \"Get-NetQosPolicy|New-NetQosPolicy|Remove-NetQosPolicy|Set-NetQosPolicy|\" +\n        \"Copy-NetFirewallRule|Copy-NetIPsecMainModeCryptoSet|Copy-NetIPsecMainModeRule|Copy-NetIPsecPhase1AuthSet|Copy-NetIPsecPhase2AuthSet|Copy-NetIPsecQuickModeCryptoSet|Copy-NetIPsecRule|Disable-NetFirewallRule|Disable-NetIPsecMainModeRule|Disable-NetIPsecRule|Enable-NetFirewallRule|Enable-NetIPsecMainModeRule|Enable-NetIPsecRule|Find-NetIPsecRule|Get-NetFirewallAddressFilter|Get-NetFirewallApplicationFilter|Get-NetFirewallInterfaceFilter|Get-NetFirewallInterfaceTypeFilter|Get-NetFirewallPortFilter|Get-NetFirewallProfile|Get-NetFirewallRule|Get-NetFirewallSecurityFilter|Get-NetFirewallServiceFilter|Get-NetFirewallSetting|Get-NetIPsecDospSetting|Get-NetIPsecMainModeCryptoSet|Get-NetIPsecMainModeRule|Get-NetIPsecMainModeSA|Get-NetIPsecPhase1AuthSet|Get-NetIPsecPhase2AuthSet|Get-NetIPsecQuickModeCryptoSet|Get-NetIPsecQuickModeSA|Get-NetIPsecRule|New-NetFirewallRule|New-NetIPsecDospSetting|New-NetIPsecMainModeCryptoSet|New-NetIPsecMainModeRule|New-NetIPsecPhase1AuthSet|New-NetIPsecPhase2AuthSet|New-NetIPsecQuickModeCryptoSet|New-NetIPsecRule|Open-NetGPO|Remove-NetFirewallRule|Remove-NetIPsecDospSetting|Remove-NetIPsecMainModeCryptoSet|Remove-NetIPsecMainModeRule|Remove-NetIPsecMainModeSA|Remove-NetIPsecPhase1AuthSet|Remove-NetIPsecPhase2AuthSet|Remove-NetIPsecQuickModeCryptoSet|Remove-NetIPsecQuickModeSA|Remove-NetIPsecRule|Rename-NetFirewallRule|Rename-NetIPsecMainModeCryptoSet|Rename-NetIPsecMainModeRule|Rename-NetIPsecPhase1AuthSet|Rename-NetIPsecPhase2AuthSet|Rename-NetIPsecQuickModeCryptoSet|Rename-NetIPsecRule|Save-NetGPO|Set-NetFirewallAddressFilter|Set-NetFirewallApplicationFilter|Set-NetFirewallInterfaceFilter|Set-NetFirewallInterfaceTypeFilter|Set-NetFirewallPortFilter|Set-NetFirewallProfile|Set-NetFirewallRule|Set-NetFirewallSecurityFilter|Set-NetFirewallServiceFilter|Set-NetFirewallSetting|Set-NetIPsecDospSetting|Set-NetIPsecMainModeCryptoSet|Set-NetIPsecMainModeRule|Set-NetIPsecPhase1AuthSet|Set-NetIPsecPhase2AuthSet|Set-NetIPsecQuickModeCryptoSet|Set-NetIPsecRule|Show-NetFirewallRule|Show-NetIPsecRule|Sync-NetIPsecRule|Update-NetIPsecRule|Get-DAPolicyChange|New-NetIPsecAuthProposal|New-NetIPsecMainModeCryptoProposal|New-NetIPsecQuickModeCryptoProposal|\" +\n        \"Add-NetSwitchTeamMember|Get-NetSwitchTeam|Get-NetSwitchTeamMember|New-NetSwitchTeam|Remove-NetSwitchTeam|Remove-NetSwitchTeamMember|Rename-NetSwitchTeam|\" +\n        \"Find-NetRoute|Get-NetCompartment|Get-NetIPAddress|Get-NetIPConfiguration|Get-NetIPInterface|Get-NetIPv4Protocol|Get-NetIPv6Protocol|Get-NetNeighbor|Get-NetOffloadGlobalSetting|Get-NetPrefixPolicy|Get-NetRoute|Get-NetTCPConnection|Get-NetTCPSetting|Get-NetTransportFilter|Get-NetUDPEndpoint|Get-NetUDPSetting|New-NetIPAddress|New-NetNeighbor|New-NetRoute|New-NetTransportFilter|Remove-NetIPAddress|Remove-NetNeighbor|Remove-NetRoute|Remove-NetTransportFilter|Set-NetIPAddress|Set-NetIPInterface|Set-NetIPv4Protocol|Set-NetIPv6Protocol|Set-NetNeighbor|Set-NetOffloadGlobalSetting|Set-NetRoute|Set-NetTCPSetting|Set-NetUDPSetting|Test-NetConnection|\" +\n        \"Get-DAConnectionStatus|Get-NCSIPolicyConfiguration|Reset-NCSIPolicyConfiguration|Set-NCSIPolicyConfiguration|\" +\n        \"Disable-NetworkSwitchEthernetPort|Disable-NetworkSwitchFeature|Disable-NetworkSwitchVlan|Enable-NetworkSwitchEthernetPort|Enable-NetworkSwitchFeature|Enable-NetworkSwitchVlan|Get-NetworkSwitchEthernetPort|Get-NetworkSwitchFeature|Get-NetworkSwitchGlobalData|Get-NetworkSwitchVlan|New-NetworkSwitchVlan|Remove-NetworkSwitchEthernetPortIPAddress|Remove-NetworkSwitchVlan|Restore-NetworkSwitchConfiguration|Save-NetworkSwitchConfiguration|Set-NetworkSwitchEthernetPortIPAddress|Set-NetworkSwitchPortMode|Set-NetworkSwitchPortProperty|Set-NetworkSwitchVlanProperty|\" +\n        \"Add-NetIPHttpsCertBinding|Disable-NetDnsTransitionConfiguration|Disable-NetIPHttpsProfile|Disable-NetNatTransitionConfiguration|Enable-NetDnsTransitionConfiguration|Enable-NetIPHttpsProfile|Enable-NetNatTransitionConfiguration|Get-Net6to4Configuration|Get-NetDnsTransitionConfiguration|Get-NetDnsTransitionMonitoring|Get-NetIPHttpsConfiguration|Get-NetIPHttpsState|Get-NetIsatapConfiguration|Get-NetNatTransitionConfiguration|Get-NetNatTransitionMonitoring|Get-NetTeredoConfiguration|Get-NetTeredoState|New-NetIPHttpsConfiguration|New-NetNatTransitionConfiguration|Remove-NetIPHttpsCertBinding|Remove-NetIPHttpsConfiguration|Remove-NetNatTransitionConfiguration|Rename-NetIPHttpsConfiguration|Reset-Net6to4Configuration|Reset-NetDnsTransitionConfiguration|Reset-NetIPHttpsConfiguration|Reset-NetIsatapConfiguration|Reset-NetTeredoConfiguration|Set-Net6to4Configuration|Set-NetDnsTransitionConfiguration|Set-NetIPHttpsConfiguration|Set-NetIsatapConfiguration|Set-NetNatTransitionConfiguration|Set-NetTeredoConfiguration|\" +\n        \"Find-Package|Find-PackageProvider|Get-Package|Get-PackageProvider|Get-PackageSource|Import-PackageProvider|Install-Package|Install-PackageProvider|Register-PackageSource|Save-Package|Set-PackageSource|Uninstall-Package|Unregister-PackageSource|\" +\n        \"Clear-PcsvDeviceLog|Get-PcsvDevice|Get-PcsvDeviceLog|Restart-PcsvDevice|Set-PcsvDeviceBootConfiguration|Set-PcsvDeviceNetworkConfiguration|Set-PcsvDeviceUserPassword|Start-PcsvDevice|Stop-PcsvDevice|\" +\n        \"AfterAll|AfterEach|Assert-MockCalled|Assert-VerifiableMocks|BeforeAll|BeforeEach|Context|Describe|Get-MockDynamicParameters|Get-TestDriveItem|In|InModuleScope|Invoke-Mock|Invoke-Pester|It|Mock|New-Fixture|Set-DynamicParameterVariables|Setup|Should|\" +\n        \"Add-CertificateEnrollmentPolicyServer|Export-Certificate|Export-PfxCertificate|Get-Certificate|Get-CertificateAutoEnrollmentPolicy|Get-CertificateEnrollmentPolicyServer|Get-CertificateNotificationTask|Get-PfxData|Import-Certificate|Import-PfxCertificate|New-CertificateNotificationTask|New-SelfSignedCertificate|Remove-CertificateEnrollmentPolicyServer|Remove-CertificateNotificationTask|Set-CertificateAutoEnrollmentPolicy|Switch-Certificate|Test-Certificate|\" +\n        \"Disable-PnpDevice|Enable-PnpDevice|Get-PnpDevice|Get-PnpDeviceProperty|\" +\n        \"Find-DscResource|Find-Module|Find-Script|Get-InstalledModule|Get-InstalledScript|Get-PSRepository|Install-Module|Install-Script|New-ScriptFileInfo|Publish-Module|Publish-Script|Register-PSRepository|Save-Module|Save-Script|Set-PSRepository|Test-ScriptFileInfo|Uninstall-Module|Uninstall-Script|Unregister-PSRepository|Update-Module|Update-ModuleManifest|Update-Script|Update-ScriptFileInfo|\" +\n        \"Add-Printer|Add-PrinterDriver|Add-PrinterPort|Get-PrintConfiguration|Get-Printer|Get-PrinterDriver|Get-PrinterPort|Get-PrinterProperty|Get-PrintJob|Read-PrinterNfcTag|Remove-Printer|Remove-PrinterDriver|Remove-PrinterPort|Remove-PrintJob|Rename-Printer|Restart-PrintJob|Resume-PrintJob|Set-PrintConfiguration|Set-Printer|Set-PrinterProperty|Suspend-PrintJob|Write-PrinterNfcTag|\" +\n        \"Configuration|Disable-DscDebug|Enable-DscDebug|Get-DscConfiguration|Get-DscConfigurationStatus|Get-DscLocalConfigurationManager|Get-DscResource|New-DscChecksum|Remove-DscConfigurationDocument|Restore-DscConfiguration|Stop-DscConfiguration|Invoke-DscResource|Publish-DscConfiguration|Set-DscLocalConfigurationManager|Start-DscConfiguration|Test-DscConfiguration|Update-DscConfiguration|\" +\n        \"Disable-PSTrace|Disable-PSWSManCombinedTrace|Disable-WSManTrace|Enable-PSTrace|Enable-PSWSManCombinedTrace|Enable-WSManTrace|Get-LogProperties|Set-LogProperties|Start-Trace|Stop-Trace|\" +\n        \"PSConsoleHostReadline|Get-PSReadlineKeyHandler|Get-PSReadlineOption|Remove-PSReadlineKeyHandler|Set-PSReadlineKeyHandler|Set-PSReadlineOption|\" +\n        \"Add-JobTrigger|Disable-JobTrigger|Disable-ScheduledJob|Enable-JobTrigger|Enable-ScheduledJob|Get-JobTrigger|Get-ScheduledJob|Get-ScheduledJobOption|New-JobTrigger|New-ScheduledJobOption|Register-ScheduledJob|Remove-JobTrigger|Set-JobTrigger|Set-ScheduledJob|Set-ScheduledJobOption|Unregister-ScheduledJob|\" +\n        \"New-PSWorkflowSession|New-PSWorkflowExecutionOption|\" +\n        \"Invoke-AsWorkflow|\" +\n        \"Disable-ScheduledTask|Enable-ScheduledTask|Export-ScheduledTask|Get-ClusteredScheduledTask|Get-ScheduledTask|Get-ScheduledTaskInfo|New-ScheduledTask|New-ScheduledTaskAction|New-ScheduledTaskPrincipal|New-ScheduledTaskSettingsSet|New-ScheduledTaskTrigger|Register-ClusteredScheduledTask|Register-ScheduledTask|Set-ClusteredScheduledTask|Set-ScheduledTask|Start-ScheduledTask|Stop-ScheduledTask|Unregister-ClusteredScheduledTask|Unregister-ScheduledTask|\" +\n        \"Confirm-SecureBootUEFI|Format-SecureBootUEFI|Get-SecureBootPolicy|Get-SecureBootUEFI|Set-SecureBootUEFI|\" +\n        \"Block-SmbShareAccess|Close-SmbOpenFile|Close-SmbSession|Disable-SmbDelegation|Enable-SmbDelegation|Get-SmbBandwidthLimit|Get-SmbClientConfiguration|Get-SmbClientNetworkInterface|Get-SmbConnection|Get-SmbDelegation|Get-SmbMapping|Get-SmbMultichannelConnection|Get-SmbMultichannelConstraint|Get-SmbOpenFile|Get-SmbServerConfiguration|Get-SmbServerNetworkInterface|Get-SmbSession|Get-SmbShare|Get-SmbShareAccess|Grant-SmbShareAccess|New-SmbMapping|New-SmbMultichannelConstraint|New-SmbShare|Remove-SmbBandwidthLimit|Remove-SmbMapping|Remove-SmbMultichannelConstraint|Remove-SmbShare|Revoke-SmbShareAccess|Set-SmbBandwidthLimit|Set-SmbClientConfiguration|Set-SmbPathAcl|Set-SmbServerConfiguration|Set-SmbShare|Unblock-SmbShareAccess|Update-SmbMultichannelConnection|\" +\n        \"Move-SmbClient|Get-SmbWitnessClient|Move-SmbWitnessClient|\" +\n        \"Get-StartApps|Export-StartLayout|Import-StartLayout|\" +\n        \"Disable-PhysicalDiskIndication|Disable-StorageDiagnosticLog|Enable-PhysicalDiskIndication|Enable-StorageDiagnosticLog|Flush-Volume|Get-DiskSNV|Get-PhysicalDiskSNV|Get-StorageEnclosureSNV|Initialize-Volume|Write-FileSystemCache|Add-InitiatorIdToMaskingSet|Add-PartitionAccessPath|Add-PhysicalDisk|Add-TargetPortToMaskingSet|Add-VirtualDiskToMaskingSet|Block-FileShareAccess|Clear-Disk|Clear-FileStorageTier|Clear-StorageDiagnosticInfo|Connect-VirtualDisk|Debug-FileShare|Debug-StorageSubSystem|Debug-Volume|Disable-PhysicalDiskIdentification|Disable-StorageEnclosureIdentification|Disable-StorageHighAvailability|Disconnect-VirtualDisk|Dismount-DiskImage|Enable-PhysicalDiskIdentification|Enable-StorageEnclosureIdentification|Enable-StorageHighAvailability|Format-Volume|Get-DedupProperties|Get-Disk|Get-DiskImage|Get-DiskStorageNodeView|Get-FileIntegrity|Get-FileShare|Get-FileShareAccessControlEntry|Get-FileStorageTier|Get-InitiatorId|Get-InitiatorPort|Get-MaskingSet|Get-OffloadDataTransferSetting|Get-Partition|Get-PartitionSupportedSize|Get-PhysicalDisk|Get-PhysicalDiskStorageNodeView|Get-ResiliencySetting|Get-StorageAdvancedProperty|Get-StorageDiagnosticInfo|Get-StorageEnclosure|Get-StorageEnclosureStorageNodeView|Get-StorageEnclosureVendorData|Get-StorageFaultDomain|Get-StorageFileServer|Get-StorageFirmwareInformation|Get-StorageHealthAction|Get-StorageHealthReport|Get-StorageHealthSetting|Get-StorageJob|Get-StorageNode|Get-StoragePool|Get-StorageProvider|Get-StorageReliabilityCounter|Get-StorageSetting|Get-StorageSubSystem|Get-StorageTier|Get-StorageTierSupportedSize|Get-SupportedClusterSizes|Get-SupportedFileSystems|Get-TargetPort|Get-TargetPortal|Get-VirtualDisk|Get-VirtualDiskSupportedSize|Get-Volume|Get-VolumeCorruptionCount|Get-VolumeScrubPolicy|Grant-FileShareAccess|Hide-VirtualDisk|Initialize-Disk|Mount-DiskImage|New-FileShare|New-MaskingSet|New-Partition|New-StorageFileServer|New-StoragePool|New-StorageSubsystemVirtualDisk|New-StorageTier|New-VirtualDisk|New-VirtualDiskClone|New-VirtualDiskSnapshot|New-Volume|Optimize-StoragePool|Optimize-Volume|Register-StorageSubsystem|Remove-FileShare|Remove-InitiatorId|Remove-InitiatorIdFromMaskingSet|Remove-MaskingSet|Remove-Partition|Remove-PartitionAccessPath|Remove-PhysicalDisk|Remove-StorageFileServer|Remove-StorageHealthSetting|Remove-StoragePool|Remove-StorageTier|Remove-TargetPortFromMaskingSet|Remove-VirtualDisk|Remove-VirtualDiskFromMaskingSet|Rename-MaskingSet|Repair-FileIntegrity|Repair-VirtualDisk|Repair-Volume|Reset-PhysicalDisk|Reset-StorageReliabilityCounter|Resize-Partition|Resize-StorageTier|Resize-VirtualDisk|Revoke-FileShareAccess|Set-Disk|Set-FileIntegrity|Set-FileShare|Set-FileStorageTier|Set-InitiatorPort|Set-Partition|Set-PhysicalDisk|Set-ResiliencySetting|Set-StorageFileServer|Set-StorageHealthSetting|Set-StoragePool|Set-StorageProvider|Set-StorageSetting|Set-StorageSubSystem|Set-StorageTier|Set-VirtualDisk|Set-Volume|Set-VolumeScrubPolicy|Show-VirtualDisk|Start-StorageDiagnosticLog|Stop-StorageDiagnosticLog|Stop-StorageJob|Unblock-FileShareAccess|Unregister-StorageSubsystem|Update-Disk|Update-HostStorageCache|Update-StorageFirmware|Update-StoragePool|Update-StorageProviderCache|Write-VolumeCache|\" +\n        \"Disable-TlsCipherSuite|Disable-TlsSessionTicketKey|Enable-TlsCipherSuite|Enable-TlsSessionTicketKey|Export-TlsSessionTicketKey|Get-TlsCipherSuite|New-TlsSessionTicketKey|\" +\n        \"Get-TroubleshootingPack|Invoke-TroubleshootingPack|\" +\n        \"Clear-Tpm|ConvertTo-TpmOwnerAuth|Disable-TpmAutoProvisioning|Enable-TpmAutoProvisioning|Get-Tpm|Get-TpmEndorsementKeyInfo|Get-TpmSupportedFeature|Import-TpmOwnerAuth|Initialize-Tpm|Set-TpmOwnerAuth|Unblock-Tpm|\" +\n        \"Add-VpnConnection|Add-VpnConnectionRoute|Add-VpnConnectionTriggerApplication|Add-VpnConnectionTriggerDnsConfiguration|Add-VpnConnectionTriggerTrustedNetwork|Get-VpnConnection|Get-VpnConnectionTrigger|New-EapConfiguration|New-VpnServerAddress|Remove-VpnConnection|Remove-VpnConnectionRoute|Remove-VpnConnectionTriggerApplication|Remove-VpnConnectionTriggerDnsConfiguration|Remove-VpnConnectionTriggerTrustedNetwork|Set-VpnConnection|Set-VpnConnectionIPsecConfiguration|Set-VpnConnectionProxy|Set-VpnConnectionTriggerDnsConfiguration|Set-VpnConnectionTriggerTrustedNetwork|\" +\n        \"Add-OdbcDsn|Disable-OdbcPerfCounter|Disable-WdacBidTrace|Enable-OdbcPerfCounter|Enable-WdacBidTrace|Get-OdbcDriver|Get-OdbcDsn|Get-OdbcPerfCounter|Get-WdacBidTrace|Remove-OdbcDsn|Set-OdbcDriver|Set-OdbcDsn|\" +\n        \"Get-WindowsDeveloperLicense|Show-WindowsDeveloperLicenseRegistration|Unregister-WindowsDeveloperLicense|\" +\n        \"Disable-WindowsErrorReporting|Enable-WindowsErrorReporting|Get-WindowsErrorReporting|\" +\n        \"Get-WindowsSearchSetting|Set-WindowsSearchSetting|\" +\n        \"Get-WindowsUpdateLog\"\n    );\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": builtinFunctions,\n        \"keyword\": keywords\n    }, \"identifier\");\n    var binaryOperatorsRe = (\n        \"eq|ne|gt|lt|le|ge|like|notlike|match|notmatch|contains|notcontains|in|notin|band|bor|bxor|bnot|\" + \n        \"ceq|cne|cgt|clt|cle|cge|clike|cnotlike|cmatch|cnotmatch|ccontains|cnotcontains|cin|cnotin|\" + \n        \"ieq|ine|igt|ilt|ile|ige|ilike|inotlike|imatch|inotmatch|icontains|inotcontains|iin|inotin|\" +\n        \"and|or|xor|not|\" +\n        \"split|join|replace|f|\" +\n        \"csplit|creplace|\" +\n        \"isplit|ireplace|\" +\n        \"is|isnot|as|\" +\n        \"shl|shr\"\n    );\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"#.*$\"\n            }, {\n                token : \"comment.start\",\n                regex : \"<#\",\n                next : \"comment\"\n            }, {\n                token : \"string\", // single line\n                regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n            }, {\n                token : \"string\", // single line\n                regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n            }, {\n                token : \"constant.language.boolean\",\n                regex : \"[$](?:[Tt]rue|[Ff]alse)\\\\b\"\n            }, {\n                token : \"constant.language\",\n                regex : \"[$][Nn]ull\\\\b\"\n            }, {\n                token : \"variable.instance\",\n                regex : \"[$][a-zA-Z][a-zA-Z0-9_]*\\\\b\"\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$\\\\-]*\\\\b\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"\\\\-(?:\" + binaryOperatorsRe + \")\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"&|\\\\+|\\\\-|\\\\*|\\\\/|\\\\%|\\\\=|\\\\>|\\\\&|\\\\!|\\\\|\"\n            }, {\n                token : \"lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment.end\",\n                regex : \"#>\",\n                next : \"start\"\n            }, {\n                token : \"doc.comment.tag\",\n                regex : \"^\\\\.\\\\w+\"\n            }, {\n                defaultToken : \"comment\"\n            }\n        ]\n    };\n};\n\noop.inherits(PowershellHighlightRules, TextHighlightRules);\n\nexports.PowershellHighlightRules = PowershellHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/powershell\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/powershell_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar PowershellHighlightRules = require(\"./powershell_highlight_rules\").PowershellHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = PowershellHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode({start: \"^\\\\s*(<#)\", end: \"^[#\\\\s]>\\\\s*$\"});\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"#\";\n    this.blockComment = {start: \"<#\", end: \"#>\"};\n    \n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n      \n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n\n    this.createWorker = function(session) {\n        return null;\n    };\n\n    this.$id = \"ace/mode/powershell\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-praat.js",
    "content": "ace.define(\"ace/mode/praat_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar PraatHighlightRules = function() {\n\n    var keywords = (\n        \"if|then|else|elsif|elif|endif|fi|\" +\n        \"endfor|endproc|\" + // related keywords specified below\n        \"while|endwhile|\" +\n        \"repeat|until|\" +\n        \"select|plus|minus|\" +\n        \"assert|asserterror\"\n    );\n\n    var predefinedVariables = (\n        \"macintosh|windows|unix|\" +\n        \"praatVersion|praatVersion\\\\$\" +\n        \"pi|undefined|\" +\n        \"newline\\\\$|tab\\\\$|\" +\n        \"shellDirectory\\\\$|homeDirectory\\\\$|preferencesDirectory\\\\$|\" +\n        \"temporaryDirectory\\\\$|defaultDirectory\\\\$\"\n    );\n    var directives = (\n        \"clearinfo|endSendPraat\"\n    );\n\n    var functions = (\n        \"writeInfo|writeInfoLine|appendInfo|appendInfoLine|info\\\\$|\" +\n        \"writeFile|writeFileLine|appendFile|appendFileLine|\" +\n        \"abs|round|floor|ceiling|min|max|imin|imax|\" +\n        \"sqrt|sin|cos|tan|arcsin|arccos|arctan|arctan2|sinc|sincpi|\" +\n        \"exp|ln|lnBeta|lnGamma|log10|log2|\" +\n        \"sinh|cosh|tanh|arcsinh|arccosh|arctanh|\" +\n        \"sigmoid|invSigmoid|erf|erfc|\" +\n        \"random(?:Uniform|Integer|Gauss|Poisson|Binomial)|\" +\n        \"gaussP|gaussQ|invGaussQ|incompleteGammaP|incompleteBeta|\" +\n        \"chiSquareP|chiSquareQ|invChiSquareQ|studentP|studentQ|invStudentQ|\" +\n        \"fisherP|fisherQ|invFisherQ|\" +\n        \"binomialP|binomialQ|invBinomialP|invBinomialQ|\" +\n        \"hertzToBark|barkToHerz|\" +\n        \"hertzToMel|melToHertz|\" +\n        \"hertzToSemitones|semitonesToHerz|\" +\n        \"erb|hertzToErb|erbToHertz|\" +\n        \"phonToDifferenceLimens|differenceLimensToPhon|\" +\n        \"soundPressureToPhon|\" +\n        \"beta|beta2|besselI|besselK|\" +\n        \"numberOfColumns|numberOfRows|\" +\n        \"selected|selected\\\\$|numberOfSelected|variableExists|\"+\n        \"index|rindex|startsWith|endsWith|\"+\n        \"index_regex|rindex_regex|replace_regex\\\\$|\"+\n        \"length|extractWord\\\\$|extractLine\\\\$|extractNumber|\" +\n        \"left\\\\$|right\\\\$|mid\\\\$|replace\\\\$|\" +\n        \"date\\\\$|fixed\\\\$|percent\\\\$|\" +\n        \"zero#|linear#|randomUniform#|randomInteger#|randomGauss#|\" +\n        \"beginPause|endPause|\" +\n        \"demoShow|demoWindowTitle|demoInput|demoWaitForInput|\" +\n        \"demoClicked|demoClickedIn|demoX|demoY|\" +\n        \"demoKeyPressed|demoKey\\\\$|\" +\n        \"demoExtraControlKeyPressed|demoShiftKeyPressed|\"+\n        \"demoCommandKeyPressed|demoOptionKeyPressed|\" +\n        \"environment\\\\$|chooseReadFile\\\\$|\" +\n        \"chooseDirectory\\\\$|createDirectory|fileReadable|deleteFile|\" +\n        \"selectObject|removeObject|plusObject|minusObject|\" +\n        \"runScript|exitScript|\" +\n        \"beginSendPraat|endSendPraat|\" +\n        \"objectsAreIdentical\"\n    );\n\n    var objectTypes = (\n        \"Activation|AffineTransform|AmplitudeTier|Art|Artword|Autosegment|\"  +\n        \"BarkFilter|CCA|Categories|Cepstrum|Cepstrumc|ChebyshevSeries|\"      +\n        \"ClassificationTable|Cochleagram|Collection|Configuration|\"          +\n        \"Confusion|ContingencyTable|Corpus|Correlation|Covariance|\"          +\n        \"CrossCorrelationTable|CrossCorrelationTables|DTW|Diagonalizer|\"     +\n        \"Discriminant|Dissimilarity|Distance|Distributions|DurationTier|\"    +\n        \"EEG|ERP|ERPTier|Eigen|Excitation|Excitations|ExperimentMFC|FFNet|\"  +\n        \"FeatureWeights|Formant|FormantFilter|FormantGrid|FormantPoint|\"     +\n        \"FormantTier|GaussianMixture|HMM|HMM_Observation|\"                   +\n        \"HMM_ObservationSequence|HMM_State|HMM_StateSequence|Harmonicity|\"   +\n        \"ISpline|Index|Intensity|IntensityTier|IntervalTier|KNN|KlattGrid|\"  +\n        \"KlattTable|LFCC|LPC|Label|LegendreSeries|LinearRegression|\"         +\n        \"LogisticRegression|LongSound|Ltas|MFCC|MSpline|ManPages|\"           +\n        \"Manipulation|Matrix|MelFilter|MixingMatrix|Movie|Network|\"          +\n        \"OTGrammar|OTHistory|OTMulti|PCA|PairDistribution|ParamCurve|\"       +\n        \"Pattern|Permutation|Pitch|PitchTier|PointProcess|Polygon|\"          +\n        \"Polynomial|Procrustes|RealPoint|RealTier|ResultsMFC|Roots|SPINET|\"  +\n        \"SSCP|SVD|Salience|ScalarProduct|Similarity|SimpleString|\"           +\n        \"SortedSetOfString|Sound|Speaker|Spectrogram|Spectrum|SpectrumTier|\" +\n        \"SpeechSynthesizer|SpellingChecker|Strings|StringsIndex|Table|\"      +\n        \"TableOfReal|TextGrid|TextInterval|TextPoint|TextTier|Tier|\"         +\n        \"Transition|VocalTract|Weight|WordList\"\n    );\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"string.interpolated\",\n                regex : /'((?:[a-z][a-zA-Z0-9_]*)(?:\\$|#|:[0-9]+)?)'/\n            }, {\n                token : [\"text\", \"text\", \"keyword.operator\", \"text\", \"keyword\"],\n                regex : /(^\\s*)(?:([a-z][a-zA-Z0-9_]*\\$?\\s+)(=)(\\s+))?(stopwatch)/\n            }, {\n                token : [\"text\", \"keyword\", \"text\", \"string\"],\n                regex : /(^\\s*)(print(?:line|tab)?|echo|exit|pause|send(?:praat|socket)|include|execute|system(?:_nocheck)?)(\\s+)(.*)/\n            }, {\n                token : [\"text\", \"keyword\"],\n                regex : \"(^\\\\s*)(\" + directives + \")$\"\n            }, {\n                token : [\"text\", \"keyword.operator\", \"text\"],\n                regex : /(\\s+)((?:\\+|-|\\/|\\*|<|>)=?|==?|!=|%|\\^|\\||and|or|not)(\\s+)/\n            }, {\n                token : [\"text\", \"text\", \"keyword.operator\", \"text\", \"keyword\", \"text\", \"keyword\"],\n                regex : /(^\\s*)(?:([a-z][a-zA-Z0-9_]*\\$?\\s+)(=)(\\s+))?(?:((?:no)?warn|(?:unix_)?nocheck|noprogress)(\\s+))?((?:[A-Z][^.:\"]+)(?:$|(?:\\.{3}|:)))/\n            }, {\n                token : [\"text\", \"keyword\", \"text\", \"keyword\"],\n                regex : /(^\\s*)(?:(demo)?(\\s+))((?:[A-Z][^.:\"]+)(?:$|(?:\\.{3}|:)))/\n            }, {\n                token : [\"text\", \"keyword\", \"text\", \"keyword\"],\n                regex : /^(\\s*)(?:(demo)(\\s+))?(10|12|14|16|24)$/\n            }, {\n                token : [\"text\", \"support.function\", \"text\"],\n                regex : /(\\s*)(do\\$?)(\\s*:\\s*|\\s*\\(\\s*)/\n            }, {\n                token : \"entity.name.type\",\n                regex : \"(\" + objectTypes + \")\"\n            }, {\n                token : \"variable.language\",\n                regex : \"(\" + predefinedVariables + \")\"\n            }, {\n                token : [\"support.function\", \"text\"],\n                regex : \"((?:\" + functions + \")\\\\$?)(\\\\s*(?::|\\\\())\"\n            }, {\n                token : \"keyword\",\n                regex : /(\\bfor\\b)/,\n                next : \"for\"\n            }, {\n                token : \"keyword\",\n                regex : \"(\\\\b(?:\" + keywords + \")\\\\b)\"\n            }, {\n                token : \"string\",\n                regex : /\"[^\"]*\"/\n            }, {\n                token : \"string\",\n                regex : /\"[^\"]*$/,\n                next : \"brokenstring\"\n            }, {\n                token : [\"text\", \"keyword\", \"text\", \"entity.name.section\"],\n                regex : /(^\\s*)(\\bform\\b)(\\s+)(.*)/,\n                next : \"form\"\n            }, {\n                token : \"constant.numeric\",\n                regex : /\\b[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\"keyword\", \"text\", \"entity.name.function\"],\n                regex : /(procedure)(\\s+)(\\S+)/\n            }, {\n                token : [\"entity.name.function\", \"text\"],\n                regex : /(@\\S+)(:|\\s*\\()/\n            }, {\n                token : [\"text\", \"keyword\", \"text\", \"entity.name.function\"],\n                regex : /(^\\s*)(call)(\\s+)(\\S+)/\n            }, {\n                token : \"comment\",\n                regex : /(^\\s*#|;).*$/\n            }, {\n                token : \"text\",\n                regex : /\\s+/\n            }\n        ],\n        \"form\" : [\n            {\n                token : [\"keyword\", \"text\", \"constant.numeric\"],\n                regex : /((?:optionmenu|choice)\\s+)(\\S+:\\s+)([0-9]+)/\n            }, {\n                token : [\"keyword\", \"constant.numeric\"],\n                regex : /((?:option|button)\\s+)([+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b)/\n            }, {\n                token : [\"keyword\", \"string\"],\n                regex : /((?:option|button)\\s+)(.*)/\n            }, {\n                token : [\"keyword\", \"text\", \"string\"],\n                regex : /((?:sentence|text)\\s+)(\\S+\\s*)(.*)/\n            }, {\n                token : [\"keyword\", \"text\", \"string\", \"invalid.illegal\"],\n                regex : /(word\\s+)(\\S+\\s*)(\\S+)?(\\s.*)?/\n            }, {\n                token : [\"keyword\", \"text\", \"constant.language\"],\n                regex : /(boolean\\s+)(\\S+\\s*)(0|1|\"?(?:yes|no)\"?)/\n            }, {\n                token : [\"keyword\", \"text\", \"constant.numeric\"],\n                regex : /((?:real|natural|positive|integer)\\s+)(\\S+\\s*)([+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b)/\n            }, {\n                token : [\"keyword\", \"string\"],\n                regex : /(comment\\s+)(.*)/\n            }, {\n                token : \"keyword\",\n                regex : 'endform',\n                next : \"start\"\n            }\n        ],\n        \"for\" : [\n            {\n                token : [\"keyword\", \"text\", \"constant.numeric\", \"text\"],\n                regex : /(from|to)(\\s+)([+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?)(\\s*)/\n            }, {\n                token : [\"keyword\", \"text\"],\n                regex : /(from|to)(\\s+\\S+\\s*)/\n            }, {\n                token : \"text\",\n                regex : /$/,\n                next : \"start\"\n            }\n        ],\n        \"brokenstring\" : [\n            {\n                token : [\"text\", \"string\"],\n                regex : /(\\s*\\.{3})([^\"]*)/\n            }, {\n                token : \"string\",\n                regex : /\"/,\n                next : \"start\"\n            }\n        ]\n    };\n};\n\noop.inherits(PraatHighlightRules, TextHighlightRules);\n\nexports.PraatHighlightRules = PraatHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/praat\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/praat_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar PraatHighlightRules = require(\"./praat_highlight_rules\").PraatHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = PraatHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.foldingRules = new CStyleFoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"#\";\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[:]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.$id = \"ace/mode/praat\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-prolog.js",
    "content": "ace.define(\"ace/mode/prolog_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar PrologHighlightRules = function() {\n\n    this.$rules = { start: \n       [ { include: '#comment' },\n         { include: '#basic_fact' },\n         { include: '#rule' },\n         { include: '#directive' },\n         { include: '#fact' } ],\n      '#atom': \n       [ { token: 'constant.other.atom.prolog',\n           regex: '\\\\b[a-z][a-zA-Z0-9_]*\\\\b' },\n         { token: 'constant.numeric.prolog',\n           regex: '-?\\\\d+(?:\\\\.\\\\d+)?' },\n         { include: '#string' } ],\n      '#basic_elem': \n       [ { include: '#comment' },\n         { include: '#statement' },\n         { include: '#constants' },\n         { include: '#operators' },\n         { include: '#builtins' },\n         { include: '#list' },\n         { include: '#atom' },\n         { include: '#variable' } ],\n      '#basic_fact': \n       [ { token: \n            [ 'entity.name.function.fact.basic.prolog',\n              'punctuation.end.fact.basic.prolog' ],\n           regex: '([a-z]\\\\w*)(\\\\.)' } ],\n      '#builtins': \n       [ { token: 'support.function.builtin.prolog',\n           regex: '\\\\b(?:abolish|abort|ancestors|arg|ascii|assert[az]|atom(?:ic)?|body|char|close|conc|concat|consult|define|definition|dynamic|dump|fail|file|free|free_proc|functor|getc|goal|halt|head|head|integer|length|listing|match_args|member|next_clause|nl|nonvar|nth|number|cvars|nvars|offset|op|print?|prompt|putc|quoted|ratom|read|redefine|rename|retract(?:all)?|see|seeing|seen|skip|spy|statistics|system|tab|tell|telling|term|time|told|univ|unlink_clause|unspy_predicate|var|write)\\\\b' } ],\n      '#comment': \n       [ { token: \n            [ 'punctuation.definition.comment.prolog',\n              'comment.line.percentage.prolog' ],\n           regex: '(%)(.*$)' },\n         { token: 'punctuation.definition.comment.prolog',\n           regex: '/\\\\*',\n           push: \n            [ { token: 'punctuation.definition.comment.prolog',\n                regex: '\\\\*/',\n                next: 'pop' },\n              { defaultToken: 'comment.block.prolog' } ] } ],\n      '#constants': \n       [ { token: 'constant.language.prolog',\n           regex: '\\\\b(?:true|false|yes|no)\\\\b' } ],\n      '#directive': \n       [ { token: 'keyword.operator.directive.prolog',\n           regex: ':-',\n           push: \n            [ { token: 'meta.directive.prolog', regex: '\\\\.', next: 'pop' },\n              { include: '#comment' },\n              { include: '#statement' },\n              { defaultToken: 'meta.directive.prolog' } ] } ],\n      '#expr': \n       [ { include: '#comments' },\n         { token: 'meta.expression.prolog',\n           regex: '\\\\(',\n           push: \n            [ { token: 'meta.expression.prolog', regex: '\\\\)', next: 'pop' },\n              { include: '#expr' },\n              { defaultToken: 'meta.expression.prolog' } ] },\n         { token: 'keyword.control.cutoff.prolog', regex: '!' },\n         { token: 'punctuation.control.and.prolog', regex: ',' },\n         { token: 'punctuation.control.or.prolog', regex: ';' },\n         { include: '#basic_elem' } ],\n      '#fact': \n       [ { token: \n            [ 'entity.name.function.fact.prolog',\n              'punctuation.begin.fact.parameters.prolog' ],\n           regex: '([a-z]\\\\w*)(\\\\()(?!.*:-)',\n           push: \n            [ { token: \n                 [ 'punctuation.end.fact.parameters.prolog',\n                   'punctuation.end.fact.prolog' ],\n                regex: '(\\\\))(\\\\.?)',\n                next: 'pop' },\n              { include: '#parameter' },\n              { defaultToken: 'meta.fact.prolog' } ] } ],\n      '#list': \n       [ { token: 'punctuation.begin.list.prolog',\n           regex: '\\\\[(?=.*\\\\])',\n           push: \n            [ { token: 'punctuation.end.list.prolog',\n                regex: '\\\\]',\n                next: 'pop' },\n              { include: '#comment' },\n              { token: 'punctuation.separator.list.prolog', regex: ',' },\n              { token: 'punctuation.concat.list.prolog',\n                regex: '\\\\|',\n                push: \n                 [ { token: 'meta.list.concat.prolog',\n                     regex: '(?=\\\\s*\\\\])',\n                     next: 'pop' },\n                   { include: '#basic_elem' },\n                   { defaultToken: 'meta.list.concat.prolog' } ] },\n              { include: '#basic_elem' },\n              { defaultToken: 'meta.list.prolog' } ] } ],\n      '#operators': \n       [ { token: 'keyword.operator.prolog',\n           regex: '\\\\\\\\\\\\+|\\\\bnot\\\\b|\\\\bis\\\\b|->|[><]|[><\\\\\\\\:=]?=|(?:=\\\\\\\\|\\\\\\\\=)=' } ],\n      '#parameter': \n       [ { token: 'variable.language.anonymous.prolog',\n           regex: '\\\\b_\\\\b' },\n         { token: 'variable.parameter.prolog',\n           regex: '\\\\b[A-Z_]\\\\w*\\\\b' },\n         { token: 'punctuation.separator.parameters.prolog', regex: ',' },\n         { include: '#basic_elem' },\n         { token: 'text', regex: '[^\\\\s]' } ],\n      '#rule': \n       [ { token: 'meta.rule.prolog',\n           regex: '(?=[a-z]\\\\w*.*:-)',\n           push: \n            [ { token: 'punctuation.rule.end.prolog',\n                regex: '\\\\.',\n                next: 'pop' },\n              { token: 'meta.rule.signature.prolog',\n                regex: '(?=[a-z]\\\\w*.*:-)',\n                push: \n                 [ { token: 'meta.rule.signature.prolog',\n                     regex: '(?=:-)',\n                     next: 'pop' },\n                   { token: 'entity.name.function.rule.prolog',\n                     regex: '[a-z]\\\\w*(?=\\\\(|\\\\s*:-)' },\n                   { token: 'punctuation.rule.parameters.begin.prolog',\n                     regex: '\\\\(',\n                     push: \n                      [ { token: 'punctuation.rule.parameters.end.prolog',\n                          regex: '\\\\)',\n                          next: 'pop' },\n                        { include: '#parameter' },\n                        { defaultToken: 'meta.rule.parameters.prolog' } ] },\n                   { defaultToken: 'meta.rule.signature.prolog' } ] },\n              { token: 'keyword.operator.definition.prolog',\n                regex: ':-',\n                push: \n                 [ { token: 'meta.rule.definition.prolog',\n                     regex: '(?=\\\\.)',\n                     next: 'pop' },\n                   { include: '#comment' },\n                   { include: '#expr' },\n                   { defaultToken: 'meta.rule.definition.prolog' } ] },\n              { defaultToken: 'meta.rule.prolog' } ] } ],\n      '#statement': \n       [ { token: 'meta.statement.prolog',\n           regex: '(?=[a-z]\\\\w*\\\\()',\n           push: \n            [ { token: 'punctuation.end.statement.parameters.prolog',\n                regex: '\\\\)',\n                next: 'pop' },\n              { include: '#builtins' },\n              { include: '#atom' },\n              { token: 'punctuation.begin.statement.parameters.prolog',\n                regex: '\\\\(',\n                push: \n                 [ { token: 'meta.statement.parameters.prolog',\n                     regex: '(?=\\\\))',\n                     next: 'pop' },\n                   { token: 'punctuation.separator.statement.prolog', regex: ',' },\n                   { include: '#basic_elem' },\n                   { defaultToken: 'meta.statement.parameters.prolog' } ] },\n              { defaultToken: 'meta.statement.prolog' } ] } ],\n      '#string': \n       [ { token: 'punctuation.definition.string.begin.prolog',\n           regex: '\\'',\n           push: \n            [ { token: 'punctuation.definition.string.end.prolog',\n                regex: '\\'',\n                next: 'pop' },\n              { token: 'constant.character.escape.prolog', regex: '\\\\\\\\.' },\n              { token: 'constant.character.escape.quote.prolog',\n                regex: '\\'\\'' },\n              { defaultToken: 'string.quoted.single.prolog' } ] } ],\n      '#variable': \n       [ { token: 'variable.language.anonymous.prolog',\n           regex: '\\\\b_\\\\b' },\n         { token: 'variable.other.prolog',\n           regex: '\\\\b[A-Z_][a-zA-Z0-9_]*\\\\b' } ] }\n    \n    this.normalizeRules();\n};\n\nPrologHighlightRules.metaData = { fileTypes: [ 'plg', 'prolog' ],\n      foldingStartMarker: '(%\\\\s*region \\\\w*)|([a-z]\\\\w*.*:- ?)',\n      foldingStopMarker: '(%\\\\s*end(\\\\s*region)?)|(?=\\\\.)',\n      keyEquivalent: '^~P',\n      name: 'Prolog',\n      scopeName: 'source.prolog' }\n\n\noop.inherits(PrologHighlightRules, TextHighlightRules);\n\nexports.PrologHighlightRules = PrologHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/prolog\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/prolog_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar PrologHighlightRules = require(\"./prolog_highlight_rules\").PrologHighlightRules;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = PrologHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"%\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n    this.$id = \"ace/mode/prolog\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-properties.js",
    "content": "ace.define(\"ace/mode/properties_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar PropertiesHighlightRules = function() {\n\n    var escapeRe = /\\\\u[0-9a-fA-F]{4}|\\\\/;\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : /[!#].*$/\n            }, {\n                token : \"keyword\",\n                regex : /[=:]$/\n            }, {\n                token : \"keyword\",\n                regex : /[=:]/,\n                next  : \"value\"\n            }, {\n                token : \"constant.language.escape\",\n                regex : escapeRe\n            }, {\n                defaultToken: \"variable\"\n            }\n        ],\n        \"value\" : [\n            {\n                regex : /\\\\$/,\n                token : \"string\",\n                next : \"value\"\n            }, {\n                regex : /$/,\n                token : \"string\",\n                next : \"start\"\n            }, {\n                token : \"constant.language.escape\",\n                regex : escapeRe\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n\n};\n\noop.inherits(PropertiesHighlightRules, TextHighlightRules);\n\nexports.PropertiesHighlightRules = PropertiesHighlightRules;\n});\n\nace.define(\"ace/mode/properties\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/properties_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar PropertiesHighlightRules = require(\"./properties_highlight_rules\").PropertiesHighlightRules;\n\nvar Mode = function() {\n    this.HighlightRules = PropertiesHighlightRules;\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.$id = \"ace/mode/properties\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-protobuf.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar cFunctions = exports.cFunctions = \"\\\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\\\b\"\n\nvar c_cppHighlightRules = function() {\n\n    var keywordControls = (\n        \"break|case|continue|default|do|else|for|goto|if|_Pragma|\" +\n        \"return|switch|while|catch|operator|try|throw|using\"\n    );\n    \n    var storageType = (\n        \"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|\" +\n        \"_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|\" +\n        \"class|wchar_t|template|char16_t|char32_t\"\n    );\n\n    var storageModifiers = (\n        \"const|extern|register|restrict|static|volatile|inline|private|\" +\n        \"protected|public|friend|explicit|virtual|export|mutable|typename|\" +\n        \"constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\"\n    );\n\n    var keywordOperators = (\n        \"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq\" +\n        \"const_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\"\n    );\n\n    var builtinConstants = (\n        \"NULL|true|false|TRUE|FALSE|nullptr\"\n    );\n\n    var keywordMapper = this.$keywords = this.createKeywordMapper({\n        \"keyword.control\" : keywordControls,\n        \"storage.type\" : storageType,\n        \"storage.modifier\" : storageModifiers,\n        \"keyword.operator\" : keywordOperators,\n        \"variable.language\": \"this\",\n        \"constant.language\": builtinConstants\n    }, \"identifier\");\n\n    var identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\";\n    var escapeRe = /\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source;\n\n    this.$rules = { \n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"//$\",\n                next : \"start\"\n            }, {\n                token : \"comment\",\n                regex : \"//\",\n                next : \"singleLineComment\"\n            },\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n                token : \"string\", // character\n                regex : \"'(?:\" + escapeRe + \"|.)?'\"\n            }, {\n                token : \"string.start\",\n                regex : '\"', \n                stateName: \"qqstring\",\n                next: [\n                    { token: \"string\", regex: /\\\\\\s*$/, next: \"qqstring\" },\n                    { token: \"constant.language.escape\", regex: escapeRe },\n                    { token: \"constant.language.escape\", regex: /%[^'\"\\\\]/ },\n                    { token: \"string.end\", regex: '\"|$', next: \"start\" },\n                    { defaultToken: \"string\"}\n                ]\n            }, {\n                token : \"string.start\",\n                regex : 'R\"\\\\(', \n                stateName: \"rawString\",\n                next: [\n                    { token: \"string.end\", regex: '\\\\)\"', next: \"start\" },\n                    { defaultToken: \"string\"}\n                ]\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : \"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"\n            }, {\n                token : \"keyword\", // pre-compiler directives\n                regex : \"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",\n                next  : \"directive\"\n            }, {\n                token : \"keyword\", // special case pre-compiler directive\n                regex : \"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"\n            }, {\n                token : \"support.function.C99.c\",\n                regex : cFunctions\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/\n            }, {\n              token : \"punctuation.operator\",\n              regex : \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ],\n        \"singleLineComment\" : [\n            {\n                token : \"comment\",\n                regex : /\\\\$/,\n                next : \"singleLineComment\"\n            }, {\n                token : \"comment\",\n                regex : /$/,\n                next : \"start\"\n            }, {\n                defaultToken: \"comment\"\n            }\n        ],\n        \"directive\" : [\n            {\n                token : \"constant.other.multiline\",\n                regex : /\\\\/\n            },\n            {\n                token : \"constant.other.multiline\",\n                regex : /.*\\\\/\n            },\n            {\n                token : \"constant.other\",\n                regex : \"\\\\s*<.+?>\",\n                next : \"start\"\n            },\n            {\n                token : \"constant.other\", // single line\n                regex : '\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',\n                next : \"start\"\n            }, \n            {\n                token : \"constant.other\", // single line\n                regex : \"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",\n                next : \"start\"\n            },\n            {\n                token : \"constant.other\",\n                regex : /[^\\\\\\/]+/,\n                next : \"start\"\n            }\n        ]\n    };\n\n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n    this.normalizeRules();\n};\n\noop.inherits(c_cppHighlightRules, TextHighlightRules);\n\nexports.c_cppHighlightRules = c_cppHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/c_cpp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c_cpp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar c_cppHighlightRules = require(\"./c_cpp_highlight_rules\").c_cppHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar Range = require(\"../range\").Range;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = c_cppHighlightRules;\n\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.$id = \"ace/mode/c_cpp\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/protobuf_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n    \"use strict\";\n\n    var oop = require(\"../lib/oop\");\n    var TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\n    var ProtobufHighlightRules = function() {\n\n        var builtinTypes = \"double|float|int32|int64|uint32|uint64|sint32|\" +\n                           \"sint64|fixed32|fixed64|sfixed32|sfixed64|bool|\" +\n                           \"string|bytes\";\n        var keywordDeclaration = \"message|required|optional|repeated|package|\" +\n                                 \"import|option|enum\";\n\n        var keywordMapper = this.createKeywordMapper({\n            \"keyword.declaration.protobuf\": keywordDeclaration,\n            \"support.type\": builtinTypes\n        }, \"identifier\");\n\n        this.$rules = {\n            \"start\": [{\n                    token: \"comment\",\n                    regex: /\\/\\/.*$/\n                }, {\n                    token: \"comment\",\n                    regex: /\\/\\*/,\n                    next: \"comment\"\n                }, {\n                    token: \"constant\",\n                    regex: \"<[^>]+>\"\n                }, {\n                    regex: \"=\",\n                    token: \"keyword.operator.assignment.protobuf\"\n                }, {\n                    token : \"string\", // single line\n                    regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n                }, {\n                    token : \"string\", // single line\n                    regex : '[\\'](?:(?:\\\\\\\\.)|(?:[^\\'\\\\\\\\]))*?[\\']'\n                }, {\n                    token: \"constant.numeric\", // hex\n                    regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n                }, {\n                    token: \"constant.numeric\", // float\n                    regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n                }, {\n                    token: keywordMapper,\n                    regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n                }],\n            \"comment\": [{\n                    token: \"comment\", // closing comment\n                    regex: \".*?\\\\*\\\\/\",\n                    next: \"start\"\n                }, {\n                    token: \"comment\", // comment spanning whole line\n                    regex: \".+\"\n                }]\n        };\n\n        this.normalizeRules();\n    };\n\n    oop.inherits(ProtobufHighlightRules, TextHighlightRules);\n\n    exports.ProtobufHighlightRules = ProtobufHighlightRules;\n});\n\nace.define(\"ace/mode/protobuf\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/c_cpp\",\"ace/mode/protobuf_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar CMode = require(\"./c_cpp\").Mode;\nvar ProtobufHighlightRules = require(\"./protobuf_highlight_rules\").ProtobufHighlightRules;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    CMode.call(this);\n    this.foldingRules = new CStyleFoldMode();\n    this.HighlightRules = ProtobufHighlightRules;\n};\noop.inherits(Mode, CMode);\n\n(function() {\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n    this.$id = \"ace/mode/protobuf\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-python.js",
    "content": "ace.define(\"ace/mode/python_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar PythonHighlightRules = function() {\n\n    var keywords = (\n        \"and|as|assert|break|class|continue|def|del|elif|else|except|exec|\" +\n        \"finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|\" +\n        \"raise|return|try|while|with|yield\"\n    );\n\n    var builtinConstants = (\n        \"True|False|None|NotImplemented|Ellipsis|__debug__\"\n    );\n\n    var builtinFunctions = (\n        \"abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|\" +\n        \"eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|\" +\n        \"binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|\" +\n        \"float|list|raw_input|unichr|callable|format|locals|reduce|unicode|\" +\n        \"chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|\" +\n        \"cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|\" +\n        \"__import__|complex|hash|min|set|apply|delattr|help|next|setattr|\" +\n        \"buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern\"\n    );\n    var keywordMapper = this.createKeywordMapper({\n        \"invalid.deprecated\": \"debugger\",\n        \"support.function\": builtinFunctions,\n        \"constant.language\": builtinConstants,\n        \"keyword\": keywords\n    }, \"identifier\");\n\n    var strPre = \"(?:r|u|ur|R|U|UR|Ur|uR)?\";\n\n    var decimalInteger = \"(?:(?:[1-9]\\\\d*)|(?:0))\";\n    var octInteger = \"(?:0[oO]?[0-7]+)\";\n    var hexInteger = \"(?:0[xX][\\\\dA-Fa-f]+)\";\n    var binInteger = \"(?:0[bB][01]+)\";\n    var integer = \"(?:\" + decimalInteger + \"|\" + octInteger + \"|\" + hexInteger + \"|\" + binInteger + \")\";\n\n    var exponent = \"(?:[eE][+-]?\\\\d+)\";\n    var fraction = \"(?:\\\\.\\\\d+)\";\n    var intPart = \"(?:\\\\d+)\";\n    var pointFloat = \"(?:(?:\" + intPart + \"?\" + fraction + \")|(?:\" + intPart + \"\\\\.))\";\n    var exponentFloat = \"(?:(?:\" + pointFloat + \"|\" +  intPart + \")\" + exponent + \")\";\n    var floatNumber = \"(?:\" + exponentFloat + \"|\" + pointFloat + \")\";\n\n    var stringEscape =  \"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\\\\\abfnrtv'\\\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})\";\n\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment\",\n            regex : \"#.*$\"\n        }, {\n            token : \"string\",           // multi line \"\"\" string start\n            regex : strPre + '\"{3}',\n            next : \"qqstring3\"\n        }, {\n            token : \"string\",           // \" string\n            regex : strPre + '\"(?=.)',\n            next : \"qqstring\"\n        }, {\n            token : \"string\",           // multi line ''' string start\n            regex : strPre + \"'{3}\",\n            next : \"qstring3\"\n        }, {\n            token : \"string\",           // ' string\n            regex : strPre + \"'(?=.)\",\n            next : \"qstring\"\n        }, {\n            token : \"constant.numeric\", // imaginary\n            regex : \"(?:\" + floatNumber + \"|\\\\d+)[jJ]\\\\b\"\n        }, {\n            token : \"constant.numeric\", // float\n            regex : floatNumber\n        }, {\n            token : \"constant.numeric\", // long integer\n            regex : integer + \"[lL]\\\\b\"\n        }, {\n            token : \"constant.numeric\", // integer\n            regex : integer + \"\\\\b\"\n        }, {\n            token : keywordMapper,\n            regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n        }, {\n            token : \"keyword.operator\",\n            regex : \"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|%|<<|>>|&|\\\\||\\\\^|~|<|>|<=|=>|==|!=|<>|=\"\n        }, {\n            token : \"paren.lparen\",\n            regex : \"[\\\\[\\\\(\\\\{]\"\n        }, {\n            token : \"paren.rparen\",\n            regex : \"[\\\\]\\\\)\\\\}]\"\n        }, {\n            token : \"text\",\n            regex : \"\\\\s+\"\n        } ],\n        \"qqstring3\" : [ {\n            token : \"constant.language.escape\",\n            regex : stringEscape\n        }, {\n            token : \"string\", // multi line \"\"\" string end\n            regex : '\"{3}',\n            next : \"start\"\n        }, {\n            defaultToken : \"string\"\n        } ],\n        \"qstring3\" : [ {\n            token : \"constant.language.escape\",\n            regex : stringEscape\n        }, {\n            token : \"string\",  // multi line ''' string end\n            regex : \"'{3}\",\n            next : \"start\"\n        }, {\n            defaultToken : \"string\"\n        } ],\n        \"qqstring\" : [{\n            token : \"constant.language.escape\",\n            regex : stringEscape\n        }, {\n            token : \"string\",\n            regex : \"\\\\\\\\$\",\n            next  : \"qqstring\"\n        }, {\n            token : \"string\",\n            regex : '\"|$',\n            next  : \"start\"\n        }, {\n            defaultToken: \"string\"\n        }],\n        \"qstring\" : [{\n            token : \"constant.language.escape\",\n            regex : stringEscape\n        }, {\n            token : \"string\",\n            regex : \"\\\\\\\\$\",\n            next  : \"qstring\"\n        }, {\n            token : \"string\",\n            regex : \"'|$\",\n            next  : \"start\"\n        }, {\n            defaultToken: \"string\"\n        }]\n    };\n};\n\noop.inherits(PythonHighlightRules, TextHighlightRules);\n\nexports.PythonHighlightRules = PythonHighlightRules;\n});\n\nace.define(\"ace/mode/folding/pythonic\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(markers) {\n    this.foldingStartMarker = new RegExp(\"([\\\\[{])(?:\\\\s*)$|(\" + markers + \")(?:\\\\s*)(?:#.*)?$\");\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, match.index);\n            if (match[2])\n                return this.indentationBlock(session, row, match.index + match[2].length);\n            return this.indentationBlock(session, row);\n        }\n    }\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/python\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/python_highlight_rules\",\"ace/mode/folding/pythonic\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar PythonHighlightRules = require(\"./python_highlight_rules\").PythonHighlightRules;\nvar PythonFoldMode = require(\"./folding/pythonic\").FoldMode;\nvar Range = require(\"../range\").Range;\n\nvar Mode = function() {\n    this.HighlightRules = PythonHighlightRules;\n    this.foldingRules = new PythonFoldMode(\"\\\\:\");\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"#\";\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[:]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        }\n\n        return indent;\n    };\n\n    var outdents = {\n        \"pass\": 1,\n        \"return\": 1,\n        \"raise\": 1,\n        \"break\": 1,\n        \"continue\": 1\n    };\n    \n    this.checkOutdent = function(state, line, input) {\n        if (input !== \"\\r\\n\" && input !== \"\\r\" && input !== \"\\n\")\n            return false;\n\n        var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;\n        \n        if (!tokens)\n            return false;\n        do {\n            var last = tokens.pop();\n        } while (last && (last.type == \"comment\" || (last.type == \"text\" && last.value.match(/^\\s+$/))));\n        \n        if (!last)\n            return false;\n        \n        return (last.type == \"keyword\" && outdents[last.value]);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        \n        row += 1;\n        var indent = this.$getIndent(doc.getLine(row));\n        var tab = doc.getTabString();\n        if (indent.slice(-tab.length) == tab)\n            doc.remove(new Range(row, indent.length-tab.length, row, indent.length));\n    };\n\n    this.$id = \"ace/mode/python\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-r.js",
    "content": "ace.define(\"ace/mode/tex_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar TexHighlightRules = function(textClass) {\n\n    if (!textClass)\n        textClass = \"text\";\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"%.*$\"\n            }, {\n                token : textClass, // non-command\n                regex : \"\\\\\\\\[$&%#\\\\{\\\\}]\"\n            }, {\n                token : \"keyword\", // command\n                regex : \"\\\\\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\\\b\",\n               next : \"nospell\"\n            }, {\n                token : \"keyword\", // command\n                regex : \"\\\\\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])\"\n            }, {\n               token : \"paren.keyword.operator\",\n                regex : \"[[({]\"\n            }, {\n               token : \"paren.keyword.operator\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : textClass,\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"nospell\" : [\n           {\n               token : \"comment\",\n               regex : \"%.*$\",\n               next : \"start\"\n           }, {\n               token : \"nospell.\" + textClass, // non-command\n               regex : \"\\\\\\\\[$&%#\\\\{\\\\}]\"\n           }, {\n               token : \"keyword\", // command\n               regex : \"\\\\\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\\\b\"\n           }, {\n               token : \"keyword\", // command\n               regex : \"\\\\\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])\",\n               next : \"start\"\n           }, {\n               token : \"paren.keyword.operator\",\n               regex : \"[[({]\"\n           }, {\n               token : \"paren.keyword.operator\",\n               regex : \"[\\\\])]\"\n           }, {\n               token : \"paren.keyword.operator\",\n               regex : \"}\",\n               next : \"start\"\n           }, {\n               token : \"nospell.\" + textClass,\n               regex : \"\\\\s+\"\n           }, {\n               token : \"nospell.\" + textClass,\n               regex : \"\\\\w+\"\n           }\n        ]\n    };\n};\n\noop.inherits(TexHighlightRules, TextHighlightRules);\n\nexports.TexHighlightRules = TexHighlightRules;\n});\n\nace.define(\"ace/mode/r_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/tex_highlight_rules\"], function(require, exports, module)\n{\n\n   var oop = require(\"../lib/oop\");\n   var lang = require(\"../lib/lang\");\n   var TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n   var TexHighlightRules = require(\"./tex_highlight_rules\").TexHighlightRules;\n\n   var RHighlightRules = function()\n   {\n\n      var keywords = lang.arrayToMap(\n            (\"function|if|in|break|next|repeat|else|for|return|switch|while|try|tryCatch|stop|warning|require|library|attach|detach|source|setMethod|setGeneric|setGroupGeneric|setClass\")\n                  .split(\"|\")\n            );\n\n      var buildinConstants = lang.arrayToMap(\n            (\"NULL|NA|TRUE|FALSE|T|F|Inf|NaN|NA_integer_|NA_real_|NA_character_|\" +\n             \"NA_complex_\").split(\"|\")\n            );\n\n      this.$rules = {\n         \"start\" : [\n            {\n               token : \"comment.sectionhead\",\n               regex : \"#+(?!').*(?:----|====|####)\\\\s*$\"\n            },\n            {\n               token : \"comment\",\n               regex : \"#+'\",\n               next : \"rd-start\"\n            },\n            {\n               token : \"comment\",\n               regex : \"#.*$\"\n            },\n            {\n               token : \"string\", // multi line string start\n               regex : '[\"]',\n               next : \"qqstring\"\n            },\n            {\n               token : \"string\", // multi line string start\n               regex : \"[']\",\n               next : \"qstring\"\n            },\n            {\n               token : \"constant.numeric\", // hex\n               regex : \"0[xX][0-9a-fA-F]+[Li]?\\\\b\"\n            },\n            {\n               token : \"constant.numeric\", // explicit integer\n               regex : \"\\\\d+L\\\\b\"\n            },\n            {\n               token : \"constant.numeric\", // number\n               regex : \"\\\\d+(?:\\\\.\\\\d*)?(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b\"\n            },\n            {\n               token : \"constant.numeric\", // number with leading decimal\n               regex : \"\\\\.\\\\d+(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b\"\n            },\n            {\n               token : \"constant.language.boolean\",\n               regex : \"(?:TRUE|FALSE|T|F)\\\\b\"\n            },\n            {\n               token : \"identifier\",\n               regex : \"`.*?`\"\n            },\n            {\n               onMatch : function(value) {\n                  if (keywords[value])\n                     return \"keyword\";\n                  else if (buildinConstants[value])\n                     return \"constant.language\";\n                  else if (value == '...' || value.match(/^\\.\\.\\d+$/))\n                     return \"variable.language\";\n                  else\n                     return \"identifier\";\n               },\n               regex : \"[a-zA-Z.][a-zA-Z0-9._]*\\\\b\"\n            },\n            {\n               token : \"keyword.operator\",\n               regex : \"%%|>=|<=|==|!=|\\\\->|<\\\\-|\\\\|\\\\||&&|=|\\\\+|\\\\-|\\\\*|/|\\\\^|>|<|!|&|\\\\||~|\\\\$|:\"\n            },\n            {\n               token : \"keyword.operator\", // infix operators\n               regex : \"%.*?%\"\n            },\n            {\n               token : \"paren.keyword.operator\",\n               regex : \"[[({]\"\n            },\n            {\n               token : \"paren.keyword.operator\",\n               regex : \"[\\\\])}]\"\n            },\n            {\n               token : \"text\",\n               regex : \"\\\\s+\"\n            }\n         ],\n         \"qqstring\" : [\n            {\n               token : \"string\",\n               regex : '(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',\n               next : \"start\"\n            },\n            {\n               token : \"string\",\n               regex : '.+'\n            }\n         ],\n         \"qstring\" : [\n            {\n               token : \"string\",\n               regex : \"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",\n               next : \"start\"\n            },\n            {\n               token : \"string\",\n               regex : '.+'\n            }\n         ]\n      };\n\n      var rdRules = new TexHighlightRules(\"comment\").getRules();\n      for (var i = 0; i < rdRules[\"start\"].length; i++) {\n         rdRules[\"start\"][i].token += \".virtual-comment\";\n      }\n\n      this.addRules(rdRules, \"rd-\");\n      this.$rules[\"rd-start\"].unshift({\n          token: \"text\",\n          regex: \"^\",\n          next: \"start\"\n      });\n      this.$rules[\"rd-start\"].unshift({\n         token : \"keyword\",\n         regex : \"@(?!@)[^ ]*\"\n      });\n      this.$rules[\"rd-start\"].unshift({\n         token : \"comment\",\n         regex : \"@@\"\n      });\n      this.$rules[\"rd-start\"].push({\n         token : \"comment\",\n         regex : \"[^%\\\\\\\\[({\\\\])}]+\"\n      });\n   };\n\n   oop.inherits(RHighlightRules, TextHighlightRules);\n\n   exports.RHighlightRules = RHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/r\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/r_highlight_rules\",\"ace/mode/matching_brace_outdent\"], function(require, exports, module) {\n   \"use strict\";\n\n   var Range = require(\"../range\").Range;\n   var oop = require(\"../lib/oop\");\n   var TextMode = require(\"./text\").Mode;\n   var TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n   var RHighlightRules = require(\"./r_highlight_rules\").RHighlightRules;\n   var MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\n\n   var Mode = function(){\n      this.HighlightRules = RHighlightRules;\n      this.$outdent = new MatchingBraceOutdent();\n      this.$behaviour = this.$defaultBehaviour;\n   };\n   oop.inherits(Mode, TextMode);\n\n   (function()\n   {\n      this.lineCommentStart = \"#\";\n       this.$id = \"ace/mode/r\";\n   }).call(Mode.prototype);\n   exports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-razor.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar propertyMap = {\n    \"background\": {\"#$0\": 1},\n    \"background-color\": {\"#$0\": 1, \"transparent\": 1, \"fixed\": 1},\n    \"background-image\": {\"url('/$0')\": 1},\n    \"background-repeat\": {\"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1},\n    \"background-position\": {\"bottom\":2, \"center\":2, \"left\":2, \"right\":2, \"top\":2, \"inherit\":2},\n    \"background-attachment\": {\"scroll\": 1, \"fixed\": 1},\n    \"background-size\": {\"cover\": 1, \"contain\": 1},\n    \"background-clip\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"background-origin\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"border\": {\"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1},\n    \"border-color\": {\"#$0\": 1},\n    \"border-style\": {\"solid\":2, \"dashed\":2, \"dotted\":2, \"double\":2, \"groove\":2, \"hidden\":2, \"inherit\":2, \"inset\":2, \"none\":2, \"outset\":2, \"ridged\":2},\n    \"border-collapse\": {\"collapse\": 1, \"separate\": 1},\n    \"bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"clear\": {\"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1},\n    \"color\": {\"#$0\": 1, \"rgb(#$00,0,0)\": 1},\n    \"cursor\": {\"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1},\n    \"display\": {\"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1},\n    \"empty-cells\": {\"show\": 1, \"hide\": 1},\n    \"float\": {\"left\": 1, \"right\": 1, \"none\": 1},\n    \"font-family\": {\"Arial\":2,\"Comic Sans MS\":2,\"Consolas\":2,\"Courier New\":2,\"Courier\":2,\"Georgia\":2,\"Monospace\":2,\"Sans-Serif\":2, \"Segoe UI\":2,\"Tahoma\":2,\"Times New Roman\":2,\"Trebuchet MS\":2,\"Verdana\": 1},\n    \"font-size\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"font-weight\": {\"bold\": 1, \"normal\": 1},\n    \"font-style\": {\"italic\": 1, \"normal\": 1},\n    \"font-variant\": {\"normal\": 1, \"small-caps\": 1},\n    \"height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"letter-spacing\": {\"normal\": 1},\n    \"line-height\": {\"normal\": 1},\n    \"list-style-type\": {\"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1},\n    \"margin\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"overflow\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-x\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-y\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"padding\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"page-break-after\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"page-break-before\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"position\": {\"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1},\n    \"right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"table-layout\": {\"fixed\": 1, \"auto\": 1},\n    \"text-decoration\": {\"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1},\n    \"text-align\": {\"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1},\n    \"text-transform\": {\"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1},\n    \"top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"vertical-align\": {\"top\": 1, \"bottom\": 1},\n    \"visibility\": {\"hidden\": 1, \"visible\": 1},\n    \"white-space\": {\"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1},\n    \"width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"word-spacing\": {\"normal\": 1},\n    \"filter\": {\"alpha(opacity=$0100)\": 1},\n\n    \"text-shadow\": {\"$02px 2px 2px #777\": 1},\n    \"text-overflow\": {\"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1},\n    \"-moz-border-radius\": 1,\n    \"-moz-border-radius-topright\": 1,\n    \"-moz-border-radius-bottomright\": 1,\n    \"-moz-border-radius-topleft\": 1,\n    \"-moz-border-radius-bottomleft\": 1,\n    \"-webkit-border-radius\": 1,\n    \"-webkit-border-top-right-radius\": 1,\n    \"-webkit-border-top-left-radius\": 1,\n    \"-webkit-border-bottom-right-radius\": 1,\n    \"-webkit-border-bottom-left-radius\": 1,\n    \"-moz-box-shadow\": 1,\n    \"-webkit-box-shadow\": 1,\n    \"transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-moz-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-webkit-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\n\nvar CssCompletions = function() {\n\n};\n\n(function() {\n\n    this.completionsDefined = false;\n\n    this.defineCompletions = function() {\n        if (document) {\n            var style = document.createElement('c').style;\n\n            for (var i in style) {\n                if (typeof style[i] !== 'string')\n                    continue;\n\n                var name = i.replace(/[A-Z]/g, function(x) {\n                    return '-' + x.toLowerCase();\n                });\n\n                if (!propertyMap.hasOwnProperty(name))\n                    propertyMap[name] = 1;\n            }\n        }\n\n        this.completionsDefined = true;\n    }\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        if (!this.completionsDefined) {\n            this.defineCompletions();\n        }\n\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (state==='ruleset'){\n            var line = session.getLine(pos.row).substr(0, pos.column);\n            if (/:[^;]+$/.test(line)) {\n                /([\\w\\-]+):[^:]*$/.test(line);\n\n                return this.getPropertyValueCompletions(state, session, pos, prefix);\n            } else {\n                return this.getPropertyCompletions(state, session, pos, prefix);\n            }\n        }\n\n        return [];\n    };\n\n    this.getPropertyCompletions = function(state, session, pos, prefix) {\n        var properties = Object.keys(propertyMap);\n        return properties.map(function(property){\n            return {\n                caption: property,\n                snippet: property + ': $0',\n                meta: \"property\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getPropertyValueCompletions = function(state, session, pos, prefix) {\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n\n        if (!property)\n            return [];\n        var values = [];\n        if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n            values = Object.keys(propertyMap[property]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"property value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(CssCompletions.prototype);\n\nexports.CssCompletions = CssCompletions;\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar CssBehaviour = function () {\n\n    this.inherit(CstyleBehaviour);\n\n    this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(cursor.row);\n                var rightChar = line.substring(cursor.column, cursor.column + 1);\n                if (rightChar === ':') {\n                    return {\n                       text: '',\n                       selection: [1, 1]\n                    }\n                }\n                if (!line.substring(cursor.column).match(/^\\s*;/)) {\n                    return {\n                       text: ':;',\n                       selection: [1, 1]\n                    }\n                }\n            }\n        }\n    });\n\n    this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && selected === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(range.start.row);\n                var rightChar = line.substring(range.end.column, range.end.column + 1);\n                if (rightChar === ';') {\n                    range.end.column ++;\n                    return range;\n                }\n            }\n        }\n    });\n\n    this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ';') {\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar === ';') {\n                return {\n                   text: '',\n                   selection: [1, 1]\n                }\n            }\n        }\n    });\n\n}\noop.inherits(CssBehaviour, CstyleBehaviour);\n\nexports.CssBehaviour = CssBehaviour;\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = CssHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CssBehaviour();\n    this.$completer = new CssCompletions();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.foldingRules = \"cStyle\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        var match = line.match(/^.*\\{\\s*$/);\n        if (match) {\n            indent += tab;\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/css\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n    a           : 'anchor',\n    button \t    : 'form',\n    form        : 'form',\n    img         : 'image',\n    input       : 'form',\n    label       : 'form',\n    option      : 'form',\n    script      : 'script',\n    select      : 'form',\n    textarea    : 'form',\n    style       : 'style',\n    table       : 'table',\n    tbody       : 'table',\n    td          : 'table',\n    tfoot       : 'table',\n    th          : 'table',\n    tr          : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.addRules({\n        attributes: [{\n            include : \"tag_whitespace\"\n        }, {\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"[-_a-zA-Z0-9:.]+\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\",\n            push : [{\n                include: \"tag_whitespace\"\n            }, {\n                token : \"string.unquoted.attribute-value.html\",\n                regex : \"[^<>='\\\"`\\\\s]+\",\n                next : \"pop\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"pop\"\n            }]\n        }, {\n            include : \"attribute_value\"\n        }],\n        tag: [{\n            token : function(start, tag) {\n                var group = tagMap[tag];\n                return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                    \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n            },\n            regex : \"(</?)([-_a-zA-Z0-9:.]+)\",\n            next: \"tag_stuff\"\n        }],\n        tag_stuff: [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n        ]\n    });\n\n    this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"js-\", \"script\");\n\n    if (this.constructor === HtmlHighlightRules)\n        this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nvar XmlBehaviour = function () {\n\n    this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '\"' || text == \"'\") {\n            var quote = text;\n            var selected = session.doc.getTextRange(editor.getSelectionRange());\n            if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n                return {\n                    text: quote + selected + quote,\n                    selection: false\n                };\n            }\n\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n                return {\n                    text: \"\",\n                    selection: [1, 1]\n                };\n            }\n\n            if (!token)\n                token = iterator.stepBackward();\n\n            if (!token)\n                return;\n\n            while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n                token = iterator.stepBackward();\n            }\n            var rightSpace = !rightChar || rightChar.match(/\\s/);\n            if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n                return {\n                    text: quote + quote,\n                    selection: [1, 1]\n                };\n            }\n        }\n    });\n\n    this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == selected) {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n\n    this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '>') {\n            var position = editor.getSelectionRange().start;\n            var iterator = new TokenIterator(session, position.row, position.column);\n            var token = iterator.getCurrentToken() || iterator.stepBackward();\n            if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n                return;\n            if (is(token, \"reference.attribute-value\"))\n                return;\n            if (is(token, \"attribute-value\")) {\n                var firstChar = token.value.charAt(0);\n                if (firstChar == '\"' || firstChar == \"'\") {\n                    var lastChar = token.value.charAt(token.value.length - 1);\n                    var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;\n                    if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)\n                        return;\n                }\n            }\n            while (!is(token, \"tag-name\")) {\n                token = iterator.stepBackward();\n                if (token.value == \"<\") {\n                    token = iterator.stepForward();\n                    break;\n                }\n            }\n\n            var tokenRow = iterator.getCurrentTokenRow();\n            var tokenColumn = iterator.getCurrentTokenColumn();\n            if (is(iterator.stepBackward(), \"end-tag-open\"))\n                return;\n\n            var element = token.value;\n            if (tokenRow == position.row)\n                element = element.substring(0, position.column - tokenColumn);\n\n            if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n                 return;\n\n            return {\n               text: \">\" + \"</\" + element + \">\",\n               selection: [1, 1]\n            };\n        }\n    });\n\n    this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == \"\\n\") {\n            var cursor = editor.getCursorPosition();\n            var line = session.getLine(cursor.row);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (token && token.type.indexOf(\"tag-close\") !== -1) {\n                if (token.value == \"/>\")\n                    return;\n                while (token && token.type.indexOf(\"tag-name\") === -1) {\n                    token = iterator.stepBackward();\n                }\n\n                if (!token) {\n                    return;\n                }\n\n                var tag = token.value;\n                var row = iterator.getCurrentTokenRow();\n                token = iterator.stepBackward();\n                if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n                    return;\n                }\n\n                if (this.voidElements && !this.voidElements[tag]) {\n                    var nextToken = session.getTokenAt(cursor.row, cursor.column+1);\n                    var line = session.getLine(row);\n                    var nextIndent = this.$getIndent(line);\n                    var indent = nextIndent + session.getTabString();\n\n                    if (nextToken && nextToken.value === \"</\") {\n                        return {\n                            text: \"\\n\" + indent + \"\\n\" + nextIndent,\n                            selection: [1, indent.length, 1, indent.length]\n                        };\n                    } else {\n                        return {\n                            text: \"\\n\" + indent\n                        };\n                    }\n                }\n            }\n        }\n    });\n\n};\n\noop.inherits(XmlBehaviour, Behaviour);\n\nexports.XmlBehaviour = XmlBehaviour;\n});\n\nace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(defaultMode, subModes) {\n    this.defaultMode = defaultMode;\n    this.subModes = subModes;\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n\n    this.$getMode = function(state) {\n        if (typeof state != \"string\") \n            state = state[0];\n        for (var key in this.subModes) {\n            if (state.indexOf(key) === 0)\n                return this.subModes[key];\n        }\n        return null;\n    };\n    \n    this.$tryMode = function(state, session, foldStyle, row) {\n        var mode = this.$getMode(state);\n        return (mode ? mode.getFoldWidget(session, foldStyle, row) : \"\");\n    };\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        return (\n            this.$tryMode(session.getState(row-1), session, foldStyle, row) ||\n            this.$tryMode(session.getState(row), session, foldStyle, row) ||\n            this.defaultMode.getFoldWidget(session, foldStyle, row)\n        );\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var mode = this.$getMode(session.getState(row-1));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.$getMode(session.getState(row));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.defaultMode;\n        \n        return mode.getFoldWidgetRange(session, foldStyle, row);\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar lang = require(\"../../lib/lang\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalEndTags) {\n    BaseFoldMode.call(this);\n    this.voidElements = voidElements || {};\n    this.optionalEndTags = oop.mixin({}, this.voidElements);\n    if (optionalEndTags)\n        oop.mixin(this.optionalEndTags, optionalEndTags);\n    \n};\noop.inherits(FoldMode, BaseFoldMode);\n\nvar Tag = function() {\n    this.tagName = \"\";\n    this.closing = false;\n    this.selfClosing = false;\n    this.start = {row: 0, column: 0};\n    this.end = {row: 0, column: 0};\n};\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\n(function() {\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var tag = this._getFirstTagInLine(session, row);\n\n        if (!tag)\n            return \"\";\n\n        if (tag.closing || (!tag.tagName && tag.selfClosing))\n            return foldStyle == \"markbeginend\" ? \"end\" : \"\";\n\n        if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n            return \"\";\n\n        if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n            return \"\";\n\n        return \"start\";\n    };\n    this._getFirstTagInLine = function(session, row) {\n        var tokens = session.getTokens(row);\n        var tag = new Tag();\n\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            if (is(token, \"tag-open\")) {\n                tag.end.column = tag.start.column + token.value.length;\n                tag.closing = is(token, \"end-tag-open\");\n                token = tokens[++i];\n                if (!token)\n                    return null;\n                tag.tagName = token.value;\n                tag.end.column += token.value.length;\n                for (i++; i < tokens.length; i++) {\n                    token = tokens[i];\n                    tag.end.column += token.value.length;\n                    if (is(token, \"tag-close\")) {\n                        tag.selfClosing = token.value == '/>';\n                        break;\n                    }\n                }\n                return tag;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == '/>';\n                return tag;\n            }\n            tag.start.column += token.value.length;\n        }\n\n        return null;\n    };\n\n    this._findEndTagInLine = function(session, row, tagName, startColumn) {\n        var tokens = session.getTokens(row);\n        var column = 0;\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            column += token.value.length;\n            if (column < startColumn)\n                continue;\n            if (is(token, \"end-tag-open\")) {\n                token = tokens[i + 1];\n                if (token && token.value == tagName)\n                    return true;\n            }\n        }\n        return false;\n    };\n    this._readTagForward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n                iterator.stepForward();\n                return tag;\n            }\n        } while(token = iterator.stepForward());\n\n        return null;\n    };\n    \n    this._readTagBackward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n                iterator.stepBackward();\n                return tag;\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n            }\n        } while(token = iterator.stepBackward());\n\n        return null;\n    };\n    \n    this._pop = function(stack, tag) {\n        while (stack.length) {\n            \n            var top = stack[stack.length-1];\n            if (!tag || top.tagName == tag.tagName) {\n                return stack.pop();\n            }\n            else if (this.optionalEndTags.hasOwnProperty(top.tagName)) {\n                stack.pop();\n                continue;\n            } else {\n                return null;\n            }\n        }\n    };\n    \n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var firstTag = this._getFirstTagInLine(session, row);\n        \n        if (!firstTag)\n            return null;\n        \n        var isBackward = firstTag.closing || firstTag.selfClosing;\n        var stack = [];\n        var tag;\n        \n        if (!isBackward) {\n            var iterator = new TokenIterator(session, row, firstTag.start.column);\n            var start = {\n                row: row,\n                column: firstTag.start.column + firstTag.tagName.length + 2\n            };\n            if (firstTag.start.row == firstTag.end.row)\n                start.column = firstTag.end.column;\n            while (tag = this._readTagForward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0)\n                        return Range.fromPoints(start, tag.start);\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        else {\n            var iterator = new TokenIterator(session, row, firstTag.end.column);\n            var end = {\n                row: row,\n                column: firstTag.start.column\n            };\n            \n            while (tag = this._readTagBackward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (!tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0) {\n                        tag.start.column += tag.tagName.length + 2;\n                        if (tag.start.row == tag.end.row && tag.start.column < tag.end.column)\n                            tag.start.column = tag.end.column;\n                        return Range.fromPoints(tag.start, end);\n                    }\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        \n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar MixedFoldMode = require(\"./mixed\").FoldMode;\nvar XmlFoldMode = require(\"./xml\").FoldMode;\nvar CStyleFoldMode = require(\"./cstyle\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalTags) {\n    MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), {\n        \"js-\": new CStyleFoldMode(),\n        \"css-\": new CStyleFoldMode()\n    });\n};\n\noop.inherits(FoldMode, MixedFoldMode);\n\n});\n\nace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\n\nvar commonAttributes = [\n    \"accesskey\",\n    \"class\",\n    \"contenteditable\",\n    \"contextmenu\",\n    \"dir\",\n    \"draggable\",\n    \"dropzone\",\n    \"hidden\",\n    \"id\",\n    \"inert\",\n    \"itemid\",\n    \"itemprop\",\n    \"itemref\",\n    \"itemscope\",\n    \"itemtype\",\n    \"lang\",\n    \"spellcheck\",\n    \"style\",\n    \"tabindex\",\n    \"title\",\n    \"translate\"\n];\n\nvar eventAttributes = [\n    \"onabort\",\n    \"onblur\",\n    \"oncancel\",\n    \"oncanplay\",\n    \"oncanplaythrough\",\n    \"onchange\",\n    \"onclick\",\n    \"onclose\",\n    \"oncontextmenu\",\n    \"oncuechange\",\n    \"ondblclick\",\n    \"ondrag\",\n    \"ondragend\",\n    \"ondragenter\",\n    \"ondragleave\",\n    \"ondragover\",\n    \"ondragstart\",\n    \"ondrop\",\n    \"ondurationchange\",\n    \"onemptied\",\n    \"onended\",\n    \"onerror\",\n    \"onfocus\",\n    \"oninput\",\n    \"oninvalid\",\n    \"onkeydown\",\n    \"onkeypress\",\n    \"onkeyup\",\n    \"onload\",\n    \"onloadeddata\",\n    \"onloadedmetadata\",\n    \"onloadstart\",\n    \"onmousedown\",\n    \"onmousemove\",\n    \"onmouseout\",\n    \"onmouseover\",\n    \"onmouseup\",\n    \"onmousewheel\",\n    \"onpause\",\n    \"onplay\",\n    \"onplaying\",\n    \"onprogress\",\n    \"onratechange\",\n    \"onreset\",\n    \"onscroll\",\n    \"onseeked\",\n    \"onseeking\",\n    \"onselect\",\n    \"onshow\",\n    \"onstalled\",\n    \"onsubmit\",\n    \"onsuspend\",\n    \"ontimeupdate\",\n    \"onvolumechange\",\n    \"onwaiting\"\n];\n\nvar globalAttributes = commonAttributes.concat(eventAttributes);\n\nvar attributeMap = {\n    \"html\": {\"manifest\": 1},\n    \"head\": {},\n    \"title\": {},\n    \"base\": {\"href\": 1, \"target\": 1},\n    \"link\": {\"href\": 1, \"hreflang\": 1, \"rel\": {\"stylesheet\": 1, \"icon\": 1}, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"type\": {\"text/css\": 1, \"image/png\": 1, \"image/jpeg\": 1, \"image/gif\": 1}, \"sizes\": 1},\n    \"meta\": {\"http-equiv\": {\"content-type\": 1}, \"name\": {\"description\": 1, \"keywords\": 1}, \"content\": {\"text/html; charset=UTF-8\": 1}, \"charset\": 1},\n    \"style\": {\"type\": 1, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"scoped\": 1},\n    \"script\": {\"charset\": 1, \"type\": {\"text/javascript\": 1}, \"src\": 1, \"defer\": 1, \"async\": 1},\n    \"noscript\": {\"href\": 1},\n    \"body\": {\"onafterprint\": 1, \"onbeforeprint\": 1, \"onbeforeunload\": 1, \"onhashchange\": 1, \"onmessage\": 1, \"onoffline\": 1, \"onpopstate\": 1, \"onredo\": 1, \"onresize\": 1, \"onstorage\": 1, \"onundo\": 1, \"onunload\": 1},\n    \"section\": {},\n    \"nav\": {},\n    \"article\": {\"pubdate\": 1},\n    \"aside\": {},\n    \"h1\": {},\n    \"h2\": {},\n    \"h3\": {},\n    \"h4\": {},\n    \"h5\": {},\n    \"h6\": {},\n    \"header\": {},\n    \"footer\": {},\n    \"address\": {},\n    \"main\": {},\n    \"p\": {},\n    \"hr\": {},\n    \"pre\": {},\n    \"blockquote\": {\"cite\": 1},\n    \"ol\": {\"start\": 1, \"reversed\": 1},\n    \"ul\": {},\n    \"li\": {\"value\": 1},\n    \"dl\": {},\n    \"dt\": {},\n    \"dd\": {},\n    \"figure\": {},\n    \"figcaption\": {},\n    \"div\": {},\n    \"a\": {\"href\": 1, \"target\": {\"_blank\": 1, \"top\": 1}, \"ping\": 1, \"rel\": {\"nofollow\": 1, \"alternate\": 1, \"author\": 1, \"bookmark\": 1, \"help\": 1, \"license\": 1, \"next\": 1, \"noreferrer\": 1, \"prefetch\": 1, \"prev\": 1, \"search\": 1, \"tag\": 1}, \"media\": 1, \"hreflang\": 1, \"type\": 1},\n    \"em\": {},\n    \"strong\": {},\n    \"small\": {},\n    \"s\": {},\n    \"cite\": {},\n    \"q\": {\"cite\": 1},\n    \"dfn\": {},\n    \"abbr\": {},\n    \"data\": {},\n    \"time\": {\"datetime\": 1},\n    \"code\": {},\n    \"var\": {},\n    \"samp\": {},\n    \"kbd\": {},\n    \"sub\": {},\n    \"sup\": {},\n    \"i\": {},\n    \"b\": {},\n    \"u\": {},\n    \"mark\": {},\n    \"ruby\": {},\n    \"rt\": {},\n    \"rp\": {},\n    \"bdi\": {},\n    \"bdo\": {},\n    \"span\": {},\n    \"br\": {},\n    \"wbr\": {},\n    \"ins\": {\"cite\": 1, \"datetime\": 1},\n    \"del\": {\"cite\": 1, \"datetime\": 1},\n    \"img\": {\"alt\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"usemap\": 1, \"ismap\": 1},\n    \"iframe\": {\"name\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"sandbox\": {\"allow-same-origin\": 1, \"allow-top-navigation\": 1, \"allow-forms\": 1, \"allow-scripts\": 1}, \"seamless\": {\"seamless\": 1}},\n    \"embed\": {\"src\": 1, \"height\": 1, \"width\": 1, \"type\": 1},\n    \"object\": {\"param\": 1, \"data\": 1, \"type\": 1, \"height\" : 1, \"width\": 1, \"usemap\": 1, \"name\": 1, \"form\": 1, \"classid\": 1},\n    \"param\": {\"name\": 1, \"value\": 1},\n    \"video\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"width\": 1, \"height\": 1, \"poster\": 1, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1}},\n    \"audio\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1 }},\n    \"source\": {\"src\": 1, \"type\": 1, \"media\": 1},\n    \"track\": {\"kind\": 1, \"src\": 1, \"srclang\": 1, \"label\": 1, \"default\": 1},\n    \"canvas\": {\"width\": 1, \"height\": 1},\n    \"map\": {\"name\": 1},\n    \"area\": {\"shape\": 1, \"coords\": 1, \"href\": 1, \"hreflang\": 1, \"alt\": 1, \"target\": 1, \"media\": 1, \"rel\": 1, \"ping\": 1, \"type\": 1},\n    \"svg\": {},\n    \"math\": {},\n    \"table\": {\"summary\": 1},\n    \"caption\": {},\n    \"colgroup\": {\"span\": 1},\n    \"col\": {\"span\": 1},\n    \"tbody\": {},\n    \"thead\": {},\n    \"tfoot\": {},\n    \"tr\": {},\n    \"td\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1},\n    \"th\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1, \"scope\": 1},\n    \"form\": {\"accept-charset\": 1, \"action\": 1, \"autocomplete\": 1, \"enctype\": {\"multipart/form-data\": 1, \"application/x-www-form-urlencoded\": 1}, \"method\": {\"get\": 1, \"post\": 1}, \"name\": 1, \"novalidate\": 1, \"target\": {\"_blank\": 1, \"top\": 1}},\n    \"fieldset\": {\"disabled\": 1, \"form\": 1, \"name\": 1},\n    \"legend\": {},\n    \"label\": {\"form\": 1, \"for\": 1},\n    \"input\": {\n        \"type\": {\"text\": 1, \"password\": 1, \"hidden\": 1, \"checkbox\": 1, \"submit\": 1, \"radio\": 1, \"file\": 1, \"button\": 1, \"reset\": 1, \"image\": 31, \"color\": 1, \"date\": 1, \"datetime\": 1, \"datetime-local\": 1, \"email\": 1, \"month\": 1, \"number\": 1, \"range\": 1, \"search\": 1, \"tel\": 1, \"time\": 1, \"url\": 1, \"week\": 1},\n        \"accept\": 1, \"alt\": 1, \"autocomplete\": {\"on\": 1, \"off\": 1}, \"autofocus\": {\"autofocus\": 1}, \"checked\": {\"checked\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": {\"application/x-www-form-urlencoded\": 1, \"multipart/form-data\": 1, \"text/plain\": 1}, \"formmethod\": {\"get\": 1, \"post\": 1}, \"formnovalidate\": {\"formnovalidate\": 1}, \"formtarget\": {\"_blank\": 1, \"_self\": 1, \"_parent\": 1, \"_top\": 1}, \"height\": 1, \"list\": 1, \"max\": 1, \"maxlength\": 1, \"min\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"pattern\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"size\": 1, \"src\": 1, \"step\": 1, \"width\": 1, \"files\": 1, \"value\": 1},\n    \"button\": {\"autofocus\": 1, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": 1, \"formmethod\": 1, \"formnovalidate\": 1, \"formtarget\": 1, \"name\": 1, \"value\": 1, \"type\": {\"button\": 1, \"submit\": 1}},\n    \"select\": {\"autofocus\": 1, \"disabled\": 1, \"form\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"size\": 1, \"readonly\":{\"readonly\": 1}},\n    \"datalist\": {},\n    \"optgroup\": {\"disabled\": 1, \"label\": 1},\n    \"option\": {\"disabled\": 1, \"selected\": 1, \"label\": 1, \"value\": 1},\n    \"textarea\": {\"autofocus\": {\"autofocus\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"maxlength\": 1, \"name\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"rows\": 1, \"cols\": 1, \"wrap\": {\"on\": 1, \"off\": 1, \"hard\": 1, \"soft\": 1}},\n    \"keygen\": {\"autofocus\": 1, \"challenge\": {\"challenge\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"keytype\": {\"rsa\": 1, \"dsa\": 1, \"ec\": 1}, \"name\": 1},\n    \"output\": {\"for\": 1, \"form\": 1, \"name\": 1},\n    \"progress\": {\"value\": 1, \"max\": 1},\n    \"meter\": {\"value\": 1, \"min\": 1, \"max\": 1, \"low\": 1, \"high\": 1, \"optimum\": 1},\n    \"details\": {\"open\": 1},\n    \"summary\": {},\n    \"command\": {\"type\": 1, \"label\": 1, \"icon\": 1, \"disabled\": 1, \"checked\": 1, \"radiogroup\": 1, \"command\": 1},\n    \"menu\": {\"type\": 1, \"label\": 1},\n    \"dialog\": {\"open\": 1}\n};\n\nvar elements = Object.keys(attributeMap);\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nfunction findTagName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"tag-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nfunction findAttributeName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"attribute-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nvar HtmlCompletions = function() {\n\n};\n\n(function() {\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (is(token, \"tag-name\") || is(token, \"tag-open\") || is(token, \"end-tag-open\"))\n            return this.getTagCompletions(state, session, pos, prefix);\n        if (is(token, \"tag-whitespace\") || is(token, \"attribute-name\"))\n            return this.getAttributeCompletions(state, session, pos, prefix);\n        if (is(token, \"attribute-value\"))\n            return this.getAttributeValueCompletions(state, session, pos, prefix);\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        if (/&[a-z]*$/i.test(line))\n            return this.getHTMLEntityCompletions(state, session, pos, prefix);\n\n        return [];\n    };\n\n    this.getTagCompletions = function(state, session, pos, prefix) {\n        return elements.map(function(element){\n            return {\n                value: element,\n                meta: \"tag\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        if (!tagName)\n            return [];\n        var attributes = globalAttributes;\n        if (tagName in attributeMap) {\n            attributes = attributes.concat(Object.keys(attributeMap[tagName]));\n        }\n        return attributes.map(function(attribute){\n            return {\n                caption: attribute,\n                snippet: attribute + '=\"$0\"',\n                meta: \"attribute\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeValueCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        var attributeName = findAttributeName(session, pos);\n        \n        if (!tagName)\n            return [];\n        var values = [];\n        if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === \"object\") {\n            values = Object.keys(attributeMap[tagName][attributeName]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"attribute value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getHTMLEntityCompletions = function(state, session, pos, prefix) {\n        var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;'];\n\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"html entity\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(HtmlCompletions.prototype);\n\nexports.HtmlCompletions = HtmlCompletions;\n});\n\nace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar CssMode = require(\"./css\").Mode;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar HtmlFoldMode = require(\"./folding/html\").FoldMode;\nvar HtmlCompletions = require(\"./html_completions\").HtmlCompletions;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar voidElements = [\"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"menuitem\", \"param\", \"source\", \"track\", \"wbr\"];\nvar optionalEndTags = [\"li\", \"dt\", \"dd\", \"p\", \"rt\", \"rp\", \"optgroup\", \"option\", \"colgroup\", \"td\", \"th\"];\n\nvar Mode = function(options) {\n    this.fragmentContext = options && options.fragmentContext;\n    this.HighlightRules = HtmlHighlightRules;\n    this.$behaviour = new XmlBehaviour();\n    this.$completer = new HtmlCompletions();\n    \n    this.createModeDelegates({\n        \"js-\": JavaScriptMode,\n        \"css-\": CssMode\n    });\n    \n    this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags));\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.blockComment = {start: \"<!--\", end: \"-->\"};\n\n    this.voidElements = lang.arrayToMap(voidElements);\n\n    this.getNextLineIndent = function(state, line, tab) {\n        return this.$getIndent(line);\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return false;\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        if (this.constructor != Mode)\n            return;\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/html_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        if (this.fragmentContext)\n            worker.call(\"setOptions\", [{context: this.fragmentContext}]);\n\n        worker.on(\"error\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/html\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/csharp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar CSharpHighlightRules = function() {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\": \"this\",\n        \"keyword\": \"abstract|event|new|struct|as|explicit|null|switch|base|extern|object|this|bool|false|operator|throw|break|finally|out|true|byte|fixed|override|try|case|float|params|typeof|catch|for|private|uint|char|foreach|protected|ulong|checked|goto|public|unchecked|class|if|readonly|unsafe|const|implicit|ref|ushort|continue|in|return|using|decimal|int|sbyte|virtual|default|interface|sealed|volatile|delegate|internal|short|void|do|is|sizeof|while|double|lock|stackalloc|else|long|static|enum|namespace|string|var|dynamic\",\n        \"constant.language\": \"null|true|false\"\n    }, \"identifier\");\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"\\\\/\\\\/.*$\"\n            },\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n                token : \"string\", // character\n                regex : /'(?:.|\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n]))'/\n            }, {\n                token : \"string\", start : '\"', end : '\"|$', next: [\n                    {token: \"constant.language.escape\", regex: /\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n])/},\n                    {token: \"invalid\", regex: /\\\\./}\n                ]\n            }, {\n                token : \"string\", start : '@\"', end : '\"', next:[\n                    {token: \"constant.language.escape\", regex: '\"\"'}\n                ]\n            }, {\n                token : \"string\", start : /\\$\"/, end : '\"|$', next: [\n                    {token: \"constant.language.escape\", regex: /\\\\(:?$)|{{/},\n                    {token: \"constant.language.escape\", regex: /\\\\(:?u[\\da-fA-F]+|x[\\da-fA-F]+|[tbrf'\"n])/},\n                    {token: \"invalid\", regex: /\\\\./}\n                ]\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n            }, {\n                token : \"constant.language.boolean\",\n                regex : \"(?:true|false)\\\\b\"\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n            }, {\n                token : \"keyword\",\n                regex : \"^\\\\s*#(if|else|elif|endif|define|undef|warning|error|line|region|endregion|pragma)\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ]\n    };\n\n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n    this.normalizeRules();\n};\n\noop.inherits(CSharpHighlightRules, TextHighlightRules);\n\nexports.CSharpHighlightRules = CSharpHighlightRules;\n});\n\nace.define(\"ace/mode/razor_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/html_highlight_rules\",\"ace/mode/csharp_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar CSharpHighlightRules = require(\"./csharp_highlight_rules\").CSharpHighlightRules;\n\nvar blockPrefix = 'razor-block-';\nvar RazorLangHighlightRules = function() {\n    CSharpHighlightRules.call(this);\n\n    var processPotentialCallback = function(value, stackItem) {\n        if (typeof stackItem === \"function\")\n            return stackItem(value);\n\n        return stackItem;\n    };\n\n    var inBraces = 'in-braces';\n    this.$rules.start.unshift({\n        regex: '[\\\\[({]',\n        onMatch: function(value, state, stack) {\n            var prefix = /razor-[^\\-]+-/.exec(state)[0];\n\n            stack.unshift(value);\n            stack.unshift(prefix + inBraces);\n            this.next = prefix + inBraces;\n            return 'paren.lparen';\n        }\n    }, {\n        start: \"@\\\\*\",\n        end: \"\\\\*@\",\n        token: \"comment\"\n    });\n\n    var parentCloseMap = {\n        '{': '}',\n        '[': ']',\n        '(': ')'\n    };\n\n    this.$rules[inBraces] = lang.deepCopy(this.$rules.start);\n    this.$rules[inBraces].unshift({\n        regex: '[\\\\])}]',\n        onMatch: function(value, state, stack) {\n            var open = stack[1];\n            if (parentCloseMap[open] !== value)\n                return 'invalid.illegal';\n\n            stack.shift(); // exit in-braces block\n            stack.shift(); // exit brace marker\n            this.next = processPotentialCallback(value, stack[0]) || 'start';\n            return 'paren.rparen';\n        }\n    });\n};\n\noop.inherits(RazorLangHighlightRules, CSharpHighlightRules);\n\nvar RazorHighlightRules = function() {\n    HtmlHighlightRules.call(this);\n\n    var blockStartRule = {\n        regex: '@[({]|@functions{',\n        onMatch: function(value, state, stack) {\n            stack.unshift(value);\n            stack.unshift('razor-block-start');\n            this.next = 'razor-block-start';\n            return 'punctuation.block.razor';\n        }\n    };\n\n    var blockEndMap = {\n        '@{': '}',\n        '@(': ')',\n        '@functions{':'}'\n    };\n\n    var blockEndRule = {\n        regex: '[})]',\n        onMatch: function(value, state, stack) {\n            var blockStart = stack[1];\n            if (blockEndMap[blockStart] !== value)\n                return 'invalid.illegal';\n\n            stack.shift(); // exit razor block\n            stack.shift(); // remove block type marker\n            this.next = stack.shift() || 'start';\n            return 'punctuation.block.razor';\n        }\n    };\n\n    var shortStartRule = {\n        regex: \"@(?![{(])\",\n        onMatch: function(value, state, stack) {\n            stack.unshift(\"razor-short-start\");\n            this.next = \"razor-short-start\";\n            return 'punctuation.short.razor';\n        }\n    };\n\n    var shortEndRule = {\n        token: \"\",\n        regex: \"(?=[^A-Za-z_\\\\.()\\\\[\\\\]])\",\n        next: 'pop'\n    };\n\n    var ifStartRule = {\n        regex: \"@(?=if)\",\n        onMatch: function(value, state, stack) {\n            stack.unshift(function(value) {\n                if (value !== '}')\n                    return 'start';\n\n                return stack.shift() || 'start';\n            });\n            this.next = 'razor-block-start';\n            return 'punctuation.control.razor';\n        }\n    };\n\n    var razorStartRules = [\n        {\n            start: \"@\\\\*\",\n            end: \"\\\\*@\",\n            token: \"comment\"\n        },\n        {\n            token: [\"meta.directive.razor\", \"text\", \"identifier\"],\n            regex: \"^(\\\\s*@model)(\\\\s+)(.+)$\"\n        },\n        blockStartRule,\n        shortStartRule\n    ];\n\n    for (var key in this.$rules)\n        this.$rules[key].unshift.apply(this.$rules[key], razorStartRules);\n\n    this.embedRules(RazorLangHighlightRules, \"razor-block-\", [blockEndRule], [\"start\"]);\n    this.embedRules(RazorLangHighlightRules, \"razor-short-\", [shortEndRule], [\"start\"]);\n\n    this.normalizeRules();\n};\n\noop.inherits(RazorHighlightRules, HtmlHighlightRules);\n\nexports.RazorHighlightRules = RazorHighlightRules;\nexports.RazorLangHighlightRules = RazorLangHighlightRules;\n});\n\nace.define(\"ace/mode/razor_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\n\nvar keywords = [\n    \"abstract\", \"as\", \"base\", \"bool\",\n    \"break\", \"byte\", \"case\", \"catch\",\n    \"char\", \"checked\", \"class\", \"const\",\n    \"continue\", \"decimal\", \"default\", \"delegate\",\n    \"do\", \"double\",\"else\",\"enum\",\n    \"event\", \"explicit\", \"extern\", \"false\",\n    \"finally\", \"fixed\", \"float\", \"for\",\n    \"foreach\", \"goto\", \"if\", \"implicit\",\n    \"in\", \"int\", \"interface\", \"internal\",\n    \"is\", \"lock\", \"long\", \"namespace\",\n    \"new\", \"null\", \"object\", \"operator\",\n    \"out\", \"override\", \"params\", \"private\",\n    \"protected\", \"public\", \"readonly\", \"ref\",\n    \"return\", \"sbyte\", \"sealed\", \"short\",\n    \"sizeof\", \"stackalloc\", \"static\", \"string\",\n    \"struct\", \"switch\", \"this\", \"throw\",\n    \"true\", \"try\", \"typeof\", \"uint\",\n    \"ulong\", \"unchecked\", \"unsafe\", \"ushort\",\n    \"using\", \"var\", \"virtual\", \"void\",\n    \"volatile\", \"while\"];\n\nvar shortHands  = [\n    \"Html\", \"Model\", \"Url\", \"Layout\"\n];\n    \nvar RazorCompletions = function() {\n\n};\n\n(function() {\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        \n        if(state.lastIndexOf(\"razor-short-start\") == -1 && state.lastIndexOf(\"razor-block-start\") == -1)\n            return [];\n        \n        var token = session.getTokenAt(pos.row, pos.column);\n        if (!token)\n            return [];\n        \n        if(state.lastIndexOf(\"razor-short-start\") != -1) {\n            return this.getShortStartCompletions(state, session, pos, prefix);\n        }\n        \n        if(state.lastIndexOf(\"razor-block-start\") != -1) {\n            return this.getKeywordCompletions(state, session, pos, prefix);\n        }\n\n        \n    };\n    \n    this.getShortStartCompletions = function(state, session, pos, prefix) {\n        return shortHands.map(function(element){\n            return {\n                value: element,\n                meta: \"keyword\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getKeywordCompletions = function(state, session, pos, prefix) {\n        return shortHands.concat(keywords).map(function(element){\n            return {\n                value: element,\n                meta: \"keyword\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(RazorCompletions.prototype);\n\nexports.RazorCompletions = RazorCompletions;\n\n});\n\nace.define(\"ace/mode/razor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/razor_highlight_rules\",\"ace/mode/razor_completions\",\"ace/mode/html_completions\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar HtmlMode = require(\"./html\").Mode;\nvar RazorHighlightRules = require(\"./razor_highlight_rules\").RazorHighlightRules;\nvar RazorCompletions = require(\"./razor_completions\").RazorCompletions;\nvar HtmlCompletions = require(\"./html_completions\").HtmlCompletions;\n\nvar Mode = function() {\n    HtmlMode.call(this);\n    this.$highlightRules = new RazorHighlightRules();\n    this.$completer = new RazorCompletions();\n    this.$htmlCompleter = new HtmlCompletions();\n};\noop.inherits(Mode, HtmlMode);\n\n(function() {\n    this.getCompletions = function(state, session, pos, prefix) {\n        var razorToken = this.$completer.getCompletions(state, session, pos, prefix);\n        var htmlToken = this.$htmlCompleter.getCompletions(state, session, pos, prefix);\n        return razorToken.concat(htmlToken);\n    };\n    \n    this.createWorker = function(session) {\n        return null;\n    };\n\n    this.$id = \"ace/mode/razor\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-rdoc.js",
    "content": "ace.define(\"ace/mode/latex_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar LatexHighlightRules = function() {  \n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\",\n            regex : \"%.*$\"\n        }, {\n            token : [\"keyword\", \"lparen\", \"variable.parameter\", \"rparen\", \"lparen\", \"storage.type\", \"rparen\"],\n            regex : \"(\\\\\\\\(?:documentclass|usepackage|input))(?:(\\\\[)([^\\\\]]*)(\\\\]))?({)([^}]*)(})\"\n        }, {\n            token : [\"keyword\",\"lparen\", \"variable.parameter\", \"rparen\"],\n            regex : \"(\\\\\\\\(?:label|v?ref|cite(?:[^{]*)))(?:({)([^}]*)(}))?\"\n        }, {\n            token : [\"storage.type\", \"lparen\", \"variable.parameter\", \"rparen\"],\n            regex : \"(\\\\\\\\(?:begin|end))({)(\\\\w*)(})\"\n        }, {\n            token : \"storage.type\",\n            regex : \"\\\\\\\\[a-zA-Z]+\"\n        }, {\n            token : \"lparen\",\n            regex : \"[[({]\"\n        }, {\n            token : \"rparen\",\n            regex : \"[\\\\])}]\"\n        }, {\n            token : \"constant.character.escape\",\n            regex : \"\\\\\\\\[^a-zA-Z]?\"\n        }, {\n            token : \"string\",\n            regex : \"\\\\${1,2}\",\n            next  : \"equation\"\n        }],\n        \"equation\" : [{\n            token : \"comment\",\n            regex : \"%.*$\"\n        }, {\n            token : \"string\",\n            regex : \"\\\\${1,2}\",\n            next  : \"start\"\n        }, {\n            token : \"constant.character.escape\",\n            regex : \"\\\\\\\\(?:[^a-zA-Z]|[a-zA-Z]+)\"\n        }, {\n            token : \"error\", \n            regex : \"^\\\\s*$\", \n            next : \"start\" \n        }, {\n            defaultToken : \"string\"\n        }]\n\n    };\n};\noop.inherits(LatexHighlightRules, TextHighlightRules);\n\nexports.LatexHighlightRules = LatexHighlightRules;\n\n});\n\nace.define(\"ace/mode/rdoc_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/latex_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar LaTeXHighlightRules = require(\"./latex_highlight_rules\");\n\nvar RDocHighlightRules = function() {\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"%.*$\"\n            }, {\n                token : \"text\", // non-command\n                regex : \"\\\\\\\\[$&%#\\\\{\\\\}]\"\n            }, {\n                token : \"keyword\", // command\n                regex : \"\\\\\\\\(?:name|alias|method|S3method|S4method|item|code|preformatted|kbd|pkg|var|env|option|command|author|email|url|source|cite|acronym|href|code|preformatted|link|eqn|deqn|keyword|usage|examples|dontrun|dontshow|figure|if|ifelse|Sexpr|RdOpts|inputencoding|usepackage)\\\\b\",\n               next : \"nospell\"\n            }, {\n                token : \"keyword\", // command\n                regex : \"\\\\\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])\"\n            }, {\n               token : \"paren.keyword.operator\",\n                regex : \"[[({]\"\n            }, {\n               token : \"paren.keyword.operator\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"nospell\" : [\n           {\n               token : \"comment\",\n               regex : \"%.*$\",\n               next : \"start\"\n           }, {\n               token : \"nospell.text\", // non-command\n               regex : \"\\\\\\\\[$&%#\\\\{\\\\}]\"\n           }, {\n               token : \"keyword\", // command\n               regex : \"\\\\\\\\(?:name|alias|method|S3method|S4method|item|code|preformatted|kbd|pkg|var|env|option|command|author|email|url|source|cite|acronym|href|code|preformatted|link|eqn|deqn|keyword|usage|examples|dontrun|dontshow|figure|if|ifelse|Sexpr|RdOpts|inputencoding|usepackage)\\\\b\"\n           }, {\n               token : \"keyword\", // command\n               regex : \"\\\\\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])\",\n               next : \"start\"\n           }, {\n               token : \"paren.keyword.operator\",\n               regex : \"[[({]\"\n           }, {\n               token : \"paren.keyword.operator\",\n               regex : \"[\\\\])]\"\n           }, {\n               token : \"paren.keyword.operator\",\n               regex : \"}\",\n               next : \"start\"\n           }, {\n               token : \"nospell.text\",\n               regex : \"\\\\s+\"\n           }, {\n               token : \"nospell.text\",\n               regex : \"\\\\w+\"\n           }\n        ]\n    };\n};\n\noop.inherits(RDocHighlightRules, TextHighlightRules);\n\nexports.RDocHighlightRules = RDocHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/rdoc\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/rdoc_highlight_rules\",\"ace/mode/matching_brace_outdent\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar RDocHighlightRules = require(\"./rdoc_highlight_rules\").RDocHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\n\nvar Mode = function(suppressHighlighting) {\n\tthis.HighlightRules = RDocHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.getNextLineIndent = function(state, line, tab) {\n        return this.$getIndent(line);\n    };\n    this.$id = \"ace/mode/rdoc\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-rhtml.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar propertyMap = {\n    \"background\": {\"#$0\": 1},\n    \"background-color\": {\"#$0\": 1, \"transparent\": 1, \"fixed\": 1},\n    \"background-image\": {\"url('/$0')\": 1},\n    \"background-repeat\": {\"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1},\n    \"background-position\": {\"bottom\":2, \"center\":2, \"left\":2, \"right\":2, \"top\":2, \"inherit\":2},\n    \"background-attachment\": {\"scroll\": 1, \"fixed\": 1},\n    \"background-size\": {\"cover\": 1, \"contain\": 1},\n    \"background-clip\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"background-origin\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"border\": {\"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1},\n    \"border-color\": {\"#$0\": 1},\n    \"border-style\": {\"solid\":2, \"dashed\":2, \"dotted\":2, \"double\":2, \"groove\":2, \"hidden\":2, \"inherit\":2, \"inset\":2, \"none\":2, \"outset\":2, \"ridged\":2},\n    \"border-collapse\": {\"collapse\": 1, \"separate\": 1},\n    \"bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"clear\": {\"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1},\n    \"color\": {\"#$0\": 1, \"rgb(#$00,0,0)\": 1},\n    \"cursor\": {\"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1},\n    \"display\": {\"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1},\n    \"empty-cells\": {\"show\": 1, \"hide\": 1},\n    \"float\": {\"left\": 1, \"right\": 1, \"none\": 1},\n    \"font-family\": {\"Arial\":2,\"Comic Sans MS\":2,\"Consolas\":2,\"Courier New\":2,\"Courier\":2,\"Georgia\":2,\"Monospace\":2,\"Sans-Serif\":2, \"Segoe UI\":2,\"Tahoma\":2,\"Times New Roman\":2,\"Trebuchet MS\":2,\"Verdana\": 1},\n    \"font-size\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"font-weight\": {\"bold\": 1, \"normal\": 1},\n    \"font-style\": {\"italic\": 1, \"normal\": 1},\n    \"font-variant\": {\"normal\": 1, \"small-caps\": 1},\n    \"height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"letter-spacing\": {\"normal\": 1},\n    \"line-height\": {\"normal\": 1},\n    \"list-style-type\": {\"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1},\n    \"margin\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"overflow\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-x\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-y\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"padding\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"page-break-after\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"page-break-before\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"position\": {\"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1},\n    \"right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"table-layout\": {\"fixed\": 1, \"auto\": 1},\n    \"text-decoration\": {\"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1},\n    \"text-align\": {\"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1},\n    \"text-transform\": {\"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1},\n    \"top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"vertical-align\": {\"top\": 1, \"bottom\": 1},\n    \"visibility\": {\"hidden\": 1, \"visible\": 1},\n    \"white-space\": {\"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1},\n    \"width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"word-spacing\": {\"normal\": 1},\n    \"filter\": {\"alpha(opacity=$0100)\": 1},\n\n    \"text-shadow\": {\"$02px 2px 2px #777\": 1},\n    \"text-overflow\": {\"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1},\n    \"-moz-border-radius\": 1,\n    \"-moz-border-radius-topright\": 1,\n    \"-moz-border-radius-bottomright\": 1,\n    \"-moz-border-radius-topleft\": 1,\n    \"-moz-border-radius-bottomleft\": 1,\n    \"-webkit-border-radius\": 1,\n    \"-webkit-border-top-right-radius\": 1,\n    \"-webkit-border-top-left-radius\": 1,\n    \"-webkit-border-bottom-right-radius\": 1,\n    \"-webkit-border-bottom-left-radius\": 1,\n    \"-moz-box-shadow\": 1,\n    \"-webkit-box-shadow\": 1,\n    \"transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-moz-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-webkit-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\n\nvar CssCompletions = function() {\n\n};\n\n(function() {\n\n    this.completionsDefined = false;\n\n    this.defineCompletions = function() {\n        if (document) {\n            var style = document.createElement('c').style;\n\n            for (var i in style) {\n                if (typeof style[i] !== 'string')\n                    continue;\n\n                var name = i.replace(/[A-Z]/g, function(x) {\n                    return '-' + x.toLowerCase();\n                });\n\n                if (!propertyMap.hasOwnProperty(name))\n                    propertyMap[name] = 1;\n            }\n        }\n\n        this.completionsDefined = true;\n    }\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        if (!this.completionsDefined) {\n            this.defineCompletions();\n        }\n\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (state==='ruleset'){\n            var line = session.getLine(pos.row).substr(0, pos.column);\n            if (/:[^;]+$/.test(line)) {\n                /([\\w\\-]+):[^:]*$/.test(line);\n\n                return this.getPropertyValueCompletions(state, session, pos, prefix);\n            } else {\n                return this.getPropertyCompletions(state, session, pos, prefix);\n            }\n        }\n\n        return [];\n    };\n\n    this.getPropertyCompletions = function(state, session, pos, prefix) {\n        var properties = Object.keys(propertyMap);\n        return properties.map(function(property){\n            return {\n                caption: property,\n                snippet: property + ': $0',\n                meta: \"property\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getPropertyValueCompletions = function(state, session, pos, prefix) {\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n\n        if (!property)\n            return [];\n        var values = [];\n        if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n            values = Object.keys(propertyMap[property]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"property value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(CssCompletions.prototype);\n\nexports.CssCompletions = CssCompletions;\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar CssBehaviour = function () {\n\n    this.inherit(CstyleBehaviour);\n\n    this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(cursor.row);\n                var rightChar = line.substring(cursor.column, cursor.column + 1);\n                if (rightChar === ':') {\n                    return {\n                       text: '',\n                       selection: [1, 1]\n                    }\n                }\n                if (!line.substring(cursor.column).match(/^\\s*;/)) {\n                    return {\n                       text: ':;',\n                       selection: [1, 1]\n                    }\n                }\n            }\n        }\n    });\n\n    this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && selected === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(range.start.row);\n                var rightChar = line.substring(range.end.column, range.end.column + 1);\n                if (rightChar === ';') {\n                    range.end.column ++;\n                    return range;\n                }\n            }\n        }\n    });\n\n    this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ';') {\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar === ';') {\n                return {\n                   text: '',\n                   selection: [1, 1]\n                }\n            }\n        }\n    });\n\n}\noop.inherits(CssBehaviour, CstyleBehaviour);\n\nexports.CssBehaviour = CssBehaviour;\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = CssHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CssBehaviour();\n    this.$completer = new CssCompletions();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.foldingRules = \"cStyle\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        var match = line.match(/^.*\\{\\s*$/);\n        if (match) {\n            indent += tab;\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/css\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n    a           : 'anchor',\n    button \t    : 'form',\n    form        : 'form',\n    img         : 'image',\n    input       : 'form',\n    label       : 'form',\n    option      : 'form',\n    script      : 'script',\n    select      : 'form',\n    textarea    : 'form',\n    style       : 'style',\n    table       : 'table',\n    tbody       : 'table',\n    td          : 'table',\n    tfoot       : 'table',\n    th          : 'table',\n    tr          : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.addRules({\n        attributes: [{\n            include : \"tag_whitespace\"\n        }, {\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"[-_a-zA-Z0-9:.]+\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\",\n            push : [{\n                include: \"tag_whitespace\"\n            }, {\n                token : \"string.unquoted.attribute-value.html\",\n                regex : \"[^<>='\\\"`\\\\s]+\",\n                next : \"pop\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"pop\"\n            }]\n        }, {\n            include : \"attribute_value\"\n        }],\n        tag: [{\n            token : function(start, tag) {\n                var group = tagMap[tag];\n                return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                    \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n            },\n            regex : \"(</?)([-_a-zA-Z0-9:.]+)\",\n            next: \"tag_stuff\"\n        }],\n        tag_stuff: [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n        ]\n    });\n\n    this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"js-\", \"script\");\n\n    if (this.constructor === HtmlHighlightRules)\n        this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nvar XmlBehaviour = function () {\n\n    this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '\"' || text == \"'\") {\n            var quote = text;\n            var selected = session.doc.getTextRange(editor.getSelectionRange());\n            if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n                return {\n                    text: quote + selected + quote,\n                    selection: false\n                };\n            }\n\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n                return {\n                    text: \"\",\n                    selection: [1, 1]\n                };\n            }\n\n            if (!token)\n                token = iterator.stepBackward();\n\n            if (!token)\n                return;\n\n            while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n                token = iterator.stepBackward();\n            }\n            var rightSpace = !rightChar || rightChar.match(/\\s/);\n            if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n                return {\n                    text: quote + quote,\n                    selection: [1, 1]\n                };\n            }\n        }\n    });\n\n    this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == selected) {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n\n    this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '>') {\n            var position = editor.getSelectionRange().start;\n            var iterator = new TokenIterator(session, position.row, position.column);\n            var token = iterator.getCurrentToken() || iterator.stepBackward();\n            if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n                return;\n            if (is(token, \"reference.attribute-value\"))\n                return;\n            if (is(token, \"attribute-value\")) {\n                var firstChar = token.value.charAt(0);\n                if (firstChar == '\"' || firstChar == \"'\") {\n                    var lastChar = token.value.charAt(token.value.length - 1);\n                    var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;\n                    if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)\n                        return;\n                }\n            }\n            while (!is(token, \"tag-name\")) {\n                token = iterator.stepBackward();\n                if (token.value == \"<\") {\n                    token = iterator.stepForward();\n                    break;\n                }\n            }\n\n            var tokenRow = iterator.getCurrentTokenRow();\n            var tokenColumn = iterator.getCurrentTokenColumn();\n            if (is(iterator.stepBackward(), \"end-tag-open\"))\n                return;\n\n            var element = token.value;\n            if (tokenRow == position.row)\n                element = element.substring(0, position.column - tokenColumn);\n\n            if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n                 return;\n\n            return {\n               text: \">\" + \"</\" + element + \">\",\n               selection: [1, 1]\n            };\n        }\n    });\n\n    this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == \"\\n\") {\n            var cursor = editor.getCursorPosition();\n            var line = session.getLine(cursor.row);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (token && token.type.indexOf(\"tag-close\") !== -1) {\n                if (token.value == \"/>\")\n                    return;\n                while (token && token.type.indexOf(\"tag-name\") === -1) {\n                    token = iterator.stepBackward();\n                }\n\n                if (!token) {\n                    return;\n                }\n\n                var tag = token.value;\n                var row = iterator.getCurrentTokenRow();\n                token = iterator.stepBackward();\n                if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n                    return;\n                }\n\n                if (this.voidElements && !this.voidElements[tag]) {\n                    var nextToken = session.getTokenAt(cursor.row, cursor.column+1);\n                    var line = session.getLine(row);\n                    var nextIndent = this.$getIndent(line);\n                    var indent = nextIndent + session.getTabString();\n\n                    if (nextToken && nextToken.value === \"</\") {\n                        return {\n                            text: \"\\n\" + indent + \"\\n\" + nextIndent,\n                            selection: [1, indent.length, 1, indent.length]\n                        };\n                    } else {\n                        return {\n                            text: \"\\n\" + indent\n                        };\n                    }\n                }\n            }\n        }\n    });\n\n};\n\noop.inherits(XmlBehaviour, Behaviour);\n\nexports.XmlBehaviour = XmlBehaviour;\n});\n\nace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(defaultMode, subModes) {\n    this.defaultMode = defaultMode;\n    this.subModes = subModes;\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n\n    this.$getMode = function(state) {\n        if (typeof state != \"string\") \n            state = state[0];\n        for (var key in this.subModes) {\n            if (state.indexOf(key) === 0)\n                return this.subModes[key];\n        }\n        return null;\n    };\n    \n    this.$tryMode = function(state, session, foldStyle, row) {\n        var mode = this.$getMode(state);\n        return (mode ? mode.getFoldWidget(session, foldStyle, row) : \"\");\n    };\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        return (\n            this.$tryMode(session.getState(row-1), session, foldStyle, row) ||\n            this.$tryMode(session.getState(row), session, foldStyle, row) ||\n            this.defaultMode.getFoldWidget(session, foldStyle, row)\n        );\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var mode = this.$getMode(session.getState(row-1));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.$getMode(session.getState(row));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.defaultMode;\n        \n        return mode.getFoldWidgetRange(session, foldStyle, row);\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar lang = require(\"../../lib/lang\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalEndTags) {\n    BaseFoldMode.call(this);\n    this.voidElements = voidElements || {};\n    this.optionalEndTags = oop.mixin({}, this.voidElements);\n    if (optionalEndTags)\n        oop.mixin(this.optionalEndTags, optionalEndTags);\n    \n};\noop.inherits(FoldMode, BaseFoldMode);\n\nvar Tag = function() {\n    this.tagName = \"\";\n    this.closing = false;\n    this.selfClosing = false;\n    this.start = {row: 0, column: 0};\n    this.end = {row: 0, column: 0};\n};\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\n(function() {\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var tag = this._getFirstTagInLine(session, row);\n\n        if (!tag)\n            return \"\";\n\n        if (tag.closing || (!tag.tagName && tag.selfClosing))\n            return foldStyle == \"markbeginend\" ? \"end\" : \"\";\n\n        if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n            return \"\";\n\n        if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n            return \"\";\n\n        return \"start\";\n    };\n    this._getFirstTagInLine = function(session, row) {\n        var tokens = session.getTokens(row);\n        var tag = new Tag();\n\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            if (is(token, \"tag-open\")) {\n                tag.end.column = tag.start.column + token.value.length;\n                tag.closing = is(token, \"end-tag-open\");\n                token = tokens[++i];\n                if (!token)\n                    return null;\n                tag.tagName = token.value;\n                tag.end.column += token.value.length;\n                for (i++; i < tokens.length; i++) {\n                    token = tokens[i];\n                    tag.end.column += token.value.length;\n                    if (is(token, \"tag-close\")) {\n                        tag.selfClosing = token.value == '/>';\n                        break;\n                    }\n                }\n                return tag;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == '/>';\n                return tag;\n            }\n            tag.start.column += token.value.length;\n        }\n\n        return null;\n    };\n\n    this._findEndTagInLine = function(session, row, tagName, startColumn) {\n        var tokens = session.getTokens(row);\n        var column = 0;\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            column += token.value.length;\n            if (column < startColumn)\n                continue;\n            if (is(token, \"end-tag-open\")) {\n                token = tokens[i + 1];\n                if (token && token.value == tagName)\n                    return true;\n            }\n        }\n        return false;\n    };\n    this._readTagForward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n                iterator.stepForward();\n                return tag;\n            }\n        } while(token = iterator.stepForward());\n\n        return null;\n    };\n    \n    this._readTagBackward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n                iterator.stepBackward();\n                return tag;\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n            }\n        } while(token = iterator.stepBackward());\n\n        return null;\n    };\n    \n    this._pop = function(stack, tag) {\n        while (stack.length) {\n            \n            var top = stack[stack.length-1];\n            if (!tag || top.tagName == tag.tagName) {\n                return stack.pop();\n            }\n            else if (this.optionalEndTags.hasOwnProperty(top.tagName)) {\n                stack.pop();\n                continue;\n            } else {\n                return null;\n            }\n        }\n    };\n    \n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var firstTag = this._getFirstTagInLine(session, row);\n        \n        if (!firstTag)\n            return null;\n        \n        var isBackward = firstTag.closing || firstTag.selfClosing;\n        var stack = [];\n        var tag;\n        \n        if (!isBackward) {\n            var iterator = new TokenIterator(session, row, firstTag.start.column);\n            var start = {\n                row: row,\n                column: firstTag.start.column + firstTag.tagName.length + 2\n            };\n            if (firstTag.start.row == firstTag.end.row)\n                start.column = firstTag.end.column;\n            while (tag = this._readTagForward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0)\n                        return Range.fromPoints(start, tag.start);\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        else {\n            var iterator = new TokenIterator(session, row, firstTag.end.column);\n            var end = {\n                row: row,\n                column: firstTag.start.column\n            };\n            \n            while (tag = this._readTagBackward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (!tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0) {\n                        tag.start.column += tag.tagName.length + 2;\n                        if (tag.start.row == tag.end.row && tag.start.column < tag.end.column)\n                            tag.start.column = tag.end.column;\n                        return Range.fromPoints(tag.start, end);\n                    }\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        \n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar MixedFoldMode = require(\"./mixed\").FoldMode;\nvar XmlFoldMode = require(\"./xml\").FoldMode;\nvar CStyleFoldMode = require(\"./cstyle\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalTags) {\n    MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), {\n        \"js-\": new CStyleFoldMode(),\n        \"css-\": new CStyleFoldMode()\n    });\n};\n\noop.inherits(FoldMode, MixedFoldMode);\n\n});\n\nace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\n\nvar commonAttributes = [\n    \"accesskey\",\n    \"class\",\n    \"contenteditable\",\n    \"contextmenu\",\n    \"dir\",\n    \"draggable\",\n    \"dropzone\",\n    \"hidden\",\n    \"id\",\n    \"inert\",\n    \"itemid\",\n    \"itemprop\",\n    \"itemref\",\n    \"itemscope\",\n    \"itemtype\",\n    \"lang\",\n    \"spellcheck\",\n    \"style\",\n    \"tabindex\",\n    \"title\",\n    \"translate\"\n];\n\nvar eventAttributes = [\n    \"onabort\",\n    \"onblur\",\n    \"oncancel\",\n    \"oncanplay\",\n    \"oncanplaythrough\",\n    \"onchange\",\n    \"onclick\",\n    \"onclose\",\n    \"oncontextmenu\",\n    \"oncuechange\",\n    \"ondblclick\",\n    \"ondrag\",\n    \"ondragend\",\n    \"ondragenter\",\n    \"ondragleave\",\n    \"ondragover\",\n    \"ondragstart\",\n    \"ondrop\",\n    \"ondurationchange\",\n    \"onemptied\",\n    \"onended\",\n    \"onerror\",\n    \"onfocus\",\n    \"oninput\",\n    \"oninvalid\",\n    \"onkeydown\",\n    \"onkeypress\",\n    \"onkeyup\",\n    \"onload\",\n    \"onloadeddata\",\n    \"onloadedmetadata\",\n    \"onloadstart\",\n    \"onmousedown\",\n    \"onmousemove\",\n    \"onmouseout\",\n    \"onmouseover\",\n    \"onmouseup\",\n    \"onmousewheel\",\n    \"onpause\",\n    \"onplay\",\n    \"onplaying\",\n    \"onprogress\",\n    \"onratechange\",\n    \"onreset\",\n    \"onscroll\",\n    \"onseeked\",\n    \"onseeking\",\n    \"onselect\",\n    \"onshow\",\n    \"onstalled\",\n    \"onsubmit\",\n    \"onsuspend\",\n    \"ontimeupdate\",\n    \"onvolumechange\",\n    \"onwaiting\"\n];\n\nvar globalAttributes = commonAttributes.concat(eventAttributes);\n\nvar attributeMap = {\n    \"html\": {\"manifest\": 1},\n    \"head\": {},\n    \"title\": {},\n    \"base\": {\"href\": 1, \"target\": 1},\n    \"link\": {\"href\": 1, \"hreflang\": 1, \"rel\": {\"stylesheet\": 1, \"icon\": 1}, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"type\": {\"text/css\": 1, \"image/png\": 1, \"image/jpeg\": 1, \"image/gif\": 1}, \"sizes\": 1},\n    \"meta\": {\"http-equiv\": {\"content-type\": 1}, \"name\": {\"description\": 1, \"keywords\": 1}, \"content\": {\"text/html; charset=UTF-8\": 1}, \"charset\": 1},\n    \"style\": {\"type\": 1, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"scoped\": 1},\n    \"script\": {\"charset\": 1, \"type\": {\"text/javascript\": 1}, \"src\": 1, \"defer\": 1, \"async\": 1},\n    \"noscript\": {\"href\": 1},\n    \"body\": {\"onafterprint\": 1, \"onbeforeprint\": 1, \"onbeforeunload\": 1, \"onhashchange\": 1, \"onmessage\": 1, \"onoffline\": 1, \"onpopstate\": 1, \"onredo\": 1, \"onresize\": 1, \"onstorage\": 1, \"onundo\": 1, \"onunload\": 1},\n    \"section\": {},\n    \"nav\": {},\n    \"article\": {\"pubdate\": 1},\n    \"aside\": {},\n    \"h1\": {},\n    \"h2\": {},\n    \"h3\": {},\n    \"h4\": {},\n    \"h5\": {},\n    \"h6\": {},\n    \"header\": {},\n    \"footer\": {},\n    \"address\": {},\n    \"main\": {},\n    \"p\": {},\n    \"hr\": {},\n    \"pre\": {},\n    \"blockquote\": {\"cite\": 1},\n    \"ol\": {\"start\": 1, \"reversed\": 1},\n    \"ul\": {},\n    \"li\": {\"value\": 1},\n    \"dl\": {},\n    \"dt\": {},\n    \"dd\": {},\n    \"figure\": {},\n    \"figcaption\": {},\n    \"div\": {},\n    \"a\": {\"href\": 1, \"target\": {\"_blank\": 1, \"top\": 1}, \"ping\": 1, \"rel\": {\"nofollow\": 1, \"alternate\": 1, \"author\": 1, \"bookmark\": 1, \"help\": 1, \"license\": 1, \"next\": 1, \"noreferrer\": 1, \"prefetch\": 1, \"prev\": 1, \"search\": 1, \"tag\": 1}, \"media\": 1, \"hreflang\": 1, \"type\": 1},\n    \"em\": {},\n    \"strong\": {},\n    \"small\": {},\n    \"s\": {},\n    \"cite\": {},\n    \"q\": {\"cite\": 1},\n    \"dfn\": {},\n    \"abbr\": {},\n    \"data\": {},\n    \"time\": {\"datetime\": 1},\n    \"code\": {},\n    \"var\": {},\n    \"samp\": {},\n    \"kbd\": {},\n    \"sub\": {},\n    \"sup\": {},\n    \"i\": {},\n    \"b\": {},\n    \"u\": {},\n    \"mark\": {},\n    \"ruby\": {},\n    \"rt\": {},\n    \"rp\": {},\n    \"bdi\": {},\n    \"bdo\": {},\n    \"span\": {},\n    \"br\": {},\n    \"wbr\": {},\n    \"ins\": {\"cite\": 1, \"datetime\": 1},\n    \"del\": {\"cite\": 1, \"datetime\": 1},\n    \"img\": {\"alt\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"usemap\": 1, \"ismap\": 1},\n    \"iframe\": {\"name\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"sandbox\": {\"allow-same-origin\": 1, \"allow-top-navigation\": 1, \"allow-forms\": 1, \"allow-scripts\": 1}, \"seamless\": {\"seamless\": 1}},\n    \"embed\": {\"src\": 1, \"height\": 1, \"width\": 1, \"type\": 1},\n    \"object\": {\"param\": 1, \"data\": 1, \"type\": 1, \"height\" : 1, \"width\": 1, \"usemap\": 1, \"name\": 1, \"form\": 1, \"classid\": 1},\n    \"param\": {\"name\": 1, \"value\": 1},\n    \"video\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"width\": 1, \"height\": 1, \"poster\": 1, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1}},\n    \"audio\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1 }},\n    \"source\": {\"src\": 1, \"type\": 1, \"media\": 1},\n    \"track\": {\"kind\": 1, \"src\": 1, \"srclang\": 1, \"label\": 1, \"default\": 1},\n    \"canvas\": {\"width\": 1, \"height\": 1},\n    \"map\": {\"name\": 1},\n    \"area\": {\"shape\": 1, \"coords\": 1, \"href\": 1, \"hreflang\": 1, \"alt\": 1, \"target\": 1, \"media\": 1, \"rel\": 1, \"ping\": 1, \"type\": 1},\n    \"svg\": {},\n    \"math\": {},\n    \"table\": {\"summary\": 1},\n    \"caption\": {},\n    \"colgroup\": {\"span\": 1},\n    \"col\": {\"span\": 1},\n    \"tbody\": {},\n    \"thead\": {},\n    \"tfoot\": {},\n    \"tr\": {},\n    \"td\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1},\n    \"th\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1, \"scope\": 1},\n    \"form\": {\"accept-charset\": 1, \"action\": 1, \"autocomplete\": 1, \"enctype\": {\"multipart/form-data\": 1, \"application/x-www-form-urlencoded\": 1}, \"method\": {\"get\": 1, \"post\": 1}, \"name\": 1, \"novalidate\": 1, \"target\": {\"_blank\": 1, \"top\": 1}},\n    \"fieldset\": {\"disabled\": 1, \"form\": 1, \"name\": 1},\n    \"legend\": {},\n    \"label\": {\"form\": 1, \"for\": 1},\n    \"input\": {\n        \"type\": {\"text\": 1, \"password\": 1, \"hidden\": 1, \"checkbox\": 1, \"submit\": 1, \"radio\": 1, \"file\": 1, \"button\": 1, \"reset\": 1, \"image\": 31, \"color\": 1, \"date\": 1, \"datetime\": 1, \"datetime-local\": 1, \"email\": 1, \"month\": 1, \"number\": 1, \"range\": 1, \"search\": 1, \"tel\": 1, \"time\": 1, \"url\": 1, \"week\": 1},\n        \"accept\": 1, \"alt\": 1, \"autocomplete\": {\"on\": 1, \"off\": 1}, \"autofocus\": {\"autofocus\": 1}, \"checked\": {\"checked\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": {\"application/x-www-form-urlencoded\": 1, \"multipart/form-data\": 1, \"text/plain\": 1}, \"formmethod\": {\"get\": 1, \"post\": 1}, \"formnovalidate\": {\"formnovalidate\": 1}, \"formtarget\": {\"_blank\": 1, \"_self\": 1, \"_parent\": 1, \"_top\": 1}, \"height\": 1, \"list\": 1, \"max\": 1, \"maxlength\": 1, \"min\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"pattern\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"size\": 1, \"src\": 1, \"step\": 1, \"width\": 1, \"files\": 1, \"value\": 1},\n    \"button\": {\"autofocus\": 1, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": 1, \"formmethod\": 1, \"formnovalidate\": 1, \"formtarget\": 1, \"name\": 1, \"value\": 1, \"type\": {\"button\": 1, \"submit\": 1}},\n    \"select\": {\"autofocus\": 1, \"disabled\": 1, \"form\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"size\": 1, \"readonly\":{\"readonly\": 1}},\n    \"datalist\": {},\n    \"optgroup\": {\"disabled\": 1, \"label\": 1},\n    \"option\": {\"disabled\": 1, \"selected\": 1, \"label\": 1, \"value\": 1},\n    \"textarea\": {\"autofocus\": {\"autofocus\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"maxlength\": 1, \"name\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"rows\": 1, \"cols\": 1, \"wrap\": {\"on\": 1, \"off\": 1, \"hard\": 1, \"soft\": 1}},\n    \"keygen\": {\"autofocus\": 1, \"challenge\": {\"challenge\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"keytype\": {\"rsa\": 1, \"dsa\": 1, \"ec\": 1}, \"name\": 1},\n    \"output\": {\"for\": 1, \"form\": 1, \"name\": 1},\n    \"progress\": {\"value\": 1, \"max\": 1},\n    \"meter\": {\"value\": 1, \"min\": 1, \"max\": 1, \"low\": 1, \"high\": 1, \"optimum\": 1},\n    \"details\": {\"open\": 1},\n    \"summary\": {},\n    \"command\": {\"type\": 1, \"label\": 1, \"icon\": 1, \"disabled\": 1, \"checked\": 1, \"radiogroup\": 1, \"command\": 1},\n    \"menu\": {\"type\": 1, \"label\": 1},\n    \"dialog\": {\"open\": 1}\n};\n\nvar elements = Object.keys(attributeMap);\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nfunction findTagName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"tag-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nfunction findAttributeName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"attribute-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nvar HtmlCompletions = function() {\n\n};\n\n(function() {\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (is(token, \"tag-name\") || is(token, \"tag-open\") || is(token, \"end-tag-open\"))\n            return this.getTagCompletions(state, session, pos, prefix);\n        if (is(token, \"tag-whitespace\") || is(token, \"attribute-name\"))\n            return this.getAttributeCompletions(state, session, pos, prefix);\n        if (is(token, \"attribute-value\"))\n            return this.getAttributeValueCompletions(state, session, pos, prefix);\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        if (/&[a-z]*$/i.test(line))\n            return this.getHTMLEntityCompletions(state, session, pos, prefix);\n\n        return [];\n    };\n\n    this.getTagCompletions = function(state, session, pos, prefix) {\n        return elements.map(function(element){\n            return {\n                value: element,\n                meta: \"tag\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        if (!tagName)\n            return [];\n        var attributes = globalAttributes;\n        if (tagName in attributeMap) {\n            attributes = attributes.concat(Object.keys(attributeMap[tagName]));\n        }\n        return attributes.map(function(attribute){\n            return {\n                caption: attribute,\n                snippet: attribute + '=\"$0\"',\n                meta: \"attribute\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeValueCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        var attributeName = findAttributeName(session, pos);\n        \n        if (!tagName)\n            return [];\n        var values = [];\n        if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === \"object\") {\n            values = Object.keys(attributeMap[tagName][attributeName]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"attribute value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getHTMLEntityCompletions = function(state, session, pos, prefix) {\n        var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;'];\n\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"html entity\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(HtmlCompletions.prototype);\n\nexports.HtmlCompletions = HtmlCompletions;\n});\n\nace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar CssMode = require(\"./css\").Mode;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar HtmlFoldMode = require(\"./folding/html\").FoldMode;\nvar HtmlCompletions = require(\"./html_completions\").HtmlCompletions;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar voidElements = [\"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"menuitem\", \"param\", \"source\", \"track\", \"wbr\"];\nvar optionalEndTags = [\"li\", \"dt\", \"dd\", \"p\", \"rt\", \"rp\", \"optgroup\", \"option\", \"colgroup\", \"td\", \"th\"];\n\nvar Mode = function(options) {\n    this.fragmentContext = options && options.fragmentContext;\n    this.HighlightRules = HtmlHighlightRules;\n    this.$behaviour = new XmlBehaviour();\n    this.$completer = new HtmlCompletions();\n    \n    this.createModeDelegates({\n        \"js-\": JavaScriptMode,\n        \"css-\": CssMode\n    });\n    \n    this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags));\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.blockComment = {start: \"<!--\", end: \"-->\"};\n\n    this.voidElements = lang.arrayToMap(voidElements);\n\n    this.getNextLineIndent = function(state, line, tab) {\n        return this.$getIndent(line);\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return false;\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        if (this.constructor != Mode)\n            return;\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/html_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        if (this.fragmentContext)\n            worker.call(\"setOptions\", [{context: this.fragmentContext}]);\n\n        worker.on(\"error\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/html\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/tex_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar TexHighlightRules = function(textClass) {\n\n    if (!textClass)\n        textClass = \"text\";\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"%.*$\"\n            }, {\n                token : textClass, // non-command\n                regex : \"\\\\\\\\[$&%#\\\\{\\\\}]\"\n            }, {\n                token : \"keyword\", // command\n                regex : \"\\\\\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\\\b\",\n               next : \"nospell\"\n            }, {\n                token : \"keyword\", // command\n                regex : \"\\\\\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])\"\n            }, {\n               token : \"paren.keyword.operator\",\n                regex : \"[[({]\"\n            }, {\n               token : \"paren.keyword.operator\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : textClass,\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"nospell\" : [\n           {\n               token : \"comment\",\n               regex : \"%.*$\",\n               next : \"start\"\n           }, {\n               token : \"nospell.\" + textClass, // non-command\n               regex : \"\\\\\\\\[$&%#\\\\{\\\\}]\"\n           }, {\n               token : \"keyword\", // command\n               regex : \"\\\\\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\\\b\"\n           }, {\n               token : \"keyword\", // command\n               regex : \"\\\\\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])\",\n               next : \"start\"\n           }, {\n               token : \"paren.keyword.operator\",\n               regex : \"[[({]\"\n           }, {\n               token : \"paren.keyword.operator\",\n               regex : \"[\\\\])]\"\n           }, {\n               token : \"paren.keyword.operator\",\n               regex : \"}\",\n               next : \"start\"\n           }, {\n               token : \"nospell.\" + textClass,\n               regex : \"\\\\s+\"\n           }, {\n               token : \"nospell.\" + textClass,\n               regex : \"\\\\w+\"\n           }\n        ]\n    };\n};\n\noop.inherits(TexHighlightRules, TextHighlightRules);\n\nexports.TexHighlightRules = TexHighlightRules;\n});\n\nace.define(\"ace/mode/r_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/tex_highlight_rules\"], function(require, exports, module)\n{\n\n   var oop = require(\"../lib/oop\");\n   var lang = require(\"../lib/lang\");\n   var TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n   var TexHighlightRules = require(\"./tex_highlight_rules\").TexHighlightRules;\n\n   var RHighlightRules = function()\n   {\n\n      var keywords = lang.arrayToMap(\n            (\"function|if|in|break|next|repeat|else|for|return|switch|while|try|tryCatch|stop|warning|require|library|attach|detach|source|setMethod|setGeneric|setGroupGeneric|setClass\")\n                  .split(\"|\")\n            );\n\n      var buildinConstants = lang.arrayToMap(\n            (\"NULL|NA|TRUE|FALSE|T|F|Inf|NaN|NA_integer_|NA_real_|NA_character_|\" +\n             \"NA_complex_\").split(\"|\")\n            );\n\n      this.$rules = {\n         \"start\" : [\n            {\n               token : \"comment.sectionhead\",\n               regex : \"#+(?!').*(?:----|====|####)\\\\s*$\"\n            },\n            {\n               token : \"comment\",\n               regex : \"#+'\",\n               next : \"rd-start\"\n            },\n            {\n               token : \"comment\",\n               regex : \"#.*$\"\n            },\n            {\n               token : \"string\", // multi line string start\n               regex : '[\"]',\n               next : \"qqstring\"\n            },\n            {\n               token : \"string\", // multi line string start\n               regex : \"[']\",\n               next : \"qstring\"\n            },\n            {\n               token : \"constant.numeric\", // hex\n               regex : \"0[xX][0-9a-fA-F]+[Li]?\\\\b\"\n            },\n            {\n               token : \"constant.numeric\", // explicit integer\n               regex : \"\\\\d+L\\\\b\"\n            },\n            {\n               token : \"constant.numeric\", // number\n               regex : \"\\\\d+(?:\\\\.\\\\d*)?(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b\"\n            },\n            {\n               token : \"constant.numeric\", // number with leading decimal\n               regex : \"\\\\.\\\\d+(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b\"\n            },\n            {\n               token : \"constant.language.boolean\",\n               regex : \"(?:TRUE|FALSE|T|F)\\\\b\"\n            },\n            {\n               token : \"identifier\",\n               regex : \"`.*?`\"\n            },\n            {\n               onMatch : function(value) {\n                  if (keywords[value])\n                     return \"keyword\";\n                  else if (buildinConstants[value])\n                     return \"constant.language\";\n                  else if (value == '...' || value.match(/^\\.\\.\\d+$/))\n                     return \"variable.language\";\n                  else\n                     return \"identifier\";\n               },\n               regex : \"[a-zA-Z.][a-zA-Z0-9._]*\\\\b\"\n            },\n            {\n               token : \"keyword.operator\",\n               regex : \"%%|>=|<=|==|!=|\\\\->|<\\\\-|\\\\|\\\\||&&|=|\\\\+|\\\\-|\\\\*|/|\\\\^|>|<|!|&|\\\\||~|\\\\$|:\"\n            },\n            {\n               token : \"keyword.operator\", // infix operators\n               regex : \"%.*?%\"\n            },\n            {\n               token : \"paren.keyword.operator\",\n               regex : \"[[({]\"\n            },\n            {\n               token : \"paren.keyword.operator\",\n               regex : \"[\\\\])}]\"\n            },\n            {\n               token : \"text\",\n               regex : \"\\\\s+\"\n            }\n         ],\n         \"qqstring\" : [\n            {\n               token : \"string\",\n               regex : '(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',\n               next : \"start\"\n            },\n            {\n               token : \"string\",\n               regex : '.+'\n            }\n         ],\n         \"qstring\" : [\n            {\n               token : \"string\",\n               regex : \"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",\n               next : \"start\"\n            },\n            {\n               token : \"string\",\n               regex : '.+'\n            }\n         ]\n      };\n\n      var rdRules = new TexHighlightRules(\"comment\").getRules();\n      for (var i = 0; i < rdRules[\"start\"].length; i++) {\n         rdRules[\"start\"][i].token += \".virtual-comment\";\n      }\n\n      this.addRules(rdRules, \"rd-\");\n      this.$rules[\"rd-start\"].unshift({\n          token: \"text\",\n          regex: \"^\",\n          next: \"start\"\n      });\n      this.$rules[\"rd-start\"].unshift({\n         token : \"keyword\",\n         regex : \"@(?!@)[^ ]*\"\n      });\n      this.$rules[\"rd-start\"].unshift({\n         token : \"comment\",\n         regex : \"@@\"\n      });\n      this.$rules[\"rd-start\"].push({\n         token : \"comment\",\n         regex : \"[^%\\\\\\\\[({\\\\])}]+\"\n      });\n   };\n\n   oop.inherits(RHighlightRules, TextHighlightRules);\n\n   exports.RHighlightRules = RHighlightRules;\n});\n\nace.define(\"ace/mode/rhtml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/r_highlight_rules\",\"ace/mode/html_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar RHighlightRules = require(\"./r_highlight_rules\").RHighlightRules;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar RHtmlHighlightRules = function() {\n    HtmlHighlightRules.call(this);\n\n    this.$rules[\"start\"].unshift({\n        token: \"support.function.codebegin\",\n        regex: \"^<\" + \"!--\\\\s*begin.rcode\\\\s*(?:.*)\",\n        next: \"r-start\"\n    });\n\n    this.embedRules(RHighlightRules, \"r-\", [{\n        token: \"support.function.codeend\",\n        regex: \"^\\\\s*end.rcode\\\\s*-->\",\n        next: \"start\"\n    }], [\"start\"]);\n\n    this.normalizeRules();\n};\noop.inherits(RHtmlHighlightRules, TextHighlightRules);\n\nexports.RHtmlHighlightRules = RHtmlHighlightRules;\n});\n\nace.define(\"ace/mode/rhtml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/rhtml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar HtmlMode = require(\"./html\").Mode;\n\nvar RHtmlHighlightRules = require(\"./rhtml_highlight_rules\").RHtmlHighlightRules;\n\nvar Mode = function(doc, session) {\n   HtmlMode.call(this);\n   this.$session = session;\n   this.HighlightRules = RHtmlHighlightRules;\n};\noop.inherits(Mode, HtmlMode);\n\n(function() {\n   this.insertChunkInfo = {\n      value: \"<!--begin.rcode\\n\\nend.rcode-->\\n\",\n      position: {row: 0, column: 15}\n   };\n    \n   this.getLanguageMode = function(position)\n   {\n      return this.$session.getState(position.row).match(/^r-/) ? 'R' : 'HTML';\n   };\n\n    this.$id = \"ace/mode/rhtml\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-rst.js",
    "content": "ace.define(\"ace/mode/rst_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar RSTHighlightRules = function() {\n\n  var tokens = {\n    title: \"markup.heading\",\n    list: \"markup.heading\",\n    table: \"constant\",\n    directive: \"keyword.operator\",\n    entity: \"string\",\n    link: \"markup.underline.list\",\n    bold: \"markup.bold\",\n    italic: \"markup.italic\",\n    literal: \"support.function\",\n    comment: \"comment\"\n  };\n\n  var startStringPrefix = \"(^|\\\\s|[\\\"'(<\\\\[{\\\\-/:])\";\n  var endStringSuffix = \"(?:$|(?=\\\\s|[\\\\\\\\.,;!?\\\\-/:\\\"')>\\\\]}]))\";\n\n  this.$rules = {\n    \"start\": [\n      {\n        token : tokens.title,\n        regex : \"(^)([\\\\=\\\\-`:\\\\.'\\\"~\\\\^_\\\\*\\\\+#])(\\\\2{2,}\\\\s*$)\"\n      },\n      {\n        token : [\"text\", tokens.directive, tokens.literal],\n        regex : \"(^\\\\s*\\\\.\\\\. )([^: ]+::)(.*$)\",\n        next  : \"codeblock\"\n      },\n      {\n        token : tokens.directive,\n        regex : \"::$\",\n        next  : \"codeblock\"\n      },\n      {\n        token : [tokens.entity, tokens.link],\n        regex : \"(^\\\\.\\\\. _[^:]+:)(.*$)\"\n      },\n      {\n        token : [tokens.entity, tokens.link],\n        regex : \"(^__ )(https?://.*$)\"\n      },\n      {\n        token : tokens.entity,\n        regex : \"^\\\\.\\\\. \\\\[[^\\\\]]+\\\\] \"\n      },\n      {\n        token : tokens.comment,\n        regex : \"^\\\\.\\\\. .*$\",\n        next  : \"comment\"\n      },\n      {\n        token : tokens.list,\n        regex : \"^\\\\s*[\\\\*\\\\+-] \"\n      },\n      {\n        token : tokens.list,\n        regex : \"^\\\\s*(?:[A-Za-z]|[0-9]+|[ivxlcdmIVXLCDM]+)\\\\. \"\n      },\n      {\n        token : tokens.list,\n        regex : \"^\\\\s*\\\\(?(?:[A-Za-z]|[0-9]+|[ivxlcdmIVXLCDM]+)\\\\) \"\n      },\n      {\n        token : tokens.table,\n        regex : \"^={2,}(?: +={2,})+$\"\n      },\n      {\n        token : tokens.table,\n        regex : \"^\\\\+-{2,}(?:\\\\+-{2,})+\\\\+$\"\n      },\n      {\n        token : tokens.table,\n        regex : \"^\\\\+={2,}(?:\\\\+={2,})+\\\\+$\"\n      },\n      {\n        token : [\"text\", tokens.literal],\n        regex : startStringPrefix + \"(``)(?=\\\\S)\",\n        next  : \"code\"\n      },\n      {\n        token : [\"text\", tokens.bold],\n        regex : startStringPrefix + \"(\\\\*\\\\*)(?=\\\\S)\",\n        next  : \"bold\"\n      },\n      {\n        token : [\"text\", tokens.italic],\n        regex : startStringPrefix + \"(\\\\*)(?=\\\\S)\",\n        next  : \"italic\"\n      },\n      {\n        token : tokens.entity,\n        regex : \"\\\\|[\\\\w\\\\-]+?\\\\|\"\n      },\n      {\n        token : tokens.entity,\n        regex : \":[\\\\w-:]+:`\\\\S\",\n        next  : \"entity\"\n      },\n      {\n        token : [\"text\", tokens.entity],\n        regex : startStringPrefix + \"(_`)(?=\\\\S)\",\n        next  : \"entity\"\n      },\n      {\n        token : tokens.entity,\n        regex : \"_[A-Za-z0-9\\\\-]+?\"\n      },\n      {\n        token : [\"text\", tokens.link],\n        regex : startStringPrefix + \"(`)(?=\\\\S)\",\n        next  : \"link\"\n      },\n      {\n        token : tokens.link,\n        regex : \"[A-Za-z0-9\\\\-]+?__?\"\n      },\n      {\n        token : tokens.link,\n        regex : \"\\\\[[^\\\\]]+?\\\\]_\"\n      },\n      {\n        token : tokens.link,\n        regex : \"https?://\\\\S+\"\n      },\n      {\n        token : tokens.table,\n        regex : \"\\\\|\"\n      }\n    ],\n    \"codeblock\": [\n      {\n        token : tokens.literal,\n        regex : \"^ +.+$\",\n        next : \"codeblock\"\n      },\n      {\n        token : tokens.literal,\n        regex : '^$',\n        next: \"codeblock\"\n      },\n      {\n        token : \"empty\",\n        regex : \"\",\n        next : \"start\"\n      }\n    ],\n    \"code\": [\n      {\n        token : tokens.literal,\n        regex : \"\\\\S``\" + endStringSuffix,\n        next  : \"start\"\n      },\n      {\n        defaultToken: tokens.literal\n      }\n    ],\n    \"bold\": [\n      {\n        token : tokens.bold,\n        regex : \"\\\\S\\\\*\\\\*\" + endStringSuffix,\n        next  : \"start\"\n      },\n      {\n        defaultToken: tokens.bold\n      }\n    ],\n    \"italic\": [\n      {\n        token : tokens.italic,\n        regex : \"\\\\S\\\\*\" + endStringSuffix,\n        next  : \"start\"\n      },\n      {\n        defaultToken: tokens.italic\n      }\n    ],\n    \"entity\": [\n      {\n        token : tokens.entity,\n        regex : \"\\\\S`\" + endStringSuffix,\n        next  : \"start\"\n      },\n      {\n        defaultToken: tokens.entity\n      }\n    ],\n    \"link\": [\n      {\n        token : tokens.link,\n        regex : \"\\\\S`__?\" + endStringSuffix,\n        next  : \"start\"\n      },\n      {\n        defaultToken: tokens.link\n      }\n    ],\n    \"comment\": [\n      {\n        token : tokens.comment,\n        regex : \"^ +.+$\",\n        next : \"comment\"\n      },\n      {\n        token : tokens.comment,\n        regex : '^$',\n        next: \"comment\"\n      },\n      {\n        token : \"empty\",\n        regex : \"\",\n        next : \"start\"\n      }\n    ]\n  };\n};\noop.inherits(RSTHighlightRules, TextHighlightRules);\n\nexports.RSTHighlightRules = RSTHighlightRules;\n});\n\nace.define(\"ace/mode/rst\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/rst_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar RSTHighlightRules = require(\"./rst_highlight_rules\").RSTHighlightRules;\n\nvar Mode = function() {\n    this.HighlightRules = RSTHighlightRules;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.type = \"text\";\n\n    this.$id = \"ace/mode/rst\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-ruby.js",
    "content": "ace.define(\"ace/mode/ruby_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar constantOtherSymbol = exports.constantOtherSymbol = {\n    token : \"constant.other.symbol.ruby\", // symbol\n    regex : \"[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?\"\n};\n\nvar qString = exports.qString = {\n    token : \"string\", // single line\n    regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n};\n\nvar qqString = exports.qqString = {\n    token : \"string\", // single line\n    regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n};\n\nvar tString = exports.tString = {\n    token : \"string\", // backtick string\n    regex : \"[`](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[`]\"\n};\n\nvar constantNumericHex = exports.constantNumericHex = {\n    token : \"constant.numeric\", // hex\n    regex : \"0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\\\b\"\n};\n\nvar constantNumericFloat = exports.constantNumericFloat = {\n    token : \"constant.numeric\", // float\n    regex : \"[+-]?\\\\d(?:\\\\d|_(?=\\\\d))*(?:(?:\\\\.\\\\d(?:\\\\d|_(?=\\\\d))*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n};\n\nvar RubyHighlightRules = function() {\n\n    var builtinFunctions = (\n        \"abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|\" +\n        \"assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|\" +\n        \"assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|\" +\n        \"assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|\" +\n        \"assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|\" +\n        \"assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|\" +\n        \"attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|\" +\n        \"caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|\" +\n        \"exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|\" +\n        \"gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|\" +\n        \"link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|\" +\n        \"p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|\" +\n        \"raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|\" +\n        \"set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|\" +\n        \"throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|\" +\n        \"render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|\" +\n        \"content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|\" +\n        \"fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|\" +\n        \"time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|\" +\n        \"select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|\" +\n        \"file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|\" +\n        \"protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|\" +\n        \"send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|\" +\n        \"validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|\" +\n        \"validates_inclusion_of|validates_numericality_of|validates_with|validates_each|\" +\n        \"authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|\" +\n        \"filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|\" +\n        \"translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|\" +\n        \"cache|expire_fragment|expire_cache_for|observe|cache_sweeper|\" +\n        \"has_many|has_one|belongs_to|has_and_belongs_to_many\"\n    );\n\n    var keywords = (\n        \"alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|\" +\n        \"__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|\" +\n        \"redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield\"\n    );\n\n    var buildinConstants = (\n        \"true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|\" +\n        \"RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING\"\n    );\n\n    var builtinVariables = (\n        \"$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|\" +\n        \"$!|root_url|flash|session|cookies|params|request|response|logger|self\"\n    );\n\n    var keywordMapper = this.$keywords = this.createKeywordMapper({\n        \"keyword\": keywords,\n        \"constant.language\": buildinConstants,\n        \"variable.language\": builtinVariables,\n        \"support.function\": builtinFunctions,\n        \"invalid.deprecated\": \"debugger\" // TODO is this a remnant from js mode?\n    }, \"identifier\");\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"#.*$\"\n            }, {\n                token : \"comment\", // multi line comment\n                regex : \"^=begin(?:$|\\\\s.*$)\",\n                next : \"comment\"\n            }, {\n                token : \"string.regexp\",\n                regex : \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"\n            },\n\n            [{\n                regex: \"[{}]\", onMatch: function(val, state, stack) {\n                    this.next = val == \"{\" ? this.nextState : \"\";\n                    if (val == \"{\" && stack.length) {\n                        stack.unshift(\"start\", state);\n                        return \"paren.lparen\";\n                    }\n                    if (val == \"}\" && stack.length) {\n                        stack.shift();\n                        this.next = stack.shift();\n                        if (this.next.indexOf(\"string\") != -1)\n                            return \"paren.end\";\n                    }\n                    return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n                },\n                nextState: \"start\"\n            }, {\n                token : \"string.start\",\n                regex : /\"/,\n                push  : [{\n                    token : \"constant.language.escape\",\n                    regex : /\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/\n                }, {\n                    token : \"paren.start\",\n                    regex : /#{/,\n                    push  : \"start\"\n                }, {\n                    token : \"string.end\",\n                    regex : /\"/,\n                    next  : \"pop\"\n                }, {\n                    defaultToken: \"string\"\n                }]\n            }, {\n                token : \"string.start\",\n                regex : /`/,\n                push  : [{\n                    token : \"constant.language.escape\",\n                    regex : /\\\\(?:[nsrtvfbae'\"\\\\]|c.|C-.|M-.(?:\\\\C-.)?|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4})/\n                }, {\n                    token : \"paren.start\",\n                    regex : /#{/,\n                    push  : \"start\"\n                }, {\n                    token : \"string.end\",\n                    regex : /`/,\n                    next  : \"pop\"\n                }, {\n                    defaultToken: \"string\"\n                }]\n            }, {\n                token : \"string.start\",\n                regex : /'/,\n                push  : [{\n                    token : \"constant.language.escape\",\n                    regex : /\\\\['\\\\]/\n                },  {\n                    token : \"string.end\",\n                    regex : /'/,\n                    next  : \"pop\"\n                }, {\n                    defaultToken: \"string\"\n                }]\n            }],\n\n            {\n                token : \"text\", // namespaces aren't symbols\n                regex : \"::\"\n            }, {\n                token : \"variable.instance\", // instance variable\n                regex : \"@{1,2}[a-zA-Z_\\\\d]+\"\n            }, {\n                token : \"support.class\", // class name\n                regex : \"[A-Z][a-zA-Z_\\\\d]+\"\n            },\n\n            constantOtherSymbol,\n            constantNumericHex,\n            constantNumericFloat,\n\n            {\n                token : \"constant.language.boolean\",\n                regex : \"(?:true|false)\\\\b\"\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n            }, {\n                token : \"punctuation.separator.key-value\",\n                regex : \"=>\"\n            }, {\n                stateName: \"heredoc\",\n                onMatch : function(value, currentState, stack) {\n                    var next = value[2] == '-' ? \"indentedHeredoc\" : \"heredoc\";\n                    var tokens = value.split(this.splitRegex);\n                    stack.push(next, tokens[3]);\n                    return [\n                        {type:\"constant\", value: tokens[1]},\n                        {type:\"string\", value: tokens[2]},\n                        {type:\"support.class\", value: tokens[3]},\n                        {type:\"string\", value: tokens[4]}\n                    ];\n                },\n                regex : \"(<<-?)(['\\\"`]?)([\\\\w]+)(['\\\"`]?)\",\n                rules: {\n                    heredoc: [{\n                        onMatch:  function(value, currentState, stack) {\n                            if (value === stack[1]) {\n                                stack.shift();\n                                stack.shift();\n                                this.next = stack[0] || \"start\";\n                                return \"support.class\";\n                            }\n                            this.next = \"\";\n                            return \"string\";\n                        },\n                        regex: \".*$\",\n                        next: \"start\"\n                    }],\n                    indentedHeredoc: [{\n                        token: \"string\",\n                        regex: \"^ +\"\n                    }, {\n                        onMatch:  function(value, currentState, stack) {\n                            if (value === stack[1]) {\n                                stack.shift();\n                                stack.shift();\n                                this.next = stack[0] || \"start\";\n                                return \"support.class\";\n                            }\n                            this.next = \"\";\n                            return \"string\";\n                        },\n                        regex: \".*$\",\n                        next: \"start\"\n                    }]\n                }\n            }, {\n                regex : \"$\",\n                token : \"empty\",\n                next : function(currentState, stack) {\n                    if (stack[0] === \"heredoc\" || stack[0] === \"indentedHeredoc\")\n                        return stack[0];\n                    return currentState;\n                }\n            }, {\n               token : \"string.character\",\n               regex : \"\\\\B\\\\?.\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \"^=end(?:$|\\\\s.*$)\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(RubyHighlightRules, TextHighlightRules);\n\nexports.RubyHighlightRules = RubyHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var range = this.indentationBlock(session, row);\n        if (range)\n            return range;\n\n        var re = /\\S/;\n        var line = session.getLine(row);\n        var startLevel = line.search(re);\n        if (startLevel == -1 || line[startLevel] != \"#\")\n            return;\n\n        var startColumn = line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var level = line.search(re);\n\n            if (level == -1)\n                continue;\n\n            if (line[level] != \"#\")\n                break;\n\n            endRow = row;\n        }\n\n        if (endRow > startRow) {\n            var endColumn = session.getLine(endRow).length;\n            return new Range(startRow, startColumn, endRow, endColumn);\n        }\n    };\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var indent = line.search(/\\S/);\n        var next = session.getLine(row + 1);\n        var prev = session.getLine(row - 1);\n        var prevIndent = prev.search(/\\S/);\n        var nextIndent = next.search(/\\S/);\n\n        if (indent == -1) {\n            session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n            return \"\";\n        }\n        if (prevIndent == -1) {\n            if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n                session.foldWidgets[row - 1] = \"\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"start\";\n            }\n        } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n            if (session.getLine(row - 2).search(/\\S/) == -1) {\n                session.foldWidgets[row - 1] = \"start\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"\";\n            }\n        }\n\n        if (prevIndent!= -1 && prevIndent < indent)\n            session.foldWidgets[row - 1] = \"start\";\n        else\n            session.foldWidgets[row - 1] = \"\";\n\n        if (indent < nextIndent)\n            return \"start\";\n        else\n            return \"\";\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/ruby\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/ruby_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/coffee\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar RubyHighlightRules = require(\"./ruby_highlight_rules\").RubyHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar Range = require(\"../range\").Range;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar FoldMode = require(\"./folding/coffee\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = RubyHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new FoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n\n    this.lineCommentStart = \"#\";\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n            var startingClassOrMethod = line.match(/^\\s*(class|def|module)\\s.*$/);\n            var startingDoBlock = line.match(/.*do(\\s*|\\s+\\|.*\\|\\s*)$/);\n            var startingConditional = line.match(/^\\s*(if|else|when)\\s*/)\n            if (match || startingClassOrMethod || startingDoBlock || startingConditional) {\n                indent += tab;\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return /^\\s+(end|else)$/.test(line + input) || this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, session, row) {\n        var line = session.getLine(row);\n        if (/}/.test(line))\n            return this.$outdent.autoOutdent(session, row);\n        var indent = this.$getIndent(line);\n        var prevLine = session.getLine(row - 1);\n        var prevIndent = this.$getIndent(prevLine);\n        var tab = session.getTabString();\n        if (prevIndent.length <= indent.length) {\n            if (indent.slice(-tab.length) == tab)\n                session.remove(new Range(row, indent.length-tab.length, row, indent.length));\n        }\n    };\n\n    this.$id = \"ace/mode/ruby\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-rust.js",
    "content": "ace.define(\"ace/mode/rust_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar stringEscape = /\\\\(?:[nrt0'\"\\\\]|x[\\da-fA-F]{2}|u\\{[\\da-fA-F]{6}\\})/.source;\nvar RustHighlightRules = function() {\n\n    this.$rules = { start:\n       [ { token: 'variable.other.source.rust',\n           regex: '\\'[a-zA-Z_][a-zA-Z0-9_]*(?![\\\\\\'])' },\n         { token: 'string.quoted.single.source.rust',\n           regex: \"'(?:[^'\\\\\\\\]|\" + stringEscape + \")'\" },\n         {\n            stateName: \"bracketedComment\",\n            onMatch : function(value, currentState, stack){\n                stack.unshift(this.next, value.length - 1, currentState);\n                return \"string.quoted.raw.source.rust\";\n            },\n            regex : /r#*\"/,\n            next  : [\n                {\n                    onMatch : function(value, currentState, stack) {\n                        var token = \"string.quoted.raw.source.rust\";\n                        if (value.length >= stack[1]) {\n                            if (value.length > stack[1])\n                                token = \"invalid\";\n                            stack.shift();\n                            stack.shift();\n                            this.next = stack.shift();\n                        } else {\n                            this.next = \"\";\n                        }\n                        return token;\n                    },\n                    regex : /\"#*/,\n                    next  : \"start\"\n                }, {\n                    defaultToken : \"string.quoted.raw.source.rust\"\n                }\n            ]\n         },\n         { token: 'string.quoted.double.source.rust',\n           regex: '\"',\n           push: \n            [ { token: 'string.quoted.double.source.rust',\n                regex: '\"',\n                next: 'pop' },\n              { token: 'constant.character.escape.source.rust',\n                regex: stringEscape },\n              { defaultToken: 'string.quoted.double.source.rust' } ] },\n         { token: [ 'keyword.source.rust', 'text', 'entity.name.function.source.rust' ],\n           regex: '\\\\b(fn)(\\\\s+)([a-zA-Z_][a-zA-Z0-9_]*)' },\n         { token: 'support.constant', regex: '\\\\b[a-zA-Z_][\\\\w\\\\d]*::' },\n         { token: 'keyword.source.rust',\n           regex: '\\\\b(?:abstract|alignof|as|box|break|continue|const|crate|do|else|enum|extern|for|final|if|impl|in|let|loop|macro|match|mod|move|mut|offsetof|override|priv|proc|pub|pure|ref|return|self|sizeof|static|struct|super|trait|type|typeof|unsafe|unsized|use|virtual|where|while|yield)\\\\b' },\n         { token: 'storage.type.source.rust',\n           regex: '\\\\b(?:Self|isize|usize|char|bool|u8|u16|u32|u64|u128|f16|f32|f64|i8|i16|i32|i64|i128|str|option|either|c_float|c_double|c_void|FILE|fpos_t|DIR|dirent|c_char|c_schar|c_uchar|c_short|c_ushort|c_int|c_uint|c_long|c_ulong|size_t|ptrdiff_t|clock_t|time_t|c_longlong|c_ulonglong|intptr_t|uintptr_t|off_t|dev_t|ino_t|pid_t|mode_t|ssize_t)\\\\b' },\n         { token: 'variable.language.source.rust', regex: '\\\\bself\\\\b' },\n         \n         { token: 'comment.line.doc.source.rust',\n           regex: '//!.*$' },\n         { token: 'comment.line.double-dash.source.rust',\n           regex: '//.*$' },\n         { token: 'comment.start.block.source.rust',\n           regex: '/\\\\*',\n           stateName: 'comment',\n           push: \n            [ { token: 'comment.start.block.source.rust',\n                regex: '/\\\\*',\n                push: 'comment' },\n              { token: 'comment.end.block.source.rust',\n                regex: '\\\\*/',\n                next: 'pop' },\n              { defaultToken: 'comment.block.source.rust' } ] },\n         \n         { token: 'keyword.operator',\n           regex: /\\$|[-=]>|[-+%^=!&|<>]=?|[*/](?![*/])=?/ },\n         { token : \"punctuation.operator\", regex : /[?:,;.]/ },\n         { token : \"paren.lparen\", regex : /[\\[({]/ },\n         { token : \"paren.rparen\", regex : /[\\])}]/ },\n         { token: 'constant.language.source.rust',\n           regex: '\\\\b(?:true|false|Some|None|Ok|Err)\\\\b' },\n         { token: 'support.constant.source.rust',\n           regex: '\\\\b(?:EXIT_FAILURE|EXIT_SUCCESS|RAND_MAX|EOF|SEEK_SET|SEEK_CUR|SEEK_END|_IOFBF|_IONBF|_IOLBF|BUFSIZ|FOPEN_MAX|FILENAME_MAX|L_tmpnam|TMP_MAX|O_RDONLY|O_WRONLY|O_RDWR|O_APPEND|O_CREAT|O_EXCL|O_TRUNC|S_IFIFO|S_IFCHR|S_IFBLK|S_IFDIR|S_IFREG|S_IFMT|S_IEXEC|S_IWRITE|S_IREAD|S_IRWXU|S_IXUSR|S_IWUSR|S_IRUSR|F_OK|R_OK|W_OK|X_OK|STDIN_FILENO|STDOUT_FILENO|STDERR_FILENO)\\\\b' },\n         { token: 'meta.preprocessor.source.rust',\n           regex: '\\\\b\\\\w\\\\(\\\\w\\\\)*!|#\\\\[[\\\\w=\\\\(\\\\)_]+\\\\]\\\\b' },\n         { token: 'constant.numeric.source.rust',\n           regex: /\\b(?:0x[a-fA-F0-9_]+|0o[0-7_]+|0b[01_]+|[0-9][0-9_]*(?!\\.))(?:[iu](?:size|8|16|32|64|128))?\\b/ },\n         { token: 'constant.numeric.source.rust',\n           regex: /\\b(?:[0-9][0-9_]*)(?:\\.[0-9][0-9_]*)?(?:[Ee][+-][0-9][0-9_]*)?(?:f32|f64)?\\b/ } ] }\n    \n    this.normalizeRules();\n};\n\nRustHighlightRules.metaData = { fileTypes: [ 'rs', 'rc' ],\n      foldingStartMarker: '^.*\\\\bfn\\\\s*(\\\\w+\\\\s*)?\\\\([^\\\\)]*\\\\)(\\\\s*\\\\{[^\\\\}]*)?\\\\s*$',\n      foldingStopMarker: '^\\\\s*\\\\}',\n      name: 'Rust',\n      scopeName: 'source.rust' }\n\n\noop.inherits(RustHighlightRules, TextHighlightRules);\n\nexports.RustHighlightRules = RustHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/rust\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/rust_highlight_rules\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar RustHighlightRules = require(\"./rust_highlight_rules\").RustHighlightRules;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = RustHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\", nestable: true};\n    this.$id = \"ace/mode/rust\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-sass.js",
    "content": "ace.define(\"ace/mode/scss_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar ScssHighlightRules = function() {\n    \n    var properties = lang.arrayToMap( (function () {\n\n        var browserPrefix = (\"-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-\").split(\"|\");\n        \n        var prefixProperties = (\"appearance|background-clip|background-inline-policy|background-origin|\" + \n             \"background-size|binding|border-bottom-colors|border-left-colors|\" + \n             \"border-right-colors|border-top-colors|border-end|border-end-color|\" + \n             \"border-end-style|border-end-width|border-image|border-start|\" + \n             \"border-start-color|border-start-style|border-start-width|box-align|\" + \n             \"box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|\" + \n             \"box-pack|box-sizing|column-count|column-gap|column-width|column-rule|\" + \n             \"column-rule-width|column-rule-style|column-rule-color|float-edge|\" + \n             \"font-feature-settings|font-language-override|force-broken-image-icon|\" + \n             \"image-region|margin-end|margin-start|opacity|outline|outline-color|\" + \n             \"outline-offset|outline-radius|outline-radius-bottomleft|\" + \n             \"outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|\" + \n             \"outline-style|outline-width|padding-end|padding-start|stack-sizing|\" + \n             \"tab-size|text-blink|text-decoration-color|text-decoration-line|\" + \n             \"text-decoration-style|transform|transform-origin|transition|\" + \n             \"transition-delay|transition-duration|transition-property|\" + \n             \"transition-timing-function|user-focus|user-input|user-modify|user-select|\" +\n             \"window-shadow|border-radius\").split(\"|\");\n        \n        var properties = (\"azimuth|background-attachment|background-color|background-image|\" +\n            \"background-position|background-repeat|background|border-bottom-color|\" +\n            \"border-bottom-style|border-bottom-width|border-bottom|border-collapse|\" +\n            \"border-color|border-left-color|border-left-style|border-left-width|\" +\n            \"border-left|border-right-color|border-right-style|border-right-width|\" +\n            \"border-right|border-spacing|border-style|border-top-color|\" +\n            \"border-top-style|border-top-width|border-top|border-width|border|bottom|\" +\n            \"box-shadow|box-sizing|caption-side|clear|clip|color|content|counter-increment|\" +\n            \"counter-reset|cue-after|cue-before|cue|cursor|direction|display|\" +\n            \"elevation|empty-cells|float|font-family|font-size-adjust|font-size|\" +\n            \"font-stretch|font-style|font-variant|font-weight|font|height|left|\" +\n            \"letter-spacing|line-height|list-style-image|list-style-position|\" +\n            \"list-style-type|list-style|margin-bottom|margin-left|margin-right|\" +\n            \"margin-top|marker-offset|margin|marks|max-height|max-width|min-height|\" +\n            \"min-width|opacity|orphans|outline-color|\" +\n            \"outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|\" +\n            \"padding-left|padding-right|padding-top|padding|page-break-after|\" +\n            \"page-break-before|page-break-inside|page|pause-after|pause-before|\" +\n            \"pause|pitch-range|pitch|play-during|position|quotes|richness|right|\" +\n            \"size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|\" +\n            \"stress|table-layout|text-align|text-decoration|text-indent|\" +\n            \"text-shadow|text-transform|top|unicode-bidi|vertical-align|\" +\n            \"visibility|voice-family|volume|white-space|widows|width|word-spacing|\" +\n            \"z-index\").split(\"|\");\n        var ret = [];\n        for (var i=0, ln=browserPrefix.length; i<ln; i++) {\n            Array.prototype.push.apply(\n                ret,\n                (( browserPrefix[i] + prefixProperties.join(\"|\" + browserPrefix[i]) ).split(\"|\"))\n            );\n        }\n        Array.prototype.push.apply(ret, prefixProperties);\n        Array.prototype.push.apply(ret, properties);\n        \n        return ret;\n        \n    })() );\n    \n\n\n    var functions = lang.arrayToMap(\n        (\"hsl|hsla|rgb|rgba|url|attr|counter|counters|abs|adjust_color|adjust_hue|\" +\n         \"alpha|join|blue|ceil|change_color|comparable|complement|darken|desaturate|\" + \n         \"floor|grayscale|green|hue|if|invert|join|length|lighten|lightness|mix|\" + \n         \"nth|opacify|opacity|percentage|quote|red|round|saturate|saturation|\" +\n         \"scale_color|transparentize|type_of|unit|unitless|unqoute\").split(\"|\")\n    );\n\n    var constants = lang.arrayToMap(\n        (\"absolute|all-scroll|always|armenian|auto|baseline|below|bidi-override|\" +\n        \"block|bold|bolder|border-box|both|bottom|break-all|break-word|capitalize|center|\" +\n        \"char|circle|cjk-ideographic|col-resize|collapse|content-box|crosshair|dashed|\" +\n        \"decimal-leading-zero|decimal|default|disabled|disc|\" +\n        \"distribute-all-lines|distribute-letter|distribute-space|\" +\n        \"distribute|dotted|double|e-resize|ellipsis|fixed|georgian|groove|\" +\n        \"hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|\" +\n        \"ideograph-alpha|ideograph-numeric|ideograph-parenthesis|\" +\n        \"ideograph-space|inactive|inherit|inline-block|inline|inset|inside|\" +\n        \"inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|\" +\n        \"keep-all|left|lighter|line-edge|line-through|line|list-item|loose|\" +\n        \"lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|\" +\n        \"medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|\" +\n        \"nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|\" +\n        \"overline|pointer|progress|relative|repeat-x|repeat-y|repeat|right|\" +\n        \"ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|\" +\n        \"solid|square|static|strict|super|sw-resize|table-footer-group|\" +\n        \"table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|\" +\n        \"transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|\" +\n        \"vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|\" +\n        \"zero\").split(\"|\")\n    );\n\n    var colors = lang.arrayToMap(\n        (\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|\" +\n        \"purple|red|silver|teal|white|yellow\").split(\"|\")\n    );\n    \n    var keywords = lang.arrayToMap(\n        (\"@mixin|@extend|@include|@import|@media|@debug|@warn|@if|@for|@each|@while|@else|@font-face|@-webkit-keyframes|if|and|!default|module|def|end|declare\").split(\"|\")\n    )\n    \n    var tags = lang.arrayToMap(\n        (\"a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|\" + \n         \"big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|\" + \n         \"command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|\" + \n         \"figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|\" + \n         \"header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|\" + \n         \"link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|\" + \n         \"option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|\" + \n         \"small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|\" + \n         \"textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp\").split(\"|\")\n    );\n\n    var numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"\\\\/\\\\/.*$\"\n            },\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n                token : \"string\", // single line\n                regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n            }, {\n                token : \"string\", // multi line string start\n                regex : '[\"].*\\\\\\\\$',\n                next : \"qqstring\"\n            }, {\n                token : \"string\", // single line\n                regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n            }, {\n                token : \"string\", // multi line string start\n                regex : \"['].*\\\\\\\\$\",\n                next : \"qstring\"\n            }, {\n                token : \"constant.numeric\",\n                regex : numRe + \"(?:em|ex|px|cm|mm|in|pt|pc|deg|rad|grad|ms|s|hz|khz|%)\"\n            }, {\n                token : \"constant.numeric\", // hex6 color\n                regex : \"#[a-f0-9]{6}\"\n            }, {\n                token : \"constant.numeric\", // hex3 color\n                regex : \"#[a-f0-9]{3}\"\n            }, {\n                token : \"constant.numeric\",\n                regex : numRe\n            }, {\n                token : [\"support.function\", \"string\", \"support.function\"],\n                regex : \"(url\\\\()(.*)(\\\\))\"\n            }, {\n                token : function(value) {\n                    if (properties.hasOwnProperty(value.toLowerCase()))\n                        return \"support.type\";\n                    if (keywords.hasOwnProperty(value))\n                        return \"keyword\";\n                    else if (constants.hasOwnProperty(value))\n                        return \"constant.language\";\n                    else if (functions.hasOwnProperty(value))\n                        return \"support.function\";\n                    else if (colors.hasOwnProperty(value.toLowerCase()))\n                        return \"support.constant.color\";\n                    else if (tags.hasOwnProperty(value.toLowerCase()))\n                        return \"variable.language\";\n                    else\n                        return \"text\";\n                },\n                regex : \"\\\\-?[@a-z_][@a-z0-9_\\\\-]*\"\n            }, {\n                token : \"variable\",\n                regex : \"[a-z_\\\\-$][a-z0-9_\\\\-$]*\\\\b\"\n            }, {\n                token: \"variable.language\",\n                regex: \"#[a-z0-9-_]+\"\n            }, {\n                token: \"variable.language\",\n                regex: \"\\\\.[a-z0-9-_]+\"\n            }, {\n                token: \"variable.language\",\n                regex: \":[a-z0-9-_]+\"\n            }, {\n                token: \"constant\",\n                regex: \"[a-z0-9-_]+\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"<|>|<=|>=|==|!=|-|%|#|\\\\+|\\\\$|\\\\+|\\\\*\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                caseInsensitive: true\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"string\",\n                regex : '(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',\n                next : \"start\"\n            }, {\n                token : \"string\",\n                regex : '.+'\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"string\",\n                regex : \"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",\n                next : \"start\"\n            }, {\n                token : \"string\",\n                regex : '.+'\n            }\n        ]\n    };\n};\n\noop.inherits(ScssHighlightRules, TextHighlightRules);\n\nexports.ScssHighlightRules = ScssHighlightRules;\n\n});\n\nace.define(\"ace/mode/sass_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/scss_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar ScssHighlightRules = require(\"./scss_highlight_rules\").ScssHighlightRules;\n\nvar SassHighlightRules = function() {\n    ScssHighlightRules.call(this);\n    var start = this.$rules.start;\n    if (start[1].token == \"comment\") {\n        start.splice(1, 1, {\n            onMatch: function(value, currentState, stack) {\n                stack.unshift(this.next, -1, value.length - 2, currentState);\n                return \"comment\";\n            },\n            regex: /^\\s*\\/\\*/,\n            next: \"comment\"\n        }, {\n            token: \"error.invalid\",\n            regex: \"/\\\\*|[{;}]\"\n        }, {\n            token: \"support.type\",\n            regex: /^\\s*:[\\w\\-]+\\s/\n        });\n        \n        this.$rules.comment = [\n            {regex: /^\\s*/, onMatch: function(value, currentState, stack) {\n                if (stack[1] === -1)\n                    stack[1] = Math.max(stack[2], value.length - 1);\n                if (value.length <= stack[1]) {stack.shift();stack.shift();stack.shift();\n                    this.next = stack.shift();\n                    return \"text\";\n                } else {\n                    this.next = \"\";\n                    return \"comment\";\n                }\n            }, next: \"start\"},\n            {defaultToken: \"comment\"}\n        ]\n    }\n};\n\noop.inherits(SassHighlightRules, ScssHighlightRules);\n\nexports.SassHighlightRules = SassHighlightRules;\n\n});\n\nace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var range = this.indentationBlock(session, row);\n        if (range)\n            return range;\n\n        var re = /\\S/;\n        var line = session.getLine(row);\n        var startLevel = line.search(re);\n        if (startLevel == -1 || line[startLevel] != \"#\")\n            return;\n\n        var startColumn = line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var level = line.search(re);\n\n            if (level == -1)\n                continue;\n\n            if (line[level] != \"#\")\n                break;\n\n            endRow = row;\n        }\n\n        if (endRow > startRow) {\n            var endColumn = session.getLine(endRow).length;\n            return new Range(startRow, startColumn, endRow, endColumn);\n        }\n    };\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var indent = line.search(/\\S/);\n        var next = session.getLine(row + 1);\n        var prev = session.getLine(row - 1);\n        var prevIndent = prev.search(/\\S/);\n        var nextIndent = next.search(/\\S/);\n\n        if (indent == -1) {\n            session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n            return \"\";\n        }\n        if (prevIndent == -1) {\n            if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n                session.foldWidgets[row - 1] = \"\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"start\";\n            }\n        } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n            if (session.getLine(row - 2).search(/\\S/) == -1) {\n                session.foldWidgets[row - 1] = \"start\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"\";\n            }\n        }\n\n        if (prevIndent!= -1 && prevIndent < indent)\n            session.foldWidgets[row - 1] = \"start\";\n        else\n            session.foldWidgets[row - 1] = \"\";\n\n        if (indent < nextIndent)\n            return \"start\";\n        else\n            return \"\";\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/sass\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/sass_highlight_rules\",\"ace/mode/folding/coffee\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar SassHighlightRules = require(\"./sass_highlight_rules\").SassHighlightRules;\nvar FoldMode = require(\"./folding/coffee\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = SassHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {   \n    this.lineCommentStart = \"//\";\n    this.$id = \"ace/mode/sass\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-scad.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/scad_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar scadHighlightRules = function() {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\": \"this\",\n        \"keyword\": \"module|if|else|for\",\n        \"constant.language\": \"NULL\"\n    }, \"identifier\");\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"\\\\/\\\\/.*$\"\n            },\n            DocCommentHighlightRules.getStartRule(\"start\"),\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n                token : \"string\", // single line\n                regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n            }, {\n                token : \"string\", // multi line string start\n                regex : '[\"].*\\\\\\\\$',\n                next : \"qqstring\"\n            }, {\n                token : \"string\", // single line\n                regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n            }, {\n                token : \"string\", // multi line string start\n                regex : \"['].*\\\\\\\\$\",\n                next : \"qstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n            }, {\n              token : \"constant\", // <CONSTANT>\n              regex : \"<[a-zA-Z0-9.]+>\"\n            }, {\n              token : \"keyword\", // pre-compiler directivs\n              regex : \"(?:use|include)\"\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|new|delete|typeof|void)\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"string\",\n                regex : '(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',\n                next : \"start\"\n            }, {\n                token : \"string\",\n                regex : '.+'\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"string\",\n                regex : \"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",\n                next : \"start\"\n            }, {\n                token : \"string\",\n                regex : '.+'\n            }\n        ]\n    };\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n};\n\noop.inherits(scadHighlightRules, TextHighlightRules);\n\nexports.scadHighlightRules = scadHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/scad\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/scad_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar scadHighlightRules = require(\"./scad_highlight_rules\").scadHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = scadHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.$id = \"ace/mode/scad\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-scala.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/scala_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar ScalaHighlightRules = function() {\n\n    var keywords = (\n            \"case|default|do|else|for|if|match|while|throw|return|try|trye|catch|finally|yield|\" +\n            \"abstract|class|def|extends|final|forSome|implicit|implicits|import|lazy|new|object|null|\" +\n            \"override|package|private|protected|sealed|super|this|trait|type|val|var|with|\" +\n            \"assert|assume|require|print|println|printf|readLine|readBoolean|readByte|readShort|\" + // package scala\n            \"readChar|readInt|readLong|readFloat|readDouble\" // package scala\n    );\n\n    var buildinConstants = (\"true|false\");\n\n    var langClasses = (\n        \"AbstractMethodError|AssertionError|ClassCircularityError|\"+\n        \"ClassFormatError|Deprecated|EnumConstantNotPresentException|\"+\n        \"ExceptionInInitializerError|IllegalAccessError|\"+\n        \"IllegalThreadStateException|InstantiationError|InternalError|\"+\n\n        \"NegativeArraySizeException|NoSuchFieldError|Override|Process|\"+\n        \"ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|\"+\n        \"SuppressWarnings|TypeNotPresentException|UnknownError|\"+\n        \"UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|\"+\n        \"InstantiationException|IndexOutOfBoundsException|\"+\n        \"ArrayIndexOutOfBoundsException|CloneNotSupportedException|\"+\n        \"NoSuchFieldException|IllegalArgumentException|NumberFormatException|\"+\n        \"SecurityException|Void|InheritableThreadLocal|IllegalStateException|\"+\n        \"InterruptedException|NoSuchMethodException|IllegalAccessException|\"+\n        \"UnsupportedOperationException|Enum|StrictMath|Package|Compiler|\"+\n        \"Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|\"+\n        \"NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|\"+\n        \"NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|\"+\n        \"Character|Boolean|StackTraceElement|Appendable|StringBuffer|\"+\n        \"Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|\"+\n        \"StackOverflowError|OutOfMemoryError|VirtualMachineError|\"+\n        \"ArrayStoreException|ClassCastException|LinkageError|\"+\n        \"NoClassDefFoundError|ClassNotFoundException|RuntimeException|\"+\n        \"Exception|ThreadDeath|Error|Throwable|System|ClassLoader|\"+\n        \"Cloneable|Class|CharSequence|Comparable|String|Object|\" +\n        \"Unit|Any|AnyVal|AnyRef|Null|ScalaObject|Singleton|Seq|Iterable|List|\" +\n        \"Option|Array|Char|Byte|Int|Long|Nothing|\" +\n\n        \"App|Application|BufferedIterator|BigDecimal|BigInt|Console|Either|\" +\n        \"Enumeration|Equiv|Fractional|Function|IndexedSeq|Integral|Iterator|\" +\n        \"Map|Numeric|Nil|NotNull|Ordered|Ordering|PartialFunction|PartialOrdering|\" +\n        \"Product|Proxy|Range|Responder|Seq|Serializable|Set|Specializable|Stream|\" +\n        \"StringContext|Symbol|Traversable|TraversableOnce|Tuple|Vector|Pair|Triple\"\n\n\n    );\n\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\": \"this\",\n        \"keyword\": keywords,\n        \"support.function\": langClasses,\n        \"constant.language\": buildinConstants\n    }, \"identifier\");\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"\\\\/\\\\/.*$\"\n            },\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n                token : \"string.regexp\",\n                regex : \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"\n            }, {\n                token : \"string\",\n                regex : '\"\"\"',\n                next : \"tstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)', // \" strings can't span multiple lines\n                next : \"string\"\n            }, {\n                token : \"symbol.constant\", // single line\n                regex : \"'[\\\\w\\\\d_]+\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n            }, {\n                token : \"constant.language.boolean\",\n                regex : \"(?:true|false)\\\\b\"\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|\\\\b(?:in|instanceof|new|delete|typeof|void)\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ],\n        \"string\" : [\n            {\n                token : \"escape\",\n                regex : '\\\\\\\\\"'\n            }, {\n                token : \"string\",\n                regex : '\"',\n                next : \"start\"\n            }, {\n                token : \"string.invalid\",\n                regex : '[^\"\\\\\\\\]*$',\n                next : \"start\"\n            }, {\n                token : \"string\",\n                regex : '[^\"\\\\\\\\]+'\n            }\n        ],\n        \"tstring\" : [\n            {\n                token : \"string\",\n                regex : '\"{3,5}',\n                next : \"start\"\n            }, {\n                defaultToken : \"string\"\n            }\n        ]\n    };\n\n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n};\n\noop.inherits(ScalaHighlightRules, TextHighlightRules);\n\nexports.ScalaHighlightRules = ScalaHighlightRules;\n});\n\nace.define(\"ace/mode/scala\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/scala_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar ScalaHighlightRules = require(\"./scala_highlight_rules\").ScalaHighlightRules;\n\nvar Mode = function() {\n    JavaScriptMode.call(this);\n    this.HighlightRules = ScalaHighlightRules;\n};\noop.inherits(Mode, JavaScriptMode);\n\n(function() {\n\n    this.createWorker = function(session) {\n        return null;\n    };\n\n    this.$id = \"ace/mode/scala\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-scheme.js",
    "content": "ace.define(\"ace/mode/scheme_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar SchemeHighlightRules = function() {\n    var keywordControl = \"case|do|let|loop|if|else|when\";\n    var keywordOperator = \"eq?|eqv?|equal?|and|or|not|null?\";\n    var constantLanguage = \"#t|#f\";\n    var supportFunctions = \"cons|car|cdr|cond|lambda|lambda*|syntax-rules|format|set!|quote|eval|append|list|list?|member?|load\";\n\n    var keywordMapper = this.createKeywordMapper({\n        \"keyword.control\": keywordControl,\n        \"keyword.operator\": keywordOperator,\n        \"constant.language\": constantLanguage,\n        \"support.function\": supportFunctions\n    }, \"identifier\", true);\n\n    this.$rules = \n        {\n    \"start\": [\n        {\n            token : \"comment\",\n            regex : \";.*$\"\n        },\n        {\n            \"token\": [\"storage.type.function-type.scheme\", \"text\", \"entity.name.function.scheme\"],\n            \"regex\": \"(?:\\\\b(?:(define|define-syntax|define-macro))\\\\b)(\\\\s+)((?:\\\\w|\\\\-|\\\\!|\\\\?)*)\"\n        },\n        {\n            \"token\": \"punctuation.definition.constant.character.scheme\",\n            \"regex\": \"#:\\\\S+\"\n        },\n        {\n            \"token\": [\"punctuation.definition.variable.scheme\", \"variable.other.global.scheme\", \"punctuation.definition.variable.scheme\"],\n            \"regex\": \"(\\\\*)(\\\\S*)(\\\\*)\"\n        },\n        {\n            \"token\" : \"constant.numeric\", // hex\n            \"regex\" : \"#[xXoObB][0-9a-fA-F]+\"\n        }, \n        {\n            \"token\" : \"constant.numeric\", // float\n            \"regex\" : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\"\n        },\n        {\n                \"token\" : keywordMapper,\n                \"regex\" : \"[a-zA-Z_#][a-zA-Z0-9_\\\\-\\\\?\\\\!\\\\*]*\"\n        },\n        {\n            \"token\" : \"string\",\n            \"regex\" : '\"(?=.)',\n            \"next\"  : \"qqstring\"\n        }\n    ],\n    \"qqstring\": [\n        {\n            \"token\": \"constant.character.escape.scheme\",\n            \"regex\": \"\\\\\\\\.\"\n        },\n        {\n            \"token\" : \"string\",\n            \"regex\" : '[^\"\\\\\\\\]+',\n            \"merge\" : true\n        }, {\n            \"token\" : \"string\",\n            \"regex\" : \"\\\\\\\\$\",\n            \"next\"  : \"qqstring\",\n            \"merge\" : true\n        }, {\n            \"token\" : \"string\",\n            \"regex\" : '\"|$',\n            \"next\"  : \"start\",\n            \"merge\" : true\n        }\n    ]\n}\n\n};\n\noop.inherits(SchemeHighlightRules, TextHighlightRules);\n\nexports.SchemeHighlightRules = SchemeHighlightRules;\n});\n\nace.define(\"ace/mode/matching_parens_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingParensOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\)/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\))/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        var match = line.match(/^(\\s+)/);\n        if (match) {\n            return match[1];\n        }\n\n        return \"\";\n    };\n\n}).call(MatchingParensOutdent.prototype);\n\nexports.MatchingParensOutdent = MatchingParensOutdent;\n});\n\nace.define(\"ace/mode/scheme\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/scheme_highlight_rules\",\"ace/mode/matching_parens_outdent\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar SchemeHighlightRules = require(\"./scheme_highlight_rules\").SchemeHighlightRules;\nvar MatchingParensOutdent = require(\"./matching_parens_outdent\").MatchingParensOutdent;\n\nvar Mode = function() {\n    this.HighlightRules = SchemeHighlightRules;\n\tthis.$outdent = new MatchingParensOutdent();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n       \n    this.lineCommentStart = \";\";\n    this.minorIndentFunctions = [\"define\", \"lambda\", \"define-macro\", \"define-syntax\", \"syntax-rules\", \"define-record-type\", \"define-structure\"];\n\n    this.$toIndent = function(str) {\n        return str.split('').map(function(ch) {\n            if (/\\s/.exec(ch)) {\n                return ch;\n            } else {\n                return ' ';\n            }\n        }).join('');\n    };\n\n    this.$calculateIndent = function(line, tab) {\n        var baseIndent = this.$getIndent(line);\n        var delta = 0;\n        var isParen, ch;\n        for (var i = line.length - 1; i >= 0; i--) {\n            ch = line[i];\n            if (ch === '(') {\n                delta--;\n                isParen = true;\n            } else if (ch === '(' || ch === '[' || ch === '{') {\n                delta--;\n                isParen = false;\n            } else if (ch === ')' || ch === ']' || ch === '}') {\n                delta++;\n            }\n            if (delta < 0) {\n                break;\n            }\n        }\n        if (delta < 0 && isParen) {\n            i += 1;\n            var iBefore = i;\n            var fn = '';\n            while (true) {\n                ch = line[i];\n                if (ch === ' ' || ch === '\\t') {\n                    if(this.minorIndentFunctions.indexOf(fn) !== -1) {\n                        return this.$toIndent(line.substring(0, iBefore - 1) + tab);\n                    } else {\n                        return this.$toIndent(line.substring(0, i + 1));\n                    }\n                } else if (ch === undefined) {\n                    return this.$toIndent(line.substring(0, iBefore - 1) + tab);\n                }\n                fn += line[i];\n                i++;\n            }\n        } else if(delta < 0 && !isParen) {\n            return this.$toIndent(line.substring(0, i+1));\n        } else if(delta > 0) {\n            baseIndent = baseIndent.substring(0, baseIndent.length - tab.length);\n            return baseIndent;\n        } else {\n            return baseIndent;\n        }\n    };\n\n    this.getNextLineIndent = function(state, line, tab) {\n        return this.$calculateIndent(line, tab);\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n    \n    this.$id = \"ace/mode/scheme\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-scss.js",
    "content": "ace.define(\"ace/mode/scss_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar ScssHighlightRules = function() {\n    \n    var properties = lang.arrayToMap( (function () {\n\n        var browserPrefix = (\"-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-\").split(\"|\");\n        \n        var prefixProperties = (\"appearance|background-clip|background-inline-policy|background-origin|\" + \n             \"background-size|binding|border-bottom-colors|border-left-colors|\" + \n             \"border-right-colors|border-top-colors|border-end|border-end-color|\" + \n             \"border-end-style|border-end-width|border-image|border-start|\" + \n             \"border-start-color|border-start-style|border-start-width|box-align|\" + \n             \"box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|\" + \n             \"box-pack|box-sizing|column-count|column-gap|column-width|column-rule|\" + \n             \"column-rule-width|column-rule-style|column-rule-color|float-edge|\" + \n             \"font-feature-settings|font-language-override|force-broken-image-icon|\" + \n             \"image-region|margin-end|margin-start|opacity|outline|outline-color|\" + \n             \"outline-offset|outline-radius|outline-radius-bottomleft|\" + \n             \"outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|\" + \n             \"outline-style|outline-width|padding-end|padding-start|stack-sizing|\" + \n             \"tab-size|text-blink|text-decoration-color|text-decoration-line|\" + \n             \"text-decoration-style|transform|transform-origin|transition|\" + \n             \"transition-delay|transition-duration|transition-property|\" + \n             \"transition-timing-function|user-focus|user-input|user-modify|user-select|\" +\n             \"window-shadow|border-radius\").split(\"|\");\n        \n        var properties = (\"azimuth|background-attachment|background-color|background-image|\" +\n            \"background-position|background-repeat|background|border-bottom-color|\" +\n            \"border-bottom-style|border-bottom-width|border-bottom|border-collapse|\" +\n            \"border-color|border-left-color|border-left-style|border-left-width|\" +\n            \"border-left|border-right-color|border-right-style|border-right-width|\" +\n            \"border-right|border-spacing|border-style|border-top-color|\" +\n            \"border-top-style|border-top-width|border-top|border-width|border|bottom|\" +\n            \"box-shadow|box-sizing|caption-side|clear|clip|color|content|counter-increment|\" +\n            \"counter-reset|cue-after|cue-before|cue|cursor|direction|display|\" +\n            \"elevation|empty-cells|float|font-family|font-size-adjust|font-size|\" +\n            \"font-stretch|font-style|font-variant|font-weight|font|height|left|\" +\n            \"letter-spacing|line-height|list-style-image|list-style-position|\" +\n            \"list-style-type|list-style|margin-bottom|margin-left|margin-right|\" +\n            \"margin-top|marker-offset|margin|marks|max-height|max-width|min-height|\" +\n            \"min-width|opacity|orphans|outline-color|\" +\n            \"outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|\" +\n            \"padding-left|padding-right|padding-top|padding|page-break-after|\" +\n            \"page-break-before|page-break-inside|page|pause-after|pause-before|\" +\n            \"pause|pitch-range|pitch|play-during|position|quotes|richness|right|\" +\n            \"size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|\" +\n            \"stress|table-layout|text-align|text-decoration|text-indent|\" +\n            \"text-shadow|text-transform|top|unicode-bidi|vertical-align|\" +\n            \"visibility|voice-family|volume|white-space|widows|width|word-spacing|\" +\n            \"z-index\").split(\"|\");\n        var ret = [];\n        for (var i=0, ln=browserPrefix.length; i<ln; i++) {\n            Array.prototype.push.apply(\n                ret,\n                (( browserPrefix[i] + prefixProperties.join(\"|\" + browserPrefix[i]) ).split(\"|\"))\n            );\n        }\n        Array.prototype.push.apply(ret, prefixProperties);\n        Array.prototype.push.apply(ret, properties);\n        \n        return ret;\n        \n    })() );\n    \n\n\n    var functions = lang.arrayToMap(\n        (\"hsl|hsla|rgb|rgba|url|attr|counter|counters|abs|adjust_color|adjust_hue|\" +\n         \"alpha|join|blue|ceil|change_color|comparable|complement|darken|desaturate|\" + \n         \"floor|grayscale|green|hue|if|invert|join|length|lighten|lightness|mix|\" + \n         \"nth|opacify|opacity|percentage|quote|red|round|saturate|saturation|\" +\n         \"scale_color|transparentize|type_of|unit|unitless|unqoute\").split(\"|\")\n    );\n\n    var constants = lang.arrayToMap(\n        (\"absolute|all-scroll|always|armenian|auto|baseline|below|bidi-override|\" +\n        \"block|bold|bolder|border-box|both|bottom|break-all|break-word|capitalize|center|\" +\n        \"char|circle|cjk-ideographic|col-resize|collapse|content-box|crosshair|dashed|\" +\n        \"decimal-leading-zero|decimal|default|disabled|disc|\" +\n        \"distribute-all-lines|distribute-letter|distribute-space|\" +\n        \"distribute|dotted|double|e-resize|ellipsis|fixed|georgian|groove|\" +\n        \"hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|\" +\n        \"ideograph-alpha|ideograph-numeric|ideograph-parenthesis|\" +\n        \"ideograph-space|inactive|inherit|inline-block|inline|inset|inside|\" +\n        \"inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|\" +\n        \"keep-all|left|lighter|line-edge|line-through|line|list-item|loose|\" +\n        \"lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|\" +\n        \"medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|\" +\n        \"nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|\" +\n        \"overline|pointer|progress|relative|repeat-x|repeat-y|repeat|right|\" +\n        \"ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|\" +\n        \"solid|square|static|strict|super|sw-resize|table-footer-group|\" +\n        \"table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|\" +\n        \"transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|\" +\n        \"vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|\" +\n        \"zero\").split(\"|\")\n    );\n\n    var colors = lang.arrayToMap(\n        (\"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|\" +\n        \"purple|red|silver|teal|white|yellow\").split(\"|\")\n    );\n    \n    var keywords = lang.arrayToMap(\n        (\"@mixin|@extend|@include|@import|@media|@debug|@warn|@if|@for|@each|@while|@else|@font-face|@-webkit-keyframes|if|and|!default|module|def|end|declare\").split(\"|\")\n    )\n    \n    var tags = lang.arrayToMap(\n        (\"a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|\" + \n         \"big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|\" + \n         \"command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|\" + \n         \"figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|\" + \n         \"header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|\" + \n         \"link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|\" + \n         \"option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|\" + \n         \"small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|\" + \n         \"textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp\").split(\"|\")\n    );\n\n    var numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"\\\\/\\\\/.*$\"\n            },\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n                token : \"string\", // single line\n                regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n            }, {\n                token : \"string\", // multi line string start\n                regex : '[\"].*\\\\\\\\$',\n                next : \"qqstring\"\n            }, {\n                token : \"string\", // single line\n                regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n            }, {\n                token : \"string\", // multi line string start\n                regex : \"['].*\\\\\\\\$\",\n                next : \"qstring\"\n            }, {\n                token : \"constant.numeric\",\n                regex : numRe + \"(?:em|ex|px|cm|mm|in|pt|pc|deg|rad|grad|ms|s|hz|khz|%)\"\n            }, {\n                token : \"constant.numeric\", // hex6 color\n                regex : \"#[a-f0-9]{6}\"\n            }, {\n                token : \"constant.numeric\", // hex3 color\n                regex : \"#[a-f0-9]{3}\"\n            }, {\n                token : \"constant.numeric\",\n                regex : numRe\n            }, {\n                token : [\"support.function\", \"string\", \"support.function\"],\n                regex : \"(url\\\\()(.*)(\\\\))\"\n            }, {\n                token : function(value) {\n                    if (properties.hasOwnProperty(value.toLowerCase()))\n                        return \"support.type\";\n                    if (keywords.hasOwnProperty(value))\n                        return \"keyword\";\n                    else if (constants.hasOwnProperty(value))\n                        return \"constant.language\";\n                    else if (functions.hasOwnProperty(value))\n                        return \"support.function\";\n                    else if (colors.hasOwnProperty(value.toLowerCase()))\n                        return \"support.constant.color\";\n                    else if (tags.hasOwnProperty(value.toLowerCase()))\n                        return \"variable.language\";\n                    else\n                        return \"text\";\n                },\n                regex : \"\\\\-?[@a-z_][@a-z0-9_\\\\-]*\"\n            }, {\n                token : \"variable\",\n                regex : \"[a-z_\\\\-$][a-z0-9_\\\\-$]*\\\\b\"\n            }, {\n                token: \"variable.language\",\n                regex: \"#[a-z0-9-_]+\"\n            }, {\n                token: \"variable.language\",\n                regex: \"\\\\.[a-z0-9-_]+\"\n            }, {\n                token: \"variable.language\",\n                regex: \":[a-z0-9-_]+\"\n            }, {\n                token: \"constant\",\n                regex: \"[a-z0-9-_]+\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"<|>|<=|>=|==|!=|-|%|#|\\\\+|\\\\$|\\\\+|\\\\*\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                caseInsensitive: true\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"string\",\n                regex : '(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',\n                next : \"start\"\n            }, {\n                token : \"string\",\n                regex : '.+'\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"string\",\n                regex : \"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",\n                next : \"start\"\n            }, {\n                token : \"string\",\n                regex : '.+'\n            }\n        ]\n    };\n};\n\noop.inherits(ScssHighlightRules, TextHighlightRules);\n\nexports.ScssHighlightRules = ScssHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar CssBehaviour = function () {\n\n    this.inherit(CstyleBehaviour);\n\n    this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(cursor.row);\n                var rightChar = line.substring(cursor.column, cursor.column + 1);\n                if (rightChar === ':') {\n                    return {\n                       text: '',\n                       selection: [1, 1]\n                    }\n                }\n                if (!line.substring(cursor.column).match(/^\\s*;/)) {\n                    return {\n                       text: ':;',\n                       selection: [1, 1]\n                    }\n                }\n            }\n        }\n    });\n\n    this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && selected === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(range.start.row);\n                var rightChar = line.substring(range.end.column, range.end.column + 1);\n                if (rightChar === ';') {\n                    range.end.column ++;\n                    return range;\n                }\n            }\n        }\n    });\n\n    this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ';') {\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar === ';') {\n                return {\n                   text: '',\n                   selection: [1, 1]\n                }\n            }\n        }\n    });\n\n}\noop.inherits(CssBehaviour, CstyleBehaviour);\n\nexports.CssBehaviour = CssBehaviour;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/scss\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/scss_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar ScssHighlightRules = require(\"./scss_highlight_rules\").ScssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = ScssHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CssBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n   \n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        var match = line.match(/^.*\\{\\s*$/);\n        if (match) {\n            indent += tab;\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.$id = \"ace/mode/scss\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-sh.js",
    "content": "ace.define(\"ace/mode/sh_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar reservedKeywords = exports.reservedKeywords = (\n        '!|{|}|case|do|done|elif|else|'+\n        'esac|fi|for|if|in|then|until|while|'+\n        '&|;|export|local|read|typeset|unset|'+\n        'elif|select|set|function|declare|readonly'\n    );\n\nvar languageConstructs = exports.languageConstructs = (\n    '[|]|alias|bg|bind|break|builtin|'+\n     'cd|command|compgen|complete|continue|'+\n     'dirs|disown|echo|enable|eval|exec|'+\n     'exit|fc|fg|getopts|hash|help|history|'+\n     'jobs|kill|let|logout|popd|printf|pushd|'+\n     'pwd|return|set|shift|shopt|source|'+\n     'suspend|test|times|trap|type|ulimit|'+\n     'umask|unalias|wait'\n);\n\nvar ShHighlightRules = function() {\n    var keywordMapper = this.createKeywordMapper({\n        \"keyword\": reservedKeywords,\n        \"support.function.builtin\": languageConstructs,\n        \"invalid.deprecated\": \"debugger\"\n    }, \"identifier\");\n\n    var integer = \"(?:(?:[1-9]\\\\d*)|(?:0))\";\n\n    var fraction = \"(?:\\\\.\\\\d+)\";\n    var intPart = \"(?:\\\\d+)\";\n    var pointFloat = \"(?:(?:\" + intPart + \"?\" + fraction + \")|(?:\" + intPart + \"\\\\.))\";\n    var exponentFloat = \"(?:(?:\" + pointFloat + \"|\" +  intPart + \")\" + \")\";\n    var floatNumber = \"(?:\" + exponentFloat + \"|\" + pointFloat + \")\";\n    var fileDescriptor = \"(?:&\" + intPart + \")\";\n\n    var variableName = \"[a-zA-Z_][a-zA-Z0-9_]*\";\n    var variable = \"(?:\" + variableName + \"=)\";\n\n    var builtinVariable = \"(?:\\\\$(?:SHLVL|\\\\$|\\\\!|\\\\?))\";\n\n    var func = \"(?:\" + variableName + \"\\\\s*\\\\(\\\\))\";\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"constant\",\n            regex : /\\\\./\n        }, {\n            token : [\"text\", \"comment\"],\n            regex : /(^|\\s)(#.*)$/\n        }, {\n            token : \"string.start\",\n            regex : '\"',\n            push : [{\n                token : \"constant.language.escape\",\n                regex : /\\\\(?:[$`\"\\\\]|$)/\n            }, {\n                include : \"variables\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /`/ // TODO highlight `\n            }, {\n                token : \"string.end\",\n                regex : '\"',\n                next: \"pop\"\n            }, {\n                defaultToken: \"string\"\n            }]\n        }, {\n            token : \"string\",\n            regex : \"\\\\$'\",\n            push : [{\n                token : \"constant.language.escape\",\n                regex : /\\\\(?:[abeEfnrtv\\\\'\"]|x[a-fA-F\\d]{1,2}|u[a-fA-F\\d]{4}([a-fA-F\\d]{4})?|c.|\\d{1,3})/\n            }, {\n                token : \"string\",\n                regex : \"'\",\n                next: \"pop\"\n            }, {\n                defaultToken: \"string\"\n            }]\n        }, {\n            regex : \"<<<\",\n            token : \"keyword.operator\"\n        }, {\n            stateName: \"heredoc\",\n            regex : \"(<<-?)(\\\\s*)(['\\\"`]?)([\\\\w\\\\-]+)(['\\\"`]?)\",\n            onMatch : function(value, currentState, stack) {\n                var next = value[2] == '-' ? \"indentedHeredoc\" : \"heredoc\";\n                var tokens = value.split(this.splitRegex);\n                stack.push(next, tokens[4]);\n                return [\n                    {type:\"constant\", value: tokens[1]},\n                    {type:\"text\", value: tokens[2]},\n                    {type:\"string\", value: tokens[3]},\n                    {type:\"support.class\", value: tokens[4]},\n                    {type:\"string\", value: tokens[5]}\n                ];\n            },\n            rules: {\n                heredoc: [{\n                    onMatch:  function(value, currentState, stack) {\n                        if (value === stack[1]) {\n                            stack.shift();\n                            stack.shift();\n                            this.next = stack[0] || \"start\";\n                            return \"support.class\";\n                        }\n                        this.next = \"\";\n                        return \"string\";\n                    },\n                    regex: \".*$\",\n                    next: \"start\"\n                }],\n                indentedHeredoc: [{\n                    token: \"string\",\n                    regex: \"^\\t+\"\n                }, {\n                    onMatch:  function(value, currentState, stack) {\n                        if (value === stack[1]) {\n                            stack.shift();\n                            stack.shift();\n                            this.next = stack[0] || \"start\";\n                            return \"support.class\";\n                        }\n                        this.next = \"\";\n                        return \"string\";\n                    },\n                    regex: \".*$\",\n                    next: \"start\"\n                }]\n            }\n        }, {\n            regex : \"$\",\n            token : \"empty\",\n            next : function(currentState, stack) {\n                if (stack[0] === \"heredoc\" || stack[0] === \"indentedHeredoc\")\n                    return stack[0];\n                return currentState;\n            }\n        }, {\n            token : [\"keyword\", \"text\", \"text\", \"text\", \"variable\"],\n            regex : /(declare|local|readonly)(\\s+)(?:(-[fixar]+)(\\s+))?([a-zA-Z_][a-zA-Z0-9_]*\\b)/\n        }, {\n            token : \"variable.language\",\n            regex : builtinVariable\n        }, {\n            token : \"variable\",\n            regex : variable\n        }, {\n            include : \"variables\"\n        }, {\n            token : \"support.function\",\n            regex : func\n        }, {\n            token : \"support.function\",\n            regex : fileDescriptor\n        }, {\n            token : \"string\",           // ' string\n            start : \"'\", end : \"'\"\n        }, {\n            token : \"constant.numeric\", // float\n            regex : floatNumber\n        }, {\n            token : \"constant.numeric\", // integer\n            regex : integer + \"\\\\b\"\n        }, {\n            token : keywordMapper,\n            regex : \"[a-zA-Z_][a-zA-Z0-9_]*\\\\b\"\n        }, {\n            token : \"keyword.operator\",\n            regex : \"\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|\\\\/\\\\/|~|<|>|<=|=>|=|!=|[%&|`]\"\n        }, {\n            token : \"punctuation.operator\",\n            regex : \";\"\n        }, {\n            token : \"paren.lparen\",\n            regex : \"[\\\\[\\\\(\\\\{]\"\n        }, {\n            token : \"paren.rparen\",\n            regex : \"[\\\\]]\"\n        }, {\n            token : \"paren.rparen\",\n            regex : \"[\\\\)\\\\}]\",\n            next : \"pop\"\n        }],\n        variables: [{\n            token : \"variable\",\n            regex : /(\\$)(\\w+)/\n        }, {\n            token : [\"variable\", \"paren.lparen\"],\n            regex : /(\\$)(\\()/,\n            push : \"start\"\n        }, {\n            token : [\"variable\", \"paren.lparen\", \"keyword.operator\", \"variable\", \"keyword.operator\"],\n            regex : /(\\$)(\\{)([#!]?)(\\w+|[*@#?\\-$!0_])(:[?+\\-=]?|##?|%%?|,,?\\/|\\^\\^?)?/,\n            push : \"start\"\n        }, {\n            token : \"variable\",\n            regex : /\\$[*@#?\\-$!0_]/\n        }, {\n            token : [\"variable\", \"paren.lparen\"],\n            regex : /(\\$)(\\{)/,\n            push : \"start\"\n        }]\n    };\n    \n    this.normalizeRules();\n};\n\noop.inherits(ShHighlightRules, TextHighlightRules);\n\nexports.ShHighlightRules = ShHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/sh\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/sh_highlight_rules\",\"ace/range\",\"ace/mode/folding/cstyle\",\"ace/mode/behaviour/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar ShHighlightRules = require(\"./sh_highlight_rules\").ShHighlightRules;\nvar Range = require(\"../range\").Range;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\n\nvar Mode = function() {\n    this.HighlightRules = ShHighlightRules;\n    this.foldingRules = new CStyleFoldMode();\n    this.$behaviour = new CstyleBehaviour();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n   \n    this.lineCommentStart = \"#\";\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[:]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        }\n\n        return indent;\n    };\n\n    var outdents = {\n        \"pass\": 1,\n        \"return\": 1,\n        \"raise\": 1,\n        \"break\": 1,\n        \"continue\": 1\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        if (input !== \"\\r\\n\" && input !== \"\\r\" && input !== \"\\n\")\n            return false;\n\n        var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens;\n\n        if (!tokens)\n            return false;\n        do {\n            var last = tokens.pop();\n        } while (last && (last.type == \"comment\" || (last.type == \"text\" && last.value.match(/^\\s+$/))));\n\n        if (!last)\n            return false;\n\n        return (last.type == \"keyword\" && outdents[last.value]);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n\n        row += 1;\n        var indent = this.$getIndent(doc.getLine(row));\n        var tab = doc.getTabString();\n        if (indent.slice(-tab.length) == tab)\n            doc.remove(new Range(row, indent.length-tab.length, row, indent.length));\n    };\n\n    this.$id = \"ace/mode/sh\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-sjs.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/sjs_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar SJSHighlightRules = function() {\n    var parent = new JavaScriptHighlightRules({noES6: true});\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-6][0-7]?|\" + // oct\n        \"37[0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    var contextAware = function(f) {\n        f.isContextAware = true;\n        return f;\n    };\n\n    var ctxBegin = function(opts) {\n        return {\n            token: opts.token,\n            regex: opts.regex,\n            next: contextAware(function(currentState, stack) {\n                if (stack.length === 0)\n                    stack.unshift(currentState);\n                stack.unshift(opts.next);\n                return opts.next;\n            })\n        };\n    };\n\n    var ctxEnd = function(opts) {\n        return {\n            token: opts.token,\n            regex: opts.regex,\n            next: contextAware(function(currentState, stack) {\n                stack.shift();\n                return stack[0] || \"start\";\n            })\n        };\n    };\n\n    this.$rules = parent.$rules;\n    this.$rules.no_regex = [\n        {\n            token: \"keyword\",\n            regex: \"(waitfor|or|and|collapse|spawn|retract)\\\\b\"\n        },\n        {\n            token: \"keyword.operator\",\n            regex: \"(->|=>|\\\\.\\\\.)\"\n        },\n        {\n            token: \"variable.language\",\n            regex: \"(hold|default)\\\\b\"\n        },\n        ctxBegin({\n            token: \"string\",\n            regex: \"`\",\n            next: \"bstring\"\n        }),\n        ctxBegin({\n            token: \"string\",\n            regex: '\"',\n            next: \"qqstring\"\n        }),\n        ctxBegin({\n            token: \"string\",\n            regex: '\"',\n            next: \"qqstring\"\n        }),\n        {\n            token: [\"paren.lparen\", \"text\", \"paren.rparen\"],\n            regex: \"(\\\\{)(\\\\s*)(\\\\|)\",\n            next: \"block_arguments\"\n        }\n\n    ].concat(this.$rules.no_regex);\n\n    this.$rules.block_arguments = [\n        {\n            token: \"paren.rparen\",\n            regex: \"\\\\|\",\n            next: \"no_regex\"\n        }\n    ].concat(this.$rules.function_arguments);\n\n    this.$rules.bstring = [\n        {\n            token : \"constant.language.escape\",\n            regex : escapedRe\n        },\n        {\n            token : \"string\",\n            regex : \"\\\\\\\\$\",\n            next: \"bstring\"\n        },\n        ctxBegin({\n            token : \"paren.lparen\",\n            regex : \"\\\\$\\\\{\",\n            next: \"string_interp\"\n        }),\n        ctxBegin({\n            token : \"paren.lparen\",\n            regex : \"\\\\$\",\n            next: \"bstring_interp_single\"\n        }),\n        ctxEnd({\n            token : \"string\",\n            regex : \"`\"\n        }),\n        {\n            defaultToken: \"string\"\n        }\n    ];\n    \n    this.$rules.qqstring = [\n        {\n            token : \"constant.language.escape\",\n            regex : escapedRe\n        },\n        {\n            token : \"string\",\n            regex : \"\\\\\\\\$\",\n            next: \"qqstring\"\n        },\n        ctxBegin({\n            token : \"paren.lparen\",\n            regex : \"#\\\\{\",\n            next: \"string_interp\"\n        }),\n        ctxEnd({\n            token : \"string\",\n            regex : '\"'\n        }),\n        {\n            defaultToken: \"string\"\n        }\n    ];\n    var embeddableRules = [];\n    for (var i=0; i < this.$rules.no_regex.length; i++) {\n        var rule = this.$rules.no_regex[i];\n        var token = String(rule.token);\n        if (token.indexOf('paren') == -1 && (!rule.next || rule.next.isContextAware)) {\n            embeddableRules.push(rule);\n        }\n    }\n\n    this.$rules.string_interp = [\n        ctxEnd({\n            token: \"paren.rparen\",\n            regex: \"\\\\}\"\n        }),\n        ctxBegin({\n            token: \"paren.lparen\",\n            regex: '{',\n            next: \"string_interp\"\n        })\n    ].concat(embeddableRules);\n    this.$rules.bstring_interp_single = [\n        {\n            token: [\"identifier\", \"paren.lparen\"],\n            regex: '(\\\\w+)(\\\\()',\n            next: 'bstring_interp_single_call'\n        },\n        ctxEnd({\n            token : \"identifier\",\n            regex : \"\\\\w*\"\n        })\n    ];\n    this.$rules.bstring_interp_single_call = [\n        ctxBegin({\n            token: \"paren.lparen\",\n            regex: \"\\\\(\",\n            next: \"bstring_interp_single_call\"\n        }),\n        ctxEnd({\n            token: \"paren.rparen\",\n            regex: \"\\\\)\"\n        })\n    ].concat(embeddableRules);\n}\noop.inherits(SJSHighlightRules, TextHighlightRules);\n\nexports.SJSHighlightRules = SJSHighlightRules;\n});\n\nace.define(\"ace/mode/sjs\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/sjs_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar JSMode = require(\"./javascript\").Mode;\nvar SJSHighlightRules = require(\"./sjs_highlight_rules\").SJSHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = SJSHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, JSMode);\n(function() {\n    this.createWorker = function(session) {\n        return null;\n    }\n    this.$id = \"ace/mode/sjs\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-smarty.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar propertyMap = {\n    \"background\": {\"#$0\": 1},\n    \"background-color\": {\"#$0\": 1, \"transparent\": 1, \"fixed\": 1},\n    \"background-image\": {\"url('/$0')\": 1},\n    \"background-repeat\": {\"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1},\n    \"background-position\": {\"bottom\":2, \"center\":2, \"left\":2, \"right\":2, \"top\":2, \"inherit\":2},\n    \"background-attachment\": {\"scroll\": 1, \"fixed\": 1},\n    \"background-size\": {\"cover\": 1, \"contain\": 1},\n    \"background-clip\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"background-origin\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"border\": {\"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1},\n    \"border-color\": {\"#$0\": 1},\n    \"border-style\": {\"solid\":2, \"dashed\":2, \"dotted\":2, \"double\":2, \"groove\":2, \"hidden\":2, \"inherit\":2, \"inset\":2, \"none\":2, \"outset\":2, \"ridged\":2},\n    \"border-collapse\": {\"collapse\": 1, \"separate\": 1},\n    \"bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"clear\": {\"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1},\n    \"color\": {\"#$0\": 1, \"rgb(#$00,0,0)\": 1},\n    \"cursor\": {\"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1},\n    \"display\": {\"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1},\n    \"empty-cells\": {\"show\": 1, \"hide\": 1},\n    \"float\": {\"left\": 1, \"right\": 1, \"none\": 1},\n    \"font-family\": {\"Arial\":2,\"Comic Sans MS\":2,\"Consolas\":2,\"Courier New\":2,\"Courier\":2,\"Georgia\":2,\"Monospace\":2,\"Sans-Serif\":2, \"Segoe UI\":2,\"Tahoma\":2,\"Times New Roman\":2,\"Trebuchet MS\":2,\"Verdana\": 1},\n    \"font-size\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"font-weight\": {\"bold\": 1, \"normal\": 1},\n    \"font-style\": {\"italic\": 1, \"normal\": 1},\n    \"font-variant\": {\"normal\": 1, \"small-caps\": 1},\n    \"height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"letter-spacing\": {\"normal\": 1},\n    \"line-height\": {\"normal\": 1},\n    \"list-style-type\": {\"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1},\n    \"margin\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"overflow\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-x\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-y\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"padding\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"page-break-after\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"page-break-before\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"position\": {\"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1},\n    \"right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"table-layout\": {\"fixed\": 1, \"auto\": 1},\n    \"text-decoration\": {\"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1},\n    \"text-align\": {\"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1},\n    \"text-transform\": {\"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1},\n    \"top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"vertical-align\": {\"top\": 1, \"bottom\": 1},\n    \"visibility\": {\"hidden\": 1, \"visible\": 1},\n    \"white-space\": {\"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1},\n    \"width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"word-spacing\": {\"normal\": 1},\n    \"filter\": {\"alpha(opacity=$0100)\": 1},\n\n    \"text-shadow\": {\"$02px 2px 2px #777\": 1},\n    \"text-overflow\": {\"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1},\n    \"-moz-border-radius\": 1,\n    \"-moz-border-radius-topright\": 1,\n    \"-moz-border-radius-bottomright\": 1,\n    \"-moz-border-radius-topleft\": 1,\n    \"-moz-border-radius-bottomleft\": 1,\n    \"-webkit-border-radius\": 1,\n    \"-webkit-border-top-right-radius\": 1,\n    \"-webkit-border-top-left-radius\": 1,\n    \"-webkit-border-bottom-right-radius\": 1,\n    \"-webkit-border-bottom-left-radius\": 1,\n    \"-moz-box-shadow\": 1,\n    \"-webkit-box-shadow\": 1,\n    \"transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-moz-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-webkit-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\n\nvar CssCompletions = function() {\n\n};\n\n(function() {\n\n    this.completionsDefined = false;\n\n    this.defineCompletions = function() {\n        if (document) {\n            var style = document.createElement('c').style;\n\n            for (var i in style) {\n                if (typeof style[i] !== 'string')\n                    continue;\n\n                var name = i.replace(/[A-Z]/g, function(x) {\n                    return '-' + x.toLowerCase();\n                });\n\n                if (!propertyMap.hasOwnProperty(name))\n                    propertyMap[name] = 1;\n            }\n        }\n\n        this.completionsDefined = true;\n    }\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        if (!this.completionsDefined) {\n            this.defineCompletions();\n        }\n\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (state==='ruleset'){\n            var line = session.getLine(pos.row).substr(0, pos.column);\n            if (/:[^;]+$/.test(line)) {\n                /([\\w\\-]+):[^:]*$/.test(line);\n\n                return this.getPropertyValueCompletions(state, session, pos, prefix);\n            } else {\n                return this.getPropertyCompletions(state, session, pos, prefix);\n            }\n        }\n\n        return [];\n    };\n\n    this.getPropertyCompletions = function(state, session, pos, prefix) {\n        var properties = Object.keys(propertyMap);\n        return properties.map(function(property){\n            return {\n                caption: property,\n                snippet: property + ': $0',\n                meta: \"property\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getPropertyValueCompletions = function(state, session, pos, prefix) {\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n\n        if (!property)\n            return [];\n        var values = [];\n        if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n            values = Object.keys(propertyMap[property]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"property value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(CssCompletions.prototype);\n\nexports.CssCompletions = CssCompletions;\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar CssBehaviour = function () {\n\n    this.inherit(CstyleBehaviour);\n\n    this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(cursor.row);\n                var rightChar = line.substring(cursor.column, cursor.column + 1);\n                if (rightChar === ':') {\n                    return {\n                       text: '',\n                       selection: [1, 1]\n                    }\n                }\n                if (!line.substring(cursor.column).match(/^\\s*;/)) {\n                    return {\n                       text: ':;',\n                       selection: [1, 1]\n                    }\n                }\n            }\n        }\n    });\n\n    this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && selected === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(range.start.row);\n                var rightChar = line.substring(range.end.column, range.end.column + 1);\n                if (rightChar === ';') {\n                    range.end.column ++;\n                    return range;\n                }\n            }\n        }\n    });\n\n    this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ';') {\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar === ';') {\n                return {\n                   text: '',\n                   selection: [1, 1]\n                }\n            }\n        }\n    });\n\n}\noop.inherits(CssBehaviour, CstyleBehaviour);\n\nexports.CssBehaviour = CssBehaviour;\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = CssHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CssBehaviour();\n    this.$completer = new CssCompletions();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.foldingRules = \"cStyle\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        var match = line.match(/^.*\\{\\s*$/);\n        if (match) {\n            indent += tab;\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/css\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n    a           : 'anchor',\n    button \t    : 'form',\n    form        : 'form',\n    img         : 'image',\n    input       : 'form',\n    label       : 'form',\n    option      : 'form',\n    script      : 'script',\n    select      : 'form',\n    textarea    : 'form',\n    style       : 'style',\n    table       : 'table',\n    tbody       : 'table',\n    td          : 'table',\n    tfoot       : 'table',\n    th          : 'table',\n    tr          : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.addRules({\n        attributes: [{\n            include : \"tag_whitespace\"\n        }, {\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"[-_a-zA-Z0-9:.]+\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\",\n            push : [{\n                include: \"tag_whitespace\"\n            }, {\n                token : \"string.unquoted.attribute-value.html\",\n                regex : \"[^<>='\\\"`\\\\s]+\",\n                next : \"pop\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"pop\"\n            }]\n        }, {\n            include : \"attribute_value\"\n        }],\n        tag: [{\n            token : function(start, tag) {\n                var group = tagMap[tag];\n                return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                    \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n            },\n            regex : \"(</?)([-_a-zA-Z0-9:.]+)\",\n            next: \"tag_stuff\"\n        }],\n        tag_stuff: [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n        ]\n    });\n\n    this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"js-\", \"script\");\n\n    if (this.constructor === HtmlHighlightRules)\n        this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nvar XmlBehaviour = function () {\n\n    this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '\"' || text == \"'\") {\n            var quote = text;\n            var selected = session.doc.getTextRange(editor.getSelectionRange());\n            if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n                return {\n                    text: quote + selected + quote,\n                    selection: false\n                };\n            }\n\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n                return {\n                    text: \"\",\n                    selection: [1, 1]\n                };\n            }\n\n            if (!token)\n                token = iterator.stepBackward();\n\n            if (!token)\n                return;\n\n            while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n                token = iterator.stepBackward();\n            }\n            var rightSpace = !rightChar || rightChar.match(/\\s/);\n            if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n                return {\n                    text: quote + quote,\n                    selection: [1, 1]\n                };\n            }\n        }\n    });\n\n    this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == selected) {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n\n    this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '>') {\n            var position = editor.getSelectionRange().start;\n            var iterator = new TokenIterator(session, position.row, position.column);\n            var token = iterator.getCurrentToken() || iterator.stepBackward();\n            if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n                return;\n            if (is(token, \"reference.attribute-value\"))\n                return;\n            if (is(token, \"attribute-value\")) {\n                var firstChar = token.value.charAt(0);\n                if (firstChar == '\"' || firstChar == \"'\") {\n                    var lastChar = token.value.charAt(token.value.length - 1);\n                    var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;\n                    if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)\n                        return;\n                }\n            }\n            while (!is(token, \"tag-name\")) {\n                token = iterator.stepBackward();\n                if (token.value == \"<\") {\n                    token = iterator.stepForward();\n                    break;\n                }\n            }\n\n            var tokenRow = iterator.getCurrentTokenRow();\n            var tokenColumn = iterator.getCurrentTokenColumn();\n            if (is(iterator.stepBackward(), \"end-tag-open\"))\n                return;\n\n            var element = token.value;\n            if (tokenRow == position.row)\n                element = element.substring(0, position.column - tokenColumn);\n\n            if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n                 return;\n\n            return {\n               text: \">\" + \"</\" + element + \">\",\n               selection: [1, 1]\n            };\n        }\n    });\n\n    this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == \"\\n\") {\n            var cursor = editor.getCursorPosition();\n            var line = session.getLine(cursor.row);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (token && token.type.indexOf(\"tag-close\") !== -1) {\n                if (token.value == \"/>\")\n                    return;\n                while (token && token.type.indexOf(\"tag-name\") === -1) {\n                    token = iterator.stepBackward();\n                }\n\n                if (!token) {\n                    return;\n                }\n\n                var tag = token.value;\n                var row = iterator.getCurrentTokenRow();\n                token = iterator.stepBackward();\n                if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n                    return;\n                }\n\n                if (this.voidElements && !this.voidElements[tag]) {\n                    var nextToken = session.getTokenAt(cursor.row, cursor.column+1);\n                    var line = session.getLine(row);\n                    var nextIndent = this.$getIndent(line);\n                    var indent = nextIndent + session.getTabString();\n\n                    if (nextToken && nextToken.value === \"</\") {\n                        return {\n                            text: \"\\n\" + indent + \"\\n\" + nextIndent,\n                            selection: [1, indent.length, 1, indent.length]\n                        };\n                    } else {\n                        return {\n                            text: \"\\n\" + indent\n                        };\n                    }\n                }\n            }\n        }\n    });\n\n};\n\noop.inherits(XmlBehaviour, Behaviour);\n\nexports.XmlBehaviour = XmlBehaviour;\n});\n\nace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(defaultMode, subModes) {\n    this.defaultMode = defaultMode;\n    this.subModes = subModes;\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n\n    this.$getMode = function(state) {\n        if (typeof state != \"string\") \n            state = state[0];\n        for (var key in this.subModes) {\n            if (state.indexOf(key) === 0)\n                return this.subModes[key];\n        }\n        return null;\n    };\n    \n    this.$tryMode = function(state, session, foldStyle, row) {\n        var mode = this.$getMode(state);\n        return (mode ? mode.getFoldWidget(session, foldStyle, row) : \"\");\n    };\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        return (\n            this.$tryMode(session.getState(row-1), session, foldStyle, row) ||\n            this.$tryMode(session.getState(row), session, foldStyle, row) ||\n            this.defaultMode.getFoldWidget(session, foldStyle, row)\n        );\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var mode = this.$getMode(session.getState(row-1));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.$getMode(session.getState(row));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.defaultMode;\n        \n        return mode.getFoldWidgetRange(session, foldStyle, row);\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar lang = require(\"../../lib/lang\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalEndTags) {\n    BaseFoldMode.call(this);\n    this.voidElements = voidElements || {};\n    this.optionalEndTags = oop.mixin({}, this.voidElements);\n    if (optionalEndTags)\n        oop.mixin(this.optionalEndTags, optionalEndTags);\n    \n};\noop.inherits(FoldMode, BaseFoldMode);\n\nvar Tag = function() {\n    this.tagName = \"\";\n    this.closing = false;\n    this.selfClosing = false;\n    this.start = {row: 0, column: 0};\n    this.end = {row: 0, column: 0};\n};\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\n(function() {\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var tag = this._getFirstTagInLine(session, row);\n\n        if (!tag)\n            return \"\";\n\n        if (tag.closing || (!tag.tagName && tag.selfClosing))\n            return foldStyle == \"markbeginend\" ? \"end\" : \"\";\n\n        if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n            return \"\";\n\n        if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n            return \"\";\n\n        return \"start\";\n    };\n    this._getFirstTagInLine = function(session, row) {\n        var tokens = session.getTokens(row);\n        var tag = new Tag();\n\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            if (is(token, \"tag-open\")) {\n                tag.end.column = tag.start.column + token.value.length;\n                tag.closing = is(token, \"end-tag-open\");\n                token = tokens[++i];\n                if (!token)\n                    return null;\n                tag.tagName = token.value;\n                tag.end.column += token.value.length;\n                for (i++; i < tokens.length; i++) {\n                    token = tokens[i];\n                    tag.end.column += token.value.length;\n                    if (is(token, \"tag-close\")) {\n                        tag.selfClosing = token.value == '/>';\n                        break;\n                    }\n                }\n                return tag;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == '/>';\n                return tag;\n            }\n            tag.start.column += token.value.length;\n        }\n\n        return null;\n    };\n\n    this._findEndTagInLine = function(session, row, tagName, startColumn) {\n        var tokens = session.getTokens(row);\n        var column = 0;\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            column += token.value.length;\n            if (column < startColumn)\n                continue;\n            if (is(token, \"end-tag-open\")) {\n                token = tokens[i + 1];\n                if (token && token.value == tagName)\n                    return true;\n            }\n        }\n        return false;\n    };\n    this._readTagForward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n                iterator.stepForward();\n                return tag;\n            }\n        } while(token = iterator.stepForward());\n\n        return null;\n    };\n    \n    this._readTagBackward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n                iterator.stepBackward();\n                return tag;\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n            }\n        } while(token = iterator.stepBackward());\n\n        return null;\n    };\n    \n    this._pop = function(stack, tag) {\n        while (stack.length) {\n            \n            var top = stack[stack.length-1];\n            if (!tag || top.tagName == tag.tagName) {\n                return stack.pop();\n            }\n            else if (this.optionalEndTags.hasOwnProperty(top.tagName)) {\n                stack.pop();\n                continue;\n            } else {\n                return null;\n            }\n        }\n    };\n    \n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var firstTag = this._getFirstTagInLine(session, row);\n        \n        if (!firstTag)\n            return null;\n        \n        var isBackward = firstTag.closing || firstTag.selfClosing;\n        var stack = [];\n        var tag;\n        \n        if (!isBackward) {\n            var iterator = new TokenIterator(session, row, firstTag.start.column);\n            var start = {\n                row: row,\n                column: firstTag.start.column + firstTag.tagName.length + 2\n            };\n            if (firstTag.start.row == firstTag.end.row)\n                start.column = firstTag.end.column;\n            while (tag = this._readTagForward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0)\n                        return Range.fromPoints(start, tag.start);\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        else {\n            var iterator = new TokenIterator(session, row, firstTag.end.column);\n            var end = {\n                row: row,\n                column: firstTag.start.column\n            };\n            \n            while (tag = this._readTagBackward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (!tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0) {\n                        tag.start.column += tag.tagName.length + 2;\n                        if (tag.start.row == tag.end.row && tag.start.column < tag.end.column)\n                            tag.start.column = tag.end.column;\n                        return Range.fromPoints(tag.start, end);\n                    }\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        \n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar MixedFoldMode = require(\"./mixed\").FoldMode;\nvar XmlFoldMode = require(\"./xml\").FoldMode;\nvar CStyleFoldMode = require(\"./cstyle\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalTags) {\n    MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), {\n        \"js-\": new CStyleFoldMode(),\n        \"css-\": new CStyleFoldMode()\n    });\n};\n\noop.inherits(FoldMode, MixedFoldMode);\n\n});\n\nace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\n\nvar commonAttributes = [\n    \"accesskey\",\n    \"class\",\n    \"contenteditable\",\n    \"contextmenu\",\n    \"dir\",\n    \"draggable\",\n    \"dropzone\",\n    \"hidden\",\n    \"id\",\n    \"inert\",\n    \"itemid\",\n    \"itemprop\",\n    \"itemref\",\n    \"itemscope\",\n    \"itemtype\",\n    \"lang\",\n    \"spellcheck\",\n    \"style\",\n    \"tabindex\",\n    \"title\",\n    \"translate\"\n];\n\nvar eventAttributes = [\n    \"onabort\",\n    \"onblur\",\n    \"oncancel\",\n    \"oncanplay\",\n    \"oncanplaythrough\",\n    \"onchange\",\n    \"onclick\",\n    \"onclose\",\n    \"oncontextmenu\",\n    \"oncuechange\",\n    \"ondblclick\",\n    \"ondrag\",\n    \"ondragend\",\n    \"ondragenter\",\n    \"ondragleave\",\n    \"ondragover\",\n    \"ondragstart\",\n    \"ondrop\",\n    \"ondurationchange\",\n    \"onemptied\",\n    \"onended\",\n    \"onerror\",\n    \"onfocus\",\n    \"oninput\",\n    \"oninvalid\",\n    \"onkeydown\",\n    \"onkeypress\",\n    \"onkeyup\",\n    \"onload\",\n    \"onloadeddata\",\n    \"onloadedmetadata\",\n    \"onloadstart\",\n    \"onmousedown\",\n    \"onmousemove\",\n    \"onmouseout\",\n    \"onmouseover\",\n    \"onmouseup\",\n    \"onmousewheel\",\n    \"onpause\",\n    \"onplay\",\n    \"onplaying\",\n    \"onprogress\",\n    \"onratechange\",\n    \"onreset\",\n    \"onscroll\",\n    \"onseeked\",\n    \"onseeking\",\n    \"onselect\",\n    \"onshow\",\n    \"onstalled\",\n    \"onsubmit\",\n    \"onsuspend\",\n    \"ontimeupdate\",\n    \"onvolumechange\",\n    \"onwaiting\"\n];\n\nvar globalAttributes = commonAttributes.concat(eventAttributes);\n\nvar attributeMap = {\n    \"html\": {\"manifest\": 1},\n    \"head\": {},\n    \"title\": {},\n    \"base\": {\"href\": 1, \"target\": 1},\n    \"link\": {\"href\": 1, \"hreflang\": 1, \"rel\": {\"stylesheet\": 1, \"icon\": 1}, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"type\": {\"text/css\": 1, \"image/png\": 1, \"image/jpeg\": 1, \"image/gif\": 1}, \"sizes\": 1},\n    \"meta\": {\"http-equiv\": {\"content-type\": 1}, \"name\": {\"description\": 1, \"keywords\": 1}, \"content\": {\"text/html; charset=UTF-8\": 1}, \"charset\": 1},\n    \"style\": {\"type\": 1, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"scoped\": 1},\n    \"script\": {\"charset\": 1, \"type\": {\"text/javascript\": 1}, \"src\": 1, \"defer\": 1, \"async\": 1},\n    \"noscript\": {\"href\": 1},\n    \"body\": {\"onafterprint\": 1, \"onbeforeprint\": 1, \"onbeforeunload\": 1, \"onhashchange\": 1, \"onmessage\": 1, \"onoffline\": 1, \"onpopstate\": 1, \"onredo\": 1, \"onresize\": 1, \"onstorage\": 1, \"onundo\": 1, \"onunload\": 1},\n    \"section\": {},\n    \"nav\": {},\n    \"article\": {\"pubdate\": 1},\n    \"aside\": {},\n    \"h1\": {},\n    \"h2\": {},\n    \"h3\": {},\n    \"h4\": {},\n    \"h5\": {},\n    \"h6\": {},\n    \"header\": {},\n    \"footer\": {},\n    \"address\": {},\n    \"main\": {},\n    \"p\": {},\n    \"hr\": {},\n    \"pre\": {},\n    \"blockquote\": {\"cite\": 1},\n    \"ol\": {\"start\": 1, \"reversed\": 1},\n    \"ul\": {},\n    \"li\": {\"value\": 1},\n    \"dl\": {},\n    \"dt\": {},\n    \"dd\": {},\n    \"figure\": {},\n    \"figcaption\": {},\n    \"div\": {},\n    \"a\": {\"href\": 1, \"target\": {\"_blank\": 1, \"top\": 1}, \"ping\": 1, \"rel\": {\"nofollow\": 1, \"alternate\": 1, \"author\": 1, \"bookmark\": 1, \"help\": 1, \"license\": 1, \"next\": 1, \"noreferrer\": 1, \"prefetch\": 1, \"prev\": 1, \"search\": 1, \"tag\": 1}, \"media\": 1, \"hreflang\": 1, \"type\": 1},\n    \"em\": {},\n    \"strong\": {},\n    \"small\": {},\n    \"s\": {},\n    \"cite\": {},\n    \"q\": {\"cite\": 1},\n    \"dfn\": {},\n    \"abbr\": {},\n    \"data\": {},\n    \"time\": {\"datetime\": 1},\n    \"code\": {},\n    \"var\": {},\n    \"samp\": {},\n    \"kbd\": {},\n    \"sub\": {},\n    \"sup\": {},\n    \"i\": {},\n    \"b\": {},\n    \"u\": {},\n    \"mark\": {},\n    \"ruby\": {},\n    \"rt\": {},\n    \"rp\": {},\n    \"bdi\": {},\n    \"bdo\": {},\n    \"span\": {},\n    \"br\": {},\n    \"wbr\": {},\n    \"ins\": {\"cite\": 1, \"datetime\": 1},\n    \"del\": {\"cite\": 1, \"datetime\": 1},\n    \"img\": {\"alt\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"usemap\": 1, \"ismap\": 1},\n    \"iframe\": {\"name\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"sandbox\": {\"allow-same-origin\": 1, \"allow-top-navigation\": 1, \"allow-forms\": 1, \"allow-scripts\": 1}, \"seamless\": {\"seamless\": 1}},\n    \"embed\": {\"src\": 1, \"height\": 1, \"width\": 1, \"type\": 1},\n    \"object\": {\"param\": 1, \"data\": 1, \"type\": 1, \"height\" : 1, \"width\": 1, \"usemap\": 1, \"name\": 1, \"form\": 1, \"classid\": 1},\n    \"param\": {\"name\": 1, \"value\": 1},\n    \"video\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"width\": 1, \"height\": 1, \"poster\": 1, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1}},\n    \"audio\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1 }},\n    \"source\": {\"src\": 1, \"type\": 1, \"media\": 1},\n    \"track\": {\"kind\": 1, \"src\": 1, \"srclang\": 1, \"label\": 1, \"default\": 1},\n    \"canvas\": {\"width\": 1, \"height\": 1},\n    \"map\": {\"name\": 1},\n    \"area\": {\"shape\": 1, \"coords\": 1, \"href\": 1, \"hreflang\": 1, \"alt\": 1, \"target\": 1, \"media\": 1, \"rel\": 1, \"ping\": 1, \"type\": 1},\n    \"svg\": {},\n    \"math\": {},\n    \"table\": {\"summary\": 1},\n    \"caption\": {},\n    \"colgroup\": {\"span\": 1},\n    \"col\": {\"span\": 1},\n    \"tbody\": {},\n    \"thead\": {},\n    \"tfoot\": {},\n    \"tr\": {},\n    \"td\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1},\n    \"th\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1, \"scope\": 1},\n    \"form\": {\"accept-charset\": 1, \"action\": 1, \"autocomplete\": 1, \"enctype\": {\"multipart/form-data\": 1, \"application/x-www-form-urlencoded\": 1}, \"method\": {\"get\": 1, \"post\": 1}, \"name\": 1, \"novalidate\": 1, \"target\": {\"_blank\": 1, \"top\": 1}},\n    \"fieldset\": {\"disabled\": 1, \"form\": 1, \"name\": 1},\n    \"legend\": {},\n    \"label\": {\"form\": 1, \"for\": 1},\n    \"input\": {\n        \"type\": {\"text\": 1, \"password\": 1, \"hidden\": 1, \"checkbox\": 1, \"submit\": 1, \"radio\": 1, \"file\": 1, \"button\": 1, \"reset\": 1, \"image\": 31, \"color\": 1, \"date\": 1, \"datetime\": 1, \"datetime-local\": 1, \"email\": 1, \"month\": 1, \"number\": 1, \"range\": 1, \"search\": 1, \"tel\": 1, \"time\": 1, \"url\": 1, \"week\": 1},\n        \"accept\": 1, \"alt\": 1, \"autocomplete\": {\"on\": 1, \"off\": 1}, \"autofocus\": {\"autofocus\": 1}, \"checked\": {\"checked\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": {\"application/x-www-form-urlencoded\": 1, \"multipart/form-data\": 1, \"text/plain\": 1}, \"formmethod\": {\"get\": 1, \"post\": 1}, \"formnovalidate\": {\"formnovalidate\": 1}, \"formtarget\": {\"_blank\": 1, \"_self\": 1, \"_parent\": 1, \"_top\": 1}, \"height\": 1, \"list\": 1, \"max\": 1, \"maxlength\": 1, \"min\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"pattern\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"size\": 1, \"src\": 1, \"step\": 1, \"width\": 1, \"files\": 1, \"value\": 1},\n    \"button\": {\"autofocus\": 1, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": 1, \"formmethod\": 1, \"formnovalidate\": 1, \"formtarget\": 1, \"name\": 1, \"value\": 1, \"type\": {\"button\": 1, \"submit\": 1}},\n    \"select\": {\"autofocus\": 1, \"disabled\": 1, \"form\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"size\": 1, \"readonly\":{\"readonly\": 1}},\n    \"datalist\": {},\n    \"optgroup\": {\"disabled\": 1, \"label\": 1},\n    \"option\": {\"disabled\": 1, \"selected\": 1, \"label\": 1, \"value\": 1},\n    \"textarea\": {\"autofocus\": {\"autofocus\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"maxlength\": 1, \"name\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"rows\": 1, \"cols\": 1, \"wrap\": {\"on\": 1, \"off\": 1, \"hard\": 1, \"soft\": 1}},\n    \"keygen\": {\"autofocus\": 1, \"challenge\": {\"challenge\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"keytype\": {\"rsa\": 1, \"dsa\": 1, \"ec\": 1}, \"name\": 1},\n    \"output\": {\"for\": 1, \"form\": 1, \"name\": 1},\n    \"progress\": {\"value\": 1, \"max\": 1},\n    \"meter\": {\"value\": 1, \"min\": 1, \"max\": 1, \"low\": 1, \"high\": 1, \"optimum\": 1},\n    \"details\": {\"open\": 1},\n    \"summary\": {},\n    \"command\": {\"type\": 1, \"label\": 1, \"icon\": 1, \"disabled\": 1, \"checked\": 1, \"radiogroup\": 1, \"command\": 1},\n    \"menu\": {\"type\": 1, \"label\": 1},\n    \"dialog\": {\"open\": 1}\n};\n\nvar elements = Object.keys(attributeMap);\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nfunction findTagName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"tag-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nfunction findAttributeName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"attribute-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nvar HtmlCompletions = function() {\n\n};\n\n(function() {\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (is(token, \"tag-name\") || is(token, \"tag-open\") || is(token, \"end-tag-open\"))\n            return this.getTagCompletions(state, session, pos, prefix);\n        if (is(token, \"tag-whitespace\") || is(token, \"attribute-name\"))\n            return this.getAttributeCompletions(state, session, pos, prefix);\n        if (is(token, \"attribute-value\"))\n            return this.getAttributeValueCompletions(state, session, pos, prefix);\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        if (/&[a-z]*$/i.test(line))\n            return this.getHTMLEntityCompletions(state, session, pos, prefix);\n\n        return [];\n    };\n\n    this.getTagCompletions = function(state, session, pos, prefix) {\n        return elements.map(function(element){\n            return {\n                value: element,\n                meta: \"tag\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        if (!tagName)\n            return [];\n        var attributes = globalAttributes;\n        if (tagName in attributeMap) {\n            attributes = attributes.concat(Object.keys(attributeMap[tagName]));\n        }\n        return attributes.map(function(attribute){\n            return {\n                caption: attribute,\n                snippet: attribute + '=\"$0\"',\n                meta: \"attribute\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeValueCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        var attributeName = findAttributeName(session, pos);\n        \n        if (!tagName)\n            return [];\n        var values = [];\n        if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === \"object\") {\n            values = Object.keys(attributeMap[tagName][attributeName]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"attribute value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getHTMLEntityCompletions = function(state, session, pos, prefix) {\n        var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;'];\n\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"html entity\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(HtmlCompletions.prototype);\n\nexports.HtmlCompletions = HtmlCompletions;\n});\n\nace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar CssMode = require(\"./css\").Mode;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar HtmlFoldMode = require(\"./folding/html\").FoldMode;\nvar HtmlCompletions = require(\"./html_completions\").HtmlCompletions;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar voidElements = [\"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"menuitem\", \"param\", \"source\", \"track\", \"wbr\"];\nvar optionalEndTags = [\"li\", \"dt\", \"dd\", \"p\", \"rt\", \"rp\", \"optgroup\", \"option\", \"colgroup\", \"td\", \"th\"];\n\nvar Mode = function(options) {\n    this.fragmentContext = options && options.fragmentContext;\n    this.HighlightRules = HtmlHighlightRules;\n    this.$behaviour = new XmlBehaviour();\n    this.$completer = new HtmlCompletions();\n    \n    this.createModeDelegates({\n        \"js-\": JavaScriptMode,\n        \"css-\": CssMode\n    });\n    \n    this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags));\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.blockComment = {start: \"<!--\", end: \"-->\"};\n\n    this.voidElements = lang.arrayToMap(voidElements);\n\n    this.getNextLineIndent = function(state, line, tab) {\n        return this.$getIndent(line);\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return false;\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        if (this.constructor != Mode)\n            return;\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/html_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        if (this.fragmentContext)\n            worker.call(\"setOptions\", [{context: this.fragmentContext}]);\n\n        worker.on(\"error\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/html\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/smarty_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\n\nvar SmartyHighlightRules = function() {\n    HtmlHighlightRules.call(this);\n    var smartyRules = { start: \n       [ { include: '#comments' },\n         { include: '#blocks' } ],\n      '#blocks': \n       [ { token: 'punctuation.section.embedded.begin.smarty',\n           regex: '\\\\{%?',\n           push: \n            [ { token: 'punctuation.section.embedded.end.smarty',\n                regex: '%?\\\\}',\n                next: 'pop' },\n              { include: '#strings' },\n              { include: '#variables' },\n              { include: '#lang' },\n              { defaultToken: 'source.smarty' } ] } ],\n      '#comments': \n       [ { token: \n            [ 'punctuation.definition.comment.smarty',\n              'comment.block.smarty' ],\n           regex: '(\\\\{%?)(\\\\*)',\n           push: \n            [ { token: 'comment.block.smarty', regex: '\\\\*%?\\\\}', next: 'pop' },\n              { defaultToken: 'comment.block.smarty' } ] } ],\n      '#lang': \n       [ { token: 'keyword.operator.smarty',\n           regex: '(?:!=|!|<=|>=|<|>|===|==|%|&&|\\\\|\\\\|)|\\\\b(?:and|or|eq|neq|ne|gte|gt|ge|lte|lt|le|not|mod)\\\\b' },\n         { token: 'constant.language.smarty',\n           regex: '\\\\b(?:TRUE|FALSE|true|false)\\\\b' },\n         { token: 'keyword.control.smarty',\n           regex: '\\\\b(?:if|else|elseif|foreach|foreachelse|section|switch|case|break|default)\\\\b' },\n         { token: 'variable.parameter.smarty', regex: '\\\\b[a-zA-Z]+=' },\n         { token: 'support.function.built-in.smarty',\n           regex: '\\\\b(?:capture|config_load|counter|cycle|debug|eval|fetch|include_php|include|insert|literal|math|strip|rdelim|ldelim|assign|constant|block|html_[a-z_]*)\\\\b' },\n         { token: 'support.function.variable-modifier.smarty',\n           regex: '\\\\|(?:capitalize|cat|count_characters|count_paragraphs|count_sentences|count_words|date_format|default|escape|indent|lower|nl2br|regex_replace|replace|spacify|string_format|strip_tags|strip|truncate|upper|wordwrap)' } ],\n      '#strings': \n       [ { token: 'punctuation.definition.string.begin.smarty',\n           regex: '\\'',\n           push: \n            [ { token: 'punctuation.definition.string.end.smarty',\n                regex: '\\'',\n                next: 'pop' },\n              { token: 'constant.character.escape.smarty', regex: '\\\\\\\\.' },\n              { defaultToken: 'string.quoted.single.smarty' } ] },\n         { token: 'punctuation.definition.string.begin.smarty',\n           regex: '\"',\n           push: \n            [ { token: 'punctuation.definition.string.end.smarty',\n                regex: '\"',\n                next: 'pop' },\n              { token: 'constant.character.escape.smarty', regex: '\\\\\\\\.' },\n              { defaultToken: 'string.quoted.double.smarty' } ] } ],\n      '#variables': \n       [ { token: \n            [ 'punctuation.definition.variable.smarty',\n              'variable.other.global.smarty' ],\n           regex: '\\\\b(\\\\$)(Smarty\\\\.)' },\n         { token: \n            [ 'punctuation.definition.variable.smarty',\n              'variable.other.smarty' ],\n           regex: '(\\\\$)([a-zA-Z_][a-zA-Z0-9_]*)\\\\b' },\n         { token: [ 'keyword.operator.smarty', 'variable.other.property.smarty' ],\n           regex: '(->)([a-zA-Z_][a-zA-Z0-9_]*)\\\\b' },\n         { token: \n            [ 'keyword.operator.smarty',\n              'meta.function-call.object.smarty',\n              'punctuation.definition.variable.smarty',\n              'variable.other.smarty',\n              'punctuation.definition.variable.smarty' ],\n           regex: '(->)([a-zA-Z_][a-zA-Z0-9_]*)(\\\\()(.*?)(\\\\))' } ] }\n    \n    var smartyStart = smartyRules.start;\n    \n    for (var rule in this.$rules) {\n        this.$rules[rule].unshift.apply(this.$rules[rule], smartyStart);\n    }\n    \n    Object.keys(smartyRules).forEach(function(x) {\n        if (!this.$rules[x])\n            this.$rules[x] = smartyRules[x];\n    }, this);\n    \n    this.normalizeRules();\n};\n\nSmartyHighlightRules.metaData = { fileTypes: [ 'tpl' ],\n      foldingStartMarker: '\\\\{%?',\n      foldingStopMarker: '%?\\\\}',\n      name: 'Smarty',\n      scopeName: 'text.html.smarty' }\n\n\noop.inherits(SmartyHighlightRules, HtmlHighlightRules);\n\nexports.SmartyHighlightRules = SmartyHighlightRules;\n});\n\nace.define(\"ace/mode/smarty\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/smarty_highlight_rules\"], function(require, exports, module) {\n  \"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar HtmlMode = require(\"./html\").Mode;\nvar SmartyHighlightRules = require(\"./smarty_highlight_rules\").SmartyHighlightRules;\n\nvar Mode = function() {\n    HtmlMode.call(this);\n    this.HighlightRules = SmartyHighlightRules;\n};\n\noop.inherits(Mode, HtmlMode);\n\n(function() {\n    \n    this.$id = \"ace/mode/smarty\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-snippets.js",
    "content": "ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var range = this.indentationBlock(session, row);\n        if (range)\n            return range;\n\n        var re = /\\S/;\n        var line = session.getLine(row);\n        var startLevel = line.search(re);\n        if (startLevel == -1 || line[startLevel] != \"#\")\n            return;\n\n        var startColumn = line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var level = line.search(re);\n\n            if (level == -1)\n                continue;\n\n            if (line[level] != \"#\")\n                break;\n\n            endRow = row;\n        }\n\n        if (endRow > startRow) {\n            var endColumn = session.getLine(endRow).length;\n            return new Range(startRow, startColumn, endRow, endColumn);\n        }\n    };\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var indent = line.search(/\\S/);\n        var next = session.getLine(row + 1);\n        var prev = session.getLine(row - 1);\n        var prevIndent = prev.search(/\\S/);\n        var nextIndent = next.search(/\\S/);\n\n        if (indent == -1) {\n            session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n            return \"\";\n        }\n        if (prevIndent == -1) {\n            if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n                session.foldWidgets[row - 1] = \"\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"start\";\n            }\n        } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n            if (session.getLine(row - 2).search(/\\S/) == -1) {\n                session.foldWidgets[row - 1] = \"start\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"\";\n            }\n        }\n\n        if (prevIndent!= -1 && prevIndent < indent)\n            session.foldWidgets[row - 1] = \"start\";\n        else\n            session.foldWidgets[row - 1] = \"\";\n\n        if (indent < nextIndent)\n            return \"start\";\n        else\n            return \"\";\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/snippets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/folding/coffee\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar SnippetHighlightRules = function() {\n\n    var builtins = \"SELECTION|CURRENT_WORD|SELECTED_TEXT|CURRENT_LINE|LINE_INDEX|\" +\n        \"LINE_NUMBER|SOFT_TABS|TAB_SIZE|FILENAME|FILEPATH|FULLNAME\";\n\n    this.$rules = {\n        \"start\" : [\n            {token:\"constant.language.escape\", regex: /\\\\[\\$}`\\\\]/},\n            {token:\"keyword\", regex: \"\\\\$(?:TM_)?(?:\" + builtins + \")\\\\b\"},\n            {token:\"variable\", regex: \"\\\\$\\\\w+\"},\n            {onMatch: function(value, state, stack) {\n                if (stack[1])\n                    stack[1]++;\n                else\n                    stack.unshift(state, 1);\n                return this.tokenName;\n            }, tokenName: \"markup.list\", regex: \"\\\\${\", next: \"varDecl\"},\n            {onMatch: function(value, state, stack) {\n                if (!stack[1])\n                    return \"text\";\n                stack[1]--;\n                if (!stack[1])\n                    stack.splice(0,2);\n                return this.tokenName;\n            }, tokenName: \"markup.list\", regex: \"}\"},\n            {token: \"doc.comment\", regex:/^\\${2}-{5,}$/}\n        ],\n        \"varDecl\" : [\n            {regex: /\\d+\\b/, token: \"constant.numeric\"},\n            {token:\"keyword\", regex: \"(?:TM_)?(?:\" + builtins + \")\\\\b\"},\n            {token:\"variable\", regex: \"\\\\w+\"},\n            {regex: /:/, token: \"punctuation.operator\", next: \"start\"},\n            {regex: /\\//, token: \"string.regex\", next: \"regexp\"},\n            {regex: \"\", next: \"start\"}\n        ],\n        \"regexp\" : [\n            {regex: /\\\\./, token: \"escape\"},\n            {regex: /\\[/, token: \"regex.start\", next: \"charClass\"},\n            {regex: \"/\", token: \"string.regex\", next: \"format\"},\n            {\"token\": \"string.regex\", regex:\".\"}\n        ],\n        charClass : [\n            {regex: \"\\\\.\", token: \"escape\"},\n            {regex: \"\\\\]\", token: \"regex.end\", next: \"regexp\"},\n            {\"token\": \"string.regex\", regex:\".\"}\n        ],\n        \"format\" : [\n            {regex: /\\\\[ulULE]/, token: \"keyword\"},\n            {regex: /\\$\\d+/, token: \"variable\"},\n            {regex: \"/[gim]*:?\", token: \"string.regex\", next: \"start\"},\n            {\"token\": \"string\", regex:\".\"}\n        ]\n    };\n};\noop.inherits(SnippetHighlightRules, TextHighlightRules);\n\nexports.SnippetHighlightRules = SnippetHighlightRules;\n\nvar SnippetGroupHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [\n\t\t\t{token: \"text\", regex: \"^\\\\t\", next: \"sn-start\"},\n\t\t\t{token:\"invalid\", regex: /^ \\s*/},\n            {token:\"comment\", regex: /^#.*/},\n            {token:\"constant.language.escape\", regex: \"^regex \", next: \"regex\"},\n            {token:\"constant.language.escape\", regex: \"^(trigger|endTrigger|name|snippet|guard|endGuard|tabTrigger|key)\\\\b\"}\n        ],\n\t\t\"regex\" : [\n\t\t\t{token:\"text\", regex: \"\\\\.\"},\n\t\t\t{token:\"keyword\", regex: \"/\"},\n\t\t\t{token:\"empty\", regex: \"$\", next: \"start\"}\n\t\t]\n    };\n\tthis.embedRules(SnippetHighlightRules, \"sn-\", [\n\t\t{token: \"text\", regex: \"^\\\\t\", next: \"sn-start\"},\n\t\t{onMatch: function(value, state, stack) {\n\t\t\tstack.splice(stack.length);\n\t\t\treturn this.tokenName;\n\t\t}, tokenName: \"text\", regex: \"^(?!\\t)\", next: \"start\"}\n\t])\n\t\n};\n\noop.inherits(SnippetGroupHighlightRules, TextHighlightRules);\n\nexports.SnippetGroupHighlightRules = SnippetGroupHighlightRules;\n\nvar FoldMode = require(\"./folding/coffee\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = SnippetGroupHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.$indentWithTabs = true;\n    this.lineCommentStart = \"#\";\n    this.$id = \"ace/mode/snippets\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-soy_template.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar propertyMap = {\n    \"background\": {\"#$0\": 1},\n    \"background-color\": {\"#$0\": 1, \"transparent\": 1, \"fixed\": 1},\n    \"background-image\": {\"url('/$0')\": 1},\n    \"background-repeat\": {\"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1},\n    \"background-position\": {\"bottom\":2, \"center\":2, \"left\":2, \"right\":2, \"top\":2, \"inherit\":2},\n    \"background-attachment\": {\"scroll\": 1, \"fixed\": 1},\n    \"background-size\": {\"cover\": 1, \"contain\": 1},\n    \"background-clip\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"background-origin\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"border\": {\"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1},\n    \"border-color\": {\"#$0\": 1},\n    \"border-style\": {\"solid\":2, \"dashed\":2, \"dotted\":2, \"double\":2, \"groove\":2, \"hidden\":2, \"inherit\":2, \"inset\":2, \"none\":2, \"outset\":2, \"ridged\":2},\n    \"border-collapse\": {\"collapse\": 1, \"separate\": 1},\n    \"bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"clear\": {\"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1},\n    \"color\": {\"#$0\": 1, \"rgb(#$00,0,0)\": 1},\n    \"cursor\": {\"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1},\n    \"display\": {\"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1},\n    \"empty-cells\": {\"show\": 1, \"hide\": 1},\n    \"float\": {\"left\": 1, \"right\": 1, \"none\": 1},\n    \"font-family\": {\"Arial\":2,\"Comic Sans MS\":2,\"Consolas\":2,\"Courier New\":2,\"Courier\":2,\"Georgia\":2,\"Monospace\":2,\"Sans-Serif\":2, \"Segoe UI\":2,\"Tahoma\":2,\"Times New Roman\":2,\"Trebuchet MS\":2,\"Verdana\": 1},\n    \"font-size\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"font-weight\": {\"bold\": 1, \"normal\": 1},\n    \"font-style\": {\"italic\": 1, \"normal\": 1},\n    \"font-variant\": {\"normal\": 1, \"small-caps\": 1},\n    \"height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"letter-spacing\": {\"normal\": 1},\n    \"line-height\": {\"normal\": 1},\n    \"list-style-type\": {\"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1},\n    \"margin\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"overflow\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-x\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-y\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"padding\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"page-break-after\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"page-break-before\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"position\": {\"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1},\n    \"right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"table-layout\": {\"fixed\": 1, \"auto\": 1},\n    \"text-decoration\": {\"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1},\n    \"text-align\": {\"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1},\n    \"text-transform\": {\"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1},\n    \"top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"vertical-align\": {\"top\": 1, \"bottom\": 1},\n    \"visibility\": {\"hidden\": 1, \"visible\": 1},\n    \"white-space\": {\"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1},\n    \"width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"word-spacing\": {\"normal\": 1},\n    \"filter\": {\"alpha(opacity=$0100)\": 1},\n\n    \"text-shadow\": {\"$02px 2px 2px #777\": 1},\n    \"text-overflow\": {\"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1},\n    \"-moz-border-radius\": 1,\n    \"-moz-border-radius-topright\": 1,\n    \"-moz-border-radius-bottomright\": 1,\n    \"-moz-border-radius-topleft\": 1,\n    \"-moz-border-radius-bottomleft\": 1,\n    \"-webkit-border-radius\": 1,\n    \"-webkit-border-top-right-radius\": 1,\n    \"-webkit-border-top-left-radius\": 1,\n    \"-webkit-border-bottom-right-radius\": 1,\n    \"-webkit-border-bottom-left-radius\": 1,\n    \"-moz-box-shadow\": 1,\n    \"-webkit-box-shadow\": 1,\n    \"transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-moz-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-webkit-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\n\nvar CssCompletions = function() {\n\n};\n\n(function() {\n\n    this.completionsDefined = false;\n\n    this.defineCompletions = function() {\n        if (document) {\n            var style = document.createElement('c').style;\n\n            for (var i in style) {\n                if (typeof style[i] !== 'string')\n                    continue;\n\n                var name = i.replace(/[A-Z]/g, function(x) {\n                    return '-' + x.toLowerCase();\n                });\n\n                if (!propertyMap.hasOwnProperty(name))\n                    propertyMap[name] = 1;\n            }\n        }\n\n        this.completionsDefined = true;\n    }\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        if (!this.completionsDefined) {\n            this.defineCompletions();\n        }\n\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (state==='ruleset'){\n            var line = session.getLine(pos.row).substr(0, pos.column);\n            if (/:[^;]+$/.test(line)) {\n                /([\\w\\-]+):[^:]*$/.test(line);\n\n                return this.getPropertyValueCompletions(state, session, pos, prefix);\n            } else {\n                return this.getPropertyCompletions(state, session, pos, prefix);\n            }\n        }\n\n        return [];\n    };\n\n    this.getPropertyCompletions = function(state, session, pos, prefix) {\n        var properties = Object.keys(propertyMap);\n        return properties.map(function(property){\n            return {\n                caption: property,\n                snippet: property + ': $0',\n                meta: \"property\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getPropertyValueCompletions = function(state, session, pos, prefix) {\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n\n        if (!property)\n            return [];\n        var values = [];\n        if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n            values = Object.keys(propertyMap[property]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"property value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(CssCompletions.prototype);\n\nexports.CssCompletions = CssCompletions;\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar CssBehaviour = function () {\n\n    this.inherit(CstyleBehaviour);\n\n    this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(cursor.row);\n                var rightChar = line.substring(cursor.column, cursor.column + 1);\n                if (rightChar === ':') {\n                    return {\n                       text: '',\n                       selection: [1, 1]\n                    }\n                }\n                if (!line.substring(cursor.column).match(/^\\s*;/)) {\n                    return {\n                       text: ':;',\n                       selection: [1, 1]\n                    }\n                }\n            }\n        }\n    });\n\n    this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && selected === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(range.start.row);\n                var rightChar = line.substring(range.end.column, range.end.column + 1);\n                if (rightChar === ';') {\n                    range.end.column ++;\n                    return range;\n                }\n            }\n        }\n    });\n\n    this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ';') {\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar === ';') {\n                return {\n                   text: '',\n                   selection: [1, 1]\n                }\n            }\n        }\n    });\n\n}\noop.inherits(CssBehaviour, CstyleBehaviour);\n\nexports.CssBehaviour = CssBehaviour;\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = CssHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CssBehaviour();\n    this.$completer = new CssCompletions();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.foldingRules = \"cStyle\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        var match = line.match(/^.*\\{\\s*$/);\n        if (match) {\n            indent += tab;\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/css\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n    a           : 'anchor',\n    button \t    : 'form',\n    form        : 'form',\n    img         : 'image',\n    input       : 'form',\n    label       : 'form',\n    option      : 'form',\n    script      : 'script',\n    select      : 'form',\n    textarea    : 'form',\n    style       : 'style',\n    table       : 'table',\n    tbody       : 'table',\n    td          : 'table',\n    tfoot       : 'table',\n    th          : 'table',\n    tr          : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.addRules({\n        attributes: [{\n            include : \"tag_whitespace\"\n        }, {\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"[-_a-zA-Z0-9:.]+\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\",\n            push : [{\n                include: \"tag_whitespace\"\n            }, {\n                token : \"string.unquoted.attribute-value.html\",\n                regex : \"[^<>='\\\"`\\\\s]+\",\n                next : \"pop\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"pop\"\n            }]\n        }, {\n            include : \"attribute_value\"\n        }],\n        tag: [{\n            token : function(start, tag) {\n                var group = tagMap[tag];\n                return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                    \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n            },\n            regex : \"(</?)([-_a-zA-Z0-9:.]+)\",\n            next: \"tag_stuff\"\n        }],\n        tag_stuff: [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n        ]\n    });\n\n    this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"js-\", \"script\");\n\n    if (this.constructor === HtmlHighlightRules)\n        this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nvar XmlBehaviour = function () {\n\n    this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '\"' || text == \"'\") {\n            var quote = text;\n            var selected = session.doc.getTextRange(editor.getSelectionRange());\n            if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n                return {\n                    text: quote + selected + quote,\n                    selection: false\n                };\n            }\n\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n                return {\n                    text: \"\",\n                    selection: [1, 1]\n                };\n            }\n\n            if (!token)\n                token = iterator.stepBackward();\n\n            if (!token)\n                return;\n\n            while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n                token = iterator.stepBackward();\n            }\n            var rightSpace = !rightChar || rightChar.match(/\\s/);\n            if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n                return {\n                    text: quote + quote,\n                    selection: [1, 1]\n                };\n            }\n        }\n    });\n\n    this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == selected) {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n\n    this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '>') {\n            var position = editor.getSelectionRange().start;\n            var iterator = new TokenIterator(session, position.row, position.column);\n            var token = iterator.getCurrentToken() || iterator.stepBackward();\n            if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n                return;\n            if (is(token, \"reference.attribute-value\"))\n                return;\n            if (is(token, \"attribute-value\")) {\n                var firstChar = token.value.charAt(0);\n                if (firstChar == '\"' || firstChar == \"'\") {\n                    var lastChar = token.value.charAt(token.value.length - 1);\n                    var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;\n                    if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)\n                        return;\n                }\n            }\n            while (!is(token, \"tag-name\")) {\n                token = iterator.stepBackward();\n                if (token.value == \"<\") {\n                    token = iterator.stepForward();\n                    break;\n                }\n            }\n\n            var tokenRow = iterator.getCurrentTokenRow();\n            var tokenColumn = iterator.getCurrentTokenColumn();\n            if (is(iterator.stepBackward(), \"end-tag-open\"))\n                return;\n\n            var element = token.value;\n            if (tokenRow == position.row)\n                element = element.substring(0, position.column - tokenColumn);\n\n            if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n                 return;\n\n            return {\n               text: \">\" + \"</\" + element + \">\",\n               selection: [1, 1]\n            };\n        }\n    });\n\n    this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == \"\\n\") {\n            var cursor = editor.getCursorPosition();\n            var line = session.getLine(cursor.row);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (token && token.type.indexOf(\"tag-close\") !== -1) {\n                if (token.value == \"/>\")\n                    return;\n                while (token && token.type.indexOf(\"tag-name\") === -1) {\n                    token = iterator.stepBackward();\n                }\n\n                if (!token) {\n                    return;\n                }\n\n                var tag = token.value;\n                var row = iterator.getCurrentTokenRow();\n                token = iterator.stepBackward();\n                if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n                    return;\n                }\n\n                if (this.voidElements && !this.voidElements[tag]) {\n                    var nextToken = session.getTokenAt(cursor.row, cursor.column+1);\n                    var line = session.getLine(row);\n                    var nextIndent = this.$getIndent(line);\n                    var indent = nextIndent + session.getTabString();\n\n                    if (nextToken && nextToken.value === \"</\") {\n                        return {\n                            text: \"\\n\" + indent + \"\\n\" + nextIndent,\n                            selection: [1, indent.length, 1, indent.length]\n                        };\n                    } else {\n                        return {\n                            text: \"\\n\" + indent\n                        };\n                    }\n                }\n            }\n        }\n    });\n\n};\n\noop.inherits(XmlBehaviour, Behaviour);\n\nexports.XmlBehaviour = XmlBehaviour;\n});\n\nace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(defaultMode, subModes) {\n    this.defaultMode = defaultMode;\n    this.subModes = subModes;\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n\n    this.$getMode = function(state) {\n        if (typeof state != \"string\") \n            state = state[0];\n        for (var key in this.subModes) {\n            if (state.indexOf(key) === 0)\n                return this.subModes[key];\n        }\n        return null;\n    };\n    \n    this.$tryMode = function(state, session, foldStyle, row) {\n        var mode = this.$getMode(state);\n        return (mode ? mode.getFoldWidget(session, foldStyle, row) : \"\");\n    };\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        return (\n            this.$tryMode(session.getState(row-1), session, foldStyle, row) ||\n            this.$tryMode(session.getState(row), session, foldStyle, row) ||\n            this.defaultMode.getFoldWidget(session, foldStyle, row)\n        );\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var mode = this.$getMode(session.getState(row-1));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.$getMode(session.getState(row));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.defaultMode;\n        \n        return mode.getFoldWidgetRange(session, foldStyle, row);\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar lang = require(\"../../lib/lang\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalEndTags) {\n    BaseFoldMode.call(this);\n    this.voidElements = voidElements || {};\n    this.optionalEndTags = oop.mixin({}, this.voidElements);\n    if (optionalEndTags)\n        oop.mixin(this.optionalEndTags, optionalEndTags);\n    \n};\noop.inherits(FoldMode, BaseFoldMode);\n\nvar Tag = function() {\n    this.tagName = \"\";\n    this.closing = false;\n    this.selfClosing = false;\n    this.start = {row: 0, column: 0};\n    this.end = {row: 0, column: 0};\n};\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\n(function() {\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var tag = this._getFirstTagInLine(session, row);\n\n        if (!tag)\n            return \"\";\n\n        if (tag.closing || (!tag.tagName && tag.selfClosing))\n            return foldStyle == \"markbeginend\" ? \"end\" : \"\";\n\n        if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n            return \"\";\n\n        if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n            return \"\";\n\n        return \"start\";\n    };\n    this._getFirstTagInLine = function(session, row) {\n        var tokens = session.getTokens(row);\n        var tag = new Tag();\n\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            if (is(token, \"tag-open\")) {\n                tag.end.column = tag.start.column + token.value.length;\n                tag.closing = is(token, \"end-tag-open\");\n                token = tokens[++i];\n                if (!token)\n                    return null;\n                tag.tagName = token.value;\n                tag.end.column += token.value.length;\n                for (i++; i < tokens.length; i++) {\n                    token = tokens[i];\n                    tag.end.column += token.value.length;\n                    if (is(token, \"tag-close\")) {\n                        tag.selfClosing = token.value == '/>';\n                        break;\n                    }\n                }\n                return tag;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == '/>';\n                return tag;\n            }\n            tag.start.column += token.value.length;\n        }\n\n        return null;\n    };\n\n    this._findEndTagInLine = function(session, row, tagName, startColumn) {\n        var tokens = session.getTokens(row);\n        var column = 0;\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            column += token.value.length;\n            if (column < startColumn)\n                continue;\n            if (is(token, \"end-tag-open\")) {\n                token = tokens[i + 1];\n                if (token && token.value == tagName)\n                    return true;\n            }\n        }\n        return false;\n    };\n    this._readTagForward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n                iterator.stepForward();\n                return tag;\n            }\n        } while(token = iterator.stepForward());\n\n        return null;\n    };\n    \n    this._readTagBackward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n                iterator.stepBackward();\n                return tag;\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n            }\n        } while(token = iterator.stepBackward());\n\n        return null;\n    };\n    \n    this._pop = function(stack, tag) {\n        while (stack.length) {\n            \n            var top = stack[stack.length-1];\n            if (!tag || top.tagName == tag.tagName) {\n                return stack.pop();\n            }\n            else if (this.optionalEndTags.hasOwnProperty(top.tagName)) {\n                stack.pop();\n                continue;\n            } else {\n                return null;\n            }\n        }\n    };\n    \n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var firstTag = this._getFirstTagInLine(session, row);\n        \n        if (!firstTag)\n            return null;\n        \n        var isBackward = firstTag.closing || firstTag.selfClosing;\n        var stack = [];\n        var tag;\n        \n        if (!isBackward) {\n            var iterator = new TokenIterator(session, row, firstTag.start.column);\n            var start = {\n                row: row,\n                column: firstTag.start.column + firstTag.tagName.length + 2\n            };\n            if (firstTag.start.row == firstTag.end.row)\n                start.column = firstTag.end.column;\n            while (tag = this._readTagForward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0)\n                        return Range.fromPoints(start, tag.start);\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        else {\n            var iterator = new TokenIterator(session, row, firstTag.end.column);\n            var end = {\n                row: row,\n                column: firstTag.start.column\n            };\n            \n            while (tag = this._readTagBackward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (!tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0) {\n                        tag.start.column += tag.tagName.length + 2;\n                        if (tag.start.row == tag.end.row && tag.start.column < tag.end.column)\n                            tag.start.column = tag.end.column;\n                        return Range.fromPoints(tag.start, end);\n                    }\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        \n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar MixedFoldMode = require(\"./mixed\").FoldMode;\nvar XmlFoldMode = require(\"./xml\").FoldMode;\nvar CStyleFoldMode = require(\"./cstyle\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalTags) {\n    MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), {\n        \"js-\": new CStyleFoldMode(),\n        \"css-\": new CStyleFoldMode()\n    });\n};\n\noop.inherits(FoldMode, MixedFoldMode);\n\n});\n\nace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\n\nvar commonAttributes = [\n    \"accesskey\",\n    \"class\",\n    \"contenteditable\",\n    \"contextmenu\",\n    \"dir\",\n    \"draggable\",\n    \"dropzone\",\n    \"hidden\",\n    \"id\",\n    \"inert\",\n    \"itemid\",\n    \"itemprop\",\n    \"itemref\",\n    \"itemscope\",\n    \"itemtype\",\n    \"lang\",\n    \"spellcheck\",\n    \"style\",\n    \"tabindex\",\n    \"title\",\n    \"translate\"\n];\n\nvar eventAttributes = [\n    \"onabort\",\n    \"onblur\",\n    \"oncancel\",\n    \"oncanplay\",\n    \"oncanplaythrough\",\n    \"onchange\",\n    \"onclick\",\n    \"onclose\",\n    \"oncontextmenu\",\n    \"oncuechange\",\n    \"ondblclick\",\n    \"ondrag\",\n    \"ondragend\",\n    \"ondragenter\",\n    \"ondragleave\",\n    \"ondragover\",\n    \"ondragstart\",\n    \"ondrop\",\n    \"ondurationchange\",\n    \"onemptied\",\n    \"onended\",\n    \"onerror\",\n    \"onfocus\",\n    \"oninput\",\n    \"oninvalid\",\n    \"onkeydown\",\n    \"onkeypress\",\n    \"onkeyup\",\n    \"onload\",\n    \"onloadeddata\",\n    \"onloadedmetadata\",\n    \"onloadstart\",\n    \"onmousedown\",\n    \"onmousemove\",\n    \"onmouseout\",\n    \"onmouseover\",\n    \"onmouseup\",\n    \"onmousewheel\",\n    \"onpause\",\n    \"onplay\",\n    \"onplaying\",\n    \"onprogress\",\n    \"onratechange\",\n    \"onreset\",\n    \"onscroll\",\n    \"onseeked\",\n    \"onseeking\",\n    \"onselect\",\n    \"onshow\",\n    \"onstalled\",\n    \"onsubmit\",\n    \"onsuspend\",\n    \"ontimeupdate\",\n    \"onvolumechange\",\n    \"onwaiting\"\n];\n\nvar globalAttributes = commonAttributes.concat(eventAttributes);\n\nvar attributeMap = {\n    \"html\": {\"manifest\": 1},\n    \"head\": {},\n    \"title\": {},\n    \"base\": {\"href\": 1, \"target\": 1},\n    \"link\": {\"href\": 1, \"hreflang\": 1, \"rel\": {\"stylesheet\": 1, \"icon\": 1}, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"type\": {\"text/css\": 1, \"image/png\": 1, \"image/jpeg\": 1, \"image/gif\": 1}, \"sizes\": 1},\n    \"meta\": {\"http-equiv\": {\"content-type\": 1}, \"name\": {\"description\": 1, \"keywords\": 1}, \"content\": {\"text/html; charset=UTF-8\": 1}, \"charset\": 1},\n    \"style\": {\"type\": 1, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"scoped\": 1},\n    \"script\": {\"charset\": 1, \"type\": {\"text/javascript\": 1}, \"src\": 1, \"defer\": 1, \"async\": 1},\n    \"noscript\": {\"href\": 1},\n    \"body\": {\"onafterprint\": 1, \"onbeforeprint\": 1, \"onbeforeunload\": 1, \"onhashchange\": 1, \"onmessage\": 1, \"onoffline\": 1, \"onpopstate\": 1, \"onredo\": 1, \"onresize\": 1, \"onstorage\": 1, \"onundo\": 1, \"onunload\": 1},\n    \"section\": {},\n    \"nav\": {},\n    \"article\": {\"pubdate\": 1},\n    \"aside\": {},\n    \"h1\": {},\n    \"h2\": {},\n    \"h3\": {},\n    \"h4\": {},\n    \"h5\": {},\n    \"h6\": {},\n    \"header\": {},\n    \"footer\": {},\n    \"address\": {},\n    \"main\": {},\n    \"p\": {},\n    \"hr\": {},\n    \"pre\": {},\n    \"blockquote\": {\"cite\": 1},\n    \"ol\": {\"start\": 1, \"reversed\": 1},\n    \"ul\": {},\n    \"li\": {\"value\": 1},\n    \"dl\": {},\n    \"dt\": {},\n    \"dd\": {},\n    \"figure\": {},\n    \"figcaption\": {},\n    \"div\": {},\n    \"a\": {\"href\": 1, \"target\": {\"_blank\": 1, \"top\": 1}, \"ping\": 1, \"rel\": {\"nofollow\": 1, \"alternate\": 1, \"author\": 1, \"bookmark\": 1, \"help\": 1, \"license\": 1, \"next\": 1, \"noreferrer\": 1, \"prefetch\": 1, \"prev\": 1, \"search\": 1, \"tag\": 1}, \"media\": 1, \"hreflang\": 1, \"type\": 1},\n    \"em\": {},\n    \"strong\": {},\n    \"small\": {},\n    \"s\": {},\n    \"cite\": {},\n    \"q\": {\"cite\": 1},\n    \"dfn\": {},\n    \"abbr\": {},\n    \"data\": {},\n    \"time\": {\"datetime\": 1},\n    \"code\": {},\n    \"var\": {},\n    \"samp\": {},\n    \"kbd\": {},\n    \"sub\": {},\n    \"sup\": {},\n    \"i\": {},\n    \"b\": {},\n    \"u\": {},\n    \"mark\": {},\n    \"ruby\": {},\n    \"rt\": {},\n    \"rp\": {},\n    \"bdi\": {},\n    \"bdo\": {},\n    \"span\": {},\n    \"br\": {},\n    \"wbr\": {},\n    \"ins\": {\"cite\": 1, \"datetime\": 1},\n    \"del\": {\"cite\": 1, \"datetime\": 1},\n    \"img\": {\"alt\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"usemap\": 1, \"ismap\": 1},\n    \"iframe\": {\"name\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"sandbox\": {\"allow-same-origin\": 1, \"allow-top-navigation\": 1, \"allow-forms\": 1, \"allow-scripts\": 1}, \"seamless\": {\"seamless\": 1}},\n    \"embed\": {\"src\": 1, \"height\": 1, \"width\": 1, \"type\": 1},\n    \"object\": {\"param\": 1, \"data\": 1, \"type\": 1, \"height\" : 1, \"width\": 1, \"usemap\": 1, \"name\": 1, \"form\": 1, \"classid\": 1},\n    \"param\": {\"name\": 1, \"value\": 1},\n    \"video\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"width\": 1, \"height\": 1, \"poster\": 1, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1}},\n    \"audio\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1 }},\n    \"source\": {\"src\": 1, \"type\": 1, \"media\": 1},\n    \"track\": {\"kind\": 1, \"src\": 1, \"srclang\": 1, \"label\": 1, \"default\": 1},\n    \"canvas\": {\"width\": 1, \"height\": 1},\n    \"map\": {\"name\": 1},\n    \"area\": {\"shape\": 1, \"coords\": 1, \"href\": 1, \"hreflang\": 1, \"alt\": 1, \"target\": 1, \"media\": 1, \"rel\": 1, \"ping\": 1, \"type\": 1},\n    \"svg\": {},\n    \"math\": {},\n    \"table\": {\"summary\": 1},\n    \"caption\": {},\n    \"colgroup\": {\"span\": 1},\n    \"col\": {\"span\": 1},\n    \"tbody\": {},\n    \"thead\": {},\n    \"tfoot\": {},\n    \"tr\": {},\n    \"td\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1},\n    \"th\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1, \"scope\": 1},\n    \"form\": {\"accept-charset\": 1, \"action\": 1, \"autocomplete\": 1, \"enctype\": {\"multipart/form-data\": 1, \"application/x-www-form-urlencoded\": 1}, \"method\": {\"get\": 1, \"post\": 1}, \"name\": 1, \"novalidate\": 1, \"target\": {\"_blank\": 1, \"top\": 1}},\n    \"fieldset\": {\"disabled\": 1, \"form\": 1, \"name\": 1},\n    \"legend\": {},\n    \"label\": {\"form\": 1, \"for\": 1},\n    \"input\": {\n        \"type\": {\"text\": 1, \"password\": 1, \"hidden\": 1, \"checkbox\": 1, \"submit\": 1, \"radio\": 1, \"file\": 1, \"button\": 1, \"reset\": 1, \"image\": 31, \"color\": 1, \"date\": 1, \"datetime\": 1, \"datetime-local\": 1, \"email\": 1, \"month\": 1, \"number\": 1, \"range\": 1, \"search\": 1, \"tel\": 1, \"time\": 1, \"url\": 1, \"week\": 1},\n        \"accept\": 1, \"alt\": 1, \"autocomplete\": {\"on\": 1, \"off\": 1}, \"autofocus\": {\"autofocus\": 1}, \"checked\": {\"checked\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": {\"application/x-www-form-urlencoded\": 1, \"multipart/form-data\": 1, \"text/plain\": 1}, \"formmethod\": {\"get\": 1, \"post\": 1}, \"formnovalidate\": {\"formnovalidate\": 1}, \"formtarget\": {\"_blank\": 1, \"_self\": 1, \"_parent\": 1, \"_top\": 1}, \"height\": 1, \"list\": 1, \"max\": 1, \"maxlength\": 1, \"min\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"pattern\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"size\": 1, \"src\": 1, \"step\": 1, \"width\": 1, \"files\": 1, \"value\": 1},\n    \"button\": {\"autofocus\": 1, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": 1, \"formmethod\": 1, \"formnovalidate\": 1, \"formtarget\": 1, \"name\": 1, \"value\": 1, \"type\": {\"button\": 1, \"submit\": 1}},\n    \"select\": {\"autofocus\": 1, \"disabled\": 1, \"form\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"size\": 1, \"readonly\":{\"readonly\": 1}},\n    \"datalist\": {},\n    \"optgroup\": {\"disabled\": 1, \"label\": 1},\n    \"option\": {\"disabled\": 1, \"selected\": 1, \"label\": 1, \"value\": 1},\n    \"textarea\": {\"autofocus\": {\"autofocus\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"maxlength\": 1, \"name\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"rows\": 1, \"cols\": 1, \"wrap\": {\"on\": 1, \"off\": 1, \"hard\": 1, \"soft\": 1}},\n    \"keygen\": {\"autofocus\": 1, \"challenge\": {\"challenge\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"keytype\": {\"rsa\": 1, \"dsa\": 1, \"ec\": 1}, \"name\": 1},\n    \"output\": {\"for\": 1, \"form\": 1, \"name\": 1},\n    \"progress\": {\"value\": 1, \"max\": 1},\n    \"meter\": {\"value\": 1, \"min\": 1, \"max\": 1, \"low\": 1, \"high\": 1, \"optimum\": 1},\n    \"details\": {\"open\": 1},\n    \"summary\": {},\n    \"command\": {\"type\": 1, \"label\": 1, \"icon\": 1, \"disabled\": 1, \"checked\": 1, \"radiogroup\": 1, \"command\": 1},\n    \"menu\": {\"type\": 1, \"label\": 1},\n    \"dialog\": {\"open\": 1}\n};\n\nvar elements = Object.keys(attributeMap);\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nfunction findTagName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"tag-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nfunction findAttributeName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"attribute-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nvar HtmlCompletions = function() {\n\n};\n\n(function() {\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (is(token, \"tag-name\") || is(token, \"tag-open\") || is(token, \"end-tag-open\"))\n            return this.getTagCompletions(state, session, pos, prefix);\n        if (is(token, \"tag-whitespace\") || is(token, \"attribute-name\"))\n            return this.getAttributeCompletions(state, session, pos, prefix);\n        if (is(token, \"attribute-value\"))\n            return this.getAttributeValueCompletions(state, session, pos, prefix);\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        if (/&[a-z]*$/i.test(line))\n            return this.getHTMLEntityCompletions(state, session, pos, prefix);\n\n        return [];\n    };\n\n    this.getTagCompletions = function(state, session, pos, prefix) {\n        return elements.map(function(element){\n            return {\n                value: element,\n                meta: \"tag\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        if (!tagName)\n            return [];\n        var attributes = globalAttributes;\n        if (tagName in attributeMap) {\n            attributes = attributes.concat(Object.keys(attributeMap[tagName]));\n        }\n        return attributes.map(function(attribute){\n            return {\n                caption: attribute,\n                snippet: attribute + '=\"$0\"',\n                meta: \"attribute\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeValueCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        var attributeName = findAttributeName(session, pos);\n        \n        if (!tagName)\n            return [];\n        var values = [];\n        if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === \"object\") {\n            values = Object.keys(attributeMap[tagName][attributeName]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"attribute value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getHTMLEntityCompletions = function(state, session, pos, prefix) {\n        var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;'];\n\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"html entity\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(HtmlCompletions.prototype);\n\nexports.HtmlCompletions = HtmlCompletions;\n});\n\nace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar CssMode = require(\"./css\").Mode;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar HtmlFoldMode = require(\"./folding/html\").FoldMode;\nvar HtmlCompletions = require(\"./html_completions\").HtmlCompletions;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar voidElements = [\"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"menuitem\", \"param\", \"source\", \"track\", \"wbr\"];\nvar optionalEndTags = [\"li\", \"dt\", \"dd\", \"p\", \"rt\", \"rp\", \"optgroup\", \"option\", \"colgroup\", \"td\", \"th\"];\n\nvar Mode = function(options) {\n    this.fragmentContext = options && options.fragmentContext;\n    this.HighlightRules = HtmlHighlightRules;\n    this.$behaviour = new XmlBehaviour();\n    this.$completer = new HtmlCompletions();\n    \n    this.createModeDelegates({\n        \"js-\": JavaScriptMode,\n        \"css-\": CssMode\n    });\n    \n    this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags));\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.blockComment = {start: \"<!--\", end: \"-->\"};\n\n    this.voidElements = lang.arrayToMap(voidElements);\n\n    this.getNextLineIndent = function(state, line, tab) {\n        return this.$getIndent(line);\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return false;\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        if (this.constructor != Mode)\n            return;\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/html_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        if (this.fragmentContext)\n            worker.call(\"setOptions\", [{context: this.fragmentContext}]);\n\n        worker.on(\"error\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/html\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/soy_template_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\n\nvar SoyTemplateHighlightRules = function() {\n    HtmlHighlightRules.call(this);\n\n    var soyRules = { start: \n       [ { include: '#template' },\n         { include: '#if' },\n         { include: '#comment-line' },\n         { include: '#comment-block' },\n         { include: '#comment-doc' },\n         { include: '#call' },\n         { include: '#css' },\n         { include: '#param' },\n         { include: '#print' },\n         { include: '#msg' },\n         { include: '#for' },\n         { include: '#foreach' },\n         { include: '#switch' },\n         { include: '#tag' },\n         { include: 'text.html.basic' } ],\n      '#call': \n       [ { token: \n            [ 'punctuation.definition.tag.begin.soy',\n              'meta.tag.call.soy' ],\n           regex: '(\\\\{/?)(\\\\s*)(?=call|delcall)',\n           push: \n            [ { token: 'punctuation.definition.tag.end.soy',\n                regex: '\\\\}',\n                next: 'pop' },\n              { include: '#string-quoted-single' },\n              { include: '#string-quoted-double' },\n              { token: ['entity.name.tag.soy', 'variable.parameter.soy'],\n                regex: '(call|delcall)(\\\\s+[\\\\.\\\\w]+)'},\n              { token: \n                 [ 'entity.other.attribute-name.soy',\n                   'text',\n                   'keyword.operator.soy' ],\n                regex: '\\\\b(data)(\\\\s*)(=)' },\n              { defaultToken: 'meta.tag.call.soy' } ] } ],\n      '#comment-line': \n       [ { token: \n            [ 'comment.line.double-slash.soy',\n              'comment.line.double-slash.soy' ],\n           regex: '(//)(.*$)' } ],\n      '#comment-block': \n       [ { token: 'punctuation.definition.comment.begin.soy',\n           regex: '/\\\\*(?!\\\\*)',\n           push: \n            [ { token: 'punctuation.definition.comment.end.soy',\n                regex: '\\\\*/',\n                next: 'pop' },\n              { defaultToken: 'comment.block.soy' } ] } ],\n      '#comment-doc': \n       [ { token: 'punctuation.definition.comment.begin.soy',\n           regex: '/\\\\*\\\\*(?!/)',\n           push: \n            [ { token: 'punctuation.definition.comment.end.soy',\n                regex: '\\\\*/',\n                next: 'pop' },\n              { token: [ 'support.type.soy', 'text', 'variable.parameter.soy' ],\n                regex: '(@param|@param\\\\?)(\\\\s+)(\\\\w+)' },\n              { defaultToken: 'comment.block.documentation.soy' } ] } ],\n      '#css': \n       [ { token: \n            [ 'punctuation.definition.tag.begin.soy',\n              'meta.tag.css.soy',\n              'entity.name.tag.soy' ],\n           regex: '(\\\\{/?)(\\\\s*)(css)\\\\b',\n           push: \n            [ { token: 'punctuation.definition.tag.end.soy',\n                regex: '\\\\}',\n                next: 'pop' },\n              { token: 'support.constant.soy',\n                regex: '\\\\b(?:LITERAL|REFERENCE|BACKEND_SPECIFIC|GOOG)\\\\b' },\n              { defaultToken: 'meta.tag.css.soy' } ] } ],\n      '#for': \n       [ { token: \n            [ 'punctuation.definition.tag.begin.soy',\n              'meta.tag.for.soy',\n              'entity.name.tag.soy' ],\n           regex: '(\\\\{/?)(\\\\s*)(for)\\\\b',\n           push: \n            [ { token: 'punctuation.definition.tag.end.soy',\n                regex: '\\\\}',\n                next: 'pop' },\n              { token: 'keyword.operator.soy', regex: '\\\\bin\\\\b' },\n              { token: 'support.function.soy', regex: '\\\\brange\\\\b' },\n              { include: '#variable' },\n              { include: '#number' },\n              { include: '#primitive' },\n              { defaultToken: 'meta.tag.for.soy' } ] } ],\n      '#foreach': \n       [ { token: \n            [ 'punctuation.definition.tag.begin.soy',\n              'meta.tag.foreach.soy',\n              'entity.name.tag.soy' ],\n           regex: '(\\\\{/?)(\\\\s*)(foreach)\\\\b',\n           push: \n            [ { token: 'punctuation.definition.tag.end.soy',\n                regex: '\\\\}',\n                next: 'pop' },\n              { token: 'keyword.operator.soy', regex: '\\\\bin\\\\b' },\n              { include: '#variable' },\n              { defaultToken: 'meta.tag.foreach.soy' } ] } ],\n      '#function': \n       [ { token: 'support.function.soy',\n           regex: '\\\\b(?:isFirst|isLast|index|hasData|length|keys|round|floor|ceiling|min|max|randomInt)\\\\b' } ],\n      '#if': \n       [ { token: \n            [ 'punctuation.definition.tag.begin.soy',\n              'meta.tag.if.soy',\n              'entity.name.tag.soy' ],\n           regex: '(\\\\{/?)(\\\\s*)(if|elseif)\\\\b',\n           push: \n            [ { token: 'punctuation.definition.tag.end.soy',\n                regex: '\\\\}',\n                next: 'pop' },\n              { include: '#variable' },\n              { include: '#operator' },\n              { include: '#function' },\n              { include: '#string-quoted-single' },\n              { include: '#string-quoted-double' },\n              { defaultToken: 'meta.tag.if.soy' } ] } ],\n      '#namespace': \n       [ { token: [ 'entity.name.tag.soy', 'text', 'variable.parameter.soy' ],\n           regex: '(namespace|delpackage)(\\\\s+)([\\\\w\\\\.]+)' } ],\n      '#number': [ { token: 'constant.numeric', regex: '[\\\\d]+' } ],\n      '#operator': \n       [ { token: 'keyword.operator.soy',\n           regex: '==|!=|\\\\band\\\\b|\\\\bor\\\\b|\\\\bnot\\\\b|-|\\\\+|/|\\\\?:' } ],\n      '#param': \n       [ { token: \n            [ 'punctuation.definition.tag.begin.soy',\n              'meta.tag.param.soy',\n              'entity.name.tag.soy' ],\n           regex: '(\\\\{/?)(\\\\s*)(param)',\n           push: \n            [ { token: 'punctuation.definition.tag.end.soy',\n                regex: '\\\\}',\n                next: 'pop' },\n              { include: '#variable' },\n              { token: \n                 [ 'entity.other.attribute-name.soy',\n                   'text',\n                   'keyword.operator.soy' ],\n                regex: '\\\\b([\\\\w]+)(\\\\s*)((?::)?)' },\n              { defaultToken: 'meta.tag.param.soy' } ] } ],\n      '#primitive': \n       [ { token: 'constant.language.soy',\n           regex: '\\\\b(?:null|false|true)\\\\b' } ],\n      '#msg': \n       [ { token: \n            [ 'punctuation.definition.tag.begin.soy',\n              'meta.tag.msg.soy',\n              'entity.name.tag.soy' ],\n           regex: '(\\\\{/?)(\\\\s*)(msg)\\\\b',\n           push: \n            [ { token: 'punctuation.definition.tag.end.soy',\n                regex: '\\\\}',\n                next: 'pop' },\n              { include: '#string-quoted-single' },\n              { include: '#string-quoted-double' },\n              { token: \n                 [ 'entity.other.attribute-name.soy',\n                   'text',\n                   'keyword.operator.soy' ],\n                regex: '\\\\b(meaning|desc)(\\\\s*)(=)' },\n              { defaultToken: 'meta.tag.msg.soy' } ] } ],\n      '#print': \n       [ { token: \n            [ 'punctuation.definition.tag.begin.soy',\n              'meta.tag.print.soy',\n              'entity.name.tag.soy' ],\n           regex: '(\\\\{/?)(\\\\s*)(print)\\\\b',\n           push: \n            [ { token: 'punctuation.definition.tag.end.soy',\n                regex: '\\\\}',\n                next: 'pop' },\n              { include: '#variable' },\n              { include: '#print-parameter' },\n              { include: '#number' },\n              { include: '#primitive' },\n              { include: '#attribute-lookup' },\n              { defaultToken: 'meta.tag.print.soy' } ] } ],\n      '#print-parameter': \n       [ { token: 'keyword.operator.soy', regex: '\\\\|' },\n         { token: 'variable.parameter.soy',\n           regex: 'noAutoescape|id|escapeHtml|escapeJs|insertWorkBreaks|truncate' } ],\n      '#special-character': \n       [ { token: 'support.constant.soy',\n           regex: '\\\\bsp\\\\b|\\\\bnil\\\\b|\\\\\\\\r|\\\\\\\\n|\\\\\\\\t|\\\\blb\\\\b|\\\\brb\\\\b' } ],\n      '#string-quoted-double': [ { token: 'string.quoted.double', regex: '\"[^\"]*\"' } ],\n      '#string-quoted-single': [ { token: 'string.quoted.single', regex: '\\'[^\\']*\\'' } ],\n      '#switch': \n       [ { token: \n            [ 'punctuation.definition.tag.begin.soy',\n              'meta.tag.switch.soy',\n              'entity.name.tag.soy' ],\n           regex: '(\\\\{/?)(\\\\s*)(switch|case)\\\\b',\n           push: \n            [ { token: 'punctuation.definition.tag.end.soy',\n                regex: '\\\\}',\n                next: 'pop' },\n              { include: '#variable' },\n              { include: '#function' },\n              { include: '#number' },\n              { include: '#string-quoted-single' },\n              { include: '#string-quoted-double' },\n              { defaultToken: 'meta.tag.switch.soy' } ] } ],\n      '#attribute-lookup': \n       [ { token: 'punctuation.definition.attribute-lookup.begin.soy',\n           regex: '\\\\[',\n           push: \n            [ { token: 'punctuation.definition.attribute-lookup.end.soy',\n                regex: '\\\\]',\n                next: 'pop' },\n              { include: '#variable' },\n              { include: '#function' },\n              { include: '#operator' },\n              { include: '#number' },\n              { include: '#primitive' },\n              { include: '#string-quoted-single' },\n              { include: '#string-quoted-double' } ] } ],\n      '#tag': \n       [ { token: 'punctuation.definition.tag.begin.soy',\n           regex: '\\\\{',\n           push: \n            [ { token: 'punctuation.definition.tag.end.soy',\n                regex: '\\\\}',\n                next: 'pop' },\n              { include: '#namespace' },\n              { include: '#variable' },\n              { include: '#special-character' },\n              { include: '#tag-simple' },\n              { include: '#function' },\n              { include: '#operator' },\n              { include: '#attribute-lookup' },\n              { include: '#number' },\n              { include: '#primitive' },\n              { include: '#print-parameter' } ] } ],\n      '#tag-simple': \n       [ { token: 'entity.name.tag.soy',\n           regex: '{{\\\\s*(?:literal|else|ifempty|default)\\\\s*(?=\\\\})'} ],\n      '#template': \n       [ { token: \n            [ 'punctuation.definition.tag.begin.soy',\n              'meta.tag.template.soy' ],\n           regex: '(\\\\{/?)(\\\\s*)(?=template|deltemplate)',\n           push: \n            [ { token: 'punctuation.definition.tag.end.soy',\n                regex: '\\\\}',\n                next: 'pop' },\n              { token: ['entity.name.tag.soy', 'text', 'entity.name.function.soy' ],\n                regex: '(template|deltemplate)(\\\\s+)([\\\\.\\\\w]+)',\n                originalRegex: '(?<=template|deltemplate)\\\\s+([\\\\.\\\\w]+)' },\n              { token: \n                 [ 'entity.other.attribute-name.soy',\n                   'text',\n                   'keyword.operator.soy',\n                   'text',\n                   'string.quoted.double.soy' ],\n                regex: '\\\\b(private)(\\\\s*)(=)(\\\\s*)(\"true\"|\"false\")' },\n              { token: \n                 [ 'entity.other.attribute-name.soy',\n                   'text',\n                   'keyword.operator.soy',\n                   'text',\n                   'string.quoted.single.soy' ],\n                regex: '\\\\b(private)(\\\\s*)(=)(\\\\s*)(\\'true\\'|\\'false\\')' },\n              { token: \n                 [ 'entity.other.attribute-name.soy',\n                   'text',\n                   'keyword.operator.soy',\n                   'text',\n                   'string.quoted.double.soy' ],\n                regex: '\\\\b(autoescape)(\\\\s*)(=)(\\\\s*)(\"true\"|\"false\"|\"contextual\")' },\n              { token: \n                 [ 'entity.other.attribute-name.soy',\n                   'text',\n                   'keyword.operator.soy',\n                   'text',\n                   'string.quoted.single.soy' ],\n                regex: '\\\\b(autoescape)(\\\\s*)(=)(\\\\s*)(\\'true\\'|\\'false\\'|\\'contextual\\')' },\n              { defaultToken: 'meta.tag.template.soy' } ] } ],\n      '#variable': [ { token: 'variable.other.soy', regex: '\\\\$[\\\\w\\\\.]+' } ] }\n    \n    \n    for (var i in soyRules) {\n        if (this.$rules[i]) {\n            this.$rules[i].unshift.apply(this.$rules[i], soyRules[i]);\n        } else {\n            this.$rules[i] = soyRules[i];\n        }\n    }\n    \n    this.normalizeRules();\n};\n\nSoyTemplateHighlightRules.metaData = { comment: 'SoyTemplate',\n      fileTypes: [ 'soy' ],\n      firstLineMatch: '\\\\{\\\\s*namespace\\\\b',\n      foldingStartMarker: '\\\\{\\\\s*template\\\\s+[^\\\\}]*\\\\}',\n      foldingStopMarker: '\\\\{\\\\s*/\\\\s*template\\\\s*\\\\}',\n      name: 'SoyTemplate',\n      scopeName: 'source.soy' }\n\n\noop.inherits(SoyTemplateHighlightRules, HtmlHighlightRules);\n\nexports.SoyTemplateHighlightRules = SoyTemplateHighlightRules;\n});\n\nace.define(\"ace/mode/soy_template\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/soy_template_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar HtmlMode = require(\"./html\").Mode;\nvar SoyTemplateHighlightRules = require(\"./soy_template_highlight_rules\").SoyTemplateHighlightRules;\n\nvar Mode = function() {\n    HtmlMode.call(this);\n    this.HighlightRules = SoyTemplateHighlightRules;\n};\noop.inherits(Mode, HtmlMode);\n\n(function() {\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n    this.$id = \"ace/mode/soy_template\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-space.js",
    "content": "ace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var range = this.indentationBlock(session, row);\n        if (range)\n            return range;\n\n        var re = /\\S/;\n        var line = session.getLine(row);\n        var startLevel = line.search(re);\n        if (startLevel == -1 || line[startLevel] != \"#\")\n            return;\n\n        var startColumn = line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var level = line.search(re);\n\n            if (level == -1)\n                continue;\n\n            if (line[level] != \"#\")\n                break;\n\n            endRow = row;\n        }\n\n        if (endRow > startRow) {\n            var endColumn = session.getLine(endRow).length;\n            return new Range(startRow, startColumn, endRow, endColumn);\n        }\n    };\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var indent = line.search(/\\S/);\n        var next = session.getLine(row + 1);\n        var prev = session.getLine(row - 1);\n        var prevIndent = prev.search(/\\S/);\n        var nextIndent = next.search(/\\S/);\n\n        if (indent == -1) {\n            session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n            return \"\";\n        }\n        if (prevIndent == -1) {\n            if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n                session.foldWidgets[row - 1] = \"\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"start\";\n            }\n        } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n            if (session.getLine(row - 2).search(/\\S/) == -1) {\n                session.foldWidgets[row - 1] = \"start\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"\";\n            }\n        }\n\n        if (prevIndent!= -1 && prevIndent < indent)\n            session.foldWidgets[row - 1] = \"start\";\n        else\n            session.foldWidgets[row - 1] = \"\";\n\n        if (indent < nextIndent)\n            return \"start\";\n        else\n            return \"\";\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/space_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar SpaceHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"empty_line\",\n                regex : / */,\n                next : \"key\"\n            },\n            {\n                token : \"empty_line\",\n                regex : /$/,\n                next : \"key\"\n            }\n        ],\n        \"key\" : [\n            {\n                token : \"variable\",\n                regex : /\\S+/\n            },\n            {\n                token : \"empty_line\",\n                regex : /$/,\n                next : \"start\"\n            },{\n                token : \"keyword.operator\",\n                regex : / /,\n                next  : \"value\"\n            }\n        ],\n        \"value\" : [\n            {\n                token : \"keyword.operator\",\n                regex : /$/,\n                next  : \"start\"\n            },\n            {\n                token : \"string\",\n                regex : /[^$]/\n            }\n        ]\n    };\n    \n};\n\noop.inherits(SpaceHighlightRules, TextHighlightRules);\n\nexports.SpaceHighlightRules = SpaceHighlightRules;\n});\n\nace.define(\"ace/mode/space\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/folding/coffee\",\"ace/mode/space_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar FoldMode = require(\"./folding/coffee\").FoldMode;\nvar SpaceHighlightRules = require(\"./space_highlight_rules\").SpaceHighlightRules;\nvar Mode = function() {\n    this.HighlightRules = SpaceHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function() {\n    \n    this.$id = \"ace/mode/space\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-sql.js",
    "content": "ace.define(\"ace/mode/sql_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar SqlHighlightRules = function() {\n\n    var keywords = (\n        \"select|insert|update|delete|from|where|and|or|group|by|order|limit|offset|having|as|case|\" +\n        \"when|else|end|type|left|right|join|on|outer|desc|asc|union|create|table|primary|key|if|\" +\n        \"foreign|not|references|default|null|inner|cross|natural|database|drop|grant\"\n    );\n\n    var builtinConstants = (\n        \"true|false\"\n    );\n\n    var builtinFunctions = (\n        \"avg|count|first|last|max|min|sum|ucase|lcase|mid|len|round|rank|now|format|\" + \n        \"coalesce|ifnull|isnull|nvl\"\n    );\n\n    var dataTypes = (\n        \"int|numeric|decimal|date|varchar|char|bigint|float|double|bit|binary|text|set|timestamp|\" +\n        \"money|real|number|integer\"\n    );\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": builtinFunctions,\n        \"keyword\": keywords,\n        \"constant.language\": builtinConstants,\n        \"storage.type\": dataTypes\n    }, \"identifier\", true);\n\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment\",\n            regex : \"--.*$\"\n        },  {\n            token : \"comment\",\n            start : \"/\\\\*\",\n            end : \"\\\\*/\"\n        }, {\n            token : \"string\",           // \" string\n            regex : '\".*?\"'\n        }, {\n            token : \"string\",           // ' string\n            regex : \"'.*?'\"\n        }, {\n            token : \"constant.numeric\", // float\n            regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n        }, {\n            token : keywordMapper,\n            regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n        }, {\n            token : \"keyword.operator\",\n            regex : \"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\"\n        }, {\n            token : \"paren.lparen\",\n            regex : \"[\\\\(]\"\n        }, {\n            token : \"paren.rparen\",\n            regex : \"[\\\\)]\"\n        }, {\n            token : \"text\",\n            regex : \"\\\\s+\"\n        } ]\n    };\n    this.normalizeRules();\n};\n\noop.inherits(SqlHighlightRules, TextHighlightRules);\n\nexports.SqlHighlightRules = SqlHighlightRules;\n});\n\nace.define(\"ace/mode/sql\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/sql_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar SqlHighlightRules = require(\"./sql_highlight_rules\").SqlHighlightRules;\n\nvar Mode = function() {\n    this.HighlightRules = SqlHighlightRules;\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"--\";\n\n    this.$id = \"ace/mode/sql\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-sqlserver.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/sqlserver_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar SqlServerHighlightRules = function() {\n    var logicalOperators = \"ALL|AND|ANY|BETWEEN|EXISTS|IN|LIKE|NOT|OR|SOME\";\n    logicalOperators += \"|NULL|IS|APPLY|INNER|OUTER|LEFT|RIGHT|JOIN|CROSS\"; //SSMS colors these gray too\n    \n\n    var builtinFunctions = (\n        \"OPENDATASOURCE|OPENQUERY|OPENROWSET|OPENXML|\" +\n        \"AVG|CHECKSUM_AGG|COUNT|COUNT_BIG|GROUPING|GROUPING_ID|MAX|MIN|STDEV|STDEVP|SUM|VAR|VARP|\" +\n        \"DENSE_RANK|NTILE|RANK|ROW_NUMBER\" +\n        \"@@DATEFIRST|@@DBTS|@@LANGID|@@LANGUAGE|@@LOCK_TIMEOUT|@@MAX_CONNECTIONS|@@MAX_PRECISION|@@NESTLEVEL|@@OPTIONS|@@REMSERVER|@@SERVERNAME|@@SERVICENAME|@@SPID|@@TEXTSIZE|@@VERSION|\" +\n        \"CAST|CONVERT|PARSE|TRY_CAST|TRY_CONVERT|TRY_PARSE\" +\n        \"@@CURSOR_ROWS|@@FETCH_STATUS|CURSOR_STATUS|\" +\n        \"@@DATEFIRST|@@LANGUAGE|CURRENT_TIMESTAMP|DATEADD|DATEDIFF|DATEFROMPARTS|DATENAME|DATEPART|DATETIME2FROMPARTS|DATETIMEFROMPARTS|DATETIMEOFFSETFROMPARTS|DAY|EOMONTH|GETDATE|GETUTCDATE|ISDATE|MONTH|SET DATEFIRST|SET DATEFORMAT|SET LANGUAGE|SMALLDATETIMEFROMPARTS|SP_HELPLANGUAGE|SWITCHOFFSET|SYSDATETIME|SYSDATETIMEOFFSET|SYSUTCDATETIME|TIMEFROMPARTS|TODATETIMEOFFSET|YEAR|\" +\n        \"CHOOSE|IIF|\" +\n        \"ABS|ACOS|ASIN|ATAN|ATN2|CEILING|COS|COT|DEGREES|EXP|FLOOR|LOG|LOG10|PI|POWER|RADIANS|RAND|ROUND|SIGN|SIN|SQRT|SQUARE|TAN|\" +\n        \"@@PROCID|APPLOCK_MODE|APPLOCK_TEST|APP_NAME|ASSEMBLYPROPERTY|COLUMNPROPERTY|COL_LENGTH|COL_NAME|DATABASEPROPERTYEX|DATABASE_PRINCIPAL_ID|DB_ID|DB_NAME|FILEGROUPPROPERTY|FILEGROUP_ID|FILEGROUP_NAME|FILEPROPERTY|FILE_ID|FILE_IDEX|FILE_NAME|FULLTEXTCATALOGPROPERTY|FULLTEXTSERVICEPROPERTY|INDEXKEY_PROPERTY|INDEXPROPERTY|INDEX_COL|OBJECTPROPERTY|OBJECTPROPERTYEX|OBJECT_DEFINITION|OBJECT_ID|OBJECT_NAME|OBJECT_SCHEMA_NAME|ORIGINAL_DB_NAME|PARSENAME|SCHEMA_ID|SCHEMA_NAME|SCOPE_IDENTITY|SERVERPROPERTY|STATS_DATE|TYPEPROPERTY|TYPE_ID|TYPE_NAME|\" +\n        \"CERTENCODED|CERTPRIVATEKEY|CURRENT_USER|DATABASE_PRINCIPAL_ID|HAS_PERMS_BY_NAME|IS_MEMBER|IS_ROLEMEMBER|IS_SRVROLEMEMBER|ORIGINAL_LOGIN|PERMISSIONS|PWDCOMPARE|PWDENCRYPT|SCHEMA_ID|SCHEMA_NAME|SESSION_USER|SUSER_ID|SUSER_NAME|SUSER_SID|SUSER_SNAME|SYS.FN_BUILTIN_PERMISSIONS|SYS.FN_GET_AUDIT_FILE|SYS.FN_MY_PERMISSIONS|SYSTEM_USER|USER_ID|USER_NAME|\" +\n        \"ASCII|CHAR|CHARINDEX|CONCAT|DIFFERENCE|FORMAT|LEN|LOWER|LTRIM|NCHAR|PATINDEX|QUOTENAME|REPLACE|REPLICATE|REVERSE|RTRIM|SOUNDEX|SPACE|STR|STUFF|SUBSTRING|UNICODE|UPPER|\" +\n        \"$PARTITION|@@ERROR|@@IDENTITY|@@PACK_RECEIVED|@@ROWCOUNT|@@TRANCOUNT|BINARY_CHECKSUM|CHECKSUM|CONNECTIONPROPERTY|CONTEXT_INFO|CURRENT_REQUEST_ID|ERROR_LINE|ERROR_MESSAGE|ERROR_NUMBER|ERROR_PROCEDURE|ERROR_SEVERITY|ERROR_STATE|FORMATMESSAGE|GETANSINULL|GET_FILESTREAM_TRANSACTION_CONTEXT|HOST_ID|HOST_NAME|ISNULL|ISNUMERIC|MIN_ACTIVE_ROWVERSION|NEWID|NEWSEQUENTIALID|ROWCOUNT_BIG|XACT_STATE|\" +\n        \"@@CONNECTIONS|@@CPU_BUSY|@@IDLE|@@IO_BUSY|@@PACKET_ERRORS|@@PACK_RECEIVED|@@PACK_SENT|@@TIMETICKS|@@TOTAL_ERRORS|@@TOTAL_READ|@@TOTAL_WRITE|FN_VIRTUALFILESTATS|\" +\n        \"PATINDEX|TEXTPTR|TEXTVALID|\" +\n        \"COALESCE|NULLIF\"\n    );\n    var dataTypes = (\"BIGINT|BINARY|BIT|CHAR|CURSOR|DATE|DATETIME|DATETIME2|DATETIMEOFFSET|DECIMAL|FLOAT|HIERARCHYID|IMAGE|INTEGER|INT|MONEY|NCHAR|NTEXT|NUMERIC|NVARCHAR|REAL|SMALLDATETIME|SMALLINT|SMALLMONEY|SQL_VARIANT|TABLE|TEXT|TIME|TIMESTAMP|TINYINT|UNIQUEIDENTIFIER|VARBINARY|VARCHAR|XML\");\n    var builtInStoredProcedures = \"sp_addextendedproc|sp_addextendedproperty|sp_addmessage|sp_addtype|sp_addumpdevice|sp_add_data_file_recover_suspect_db|sp_add_log_file_recover_suspect_db|sp_altermessage|sp_attach_db|sp_attach_single_file_db|sp_autostats|sp_bindefault|sp_bindrule|sp_bindsession|sp_certify_removable|sp_clean_db_file_free_space|sp_clean_db_free_space|sp_configure|sp_control_plan_guide|sp_createstats|sp_create_plan_guide|sp_create_plan_guide_from_handle|sp_create_removable|sp_cycle_errorlog|sp_datatype_info|sp_dbcmptlevel|sp_dbmmonitoraddmonitoring|sp_dbmmonitorchangealert|sp_dbmmonitorchangemonitoring|sp_dbmmonitordropalert|sp_dbmmonitordropmonitoring|sp_dbmmonitorhelpalert|sp_dbmmonitorhelpmonitoring|sp_dbmmonitorresults|sp_db_increased_partitions|sp_delete_backuphistory|sp_depends|sp_describe_first_result_set|sp_describe_undeclared_parameters|sp_detach_db|sp_dropdevice|sp_dropextendedproc|sp_dropextendedproperty|sp_dropmessage|sp_droptype|sp_execute|sp_executesql|sp_getapplock|sp_getbindtoken|sp_help|sp_helpconstraint|sp_helpdb|sp_helpdevice|sp_helpextendedproc|sp_helpfile|sp_helpfilegroup|sp_helpindex|sp_helplanguage|sp_helpserver|sp_helpsort|sp_helpstats|sp_helptext|sp_helptrigger|sp_indexoption|sp_invalidate_textptr|sp_lock|sp_monitor|sp_prepare|sp_prepexec|sp_prepexecrpc|sp_procoption|sp_recompile|sp_refreshview|sp_releaseapplock|sp_rename|sp_renamedb|sp_resetstatus|sp_sequence_get_range|sp_serveroption|sp_setnetname|sp_settriggerorder|sp_spaceused|sp_tableoption|sp_unbindefault|sp_unbindrule|sp_unprepare|sp_updateextendedproperty|sp_updatestats|sp_validname|sp_who|sys.sp_merge_xtp_checkpoint_files|sys.sp_xtp_bind_db_resource_pool|sys.sp_xtp_checkpoint_force_garbage_collection|sys.sp_xtp_control_proc_exec_stats|sys.sp_xtp_control_query_exec_stats|sys.sp_xtp_unbind_db_resource_pool\";\n    var keywords = \"ABSOLUTE|ACTION|ADA|ADD|ADMIN|AFTER|AGGREGATE|ALIAS|ALL|ALLOCATE|ALTER|AND|ANY|ARE|ARRAY|AS|ASC|ASENSITIVE|ASSERTION|ASYMMETRIC|AT|ATOMIC|AUTHORIZATION|BACKUP|BEFORE|BEGIN|BETWEEN|BIT_LENGTH|BLOB|BOOLEAN|BOTH|BREADTH|BREAK|BROWSE|BULK|BY|CALL|CALLED|CARDINALITY|CASCADE|CASCADED|CASE|CATALOG|CHARACTER|CHARACTER_LENGTH|CHAR_LENGTH|CHECK|CHECKPOINT|CLASS|CLOB|CLOSE|CLUSTERED|COALESCE|COLLATE|COLLATION|COLLECT|COLUMN|COMMIT|COMPLETION|COMPUTE|CONDITION|CONNECT|CONNECTION|CONSTRAINT|CONSTRAINTS|CONSTRUCTOR|CONTAINS|CONTAINSTABLE|CONTINUE|CORR|CORRESPONDING|COVAR_POP|COVAR_SAMP|CREATE|CROSS|CUBE|CUME_DIST|CURRENT|CURRENT_CATALOG|CURRENT_DATE|CURRENT_DEFAULT_TRANSFORM_GROUP|CURRENT_PATH|CURRENT_ROLE|CURRENT_SCHEMA|CURRENT_TIME|CURRENT_TRANSFORM_GROUP_FOR_TYPE|CYCLE|DATA|DATABASE|DBCC|DEALLOCATE|DEC|DECLARE|DEFAULT|DEFERRABLE|DEFERRED|DELETE|DENY|DEPTH|DEREF|DESC|DESCRIBE|DESCRIPTOR|DESTROY|DESTRUCTOR|DETERMINISTIC|DIAGNOSTICS|DICTIONARY|DISCONNECT|DISK|DISTINCT|DISTRIBUTED|DOMAIN|DOUBLE|DROP|DUMP|DYNAMIC|EACH|ELEMENT|ELSE|END|END-EXEC|EQUALS|ERRLVL|ESCAPE|EVERY|EXCEPT|EXCEPTION|EXEC|EXECUTE|EXISTS|EXIT|EXTERNAL|EXTRACT|FETCH|FILE|FILLFACTOR|FILTER|FIRST|FOR|FOREIGN|FORTRAN|FOUND|FREE|FREETEXT|FREETEXTTABLE|FROM|FULL|FULLTEXTTABLE|FUNCTION|FUSION|GENERAL|GET|GLOBAL|GO|GOTO|GRANT|GROUP|HAVING|HOLD|HOLDLOCK|HOST|HOUR|IDENTITY|IDENTITYCOL|IDENTITY_INSERT|IF|IGNORE|IMMEDIATE|IN|INCLUDE|INDEX|INDICATOR|INITIALIZE|INITIALLY|INNER|INOUT|INPUT|INSENSITIVE|INSERT|INTEGER|INTERSECT|INTERSECTION|INTERVAL|INTO|IS|ISOLATION|ITERATE|JOIN|KEY|KILL|LANGUAGE|LARGE|LAST|LATERAL|LEADING|LESS|LEVEL|LIKE|LIKE_REGEX|LIMIT|LINENO|LN|LOAD|LOCAL|LOCALTIME|LOCALTIMESTAMP|LOCATOR|MAP|MATCH|MEMBER|MERGE|METHOD|MINUTE|MOD|MODIFIES|MODIFY|MODULE|MULTISET|NAMES|NATIONAL|NATURAL|NCLOB|NEW|NEXT|NO|NOCHECK|NONCLUSTERED|NONE|NORMALIZE|NOT|NULL|NULLIF|OBJECT|OCCURRENCES_REGEX|OCTET_LENGTH|OF|OFF|OFFSETS|OLD|ON|ONLY|OPEN|OPERATION|OPTION|OR|ORDER|ORDINALITY|OUT|OUTER|OUTPUT|OVER|OVERLAPS|OVERLAY|PAD|PARAMETER|PARAMETERS|PARTIAL|PARTITION|PASCAL|PATH|PERCENT|PERCENTILE_CONT|PERCENTILE_DISC|PERCENT_RANK|PIVOT|PLAN|POSITION|POSITION_REGEX|POSTFIX|PRECISION|PREFIX|PREORDER|PREPARE|PRESERVE|PRIMARY|PRINT|PRIOR|PRIVILEGES|PROC|PROCEDURE|PUBLIC|RAISERROR|RANGE|READ|READS|READTEXT|RECONFIGURE|RECURSIVE|REF|REFERENCES|REFERENCING|REGR_AVGX|REGR_AVGY|REGR_COUNT|REGR_INTERCEPT|REGR_R2|REGR_SLOPE|REGR_SXX|REGR_SXY|REGR_SYY|RELATIVE|RELEASE|REPLICATION|RESTORE|RESTRICT|RESULT|RETURN|RETURNS|REVERT|REVOKE|ROLE|ROLLBACK|ROLLUP|ROUTINE|ROW|ROWCOUNT|ROWGUIDCOL|ROWS|RULE|SAVE|SAVEPOINT|SCHEMA|SCOPE|SCROLL|SEARCH|SECOND|SECTION|SECURITYAUDIT|SELECT|SEMANTICKEYPHRASETABLE|SEMANTICSIMILARITYDETAILSTABLE|SEMANTICSIMILARITYTABLE|SENSITIVE|SEQUENCE|SESSION|SET|SETS|SETUSER|SHUTDOWN|SIMILAR|SIZE|SOME|SPECIFIC|SPECIFICTYPE|SQL|SQLCA|SQLCODE|SQLERROR|SQLEXCEPTION|SQLSTATE|SQLWARNING|START|STATE|STATEMENT|STATIC|STATISTICS|STDDEV_POP|STDDEV_SAMP|STRUCTURE|SUBMULTISET|SUBSTRING_REGEX|SYMMETRIC|SYSTEM|TABLESAMPLE|TEMPORARY|TERMINATE|TEXTSIZE|THAN|THEN|TIMEZONE_HOUR|TIMEZONE_MINUTE|TO|TOP|TRAILING|TRAN|TRANSACTION|TRANSLATE|TRANSLATE_REGEX|TRANSLATION|TREAT|TRIGGER|TRIM|TRUNCATE|TSEQUAL|UESCAPE|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNPIVOT|UPDATE|UPDATETEXT|USAGE|USE|USER|USING|VALUE|VALUES|VARIABLE|VARYING|VAR_POP|VAR_SAMP|VIEW|WAITFOR|WHEN|WHENEVER|WHERE|WHILE|WIDTH_BUCKET|WINDOW|WITH|WITHIN|WITHIN GROUP|WITHOUT|WORK|WRITE|WRITETEXT|XMLAGG|XMLATTRIBUTES|XMLBINARY|XMLCAST|XMLCOMMENT|XMLCONCAT|XMLDOCUMENT|XMLELEMENT|XMLEXISTS|XMLFOREST|XMLITERATE|XMLNAMESPACES|XMLPARSE|XMLPI|XMLQUERY|XMLSERIALIZE|XMLTABLE|XMLTEXT|XMLVALIDATE|ZONE\";\n    keywords += \"|KEEPIDENTITY|KEEPDEFAULTS|IGNORE_CONSTRAINTS|IGNORE_TRIGGERS|XLOCK|FORCESCAN|FORCESEEK|HOLDLOCK|NOLOCK|NOWAIT|PAGLOCK|READCOMMITTED|READCOMMITTEDLOCK|READPAST|READUNCOMMITTED|REPEATABLEREAD|ROWLOCK|SERIALIZABLE|SNAPSHOT|SPATIAL_WINDOW_MAX_CELLS|TABLOCK|TABLOCKX|UPDLOCK|XLOCK|IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX|EXPAND|VIEWS|FAST|FORCE|KEEP|KEEPFIXED|MAXDOP|MAXRECURSION|OPTIMIZE|PARAMETERIZATION|SIMPLE|FORCED|RECOMPILE|ROBUST|PLAN|SPATIAL_WINDOW_MAX_CELLS|NOEXPAND|HINT\";\n    keywords += \"|LOOP|HASH|MERGE|REMOTE\";\n    keywords += \"|TRY|CATCH|THROW\";\n    keywords += \"|TYPE\";\n    keywords = keywords.split('|');\n    keywords = keywords.filter(function(value, index, self) {\n        return logicalOperators.split('|').indexOf(value) === -1 && builtinFunctions.split('|').indexOf(value) === -1 && dataTypes.split('|').indexOf(value) === -1;\n    });\n    keywords = keywords.sort().join('|');\n    \n    \n    var keywordMapper = this.createKeywordMapper({\n        \"constant.language\": logicalOperators,\n        \"storage.type\": dataTypes,\n        \"support.function\": builtinFunctions,\n        \"support.storedprocedure\": builtInStoredProcedures,\n        \"keyword\": keywords\n    }, \"identifier\", true);\n    var setStatements = \"SET ANSI_DEFAULTS|SET ANSI_NULLS|SET ANSI_NULL_DFLT_OFF|SET ANSI_NULL_DFLT_ON|SET ANSI_PADDING|SET ANSI_WARNINGS|SET ARITHABORT|SET ARITHIGNORE|SET CONCAT_NULL_YIELDS_NULL|SET CURSOR_CLOSE_ON_COMMIT|SET DATEFIRST|SET DATEFORMAT|SET DEADLOCK_PRIORITY|SET FIPS_FLAGGER|SET FMTONLY|SET FORCEPLAN|SET IDENTITY_INSERT|SET IMPLICIT_TRANSACTIONS|SET LANGUAGE|SET LOCK_TIMEOUT|SET NOCOUNT|SET NOEXEC|SET NUMERIC_ROUNDABORT|SET OFFSETS|SET PARSEONLY|SET QUERY_GOVERNOR_COST_LIMIT|SET QUOTED_IDENTIFIER|SET REMOTE_PROC_TRANSACTIONS|SET ROWCOUNT|SET SHOWPLAN_ALL|SET SHOWPLAN_TEXT|SET SHOWPLAN_XML|SET STATISTICS IO|SET STATISTICS PROFILE|SET STATISTICS TIME|SET STATISTICS XML|SET TEXTSIZE|SET XACT_ABORT\".split('|');\n    var isolationLevels = \"READ UNCOMMITTED|READ COMMITTED|REPEATABLE READ|SNAPSHOP|SERIALIZABLE\".split('|');\n    for (var i = 0; i < isolationLevels.length; i++) {\n        setStatements.push('SET TRANSACTION ISOLATION LEVEL ' + isolationLevels[i]);\n    }\n    \n    \n    this.$rules = {\n        start: [{\n            token: \"string.start\",\n            regex: \"'\",\n            next: [{\n                token: \"constant.language.escape\",\n                regex: /''/\n            }, {\n                token: \"string.end\",\n                next: \"start\",\n                regex: \"'\"\n            }, {\n                defaultToken: \"string\"\n            }]\n        },\n        DocCommentHighlightRules.getStartRule(\"doc-start\"), {\n            token: \"comment\",\n            regex: \"--.*$\"\n        }, {\n            token: \"comment\",\n            start: \"/\\\\*\",\n            end: \"\\\\*/\"\n        }, {\n            token: \"constant.numeric\", // float\n            regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n        }, {\n            token: keywordMapper,\n            regex: \"@{0,2}[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b(?!])\" //up to 2 @symbols for some built in functions\n        }, {\n            token: \"constant.class\",\n            regex: \"@@?[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n        }, {\n            token: \"keyword.operator\",\n            regex: \"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=|\\\\*\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"[\\\\(]\"\n        }, {\n            token: \"paren.rparen\",\n            regex: \"[\\\\)]\"\n        }, {\n            token: \"punctuation\",\n            regex: \",|;\"\n        }, {\n            token: \"text\",\n            regex: \"\\\\s+\"\n        }],\n        comment: [\n        DocCommentHighlightRules.getTagRule(), {\n            token: \"comment\",\n            regex: \"\\\\*\\\\/\",\n            next: \"no_regex\"\n        }, {\n            defaultToken: \"comment\",\n            caseInsensitive: true\n        }]\n    };\n    for (var i = 0; i < setStatements.length; i++) {\n        this.$rules.start.unshift({\n            token: \"set.statement\",\n            regex: setStatements[i]\n        });\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"start\")]);\n    this.normalizeRules();\n    var completions = [];\n    var addCompletions = function(arr, meta) {\n        arr.forEach(function(v) {\n            completions.push({\n                name: v,\n                value: v,\n                score: 0,\n                meta: meta\n            });\n        });\n    };\n    addCompletions(builtInStoredProcedures.split('|'), 'procedure');\n    addCompletions(logicalOperators.split('|'), 'operator');\n    addCompletions(builtinFunctions.split('|'), 'function');\n    addCompletions(dataTypes.split('|'), 'type');\n    addCompletions(setStatements, 'statement');\n    addCompletions(keywords.split('|'), 'keyword');\n    \n    this.completions = completions;\n};\n\noop.inherits(SqlServerHighlightRules, TextHighlightRules);\n\nexports.SqlHighlightRules = SqlServerHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/sqlserver\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./cstyle\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function() {};\n\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\bCASE\\b|\\bBEGIN\\b)|^\\s*(\\/\\*)/i;\n    this.startRegionRe = /^\\s*(\\/\\*|--)#?region\\b/;\n    \n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n    \n        if (this.startRegionRe.test(line)) return this.getCommentRegionBlock(session, line, row);\n    \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n            if (match[1]) return this.getBeginEndBlock(session, row, i, match[1]);\n    \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                }\n                else if (foldStyle != \"all\") range = null;\n            }\n    \n            return range;\n        }\n    \n        if (foldStyle === \"markbegin\") return;\n        return;\n    };\n    this.getBeginEndBlock = function(session, row, column, matchSequence) {\n        var start = {\n            row: row,\n            column: column + matchSequence.length\n        };\n        var maxRow = session.getLength();\n        var line;\n    \n        var depth = 1;\n        var re = /(\\bCASE\\b|\\bBEGIN\\b)|(\\bEND\\b)/i;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth++;\n            else depth--;\n    \n            if (!depth) break;\n        }\n        var endRow = row;\n        if (endRow > start.row) {\n            return new Range(start.row, start.column, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/sqlserver\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/sqlserver_highlight_rules\",\"ace/mode/folding/sqlserver\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar SqlServerHighlightRules = require(\"./sqlserver_highlight_rules\").SqlHighlightRules;\nvar SqlServerFoldMode = require(\"./folding/sqlserver\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = SqlServerHighlightRules;\n    this.foldingRules = new SqlServerFoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"--\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n    this.getCompletions = function(state, session, pos, prefix) {\n        return session.$mode.$highlightRules.completions;\n    };\n    \n    this.$id = \"ace/mode/sql\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-stylus.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/stylus_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\",\"ace/mode/css_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar CssHighlightRules = require(\"./css_highlight_rules\");\n\nvar StylusHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.type\": CssHighlightRules.supportType,\n        \"support.function\": CssHighlightRules.supportFunction,\n        \"support.constant\": CssHighlightRules.supportConstant,\n        \"support.constant.color\": CssHighlightRules.supportConstantColor,\n        \"support.constant.fonts\": CssHighlightRules.supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n    start: [\n        {\n            token : \"comment\",\n            regex : /\\/\\/.*$/\n        },\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next : \"comment\"\n        },\n        {\n            token: [\"entity.name.function.stylus\", \"text\"],\n            regex: \"^([-a-zA-Z_][-\\\\w]*)?(\\\\()\"\n        },\n        {\n            token: [\"entity.other.attribute-name.class.stylus\"],\n            regex: \"\\\\.-?[_a-zA-Z]+[_a-zA-Z0-9-]*\"\n        },\n        {\n            token: [\"entity.language.stylus\"],\n            regex: \"^ *&\"\n        },\n        {\n            token: [\"variable.language.stylus\"],\n            regex: \"(arguments)\"\n        },\n        {\n            token: [\"keyword.stylus\"],\n            regex: \"@[-\\\\w]+\"\n        },\n        {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : CssHighlightRules.pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : CssHighlightRules.pseudoClasses\n        }, \n        {\n            token: [\"entity.name.tag.stylus\"],\n            regex: \"(?:\\\\b)(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(?:h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|samp|script|section|select|small|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)(?:\\\\b)\"\n        },\n        {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, \n        {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, \n        {\n            token: [\"punctuation.definition.entity.stylus\", \"entity.other.attribute-name.id.stylus\"],\n            regex: \"(#)([a-zA-Z][a-zA-Z0-9_-]*)\"\n        },\n        {\n            token: \"meta.vendor-prefix.stylus\",\n            regex: \"-webkit-|-moz\\\\-|-ms-|-o-\"\n        },\n        {\n            token: \"keyword.control.stylus\",\n            regex: \"(?:!important|for|in|return|true|false|null|if|else|unless|return)\\\\b\"\n        },\n        {\n            token: \"keyword.operator.stylus\",\n            regex: \"!|~|\\\\+|-|(?:\\\\*)?\\\\*|\\\\/|%|(?:\\\\.)\\\\.\\\\.|<|>|(?:=|:|\\\\?|\\\\+|-|\\\\*|\\\\/|%|<|>)?=|!=\"\n        },\n        {\n            token: \"keyword.operator.stylus\",\n            regex: \"(?:in|is(?:nt)?|not)\\\\b\"\n        },\n        {\n            token : \"string\",\n            regex : \"'(?=.)\",\n            next  : \"qstring\"\n        }, {\n            token : \"string\",\n            regex : '\"(?=.)',\n            next  : \"qqstring\"\n        }, \n        {\n            token : \"constant.numeric\",\n            regex : CssHighlightRules.numRe\n        }, \n        {\n            token : \"keyword\",\n            regex : \"(?:ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\\\\b\"\n        }, \n        {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }\n    ],\n    \"comment\" : [\n        {\n            token : \"comment\", // closing comment\n            regex : \".*?\\\\*\\\\/\",\n            next : \"start\"\n        }, {\n            token : \"comment\", // comment spanning whole line\n            regex : \".+\"\n        }\n    ],\n    \"qqstring\" : [\n        {\n            token : \"string\",\n            regex : '[^\"\\\\\\\\]+'\n        }, \n        {\n            token : \"string\",\n            regex : \"\\\\\\\\$\",\n            next  : \"qqstring\"\n        }, \n        {\n            token : \"string\",\n            regex : '\"|$',\n            next  : \"start\"\n        }\n    ],\n    \"qstring\" : [\n        {\n            token : \"string\",\n            regex : \"[^'\\\\\\\\]+\"\n        }, \n        {\n            token : \"string\",\n            regex : \"\\\\\\\\$\",\n            next  : \"qstring\"\n        }, \n        {\n            token : \"string\",\n            regex : \"'|$\",\n            next  : \"start\"\n        }\n    ]\n}\n\n};\n\noop.inherits(StylusHighlightRules, TextHighlightRules);\n\nexports.StylusHighlightRules = StylusHighlightRules;\n});\n\nace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var range = this.indentationBlock(session, row);\n        if (range)\n            return range;\n\n        var re = /\\S/;\n        var line = session.getLine(row);\n        var startLevel = line.search(re);\n        if (startLevel == -1 || line[startLevel] != \"#\")\n            return;\n\n        var startColumn = line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var level = line.search(re);\n\n            if (level == -1)\n                continue;\n\n            if (line[level] != \"#\")\n                break;\n\n            endRow = row;\n        }\n\n        if (endRow > startRow) {\n            var endColumn = session.getLine(endRow).length;\n            return new Range(startRow, startColumn, endRow, endColumn);\n        }\n    };\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var indent = line.search(/\\S/);\n        var next = session.getLine(row + 1);\n        var prev = session.getLine(row - 1);\n        var prevIndent = prev.search(/\\S/);\n        var nextIndent = next.search(/\\S/);\n\n        if (indent == -1) {\n            session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n            return \"\";\n        }\n        if (prevIndent == -1) {\n            if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n                session.foldWidgets[row - 1] = \"\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"start\";\n            }\n        } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n            if (session.getLine(row - 2).search(/\\S/) == -1) {\n                session.foldWidgets[row - 1] = \"start\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"\";\n            }\n        }\n\n        if (prevIndent!= -1 && prevIndent < indent)\n            session.foldWidgets[row - 1] = \"start\";\n        else\n            session.foldWidgets[row - 1] = \"\";\n\n        if (indent < nextIndent)\n            return \"start\";\n        else\n            return \"\";\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/stylus\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/stylus_highlight_rules\",\"ace/mode/folding/coffee\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar StylusHighlightRules = require(\"./stylus_highlight_rules\").StylusHighlightRules;\nvar FoldMode = require(\"./folding/coffee\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = StylusHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n    \n    this.$id = \"ace/mode/stylus\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-svg.js",
    "content": "ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nvar XmlBehaviour = function () {\n\n    this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '\"' || text == \"'\") {\n            var quote = text;\n            var selected = session.doc.getTextRange(editor.getSelectionRange());\n            if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n                return {\n                    text: quote + selected + quote,\n                    selection: false\n                };\n            }\n\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n                return {\n                    text: \"\",\n                    selection: [1, 1]\n                };\n            }\n\n            if (!token)\n                token = iterator.stepBackward();\n\n            if (!token)\n                return;\n\n            while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n                token = iterator.stepBackward();\n            }\n            var rightSpace = !rightChar || rightChar.match(/\\s/);\n            if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n                return {\n                    text: quote + quote,\n                    selection: [1, 1]\n                };\n            }\n        }\n    });\n\n    this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == selected) {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n\n    this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '>') {\n            var position = editor.getSelectionRange().start;\n            var iterator = new TokenIterator(session, position.row, position.column);\n            var token = iterator.getCurrentToken() || iterator.stepBackward();\n            if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n                return;\n            if (is(token, \"reference.attribute-value\"))\n                return;\n            if (is(token, \"attribute-value\")) {\n                var firstChar = token.value.charAt(0);\n                if (firstChar == '\"' || firstChar == \"'\") {\n                    var lastChar = token.value.charAt(token.value.length - 1);\n                    var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;\n                    if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)\n                        return;\n                }\n            }\n            while (!is(token, \"tag-name\")) {\n                token = iterator.stepBackward();\n                if (token.value == \"<\") {\n                    token = iterator.stepForward();\n                    break;\n                }\n            }\n\n            var tokenRow = iterator.getCurrentTokenRow();\n            var tokenColumn = iterator.getCurrentTokenColumn();\n            if (is(iterator.stepBackward(), \"end-tag-open\"))\n                return;\n\n            var element = token.value;\n            if (tokenRow == position.row)\n                element = element.substring(0, position.column - tokenColumn);\n\n            if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n                 return;\n\n            return {\n               text: \">\" + \"</\" + element + \">\",\n               selection: [1, 1]\n            };\n        }\n    });\n\n    this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == \"\\n\") {\n            var cursor = editor.getCursorPosition();\n            var line = session.getLine(cursor.row);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (token && token.type.indexOf(\"tag-close\") !== -1) {\n                if (token.value == \"/>\")\n                    return;\n                while (token && token.type.indexOf(\"tag-name\") === -1) {\n                    token = iterator.stepBackward();\n                }\n\n                if (!token) {\n                    return;\n                }\n\n                var tag = token.value;\n                var row = iterator.getCurrentTokenRow();\n                token = iterator.stepBackward();\n                if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n                    return;\n                }\n\n                if (this.voidElements && !this.voidElements[tag]) {\n                    var nextToken = session.getTokenAt(cursor.row, cursor.column+1);\n                    var line = session.getLine(row);\n                    var nextIndent = this.$getIndent(line);\n                    var indent = nextIndent + session.getTabString();\n\n                    if (nextToken && nextToken.value === \"</\") {\n                        return {\n                            text: \"\\n\" + indent + \"\\n\" + nextIndent,\n                            selection: [1, indent.length, 1, indent.length]\n                        };\n                    } else {\n                        return {\n                            text: \"\\n\" + indent\n                        };\n                    }\n                }\n            }\n        }\n    });\n\n};\n\noop.inherits(XmlBehaviour, Behaviour);\n\nexports.XmlBehaviour = XmlBehaviour;\n});\n\nace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar lang = require(\"../../lib/lang\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalEndTags) {\n    BaseFoldMode.call(this);\n    this.voidElements = voidElements || {};\n    this.optionalEndTags = oop.mixin({}, this.voidElements);\n    if (optionalEndTags)\n        oop.mixin(this.optionalEndTags, optionalEndTags);\n    \n};\noop.inherits(FoldMode, BaseFoldMode);\n\nvar Tag = function() {\n    this.tagName = \"\";\n    this.closing = false;\n    this.selfClosing = false;\n    this.start = {row: 0, column: 0};\n    this.end = {row: 0, column: 0};\n};\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\n(function() {\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var tag = this._getFirstTagInLine(session, row);\n\n        if (!tag)\n            return \"\";\n\n        if (tag.closing || (!tag.tagName && tag.selfClosing))\n            return foldStyle == \"markbeginend\" ? \"end\" : \"\";\n\n        if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n            return \"\";\n\n        if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n            return \"\";\n\n        return \"start\";\n    };\n    this._getFirstTagInLine = function(session, row) {\n        var tokens = session.getTokens(row);\n        var tag = new Tag();\n\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            if (is(token, \"tag-open\")) {\n                tag.end.column = tag.start.column + token.value.length;\n                tag.closing = is(token, \"end-tag-open\");\n                token = tokens[++i];\n                if (!token)\n                    return null;\n                tag.tagName = token.value;\n                tag.end.column += token.value.length;\n                for (i++; i < tokens.length; i++) {\n                    token = tokens[i];\n                    tag.end.column += token.value.length;\n                    if (is(token, \"tag-close\")) {\n                        tag.selfClosing = token.value == '/>';\n                        break;\n                    }\n                }\n                return tag;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == '/>';\n                return tag;\n            }\n            tag.start.column += token.value.length;\n        }\n\n        return null;\n    };\n\n    this._findEndTagInLine = function(session, row, tagName, startColumn) {\n        var tokens = session.getTokens(row);\n        var column = 0;\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            column += token.value.length;\n            if (column < startColumn)\n                continue;\n            if (is(token, \"end-tag-open\")) {\n                token = tokens[i + 1];\n                if (token && token.value == tagName)\n                    return true;\n            }\n        }\n        return false;\n    };\n    this._readTagForward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n                iterator.stepForward();\n                return tag;\n            }\n        } while(token = iterator.stepForward());\n\n        return null;\n    };\n    \n    this._readTagBackward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n                iterator.stepBackward();\n                return tag;\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n            }\n        } while(token = iterator.stepBackward());\n\n        return null;\n    };\n    \n    this._pop = function(stack, tag) {\n        while (stack.length) {\n            \n            var top = stack[stack.length-1];\n            if (!tag || top.tagName == tag.tagName) {\n                return stack.pop();\n            }\n            else if (this.optionalEndTags.hasOwnProperty(top.tagName)) {\n                stack.pop();\n                continue;\n            } else {\n                return null;\n            }\n        }\n    };\n    \n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var firstTag = this._getFirstTagInLine(session, row);\n        \n        if (!firstTag)\n            return null;\n        \n        var isBackward = firstTag.closing || firstTag.selfClosing;\n        var stack = [];\n        var tag;\n        \n        if (!isBackward) {\n            var iterator = new TokenIterator(session, row, firstTag.start.column);\n            var start = {\n                row: row,\n                column: firstTag.start.column + firstTag.tagName.length + 2\n            };\n            if (firstTag.start.row == firstTag.end.row)\n                start.column = firstTag.end.column;\n            while (tag = this._readTagForward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0)\n                        return Range.fromPoints(start, tag.start);\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        else {\n            var iterator = new TokenIterator(session, row, firstTag.end.column);\n            var end = {\n                row: row,\n                column: firstTag.start.column\n            };\n            \n            while (tag = this._readTagBackward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (!tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0) {\n                        tag.start.column += tag.tagName.length + 2;\n                        if (tag.start.row == tag.end.row && tag.start.column < tag.end.column)\n                            tag.start.column = tag.end.column;\n                        return Range.fromPoints(tag.start, end);\n                    }\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        \n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar XmlFoldMode = require(\"./folding/xml\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\n\nvar Mode = function() {\n   this.HighlightRules = XmlHighlightRules;\n   this.$behaviour = new XmlBehaviour();\n   this.foldingRules = new XmlFoldMode();\n};\n\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.voidElements = lang.arrayToMap([]);\n\n    this.blockComment = {start: \"<!--\", end: \"-->\"};\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/xml_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"error\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n    \n    this.$id = \"ace/mode/xml\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/svg_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar SvgHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.embedTagRules(JavaScriptHighlightRules, \"js-\", \"script\");\n\n    this.normalizeRules();\n};\n\noop.inherits(SvgHighlightRules, XmlHighlightRules);\n\nexports.SvgHighlightRules = SvgHighlightRules;\n});\n\nace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(defaultMode, subModes) {\n    this.defaultMode = defaultMode;\n    this.subModes = subModes;\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n\n    this.$getMode = function(state) {\n        if (typeof state != \"string\") \n            state = state[0];\n        for (var key in this.subModes) {\n            if (state.indexOf(key) === 0)\n                return this.subModes[key];\n        }\n        return null;\n    };\n    \n    this.$tryMode = function(state, session, foldStyle, row) {\n        var mode = this.$getMode(state);\n        return (mode ? mode.getFoldWidget(session, foldStyle, row) : \"\");\n    };\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        return (\n            this.$tryMode(session.getState(row-1), session, foldStyle, row) ||\n            this.$tryMode(session.getState(row), session, foldStyle, row) ||\n            this.defaultMode.getFoldWidget(session, foldStyle, row)\n        );\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var mode = this.$getMode(session.getState(row-1));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.$getMode(session.getState(row));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.defaultMode;\n        \n        return mode.getFoldWidgetRange(session, foldStyle, row);\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/svg\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/xml\",\"ace/mode/javascript\",\"ace/mode/svg_highlight_rules\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar XmlMode = require(\"./xml\").Mode;\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar SvgHighlightRules = require(\"./svg_highlight_rules\").SvgHighlightRules;\nvar MixedFoldMode = require(\"./folding/mixed\").FoldMode;\nvar XmlFoldMode = require(\"./folding/xml\").FoldMode;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    XmlMode.call(this);\n    \n    this.HighlightRules = SvgHighlightRules;\n    \n    this.createModeDelegates({\n        \"js-\": JavaScriptMode\n    });\n    \n    this.foldingRules = new MixedFoldMode(new XmlFoldMode(), {\n        \"js-\": new CStyleFoldMode()\n    });\n};\n\noop.inherits(Mode, XmlMode);\n\n(function() {\n\n    this.getNextLineIndent = function(state, line, tab) {\n        return this.$getIndent(line);\n    };\n    \n\n    this.$id = \"ace/mode/svg\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-swift.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/swift_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar SwiftHighlightRules = function() {\n   var keywordMapper = this.createKeywordMapper({\n        \"variable.language\": \"\",\n        \"keyword\": \"__COLUMN__|__FILE__|__FUNCTION__|__LINE__\"\n            + \"|as|associativity|break|case|class|continue|default|deinit|didSet\"\n            + \"|do|dynamicType|else|enum|extension|fallthrough|for|func|get|if|import\"\n            + \"|in|infix|init|inout|is|left|let|let|mutating|new|none|nonmutating\"\n            + \"|operator|override|postfix|precedence|prefix|protocol|return|right\"\n            + \"|safe|Self|self|set|struct|subscript|switch|Type|typealias\"\n            + \"|unowned|unsafe|var|weak|where|while|willSet\"\n            + \"|convenience|dynamic|final|infix|lazy|mutating|nonmutating|optional|override|postfix\"\n            + \"|prefix|required|static|guard|defer\",\n        \"storage.type\": \"bool|double|Double\"\n            + \"|extension|float|Float|int|Int|private|public|string|String\",\n        \"constant.language\":\n            \"false|Infinity|NaN|nil|no|null|null|off|on|super|this|true|undefined|yes\",\n        \"support.function\":\n            \"\"\n    }, \"identifier\");\n    \n    function string(start, options) {\n        var nestable = options.nestable || options.interpolation;\n        var interpStart = options.interpolation && options.interpolation.nextState || \"start\";\n        var mainRule = {\n            regex: start + (options.multiline ? \"\" : \"(?=.)\"),\n            token: \"string.start\"\n        };\n        var nextState = [\n            options.escape && {\n                regex: options.escape,\n                token: \"character.escape\"\n            },\n            options.interpolation && {\n                token : \"paren.quasi.start\",\n                regex : lang.escapeRegExp(options.interpolation.lead + options.interpolation.open),\n                push  : interpStart\n            },\n            options.error && {\n                regex: options.error,\n                token: \"error.invalid\"\n            }, \n            {\n                regex: start + (options.multiline ? \"\" : \"|$\"),\n                token: \"string.end\",\n                next: nestable ? \"pop\" : \"start\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ].filter(Boolean);\n        \n        if (nestable)\n            mainRule.push = nextState;\n        else\n            mainRule.next = nextState;\n        \n        if (!options.interpolation)\n            return mainRule;\n        \n        var open = options.interpolation.open;\n        var close = options.interpolation.close;\n        var counter = {\n            regex: \"[\" + lang.escapeRegExp(open + close) + \"]\",\n            onMatch: function(val, state, stack) {\n                this.next = val == open ? this.nextState : \"\";\n                if (val == open && stack.length) {\n                    stack.unshift(\"start\", state);\n                    return \"paren\";\n                }\n                if (val == close && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == open ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: interpStart\n        } \n        return [counter, mainRule];\n    }\n    \n    function comments() {\n        return [{\n                token : \"comment\",\n                regex : \"\\\\/\\\\/(?=.)\",\n                next : [\n                    DocCommentHighlightRules.getTagRule(),\n                    {token : \"comment\", regex : \"$|^\", next: \"start\"},\n                    {defaultToken : \"comment\", caseInsensitive: true}\n                ]\n            },\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            {\n                token : \"comment.start\",\n                regex : /\\/\\*/,\n                stateName: \"nested_comment\",\n                push : [\n                    DocCommentHighlightRules.getTagRule(),\n                    {token : \"comment.start\", regex : /\\/\\*/, push: \"nested_comment\"},\n                    {token : \"comment.end\", regex : \"\\\\*\\\\/\", next : \"pop\"},\n                    {defaultToken : \"comment\", caseInsensitive: true}\n                ]\n            }\n        ];\n    }\n    \n\n    this.$rules = {\n        start: [\n            string('\"', {\n                escape: /\\\\(?:[0\\\\tnr\"']|u{[a-fA-F1-9]{0,8}})/,\n                interpolation: {lead: \"\\\\\", open: \"(\", close: \")\"},\n                error: /\\\\./,\n                multiline: false\n            }),\n            comments({type: \"c\", nestable: true}),\n            {\n                 regex: /@[a-zA-Z_$][a-zA-Z_$\\d\\u0080-\\ufffe]*/,\n                 token: \"variable.parameter\"\n            },\n            {\n                regex: /[a-zA-Z_$][a-zA-Z_$\\d\\u0080-\\ufffe]*/,\n                token: keywordMapper\n            },  \n            {\n                token : \"constant.numeric\", \n                regex : /[+-]?(?:0(?:b[01]+|o[0-7]+|x[\\da-fA-F])|\\d+(?:(?:\\.\\d*)?(?:[PpEe][+-]?\\d+)?)\\b)/\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            } \n            \n        ]\n    };\n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n    \n    this.normalizeRules();\n};\n\n\noop.inherits(SwiftHighlightRules, TextHighlightRules);\n\nexports.HighlightRules = SwiftHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/swift\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/swift_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar HighlightRules = require(\"./swift_highlight_rules\").HighlightRules;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = HighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = new CstyleBehaviour();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\", nestable: true};\n    \n    this.$id = \"ace/mode/swift\"\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-swig.js",
    "content": "ace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-6][0-7]?|\" + // oct\n        \"37[0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            {\n                token : \"comment\",\n                regex : \"\\\\/\\\\/\",\n                next : \"line_comment\"\n            },\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            {\n                token : \"comment\", // multi line comment\n                regex : /\\/\\*/,\n                next : \"comment\"\n            }, {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0[xX][0-9a-fA-F]+\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment_regex_allowed\"\n            }, {\n                token : \"comment\",\n                regex : \"\\\\/\\\\/\",\n                next : \"line_comment_regex_allowed\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"comment_regex_allowed\" : [\n            DocCommentHighlightRules.getTagRule(),\n            {token : \"comment\", regex : \"\\\\*\\\\/\", next : \"start\"},\n            {defaultToken : \"comment\", caseInsensitive: true}\n        ],\n        \"comment\" : [\n            DocCommentHighlightRules.getTagRule(),\n            {token : \"comment\", regex : \"\\\\*\\\\/\", next : \"no_regex\"},\n            {defaultToken : \"comment\", caseInsensitive: true}\n        ],\n        \"line_comment_regex_allowed\" : [\n            DocCommentHighlightRules.getTagRule(),\n            {token : \"comment\", regex : \"$|^\", next : \"start\"},\n            {defaultToken : \"comment\", caseInsensitive: true}\n        ],\n        \"line_comment\" : [\n            DocCommentHighlightRules.getTagRule(),\n            {token : \"comment\", regex : \"$|^\", next : \"no_regex\"},\n            {defaultToken : \"comment\", caseInsensitive: true}\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                    return \"paren\";\n                }\n                if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || !options.noJSX)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            jsxJsRule,\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            jsxJsRule,\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\",\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n    a           : 'anchor',\n    button \t    : 'form',\n    form        : 'form',\n    img         : 'image',\n    input       : 'form',\n    label       : 'form',\n    option      : 'form',\n    script      : 'script',\n    select      : 'form',\n    textarea    : 'form',\n    style       : 'style',\n    table       : 'table',\n    tbody       : 'table',\n    td          : 'table',\n    tfoot       : 'table',\n    th          : 'table',\n    tr          : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.addRules({\n        attributes: [{\n            include : \"tag_whitespace\"\n        }, {\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"[-_a-zA-Z0-9:.]+\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\",\n            push : [{\n                include: \"tag_whitespace\"\n            }, {\n                token : \"string.unquoted.attribute-value.html\",\n                regex : \"[^<>='\\\"`\\\\s]+\",\n                next : \"pop\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"pop\"\n            }]\n        }, {\n            include : \"attribute_value\"\n        }],\n        tag: [{\n            token : function(start, tag) {\n                var group = tagMap[tag];\n                return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                    \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n            },\n            regex : \"(</?)([-_a-zA-Z0-9:.]+)\",\n            next: \"tag_stuff\"\n        }],\n        tag_stuff: [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n        ],\n    });\n\n    this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n    this.embedTagRules(new JavaScriptHighlightRules({noJSX: true}).getRules(), \"js-\", \"script\");\n\n    if (this.constructor === HtmlHighlightRules)\n        this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/swig\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/html_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar SwigHighlightRules = function() {\n    HtmlHighlightRules.call(this);\n\n    var tags = \"autoescape|block|else|elif|extends|filter|for|if|import|include|macro|parent|raw|set|spaceless\";\n    tags = tags + \"|end\" + tags.replace(/\\|/g, \"|end\");\n    var filters = \"addslashes|capitalize|date|default|escape|first|groupBy|join|json|last|lower|raw|replace|reverse|safe|sort|striptags|title|uniq|upper|url_encode|url_decode\";\n    var special = \"first|last|index|index0|revindex|revindex0|key\"\n    var constants = \"null|none|true|false|loop\";\n    var operators = \"in|is|and|or|not|as|with|only\";\n\n    var keywordMapper = this.createKeywordMapper({\n        \"keyword.control.swig\": tags,\n        \"support.function.swig\": filters+\"|\"+special,\n        \"keyword.operator.swig\":  operators,\n        \"constant.language.swig\": constants,\n    }, \"identifier\");\n    for (var rule in this.$rules) {\n        this.$rules[rule].unshift({\n            token : \"variable.other.readwrite.local.swig\",\n            regex : \"\\\\{\\\\{-?\",\n            push : \"swig-start\"\n        }, {\n            token : \"meta.tag.swig\",\n            regex : \"\\\\{%-?\",\n            push : \"swig-start\"\n        }, {\n            token : \"comment.block.swig\",\n            regex : \"\\\\{#-?\",\n            push : \"swig-comment\"\n        });\n    }\n    this.$rules[\"swig-comment\"] = [{\n        token : \"comment.block.swig\",\n        regex : \".*-?#}\",\n        next : \"pop\"\n    }];\n\n    this.$rules[\"swig-start\"] = [{\n        token : \"variable.other.readwrite.local.swig\",\n        regex : \"-?\\\\}\\\\}\",\n        next : \"pop\"\n    }, {\n        token : \"meta.tag.swig\",\n        regex : \"-?%\\\\}\",\n        next : \"pop\"\n    }, {\n        token : \"string\",\n        regex : \"'\",\n        next  : \"swig-qstring\"\n    }, {\n        token : \"string\",\n        regex : '\"',\n        next  : \"swig-qqstring\"\n    }, {\n        token : \"constant.numeric\", // hex\n        regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n    }, {\n        token : \"constant.numeric\", // float\n        regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n    }, {\n        token : \"constant.language.boolean\",\n        regex : \"(?:true|false)\\\\b\"\n    }, {\n        token : keywordMapper,\n        regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n    }, {\n        token : \"keyword.operator.assignment\",\n        regex : \"=|~\"\n    }, {\n        token : \"keyword.operator.comparison\",\n        regex : \"==|!=|<|>|>=|<=|===\"\n    }, {\n        token : \"keyword.operator.arithmetic\",\n        regex : \"\\\\+|-|/|%|//|\\\\*|\\\\*\\\\*\"\n    }, {\n        token : \"keyword.operator.other\",\n        regex : \"\\\\.\\\\.|\\\\|\"\n    }, {\n        token : \"punctuation.operator\",\n        regex : /\\?|\\:|\\,|\\;|\\./\n    }, {\n        token : \"paren.lparen\",\n        regex : /[\\[\\({]/\n    }, {\n        token : \"paren.rparen\",\n        regex : /[\\])}]/\n    }, {\n        token : \"text\",\n        regex : \"\\\\s+\"\n    } ];\n    \n    this.$rules[\"swig-qqstring\"] = [{\n            token : \"constant.language.escape\",\n            regex : /\\\\[\\\\\"$#ntr]|#{[^\"}]*}/\n        }, {\n            token : \"string\",\n            regex : '\"',\n            next  : \"swig-start\"\n        }, {\n            defaultToken : \"string\"\n        }\n    ];\n\n    this.$rules[\"swig-qstring\"] = [{\n            token : \"constant.language.escape\",\n            regex : /\\\\[\\\\'ntr]}/\n        }, {\n            token : \"string\",\n            regex : \"'\",\n            next  : \"swig-start\"\n        }, {\n            defaultToken : \"string\"\n        }\n    ];\n    \n    this.normalizeRules();\n};\n\noop.inherits(SwigHighlightRules, TextHighlightRules);\n\nexports.SwigHighlightRules = SwigHighlightRules;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-tcl.js",
    "content": "ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/tcl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar TclHighlightRules = function() {\n\n    this.$rules = {\n        \"start\" : [\n           {\n                token : \"comment\",\n                regex : \"#.*\\\\\\\\$\",\n                next  : \"commentfollow\"\n            }, {\n                token : \"comment\",\n                regex : \"#.*$\"\n            }, {\n                token : \"support.function\",\n                regex : '[\\\\\\\\]$',\n                next  : \"splitlineStart\"\n            }, {\n                token : \"text\",\n                regex : /\\\\(?:[\"{}\\[\\]$\\\\])/\n            }, {\n                token : \"text\", // last value before command\n                regex : '^|[^{][;][^}]|[/\\r/]',\n                next  : \"commandItem\"\n            }, {\n                token : \"string\", // single line\n                regex : '[ ]*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n            }, {\n                token : \"string\", // multi line \"\"\" string start\n                regex : '[ ]*[\"]',\n                next  : \"qqstring\"\n            }, {\n                token : \"variable.instance\",\n                regex : \"[$]\",\n                next  : \"variable\"\n            }, {\n                token : \"support.function\",\n                regex : \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|{\\\\*}|;|::\"\n            }, {\n                token : \"identifier\",\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[{]\",\n                next  : \"commandItem\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[(]\"\n            },  {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"commandItem\" : [\n            {\n                token : \"comment\",\n                regex : \"#.*\\\\\\\\$\",\n                next  : \"commentfollow\"\n            }, {\n                token : \"comment\",\n                regex : \"#.*$\",\n                next  : \"start\"\n            }, {\n                token : \"string\", // single line\n                regex : '[ ]*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n            }, {\n                token : \"variable.instance\", \n                regex : \"[$]\",\n                next  : \"variable\"\n            }, {\n                token : \"support.function\",\n                regex : \"(?:[:][:])[a-zA-Z0-9_/]+(?:[:][:])\",\n                next  : \"commandItem\"\n            }, {\n                token : \"support.function\",\n                regex : \"[a-zA-Z0-9_/]+(?:[:][:])\",\n                next  : \"commandItem\"\n            }, {\n                token : \"support.function\",\n                regex : \"(?:[:][:])\",\n                next  : \"commandItem\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"support.function\",\n                regex : \"!|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\|\\\\||\\\\?\\\\:|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^=|{\\\\*}|;|::\"\n            }, {\n                token : \"keyword\",\n                regex : \"[a-zA-Z0-9_/]+\",\n                next  : \"start\"\n            } ],\n        \"commentfollow\" : [ \n            {\n                token : \"comment\",\n                regex : \".*\\\\\\\\$\",\n                next  : \"commentfollow\"\n            }, {\n                token : \"comment\",\n                regex : '.+',\n                next  : \"start\"\n        } ],\n        \"splitlineStart\" : [ \n            {\n                token : \"text\",\n                regex : \"^.\",\n                next  : \"start\"\n            }],\n        \"variable\" : [ \n            {\n                token : \"variable.instance\", // variable tcl\n                regex : \"[a-zA-Z_\\\\d]+(?:[(][a-zA-Z_\\\\d]+[)])?\",\n                next  : \"start\"\n            }, {\n                token : \"variable.instance\", // variable tcl with braces\n                regex : \"{?[a-zA-Z_\\\\d]+}?\",\n                next  : \"start\"\n            }],  \n        \"qqstring\" : [ {\n            token : \"string\", // multi line \"\"\" string end\n            regex : '(?:[^\\\\\\\\]|\\\\\\\\.)*?[\"]',\n            next : \"start\"\n        }, {\n            token : \"string\",\n            regex : '.+'\n        } ]\n    };\n};\n\noop.inherits(TclHighlightRules, TextHighlightRules);\n\nexports.TclHighlightRules = TclHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/tcl\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/folding/cstyle\",\"ace/mode/tcl_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar TclHighlightRules = require(\"./tcl_highlight_rules\").TclHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar Range = require(\"../range\").Range;\n\nvar Mode = function() {\n    this.HighlightRules = TclHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.foldingRules = new CStyleFoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"#\";\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n        \n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.$id = \"ace/mode/tcl\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-tex.js",
    "content": "ace.define(\"ace/mode/tex_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar TexHighlightRules = function(textClass) {\n\n    if (!textClass)\n        textClass = \"text\";\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"%.*$\"\n            }, {\n                token : textClass, // non-command\n                regex : \"\\\\\\\\[$&%#\\\\{\\\\}]\"\n            }, {\n                token : \"keyword\", // command\n                regex : \"\\\\\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\\\b\",\n               next : \"nospell\"\n            }, {\n                token : \"keyword\", // command\n                regex : \"\\\\\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])\"\n            }, {\n               token : \"paren.keyword.operator\",\n                regex : \"[[({]\"\n            }, {\n               token : \"paren.keyword.operator\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : textClass,\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"nospell\" : [\n           {\n               token : \"comment\",\n               regex : \"%.*$\",\n               next : \"start\"\n           }, {\n               token : \"nospell.\" + textClass, // non-command\n               regex : \"\\\\\\\\[$&%#\\\\{\\\\}]\"\n           }, {\n               token : \"keyword\", // command\n               regex : \"\\\\\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\\\b\"\n           }, {\n               token : \"keyword\", // command\n               regex : \"\\\\\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])\",\n               next : \"start\"\n           }, {\n               token : \"paren.keyword.operator\",\n               regex : \"[[({]\"\n           }, {\n               token : \"paren.keyword.operator\",\n               regex : \"[\\\\])]\"\n           }, {\n               token : \"paren.keyword.operator\",\n               regex : \"}\",\n               next : \"start\"\n           }, {\n               token : \"nospell.\" + textClass,\n               regex : \"\\\\s+\"\n           }, {\n               token : \"nospell.\" + textClass,\n               regex : \"\\\\w+\"\n           }\n        ]\n    };\n};\n\noop.inherits(TexHighlightRules, TextHighlightRules);\n\nexports.TexHighlightRules = TexHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/tex\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/tex_highlight_rules\",\"ace/mode/matching_brace_outdent\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar TexHighlightRules = require(\"./tex_highlight_rules\").TexHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\n\nvar Mode = function(suppressHighlighting) {\n    if (suppressHighlighting)\n        this.HighlightRules = TextHighlightRules;\n    else\n        this.HighlightRules = TexHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n   this.lineCommentStart = \"%\";\n   this.getNextLineIndent = function(state, line, tab) {\n      return this.$getIndent(line);\n   };\n\n   this.allowAutoInsert = function() {\n      return false;\n   };\n    this.$id = \"ace/mode/tex\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-text.js",
    "content": "\n"
  },
  {
    "path": "lib/src-noconflict/mode-textile.js",
    "content": "ace.define(\"ace/mode/textile_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar TextileHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [\n            {\n                token : function(value) {\n                    if (value.charAt(0) == \"h\")\n                        return \"markup.heading.\" + value.charAt(1);\n                    else\n                        return \"markup.heading\";\n                },\n                regex : \"h1|h2|h3|h4|h5|h6|bq|p|bc|pre\",\n                next  : \"blocktag\"\n            },\n            {\n                token : \"keyword\",\n                regex : \"[\\\\*]+|[#]+\"\n            },\n            {\n                token : \"text\",\n                regex : \".+\"\n            }\n        ],\n        \"blocktag\" : [\n            {\n                token : \"keyword\",\n                regex : \"\\\\. \",\n                next  : \"start\"\n            },\n            {\n                token : \"keyword\",\n                regex : \"\\\\(\",\n                next  : \"blocktagproperties\"\n            }\n        ],\n        \"blocktagproperties\" : [\n            {\n                token : \"keyword\",\n                regex : \"\\\\)\",\n                next  : \"blocktag\"\n            },\n            {\n                token : \"string\",\n                regex : \"[a-zA-Z0-9\\\\-_]+\"\n            },\n            {\n                token : \"keyword\",\n                regex : \"#\"\n            }\n        ]\n    };\n};\n\noop.inherits(TextileHighlightRules, TextHighlightRules);\n\nexports.TextileHighlightRules = TextileHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/textile\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/textile_highlight_rules\",\"ace/mode/matching_brace_outdent\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar TextileHighlightRules = require(\"./textile_highlight_rules\").TextileHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\n\nvar Mode = function() {\n    this.HighlightRules = TextileHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.type = \"text\";\n    this.getNextLineIndent = function(state, line, tab) {\n        if (state == \"intag\")\n            return tab;\n        \n        return \"\";\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n    \n    this.$id = \"ace/mode/textile\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-toml.js",
    "content": "ace.define(\"ace/mode/toml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar TomlHighlightRules = function() {\n    var keywordMapper = this.createKeywordMapper({\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n\n    var identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\";\n\n    this.$rules = {\n    \"start\": [\n        {\n            token: \"comment.toml\",\n            regex: /#.*$/\n        },\n        {\n            token : \"string\",\n            regex : '\"(?=.)',\n            next  : \"qqstring\"\n        },\n        {\n            token: [\"variable.keygroup.toml\"],\n            regex: \"(?:^\\\\s*)(\\\\[\\\\[([^\\\\]]+)\\\\]\\\\])\"\n        },\n        {\n            token: [\"variable.keygroup.toml\"],\n            regex: \"(?:^\\\\s*)(\\\\[([^\\\\]]+)\\\\])\"\n        },\n        {\n            token : keywordMapper,\n            regex : identifierRe\n        },\n        {\n           token : \"support.date.toml\",\n           regex: \"\\\\d{4}-\\\\d{2}-\\\\d{2}(T)\\\\d{2}:\\\\d{2}:\\\\d{2}(Z)\"\n        },\n        {\n           token: \"constant.numeric.toml\",\n           regex: \"-?\\\\d+(\\\\.?\\\\d+)?\"\n        }\n    ],\n    \"qqstring\" : [\n        {\n            token : \"string\",\n            regex : \"\\\\\\\\$\",\n            next  : \"qqstring\"\n        },\n        {\n            token : \"constant.language.escape\",\n            regex : '\\\\\\\\[0tnr\"\\\\\\\\]'\n        },\n        {\n            token : \"string\",\n            regex : '\"|$',\n            next  : \"start\"\n        },\n        {\n            defaultToken: \"string\"\n        }\n    ]\n    }\n\n};\n\noop.inherits(TomlHighlightRules, TextHighlightRules);\n\nexports.TomlHighlightRules = TomlHighlightRules;\n});\n\nace.define(\"ace/mode/folding/ini\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function() {\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.foldingStartMarker = /^\\s*\\[([^\\])]*)]\\s*(?:$|[;#])/;\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var re = this.foldingStartMarker;\n        var line = session.getLine(row);\n        \n        var m = line.match(re);\n        \n        if (!m) return;\n        \n        var startName = m[1] + \".\";\n        \n        var startColumn = line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            if (/^\\s*$/.test(line))\n                continue;\n            m = line.match(re);\n            if (m && m[1].lastIndexOf(startName, 0) !== 0)\n                break;\n\n            endRow = row;\n        }\n\n        if (endRow > startRow) {\n            var endColumn = session.getLine(endRow).length;\n            return new Range(startRow, startColumn, endRow, endColumn);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/toml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/toml_highlight_rules\",\"ace/mode/folding/ini\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar TomlHighlightRules = require(\"./toml_highlight_rules\").TomlHighlightRules;\nvar FoldMode = require(\"./folding/ini\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = TomlHighlightRules;\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"#\";\n    this.$id = \"ace/mode/toml\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-tsx.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/typescript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\n\nvar TypeScriptHighlightRules = function(options) {\n\n    var tsRules =  [\n        {\n            token: [\"keyword.operator.ts\", \"text\", \"variable.parameter.function.ts\", \"text\"],\n            regex: \"\\\\b(module)(\\\\s*)([a-zA-Z0-9_?.$][\\\\w?.$]*)(\\\\s*\\\\{)\"\n        }, \n        {\n            token: [\"storage.type.variable.ts\", \"text\", \"keyword.other.ts\", \"text\"],\n            regex: \"(super)(\\\\s*\\\\()([a-zA-Z0-9,_?.$\\\\s]+\\\\s*)(\\\\))\"\n        },\n        {\n            token: [\"entity.name.function.ts\",\"paren.lparen\", \"paren.rparen\"],\n            regex: \"([a-zA-Z_?.$][\\\\w?.$]*)(\\\\()(\\\\))\"\n        },\n        {\n            token: [\"variable.parameter.function.ts\", \"text\", \"variable.parameter.function.ts\"],\n            regex: \"([a-zA-Z0-9_?.$][\\\\w?.$]*)(\\\\s*:\\\\s*)([a-zA-Z0-9_?.$][\\\\w?.$]*)\"\n        },  \n        {\n            token: [\"keyword.operator.ts\"],\n            regex: \"(?:\\\\b(constructor|declare|interface|as|AS|public|private|class|extends|export|super)\\\\b)\"\n        }, \n        {\n            token: [\"storage.type.variable.ts\"],\n            regex: \"(?:\\\\b(this\\\\.|string\\\\b|bool\\\\b|number)\\\\b)\"\n        }, \n        {\n            token: [\"keyword.operator.ts\", \"storage.type.variable.ts\", \"keyword.operator.ts\", \"storage.type.variable.ts\"],\n            regex: \"(class)(\\\\s+[a-zA-Z0-9_?.$][\\\\w?.$]*\\\\s+)(extends)(\\\\s+[a-zA-Z0-9_?.$][\\\\w?.$]*\\\\s+)?\"\n        },\n        {\n            token: \"keyword\",\n            regex: \"(?:super|export|class|extends|import)\\\\b\"\n        }\n    ];\n\n    var JSRules = new JavaScriptHighlightRules({jsx: (options && options.jsx) == true}).getRules();\n    \n    JSRules.start = tsRules.concat(JSRules.start);\n    this.$rules = JSRules;\n};\n\noop.inherits(TypeScriptHighlightRules, JavaScriptHighlightRules);\n\nexports.TypeScriptHighlightRules = TypeScriptHighlightRules;\n});\n\nace.define(\"ace/mode/typescript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/typescript_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/mode/matching_brace_outdent\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar jsMode = require(\"./javascript\").Mode;\nvar TypeScriptHighlightRules = require(\"./typescript_highlight_rules\").TypeScriptHighlightRules;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\n\nvar Mode = function() {\n    this.HighlightRules = TypeScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, jsMode);\n\n(function() {\n    this.createWorker = function(session) {\n        return null;\n    };\n    this.$id = \"ace/mode/typescript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/tsx\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/typescript\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar tsMode = require(\"./typescript\").Mode;\n\nvar Mode = function() {\n    tsMode.call(this);\n    this.$highlightRuleConfig = {jsx: true};\n};\noop.inherits(Mode, tsMode);\n\n(function() {\n    this.$id = \"ace/mode/tsx\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-twig.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar propertyMap = {\n    \"background\": {\"#$0\": 1},\n    \"background-color\": {\"#$0\": 1, \"transparent\": 1, \"fixed\": 1},\n    \"background-image\": {\"url('/$0')\": 1},\n    \"background-repeat\": {\"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1},\n    \"background-position\": {\"bottom\":2, \"center\":2, \"left\":2, \"right\":2, \"top\":2, \"inherit\":2},\n    \"background-attachment\": {\"scroll\": 1, \"fixed\": 1},\n    \"background-size\": {\"cover\": 1, \"contain\": 1},\n    \"background-clip\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"background-origin\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"border\": {\"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1},\n    \"border-color\": {\"#$0\": 1},\n    \"border-style\": {\"solid\":2, \"dashed\":2, \"dotted\":2, \"double\":2, \"groove\":2, \"hidden\":2, \"inherit\":2, \"inset\":2, \"none\":2, \"outset\":2, \"ridged\":2},\n    \"border-collapse\": {\"collapse\": 1, \"separate\": 1},\n    \"bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"clear\": {\"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1},\n    \"color\": {\"#$0\": 1, \"rgb(#$00,0,0)\": 1},\n    \"cursor\": {\"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1},\n    \"display\": {\"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1},\n    \"empty-cells\": {\"show\": 1, \"hide\": 1},\n    \"float\": {\"left\": 1, \"right\": 1, \"none\": 1},\n    \"font-family\": {\"Arial\":2,\"Comic Sans MS\":2,\"Consolas\":2,\"Courier New\":2,\"Courier\":2,\"Georgia\":2,\"Monospace\":2,\"Sans-Serif\":2, \"Segoe UI\":2,\"Tahoma\":2,\"Times New Roman\":2,\"Trebuchet MS\":2,\"Verdana\": 1},\n    \"font-size\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"font-weight\": {\"bold\": 1, \"normal\": 1},\n    \"font-style\": {\"italic\": 1, \"normal\": 1},\n    \"font-variant\": {\"normal\": 1, \"small-caps\": 1},\n    \"height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"letter-spacing\": {\"normal\": 1},\n    \"line-height\": {\"normal\": 1},\n    \"list-style-type\": {\"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1},\n    \"margin\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"overflow\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-x\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-y\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"padding\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"page-break-after\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"page-break-before\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"position\": {\"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1},\n    \"right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"table-layout\": {\"fixed\": 1, \"auto\": 1},\n    \"text-decoration\": {\"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1},\n    \"text-align\": {\"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1},\n    \"text-transform\": {\"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1},\n    \"top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"vertical-align\": {\"top\": 1, \"bottom\": 1},\n    \"visibility\": {\"hidden\": 1, \"visible\": 1},\n    \"white-space\": {\"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1},\n    \"width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"word-spacing\": {\"normal\": 1},\n    \"filter\": {\"alpha(opacity=$0100)\": 1},\n\n    \"text-shadow\": {\"$02px 2px 2px #777\": 1},\n    \"text-overflow\": {\"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1},\n    \"-moz-border-radius\": 1,\n    \"-moz-border-radius-topright\": 1,\n    \"-moz-border-radius-bottomright\": 1,\n    \"-moz-border-radius-topleft\": 1,\n    \"-moz-border-radius-bottomleft\": 1,\n    \"-webkit-border-radius\": 1,\n    \"-webkit-border-top-right-radius\": 1,\n    \"-webkit-border-top-left-radius\": 1,\n    \"-webkit-border-bottom-right-radius\": 1,\n    \"-webkit-border-bottom-left-radius\": 1,\n    \"-moz-box-shadow\": 1,\n    \"-webkit-box-shadow\": 1,\n    \"transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-moz-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-webkit-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\n\nvar CssCompletions = function() {\n\n};\n\n(function() {\n\n    this.completionsDefined = false;\n\n    this.defineCompletions = function() {\n        if (document) {\n            var style = document.createElement('c').style;\n\n            for (var i in style) {\n                if (typeof style[i] !== 'string')\n                    continue;\n\n                var name = i.replace(/[A-Z]/g, function(x) {\n                    return '-' + x.toLowerCase();\n                });\n\n                if (!propertyMap.hasOwnProperty(name))\n                    propertyMap[name] = 1;\n            }\n        }\n\n        this.completionsDefined = true;\n    }\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        if (!this.completionsDefined) {\n            this.defineCompletions();\n        }\n\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (state==='ruleset'){\n            var line = session.getLine(pos.row).substr(0, pos.column);\n            if (/:[^;]+$/.test(line)) {\n                /([\\w\\-]+):[^:]*$/.test(line);\n\n                return this.getPropertyValueCompletions(state, session, pos, prefix);\n            } else {\n                return this.getPropertyCompletions(state, session, pos, prefix);\n            }\n        }\n\n        return [];\n    };\n\n    this.getPropertyCompletions = function(state, session, pos, prefix) {\n        var properties = Object.keys(propertyMap);\n        return properties.map(function(property){\n            return {\n                caption: property,\n                snippet: property + ': $0',\n                meta: \"property\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getPropertyValueCompletions = function(state, session, pos, prefix) {\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n\n        if (!property)\n            return [];\n        var values = [];\n        if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n            values = Object.keys(propertyMap[property]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"property value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(CssCompletions.prototype);\n\nexports.CssCompletions = CssCompletions;\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar CssBehaviour = function () {\n\n    this.inherit(CstyleBehaviour);\n\n    this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(cursor.row);\n                var rightChar = line.substring(cursor.column, cursor.column + 1);\n                if (rightChar === ':') {\n                    return {\n                       text: '',\n                       selection: [1, 1]\n                    }\n                }\n                if (!line.substring(cursor.column).match(/^\\s*;/)) {\n                    return {\n                       text: ':;',\n                       selection: [1, 1]\n                    }\n                }\n            }\n        }\n    });\n\n    this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && selected === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(range.start.row);\n                var rightChar = line.substring(range.end.column, range.end.column + 1);\n                if (rightChar === ';') {\n                    range.end.column ++;\n                    return range;\n                }\n            }\n        }\n    });\n\n    this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ';') {\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar === ';') {\n                return {\n                   text: '',\n                   selection: [1, 1]\n                }\n            }\n        }\n    });\n\n}\noop.inherits(CssBehaviour, CstyleBehaviour);\n\nexports.CssBehaviour = CssBehaviour;\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = CssHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CssBehaviour();\n    this.$completer = new CssCompletions();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.foldingRules = \"cStyle\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        var match = line.match(/^.*\\{\\s*$/);\n        if (match) {\n            indent += tab;\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/css\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n    a           : 'anchor',\n    button \t    : 'form',\n    form        : 'form',\n    img         : 'image',\n    input       : 'form',\n    label       : 'form',\n    option      : 'form',\n    script      : 'script',\n    select      : 'form',\n    textarea    : 'form',\n    style       : 'style',\n    table       : 'table',\n    tbody       : 'table',\n    td          : 'table',\n    tfoot       : 'table',\n    th          : 'table',\n    tr          : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.addRules({\n        attributes: [{\n            include : \"tag_whitespace\"\n        }, {\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"[-_a-zA-Z0-9:.]+\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\",\n            push : [{\n                include: \"tag_whitespace\"\n            }, {\n                token : \"string.unquoted.attribute-value.html\",\n                regex : \"[^<>='\\\"`\\\\s]+\",\n                next : \"pop\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"pop\"\n            }]\n        }, {\n            include : \"attribute_value\"\n        }],\n        tag: [{\n            token : function(start, tag) {\n                var group = tagMap[tag];\n                return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                    \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n            },\n            regex : \"(</?)([-_a-zA-Z0-9:.]+)\",\n            next: \"tag_stuff\"\n        }],\n        tag_stuff: [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n        ]\n    });\n\n    this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"js-\", \"script\");\n\n    if (this.constructor === HtmlHighlightRules)\n        this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nvar XmlBehaviour = function () {\n\n    this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '\"' || text == \"'\") {\n            var quote = text;\n            var selected = session.doc.getTextRange(editor.getSelectionRange());\n            if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n                return {\n                    text: quote + selected + quote,\n                    selection: false\n                };\n            }\n\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n                return {\n                    text: \"\",\n                    selection: [1, 1]\n                };\n            }\n\n            if (!token)\n                token = iterator.stepBackward();\n\n            if (!token)\n                return;\n\n            while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n                token = iterator.stepBackward();\n            }\n            var rightSpace = !rightChar || rightChar.match(/\\s/);\n            if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n                return {\n                    text: quote + quote,\n                    selection: [1, 1]\n                };\n            }\n        }\n    });\n\n    this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == selected) {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n\n    this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '>') {\n            var position = editor.getSelectionRange().start;\n            var iterator = new TokenIterator(session, position.row, position.column);\n            var token = iterator.getCurrentToken() || iterator.stepBackward();\n            if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n                return;\n            if (is(token, \"reference.attribute-value\"))\n                return;\n            if (is(token, \"attribute-value\")) {\n                var firstChar = token.value.charAt(0);\n                if (firstChar == '\"' || firstChar == \"'\") {\n                    var lastChar = token.value.charAt(token.value.length - 1);\n                    var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;\n                    if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)\n                        return;\n                }\n            }\n            while (!is(token, \"tag-name\")) {\n                token = iterator.stepBackward();\n                if (token.value == \"<\") {\n                    token = iterator.stepForward();\n                    break;\n                }\n            }\n\n            var tokenRow = iterator.getCurrentTokenRow();\n            var tokenColumn = iterator.getCurrentTokenColumn();\n            if (is(iterator.stepBackward(), \"end-tag-open\"))\n                return;\n\n            var element = token.value;\n            if (tokenRow == position.row)\n                element = element.substring(0, position.column - tokenColumn);\n\n            if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n                 return;\n\n            return {\n               text: \">\" + \"</\" + element + \">\",\n               selection: [1, 1]\n            };\n        }\n    });\n\n    this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == \"\\n\") {\n            var cursor = editor.getCursorPosition();\n            var line = session.getLine(cursor.row);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (token && token.type.indexOf(\"tag-close\") !== -1) {\n                if (token.value == \"/>\")\n                    return;\n                while (token && token.type.indexOf(\"tag-name\") === -1) {\n                    token = iterator.stepBackward();\n                }\n\n                if (!token) {\n                    return;\n                }\n\n                var tag = token.value;\n                var row = iterator.getCurrentTokenRow();\n                token = iterator.stepBackward();\n                if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n                    return;\n                }\n\n                if (this.voidElements && !this.voidElements[tag]) {\n                    var nextToken = session.getTokenAt(cursor.row, cursor.column+1);\n                    var line = session.getLine(row);\n                    var nextIndent = this.$getIndent(line);\n                    var indent = nextIndent + session.getTabString();\n\n                    if (nextToken && nextToken.value === \"</\") {\n                        return {\n                            text: \"\\n\" + indent + \"\\n\" + nextIndent,\n                            selection: [1, indent.length, 1, indent.length]\n                        };\n                    } else {\n                        return {\n                            text: \"\\n\" + indent\n                        };\n                    }\n                }\n            }\n        }\n    });\n\n};\n\noop.inherits(XmlBehaviour, Behaviour);\n\nexports.XmlBehaviour = XmlBehaviour;\n});\n\nace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(defaultMode, subModes) {\n    this.defaultMode = defaultMode;\n    this.subModes = subModes;\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n\n    this.$getMode = function(state) {\n        if (typeof state != \"string\") \n            state = state[0];\n        for (var key in this.subModes) {\n            if (state.indexOf(key) === 0)\n                return this.subModes[key];\n        }\n        return null;\n    };\n    \n    this.$tryMode = function(state, session, foldStyle, row) {\n        var mode = this.$getMode(state);\n        return (mode ? mode.getFoldWidget(session, foldStyle, row) : \"\");\n    };\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        return (\n            this.$tryMode(session.getState(row-1), session, foldStyle, row) ||\n            this.$tryMode(session.getState(row), session, foldStyle, row) ||\n            this.defaultMode.getFoldWidget(session, foldStyle, row)\n        );\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var mode = this.$getMode(session.getState(row-1));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.$getMode(session.getState(row));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.defaultMode;\n        \n        return mode.getFoldWidgetRange(session, foldStyle, row);\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar lang = require(\"../../lib/lang\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalEndTags) {\n    BaseFoldMode.call(this);\n    this.voidElements = voidElements || {};\n    this.optionalEndTags = oop.mixin({}, this.voidElements);\n    if (optionalEndTags)\n        oop.mixin(this.optionalEndTags, optionalEndTags);\n    \n};\noop.inherits(FoldMode, BaseFoldMode);\n\nvar Tag = function() {\n    this.tagName = \"\";\n    this.closing = false;\n    this.selfClosing = false;\n    this.start = {row: 0, column: 0};\n    this.end = {row: 0, column: 0};\n};\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\n(function() {\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var tag = this._getFirstTagInLine(session, row);\n\n        if (!tag)\n            return \"\";\n\n        if (tag.closing || (!tag.tagName && tag.selfClosing))\n            return foldStyle == \"markbeginend\" ? \"end\" : \"\";\n\n        if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n            return \"\";\n\n        if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n            return \"\";\n\n        return \"start\";\n    };\n    this._getFirstTagInLine = function(session, row) {\n        var tokens = session.getTokens(row);\n        var tag = new Tag();\n\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            if (is(token, \"tag-open\")) {\n                tag.end.column = tag.start.column + token.value.length;\n                tag.closing = is(token, \"end-tag-open\");\n                token = tokens[++i];\n                if (!token)\n                    return null;\n                tag.tagName = token.value;\n                tag.end.column += token.value.length;\n                for (i++; i < tokens.length; i++) {\n                    token = tokens[i];\n                    tag.end.column += token.value.length;\n                    if (is(token, \"tag-close\")) {\n                        tag.selfClosing = token.value == '/>';\n                        break;\n                    }\n                }\n                return tag;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == '/>';\n                return tag;\n            }\n            tag.start.column += token.value.length;\n        }\n\n        return null;\n    };\n\n    this._findEndTagInLine = function(session, row, tagName, startColumn) {\n        var tokens = session.getTokens(row);\n        var column = 0;\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            column += token.value.length;\n            if (column < startColumn)\n                continue;\n            if (is(token, \"end-tag-open\")) {\n                token = tokens[i + 1];\n                if (token && token.value == tagName)\n                    return true;\n            }\n        }\n        return false;\n    };\n    this._readTagForward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n                iterator.stepForward();\n                return tag;\n            }\n        } while(token = iterator.stepForward());\n\n        return null;\n    };\n    \n    this._readTagBackward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n                iterator.stepBackward();\n                return tag;\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n            }\n        } while(token = iterator.stepBackward());\n\n        return null;\n    };\n    \n    this._pop = function(stack, tag) {\n        while (stack.length) {\n            \n            var top = stack[stack.length-1];\n            if (!tag || top.tagName == tag.tagName) {\n                return stack.pop();\n            }\n            else if (this.optionalEndTags.hasOwnProperty(top.tagName)) {\n                stack.pop();\n                continue;\n            } else {\n                return null;\n            }\n        }\n    };\n    \n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var firstTag = this._getFirstTagInLine(session, row);\n        \n        if (!firstTag)\n            return null;\n        \n        var isBackward = firstTag.closing || firstTag.selfClosing;\n        var stack = [];\n        var tag;\n        \n        if (!isBackward) {\n            var iterator = new TokenIterator(session, row, firstTag.start.column);\n            var start = {\n                row: row,\n                column: firstTag.start.column + firstTag.tagName.length + 2\n            };\n            if (firstTag.start.row == firstTag.end.row)\n                start.column = firstTag.end.column;\n            while (tag = this._readTagForward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0)\n                        return Range.fromPoints(start, tag.start);\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        else {\n            var iterator = new TokenIterator(session, row, firstTag.end.column);\n            var end = {\n                row: row,\n                column: firstTag.start.column\n            };\n            \n            while (tag = this._readTagBackward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (!tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0) {\n                        tag.start.column += tag.tagName.length + 2;\n                        if (tag.start.row == tag.end.row && tag.start.column < tag.end.column)\n                            tag.start.column = tag.end.column;\n                        return Range.fromPoints(tag.start, end);\n                    }\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        \n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar MixedFoldMode = require(\"./mixed\").FoldMode;\nvar XmlFoldMode = require(\"./xml\").FoldMode;\nvar CStyleFoldMode = require(\"./cstyle\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalTags) {\n    MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), {\n        \"js-\": new CStyleFoldMode(),\n        \"css-\": new CStyleFoldMode()\n    });\n};\n\noop.inherits(FoldMode, MixedFoldMode);\n\n});\n\nace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\n\nvar commonAttributes = [\n    \"accesskey\",\n    \"class\",\n    \"contenteditable\",\n    \"contextmenu\",\n    \"dir\",\n    \"draggable\",\n    \"dropzone\",\n    \"hidden\",\n    \"id\",\n    \"inert\",\n    \"itemid\",\n    \"itemprop\",\n    \"itemref\",\n    \"itemscope\",\n    \"itemtype\",\n    \"lang\",\n    \"spellcheck\",\n    \"style\",\n    \"tabindex\",\n    \"title\",\n    \"translate\"\n];\n\nvar eventAttributes = [\n    \"onabort\",\n    \"onblur\",\n    \"oncancel\",\n    \"oncanplay\",\n    \"oncanplaythrough\",\n    \"onchange\",\n    \"onclick\",\n    \"onclose\",\n    \"oncontextmenu\",\n    \"oncuechange\",\n    \"ondblclick\",\n    \"ondrag\",\n    \"ondragend\",\n    \"ondragenter\",\n    \"ondragleave\",\n    \"ondragover\",\n    \"ondragstart\",\n    \"ondrop\",\n    \"ondurationchange\",\n    \"onemptied\",\n    \"onended\",\n    \"onerror\",\n    \"onfocus\",\n    \"oninput\",\n    \"oninvalid\",\n    \"onkeydown\",\n    \"onkeypress\",\n    \"onkeyup\",\n    \"onload\",\n    \"onloadeddata\",\n    \"onloadedmetadata\",\n    \"onloadstart\",\n    \"onmousedown\",\n    \"onmousemove\",\n    \"onmouseout\",\n    \"onmouseover\",\n    \"onmouseup\",\n    \"onmousewheel\",\n    \"onpause\",\n    \"onplay\",\n    \"onplaying\",\n    \"onprogress\",\n    \"onratechange\",\n    \"onreset\",\n    \"onscroll\",\n    \"onseeked\",\n    \"onseeking\",\n    \"onselect\",\n    \"onshow\",\n    \"onstalled\",\n    \"onsubmit\",\n    \"onsuspend\",\n    \"ontimeupdate\",\n    \"onvolumechange\",\n    \"onwaiting\"\n];\n\nvar globalAttributes = commonAttributes.concat(eventAttributes);\n\nvar attributeMap = {\n    \"html\": {\"manifest\": 1},\n    \"head\": {},\n    \"title\": {},\n    \"base\": {\"href\": 1, \"target\": 1},\n    \"link\": {\"href\": 1, \"hreflang\": 1, \"rel\": {\"stylesheet\": 1, \"icon\": 1}, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"type\": {\"text/css\": 1, \"image/png\": 1, \"image/jpeg\": 1, \"image/gif\": 1}, \"sizes\": 1},\n    \"meta\": {\"http-equiv\": {\"content-type\": 1}, \"name\": {\"description\": 1, \"keywords\": 1}, \"content\": {\"text/html; charset=UTF-8\": 1}, \"charset\": 1},\n    \"style\": {\"type\": 1, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"scoped\": 1},\n    \"script\": {\"charset\": 1, \"type\": {\"text/javascript\": 1}, \"src\": 1, \"defer\": 1, \"async\": 1},\n    \"noscript\": {\"href\": 1},\n    \"body\": {\"onafterprint\": 1, \"onbeforeprint\": 1, \"onbeforeunload\": 1, \"onhashchange\": 1, \"onmessage\": 1, \"onoffline\": 1, \"onpopstate\": 1, \"onredo\": 1, \"onresize\": 1, \"onstorage\": 1, \"onundo\": 1, \"onunload\": 1},\n    \"section\": {},\n    \"nav\": {},\n    \"article\": {\"pubdate\": 1},\n    \"aside\": {},\n    \"h1\": {},\n    \"h2\": {},\n    \"h3\": {},\n    \"h4\": {},\n    \"h5\": {},\n    \"h6\": {},\n    \"header\": {},\n    \"footer\": {},\n    \"address\": {},\n    \"main\": {},\n    \"p\": {},\n    \"hr\": {},\n    \"pre\": {},\n    \"blockquote\": {\"cite\": 1},\n    \"ol\": {\"start\": 1, \"reversed\": 1},\n    \"ul\": {},\n    \"li\": {\"value\": 1},\n    \"dl\": {},\n    \"dt\": {},\n    \"dd\": {},\n    \"figure\": {},\n    \"figcaption\": {},\n    \"div\": {},\n    \"a\": {\"href\": 1, \"target\": {\"_blank\": 1, \"top\": 1}, \"ping\": 1, \"rel\": {\"nofollow\": 1, \"alternate\": 1, \"author\": 1, \"bookmark\": 1, \"help\": 1, \"license\": 1, \"next\": 1, \"noreferrer\": 1, \"prefetch\": 1, \"prev\": 1, \"search\": 1, \"tag\": 1}, \"media\": 1, \"hreflang\": 1, \"type\": 1},\n    \"em\": {},\n    \"strong\": {},\n    \"small\": {},\n    \"s\": {},\n    \"cite\": {},\n    \"q\": {\"cite\": 1},\n    \"dfn\": {},\n    \"abbr\": {},\n    \"data\": {},\n    \"time\": {\"datetime\": 1},\n    \"code\": {},\n    \"var\": {},\n    \"samp\": {},\n    \"kbd\": {},\n    \"sub\": {},\n    \"sup\": {},\n    \"i\": {},\n    \"b\": {},\n    \"u\": {},\n    \"mark\": {},\n    \"ruby\": {},\n    \"rt\": {},\n    \"rp\": {},\n    \"bdi\": {},\n    \"bdo\": {},\n    \"span\": {},\n    \"br\": {},\n    \"wbr\": {},\n    \"ins\": {\"cite\": 1, \"datetime\": 1},\n    \"del\": {\"cite\": 1, \"datetime\": 1},\n    \"img\": {\"alt\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"usemap\": 1, \"ismap\": 1},\n    \"iframe\": {\"name\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"sandbox\": {\"allow-same-origin\": 1, \"allow-top-navigation\": 1, \"allow-forms\": 1, \"allow-scripts\": 1}, \"seamless\": {\"seamless\": 1}},\n    \"embed\": {\"src\": 1, \"height\": 1, \"width\": 1, \"type\": 1},\n    \"object\": {\"param\": 1, \"data\": 1, \"type\": 1, \"height\" : 1, \"width\": 1, \"usemap\": 1, \"name\": 1, \"form\": 1, \"classid\": 1},\n    \"param\": {\"name\": 1, \"value\": 1},\n    \"video\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"width\": 1, \"height\": 1, \"poster\": 1, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1}},\n    \"audio\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1 }},\n    \"source\": {\"src\": 1, \"type\": 1, \"media\": 1},\n    \"track\": {\"kind\": 1, \"src\": 1, \"srclang\": 1, \"label\": 1, \"default\": 1},\n    \"canvas\": {\"width\": 1, \"height\": 1},\n    \"map\": {\"name\": 1},\n    \"area\": {\"shape\": 1, \"coords\": 1, \"href\": 1, \"hreflang\": 1, \"alt\": 1, \"target\": 1, \"media\": 1, \"rel\": 1, \"ping\": 1, \"type\": 1},\n    \"svg\": {},\n    \"math\": {},\n    \"table\": {\"summary\": 1},\n    \"caption\": {},\n    \"colgroup\": {\"span\": 1},\n    \"col\": {\"span\": 1},\n    \"tbody\": {},\n    \"thead\": {},\n    \"tfoot\": {},\n    \"tr\": {},\n    \"td\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1},\n    \"th\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1, \"scope\": 1},\n    \"form\": {\"accept-charset\": 1, \"action\": 1, \"autocomplete\": 1, \"enctype\": {\"multipart/form-data\": 1, \"application/x-www-form-urlencoded\": 1}, \"method\": {\"get\": 1, \"post\": 1}, \"name\": 1, \"novalidate\": 1, \"target\": {\"_blank\": 1, \"top\": 1}},\n    \"fieldset\": {\"disabled\": 1, \"form\": 1, \"name\": 1},\n    \"legend\": {},\n    \"label\": {\"form\": 1, \"for\": 1},\n    \"input\": {\n        \"type\": {\"text\": 1, \"password\": 1, \"hidden\": 1, \"checkbox\": 1, \"submit\": 1, \"radio\": 1, \"file\": 1, \"button\": 1, \"reset\": 1, \"image\": 31, \"color\": 1, \"date\": 1, \"datetime\": 1, \"datetime-local\": 1, \"email\": 1, \"month\": 1, \"number\": 1, \"range\": 1, \"search\": 1, \"tel\": 1, \"time\": 1, \"url\": 1, \"week\": 1},\n        \"accept\": 1, \"alt\": 1, \"autocomplete\": {\"on\": 1, \"off\": 1}, \"autofocus\": {\"autofocus\": 1}, \"checked\": {\"checked\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": {\"application/x-www-form-urlencoded\": 1, \"multipart/form-data\": 1, \"text/plain\": 1}, \"formmethod\": {\"get\": 1, \"post\": 1}, \"formnovalidate\": {\"formnovalidate\": 1}, \"formtarget\": {\"_blank\": 1, \"_self\": 1, \"_parent\": 1, \"_top\": 1}, \"height\": 1, \"list\": 1, \"max\": 1, \"maxlength\": 1, \"min\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"pattern\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"size\": 1, \"src\": 1, \"step\": 1, \"width\": 1, \"files\": 1, \"value\": 1},\n    \"button\": {\"autofocus\": 1, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": 1, \"formmethod\": 1, \"formnovalidate\": 1, \"formtarget\": 1, \"name\": 1, \"value\": 1, \"type\": {\"button\": 1, \"submit\": 1}},\n    \"select\": {\"autofocus\": 1, \"disabled\": 1, \"form\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"size\": 1, \"readonly\":{\"readonly\": 1}},\n    \"datalist\": {},\n    \"optgroup\": {\"disabled\": 1, \"label\": 1},\n    \"option\": {\"disabled\": 1, \"selected\": 1, \"label\": 1, \"value\": 1},\n    \"textarea\": {\"autofocus\": {\"autofocus\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"maxlength\": 1, \"name\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"rows\": 1, \"cols\": 1, \"wrap\": {\"on\": 1, \"off\": 1, \"hard\": 1, \"soft\": 1}},\n    \"keygen\": {\"autofocus\": 1, \"challenge\": {\"challenge\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"keytype\": {\"rsa\": 1, \"dsa\": 1, \"ec\": 1}, \"name\": 1},\n    \"output\": {\"for\": 1, \"form\": 1, \"name\": 1},\n    \"progress\": {\"value\": 1, \"max\": 1},\n    \"meter\": {\"value\": 1, \"min\": 1, \"max\": 1, \"low\": 1, \"high\": 1, \"optimum\": 1},\n    \"details\": {\"open\": 1},\n    \"summary\": {},\n    \"command\": {\"type\": 1, \"label\": 1, \"icon\": 1, \"disabled\": 1, \"checked\": 1, \"radiogroup\": 1, \"command\": 1},\n    \"menu\": {\"type\": 1, \"label\": 1},\n    \"dialog\": {\"open\": 1}\n};\n\nvar elements = Object.keys(attributeMap);\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nfunction findTagName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"tag-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nfunction findAttributeName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"attribute-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nvar HtmlCompletions = function() {\n\n};\n\n(function() {\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (is(token, \"tag-name\") || is(token, \"tag-open\") || is(token, \"end-tag-open\"))\n            return this.getTagCompletions(state, session, pos, prefix);\n        if (is(token, \"tag-whitespace\") || is(token, \"attribute-name\"))\n            return this.getAttributeCompletions(state, session, pos, prefix);\n        if (is(token, \"attribute-value\"))\n            return this.getAttributeValueCompletions(state, session, pos, prefix);\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        if (/&[a-z]*$/i.test(line))\n            return this.getHTMLEntityCompletions(state, session, pos, prefix);\n\n        return [];\n    };\n\n    this.getTagCompletions = function(state, session, pos, prefix) {\n        return elements.map(function(element){\n            return {\n                value: element,\n                meta: \"tag\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        if (!tagName)\n            return [];\n        var attributes = globalAttributes;\n        if (tagName in attributeMap) {\n            attributes = attributes.concat(Object.keys(attributeMap[tagName]));\n        }\n        return attributes.map(function(attribute){\n            return {\n                caption: attribute,\n                snippet: attribute + '=\"$0\"',\n                meta: \"attribute\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeValueCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        var attributeName = findAttributeName(session, pos);\n        \n        if (!tagName)\n            return [];\n        var values = [];\n        if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === \"object\") {\n            values = Object.keys(attributeMap[tagName][attributeName]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"attribute value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getHTMLEntityCompletions = function(state, session, pos, prefix) {\n        var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;'];\n\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"html entity\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(HtmlCompletions.prototype);\n\nexports.HtmlCompletions = HtmlCompletions;\n});\n\nace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar CssMode = require(\"./css\").Mode;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar HtmlFoldMode = require(\"./folding/html\").FoldMode;\nvar HtmlCompletions = require(\"./html_completions\").HtmlCompletions;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar voidElements = [\"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"menuitem\", \"param\", \"source\", \"track\", \"wbr\"];\nvar optionalEndTags = [\"li\", \"dt\", \"dd\", \"p\", \"rt\", \"rp\", \"optgroup\", \"option\", \"colgroup\", \"td\", \"th\"];\n\nvar Mode = function(options) {\n    this.fragmentContext = options && options.fragmentContext;\n    this.HighlightRules = HtmlHighlightRules;\n    this.$behaviour = new XmlBehaviour();\n    this.$completer = new HtmlCompletions();\n    \n    this.createModeDelegates({\n        \"js-\": JavaScriptMode,\n        \"css-\": CssMode\n    });\n    \n    this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags));\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.blockComment = {start: \"<!--\", end: \"-->\"};\n\n    this.voidElements = lang.arrayToMap(voidElements);\n\n    this.getNextLineIndent = function(state, line, tab) {\n        return this.$getIndent(line);\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return false;\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        if (this.constructor != Mode)\n            return;\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/html_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        if (this.fragmentContext)\n            worker.call(\"setOptions\", [{context: this.fragmentContext}]);\n\n        worker.on(\"error\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/html\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/twig_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/html_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar TwigHighlightRules = function() {\n    HtmlHighlightRules.call(this);\n\n    var tags = \"autoescape|block|do|embed|extends|filter|flush|for|from|if|import|include|macro|sandbox|set|spaceless|use|verbatim\";\n    tags = tags + \"|end\" + tags.replace(/\\|/g, \"|end\");\n    var filters = \"abs|batch|capitalize|convert_encoding|date|date_modify|default|e|escape|first|format|join|json_encode|keys|last|length|lower|merge|nl2br|number_format|raw|replace|reverse|slice|sort|split|striptags|title|trim|upper|url_encode\";\n    var functions = \"attribute|constant|cycle|date|dump|parent|random|range|template_from_string\";\n    var tests = \"constant|divisibleby|sameas|defined|empty|even|iterable|odd\";\n    var constants = \"null|none|true|false\";\n    var operators = \"b-and|b-xor|b-or|in|is|and|or|not\"\n\n    var keywordMapper = this.createKeywordMapper({\n        \"keyword.control.twig\": tags,\n        \"support.function.twig\": [filters, functions, tests].join(\"|\"),\n        \"keyword.operator.twig\":  operators,\n        \"constant.language.twig\": constants\n    }, \"identifier\");\n    for (var rule in this.$rules) {\n        this.$rules[rule].unshift({\n            token : \"variable.other.readwrite.local.twig\",\n            regex : \"\\\\{\\\\{-?\",\n            push : \"twig-start\"\n        }, {\n            token : \"meta.tag.twig\",\n            regex : \"\\\\{%-?\",\n            push : \"twig-start\"\n        }, {\n            token : \"comment.block.twig\",\n            regex : \"\\\\{#-?\",\n            push : \"twig-comment\"\n        });\n    }\n    this.$rules[\"twig-comment\"] = [{\n        token : \"comment.block.twig\",\n        regex : \".*-?#\\\\}\",\n        next : \"pop\"\n    }];\n\n    this.$rules[\"twig-start\"] = [{\n        token : \"variable.other.readwrite.local.twig\",\n        regex : \"-?\\\\}\\\\}\",\n        next : \"pop\"\n    }, {\n        token : \"meta.tag.twig\",\n        regex : \"-?%\\\\}\",\n        next : \"pop\"\n    }, {\n        token : \"string\",\n        regex : \"'\",\n        next  : \"twig-qstring\"\n    }, {\n        token : \"string\",\n        regex : '\"',\n        next  : \"twig-qqstring\"\n    }, {\n        token : \"constant.numeric\", // hex\n        regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n    }, {\n        token : \"constant.numeric\", // float\n        regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n    }, {\n        token : \"constant.language.boolean\",\n        regex : \"(?:true|false)\\\\b\"\n    }, {\n        token : keywordMapper,\n        regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n    }, {\n        token : \"keyword.operator.assignment\",\n        regex : \"=|~\"\n    }, {\n        token : \"keyword.operator.comparison\",\n        regex : \"==|!=|<|>|>=|<=|===\"\n    }, {\n        token : \"keyword.operator.arithmetic\",\n        regex : \"\\\\+|-|/|%|//|\\\\*|\\\\*\\\\*\"\n    }, {\n        token : \"keyword.operator.other\",\n        regex : \"\\\\.\\\\.|\\\\|\"\n    }, {\n        token : \"punctuation.operator\",\n        regex : /\\?|:|,|;|\\./\n    }, {\n        token : \"paren.lparen\",\n        regex : /[\\[\\({]/\n    }, {\n        token : \"paren.rparen\",\n        regex : /[\\])}]/\n    }, {\n        token : \"text\",\n        regex : \"\\\\s+\"\n    } ];\n\n    this.$rules[\"twig-qqstring\"] = [{\n            token : \"constant.language.escape\",\n            regex : /\\\\[\\\\\"$#ntr]|#{[^\"}]*}/\n        }, {\n            token : \"string\",\n            regex : '\"',\n            next  : \"twig-start\"\n        }, {\n            defaultToken : \"string\"\n        }\n    ];\n\n    this.$rules[\"twig-qstring\"] = [{\n            token : \"constant.language.escape\",\n            regex : /\\\\[\\\\'ntr]}/\n        }, {\n            token : \"string\",\n            regex : \"'\",\n            next  : \"twig-start\"\n        }, {\n            defaultToken : \"string\"\n        }\n    ];\n\n    this.normalizeRules();\n};\n\noop.inherits(TwigHighlightRules, TextHighlightRules);\n\nexports.TwigHighlightRules = TwigHighlightRules;\n});\n\nace.define(\"ace/mode/twig\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/twig_highlight_rules\",\"ace/mode/matching_brace_outdent\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar HtmlMode = require(\"./html\").Mode;\nvar TwigHighlightRules = require(\"./twig_highlight_rules\").TwigHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\n\nvar Mode = function() {\n    HtmlMode.call(this);\n    this.HighlightRules = TwigHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n};\noop.inherits(Mode, HtmlMode);\n\n(function() {\n    this.blockComment = {start: \"{#\", end: \"#}\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n    this.$id = \"ace/mode/twig\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-typescript.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/typescript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\n\nvar TypeScriptHighlightRules = function(options) {\n\n    var tsRules =  [\n        {\n            token: [\"keyword.operator.ts\", \"text\", \"variable.parameter.function.ts\", \"text\"],\n            regex: \"\\\\b(module)(\\\\s*)([a-zA-Z0-9_?.$][\\\\w?.$]*)(\\\\s*\\\\{)\"\n        }, \n        {\n            token: [\"storage.type.variable.ts\", \"text\", \"keyword.other.ts\", \"text\"],\n            regex: \"(super)(\\\\s*\\\\()([a-zA-Z0-9,_?.$\\\\s]+\\\\s*)(\\\\))\"\n        },\n        {\n            token: [\"entity.name.function.ts\",\"paren.lparen\", \"paren.rparen\"],\n            regex: \"([a-zA-Z_?.$][\\\\w?.$]*)(\\\\()(\\\\))\"\n        },\n        {\n            token: [\"variable.parameter.function.ts\", \"text\", \"variable.parameter.function.ts\"],\n            regex: \"([a-zA-Z0-9_?.$][\\\\w?.$]*)(\\\\s*:\\\\s*)([a-zA-Z0-9_?.$][\\\\w?.$]*)\"\n        },  \n        {\n            token: [\"keyword.operator.ts\"],\n            regex: \"(?:\\\\b(constructor|declare|interface|as|AS|public|private|class|extends|export|super)\\\\b)\"\n        }, \n        {\n            token: [\"storage.type.variable.ts\"],\n            regex: \"(?:\\\\b(this\\\\.|string\\\\b|bool\\\\b|number)\\\\b)\"\n        }, \n        {\n            token: [\"keyword.operator.ts\", \"storage.type.variable.ts\", \"keyword.operator.ts\", \"storage.type.variable.ts\"],\n            regex: \"(class)(\\\\s+[a-zA-Z0-9_?.$][\\\\w?.$]*\\\\s+)(extends)(\\\\s+[a-zA-Z0-9_?.$][\\\\w?.$]*\\\\s+)?\"\n        },\n        {\n            token: \"keyword\",\n            regex: \"(?:super|export|class|extends|import)\\\\b\"\n        }\n    ];\n\n    var JSRules = new JavaScriptHighlightRules({jsx: (options && options.jsx) == true}).getRules();\n    \n    JSRules.start = tsRules.concat(JSRules.start);\n    this.$rules = JSRules;\n};\n\noop.inherits(TypeScriptHighlightRules, JavaScriptHighlightRules);\n\nexports.TypeScriptHighlightRules = TypeScriptHighlightRules;\n});\n\nace.define(\"ace/mode/typescript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/typescript_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/mode/matching_brace_outdent\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar jsMode = require(\"./javascript\").Mode;\nvar TypeScriptHighlightRules = require(\"./typescript_highlight_rules\").TypeScriptHighlightRules;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\n\nvar Mode = function() {\n    this.HighlightRules = TypeScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, jsMode);\n\n(function() {\n    this.createWorker = function(session) {\n        return null;\n    };\n    this.$id = \"ace/mode/typescript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-vala.js",
    "content": "ace.define(\"ace/mode/vala_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar ValaHighlightRules = function() {\n\n    this.$rules = { start: \n       [ { token: \n            [ 'meta.using.vala',\n              'keyword.other.using.vala',\n              'meta.using.vala',\n              'storage.modifier.using.vala',\n              'meta.using.vala',\n              'punctuation.terminator.vala' ],\n           regex: '^(\\\\s*)(using)\\\\b(?:(\\\\s*)([^ ;$]+)(\\\\s*)((?:;)?))?' },\n         { include: '#code' } ],\n      '#all-types': \n       [ { include: '#primitive-arrays' },\n         { include: '#primitive-types' },\n         { include: '#object-types' } ],\n      '#annotations': \n       [ { token: \n            [ 'storage.type.annotation.vala',\n              'punctuation.definition.annotation-arguments.begin.vala' ],\n           regex: '(@[^ (]+)(\\\\()',\n           push: \n            [ { token: 'punctuation.definition.annotation-arguments.end.vala',\n                regex: '\\\\)',\n                next: 'pop' },\n              { token: \n                 [ 'constant.other.key.vala',\n                   'text',\n                   'keyword.operator.assignment.vala' ],\n                regex: '(\\\\w*)(\\\\s*)(=)' },\n              { include: '#code' },\n              { token: 'punctuation.seperator.property.vala', regex: ',' },\n              { defaultToken: 'meta.declaration.annotation.vala' } ] },\n         { token: 'storage.type.annotation.vala', regex: '@\\\\w*' } ],\n      '#anonymous-classes-and-new': \n       [ { token: 'keyword.control.new.vala',\n           regex: '\\\\bnew\\\\b',\n           push_disabled: \n            [ { token: 'text',\n                regex: '(?<=\\\\)|\\\\])(?!\\\\s*{)|(?<=})|(?=;)',\n                TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n                originalRegex: '(?<=\\\\)|\\\\])(?!\\\\s*{)|(?<=})|(?=;)',\n                next: 'pop' },\n              { token: [ 'storage.type.vala', 'text' ],\n                regex: '(\\\\w+)(\\\\s*)(?=\\\\[)',\n                push: \n                 [ { token: 'text', regex: '}|(?=;|\\\\))', next: 'pop' },\n                   { token: 'text',\n                     regex: '\\\\[',\n                     push: \n                      [ { token: 'text', regex: '\\\\]', next: 'pop' },\n                        { include: '#code' } ] },\n                   { token: 'text',\n                     regex: '{',\n                     push: \n                      [ { token: 'text', regex: '(?=})', next: 'pop' },\n                        { include: '#code' } ] } ] },\n              { token: 'text',\n                regex: '(?=\\\\w.*\\\\()',\n                push: \n                 [ { token: 'text',\n                     regex: '(?<=\\\\))',\n                     TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n                     originalRegex: '(?<=\\\\))',\n                     next: 'pop' },\n                   { include: '#object-types' },\n                   { token: 'text',\n                     regex: '\\\\(',\n                     push: \n                      [ { token: 'text', regex: '\\\\)', next: 'pop' },\n                        { include: '#code' } ] } ] },\n              { token: 'meta.inner-class.vala',\n                regex: '{',\n                push: \n                 [ { token: 'meta.inner-class.vala', regex: '}', next: 'pop' },\n                   { include: '#class-body' },\n                   { defaultToken: 'meta.inner-class.vala' } ] } ] } ],\n      '#assertions': \n       [ { token: \n            [ 'keyword.control.assert.vala',\n              'meta.declaration.assertion.vala' ],\n           regex: '\\\\b(assert|requires|ensures)(\\\\s)',\n           push: \n            [ { token: 'meta.declaration.assertion.vala',\n                regex: '$',\n                next: 'pop' },\n              { token: 'keyword.operator.assert.expression-seperator.vala',\n                regex: ':' },\n              { include: '#code' },\n              { defaultToken: 'meta.declaration.assertion.vala' } ] } ],\n      '#class': \n       [ { token: 'meta.class.vala',\n           regex: '(?=\\\\w?[\\\\w\\\\s]*(?:class|(?:@)?interface|enum|struct|namespace)\\\\s+\\\\w+)',\n           push: \n            [ { token: 'paren.vala',\n                regex: '}',\n                next: 'pop' },\n              { include: '#storage-modifiers' },\n              { include: '#comments' },\n              { token: \n                 [ 'storage.modifier.vala',\n                   'meta.class.identifier.vala',\n                   'entity.name.type.class.vala' ],\n                regex: '(class|(?:@)?interface|enum|struct|namespace)(\\\\s+)([\\\\w\\\\.]+)' },\n              { token: 'storage.modifier.extends.vala',\n                regex: ':',\n                push: \n                 [ { token: 'meta.definition.class.inherited.classes.vala',\n                     regex: '(?={|,)',\n                     next: 'pop' },\n                   { include: '#object-types-inherited' },\n                   { include: '#comments' },\n                   { defaultToken: 'meta.definition.class.inherited.classes.vala' } ] },\n              { token: \n                 [ 'storage.modifier.implements.vala',\n                   'meta.definition.class.implemented.interfaces.vala' ],\n                regex: '(,)(\\\\s)',\n                push: \n                 [ { token: 'meta.definition.class.implemented.interfaces.vala',\n                     regex: '(?=\\\\{)',\n                     next: 'pop' },\n                   { include: '#object-types-inherited' },\n                   { include: '#comments' },\n                   { defaultToken: 'meta.definition.class.implemented.interfaces.vala' } ] },\n              { token: 'paren.vala',\n                regex: '{',\n                push: \n                 [ { token: 'paren.vala', regex: '(?=})', next: 'pop' },\n                   { include: '#class-body' },\n                   { defaultToken: 'meta.class.body.vala' } ] },\n              { defaultToken: 'meta.class.vala' } ],\n           comment: 'attempting to put namespace in here.' } ],\n      '#class-body': \n       [ { include: '#comments' },\n         { include: '#class' },\n         { include: '#enums' },\n         { include: '#methods' },\n         { include: '#annotations' },\n         { include: '#storage-modifiers' },\n         { include: '#code' } ],\n      '#code': \n       [ { include: '#comments' },\n         { include: '#class' },\n         { token: 'text',\n           regex: '{',\n           push: \n            [ { token: 'text', regex: '}', next: 'pop' },\n              { include: '#code' } ] },\n         { include: '#assertions' },\n         { include: '#parens' },\n         { include: '#constants-and-special-vars' },\n         { include: '#anonymous-classes-and-new' },\n         { include: '#keywords' },\n         { include: '#storage-modifiers' },\n         { include: '#strings' },\n         { include: '#all-types' } ],\n      '#comments': \n       [ { token: 'punctuation.definition.comment.vala',\n           regex: '/\\\\*\\\\*/' },\n         { include: 'text.html.javadoc' },\n         { include: '#comments-inline' } ],\n      '#comments-inline': \n       [ { token: 'punctuation.definition.comment.vala',\n           regex: '/\\\\*',\n           push: \n            [ { token: 'punctuation.definition.comment.vala',\n                regex: '\\\\*/',\n                next: 'pop' },\n              { defaultToken: 'comment.block.vala' } ] },\n         { token: \n            [ 'text',\n              'punctuation.definition.comment.vala',\n              'comment.line.double-slash.vala' ],\n           regex: '(\\\\s*)(//)(.*$)' } ],\n      '#constants-and-special-vars': \n       [ { token: 'constant.language.vala',\n           regex: '\\\\b(?:true|false|null)\\\\b' },\n         { token: 'variable.language.vala',\n           regex: '\\\\b(?:this|base)\\\\b' },\n         { token: 'constant.numeric.vala',\n           regex: '\\\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\\\.?[0-9]*|\\\\.[0-9]+)(?:(?:e|E)(?:\\\\+|-)?[0-9]+)?)(?:[LlFfUuDd]|UL|ul)?\\\\b' },\n         { token: [ 'keyword.operator.dereference.vala', 'constant.other.vala' ],\n           regex: '((?:\\\\.)?)\\\\b([A-Z][A-Z0-9_]+)(?!<|\\\\.class|\\\\s*\\\\w+\\\\s*=)\\\\b' } ],\n      '#enums': \n       [ { token: 'text',\n           regex: '^(?=\\\\s*[A-Z0-9_]+\\\\s*(?:{|\\\\(|,))',\n           push: \n            [ { token: 'text', regex: '(?=;|})', next: 'pop' },\n              { token: 'constant.other.enum.vala',\n                regex: '\\\\w+',\n                push: \n                 [ { token: 'meta.enum.vala', regex: '(?=,|;|})', next: 'pop' },\n                   { include: '#parens' },\n                   { token: 'text',\n                     regex: '{',\n                     push: \n                      [ { token: 'text', regex: '}', next: 'pop' },\n                        { include: '#class-body' } ] },\n                   { defaultToken: 'meta.enum.vala' } ] } ] } ],\n      '#keywords': \n       [ { token: 'keyword.control.catch-exception.vala',\n           regex: '\\\\b(?:try|catch|finally|throw)\\\\b' },\n         { token: 'keyword.control.vala', regex: '\\\\?|:|\\\\?\\\\?' },\n         { token: 'keyword.control.vala',\n           regex: '\\\\b(?:return|break|case|continue|default|do|while|for|foreach|switch|if|else|in|yield|get|set|value)\\\\b' },\n         { token: 'keyword.operator.vala',\n           regex: '\\\\b(?:typeof|is|as)\\\\b' },\n         { token: 'keyword.operator.comparison.vala',\n           regex: '==|!=|<=|>=|<>|<|>' },\n         { token: 'keyword.operator.assignment.vala', regex: '=' },\n         { token: 'keyword.operator.increment-decrement.vala',\n           regex: '\\\\-\\\\-|\\\\+\\\\+' },\n         { token: 'keyword.operator.arithmetic.vala',\n           regex: '\\\\-|\\\\+|\\\\*|\\\\/|%' },\n         { token: 'keyword.operator.logical.vala', regex: '!|&&|\\\\|\\\\|' },\n         { token: 'keyword.operator.dereference.vala',\n           regex: '\\\\.(?=\\\\S)',\n           originalRegex: '(?<=\\\\S)\\\\.(?=\\\\S)' },\n         { token: 'punctuation.terminator.vala', regex: ';' },\n         { token: 'keyword.operator.ownership', regex: 'owned|unowned' } ],\n      '#methods': \n       [ { token: 'meta.method.vala',\n           regex: '(?!new)(?=\\\\w.*\\\\s+)(?=[^=]+\\\\()',\n           push: \n            [ { token: 'paren.vala', regex: '}|(?=;)', next: 'pop' },\n              { include: '#storage-modifiers' },\n              { token: [ 'entity.name.function.vala', 'meta.method.identifier.vala' ],\n                regex: '([\\\\~\\\\w\\\\.]+)(\\\\s*\\\\()',\n                push: \n                 [ { token: 'meta.method.identifier.vala',\n                     regex: '\\\\)',\n                     next: 'pop' },\n                   { include: '#parameters' },\n                   { defaultToken: 'meta.method.identifier.vala' } ] },\n              { token: 'meta.method.return-type.vala',\n                regex: '(?=\\\\w.*\\\\s+\\\\w+\\\\s*\\\\()',\n                push: \n                 [ { token: 'meta.method.return-type.vala',\n                     regex: '(?=\\\\w+\\\\s*\\\\()',\n                     next: 'pop' },\n                   { include: '#all-types' },\n                   { defaultToken: 'meta.method.return-type.vala' } ] },\n              { include: '#throws' },\n              { token: 'paren.vala',\n                regex: '{',\n                push: \n                 [ { token: 'paren.vala', regex: '(?=})', next: 'pop' },\n                   { include: '#code' },\n                   { defaultToken: 'meta.method.body.vala' } ] },\n              { defaultToken: 'meta.method.vala' } ] } ],\n      '#namespace': \n       [ { token: 'text',\n           regex: '^(?=\\\\s*[A-Z0-9_]+\\\\s*(?:{|\\\\(|,))',\n           push: \n            [ { token: 'text', regex: '(?=;|})', next: 'pop' },\n              { token: 'constant.other.namespace.vala',\n                regex: '\\\\w+',\n                push: \n                 [ { token: 'meta.namespace.vala', regex: '(?=,|;|})', next: 'pop' },\n                   { include: '#parens' },\n                   { token: 'text',\n                     regex: '{',\n                     push: \n                      [ { token: 'text', regex: '}', next: 'pop' },\n                        { include: '#code' } ] },\n                   { defaultToken: 'meta.namespace.vala' } ] } ],\n           comment: 'This is not quite right. See the class grammar right now' } ],\n      '#object-types': \n       [ { token: 'storage.type.generic.vala',\n           regex: '\\\\b(?:[a-z]\\\\w*\\\\.)*[A-Z]+\\\\w*<',\n           push: \n            [ { token: 'storage.type.generic.vala',\n                regex: '>|[^\\\\w\\\\s,\\\\?<\\\\[()\\\\]]',\n                TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n                originalRegex: '>|[^\\\\w\\\\s,\\\\?<\\\\[(?:[,]+)\\\\]]',\n                next: 'pop' },\n              { include: '#object-types' },\n              { token: 'storage.type.generic.vala',\n                regex: '<',\n                push: \n                 [ { token: 'storage.type.generic.vala',\n                     regex: '>|[^\\\\w\\\\s,\\\\[\\\\]<]',\n                     next: 'pop' },\n                   { defaultToken: 'storage.type.generic.vala' } ],\n                comment: 'This is just to support <>\\'s with no actual type prefix' },\n              { defaultToken: 'storage.type.generic.vala' } ] },\n         { token: 'storage.type.object.array.vala',\n           regex: '\\\\b(?:[a-z]\\\\w*\\\\.)*[A-Z]+\\\\w*(?=\\\\[)',\n           push: \n            [ { token: 'storage.type.object.array.vala',\n                regex: '(?=[^\\\\]\\\\s])',\n                next: 'pop' },\n              { token: 'text',\n                regex: '\\\\[',\n                push: \n                 [ { token: 'text', regex: '\\\\]', next: 'pop' },\n                   { include: '#code' } ] },\n              { defaultToken: 'storage.type.object.array.vala' } ] },\n         { token: \n            [ 'storage.type.vala',\n              'keyword.operator.dereference.vala',\n              'storage.type.vala' ],\n           regex: '\\\\b(?:([a-z]\\\\w*)(\\\\.))*([A-Z]+\\\\w*\\\\b)' } ],\n      '#object-types-inherited': \n       [ { token: 'entity.other.inherited-class.vala',\n           regex: '\\\\b(?:[a-z]\\\\w*\\\\.)*[A-Z]+\\\\w*<',\n           push: \n            [ { token: 'entity.other.inherited-class.vala',\n                regex: '>|[^\\\\w\\\\s,<]',\n                next: 'pop' },\n              { include: '#object-types' },\n              { token: 'storage.type.generic.vala',\n                regex: '<',\n                push: \n                 [ { token: 'storage.type.generic.vala',\n                     regex: '>|[^\\\\w\\\\s,<]',\n                     next: 'pop' },\n                   { defaultToken: 'storage.type.generic.vala' } ],\n                comment: 'This is just to support <>\\'s with no actual type prefix' },\n              { defaultToken: 'entity.other.inherited-class.vala' } ] },\n         { token: \n            [ 'entity.other.inherited-class.vala',\n              'keyword.operator.dereference.vala',\n              'entity.other.inherited-class.vala' ],\n           regex: '\\\\b(?:([a-z]\\\\w*)(\\\\.))*([A-Z]+\\\\w*)' } ],\n      '#parameters': \n       [ { token: 'storage.modifier.vala', regex: 'final' },\n         { include: '#primitive-arrays' },\n         { include: '#primitive-types' },\n         { include: '#object-types' },\n         { token: 'variable.parameter.vala', regex: '\\\\w+' } ],\n      '#parens': \n       [ { token: 'text',\n           regex: '\\\\(',\n           push: \n            [ { token: 'text', regex: '\\\\)', next: 'pop' },\n              { include: '#code' } ] } ],\n      '#primitive-arrays': \n       [ { token: 'storage.type.primitive.array.vala',\n           regex: '\\\\b(?:bool|byte|sbyte|char|decimal|double|float|int|uint|long|ulong|object|short|ushort|string|void|int8|int16|int32|int64|uint8|uint16|uint32|uint64)(?:\\\\[\\\\])*\\\\b' } ],\n      '#primitive-types': \n       [ { token: 'storage.type.primitive.vala',\n           regex: '\\\\b(?:var|bool|byte|sbyte|char|decimal|double|float|int|uint|long|ulong|object|short|ushort|string|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64)\\\\b',\n           comment: 'var is not really a primitive, but acts like one in most cases' } ],\n      '#storage-modifiers': \n       [ { token: 'storage.modifier.vala',\n           regex: '\\\\b(?:public|private|protected|internal|static|final|sealed|virtual|override|abstract|readonly|volatile|dynamic|async|unsafe|out|ref|weak|owned|unowned|const)\\\\b',\n           comment: 'Not sure about unsafe and readonly' } ],\n      '#strings': \n       [ { token: 'punctuation.definition.string.begin.vala',\n           regex: '@\"',\n           push: \n            [ { token: 'punctuation.definition.string.end.vala',\n                regex: '\"',\n                next: 'pop' },\n              { token: 'constant.character.escape.vala',\n                regex: '\\\\\\\\.|%[\\\\w\\\\.\\\\-]+|\\\\$(?:\\\\w+|\\\\([\\\\w\\\\s\\\\+\\\\-\\\\*\\\\/]+\\\\))' },\n              { defaultToken: 'string.quoted.interpolated.vala' } ] },\n         { token: 'punctuation.definition.string.begin.vala',\n           regex: '\"',\n           push: \n            [ { token: 'punctuation.definition.string.end.vala',\n                regex: '\"',\n                next: 'pop' },\n              { token: 'constant.character.escape.vala', regex: '\\\\\\\\.' },\n              { token: 'constant.character.escape.vala',\n                regex: '%[\\\\w\\\\.\\\\-]+' },\n              { defaultToken: 'string.quoted.double.vala' } ] },\n         { token: 'punctuation.definition.string.begin.vala',\n           regex: '\\'',\n           push: \n            [ { token: 'punctuation.definition.string.end.vala',\n                regex: '\\'',\n                next: 'pop' },\n              { token: 'constant.character.escape.vala', regex: '\\\\\\\\.' },\n              { defaultToken: 'string.quoted.single.vala' } ] },\n         { token: 'punctuation.definition.string.begin.vala',\n           regex: '\"\"\"',\n           push: \n            [ { token: 'punctuation.definition.string.end.vala',\n                regex: '\"\"\"',\n                next: 'pop' },\n              { token: 'constant.character.escape.vala',\n                regex: '%[\\\\w\\\\.\\\\-]+' },\n              { defaultToken: 'string.quoted.triple.vala' } ] } ],\n      '#throws': \n       [ { token: 'storage.modifier.vala',\n           regex: 'throws',\n           push: \n            [ { token: 'meta.throwables.vala', regex: '(?={|;)', next: 'pop' },\n              { include: '#object-types' },\n              { defaultToken: 'meta.throwables.vala' } ] } ],\n      '#values': \n       [ { include: '#strings' },\n         { include: '#object-types' },\n         { include: '#constants-and-special-vars' } ] }\n    \n    this.normalizeRules();\n};\n\nValaHighlightRules.metaData = { \n    comment: 'Based heavily on the Java bundle\\'s language syntax. TODO:\\n* Closures\\n* Delegates\\n* Properties: Better support for properties.\\n* Annotations\\n* Error domains\\n* Named arguments\\n* Array slicing, negative indexes, multidimensional\\n* construct blocks\\n* lock blocks?\\n* regex literals\\n* DocBlock syntax highlighting. (Currently importing javadoc)\\n* Folding rule for comments.\\n',\n      fileTypes: [ 'vala' ],\n      foldingStartMarker: '(\\\\{\\\\s*(//.*)?$|^\\\\s*// \\\\{\\\\{\\\\{)',\n      foldingStopMarker: '^\\\\s*(\\\\}|// \\\\}\\\\}\\\\}$)',\n      name: 'Vala',\n      scopeName: 'source.vala' }\n\n\noop.inherits(ValaHighlightRules, TextHighlightRules);\n\nexports.ValaHighlightRules = ValaHighlightRules;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/vala\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/tokenizer\",\"ace/mode/vala_highlight_rules\",\"ace/mode/folding/cstyle\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/mode/matching_brace_outdent\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar Tokenizer = require(\"../tokenizer\").Tokenizer;\nvar ValaHighlightRules = require(\"./vala_highlight_rules\").ValaHighlightRules;\nvar FoldMode = require(\"./folding/cstyle\").FoldMode;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\n\nvar Mode = function() {\n    this.HighlightRules = ValaHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n    this.$id = \"ace/mode/vala\"\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-vbscript.js",
    "content": "ace.define(\"ace/mode/vbscript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar VBScriptHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"keyword.control.asp\":  \"If|Then|Else|ElseIf|End|While|Wend|For|To|Each|Case|Select|Return\"\n            + \"|Continue|Do|Until|Loop|Next|With|Exit|Function|Property|Type|Enum|Sub|IIf\",\n        \"storage.type.asp\": \"Dim|Call|Class|Const|Dim|Redim|Set|Let|Get|New|Randomize|Option|Explicit\",\n        \"storage.modifier.asp\": \"Private|Public|Default\",\n        \"keyword.operator.asp\": \"Mod|And|Not|Or|Xor|as\",\n        \"constant.language.asp\": \"Empty|False|Nothing|Null|True\",\n        \"support.class.asp\": \"Application|ObjectContext|Request|Response|Server|Session\",\n        \"support.class.collection.asp\": \"Contents|StaticObjects|ClientCertificate|Cookies|Form|QueryString|ServerVariables\",\n        \"support.constant.asp\": \"TotalBytes|Buffer|CacheControl|Charset|ContentType|Expires|ExpiresAbsolute\"\n            + \"|IsClientConnected|PICS|Status|ScriptTimeout|CodePage|LCID|SessionID|Timeout\",\n        \"support.function.asp\": \"Lock|Unlock|SetAbort|SetComplete|BinaryRead|AddHeader|AppendToLog\"\n            + \"|BinaryWrite|Clear|Flush|Redirect|Write|CreateObject|HTMLEncode|MapPath|URLEncode|Abandon|Convert|Regex\",\n        \"support.function.event.asp\": \"Application_OnEnd|Application_OnStart\"\n            + \"|OnTransactionAbort|OnTransactionCommit|Session_OnEnd|Session_OnStart\",\n        \"support.function.vb.asp\": \"Array|Add|Asc|Atn|CBool|CByte|CCur|CDate|CDbl|Chr|CInt|CLng\"\n            + \"|Conversions|Cos|CreateObject|CSng|CStr|Date|DateAdd|DateDiff|DatePart|DateSerial\"\n            + \"|DateValue|Day|Derived|Math|Escape|Eval|Exists|Exp|Filter|FormatCurrency\"\n            + \"|FormatDateTime|FormatNumber|FormatPercent|GetLocale|GetObject|GetRef|Hex\"\n            + \"|Hour|InputBox|InStr|InStrRev|Int|Fix|IsArray|IsDate|IsEmpty|IsNull|IsNumeric\"\n            + \"|IsObject|Item|Items|Join|Keys|LBound|LCase|Left|Len|LoadPicture|Log|LTrim|RTrim\"\n            + \"|Trim|Maths|Mid|Minute|Month|MonthName|MsgBox|Now|Oct|Remove|RemoveAll|Replace\"\n            + \"|RGB|Right|Rnd|Round|ScriptEngine|ScriptEngineBuildVersion|ScriptEngineMajorVersion\"\n            + \"|ScriptEngineMinorVersion|Second|SetLocale|Sgn|Sin|Space|Split|Sqr|StrComp|String|StrReverse\"\n            + \"|Tan|Time|Timer|TimeSerial|TimeValue|TypeName|UBound|UCase|Unescape|VarType|Weekday|WeekdayName|Year\",\n        \"support.type.vb.asp\": \"vbtrue|vbfalse|vbcr|vbcrlf|vbformfeed|vblf|vbnewline|vbnullchar|vbnullstring|\"\n            + \"int32|vbtab|vbverticaltab|vbbinarycompare|vbtextcomparevbsunday|vbmonday|vbtuesday|vbwednesday\"\n            + \"|vbthursday|vbfriday|vbsaturday|vbusesystemdayofweek|vbfirstjan1|vbfirstfourdays|vbfirstfullweek\"\n            + \"|vbgeneraldate|vblongdate|vbshortdate|vblongtime|vbshorttime|vbobjecterror|vbEmpty|vbNull|vbInteger\"\n            + \"|vbLong|vbSingle|vbDouble|vbCurrency|vbDate|vbString|vbObject|vbError|vbBoolean|vbVariant\"\n            + \"|vbDataObject|vbDecimal|vbByte|vbArray\"\n    }, \"identifier\", true);\n\n    this.$rules = {\n    \"start\": [\n        {\n            token: [\n                \"meta.ending-space\"\n            ],\n            regex: \"$\"\n        },\n        {\n            token: [null],\n            regex: \"^(?=\\\\t)\",\n            next: \"state_3\"\n        },\n        {\n            token: [null],\n            regex: \"^(?= )\",\n            next: \"state_4\"\n        },\n        {\n            token: [\n                \"text\",\n                \"storage.type.function.asp\",\n                \"text\",\n                \"entity.name.function.asp\",\n                \"text\",\n                \"punctuation.definition.parameters.asp\",\n                \"variable.parameter.function.asp\",\n                \"punctuation.definition.parameters.asp\"\n            ],\n            regex: \"^(\\\\s*)(Function|Sub)(\\\\s+)([a-zA-Z_]\\\\w*)(\\\\s*)(\\\\()([^)]*)(\\\\))\"\n        },\n        {\n            token: \"punctuation.definition.comment.asp\",\n            regex: \"'|REM(?=\\\\s|$)\",\n            next: \"comment\",\n            caseInsensitive: true\n        },\n        {\n            token: \"storage.type.asp\",\n            regex: \"On Error Resume Next|On Error GoTo\",\n            caseInsensitive: true\n        },\n        {\n            token: \"punctuation.definition.string.begin.asp\",\n            regex: '\"',\n            next: \"string\"\n        },\n        {\n            token: [\n                \"punctuation.definition.variable.asp\"\n            ],\n            regex: \"(\\\\$)[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\\\b\\\\s*\"\n        },\n        {\n            token: \"constant.numeric.asp\",\n            regex: \"-?\\\\b(?:(?:0(?:x|X)[0-9a-fA-F]*)|(?:(?:[0-9]+\\\\.?[0-9]*)|(?:\\\\.[0-9]+))(?:(?:e|E)(?:\\\\+|-)?[0-9]+)?)(?:L|l|UL|ul|u|U|F|f)?\\\\b\"\n        },\n        {\n            regex: \"\\\\w+\",\n            token: keywordMapper\n        },\n        {\n            token: [\"entity.name.function.asp\"],\n            regex: \"(?:(\\\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\\\b)(?=\\\\(\\\\)?))\"\n        },\n        {\n            token: [\"keyword.operator.asp\"],\n            regex: \"\\\\-|\\\\+|\\\\*\\\\/|\\\\>|\\\\<|\\\\=|\\\\&\"\n        }\n    ],\n    \"state_3\": [\n        {\n            token: [\n                \"meta.odd-tab.tabs\",\n                \"meta.even-tab.tabs\"\n            ],\n            regex: \"(\\\\t)(\\\\t)?\"\n        },\n        {\n            token: \"meta.leading-space\",\n            regex: \"(?=[^\\\\t])\",\n            next: \"start\"\n        },\n        {\n            token: \"meta.leading-space\",\n            regex: \".\",\n            next: \"state_3\"\n        }\n    ],\n    \"state_4\": [\n        {\n            token: [\"meta.odd-tab.spaces\", \"meta.even-tab.spaces\"],\n            regex: \"(  )(  )?\"\n        },\n        {\n            token: \"meta.leading-space\",\n            regex: \"(?=[^ ])\",\n            next: \"start\"\n        },\n        {\n            defaultToken: \"meta.leading-space\"\n        }\n    ],\n    \"comment\": [\n        {\n            token: \"comment.line.apostrophe.asp\",\n            regex: \"$|(?=(?:%>))\",\n            next: \"start\"\n        },\n        {\n            defaultToken: \"comment.line.apostrophe.asp\"\n        }\n    ],\n    \"string\": [\n        {\n            token: \"constant.character.escape.apostrophe.asp\",\n            regex: '\"\"'\n        },\n        {\n            token: \"string.quoted.double.asp\",\n            regex: '\"',\n            next: \"start\"\n        },\n        {\n            defaultToken: \"string.quoted.double.asp\"\n        }\n    ]\n}\n\n};\n\noop.inherits(VBScriptHighlightRules, TextHighlightRules);\n\nexports.VBScriptHighlightRules = VBScriptHighlightRules;\n});\n\nace.define(\"ace/mode/vbscript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/vbscript_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar VBScriptHighlightRules = require(\"./vbscript_highlight_rules\").VBScriptHighlightRules;\n\nvar Mode = function() {\n    this.HighlightRules = VBScriptHighlightRules;\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n       \n    this.lineCommentStart = [\"'\", \"REM\"];\n    \n    this.$id = \"ace/mode/vbscript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-velocity.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.supportType = \"align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.supportConstant = \"absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero\";\nvar supportConstantColor = exports.supportConstantColor = \"aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+)|(?:[0-9]*\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses  = exports.pseudoClasses =  \"(:)\\\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": supportFunction,\n        \"support.constant\": supportConstant,\n        \"support.type\": supportType,\n        \"support.constant.color\": supportConstantColor,\n        \"support.constant.fonts\": supportConstantFonts\n    }, \"text\", true);\n\n    this.$rules = {\n        \"start\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"@.*?{\",\n            push:  \"media\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"media\" : [{\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token: \"paren.lparen\",\n            regex: \"\\\\{\",\n            push:  \"ruleset\"\n        }, {\n            token: \"string\",\n            regex: \"\\\\}\",\n            next:  \"pop\"\n        }, {\n            token: \"keyword\",\n            regex: \"#[a-z0-9-_]+\"\n        }, {\n            token: \"variable\",\n            regex: \"\\\\.[a-z0-9-_]+\"\n        }, {\n            token: \"string\",\n            regex: \":[a-z0-9-_]+\"\n        }, {\n            token: \"constant\",\n            regex: \"[a-z0-9-_]+\"\n        }, {\n            caseInsensitive: true\n        }],\n\n        \"comment\" : [{\n            token : \"comment\",\n            regex : \"\\\\*\\\\/\",\n            next : \"pop\"\n        }, {\n            defaultToken : \"comment\"\n        }],\n\n        \"ruleset\" : [\n        {\n            token : \"paren.rparen\",\n            regex : \"\\\\}\",\n            next:   \"pop\"\n        }, {\n            token : \"comment\", // multi line comment\n            regex : \"\\\\/\\\\*\",\n            push : \"comment\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : [\"constant.numeric\", \"keyword\"],\n            regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n        }, {\n            token : \"constant.numeric\",\n            regex : numRe\n        }, {\n            token : \"constant.numeric\",  // hex6 color\n            regex : \"#[a-f0-9]{6}\"\n        }, {\n            token : \"constant.numeric\", // hex3 color\n            regex : \"#[a-f0-9]{3}\"\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n            regex : pseudoElements\n        }, {\n            token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n            regex : pseudoClasses\n        }, {\n            token : [\"support.function\", \"string\", \"support.function\"],\n            regex : \"(url\\\\()(.*)(\\\\))\"\n        }, {\n            token : keywordMapper,\n            regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n        }, {\n            caseInsensitive: true\n        }]\n    };\n\n    this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar propertyMap = {\n    \"background\": {\"#$0\": 1},\n    \"background-color\": {\"#$0\": 1, \"transparent\": 1, \"fixed\": 1},\n    \"background-image\": {\"url('/$0')\": 1},\n    \"background-repeat\": {\"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1},\n    \"background-position\": {\"bottom\":2, \"center\":2, \"left\":2, \"right\":2, \"top\":2, \"inherit\":2},\n    \"background-attachment\": {\"scroll\": 1, \"fixed\": 1},\n    \"background-size\": {\"cover\": 1, \"contain\": 1},\n    \"background-clip\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"background-origin\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n    \"border\": {\"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1},\n    \"border-color\": {\"#$0\": 1},\n    \"border-style\": {\"solid\":2, \"dashed\":2, \"dotted\":2, \"double\":2, \"groove\":2, \"hidden\":2, \"inherit\":2, \"inset\":2, \"none\":2, \"outset\":2, \"ridged\":2},\n    \"border-collapse\": {\"collapse\": 1, \"separate\": 1},\n    \"bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"clear\": {\"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1},\n    \"color\": {\"#$0\": 1, \"rgb(#$00,0,0)\": 1},\n    \"cursor\": {\"default\": 1, \"pointer\": 1, \"move\": 1, \"text\": 1, \"wait\": 1, \"help\": 1, \"progress\": 1, \"n-resize\": 1, \"ne-resize\": 1, \"e-resize\": 1, \"se-resize\": 1, \"s-resize\": 1, \"sw-resize\": 1, \"w-resize\": 1, \"nw-resize\": 1},\n    \"display\": {\"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1},\n    \"empty-cells\": {\"show\": 1, \"hide\": 1},\n    \"float\": {\"left\": 1, \"right\": 1, \"none\": 1},\n    \"font-family\": {\"Arial\":2,\"Comic Sans MS\":2,\"Consolas\":2,\"Courier New\":2,\"Courier\":2,\"Georgia\":2,\"Monospace\":2,\"Sans-Serif\":2, \"Segoe UI\":2,\"Tahoma\":2,\"Times New Roman\":2,\"Trebuchet MS\":2,\"Verdana\": 1},\n    \"font-size\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"font-weight\": {\"bold\": 1, \"normal\": 1},\n    \"font-style\": {\"italic\": 1, \"normal\": 1},\n    \"font-variant\": {\"normal\": 1, \"small-caps\": 1},\n    \"height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"letter-spacing\": {\"normal\": 1},\n    \"line-height\": {\"normal\": 1},\n    \"list-style-type\": {\"none\": 1, \"disc\": 1, \"circle\": 1, \"square\": 1, \"decimal\": 1, \"decimal-leading-zero\": 1, \"lower-roman\": 1, \"upper-roman\": 1, \"lower-greek\": 1, \"lower-latin\": 1, \"upper-latin\": 1, \"georgian\": 1, \"lower-alpha\": 1, \"upper-alpha\": 1},\n    \"margin\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"margin-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"max-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"min-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"overflow\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-x\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"overflow-y\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n    \"padding\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"padding-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"page-break-after\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"page-break-before\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n    \"position\": {\"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1},\n    \"right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"table-layout\": {\"fixed\": 1, \"auto\": 1},\n    \"text-decoration\": {\"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1},\n    \"text-align\": {\"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1},\n    \"text-transform\": {\"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1},\n    \"top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"vertical-align\": {\"top\": 1, \"bottom\": 1},\n    \"visibility\": {\"hidden\": 1, \"visible\": 1},\n    \"white-space\": {\"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1},\n    \"width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n    \"word-spacing\": {\"normal\": 1},\n    \"filter\": {\"alpha(opacity=$0100)\": 1},\n\n    \"text-shadow\": {\"$02px 2px 2px #777\": 1},\n    \"text-overflow\": {\"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1},\n    \"-moz-border-radius\": 1,\n    \"-moz-border-radius-topright\": 1,\n    \"-moz-border-radius-bottomright\": 1,\n    \"-moz-border-radius-topleft\": 1,\n    \"-moz-border-radius-bottomleft\": 1,\n    \"-webkit-border-radius\": 1,\n    \"-webkit-border-top-right-radius\": 1,\n    \"-webkit-border-top-left-radius\": 1,\n    \"-webkit-border-bottom-right-radius\": 1,\n    \"-webkit-border-bottom-left-radius\": 1,\n    \"-moz-box-shadow\": 1,\n    \"-webkit-box-shadow\": 1,\n    \"transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-moz-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n    \"-webkit-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\n\nvar CssCompletions = function() {\n\n};\n\n(function() {\n\n    this.completionsDefined = false;\n\n    this.defineCompletions = function() {\n        if (document) {\n            var style = document.createElement('c').style;\n\n            for (var i in style) {\n                if (typeof style[i] !== 'string')\n                    continue;\n\n                var name = i.replace(/[A-Z]/g, function(x) {\n                    return '-' + x.toLowerCase();\n                });\n\n                if (!propertyMap.hasOwnProperty(name))\n                    propertyMap[name] = 1;\n            }\n        }\n\n        this.completionsDefined = true;\n    }\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        if (!this.completionsDefined) {\n            this.defineCompletions();\n        }\n\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (state==='ruleset'){\n            var line = session.getLine(pos.row).substr(0, pos.column);\n            if (/:[^;]+$/.test(line)) {\n                /([\\w\\-]+):[^:]*$/.test(line);\n\n                return this.getPropertyValueCompletions(state, session, pos, prefix);\n            } else {\n                return this.getPropertyCompletions(state, session, pos, prefix);\n            }\n        }\n\n        return [];\n    };\n\n    this.getPropertyCompletions = function(state, session, pos, prefix) {\n        var properties = Object.keys(propertyMap);\n        return properties.map(function(property){\n            return {\n                caption: property,\n                snippet: property + ': $0',\n                meta: \"property\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getPropertyValueCompletions = function(state, session, pos, prefix) {\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n\n        if (!property)\n            return [];\n        var values = [];\n        if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n            values = Object.keys(propertyMap[property]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"property value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(CssCompletions.prototype);\n\nexports.CssCompletions = CssCompletions;\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = require(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar CssBehaviour = function () {\n\n    this.inherit(CstyleBehaviour);\n\n    this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(cursor.row);\n                var rightChar = line.substring(cursor.column, cursor.column + 1);\n                if (rightChar === ':') {\n                    return {\n                       text: '',\n                       selection: [1, 1]\n                    }\n                }\n                if (!line.substring(cursor.column).match(/^\\s*;/)) {\n                    return {\n                       text: ':;',\n                       selection: [1, 1]\n                    }\n                }\n            }\n        }\n    });\n\n    this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && selected === ':') {\n            var cursor = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.value.match(/\\s+/)) {\n                token = iterator.stepBackward();\n            }\n            if (token && token.type === 'support.type') {\n                var line = session.doc.getLine(range.start.row);\n                var rightChar = line.substring(range.end.column, range.end.column + 1);\n                if (rightChar === ';') {\n                    range.end.column ++;\n                    return range;\n                }\n            }\n        }\n    });\n\n    this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n        if (text === ';') {\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            if (rightChar === ';') {\n                return {\n                   text: '',\n                   selection: [1, 1]\n                }\n            }\n        }\n    });\n\n}\noop.inherits(CssBehaviour, CstyleBehaviour);\n\nexports.CssBehaviour = CssBehaviour;\n});\n\nace.define(\"ace/mode/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/css_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/css_completions\",\"ace/mode/behaviour/css\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = require(\"./css_completions\").CssCompletions;\nvar CssBehaviour = require(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = CssHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CssBehaviour();\n    this.$completer = new CssCompletions();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.foldingRules = \"cStyle\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        var match = line.match(/^.*\\{\\s*$/);\n        if (match) {\n            indent += tab;\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/css_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/css\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/html_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/css_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar CssHighlightRules = require(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n    a           : 'anchor',\n    button \t    : 'form',\n    form        : 'form',\n    img         : 'image',\n    input       : 'form',\n    label       : 'form',\n    option      : 'form',\n    script      : 'script',\n    select      : 'form',\n    textarea    : 'form',\n    style       : 'style',\n    table       : 'table',\n    tbody       : 'table',\n    td          : 'table',\n    tfoot       : 'table',\n    th          : 'table',\n    tr          : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n    XmlHighlightRules.call(this);\n\n    this.addRules({\n        attributes: [{\n            include : \"tag_whitespace\"\n        }, {\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"[-_a-zA-Z0-9:.]+\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\",\n            push : [{\n                include: \"tag_whitespace\"\n            }, {\n                token : \"string.unquoted.attribute-value.html\",\n                regex : \"[^<>='\\\"`\\\\s]+\",\n                next : \"pop\"\n            }, {\n                token : \"empty\",\n                regex : \"\",\n                next : \"pop\"\n            }]\n        }, {\n            include : \"attribute_value\"\n        }],\n        tag: [{\n            token : function(start, tag) {\n                var group = tagMap[tag];\n                return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n                    \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n            },\n            regex : \"(</?)([-_a-zA-Z0-9:.]+)\",\n            next: \"tag_stuff\"\n        }],\n        tag_stuff: [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n        ]\n    });\n\n    this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"js-\", \"script\");\n\n    if (this.constructor === HtmlHighlightRules)\n        this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nvar XmlBehaviour = function () {\n\n    this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '\"' || text == \"'\") {\n            var quote = text;\n            var selected = session.doc.getTextRange(editor.getSelectionRange());\n            if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n                return {\n                    text: quote + selected + quote,\n                    selection: false\n                };\n            }\n\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n                return {\n                    text: \"\",\n                    selection: [1, 1]\n                };\n            }\n\n            if (!token)\n                token = iterator.stepBackward();\n\n            if (!token)\n                return;\n\n            while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n                token = iterator.stepBackward();\n            }\n            var rightSpace = !rightChar || rightChar.match(/\\s/);\n            if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n                return {\n                    text: quote + quote,\n                    selection: [1, 1]\n                };\n            }\n        }\n    });\n\n    this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == selected) {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n\n    this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '>') {\n            var position = editor.getSelectionRange().start;\n            var iterator = new TokenIterator(session, position.row, position.column);\n            var token = iterator.getCurrentToken() || iterator.stepBackward();\n            if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n                return;\n            if (is(token, \"reference.attribute-value\"))\n                return;\n            if (is(token, \"attribute-value\")) {\n                var firstChar = token.value.charAt(0);\n                if (firstChar == '\"' || firstChar == \"'\") {\n                    var lastChar = token.value.charAt(token.value.length - 1);\n                    var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;\n                    if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)\n                        return;\n                }\n            }\n            while (!is(token, \"tag-name\")) {\n                token = iterator.stepBackward();\n                if (token.value == \"<\") {\n                    token = iterator.stepForward();\n                    break;\n                }\n            }\n\n            var tokenRow = iterator.getCurrentTokenRow();\n            var tokenColumn = iterator.getCurrentTokenColumn();\n            if (is(iterator.stepBackward(), \"end-tag-open\"))\n                return;\n\n            var element = token.value;\n            if (tokenRow == position.row)\n                element = element.substring(0, position.column - tokenColumn);\n\n            if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n                 return;\n\n            return {\n               text: \">\" + \"</\" + element + \">\",\n               selection: [1, 1]\n            };\n        }\n    });\n\n    this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == \"\\n\") {\n            var cursor = editor.getCursorPosition();\n            var line = session.getLine(cursor.row);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (token && token.type.indexOf(\"tag-close\") !== -1) {\n                if (token.value == \"/>\")\n                    return;\n                while (token && token.type.indexOf(\"tag-name\") === -1) {\n                    token = iterator.stepBackward();\n                }\n\n                if (!token) {\n                    return;\n                }\n\n                var tag = token.value;\n                var row = iterator.getCurrentTokenRow();\n                token = iterator.stepBackward();\n                if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n                    return;\n                }\n\n                if (this.voidElements && !this.voidElements[tag]) {\n                    var nextToken = session.getTokenAt(cursor.row, cursor.column+1);\n                    var line = session.getLine(row);\n                    var nextIndent = this.$getIndent(line);\n                    var indent = nextIndent + session.getTabString();\n\n                    if (nextToken && nextToken.value === \"</\") {\n                        return {\n                            text: \"\\n\" + indent + \"\\n\" + nextIndent,\n                            selection: [1, indent.length, 1, indent.length]\n                        };\n                    } else {\n                        return {\n                            text: \"\\n\" + indent\n                        };\n                    }\n                }\n            }\n        }\n    });\n\n};\n\noop.inherits(XmlBehaviour, Behaviour);\n\nexports.XmlBehaviour = XmlBehaviour;\n});\n\nace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(defaultMode, subModes) {\n    this.defaultMode = defaultMode;\n    this.subModes = subModes;\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n\n    this.$getMode = function(state) {\n        if (typeof state != \"string\") \n            state = state[0];\n        for (var key in this.subModes) {\n            if (state.indexOf(key) === 0)\n                return this.subModes[key];\n        }\n        return null;\n    };\n    \n    this.$tryMode = function(state, session, foldStyle, row) {\n        var mode = this.$getMode(state);\n        return (mode ? mode.getFoldWidget(session, foldStyle, row) : \"\");\n    };\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        return (\n            this.$tryMode(session.getState(row-1), session, foldStyle, row) ||\n            this.$tryMode(session.getState(row), session, foldStyle, row) ||\n            this.defaultMode.getFoldWidget(session, foldStyle, row)\n        );\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var mode = this.$getMode(session.getState(row-1));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.$getMode(session.getState(row));\n        \n        if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n            mode = this.defaultMode;\n        \n        return mode.getFoldWidgetRange(session, foldStyle, row);\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar lang = require(\"../../lib/lang\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalEndTags) {\n    BaseFoldMode.call(this);\n    this.voidElements = voidElements || {};\n    this.optionalEndTags = oop.mixin({}, this.voidElements);\n    if (optionalEndTags)\n        oop.mixin(this.optionalEndTags, optionalEndTags);\n    \n};\noop.inherits(FoldMode, BaseFoldMode);\n\nvar Tag = function() {\n    this.tagName = \"\";\n    this.closing = false;\n    this.selfClosing = false;\n    this.start = {row: 0, column: 0};\n    this.end = {row: 0, column: 0};\n};\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\n(function() {\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var tag = this._getFirstTagInLine(session, row);\n\n        if (!tag)\n            return \"\";\n\n        if (tag.closing || (!tag.tagName && tag.selfClosing))\n            return foldStyle == \"markbeginend\" ? \"end\" : \"\";\n\n        if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n            return \"\";\n\n        if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n            return \"\";\n\n        return \"start\";\n    };\n    this._getFirstTagInLine = function(session, row) {\n        var tokens = session.getTokens(row);\n        var tag = new Tag();\n\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            if (is(token, \"tag-open\")) {\n                tag.end.column = tag.start.column + token.value.length;\n                tag.closing = is(token, \"end-tag-open\");\n                token = tokens[++i];\n                if (!token)\n                    return null;\n                tag.tagName = token.value;\n                tag.end.column += token.value.length;\n                for (i++; i < tokens.length; i++) {\n                    token = tokens[i];\n                    tag.end.column += token.value.length;\n                    if (is(token, \"tag-close\")) {\n                        tag.selfClosing = token.value == '/>';\n                        break;\n                    }\n                }\n                return tag;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == '/>';\n                return tag;\n            }\n            tag.start.column += token.value.length;\n        }\n\n        return null;\n    };\n\n    this._findEndTagInLine = function(session, row, tagName, startColumn) {\n        var tokens = session.getTokens(row);\n        var column = 0;\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            column += token.value.length;\n            if (column < startColumn)\n                continue;\n            if (is(token, \"end-tag-open\")) {\n                token = tokens[i + 1];\n                if (token && token.value == tagName)\n                    return true;\n            }\n        }\n        return false;\n    };\n    this._readTagForward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n                iterator.stepForward();\n                return tag;\n            }\n        } while(token = iterator.stepForward());\n\n        return null;\n    };\n    \n    this._readTagBackward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n                iterator.stepBackward();\n                return tag;\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n            }\n        } while(token = iterator.stepBackward());\n\n        return null;\n    };\n    \n    this._pop = function(stack, tag) {\n        while (stack.length) {\n            \n            var top = stack[stack.length-1];\n            if (!tag || top.tagName == tag.tagName) {\n                return stack.pop();\n            }\n            else if (this.optionalEndTags.hasOwnProperty(top.tagName)) {\n                stack.pop();\n                continue;\n            } else {\n                return null;\n            }\n        }\n    };\n    \n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var firstTag = this._getFirstTagInLine(session, row);\n        \n        if (!firstTag)\n            return null;\n        \n        var isBackward = firstTag.closing || firstTag.selfClosing;\n        var stack = [];\n        var tag;\n        \n        if (!isBackward) {\n            var iterator = new TokenIterator(session, row, firstTag.start.column);\n            var start = {\n                row: row,\n                column: firstTag.start.column + firstTag.tagName.length + 2\n            };\n            if (firstTag.start.row == firstTag.end.row)\n                start.column = firstTag.end.column;\n            while (tag = this._readTagForward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0)\n                        return Range.fromPoints(start, tag.start);\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        else {\n            var iterator = new TokenIterator(session, row, firstTag.end.column);\n            var end = {\n                row: row,\n                column: firstTag.start.column\n            };\n            \n            while (tag = this._readTagBackward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (!tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0) {\n                        tag.start.column += tag.tagName.length + 2;\n                        if (tag.start.row == tag.end.row && tag.start.column < tag.end.column)\n                            tag.start.column = tag.end.column;\n                        return Range.fromPoints(tag.start, end);\n                    }\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        \n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar MixedFoldMode = require(\"./mixed\").FoldMode;\nvar XmlFoldMode = require(\"./xml\").FoldMode;\nvar CStyleFoldMode = require(\"./cstyle\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalTags) {\n    MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), {\n        \"js-\": new CStyleFoldMode(),\n        \"css-\": new CStyleFoldMode()\n    });\n};\n\noop.inherits(FoldMode, MixedFoldMode);\n\n});\n\nace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\n\nvar commonAttributes = [\n    \"accesskey\",\n    \"class\",\n    \"contenteditable\",\n    \"contextmenu\",\n    \"dir\",\n    \"draggable\",\n    \"dropzone\",\n    \"hidden\",\n    \"id\",\n    \"inert\",\n    \"itemid\",\n    \"itemprop\",\n    \"itemref\",\n    \"itemscope\",\n    \"itemtype\",\n    \"lang\",\n    \"spellcheck\",\n    \"style\",\n    \"tabindex\",\n    \"title\",\n    \"translate\"\n];\n\nvar eventAttributes = [\n    \"onabort\",\n    \"onblur\",\n    \"oncancel\",\n    \"oncanplay\",\n    \"oncanplaythrough\",\n    \"onchange\",\n    \"onclick\",\n    \"onclose\",\n    \"oncontextmenu\",\n    \"oncuechange\",\n    \"ondblclick\",\n    \"ondrag\",\n    \"ondragend\",\n    \"ondragenter\",\n    \"ondragleave\",\n    \"ondragover\",\n    \"ondragstart\",\n    \"ondrop\",\n    \"ondurationchange\",\n    \"onemptied\",\n    \"onended\",\n    \"onerror\",\n    \"onfocus\",\n    \"oninput\",\n    \"oninvalid\",\n    \"onkeydown\",\n    \"onkeypress\",\n    \"onkeyup\",\n    \"onload\",\n    \"onloadeddata\",\n    \"onloadedmetadata\",\n    \"onloadstart\",\n    \"onmousedown\",\n    \"onmousemove\",\n    \"onmouseout\",\n    \"onmouseover\",\n    \"onmouseup\",\n    \"onmousewheel\",\n    \"onpause\",\n    \"onplay\",\n    \"onplaying\",\n    \"onprogress\",\n    \"onratechange\",\n    \"onreset\",\n    \"onscroll\",\n    \"onseeked\",\n    \"onseeking\",\n    \"onselect\",\n    \"onshow\",\n    \"onstalled\",\n    \"onsubmit\",\n    \"onsuspend\",\n    \"ontimeupdate\",\n    \"onvolumechange\",\n    \"onwaiting\"\n];\n\nvar globalAttributes = commonAttributes.concat(eventAttributes);\n\nvar attributeMap = {\n    \"html\": {\"manifest\": 1},\n    \"head\": {},\n    \"title\": {},\n    \"base\": {\"href\": 1, \"target\": 1},\n    \"link\": {\"href\": 1, \"hreflang\": 1, \"rel\": {\"stylesheet\": 1, \"icon\": 1}, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"type\": {\"text/css\": 1, \"image/png\": 1, \"image/jpeg\": 1, \"image/gif\": 1}, \"sizes\": 1},\n    \"meta\": {\"http-equiv\": {\"content-type\": 1}, \"name\": {\"description\": 1, \"keywords\": 1}, \"content\": {\"text/html; charset=UTF-8\": 1}, \"charset\": 1},\n    \"style\": {\"type\": 1, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"scoped\": 1},\n    \"script\": {\"charset\": 1, \"type\": {\"text/javascript\": 1}, \"src\": 1, \"defer\": 1, \"async\": 1},\n    \"noscript\": {\"href\": 1},\n    \"body\": {\"onafterprint\": 1, \"onbeforeprint\": 1, \"onbeforeunload\": 1, \"onhashchange\": 1, \"onmessage\": 1, \"onoffline\": 1, \"onpopstate\": 1, \"onredo\": 1, \"onresize\": 1, \"onstorage\": 1, \"onundo\": 1, \"onunload\": 1},\n    \"section\": {},\n    \"nav\": {},\n    \"article\": {\"pubdate\": 1},\n    \"aside\": {},\n    \"h1\": {},\n    \"h2\": {},\n    \"h3\": {},\n    \"h4\": {},\n    \"h5\": {},\n    \"h6\": {},\n    \"header\": {},\n    \"footer\": {},\n    \"address\": {},\n    \"main\": {},\n    \"p\": {},\n    \"hr\": {},\n    \"pre\": {},\n    \"blockquote\": {\"cite\": 1},\n    \"ol\": {\"start\": 1, \"reversed\": 1},\n    \"ul\": {},\n    \"li\": {\"value\": 1},\n    \"dl\": {},\n    \"dt\": {},\n    \"dd\": {},\n    \"figure\": {},\n    \"figcaption\": {},\n    \"div\": {},\n    \"a\": {\"href\": 1, \"target\": {\"_blank\": 1, \"top\": 1}, \"ping\": 1, \"rel\": {\"nofollow\": 1, \"alternate\": 1, \"author\": 1, \"bookmark\": 1, \"help\": 1, \"license\": 1, \"next\": 1, \"noreferrer\": 1, \"prefetch\": 1, \"prev\": 1, \"search\": 1, \"tag\": 1}, \"media\": 1, \"hreflang\": 1, \"type\": 1},\n    \"em\": {},\n    \"strong\": {},\n    \"small\": {},\n    \"s\": {},\n    \"cite\": {},\n    \"q\": {\"cite\": 1},\n    \"dfn\": {},\n    \"abbr\": {},\n    \"data\": {},\n    \"time\": {\"datetime\": 1},\n    \"code\": {},\n    \"var\": {},\n    \"samp\": {},\n    \"kbd\": {},\n    \"sub\": {},\n    \"sup\": {},\n    \"i\": {},\n    \"b\": {},\n    \"u\": {},\n    \"mark\": {},\n    \"ruby\": {},\n    \"rt\": {},\n    \"rp\": {},\n    \"bdi\": {},\n    \"bdo\": {},\n    \"span\": {},\n    \"br\": {},\n    \"wbr\": {},\n    \"ins\": {\"cite\": 1, \"datetime\": 1},\n    \"del\": {\"cite\": 1, \"datetime\": 1},\n    \"img\": {\"alt\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"usemap\": 1, \"ismap\": 1},\n    \"iframe\": {\"name\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"sandbox\": {\"allow-same-origin\": 1, \"allow-top-navigation\": 1, \"allow-forms\": 1, \"allow-scripts\": 1}, \"seamless\": {\"seamless\": 1}},\n    \"embed\": {\"src\": 1, \"height\": 1, \"width\": 1, \"type\": 1},\n    \"object\": {\"param\": 1, \"data\": 1, \"type\": 1, \"height\" : 1, \"width\": 1, \"usemap\": 1, \"name\": 1, \"form\": 1, \"classid\": 1},\n    \"param\": {\"name\": 1, \"value\": 1},\n    \"video\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"width\": 1, \"height\": 1, \"poster\": 1, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1}},\n    \"audio\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1 }},\n    \"source\": {\"src\": 1, \"type\": 1, \"media\": 1},\n    \"track\": {\"kind\": 1, \"src\": 1, \"srclang\": 1, \"label\": 1, \"default\": 1},\n    \"canvas\": {\"width\": 1, \"height\": 1},\n    \"map\": {\"name\": 1},\n    \"area\": {\"shape\": 1, \"coords\": 1, \"href\": 1, \"hreflang\": 1, \"alt\": 1, \"target\": 1, \"media\": 1, \"rel\": 1, \"ping\": 1, \"type\": 1},\n    \"svg\": {},\n    \"math\": {},\n    \"table\": {\"summary\": 1},\n    \"caption\": {},\n    \"colgroup\": {\"span\": 1},\n    \"col\": {\"span\": 1},\n    \"tbody\": {},\n    \"thead\": {},\n    \"tfoot\": {},\n    \"tr\": {},\n    \"td\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1},\n    \"th\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1, \"scope\": 1},\n    \"form\": {\"accept-charset\": 1, \"action\": 1, \"autocomplete\": 1, \"enctype\": {\"multipart/form-data\": 1, \"application/x-www-form-urlencoded\": 1}, \"method\": {\"get\": 1, \"post\": 1}, \"name\": 1, \"novalidate\": 1, \"target\": {\"_blank\": 1, \"top\": 1}},\n    \"fieldset\": {\"disabled\": 1, \"form\": 1, \"name\": 1},\n    \"legend\": {},\n    \"label\": {\"form\": 1, \"for\": 1},\n    \"input\": {\n        \"type\": {\"text\": 1, \"password\": 1, \"hidden\": 1, \"checkbox\": 1, \"submit\": 1, \"radio\": 1, \"file\": 1, \"button\": 1, \"reset\": 1, \"image\": 31, \"color\": 1, \"date\": 1, \"datetime\": 1, \"datetime-local\": 1, \"email\": 1, \"month\": 1, \"number\": 1, \"range\": 1, \"search\": 1, \"tel\": 1, \"time\": 1, \"url\": 1, \"week\": 1},\n        \"accept\": 1, \"alt\": 1, \"autocomplete\": {\"on\": 1, \"off\": 1}, \"autofocus\": {\"autofocus\": 1}, \"checked\": {\"checked\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": {\"application/x-www-form-urlencoded\": 1, \"multipart/form-data\": 1, \"text/plain\": 1}, \"formmethod\": {\"get\": 1, \"post\": 1}, \"formnovalidate\": {\"formnovalidate\": 1}, \"formtarget\": {\"_blank\": 1, \"_self\": 1, \"_parent\": 1, \"_top\": 1}, \"height\": 1, \"list\": 1, \"max\": 1, \"maxlength\": 1, \"min\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"pattern\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"size\": 1, \"src\": 1, \"step\": 1, \"width\": 1, \"files\": 1, \"value\": 1},\n    \"button\": {\"autofocus\": 1, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"formaction\": 1, \"formenctype\": 1, \"formmethod\": 1, \"formnovalidate\": 1, \"formtarget\": 1, \"name\": 1, \"value\": 1, \"type\": {\"button\": 1, \"submit\": 1}},\n    \"select\": {\"autofocus\": 1, \"disabled\": 1, \"form\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"size\": 1, \"readonly\":{\"readonly\": 1}},\n    \"datalist\": {},\n    \"optgroup\": {\"disabled\": 1, \"label\": 1},\n    \"option\": {\"disabled\": 1, \"selected\": 1, \"label\": 1, \"value\": 1},\n    \"textarea\": {\"autofocus\": {\"autofocus\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"maxlength\": 1, \"name\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"required\": {\"required\": 1}, \"rows\": 1, \"cols\": 1, \"wrap\": {\"on\": 1, \"off\": 1, \"hard\": 1, \"soft\": 1}},\n    \"keygen\": {\"autofocus\": 1, \"challenge\": {\"challenge\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"keytype\": {\"rsa\": 1, \"dsa\": 1, \"ec\": 1}, \"name\": 1},\n    \"output\": {\"for\": 1, \"form\": 1, \"name\": 1},\n    \"progress\": {\"value\": 1, \"max\": 1},\n    \"meter\": {\"value\": 1, \"min\": 1, \"max\": 1, \"low\": 1, \"high\": 1, \"optimum\": 1},\n    \"details\": {\"open\": 1},\n    \"summary\": {},\n    \"command\": {\"type\": 1, \"label\": 1, \"icon\": 1, \"disabled\": 1, \"checked\": 1, \"radiogroup\": 1, \"command\": 1},\n    \"menu\": {\"type\": 1, \"label\": 1},\n    \"dialog\": {\"open\": 1}\n};\n\nvar elements = Object.keys(attributeMap);\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nfunction findTagName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"tag-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nfunction findAttributeName(session, pos) {\n    var iterator = new TokenIterator(session, pos.row, pos.column);\n    var token = iterator.getCurrentToken();\n    while (token && !is(token, \"attribute-name\")){\n        token = iterator.stepBackward();\n    }\n    if (token)\n        return token.value;\n}\n\nvar HtmlCompletions = function() {\n\n};\n\n(function() {\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        var token = session.getTokenAt(pos.row, pos.column);\n\n        if (!token)\n            return [];\n        if (is(token, \"tag-name\") || is(token, \"tag-open\") || is(token, \"end-tag-open\"))\n            return this.getTagCompletions(state, session, pos, prefix);\n        if (is(token, \"tag-whitespace\") || is(token, \"attribute-name\"))\n            return this.getAttributeCompletions(state, session, pos, prefix);\n        if (is(token, \"attribute-value\"))\n            return this.getAttributeValueCompletions(state, session, pos, prefix);\n        var line = session.getLine(pos.row).substr(0, pos.column);\n        if (/&[a-z]*$/i.test(line))\n            return this.getHTMLEntityCompletions(state, session, pos, prefix);\n\n        return [];\n    };\n\n    this.getTagCompletions = function(state, session, pos, prefix) {\n        return elements.map(function(element){\n            return {\n                value: element,\n                meta: \"tag\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        if (!tagName)\n            return [];\n        var attributes = globalAttributes;\n        if (tagName in attributeMap) {\n            attributes = attributes.concat(Object.keys(attributeMap[tagName]));\n        }\n        return attributes.map(function(attribute){\n            return {\n                caption: attribute,\n                snippet: attribute + '=\"$0\"',\n                meta: \"attribute\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getAttributeValueCompletions = function(state, session, pos, prefix) {\n        var tagName = findTagName(session, pos);\n        var attributeName = findAttributeName(session, pos);\n        \n        if (!tagName)\n            return [];\n        var values = [];\n        if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === \"object\") {\n            values = Object.keys(attributeMap[tagName][attributeName]);\n        }\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"attribute value\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n    this.getHTMLEntityCompletions = function(state, session, pos, prefix) {\n        var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;'];\n\n        return values.map(function(value){\n            return {\n                caption: value,\n                snippet: value,\n                meta: \"html entity\",\n                score: Number.MAX_VALUE\n            };\n        });\n    };\n\n}).call(HtmlCompletions.prototype);\n\nexports.HtmlCompletions = HtmlCompletions;\n});\n\nace.define(\"ace/mode/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/css\",\"ace/mode/html_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/html\",\"ace/mode/html_completions\",\"ace/worker/worker_client\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar CssMode = require(\"./css\").Mode;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar HtmlFoldMode = require(\"./folding/html\").FoldMode;\nvar HtmlCompletions = require(\"./html_completions\").HtmlCompletions;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar voidElements = [\"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"menuitem\", \"param\", \"source\", \"track\", \"wbr\"];\nvar optionalEndTags = [\"li\", \"dt\", \"dd\", \"p\", \"rt\", \"rp\", \"optgroup\", \"option\", \"colgroup\", \"td\", \"th\"];\n\nvar Mode = function(options) {\n    this.fragmentContext = options && options.fragmentContext;\n    this.HighlightRules = HtmlHighlightRules;\n    this.$behaviour = new XmlBehaviour();\n    this.$completer = new HtmlCompletions();\n    \n    this.createModeDelegates({\n        \"js-\": JavaScriptMode,\n        \"css-\": CssMode\n    });\n    \n    this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags));\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.blockComment = {start: \"<!--\", end: \"-->\"};\n\n    this.voidElements = lang.arrayToMap(voidElements);\n\n    this.getNextLineIndent = function(state, line, tab) {\n        return this.$getIndent(line);\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return false;\n    };\n\n    this.getCompletions = function(state, session, pos, prefix) {\n        return this.$completer.getCompletions(state, session, pos, prefix);\n    };\n\n    this.createWorker = function(session) {\n        if (this.constructor != Mode)\n            return;\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/html_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        if (this.fragmentContext)\n            worker.call(\"setOptions\", [{context: this.fragmentContext}]);\n\n        worker.on(\"error\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/html\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/velocity_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/html_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar HtmlHighlightRules = require(\"./html_highlight_rules\").HtmlHighlightRules;\n\nvar VelocityHighlightRules = function() {\n    HtmlHighlightRules.call(this);\n\n    var builtinConstants = lang.arrayToMap(\n        ('true|false|null').split('|')\n    );\n\n    var builtinFunctions = lang.arrayToMap(\n        (\"_DateTool|_DisplayTool|_EscapeTool|_FieldTool|_MathTool|_NumberTool|_SerializerTool|_SortTool|_StringTool|_XPathTool\").split('|')\n    );\n\n    var builtinVariables = lang.arrayToMap(\n        ('$contentRoot|$foreach').split('|')\n    );\n\n    var keywords = lang.arrayToMap(\n        (\"#set|#macro|#include|#parse|\" +\n        \"#if|#elseif|#else|#foreach|\" +\n        \"#break|#end|#stop\"\n        ).split('|')\n    );\n\n    this.$rules.start.push(\n        {\n            token : \"comment\",\n            regex : \"##.*$\"\n        },{\n            token : \"comment.block\", // multi line comment\n            regex : \"#\\\\*\",\n            next : \"vm_comment\"\n        }, {\n            token : \"string.regexp\",\n            regex : \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : \"constant.numeric\", // hex\n            regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n        }, {\n            token : \"constant.numeric\", // float\n            regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n        }, {\n            token : \"constant.language.boolean\",\n            regex : \"(?:true|false)\\\\b\"\n        }, {\n            token : function(value) {\n                if (keywords.hasOwnProperty(value))\n                    return \"keyword\";\n                else if (builtinConstants.hasOwnProperty(value))\n                    return \"constant.language\";\n                else if (builtinVariables.hasOwnProperty(value))\n                    return \"variable.language\";\n                else if (builtinFunctions.hasOwnProperty(value) || builtinFunctions.hasOwnProperty(value.substring(1)))\n                    return \"support.function\";\n                else if (value == \"debugger\")\n                    return \"invalid.deprecated\";\n                else\n                    if(value.match(/^(\\$[a-zA-Z_][a-zA-Z0-9_]*)$/))\n                        return \"variable\";\n                    return \"identifier\";\n            },\n            regex : \"[a-zA-Z$#][a-zA-Z0-9_]*\\\\b\"\n        }, {\n            token : \"keyword.operator\",\n            regex : \"!|&|\\\\*|\\\\-|\\\\+|=|!=|<=|>=|<|>|&&|\\\\|\\\\|\"\n        }, {\n            token : \"lparen\",\n            regex : \"[[({]\"\n        }, {\n            token : \"rparen\",\n            regex : \"[\\\\])}]\"\n        }, {\n            token : \"text\",\n            regex : \"\\\\s+\"\n        }\n    );\n\n    this.$rules[\"vm_comment\"] = [\n        {\n            token : \"comment\", // closing comment\n            regex : \"\\\\*#|-->\",\n            next : \"start\"\n        }, {\n            defaultToken: \"comment\"\n        }\n    ];\n\n    this.$rules[\"vm_start\"] = [\n        {\n            token: \"variable\",\n            regex: \"}\",\n            next: \"pop\"\n        }, {\n            token : \"string.regexp\",\n            regex : \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"\n        }, {\n            token : \"string\", // single line\n            regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n        }, {\n            token : \"string\", // single line\n            regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n        }, {\n            token : \"constant.numeric\", // hex\n            regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n        }, {\n            token : \"constant.numeric\", // float\n            regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n        }, {\n            token : \"constant.language.boolean\",\n            regex : \"(?:true|false)\\\\b\"\n        }, {\n            token : function(value) {\n                if (keywords.hasOwnProperty(value))\n                    return \"keyword\";\n                else if (builtinConstants.hasOwnProperty(value))\n                    return \"constant.language\";\n                else if (builtinVariables.hasOwnProperty(value))\n                    return \"variable.language\";\n                else if (builtinFunctions.hasOwnProperty(value) || builtinFunctions.hasOwnProperty(value.substring(1)))\n                    return \"support.function\";\n                else if (value == \"debugger\")\n                    return \"invalid.deprecated\";\n                else\n                    if(value.match(/^(\\$[a-zA-Z_$][a-zA-Z0-9_]*)$/))\n                        return \"variable\";\n                    return \"identifier\";\n            },\n            regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n        }, {\n            token : \"keyword.operator\",\n            regex : \"!|&|\\\\*|\\\\-|\\\\+|=|!=|<=|>=|<|>|&&|\\\\|\\\\|\"\n        }, {\n            token : \"lparen\",\n            regex : \"[[({]\"\n        }, {\n            token : \"rparen\",\n            regex : \"[\\\\])}]\"\n        }, {\n            token : \"text\",\n            regex : \"\\\\s+\"\n        }\n    ];\n\n    for (var i in this.$rules) {\n        this.$rules[i].unshift({\n            token: \"variable\",\n            regex: \"\\\\${\",\n            push: \"vm_start\"\n        });\n    }\n\n    this.normalizeRules();\n};\n\noop.inherits(VelocityHighlightRules, TextHighlightRules);\n\nexports.VelocityHighlightRules = VelocityHighlightRules;\n});\n\nace.define(\"ace/mode/folding/velocity\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var range = this.indentationBlock(session, row);\n        if (range)\n            return range;\n\n        var re = /\\S/;\n        var line = session.getLine(row);\n        var startLevel = line.search(re);\n        if (startLevel == -1 || line[startLevel] != \"##\")\n            return;\n\n        var startColumn = line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var level = line.search(re);\n\n            if (level == -1)\n                continue;\n\n            if (line[level] != \"##\")\n                break;\n\n            endRow = row;\n        }\n\n        if (endRow > startRow) {\n            var endColumn = session.getLine(endRow).length;\n            return new Range(startRow, startColumn, endRow, endColumn);\n        }\n    };\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var indent = line.search(/\\S/);\n        var next = session.getLine(row + 1);\n        var prev = session.getLine(row - 1);\n        var prevIndent = prev.search(/\\S/);\n        var nextIndent = next.search(/\\S/);\n\n        if (indent == -1) {\n            session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n            return \"\";\n        }\n        if (prevIndent == -1) {\n            if (indent == nextIndent && line[indent] == \"##\" && next[indent] == \"##\") {\n                session.foldWidgets[row - 1] = \"\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"start\";\n            }\n        } else if (prevIndent == indent && line[indent] == \"##\" && prev[indent] == \"##\") {\n            if (session.getLine(row - 2).search(/\\S/) == -1) {\n                session.foldWidgets[row - 1] = \"start\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"\";\n            }\n        }\n\n        if (prevIndent!= -1 && prevIndent < indent)\n            session.foldWidgets[row - 1] = \"start\";\n        else\n            session.foldWidgets[row - 1] = \"\";\n\n        if (indent < nextIndent)\n            return \"start\";\n        else\n            return \"\";\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/velocity\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/html\",\"ace/mode/velocity_highlight_rules\",\"ace/mode/folding/velocity\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar HtmlMode = require(\"./html\").Mode;\nvar VelocityHighlightRules = require(\"./velocity_highlight_rules\").VelocityHighlightRules;\nvar FoldMode = require(\"./folding/velocity\").FoldMode;\n\nvar Mode = function() {\n    HtmlMode.call(this);\n    this.HighlightRules = VelocityHighlightRules;\n    this.foldingRules = new FoldMode();\n};\noop.inherits(Mode, HtmlMode);\n\n(function() {\n    this.lineCommentStart = \"##\";\n    this.blockComment = {start: \"#*\", end: \"*#\"};\n    this.$id = \"ace/mode/velocity\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-verilog.js",
    "content": "ace.define(\"ace/mode/verilog_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar VerilogHighlightRules = function() {\nvar keywords = \"always|and|assign|automatic|begin|buf|bufif0|bufif1|case|casex|casez|cell|cmos|config|\" +\n    \"deassign|default|defparam|design|disable|edge|else|end|endcase|endconfig|endfunction|endgenerate|endmodule|\" +\n    \"endprimitive|endspecify|endtable|endtask|event|for|force|forever|fork|function|generate|genvar|highz0|\" +\n    \"highz1|if|ifnone|incdir|include|initial|inout|input|instance|integer|join|large|liblist|library|localparam|\" +\n    \"macromodule|medium|module|nand|negedge|nmos|nor|noshowcancelled|not|notif0|notif1|or|output|parameter|pmos|\" +\n    \"posedge|primitive|pull0|pull1|pulldown|pullup|pulsestyle_onevent|pulsestyle_ondetect|rcmos|real|realtime|\" +\n    \"reg|release|repeat|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|showcancelled|signed|small|specify|specparam|\" +\n    \"strong0|strong1|supply0|supply1|table|task|time|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|\" +\n    \"unsigned|use|vectored|wait|wand|weak0|weak1|while|wire|wor|xnor|xor\" +\n    \"begin|bufif0|bufif1|case|casex|casez|config|else|end|endcase|endconfig|endfunction|\" +\n    \"endgenerate|endmodule|endprimitive|endspecify|endtable|endtask|for|forever|function|generate|if|ifnone|\" +\n    \"macromodule|module|primitive|repeat|specify|table|task|while\";\n\n    var builtinConstants = (\n        \"true|false|null\"\n    );\n\n    var builtinFunctions = (\n        \"count|min|max|avg|sum|rank|now|coalesce|main\"\n    );\n\n    var keywordMapper = this.createKeywordMapper({\n        \"support.function\": builtinFunctions,\n        \"keyword\": keywords,\n        \"constant.language\": builtinConstants\n    }, \"identifier\", true);\n\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment\",\n            regex : \"//.*$\"\n        }, {\n            token : \"comment.start\",\n            regex : \"/\\\\*\",\n            next : [\n                { token : \"comment.end\", regex : \"\\\\*/\", next: \"start\" },\n                { defaultToken : \"comment\" }\n            ]\n        }, {\n            token : \"string\",           // \" string\n            regex : '\".*?\"'\n        }, {\n            token : \"string\",           // ' string\n            regex : \"'.*?'\"\n        }, {\n            token : \"constant.numeric\", // float\n            regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n        }, {\n            token : keywordMapper,\n            regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n        }, {\n            token : \"keyword.operator\",\n            regex : \"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\"\n        }, {\n            token : \"paren.lparen\",\n            regex : \"[\\\\(]\"\n        }, {\n            token : \"paren.rparen\",\n            regex : \"[\\\\)]\"\n        }, {\n            token : \"text\",\n            regex : \"\\\\s+\"\n        } ]\n    };\n    this.normalizeRules();\n};\n\noop.inherits(VerilogHighlightRules, TextHighlightRules);\n\nexports.VerilogHighlightRules = VerilogHighlightRules;\n});\n\nace.define(\"ace/mode/verilog\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/verilog_highlight_rules\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar VerilogHighlightRules = require(\"./verilog_highlight_rules\").VerilogHighlightRules;\nvar Range = require(\"../range\").Range;\n\nvar Mode = function() {\n    this.HighlightRules = VerilogHighlightRules;\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.$id = \"ace/mode/verilog\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-vhdl.js",
    "content": "ace.define(\"ace/mode/vhdl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar VHDLHighlightRules = function() {\n\n\n    \n    var keywords = \"access|after|ailas|all|architecture|assert|attribute|\"+\n                   \"begin|block|buffer|bus|case|component|configuration|\"+\n                   \"disconnect|downto|else|elsif|end|entity|file|for|function|\"+\n                   \"generate|generic|guarded|if|impure|in|inertial|inout|is|\"+\n                   \"label|linkage|literal|loop|mapnew|next|of|on|open|\"+\n                   \"others|out|port|process|pure|range|record|reject|\"+\n                   \"report|return|select|shared|subtype|then|to|transport|\"+\n                   \"type|unaffected|united|until|wait|when|while|with\";\n    \n    var storageType = \"bit|bit_vector|boolean|character|integer|line|natural|\"+\n                      \"positive|real|register|severity|signal|signed|\"+\n                      \"std_logic|std_logic_vector|string||text|time|unsigned|\"+\n                      \"variable\";\n    \n    var storageModifiers = \"array|constant\";\n    \n    var keywordOperators = \"abs|and|mod|nand|nor|not|rem|rol|ror|sla|sll|sra\"+\n                           \"srl|xnor|xor\";\n    \n    var builtinConstants = (\n        \"true|false|null\"\n    );\n\n\n    var keywordMapper = this.createKeywordMapper({\n        \"keyword.operator\": keywordOperators,\n        \"keyword\": keywords,\n        \"constant.language\": builtinConstants,\n        \"storage.modifier\": storageModifiers,\n        \"storage.type\": storageType\n    }, \"identifier\", true);\n\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment\",\n            regex : \"--.*$\"\n        }, {\n            token : \"string\",           // \" string\n            regex : '\".*?\"'\n        }, {\n            token : \"string\",           // ' string\n            regex : \"'.*?'\"\n        }, {\n            token : \"constant.numeric\", // float\n            regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n        }, {\n            token : \"keyword\", // pre-compiler directives\n            regex : \"\\\\s*(?:library|package|use)\\\\b\"\n        }, {\n            token : keywordMapper,\n            regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n        }, {\n            token : \"keyword.operator\",\n            regex : \"&|\\\\*|\\\\+|\\\\-|\\\\/|<|=|>|\\\\||=>|\\\\*\\\\*|:=|\\\\/=|>=|<=|<>\" \n        }, {\n              token : \"punctuation.operator\",\n              regex : \"\\\\'|\\\\:|\\\\,|\\\\;|\\\\.\"\n        },{\n            token : \"paren.lparen\",\n            regex : \"[[(]\"\n        }, {\n            token : \"paren.rparen\",\n            regex : \"[\\\\])]\"\n        }, {\n            token : \"text\",\n            regex : \"\\\\s+\"\n        } ]\n\n       \n    };\n};\n\noop.inherits(VHDLHighlightRules, TextHighlightRules);\n\nexports.VHDLHighlightRules = VHDLHighlightRules;\n});\n\nace.define(\"ace/mode/vhdl\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/vhdl_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar VHDLHighlightRules = require(\"./vhdl_highlight_rules\").VHDLHighlightRules;\n\nvar Mode = function() {\n    this.HighlightRules = VHDLHighlightRules;\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"--\";\n\n    this.$id = \"ace/mode/vhdl\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-wollok.js",
    "content": "ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [ {\n            token : \"comment.doc.tag\",\n            regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n        }, \n        DocCommentHighlightRules.getTagRule(),\n        {\n            defaultToken : \"comment.doc\",\n            caseInsensitive: true\n        }]\n    };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n    return {\n        token : \"comment.doc.tag.storage.type\",\n        regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n    };\n}\n\nDocCommentHighlightRules.getStartRule = function(start) {\n    return {\n        token : \"comment.doc\", // doc comment\n        regex : \"\\\\/\\\\*(?=\\\\*)\",\n        next  : start\n    };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n    return {\n        token : \"comment.doc\", // closing comment\n        regex : \"\\\\*\\\\/\",\n        next  : start\n    };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\":\n            \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\"  + // Constructors\n            \"Namespace|QName|XML|XMLList|\"                                             + // E4X\n            \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\"   +\n            \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\"                    +\n            \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\"   + // Errors\n            \"SyntaxError|TypeError|URIError|\"                                          +\n            \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n            \"isNaN|parseFloat|parseInt|\"                                               +\n            \"JSON|Math|\"                                                               + // Other\n            \"this|arguments|prototype|window|document\"                                 , // Pseudo\n        \"keyword\":\n            \"const|yield|import|get|set|async|await|\" +\n            \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n            \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n            \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n            \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n        \"storage.type\":\n            \"const|let|var|function\",\n        \"constant.language\":\n            \"null|Infinity|NaN|undefined\",\n        \"support.function\":\n            \"alert\",\n        \"constant.language.boolean\": \"true|false\"\n    }, \"identifier\");\n    var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n    var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n        \"u[0-9a-fA-F]{4}|\" + // unicode\n        \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n        \"[0-2][0-7]{0,2}|\" + // oct\n        \"3[0-7][0-7]?|\" + // oct\n        \"[4-7][0-7]?|\" + //oct\n        \".)\";\n\n    this.$rules = {\n        \"no_regex\" : [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"no_regex\"),\n            {\n                token : \"string\",\n                regex : \"'(?=.)\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : '\"(?=.)',\n                next  : \"qqstring\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"support.function\",\n                    \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n                    \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"entity.name.function\", \"text\", \"punctuation.operator\",\n                    \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : [\n                    \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"keyword\",\n                regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n                next : \"start\"\n            }, {\n                token : [\"support.constant\"],\n                regex : /that\\b/\n            }, {\n                token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n                regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n            }, {\n                token : keywordMapper,\n                regex : identifierRe\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/,\n                next  : \"property\"\n            }, {\n                token : \"keyword.operator\",\n                regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n                next  : \"start\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[?:,;.]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.lparen\",\n                regex : /[\\[({]/,\n                next  : \"start\"\n            }, {\n                token : \"paren.rparen\",\n                regex : /[\\])}]/\n            }, {\n                token: \"comment\",\n                regex: /^#!.*$/\n            }\n        ],\n        property: [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }, {\n                token : [\n                    \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n                    \"keyword.operator\", \"text\",\n                    \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n                ],\n                regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n                next: \"function_arguments\"\n            }, {\n                token : \"punctuation.operator\",\n                regex : /[.](?![.])/\n            }, {\n                token : \"support.function\",\n                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/\n            }, {\n                token : \"support.function.dom\",\n                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/\n            }, {\n                token :  \"support.constant\",\n                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/\n            }, {\n                token : \"identifier\",\n                regex : identifierRe\n            }, {\n                regex: \"\",\n                token: \"empty\",\n                next: \"no_regex\"\n            }\n        ],\n        \"start\": [\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            comments(\"start\"),\n            {\n                token: \"string.regexp\",\n                regex: \"\\\\/\",\n                next: \"regex\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+|^$\",\n                next : \"start\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"regex\": [\n            {\n                token: \"regexp.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"string.regexp\",\n                regex: \"/[sxngimy]*\",\n                next: \"no_regex\"\n            }, {\n                token : \"invalid\",\n                regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n            }, {\n                token : \"constant.language.escape\",\n                regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n            }, {\n                token : \"constant.language.delimiter\",\n                regex: /\\|/\n            }, {\n                token: \"constant.language.escape\",\n                regex: /\\[\\^?/,\n                next: \"regex_character_class\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp\"\n            }\n        ],\n        \"regex_character_class\": [\n            {\n                token: \"regexp.charclass.keyword.operator\",\n                regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"]\",\n                next: \"regex\"\n            }, {\n                token: \"constant.language.escape\",\n                regex: \"-\"\n            }, {\n                token: \"empty\",\n                regex: \"$\",\n                next: \"no_regex\"\n            }, {\n                defaultToken: \"string.regexp.charachterclass\"\n            }\n        ],\n        \"function_arguments\": [\n            {\n                token: \"variable.parameter\",\n                regex: identifierRe\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"[, ]+\"\n            }, {\n                token: \"punctuation.operator\",\n                regex: \"$\"\n            }, {\n                token: \"empty\",\n                regex: \"\",\n                next: \"no_regex\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qqstring\"\n            }, {\n                token : \"string\",\n                regex : '\"|$',\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ],\n        \"qstring\" : [\n            {\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"string\",\n                regex : \"\\\\\\\\$\",\n                next  : \"qstring\"\n            }, {\n                token : \"string\",\n                regex : \"'|$\",\n                next  : \"no_regex\"\n            }, {\n                defaultToken: \"string\"\n            }\n        ]\n    };\n    \n    \n    if (!options || !options.noES6) {\n        this.$rules.no_regex.unshift({\n            regex: \"[{}]\", onMatch: function(val, state, stack) {\n                this.next = val == \"{\" ? this.nextState : \"\";\n                if (val == \"{\" && stack.length) {\n                    stack.unshift(\"start\", state);\n                }\n                else if (val == \"}\" && stack.length) {\n                    stack.shift();\n                    this.next = stack.shift();\n                    if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n                        return \"paren.quasi.end\";\n                }\n                return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n            },\n            nextState: \"start\"\n        }, {\n            token : \"string.quasi.start\",\n            regex : /`/,\n            push  : [{\n                token : \"constant.language.escape\",\n                regex : escapedRe\n            }, {\n                token : \"paren.quasi.start\",\n                regex : /\\${/,\n                push  : \"start\"\n            }, {\n                token : \"string.quasi.end\",\n                regex : /`/,\n                next  : \"pop\"\n            }, {\n                defaultToken: \"string.quasi\"\n            }]\n        });\n        \n        if (!options || options.jsx != false)\n            JSX.call(this);\n    }\n    \n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n    \n    this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n    var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n    var jsxTag = {\n        onMatch : function(val, state, stack) {\n            var offset = val.charAt(1) == \"/\" ? 2 : 1;\n            if (offset == 1) {\n                if (state != this.nextState)\n                    stack.unshift(this.next, this.nextState, 0);\n                else\n                    stack.unshift(this.next);\n                stack[2]++;\n            } else if (offset == 2) {\n                if (state == this.nextState) {\n                    stack[1]--;\n                    if (!stack[1] || stack[1] < 0) {\n                        stack.shift();\n                        stack.shift();\n                    }\n                }\n            }\n            return [{\n                type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n                value: val.slice(0, offset)\n            }, {\n                type: \"meta.tag.tag-name.xml\",\n                value: val.substr(offset)\n            }];\n        },\n        regex : \"</?\" + tagRegex + \"\",\n        next: \"jsxAttributes\",\n        nextState: \"jsx\"\n    };\n    this.$rules.start.unshift(jsxTag);\n    var jsxJsRule = {\n        regex: \"{\",\n        token: \"paren.quasi.start\",\n        push: \"start\"\n    };\n    this.$rules.jsx = [\n        jsxJsRule,\n        jsxTag,\n        {include : \"reference\"},\n        {defaultToken: \"string\"}\n    ];\n    this.$rules.jsxAttributes = [{\n        token : \"meta.tag.punctuation.tag-close.xml\", \n        regex : \"/?>\", \n        onMatch : function(value, currentState, stack) {\n            if (currentState == stack[0])\n                stack.shift();\n            if (value.length == 2) {\n                if (stack[0] == this.nextState)\n                    stack[1]--;\n                if (!stack[1] || stack[1] < 0) {\n                    stack.splice(0, 2);\n                }\n            }\n            this.next = stack[0] || \"start\";\n            return [{type: this.token, value: value}];\n        },\n        nextState: \"jsx\"\n    }, \n    jsxJsRule,\n    comments(\"jsxAttributes\"),\n    {\n        token : \"entity.other.attribute-name.xml\",\n        regex : tagRegex\n    }, {\n        token : \"keyword.operator.attribute-equals.xml\",\n        regex : \"=\"\n    }, {\n        token : \"text.tag-whitespace.xml\",\n        regex : \"\\\\s+\"\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : \"'\",\n        stateName : \"jsx_attr_q\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    }, {\n        token : \"string.attribute-value.xml\",\n        regex : '\"',\n        stateName : \"jsx_attr_qq\",\n        push : [\n            {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n            {include : \"reference\"},\n            {defaultToken : \"string.attribute-value.xml\"}\n        ]\n    },\n    jsxTag\n    ];\n    this.$rules.reference = [{\n        token : \"constant.language.escape.reference.xml\",\n        regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n    }];\n}\n\nfunction comments(next) {\n    return [\n        {\n            token : \"comment\", // multi line comment\n            regex : /\\/\\*/,\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }, {\n            token : \"comment\",\n            regex : \"\\\\/\\\\/\",\n            next: [\n                DocCommentHighlightRules.getTagRule(),\n                {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n                {defaultToken : \"comment\", caseInsensitive: true}\n            ]\n        }\n    ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar JavaScriptHighlightRules = require(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = JavaScriptHighlightRules;\n    \n    this.$outdent = new MatchingBraceOutdent();\n    this.$behaviour = new CstyleBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"//\";\n    this.blockComment = {start: \"/*\", end: \"*/\"};\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n        var tokens = tokenizedLine.tokens;\n        var endState = tokenizedLine.state;\n\n        if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n            return indent;\n        }\n\n        if (state == \"start\" || state == \"no_regex\") {\n            var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        } else if (state == \"doc-start\") {\n            if (endState == \"start\" || endState == \"no_regex\") {\n                return \"\";\n            }\n            var match = line.match(/^\\s*(\\/?)\\*/);\n            if (match) {\n                if (match[1]) {\n                    indent += \" \";\n                }\n                indent += \"* \";\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/javascript_worker\", \"JavaScriptWorker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"annotate\", function(results) {\n            session.setAnnotations(results.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n\n    this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/wollok_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar WollokHighlightRules = function() {\n    var keywords = (\n    \"test|package|inherits|false|import|else|or|class|and|not|native|override|program|this|try|val|var|catch|object|super|throw|if|null|return|true|new|method\"\n    );\n\n    var buildinConstants = (\"null|assert|console\");\n\n\n    var langClasses = (\n        \"Object|Pair|String|Boolean|Number|Integer|Double|Collection|Set|List|Exception|Range\" +\n        \"|StackTraceElement\"\n    );\n\n    var keywordMapper = this.createKeywordMapper({\n        \"variable.language\": \"this\",\n        \"keyword\": keywords,\n        \"constant.language\": buildinConstants,\n        \"support.function\": langClasses\n    }, \"identifier\");\n\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"\\\\/\\\\/.*$\"\n            },\n            DocCommentHighlightRules.getStartRule(\"doc-start\"),\n            {\n                token : \"comment\", // multi line comment\n                regex : \"\\\\/\\\\*\",\n                next : \"comment\"\n            }, {\n                token : \"string\", // single line\n                regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n            }, {\n                token : \"string\", // single line\n                regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n            }, {\n                token : \"constant.numeric\", // hex\n                regex : /0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\\b/\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /[+-]?\\d[\\d_]*(?:(?:\\.[\\d_]*)?(?:[eE][+-]?[\\d_]+)?)?[LlSsDdFfYy]?\\b/\n            }, {\n                token : \"constant.language.boolean\",\n                regex : \"(?:true|false)\\\\b\"\n            }, {\n                token : keywordMapper,\n                regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"===|&&|\\\\*=|\\\\.\\\\.|\\\\*\\\\*|#|!|%|\\\\*|\\\\?:|\\\\+|\\\\/|,|\\\\+=|\\\\-|\\\\.\\\\.<|!==|:|\\\\/=|\\\\?\\\\.|\\\\+\\\\+|>|=|<|>=|=>|==|\\\\]|\\\\[|\\\\-=|\\\\->|\\\\||\\\\-\\\\-|<>|!=|%=|\\\\|\"\n            }, {\n                token : \"lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"rparen\",\n                regex : \"[\\\\])}]\"\n            }, {\n                token : \"text\",\n                regex : \"\\\\s+\"\n            }\n        ],\n        \"comment\" : [\n            {\n                token : \"comment\", // closing comment\n                regex : \".*?\\\\*\\\\/\",\n                next : \"start\"\n            }, {\n                token : \"comment\", // comment spanning whole line\n                regex : \".+\"\n            }\n        ]\n    };\n\n    this.embedRules(DocCommentHighlightRules, \"doc-\",\n        [ DocCommentHighlightRules.getEndRule(\"start\") ]);\n};\n\noop.inherits(WollokHighlightRules, TextHighlightRules);\n\nexports.WollokHighlightRules = WollokHighlightRules;\n});\n\nace.define(\"ace/mode/wollok\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/javascript\",\"ace/mode/wollok_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar JavaScriptMode = require(\"./javascript\").Mode;\nvar WollokHighlightRules = require(\"./wollok_highlight_rules\").WollokHighlightRules;\n\nvar Mode = function() {\n    JavaScriptMode.call(this);\n    this.HighlightRules = WollokHighlightRules;\n};\noop.inherits(Mode, JavaScriptMode);\n\n(function() {\n    \n    this.createWorker = function(session) {\n        return null;\n    };\n\n    this.$id = \"ace/mode/wollok\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-xml.js",
    "content": "ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n    this.$rules = {\n        start : [\n            {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n            {\n                token : [\"punctuation.xml-decl.xml\", \"keyword.xml-decl.xml\"],\n                regex : \"(<\\\\?)(xml)(?=[\\\\s])\", next : \"xml_decl\", caseInsensitive: true\n            },\n            {\n                token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n            },\n            {token : \"comment.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n            {\n                token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n            },\n            {include : \"tag\"},\n            {token : \"text.end-tag-open.xml\", regex: \"</\"},\n            {token : \"text.tag-open.xml\", regex: \"<\"},\n            {include : \"reference\"},\n            {defaultToken : \"text.xml\"}\n        ],\n\n        xml_decl : [{\n            token : \"entity.other.attribute-name.decl-attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.decl-attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"whitespace\"\n        }, {\n            include: \"string\"\n        }, {\n            token : \"punctuation.xml-decl.xml\",\n            regex : \"\\\\?>\",\n            next : \"start\"\n        }],\n\n        processing_instruction : [\n            {token : \"punctuation.instruction.xml\", regex : \"\\\\?>\", next : \"start\"},\n            {defaultToken : \"instruction.xml\"}\n        ],\n\n        doctype : [\n            {include : \"whitespace\"},\n            {include : \"string\"},\n            {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n            {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n            {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n        ],\n\n        int_subset : [{\n            token : \"text.xml\",\n            regex : \"\\\\s+\"\n        }, {\n            token: \"punctuation.int-subset.xml\",\n            regex: \"]\",\n            next: \"pop\"\n        }, {\n            token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n            regex : \"(<\\\\!)(\" + tagRegex + \")\",\n            push : [{\n                token : \"text\",\n                regex : \"\\\\s+\"\n            },\n            {\n                token : \"punctuation.markup-decl.xml\",\n                regex : \">\",\n                next : \"pop\"\n            },\n            {include : \"string\"}]\n        }],\n\n        cdata : [\n            {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n            {token : \"text.xml\", regex : \"\\\\s+\"},\n            {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n        ],\n\n        comment : [\n            {token : \"comment.xml\", regex : \"-->\", next : \"start\"},\n            {defaultToken : \"comment.xml\"}\n        ],\n\n        reference : [{\n            token : \"constant.language.escape.reference.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        attr_reference : [{\n            token : \"constant.language.escape.reference.attribute-value.xml\",\n            regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n        }],\n\n        tag : [{\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n            regex : \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : \"start\"}\n            ]\n        }],\n\n        tag_whitespace : [\n            {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        whitespace : [\n            {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n        ],\n        string: [{\n            token : \"string.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }, {\n            token : \"string.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.xml\", regex: '\"', next: \"pop\"},\n                {defaultToken : \"string.xml\"}\n            ]\n        }],\n\n        attributes: [{\n            token : \"entity.other.attribute-name.xml\",\n            regex : \"(?:\" + tagRegex + \":)?\" + tagRegex + \"\"\n        }, {\n            token : \"keyword.operator.attribute-equals.xml\",\n            regex : \"=\"\n        }, {\n            include: \"tag_whitespace\"\n        }, {\n            include: \"attribute_value\"\n        }],\n\n        attribute_value: [{\n            token : \"string.attribute-value.xml\",\n            regex : \"'\",\n            push : [\n                {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }, {\n            token : \"string.attribute-value.xml\",\n            regex : '\"',\n            push : [\n                {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n                {include : \"attr_reference\"},\n                {defaultToken : \"string.attribute-value.xml\"}\n            ]\n        }]\n    };\n\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n\n\n(function() {\n\n    this.embedTagRules = function(HighlightRules, prefix, tag){\n        this.$rules.tag.unshift({\n            token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                {include : \"attributes\"},\n                {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n            ]\n        });\n\n        this.$rules[tag + \"-end\"] = [\n            {include : \"attributes\"},\n            {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\",  next: \"start\",\n                onMatch : function(value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n            }}\n        ]\n\n        this.embedRules(HighlightRules, prefix, [{\n            token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex : \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: tag + \"-end\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"<\\\\!\\\\[CDATA\\\\[\"\n        }, {\n            token: \"string.cdata.xml\",\n            regex : \"\\\\]\\\\]>\"\n        }]);\n    };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nvar XmlBehaviour = function () {\n\n    this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '\"' || text == \"'\") {\n            var quote = text;\n            var selected = session.doc.getTextRange(editor.getSelectionRange());\n            if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n                return {\n                    text: quote + selected + quote,\n                    selection: false\n                };\n            }\n\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n                return {\n                    text: \"\",\n                    selection: [1, 1]\n                };\n            }\n\n            if (!token)\n                token = iterator.stepBackward();\n\n            if (!token)\n                return;\n\n            while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n                token = iterator.stepBackward();\n            }\n            var rightSpace = !rightChar || rightChar.match(/\\s/);\n            if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n                return {\n                    text: quote + quote,\n                    selection: [1, 1]\n                };\n            }\n        }\n    });\n\n    this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == selected) {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n\n    this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '>') {\n            var position = editor.getSelectionRange().start;\n            var iterator = new TokenIterator(session, position.row, position.column);\n            var token = iterator.getCurrentToken() || iterator.stepBackward();\n            if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n                return;\n            if (is(token, \"reference.attribute-value\"))\n                return;\n            if (is(token, \"attribute-value\")) {\n                var firstChar = token.value.charAt(0);\n                if (firstChar == '\"' || firstChar == \"'\") {\n                    var lastChar = token.value.charAt(token.value.length - 1);\n                    var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;\n                    if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)\n                        return;\n                }\n            }\n            while (!is(token, \"tag-name\")) {\n                token = iterator.stepBackward();\n                if (token.value == \"<\") {\n                    token = iterator.stepForward();\n                    break;\n                }\n            }\n\n            var tokenRow = iterator.getCurrentTokenRow();\n            var tokenColumn = iterator.getCurrentTokenColumn();\n            if (is(iterator.stepBackward(), \"end-tag-open\"))\n                return;\n\n            var element = token.value;\n            if (tokenRow == position.row)\n                element = element.substring(0, position.column - tokenColumn);\n\n            if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n                 return;\n\n            return {\n               text: \">\" + \"</\" + element + \">\",\n               selection: [1, 1]\n            };\n        }\n    });\n\n    this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == \"\\n\") {\n            var cursor = editor.getCursorPosition();\n            var line = session.getLine(cursor.row);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (token && token.type.indexOf(\"tag-close\") !== -1) {\n                if (token.value == \"/>\")\n                    return;\n                while (token && token.type.indexOf(\"tag-name\") === -1) {\n                    token = iterator.stepBackward();\n                }\n\n                if (!token) {\n                    return;\n                }\n\n                var tag = token.value;\n                var row = iterator.getCurrentTokenRow();\n                token = iterator.stepBackward();\n                if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n                    return;\n                }\n\n                if (this.voidElements && !this.voidElements[tag]) {\n                    var nextToken = session.getTokenAt(cursor.row, cursor.column+1);\n                    var line = session.getLine(row);\n                    var nextIndent = this.$getIndent(line);\n                    var indent = nextIndent + session.getTabString();\n\n                    if (nextToken && nextToken.value === \"</\") {\n                        return {\n                            text: \"\\n\" + indent + \"\\n\" + nextIndent,\n                            selection: [1, indent.length, 1, indent.length]\n                        };\n                    } else {\n                        return {\n                            text: \"\\n\" + indent\n                        };\n                    }\n                }\n            }\n        }\n    });\n\n};\n\noop.inherits(XmlBehaviour, Behaviour);\n\nexports.XmlBehaviour = XmlBehaviour;\n});\n\nace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/range\",\"ace/mode/folding/fold_mode\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar lang = require(\"../../lib/lang\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalEndTags) {\n    BaseFoldMode.call(this);\n    this.voidElements = voidElements || {};\n    this.optionalEndTags = oop.mixin({}, this.voidElements);\n    if (optionalEndTags)\n        oop.mixin(this.optionalEndTags, optionalEndTags);\n    \n};\noop.inherits(FoldMode, BaseFoldMode);\n\nvar Tag = function() {\n    this.tagName = \"\";\n    this.closing = false;\n    this.selfClosing = false;\n    this.start = {row: 0, column: 0};\n    this.end = {row: 0, column: 0};\n};\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\n(function() {\n\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var tag = this._getFirstTagInLine(session, row);\n\n        if (!tag)\n            return \"\";\n\n        if (tag.closing || (!tag.tagName && tag.selfClosing))\n            return foldStyle == \"markbeginend\" ? \"end\" : \"\";\n\n        if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n            return \"\";\n\n        if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n            return \"\";\n\n        return \"start\";\n    };\n    this._getFirstTagInLine = function(session, row) {\n        var tokens = session.getTokens(row);\n        var tag = new Tag();\n\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            if (is(token, \"tag-open\")) {\n                tag.end.column = tag.start.column + token.value.length;\n                tag.closing = is(token, \"end-tag-open\");\n                token = tokens[++i];\n                if (!token)\n                    return null;\n                tag.tagName = token.value;\n                tag.end.column += token.value.length;\n                for (i++; i < tokens.length; i++) {\n                    token = tokens[i];\n                    tag.end.column += token.value.length;\n                    if (is(token, \"tag-close\")) {\n                        tag.selfClosing = token.value == '/>';\n                        break;\n                    }\n                }\n                return tag;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == '/>';\n                return tag;\n            }\n            tag.start.column += token.value.length;\n        }\n\n        return null;\n    };\n\n    this._findEndTagInLine = function(session, row, tagName, startColumn) {\n        var tokens = session.getTokens(row);\n        var column = 0;\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            column += token.value.length;\n            if (column < startColumn)\n                continue;\n            if (is(token, \"end-tag-open\")) {\n                token = tokens[i + 1];\n                if (token && token.value == tagName)\n                    return true;\n            }\n        }\n        return false;\n    };\n    this._readTagForward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n                iterator.stepForward();\n                return tag;\n            }\n        } while(token = iterator.stepForward());\n\n        return null;\n    };\n    \n    this._readTagBackward = function(iterator) {\n        var token = iterator.getCurrentToken();\n        if (!token)\n            return null;\n\n        var tag = new Tag();\n        do {\n            if (is(token, \"tag-open\")) {\n                tag.closing = is(token, \"end-tag-open\");\n                tag.start.row = iterator.getCurrentTokenRow();\n                tag.start.column = iterator.getCurrentTokenColumn();\n                iterator.stepBackward();\n                return tag;\n            } else if (is(token, \"tag-name\")) {\n                tag.tagName = token.value;\n            } else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == \"/>\";\n                tag.end.row = iterator.getCurrentTokenRow();\n                tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n            }\n        } while(token = iterator.stepBackward());\n\n        return null;\n    };\n    \n    this._pop = function(stack, tag) {\n        while (stack.length) {\n            \n            var top = stack[stack.length-1];\n            if (!tag || top.tagName == tag.tagName) {\n                return stack.pop();\n            }\n            else if (this.optionalEndTags.hasOwnProperty(top.tagName)) {\n                stack.pop();\n                continue;\n            } else {\n                return null;\n            }\n        }\n    };\n    \n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var firstTag = this._getFirstTagInLine(session, row);\n        \n        if (!firstTag)\n            return null;\n        \n        var isBackward = firstTag.closing || firstTag.selfClosing;\n        var stack = [];\n        var tag;\n        \n        if (!isBackward) {\n            var iterator = new TokenIterator(session, row, firstTag.start.column);\n            var start = {\n                row: row,\n                column: firstTag.start.column + firstTag.tagName.length + 2\n            };\n            if (firstTag.start.row == firstTag.end.row)\n                start.column = firstTag.end.column;\n            while (tag = this._readTagForward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0)\n                        return Range.fromPoints(start, tag.start);\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        else {\n            var iterator = new TokenIterator(session, row, firstTag.end.column);\n            var end = {\n                row: row,\n                column: firstTag.start.column\n            };\n            \n            while (tag = this._readTagBackward(iterator)) {\n                if (tag.selfClosing) {\n                    if (!stack.length) {\n                        tag.start.column += tag.tagName.length + 2;\n                        tag.end.column -= 2;\n                        return Range.fromPoints(tag.start, tag.end);\n                    } else\n                        continue;\n                }\n                \n                if (!tag.closing) {\n                    this._pop(stack, tag);\n                    if (stack.length == 0) {\n                        tag.start.column += tag.tagName.length + 2;\n                        if (tag.start.row == tag.end.row && tag.start.column < tag.end.column)\n                            tag.start.column = tag.end.column;\n                        return Range.fromPoints(tag.start, end);\n                    }\n                }\n                else {\n                    stack.push(tag);\n                }\n            }\n        }\n        \n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar XmlFoldMode = require(\"./folding/xml\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\n\nvar Mode = function() {\n   this.HighlightRules = XmlHighlightRules;\n   this.$behaviour = new XmlBehaviour();\n   this.foldingRules = new XmlFoldMode();\n};\n\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.voidElements = lang.arrayToMap([]);\n\n    this.blockComment = {start: \"<!--\", end: \"-->\"};\n\n    this.createWorker = function(session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/xml_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n\n        worker.on(\"error\", function(e) {\n            session.setAnnotations(e.data);\n        });\n\n        worker.on(\"terminate\", function() {\n            session.clearAnnotations();\n        });\n\n        return worker;\n    };\n    \n    this.$id = \"ace/mode/xml\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-xquery.js",
    "content": "ace.define(\"ace/mode/xquery/xquery_lexer\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\nmodule.exports = (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error(\"Cannot find module '\"+o+\"'\")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({\n1:[function(_dereq_,module,exports){\n                                                            var XQueryTokenizer = exports.XQueryTokenizer = function XQueryTokenizer(string, parsingEventHandler)\n                                                            {\n                                                              init(string, parsingEventHandler);\n  var self = this;\n\n  this.ParseException = function(b, e, s, o, x)\n  {\n    var\n      begin = b,\n      end = e,\n      state = s,\n      offending = o,\n      expected = x;\n\n    this.getBegin = function() {return begin;};\n    this.getEnd = function() {return end;};\n    this.getState = function() {return state;};\n    this.getExpected = function() {return expected;};\n    this.getOffending = function() {return offending;};\n\n    this.getMessage = function()\n    {\n      return offending < 0 ? \"lexical analysis failed\" : \"syntax error\";\n    };\n  };\n\n  function init(string, parsingEventHandler)\n  {\n    eventHandler = parsingEventHandler;\n    input = string;\n    size = string.length;\n    reset(0, 0, 0);\n  }\n\n  this.getInput = function()\n  {\n    return input;\n  };\n\n  function reset(l, b, e)\n  {\n            b0 = b; e0 = b;\n    l1 = l; b1 = b; e1 = e;\n    end = e;\n    eventHandler.reset(input);\n  }\n\n  this.getOffendingToken = function(e)\n  {\n    var o = e.getOffending();\n    return o >= 0 ? XQueryTokenizer.TOKEN[o] : null;\n  };\n\n  this.getExpectedTokenSet = function(e)\n  {\n    var expected;\n    if (e.getExpected() < 0)\n    {\n      expected = XQueryTokenizer.getTokenSet(- e.getState());\n    }\n    else\n    {\n      expected = [XQueryTokenizer.TOKEN[e.getExpected()]];\n    }\n    return expected;\n  };\n\n  this.getErrorMessage = function(e)\n  {\n    var tokenSet = this.getExpectedTokenSet(e);\n    var found = this.getOffendingToken(e);\n    var prefix = input.substring(0, e.getBegin());\n    var lines = prefix.split(\"\\n\");\n    var line = lines.length;\n    var column = lines[line - 1].length + 1;\n    var size = e.getEnd() - e.getBegin();\n    return e.getMessage()\n         + (found == null ? \"\" : \", found \" + found)\n         + \"\\nwhile expecting \"\n         + (tokenSet.length == 1 ? tokenSet[0] : (\"[\" + tokenSet.join(\", \") + \"]\"))\n         + \"\\n\"\n         + (size == 0 || found != null ? \"\" : \"after successfully scanning \" + size + \" characters beginning \")\n         + \"at line \" + line + \", column \" + column + \":\\n...\"\n         + input.substring(e.getBegin(), Math.min(input.length, e.getBegin() + 64))\n         + \"...\";\n  };\n\n  this.parse_start = function()\n  {\n    eventHandler.startNonterminal(\"start\", e0);\n    lookahead1W(14);                // ModuleDecl | Annotation | OptionDecl | Operator | Variable | Tag | AttrTest |\n    switch (l1)\n    {\n    case 55:                        // '<![CDATA['\n      shift(55);                    // '<![CDATA['\n      break;\n    case 54:                        // '<!--'\n      shift(54);                    // '<!--'\n      break;\n    case 56:                        // '<?'\n      shift(56);                    // '<?'\n      break;\n    case 40:                        // '(#'\n      shift(40);                    // '(#'\n      break;\n    case 42:                        // '(:~'\n      shift(42);                    // '(:~'\n      break;\n    case 41:                        // '(:'\n      shift(41);                    // '(:'\n      break;\n    case 35:                        // '\"'\n      shift(35);                    // '\"'\n      break;\n    case 38:                        // \"'\"\n      shift(38);                    // \"'\"\n      break;\n    case 274:                       // '}'\n      shift(274);                   // '}'\n      break;\n    case 271:                       // '{'\n      shift(271);                   // '{'\n      break;\n    case 39:                        // '('\n      shift(39);                    // '('\n      break;\n    case 43:                        // ')'\n      shift(43);                    // ')'\n      break;\n    case 49:                        // '/'\n      shift(49);                    // '/'\n      break;\n    case 62:                        // '['\n      shift(62);                    // '['\n      break;\n    case 63:                        // ']'\n      shift(63);                    // ']'\n      break;\n    case 46:                        // ','\n      shift(46);                    // ','\n      break;\n    case 48:                        // '.'\n      shift(48);                    // '.'\n      break;\n    case 53:                        // ';'\n      shift(53);                    // ';'\n      break;\n    case 51:                        // ':'\n      shift(51);                    // ':'\n      break;\n    case 34:                        // '!'\n      shift(34);                    // '!'\n      break;\n    case 273:                       // '|'\n      shift(273);                   // '|'\n      break;\n    case 2:                         // Annotation\n      shift(2);                     // Annotation\n      break;\n    case 1:                         // ModuleDecl\n      shift(1);                     // ModuleDecl\n      break;\n    case 3:                         // OptionDecl\n      shift(3);                     // OptionDecl\n      break;\n    case 12:                        // AttrTest\n      shift(12);                    // AttrTest\n      break;\n    case 13:                        // Wildcard\n      shift(13);                    // Wildcard\n      break;\n    case 15:                        // IntegerLiteral\n      shift(15);                    // IntegerLiteral\n      break;\n    case 16:                        // DecimalLiteral\n      shift(16);                    // DecimalLiteral\n      break;\n    case 17:                        // DoubleLiteral\n      shift(17);                    // DoubleLiteral\n      break;\n    case 5:                         // Variable\n      shift(5);                     // Variable\n      break;\n    case 6:                         // Tag\n      shift(6);                     // Tag\n      break;\n    case 4:                         // Operator\n      shift(4);                     // Operator\n      break;\n    case 33:                        // EOF\n      shift(33);                    // EOF\n      break;\n    default:\n      parse_EQName();\n    }\n    eventHandler.endNonterminal(\"start\", e0);\n  };\n\n  this.parse_StartTag = function()\n  {\n    eventHandler.startNonterminal(\"StartTag\", e0);\n    lookahead1W(8);                 // QName | S^WS | EOF | '\"' | \"'\" | '/>' | '=' | '>'\n    switch (l1)\n    {\n    case 58:                        // '>'\n      shift(58);                    // '>'\n      break;\n    case 50:                        // '/>'\n      shift(50);                    // '/>'\n      break;\n    case 27:                        // QName\n      shift(27);                    // QName\n      break;\n    case 57:                        // '='\n      shift(57);                    // '='\n      break;\n    case 35:                        // '\"'\n      shift(35);                    // '\"'\n      break;\n    case 38:                        // \"'\"\n      shift(38);                    // \"'\"\n      break;\n    default:\n      shift(33);                    // EOF\n    }\n    eventHandler.endNonterminal(\"StartTag\", e0);\n  };\n\n  this.parse_TagContent = function()\n  {\n    eventHandler.startNonterminal(\"TagContent\", e0);\n    lookahead1(11);                 // Tag | EndTag | PredefinedEntityRef | ElementContentChar | CharRef | EOF |\n    switch (l1)\n    {\n    case 23:                        // ElementContentChar\n      shift(23);                    // ElementContentChar\n      break;\n    case 6:                         // Tag\n      shift(6);                     // Tag\n      break;\n    case 7:                         // EndTag\n      shift(7);                     // EndTag\n      break;\n    case 55:                        // '<![CDATA['\n      shift(55);                    // '<![CDATA['\n      break;\n    case 54:                        // '<!--'\n      shift(54);                    // '<!--'\n      break;\n    case 18:                        // PredefinedEntityRef\n      shift(18);                    // PredefinedEntityRef\n      break;\n    case 29:                        // CharRef\n      shift(29);                    // CharRef\n      break;\n    case 272:                       // '{{'\n      shift(272);                   // '{{'\n      break;\n    case 275:                       // '}}'\n      shift(275);                   // '}}'\n      break;\n    case 271:                       // '{'\n      shift(271);                   // '{'\n      break;\n    default:\n      shift(33);                    // EOF\n    }\n    eventHandler.endNonterminal(\"TagContent\", e0);\n  };\n\n  this.parse_AposAttr = function()\n  {\n    eventHandler.startNonterminal(\"AposAttr\", e0);\n    lookahead1(10);                 // PredefinedEntityRef | EscapeApos | AposAttrContentChar | CharRef | EOF | \"'\" |\n    switch (l1)\n    {\n    case 20:                        // EscapeApos\n      shift(20);                    // EscapeApos\n      break;\n    case 25:                        // AposAttrContentChar\n      shift(25);                    // AposAttrContentChar\n      break;\n    case 18:                        // PredefinedEntityRef\n      shift(18);                    // PredefinedEntityRef\n      break;\n    case 29:                        // CharRef\n      shift(29);                    // CharRef\n      break;\n    case 272:                       // '{{'\n      shift(272);                   // '{{'\n      break;\n    case 275:                       // '}}'\n      shift(275);                   // '}}'\n      break;\n    case 271:                       // '{'\n      shift(271);                   // '{'\n      break;\n    case 38:                        // \"'\"\n      shift(38);                    // \"'\"\n      break;\n    default:\n      shift(33);                    // EOF\n    }\n    eventHandler.endNonterminal(\"AposAttr\", e0);\n  };\n\n  this.parse_QuotAttr = function()\n  {\n    eventHandler.startNonterminal(\"QuotAttr\", e0);\n    lookahead1(9);                  // PredefinedEntityRef | EscapeQuot | QuotAttrContentChar | CharRef | EOF | '\"' |\n    switch (l1)\n    {\n    case 19:                        // EscapeQuot\n      shift(19);                    // EscapeQuot\n      break;\n    case 24:                        // QuotAttrContentChar\n      shift(24);                    // QuotAttrContentChar\n      break;\n    case 18:                        // PredefinedEntityRef\n      shift(18);                    // PredefinedEntityRef\n      break;\n    case 29:                        // CharRef\n      shift(29);                    // CharRef\n      break;\n    case 272:                       // '{{'\n      shift(272);                   // '{{'\n      break;\n    case 275:                       // '}}'\n      shift(275);                   // '}}'\n      break;\n    case 271:                       // '{'\n      shift(271);                   // '{'\n      break;\n    case 35:                        // '\"'\n      shift(35);                    // '\"'\n      break;\n    default:\n      shift(33);                    // EOF\n    }\n    eventHandler.endNonterminal(\"QuotAttr\", e0);\n  };\n\n  this.parse_CData = function()\n  {\n    eventHandler.startNonterminal(\"CData\", e0);\n    lookahead1(1);                  // CDataSectionContents | EOF | ']]>'\n    switch (l1)\n    {\n    case 11:                        // CDataSectionContents\n      shift(11);                    // CDataSectionContents\n      break;\n    case 64:                        // ']]>'\n      shift(64);                    // ']]>'\n      break;\n    default:\n      shift(33);                    // EOF\n    }\n    eventHandler.endNonterminal(\"CData\", e0);\n  };\n\n  this.parse_XMLComment = function()\n  {\n    eventHandler.startNonterminal(\"XMLComment\", e0);\n    lookahead1(0);                  // DirCommentContents | EOF | '-->'\n    switch (l1)\n    {\n    case 9:                         // DirCommentContents\n      shift(9);                     // DirCommentContents\n      break;\n    case 47:                        // '-->'\n      shift(47);                    // '-->'\n      break;\n    default:\n      shift(33);                    // EOF\n    }\n    eventHandler.endNonterminal(\"XMLComment\", e0);\n  };\n\n  this.parse_PI = function()\n  {\n    eventHandler.startNonterminal(\"PI\", e0);\n    lookahead1(3);                  // DirPIContents | EOF | '?' | '?>'\n    switch (l1)\n    {\n    case 10:                        // DirPIContents\n      shift(10);                    // DirPIContents\n      break;\n    case 59:                        // '?'\n      shift(59);                    // '?'\n      break;\n    case 60:                        // '?>'\n      shift(60);                    // '?>'\n      break;\n    default:\n      shift(33);                    // EOF\n    }\n    eventHandler.endNonterminal(\"PI\", e0);\n  };\n\n  this.parse_Pragma = function()\n  {\n    eventHandler.startNonterminal(\"Pragma\", e0);\n    lookahead1(2);                  // PragmaContents | EOF | '#' | '#)'\n    switch (l1)\n    {\n    case 8:                         // PragmaContents\n      shift(8);                     // PragmaContents\n      break;\n    case 36:                        // '#'\n      shift(36);                    // '#'\n      break;\n    case 37:                        // '#)'\n      shift(37);                    // '#)'\n      break;\n    default:\n      shift(33);                    // EOF\n    }\n    eventHandler.endNonterminal(\"Pragma\", e0);\n  };\n\n  this.parse_Comment = function()\n  {\n    eventHandler.startNonterminal(\"Comment\", e0);\n    lookahead1(4);                  // CommentContents | EOF | '(:' | ':)'\n    switch (l1)\n    {\n    case 52:                        // ':)'\n      shift(52);                    // ':)'\n      break;\n    case 41:                        // '(:'\n      shift(41);                    // '(:'\n      break;\n    case 30:                        // CommentContents\n      shift(30);                    // CommentContents\n      break;\n    default:\n      shift(33);                    // EOF\n    }\n    eventHandler.endNonterminal(\"Comment\", e0);\n  };\n\n  this.parse_CommentDoc = function()\n  {\n    eventHandler.startNonterminal(\"CommentDoc\", e0);\n    lookahead1(5);                  // DocTag | DocCommentContents | EOF | '(:' | ':)'\n    switch (l1)\n    {\n    case 31:                        // DocTag\n      shift(31);                    // DocTag\n      break;\n    case 32:                        // DocCommentContents\n      shift(32);                    // DocCommentContents\n      break;\n    case 52:                        // ':)'\n      shift(52);                    // ':)'\n      break;\n    case 41:                        // '(:'\n      shift(41);                    // '(:'\n      break;\n    default:\n      shift(33);                    // EOF\n    }\n    eventHandler.endNonterminal(\"CommentDoc\", e0);\n  };\n\n  this.parse_QuotString = function()\n  {\n    eventHandler.startNonterminal(\"QuotString\", e0);\n    lookahead1(6);                  // PredefinedEntityRef | EscapeQuot | QuotChar | CharRef | EOF | '\"'\n    switch (l1)\n    {\n    case 18:                        // PredefinedEntityRef\n      shift(18);                    // PredefinedEntityRef\n      break;\n    case 29:                        // CharRef\n      shift(29);                    // CharRef\n      break;\n    case 19:                        // EscapeQuot\n      shift(19);                    // EscapeQuot\n      break;\n    case 21:                        // QuotChar\n      shift(21);                    // QuotChar\n      break;\n    case 35:                        // '\"'\n      shift(35);                    // '\"'\n      break;\n    default:\n      shift(33);                    // EOF\n    }\n    eventHandler.endNonterminal(\"QuotString\", e0);\n  };\n\n  this.parse_AposString = function()\n  {\n    eventHandler.startNonterminal(\"AposString\", e0);\n    lookahead1(7);                  // PredefinedEntityRef | EscapeApos | AposChar | CharRef | EOF | \"'\"\n    switch (l1)\n    {\n    case 18:                        // PredefinedEntityRef\n      shift(18);                    // PredefinedEntityRef\n      break;\n    case 29:                        // CharRef\n      shift(29);                    // CharRef\n      break;\n    case 20:                        // EscapeApos\n      shift(20);                    // EscapeApos\n      break;\n    case 22:                        // AposChar\n      shift(22);                    // AposChar\n      break;\n    case 38:                        // \"'\"\n      shift(38);                    // \"'\"\n      break;\n    default:\n      shift(33);                    // EOF\n    }\n    eventHandler.endNonterminal(\"AposString\", e0);\n  };\n\n  this.parse_Prefix = function()\n  {\n    eventHandler.startNonterminal(\"Prefix\", e0);\n    lookahead1W(13);                // NCName^Token | S^WS | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' |\n    whitespace();\n    parse_NCName();\n    eventHandler.endNonterminal(\"Prefix\", e0);\n  };\n\n  this.parse__EQName = function()\n  {\n    eventHandler.startNonterminal(\"_EQName\", e0);\n    lookahead1W(12);                // EQName^Token | S^WS | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' |\n    whitespace();\n    parse_EQName();\n    eventHandler.endNonterminal(\"_EQName\", e0);\n  };\n\n  function parse_EQName()\n  {\n    eventHandler.startNonterminal(\"EQName\", e0);\n    switch (l1)\n    {\n    case 77:                        // 'attribute'\n      shift(77);                    // 'attribute'\n      break;\n    case 91:                        // 'comment'\n      shift(91);                    // 'comment'\n      break;\n    case 115:                       // 'document-node'\n      shift(115);                   // 'document-node'\n      break;\n    case 116:                       // 'element'\n      shift(116);                   // 'element'\n      break;\n    case 119:                       // 'empty-sequence'\n      shift(119);                   // 'empty-sequence'\n      break;\n    case 140:                       // 'function'\n      shift(140);                   // 'function'\n      break;\n    case 147:                       // 'if'\n      shift(147);                   // 'if'\n      break;\n    case 160:                       // 'item'\n      shift(160);                   // 'item'\n      break;\n    case 180:                       // 'namespace-node'\n      shift(180);                   // 'namespace-node'\n      break;\n    case 186:                       // 'node'\n      shift(186);                   // 'node'\n      break;\n    case 211:                       // 'processing-instruction'\n      shift(211);                   // 'processing-instruction'\n      break;\n    case 221:                       // 'schema-attribute'\n      shift(221);                   // 'schema-attribute'\n      break;\n    case 222:                       // 'schema-element'\n      shift(222);                   // 'schema-element'\n      break;\n    case 238:                       // 'switch'\n      shift(238);                   // 'switch'\n      break;\n    case 239:                       // 'text'\n      shift(239);                   // 'text'\n      break;\n    case 248:                       // 'typeswitch'\n      shift(248);                   // 'typeswitch'\n      break;\n    default:\n      parse_FunctionName();\n    }\n    eventHandler.endNonterminal(\"EQName\", e0);\n  }\n\n  function parse_FunctionName()\n  {\n    eventHandler.startNonterminal(\"FunctionName\", e0);\n    switch (l1)\n    {\n    case 14:                        // EQName^Token\n      shift(14);                    // EQName^Token\n      break;\n    case 65:                        // 'after'\n      shift(65);                    // 'after'\n      break;\n    case 68:                        // 'ancestor'\n      shift(68);                    // 'ancestor'\n      break;\n    case 69:                        // 'ancestor-or-self'\n      shift(69);                    // 'ancestor-or-self'\n      break;\n    case 70:                        // 'and'\n      shift(70);                    // 'and'\n      break;\n    case 74:                        // 'as'\n      shift(74);                    // 'as'\n      break;\n    case 75:                        // 'ascending'\n      shift(75);                    // 'ascending'\n      break;\n    case 79:                        // 'before'\n      shift(79);                    // 'before'\n      break;\n    case 83:                        // 'case'\n      shift(83);                    // 'case'\n      break;\n    case 84:                        // 'cast'\n      shift(84);                    // 'cast'\n      break;\n    case 85:                        // 'castable'\n      shift(85);                    // 'castable'\n      break;\n    case 88:                        // 'child'\n      shift(88);                    // 'child'\n      break;\n    case 89:                        // 'collation'\n      shift(89);                    // 'collation'\n      break;\n    case 98:                        // 'copy'\n      shift(98);                    // 'copy'\n      break;\n    case 100:                       // 'count'\n      shift(100);                   // 'count'\n      break;\n    case 103:                       // 'declare'\n      shift(103);                   // 'declare'\n      break;\n    case 104:                       // 'default'\n      shift(104);                   // 'default'\n      break;\n    case 105:                       // 'delete'\n      shift(105);                   // 'delete'\n      break;\n    case 106:                       // 'descendant'\n      shift(106);                   // 'descendant'\n      break;\n    case 107:                       // 'descendant-or-self'\n      shift(107);                   // 'descendant-or-self'\n      break;\n    case 108:                       // 'descending'\n      shift(108);                   // 'descending'\n      break;\n    case 113:                       // 'div'\n      shift(113);                   // 'div'\n      break;\n    case 114:                       // 'document'\n      shift(114);                   // 'document'\n      break;\n    case 117:                       // 'else'\n      shift(117);                   // 'else'\n      break;\n    case 118:                       // 'empty'\n      shift(118);                   // 'empty'\n      break;\n    case 121:                       // 'end'\n      shift(121);                   // 'end'\n      break;\n    case 123:                       // 'eq'\n      shift(123);                   // 'eq'\n      break;\n    case 124:                       // 'every'\n      shift(124);                   // 'every'\n      break;\n    case 126:                       // 'except'\n      shift(126);                   // 'except'\n      break;\n    case 129:                       // 'first'\n      shift(129);                   // 'first'\n      break;\n    case 130:                       // 'following'\n      shift(130);                   // 'following'\n      break;\n    case 131:                       // 'following-sibling'\n      shift(131);                   // 'following-sibling'\n      break;\n    case 132:                       // 'for'\n      shift(132);                   // 'for'\n      break;\n    case 141:                       // 'ge'\n      shift(141);                   // 'ge'\n      break;\n    case 143:                       // 'group'\n      shift(143);                   // 'group'\n      break;\n    case 145:                       // 'gt'\n      shift(145);                   // 'gt'\n      break;\n    case 146:                       // 'idiv'\n      shift(146);                   // 'idiv'\n      break;\n    case 148:                       // 'import'\n      shift(148);                   // 'import'\n      break;\n    case 154:                       // 'insert'\n      shift(154);                   // 'insert'\n      break;\n    case 155:                       // 'instance'\n      shift(155);                   // 'instance'\n      break;\n    case 157:                       // 'intersect'\n      shift(157);                   // 'intersect'\n      break;\n    case 158:                       // 'into'\n      shift(158);                   // 'into'\n      break;\n    case 159:                       // 'is'\n      shift(159);                   // 'is'\n      break;\n    case 165:                       // 'last'\n      shift(165);                   // 'last'\n      break;\n    case 167:                       // 'le'\n      shift(167);                   // 'le'\n      break;\n    case 169:                       // 'let'\n      shift(169);                   // 'let'\n      break;\n    case 173:                       // 'lt'\n      shift(173);                   // 'lt'\n      break;\n    case 175:                       // 'mod'\n      shift(175);                   // 'mod'\n      break;\n    case 176:                       // 'modify'\n      shift(176);                   // 'modify'\n      break;\n    case 177:                       // 'module'\n      shift(177);                   // 'module'\n      break;\n    case 179:                       // 'namespace'\n      shift(179);                   // 'namespace'\n      break;\n    case 181:                       // 'ne'\n      shift(181);                   // 'ne'\n      break;\n    case 193:                       // 'only'\n      shift(193);                   // 'only'\n      break;\n    case 195:                       // 'or'\n      shift(195);                   // 'or'\n      break;\n    case 196:                       // 'order'\n      shift(196);                   // 'order'\n      break;\n    case 197:                       // 'ordered'\n      shift(197);                   // 'ordered'\n      break;\n    case 201:                       // 'parent'\n      shift(201);                   // 'parent'\n      break;\n    case 207:                       // 'preceding'\n      shift(207);                   // 'preceding'\n      break;\n    case 208:                       // 'preceding-sibling'\n      shift(208);                   // 'preceding-sibling'\n      break;\n    case 213:                       // 'rename'\n      shift(213);                   // 'rename'\n      break;\n    case 214:                       // 'replace'\n      shift(214);                   // 'replace'\n      break;\n    case 215:                       // 'return'\n      shift(215);                   // 'return'\n      break;\n    case 219:                       // 'satisfies'\n      shift(219);                   // 'satisfies'\n      break;\n    case 224:                       // 'self'\n      shift(224);                   // 'self'\n      break;\n    case 230:                       // 'some'\n      shift(230);                   // 'some'\n      break;\n    case 231:                       // 'stable'\n      shift(231);                   // 'stable'\n      break;\n    case 232:                       // 'start'\n      shift(232);                   // 'start'\n      break;\n    case 243:                       // 'to'\n      shift(243);                   // 'to'\n      break;\n    case 244:                       // 'treat'\n      shift(244);                   // 'treat'\n      break;\n    case 245:                       // 'try'\n      shift(245);                   // 'try'\n      break;\n    case 249:                       // 'union'\n      shift(249);                   // 'union'\n      break;\n    case 251:                       // 'unordered'\n      shift(251);                   // 'unordered'\n      break;\n    case 255:                       // 'validate'\n      shift(255);                   // 'validate'\n      break;\n    case 261:                       // 'where'\n      shift(261);                   // 'where'\n      break;\n    case 265:                       // 'with'\n      shift(265);                   // 'with'\n      break;\n    case 269:                       // 'xquery'\n      shift(269);                   // 'xquery'\n      break;\n    case 67:                        // 'allowing'\n      shift(67);                    // 'allowing'\n      break;\n    case 76:                        // 'at'\n      shift(76);                    // 'at'\n      break;\n    case 78:                        // 'base-uri'\n      shift(78);                    // 'base-uri'\n      break;\n    case 80:                        // 'boundary-space'\n      shift(80);                    // 'boundary-space'\n      break;\n    case 81:                        // 'break'\n      shift(81);                    // 'break'\n      break;\n    case 86:                        // 'catch'\n      shift(86);                    // 'catch'\n      break;\n    case 93:                        // 'construction'\n      shift(93);                    // 'construction'\n      break;\n    case 96:                        // 'context'\n      shift(96);                    // 'context'\n      break;\n    case 97:                        // 'continue'\n      shift(97);                    // 'continue'\n      break;\n    case 99:                        // 'copy-namespaces'\n      shift(99);                    // 'copy-namespaces'\n      break;\n    case 101:                       // 'decimal-format'\n      shift(101);                   // 'decimal-format'\n      break;\n    case 120:                       // 'encoding'\n      shift(120);                   // 'encoding'\n      break;\n    case 127:                       // 'exit'\n      shift(127);                   // 'exit'\n      break;\n    case 128:                       // 'external'\n      shift(128);                   // 'external'\n      break;\n    case 136:                       // 'ft-option'\n      shift(136);                   // 'ft-option'\n      break;\n    case 149:                       // 'in'\n      shift(149);                   // 'in'\n      break;\n    case 150:                       // 'index'\n      shift(150);                   // 'index'\n      break;\n    case 156:                       // 'integrity'\n      shift(156);                   // 'integrity'\n      break;\n    case 166:                       // 'lax'\n      shift(166);                   // 'lax'\n      break;\n    case 187:                       // 'nodes'\n      shift(187);                   // 'nodes'\n      break;\n    case 194:                       // 'option'\n      shift(194);                   // 'option'\n      break;\n    case 198:                       // 'ordering'\n      shift(198);                   // 'ordering'\n      break;\n    case 217:                       // 'revalidation'\n      shift(217);                   // 'revalidation'\n      break;\n    case 220:                       // 'schema'\n      shift(220);                   // 'schema'\n      break;\n    case 223:                       // 'score'\n      shift(223);                   // 'score'\n      break;\n    case 229:                       // 'sliding'\n      shift(229);                   // 'sliding'\n      break;\n    case 235:                       // 'strict'\n      shift(235);                   // 'strict'\n      break;\n    case 246:                       // 'tumbling'\n      shift(246);                   // 'tumbling'\n      break;\n    case 247:                       // 'type'\n      shift(247);                   // 'type'\n      break;\n    case 252:                       // 'updating'\n      shift(252);                   // 'updating'\n      break;\n    case 256:                       // 'value'\n      shift(256);                   // 'value'\n      break;\n    case 257:                       // 'variable'\n      shift(257);                   // 'variable'\n      break;\n    case 258:                       // 'version'\n      shift(258);                   // 'version'\n      break;\n    case 262:                       // 'while'\n      shift(262);                   // 'while'\n      break;\n    case 92:                        // 'constraint'\n      shift(92);                    // 'constraint'\n      break;\n    case 171:                       // 'loop'\n      shift(171);                   // 'loop'\n      break;\n    default:\n      shift(216);                   // 'returning'\n    }\n    eventHandler.endNonterminal(\"FunctionName\", e0);\n  }\n\n  function parse_NCName()\n  {\n    eventHandler.startNonterminal(\"NCName\", e0);\n    switch (l1)\n    {\n    case 26:                        // NCName^Token\n      shift(26);                    // NCName^Token\n      break;\n    case 65:                        // 'after'\n      shift(65);                    // 'after'\n      break;\n    case 70:                        // 'and'\n      shift(70);                    // 'and'\n      break;\n    case 74:                        // 'as'\n      shift(74);                    // 'as'\n      break;\n    case 75:                        // 'ascending'\n      shift(75);                    // 'ascending'\n      break;\n    case 79:                        // 'before'\n      shift(79);                    // 'before'\n      break;\n    case 83:                        // 'case'\n      shift(83);                    // 'case'\n      break;\n    case 84:                        // 'cast'\n      shift(84);                    // 'cast'\n      break;\n    case 85:                        // 'castable'\n      shift(85);                    // 'castable'\n      break;\n    case 89:                        // 'collation'\n      shift(89);                    // 'collation'\n      break;\n    case 100:                       // 'count'\n      shift(100);                   // 'count'\n      break;\n    case 104:                       // 'default'\n      shift(104);                   // 'default'\n      break;\n    case 108:                       // 'descending'\n      shift(108);                   // 'descending'\n      break;\n    case 113:                       // 'div'\n      shift(113);                   // 'div'\n      break;\n    case 117:                       // 'else'\n      shift(117);                   // 'else'\n      break;\n    case 118:                       // 'empty'\n      shift(118);                   // 'empty'\n      break;\n    case 121:                       // 'end'\n      shift(121);                   // 'end'\n      break;\n    case 123:                       // 'eq'\n      shift(123);                   // 'eq'\n      break;\n    case 126:                       // 'except'\n      shift(126);                   // 'except'\n      break;\n    case 132:                       // 'for'\n      shift(132);                   // 'for'\n      break;\n    case 141:                       // 'ge'\n      shift(141);                   // 'ge'\n      break;\n    case 143:                       // 'group'\n      shift(143);                   // 'group'\n      break;\n    case 145:                       // 'gt'\n      shift(145);                   // 'gt'\n      break;\n    case 146:                       // 'idiv'\n      shift(146);                   // 'idiv'\n      break;\n    case 155:                       // 'instance'\n      shift(155);                   // 'instance'\n      break;\n    case 157:                       // 'intersect'\n      shift(157);                   // 'intersect'\n      break;\n    case 158:                       // 'into'\n      shift(158);                   // 'into'\n      break;\n    case 159:                       // 'is'\n      shift(159);                   // 'is'\n      break;\n    case 167:                       // 'le'\n      shift(167);                   // 'le'\n      break;\n    case 169:                       // 'let'\n      shift(169);                   // 'let'\n      break;\n    case 173:                       // 'lt'\n      shift(173);                   // 'lt'\n      break;\n    case 175:                       // 'mod'\n      shift(175);                   // 'mod'\n      break;\n    case 176:                       // 'modify'\n      shift(176);                   // 'modify'\n      break;\n    case 181:                       // 'ne'\n      shift(181);                   // 'ne'\n      break;\n    case 193:                       // 'only'\n      shift(193);                   // 'only'\n      break;\n    case 195:                       // 'or'\n      shift(195);                   // 'or'\n      break;\n    case 196:                       // 'order'\n      shift(196);                   // 'order'\n      break;\n    case 215:                       // 'return'\n      shift(215);                   // 'return'\n      break;\n    case 219:                       // 'satisfies'\n      shift(219);                   // 'satisfies'\n      break;\n    case 231:                       // 'stable'\n      shift(231);                   // 'stable'\n      break;\n    case 232:                       // 'start'\n      shift(232);                   // 'start'\n      break;\n    case 243:                       // 'to'\n      shift(243);                   // 'to'\n      break;\n    case 244:                       // 'treat'\n      shift(244);                   // 'treat'\n      break;\n    case 249:                       // 'union'\n      shift(249);                   // 'union'\n      break;\n    case 261:                       // 'where'\n      shift(261);                   // 'where'\n      break;\n    case 265:                       // 'with'\n      shift(265);                   // 'with'\n      break;\n    case 68:                        // 'ancestor'\n      shift(68);                    // 'ancestor'\n      break;\n    case 69:                        // 'ancestor-or-self'\n      shift(69);                    // 'ancestor-or-self'\n      break;\n    case 77:                        // 'attribute'\n      shift(77);                    // 'attribute'\n      break;\n    case 88:                        // 'child'\n      shift(88);                    // 'child'\n      break;\n    case 91:                        // 'comment'\n      shift(91);                    // 'comment'\n      break;\n    case 98:                        // 'copy'\n      shift(98);                    // 'copy'\n      break;\n    case 103:                       // 'declare'\n      shift(103);                   // 'declare'\n      break;\n    case 105:                       // 'delete'\n      shift(105);                   // 'delete'\n      break;\n    case 106:                       // 'descendant'\n      shift(106);                   // 'descendant'\n      break;\n    case 107:                       // 'descendant-or-self'\n      shift(107);                   // 'descendant-or-self'\n      break;\n    case 114:                       // 'document'\n      shift(114);                   // 'document'\n      break;\n    case 115:                       // 'document-node'\n      shift(115);                   // 'document-node'\n      break;\n    case 116:                       // 'element'\n      shift(116);                   // 'element'\n      break;\n    case 119:                       // 'empty-sequence'\n      shift(119);                   // 'empty-sequence'\n      break;\n    case 124:                       // 'every'\n      shift(124);                   // 'every'\n      break;\n    case 129:                       // 'first'\n      shift(129);                   // 'first'\n      break;\n    case 130:                       // 'following'\n      shift(130);                   // 'following'\n      break;\n    case 131:                       // 'following-sibling'\n      shift(131);                   // 'following-sibling'\n      break;\n    case 140:                       // 'function'\n      shift(140);                   // 'function'\n      break;\n    case 147:                       // 'if'\n      shift(147);                   // 'if'\n      break;\n    case 148:                       // 'import'\n      shift(148);                   // 'import'\n      break;\n    case 154:                       // 'insert'\n      shift(154);                   // 'insert'\n      break;\n    case 160:                       // 'item'\n      shift(160);                   // 'item'\n      break;\n    case 165:                       // 'last'\n      shift(165);                   // 'last'\n      break;\n    case 177:                       // 'module'\n      shift(177);                   // 'module'\n      break;\n    case 179:                       // 'namespace'\n      shift(179);                   // 'namespace'\n      break;\n    case 180:                       // 'namespace-node'\n      shift(180);                   // 'namespace-node'\n      break;\n    case 186:                       // 'node'\n      shift(186);                   // 'node'\n      break;\n    case 197:                       // 'ordered'\n      shift(197);                   // 'ordered'\n      break;\n    case 201:                       // 'parent'\n      shift(201);                   // 'parent'\n      break;\n    case 207:                       // 'preceding'\n      shift(207);                   // 'preceding'\n      break;\n    case 208:                       // 'preceding-sibling'\n      shift(208);                   // 'preceding-sibling'\n      break;\n    case 211:                       // 'processing-instruction'\n      shift(211);                   // 'processing-instruction'\n      break;\n    case 213:                       // 'rename'\n      shift(213);                   // 'rename'\n      break;\n    case 214:                       // 'replace'\n      shift(214);                   // 'replace'\n      break;\n    case 221:                       // 'schema-attribute'\n      shift(221);                   // 'schema-attribute'\n      break;\n    case 222:                       // 'schema-element'\n      shift(222);                   // 'schema-element'\n      break;\n    case 224:                       // 'self'\n      shift(224);                   // 'self'\n      break;\n    case 230:                       // 'some'\n      shift(230);                   // 'some'\n      break;\n    case 238:                       // 'switch'\n      shift(238);                   // 'switch'\n      break;\n    case 239:                       // 'text'\n      shift(239);                   // 'text'\n      break;\n    case 245:                       // 'try'\n      shift(245);                   // 'try'\n      break;\n    case 248:                       // 'typeswitch'\n      shift(248);                   // 'typeswitch'\n      break;\n    case 251:                       // 'unordered'\n      shift(251);                   // 'unordered'\n      break;\n    case 255:                       // 'validate'\n      shift(255);                   // 'validate'\n      break;\n    case 257:                       // 'variable'\n      shift(257);                   // 'variable'\n      break;\n    case 269:                       // 'xquery'\n      shift(269);                   // 'xquery'\n      break;\n    case 67:                        // 'allowing'\n      shift(67);                    // 'allowing'\n      break;\n    case 76:                        // 'at'\n      shift(76);                    // 'at'\n      break;\n    case 78:                        // 'base-uri'\n      shift(78);                    // 'base-uri'\n      break;\n    case 80:                        // 'boundary-space'\n      shift(80);                    // 'boundary-space'\n      break;\n    case 81:                        // 'break'\n      shift(81);                    // 'break'\n      break;\n    case 86:                        // 'catch'\n      shift(86);                    // 'catch'\n      break;\n    case 93:                        // 'construction'\n      shift(93);                    // 'construction'\n      break;\n    case 96:                        // 'context'\n      shift(96);                    // 'context'\n      break;\n    case 97:                        // 'continue'\n      shift(97);                    // 'continue'\n      break;\n    case 99:                        // 'copy-namespaces'\n      shift(99);                    // 'copy-namespaces'\n      break;\n    case 101:                       // 'decimal-format'\n      shift(101);                   // 'decimal-format'\n      break;\n    case 120:                       // 'encoding'\n      shift(120);                   // 'encoding'\n      break;\n    case 127:                       // 'exit'\n      shift(127);                   // 'exit'\n      break;\n    case 128:                       // 'external'\n      shift(128);                   // 'external'\n      break;\n    case 136:                       // 'ft-option'\n      shift(136);                   // 'ft-option'\n      break;\n    case 149:                       // 'in'\n      shift(149);                   // 'in'\n      break;\n    case 150:                       // 'index'\n      shift(150);                   // 'index'\n      break;\n    case 156:                       // 'integrity'\n      shift(156);                   // 'integrity'\n      break;\n    case 166:                       // 'lax'\n      shift(166);                   // 'lax'\n      break;\n    case 187:                       // 'nodes'\n      shift(187);                   // 'nodes'\n      break;\n    case 194:                       // 'option'\n      shift(194);                   // 'option'\n      break;\n    case 198:                       // 'ordering'\n      shift(198);                   // 'ordering'\n      break;\n    case 217:                       // 'revalidation'\n      shift(217);                   // 'revalidation'\n      break;\n    case 220:                       // 'schema'\n      shift(220);                   // 'schema'\n      break;\n    case 223:                       // 'score'\n      shift(223);                   // 'score'\n      break;\n    case 229:                       // 'sliding'\n      shift(229);                   // 'sliding'\n      break;\n    case 235:                       // 'strict'\n      shift(235);                   // 'strict'\n      break;\n    case 246:                       // 'tumbling'\n      shift(246);                   // 'tumbling'\n      break;\n    case 247:                       // 'type'\n      shift(247);                   // 'type'\n      break;\n    case 252:                       // 'updating'\n      shift(252);                   // 'updating'\n      break;\n    case 256:                       // 'value'\n      shift(256);                   // 'value'\n      break;\n    case 258:                       // 'version'\n      shift(258);                   // 'version'\n      break;\n    case 262:                       // 'while'\n      shift(262);                   // 'while'\n      break;\n    case 92:                        // 'constraint'\n      shift(92);                    // 'constraint'\n      break;\n    case 171:                       // 'loop'\n      shift(171);                   // 'loop'\n      break;\n    default:\n      shift(216);                   // 'returning'\n    }\n    eventHandler.endNonterminal(\"NCName\", e0);\n  }\n\n  function shift(t)\n  {\n    if (l1 == t)\n    {\n      whitespace();\n      eventHandler.terminal(XQueryTokenizer.TOKEN[l1], b1, e1 > size ? size : e1);\n      b0 = b1; e0 = e1; l1 = 0;\n    }\n    else\n    {\n      error(b1, e1, 0, l1, t);\n    }\n  }\n\n  function whitespace()\n  {\n    if (e0 != b1)\n    {\n      b0 = e0;\n      e0 = b1;\n      eventHandler.whitespace(b0, e0);\n    }\n  }\n\n  function matchW(set)\n  {\n    var code;\n    for (;;)\n    {\n      code = match(set);\n      if (code != 28)               // S^WS\n      {\n        break;\n      }\n    }\n    return code;\n  }\n\n  function lookahead1W(set)\n  {\n    if (l1 == 0)\n    {\n      l1 = matchW(set);\n      b1 = begin;\n      e1 = end;\n    }\n  }\n\n  function lookahead1(set)\n  {\n    if (l1 == 0)\n    {\n      l1 = match(set);\n      b1 = begin;\n      e1 = end;\n    }\n  }\n\n  function error(b, e, s, l, t)\n  {\n    throw new self.ParseException(b, e, s, l, t);\n  }\n\n  var lk, b0, e0;\n  var l1, b1, e1;\n  var eventHandler;\n\n  var input;\n  var size;\n  var begin;\n  var end;\n\n  function match(tokenSetId)\n  {\n    var nonbmp = false;\n    begin = end;\n    var current = end;\n    var result = XQueryTokenizer.INITIAL[tokenSetId];\n    var state = 0;\n\n    for (var code = result & 4095; code != 0; )\n    {\n      var charclass;\n      var c0 = current < size ? input.charCodeAt(current) : 0;\n      ++current;\n      if (c0 < 0x80)\n      {\n        charclass = XQueryTokenizer.MAP0[c0];\n      }\n      else if (c0 < 0xd800)\n      {\n        var c1 = c0 >> 4;\n        charclass = XQueryTokenizer.MAP1[(c0 & 15) + XQueryTokenizer.MAP1[(c1 & 31) + XQueryTokenizer.MAP1[c1 >> 5]]];\n      }\n      else\n      {\n        if (c0 < 0xdc00)\n        {\n          var c1 = current < size ? input.charCodeAt(current) : 0;\n          if (c1 >= 0xdc00 && c1 < 0xe000)\n          {\n            ++current;\n            c0 = ((c0 & 0x3ff) << 10) + (c1 & 0x3ff) + 0x10000;\n            nonbmp = true;\n          }\n        }\n        var lo = 0, hi = 5;\n        for (var m = 3; ; m = (hi + lo) >> 1)\n        {\n          if (XQueryTokenizer.MAP2[m] > c0) hi = m - 1;\n          else if (XQueryTokenizer.MAP2[6 + m] < c0) lo = m + 1;\n          else {charclass = XQueryTokenizer.MAP2[12 + m]; break;}\n          if (lo > hi) {charclass = 0; break;}\n        }\n      }\n\n      state = code;\n      var i0 = (charclass << 12) + code - 1;\n      code = XQueryTokenizer.TRANSITION[(i0 & 15) + XQueryTokenizer.TRANSITION[i0 >> 4]];\n\n      if (code > 4095)\n      {\n        result = code;\n        code &= 4095;\n        end = current;\n      }\n    }\n\n    result >>= 12;\n    if (result == 0)\n    {\n      end = current - 1;\n      var c1 = end < size ? input.charCodeAt(end) : 0;\n      if (c1 >= 0xdc00 && c1 < 0xe000) --end;\n      return error(begin, end, state, -1, -1);\n    }\n\n    if (nonbmp)\n    {\n      for (var i = result >> 9; i > 0; --i)\n      {\n        --end;\n        var c1 = end < size ? input.charCodeAt(end) : 0;\n        if (c1 >= 0xdc00 && c1 < 0xe000) --end;\n      }\n    }\n    else\n    {\n      end -= result >> 9;\n    }\n\n    return (result & 511) - 1;\n  }\n}\n\nXQueryTokenizer.getTokenSet = function(tokenSetId)\n{\n  var set = [];\n  var s = tokenSetId < 0 ? - tokenSetId : INITIAL[tokenSetId] & 4095;\n  for (var i = 0; i < 276; i += 32)\n  {\n    var j = i;\n    var i0 = (i >> 5) * 2062 + s - 1;\n    var i1 = i0 >> 2;\n    var i2 = i1 >> 2;\n    var f = XQueryTokenizer.EXPECTED[(i0 & 3) + XQueryTokenizer.EXPECTED[(i1 & 3) + XQueryTokenizer.EXPECTED[(i2 & 3) + XQueryTokenizer.EXPECTED[i2 >> 2]]]];\n    for ( ; f != 0; f >>>= 1, ++j)\n    {\n      if ((f & 1) != 0)\n      {\n        set.push(XQueryTokenizer.TOKEN[j]);\n      }\n    }\n  }\n  return set;\n};\n\nXQueryTokenizer.MAP0 =\n[ 66, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 27, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 31, 31, 33, 31, 31, 31, 31, 31, 31, 34, 35, 36, 35, 31, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45, 31, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 31, 61, 62, 63, 64, 35\n];\n\nXQueryTokenizer.MAP1 =\n[ 108, 124, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 156, 181, 181, 181, 181, 181, 214, 215, 213, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 247, 261, 277, 293, 309, 347, 363, 379, 416, 416, 416, 408, 331, 323, 331, 323, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 433, 433, 433, 433, 433, 433, 433, 316, 331, 331, 331, 331, 331, 331, 331, 331, 394, 416, 416, 417, 415, 416, 416, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 330, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 416, 66, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 27, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 35, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 31, 31, 33, 31, 31, 31, 31, 31, 31, 34, 35, 36, 35, 31, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45, 31, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 31, 61, 62, 63, 64, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 31, 31, 35, 35, 35, 35, 35, 35, 35, 65, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65\n];\n\nXQueryTokenizer.MAP2 =\n[ 57344, 63744, 64976, 65008, 65536, 983040, 63743, 64975, 65007, 65533, 983039, 1114111, 35, 31, 35, 31, 31, 35\n];\n\nXQueryTokenizer.INITIAL =\n[ 1, 2, 36867, 45060, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15\n];\n\nXQueryTokenizer.TRANSITION =\n[ 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22908, 18836, 17152, 19008, 19233, 20367, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 17365, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 17470, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 18157, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 17848, 17880, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18023, 36545, 18621, 18039, 18056, 18072, 18117, 18143, 18173, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17687, 18805, 18421, 18437, 18101, 17393, 18489, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 18579, 21711, 17152, 19008, 19233, 20367, 19008, 28684, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 17365, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 17470, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 18157, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 17848, 17880, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18023, 36545, 18621, 18039, 18056, 18072, 18117, 18143, 18173, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17687, 18805, 18421, 18437, 18101, 17393, 18489, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 20116, 18836, 18637, 19008, 19233, 21267, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 18763, 18778, 18794, 19008, 19233, 20367, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 18821, 22923, 18906, 19008, 19233, 17431, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18937, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 19054, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 18953, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21843, 18836, 18987, 19008, 19233, 20367, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21696, 18836, 18987, 19008, 19233, 20367, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22429, 20131, 18720, 19008, 19233, 20367, 19008, 17173, 23559, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 18087, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 21242, 19111, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 19024, 18836, 18609, 19008, 19233, 20367, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 19081, 22444, 18987, 19008, 19233, 20367, 19008, 19065, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21992, 22007, 18987, 19008, 19233, 20367, 19008, 18690, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22414, 18836, 18987, 19008, 19233, 30651, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 19138, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 19280, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 19172, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21783, 18836, 18987, 19008, 19233, 20367, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 19218, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21651, 18836, 18987, 19008, 19233, 20367, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 19249, 19265, 19307, 18888, 27857, 30536, 24401, 31444, 23357, 18888, 19351, 18888, 18890, 27211, 19370, 27211, 27211, 19392, 24401, 31911, 24401, 24401, 25467, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 28537, 19440, 24401, 24401, 24401, 24401, 24036, 17994, 24060, 18888, 18888, 18888, 18890, 19468, 27211, 27211, 27211, 27211, 19484, 35367, 19520, 24401, 24401, 24401, 19628, 18888, 29855, 18888, 18888, 23086, 27211, 19538, 27211, 27211, 30756, 24012, 24401, 19560, 24401, 24401, 26750, 18888, 18888, 19327, 27855, 27211, 27211, 19580, 17590, 24017, 24401, 24401, 19600, 25665, 18888, 18888, 28518, 27211, 27212, 24016, 19620, 19868, 28435, 25722, 18889, 19644, 27211, 32888, 35852, 19868, 31018, 19694, 19376, 19717, 22215, 19735, 22098, 19751, 35203, 19776, 19797, 19817, 19840, 25783, 31738, 24135, 19701, 19856, 31015, 23516, 31008, 28311, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21768, 18836, 19307, 18888, 27857, 27904, 24401, 29183, 28015, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 19888, 24401, 24401, 24401, 24401, 22953, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 28537, 19440, 24401, 24401, 24401, 24401, 24036, 18881, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 19484, 24401, 24401, 24401, 24401, 24401, 19628, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 24012, 24401, 24401, 24401, 24401, 26750, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22399, 18836, 19918, 19008, 19233, 20367, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21666, 18836, 19307, 18888, 27857, 27525, 24401, 29183, 21467, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 19946, 24401, 24401, 24401, 24401, 32382, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 28537, 19998, 24401, 24401, 24401, 24401, 31500, 18467, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 20021, 24401, 24401, 24401, 24401, 24401, 34271, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 32926, 29908, 24401, 24401, 24401, 24401, 26095, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 20050, 22968, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 35779, 20080, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 20101, 19039, 20191, 20412, 20903, 17569, 20309, 20872, 25633, 20623, 20505, 20218, 20242, 17189, 17208, 17281, 20355, 20265, 20306, 20328, 20383, 22490, 20796, 20619, 21354, 20654, 20410, 20956, 21232, 20765, 17421, 20535, 17192, 18127, 22459, 20312, 25531, 22470, 20309, 20428, 18964, 20466, 20491, 21342, 21070, 20521, 20682, 17714, 18326, 17543, 17559, 17585, 22497, 20559, 19504, 20279, 20575, 20290, 20475, 20604, 20639, 20226, 20670, 17661, 21190, 17703, 21176, 17730, 19494, 20698, 20711, 22480, 21046, 21116, 18971, 21130, 20727, 20755, 17675, 17753, 17832, 17590, 25518, 20394, 20781, 20831, 20202, 20847, 21401, 17292, 17934, 17979, 18549, 20863, 20588, 25542, 20888, 20919, 18072, 18117, 20935, 20972, 21032, 21062, 21086, 18239, 21102, 18563, 21146, 21162, 21206, 18351, 20949, 20902, 18340, 21222, 21258, 21283, 18360, 20249, 17405, 21295, 21311, 21327, 20739, 20343, 21370, 21386, 21417, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21977, 18836, 18987, 19008, 19233, 20367, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 21452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 21504, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 36501, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 28674, 21946, 17617, 36473, 18223, 17237, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 21575, 21534, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 21560, 30628, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21798, 18836, 21612, 19008, 19233, 20367, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21636, 18836, 18987, 19008, 19233, 17902, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21753, 19096, 21903, 19008, 19233, 20367, 19008, 19291, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 17379, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 21931, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 18280, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21962, 18594, 18987, 19008, 19233, 22043, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21681, 21858, 18987, 19008, 19233, 20367, 19008, 21544, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22339, 18836, 22059, 18888, 27857, 34097, 24401, 29183, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22121, 24401, 24401, 24401, 24401, 30613, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 22164, 24401, 24401, 24401, 24401, 31500, 31693, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 19484, 24401, 24401, 24401, 24401, 24401, 32319, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 21431, 24401, 24401, 24401, 24401, 26095, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 22187, 22968, 24401, 24401, 24401, 22231, 18888, 18888, 27211, 27211, 35779, 20080, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22339, 18836, 22059, 18888, 27857, 34097, 24401, 29183, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22121, 24401, 24401, 24401, 24401, 30613, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 22164, 24401, 24401, 24401, 24401, 31500, 31693, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 19484, 24401, 24401, 24401, 24401, 24401, 31181, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 21431, 24401, 24401, 24401, 24401, 26095, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 22187, 22968, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 35779, 20080, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22339, 18836, 22059, 18888, 27857, 34097, 24401, 29183, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22121, 24401, 24401, 24401, 24401, 31678, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 22164, 24401, 24401, 24401, 24401, 31500, 31693, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 19484, 24401, 24401, 24401, 24401, 24401, 31181, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 21431, 24401, 24401, 24401, 24401, 26095, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 22187, 22968, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 35779, 20080, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22339, 18836, 22059, 18888, 27857, 34097, 24401, 29183, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22121, 24401, 24401, 24401, 24401, 30613, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 22164, 24401, 24401, 24401, 24401, 33588, 31693, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 19484, 24401, 24401, 24401, 24401, 24401, 31181, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 21431, 24401, 24401, 24401, 24401, 26095, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 22187, 22968, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 35779, 20080, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22339, 18836, 22059, 18888, 27857, 35019, 24401, 29183, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22248, 24401, 24401, 24401, 24401, 30613, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 22164, 24401, 24401, 24401, 24401, 31500, 31693, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 19484, 24401, 24401, 24401, 24401, 24401, 31181, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 21431, 24401, 24401, 24401, 24401, 26095, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 22187, 22968, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 35779, 20080, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22339, 18836, 22059, 18888, 27857, 34097, 24401, 29183, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22121, 24401, 24401, 24401, 24401, 18866, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 22164, 24401, 24401, 24401, 24401, 24036, 31693, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 19484, 24401, 24401, 24401, 24401, 24401, 19628, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 24012, 24401, 24401, 24401, 24401, 26750, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22324, 18836, 22059, 18888, 27857, 30501, 24401, 29183, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22121, 24401, 24401, 24401, 24401, 18866, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 22164, 24401, 24401, 24401, 24401, 24036, 31693, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 19484, 24401, 24401, 24401, 24401, 24401, 19628, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 24012, 24401, 24401, 24401, 24401, 26750, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22339, 18836, 22059, 18888, 27857, 34097, 24401, 29183, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22121, 24401, 24401, 24401, 24401, 18866, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 22164, 24401, 24401, 24401, 24401, 24036, 31693, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 19484, 24401, 24401, 24401, 24401, 24401, 19628, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 24012, 24401, 24401, 24401, 24401, 34365, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22354, 18836, 18987, 19008, 19233, 20367, 19008, 17173, 27086, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 19930, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21828, 18836, 18987, 19008, 19233, 20367, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22309, 22513, 18987, 19008, 19233, 20367, 19008, 19122, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 22544, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22608, 18836, 22988, 23004, 27585, 23020, 23036, 23067, 22087, 18888, 18888, 18888, 23083, 27211, 27211, 27211, 23102, 22121, 24401, 24401, 24401, 23122, 31386, 26154, 19674, 18888, 28119, 28232, 19424, 23705, 27211, 27211, 23142, 23173, 23189, 23212, 24401, 24401, 23246, 34427, 31693, 23262, 18888, 23290, 23308, 27783, 27620, 23327, 35263, 35107, 33383, 23346, 18193, 23393, 32748, 23968, 24401, 23414, 35153, 23463, 18888, 33913, 23442, 23482, 27211, 27211, 23532, 23552, 21431, 23575, 24401, 24401, 23604, 26095, 23635, 23657, 18888, 33482, 23685, 33251, 27211, 22187, 18851, 23721, 35536, 24401, 18887, 23750, 32641, 27211, 23769, 23787, 20080, 33012, 24384, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 23803, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 28224, 31826, 23823, 26917, 34978, 23850, 26493, 25782, 23878, 23914, 23516, 31008, 22105, 19419, 27963, 19659, 29781, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22623, 18836, 22059, 18888, 27857, 34097, 24401, 29183, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22121, 24401, 24401, 24401, 24401, 30613, 18888, 18888, 18888, 18888, 28909, 25783, 27211, 27211, 27211, 34048, 23933, 22164, 24401, 24401, 24401, 28409, 23949, 31693, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 19484, 24401, 24401, 24401, 24401, 24401, 31181, 26583, 18888, 18888, 18888, 35585, 23984, 27211, 27211, 27211, 24005, 22201, 24033, 24401, 24401, 24401, 24052, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 22187, 22968, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 35779, 20080, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 26496, 24076, 24126, 24151, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22638, 18836, 22059, 19678, 27857, 24185, 24401, 24201, 24217, 26592, 18888, 18888, 18890, 24252, 24268, 27211, 27211, 22121, 24287, 24303, 24401, 24401, 30613, 19781, 35432, 36007, 32649, 18888, 25783, 24322, 28966, 23771, 27211, 35072, 22164, 24358, 32106, 26829, 24400, 31500, 31693, 18888, 18888, 18888, 24801, 18890, 27211, 27211, 27211, 27211, 24418, 19484, 24401, 24401, 24401, 24401, 20167, 31181, 18888, 18888, 18888, 27833, 23086, 27211, 27211, 33540, 27211, 30756, 21431, 24401, 24401, 22972, 24401, 26095, 18888, 36131, 18888, 27855, 27211, 24440, 27211, 22187, 22968, 24401, 24459, 24401, 31699, 28454, 18888, 34528, 34570, 35779, 24478, 24402, 24494, 25659, 18888, 36228, 27211, 27211, 24515, 30981, 23734, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 24538, 31017, 27856, 31741, 30059, 23377, 24563, 19837, 25782, 19760, 31015, 23516, 25374, 22105, 19419, 29793, 24579, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22653, 18836, 22059, 25756, 19982, 34097, 23196, 29183, 24614, 24110, 23641, 24673, 26103, 24697, 24443, 24713, 28558, 22121, 24748, 24462, 24764, 23398, 30613, 18888, 18888, 18888, 18888, 24798, 25783, 27211, 27211, 27211, 34232, 35072, 22164, 24401, 24401, 24401, 33302, 31500, 22559, 24106, 24232, 18888, 18888, 34970, 24817, 30411, 27211, 27211, 32484, 19484, 29750, 35127, 24401, 24401, 19872, 31181, 24852, 18888, 18888, 24871, 29221, 27211, 27211, 32072, 27211, 30756, 34441, 24401, 24401, 31571, 24401, 26095, 33141, 27802, 27011, 27855, 25295, 25607, 24888, 22187, 22968, 19195, 34593, 24906, 18887, 18888, 18888, 27211, 27211, 35779, 20080, 24402, 19868, 25659, 18888, 33663, 27211, 27211, 24924, 24947, 23588, 31018, 18890, 27211, 31833, 22135, 19447, 23086, 23330, 19828, 30904, 31042, 24972, 19840, 25000, 31738, 30898, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 25016, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22668, 18836, 25041, 25057, 31320, 25073, 25089, 25105, 22087, 34796, 24236, 36138, 34870, 34125, 25121, 23106, 35497, 22248, 36613, 25137, 30671, 27365, 30613, 25153, 26447, 25199, 25233, 22574, 23274, 25249, 25265, 25281, 25318, 25344, 25360, 25400, 25428, 25452, 26731, 25504, 31693, 23669, 25558, 27407, 25575, 28599, 25934, 25599, 27211, 28180, 27304, 25623, 25839, 25649, 24401, 34820, 25681, 25698, 22586, 27775, 30190, 25745, 25778, 25799, 25817, 28995, 33569, 30756, 21518, 33443, 25837, 25855, 25893, 26095, 31254, 26677, 30136, 27855, 25930, 25950, 27211, 22187, 22968, 25966, 25986, 24401, 23428, 27763, 36330, 26959, 26002, 26029, 26045, 26085, 26119, 26170, 26203, 26222, 26239, 30527, 26372, 26274, 28404, 31018, 33757, 27211, 34262, 26316, 36729, 26345, 26366, 35337, 31017, 26388, 26407, 30954, 26350, 33861, 26434, 26463, 26479, 26512, 23516, 33189, 26531, 26547, 27963, 31293, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22683, 18836, 26568, 26181, 26608, 34097, 26643, 29183, 22087, 26669, 18888, 18888, 18890, 26693, 27211, 27211, 27211, 22121, 26720, 24401, 24401, 24401, 30613, 18888, 18888, 18888, 18888, 26774, 25783, 27211, 27211, 27211, 26619, 35072, 22164, 24401, 24401, 24401, 21596, 31500, 31693, 18888, 18888, 33978, 18888, 18890, 27211, 27211, 25801, 27211, 27211, 19484, 24401, 24401, 24401, 26792, 24401, 31181, 18888, 18888, 18888, 35464, 23086, 27211, 27211, 27211, 26809, 30756, 21431, 24401, 24401, 24401, 26828, 26095, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 22187, 22968, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 35779, 20080, 24402, 19868, 25659, 31948, 18889, 35707, 27211, 19719, 26845, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 26905, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 24984, 31088, 19419, 26945, 27651, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22698, 18836, 26999, 18888, 27857, 34097, 24401, 29183, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22121, 24401, 24401, 24401, 24401, 23051, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 27033, 24401, 24401, 24401, 24401, 24036, 31693, 18888, 18888, 27056, 18888, 18890, 27211, 27211, 30320, 27211, 27211, 27075, 24401, 24401, 29032, 24401, 24401, 19628, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 24012, 24401, 24401, 24401, 24401, 26750, 18888, 18888, 33986, 27855, 27211, 27211, 27102, 17590, 24017, 24401, 24401, 27123, 27144, 36254, 27162, 27210, 27228, 28500, 18187, 34842, 33426, 27244, 35980, 27277, 27302, 27320, 36048, 34013, 20999, 31882, 21478, 27895, 27356, 30287, 27381, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 26329, 30087, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22339, 18836, 22059, 27406, 27423, 27445, 35294, 27461, 22087, 18888, 18888, 30140, 18890, 27211, 27211, 27989, 27211, 22121, 24401, 24401, 25682, 24401, 18866, 18888, 18888, 18888, 18888, 18888, 34042, 27211, 27211, 27211, 27211, 29700, 22164, 24401, 24401, 24401, 24401, 27128, 31693, 27477, 18888, 18888, 18888, 18890, 27194, 27211, 27211, 27211, 27211, 19484, 35299, 24401, 24401, 24401, 24401, 19628, 18888, 18888, 18888, 27059, 23086, 27211, 27211, 27211, 33366, 30756, 24012, 24401, 24401, 24401, 35044, 26750, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 20815, 27211, 30818, 19960, 33969, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22713, 18836, 22059, 27496, 27516, 27541, 35231, 27557, 22087, 29662, 26292, 23292, 27573, 24836, 27601, 27211, 27636, 22121, 35544, 27686, 24401, 27721, 18866, 18888, 27799, 18888, 27818, 22071, 27853, 32260, 27211, 26013, 27873, 27920, 22164, 29419, 24401, 29946, 33413, 26742, 27751, 26881, 18888, 18888, 27261, 36776, 27936, 27211, 27211, 27211, 27988, 28005, 28031, 28052, 24401, 24401, 28069, 28088, 28135, 25488, 28152, 26069, 28167, 27211, 28340, 24657, 28196, 30756, 31523, 24401, 28212, 34176, 36174, 24956, 28248, 28266, 28290, 21488, 33077, 28327, 28356, 17590, 20986, 23126, 28391, 28425, 28102, 28451, 28470, 28490, 28516, 28534, 20034, 33728, 25868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 30241, 28274, 28553, 28574, 19406, 28590, 23086, 23330, 19828, 19452, 28615, 28660, 26147, 25783, 31738, 19837, 25782, 19760, 29613, 35958, 29276, 22105, 19419, 27963, 23157, 28700, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22339, 18836, 22059, 18888, 27857, 34097, 24401, 29183, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22121, 24401, 24401, 24401, 24401, 18866, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 22164, 24401, 24401, 24401, 24401, 24036, 22528, 18888, 18888, 18888, 18888, 18890, 27333, 27211, 27211, 27211, 27211, 19484, 30853, 24401, 24401, 24401, 24401, 19628, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 24012, 24401, 24401, 24401, 24401, 26750, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22728, 18836, 28747, 28782, 28817, 28841, 28857, 28880, 28896, 24161, 28943, 32011, 36261, 27340, 28961, 29492, 28982, 29011, 24522, 29027, 25436, 29048, 23051, 27500, 29090, 29110, 30713, 18888, 23512, 29130, 25183, 27211, 29155, 28927, 27033, 29173, 23230, 24401, 29199, 35373, 31693, 18888, 18888, 25583, 32629, 29218, 27211, 27211, 31461, 30692, 29237, 27075, 24401, 24401, 24401, 29262, 29302, 19628, 18888, 34329, 18888, 18888, 23086, 27211, 29329, 27211, 27211, 30756, 24012, 35933, 24401, 24401, 24401, 27705, 31612, 18888, 18888, 29346, 29374, 27211, 35650, 17590, 21436, 29393, 24401, 25970, 18887, 33895, 18888, 27211, 32528, 27212, 24016, 32769, 19868, 25659, 18888, 26889, 27211, 27211, 29412, 23889, 24371, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31768, 19840, 25783, 31738, 19837, 29435, 29508, 31102, 29550, 29606, 22105, 30300, 29462, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22743, 18836, 22059, 29629, 29473, 34097, 33285, 29183, 29651, 27254, 18888, 29678, 33329, 32535, 27211, 29694, 29716, 22121, 19202, 24401, 32742, 29741, 18866, 26776, 33921, 28474, 18888, 18888, 25783, 29766, 27211, 29809, 27211, 35072, 22164, 35825, 24401, 29828, 24401, 24036, 36769, 25217, 18888, 18888, 29848, 18890, 27211, 29871, 27211, 26258, 27211, 29894, 24401, 29929, 24401, 36587, 24401, 19628, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 29725, 29962, 24401, 24401, 24401, 24401, 26750, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 18473, 18888, 18888, 19584, 27211, 27212, 24016, 29982, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19902, 19447, 32052, 19544, 19828, 29998, 30097, 30031, 19840, 25783, 30047, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 30075, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22758, 18836, 30121, 30156, 30206, 30257, 30273, 30336, 22087, 35624, 32837, 25762, 18890, 29878, 34934, 26812, 27211, 22121, 24931, 23223, 29202, 24401, 18866, 34373, 30352, 18888, 18888, 18888, 23447, 24828, 27211, 27211, 27211, 35072, 30370, 35052, 24401, 24401, 24401, 24036, 29523, 18888, 18888, 27146, 18888, 31308, 30386, 27211, 27211, 30405, 30558, 19484, 30427, 24401, 24401, 29938, 35686, 19628, 28766, 30447, 34506, 35614, 23086, 28731, 30482, 30517, 30552, 30756, 24012, 20156, 30574, 30598, 30667, 26283, 33464, 28945, 27670, 30687, 32915, 33504, 25328, 17590, 23963, 20450, 33837, 21016, 32397, 26300, 30708, 30729, 27885, 30748, 21588, 36373, 30779, 26653, 24628, 33220, 32514, 30806, 31835, 25412, 25906, 26515, 18890, 28825, 31833, 26133, 19447, 28304, 31730, 23834, 26057, 30869, 30885, 32181, 30920, 30942, 32797, 25782, 30970, 31015, 23516, 31008, 30997, 31034, 27963, 19659, 29450, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22773, 18836, 31058, 31074, 32463, 31125, 31141, 31197, 22087, 18888, 29534, 35471, 36738, 27211, 24342, 31213, 24424, 22121, 24401, 20175, 31229, 31917, 27736, 31245, 34334, 27175, 18888, 29094, 27286, 27211, 31278, 31336, 27211, 31355, 31371, 24401, 31402, 31418, 24401, 31437, 31693, 18888, 31619, 32841, 18888, 18890, 27211, 27211, 31460, 31477, 27211, 19484, 24401, 24401, 31497, 36581, 24401, 33020, 18888, 18888, 18888, 18888, 30007, 27211, 27211, 27211, 27211, 31516, 32310, 24401, 24401, 24401, 24401, 31539, 18888, 28762, 18888, 24651, 35740, 27211, 27211, 28644, 31565, 35796, 24401, 24401, 19318, 32188, 18888, 24334, 28366, 27212, 29966, 29832, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 31587, 19868, 31635, 32435, 33693, 30105, 31663, 20005, 31715, 31757, 31784, 31812, 30015, 31851, 31878, 25783, 31898, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 31933, 30221, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22788, 18836, 22059, 25729, 30466, 31968, 24306, 31984, 32000, 32807, 35160, 27017, 29590, 34941, 19801, 29377, 33700, 22121, 27040, 30431, 29396, 28864, 29565, 18888, 18888, 18888, 32027, 18888, 25783, 27211, 27211, 23698, 27211, 35072, 22164, 24401, 24401, 30845, 24401, 24036, 32045, 18888, 26929, 18888, 18888, 18890, 27211, 31481, 32068, 27211, 27211, 32088, 24401, 33058, 32122, 24401, 24401, 33736, 18888, 18888, 33162, 18888, 23086, 27211, 27211, 29484, 27211, 28375, 32144, 24401, 24401, 33831, 24401, 26750, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 36704, 24017, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 33107, 22171, 33224, 24271, 32169, 31017, 27856, 31741, 19840, 25783, 31738, 30234, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22339, 18836, 32204, 32232, 32252, 32677, 33295, 29074, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22121, 24401, 24401, 24401, 24401, 23619, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 32276, 24401, 24401, 24401, 24401, 24036, 31693, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 32299, 24401, 24401, 24401, 24401, 24401, 19628, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 24012, 24401, 24401, 24401, 24401, 26750, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 33886, 18889, 36065, 27211, 19719, 35326, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22803, 18836, 32335, 31647, 34666, 32351, 32367, 32417, 22087, 18888, 32433, 19335, 32451, 27211, 32479, 27107, 32500, 22121, 24401, 32551, 20085, 32572, 18866, 22287, 23753, 18888, 18888, 32602, 32665, 27211, 32693, 27211, 26972, 32713, 32729, 24401, 32764, 24401, 25877, 32785, 34768, 18888, 27390, 32823, 24594, 24855, 32857, 24890, 32878, 32904, 27211, 32942, 32977, 24401, 33000, 29313, 24401, 30790, 26206, 27666, 33904, 18888, 23086, 36353, 27211, 33036, 27211, 30756, 24012, 32153, 24401, 33056, 24401, 35861, 18888, 18888, 30354, 27972, 27211, 27211, 33800, 17590, 20145, 24401, 24401, 34638, 20811, 18888, 18888, 33074, 27211, 27212, 36167, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 34616, 24169, 33093, 33123, 33157, 27856, 31741, 23862, 26552, 34302, 19837, 25782, 19760, 31015, 23516, 31008, 33178, 19973, 27963, 23497, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22818, 18836, 33205, 28113, 33240, 34097, 33275, 29183, 22087, 33318, 35438, 18888, 18890, 33345, 26391, 33382, 27211, 22121, 33399, 28072, 33442, 24401, 18866, 22232, 18888, 33459, 18888, 18888, 33480, 33498, 25175, 27211, 27211, 26704, 22164, 24775, 35239, 24401, 24401, 25914, 29580, 18888, 18888, 31109, 25211, 33520, 33539, 27211, 27211, 33556, 36284, 19484, 33585, 24401, 24401, 33604, 32556, 19628, 18888, 18888, 31262, 33658, 23086, 27211, 27211, 33679, 27211, 30756, 24012, 24401, 24401, 33716, 24401, 26854, 27480, 18888, 33752, 27855, 33259, 34701, 27211, 17590, 32102, 24782, 23807, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 33773, 36105, 19868, 25659, 18888, 23368, 27211, 29157, 19719, 23889, 34454, 29286, 18890, 33794, 25302, 33816, 19447, 34079, 33853, 31862, 31017, 27856, 31741, 33877, 28920, 33937, 19837, 30461, 34002, 22276, 36041, 34029, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22833, 18836, 34064, 32616, 34113, 34141, 34157, 34192, 34208, 32216, 36013, 31549, 31952, 34224, 34248, 34287, 29330, 34350, 34389, 34413, 34481, 26793, 18866, 26187, 29635, 22293, 18888, 36654, 25783, 34522, 34544, 34566, 25821, 35072, 22164, 34586, 34609, 34632, 19604, 24036, 36644, 36674, 24681, 18888, 32401, 34654, 31339, 34682, 34698, 27211, 34717, 34753, 28053, 34812, 34836, 24401, 33619, 19628, 34858, 32236, 34906, 24598, 33523, 27612, 34890, 34922, 24732, 29246, 36717, 33634, 34465, 32984, 34168, 26750, 34957, 18888, 18888, 34994, 35010, 27211, 33040, 17590, 29913, 35035, 24401, 36304, 25482, 30171, 35883, 35068, 35088, 26627, 20441, 31173, 35123, 35143, 35176, 24640, 30492, 29358, 19719, 35192, 35219, 25384, 28801, 35255, 35279, 32586, 34496, 23086, 23330, 29061, 31017, 27856, 31741, 19840, 25783, 31738, 24547, 25164, 35315, 31796, 35353, 34316, 22105, 19419, 27963, 24091, 28630, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22848, 18836, 22059, 34782, 34088, 35389, 21008, 35405, 35421, 35454, 18888, 18888, 23466, 35487, 27211, 27211, 27211, 35513, 31154, 24401, 24401, 24401, 35560, 18888, 26863, 36664, 35601, 24872, 25783, 30389, 23536, 26250, 35647, 35666, 22164, 19522, 19564, 30582, 35682, 27697, 35575, 29114, 18888, 18888, 18888, 18890, 27211, 35702, 27211, 27211, 27211, 35723, 24401, 35527, 24401, 24401, 24401, 19628, 30184, 18888, 18888, 18888, 23086, 35739, 27211, 27211, 27211, 29139, 22938, 24401, 24401, 24401, 24401, 23898, 35756, 18888, 18888, 25025, 35778, 27211, 27211, 17590, 20064, 35795, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 23917, 18890, 34550, 31833, 22262, 19447, 23086, 23330, 26418, 31017, 27856, 31741, 19840, 25783, 35812, 19837, 27187, 35841, 33135, 23516, 31008, 22105, 22148, 28712, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22863, 18836, 22059, 35877, 28723, 34097, 31164, 29183, 22087, 26758, 18888, 22592, 18890, 23989, 27211, 29812, 27211, 22121, 33778, 24401, 31421, 24401, 18866, 18888, 18888, 26872, 18888, 18888, 25783, 27211, 30732, 27211, 27211, 35072, 22164, 24401, 24908, 24401, 24401, 24036, 31693, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 19484, 24401, 24401, 24401, 24401, 24401, 19628, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 24012, 24401, 24401, 24401, 24401, 26750, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22878, 18836, 22059, 27837, 27857, 35899, 24401, 35915, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22121, 24401, 24401, 24401, 24401, 18866, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 22164, 24401, 24401, 24401, 24401, 24036, 31602, 18888, 18888, 18888, 18888, 26223, 27211, 27211, 27211, 27211, 27211, 19484, 35931, 24401, 24401, 24401, 24401, 19628, 18888, 28136, 18888, 18888, 35949, 27211, 32862, 27211, 32697, 30756, 24012, 24401, 32283, 24401, 32128, 26750, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22893, 18836, 22059, 35974, 34882, 34097, 33960, 29183, 35996, 18888, 23311, 18888, 36029, 27211, 27211, 36064, 36081, 22121, 24401, 24401, 36104, 33950, 18866, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 22164, 24401, 24401, 24401, 24401, 24036, 36121, 18888, 25559, 18888, 18888, 18890, 27211, 27211, 30313, 27211, 27211, 36154, 24401, 24401, 34397, 24401, 24401, 19628, 28250, 18888, 18888, 18888, 23086, 30926, 27211, 27211, 27211, 26983, 24012, 33642, 24401, 24401, 24401, 26750, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22339, 18836, 22059, 19354, 27857, 36190, 24401, 36206, 22087, 18888, 18888, 18888, 18007, 27211, 27211, 27211, 24724, 22121, 24401, 24401, 24401, 30827, 18866, 18888, 36222, 18888, 28795, 18888, 25783, 35100, 27211, 27429, 27211, 35072, 22164, 30836, 24401, 24499, 24401, 24036, 31693, 18888, 36244, 18888, 18888, 18890, 27211, 36088, 27211, 27211, 27211, 19484, 24401, 28036, 24401, 24401, 24401, 19628, 18888, 18888, 35631, 18888, 35762, 27211, 27211, 36277, 27211, 34730, 24012, 24401, 24401, 36300, 24401, 36320, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 25712, 18888, 18888, 36346, 27211, 27212, 19184, 24402, 19868, 25659, 32029, 18889, 27211, 33359, 19719, 23889, 36369, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22384, 18836, 36389, 19008, 19233, 20367, 36434, 17173, 17595, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 36453, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 20362, 21726, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22369, 18836, 18987, 19008, 19233, 20367, 19008, 21737, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21813, 18836, 36489, 19008, 19233, 20367, 19008, 17173, 17737, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17768, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 20543, 22022, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21828, 18836, 18987, 19008, 19233, 20367, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 36517, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21828, 18836, 19307, 18888, 27857, 30756, 24401, 29183, 28015, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 36567, 24401, 24401, 24401, 24401, 22953, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 28537, 36603, 24401, 24401, 24401, 24401, 24036, 18881, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 19484, 24401, 24401, 24401, 24401, 24401, 19628, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 24012, 24401, 24401, 24401, 24401, 26750, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 36629, 36690, 18720, 19008, 19233, 20367, 19008, 17454, 17595, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17223, 17308, 17327, 17346, 18918, 36754, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 20362, 21726, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 0, 94242, 0, 118820, 0, 2211840, 102439, 0, 0, 106538, 98347, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2482176, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 2207744, 2404352, 2412544, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 3104768, 2605056, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2678784, 2207744, 2695168, 2207744, 2703360, 2207744, 2711552, 2752512, 2207744, 0, 0, 0, 0, 0, 0, 2166784, 0, 0, 0, 0, 0, 0, 2158592, 2158592, 3170304, 3174400, 2158592, 0, 139, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2424832, 2158592, 2158592, 2158592, 2748416, 2756608, 2777088, 2801664, 2158592, 2158592, 2158592, 2863104, 2891776, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 3104768, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2207744, 2785280, 2207744, 2809856, 2207744, 2207744, 2842624, 2207744, 2207744, 2207744, 2899968, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2473984, 2207744, 2207744, 2494464, 2207744, 2207744, 2207744, 2523136, 2158592, 2404352, 2412544, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2564096, 2158592, 2158592, 2605056, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2678784, 2158592, 2695168, 2158592, 2703360, 2158592, 2711552, 2752512, 2158592, 2158592, 2785280, 2158592, 2158592, 2785280, 2158592, 2809856, 2158592, 2158592, 2842624, 2158592, 2158592, 2158592, 2899968, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 18, 0, 0, 0, 0, 0, 0, 0, 2211840, 0, 0, 641, 0, 2158592, 0, 0, 0, 0, 0, 0, 0, 0, 2211840, 0, 0, 32768, 0, 2158592, 0, 2158592, 2158592, 2158592, 2383872, 2158592, 2158592, 2158592, 2158592, 3006464, 2383872, 2207744, 2207744, 2207744, 2207744, 2158877, 2158877, 2158877, 2158877, 0, 0, 0, 2158877, 2572573, 2158877, 2158877, 0, 2207744, 2207744, 2596864, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2641920, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 0, 0, 0, 167936, 0, 0, 2162688, 0, 0, 3104768, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 0, 0, 0, 2146304, 2146304, 2224128, 2224128, 2232320, 2232320, 2232320, 641, 0, 0, 0, 0, 0, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2531328, 2158592, 2158592, 2158592, 2158592, 2158592, 2617344, 2158592, 2158592, 2158592, 2158592, 2441216, 2445312, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2502656, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2580480, 2158592, 2158592, 2158592, 2158592, 2621440, 2158592, 2580480, 2158592, 2158592, 2158592, 2158592, 2621440, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2699264, 2158592, 2158592, 2158592, 2158592, 2158592, 2748416, 2756608, 2777088, 2801664, 2207744, 2863104, 2891776, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 3018752, 2207744, 3043328, 2207744, 2207744, 2207744, 2207744, 3080192, 2207744, 2207744, 3112960, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 0, 0, 0, 172310, 279, 0, 2162688, 0, 0, 2207744, 2207744, 2207744, 3186688, 2207744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2158592, 2158592, 2158592, 2404352, 2412544, 2158592, 2510848, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2584576, 2158592, 2609152, 2158592, 2158592, 2629632, 2158592, 2158592, 2158592, 2686976, 2158592, 2715648, 2158592, 2158592, 3121152, 2158592, 2158592, 2158592, 3149824, 2158592, 2158592, 3170304, 3174400, 2158592, 2367488, 2207744, 2207744, 2207744, 2207744, 2158592, 2158592, 2158592, 2158592, 0, 0, 0, 2158592, 2572288, 2158592, 2158592, 0, 2207744, 2207744, 2207744, 2433024, 2207744, 2453504, 2461696, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2510848, 2207744, 2207744, 2207744, 2207744, 2207744, 2531328, 2207744, 2207744, 2207744, 2207744, 2207744, 2617344, 2207744, 2207744, 2207744, 2207744, 2158592, 2158592, 2158592, 2158592, 0, 0, 0, 2158592, 2572288, 2158592, 2158592, 1508, 2715648, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2867200, 2207744, 2904064, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2580480, 2207744, 2207744, 2207744, 2207744, 2621440, 2207744, 2207744, 2207744, 3149824, 2207744, 2207744, 3170304, 3174400, 2207744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 2158592, 2158592, 2158592, 2404352, 2412544, 2707456, 2732032, 2207744, 2207744, 2207744, 2822144, 2826240, 2207744, 2895872, 2207744, 2207744, 2924544, 2207744, 2207744, 2973696, 2207744, 0, 0, 0, 0, 0, 0, 2166784, 0, 0, 0, 0, 0, 285, 2158592, 2158592, 3112960, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 3186688, 2158592, 2207744, 2207744, 2158592, 2158592, 2158592, 2158592, 2158592, 0, 0, 0, 2158592, 2158592, 2158592, 2158592, 0, 0, 2535424, 2543616, 2158592, 2158592, 2158592, 0, 0, 0, 2158592, 2158592, 2158592, 2990080, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2572288, 2981888, 2207744, 2207744, 3002368, 2207744, 3047424, 3063808, 3076096, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 3203072, 2708960, 2732032, 2158592, 2158592, 2158592, 2822144, 2827748, 2158592, 2895872, 2158592, 2158592, 2924544, 2158592, 2158592, 2973696, 2158592, 2981888, 2158592, 2158592, 3002368, 2158592, 3047424, 3063808, 3076096, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 3203072, 2981888, 2158592, 2158592, 3003876, 2158592, 3047424, 3063808, 3076096, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 3203072, 2207744, 2207744, 2207744, 2207744, 2207744, 2424832, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 20480, 0, 0, 0, 0, 0, 2162688, 20480, 0, 2523136, 2527232, 2158592, 2158592, 2576384, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2908160, 2527232, 2207744, 2207744, 2576384, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2908160, 2207744, 0, 0, 0, 0, 0, 0, 2166784, 0, 0, 0, 0, 0, 286, 2158592, 2158592, 0, 0, 2158592, 2158592, 2158592, 2158592, 2633728, 2658304, 0, 0, 2740224, 2744320, 0, 2834432, 2207744, 2207744, 2977792, 2207744, 2207744, 2207744, 2207744, 3039232, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 3158016, 0, 0, 29315, 0, 0, 0, 0, 45, 45, 45, 45, 45, 933, 45, 45, 45, 45, 442, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 2494464, 2158592, 2158592, 2158592, 2524757, 2527232, 2158592, 2158592, 2576384, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 1504, 2158592, 2498560, 2158592, 2158592, 2158592, 2158592, 2568192, 2158592, 2592768, 2625536, 2158592, 2158592, 2674688, 2736128, 2158592, 2158592, 0, 2158592, 2912256, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 3108864, 2158592, 2158592, 3133440, 3145728, 3153920, 2375680, 2379776, 2207744, 2207744, 2420736, 2207744, 2449408, 2207744, 2207744, 2207744, 2498560, 2207744, 2207744, 2207744, 2207744, 2568192, 2207744, 0, 0, 0, 0, 0, 0, 2166784, 0, 0, 0, 0, 0, 551, 2158592, 2158592, 2158592, 2158592, 2207744, 2506752, 2207744, 2207744, 2207744, 2207744, 2207744, 2158592, 2506752, 0, 2020, 2158592, 2592768, 2625536, 2207744, 2207744, 2674688, 2736128, 2207744, 2207744, 2207744, 2912256, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 0, 542, 0, 544, 2207744, 3108864, 2207744, 2207744, 3133440, 3145728, 3153920, 2375680, 2379776, 2158592, 2158592, 2420736, 2158592, 2449408, 2158592, 2158592, 2158592, 2158592, 2158592, 3186688, 2158592, 0, 641, 0, 0, 0, 0, 0, 0, 2367488, 2158592, 2498560, 2158592, 2158592, 1621, 2158592, 2158592, 2568192, 2158592, 2592768, 2625536, 2158592, 2158592, 2674688, 0, 0, 0, 0, 0, 1608, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1107, 97, 97, 1110, 97, 97, 3133440, 3145728, 3153920, 2158592, 2408448, 2416640, 2158592, 2465792, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 3014656, 2158592, 2158592, 3051520, 2158592, 2158592, 3100672, 2158592, 2158592, 3121152, 2158592, 2158592, 2158592, 3149824, 2416640, 2207744, 2465792, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2633728, 2658304, 2740224, 2744320, 2834432, 2949120, 2158592, 2985984, 2158592, 2998272, 2158592, 2158592, 2158592, 3129344, 2207744, 2408448, 2949120, 2207744, 2985984, 2207744, 2998272, 2207744, 2207744, 2207744, 3129344, 2158592, 2408448, 2416640, 2158592, 2465792, 2158592, 2158592, 2158592, 2158592, 2158592, 3186688, 2158592, 0, 32768, 0, 0, 0, 0, 0, 0, 2367488, 2949120, 2158592, 2985984, 2158592, 2998272, 2158592, 2158592, 2158592, 3129344, 2158592, 2158592, 2478080, 2158592, 2158592, 2158592, 2535424, 2543616, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 3117056, 2207744, 2207744, 2478080, 2207744, 2207744, 2207744, 2207744, 2699264, 2207744, 2207744, 2207744, 2207744, 2207744, 2748416, 2756608, 2777088, 2801664, 2207744, 2207744, 2158877, 2158877, 2158877, 2158877, 2158877, 0, 0, 0, 2158877, 2158877, 2158877, 2158877, 0, 0, 2535709, 2543901, 2158877, 2158877, 2158877, 0, 0, 0, 2158877, 2158877, 2158877, 2990365, 2158877, 2158877, 2158730, 2158730, 2158730, 2158730, 2158730, 2572426, 2207744, 2535424, 2543616, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 3117056, 2158592, 2158592, 2478080, 2207744, 2207744, 2990080, 2207744, 2207744, 2158592, 2158592, 2482176, 2158592, 2158592, 0, 0, 0, 2158592, 2158592, 2158592, 0, 2158592, 2908160, 2158592, 2158592, 2158592, 2977792, 2158592, 2158592, 2158592, 2158592, 3039232, 2158592, 2158592, 3010560, 2207744, 2428928, 2207744, 2514944, 2207744, 2588672, 2207744, 2838528, 2207744, 2207744, 2207744, 3010560, 2158592, 2428928, 2158592, 2514944, 0, 0, 2158592, 2588672, 2158592, 0, 2838528, 2158592, 2158592, 2158592, 3010560, 2158592, 2506752, 2158592, 18, 0, 0, 0, 0, 0, 0, 0, 2211840, 0, 0, 0, 0, 2158592, 0, 0, 29315, 922, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1539, 45, 3006464, 2383872, 0, 2020, 2158592, 2158592, 2158592, 2158592, 3006464, 2158592, 2637824, 2953216, 2158592, 2207744, 2637824, 2953216, 2207744, 0, 0, 2158592, 2637824, 2953216, 2158592, 2539520, 2158592, 2539520, 2207744, 0, 0, 2539520, 2158592, 2158592, 2158592, 2158592, 2207744, 2506752, 2207744, 2207744, 2207744, 2207744, 2207744, 2158592, 2506752, 0, 0, 2158592, 2207744, 0, 2158592, 2158592, 2207744, 0, 2158592, 2158592, 2207744, 0, 2158592, 2965504, 2965504, 2965504, 0, 0, 0, 0, 0, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2474269, 2158877, 2158877, 0, 0, 2158877, 2158877, 2158877, 2158877, 2634013, 2658589, 0, 0, 2740509, 2744605, 0, 2834717, 40976, 18, 36884, 45078, 24, 28, 90143, 94242, 118820, 102439, 106538, 98347, 118820, 118820, 118820, 40976, 18, 18, 36884, 0, 0, 0, 24, 24, 24, 27, 27, 27, 27, 90143, 0, 0, 86016, 0, 0, 2211840, 102439, 0, 0, 0, 98347, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 3158016, 0, 2375680, 2379776, 2158592, 2158592, 2420736, 2158592, 2449408, 2158592, 2158592, 0, 94242, 0, 0, 0, 2211840, 102439, 0, 0, 106538, 98347, 135, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2564096, 2158592, 2158592, 2158592, 2158592, 2158592, 2596864, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2641920, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2781184, 2793472, 2494464, 2158592, 2158592, 2158592, 2523136, 2527232, 2158592, 2158592, 2576384, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 0, 40976, 0, 18, 18, 24, 0, 27, 27, 0, 2158592, 2498560, 2158592, 2158592, 0, 2158592, 2158592, 2568192, 2158592, 2592768, 2625536, 2158592, 2158592, 2674688, 0, 0, 0, 0, 0, 2211840, 0, 0, 0, 0, 0, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2473984, 2158592, 2158592, 2494464, 2158592, 2158592, 2158592, 3006464, 2383872, 0, 0, 2158592, 2158592, 2158592, 2158592, 3006464, 2158592, 2637824, 2953216, 2158592, 2207744, 2637824, 2953216, 40976, 18, 36884, 45078, 24, 27, 147488, 94242, 147456, 147488, 106538, 98347, 0, 0, 147456, 40976, 18, 18, 36884, 0, 45078, 0, 24, 24, 24, 27, 27, 27, 27, 0, 81920, 0, 94242, 0, 0, 0, 2211840, 0, 0, 0, 106538, 98347, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2428928, 2158592, 2514944, 2158592, 2588672, 2158592, 2838528, 2158592, 2158592, 40976, 18, 151573, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 0, 40976, 18, 18, 36884, 0, 45078, 0, 24, 24, 24, 27, 27, 27, 27, 90143, 0, 0, 1315, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1487, 97, 18, 131427, 0, 0, 0, 0, 0, 0, 362, 0, 0, 365, 29315, 367, 0, 0, 29315, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 130, 94242, 0, 0, 0, 2211840, 102439, 0, 0, 106538, 98347, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 3096576, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2207744, 2207744, 2158592, 18, 0, 0, 0, 0, 0, 0, 0, 2211840, 0, 0, 0, 0, 2158592, 644, 2207744, 2207744, 2207744, 3186688, 2207744, 0, 1080, 0, 1084, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2531466, 2158730, 2158730, 2158730, 2158730, 2158730, 2617482, 0, 94242, 0, 0, 0, 2211840, 102439, 0, 0, 106538, 98347, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2781184, 2793472, 2158592, 2818048, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 40976, 18, 36884, 45078, 24, 27, 90143, 159779, 159744, 102439, 159779, 98347, 0, 0, 159744, 40976, 18, 18, 36884, 0, 45078, 0, 2224253, 172032, 2224253, 2232448, 2232448, 172032, 2232448, 90143, 0, 0, 2170880, 0, 0, 550, 829, 2158592, 2158592, 2158592, 2387968, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 0, 40976, 0, 18, 18, 124, 124, 127, 127, 127, 40976, 18, 36884, 45078, 25, 29, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 163931, 40976, 18, 18, 36884, 0, 45078, 249856, 24, 24, 24, 27, 27, 27, 27, 90143, 0, 0, 2170880, 0, 0, 827, 0, 2158592, 2158592, 2158592, 2387968, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 0, 40976, 0, 4243810, 4243810, 24, 24, 27, 27, 27, 2207744, 0, 0, 0, 0, 0, 0, 2166784, 0, 0, 0, 0, 57344, 286, 2158592, 2158592, 2158592, 2158592, 2707456, 2732032, 2158592, 2158592, 2158592, 2822144, 2826240, 2158592, 2895872, 2158592, 2158592, 2924544, 2158592, 2158592, 2973696, 2158592, 2207744, 2207744, 2207744, 3186688, 2207744, 0, 0, 0, 0, 0, 0, 53248, 0, 0, 0, 0, 0, 97, 97, 97, 97, 97, 1613, 97, 97, 97, 97, 97, 97, 1495, 97, 97, 97, 97, 97, 97, 97, 97, 97, 566, 97, 97, 97, 97, 97, 97, 2207744, 0, 0, 0, 0, 0, 0, 2166784, 546, 0, 0, 0, 0, 286, 2158592, 2158592, 2158592, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 17, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 20480, 120, 121, 18, 18, 36884, 0, 45078, 0, 24, 24, 24, 27, 27, 27, 27, 90143, 0, 0, 2170880, 0, 53248, 550, 0, 2158592, 2158592, 2158592, 2387968, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 0, 40976, 196608, 18, 266240, 24, 24, 27, 27, 27, 0, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 0, 45, 45, 45, 45, 45, 45, 45, 1535, 45, 45, 45, 45, 45, 45, 45, 1416, 45, 45, 45, 45, 45, 45, 45, 45, 424, 45, 45, 45, 45, 45, 45, 45, 45, 45, 405, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 199, 45, 45, 67, 67, 67, 67, 67, 491, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1766, 67, 67, 67, 1767, 67, 24850, 24850, 12564, 12564, 0, 0, 2166784, 546, 0, 53531, 53531, 0, 286, 97, 97, 0, 0, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 0, 97, 97, 97, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 743, 57889, 0, 2170880, 0, 0, 550, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 1856, 45, 1858, 1859, 67, 67, 67, 1009, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1021, 67, 67, 67, 67, 67, 25398, 0, 13112, 0, 54074, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2367773, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2699549, 2158877, 2158877, 2158877, 2158877, 2158877, 2748701, 2756893, 2777373, 2801949, 97, 1115, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 857, 97, 67, 67, 67, 67, 67, 1258, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1826, 67, 97, 97, 97, 97, 97, 97, 1338, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 870, 97, 97, 67, 67, 67, 1463, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1579, 67, 67, 97, 97, 97, 1518, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 904, 905, 97, 97, 97, 97, 1620, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 921, 0, 0, 0, 0, 0, 0, 45, 1679, 67, 67, 67, 1682, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1690, 67, 0, 0, 97, 97, 97, 97, 45, 45, 67, 67, 0, 0, 97, 97, 45, 45, 45, 669, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 189, 45, 45, 45, 1748, 45, 45, 45, 1749, 1750, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 1959, 67, 67, 67, 67, 1768, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1791, 97, 97, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 1802, 67, 1817, 67, 67, 67, 67, 67, 67, 1823, 67, 67, 67, 67, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 0, 97, 97, 97, 97, 1848, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 659, 45, 45, 45, 45, 45, 45, 45, 1863, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 495, 67, 67, 67, 67, 67, 1878, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 97, 97, 97, 97, 0, 0, 0, 1973, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1165, 97, 1167, 67, 24850, 24850, 12564, 12564, 0, 0, 2166784, 0, 0, 53531, 53531, 0, 286, 97, 97, 0, 0, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 1789, 97, 0, 94242, 0, 0, 0, 2211840, 102439, 0, 0, 106538, 98347, 136, 2158592, 2158592, 2158592, 2158592, 2158592, 3158016, 229376, 2375680, 2379776, 2158592, 2158592, 2420736, 2158592, 2449408, 2158592, 2158592, 67, 24850, 24850, 12564, 12564, 0, 0, 280, 547, 0, 53531, 53531, 0, 286, 97, 97, 0, 0, 97, 97, 97, 97, 97, 97, 0, 1788, 97, 97, 0, 97, 2024, 97, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 235, 67, 67, 67, 67, 67, 57889, 547, 547, 0, 0, 550, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 45, 45, 45, 1799, 45, 45, 45, 67, 67, 67, 67, 67, 25398, 0, 13112, 0, 54074, 0, 0, 1092, 0, 0, 0, 0, 0, 97, 97, 97, 97, 1612, 97, 97, 97, 97, 1616, 97, 1297, 1472, 0, 0, 0, 0, 1303, 1474, 0, 0, 0, 0, 1309, 1476, 0, 0, 0, 0, 97, 97, 97, 1481, 97, 97, 97, 97, 97, 97, 1488, 97, 0, 1474, 0, 1476, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 607, 97, 97, 97, 97, 40976, 18, 36884, 45078, 26, 30, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 213080, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 143448, 40976, 18, 18, 36884, 0, 45078, 0, 24, 24, 24, 27, 27, 27, 27, 0, 0, 0, 0, 97, 97, 97, 97, 1482, 97, 1483, 97, 97, 97, 97, 97, 97, 1326, 97, 97, 1329, 1330, 97, 97, 97, 97, 97, 97, 1159, 1160, 97, 97, 97, 97, 97, 97, 97, 97, 590, 97, 97, 97, 97, 97, 97, 97, 0, 94242, 0, 0, 0, 2211974, 102439, 0, 0, 106538, 98347, 0, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2474122, 2158730, 2158730, 2494602, 2158730, 2158730, 2158730, 2809994, 2158730, 2158730, 2842762, 2158730, 2158730, 2158730, 2900106, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 3014794, 2158730, 2158730, 3051658, 2158730, 2158730, 3100810, 2158730, 2158730, 2158730, 2158730, 3096714, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2207744, 2207744, 2207744, 2207744, 2207744, 2572288, 2207744, 2207744, 2207744, 2207744, 541, 541, 543, 543, 0, 0, 2166784, 0, 548, 549, 549, 0, 286, 2158877, 2158877, 2158877, 2863389, 2892061, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 3186973, 2158877, 0, 0, 0, 0, 0, 0, 0, 0, 2367626, 2158877, 2404637, 2412829, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2564381, 2158877, 2158877, 2605341, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2679069, 2158877, 2695453, 2158877, 2703645, 2158877, 2711837, 2752797, 2158877, 0, 2158877, 2158877, 2158877, 2384010, 2158730, 2158730, 2158730, 2158730, 3006602, 2383872, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 3096576, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 0, 0, 0, 0, 0, 0, 2162688, 0, 0, 2158877, 2785565, 2158877, 2810141, 2158877, 2158877, 2842909, 2158877, 2158877, 2158877, 2900253, 2158877, 2158877, 2158877, 2158877, 2158877, 2531613, 2158877, 2158877, 2158877, 2158877, 2158877, 2617629, 2158877, 2158877, 2158877, 2158877, 2158730, 2818186, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 3105053, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 0, 0, 0, 0, 0, 97, 97, 97, 1611, 97, 97, 97, 97, 97, 97, 97, 1496, 97, 97, 1499, 97, 97, 97, 97, 97, 2441354, 2445450, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2502794, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2433162, 2158730, 2453642, 2461834, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2580618, 2158730, 2158730, 2158730, 2158730, 2621578, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2699402, 2158730, 2158730, 2158730, 2158730, 2678922, 2158730, 2695306, 2158730, 2703498, 2158730, 2711690, 2752650, 2158730, 2158730, 2785418, 2158730, 2158730, 2158730, 3113098, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 3186826, 2158730, 2207744, 2207744, 2207744, 2207744, 2781184, 2793472, 2207744, 2818048, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 0, 541, 0, 543, 2158877, 2502941, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2580765, 2158877, 2158877, 2158877, 2158877, 2621725, 2158877, 3019037, 2158877, 3043613, 2158877, 2158877, 2158877, 2158877, 3080477, 2158877, 2158877, 3113245, 2158877, 2158877, 2158877, 2158877, 0, 2158877, 2908445, 2158877, 2158877, 2158877, 2978077, 2158877, 2158877, 2158877, 2158877, 3039517, 2158877, 2158730, 2510986, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2584714, 2158730, 2609290, 2158730, 2158730, 2629770, 2158730, 2158730, 2158730, 2388106, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2605194, 2158730, 2158730, 2158730, 2158730, 2687114, 2158730, 2715786, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2867338, 2158730, 2904202, 2158730, 2158730, 2158730, 2642058, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2781322, 2793610, 2158730, 3121290, 2158730, 2158730, 2158730, 3149962, 2158730, 2158730, 3170442, 3174538, 2158730, 2367488, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2441216, 2445312, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2502656, 2158877, 2433309, 2158877, 2453789, 2461981, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2511133, 2158877, 2158877, 2158877, 2158877, 2584861, 2158877, 2609437, 2158877, 2158877, 2629917, 2158877, 2158877, 2158877, 2687261, 2158877, 2715933, 2158877, 2158730, 2158730, 2973834, 2158730, 2982026, 2158730, 2158730, 3002506, 2158730, 3047562, 3063946, 3076234, 2158730, 2158730, 2158730, 2158730, 2207744, 2506752, 2207744, 2207744, 2207744, 2207744, 2207744, 2158877, 2507037, 0, 0, 2158877, 2158730, 2158730, 2158730, 3203210, 2207744, 2207744, 2207744, 2207744, 2207744, 2424832, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2564096, 2207744, 2207744, 2207744, 2707741, 2732317, 2158877, 2158877, 2158877, 2822429, 2826525, 2158877, 2896157, 2158877, 2158877, 2924829, 2158877, 2158877, 2973981, 2158877, 18, 0, 0, 0, 0, 0, 0, 0, 2211840, 0, 0, 642, 0, 2158592, 0, 45, 1529, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1755, 45, 67, 67, 2982173, 2158877, 2158877, 3002653, 2158877, 3047709, 3064093, 3076381, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 3203357, 2523274, 2527370, 2158730, 2158730, 2576522, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2908298, 2494749, 2158877, 2158877, 2158877, 2523421, 2527517, 2158877, 2158877, 2576669, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 0, 40976, 0, 18, 18, 4321280, 2224253, 2232448, 4329472, 2232448, 2158730, 2498698, 2158730, 2158730, 2158730, 2158730, 2568330, 2158730, 2592906, 2625674, 2158730, 2158730, 2674826, 2736266, 2158730, 2158730, 2158730, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2158730, 2912394, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 3109002, 2158730, 2158730, 3133578, 3145866, 3154058, 2375680, 2207744, 3108864, 2207744, 2207744, 3133440, 3145728, 3153920, 2375965, 2380061, 2158877, 2158877, 2421021, 2158877, 2449693, 2158877, 2158877, 2158877, 3117341, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 3104906, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158877, 2498845, 2158877, 2158877, 0, 2158877, 2158877, 2568477, 2158877, 2593053, 2625821, 2158877, 2158877, 2674973, 0, 0, 0, 0, 97, 97, 1480, 97, 97, 97, 97, 97, 1485, 97, 97, 97, 0, 97, 97, 1729, 97, 1731, 97, 97, 97, 97, 97, 97, 97, 311, 97, 97, 97, 97, 97, 97, 97, 97, 1520, 97, 97, 1523, 97, 97, 1526, 97, 2736413, 2158877, 2158877, 0, 2158877, 2912541, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 3109149, 2158877, 2158877, 3014941, 2158877, 2158877, 3051805, 2158877, 2158877, 3100957, 2158877, 2158877, 3121437, 2158877, 2158877, 2158877, 3150109, 3133725, 3146013, 3154205, 2158730, 2408586, 2416778, 2158730, 2465930, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 3018890, 2158730, 3043466, 2158730, 2158730, 2158730, 2158730, 3080330, 2633866, 2658442, 2740362, 2744458, 2834570, 2949258, 2158730, 2986122, 2158730, 2998410, 2158730, 2158730, 2158730, 3129482, 2207744, 2408448, 2949120, 2207744, 2985984, 2207744, 2998272, 2207744, 2207744, 2207744, 3129344, 2158877, 2408733, 2416925, 2158877, 2466077, 2158877, 2158877, 3170589, 3174685, 2158877, 0, 0, 0, 2158730, 2158730, 2158730, 2158730, 2158730, 2424970, 2158730, 2158730, 2158730, 2158730, 2707594, 2732170, 2158730, 2158730, 2158730, 2822282, 2826378, 2158730, 2896010, 2158730, 2158730, 2924682, 2949405, 2158877, 2986269, 2158877, 2998557, 2158877, 2158877, 2158877, 3129629, 2158730, 2158730, 2478218, 2158730, 2158730, 2158730, 2535562, 2543754, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 3117194, 2207744, 2207744, 2478080, 2207744, 2207744, 2207744, 2207744, 3014656, 2207744, 2207744, 3051520, 2207744, 2207744, 3100672, 2207744, 2207744, 3121152, 2207744, 2207744, 2207744, 2207744, 2207744, 2584576, 2207744, 2609152, 2207744, 2207744, 2629632, 2207744, 2207744, 2207744, 2686976, 2207744, 2207744, 2535424, 2543616, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 3117056, 2158877, 2158877, 2478365, 0, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158730, 2158730, 2482314, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2207744, 2207744, 2207744, 2387968, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 0, 823, 0, 825, 2158730, 2158730, 2158730, 2990218, 2158730, 2158730, 2207744, 2207744, 2482176, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 0, 0, 0, 0, 0, 0, 2162688, 135, 0, 2207744, 2207744, 2990080, 2207744, 2207744, 2158877, 2158877, 2482461, 2158877, 2158877, 0, 0, 0, 2158877, 2158877, 2158877, 2158877, 2158877, 2158730, 2429066, 2158730, 2515082, 2158730, 2588810, 2158730, 2838666, 2158730, 2158730, 2158730, 3010698, 2207744, 2428928, 2207744, 2514944, 2207744, 2588672, 2207744, 2838528, 2207744, 2207744, 2207744, 3010560, 2158877, 2429213, 2158877, 2515229, 0, 0, 2158877, 2588957, 2158877, 0, 2838813, 2158877, 2158877, 2158877, 3010845, 2158730, 2506890, 2158730, 2158730, 2158730, 2748554, 2756746, 2777226, 2801802, 2158730, 2158730, 2158730, 2863242, 2891914, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2564234, 2158730, 2158730, 2158730, 2158730, 2158730, 2597002, 2158730, 2158730, 2158730, 3006464, 2384157, 0, 0, 2158877, 2158877, 2158877, 2158877, 3006749, 2158730, 2637962, 2953354, 2158730, 2207744, 2637824, 2953216, 2207744, 0, 0, 2158877, 2638109, 2953501, 2158877, 2539658, 2158730, 2539520, 2207744, 0, 0, 2539805, 2158877, 2158730, 2158730, 2158730, 2977930, 2158730, 2158730, 2158730, 2158730, 3039370, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 3158154, 2207744, 0, 2158877, 2158730, 2207744, 0, 2158877, 2158730, 2207744, 0, 2158877, 2965642, 2965504, 2965789, 0, 0, 0, 0, 1315, 0, 0, 0, 0, 97, 97, 97, 97, 97, 97, 97, 1484, 97, 97, 97, 97, 2158592, 18, 0, 122880, 0, 0, 0, 77824, 0, 2211840, 0, 0, 0, 0, 2158592, 0, 356, 0, 0, 0, 0, 0, 0, 28809, 0, 139, 45, 45, 45, 45, 45, 45, 1751, 45, 45, 45, 45, 45, 45, 45, 67, 67, 1427, 67, 67, 67, 67, 67, 1432, 67, 67, 67, 3104768, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 122880, 0, 0, 0, 0, 1315, 0, 0, 0, 0, 97, 97, 97, 97, 97, 97, 1322, 550, 0, 286, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2424832, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 0, 40976, 0, 18, 18, 24, 24, 4329472, 27, 27, 2207744, 2207744, 2977792, 2207744, 2207744, 2207744, 2207744, 3039232, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 3158016, 542, 0, 0, 0, 542, 0, 544, 0, 0, 0, 544, 0, 550, 0, 0, 0, 0, 0, 97, 97, 1610, 97, 97, 97, 97, 97, 97, 97, 97, 898, 97, 97, 97, 97, 97, 97, 97, 0, 94242, 0, 0, 0, 2211840, 0, 0, 0, 0, 0, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2424832, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 237568, 102439, 106538, 98347, 0, 0, 20480, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 192512, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 94, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 96, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 12378, 40976, 18, 18, 36884, 0, 45078, 0, 24, 24, 24, 126, 126, 126, 126, 90143, 0, 0, 2170880, 0, 0, 0, 0, 2158592, 2158592, 2158592, 2387968, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 20480, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 241664, 102439, 106538, 98347, 0, 0, 20568, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 200797, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 20480, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 0, 0, 44, 0, 0, 20575, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 41, 41, 41, 0, 0, 1126400, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 0, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 89, 40976, 18, 18, 36884, 0, 45078, 0, 24, 24, 24, 27, 131201, 27, 27, 90143, 0, 0, 2170880, 0, 0, 550, 0, 2158592, 2158592, 2158592, 2387968, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2441216, 2445312, 2158592, 2158592, 2158592, 2158592, 2158592, 0, 94242, 0, 0, 208896, 2211840, 102439, 0, 0, 106538, 98347, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 3186688, 2158592, 0, 0, 0, 0, 0, 0, 0, 0, 2367488, 32768, 0, 0, 0, 0, 0, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2433024, 2158592, 2453504, 2461696, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2510848, 2158592, 2158592, 2158592, 2158592, 40976, 18, 36884, 245783, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 20480, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 221184, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 180224, 40976, 18, 18, 36884, 155648, 45078, 0, 24, 24, 217088, 27, 27, 27, 217088, 90143, 0, 0, 2170880, 0, 0, 828, 0, 2158592, 2158592, 2158592, 2387968, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2207744, 2207744, 2207744, 2387968, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 0, 0, 0, 0, 0, 0, 2162688, 233472, 0, 0, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 28809, 45, 45, 45, 45, 45, 718, 45, 45, 45, 45, 45, 45, 45, 45, 45, 727, 131427, 0, 0, 0, 0, 362, 0, 365, 28809, 367, 139, 45, 45, 45, 45, 45, 45, 1808, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 97, 97, 0, 0, 97, 67, 24850, 24850, 12564, 12564, 0, 57889, 0, 0, 0, 53531, 53531, 367, 286, 97, 97, 0, 0, 97, 97, 97, 97, 97, 97, 1787, 0, 97, 97, 0, 97, 97, 97, 45, 45, 45, 45, 2029, 45, 67, 67, 67, 67, 2033, 57889, 0, 0, 54074, 54074, 550, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 45, 1798, 45, 45, 1800, 45, 45, 0, 1472, 0, 0, 0, 0, 0, 1474, 0, 0, 0, 0, 0, 1476, 0, 0, 0, 0, 1315, 0, 0, 0, 0, 97, 97, 97, 97, 1320, 97, 97, 0, 0, 97, 97, 97, 97, 1786, 97, 0, 0, 97, 97, 0, 1790, 1527, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 663, 67, 24850, 24850, 12564, 12564, 0, 57889, 281, 0, 0, 53531, 53531, 367, 286, 97, 97, 0, 0, 97, 97, 97, 1785, 97, 97, 0, 0, 97, 97, 0, 97, 97, 1979, 97, 97, 45, 45, 1983, 45, 1984, 45, 45, 45, 45, 45, 652, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 690, 45, 45, 694, 45, 45, 40976, 19, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 262144, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 46, 67, 98, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 45, 67, 97, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 258048, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 1122423, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 1114152, 1114152, 1114152, 0, 0, 1114112, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 37, 102439, 106538, 98347, 0, 0, 204800, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 57436, 40976, 18, 36884, 45078, 24, 27, 33, 33, 0, 33, 33, 33, 0, 0, 0, 40976, 18, 18, 36884, 0, 45078, 0, 124, 124, 124, 127, 127, 127, 127, 90143, 0, 0, 2170880, 0, 0, 550, 0, 2158877, 2158877, 2158877, 2388253, 2158877, 2158877, 2158877, 2158877, 2158877, 2781469, 2793757, 2158877, 2818333, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2867485, 2158877, 2904349, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 3096861, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2441501, 2445597, 2158877, 2158877, 2158877, 2158877, 2158877, 40976, 122, 123, 36884, 0, 45078, 0, 24, 24, 24, 27, 27, 27, 27, 90143, 0, 921, 29315, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 936, 2158592, 4243810, 0, 0, 0, 0, 0, 0, 0, 2211840, 0, 0, 0, 0, 2158592, 0, 921, 29315, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 935, 45, 45, 45, 715, 45, 45, 45, 45, 45, 45, 45, 723, 45, 45, 45, 45, 45, 1182, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 430, 45, 45, 45, 45, 45, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 47, 68, 99, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 48, 69, 100, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 49, 70, 101, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 50, 71, 102, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 51, 72, 103, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 52, 73, 104, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 53, 74, 105, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 54, 75, 106, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 55, 76, 107, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 56, 77, 108, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 57, 78, 109, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 58, 79, 110, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 59, 80, 111, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 60, 81, 112, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 61, 82, 113, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 62, 83, 114, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 63, 84, 115, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 64, 85, 116, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 65, 86, 117, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 66, 87, 118, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 118820, 102439, 106538, 98347, 118820, 118820, 118820, 40976, 18, 18, 0, 0, 45078, 0, 24, 24, 24, 27, 27, 27, 27, 90143, 0, 0, 1314, 0, 0, 0, 0, 0, 0, 97, 97, 97, 97, 97, 1321, 97, 18, 131427, 0, 0, 0, 0, 0, 0, 362, 0, 0, 365, 0, 367, 0, 0, 1315, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1360, 97, 97, 131, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 28809, 45, 45, 45, 145, 149, 45, 45, 45, 45, 45, 174, 45, 179, 45, 185, 45, 188, 45, 45, 202, 67, 255, 67, 67, 269, 67, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 97, 97, 97, 292, 296, 97, 97, 97, 97, 97, 321, 97, 326, 97, 332, 97, 18, 131427, 0, 0, 0, 0, 0, 0, 362, 0, 0, 365, 29315, 367, 646, 335, 97, 97, 349, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 437, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 523, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 511, 67, 67, 67, 97, 97, 97, 620, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1501, 1502, 97, 793, 67, 67, 796, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 808, 67, 0, 0, 97, 97, 97, 97, 45, 45, 67, 67, 0, 0, 97, 97, 2052, 67, 67, 67, 67, 813, 67, 67, 67, 67, 67, 67, 67, 25398, 542, 13112, 544, 57889, 0, 0, 54074, 54074, 550, 830, 97, 97, 97, 97, 97, 97, 97, 97, 97, 315, 97, 97, 97, 97, 97, 97, 841, 97, 97, 97, 97, 97, 97, 97, 97, 97, 854, 97, 97, 97, 97, 97, 97, 589, 97, 97, 97, 97, 97, 97, 97, 97, 97, 867, 97, 97, 97, 97, 97, 97, 97, 891, 97, 97, 894, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 906, 45, 937, 45, 45, 940, 45, 45, 45, 45, 45, 45, 948, 45, 45, 45, 45, 45, 734, 735, 67, 737, 67, 738, 67, 740, 67, 67, 67, 45, 967, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 435, 45, 45, 45, 980, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 415, 45, 45, 67, 67, 1024, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 67, 67, 67, 67, 67, 25398, 1081, 13112, 1085, 54074, 1089, 0, 0, 0, 0, 0, 0, 363, 0, 28809, 0, 139, 45, 45, 45, 45, 45, 45, 1674, 45, 45, 45, 45, 45, 45, 45, 45, 67, 1913, 67, 1914, 67, 67, 67, 1918, 67, 67, 97, 97, 97, 97, 1118, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 630, 97, 97, 97, 97, 97, 1169, 97, 97, 97, 97, 97, 0, 921, 0, 1175, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 1534, 45, 45, 45, 45, 45, 1538, 45, 45, 45, 45, 1233, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 742, 67, 45, 45, 1191, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 454, 67, 67, 67, 67, 1243, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1251, 67, 0, 0, 97, 97, 97, 97, 45, 45, 67, 67, 2050, 0, 97, 97, 45, 45, 45, 732, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 67, 67, 67, 1284, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 772, 67, 67, 67, 1293, 67, 67, 67, 67, 67, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 368, 2158592, 2158592, 2158592, 2404352, 2412544, 1323, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1331, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1737, 97, 1364, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1373, 97, 18, 131427, 0, 0, 0, 0, 0, 0, 362, 0, 0, 365, 29315, 367, 647, 45, 45, 1387, 45, 45, 1391, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 410, 45, 45, 45, 45, 45, 1400, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1407, 45, 45, 45, 45, 45, 941, 45, 943, 45, 45, 45, 45, 45, 45, 951, 45, 67, 1438, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1447, 67, 67, 67, 67, 67, 67, 782, 67, 67, 67, 67, 67, 67, 67, 67, 67, 756, 67, 67, 67, 67, 67, 67, 97, 1491, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1500, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1736, 97, 45, 45, 1541, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 677, 45, 45, 67, 1581, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 791, 792, 67, 67, 67, 67, 1598, 67, 1600, 67, 67, 67, 67, 67, 67, 67, 67, 1472, 97, 97, 97, 1727, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1513, 97, 97, 67, 67, 97, 1879, 97, 1881, 97, 0, 1884, 0, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 97, 0, 0, 0, 1842, 97, 97, 67, 67, 67, 67, 67, 97, 97, 97, 97, 1928, 0, 0, 0, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 1903, 45, 45, 45, 67, 67, 67, 67, 97, 97, 97, 97, 1971, 0, 0, 97, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 0, 45, 45, 45, 1381, 45, 45, 45, 45, 1976, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1747, 809, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 25398, 542, 13112, 544, 97, 907, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 638, 0, 0, 0, 0, 1478, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1150, 97, 97, 97, 97, 67, 67, 67, 67, 1244, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 477, 67, 67, 67, 67, 67, 67, 1294, 67, 67, 67, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1324, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 0, 1374, 97, 97, 97, 97, 0, 1175, 0, 45, 45, 45, 45, 45, 45, 45, 45, 945, 45, 45, 45, 45, 45, 45, 45, 45, 1908, 45, 45, 1910, 45, 67, 67, 67, 67, 67, 67, 67, 67, 1919, 67, 0, 0, 97, 97, 97, 97, 45, 2048, 67, 2049, 0, 0, 97, 2051, 45, 45, 45, 939, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 397, 45, 45, 45, 1921, 67, 67, 1923, 67, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 1947, 45, 1935, 0, 0, 0, 97, 1939, 97, 97, 1941, 97, 45, 45, 45, 45, 45, 45, 382, 389, 45, 45, 45, 45, 45, 45, 45, 45, 1810, 45, 45, 1812, 67, 67, 67, 67, 67, 256, 67, 67, 67, 67, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 336, 97, 97, 97, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 131427, 0, 0, 0, 0, 362, 0, 365, 28809, 367, 139, 45, 45, 371, 373, 45, 45, 45, 955, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 413, 45, 45, 45, 457, 459, 67, 67, 67, 67, 67, 67, 67, 67, 473, 67, 478, 67, 67, 482, 67, 67, 485, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 97, 1828, 97, 554, 556, 97, 97, 97, 97, 97, 97, 97, 97, 570, 97, 575, 97, 97, 579, 97, 97, 582, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 330, 97, 97, 67, 746, 67, 67, 67, 67, 67, 67, 67, 67, 67, 758, 67, 67, 67, 67, 67, 67, 67, 1575, 67, 67, 67, 67, 67, 67, 67, 67, 493, 67, 67, 67, 67, 67, 67, 67, 97, 97, 844, 97, 97, 97, 97, 97, 97, 97, 97, 97, 856, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 1735, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 1642, 97, 1644, 97, 97, 890, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 67, 67, 67, 67, 1065, 1066, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 532, 67, 67, 67, 67, 67, 67, 67, 1451, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 496, 67, 67, 97, 97, 1505, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 593, 97, 97, 0, 1474, 0, 1476, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1617, 97, 97, 1635, 0, 1637, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 885, 97, 97, 97, 97, 67, 67, 1704, 67, 67, 67, 67, 97, 97, 97, 97, 97, 97, 97, 97, 97, 565, 572, 97, 97, 97, 97, 97, 97, 97, 97, 1832, 0, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 97, 97, 45, 45, 45, 1946, 45, 45, 67, 67, 67, 67, 67, 97, 1926, 97, 1927, 97, 0, 0, 0, 97, 97, 1934, 2043, 0, 0, 97, 97, 97, 2047, 45, 45, 67, 67, 0, 1832, 97, 97, 45, 45, 45, 981, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1227, 45, 45, 45, 131427, 0, 0, 0, 0, 362, 0, 365, 28809, 367, 139, 45, 45, 372, 45, 45, 45, 45, 1661, 1662, 45, 45, 45, 45, 45, 1666, 45, 45, 45, 45, 45, 1673, 45, 1675, 45, 45, 45, 45, 45, 45, 45, 67, 1426, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1275, 67, 67, 67, 67, 67, 45, 418, 45, 45, 420, 45, 45, 423, 45, 45, 45, 45, 45, 45, 45, 45, 959, 45, 45, 962, 45, 45, 45, 45, 458, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 483, 67, 67, 67, 67, 504, 67, 67, 506, 67, 67, 509, 67, 67, 67, 67, 67, 67, 67, 528, 67, 67, 67, 67, 67, 67, 67, 67, 1287, 67, 67, 67, 67, 67, 67, 67, 555, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 580, 97, 97, 97, 97, 601, 97, 97, 603, 97, 97, 606, 97, 97, 97, 97, 97, 97, 848, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1498, 97, 97, 97, 97, 97, 97, 45, 45, 714, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 989, 990, 45, 67, 67, 67, 67, 67, 1011, 67, 67, 67, 67, 1015, 67, 67, 67, 67, 67, 67, 67, 753, 67, 67, 67, 67, 67, 67, 67, 67, 467, 67, 67, 67, 67, 67, 67, 67, 45, 45, 1179, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1003, 1004, 67, 1217, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 728, 67, 1461, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1034, 67, 97, 1516, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 871, 97, 67, 67, 67, 1705, 67, 67, 67, 97, 97, 97, 97, 97, 97, 97, 97, 97, 567, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1715, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 0, 45, 45, 1380, 45, 45, 45, 45, 45, 67, 67, 97, 97, 97, 97, 97, 0, 0, 0, 97, 1887, 97, 97, 0, 0, 97, 97, 97, 0, 97, 97, 97, 97, 97, 2006, 45, 45, 1907, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1920, 67, 97, 0, 2035, 97, 97, 97, 97, 97, 45, 45, 45, 45, 67, 67, 67, 1428, 67, 67, 67, 67, 67, 67, 1435, 67, 0, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 28809, 45, 45, 45, 146, 45, 152, 45, 45, 165, 45, 175, 45, 180, 45, 45, 187, 190, 195, 45, 203, 254, 257, 262, 67, 270, 67, 67, 0, 24850, 12564, 0, 0, 0, 281, 28809, 53531, 97, 97, 97, 293, 97, 299, 97, 97, 312, 97, 322, 97, 327, 97, 97, 334, 337, 342, 97, 350, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 67, 484, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 499, 97, 581, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 596, 648, 45, 650, 45, 651, 45, 653, 45, 45, 45, 657, 45, 45, 45, 45, 45, 45, 1954, 67, 67, 67, 1958, 67, 67, 67, 67, 67, 67, 67, 768, 67, 67, 67, 67, 67, 67, 67, 67, 769, 67, 67, 67, 67, 67, 67, 67, 680, 45, 45, 45, 45, 45, 45, 45, 45, 688, 689, 691, 45, 45, 45, 45, 45, 983, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 947, 45, 45, 45, 45, 952, 45, 45, 698, 699, 45, 45, 702, 703, 45, 45, 45, 45, 45, 45, 45, 711, 744, 67, 67, 67, 67, 67, 67, 67, 67, 67, 757, 67, 67, 67, 67, 761, 67, 67, 67, 67, 765, 67, 767, 67, 67, 67, 67, 67, 67, 67, 67, 775, 776, 778, 67, 67, 67, 67, 67, 67, 785, 786, 67, 67, 789, 790, 67, 67, 67, 67, 67, 67, 1442, 67, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 1775, 97, 97, 97, 67, 67, 67, 67, 67, 798, 67, 67, 67, 802, 67, 67, 67, 67, 67, 67, 67, 67, 1465, 67, 67, 1468, 67, 67, 1471, 67, 67, 810, 67, 67, 67, 67, 67, 67, 67, 67, 67, 821, 25398, 542, 13112, 544, 57889, 0, 0, 54074, 54074, 550, 0, 833, 97, 835, 97, 836, 97, 838, 97, 97, 0, 0, 97, 97, 97, 2002, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 1740, 45, 45, 45, 1744, 45, 45, 45, 97, 842, 97, 97, 97, 97, 97, 97, 97, 97, 97, 855, 97, 97, 97, 97, 0, 1717, 1718, 97, 97, 97, 97, 97, 1722, 97, 0, 0, 859, 97, 97, 97, 97, 863, 97, 865, 97, 97, 97, 97, 97, 97, 97, 97, 604, 97, 97, 97, 97, 97, 97, 97, 873, 874, 876, 97, 97, 97, 97, 97, 97, 883, 884, 97, 97, 887, 888, 97, 18, 131427, 0, 0, 0, 0, 0, 0, 362, 225280, 0, 365, 0, 367, 0, 45, 45, 45, 1531, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1199, 45, 45, 45, 45, 45, 97, 97, 908, 97, 97, 97, 97, 97, 97, 97, 97, 97, 919, 638, 0, 0, 0, 0, 2158877, 2158877, 2158877, 2158877, 2158877, 2425117, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2597149, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2642205, 2158877, 2158877, 2158877, 2158877, 2158877, 3158301, 0, 2375818, 2379914, 2158730, 2158730, 2420874, 2158730, 2449546, 2158730, 2158730, 953, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 965, 978, 45, 45, 45, 45, 45, 45, 985, 45, 45, 45, 45, 45, 45, 45, 45, 971, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 1027, 67, 1029, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1455, 67, 67, 67, 67, 67, 67, 67, 1077, 1078, 67, 67, 25398, 0, 13112, 0, 54074, 0, 0, 0, 0, 0, 0, 0, 0, 366, 0, 139, 2158730, 2158730, 2158730, 2404490, 2412682, 1113, 97, 97, 97, 97, 97, 97, 1121, 97, 1123, 97, 97, 97, 97, 97, 97, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1540, 1155, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 615, 1168, 97, 97, 1171, 1172, 97, 97, 0, 921, 0, 1175, 0, 0, 0, 0, 45, 45, 45, 45, 45, 1533, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1663, 45, 45, 45, 45, 45, 45, 45, 45, 45, 183, 45, 45, 45, 45, 201, 45, 45, 45, 1219, 45, 45, 45, 45, 45, 45, 45, 1226, 45, 45, 45, 45, 45, 168, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 427, 45, 45, 45, 45, 45, 45, 45, 1231, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1242, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1046, 67, 67, 1254, 67, 1256, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 806, 807, 67, 67, 97, 1336, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1111, 97, 97, 97, 97, 97, 1351, 97, 97, 97, 1354, 97, 97, 97, 1359, 97, 97, 97, 0, 97, 97, 97, 97, 1640, 97, 97, 97, 97, 97, 97, 97, 897, 97, 97, 97, 902, 97, 97, 97, 97, 97, 97, 97, 97, 1366, 97, 97, 97, 97, 97, 97, 97, 1371, 97, 97, 97, 0, 97, 97, 97, 1730, 97, 97, 97, 97, 97, 97, 97, 97, 915, 97, 97, 97, 97, 0, 360, 0, 67, 67, 67, 1440, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1017, 67, 1019, 67, 67, 67, 67, 67, 1453, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1459, 97, 97, 97, 1493, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1525, 97, 97, 97, 97, 97, 97, 1507, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1514, 67, 67, 67, 67, 1584, 67, 67, 67, 67, 67, 1590, 67, 67, 67, 67, 67, 67, 67, 783, 67, 67, 67, 788, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1599, 1601, 67, 67, 67, 1604, 67, 1606, 1607, 67, 1472, 0, 1474, 0, 1476, 0, 97, 97, 97, 97, 97, 97, 1614, 97, 97, 97, 97, 45, 45, 1850, 45, 45, 45, 45, 1855, 45, 45, 45, 45, 45, 1222, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1229, 97, 1618, 97, 97, 97, 97, 97, 97, 97, 1625, 97, 97, 97, 97, 97, 0, 1175, 0, 45, 45, 45, 45, 45, 45, 45, 45, 447, 45, 45, 45, 45, 45, 67, 67, 1633, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 1643, 1645, 97, 97, 0, 0, 97, 97, 1784, 97, 97, 97, 0, 0, 97, 97, 0, 97, 1894, 1895, 97, 1897, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 656, 45, 45, 45, 45, 45, 45, 97, 1648, 97, 1650, 1651, 97, 0, 45, 45, 45, 1654, 45, 45, 45, 45, 45, 169, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 658, 45, 45, 45, 45, 664, 45, 45, 1659, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1187, 45, 45, 1669, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 1005, 67, 67, 1681, 67, 67, 67, 67, 67, 67, 67, 1686, 67, 67, 67, 67, 67, 67, 67, 784, 67, 67, 67, 67, 67, 67, 67, 67, 1055, 67, 67, 67, 67, 1060, 67, 67, 97, 97, 1713, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 0, 1378, 45, 45, 45, 45, 45, 45, 45, 408, 45, 45, 45, 45, 45, 45, 45, 45, 1547, 45, 1549, 45, 45, 45, 45, 45, 97, 97, 1780, 0, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 0, 97, 97, 97, 45, 45, 2027, 2028, 45, 45, 67, 67, 2031, 2032, 67, 45, 45, 1804, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 1917, 67, 67, 67, 67, 67, 67, 67, 1819, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 1708, 97, 97, 97, 97, 97, 45, 45, 1862, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 497, 67, 67, 67, 1877, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 97, 1839, 0, 0, 97, 97, 97, 97, 1936, 0, 0, 97, 97, 97, 97, 97, 97, 1943, 1944, 1945, 45, 45, 45, 45, 670, 45, 45, 45, 45, 674, 45, 45, 45, 45, 678, 45, 1948, 45, 1950, 45, 45, 45, 45, 1955, 1956, 1957, 67, 67, 67, 1960, 67, 1962, 67, 67, 67, 67, 1967, 1968, 1969, 97, 0, 0, 0, 97, 97, 1974, 97, 0, 1936, 0, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 1906, 0, 1977, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1746, 45, 45, 45, 45, 2011, 67, 67, 2013, 67, 67, 67, 2017, 97, 97, 0, 0, 2021, 97, 8192, 97, 97, 2025, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 1916, 67, 67, 67, 67, 0, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 28809, 45, 45, 140, 45, 45, 45, 1180, 45, 45, 45, 45, 1184, 45, 45, 45, 45, 45, 45, 45, 387, 45, 392, 45, 45, 396, 45, 45, 399, 45, 45, 67, 207, 67, 67, 67, 67, 67, 67, 236, 67, 67, 67, 67, 67, 67, 67, 800, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1603, 67, 67, 67, 67, 67, 0, 97, 97, 287, 97, 97, 97, 97, 97, 97, 316, 97, 97, 97, 97, 97, 97, 0, 45, 45, 45, 45, 45, 45, 45, 1656, 1657, 45, 376, 45, 45, 45, 45, 45, 388, 45, 45, 45, 45, 45, 45, 45, 45, 1406, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 462, 67, 67, 67, 67, 67, 474, 67, 67, 67, 67, 67, 67, 67, 817, 67, 67, 67, 67, 25398, 542, 13112, 544, 97, 97, 97, 97, 559, 97, 97, 97, 97, 97, 571, 97, 97, 97, 97, 97, 97, 896, 97, 97, 97, 900, 97, 97, 97, 97, 97, 97, 912, 914, 97, 97, 97, 97, 97, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 391, 45, 45, 45, 45, 45, 45, 45, 45, 713, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 662, 45, 1140, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 636, 67, 67, 1283, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 513, 67, 67, 1363, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 889, 97, 97, 97, 1714, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 926, 45, 45, 45, 45, 45, 45, 45, 45, 672, 45, 45, 45, 45, 45, 45, 45, 45, 686, 45, 45, 45, 45, 45, 45, 45, 45, 944, 45, 45, 45, 45, 45, 45, 45, 45, 1676, 45, 45, 45, 45, 45, 45, 67, 97, 97, 97, 1833, 0, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 1902, 45, 45, 45, 45, 45, 957, 45, 45, 45, 45, 961, 45, 963, 45, 45, 45, 67, 97, 2034, 0, 97, 97, 97, 97, 97, 2040, 45, 45, 45, 2042, 67, 67, 67, 67, 67, 67, 1574, 67, 67, 67, 67, 67, 1578, 67, 67, 67, 67, 67, 67, 799, 67, 67, 67, 804, 67, 67, 67, 67, 67, 67, 67, 1298, 0, 0, 0, 1304, 0, 0, 0, 1310, 132, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 28809, 45, 45, 45, 45, 45, 1414, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 428, 45, 45, 45, 45, 45, 57889, 0, 0, 54074, 54074, 550, 831, 97, 97, 97, 97, 97, 97, 97, 97, 97, 568, 97, 97, 97, 97, 578, 97, 45, 45, 968, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1228, 45, 45, 67, 67, 67, 67, 67, 25398, 1082, 13112, 1086, 54074, 1090, 0, 0, 0, 0, 0, 0, 364, 0, 0, 0, 139, 2158592, 2158592, 2158592, 2404352, 2412544, 67, 67, 67, 67, 1464, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 510, 67, 67, 67, 67, 97, 97, 97, 97, 1519, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 918, 97, 0, 0, 0, 0, 1528, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 976, 45, 1554, 45, 45, 45, 45, 45, 45, 45, 45, 1562, 45, 45, 1565, 45, 45, 45, 45, 683, 45, 45, 45, 687, 45, 45, 692, 45, 45, 45, 45, 45, 1953, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1014, 67, 67, 67, 67, 67, 67, 1568, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 67, 67, 67, 67, 67, 1585, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1594, 97, 97, 1649, 97, 97, 97, 0, 45, 45, 1653, 45, 45, 45, 45, 45, 45, 383, 45, 45, 45, 45, 45, 45, 45, 45, 45, 986, 45, 45, 45, 45, 45, 45, 45, 45, 1670, 45, 1672, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 736, 67, 67, 67, 67, 67, 741, 67, 67, 67, 1680, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1074, 67, 67, 67, 1692, 67, 67, 67, 67, 67, 67, 67, 1697, 67, 1699, 67, 67, 67, 67, 67, 67, 1012, 67, 67, 67, 67, 67, 67, 67, 67, 67, 468, 475, 67, 67, 67, 67, 67, 67, 1769, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 97, 97, 624, 97, 97, 97, 97, 97, 97, 634, 97, 97, 1792, 97, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 958, 45, 45, 45, 45, 45, 45, 964, 45, 150, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 977, 204, 45, 67, 67, 67, 217, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 787, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 271, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 97, 97, 97, 97, 351, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 45, 45, 938, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1398, 45, 45, 45, 153, 45, 161, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 660, 661, 45, 45, 205, 45, 67, 67, 67, 67, 220, 67, 228, 67, 67, 67, 67, 67, 67, 67, 0, 0, 0, 0, 0, 280, 94, 0, 0, 67, 67, 67, 67, 67, 272, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 97, 97, 97, 97, 352, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 45, 439, 45, 45, 45, 45, 45, 445, 45, 45, 45, 452, 45, 45, 67, 67, 212, 216, 67, 67, 67, 67, 67, 241, 67, 246, 67, 252, 67, 67, 486, 67, 67, 67, 67, 67, 67, 67, 494, 67, 67, 67, 67, 67, 67, 67, 1245, 67, 67, 67, 67, 67, 67, 67, 67, 1013, 67, 67, 1016, 67, 67, 67, 67, 67, 521, 67, 67, 525, 67, 67, 67, 67, 67, 531, 67, 67, 67, 538, 67, 0, 0, 2046, 97, 97, 97, 45, 45, 67, 67, 0, 0, 97, 97, 45, 45, 45, 1192, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1418, 45, 45, 1421, 97, 97, 583, 97, 97, 97, 97, 97, 97, 97, 591, 97, 97, 97, 97, 97, 97, 913, 97, 97, 97, 97, 97, 97, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 1384, 97, 618, 97, 97, 622, 97, 97, 97, 97, 97, 628, 97, 97, 97, 635, 97, 18, 131427, 0, 0, 0, 639, 0, 132, 362, 0, 0, 365, 29315, 367, 0, 921, 29315, 0, 0, 0, 0, 45, 45, 45, 45, 932, 45, 45, 45, 45, 45, 1544, 45, 45, 45, 45, 45, 1550, 45, 45, 45, 45, 45, 1194, 45, 1196, 45, 45, 45, 45, 45, 45, 45, 45, 999, 45, 45, 45, 45, 45, 67, 67, 45, 45, 667, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1408, 45, 45, 45, 696, 45, 45, 45, 701, 45, 45, 45, 45, 45, 45, 45, 45, 710, 45, 45, 45, 1220, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 194, 45, 45, 45, 729, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 797, 67, 67, 67, 67, 67, 67, 805, 67, 67, 67, 67, 67, 67, 67, 1587, 67, 1589, 67, 67, 67, 67, 67, 67, 67, 67, 1763, 67, 67, 67, 67, 67, 67, 67, 0, 0, 0, 0, 0, 0, 2162968, 0, 0, 67, 67, 67, 67, 67, 814, 816, 67, 67, 67, 67, 67, 25398, 542, 13112, 544, 67, 67, 1008, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1020, 67, 0, 97, 45, 67, 0, 97, 45, 67, 0, 97, 45, 67, 97, 0, 0, 97, 97, 97, 97, 97, 45, 45, 45, 45, 67, 67, 67, 67, 1429, 67, 1430, 67, 67, 67, 67, 67, 1062, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 518, 1076, 67, 67, 67, 67, 25398, 0, 13112, 0, 54074, 0, 0, 0, 0, 0, 0, 0, 0, 28809, 0, 139, 45, 45, 45, 45, 45, 97, 97, 97, 97, 1102, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1124, 97, 1126, 97, 97, 1114, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1112, 97, 97, 1156, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 594, 97, 97, 97, 97, 1170, 97, 97, 97, 97, 0, 921, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 1532, 45, 45, 45, 45, 1536, 45, 45, 45, 45, 45, 172, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 706, 45, 45, 709, 45, 45, 1177, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1202, 45, 1204, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1215, 45, 45, 45, 1232, 45, 45, 45, 45, 45, 45, 45, 67, 1237, 67, 67, 67, 67, 67, 67, 1053, 1054, 67, 67, 67, 67, 67, 67, 1061, 67, 67, 1282, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1289, 67, 67, 67, 1292, 97, 97, 97, 97, 1339, 97, 97, 97, 97, 97, 97, 1344, 97, 97, 97, 97, 45, 1849, 45, 1851, 45, 45, 45, 45, 45, 45, 45, 45, 721, 45, 45, 45, 45, 45, 726, 45, 1385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1188, 45, 45, 1401, 1402, 45, 45, 45, 45, 1405, 45, 45, 45, 45, 45, 45, 45, 45, 1752, 45, 45, 45, 45, 45, 67, 67, 1410, 45, 45, 45, 1413, 45, 1415, 45, 45, 45, 45, 45, 45, 1419, 45, 45, 45, 45, 1806, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 97, 97, 2019, 0, 97, 67, 67, 67, 1452, 67, 67, 67, 67, 67, 67, 67, 67, 1457, 67, 67, 67, 67, 67, 67, 1259, 67, 67, 67, 67, 67, 67, 1264, 67, 67, 1460, 67, 1462, 67, 67, 67, 67, 67, 67, 1466, 67, 67, 67, 67, 67, 67, 67, 67, 1588, 67, 67, 67, 67, 67, 67, 67, 0, 1300, 0, 0, 0, 1306, 0, 0, 0, 97, 97, 97, 1506, 97, 97, 97, 97, 97, 97, 97, 97, 1512, 97, 97, 97, 0, 1728, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 901, 97, 97, 97, 97, 1515, 97, 1517, 97, 97, 97, 97, 97, 97, 1521, 97, 97, 97, 97, 97, 97, 0, 45, 1652, 45, 45, 45, 1655, 45, 45, 45, 45, 45, 1542, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1552, 1553, 45, 45, 45, 1556, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 693, 45, 45, 45, 67, 67, 67, 67, 1572, 67, 67, 67, 67, 1576, 67, 67, 67, 67, 67, 67, 67, 67, 1602, 67, 67, 1605, 67, 67, 67, 0, 67, 1582, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1580, 67, 67, 1596, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 542, 0, 544, 67, 67, 67, 67, 1759, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 533, 67, 67, 67, 67, 67, 67, 67, 1770, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 97, 1777, 97, 97, 97, 1793, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 998, 45, 45, 1001, 1002, 45, 45, 67, 67, 45, 1861, 45, 67, 67, 67, 67, 67, 67, 67, 67, 1871, 67, 1873, 1874, 67, 0, 97, 45, 67, 0, 97, 45, 67, 16384, 97, 45, 67, 97, 0, 0, 0, 1473, 0, 1082, 0, 0, 0, 1475, 0, 1086, 0, 0, 0, 1477, 1876, 67, 97, 97, 97, 97, 97, 1883, 0, 1885, 97, 97, 97, 1889, 0, 0, 0, 286, 0, 0, 0, 286, 0, 2367488, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 0, 40976, 0, 18, 18, 24, 24, 126, 126, 126, 2053, 0, 2055, 45, 67, 0, 97, 45, 67, 0, 97, 45, 67, 97, 0, 0, 97, 97, 97, 2039, 97, 45, 45, 45, 45, 67, 67, 67, 67, 67, 226, 67, 67, 67, 67, 67, 67, 67, 67, 1246, 67, 67, 1249, 1250, 67, 67, 67, 132, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 28809, 45, 45, 141, 45, 45, 45, 1403, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1186, 45, 45, 1189, 45, 45, 155, 45, 45, 45, 45, 45, 45, 45, 45, 45, 191, 45, 45, 45, 45, 700, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1753, 45, 45, 45, 67, 67, 45, 45, 67, 208, 67, 67, 67, 222, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1764, 67, 67, 67, 67, 67, 67, 67, 258, 67, 67, 67, 67, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 97, 97, 288, 97, 97, 97, 302, 97, 97, 97, 97, 97, 97, 97, 97, 97, 627, 97, 97, 97, 97, 97, 97, 338, 97, 97, 97, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 131427, 0, 0, 0, 0, 362, 0, 365, 28809, 367, 139, 45, 370, 45, 45, 45, 45, 716, 45, 45, 45, 45, 45, 722, 45, 45, 45, 45, 45, 45, 1912, 67, 67, 67, 67, 67, 67, 67, 67, 67, 819, 67, 67, 25398, 542, 13112, 544, 45, 403, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1409, 45, 67, 67, 67, 67, 489, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 771, 67, 67, 67, 67, 520, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 534, 67, 67, 67, 67, 67, 67, 1271, 67, 67, 67, 1274, 67, 67, 67, 1279, 67, 67, 24850, 24850, 12564, 12564, 0, 57889, 0, 0, 0, 53531, 53531, 367, 286, 97, 553, 97, 97, 97, 97, 586, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1138, 97, 97, 97, 97, 617, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 631, 97, 97, 97, 0, 1834, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 97, 353, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 45, 45, 668, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 724, 45, 45, 45, 45, 45, 682, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 949, 45, 45, 45, 67, 67, 747, 748, 67, 67, 67, 67, 755, 67, 67, 67, 67, 67, 67, 67, 0, 0, 0, 1302, 0, 0, 0, 1308, 0, 67, 794, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1701, 67, 97, 97, 97, 845, 846, 97, 97, 97, 97, 853, 97, 97, 97, 97, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 97, 97, 892, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 610, 97, 97, 45, 992, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 1239, 67, 67, 67, 1063, 67, 67, 67, 67, 67, 1068, 67, 67, 67, 67, 67, 67, 67, 0, 0, 1301, 0, 0, 0, 1307, 0, 0, 97, 1141, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1152, 97, 97, 0, 0, 97, 97, 2001, 0, 97, 2003, 97, 97, 97, 45, 45, 45, 1739, 45, 45, 45, 1742, 45, 45, 45, 45, 45, 97, 97, 97, 97, 1157, 97, 97, 97, 97, 97, 1162, 97, 97, 97, 97, 97, 97, 1145, 97, 97, 97, 97, 97, 1151, 97, 97, 97, 1253, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 539, 45, 1423, 45, 45, 67, 67, 67, 67, 67, 67, 67, 1431, 67, 67, 67, 67, 67, 67, 67, 1695, 67, 67, 67, 67, 67, 1700, 67, 1702, 67, 67, 1439, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 514, 67, 67, 97, 97, 1492, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 611, 97, 97, 1703, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 97, 97, 97, 97, 852, 97, 97, 97, 97, 97, 97, 45, 1949, 45, 1951, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 1961, 67, 0, 97, 45, 67, 0, 97, 2060, 2061, 0, 2062, 45, 67, 97, 0, 0, 2036, 97, 97, 97, 97, 45, 45, 45, 45, 67, 67, 67, 67, 67, 223, 67, 67, 237, 67, 67, 67, 67, 67, 67, 67, 1272, 67, 67, 67, 67, 67, 67, 67, 67, 507, 67, 67, 67, 67, 67, 67, 67, 1963, 67, 67, 67, 97, 97, 97, 97, 0, 1972, 0, 97, 97, 97, 1975, 0, 921, 29315, 0, 0, 0, 0, 45, 45, 45, 931, 45, 45, 45, 45, 45, 407, 45, 45, 45, 45, 45, 45, 45, 45, 45, 417, 45, 45, 1989, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1996, 97, 18, 131427, 0, 0, 360, 0, 0, 0, 362, 0, 0, 365, 29315, 367, 0, 921, 29315, 0, 0, 0, 0, 45, 45, 930, 45, 45, 45, 45, 45, 45, 444, 45, 45, 45, 45, 45, 45, 45, 67, 67, 97, 97, 1998, 0, 97, 97, 97, 0, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 1985, 45, 1986, 45, 45, 45, 156, 45, 45, 170, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 675, 45, 45, 45, 45, 679, 131427, 0, 358, 0, 0, 362, 0, 365, 28809, 367, 139, 45, 45, 45, 45, 45, 381, 45, 45, 45, 45, 45, 45, 45, 45, 45, 400, 45, 45, 419, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 436, 67, 67, 67, 67, 67, 505, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 820, 67, 25398, 542, 13112, 544, 67, 67, 522, 67, 67, 67, 67, 67, 529, 67, 67, 67, 67, 67, 67, 67, 0, 1299, 0, 0, 0, 1305, 0, 0, 0, 97, 97, 619, 97, 97, 97, 97, 97, 626, 97, 97, 97, 97, 97, 97, 97, 1105, 97, 97, 97, 97, 1109, 97, 97, 97, 67, 67, 67, 67, 749, 67, 67, 67, 67, 67, 67, 67, 67, 67, 760, 67, 0, 97, 45, 67, 2058, 97, 45, 67, 0, 97, 45, 67, 97, 0, 0, 97, 97, 97, 97, 97, 45, 45, 45, 2041, 67, 67, 67, 67, 67, 780, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 516, 67, 67, 97, 97, 97, 878, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1629, 97, 0, 45, 979, 45, 45, 45, 45, 984, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1198, 45, 45, 45, 45, 45, 45, 67, 1023, 67, 67, 67, 67, 1028, 67, 67, 67, 67, 67, 67, 67, 67, 67, 470, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 25398, 0, 13112, 0, 54074, 0, 0, 0, 1094, 0, 0, 0, 1092, 1315, 0, 0, 0, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1486, 97, 1489, 97, 97, 97, 1117, 97, 97, 97, 97, 1122, 97, 97, 97, 97, 97, 97, 97, 1146, 97, 97, 97, 97, 97, 97, 97, 97, 881, 97, 97, 97, 886, 97, 97, 97, 1311, 0, 0, 0, 0, 0, 0, 0, 0, 97, 97, 97, 97, 97, 97, 97, 1615, 97, 97, 97, 97, 97, 1619, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1631, 97, 97, 1847, 97, 45, 45, 45, 45, 1852, 45, 45, 45, 45, 45, 45, 45, 1235, 45, 45, 45, 67, 67, 67, 67, 67, 1868, 67, 67, 67, 1872, 67, 67, 67, 67, 67, 97, 97, 97, 97, 1882, 0, 0, 0, 97, 97, 97, 97, 0, 1891, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 1929, 0, 0, 97, 97, 97, 97, 97, 97, 45, 1900, 45, 1901, 45, 45, 45, 1905, 45, 67, 2054, 97, 45, 67, 0, 97, 45, 67, 0, 97, 45, 67, 97, 0, 0, 97, 2037, 2038, 97, 97, 45, 45, 45, 45, 67, 67, 67, 67, 1867, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1774, 97, 97, 97, 97, 97, 97, 0, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 28809, 45, 45, 142, 45, 45, 45, 1412, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 432, 45, 45, 45, 45, 45, 157, 45, 45, 171, 45, 45, 45, 182, 45, 45, 45, 45, 200, 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 1551, 45, 45, 45, 45, 1181, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1211, 45, 45, 45, 1214, 45, 45, 45, 67, 209, 67, 67, 67, 224, 67, 67, 238, 67, 67, 67, 249, 67, 0, 97, 2056, 2057, 0, 2059, 45, 67, 0, 97, 45, 67, 97, 0, 0, 1937, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 1741, 45, 45, 45, 45, 45, 45, 67, 67, 67, 267, 67, 67, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 97, 97, 289, 97, 97, 97, 304, 97, 97, 318, 97, 97, 97, 329, 97, 97, 0, 0, 97, 1783, 97, 97, 97, 97, 0, 0, 97, 97, 0, 97, 97, 97, 45, 2026, 45, 45, 45, 45, 67, 2030, 67, 67, 67, 67, 67, 67, 1041, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1044, 67, 67, 67, 67, 67, 67, 97, 97, 347, 97, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 45, 666, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1420, 45, 57889, 0, 0, 54074, 54074, 550, 0, 97, 97, 97, 97, 97, 97, 97, 97, 840, 67, 1007, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 759, 67, 67, 67, 67, 67, 67, 67, 1052, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1031, 67, 67, 67, 67, 67, 97, 97, 97, 1101, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 592, 97, 97, 97, 1190, 45, 45, 45, 45, 45, 1195, 45, 1197, 45, 45, 45, 45, 1201, 45, 45, 45, 45, 1952, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 250, 67, 67, 67, 1255, 67, 1257, 67, 67, 67, 67, 1261, 67, 67, 67, 67, 67, 67, 67, 67, 1685, 67, 67, 67, 67, 67, 67, 67, 0, 24851, 12565, 0, 0, 0, 0, 28809, 53532, 67, 67, 1267, 67, 67, 67, 67, 67, 67, 1273, 67, 67, 67, 67, 67, 67, 67, 67, 1696, 67, 67, 67, 67, 67, 67, 67, 0, 0, 0, 0, 0, 0, 2162688, 0, 0, 1281, 67, 67, 67, 67, 1285, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1070, 67, 67, 67, 67, 67, 1335, 97, 1337, 97, 97, 97, 97, 1341, 97, 97, 97, 97, 97, 97, 97, 97, 882, 97, 97, 97, 97, 97, 97, 97, 1347, 97, 97, 97, 97, 97, 97, 1353, 97, 97, 97, 97, 97, 97, 1361, 97, 18, 131427, 0, 638, 0, 0, 0, 0, 362, 0, 0, 365, 29315, 367, 0, 544, 0, 550, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2473984, 2158592, 2158592, 2158592, 2990080, 2158592, 2158592, 2207744, 2207744, 2482176, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 0, 0, 0, 0, 0, 0, 2162688, 0, 53530, 97, 97, 97, 1365, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 608, 97, 97, 97, 45, 45, 1424, 45, 1425, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1058, 67, 67, 67, 67, 45, 1555, 45, 45, 1557, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 707, 45, 45, 45, 45, 67, 67, 1570, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 773, 67, 67, 1595, 67, 67, 1597, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, 2158592, 2158592, 2158592, 2404352, 2412544, 97, 97, 97, 1636, 97, 97, 97, 1639, 97, 97, 1641, 97, 97, 97, 97, 97, 97, 1173, 0, 921, 0, 0, 0, 0, 0, 0, 45, 67, 67, 67, 1693, 67, 67, 67, 67, 67, 67, 67, 1698, 67, 67, 67, 67, 67, 67, 67, 1773, 67, 97, 97, 97, 97, 97, 97, 97, 625, 97, 97, 97, 97, 97, 97, 97, 97, 850, 97, 97, 97, 97, 97, 97, 97, 97, 880, 97, 97, 97, 97, 97, 97, 97, 97, 1106, 97, 97, 97, 97, 97, 97, 97, 1860, 45, 45, 67, 67, 1865, 67, 67, 67, 67, 1870, 67, 67, 67, 67, 1875, 67, 67, 97, 97, 1880, 97, 97, 0, 0, 0, 97, 97, 1888, 97, 0, 0, 0, 1938, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 1854, 45, 45, 45, 45, 45, 45, 45, 1909, 45, 45, 1911, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1248, 67, 67, 67, 67, 67, 67, 1922, 67, 67, 1924, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 97, 1898, 45, 45, 45, 45, 45, 45, 1904, 45, 45, 67, 67, 67, 67, 97, 97, 97, 97, 0, 0, 16384, 97, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 1724, 2008, 2009, 45, 45, 67, 67, 67, 2014, 2015, 67, 67, 97, 97, 0, 0, 97, 97, 97, 0, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 2022, 0, 2023, 97, 97, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 1869, 67, 67, 67, 67, 67, 67, 0, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 28809, 45, 45, 45, 147, 151, 154, 45, 162, 45, 45, 176, 178, 181, 45, 45, 45, 192, 196, 45, 45, 45, 45, 2012, 67, 67, 67, 67, 67, 67, 2018, 97, 0, 0, 97, 1978, 97, 97, 97, 1982, 45, 45, 45, 45, 45, 45, 45, 45, 45, 972, 973, 45, 45, 45, 45, 45, 67, 259, 263, 67, 67, 67, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 97, 97, 97, 294, 298, 301, 97, 309, 97, 97, 323, 325, 328, 97, 97, 97, 97, 97, 560, 97, 97, 97, 569, 97, 97, 97, 97, 97, 97, 306, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1624, 97, 97, 97, 97, 97, 97, 97, 0, 921, 0, 1175, 0, 0, 0, 0, 45, 339, 343, 97, 97, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 67, 67, 503, 67, 67, 67, 67, 67, 67, 67, 67, 67, 512, 67, 67, 519, 97, 97, 600, 97, 97, 97, 97, 97, 97, 97, 97, 97, 609, 97, 97, 616, 45, 649, 45, 45, 45, 45, 45, 654, 45, 45, 45, 45, 45, 45, 45, 45, 1393, 45, 45, 45, 45, 45, 45, 45, 45, 1209, 45, 45, 45, 45, 45, 45, 45, 67, 763, 67, 67, 67, 67, 67, 67, 67, 67, 770, 67, 67, 67, 774, 67, 0, 2045, 97, 97, 97, 97, 45, 45, 67, 67, 0, 0, 97, 97, 45, 45, 45, 994, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 213, 67, 219, 67, 67, 232, 67, 242, 67, 247, 67, 67, 67, 779, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1018, 67, 67, 67, 67, 811, 67, 67, 67, 67, 67, 67, 67, 67, 67, 25398, 542, 13112, 544, 57889, 0, 0, 54074, 54074, 550, 0, 97, 834, 97, 97, 97, 97, 97, 839, 97, 18, 131427, 0, 638, 0, 0, 0, 0, 362, 0, 0, 365, 29315, 367, 645, 97, 97, 861, 97, 97, 97, 97, 97, 97, 97, 97, 868, 97, 97, 97, 872, 97, 97, 877, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 613, 97, 97, 97, 97, 97, 909, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 0, 18, 18, 24, 24, 27, 27, 27, 1036, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1047, 67, 67, 67, 1050, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1033, 67, 67, 67, 97, 97, 1130, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 638, 0, 0, 67, 67, 67, 1295, 67, 67, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 1317, 97, 97, 97, 97, 97, 97, 1375, 97, 97, 97, 0, 0, 0, 45, 1379, 45, 45, 45, 45, 45, 45, 422, 45, 45, 45, 429, 431, 45, 45, 45, 45, 0, 1090, 0, 0, 97, 1479, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1357, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1716, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1723, 0, 921, 29315, 0, 0, 0, 0, 45, 929, 45, 45, 45, 45, 45, 45, 45, 1392, 45, 45, 45, 45, 45, 45, 45, 45, 45, 960, 45, 45, 45, 45, 45, 45, 97, 97, 97, 1738, 45, 45, 45, 45, 45, 45, 45, 1743, 45, 45, 45, 45, 166, 45, 45, 45, 45, 184, 186, 45, 45, 197, 45, 45, 97, 1779, 0, 0, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 0, 97, 18, 131427, 0, 638, 0, 0, 0, 0, 362, 0, 640, 365, 29315, 367, 0, 921, 29315, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1537, 45, 45, 45, 45, 45, 1803, 45, 45, 45, 45, 45, 1809, 45, 45, 45, 67, 67, 67, 1814, 67, 67, 67, 67, 67, 67, 1821, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 0, 0, 67, 67, 67, 1818, 67, 67, 67, 67, 67, 1824, 67, 67, 67, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 1890, 0, 1829, 97, 97, 0, 0, 97, 97, 1836, 97, 97, 0, 0, 0, 97, 97, 97, 97, 1981, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1987, 1845, 97, 97, 97, 45, 45, 45, 45, 45, 1853, 45, 45, 45, 1857, 45, 45, 45, 67, 1864, 67, 1866, 67, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 97, 97, 1710, 1711, 67, 67, 97, 97, 97, 97, 97, 0, 0, 0, 1886, 97, 97, 97, 0, 0, 97, 97, 97, 97, 1838, 0, 0, 0, 97, 1843, 97, 0, 1893, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1745, 45, 45, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 0, 0, 1931, 97, 97, 97, 97, 97, 588, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 629, 97, 97, 97, 97, 97, 67, 2044, 0, 97, 97, 97, 97, 45, 45, 67, 67, 0, 0, 97, 97, 45, 45, 45, 1660, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 453, 45, 455, 67, 67, 67, 67, 268, 67, 67, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 97, 97, 348, 97, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 131427, 0, 359, 0, 0, 362, 0, 365, 28809, 367, 139, 45, 45, 45, 45, 45, 421, 45, 45, 45, 45, 45, 45, 45, 434, 45, 45, 695, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1667, 45, 0, 921, 29315, 0, 925, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1811, 45, 67, 67, 67, 67, 67, 67, 1037, 67, 1039, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1277, 67, 67, 67, 67, 67, 67, 67, 67, 25398, 0, 13112, 0, 54074, 0, 0, 0, 1095, 0, 0, 0, 1096, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 869, 97, 97, 97, 97, 97, 97, 1131, 97, 1133, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1370, 97, 97, 97, 97, 97, 1312, 0, 0, 0, 0, 1096, 0, 0, 0, 97, 97, 97, 97, 97, 97, 97, 1327, 97, 97, 97, 97, 97, 1332, 97, 97, 97, 1830, 97, 0, 0, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 1896, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1548, 45, 45, 45, 45, 45, 45, 133, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 28809, 45, 45, 45, 45, 380, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 401, 45, 45, 158, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1200, 45, 45, 45, 45, 206, 67, 67, 67, 67, 67, 225, 67, 67, 67, 67, 67, 67, 67, 67, 754, 67, 67, 67, 67, 67, 67, 67, 57889, 0, 0, 54074, 54074, 550, 832, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1342, 97, 97, 97, 97, 97, 97, 67, 67, 67, 67, 67, 25398, 1083, 13112, 1087, 54074, 1091, 0, 0, 0, 0, 0, 0, 1316, 0, 831, 97, 97, 97, 97, 97, 97, 97, 1174, 921, 0, 1175, 0, 0, 0, 0, 45, 0, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 28809, 45, 45, 45, 148, 67, 67, 264, 67, 67, 67, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 97, 97, 97, 295, 97, 97, 97, 97, 313, 97, 97, 97, 97, 331, 333, 97, 18, 131427, 356, 638, 0, 0, 0, 0, 362, 0, 0, 365, 0, 367, 0, 45, 45, 1530, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 988, 45, 45, 45, 97, 344, 97, 97, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 402, 404, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1756, 67, 438, 45, 45, 45, 45, 45, 45, 45, 45, 449, 450, 45, 45, 45, 67, 67, 214, 218, 221, 67, 229, 67, 67, 243, 245, 248, 67, 67, 67, 67, 67, 488, 490, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1071, 67, 1073, 67, 67, 67, 67, 67, 524, 67, 67, 67, 67, 67, 67, 67, 67, 535, 536, 67, 67, 67, 67, 67, 67, 1683, 1684, 67, 67, 67, 67, 1688, 1689, 67, 67, 67, 67, 67, 67, 1586, 67, 67, 67, 67, 67, 67, 67, 67, 67, 469, 67, 67, 67, 67, 67, 67, 97, 97, 97, 585, 587, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1163, 97, 97, 97, 97, 97, 97, 97, 621, 97, 97, 97, 97, 97, 97, 97, 97, 632, 633, 97, 97, 0, 0, 1782, 97, 97, 97, 97, 97, 0, 0, 97, 97, 0, 97, 712, 45, 45, 45, 717, 45, 45, 45, 45, 45, 45, 45, 45, 725, 45, 45, 45, 163, 167, 173, 177, 45, 45, 45, 45, 45, 193, 45, 45, 45, 45, 982, 45, 45, 45, 45, 45, 45, 987, 45, 45, 45, 45, 45, 1558, 45, 1560, 45, 45, 45, 45, 45, 45, 45, 45, 704, 705, 45, 45, 45, 45, 45, 45, 45, 45, 731, 45, 45, 45, 67, 67, 67, 67, 67, 739, 67, 67, 67, 67, 67, 67, 273, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 67, 67, 67, 764, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1290, 67, 67, 67, 67, 67, 67, 812, 67, 67, 67, 67, 818, 67, 67, 67, 25398, 542, 13112, 544, 57889, 0, 0, 54074, 54074, 550, 0, 97, 97, 97, 97, 97, 837, 97, 97, 97, 97, 97, 602, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1137, 97, 97, 97, 97, 97, 97, 97, 97, 97, 862, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1627, 97, 97, 97, 0, 97, 97, 97, 97, 910, 97, 97, 97, 97, 916, 97, 97, 97, 0, 0, 0, 97, 97, 1940, 97, 97, 1942, 45, 45, 45, 45, 45, 45, 385, 45, 45, 45, 45, 395, 45, 45, 45, 45, 966, 45, 969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 975, 45, 45, 45, 406, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 974, 45, 45, 45, 67, 67, 67, 67, 1010, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1262, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1040, 67, 1042, 67, 1045, 67, 67, 67, 67, 67, 67, 67, 97, 1706, 97, 97, 97, 1709, 97, 97, 97, 67, 67, 67, 67, 1051, 67, 67, 67, 67, 67, 1057, 67, 67, 67, 67, 67, 67, 67, 1443, 67, 67, 1446, 67, 67, 67, 67, 67, 67, 67, 1297, 0, 0, 0, 1303, 0, 0, 0, 1309, 67, 67, 67, 67, 1079, 25398, 0, 13112, 0, 54074, 0, 0, 0, 0, 0, 0, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2207744, 2207744, 2207744, 2207744, 2207744, 2572288, 2207744, 2207744, 2207744, 1098, 97, 97, 97, 97, 97, 1104, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1356, 97, 97, 97, 97, 97, 97, 1128, 97, 97, 97, 97, 97, 97, 1134, 97, 1136, 97, 1139, 97, 97, 97, 97, 97, 97, 1622, 97, 97, 97, 97, 97, 97, 97, 97, 0, 921, 0, 0, 0, 1176, 0, 646, 45, 67, 67, 67, 1268, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1469, 67, 67, 67, 97, 1348, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1127, 97, 67, 1569, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1448, 1449, 67, 1816, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1825, 67, 67, 1827, 97, 97, 0, 1781, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 0, 97, 97, 97, 1831, 0, 0, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 1980, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1395, 45, 45, 45, 45, 45, 97, 1846, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1212, 45, 45, 45, 45, 45, 45, 2010, 45, 67, 67, 67, 67, 67, 2016, 67, 97, 97, 0, 0, 97, 97, 97, 0, 97, 97, 97, 97, 97, 45, 45, 2007, 0, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 28809, 45, 45, 143, 45, 45, 45, 1671, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 1813, 67, 67, 1815, 45, 45, 67, 210, 67, 67, 67, 67, 67, 67, 239, 67, 67, 67, 67, 67, 67, 67, 1454, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1445, 67, 67, 67, 67, 67, 67, 97, 97, 290, 97, 97, 97, 97, 97, 97, 319, 97, 97, 97, 97, 97, 97, 303, 97, 97, 317, 97, 97, 97, 97, 97, 97, 305, 97, 97, 97, 97, 97, 97, 97, 97, 97, 899, 97, 97, 97, 97, 97, 97, 375, 45, 45, 45, 379, 45, 45, 390, 45, 45, 394, 45, 45, 45, 45, 45, 443, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 461, 67, 67, 67, 465, 67, 67, 476, 67, 67, 480, 67, 67, 67, 67, 67, 67, 1694, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1288, 67, 67, 67, 67, 67, 67, 500, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1075, 97, 97, 97, 558, 97, 97, 97, 562, 97, 97, 573, 97, 97, 577, 97, 97, 97, 97, 97, 895, 97, 97, 97, 97, 97, 97, 903, 97, 97, 97, 0, 97, 97, 1638, 97, 97, 97, 97, 97, 97, 97, 97, 1646, 597, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1334, 45, 681, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1396, 45, 45, 1399, 45, 45, 730, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1434, 67, 67, 67, 67, 67, 67, 750, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1456, 67, 67, 67, 67, 67, 45, 45, 993, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 1238, 67, 67, 1006, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1280, 1048, 1049, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1059, 67, 67, 67, 67, 67, 67, 1286, 67, 67, 67, 67, 67, 67, 67, 1291, 67, 97, 97, 1100, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 638, 0, 920, 97, 97, 1142, 1143, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1153, 97, 97, 97, 97, 97, 1158, 97, 97, 97, 1161, 97, 97, 97, 97, 1166, 97, 97, 97, 97, 97, 1325, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1328, 97, 97, 97, 97, 97, 97, 97, 45, 1218, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1678, 45, 45, 45, 67, 67, 67, 67, 67, 1269, 67, 67, 67, 67, 67, 67, 67, 67, 1278, 67, 67, 67, 67, 67, 67, 1761, 67, 67, 67, 67, 67, 67, 67, 67, 67, 530, 67, 67, 67, 67, 67, 67, 97, 97, 1349, 97, 97, 97, 97, 97, 97, 97, 97, 1358, 97, 97, 97, 97, 97, 97, 1623, 97, 97, 97, 97, 97, 97, 97, 97, 0, 921, 0, 0, 926, 0, 0, 0, 45, 45, 1411, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1754, 45, 45, 67, 67, 1301, 0, 1307, 0, 1313, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 21054, 97, 97, 97, 97, 67, 1757, 67, 67, 67, 1760, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1467, 67, 67, 67, 67, 67, 1778, 97, 0, 0, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 0, 97, 97, 97, 97, 97, 1352, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1511, 97, 97, 97, 97, 97, 67, 67, 67, 67, 67, 1820, 67, 1822, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 0, 0, 0, 97, 1933, 97, 1892, 97, 97, 97, 97, 97, 97, 1899, 45, 45, 45, 45, 45, 45, 45, 45, 1664, 45, 45, 45, 45, 45, 45, 45, 45, 1546, 45, 45, 45, 45, 45, 45, 45, 45, 1208, 45, 45, 45, 45, 45, 45, 45, 45, 1224, 45, 45, 45, 45, 45, 45, 45, 45, 673, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 1925, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 97, 623, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 307, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1796, 97, 45, 45, 45, 45, 45, 45, 45, 970, 45, 45, 45, 45, 45, 45, 45, 45, 1417, 45, 45, 45, 45, 45, 45, 45, 67, 1964, 67, 67, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 1721, 97, 97, 0, 0, 1997, 97, 0, 0, 2000, 97, 97, 0, 97, 97, 97, 97, 97, 45, 45, 45, 45, 733, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 803, 67, 67, 67, 67, 67, 0, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 28809, 45, 45, 144, 45, 45, 45, 1805, 45, 1807, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 231, 67, 67, 67, 67, 67, 67, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 45, 45, 67, 211, 67, 67, 67, 67, 230, 234, 240, 244, 67, 67, 67, 67, 67, 67, 464, 67, 67, 67, 67, 67, 67, 479, 67, 67, 67, 260, 67, 67, 67, 67, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 97, 97, 291, 97, 97, 97, 97, 310, 314, 320, 324, 97, 97, 97, 97, 97, 97, 1367, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1355, 97, 97, 97, 97, 97, 97, 1362, 340, 97, 97, 97, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 131427, 0, 0, 360, 0, 362, 0, 365, 28809, 367, 139, 369, 45, 45, 45, 374, 67, 67, 460, 67, 67, 67, 67, 466, 67, 67, 67, 67, 67, 67, 67, 67, 801, 67, 67, 67, 67, 67, 67, 67, 67, 67, 487, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 498, 67, 67, 67, 67, 67, 67, 1772, 67, 67, 97, 97, 97, 97, 97, 97, 97, 0, 921, 922, 1175, 0, 0, 0, 0, 45, 67, 502, 67, 67, 67, 67, 67, 67, 67, 508, 67, 67, 67, 515, 517, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 0, 0, 0, 1932, 97, 97, 0, 1999, 97, 97, 97, 0, 97, 97, 2004, 2005, 97, 45, 45, 45, 45, 1193, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 676, 45, 45, 45, 45, 67, 24850, 24850, 12564, 12564, 0, 57889, 0, 0, 0, 53531, 53531, 367, 286, 552, 97, 97, 97, 97, 97, 1377, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 655, 45, 45, 45, 45, 45, 45, 45, 97, 97, 557, 97, 97, 97, 97, 563, 97, 97, 97, 97, 97, 97, 97, 97, 1135, 97, 97, 97, 97, 97, 97, 97, 97, 97, 584, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 595, 97, 97, 97, 97, 97, 911, 97, 97, 97, 97, 97, 97, 97, 638, 0, 0, 0, 0, 1315, 0, 0, 0, 0, 97, 97, 97, 1319, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 1733, 97, 97, 97, 97, 97, 97, 1340, 97, 97, 97, 1343, 97, 97, 1345, 97, 1346, 97, 599, 97, 97, 97, 97, 97, 97, 97, 605, 97, 97, 97, 612, 614, 97, 97, 97, 97, 97, 1794, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 1207, 45, 45, 45, 45, 45, 45, 1213, 45, 45, 745, 67, 67, 67, 67, 751, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1577, 67, 67, 67, 67, 67, 762, 67, 67, 67, 67, 766, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1765, 67, 67, 67, 67, 67, 777, 67, 67, 781, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1592, 1593, 67, 67, 97, 843, 97, 97, 97, 97, 849, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1510, 97, 97, 97, 97, 97, 97, 97, 860, 97, 97, 97, 97, 864, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1797, 45, 45, 45, 45, 1801, 45, 97, 875, 97, 97, 879, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1522, 97, 97, 97, 97, 97, 991, 45, 45, 45, 45, 996, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 215, 67, 67, 67, 67, 233, 67, 67, 67, 67, 251, 253, 1022, 67, 67, 67, 1026, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1035, 67, 67, 1038, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1458, 67, 67, 67, 67, 67, 1064, 67, 67, 67, 1067, 67, 67, 67, 67, 1072, 67, 67, 67, 67, 67, 67, 1296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2367488, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 67, 67, 67, 67, 67, 25398, 0, 13112, 0, 54074, 0, 0, 0, 0, 1096, 0, 921, 29315, 0, 0, 0, 0, 928, 45, 45, 45, 45, 45, 934, 45, 45, 45, 164, 45, 45, 45, 45, 45, 45, 45, 45, 45, 198, 45, 45, 45, 378, 45, 45, 45, 45, 45, 45, 393, 45, 45, 45, 398, 45, 97, 97, 1116, 97, 97, 97, 1120, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1147, 1148, 97, 97, 97, 97, 97, 97, 97, 1129, 97, 97, 1132, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1626, 97, 97, 97, 97, 0, 45, 1178, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1185, 45, 45, 45, 45, 441, 45, 45, 45, 45, 45, 45, 451, 45, 45, 67, 67, 67, 67, 67, 227, 67, 67, 67, 67, 67, 67, 67, 67, 1260, 67, 67, 67, 1263, 67, 67, 1265, 1203, 45, 45, 1205, 45, 1206, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1216, 67, 1266, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1276, 67, 67, 67, 67, 67, 67, 492, 67, 67, 67, 67, 67, 67, 67, 67, 67, 471, 67, 67, 67, 67, 481, 67, 45, 1386, 45, 1389, 45, 45, 45, 45, 1394, 45, 45, 45, 1397, 45, 45, 45, 45, 995, 45, 997, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 1915, 67, 67, 67, 67, 67, 1422, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1433, 67, 1436, 67, 67, 67, 67, 1441, 67, 67, 67, 1444, 67, 67, 67, 67, 67, 67, 67, 0, 24850, 12564, 0, 0, 0, 281, 28809, 53531, 97, 97, 97, 97, 1494, 97, 97, 97, 1497, 97, 97, 97, 97, 97, 97, 97, 1368, 97, 97, 97, 97, 97, 97, 97, 97, 851, 97, 97, 97, 97, 97, 97, 97, 67, 67, 67, 1571, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 25398, 542, 13112, 544, 67, 67, 1583, 67, 67, 67, 67, 67, 67, 67, 67, 1591, 67, 67, 67, 67, 67, 67, 752, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1056, 67, 67, 67, 67, 67, 67, 97, 1634, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1125, 97, 97, 97, 1647, 97, 97, 97, 97, 97, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1183, 45, 45, 45, 45, 45, 45, 45, 45, 45, 409, 45, 45, 45, 45, 45, 45, 1658, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1668, 1712, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 1835, 97, 97, 97, 97, 0, 0, 0, 97, 97, 1844, 97, 97, 1726, 0, 97, 97, 97, 97, 97, 1732, 97, 1734, 97, 97, 97, 97, 97, 300, 97, 308, 97, 97, 97, 97, 97, 97, 97, 97, 866, 97, 97, 97, 97, 97, 97, 97, 67, 67, 67, 1758, 67, 67, 67, 1762, 67, 67, 67, 67, 67, 67, 67, 67, 1043, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1771, 67, 67, 67, 97, 97, 97, 97, 97, 1776, 97, 97, 97, 97, 297, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1108, 97, 97, 97, 97, 67, 67, 67, 1966, 97, 97, 97, 1970, 0, 0, 0, 97, 97, 97, 97, 0, 97, 97, 97, 1720, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 1837, 97, 0, 1840, 1841, 97, 97, 97, 1988, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1994, 1995, 67, 97, 97, 97, 97, 97, 1103, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 917, 97, 97, 0, 0, 0, 67, 67, 265, 67, 67, 67, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 97, 345, 97, 97, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 131427, 0, 0, 0, 361, 362, 0, 365, 28809, 367, 139, 45, 45, 45, 45, 45, 671, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 411, 45, 45, 414, 45, 45, 45, 45, 377, 45, 45, 45, 386, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1223, 45, 45, 45, 45, 45, 45, 45, 45, 45, 426, 45, 45, 433, 45, 45, 45, 67, 67, 67, 67, 67, 463, 67, 67, 67, 472, 67, 67, 67, 67, 67, 67, 67, 527, 67, 67, 67, 67, 67, 67, 537, 67, 540, 24850, 24850, 12564, 12564, 0, 57889, 0, 0, 0, 53531, 53531, 367, 286, 97, 97, 97, 97, 97, 1119, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1509, 97, 97, 97, 97, 97, 97, 97, 97, 564, 97, 97, 97, 97, 97, 97, 97, 637, 18, 131427, 0, 0, 0, 0, 0, 0, 362, 0, 0, 365, 29315, 367, 0, 921, 29315, 0, 0, 0, 927, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1234, 45, 45, 45, 45, 67, 67, 67, 67, 1240, 45, 697, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 708, 45, 45, 45, 45, 1221, 45, 45, 45, 45, 1225, 45, 45, 45, 45, 45, 45, 384, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1210, 45, 45, 45, 45, 45, 45, 67, 67, 795, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1470, 67, 67, 67, 67, 67, 67, 67, 815, 67, 67, 67, 67, 67, 67, 25398, 542, 13112, 544, 97, 97, 97, 893, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1164, 97, 97, 97, 67, 67, 67, 1025, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1687, 67, 67, 67, 67, 67, 67, 67, 67, 67, 25398, 0, 13112, 0, 54074, 0, 0, 0, 0, 0, 1097, 1241, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1450, 45, 45, 1388, 45, 1390, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1236, 67, 67, 67, 67, 67, 1437, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1472, 1490, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1503, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 0, 1930, 0, 97, 97, 97, 97, 97, 847, 97, 97, 97, 97, 97, 97, 97, 97, 97, 858, 67, 67, 1965, 67, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 0, 97, 97, 1719, 97, 97, 97, 97, 97, 97, 0, 0, 0, 45, 45, 45, 45, 1382, 45, 1383, 45, 45, 45, 159, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1563, 45, 45, 45, 45, 45, 67, 261, 67, 67, 67, 67, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 341, 97, 97, 97, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 97, 1099, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1333, 97, 1230, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 1992, 67, 1993, 67, 67, 67, 97, 97, 45, 45, 160, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1665, 45, 45, 45, 45, 45, 131427, 357, 0, 0, 0, 362, 0, 365, 28809, 367, 139, 45, 45, 45, 45, 45, 684, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 412, 45, 45, 45, 416, 45, 45, 45, 440, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 1990, 67, 1991, 67, 67, 67, 67, 67, 67, 67, 97, 97, 1707, 97, 97, 97, 97, 97, 97, 501, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1691, 67, 67, 67, 67, 67, 526, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1030, 67, 1032, 67, 67, 67, 67, 598, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1632, 0, 921, 29315, 923, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1404, 45, 45, 45, 45, 45, 45, 45, 45, 45, 425, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 25398, 0, 13112, 0, 54074, 0, 0, 1093, 0, 0, 0, 0, 0, 97, 1609, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1369, 97, 97, 97, 1372, 97, 97, 67, 67, 266, 67, 67, 67, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 97, 346, 97, 97, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 665, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1677, 45, 45, 45, 45, 67, 45, 45, 954, 45, 956, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1545, 45, 45, 45, 45, 45, 45, 45, 45, 45, 448, 45, 45, 45, 45, 67, 456, 67, 67, 67, 67, 67, 1270, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1069, 67, 67, 67, 67, 67, 67, 97, 97, 97, 1350, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1524, 97, 97, 97, 97, 97, 97, 97, 1376, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 1559, 1561, 45, 45, 45, 1564, 45, 1566, 1567, 45, 67, 67, 67, 67, 67, 1573, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1247, 67, 67, 67, 67, 67, 1252, 97, 1725, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1628, 97, 1630, 0, 0, 94242, 0, 0, 0, 2211840, 0, 1118208, 0, 0, 0, 0, 2158592, 2158731, 2158592, 2158592, 2158592, 3117056, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 3018752, 2158592, 3043328, 2158592, 2158592, 2158592, 2158592, 3080192, 2158592, 2158592, 3112960, 2158592, 2158592, 2158592, 2158592, 2158592, 2158878, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2605056, 2158592, 2158592, 2207744, 0, 542, 0, 544, 0, 0, 2166784, 0, 0, 0, 550, 0, 0, 2158592, 2158592, 2686976, 2158592, 2715648, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2867200, 2158592, 2904064, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 0, 94242, 0, 0, 0, 2211840, 0, 0, 1130496, 0, 0, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 3186688, 2158592, 0, 0, 139, 0, 0, 0, 139, 0, 2367488, 2207744, 0, 0, 0, 0, 176128, 0, 2166784, 0, 0, 0, 0, 0, 286, 2158592, 2158592, 3170304, 3174400, 2158592, 0, 0, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2424832, 2158592, 2158592, 2158592, 1508, 2158592, 2908160, 2158592, 2158592, 2158592, 2977792, 2158592, 2158592, 2158592, 2158592, 3039232, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 3158016, 67, 24850, 24850, 12564, 12564, 0, 0, 0, 0, 0, 53531, 53531, 0, 286, 97, 97, 97, 97, 97, 1144, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1149, 97, 97, 97, 97, 1154, 57889, 0, 0, 0, 0, 550, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 561, 97, 97, 97, 97, 97, 97, 576, 97, 97, 139264, 139264, 139264, 139264, 139264, 139264, 139264, 139264, 139264, 139264, 139264, 139264, 0, 0, 139264, 0, 921, 29315, 0, 0, 926, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 719, 720, 45, 45, 45, 45, 45, 45, 45, 45, 685, 45, 45, 45, 45, 45, 45, 45, 45, 45, 942, 45, 45, 946, 45, 45, 45, 950, 45, 45, 0, 2146304, 2146304, 0, 0, 0, 0, 2224128, 2224128, 2224128, 2232320, 2232320, 2232320, 2232320, 0, 0, 1301, 0, 0, 0, 0, 0, 1307, 0, 0, 0, 0, 0, 1313, 0, 0, 0, 0, 0, 0, 0, 97, 97, 1318, 97, 97, 97, 97, 97, 97, 1795, 97, 97, 45, 45, 45, 45, 45, 45, 45, 446, 45, 45, 45, 45, 45, 45, 67, 67, 2158592, 2146304, 0, 0, 0, 0, 0, 0, 0, 2211840, 0, 0, 0, 0, 2158592, 0, 921, 29315, 0, 924, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1000, 45, 45, 45, 45, 67, 67\n];\n\nXQueryTokenizer.EXPECTED =\n[ 290, 300, 304, 353, 296, 309, 305, 319, 315, 324, 328, 352, 354, 334, 338, 330, 320, 345, 349, 293, 358, 362, 341, 366, 312, 370, 374, 378, 382, 386, 390, 394, 398, 737, 402, 634, 439, 604, 634, 634, 634, 634, 408, 634, 634, 634, 404, 634, 634, 634, 457, 634, 634, 963, 634, 634, 413, 634, 634, 634, 634, 634, 634, 634, 663, 418, 422, 903, 902, 426, 431, 548, 634, 437, 521, 919, 443, 615, 409, 449, 455, 624, 731, 751, 634, 461, 465, 672, 470, 469, 474, 481, 485, 477, 489, 493, 629, 542, 497, 505, 603, 602, 991, 648, 510, 804, 634, 515, 958, 526, 525, 530, 768, 634, 546, 552, 711, 710, 593, 558, 562, 618, 566, 570, 574, 578, 582, 586, 590, 608, 612, 660, 822, 821, 634, 622, 596, 444, 628, 533, 724, 633, 640, 653, 647, 652, 536, 1008, 451, 450, 445, 657, 670, 676, 685, 689, 693, 697, 701, 704, 707, 715, 719, 798, 815, 634, 723, 762, 996, 634, 728, 969, 730, 735, 908, 634, 741, 679, 889, 511, 747, 634, 750, 755, 499, 666, 499, 501, 759, 772, 776, 780, 634, 787, 784, 797, 802, 809, 808, 427, 814, 1006, 517, 634, 519, 853, 634, 813, 850, 793, 634, 819, 826, 833, 832, 837, 843, 847, 857, 861, 863, 867, 871, 875, 879, 883, 643, 887, 539, 980, 979, 634, 893, 944, 634, 900, 896, 634, 907, 933, 506, 912, 917, 828, 433, 636, 635, 554, 961, 923, 930, 927, 937, 941, 634, 634, 634, 974, 948, 952, 985, 913, 968, 967, 743, 634, 973, 839, 634, 978, 599, 634, 984, 989, 765, 444, 995, 1000, 634, 1003, 790, 955, 1012, 681, 634, 634, 634, 634, 634, 414, 1016, 1020, 1024, 1085, 1027, 1090, 1090, 1046, 1080, 1137, 1108, 1215, 1049, 1032, 1039, 1085, 1085, 1085, 1085, 1058, 1062, 1068, 1085, 1086, 1090, 1090, 1091, 1072, 1064, 1107, 1090, 1090, 1090, 1118, 1123, 1138, 1078, 1074, 1084, 1085, 1085, 1085, 1087, 1090, 1062, 1052, 1060, 1114, 1062, 1104, 1085, 1085, 1090, 1090, 1028, 1122, 1063, 1128, 1139, 1127, 1158, 1085, 1085, 1151, 1090, 1090, 1090, 1095, 1090, 1132, 1073, 1136, 1143, 1061, 1150, 1085, 1155, 1098, 1101, 1146, 1162, 1169, 1101, 1185, 1151, 1090, 1110, 1173, 1054, 1087, 1109, 1177, 1165, 1089, 1204, 1184, 1107, 1189, 1193, 1088, 1197, 1180, 1201, 1208, 1042, 1212, 1219, 1223, 1227, 1231, 1235, 1245, 1777, 1527, 1686, 1686, 1238, 1686, 1254, 1686, 1686, 1686, 1294, 1669, 1686, 1686, 1686, 1322, 1625, 1534, 1268, 1624, 1275, 1281, 1443, 1292, 1300, 1686, 1686, 1686, 1350, 1826, 1306, 1686, 1686, 1240, 2032, 1317, 1321, 1686, 1686, 1253, 1686, 1326, 1686, 1686, 1686, 1418, 1709, 1446, 1686, 1686, 1686, 1492, 1686, 1295, 1447, 1686, 1686, 1258, 1686, 1736, 1686, 1686, 1520, 1355, 1686, 1288, 1348, 1361, 1686, 1359, 1686, 1364, 1498, 1368, 1302, 1362, 1381, 1389, 1395, 1486, 1686, 1371, 1377, 1370, 1686, 1375, 1382, 1384, 1402, 1408, 1385, 1383, 1619, 1413, 1423, 1428, 1433, 1686, 1686, 1270, 1686, 1338, 1686, 1440, 1686, 1686, 1686, 1499, 1465, 1686, 1686, 1686, 1639, 1473, 1884, 1686, 1686, 1293, 1864, 1686, 1686, 1296, 1321, 1483, 1686, 1686, 1686, 1646, 1686, 1748, 1496, 1686, 1418, 1675, 1686, 1418, 1702, 1686, 1418, 1981, 1686, 1429, 1409, 1427, 1504, 1692, 1686, 1686, 1313, 1448, 1651, 1508, 1686, 1686, 1340, 1686, 1903, 1686, 1686, 1435, 1513, 1686, 1283, 1287, 1519, 1686, 1524, 1363, 1568, 1938, 1539, 1566, 1579, 1479, 1533, 1538, 1553, 1544, 1552, 1557, 1563, 1574, 1557, 1583, 1589, 1590, 1759, 1594, 1603, 1607, 1611, 1686, 1436, 1514, 1686, 1434, 1656, 1686, 1434, 1680, 1686, 1453, 1686, 1686, 1686, 1559, 1617, 1686, 1770, 1418, 1623, 1769, 1629, 1686, 1515, 1335, 1686, 1285, 1686, 1671, 1921, 1650, 1686, 1686, 1344, 1308, 1666, 1686, 1686, 1686, 1659, 1685, 1686, 1686, 1686, 1686, 1241, 1686, 1686, 1844, 1691, 1686, 1630, 1977, 1970, 1362, 1686, 1686, 1686, 1693, 1698, 1686, 1686, 1686, 1697, 1686, 1764, 1715, 1686, 1634, 1638, 1686, 1599, 1585, 1686, 1271, 1686, 1269, 1686, 1721, 1686, 1686, 1354, 1686, 1801, 1686, 1799, 1686, 1640, 1686, 1686, 1461, 1686, 1686, 1732, 1686, 1944, 1686, 1740, 1686, 1746, 1415, 1396, 1686, 1598, 1547, 1417, 1597, 1416, 1577, 1546, 1397, 1577, 1547, 1548, 1570, 1398, 1753, 1686, 1652, 1509, 1686, 1686, 1686, 1757, 1686, 1419, 1686, 1763, 1418, 1768, 1781, 1686, 1686, 1686, 1705, 1686, 2048, 1792, 1686, 1686, 1686, 1735, 1686, 1797, 1686, 1686, 1404, 1686, 1639, 1815, 1686, 1686, 1418, 2017, 1820, 1686, 1686, 1803, 1686, 1686, 1686, 1736, 1489, 1686, 1686, 1825, 1338, 1260, 1263, 1686, 1686, 1785, 1686, 1686, 1728, 1686, 1686, 1749, 1497, 1830, 1830, 1262, 1248, 1261, 1329, 1260, 1264, 1329, 1248, 1249, 1259, 1540, 1849, 1842, 1686, 1686, 1835, 1686, 1686, 1816, 1686, 1686, 1831, 1882, 1848, 1686, 1686, 1686, 1774, 2071, 1854, 1686, 1686, 1469, 1884, 1686, 1821, 1859, 1686, 1686, 1350, 1883, 1686, 1686, 1686, 1781, 1391, 1875, 1686, 1686, 1613, 1644, 1686, 1686, 1889, 1686, 1686, 1662, 1884, 1686, 1885, 1890, 1686, 1686, 1686, 1894, 1686, 1686, 1678, 1686, 1907, 1686, 1686, 1529, 1914, 1686, 1838, 1686, 1686, 1881, 1686, 1686, 1872, 1876, 1836, 1919, 1686, 1837, 1692, 1910, 1686, 1925, 1928, 1742, 1686, 1811, 1811, 1930, 1810, 1929, 1935, 1928, 1900, 1942, 1867, 1868, 1931, 1035, 1788, 1948, 1952, 1956, 1960, 1964, 1686, 1976, 1686, 1686, 1686, 2065, 1686, 1992, 2037, 1686, 1686, 1998, 2009, 1972, 2002, 1686, 1686, 1686, 2077, 1300, 2023, 1686, 1686, 1686, 1807, 2031, 1686, 1686, 1686, 1860, 1500, 2032, 1686, 1686, 1686, 2083, 1686, 2036, 1686, 1277, 1276, 2042, 1877, 1686, 1686, 2041, 1686, 1686, 2027, 2037, 2012, 1686, 2012, 1855, 1850, 1686, 2046, 1686, 1686, 2054, 1996, 1686, 1897, 1309, 2059, 2052, 1686, 2058, 1686, 1686, 2081, 1686, 1717, 1477, 1686, 1331, 1686, 1686, 1687, 1686, 1860, 1681, 1686, 1686, 1686, 1966, 1724, 1686, 1686, 1686, 1984, 2015, 1686, 1686, 1686, 1988, 1686, 2063, 1686, 1686, 1686, 2005, 1686, 1727, 1686, 1686, 1711, 1457, 2069, 1686, 1686, 1686, 2019, 2075, 1686, 1686, 1915, 1686, 1686, 1793, 1874, 1686, 1686, 1491, 1362, 1449, 1686, 1686, 1460, 2098, 2087, 2091, 2095, 2184, 2102, 2113, 2780, 2117, 2134, 2142, 2281, 2146, 2146, 2146, 2304, 2296, 2181, 2639, 2591, 2872, 2592, 2873, 2313, 2195, 2200, 2281, 2146, 2273, 2226, 2204, 2152, 2219, 2276, 2167, 2177, 2276, 2235, 2276, 2276, 2230, 2281, 2276, 2296, 2276, 2293, 2276, 2276, 2276, 2276, 2234, 2276, 2311, 2314, 2210, 2199, 2217, 2222, 2276, 2276, 2276, 2240, 2276, 2294, 2276, 2276, 2173, 2276, 2198, 2281, 2281, 2281, 2281, 2282, 2146, 2146, 2146, 2146, 2205, 2146, 2204, 2248, 2276, 2235, 2276, 2297, 2276, 2276, 2276, 2277, 2256, 2281, 2283, 2146, 2146, 2146, 2275, 2276, 2295, 2276, 2276, 2293, 2146, 2304, 2264, 2269, 2221, 2276, 2276, 2276, 2293, 2295, 2276, 2276, 2276, 2295, 2263, 2205, 2268, 2220, 2172, 2276, 2276, 2276, 2296, 2276, 2276, 2296, 2294, 2276, 2276, 2278, 2281, 2281, 2280, 2281, 2281, 2281, 2283, 2206, 2223, 2276, 2276, 2279, 2281, 2281, 2146, 2273, 2276, 2276, 2281, 2281, 2281, 2276, 2292, 2276, 2298, 2225, 2276, 2298, 2169, 2224, 2292, 2298, 2171, 2229, 2281, 2281, 2171, 2236, 2281, 2281, 2281, 2146, 2275, 2225, 2292, 2299, 2276, 2229, 2281, 2146, 2276, 2290, 2297, 2283, 2146, 2146, 2274, 2224, 2227, 2298, 2225, 2297, 2276, 2230, 2170, 2230, 2282, 2146, 2147, 2151, 2156, 2288, 2276, 2230, 2303, 2308, 2236, 2284, 2228, 2318, 2318, 2318, 2326, 2335, 2339, 2343, 2349, 2416, 2693, 2357, 2592, 2109, 2592, 2592, 2162, 2943, 2823, 2646, 2592, 2361, 2592, 2122, 2592, 2592, 2122, 2470, 2592, 2592, 2592, 2109, 2107, 2592, 2592, 2592, 2123, 2592, 2592, 2592, 2125, 2592, 2413, 2592, 2592, 2592, 2127, 2592, 2592, 2414, 2592, 2592, 2592, 2130, 2952, 2592, 2594, 2592, 2592, 2212, 2609, 2252, 2592, 2592, 2592, 2446, 2434, 2592, 2592, 2592, 2212, 2446, 2450, 2456, 2431, 2435, 2592, 2592, 2243, 2478, 2448, 2439, 2946, 2592, 2592, 2592, 2368, 2809, 2813, 2450, 2441, 2212, 2812, 2449, 2440, 2947, 2592, 2592, 2592, 2345, 2451, 2457, 2948, 2592, 2124, 2592, 2592, 2650, 2823, 2449, 2455, 2946, 2592, 2128, 2592, 2592, 2649, 2952, 2592, 2810, 2448, 2461, 2991, 2467, 2592, 2592, 2329, 2817, 2474, 2990, 2466, 2592, 2592, 2373, 2447, 2992, 2469, 2592, 2592, 2592, 2373, 2447, 2477, 2468, 2592, 2592, 2353, 2469, 2592, 2495, 2592, 2592, 2415, 2483, 2592, 2415, 2496, 2592, 2592, 2352, 2592, 2592, 2352, 2352, 2469, 2592, 2592, 2363, 2331, 2494, 2592, 2592, 2592, 2375, 2592, 2375, 2415, 2504, 2592, 2592, 2367, 2372, 2503, 2592, 2592, 2592, 2389, 2418, 2415, 2592, 2592, 2373, 2592, 2592, 2592, 2593, 2732, 2417, 2415, 2592, 2417, 2520, 2592, 2592, 2592, 2390, 2521, 2521, 2592, 2592, 2592, 2401, 2599, 2585, 2526, 2531, 2120, 2592, 2212, 2426, 2450, 2463, 2948, 2592, 2592, 2592, 2213, 2389, 2527, 2532, 2121, 2542, 2551, 2105, 2592, 2213, 2592, 2592, 2592, 2558, 2538, 2544, 2553, 2557, 2537, 2543, 2552, 2421, 2572, 2576, 2546, 2543, 2547, 2592, 2592, 2373, 2615, 2575, 2545, 2105, 2592, 2244, 2479, 2592, 2129, 2592, 2592, 2628, 2690, 2469, 2562, 2566, 2592, 2592, 2592, 2415, 2928, 2934, 2401, 2570, 2574, 2564, 2572, 2585, 2590, 2592, 2592, 2585, 2965, 2592, 2592, 2592, 2445, 2251, 2592, 2592, 2592, 2474, 2592, 2609, 2892, 2592, 2362, 2592, 2592, 2138, 2851, 2159, 2592, 2592, 2592, 2509, 2888, 2892, 2592, 2592, 2592, 2490, 2418, 2891, 2592, 2592, 2376, 2592, 2592, 2374, 2592, 2889, 2388, 2592, 2373, 2373, 2890, 2592, 2592, 2387, 2592, 2887, 2505, 2892, 2592, 2373, 2610, 2388, 2592, 2592, 2376, 2373, 2592, 2887, 2891, 2592, 2374, 2592, 2592, 2608, 2159, 2614, 2620, 2592, 2592, 2394, 2594, 2887, 2399, 2592, 2887, 2397, 2508, 2374, 2507, 2592, 2375, 2592, 2592, 2592, 2595, 2508, 2506, 2592, 2506, 2505, 2505, 2592, 2507, 2637, 2505, 2592, 2592, 2401, 2661, 2592, 2643, 2592, 2592, 2417, 2592, 2655, 2592, 2592, 2592, 2510, 2414, 2656, 2592, 2592, 2592, 2516, 2592, 2593, 2660, 2665, 2880, 2592, 2592, 2592, 2522, 2767, 2666, 2881, 2592, 2592, 2420, 2571, 2696, 2592, 2592, 2592, 2580, 2572, 2686, 2632, 2698, 2592, 2383, 2514, 2592, 2163, 2932, 2465, 2685, 2631, 2697, 2592, 2388, 2592, 2592, 2212, 2604, 2671, 2632, 2678, 2592, 2401, 2405, 2409, 2592, 2592, 2592, 2679, 2592, 2592, 2592, 2592, 2108, 2677, 2591, 2592, 2592, 2592, 2419, 2592, 2683, 2187, 2191, 2469, 2671, 2189, 2467, 2592, 2401, 2629, 2633, 2702, 2468, 2592, 2592, 2421, 2536, 2703, 2469, 2592, 2592, 2422, 2573, 2593, 2672, 2467, 2592, 2402, 2406, 2592, 2402, 2979, 2592, 2592, 2626, 2673, 2467, 2592, 2446, 2259, 2947, 2592, 2377, 2709, 2592, 2592, 2522, 2862, 2713, 2468, 2592, 2592, 2581, 2572, 2562, 2374, 2374, 2592, 2376, 2721, 2724, 2592, 2592, 2624, 2373, 2731, 2592, 2592, 2592, 2626, 2732, 2592, 2592, 2592, 2755, 2656, 2726, 2736, 2741, 2592, 2486, 2593, 2381, 2592, 2727, 2737, 2742, 2715, 2747, 2753, 2592, 2498, 2469, 2873, 2743, 2592, 2592, 2592, 2791, 2759, 2763, 2592, 2592, 2627, 2704, 2592, 2592, 2522, 2789, 2593, 2761, 2753, 2592, 2498, 2863, 2592, 2592, 2767, 2592, 2592, 2592, 2792, 2789, 2592, 2592, 2592, 2803, 2126, 2592, 2592, 2592, 2811, 2122, 2592, 2592, 2592, 2834, 2777, 2592, 2592, 2592, 2848, 2936, 2591, 2489, 2797, 2592, 2592, 2670, 2631, 2490, 2798, 2592, 2592, 2592, 2963, 2807, 2592, 2592, 2592, 2965, 2838, 2592, 2592, 2592, 2975, 2330, 2818, 2829, 2592, 2498, 2939, 2592, 2498, 2592, 2791, 2331, 2819, 2830, 2592, 2592, 2592, 2982, 2834, 2817, 2828, 2106, 2592, 2592, 2592, 2405, 2405, 2817, 2828, 2592, 2592, 2415, 2849, 2842, 2592, 2522, 2773, 2592, 2522, 2868, 2592, 2580, 2600, 2586, 2137, 2850, 2843, 2592, 2592, 2855, 2937, 2844, 2592, 2592, 2592, 2987, 2936, 2591, 2592, 2592, 2684, 2630, 2592, 2856, 2938, 2592, 2592, 2860, 2939, 2592, 2592, 2872, 2592, 2861, 2591, 2592, 2592, 2887, 2616, 2592, 2867, 2592, 2592, 2708, 2592, 2498, 2469, 2498, 2497, 2785, 2773, 2499, 2783, 2770, 2877, 2877, 2877, 2772, 2592, 2592, 2345, 2885, 2592, 2592, 2592, 2715, 2762, 2515, 2896, 2592, 2592, 2715, 2917, 2516, 2897, 2592, 2592, 2592, 2901, 2906, 2911, 2592, 2592, 2956, 2960, 2715, 2902, 2907, 2912, 2593, 2916, 2920, 2820, 2922, 2822, 2592, 2592, 2715, 2927, 2921, 2821, 2106, 2592, 2592, 2974, 2408, 2321, 2821, 2106, 2592, 2592, 2983, 2592, 2593, 2404, 2408, 2592, 2592, 2717, 2749, 2716, 2928, 2322, 2822, 2593, 2926, 2919, 2820, 2934, 2823, 2592, 2592, 2592, 2651, 2824, 2592, 2592, 2592, 2130, 2952, 2592, 2592, 2592, 2592, 2964, 2592, 2592, 2716, 2748, 2592, 2969, 2592, 2592, 2716, 2918, 2368, 2970, 2592, 2592, 2592, 2403, 2407, 2592, 2592, 2787, 2211, 2404, 2409, 2592, 2592, 2802, 2837, 2987, 2592, 2592, 2592, 2809, 2427, 2592, 2793, 2592, 2592, 2809, 2447, 1073741824, 0x80000000, 539754496, 542375936, 402653184, 554434560, 571736064, 545521856, 268451840, 335544320, 268693630, 512, 2048, 256, 1024, 0, 1024, 0, 1073741824, 0x80000000, 0, 0, 0, 8388608, 0, 0, 1073741824, 1073741824, 0, 0x80000000, 537133056, 4194304, 1048576, 268435456, -1073741824, 0, 0, 0, 1048576, 0, 0, 0, 1572864, 0, 0, 0, 4194304, 0, 134217728, 16777216, 0, 0, 32, 64, 98304, 0, 33554432, 8388608, 192, 67108864, 67108864, 67108864, 67108864, 16, 32, 4, 0, 8192, 196608, 196608, 229376, 80, 4096, 524288, 8388608, 0, 0, 32, 128, 256, 24576, 24600, 24576, 24576, 2, 24576, 24576, 24576, 24584, 24592, 24576, 24578, 24576, 24578, 24576, 24576, 16, 512, 2048, 2048, 256, 4096, 32768, 1048576, 4194304, 67108864, 134217728, 268435456, 262144, 134217728, 0, 128, 128, 64, 16384, 16384, 16384, 67108864, 32, 32, 4, 4, 4096, 262144, 134217728, 0, 0, 0, 2, 0, 8192, 131072, 131072, 4096, 4096, 4096, 4096, 24576, 24576, 24576, 8, 8, 24576, 24576, 16384, 16384, 16384, 24576, 24584, 24576, 24576, 24576, 16384, 24576, 536870912, 262144, 0, 0, 32, 2048, 8192, 4, 4096, 4096, 4096, 786432, 8388608, 16777216, 0, 128, 16384, 16384, 16384, 32768, 65536, 2097152, 32, 32, 32, 32, 4, 4, 4, 4, 4, 4096, 67108864, 67108864, 67108864, 24576, 24576, 24576, 24576, 0, 16384, 16384, 16384, 16384, 67108864, 67108864, 8, 67108864, 24576, 8, 8, 8, 24576, 24576, 24576, 24578, 24576, 24576, 24576, 2, 2, 2, 16384, 67108864, 67108864, 67108864, 32, 67108864, 8, 8, 24576, 2048, 0x80000000, 536870912, 262144, 262144, 262144, 67108864, 8, 24576, 16384, 32768, 1048576, 4194304, 25165824, 67108864, 24576, 32770, 2, 4, 112, 512, 98304, 524288, 50, 402653186, 1049090, 1049091, 10, 66, 100925514, 10, 66, 12582914, 0, 0, -1678194207, -1678194207, -1041543218, 0, 32768, 0, 0, 32, 65536, 268435456, 1, 1, 513, 1048577, 0, 12582912, 0, 0, 0, 4, 1792, 0, 0, 0, 7, 29360128, 0, 0, 0, 8, 0, 0, 0, 12, 1, 1, 0, 0, -604102721, -604102721, 4194304, 8388608, 0, 0, 0, 31, 925600, 997981306, 997981306, 997981306, 0, 0, 2048, 8388608, 0, 0, 1, 2, 4, 32, 64, 512, 8192, 0, 0, 0, 245760, 997720064, 0, 0, 0, 32, 0, 0, 0, 3, 12, 16, 32, 8, 112, 3072, 12288, 16384, 32768, 65536, 131072, 7864320, 16777216, 973078528, 0, 0, 65536, 131072, 3670016, 4194304, 16777216, 33554432, 2, 8, 48, 2048, 8192, 16384, 32768, 65536, 131072, 524288, 131072, 524288, 3145728, 4194304, 16777216, 33554432, 65536, 131072, 2097152, 4194304, 16777216, 33554432, 134217728, 268435456, 536870912, 0, 0, 0, 1024, 0, 8, 48, 2048, 8192, 65536, 33554432, 268435456, 536870912, 65536, 268435456, 536870912, 0, 0, 32768, 0, 0, 126, 623104, 65011712, 0, 32, 65536, 536870912, 0, 0, 65536, 524288, 0, 32, 65536, 0, 0, 0, 2048, 0, 0, 0, 15482, 245760, -604102721, 0, 0, 0, 18913, 33062912, 925600, -605028352, 0, 0, 0, 65536, 31, 8096, 131072, 786432, 3145728, 3145728, 12582912, 50331648, 134217728, 268435456, 160, 256, 512, 7168, 131072, 786432, 131072, 786432, 1048576, 2097152, 12582912, 16777216, 268435456, 1073741824, 0x80000000, 12582912, 16777216, 33554432, 268435456, 1073741824, 0x80000000, 3, 12, 16, 160, 256, 7168, 786432, 1048576, 12582912, 16777216, 268435456, 1073741824, 0, 8, 16, 32, 128, 256, 512, 7168, 786432, 1048576, 2097152, 0, 1, 2, 8, 16, 7168, 786432, 1048576, 8388608, 16777216, 16777216, 1073741824, 0, 0, 0, 0, 1, 0, 0, 8, 32, 128, 256, 7168, 8, 32, 0, 3072, 0, 8, 32, 3072, 4096, 524288, 8, 32, 0, 0, 3072, 4096, 0, 2048, 524288, 8388608, 8, 2048, 0, 0, 1, 12, 256, 4096, 32768, 262144, 1048576, 4194304, 67108864, 0, 2048, 0, 2048, 2048, 1073741824, -58805985, -58805985, -58805985, 0, 0, 262144, 0, 0, 32, 4194304, 16777216, 134217728, 4382, 172032, -58982400, 0, 0, 2, 28, 256, 4096, 8192, 8192, 32768, 131072, 262144, 524288, 1, 2, 12, 256, 4096, 0, 0, 4194304, 67108864, 134217728, 805306368, 1073741824, 0, 0, 1, 2, 12, 16, 256, 4096, 1048576, 67108864, 134217728, 268435456, 0, 512, 1048576, 4194304, 201326592, 1879048192, 0, 0, 12, 256, 4096, 134217728, 268435456, 536870912, 12, 256, 268435456, 536870912, 0, 12, 256, 0, 0, 1, 32, 64, 512, 0, 0, 205236961, 205236961, 0, 0, 0, 1, 96, 640, 1, 10976, 229376, 204996608, 0, 640, 2048, 8192, 229376, 1572864, 1572864, 2097152, 201326592, 0, 0, 0, 64, 512, 2048, 229376, 1572864, 201326592, 1572864, 201326592, 0, 0, 1, 4382, 0, 1, 32, 2048, 65536, 131072, 1572864, 201326592, 131072, 1572864, 134217728, 0, 0, 524288, 524288, 0, 0, 0, -68582786, -68582786, -68582786, 0, 0, 2097152, 524288, 0, 524288, 0, 0, 65536, 131072, 1572864, 0, 0, 2, 4, 0, 0, 65011712, -134217728, 0, 0, 0, 0, 2, 4, 120, 512, -268435456, 0, 0, 0, 2, 8, 48, 64, 2048, 8192, 98304, 524288, 2097152, 4194304, 25165824, 33554432, 134217728, 268435456, 0x80000000, 0, 0, 25165824, 33554432, 134217728, 1879048192, 0x80000000, 0, 0, 4, 112, 512, 622592, 65011712, 134217728, -268435456, 16777216, 33554432, 134217728, 1610612736, 0, 0, 0, 64, 98304, 524288, 4194304, 16777216, 33554432, 0, 98304, 524288, 16777216, 33554432, 0, 65536, 524288, 33554432, 536870912, 1073741824, 0, 65536, 524288, 536870912, 1073741824, 0, 0, 65536, 524288, 536870912, 0, 524288, 0, 524288, 524288, 1048576, 2086666240, 0x80000000, 0, -1678194207, 0, 0, 0, 8, 32, 2048, 524288, 8388608, 0, 0, 33062912, 436207616, 0x80000000, 0, 0, 32, 64, 2432, 16384, 32768, 32768, 524288, 3145728, 4194304, 25165824, 25165824, 167772160, 268435456, 0x80000000, 0, 32, 64, 384, 2048, 16384, 32768, 1048576, 2097152, 4194304, 25165824, 32, 64, 128, 256, 2048, 16384, 2048, 16384, 1048576, 4194304, 16777216, 33554432, 134217728, 536870912, 1073741824, 0, 0, 2048, 16384, 4194304, 16777216, 33554432, 134217728, 805306368, 0, 0, 16777216, 134217728, 268435456, 0x80000000, 0, 622592, 622592, 622592, 8807, 8807, 434791, 0, 0, 16777216, 0, 0, 0, 7, 608, 8192, 0, 0, 0, 3, 4, 96, 512, 32, 64, 8192, 0, 0, 16777216, 134217728, 0, 0, 2, 4, 8192, 16384, 65536, 2097152, 33554432, 268435456\n];\n\nXQueryTokenizer.TOKEN =\n[\n  \"(0)\",\n  \"ModuleDecl\",\n  \"Annotation\",\n  \"OptionDecl\",\n  \"Operator\",\n  \"Variable\",\n  \"Tag\",\n  \"EndTag\",\n  \"PragmaContents\",\n  \"DirCommentContents\",\n  \"DirPIContents\",\n  \"CDataSectionContents\",\n  \"AttrTest\",\n  \"Wildcard\",\n  \"EQName\",\n  \"IntegerLiteral\",\n  \"DecimalLiteral\",\n  \"DoubleLiteral\",\n  \"PredefinedEntityRef\",\n  \"'\\\"\\\"'\",\n  \"EscapeApos\",\n  \"QuotChar\",\n  \"AposChar\",\n  \"ElementContentChar\",\n  \"QuotAttrContentChar\",\n  \"AposAttrContentChar\",\n  \"NCName\",\n  \"QName\",\n  \"S\",\n  \"CharRef\",\n  \"CommentContents\",\n  \"DocTag\",\n  \"DocCommentContents\",\n  \"EOF\",\n  \"'!'\",\n  \"'\\\"'\",\n  \"'#'\",\n  \"'#)'\",\n  \"''''\",\n  \"'('\",\n  \"'(#'\",\n  \"'(:'\",\n  \"'(:~'\",\n  \"')'\",\n  \"'*'\",\n  \"'*'\",\n  \"','\",\n  \"'-->'\",\n  \"'.'\",\n  \"'/'\",\n  \"'/>'\",\n  \"':'\",\n  \"':)'\",\n  \"';'\",\n  \"'<!--'\",\n  \"'<![CDATA['\",\n  \"'<?'\",\n  \"'='\",\n  \"'>'\",\n  \"'?'\",\n  \"'?>'\",\n  \"'NaN'\",\n  \"'['\",\n  \"']'\",\n  \"']]>'\",\n  \"'after'\",\n  \"'all'\",\n  \"'allowing'\",\n  \"'ancestor'\",\n  \"'ancestor-or-self'\",\n  \"'and'\",\n  \"'any'\",\n  \"'append'\",\n  \"'array'\",\n  \"'as'\",\n  \"'ascending'\",\n  \"'at'\",\n  \"'attribute'\",\n  \"'base-uri'\",\n  \"'before'\",\n  \"'boundary-space'\",\n  \"'break'\",\n  \"'by'\",\n  \"'case'\",\n  \"'cast'\",\n  \"'castable'\",\n  \"'catch'\",\n  \"'check'\",\n  \"'child'\",\n  \"'collation'\",\n  \"'collection'\",\n  \"'comment'\",\n  \"'constraint'\",\n  \"'construction'\",\n  \"'contains'\",\n  \"'content'\",\n  \"'context'\",\n  \"'continue'\",\n  \"'copy'\",\n  \"'copy-namespaces'\",\n  \"'count'\",\n  \"'decimal-format'\",\n  \"'decimal-separator'\",\n  \"'declare'\",\n  \"'default'\",\n  \"'delete'\",\n  \"'descendant'\",\n  \"'descendant-or-self'\",\n  \"'descending'\",\n  \"'diacritics'\",\n  \"'different'\",\n  \"'digit'\",\n  \"'distance'\",\n  \"'div'\",\n  \"'document'\",\n  \"'document-node'\",\n  \"'element'\",\n  \"'else'\",\n  \"'empty'\",\n  \"'empty-sequence'\",\n  \"'encoding'\",\n  \"'end'\",\n  \"'entire'\",\n  \"'eq'\",\n  \"'every'\",\n  \"'exactly'\",\n  \"'except'\",\n  \"'exit'\",\n  \"'external'\",\n  \"'first'\",\n  \"'following'\",\n  \"'following-sibling'\",\n  \"'for'\",\n  \"'foreach'\",\n  \"'foreign'\",\n  \"'from'\",\n  \"'ft-option'\",\n  \"'ftand'\",\n  \"'ftnot'\",\n  \"'ftor'\",\n  \"'function'\",\n  \"'ge'\",\n  \"'greatest'\",\n  \"'group'\",\n  \"'grouping-separator'\",\n  \"'gt'\",\n  \"'idiv'\",\n  \"'if'\",\n  \"'import'\",\n  \"'in'\",\n  \"'index'\",\n  \"'infinity'\",\n  \"'inherit'\",\n  \"'insensitive'\",\n  \"'insert'\",\n  \"'instance'\",\n  \"'integrity'\",\n  \"'intersect'\",\n  \"'into'\",\n  \"'is'\",\n  \"'item'\",\n  \"'json'\",\n  \"'json-item'\",\n  \"'key'\",\n  \"'language'\",\n  \"'last'\",\n  \"'lax'\",\n  \"'le'\",\n  \"'least'\",\n  \"'let'\",\n  \"'levels'\",\n  \"'loop'\",\n  \"'lowercase'\",\n  \"'lt'\",\n  \"'minus-sign'\",\n  \"'mod'\",\n  \"'modify'\",\n  \"'module'\",\n  \"'most'\",\n  \"'namespace'\",\n  \"'namespace-node'\",\n  \"'ne'\",\n  \"'next'\",\n  \"'no'\",\n  \"'no-inherit'\",\n  \"'no-preserve'\",\n  \"'node'\",\n  \"'nodes'\",\n  \"'not'\",\n  \"'object'\",\n  \"'occurs'\",\n  \"'of'\",\n  \"'on'\",\n  \"'only'\",\n  \"'option'\",\n  \"'or'\",\n  \"'order'\",\n  \"'ordered'\",\n  \"'ordering'\",\n  \"'paragraph'\",\n  \"'paragraphs'\",\n  \"'parent'\",\n  \"'pattern-separator'\",\n  \"'per-mille'\",\n  \"'percent'\",\n  \"'phrase'\",\n  \"'position'\",\n  \"'preceding'\",\n  \"'preceding-sibling'\",\n  \"'preserve'\",\n  \"'previous'\",\n  \"'processing-instruction'\",\n  \"'relationship'\",\n  \"'rename'\",\n  \"'replace'\",\n  \"'return'\",\n  \"'returning'\",\n  \"'revalidation'\",\n  \"'same'\",\n  \"'satisfies'\",\n  \"'schema'\",\n  \"'schema-attribute'\",\n  \"'schema-element'\",\n  \"'score'\",\n  \"'self'\",\n  \"'sensitive'\",\n  \"'sentence'\",\n  \"'sentences'\",\n  \"'skip'\",\n  \"'sliding'\",\n  \"'some'\",\n  \"'stable'\",\n  \"'start'\",\n  \"'stemming'\",\n  \"'stop'\",\n  \"'strict'\",\n  \"'strip'\",\n  \"'structured-item'\",\n  \"'switch'\",\n  \"'text'\",\n  \"'then'\",\n  \"'thesaurus'\",\n  \"'times'\",\n  \"'to'\",\n  \"'treat'\",\n  \"'try'\",\n  \"'tumbling'\",\n  \"'type'\",\n  \"'typeswitch'\",\n  \"'union'\",\n  \"'unique'\",\n  \"'unordered'\",\n  \"'updating'\",\n  \"'uppercase'\",\n  \"'using'\",\n  \"'validate'\",\n  \"'value'\",\n  \"'variable'\",\n  \"'version'\",\n  \"'weight'\",\n  \"'when'\",\n  \"'where'\",\n  \"'while'\",\n  \"'wildcards'\",\n  \"'window'\",\n  \"'with'\",\n  \"'without'\",\n  \"'word'\",\n  \"'words'\",\n  \"'xquery'\",\n  \"'zero-digit'\",\n  \"'{'\",\n  \"'{{'\",\n  \"'|'\",\n  \"'}'\",\n  \"'}}'\"\n];\n\n},\n{}],\n2:[function(_dereq_,module,exports){\n'use strict';\n\nvar TokenHandler = function(code) {\n    var input = code;\n    this.tokens = [];\n \n    this.reset = function() {\n        input = input;\n        this.tokens = [];\n    };\n    \n    this.startNonterminal = function() {};\n    this.endNonterminal = function() {};\n\n    this.terminal = function(name, begin, end) {\n        this.tokens.push({\n            name: name,\n            value: input.substring(begin, end)\n        });\n    };\n\n    this.whitespace = function(begin, end) {\n        this.tokens.push({\n            name: 'WS',\n            value: input.substring(begin, end)\n        });\n    };\n};\n\nexports.Lexer = function(Tokenizer, Rules) {\n\n    this.tokens = [];\n  \n    this.getLineTokens = function(line, state) {\n        state = (state === 'start' || !state) ? '[\"start\"]' : state;\n        var stack = JSON.parse(state);\n        var h = new TokenHandler(line);\n        var tokenizer = new Tokenizer(line, h);\n        var tokens = [];\n    \n        while(true) {\n            var currentState = stack[stack.length - 1];\n            try {\n                h.tokens = [];\n                tokenizer['parse_' + currentState]();\n                var info = null;\n        \n                if(h.tokens.length > 1 && h.tokens[0].name === 'WS') {\n                    tokens.push({\n                        type: 'text',\n                        value: h.tokens[0].value\n                    });\n                    h.tokens.splice(0, 1);\n                }\n        \n                var token = h.tokens[0];\n                var rules  = Rules[currentState];\n                for(var k = 0; k < rules.length; k++) {\n                    var rule = Rules[currentState][k];\n                    if((typeof(rule.name) === 'function' && rule.name(token)) || rule.name === token.name) {\n                        info = rule;\n                        break;\n                    }\n                }\n        \n                if(token.name === 'EOF') { break; }\n                if(token.value === '') { throw 'Encountered empty string lexical rule.'; }\n        \n                tokens.push({\n                    type: info === null ? 'text' : (typeof(info.token) === 'function' ? info.token(token.value) : info.token),\n                    value: token.value\n                });\n        \n                if(info && info.next) {\n                    info.next(stack);\n                }\n      \n            } catch(e) {\n                if(e instanceof tokenizer.ParseException) {\n                    var index = 0;\n                    for(var i=0; i < tokens.length; i++) {\n                        index += tokens[i].value.length;\n                    }\n                    tokens.push({ type: 'text', value: line.substring(index) });\n                    return {\n                        tokens: tokens,\n                        state: JSON.stringify(['start'])\n                    };\n                } else {\n                    throw e;\n                }\n            }\n        }\n\n        return {\n            tokens: tokens,\n            state: JSON.stringify(stack)\n        };\n    };\n};\n},\n{}],\n3:[function(_dereq_,module,exports){\n'use strict';\n\nvar XQueryTokenizer = _dereq_('./XQueryTokenizer').XQueryTokenizer;\nvar Lexer = _dereq_('./lexer').Lexer;\n\nvar keys = 'after|ancestor|ancestor-or-self|and|as|ascending|attribute|before|case|cast|castable|child|collation|comment|copy|count|declare|default|delete|descendant|descendant-or-self|descending|div|document|document-node|element|else|empty|empty-sequence|end|eq|every|except|first|following|following-sibling|for|function|ge|group|gt|idiv|if|import|insert|instance|intersect|into|is|item|last|le|let|lt|mod|modify|module|namespace|namespace-node|ne|node|only|or|order|ordered|parent|preceding|preceding-sibling|processing-instruction|rename|replace|return|satisfies|schema-attribute|schema-element|self|some|stable|start|switch|text|to|treat|try|typeswitch|union|unordered|validate|where|with|xquery|contains|paragraphs|sentences|times|words|by|collectionreturn|variable|version|option|when|encoding|toswitch|catch|tumbling|sliding|window|at|using|stemming|collection|schema|while|on|nodes|index|external|then|in|updating|value|of|containsbreak|loop|continue|exit|returning|append|json|position|strict'.split('|');\n\nvar keywords = keys.map(function(val) { return { name: '\\'' + val + '\\'', token: 'keyword' }; });\nvar ncnames = keys.map(function(val) { return { name: '\\'' + val + '\\'', token: 'text', next: function(stack){ stack.pop(); } }; });\n\nvar cdata = 'constant.language';\nvar number = 'constant';\nvar xmlcomment = 'comment';\nvar pi = 'xml-pe';\nvar pragma = 'constant.buildin';\nvar n = function(name){\n    return '\\'' + name + '\\'';\n};\nvar Rules = {\n    start: [\n        { name: n('(#'), token: pragma, next: function(stack){ stack.push('Pragma'); } },\n        { name: n('(:'), token: 'comment', next: function(stack){ stack.push('Comment'); } },\n        { name: n('(:~'), token: 'comment.doc', next: function(stack){ stack.push('CommentDoc'); } },\n        { name: n('<!--'), token: xmlcomment, next: function(stack){ stack.push('XMLComment'); } },\n        { name: n('<?'), token: pi, next: function(stack) { stack.push('PI'); } },\n        { name: n('\\'\\''), token: 'string', next: function(stack){ stack.push('AposString'); } },\n        { name: n('\"'), token: 'string', next: function(stack){ stack.push('QuotString'); } },\n        { name: 'Annotation', token: 'support.function' },\n        { name: 'ModuleDecl', token: 'keyword', next: function(stack){ stack.push('Prefix'); } },\n        { name: 'OptionDecl', token: 'keyword', next: function(stack){ stack.push('_EQName'); } },\n        { name: 'AttrTest', token: 'support.type' },\n        { name: 'Variable', token: 'variable' },\n        { name: n('<![CDATA['), token: cdata, next: function(stack){ stack.push('CData'); } },\n        { name: 'IntegerLiteral', token: number },\n        { name: 'DecimalLiteral', token: number },\n        { name: 'DoubleLiteral', token: number },\n        { name: 'Operator', token: 'keyword.operator' },\n        { name: 'EQName', token: function(val) { return keys.indexOf(val) !== -1 ? 'keyword' : 'support.function'; } },\n        { name: n('('), token: 'lparen' },\n        { name: n(')'), token: 'rparen' },\n        { name: 'Tag', token: 'meta.tag', next: function(stack){ stack.push('StartTag'); } },\n        { name: n('}'), token: 'text', next: function(stack){ if(stack.length > 1) { stack.pop(); } } },\n        { name: n('{'), token: 'text', next: function(stack){ stack.push('start'); } } //, next: function(stack){ if(stack.length > 1) { stack.pop(); } } }\n    ].concat(keywords),\n    _EQName: [\n        { name: 'EQName', token: 'text', next: function(stack) { stack.pop(); } }\n    ].concat(ncnames),\n    Prefix: [\n        { name: 'NCName', token: 'text', next: function(stack) { stack.pop(); } }\n    ].concat(ncnames),\n    StartTag: [\n        { name: n('>'), token: 'meta.tag', next: function(stack){ stack.push('TagContent'); } },\n        { name: 'QName', token: 'entity.other.attribute-name' },\n        { name: n('='), token: 'text' },\n        { name: n('\\'\\''), token: 'string', next: function(stack){ stack.push('AposAttr'); } },\n        { name: n('\"'), token: 'string', next: function(stack){ stack.push('QuotAttr'); } },\n        { name: n('/>'), token: 'meta.tag.r', next: function(stack){ stack.pop(); } }\n    ],\n    TagContent: [\n        { name: 'ElementContentChar', token: 'text' },\n        { name: n('<![CDATA['), token: cdata, next: function(stack){ stack.push('CData'); } },\n        { name: n('<!--'), token: xmlcomment, next: function(stack){ stack.push('XMLComment'); } },\n        { name: 'Tag', token: 'meta.tag', next: function(stack){ stack.push('StartTag'); } },\n        { name: 'PredefinedEntityRef', token: 'constant.language.escape' },\n        { name: 'CharRef', token: 'constant.language.escape' },\n        { name: n('{{'), token: 'text' },\n        { name: n('}}'), token: 'text' },\n        { name: n('{'), token: 'text', next: function(stack){ stack.push('start'); } },\n        { name: 'EndTag', token: 'meta.tag', next: function(stack){ stack.pop(); stack.pop(); } }\n    ],\n    AposAttr: [\n        { name: n('\\'\\''), token: 'string', next: function(stack){ stack.pop(); } },\n        { name: 'EscapeApos', token: 'constant.language.escape' },\n        { name: 'AposAttrContentChar', token: 'string' },\n        { name: 'PredefinedEntityRef', token: 'constant.language.escape' },\n        { name: 'CharRef', token: 'constant.language.escape' },\n        { name: n('{{'), token: 'string' },\n        { name: n('}}'), token: 'string' },\n        { name: n('{'), token: 'text', next: function(stack){ stack.push('start'); } }\n    ],\n    QuotAttr: [\n        { name: n('\\\"'), token: 'string', next: function(stack){ stack.pop(); } },\n        { name: 'EscapeQuot', token: 'constant.language.escape' },\n        { name: 'QuotAttrContentChar', token: 'string' },\n        { name: 'PredefinedEntityRef', token: 'constant.language.escape' },\n        { name: 'CharRef', token: 'constant.language.escape' },\n        { name: n('{{'), token: 'string' },\n        { name: n('}}'), token: 'string' },\n        { name: n('{'), token: 'text', next: function(stack){ stack.push('start'); } }\n    ],\n    Pragma: [\n        { name: 'PragmaContents', token: pragma },\n        { name: n('#'), token: pragma },\n        { name: n('#)'), token: pragma, next: function(stack){ stack.pop(); } }\n    ],\n    Comment: [\n        { name: 'CommentContents', token: 'comment' },\n        { name: n('(:'), token: 'comment', next: function(stack){ stack.push('Comment'); } },\n        { name: n(':)'), token: 'comment', next: function(stack){ stack.pop(); } }\n    ],\n    CommentDoc: [\n        { name: 'DocCommentContents', token: 'comment.doc' },\n        { name: 'DocTag', token: 'comment.doc.tag' },\n        { name: n('(:'), token: 'comment.doc', next: function(stack){ stack.push('CommentDoc'); } },\n        { name: n(':)'), token: 'comment.doc', next: function(stack){ stack.pop(); } }\n    ],\n    XMLComment: [\n        { name: 'DirCommentContents', token: xmlcomment },\n        { name: n('-->'), token: xmlcomment, next: function(stack){ stack.pop(); } }\n    ],\n    CData: [\n        { name: 'CDataSectionContents', token: cdata },\n        { name: n(']]>'), token: cdata, next: function(stack){ stack.pop(); } }\n    ],\n    PI: [\n        { name: 'DirPIContents', token: pi },\n        { name: n('?'), token: pi },\n        { name: n('?>'), token: pi, next: function(stack){ stack.pop(); } }\n    ],\n    AposString: [\n        { name: n('\\'\\''), token: 'string', next: function(stack){ stack.pop(); } },\n        { name: 'PredefinedEntityRef', token: 'constant.language.escape' },\n        { name: 'CharRef', token: 'constant.language.escape' },\n        { name: 'EscapeApos', token: 'constant.language.escape' },\n        { name: 'AposChar', token: 'string' }\n    ],\n    QuotString: [\n        { name: n('\"'), token: 'string', next: function(stack){ stack.pop(); } },\n        { name: 'PredefinedEntityRef', token: 'constant.language.escape' },\n        { name: 'CharRef', token: 'constant.language.escape' },\n        { name: 'EscapeQuot', token: 'constant.language.escape' },\n        { name: 'QuotChar', token: 'string' }\n    ]\n};\n    \nexports.XQueryLexer = function(){ return new Lexer(XQueryTokenizer, Rules); };\n},\n{\"./XQueryTokenizer\":1,\"./lexer\":2}]},{},[3])\n(3)\n\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\n\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nvar XmlBehaviour = function () {\n\n    this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '\"' || text == \"'\") {\n            var quote = text;\n            var selected = session.doc.getTextRange(editor.getSelectionRange());\n            if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n                return {\n                    text: quote + selected + quote,\n                    selection: false\n                };\n            }\n\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n                return {\n                    text: \"\",\n                    selection: [1, 1]\n                };\n            }\n\n            if (!token)\n                token = iterator.stepBackward();\n\n            if (!token)\n                return;\n\n            while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n                token = iterator.stepBackward();\n            }\n            var rightSpace = !rightChar || rightChar.match(/\\s/);\n            if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n                return {\n                    text: quote + quote,\n                    selection: [1, 1]\n                };\n            }\n        }\n    });\n\n    this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == selected) {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n\n    this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '>') {\n            var position = editor.getSelectionRange().start;\n            var iterator = new TokenIterator(session, position.row, position.column);\n            var token = iterator.getCurrentToken() || iterator.stepBackward();\n            if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n                return;\n            if (is(token, \"reference.attribute-value\"))\n                return;\n            if (is(token, \"attribute-value\")) {\n                var firstChar = token.value.charAt(0);\n                if (firstChar == '\"' || firstChar == \"'\") {\n                    var lastChar = token.value.charAt(token.value.length - 1);\n                    var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;\n                    if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)\n                        return;\n                }\n            }\n            while (!is(token, \"tag-name\")) {\n                token = iterator.stepBackward();\n                if (token.value == \"<\") {\n                    token = iterator.stepForward();\n                    break;\n                }\n            }\n\n            var tokenRow = iterator.getCurrentTokenRow();\n            var tokenColumn = iterator.getCurrentTokenColumn();\n            if (is(iterator.stepBackward(), \"end-tag-open\"))\n                return;\n\n            var element = token.value;\n            if (tokenRow == position.row)\n                element = element.substring(0, position.column - tokenColumn);\n\n            if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n                 return;\n\n            return {\n               text: \">\" + \"</\" + element + \">\",\n               selection: [1, 1]\n            };\n        }\n    });\n\n    this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == \"\\n\") {\n            var cursor = editor.getCursorPosition();\n            var line = session.getLine(cursor.row);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n\n            if (token && token.type.indexOf(\"tag-close\") !== -1) {\n                if (token.value == \"/>\")\n                    return;\n                while (token && token.type.indexOf(\"tag-name\") === -1) {\n                    token = iterator.stepBackward();\n                }\n\n                if (!token) {\n                    return;\n                }\n\n                var tag = token.value;\n                var row = iterator.getCurrentTokenRow();\n                token = iterator.stepBackward();\n                if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n                    return;\n                }\n\n                if (this.voidElements && !this.voidElements[tag]) {\n                    var nextToken = session.getTokenAt(cursor.row, cursor.column+1);\n                    var line = session.getLine(row);\n                    var nextIndent = this.$getIndent(line);\n                    var indent = nextIndent + session.getTabString();\n\n                    if (nextToken && nextToken.value === \"</\") {\n                        return {\n                            text: \"\\n\" + indent + \"\\n\" + nextIndent,\n                            selection: [1, indent.length, 1, indent.length]\n                        };\n                    } else {\n                        return {\n                            text: \"\\n\" + indent\n                        };\n                    }\n                }\n            }\n        }\n    });\n\n};\n\noop.inherits(XmlBehaviour, Behaviour);\n\nexports.XmlBehaviour = XmlBehaviour;\n});\n\nace.define(\"ace/mode/behaviour/xquery\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/mode/behaviour/xml\",\"ace/token_iterator\"], function(require, exports, module) {\n\"use strict\";\n\n  var oop = require(\"../../lib/oop\");\n  var Behaviour = require('../behaviour').Behaviour;\n  var CstyleBehaviour = require('./cstyle').CstyleBehaviour;\n  var XmlBehaviour = require(\"../behaviour/xml\").XmlBehaviour;\n  var TokenIterator = require(\"../../token_iterator\").TokenIterator;\n\nfunction hasType(token, type) {\n    var hasType = true;\n    var typeList = token.type.split('.');\n    var needleList = type.split('.');\n    needleList.forEach(function(needle){\n        if (typeList.indexOf(needle) == -1) {\n            hasType = false;\n            return false;\n        }\n    });\n    return hasType;\n}\n \n  var XQueryBehaviour = function () {\n      \n      this.inherit(CstyleBehaviour, [\"braces\", \"parens\", \"string_dquotes\"]); // Get string behaviour\n      this.inherit(XmlBehaviour); // Get xml behaviour\n      \n      this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '>') {\n            var position = editor.getCursorPosition();\n            var iterator = new TokenIterator(session, position.row, position.column);\n            var token = iterator.getCurrentToken();\n            var atCursor = false;\n            var state = JSON.parse(state).pop();\n            if ((token && token.value === '>') || state !== \"StartTag\") return;\n            if (!token || !hasType(token, 'meta.tag') && !(hasType(token, 'text') && token.value.match('/'))){\n                do {\n                    token = iterator.stepBackward();\n                } while (token && (hasType(token, 'string') || hasType(token, 'keyword.operator') || hasType(token, 'entity.attribute-name') || hasType(token, 'text')));\n            } else {\n                atCursor = true;\n            }\n            var previous = iterator.stepBackward();\n            if (!token || !hasType(token, 'meta.tag') || (previous !== null && previous.value.match('/'))) {\n                return\n            }\n            var tag = token.value.substring(1);\n            if (atCursor){\n                var tag = tag.substring(0, position.column - token.start);\n            }\n\n            return {\n               text: '>' + '</' + tag + '>',\n               selection: [1, 1]\n            }\n        }\n    });\n\n  }\n  oop.inherits(XQueryBehaviour, Behaviour);\n\n  exports.XQueryBehaviour = XQueryBehaviour;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n    if (commentRegex) {\n        this.foldingStartMarker = new RegExp(\n            this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n        );\n        this.foldingStopMarker = new RegExp(\n            this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n        );\n    }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n    \n    this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n    this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n    this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n    this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n    this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n    this._getFoldWidgetBase = this.getFoldWidget;\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n    \n        if (this.singleLineBlockCommentRe.test(line)) {\n            if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n                return \"\";\n        }\n    \n        var fw = this._getFoldWidgetBase(session, foldStyle, row);\n    \n        if (!fw && this.startRegionRe.test(line))\n            return \"start\"; // lineCommentRegionStart\n    \n        return fw;\n    };\n\n    this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n        var line = session.getLine(row);\n        \n        if (this.startRegionRe.test(line))\n            return this.getCommentRegionBlock(session, line, row);\n        \n        var match = line.match(this.foldingStartMarker);\n        if (match) {\n            var i = match.index;\n\n            if (match[1])\n                return this.openingBracketBlock(session, match[1], row, i);\n                \n            var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n            \n            if (range && !range.isMultiLine()) {\n                if (forceMultiline) {\n                    range = this.getSectionRange(session, row);\n                } else if (foldStyle != \"all\")\n                    range = null;\n            }\n            \n            return range;\n        }\n\n        if (foldStyle === \"markbegin\")\n            return;\n\n        var match = line.match(this.foldingStopMarker);\n        if (match) {\n            var i = match.index + match[0].length;\n\n            if (match[1])\n                return this.closingBracketBlock(session, match[1], row, i);\n\n            return session.getCommentFoldRange(row, i, -1);\n        }\n    };\n    \n    this.getSectionRange = function(session, row) {\n        var line = session.getLine(row);\n        var startIndent = line.search(/\\S/);\n        var startRow = row;\n        var startColumn = line.length;\n        row = row + 1;\n        var endRow = row;\n        var maxRow = session.getLength();\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var indent = line.search(/\\S/);\n            if (indent === -1)\n                continue;\n            if  (startIndent > indent)\n                break;\n            var subRange = this.getFoldWidgetRange(session, \"all\", row);\n            \n            if (subRange) {\n                if (subRange.start.row <= startRow) {\n                    break;\n                } else if (subRange.isMultiLine()) {\n                    row = subRange.end.row;\n                } else if (startIndent == indent) {\n                    break;\n                }\n            }\n            endRow = row;\n        }\n        \n        return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n    };\n    this.getCommentRegionBlock = function(session, line, row) {\n        var startColumn = line.search(/\\s*$/);\n        var maxRow = session.getLength();\n        var startRow = row;\n        \n        var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n        var depth = 1;\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var m = re.exec(line);\n            if (!m) continue;\n            if (m[1]) depth--;\n            else depth++;\n\n            if (!depth) break;\n        }\n\n        var endRow = row;\n        if (endRow > startRow) {\n            return new Range(startRow, startColumn, endRow, line.length);\n        }\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/xquery\",[\"require\",\"exports\",\"module\",\"ace/worker/worker_client\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/text_highlight_rules\",\"ace/mode/xquery/xquery_lexer\",\"ace/range\",\"ace/mode/behaviour/xquery\",\"ace/mode/folding/cstyle\",\"ace/anchor\"], function(require, exports, module) {\n\"use strict\";\n\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar XQueryLexer = require(\"./xquery/xquery_lexer\").XQueryLexer;\nvar Range = require(\"../range\").Range;\nvar XQueryBehaviour = require(\"./behaviour/xquery\").XQueryBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Anchor = require(\"../anchor\").Anchor;\n\nvar Mode = function() {\n    this.$tokenizer   = new XQueryLexer();\n    this.$behaviour   = new XQueryBehaviour();\n    this.foldingRules = new CStyleFoldMode();\n    this.$highlightRules = new TextHighlightRules();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n    \n    this.completer = {\n        getCompletions: function(editor, session, pos, prefix, callback) {\n            if (!session.$worker)\n                return callback();\n            session.$worker.emit(\"complete\", { data: { pos: pos, prefix: prefix } });\n            session.$worker.on(\"complete\", function(e){\n                callback(null, e.data);\n            });\n        }\n    };\n\n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n        var match = line.match(/\\s*(?:then|else|return|[{\\(]|<\\w+>)\\s*$/);\n        if (match)\n            indent += tab;\n        return indent;\n    };\n    \n    this.checkOutdent = function(state, line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return (/^\\s*[\\}\\)]/).test(input);\n    };\n    \n    this.autoOutdent = function(state, doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*[\\}\\)])/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.toggleCommentLines = function(state, doc, startRow, endRow) {\n        var i, line;\n        var outdent = true;\n        var re = /^\\s*\\(:(.*):\\)/;\n\n        for (i=startRow; i<= endRow; i++) {\n            if (!re.test(doc.getLine(i))) {\n                outdent = false;\n                break;\n            }\n        }\n\n        var range = new Range(0, 0, 0, 0);\n        for (i=startRow; i<= endRow; i++) {\n            line = doc.getLine(i);\n            range.start.row  = i;\n            range.end.row    = i;\n            range.end.column = line.length;\n\n            doc.replace(range, outdent ? line.match(re)[1] : \"(:\" + line + \":)\");\n        }\n    };\n    \n    this.createWorker = function(session) {\n        \n      var worker = new WorkerClient([\"ace\"], \"ace/mode/xquery_worker\", \"XQueryWorker\");\n        var that = this;\n\n        worker.attachToDocument(session.getDocument());\n        \n        worker.on(\"ok\", function(e) {\n          session.clearAnnotations();\n        });\n        \n        worker.on(\"markers\", function(e) {\n          session.clearAnnotations();\n          that.addMarkers(e.data, session);\n        });\n \n        worker.on(\"highlight\", function(tokens) {\n          that.$tokenizer.tokens = tokens.data.tokens;\n          that.$tokenizer.lines  = session.getDocument().getAllLines();\n          \n          var rows = Object.keys(that.$tokenizer.tokens);\n          for(var i=0; i < rows.length; i++) {\n            var row = parseInt(rows[i]);\n            delete session.bgTokenizer.lines[row];\n            delete session.bgTokenizer.states[row];\n            session.bgTokenizer.fireUpdateEvent(row, row);\n          }\n        });\n        \n        return worker;\n    };\n\n    this.removeMarkers = function(session) {\n        var markers = session.getMarkers(false);\n        for (var id in markers) {\n            if (markers[id].clazz.indexOf('language_highlight_') === 0) {\n                session.removeMarker(id);\n            }\n        }\n        for (var i = 0; i < session.markerAnchors.length; i++) {\n            session.markerAnchors[i].detach();\n        }\n        session.markerAnchors = [];\n    };\n\n    this.addMarkers = function(annos, mySession) {\n        var _self = this;\n        \n        if (!mySession.markerAnchors) mySession.markerAnchors = [];\n        this.removeMarkers(mySession);\n        mySession.languageAnnos = [];\n        annos.forEach(function(anno) {\n            var anchor = new Anchor(mySession.getDocument(), anno.pos.sl, anno.pos.sc || 0);\n            mySession.markerAnchors.push(anchor);\n            var markerId;\n            var colDiff = anno.pos.ec - anno.pos.sc;\n            var rowDiff = anno.pos.el - anno.pos.sl;\n            var gutterAnno = {\n                guttertext: anno.message,\n                type: anno.level || \"warning\",\n                text: anno.message\n            };\n\n            function updateFloat(single) {\n                if (markerId)\n                    mySession.removeMarker(markerId);\n                gutterAnno.row = anchor.row;\n                if (anno.pos.sc !== undefined && anno.pos.ec !== undefined) {\n                    var range = new Range(anno.pos.sl, anno.pos.sc, anno.pos.el, anno.pos.ec);\n                    markerId = mySession.addMarker(range, \"language_highlight_\" + (anno.type ? anno.type : \"default\"));\n                }\n                if (single) mySession.setAnnotations(mySession.languageAnnos);\n            }\n            updateFloat();\n            anchor.on(\"change\", function() {\n                updateFloat(true);\n            });\n            if (anno.message) mySession.languageAnnos.push(gutterAnno);\n        });\n        mySession.setAnnotations(mySession.languageAnnos);\n    };    \n        \n    this.$id = \"ace/mode/xquery\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n"
  },
  {
    "path": "lib/src-noconflict/mode-yaml.js",
    "content": "ace.define(\"ace/mode/yaml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar YamlHighlightRules = function() {\n    this.$rules = {\n        \"start\" : [\n            {\n                token : \"comment\",\n                regex : \"#.*$\"\n            }, {\n                token : \"list.markup\",\n                regex : /^(?:-{3}|\\.{3})\\s*(?=#|$)/     \n            },  {\n                token : \"list.markup\",\n                regex : /^\\s*[\\-?](?:$|\\s)/     \n            }, {\n                token: \"constant\",\n                regex: \"!![\\\\w//]+\"\n            }, {\n                token: \"constant.language\",\n                regex: \"[&\\\\*][a-zA-Z0-9-_]+\"\n            }, {\n                token: [\"meta.tag\", \"keyword\"],\n                regex: /^(\\s*\\w.*?)(:(?:\\s+|$))/\n            },{\n                token: [\"meta.tag\", \"keyword\"],\n                regex: /(\\w+?)(\\s*:(?:\\s+|$))/\n            }, {\n                token : \"keyword.operator\",\n                regex : \"<<\\\\w*:\\\\w*\"\n            }, {\n                token : \"keyword.operator\",\n                regex : \"-\\\\s*(?=[{])\"\n            }, {\n                token : \"string\", // single line\n                regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n            }, {\n                token : \"string\", // multi line string start\n                regex : '[|>][-+\\\\d\\\\s]*$',\n                next : \"qqstring\"\n            }, {\n                token : \"string\", // single quoted string\n                regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n            }, {\n                token : \"constant.numeric\", // float\n                regex : /(\\b|[+\\-\\.])[\\d_]+(?:(?:\\.[\\d_]*)?(?:[eE][+\\-]?[\\d_]+)?)/\n            }, {\n                token : \"constant.numeric\", // other number\n                regex : /[+\\-]?\\.inf\\b|NaN\\b|0x[\\dA-Fa-f_]+|0b[10_]+/\n            }, {\n                token : \"constant.language.boolean\",\n                regex : \"\\\\b(?:true|false|TRUE|FALSE|True|False|yes|no)\\\\b\"\n            }, {\n                token : \"paren.lparen\",\n                regex : \"[[({]\"\n            }, {\n                token : \"paren.rparen\",\n                regex : \"[\\\\])}]\"\n            }\n        ],\n        \"qqstring\" : [\n            {\n                token : \"string\",\n                regex : '(?=(?:(?:\\\\\\\\.)|(?:[^:]))*?:)',\n                next : \"start\"\n            }, {\n                token : \"string\",\n                regex : '.+'\n            }\n        ]};\n\n};\n\noop.inherits(YamlHighlightRules, TextHighlightRules);\n\nexports.YamlHighlightRules = YamlHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n    this.checkOutdent = function(line, input) {\n        if (! /^\\s+$/.test(line))\n            return false;\n\n        return /^\\s*\\}/.test(input);\n    };\n\n    this.autoOutdent = function(doc, row) {\n        var line = doc.getLine(row);\n        var match = line.match(/^(\\s*\\})/);\n\n        if (!match) return 0;\n\n        var column = match[1].length;\n        var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n        if (!openBracePos || openBracePos.row == row) return 0;\n\n        var indent = this.$getIndent(doc.getLine(openBracePos.row));\n        doc.replace(new Range(row, 0, row, column-1), indent);\n    };\n\n    this.$getIndent = function(line) {\n        return line.match(/^\\s*/)[0];\n    };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n    this.getFoldWidgetRange = function(session, foldStyle, row) {\n        var range = this.indentationBlock(session, row);\n        if (range)\n            return range;\n\n        var re = /\\S/;\n        var line = session.getLine(row);\n        var startLevel = line.search(re);\n        if (startLevel == -1 || line[startLevel] != \"#\")\n            return;\n\n        var startColumn = line.length;\n        var maxRow = session.getLength();\n        var startRow = row;\n        var endRow = row;\n\n        while (++row < maxRow) {\n            line = session.getLine(row);\n            var level = line.search(re);\n\n            if (level == -1)\n                continue;\n\n            if (line[level] != \"#\")\n                break;\n\n            endRow = row;\n        }\n\n        if (endRow > startRow) {\n            var endColumn = session.getLine(endRow).length;\n            return new Range(startRow, startColumn, endRow, endColumn);\n        }\n    };\n    this.getFoldWidget = function(session, foldStyle, row) {\n        var line = session.getLine(row);\n        var indent = line.search(/\\S/);\n        var next = session.getLine(row + 1);\n        var prev = session.getLine(row - 1);\n        var prevIndent = prev.search(/\\S/);\n        var nextIndent = next.search(/\\S/);\n\n        if (indent == -1) {\n            session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n            return \"\";\n        }\n        if (prevIndent == -1) {\n            if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n                session.foldWidgets[row - 1] = \"\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"start\";\n            }\n        } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n            if (session.getLine(row - 2).search(/\\S/) == -1) {\n                session.foldWidgets[row - 1] = \"start\";\n                session.foldWidgets[row + 1] = \"\";\n                return \"\";\n            }\n        }\n\n        if (prevIndent!= -1 && prevIndent < indent)\n            session.foldWidgets[row - 1] = \"start\";\n        else\n            session.foldWidgets[row - 1] = \"\";\n\n        if (indent < nextIndent)\n            return \"start\";\n        else\n            return \"\";\n    };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/yaml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/yaml_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/coffee\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar YamlHighlightRules = require(\"./yaml_highlight_rules\").YamlHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar FoldMode = require(\"./folding/coffee\").FoldMode;\n\nvar Mode = function() {\n    this.HighlightRules = YamlHighlightRules;\n    this.$outdent = new MatchingBraceOutdent();\n    this.foldingRules = new FoldMode();\n    this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n    this.lineCommentStart = \"#\";\n    \n    this.getNextLineIndent = function(state, line, tab) {\n        var indent = this.$getIndent(line);\n\n        if (state == \"start\") {\n            var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n            if (match) {\n                indent += tab;\n            }\n        }\n\n        return indent;\n    };\n\n    this.checkOutdent = function(state, line, input) {\n        return this.$outdent.checkOutdent(line, input);\n    };\n\n    this.autoOutdent = function(state, doc, row) {\n        this.$outdent.autoOutdent(doc, row);\n    };\n\n\n    this.$id = \"ace/mode/yaml\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/abap.js",
    "content": "ace.define(\"ace/snippets/abap\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"abap\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/abc.js",
    "content": "ace.define(\"ace/snippets/abc\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"\\n\\\nsnippet zupfnoter.print\\n\\\n\t%%%%hn.print {\\\"startpos\\\": ${1:pos_y}, \\\"t\\\":\\\"${2:title}\\\", \\\"v\\\":[${3:voices}], \\\"s\\\":[[${4:syncvoices}1,2]], \\\"f\\\":[${5:flowlines}],  \\\"sf\\\":[${6:subflowlines}], \\\"j\\\":[${7:jumplines}]}\\n\\\n\\n\\\nsnippet zupfnoter.note\\n\\\n\t%%%%hn.note {\\\"pos\\\": [${1:pos_x},${2:pos_y}], \\\"text\\\": \\\"${3:text}\\\", \\\"style\\\": \\\"${4:style}\\\"}\\n\\\n\\n\\\nsnippet zupfnoter.annotation\\n\\\n\t%%%%hn.annotation {\\\"id\\\": \\\"${1:id}\\\", \\\"pos\\\": [${2:pos}], \\\"text\\\": \\\"${3:text}\\\"}\\n\\\n\\n\\\nsnippet zupfnoter.lyrics\\n\\\n\t%%%%hn.lyrics {\\\"pos\\\": [${1:x_pos},${2:y_pos}]}\\n\\\n\\n\\\nsnippet zupfnoter.legend\\n\\\n\t%%%%hn.legend {\\\"pos\\\": [${1:x_pos},${2:y_pos}]}\\n\\\n\\n\\\n\\n\\\n\\n\\\nsnippet zupfnoter.target\\n\\\n\t\\\"^:${1:target}\\\"\\n\\\n\\n\\\nsnippet zupfnoter.goto\\n\\\n\t\\\"^@${1:target}@${2:distance}\\\"\\n\\\n\\n\\\nsnippet zupfnoter.annotationref\\n\\\n\t\\\"^#${1:target}\\\"\\n\\\n\\n\\\nsnippet zupfnoter.annotation\\n\\\n\t\\\"^!${1:text}@${2:x_offset},${3:y_offset}\\\"\\n\\\n\\n\\\n\\n\\\n\";\nexports.scope = \"abc\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/actionscript.js",
    "content": "ace.define(\"ace/snippets/actionscript\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"snippet main\\n\\\n\tpackage {\\n\\\n\t\timport flash.display.*;\\n\\\n\t\timport flash.Events.*;\\n\\\n\t\\n\\\n\t\tpublic class Main extends Sprite {\\n\\\n\t\t\tpublic function Main (\t) {\\n\\\n\t\t\t\ttrace(\\\"start\\\");\\n\\\n\t\t\t\tstage.scaleMode = StageScaleMode.NO_SCALE;\\n\\\n\t\t\t\tstage.addEventListener(Event.RESIZE, resizeListener);\\n\\\n\t\t\t}\\n\\\n\t\\n\\\n\t\t\tprivate function resizeListener (e:Event):void {\\n\\\n\t\t\t\ttrace(\\\"The application window changed size!\\\");\\n\\\n\t\t\t\ttrace(\\\"New width:  \\\" + stage.stageWidth);\\n\\\n\t\t\t\ttrace(\\\"New height: \\\" + stage.stageHeight);\\n\\\n\t\t\t}\\n\\\n\t\\n\\\n\t\t}\\n\\\n\t\\n\\\n\t}\\n\\\nsnippet class\\n\\\n\t${1:public|internal} class ${2:name} ${3:extends } {\\n\\\n\t\tpublic function $2 (\t) {\\n\\\n\t\t\t(\\\"start\\\");\\n\\\n\t\t}\\n\\\n\t}\\n\\\nsnippet all\\n\\\n\tpackage name {\\n\\\n\\n\\\n\t\t${1:public|internal|final} class ${2:name} ${3:extends } {\\n\\\n\t\t\tprivate|public| static const FOO = \\\"abc\\\";\\n\\\n\t\t\tprivate|public| static var BAR = \\\"abc\\\";\\n\\\n\\n\\\n\t\t\t// class initializer - no JIT !! one time setup\\n\\\n\t\t\tif Cababilities.os == \\\"Linux|MacOS\\\" {\\n\\\n\t\t\t\tFOO = \\\"other\\\";\\n\\\n\t\t\t}\\n\\\n\\n\\\n\t\t\t// constructor:\\n\\\n\t\t\tpublic function $2 (\t){\\n\\\n\t\t\t\tsuper2();\\n\\\n\t\t\t\ttrace(\\\"start\\\");\\n\\\n\t\t\t}\\n\\\n\t\t\tpublic function name (a, b...){\\n\\\n\t\t\t\tsuper.name(..);\\n\\\n\t\t\t\tlable:break\\n\\\n\t\t\t}\\n\\\n\t\t}\\n\\\n\t}\\n\\\n\\n\\\n\tfunction A(){\\n\\\n\t\t// A can only be accessed within this file\\n\\\n\t}\\n\\\nsnippet switch\\n\\\n\tswitch(${1}){\\n\\\n\t\tcase ${2}:\\n\\\n\t\t\t${3}\\n\\\n\t\tbreak;\\n\\\n\t\tdefault:\\n\\\n\t}\\n\\\nsnippet case\\n\\\n\t\tcase ${1}:\\n\\\n\t\t\t${2}\\n\\\n\t\tbreak;\\n\\\nsnippet package\\n\\\n\tpackage ${1:package}{\\n\\\n\t\t${2}\\n\\\n\t}\\n\\\nsnippet wh\\n\\\n\twhile ${1:cond}{\\n\\\n\t\t${2}\\n\\\n\t}\\n\\\nsnippet do\\n\\\n\tdo {\\n\\\n\t\t${2}\\n\\\n\t} while (${1:cond})\\n\\\nsnippet while\\n\\\n\twhile ${1:cond}{\\n\\\n\t\t${2}\\n\\\n\t}\\n\\\nsnippet for enumerate names\\n\\\n\tfor (${1:var} in ${2:object}){\\n\\\n\t\t${3}\\n\\\n\t}\\n\\\nsnippet for enumerate values\\n\\\n\tfor each (${1:var} in ${2:object}){\\n\\\n\t\t${3}\\n\\\n\t}\\n\\\nsnippet get_set\\n\\\n\tfunction get ${1:name} {\\n\\\n\t\treturn ${2}\\n\\\n\t}\\n\\\n\tfunction set $1 (newValue) {\\n\\\n\t\t${3}\\n\\\n\t}\\n\\\nsnippet interface\\n\\\n\tinterface name {\\n\\\n\t\tfunction method(${1}):${2:returntype};\\n\\\n\t}\\n\\\nsnippet try\\n\\\n\ttry {\\n\\\n\t\t${1}\\n\\\n\t} catch (error:ErrorType) {\\n\\\n\t\t${2}\\n\\\n\t} finally {\\n\\\n\t\t${3}\\n\\\n\t}\\n\\\n# For Loop (same as c.snippet)\\n\\\nsnippet for for (..) {..}\\n\\\n\tfor (${2:i} = 0; $2 < ${1:count}; $2${3:++}) {\\n\\\n\t\t${4:/* code */}\\n\\\n\t}\\n\\\n# Custom For Loop\\n\\\nsnippet forr\\n\\\n\tfor (${1:i} = ${2:0}; ${3:$1 < 10}; $1${4:++}) {\\n\\\n\t\t${5:/* code */}\\n\\\n\t}\\n\\\n# If Condition\\n\\\nsnippet if\\n\\\n\tif (${1:/* condition */}) {\\n\\\n\t\t${2:/* code */}\\n\\\n\t}\\n\\\nsnippet el\\n\\\n\telse {\\n\\\n\t\t${1}\\n\\\n\t}\\n\\\n# Ternary conditional\\n\\\nsnippet t\\n\\\n\t${1:/* condition */} ? ${2:a} : ${3:b}\\n\\\nsnippet fun\\n\\\n\tfunction ${1:function_name}(${2})${3}\\n\\\n\t{\\n\\\n\t\t${4:/* code */}\\n\\\n\t}\\n\\\n# FlxSprite (usefull when using the flixel library)\\n\\\nsnippet FlxSprite\\n\\\n\tpackage\\n\\\n\t{\\n\\\n\t\timport org.flixel.*\\n\\\n\\n\\\n\t\tpublic class ${1:ClassName} extends ${2:FlxSprite}\\n\\\n\t\t{\\n\\\n\t\t\tpublic function $1(${3: X:Number, Y:Number}):void\\n\\\n\t\t\t{\\n\\\n\t\t\t\tsuper(X,Y);\\n\\\n\t\t\t\t${4: //code...}\\n\\\n\t\t\t}\\n\\\n\\n\\\n\t\t\toverride public function update():void\\n\\\n\t\t\t{\\n\\\n\t\t\t\tsuper.update();\\n\\\n\t\t\t\t${5: //code...}\\n\\\n\t\t\t}\\n\\\n\t\t}\\n\\\n\t}\\n\\\n\\n\\\n\";\nexports.scope = \"actionscript\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/ada.js",
    "content": "ace.define(\"ace/snippets/ada\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"ada\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/apache_conf.js",
    "content": "ace.define(\"ace/snippets/apache_conf\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"apache_conf\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/applescript.js",
    "content": "ace.define(\"ace/snippets/applescript\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"applescript\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/asciidoc.js",
    "content": "ace.define(\"ace/snippets/asciidoc\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"asciidoc\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/assembly_x86.js",
    "content": "ace.define(\"ace/snippets/assembly_x86\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"assembly_x86\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/autohotkey.js",
    "content": "ace.define(\"ace/snippets/autohotkey\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"autohotkey\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/batchfile.js",
    "content": "ace.define(\"ace/snippets/batchfile\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"batchfile\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/bro.js",
    "content": "ace.define(\"ace/snippets/bro\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/c9search.js",
    "content": "ace.define(\"ace/snippets/c9search\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"c9search\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/c_cpp.js",
    "content": "ace.define(\"ace/snippets/c_cpp\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"## STL Collections\\n\\\n# std::array\\n\\\nsnippet array\\n\\\n\tstd::array<${1:T}, ${2:N}> ${3};${4}\\n\\\n# std::vector\\n\\\nsnippet vector\\n\\\n\tstd::vector<${1:T}> ${2};${3}\\n\\\n# std::deque\\n\\\nsnippet deque\\n\\\n\tstd::deque<${1:T}> ${2};${3}\\n\\\n# std::forward_list\\n\\\nsnippet flist\\n\\\n\tstd::forward_list<${1:T}> ${2};${3}\\n\\\n# std::list\\n\\\nsnippet list\\n\\\n\tstd::list<${1:T}> ${2};${3}\\n\\\n# std::set\\n\\\nsnippet set\\n\\\n\tstd::set<${1:T}> ${2};${3}\\n\\\n# std::map\\n\\\nsnippet map\\n\\\n\tstd::map<${1:Key}, ${2:T}> ${3};${4}\\n\\\n# std::multiset\\n\\\nsnippet mset\\n\\\n\tstd::multiset<${1:T}> ${2};${3}\\n\\\n# std::multimap\\n\\\nsnippet mmap\\n\\\n\tstd::multimap<${1:Key}, ${2:T}> ${3};${4}\\n\\\n# std::unordered_set\\n\\\nsnippet uset\\n\\\n\tstd::unordered_set<${1:T}> ${2};${3}\\n\\\n# std::unordered_map\\n\\\nsnippet umap\\n\\\n\tstd::unordered_map<${1:Key}, ${2:T}> ${3};${4}\\n\\\n# std::unordered_multiset\\n\\\nsnippet umset\\n\\\n\tstd::unordered_multiset<${1:T}> ${2};${3}\\n\\\n# std::unordered_multimap\\n\\\nsnippet ummap\\n\\\n\tstd::unordered_multimap<${1:Key}, ${2:T}> ${3};${4}\\n\\\n# std::stack\\n\\\nsnippet stack\\n\\\n\tstd::stack<${1:T}> ${2};${3}\\n\\\n# std::queue\\n\\\nsnippet queue\\n\\\n\tstd::queue<${1:T}> ${2};${3}\\n\\\n# std::priority_queue\\n\\\nsnippet pqueue\\n\\\n\tstd::priority_queue<${1:T}> ${2};${3}\\n\\\n##\\n\\\n## Access Modifiers\\n\\\n# private\\n\\\nsnippet pri\\n\\\n\tprivate\\n\\\n# protected\\n\\\nsnippet pro\\n\\\n\tprotected\\n\\\n# public\\n\\\nsnippet pub\\n\\\n\tpublic\\n\\\n# friend\\n\\\nsnippet fr\\n\\\n\tfriend\\n\\\n# mutable\\n\\\nsnippet mu\\n\\\n\tmutable\\n\\\n## \\n\\\n## Class\\n\\\n# class\\n\\\nsnippet cl\\n\\\n\tclass ${1:`Filename('$1', 'name')`} \\n\\\n\t{\\n\\\n\tpublic:\\n\\\n\t\t$1(${2});\\n\\\n\t\t~$1();\\n\\\n\\n\\\n\tprivate:\\n\\\n\t\t${3:/* data */}\\n\\\n\t};\\n\\\n# member function implementation\\n\\\nsnippet mfun\\n\\\n\t${4:void} ${1:`Filename('$1', 'ClassName')`}::${2:memberFunction}(${3}) {\\n\\\n\t\t${5:/* code */}\\n\\\n\t}\\n\\\n# namespace\\n\\\nsnippet ns\\n\\\n\tnamespace ${1:`Filename('', 'my')`} {\\n\\\n\t\t${2}\\n\\\n\t} /* namespace $1 */\\n\\\n##\\n\\\n## Input/Output\\n\\\n# std::cout\\n\\\nsnippet cout\\n\\\n\tstd::cout << ${1} << std::endl;${2}\\n\\\n# std::cin\\n\\\nsnippet cin\\n\\\n\tstd::cin >> ${1};${2}\\n\\\n##\\n\\\n## Iteration\\n\\\n# for i \\n\\\nsnippet fori\\n\\\n\tfor (int ${2:i} = 0; $2 < ${1:count}; $2${3:++}) {\\n\\\n\t\t${4:/* code */}\\n\\\n\t}${5}\\n\\\n\\n\\\n# foreach\\n\\\nsnippet fore\\n\\\n\tfor (${1:auto} ${2:i} : ${3:container}) {\\n\\\n\t\t${4:/* code */}\\n\\\n\t}${5}\\n\\\n# iterator\\n\\\nsnippet iter\\n\\\n\tfor (${1:std::vector}<${2:type}>::${3:const_iterator} ${4:i} = ${5:container}.begin(); $4 != $5.end(); ++$4) {\\n\\\n\t\t${6}\\n\\\n\t}${7}\\n\\\n\\n\\\n# auto iterator\\n\\\nsnippet itera\\n\\\n\tfor (auto ${1:i} = $1.begin(); $1 != $1.end(); ++$1) {\\n\\\n\t\t${2:std::cout << *$1 << std::endl;}\\n\\\n\t}${3}\\n\\\n##\\n\\\n## Lambdas\\n\\\n# lamda (one line)\\n\\\nsnippet ld\\n\\\n\t[${1}](${2}){${3:/* code */}}${4}\\n\\\n# lambda (multi-line)\\n\\\nsnippet lld\\n\\\n\t[${1}](${2}){\\n\\\n\t\t${3:/* code */}\\n\\\n\t}${4}\\n\\\n\";\nexports.scope = \"c_cpp\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/cirru.js",
    "content": "ace.define(\"ace/snippets/cirru\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"cirru\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/clojure.js",
    "content": "ace.define(\"ace/snippets/clojure\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"snippet comm\\n\\\n\t(comment\\n\\\n\t  ${1}\\n\\\n\t  )\\n\\\nsnippet condp\\n\\\n\t(condp ${1:pred} ${2:expr}\\n\\\n\t  ${3})\\n\\\nsnippet def\\n\\\n\t(def ${1})\\n\\\nsnippet defm\\n\\\n\t(defmethod ${1:multifn} \\\"${2:doc-string}\\\" ${3:dispatch-val} [${4:args}]\\n\\\n\t  ${5})\\n\\\nsnippet defmm\\n\\\n\t(defmulti ${1:name} \\\"${2:doc-string}\\\" ${3:dispatch-fn})\\n\\\nsnippet defma\\n\\\n\t(defmacro ${1:name} \\\"${2:doc-string}\\\" ${3:dispatch-fn})\\n\\\nsnippet defn\\n\\\n\t(defn ${1:name} \\\"${2:doc-string}\\\" [${3:arg-list}]\\n\\\n\t  ${4})\\n\\\nsnippet defp\\n\\\n\t(defprotocol ${1:name}\\n\\\n\t  ${2})\\n\\\nsnippet defr\\n\\\n\t(defrecord ${1:name} [${2:fields}]\\n\\\n\t  ${3:protocol}\\n\\\n\t  ${4})\\n\\\nsnippet deft\\n\\\n\t(deftest ${1:name}\\n\\\n\t    (is (= ${2:assertion})))\\n\\\n\t  ${3})\\n\\\nsnippet is\\n\\\n\t(is (= ${1} ${2}))\\n\\\nsnippet defty\\n\\\n\t(deftype ${1:Name} [${2:fields}]\\n\\\n\t  ${3:Protocol}\\n\\\n\t  ${4})\\n\\\nsnippet doseq\\n\\\n\t(doseq [${1:elem} ${2:coll}]\\n\\\n\t  ${3})\\n\\\nsnippet fn\\n\\\n\t(fn [${1:arg-list}] ${2})\\n\\\nsnippet if\\n\\\n\t(if ${1:test-expr}\\n\\\n\t  ${2:then-expr}\\n\\\n\t  ${3:else-expr})\\n\\\nsnippet if-let \\n\\\n\t(if-let [${1:result} ${2:test-expr}]\\n\\\n\t\t(${3:then-expr} $1)\\n\\\n\t\t(${4:else-expr}))\\n\\\nsnippet imp\\n\\\n\t(:import [${1:package}])\\n\\\n\t& {:keys [${1:keys}] :or {${2:defaults}}}\\n\\\nsnippet let\\n\\\n\t(let [${1:name} ${2:expr}]\\n\\\n\t\t${3})\\n\\\nsnippet letfn\\n\\\n\t(letfn [(${1:name) [${2:args}]\\n\\\n\t          ${3})])\\n\\\nsnippet map\\n\\\n\t(map ${1:func} ${2:coll})\\n\\\nsnippet mapl\\n\\\n\t(map #(${1:lambda}) ${2:coll})\\n\\\nsnippet met\\n\\\n\t(${1:name} [${2:this} ${3:args}]\\n\\\n\t  ${4})\\n\\\nsnippet ns\\n\\\n\t(ns ${1:name}\\n\\\n\t  ${2})\\n\\\nsnippet dotimes\\n\\\n\t(dotimes [_ 10]\\n\\\n\t  (time\\n\\\n\t    (dotimes [_ ${1:times}]\\n\\\n\t      ${2})))\\n\\\nsnippet pmethod\\n\\\n\t(${1:name} [${2:this} ${3:args}])\\n\\\nsnippet refer\\n\\\n\t(:refer-clojure :exclude [${1}])\\n\\\nsnippet require\\n\\\n\t(:require [${1:namespace} :as [${2}]])\\n\\\nsnippet use\\n\\\n\t(:use [${1:namespace} :only [${2}]])\\n\\\nsnippet print\\n\\\n\t(println ${1})\\n\\\nsnippet reduce\\n\\\n\t(reduce ${1:(fn [p n] ${3})} ${2})\\n\\\nsnippet when\\n\\\n\t(when ${1:test} ${2:body})\\n\\\nsnippet when-let\\n\\\n\t(when-let [${1:result} ${2:test}]\\n\\\n\t\t${3:body})\\n\\\n\";\nexports.scope = \"clojure\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/cobol.js",
    "content": "ace.define(\"ace/snippets/cobol\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"cobol\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/coffee.js",
    "content": "ace.define(\"ace/snippets/coffee\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"# Closure loop\\n\\\nsnippet forindo\\n\\\n\tfor ${1:name} in ${2:array}\\n\\\n\t\tdo ($1) ->\\n\\\n\t\t\t${3:// body}\\n\\\n# Array comprehension\\n\\\nsnippet fora\\n\\\n\tfor ${1:name} in ${2:array}\\n\\\n\t\t${3:// body...}\\n\\\n# Object comprehension\\n\\\nsnippet foro\\n\\\n\tfor ${1:key}, ${2:value} of ${3:object}\\n\\\n\t\t${4:// body...}\\n\\\n# Range comprehension (inclusive)\\n\\\nsnippet forr\\n\\\n\tfor ${1:name} in [${2:start}..${3:finish}]\\n\\\n\t\t${4:// body...}\\n\\\nsnippet forrb\\n\\\n\tfor ${1:name} in [${2:start}..${3:finish}] by ${4:step}\\n\\\n\t\t${5:// body...}\\n\\\n# Range comprehension (exclusive)\\n\\\nsnippet forrex\\n\\\n\tfor ${1:name} in [${2:start}...${3:finish}]\\n\\\n\t\t${4:// body...}\\n\\\nsnippet forrexb\\n\\\n\tfor ${1:name} in [${2:start}...${3:finish}] by ${4:step}\\n\\\n\t\t${5:// body...}\\n\\\n# Function\\n\\\nsnippet fun\\n\\\n\t(${1:args}) ->\\n\\\n\t\t${2:// body...}\\n\\\n# Function (bound)\\n\\\nsnippet bfun\\n\\\n\t(${1:args}) =>\\n\\\n\t\t${2:// body...}\\n\\\n# Class\\n\\\nsnippet cla class ..\\n\\\n\tclass ${1:`substitute(Filename(), '\\\\(_\\\\|^\\\\)\\\\(.\\\\)', '\\\\u\\\\2', 'g')`}\\n\\\n\t\t${2}\\n\\\nsnippet cla class .. constructor: ..\\n\\\n\tclass ${1:`substitute(Filename(), '\\\\(_\\\\|^\\\\)\\\\(.\\\\)', '\\\\u\\\\2', 'g')`}\\n\\\n\t\tconstructor: (${2:args}) ->\\n\\\n\t\t\t${3}\\n\\\n\\n\\\n\t\t${4}\\n\\\nsnippet cla class .. extends ..\\n\\\n\tclass ${1:`substitute(Filename(), '\\\\(_\\\\|^\\\\)\\\\(.\\\\)', '\\\\u\\\\2', 'g')`} extends ${2:ParentClass}\\n\\\n\t\t${3}\\n\\\nsnippet cla class .. extends .. constructor: ..\\n\\\n\tclass ${1:`substitute(Filename(), '\\\\(_\\\\|^\\\\)\\\\(.\\\\)', '\\\\u\\\\2', 'g')`} extends ${2:ParentClass}\\n\\\n\t\tconstructor: (${3:args}) ->\\n\\\n\t\t\t${4}\\n\\\n\\n\\\n\t\t${5}\\n\\\n# If\\n\\\nsnippet if\\n\\\n\tif ${1:condition}\\n\\\n\t\t${2:// body...}\\n\\\n# If __ Else\\n\\\nsnippet ife\\n\\\n\tif ${1:condition}\\n\\\n\t\t${2:// body...}\\n\\\n\telse\\n\\\n\t\t${3:// body...}\\n\\\n# Else if\\n\\\nsnippet elif\\n\\\n\telse if ${1:condition}\\n\\\n\t\t${2:// body...}\\n\\\n# Ternary If\\n\\\nsnippet ifte\\n\\\n\tif ${1:condition} then ${2:value} else ${3:other}\\n\\\n# Unless\\n\\\nsnippet unl\\n\\\n\t${1:action} unless ${2:condition}\\n\\\n# Switch\\n\\\nsnippet swi\\n\\\n\tswitch ${1:object}\\n\\\n\t\twhen ${2:value}\\n\\\n\t\t\t${3:// body...}\\n\\\n\\n\\\n# Log\\n\\\nsnippet log\\n\\\n\tconsole.log ${1}\\n\\\n# Try __ Catch\\n\\\nsnippet try\\n\\\n\ttry\\n\\\n\t\t${1}\\n\\\n\tcatch ${2:error}\\n\\\n\t\t${3}\\n\\\n# Require\\n\\\nsnippet req\\n\\\n\t${2:$1} = require '${1:sys}'${3}\\n\\\n# Export\\n\\\nsnippet exp\\n\\\n\t${1:root} = exports ? this\\n\\\n\";\nexports.scope = \"coffee\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/coldfusion.js",
    "content": "ace.define(\"ace/snippets/coldfusion\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"coldfusion\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/csharp.js",
    "content": "ace.define(\"ace/snippets/csharp\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"csharp\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/css.js",
    "content": "ace.define(\"ace/snippets/css\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"snippet .\\n\\\n\t${1} {\\n\\\n\t\t${2}\\n\\\n\t}\\n\\\nsnippet !\\n\\\n\t !important\\n\\\nsnippet bdi:m+\\n\\\n\t-moz-border-image: url(${1}) ${2:0} ${3:0} ${4:0} ${5:0} ${6:stretch} ${7:stretch};\\n\\\nsnippet bdi:m\\n\\\n\t-moz-border-image: ${1};\\n\\\nsnippet bdrz:m\\n\\\n\t-moz-border-radius: ${1};\\n\\\nsnippet bxsh:m+\\n\\\n\t-moz-box-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\\n\\\nsnippet bxsh:m\\n\\\n\t-moz-box-shadow: ${1};\\n\\\nsnippet bdi:w+\\n\\\n\t-webkit-border-image: url(${1}) ${2:0} ${3:0} ${4:0} ${5:0} ${6:stretch} ${7:stretch};\\n\\\nsnippet bdi:w\\n\\\n\t-webkit-border-image: ${1};\\n\\\nsnippet bdrz:w\\n\\\n\t-webkit-border-radius: ${1};\\n\\\nsnippet bxsh:w+\\n\\\n\t-webkit-box-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\\n\\\nsnippet bxsh:w\\n\\\n\t-webkit-box-shadow: ${1};\\n\\\nsnippet @f\\n\\\n\t@font-face {\\n\\\n\t\tfont-family: ${1};\\n\\\n\t\tsrc: url(${2});\\n\\\n\t}\\n\\\nsnippet @i\\n\\\n\t@import url(${1});\\n\\\nsnippet @m\\n\\\n\t@media ${1:print} {\\n\\\n\t\t${2}\\n\\\n\t}\\n\\\nsnippet bg+\\n\\\n\tbackground: #${1:FFF} url(${2}) ${3:0} ${4:0} ${5:no-repeat};\\n\\\nsnippet bga\\n\\\n\tbackground-attachment: ${1};\\n\\\nsnippet bga:f\\n\\\n\tbackground-attachment: fixed;\\n\\\nsnippet bga:s\\n\\\n\tbackground-attachment: scroll;\\n\\\nsnippet bgbk\\n\\\n\tbackground-break: ${1};\\n\\\nsnippet bgbk:bb\\n\\\n\tbackground-break: bounding-box;\\n\\\nsnippet bgbk:c\\n\\\n\tbackground-break: continuous;\\n\\\nsnippet bgbk:eb\\n\\\n\tbackground-break: each-box;\\n\\\nsnippet bgcp\\n\\\n\tbackground-clip: ${1};\\n\\\nsnippet bgcp:bb\\n\\\n\tbackground-clip: border-box;\\n\\\nsnippet bgcp:cb\\n\\\n\tbackground-clip: content-box;\\n\\\nsnippet bgcp:nc\\n\\\n\tbackground-clip: no-clip;\\n\\\nsnippet bgcp:pb\\n\\\n\tbackground-clip: padding-box;\\n\\\nsnippet bgc\\n\\\n\tbackground-color: #${1:FFF};\\n\\\nsnippet bgc:t\\n\\\n\tbackground-color: transparent;\\n\\\nsnippet bgi\\n\\\n\tbackground-image: url(${1});\\n\\\nsnippet bgi:n\\n\\\n\tbackground-image: none;\\n\\\nsnippet bgo\\n\\\n\tbackground-origin: ${1};\\n\\\nsnippet bgo:bb\\n\\\n\tbackground-origin: border-box;\\n\\\nsnippet bgo:cb\\n\\\n\tbackground-origin: content-box;\\n\\\nsnippet bgo:pb\\n\\\n\tbackground-origin: padding-box;\\n\\\nsnippet bgpx\\n\\\n\tbackground-position-x: ${1};\\n\\\nsnippet bgpy\\n\\\n\tbackground-position-y: ${1};\\n\\\nsnippet bgp\\n\\\n\tbackground-position: ${1:0} ${2:0};\\n\\\nsnippet bgr\\n\\\n\tbackground-repeat: ${1};\\n\\\nsnippet bgr:n\\n\\\n\tbackground-repeat: no-repeat;\\n\\\nsnippet bgr:x\\n\\\n\tbackground-repeat: repeat-x;\\n\\\nsnippet bgr:y\\n\\\n\tbackground-repeat: repeat-y;\\n\\\nsnippet bgr:r\\n\\\n\tbackground-repeat: repeat;\\n\\\nsnippet bgz\\n\\\n\tbackground-size: ${1};\\n\\\nsnippet bgz:a\\n\\\n\tbackground-size: auto;\\n\\\nsnippet bgz:ct\\n\\\n\tbackground-size: contain;\\n\\\nsnippet bgz:cv\\n\\\n\tbackground-size: cover;\\n\\\nsnippet bg\\n\\\n\tbackground: ${1};\\n\\\nsnippet bg:ie\\n\\\n\tfilter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='${1}',sizingMethod='${2:crop}');\\n\\\nsnippet bg:n\\n\\\n\tbackground: none;\\n\\\nsnippet bd+\\n\\\n\tborder: ${1:1px} ${2:solid} #${3:000};\\n\\\nsnippet bdb+\\n\\\n\tborder-bottom: ${1:1px} ${2:solid} #${3:000};\\n\\\nsnippet bdbc\\n\\\n\tborder-bottom-color: #${1:000};\\n\\\nsnippet bdbi\\n\\\n\tborder-bottom-image: url(${1});\\n\\\nsnippet bdbi:n\\n\\\n\tborder-bottom-image: none;\\n\\\nsnippet bdbli\\n\\\n\tborder-bottom-left-image: url(${1});\\n\\\nsnippet bdbli:c\\n\\\n\tborder-bottom-left-image: continue;\\n\\\nsnippet bdbli:n\\n\\\n\tborder-bottom-left-image: none;\\n\\\nsnippet bdblrz\\n\\\n\tborder-bottom-left-radius: ${1};\\n\\\nsnippet bdbri\\n\\\n\tborder-bottom-right-image: url(${1});\\n\\\nsnippet bdbri:c\\n\\\n\tborder-bottom-right-image: continue;\\n\\\nsnippet bdbri:n\\n\\\n\tborder-bottom-right-image: none;\\n\\\nsnippet bdbrrz\\n\\\n\tborder-bottom-right-radius: ${1};\\n\\\nsnippet bdbs\\n\\\n\tborder-bottom-style: ${1};\\n\\\nsnippet bdbs:n\\n\\\n\tborder-bottom-style: none;\\n\\\nsnippet bdbw\\n\\\n\tborder-bottom-width: ${1};\\n\\\nsnippet bdb\\n\\\n\tborder-bottom: ${1};\\n\\\nsnippet bdb:n\\n\\\n\tborder-bottom: none;\\n\\\nsnippet bdbk\\n\\\n\tborder-break: ${1};\\n\\\nsnippet bdbk:c\\n\\\n\tborder-break: close;\\n\\\nsnippet bdcl\\n\\\n\tborder-collapse: ${1};\\n\\\nsnippet bdcl:c\\n\\\n\tborder-collapse: collapse;\\n\\\nsnippet bdcl:s\\n\\\n\tborder-collapse: separate;\\n\\\nsnippet bdc\\n\\\n\tborder-color: #${1:000};\\n\\\nsnippet bdci\\n\\\n\tborder-corner-image: url(${1});\\n\\\nsnippet bdci:c\\n\\\n\tborder-corner-image: continue;\\n\\\nsnippet bdci:n\\n\\\n\tborder-corner-image: none;\\n\\\nsnippet bdf\\n\\\n\tborder-fit: ${1};\\n\\\nsnippet bdf:c\\n\\\n\tborder-fit: clip;\\n\\\nsnippet bdf:of\\n\\\n\tborder-fit: overwrite;\\n\\\nsnippet bdf:ow\\n\\\n\tborder-fit: overwrite;\\n\\\nsnippet bdf:r\\n\\\n\tborder-fit: repeat;\\n\\\nsnippet bdf:sc\\n\\\n\tborder-fit: scale;\\n\\\nsnippet bdf:sp\\n\\\n\tborder-fit: space;\\n\\\nsnippet bdf:st\\n\\\n\tborder-fit: stretch;\\n\\\nsnippet bdi\\n\\\n\tborder-image: url(${1}) ${2:0} ${3:0} ${4:0} ${5:0} ${6:stretch} ${7:stretch};\\n\\\nsnippet bdi:n\\n\\\n\tborder-image: none;\\n\\\nsnippet bdl+\\n\\\n\tborder-left: ${1:1px} ${2:solid} #${3:000};\\n\\\nsnippet bdlc\\n\\\n\tborder-left-color: #${1:000};\\n\\\nsnippet bdli\\n\\\n\tborder-left-image: url(${1});\\n\\\nsnippet bdli:n\\n\\\n\tborder-left-image: none;\\n\\\nsnippet bdls\\n\\\n\tborder-left-style: ${1};\\n\\\nsnippet bdls:n\\n\\\n\tborder-left-style: none;\\n\\\nsnippet bdlw\\n\\\n\tborder-left-width: ${1};\\n\\\nsnippet bdl\\n\\\n\tborder-left: ${1};\\n\\\nsnippet bdl:n\\n\\\n\tborder-left: none;\\n\\\nsnippet bdlt\\n\\\n\tborder-length: ${1};\\n\\\nsnippet bdlt:a\\n\\\n\tborder-length: auto;\\n\\\nsnippet bdrz\\n\\\n\tborder-radius: ${1};\\n\\\nsnippet bdr+\\n\\\n\tborder-right: ${1:1px} ${2:solid} #${3:000};\\n\\\nsnippet bdrc\\n\\\n\tborder-right-color: #${1:000};\\n\\\nsnippet bdri\\n\\\n\tborder-right-image: url(${1});\\n\\\nsnippet bdri:n\\n\\\n\tborder-right-image: none;\\n\\\nsnippet bdrs\\n\\\n\tborder-right-style: ${1};\\n\\\nsnippet bdrs:n\\n\\\n\tborder-right-style: none;\\n\\\nsnippet bdrw\\n\\\n\tborder-right-width: ${1};\\n\\\nsnippet bdr\\n\\\n\tborder-right: ${1};\\n\\\nsnippet bdr:n\\n\\\n\tborder-right: none;\\n\\\nsnippet bdsp\\n\\\n\tborder-spacing: ${1};\\n\\\nsnippet bds\\n\\\n\tborder-style: ${1};\\n\\\nsnippet bds:ds\\n\\\n\tborder-style: dashed;\\n\\\nsnippet bds:dtds\\n\\\n\tborder-style: dot-dash;\\n\\\nsnippet bds:dtdtds\\n\\\n\tborder-style: dot-dot-dash;\\n\\\nsnippet bds:dt\\n\\\n\tborder-style: dotted;\\n\\\nsnippet bds:db\\n\\\n\tborder-style: double;\\n\\\nsnippet bds:g\\n\\\n\tborder-style: groove;\\n\\\nsnippet bds:h\\n\\\n\tborder-style: hidden;\\n\\\nsnippet bds:i\\n\\\n\tborder-style: inset;\\n\\\nsnippet bds:n\\n\\\n\tborder-style: none;\\n\\\nsnippet bds:o\\n\\\n\tborder-style: outset;\\n\\\nsnippet bds:r\\n\\\n\tborder-style: ridge;\\n\\\nsnippet bds:s\\n\\\n\tborder-style: solid;\\n\\\nsnippet bds:w\\n\\\n\tborder-style: wave;\\n\\\nsnippet bdt+\\n\\\n\tborder-top: ${1:1px} ${2:solid} #${3:000};\\n\\\nsnippet bdtc\\n\\\n\tborder-top-color: #${1:000};\\n\\\nsnippet bdti\\n\\\n\tborder-top-image: url(${1});\\n\\\nsnippet bdti:n\\n\\\n\tborder-top-image: none;\\n\\\nsnippet bdtli\\n\\\n\tborder-top-left-image: url(${1});\\n\\\nsnippet bdtli:c\\n\\\n\tborder-corner-image: continue;\\n\\\nsnippet bdtli:n\\n\\\n\tborder-corner-image: none;\\n\\\nsnippet bdtlrz\\n\\\n\tborder-top-left-radius: ${1};\\n\\\nsnippet bdtri\\n\\\n\tborder-top-right-image: url(${1});\\n\\\nsnippet bdtri:c\\n\\\n\tborder-top-right-image: continue;\\n\\\nsnippet bdtri:n\\n\\\n\tborder-top-right-image: none;\\n\\\nsnippet bdtrrz\\n\\\n\tborder-top-right-radius: ${1};\\n\\\nsnippet bdts\\n\\\n\tborder-top-style: ${1};\\n\\\nsnippet bdts:n\\n\\\n\tborder-top-style: none;\\n\\\nsnippet bdtw\\n\\\n\tborder-top-width: ${1};\\n\\\nsnippet bdt\\n\\\n\tborder-top: ${1};\\n\\\nsnippet bdt:n\\n\\\n\tborder-top: none;\\n\\\nsnippet bdw\\n\\\n\tborder-width: ${1};\\n\\\nsnippet bd\\n\\\n\tborder: ${1};\\n\\\nsnippet bd:n\\n\\\n\tborder: none;\\n\\\nsnippet b\\n\\\n\tbottom: ${1};\\n\\\nsnippet b:a\\n\\\n\tbottom: auto;\\n\\\nsnippet bxsh+\\n\\\n\tbox-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\\n\\\nsnippet bxsh\\n\\\n\tbox-shadow: ${1};\\n\\\nsnippet bxsh:n\\n\\\n\tbox-shadow: none;\\n\\\nsnippet bxz\\n\\\n\tbox-sizing: ${1};\\n\\\nsnippet bxz:bb\\n\\\n\tbox-sizing: border-box;\\n\\\nsnippet bxz:cb\\n\\\n\tbox-sizing: content-box;\\n\\\nsnippet cps\\n\\\n\tcaption-side: ${1};\\n\\\nsnippet cps:b\\n\\\n\tcaption-side: bottom;\\n\\\nsnippet cps:t\\n\\\n\tcaption-side: top;\\n\\\nsnippet cl\\n\\\n\tclear: ${1};\\n\\\nsnippet cl:b\\n\\\n\tclear: both;\\n\\\nsnippet cl:l\\n\\\n\tclear: left;\\n\\\nsnippet cl:n\\n\\\n\tclear: none;\\n\\\nsnippet cl:r\\n\\\n\tclear: right;\\n\\\nsnippet cp\\n\\\n\tclip: ${1};\\n\\\nsnippet cp:a\\n\\\n\tclip: auto;\\n\\\nsnippet cp:r\\n\\\n\tclip: rect(${1:0} ${2:0} ${3:0} ${4:0});\\n\\\nsnippet c\\n\\\n\tcolor: #${1:000};\\n\\\nsnippet ct\\n\\\n\tcontent: ${1};\\n\\\nsnippet ct:a\\n\\\n\tcontent: attr(${1});\\n\\\nsnippet ct:cq\\n\\\n\tcontent: close-quote;\\n\\\nsnippet ct:c\\n\\\n\tcontent: counter(${1});\\n\\\nsnippet ct:cs\\n\\\n\tcontent: counters(${1});\\n\\\nsnippet ct:ncq\\n\\\n\tcontent: no-close-quote;\\n\\\nsnippet ct:noq\\n\\\n\tcontent: no-open-quote;\\n\\\nsnippet ct:n\\n\\\n\tcontent: normal;\\n\\\nsnippet ct:oq\\n\\\n\tcontent: open-quote;\\n\\\nsnippet coi\\n\\\n\tcounter-increment: ${1};\\n\\\nsnippet cor\\n\\\n\tcounter-reset: ${1};\\n\\\nsnippet cur\\n\\\n\tcursor: ${1};\\n\\\nsnippet cur:a\\n\\\n\tcursor: auto;\\n\\\nsnippet cur:c\\n\\\n\tcursor: crosshair;\\n\\\nsnippet cur:d\\n\\\n\tcursor: default;\\n\\\nsnippet cur:ha\\n\\\n\tcursor: hand;\\n\\\nsnippet cur:he\\n\\\n\tcursor: help;\\n\\\nsnippet cur:m\\n\\\n\tcursor: move;\\n\\\nsnippet cur:p\\n\\\n\tcursor: pointer;\\n\\\nsnippet cur:t\\n\\\n\tcursor: text;\\n\\\nsnippet d\\n\\\n\tdisplay: ${1};\\n\\\nsnippet d:mib\\n\\\n\tdisplay: -moz-inline-box;\\n\\\nsnippet d:mis\\n\\\n\tdisplay: -moz-inline-stack;\\n\\\nsnippet d:b\\n\\\n\tdisplay: block;\\n\\\nsnippet d:cp\\n\\\n\tdisplay: compact;\\n\\\nsnippet d:ib\\n\\\n\tdisplay: inline-block;\\n\\\nsnippet d:itb\\n\\\n\tdisplay: inline-table;\\n\\\nsnippet d:i\\n\\\n\tdisplay: inline;\\n\\\nsnippet d:li\\n\\\n\tdisplay: list-item;\\n\\\nsnippet d:n\\n\\\n\tdisplay: none;\\n\\\nsnippet d:ri\\n\\\n\tdisplay: run-in;\\n\\\nsnippet d:tbcp\\n\\\n\tdisplay: table-caption;\\n\\\nsnippet d:tbc\\n\\\n\tdisplay: table-cell;\\n\\\nsnippet d:tbclg\\n\\\n\tdisplay: table-column-group;\\n\\\nsnippet d:tbcl\\n\\\n\tdisplay: table-column;\\n\\\nsnippet d:tbfg\\n\\\n\tdisplay: table-footer-group;\\n\\\nsnippet d:tbhg\\n\\\n\tdisplay: table-header-group;\\n\\\nsnippet d:tbrg\\n\\\n\tdisplay: table-row-group;\\n\\\nsnippet d:tbr\\n\\\n\tdisplay: table-row;\\n\\\nsnippet d:tb\\n\\\n\tdisplay: table;\\n\\\nsnippet ec\\n\\\n\tempty-cells: ${1};\\n\\\nsnippet ec:h\\n\\\n\tempty-cells: hide;\\n\\\nsnippet ec:s\\n\\\n\tempty-cells: show;\\n\\\nsnippet exp\\n\\\n\texpression()\\n\\\nsnippet fl\\n\\\n\tfloat: ${1};\\n\\\nsnippet fl:l\\n\\\n\tfloat: left;\\n\\\nsnippet fl:n\\n\\\n\tfloat: none;\\n\\\nsnippet fl:r\\n\\\n\tfloat: right;\\n\\\nsnippet f+\\n\\\n\tfont: ${1:1em} ${2:Arial},${3:sans-serif};\\n\\\nsnippet fef\\n\\\n\tfont-effect: ${1};\\n\\\nsnippet fef:eb\\n\\\n\tfont-effect: emboss;\\n\\\nsnippet fef:eg\\n\\\n\tfont-effect: engrave;\\n\\\nsnippet fef:n\\n\\\n\tfont-effect: none;\\n\\\nsnippet fef:o\\n\\\n\tfont-effect: outline;\\n\\\nsnippet femp\\n\\\n\tfont-emphasize-position: ${1};\\n\\\nsnippet femp:a\\n\\\n\tfont-emphasize-position: after;\\n\\\nsnippet femp:b\\n\\\n\tfont-emphasize-position: before;\\n\\\nsnippet fems\\n\\\n\tfont-emphasize-style: ${1};\\n\\\nsnippet fems:ac\\n\\\n\tfont-emphasize-style: accent;\\n\\\nsnippet fems:c\\n\\\n\tfont-emphasize-style: circle;\\n\\\nsnippet fems:ds\\n\\\n\tfont-emphasize-style: disc;\\n\\\nsnippet fems:dt\\n\\\n\tfont-emphasize-style: dot;\\n\\\nsnippet fems:n\\n\\\n\tfont-emphasize-style: none;\\n\\\nsnippet fem\\n\\\n\tfont-emphasize: ${1};\\n\\\nsnippet ff\\n\\\n\tfont-family: ${1};\\n\\\nsnippet ff:c\\n\\\n\tfont-family: ${1:'Monotype Corsiva','Comic Sans MS'},cursive;\\n\\\nsnippet ff:f\\n\\\n\tfont-family: ${1:Capitals,Impact},fantasy;\\n\\\nsnippet ff:m\\n\\\n\tfont-family: ${1:Monaco,'Courier New'},monospace;\\n\\\nsnippet ff:ss\\n\\\n\tfont-family: ${1:Helvetica,Arial},sans-serif;\\n\\\nsnippet ff:s\\n\\\n\tfont-family: ${1:Georgia,'Times New Roman'},serif;\\n\\\nsnippet fza\\n\\\n\tfont-size-adjust: ${1};\\n\\\nsnippet fza:n\\n\\\n\tfont-size-adjust: none;\\n\\\nsnippet fz\\n\\\n\tfont-size: ${1};\\n\\\nsnippet fsm\\n\\\n\tfont-smooth: ${1};\\n\\\nsnippet fsm:aw\\n\\\n\tfont-smooth: always;\\n\\\nsnippet fsm:a\\n\\\n\tfont-smooth: auto;\\n\\\nsnippet fsm:n\\n\\\n\tfont-smooth: never;\\n\\\nsnippet fst\\n\\\n\tfont-stretch: ${1};\\n\\\nsnippet fst:c\\n\\\n\tfont-stretch: condensed;\\n\\\nsnippet fst:e\\n\\\n\tfont-stretch: expanded;\\n\\\nsnippet fst:ec\\n\\\n\tfont-stretch: extra-condensed;\\n\\\nsnippet fst:ee\\n\\\n\tfont-stretch: extra-expanded;\\n\\\nsnippet fst:n\\n\\\n\tfont-stretch: normal;\\n\\\nsnippet fst:sc\\n\\\n\tfont-stretch: semi-condensed;\\n\\\nsnippet fst:se\\n\\\n\tfont-stretch: semi-expanded;\\n\\\nsnippet fst:uc\\n\\\n\tfont-stretch: ultra-condensed;\\n\\\nsnippet fst:ue\\n\\\n\tfont-stretch: ultra-expanded;\\n\\\nsnippet fs\\n\\\n\tfont-style: ${1};\\n\\\nsnippet fs:i\\n\\\n\tfont-style: italic;\\n\\\nsnippet fs:n\\n\\\n\tfont-style: normal;\\n\\\nsnippet fs:o\\n\\\n\tfont-style: oblique;\\n\\\nsnippet fv\\n\\\n\tfont-variant: ${1};\\n\\\nsnippet fv:n\\n\\\n\tfont-variant: normal;\\n\\\nsnippet fv:sc\\n\\\n\tfont-variant: small-caps;\\n\\\nsnippet fw\\n\\\n\tfont-weight: ${1};\\n\\\nsnippet fw:b\\n\\\n\tfont-weight: bold;\\n\\\nsnippet fw:br\\n\\\n\tfont-weight: bolder;\\n\\\nsnippet fw:lr\\n\\\n\tfont-weight: lighter;\\n\\\nsnippet fw:n\\n\\\n\tfont-weight: normal;\\n\\\nsnippet f\\n\\\n\tfont: ${1};\\n\\\nsnippet h\\n\\\n\theight: ${1};\\n\\\nsnippet h:a\\n\\\n\theight: auto;\\n\\\nsnippet l\\n\\\n\tleft: ${1};\\n\\\nsnippet l:a\\n\\\n\tleft: auto;\\n\\\nsnippet lts\\n\\\n\tletter-spacing: ${1};\\n\\\nsnippet lh\\n\\\n\tline-height: ${1};\\n\\\nsnippet lisi\\n\\\n\tlist-style-image: url(${1});\\n\\\nsnippet lisi:n\\n\\\n\tlist-style-image: none;\\n\\\nsnippet lisp\\n\\\n\tlist-style-position: ${1};\\n\\\nsnippet lisp:i\\n\\\n\tlist-style-position: inside;\\n\\\nsnippet lisp:o\\n\\\n\tlist-style-position: outside;\\n\\\nsnippet list\\n\\\n\tlist-style-type: ${1};\\n\\\nsnippet list:c\\n\\\n\tlist-style-type: circle;\\n\\\nsnippet list:dclz\\n\\\n\tlist-style-type: decimal-leading-zero;\\n\\\nsnippet list:dc\\n\\\n\tlist-style-type: decimal;\\n\\\nsnippet list:d\\n\\\n\tlist-style-type: disc;\\n\\\nsnippet list:lr\\n\\\n\tlist-style-type: lower-roman;\\n\\\nsnippet list:n\\n\\\n\tlist-style-type: none;\\n\\\nsnippet list:s\\n\\\n\tlist-style-type: square;\\n\\\nsnippet list:ur\\n\\\n\tlist-style-type: upper-roman;\\n\\\nsnippet lis\\n\\\n\tlist-style: ${1};\\n\\\nsnippet lis:n\\n\\\n\tlist-style: none;\\n\\\nsnippet mb\\n\\\n\tmargin-bottom: ${1};\\n\\\nsnippet mb:a\\n\\\n\tmargin-bottom: auto;\\n\\\nsnippet ml\\n\\\n\tmargin-left: ${1};\\n\\\nsnippet ml:a\\n\\\n\tmargin-left: auto;\\n\\\nsnippet mr\\n\\\n\tmargin-right: ${1};\\n\\\nsnippet mr:a\\n\\\n\tmargin-right: auto;\\n\\\nsnippet mt\\n\\\n\tmargin-top: ${1};\\n\\\nsnippet mt:a\\n\\\n\tmargin-top: auto;\\n\\\nsnippet m\\n\\\n\tmargin: ${1};\\n\\\nsnippet m:4\\n\\\n\tmargin: ${1:0} ${2:0} ${3:0} ${4:0};\\n\\\nsnippet m:3\\n\\\n\tmargin: ${1:0} ${2:0} ${3:0};\\n\\\nsnippet m:2\\n\\\n\tmargin: ${1:0} ${2:0};\\n\\\nsnippet m:0\\n\\\n\tmargin: 0;\\n\\\nsnippet m:a\\n\\\n\tmargin: auto;\\n\\\nsnippet mah\\n\\\n\tmax-height: ${1};\\n\\\nsnippet mah:n\\n\\\n\tmax-height: none;\\n\\\nsnippet maw\\n\\\n\tmax-width: ${1};\\n\\\nsnippet maw:n\\n\\\n\tmax-width: none;\\n\\\nsnippet mih\\n\\\n\tmin-height: ${1};\\n\\\nsnippet miw\\n\\\n\tmin-width: ${1};\\n\\\nsnippet op\\n\\\n\topacity: ${1};\\n\\\nsnippet op:ie\\n\\\n\tfilter: progid:DXImageTransform.Microsoft.Alpha(Opacity=${1:100});\\n\\\nsnippet op:ms\\n\\\n\t-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=${1:100})';\\n\\\nsnippet orp\\n\\\n\torphans: ${1};\\n\\\nsnippet o+\\n\\\n\toutline: ${1:1px} ${2:solid} #${3:000};\\n\\\nsnippet oc\\n\\\n\toutline-color: ${1:#000};\\n\\\nsnippet oc:i\\n\\\n\toutline-color: invert;\\n\\\nsnippet oo\\n\\\n\toutline-offset: ${1};\\n\\\nsnippet os\\n\\\n\toutline-style: ${1};\\n\\\nsnippet ow\\n\\\n\toutline-width: ${1};\\n\\\nsnippet o\\n\\\n\toutline: ${1};\\n\\\nsnippet o:n\\n\\\n\toutline: none;\\n\\\nsnippet ovs\\n\\\n\toverflow-style: ${1};\\n\\\nsnippet ovs:a\\n\\\n\toverflow-style: auto;\\n\\\nsnippet ovs:mq\\n\\\n\toverflow-style: marquee;\\n\\\nsnippet ovs:mv\\n\\\n\toverflow-style: move;\\n\\\nsnippet ovs:p\\n\\\n\toverflow-style: panner;\\n\\\nsnippet ovs:s\\n\\\n\toverflow-style: scrollbar;\\n\\\nsnippet ovx\\n\\\n\toverflow-x: ${1};\\n\\\nsnippet ovx:a\\n\\\n\toverflow-x: auto;\\n\\\nsnippet ovx:h\\n\\\n\toverflow-x: hidden;\\n\\\nsnippet ovx:s\\n\\\n\toverflow-x: scroll;\\n\\\nsnippet ovx:v\\n\\\n\toverflow-x: visible;\\n\\\nsnippet ovy\\n\\\n\toverflow-y: ${1};\\n\\\nsnippet ovy:a\\n\\\n\toverflow-y: auto;\\n\\\nsnippet ovy:h\\n\\\n\toverflow-y: hidden;\\n\\\nsnippet ovy:s\\n\\\n\toverflow-y: scroll;\\n\\\nsnippet ovy:v\\n\\\n\toverflow-y: visible;\\n\\\nsnippet ov\\n\\\n\toverflow: ${1};\\n\\\nsnippet ov:a\\n\\\n\toverflow: auto;\\n\\\nsnippet ov:h\\n\\\n\toverflow: hidden;\\n\\\nsnippet ov:s\\n\\\n\toverflow: scroll;\\n\\\nsnippet ov:v\\n\\\n\toverflow: visible;\\n\\\nsnippet pb\\n\\\n\tpadding-bottom: ${1};\\n\\\nsnippet pl\\n\\\n\tpadding-left: ${1};\\n\\\nsnippet pr\\n\\\n\tpadding-right: ${1};\\n\\\nsnippet pt\\n\\\n\tpadding-top: ${1};\\n\\\nsnippet p\\n\\\n\tpadding: ${1};\\n\\\nsnippet p:4\\n\\\n\tpadding: ${1:0} ${2:0} ${3:0} ${4:0};\\n\\\nsnippet p:3\\n\\\n\tpadding: ${1:0} ${2:0} ${3:0};\\n\\\nsnippet p:2\\n\\\n\tpadding: ${1:0} ${2:0};\\n\\\nsnippet p:0\\n\\\n\tpadding: 0;\\n\\\nsnippet pgba\\n\\\n\tpage-break-after: ${1};\\n\\\nsnippet pgba:aw\\n\\\n\tpage-break-after: always;\\n\\\nsnippet pgba:a\\n\\\n\tpage-break-after: auto;\\n\\\nsnippet pgba:l\\n\\\n\tpage-break-after: left;\\n\\\nsnippet pgba:r\\n\\\n\tpage-break-after: right;\\n\\\nsnippet pgbb\\n\\\n\tpage-break-before: ${1};\\n\\\nsnippet pgbb:aw\\n\\\n\tpage-break-before: always;\\n\\\nsnippet pgbb:a\\n\\\n\tpage-break-before: auto;\\n\\\nsnippet pgbb:l\\n\\\n\tpage-break-before: left;\\n\\\nsnippet pgbb:r\\n\\\n\tpage-break-before: right;\\n\\\nsnippet pgbi\\n\\\n\tpage-break-inside: ${1};\\n\\\nsnippet pgbi:a\\n\\\n\tpage-break-inside: auto;\\n\\\nsnippet pgbi:av\\n\\\n\tpage-break-inside: avoid;\\n\\\nsnippet pos\\n\\\n\tposition: ${1};\\n\\\nsnippet pos:a\\n\\\n\tposition: absolute;\\n\\\nsnippet pos:f\\n\\\n\tposition: fixed;\\n\\\nsnippet pos:r\\n\\\n\tposition: relative;\\n\\\nsnippet pos:s\\n\\\n\tposition: static;\\n\\\nsnippet q\\n\\\n\tquotes: ${1};\\n\\\nsnippet q:en\\n\\\n\tquotes: '\\\\201C' '\\\\201D' '\\\\2018' '\\\\2019';\\n\\\nsnippet q:n\\n\\\n\tquotes: none;\\n\\\nsnippet q:ru\\n\\\n\tquotes: '\\\\00AB' '\\\\00BB' '\\\\201E' '\\\\201C';\\n\\\nsnippet rz\\n\\\n\tresize: ${1};\\n\\\nsnippet rz:b\\n\\\n\tresize: both;\\n\\\nsnippet rz:h\\n\\\n\tresize: horizontal;\\n\\\nsnippet rz:n\\n\\\n\tresize: none;\\n\\\nsnippet rz:v\\n\\\n\tresize: vertical;\\n\\\nsnippet r\\n\\\n\tright: ${1};\\n\\\nsnippet r:a\\n\\\n\tright: auto;\\n\\\nsnippet tbl\\n\\\n\ttable-layout: ${1};\\n\\\nsnippet tbl:a\\n\\\n\ttable-layout: auto;\\n\\\nsnippet tbl:f\\n\\\n\ttable-layout: fixed;\\n\\\nsnippet tal\\n\\\n\ttext-align-last: ${1};\\n\\\nsnippet tal:a\\n\\\n\ttext-align-last: auto;\\n\\\nsnippet tal:c\\n\\\n\ttext-align-last: center;\\n\\\nsnippet tal:l\\n\\\n\ttext-align-last: left;\\n\\\nsnippet tal:r\\n\\\n\ttext-align-last: right;\\n\\\nsnippet ta\\n\\\n\ttext-align: ${1};\\n\\\nsnippet ta:c\\n\\\n\ttext-align: center;\\n\\\nsnippet ta:l\\n\\\n\ttext-align: left;\\n\\\nsnippet ta:r\\n\\\n\ttext-align: right;\\n\\\nsnippet td\\n\\\n\ttext-decoration: ${1};\\n\\\nsnippet td:l\\n\\\n\ttext-decoration: line-through;\\n\\\nsnippet td:n\\n\\\n\ttext-decoration: none;\\n\\\nsnippet td:o\\n\\\n\ttext-decoration: overline;\\n\\\nsnippet td:u\\n\\\n\ttext-decoration: underline;\\n\\\nsnippet te\\n\\\n\ttext-emphasis: ${1};\\n\\\nsnippet te:ac\\n\\\n\ttext-emphasis: accent;\\n\\\nsnippet te:a\\n\\\n\ttext-emphasis: after;\\n\\\nsnippet te:b\\n\\\n\ttext-emphasis: before;\\n\\\nsnippet te:c\\n\\\n\ttext-emphasis: circle;\\n\\\nsnippet te:ds\\n\\\n\ttext-emphasis: disc;\\n\\\nsnippet te:dt\\n\\\n\ttext-emphasis: dot;\\n\\\nsnippet te:n\\n\\\n\ttext-emphasis: none;\\n\\\nsnippet th\\n\\\n\ttext-height: ${1};\\n\\\nsnippet th:a\\n\\\n\ttext-height: auto;\\n\\\nsnippet th:f\\n\\\n\ttext-height: font-size;\\n\\\nsnippet th:m\\n\\\n\ttext-height: max-size;\\n\\\nsnippet th:t\\n\\\n\ttext-height: text-size;\\n\\\nsnippet ti\\n\\\n\ttext-indent: ${1};\\n\\\nsnippet ti:-\\n\\\n\ttext-indent: -9999px;\\n\\\nsnippet tj\\n\\\n\ttext-justify: ${1};\\n\\\nsnippet tj:a\\n\\\n\ttext-justify: auto;\\n\\\nsnippet tj:d\\n\\\n\ttext-justify: distribute;\\n\\\nsnippet tj:ic\\n\\\n\ttext-justify: inter-cluster;\\n\\\nsnippet tj:ii\\n\\\n\ttext-justify: inter-ideograph;\\n\\\nsnippet tj:iw\\n\\\n\ttext-justify: inter-word;\\n\\\nsnippet tj:k\\n\\\n\ttext-justify: kashida;\\n\\\nsnippet tj:t\\n\\\n\ttext-justify: tibetan;\\n\\\nsnippet to+\\n\\\n\ttext-outline: ${1:0} ${2:0} #${3:000};\\n\\\nsnippet to\\n\\\n\ttext-outline: ${1};\\n\\\nsnippet to:n\\n\\\n\ttext-outline: none;\\n\\\nsnippet tr\\n\\\n\ttext-replace: ${1};\\n\\\nsnippet tr:n\\n\\\n\ttext-replace: none;\\n\\\nsnippet tsh+\\n\\\n\ttext-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\\n\\\nsnippet tsh\\n\\\n\ttext-shadow: ${1};\\n\\\nsnippet tsh:n\\n\\\n\ttext-shadow: none;\\n\\\nsnippet tt\\n\\\n\ttext-transform: ${1};\\n\\\nsnippet tt:c\\n\\\n\ttext-transform: capitalize;\\n\\\nsnippet tt:l\\n\\\n\ttext-transform: lowercase;\\n\\\nsnippet tt:n\\n\\\n\ttext-transform: none;\\n\\\nsnippet tt:u\\n\\\n\ttext-transform: uppercase;\\n\\\nsnippet tw\\n\\\n\ttext-wrap: ${1};\\n\\\nsnippet tw:no\\n\\\n\ttext-wrap: none;\\n\\\nsnippet tw:n\\n\\\n\ttext-wrap: normal;\\n\\\nsnippet tw:s\\n\\\n\ttext-wrap: suppress;\\n\\\nsnippet tw:u\\n\\\n\ttext-wrap: unrestricted;\\n\\\nsnippet t\\n\\\n\ttop: ${1};\\n\\\nsnippet t:a\\n\\\n\ttop: auto;\\n\\\nsnippet va\\n\\\n\tvertical-align: ${1};\\n\\\nsnippet va:bl\\n\\\n\tvertical-align: baseline;\\n\\\nsnippet va:b\\n\\\n\tvertical-align: bottom;\\n\\\nsnippet va:m\\n\\\n\tvertical-align: middle;\\n\\\nsnippet va:sub\\n\\\n\tvertical-align: sub;\\n\\\nsnippet va:sup\\n\\\n\tvertical-align: super;\\n\\\nsnippet va:tb\\n\\\n\tvertical-align: text-bottom;\\n\\\nsnippet va:tt\\n\\\n\tvertical-align: text-top;\\n\\\nsnippet va:t\\n\\\n\tvertical-align: top;\\n\\\nsnippet v\\n\\\n\tvisibility: ${1};\\n\\\nsnippet v:c\\n\\\n\tvisibility: collapse;\\n\\\nsnippet v:h\\n\\\n\tvisibility: hidden;\\n\\\nsnippet v:v\\n\\\n\tvisibility: visible;\\n\\\nsnippet whsc\\n\\\n\twhite-space-collapse: ${1};\\n\\\nsnippet whsc:ba\\n\\\n\twhite-space-collapse: break-all;\\n\\\nsnippet whsc:bs\\n\\\n\twhite-space-collapse: break-strict;\\n\\\nsnippet whsc:k\\n\\\n\twhite-space-collapse: keep-all;\\n\\\nsnippet whsc:l\\n\\\n\twhite-space-collapse: loose;\\n\\\nsnippet whsc:n\\n\\\n\twhite-space-collapse: normal;\\n\\\nsnippet whs\\n\\\n\twhite-space: ${1};\\n\\\nsnippet whs:n\\n\\\n\twhite-space: normal;\\n\\\nsnippet whs:nw\\n\\\n\twhite-space: nowrap;\\n\\\nsnippet whs:pl\\n\\\n\twhite-space: pre-line;\\n\\\nsnippet whs:pw\\n\\\n\twhite-space: pre-wrap;\\n\\\nsnippet whs:p\\n\\\n\twhite-space: pre;\\n\\\nsnippet wid\\n\\\n\twidows: ${1};\\n\\\nsnippet w\\n\\\n\twidth: ${1};\\n\\\nsnippet w:a\\n\\\n\twidth: auto;\\n\\\nsnippet wob\\n\\\n\tword-break: ${1};\\n\\\nsnippet wob:ba\\n\\\n\tword-break: break-all;\\n\\\nsnippet wob:bs\\n\\\n\tword-break: break-strict;\\n\\\nsnippet wob:k\\n\\\n\tword-break: keep-all;\\n\\\nsnippet wob:l\\n\\\n\tword-break: loose;\\n\\\nsnippet wob:n\\n\\\n\tword-break: normal;\\n\\\nsnippet wos\\n\\\n\tword-spacing: ${1};\\n\\\nsnippet wow\\n\\\n\tword-wrap: ${1};\\n\\\nsnippet wow:no\\n\\\n\tword-wrap: none;\\n\\\nsnippet wow:n\\n\\\n\tword-wrap: normal;\\n\\\nsnippet wow:s\\n\\\n\tword-wrap: suppress;\\n\\\nsnippet wow:u\\n\\\n\tword-wrap: unrestricted;\\n\\\nsnippet z\\n\\\n\tz-index: ${1};\\n\\\nsnippet z:a\\n\\\n\tz-index: auto;\\n\\\nsnippet zoo\\n\\\n\tzoom: 1;\\n\\\n\";\nexports.scope = \"css\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/curly.js",
    "content": "ace.define(\"ace/snippets/curly\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"curly\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/d.js",
    "content": "ace.define(\"ace/snippets/d\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"d\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/dart.js",
    "content": "ace.define(\"ace/snippets/dart\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"snippet lib\\n\\\n\tlibrary ${1};\\n\\\n\t${2}\\n\\\nsnippet im\\n\\\n\timport '${1}';\\n\\\n\t${2}\\n\\\nsnippet pa\\n\\\n\tpart '${1}';\\n\\\n\t${2}\\n\\\nsnippet pao\\n\\\n\tpart of ${1};\\n\\\n\t${2}\\n\\\nsnippet main\\n\\\n\tvoid main() {\\n\\\n\t  ${1:/* code */}\\n\\\n\t}\\n\\\nsnippet st\\n\\\n\tstatic ${1}\\n\\\nsnippet fi\\n\\\n\tfinal ${1}\\n\\\nsnippet re\\n\\\n\treturn ${1}\\n\\\nsnippet br\\n\\\n\tbreak;\\n\\\nsnippet th\\n\\\n\tthrow ${1}\\n\\\nsnippet cl\\n\\\n\tclass ${1:`Filename(\\\"\\\", \\\"untitled\\\")`} ${2}\\n\\\nsnippet imp\\n\\\n\timplements ${1}\\n\\\nsnippet ext\\n\\\n\textends ${1}\\n\\\nsnippet if\\n\\\n\tif (${1:true}) {\\n\\\n\t  ${2}\\n\\\n\t}\\n\\\nsnippet ife\\n\\\n\tif (${1:true}) {\\n\\\n\t  ${2}\\n\\\n\t} else {\\n\\\n\t  ${3}\\n\\\n\t}\\n\\\nsnippet el\\n\\\n\telse\\n\\\nsnippet sw\\n\\\n\tswitch (${1}) {\\n\\\n\t  ${2}\\n\\\n\t}\\n\\\nsnippet cs\\n\\\n\tcase ${1}:\\n\\\n\t  ${2}\\n\\\nsnippet de\\n\\\n\tdefault:\\n\\\n\t  ${1}\\n\\\nsnippet for\\n\\\n\tfor (var ${2:i} = 0, len = ${1:things}.length; $2 < len; ${3:++}$2) {\\n\\\n\t  ${4:$1[$2]}\\n\\\n\t}\\n\\\nsnippet fore\\n\\\n\tfor (final ${2:item} in ${1:itemList}) {\\n\\\n\t  ${3:/* code */}\\n\\\n\t}\\n\\\nsnippet wh\\n\\\n\twhile (${1:/* condition */}) {\\n\\\n\t  ${2:/* code */}\\n\\\n\t}\\n\\\nsnippet dowh\\n\\\n\tdo {\\n\\\n\t  ${2:/* code */}\\n\\\n\t} while (${1:/* condition */});\\n\\\nsnippet as\\n\\\n\tassert(${1:/* condition */});\\n\\\nsnippet try\\n\\\n\ttry {\\n\\\n\t  ${2}\\n\\\n\t} catch (${1:Exception e}) {\\n\\\n\t}\\n\\\nsnippet tryf\\n\\\n\ttry {\\n\\\n\t  ${2}\\n\\\n\t} catch (${1:Exception e}) {\\n\\\n\t} finally {\\n\\\n\t}\\n\\\n\";\nexports.scope = \"dart\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/diff.js",
    "content": "ace.define(\"ace/snippets/diff\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"# DEP-3 (http://dep.debian.net/deps/dep3/) style patch header\\n\\\nsnippet header DEP-3 style header\\n\\\n\tDescription: ${1}\\n\\\n\tOrigin: ${2:vendor|upstream|other}, ${3:url of the original patch}\\n\\\n\tBug: ${4:url in upstream bugtracker}\\n\\\n\tForwarded: ${5:no|not-needed|url}\\n\\\n\tAuthor: ${6:`g:snips_author`}\\n\\\n\tReviewed-by: ${7:name and email}\\n\\\n\tLast-Update: ${8:`strftime(\\\"%Y-%m-%d\\\")`}\\n\\\n\tApplied-Upstream: ${9:upstream version|url|commit}\\n\\\n\\n\\\n\";\nexports.scope = \"diff\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/django.js",
    "content": "ace.define(\"ace/snippets/django\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"# Model Fields\\n\\\n\\n\\\n# Note: Optional arguments are using defaults that match what Django will use\\n\\\n# as a default, e.g. with max_length fields.  Doing this as a form of self\\n\\\n# documentation and to make it easy to know whether you should override the\\n\\\n# default or not.\\n\\\n\\n\\\n# Note: Optional arguments that are booleans will use the opposite since you\\n\\\n# can either not specify them, or override them, e.g. auto_now_add=False.\\n\\\n\\n\\\nsnippet auto\\n\\\n\t${1:FIELDNAME} = models.AutoField(${2})\\n\\\nsnippet bool\\n\\\n\t${1:FIELDNAME} = models.BooleanField(${2:default=True})\\n\\\nsnippet char\\n\\\n\t${1:FIELDNAME} = models.CharField(max_length=${2}${3:, blank=True})\\n\\\nsnippet comma\\n\\\n\t${1:FIELDNAME} = models.CommaSeparatedIntegerField(max_length=${2}${3:, blank=True})\\n\\\nsnippet date\\n\\\n\t${1:FIELDNAME} = models.DateField(${2:auto_now_add=True, auto_now=True}${3:, blank=True, null=True})\\n\\\nsnippet datetime\\n\\\n\t${1:FIELDNAME} = models.DateTimeField(${2:auto_now_add=True, auto_now=True}${3:, blank=True, null=True})\\n\\\nsnippet decimal\\n\\\n\t${1:FIELDNAME} = models.DecimalField(max_digits=${2}, decimal_places=${3})\\n\\\nsnippet email\\n\\\n\t${1:FIELDNAME} = models.EmailField(max_length=${2:75}${3:, blank=True})\\n\\\nsnippet file\\n\\\n\t${1:FIELDNAME} = models.FileField(upload_to=${2:path/for/upload}${3:, max_length=100})\\n\\\nsnippet filepath\\n\\\n\t${1:FIELDNAME} = models.FilePathField(path=${2:\\\"/abs/path/to/dir\\\"}${3:, max_length=100}${4:, match=\\\"*.ext\\\"}${5:, recursive=True}${6:, blank=True, })\\n\\\nsnippet float\\n\\\n\t${1:FIELDNAME} = models.FloatField(${2})\\n\\\nsnippet image\\n\\\n\t${1:FIELDNAME} = models.ImageField(upload_to=${2:path/for/upload}${3:, height_field=height, width_field=width}${4:, max_length=100})\\n\\\nsnippet int\\n\\\n\t${1:FIELDNAME} = models.IntegerField(${2})\\n\\\nsnippet ip\\n\\\n\t${1:FIELDNAME} = models.IPAddressField(${2})\\n\\\nsnippet nullbool\\n\\\n\t${1:FIELDNAME} = models.NullBooleanField(${2})\\n\\\nsnippet posint\\n\\\n\t${1:FIELDNAME} = models.PositiveIntegerField(${2})\\n\\\nsnippet possmallint\\n\\\n\t${1:FIELDNAME} = models.PositiveSmallIntegerField(${2})\\n\\\nsnippet slug\\n\\\n\t${1:FIELDNAME} = models.SlugField(max_length=${2:50}${3:, blank=True})\\n\\\nsnippet smallint\\n\\\n\t${1:FIELDNAME} = models.SmallIntegerField(${2})\\n\\\nsnippet text\\n\\\n\t${1:FIELDNAME} = models.TextField(${2:blank=True})\\n\\\nsnippet time\\n\\\n\t${1:FIELDNAME} = models.TimeField(${2:auto_now_add=True, auto_now=True}${3:, blank=True, null=True})\\n\\\nsnippet url\\n\\\n\t${1:FIELDNAME} = models.URLField(${2:verify_exists=False}${3:, max_length=200}${4:, blank=True})\\n\\\nsnippet xml\\n\\\n\t${1:FIELDNAME} = models.XMLField(schema_path=${2:None}${3:, blank=True})\\n\\\n# Relational Fields\\n\\\nsnippet fk\\n\\\n\t${1:FIELDNAME} = models.ForeignKey(${2:OtherModel}${3:, related_name=''}${4:, limit_choices_to=}${5:, to_field=''})\\n\\\nsnippet m2m\\n\\\n\t${1:FIELDNAME} = models.ManyToManyField(${2:OtherModel}${3:, related_name=''}${4:, limit_choices_to=}${5:, symmetrical=False}${6:, through=''}${7:, db_table=''})\\n\\\nsnippet o2o\\n\\\n\t${1:FIELDNAME} = models.OneToOneField(${2:OtherModel}${3:, parent_link=True}${4:, related_name=''}${5:, limit_choices_to=}${6:, to_field=''})\\n\\\n\\n\\\n# Code Skeletons\\n\\\n\\n\\\nsnippet form\\n\\\n\tclass ${1:FormName}(forms.Form):\\n\\\n\t\t\\\"\\\"\\\"${2:docstring}\\\"\\\"\\\"\\n\\\n\t\t${3}\\n\\\n\\n\\\nsnippet model\\n\\\n\tclass ${1:ModelName}(models.Model):\\n\\\n\t\t\\\"\\\"\\\"${2:docstring}\\\"\\\"\\\"\\n\\\n\t\t${3}\\n\\\n\t\t\\n\\\n\t\tclass Meta:\\n\\\n\t\t\t${4}\\n\\\n\t\t\\n\\\n\t\tdef __unicode__(self):\\n\\\n\t\t\t${5}\\n\\\n\t\t\\n\\\n\t\tdef save(self, force_insert=False, force_update=False):\\n\\\n\t\t\t${6}\\n\\\n\t\t\\n\\\n\t\t@models.permalink\\n\\\n\t\tdef get_absolute_url(self):\\n\\\n\t\t\treturn ('${7:view_or_url_name}' ${8})\\n\\\n\\n\\\nsnippet modeladmin\\n\\\n\tclass ${1:ModelName}Admin(admin.ModelAdmin):\\n\\\n\t\t${2}\\n\\\n\t\\n\\\n\tadmin.site.register($1, $1Admin)\\n\\\n\t\\n\\\nsnippet tabularinline\\n\\\n\tclass ${1:ModelName}Inline(admin.TabularInline):\\n\\\n\t\tmodel = $1\\n\\\n\\n\\\nsnippet stackedinline\\n\\\n\tclass ${1:ModelName}Inline(admin.StackedInline):\\n\\\n\t\tmodel = $1\\n\\\n\\n\\\nsnippet r2r\\n\\\n\treturn render_to_response('${1:template.html}', {\\n\\\n\t\t\t${2}\\n\\\n\t\t}${3:, context_instance=RequestContext(request)}\\n\\\n\t)\\n\\\n\";\nexports.scope = \"django\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/dockerfile.js",
    "content": "ace.define(\"ace/snippets/dockerfile\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"dockerfile\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/dot.js",
    "content": "ace.define(\"ace/snippets/dot\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"dot\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/drools.js",
    "content": "ace.define(\"ace/snippets/drools\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"\\n\\\nsnippet rule\\n\\\n\trule \\\"${1?:rule_name}\\\"\\n\\\n\twhen\\n\\\n\t\t${2:// when...} \\n\\\n\tthen\\n\\\n\t\t${3:// then...}\\n\\\n\tend\\n\\\n\\n\\\nsnippet query\\n\\\n\tquery ${1?:query_name}\\n\\\n\t\t${2:// find} \\n\\\n\tend\\n\\\n\t\\n\\\nsnippet declare\\n\\\n\tdeclare ${1?:type_name}\\n\\\n\t\t${2:// attributes} \\n\\\n\tend\\n\\\n\\n\\\n\";\nexports.scope = \"drools\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/eiffel.js",
    "content": "ace.define(\"ace/snippets/eiffel\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"eiffel\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/ejs.js",
    "content": "ace.define(\"ace/snippets/ejs\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"ejs\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/elixir.js",
    "content": "ace.define(\"ace/snippets/elixir\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/elm.js",
    "content": "ace.define(\"ace/snippets/elm\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"elm\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/erlang.js",
    "content": "ace.define(\"ace/snippets/erlang\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"# module and export all\\n\\\nsnippet mod\\n\\\n\t-module(${1:`Filename('', 'my')`}).\\n\\\n\t\\n\\\n\t-compile([export_all]).\\n\\\n\t\\n\\\n\tstart() ->\\n\\\n\t    ${2}\\n\\\n\t\\n\\\n\tstop() ->\\n\\\n\t    ok.\\n\\\n# define directive\\n\\\nsnippet def\\n\\\n\t-define(${1:macro}, ${2:body}).${3}\\n\\\n# export directive\\n\\\nsnippet exp\\n\\\n\t-export([${1:function}/${2:arity}]).\\n\\\n# include directive\\n\\\nsnippet inc\\n\\\n\t-include(\\\"${1:file}\\\").${2}\\n\\\n# behavior directive\\n\\\nsnippet beh\\n\\\n\t-behaviour(${1:behaviour}).${2}\\n\\\n# if expression\\n\\\nsnippet if\\n\\\n\tif\\n\\\n\t    ${1:guard} ->\\n\\\n\t        ${2:body}\\n\\\n\tend\\n\\\n# case expression\\n\\\nsnippet case\\n\\\n\tcase ${1:expression} of\\n\\\n\t    ${2:pattern} ->\\n\\\n\t        ${3:body};\\n\\\n\tend\\n\\\n# anonymous function\\n\\\nsnippet fun\\n\\\n\tfun (${1:Parameters}) -> ${2:body} end${3}\\n\\\n# try...catch\\n\\\nsnippet try\\n\\\n\ttry\\n\\\n\t    ${1}\\n\\\n\tcatch\\n\\\n\t    ${2:_:_} -> ${3:got_some_exception}\\n\\\n\tend\\n\\\n# record directive\\n\\\nsnippet rec\\n\\\n\t-record(${1:record}, {\\n\\\n\t    ${2:field}=${3:value}}).${4}\\n\\\n# todo comment\\n\\\nsnippet todo\\n\\\n\t%% TODO: ${1}\\n\\\n## Snippets below (starting with '%') are in EDoc format.\\n\\\n## See http://www.erlang.org/doc/apps/edoc/chapter.html#id56887 for more details\\n\\\n# doc comment\\n\\\nsnippet %d\\n\\\n\t%% @doc ${1}\\n\\\n# end of doc comment\\n\\\nsnippet %e\\n\\\n\t%% @end\\n\\\n# specification comment\\n\\\nsnippet %s\\n\\\n\t%% @spec ${1}\\n\\\n# private function marker\\n\\\nsnippet %p\\n\\\n\t%% @private\\n\\\n# OTP application\\n\\\nsnippet application\\n\\\n\t-module(${1:`Filename('', 'my')`}).\\n\\\n\\n\\\n\t-behaviour(application).\\n\\\n\\n\\\n\t-export([start/2, stop/1]).\\n\\\n\\n\\\n\tstart(_Type, _StartArgs) ->\\n\\\n\t    case ${2:root_supervisor}:start_link() of\\n\\\n\t        {ok, Pid} ->\\n\\\n\t            {ok, Pid};\\n\\\n\t        Other ->\\n\\\n\t\t          {error, Other}\\n\\\n\t    end.\\n\\\n\\n\\\n\tstop(_State) ->\\n\\\n\t    ok.\t\\n\\\n# OTP supervisor\\n\\\nsnippet supervisor\\n\\\n\t-module(${1:`Filename('', 'my')`}).\\n\\\n\\n\\\n\t-behaviour(supervisor).\\n\\\n\\n\\\n\t%% API\\n\\\n\t-export([start_link/0]).\\n\\\n\\n\\\n\t%% Supervisor callbacks\\n\\\n\t-export([init/1]).\\n\\\n\\n\\\n\t-define(SERVER, ?MODULE).\\n\\\n\\n\\\n\tstart_link() ->\\n\\\n\t    supervisor:start_link({local, ?SERVER}, ?MODULE, []).\\n\\\n\\n\\\n\tinit([]) ->\\n\\\n\t    Server = {${2:my_server}, {$2, start_link, []},\\n\\\n\t      permanent, 2000, worker, [$2]},\\n\\\n\t    Children = [Server],\\n\\\n\t    RestartStrategy = {one_for_one, 0, 1},\\n\\\n\t    {ok, {RestartStrategy, Children}}.\\n\\\n# OTP gen_server\\n\\\nsnippet gen_server\\n\\\n\t-module(${1:`Filename('', 'my')`}).\\n\\\n\\n\\\n\t-behaviour(gen_server).\\n\\\n\\n\\\n\t%% API\\n\\\n\t-export([\\n\\\n\t         start_link/0\\n\\\n\t        ]).\\n\\\n\\n\\\n\t%% gen_server callbacks\\n\\\n\t-export([init/1, handle_call/3, handle_cast/2, handle_info/2,\\n\\\n\t         terminate/2, code_change/3]).\\n\\\n\\n\\\n\t-define(SERVER, ?MODULE).\\n\\\n\\n\\\n\t-record(state, {}).\\n\\\n\\n\\\n\t%%%===================================================================\\n\\\n\t%%% API\\n\\\n\t%%%===================================================================\\n\\\n\\n\\\n\tstart_link() ->\\n\\\n\t    gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).\\n\\\n\\n\\\n\t%%%===================================================================\\n\\\n\t%%% gen_server callbacks\\n\\\n\t%%%===================================================================\\n\\\n\\n\\\n\tinit([]) ->\\n\\\n\t    {ok, #state{}}.\\n\\\n\\n\\\n\thandle_call(_Request, _From, State) ->\\n\\\n\t    Reply = ok,\\n\\\n\t    {reply, Reply, State}.\\n\\\n\\n\\\n\thandle_cast(_Msg, State) ->\\n\\\n\t    {noreply, State}.\\n\\\n\\n\\\n\thandle_info(_Info, State) ->\\n\\\n\t    {noreply, State}.\\n\\\n\\n\\\n\tterminate(_Reason, _State) ->\\n\\\n\t    ok.\\n\\\n\\n\\\n\tcode_change(_OldVsn, State, _Extra) ->\\n\\\n\t    {ok, State}.\\n\\\n\\n\\\n\t%%%===================================================================\\n\\\n\t%%% Internal functions\\n\\\n\t%%%===================================================================\\n\\\n\\n\\\n\";\nexports.scope = \"erlang\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/forth.js",
    "content": "ace.define(\"ace/snippets/forth\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"forth\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/fortran.js",
    "content": "ace.define(\"ace/snippets/fortran\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"fortran\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/ftl.js",
    "content": "ace.define(\"ace/snippets/ftl\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"ftl\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/gcode.js",
    "content": "ace.define(\"ace/snippets/gcode\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"gcode\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/gherkin.js",
    "content": "ace.define(\"ace/snippets/gherkin\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"gherkin\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/gitignore.js",
    "content": "ace.define(\"ace/snippets/gitignore\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"gitignore\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/glsl.js",
    "content": "ace.define(\"ace/snippets/glsl\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"glsl\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/gobstones.js",
    "content": "ace.define(\"ace/snippets/gobstones\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"# Procedure\\n\\\nsnippet proc\\n\\\n\tprocedure ${1?:name}(${2:argument}) {\\n\\\n\t\t${3:// body...}\\n\\\n\t}\\n\\\n\\n\\\n# Function\\n\\\nsnippet fun\\n\\\n\tfunction ${1?:name}(${2:argument}) {\\n\\\n\t\treturn ${3:// body...}\\n\\\n\t}\\n\\\n\\n\\\n# Repeat\\n\\\nsnippet rep\\n\\\n\trepeat ${1?:times} {\\n\\\n\t\t${2:// body...}\\n\\\n\t}\\n\\\n\\n\\\n# For\\n\\\nsnippet for\\n\\\n\tforeach ${1?:e} in ${2?:list} {\\n\\\n\t\t${3:// body...}\t\\n\\\n\t}\\n\\\n\\n\\\n# If\\n\\\nsnippet if\\n\\\n\tif (${1?:condition}) {\\n\\\n\t\t${3:// body...}\t\\n\\\n\t}\\n\\\n\\n\\\n# While\\n\\\n  while (${1?:condition}) {\\n\\\n    ${2:// body...}\t\\n\\\n  }\\n\\\n\";\nexports.scope = \"gobstones\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/golang.js",
    "content": "ace.define(\"ace/snippets/golang\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"golang\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/groovy.js",
    "content": "ace.define(\"ace/snippets/groovy\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"groovy\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/haml.js",
    "content": "ace.define(\"ace/snippets/haml\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"snippet t\\n\\\n\t%table\\n\\\n\t\t%tr\\n\\\n\t\t\t%th\\n\\\n\t\t\t\t${1:headers}\\n\\\n\t\t%tr\\n\\\n\t\t\t%td\\n\\\n\t\t\t\t${2:headers}\\n\\\nsnippet ul\\n\\\n\t%ul\\n\\\n\t\t%li\\n\\\n\t\t\t${1:item}\\n\\\n\t\t%li\\n\\\nsnippet =rp\\n\\\n\t= render :partial => '${1:partial}'\\n\\\nsnippet =rpl\\n\\\n\t= render :partial => '${1:partial}', :locals => {}\\n\\\nsnippet =rpc\\n\\\n\t= render :partial => '${1:partial}', :collection => @$1\\n\\\n\\n\\\n\";\nexports.scope = \"haml\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/handlebars.js",
    "content": "ace.define(\"ace/snippets/handlebars\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"handlebars\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/haskell.js",
    "content": "ace.define(\"ace/snippets/haskell\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"snippet lang\\n\\\n\t{-# LANGUAGE ${1:OverloadedStrings} #-}\\n\\\nsnippet info\\n\\\n\t-- |\\n\\\n\t-- Module      :  ${1:Module.Namespace}\\n\\\n\t-- Copyright   :  ${2:Author} ${3:2011-2012}\\n\\\n\t-- License     :  ${4:BSD3}\\n\\\n\t--\\n\\\n\t-- Maintainer  :  ${5:email@something.com}\\n\\\n\t-- Stability   :  ${6:experimental}\\n\\\n\t-- Portability :  ${7:unknown}\\n\\\n\t--\\n\\\n\t-- ${8:Description}\\n\\\n\t--\\n\\\nsnippet import\\n\\\n\timport           ${1:Data.Text}\\n\\\nsnippet import2\\n\\\n\timport           ${1:Data.Text} (${2:head})\\n\\\nsnippet importq\\n\\\n\timport qualified ${1:Data.Text} as ${2:T}\\n\\\nsnippet inst\\n\\\n\tinstance ${1:Monoid} ${2:Type} where\\n\\\n\t\t${3}\\n\\\nsnippet type\\n\\\n\ttype ${1:Type} = ${2:Type}\\n\\\nsnippet data\\n\\\n\tdata ${1:Type} = ${2:$1} ${3:Int}\\n\\\nsnippet newtype\\n\\\n\tnewtype ${1:Type} = ${2:$1} ${3:Int}\\n\\\nsnippet class\\n\\\n\tclass ${1:Class} a where\\n\\\n\t\t${2}\\n\\\nsnippet module\\n\\\n\tmodule `substitute(substitute(expand('%:r'), '[/\\\\\\\\]','.','g'),'^\\\\%(\\\\l*\\\\.\\\\)\\\\?','','')` (\\n\\\n\t)\twhere\\n\\\n\t`expand('%') =~ 'Main' ? \\\"\\\\n\\\\nmain = do\\\\n  print \\\\\\\"hello world\\\\\\\"\\\" : \\\"\\\"`\\n\\\n\\n\\\nsnippet const\\n\\\n\t${1:name} :: ${2:a}\\n\\\n\t$1 = ${3:undefined}\\n\\\nsnippet fn\\n\\\n\t${1:fn} :: ${2:a} -> ${3:a}\\n\\\n\t$1 ${4} = ${5:undefined}\\n\\\nsnippet fn2\\n\\\n\t${1:fn} :: ${2:a} -> ${3:a} -> ${4:a}\\n\\\n\t$1 ${5} = ${6:undefined}\\n\\\nsnippet ap\\n\\\n\t${1:map} ${2:fn} ${3:list}\\n\\\nsnippet do\\n\\\n\tdo\\n\\\n\t\t\\n\\\nsnippet λ\\n\\\n\t\\\\${1:x} -> ${2}\\n\\\nsnippet \\\\\\n\\\n\t\\\\${1:x} -> ${2}\\n\\\nsnippet <-\\n\\\n\t${1:a} <- ${2:m a}\\n\\\nsnippet ←\\n\\\n\t${1:a} <- ${2:m a}\\n\\\nsnippet ->\\n\\\n\t${1:m a} -> ${2:a}\\n\\\nsnippet →\\n\\\n\t${1:m a} -> ${2:a}\\n\\\nsnippet tup\\n\\\n\t(${1:a}, ${2:b})\\n\\\nsnippet tup2\\n\\\n\t(${1:a}, ${2:b}, ${3:c})\\n\\\nsnippet tup3\\n\\\n\t(${1:a}, ${2:b}, ${3:c}, ${4:d})\\n\\\nsnippet rec\\n\\\n\t${1:Record} { ${2:recFieldA} = ${3:undefined}\\n\\\n\t\t\t\t, ${4:recFieldB} = ${5:undefined}\\n\\\n\t\t\t\t}\\n\\\nsnippet case\\n\\\n\tcase ${1:something} of\\n\\\n\t\t${2} -> ${3}\\n\\\nsnippet let\\n\\\n\tlet ${1} = ${2}\\n\\\n\tin ${3}\\n\\\nsnippet where\\n\\\n\twhere\\n\\\n\t\t${1:fn} = ${2:undefined}\\n\\\n\";\nexports.scope = \"haskell\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/haskell_cabal.js",
    "content": "ace.define(\"ace/snippets/haskell_cabal\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"haskell_cabal\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/haxe.js",
    "content": "ace.define(\"ace/snippets/haxe\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"haxe\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/hjson.js",
    "content": "ace.define(\"ace/snippets/hjson\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/html.js",
    "content": "ace.define(\"ace/snippets/html\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"# Some useful Unicode entities\\n\\\n# Non-Breaking Space\\n\\\nsnippet nbs\\n\\\n\t&nbsp;\\n\\\n# ←\\n\\\nsnippet left\\n\\\n\t&#x2190;\\n\\\n# →\\n\\\nsnippet right\\n\\\n\t&#x2192;\\n\\\n# ↑\\n\\\nsnippet up\\n\\\n\t&#x2191;\\n\\\n# ↓\\n\\\nsnippet down\\n\\\n\t&#x2193;\\n\\\n# ↩\\n\\\nsnippet return\\n\\\n\t&#x21A9;\\n\\\n# ⇤\\n\\\nsnippet backtab\\n\\\n\t&#x21E4;\\n\\\n# ⇥\\n\\\nsnippet tab\\n\\\n\t&#x21E5;\\n\\\n# ⇧\\n\\\nsnippet shift\\n\\\n\t&#x21E7;\\n\\\n# ⌃\\n\\\nsnippet ctrl\\n\\\n\t&#x2303;\\n\\\n# ⌅\\n\\\nsnippet enter\\n\\\n\t&#x2305;\\n\\\n# ⌘\\n\\\nsnippet cmd\\n\\\n\t&#x2318;\\n\\\n# ⌥\\n\\\nsnippet option\\n\\\n\t&#x2325;\\n\\\n# ⌦\\n\\\nsnippet delete\\n\\\n\t&#x2326;\\n\\\n# ⌫\\n\\\nsnippet backspace\\n\\\n\t&#x232B;\\n\\\n# ⎋\\n\\\nsnippet esc\\n\\\n\t&#x238B;\\n\\\n# Generic Doctype\\n\\\nsnippet doctype HTML 4.01 Strict\\n\\\n\t<!DOCTYPE HTML PUBLIC \\\"-//W3C//DTD HTML 4.01//EN\\\"\\n\\\n\t\\\"http://www.w3.org/TR/html4/strict.dtd\\\">\\n\\\nsnippet doctype HTML 4.01 Transitional\\n\\\n\t<!DOCTYPE HTML PUBLIC \\\"-//W3C//DTD HTML 4.01 Transitional//EN\\\"\\n\\\n\t\\\"http://www.w3.org/TR/html4/loose.dtd\\\">\\n\\\nsnippet doctype HTML 5\\n\\\n\t<!DOCTYPE HTML>\\n\\\nsnippet doctype XHTML 1.0 Frameset\\n\\\n\t<!DOCTYPE html PUBLIC \\\"-//W3C//DTD XHTML 1.0 Strict//EN\\\"\\n\\\n\t\\\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\\\">\\n\\\nsnippet doctype XHTML 1.0 Strict\\n\\\n\t<!DOCTYPE html PUBLIC \\\"-//W3C//DTD XHTML 1.0 Strict//EN\\\"\\n\\\n\t\\\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\\\">\\n\\\nsnippet doctype XHTML 1.0 Transitional\\n\\\n\t<!DOCTYPE html PUBLIC \\\"-//W3C//DTD XHTML 1.0 Transitional//EN\\\"\\n\\\n\t\\\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\\\">\\n\\\nsnippet doctype XHTML 1.1\\n\\\n\t<!DOCTYPE html PUBLIC \\\"-//W3C//DTD XHTML 1.1//EN\\\"\\n\\\n\t\\\"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\\\">\\n\\\n# HTML Doctype 4.01 Strict\\n\\\nsnippet docts\\n\\\n\t<!DOCTYPE HTML PUBLIC \\\"-//W3C//DTD HTML 4.01//EN\\\"\\n\\\n\t\\\"http://www.w3.org/TR/html4/strict.dtd\\\">\\n\\\n# HTML Doctype 4.01 Transitional\\n\\\nsnippet doct\\n\\\n\t<!DOCTYPE HTML PUBLIC \\\"-//W3C//DTD HTML 4.01 Transitional//EN\\\"\\n\\\n\t\\\"http://www.w3.org/TR/html4/loose.dtd\\\">\\n\\\n# HTML Doctype 5\\n\\\nsnippet doct5\\n\\\n\t<!DOCTYPE HTML>\\n\\\n# XHTML Doctype 1.0 Frameset\\n\\\nsnippet docxf\\n\\\n\t<!DOCTYPE html PUBLIC \\\"-//W3C//DTD XHTML 1.0 Frameset//EN\\\"\\n\\\n\t\\\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\\\">\\n\\\n# XHTML Doctype 1.0 Strict\\n\\\nsnippet docxs\\n\\\n\t<!DOCTYPE html PUBLIC \\\"-//W3C//DTD XHTML 1.0 Strict//EN\\\"\\n\\\n\t\\\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\\\">\\n\\\n# XHTML Doctype 1.0 Transitional\\n\\\nsnippet docxt\\n\\\n\t<!DOCTYPE html PUBLIC \\\"-//W3C//DTD XHTML 1.0 Transitional//EN\\\"\\n\\\n\t\\\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\\\">\\n\\\n# XHTML Doctype 1.1\\n\\\nsnippet docx\\n\\\n\t<!DOCTYPE html PUBLIC \\\"-//W3C//DTD XHTML 1.1//EN\\\"\\n\\\n\t\\\"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\\\">\\n\\\n# Attributes\\n\\\nsnippet attr\\n\\\n\t${1:attribute}=\\\"${2:property}\\\"\\n\\\nsnippet attr+\\n\\\n\t${1:attribute}=\\\"${2:property}\\\" attr+${3}\\n\\\nsnippet .\\n\\\n\tclass=\\\"${1}\\\"${2}\\n\\\nsnippet #\\n\\\n\tid=\\\"${1}\\\"${2}\\n\\\nsnippet alt\\n\\\n\talt=\\\"${1}\\\"${2}\\n\\\nsnippet charset\\n\\\n\tcharset=\\\"${1:utf-8}\\\"${2}\\n\\\nsnippet data\\n\\\n\tdata-${1}=\\\"${2:$1}\\\"${3}\\n\\\nsnippet for\\n\\\n\tfor=\\\"${1}\\\"${2}\\n\\\nsnippet height\\n\\\n\theight=\\\"${1}\\\"${2}\\n\\\nsnippet href\\n\\\n\thref=\\\"${1:#}\\\"${2}\\n\\\nsnippet lang\\n\\\n\tlang=\\\"${1:en}\\\"${2}\\n\\\nsnippet media\\n\\\n\tmedia=\\\"${1}\\\"${2}\\n\\\nsnippet name\\n\\\n\tname=\\\"${1}\\\"${2}\\n\\\nsnippet rel\\n\\\n\trel=\\\"${1}\\\"${2}\\n\\\nsnippet scope\\n\\\n\tscope=\\\"${1:row}\\\"${2}\\n\\\nsnippet src\\n\\\n\tsrc=\\\"${1}\\\"${2}\\n\\\nsnippet title=\\n\\\n\ttitle=\\\"${1}\\\"${2}\\n\\\nsnippet type\\n\\\n\ttype=\\\"${1}\\\"${2}\\n\\\nsnippet value\\n\\\n\tvalue=\\\"${1}\\\"${2}\\n\\\nsnippet width\\n\\\n\twidth=\\\"${1}\\\"${2}\\n\\\n# Elements\\n\\\nsnippet a\\n\\\n\t<a href=\\\"${1:#}\\\">${2:$1}</a>\\n\\\nsnippet a.\\n\\\n\t<a class=\\\"${1}\\\" href=\\\"${2:#}\\\">${3:$1}</a>\\n\\\nsnippet a#\\n\\\n\t<a id=\\\"${1}\\\" href=\\\"${2:#}\\\">${3:$1}</a>\\n\\\nsnippet a:ext\\n\\\n\t<a href=\\\"http://${1:example.com}\\\">${2:$1}</a>\\n\\\nsnippet a:mail\\n\\\n\t<a href=\\\"mailto:${1:joe@example.com}?subject=${2:feedback}\\\">${3:email me}</a>\\n\\\nsnippet abbr\\n\\\n\t<abbr title=\\\"${1}\\\">${2}</abbr>\\n\\\nsnippet address\\n\\\n\t<address>\\n\\\n\t\t${1}\\n\\\n\t</address>\\n\\\nsnippet area\\n\\\n\t<area shape=\\\"${1:rect}\\\" coords=\\\"${2}\\\" href=\\\"${3}\\\" alt=\\\"${4}\\\" />\\n\\\nsnippet area+\\n\\\n\t<area shape=\\\"${1:rect}\\\" coords=\\\"${2}\\\" href=\\\"${3}\\\" alt=\\\"${4}\\\" />\\n\\\n\tarea+${5}\\n\\\nsnippet area:c\\n\\\n\t<area shape=\\\"circle\\\" coords=\\\"${1}\\\" href=\\\"${2}\\\" alt=\\\"${3}\\\" />\\n\\\nsnippet area:d\\n\\\n\t<area shape=\\\"default\\\" coords=\\\"${1}\\\" href=\\\"${2}\\\" alt=\\\"${3}\\\" />\\n\\\nsnippet area:p\\n\\\n\t<area shape=\\\"poly\\\" coords=\\\"${1}\\\" href=\\\"${2}\\\" alt=\\\"${3}\\\" />\\n\\\nsnippet area:r\\n\\\n\t<area shape=\\\"rect\\\" coords=\\\"${1}\\\" href=\\\"${2}\\\" alt=\\\"${3}\\\" />\\n\\\nsnippet article\\n\\\n\t<article>\\n\\\n\t\t${1}\\n\\\n\t</article>\\n\\\nsnippet article.\\n\\\n\t<article class=\\\"${1}\\\">\\n\\\n\t\t${2}\\n\\\n\t</article>\\n\\\nsnippet article#\\n\\\n\t<article id=\\\"${1}\\\">\\n\\\n\t\t${2}\\n\\\n\t</article>\\n\\\nsnippet aside\\n\\\n\t<aside>\\n\\\n\t\t${1}\\n\\\n\t</aside>\\n\\\nsnippet aside.\\n\\\n\t<aside class=\\\"${1}\\\">\\n\\\n\t\t${2}\\n\\\n\t</aside>\\n\\\nsnippet aside#\\n\\\n\t<aside id=\\\"${1}\\\">\\n\\\n\t\t${2}\\n\\\n\t</aside>\\n\\\nsnippet audio\\n\\\n\t<audio src=\\\"${1}>${2}</audio>\\n\\\nsnippet b\\n\\\n\t<b>${1}</b>\\n\\\nsnippet base\\n\\\n\t<base href=\\\"${1}\\\" target=\\\"${2}\\\" />\\n\\\nsnippet bdi\\n\\\n\t<bdi>${1}</bdo>\\n\\\nsnippet bdo\\n\\\n\t<bdo dir=\\\"${1}\\\">${2}</bdo>\\n\\\nsnippet bdo:l\\n\\\n\t<bdo dir=\\\"ltr\\\">${1}</bdo>\\n\\\nsnippet bdo:r\\n\\\n\t<bdo dir=\\\"rtl\\\">${1}</bdo>\\n\\\nsnippet blockquote\\n\\\n\t<blockquote>\\n\\\n\t\t${1}\\n\\\n\t</blockquote>\\n\\\nsnippet body\\n\\\n\t<body>\\n\\\n\t\t${1}\\n\\\n\t</body>\\n\\\nsnippet br\\n\\\n\t<br />${1}\\n\\\nsnippet button\\n\\\n\t<button type=\\\"${1:submit}\\\">${2}</button>\\n\\\nsnippet button.\\n\\\n\t<button class=\\\"${1:button}\\\" type=\\\"${2:submit}\\\">${3}</button>\\n\\\nsnippet button#\\n\\\n\t<button id=\\\"${1}\\\" type=\\\"${2:submit}\\\">${3}</button>\\n\\\nsnippet button:s\\n\\\n\t<button type=\\\"submit\\\">${1}</button>\\n\\\nsnippet button:r\\n\\\n\t<button type=\\\"reset\\\">${1}</button>\\n\\\nsnippet canvas\\n\\\n\t<canvas>\\n\\\n\t\t${1}\\n\\\n\t</canvas>\\n\\\nsnippet caption\\n\\\n\t<caption>${1}</caption>\\n\\\nsnippet cite\\n\\\n\t<cite>${1}</cite>\\n\\\nsnippet code\\n\\\n\t<code>${1}</code>\\n\\\nsnippet col\\n\\\n\t<col />${1}\\n\\\nsnippet col+\\n\\\n\t<col />\\n\\\n\tcol+${1}\\n\\\nsnippet colgroup\\n\\\n\t<colgroup>\\n\\\n\t\t${1}\\n\\\n\t</colgroup>\\n\\\nsnippet colgroup+\\n\\\n\t<colgroup>\\n\\\n\t\t<col />\\n\\\n\t\tcol+${1}\\n\\\n\t</colgroup>\\n\\\nsnippet command\\n\\\n\t<command type=\\\"command\\\" label=\\\"${1}\\\" icon=\\\"${2}\\\" />\\n\\\nsnippet command:c\\n\\\n\t<command type=\\\"checkbox\\\" label=\\\"${1}\\\" icon=\\\"${2}\\\" />\\n\\\nsnippet command:r\\n\\\n\t<command type=\\\"radio\\\" radiogroup=\\\"${1}\\\" label=\\\"${2}\\\" icon=\\\"${3}\\\" />\\n\\\nsnippet datagrid\\n\\\n\t<datagrid>\\n\\\n\t\t${1}\\n\\\n\t</datagrid>\\n\\\nsnippet datalist\\n\\\n\t<datalist>\\n\\\n\t\t${1}\\n\\\n\t</datalist>\\n\\\nsnippet datatemplate\\n\\\n\t<datatemplate>\\n\\\n\t\t${1}\\n\\\n\t</datatemplate>\\n\\\nsnippet dd\\n\\\n\t<dd>${1}</dd>\\n\\\nsnippet dd.\\n\\\n\t<dd class=\\\"${1}\\\">${2}</dd>\\n\\\nsnippet dd#\\n\\\n\t<dd id=\\\"${1}\\\">${2}</dd>\\n\\\nsnippet del\\n\\\n\t<del>${1}</del>\\n\\\nsnippet details\\n\\\n\t<details>${1}</details>\\n\\\nsnippet dfn\\n\\\n\t<dfn>${1}</dfn>\\n\\\nsnippet dialog\\n\\\n\t<dialog>\\n\\\n\t\t${1}\\n\\\n\t</dialog>\\n\\\nsnippet div\\n\\\n\t<div>\\n\\\n\t\t${1}\\n\\\n\t</div>\\n\\\nsnippet div.\\n\\\n\t<div class=\\\"${1}\\\">\\n\\\n\t\t${2}\\n\\\n\t</div>\\n\\\nsnippet div#\\n\\\n\t<div id=\\\"${1}\\\">\\n\\\n\t\t${2}\\n\\\n\t</div>\\n\\\nsnippet dl\\n\\\n\t<dl>\\n\\\n\t\t${1}\\n\\\n\t</dl>\\n\\\nsnippet dl.\\n\\\n\t<dl class=\\\"${1}\\\">\\n\\\n\t\t${2}\\n\\\n\t</dl>\\n\\\nsnippet dl#\\n\\\n\t<dl id=\\\"${1}\\\">\\n\\\n\t\t${2}\\n\\\n\t</dl>\\n\\\nsnippet dl+\\n\\\n\t<dl>\\n\\\n\t\t<dt>${1}</dt>\\n\\\n\t\t<dd>${2}</dd>\\n\\\n\t\tdt+${3}\\n\\\n\t</dl>\\n\\\nsnippet dt\\n\\\n\t<dt>${1}</dt>\\n\\\nsnippet dt.\\n\\\n\t<dt class=\\\"${1}\\\">${2}</dt>\\n\\\nsnippet dt#\\n\\\n\t<dt id=\\\"${1}\\\">${2}</dt>\\n\\\nsnippet dt+\\n\\\n\t<dt>${1}</dt>\\n\\\n\t<dd>${2}</dd>\\n\\\n\tdt+${3}\\n\\\nsnippet em\\n\\\n\t<em>${1}</em>\\n\\\nsnippet embed\\n\\\n\t<embed src=${1} type=\\\"${2} />\\n\\\nsnippet fieldset\\n\\\n\t<fieldset>\\n\\\n\t\t${1}\\n\\\n\t</fieldset>\\n\\\nsnippet fieldset.\\n\\\n\t<fieldset class=\\\"${1}\\\">\\n\\\n\t\t${2}\\n\\\n\t</fieldset>\\n\\\nsnippet fieldset#\\n\\\n\t<fieldset id=\\\"${1}\\\">\\n\\\n\t\t${2}\\n\\\n\t</fieldset>\\n\\\nsnippet fieldset+\\n\\\n\t<fieldset>\\n\\\n\t\t<legend><span>${1}</span></legend>\\n\\\n\t\t${2}\\n\\\n\t</fieldset>\\n\\\n\tfieldset+${3}\\n\\\nsnippet figcaption\\n\\\n\t<figcaption>${1}</figcaption>\\n\\\nsnippet figure\\n\\\n\t<figure>${1}</figure>\\n\\\nsnippet footer\\n\\\n\t<footer>\\n\\\n\t\t${1}\\n\\\n\t</footer>\\n\\\nsnippet footer.\\n\\\n\t<footer class=\\\"${1}\\\">\\n\\\n\t\t${2}\\n\\\n\t</footer>\\n\\\nsnippet footer#\\n\\\n\t<footer id=\\\"${1}\\\">\\n\\\n\t\t${2}\\n\\\n\t</footer>\\n\\\nsnippet form\\n\\\n\t<form action=\\\"${1}\\\" method=\\\"${2:get}\\\" accept-charset=\\\"utf-8\\\">\\n\\\n\t\t${3}\\n\\\n\t</form>\\n\\\nsnippet form.\\n\\\n\t<form class=\\\"${1}\\\" action=\\\"${2}\\\" method=\\\"${3:get}\\\" accept-charset=\\\"utf-8\\\">\\n\\\n\t\t${4}\\n\\\n\t</form>\\n\\\nsnippet form#\\n\\\n\t<form id=\\\"${1}\\\" action=\\\"${2}\\\" method=\\\"${3:get}\\\" accept-charset=\\\"utf-8\\\">\\n\\\n\t\t${4}\\n\\\n\t</form>\\n\\\nsnippet h1\\n\\\n\t<h1>${1}</h1>\\n\\\nsnippet h1.\\n\\\n\t<h1 class=\\\"${1}\\\">${2}</h1>\\n\\\nsnippet h1#\\n\\\n\t<h1 id=\\\"${1}\\\">${2}</h1>\\n\\\nsnippet h2\\n\\\n\t<h2>${1}</h2>\\n\\\nsnippet h2.\\n\\\n\t<h2 class=\\\"${1}\\\">${2}</h2>\\n\\\nsnippet h2#\\n\\\n\t<h2 id=\\\"${1}\\\">${2}</h2>\\n\\\nsnippet h3\\n\\\n\t<h3>${1}</h3>\\n\\\nsnippet h3.\\n\\\n\t<h3 class=\\\"${1}\\\">${2}</h3>\\n\\\nsnippet h3#\\n\\\n\t<h3 id=\\\"${1}\\\">${2}</h3>\\n\\\nsnippet h4\\n\\\n\t<h4>${1}</h4>\\n\\\nsnippet h4.\\n\\\n\t<h4 class=\\\"${1}\\\">${2}</h4>\\n\\\nsnippet h4#\\n\\\n\t<h4 id=\\\"${1}\\\">${2}</h4>\\n\\\nsnippet h5\\n\\\n\t<h5>${1}</h5>\\n\\\nsnippet h5.\\n\\\n\t<h5 class=\\\"${1}\\\">${2}</h5>\\n\\\nsnippet h5#\\n\\\n\t<h5 id=\\\"${1}\\\">${2}</h5>\\n\\\nsnippet h6\\n\\\n\t<h6>${1}</h6>\\n\\\nsnippet h6.\\n\\\n\t<h6 class=\\\"${1}\\\">${2}</h6>\\n\\\nsnippet h6#\\n\\\n\t<h6 id=\\\"${1}\\\">${2}</h6>\\n\\\nsnippet head\\n\\\n\t<head>\\n\\\n\t\t<meta http-equiv=\\\"content-type\\\" content=\\\"text/html; charset=utf-8\\\" />\\n\\\n\\n\\\n\t\t<title>${1:`substitute(Filename('', 'Page Title'), '^.', '\\\\u&', '')`}</title>\\n\\\n\t\t${2}\\n\\\n\t</head>\\n\\\nsnippet header\\n\\\n\t<header>\\n\\\n\t\t${1}\\n\\\n\t</header>\\n\\\nsnippet header.\\n\\\n\t<header class=\\\"${1}\\\">\\n\\\n\t\t${2}\\n\\\n\t</header>\\n\\\nsnippet header#\\n\\\n\t<header id=\\\"${1}\\\">\\n\\\n\t\t${2}\\n\\\n\t</header>\\n\\\nsnippet hgroup\\n\\\n\t<hgroup>\\n\\\n\t\t${1}\\n\\\n\t</hgroup>\\n\\\nsnippet hgroup.\\n\\\n\t<hgroup class=\\\"${1}>\\n\\\n\t\t${2}\\n\\\n\t</hgroup>\\n\\\nsnippet hr\\n\\\n\t<hr />${1}\\n\\\nsnippet html\\n\\\n\t<html>\\n\\\n\t${1}\\n\\\n\t</html>\\n\\\nsnippet xhtml\\n\\\n\t<html xmlns=\\\"http://www.w3.org/1999/xhtml\\\">\\n\\\n\t${1}\\n\\\n\t</html>\\n\\\nsnippet html5\\n\\\n\t<!DOCTYPE html>\\n\\\n\t<html>\\n\\\n\t\t<head>\\n\\\n\t\t\t<meta http-equiv=\\\"content-type\\\" content=\\\"text/html; charset=utf-8\\\" />\\n\\\n\t\t\t<title>${1:`substitute(Filename('', 'Page Title'), '^.', '\\\\u&', '')`}</title>\\n\\\n\t\t\t${2:meta}\\n\\\n\t\t</head>\\n\\\n\t\t<body>\\n\\\n\t\t\t${3:body}\\n\\\n\t\t</body>\\n\\\n\t</html>\\n\\\nsnippet i\\n\\\n\t<i>${1}</i>\\n\\\nsnippet iframe\\n\\\n\t<iframe src=\\\"${1}\\\" frameborder=\\\"0\\\"></iframe>${2}\\n\\\nsnippet iframe.\\n\\\n\t<iframe class=\\\"${1}\\\" src=\\\"${2}\\\" frameborder=\\\"0\\\"></iframe>${3}\\n\\\nsnippet iframe#\\n\\\n\t<iframe id=\\\"${1}\\\" src=\\\"${2}\\\" frameborder=\\\"0\\\"></iframe>${3}\\n\\\nsnippet img\\n\\\n\t<img src=\\\"${1}\\\" alt=\\\"${2}\\\" />${3}\\n\\\nsnippet img.\\n\\\n\t<img class=\\\"${1}\\\" src=\\\"${2}\\\" alt=\\\"${3}\\\" />${4}\\n\\\nsnippet img#\\n\\\n\t<img id=\\\"${1}\\\" src=\\\"${2}\\\" alt=\\\"${3}\\\" />${4}\\n\\\nsnippet input\\n\\\n\t<input type=\\\"${1:text/submit/hidden/button/image}\\\" name=\\\"${2}\\\" id=\\\"${3:$2}\\\" value=\\\"${4}\\\" />${5}\\n\\\nsnippet input.\\n\\\n\t<input class=\\\"${1}\\\" type=\\\"${2:text/submit/hidden/button/image}\\\" name=\\\"${3}\\\" id=\\\"${4:$3}\\\" value=\\\"${5}\\\" />${6}\\n\\\nsnippet input:text\\n\\\n\t<input type=\\\"text\\\" name=\\\"${1}\\\" id=\\\"${2:$1}\\\" value=\\\"${3}\\\" />${4}\\n\\\nsnippet input:submit\\n\\\n\t<input type=\\\"submit\\\" name=\\\"${1}\\\" id=\\\"${2:$1}\\\" value=\\\"${3}\\\" />${4}\\n\\\nsnippet input:hidden\\n\\\n\t<input type=\\\"hidden\\\" name=\\\"${1}\\\" id=\\\"${2:$1}\\\" value=\\\"${3}\\\" />${4}\\n\\\nsnippet input:button\\n\\\n\t<input type=\\\"button\\\" name=\\\"${1}\\\" id=\\\"${2:$1}\\\" value=\\\"${3}\\\" />${4}\\n\\\nsnippet input:image\\n\\\n\t<input type=\\\"image\\\" name=\\\"${1}\\\" id=\\\"${2:$1}\\\" src=\\\"${3}\\\" alt=\\\"${4}\\\" />${5}\\n\\\nsnippet input:checkbox\\n\\\n\t<input type=\\\"checkbox\\\" name=\\\"${1}\\\" id=\\\"${2:$1}\\\" />${3}\\n\\\nsnippet input:radio\\n\\\n\t<input type=\\\"radio\\\" name=\\\"${1}\\\" id=\\\"${2:$1}\\\" />${3}\\n\\\nsnippet input:color\\n\\\n\t<input type=\\\"color\\\" name=\\\"${1}\\\" id=\\\"${2:$1}\\\" value=\\\"${3}\\\" />${4}\\n\\\nsnippet input:date\\n\\\n\t<input type=\\\"date\\\" name=\\\"${1}\\\" id=\\\"${2:$1}\\\" value=\\\"${3}\\\" />${4}\\n\\\nsnippet input:datetime\\n\\\n\t<input type=\\\"datetime\\\" name=\\\"${1}\\\" id=\\\"${2:$1}\\\" value=\\\"${3}\\\" />${4}\\n\\\nsnippet input:datetime-local\\n\\\n\t<input type=\\\"datetime-local\\\" name=\\\"${1}\\\" id=\\\"${2:$1}\\\" value=\\\"${3}\\\" />${4}\\n\\\nsnippet input:email\\n\\\n\t<input type=\\\"email\\\" name=\\\"${1}\\\" id=\\\"${2:$1}\\\" value=\\\"${3}\\\" />${4}\\n\\\nsnippet input:file\\n\\\n\t<input type=\\\"file\\\" name=\\\"${1}\\\" id=\\\"${2:$1}\\\" value=\\\"${3}\\\" />${4}\\n\\\nsnippet input:month\\n\\\n\t<input type=\\\"month\\\" name=\\\"${1}\\\" id=\\\"${2:$1}\\\" value=\\\"${3}\\\" />${4}\\n\\\nsnippet input:number\\n\\\n\t<input type=\\\"number\\\" name=\\\"${1}\\\" id=\\\"${2:$1}\\\" value=\\\"${3}\\\" />${4}\\n\\\nsnippet input:password\\n\\\n\t<input type=\\\"password\\\" name=\\\"${1}\\\" id=\\\"${2:$1}\\\" value=\\\"${3}\\\" />${4}\\n\\\nsnippet input:range\\n\\\n\t<input type=\\\"range\\\" name=\\\"${1}\\\" id=\\\"${2:$1}\\\" value=\\\"${3}\\\" />${4}\\n\\\nsnippet input:reset\\n\\\n\t<input type=\\\"reset\\\" name=\\\"${1}\\\" id=\\\"${2:$1}\\\" value=\\\"${3}\\\" />${4}\\n\\\nsnippet input:search\\n\\\n\t<input type=\\\"search\\\" name=\\\"${1}\\\" id=\\\"${2:$1}\\\" value=\\\"${3}\\\" />${4}\\n\\\nsnippet input:time\\n\\\n\t<input type=\\\"time\\\" name=\\\"${1}\\\" id=\\\"${2:$1}\\\" value=\\\"${3}\\\" />${4}\\n\\\nsnippet input:url\\n\\\n\t<input type=\\\"url\\\" name=\\\"${1}\\\" id=\\\"${2:$1}\\\" value=\\\"${3}\\\" />${4}\\n\\\nsnippet input:week\\n\\\n\t<input type=\\\"week\\\" name=\\\"${1}\\\" id=\\\"${2:$1}\\\" value=\\\"${3}\\\" />${4}\\n\\\nsnippet ins\\n\\\n\t<ins>${1}</ins>\\n\\\nsnippet kbd\\n\\\n\t<kbd>${1}</kbd>\\n\\\nsnippet keygen\\n\\\n\t<keygen>${1}</keygen>\\n\\\nsnippet label\\n\\\n\t<label for=\\\"${2:$1}\\\">${1}</label>\\n\\\nsnippet label:i\\n\\\n\t<label for=\\\"${2:$1}\\\">${1}</label>\\n\\\n\t<input type=\\\"${3:text/submit/hidden/button}\\\" name=\\\"${4:$2}\\\" id=\\\"${5:$2}\\\" value=\\\"${6}\\\" />${7}\\n\\\nsnippet label:s\\n\\\n\t<label for=\\\"${2:$1}\\\">${1}</label>\\n\\\n\t<select name=\\\"${3:$2}\\\" id=\\\"${4:$2}\\\">\\n\\\n\t\t<option value=\\\"${5}\\\">${6:$5}</option>\\n\\\n\t</select>\\n\\\nsnippet legend\\n\\\n\t<legend>${1}</legend>\\n\\\nsnippet legend+\\n\\\n\t<legend><span>${1}</span></legend>\\n\\\nsnippet li\\n\\\n\t<li>${1}</li>\\n\\\nsnippet li.\\n\\\n\t<li class=\\\"${1}\\\">${2}</li>\\n\\\nsnippet li+\\n\\\n\t<li>${1}</li>\\n\\\n\tli+${2}\\n\\\nsnippet lia\\n\\\n\t<li><a href=\\\"${2:#}\\\">${1}</a></li>\\n\\\nsnippet lia+\\n\\\n\t<li><a href=\\\"${2:#}\\\">${1}</a></li>\\n\\\n\tlia+${3}\\n\\\nsnippet link\\n\\\n\t<link rel=\\\"${1}\\\" href=\\\"${2}\\\" title=\\\"${3}\\\" type=\\\"${4}\\\" />${5}\\n\\\nsnippet link:atom\\n\\\n\t<link rel=\\\"alternate\\\" href=\\\"${1:atom.xml}\\\" title=\\\"Atom\\\" type=\\\"application/atom+xml\\\" />${2}\\n\\\nsnippet link:css\\n\\\n\t<link rel=\\\"stylesheet\\\" href=\\\"${2:style.css}\\\" type=\\\"text/css\\\" media=\\\"${3:all}\\\" />${4}\\n\\\nsnippet link:favicon\\n\\\n\t<link rel=\\\"shortcut icon\\\" href=\\\"${1:favicon.ico}\\\" type=\\\"image/x-icon\\\" />${2}\\n\\\nsnippet link:rss\\n\\\n\t<link rel=\\\"alternate\\\" href=\\\"${1:rss.xml}\\\" title=\\\"RSS\\\" type=\\\"application/atom+xml\\\" />${2}\\n\\\nsnippet link:touch\\n\\\n\t<link rel=\\\"apple-touch-icon\\\" href=\\\"${1:favicon.png}\\\" />${2}\\n\\\nsnippet map\\n\\\n\t<map name=\\\"${1}\\\">\\n\\\n\t\t${2}\\n\\\n\t</map>\\n\\\nsnippet map.\\n\\\n\t<map class=\\\"${1}\\\" name=\\\"${2}\\\">\\n\\\n\t\t${3}\\n\\\n\t</map>\\n\\\nsnippet map#\\n\\\n\t<map name=\\\"${1}\\\" id=\\\"${2:$1}>\\n\\\n\t\t${3}\\n\\\n\t</map>\\n\\\nsnippet map+\\n\\\n\t<map name=\\\"${1}\\\">\\n\\\n\t\t<area shape=\\\"${2}\\\" coords=\\\"${3}\\\" href=\\\"${4}\\\" alt=\\\"${5}\\\" />${6}\\n\\\n\t</map>${7}\\n\\\nsnippet mark\\n\\\n\t<mark>${1}</mark>\\n\\\nsnippet menu\\n\\\n\t<menu>\\n\\\n\t\t${1}\\n\\\n\t</menu>\\n\\\nsnippet menu:c\\n\\\n\t<menu type=\\\"context\\\">\\n\\\n\t\t${1}\\n\\\n\t</menu>\\n\\\nsnippet menu:t\\n\\\n\t<menu type=\\\"toolbar\\\">\\n\\\n\t\t${1}\\n\\\n\t</menu>\\n\\\nsnippet meta\\n\\\n\t<meta http-equiv=\\\"${1}\\\" content=\\\"${2}\\\" />${3}\\n\\\nsnippet meta:compat\\n\\\n\t<meta http-equiv=\\\"X-UA-Compatible\\\" content=\\\"IE=${1:7,8,edge}\\\" />${3}\\n\\\nsnippet meta:refresh\\n\\\n\t<meta http-equiv=\\\"refresh\\\" content=\\\"text/html;charset=UTF-8\\\" />${3}\\n\\\nsnippet meta:utf\\n\\\n\t<meta http-equiv=\\\"content-type\\\" content=\\\"text/html;charset=UTF-8\\\" />${3}\\n\\\nsnippet meter\\n\\\n\t<meter>${1}</meter>\\n\\\nsnippet nav\\n\\\n\t<nav>\\n\\\n\t\t${1}\\n\\\n\t</nav>\\n\\\nsnippet nav.\\n\\\n\t<nav class=\\\"${1}\\\">\\n\\\n\t\t${2}\\n\\\n\t</nav>\\n\\\nsnippet nav#\\n\\\n\t<nav id=\\\"${1}\\\">\\n\\\n\t\t${2}\\n\\\n\t</nav>\\n\\\nsnippet noscript\\n\\\n\t<noscript>\\n\\\n\t\t${1}\\n\\\n\t</noscript>\\n\\\nsnippet object\\n\\\n\t<object data=\\\"${1}\\\" type=\\\"${2}\\\">\\n\\\n\t\t${3}\\n\\\n\t</object>${4}\\n\\\n# Embed QT Movie\\n\\\nsnippet movie\\n\\\n\t<object width=\\\"$2\\\" height=\\\"$3\\\" classid=\\\"clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B\\\"\\n\\\n\t codebase=\\\"http://www.apple.com/qtactivex/qtplugin.cab\\\">\\n\\\n\t\t<param name=\\\"src\\\" value=\\\"$1\\\" />\\n\\\n\t\t<param name=\\\"controller\\\" value=\\\"$4\\\" />\\n\\\n\t\t<param name=\\\"autoplay\\\" value=\\\"$5\\\" />\\n\\\n\t\t<embed src=\\\"${1:movie.mov}\\\"\\n\\\n\t\t\twidth=\\\"${2:320}\\\" height=\\\"${3:240}\\\"\\n\\\n\t\t\tcontroller=\\\"${4:true}\\\" autoplay=\\\"${5:true}\\\"\\n\\\n\t\t\tscale=\\\"tofit\\\" cache=\\\"true\\\"\\n\\\n\t\t\tpluginspage=\\\"http://www.apple.com/quicktime/download/\\\" />\\n\\\n\t</object>${6}\\n\\\nsnippet ol\\n\\\n\t<ol>\\n\\\n\t\t${1}\\n\\\n\t</ol>\\n\\\nsnippet ol.\\n\\\n\t<ol class=\\\"${1}>\\n\\\n\t\t${2}\\n\\\n\t</ol>\\n\\\nsnippet ol#\\n\\\n\t<ol id=\\\"${1}>\\n\\\n\t\t${2}\\n\\\n\t</ol>\\n\\\nsnippet ol+\\n\\\n\t<ol>\\n\\\n\t\t<li>${1}</li>\\n\\\n\t\tli+${2}\\n\\\n\t</ol>\\n\\\nsnippet opt\\n\\\n\t<option value=\\\"${1}\\\">${2:$1}</option>\\n\\\nsnippet opt+\\n\\\n\t<option value=\\\"${1}\\\">${2:$1}</option>\\n\\\n\topt+${3}\\n\\\nsnippet optt\\n\\\n\t<option>${1}</option>\\n\\\nsnippet optgroup\\n\\\n\t<optgroup>\\n\\\n\t\t<option value=\\\"${1}\\\">${2:$1}</option>\\n\\\n\t\topt+${3}\\n\\\n\t</optgroup>\\n\\\nsnippet output\\n\\\n\t<output>${1}</output>\\n\\\nsnippet p\\n\\\n\t<p>${1}</p>\\n\\\nsnippet param\\n\\\n\t<param name=\\\"${1}\\\" value=\\\"${2}\\\" />${3}\\n\\\nsnippet pre\\n\\\n\t<pre>\\n\\\n\t\t${1}\\n\\\n\t</pre>\\n\\\nsnippet progress\\n\\\n\t<progress>${1}</progress>\\n\\\nsnippet q\\n\\\n\t<q>${1}</q>\\n\\\nsnippet rp\\n\\\n\t<rp>${1}</rp>\\n\\\nsnippet rt\\n\\\n\t<rt>${1}</rt>\\n\\\nsnippet ruby\\n\\\n\t<ruby>\\n\\\n\t\t<rp><rt>${1}</rt></rp>\\n\\\n\t</ruby>\\n\\\nsnippet s\\n\\\n\t<s>${1}</s>\\n\\\nsnippet samp\\n\\\n\t<samp>\\n\\\n\t\t${1}\\n\\\n\t</samp>\\n\\\nsnippet script\\n\\\n\t<script type=\\\"text/javascript\\\" charset=\\\"utf-8\\\">\\n\\\n\t\t${1}\\n\\\n\t</script>\\n\\\nsnippet scriptsrc\\n\\\n\t<script src=\\\"${1}.js\\\" type=\\\"text/javascript\\\" charset=\\\"utf-8\\\"></script>\\n\\\nsnippet section\\n\\\n\t<section>\\n\\\n\t\t${1}\\n\\\n\t</section>\\n\\\nsnippet section.\\n\\\n\t<section class=\\\"${1}\\\">\\n\\\n\t\t${2}\\n\\\n\t</section>\\n\\\nsnippet section#\\n\\\n\t<section id=\\\"${1}\\\">\\n\\\n\t\t${2}\\n\\\n\t</section>\\n\\\nsnippet select\\n\\\n\t<select name=\\\"${1}\\\" id=\\\"${2:$1}\\\">\\n\\\n\t\t${3}\\n\\\n\t</select>\\n\\\nsnippet select.\\n\\\n\t<select name=\\\"${1}\\\" id=\\\"${2:$1}\\\" class=\\\"${3}>\\n\\\n\t\t${4}\\n\\\n\t</select>\\n\\\nsnippet select+\\n\\\n\t<select name=\\\"${1}\\\" id=\\\"${2:$1}\\\">\\n\\\n\t\t<option value=\\\"${3}\\\">${4:$3}</option>\\n\\\n\t\topt+${5}\\n\\\n\t</select>\\n\\\nsnippet small\\n\\\n\t<small>${1}</small>\\n\\\nsnippet source\\n\\\n\t<source src=\\\"${1}\\\" type=\\\"${2}\\\" media=\\\"${3}\\\" />\\n\\\nsnippet span\\n\\\n\t<span>${1}</span>\\n\\\nsnippet strong\\n\\\n\t<strong>${1}</strong>\\n\\\nsnippet style\\n\\\n\t<style type=\\\"text/css\\\" media=\\\"${1:all}\\\">\\n\\\n\t\t${2}\\n\\\n\t</style>\\n\\\nsnippet sub\\n\\\n\t<sub>${1}</sub>\\n\\\nsnippet summary\\n\\\n\t<summary>\\n\\\n\t\t${1}\\n\\\n\t</summary>\\n\\\nsnippet sup\\n\\\n\t<sup>${1}</sup>\\n\\\nsnippet table\\n\\\n\t<table border=\\\"${1:0}\\\">\\n\\\n\t\t${2}\\n\\\n\t</table>\\n\\\nsnippet table.\\n\\\n\t<table class=\\\"${1}\\\" border=\\\"${2:0}\\\">\\n\\\n\t\t${3}\\n\\\n\t</table>\\n\\\nsnippet table#\\n\\\n\t<table id=\\\"${1}\\\" border=\\\"${2:0}\\\">\\n\\\n\t\t${3}\\n\\\n\t</table>\\n\\\nsnippet tbody\\n\\\n\t<tbody>\\n\\\n\t\t${1}\\n\\\n\t</tbody>\\n\\\nsnippet td\\n\\\n\t<td>${1}</td>\\n\\\nsnippet td.\\n\\\n\t<td class=\\\"${1}\\\">${2}</td>\\n\\\nsnippet td#\\n\\\n\t<td id=\\\"${1}\\\">${2}</td>\\n\\\nsnippet td+\\n\\\n\t<td>${1}</td>\\n\\\n\ttd+${2}\\n\\\nsnippet textarea\\n\\\n\t<textarea name=\\\"${1}\\\" id=${2:$1} rows=\\\"${3:8}\\\" cols=\\\"${4:40}\\\">${5}</textarea>${6}\\n\\\nsnippet tfoot\\n\\\n\t<tfoot>\\n\\\n\t\t${1}\\n\\\n\t</tfoot>\\n\\\nsnippet th\\n\\\n\t<th>${1}</th>\\n\\\nsnippet th.\\n\\\n\t<th class=\\\"${1}\\\">${2}</th>\\n\\\nsnippet th#\\n\\\n\t<th id=\\\"${1}\\\">${2}</th>\\n\\\nsnippet th+\\n\\\n\t<th>${1}</th>\\n\\\n\tth+${2}\\n\\\nsnippet thead\\n\\\n\t<thead>\\n\\\n\t\t${1}\\n\\\n\t</thead>\\n\\\nsnippet time\\n\\\n\t<time datetime=\\\"${1}\\\" pubdate=\\\"${2:$1}>${3:$1}</time>\\n\\\nsnippet title\\n\\\n\t<title>${1:`substitute(Filename('', 'Page Title'), '^.', '\\\\u&', '')`}</title>\\n\\\nsnippet tr\\n\\\n\t<tr>\\n\\\n\t\t${1}\\n\\\n\t</tr>\\n\\\nsnippet tr+\\n\\\n\t<tr>\\n\\\n\t\t<td>${1}</td>\\n\\\n\t\ttd+${2}\\n\\\n\t</tr>\\n\\\nsnippet track\\n\\\n\t<track src=\\\"${1}\\\" srclang=\\\"${2}\\\" label=\\\"${3}\\\" default=\\\"${4:default}>${5}</track>${6}\\n\\\nsnippet ul\\n\\\n\t<ul>\\n\\\n\t\t${1}\\n\\\n\t</ul>\\n\\\nsnippet ul.\\n\\\n\t<ul class=\\\"${1}\\\">\\n\\\n\t\t${2}\\n\\\n\t</ul>\\n\\\nsnippet ul#\\n\\\n\t<ul id=\\\"${1}\\\">\\n\\\n\t\t${2}\\n\\\n\t</ul>\\n\\\nsnippet ul+\\n\\\n\t<ul>\\n\\\n\t\t<li>${1}</li>\\n\\\n\t\tli+${2}\\n\\\n\t</ul>\\n\\\nsnippet var\\n\\\n\t<var>${1}</var>\\n\\\nsnippet video\\n\\\n\t<video src=\\\"${1} height=\\\"${2}\\\" width=\\\"${3}\\\" preload=\\\"${5:none}\\\" autoplay=\\\"${6:autoplay}>${7}</video>${8}\\n\\\nsnippet wbr\\n\\\n\t<wbr />${1}\\n\\\n\";\nexports.scope = \"html\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/html_elixir.js",
    "content": "ace.define(\"ace/snippets/html_elixir\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"html_elixir\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/html_ruby.js",
    "content": "ace.define(\"ace/snippets/html_ruby\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"html_ruby\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/ini.js",
    "content": "ace.define(\"ace/snippets/ini\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"ini\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/io.js",
    "content": "ace.define(\"ace/snippets/io\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippets = [\n    {\n        \"content\": \"assertEquals(${1:expected}, ${2:expr})\",\n        \"name\": \"assertEquals\",\n        \"scope\": \"io\",\n        \"tabTrigger\": \"ae\"\n    },\n    {\n        \"content\": \"${1:${2:newValue} := ${3:Object} }clone do(\\n\\t$0\\n)\",\n        \"name\": \"clone do\",\n        \"scope\": \"io\",\n        \"tabTrigger\": \"cdo\"\n    },\n    {\n        \"content\": \"docSlot(\\\"${1:slotName}\\\", \\\"${2:documentation}\\\")\",\n        \"name\": \"docSlot\",\n        \"scope\": \"io\",\n        \"tabTrigger\": \"ds\"\n    },\n    {\n        \"content\": \"(${1:header,}\\n\\t${2:body}\\n)$0\",\n        \"keyEquivalent\": \"@(\",\n        \"name\": \"Indented Bracketed Line\",\n        \"scope\": \"io\",\n        \"tabTrigger\": \"(\"\n    },\n    {\n        \"content\": \"\\n\\t$0\\n\",\n        \"keyEquivalent\": \"\\r\",\n        \"name\": \"Special: Return Inside Empty Parenthesis\",\n        \"scope\": \"io meta.empty-parenthesis.io, io meta.comma-parenthesis.io\"\n    },\n    {\n        \"content\": \"${1:methodName} := method(${2:args,}\\n\\t$0\\n)\",\n        \"name\": \"method\",\n        \"scope\": \"io\",\n        \"tabTrigger\": \"m\"\n    },\n    {\n        \"content\": \"newSlot(\\\"${1:slotName}\\\", ${2:defaultValue}, \\\"${3:docString}\\\")$0\",\n        \"name\": \"newSlot\",\n        \"scope\": \"io\",\n        \"tabTrigger\": \"ns\"\n    },\n    {\n        \"content\": \"${1:name} := Object clone do(\\n\\t$0\\n)\",\n        \"name\": \"Object clone do\",\n        \"scope\": \"io\",\n        \"tabTrigger\": \"ocdo\"\n    },\n    {\n        \"content\": \"test${1:SomeFeature} := method(\\n\\t$0\\n)\",\n        \"name\": \"testMethod\",\n        \"scope\": \"io\",\n        \"tabTrigger\": \"ts\"\n    },\n    {\n        \"content\": \"${1:Something}Test := ${2:UnitTest} clone do(\\n\\t$0\\n)\",\n        \"name\": \"UnitTest\",\n        \"scope\": \"io\",\n        \"tabTrigger\": \"ut\"\n    }\n];\nexports.scope = \"io\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/jack.js",
    "content": "ace.define(\"ace/snippets/jack\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"jack\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/jade.js",
    "content": "ace.define(\"ace/snippets/jade\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"jade\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/java.js",
    "content": "ace.define(\"ace/snippets/java\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"## Access Modifiers\\n\\\nsnippet po\\n\\\n\tprotected\\n\\\nsnippet pu\\n\\\n\tpublic\\n\\\nsnippet pr\\n\\\n\tprivate\\n\\\n##\\n\\\n## Annotations\\n\\\nsnippet before\\n\\\n\t@Before\\n\\\n\tstatic void ${1:intercept}(${2:args}) { ${3} }\\n\\\nsnippet mm\\n\\\n\t@ManyToMany\\n\\\n\t${1}\\n\\\nsnippet mo\\n\\\n\t@ManyToOne\\n\\\n\t${1}\\n\\\nsnippet om\\n\\\n\t@OneToMany${1:(cascade=CascadeType.ALL)}\\n\\\n\t${2}\\n\\\nsnippet oo\\n\\\n\t@OneToOne\\n\\\n\t${1}\\n\\\n##\\n\\\n## Basic Java packages and import\\n\\\nsnippet im\\n\\\n\timport\\n\\\nsnippet j.b\\n\\\n\tjava.beans.\\n\\\nsnippet j.i\\n\\\n\tjava.io.\\n\\\nsnippet j.m\\n\\\n\tjava.math.\\n\\\nsnippet j.n\\n\\\n\tjava.net.\\n\\\nsnippet j.u\\n\\\n\tjava.util.\\n\\\n##\\n\\\n## Class\\n\\\nsnippet cl\\n\\\n\tclass ${1:`Filename(\\\"\\\", \\\"untitled\\\")`} ${2}\\n\\\nsnippet in\\n\\\n\tinterface ${1:`Filename(\\\"\\\", \\\"untitled\\\")`} ${2:extends Parent}${3}\\n\\\nsnippet tc\\n\\\n\tpublic class ${1:`Filename()`} extends ${2:TestCase}\\n\\\n##\\n\\\n## Class Enhancements\\n\\\nsnippet ext\\n\\\n\textends \\n\\\nsnippet imp\\n\\\n\timplements\\n\\\n##\\n\\\n## Comments\\n\\\nsnippet /*\\n\\\n\t/*\\n\\\n\t * ${1}\\n\\\n\t */\\n\\\n##\\n\\\n## Constants\\n\\\nsnippet co\\n\\\n\tstatic public final ${1:String} ${2:var} = ${3};${4}\\n\\\nsnippet cos\\n\\\n\tstatic public final String ${1:var} = \\\"${2}\\\";${3}\\n\\\n##\\n\\\n## Control Statements\\n\\\nsnippet case\\n\\\n\tcase ${1}:\\n\\\n\t\t${2}\\n\\\nsnippet def\\n\\\n\tdefault:\\n\\\n\t\t${2}\\n\\\nsnippet el\\n\\\n\telse\\n\\\nsnippet elif\\n\\\n\telse if (${1}) ${2}\\n\\\nsnippet if\\n\\\n\tif (${1}) ${2}\\n\\\nsnippet sw\\n\\\n\tswitch (${1}) {\\n\\\n\t\t${2}\\n\\\n\t}\\n\\\n##\\n\\\n## Create a Method\\n\\\nsnippet m\\n\\\n\t${1:void} ${2:method}(${3}) ${4:throws }${5}\\n\\\n##\\n\\\n## Create a Variable\\n\\\nsnippet v\\n\\\n\t${1:String} ${2:var}${3: = null}${4};${5}\\n\\\n##\\n\\\n## Enhancements to Methods, variables, classes, etc.\\n\\\nsnippet ab\\n\\\n\tabstract\\n\\\nsnippet fi\\n\\\n\tfinal\\n\\\nsnippet st\\n\\\n\tstatic\\n\\\nsnippet sy\\n\\\n\tsynchronized\\n\\\n##\\n\\\n## Error Methods\\n\\\nsnippet err\\n\\\n\tSystem.err.print(\\\"${1:Message}\\\");\\n\\\nsnippet errf\\n\\\n\tSystem.err.printf(\\\"${1:Message}\\\", ${2:exception});\\n\\\nsnippet errln\\n\\\n\tSystem.err.println(\\\"${1:Message}\\\");\\n\\\n##\\n\\\n## Exception Handling\\n\\\nsnippet as\\n\\\n\tassert ${1:test} : \\\"${2:Failure message}\\\";${3}\\n\\\nsnippet ca\\n\\\n\tcatch(${1:Exception} ${2:e}) ${3}\\n\\\nsnippet thr\\n\\\n\tthrow\\n\\\nsnippet ths\\n\\\n\tthrows\\n\\\nsnippet try\\n\\\n\ttry {\\n\\\n\t\t${3}\\n\\\n\t} catch(${1:Exception} ${2:e}) {\\n\\\n\t}\\n\\\nsnippet tryf\\n\\\n\ttry {\\n\\\n\t\t${3}\\n\\\n\t} catch(${1:Exception} ${2:e}) {\\n\\\n\t} finally {\\n\\\n\t}\\n\\\n##\\n\\\n## Find Methods\\n\\\nsnippet findall\\n\\\n\tList<${1:listName}> ${2:items} = ${1}.findAll();${3}\\n\\\nsnippet findbyid\\n\\\n\t${1:var} ${2:item} = ${1}.findById(${3});${4}\\n\\\n##\\n\\\n## Javadocs\\n\\\nsnippet /**\\n\\\n\t/**\\n\\\n\t * ${1}\\n\\\n\t */\\n\\\nsnippet @au\\n\\\n\t@author `system(\\\"grep \\\\`id -un\\\\` /etc/passwd | cut -d \\\\\\\":\\\\\\\" -f5 | cut -d \\\\\\\",\\\\\\\" -f1\\\")`\\n\\\nsnippet @br\\n\\\n\t@brief ${1:Description}\\n\\\nsnippet @fi\\n\\\n\t@file ${1:`Filename()`}.java\\n\\\nsnippet @pa\\n\\\n\t@param ${1:param}\\n\\\nsnippet @re\\n\\\n\t@return ${1:param}\\n\\\n##\\n\\\n## Logger Methods\\n\\\nsnippet debug\\n\\\n\tLogger.debug(${1:param});${2}\\n\\\nsnippet error\\n\\\n\tLogger.error(${1:param});${2}\\n\\\nsnippet info\\n\\\n\tLogger.info(${1:param});${2}\\n\\\nsnippet warn\\n\\\n\tLogger.warn(${1:param});${2}\\n\\\n##\\n\\\n## Loops\\n\\\nsnippet enfor\\n\\\n\tfor (${1} : ${2}) ${3}\\n\\\nsnippet for\\n\\\n\tfor (${1}; ${2}; ${3}) ${4}\\n\\\nsnippet wh\\n\\\n\twhile (${1}) ${2}\\n\\\n##\\n\\\n## Main method\\n\\\nsnippet main\\n\\\n\tpublic static void main (String[] args) {\\n\\\n\t\t${1:/* code */}\\n\\\n\t}\\n\\\n##\\n\\\n## Print Methods\\n\\\nsnippet print\\n\\\n\tSystem.out.print(\\\"${1:Message}\\\");\\n\\\nsnippet printf\\n\\\n\tSystem.out.printf(\\\"${1:Message}\\\", ${2:args});\\n\\\nsnippet println\\n\\\n\tSystem.out.println(${1});\\n\\\n##\\n\\\n## Render Methods\\n\\\nsnippet ren\\n\\\n\trender(${1:param});${2}\\n\\\nsnippet rena\\n\\\n\trenderArgs.put(\\\"${1}\\\", ${2});${3}\\n\\\nsnippet renb\\n\\\n\trenderBinary(${1:param});${2}\\n\\\nsnippet renj\\n\\\n\trenderJSON(${1:param});${2}\\n\\\nsnippet renx\\n\\\n\trenderXml(${1:param});${2}\\n\\\n##\\n\\\n## Setter and Getter Methods\\n\\\nsnippet set\\n\\\n\t${1:public} void set${3:}(${2:String} ${4:}){\\n\\\n\t\tthis.$4 = $4;\\n\\\n\t}\\n\\\nsnippet get\\n\\\n\t${1:public} ${2:String} get${3:}(){\\n\\\n\t\treturn this.${4:};\\n\\\n\t}\\n\\\n##\\n\\\n## Terminate Methods or Loops\\n\\\nsnippet re\\n\\\n\treturn\\n\\\nsnippet br\\n\\\n\tbreak;\\n\\\n##\\n\\\n## Test Methods\\n\\\nsnippet t\\n\\\n\tpublic void test${1:Name}() throws Exception {\\n\\\n\t\t${2}\\n\\\n\t}\\n\\\nsnippet test\\n\\\n\t@Test\\n\\\n\tpublic void test${1:Name}() throws Exception {\\n\\\n\t\t${2}\\n\\\n\t}\\n\\\n##\\n\\\n## Utils\\n\\\nsnippet Sc\\n\\\n\tScanner\\n\\\n##\\n\\\n## Miscellaneous\\n\\\nsnippet action\\n\\\n\tpublic static void ${1:index}(${2:args}) { ${3} }\\n\\\nsnippet rnf\\n\\\n\tnotFound(${1:param});${2}\\n\\\nsnippet rnfin\\n\\\n\tnotFoundIfNull(${1:param});${2}\\n\\\nsnippet rr\\n\\\n\tredirect(${1:param});${2}\\n\\\nsnippet ru\\n\\\n\tunauthorized(${1:param});${2}\\n\\\nsnippet unless\\n\\\n\t(unless=${1:param});${2}\\n\\\n\";\nexports.scope = \"java\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/javascript.js",
    "content": "ace.define(\"ace/snippets/javascript\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"# Prototype\\n\\\nsnippet proto\\n\\\n\t${1:class_name}.prototype.${2:method_name} = function(${3:first_argument}) {\\n\\\n\t\t${4:// body...}\\n\\\n\t};\\n\\\n# Function\\n\\\nsnippet fun\\n\\\n\tfunction ${1?:function_name}(${2:argument}) {\\n\\\n\t\t${3:// body...}\\n\\\n\t}\\n\\\n# Anonymous Function\\n\\\nregex /((=)\\\\s*|(:)\\\\s*|(\\\\()|\\\\b)/f/(\\\\))?/\\n\\\nsnippet f\\n\\\n\tfunction${M1?: ${1:functionName}}($2) {\\n\\\n\t\t${0:$TM_SELECTED_TEXT}\\n\\\n\t}${M2?;}${M3?,}${M4?)}\\n\\\n# Immediate function\\n\\\ntrigger \\\\(?f\\\\(\\n\\\nendTrigger \\\\)?\\n\\\nsnippet f(\\n\\\n\t(function(${1}) {\\n\\\n\t\t${0:${TM_SELECTED_TEXT:/* code */}}\\n\\\n\t}(${1}));\\n\\\n# if\\n\\\nsnippet if\\n\\\n\tif (${1:true}) {\\n\\\n\t\t${0}\\n\\\n\t}\\n\\\n# if ... else\\n\\\nsnippet ife\\n\\\n\tif (${1:true}) {\\n\\\n\t\t${2}\\n\\\n\t} else {\\n\\\n\t\t${0}\\n\\\n\t}\\n\\\n# tertiary conditional\\n\\\nsnippet ter\\n\\\n\t${1:/* condition */} ? ${2:a} : ${3:b}\\n\\\n# switch\\n\\\nsnippet switch\\n\\\n\tswitch (${1:expression}) {\\n\\\n\t\tcase '${3:case}':\\n\\\n\t\t\t${4:// code}\\n\\\n\t\t\tbreak;\\n\\\n\t\t${5}\\n\\\n\t\tdefault:\\n\\\n\t\t\t${2:// code}\\n\\\n\t}\\n\\\n# case\\n\\\nsnippet case\\n\\\n\tcase '${1:case}':\\n\\\n\t\t${2:// code}\\n\\\n\t\tbreak;\\n\\\n\t${3}\\n\\\n\\n\\\n# while (...) {...}\\n\\\nsnippet wh\\n\\\n\twhile (${1:/* condition */}) {\\n\\\n\t\t${0:/* code */}\\n\\\n\t}\\n\\\n# try\\n\\\nsnippet try\\n\\\n\ttry {\\n\\\n\t\t${0:/* code */}\\n\\\n\t} catch (e) {}\\n\\\n# do...while\\n\\\nsnippet do\\n\\\n\tdo {\\n\\\n\t\t${2:/* code */}\\n\\\n\t} while (${1:/* condition */});\\n\\\n# Object Method\\n\\\nsnippet :f\\n\\\nregex /([,{[])|^\\\\s*/:f/\\n\\\n\t${1:method_name}: function(${2:attribute}) {\\n\\\n\t\t${0}\\n\\\n\t}${3:,}\\n\\\n# setTimeout function\\n\\\nsnippet setTimeout\\n\\\nregex /\\\\b/st|timeout|setTimeo?u?t?/\\n\\\n\tsetTimeout(function() {${3:$TM_SELECTED_TEXT}}, ${1:10});\\n\\\n# Get Elements\\n\\\nsnippet gett\\n\\\n\tgetElementsBy${1:TagName}('${2}')${3}\\n\\\n# Get Element\\n\\\nsnippet get\\n\\\n\tgetElementBy${1:Id}('${2}')${3}\\n\\\n# console.log (Firebug)\\n\\\nsnippet cl\\n\\\n\tconsole.log(${1});\\n\\\n# return\\n\\\nsnippet ret\\n\\\n\treturn ${1:result}\\n\\\n# for (property in object ) { ... }\\n\\\nsnippet fori\\n\\\n\tfor (var ${1:prop} in ${2:Things}) {\\n\\\n\t\t${0:$2[$1]}\\n\\\n\t}\\n\\\n# hasOwnProperty\\n\\\nsnippet has\\n\\\n\thasOwnProperty(${1})\\n\\\n# docstring\\n\\\nsnippet /**\\n\\\n\t/**\\n\\\n\t * ${1:description}\\n\\\n\t *\\n\\\n\t */\\n\\\nsnippet @par\\n\\\nregex /^\\\\s*\\\\*\\\\s*/@(para?m?)?/\\n\\\n\t@param {${1:type}} ${2:name} ${3:description}\\n\\\nsnippet @ret\\n\\\n\t@return {${1:type}} ${2:description}\\n\\\n# JSON.parse\\n\\\nsnippet jsonp\\n\\\n\tJSON.parse(${1:jstr});\\n\\\n# JSON.stringify\\n\\\nsnippet jsons\\n\\\n\tJSON.stringify(${1:object});\\n\\\n# self-defining function\\n\\\nsnippet sdf\\n\\\n\tvar ${1:function_name} = function(${2:argument}) {\\n\\\n\t\t${3:// initial code ...}\\n\\\n\\n\\\n\t\t$1 = function($2) {\\n\\\n\t\t\t${4:// main code}\\n\\\n\t\t};\\n\\\n\t}\\n\\\n# singleton\\n\\\nsnippet sing\\n\\\n\tfunction ${1:Singleton} (${2:argument}) {\\n\\\n\t\t// the cached instance\\n\\\n\t\tvar instance;\\n\\\n\\n\\\n\t\t// rewrite the constructor\\n\\\n\t\t$1 = function $1($2) {\\n\\\n\t\t\treturn instance;\\n\\\n\t\t};\\n\\\n\t\t\\n\\\n\t\t// carry over the prototype properties\\n\\\n\t\t$1.prototype = this;\\n\\\n\\n\\\n\t\t// the instance\\n\\\n\t\tinstance = new $1();\\n\\\n\\n\\\n\t\t// reset the constructor pointer\\n\\\n\t\tinstance.constructor = $1;\\n\\\n\\n\\\n\t\t${3:// code ...}\\n\\\n\\n\\\n\t\treturn instance;\\n\\\n\t}\\n\\\n# class\\n\\\nsnippet class\\n\\\nregex /^\\\\s*/clas{0,2}/\\n\\\n\tvar ${1:class} = function(${20}) {\\n\\\n\t\t$40$0\\n\\\n\t};\\n\\\n\t\\n\\\n\t(function() {\\n\\\n\t\t${60:this.prop = \\\"\\\"}\\n\\\n\t}).call(${1:class}.prototype);\\n\\\n\t\\n\\\n\texports.${1:class} = ${1:class};\\n\\\n# \\n\\\nsnippet for-\\n\\\n\tfor (var ${1:i} = ${2:Things}.length; ${1:i}--; ) {\\n\\\n\t\t${0:${2:Things}[${1:i}];}\\n\\\n\t}\\n\\\n# for (...) {...}\\n\\\nsnippet for\\n\\\n\tfor (var ${1:i} = 0; $1 < ${2:Things}.length; $1++) {\\n\\\n\t\t${3:$2[$1]}$0\\n\\\n\t}\\n\\\n# for (...) {...} (Improved Native For-Loop)\\n\\\nsnippet forr\\n\\\n\tfor (var ${1:i} = ${2:Things}.length - 1; $1 >= 0; $1--) {\\n\\\n\t\t${3:$2[$1]}$0\\n\\\n\t}\\n\\\n\\n\\\n\\n\\\n#modules\\n\\\nsnippet def\\n\\\n\tdefine(function(require, exports, module) {\\n\\\n\t\\\"use strict\\\";\\n\\\n\tvar ${1/.*\\\\///} = require(\\\"${1}\\\");\\n\\\n\t\\n\\\n\t$TM_SELECTED_TEXT\\n\\\n\t});\\n\\\nsnippet req\\n\\\nguard ^\\\\s*\\n\\\n\tvar ${1/.*\\\\///} = require(\\\"${1}\\\");\\n\\\n\t$0\\n\\\nsnippet requ\\n\\\nguard ^\\\\s*\\n\\\n\tvar ${1/.*\\\\/(.)/\\\\u$1/} = require(\\\"${1}\\\").${1/.*\\\\/(.)/\\\\u$1/};\\n\\\n\t$0\\n\\\n\";\nexports.scope = \"javascript\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/json.js",
    "content": "ace.define(\"ace/snippets/json\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"json\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/jsoniq.js",
    "content": "ace.define(\"ace/snippets/jsoniq\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"snippet for\\n\\\n\tfor $${1:item} in ${2:expr}\\n\\\nsnippet return\\n\\\n\treturn ${1:expr}\\n\\\nsnippet import\\n\\\n\timport module namespace ${1:ns} = \\\"${2:http://www.example.com/}\\\";\\n\\\nsnippet some\\n\\\n\tsome $${1:varname} in ${2:expr} satisfies ${3:expr}\\n\\\nsnippet every\\n\\\n\tevery $${1:varname} in ${2:expr} satisfies ${3:expr}\\n\\\nsnippet if\\n\\\n\tif(${1:true}) then ${2:expr} else ${3:true}\\n\\\nsnippet switch\\n\\\n\tswitch(${1:\\\"foo\\\"})\\n\\\n\tcase ${2:\\\"foo\\\"}\\n\\\n\treturn ${3:true}\\n\\\n\tdefault return ${4:false}\\n\\\nsnippet try\\n\\\n\ttry { ${1:expr} } catch ${2:*} { ${3:expr} }\\n\\\nsnippet tumbling\\n\\\n\tfor tumbling window $${1:varname} in ${2:expr}\\n\\\n\tstart at $${3:start} when ${4:expr}\\n\\\n\tend at $${5:end} when ${6:expr}\\n\\\n\treturn ${7:expr}\\n\\\nsnippet sliding\\n\\\n\tfor sliding window $${1:varname} in ${2:expr}\\n\\\n\tstart at $${3:start} when ${4:expr}\\n\\\n\tend at $${5:end} when ${6:expr}\\n\\\n\treturn ${7:expr}\\n\\\nsnippet let\\n\\\n\tlet $${1:varname} := ${2:expr}\\n\\\nsnippet group\\n\\\n\tgroup by $${1:varname} := ${2:expr}\\n\\\nsnippet order\\n\\\n\torder by ${1:expr} ${2:descending}\\n\\\nsnippet stable\\n\\\n\tstable order by ${1:expr}\\n\\\nsnippet count\\n\\\n\tcount $${1:varname}\\n\\\nsnippet ordered\\n\\\n\tordered { ${1:expr} }\\n\\\nsnippet unordered\\n\\\n\tunordered { ${1:expr} }\\n\\\nsnippet treat \\n\\\n\ttreat as ${1:expr}\\n\\\nsnippet castable\\n\\\n\tcastable as ${1:atomicType}\\n\\\nsnippet cast\\n\\\n\tcast as ${1:atomicType}\\n\\\nsnippet typeswitch\\n\\\n\ttypeswitch(${1:expr})\\n\\\n\tcase ${2:type}  return ${3:expr}\\n\\\n\tdefault return ${4:expr}\\n\\\nsnippet var\\n\\\n\tdeclare variable $${1:varname} := ${2:expr};\\n\\\nsnippet fn\\n\\\n\tdeclare function ${1:ns}:${2:name}(){\\n\\\n\t${3:expr}\\n\\\n\t};\\n\\\nsnippet module\\n\\\n\tmodule namespace ${1:ns} = \\\"${2:http://www.example.com}\\\";\\n\\\n\";\nexports.scope = \"jsoniq\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/jsp.js",
    "content": "ace.define(\"ace/snippets/jsp\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"snippet @page\\n\\\n\t<%@page contentType=\\\"text/html\\\" pageEncoding=\\\"UTF-8\\\"%>\\n\\\nsnippet jstl\\n\\\n\t<%@ taglib uri=\\\"http://java.sun.com/jsp/jstl/core\\\" prefix=\\\"c\\\" %>\\n\\\n\t<%@ taglib uri=\\\"http://java.sun.com/jsp/jstl/functions\\\" prefix=\\\"fn\\\" %>\\n\\\nsnippet jstl:c\\n\\\n\t<%@ taglib uri=\\\"http://java.sun.com/jsp/jstl/core\\\" prefix=\\\"c\\\" %>\\n\\\nsnippet jstl:fn\\n\\\n\t<%@ taglib uri=\\\"http://java.sun.com/jsp/jstl/functions\\\" prefix=\\\"fn\\\" %>\\n\\\nsnippet cpath\\n\\\n\t${pageContext.request.contextPath}\\n\\\nsnippet cout\\n\\\n\t<c:out value=\\\"${1}\\\" default=\\\"${2}\\\" />\\n\\\nsnippet cset\\n\\\n\t<c:set var=\\\"${1}\\\" value=\\\"${2}\\\" />\\n\\\nsnippet cremove\\n\\\n\t<c:remove var=\\\"${1}\\\" scope=\\\"${2:page}\\\" />\\n\\\nsnippet ccatch\\n\\\n\t<c:catch var=\\\"${1}\\\" />\\n\\\nsnippet cif\\n\\\n\t<c:if test=\\\"${${1}}\\\">\\n\\\n\t\t${2}\\n\\\n\t</c:if>\\n\\\nsnippet cchoose\\n\\\n\t<c:choose>\\n\\\n\t\t${1}\\n\\\n\t</c:choose>\\n\\\nsnippet cwhen\\n\\\n\t<c:when test=\\\"${${1}}\\\">\\n\\\n\t\t${2}\\n\\\n\t</c:when>\\n\\\nsnippet cother\\n\\\n\t<c:otherwise>\\n\\\n\t\t${1}\\n\\\n\t</c:otherwise>\\n\\\nsnippet cfore\\n\\\n\t<c:forEach items=\\\"${${1}}\\\" var=\\\"${2}\\\" varStatus=\\\"${3}\\\">\\n\\\n\t\t${4:<c:out value=\\\"$2\\\" />}\\n\\\n\t</c:forEach>\\n\\\nsnippet cfort\\n\\\n\t<c:set var=\\\"${1}\\\">${2:item1,item2,item3}</c:set>\\n\\\n\t<c:forTokens var=\\\"${3}\\\" items=\\\"${$1}\\\" delims=\\\"${4:,}\\\">\\n\\\n\t\t${5:<c:out value=\\\"$3\\\" />}\\n\\\n\t</c:forTokens>\\n\\\nsnippet cparam\\n\\\n\t<c:param name=\\\"${1}\\\" value=\\\"${2}\\\" />\\n\\\nsnippet cparam+\\n\\\n\t<c:param name=\\\"${1}\\\" value=\\\"${2}\\\" />\\n\\\n\tcparam+${3}\\n\\\nsnippet cimport\\n\\\n\t<c:import url=\\\"${1}\\\" />\\n\\\nsnippet cimport+\\n\\\n\t<c:import url=\\\"${1}\\\">\\n\\\n\t\t<c:param name=\\\"${2}\\\" value=\\\"${3}\\\" />\\n\\\n\t\tcparam+${4}\\n\\\n\t</c:import>\\n\\\nsnippet curl\\n\\\n\t<c:url value=\\\"${1}\\\" var=\\\"${2}\\\" />\\n\\\n\t<a href=\\\"${$2}\\\">${3}</a>\\n\\\nsnippet curl+\\n\\\n\t<c:url value=\\\"${1}\\\" var=\\\"${2}\\\">\\n\\\n\t\t<c:param name=\\\"${4}\\\" value=\\\"${5}\\\" />\\n\\\n\t\tcparam+${6}\\n\\\n\t</c:url>\\n\\\n\t<a href=\\\"${$2}\\\">${3}</a>\\n\\\nsnippet credirect\\n\\\n\t<c:redirect url=\\\"${1}\\\" />\\n\\\nsnippet contains\\n\\\n\t${fn:contains(${1:string}, ${2:substr})}\\n\\\nsnippet contains:i\\n\\\n\t${fn:containsIgnoreCase(${1:string}, ${2:substr})}\\n\\\nsnippet endswith\\n\\\n\t${fn:endsWith(${1:string}, ${2:suffix})}\\n\\\nsnippet escape\\n\\\n\t${fn:escapeXml(${1:string})}\\n\\\nsnippet indexof\\n\\\n\t${fn:indexOf(${1:string}, ${2:substr})}\\n\\\nsnippet join\\n\\\n\t${fn:join(${1:collection}, ${2:delims})}\\n\\\nsnippet length\\n\\\n\t${fn:length(${1:collection_or_string})}\\n\\\nsnippet replace\\n\\\n\t${fn:replace(${1:string}, ${2:substr}, ${3:replace})}\\n\\\nsnippet split\\n\\\n\t${fn:split(${1:string}, ${2:delims})}\\n\\\nsnippet startswith\\n\\\n\t${fn:startsWith(${1:string}, ${2:prefix})}\\n\\\nsnippet substr\\n\\\n\t${fn:substring(${1:string}, ${2:begin}, ${3:end})}\\n\\\nsnippet substr:a\\n\\\n\t${fn:substringAfter(${1:string}, ${2:substr})}\\n\\\nsnippet substr:b\\n\\\n\t${fn:substringBefore(${1:string}, ${2:substr})}\\n\\\nsnippet lc\\n\\\n\t${fn:toLowerCase(${1:string})}\\n\\\nsnippet uc\\n\\\n\t${fn:toUpperCase(${1:string})}\\n\\\nsnippet trim\\n\\\n\t${fn:trim(${1:string})}\\n\\\n\";\nexports.scope = \"jsp\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/jsx.js",
    "content": "ace.define(\"ace/snippets/jsx\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"jsx\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/julia.js",
    "content": "ace.define(\"ace/snippets/julia\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"julia\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/kotlin.js",
    "content": "ace.define(\"ace/snippets/kotlin\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/latex.js",
    "content": "ace.define(\"ace/snippets/latex\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"latex\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/lean.js",
    "content": "ace.define(\"ace/snippets/lean\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"lean\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/less.js",
    "content": "ace.define(\"ace/snippets/less\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"less\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/liquid.js",
    "content": "ace.define(\"ace/snippets/liquid\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"liquid\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/lisp.js",
    "content": "ace.define(\"ace/snippets/lisp\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"lisp\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/live_script.js",
    "content": "ace.define(\"ace/snippets/live_script\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/livescript.js",
    "content": "ace.define(\"ace/snippets/livescript\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"livescript\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/logiql.js",
    "content": "ace.define(\"ace/snippets/logiql\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"logiql\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/lsl.js",
    "content": "ace.define(\"ace/snippets/lsl\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"snippet @\\n\\\n\t@${1:label};\\n\\\nsnippet CAMERA_ACTIVE\\n\\\n\tCAMERA_ACTIVE, ${1:integer isActive}, $0\\n\\\nsnippet CAMERA_BEHINDNESS_ANGLE\\n\\\n\tCAMERA_BEHINDNESS_ANGLE, ${1:float degrees}, $0\\n\\\nsnippet CAMERA_BEHINDNESS_LAG\\n\\\n\tCAMERA_BEHINDNESS_LAG, ${1:float seconds}, $0\\n\\\nsnippet CAMERA_DISTANCE\\n\\\n\tCAMERA_DISTANCE, ${1:float meters}, $0\\n\\\nsnippet CAMERA_FOCUS\\n\\\n\tCAMERA_FOCUS, ${1:vector position}, $0\\n\\\nsnippet CAMERA_FOCUS_LAG\\n\\\n\tCAMERA_FOCUS_LAG, ${1:float seconds}, $0\\n\\\nsnippet CAMERA_FOCUS_LOCKED\\n\\\n\tCAMERA_FOCUS_LOCKED, ${1:integer isLocked}, $0\\n\\\nsnippet CAMERA_FOCUS_OFFSET\\n\\\n\tCAMERA_FOCUS_OFFSET, ${1:vector meters}, $0\\n\\\nsnippet CAMERA_FOCUS_THRESHOLD\\n\\\n\tCAMERA_FOCUS_THRESHOLD, ${1:float meters}, $0\\n\\\nsnippet CAMERA_PITCH\\n\\\n\tCAMERA_PITCH, ${1:float degrees}, $0\\n\\\nsnippet CAMERA_POSITION\\n\\\n\tCAMERA_POSITION, ${1:vector position}, $0\\n\\\nsnippet CAMERA_POSITION_LAG\\n\\\n\tCAMERA_POSITION_LAG, ${1:float seconds}, $0\\n\\\nsnippet CAMERA_POSITION_LOCKED\\n\\\n\tCAMERA_POSITION_LOCKED, ${1:integer isLocked}, $0\\n\\\nsnippet CAMERA_POSITION_THRESHOLD\\n\\\n\tCAMERA_POSITION_THRESHOLD, ${1:float meters}, $0\\n\\\nsnippet CHARACTER_AVOIDANCE_MODE\\n\\\n\tCHARACTER_AVOIDANCE_MODE, ${1:integer flags}, $0\\n\\\nsnippet CHARACTER_DESIRED_SPEED\\n\\\n\tCHARACTER_DESIRED_SPEED, ${1:float speed}, $0\\n\\\nsnippet CHARACTER_DESIRED_TURN_SPEED\\n\\\n\tCHARACTER_DESIRED_TURN_SPEED, ${1:float speed}, $0\\n\\\nsnippet CHARACTER_LENGTH\\n\\\n\tCHARACTER_LENGTH, ${1:float length}, $0\\n\\\nsnippet CHARACTER_MAX_TURN_RADIUS\\n\\\n\tCHARACTER_MAX_TURN_RADIUS, ${1:float radius}, $0\\n\\\nsnippet CHARACTER_ORIENTATION\\n\\\n\tCHARACTER_ORIENTATION, ${1:integer orientation}, $0\\n\\\nsnippet CHARACTER_RADIUS\\n\\\n\tCHARACTER_RADIUS, ${1:float radius}, $0\\n\\\nsnippet CHARACTER_STAY_WITHIN_PARCEL\\n\\\n\tCHARACTER_STAY_WITHIN_PARCEL, ${1:boolean stay}, $0\\n\\\nsnippet CHARACTER_TYPE\\n\\\n\tCHARACTER_TYPE, ${1:integer type}, $0\\n\\\nsnippet HTTP_BODY_MAXLENGTH\\n\\\n\tHTTP_BODY_MAXLENGTH, ${1:integer length}, $0\\n\\\nsnippet HTTP_CUSTOM_HEADER\\n\\\n\tHTTP_CUSTOM_HEADER, ${1:string name}, ${2:string value}, $0\\n\\\nsnippet HTTP_METHOD\\n\\\n\tHTTP_METHOD, ${1:string method}, $0\\n\\\nsnippet HTTP_MIMETYPE\\n\\\n\tHTTP_MIMETYPE, ${1:string mimeType}, $0\\n\\\nsnippet HTTP_PRAGMA_NO_CACHE\\n\\\n\tHTTP_PRAGMA_NO_CACHE, ${1:integer send_header}, $0\\n\\\nsnippet HTTP_VERBOSE_THROTTLE\\n\\\n\tHTTP_VERBOSE_THROTTLE, ${1:integer noisy}, $0\\n\\\nsnippet HTTP_VERIFY_CERT\\n\\\n\tHTTP_VERIFY_CERT, ${1:integer verify}, $0\\n\\\nsnippet RC_DATA_FLAGS\\n\\\n\tRC_DATA_FLAGS, ${1:integer flags}, $0\\n\\\nsnippet RC_DETECT_PHANTOM\\n\\\n\tRC_DETECT_PHANTOM, ${1:integer dectedPhantom}, $0\\n\\\nsnippet RC_MAX_HITS\\n\\\n\tRC_MAX_HITS, ${1:integer maxHits}, $0\\n\\\nsnippet RC_REJECT_TYPES\\n\\\n\tRC_REJECT_TYPES, ${1:integer filterMask}, $0\\n\\\nsnippet at_rot_target\\n\\\n\tat_rot_target(${1:integer handle}, ${2:rotation targetrot}, ${3:rotation ourrot})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet at_target\\n\\\n\tat_target(${1:integer tnum}, ${2:vector targetpos}, ${3:vector ourpos})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet attach\\n\\\n\tattach(${1:key id})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet changed\\n\\\n\tchanged(${1:integer change})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet collision\\n\\\n\tcollision(${1:integer index})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet collision_end\\n\\\n\tcollision_end(${1:integer index})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet collision_start\\n\\\n\tcollision_start(${1:integer index})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet control\\n\\\n\tcontrol(${1:key id}, ${2:integer level}, ${3:integer edge})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet dataserver\\n\\\n\tdataserver(${1:key query_id}, ${2:string data})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet do\\n\\\n\tdo\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\n\twhile (${1:condition});\\n\\\nsnippet else\\n\\\n\telse\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet email\\n\\\n\temail(${1:string time}, ${2:string address}, ${3:string subject}, ${4:string message}, ${5:integer num_left})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet experience_permissions\\n\\\n\texperience_permissions(${1:key agent_id})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet experience_permissions_denied\\n\\\n\texperience_permissions_denied(${1:key agent_id}, ${2:integer reason})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet for\\n\\\n\tfor (${1:start}; ${3:condition}; ${3:step})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet http_request\\n\\\n\thttp_request(${1:key request_id}, ${2:string method}, ${3:string body})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet http_response\\n\\\n\thttp_response(${1:key request_id}, ${2:integer status}, ${3:list metadata}, ${4:string body})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet if\\n\\\n\tif (${1:condition})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet jump\\n\\\n\tjump ${1:label};\\n\\\nsnippet land_collision\\n\\\n\tland_collision(${1:vector pos})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet land_collision_end\\n\\\n\tland_collision_end(${1:vector pos})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet land_collision_start\\n\\\n\tland_collision_start(${1:vector pos})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet link_message\\n\\\n\tlink_message(${1:integer sender_num}, ${2:integer num}, ${3:string str}, ${4:key id})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet listen\\n\\\n\tlisten(${1:integer channel}, ${2:string name}, ${3:key id}, ${4:string message})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet llAbs\\n\\\n\tllAbs(${1:integer val})\\n\\\nsnippet llAcos\\n\\\n\tllAcos(${1:float val})\\n\\\nsnippet llAddToLandBanList\\n\\\n\tllAddToLandBanList(${1:key agent}, ${2:float hours});\\n\\\n\t$0\\n\\\nsnippet llAddToLandPassList\\n\\\n\tllAddToLandPassList(${1:key agent}, ${2:float hours});\\n\\\n\t$0\\n\\\nsnippet llAdjustSoundVolume\\n\\\n\tllAdjustSoundVolume(${1:float volume});\\n\\\n\t$0\\n\\\nsnippet llAgentInExperience\\n\\\n\tllAgentInExperience(${1:key agent})\\n\\\nsnippet llAllowInventoryDrop\\n\\\n\tllAllowInventoryDrop(${1:integer add});\\n\\\n\t$0\\n\\\nsnippet llAngleBetween\\n\\\n\tllAngleBetween(${1:rotation a}, ${2:rotation b})\\n\\\nsnippet llApplyImpulse\\n\\\n\tllApplyImpulse(${1:vector force}, ${2:integer local});\\n\\\n\t$0\\n\\\nsnippet llApplyRotationalImpulse\\n\\\n\tllApplyRotationalImpulse(${1:vector force}, ${2:integer local});\\n\\\n\t$0\\n\\\nsnippet llAsin\\n\\\n\tllAsin(${1:float val})\\n\\\nsnippet llAtan2\\n\\\n\tllAtan2(${1:float y}, ${2:float x})\\n\\\nsnippet llAttachToAvatar\\n\\\n\tllAttachToAvatar(${1:integer attach_point});\\n\\\n\t$0\\n\\\nsnippet llAttachToAvatarTemp\\n\\\n\tllAttachToAvatarTemp(${1:integer attach_point});\\n\\\n\t$0\\n\\\nsnippet llAvatarOnLinkSitTarget\\n\\\n\tllAvatarOnLinkSitTarget(${1:integer link})\\n\\\nsnippet llAvatarOnSitTarget\\n\\\n\tllAvatarOnSitTarget()\\n\\\nsnippet llAxes2Rot\\n\\\n\tllAxes2Rot(${1:vector fwd}, ${2:vector left}, ${3:vector up})\\n\\\nsnippet llAxisAngle2Rot\\n\\\n\tllAxisAngle2Rot(${1:vector axis}, ${2:float angle})\\n\\\nsnippet llBase64ToInteger\\n\\\n\tllBase64ToInteger(${1:string str})\\n\\\nsnippet llBase64ToString\\n\\\n\tllBase64ToString(${1:string str})\\n\\\nsnippet llBreakAllLinks\\n\\\n\tllBreakAllLinks();\\n\\\n\t$0\\n\\\nsnippet llBreakLink\\n\\\n\tllBreakLink(${1:integer link});\\n\\\n\t$0\\n\\\nsnippet llCastRay\\n\\\n\tllCastRay(${1:vector start}, ${2:vector end}, ${3:list options});\\n\\\n\t$0\\n\\\nsnippet llCeil\\n\\\n\tllCeil(${1:float val})\\n\\\nsnippet llClearCameraParams\\n\\\n\tllClearCameraParams();\\n\\\n\t$0\\n\\\nsnippet llClearLinkMedia\\n\\\n\tllClearLinkMedia(${1:integer link}, ${2:integer face});\\n\\\n\t$0\\n\\\nsnippet llClearPrimMedia\\n\\\n\tllClearPrimMedia(${1:integer face});\\n\\\n\t$0\\n\\\nsnippet llCloseRemoteDataChannel\\n\\\n\tllCloseRemoteDataChannel(${1:key channel});\\n\\\n\t$0\\n\\\nsnippet llCollisionFilter\\n\\\n\tllCollisionFilter(${1:string name}, ${2:key id}, ${3:integer accept});\\n\\\n\t$0\\n\\\nsnippet llCollisionSound\\n\\\n\tllCollisionSound(${1:string impact_sound}, ${2:float impact_volume});\\n\\\n\t$0\\n\\\nsnippet llCos\\n\\\n\tllCos(${1:float theta})\\n\\\nsnippet llCreateCharacter\\n\\\n\tllCreateCharacter(${1:list options});\\n\\\n\t$0\\n\\\nsnippet llCreateKeyValue\\n\\\n\tllCreateKeyValue(${1:string k})\\n\\\nsnippet llCreateLink\\n\\\n\tllCreateLink(${1:key target}, ${2:integer parent});\\n\\\n\t$0\\n\\\nsnippet llCSV2List\\n\\\n\tllCSV2List(${1:string src})\\n\\\nsnippet llDataSizeKeyValue\\n\\\n\tllDataSizeKeyValue()\\n\\\nsnippet llDeleteCharacter\\n\\\n\tllDeleteCharacter();\\n\\\n\t$0\\n\\\nsnippet llDeleteKeyValue\\n\\\n\tllDeleteKeyValue(${1:string k})\\n\\\nsnippet llDeleteSubList\\n\\\n\tllDeleteSubList(${1:list src}, ${2:integer start}, ${3:integer end})\\n\\\nsnippet llDeleteSubString\\n\\\n\tllDeleteSubString(${1:string src}, ${2:integer start}, ${3:integer end})\\n\\\nsnippet llDetachFromAvatar\\n\\\n\tllDetachFromAvatar();\\n\\\n\t$0\\n\\\nsnippet llDetectedGrab\\n\\\n\tllDetectedGrab(${1:integer number})\\n\\\nsnippet llDetectedGroup\\n\\\n\tllDetectedGroup(${1:integer number})\\n\\\nsnippet llDetectedKey\\n\\\n\tllDetectedKey(${1:integer number})\\n\\\nsnippet llDetectedLinkNumber\\n\\\n\tllDetectedLinkNumber(${1:integer number})\\n\\\nsnippet llDetectedName\\n\\\n\tllDetectedName(${1:integer number})\\n\\\nsnippet llDetectedOwner\\n\\\n\tllDetectedOwner(${1:integer number})\\n\\\nsnippet llDetectedPos\\n\\\n\tllDetectedPosl(${1:integer number})\\n\\\nsnippet llDetectedRot\\n\\\n\tllDetectedRot(${1:integer number})\\n\\\nsnippet llDetectedTouchBinormal\\n\\\n\tllDetectedTouchBinormal(${1:integer number})\\n\\\nsnippet llDetectedTouchFace\\n\\\n\tllDetectedTouchFace(${1:integer number})\\n\\\nsnippet llDetectedTouchNormal\\n\\\n\tllDetectedTouchNormal(${1:integer number})\\n\\\nsnippet llDetectedTouchPos\\n\\\n\tllDetectedTouchPos(${1:integer number})\\n\\\nsnippet llDetectedTouchST\\n\\\n\tllDetectedTouchST(${1:integer number})\\n\\\nsnippet llDetectedTouchUV\\n\\\n\tllDetectedTouchUV(${1:integer number})\\n\\\nsnippet llDetectedType\\n\\\n\tllDetectedType(${1:integer number})\\n\\\nsnippet llDetectedVel\\n\\\n\tllDetectedVel(${1:integer number})\\n\\\nsnippet llDialog\\n\\\n\tllDialog(${1:key agent}, ${2:string message}, ${3:list buttons}, ${4:integer channel});\\n\\\n\t$0\\n\\\nsnippet llDie\\n\\\n\tllDie();\\n\\\n\t$0\\n\\\nsnippet llDumpList2String\\n\\\n\tllDumpList2String(${1:list src}, ${2:string separator})\\n\\\nsnippet llEdgeOfWorld\\n\\\n\tllEdgeOfWorld(${1:vector pos}, ${2:vector dir})\\n\\\nsnippet llEjectFromLand\\n\\\n\tllEjectFromLand(${1:key agent});\\n\\\n\t$0\\n\\\nsnippet llEmail\\n\\\n\tllEmail(${1:string address}, ${2:string subject}, ${3:string message});\\n\\\n\t$0\\n\\\nsnippet llEscapeURL\\n\\\n\tllEscapeURL(${1:string url})\\n\\\nsnippet llEuler2Rot\\n\\\n\tllEuler2Rot(${1:vector v})\\n\\\nsnippet llExecCharacterCmd\\n\\\n\tllExecCharacterCmd(${1:integer command}, ${2:list options});\\n\\\n\t$0\\n\\\nsnippet llEvade\\n\\\n\tllEvade(${1:key target}, ${2:list options});\\n\\\n\t$0\\n\\\nsnippet llFabs\\n\\\n\tllFabs(${1:float val})\\n\\\nsnippet llFleeFrom\\n\\\n\tllFleeFrom(${1:vector position}, ${2:float distance}, ${3:list options});\\n\\\n\t$0\\n\\\nsnippet llFloor\\n\\\n\tllFloor(${1:float val})\\n\\\nsnippet llForceMouselook\\n\\\n\tllForceMouselook(${1:integer mouselook});\\n\\\n\t$0\\n\\\nsnippet llFrand\\n\\\n\tllFrand(${1:float mag})\\n\\\nsnippet llGenerateKey\\n\\\n\tllGenerateKey()\\n\\\nsnippet llGetAccel\\n\\\n\tllGetAccel()\\n\\\nsnippet llGetAgentInfo\\n\\\n\tllGetAgentInfo(${1:key id})\\n\\\nsnippet llGetAgentLanguage\\n\\\n\tllGetAgentLanguage(${1:key agent})\\n\\\nsnippet llGetAgentList\\n\\\n\tllGetAgentList(${1:integer scope}, ${2:list options})\\n\\\nsnippet llGetAgentSize\\n\\\n\tllGetAgentSize(${1:key agent})\\n\\\nsnippet llGetAlpha\\n\\\n\tllGetAlpha(${1:integer face})\\n\\\nsnippet llGetAndResetTime\\n\\\n\tllGetAndResetTime()\\n\\\nsnippet llGetAnimation\\n\\\n\tllGetAnimation(${1:key id})\\n\\\nsnippet llGetAnimationList\\n\\\n\tllGetAnimationList(${1:key agent})\\n\\\nsnippet llGetAnimationOverride\\n\\\n\tllGetAnimationOverride(${1:string anim_state})\\n\\\nsnippet llGetAttached\\n\\\n\tllGetAttached()\\n\\\nsnippet llGetAttachedList\\n\\\n\tllGetAttachedList(${1:key id})\\n\\\nsnippet llGetBoundingBox\\n\\\n\tllGetBoundingBox(${1:key object})\\n\\\nsnippet llGetCameraPos\\n\\\n\tllGetCameraPos()\\n\\\nsnippet llGetCameraRot\\n\\\n\tllGetCameraRot()\\n\\\nsnippet llGetCenterOfMass\\n\\\n\tllGetCenterOfMass()\\n\\\nsnippet llGetClosestNavPoint\\n\\\n\tllGetClosestNavPoint(${1:vector point}, ${2:list options})\\n\\\nsnippet llGetColor\\n\\\n\tllGetColor(${1:integer face})\\n\\\nsnippet llGetCreator\\n\\\n\tllGetCreator()\\n\\\nsnippet llGetDate\\n\\\n\tllGetDate()\\n\\\nsnippet llGetDisplayName\\n\\\n\tllGetDisplayName(${1:key id})\\n\\\nsnippet llGetEnergy\\n\\\n\tllGetEnergy()\\n\\\nsnippet llGetEnv\\n\\\n\tllGetEnv(${1:string name})\\n\\\nsnippet llGetExperienceDetails\\n\\\n\tllGetExperienceDetails(${1:key experience_id})\\n\\\nsnippet llGetExperienceErrorMessage\\n\\\n\tllGetExperienceErrorMessage(${1:integer error})\\n\\\nsnippet llGetForce\\n\\\n\tllGetForce()\\n\\\nsnippet llGetFreeMemory\\n\\\n\tllGetFreeMemory()\\n\\\nsnippet llGetFreeURLs\\n\\\n\tllGetFreeURLs()\\n\\\nsnippet llGetGeometricCenter\\n\\\n\tllGetGeometricCenter()\\n\\\nsnippet llGetGMTclock\\n\\\n\tllGetGMTclock()\\n\\\nsnippet llGetHTTPHeader\\n\\\n\tllGetHTTPHeader(${1:key request_id}, ${2:string header})\\n\\\nsnippet llGetInventoryCreator\\n\\\n\tllGetInventoryCreator(${1:string item})\\n\\\nsnippet llGetInventoryKey\\n\\\n\tllGetInventoryKey(${1:string name})\\n\\\nsnippet llGetInventoryName\\n\\\n\tllGetInventoryName(${1:integer type}, ${2:integer number})\\n\\\nsnippet llGetInventoryNumber\\n\\\n\tllGetInventoryNumber(${1:integer type})\\n\\\nsnippet llGetInventoryPermMask\\n\\\n\tllGetInventoryPermMask(${1:string item}, ${2:integer mask})\\n\\\nsnippet llGetInventoryType\\n\\\n\tllGetInventoryType(${1:string name})\\n\\\nsnippet llGetKey\\n\\\n\tllGetKey()\\n\\\nsnippet llGetLandOwnerAt\\n\\\n\tllGetLandOwnerAt(${1:vector pos})\\n\\\nsnippet llGetLinkKey\\n\\\n\tllGetLinkKey(${1:integer link})\\n\\\nsnippet llGetLinkMedia\\n\\\n\tllGetLinkMedia(${1:integer link}, ${2:integer face}, ${3:list params})\\n\\\nsnippet llGetLinkName\\n\\\n\tllGetLinkName(${1:integer link})\\n\\\nsnippet llGetLinkNumber\\n\\\n\tllGetLinkNumber()\\n\\\nsnippet llGetLinkNumberOfSides\\n\\\n\tllGetLinkNumberOfSides(${1:integer link})\\n\\\nsnippet llGetLinkPrimitiveParams\\n\\\n\tllGetLinkPrimitiveParams(${1:integer link}, ${2:list params})\\n\\\nsnippet llGetListEntryType\\n\\\n\tllGetListEntryType(${1:list src}, ${2:integer index})\\n\\\nsnippet llGetListLength\\n\\\n\tllGetListLength(${1:list src})\\n\\\nsnippet llGetLocalPos\\n\\\n\tllGetLocalPos()\\n\\\nsnippet llGetLocalRot\\n\\\n\tllGetLocalRot()\\n\\\nsnippet llGetMass\\n\\\n\tllGetMass()\\n\\\nsnippet llGetMassMKS\\n\\\n\tllGetMassMKS()\\n\\\nsnippet llGetMaxScaleFactor\\n\\\n\tllGetMaxScaleFactor()\\n\\\nsnippet llGetMemoryLimit\\n\\\n\tllGetMemoryLimit()\\n\\\nsnippet llGetMinScaleFactor\\n\\\n\tllGetMinScaleFactor()\\n\\\nsnippet llGetNextEmail\\n\\\n\tllGetNextEmail(${1:string address}, ${2:string subject});\\n\\\n\t$0\\n\\\nsnippet llGetNotecardLine\\n\\\n\tllGetNotecardLine(${1:string name}, ${2:integer line})\\n\\\nsnippet llGetNumberOfNotecardLines\\n\\\n\tllGetNumberOfNotecardLines(${1:string name})\\n\\\nsnippet llGetNumberOfPrims\\n\\\n\tllGetNumberOfPrims()\\n\\\nsnippet llGetNumberOfSides\\n\\\n\tllGetNumberOfSides()\\n\\\nsnippet llGetObjectDesc\\n\\\n\tllGetObjectDesc()\\n\\\nsnippet llGetObjectDetails\\n\\\n\tllGetObjectDetails(${1:key id}, ${2:list params})\\n\\\nsnippet llGetObjectMass\\n\\\n\tllGetObjectMass(${1:key id})\\n\\\nsnippet llGetObjectName\\n\\\n\tllGetObjectName()\\n\\\nsnippet llGetObjectPermMask\\n\\\n\tllGetObjectPermMask(${1:integer mask})\\n\\\nsnippet llGetObjectPrimCount\\n\\\n\tllGetObjectPrimCount(${1:key prim})\\n\\\nsnippet llGetOmega\\n\\\n\tllGetOmega()\\n\\\nsnippet llGetOwner\\n\\\n\tllGetOwner()\\n\\\nsnippet llGetOwnerKey\\n\\\n\tllGetOwnerKey(${1:key id})\\n\\\nsnippet llGetParcelDetails\\n\\\n\tllGetParcelDetails(${1:vector pos}, ${2:list params})\\n\\\nsnippet llGetParcelFlags\\n\\\n\tllGetParcelFlags(${1:vector pos})\\n\\\nsnippet llGetParcelMaxPrims\\n\\\n\tllGetParcelMaxPrims(${1:vector pos}, ${2:integer sim_wide})\\n\\\nsnippet llGetParcelMusicURL\\n\\\n\tllGetParcelMusicURL()\\n\\\nsnippet llGetParcelPrimCount\\n\\\n\tllGetParcelPrimCount(${1:vector pos}, ${2:integer category}, ${3:integer sim_wide})\\n\\\nsnippet llGetParcelPrimOwners\\n\\\n\tllGetParcelPrimOwners(${1:vector pos})\\n\\\nsnippet llGetPermissions\\n\\\n\tllGetPermissions()\\n\\\nsnippet llGetPermissionsKey\\n\\\n\tllGetPermissionsKey()\\n\\\nsnippet llGetPhysicsMaterial\\n\\\n\tllGetPhysicsMaterial()\\n\\\nsnippet llGetPos\\n\\\n\tllGetPos()\\n\\\nsnippet llGetPrimitiveParams\\n\\\n\tllGetPrimitiveParams(${1:list params})\\n\\\nsnippet llGetPrimMediaParams\\n\\\n\tllGetPrimMediaParams(${1:integer face}, ${2:list params})\\n\\\nsnippet llGetRegionAgentCount\\n\\\n\tllGetRegionAgentCount()\\n\\\nsnippet llGetRegionCorner\\n\\\n\tllGetRegionCorner()\\n\\\nsnippet llGetRegionFlags\\n\\\n\tllGetRegionFlags()\\n\\\nsnippet llGetRegionFPS\\n\\\n\tllGetRegionFPS()\\n\\\nsnippet llGetRegionName\\n\\\n\tllGetRegionName()\\n\\\nsnippet llGetRegionTimeDilation\\n\\\n\tllGetRegionTimeDilation()\\n\\\nsnippet llGetRootPosition\\n\\\n\tllGetRootPosition()\\n\\\nsnippet llGetRootRotation\\n\\\n\tllGetRootRotation()\\n\\\nsnippet llGetRot\\n\\\n\tllGetRot()\\n\\\nsnippet llGetScale\\n\\\n\tllGetScale()\\n\\\nsnippet llGetScriptName\\n\\\n\tllGetScriptName()\\n\\\nsnippet llGetScriptState\\n\\\n\tllGetScriptState(${1:string script})\\n\\\nsnippet llGetSimStats\\n\\\n\tllGetSimStats(${1:integer stat_type})\\n\\\nsnippet llGetSimulatorHostname\\n\\\n\tllGetSimulatorHostname()\\n\\\nsnippet llGetSPMaxMemory\\n\\\n\tllGetSPMaxMemory()\\n\\\nsnippet llGetStartParameter\\n\\\n\tllGetStartParameter()\\n\\\nsnippet llGetStaticPath\\n\\\n\tllGetStaticPath(${1:vector start}, ${2:vector end}, ${3:float radius}, ${4:list params})\\n\\\nsnippet llGetStatus\\n\\\n\tllGetStatus(${1:integer status})\\n\\\nsnippet llGetSubString\\n\\\n\tllGetSubString(${1:string src}, ${2:integer start}, ${3:integer end})\\n\\\nsnippet llGetSunDirection\\n\\\n\tllGetSunDirection()\\n\\\nsnippet llGetTexture\\n\\\n\tllGetTexture(${1:integer face})\\n\\\nsnippet llGetTextureOffset\\n\\\n\tllGetTextureOffset(${1:integer face})\\n\\\nsnippet llGetTextureRot\\n\\\n\tllGetTextureRot(${1:integer face})\\n\\\nsnippet llGetTextureScale\\n\\\n\tllGetTextureScale(${1:integer face})\\n\\\nsnippet llGetTime\\n\\\n\tllGetTime()\\n\\\nsnippet llGetTimeOfDay\\n\\\n\tllGetTimeOfDay()\\n\\\nsnippet llGetTimestamp\\n\\\n\tllGetTimestamp()\\n\\\nsnippet llGetTorque\\n\\\n\tllGetTorque()\\n\\\nsnippet llGetUnixTime\\n\\\n\tllGetUnixTime()\\n\\\nsnippet llGetUsedMemory\\n\\\n\tllGetUsedMemory()\\n\\\nsnippet llGetUsername\\n\\\n\tllGetUsername(${1:key id})\\n\\\nsnippet llGetVel\\n\\\n\tllGetVel()\\n\\\nsnippet llGetWallclock\\n\\\n\tllGetWallclock()\\n\\\nsnippet llGiveInventory\\n\\\n\tllGiveInventory(${1:key destination}, ${2:string inventory});\\n\\\n\t$0\\n\\\nsnippet llGiveInventoryList\\n\\\n\tllGiveInventoryList(${1:key target}, ${2:string folder}, ${3:list inventory});\\n\\\n\t$0\\n\\\nsnippet llGiveMoney\\n\\\n\tllGiveMoney(${1:key destination}, ${2:integer amount})\\n\\\nsnippet llGround\\n\\\n\tllGround(${1:vector offset})\\n\\\nsnippet llGroundContour\\n\\\n\tllGroundContour(${1:vector offset})\\n\\\nsnippet llGroundNormal\\n\\\n\tllGroundNormal(${1:vector offset})\\n\\\nsnippet llGroundRepel\\n\\\n\tllGroundRepel(${1:float height}, ${2:integer water}, ${3:float tau});\\n\\\n\t$0\\n\\\nsnippet llGroundSlope\\n\\\n\tllGroundSlope(${1:vector offset})\\n\\\nsnippet llHTTPRequest\\n\\\n\tllHTTPRequest(${1:string url}, ${2:list parameters}, ${3:string body})\\n\\\nsnippet llHTTPResponse\\n\\\n\tllHTTPResponse(${1:key request_id}, ${2:integer status}, ${3:string body});\\n\\\n\t$0\\n\\\nsnippet llInsertString\\n\\\n\tllInsertString(${1:string dst}, ${2:integer pos}, ${3:string src})\\n\\\nsnippet llInstantMessage\\n\\\n\tllInstantMessage(${1:key user}, ${2:string message});\\n\\\n\t$0\\n\\\nsnippet llIntegerToBase64\\n\\\n\tllIntegerToBase64(${1:integer number})\\n\\\nsnippet llJson2List\\n\\\n\tllJson2List(${1:string json})\\n\\\nsnippet llJsonGetValue\\n\\\n\tllJsonGetValue(${1:string json}, ${2:list specifiers})\\n\\\nsnippet llJsonSetValue\\n\\\n\tllJsonSetValue(${1:string json}, ${2:list specifiers}, ${3:string newValue})\\n\\\nsnippet llJsonValueType\\n\\\n\tllJsonValueType(${1:string json}, ${2:list specifiers})\\n\\\nsnippet llKey2Name\\n\\\n\tllKey2Name(${1:key id})\\n\\\nsnippet llKeyCountKeyValue\\n\\\n\tllKeyCountKeyValue()\\n\\\nsnippet llKeysKeyValue\\n\\\n\tllKeysKeyValue(${1:integer first}, ${2:integer count})\\n\\\nsnippet llLinkParticleSystem\\n\\\n\tllLinkParticleSystem(${1:integer link}, ${2:list rules});\\n\\\n\t$0\\n\\\nsnippet llLinkSitTarget\\n\\\n\tllLinkSitTarget(${1:integer link}, ${2:vector offset}, ${3:rotation rot});\\n\\\n\t$0\\n\\\nsnippet llList2CSV\\n\\\n\tllList2CSV(${1:list src})\\n\\\nsnippet llList2Float\\n\\\n\tllList2Float(${1:list src}, ${2:integer index})\\n\\\nsnippet llList2Integer\\n\\\n\tllList2Integer(${1:list src}, ${2:integer index})\\n\\\nsnippet llList2Json\\n\\\n\tllList2Json(${1:string type}, ${2:list values})\\n\\\nsnippet llList2Key\\n\\\n\tllList2Key(${1:list src}, ${2:integer index})\\n\\\nsnippet llList2List\\n\\\n\tllList2List(${1:list src}, ${2:integer start}, ${3:integer end})\\n\\\nsnippet llList2ListStrided\\n\\\n\tllList2ListStrided(${1:list src}, ${2:integer start}, ${3:integer end}, ${4:integer stride})\\n\\\nsnippet llList2Rot\\n\\\n\tllList2Rot(${1:list src}, ${2:integer index})\\n\\\nsnippet llList2String\\n\\\n\tllList2String(${1:list src}, ${2:integer index})\\n\\\nsnippet llList2Vector\\n\\\n\tllList2Vector(${1:list src}, ${2:integer index})\\n\\\nsnippet llListen\\n\\\n\tllListen(${1:integer channel}, ${2:string name}, ${3:key id}, ${4:string msg})\\n\\\nsnippet llListenControl\\n\\\n\tllListenControl(${1:integer handle}, ${2:integer active});\\n\\\n\t$0\\n\\\nsnippet llListenRemove\\n\\\n\tllListenRemove(${1:integer handle});\\n\\\n\t$0\\n\\\nsnippet llListFindList\\n\\\n\tllListFindList(${1:list src}, ${2:list test})\\n\\\nsnippet llListInsertList\\n\\\n\tllListInsertList(${1:list dest}, ${2:list src}, ${3:integer start})\\n\\\nsnippet llListRandomize\\n\\\n\tllListRandomize(${1:list src}, ${2:integer stride})\\n\\\nsnippet llListReplaceList\\n\\\n\tllListReplaceList(${1:list dest}, ${2:list src}, ${3:integer start}, ${4:integer end})\\n\\\nsnippet llListSort\\n\\\n\tllListSort(${1:list src}, ${2:integer stride}, ${3:integer ascending})\\n\\\nsnippet llListStatistics\\n\\\n\tllListStatistics(${1:integer operation}, ${2:list src})\\n\\\nsnippet llLoadURL\\n\\\n\tllLoadURL(${1:key agent}, ${2:string message}, ${3:string url});\\n\\\n\t$0\\n\\\nsnippet llLog\\n\\\n\tllLog(${1:float val})\\n\\\nsnippet llLog10\\n\\\n\tllLog10(${1:float val})\\n\\\nsnippet llLookAt\\n\\\n\tllLookAt(${1:vector target}, ${2:float strength}, ${3:float damping});\\n\\\n\t$0\\n\\\nsnippet llLoopSound\\n\\\n\tllLoopSound(${1:string sound}, ${2:float volume});\\n\\\n\t$0\\n\\\nsnippet llLoopSoundMaster\\n\\\n\tllLoopSoundMaster(${1:string sound}, ${2:float volume});\\n\\\n\t$0\\n\\\nsnippet llLoopSoundSlave\\n\\\n\tllLoopSoundSlave(${1:string sound}, ${2:float volume});\\n\\\n\t$0\\n\\\nsnippet llManageEstateAccess\\n\\\n\tllManageEstateAccess(${1:integer action}, ${2:key agent})\\n\\\nsnippet llMapDestination\\n\\\n\tllMapDestination(${1:string simname}, ${2:vector pos}, ${3:vector look_at});\\n\\\n\t$0\\n\\\nsnippet llMD5String\\n\\\n\tllMD5String(${1:string src}, ${2:integer nonce})\\n\\\nsnippet llMessageLinked\\n\\\n\tllMessageLinked(${1:integer link}, ${2:integer num}, ${3:string str}, ${4:key id});\\n\\\n\t$0\\n\\\nsnippet llMinEventDelay\\n\\\n\tllMinEventDelay(${1:float delay});\\n\\\n\t$0\\n\\\nsnippet llModifyLand\\n\\\n\tllModifyLand(${1:integer action}, ${2:integer brush});\\n\\\n\t$0\\n\\\nsnippet llModPow\\n\\\n\tllModPow(${1:integer a}, ${2:integer b}, ${3:integer c})\\n\\\nsnippet llMoveToTarget\\n\\\n\tllMoveToTarget(${1:vector target}, ${2:float tau});\\n\\\n\t$0\\n\\\nsnippet llNavigateTo\\n\\\n\tllNavigateTo(${1:vector pos}, ${2:list options});\\n\\\n\t$0\\n\\\nsnippet llOffsetTexture\\n\\\n\tllOffsetTexture(${1:float u}, ${2:float v}, ${3:integer face});\\n\\\n\t$0\\n\\\nsnippet llOpenRemoteDataChannel\\n\\\n\tllOpenRemoteDataChannel();\\n\\\n\t$0\\n\\\nsnippet llOverMyLand\\n\\\n\tllOverMyLand(${1:key id})\\n\\\nsnippet llOwnerSay\\n\\\n\tllOwnerSay(${1:string msg});\\n\\\n\t$0\\n\\\nsnippet llParcelMediaCommandList\\n\\\n\tllParcelMediaCommandList(${1:list commandList});\\n\\\n\t$0\\n\\\nsnippet llParcelMediaQuery\\n\\\n\tllParcelMediaQuery(${1:list query})\\n\\\nsnippet llParseString2List\\n\\\n\tllParseString2List(${1:string src}, ${2:list separators}, ${3:list spacers})\\n\\\nsnippet llParseStringKeepNulls\\n\\\n\tllParseStringKeepNulls(${1:string src}, ${2:list separators}, ${3:list spacers})\\n\\\nsnippet llParticleSystem\\n\\\n\tllParticleSystem(${1:list rules});\\n\\\n\t$0\\n\\\nsnippet llPassCollisions\\n\\\n\tllPassCollisions(${1:integer pass});\\n\\\n\t$0\\n\\\nsnippet llPassTouches\\n\\\n\tllPassTouches(${1:integer pass});\\n\\\n\t$0\\n\\\nsnippet llPatrolPoints\\n\\\n\tllPatrolPoints(${1:list patrolPoints}, ${2:list options});\\n\\\n\t$0\\n\\\nsnippet llPlaySound\\n\\\n\tllPlaySound(${1:string sound}, ${2:float volume});\\n\\\n\t$0\\n\\\nsnippet llPlaySoundSlave\\n\\\n\tllPlaySoundSlave(${1:string sound}, ${2:float volume});\\n\\\n\t$0\\n\\\nsnippet llPow\\n\\\n\tllPow(${1:float base}, ${2:float exponent})\\n\\\nsnippet llPreloadSound\\n\\\n\tllPreloadSound(${1:string sound});\\n\\\n\t$0\\n\\\nsnippet llPursue\\n\\\n\tllPursue(${1:key target}, ${2:list options});\\n\\\n\t$0\\n\\\nsnippet llPushObject\\n\\\n\tllPushObject(${1:key target}, ${2:vector impulse}, ${3:vector ang_impulse}, ${4:integer local});\\n\\\n\t$0\\n\\\nsnippet llReadKeyValue\\n\\\n\tllReadKeyValue(${1:string k})\\n\\\nsnippet llRegionSay\\n\\\n\tllRegionSay(${1:integer channel}, ${2:string msg});\\n\\\n\t$0\\n\\\nsnippet llRegionSayTo\\n\\\n\tllRegionSayTo(${1:key target}, ${2:integer channel}, ${3:string msg});\\n\\\n\t$0\\n\\\nsnippet llReleaseControls\\n\\\n\tllReleaseControls();\\n\\\n\t$0\\n\\\nsnippet llReleaseURL\\n\\\n\tllReleaseURL(${1:string url});\\n\\\n\t$0\\n\\\nsnippet llRemoteDataReply\\n\\\n\tllRemoteDataReply(${1:key channel}, ${2:key message_id}, ${3:string sdata}, ${4:integer idata});\\n\\\n\t$0\\n\\\nsnippet llRemoteLoadScriptPin\\n\\\n\tllRemoteLoadScriptPin(${1:key target}, ${2:string name}, ${3:integer pin}, ${4:integer running}, ${5:integer start_param});\\n\\\n\t$0\\n\\\nsnippet llRemoveFromLandBanList\\n\\\n\tllRemoveFromLandBanList(${1:key agent});\\n\\\n\t$0\\n\\\nsnippet llRemoveFromLandPassList\\n\\\n\tllRemoveFromLandPassList(${1:key agent});\\n\\\n\t$0\\n\\\nsnippet llRemoveInventory\\n\\\n\tllRemoveInventory(${1:string item});\\n\\\n\t$0\\n\\\nsnippet llRemoveVehicleFlags\\n\\\n\tllRemoveVehicleFlags(${1:integer flags});\\n\\\n\t$0\\n\\\nsnippet llRequestAgentData\\n\\\n\tllRequestAgentData(${1:key id}, ${2:integer data})\\n\\\nsnippet llRequestDisplayName\\n\\\n\tllRequestDisplayName(${1:key id})\\n\\\nsnippet llRequestExperiencePermissions\\n\\\n\tllRequestExperiencePermissions(${1:key agent}, ${2:string name})\\n\\\nsnippet llRequestInventoryData\\n\\\n\tllRequestInventoryData(${1:string name})\\n\\\nsnippet llRequestPermissions\\n\\\n\tllRequestPermissions(${1:key agent}, ${2:integer permissions})\\n\\\nsnippet llRequestSecureURL\\n\\\n\tllRequestSecureURL()\\n\\\nsnippet llRequestSimulatorData\\n\\\n\tllRequestSimulatorData(${1:string region}, ${2:integer data})\\n\\\nsnippet llRequestURL\\n\\\n\tllRequestURL()\\n\\\nsnippet llRequestUsername\\n\\\n\tllRequestUsername(${1:key id})\\n\\\nsnippet llResetAnimationOverride\\n\\\n\tllResetAnimationOverride(${1:string anim_state});\\n\\\n\t$0\\n\\\nsnippet llResetLandBanList\\n\\\n\tllResetLandBanList();\\n\\\n\t$0\\n\\\nsnippet llResetLandPassList\\n\\\n\tllResetLandPassList();\\n\\\n\t$0\\n\\\nsnippet llResetOtherScript\\n\\\n\tllResetOtherScript(${1:string name});\\n\\\n\t$0\\n\\\nsnippet llResetScript\\n\\\n\tllResetScript();\\n\\\n\t$0\\n\\\nsnippet llResetTime\\n\\\n\tllResetTime();\\n\\\n\t$0\\n\\\nsnippet llReturnObjectsByID\\n\\\n\tllReturnObjectsByID(${1:list objects})\\n\\\nsnippet llReturnObjectsByOwner\\n\\\n\tllReturnObjectsByOwner(${1:key owner}, ${2:integer scope})\\n\\\nsnippet llRezAtRoot\\n\\\n\tllRezAtRoot(${1:string inventory}, ${2:vector position}, ${3:vector velocity}, ${4:rotation rot}, ${5:integer param});\\n\\\n\t$0\\n\\\nsnippet llRezObject\\n\\\n\tllRezObject(${1:string inventory}, ${2:vector pos}, ${3:vector vel}, ${4:rotation rot}, ${5:integer param});\\n\\\n\t$0\\n\\\nsnippet llRot2Angle\\n\\\n\tllRot2Angle(${1:rotation rot})\\n\\\nsnippet llRot2Axis\\n\\\n\tllRot2Axis(${1:rotation rot})\\n\\\nsnippet llRot2Euler\\n\\\n\tllRot2Euler(${1:rotation quat})\\n\\\nsnippet llRot2Fwd\\n\\\n\tllRot2Fwd(${1:rotation q})\\n\\\nsnippet llRot2Left\\n\\\n\tllRot2Left(${1:rotation q})\\n\\\nsnippet llRot2Up\\n\\\n\tllRot2Up(${1:rotation q})\\n\\\nsnippet llRotateTexture\\n\\\n\tllRotateTexture(${1:float angle}, ${2:integer face});\\n\\\n\t$0\\n\\\nsnippet llRotBetween\\n\\\n\tllRotBetween(${1:vector start}, ${2:vector end})\\n\\\nsnippet llRotLookAt\\n\\\n\tllRotLookAt(${1:rotation target_direction}, ${2:float strength}, ${3:float damping});\\n\\\n\t$0\\n\\\nsnippet llRotTarget\\n\\\n\tllRotTarget(${1:rotation rot}, ${2:float error})\\n\\\nsnippet llRotTargetRemove\\n\\\n\tllRotTargetRemove(${1:integer handle});\\n\\\n\t$0\\n\\\nsnippet llRound\\n\\\n\tllRound(${1:float val})\\n\\\nsnippet llSameGroup\\n\\\n\tllSameGroup(${1:key group})\\n\\\nsnippet llSay\\n\\\n\tllSay(${1:integer channel}, ${2:string msg});\\n\\\n\t$0\\n\\\nsnippet llScaleByFactor\\n\\\n\tllScaleByFactor(${1:float scaling_factor})\\n\\\nsnippet llScaleTexture\\n\\\n\tllScaleTexture(${1:float u}, ${2:float v}, ${3:integer face});\\n\\\n\t$0\\n\\\nsnippet llScriptDanger\\n\\\n\tllScriptDanger(${1:vector pos})\\n\\\nsnippet llScriptProfiler\\n\\\n\tllScriptProfiler(${1:integer flags});\\n\\\n\t$0\\n\\\nsnippet llSendRemoteData\\n\\\n\tllSendRemoteData(${1:key channel}, ${2:string dest}, ${3:integer idata}, ${4:string sdata})\\n\\\nsnippet llSensor\\n\\\n\tllSensor(${1:string name}, ${2:key id}, ${3:integer type}, ${4:float range}, ${5:float arc});\\n\\\n\t$0\\n\\\nsnippet llSensorRepeat\\n\\\n\tllSensorRepeat(${1:string name}, ${2:key id}, ${3:integer type}, ${4:float range}, ${5:float arc}, ${6:float rate});\\n\\\n\t$0\\n\\\nsnippet llSetAlpha\\n\\\n\tllSetAlpha(${1:float alpha}, ${2:integer face});\\n\\\n\t$0\\n\\\nsnippet llSetAngularVelocity\\n\\\n\tllSetAngularVelocity(${1:vector force}, ${2:integer local});\\n\\\n\t$0\\n\\\nsnippet llSetAnimationOverride\\n\\\n\tllSetAnimationOverride(${1:string anim_state}, ${2:string anim})\\n\\\nsnippet llSetBuoyancy\\n\\\n\tllSetBuoyancy(${1:float buoyancy});\\n\\\n\t$0\\n\\\nsnippet llSetCameraAtOffset\\n\\\n\tllSetCameraAtOffset(${1:vector offset});\\n\\\n\t$0\\n\\\nsnippet llSetCameraEyeOffset\\n\\\n\tllSetCameraEyeOffset(${1:vector offset});\\n\\\n\t$0\\n\\\nsnippet llSetCameraParams\\n\\\n\tllSetCameraParams(${1:list rules});\\n\\\n\t$0\\n\\\nsnippet llSetClickAction\\n\\\n\tllSetClickAction(${1:integer action});\\n\\\n\t$0\\n\\\nsnippet llSetColor\\n\\\n\tllSetColor(${1:vector color}, ${2:integer face});\\n\\\n\t$0\\n\\\nsnippet llSetContentType\\n\\\n\tllSetContentType(${1:key request_id}, ${2:integer content_type});\\n\\\n\t$0\\n\\\nsnippet llSetDamage\\n\\\n\tllSetDamage(${1:float damage});\\n\\\n\t$0\\n\\\nsnippet llSetForce\\n\\\n\tllSetForce(${1:vector force}, ${2:integer local});\\n\\\n\t$0\\n\\\nsnippet llSetForceAndTorque\\n\\\n\tllSetForceAndTorque(${1:vector force}, ${2:vector torque}, ${3:integer local});\\n\\\n\t$0\\n\\\nsnippet llSetHoverHeight\\n\\\n\tllSetHoverHeight(${1:float height}, ${2:integer water}, ${3:float tau});\\n\\\n\t$0\\n\\\nsnippet llSetKeyframedMotion\\n\\\n\tllSetKeyframedMotion(${1:list keyframes}, ${2:list options});\\n\\\n\t$0\\n\\\nsnippet llSetLinkAlpha\\n\\\n\tllSetLinkAlpha(${1:integer link}, ${2:float alpha}, ${3:integer face});\\n\\\n\t$0\\n\\\nsnippet llSetLinkCamera\\n\\\n\tllSetLinkCamera(${1:integer link}, ${2:vector eye}, ${3:vector at});\\n\\\n\t$0\\n\\\nsnippet llSetLinkColor\\n\\\n\tllSetLinkColor(${1:integer link}, ${2:vector color}, ${3:integer face});\\n\\\n\t$0\\n\\\nsnippet llSetLinkMedia\\n\\\n\tllSetLinkMedia(${1:integer link}, ${2:integer face}, ${3:list params});\\n\\\n\t$0\\n\\\nsnippet llSetLinkPrimitiveParams\\n\\\n\tllSetLinkPrimitiveParams(${1:integer link}, ${2:list rules});\\n\\\n\t$0\\n\\\nsnippet llSetLinkPrimitiveParamsFast\\n\\\n\tllSetLinkPrimitiveParamsFast(${1:integer link}, ${2:list rules});\\n\\\n\t$0\\n\\\nsnippet llSetLinkTexture\\n\\\n\tllSetLinkTexture(${1:integer link}, ${2:string texture}, ${3:integer face});\\n\\\n\t$0\\n\\\nsnippet llSetLinkTextureAnim\\n\\\n\tllSetLinkTextureAnim(${1:integer link}, ${2:integer mode}, ${3:integer face}, ${4:integer sizex}, ${5:integer sizey}, ${6:float start}, ${7:float length}, ${8:float rate});\\n\\\n\t$0\\n\\\nsnippet llSetLocalRot\\n\\\n\tllSetLocalRot(${1:rotation rot});\\n\\\n\t$0\\n\\\nsnippet llSetMemoryLimit\\n\\\n\tllSetMemoryLimit(${1:integer limit})\\n\\\nsnippet llSetObjectDesc\\n\\\n\tllSetObjectDesc(${1:string description});\\n\\\n\t$0\\n\\\nsnippet llSetObjectName\\n\\\n\tllSetObjectName(${1:string name});\\n\\\n\t$0\\n\\\nsnippet llSetParcelMusicURL\\n\\\n\tllSetParcelMusicURL(${1:string url});\\n\\\n\t$0\\n\\\nsnippet llSetPayPrice\\n\\\n\tllSetPayPrice(${1:integer price}, [${2:integer price_button_a}, ${3:integer price_button_b}, ${4:integer price_button_c}, ${5:integer price_button_d}]);\\n\\\n\t$0\\n\\\nsnippet llSetPhysicsMaterial\\n\\\n\tllSetPhysicsMaterial(${1:integer mask}, ${2:float gravity_multiplier}, ${3:float restitution}, ${4:float friction}, ${5:float density});\\n\\\n\t$0\\n\\\nsnippet llSetPos\\n\\\n\tllSetPos(${1:vector pos});\\n\\\n\t$0\\n\\\nsnippet llSetPrimitiveParams\\n\\\n\tllSetPrimitiveParams(${1:list rules});\\n\\\n\t$0\\n\\\nsnippet llSetPrimMediaParams\\n\\\n\tllSetPrimMediaParams(${1:integer face}, ${2:list params});\\n\\\n\t$0\\n\\\nsnippet llSetRegionPos\\n\\\n\tllSetRegionPos(${1:vector position})\\n\\\nsnippet llSetRemoteScriptAccessPin\\n\\\n\tllSetRemoteScriptAccessPin(${1:integer pin});\\n\\\n\t$0\\n\\\nsnippet llSetRot\\n\\\n\tllSetRot(${1:rotation rot});\\n\\\n\t$0\\n\\\nsnippet llSetScale\\n\\\n\tllSetScale(${1:vector size});\\n\\\n\t$0\\n\\\nsnippet llSetScriptState\\n\\\n\tllSetScriptState(${1:string name}, ${2:integer run});\\n\\\n\t$0\\n\\\nsnippet llSetSitText\\n\\\n\tllSetSitText(${1:string text});\\n\\\n\t$0\\n\\\nsnippet llSetSoundQueueing\\n\\\n\tllSetSoundQueueing(${1:integer queue});\\n\\\n\t$0\\n\\\nsnippet llSetSoundRadius\\n\\\n\tllSetSoundRadius(${1:float radius});\\n\\\n\t$0\\n\\\nsnippet llSetStatus\\n\\\n\tllSetStatus(${1:integer status}, ${2:integer value});\\n\\\n\t$0\\n\\\nsnippet llSetText\\n\\\n\tllSetText(${1:string text}, ${2:vector color}, ${3:float alpha});\\n\\\n\t$0\\n\\\nsnippet llSetTexture\\n\\\n\tllSetTexture(${1:string texture}, ${2:integer face});\\n\\\n\t$0\\n\\\nsnippet llSetTextureAnim\\n\\\n\tllSetTextureAnim(${1:integer mode}, ${2:integer face}, ${3:integer sizex}, ${4:integer sizey}, ${5:float start}, ${6:float length}, ${7:float rate});\\n\\\n\t$0\\n\\\nsnippet llSetTimerEvent\\n\\\n\tllSetTimerEvent(${1:float sec});\\n\\\n\t$0\\n\\\nsnippet llSetTorque\\n\\\n\tllSetTorque(${1:vector torque}, ${2:integer local});\\n\\\n\t$0\\n\\\nsnippet llSetTouchText\\n\\\n\tllSetTouchText(${1:string text});\\n\\\n\t$0\\n\\\nsnippet llSetVehicleFlags\\n\\\n\tllSetVehicleFlags(${1:integer flags});\\n\\\n\t$0\\n\\\nsnippet llSetVehicleFloatParam\\n\\\n\tllSetVehicleFloatParam(${1:integer param}, ${2:float value});\\n\\\n\t$0\\n\\\nsnippet llSetVehicleRotationParam\\n\\\n\tllSetVehicleRotationParam(${1:integer param}, ${2:rotation rot});\\n\\\n\t$0\\n\\\nsnippet llSetVehicleType\\n\\\n\tllSetVehicleType(${1:integer type});\\n\\\n\t$0\\n\\\nsnippet llSetVehicleVectorParam\\n\\\n\tllSetVehicleVectorParam(${1:integer param}, ${2:vector vec});\\n\\\n\t$0\\n\\\nsnippet llSetVelocity\\n\\\n\tllSetVelocity(${1:vector force}, ${2:integer local});\\n\\\n\t$0\\n\\\nsnippet llSHA1String\\n\\\n\tllSHA1String(${1:string src})\\n\\\nsnippet llShout\\n\\\n\tllShout(${1:integer channel}, ${2:string msg});\\n\\\n\t$0\\n\\\nsnippet llSin\\n\\\n\tllSin(${1:float theta})\\n\\\nsnippet llSitTarget\\n\\\n\tllSitTarget(${1:vector offset}, ${2:rotation rot});\\n\\\n\t$0\\n\\\nsnippet llSleep\\n\\\n\tllSleep(${1:float sec});\\n\\\n\t$0\\n\\\nsnippet llSqrt\\n\\\n\tllSqrt(${1:float val})\\n\\\nsnippet llStartAnimation\\n\\\n\tllStartAnimation(${1:string anim});\\n\\\n\t$0\\n\\\nsnippet llStopAnimation\\n\\\n\tllStopAnimation(${1:string anim});\\n\\\n\t$0\\n\\\nsnippet llStopHover\\n\\\n\tllStopHover();\\n\\\n\t$0\\n\\\nsnippet llStopLookAt\\n\\\n\tllStopLookAt();\\n\\\n\t$0\\n\\\nsnippet llStopMoveToTarget\\n\\\n\tllStopMoveToTarget();\\n\\\n\t$0\\n\\\nsnippet llStopSound\\n\\\n\tllStopSound();\\n\\\n\t$0\\n\\\nsnippet llStringLength\\n\\\n\tllStringLength(${1:string str})\\n\\\nsnippet llStringToBase64\\n\\\n\tllStringToBase64(${1:string str})\\n\\\nsnippet llStringTrim\\n\\\n\tllStringTrim(${1:string src}, ${2:integer type})\\n\\\nsnippet llSubStringIndex\\n\\\n\tllSubStringIndex(${1:string source}, ${2:string pattern})\\n\\\nsnippet llTakeControls\\n\\\n\tllTakeControls(${1:integer controls}, ${2:integer accept}, ${3:integer pass_on});\\n\\\n\t$0\\n\\\nsnippet llTan\\n\\\n\tllTan(${1:float theta})\\n\\\nsnippet llTarget\\n\\\n\tllTarget(${1:vector position}, ${2:float range})\\n\\\nsnippet llTargetOmega\\n\\\n\tllTargetOmega(${1:vector axis}, ${2:float spinrate}, ${3:float gain});\\n\\\n\t$0\\n\\\nsnippet llTargetRemove\\n\\\n\tllTargetRemove(${1:integer handle});\\n\\\n\t$0\\n\\\nsnippet llTeleportAgent\\n\\\n\tllTeleportAgent(${1:key agent}, ${2:string landmark}, ${3:vector position}, ${4:vector look_at});\\n\\\n\t$0\\n\\\nsnippet llTeleportAgentGlobalCoords\\n\\\n\tllTeleportAgentGlobalCoords(${1:key agent}, ${2:vector global_coordinates}, ${3:vector region_coordinates}, ${4:vector look_at});\\n\\\n\t$0\\n\\\nsnippet llTeleportAgentHome\\n\\\n\tllTeleportAgentHome(${1:key agent});\\n\\\n\t$0\\n\\\nsnippet llTextBox\\n\\\n\tllTextBox(${1:key agent}, ${2:string message}, ${3:integer channel});\\n\\\n\t$0\\n\\\nsnippet llToLower\\n\\\n\tllToLower(${1:string src})\\n\\\nsnippet llToUpper\\n\\\n\tllToUpper(${1:string src})\\n\\\nsnippet llTransferLindenDollars\\n\\\n\tllTransferLindenDollars(${1:key destination}, ${2:integer amount})\\n\\\nsnippet llTriggerSound\\n\\\n\tllTriggerSound(${1:string sound}, ${2:float volume});\\n\\\n\t$0\\n\\\nsnippet llTriggerSoundLimited\\n\\\n\tllTriggerSoundLimited(${1:string sound}, ${2:float volume}, ${3:vector top_north_east}, ${4:vector bottom_south_west});\\n\\\n\t$0\\n\\\nsnippet llUnescapeURL\\n\\\n\tllUnescapeURL(${1:string url})\\n\\\nsnippet llUnSit\\n\\\n\tllUnSit(${1:key id});\\n\\\n\t$0\\n\\\nsnippet llUpdateCharacter\\n\\\n\tllUpdateCharacter(${1:list options})\\n\\\nsnippet llUpdateKeyValue\\n\\\n\tllUpdateKeyValue(${1:string k}, ${2:string v}, ${3:integer checked}, ${4:string ov})\\n\\\nsnippet llVecDist\\n\\\n\tllVecDist(${1:vector vec_a}, ${2:vector vec_b})\\n\\\nsnippet llVecMag\\n\\\n\tllVecMag(${1:vector vec})\\n\\\nsnippet llVecNorm\\n\\\n\tllVecNorm(${1:vector vec})\\n\\\nsnippet llVolumeDetect\\n\\\n\tllVolumeDetect(${1:integer detect});\\n\\\n\t$0\\n\\\nsnippet llWanderWithin\\n\\\n\tllWanderWithin(${1:vector origin}, ${2:vector dist}, ${3:list options});\\n\\\n\t$0\\n\\\nsnippet llWater\\n\\\n\tllWater(${1:vector offset});\\n\\\n\t$0\\n\\\nsnippet llWhisper\\n\\\n\tllWhisper(${1:integer channel}, ${2:string msg});\\n\\\n\t$0\\n\\\nsnippet llWind\\n\\\n\tllWind(${1:vector offset});\\n\\\n\t$0\\n\\\nsnippet llXorBase64\\n\\\n\tllXorBase64(${1:string str1}, ${2:string str2})\\n\\\nsnippet money\\n\\\n\tmoney(${1:key id}, ${2:integer amount})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet object_rez\\n\\\n\tobject_rez(${1:key id})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet on_rez\\n\\\n\ton_rez(${1:integer start_param})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet path_update\\n\\\n\tpath_update(${1:integer type}, ${2:list reserved})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet remote_data\\n\\\n\tremote_data(${1:integer event_type}, ${2:key channel}, ${3:key message_id}, ${4:string sender}, ${5:integer idata}, ${6:string sdata})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet run_time_permissions\\n\\\n\trun_time_permissions(${1:integer perm})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet sensor\\n\\\n\tsensor(${1:integer index})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet state\\n\\\n\tstate ${1:name}\\n\\\nsnippet touch\\n\\\n\ttouch(${1:integer index})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet touch_end\\n\\\n\ttouch_end(${1:integer index})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet touch_start\\n\\\n\ttouch_start(${1:integer index})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet transaction_result\\n\\\n\ttransaction_result(${1:key id}, ${2:integer success}, ${3:string data})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\nsnippet while\\n\\\n\twhile (${1:condition})\\n\\\n\t{\\n\\\n\t\t$0\\n\\\n\t}\\n\\\n\";\nexports.scope = \"lsl\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/lua.js",
    "content": "ace.define(\"ace/snippets/lua\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"snippet #!\\n\\\n\t#!/usr/bin/env lua\\n\\\n\t$1\\n\\\nsnippet local\\n\\\n\tlocal ${1:x} = ${2:1}\\n\\\nsnippet fun\\n\\\n\tfunction ${1:fname}(${2:...})\\n\\\n\t\t${3:-- body}\\n\\\n\tend\\n\\\nsnippet for\\n\\\n\tfor ${1:i}=${2:1},${3:10} do\\n\\\n\t\t${4:print(i)}\\n\\\n\tend\\n\\\nsnippet forp\\n\\\n\tfor ${1:i},${2:v} in pairs(${3:table_name}) do\\n\\\n\t   ${4:-- body}\\n\\\n\tend\\n\\\nsnippet fori\\n\\\n\tfor ${1:i},${2:v} in ipairs(${3:table_name}) do\\n\\\n\t   ${4:-- body}\\n\\\n\tend\\n\\\n\";\nexports.scope = \"lua\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/luapage.js",
    "content": "ace.define(\"ace/snippets/luapage\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"luapage\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/lucene.js",
    "content": "ace.define(\"ace/snippets/lucene\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"lucene\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/makefile.js",
    "content": "ace.define(\"ace/snippets/makefile\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"snippet ifeq\\n\\\n\tifeq (${1:cond0},${2:cond1})\\n\\\n\t\t${3:code}\\n\\\n\tendif\\n\\\n\";\nexports.scope = \"makefile\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/markdown.js",
    "content": "ace.define(\"ace/snippets/markdown\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"# Markdown\\n\\\n\\n\\\n# Includes octopress (http://octopress.org/) snippets\\n\\\n\\n\\\nsnippet [\\n\\\n\t[${1:text}](http://${2:address} \\\"${3:title}\\\")\\n\\\nsnippet [*\\n\\\n\t[${1:link}](${2:`@*`} \\\"${3:title}\\\")${4}\\n\\\n\\n\\\nsnippet [:\\n\\\n\t[${1:id}]: http://${2:url} \\\"${3:title}\\\"\\n\\\nsnippet [:*\\n\\\n\t[${1:id}]: ${2:`@*`} \\\"${3:title}\\\"\\n\\\n\\n\\\nsnippet ![\\n\\\n\t![${1:alttext}](${2:/images/image.jpg} \\\"${3:title}\\\")\\n\\\nsnippet ![*\\n\\\n\t![${1:alt}](${2:`@*`} \\\"${3:title}\\\")${4}\\n\\\n\\n\\\nsnippet ![:\\n\\\n\t![${1:id}]: ${2:url} \\\"${3:title}\\\"\\n\\\nsnippet ![:*\\n\\\n\t![${1:id}]: ${2:`@*`} \\\"${3:title}\\\"\\n\\\n\\n\\\nsnippet ===\\n\\\nregex /^/=+/=*//\\n\\\n\t${PREV_LINE/./=/g}\\n\\\n\t\\n\\\n\t${0}\\n\\\nsnippet ---\\n\\\nregex /^/-+/-*//\\n\\\n\t${PREV_LINE/./-/g}\\n\\\n\t\\n\\\n\t${0}\\n\\\nsnippet blockquote\\n\\\n\t{% blockquote %}\\n\\\n\t${1:quote}\\n\\\n\t{% endblockquote %}\\n\\\n\\n\\\nsnippet blockquote-author\\n\\\n\t{% blockquote ${1:author}, ${2:title} %}\\n\\\n\t${3:quote}\\n\\\n\t{% endblockquote %}\\n\\\n\\n\\\nsnippet blockquote-link\\n\\\n\t{% blockquote ${1:author} ${2:URL} ${3:link_text} %}\\n\\\n\t${4:quote}\\n\\\n\t{% endblockquote %}\\n\\\n\\n\\\nsnippet bt-codeblock-short\\n\\\n\t```\\n\\\n\t${1:code_snippet}\\n\\\n\t```\\n\\\n\\n\\\nsnippet bt-codeblock-full\\n\\\n\t``` ${1:language} ${2:title} ${3:URL} ${4:link_text}\\n\\\n\t${5:code_snippet}\\n\\\n\t```\\n\\\n\\n\\\nsnippet codeblock-short\\n\\\n\t{% codeblock %}\\n\\\n\t${1:code_snippet}\\n\\\n\t{% endcodeblock %}\\n\\\n\\n\\\nsnippet codeblock-full\\n\\\n\t{% codeblock ${1:title} lang:${2:language} ${3:URL} ${4:link_text} %}\\n\\\n\t${5:code_snippet}\\n\\\n\t{% endcodeblock %}\\n\\\n\\n\\\nsnippet gist-full\\n\\\n\t{% gist ${1:gist_id} ${2:filename} %}\\n\\\n\\n\\\nsnippet gist-short\\n\\\n\t{% gist ${1:gist_id} %}\\n\\\n\\n\\\nsnippet img\\n\\\n\t{% img ${1:class} ${2:URL} ${3:width} ${4:height} ${5:title_text} ${6:alt_text} %}\\n\\\n\\n\\\nsnippet youtube\\n\\\n\t{% youtube ${1:video_id} %}\\n\\\n\\n\\\n# The quote should appear only once in the text. It is inherently part of it.\\n\\\n# See http://octopress.org/docs/plugins/pullquote/ for more info.\\n\\\n\\n\\\nsnippet pullquote\\n\\\n\t{% pullquote %}\\n\\\n\t${1:text} {\\\" ${2:quote} \\\"} ${3:text}\\n\\\n\t{% endpullquote %}\\n\\\n\";\nexports.scope = \"markdown\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/mask.js",
    "content": "ace.define(\"ace/snippets/mask\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"mask\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/matlab.js",
    "content": "ace.define(\"ace/snippets/matlab\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"matlab\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/maze.js",
    "content": "ace.define(\"ace/snippets/maze\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"snippet >\\n\\\ndescription assignment\\n\\\nscope maze\\n\\\n\t-> ${1}= ${2}\\n\\\n\\n\\\nsnippet >\\n\\\ndescription if\\n\\\nscope maze\\n\\\n\t-> IF ${2:**} THEN %${3:L} ELSE %${4:R}\\n\\\n\";\nexports.scope = \"maze\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/mel.js",
    "content": "ace.define(\"ace/snippets/mel\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"mel\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/mips_assembler.js",
    "content": "ace.define(\"ace/snippets/mips_assembler\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"mips_assembler\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/mipsassembler.js",
    "content": "ace.define(\"ace/snippets/mipsassembler\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/mushcode.js",
    "content": "ace.define(\"ace/snippets/mushcode\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"mushcode\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/mysql.js",
    "content": "ace.define(\"ace/snippets/mysql\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"mysql\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/nix.js",
    "content": "ace.define(\"ace/snippets/nix\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"nix\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/nsis.js",
    "content": "ace.define(\"ace/snippets/nsis\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/objectivec.js",
    "content": "ace.define(\"ace/snippets/objectivec\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"objectivec\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/ocaml.js",
    "content": "ace.define(\"ace/snippets/ocaml\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"ocaml\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/pascal.js",
    "content": "ace.define(\"ace/snippets/pascal\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"pascal\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/perl.js",
    "content": "ace.define(\"ace/snippets/perl\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"# #!/usr/bin/perl\\n\\\nsnippet #!\\n\\\n\t#!/usr/bin/env perl\\n\\\n\\n\\\n# Hash Pointer\\n\\\nsnippet .\\n\\\n\t =>\\n\\\n# Function\\n\\\nsnippet sub\\n\\\n\tsub ${1:function_name} {\\n\\\n\t\t${2:#body ...}\\n\\\n\t}\\n\\\n# Conditional\\n\\\nsnippet if\\n\\\n\tif (${1}) {\\n\\\n\t\t${2:# body...}\\n\\\n\t}\\n\\\n# Conditional if..else\\n\\\nsnippet ife\\n\\\n\tif (${1}) {\\n\\\n\t\t${2:# body...}\\n\\\n\t}\\n\\\n\telse {\\n\\\n\t\t${3:# else...}\\n\\\n\t}\\n\\\n# Conditional if..elsif..else\\n\\\nsnippet ifee\\n\\\n\tif (${1}) {\\n\\\n\t\t${2:# body...}\\n\\\n\t}\\n\\\n\telsif (${3}) {\\n\\\n\t\t${4:# elsif...}\\n\\\n\t}\\n\\\n\telse {\\n\\\n\t\t${5:# else...}\\n\\\n\t}\\n\\\n# Conditional One-line\\n\\\nsnippet xif\\n\\\n\t${1:expression} if ${2:condition};${3}\\n\\\n# Unless conditional\\n\\\nsnippet unless\\n\\\n\tunless (${1}) {\\n\\\n\t\t${2:# body...}\\n\\\n\t}\\n\\\n# Unless conditional One-line\\n\\\nsnippet xunless\\n\\\n\t${1:expression} unless ${2:condition};${3}\\n\\\n# Try/Except\\n\\\nsnippet eval\\n\\\n\tlocal $@;\\n\\\n\teval {\\n\\\n\t\t${1:# do something risky...}\\n\\\n\t};\\n\\\n\tif (my $e = $@) {\\n\\\n\t\t${2:# handle failure...}\\n\\\n\t}\\n\\\n# While Loop\\n\\\nsnippet wh\\n\\\n\twhile (${1}) {\\n\\\n\t\t${2:# body...}\\n\\\n\t}\\n\\\n# While Loop One-line\\n\\\nsnippet xwh\\n\\\n\t${1:expression} while ${2:condition};${3}\\n\\\n# C-style For Loop\\n\\\nsnippet cfor\\n\\\n\tfor (my $${2:var} = 0; $$2 < ${1:count}; $$2${3:++}) {\\n\\\n\t\t${4:# body...}\\n\\\n\t}\\n\\\n# For loop one-line\\n\\\nsnippet xfor\\n\\\n\t${1:expression} for @${2:array};${3}\\n\\\n# Foreach Loop\\n\\\nsnippet for\\n\\\n\tforeach my $${1:x} (@${2:array}) {\\n\\\n\t\t${3:# body...}\\n\\\n\t}\\n\\\n# Foreach Loop One-line\\n\\\nsnippet fore\\n\\\n\t${1:expression} foreach @${2:array};${3}\\n\\\n# Package\\n\\\nsnippet package\\n\\\n\tpackage ${1:`substitute(Filename('', 'Page Title'), '^.', '\\\\u&', '')`};\\n\\\n\\n\\\n\t${2}\\n\\\n\\n\\\n\t1;\\n\\\n\\n\\\n\t__END__\\n\\\n# Package syntax perl >= 5.14\\n\\\nsnippet packagev514\\n\\\n\tpackage ${1:`substitute(Filename('', 'Page Title'), '^.', '\\\\u&', '')`} ${2:0.99};\\n\\\n\\n\\\n\t${3}\\n\\\n\\n\\\n\t1;\\n\\\n\\n\\\n\t__END__\\n\\\n#moose\\n\\\nsnippet moose\\n\\\n\tuse Moose;\\n\\\n\tuse namespace::autoclean;\\n\\\n\t${1:#}BEGIN {extends '${2:ParentClass}'};\\n\\\n\\n\\\n\t${3}\\n\\\n# parent\\n\\\nsnippet parent\\n\\\n\tuse parent qw(${1:Parent Class});\\n\\\n# Read File\\n\\\nsnippet slurp\\n\\\n\tmy $${1:var} = do { local $/; open my $file, '<', \\\"${2:file}\\\"; <$file> };\\n\\\n\t${3}\\n\\\n# strict warnings\\n\\\nsnippet strwar\\n\\\n\tuse strict;\\n\\\n\tuse warnings;\\n\\\n# older versioning with perlcritic bypass\\n\\\nsnippet vers\\n\\\n\t## no critic\\n\\\n\tour $VERSION = '${1:version}';\\n\\\n\teval $VERSION;\\n\\\n\t## use critic\\n\\\n# new 'switch' like feature\\n\\\nsnippet switch\\n\\\n\tuse feature 'switch';\\n\\\n\\n\\\n# Anonymous subroutine\\n\\\nsnippet asub\\n\\\n\tsub {\\n\\\n\t \t${1:# body }\\n\\\n\t}\\n\\\n\\n\\\n\\n\\\n\\n\\\n# Begin block\\n\\\nsnippet begin\\n\\\n\tBEGIN {\\n\\\n\t\t${1:# begin body}\\n\\\n\t}\\n\\\n\\n\\\n# call package function with some parameter\\n\\\nsnippet pkgmv\\n\\\n\t__PACKAGE__->${1:package_method}(${2:var})\\n\\\n\\n\\\n# call package function without a parameter\\n\\\nsnippet pkgm\\n\\\n\t__PACKAGE__->${1:package_method}()\\n\\\n\\n\\\n# call package \\\"get_\\\" function without a parameter\\n\\\nsnippet pkget\\n\\\n\t__PACKAGE__->get_${1:package_method}()\\n\\\n\\n\\\n# call package function with a parameter\\n\\\nsnippet pkgetv\\n\\\n\t__PACKAGE__->get_${1:package_method}(${2:var})\\n\\\n\\n\\\n# complex regex\\n\\\nsnippet qrx\\n\\\n\tqr/\\n\\\n\t     ${1:regex}\\n\\\n\t/xms\\n\\\n\\n\\\n#simpler regex\\n\\\nsnippet qr/\\n\\\n\tqr/${1:regex}/x\\n\\\n\\n\\\n#given\\n\\\nsnippet given\\n\\\n\tgiven ($${1:var}) {\\n\\\n\t\t${2:# cases}\\n\\\n\t\t${3:# default}\\n\\\n\t}\\n\\\n\\n\\\n# switch-like case\\n\\\nsnippet when\\n\\\n\twhen (${1:case}) {\\n\\\n\t\t${2:# body}\\n\\\n\t}\\n\\\n\\n\\\n# hash slice\\n\\\nsnippet hslice\\n\\\n\t@{ ${1:hash}  }{ ${2:array} }\\n\\\n\\n\\\n\\n\\\n# map\\n\\\nsnippet map\\n\\\n\tmap {  ${2: body }    }  ${1: @array } ;\\n\\\n\\n\\\n\\n\\\n\\n\\\n# Pod stub\\n\\\nsnippet ppod\\n\\\n\t=head1 NAME\\n\\\n\\n\\\n\t${1:ClassName} - ${2:ShortDesc}\\n\\\n\\n\\\n\t=head1 SYNOPSIS\\n\\\n\\n\\\n\t  use $1;\\n\\\n\\n\\\n\t  ${3:# synopsis...}\\n\\\n\\n\\\n\t=head1 DESCRIPTION\\n\\\n\\n\\\n\t${4:# longer description...}\\n\\\n\\n\\\n\\n\\\n\t=head1 INTERFACE\\n\\\n\\n\\\n\\n\\\n\t=head1 DEPENDENCIES\\n\\\n\\n\\\n\\n\\\n\t=head1 SEE ALSO\\n\\\n\\n\\\n\\n\\\n# Heading for a subroutine stub\\n\\\nsnippet psub\\n\\\n\t=head2 ${1:MethodName}\\n\\\n\\n\\\n\t${2:Summary....}\\n\\\n\\n\\\n# Heading for inline subroutine pod\\n\\\nsnippet psubi\\n\\\n\t=head2 ${1:MethodName}\\n\\\n\\n\\\n\t${2:Summary...}\\n\\\n\\n\\\n\\n\\\n\t=cut\\n\\\n# inline documented subroutine\\n\\\nsnippet subpod\\n\\\n\t=head2 $1\\n\\\n\\n\\\n\tSummary of $1\\n\\\n\\n\\\n\t=cut\\n\\\n\\n\\\n\tsub ${1:subroutine_name} {\\n\\\n\t\t${2:# body...}\\n\\\n\t}\\n\\\n# Subroutine signature\\n\\\nsnippet parg\\n\\\n\t=over 2\\n\\\n\\n\\\n\t=item\\n\\\n\tArguments\\n\\\n\\n\\\n\\n\\\n\t=over 3\\n\\\n\\n\\\n\t=item\\n\\\n\tC<${1:DataStructure}>\\n\\\n\\n\\\n\t  ${2:Sample}\\n\\\n\\n\\\n\\n\\\n\t=back\\n\\\n\\n\\\n\\n\\\n\t=item\\n\\\n\tReturn\\n\\\n\\n\\\n\t=over 3\\n\\\n\\n\\\n\\n\\\n\t=item\\n\\\n\tC<${3:...return data}>\\n\\\n\\n\\\n\\n\\\n\t=back\\n\\\n\\n\\\n\\n\\\n\t=back\\n\\\n\\n\\\n\\n\\\n\\n\\\n# Moose has\\n\\\nsnippet has\\n\\\n\thas ${1:attribute} => (\\n\\\n\t\tis\t    => '${2:ro|rw}',\\n\\\n\t\tisa \t=> '${3:Str|Int|HashRef|ArrayRef|etc}',\\n\\\n\t\tdefault => sub {\\n\\\n\t\t\t${4:defaultvalue}\\n\\\n\t\t},\\n\\\n\t\t${5:# other attributes}\\n\\\n\t);\\n\\\n\\n\\\n\\n\\\n# override\\n\\\nsnippet override\\n\\\n\toverride ${1:attribute} => sub {\\n\\\n\t\t${2:# my $self = shift;};\\n\\\n\t\t${3:# my ($self, $args) = @_;};\\n\\\n\t};\\n\\\n\\n\\\n\\n\\\n# use test classes\\n\\\nsnippet tuse\\n\\\n\tuse Test::More;\\n\\\n\tuse Test::Deep; # (); # uncomment to stop prototype errors\\n\\\n\tuse Test::Exception;\\n\\\n\\n\\\n# local test lib\\n\\\nsnippet tlib\\n\\\n\tuse lib qw{ ./t/lib };\\n\\\n\\n\\\n#test methods\\n\\\nsnippet tmeths\\n\\\n\t$ENV{TEST_METHOD} = '${1:regex}';\\n\\\n\\n\\\n# runtestclass\\n\\\nsnippet trunner\\n\\\n\tuse ${1:test_class};\\n\\\n\t$1->runtests();\\n\\\n\\n\\\n# Test::Class-style test\\n\\\nsnippet tsub\\n\\\n\tsub t${1:number}_${2:test_case} :Test(${3:num_of_tests}) {\\n\\\n\t\tmy $self = shift;\\n\\\n\t\t${4:#  body}\\n\\\n\\n\\\n\t}\\n\\\n\\n\\\n# Test::Routine-style test\\n\\\nsnippet trsub\\n\\\n\ttest ${1:test_name} => { description => '${2:Description of test.}'} => sub {\\n\\\n\t\tmy ($self) = @_;\\n\\\n\t\t${3:# test code}\\n\\\n\t};\\n\\\n\\n\\\n#prep test method\\n\\\nsnippet tprep\\n\\\n\tsub prep${1:number}_${2:test_case} :Test(startup) {\\n\\\n\t\tmy $self = shift;\\n\\\n\t\t${4:#  body}\\n\\\n\t}\\n\\\n\\n\\\n# cause failures to print stack trace\\n\\\nsnippet debug_trace\\n\\\n\tuse Carp; # 'verbose';\\n\\\n\t# cloak \\\"die\\\"\\n\\\n\t# warn \\\"warning\\\"\\n\\\n\t$SIG{'__DIE__'} = sub {\\n\\\n\t\trequire Carp; Carp::confess\\n\\\n\t};\\n\\\n\\n\\\n\";\nexports.scope = \"perl\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/pgsql.js",
    "content": "ace.define(\"ace/snippets/pgsql\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"pgsql\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/php.js",
    "content": "ace.define(\"ace/snippets/php\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"snippet <?\\n\\\n\t<?php\\n\\\n\\n\\\n\t${1}\\n\\\nsnippet ec\\n\\\n\techo ${1};\\n\\\nsnippet <?e\\n\\\n\t<?php echo ${1} ?>\\n\\\n# this one is for php5.4\\n\\\nsnippet <?=\\n\\\n\t<?=${1}?>\\n\\\nsnippet ns\\n\\\n\tnamespace ${1:Foo\\\\Bar\\\\Baz};\\n\\\n\t${2}\\n\\\nsnippet use\\n\\\n\tuse ${1:Foo\\\\Bar\\\\Baz};\\n\\\n\t${2}\\n\\\nsnippet c\\n\\\n\t${1:abstract }class ${2:$FILENAME}\\n\\\n\t{\\n\\\n\t\t${3}\\n\\\n\t}\\n\\\nsnippet i\\n\\\n\tinterface ${1:$FILENAME}\\n\\\n\t{\\n\\\n\t\t${2}\\n\\\n\t}\\n\\\nsnippet t.\\n\\\n\t$this->${1}\\n\\\nsnippet f\\n\\\n\tfunction ${1:foo}(${2:array }${3:$bar})\\n\\\n\t{\\n\\\n\t\t${4}\\n\\\n\t}\\n\\\n# method\\n\\\nsnippet m\\n\\\n\t${1:abstract }${2:protected}${3: static} function ${4:foo}(${5:array }${6:$bar})\\n\\\n\t{\\n\\\n\t\t${7}\\n\\\n\t}\\n\\\n# setter method\\n\\\nsnippet sm \\n\\\n\t/**\\n\\\n\t * Sets the value of ${1:foo}\\n\\\n\t *\\n\\\n\t * @param ${2:$1} $$1 ${3:description}\\n\\\n\t *\\n\\\n\t * @return ${4:$FILENAME}\\n\\\n\t */\\n\\\n\t${5:public} function set${6:$2}(${7:$2 }$$1)\\n\\\n\t{\\n\\\n\t\t$this->${8:$1} = $$1;\\n\\\n\t\treturn $this;\\n\\\n\t}${9}\\n\\\n# getter method\\n\\\nsnippet gm\\n\\\n\t/**\\n\\\n\t * Gets the value of ${1:foo}\\n\\\n\t *\\n\\\n\t * @return ${2:$1}\\n\\\n\t */\\n\\\n\t${3:public} function get${4:$2}()\\n\\\n\t{\\n\\\n\t\treturn $this->${5:$1};\\n\\\n\t}${6}\\n\\\n#setter\\n\\\nsnippet $s\\n\\\n\t${1:$foo}->set${2:Bar}(${3});\\n\\\n#getter\\n\\\nsnippet $g\\n\\\n\t${1:$foo}->get${2:Bar}();\\n\\\n\\n\\\n# Tertiary conditional\\n\\\nsnippet =?:\\n\\\n\t$${1:foo} = ${2:true} ? ${3:a} : ${4};\\n\\\nsnippet ?:\\n\\\n\t${1:true} ? ${2:a} : ${3}\\n\\\n\\n\\\nsnippet C\\n\\\n\t$_COOKIE['${1:variable}']${2}\\n\\\nsnippet E\\n\\\n\t$_ENV['${1:variable}']${2}\\n\\\nsnippet F\\n\\\n\t$_FILES['${1:variable}']${2}\\n\\\nsnippet G\\n\\\n\t$_GET['${1:variable}']${2}\\n\\\nsnippet P\\n\\\n\t$_POST['${1:variable}']${2}\\n\\\nsnippet R\\n\\\n\t$_REQUEST['${1:variable}']${2}\\n\\\nsnippet S\\n\\\n\t$_SERVER['${1:variable}']${2}\\n\\\nsnippet SS\\n\\\n\t$_SESSION['${1:variable}']${2}\\n\\\n\t\\n\\\n# the following are old ones\\n\\\nsnippet inc\\n\\\n\tinclude '${1:file}';${2}\\n\\\nsnippet inc1\\n\\\n\tinclude_once '${1:file}';${2}\\n\\\nsnippet req\\n\\\n\trequire '${1:file}';${2}\\n\\\nsnippet req1\\n\\\n\trequire_once '${1:file}';${2}\\n\\\n# Start Docblock\\n\\\nsnippet /*\\n\\\n\t/**\\n\\\n\t * ${1}\\n\\\n\t */\\n\\\n# Class - post doc\\n\\\nsnippet doc_cp\\n\\\n\t/**\\n\\\n\t * ${1:undocumented class}\\n\\\n\t *\\n\\\n\t * @package ${2:default}\\n\\\n\t * @subpackage ${3:default}\\n\\\n\t * @author ${4:`g:snips_author`}\\n\\\n\t */${5}\\n\\\n# Class Variable - post doc\\n\\\nsnippet doc_vp\\n\\\n\t/**\\n\\\n\t * ${1:undocumented class variable}\\n\\\n\t *\\n\\\n\t * @var ${2:string}\\n\\\n\t */${3}\\n\\\n# Class Variable\\n\\\nsnippet doc_v\\n\\\n\t/**\\n\\\n\t * ${3:undocumented class variable}\\n\\\n\t *\\n\\\n\t * @var ${4:string}\\n\\\n\t */\\n\\\n\t${1:var} $${2};${5}\\n\\\n# Class\\n\\\nsnippet doc_c\\n\\\n\t/**\\n\\\n\t * ${3:undocumented class}\\n\\\n\t *\\n\\\n\t * @package ${4:default}\\n\\\n\t * @subpackage ${5:default}\\n\\\n\t * @author ${6:`g:snips_author`}\\n\\\n\t */\\n\\\n\t${1:}class ${2:}\\n\\\n\t{\\n\\\n\t\t${7}\\n\\\n\t} // END $1class $2\\n\\\n# Constant Definition - post doc\\n\\\nsnippet doc_dp\\n\\\n\t/**\\n\\\n\t * ${1:undocumented constant}\\n\\\n\t */${2}\\n\\\n# Constant Definition\\n\\\nsnippet doc_d\\n\\\n\t/**\\n\\\n\t * ${3:undocumented constant}\\n\\\n\t */\\n\\\n\tdefine(${1}, ${2});${4}\\n\\\n# Function - post doc\\n\\\nsnippet doc_fp\\n\\\n\t/**\\n\\\n\t * ${1:undocumented function}\\n\\\n\t *\\n\\\n\t * @return ${2:void}\\n\\\n\t * @author ${3:`g:snips_author`}\\n\\\n\t */${4}\\n\\\n# Function signature\\n\\\nsnippet doc_s\\n\\\n\t/**\\n\\\n\t * ${4:undocumented function}\\n\\\n\t *\\n\\\n\t * @return ${5:void}\\n\\\n\t * @author ${6:`g:snips_author`}\\n\\\n\t */\\n\\\n\t${1}function ${2}(${3});${7}\\n\\\n# Function\\n\\\nsnippet doc_f\\n\\\n\t/**\\n\\\n\t * ${4:undocumented function}\\n\\\n\t *\\n\\\n\t * @return ${5:void}\\n\\\n\t * @author ${6:`g:snips_author`}\\n\\\n\t */\\n\\\n\t${1}function ${2}(${3})\\n\\\n\t{${7}\\n\\\n\t}\\n\\\n# Header\\n\\\nsnippet doc_h\\n\\\n\t/**\\n\\\n\t * ${1}\\n\\\n\t *\\n\\\n\t * @author ${2:`g:snips_author`}\\n\\\n\t * @version ${3:$Id$}\\n\\\n\t * @copyright ${4:$2}, `strftime('%d %B, %Y')`\\n\\\n\t * @package ${5:default}\\n\\\n\t */\\n\\\n\t\\n\\\n# Interface\\n\\\nsnippet interface\\n\\\n\t/**\\n\\\n\t * ${2:undocumented class}\\n\\\n\t *\\n\\\n\t * @package ${3:default}\\n\\\n\t * @author ${4:`g:snips_author`}\\n\\\n\t */\\n\\\n\tinterface ${1:$FILENAME}\\n\\\n\t{\\n\\\n\t\t${5}\\n\\\n\t}\\n\\\n# class ...\\n\\\nsnippet class\\n\\\n\t/**\\n\\\n\t * ${1}\\n\\\n\t */\\n\\\n\tclass ${2:$FILENAME}\\n\\\n\t{\\n\\\n\t\t${3}\\n\\\n\t\t/**\\n\\\n\t\t * ${4}\\n\\\n\t\t */\\n\\\n\t\t${5:public} function ${6:__construct}(${7:argument})\\n\\\n\t\t{\\n\\\n\t\t\t${8:// code...}\\n\\\n\t\t}\\n\\\n\t}\\n\\\n# define(...)\\n\\\nsnippet def\\n\\\n\tdefine('${1}'${2});${3}\\n\\\n# defined(...)\\n\\\nsnippet def?\\n\\\n\t${1}defined('${2}')${3}\\n\\\nsnippet wh\\n\\\n\twhile (${1:/* condition */}) {\\n\\\n\t\t${2:// code...}\\n\\\n\t}\\n\\\n# do ... while\\n\\\nsnippet do\\n\\\n\tdo {\\n\\\n\t\t${2:// code... }\\n\\\n\t} while (${1:/* condition */});\\n\\\nsnippet if\\n\\\n\tif (${1:/* condition */}) {\\n\\\n\t\t${2:// code...}\\n\\\n\t}\\n\\\nsnippet ifil\\n\\\n\t<?php if (${1:/* condition */}): ?>\\n\\\n\t\t${2:<!-- code... -->}\\n\\\n\t<?php endif; ?>\\n\\\nsnippet ife\\n\\\n\tif (${1:/* condition */}) {\\n\\\n\t\t${2:// code...}\\n\\\n\t} else {\\n\\\n\t\t${3:// code...}\\n\\\n\t}\\n\\\n\t${4}\\n\\\nsnippet ifeil\\n\\\n\t<?php if (${1:/* condition */}): ?>\\n\\\n\t\t${2:<!-- html... -->}\\n\\\n\t<?php else: ?>\\n\\\n\t\t${3:<!-- html... -->}\\n\\\n\t<?php endif; ?>\\n\\\n\t${4}\\n\\\nsnippet else\\n\\\n\telse {\\n\\\n\t\t${1:// code...}\\n\\\n\t}\\n\\\nsnippet elseif\\n\\\n\telseif (${1:/* condition */}) {\\n\\\n\t\t${2:// code...}\\n\\\n\t}\\n\\\nsnippet switch\\n\\\n\tswitch ($${1:variable}) {\\n\\\n\t\tcase '${2:value}':\\n\\\n\t\t\t${3:// code...}\\n\\\n\t\t\tbreak;\\n\\\n\t\t${5}\\n\\\n\t\tdefault:\\n\\\n\t\t\t${4:// code...}\\n\\\n\t\t\tbreak;\\n\\\n\t}\\n\\\nsnippet case\\n\\\n\tcase '${1:value}':\\n\\\n\t\t${2:// code...}\\n\\\n\t\tbreak;${3}\\n\\\nsnippet for\\n\\\n\tfor ($${2:i} = 0; $$2 < ${1:count}; $$2${3:++}) {\\n\\\n\t\t${4: // code...}\\n\\\n\t}\\n\\\nsnippet foreach\\n\\\n\tforeach ($${1:variable} as $${2:value}) {\\n\\\n\t\t${3:// code...}\\n\\\n\t}\\n\\\nsnippet foreachil\\n\\\n\t<?php foreach ($${1:variable} as $${2:value}): ?>\\n\\\n\t\t${3:<!-- html... -->}\\n\\\n\t<?php endforeach; ?>\\n\\\nsnippet foreachk\\n\\\n\tforeach ($${1:variable} as $${2:key} => $${3:value}) {\\n\\\n\t\t${4:// code...}\\n\\\n\t}\\n\\\nsnippet foreachkil\\n\\\n\t<?php foreach ($${1:variable} as $${2:key} => $${3:value}): ?>\\n\\\n\t\t${4:<!-- html... -->}\\n\\\n\t<?php endforeach; ?>\\n\\\n# $... = array (...)\\n\\\nsnippet array\\n\\\n\t$${1:arrayName} = array('${2}' => ${3});${4}\\n\\\nsnippet try\\n\\\n\ttry {\\n\\\n\t\t${2}\\n\\\n\t} catch (${1:Exception} $e) {\\n\\\n\t}\\n\\\n# lambda with closure\\n\\\nsnippet lambda\\n\\\n\t${1:static }function (${2:args}) use (${3:&$x, $y /*put vars in scope (closure) */}) {\\n\\\n\t\t${4}\\n\\\n\t};\\n\\\n# pre_dump();\\n\\\nsnippet pd\\n\\\n\techo '<pre>'; var_dump(${1}); echo '</pre>';\\n\\\n# pre_dump(); die();\\n\\\nsnippet pdd\\n\\\n\techo '<pre>'; var_dump(${1}); echo '</pre>'; die(${2:});\\n\\\nsnippet vd\\n\\\n\tvar_dump(${1});\\n\\\nsnippet vdd\\n\\\n\tvar_dump(${1}); die(${2:});\\n\\\nsnippet http_redirect\\n\\\n\theader (\\\"HTTP/1.1 301 Moved Permanently\\\"); \\n\\\n\theader (\\\"Location: \\\".URL); \\n\\\n\texit();\\n\\\n# Getters & Setters\\n\\\nsnippet gs\\n\\\n\t/**\\n\\\n\t * Gets the value of ${1:foo}\\n\\\n\t *\\n\\\n\t * @return ${2:$1}\\n\\\n\t */\\n\\\n\tpublic function get${3:$2}()\\n\\\n\t{\\n\\\n\t\treturn $this->${4:$1};\\n\\\n\t}\\n\\\n\\n\\\n\t/**\\n\\\n\t * Sets the value of $1\\n\\\n\t *\\n\\\n\t * @param $2 $$1 ${5:description}\\n\\\n\t *\\n\\\n\t * @return ${6:$FILENAME}\\n\\\n\t */\\n\\\n\tpublic function set$3(${7:$2 }$$1)\\n\\\n\t{\\n\\\n\t\t$this->$4 = $$1;\\n\\\n\t\treturn $this;\\n\\\n\t}${8}\\n\\\n# anotation, get, and set, useful for doctrine\\n\\\nsnippet ags\\n\\\n\t/**\\n\\\n\t * ${1:description}\\n\\\n\t * \\n\\\n\t * @${7}\\n\\\n\t */\\n\\\n\t${2:protected} $${3:foo};\\n\\\n\\n\\\n\tpublic function get${4:$3}()\\n\\\n\t{\\n\\\n\t\treturn $this->$3;\\n\\\n\t}\\n\\\n\\n\\\n\tpublic function set$4(${5:$4 }$${6:$3})\\n\\\n\t{\\n\\\n\t\t$this->$3 = $$6;\\n\\\n\t\treturn $this;\\n\\\n\t}\\n\\\nsnippet rett\\n\\\n\treturn true;\\n\\\nsnippet retf\\n\\\n\treturn false;\\n\\\n\";\nexports.scope = \"php\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/plain_text.js",
    "content": "ace.define(\"ace/snippets/plain_text\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"plain_text\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/powershell.js",
    "content": "ace.define(\"ace/snippets/powershell\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"powershell\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/praat.js",
    "content": "ace.define(\"ace/snippets/praat\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"praat\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/prolog.js",
    "content": "ace.define(\"ace/snippets/prolog\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"prolog\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/properties.js",
    "content": "ace.define(\"ace/snippets/properties\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"properties\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/protobuf.js",
    "content": "ace.define(\"ace/snippets/protobuf\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"\";\nexports.scope = \"protobuf\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/python.js",
    "content": "ace.define(\"ace/snippets/python\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"snippet #!\\n\\\n\t#!/usr/bin/env python\\n\\\nsnippet imp\\n\\\n\timport ${1:module}\\n\\\nsnippet from\\n\\\n\tfrom ${1:package} import ${2:module}\\n\\\n# Module Docstring\\n\\\nsnippet docs\\n\\\n\t'''\\n\\\n\tFile: ${1:FILENAME:file_name}\\n\\\n\tAuthor: ${2:author}\\n\\\n\tDescription: ${3}\\n\\\n\t'''\\n\\\nsnippet wh\\n\\\n\twhile ${1:condition}:\\n\\\n\t\t${2:# TODO: write code...}\\n\\\n# dowh - does the same as do...while in other languages\\n\\\nsnippet dowh\\n\\\n\twhile True:\\n\\\n\t\t${1:# TODO: write code...}\\n\\\n\t\tif ${2:condition}:\\n\\\n\t\t\tbreak\\n\\\nsnippet with\\n\\\n\twith ${1:expr} as ${2:var}:\\n\\\n\t\t${3:# TODO: write code...}\\n\\\n# New Class\\n\\\nsnippet cl\\n\\\n\tclass ${1:ClassName}(${2:object}):\\n\\\n\t\t\\\"\\\"\\\"${3:docstring for $1}\\\"\\\"\\\"\\n\\\n\t\tdef __init__(self, ${4:arg}):\\n\\\n\t\t\t${5:super($1, self).__init__()}\\n\\\n\t\t\tself.$4 = $4\\n\\\n\t\t\t${6}\\n\\\n# New Function\\n\\\nsnippet def\\n\\\n\tdef ${1:fname}(${2:`indent('.') ? 'self' : ''`}):\\n\\\n\t\t\\\"\\\"\\\"${3:docstring for $1}\\\"\\\"\\\"\\n\\\n\t\t${4:# TODO: write code...}\\n\\\nsnippet deff\\n\\\n\tdef ${1:fname}(${2:`indent('.') ? 'self' : ''`}):\\n\\\n\t\t${3:# TODO: write code...}\\n\\\n# New Method\\n\\\nsnippet defs\\n\\\n\tdef ${1:mname}(self, ${2:arg}):\\n\\\n\t\t${3:# TODO: write code...}\\n\\\n# New Property\\n\\\nsnippet property\\n\\\n\tdef ${1:foo}():\\n\\\n\t\tdoc = \\\"${2:The $1 property.}\\\"\\n\\\n\t\tdef fget(self):\\n\\\n\t\t\t${3:return self._$1}\\n\\\n\t\tdef fset(self, value):\\n\\\n\t\t\t${4:self._$1 = value}\\n\\\n# Ifs\\n\\\nsnippet if\\n\\\n\tif ${1:condition}:\\n\\\n\t\t${2:# TODO: write code...}\\n\\\nsnippet el\\n\\\n\telse:\\n\\\n\t\t${1:# TODO: write code...}\\n\\\nsnippet ei\\n\\\n\telif ${1:condition}:\\n\\\n\t\t${2:# TODO: write code...}\\n\\\n# For\\n\\\nsnippet for\\n\\\n\tfor ${1:item} in ${2:items}:\\n\\\n\t\t${3:# TODO: write code...}\\n\\\n# Encodes\\n\\\nsnippet cutf8\\n\\\n\t# -*- coding: utf-8 -*-\\n\\\nsnippet clatin1\\n\\\n\t# -*- coding: latin-1 -*-\\n\\\nsnippet cascii\\n\\\n\t# -*- coding: ascii -*-\\n\\\n# Lambda\\n\\\nsnippet ld\\n\\\n\t${1:var} = lambda ${2:vars} : ${3:action}\\n\\\nsnippet .\\n\\\n\tself.\\n\\\nsnippet try Try/Except\\n\\\n\ttry:\\n\\\n\t\t${1:# TODO: write code...}\\n\\\n\texcept ${2:Exception}, ${3:e}:\\n\\\n\t\t${4:raise $3}\\n\\\nsnippet try Try/Except/Else\\n\\\n\ttry:\\n\\\n\t\t${1:# TODO: write code...}\\n\\\n\texcept ${2:Exception}, ${3:e}:\\n\\\n\t\t${4:raise $3}\\n\\\n\telse:\\n\\\n\t\t${5:# TODO: write code...}\\n\\\nsnippet try Try/Except/Finally\\n\\\n\ttry:\\n\\\n\t\t${1:# TODO: write code...}\\n\\\n\texcept ${2:Exception}, ${3:e}:\\n\\\n\t\t${4:raise $3}\\n\\\n\tfinally:\\n\\\n\t\t${5:# TODO: write code...}\\n\\\nsnippet try Try/Except/Else/Finally\\n\\\n\ttry:\\n\\\n\t\t${1:# TODO: write code...}\\n\\\n\texcept ${2:Exception}, ${3:e}:\\n\\\n\t\t${4:raise $3}\\n\\\n\telse:\\n\\\n\t\t${5:# TODO: write code...}\\n\\\n\tfinally:\\n\\\n\t\t${6:# TODO: write code...}\\n\\\n# if __name__ == '__main__':\\n\\\nsnippet ifmain\\n\\\n\tif __name__ == '__main__':\\n\\\n\t\t${1:main()}\\n\\\n# __magic__\\n\\\nsnippet _\\n\\\n\t__${1:init}__${2}\\n\\\n# python debugger (pdb)\\n\\\nsnippet pdb\\n\\\n\timport pdb; pdb.set_trace()\\n\\\n# ipython debugger (ipdb)\\n\\\nsnippet ipdb\\n\\\n\timport ipdb; ipdb.set_trace()\\n\\\n# ipython debugger (pdbbb)\\n\\\nsnippet pdbbb\\n\\\n\timport pdbpp; pdbpp.set_trace()\\n\\\nsnippet pprint\\n\\\n\timport pprint; pprint.pprint(${1})${2}\\n\\\nsnippet \\\"\\n\\\n\t\\\"\\\"\\\"\\n\\\n\t${1:doc}\\n\\\n\t\\\"\\\"\\\"\\n\\\n# test function/method\\n\\\nsnippet test\\n\\\n\tdef test_${1:description}(${2:self}):\\n\\\n\t\t${3:# TODO: write code...}\\n\\\n# test case\\n\\\nsnippet testcase\\n\\\n\tclass ${1:ExampleCase}(unittest.TestCase):\\n\\\n\t\t\\n\\\n\t\tdef test_${2:description}(self):\\n\\\n\t\t\t${3:# TODO: write code...}\\n\\\nsnippet fut\\n\\\n\tfrom __future__ import ${1}\\n\\\n#getopt\\n\\\nsnippet getopt\\n\\\n\ttry:\\n\\\n\t\t# Short option syntax: \\\"hv:\\\"\\n\\\n\t\t# Long option syntax: \\\"help\\\" or \\\"verbose=\\\"\\n\\\n\t\topts, args = getopt.getopt(sys.argv[1:], \\\"${1:short_options}\\\", [${2:long_options}])\\n\\\n\t\\n\\\n\texcept getopt.GetoptError, err:\\n\\\n\t\t# Print debug info\\n\\\n\t\tprint str(err)\\n\\\n\t\t${3:error_action}\\n\\\n\\n\\\n\tfor option, argument in opts:\\n\\\n\t\tif option in (\\\"-h\\\", \\\"--help\\\"):\\n\\\n\t\t\t${4}\\n\\\n\t\telif option in (\\\"-v\\\", \\\"--verbose\\\"):\\n\\\n\t\t\tverbose = argument\\n\\\n\";\nexports.scope = \"python\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/r.js",
    "content": "ace.define(\"ace/snippets/r\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"snippet #!\\n\\\n\t#!/usr/bin/env Rscript\\n\\\n\\n\\\n# includes\\n\\\nsnippet lib\\n\\\n\tlibrary(${1:package})\\n\\\nsnippet req\\n\\\n\trequire(${1:package})\\n\\\nsnippet source\\n\\\n\tsource('${1:file}')\\n\\\n\\n\\\n# conditionals\\n\\\nsnippet if\\n\\\n\tif (${1:condition}) {\\n\\\n\t\t${2:code}\\n\\\n\t}\\n\\\nsnippet el\\n\\\n\telse {\\n\\\n\t\t${1:code}\\n\\\n\t}\\n\\\nsnippet ei\\n\\\n\telse if (${1:condition}) {\\n\\\n\t\t${2:code}\\n\\\n\t}\\n\\\n\\n\\\n# functions\\n\\\nsnippet fun\\n\\\n\t${1:name} = function (${2:variables}) {\\n\\\n\t\t${3:code}\\n\\\n\t}\\n\\\nsnippet ret\\n\\\n\treturn(${1:code})\\n\\\n\\n\\\n# dataframes, lists, etc\\n\\\nsnippet df\\n\\\n\t${1:name}[${2:rows}, ${3:cols}]\\n\\\nsnippet c\\n\\\n\tc(${1:items})\\n\\\nsnippet li\\n\\\n\tlist(${1:items})\\n\\\nsnippet mat\\n\\\n\tmatrix(${1:data}, nrow=${2:rows}, ncol=${3:cols})\\n\\\n\\n\\\n# apply functions\\n\\\nsnippet apply\\n\\\n\tapply(${1:array}, ${2:margin}, ${3:function})\\n\\\nsnippet lapply\\n\\\n\tlapply(${1:list}, ${2:function})\\n\\\nsnippet sapply\\n\\\n\tsapply(${1:list}, ${2:function})\\n\\\nsnippet vapply\\n\\\n\tvapply(${1:list}, ${2:function}, ${3:type})\\n\\\nsnippet mapply\\n\\\n\tmapply(${1:function}, ${2:...})\\n\\\nsnippet tapply\\n\\\n\ttapply(${1:vector}, ${2:index}, ${3:function})\\n\\\nsnippet rapply\\n\\\n\trapply(${1:list}, ${2:function})\\n\\\n\\n\\\n# plyr functions\\n\\\nsnippet dd\\n\\\n\tddply(${1:frame}, ${2:variables}, ${3:function})\\n\\\nsnippet dl\\n\\\n\tdlply(${1:frame}, ${2:variables}, ${3:function})\\n\\\nsnippet da\\n\\\n\tdaply(${1:frame}, ${2:variables}, ${3:function})\\n\\\nsnippet d_\\n\\\n\td_ply(${1:frame}, ${2:variables}, ${3:function})\\n\\\n\\n\\\nsnippet ad\\n\\\n\tadply(${1:array}, ${2:margin}, ${3:function})\\n\\\nsnippet al\\n\\\n\talply(${1:array}, ${2:margin}, ${3:function})\\n\\\nsnippet aa\\n\\\n\taaply(${1:array}, ${2:margin}, ${3:function})\\n\\\nsnippet a_\\n\\\n\ta_ply(${1:array}, ${2:margin}, ${3:function})\\n\\\n\\n\\\nsnippet ld\\n\\\n\tldply(${1:list}, ${2:function})\\n\\\nsnippet ll\\n\\\n\tllply(${1:list}, ${2:function})\\n\\\nsnippet la\\n\\\n\tlaply(${1:list}, ${2:function})\\n\\\nsnippet l_\\n\\\n\tl_ply(${1:list}, ${2:function})\\n\\\n\\n\\\nsnippet md\\n\\\n\tmdply(${1:matrix}, ${2:function})\\n\\\nsnippet ml\\n\\\n\tmlply(${1:matrix}, ${2:function})\\n\\\nsnippet ma\\n\\\n\tmaply(${1:matrix}, ${2:function})\\n\\\nsnippet m_\\n\\\n\tm_ply(${1:matrix}, ${2:function})\\n\\\n\\n\\\n# plot functions\\n\\\nsnippet pl\\n\\\n\tplot(${1:x}, ${2:y})\\n\\\nsnippet ggp\\n\\\n\tggplot(${1:data}, aes(${2:aesthetics}))\\n\\\nsnippet img\\n\\\n\t${1:(jpeg,bmp,png,tiff)}(filename=\\\"${2:filename}\\\", width=${3}, height=${4}, unit=\\\"${5}\\\")\\n\\\n\t${6:plot}\\n\\\n\tdev.off()\\n\\\n\\n\\\n# statistical test functions\\n\\\nsnippet fis\\n\\\n\tfisher.test(${1:x}, ${2:y})\\n\\\nsnippet chi\\n\\\n\tchisq.test(${1:x}, ${2:y})\\n\\\nsnippet tt\\n\\\n\tt.test(${1:x}, ${2:y})\\n\\\nsnippet wil\\n\\\n\twilcox.test(${1:x}, ${2:y})\\n\\\nsnippet cor\\n\\\n\tcor.test(${1:x}, ${2:y})\\n\\\nsnippet fte\\n\\\n\tvar.test(${1:x}, ${2:y})\\n\\\nsnippet kvt \\n\\\n\tkv.test(${1:x}, ${2:y})\\n\\\n\";\nexports.scope = \"r\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/razor.js",
    "content": "ace.define(\"ace/snippets/razor\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"snippet if\\n\\\n(${1} == ${2}) {\\n\\\n\t${3}\\n\\\n}\";\nexports.scope = \"razor\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/rdoc.js",
    "content": "ace.define(\"ace/snippets/rdoc\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"rdoc\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/rhtml.js",
    "content": "ace.define(\"ace/snippets/rhtml\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"rhtml\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/rst.js",
    "content": "ace.define(\"ace/snippets/rst\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"# rst\\n\\\n\\n\\\nsnippet :\\n\\\n\t:${1:field name}: ${2:field body}\\n\\\nsnippet *\\n\\\n\t*${1:Emphasis}*\\n\\\nsnippet **\\n\\\n\t**${1:Strong emphasis}**\\n\\\nsnippet _\\n\\\n\t\\\\`${1:hyperlink-name}\\\\`_\\n\\\n\t.. _\\\\`$1\\\\`: ${2:link-block}\\n\\\nsnippet =\\n\\\n\t${1:Title}\\n\\\n\t=====${2:=}\\n\\\n\t${3}\\n\\\nsnippet -\\n\\\n\t${1:Title}\\n\\\n\t-----${2:-}\\n\\\n\t${3}\\n\\\nsnippet cont:\\n\\\n\t.. contents::\\n\\\n\t\\n\\\n\";\nexports.scope = \"rst\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/ruby.js",
    "content": "ace.define(\"ace/snippets/ruby\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"########################################\\n\\\n# Ruby snippets - for Rails, see below #\\n\\\n########################################\\n\\\n\\n\\\n# encoding for Ruby 1.9\\n\\\nsnippet enc\\n\\\n\t# encoding: utf-8\\n\\\n\\n\\\n# #!/usr/bin/env ruby\\n\\\nsnippet #!\\n\\\n\t#!/usr/bin/env ruby\\n\\\n\t# encoding: utf-8\\n\\\n\\n\\\n# New Block\\n\\\nsnippet =b\\n\\\n\t=begin rdoc\\n\\\n\t\t${1}\\n\\\n\t=end\\n\\\nsnippet y\\n\\\n\t:yields: ${1:arguments}\\n\\\nsnippet rb\\n\\\n\t#!/usr/bin/env ruby -wKU\\n\\\nsnippet beg\\n\\\n\tbegin\\n\\\n\t\t${3}\\n\\\n\trescue ${1:Exception} => ${2:e}\\n\\\n\tend\\n\\\n\\n\\\nsnippet req require\\n\\\n\trequire \\\"${1}\\\"${2}\\n\\\nsnippet #\\n\\\n\t# =>\\n\\\nsnippet end\\n\\\n\t__END__\\n\\\nsnippet case\\n\\\n\tcase ${1:object}\\n\\\n\twhen ${2:condition}\\n\\\n\t\t${3}\\n\\\n\tend\\n\\\nsnippet when\\n\\\n\twhen ${1:condition}\\n\\\n\t\t${2}\\n\\\nsnippet def\\n\\\n\tdef ${1:method_name}\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet deft\\n\\\n\tdef test_${1:case_name}\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet if\\n\\\n\tif ${1:condition}\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet ife\\n\\\n\tif ${1:condition}\\n\\\n\t\t${2}\\n\\\n\telse\\n\\\n\t\t${3}\\n\\\n\tend\\n\\\nsnippet elsif\\n\\\n\telsif ${1:condition}\\n\\\n\t\t${2}\\n\\\nsnippet unless\\n\\\n\tunless ${1:condition}\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet while\\n\\\n\twhile ${1:condition}\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet for\\n\\\n\tfor ${1:e} in ${2:c}\\n\\\n\t\t${3}\\n\\\n\tend\\n\\\nsnippet until\\n\\\n\tuntil ${1:condition}\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet cla class .. end\\n\\\n\tclass ${1:`substitute(Filename(), '\\\\(_\\\\|^\\\\)\\\\(.\\\\)', '\\\\u\\\\2', 'g')`}\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet cla class .. initialize .. end\\n\\\n\tclass ${1:`substitute(Filename(), '\\\\(_\\\\|^\\\\)\\\\(.\\\\)', '\\\\u\\\\2', 'g')`}\\n\\\n\t\tdef initialize(${2:args})\\n\\\n\t\t\t${3}\\n\\\n\t\tend\\n\\\n\tend\\n\\\nsnippet cla class .. < ParentClass .. initialize .. end\\n\\\n\tclass ${1:`substitute(Filename(), '\\\\(_\\\\|^\\\\)\\\\(.\\\\)', '\\\\u\\\\2', 'g')`} < ${2:ParentClass}\\n\\\n\t\tdef initialize(${3:args})\\n\\\n\t\t\t${4}\\n\\\n\t\tend\\n\\\n\tend\\n\\\nsnippet cla ClassName = Struct .. do .. end\\n\\\n\t${1:`substitute(Filename(), '\\\\(_\\\\|^\\\\)\\\\(.\\\\)', '\\\\u\\\\2', 'g')`} = Struct.new(:${2:attr_names}) do\\n\\\n\t\tdef ${3:method_name}\\n\\\n\t\t\t${4}\\n\\\n\t\tend\\n\\\n\tend\\n\\\nsnippet cla class BlankSlate .. initialize .. end\\n\\\n\tclass ${1:BlankSlate}\\n\\\n\t\tinstance_methods.each { |meth| undef_method(meth) unless meth =~ /\\\\A__/ }\\n\\\n\tend\\n\\\nsnippet cla class << self .. end\\n\\\n\tclass << ${1:self}\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\n# class .. < DelegateClass .. initialize .. end\\n\\\nsnippet cla-\\n\\\n\tclass ${1:`substitute(Filename(), '\\\\(_\\\\|^\\\\)\\\\(.\\\\)', '\\\\u\\\\2', 'g')`} < DelegateClass(${2:ParentClass})\\n\\\n\t\tdef initialize(${3:args})\\n\\\n\t\t\tsuper(${4:del_obj})\\n\\\n\\n\\\n\t\t\t${5}\\n\\\n\t\tend\\n\\\n\tend\\n\\\nsnippet mod module .. end\\n\\\n\tmodule ${1:`substitute(Filename(), '\\\\(_\\\\|^\\\\)\\\\(.\\\\)', '\\\\u\\\\2', 'g')`}\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet mod module .. module_function .. end\\n\\\n\tmodule ${1:`substitute(Filename(), '\\\\(_\\\\|^\\\\)\\\\(.\\\\)', '\\\\u\\\\2', 'g')`}\\n\\\n\t\tmodule_function\\n\\\n\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet mod module .. ClassMethods .. end\\n\\\n\tmodule ${1:`substitute(Filename(), '\\\\(_\\\\|^\\\\)\\\\(.\\\\)', '\\\\u\\\\2', 'g')`}\\n\\\n\t\tmodule ClassMethods\\n\\\n\t\t\t${2}\\n\\\n\t\tend\\n\\\n\\n\\\n\t\tmodule InstanceMethods\\n\\\n\\n\\\n\t\tend\\n\\\n\\n\\\n\t\tdef self.included(receiver)\\n\\\n\t\t\treceiver.extend         ClassMethods\\n\\\n\t\t\treceiver.send :include, InstanceMethods\\n\\\n\t\tend\\n\\\n\tend\\n\\\n# attr_reader\\n\\\nsnippet r\\n\\\n\tattr_reader :${1:attr_names}\\n\\\n# attr_writer\\n\\\nsnippet w\\n\\\n\tattr_writer :${1:attr_names}\\n\\\n# attr_accessor\\n\\\nsnippet rw\\n\\\n\tattr_accessor :${1:attr_names}\\n\\\nsnippet atp\\n\\\n\tattr_protected :${1:attr_names}\\n\\\nsnippet ata\\n\\\n\tattr_accessible :${1:attr_names}\\n\\\n# include Enumerable\\n\\\nsnippet Enum\\n\\\n\tinclude Enumerable\\n\\\n\\n\\\n\tdef each(&block)\\n\\\n\t\t${1}\\n\\\n\tend\\n\\\n# include Comparable\\n\\\nsnippet Comp\\n\\\n\tinclude Comparable\\n\\\n\\n\\\n\tdef <=>(other)\\n\\\n\t\t${1}\\n\\\n\tend\\n\\\n# extend Forwardable\\n\\\nsnippet Forw-\\n\\\n\textend Forwardable\\n\\\n# def self\\n\\\nsnippet defs\\n\\\n\tdef self.${1:class_method_name}\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\n# def method_missing\\n\\\nsnippet defmm\\n\\\n\tdef method_missing(meth, *args, &blk)\\n\\\n\t\t${1}\\n\\\n\tend\\n\\\nsnippet defd\\n\\\n\tdef_delegator :${1:@del_obj}, :${2:del_meth}, :${3:new_name}\\n\\\nsnippet defds\\n\\\n\tdef_delegators :${1:@del_obj}, :${2:del_methods}\\n\\\nsnippet am\\n\\\n\talias_method :${1:new_name}, :${2:old_name}\\n\\\nsnippet app\\n\\\n\tif __FILE__ == $PROGRAM_NAME\\n\\\n\t\t${1}\\n\\\n\tend\\n\\\n# usage_if()\\n\\\nsnippet usai\\n\\\n\tif ARGV.${1}\\n\\\n\t\tabort \\\"Usage: #{$PROGRAM_NAME} ${2:ARGS_GO_HERE}\\\"${3}\\n\\\n\tend\\n\\\n# usage_unless()\\n\\\nsnippet usau\\n\\\n\tunless ARGV.${1}\\n\\\n\t\tabort \\\"Usage: #{$PROGRAM_NAME} ${2:ARGS_GO_HERE}\\\"${3}\\n\\\n\tend\\n\\\nsnippet array\\n\\\n\tArray.new(${1:10}) { |${2:i}| ${3} }\\n\\\nsnippet hash\\n\\\n\tHash.new { |${1:hash}, ${2:key}| $1[$2] = ${3} }\\n\\\nsnippet file File.foreach() { |line| .. }\\n\\\n\tFile.foreach(${1:\\\"path/to/file\\\"}) { |${2:line}| ${3} }\\n\\\nsnippet file File.read()\\n\\\n\tFile.read(${1:\\\"path/to/file\\\"})${2}\\n\\\nsnippet Dir Dir.global() { |file| .. }\\n\\\n\tDir.glob(${1:\\\"dir/glob/*\\\"}) { |${2:file}| ${3} }\\n\\\nsnippet Dir Dir[\\\"..\\\"]\\n\\\n\tDir[${1:\\\"glob/**/*.rb\\\"}]${2}\\n\\\nsnippet dir\\n\\\n\tFilename.dirname(__FILE__)\\n\\\nsnippet deli\\n\\\n\tdelete_if { |${1:e}| ${2} }\\n\\\nsnippet fil\\n\\\n\tfill(${1:range}) { |${2:i}| ${3} }\\n\\\n# flatten_once()\\n\\\nsnippet flao\\n\\\n\tinject(Array.new) { |${1:arr}, ${2:a}| $1.push(*$2)}${3}\\n\\\nsnippet zip\\n\\\n\tzip(${1:enums}) { |${2:row}| ${3} }\\n\\\n# downto(0) { |n| .. }\\n\\\nsnippet dow\\n\\\n\tdownto(${1:0}) { |${2:n}| ${3} }\\n\\\nsnippet ste\\n\\\n\tstep(${1:2}) { |${2:n}| ${3} }\\n\\\nsnippet tim\\n\\\n\ttimes { |${1:n}| ${2} }\\n\\\nsnippet upt\\n\\\n\tupto(${1:1.0/0.0}) { |${2:n}| ${3} }\\n\\\nsnippet loo\\n\\\n\tloop { ${1} }\\n\\\nsnippet ea\\n\\\n\teach { |${1:e}| ${2} }\\n\\\nsnippet ead\\n\\\n\teach do |${1:e}|\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet eab\\n\\\n\teach_byte { |${1:byte}| ${2} }\\n\\\nsnippet eac- each_char { |chr| .. }\\n\\\n\teach_char { |${1:chr}| ${2} }\\n\\\nsnippet eac- each_cons(..) { |group| .. }\\n\\\n\teach_cons(${1:2}) { |${2:group}| ${3} }\\n\\\nsnippet eai\\n\\\n\teach_index { |${1:i}| ${2} }\\n\\\nsnippet eaid\\n\\\n\teach_index do |${1:i}|\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet eak\\n\\\n\teach_key { |${1:key}| ${2} }\\n\\\nsnippet eakd\\n\\\n\teach_key do |${1:key}|\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet eal\\n\\\n\teach_line { |${1:line}| ${2} }\\n\\\nsnippet eald\\n\\\n\teach_line do |${1:line}|\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet eap\\n\\\n\teach_pair { |${1:name}, ${2:val}| ${3} }\\n\\\nsnippet eapd\\n\\\n\teach_pair do |${1:name}, ${2:val}|\\n\\\n\t\t${3}\\n\\\n\tend\\n\\\nsnippet eas-\\n\\\n\teach_slice(${1:2}) { |${2:group}| ${3} }\\n\\\nsnippet easd-\\n\\\n\teach_slice(${1:2}) do |${2:group}|\\n\\\n\t\t${3}\\n\\\n\tend\\n\\\nsnippet eav\\n\\\n\teach_value { |${1:val}| ${2} }\\n\\\nsnippet eavd\\n\\\n\teach_value do |${1:val}|\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet eawi\\n\\\n\teach_with_index { |${1:e}, ${2:i}| ${3} }\\n\\\nsnippet eawid\\n\\\n\teach_with_index do |${1:e},${2:i}|\\n\\\n\t\t${3}\\n\\\n\tend\\n\\\nsnippet reve\\n\\\n\treverse_each { |${1:e}| ${2} }\\n\\\nsnippet reved\\n\\\n\treverse_each do |${1:e}|\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet inj\\n\\\n\tinject(${1:init}) { |${2:mem}, ${3:var}| ${4} }\\n\\\nsnippet injd\\n\\\n\tinject(${1:init}) do |${2:mem}, ${3:var}|\\n\\\n\t\t${4}\\n\\\n\tend\\n\\\nsnippet map\\n\\\n\tmap { |${1:e}| ${2} }\\n\\\nsnippet mapd\\n\\\n\tmap do |${1:e}|\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet mapwi-\\n\\\n\tenum_with_index.map { |${1:e}, ${2:i}| ${3} }\\n\\\nsnippet sor\\n\\\n\tsort { |a, b| ${1} }\\n\\\nsnippet sorb\\n\\\n\tsort_by { |${1:e}| ${2} }\\n\\\nsnippet ran\\n\\\n\tsort_by { rand }\\n\\\nsnippet all\\n\\\n\tall? { |${1:e}| ${2} }\\n\\\nsnippet any\\n\\\n\tany? { |${1:e}| ${2} }\\n\\\nsnippet cl\\n\\\n\tclassify { |${1:e}| ${2} }\\n\\\nsnippet col\\n\\\n\tcollect { |${1:e}| ${2} }\\n\\\nsnippet cold\\n\\\n\tcollect do |${1:e}|\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet det\\n\\\n\tdetect { |${1:e}| ${2} }\\n\\\nsnippet detd\\n\\\n\tdetect do |${1:e}|\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet fet\\n\\\n\tfetch(${1:name}) { |${2:key}| ${3} }\\n\\\nsnippet fin\\n\\\n\tfind { |${1:e}| ${2} }\\n\\\nsnippet find\\n\\\n\tfind do |${1:e}|\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet fina\\n\\\n\tfind_all { |${1:e}| ${2} }\\n\\\nsnippet finad\\n\\\n\tfind_all do |${1:e}|\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet gre\\n\\\n\tgrep(${1:/pattern/}) { |${2:match}| ${3} }\\n\\\nsnippet sub\\n\\\n\t${1:g}sub(${2:/pattern/}) { |${3:match}| ${4} }\\n\\\nsnippet sca\\n\\\n\tscan(${1:/pattern/}) { |${2:match}| ${3} }\\n\\\nsnippet scad\\n\\\n\tscan(${1:/pattern/}) do |${2:match}|\\n\\\n\t\t${3}\\n\\\n\tend\\n\\\nsnippet max\\n\\\n\tmax { |a, b| ${1} }\\n\\\nsnippet min\\n\\\n\tmin { |a, b| ${1} }\\n\\\nsnippet par\\n\\\n\tpartition { |${1:e}| ${2} }\\n\\\nsnippet pard\\n\\\n\tpartition do |${1:e}|\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet rej\\n\\\n\treject { |${1:e}| ${2} }\\n\\\nsnippet rejd\\n\\\n\treject do |${1:e}|\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet sel\\n\\\n\tselect { |${1:e}| ${2} }\\n\\\nsnippet seld\\n\\\n\tselect do |${1:e}|\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet lam\\n\\\n\tlambda { |${1:args}| ${2} }\\n\\\nsnippet doo\\n\\\n\tdo\\n\\\n\t\t${1}\\n\\\n\tend\\n\\\nsnippet dov\\n\\\n\tdo |${1:variable}|\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet :\\n\\\n\t:${1:key} => ${2:\\\"value\\\"}${3}\\n\\\nsnippet ope\\n\\\n\topen(${1:\\\"path/or/url/or/pipe\\\"}, \\\"${2:w}\\\") { |${3:io}| ${4} }\\n\\\n# path_from_here()\\n\\\nsnippet fpath\\n\\\n\tFile.join(File.dirname(__FILE__), *%2[${1:rel path here}])${2}\\n\\\n# unix_filter {}\\n\\\nsnippet unif\\n\\\n\tARGF.each_line${1} do |${2:line}|\\n\\\n\t\t${3}\\n\\\n\tend\\n\\\n# option_parse {}\\n\\\nsnippet optp\\n\\\n\trequire \\\"optparse\\\"\\n\\\n\\n\\\n\toptions = {${1:default => \\\"args\\\"}}\\n\\\n\\n\\\n\tARGV.options do |opts|\\n\\\n\t\topts.banner = \\\"Usage: #{File.basename($PROGRAM_NAME)}\\n\\\nsnippet opt\\n\\\n\topts.on( \\\"-${1:o}\\\", \\\"--${2:long-option-name}\\\", ${3:String},\\n\\\n\t         \\\"${4:Option description.}\\\") do |${5:opt}|\\n\\\n\t\t${6}\\n\\\n\tend\\n\\\nsnippet tc\\n\\\n\trequire \\\"test/unit\\\"\\n\\\n\\n\\\n\trequire \\\"${1:library_file_name}\\\"\\n\\\n\\n\\\n\tclass Test${2:$1} < Test::Unit::TestCase\\n\\\n\t\tdef test_${3:case_name}\\n\\\n\t\t\t${4}\\n\\\n\t\tend\\n\\\n\tend\\n\\\nsnippet ts\\n\\\n\trequire \\\"test/unit\\\"\\n\\\n\\n\\\n\trequire \\\"tc_${1:test_case_file}\\\"\\n\\\n\trequire \\\"tc_${2:test_case_file}\\\"${3}\\n\\\nsnippet as\\n\\\n\tassert ${1:test}, \\\"${2:Failure message.}\\\"${3}\\n\\\nsnippet ase\\n\\\n\tassert_equal ${1:expected}, ${2:actual}${3}\\n\\\nsnippet asne\\n\\\n\tassert_not_equal ${1:unexpected}, ${2:actual}${3}\\n\\\nsnippet asid\\n\\\n\tassert_in_delta ${1:expected_float}, ${2:actual_float}, ${3:2 ** -20}${4}\\n\\\nsnippet asio\\n\\\n\tassert_instance_of ${1:ExpectedClass}, ${2:actual_instance}${3}\\n\\\nsnippet asko\\n\\\n\tassert_kind_of ${1:ExpectedKind}, ${2:actual_instance}${3}\\n\\\nsnippet asn\\n\\\n\tassert_nil ${1:instance}${2}\\n\\\nsnippet asnn\\n\\\n\tassert_not_nil ${1:instance}${2}\\n\\\nsnippet asm\\n\\\n\tassert_match /${1:expected_pattern}/, ${2:actual_string}${3}\\n\\\nsnippet asnm\\n\\\n\tassert_no_match /${1:unexpected_pattern}/, ${2:actual_string}${3}\\n\\\nsnippet aso\\n\\\n\tassert_operator ${1:left}, :${2:operator}, ${3:right}${4}\\n\\\nsnippet asr\\n\\\n\tassert_raise ${1:Exception} { ${2} }\\n\\\nsnippet asrd\\n\\\n\tassert_raise ${1:Exception} do\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet asnr\\n\\\n\tassert_nothing_raised ${1:Exception} { ${2} }\\n\\\nsnippet asnrd\\n\\\n\tassert_nothing_raised ${1:Exception} do\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet asrt\\n\\\n\tassert_respond_to ${1:object}, :${2:method}${3}\\n\\\nsnippet ass assert_same(..)\\n\\\n\tassert_same ${1:expected}, ${2:actual}${3}\\n\\\nsnippet ass assert_send(..)\\n\\\n\tassert_send [${1:object}, :${2:message}, ${3:args}]${4}\\n\\\nsnippet asns\\n\\\n\tassert_not_same ${1:unexpected}, ${2:actual}${3}\\n\\\nsnippet ast\\n\\\n\tassert_throws :${1:expected} { ${2} }\\n\\\nsnippet astd\\n\\\n\tassert_throws :${1:expected} do\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet asnt\\n\\\n\tassert_nothing_thrown { ${1} }\\n\\\nsnippet asntd\\n\\\n\tassert_nothing_thrown do\\n\\\n\t\t${1}\\n\\\n\tend\\n\\\nsnippet fl\\n\\\n\tflunk \\\"${1:Failure message.}\\\"${2}\\n\\\n# Benchmark.bmbm do .. end\\n\\\nsnippet bm-\\n\\\n\tTESTS = ${1:10_000}\\n\\\n\tBenchmark.bmbm do |results|\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet rep\\n\\\n\tresults.report(\\\"${1:name}:\\\") { TESTS.times { ${2} }}\\n\\\n# Marshal.dump(.., file)\\n\\\nsnippet Md\\n\\\n\tFile.open(${1:\\\"path/to/file.dump\\\"}, \\\"wb\\\") { |${2:file}| Marshal.dump(${3:obj}, $2) }${4}\\n\\\n# Mashal.load(obj)\\n\\\nsnippet Ml\\n\\\n\tFile.open(${1:\\\"path/to/file.dump\\\"}, \\\"rb\\\") { |${2:file}| Marshal.load($2) }${3}\\n\\\n# deep_copy(..)\\n\\\nsnippet deec\\n\\\n\tMarshal.load(Marshal.dump(${1:obj_to_copy}))${2}\\n\\\nsnippet Pn-\\n\\\n\tPStore.new(${1:\\\"file_name.pstore\\\"})${2}\\n\\\nsnippet tra\\n\\\n\ttransaction(${1:true}) { ${2} }\\n\\\n# xmlread(..)\\n\\\nsnippet xml-\\n\\\n\tREXML::Document.new(File.read(${1:\\\"path/to/file\\\"}))${2}\\n\\\n# xpath(..) { .. }\\n\\\nsnippet xpa\\n\\\n\telements.each(${1:\\\"//Xpath\\\"}) do |${2:node}|\\n\\\n\t\t${3}\\n\\\n\tend\\n\\\n# class_from_name()\\n\\\nsnippet clafn\\n\\\n\tsplit(\\\"::\\\").inject(Object) { |par, const| par.const_get(const) }\\n\\\n# singleton_class()\\n\\\nsnippet sinc\\n\\\n\tclass << self; self end\\n\\\nsnippet nam\\n\\\n\tnamespace :${1:`Filename()`} do\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet tas\\n\\\n\tdesc \\\"${1:Task description}\\\"\\n\\\n\ttask :${2:task_name => [:dependent, :tasks]} do\\n\\\n\t\t${3}\\n\\\n\tend\\n\\\n# block\\n\\\nsnippet b\\n\\\n\t{ |${1:var}| ${2} }\\n\\\nsnippet begin\\n\\\n\tbegin\\n\\\n\t\traise 'A test exception.'\\n\\\n\trescue Exception => e\\n\\\n\t\tputs e.message\\n\\\n\t\tputs e.backtrace.inspect\\n\\\n\telse\\n\\\n\t\t# other exception\\n\\\n\tensure\\n\\\n\t\t# always executed\\n\\\n\tend\\n\\\n\\n\\\n#debugging\\n\\\nsnippet debug\\n\\\n\trequire 'ruby-debug'; debugger; true;\\n\\\nsnippet pry\\n\\\n\trequire 'pry'; binding.pry\\n\\\n\\n\\\n#############################################\\n\\\n# Rails snippets - for pure Ruby, see above #\\n\\\n#############################################\\n\\\nsnippet art\\n\\\n\tassert_redirected_to ${1::action => \\\"${2:index}\\\"}\\n\\\nsnippet artnp\\n\\\n\tassert_redirected_to ${1:parent}_${2:child}_path(${3:@$1}, ${4:@$2})\\n\\\nsnippet artnpp\\n\\\n\tassert_redirected_to ${1:parent}_${2:child}_path(${3:@$1})\\n\\\nsnippet artp\\n\\\n\tassert_redirected_to ${1:model}_path(${2:@$1})\\n\\\nsnippet artpp\\n\\\n\tassert_redirected_to ${1:model}s_path\\n\\\nsnippet asd\\n\\\n\tassert_difference \\\"${1:Model}.${2:count}\\\", $1 do\\n\\\n\t\t${3}\\n\\\n\tend\\n\\\nsnippet asnd\\n\\\n\tassert_no_difference \\\"${1:Model}.${2:count}\\\" do\\n\\\n\t\t${3}\\n\\\n\tend\\n\\\nsnippet asre\\n\\\n\tassert_response :${1:success}, @response.body${2}\\n\\\nsnippet asrj\\n\\\n\tassert_rjs :${1:replace}, \\\"${2:dom id}\\\"\\n\\\nsnippet ass assert_select(..)\\n\\\n\tassert_select '${1:path}', :${2:text} => '${3:inner_html' ${4:do}\\n\\\nsnippet bf\\n\\\n\tbefore_filter :${1:method}\\n\\\nsnippet bt\\n\\\n\tbelongs_to :${1:association}\\n\\\nsnippet crw\\n\\\n\tcattr_accessor :${1:attr_names}\\n\\\nsnippet defcreate\\n\\\n\tdef create\\n\\\n\t\t@${1:model_class_name} = ${2:ModelClassName}.new(params[:$1])\\n\\\n\\n\\\n\t\trespond_to do |wants|\\n\\\n\t\t\tif @$1.save\\n\\\n\t\t\t\tflash[:notice] = '$2 was successfully created.'\\n\\\n\t\t\t\twants.html { redirect_to(@$1) }\\n\\\n\t\t\t\twants.xml  { render :xml => @$1, :status => :created, :location => @$1 }\\n\\\n\t\t\telse\\n\\\n\t\t\t\twants.html { render :action => \\\"new\\\" }\\n\\\n\t\t\t\twants.xml  { render :xml => @$1.errors, :status => :unprocessable_entity }\\n\\\n\t\t\tend\\n\\\n\t\tend\\n\\\n\tend${3}\\n\\\nsnippet defdestroy\\n\\\n\tdef destroy\\n\\\n\t\t@${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\\n\\\n\t\t@$1.destroy\\n\\\n\\n\\\n\t\trespond_to do |wants|\\n\\\n\t\t\twants.html { redirect_to($1s_url) }\\n\\\n\t\t\twants.xml  { head :ok }\\n\\\n\t\tend\\n\\\n\tend${3}\\n\\\nsnippet defedit\\n\\\n\tdef edit\\n\\\n\t\t@${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\\n\\\n\tend\\n\\\nsnippet defindex\\n\\\n\tdef index\\n\\\n\t\t@${1:model_class_name} = ${2:ModelClassName}.all\\n\\\n\\n\\\n\t\trespond_to do |wants|\\n\\\n\t\t\twants.html # index.html.erb\\n\\\n\t\t\twants.xml  { render :xml => @$1s }\\n\\\n\t\tend\\n\\\n\tend${3}\\n\\\nsnippet defnew\\n\\\n\tdef new\\n\\\n\t\t@${1:model_class_name} = ${2:ModelClassName}.new\\n\\\n\\n\\\n\t\trespond_to do |wants|\\n\\\n\t\t\twants.html # new.html.erb\\n\\\n\t\t\twants.xml  { render :xml => @$1 }\\n\\\n\t\tend\\n\\\n\tend${3}\\n\\\nsnippet defshow\\n\\\n\tdef show\\n\\\n\t\t@${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\\n\\\n\\n\\\n\t\trespond_to do |wants|\\n\\\n\t\t\twants.html # show.html.erb\\n\\\n\t\t\twants.xml  { render :xml => @$1 }\\n\\\n\t\tend\\n\\\n\tend${3}\\n\\\nsnippet defupdate\\n\\\n\tdef update\\n\\\n\t\t@${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\\n\\\n\\n\\\n\t\trespond_to do |wants|\\n\\\n\t\t\tif @$1.update_attributes(params[:$1])\\n\\\n\t\t\t\tflash[:notice] = '$2 was successfully updated.'\\n\\\n\t\t\t\twants.html { redirect_to(@$1) }\\n\\\n\t\t\t\twants.xml  { head :ok }\\n\\\n\t\t\telse\\n\\\n\t\t\t\twants.html { render :action => \\\"edit\\\" }\\n\\\n\t\t\t\twants.xml  { render :xml => @$1.errors, :status => :unprocessable_entity }\\n\\\n\t\t\tend\\n\\\n\t\tend\\n\\\n\tend${3}\\n\\\nsnippet flash\\n\\\n\tflash[:${1:notice}] = \\\"${2}\\\"\\n\\\nsnippet habtm\\n\\\n\thas_and_belongs_to_many :${1:object}, :join_table => \\\"${2:table_name}\\\", :foreign_key => \\\"${3}_id\\\"${4}\\n\\\nsnippet hm\\n\\\n\thas_many :${1:object}\\n\\\nsnippet hmd\\n\\\n\thas_many :${1:other}s, :class_name => \\\"${2:$1}\\\", :foreign_key => \\\"${3:$1}_id\\\", :dependent => :destroy${4}\\n\\\nsnippet hmt\\n\\\n\thas_many :${1:object}, :through => :${2:object}\\n\\\nsnippet ho\\n\\\n\thas_one :${1:object}\\n\\\nsnippet i18\\n\\\n\tI18n.t('${1:type.key}')${2}\\n\\\nsnippet ist\\n\\\n\t<%= image_submit_tag(\\\"${1:agree.png}\\\", :id => \\\"${2:id}\\\"${3} %>\\n\\\nsnippet log\\n\\\n\tRails.logger.${1:debug} ${2}\\n\\\nsnippet log2\\n\\\n\tRAILS_DEFAULT_LOGGER.${1:debug} ${2}\\n\\\nsnippet logd\\n\\\n\tlogger.debug { \\\"${1:message}\\\" }${2}\\n\\\nsnippet loge\\n\\\n\tlogger.error { \\\"${1:message}\\\" }${2}\\n\\\nsnippet logf\\n\\\n\tlogger.fatal { \\\"${1:message}\\\" }${2}\\n\\\nsnippet logi\\n\\\n\tlogger.info { \\\"${1:message}\\\" }${2}\\n\\\nsnippet logw\\n\\\n\tlogger.warn { \\\"${1:message}\\\" }${2}\\n\\\nsnippet mapc\\n\\\n\t${1:map}.${2:connect} '${3:controller/:action/:id}'\\n\\\nsnippet mapca\\n\\\n\t${1:map}.catch_all \\\"*${2:anything}\\\", :controller => \\\"${3:default}\\\", :action => \\\"${4:error}\\\"${5}\\n\\\nsnippet mapr\\n\\\n\t${1:map}.resource :${2:resource}\\n\\\nsnippet maprs\\n\\\n\t${1:map}.resources :${2:resource}\\n\\\nsnippet mapwo\\n\\\n\t${1:map}.with_options :${2:controller} => '${3:thing}' do |$3|\\n\\\n\t\t${4}\\n\\\n\tend\\n\\\nsnippet mbs\\n\\\n\tbefore_save :${1:method}\\n\\\nsnippet mcht\\n\\\n\tchange_table :${1:table_name} do |t|\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet mp\\n\\\n\tmap(&:${1:id})\\n\\\nsnippet mrw\\n\\\n\tmattr_accessor :${1:attr_names}\\n\\\nsnippet oa\\n\\\n\torder(\\\"${1:field}\\\")\\n\\\nsnippet od\\n\\\n\torder(\\\"${1:field} DESC\\\")\\n\\\nsnippet pa\\n\\\n\tparams[:${1:id}]${2}\\n\\\nsnippet ra\\n\\\n\trender :action => \\\"${1:action}\\\"\\n\\\nsnippet ral\\n\\\n\trender :action => \\\"${1:action}\\\", :layout => \\\"${2:layoutname}\\\"\\n\\\nsnippet rest\\n\\\n\trespond_to do |wants|\\n\\\n\t\twants.${1:html} { ${2} }\\n\\\n\tend\\n\\\nsnippet rf\\n\\\n\trender :file => \\\"${1:filepath}\\\"\\n\\\nsnippet rfu\\n\\\n\trender :file => \\\"${1:filepath}\\\", :use_full_path => ${2:false}\\n\\\nsnippet ri\\n\\\n\trender :inline => \\\"${1:<%= 'hello' %>}\\\"\\n\\\nsnippet ril\\n\\\n\trender :inline => \\\"${1:<%= 'hello' %>}\\\", :locals => { ${2::name} => \\\"${3:value}\\\"${4} }\\n\\\nsnippet rit\\n\\\n\trender :inline => \\\"${1:<%= 'hello' %>}\\\", :type => ${2::rxml}\\n\\\nsnippet rjson\\n\\\n\trender :json => ${1:text to render}\\n\\\nsnippet rl\\n\\\n\trender :layout => \\\"${1:layoutname}\\\"\\n\\\nsnippet rn\\n\\\n\trender :nothing => ${1:true}\\n\\\nsnippet rns\\n\\\n\trender :nothing => ${1:true}, :status => ${2:401}\\n\\\nsnippet rp\\n\\\n\trender :partial => \\\"${1:item}\\\"\\n\\\nsnippet rpc\\n\\\n\trender :partial => \\\"${1:item}\\\", :collection => ${2:@$1s}\\n\\\nsnippet rpl\\n\\\n\trender :partial => \\\"${1:item}\\\", :locals => { :${2:$1} => ${3:@$1}\\n\\\nsnippet rpo\\n\\\n\trender :partial => \\\"${1:item}\\\", :object => ${2:@$1}\\n\\\nsnippet rps\\n\\\n\trender :partial => \\\"${1:item}\\\", :status => ${2:500}\\n\\\nsnippet rt\\n\\\n\trender :text => \\\"${1:text to render}\\\"\\n\\\nsnippet rtl\\n\\\n\trender :text => \\\"${1:text to render}\\\", :layout => \\\"${2:layoutname}\\\"\\n\\\nsnippet rtlt\\n\\\n\trender :text => \\\"${1:text to render}\\\", :layout => ${2:true}\\n\\\nsnippet rts\\n\\\n\trender :text => \\\"${1:text to render}\\\", :status => ${2:401}\\n\\\nsnippet ru\\n\\\n\trender :update do |${1:page}|\\n\\\n\t\t$1.${2}\\n\\\n\tend\\n\\\nsnippet rxml\\n\\\n\trender :xml => ${1:text to render}\\n\\\nsnippet sc\\n\\\n\tscope :${1:name}, :where(:@${2:field} => ${3:value})\\n\\\nsnippet sl\\n\\\n\tscope :${1:name}, lambda do |${2:value}|\\n\\\n\t\twhere(\\\"${3:field = ?}\\\", ${4:bind var})\\n\\\n\tend\\n\\\nsnippet sha1\\n\\\n\tDigest::SHA1.hexdigest(${1:string})\\n\\\nsnippet sweeper\\n\\\n\tclass ${1:ModelClassName}Sweeper < ActionController::Caching::Sweeper\\n\\\n\t\tobserve $1\\n\\\n\\n\\\n\t\tdef after_save(${2:model_class_name})\\n\\\n\t\t\texpire_cache($2)\\n\\\n\t\tend\\n\\\n\\n\\\n\t\tdef after_destroy($2)\\n\\\n\t\t\texpire_cache($2)\\n\\\n\t\tend\\n\\\n\\n\\\n\t\tdef expire_cache($2)\\n\\\n\t\t\texpire_page\\n\\\n\t\tend\\n\\\n\tend\\n\\\nsnippet tcb\\n\\\n\tt.boolean :${1:title}\\n\\\n\t${2}\\n\\\nsnippet tcbi\\n\\\n\tt.binary :${1:title}, :limit => ${2:2}.megabytes\\n\\\n\t${3}\\n\\\nsnippet tcd\\n\\\n\tt.decimal :${1:title}, :precision => ${2:10}, :scale => ${3:2}\\n\\\n\t${4}\\n\\\nsnippet tcda\\n\\\n\tt.date :${1:title}\\n\\\n\t${2}\\n\\\nsnippet tcdt\\n\\\n\tt.datetime :${1:title}\\n\\\n\t${2}\\n\\\nsnippet tcf\\n\\\n\tt.float :${1:title}\\n\\\n\t${2}\\n\\\nsnippet tch\\n\\\n\tt.change :${1:name}, :${2:string}, :${3:limit} => ${4:80}\\n\\\n\t${5}\\n\\\nsnippet tci\\n\\\n\tt.integer :${1:title}\\n\\\n\t${2}\\n\\\nsnippet tcl\\n\\\n\tt.integer :lock_version, :null => false, :default => 0\\n\\\n\t${1}\\n\\\nsnippet tcr\\n\\\n\tt.references :${1:taggable}, :polymorphic => { :default => '${2:Photo}' }\\n\\\n\t${3}\\n\\\nsnippet tcs\\n\\\n\tt.string :${1:title}\\n\\\n\t${2}\\n\\\nsnippet tct\\n\\\n\tt.text :${1:title}\\n\\\n\t${2}\\n\\\nsnippet tcti\\n\\\n\tt.time :${1:title}\\n\\\n\t${2}\\n\\\nsnippet tcts\\n\\\n\tt.timestamp :${1:title}\\n\\\n\t${2}\\n\\\nsnippet tctss\\n\\\n\tt.timestamps\\n\\\n\t${1}\\n\\\nsnippet va\\n\\\n\tvalidates_associated :${1:attribute}\\n\\\nsnippet vao\\n\\\n\tvalidates_acceptance_of :${1:terms}\\n\\\nsnippet vc\\n\\\n\tvalidates_confirmation_of :${1:attribute}\\n\\\nsnippet ve\\n\\\n\tvalidates_exclusion_of :${1:attribute}, :in => ${2:%w( mov avi )}\\n\\\nsnippet vf\\n\\\n\tvalidates_format_of :${1:attribute}, :with => /${2:regex}/\\n\\\nsnippet vi\\n\\\n\tvalidates_inclusion_of :${1:attribute}, :in => %w(${2: mov avi })\\n\\\nsnippet vl\\n\\\n\tvalidates_length_of :${1:attribute}, :within => ${2:3}..${3:20}\\n\\\nsnippet vn\\n\\\n\tvalidates_numericality_of :${1:attribute}\\n\\\nsnippet vpo\\n\\\n\tvalidates_presence_of :${1:attribute}\\n\\\nsnippet vu\\n\\\n\tvalidates_uniqueness_of :${1:attribute}\\n\\\nsnippet wants\\n\\\n\twants.${1:js|xml|html} { ${2} }\\n\\\nsnippet wc\\n\\\n\twhere(${1:\\\"conditions\\\"}${2:, bind_var})\\n\\\nsnippet wh\\n\\\n\twhere(${1:field} => ${2:value})\\n\\\nsnippet xdelete\\n\\\n\txhr :delete, :${1:destroy}, :id => ${2:1}${3}\\n\\\nsnippet xget\\n\\\n\txhr :get, :${1:show}, :id => ${2:1}${3}\\n\\\nsnippet xpost\\n\\\n\txhr :post, :${1:create}, :${2:object} => { ${3} }\\n\\\nsnippet xput\\n\\\n\txhr :put, :${1:update}, :id => ${2:1}, :${3:object} => { ${4} }${5}\\n\\\nsnippet test\\n\\\n\ttest \\\"should ${1:do something}\\\" do\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\n#migrations\\n\\\nsnippet mac\\n\\\n\tadd_column :${1:table_name}, :${2:column_name}, :${3:data_type}\\n\\\nsnippet mrc\\n\\\n\tremove_column :${1:table_name}, :${2:column_name}\\n\\\nsnippet mrnc\\n\\\n\trename_column :${1:table_name}, :${2:old_column_name}, :${3:new_column_name}\\n\\\nsnippet mcc\\n\\\n\tchange_column :${1:table}, :${2:column}, :${3:type}\\n\\\nsnippet mccc\\n\\\n\tt.column :${1:title}, :${2:string}\\n\\\nsnippet mct\\n\\\n\tcreate_table :${1:table_name} do |t|\\n\\\n\t\tt.column :${2:name}, :${3:type}\\n\\\n\tend\\n\\\nsnippet migration\\n\\\n\tclass ${1:class_name} < ActiveRecord::Migration\\n\\\n\t\tdef self.up\\n\\\n\t\t\t${2}\\n\\\n\t\tend\\n\\\n\\n\\\n\t\tdef self.down\\n\\\n\t\tend\\n\\\n\tend\\n\\\n\\n\\\nsnippet trc\\n\\\n\tt.remove :${1:column}\\n\\\nsnippet tre\\n\\\n\tt.rename :${1:old_column_name}, :${2:new_column_name}\\n\\\n\t${3}\\n\\\nsnippet tref\\n\\\n\tt.references :${1:model}\\n\\\n\\n\\\n#rspec\\n\\\nsnippet it\\n\\\n\tit \\\"${1:spec_name}\\\" do\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet itp\\n\\\n\tit \\\"${1:spec_name}\\\"\\n\\\n\t${2}\\n\\\nsnippet desc\\n\\\n\tdescribe ${1:class_name} do\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet cont\\n\\\n\tcontext \\\"${1:message}\\\" do\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet bef\\n\\\n\tbefore :${1:each} do\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\nsnippet aft\\n\\\n\tafter :${1:each} do\\n\\\n\t\t${2}\\n\\\n\tend\\n\\\n\";\nexports.scope = \"ruby\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/rust.js",
    "content": "ace.define(\"ace/snippets/rust\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"rust\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/sass.js",
    "content": "ace.define(\"ace/snippets/sass\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"sass\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/scad.js",
    "content": "ace.define(\"ace/snippets/scad\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"scad\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/scala.js",
    "content": "ace.define(\"ace/snippets/scala\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"scala\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/scheme.js",
    "content": "ace.define(\"ace/snippets/scheme\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"scheme\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/scss.js",
    "content": "ace.define(\"ace/snippets/scss\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"scss\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/sh.js",
    "content": "ace.define(\"ace/snippets/sh\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"# Shebang. Executing bash via /usr/bin/env makes scripts more portable.\\n\\\nsnippet #!\\n\\\n\t#!/usr/bin/env bash\\n\\\n\t\\n\\\nsnippet if\\n\\\n\tif [[ ${1:condition} ]]; then\\n\\\n\t\t${2:#statements}\\n\\\n\tfi\\n\\\nsnippet elif\\n\\\n\telif [[ ${1:condition} ]]; then\\n\\\n\t\t${2:#statements}\\n\\\nsnippet for\\n\\\n\tfor (( ${2:i} = 0; $2 < ${1:count}; $2++ )); do\\n\\\n\t\t${3:#statements}\\n\\\n\tdone\\n\\\nsnippet fori\\n\\\n\tfor ${1:needle} in ${2:haystack} ; do\\n\\\n\t\t${3:#statements}\\n\\\n\tdone\\n\\\nsnippet wh\\n\\\n\twhile [[ ${1:condition} ]]; do\\n\\\n\t\t${2:#statements}\\n\\\n\tdone\\n\\\nsnippet until\\n\\\n\tuntil [[ ${1:condition} ]]; do\\n\\\n\t\t${2:#statements}\\n\\\n\tdone\\n\\\nsnippet case\\n\\\n\tcase ${1:word} in\\n\\\n\t\t${2:pattern})\\n\\\n\t\t\t${3};;\\n\\\n\tesac\\n\\\nsnippet go \\n\\\n\twhile getopts '${1:o}' ${2:opts} \\n\\\n\tdo \\n\\\n\t\tcase $$2 in\\n\\\n\t\t${3:o0})\\n\\\n\t\t\t${4:#staments};;\\n\\\n\t\tesac\\n\\\n\tdone\\n\\\n# Set SCRIPT_DIR variable to directory script is located.\\n\\\nsnippet sdir\\n\\\n\tSCRIPT_DIR=\\\"$( cd \\\"$( dirname \\\"${BASH_SOURCE[0]}\\\" )\\\" && pwd )\\\"\\n\\\n# getopt\\n\\\nsnippet getopt\\n\\\n\t__ScriptVersion=\\\"${1:version}\\\"\\n\\\n\\n\\\n\t#===  FUNCTION  ================================================================\\n\\\n\t#         NAME:  usage\\n\\\n\t#  DESCRIPTION:  Display usage information.\\n\\\n\t#===============================================================================\\n\\\n\tfunction usage ()\\n\\\n\t{\\n\\\n\t\t\tcat <<- EOT\\n\\\n\\n\\\n\t  Usage :  $${0:0} [options] [--] \\n\\\n\\n\\\n\t  Options: \\n\\\n\t  -h|help       Display this message\\n\\\n\t  -v|version    Display script version\\n\\\n\\n\\\n\t\t\tEOT\\n\\\n\t}    # ----------  end of function usage  ----------\\n\\\n\\n\\\n\t#-----------------------------------------------------------------------\\n\\\n\t#  Handle command line arguments\\n\\\n\t#-----------------------------------------------------------------------\\n\\\n\\n\\\n\twhile getopts \\\":hv\\\" opt\\n\\\n\tdo\\n\\\n\t  case $opt in\\n\\\n\\n\\\n\t\th|help     )  usage; exit 0   ;;\\n\\\n\\n\\\n\t\tv|version  )  echo \\\"$${0:0} -- Version $__ScriptVersion\\\"; exit 0   ;;\\n\\\n\\n\\\n\t\t\\\\? )  echo -e \\\"\\\\n  Option does not exist : $OPTARG\\\\n\\\"\\n\\\n\t\t\t  usage; exit 1   ;;\\n\\\n\\n\\\n\t  esac    # --- end of case ---\\n\\\n\tdone\\n\\\n\tshift $(($OPTIND-1))\\n\\\n\\n\\\n\";\nexports.scope = \"sh\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/sjs.js",
    "content": "ace.define(\"ace/snippets/sjs\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"sjs\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/smarty.js",
    "content": "ace.define(\"ace/snippets/smarty\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"smarty\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/snippets.js",
    "content": "ace.define(\"ace/snippets/snippets\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"# snippets for making snippets :)\\n\\\nsnippet snip\\n\\\n\tsnippet ${1:trigger}\\n\\\n\t\t${2}\\n\\\nsnippet msnip\\n\\\n\tsnippet ${1:trigger} ${2:description}\\n\\\n\t\t${3}\\n\\\nsnippet v\\n\\\n\t{VISUAL}\\n\\\n\";\nexports.scope = \"snippets\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/soy_template.js",
    "content": "ace.define(\"ace/snippets/soy_template\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"soy_template\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/space.js",
    "content": "ace.define(\"ace/snippets/space\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"space\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/sql.js",
    "content": "ace.define(\"ace/snippets/sql\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"snippet tbl\\n\\\n\tcreate table ${1:table} (\\n\\\n\t\t${2:columns}\\n\\\n\t);\\n\\\nsnippet col\\n\\\n\t${1:name}\t${2:type}\t${3:default ''}\t${4:not null}\\n\\\nsnippet ccol\\n\\\n\t${1:name}\tvarchar2(${2:size})\t${3:default ''}\t${4:not null}\\n\\\nsnippet ncol\\n\\\n\t${1:name}\tnumber\t${3:default 0}\t${4:not null}\\n\\\nsnippet dcol\\n\\\n\t${1:name}\tdate\t${3:default sysdate}\t${4:not null}\\n\\\nsnippet ind\\n\\\n\tcreate index ${3:$1_$2} on ${1:table}(${2:column});\\n\\\nsnippet uind\\n\\\n\tcreate unique index ${1:name} on ${2:table}(${3:column});\\n\\\nsnippet tblcom\\n\\\n\tcomment on table ${1:table} is '${2:comment}';\\n\\\nsnippet colcom\\n\\\n\tcomment on column ${1:table}.${2:column} is '${3:comment}';\\n\\\nsnippet addcol\\n\\\n\talter table ${1:table} add (${2:column} ${3:type});\\n\\\nsnippet seq\\n\\\n\tcreate sequence ${1:name} start with ${2:1} increment by ${3:1} minvalue ${4:1};\\n\\\nsnippet s*\\n\\\n\tselect * from ${1:table}\\n\\\n\";\nexports.scope = \"sql\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/sqlserver.js",
    "content": "ace.define(\"ace/snippets/sqlserver\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"# ISNULL\\n\\\nsnippet isnull\\n\\\n\tISNULL(${1:check_expression}, ${2:replacement_value})\\n\\\n# FORMAT\\n\\\nsnippet format\\n\\\n\tFORMAT(${1:value}, ${2:format})\\n\\\n# CAST\\n\\\nsnippet cast\\n\\\n\tCAST(${1:expression} AS ${2:data_type})\\n\\\n# CONVERT\\n\\\nsnippet convert\\n\\\n\tCONVERT(${1:data_type}, ${2:expression})\\n\\\n# DATEPART\\n\\\nsnippet datepart\\n\\\n\tDATEPART(${1:datepart}, ${2:date})\\n\\\n# DATEDIFF\\n\\\nsnippet datediff\\n\\\n\tDATEDIFF(${1:datepart}, ${2:startdate}, ${3:enddate})\\n\\\n# DATEADD\\n\\\nsnippet dateadd\\n\\\n\tDATEADD(${1:datepart}, ${2:number}, ${3:date})\\n\\\n# DATEFROMPARTS \\n\\\nsnippet datefromparts\\n\\\n\tDATEFROMPARTS(${1:year}, ${2:month}, ${3:day})\\n\\\n# OBJECT_DEFINITION\\n\\\nsnippet objectdef\\n\\\n\tSELECT OBJECT_DEFINITION(OBJECT_ID('${1:sys.server_permissions /*object name*/}'))\\n\\\n# STUFF XML\\n\\\nsnippet stuffxml\\n\\\n\tSTUFF((SELECT ', ' + ${1:ColumnName}\\n\\\n\t\tFROM ${2:TableName}\\n\\\n\t\tWHERE ${3:WhereClause}\\n\\\n\t\tFOR XML PATH('')), 1, 1, '') AS ${4:Alias}\\n\\\n\t${5:/*https://msdn.microsoft.com/en-us/library/ms188043.aspx*/}\\n\\\n# Create Procedure\\n\\\nsnippet createproc\\n\\\n\t-- =============================================\\n\\\n\t-- Author:\t\t${1:Author}\\n\\\n\t-- Create date: ${2:Date}\\n\\\n\t-- Description:\t${3:Description}\\n\\\n\t-- =============================================\\n\\\n\tCREATE PROCEDURE ${4:Procedure_Name}\\n\\\n\t\t${5:/*Add the parameters for the stored procedure here*/}\\n\\\n\tAS\\n\\\n\tBEGIN\\n\\\n\t\t-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.\\n\\\n\t\tSET NOCOUNT ON;\\n\\\n\t\t\\n\\\n\t\t${6:/*Add the T-SQL statements to compute the return value here*/}\\n\\\n\t\t\\n\\\n\tEND\\n\\\n\tGO\\n\\\n# Create Scalar Function\\n\\\nsnippet createfn\\n\\\n\t-- =============================================\\n\\\n\t-- Author:\t\t${1:Author}\\n\\\n\t-- Create date: ${2:Date}\\n\\\n\t-- Description:\t${3:Description}\\n\\\n\t-- =============================================\\n\\\n\tCREATE FUNCTION ${4:Scalar_Function_Name}\\n\\\n\t\t-- Add the parameters for the function here\\n\\\n\tRETURNS ${5:Function_Data_Type}\\n\\\n\tAS\\n\\\n\tBEGIN\\n\\\n\t\tDECLARE @Result ${5:Function_Data_Type}\\n\\\n\t\t\\n\\\n\t\t${6:/*Add the T-SQL statements to compute the return value here*/}\\n\\\n\t\t\\n\\\n\tEND\\n\\\n\tGO\";\nexports.scope = \"sqlserver\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/stylus.js",
    "content": "ace.define(\"ace/snippets/stylus\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"stylus\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/svg.js",
    "content": "ace.define(\"ace/snippets/svg\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"svg\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/swift.js",
    "content": "ace.define(\"ace/snippets/swift\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"swift\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/swig.js",
    "content": "ace.define(\"ace/snippets/swig\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"swig\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/tcl.js",
    "content": "ace.define(\"ace/snippets/tcl\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"# #!/usr/bin/env tclsh\\n\\\nsnippet #!\\n\\\n\t#!/usr/bin/env tclsh\\n\\\n\t\\n\\\n# Process\\n\\\nsnippet pro\\n\\\n\tproc ${1:function_name} {${2:args}} {\\n\\\n\t\t${3:#body ...}\\n\\\n\t}\\n\\\n#xif\\n\\\nsnippet xif\\n\\\n\t${1:expr}? ${2:true} : ${3:false}\\n\\\n# Conditional\\n\\\nsnippet if\\n\\\n\tif {${1}} {\\n\\\n\t\t${2:# body...}\\n\\\n\t}\\n\\\n# Conditional if..else\\n\\\nsnippet ife\\n\\\n\tif {${1}} {\\n\\\n\t\t${2:# body...}\\n\\\n\t} else {\\n\\\n\t\t${3:# else...}\\n\\\n\t}\\n\\\n# Conditional if..elsif..else\\n\\\nsnippet ifee\\n\\\n\tif {${1}} {\\n\\\n\t\t${2:# body...}\\n\\\n\t} elseif {${3}} {\\n\\\n\t\t${4:# elsif...}\\n\\\n\t} else {\\n\\\n\t\t${5:# else...}\\n\\\n\t}\\n\\\n# If catch then\\n\\\nsnippet ifc\\n\\\n\tif { [catch {${1:#do something...}} ${2:err}] } {\\n\\\n\t\t${3:# handle failure...}\\n\\\n\t}\\n\\\n# Catch\\n\\\nsnippet catch\\n\\\n\tcatch {${1}} ${2:err} ${3:options}\\n\\\n# While Loop\\n\\\nsnippet wh\\n\\\n\twhile {${1}} {\\n\\\n\t\t${2:# body...}\\n\\\n\t}\\n\\\n# For Loop\\n\\\nsnippet for\\n\\\n\tfor {set ${2:var} 0} {$$2 < ${1:count}} {${3:incr} $2} {\\n\\\n\t\t${4:# body...}\\n\\\n\t}\\n\\\n# Foreach Loop\\n\\\nsnippet fore\\n\\\n\tforeach ${1:x} {${2:#list}} {\\n\\\n\t\t${3:# body...}\\n\\\n\t}\\n\\\n# after ms script...\\n\\\nsnippet af\\n\\\n\tafter ${1:ms} ${2:#do something}\\n\\\n# after cancel id\\n\\\nsnippet afc\\n\\\n\tafter cancel ${1:id or script}\\n\\\n# after idle\\n\\\nsnippet afi\\n\\\n\tafter idle ${1:script}\\n\\\n# after info id\\n\\\nsnippet afin\\n\\\n\tafter info ${1:id}\\n\\\n# Expr\\n\\\nsnippet exp\\n\\\n\texpr {${1:#expression here}}\\n\\\n# Switch\\n\\\nsnippet sw\\n\\\n\tswitch ${1:var} {\\n\\\n\t\t${3:pattern 1} {\\n\\\n\t\t\t${4:#do something}\\n\\\n\t\t}\\n\\\n\t\tdefault {\\n\\\n\t\t\t${2:#do something}\\n\\\n\t\t}\\n\\\n\t}\\n\\\n# Case\\n\\\nsnippet ca\\n\\\n\t${1:pattern} {\\n\\\n\t\t${2:#do something}\\n\\\n\t}${3}\\n\\\n# Namespace eval\\n\\\nsnippet ns\\n\\\n\tnamespace eval ${1:path} {${2:#script...}}\\n\\\n# Namespace current\\n\\\nsnippet nsc\\n\\\n\tnamespace current\\n\\\n\";\nexports.scope = \"tcl\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/tex.js",
    "content": "ace.define(\"ace/snippets/tex\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"#PREAMBLE\\n\\\n#newcommand\\n\\\nsnippet nc\\n\\\n\t\\\\newcommand{\\\\${1:cmd}}[${2:opt}]{${3:realcmd}}${4}\\n\\\n#usepackage\\n\\\nsnippet up\\n\\\n\t\\\\usepackage[${1:[options}]{${2:package}}\\n\\\n#newunicodechar\\n\\\nsnippet nuc\\n\\\n\t\\\\newunicodechar{${1}}{${2:\\\\ensuremath}${3:tex-substitute}}}\\n\\\n#DeclareMathOperator\\n\\\nsnippet dmo\\n\\\n\t\\\\DeclareMathOperator{${1}}{${2}}\\n\\\n\\n\\\n#DOCUMENT\\n\\\n# \\\\begin{}...\\\\end{}\\n\\\nsnippet begin\\n\\\n\t\\\\begin{${1:env}}\\n\\\n\t\t${2}\\n\\\n\t\\\\end{$1}\\n\\\n# Tabular\\n\\\nsnippet tab\\n\\\n\t\\\\begin{${1:tabular}}{${2:c}}\\n\\\n\t${3}\\n\\\n\t\\\\end{$1}\\n\\\nsnippet thm\\n\\\n\t\\\\begin[${1:author}]{${2:thm}}\\n\\\n\t${3}\\n\\\n\t\\\\end{$1}\\n\\\nsnippet center\\n\\\n\t\\\\begin{center}\\n\\\n\t\t${1}\\n\\\n\t\\\\end{center}\\n\\\n# Align(ed)\\n\\\nsnippet ali\\n\\\n\t\\\\begin{align${1:ed}}\\n\\\n\t\t${2}\\n\\\n\t\\\\end{align$1}\\n\\\n# Gather(ed)\\n\\\nsnippet gat\\n\\\n\t\\\\begin{gather${1:ed}}\\n\\\n\t\t${2}\\n\\\n\t\\\\end{gather$1}\\n\\\n# Equation\\n\\\nsnippet eq\\n\\\n\t\\\\begin{equation}\\n\\\n\t\t${1}\\n\\\n\t\\\\end{equation}\\n\\\n# Equation\\n\\\nsnippet eq*\\n\\\n\t\\\\begin{equation*}\\n\\\n\t\t${1}\\n\\\n\t\\\\end{equation*}\\n\\\n# Unnumbered Equation\\n\\\nsnippet \\\\\\n\\\n\t\\\\[\\n\\\n\t\t${1}\\n\\\n\t\\\\]\\n\\\n# Enumerate\\n\\\nsnippet enum\\n\\\n\t\\\\begin{enumerate}\\n\\\n\t\t\\\\item ${1}\\n\\\n\t\\\\end{enumerate}\\n\\\n# Itemize\\n\\\nsnippet itemize\\n\\\n\t\\\\begin{itemize}\\n\\\n\t\t\\\\item ${1}\\n\\\n\t\\\\end{itemize}\\n\\\n# Description\\n\\\nsnippet desc\\n\\\n\t\\\\begin{description}\\n\\\n\t\t\\\\item[${1}] ${2}\\n\\\n\t\\\\end{description}\\n\\\n# Matrix\\n\\\nsnippet mat\\n\\\n\t\\\\begin{${1:p/b/v/V/B/small}matrix}\\n\\\n\t\t${2}\\n\\\n\t\\\\end{$1matrix}\\n\\\n# Cases\\n\\\nsnippet cas\\n\\\n\t\\\\begin{cases}\\n\\\n\t\t${1:equation}, &\\\\text{ if }${2:case}\\\\\\\\\\n\\\n\t\t${3}\\n\\\n\t\\\\end{cases}\\n\\\n# Split\\n\\\nsnippet spl\\n\\\n\t\\\\begin{split}\\n\\\n\t\t${1}\\n\\\n\t\\\\end{split}\\n\\\n# Part\\n\\\nsnippet part\\n\\\n\t\\\\part{${1:part name}} % (fold)\\n\\\n\t\\\\label{prt:${2:$1}}\\n\\\n\t${3}\\n\\\n\t% part $2 (end)\\n\\\n# Chapter\\n\\\nsnippet cha\\n\\\n\t\\\\chapter{${1:chapter name}}\\n\\\n\t\\\\label{cha:${2:$1}}\\n\\\n\t${3}\\n\\\n# Section\\n\\\nsnippet sec\\n\\\n\t\\\\section{${1:section name}}\\n\\\n\t\\\\label{sec:${2:$1}}\\n\\\n\t${3}\\n\\\n# Sub Section\\n\\\nsnippet sub\\n\\\n\t\\\\subsection{${1:subsection name}}\\n\\\n\t\\\\label{sub:${2:$1}}\\n\\\n\t${3}\\n\\\n# Sub Sub Section\\n\\\nsnippet subs\\n\\\n\t\\\\subsubsection{${1:subsubsection name}}\\n\\\n\t\\\\label{ssub:${2:$1}}\\n\\\n\t${3}\\n\\\n# Paragraph\\n\\\nsnippet par\\n\\\n\t\\\\paragraph{${1:paragraph name}}\\n\\\n\t\\\\label{par:${2:$1}}\\n\\\n\t${3}\\n\\\n# Sub Paragraph\\n\\\nsnippet subp\\n\\\n\t\\\\subparagraph{${1:subparagraph name}}\\n\\\n\t\\\\label{subp:${2:$1}}\\n\\\n\t${3}\\n\\\n#References\\n\\\nsnippet itd\\n\\\n\t\\\\item[${1:description}] ${2:item}\\n\\\nsnippet figure\\n\\\n\t${1:Figure}~\\\\ref{${2:fig:}}${3}\\n\\\nsnippet table\\n\\\n\t${1:Table}~\\\\ref{${2:tab:}}${3}\\n\\\nsnippet listing\\n\\\n\t${1:Listing}~\\\\ref{${2:list}}${3}\\n\\\nsnippet section\\n\\\n\t${1:Section}~\\\\ref{${2:sec:}}${3}\\n\\\nsnippet page\\n\\\n\t${1:page}~\\\\pageref{${2}}${3}\\n\\\nsnippet index\\n\\\n\t\\\\index{${1:index}}${2}\\n\\\n#Citations\\n\\\nsnippet cite\\n\\\n\t\\\\cite[${1}]{${2}}${3}\\n\\\nsnippet fcite\\n\\\n\t\\\\footcite[${1}]{${2}}${3}\\n\\\n#Formating text: italic, bold, underline, small capital, emphase ..\\n\\\nsnippet it\\n\\\n\t\\\\textit{${1:text}}\\n\\\nsnippet bf\\n\\\n\t\\\\textbf{${1:text}}\\n\\\nsnippet under\\n\\\n\t\\\\underline{${1:text}}\\n\\\nsnippet emp\\n\\\n\t\\\\emph{${1:text}}\\n\\\nsnippet sc\\n\\\n\t\\\\textsc{${1:text}}\\n\\\n#Choosing font\\n\\\nsnippet sf\\n\\\n\t\\\\textsf{${1:text}}\\n\\\nsnippet rm\\n\\\n\t\\\\textrm{${1:text}}\\n\\\nsnippet tt\\n\\\n\t\\\\texttt{${1:text}}\\n\\\n#misc\\n\\\nsnippet ft\\n\\\n\t\\\\footnote{${1:text}}\\n\\\nsnippet fig\\n\\\n\t\\\\begin{figure}\\n\\\n\t\\\\begin{center}\\n\\\n\t    \\\\includegraphics[scale=${1}]{Figures/${2}}\\n\\\n\t\\\\end{center}\\n\\\n\t\\\\caption{${3}}\\n\\\n\t\\\\label{fig:${4}}\\n\\\n\t\\\\end{figure}\\n\\\nsnippet tikz\\n\\\n\t\\\\begin{figure}\\n\\\n\t\\\\begin{center}\\n\\\n\t\\\\begin{tikzpicture}[scale=${1:1}]\\n\\\n\t\t${2}\\n\\\n\t\\\\end{tikzpicture}\\n\\\n\t\\\\end{center}\\n\\\n\t\\\\caption{${3}}\\n\\\n\t\\\\label{fig:${4}}\\n\\\n\t\\\\end{figure}\\n\\\n#math\\n\\\nsnippet stackrel\\n\\\n\t\\\\stackrel{${1:above}}{${2:below}} ${3}\\n\\\nsnippet frac\\n\\\n\t\\\\frac{${1:num}}{${2:denom}}\\n\\\nsnippet sum\\n\\\n\t\\\\sum^{${1:n}}_{${2:i=1}}{${3}}\";\nexports.scope = \"tex\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/text.js",
    "content": "ace.define(\"ace/snippets/text\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"text\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/textile.js",
    "content": "ace.define(\"ace/snippets/textile\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"# Jekyll post header\\n\\\nsnippet header\\n\\\n\t---\\n\\\n\ttitle: ${1:title}\\n\\\n\tlayout: post\\n\\\n\tdate: ${2:date} ${3:hour:minute:second} -05:00\\n\\\n\t---\\n\\\n\\n\\\n# Image\\n\\\nsnippet img\\n\\\n\t!${1:url}(${2:title}):${3:link}!\\n\\\n\\n\\\n# Table\\n\\\nsnippet |\\n\\\n\t|${1}|${2}\\n\\\n\\n\\\n# Link\\n\\\nsnippet link\\n\\\n\t\\\"${1:link text}\\\":${2:url}\\n\\\n\\n\\\n# Acronym\\n\\\nsnippet (\\n\\\n\t(${1:Expand acronym})${2}\\n\\\n\\n\\\n# Footnote\\n\\\nsnippet fn\\n\\\n\t[${1:ref number}] ${3}\\n\\\n\\n\\\n\tfn$1. ${2:footnote}\\n\\\n\t\\n\\\n\";\nexports.scope = \"textile\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/toml.js",
    "content": "ace.define(\"ace/snippets/toml\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"toml\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/tsx.js",
    "content": "ace.define(\"ace/snippets/tsx\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"tsx\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/twig.js",
    "content": "ace.define(\"ace/snippets/twig\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"twig\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/typescript.js",
    "content": "ace.define(\"ace/snippets/typescript\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"typescript\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/vala.js",
    "content": "ace.define(\"ace/snippets/vala\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\nexports.snippets = [\n    {\n        \"content\": \"case ${1:condition}:\\n\\t$0\\n\\tbreak;\\n\",\n        \"name\": \"case\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"case\"\n    },\n    {\n        \"content\": \"/**\\n * ${6}\\n */\\n${1:public} class ${2:MethodName}${3: : GLib.Object} {\\n\\n\\t/**\\n\\t * ${7}\\n\\t */\\n\\tpublic ${2}(${4}) {\\n\\t\\t${5}\\n\\t}\\n\\n\\t$0\\n}\",\n        \"name\": \"class\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"class\"\n    },\n    {\n        \"content\": \"(${1}) => {\\n\\t${0}\\n}\\n\",\n        \"name\": \"closure\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"=>\"\n    },\n    {\n        \"content\": \"/*\\n * $0\\n */\",\n        \"name\": \"Comment (multiline)\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"/*\"\n    },\n    {\n        \"content\": \"Console.WriteLine($1);\\n$0\",\n        \"name\": \"Console.WriteLine (writeline)\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"writeline\"\n    },\n    {\n        \"content\": \"[DBus(name = \\\"$0\\\")]\",\n        \"name\": \"DBus annotation\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"[DBus\"\n    },\n    {\n        \"content\": \"delegate ${1:void} ${2:DelegateName}($0);\",\n        \"name\": \"delegate\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"delegate\"\n    },\n    {\n        \"content\": \"do {\\n\\t$0\\n} while ($1);\\n\",\n        \"name\": \"do while\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"dowhile\"\n    },\n    {\n        \"content\": \"/**\\n * $0\\n */\",\n        \"name\": \"DocBlock\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"/**\"\n    },\n    {\n        \"content\": \"else if ($1) {\\n\\t$0\\n}\\n\",\n        \"name\": \"else if (elseif)\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"elseif\"\n    },\n    {\n        \"content\": \"else {\\n\\t$0\\n}\",\n        \"name\": \"else\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"else\"\n    },\n    {\n        \"content\": \"enum {$1:EnumName} {\\n\\t$0\\n}\",\n        \"name\": \"enum\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"enum\"\n    },\n    {\n        \"content\": \"public errordomain ${1:Error} {\\n\\t$0\\n}\",\n        \"name\": \"error domain\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"errordomain\"\n    },\n    {\n        \"content\": \"for ($1;$2;$3) {\\n\\t$0\\n}\",\n        \"name\": \"for\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"for\"\n    },\n    {\n        \"content\": \"foreach ($1 in $2) {\\n\\t$0\\n}\",\n        \"name\": \"foreach\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"foreach\"\n    },\n    {\n        \"content\": \"Gee.ArrayList<${1:G}>($0);\",\n        \"name\": \"Gee.ArrayList\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"ArrayList\"\n    },\n    {\n        \"content\": \"Gee.HashMap<${1:K},${2:V}>($0);\",\n        \"name\": \"Gee.HashMap\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"HashMap\"\n    },\n    {\n        \"content\": \"Gee.HashSet<${1:G}>($0);\",\n        \"name\": \"Gee.HashSet\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"HashSet\"\n    },\n    {\n        \"content\": \"if ($1) {\\n\\t$0\\n}\",\n        \"name\": \"if\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"if\"\n    },\n    {\n        \"content\": \"interface ${1:InterfaceName}{$2: : SuperInterface} {\\n\\t$0\\n}\",\n        \"name\": \"interface\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"interface\"\n    },\n    {\n        \"content\": \"public static int main(string [] argv) {\\n\\t${0}\\n\\treturn 0;\\n}\",\n        \"name\": \"Main function\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"main\"\n    },\n    {\n        \"content\": \"namespace $1 {\\n\\t$0\\n}\\n\",\n        \"name\": \"namespace (ns)\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"ns\"\n    },\n    {\n        \"content\": \"stdout.printf($0);\",\n        \"name\": \"printf\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"printf\"\n    },\n    {\n        \"content\": \"${1:public} ${2:Type} ${3:Name} {\\n\\tset {\\n\\t\\t$0\\n\\t}\\n\\tget {\\n\\n\\t}\\n}\",\n        \"name\": \"property (prop)\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"prop\"\n    },\n    {\n        \"content\": \"${1:public} ${2:Type} ${3:Name} {\\n\\tget {\\n\\t\\t$0\\n\\t}\\n}\",\n        \"name\": \"read-only property (roprop)\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"roprop\"\n    },\n    {\n        \"content\": \"@\\\"${1:\\\\$var}\\\"\",\n        \"name\": \"String template (@)\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"@\"\n    },\n    {\n        \"content\": \"struct ${1:StructName} {\\n\\t$0\\n}\",\n        \"name\": \"struct\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"struct\"\n    },\n    {\n        \"content\": \"switch ($1) {\\n\\t$0\\n}\",\n        \"name\": \"switch\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"switch\"\n    },\n    {\n        \"content\": \"try {\\n\\t$2\\n} catch (${1:Error} e) {\\n\\t$0\\n}\",\n        \"name\": \"try/catch\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"try\"\n    },\n    {\n        \"content\": \"\\\"\\\"\\\"$0\\\"\\\"\\\";\",\n        \"name\": \"Verbatim string (\\\"\\\"\\\")\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"verbatim\"\n    },\n    {\n        \"content\": \"while ($1) {\\n\\t$0\\n}\",\n        \"name\": \"while\",\n        \"scope\": \"vala\",\n        \"tabTrigger\": \"while\"\n    }\n];\nexports.scope = \"\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/vbscript.js",
    "content": "ace.define(\"ace/snippets/vbscript\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"vbscript\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/velocity.js",
    "content": "ace.define(\"ace/snippets/velocity\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"# macro\\n\\\nsnippet #macro\\n\\\n\t#macro ( ${1:macroName} ${2:\\\\$var1, [\\\\$var2, ...]} )\\n\\\n\t\t${3:## macro code}\\n\\\n\t#end\\n\\\n# foreach\\n\\\nsnippet #foreach\\n\\\n\t#foreach ( ${1:\\\\$item} in ${2:\\\\$collection} )\\n\\\n\t\t${3:## foreach code}\\n\\\n\t#end\\n\\\n# if\\n\\\nsnippet #if\\n\\\n\t#if ( ${1:true} )\\n\\\n\t\t${0}\\n\\\n\t#end\\n\\\n# if ... else\\n\\\nsnippet #ife\\n\\\n\t#if ( ${1:true} )\\n\\\n\t\t${2}\\n\\\n\t#else\\n\\\n\t\t${0}\\n\\\n\t#end\\n\\\n#import\\n\\\nsnippet #import\\n\\\n\t#import ( \\\"${1:path/to/velocity/format}\\\" )\\n\\\n# set\\n\\\nsnippet #set\\n\\\n\t#set ( $${1:var} = ${0} )\\n\\\n\";\nexports.scope = \"velocity\";\nexports.includeScopes = [\"html\", \"javascript\", \"css\"];\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/verilog.js",
    "content": "ace.define(\"ace/snippets/verilog\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"verilog\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/vhdl.js",
    "content": "ace.define(\"ace/snippets/vhdl\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"vhdl\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/wollok.js",
    "content": "ace.define(\"ace/snippets/wollok\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"##\\n\\\n## Basic Java packages and import\\n\\\nsnippet im\\n\\\n\timport\\n\\\nsnippet w.l\\n\\\n\twollok.lang\\n\\\nsnippet w.i\\n\\\n\twollok.lib\\n\\\n\\n\\\n## Class and object\\n\\\nsnippet cl\\n\\\n\tclass ${1:`Filename(\\\"\\\", \\\"untitled\\\")`} ${2}\\n\\\nsnippet obj\\n\\\n\tobject ${1:`Filename(\\\"\\\", \\\"untitled\\\")`} ${2:inherits Parent}${3}\\n\\\nsnippet te\\n\\\n\ttest ${1:`Filename(\\\"\\\", \\\"untitled\\\")`}\\n\\\n\\n\\\n##\\n\\\n## Enhancements\\n\\\nsnippet inh\\n\\\n\tinherits\\n\\\n\\n\\\n##\\n\\\n## Comments\\n\\\nsnippet /*\\n\\\n\t/*\\n\\\n\t * ${1}\\n\\\n\t */\\n\\\n\\n\\\n##\\n\\\n## Control Statements\\n\\\nsnippet el\\n\\\n\telse\\n\\\nsnippet if\\n\\\n\tif (${1}) ${2}\\n\\\n\\n\\\n##\\n\\\n## Create a Method\\n\\\nsnippet m\\n\\\n\tmethod ${1:method}(${2}) ${5}\\n\\\n\\n\\\n##  \\n\\\n## Tests\\n\\\nsnippet as\\n\\\n\tassert.equals(${1:expected}, ${2:actual})\\n\\\n\\n\\\n##\\n\\\n## Exceptions\\n\\\nsnippet ca\\n\\\n\tcatch ${1:e} : (${2:Exception} ) ${3}\\n\\\nsnippet thr\\n\\\n\tthrow\\n\\\nsnippet try\\n\\\n\ttry {\\n\\\n\t\t${3}\\n\\\n\t} catch ${1:e} : ${2:Exception} {\\n\\\n\t}\\n\\\n\\n\\\n##\\n\\\n## Javadocs\\n\\\nsnippet /**\\n\\\n\t/**\\n\\\n\t * ${1}\\n\\\n\t */\\n\\\n\\n\\\n##\\n\\\n## Print Methods\\n\\\nsnippet print\\n\\\n\tconsole.println(\\\"${1:Message}\\\")\\n\\\n\\n\\\n##\\n\\\n## Setter and Getter Methods\\n\\\nsnippet set\\n\\\n\tmethod set${1:}(${2:}) {\\n\\\n\t\t$1 = $2\\n\\\n\t}\\n\\\nsnippet get\\n\\\n\tmethod get${1:}() {\\n\\\n\t\treturn ${1:};\\n\\\n\t}\\n\\\n\\n\\\n##\\n\\\n## Terminate Methods or Loops\\n\\\nsnippet re\\n\\\n\treturn\";\nexports.scope = \"wollok\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/xml.js",
    "content": "ace.define(\"ace/snippets/xml\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"xml\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/xquery.js",
    "content": "ace.define(\"ace/snippets/xquery\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText = \"snippet for\\n\\\n\tfor $${1:item} in ${2:expr}\\n\\\nsnippet return\\n\\\n\treturn ${1:expr}\\n\\\nsnippet import\\n\\\n\timport module namespace ${1:ns} = \\\"${2:http://www.example.com/}\\\";\\n\\\nsnippet some\\n\\\n\tsome $${1:varname} in ${2:expr} satisfies ${3:expr}\\n\\\nsnippet every\\n\\\n\tevery $${1:varname} in ${2:expr} satisfies ${3:expr}\\n\\\nsnippet if\\n\\\n\tif(${1:true}) then ${2:expr} else ${3:true}\\n\\\nsnippet switch\\n\\\n\tswitch(${1:\\\"foo\\\"})\\n\\\n\tcase ${2:\\\"foo\\\"}\\n\\\n\treturn ${3:true}\\n\\\n\tdefault return ${4:false}\\n\\\nsnippet try\\n\\\n\ttry { ${1:expr} } catch ${2:*} { ${3:expr} }\\n\\\nsnippet tumbling\\n\\\n\tfor tumbling window $${1:varname} in ${2:expr}\\n\\\n\tstart at $${3:start} when ${4:expr}\\n\\\n\tend at $${5:end} when ${6:expr}\\n\\\n\treturn ${7:expr}\\n\\\nsnippet sliding\\n\\\n\tfor sliding window $${1:varname} in ${2:expr}\\n\\\n\tstart at $${3:start} when ${4:expr}\\n\\\n\tend at $${5:end} when ${6:expr}\\n\\\n\treturn ${7:expr}\\n\\\nsnippet let\\n\\\n\tlet $${1:varname} := ${2:expr}\\n\\\nsnippet group\\n\\\n\tgroup by $${1:varname} := ${2:expr}\\n\\\nsnippet order\\n\\\n\torder by ${1:expr} ${2:descending}\\n\\\nsnippet stable\\n\\\n\tstable order by ${1:expr}\\n\\\nsnippet count\\n\\\n\tcount $${1:varname}\\n\\\nsnippet ordered\\n\\\n\tordered { ${1:expr} }\\n\\\nsnippet unordered\\n\\\n\tunordered { ${1:expr} }\\n\\\nsnippet treat \\n\\\n\ttreat as ${1:expr}\\n\\\nsnippet castable\\n\\\n\tcastable as ${1:atomicType}\\n\\\nsnippet cast\\n\\\n\tcast as ${1:atomicType}\\n\\\nsnippet typeswitch\\n\\\n\ttypeswitch(${1:expr})\\n\\\n\tcase ${2:type}  return ${3:expr}\\n\\\n\tdefault return ${4:expr}\\n\\\nsnippet var\\n\\\n\tdeclare variable $${1:varname} := ${2:expr};\\n\\\nsnippet fn\\n\\\n\tdeclare function ${1:ns}:${2:name}(){\\n\\\n\t${3:expr}\\n\\\n\t};\\n\\\nsnippet module\\n\\\n\tmodule namespace ${1:ns} = \\\"${2:http://www.example.com}\\\";\\n\\\n\";\nexports.scope = \"xquery\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/snippets/yaml.js",
    "content": "ace.define(\"ace/snippets/yaml\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.snippetText =undefined;\nexports.scope = \"yaml\";\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-ambiance.js",
    "content": "ace.define(\"ace/theme/ambiance\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = true;\nexports.cssClass = \"ace-ambiance\";\nexports.cssText = \".ace-ambiance .ace_gutter {\\\nbackground-color: #3d3d3d;\\\nbackground-image: -moz-linear-gradient(left, #3D3D3D, #333);\\\nbackground-image: -ms-linear-gradient(left, #3D3D3D, #333);\\\nbackground-image: -webkit-gradient(linear, 0 0, 0 100%, from(#3D3D3D), to(#333));\\\nbackground-image: -webkit-linear-gradient(left, #3D3D3D, #333);\\\nbackground-image: -o-linear-gradient(left, #3D3D3D, #333);\\\nbackground-image: linear-gradient(left, #3D3D3D, #333);\\\nbackground-repeat: repeat-x;\\\nborder-right: 1px solid #4d4d4d;\\\ntext-shadow: 0px 1px 1px #4d4d4d;\\\ncolor: #222;\\\n}\\\n.ace-ambiance .ace_gutter-layer {\\\nbackground: repeat left top;\\\n}\\\n.ace-ambiance .ace_gutter-active-line {\\\nbackground-color: #3F3F3F;\\\n}\\\n.ace-ambiance .ace_fold-widget {\\\ntext-align: center;\\\n}\\\n.ace-ambiance .ace_fold-widget:hover {\\\ncolor: #777;\\\n}\\\n.ace-ambiance .ace_fold-widget.ace_start,\\\n.ace-ambiance .ace_fold-widget.ace_end,\\\n.ace-ambiance .ace_fold-widget.ace_closed{\\\nbackground: none;\\\nborder: none;\\\nbox-shadow: none;\\\n}\\\n.ace-ambiance .ace_fold-widget.ace_start:after {\\\ncontent: '▾'\\\n}\\\n.ace-ambiance .ace_fold-widget.ace_end:after {\\\ncontent: '▴'\\\n}\\\n.ace-ambiance .ace_fold-widget.ace_closed:after {\\\ncontent: '‣'\\\n}\\\n.ace-ambiance .ace_print-margin {\\\nborder-left: 1px dotted #2D2D2D;\\\nright: 0;\\\nbackground: #262626;\\\n}\\\n.ace-ambiance .ace_scroller {\\\n-webkit-box-shadow: inset 0 0 10px black;\\\n-moz-box-shadow: inset 0 0 10px black;\\\n-o-box-shadow: inset 0 0 10px black;\\\nbox-shadow: inset 0 0 10px black;\\\n}\\\n.ace-ambiance {\\\ncolor: #E6E1DC;\\\nbackground-color: #202020;\\\n}\\\n.ace-ambiance .ace_cursor {\\\nborder-left: 1px solid #7991E8;\\\n}\\\n.ace-ambiance .ace_overwrite-cursors .ace_cursor {\\\nborder: 1px solid #FFE300;\\\nbackground: #766B13;\\\n}\\\n.ace-ambiance.normal-mode .ace_cursor-layer {\\\nz-index: 0;\\\n}\\\n.ace-ambiance .ace_marker-layer .ace_selection {\\\nbackground: rgba(221, 240, 255, 0.20);\\\n}\\\n.ace-ambiance .ace_marker-layer .ace_selected-word {\\\nborder-radius: 4px;\\\nborder: 8px solid #3f475d;\\\nbox-shadow: 0 0 4px black;\\\n}\\\n.ace-ambiance .ace_marker-layer .ace_step {\\\nbackground: rgb(198, 219, 174);\\\n}\\\n.ace-ambiance .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgba(255, 255, 255, 0.25);\\\n}\\\n.ace-ambiance .ace_marker-layer .ace_active-line {\\\nbackground: rgba(255, 255, 255, 0.031);\\\n}\\\n.ace-ambiance .ace_invisible {\\\ncolor: #333;\\\n}\\\n.ace-ambiance .ace_paren {\\\ncolor: #24C2C7;\\\n}\\\n.ace-ambiance .ace_keyword {\\\ncolor: #cda869;\\\n}\\\n.ace-ambiance .ace_keyword.ace_operator {\\\ncolor: #fa8d6a;\\\n}\\\n.ace-ambiance .ace_punctuation.ace_operator {\\\ncolor: #fa8d6a;\\\n}\\\n.ace-ambiance .ace_identifier {\\\n}\\\n.ace-ambiance .ace-statement {\\\ncolor: #cda869;\\\n}\\\n.ace-ambiance .ace_constant {\\\ncolor: #CF7EA9;\\\n}\\\n.ace-ambiance .ace_constant.ace_language {\\\ncolor: #CF7EA9;\\\n}\\\n.ace-ambiance .ace_constant.ace_library {\\\n}\\\n.ace-ambiance .ace_constant.ace_numeric {\\\ncolor: #78CF8A;\\\n}\\\n.ace-ambiance .ace_invalid {\\\ntext-decoration: underline;\\\n}\\\n.ace-ambiance .ace_invalid.ace_illegal {\\\ncolor:#F8F8F8;\\\nbackground-color: rgba(86, 45, 86, 0.75);\\\n}\\\n.ace-ambiance .ace_invalid,\\\n.ace-ambiance .ace_deprecated {\\\ntext-decoration: underline;\\\nfont-style: italic;\\\ncolor: #D2A8A1;\\\n}\\\n.ace-ambiance .ace_support {\\\ncolor: #9B859D;\\\n}\\\n.ace-ambiance .ace_support.ace_function {\\\ncolor: #DAD085;\\\n}\\\n.ace-ambiance .ace_function.ace_buildin {\\\ncolor: #9b859d;\\\n}\\\n.ace-ambiance .ace_string {\\\ncolor: #8f9d6a;\\\n}\\\n.ace-ambiance .ace_string.ace_regexp {\\\ncolor: #DAD085;\\\n}\\\n.ace-ambiance .ace_comment {\\\nfont-style: italic;\\\ncolor: #555;\\\n}\\\n.ace-ambiance .ace_comment.ace_doc {\\\n}\\\n.ace-ambiance .ace_comment.ace_doc.ace_tag {\\\ncolor: #666;\\\nfont-style: normal;\\\n}\\\n.ace-ambiance .ace_definition,\\\n.ace-ambiance .ace_type {\\\ncolor: #aac6e3;\\\n}\\\n.ace-ambiance .ace_variable {\\\ncolor: #9999cc;\\\n}\\\n.ace-ambiance .ace_variable.ace_language {\\\ncolor: #9b859d;\\\n}\\\n.ace-ambiance .ace_xml-pe {\\\ncolor: #494949;\\\n}\\\n.ace-ambiance .ace_gutter-layer,\\\n.ace-ambiance .ace_text-layer {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAQAAAAHUWYVAABFFUlEQVQYGbzBCeDVU/74/6fj9HIcx/FRHx9JCFmzMyGRURhLZIkUsoeRfUjS2FNDtr6WkMhO9sm+S8maJfu+Jcsg+/o/c+Z4z/t97/vezy3z+z8ekGlnYICG/o7gdk+wmSHZ1z4pJItqapjoKXWahm8NmV6eOTbWUOp6/6a/XIg6GQqmenJ2lDHyvCFZ2cBDbmtHA043VFhHwXxClWmeYAdLhV00Bd85go8VmaFCkbVkzlQENzfBDZ5gtN7HwF0KDrTwJ0dypSOzpaKCMwQHKTIreYIxlmhXTzTWkVm+LTynZhiSBT3RZQ7aGfjGEd3qyXQ1FDymqbKxpspERQN2MiRjNZlFFQXfCNFm9nM1zpAsoYjmtRTc5ajwuaXc5xrWskT97RaKzAGe5ARHhVUsDbjKklziiX5WROcJwSNCNI+9w1Jwv4Zb2r7lCMZ4oq5C0EdTx+2GzNuKpJ+iFf38JEWkHJn9DNF7mmBDITrWEg0VWL3pHU20tSZnuqWu+R3BtYa8XxV1HO7GyD32UkOpL/yDloINFTmvtId+nmAjxRw40VMwVKiwrKLE4bK5UOVntYwhOcSSXKrJHKPJedocpGjVz/ZMIbnYUPB10/eKCrs5apqpgVmWzBYWpmtKHecJPjaUuEgRDDaU0oZghCJ6zNMQ5ZhDYx05r5v2muQdM0EILtXUsaKiQX9WMEUotagQzFbUNN6NUPC2nm5pxEWGCjMc3GdJHjSU2kORLK/JGSrkfGEIjncU/CYUnOipoYemwj8tST9NsJmB7TUVXtbUtXATJVZXBMvYeTXJfobgJUPmGMP/yFaWonaa6BcFO3nqcIqCozSZoZoSr1g4zJOzuyGnxTEX3lUEJ7WcZgme8ddaWvWJo2AJR9DZU3CUIbhCSG6ybSwN6qtJVnCU2svDTP2ZInOw2cBTrqtQahtNZn9NcJ4l2NaSmSkkP1noZWnVwkLmdUPOwLZEwy2Z3S3R+4rIG9hcbpPXHFVWcQdZkn2FOta3cKWQnNRC5g1LsJah4GCzSVsKnCOY5OAFRTBekyyryeyilhFKva75r4Mc0aWanGEaThcy31s439KKxTzJYY5WTHPU1FtIHjQU3Oip4xlNzj/lBw23dYZVliQa7WAXf4shetcQfatI+jWRDBPmyNeW6A1P5kdDgyYJlba0BIM8BZu1JfrFwItyjcAMR3K0BWOIrtMEXyhyrlVEx3ui5dUBjmB/Q3CXW85R4mBD0s7B+4q5tKUjOlb9qqmhi5AZ6GFIC5HXtOobdYGlVdMVbNJ8toNTFcHxnoL+muBagcctjWnbNMuR00uI7nQESwg5q2qqrKWIfrNUmeQocY6HuyxJV02wj36w00yhpmUFenv4p6fUkZYqLyuinx2RGOjhCXYyJF84oiU00YMOOhhquNdfbOB7gU88pY4xJO8LVdp6/q2voeB4R04vIdhSE40xZObx1HGGJ/ja0LBthFInKaLPPFzuCaYaoj8JjPME8yoyxo6zlBqkiUZYgq00OYMswbWO5NGmq+xhipxHLRW29ARjNKXO0wRnear8XSg4XFPLKEPUS1GqvyLwiuBUoa7zpZ0l5xxFwWmWZC1H5h5FwU8eQ7K+g8UcVY6TMQreVQT/8uQ8Z+ALIXnSEa2pYZQneE9RZbSBNYXfWYJzW/h/4j4Dp1tYVcFIC5019Vyi4ThPqSFCzjGWaHQTBU8q6vrVwgxP9Lkm840imWKpcLCjYTtrKuwvsKSnrvHCXGkSMk9p6lhckfRpIeis+N2PiszT+mFLspyGleUhDwcLrZqmyeylxwjBcKHEapqkmyangyLZRVOijwOtCY5SsG5zL0OwlCJ4y5KznF3EUNDDrinwiyLZRzOXtlBbK5ITHFGLp8Q0R6ab6mS7enI2cFrxOyHvOCFaT1HThS1krjCwqWeurCkk+willhCC+RSZnRXBiZaC5RXRIZYKp2lyfrHwiKPKR0JDzrdU2EFgpidawlFDR6FgXUMNa+g1FY3bUQh2cLCwosRdnuQTS/S+JVrGLeWIvtQUvONJxlqSQYYKpwoN2kaocLjdVsis4Mk80ESF2YpSkzwldjHkjFCUutI/r+EHDU8oCs6yzL3PhWiEooZdFMkymlas4AcI3KmoMMNSQ3tHzjGWCrcJJdYyZC7QFGwjRL9p+MrRkAGWzIaWCn9W0F3TsK01c2ZvQw0byvxuQU0r1lM0qJO7wW0kRIMdDTtXEdzi4VIh+EoIHm0mWtAtpCixlabgn83fKTI7anJe9ST7WIK1DMGpQmYeA58ImV6ezOGOzK2Kgq01pd60cKWiUi9Lievb/0vIDPHQ05Kzt4ddPckQBQtoaurjyHnek/nKzpQLrVgKPjIkh2v4uyezpv+Xoo7fPFXaGFp1vaLKxQ4uUpQQS5VuQs7BCq4xRJv7fwpVvvFEB3j+620haOuocqMhWd6TTPAEx+mdFNGHdranFe95WrWmIvlY4F1Dle2ECgc6cto7SryuqGGGha0tFQ5V53migUKmg6XKAo4qS3mik+0OZpAhOLeZKicacgaYcyx5hypYQE02ZA4xi/pNhOQxR4klNKyqacj+mpxnLTnnGSo85++3ZCZq6lrZkXlGEX3o+C9FieccJbZWVFjC0Yo1FZnJhoYMFoI1hEZ9r6hwg75HwzBNhbZCdJEfJwTPGzJvaKImw1yYX1HDAmpXR+ZJQ/SmgqMNVQb5vgamGwLtt7VwvP7Qk1xpiM5x5Cyv93E06MZmgs0Nya2azIKOYKCGBQQW97RmhKNKF02JZqHEJ4o58qp7X5EcZmc56trXEqzjCBZ1MFGR87Ql2tSTs6CGxS05PTzRQorkbw7aKoKXFDXsYW42VJih/q+FP2BdTzDTwVqOYB13liM50vG7wy28qagyuIXMeQI/Oqq8bcn5wJI50xH00CRntyfpL1T4hydYpoXgNiFzoIUTDZnLNRzh4TBHwbYGDvZkxmlyJloyr6tRihpeUG94GnKtIznREF0tzJG/OOr73JBcrSh1k6WuTprgLU+mnSGnv6Zge0NNz+kTDdH8nuAuTdJDCNb21LCiIuqlYbqGzT3RAoZofQfjFazkqeNWdYaGvYTM001EW2oKPvVk1ldUGSgUtHFwjKM1h9jnFcmy5lChoLNaQMGGDsYbKixlaMBmmsx1QjCfflwTfO/gckW0ruZ3jugKR3R5W9hGUWqCgxuFgsuaCHorotGKzGaeZB9DMsaTnKCpMtwTvOzhYk0rdrArKCqcaWmVk1+F372ur1YkKxgatI8Qfe1gIX9wE9FgS8ESmuABIXnRUbCapcKe+nO7slClSZFzpV/LkLncEb1qiO42fS3R855Su2mCLh62t1SYZZYVmKwIHjREF2uihTzB20JOkz7dkxzYQnK0UOU494wh+VWRc6Un2kpTaVgLDFEkJ/uhzRcI0YKGgpGWOlocBU/a4fKoJ/pEaNV6jip3+Es9VXY078rGnmAdf7t9ylPXS34RBSuYPs1UecZTU78WanhBCHpZ5sAoTz0LGZKjPf9TRypqWEiTvOFglL1fCEY3wY/++rbk7C8bWebA6p6om6PgOL2kp44TFJlVNBXae2rqqdZztOJpT87GQsE9jqCPIe9VReZuQ/CIgacsyZdCpIScSYqcZk8r+nsyCzhyfhOqHGOIvrLknC8wTpFcaYiGC/RU1NRbUeUpocQOnkRpGOrIOcNRx+1uA0UrzhSSt+VyS3SJpnFWkzNDqOFGIWcfR86DnmARTQ1HKIL33ExPiemeOhYSSjzlSUZZuE4TveoJLnBUOFof6KiysCbnAEcZgcUNTDOwkqWu3RWtmGpZwlHhJENdZ3miGz0lJlsKnjbwqSHQjpxnFDlTLLwqJPMZMjd7KrzkSG7VsxXBZE+F8YZkb01Oe00yyRK9psh5SYh29ySPKBo2ylNht7ZkZnsKenjKNJu9PNEyZpaCHv4Kt6RQsLvAVp7M9kIimmCUwGeWqLMmGuIotYMmWNpSahkhZw9FqZsVnKJhsjAHvtHMsTM9fCI06Dx/u3vfUXCqfsKRc4oFY2jMsoo/7DJDwZ1CsIKnJu+J9ldkpmiCxQx1rWjI+T9FwcWWzOuaYH0Hj7klNRVWEQpmaqosakiGNTFHdjS/qnUdmf0NJW5xsL0HhimCCZZSRzmSPTXJQ4aaztAwtZnoabebJ+htCaZ7Cm535ByoqXKbX1WRc4Eh2MkRXWzImVc96Cj4VdOKVxR84VdQsIUM8Psoou2byVHyZFuq7O8otbSQ2UAoeEWTudATLGSpZzVLlXVkPU2Jc+27lsw2jmg5T5VhbeE3BT083K9WsTTkFU/Osi0rC5lRlpwRHUiesNS0sOvmqGML1aRbPAxTJD9ZKtxuob+hhl8cwYGWpJ8nub7t5p6coYbMovZ1BTdaKn1jYD6h4GFDNFyT/Kqe1XCXphXHOKLZmuRSRdBPEfVUXQzJm5YGPGGJdvAEr7hHNdGZnuBvrpciGmopOLf5N0uVMy0FfYToJk90uUCbJupaVpO53UJXR2bVpoU00V2KOo4zMFrBd0Jtz2pa0clT5Q5L8IpQ177mWQejPMEJhuQjS10ref6HHjdEhy1P1EYR7GtO0uSsKJQYLiTnG1rVScj5lyazpqWGl5uBbRWl7m6ixGOOnEsMJR7z8J0n6KMnCdxhiNYQCoZ6CmYLnO8omC3MkW3bktlPmEt/VQQHejL3+dOE5FlPdK/Mq8hZxxJtLyRrepLThYKbLZxkSb5W52vYxNOaOxUF0yxMUPwBTYqCzy01XayYK0sJyWBLqX0MwU5CzoymRzV0EjjeUeLgDpTo6ij42ZAzvD01dHUUTPLU96MdLbBME8nFBn7zJCMtJcZokn8YoqU0FS5WFKyniHobguMcmW8N0XkWZjkyN3hqOMtS08r+/xTBwpZSZ3qiVRX8SzMHHjfUNFjgHEPmY9PL3ykEzxkSre/1ZD6z/NuznuB0RcE1TWTm9zRgfUWVJiG6yrzgmWPXC8EAR4Wxhlad0ZbgQyEz3pG5RVEwwDJH2mgKpjcTiCOzn1lfUWANFbZ2BA8balnEweJC9J0iuaeZoI+ippFCztEKVvckR2iice1JvhVytrQwUAZpgsubCPaU7xUe9vWnaOpaSBEspalykhC9bUlOMpT42ZHca6hyrqKmw/wMR8H5ZmdFoBVJb03O4UL0tSNnvIeRmkrLWqrs78gcrEn2tpcboh0UPOW3UUR9PMk4T4nnNKWmCjlrefhCwxRNztfmIQVdDElvS4m1/WuOujoZCs5XVOjtKPGokJzsYCtFYoWonSPT21DheU/wWhM19FcElwqNGOsp9Q8N/cwXaiND1MmeL1Q5XROtYYgGeFq1aTMsoMmcrKjQrOFQTQ1fmBYhmW6o8Jkjc7iDJRTBIo5kgJD5yMEYA3srCg7VFKwiVJkmRCc5ohGOKhsYMn/XBLdo5taZjlb9YAlGWRimqbCsoY7HFAXLa5I1HPRxMMsQDHFkWtRNniqT9UEeNjcE7RUlrCJ4R2CSJuqlKHWvJXjAUNcITYkenuBRB84TbeepcqTj3zZyFJzgYQdHnqfgI0ddUwS6GqWpsKWhjq9cV0vBAEMN2znq+EBfIWT+pClYw5xsTlJU6GeIBsjGmmANTzJZiIYpgrM0Oa8ZMjd7NP87jxhqGOhJlnQtjuQpB+8aEE00wZFznSJPyHxgH3HkPOsJFvYk8zqCHzTs1BYOa4J3PFU+UVRZxlHDM4YavlNUuMoRveiZA2d7grMNc2g+RbSCEKzmgYsUmWmazFJyoiOZ4KnyhKOGRzWJa0+moyV4TVHDzn51Awtqaphfk/lRQ08FX1iiqxTB/kLwd0VynKfEvI6cd4XMV5bMhZ7gZUWVzYQ6Nm2BYzxJbw3bGthEUUMfgbGeorae6DxHtJoZ6alhZ0+ytiVoK1R4z5PTrOECT/SugseEOlb1MMNR4VRNcJy+V1Hg9ONClSZFZjdHlc6W6FBLdJja2MC5hhpu0DBYEY1TFGwiFAxRRCsYkiM9JRb0JNMVkW6CZYT/2EiTGWmo8k+h4FhDNE7BvppoTSFnmCV5xZKzvcCdDo7VVPnIU+I+Rc68juApC90MwcFCsJ5hDqxgScYKreruyQwTqrzoqDCmhWi4IbhB0Yrt3RGa6GfDv52rKXWhh28dyZaWUvcZeMTBaZoSGyiCtRU5J8iviioHaErs7Jkj61syVzTTgOcUOQ8buFBTYWdL5g3T4qlpe0+wvD63heAXRfCCIed9RbCsp2CiI7raUOYOTU13N8PNHvpaGvayo4a3LLT1lDrVEPT2zLUlheB1R+ZTRfKWJ+dcocLJfi11vyJ51lLqJ0WD7tRwryezjiV5W28uJO9qykzX8JDe2lHl/9oyBwa2UMfOngpXCixvKdXTk3wrsKmiVYdZIqsoWEERjbcUNDuiaQomGoIbFdEHmsyWnuR+IeriKDVLnlawlyNHKwKlSU631PKep8J4Q+ayjkSLKYLhalNHlYvttb6fHm0p6OApsZ4l2VfdqZkjuysy6ysKLlckf1KUutCTs39bmCgEyyoasIWlVaMF7mgmWtBT8Kol5xpH9IGllo8cJdopcvZ2sImlDmMIbtDk3KIpeNiS08lQw11NFPTwVFlPP6pJ2gvRfI7gQUfmNAtf6Gs0wQxDsKGlVBdF8rCa3jzdwMaGHOsItrZk7hAyOzpK9VS06j5F49b0VNGOOfKs3lDToMsMBe9ZWtHFEgxTJLs7qrygKZjUnmCYoeAqeU6jqWuLJup4WghOdvCYJnrSkSzoyRkm5M2StQwVltPkfCAk58tET/CSg+8MUecmotMEnhBKfWBIZsg2ihruMJQaoIm+tkTLKEqspMh00w95gvFCQRtDwTT1gVDDSEVdlwqZfxoQRbK0g+tbiBZxzKlpnpypejdDwTaeOvorMk/IJE10h9CqRe28hhLbe0pMsdSwv4ZbhKivo2BjDWfL8UKJgeavwlwb5KlwhyE4u4XkGE2ytZCznKLCDZZq42VzT8HLCrpruFbIfOIINmh/qCdZ1ZBc65kLHR1Bkyf5zn6pN3SvGKIlFNGplhrO9QSXanLOMQTLCa0YJCRrCZm/CZmrLTm7WzCK4GJDiWUdFeYx1LCFg3NMd0XmCuF3Y5rITLDUsYS9zoHVzwnJoYpSTQoObyEzr4cFBNqYTopoaU/wkyLZ2lPhX/5Y95ulxGTV7KjhWrOZgl8MyUUafjYraNjNU1N3IWcjT5WzWqjwtoarHSUObGYO3GCJZpsBlnJGPd6ZYLyl1GdCA2625IwwJDP8GUKymbzuyPlZlvTUsaUh5zFDhRWFzPKKZLAlWdcQbObgF9tOqOsmB1dqcqYJmWstFbZRRI9poolmqiLnU0POvxScpah2iSL5UJNzgScY5+AuIbpO0YD3NCW+dLMszFSdFCWGqG6eVq2uYVNDdICGD6W7EPRWZEY5gpsE9rUkS3mijzzJnm6UpUFXG1hCUeVoS5WfNcFpblELL2qqrCvMvRfd45oalvKU2tiQ6ePJOVMRXase9iTtLJztPxJKLWpo2CRDcJwn2sWSLKIO1WQWNTCvpVUvOZhgSC40JD0dOctaSqzkCRbXsKlb11Oip6PCJ0IwSJM31j3akRxlP7Rwn6aGaUL0qiLnJkvB3xWZ2+Q1TfCwpQH3G0o92UzmX4o/oJNQMMSQc547wVHhdk+VCw01DFYEnTxzZKAm74QmeNNR1w6WzEhNK15VJzuCdxQ53dRUDws5KvwgBMOEgpcVNe0hZI6RXT1Jd0cyj5nsaEAHgVmGaJIlWdsc5Ui2ElrRR6jrRAttNMEAIWrTDFubkZaok7/AkzfIwfuWVq0jHzuCK4QabtLUMVPB3kJ0oyHTSVFlqMALilJf2Rf8k5aaHtMfayocLBS8L89oKoxpJvnAkDPa0qp5DAUTHKWmCcnthlou8iCKaFFLHWcINd1nyIwXqrSxMNmSs6KmoL2QrKuWtlQ5V0120xQ5vRyZS1rgFkWwhiOwiuQbR0OOVhQM9iS3tiXp4RawRPMp5tDletOOBL95MpM01dZTBM9pkn5qF010rIeHFcFZhmSGpYpTsI6nwhqe5C9ynhlpp5ophuRb6WcJFldkVnVEwwxVfrVkvnWUuNLCg5bgboFHPDlDPDmnK7hUrWiIbjadDclujlZcaokOFup4Ri1kacV6jmrrK1hN9bGwpKEBQ4Q6DvIUXOmo6U5LqQM6EPyiKNjVkPnJkDPNEaxhiFay5ExW1NXVUGqcpYYdPcGiCq7z/TSlbhL4pplWXKd7NZO5QQFrefhRQW/NHOsqcIglc4UhWklR8K0QzbAw08CBDnpbgqXdeD/QUsM4RZXDFBW6WJKe/mFPdH0LtBgiq57wFLzlyQzz82qYx5D5WJP5yVJDW01BfyHnS6HKO/reZqId1WGa4Hkh2kWodJ8i6KoIPlAj2hPt76CzXsVR6koPRzWTfKqIentatYpQw2me4AA3y1Kind3SwoOKZDcFXTwl9tWU6mfgRk9d71sKtlNwrjnYw5tC5n5LdKiGry3JKNlHEd3oaMCFHrazBPMp/uNJ+V7IudcSbeOIdjUEdwl0VHCOZo5t6YluEuaC9mQeMgSfOyKnYGFHcIeQ84yQWbuJYJpZw5CzglDH7gKnWqqM9ZTaXcN0TeYhR84eQtJT76JJ1lREe7WnnvsMmRc9FQ7SBBM9mV3lCUdmHk/S2RAMt0QjFNFqQpWjDPQ01DXWUdDBkXziKPjGEP3VP+zIWU2t7im41FOloyWzn/L6dkUy3VLDaZ6appgDLHPjJEsyvJngWEPUyVBiAaHCTEXwrLvSEbV1e1gKJniicWorC1MUrVjB3uDhJE/wgSOzk1DXpk0k73qCM8xw2UvD5kJmDUfOomqMpWCkJRlvKXGmoeBm18USjVIk04SClxTB6YrgLAPLWYK9HLUt5cmc0vYES8GnTeRc6skZbQkWdxRsIcyBRzx1DbTk9FbU0caTPOgJHhJKnOGIVhQqvKmo0llRw9sabrZkDtdg3PqaKi9oatjY8B+G371paMg6+mZFNNtQ04mWBq3rYLOmtWWQp8KJnpy9DdFensyjdqZ+yY40VJlH8wcdLzC8PZnvHMFUTZUrDTkLyQaGus5X5LzpYAf3i+e/ZlhqGqWhh6Ou6xTR9Z6oi5AZZtp7Mj2EEm8oSpxiYZCHU/1fbGdNNNRRoZMhmilEb2gqHOEJDtXkHK/JnG6IrvbPCwV3NhONVdS1thBMs1T4QOBcTWa2IzhMk2nW5Kyn9tXUtpv9RsG2msxk+ZsQzRQacJncpgke0+T8y5Fzj8BiGo7XlJjaTIlpQs7KFjpqGnKuoyEPeIKnFMkZHvopgh81ySxNFWvJWcKRs70j2FOT012IllEEO1n4pD1513Yg2ssQPOThOkvyrqHUdEXOSEsihmBbTbKX1kLBPWqWkLOqJbjB3GBIZmoa8qWl4CG/iZ7oiA72ZL7TJNeZUY7kFQftDcHHluBzRbCegzMtrRjVQpX2lgoPKKLJAkcbMl01XK2p7yhL8pCBbQ3BN2avJgKvttcrWDK3CiUOVxQ8ZP+pqXKyIxnmBymCg5vJjNfkPK4+c8cIfK8ocVt7kmfd/I5SR1hKvCzUtb+lhgc00ZaO6CyhIQP1Uv4yIZjload72PXX0OIJvnFU+0Zf6MhsJwTfW0r0UwQfW4LNLZl5HK261JCZ4qnBaAreVAS3WrjV0LBnNDUNNDToCEeFfwgcb4gOEqLRhirWkexrCEYKVV711DLYEE1XBEsp5tpTGjorkomKYF9FDXv7fR3BGwbettSxnyL53MBPjsxDZjMh+VUW9NRxq1DhVk+FSxQcaGjV9Pawv6eGByw5qzoy7xk4RsOShqjJwWKe/1pEEfzkobeD/dQJmpqedcyBTy2sr4nGNRH0c0SPWTLrqAc0OQcb/gemKgqucQT7ySWKCn2EUotoCvpZct7RO2sy/QW0IWcXd7pQRQyZVwT2USRO87uhjioTLKV2brpMUcMQRbKH/N2T+UlTpaMls6cmc6CCNy3JdYYSUzzJQ4oSD3oKLncULOiJvjBEC2oqnCJkJluCYy2ZQ5so9YYlZ1VLlQU1mXEW1jZERwj/MUSRc24TdexlqLKfQBtDTScJUV8FszXBEY5ktpD5Ur9hYB4Nb1iikw3JoYpkKX+RodRKFt53MMuRnKSpY31PwYaGaILh3wxJGz9TkTPEETxoCWZrgvOlmyMzxFEwVJE5xZKzvyJ4WxEc16Gd4Xe3Weq4XH2jKRikqOkGQ87hQnC7wBmGYLAnesX3M+S87eFATauuN+Qcrh7xIxXJbUIdMw3JGE3ylCWzrieaqCn4zhGM19TQ3z1oH1AX+pWEqIc7wNGAkULBo/ZxRaV9NNyh4Br3rCHZzbzmSfawBL0dNRwpW1kK9mxPXR9povcdrGSZK9c2k0xwFGzjuniCtRSZCZ6ccZ7gaktmgAOtKbG/JnOkJrjcQTdFMsxRQ2cLY3WTIrlCw1eWKn8R6pvt4GFDso3QoL4a3nLk3G6JrtME3dSenpx7PNFTmga0EaJTLQ061sEeQoWXhSo9LTXsaSjoJQRXeZLtDclbCrYzfzHHeaKjHCVOUkQHO3JeEepr56mhiyaYYKjjNU+Fed1wS5VlhWSqI/hYUdDOkaxiKehoyOnrCV5yBHtbWFqTHCCwtpDcYolesVR5yUzTZBb3RNMd0d6WP+SvhuBmRcGxnuQzT95IC285cr41cLGQ6aJJhmi4TMGempxeimBRQw1tFKV+8jd6KuzoSTqqDxzRtpZkurvKEHxlqXKRIjjfUNNXQsNOsRScoWFLT+YeRZVD3GRN0MdQcKqQjHDMrdGGVu3iYJpQx3WGUvfbmxwFfR20WBq0oYY7LMFhhgYtr8jpaEnaOzjawWWaTP8mMr0t/EPDPoqcnxTBI5o58L7uoWnMrpoqPwgVrlAUWE+V+TQl9rawoyP6QGAlQw2TPRX+YSkxyBC8Z6jhHkXBgQL7WII3DVFnRfCrBfxewv9D6xsyjys4VkhWb9pUU627JllV0YDNHMku/ldNMMXDEo4aFnAkk4U6frNEU4XgZUPmEKHUl44KrzmYamjAbh0JFvGnaTLPu1s9jPCwjFpYiN7z1DTOk/nc07CfDFzmCf7i+bfNHXhDtLeBXzTBT5rkMvWOIxpl4EMh2LGJBu2syDnAEx2naEhHDWMMzPZEhygyS1mS5RTJr5ZkoKbEUoYqr2kqdDUE8ztK7OaIntJkFrIECwv8LJTaVx5XJE86go8dFeZ3FN3rjabCAYpoYEeC9zzJVULBbmZhDyd7ko09ydpNZ3nm2Kee4FPPXHnYEF1nqOFEC08LUVcDvYXkJHW8gTaKCk9YGOeIJhqiE4ToPEepdp7IWFjdwnWaufGMwJJCMtUTTBBK9BGCOy2tGGrJTHIwyEOzp6aPzNMOtlZkDvcEWpP5SVNhfkvDxhmSazTJXYrM9U1E0xwFVwqZQwzJxw6+kGGGUj2FglGGmnb1/G51udRSMNlTw6GGnCcUwVcOpmsqTHa06o72sw1RL02p9z0VbnMLOaIX3QKaYKSCFQzBKEUNHTSc48k53RH9wxGMtpQa5KjjW0W0n6XCCCG4yxNNdhQ4R4l1Ff+2sSd6UFHiIEOyqqFgT01mEUMD+joy75jPhOA+oVVLm309FR4yVOlp4RhLiScNmSmaYF5Pw0STrOIoWMSR2UkRXOMp+M4SHW8o8Zoi6OZgjKOaFar8zZDzkWzvKOjkKBjmCXby8JahhjXULY4KlzgKLvAwxVGhvyd4zxB1d9T0piazmKLCVZY5sKiD0y2ZSYrkUEPUbIk+dlQ4SJHTR50k1DPaUWIdTZW9NJwnJMOECgd7ou/MnppMJ02O1VT4Wsh85MnZzcFTngpXGKo84qmwgKbCL/orR/SzJ2crA+t6Mp94KvxJUeIbT3CQu1uIdlQEOzlKfS3UMcrTiFmOuroocrZrT2AcmamOKg8YomeEKm/rlT2sociMaybaUlFhuqHCM2qIJ+rg4EcDFymiDSxzaHdPcpE62pD5kyM5SBMoA1PaUtfIthS85ig1VPiPPYXgYEMNk4Qq7TXBgo7oT57gPUdwgCHzhIVFPFU6OYJzHAX9m5oNrVjeE61miDrqQ4VSa1oiURTsKHC0IfjNwU2WzK6eqK8jWln4g15TVBnqmDteCJ501PGAocJhhqjZdtBEB6lnhLreFJKxmlKbeGrqLiSThVIbCdGzloasa6lpMQXHCME2boLpJgT7yWaemu6wBONbqGNVRS0PKIL7LckbjmQtR7K8I5qtqel+T/ChJTNIKLjdUMNIRyvOEko9YYl2cwQveBikCNawJKcLBbc7+JM92mysNvd/Fqp8a0k6CNEe7cnZrxlW0wQXaXjaktnRwNOGZKYiONwS7a1JVheq3WgJHlQUGKHKmp4KAxXR/ULURcNgoa4zhKSLpZR3kxRRb0NmD0OFn+UCS7CzI1nbP6+o4x47QZE5xRCt3ZagnYcvmpYQktXdk5YKXTzBC57kKEe0VVuiSYqapssMS3C9p2CKkHOg8B8Pa8p5atrIw3qezIWanMGa5HRDNF6RM9wcacl0N+Q8Z8hsIkSnaIIdHRUOEebAPy1zbCkhM062FCJtif7PU+UtoVXzWKqM1PxXO8cfdruhFQ/a6x3JKYagvVDhQEtNiyiiSQ7OsuRsZUku0CRNDs4Sog6KKjsZgk2bYJqijgsEenoKeniinRXBn/U3lgpPdyDZynQx8IiioMnCep5Ky8mjGs6Wty0l1hUQTcNWswS3WRp2kCNZwJG8omG8JphPUaFbC8lEfabwP7VtM9yoaNCAjpR41VNhrD9LkbN722v0CoZMByFzhaW+MyzRYEWFDQwN2M4/JiT76PuljT3VU/A36eaIThb+R9oZGOAJ9tewkgGvqOMNRWYjT/Cwu99Q8LqDE4TgbLWxJ1jaDDAERsFOFrobgjUsBScaguXU8kKm2RL19tRypSHnHNlHiIZqgufs4opgQdVdwxBNNFBR6kVFqb8ogimOzB6a6HTzrlDHEpYaxjiiA4TMQobkDg2vejjfwJGWmnbVFAw3H3hq2NyQfG7hz4aC+w3BbwbesG0swYayvpAs6++Ri1Vfzx93mFChvyN5xVHTS+0p9aqCAxyZ6ZacZyw5+7uuQkFPR9DDk9NOiE7X1PCYJVjVUqq7JlrHwWALF5nfHNGjApdpqgzx5OwilDhCiDYTgnc9waGW4BdLNNUQvOtpzDOWHDH8D7TR/A/85KljEQu3NREc4Pl/6B1Hhc8Umb5CsKMmGC9EPcxoT2amwHNCmeOEnOPbklnMkbOgIvO5UMOpQrS9UGVdt6iH/fURjhI/WOpaW9OKLYRod6HCUEdOX000wpDZQ6hwg6LgZfOqo1RfT/CrJzjekXOGhpc1VW71ZLbXyyp+93ILbC1kPtIEYx0FIx1VDrLoVzXRKRYWk809yYlC9ImcrinxtabKnzRJk3lAU1OLEN1j2zrYzr2myHRXJFf4h4QKT1qSTzTB5+ZNTzTRkAxX8FcLV2uS8eoQQ2aAkFzvCM72sJIcJET3WPjRk5wi32uSS9rfZajpWEvj9hW42F4o5NytSXYy8IKHay10VYdrcl4SkqscrXpMwyGOgtkajheSxdQqmpxP1L3t4R5PqasFnrQEjytq6qgp9Y09Qx9o4S1FzhUCn1kyHSzBWLemoSGvOqLNhZyBjmCaAUYpMgt4Ck7wBBMMwWKWgjsUwTaGVsxWC1mYoKiyqqeGKYqonSIRQ3KIkHO0pmAxTdBHkbOvfllfr+AA+7gnc50huVKYK393FOyg7rbPO/izI7hE4CnHHHnJ0ogNPRUGeUpsrZZTBJcrovUcJe51BPsr6GkJdhCCsZ6aTtMEb2pqWkqeVtDXE/QVggsU/Nl86d9RMF3DxvZTA58agu810RWawCiSzzXBeU3MMW9oyJUedvNEvQyNu1f10BSMddR1vaLCYpYa/mGocLSiYDcLbQz8aMn5iyF4xBNMs1P0QEOV7o5gaWGuzSeLue4tt3ro7y4Tgm4G/mopdZgl6q0o6KzJWE3mMksNr3r+a6CbT8g5wZNzT9O7fi/zpaOmnz3BRoqos+tv9zMbdpxsqDBOEewtJLt7cg5wtKKbvldpSzRRCD43VFheCI7yZLppggMVBS/KMAdHODJvOwq2NQSbKKKPLdFWQs7Fqo+mpl01JXYRgq8dnGLhTiFzqmWsUMdpllZdbKlyvSdYxhI9YghOtxR8LgSLWHK62mGGVoxzBE8LNWzqH9CUesQzFy5RQzTc56mhi6fgXEWwpKfE5Z7M05ZgZUPmo6auiv8YKzDYwWBLMErIbKHJvOwIrvEdhOBcQ9JdU1NHQ7CXn2XIDFBKU2WAgcX9UAUzDXWd5alwuyJ41Z9rjKLCL4aCp4WarhPm2rH+SaHUYE001JDZ2ZAzXPjdMpZWvC9wmqIB2lLhQ01D5jO06hghWMndbM7yRJMsoCj1vYbnFQVrW9jak3OlEJ3s/96+p33dEPRV5GxiqaGjIthUU6FFEZyqCa5qJrpBdzSw95IUnOPIrCUUjRZQFrbw5PR0R1qiYx3cb6nrWUMrBmmiBQxVHtTew5ICP/ip6g4hed/Akob/32wvBHsIOX83cI8hGeNeNPCIkPmXe8fPKx84OMSRM1MTdXSwjCZ4S30jVGhvqTRak/OVhgGazHuOCud5onEO1lJr6ecVyaOK6H7zqlBlIaHE0oroCgfvGJIdPcmfLNGLjpz7hZwZQpUbFME0A1cIJa7VNORkgfsMBatbKgwwJM9bSvQXeNOvbIjelg6WWvo5kvbKaJJNHexkKNHL9xRyFlH8Ti2riB5wVPhUk7nGkJnoCe428LR/wRGdYIlmWebCyxou1rCk4g/ShugBDX0V0ZQWkh0dOVsagkM0yV6OoLd5ye+pRlsCr0n+KiQrGuq5yJDzrTAXHtLUMduTDBVKrSm3eHL+6ijxhFDX9Z5gVU/wliHYTMiMFpKLNMEywu80wd3meoFmt6VbRMPenhrOc6DVe4pgXU8DnnHakLOIIrlF4FZPIw6R+zxBP0dyq6OOZ4Q5sLKCcz084ok+VsMMyQhNZmmBgX5xIXOEJTmi7VsGTvMTNdHHhpzdbE8Du2oKxgvBqQKdDDnTFOylCFaxR1syz2iqrOI/FEpNc3C6f11/7+ASS6l2inq2ciTrCCzgyemrCL5SVPjQkdPZUmGy2c9Sw9FtR1sS30RmsKPCS4rkIC/2U0MduwucYolGaPjKEyhzmiPYXagyWbYz8LWBDdzRimAXzxx4z8K9hpzlhLq+NiQ97HuKorMUfK/OVvC2JfiHUPCQI/q7J2gjK+tTDNxkCc4TMssqCs4TGtLVwQihyoAWgj9bosU80XGW6Ac9TJGziaUh5+hnFcHOnlaM1iRn29NaqGENTTTSUHCH2tWTeV0osUhH6psuVLjRUmGWhm6OZEshGeNowABHcJ2Bpy2ZszRcKkRXd2QuKVEeXnbfaEq825FguqfgfE2whlChSRMdron+LATTPQ2Z369t4B9C5gs/ylzv+CMmepIDPclFQl13W0rspPd1JOcbghGOEutqCv5qacURQl3dDKyvyJlqKXGPgcM9FfawJAMVmdcspcYKOZc4GjDYkFlK05olNMHyHn4zFNykyOxt99RkHlfwmiHo60l2EKI+mhreEKp080Tbug08BVPcgoqC5zWt+NLDTZ7oNSF51N1qie7Va3uCCwyZbkINf/NED6jzOsBdZjFN8oqG3wxVunqCSYYKf3EdhJyf9YWGf7tRU2oH3VHgPr1fe5J9hOgHd7xQ0y7qBwXr23aGErP0cm64JVjZwsOGqL+mhNgZmhJLW2oY4UhedsyBgzrCKrq7BmcpNVhR6jBPq64Vgi+kn6XE68pp8J5/+0wRHGOpsKenQn9DZntPzjRLZpDAdD2fnSgkG9tmIXnUwQ6WVighs7Yi2MxQ0N3CqYaCXkJ0oyOztMDJjmSSpcpvlrk0RMMOjmArQ04PRV1DO1FwhCVaUVPpKUM03JK5SxPsIWRu8/CGHi8UHChiqGFDTbSRJWeYUDDcH6vJWUxR4k1FXbMUwV6e4AJFXS8oMqsZKqzvYQ9DDQdZckY4aGsIhtlubbd2r3j4QBMoTamdPZk7O/Bf62lacZwneNjQoGcdVU7zJOd7ghsUHOkosagic6cnWc8+4gg285R6zZP5s1/LUbCKIznTwK36PkdwlOrl4U1LwfdCCa+IrvFkmgw1PCAUXKWo0sURXWcI2muKJlgyFzhynCY4RBOsqCjoI1R5zREco0n2Vt09BQtYSizgKNHfUmUrQ5UOCh51BFcLmY7umhYqXKQomOop8bUnWNNQcIiBcYaC6xzMNOS8JQQfeqKBmmglB+97ok/lfk3ygaHSyZaCRTzRxQo6GzLfa2jWBPepw+UmT7SQEJyiyRkhBLMVOfcoMjcK0eZChfUNzFAUzCsEN5vP/X1uP/n/aoMX+K+nw/Hjr/9xOo7j7Pju61tLcgvJpTWXNbfN5jLpi6VfCOviTktKlFusQixdEKWmEBUKNaIpjZRSSOXSgzaaKLdabrm1/9nZ+/f+vd/vz/v9+Xy+zZ7PRorYoZqyLrCwQdEAixxVOEXNNnjX2nUSRlkqGmWowk8lxR50JPy9Bo6qJXaXwNvREBvnThPEPrewryLhcAnj5WE15Fqi8W7R1sAuEu86S4ENikItFN4xkv9Af4nXSnUVcLiA9xzesFpivRRVeFKtsMRaKBhuSbjOELnAUtlSQUpXgdfB4Z1oSbnFEetbQ0IrAe+Y+pqnDcEJFj6S8LDZzZHwY4e3XONNlARraomNEt2bkvGsosA3ioyHm+6jCMbI59wqt4eeara28IzEmyPgoRaUOEDhTVdEJhmCoTWfC0p8aNkCp0oYqih2iqGi4yXeMkOsn4LdLLnmKfh/YogjNsPebeFGR4m9BJHLzB61XQ3BtpISfS2FugsK9FAtLWX1dCRcrCnUp44CNzuCowUZmxSRgYaE6Za0W2u/E7CVXCiI/UOR8aAm1+OSyE3mOUcwyc1zBBeoX1kiKy0Zfxck1Gsyulti11i83QTBF5Kg3pDQThFMVHiPSlK+0cSedng/VaS8bOZbtsBcTcZAR8JP5KeqQ1OYKAi20njdNNRpgnsU//K+JnaXJaGTomr7aYIphoRn9aeShJWKEq9LcozSF7QleEfDI5LYm5bgVkFkRwVDBCVu0DDIkGupo8TZBq+/pMQURYErJQmPKGKjNDkWOLx7Jd5QizdUweIaKrlP7SwJDhZvONjLkOsBBX9UpGxnydhXkfBLQ8IxgojQbLFnJf81JytSljclYYyEFyx0kVBvKWOFJmONpshGAcsduQY5giVNCV51eOdJYo/pLhbvM0uDHSevNKRcrKZIqnCtJeEsO95RoqcgGK4ocZcho1tTYtcZvH41pNQ7vA0WrhIfOSraIIntIAi+NXWCErdbkvrWwjRLrt0NKUdL6KSOscTOdMSOUtBHwL6OLA0vNSdynaWQEnCpIvKaIrJJEbvHkmuNhn6OjM8VkSGSqn1uYJCGHnq9I3aLhNME3t6GjIkO7xrNFumpyTNX/NrwX7CrIRiqqWijI9JO4d1iieykyfiposQIQ8YjjsjlBh6oHWbwRjgYJQn2NgSnNycmJAk3NiXhx44Sxykihxm8ybUwT1OVKySc7vi3OXVkdBJ4AyXBeksDXG0IhgtYY0lY5ahCD0ehborIk5aUWRJviMA7Xt5kyRjonrXENkm8yYqgs8VzgrJmClK20uMM3jRJ0FiQICQF9hdETlLQWRIb5ki6WDfWRPobvO6a4GP5mcOrNzDFELtTkONLh9dXE8xypEg7z8A9jkhrQ6Fhjlg/QVktJXxt4WXzT/03Q8IaQWSqIuEvloQ2mqC9Jfi7wRul4RX3pSPlzpoVlmCtI2jvKHCFhjcM3sN6lqF6HxnKelLjXWbwrpR4xzuCrTUZx2qq9oAh8p6ixCUGr78g8oyjRAtB5CZFwi80VerVpI0h+IeBxa6Zg6kWvpDHaioYYuEsRbDC3eOmC2JvGYLeioxGknL2UATNJN6hmtj1DlpLvDVmocYbrGCVJKOrg4X6DgddLA203BKMFngdJJFtFd7vJLm6KEpc5yjQrkk7M80SGe34X24nSex1Ra5Omgb71JKyg8SrU3i/kARKwWpH0kOGhKkObyfd0ZGjvyXlAkVZ4xRbYJ2irFMkFY1SwyWxr2oo4zlNiV+7zmaweFpT4kR3kaDAFW6xpSqzJay05FtYR4HmZhc9UxKbbfF2V8RG1MBmSaE+kmC6JnaRXK9gsiXhJHl/U0qM0WTcbyhwkYIvFGwjSbjfwhiJt8ZSQU+Bd5+marPMOkVkD0muxYLIfEuhh60x/J92itguihJSEMySVPQnTewnEm+620rTQEMsOfo4/kP/0ARvWjitlpSX7GxBgcMEsd3EEeYWvdytd+Saawi6aCIj1CkGb6Aj9rwhx16Cf3vAwFy5pyLhVonXzy51FDpdEblbkdJbUcEPDEFzQ8qNmhzzLTmmKWKbFCXeEuRabp6rxbvAtLF442QjQ+wEA9eL1xSR7Q0JXzlSHjJ4exq89yR0laScJ/FW6z4a73pFMEfDiRZvuvijIt86RaSFOl01riV2mD1UEvxGk/Geg5aWwGki1zgKPG9J2U8PEg8qYvMsZeytiTRXBMslCU8JSlxi8EabjwUldlDNLfzTUmCgxWsjqWCOHavYAqsknKFIO0yQ61VL5AVFxk6WhEaCAkdJgt9aSkzXlKNX2jEa79waYuc7gq0N3GDJGCBhoiTXUEPsdknCUE1CK0fwsiaylSF2uiDyO4XX3pFhNd7R4itFGc0k/ElBZwWvq+GC6szVeEoS/MZ+qylwpKNKv9Z469UOjqCjwlusicyTxG6VpNxcQ8IncoR4RhLbR+NdpGGmJWOcIzJGUuKPGpQg8rrG21dOMqQssJQ4RxH5jaUqnZuQ0F4Q+cjxLwPtpZbIAk3QTJHQWBE5S1BokoVtDd6lhqr9UpHSUxMcIYl9pojsb8h4SBOsMQcqvOWC2E8EVehqiJ1hrrAEbQxeK0NGZ0Gkq+guSRgniM23bIHVkqwx4hiHd7smaOyglyIyQuM978j4VS08J/A2G1KeMBRo4fBaSNhKUEZfQewVQ/C1I+MgfbEleEzCUw7mKXI0M3hd1EESVji8x5uQ41nxs1q4RMJCCXs7Iq9acpxn22oSDnQ/sJTxsCbHIYZiLyhY05TY0ZLIOQrGaSJDDN4t8pVaIrsqqFdEegtizc1iTew5Q4ayBDMUsQMkXocaYkc0hZua412siZ1rSXlR460zRJ5SlHGe5j801RLMlJTxtaOM3Q1pvxJ45zUlWFD7rsAbpfEm1JHxG0eh8w2R7QQVzBUw28FhFp5QZzq8t2rx2joqulYTWSuJdTYfWwqMFMcovFmSyJPNyLhE4E10pHzYjOC3huArRa571ZsGajQpQx38SBP5pyZB6lMU3khDnp0MBV51BE9o2E+TY5Ml2E8S7C0o6w1xvCZjf0HkVEHCzFoyNmqC+9wdcqN+Tp7jSDheE9ws8Y5V0NJCn2bk2tqSY4okdrEhx1iDN8cSudwepWmAGXKcJXK65H9to8jYQRH7SBF01ESUJdd0TayVInaWhLkOjlXE5irKGOnI6GSWGCJa482zBI9rCr0jyTVcEuzriC1vcr6mwFGSiqy5zMwxBH/TJHwjSPhL8+01kaaSUuMFKTcLEvaUePcrSmwn8DZrgikWb7CGPxkSjhQwrRk57tctmxLsb9sZvL9LSlyuSLlWkqOjwduo8b6Uv1DkmudIeFF2dHCgxVtk8dpIvHpBxhEOdhKk7OLIUSdJ+cSRY57B+0DgGUUlNfpthTfGkauzxrvTsUUaCVhlKeteTXCoJDCa2NOKhOmC4G1H8JBd4OBZReSRGkqcb/CO1PyLJTLB4j1q8JYaIutEjSLX8YKM+a6phdMsdLFUoV5RTm9JSkuDN8WcIon0NZMNZWh1q8C7SJEwV5HxrmnnTrf3KoJBlmCYI2ilSLlfEvlE4011NNgjgthzEua0oKK7JLE7HZHlEl60BLMVFewg4EWNt0ThrVNEVkkiTwpKXSWJzdRENgvKGq4IhjsiezgSFtsfCUq8qki5S1LRQeYQQ4nemmCkImWMw3tFUoUBZk4NOeZYEp4XRKTGa6wJjrWNHBVJR4m3FCnbuD6aak2WsMTh3SZImGCIPKNgsDpVwnsa70K31lCFJZYcwwSMFcQulGTsZuEaSdBXkPGZhu0FsdUO73RHjq8MPGGIfaGIbVTk6iuI3GFgucHrIQkmWSJdBd7BBu+uOryWAhY7+Lki9rK5wtEQzWwvtbqGhIMFwWRJsElsY4m9IIg9L6lCX0VklaPAYkfkZEGDnOWowlBJjtMUkcGK4Lg6EtoZInMUBVYLgn0UsdmCyCz7gIGHFfk+k1QwTh5We7A9x+IdJ6CvIkEagms0hR50eH9UnTQJ+2oiKyVlLFUE+8gBGu8MQ3CppUHesnjTHN4QB/UGPhCTHLFPHMFrCqa73gqObUJGa03wgbhHkrCfpEpzNLE7JDS25FMKhlhKKWKfCgqstLCPu1zBXy0J2ztwjtixBu8UTRn9LVtkmCN2iyFhtME70JHRQ1KVZXqKI/KNIKYMCYs1GUMEKbM1bKOI9LDXC7zbHS+bt+1MTWS9odA9DtrYtpbImQJ2VHh/lisEwaHqUk1kjKTAKknkBEXkbkdMGwq0dnhzLJF3NJH3JVwrqOB4Sca2hti75nmJN0WzxS6UxDYoEpxpa4htVlRjkYE7DZGzJVU72uC9IyhQL4i8YfGWSYLLNcHXloyz7QhNifmKSE9JgfGmuyLhc403Xm9vqcp6gXe3xuuv8F6VJNxkyTHEkHG2g0aKXL0MsXc1bGfgas2//dCONXiNLCX+5mB7eZIl1kHh7ajwpikyzlUUWOVOsjSQlsS+M0R+pPje/dzBXRZGO0rMtgQrLLG9VSu9n6CMXS3BhwYmSoIBhsjNBmZbgusE9BCPCP5triU4VhNbJfE+swSP27aayE8tuTpYYjtrYjMVGZdp2NpS1s6aBnKSHDsbKuplKbHM4a0wMFd/5/DmGyKrJSUaW4IBrqUhx0vyfzTBBLPIUcnZdrAkNsKR0sWRspumSns6Ch0v/qqIbBYUWKvPU/CFoyrDJGwSNFhbA/MlzKqjrO80hRbpKx0Jewsi/STftwGSlKc1JZyAzx05dhLEdnfQvhZOqiHWWEAHC7+30FuRcZUgaO5gpaIK+xsiHRUsqaPElTV40xQZQ107Q9BZE1nryDVGU9ZSQ47bmhBpLcYpUt7S+xuK/FiT8qKjwXYw5ypS2iuCv7q1gtgjhuBuB8LCFY5cUuCNtsQOFcT+4Ih9JX+k8Ea6v0iCIRZOtCT0Et00JW5UeC85Cg0ScK0k411HcG1zKtre3SeITBRk7WfwDhEvaYLTHP9le0m8By0JDwn4TlLW/aJOvGHxdjYUes+ScZigCkYQdNdEOhkiezgShqkx8ueKjI8lDfK2oNiOFvrZH1hS+tk7NV7nOmLHicGWEgubkXKdwdtZknCLJXaCpkrjZBtLZFsDP9CdxWsSr05Sxl6CMmoFbCOgryX40uDtamB7SVmXW4Ihlgpmq+00tBKUUa83WbjLUNkzDmY7cow1JDygyPGlhgGKYKz4vcV7QBNbJIgM11TUqZaMdwTeSguH6rOaw1JRKzaaGyxVm2EJ/uCIrVWUcZUkcp2grMsEjK+DMwS59jQk3Kd6SEq1d0S6uVmO4Bc1lDXTUcHjluCXEq+1OlBDj1pi9zgiXxnKuE0SqTXwhqbETW6RggMEnGl/q49UT2iCzgJvRwVXS2K/d6+ZkyUl7jawSVLit46EwxVljDZwoSQ20sDBihztHfk2yA8NVZghiXwrYHQdfKAOtzsayjhY9bY0yE2CWEeJ9xfzO423xhL5syS2TFJofO2pboHob0nY4GiAgRrvGQEDa/FWSsoaaYl0syRsEt3kWoH3B01shCXhTUWe9w3Bt44SC9QCh3eShQctwbaK2ApLroGCMlZrYqvlY3qYhM0aXpFkPOuoqJ3Dm6fxXrGwVF9gCWZagjPqznfkuMKQ8DPTQRO8ZqG1hPGKEm9IgpGW4DZDgTNriTxvFiq+Lz+0cKfp4wj6OCK9JSnzNSn9LFU7UhKZZMnYwcJ8s8yRsECScK4j5UOB95HFO0CzhY4xJxuCix0lDlEUeMdS6EZBkTsUkZ4K74dugyTXS7aNgL8aqjDfkCE0ZbwkCXpaWCKhl8P7VD5jxykivSyxyZrYERbe168LYu9ZYh86IkscgVLE7tWPKmJv11CgoyJltMEbrohtVAQfO4ImltiHEroYEs7RxAarVpY8AwXMcMReFOTYWe5iiLRQxJ5Q8DtJ8LQhWOhIeFESPGsILhbNDRljNbHzNRlTFbk2S3L0NOS6V1KFJYKUbSTcIIhM0wQ/s2TM0SRMNcQmSap3jCH4yhJZKSkwyRHpYYgsFeQ4U7xoCB7VVOExhXepo9ABBsYbvGWKXPME3lyH95YioZ0gssQRWWbI+FaSMkXijZXwgiTlYdPdkNLaETxlyDVIwqeaEus0aTcYcg0RVOkpR3CSJqIddK+90JCxzsDVloyrFd5ZAr4TBKfaWa6boEA7C7s6EpYaeFPjveooY72mjIccLHJ9HUwVlDhKkmutJDJBwnp1rvulJZggKDRfbXAkvC/4l3ozQOG9a8lxjx0i7nV4jSXc7vhe3OwIxjgSHjdEhhsif9YkPGlus3iLFDnWOFhtCZbJg0UbQcIaR67JjthoCyMEZRwhiXWyxO5QxI6w5NhT4U1WsJvDO60J34fW9hwzwlKij6ZAW9ne4L0s8C6XeBMEkd/LQy1VucBRot6QMlbivaBhoBgjqGiCJNhsqVp/S2SsG6DIONCR0dXhvWbJ+MRRZJkkuEjgDXJjFQW6SSL7GXK8Z2CZg7cVsbWGoKmEpzQ5elpiy8Ryg7dMkLLUEauzeO86CuwlSOlgYLojZWeJ9xM3S1PWfEfKl5ISLQ0MEKR8YOB2QfCxJBjrKPCN4f9MkaSsqoVXJBmP7EpFZ9UQfOoOFwSzBN4MQ8LsGrymlipcJQhmy0GaQjPqCHaXRwuCZwRbqK2Fg9wlClZqYicrIgMdZfxTQ0c7TBIbrChxmuzoKG8XRaSrIhhiyNFJkrC7oIAWMEOQa5aBekPCRknCo4IKPrYkvCDI8aYmY7WFtprgekcJZ3oLIqssCSMtFbQTJKwXYy3BY5oCh2iKPCpJOE+zRdpYgi6O2KmOAgvVCYaU4ySRek1sgyFhJ403QFHiVEmJHwtybO1gs8Hr5+BETQX3War0qZngYGgtVZtoqd6vFSk/UwdZElYqyjrF4HXUeFspIi9IGKf4j92pKGAdCYMVsbcV3kRF0N+R8LUd5PCsIGWoxDtBkCI0nKofdJQxT+LtZflvuc8Q3CjwWkq8KwUpHzkK/NmSsclCL0nseQdj5FRH5CNHSgtLiW80Of5HU9Hhlsga9bnBq3fEVltKfO5IaSTmGjjc4J0otcP7QsJUSQM8pEj5/wCuUuC2DWz8AAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace-ambiance .ace_indent-guide {\\\nbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQUFD4z6Crq/sfAAuYAuYl+7lfAAAAAElFTkSuQmCC\\\") right repeat-y;\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-chaos.js",
    "content": "ace.define(\"ace/theme/chaos\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = true;\nexports.cssClass = \"ace-chaos\";\nexports.cssText = \".ace-chaos .ace_gutter {\\\nbackground: #141414;\\\ncolor: #595959;\\\nborder-right: 1px solid #282828;\\\n}\\\n.ace-chaos .ace_gutter-cell.ace_warning {\\\nbackground-image: none;\\\nbackground: #FC0;\\\nborder-left: none;\\\npadding-left: 0;\\\ncolor: #000;\\\n}\\\n.ace-chaos .ace_gutter-cell.ace_error {\\\nbackground-position: -6px center;\\\nbackground-image: none;\\\nbackground: #F10;\\\nborder-left: none;\\\npadding-left: 0;\\\ncolor: #000;\\\n}\\\n.ace-chaos .ace_print-margin {\\\nborder-left: 1px solid #555;\\\nright: 0;\\\nbackground: #1D1D1D;\\\n}\\\n.ace-chaos {\\\nbackground-color: #161616;\\\ncolor: #E6E1DC;\\\n}\\\n.ace-chaos .ace_cursor {\\\nborder-left: 2px solid #FFFFFF;\\\n}\\\n.ace-chaos .ace_cursor.ace_overwrite {\\\nborder-left: 0px;\\\nborder-bottom: 1px solid #FFFFFF;\\\n}\\\n.ace-chaos .ace_marker-layer .ace_selection {\\\nbackground: #494836;\\\n}\\\n.ace-chaos .ace_marker-layer .ace_step {\\\nbackground: rgb(198, 219, 174);\\\n}\\\n.ace-chaos .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid #FCE94F;\\\n}\\\n.ace-chaos .ace_marker-layer .ace_active-line {\\\nbackground: #333;\\\n}\\\n.ace-chaos .ace_gutter-active-line {\\\nbackground-color: #222;\\\n}\\\n.ace-chaos .ace_invisible {\\\ncolor: #404040;\\\n}\\\n.ace-chaos .ace_keyword {\\\ncolor:#00698F;\\\n}\\\n.ace-chaos .ace_keyword.ace_operator {\\\ncolor:#FF308F;\\\n}\\\n.ace-chaos .ace_constant {\\\ncolor:#1EDAFB;\\\n}\\\n.ace-chaos .ace_constant.ace_language {\\\ncolor:#FDC251;\\\n}\\\n.ace-chaos .ace_constant.ace_library {\\\ncolor:#8DFF0A;\\\n}\\\n.ace-chaos .ace_constant.ace_numeric {\\\ncolor:#58C554;\\\n}\\\n.ace-chaos .ace_invalid {\\\ncolor:#FFFFFF;\\\nbackground-color:#990000;\\\n}\\\n.ace-chaos .ace_invalid.ace_deprecated {\\\ncolor:#FFFFFF;\\\nbackground-color:#990000;\\\n}\\\n.ace-chaos .ace_support {\\\ncolor: #999;\\\n}\\\n.ace-chaos .ace_support.ace_function {\\\ncolor:#00AEEF;\\\n}\\\n.ace-chaos .ace_function {\\\ncolor:#00AEEF;\\\n}\\\n.ace-chaos .ace_string {\\\ncolor:#58C554;\\\n}\\\n.ace-chaos .ace_comment {\\\ncolor:#555;\\\nfont-style:italic;\\\npadding-bottom: 0px;\\\n}\\\n.ace-chaos .ace_variable {\\\ncolor:#997744;\\\n}\\\n.ace-chaos .ace_meta.ace_tag {\\\ncolor:#BE53E6;\\\n}\\\n.ace-chaos .ace_entity.ace_other.ace_attribute-name {\\\ncolor:#FFFF89;\\\n}\\\n.ace-chaos .ace_markup.ace_underline {\\\ntext-decoration: underline;\\\n}\\\n.ace-chaos .ace_fold-widget {\\\ntext-align: center;\\\n}\\\n.ace-chaos .ace_fold-widget:hover {\\\ncolor: #777;\\\n}\\\n.ace-chaos .ace_fold-widget.ace_start,\\\n.ace-chaos .ace_fold-widget.ace_end,\\\n.ace-chaos .ace_fold-widget.ace_closed{\\\nbackground: none;\\\nborder: none;\\\nbox-shadow: none;\\\n}\\\n.ace-chaos .ace_fold-widget.ace_start:after {\\\ncontent: '▾'\\\n}\\\n.ace-chaos .ace_fold-widget.ace_end:after {\\\ncontent: '▴'\\\n}\\\n.ace-chaos .ace_fold-widget.ace_closed:after {\\\ncontent: '‣'\\\n}\\\n.ace-chaos .ace_indent-guide {\\\nborder-right:1px dotted #333;\\\nmargin-right:-1px;\\\n}\\\n.ace-chaos .ace_fold { \\\nbackground: #222; \\\nborder-radius: 3px; \\\ncolor: #7AF; \\\nborder: none; \\\n}\\\n.ace-chaos .ace_fold:hover {\\\nbackground: #CCC; \\\ncolor: #000;\\\n}\\\n\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-chrome.js",
    "content": "ace.define(\"ace/theme/chrome\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = false;\nexports.cssClass = \"ace-chrome\";\nexports.cssText = \".ace-chrome .ace_gutter {\\\nbackground: #ebebeb;\\\ncolor: #333;\\\noverflow : hidden;\\\n}\\\n.ace-chrome .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8;\\\n}\\\n.ace-chrome {\\\nbackground-color: #FFFFFF;\\\ncolor: black;\\\n}\\\n.ace-chrome .ace_cursor {\\\ncolor: black;\\\n}\\\n.ace-chrome .ace_invisible {\\\ncolor: rgb(191, 191, 191);\\\n}\\\n.ace-chrome .ace_constant.ace_buildin {\\\ncolor: rgb(88, 72, 246);\\\n}\\\n.ace-chrome .ace_constant.ace_language {\\\ncolor: rgb(88, 92, 246);\\\n}\\\n.ace-chrome .ace_constant.ace_library {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-chrome .ace_invalid {\\\nbackground-color: rgb(153, 0, 0);\\\ncolor: white;\\\n}\\\n.ace-chrome .ace_fold {\\\n}\\\n.ace-chrome .ace_support.ace_function {\\\ncolor: rgb(60, 76, 114);\\\n}\\\n.ace-chrome .ace_support.ace_constant {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-chrome .ace_support.ace_type,\\\n.ace-chrome .ace_support.ace_class\\\n.ace-chrome .ace_support.ace_other {\\\ncolor: rgb(109, 121, 222);\\\n}\\\n.ace-chrome .ace_variable.ace_parameter {\\\nfont-style:italic;\\\ncolor:#FD971F;\\\n}\\\n.ace-chrome .ace_keyword.ace_operator {\\\ncolor: rgb(104, 118, 135);\\\n}\\\n.ace-chrome .ace_comment {\\\ncolor: #236e24;\\\n}\\\n.ace-chrome .ace_comment.ace_doc {\\\ncolor: #236e24;\\\n}\\\n.ace-chrome .ace_comment.ace_doc.ace_tag {\\\ncolor: #236e24;\\\n}\\\n.ace-chrome .ace_constant.ace_numeric {\\\ncolor: rgb(0, 0, 205);\\\n}\\\n.ace-chrome .ace_variable {\\\ncolor: rgb(49, 132, 149);\\\n}\\\n.ace-chrome .ace_xml-pe {\\\ncolor: rgb(104, 104, 91);\\\n}\\\n.ace-chrome .ace_entity.ace_name.ace_function {\\\ncolor: #0000A2;\\\n}\\\n.ace-chrome .ace_heading {\\\ncolor: rgb(12, 7, 255);\\\n}\\\n.ace-chrome .ace_list {\\\ncolor:rgb(185, 6, 144);\\\n}\\\n.ace-chrome .ace_marker-layer .ace_selection {\\\nbackground: rgb(181, 213, 255);\\\n}\\\n.ace-chrome .ace_marker-layer .ace_step {\\\nbackground: rgb(252, 255, 0);\\\n}\\\n.ace-chrome .ace_marker-layer .ace_stack {\\\nbackground: rgb(164, 229, 101);\\\n}\\\n.ace-chrome .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgb(192, 192, 192);\\\n}\\\n.ace-chrome .ace_marker-layer .ace_active-line {\\\nbackground: rgba(0, 0, 0, 0.07);\\\n}\\\n.ace-chrome .ace_gutter-active-line {\\\nbackground-color : #dcdcdc;\\\n}\\\n.ace-chrome .ace_marker-layer .ace_selected-word {\\\nbackground: rgb(250, 250, 255);\\\nborder: 1px solid rgb(200, 200, 250);\\\n}\\\n.ace-chrome .ace_storage,\\\n.ace-chrome .ace_keyword,\\\n.ace-chrome .ace_meta.ace_tag {\\\ncolor: rgb(147, 15, 128);\\\n}\\\n.ace-chrome .ace_string.ace_regex {\\\ncolor: rgb(255, 0, 0)\\\n}\\\n.ace-chrome .ace_string {\\\ncolor: #1A1AA6;\\\n}\\\n.ace-chrome .ace_entity.ace_other.ace_attribute-name {\\\ncolor: #994409;\\\n}\\\n.ace-chrome .ace_indent-guide {\\\nbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\\n}\\\n\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-clouds.js",
    "content": "ace.define(\"ace/theme/clouds\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = false;\nexports.cssClass = \"ace-clouds\";\nexports.cssText = \".ace-clouds .ace_gutter {\\\nbackground: #ebebeb;\\\ncolor: #333\\\n}\\\n.ace-clouds .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8\\\n}\\\n.ace-clouds {\\\nbackground-color: #FFFFFF;\\\ncolor: #000000\\\n}\\\n.ace-clouds .ace_cursor {\\\ncolor: #000000\\\n}\\\n.ace-clouds .ace_marker-layer .ace_selection {\\\nbackground: #BDD5FC\\\n}\\\n.ace-clouds.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #FFFFFF;\\\n}\\\n.ace-clouds .ace_marker-layer .ace_step {\\\nbackground: rgb(255, 255, 0)\\\n}\\\n.ace-clouds .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid #BFBFBF\\\n}\\\n.ace-clouds .ace_marker-layer .ace_active-line {\\\nbackground: #FFFBD1\\\n}\\\n.ace-clouds .ace_gutter-active-line {\\\nbackground-color : #dcdcdc\\\n}\\\n.ace-clouds .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid #BDD5FC\\\n}\\\n.ace-clouds .ace_invisible {\\\ncolor: #BFBFBF\\\n}\\\n.ace-clouds .ace_keyword,\\\n.ace-clouds .ace_meta,\\\n.ace-clouds .ace_support.ace_constant.ace_property-value {\\\ncolor: #AF956F\\\n}\\\n.ace-clouds .ace_keyword.ace_operator {\\\ncolor: #484848\\\n}\\\n.ace-clouds .ace_keyword.ace_other.ace_unit {\\\ncolor: #96DC5F\\\n}\\\n.ace-clouds .ace_constant.ace_language {\\\ncolor: #39946A\\\n}\\\n.ace-clouds .ace_constant.ace_numeric {\\\ncolor: #46A609\\\n}\\\n.ace-clouds .ace_constant.ace_character.ace_entity {\\\ncolor: #BF78CC\\\n}\\\n.ace-clouds .ace_invalid {\\\nbackground-color: #FF002A\\\n}\\\n.ace-clouds .ace_fold {\\\nbackground-color: #AF956F;\\\nborder-color: #000000\\\n}\\\n.ace-clouds .ace_storage,\\\n.ace-clouds .ace_support.ace_class,\\\n.ace-clouds .ace_support.ace_function,\\\n.ace-clouds .ace_support.ace_other,\\\n.ace-clouds .ace_support.ace_type {\\\ncolor: #C52727\\\n}\\\n.ace-clouds .ace_string {\\\ncolor: #5D90CD\\\n}\\\n.ace-clouds .ace_comment {\\\ncolor: #BCC8BA\\\n}\\\n.ace-clouds .ace_entity.ace_name.ace_tag,\\\n.ace-clouds .ace_entity.ace_other.ace_attribute-name {\\\ncolor: #606060\\\n}\\\n.ace-clouds .ace_indent-guide {\\\nbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-clouds_midnight.js",
    "content": "ace.define(\"ace/theme/clouds_midnight\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = true;\nexports.cssClass = \"ace-clouds-midnight\";\nexports.cssText = \".ace-clouds-midnight .ace_gutter {\\\nbackground: #232323;\\\ncolor: #929292\\\n}\\\n.ace-clouds-midnight .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #232323\\\n}\\\n.ace-clouds-midnight {\\\nbackground-color: #191919;\\\ncolor: #929292\\\n}\\\n.ace-clouds-midnight .ace_cursor {\\\ncolor: #7DA5DC\\\n}\\\n.ace-clouds-midnight .ace_marker-layer .ace_selection {\\\nbackground: #000000\\\n}\\\n.ace-clouds-midnight.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #191919;\\\n}\\\n.ace-clouds-midnight .ace_marker-layer .ace_step {\\\nbackground: rgb(102, 82, 0)\\\n}\\\n.ace-clouds-midnight .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid #BFBFBF\\\n}\\\n.ace-clouds-midnight .ace_marker-layer .ace_active-line {\\\nbackground: rgba(215, 215, 215, 0.031)\\\n}\\\n.ace-clouds-midnight .ace_gutter-active-line {\\\nbackground-color: rgba(215, 215, 215, 0.031)\\\n}\\\n.ace-clouds-midnight .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid #000000\\\n}\\\n.ace-clouds-midnight .ace_invisible {\\\ncolor: #666\\\n}\\\n.ace-clouds-midnight .ace_keyword,\\\n.ace-clouds-midnight .ace_meta,\\\n.ace-clouds-midnight .ace_support.ace_constant.ace_property-value {\\\ncolor: #927C5D\\\n}\\\n.ace-clouds-midnight .ace_keyword.ace_operator {\\\ncolor: #4B4B4B\\\n}\\\n.ace-clouds-midnight .ace_keyword.ace_other.ace_unit {\\\ncolor: #366F1A\\\n}\\\n.ace-clouds-midnight .ace_constant.ace_language {\\\ncolor: #39946A\\\n}\\\n.ace-clouds-midnight .ace_constant.ace_numeric {\\\ncolor: #46A609\\\n}\\\n.ace-clouds-midnight .ace_constant.ace_character.ace_entity {\\\ncolor: #A165AC\\\n}\\\n.ace-clouds-midnight .ace_invalid {\\\ncolor: #FFFFFF;\\\nbackground-color: #E92E2E\\\n}\\\n.ace-clouds-midnight .ace_fold {\\\nbackground-color: #927C5D;\\\nborder-color: #929292\\\n}\\\n.ace-clouds-midnight .ace_storage,\\\n.ace-clouds-midnight .ace_support.ace_class,\\\n.ace-clouds-midnight .ace_support.ace_function,\\\n.ace-clouds-midnight .ace_support.ace_other,\\\n.ace-clouds-midnight .ace_support.ace_type {\\\ncolor: #E92E2E\\\n}\\\n.ace-clouds-midnight .ace_string {\\\ncolor: #5D90CD\\\n}\\\n.ace-clouds-midnight .ace_comment {\\\ncolor: #3C403B\\\n}\\\n.ace-clouds-midnight .ace_entity.ace_name.ace_tag,\\\n.ace-clouds-midnight .ace_entity.ace_other.ace_attribute-name {\\\ncolor: #606060\\\n}\\\n.ace-clouds-midnight .ace_indent-guide {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHB3d/8PAAOIAdULw8qMAAAAAElFTkSuQmCC) right repeat-y\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-cobalt.js",
    "content": "ace.define(\"ace/theme/cobalt\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = true;\nexports.cssClass = \"ace-cobalt\";\nexports.cssText = \".ace-cobalt .ace_gutter {\\\nbackground: #011e3a;\\\ncolor: rgb(128,145,160)\\\n}\\\n.ace-cobalt .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #555555\\\n}\\\n.ace-cobalt {\\\nbackground-color: #002240;\\\ncolor: #FFFFFF\\\n}\\\n.ace-cobalt .ace_cursor {\\\ncolor: #FFFFFF\\\n}\\\n.ace-cobalt .ace_marker-layer .ace_selection {\\\nbackground: rgba(179, 101, 57, 0.75)\\\n}\\\n.ace-cobalt.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #002240;\\\n}\\\n.ace-cobalt .ace_marker-layer .ace_step {\\\nbackground: rgb(127, 111, 19)\\\n}\\\n.ace-cobalt .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgba(255, 255, 255, 0.15)\\\n}\\\n.ace-cobalt .ace_marker-layer .ace_active-line {\\\nbackground: rgba(0, 0, 0, 0.35)\\\n}\\\n.ace-cobalt .ace_gutter-active-line {\\\nbackground-color: rgba(0, 0, 0, 0.35)\\\n}\\\n.ace-cobalt .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid rgba(179, 101, 57, 0.75)\\\n}\\\n.ace-cobalt .ace_invisible {\\\ncolor: rgba(255, 255, 255, 0.15)\\\n}\\\n.ace-cobalt .ace_keyword,\\\n.ace-cobalt .ace_meta {\\\ncolor: #FF9D00\\\n}\\\n.ace-cobalt .ace_constant,\\\n.ace-cobalt .ace_constant.ace_character,\\\n.ace-cobalt .ace_constant.ace_character.ace_escape,\\\n.ace-cobalt .ace_constant.ace_other {\\\ncolor: #FF628C\\\n}\\\n.ace-cobalt .ace_invalid {\\\ncolor: #F8F8F8;\\\nbackground-color: #800F00\\\n}\\\n.ace-cobalt .ace_support {\\\ncolor: #80FFBB\\\n}\\\n.ace-cobalt .ace_support.ace_constant {\\\ncolor: #EB939A\\\n}\\\n.ace-cobalt .ace_fold {\\\nbackground-color: #FF9D00;\\\nborder-color: #FFFFFF\\\n}\\\n.ace-cobalt .ace_support.ace_function {\\\ncolor: #FFB054\\\n}\\\n.ace-cobalt .ace_storage {\\\ncolor: #FFEE80\\\n}\\\n.ace-cobalt .ace_entity {\\\ncolor: #FFDD00\\\n}\\\n.ace-cobalt .ace_string {\\\ncolor: #3AD900\\\n}\\\n.ace-cobalt .ace_string.ace_regexp {\\\ncolor: #80FFC2\\\n}\\\n.ace-cobalt .ace_comment {\\\nfont-style: italic;\\\ncolor: #0088FF\\\n}\\\n.ace-cobalt .ace_heading,\\\n.ace-cobalt .ace_markup.ace_heading {\\\ncolor: #C8E4FD;\\\nbackground-color: #001221\\\n}\\\n.ace-cobalt .ace_list,\\\n.ace-cobalt .ace_markup.ace_list {\\\nbackground-color: #130D26\\\n}\\\n.ace-cobalt .ace_variable {\\\ncolor: #CCCCCC\\\n}\\\n.ace-cobalt .ace_variable.ace_language {\\\ncolor: #FF80E1\\\n}\\\n.ace-cobalt .ace_meta.ace_tag {\\\ncolor: #9EFFFF\\\n}\\\n.ace-cobalt .ace_indent-guide {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHCLSvkPAAP3AgSDTRd4AAAAAElFTkSuQmCC) right repeat-y\\\n}\\\n\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-crimson_editor.js",
    "content": "ace.define(\"ace/theme/crimson_editor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\nexports.isDark = false;\nexports.cssText = \".ace-crimson-editor .ace_gutter {\\\nbackground: #ebebeb;\\\ncolor: #333;\\\noverflow : hidden;\\\n}\\\n.ace-crimson-editor .ace_gutter-layer {\\\nwidth: 100%;\\\ntext-align: right;\\\n}\\\n.ace-crimson-editor .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8;\\\n}\\\n.ace-crimson-editor {\\\nbackground-color: #FFFFFF;\\\ncolor: rgb(64, 64, 64);\\\n}\\\n.ace-crimson-editor .ace_cursor {\\\ncolor: black;\\\n}\\\n.ace-crimson-editor .ace_invisible {\\\ncolor: rgb(191, 191, 191);\\\n}\\\n.ace-crimson-editor .ace_identifier {\\\ncolor: black;\\\n}\\\n.ace-crimson-editor .ace_keyword {\\\ncolor: blue;\\\n}\\\n.ace-crimson-editor .ace_constant.ace_buildin {\\\ncolor: rgb(88, 72, 246);\\\n}\\\n.ace-crimson-editor .ace_constant.ace_language {\\\ncolor: rgb(255, 156, 0);\\\n}\\\n.ace-crimson-editor .ace_constant.ace_library {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-crimson-editor .ace_invalid {\\\ntext-decoration: line-through;\\\ncolor: rgb(224, 0, 0);\\\n}\\\n.ace-crimson-editor .ace_fold {\\\n}\\\n.ace-crimson-editor .ace_support.ace_function {\\\ncolor: rgb(192, 0, 0);\\\n}\\\n.ace-crimson-editor .ace_support.ace_constant {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-crimson-editor .ace_support.ace_type,\\\n.ace-crimson-editor .ace_support.ace_class {\\\ncolor: rgb(109, 121, 222);\\\n}\\\n.ace-crimson-editor .ace_keyword.ace_operator {\\\ncolor: rgb(49, 132, 149);\\\n}\\\n.ace-crimson-editor .ace_string {\\\ncolor: rgb(128, 0, 128);\\\n}\\\n.ace-crimson-editor .ace_comment {\\\ncolor: rgb(76, 136, 107);\\\n}\\\n.ace-crimson-editor .ace_comment.ace_doc {\\\ncolor: rgb(0, 102, 255);\\\n}\\\n.ace-crimson-editor .ace_comment.ace_doc.ace_tag {\\\ncolor: rgb(128, 159, 191);\\\n}\\\n.ace-crimson-editor .ace_constant.ace_numeric {\\\ncolor: rgb(0, 0, 64);\\\n}\\\n.ace-crimson-editor .ace_variable {\\\ncolor: rgb(0, 64, 128);\\\n}\\\n.ace-crimson-editor .ace_xml-pe {\\\ncolor: rgb(104, 104, 91);\\\n}\\\n.ace-crimson-editor .ace_marker-layer .ace_selection {\\\nbackground: rgb(181, 213, 255);\\\n}\\\n.ace-crimson-editor .ace_marker-layer .ace_step {\\\nbackground: rgb(252, 255, 0);\\\n}\\\n.ace-crimson-editor .ace_marker-layer .ace_stack {\\\nbackground: rgb(164, 229, 101);\\\n}\\\n.ace-crimson-editor .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgb(192, 192, 192);\\\n}\\\n.ace-crimson-editor .ace_marker-layer .ace_active-line {\\\nbackground: rgb(232, 242, 254);\\\n}\\\n.ace-crimson-editor .ace_gutter-active-line {\\\nbackground-color : #dcdcdc;\\\n}\\\n.ace-crimson-editor .ace_meta.ace_tag {\\\ncolor:rgb(28, 2, 255);\\\n}\\\n.ace-crimson-editor .ace_marker-layer .ace_selected-word {\\\nbackground: rgb(250, 250, 255);\\\nborder: 1px solid rgb(200, 200, 250);\\\n}\\\n.ace-crimson-editor .ace_string.ace_regex {\\\ncolor: rgb(192, 0, 192);\\\n}\\\n.ace-crimson-editor .ace_indent-guide {\\\nbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\\n}\";\n\nexports.cssClass = \"ace-crimson-editor\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-dawn.js",
    "content": "ace.define(\"ace/theme/dawn\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = false;\nexports.cssClass = \"ace-dawn\";\nexports.cssText = \".ace-dawn .ace_gutter {\\\nbackground: #ebebeb;\\\ncolor: #333\\\n}\\\n.ace-dawn .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8\\\n}\\\n.ace-dawn {\\\nbackground-color: #F9F9F9;\\\ncolor: #080808\\\n}\\\n.ace-dawn .ace_cursor {\\\ncolor: #000000\\\n}\\\n.ace-dawn .ace_marker-layer .ace_selection {\\\nbackground: rgba(39, 95, 255, 0.30)\\\n}\\\n.ace-dawn.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #F9F9F9;\\\n}\\\n.ace-dawn .ace_marker-layer .ace_step {\\\nbackground: rgb(255, 255, 0)\\\n}\\\n.ace-dawn .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgba(75, 75, 126, 0.50)\\\n}\\\n.ace-dawn .ace_marker-layer .ace_active-line {\\\nbackground: rgba(36, 99, 180, 0.12)\\\n}\\\n.ace-dawn .ace_gutter-active-line {\\\nbackground-color : #dcdcdc\\\n}\\\n.ace-dawn .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid rgba(39, 95, 255, 0.30)\\\n}\\\n.ace-dawn .ace_invisible {\\\ncolor: rgba(75, 75, 126, 0.50)\\\n}\\\n.ace-dawn .ace_keyword,\\\n.ace-dawn .ace_meta {\\\ncolor: #794938\\\n}\\\n.ace-dawn .ace_constant,\\\n.ace-dawn .ace_constant.ace_character,\\\n.ace-dawn .ace_constant.ace_character.ace_escape,\\\n.ace-dawn .ace_constant.ace_other {\\\ncolor: #811F24\\\n}\\\n.ace-dawn .ace_invalid.ace_illegal {\\\ntext-decoration: underline;\\\nfont-style: italic;\\\ncolor: #F8F8F8;\\\nbackground-color: #B52A1D\\\n}\\\n.ace-dawn .ace_invalid.ace_deprecated {\\\ntext-decoration: underline;\\\nfont-style: italic;\\\ncolor: #B52A1D\\\n}\\\n.ace-dawn .ace_support {\\\ncolor: #691C97\\\n}\\\n.ace-dawn .ace_support.ace_constant {\\\ncolor: #B4371F\\\n}\\\n.ace-dawn .ace_fold {\\\nbackground-color: #794938;\\\nborder-color: #080808\\\n}\\\n.ace-dawn .ace_list,\\\n.ace-dawn .ace_markup.ace_list,\\\n.ace-dawn .ace_support.ace_function {\\\ncolor: #693A17\\\n}\\\n.ace-dawn .ace_storage {\\\nfont-style: italic;\\\ncolor: #A71D5D\\\n}\\\n.ace-dawn .ace_string {\\\ncolor: #0B6125\\\n}\\\n.ace-dawn .ace_string.ace_regexp {\\\ncolor: #CF5628\\\n}\\\n.ace-dawn .ace_comment {\\\nfont-style: italic;\\\ncolor: #5A525F\\\n}\\\n.ace-dawn .ace_heading,\\\n.ace-dawn .ace_markup.ace_heading {\\\ncolor: #19356D\\\n}\\\n.ace-dawn .ace_variable {\\\ncolor: #234A97\\\n}\\\n.ace-dawn .ace_indent-guide {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYLh/5+x/AAizA4hxNNsZAAAAAElFTkSuQmCC) right repeat-y\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-dreamweaver.js",
    "content": "ace.define(\"ace/theme/dreamweaver\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\nexports.isDark = false;\nexports.cssClass = \"ace-dreamweaver\";\nexports.cssText = \".ace-dreamweaver .ace_gutter {\\\nbackground: #e8e8e8;\\\ncolor: #333;\\\n}\\\n.ace-dreamweaver .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8;\\\n}\\\n.ace-dreamweaver {\\\nbackground-color: #FFFFFF;\\\ncolor: black;\\\n}\\\n.ace-dreamweaver .ace_fold {\\\nbackground-color: #757AD8;\\\n}\\\n.ace-dreamweaver .ace_cursor {\\\ncolor: black;\\\n}\\\n.ace-dreamweaver .ace_invisible {\\\ncolor: rgb(191, 191, 191);\\\n}\\\n.ace-dreamweaver .ace_storage,\\\n.ace-dreamweaver .ace_keyword {\\\ncolor: blue;\\\n}\\\n.ace-dreamweaver .ace_constant.ace_buildin {\\\ncolor: rgb(88, 72, 246);\\\n}\\\n.ace-dreamweaver .ace_constant.ace_language {\\\ncolor: rgb(88, 92, 246);\\\n}\\\n.ace-dreamweaver .ace_constant.ace_library {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-dreamweaver .ace_invalid {\\\nbackground-color: rgb(153, 0, 0);\\\ncolor: white;\\\n}\\\n.ace-dreamweaver .ace_support.ace_function {\\\ncolor: rgb(60, 76, 114);\\\n}\\\n.ace-dreamweaver .ace_support.ace_constant {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-dreamweaver .ace_support.ace_type,\\\n.ace-dreamweaver .ace_support.ace_class {\\\ncolor: #009;\\\n}\\\n.ace-dreamweaver .ace_support.ace_php_tag {\\\ncolor: #f00;\\\n}\\\n.ace-dreamweaver .ace_keyword.ace_operator {\\\ncolor: rgb(104, 118, 135);\\\n}\\\n.ace-dreamweaver .ace_string {\\\ncolor: #00F;\\\n}\\\n.ace-dreamweaver .ace_comment {\\\ncolor: rgb(76, 136, 107);\\\n}\\\n.ace-dreamweaver .ace_comment.ace_doc {\\\ncolor: rgb(0, 102, 255);\\\n}\\\n.ace-dreamweaver .ace_comment.ace_doc.ace_tag {\\\ncolor: rgb(128, 159, 191);\\\n}\\\n.ace-dreamweaver .ace_constant.ace_numeric {\\\ncolor: rgb(0, 0, 205);\\\n}\\\n.ace-dreamweaver .ace_variable {\\\ncolor: #06F\\\n}\\\n.ace-dreamweaver .ace_xml-pe {\\\ncolor: rgb(104, 104, 91);\\\n}\\\n.ace-dreamweaver .ace_entity.ace_name.ace_function {\\\ncolor: #00F;\\\n}\\\n.ace-dreamweaver .ace_heading {\\\ncolor: rgb(12, 7, 255);\\\n}\\\n.ace-dreamweaver .ace_list {\\\ncolor:rgb(185, 6, 144);\\\n}\\\n.ace-dreamweaver .ace_marker-layer .ace_selection {\\\nbackground: rgb(181, 213, 255);\\\n}\\\n.ace-dreamweaver .ace_marker-layer .ace_step {\\\nbackground: rgb(252, 255, 0);\\\n}\\\n.ace-dreamweaver .ace_marker-layer .ace_stack {\\\nbackground: rgb(164, 229, 101);\\\n}\\\n.ace-dreamweaver .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgb(192, 192, 192);\\\n}\\\n.ace-dreamweaver .ace_marker-layer .ace_active-line {\\\nbackground: rgba(0, 0, 0, 0.07);\\\n}\\\n.ace-dreamweaver .ace_gutter-active-line {\\\nbackground-color : #DCDCDC;\\\n}\\\n.ace-dreamweaver .ace_marker-layer .ace_selected-word {\\\nbackground: rgb(250, 250, 255);\\\nborder: 1px solid rgb(200, 200, 250);\\\n}\\\n.ace-dreamweaver .ace_meta.ace_tag {\\\ncolor:#009;\\\n}\\\n.ace-dreamweaver .ace_meta.ace_tag.ace_anchor {\\\ncolor:#060;\\\n}\\\n.ace-dreamweaver .ace_meta.ace_tag.ace_form {\\\ncolor:#F90;\\\n}\\\n.ace-dreamweaver .ace_meta.ace_tag.ace_image {\\\ncolor:#909;\\\n}\\\n.ace-dreamweaver .ace_meta.ace_tag.ace_script {\\\ncolor:#900;\\\n}\\\n.ace-dreamweaver .ace_meta.ace_tag.ace_style {\\\ncolor:#909;\\\n}\\\n.ace-dreamweaver .ace_meta.ace_tag.ace_table {\\\ncolor:#099;\\\n}\\\n.ace-dreamweaver .ace_string.ace_regex {\\\ncolor: rgb(255, 0, 0)\\\n}\\\n.ace-dreamweaver .ace_indent-guide {\\\nbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-eclipse.js",
    "content": "ace.define(\"ace/theme/eclipse\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\"use strict\";\n\nexports.isDark = false;\nexports.cssText = \".ace-eclipse .ace_gutter {\\\nbackground: #ebebeb;\\\nborder-right: 1px solid rgb(159, 159, 159);\\\ncolor: rgb(136, 136, 136);\\\n}\\\n.ace-eclipse .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #ebebeb;\\\n}\\\n.ace-eclipse {\\\nbackground-color: #FFFFFF;\\\ncolor: black;\\\n}\\\n.ace-eclipse .ace_fold {\\\nbackground-color: rgb(60, 76, 114);\\\n}\\\n.ace-eclipse .ace_cursor {\\\ncolor: black;\\\n}\\\n.ace-eclipse .ace_storage,\\\n.ace-eclipse .ace_keyword,\\\n.ace-eclipse .ace_variable {\\\ncolor: rgb(127, 0, 85);\\\n}\\\n.ace-eclipse .ace_constant.ace_buildin {\\\ncolor: rgb(88, 72, 246);\\\n}\\\n.ace-eclipse .ace_constant.ace_library {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-eclipse .ace_function {\\\ncolor: rgb(60, 76, 114);\\\n}\\\n.ace-eclipse .ace_string {\\\ncolor: rgb(42, 0, 255);\\\n}\\\n.ace-eclipse .ace_comment {\\\ncolor: rgb(113, 150, 130);\\\n}\\\n.ace-eclipse .ace_comment.ace_doc {\\\ncolor: rgb(63, 95, 191);\\\n}\\\n.ace-eclipse .ace_comment.ace_doc.ace_tag {\\\ncolor: rgb(127, 159, 191);\\\n}\\\n.ace-eclipse .ace_constant.ace_numeric {\\\ncolor: darkblue;\\\n}\\\n.ace-eclipse .ace_tag {\\\ncolor: rgb(25, 118, 116);\\\n}\\\n.ace-eclipse .ace_type {\\\ncolor: rgb(127, 0, 127);\\\n}\\\n.ace-eclipse .ace_xml-pe {\\\ncolor: rgb(104, 104, 91);\\\n}\\\n.ace-eclipse .ace_marker-layer .ace_selection {\\\nbackground: rgb(181, 213, 255);\\\n}\\\n.ace-eclipse .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgb(192, 192, 192);\\\n}\\\n.ace-eclipse .ace_meta.ace_tag {\\\ncolor:rgb(25, 118, 116);\\\n}\\\n.ace-eclipse .ace_invisible {\\\ncolor: #ddd;\\\n}\\\n.ace-eclipse .ace_entity.ace_other.ace_attribute-name {\\\ncolor:rgb(127, 0, 127);\\\n}\\\n.ace-eclipse .ace_marker-layer .ace_step {\\\nbackground: rgb(255, 255, 0);\\\n}\\\n.ace-eclipse .ace_active-line {\\\nbackground: rgb(232, 242, 254);\\\n}\\\n.ace-eclipse .ace_gutter-active-line {\\\nbackground-color : #DADADA;\\\n}\\\n.ace-eclipse .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid rgb(181, 213, 255);\\\n}\\\n.ace-eclipse .ace_indent-guide {\\\nbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\\n}\";\n\nexports.cssClass = \"ace-eclipse\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-github.js",
    "content": "ace.define(\"ace/theme/github\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = false;\nexports.cssClass = \"ace-github\";\nexports.cssText = \"\\\n.ace-github .ace_gutter {\\\nbackground: #e8e8e8;\\\ncolor: #AAA;\\\n}\\\n.ace-github  {\\\nbackground: #fff;\\\ncolor: #000;\\\n}\\\n.ace-github .ace_keyword {\\\nfont-weight: bold;\\\n}\\\n.ace-github .ace_string {\\\ncolor: #D14;\\\n}\\\n.ace-github .ace_variable.ace_class {\\\ncolor: teal;\\\n}\\\n.ace-github .ace_constant.ace_numeric {\\\ncolor: #099;\\\n}\\\n.ace-github .ace_constant.ace_buildin {\\\ncolor: #0086B3;\\\n}\\\n.ace-github .ace_support.ace_function {\\\ncolor: #0086B3;\\\n}\\\n.ace-github .ace_comment {\\\ncolor: #998;\\\nfont-style: italic;\\\n}\\\n.ace-github .ace_variable.ace_language  {\\\ncolor: #0086B3;\\\n}\\\n.ace-github .ace_paren {\\\nfont-weight: bold;\\\n}\\\n.ace-github .ace_boolean {\\\nfont-weight: bold;\\\n}\\\n.ace-github .ace_string.ace_regexp {\\\ncolor: #009926;\\\nfont-weight: normal;\\\n}\\\n.ace-github .ace_variable.ace_instance {\\\ncolor: teal;\\\n}\\\n.ace-github .ace_constant.ace_language {\\\nfont-weight: bold;\\\n}\\\n.ace-github .ace_cursor {\\\ncolor: black;\\\n}\\\n.ace-github.ace_focus .ace_marker-layer .ace_active-line {\\\nbackground: rgb(255, 255, 204);\\\n}\\\n.ace-github .ace_marker-layer .ace_active-line {\\\nbackground: rgb(245, 245, 245);\\\n}\\\n.ace-github .ace_marker-layer .ace_selection {\\\nbackground: rgb(181, 213, 255);\\\n}\\\n.ace-github.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px white;\\\n}\\\n.ace-github.ace_nobold .ace_line > span {\\\nfont-weight: normal !important;\\\n}\\\n.ace-github .ace_marker-layer .ace_step {\\\nbackground: rgb(252, 255, 0);\\\n}\\\n.ace-github .ace_marker-layer .ace_stack {\\\nbackground: rgb(164, 229, 101);\\\n}\\\n.ace-github .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgb(192, 192, 192);\\\n}\\\n.ace-github .ace_gutter-active-line {\\\nbackground-color : rgba(0, 0, 0, 0.07);\\\n}\\\n.ace-github .ace_marker-layer .ace_selected-word {\\\nbackground: rgb(250, 250, 255);\\\nborder: 1px solid rgb(200, 200, 250);\\\n}\\\n.ace-github .ace_invisible {\\\ncolor: #BFBFBF\\\n}\\\n.ace-github .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8;\\\n}\\\n.ace-github .ace_indent-guide {\\\nbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\\n}\";\n\n    var dom = require(\"../lib/dom\");\n    dom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-idle_fingers.js",
    "content": "ace.define(\"ace/theme/idle_fingers\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = true;\nexports.cssClass = \"ace-idle-fingers\";\nexports.cssText = \".ace-idle-fingers .ace_gutter {\\\nbackground: #3b3b3b;\\\ncolor: rgb(153,153,153)\\\n}\\\n.ace-idle-fingers .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #3b3b3b\\\n}\\\n.ace-idle-fingers {\\\nbackground-color: #323232;\\\ncolor: #FFFFFF\\\n}\\\n.ace-idle-fingers .ace_cursor {\\\ncolor: #91FF00\\\n}\\\n.ace-idle-fingers .ace_marker-layer .ace_selection {\\\nbackground: rgba(90, 100, 126, 0.88)\\\n}\\\n.ace-idle-fingers.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #323232;\\\n}\\\n.ace-idle-fingers .ace_marker-layer .ace_step {\\\nbackground: rgb(102, 82, 0)\\\n}\\\n.ace-idle-fingers .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid #404040\\\n}\\\n.ace-idle-fingers .ace_marker-layer .ace_active-line {\\\nbackground: #353637\\\n}\\\n.ace-idle-fingers .ace_gutter-active-line {\\\nbackground-color: #353637\\\n}\\\n.ace-idle-fingers .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid rgba(90, 100, 126, 0.88)\\\n}\\\n.ace-idle-fingers .ace_invisible {\\\ncolor: #404040\\\n}\\\n.ace-idle-fingers .ace_keyword,\\\n.ace-idle-fingers .ace_meta {\\\ncolor: #CC7833\\\n}\\\n.ace-idle-fingers .ace_constant,\\\n.ace-idle-fingers .ace_constant.ace_character,\\\n.ace-idle-fingers .ace_constant.ace_character.ace_escape,\\\n.ace-idle-fingers .ace_constant.ace_other,\\\n.ace-idle-fingers .ace_support.ace_constant {\\\ncolor: #6C99BB\\\n}\\\n.ace-idle-fingers .ace_invalid {\\\ncolor: #FFFFFF;\\\nbackground-color: #FF0000\\\n}\\\n.ace-idle-fingers .ace_fold {\\\nbackground-color: #CC7833;\\\nborder-color: #FFFFFF\\\n}\\\n.ace-idle-fingers .ace_support.ace_function {\\\ncolor: #B83426\\\n}\\\n.ace-idle-fingers .ace_variable.ace_parameter {\\\nfont-style: italic\\\n}\\\n.ace-idle-fingers .ace_string {\\\ncolor: #A5C261\\\n}\\\n.ace-idle-fingers .ace_string.ace_regexp {\\\ncolor: #CCCC33\\\n}\\\n.ace-idle-fingers .ace_comment {\\\nfont-style: italic;\\\ncolor: #BC9458\\\n}\\\n.ace-idle-fingers .ace_meta.ace_tag {\\\ncolor: #FFE5BB\\\n}\\\n.ace-idle-fingers .ace_entity.ace_name {\\\ncolor: #FFC66D\\\n}\\\n.ace-idle-fingers .ace_collab.ace_user1 {\\\ncolor: #323232;\\\nbackground-color: #FFF980\\\n}\\\n.ace-idle-fingers .ace_indent-guide {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMwMjLyZYiPj/8PAAreAwAI1+g0AAAAAElFTkSuQmCC) right repeat-y\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-iplastic.js",
    "content": "ace.define(\"ace/theme/iplastic\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = false;\nexports.cssClass = \"ace-iplastic\";\nexports.cssText = \".ace-iplastic .ace_gutter {\\\nbackground: #dddddd;\\\ncolor: #666666\\\n}\\\n.ace-iplastic .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #bbbbbb\\\n}\\\n.ace-iplastic {\\\nbackground-color: #eeeeee;\\\ncolor: #333333\\\n}\\\n.ace-iplastic .ace_cursor {\\\ncolor: #333\\\n}\\\n.ace-iplastic .ace_marker-layer .ace_selection {\\\nbackground: #BAD6FD;\\\n}\\\n.ace-iplastic.ace_multiselect .ace_selection.ace_start {\\\nborder-radius: 4px\\\n}\\\n.ace-iplastic .ace_marker-layer .ace_step {\\\nbackground: #444444\\\n}\\\n.ace-iplastic .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid #49483E;\\\nbackground: #FFF799\\\n}\\\n.ace-iplastic .ace_marker-layer .ace_active-line {\\\nbackground: #e5e5e5\\\n}\\\n.ace-iplastic .ace_gutter-active-line {\\\nbackground-color: #eeeeee\\\n}\\\n.ace-iplastic .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid #555555;\\\nborder-radius:4px\\\n}\\\n.ace-iplastic .ace_invisible {\\\ncolor: #999999\\\n}\\\n.ace-iplastic .ace_entity.ace_name.ace_tag,\\\n.ace-iplastic .ace_keyword,\\\n.ace-iplastic .ace_meta.ace_tag,\\\n.ace-iplastic .ace_storage {\\\ncolor: #0000FF\\\n}\\\n.ace-iplastic .ace_punctuation,\\\n.ace-iplastic .ace_punctuation.ace_tag {\\\ncolor: #000\\\n}\\\n.ace-iplastic .ace_constant {\\\ncolor: #333333;\\\nfont-weight: 700\\\n}\\\n.ace-iplastic .ace_constant.ace_character,\\\n.ace-iplastic .ace_constant.ace_language,\\\n.ace-iplastic .ace_constant.ace_numeric,\\\n.ace-iplastic .ace_constant.ace_other {\\\ncolor: #0066FF;\\\nfont-weight: 700\\\n}\\\n.ace-iplastic .ace_constant.ace_numeric{\\\nfont-weight: 100\\\n}\\\n.ace-iplastic .ace_invalid {\\\ncolor: #F8F8F0;\\\nbackground-color: #F92672\\\n}\\\n.ace-iplastic .ace_invalid.ace_deprecated {\\\ncolor: #F8F8F0;\\\nbackground-color: #AE81FF\\\n}\\\n.ace-iplastic .ace_support.ace_constant,\\\n.ace-iplastic .ace_support.ace_function {\\\ncolor: #333333;\\\nfont-weight: 700\\\n}\\\n.ace-iplastic .ace_fold {\\\nbackground-color: #464646;\\\nborder-color: #F8F8F2\\\n}\\\n.ace-iplastic .ace_storage.ace_type,\\\n.ace-iplastic .ace_support.ace_class,\\\n.ace-iplastic .ace_support.ace_type {\\\ncolor: #3333fc;\\\nfont-weight: 700\\\n}\\\n.ace-iplastic .ace_entity.ace_name.ace_function,\\\n.ace-iplastic .ace_entity.ace_other,\\\n.ace-iplastic .ace_entity.ace_other.ace_attribute-name,\\\n.ace-iplastic .ace_variable {\\\ncolor: #3366cc;\\\nfont-style: italic\\\n}\\\n.ace-iplastic .ace_variable.ace_parameter {\\\nfont-style: italic;\\\ncolor: #2469E0\\\n}\\\n.ace-iplastic .ace_string {\\\ncolor: #a55f03\\\n}\\\n.ace-iplastic .ace_comment {\\\ncolor: #777777;\\\nfont-style: italic\\\n}\\\n.ace-iplastic .ace_fold-widget {\\\nbackground-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==);\\\n}\\\n.ace-iplastic .ace_indent-guide {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAABlJREFUeNpi+P//PwMzMzPzfwAAAAD//wMAGRsECSML/RIAAAAASUVORK5CYII=) right repeat-y\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-katzenmilch.js",
    "content": "ace.define(\"ace/theme/katzenmilch\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = false;\nexports.cssClass = \"ace-katzenmilch\";\nexports.cssText = \".ace-katzenmilch .ace_gutter,\\\n.ace-katzenmilch .ace_gutter {\\\nbackground: #e8e8e8;\\\ncolor: #333\\\n}\\\n.ace-katzenmilch .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8\\\n}\\\n.ace-katzenmilch {\\\nbackground-color: #f3f2f3;\\\ncolor: rgba(15, 0, 9, 1.0)\\\n}\\\n.ace-katzenmilch .ace_cursor {\\\nborder-left: 2px solid #100011\\\n}\\\n.ace-katzenmilch .ace_overwrite-cursors .ace_cursor {\\\nborder-left: 0px;\\\nborder-bottom: 1px solid #100011\\\n}\\\n.ace-katzenmilch .ace_marker-layer .ace_selection {\\\nbackground: rgba(100, 5, 208, 0.27)\\\n}\\\n.ace-katzenmilch.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #f3f2f3;\\\n}\\\n.ace-katzenmilch .ace_marker-layer .ace_step {\\\nbackground: rgb(198, 219, 174)\\\n}\\\n.ace-katzenmilch .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgba(0, 0, 0, 0.33);\\\n}\\\n.ace-katzenmilch .ace_marker-layer .ace_active-line {\\\nbackground: rgb(232, 242, 254)\\\n}\\\n.ace-katzenmilch .ace_gutter-active-line {\\\nbackground-color: rgb(232, 242, 254)\\\n}\\\n.ace-katzenmilch .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid rgba(100, 5, 208, 0.27)\\\n}\\\n.ace-katzenmilch .ace_invisible {\\\ncolor: #BFBFBF\\\n}\\\n.ace-katzenmilch .ace_fold {\\\nbackground-color: rgba(2, 95, 73, 0.97);\\\nborder-color: rgba(15, 0, 9, 1.0)\\\n}\\\n.ace-katzenmilch .ace_keyword {\\\ncolor: #674Aa8;\\\nrbackground-color: rgba(163, 170, 216, 0.055)\\\n}\\\n.ace-katzenmilch .ace_constant.ace_language {\\\ncolor: #7D7e52;\\\nrbackground-color: rgba(189, 190, 130, 0.059)\\\n}\\\n.ace-katzenmilch .ace_constant.ace_numeric {\\\ncolor: rgba(79, 130, 123, 0.93);\\\nrbackground-color: rgba(119, 194, 187, 0.059)\\\n}\\\n.ace-katzenmilch .ace_constant.ace_character,\\\n.ace-katzenmilch .ace_constant.ace_other {\\\ncolor: rgba(2, 95, 105, 1.0);\\\nrbackground-color: rgba(127, 34, 153, 0.063)\\\n}\\\n.ace-katzenmilch .ace_support.ace_function {\\\ncolor: #9D7e62;\\\nrbackground-color: rgba(189, 190, 130, 0.039)\\\n}\\\n.ace-katzenmilch .ace_support.ace_class {\\\ncolor: rgba(239, 106, 167, 1.0);\\\nrbackground-color: rgba(239, 106, 167, 0.063)\\\n}\\\n.ace-katzenmilch .ace_storage {\\\ncolor: rgba(123, 92, 191, 1.0);\\\nrbackground-color: rgba(139, 93, 223, 0.051)\\\n}\\\n.ace-katzenmilch .ace_invalid {\\\ncolor: #DFDFD5;\\\nrbackground-color: #CC1B27\\\n}\\\n.ace-katzenmilch .ace_string {\\\ncolor: #5a5f9b;\\\nrbackground-color: rgba(170, 175, 219, 0.035)\\\n}\\\n.ace-katzenmilch .ace_comment {\\\nfont-style: italic;\\\ncolor: rgba(64, 79, 80, 0.67);\\\nrbackground-color: rgba(95, 15, 255, 0.0078)\\\n}\\\n.ace-katzenmilch .ace_entity.ace_name.ace_function,\\\n.ace-katzenmilch .ace_variable {\\\ncolor: rgba(2, 95, 73, 0.97);\\\nrbackground-color: rgba(34, 255, 73, 0.12)\\\n}\\\n.ace-katzenmilch .ace_variable.ace_language {\\\ncolor: #316fcf;\\\nrbackground-color: rgba(58, 175, 255, 0.039)\\\n}\\\n.ace-katzenmilch .ace_variable.ace_parameter {\\\nfont-style: italic;\\\ncolor: rgba(51, 150, 159, 0.87);\\\nrbackground-color: rgba(5, 214, 249, 0.043)\\\n}\\\n.ace-katzenmilch .ace_entity.ace_other.ace_attribute-name {\\\ncolor: rgba(73, 70, 194, 0.93);\\\nrbackground-color: rgba(73, 134, 194, 0.035)\\\n}\\\n.ace-katzenmilch .ace_entity.ace_name.ace_tag {\\\ncolor: #3976a2;\\\nrbackground-color: rgba(73, 166, 210, 0.039)\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-kr_theme.js",
    "content": "ace.define(\"ace/theme/kr_theme\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = true;\nexports.cssClass = \"ace-kr-theme\";\nexports.cssText = \".ace-kr-theme .ace_gutter {\\\nbackground: #1c1917;\\\ncolor: #FCFFE0\\\n}\\\n.ace-kr-theme .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #1c1917\\\n}\\\n.ace-kr-theme {\\\nbackground-color: #0B0A09;\\\ncolor: #FCFFE0\\\n}\\\n.ace-kr-theme .ace_cursor {\\\ncolor: #FF9900\\\n}\\\n.ace-kr-theme .ace_marker-layer .ace_selection {\\\nbackground: rgba(170, 0, 255, 0.45)\\\n}\\\n.ace-kr-theme.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #0B0A09;\\\n}\\\n.ace-kr-theme .ace_marker-layer .ace_step {\\\nbackground: rgb(102, 82, 0)\\\n}\\\n.ace-kr-theme .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgba(255, 177, 111, 0.32)\\\n}\\\n.ace-kr-theme .ace_marker-layer .ace_active-line {\\\nbackground: #38403D\\\n}\\\n.ace-kr-theme .ace_gutter-active-line {\\\nbackground-color : #38403D\\\n}\\\n.ace-kr-theme .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid rgba(170, 0, 255, 0.45)\\\n}\\\n.ace-kr-theme .ace_invisible {\\\ncolor: rgba(255, 177, 111, 0.32)\\\n}\\\n.ace-kr-theme .ace_keyword,\\\n.ace-kr-theme .ace_meta {\\\ncolor: #949C8B\\\n}\\\n.ace-kr-theme .ace_constant,\\\n.ace-kr-theme .ace_constant.ace_character,\\\n.ace-kr-theme .ace_constant.ace_character.ace_escape,\\\n.ace-kr-theme .ace_constant.ace_other {\\\ncolor: rgba(210, 117, 24, 0.76)\\\n}\\\n.ace-kr-theme .ace_invalid {\\\ncolor: #F8F8F8;\\\nbackground-color: #A41300\\\n}\\\n.ace-kr-theme .ace_support {\\\ncolor: #9FC28A\\\n}\\\n.ace-kr-theme .ace_support.ace_constant {\\\ncolor: #C27E66\\\n}\\\n.ace-kr-theme .ace_fold {\\\nbackground-color: #949C8B;\\\nborder-color: #FCFFE0\\\n}\\\n.ace-kr-theme .ace_support.ace_function {\\\ncolor: #85873A\\\n}\\\n.ace-kr-theme .ace_storage {\\\ncolor: #FFEE80\\\n}\\\n.ace-kr-theme .ace_string {\\\ncolor: rgba(164, 161, 181, 0.8)\\\n}\\\n.ace-kr-theme .ace_string.ace_regexp {\\\ncolor: rgba(125, 255, 192, 0.65)\\\n}\\\n.ace-kr-theme .ace_comment {\\\nfont-style: italic;\\\ncolor: #706D5B\\\n}\\\n.ace-kr-theme .ace_variable {\\\ncolor: #D1A796\\\n}\\\n.ace-kr-theme .ace_list,\\\n.ace-kr-theme .ace_markup.ace_list {\\\nbackground-color: #0F0040\\\n}\\\n.ace-kr-theme .ace_variable.ace_language {\\\ncolor: #FF80E1\\\n}\\\n.ace-kr-theme .ace_meta.ace_tag {\\\ncolor: #BABD9C\\\n}\\\n.ace-kr-theme .ace_indent-guide {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYFBXV/8PAAJoAXX4kT2EAAAAAElFTkSuQmCC) right repeat-y\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-kuroir.js",
    "content": "ace.define(\"ace/theme/kuroir\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = false;\nexports.cssClass = \"ace-kuroir\";\nexports.cssText = \"\\\n.ace-kuroir .ace_gutter {\\\nbackground: #e8e8e8;\\\ncolor: #333;\\\n}\\\n.ace-kuroir .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8;\\\n}\\\n.ace-kuroir {\\\nbackground-color: #E8E9E8;\\\ncolor: #363636;\\\n}\\\n.ace-kuroir .ace_cursor {\\\ncolor: #202020;\\\n}\\\n.ace-kuroir .ace_marker-layer .ace_selection {\\\nbackground: rgba(245, 170, 0, 0.57);\\\n}\\\n.ace-kuroir.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #E8E9E8;\\\n}\\\n.ace-kuroir .ace_marker-layer .ace_step {\\\nbackground: rgb(198, 219, 174);\\\n}\\\n.ace-kuroir .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgba(0, 0, 0, 0.29);\\\n}\\\n.ace-kuroir .ace_marker-layer .ace_active-line {\\\nbackground: rgba(203, 220, 47, 0.22);\\\n}\\\n.ace-kuroir .ace_gutter-active-line {\\\nbackground-color: rgba(203, 220, 47, 0.22);\\\n}\\\n.ace-kuroir .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid rgba(245, 170, 0, 0.57);\\\n}\\\n.ace-kuroir .ace_invisible {\\\ncolor: #BFBFBF\\\n}\\\n.ace-kuroir .ace_fold {\\\nborder-color: #363636;\\\n}\\\n.ace-kuroir .ace_constant{color:#CD6839;}.ace-kuroir .ace_constant.ace_numeric{color:#9A5925;}.ace-kuroir .ace_support{color:#104E8B;}.ace-kuroir .ace_support.ace_function{color:#005273;}.ace-kuroir .ace_support.ace_constant{color:#CF6A4C;}.ace-kuroir .ace_storage{color:#A52A2A;}.ace-kuroir .ace_invalid.ace_illegal{color:#FD1224;\\\nbackground-color:rgba(255, 6, 0, 0.15);}.ace-kuroir .ace_invalid.ace_deprecated{text-decoration:underline;\\\nfont-style:italic;\\\ncolor:#FD1732;\\\nbackground-color:#E8E9E8;}.ace-kuroir .ace_string{color:#639300;}.ace-kuroir .ace_string.ace_regexp{color:#417E00;\\\nbackground-color:#C9D4BE;}.ace-kuroir .ace_comment{color:rgba(148, 148, 148, 0.91);\\\nbackground-color:rgba(220, 220, 220, 0.56);}.ace-kuroir .ace_variable{color:#009ACD;}.ace-kuroir .ace_meta.ace_tag{color:#005273;}.ace-kuroir .ace_markup.ace_heading{color:#B8012D;\\\nbackground-color:rgba(191, 97, 51, 0.051);}.ace-kuroir .ace_markup.ace_list{color:#8F5B26;}\\\n\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-merbivore.js",
    "content": "ace.define(\"ace/theme/merbivore\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = true;\nexports.cssClass = \"ace-merbivore\";\nexports.cssText = \".ace-merbivore .ace_gutter {\\\nbackground: #202020;\\\ncolor: #E6E1DC\\\n}\\\n.ace-merbivore .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #555651\\\n}\\\n.ace-merbivore {\\\nbackground-color: #161616;\\\ncolor: #E6E1DC\\\n}\\\n.ace-merbivore .ace_cursor {\\\ncolor: #FFFFFF\\\n}\\\n.ace-merbivore .ace_marker-layer .ace_selection {\\\nbackground: #454545\\\n}\\\n.ace-merbivore.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #161616;\\\n}\\\n.ace-merbivore .ace_marker-layer .ace_step {\\\nbackground: rgb(102, 82, 0)\\\n}\\\n.ace-merbivore .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid #404040\\\n}\\\n.ace-merbivore .ace_marker-layer .ace_active-line {\\\nbackground: #333435\\\n}\\\n.ace-merbivore .ace_gutter-active-line {\\\nbackground-color: #333435\\\n}\\\n.ace-merbivore .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid #454545\\\n}\\\n.ace-merbivore .ace_invisible {\\\ncolor: #404040\\\n}\\\n.ace-merbivore .ace_entity.ace_name.ace_tag,\\\n.ace-merbivore .ace_keyword,\\\n.ace-merbivore .ace_meta,\\\n.ace-merbivore .ace_meta.ace_tag,\\\n.ace-merbivore .ace_storage,\\\n.ace-merbivore .ace_support.ace_function {\\\ncolor: #FC6F09\\\n}\\\n.ace-merbivore .ace_constant,\\\n.ace-merbivore .ace_constant.ace_character,\\\n.ace-merbivore .ace_constant.ace_character.ace_escape,\\\n.ace-merbivore .ace_constant.ace_other,\\\n.ace-merbivore .ace_support.ace_type {\\\ncolor: #1EDAFB\\\n}\\\n.ace-merbivore .ace_constant.ace_character.ace_escape {\\\ncolor: #519F50\\\n}\\\n.ace-merbivore .ace_constant.ace_language {\\\ncolor: #FDC251\\\n}\\\n.ace-merbivore .ace_constant.ace_library,\\\n.ace-merbivore .ace_string,\\\n.ace-merbivore .ace_support.ace_constant {\\\ncolor: #8DFF0A\\\n}\\\n.ace-merbivore .ace_constant.ace_numeric {\\\ncolor: #58C554\\\n}\\\n.ace-merbivore .ace_invalid {\\\ncolor: #FFFFFF;\\\nbackground-color: #990000\\\n}\\\n.ace-merbivore .ace_fold {\\\nbackground-color: #FC6F09;\\\nborder-color: #E6E1DC\\\n}\\\n.ace-merbivore .ace_comment {\\\nfont-style: italic;\\\ncolor: #AD2EA4\\\n}\\\n.ace-merbivore .ace_entity.ace_other.ace_attribute-name {\\\ncolor: #FFFF89\\\n}\\\n.ace-merbivore .ace_indent-guide {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMQFxf3ZXB1df0PAAdsAmERTkEHAAAAAElFTkSuQmCC) right repeat-y\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-merbivore_soft.js",
    "content": "ace.define(\"ace/theme/merbivore_soft\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = true;\nexports.cssClass = \"ace-merbivore-soft\";\nexports.cssText = \".ace-merbivore-soft .ace_gutter {\\\nbackground: #262424;\\\ncolor: #E6E1DC\\\n}\\\n.ace-merbivore-soft .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #262424\\\n}\\\n.ace-merbivore-soft {\\\nbackground-color: #1C1C1C;\\\ncolor: #E6E1DC\\\n}\\\n.ace-merbivore-soft .ace_cursor {\\\ncolor: #FFFFFF\\\n}\\\n.ace-merbivore-soft .ace_marker-layer .ace_selection {\\\nbackground: #494949\\\n}\\\n.ace-merbivore-soft.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #1C1C1C;\\\n}\\\n.ace-merbivore-soft .ace_marker-layer .ace_step {\\\nbackground: rgb(102, 82, 0)\\\n}\\\n.ace-merbivore-soft .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid #404040\\\n}\\\n.ace-merbivore-soft .ace_marker-layer .ace_active-line {\\\nbackground: #333435\\\n}\\\n.ace-merbivore-soft .ace_gutter-active-line {\\\nbackground-color: #333435\\\n}\\\n.ace-merbivore-soft .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid #494949\\\n}\\\n.ace-merbivore-soft .ace_invisible {\\\ncolor: #404040\\\n}\\\n.ace-merbivore-soft .ace_entity.ace_name.ace_tag,\\\n.ace-merbivore-soft .ace_keyword,\\\n.ace-merbivore-soft .ace_meta,\\\n.ace-merbivore-soft .ace_meta.ace_tag,\\\n.ace-merbivore-soft .ace_storage {\\\ncolor: #FC803A\\\n}\\\n.ace-merbivore-soft .ace_constant,\\\n.ace-merbivore-soft .ace_constant.ace_character,\\\n.ace-merbivore-soft .ace_constant.ace_character.ace_escape,\\\n.ace-merbivore-soft .ace_constant.ace_other,\\\n.ace-merbivore-soft .ace_support.ace_type {\\\ncolor: #68C1D8\\\n}\\\n.ace-merbivore-soft .ace_constant.ace_character.ace_escape {\\\ncolor: #B3E5B4\\\n}\\\n.ace-merbivore-soft .ace_constant.ace_language {\\\ncolor: #E1C582\\\n}\\\n.ace-merbivore-soft .ace_constant.ace_library,\\\n.ace-merbivore-soft .ace_string,\\\n.ace-merbivore-soft .ace_support.ace_constant {\\\ncolor: #8EC65F\\\n}\\\n.ace-merbivore-soft .ace_constant.ace_numeric {\\\ncolor: #7FC578\\\n}\\\n.ace-merbivore-soft .ace_invalid,\\\n.ace-merbivore-soft .ace_invalid.ace_deprecated {\\\ncolor: #FFFFFF;\\\nbackground-color: #FE3838\\\n}\\\n.ace-merbivore-soft .ace_fold {\\\nbackground-color: #FC803A;\\\nborder-color: #E6E1DC\\\n}\\\n.ace-merbivore-soft .ace_comment,\\\n.ace-merbivore-soft .ace_meta {\\\nfont-style: italic;\\\ncolor: #AC4BB8\\\n}\\\n.ace-merbivore-soft .ace_entity.ace_other.ace_attribute-name {\\\ncolor: #EAF1A3\\\n}\\\n.ace-merbivore-soft .ace_indent-guide {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWOQkpLyZfD09PwPAAfYAnaStpHRAAAAAElFTkSuQmCC) right repeat-y\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-mono_industrial.js",
    "content": "ace.define(\"ace/theme/mono_industrial\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = true;\nexports.cssClass = \"ace-mono-industrial\";\nexports.cssText = \".ace-mono-industrial .ace_gutter {\\\nbackground: #1d2521;\\\ncolor: #C5C9C9\\\n}\\\n.ace-mono-industrial .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #555651\\\n}\\\n.ace-mono-industrial {\\\nbackground-color: #222C28;\\\ncolor: #FFFFFF\\\n}\\\n.ace-mono-industrial .ace_cursor {\\\ncolor: #FFFFFF\\\n}\\\n.ace-mono-industrial .ace_marker-layer .ace_selection {\\\nbackground: rgba(145, 153, 148, 0.40)\\\n}\\\n.ace-mono-industrial.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #222C28;\\\n}\\\n.ace-mono-industrial .ace_marker-layer .ace_step {\\\nbackground: rgb(102, 82, 0)\\\n}\\\n.ace-mono-industrial .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgba(102, 108, 104, 0.50)\\\n}\\\n.ace-mono-industrial .ace_marker-layer .ace_active-line {\\\nbackground: rgba(12, 13, 12, 0.25)\\\n}\\\n.ace-mono-industrial .ace_gutter-active-line {\\\nbackground-color: rgba(12, 13, 12, 0.25)\\\n}\\\n.ace-mono-industrial .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid rgba(145, 153, 148, 0.40)\\\n}\\\n.ace-mono-industrial .ace_invisible {\\\ncolor: rgba(102, 108, 104, 0.50)\\\n}\\\n.ace-mono-industrial .ace_string {\\\nbackground-color: #151C19;\\\ncolor: #FFFFFF\\\n}\\\n.ace-mono-industrial .ace_keyword,\\\n.ace-mono-industrial .ace_meta {\\\ncolor: #A39E64\\\n}\\\n.ace-mono-industrial .ace_constant,\\\n.ace-mono-industrial .ace_constant.ace_character,\\\n.ace-mono-industrial .ace_constant.ace_character.ace_escape,\\\n.ace-mono-industrial .ace_constant.ace_numeric,\\\n.ace-mono-industrial .ace_constant.ace_other {\\\ncolor: #E98800\\\n}\\\n.ace-mono-industrial .ace_entity.ace_name.ace_function,\\\n.ace-mono-industrial .ace_keyword.ace_operator,\\\n.ace-mono-industrial .ace_variable {\\\ncolor: #A8B3AB\\\n}\\\n.ace-mono-industrial .ace_invalid {\\\ncolor: #FFFFFF;\\\nbackground-color: rgba(153, 0, 0, 0.68)\\\n}\\\n.ace-mono-industrial .ace_support.ace_constant {\\\ncolor: #C87500\\\n}\\\n.ace-mono-industrial .ace_fold {\\\nbackground-color: #A8B3AB;\\\nborder-color: #FFFFFF\\\n}\\\n.ace-mono-industrial .ace_support.ace_function {\\\ncolor: #588E60\\\n}\\\n.ace-mono-industrial .ace_entity.ace_name,\\\n.ace-mono-industrial .ace_support.ace_class,\\\n.ace-mono-industrial .ace_support.ace_type {\\\ncolor: #5778B6\\\n}\\\n.ace-mono-industrial .ace_storage {\\\ncolor: #C23B00\\\n}\\\n.ace-mono-industrial .ace_variable.ace_language,\\\n.ace-mono-industrial .ace_variable.ace_parameter {\\\ncolor: #648BD2\\\n}\\\n.ace-mono-industrial .ace_comment {\\\ncolor: #666C68;\\\nbackground-color: #151C19\\\n}\\\n.ace-mono-industrial .ace_entity.ace_other.ace_attribute-name {\\\ncolor: #909993\\\n}\\\n.ace-mono-industrial .ace_entity.ace_name.ace_tag {\\\ncolor: #A65EFF\\\n}\\\n.ace-mono-industrial .ace_indent-guide {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQ1NbwZfALD/4PAAlTArlEC4r/AAAAAElFTkSuQmCC) right repeat-y\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-monokai.js",
    "content": "ace.define(\"ace/theme/monokai\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = true;\nexports.cssClass = \"ace-monokai\";\nexports.cssText = \".ace-monokai .ace_gutter {\\\nbackground: #2F3129;\\\ncolor: #8F908A\\\n}\\\n.ace-monokai .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #555651\\\n}\\\n.ace-monokai {\\\nbackground-color: #272822;\\\ncolor: #F8F8F2\\\n}\\\n.ace-monokai .ace_cursor {\\\ncolor: #F8F8F0\\\n}\\\n.ace-monokai .ace_marker-layer .ace_selection {\\\nbackground: #49483E\\\n}\\\n.ace-monokai.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #272822;\\\n}\\\n.ace-monokai .ace_marker-layer .ace_step {\\\nbackground: rgb(102, 82, 0)\\\n}\\\n.ace-monokai .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid #49483E\\\n}\\\n.ace-monokai .ace_marker-layer .ace_active-line {\\\nbackground: #202020\\\n}\\\n.ace-monokai .ace_gutter-active-line {\\\nbackground-color: #272727\\\n}\\\n.ace-monokai .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid #49483E\\\n}\\\n.ace-monokai .ace_invisible {\\\ncolor: #52524d\\\n}\\\n.ace-monokai .ace_entity.ace_name.ace_tag,\\\n.ace-monokai .ace_keyword,\\\n.ace-monokai .ace_meta.ace_tag,\\\n.ace-monokai .ace_storage {\\\ncolor: #F92672\\\n}\\\n.ace-monokai .ace_punctuation,\\\n.ace-monokai .ace_punctuation.ace_tag {\\\ncolor: #fff\\\n}\\\n.ace-monokai .ace_constant.ace_character,\\\n.ace-monokai .ace_constant.ace_language,\\\n.ace-monokai .ace_constant.ace_numeric,\\\n.ace-monokai .ace_constant.ace_other {\\\ncolor: #AE81FF\\\n}\\\n.ace-monokai .ace_invalid {\\\ncolor: #F8F8F0;\\\nbackground-color: #F92672\\\n}\\\n.ace-monokai .ace_invalid.ace_deprecated {\\\ncolor: #F8F8F0;\\\nbackground-color: #AE81FF\\\n}\\\n.ace-monokai .ace_support.ace_constant,\\\n.ace-monokai .ace_support.ace_function {\\\ncolor: #66D9EF\\\n}\\\n.ace-monokai .ace_fold {\\\nbackground-color: #A6E22E;\\\nborder-color: #F8F8F2\\\n}\\\n.ace-monokai .ace_storage.ace_type,\\\n.ace-monokai .ace_support.ace_class,\\\n.ace-monokai .ace_support.ace_type {\\\nfont-style: italic;\\\ncolor: #66D9EF\\\n}\\\n.ace-monokai .ace_entity.ace_name.ace_function,\\\n.ace-monokai .ace_entity.ace_other,\\\n.ace-monokai .ace_entity.ace_other.ace_attribute-name,\\\n.ace-monokai .ace_variable {\\\ncolor: #A6E22E\\\n}\\\n.ace-monokai .ace_variable.ace_parameter {\\\nfont-style: italic;\\\ncolor: #FD971F\\\n}\\\n.ace-monokai .ace_string {\\\ncolor: #E6DB74\\\n}\\\n.ace-monokai .ace_comment {\\\ncolor: #75715E\\\n}\\\n.ace-monokai .ace_indent-guide {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ0FD0ZXBzd/wPAAjVAoxeSgNeAAAAAElFTkSuQmCC) right repeat-y\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-pastel_on_dark.js",
    "content": "ace.define(\"ace/theme/pastel_on_dark\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = true;\nexports.cssClass = \"ace-pastel-on-dark\";\nexports.cssText = \".ace-pastel-on-dark .ace_gutter {\\\nbackground: #353030;\\\ncolor: #8F938F\\\n}\\\n.ace-pastel-on-dark .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #353030\\\n}\\\n.ace-pastel-on-dark {\\\nbackground-color: #2C2828;\\\ncolor: #8F938F\\\n}\\\n.ace-pastel-on-dark .ace_cursor {\\\ncolor: #A7A7A7\\\n}\\\n.ace-pastel-on-dark .ace_marker-layer .ace_selection {\\\nbackground: rgba(221, 240, 255, 0.20)\\\n}\\\n.ace-pastel-on-dark.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #2C2828;\\\n}\\\n.ace-pastel-on-dark .ace_marker-layer .ace_step {\\\nbackground: rgb(102, 82, 0)\\\n}\\\n.ace-pastel-on-dark .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgba(255, 255, 255, 0.25)\\\n}\\\n.ace-pastel-on-dark .ace_marker-layer .ace_active-line {\\\nbackground: rgba(255, 255, 255, 0.031)\\\n}\\\n.ace-pastel-on-dark .ace_gutter-active-line {\\\nbackground-color: rgba(255, 255, 255, 0.031)\\\n}\\\n.ace-pastel-on-dark .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid rgba(221, 240, 255, 0.20)\\\n}\\\n.ace-pastel-on-dark .ace_invisible {\\\ncolor: rgba(255, 255, 255, 0.25)\\\n}\\\n.ace-pastel-on-dark .ace_keyword,\\\n.ace-pastel-on-dark .ace_meta {\\\ncolor: #757aD8\\\n}\\\n.ace-pastel-on-dark .ace_constant,\\\n.ace-pastel-on-dark .ace_constant.ace_character,\\\n.ace-pastel-on-dark .ace_constant.ace_character.ace_escape,\\\n.ace-pastel-on-dark .ace_constant.ace_other {\\\ncolor: #4FB7C5\\\n}\\\n.ace-pastel-on-dark .ace_keyword.ace_operator {\\\ncolor: #797878\\\n}\\\n.ace-pastel-on-dark .ace_constant.ace_character {\\\ncolor: #AFA472\\\n}\\\n.ace-pastel-on-dark .ace_constant.ace_language {\\\ncolor: #DE8E30\\\n}\\\n.ace-pastel-on-dark .ace_constant.ace_numeric {\\\ncolor: #CCCCCC\\\n}\\\n.ace-pastel-on-dark .ace_invalid,\\\n.ace-pastel-on-dark .ace_invalid.ace_illegal {\\\ncolor: #F8F8F8;\\\nbackground-color: rgba(86, 45, 86, 0.75)\\\n}\\\n.ace-pastel-on-dark .ace_invalid.ace_deprecated {\\\ntext-decoration: underline;\\\nfont-style: italic;\\\ncolor: #D2A8A1\\\n}\\\n.ace-pastel-on-dark .ace_fold {\\\nbackground-color: #757aD8;\\\nborder-color: #8F938F\\\n}\\\n.ace-pastel-on-dark .ace_support.ace_function {\\\ncolor: #AEB2F8\\\n}\\\n.ace-pastel-on-dark .ace_string {\\\ncolor: #66A968\\\n}\\\n.ace-pastel-on-dark .ace_string.ace_regexp {\\\ncolor: #E9C062\\\n}\\\n.ace-pastel-on-dark .ace_comment {\\\ncolor: #A6C6FF\\\n}\\\n.ace-pastel-on-dark .ace_variable {\\\ncolor: #BEBF55\\\n}\\\n.ace-pastel-on-dark .ace_variable.ace_language {\\\ncolor: #C1C144\\\n}\\\n.ace-pastel-on-dark .ace_xml-pe {\\\ncolor: #494949\\\n}\\\n.ace-pastel-on-dark .ace_indent-guide {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYIiPj/8PAARgAh2NTMh8AAAAAElFTkSuQmCC) right repeat-y\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-solarized_dark.js",
    "content": "ace.define(\"ace/theme/solarized_dark\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = true;\nexports.cssClass = \"ace-solarized-dark\";\nexports.cssText = \".ace-solarized-dark .ace_gutter {\\\nbackground: #01313f;\\\ncolor: #d0edf7\\\n}\\\n.ace-solarized-dark .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #33555E\\\n}\\\n.ace-solarized-dark {\\\nbackground-color: #002B36;\\\ncolor: #93A1A1\\\n}\\\n.ace-solarized-dark .ace_entity.ace_other.ace_attribute-name,\\\n.ace-solarized-dark .ace_storage {\\\ncolor: #93A1A1\\\n}\\\n.ace-solarized-dark .ace_cursor,\\\n.ace-solarized-dark .ace_string.ace_regexp {\\\ncolor: #D30102\\\n}\\\n.ace-solarized-dark .ace_marker-layer .ace_active-line,\\\n.ace-solarized-dark .ace_marker-layer .ace_selection {\\\nbackground: rgba(255, 255, 255, 0.1)\\\n}\\\n.ace-solarized-dark.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #002B36;\\\n}\\\n.ace-solarized-dark .ace_marker-layer .ace_step {\\\nbackground: rgb(102, 82, 0)\\\n}\\\n.ace-solarized-dark .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgba(147, 161, 161, 0.50)\\\n}\\\n.ace-solarized-dark .ace_gutter-active-line {\\\nbackground-color: #0d3440\\\n}\\\n.ace-solarized-dark .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid #073642\\\n}\\\n.ace-solarized-dark .ace_invisible {\\\ncolor: rgba(147, 161, 161, 0.50)\\\n}\\\n.ace-solarized-dark .ace_keyword,\\\n.ace-solarized-dark .ace_meta,\\\n.ace-solarized-dark .ace_support.ace_class,\\\n.ace-solarized-dark .ace_support.ace_type {\\\ncolor: #859900\\\n}\\\n.ace-solarized-dark .ace_constant.ace_character,\\\n.ace-solarized-dark .ace_constant.ace_other {\\\ncolor: #CB4B16\\\n}\\\n.ace-solarized-dark .ace_constant.ace_language {\\\ncolor: #B58900\\\n}\\\n.ace-solarized-dark .ace_constant.ace_numeric {\\\ncolor: #D33682\\\n}\\\n.ace-solarized-dark .ace_fold {\\\nbackground-color: #268BD2;\\\nborder-color: #93A1A1\\\n}\\\n.ace-solarized-dark .ace_entity.ace_name.ace_function,\\\n.ace-solarized-dark .ace_entity.ace_name.ace_tag,\\\n.ace-solarized-dark .ace_support.ace_function,\\\n.ace-solarized-dark .ace_variable,\\\n.ace-solarized-dark .ace_variable.ace_language {\\\ncolor: #268BD2\\\n}\\\n.ace-solarized-dark .ace_string {\\\ncolor: #2AA198\\\n}\\\n.ace-solarized-dark .ace_comment {\\\nfont-style: italic;\\\ncolor: #657B83\\\n}\\\n.ace-solarized-dark .ace_indent-guide {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNg0Db1ZVCxc/sPAAd4AlUHlLenAAAAAElFTkSuQmCC) right repeat-y\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-solarized_light.js",
    "content": "ace.define(\"ace/theme/solarized_light\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = false;\nexports.cssClass = \"ace-solarized-light\";\nexports.cssText = \".ace-solarized-light .ace_gutter {\\\nbackground: #fbf1d3;\\\ncolor: #333\\\n}\\\n.ace-solarized-light .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8\\\n}\\\n.ace-solarized-light {\\\nbackground-color: #FDF6E3;\\\ncolor: #586E75\\\n}\\\n.ace-solarized-light .ace_cursor {\\\ncolor: #000000\\\n}\\\n.ace-solarized-light .ace_marker-layer .ace_selection {\\\nbackground: rgba(7, 54, 67, 0.09)\\\n}\\\n.ace-solarized-light.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #FDF6E3;\\\n}\\\n.ace-solarized-light .ace_marker-layer .ace_step {\\\nbackground: rgb(255, 255, 0)\\\n}\\\n.ace-solarized-light .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgba(147, 161, 161, 0.50)\\\n}\\\n.ace-solarized-light .ace_marker-layer .ace_active-line {\\\nbackground: #EEE8D5\\\n}\\\n.ace-solarized-light .ace_gutter-active-line {\\\nbackground-color : #EDE5C1\\\n}\\\n.ace-solarized-light .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid #073642\\\n}\\\n.ace-solarized-light .ace_invisible {\\\ncolor: rgba(147, 161, 161, 0.50)\\\n}\\\n.ace-solarized-light .ace_keyword,\\\n.ace-solarized-light .ace_meta,\\\n.ace-solarized-light .ace_support.ace_class,\\\n.ace-solarized-light .ace_support.ace_type {\\\ncolor: #859900\\\n}\\\n.ace-solarized-light .ace_constant.ace_character,\\\n.ace-solarized-light .ace_constant.ace_other {\\\ncolor: #CB4B16\\\n}\\\n.ace-solarized-light .ace_constant.ace_language {\\\ncolor: #B58900\\\n}\\\n.ace-solarized-light .ace_constant.ace_numeric {\\\ncolor: #D33682\\\n}\\\n.ace-solarized-light .ace_fold {\\\nbackground-color: #268BD2;\\\nborder-color: #586E75\\\n}\\\n.ace-solarized-light .ace_entity.ace_name.ace_function,\\\n.ace-solarized-light .ace_entity.ace_name.ace_tag,\\\n.ace-solarized-light .ace_support.ace_function,\\\n.ace-solarized-light .ace_variable,\\\n.ace-solarized-light .ace_variable.ace_language {\\\ncolor: #268BD2\\\n}\\\n.ace-solarized-light .ace_storage {\\\ncolor: #073642\\\n}\\\n.ace-solarized-light .ace_string {\\\ncolor: #2AA198\\\n}\\\n.ace-solarized-light .ace_string.ace_regexp {\\\ncolor: #D30102\\\n}\\\n.ace-solarized-light .ace_comment,\\\n.ace-solarized-light .ace_entity.ace_other.ace_attribute-name {\\\ncolor: #93A1A1\\\n}\\\n.ace-solarized-light .ace_indent-guide {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHjy8NJ/AAjgA5fzQUmBAAAAAElFTkSuQmCC) right repeat-y\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-sqlserver.js",
    "content": "ace.define(\"ace/theme/sqlserver\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = false;\nexports.cssClass = \"ace-sqlserver\";\nexports.cssText = \".ace-sqlserver .ace_gutter {\\\nbackground: #ebebeb;\\\ncolor: #333;\\\noverflow: hidden;\\\n}\\\n.ace-sqlserver .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8;\\\n}\\\n.ace-sqlserver {\\\nbackground-color: #FFFFFF;\\\ncolor: black;\\\n}\\\n.ace-sqlserver .ace_identifier {\\\ncolor: black;\\\n}\\\n.ace-sqlserver .ace_keyword {\\\ncolor: #0000FF;\\\n}\\\n.ace-sqlserver .ace_numeric {\\\ncolor: black;\\\n}\\\n.ace-sqlserver .ace_storage {\\\ncolor: #11B7BE;\\\n}\\\n.ace-sqlserver .ace_keyword.ace_operator,\\\n.ace-sqlserver .ace_lparen,\\\n.ace-sqlserver .ace_rparen,\\\n.ace-sqlserver .ace_punctuation {\\\ncolor: #808080;\\\n}\\\n.ace-sqlserver .ace_set.ace_statement {\\\ncolor: #0000FF;\\\ntext-decoration: underline;\\\n}\\\n.ace-sqlserver .ace_cursor {\\\ncolor: black;\\\n}\\\n.ace-sqlserver .ace_invisible {\\\ncolor: rgb(191, 191, 191);\\\n}\\\n.ace-sqlserver .ace_constant.ace_buildin {\\\ncolor: rgb(88, 72, 246);\\\n}\\\n.ace-sqlserver .ace_constant.ace_language {\\\ncolor: #979797;\\\n}\\\n.ace-sqlserver .ace_constant.ace_library {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-sqlserver .ace_invalid {\\\nbackground-color: rgb(153, 0, 0);\\\ncolor: white;\\\n}\\\n.ace-sqlserver .ace_support.ace_function {\\\ncolor: #FF00FF;\\\n}\\\n.ace-sqlserver .ace_support.ace_constant {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-sqlserver .ace_class {\\\ncolor: #008080;\\\n}\\\n.ace-sqlserver .ace_support.ace_other {\\\ncolor: #6D79DE;\\\n}\\\n.ace-sqlserver .ace_variable.ace_parameter {\\\nfont-style: italic;\\\ncolor: #FD971F;\\\n}\\\n.ace-sqlserver .ace_comment {\\\ncolor: #008000;\\\n}\\\n.ace-sqlserver .ace_constant.ace_numeric {\\\ncolor: black;\\\n}\\\n.ace-sqlserver .ace_variable {\\\ncolor: rgb(49, 132, 149);\\\n}\\\n.ace-sqlserver .ace_xml-pe {\\\ncolor: rgb(104, 104, 91);\\\n}\\\n.ace-sqlserver .ace_support.ace_storedprocedure {\\\ncolor: #800000;\\\n}\\\n.ace-sqlserver .ace_heading {\\\ncolor: rgb(12, 7, 255);\\\n}\\\n.ace-sqlserver .ace_list {\\\ncolor: rgb(185, 6, 144);\\\n}\\\n.ace-sqlserver .ace_marker-layer .ace_selection {\\\nbackground: rgb(181, 213, 255);\\\n}\\\n.ace-sqlserver .ace_marker-layer .ace_step {\\\nbackground: rgb(252, 255, 0);\\\n}\\\n.ace-sqlserver .ace_marker-layer .ace_stack {\\\nbackground: rgb(164, 229, 101);\\\n}\\\n.ace-sqlserver .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgb(192, 192, 192);\\\n}\\\n.ace-sqlserver .ace_marker-layer .ace_active-line {\\\nbackground: rgba(0, 0, 0, 0.07);\\\n}\\\n.ace-sqlserver .ace_gutter-active-line {\\\nbackground-color: #dcdcdc;\\\n}\\\n.ace-sqlserver .ace_marker-layer .ace_selected-word {\\\nbackground: rgb(250, 250, 255);\\\nborder: 1px solid rgb(200, 200, 250);\\\n}\\\n.ace-sqlserver .ace_meta.ace_tag {\\\ncolor: #0000FF;\\\n}\\\n.ace-sqlserver .ace_string.ace_regex {\\\ncolor: #FF0000;\\\n}\\\n.ace-sqlserver .ace_string {\\\ncolor: #FF0000;\\\n}\\\n.ace-sqlserver .ace_entity.ace_other.ace_attribute-name {\\\ncolor: #994409;\\\n}\\\n.ace-sqlserver .ace_indent-guide {\\\nbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\\n}\\\n\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-terminal.js",
    "content": "ace.define(\"ace/theme/terminal\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = true;\nexports.cssClass = \"ace-terminal-theme\";\nexports.cssText = \".ace-terminal-theme .ace_gutter {\\\nbackground: #1a0005;\\\ncolor: steelblue\\\n}\\\n.ace-terminal-theme .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #1a1a1a\\\n}\\\n.ace-terminal-theme {\\\nbackground-color: black;\\\ncolor: #DEDEDE\\\n}\\\n.ace-terminal-theme .ace_cursor {\\\ncolor: #9F9F9F\\\n}\\\n.ace-terminal-theme .ace_marker-layer .ace_selection {\\\nbackground: #424242\\\n}\\\n.ace-terminal-theme.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px black;\\\n}\\\n.ace-terminal-theme .ace_marker-layer .ace_step {\\\nbackground: rgb(0, 0, 0)\\\n}\\\n.ace-terminal-theme .ace_marker-layer .ace_bracket {\\\nbackground: #090;\\\n}\\\n.ace-terminal-theme .ace_marker-layer .ace_bracket-start {\\\nbackground: #090;\\\n}\\\n.ace-terminal-theme .ace_marker-layer .ace_bracket-unmatched {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid #900\\\n}\\\n.ace-terminal-theme .ace_marker-layer .ace_active-line {\\\nbackground: #2A2A2A\\\n}\\\n.ace-terminal-theme .ace_gutter-active-line {\\\nbackground-color: #2A112A\\\n}\\\n.ace-terminal-theme .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid #424242\\\n}\\\n.ace-terminal-theme .ace_invisible {\\\ncolor: #343434\\\n}\\\n.ace-terminal-theme .ace_keyword,\\\n.ace-terminal-theme .ace_meta,\\\n.ace-terminal-theme .ace_storage,\\\n.ace-terminal-theme .ace_storage.ace_type,\\\n.ace-terminal-theme .ace_support.ace_type {\\\ncolor: tomato\\\n}\\\n.ace-terminal-theme .ace_keyword.ace_operator {\\\ncolor: deeppink\\\n}\\\n.ace-terminal-theme .ace_constant.ace_character,\\\n.ace-terminal-theme .ace_constant.ace_language,\\\n.ace-terminal-theme .ace_constant.ace_numeric,\\\n.ace-terminal-theme .ace_keyword.ace_other.ace_unit,\\\n.ace-terminal-theme .ace_support.ace_constant,\\\n.ace-terminal-theme .ace_variable.ace_parameter {\\\ncolor: #E78C45\\\n}\\\n.ace-terminal-theme .ace_constant.ace_other {\\\ncolor: gold\\\n}\\\n.ace-terminal-theme .ace_invalid {\\\ncolor: yellow;\\\nbackground-color: red\\\n}\\\n.ace-terminal-theme .ace_invalid.ace_deprecated {\\\ncolor: #CED2CF;\\\nbackground-color: #B798BF\\\n}\\\n.ace-terminal-theme .ace_fold {\\\nbackground-color: #7AA6DA;\\\nborder-color: #DEDEDE\\\n}\\\n.ace-terminal-theme .ace_entity.ace_name.ace_function,\\\n.ace-terminal-theme .ace_support.ace_function,\\\n.ace-terminal-theme .ace_variable {\\\ncolor: #7AA6DA\\\n}\\\n.ace-terminal-theme .ace_support.ace_class,\\\n.ace-terminal-theme .ace_support.ace_type {\\\ncolor: #E7C547\\\n}\\\n.ace-terminal-theme .ace_heading,\\\n.ace-terminal-theme .ace_string {\\\ncolor: #B9CA4A\\\n}\\\n.ace-terminal-theme .ace_entity.ace_name.ace_tag,\\\n.ace-terminal-theme .ace_entity.ace_other.ace_attribute-name,\\\n.ace-terminal-theme .ace_meta.ace_tag,\\\n.ace-terminal-theme .ace_string.ace_regexp,\\\n.ace-terminal-theme .ace_variable {\\\ncolor: #D54E53\\\n}\\\n.ace-terminal-theme .ace_comment {\\\ncolor: orangered\\\n}\\\n.ace-terminal-theme .ace_indent-guide {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYLBWV/8PAAK4AYnhiq+xAAAAAElFTkSuQmCC) right repeat-y;\\\n}\\\n\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-textmate.js",
    "content": "ace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\"use strict\";\n\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = \".ace-tm .ace_gutter {\\\nbackground: #f0f0f0;\\\ncolor: #333;\\\n}\\\n.ace-tm .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8;\\\n}\\\n.ace-tm .ace_fold {\\\nbackground-color: #6B72E6;\\\n}\\\n.ace-tm {\\\nbackground-color: #FFFFFF;\\\ncolor: black;\\\n}\\\n.ace-tm .ace_cursor {\\\ncolor: black;\\\n}\\\n.ace-tm .ace_invisible {\\\ncolor: rgb(191, 191, 191);\\\n}\\\n.ace-tm .ace_storage,\\\n.ace-tm .ace_keyword {\\\ncolor: blue;\\\n}\\\n.ace-tm .ace_constant {\\\ncolor: rgb(197, 6, 11);\\\n}\\\n.ace-tm .ace_constant.ace_buildin {\\\ncolor: rgb(88, 72, 246);\\\n}\\\n.ace-tm .ace_constant.ace_language {\\\ncolor: rgb(88, 92, 246);\\\n}\\\n.ace-tm .ace_constant.ace_library {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_invalid {\\\nbackground-color: rgba(255, 0, 0, 0.1);\\\ncolor: red;\\\n}\\\n.ace-tm .ace_support.ace_function {\\\ncolor: rgb(60, 76, 114);\\\n}\\\n.ace-tm .ace_support.ace_constant {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_support.ace_type,\\\n.ace-tm .ace_support.ace_class {\\\ncolor: rgb(109, 121, 222);\\\n}\\\n.ace-tm .ace_keyword.ace_operator {\\\ncolor: rgb(104, 118, 135);\\\n}\\\n.ace-tm .ace_string {\\\ncolor: rgb(3, 106, 7);\\\n}\\\n.ace-tm .ace_comment {\\\ncolor: rgb(76, 136, 107);\\\n}\\\n.ace-tm .ace_comment.ace_doc {\\\ncolor: rgb(0, 102, 255);\\\n}\\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\\ncolor: rgb(128, 159, 191);\\\n}\\\n.ace-tm .ace_constant.ace_numeric {\\\ncolor: rgb(0, 0, 205);\\\n}\\\n.ace-tm .ace_variable {\\\ncolor: rgb(49, 132, 149);\\\n}\\\n.ace-tm .ace_xml-pe {\\\ncolor: rgb(104, 104, 91);\\\n}\\\n.ace-tm .ace_entity.ace_name.ace_function {\\\ncolor: #0000A2;\\\n}\\\n.ace-tm .ace_heading {\\\ncolor: rgb(12, 7, 255);\\\n}\\\n.ace-tm .ace_list {\\\ncolor:rgb(185, 6, 144);\\\n}\\\n.ace-tm .ace_meta.ace_tag {\\\ncolor:rgb(0, 22, 142);\\\n}\\\n.ace-tm .ace_string.ace_regex {\\\ncolor: rgb(255, 0, 0)\\\n}\\\n.ace-tm .ace_marker-layer .ace_selection {\\\nbackground: rgb(181, 213, 255);\\\n}\\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px white;\\\n}\\\n.ace-tm .ace_marker-layer .ace_step {\\\nbackground: rgb(252, 255, 0);\\\n}\\\n.ace-tm .ace_marker-layer .ace_stack {\\\nbackground: rgb(164, 229, 101);\\\n}\\\n.ace-tm .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgb(192, 192, 192);\\\n}\\\n.ace-tm .ace_marker-layer .ace_active-line {\\\nbackground: rgba(0, 0, 0, 0.07);\\\n}\\\n.ace-tm .ace_gutter-active-line {\\\nbackground-color : #dcdcdc;\\\n}\\\n.ace-tm .ace_marker-layer .ace_selected-word {\\\nbackground: rgb(250, 250, 255);\\\nborder: 1px solid rgb(200, 200, 250);\\\n}\\\n.ace-tm .ace_indent-guide {\\\nbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\\n}\\\n\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-tomorrow.js",
    "content": "ace.define(\"ace/theme/tomorrow\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = false;\nexports.cssClass = \"ace-tomorrow\";\nexports.cssText = \".ace-tomorrow .ace_gutter {\\\nbackground: #f6f6f6;\\\ncolor: #4D4D4C\\\n}\\\n.ace-tomorrow .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #f6f6f6\\\n}\\\n.ace-tomorrow {\\\nbackground-color: #FFFFFF;\\\ncolor: #4D4D4C\\\n}\\\n.ace-tomorrow .ace_cursor {\\\ncolor: #AEAFAD\\\n}\\\n.ace-tomorrow .ace_marker-layer .ace_selection {\\\nbackground: #D6D6D6\\\n}\\\n.ace-tomorrow.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #FFFFFF;\\\n}\\\n.ace-tomorrow .ace_marker-layer .ace_step {\\\nbackground: rgb(255, 255, 0)\\\n}\\\n.ace-tomorrow .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid #D1D1D1\\\n}\\\n.ace-tomorrow .ace_marker-layer .ace_active-line {\\\nbackground: #EFEFEF\\\n}\\\n.ace-tomorrow .ace_gutter-active-line {\\\nbackground-color : #dcdcdc\\\n}\\\n.ace-tomorrow .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid #D6D6D6\\\n}\\\n.ace-tomorrow .ace_invisible {\\\ncolor: #D1D1D1\\\n}\\\n.ace-tomorrow .ace_keyword,\\\n.ace-tomorrow .ace_meta,\\\n.ace-tomorrow .ace_storage,\\\n.ace-tomorrow .ace_storage.ace_type,\\\n.ace-tomorrow .ace_support.ace_type {\\\ncolor: #8959A8\\\n}\\\n.ace-tomorrow .ace_keyword.ace_operator {\\\ncolor: #3E999F\\\n}\\\n.ace-tomorrow .ace_constant.ace_character,\\\n.ace-tomorrow .ace_constant.ace_language,\\\n.ace-tomorrow .ace_constant.ace_numeric,\\\n.ace-tomorrow .ace_keyword.ace_other.ace_unit,\\\n.ace-tomorrow .ace_support.ace_constant,\\\n.ace-tomorrow .ace_variable.ace_parameter {\\\ncolor: #F5871F\\\n}\\\n.ace-tomorrow .ace_constant.ace_other {\\\ncolor: #666969\\\n}\\\n.ace-tomorrow .ace_invalid {\\\ncolor: #FFFFFF;\\\nbackground-color: #C82829\\\n}\\\n.ace-tomorrow .ace_invalid.ace_deprecated {\\\ncolor: #FFFFFF;\\\nbackground-color: #8959A8\\\n}\\\n.ace-tomorrow .ace_fold {\\\nbackground-color: #4271AE;\\\nborder-color: #4D4D4C\\\n}\\\n.ace-tomorrow .ace_entity.ace_name.ace_function,\\\n.ace-tomorrow .ace_support.ace_function,\\\n.ace-tomorrow .ace_variable {\\\ncolor: #4271AE\\\n}\\\n.ace-tomorrow .ace_support.ace_class,\\\n.ace-tomorrow .ace_support.ace_type {\\\ncolor: #C99E00\\\n}\\\n.ace-tomorrow .ace_heading,\\\n.ace-tomorrow .ace_markup.ace_heading,\\\n.ace-tomorrow .ace_string {\\\ncolor: #718C00\\\n}\\\n.ace-tomorrow .ace_entity.ace_name.ace_tag,\\\n.ace-tomorrow .ace_entity.ace_other.ace_attribute-name,\\\n.ace-tomorrow .ace_meta.ace_tag,\\\n.ace-tomorrow .ace_string.ace_regexp,\\\n.ace-tomorrow .ace_variable {\\\ncolor: #C82829\\\n}\\\n.ace-tomorrow .ace_comment {\\\ncolor: #8E908C\\\n}\\\n.ace-tomorrow .ace_indent-guide {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bdu3f/BwAlfgctduB85QAAAABJRU5ErkJggg==) right repeat-y\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-tomorrow_night.js",
    "content": "ace.define(\"ace/theme/tomorrow_night\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = true;\nexports.cssClass = \"ace-tomorrow-night\";\nexports.cssText = \".ace-tomorrow-night .ace_gutter {\\\nbackground: #25282c;\\\ncolor: #C5C8C6\\\n}\\\n.ace-tomorrow-night .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #25282c\\\n}\\\n.ace-tomorrow-night {\\\nbackground-color: #1D1F21;\\\ncolor: #C5C8C6\\\n}\\\n.ace-tomorrow-night .ace_cursor {\\\ncolor: #AEAFAD\\\n}\\\n.ace-tomorrow-night .ace_marker-layer .ace_selection {\\\nbackground: #373B41\\\n}\\\n.ace-tomorrow-night.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #1D1F21;\\\n}\\\n.ace-tomorrow-night .ace_marker-layer .ace_step {\\\nbackground: rgb(102, 82, 0)\\\n}\\\n.ace-tomorrow-night .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid #4B4E55\\\n}\\\n.ace-tomorrow-night .ace_marker-layer .ace_active-line {\\\nbackground: #282A2E\\\n}\\\n.ace-tomorrow-night .ace_gutter-active-line {\\\nbackground-color: #282A2E\\\n}\\\n.ace-tomorrow-night .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid #373B41\\\n}\\\n.ace-tomorrow-night .ace_invisible {\\\ncolor: #4B4E55\\\n}\\\n.ace-tomorrow-night .ace_keyword,\\\n.ace-tomorrow-night .ace_meta,\\\n.ace-tomorrow-night .ace_storage,\\\n.ace-tomorrow-night .ace_storage.ace_type,\\\n.ace-tomorrow-night .ace_support.ace_type {\\\ncolor: #B294BB\\\n}\\\n.ace-tomorrow-night .ace_keyword.ace_operator {\\\ncolor: #8ABEB7\\\n}\\\n.ace-tomorrow-night .ace_constant.ace_character,\\\n.ace-tomorrow-night .ace_constant.ace_language,\\\n.ace-tomorrow-night .ace_constant.ace_numeric,\\\n.ace-tomorrow-night .ace_keyword.ace_other.ace_unit,\\\n.ace-tomorrow-night .ace_support.ace_constant,\\\n.ace-tomorrow-night .ace_variable.ace_parameter {\\\ncolor: #DE935F\\\n}\\\n.ace-tomorrow-night .ace_constant.ace_other {\\\ncolor: #CED1CF\\\n}\\\n.ace-tomorrow-night .ace_invalid {\\\ncolor: #CED2CF;\\\nbackground-color: #DF5F5F\\\n}\\\n.ace-tomorrow-night .ace_invalid.ace_deprecated {\\\ncolor: #CED2CF;\\\nbackground-color: #B798BF\\\n}\\\n.ace-tomorrow-night .ace_fold {\\\nbackground-color: #81A2BE;\\\nborder-color: #C5C8C6\\\n}\\\n.ace-tomorrow-night .ace_entity.ace_name.ace_function,\\\n.ace-tomorrow-night .ace_support.ace_function,\\\n.ace-tomorrow-night .ace_variable {\\\ncolor: #81A2BE\\\n}\\\n.ace-tomorrow-night .ace_support.ace_class,\\\n.ace-tomorrow-night .ace_support.ace_type {\\\ncolor: #F0C674\\\n}\\\n.ace-tomorrow-night .ace_heading,\\\n.ace-tomorrow-night .ace_markup.ace_heading,\\\n.ace-tomorrow-night .ace_string {\\\ncolor: #B5BD68\\\n}\\\n.ace-tomorrow-night .ace_entity.ace_name.ace_tag,\\\n.ace-tomorrow-night .ace_entity.ace_other.ace_attribute-name,\\\n.ace-tomorrow-night .ace_meta.ace_tag,\\\n.ace-tomorrow-night .ace_string.ace_regexp,\\\n.ace-tomorrow-night .ace_variable {\\\ncolor: #CC6666\\\n}\\\n.ace-tomorrow-night .ace_comment {\\\ncolor: #969896\\\n}\\\n.ace-tomorrow-night .ace_indent-guide {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHB3d/8PAAOIAdULw8qMAAAAAElFTkSuQmCC) right repeat-y\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-tomorrow_night_blue.js",
    "content": "ace.define(\"ace/theme/tomorrow_night_blue\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = true;\nexports.cssClass = \"ace-tomorrow-night-blue\";\nexports.cssText = \".ace-tomorrow-night-blue .ace_gutter {\\\nbackground: #00204b;\\\ncolor: #7388b5\\\n}\\\n.ace-tomorrow-night-blue .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #00204b\\\n}\\\n.ace-tomorrow-night-blue {\\\nbackground-color: #002451;\\\ncolor: #FFFFFF\\\n}\\\n.ace-tomorrow-night-blue .ace_constant.ace_other,\\\n.ace-tomorrow-night-blue .ace_cursor {\\\ncolor: #FFFFFF\\\n}\\\n.ace-tomorrow-night-blue .ace_marker-layer .ace_selection {\\\nbackground: #003F8E\\\n}\\\n.ace-tomorrow-night-blue.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #002451;\\\n}\\\n.ace-tomorrow-night-blue .ace_marker-layer .ace_step {\\\nbackground: rgb(127, 111, 19)\\\n}\\\n.ace-tomorrow-night-blue .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid #404F7D\\\n}\\\n.ace-tomorrow-night-blue .ace_marker-layer .ace_active-line {\\\nbackground: #00346E\\\n}\\\n.ace-tomorrow-night-blue .ace_gutter-active-line {\\\nbackground-color: #022040\\\n}\\\n.ace-tomorrow-night-blue .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid #003F8E\\\n}\\\n.ace-tomorrow-night-blue .ace_invisible {\\\ncolor: #404F7D\\\n}\\\n.ace-tomorrow-night-blue .ace_keyword,\\\n.ace-tomorrow-night-blue .ace_meta,\\\n.ace-tomorrow-night-blue .ace_storage,\\\n.ace-tomorrow-night-blue .ace_storage.ace_type,\\\n.ace-tomorrow-night-blue .ace_support.ace_type {\\\ncolor: #EBBBFF\\\n}\\\n.ace-tomorrow-night-blue .ace_keyword.ace_operator {\\\ncolor: #99FFFF\\\n}\\\n.ace-tomorrow-night-blue .ace_constant.ace_character,\\\n.ace-tomorrow-night-blue .ace_constant.ace_language,\\\n.ace-tomorrow-night-blue .ace_constant.ace_numeric,\\\n.ace-tomorrow-night-blue .ace_keyword.ace_other.ace_unit,\\\n.ace-tomorrow-night-blue .ace_support.ace_constant,\\\n.ace-tomorrow-night-blue .ace_variable.ace_parameter {\\\ncolor: #FFC58F\\\n}\\\n.ace-tomorrow-night-blue .ace_invalid {\\\ncolor: #FFFFFF;\\\nbackground-color: #F99DA5\\\n}\\\n.ace-tomorrow-night-blue .ace_invalid.ace_deprecated {\\\ncolor: #FFFFFF;\\\nbackground-color: #EBBBFF\\\n}\\\n.ace-tomorrow-night-blue .ace_fold {\\\nbackground-color: #BBDAFF;\\\nborder-color: #FFFFFF\\\n}\\\n.ace-tomorrow-night-blue .ace_entity.ace_name.ace_function,\\\n.ace-tomorrow-night-blue .ace_support.ace_function,\\\n.ace-tomorrow-night-blue .ace_variable {\\\ncolor: #BBDAFF\\\n}\\\n.ace-tomorrow-night-blue .ace_support.ace_class,\\\n.ace-tomorrow-night-blue .ace_support.ace_type {\\\ncolor: #FFEEAD\\\n}\\\n.ace-tomorrow-night-blue .ace_heading,\\\n.ace-tomorrow-night-blue .ace_markup.ace_heading,\\\n.ace-tomorrow-night-blue .ace_string {\\\ncolor: #D1F1A9\\\n}\\\n.ace-tomorrow-night-blue .ace_entity.ace_name.ace_tag,\\\n.ace-tomorrow-night-blue .ace_entity.ace_other.ace_attribute-name,\\\n.ace-tomorrow-night-blue .ace_meta.ace_tag,\\\n.ace-tomorrow-night-blue .ace_string.ace_regexp,\\\n.ace-tomorrow-night-blue .ace_variable {\\\ncolor: #FF9DA4\\\n}\\\n.ace-tomorrow-night-blue .ace_comment {\\\ncolor: #7285B7\\\n}\\\n.ace-tomorrow-night-blue .ace_indent-guide {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYJDzqfwPAANXAeNsiA+ZAAAAAElFTkSuQmCC) right repeat-y\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-tomorrow_night_bright.js",
    "content": "ace.define(\"ace/theme/tomorrow_night_bright\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = true;\nexports.cssClass = \"ace-tomorrow-night-bright\";\nexports.cssText = \".ace-tomorrow-night-bright .ace_gutter {\\\nbackground: #1a1a1a;\\\ncolor: #DEDEDE\\\n}\\\n.ace-tomorrow-night-bright .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #1a1a1a\\\n}\\\n.ace-tomorrow-night-bright {\\\nbackground-color: #000000;\\\ncolor: #DEDEDE\\\n}\\\n.ace-tomorrow-night-bright .ace_cursor {\\\ncolor: #9F9F9F\\\n}\\\n.ace-tomorrow-night-bright .ace_marker-layer .ace_selection {\\\nbackground: #424242\\\n}\\\n.ace-tomorrow-night-bright.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #000000;\\\n}\\\n.ace-tomorrow-night-bright .ace_marker-layer .ace_step {\\\nbackground: rgb(102, 82, 0)\\\n}\\\n.ace-tomorrow-night-bright .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid #888888\\\n}\\\n.ace-tomorrow-night-bright .ace_marker-layer .ace_highlight {\\\nborder: 1px solid rgb(110, 119, 0);\\\nborder-bottom: 0;\\\nbox-shadow: inset 0 -1px rgb(110, 119, 0);\\\nmargin: -1px 0 0 -1px;\\\nbackground: rgba(255, 235, 0, 0.1)\\\n}\\\n.ace-tomorrow-night-bright .ace_marker-layer .ace_active-line {\\\nbackground: #2A2A2A\\\n}\\\n.ace-tomorrow-night-bright .ace_gutter-active-line {\\\nbackground-color: #2A2A2A\\\n}\\\n.ace-tomorrow-night-bright .ace_stack {\\\nbackground-color: rgb(66, 90, 44)\\\n}\\\n.ace-tomorrow-night-bright .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid #888888\\\n}\\\n.ace-tomorrow-night-bright .ace_invisible {\\\ncolor: #343434\\\n}\\\n.ace-tomorrow-night-bright .ace_keyword,\\\n.ace-tomorrow-night-bright .ace_meta,\\\n.ace-tomorrow-night-bright .ace_storage,\\\n.ace-tomorrow-night-bright .ace_storage.ace_type,\\\n.ace-tomorrow-night-bright .ace_support.ace_type {\\\ncolor: #C397D8\\\n}\\\n.ace-tomorrow-night-bright .ace_keyword.ace_operator {\\\ncolor: #70C0B1\\\n}\\\n.ace-tomorrow-night-bright .ace_constant.ace_character,\\\n.ace-tomorrow-night-bright .ace_constant.ace_language,\\\n.ace-tomorrow-night-bright .ace_constant.ace_numeric,\\\n.ace-tomorrow-night-bright .ace_keyword.ace_other.ace_unit,\\\n.ace-tomorrow-night-bright .ace_support.ace_constant,\\\n.ace-tomorrow-night-bright .ace_variable.ace_parameter {\\\ncolor: #E78C45\\\n}\\\n.ace-tomorrow-night-bright .ace_constant.ace_other {\\\ncolor: #EEEEEE\\\n}\\\n.ace-tomorrow-night-bright .ace_invalid {\\\ncolor: #CED2CF;\\\nbackground-color: #DF5F5F\\\n}\\\n.ace-tomorrow-night-bright .ace_invalid.ace_deprecated {\\\ncolor: #CED2CF;\\\nbackground-color: #B798BF\\\n}\\\n.ace-tomorrow-night-bright .ace_fold {\\\nbackground-color: #7AA6DA;\\\nborder-color: #DEDEDE\\\n}\\\n.ace-tomorrow-night-bright .ace_entity.ace_name.ace_function,\\\n.ace-tomorrow-night-bright .ace_support.ace_function,\\\n.ace-tomorrow-night-bright .ace_variable {\\\ncolor: #7AA6DA\\\n}\\\n.ace-tomorrow-night-bright .ace_support.ace_class,\\\n.ace-tomorrow-night-bright .ace_support.ace_type {\\\ncolor: #E7C547\\\n}\\\n.ace-tomorrow-night-bright .ace_heading,\\\n.ace-tomorrow-night-bright .ace_markup.ace_heading,\\\n.ace-tomorrow-night-bright .ace_string {\\\ncolor: #B9CA4A\\\n}\\\n.ace-tomorrow-night-bright .ace_entity.ace_name.ace_tag,\\\n.ace-tomorrow-night-bright .ace_entity.ace_other.ace_attribute-name,\\\n.ace-tomorrow-night-bright .ace_meta.ace_tag,\\\n.ace-tomorrow-night-bright .ace_string.ace_regexp,\\\n.ace-tomorrow-night-bright .ace_variable {\\\ncolor: #D54E53\\\n}\\\n.ace-tomorrow-night-bright .ace_comment {\\\ncolor: #969896\\\n}\\\n.ace-tomorrow-night-bright .ace_c9searchresults.ace_keyword {\\\ncolor: #C2C280\\\n}\\\n.ace-tomorrow-night-bright .ace_indent-guide {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYFBXV/8PAAJoAXX4kT2EAAAAAElFTkSuQmCC) right repeat-y\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-tomorrow_night_eighties.js",
    "content": "ace.define(\"ace/theme/tomorrow_night_eighties\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = true;\nexports.cssClass = \"ace-tomorrow-night-eighties\";\nexports.cssText = \".ace-tomorrow-night-eighties .ace_gutter {\\\nbackground: #272727;\\\ncolor: #CCC\\\n}\\\n.ace-tomorrow-night-eighties .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #272727\\\n}\\\n.ace-tomorrow-night-eighties {\\\nbackground-color: #2D2D2D;\\\ncolor: #CCCCCC\\\n}\\\n.ace-tomorrow-night-eighties .ace_constant.ace_other,\\\n.ace-tomorrow-night-eighties .ace_cursor {\\\ncolor: #CCCCCC\\\n}\\\n.ace-tomorrow-night-eighties .ace_marker-layer .ace_selection {\\\nbackground: #515151\\\n}\\\n.ace-tomorrow-night-eighties.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #2D2D2D;\\\n}\\\n.ace-tomorrow-night-eighties .ace_marker-layer .ace_step {\\\nbackground: rgb(102, 82, 0)\\\n}\\\n.ace-tomorrow-night-eighties .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid #6A6A6A\\\n}\\\n.ace-tomorrow-night-bright .ace_stack {\\\nbackground: rgb(66, 90, 44)\\\n}\\\n.ace-tomorrow-night-eighties .ace_marker-layer .ace_active-line {\\\nbackground: #393939\\\n}\\\n.ace-tomorrow-night-eighties .ace_gutter-active-line {\\\nbackground-color: #393939\\\n}\\\n.ace-tomorrow-night-eighties .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid #515151\\\n}\\\n.ace-tomorrow-night-eighties .ace_invisible {\\\ncolor: #6A6A6A\\\n}\\\n.ace-tomorrow-night-eighties .ace_keyword,\\\n.ace-tomorrow-night-eighties .ace_meta,\\\n.ace-tomorrow-night-eighties .ace_storage,\\\n.ace-tomorrow-night-eighties .ace_storage.ace_type,\\\n.ace-tomorrow-night-eighties .ace_support.ace_type {\\\ncolor: #CC99CC\\\n}\\\n.ace-tomorrow-night-eighties .ace_keyword.ace_operator {\\\ncolor: #66CCCC\\\n}\\\n.ace-tomorrow-night-eighties .ace_constant.ace_character,\\\n.ace-tomorrow-night-eighties .ace_constant.ace_language,\\\n.ace-tomorrow-night-eighties .ace_constant.ace_numeric,\\\n.ace-tomorrow-night-eighties .ace_keyword.ace_other.ace_unit,\\\n.ace-tomorrow-night-eighties .ace_support.ace_constant,\\\n.ace-tomorrow-night-eighties .ace_variable.ace_parameter {\\\ncolor: #F99157\\\n}\\\n.ace-tomorrow-night-eighties .ace_invalid {\\\ncolor: #CDCDCD;\\\nbackground-color: #F2777A\\\n}\\\n.ace-tomorrow-night-eighties .ace_invalid.ace_deprecated {\\\ncolor: #CDCDCD;\\\nbackground-color: #CC99CC\\\n}\\\n.ace-tomorrow-night-eighties .ace_fold {\\\nbackground-color: #6699CC;\\\nborder-color: #CCCCCC\\\n}\\\n.ace-tomorrow-night-eighties .ace_entity.ace_name.ace_function,\\\n.ace-tomorrow-night-eighties .ace_support.ace_function,\\\n.ace-tomorrow-night-eighties .ace_variable {\\\ncolor: #6699CC\\\n}\\\n.ace-tomorrow-night-eighties .ace_support.ace_class,\\\n.ace-tomorrow-night-eighties .ace_support.ace_type {\\\ncolor: #FFCC66\\\n}\\\n.ace-tomorrow-night-eighties .ace_heading,\\\n.ace-tomorrow-night-eighties .ace_markup.ace_heading,\\\n.ace-tomorrow-night-eighties .ace_string {\\\ncolor: #99CC99\\\n}\\\n.ace-tomorrow-night-eighties .ace_comment {\\\ncolor: #999999\\\n}\\\n.ace-tomorrow-night-eighties .ace_entity.ace_name.ace_tag,\\\n.ace-tomorrow-night-eighties .ace_entity.ace_other.ace_attribute-name,\\\n.ace-tomorrow-night-eighties .ace_meta.ace_tag,\\\n.ace-tomorrow-night-eighties .ace_variable {\\\ncolor: #F2777A\\\n}\\\n.ace-tomorrow-night-eighties .ace_indent-guide {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ09NrYAgMjP4PAAtGAwchHMyAAAAAAElFTkSuQmCC) right repeat-y\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-twilight.js",
    "content": "ace.define(\"ace/theme/twilight\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = true;\nexports.cssClass = \"ace-twilight\";\nexports.cssText = \".ace-twilight .ace_gutter {\\\nbackground: #232323;\\\ncolor: #E2E2E2\\\n}\\\n.ace-twilight .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #232323\\\n}\\\n.ace-twilight {\\\nbackground-color: #141414;\\\ncolor: #F8F8F8\\\n}\\\n.ace-twilight .ace_cursor {\\\ncolor: #A7A7A7\\\n}\\\n.ace-twilight .ace_marker-layer .ace_selection {\\\nbackground: rgba(221, 240, 255, 0.20)\\\n}\\\n.ace-twilight.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #141414;\\\n}\\\n.ace-twilight .ace_marker-layer .ace_step {\\\nbackground: rgb(102, 82, 0)\\\n}\\\n.ace-twilight .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgba(255, 255, 255, 0.25)\\\n}\\\n.ace-twilight .ace_marker-layer .ace_active-line {\\\nbackground: rgba(255, 255, 255, 0.031)\\\n}\\\n.ace-twilight .ace_gutter-active-line {\\\nbackground-color: rgba(255, 255, 255, 0.031)\\\n}\\\n.ace-twilight .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid rgba(221, 240, 255, 0.20)\\\n}\\\n.ace-twilight .ace_invisible {\\\ncolor: rgba(255, 255, 255, 0.25)\\\n}\\\n.ace-twilight .ace_keyword,\\\n.ace-twilight .ace_meta {\\\ncolor: #CDA869\\\n}\\\n.ace-twilight .ace_constant,\\\n.ace-twilight .ace_constant.ace_character,\\\n.ace-twilight .ace_constant.ace_character.ace_escape,\\\n.ace-twilight .ace_constant.ace_other,\\\n.ace-twilight .ace_heading,\\\n.ace-twilight .ace_markup.ace_heading,\\\n.ace-twilight .ace_support.ace_constant {\\\ncolor: #CF6A4C\\\n}\\\n.ace-twilight .ace_invalid.ace_illegal {\\\ncolor: #F8F8F8;\\\nbackground-color: rgba(86, 45, 86, 0.75)\\\n}\\\n.ace-twilight .ace_invalid.ace_deprecated {\\\ntext-decoration: underline;\\\nfont-style: italic;\\\ncolor: #D2A8A1\\\n}\\\n.ace-twilight .ace_support {\\\ncolor: #9B859D\\\n}\\\n.ace-twilight .ace_fold {\\\nbackground-color: #AC885B;\\\nborder-color: #F8F8F8\\\n}\\\n.ace-twilight .ace_support.ace_function {\\\ncolor: #DAD085\\\n}\\\n.ace-twilight .ace_list,\\\n.ace-twilight .ace_markup.ace_list,\\\n.ace-twilight .ace_storage {\\\ncolor: #F9EE98\\\n}\\\n.ace-twilight .ace_entity.ace_name.ace_function,\\\n.ace-twilight .ace_meta.ace_tag,\\\n.ace-twilight .ace_variable {\\\ncolor: #AC885B\\\n}\\\n.ace-twilight .ace_string {\\\ncolor: #8F9D6A\\\n}\\\n.ace-twilight .ace_string.ace_regexp {\\\ncolor: #E9C062\\\n}\\\n.ace-twilight .ace_comment {\\\nfont-style: italic;\\\ncolor: #5F5A60\\\n}\\\n.ace-twilight .ace_variable {\\\ncolor: #7587A6\\\n}\\\n.ace-twilight .ace_xml-pe {\\\ncolor: #494949\\\n}\\\n.ace-twilight .ace_indent-guide {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMQERFpYLC1tf0PAAgOAnPnhxyiAAAAAElFTkSuQmCC) right repeat-y\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-vibrant_ink.js",
    "content": "ace.define(\"ace/theme/vibrant_ink\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = true;\nexports.cssClass = \"ace-vibrant-ink\";\nexports.cssText = \".ace-vibrant-ink .ace_gutter {\\\nbackground: #1a1a1a;\\\ncolor: #BEBEBE\\\n}\\\n.ace-vibrant-ink .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #1a1a1a\\\n}\\\n.ace-vibrant-ink {\\\nbackground-color: #0F0F0F;\\\ncolor: #FFFFFF\\\n}\\\n.ace-vibrant-ink .ace_cursor {\\\ncolor: #FFFFFF\\\n}\\\n.ace-vibrant-ink .ace_marker-layer .ace_selection {\\\nbackground: #6699CC\\\n}\\\n.ace-vibrant-ink.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #0F0F0F;\\\n}\\\n.ace-vibrant-ink .ace_marker-layer .ace_step {\\\nbackground: rgb(102, 82, 0)\\\n}\\\n.ace-vibrant-ink .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid #404040\\\n}\\\n.ace-vibrant-ink .ace_marker-layer .ace_active-line {\\\nbackground: #333333\\\n}\\\n.ace-vibrant-ink .ace_gutter-active-line {\\\nbackground-color: #333333\\\n}\\\n.ace-vibrant-ink .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid #6699CC\\\n}\\\n.ace-vibrant-ink .ace_invisible {\\\ncolor: #404040\\\n}\\\n.ace-vibrant-ink .ace_keyword,\\\n.ace-vibrant-ink .ace_meta {\\\ncolor: #FF6600\\\n}\\\n.ace-vibrant-ink .ace_constant,\\\n.ace-vibrant-ink .ace_constant.ace_character,\\\n.ace-vibrant-ink .ace_constant.ace_character.ace_escape,\\\n.ace-vibrant-ink .ace_constant.ace_other {\\\ncolor: #339999\\\n}\\\n.ace-vibrant-ink .ace_constant.ace_numeric {\\\ncolor: #99CC99\\\n}\\\n.ace-vibrant-ink .ace_invalid,\\\n.ace-vibrant-ink .ace_invalid.ace_deprecated {\\\ncolor: #CCFF33;\\\nbackground-color: #000000\\\n}\\\n.ace-vibrant-ink .ace_fold {\\\nbackground-color: #FFCC00;\\\nborder-color: #FFFFFF\\\n}\\\n.ace-vibrant-ink .ace_entity.ace_name.ace_function,\\\n.ace-vibrant-ink .ace_support.ace_function,\\\n.ace-vibrant-ink .ace_variable {\\\ncolor: #FFCC00\\\n}\\\n.ace-vibrant-ink .ace_variable.ace_parameter {\\\nfont-style: italic\\\n}\\\n.ace-vibrant-ink .ace_string {\\\ncolor: #66FF00\\\n}\\\n.ace-vibrant-ink .ace_string.ace_regexp {\\\ncolor: #44B4CC\\\n}\\\n.ace-vibrant-ink .ace_comment {\\\ncolor: #9933CC\\\n}\\\n.ace-vibrant-ink .ace_entity.ace_other.ace_attribute-name {\\\nfont-style: italic;\\\ncolor: #99CC99\\\n}\\\n.ace-vibrant-ink .ace_indent-guide {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYNDTc/oPAALPAZ7hxlbYAAAAAElFTkSuQmCC) right repeat-y\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/theme-xcode.js",
    "content": "ace.define(\"ace/theme/xcode\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = false;\nexports.cssClass = \"ace-xcode\";\nexports.cssText = \"\\\n.ace-xcode .ace_gutter {\\\nbackground: #e8e8e8;\\\ncolor: #333\\\n}\\\n.ace-xcode .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8\\\n}\\\n.ace-xcode {\\\nbackground-color: #FFFFFF;\\\ncolor: #000000\\\n}\\\n.ace-xcode .ace_cursor {\\\ncolor: #000000\\\n}\\\n.ace-xcode .ace_marker-layer .ace_selection {\\\nbackground: #B5D5FF\\\n}\\\n.ace-xcode.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #FFFFFF;\\\n}\\\n.ace-xcode .ace_marker-layer .ace_step {\\\nbackground: rgb(198, 219, 174)\\\n}\\\n.ace-xcode .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid #BFBFBF\\\n}\\\n.ace-xcode .ace_marker-layer .ace_active-line {\\\nbackground: rgba(0, 0, 0, 0.071)\\\n}\\\n.ace-xcode .ace_gutter-active-line {\\\nbackground-color: rgba(0, 0, 0, 0.071)\\\n}\\\n.ace-xcode .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid #B5D5FF\\\n}\\\n.ace-xcode .ace_constant.ace_language,\\\n.ace-xcode .ace_keyword,\\\n.ace-xcode .ace_meta,\\\n.ace-xcode .ace_variable.ace_language {\\\ncolor: #C800A4\\\n}\\\n.ace-xcode .ace_invisible {\\\ncolor: #BFBFBF\\\n}\\\n.ace-xcode .ace_constant.ace_character,\\\n.ace-xcode .ace_constant.ace_other {\\\ncolor: #275A5E\\\n}\\\n.ace-xcode .ace_constant.ace_numeric {\\\ncolor: #3A00DC\\\n}\\\n.ace-xcode .ace_entity.ace_other.ace_attribute-name,\\\n.ace-xcode .ace_support.ace_constant,\\\n.ace-xcode .ace_support.ace_function {\\\ncolor: #450084\\\n}\\\n.ace-xcode .ace_fold {\\\nbackground-color: #C800A4;\\\nborder-color: #000000\\\n}\\\n.ace-xcode .ace_entity.ace_name.ace_tag,\\\n.ace-xcode .ace_support.ace_class,\\\n.ace-xcode .ace_support.ace_type {\\\ncolor: #790EAD\\\n}\\\n.ace-xcode .ace_storage {\\\ncolor: #C900A4\\\n}\\\n.ace-xcode .ace_string {\\\ncolor: #DF0002\\\n}\\\n.ace-xcode .ace_comment {\\\ncolor: #008E00\\\n}\\\n.ace-xcode .ace_indent-guide {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==) right repeat-y\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n"
  },
  {
    "path": "lib/src-noconflict/worker-coffee.js",
    "content": "\"no use strict\";\n;(function(window) {\nif (typeof window.window != \"undefined\" && window.document)\n    return;\nif (window.require && window.define)\n    return;\n\nif (!window.console) {\n    window.console = function() {\n        var msgs = Array.prototype.slice.call(arguments, 0);\n        postMessage({type: \"log\", data: msgs});\n    };\n    window.console.error =\n    window.console.warn = \n    window.console.log =\n    window.console.trace = window.console;\n}\nwindow.window = window;\nwindow.ace = window;\n\nwindow.onerror = function(message, file, line, col, err) {\n    postMessage({type: \"error\", data: {\n        message: message,\n        data: err.data,\n        file: file,\n        line: line, \n        col: col,\n        stack: err.stack\n    }});\n};\n\nwindow.normalizeModule = function(parentId, moduleName) {\n    // normalize plugin requires\n    if (moduleName.indexOf(\"!\") !== -1) {\n        var chunks = moduleName.split(\"!\");\n        return window.normalizeModule(parentId, chunks[0]) + \"!\" + window.normalizeModule(parentId, chunks[1]);\n    }\n    // normalize relative requires\n    if (moduleName.charAt(0) == \".\") {\n        var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n        moduleName = (base ? base + \"/\" : \"\") + moduleName;\n        \n        while (moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n            var previous = moduleName;\n            moduleName = moduleName.replace(/^\\.\\//, \"\").replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n        }\n    }\n    \n    return moduleName;\n};\n\nwindow.require = function require(parentId, id) {\n    if (!id) {\n        id = parentId;\n        parentId = null;\n    }\n    if (!id.charAt)\n        throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");\n\n    id = window.normalizeModule(parentId, id);\n\n    var module = window.require.modules[id];\n    if (module) {\n        if (!module.initialized) {\n            module.initialized = true;\n            module.exports = module.factory().exports;\n        }\n        return module.exports;\n    }\n   \n    if (!window.require.tlns)\n        return console.log(\"unable to load \" + id);\n    \n    var path = resolveModuleId(id, window.require.tlns);\n    if (path.slice(-3) != \".js\") path += \".js\";\n    \n    window.require.id = id;\n    window.require.modules[id] = {}; // prevent infinite loop on broken modules\n    importScripts(path);\n    return window.require(parentId, id);\n};\nfunction resolveModuleId(id, paths) {\n    var testPath = id, tail = \"\";\n    while (testPath) {\n        var alias = paths[testPath];\n        if (typeof alias == \"string\") {\n            return alias + tail;\n        } else if (alias) {\n            return  alias.location.replace(/\\/*$/, \"/\") + (tail || alias.main || alias.name);\n        } else if (alias === false) {\n            return \"\";\n        }\n        var i = testPath.lastIndexOf(\"/\");\n        if (i === -1) break;\n        tail = testPath.substr(i) + tail;\n        testPath = testPath.slice(0, i);\n    }\n    return id;\n}\nwindow.require.modules = {};\nwindow.require.tlns = {};\n\nwindow.define = function(id, deps, factory) {\n    if (arguments.length == 2) {\n        factory = deps;\n        if (typeof id != \"string\") {\n            deps = id;\n            id = window.require.id;\n        }\n    } else if (arguments.length == 1) {\n        factory = id;\n        deps = [];\n        id = window.require.id;\n    }\n    \n    if (typeof factory != \"function\") {\n        window.require.modules[id] = {\n            exports: factory,\n            initialized: true\n        };\n        return;\n    }\n\n    if (!deps.length)\n        // If there is no dependencies, we inject \"require\", \"exports\" and\n        // \"module\" as dependencies, to provide CommonJS compatibility.\n        deps = [\"require\", \"exports\", \"module\"];\n\n    var req = function(childId) {\n        return window.require(id, childId);\n    };\n\n    window.require.modules[id] = {\n        exports: {},\n        factory: function() {\n            var module = this;\n            var returnExports = factory.apply(this, deps.map(function(dep) {\n                switch (dep) {\n                    // Because \"require\", \"exports\" and \"module\" aren't actual\n                    // dependencies, we must handle them seperately.\n                    case \"require\": return req;\n                    case \"exports\": return module.exports;\n                    case \"module\":  return module;\n                    // But for all other dependencies, we can just go ahead and\n                    // require them.\n                    default:        return req(dep);\n                }\n            }));\n            if (returnExports)\n                module.exports = returnExports;\n            return module;\n        }\n    };\n};\nwindow.define.amd = {};\nrequire.tlns = {};\nwindow.initBaseUrls  = function initBaseUrls(topLevelNamespaces) {\n    for (var i in topLevelNamespaces)\n        require.tlns[i] = topLevelNamespaces[i];\n};\n\nwindow.initSender = function initSender() {\n\n    var EventEmitter = window.require(\"ace/lib/event_emitter\").EventEmitter;\n    var oop = window.require(\"ace/lib/oop\");\n    \n    var Sender = function() {};\n    \n    (function() {\n        \n        oop.implement(this, EventEmitter);\n                \n        this.callback = function(data, callbackId) {\n            postMessage({\n                type: \"call\",\n                id: callbackId,\n                data: data\n            });\n        };\n    \n        this.emit = function(name, data) {\n            postMessage({\n                type: \"event\",\n                name: name,\n                data: data\n            });\n        };\n        \n    }).call(Sender.prototype);\n    \n    return new Sender();\n};\n\nvar main = window.main = null;\nvar sender = window.sender = null;\n\nwindow.onmessage = function(e) {\n    var msg = e.data;\n    if (msg.event && sender) {\n        sender._signal(msg.event, msg.data);\n    }\n    else if (msg.command) {\n        if (main[msg.command])\n            main[msg.command].apply(main, msg.args);\n        else if (window[msg.command])\n            window[msg.command].apply(window, msg.args);\n        else\n            throw new Error(\"Unknown command:\" + msg.command);\n    }\n    else if (msg.init) {\n        window.initBaseUrls(msg.tlns);\n        require(\"ace/lib/es5-shim\");\n        sender = window.sender = window.initSender();\n        var clazz = require(msg.module)[msg.classname];\n        main = window.main = new clazz(sender);\n    }\n};\n})(this);\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.inherits = function(ctor, superCtor) {\n    ctor.super_ = superCtor;\n    ctor.prototype = Object.create(superCtor.prototype, {\n        constructor: {\n            value: ctor,\n            enumerable: false,\n            writable: true,\n            configurable: true\n        }\n    });\n};\n\nexports.mixin = function(obj, mixin) {\n    for (var key in mixin) {\n        obj[key] = mixin[key];\n    }\n    return obj;\n};\n\nexports.implement = function(proto, mixin) {\n    exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/range\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\nvar comparePoints = function(p1, p2) {\n    return p1.row - p2.row || p1.column - p2.column;\n};\nvar Range = function(startRow, startColumn, endRow, endColumn) {\n    this.start = {\n        row: startRow,\n        column: startColumn\n    };\n\n    this.end = {\n        row: endRow,\n        column: endColumn\n    };\n};\n\n(function() {\n    this.isEqual = function(range) {\n        return this.start.row === range.start.row &&\n            this.end.row === range.end.row &&\n            this.start.column === range.start.column &&\n            this.end.column === range.end.column;\n    };\n    this.toString = function() {\n        return (\"Range: [\" + this.start.row + \"/\" + this.start.column +\n            \"] -> [\" + this.end.row + \"/\" + this.end.column + \"]\");\n    };\n\n    this.contains = function(row, column) {\n        return this.compare(row, column) == 0;\n    };\n    this.compareRange = function(range) {\n        var cmp,\n            end = range.end,\n            start = range.start;\n\n        cmp = this.compare(end.row, end.column);\n        if (cmp == 1) {\n            cmp = this.compare(start.row, start.column);\n            if (cmp == 1) {\n                return 2;\n            } else if (cmp == 0) {\n                return 1;\n            } else {\n                return 0;\n            }\n        } else if (cmp == -1) {\n            return -2;\n        } else {\n            cmp = this.compare(start.row, start.column);\n            if (cmp == -1) {\n                return -1;\n            } else if (cmp == 1) {\n                return 42;\n            } else {\n                return 0;\n            }\n        }\n    };\n    this.comparePoint = function(p) {\n        return this.compare(p.row, p.column);\n    };\n    this.containsRange = function(range) {\n        return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n    };\n    this.intersects = function(range) {\n        var cmp = this.compareRange(range);\n        return (cmp == -1 || cmp == 0 || cmp == 1);\n    };\n    this.isEnd = function(row, column) {\n        return this.end.row == row && this.end.column == column;\n    };\n    this.isStart = function(row, column) {\n        return this.start.row == row && this.start.column == column;\n    };\n    this.setStart = function(row, column) {\n        if (typeof row == \"object\") {\n            this.start.column = row.column;\n            this.start.row = row.row;\n        } else {\n            this.start.row = row;\n            this.start.column = column;\n        }\n    };\n    this.setEnd = function(row, column) {\n        if (typeof row == \"object\") {\n            this.end.column = row.column;\n            this.end.row = row.row;\n        } else {\n            this.end.row = row;\n            this.end.column = column;\n        }\n    };\n    this.inside = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isEnd(row, column) || this.isStart(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.insideStart = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isEnd(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.insideEnd = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isStart(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.compare = function(row, column) {\n        if (!this.isMultiLine()) {\n            if (row === this.start.row) {\n                return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n            }\n        }\n\n        if (row < this.start.row)\n            return -1;\n\n        if (row > this.end.row)\n            return 1;\n\n        if (this.start.row === row)\n            return column >= this.start.column ? 0 : -1;\n\n        if (this.end.row === row)\n            return column <= this.end.column ? 0 : 1;\n\n        return 0;\n    };\n    this.compareStart = function(row, column) {\n        if (this.start.row == row && this.start.column == column) {\n            return -1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.compareEnd = function(row, column) {\n        if (this.end.row == row && this.end.column == column) {\n            return 1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.compareInside = function(row, column) {\n        if (this.end.row == row && this.end.column == column) {\n            return 1;\n        } else if (this.start.row == row && this.start.column == column) {\n            return -1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.clipRows = function(firstRow, lastRow) {\n        if (this.end.row > lastRow)\n            var end = {row: lastRow + 1, column: 0};\n        else if (this.end.row < firstRow)\n            var end = {row: firstRow, column: 0};\n\n        if (this.start.row > lastRow)\n            var start = {row: lastRow + 1, column: 0};\n        else if (this.start.row < firstRow)\n            var start = {row: firstRow, column: 0};\n\n        return Range.fromPoints(start || this.start, end || this.end);\n    };\n    this.extend = function(row, column) {\n        var cmp = this.compare(row, column);\n\n        if (cmp == 0)\n            return this;\n        else if (cmp == -1)\n            var start = {row: row, column: column};\n        else\n            var end = {row: row, column: column};\n\n        return Range.fromPoints(start || this.start, end || this.end);\n    };\n\n    this.isEmpty = function() {\n        return (this.start.row === this.end.row && this.start.column === this.end.column);\n    };\n    this.isMultiLine = function() {\n        return (this.start.row !== this.end.row);\n    };\n    this.clone = function() {\n        return Range.fromPoints(this.start, this.end);\n    };\n    this.collapseRows = function() {\n        if (this.end.column == 0)\n            return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)\n        else\n            return new Range(this.start.row, 0, this.end.row, 0)\n    };\n    this.toScreenRange = function(session) {\n        var screenPosStart = session.documentToScreenPosition(this.start);\n        var screenPosEnd = session.documentToScreenPosition(this.end);\n\n        return new Range(\n            screenPosStart.row, screenPosStart.column,\n            screenPosEnd.row, screenPosEnd.column\n        );\n    };\n    this.moveBy = function(row, column) {\n        this.start.row += row;\n        this.start.column += column;\n        this.end.row += row;\n        this.end.column += column;\n    };\n\n}).call(Range.prototype);\nRange.fromPoints = function(start, end) {\n    return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\n\nRange.comparePoints = function(p1, p2) {\n    return p1.row - p2.row || p1.column - p2.column;\n};\n\n\nexports.Range = Range;\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nfunction throwDeltaError(delta, errorText){\n    console.log(\"Invalid Delta:\", delta);\n    throw \"Invalid Delta: \" + errorText;\n}\n\nfunction positionInDocument(docLines, position) {\n    return position.row    >= 0 && position.row    <  docLines.length &&\n           position.column >= 0 && position.column <= docLines[position.row].length;\n}\n\nfunction validateDelta(docLines, delta) {\n    if (delta.action != \"insert\" && delta.action != \"remove\")\n        throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n    if (!(delta.lines instanceof Array))\n        throwDeltaError(delta, \"delta.lines must be an Array\");\n    if (!delta.start || !delta.end)\n       throwDeltaError(delta, \"delta.start/end must be an present\");\n    var start = delta.start;\n    if (!positionInDocument(docLines, delta.start))\n        throwDeltaError(delta, \"delta.start must be contained in document\");\n    var end = delta.end;\n    if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n        throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n    var numRangeRows = end.row - start.row;\n    var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n    if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n        throwDeltaError(delta, \"delta.range must match delta lines\");\n}\n\nexports.applyDelta = function(docLines, delta, doNotValidate) {\n    \n    var row = delta.start.row;\n    var startColumn = delta.start.column;\n    var line = docLines[row] || \"\";\n    switch (delta.action) {\n        case \"insert\":\n            var lines = delta.lines;\n            if (lines.length === 1) {\n                docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n            } else {\n                var args = [row, 1].concat(delta.lines);\n                docLines.splice.apply(docLines, args);\n                docLines[row] = line.substring(0, startColumn) + docLines[row];\n                docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n            }\n            break;\n        case \"remove\":\n            var endColumn = delta.end.column;\n            var endRow = delta.end.row;\n            if (row === endRow) {\n                docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n            } else {\n                docLines.splice(\n                    row, endRow - row + 1,\n                    line.substring(0, startColumn) + docLines[endRow].substring(endColumn)\n                );\n            }\n            break;\n    }\n}\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar EventEmitter = {};\nvar stopPropagation = function() { this.propagationStopped = true; };\nvar preventDefault = function() { this.defaultPrevented = true; };\n\nEventEmitter._emit =\nEventEmitter._dispatchEvent = function(eventName, e) {\n    this._eventRegistry || (this._eventRegistry = {});\n    this._defaultHandlers || (this._defaultHandlers = {});\n\n    var listeners = this._eventRegistry[eventName] || [];\n    var defaultHandler = this._defaultHandlers[eventName];\n    if (!listeners.length && !defaultHandler)\n        return;\n\n    if (typeof e != \"object\" || !e)\n        e = {};\n\n    if (!e.type)\n        e.type = eventName;\n    if (!e.stopPropagation)\n        e.stopPropagation = stopPropagation;\n    if (!e.preventDefault)\n        e.preventDefault = preventDefault;\n\n    listeners = listeners.slice();\n    for (var i=0; i<listeners.length; i++) {\n        listeners[i](e, this);\n        if (e.propagationStopped)\n            break;\n    }\n    \n    if (defaultHandler && !e.defaultPrevented)\n        return defaultHandler(e, this);\n};\n\n\nEventEmitter._signal = function(eventName, e) {\n    var listeners = (this._eventRegistry || {})[eventName];\n    if (!listeners)\n        return;\n    listeners = listeners.slice();\n    for (var i=0; i<listeners.length; i++)\n        listeners[i](e, this);\n};\n\nEventEmitter.once = function(eventName, callback) {\n    var _self = this;\n    callback && this.addEventListener(eventName, function newCallback() {\n        _self.removeEventListener(eventName, newCallback);\n        callback.apply(null, arguments);\n    });\n};\n\n\nEventEmitter.setDefaultHandler = function(eventName, callback) {\n    var handlers = this._defaultHandlers\n    if (!handlers)\n        handlers = this._defaultHandlers = {_disabled_: {}};\n    \n    if (handlers[eventName]) {\n        var old = handlers[eventName];\n        var disabled = handlers._disabled_[eventName];\n        if (!disabled)\n            handlers._disabled_[eventName] = disabled = [];\n        disabled.push(old);\n        var i = disabled.indexOf(callback);\n        if (i != -1) \n            disabled.splice(i, 1);\n    }\n    handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function(eventName, callback) {\n    var handlers = this._defaultHandlers\n    if (!handlers)\n        return;\n    var disabled = handlers._disabled_[eventName];\n    \n    if (handlers[eventName] == callback) {\n        var old = handlers[eventName];\n        if (disabled)\n            this.setDefaultHandler(eventName, disabled.pop());\n    } else if (disabled) {\n        var i = disabled.indexOf(callback);\n        if (i != -1)\n            disabled.splice(i, 1);\n    }\n};\n\nEventEmitter.on =\nEventEmitter.addEventListener = function(eventName, callback, capturing) {\n    this._eventRegistry = this._eventRegistry || {};\n\n    var listeners = this._eventRegistry[eventName];\n    if (!listeners)\n        listeners = this._eventRegistry[eventName] = [];\n\n    if (listeners.indexOf(callback) == -1)\n        listeners[capturing ? \"unshift\" : \"push\"](callback);\n    return callback;\n};\n\nEventEmitter.off =\nEventEmitter.removeListener =\nEventEmitter.removeEventListener = function(eventName, callback) {\n    this._eventRegistry = this._eventRegistry || {};\n\n    var listeners = this._eventRegistry[eventName];\n    if (!listeners)\n        return;\n\n    var index = listeners.indexOf(callback);\n    if (index !== -1)\n        listeners.splice(index, 1);\n};\n\nEventEmitter.removeAllListeners = function(eventName) {\n    if (this._eventRegistry) this._eventRegistry[eventName] = [];\n};\n\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\n\nvar Anchor = exports.Anchor = function(doc, row, column) {\n    this.$onChange = this.onChange.bind(this);\n    this.attach(doc);\n    \n    if (typeof column == \"undefined\")\n        this.setPosition(row.row, row.column);\n    else\n        this.setPosition(row, column);\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n    this.getPosition = function() {\n        return this.$clipPositionToDocument(this.row, this.column);\n    };\n    this.getDocument = function() {\n        return this.document;\n    };\n    this.$insertRight = false;\n    this.onChange = function(delta) {\n        if (delta.start.row == delta.end.row && delta.start.row != this.row)\n            return;\n\n        if (delta.start.row > this.row)\n            return;\n            \n        var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight);\n        this.setPosition(point.row, point.column, true);\n    };\n    \n    function $pointsInOrder(point1, point2, equalPointsInOrder) {\n        var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n        return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n    }\n            \n    function $getTransformedPoint(delta, point, moveIfEqual) {\n        var deltaIsInsert = delta.action == \"insert\";\n        var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row    - delta.start.row);\n        var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n        var deltaStart = delta.start;\n        var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n        if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n            return {\n                row: point.row,\n                column: point.column\n            };\n        }\n        if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n            return {\n                row: point.row + deltaRowShift,\n                column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n            };\n        }\n        \n        return {\n            row: deltaStart.row,\n            column: deltaStart.column\n        };\n    }\n    this.setPosition = function(row, column, noClip) {\n        var pos;\n        if (noClip) {\n            pos = {\n                row: row,\n                column: column\n            };\n        } else {\n            pos = this.$clipPositionToDocument(row, column);\n        }\n\n        if (this.row == pos.row && this.column == pos.column)\n            return;\n\n        var old = {\n            row: this.row,\n            column: this.column\n        };\n\n        this.row = pos.row;\n        this.column = pos.column;\n        this._signal(\"change\", {\n            old: old,\n            value: pos\n        });\n    };\n    this.detach = function() {\n        this.document.removeEventListener(\"change\", this.$onChange);\n    };\n    this.attach = function(doc) {\n        this.document = doc || this.document;\n        this.document.on(\"change\", this.$onChange);\n    };\n    this.$clipPositionToDocument = function(row, column) {\n        var pos = {};\n\n        if (row >= this.document.getLength()) {\n            pos.row = Math.max(0, this.document.getLength() - 1);\n            pos.column = this.document.getLine(pos.row).length;\n        }\n        else if (row < 0) {\n            pos.row = 0;\n            pos.column = 0;\n        }\n        else {\n            pos.row = row;\n            pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n        }\n\n        if (column < 0)\n            pos.column = 0;\n\n        return pos;\n    };\n\n}).call(Anchor.prototype);\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar applyDelta = require(\"./apply_delta\").applyDelta;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\n\nvar Document = function(textOrLines) {\n    this.$lines = [\"\"];\n    if (textOrLines.length === 0) {\n        this.$lines = [\"\"];\n    } else if (Array.isArray(textOrLines)) {\n        this.insertMergedLines({row: 0, column: 0}, textOrLines);\n    } else {\n        this.insert({row: 0, column:0}, textOrLines);\n    }\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n    this.setValue = function(text) {\n        var len = this.getLength() - 1;\n        this.remove(new Range(0, 0, len, this.getLine(len).length));\n        this.insert({row: 0, column: 0}, text);\n    };\n    this.getValue = function() {\n        return this.getAllLines().join(this.getNewLineCharacter());\n    };\n    this.createAnchor = function(row, column) {\n        return new Anchor(this, row, column);\n    };\n    if (\"aaa\".split(/a/).length === 0) {\n        this.$split = function(text) {\n            return text.replace(/\\r\\n|\\r/g, \"\\n\").split(\"\\n\");\n        };\n    } else {\n        this.$split = function(text) {\n            return text.split(/\\r\\n|\\r|\\n/);\n        };\n    }\n\n\n    this.$detectNewLine = function(text) {\n        var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n        this.$autoNewLine = match ? match[1] : \"\\n\";\n        this._signal(\"changeNewLineMode\");\n    };\n    this.getNewLineCharacter = function() {\n        switch (this.$newLineMode) {\n          case \"windows\":\n            return \"\\r\\n\";\n          case \"unix\":\n            return \"\\n\";\n          default:\n            return this.$autoNewLine || \"\\n\";\n        }\n    };\n\n    this.$autoNewLine = \"\";\n    this.$newLineMode = \"auto\";\n    this.setNewLineMode = function(newLineMode) {\n        if (this.$newLineMode === newLineMode)\n            return;\n\n        this.$newLineMode = newLineMode;\n        this._signal(\"changeNewLineMode\");\n    };\n    this.getNewLineMode = function() {\n        return this.$newLineMode;\n    };\n    this.isNewLine = function(text) {\n        return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n    };\n    this.getLine = function(row) {\n        return this.$lines[row] || \"\";\n    };\n    this.getLines = function(firstRow, lastRow) {\n        return this.$lines.slice(firstRow, lastRow + 1);\n    };\n    this.getAllLines = function() {\n        return this.getLines(0, this.getLength());\n    };\n    this.getLength = function() {\n        return this.$lines.length;\n    };\n    this.getTextRange = function(range) {\n        return this.getLinesForRange(range).join(this.getNewLineCharacter());\n    };\n    this.getLinesForRange = function(range) {\n        var lines;\n        if (range.start.row === range.end.row) {\n            lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n        } else {\n            lines = this.getLines(range.start.row, range.end.row);\n            lines[0] = (lines[0] || \"\").substring(range.start.column);\n            var l = lines.length - 1;\n            if (range.end.row - range.start.row == l)\n                lines[l] = lines[l].substring(0, range.end.column);\n        }\n        return lines;\n    };\n    this.insertLines = function(row, lines) {\n        console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n        return this.insertFullLines(row, lines);\n    };\n    this.removeLines = function(firstRow, lastRow) {\n        console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n        return this.removeFullLines(firstRow, lastRow);\n    };\n    this.insertNewLine = function(position) {\n        console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n        return this.insertMergedLines(position, [\"\", \"\"]);\n    };\n    this.insert = function(position, text) {\n        if (this.getLength() <= 1)\n            this.$detectNewLine(text);\n        \n        return this.insertMergedLines(position, this.$split(text));\n    };\n    this.insertInLine = function(position, text) {\n        var start = this.clippedPos(position.row, position.column);\n        var end = this.pos(position.row, position.column + text.length);\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"insert\",\n            lines: [text]\n        }, true);\n        \n        return this.clonePos(end);\n    };\n    \n    this.clippedPos = function(row, column) {\n        var length = this.getLength();\n        if (row === undefined) {\n            row = length;\n        } else if (row < 0) {\n            row = 0;\n        } else if (row >= length) {\n            row = length - 1;\n            column = undefined;\n        }\n        var line = this.getLine(row);\n        if (column == undefined)\n            column = line.length;\n        column = Math.min(Math.max(column, 0), line.length);\n        return {row: row, column: column};\n    };\n    \n    this.clonePos = function(pos) {\n        return {row: pos.row, column: pos.column};\n    };\n    \n    this.pos = function(row, column) {\n        return {row: row, column: column};\n    };\n    \n    this.$clipPosition = function(position) {\n        var length = this.getLength();\n        if (position.row >= length) {\n            position.row = Math.max(0, length - 1);\n            position.column = this.getLine(length - 1).length;\n        } else {\n            position.row = Math.max(0, position.row);\n            position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n        }\n        return position;\n    };\n    this.insertFullLines = function(row, lines) {\n        row = Math.min(Math.max(row, 0), this.getLength());\n        var column = 0;\n        if (row < this.getLength()) {\n            lines = lines.concat([\"\"]);\n            column = 0;\n        } else {\n            lines = [\"\"].concat(lines);\n            row--;\n            column = this.$lines[row].length;\n        }\n        this.insertMergedLines({row: row, column: column}, lines);\n    };    \n    this.insertMergedLines = function(position, lines) {\n        var start = this.clippedPos(position.row, position.column);\n        var end = {\n            row: start.row + lines.length - 1,\n            column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n        };\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"insert\",\n            lines: lines\n        });\n        \n        return this.clonePos(end);\n    };\n    this.remove = function(range) {\n        var start = this.clippedPos(range.start.row, range.start.column);\n        var end = this.clippedPos(range.end.row, range.end.column);\n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"remove\",\n            lines: this.getLinesForRange({start: start, end: end})\n        });\n        return this.clonePos(start);\n    };\n    this.removeInLine = function(row, startColumn, endColumn) {\n        var start = this.clippedPos(row, startColumn);\n        var end = this.clippedPos(row, endColumn);\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"remove\",\n            lines: this.getLinesForRange({start: start, end: end})\n        }, true);\n        \n        return this.clonePos(start);\n    };\n    this.removeFullLines = function(firstRow, lastRow) {\n        firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n        lastRow  = Math.min(Math.max(0, lastRow ), this.getLength() - 1);\n        var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n        var deleteLastNewLine  = lastRow  < this.getLength() - 1;\n        var startRow = ( deleteFirstNewLine ? firstRow - 1                  : firstRow                    );\n        var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0                           );\n        var endRow   = ( deleteLastNewLine  ? lastRow + 1                   : lastRow                     );\n        var endCol   = ( deleteLastNewLine  ? 0                             : this.getLine(endRow).length ); \n        var range = new Range(startRow, startCol, endRow, endCol);\n        var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n        \n        this.applyDelta({\n            start: range.start,\n            end: range.end,\n            action: \"remove\",\n            lines: this.getLinesForRange(range)\n        });\n        return deletedLines;\n    };\n    this.removeNewLine = function(row) {\n        if (row < this.getLength() - 1 && row >= 0) {\n            this.applyDelta({\n                start: this.pos(row, this.getLine(row).length),\n                end: this.pos(row + 1, 0),\n                action: \"remove\",\n                lines: [\"\", \"\"]\n            });\n        }\n    };\n    this.replace = function(range, text) {\n        if (!(range instanceof Range))\n            range = Range.fromPoints(range.start, range.end);\n        if (text.length === 0 && range.isEmpty())\n            return range.start;\n        if (text == this.getTextRange(range))\n            return range.end;\n\n        this.remove(range);\n        var end;\n        if (text) {\n            end = this.insert(range.start, text);\n        }\n        else {\n            end = range.start;\n        }\n        \n        return end;\n    };\n    this.applyDeltas = function(deltas) {\n        for (var i=0; i<deltas.length; i++) {\n            this.applyDelta(deltas[i]);\n        }\n    };\n    this.revertDeltas = function(deltas) {\n        for (var i=deltas.length-1; i>=0; i--) {\n            this.revertDelta(deltas[i]);\n        }\n    };\n    this.applyDelta = function(delta, doNotValidate) {\n        var isInsert = delta.action == \"insert\";\n        if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n            : !Range.comparePoints(delta.start, delta.end)) {\n            return;\n        }\n        \n        if (isInsert && delta.lines.length > 20000)\n            this.$splitAndapplyLargeDelta(delta, 20000);\n        applyDelta(this.$lines, delta, doNotValidate);\n        this._signal(\"change\", delta);\n    };\n    \n    this.$splitAndapplyLargeDelta = function(delta, MAX) {\n        var lines = delta.lines;\n        var l = lines.length;\n        var row = delta.start.row; \n        var column = delta.start.column;\n        var from = 0, to = 0;\n        do {\n            from = to;\n            to += MAX - 1;\n            var chunk = lines.slice(from, to);\n            if (to > l) {\n                delta.lines = chunk;\n                delta.start.row = row + from;\n                delta.start.column = column;\n                break;\n            }\n            chunk.push(\"\");\n            this.applyDelta({\n                start: this.pos(row + from, column),\n                end: this.pos(row + to, column = 0),\n                action: delta.action,\n                lines: chunk\n            }, true);\n        } while(true);\n    };\n    this.revertDelta = function(delta) {\n        this.applyDelta({\n            start: this.clonePos(delta.start),\n            end: this.clonePos(delta.end),\n            action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n            lines: delta.lines.slice()\n        });\n    };\n    this.indexToPosition = function(index, startRow) {\n        var lines = this.$lines || this.getAllLines();\n        var newlineLength = this.getNewLineCharacter().length;\n        for (var i = startRow || 0, l = lines.length; i < l; i++) {\n            index -= lines[i].length + newlineLength;\n            if (index < 0)\n                return {row: i, column: index + lines[i].length + newlineLength};\n        }\n        return {row: l-1, column: lines[l-1].length};\n    };\n    this.positionToIndex = function(pos, startRow) {\n        var lines = this.$lines || this.getAllLines();\n        var newlineLength = this.getNewLineCharacter().length;\n        var index = 0;\n        var row = Math.min(pos.row, lines.length);\n        for (var i = startRow || 0; i < row; ++i)\n            index += lines[i].length + newlineLength;\n\n        return index + pos.column;\n    };\n\n}).call(Document.prototype);\n\nexports.Document = Document;\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.last = function(a) {\n    return a[a.length - 1];\n};\n\nexports.stringReverse = function(string) {\n    return string.split(\"\").reverse().join(\"\");\n};\n\nexports.stringRepeat = function (string, count) {\n    var result = '';\n    while (count > 0) {\n        if (count & 1)\n            result += string;\n\n        if (count >>= 1)\n            string += string;\n    }\n    return result;\n};\n\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\n\nexports.stringTrimLeft = function (string) {\n    return string.replace(trimBeginRegexp, '');\n};\n\nexports.stringTrimRight = function (string) {\n    return string.replace(trimEndRegexp, '');\n};\n\nexports.copyObject = function(obj) {\n    var copy = {};\n    for (var key in obj) {\n        copy[key] = obj[key];\n    }\n    return copy;\n};\n\nexports.copyArray = function(array){\n    var copy = [];\n    for (var i=0, l=array.length; i<l; i++) {\n        if (array[i] && typeof array[i] == \"object\")\n            copy[i] = this.copyObject(array[i]);\n        else \n            copy[i] = array[i];\n    }\n    return copy;\n};\n\nexports.deepCopy = function deepCopy(obj) {\n    if (typeof obj !== \"object\" || !obj)\n        return obj;\n    var copy;\n    if (Array.isArray(obj)) {\n        copy = [];\n        for (var key = 0; key < obj.length; key++) {\n            copy[key] = deepCopy(obj[key]);\n        }\n        return copy;\n    }\n    if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n        return obj;\n    \n    copy = {};\n    for (var key in obj)\n        copy[key] = deepCopy(obj[key]);\n    return copy;\n};\n\nexports.arrayToMap = function(arr) {\n    var map = {};\n    for (var i=0; i<arr.length; i++) {\n        map[arr[i]] = 1;\n    }\n    return map;\n\n};\n\nexports.createMap = function(props) {\n    var map = Object.create(null);\n    for (var i in props) {\n        map[i] = props[i];\n    }\n    return map;\n};\nexports.arrayRemove = function(array, value) {\n  for (var i = 0; i <= array.length; i++) {\n    if (value === array[i]) {\n      array.splice(i, 1);\n    }\n  }\n};\n\nexports.escapeRegExp = function(str) {\n    return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\n\nexports.escapeHTML = function(str) {\n    return str.replace(/&/g, \"&#38;\").replace(/\"/g, \"&#34;\").replace(/'/g, \"&#39;\").replace(/</g, \"&#60;\");\n};\n\nexports.getMatchOffsets = function(string, regExp) {\n    var matches = [];\n\n    string.replace(regExp, function(str) {\n        matches.push({\n            offset: arguments[arguments.length-2],\n            length: str.length\n        });\n    });\n\n    return matches;\n};\nexports.deferredCall = function(fcn) {\n    var timer = null;\n    var callback = function() {\n        timer = null;\n        fcn();\n    };\n\n    var deferred = function(timeout) {\n        deferred.cancel();\n        timer = setTimeout(callback, timeout || 0);\n        return deferred;\n    };\n\n    deferred.schedule = deferred;\n\n    deferred.call = function() {\n        this.cancel();\n        fcn();\n        return deferred;\n    };\n\n    deferred.cancel = function() {\n        clearTimeout(timer);\n        timer = null;\n        return deferred;\n    };\n    \n    deferred.isPending = function() {\n        return timer;\n    };\n\n    return deferred;\n};\n\n\nexports.delayedCall = function(fcn, defaultTimeout) {\n    var timer = null;\n    var callback = function() {\n        timer = null;\n        fcn();\n    };\n\n    var _self = function(timeout) {\n        if (timer == null)\n            timer = setTimeout(callback, timeout || defaultTimeout);\n    };\n\n    _self.delay = function(timeout) {\n        timer && clearTimeout(timer);\n        timer = setTimeout(callback, timeout || defaultTimeout);\n    };\n    _self.schedule = _self;\n\n    _self.call = function() {\n        this.cancel();\n        fcn();\n    };\n\n    _self.cancel = function() {\n        timer && clearTimeout(timer);\n        timer = null;\n    };\n\n    _self.isPending = function() {\n        return timer;\n    };\n\n    return _self;\n};\n});\n\nace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\nvar Document = require(\"../document\").Document;\nvar lang = require(\"../lib/lang\");\n    \nvar Mirror = exports.Mirror = function(sender) {\n    this.sender = sender;\n    var doc = this.doc = new Document(\"\");\n    \n    var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this));\n    \n    var _self = this;\n    sender.on(\"change\", function(e) {\n        var data = e.data;\n        if (data[0].start) {\n            doc.applyDeltas(data);\n        } else {\n            for (var i = 0; i < data.length; i += 2) {\n                if (Array.isArray(data[i+1])) {\n                    var d = {action: \"insert\", start: data[i], lines: data[i+1]};\n                } else {\n                    var d = {action: \"remove\", start: data[i], end: data[i+1]};\n                }\n                doc.applyDelta(d, true);\n            }\n        }\n        if (_self.$timeout)\n            return deferredUpdate.schedule(_self.$timeout);\n        _self.onUpdate();\n    });\n};\n\n(function() {\n    \n    this.$timeout = 500;\n    \n    this.setTimeout = function(timeout) {\n        this.$timeout = timeout;\n    };\n    \n    this.setValue = function(value) {\n        this.doc.setValue(value);\n        this.deferredUpdate.schedule(this.$timeout);\n    };\n    \n    this.getValue = function(callbackId) {\n        this.sender.callback(this.doc.getValue(), callbackId);\n    };\n    \n    this.onUpdate = function() {\n    };\n    \n    this.isPending = function() {\n        return this.deferredUpdate.isPending();\n    };\n    \n}).call(Mirror.prototype);\n\n});\n\nace.define(\"ace/mode/coffee/coffee\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\nfunction define(f) { module.exports = f() }; define.amd = {};\n(function(root){var CoffeeScript=function(){function _dereq_(e){return _dereq_[e]}return _dereq_[\"./helpers\"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o;e.starts=function(e,t,n){return t===e.substr(n,t.length)},e.ends=function(e,t,n){var i;return i=t.length,t===e.substr(e.length-i-(n||0),i)},e.repeat=s=function(e,t){var n;for(n=\"\";t>0;)1&t&&(n+=e),t>>>=1,e+=e;return n},e.compact=function(e){var t,n,i,r;for(r=[],t=0,i=e.length;i>t;t++)n=e[t],n&&r.push(n);return r},e.count=function(e,t){var n,i;if(n=i=0,!t.length)return 1/0;for(;i=1+e.indexOf(t,i);)n++;return n},e.merge=function(e,t){return n(n({},e),t)},n=e.extend=function(e,t){var n,i;for(n in t)i=t[n],e[n]=i;return e},e.flatten=i=function(e){var t,n,r,s;for(n=[],r=0,s=e.length;s>r;r++)t=e[r],t instanceof Array?n=n.concat(i(t)):n.push(t);return n},e.del=function(e,t){var n;return n=e[t],delete e[t],n},e.some=null!=(r=Array.prototype.some)?r:function(e){var t,n,i;for(n=0,i=this.length;i>n;n++)if(t=this[n],e(t))return!0;return!1},e.invertLiterate=function(e){var t,n,i;return i=!0,n=function(){var n,r,s,o;for(s=e.split(\"\\n\"),o=[],n=0,r=s.length;r>n;n++)t=s[n],i&&/^([ ]{4}|[ ]{0,3}\\t)/.test(t)?o.push(t):(i=/^\\s*$/.test(t))?o.push(t):o.push(\"# \"+t);return o}(),n.join(\"\\n\")},t=function(e,t){return t?{first_line:e.first_line,first_column:e.first_column,last_line:t.last_line,last_column:t.last_column}:e},e.addLocationDataFn=function(e,n){return function(i){return\"object\"==typeof i&&i.updateLocationDataIfMissing&&i.updateLocationDataIfMissing(t(e,n)),i}},e.locationDataToString=function(e){var t;return\"2\"in e&&\"first_line\"in e[2]?t=e[2]:\"first_line\"in e&&(t=e),t?t.first_line+1+\":\"+(t.first_column+1)+\"-\"+(t.last_line+1+\":\"+(t.last_column+1)):\"No location data\"},e.baseFileName=function(e,t,n){var i,r;return null==t&&(t=!1),null==n&&(n=!1),r=n?/\\\\|\\//:/\\//,i=e.split(r),e=i[i.length-1],t&&e.indexOf(\".\")>=0?(i=e.split(\".\"),i.pop(),\"coffee\"===i[i.length-1]&&i.length>1&&i.pop(),i.join(\".\")):e},e.isCoffee=function(e){return/\\.((lit)?coffee|coffee\\.md)$/.test(e)},e.isLiterate=function(e){return/\\.(litcoffee|coffee\\.md)$/.test(e)},e.throwSyntaxError=function(e,t){var n;throw n=new SyntaxError(e),n.location=t,n.toString=o,n.stack=\"\"+n,n},e.updateSyntaxError=function(e,t,n){return e.toString===o&&(e.code||(e.code=t),e.filename||(e.filename=n),e.stack=\"\"+e),e},o=function(){var e,t,n,i,r,o,a,c,h,l,u,p,d,f,m;return this.code&&this.location?(u=this.location,a=u.first_line,o=u.first_column,h=u.last_line,c=u.last_column,null==h&&(h=a),null==c&&(c=o),r=this.filename||\"[stdin]\",e=this.code.split(\"\\n\")[a],m=o,i=a===h?c+1:e.length,l=e.slice(0,m).replace(/[^\\s]/g,\" \")+s(\"^\",i-m),\"undefined\"!=typeof process&&null!==process&&(n=(null!=(p=process.stdout)?p.isTTY:void 0)&&!(null!=(d=process.env)?d.NODE_DISABLE_COLORS:void 0)),(null!=(f=this.colorful)?f:n)&&(t=function(e){return\"\u001b[1;31m\"+e+\"\u001b[0m\"},e=e.slice(0,m)+t(e.slice(m,i))+e.slice(i),l=t(l)),r+\":\"+(a+1)+\":\"+(o+1)+\": error: \"+this.message+\"\\n\"+e+\"\\n\"+l):Error.prototype.toString.call(this)},e.nameWhitespaceCharacter=function(e){switch(e){case\" \":return\"space\";case\"\\n\":return\"newline\";case\"\\r\":return\"carriage return\";case\"\t\":return\"tab\";default:return e}}}.call(this),t.exports}(),_dereq_[\"./rewriter\"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o,a,c,h,l,u,p,d,f,m,g,v,y,b,k=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},w=[].slice;for(f=function(e,t,n){var i;return i=[e,t],i.generated=!0,n&&(i.origin=n),i},e.Rewriter=function(){function e(){}return e.prototype.rewrite=function(e){return this.tokens=e,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addLocationDataToGeneratedTokens(),this.tokens},e.prototype.scanTokens=function(e){var t,n,i;for(i=this.tokens,t=0;n=i[t];)t+=e.call(this,n,t,i);return!0},e.prototype.detectEnd=function(e,t,n){var i,o,a,c,h;for(h=this.tokens,i=0;c=h[e];){if(0===i&&t.call(this,c,e))return n.call(this,c,e);if(!c||0>i)return n.call(this,c,e-1);o=c[0],k.call(s,o)>=0?i+=1:(a=c[0],k.call(r,a)>=0&&(i-=1)),e+=1}return e-1},e.prototype.removeLeadingNewlines=function(){var e,t,n,i,r;for(i=this.tokens,e=t=0,n=i.length;n>t&&(r=i[e][0],\"TERMINATOR\"===r);e=++t);return e?this.tokens.splice(0,e):void 0},e.prototype.closeOpenCalls=function(){var e,t;return t=function(e,t){var n;return\")\"===(n=e[0])||\"CALL_END\"===n||\"OUTDENT\"===e[0]&&\")\"===this.tag(t-1)},e=function(e,t){return this.tokens[\"OUTDENT\"===e[0]?t-1:t][0]=\"CALL_END\"},this.scanTokens(function(n,i){return\"CALL_START\"===n[0]&&this.detectEnd(i+1,t,e),1})},e.prototype.closeOpenIndexes=function(){var e,t;return t=function(e){var t;return\"]\"===(t=e[0])||\"INDEX_END\"===t},e=function(e){return e[0]=\"INDEX_END\"},this.scanTokens(function(n,i){return\"INDEX_START\"===n[0]&&this.detectEnd(i+1,t,e),1})},e.prototype.indexOfTag=function(){var e,t,n,i,r,s,o;for(t=arguments[0],r=arguments.length>=2?w.call(arguments,1):[],e=0,n=i=0,s=r.length;s>=0?s>i:i>s;n=s>=0?++i:--i){for(;\"HERECOMMENT\"===this.tag(t+n+e);)e+=2;if(null!=r[n]&&(\"string\"==typeof r[n]&&(r[n]=[r[n]]),o=this.tag(t+n+e),0>k.call(r[n],o)))return-1}return t+n+e-1},e.prototype.looksObjectish=function(e){var t,n;return this.indexOfTag(e,\"@\",null,\":\")>-1||this.indexOfTag(e,null,\":\")>-1?!0:(n=this.indexOfTag(e,s),n>-1&&(t=null,this.detectEnd(n+1,function(e){var t;return t=e[0],k.call(r,t)>=0},function(e,n){return t=n}),\":\"===this.tag(t+1))?!0:!1)},e.prototype.findTagsBackwards=function(e,t){var n,i,o,a,c,h,l;for(n=[];e>=0&&(n.length||(a=this.tag(e),0>k.call(t,a)&&(c=this.tag(e),0>k.call(s,c)||this.tokens[e].generated)&&(h=this.tag(e),0>k.call(u,h))));)i=this.tag(e),k.call(r,i)>=0&&n.push(this.tag(e)),o=this.tag(e),k.call(s,o)>=0&&n.length&&n.pop(),e-=1;return l=this.tag(e),k.call(t,l)>=0},e.prototype.addImplicitBracesAndParens=function(){var e,t;return e=[],t=null,this.scanTokens(function(i,l,p){var d,m,g,v,y,b,w,T,C,E,F,N,L,x,S,D,R,A,I,_,O,$,j,M,B,V,P,U;if(U=i[0],F=(N=l>0?p[l-1]:[])[0],C=(p.length-1>l?p[l+1]:[])[0],j=function(){return e[e.length-1]},M=l,g=function(e){return l-M+e},v=function(){var e,t;return null!=(e=j())?null!=(t=e[2])?t.ours:void 0:void 0},y=function(){var e;return v()&&\"(\"===(null!=(e=j())?e[0]:void 0)},w=function(){var e;return v()&&\"{\"===(null!=(e=j())?e[0]:void 0)},b=function(){var e;return v&&\"CONTROL\"===(null!=(e=j())?e[0]:void 0)},B=function(t){var n;return n=null!=t?t:l,e.push([\"(\",n,{ours:!0}]),p.splice(n,0,f(\"CALL_START\",\"(\")),null==t?l+=1:void 0},d=function(){return e.pop(),p.splice(l,0,f(\"CALL_END\",\")\",[\"\",\"end of input\",i[2]])),l+=1},V=function(t,n){var r,s;return null==n&&(n=!0),r=null!=t?t:l,e.push([\"{\",r,{sameLine:!0,startsLine:n,ours:!0}]),s=new String(\"{\"),s.generated=!0,p.splice(r,0,f(\"{\",s,i)),null==t?l+=1:void 0},m=function(t){return t=null!=t?t:l,e.pop(),p.splice(t,0,f(\"}\",\"}\",i)),l+=1},y()&&(\"IF\"===U||\"TRY\"===U||\"FINALLY\"===U||\"CATCH\"===U||\"CLASS\"===U||\"SWITCH\"===U))return e.push([\"CONTROL\",l,{ours:!0}]),g(1);if(\"INDENT\"===U&&v()){if(\"=>\"!==F&&\"->\"!==F&&\"[\"!==F&&\"(\"!==F&&\",\"!==F&&\"{\"!==F&&\"TRY\"!==F&&\"ELSE\"!==F&&\"=\"!==F)for(;y();)d();return b()&&e.pop(),e.push([U,l]),g(1)}if(k.call(s,U)>=0)return e.push([U,l]),g(1);if(k.call(r,U)>=0){for(;v();)y()?d():w()?m():e.pop();t=e.pop()}if((k.call(c,U)>=0&&i.spaced||\"?\"===U&&l>0&&!p[l-1].spaced)&&(k.call(o,C)>=0||k.call(h,C)>=0&&!(null!=(L=p[l+1])?L.spaced:void 0)&&!(null!=(x=p[l+1])?x.newLine:void 0)))return\"?\"===U&&(U=i[0]=\"FUNC_EXIST\"),B(l+1),g(2);if(k.call(c,U)>=0&&this.indexOfTag(l+1,\"INDENT\")>-1&&this.looksObjectish(l+2)&&!this.findTagsBackwards(l,[\"CLASS\",\"EXTENDS\",\"IF\",\"CATCH\",\"SWITCH\",\"LEADING_WHEN\",\"FOR\",\"WHILE\",\"UNTIL\"]))return B(l+1),e.push([\"INDENT\",l+2]),g(3);if(\":\"===U){for(I=function(){var e;switch(!1){case e=this.tag(l-1),0>k.call(r,e):return t[1];case\"@\"!==this.tag(l-2):return l-2;default:return l-1}}.call(this);\"HERECOMMENT\"===this.tag(I-2);)I-=2;return this.insideForDeclaration=\"FOR\"===C,P=0===I||(S=this.tag(I-1),k.call(u,S)>=0)||p[I-1].newLine,j()&&(D=j(),$=D[0],O=D[1],(\"{\"===$||\"INDENT\"===$&&\"{\"===this.tag(O-1))&&(P||\",\"===this.tag(I-1)||\"{\"===this.tag(I-1)))?g(1):(V(I,!!P),g(2))}if(w()&&k.call(u,U)>=0&&(j()[2].sameLine=!1),T=\"OUTDENT\"===F||N.newLine,k.call(a,U)>=0||k.call(n,U)>=0&&T)for(;v();)if(R=j(),$=R[0],O=R[1],A=R[2],_=A.sameLine,P=A.startsLine,y()&&\",\"!==F)d();else if(w()&&!this.insideForDeclaration&&_&&\"TERMINATOR\"!==U&&\":\"!==F)m();else{if(!w()||\"TERMINATOR\"!==U||\",\"===F||P&&this.looksObjectish(l+1))break;if(\"HERECOMMENT\"===C)return g(1);m()}if(!(\",\"!==U||this.looksObjectish(l+1)||!w()||this.insideForDeclaration||\"TERMINATOR\"===C&&this.looksObjectish(l+2)))for(E=\"OUTDENT\"===C?1:0;w();)m(l+E);return g(1)})},e.prototype.addLocationDataToGeneratedTokens=function(){return this.scanTokens(function(e,t,n){var i,r,s,o,a,c;return e[2]?1:e.generated||e.explicit?(\"{\"===e[0]&&(s=null!=(a=n[t+1])?a[2]:void 0)?(r=s.first_line,i=s.first_column):(o=null!=(c=n[t-1])?c[2]:void 0)?(r=o.last_line,i=o.last_column):r=i=0,e[2]={first_line:r,first_column:i,last_line:r,last_column:i},1):1})},e.prototype.normalizeLines=function(){var e,t,r,s,o;return o=r=s=null,t=function(e,t){var r,s,a,c;return\";\"!==e[1]&&(r=e[0],k.call(p,r)>=0)&&!(\"TERMINATOR\"===e[0]&&(s=this.tag(t+1),k.call(i,s)>=0))&&!(\"ELSE\"===e[0]&&\"THEN\"!==o)&&!!(\"CATCH\"!==(a=e[0])&&\"FINALLY\"!==a||\"->\"!==o&&\"=>\"!==o)||(c=e[0],k.call(n,c)>=0&&this.tokens[t-1].newLine)},e=function(e,t){return this.tokens.splice(\",\"===this.tag(t-1)?t-1:t,0,s)},this.scanTokens(function(n,a,c){var h,l,u,p,f,m;if(m=n[0],\"TERMINATOR\"===m){if(\"ELSE\"===this.tag(a+1)&&\"OUTDENT\"!==this.tag(a-1))return c.splice.apply(c,[a,1].concat(w.call(this.indentation()))),1;if(u=this.tag(a+1),k.call(i,u)>=0)return c.splice(a,1),0}if(\"CATCH\"===m)for(h=l=1;2>=l;h=++l)if(\"OUTDENT\"===(p=this.tag(a+h))||\"TERMINATOR\"===p||\"FINALLY\"===p)return c.splice.apply(c,[a+h,0].concat(w.call(this.indentation()))),2+h;return k.call(d,m)>=0&&\"INDENT\"!==this.tag(a+1)&&(\"ELSE\"!==m||\"IF\"!==this.tag(a+1))?(o=m,f=this.indentation(c[a]),r=f[0],s=f[1],\"THEN\"===o&&(r.fromThen=!0),c.splice(a+1,0,r),this.detectEnd(a+2,t,e),\"THEN\"===m&&c.splice(a,1),1):1})},e.prototype.tagPostfixConditionals=function(){var e,t,n;return n=null,t=function(e,t){var n,i;return i=e[0],n=this.tokens[t-1][0],\"TERMINATOR\"===i||\"INDENT\"===i&&0>k.call(d,n)},e=function(e){return\"INDENT\"!==e[0]||e.generated&&!e.fromThen?n[0]=\"POST_\"+n[0]:void 0},this.scanTokens(function(i,r){return\"IF\"!==i[0]?1:(n=i,this.detectEnd(r+1,t,e),1)})},e.prototype.indentation=function(e){var t,n;return t=[\"INDENT\",2],n=[\"OUTDENT\",2],e?(t.generated=n.generated=!0,t.origin=n.origin=e):t.explicit=n.explicit=!0,[t,n]},e.prototype.generate=f,e.prototype.tag=function(e){var t;return null!=(t=this.tokens[e])?t[0]:void 0},e}(),t=[[\"(\",\")\"],[\"[\",\"]\"],[\"{\",\"}\"],[\"INDENT\",\"OUTDENT\"],[\"CALL_START\",\"CALL_END\"],[\"PARAM_START\",\"PARAM_END\"],[\"INDEX_START\",\"INDEX_END\"],[\"STRING_START\",\"STRING_END\"],[\"REGEX_START\",\"REGEX_END\"]],e.INVERSES=l={},s=[],r=[],m=0,v=t.length;v>m;m++)y=t[m],g=y[0],b=y[1],s.push(l[b]=g),r.push(l[g]=b);i=[\"CATCH\",\"THEN\",\"ELSE\",\"FINALLY\"].concat(r),c=[\"IDENTIFIER\",\"SUPER\",\")\",\"CALL_END\",\"]\",\"INDEX_END\",\"@\",\"THIS\"],o=[\"IDENTIFIER\",\"NUMBER\",\"STRING\",\"STRING_START\",\"JS\",\"REGEX\",\"REGEX_START\",\"NEW\",\"PARAM_START\",\"CLASS\",\"IF\",\"TRY\",\"SWITCH\",\"THIS\",\"BOOL\",\"NULL\",\"UNDEFINED\",\"UNARY\",\"YIELD\",\"UNARY_MATH\",\"SUPER\",\"THROW\",\"@\",\"->\",\"=>\",\"[\",\"(\",\"{\",\"--\",\"++\"],h=[\"+\",\"-\"],a=[\"POST_IF\",\"FOR\",\"WHILE\",\"UNTIL\",\"WHEN\",\"BY\",\"LOOP\",\"TERMINATOR\"],d=[\"ELSE\",\"->\",\"=>\",\"TRY\",\"FINALLY\",\"THEN\"],p=[\"TERMINATOR\",\"CATCH\",\"FINALLY\",\"ELSE\",\"OUTDENT\",\"LEADING_WHEN\"],u=[\"TERMINATOR\",\"INDENT\",\"OUTDENT\"],n=[\".\",\"?.\",\"::\",\"?::\"]}.call(this),t.exports}(),_dereq_[\"./lexer\"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o,a,c,h,l,u,p,d,f,m,g,v,y,b,k,w,T,C,E,F,N,L,x,S,D,R,A,I,_,O,$,j,M,B,V,P,U,G,H,q,X,W,Y,K,z,J,Q,Z,et,tt,nt,it,rt,st,ot,at,ct,ht,lt,ut=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};ot=_dereq_(\"./rewriter\"),P=ot.Rewriter,w=ot.INVERSES,at=_dereq_(\"./helpers\"),nt=at.count,ht=at.starts,tt=at.compact,ct=at.repeat,it=at.invertLiterate,st=at.locationDataToString,lt=at.throwSyntaxError,e.Lexer=S=function(){function e(){}return e.prototype.tokenize=function(e,t){var n,i,r,s;for(null==t&&(t={}),this.literate=t.literate,this.indent=0,this.baseIndent=0,this.indebt=0,this.outdebt=0,this.indents=[],this.ends=[],this.tokens=[],this.chunkLine=t.line||0,this.chunkColumn=t.column||0,e=this.clean(e),r=0;this.chunk=e.slice(r);)if(n=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken(),s=this.getLineAndColumnFromChunk(n),this.chunkLine=s[0],this.chunkColumn=s[1],r+=n,t.untilBalanced&&0===this.ends.length)return{tokens:this.tokens,index:r};return this.closeIndentation(),(i=this.ends.pop())&&this.error(\"missing \"+i.tag,i.origin[2]),t.rewrite===!1?this.tokens:(new P).rewrite(this.tokens)},e.prototype.clean=function(e){return e.charCodeAt(0)===t&&(e=e.slice(1)),e=e.replace(/\\r/g,\"\").replace(z,\"\"),et.test(e)&&(e=\"\\n\"+e,this.chunkLine--),this.literate&&(e=it(e)),e},e.prototype.identifierToken=function(){var e,t,n,i,r,c,h,l,u,p,d,f,m,g,y,b;return(l=v.exec(this.chunk))?(h=l[0],r=l[1],t=l[2],c=r.length,u=void 0,\"own\"===r&&\"FOR\"===this.tag()?(this.token(\"OWN\",r),r.length):\"from\"===r&&\"YIELD\"===this.tag()?(this.token(\"FROM\",r),r.length):(d=this.tokens,p=d[d.length-1],i=t||null!=p&&(\".\"===(f=p[0])||\"?.\"===f||\"::\"===f||\"?::\"===f||!p.spaced&&\"@\"===p[0]),y=\"IDENTIFIER\",!i&&(ut.call(E,r)>=0||ut.call(a,r)>=0)&&(y=r.toUpperCase(),\"WHEN\"===y&&(m=this.tag(),ut.call(N,m)>=0)?y=\"LEADING_WHEN\":\"FOR\"===y?this.seenFor=!0:\"UNLESS\"===y?y=\"IF\":ut.call(J,y)>=0?y=\"UNARY\":ut.call(B,y)>=0&&(\"INSTANCEOF\"!==y&&this.seenFor?(y=\"FOR\"+y,this.seenFor=!1):(y=\"RELATION\",\"!\"===this.value()&&(u=this.tokens.pop(),r=\"!\"+r)))),ut.call(C,r)>=0&&(i?(y=\"IDENTIFIER\",r=new String(r),r.reserved=!0):ut.call(V,r)>=0&&this.error(\"reserved word '\"+r+\"'\",{length:r.length})),i||(ut.call(s,r)>=0&&(e=r,r=o[r]),y=function(){switch(r){case\"!\":return\"UNARY\";case\"==\":case\"!=\":return\"COMPARE\";case\"&&\":case\"||\":return\"LOGIC\";case\"true\":case\"false\":return\"BOOL\";case\"break\":case\"continue\":return\"STATEMENT\";default:return y}}()),b=this.token(y,r,0,c),e&&(b.origin=[y,e,b[2]]),b.variable=!i,u&&(g=[u[2].first_line,u[2].first_column],b[2].first_line=g[0],b[2].first_column=g[1]),t&&(n=h.lastIndexOf(\":\"),this.token(\":\",\":\",n,t.length)),h.length)):0},e.prototype.numberToken=function(){var e,t,n,i,r;return(n=I.exec(this.chunk))?(i=n[0],t=i.length,/^0[BOX]/.test(i)?this.error(\"radix prefix in '\"+i+\"' must be lowercase\",{offset:1}):/E/.test(i)&&!/^0x/.test(i)?this.error(\"exponential notation in '\"+i+\"' must be indicated with a lowercase 'e'\",{offset:i.indexOf(\"E\")}):/^0\\d*[89]/.test(i)?this.error(\"decimal literal '\"+i+\"' must not be prefixed with '0'\",{length:t}):/^0\\d+/.test(i)&&this.error(\"octal literal '\"+i+\"' must be prefixed with '0o'\",{length:t}),(r=/^0o([0-7]+)/.exec(i))&&(i=\"0x\"+parseInt(r[1],8).toString(16)),(e=/^0b([01]+)/.exec(i))&&(i=\"0x\"+parseInt(e[1],2).toString(16)),this.token(\"NUMBER\",i,0,t),t):0},e.prototype.stringToken=function(){var e,t,n,i,r,s,o,a,c,h,l,u,m,g,v,y;if(l=(Y.exec(this.chunk)||[])[0],!l)return 0;if(g=function(){switch(l){case\"'\":return W;case'\"':return q;case\"'''\":return f;case'\"\"\"':return p}}(),s=3===l.length,u=this.matchWithInterpolations(g,l),y=u.tokens,r=u.index,e=y.length-1,n=l.charAt(0),s){for(a=null,i=function(){var e,t,n;for(n=[],o=e=0,t=y.length;t>e;o=++e)v=y[o],\"NEOSTRING\"===v[0]&&n.push(v[1]);return n}().join(\"#{}\");h=d.exec(i);)t=h[1],(null===a||(m=t.length)>0&&a.length>m)&&(a=t);a&&(c=RegExp(\"^\"+a,\"gm\")),this.mergeInterpolationTokens(y,{delimiter:n},function(t){return function(n,i){return n=t.formatString(n),0===i&&(n=n.replace(F,\"\")),i===e&&(n=n.replace(K,\"\")),c&&(n=n.replace(c,\"\")),n}}(this))}else this.mergeInterpolationTokens(y,{delimiter:n},function(t){return function(n,i){return n=t.formatString(n),n=n.replace(G,function(t,r){return 0===i&&0===r||i===e&&r+t.length===n.length?\"\":\" \"})}}(this));return r},e.prototype.commentToken=function(){var e,t,n;return(n=this.chunk.match(c))?(e=n[0],t=n[1],t&&((n=u.exec(e))&&this.error(\"block comments cannot contain \"+n[0],{offset:n.index,length:n[0].length}),t.indexOf(\"\\n\")>=0&&(t=t.replace(RegExp(\"\\\\n\"+ct(\" \",this.indent),\"g\"),\"\\n\")),this.token(\"HERECOMMENT\",t,0,e.length)),e.length):0},e.prototype.jsToken=function(){var e,t;return\"`\"===this.chunk.charAt(0)&&(e=T.exec(this.chunk))?(this.token(\"JS\",(t=e[0]).slice(1,-1),0,t.length),t.length):0},e.prototype.regexToken=function(){var e,t,n,r,s,o,a,c,h,l,u,p,d;switch(!1){case!(o=M.exec(this.chunk)):this.error(\"regular expressions cannot begin with \"+o[2],{offset:o.index+o[1].length});break;case!(o=this.matchWithInterpolations(m,\"///\")):d=o.tokens,s=o.index;break;case!(o=$.exec(this.chunk)):if(p=o[0],e=o[1],t=o[2],this.validateEscapes(e,{isRegex:!0,offsetInChunk:1}),s=p.length,h=this.tokens,c=h[h.length-1],c)if(c.spaced&&(l=c[0],ut.call(i,l)>=0)){if(!t||O.test(p))return 0}else if(u=c[0],ut.call(A,u)>=0)return 0;t||this.error(\"missing / (unclosed regex)\");break;default:return 0}switch(r=j.exec(this.chunk.slice(s))[0],n=s+r.length,a=this.makeToken(\"REGEX\",null,0,n),!1){case!!Z.test(r):this.error(\"invalid regular expression flags \"+r,{offset:s,length:r.length});break;case!(p||1===d.length):null==e&&(e=this.formatHeregex(d[0][1])),this.token(\"REGEX\",\"\"+this.makeDelimitedLiteral(e,{delimiter:\"/\"})+r,0,n,a);break;default:this.token(\"REGEX_START\",\"(\",0,0,a),this.token(\"IDENTIFIER\",\"RegExp\",0,0),this.token(\"CALL_START\",\"(\",0,0),this.mergeInterpolationTokens(d,{delimiter:'\"',\"double\":!0},this.formatHeregex),r&&(this.token(\",\",\",\",s,0),this.token(\"STRING\",'\"'+r+'\"',s,r.length)),this.token(\")\",\")\",n,0),this.token(\"REGEX_END\",\")\",n,0)}return n},e.prototype.lineToken=function(){var e,t,n,i,r;if(!(n=R.exec(this.chunk)))return 0;if(t=n[0],this.seenFor=!1,r=t.length-1-t.lastIndexOf(\"\\n\"),i=this.unfinished(),r-this.indebt===this.indent)return i?this.suppressNewlines():this.newlineToken(0),t.length;if(r>this.indent){if(i)return this.indebt=r-this.indent,this.suppressNewlines(),t.length;if(!this.tokens.length)return this.baseIndent=this.indent=r,t.length;e=r-this.indent+this.outdebt,this.token(\"INDENT\",e,t.length-r,r),this.indents.push(e),this.ends.push({tag:\"OUTDENT\"}),this.outdebt=this.indebt=0,this.indent=r}else this.baseIndent>r?this.error(\"missing indentation\",{offset:t.length}):(this.indebt=0,this.outdentToken(this.indent-r,i,t.length));return t.length},e.prototype.outdentToken=function(e,t,n){var i,r,s,o;for(i=this.indent-e;e>0;)s=this.indents[this.indents.length-1],s?s===this.outdebt?(e-=this.outdebt,this.outdebt=0):this.outdebt>s?(this.outdebt-=s,e-=s):(r=this.indents.pop()+this.outdebt,n&&(o=this.chunk[n],ut.call(y,o)>=0)&&(i-=r-e,e=r),this.outdebt=0,this.pair(\"OUTDENT\"),this.token(\"OUTDENT\",e,0,n),e-=r):e=0;for(r&&(this.outdebt-=e);\";\"===this.value();)this.tokens.pop();return\"TERMINATOR\"===this.tag()||t||this.token(\"TERMINATOR\",\"\\n\",n,0),this.indent=i,this},e.prototype.whitespaceToken=function(){var e,t,n,i;return(e=et.exec(this.chunk))||(t=\"\\n\"===this.chunk.charAt(0))?(i=this.tokens,n=i[i.length-1],n&&(n[e?\"spaced\":\"newLine\"]=!0),e?e[0].length:0):0},e.prototype.newlineToken=function(e){for(;\";\"===this.value();)this.tokens.pop();return\"TERMINATOR\"!==this.tag()&&this.token(\"TERMINATOR\",\"\\n\",e,0),this},e.prototype.suppressNewlines=function(){return\"\\\\\"===this.value()&&this.tokens.pop(),this},e.prototype.literalToken=function(){var e,t,n,s,o,a,c,u,p,d;if((e=_.exec(this.chunk))?(d=e[0],r.test(d)&&this.tagParameters()):d=this.chunk.charAt(0),u=d,n=this.tokens,t=n[n.length-1],\"=\"===d&&t&&(!t[1].reserved&&(s=t[1],ut.call(C,s)>=0)&&(t.origin&&(t=t.origin),this.error(\"reserved word '\"+t[1]+\"' can't be assigned\",t[2])),\"||\"===(o=t[1])||\"&&\"===o))return t[0]=\"COMPOUND_ASSIGN\",t[1]+=\"=\",d.length;if(\";\"===d)this.seenFor=!1,u=\"TERMINATOR\";else if(ut.call(D,d)>=0)u=\"MATH\";else if(ut.call(h,d)>=0)u=\"COMPARE\";else if(ut.call(l,d)>=0)u=\"COMPOUND_ASSIGN\";else if(ut.call(J,d)>=0)u=\"UNARY\";else if(ut.call(Q,d)>=0)u=\"UNARY_MATH\";else if(ut.call(U,d)>=0)u=\"SHIFT\";else if(ut.call(x,d)>=0||\"?\"===d&&(null!=t?t.spaced:void 0))u=\"LOGIC\";else if(t&&!t.spaced)if(\"(\"===d&&(a=t[0],ut.call(i,a)>=0))\"?\"===t[0]&&(t[0]=\"FUNC_EXIST\"),u=\"CALL_START\";else if(\"[\"===d&&(c=t[0],ut.call(b,c)>=0))switch(u=\"INDEX_START\",t[0]){case\"?\":t[0]=\"INDEX_SOAK\"}switch(p=this.makeToken(u,d),d){case\"(\":case\"{\":case\"[\":this.ends.push({tag:w[d],origin:p});break;case\")\":case\"}\":case\"]\":this.pair(d)}return this.tokens.push(p),d.length},e.prototype.tagParameters=function(){var e,t,n,i;if(\")\"!==this.tag())return this;for(t=[],i=this.tokens,e=i.length,i[--e][0]=\"PARAM_END\";n=i[--e];)switch(n[0]){case\")\":t.push(n);break;case\"(\":case\"CALL_START\":if(!t.length)return\"(\"===n[0]?(n[0]=\"PARAM_START\",this):this;t.pop()}return this},e.prototype.closeIndentation=function(){return this.outdentToken(this.indent)},e.prototype.matchWithInterpolations=function(t,n){var i,r,s,o,a,c,h,l,u,p,d,f,m,g,v;if(v=[],l=n.length,this.chunk.slice(0,l)!==n)return null;for(m=this.chunk.slice(l);;){if(g=t.exec(m)[0],this.validateEscapes(g,{isRegex:\"/\"===n.charAt(0),offsetInChunk:l}),v.push(this.makeToken(\"NEOSTRING\",g,l)),m=m.slice(g.length),l+=g.length,\"#{\"!==m.slice(0,2))break;p=this.getLineAndColumnFromChunk(l+1),c=p[0],r=p[1],d=(new e).tokenize(m.slice(1),{line:c,column:r,untilBalanced:!0}),h=d.tokens,o=d.index,o+=1,u=h[0],i=h[h.length-1],u[0]=u[1]=\"(\",i[0]=i[1]=\")\",i.origin=[\"\",\"end of interpolation\",i[2]],\"TERMINATOR\"===(null!=(f=h[1])?f[0]:void 0)&&h.splice(1,1),v.push([\"TOKENS\",h]),m=m.slice(o),l+=o}return m.slice(0,n.length)!==n&&this.error(\"missing \"+n,{length:n.length}),s=v[0],a=v[v.length-1],s[2].first_column-=n.length,a[2].last_column+=n.length,0===a[1].length&&(a[2].last_column-=1),{tokens:v,index:l+n.length}},e.prototype.mergeInterpolationTokens=function(e,t,n){var i,r,s,o,a,c,h,l,u,p,d,f,m,g,v,y;for(e.length>1&&(u=this.token(\"STRING_START\",\"(\",0,0)),s=this.tokens.length,o=a=0,h=e.length;h>a;o=++a){switch(g=e[o],m=g[0],y=g[1],m){case\"TOKENS\":if(2===y.length)continue;l=y[0],v=y;break;case\"NEOSTRING\":if(i=n(g[1],o),0===i.length){if(0!==o)continue;r=this.tokens.length}2===o&&null!=r&&this.tokens.splice(r,2),g[0]=\"STRING\",g[1]=this.makeDelimitedLiteral(i,t),l=g,v=[g]}this.tokens.length>s&&(p=this.token(\"+\",\"+\"),p[2]={first_line:l[2].first_line,first_column:l[2].first_column,last_line:l[2].first_line,last_column:l[2].first_column}),(d=this.tokens).push.apply(d,v)}return u?(c=e[e.length-1],u.origin=[\"STRING\",null,{first_line:u[2].first_line,first_column:u[2].first_column,last_line:c[2].last_line,last_column:c[2].last_column}],f=this.token(\"STRING_END\",\")\"),f[2]={first_line:c[2].last_line,first_column:c[2].last_column,last_line:c[2].last_line,last_column:c[2].last_column}):void 0},e.prototype.pair=function(e){var t,n,i,r,s;return i=this.ends,n=i[i.length-1],e!==(s=null!=n?n.tag:void 0)?(\"OUTDENT\"!==s&&this.error(\"unmatched \"+e),r=this.indents,t=r[r.length-1],this.outdentToken(t,!0),this.pair(e)):this.ends.pop()},e.prototype.getLineAndColumnFromChunk=function(e){var t,n,i,r,s;return 0===e?[this.chunkLine,this.chunkColumn]:(s=e>=this.chunk.length?this.chunk:this.chunk.slice(0,+(e-1)+1||9e9),i=nt(s,\"\\n\"),t=this.chunkColumn,i>0?(r=s.split(\"\\n\"),n=r[r.length-1],t=n.length):t+=s.length,[this.chunkLine+i,t])},e.prototype.makeToken=function(e,t,n,i){var r,s,o,a,c;return null==n&&(n=0),null==i&&(i=t.length),s={},o=this.getLineAndColumnFromChunk(n),s.first_line=o[0],s.first_column=o[1],r=Math.max(0,i-1),a=this.getLineAndColumnFromChunk(n+r),s.last_line=a[0],s.last_column=a[1],c=[e,t,s]},e.prototype.token=function(e,t,n,i,r){var s;return s=this.makeToken(e,t,n,i),r&&(s.origin=r),this.tokens.push(s),s},e.prototype.tag=function(){var e,t;return e=this.tokens,t=e[e.length-1],null!=t?t[0]:void 0},e.prototype.value=function(){var e,t;return e=this.tokens,t=e[e.length-1],null!=t?t[1]:void 0},e.prototype.unfinished=function(){var e;return L.test(this.chunk)||\"\\\\\"===(e=this.tag())||\".\"===e||\"?.\"===e||\"?::\"===e||\"UNARY\"===e||\"MATH\"===e||\"UNARY_MATH\"===e||\"+\"===e||\"-\"===e||\"YIELD\"===e||\"**\"===e||\"SHIFT\"===e||\"RELATION\"===e||\"COMPARE\"===e||\"LOGIC\"===e||\"THROW\"===e||\"EXTENDS\"===e},e.prototype.formatString=function(e){return e.replace(X,\"$1\")},e.prototype.formatHeregex=function(e){return e.replace(g,\"$1$2\")},e.prototype.validateEscapes=function(e,t){var n,i,r,s,o,a,c,h;return null==t&&(t={}),s=k.exec(e),!s||(s[0],n=s[1],a=s[2],i=s[3],h=s[4],t.isRegex&&a&&\"0\"!==a.charAt(0))?void 0:(o=a?\"octal escape sequences are not allowed\":\"invalid escape sequence\",r=\"\\\\\"+(a||i||h),this.error(o+\" \"+r,{offset:(null!=(c=t.offsetInChunk)?c:0)+s.index+n.length,length:r.length}))},e.prototype.makeDelimitedLiteral=function(e,t){var n;return null==t&&(t={}),\"\"===e&&\"/\"===t.delimiter&&(e=\"(?:)\"),n=RegExp(\"(\\\\\\\\\\\\\\\\)|(\\\\\\\\0(?=[1-7]))|\\\\\\\\?(\"+t.delimiter+\")|\\\\\\\\?(?:(\\\\n)|(\\\\r)|(\\\\u2028)|(\\\\u2029))|(\\\\\\\\.)\",\"g\"),e=e.replace(n,function(e,n,i,r,s,o,a,c,h){switch(!1){case!n:return t.double?n+n:n;case!i:return\"\\\\x00\";case!r:return\"\\\\\"+r;case!s:return\"\\\\n\";case!o:return\"\\\\r\";case!a:return\"\\\\u2028\";case!c:return\"\\\\u2029\";case!h:return t.double?\"\\\\\"+h:h}}),\"\"+t.delimiter+e+t.delimiter},e.prototype.error=function(e,t){var n,i,r,s,o,a;return null==t&&(t={}),r=\"first_line\"in t?t:(o=this.getLineAndColumnFromChunk(null!=(s=t.offset)?s:0),i=o[0],n=o[1],o,{first_line:i,first_column:n,last_column:n+(null!=(a=t.length)?a:1)-1}),lt(e,r)},e}(),E=[\"true\",\"false\",\"null\",\"this\",\"new\",\"delete\",\"typeof\",\"in\",\"instanceof\",\"return\",\"throw\",\"break\",\"continue\",\"debugger\",\"yield\",\"if\",\"else\",\"switch\",\"for\",\"while\",\"do\",\"try\",\"catch\",\"finally\",\"class\",\"extends\",\"super\"],a=[\"undefined\",\"then\",\"unless\",\"until\",\"loop\",\"of\",\"by\",\"when\"],o={and:\"&&\",or:\"||\",is:\"==\",isnt:\"!=\",not:\"!\",yes:\"true\",no:\"false\",on:\"true\",off:\"false\"},s=function(){var e;e=[];for(rt in o)e.push(rt);return e}(),a=a.concat(s),V=[\"case\",\"default\",\"function\",\"var\",\"void\",\"with\",\"const\",\"let\",\"enum\",\"export\",\"import\",\"native\",\"implements\",\"interface\",\"package\",\"private\",\"protected\",\"public\",\"static\"],H=[\"arguments\",\"eval\",\"yield*\"],C=E.concat(V).concat(H),e.RESERVED=V.concat(E).concat(a).concat(H),e.STRICT_PROSCRIBED=H,t=65279,v=/^(?!\\d)((?:(?!\\s)[$\\w\\x7f-\\uffff])+)([^\\n\\S]*:(?!:))?/,I=/^0b[01]+|^0o[0-7]+|^0x[\\da-f]+|^\\d*\\.?\\d+(?:e[+-]?\\d+)?/i,_=/^(?:[-=]>|[-+*\\/%<>&|^!?=]=|>>>=?|([-+:])\\1|([&|<>*\\/%])\\2=?|\\?(\\.|::)|\\.{2,3})/,et=/^[^\\n\\S]+/,c=/^###([^#][\\s\\S]*?)(?:###[^\\n\\S]*|###$)|^(?:\\s*#(?!##[^#]).*)+/,r=/^[-=]>/,R=/^(?:\\n[^\\n\\S]*)+/,T=/^`[^\\\\`]*(?:\\\\.[^\\\\`]*)*`/,Y=/^(?:'''|\"\"\"|'|\")/,W=/^(?:[^\\\\']|\\\\[\\s\\S])*/,q=/^(?:[^\\\\\"#]|\\\\[\\s\\S]|\\#(?!\\{))*/,f=/^(?:[^\\\\']|\\\\[\\s\\S]|'(?!''))*/,p=/^(?:[^\\\\\"#]|\\\\[\\s\\S]|\"(?!\"\")|\\#(?!\\{))*/,X=/((?:\\\\\\\\)+)|\\\\[^\\S\\n]*\\n\\s*/g,G=/\\s*\\n\\s*/g,d=/\\n+([^\\n\\S]*)(?=\\S)/g,$=/^\\/(?!\\/)((?:[^[\\/\\n\\\\]|\\\\[^\\n]|\\[(?:\\\\[^\\n]|[^\\]\\n\\\\])*\\])*)(\\/)?/,j=/^\\w*/,Z=/^(?!.*(.).*\\1)[imgy]*$/,m=/^(?:[^\\\\\\/#]|\\\\[\\s\\S]|\\/(?!\\/\\/)|\\#(?!\\{))*/,g=/((?:\\\\\\\\)+)|\\\\(\\s)|\\s+(?:#.*)?/g,M=/^(\\/|\\/{3}\\s*)(\\*)/,O=/^\\/=?\\s/,u=/\\*\\//,L=/^\\s*(?:,|\\??\\.(?![.\\d])|::)/,k=/((?:^|[^\\\\])(?:\\\\\\\\)*)\\\\(?:(0[0-7]|[1-7])|(x(?![\\da-fA-F]{2}).{0,2})|(u(?![\\da-fA-F]{4}).{0,4}))/,F=/^[^\\n\\S]*\\n/,K=/\\n[^\\n\\S]*$/,z=/\\s+$/,l=[\"-=\",\"+=\",\"/=\",\"*=\",\"%=\",\"||=\",\"&&=\",\"?=\",\"<<=\",\">>=\",\">>>=\",\"&=\",\"^=\",\"|=\",\"**=\",\"//=\",\"%%=\"],J=[\"NEW\",\"TYPEOF\",\"DELETE\",\"DO\"],Q=[\"!\",\"~\"],x=[\"&&\",\"||\",\"&\",\"|\",\"^\"],U=[\"<<\",\">>\",\">>>\"],h=[\"==\",\"!=\",\"<\",\">\",\"<=\",\">=\"],D=[\"*\",\"/\",\"%\",\"//\",\"%%\"],B=[\"IN\",\"OF\",\"INSTANCEOF\"],n=[\"TRUE\",\"FALSE\"],i=[\"IDENTIFIER\",\")\",\"]\",\"?\",\"@\",\"THIS\",\"SUPER\"],b=i.concat([\"NUMBER\",\"STRING\",\"STRING_END\",\"REGEX\",\"REGEX_END\",\"BOOL\",\"NULL\",\"UNDEFINED\",\"}\",\"::\"]),A=b.concat([\"++\",\"--\"]),N=[\"INDENT\",\"OUTDENT\",\"TERMINATOR\"],y=[\")\",\"}\",\"]\"]}.call(this),t.exports}(),_dereq_[\"./parser\"]=function(){var e={},t={exports:e},n=function(){function e(){this.yy={}}var t=function(e,t,n,i){for(n=n||{},i=e.length;i--;n[e[i]]=t);return n},n=[1,20],i=[1,75],r=[1,71],s=[1,76],o=[1,77],a=[1,73],c=[1,74],h=[1,50],l=[1,52],u=[1,53],p=[1,54],d=[1,55],f=[1,45],m=[1,46],g=[1,27],v=[1,60],y=[1,61],b=[1,70],k=[1,43],w=[1,26],T=[1,58],C=[1,59],E=[1,57],F=[1,38],N=[1,44],L=[1,56],x=[1,65],S=[1,66],D=[1,67],R=[1,68],A=[1,42],I=[1,64],_=[1,29],O=[1,30],$=[1,31],j=[1,32],M=[1,33],B=[1,34],V=[1,35],P=[1,78],U=[1,6,26,34,108],G=[1,88],H=[1,81],q=[1,80],X=[1,79],W=[1,82],Y=[1,83],K=[1,84],z=[1,85],J=[1,86],Q=[1,87],Z=[1,91],et=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],tt=[1,97],nt=[1,98],it=[1,99],rt=[1,100],st=[1,102],ot=[1,103],at=[1,96],ct=[2,112],ht=[1,6,25,26,34,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],lt=[2,79],ut=[1,108],pt=[2,58],dt=[1,112],ft=[1,117],mt=[1,118],gt=[1,120],vt=[1,6,25,26,34,46,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],yt=[2,76],bt=[1,6,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],kt=[1,155],wt=[1,157],Tt=[1,152],Ct=[1,6,25,26,34,46,55,60,63,72,73,74,75,77,79,80,84,86,90,91,92,97,99,108,110,111,112,116,117,132,135,136,139,140,141,142,143,144,145,146,147,148],Et=[2,95],Ft=[1,6,25,26,34,49,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],Nt=[1,6,25,26,34,46,49,55,60,63,72,73,74,75,77,79,80,84,86,90,91,92,97,99,108,110,111,112,116,117,123,124,132,135,136,139,140,141,142,143,144,145,146,147,148],Lt=[1,206],xt=[1,205],St=[1,6,25,26,34,38,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],Dt=[2,56],Rt=[1,216],At=[6,25,26,55,60],It=[6,25,26,46,55,60,63],_t=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,142,144,145,146,147],Ot=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132],$t=[72,73,74,75,77,80,90,91],jt=[1,235],Mt=[2,133],Bt=[1,6,25,26,34,46,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,123,124,132,135,136,141,142,143,144,145,146,147],Vt=[1,244],Pt=[6,25,26,60,92,97],Ut=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,117,132],Gt=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,111,117,132],Ht=[123,124],qt=[60,123,124],Xt=[1,255],Wt=[6,25,26,60,84],Yt=[6,25,26,49,60,84],Kt=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,144,145,146,147],zt=[11,28,30,32,33,36,37,40,41,42,43,44,51,52,53,57,58,79,82,85,89,94,95,96,102,106,107,110,112,114,116,125,131,133,134,135,136,137,139,140],Jt=[2,122],Qt=[6,25,26],Zt=[2,57],en=[1,268],tn=[1,269],nn=[1,6,25,26,34,55,60,63,79,84,92,97,99,104,105,108,110,111,112,116,117,127,129,132,135,136,141,142,143,144,145,146,147],rn=[26,127,129],sn=[1,6,26,34,55,60,63,79,84,92,97,99,108,111,117,132],on=[2,71],an=[1,291],cn=[1,292],hn=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,127,132,135,136,141,142,143,144,145,146,147],ln=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,112,116,117,132],un=[1,303],pn=[1,304],dn=[6,25,26,60],fn=[1,6,25,26,34,55,60,63,79,84,92,97,99,104,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],mn=[25,60],gn={trace:function(){},yy:{},symbols_:{error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8,Return:9,Comment:10,STATEMENT:11,Value:12,Invocation:13,Code:14,Operation:15,Assign:16,If:17,Try:18,While:19,For:20,Switch:21,Class:22,Throw:23,Block:24,INDENT:25,OUTDENT:26,Identifier:27,IDENTIFIER:28,AlphaNumeric:29,NUMBER:30,String:31,STRING:32,STRING_START:33,STRING_END:34,Regex:35,REGEX:36,REGEX_START:37,REGEX_END:38,Literal:39,JS:40,DEBUGGER:41,UNDEFINED:42,NULL:43,BOOL:44,Assignable:45,\"=\":46,AssignObj:47,ObjAssignable:48,\":\":49,ThisProperty:50,RETURN:51,HERECOMMENT:52,PARAM_START:53,ParamList:54,PARAM_END:55,FuncGlyph:56,\"->\":57,\"=>\":58,OptComma:59,\",\":60,Param:61,ParamVar:62,\"...\":63,Array:64,Object:65,Splat:66,SimpleAssignable:67,Accessor:68,Parenthetical:69,Range:70,This:71,\".\":72,\"?.\":73,\"::\":74,\"?::\":75,Index:76,INDEX_START:77,IndexValue:78,INDEX_END:79,INDEX_SOAK:80,Slice:81,\"{\":82,AssignList:83,\"}\":84,CLASS:85,EXTENDS:86,OptFuncExist:87,Arguments:88,SUPER:89,FUNC_EXIST:90,CALL_START:91,CALL_END:92,ArgList:93,THIS:94,\"@\":95,\"[\":96,\"]\":97,RangeDots:98,\"..\":99,Arg:100,SimpleArgs:101,TRY:102,Catch:103,FINALLY:104,CATCH:105,THROW:106,\"(\":107,\")\":108,WhileSource:109,WHILE:110,WHEN:111,UNTIL:112,Loop:113,LOOP:114,ForBody:115,FOR:116,BY:117,ForStart:118,ForSource:119,ForVariables:120,OWN:121,ForValue:122,FORIN:123,FOROF:124,SWITCH:125,Whens:126,ELSE:127,When:128,LEADING_WHEN:129,IfBlock:130,IF:131,POST_IF:132,UNARY:133,UNARY_MATH:134,\"-\":135,\"+\":136,YIELD:137,FROM:138,\"--\":139,\"++\":140,\"?\":141,MATH:142,\"**\":143,SHIFT:144,COMPARE:145,LOGIC:146,RELATION:147,COMPOUND_ASSIGN:148,$accept:0,$end:1},terminals_:{2:\"error\",6:\"TERMINATOR\",11:\"STATEMENT\",25:\"INDENT\",26:\"OUTDENT\",28:\"IDENTIFIER\",30:\"NUMBER\",32:\"STRING\",33:\"STRING_START\",34:\"STRING_END\",36:\"REGEX\",37:\"REGEX_START\",38:\"REGEX_END\",40:\"JS\",41:\"DEBUGGER\",42:\"UNDEFINED\",43:\"NULL\",44:\"BOOL\",46:\"=\",49:\":\",51:\"RETURN\",52:\"HERECOMMENT\",53:\"PARAM_START\",55:\"PARAM_END\",57:\"->\",58:\"=>\",60:\",\",63:\"...\",72:\".\",73:\"?.\",74:\"::\",75:\"?::\",77:\"INDEX_START\",79:\"INDEX_END\",80:\"INDEX_SOAK\",82:\"{\",84:\"}\",85:\"CLASS\",86:\"EXTENDS\",89:\"SUPER\",90:\"FUNC_EXIST\",91:\"CALL_START\",92:\"CALL_END\",94:\"THIS\",95:\"@\",96:\"[\",97:\"]\",99:\"..\",102:\"TRY\",104:\"FINALLY\",105:\"CATCH\",106:\"THROW\",107:\"(\",108:\")\",110:\"WHILE\",111:\"WHEN\",112:\"UNTIL\",114:\"LOOP\",116:\"FOR\",117:\"BY\",121:\"OWN\",123:\"FORIN\",124:\"FOROF\",125:\"SWITCH\",127:\"ELSE\",129:\"LEADING_WHEN\",131:\"IF\",132:\"POST_IF\",133:\"UNARY\",134:\"UNARY_MATH\",135:\"-\",136:\"+\",137:\"YIELD\",138:\"FROM\",139:\"--\",140:\"++\",141:\"?\",142:\"MATH\",143:\"**\",144:\"SHIFT\",145:\"COMPARE\",146:\"LOGIC\",147:\"RELATION\",148:\"COMPOUND_ASSIGN\"},productions_:[0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[8,1],[8,1],[8,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[24,2],[24,3],[27,1],[29,1],[29,1],[31,1],[31,3],[35,1],[35,3],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[16,3],[16,4],[16,5],[47,1],[47,3],[47,5],[47,1],[48,1],[48,1],[48,1],[9,2],[9,1],[10,1],[14,5],[14,2],[56,1],[56,1],[59,0],[59,1],[54,0],[54,1],[54,3],[54,4],[54,6],[61,1],[61,2],[61,3],[61,1],[62,1],[62,1],[62,1],[62,1],[66,2],[67,1],[67,2],[67,2],[67,1],[45,1],[45,1],[45,1],[12,1],[12,1],[12,1],[12,1],[12,1],[68,2],[68,2],[68,2],[68,2],[68,1],[68,1],[76,3],[76,2],[78,1],[78,1],[65,4],[83,0],[83,1],[83,3],[83,4],[83,6],[22,1],[22,2],[22,3],[22,4],[22,2],[22,3],[22,4],[22,5],[13,3],[13,3],[13,1],[13,2],[87,0],[87,1],[88,2],[88,4],[71,1],[71,1],[50,2],[64,2],[64,4],[98,1],[98,1],[70,5],[81,3],[81,2],[81,2],[81,1],[93,1],[93,3],[93,4],[93,4],[93,6],[100,1],[100,1],[100,1],[101,1],[101,3],[18,2],[18,3],[18,4],[18,5],[103,3],[103,3],[103,2],[23,2],[69,3],[69,5],[109,2],[109,4],[109,2],[109,4],[19,2],[19,2],[19,2],[19,1],[113,2],[113,2],[20,2],[20,2],[20,2],[115,2],[115,4],[115,2],[118,2],[118,3],[122,1],[122,1],[122,1],[122,1],[120,1],[120,3],[119,2],[119,2],[119,4],[119,4],[119,4],[119,6],[119,6],[21,5],[21,7],[21,4],[21,6],[126,1],[126,2],[128,3],[128,4],[130,3],[130,5],[17,1],[17,3],[17,3],[17,3],[15,2],[15,2],[15,2],[15,2],[15,2],[15,2],[15,3],[15,2],[15,2],[15,2],[15,2],[15,2],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,5],[15,4],[15,3]],performAction:function(e,t,n,i,r,s,o){var a=s.length-1;\nswitch(r){case 1:return this.$=i.addLocationDataFn(o[a],o[a])(new i.Block);case 2:return this.$=s[a];case 3:this.$=i.addLocationDataFn(o[a],o[a])(i.Block.wrap([s[a]]));break;case 4:this.$=i.addLocationDataFn(o[a-2],o[a])(s[a-2].push(s[a]));break;case 5:this.$=s[a-1];break;case 6:case 7:case 8:case 9:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 27:case 32:case 34:case 45:case 46:case 47:case 48:case 56:case 57:case 67:case 68:case 69:case 70:case 75:case 76:case 79:case 83:case 89:case 133:case 134:case 136:case 166:case 167:case 183:case 189:this.$=s[a];break;case 10:case 25:case 26:case 28:case 30:case 33:case 35:this.$=i.addLocationDataFn(o[a],o[a])(new i.Literal(s[a]));break;case 23:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Block);break;case 24:case 31:case 90:this.$=i.addLocationDataFn(o[a-2],o[a])(s[a-1]);break;case 29:case 146:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Parens(s[a-1]));break;case 36:this.$=i.addLocationDataFn(o[a],o[a])(new i.Undefined);break;case 37:this.$=i.addLocationDataFn(o[a],o[a])(new i.Null);break;case 38:this.$=i.addLocationDataFn(o[a],o[a])(new i.Bool(s[a]));break;case 39:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Assign(s[a-2],s[a]));break;case 40:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Assign(s[a-3],s[a]));break;case 41:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Assign(s[a-4],s[a-1]));break;case 42:case 72:case 77:case 78:case 80:case 81:case 82:case 168:case 169:this.$=i.addLocationDataFn(o[a],o[a])(new i.Value(s[a]));break;case 43:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Assign(i.addLocationDataFn(o[a-2])(new i.Value(s[a-2])),s[a],\"object\"));break;case 44:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Assign(i.addLocationDataFn(o[a-4])(new i.Value(s[a-4])),s[a-1],\"object\"));break;case 49:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Return(s[a]));break;case 50:this.$=i.addLocationDataFn(o[a],o[a])(new i.Return);break;case 51:this.$=i.addLocationDataFn(o[a],o[a])(new i.Comment(s[a]));break;case 52:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Code(s[a-3],s[a],s[a-1]));break;case 53:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Code([],s[a],s[a-1]));break;case 54:this.$=i.addLocationDataFn(o[a],o[a])(\"func\");break;case 55:this.$=i.addLocationDataFn(o[a],o[a])(\"boundfunc\");break;case 58:case 95:this.$=i.addLocationDataFn(o[a],o[a])([]);break;case 59:case 96:case 128:case 170:this.$=i.addLocationDataFn(o[a],o[a])([s[a]]);break;case 60:case 97:case 129:this.$=i.addLocationDataFn(o[a-2],o[a])(s[a-2].concat(s[a]));break;case 61:case 98:case 130:this.$=i.addLocationDataFn(o[a-3],o[a])(s[a-3].concat(s[a]));break;case 62:case 99:case 132:this.$=i.addLocationDataFn(o[a-5],o[a])(s[a-5].concat(s[a-2]));break;case 63:this.$=i.addLocationDataFn(o[a],o[a])(new i.Param(s[a]));break;case 64:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Param(s[a-1],null,!0));break;case 65:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Param(s[a-2],s[a]));break;case 66:case 135:this.$=i.addLocationDataFn(o[a],o[a])(new i.Expansion);break;case 71:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Splat(s[a-1]));break;case 73:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a-1].add(s[a]));break;case 74:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Value(s[a-1],[].concat(s[a])));break;case 84:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Access(s[a]));break;case 85:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Access(s[a],\"soak\"));break;case 86:this.$=i.addLocationDataFn(o[a-1],o[a])([i.addLocationDataFn(o[a-1])(new i.Access(new i.Literal(\"prototype\"))),i.addLocationDataFn(o[a])(new i.Access(s[a]))]);break;case 87:this.$=i.addLocationDataFn(o[a-1],o[a])([i.addLocationDataFn(o[a-1])(new i.Access(new i.Literal(\"prototype\"),\"soak\")),i.addLocationDataFn(o[a])(new i.Access(s[a]))]);break;case 88:this.$=i.addLocationDataFn(o[a],o[a])(new i.Access(new i.Literal(\"prototype\")));break;case 91:this.$=i.addLocationDataFn(o[a-1],o[a])(i.extend(s[a],{soak:!0}));break;case 92:this.$=i.addLocationDataFn(o[a],o[a])(new i.Index(s[a]));break;case 93:this.$=i.addLocationDataFn(o[a],o[a])(new i.Slice(s[a]));break;case 94:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Obj(s[a-2],s[a-3].generated));break;case 100:this.$=i.addLocationDataFn(o[a],o[a])(new i.Class);break;case 101:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Class(null,null,s[a]));break;case 102:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Class(null,s[a]));break;case 103:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Class(null,s[a-1],s[a]));break;case 104:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Class(s[a]));break;case 105:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Class(s[a-1],null,s[a]));break;case 106:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Class(s[a-2],s[a]));break;case 107:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Class(s[a-3],s[a-1],s[a]));break;case 108:case 109:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Call(s[a-2],s[a],s[a-1]));break;case 110:this.$=i.addLocationDataFn(o[a],o[a])(new i.Call(\"super\",[new i.Splat(new i.Literal(\"arguments\"))]));break;case 111:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Call(\"super\",s[a]));break;case 112:this.$=i.addLocationDataFn(o[a],o[a])(!1);break;case 113:this.$=i.addLocationDataFn(o[a],o[a])(!0);break;case 114:this.$=i.addLocationDataFn(o[a-1],o[a])([]);break;case 115:case 131:this.$=i.addLocationDataFn(o[a-3],o[a])(s[a-2]);break;case 116:case 117:this.$=i.addLocationDataFn(o[a],o[a])(new i.Value(new i.Literal(\"this\")));break;case 118:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Value(i.addLocationDataFn(o[a-1])(new i.Literal(\"this\")),[i.addLocationDataFn(o[a])(new i.Access(s[a]))],\"this\"));break;case 119:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Arr([]));break;case 120:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Arr(s[a-2]));break;case 121:this.$=i.addLocationDataFn(o[a],o[a])(\"inclusive\");break;case 122:this.$=i.addLocationDataFn(o[a],o[a])(\"exclusive\");break;case 123:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Range(s[a-3],s[a-1],s[a-2]));break;case 124:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Range(s[a-2],s[a],s[a-1]));break;case 125:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Range(s[a-1],null,s[a]));break;case 126:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Range(null,s[a],s[a-1]));break;case 127:this.$=i.addLocationDataFn(o[a],o[a])(new i.Range(null,null,s[a]));break;case 137:this.$=i.addLocationDataFn(o[a-2],o[a])([].concat(s[a-2],s[a]));break;case 138:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Try(s[a]));break;case 139:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Try(s[a-1],s[a][0],s[a][1]));break;case 140:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Try(s[a-2],null,null,s[a]));break;case 141:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Try(s[a-3],s[a-2][0],s[a-2][1],s[a]));break;case 142:this.$=i.addLocationDataFn(o[a-2],o[a])([s[a-1],s[a]]);break;case 143:this.$=i.addLocationDataFn(o[a-2],o[a])([i.addLocationDataFn(o[a-1])(new i.Value(s[a-1])),s[a]]);break;case 144:this.$=i.addLocationDataFn(o[a-1],o[a])([null,s[a]]);break;case 145:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Throw(s[a]));break;case 147:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Parens(s[a-2]));break;case 148:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.While(s[a]));break;case 149:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.While(s[a-2],{guard:s[a]}));break;case 150:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.While(s[a],{invert:!0}));break;case 151:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.While(s[a-2],{invert:!0,guard:s[a]}));break;case 152:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a-1].addBody(s[a]));break;case 153:case 154:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a].addBody(i.addLocationDataFn(o[a-1])(i.Block.wrap([s[a-1]]))));break;case 155:this.$=i.addLocationDataFn(o[a],o[a])(s[a]);break;case 156:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.While(i.addLocationDataFn(o[a-1])(new i.Literal(\"true\"))).addBody(s[a]));break;case 157:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.While(i.addLocationDataFn(o[a-1])(new i.Literal(\"true\"))).addBody(i.addLocationDataFn(o[a])(i.Block.wrap([s[a]]))));break;case 158:case 159:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.For(s[a-1],s[a]));break;case 160:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.For(s[a],s[a-1]));break;case 161:this.$=i.addLocationDataFn(o[a-1],o[a])({source:i.addLocationDataFn(o[a])(new i.Value(s[a]))});break;case 162:this.$=i.addLocationDataFn(o[a-3],o[a])({source:i.addLocationDataFn(o[a-2])(new i.Value(s[a-2])),step:s[a]});break;case 163:this.$=i.addLocationDataFn(o[a-1],o[a])(function(){return s[a].own=s[a-1].own,s[a].name=s[a-1][0],s[a].index=s[a-1][1],s[a]}());break;case 164:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a]);break;case 165:this.$=i.addLocationDataFn(o[a-2],o[a])(function(){return s[a].own=!0,s[a]}());break;case 171:this.$=i.addLocationDataFn(o[a-2],o[a])([s[a-2],s[a]]);break;case 172:this.$=i.addLocationDataFn(o[a-1],o[a])({source:s[a]});break;case 173:this.$=i.addLocationDataFn(o[a-1],o[a])({source:s[a],object:!0});break;case 174:this.$=i.addLocationDataFn(o[a-3],o[a])({source:s[a-2],guard:s[a]});break;case 175:this.$=i.addLocationDataFn(o[a-3],o[a])({source:s[a-2],guard:s[a],object:!0});break;case 176:this.$=i.addLocationDataFn(o[a-3],o[a])({source:s[a-2],step:s[a]});break;case 177:this.$=i.addLocationDataFn(o[a-5],o[a])({source:s[a-4],guard:s[a-2],step:s[a]});break;case 178:this.$=i.addLocationDataFn(o[a-5],o[a])({source:s[a-4],step:s[a-2],guard:s[a]});break;case 179:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Switch(s[a-3],s[a-1]));break;case 180:this.$=i.addLocationDataFn(o[a-6],o[a])(new i.Switch(s[a-5],s[a-3],s[a-1]));break;case 181:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Switch(null,s[a-1]));break;case 182:this.$=i.addLocationDataFn(o[a-5],o[a])(new i.Switch(null,s[a-3],s[a-1]));break;case 184:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a-1].concat(s[a]));break;case 185:this.$=i.addLocationDataFn(o[a-2],o[a])([[s[a-1],s[a]]]);break;case 186:this.$=i.addLocationDataFn(o[a-3],o[a])([[s[a-2],s[a-1]]]);break;case 187:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.If(s[a-1],s[a],{type:s[a-2]}));break;case 188:this.$=i.addLocationDataFn(o[a-4],o[a])(s[a-4].addElse(i.addLocationDataFn(o[a-2],o[a])(new i.If(s[a-1],s[a],{type:s[a-2]}))));break;case 190:this.$=i.addLocationDataFn(o[a-2],o[a])(s[a-2].addElse(s[a]));break;case 191:case 192:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.If(s[a],i.addLocationDataFn(o[a-2])(i.Block.wrap([s[a-2]])),{type:s[a-1],statement:!0}));break;case 193:case 194:case 197:case 198:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op(s[a-1],s[a]));break;case 195:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op(\"-\",s[a]));break;case 196:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op(\"+\",s[a]));break;case 199:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Op(s[a-2].concat(s[a-1]),s[a]));break;case 200:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op(\"--\",s[a]));break;case 201:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op(\"++\",s[a]));break;case 202:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op(\"--\",s[a-1],null,!0));break;case 203:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op(\"++\",s[a-1],null,!0));break;case 204:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Existence(s[a-1]));break;case 205:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Op(\"+\",s[a-2],s[a]));break;case 206:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Op(\"-\",s[a-2],s[a]));break;case 207:case 208:case 209:case 210:case 211:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Op(s[a-1],s[a-2],s[a]));break;case 212:this.$=i.addLocationDataFn(o[a-2],o[a])(function(){return\"!\"===s[a-1].charAt(0)?new i.Op(s[a-1].slice(1),s[a-2],s[a]).invert():new i.Op(s[a-1],s[a-2],s[a])}());break;case 213:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Assign(s[a-2],s[a],s[a-1]));break;case 214:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Assign(s[a-4],s[a-1],s[a-3]));break;case 215:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Assign(s[a-3],s[a],s[a-2]));break;case 216:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Extends(s[a-2],s[a]))}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{1:[3]},{1:[2,2],6:P},t(U,[2,3]),t(U,[2,6],{118:69,109:89,115:90,110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(U,[2,7],{118:69,109:92,115:93,110:x,112:S,116:R,132:Z}),t(et,[2,11],{87:94,68:95,76:101,72:tt,73:nt,74:it,75:rt,77:st,80:ot,90:at,91:ct}),t(et,[2,12],{76:101,87:104,68:105,72:tt,73:nt,74:it,75:rt,77:st,80:ot,90:at,91:ct}),t(et,[2,13]),t(et,[2,14]),t(et,[2,15]),t(et,[2,16]),t(et,[2,17]),t(et,[2,18]),t(et,[2,19]),t(et,[2,20]),t(et,[2,21]),t(et,[2,22]),t(et,[2,8]),t(et,[2,9]),t(et,[2,10]),t(ht,lt,{46:[1,106]}),t(ht,[2,80]),t(ht,[2,81]),t(ht,[2,82]),t(ht,[2,83]),t([1,6,25,26,34,38,55,60,63,72,73,74,75,77,79,80,84,90,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],[2,110],{88:107,91:ut}),t([6,25,55,60],pt,{54:109,61:110,62:111,27:113,50:114,64:115,65:116,28:i,63:dt,82:b,95:ft,96:mt}),{24:119,25:gt},{7:121,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:123,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:124,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:125,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:127,8:126,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,138:[1,128],139:B,140:V},{12:130,13:131,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:132,50:63,64:47,65:48,67:129,69:23,70:24,71:25,82:b,89:w,94:T,95:C,96:E,107:L},{12:130,13:131,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:132,50:63,64:47,65:48,67:133,69:23,70:24,71:25,82:b,89:w,94:T,95:C,96:E,107:L},t(vt,yt,{86:[1,137],139:[1,134],140:[1,135],148:[1,136]}),t(et,[2,189],{127:[1,138]}),{24:139,25:gt},{24:140,25:gt},t(et,[2,155]),{24:141,25:gt},{7:142,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,143],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(bt,[2,100],{39:22,69:23,70:24,71:25,64:47,65:48,29:49,35:51,27:62,50:63,31:72,12:130,13:131,45:132,24:144,67:146,25:gt,28:i,30:r,32:s,33:o,36:a,37:c,40:h,41:l,42:u,43:p,44:d,82:b,86:[1,145],89:w,94:T,95:C,96:E,107:L}),{7:147,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,141,142,143,144,145,146,147],[2,50],{12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,9:18,10:19,45:21,39:22,69:23,70:24,71:25,56:28,67:36,130:37,109:39,113:40,115:41,64:47,65:48,29:49,35:51,27:62,50:63,118:69,31:72,8:122,7:148,11:n,28:i,30:r,32:s,33:o,36:a,37:c,40:h,41:l,42:u,43:p,44:d,51:f,52:m,53:g,57:v,58:y,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,114:D,125:A,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V}),t(et,[2,51]),t(vt,[2,77]),t(vt,[2,78]),t(ht,[2,32]),t(ht,[2,33]),t(ht,[2,34]),t(ht,[2,35]),t(ht,[2,36]),t(ht,[2,37]),t(ht,[2,38]),{4:149,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,150],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:151,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:wt,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:k,89:w,93:153,94:T,95:C,96:E,97:Tt,100:154,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(ht,[2,116]),t(ht,[2,117],{27:158,28:i}),{25:[2,54]},{25:[2,55]},t(Ct,[2,72]),t(Ct,[2,75]),{7:159,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:160,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:161,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:163,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:162,25:gt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{27:168,28:i,50:169,64:170,65:171,70:164,82:b,95:ft,96:E,120:165,121:[1,166],122:167},{119:172,123:[1,173],124:[1,174]},t([6,25,60,84],Et,{31:72,83:175,47:176,48:177,10:178,27:179,29:180,50:181,28:i,30:r,32:s,33:o,52:m,95:ft}),t(Ft,[2,26]),t(Ft,[2,27]),t(ht,[2,30]),{12:130,13:182,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:132,50:63,64:47,65:48,67:183,69:23,70:24,71:25,82:b,89:w,94:T,95:C,96:E,107:L},t(Nt,[2,25]),t(Ft,[2,28]),{4:184,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(U,[2,5],{7:4,8:5,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,9:18,10:19,45:21,39:22,69:23,70:24,71:25,56:28,67:36,130:37,109:39,113:40,115:41,64:47,65:48,29:49,35:51,27:62,50:63,118:69,31:72,5:185,11:n,28:i,30:r,32:s,33:o,36:a,37:c,40:h,41:l,42:u,43:p,44:d,51:f,52:m,53:g,57:v,58:y,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,110:x,112:S,114:D,116:R,125:A,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V}),t(et,[2,204]),{7:186,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:187,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:188,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:189,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:190,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:191,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:192,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:193,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:194,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(et,[2,154]),t(et,[2,159]),{7:195,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(et,[2,153]),t(et,[2,158]),{88:196,91:ut},t(Ct,[2,73]),{91:[2,113]},{27:197,28:i},{27:198,28:i},t(Ct,[2,88],{27:199,28:i}),{27:200,28:i},t(Ct,[2,89]),{7:202,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:Lt,64:47,65:48,67:36,69:23,70:24,71:25,78:201,81:203,82:b,85:k,89:w,94:T,95:C,96:E,98:204,99:xt,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{76:207,77:st,80:ot},{88:208,91:ut},t(Ct,[2,74]),{6:[1,210],7:209,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,211],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(St,[2,111]),{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:wt,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:k,89:w,92:[1,212],93:213,94:T,95:C,96:E,100:154,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t([6,25],Dt,{59:217,55:[1,215],60:Rt}),t(At,[2,59]),t(At,[2,63],{46:[1,219],63:[1,218]}),t(At,[2,66]),t(It,[2,67]),t(It,[2,68]),t(It,[2,69]),t(It,[2,70]),{27:158,28:i},{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:wt,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:k,89:w,93:153,94:T,95:C,96:E,97:Tt,100:154,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(et,[2,53]),{4:221,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,26:[1,220],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,142,143,144,145,146,147],[2,193],{118:69,109:89,115:90,141:X}),{109:92,110:x,112:S,115:93,116:R,118:69,132:Z},t(_t,[2,194],{118:69,109:89,115:90,141:X,143:Y}),t(_t,[2,195],{118:69,109:89,115:90,141:X,143:Y}),t(_t,[2,196],{118:69,109:89,115:90,141:X,143:Y}),t(et,[2,197],{118:69,109:92,115:93}),t(Ot,[2,198],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{7:222,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(et,[2,200],{72:yt,73:yt,74:yt,75:yt,77:yt,80:yt,90:yt,91:yt}),{68:95,72:tt,73:nt,74:it,75:rt,76:101,77:st,80:ot,87:94,90:at,91:ct},{68:105,72:tt,73:nt,74:it,75:rt,76:101,77:st,80:ot,87:104,90:at,91:ct},t($t,lt),t(et,[2,201],{72:yt,73:yt,74:yt,75:yt,77:yt,80:yt,90:yt,91:yt}),t(et,[2,202]),t(et,[2,203]),{6:[1,225],7:223,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,224],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:226,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{24:227,25:gt,131:[1,228]},t(et,[2,138],{103:229,104:[1,230],105:[1,231]}),t(et,[2,152]),t(et,[2,160]),{25:[1,232],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},{126:233,128:234,129:jt},t(et,[2,101]),{7:236,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(bt,[2,104],{24:237,25:gt,72:yt,73:yt,74:yt,75:yt,77:yt,80:yt,90:yt,91:yt,86:[1,238]}),t(Ot,[2,145],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Ot,[2,49],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{6:P,108:[1,239]},{4:240,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t([6,25,60,97],Mt,{118:69,109:89,115:90,98:241,63:[1,242],99:xt,110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Bt,[2,119]),t([6,25,97],Dt,{59:243,60:Vt}),t(Pt,[2,128]),{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:wt,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:k,89:w,93:245,94:T,95:C,96:E,100:154,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(Pt,[2,134]),t(Pt,[2,135]),t(Nt,[2,118]),{24:246,25:gt,109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},t(Ut,[2,148],{118:69,109:89,115:90,110:x,111:[1,247],112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Ut,[2,150],{118:69,109:89,115:90,110:x,111:[1,248],112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(et,[2,156]),t(Gt,[2,157],{118:69,109:89,115:90,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,132,135,136,141,142,143,144,145,146,147],[2,161],{117:[1,249]}),t(Ht,[2,164]),{27:168,28:i,50:169,64:170,65:171,82:b,95:ft,96:mt,120:250,122:167},t(Ht,[2,170],{60:[1,251]}),t(qt,[2,166]),t(qt,[2,167]),t(qt,[2,168]),t(qt,[2,169]),t(et,[2,163]),{7:252,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:253,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t([6,25,84],Dt,{59:254,60:Xt}),t(Wt,[2,96]),t(Wt,[2,42],{49:[1,256]}),t(Wt,[2,45]),t(Yt,[2,46]),t(Yt,[2,47]),t(Yt,[2,48]),{38:[1,257],68:105,72:tt,73:nt,74:it,75:rt,76:101,77:st,80:ot,87:104,90:at,91:ct},t($t,yt),{6:P,34:[1,258]},t(U,[2,4]),t(Kt,[2,205],{118:69,109:89,115:90,141:X,142:W,143:Y}),t(Kt,[2,206],{118:69,109:89,115:90,141:X,142:W,143:Y}),t(_t,[2,207],{118:69,109:89,115:90,141:X,143:Y}),t(_t,[2,208],{118:69,109:89,115:90,141:X,143:Y}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,144,145,146,147],[2,209],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,145,146],[2,210],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,147:Q}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,146],[2,211],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,147:Q}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,145,146,147],[2,212],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K}),t(Gt,[2,192],{118:69,109:89,115:90,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Gt,[2,191],{118:69,109:89,115:90,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(St,[2,108]),t(Ct,[2,84]),t(Ct,[2,85]),t(Ct,[2,86]),t(Ct,[2,87]),{79:[1,259]},{63:Lt,79:[2,92],98:260,99:xt,109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},{79:[2,93]},{7:261,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,79:[2,127],82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(zt,[2,121]),t(zt,Jt),t(Ct,[2,91]),t(St,[2,109]),t(Ot,[2,39],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{7:262,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:263,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(St,[2,114]),t([6,25,92],Dt,{59:264,60:Vt}),t(Pt,Mt,{118:69,109:89,115:90,63:[1,265],110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{56:266,57:v,58:y},t(Qt,Zt,{62:111,27:113,50:114,64:115,65:116,61:267,28:i,63:dt,82:b,95:ft,96:mt}),{6:en,25:tn},t(At,[2,64]),{7:270,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(nn,[2,23]),{6:P,26:[1,271]},t(Ot,[2,199],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Ot,[2,213],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{7:272,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:273,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(Ot,[2,216],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(et,[2,190]),{7:274,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(et,[2,139],{104:[1,275]}),{24:276,25:gt},{24:279,25:gt,27:277,28:i,65:278,82:b},{126:280,128:234,129:jt},{26:[1,281],127:[1,282],128:283,129:jt},t(rn,[2,183]),{7:285,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,101:284,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(sn,[2,102],{118:69,109:89,115:90,24:286,25:gt,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(et,[2,105]),{7:287,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(ht,[2,146]),{6:P,26:[1,288]},{7:289,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t([11,28,30,32,33,36,37,40,41,42,43,44,51,52,53,57,58,82,85,89,94,95,96,102,106,107,110,112,114,116,125,131,133,134,135,136,137,139,140],Jt,{6:on,25:on,60:on,97:on}),{6:an,25:cn,97:[1,290]},t([6,25,26,92,97],Zt,{12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,9:18,10:19,45:21,39:22,69:23,70:24,71:25,56:28,67:36,130:37,109:39,113:40,115:41,64:47,65:48,29:49,35:51,27:62,50:63,118:69,31:72,8:122,66:156,7:214,100:293,11:n,28:i,30:r,32:s,33:o,36:a,37:c,40:h,41:l,42:u,43:p,44:d,51:f,52:m,53:g,57:v,58:y,63:wt,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,110:x,112:S,114:D,116:R,125:A,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V}),t(Qt,Dt,{59:294,60:Vt}),t(hn,[2,187]),{7:295,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:296,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:297,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(Ht,[2,165]),{27:168,28:i,50:169,64:170,65:171,82:b,95:ft,96:mt,122:298},t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,112,116,132],[2,172],{118:69,109:89,115:90,111:[1,299],117:[1,300],135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(ln,[2,173],{118:69,109:89,115:90,111:[1,301],135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{6:un,25:pn,84:[1,302]},t([6,25,26,84],Zt,{31:72,48:177,10:178,27:179,29:180,50:181,47:305,28:i,30:r,32:s,33:o,52:m,95:ft}),{7:306,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,307],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(ht,[2,31]),t(Ft,[2,29]),t(Ct,[2,90]),{7:308,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,79:[2,125],82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{79:[2,126],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},t(Ot,[2,40],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{26:[1,309],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},{6:an,25:cn,92:[1,310]},t(Pt,on),{24:311,25:gt},t(At,[2,60]),{27:113,28:i,50:114,61:312,62:111,63:dt,64:115,65:116,82:b,95:ft,96:mt},t(dn,pt,{61:110,62:111,27:113,50:114,64:115,65:116,54:313,28:i,63:dt,82:b,95:ft,96:mt}),t(At,[2,65],{118:69,109:89,115:90,110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(nn,[2,24]),{26:[1,314],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},t(Ot,[2,215],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{24:315,25:gt,109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},{24:316,25:gt},t(et,[2,140]),{24:317,25:gt},{24:318,25:gt},t(fn,[2,144]),{26:[1,319],127:[1,320],128:283,129:jt},t(et,[2,181]),{24:321,25:gt},t(rn,[2,184]),{24:322,25:gt,60:[1,323]},t(mn,[2,136],{118:69,109:89,115:90,110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(et,[2,103]),t(sn,[2,106],{118:69,109:89,115:90,24:324,25:gt,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{108:[1,325]},{97:[1,326],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},t(Bt,[2,120]),{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:wt,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,100:327,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:wt,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:k,89:w,93:328,94:T,95:C,96:E,100:154,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(Pt,[2,129]),{6:an,25:cn,26:[1,329]},t(Gt,[2,149],{118:69,109:89,115:90,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Gt,[2,151],{118:69,109:89,115:90,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Gt,[2,162],{118:69,109:89,115:90,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Ht,[2,171]),{7:330,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:331,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:332,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(Bt,[2,94]),{10:178,27:179,28:i,29:180,30:r,31:72,32:s,33:o,47:333,48:177,50:181,52:m,95:ft},t(dn,Et,{31:72,47:176,48:177,10:178,27:179,29:180,50:181,83:334,28:i,30:r,32:s,33:o,52:m,95:ft}),t(Wt,[2,97]),t(Wt,[2,43],{118:69,109:89,115:90,110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{7:335,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{79:[2,124],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},t(et,[2,41]),t(St,[2,115]),t(et,[2,52]),t(At,[2,61]),t(Qt,Dt,{59:336,60:Rt}),t(et,[2,214]),t(hn,[2,188]),t(et,[2,141]),t(fn,[2,142]),t(fn,[2,143]),t(et,[2,179]),{24:337,25:gt},{26:[1,338]},t(rn,[2,185],{6:[1,339]}),{7:340,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(et,[2,107]),t(ht,[2,147]),t(ht,[2,123]),t(Pt,[2,130]),t(Qt,Dt,{59:341,60:Vt}),t(Pt,[2,131]),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,132],[2,174],{118:69,109:89,115:90,117:[1,342],135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(ln,[2,176],{118:69,109:89,115:90,111:[1,343],135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Ot,[2,175],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Wt,[2,98]),t(Qt,Dt,{59:344,60:Xt}),{26:[1,345],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},{6:en,25:tn,26:[1,346]},{26:[1,347]},t(et,[2,182]),t(rn,[2,186]),t(mn,[2,137],{118:69,109:89,115:90,110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{6:an,25:cn,26:[1,348]},{7:349,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:350,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{6:un,25:pn,26:[1,351]},t(Wt,[2,44]),t(At,[2,62]),t(et,[2,180]),t(Pt,[2,132]),t(Ot,[2,177],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Ot,[2,178],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Wt,[2,99])],defaultActions:{60:[2,54],61:[2,55],96:[2,113],203:[2,93]},parseError:function(e,t){if(!t.recoverable)throw Error(e);\nthis.trace(e)},parse:function(e){function t(){var e;return e=f.lex()||p,\"number\"!=typeof e&&(e=n.symbols_[e]||e),e}var n=this,i=[0],r=[null],s=[],o=this.table,a=\"\",c=0,h=0,l=0,u=2,p=1,d=s.slice.call(arguments,1),f=Object.create(this.lexer),m={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(m.yy[g]=this.yy[g]);f.setInput(e,m.yy),m.yy.lexer=f,m.yy.parser=this,f.yylloc===void 0&&(f.yylloc={});var v=f.yylloc;s.push(v);var y=f.options&&f.options.ranges;this.parseError=\"function\"==typeof m.yy.parseError?m.yy.parseError:Object.getPrototypeOf(this).parseError;for(var b,k,w,T,C,E,F,N,L,x={};;){if(w=i[i.length-1],this.defaultActions[w]?T=this.defaultActions[w]:((null===b||b===void 0)&&(b=t()),T=o[w]&&o[w][b]),T===void 0||!T.length||!T[0]){var S=\"\";L=[];for(E in o[w])this.terminals_[E]&&E>u&&L.push(\"'\"+this.terminals_[E]+\"'\");S=f.showPosition?\"Parse error on line \"+(c+1)+\":\\n\"+f.showPosition()+\"\\nExpecting \"+L.join(\", \")+\", got '\"+(this.terminals_[b]||b)+\"'\":\"Parse error on line \"+(c+1)+\": Unexpected \"+(b==p?\"end of input\":\"'\"+(this.terminals_[b]||b)+\"'\"),this.parseError(S,{text:f.match,token:this.terminals_[b]||b,line:f.yylineno,loc:v,expected:L})}if(T[0]instanceof Array&&T.length>1)throw Error(\"Parse Error: multiple actions possible at state: \"+w+\", token: \"+b);switch(T[0]){case 1:i.push(b),r.push(f.yytext),s.push(f.yylloc),i.push(T[1]),b=null,k?(b=k,k=null):(h=f.yyleng,a=f.yytext,c=f.yylineno,v=f.yylloc,l>0&&l--);break;case 2:if(F=this.productions_[T[1]][1],x.$=r[r.length-F],x._$={first_line:s[s.length-(F||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(F||1)].first_column,last_column:s[s.length-1].last_column},y&&(x._$.range=[s[s.length-(F||1)].range[0],s[s.length-1].range[1]]),C=this.performAction.apply(x,[a,h,c,m.yy,T[1],r,s].concat(d)),C!==void 0)return C;F&&(i=i.slice(0,2*-1*F),r=r.slice(0,-1*F),s=s.slice(0,-1*F)),i.push(this.productions_[T[1]][0]),r.push(x.$),s.push(x._$),N=o[i[i.length-2]][i[i.length-1]],i.push(N);break;case 3:return!0}}return!0}};return e.prototype=gn,gn.Parser=e,new e}();return _dereq_!==void 0&&e!==void 0&&(e.parser=n,e.Parser=n.Parser,e.parse=function(){return n.parse.apply(n,arguments)},e.main=function(t){t[1]||(console.log(\"Usage: \"+t[0]+\" FILE\"),process.exit(1));var n=_dereq_(\"fs\").readFileSync(_dereq_(\"path\").normalize(t[1]),\"utf8\");return e.parser.parse(n)},t!==void 0&&_dereq_.main===t&&e.main(process.argv.slice(1))),t.exports}(),_dereq_[\"./scope\"]=function(){var e={},t={exports:e};return function(){var t,n=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};e.Scope=t=function(){function e(e,t,n,i){var r,s;this.parent=e,this.expressions=t,this.method=n,this.referencedVars=i,this.variables=[{name:\"arguments\",type:\"arguments\"}],this.positions={},this.parent||(this.utilities={}),this.root=null!=(r=null!=(s=this.parent)?s.root:void 0)?r:this}return e.prototype.add=function(e,t,n){return this.shared&&!n?this.parent.add(e,t,n):Object.prototype.hasOwnProperty.call(this.positions,e)?this.variables[this.positions[e]].type=t:this.positions[e]=this.variables.push({name:e,type:t})-1},e.prototype.namedMethod=function(){var e;return(null!=(e=this.method)?e.name:void 0)||!this.parent?this.method:this.parent.namedMethod()},e.prototype.find=function(e){return this.check(e)?!0:(this.add(e,\"var\"),!1)},e.prototype.parameter=function(e){return this.shared&&this.parent.check(e,!0)?void 0:this.add(e,\"param\")},e.prototype.check=function(e){var t;return!!(this.type(e)||(null!=(t=this.parent)?t.check(e):void 0))},e.prototype.temporary=function(e,t,n){return null==n&&(n=!1),n?(t+parseInt(e,36)).toString(36).replace(/\\d/g,\"a\"):e+(t||\"\")},e.prototype.type=function(e){var t,n,i,r;for(i=this.variables,t=0,n=i.length;n>t;t++)if(r=i[t],r.name===e)return r.type;return null},e.prototype.freeVariable=function(e,t){var i,r,s;for(null==t&&(t={}),i=0;;){if(s=this.temporary(e,i,t.single),!(this.check(s)||n.call(this.root.referencedVars,s)>=0))break;i++}return(null!=(r=t.reserve)?r:!0)&&this.add(s,\"var\",!0),s},e.prototype.assign=function(e,t){return this.add(e,{value:t,assigned:!0},!0),this.hasAssignments=!0},e.prototype.hasDeclarations=function(){return!!this.declaredVariables().length},e.prototype.declaredVariables=function(){var e;return function(){var t,n,i,r;for(i=this.variables,r=[],t=0,n=i.length;n>t;t++)e=i[t],\"var\"===e.type&&r.push(e.name);return r}.call(this).sort()},e.prototype.assignedVariables=function(){var e,t,n,i,r;for(n=this.variables,i=[],e=0,t=n.length;t>e;e++)r=n[e],r.type.assigned&&i.push(r.name+\" = \"+r.type.value);return i},e}()}.call(this),t.exports}(),_dereq_[\"./nodes\"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o,a,c,h,l,u,p,d,f,m,g,v,y,b,k,w,T,C,E,F,N,L,x,S,D,R,A,I,_,O,$,j,M,B,V,P,U,G,H,q,X,W,Y,K,z,J,Q,Z,et,tt,nt,it,rt,st,ot,at,ct,ht,lt,ut,pt,dt,ft,mt,gt,vt,yt,bt,kt=function(e,t){function n(){this.constructor=e}for(var i in t)wt.call(t,i)&&(e[i]=t[i]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},wt={}.hasOwnProperty,Tt=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},Ct=[].slice;Error.stackTraceLimit=1/0,P=_dereq_(\"./scope\").Scope,dt=_dereq_(\"./lexer\"),$=dt.RESERVED,V=dt.STRICT_PROSCRIBED,ft=_dereq_(\"./helpers\"),et=ft.compact,rt=ft.flatten,it=ft.extend,lt=ft.merge,tt=ft.del,gt=ft.starts,nt=ft.ends,mt=ft.some,Z=ft.addLocationDataFn,ht=ft.locationDataToString,vt=ft.throwSyntaxError,e.extend=it,e.addLocationDataFn=Z,Q=function(){return!0},D=function(){return!1},X=function(){return this},S=function(){return this.negated=!this.negated,this},e.CodeFragment=h=function(){function e(e,t){var n;this.code=\"\"+t,this.locationData=null!=e?e.locationData:void 0,this.type=(null!=e?null!=(n=e.constructor)?n.name:void 0:void 0)||\"unknown\"}return e.prototype.toString=function(){return\"\"+this.code+(this.locationData?\": \"+ht(this.locationData):\"\")},e}(),st=function(e){var t;return function(){var n,i,r;for(r=[],n=0,i=e.length;i>n;n++)t=e[n],r.push(t.code);return r}().join(\"\")},e.Base=r=function(){function e(){}return e.prototype.compile=function(e,t){return st(this.compileToFragments(e,t))},e.prototype.compileToFragments=function(e,t){var n;return e=it({},e),t&&(e.level=t),n=this.unfoldSoak(e)||this,n.tab=e.indent,e.level!==L&&n.isStatement(e)?n.compileClosure(e):n.compileNode(e)},e.prototype.compileClosure=function(e){var n,i,r,a,h,l,u;return(a=this.jumps())&&a.error(\"cannot use a pure statement in an expression\"),e.sharedScope=!0,r=new c([],s.wrap([this])),n=[],((i=this.contains(at))||this.contains(ct))&&(n=[new x(\"this\")],i?(h=\"apply\",n.push(new x(\"arguments\"))):h=\"call\",r=new z(r,[new t(new x(h))])),l=new o(r,n).compileNode(e),(r.isGenerator||(null!=(u=r.base)?u.isGenerator:void 0))&&(l.unshift(this.makeCode(\"(yield* \")),l.push(this.makeCode(\")\"))),l},e.prototype.cache=function(e,t,n){var r,s,o;return r=null!=n?n(this):this.isComplex(),r?(s=new x(e.scope.freeVariable(\"ref\")),o=new i(s,this),t?[o.compileToFragments(e,t),[this.makeCode(s.value)]]:[o,s]):(s=t?this.compileToFragments(e,t):this,[s,s])},e.prototype.cacheToCodeFragments=function(e){return[st(e[0]),st(e[1])]},e.prototype.makeReturn=function(e){var t;return t=this.unwrapAll(),e?new o(new x(e+\".push\"),[t]):new M(t)},e.prototype.contains=function(e){var t;return t=void 0,this.traverseChildren(!1,function(n){return e(n)?(t=n,!1):void 0}),t},e.prototype.lastNonComment=function(e){var t;for(t=e.length;t--;)if(!(e[t]instanceof l))return e[t];return null},e.prototype.toString=function(e,t){var n;return null==e&&(e=\"\"),null==t&&(t=this.constructor.name),n=\"\\n\"+e+t,this.soak&&(n+=\"?\"),this.eachChild(function(t){return n+=t.toString(e+q)}),n},e.prototype.eachChild=function(e){var t,n,i,r,s,o,a,c;if(!this.children)return this;for(a=this.children,i=0,s=a.length;s>i;i++)if(t=a[i],this[t])for(c=rt([this[t]]),r=0,o=c.length;o>r;r++)if(n=c[r],e(n)===!1)return this;return this},e.prototype.traverseChildren=function(e,t){return this.eachChild(function(n){var i;return i=t(n),i!==!1?n.traverseChildren(e,t):void 0})},e.prototype.invert=function(){return new I(\"!\",this)},e.prototype.unwrapAll=function(){var e;for(e=this;e!==(e=e.unwrap()););return e},e.prototype.children=[],e.prototype.isStatement=D,e.prototype.jumps=D,e.prototype.isComplex=Q,e.prototype.isChainable=D,e.prototype.isAssignable=D,e.prototype.unwrap=X,e.prototype.unfoldSoak=D,e.prototype.assigns=D,e.prototype.updateLocationDataIfMissing=function(e){return this.locationData?this:(this.locationData=e,this.eachChild(function(t){return t.updateLocationDataIfMissing(e)}))},e.prototype.error=function(e){return vt(e,this.locationData)},e.prototype.makeCode=function(e){return new h(this,e)},e.prototype.wrapInBraces=function(e){return[].concat(this.makeCode(\"(\"),e,this.makeCode(\")\"))},e.prototype.joinFragmentArrays=function(e,t){var n,i,r,s,o;for(n=[],r=s=0,o=e.length;o>s;r=++s)i=e[r],r&&n.push(this.makeCode(t)),n=n.concat(i);return n},e}(),e.Block=s=function(e){function t(e){this.expressions=et(rt(e||[]))}return kt(t,e),t.prototype.children=[\"expressions\"],t.prototype.push=function(e){return this.expressions.push(e),this},t.prototype.pop=function(){return this.expressions.pop()},t.prototype.unshift=function(e){return this.expressions.unshift(e),this},t.prototype.unwrap=function(){return 1===this.expressions.length?this.expressions[0]:this},t.prototype.isEmpty=function(){return!this.expressions.length},t.prototype.isStatement=function(e){var t,n,i,r;for(r=this.expressions,n=0,i=r.length;i>n;n++)if(t=r[n],t.isStatement(e))return!0;return!1},t.prototype.jumps=function(e){var t,n,i,r,s;for(s=this.expressions,n=0,r=s.length;r>n;n++)if(t=s[n],i=t.jumps(e))return i},t.prototype.makeReturn=function(e){var t,n;for(n=this.expressions.length;n--;)if(t=this.expressions[n],!(t instanceof l)){this.expressions[n]=t.makeReturn(e),t instanceof M&&!t.expression&&this.expressions.splice(n,1);break}return this},t.prototype.compileToFragments=function(e,n){return null==e&&(e={}),e.scope?t.__super__.compileToFragments.call(this,e,n):this.compileRoot(e)},t.prototype.compileNode=function(e){var n,i,r,s,o,a,c,h,l;for(this.tab=e.indent,l=e.level===L,i=[],h=this.expressions,s=o=0,a=h.length;a>o;s=++o)c=h[s],c=c.unwrapAll(),c=c.unfoldSoak(e)||c,c instanceof t?i.push(c.compileNode(e)):l?(c.front=!0,r=c.compileToFragments(e),c.isStatement(e)||(r.unshift(this.makeCode(\"\"+this.tab)),r.push(this.makeCode(\";\"))),i.push(r)):i.push(c.compileToFragments(e,E));return l?this.spaced?[].concat(this.joinFragmentArrays(i,\"\\n\\n\"),this.makeCode(\"\\n\")):this.joinFragmentArrays(i,\"\\n\"):(n=i.length?this.joinFragmentArrays(i,\", \"):[this.makeCode(\"void 0\")],i.length>1&&e.level>=E?this.wrapInBraces(n):n)},t.prototype.compileRoot=function(e){var t,n,i,r,s,o,a,c,h,u,p;for(e.indent=e.bare?\"\":q,e.level=L,this.spaced=!0,e.scope=new P(null,this,null,null!=(h=e.referencedVars)?h:[]),u=e.locals||[],r=0,s=u.length;s>r;r++)o=u[r],e.scope.parameter(o);return a=[],e.bare||(c=function(){var e,n,r,s;for(r=this.expressions,s=[],i=e=0,n=r.length;n>e&&(t=r[i],t.unwrap()instanceof l);i=++e)s.push(t);return s}.call(this),p=this.expressions.slice(c.length),this.expressions=c,c.length&&(a=this.compileNode(lt(e,{indent:\"\"})),a.push(this.makeCode(\"\\n\"))),this.expressions=p),n=this.compileWithDeclarations(e),e.bare?n:[].concat(a,this.makeCode(\"(function() {\\n\"),n,this.makeCode(\"\\n}).call(this);\\n\"))},t.prototype.compileWithDeclarations=function(e){var t,n,i,r,s,o,a,c,h,u,p,d,f,m;for(r=[],c=[],h=this.expressions,s=o=0,a=h.length;a>o&&(i=h[s],i=i.unwrap(),i instanceof l||i instanceof x);s=++o);return e=lt(e,{level:L}),s&&(d=this.expressions.splice(s,9e9),u=[this.spaced,!1],m=u[0],this.spaced=u[1],p=[this.compileNode(e),m],r=p[0],this.spaced=p[1],this.expressions=d),c=this.compileNode(e),f=e.scope,f.expressions===this&&(n=e.scope.hasDeclarations(),t=f.hasAssignments,n||t?(s&&r.push(this.makeCode(\"\\n\")),r.push(this.makeCode(this.tab+\"var \")),n&&r.push(this.makeCode(f.declaredVariables().join(\", \"))),t&&(n&&r.push(this.makeCode(\",\\n\"+(this.tab+q))),r.push(this.makeCode(f.assignedVariables().join(\",\\n\"+(this.tab+q))))),r.push(this.makeCode(\";\\n\"+(this.spaced?\"\\n\":\"\")))):r.length&&c.length&&r.push(this.makeCode(\"\\n\"))),r.concat(c)},t.wrap=function(e){return 1===e.length&&e[0]instanceof t?e[0]:new t(e)},t}(r),e.Literal=x=function(e){function t(e){this.value=e}return kt(t,e),t.prototype.makeReturn=function(){return this.isStatement()?this:t.__super__.makeReturn.apply(this,arguments)},t.prototype.isAssignable=function(){return g.test(this.value)},t.prototype.isStatement=function(){var e;return\"break\"===(e=this.value)||\"continue\"===e||\"debugger\"===e},t.prototype.isComplex=D,t.prototype.assigns=function(e){return e===this.value},t.prototype.jumps=function(e){return\"break\"!==this.value||(null!=e?e.loop:void 0)||(null!=e?e.block:void 0)?\"continue\"!==this.value||(null!=e?e.loop:void 0)?void 0:this:this},t.prototype.compileNode=function(e){var t,n,i;return n=\"this\"===this.value?(null!=(i=e.scope.method)?i.bound:void 0)?e.scope.method.context:this.value:this.value.reserved?'\"'+this.value+'\"':this.value,t=this.isStatement()?\"\"+this.tab+n+\";\":n,[this.makeCode(t)]},t.prototype.toString=function(){return' \"'+this.value+'\"'},t}(r),e.Undefined=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return kt(t,e),t.prototype.isAssignable=D,t.prototype.isComplex=D,t.prototype.compileNode=function(e){return[this.makeCode(e.level>=T?\"(void 0)\":\"void 0\")]},t}(r),e.Null=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return kt(t,e),t.prototype.isAssignable=D,t.prototype.isComplex=D,t.prototype.compileNode=function(){return[this.makeCode(\"null\")]},t}(r),e.Bool=function(e){function t(e){this.val=e}return kt(t,e),t.prototype.isAssignable=D,t.prototype.isComplex=D,t.prototype.compileNode=function(){return[this.makeCode(this.val)]},t}(r),e.Return=M=function(e){function t(e){this.expression=e}return kt(t,e),t.prototype.children=[\"expression\"],t.prototype.isStatement=Q,t.prototype.makeReturn=X,t.prototype.jumps=X,t.prototype.compileToFragments=function(e,n){var i,r;return i=null!=(r=this.expression)?r.makeReturn():void 0,!i||i instanceof t?t.__super__.compileToFragments.call(this,e,n):i.compileToFragments(e,n)},t.prototype.compileNode=function(e){var t,n,i;return t=[],n=null!=(i=this.expression)?\"function\"==typeof i.isYieldReturn?i.isYieldReturn():void 0:void 0,n||t.push(this.makeCode(this.tab+(\"return\"+(this.expression?\" \":\"\")))),this.expression&&(t=t.concat(this.expression.compileToFragments(e,N))),n||t.push(this.makeCode(\";\")),t},t}(r),e.Value=z=function(e){function t(e,n,i){return!n&&e instanceof t?e:(this.base=e,this.properties=n||[],i&&(this[i]=!0),this)}return kt(t,e),t.prototype.children=[\"base\",\"properties\"],t.prototype.add=function(e){return this.properties=this.properties.concat(e),this},t.prototype.hasProperties=function(){return!!this.properties.length},t.prototype.bareLiteral=function(e){return!this.properties.length&&this.base instanceof e},t.prototype.isArray=function(){return this.bareLiteral(n)},t.prototype.isRange=function(){return this.bareLiteral(j)},t.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},t.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},t.prototype.isSimpleNumber=function(){return this.bareLiteral(x)&&B.test(this.base.value)},t.prototype.isString=function(){return this.bareLiteral(x)&&y.test(this.base.value)},t.prototype.isRegex=function(){return this.bareLiteral(x)&&v.test(this.base.value)},t.prototype.isAtomic=function(){var e,t,n,i;for(i=this.properties.concat(this.base),e=0,t=i.length;t>e;e++)if(n=i[e],n.soak||n instanceof o)return!1;return!0},t.prototype.isNotCallable=function(){return this.isSimpleNumber()||this.isString()||this.isRegex()||this.isArray()||this.isRange()||this.isSplice()||this.isObject()},t.prototype.isStatement=function(e){return!this.properties.length&&this.base.isStatement(e)},t.prototype.assigns=function(e){return!this.properties.length&&this.base.assigns(e)},t.prototype.jumps=function(e){return!this.properties.length&&this.base.jumps(e)},t.prototype.isObject=function(e){return this.properties.length?!1:this.base instanceof A&&(!e||this.base.generated)},t.prototype.isSplice=function(){var e,t;return t=this.properties,e=t[t.length-1],e instanceof U},t.prototype.looksStatic=function(e){var t;return this.base.value===e&&1===this.properties.length&&\"prototype\"!==(null!=(t=this.properties[0].name)?t.value:void 0)},t.prototype.unwrap=function(){return this.properties.length?this:this.base},t.prototype.cacheReference=function(e){var n,r,s,o,a;return a=this.properties,s=a[a.length-1],2>this.properties.length&&!this.base.isComplex()&&!(null!=s?s.isComplex():void 0)?[this,this]:(n=new t(this.base,this.properties.slice(0,-1)),n.isComplex()&&(r=new x(e.scope.freeVariable(\"base\")),n=new t(new O(new i(r,n)))),s?(s.isComplex()&&(o=new x(e.scope.freeVariable(\"name\")),s=new w(new i(o,s.index)),o=new w(o)),[n.add(s),new t(r||n.base,[o||s])]):[n,r])},t.prototype.compileNode=function(e){var t,n,i,r,s;for(this.base.front=this.front,s=this.properties,t=this.base.compileToFragments(e,s.length?T:null),(this.base instanceof O||s.length)&&B.test(st(t))&&t.push(this.makeCode(\".\")),n=0,i=s.length;i>n;n++)r=s[n],t.push.apply(t,r.compileToFragments(e));return t},t.prototype.unfoldSoak=function(e){return null!=this.unfoldedSoak?this.unfoldedSoak:this.unfoldedSoak=function(n){return function(){var r,s,o,a,c,h,l,p,d,f;if(o=n.base.unfoldSoak(e))return(p=o.body.properties).push.apply(p,n.properties),o;for(d=n.properties,s=a=0,c=d.length;c>a;s=++a)if(h=d[s],h.soak)return h.soak=!1,r=new t(n.base,n.properties.slice(0,s)),f=new t(n.base,n.properties.slice(s)),r.isComplex()&&(l=new x(e.scope.freeVariable(\"ref\")),r=new O(new i(l,r)),f.base=l),new b(new u(r),f,{soak:!0});return!1}}(this)()},t}(r),e.Comment=l=function(e){function t(e){this.comment=e}return kt(t,e),t.prototype.isStatement=Q,t.prototype.makeReturn=X,t.prototype.compileNode=function(e,t){var n,i;return i=this.comment.replace(/^(\\s*)#(?=\\s)/gm,\"$1 *\"),n=\"/*\"+ut(i,this.tab)+(Tt.call(i,\"\\n\")>=0?\"\\n\"+this.tab:\"\")+\" */\",(t||e.level)===L&&(n=e.indent+n),[this.makeCode(\"\\n\"),this.makeCode(n)]},t}(r),e.Call=o=function(e){function n(e,t,n){this.args=null!=t?t:[],this.soak=n,this.isNew=!1,this.isSuper=\"super\"===e,this.variable=this.isSuper?null:e,e instanceof z&&e.isNotCallable()&&e.error(\"literal is not a function\")}return kt(n,e),n.prototype.children=[\"variable\",\"args\"],n.prototype.newInstance=function(){var e,t;return e=(null!=(t=this.variable)?t.base:void 0)||this.variable,e instanceof n&&!e.isNew?e.newInstance():this.isNew=!0,this},n.prototype.superReference=function(e){var n,r,s,o,a,c,h,l;return a=e.scope.namedMethod(),(null!=a?a.klass:void 0)?(o=a.klass,c=a.name,l=a.variable,o.isComplex()&&(s=new x(e.scope.parent.freeVariable(\"base\")),r=new z(new O(new i(s,o))),l.base=r,l.properties.splice(0,o.properties.length)),(c.isComplex()||c instanceof w&&c.index.isAssignable())&&(h=new x(e.scope.parent.freeVariable(\"name\")),c=new w(new i(h,c.index)),l.properties.pop(),l.properties.push(c)),n=[new t(new x(\"__super__\"))],a[\"static\"]&&n.push(new t(new x(\"constructor\"))),n.push(null!=h?new w(h):c),new z(null!=s?s:o,n).compile(e)):(null!=a?a.ctor:void 0)?a.name+\".__super__.constructor\":this.error(\"cannot call super outside of an instance method.\")},n.prototype.superThis=function(e){var t;return t=e.scope.method,t&&!t.klass&&t.context||\"this\"},n.prototype.unfoldSoak=function(e){var t,i,r,s,o,a,c,h,l;if(this.soak){if(this.variable){if(i=yt(e,this,\"variable\"))return i;c=new z(this.variable).cacheReference(e),s=c[0],l=c[1]}else s=new x(this.superReference(e)),l=new z(s);return l=new n(l,this.args),l.isNew=this.isNew,s=new x(\"typeof \"+s.compile(e)+' === \"function\"'),new b(s,new z(l),{soak:!0})}for(t=this,a=[];;)if(t.variable instanceof n)a.push(t),t=t.variable;else{if(!(t.variable instanceof z))break;if(a.push(t),!((t=t.variable.base)instanceof n))break}for(h=a.reverse(),r=0,o=h.length;o>r;r++)t=h[r],i&&(t.variable instanceof n?t.variable=i:t.variable.base=i),i=yt(e,t,\"variable\");return i},n.prototype.compileNode=function(e){var t,n,i,r,s,o,a,c,h,l;if(null!=(h=this.variable)&&(h.front=this.front),r=G.compileSplattedArray(e,this.args,!0),r.length)return this.compileSplat(e,r);for(i=[],l=this.args,n=o=0,a=l.length;a>o;n=++o)t=l[n],n&&i.push(this.makeCode(\", \")),i.push.apply(i,t.compileToFragments(e,E));return s=[],this.isSuper?(c=this.superReference(e)+(\".call(\"+this.superThis(e)),i.length&&(c+=\", \"),s.push(this.makeCode(c))):(this.isNew&&s.push(this.makeCode(\"new \")),s.push.apply(s,this.variable.compileToFragments(e,T)),s.push(this.makeCode(\"(\"))),s.push.apply(s,i),s.push(this.makeCode(\")\")),s},n.prototype.compileSplat=function(e,t){var n,i,r,s,o,a;return this.isSuper?[].concat(this.makeCode(this.superReference(e)+\".apply(\"+this.superThis(e)+\", \"),t,this.makeCode(\")\")):this.isNew?(s=this.tab+q,[].concat(this.makeCode(\"(function(func, args, ctor) {\\n\"+s+\"ctor.prototype = func.prototype;\\n\"+s+\"var child = new ctor, result = func.apply(child, args);\\n\"+s+\"return Object(result) === result ? result : child;\\n\"+this.tab+\"})(\"),this.variable.compileToFragments(e,E),this.makeCode(\", \"),t,this.makeCode(\", function(){})\"))):(n=[],i=new z(this.variable),(o=i.properties.pop())&&i.isComplex()?(a=e.scope.freeVariable(\"ref\"),n=n.concat(this.makeCode(\"(\"+a+\" = \"),i.compileToFragments(e,E),this.makeCode(\")\"),o.compileToFragments(e))):(r=i.compileToFragments(e,T),B.test(st(r))&&(r=this.wrapInBraces(r)),o?(a=st(r),r.push.apply(r,o.compileToFragments(e))):a=\"null\",n=n.concat(r)),n=n.concat(this.makeCode(\".apply(\"+a+\", \"),t,this.makeCode(\")\")))},n}(r),e.Extends=d=function(e){function t(e,t){this.child=e,this.parent=t}return kt(t,e),t.prototype.children=[\"child\",\"parent\"],t.prototype.compileToFragments=function(e){return new o(new z(new x(bt(\"extend\",e))),[this.child,this.parent]).compileToFragments(e)},t}(r),e.Access=t=function(e){function t(e,t){this.name=e,this.name.asKey=!0,this.soak=\"soak\"===t}return kt(t,e),t.prototype.children=[\"name\"],t.prototype.compileToFragments=function(e){var t;return t=this.name.compileToFragments(e),g.test(st(t))?t.unshift(this.makeCode(\".\")):(t.unshift(this.makeCode(\"[\")),t.push(this.makeCode(\"]\"))),t},t.prototype.isComplex=D,t}(r),e.Index=w=function(e){function t(e){this.index=e}return kt(t,e),t.prototype.children=[\"index\"],t.prototype.compileToFragments=function(e){return[].concat(this.makeCode(\"[\"),this.index.compileToFragments(e,N),this.makeCode(\"]\"))},t.prototype.isComplex=function(){return this.index.isComplex()},t}(r),e.Range=j=function(e){function t(e,t,n){this.from=e,this.to=t,this.exclusive=\"exclusive\"===n,this.equals=this.exclusive?\"\":\"=\"}return kt(t,e),t.prototype.children=[\"from\",\"to\"],t.prototype.compileVariables=function(e){var t,n,i,r,s,o;return e=lt(e,{top:!0}),t=tt(e,\"isComplex\"),n=this.cacheToCodeFragments(this.from.cache(e,E,t)),this.fromC=n[0],this.fromVar=n[1],i=this.cacheToCodeFragments(this.to.cache(e,E,t)),this.toC=i[0],this.toVar=i[1],(o=tt(e,\"step\"))&&(r=this.cacheToCodeFragments(o.cache(e,E,t)),this.step=r[0],this.stepVar=r[1]),s=[this.fromVar.match(R),this.toVar.match(R)],this.fromNum=s[0],this.toNum=s[1],this.stepVar?this.stepNum=this.stepVar.match(R):void 0},t.prototype.compileNode=function(e){var t,n,i,r,s,o,a,c,h,l,u,p,d,f;return this.fromVar||this.compileVariables(e),e.index?(a=this.fromNum&&this.toNum,s=tt(e,\"index\"),o=tt(e,\"name\"),h=o&&o!==s,f=s+\" = \"+this.fromC,this.toC!==this.toVar&&(f+=\", \"+this.toC),this.step!==this.stepVar&&(f+=\", \"+this.step),l=[s+\" <\"+this.equals,s+\" >\"+this.equals],c=l[0],r=l[1],n=this.stepNum?pt(this.stepNum[0])>0?c+\" \"+this.toVar:r+\" \"+this.toVar:a?(u=[pt(this.fromNum[0]),pt(this.toNum[0])],i=u[0],d=u[1],u,d>=i?c+\" \"+d:r+\" \"+d):(t=this.stepVar?this.stepVar+\" > 0\":this.fromVar+\" <= \"+this.toVar,t+\" ? \"+c+\" \"+this.toVar+\" : \"+r+\" \"+this.toVar),p=this.stepVar?s+\" += \"+this.stepVar:a?h?d>=i?\"++\"+s:\"--\"+s:d>=i?s+\"++\":s+\"--\":h?t+\" ? ++\"+s+\" : --\"+s:t+\" ? \"+s+\"++ : \"+s+\"--\",h&&(f=o+\" = \"+f),h&&(p=o+\" = \"+p),[this.makeCode(f+\"; \"+n+\"; \"+p)]):this.compileArray(e)},t.prototype.compileArray=function(e){var t,n,i,r,s,o,a,c,h,l,u,p,d;return this.fromNum&&this.toNum&&20>=Math.abs(this.fromNum-this.toNum)?(h=function(){p=[];for(var e=l=+this.fromNum,t=+this.toNum;t>=l?t>=e:e>=t;t>=l?e++:e--)p.push(e);return p}.apply(this),this.exclusive&&h.pop(),[this.makeCode(\"[\"+h.join(\", \")+\"]\")]):(o=this.tab+q,s=e.scope.freeVariable(\"i\",{single:!0}),u=e.scope.freeVariable(\"results\"),c=\"\\n\"+o+u+\" = [];\",this.fromNum&&this.toNum?(e.index=s,n=st(this.compileNode(e))):(d=s+\" = \"+this.fromC+(this.toC!==this.toVar?\", \"+this.toC:\"\"),i=this.fromVar+\" <= \"+this.toVar,n=\"var \"+d+\"; \"+i+\" ? \"+s+\" <\"+this.equals+\" \"+this.toVar+\" : \"+s+\" >\"+this.equals+\" \"+this.toVar+\"; \"+i+\" ? \"+s+\"++ : \"+s+\"--\"),a=\"{ \"+u+\".push(\"+s+\"); }\\n\"+o+\"return \"+u+\";\\n\"+e.indent,r=function(e){return null!=e?e.contains(at):void 0},(r(this.from)||r(this.to))&&(t=\", arguments\"),[this.makeCode(\"(function() {\"+c+\"\\n\"+o+\"for (\"+n+\")\"+a+\"}).apply(this\"+(null!=t?t:\"\")+\")\")])},t}(r),e.Slice=U=function(e){function t(e){this.range=e,t.__super__.constructor.call(this)}return kt(t,e),t.prototype.children=[\"range\"],t.prototype.compileNode=function(e){var t,n,i,r,s,o,a;return s=this.range,o=s.to,i=s.from,r=i&&i.compileToFragments(e,N)||[this.makeCode(\"0\")],o&&(t=o.compileToFragments(e,N),n=st(t),(this.range.exclusive||-1!==+n)&&(a=\", \"+(this.range.exclusive?n:B.test(n)?\"\"+(+n+1):(t=o.compileToFragments(e,T),\"+\"+st(t)+\" + 1 || 9e9\")))),[this.makeCode(\".slice(\"+st(r)+(a||\"\")+\")\")]},t}(r),e.Obj=A=function(e){function n(e,t){this.generated=null!=t?t:!1,this.objects=this.properties=e||[]}return kt(n,e),n.prototype.children=[\"properties\"],n.prototype.compileNode=function(e){var n,r,s,o,a,c,h,u,p,d,f,m,g,v,y,b,k,w,T,C,E;if(T=this.properties,this.generated)for(h=0,g=T.length;g>h;h++)b=T[h],b instanceof z&&b.error(\"cannot have an implicit value in an implicit object\");for(r=p=0,v=T.length;v>p&&(w=T[r],!((w.variable||w).base instanceof O));r=++p);for(s=T.length>r,a=e.indent+=q,m=this.lastNonComment(this.properties),n=[],s&&(k=e.scope.freeVariable(\"obj\"),n.push(this.makeCode(\"(\\n\"+a+k+\" = \"))),n.push(this.makeCode(\"{\"+(0===T.length||0===r?\"}\":\"\\n\"))),o=f=0,y=T.length;y>f;o=++f)w=T[o],o===r&&(0!==o&&n.push(this.makeCode(\"\\n\"+a+\"}\")),n.push(this.makeCode(\",\\n\"))),u=o===T.length-1||o===r-1?\"\":w===m||w instanceof l?\"\\n\":\",\\n\",c=w instanceof l?\"\":a,s&&r>o&&(c+=q),w instanceof i&&w.variable instanceof z&&w.variable.hasProperties()&&w.variable.error(\"invalid object key\"),w instanceof z&&w[\"this\"]&&(w=new i(w.properties[0].name,w,\"object\")),w instanceof l||(r>o?(w instanceof i||(w=new i(w,w,\"object\")),(w.variable.base||w.variable).asKey=!0):(w instanceof i?(d=w.variable,E=w.value):(C=w.base.cache(e),d=C[0],E=C[1]),w=new i(new z(new x(k),[new t(d)]),E))),c&&n.push(this.makeCode(c)),n.push.apply(n,w.compileToFragments(e,L)),u&&n.push(this.makeCode(u));return s?n.push(this.makeCode(\",\\n\"+a+k+\"\\n\"+this.tab+\")\")):0!==T.length&&n.push(this.makeCode(\"\\n\"+this.tab+\"}\")),this.front&&!s?this.wrapInBraces(n):n},n.prototype.assigns=function(e){var t,n,i,r;for(r=this.properties,t=0,n=r.length;n>t;t++)if(i=r[t],i.assigns(e))return!0;return!1},n}(r),e.Arr=n=function(e){function t(e){this.objects=e||[]}return kt(t,e),t.prototype.children=[\"objects\"],t.prototype.compileNode=function(e){var t,n,i,r,s,o,a;if(!this.objects.length)return[this.makeCode(\"[]\")];if(e.indent+=q,t=G.compileSplattedArray(e,this.objects),t.length)return t;for(t=[],n=function(){var t,n,i,r;for(i=this.objects,r=[],t=0,n=i.length;n>t;t++)a=i[t],r.push(a.compileToFragments(e,E));return r}.call(this),r=s=0,o=n.length;o>s;r=++s)i=n[r],r&&t.push(this.makeCode(\", \")),t.push.apply(t,i);return st(t).indexOf(\"\\n\")>=0?(t.unshift(this.makeCode(\"[\\n\"+e.indent)),t.push(this.makeCode(\"\\n\"+this.tab+\"]\"))):(t.unshift(this.makeCode(\"[\")),t.push(this.makeCode(\"]\"))),t},t.prototype.assigns=function(e){var t,n,i,r;for(r=this.objects,t=0,n=r.length;n>t;t++)if(i=r[t],i.assigns(e))return!0;return!1},t}(r),e.Class=a=function(e){function n(e,t,n){this.variable=e,this.parent=t,this.body=null!=n?n:new s,this.boundFuncs=[],this.body.classBody=!0}return kt(n,e),n.prototype.children=[\"variable\",\"parent\",\"body\"],n.prototype.determineName=function(){var e,n,i;return this.variable?(n=this.variable.properties,i=n[n.length-1],e=i?i instanceof t&&i.name.value:this.variable.base.value,Tt.call(V,e)>=0&&this.variable.error(\"class variable name may not be \"+e),e&&(e=g.test(e)&&e)):null},n.prototype.setContext=function(e){return this.body.traverseChildren(!1,function(t){return t.classBody?!1:t instanceof x&&\"this\"===t.value?t.value=e:t instanceof c&&t.bound?t.context=e:void 0})},n.prototype.addBoundFunctions=function(e){var n,i,r,s,o;for(o=this.boundFuncs,i=0,r=o.length;r>i;i++)n=o[i],s=new z(new x(\"this\"),[new t(n)]).compile(e),this.ctor.body.unshift(new x(s+\" = \"+bt(\"bind\",e)+\"(\"+s+\", this)\"))},n.prototype.addProperties=function(e,n,r){var s,o,a,h,l,u;return u=e.base.properties.slice(0),h=function(){var e;for(e=[];o=u.shift();)o instanceof i&&(a=o.variable.base,delete o.context,l=o.value,\"constructor\"===a.value?(this.ctor&&o.error(\"cannot define more than one constructor in a class\"),l.bound&&o.error(\"cannot define a constructor as a bound function\"),l instanceof c?o=this.ctor=l:(this.externalCtor=r.classScope.freeVariable(\"class\"),o=new i(new x(this.externalCtor),l))):o.variable[\"this\"]?l[\"static\"]=!0:(s=a.isComplex()?new w(a):new t(a),o.variable=new z(new x(n),[new t(new x(\"prototype\")),s]),l instanceof c&&l.bound&&(this.boundFuncs.push(a),l.bound=!1))),e.push(o);return e}.call(this),et(h)},n.prototype.walkBody=function(e,t){return this.traverseChildren(!1,function(r){return function(o){var a,c,h,l,u,p,d;if(a=!0,o instanceof n)return!1;if(o instanceof s){for(d=c=o.expressions,h=l=0,u=d.length;u>l;h=++l)p=d[h],p instanceof i&&p.variable.looksStatic(e)?p.value[\"static\"]=!0:p instanceof z&&p.isObject(!0)&&(a=!1,c[h]=r.addProperties(p,e,t));o.expressions=c=rt(c)}return a&&!(o instanceof n)}}(this))},n.prototype.hoistDirectivePrologue=function(){var e,t,n;for(t=0,e=this.body.expressions;(n=e[t])&&n instanceof l||n instanceof z&&n.isString();)++t;return this.directives=e.splice(0,t)},n.prototype.ensureConstructor=function(e){return this.ctor||(this.ctor=new c,this.externalCtor?this.ctor.body.push(new x(this.externalCtor+\".apply(this, arguments)\")):this.parent&&this.ctor.body.push(new x(e+\".__super__.constructor.apply(this, arguments)\")),this.ctor.body.makeReturn(),this.body.expressions.unshift(this.ctor)),this.ctor.ctor=this.ctor.name=e,this.ctor.klass=null,this.ctor.noReturn=!0},n.prototype.compileNode=function(e){var t,n,r,a,h,l,u,p,f;return(a=this.body.jumps())&&a.error(\"Class bodies cannot contain pure statements\"),(n=this.body.contains(at))&&n.error(\"Class bodies shouldn't reference arguments\"),u=this.determineName()||\"_Class\",u.reserved&&(u=\"_\"+u),l=new x(u),r=new c([],s.wrap([this.body])),t=[],e.classScope=r.makeScope(e.scope),this.hoistDirectivePrologue(),this.setContext(u),this.walkBody(u,e),this.ensureConstructor(u),this.addBoundFunctions(e),this.body.spaced=!0,this.body.expressions.push(l),this.parent&&(f=new x(e.classScope.freeVariable(\"superClass\",{reserve:!1})),this.body.expressions.unshift(new d(l,f)),r.params.push(new _(f)),t.push(this.parent)),(p=this.body.expressions).unshift.apply(p,this.directives),h=new O(new o(r,t)),this.variable&&(h=new i(this.variable,h)),h.compileToFragments(e)},n}(r),e.Assign=i=function(e){function n(e,t,n,i){var r,s,o;this.variable=e,this.value=t,this.context=n,this.param=i&&i.param,this.subpattern=i&&i.subpattern,o=s=this.variable.unwrapAll().value,r=Tt.call(V,o)>=0,r&&\"object\"!==this.context&&this.variable.error('variable name may not be \"'+s+'\"')}return kt(n,e),n.prototype.children=[\"variable\",\"value\"],n.prototype.isStatement=function(e){return(null!=e?e.level:void 0)===L&&null!=this.context&&Tt.call(this.context,\"?\")>=0\n},n.prototype.assigns=function(e){return this[\"object\"===this.context?\"value\":\"variable\"].assigns(e)},n.prototype.unfoldSoak=function(e){return yt(e,this,\"variable\")},n.prototype.compileNode=function(e){var t,n,i,r,s,o,a,h,l,u,p,d,f,m;if(i=this.variable instanceof z){if(this.variable.isArray()||this.variable.isObject())return this.compilePatternMatch(e);if(this.variable.isSplice())return this.compileSplice(e);if(\"||=\"===(h=this.context)||\"&&=\"===h||\"?=\"===h)return this.compileConditional(e);if(\"**=\"===(l=this.context)||\"//=\"===l||\"%%=\"===l)return this.compileSpecialMath(e)}return this.value instanceof c&&(this.value[\"static\"]?(this.value.klass=this.variable.base,this.value.name=this.variable.properties[0],this.value.variable=this.variable):(null!=(u=this.variable.properties)?u.length:void 0)>=2&&(p=this.variable.properties,o=p.length>=3?Ct.call(p,0,r=p.length-2):(r=0,[]),a=p[r++],s=p[r++],\"prototype\"===(null!=(d=a.name)?d.value:void 0)&&(this.value.klass=new z(this.variable.base,o),this.value.name=s,this.value.variable=this.variable))),this.context||(m=this.variable.unwrapAll(),m.isAssignable()||this.variable.error('\"'+this.variable.compile(e)+'\" cannot be assigned'),(\"function\"==typeof m.hasProperties?m.hasProperties():void 0)||(this.param?e.scope.add(m.value,\"var\"):e.scope.find(m.value))),f=this.value.compileToFragments(e,E),n=this.variable.compileToFragments(e,E),\"object\"===this.context?n.concat(this.makeCode(\": \"),f):(t=n.concat(this.makeCode(\" \"+(this.context||\"=\")+\" \"),f),E>=e.level?t:this.wrapInBraces(t))},n.prototype.compilePatternMatch=function(e){var i,r,s,o,a,c,h,l,u,d,f,m,v,y,b,k,T,C,N,S,D,R,A,I,_,j,M,B;if(I=e.level===L,j=this.value,y=this.variable.base.objects,!(b=y.length))return s=j.compileToFragments(e),e.level>=F?this.wrapInBraces(s):s;if(l=this.variable.isObject(),I&&1===b&&!((v=y[0])instanceof G))return v instanceof n?(T=v,C=T.variable,h=C.base,v=T.value):h=l?v[\"this\"]?v.properties[0].name:v:new x(0),i=g.test(h.unwrap().value||0),j=new z(j),j.properties.push(new(i?t:w)(h)),N=v.unwrap().value,Tt.call($,N)>=0&&v.error(\"assignment to a reserved word: \"+v.compile(e)),new n(v,j,null,{param:this.param}).compileToFragments(e,L);for(M=j.compileToFragments(e,E),B=st(M),r=[],o=!1,(!g.test(B)||this.variable.assigns(B))&&(r.push([this.makeCode((k=e.scope.freeVariable(\"ref\"))+\" = \")].concat(Ct.call(M))),M=[this.makeCode(k)],B=k),c=d=0,f=y.length;f>d;c=++d){if(v=y[c],h=c,l&&(v instanceof n?(S=v,D=S.variable,h=D.base,v=S.value):v.base instanceof O?(R=new z(v.unwrapAll()).cacheReference(e),v=R[0],h=R[1]):h=v[\"this\"]?v.properties[0].name:v),!o&&v instanceof G)m=v.name.unwrap().value,v=v.unwrap(),_=b+\" <= \"+B+\".length ? \"+bt(\"slice\",e)+\".call(\"+B+\", \"+c,(A=b-c-1)?(u=e.scope.freeVariable(\"i\",{single:!0}),_+=\", \"+u+\" = \"+B+\".length - \"+A+\") : (\"+u+\" = \"+c+\", [])\"):_+=\") : []\",_=new x(_),o=u+\"++\";else{if(!o&&v instanceof p){(A=b-c-1)&&(1===A?o=B+\".length - 1\":(u=e.scope.freeVariable(\"i\",{single:!0}),_=new x(u+\" = \"+B+\".length - \"+A),o=u+\"++\",r.push(_.compileToFragments(e,E))));continue}m=v.unwrap().value,(v instanceof G||v instanceof p)&&v.error(\"multiple splats/expansions are disallowed in an assignment\"),\"number\"==typeof h?(h=new x(o||h),i=!1):i=l&&g.test(h.unwrap().value||0),_=new z(new x(B),[new(i?t:w)(h)])}null!=m&&Tt.call($,m)>=0&&v.error(\"assignment to a reserved word: \"+v.compile(e)),r.push(new n(v,_,null,{param:this.param,subpattern:!0}).compileToFragments(e,E))}return I||this.subpattern||r.push(M),a=this.joinFragmentArrays(r,\", \"),E>e.level?a:this.wrapInBraces(a)},n.prototype.compileConditional=function(e){var t,i,r,s;return r=this.variable.cacheReference(e),i=r[0],s=r[1],!i.properties.length&&i.base instanceof x&&\"this\"!==i.base.value&&!e.scope.check(i.base.value)&&this.variable.error('the variable \"'+i.base.value+\"\\\" can't be assigned with \"+this.context+\" because it has not been declared before\"),Tt.call(this.context,\"?\")>=0?(e.isExistentialEquals=!0,new b(new u(i),s,{type:\"if\"}).addElse(new n(s,this.value,\"=\")).compileToFragments(e)):(t=new I(this.context.slice(0,-1),i,new n(s,this.value,\"=\")).compileToFragments(e),E>=e.level?t:this.wrapInBraces(t))},n.prototype.compileSpecialMath=function(e){var t,i,r;return i=this.variable.cacheReference(e),t=i[0],r=i[1],new n(t,new I(this.context.slice(0,-1),r,this.value)).compileToFragments(e)},n.prototype.compileSplice=function(e){var t,n,i,r,s,o,a,c,h,l,u,p;return a=this.variable.properties.pop().range,i=a.from,l=a.to,n=a.exclusive,o=this.variable.compile(e),i?(c=this.cacheToCodeFragments(i.cache(e,F)),r=c[0],s=c[1]):r=s=\"0\",l?i instanceof z&&i.isSimpleNumber()&&l instanceof z&&l.isSimpleNumber()?(l=l.compile(e)-s,n||(l+=1)):(l=l.compile(e,T)+\" - \"+s,n||(l+=\" + 1\")):l=\"9e9\",h=this.value.cache(e,E),u=h[0],p=h[1],t=[].concat(this.makeCode(\"[].splice.apply(\"+o+\", [\"+r+\", \"+l+\"].concat(\"),u,this.makeCode(\")), \"),p),e.level>L?this.wrapInBraces(t):t},n}(r),e.Code=c=function(e){function t(e,t,n){this.params=e||[],this.body=t||new s,this.bound=\"boundfunc\"===n,this.isGenerator=!!this.body.contains(function(e){var t;return e instanceof I&&(\"yield\"===(t=e.operator)||\"yield*\"===t)})}return kt(t,e),t.prototype.children=[\"params\",\"body\"],t.prototype.isStatement=function(){return!!this.ctor},t.prototype.jumps=D,t.prototype.makeScope=function(e){return new P(e,this.body,this)},t.prototype.compileNode=function(e){var r,a,c,h,l,u,d,f,m,g,v,y,k,w,C,E,F,N,L,S,D,R,A,O,$,j,M,B,V,P,U,G,H;if(this.bound&&(null!=(A=e.scope.method)?A.bound:void 0)&&(this.context=e.scope.method.context),this.bound&&!this.context)return this.context=\"_this\",H=new t([new _(new x(this.context))],new s([this])),a=new o(H,[new x(\"this\")]),a.updateLocationDataIfMissing(this.locationData),a.compileNode(e);for(e.scope=tt(e,\"classScope\")||this.makeScope(e.scope),e.scope.shared=tt(e,\"sharedScope\"),e.indent+=q,delete e.bare,delete e.isExistentialEquals,L=[],h=[],O=this.params,u=0,m=O.length;m>u;u++)N=O[u],N instanceof p||e.scope.parameter(N.asReference(e));for($=this.params,d=0,g=$.length;g>d;d++)if(N=$[d],N.splat||N instanceof p){for(j=this.params,f=0,v=j.length;v>f;f++)F=j[f],F instanceof p||!F.name.value||e.scope.add(F.name.value,\"var\",!0);V=new i(new z(new n(function(){var t,n,i,r;for(i=this.params,r=[],n=0,t=i.length;t>n;n++)F=i[n],r.push(F.asReference(e));return r}.call(this))),new z(new x(\"arguments\")));break}for(M=this.params,E=0,y=M.length;y>E;E++)N=M[E],N.isComplex()?(U=R=N.asReference(e),N.value&&(U=new I(\"?\",R,N.value)),h.push(new i(new z(N.name),U,\"=\",{param:!0}))):(R=N,N.value&&(C=new x(R.name.value+\" == null\"),U=new i(new z(N.name),N.value,\"=\"),h.push(new b(C,U)))),V||L.push(R);for(G=this.body.isEmpty(),V&&h.unshift(V),h.length&&(B=this.body.expressions).unshift.apply(B,h),l=S=0,k=L.length;k>S;l=++S)F=L[l],L[l]=F.compileToFragments(e),e.scope.parameter(st(L[l]));for(P=[],this.eachParamName(function(e,t){return Tt.call(P,e)>=0&&t.error(\"multiple parameters named \"+e),P.push(e)}),G||this.noReturn||this.body.makeReturn(),c=\"function\",this.isGenerator&&(c+=\"*\"),this.ctor&&(c+=\" \"+this.name),c+=\"(\",r=[this.makeCode(c)],l=D=0,w=L.length;w>D;l=++D)F=L[l],l&&r.push(this.makeCode(\", \")),r.push.apply(r,F);return r.push(this.makeCode(\") {\")),this.body.isEmpty()||(r=r.concat(this.makeCode(\"\\n\"),this.body.compileWithDeclarations(e),this.makeCode(\"\\n\"+this.tab))),r.push(this.makeCode(\"}\")),this.ctor?[this.makeCode(this.tab)].concat(Ct.call(r)):this.front||e.level>=T?this.wrapInBraces(r):r},t.prototype.eachParamName=function(e){var t,n,i,r,s;for(r=this.params,s=[],t=0,n=r.length;n>t;t++)i=r[t],s.push(i.eachName(e));return s},t.prototype.traverseChildren=function(e,n){return e?t.__super__.traverseChildren.call(this,e,n):void 0},t}(r),e.Param=_=function(e){function t(e,t,n){var i,r;this.name=e,this.value=t,this.splat=n,r=i=this.name.unwrapAll().value,Tt.call(V,r)>=0&&this.name.error('parameter name \"'+i+'\" is not allowed')}return kt(t,e),t.prototype.children=[\"name\",\"value\"],t.prototype.compileToFragments=function(e){return this.name.compileToFragments(e,E)},t.prototype.asReference=function(e){var t,n;return this.reference?this.reference:(n=this.name,n[\"this\"]?(t=n.properties[0].name.value,t.reserved&&(t=\"_\"+t),n=new x(e.scope.freeVariable(t))):n.isComplex()&&(n=new x(e.scope.freeVariable(\"arg\"))),n=new z(n),this.splat&&(n=new G(n)),n.updateLocationDataIfMissing(this.locationData),this.reference=n)},t.prototype.isComplex=function(){return this.name.isComplex()},t.prototype.eachName=function(e,t){var n,r,s,o,a,c;if(null==t&&(t=this.name),n=function(t){return e(\"@\"+t.properties[0].name.value,t)},t instanceof x)return e(t.value,t);if(t instanceof z)return n(t);for(c=t.objects,r=0,s=c.length;s>r;r++)a=c[r],a instanceof i?this.eachName(e,a.value.unwrap()):a instanceof G?(o=a.name.unwrap(),e(o.value,o)):a instanceof z?a.isArray()||a.isObject()?this.eachName(e,a.base):a[\"this\"]?n(a):e(a.base.value,a.base):a instanceof p||a.error(\"illegal parameter \"+a.compile())},t}(r),e.Splat=G=function(e){function t(e){this.name=e.compile?e:new x(e)}return kt(t,e),t.prototype.children=[\"name\"],t.prototype.isAssignable=Q,t.prototype.assigns=function(e){return this.name.assigns(e)},t.prototype.compileToFragments=function(e){return this.name.compileToFragments(e)},t.prototype.unwrap=function(){return this.name},t.compileSplattedArray=function(e,n,i){var r,s,o,a,c,h,l,u,p,d,f;for(l=-1;(f=n[++l])&&!(f instanceof t););if(l>=n.length)return[];if(1===n.length)return f=n[0],c=f.compileToFragments(e,E),i?c:[].concat(f.makeCode(bt(\"slice\",e)+\".call(\"),c,f.makeCode(\")\"));for(r=n.slice(l),h=u=0,d=r.length;d>u;h=++u)f=r[h],o=f.compileToFragments(e,E),r[h]=f instanceof t?[].concat(f.makeCode(bt(\"slice\",e)+\".call(\"),o,f.makeCode(\")\")):[].concat(f.makeCode(\"[\"),o,f.makeCode(\"]\"));return 0===l?(f=n[0],a=f.joinFragmentArrays(r.slice(1),\", \"),r[0].concat(f.makeCode(\".concat(\"),a,f.makeCode(\")\"))):(s=function(){var t,i,r,s;for(r=n.slice(0,l),s=[],t=0,i=r.length;i>t;t++)f=r[t],s.push(f.compileToFragments(e,E));return s}(),s=n[0].joinFragmentArrays(s,\", \"),a=n[l].joinFragmentArrays(r,\", \"),p=n[n.length-1],[].concat(n[0].makeCode(\"[\"),s,n[l].makeCode(\"].concat(\"),a,p.makeCode(\")\")))},t}(r),e.Expansion=p=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return kt(t,e),t.prototype.isComplex=D,t.prototype.compileNode=function(){return this.error(\"Expansion must be used inside a destructuring assignment or parameter list\")},t.prototype.asReference=function(){return this},t.prototype.eachName=function(){},t}(r),e.While=J=function(e){function t(e,t){this.condition=(null!=t?t.invert:void 0)?e.invert():e,this.guard=null!=t?t.guard:void 0}return kt(t,e),t.prototype.children=[\"condition\",\"guard\",\"body\"],t.prototype.isStatement=Q,t.prototype.makeReturn=function(e){return e?t.__super__.makeReturn.apply(this,arguments):(this.returns=!this.jumps({loop:!0}),this)},t.prototype.addBody=function(e){return this.body=e,this},t.prototype.jumps=function(){var e,t,n,i,r;if(e=this.body.expressions,!e.length)return!1;for(t=0,i=e.length;i>t;t++)if(r=e[t],n=r.jumps({loop:!0}))return n;return!1},t.prototype.compileNode=function(e){var t,n,i,r;return e.indent+=q,r=\"\",n=this.body,n.isEmpty()?n=this.makeCode(\"\"):(this.returns&&(n.makeReturn(i=e.scope.freeVariable(\"results\")),r=\"\"+this.tab+i+\" = [];\\n\"),this.guard&&(n.expressions.length>1?n.expressions.unshift(new b(new O(this.guard).invert(),new x(\"continue\"))):this.guard&&(n=s.wrap([new b(this.guard,n)]))),n=[].concat(this.makeCode(\"\\n\"),n.compileToFragments(e,L),this.makeCode(\"\\n\"+this.tab))),t=[].concat(this.makeCode(r+this.tab+\"while (\"),this.condition.compileToFragments(e,N),this.makeCode(\") {\"),n,this.makeCode(\"}\")),this.returns&&t.push(this.makeCode(\"\\n\"+this.tab+\"return \"+i+\";\")),t},t}(r),e.Op=I=function(e){function n(e,t,n,i){if(\"in\"===e)return new k(t,n);if(\"do\"===e)return this.generateDo(t);if(\"new\"===e){if(t instanceof o&&!t[\"do\"]&&!t.isNew)return t.newInstance();(t instanceof c&&t.bound||t[\"do\"])&&(t=new O(t))}return this.operator=r[e]||e,this.first=t,this.second=n,this.flip=!!i,this}var r,s;return kt(n,e),r={\"==\":\"===\",\"!=\":\"!==\",of:\"in\",yieldfrom:\"yield*\"},s={\"!==\":\"===\",\"===\":\"!==\"},n.prototype.children=[\"first\",\"second\"],n.prototype.isSimpleNumber=D,n.prototype.isYield=function(){var e;return\"yield\"===(e=this.operator)||\"yield*\"===e},n.prototype.isYieldReturn=function(){return this.isYield()&&this.first instanceof M},n.prototype.isUnary=function(){return!this.second},n.prototype.isComplex=function(){var e;return!(this.isUnary()&&(\"+\"===(e=this.operator)||\"-\"===e)&&this.first instanceof z&&this.first.isSimpleNumber())},n.prototype.isChainable=function(){var e;return\"<\"===(e=this.operator)||\">\"===e||\">=\"===e||\"<=\"===e||\"===\"===e||\"!==\"===e},n.prototype.invert=function(){var e,t,i,r,o;if(this.isChainable()&&this.first.isChainable()){for(e=!0,t=this;t&&t.operator;)e&&(e=t.operator in s),t=t.first;if(!e)return new O(this).invert();for(t=this;t&&t.operator;)t.invert=!t.invert,t.operator=s[t.operator],t=t.first;return this}return(r=s[this.operator])?(this.operator=r,this.first.unwrap()instanceof n&&this.first.invert(),this):this.second?new O(this).invert():\"!\"===this.operator&&(i=this.first.unwrap())instanceof n&&(\"!\"===(o=i.operator)||\"in\"===o||\"instanceof\"===o)?i:new n(\"!\",this)},n.prototype.unfoldSoak=function(e){var t;return(\"++\"===(t=this.operator)||\"--\"===t||\"delete\"===t)&&yt(e,this,\"first\")},n.prototype.generateDo=function(e){var t,n,r,s,a,h,l,u;for(h=[],n=e instanceof i&&(l=e.value.unwrap())instanceof c?l:e,u=n.params||[],r=0,s=u.length;s>r;r++)a=u[r],a.value?(h.push(a.value),delete a.value):h.push(a);return t=new o(e,h),t[\"do\"]=!0,t},n.prototype.compileNode=function(e){var t,n,i,r,s,o;if(n=this.isChainable()&&this.first.isChainable(),n||(this.first.front=this.front),\"delete\"===this.operator&&e.scope.check(this.first.unwrapAll().value)&&this.error(\"delete operand may not be argument or var\"),(\"--\"===(r=this.operator)||\"++\"===r)&&(s=this.first.unwrapAll().value,Tt.call(V,s)>=0)&&this.error('cannot increment/decrement \"'+this.first.unwrapAll().value+'\"'),this.isYield())return this.compileYield(e);if(this.isUnary())return this.compileUnary(e);if(n)return this.compileChain(e);switch(this.operator){case\"?\":return this.compileExistence(e);case\"**\":return this.compilePower(e);case\"//\":return this.compileFloorDivision(e);case\"%%\":return this.compileModulo(e);default:return i=this.first.compileToFragments(e,F),o=this.second.compileToFragments(e,F),t=[].concat(i,this.makeCode(\" \"+this.operator+\" \"),o),F>=e.level?t:this.wrapInBraces(t)}},n.prototype.compileChain=function(e){var t,n,i,r;return i=this.first.second.cache(e),this.first.second=i[0],r=i[1],n=this.first.compileToFragments(e,F),t=n.concat(this.makeCode(\" \"+(this.invert?\"&&\":\"||\")+\" \"),r.compileToFragments(e),this.makeCode(\" \"+this.operator+\" \"),this.second.compileToFragments(e,F)),this.wrapInBraces(t)},n.prototype.compileExistence=function(e){var t,n;return this.first.isComplex()?(n=new x(e.scope.freeVariable(\"ref\")),t=new O(new i(n,this.first))):(t=this.first,n=t),new b(new u(t),n,{type:\"if\"}).addElse(this.second).compileToFragments(e)},n.prototype.compileUnary=function(e){var t,i,r;return i=[],t=this.operator,i.push([this.makeCode(t)]),\"!\"===t&&this.first instanceof u?(this.first.negated=!this.first.negated,this.first.compileToFragments(e)):e.level>=T?new O(this).compileToFragments(e):(r=\"+\"===t||\"-\"===t,(\"new\"===t||\"typeof\"===t||\"delete\"===t||r&&this.first instanceof n&&this.first.operator===t)&&i.push([this.makeCode(\" \")]),(r&&this.first instanceof n||\"new\"===t&&this.first.isStatement(e))&&(this.first=new O(this.first)),i.push(this.first.compileToFragments(e,F)),this.flip&&i.reverse(),this.joinFragmentArrays(i,\"\"))},n.prototype.compileYield=function(e){var t,n;return n=[],t=this.operator,null==e.scope.parent&&this.error(\"yield statements must occur within a function generator.\"),Tt.call(Object.keys(this.first),\"expression\")>=0&&!(this.first instanceof W)?this.isYieldReturn()?n.push(this.first.compileToFragments(e,L)):null!=this.first.expression&&n.push(this.first.expression.compileToFragments(e,F)):(n.push([this.makeCode(\"(\"+t+\" \")]),n.push(this.first.compileToFragments(e,F)),n.push([this.makeCode(\")\")])),this.joinFragmentArrays(n,\"\")},n.prototype.compilePower=function(e){var n;return n=new z(new x(\"Math\"),[new t(new x(\"pow\"))]),new o(n,[this.first,this.second]).compileToFragments(e)},n.prototype.compileFloorDivision=function(e){var i,r;return r=new z(new x(\"Math\"),[new t(new x(\"floor\"))]),i=new n(\"/\",this.first,this.second),new o(r,[i]).compileToFragments(e)},n.prototype.compileModulo=function(e){var t;return t=new z(new x(bt(\"modulo\",e))),new o(t,[this.first,this.second]).compileToFragments(e)},n.prototype.toString=function(e){return n.__super__.toString.call(this,e,this.constructor.name+\" \"+this.operator)},n}(r),e.In=k=function(e){function t(e,t){this.object=e,this.array=t}return kt(t,e),t.prototype.children=[\"object\",\"array\"],t.prototype.invert=S,t.prototype.compileNode=function(e){var t,n,i,r,s;if(this.array instanceof z&&this.array.isArray()&&this.array.base.objects.length){for(s=this.array.base.objects,n=0,i=s.length;i>n;n++)if(r=s[n],r instanceof G){t=!0;break}if(!t)return this.compileOrTest(e)}return this.compileLoopTest(e)},t.prototype.compileOrTest=function(e){var t,n,i,r,s,o,a,c,h,l,u,p;for(c=this.object.cache(e,F),u=c[0],a=c[1],h=this.negated?[\" !== \",\" && \"]:[\" === \",\" || \"],t=h[0],n=h[1],p=[],l=this.array.base.objects,i=s=0,o=l.length;o>s;i=++s)r=l[i],i&&p.push(this.makeCode(n)),p=p.concat(i?a:u,this.makeCode(t),r.compileToFragments(e,T));return F>e.level?p:this.wrapInBraces(p)},t.prototype.compileLoopTest=function(e){var t,n,i,r;return i=this.object.cache(e,E),r=i[0],n=i[1],t=[].concat(this.makeCode(bt(\"indexOf\",e)+\".call(\"),this.array.compileToFragments(e,E),this.makeCode(\", \"),n,this.makeCode(\") \"+(this.negated?\"< 0\":\">= 0\"))),st(r)===st(n)?t:(t=r.concat(this.makeCode(\", \"),t),E>e.level?t:this.wrapInBraces(t))},t.prototype.toString=function(e){return t.__super__.toString.call(this,e,this.constructor.name+(this.negated?\"!\":\"\"))},t}(r),e.Try=Y=function(e){function t(e,t,n,i){this.attempt=e,this.errorVariable=t,this.recovery=n,this.ensure=i}return kt(t,e),t.prototype.children=[\"attempt\",\"recovery\",\"ensure\"],t.prototype.isStatement=Q,t.prototype.jumps=function(e){var t;return this.attempt.jumps(e)||(null!=(t=this.recovery)?t.jumps(e):void 0)},t.prototype.makeReturn=function(e){return this.attempt&&(this.attempt=this.attempt.makeReturn(e)),this.recovery&&(this.recovery=this.recovery.makeReturn(e)),this},t.prototype.compileNode=function(e){var t,n,r,s;return e.indent+=q,s=this.attempt.compileToFragments(e,L),t=this.recovery?(r=new x(\"_error\"),this.errorVariable?this.recovery.unshift(new i(this.errorVariable,r)):void 0,[].concat(this.makeCode(\" catch (\"),r.compileToFragments(e),this.makeCode(\") {\\n\"),this.recovery.compileToFragments(e,L),this.makeCode(\"\\n\"+this.tab+\"}\"))):this.ensure||this.recovery?[]:[this.makeCode(\" catch (_error) {}\")],n=this.ensure?[].concat(this.makeCode(\" finally {\\n\"),this.ensure.compileToFragments(e,L),this.makeCode(\"\\n\"+this.tab+\"}\")):[],[].concat(this.makeCode(this.tab+\"try {\\n\"),s,this.makeCode(\"\\n\"+this.tab+\"}\"),t,n)},t}(r),e.Throw=W=function(e){function t(e){this.expression=e}return kt(t,e),t.prototype.children=[\"expression\"],t.prototype.isStatement=Q,t.prototype.jumps=D,t.prototype.makeReturn=X,t.prototype.compileNode=function(e){return[].concat(this.makeCode(this.tab+\"throw \"),this.expression.compileToFragments(e),this.makeCode(\";\"))},t}(r),e.Existence=u=function(e){function t(e){this.expression=e}return kt(t,e),t.prototype.children=[\"expression\"],t.prototype.invert=S,t.prototype.compileNode=function(e){var t,n,i,r;return this.expression.front=this.front,i=this.expression.compile(e,F),g.test(i)&&!e.scope.check(i)?(r=this.negated?[\"===\",\"||\"]:[\"!==\",\"&&\"],t=r[0],n=r[1],i=\"typeof \"+i+\" \"+t+' \"undefined\" '+n+\" \"+i+\" \"+t+\" null\"):i=i+\" \"+(this.negated?\"==\":\"!=\")+\" null\",[this.makeCode(C>=e.level?i:\"(\"+i+\")\")]},t}(r),e.Parens=O=function(e){function t(e){this.body=e}return kt(t,e),t.prototype.children=[\"body\"],t.prototype.unwrap=function(){return this.body},t.prototype.isComplex=function(){return this.body.isComplex()},t.prototype.compileNode=function(e){var t,n,i;return n=this.body.unwrap(),n instanceof z&&n.isAtomic()?(n.front=this.front,n.compileToFragments(e)):(i=n.compileToFragments(e,N),t=F>e.level&&(n instanceof I||n instanceof o||n instanceof f&&n.returns),t?i:this.wrapInBraces(i))},t}(r),e.For=f=function(e){function t(e,t){var n;this.source=t.source,this.guard=t.guard,this.step=t.step,this.name=t.name,this.index=t.index,this.body=s.wrap([e]),this.own=!!t.own,this.object=!!t.object,this.object&&(n=[this.index,this.name],this.name=n[0],this.index=n[1]),this.index instanceof z&&this.index.error(\"index cannot be a pattern matching expression\"),this.range=this.source instanceof z&&this.source.base instanceof j&&!this.source.properties.length,this.pattern=this.name instanceof z,this.range&&this.index&&this.index.error(\"indexes do not apply to range loops\"),this.range&&this.pattern&&this.name.error(\"cannot pattern match over range loops\"),this.own&&!this.object&&this.name.error(\"cannot use own with for-in\"),this.returns=!1}return kt(t,e),t.prototype.children=[\"body\",\"source\",\"guard\",\"step\"],t.prototype.compileNode=function(e){var t,n,r,o,a,c,h,l,u,p,d,f,m,v,y,k,w,T,C,F,N,S,D,A,I,_,$,j,B,V,P,U,G,H;return t=s.wrap([this.body]),D=t.expressions,T=D[D.length-1],(null!=T?T.jumps():void 0)instanceof M&&(this.returns=!1),B=this.range?this.source.base:this.source,j=e.scope,this.pattern||(F=this.name&&this.name.compile(e,E)),v=this.index&&this.index.compile(e,E),F&&!this.pattern&&j.find(F),v&&j.find(v),this.returns&&($=j.freeVariable(\"results\")),y=this.object&&v||j.freeVariable(\"i\",{single:!0}),k=this.range&&F||v||y,w=k!==y?k+\" = \":\"\",this.step&&!this.range&&(A=this.cacheToCodeFragments(this.step.cache(e,E,ot)),V=A[0],U=A[1],P=U.match(R)),this.pattern&&(F=y),H=\"\",d=\"\",h=\"\",f=this.tab+q,this.range?p=B.compileToFragments(lt(e,{index:y,name:F,step:this.step,isComplex:ot})):(G=this.source.compile(e,E),!F&&!this.own||g.test(G)||(h+=\"\"+this.tab+(S=j.freeVariable(\"ref\"))+\" = \"+G+\";\\n\",G=S),F&&!this.pattern&&(N=F+\" = \"+G+\"[\"+k+\"]\"),this.object||(V!==U&&(h+=\"\"+this.tab+V+\";\\n\"),this.step&&P&&(u=0>pt(P[0]))||(C=j.freeVariable(\"len\")),a=\"\"+w+y+\" = 0, \"+C+\" = \"+G+\".length\",c=\"\"+w+y+\" = \"+G+\".length - 1\",r=y+\" < \"+C,o=y+\" >= 0\",this.step?(P?u&&(r=o,a=c):(r=U+\" > 0 ? \"+r+\" : \"+o,a=\"(\"+U+\" > 0 ? (\"+a+\") : \"+c+\")\"),m=y+\" += \"+U):m=\"\"+(k!==y?\"++\"+y:y+\"++\"),p=[this.makeCode(a+\"; \"+r+\"; \"+w+m)])),this.returns&&(I=\"\"+this.tab+$+\" = [];\\n\",_=\"\\n\"+this.tab+\"return \"+$+\";\",t.makeReturn($)),this.guard&&(t.expressions.length>1?t.expressions.unshift(new b(new O(this.guard).invert(),new x(\"continue\"))):this.guard&&(t=s.wrap([new b(this.guard,t)]))),this.pattern&&t.expressions.unshift(new i(this.name,new x(G+\"[\"+k+\"]\"))),l=[].concat(this.makeCode(h),this.pluckDirectCall(e,t)),N&&(H=\"\\n\"+f+N+\";\"),this.object&&(p=[this.makeCode(k+\" in \"+G)],this.own&&(d=\"\\n\"+f+\"if (!\"+bt(\"hasProp\",e)+\".call(\"+G+\", \"+k+\")) continue;\")),n=t.compileToFragments(lt(e,{indent:f}),L),n&&n.length>0&&(n=[].concat(this.makeCode(\"\\n\"),n,this.makeCode(\"\\n\"))),[].concat(l,this.makeCode(\"\"+(I||\"\")+this.tab+\"for (\"),p,this.makeCode(\") {\"+d+H),n,this.makeCode(this.tab+\"}\"+(_||\"\")))},t.prototype.pluckDirectCall=function(e,t){var n,r,s,a,h,l,u,p,d,f,m,g,v,y,b,k;for(r=[],d=t.expressions,h=l=0,u=d.length;u>l;h=++l)s=d[h],s=s.unwrapAll(),s instanceof o&&(k=null!=(f=s.variable)?f.unwrapAll():void 0,(k instanceof c||k instanceof z&&(null!=(m=k.base)?m.unwrapAll():void 0)instanceof c&&1===k.properties.length&&(\"call\"===(g=null!=(v=k.properties[0].name)?v.value:void 0)||\"apply\"===g))&&(a=(null!=(y=k.base)?y.unwrapAll():void 0)||k,p=new x(e.scope.freeVariable(\"fn\")),n=new z(p),k.base&&(b=[n,k],k.base=b[0],n=b[1]),t.expressions[h]=new o(n,s.args),r=r.concat(this.makeCode(this.tab),new i(p,a).compileToFragments(e,L),this.makeCode(\";\\n\"))));return r},t}(J),e.Switch=H=function(e){function t(e,t,n){this.subject=e,this.cases=t,this.otherwise=n}return kt(t,e),t.prototype.children=[\"subject\",\"cases\",\"otherwise\"],t.prototype.isStatement=Q,t.prototype.jumps=function(e){var t,n,i,r,s,o,a,c;for(null==e&&(e={block:!0}),o=this.cases,i=0,s=o.length;s>i;i++)if(a=o[i],n=a[0],t=a[1],r=t.jumps(e))return r;return null!=(c=this.otherwise)?c.jumps(e):void 0},t.prototype.makeReturn=function(e){var t,n,i,r,o;for(r=this.cases,t=0,n=r.length;n>t;t++)i=r[t],i[1].makeReturn(e);return e&&(this.otherwise||(this.otherwise=new s([new x(\"void 0\")]))),null!=(o=this.otherwise)&&o.makeReturn(e),this},t.prototype.compileNode=function(e){var t,n,i,r,s,o,a,c,h,l,u,p,d,f,m,g;for(c=e.indent+q,h=e.indent=c+q,o=[].concat(this.makeCode(this.tab+\"switch (\"),this.subject?this.subject.compileToFragments(e,N):this.makeCode(\"false\"),this.makeCode(\") {\\n\")),f=this.cases,a=l=0,p=f.length;p>l;a=++l){for(m=f[a],r=m[0],t=m[1],g=rt([r]),u=0,d=g.length;d>u;u++)i=g[u],this.subject||(i=i.invert()),o=o.concat(this.makeCode(c+\"case \"),i.compileToFragments(e,N),this.makeCode(\":\\n\"));if((n=t.compileToFragments(e,L)).length>0&&(o=o.concat(n,this.makeCode(\"\\n\"))),a===this.cases.length-1&&!this.otherwise)break;s=this.lastNonComment(t.expressions),s instanceof M||s instanceof x&&s.jumps()&&\"debugger\"!==s.value||o.push(i.makeCode(h+\"break;\\n\"))}return this.otherwise&&this.otherwise.expressions.length&&o.push.apply(o,[this.makeCode(c+\"default:\\n\")].concat(Ct.call(this.otherwise.compileToFragments(e,L)),[this.makeCode(\"\\n\")])),o.push(this.makeCode(this.tab+\"}\")),o},t}(r),e.If=b=function(e){function t(e,t,n){this.body=t,null==n&&(n={}),this.condition=\"unless\"===n.type?e.invert():e,this.elseBody=null,this.isChain=!1,this.soak=n.soak}return kt(t,e),t.prototype.children=[\"condition\",\"body\",\"elseBody\"],t.prototype.bodyNode=function(){var e;return null!=(e=this.body)?e.unwrap():void 0},t.prototype.elseBodyNode=function(){var e;return null!=(e=this.elseBody)?e.unwrap():void 0},t.prototype.addElse=function(e){return this.isChain?this.elseBodyNode().addElse(e):(this.isChain=e instanceof t,this.elseBody=this.ensureBlock(e),this.elseBody.updateLocationDataIfMissing(e.locationData)),this},t.prototype.isStatement=function(e){var t;return(null!=e?e.level:void 0)===L||this.bodyNode().isStatement(e)||(null!=(t=this.elseBodyNode())?t.isStatement(e):void 0)},t.prototype.jumps=function(e){var t;return this.body.jumps(e)||(null!=(t=this.elseBody)?t.jumps(e):void 0)},t.prototype.compileNode=function(e){return this.isStatement(e)?this.compileStatement(e):this.compileExpression(e)},t.prototype.makeReturn=function(e){return e&&(this.elseBody||(this.elseBody=new s([new x(\"void 0\")]))),this.body&&(this.body=new s([this.body.makeReturn(e)])),this.elseBody&&(this.elseBody=new s([this.elseBody.makeReturn(e)])),this},t.prototype.ensureBlock=function(e){return e instanceof s?e:new s([e])},t.prototype.compileStatement=function(e){var n,i,r,s,o,a,c;return r=tt(e,\"chainChild\"),(o=tt(e,\"isExistentialEquals\"))?new t(this.condition.invert(),this.elseBodyNode(),{type:\"if\"}).compileToFragments(e):(c=e.indent+q,s=this.condition.compileToFragments(e,N),i=this.ensureBlock(this.body).compileToFragments(lt(e,{indent:c})),a=[].concat(this.makeCode(\"if (\"),s,this.makeCode(\") {\\n\"),i,this.makeCode(\"\\n\"+this.tab+\"}\")),r||a.unshift(this.makeCode(this.tab)),this.elseBody?(n=a.concat(this.makeCode(\" else \")),this.isChain?(e.chainChild=!0,n=n.concat(this.elseBody.unwrap().compileToFragments(e,L))):n=n.concat(this.makeCode(\"{\\n\"),this.elseBody.compileToFragments(lt(e,{indent:c}),L),this.makeCode(\"\\n\"+this.tab+\"}\")),n):a)},t.prototype.compileExpression=function(e){var t,n,i,r;return i=this.condition.compileToFragments(e,C),n=this.bodyNode().compileToFragments(e,E),t=this.elseBodyNode()?this.elseBodyNode().compileToFragments(e,E):[this.makeCode(\"void 0\")],r=i.concat(this.makeCode(\" ? \"),n,this.makeCode(\" : \"),t),e.level>=C?this.wrapInBraces(r):r},t.prototype.unfoldSoak=function(){return this.soak&&this},t}(r),K={extend:function(e){return\"function(child, parent) { for (var key in parent) { if (\"+bt(\"hasProp\",e)+\".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }\"},bind:function(){return\"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }\"},indexOf:function(){return\"[].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }\"},modulo:function(){return\"function(a, b) { return (+a % (b = +b) + b) % b; }\"},hasProp:function(){return\"{}.hasOwnProperty\"},slice:function(){return\"[].slice\"}},L=1,N=2,E=3,C=4,F=5,T=6,q=\"  \",g=/^(?!\\d)[$\\w\\x7f-\\uffff]+$/,B=/^[+-]?\\d+$/,m=/^[+-]?0x[\\da-f]+/i,R=/^[+-]?(?:0x[\\da-f]+|\\d*\\.?\\d+(?:e[+-]?\\d+)?)$/i,y=/^['\"]/,v=/^\\//,bt=function(e,t){var n,i;return i=t.scope.root,e in i.utilities?i.utilities[e]:(n=i.freeVariable(e),i.assign(n,K[e](t)),i.utilities[e]=n)},ut=function(e,t){return e=e.replace(/\\n/g,\"$&\"+t),e.replace(/\\s+$/,\"\")},pt=function(e){return null==e?0:e.match(m)?parseInt(e,16):parseFloat(e)},at=function(e){return e instanceof x&&\"arguments\"===e.value&&!e.asKey},ct=function(e){return e instanceof x&&\"this\"===e.value&&!e.asKey||e instanceof c&&e.bound||e instanceof o&&e.isSuper},ot=function(e){return e.isComplex()||(\"function\"==typeof e.isAssignable?e.isAssignable():void 0)},yt=function(e,t,n){var i;if(i=t[n].unfoldSoak(e))return t[n]=i.body,i.body=new z(t),i}}.call(this),t.exports}(),_dereq_[\"./sourcemap\"]=function(){var e={},t={exports:e};return function(){var e,n;e=function(){function e(e){this.line=e,this.columns=[]}return e.prototype.add=function(e,t,n){var i,r;return r=t[0],i=t[1],null==n&&(n={}),this.columns[e]&&n.noReplace?void 0:this.columns[e]={line:this.line,column:e,sourceLine:r,sourceColumn:i}},e.prototype.sourceLocation=function(e){for(var t;!((t=this.columns[e])||0>=e);)e--;return t&&[t.sourceLine,t.sourceColumn]},e}(),n=function(){function t(){this.lines=[]}var n,i,r,s;return t.prototype.add=function(t,n,i){var r,s,o,a;return null==i&&(i={}),o=n[0],s=n[1],a=(r=this.lines)[o]||(r[o]=new e(o)),a.add(s,t,i)},t.prototype.sourceLocation=function(e){var t,n,i;for(n=e[0],t=e[1];!((i=this.lines[n])||0>=n);)n--;return i&&i.sourceLocation(t)},t.prototype.generate=function(e,t){var n,i,r,s,o,a,c,h,l,u,p,d,f,m,g,v;for(null==e&&(e={}),null==t&&(t=null),v=0,s=0,a=0,o=0,d=!1,n=\"\",f=this.lines,u=i=0,c=f.length;c>i;u=++i)if(l=f[u])for(m=l.columns,r=0,h=m.length;h>r;r++)if(p=m[r]){for(;p.line>v;)s=0,d=!1,n+=\";\",v++;d&&(n+=\",\",d=!1),n+=this.encodeVlq(p.column-s),s=p.column,n+=this.encodeVlq(0),n+=this.encodeVlq(p.sourceLine-a),a=p.sourceLine,n+=this.encodeVlq(p.sourceColumn-o),o=p.sourceColumn,d=!0}return g={version:3,file:e.generatedFile||\"\",sourceRoot:e.sourceRoot||\"\",sources:e.sourceFiles||[\"\"],names:[],mappings:n},e.inline&&(g.sourcesContent=[t]),JSON.stringify(g,null,2)},r=5,i=1<<r,s=i-1,t.prototype.encodeVlq=function(e){var t,n,o,a;for(t=\"\",o=0>e?1:0,a=(Math.abs(e)<<1)+o;a||!t;)n=a&s,a>>=r,a&&(n|=i),t+=this.encodeBase64(n);return t},n=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",t.prototype.encodeBase64=function(e){return n[e]||function(){throw Error(\"Cannot Base64 encode value: \"+e)}()},t}(),t.exports=n}.call(this),t.exports}(),_dereq_[\"./coffee-script\"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o,a,c,h,l,u,p,d,f,m,g,v,y,b={}.hasOwnProperty,k=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};if(a=_dereq_(\"fs\"),v=_dereq_(\"vm\"),f=_dereq_(\"path\"),t=_dereq_(\"./lexer\").Lexer,d=_dereq_(\"./parser\").parser,h=_dereq_(\"./helpers\"),n=_dereq_(\"./sourcemap\"),e.VERSION=\"1.9.3\",e.FILE_EXTENSIONS=[\".coffee\",\".litcoffee\",\".coffee.md\"],e.helpers=h,y=function(e){return function(t,n){var i;null==n&&(n={});try{return e.call(this,t,n)\n}catch(r){if(i=r,\"string\"!=typeof t)throw i;throw h.updateSyntaxError(i,t,n.filename)}}},e.compile=r=y(function(e,t){var i,r,s,o,a,c,l,u,f,m,g,v,y,b,k;for(v=h.merge,o=h.extend,t=o({},t),t.sourceMap&&(g=new n),k=p.tokenize(e,t),t.referencedVars=function(){var e,t,n;for(n=[],e=0,t=k.length;t>e;e++)b=k[e],b.variable&&n.push(b[1]);return n}(),c=d.parse(k).compileToFragments(t),s=0,t.header&&(s+=1),t.shiftLine&&(s+=1),r=0,f=\"\",u=0,m=c.length;m>u;u++)a=c[u],t.sourceMap&&(a.locationData&&!/^[;\\s]*$/.test(a.code)&&g.add([a.locationData.first_line,a.locationData.first_column],[s,r],{noReplace:!0}),y=h.count(a.code,\"\\n\"),s+=y,y?r=a.code.length-(a.code.lastIndexOf(\"\\n\")+1):r+=a.code.length),f+=a.code;return t.header&&(l=\"Generated by CoffeeScript \"+this.VERSION,f=\"// \"+l+\"\\n\"+f),t.sourceMap?(i={js:f},i.sourceMap=g,i.v3SourceMap=g.generate(t,e),i):f}),e.tokens=y(function(e,t){return p.tokenize(e,t)}),e.nodes=y(function(e,t){return\"string\"==typeof e?d.parse(p.tokenize(e,t)):d.parse(e)}),e.run=function(e,t){var n,i,s,o;return null==t&&(t={}),s=_dereq_.main,s.filename=process.argv[1]=t.filename?a.realpathSync(t.filename):\".\",s.moduleCache&&(s.moduleCache={}),i=t.filename?f.dirname(a.realpathSync(t.filename)):a.realpathSync(\".\"),s.paths=_dereq_(\"module\")._nodeModulePaths(i),(!h.isCoffee(s.filename)||_dereq_.extensions)&&(n=r(e,t),e=null!=(o=n.js)?o:n),s._compile(e,s.filename)},e.eval=function(e,t){var n,i,s,o,a,c,h,l,u,p,d,m,g,y,k,w,T;if(null==t&&(t={}),e=e.trim()){if(o=null!=(m=v.Script.createContext)?m:v.createContext,c=null!=(g=v.isContext)?g:function(){return t.sandbox instanceof o().constructor},o){if(null!=t.sandbox){if(c(t.sandbox))w=t.sandbox;else{w=o(),y=t.sandbox;for(l in y)b.call(y,l)&&(T=y[l],w[l]=T)}w.global=w.root=w.GLOBAL=w}else w=global;if(w.__filename=t.filename||\"eval\",w.__dirname=f.dirname(w.__filename),w===global&&!w.module&&!w.require){for(n=_dereq_(\"module\"),w.module=i=new n(t.modulename||\"eval\"),w.require=s=function(e){return n._load(e,i,!0)},i.filename=w.__filename,k=Object.getOwnPropertyNames(_dereq_),a=0,u=k.length;u>a;a++)d=k[a],\"paths\"!==d&&(s[d]=_dereq_[d]);s.paths=i.paths=n._nodeModulePaths(process.cwd()),s.resolve=function(e){return n._resolveFilename(e,i)}}}p={};for(l in t)b.call(t,l)&&(T=t[l],p[l]=T);return p.bare=!0,h=r(e,p),w===global?v.runInThisContext(h):v.runInContext(h,w)}},e.register=function(){return _dereq_(\"./register\")},_dereq_.extensions)for(m=this.FILE_EXTENSIONS,l=0,u=m.length;u>l;l++)s=m[l],null==(i=_dereq_.extensions)[s]&&(i[s]=function(){throw Error(\"Use CoffeeScript.register() or require the coffee-script/register module to require \"+s+\" files.\")});e._compileFile=function(e,t){var n,i,s,o;null==t&&(t=!1),s=a.readFileSync(e,\"utf8\"),o=65279===s.charCodeAt(0)?s.substring(1):s;try{n=r(o,{filename:e,sourceMap:t,literate:h.isLiterate(e)})}catch(c){throw i=c,h.updateSyntaxError(i,o,e)}return n},p=new t,d.lexer={lex:function(){var e,t;return t=d.tokens[this.pos++],t?(e=t[0],this.yytext=t[1],this.yylloc=t[2],d.errorToken=t.origin||t,this.yylineno=this.yylloc.first_line):e=\"\",e},setInput:function(e){return d.tokens=e,this.pos=0},upcomingInput:function(){return\"\"}},d.yy=_dereq_(\"./nodes\"),d.yy.parseError=function(e,t){var n,i,r,s,o,a;return o=t.token,s=d.errorToken,a=d.tokens,i=s[0],r=s[1],n=s[2],r=function(){switch(!1){case s!==a[a.length-1]:return\"end of input\";case\"INDENT\"!==i&&\"OUTDENT\"!==i:return\"indentation\";case\"IDENTIFIER\"!==i&&\"NUMBER\"!==i&&\"STRING\"!==i&&\"STRING_START\"!==i&&\"REGEX\"!==i&&\"REGEX_START\"!==i:return i.replace(/_START$/,\"\").toLowerCase();default:return h.nameWhitespaceCharacter(r)}}(),h.throwSyntaxError(\"unexpected \"+r,n)},o=function(e,t){var n,i,r,s,o,a,c,h,l,u,p,d;return s=void 0,r=\"\",e.isNative()?r=\"native\":(e.isEval()?(s=e.getScriptNameOrSourceURL(),s||(r=e.getEvalOrigin()+\", \")):s=e.getFileName(),s||(s=\"<anonymous>\"),h=e.getLineNumber(),i=e.getColumnNumber(),u=t(s,h,i),r=u?s+\":\"+u[0]+\":\"+u[1]:s+\":\"+h+\":\"+i),o=e.getFunctionName(),a=e.isConstructor(),c=!(e.isToplevel()||a),c?(l=e.getMethodName(),d=e.getTypeName(),o?(p=n=\"\",d&&o.indexOf(d)&&(p=d+\".\"),l&&o.indexOf(\".\"+l)!==o.length-l.length-1&&(n=\" [as \"+l+\"]\"),\"\"+p+o+n+\" (\"+r+\")\"):d+\".\"+(l||\"<anonymous>\")+\" (\"+r+\")\"):a?\"new \"+(o||\"<anonymous>\")+\" (\"+r+\")\":o?o+\" (\"+r+\")\":r},g={},c=function(t){var n,i;if(g[t])return g[t];if(i=null!=f?f.extname(t):void 0,!(0>k.call(e.FILE_EXTENSIONS,i)))return n=e._compileFile(t,!0),g[t]=n.sourceMap},Error.prepareStackTrace=function(t,n){var i,r,s;return s=function(e,t,n){var i,r;return r=c(e),r&&(i=r.sourceLocation([t-1,n-1])),i?[i[0]+1,i[1]+1]:null},r=function(){var t,r,a;for(a=[],t=0,r=n.length;r>t&&(i=n[t],i.getFunction()!==e.run);t++)a.push(\"  at \"+o(i,s));return a}(),\"\"+t+\"\\n\"+r.join(\"\\n\")+\"\\n\"}}.call(this),t.exports}(),_dereq_[\"./browser\"]=function(){var exports={},module={exports:exports};return function(){var CoffeeScript,compile,runScripts,indexOf=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};CoffeeScript=_dereq_(\"./coffee-script\"),CoffeeScript.require=_dereq_,compile=CoffeeScript.compile,CoffeeScript.eval=function(code,options){return null==options&&(options={}),null==options.bare&&(options.bare=!0),eval(compile(code,options))},CoffeeScript.run=function(e,t){return null==t&&(t={}),t.bare=!0,t.shiftLine=!0,Function(compile(e,t))()},\"undefined\"!=typeof window&&null!==window&&(\"undefined\"!=typeof btoa&&null!==btoa&&\"undefined\"!=typeof JSON&&null!==JSON&&\"undefined\"!=typeof unescape&&null!==unescape&&\"undefined\"!=typeof encodeURIComponent&&null!==encodeURIComponent&&(compile=function(e,t){var n,i,r;return null==t&&(t={}),t.sourceMap=!0,t.inline=!0,i=CoffeeScript.compile(e,t),n=i.js,r=i.v3SourceMap,n+\"\\n//# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(r)))+\"\\n//# sourceURL=coffeescript\"}),CoffeeScript.load=function(e,t,n,i){var r;return null==n&&(n={}),null==i&&(i=!1),n.sourceFiles=[e],r=window.ActiveXObject?new window.ActiveXObject(\"Microsoft.XMLHTTP\"):new window.XMLHttpRequest,r.open(\"GET\",e,!0),\"overrideMimeType\"in r&&r.overrideMimeType(\"text/plain\"),r.onreadystatechange=function(){var s,o;if(4===r.readyState){if(0!==(o=r.status)&&200!==o)throw Error(\"Could not load \"+e);if(s=[r.responseText,n],i||CoffeeScript.run.apply(CoffeeScript,s),t)return t(s)}},r.send(null)},runScripts=function(){var e,t,n,i,r,s,o,a,c,h,l;for(l=window.document.getElementsByTagName(\"script\"),t=[\"text/coffeescript\",\"text/literate-coffeescript\"],e=function(){var e,n,i,r;for(r=[],e=0,n=l.length;n>e;e++)c=l[e],i=c.type,indexOf.call(t,i)>=0&&r.push(c);return r}(),s=0,n=function(){var t;return t=e[s],t instanceof Array?(CoffeeScript.run.apply(CoffeeScript,t),s++,n()):void 0},i=function(i,r){var s,o;return s={literate:i.type===t[1]},o=i.src||i.getAttribute(\"data-src\"),o?CoffeeScript.load(o,function(t){return e[r]=t,n()},s,!0):(s.sourceFiles=[\"embedded\"],e[r]=[i.innerHTML,s])},r=o=0,a=e.length;a>o;r=++o)h=e[r],i(h,r);return n()},window.addEventListener?window.addEventListener(\"DOMContentLoaded\",runScripts,!1):window.attachEvent(\"onload\",runScripts))}.call(this),module.exports}(),_dereq_[\"./coffee-script\"]}();\"function\"==typeof define&&define.amd?define(function(){return CoffeeScript}):root.CoffeeScript=CoffeeScript})(this);\n});\n\nace.define(\"ace/mode/coffee_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/coffee/coffee\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar Mirror = require(\"../worker/mirror\").Mirror;\nvar coffee = require(\"../mode/coffee/coffee\");\n\nwindow.addEventListener = function() {};\n\n\nvar Worker = exports.Worker = function(sender) {\n    Mirror.call(this, sender);\n    this.setTimeout(250);\n};\n\noop.inherits(Worker, Mirror);\n\n(function() {\n\n    this.onUpdate = function() {\n        var value = this.doc.getValue();\n        var errors = [];\n        try {\n            coffee.compile(value);\n        } catch(e) {\n            var loc = e.location;\n            if (loc) {\n                errors.push({\n                    row: loc.first_line,\n                    column: loc.first_column,\n                    endRow: loc.last_line,\n                    endColumn: loc.last_column,\n                    text: e.message,\n                    type: \"error\"\n                });\n            }\n        }\n        this.sender.emit(\"annotate\", errors);\n    };\n\n}).call(Worker.prototype);\n\n});\n\nace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\nfunction Empty() {}\n\nif (!Function.prototype.bind) {\n    Function.prototype.bind = function bind(that) { // .length is 1\n        var target = this;\n        if (typeof target != \"function\") {\n            throw new TypeError(\"Function.prototype.bind called on incompatible \" + target);\n        }\n        var args = slice.call(arguments, 1); // for normal call\n        var bound = function () {\n\n            if (this instanceof bound) {\n\n                var result = target.apply(\n                    this,\n                    args.concat(slice.call(arguments))\n                );\n                if (Object(result) === result) {\n                    return result;\n                }\n                return this;\n\n            } else {\n                return target.apply(\n                    that,\n                    args.concat(slice.call(arguments))\n                );\n\n            }\n\n        };\n        if(target.prototype) {\n            Empty.prototype = target.prototype;\n            bound.prototype = new Empty();\n            Empty.prototype = null;\n        }\n        return bound;\n    };\n}\nvar call = Function.prototype.call;\nvar prototypeOfArray = Array.prototype;\nvar prototypeOfObject = Object.prototype;\nvar slice = prototypeOfArray.slice;\nvar _toString = call.bind(prototypeOfObject.toString);\nvar owns = call.bind(prototypeOfObject.hasOwnProperty);\nvar defineGetter;\nvar defineSetter;\nvar lookupGetter;\nvar lookupSetter;\nvar supportsAccessors;\nif ((supportsAccessors = owns(prototypeOfObject, \"__defineGetter__\"))) {\n    defineGetter = call.bind(prototypeOfObject.__defineGetter__);\n    defineSetter = call.bind(prototypeOfObject.__defineSetter__);\n    lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);\n    lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);\n}\nif ([1,2].splice(0).length != 2) {\n    if(function() { // test IE < 9 to splice bug - see issue #138\n        function makeArray(l) {\n            var a = new Array(l+2);\n            a[0] = a[1] = 0;\n            return a;\n        }\n        var array = [], lengthBefore;\n        \n        array.splice.apply(array, makeArray(20));\n        array.splice.apply(array, makeArray(26));\n\n        lengthBefore = array.length; //46\n        array.splice(5, 0, \"XXX\"); // add one element\n\n        lengthBefore + 1 == array.length\n\n        if (lengthBefore + 1 == array.length) {\n            return true;// has right splice implementation without bugs\n        }\n    }()) {//IE 6/7\n        var array_splice = Array.prototype.splice;\n        Array.prototype.splice = function(start, deleteCount) {\n            if (!arguments.length) {\n                return [];\n            } else {\n                return array_splice.apply(this, [\n                    start === void 0 ? 0 : start,\n                    deleteCount === void 0 ? (this.length - start) : deleteCount\n                ].concat(slice.call(arguments, 2)))\n            }\n        };\n    } else {//IE8\n        Array.prototype.splice = function(pos, removeCount){\n            var length = this.length;\n            if (pos > 0) {\n                if (pos > length)\n                    pos = length;\n            } else if (pos == void 0) {\n                pos = 0;\n            } else if (pos < 0) {\n                pos = Math.max(length + pos, 0);\n            }\n\n            if (!(pos+removeCount < length))\n                removeCount = length - pos;\n\n            var removed = this.slice(pos, pos+removeCount);\n            var insert = slice.call(arguments, 2);\n            var add = insert.length;            \n            if (pos === length) {\n                if (add) {\n                    this.push.apply(this, insert);\n                }\n            } else {\n                var remove = Math.min(removeCount, length - pos);\n                var tailOldPos = pos + remove;\n                var tailNewPos = tailOldPos + add - remove;\n                var tailCount = length - tailOldPos;\n                var lengthAfterRemove = length - remove;\n\n                if (tailNewPos < tailOldPos) { // case A\n                    for (var i = 0; i < tailCount; ++i) {\n                        this[tailNewPos+i] = this[tailOldPos+i];\n                    }\n                } else if (tailNewPos > tailOldPos) { // case B\n                    for (i = tailCount; i--; ) {\n                        this[tailNewPos+i] = this[tailOldPos+i];\n                    }\n                } // else, add == remove (nothing to do)\n\n                if (add && pos === lengthAfterRemove) {\n                    this.length = lengthAfterRemove; // truncate array\n                    this.push.apply(this, insert);\n                } else {\n                    this.length = lengthAfterRemove + add; // reserves space\n                    for (i = 0; i < add; ++i) {\n                        this[pos+i] = insert[i];\n                    }\n                }\n            }\n            return removed;\n        };\n    }\n}\nif (!Array.isArray) {\n    Array.isArray = function isArray(obj) {\n        return _toString(obj) == \"[object Array]\";\n    };\n}\nvar boxedString = Object(\"a\"),\n    splitString = boxedString[0] != \"a\" || !(0 in boxedString);\n\nif (!Array.prototype.forEach) {\n    Array.prototype.forEach = function forEach(fun /*, thisp*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            thisp = arguments[1],\n            i = -1,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(); // TODO message\n        }\n\n        while (++i < length) {\n            if (i in self) {\n                fun.call(thisp, self[i], i, object);\n            }\n        }\n    };\n}\nif (!Array.prototype.map) {\n    Array.prototype.map = function map(fun /*, thisp*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            result = Array(length),\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self)\n                result[i] = fun.call(thisp, self[i], i, object);\n        }\n        return result;\n    };\n}\nif (!Array.prototype.filter) {\n    Array.prototype.filter = function filter(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                    object,\n            length = self.length >>> 0,\n            result = [],\n            value,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self) {\n                value = self[i];\n                if (fun.call(thisp, value, i, object)) {\n                    result.push(value);\n                }\n            }\n        }\n        return result;\n    };\n}\nif (!Array.prototype.every) {\n    Array.prototype.every = function every(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self && !fun.call(thisp, self[i], i, object)) {\n                return false;\n            }\n        }\n        return true;\n    };\n}\nif (!Array.prototype.some) {\n    Array.prototype.some = function some(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self && fun.call(thisp, self[i], i, object)) {\n                return true;\n            }\n        }\n        return false;\n    };\n}\nif (!Array.prototype.reduce) {\n    Array.prototype.reduce = function reduce(fun /*, initial*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n        if (!length && arguments.length == 1) {\n            throw new TypeError(\"reduce of empty array with no initial value\");\n        }\n\n        var i = 0;\n        var result;\n        if (arguments.length >= 2) {\n            result = arguments[1];\n        } else {\n            do {\n                if (i in self) {\n                    result = self[i++];\n                    break;\n                }\n                if (++i >= length) {\n                    throw new TypeError(\"reduce of empty array with no initial value\");\n                }\n            } while (true);\n        }\n\n        for (; i < length; i++) {\n            if (i in self) {\n                result = fun.call(void 0, result, self[i], i, object);\n            }\n        }\n\n        return result;\n    };\n}\nif (!Array.prototype.reduceRight) {\n    Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n        if (!length && arguments.length == 1) {\n            throw new TypeError(\"reduceRight of empty array with no initial value\");\n        }\n\n        var result, i = length - 1;\n        if (arguments.length >= 2) {\n            result = arguments[1];\n        } else {\n            do {\n                if (i in self) {\n                    result = self[i--];\n                    break;\n                }\n                if (--i < 0) {\n                    throw new TypeError(\"reduceRight of empty array with no initial value\");\n                }\n            } while (true);\n        }\n\n        do {\n            if (i in this) {\n                result = fun.call(void 0, result, self[i], i, object);\n            }\n        } while (i--);\n\n        return result;\n    };\n}\nif (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {\n    Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {\n        var self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                toObject(this),\n            length = self.length >>> 0;\n\n        if (!length) {\n            return -1;\n        }\n\n        var i = 0;\n        if (arguments.length > 1) {\n            i = toInteger(arguments[1]);\n        }\n        i = i >= 0 ? i : Math.max(0, length + i);\n        for (; i < length; i++) {\n            if (i in self && self[i] === sought) {\n                return i;\n            }\n        }\n        return -1;\n    };\n}\nif (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {\n    Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {\n        var self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                toObject(this),\n            length = self.length >>> 0;\n\n        if (!length) {\n            return -1;\n        }\n        var i = length - 1;\n        if (arguments.length > 1) {\n            i = Math.min(i, toInteger(arguments[1]));\n        }\n        i = i >= 0 ? i : length - Math.abs(i);\n        for (; i >= 0; i--) {\n            if (i in self && sought === self[i]) {\n                return i;\n            }\n        }\n        return -1;\n    };\n}\nif (!Object.getPrototypeOf) {\n    Object.getPrototypeOf = function getPrototypeOf(object) {\n        return object.__proto__ || (\n            object.constructor ?\n            object.constructor.prototype :\n            prototypeOfObject\n        );\n    };\n}\nif (!Object.getOwnPropertyDescriptor) {\n    var ERR_NON_OBJECT = \"Object.getOwnPropertyDescriptor called on a \" +\n                         \"non-object: \";\n    Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n        if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n            throw new TypeError(ERR_NON_OBJECT + object);\n        if (!owns(object, property))\n            return;\n\n        var descriptor, getter, setter;\n        descriptor =  { enumerable: true, configurable: true };\n        if (supportsAccessors) {\n            var prototype = object.__proto__;\n            object.__proto__ = prototypeOfObject;\n\n            var getter = lookupGetter(object, property);\n            var setter = lookupSetter(object, property);\n            object.__proto__ = prototype;\n\n            if (getter || setter) {\n                if (getter) descriptor.get = getter;\n                if (setter) descriptor.set = setter;\n                return descriptor;\n            }\n        }\n        descriptor.value = object[property];\n        return descriptor;\n    };\n}\nif (!Object.getOwnPropertyNames) {\n    Object.getOwnPropertyNames = function getOwnPropertyNames(object) {\n        return Object.keys(object);\n    };\n}\nif (!Object.create) {\n    var createEmpty;\n    if (Object.prototype.__proto__ === null) {\n        createEmpty = function () {\n            return { \"__proto__\": null };\n        };\n    } else {\n        createEmpty = function () {\n            var empty = {};\n            for (var i in empty)\n                empty[i] = null;\n            empty.constructor =\n            empty.hasOwnProperty =\n            empty.propertyIsEnumerable =\n            empty.isPrototypeOf =\n            empty.toLocaleString =\n            empty.toString =\n            empty.valueOf =\n            empty.__proto__ = null;\n            return empty;\n        }\n    }\n\n    Object.create = function create(prototype, properties) {\n        var object;\n        if (prototype === null) {\n            object = createEmpty();\n        } else {\n            if (typeof prototype != \"object\")\n                throw new TypeError(\"typeof prototype[\"+(typeof prototype)+\"] != 'object'\");\n            var Type = function () {};\n            Type.prototype = prototype;\n            object = new Type();\n            object.__proto__ = prototype;\n        }\n        if (properties !== void 0)\n            Object.defineProperties(object, properties);\n        return object;\n    };\n}\n\nfunction doesDefinePropertyWork(object) {\n    try {\n        Object.defineProperty(object, \"sentinel\", {});\n        return \"sentinel\" in object;\n    } catch (exception) {\n    }\n}\nif (Object.defineProperty) {\n    var definePropertyWorksOnObject = doesDefinePropertyWork({});\n    var definePropertyWorksOnDom = typeof document == \"undefined\" ||\n        doesDefinePropertyWork(document.createElement(\"div\"));\n    if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {\n        var definePropertyFallback = Object.defineProperty;\n    }\n}\n\nif (!Object.defineProperty || definePropertyFallback) {\n    var ERR_NON_OBJECT_DESCRIPTOR = \"Property description must be an object: \";\n    var ERR_NON_OBJECT_TARGET = \"Object.defineProperty called on non-object: \"\n    var ERR_ACCESSORS_NOT_SUPPORTED = \"getters & setters can not be defined \" +\n                                      \"on this javascript engine\";\n\n    Object.defineProperty = function defineProperty(object, property, descriptor) {\n        if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n            throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n        if ((typeof descriptor != \"object\" && typeof descriptor != \"function\") || descriptor === null)\n            throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n        if (definePropertyFallback) {\n            try {\n                return definePropertyFallback.call(Object, object, property, descriptor);\n            } catch (exception) {\n            }\n        }\n        if (owns(descriptor, \"value\")) {\n\n            if (supportsAccessors && (lookupGetter(object, property) ||\n                                      lookupSetter(object, property)))\n            {\n                var prototype = object.__proto__;\n                object.__proto__ = prototypeOfObject;\n                delete object[property];\n                object[property] = descriptor.value;\n                object.__proto__ = prototype;\n            } else {\n                object[property] = descriptor.value;\n            }\n        } else {\n            if (!supportsAccessors)\n                throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n            if (owns(descriptor, \"get\"))\n                defineGetter(object, property, descriptor.get);\n            if (owns(descriptor, \"set\"))\n                defineSetter(object, property, descriptor.set);\n        }\n\n        return object;\n    };\n}\nif (!Object.defineProperties) {\n    Object.defineProperties = function defineProperties(object, properties) {\n        for (var property in properties) {\n            if (owns(properties, property))\n                Object.defineProperty(object, property, properties[property]);\n        }\n        return object;\n    };\n}\nif (!Object.seal) {\n    Object.seal = function seal(object) {\n        return object;\n    };\n}\nif (!Object.freeze) {\n    Object.freeze = function freeze(object) {\n        return object;\n    };\n}\ntry {\n    Object.freeze(function () {});\n} catch (exception) {\n    Object.freeze = (function freeze(freezeObject) {\n        return function freeze(object) {\n            if (typeof object == \"function\") {\n                return object;\n            } else {\n                return freezeObject(object);\n            }\n        };\n    })(Object.freeze);\n}\nif (!Object.preventExtensions) {\n    Object.preventExtensions = function preventExtensions(object) {\n        return object;\n    };\n}\nif (!Object.isSealed) {\n    Object.isSealed = function isSealed(object) {\n        return false;\n    };\n}\nif (!Object.isFrozen) {\n    Object.isFrozen = function isFrozen(object) {\n        return false;\n    };\n}\nif (!Object.isExtensible) {\n    Object.isExtensible = function isExtensible(object) {\n        if (Object(object) === object) {\n            throw new TypeError(); // TODO message\n        }\n        var name = '';\n        while (owns(object, name)) {\n            name += '?';\n        }\n        object[name] = true;\n        var returnValue = owns(object, name);\n        delete object[name];\n        return returnValue;\n    };\n}\nif (!Object.keys) {\n    var hasDontEnumBug = true,\n        dontEnums = [\n            \"toString\",\n            \"toLocaleString\",\n            \"valueOf\",\n            \"hasOwnProperty\",\n            \"isPrototypeOf\",\n            \"propertyIsEnumerable\",\n            \"constructor\"\n        ],\n        dontEnumsLength = dontEnums.length;\n\n    for (var key in {\"toString\": null}) {\n        hasDontEnumBug = false;\n    }\n\n    Object.keys = function keys(object) {\n\n        if (\n            (typeof object != \"object\" && typeof object != \"function\") ||\n            object === null\n        ) {\n            throw new TypeError(\"Object.keys called on a non-object\");\n        }\n\n        var keys = [];\n        for (var name in object) {\n            if (owns(object, name)) {\n                keys.push(name);\n            }\n        }\n\n        if (hasDontEnumBug) {\n            for (var i = 0, ii = dontEnumsLength; i < ii; i++) {\n                var dontEnum = dontEnums[i];\n                if (owns(object, dontEnum)) {\n                    keys.push(dontEnum);\n                }\n            }\n        }\n        return keys;\n    };\n\n}\nif (!Date.now) {\n    Date.now = function now() {\n        return new Date().getTime();\n    };\n}\nvar ws = \"\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\" +\n    \"\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\" +\n    \"\\u2029\\uFEFF\";\nif (!String.prototype.trim || ws.trim()) {\n    ws = \"[\" + ws + \"]\";\n    var trimBeginRegexp = new RegExp(\"^\" + ws + ws + \"*\"),\n        trimEndRegexp = new RegExp(ws + ws + \"*$\");\n    String.prototype.trim = function trim() {\n        return String(this).replace(trimBeginRegexp, \"\").replace(trimEndRegexp, \"\");\n    };\n}\n\nfunction toInteger(n) {\n    n = +n;\n    if (n !== n) { // isNaN\n        n = 0;\n    } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {\n        n = (n > 0 || -1) * Math.floor(Math.abs(n));\n    }\n    return n;\n}\n\nfunction isPrimitive(input) {\n    var type = typeof input;\n    return (\n        input === null ||\n        type === \"undefined\" ||\n        type === \"boolean\" ||\n        type === \"number\" ||\n        type === \"string\"\n    );\n}\n\nfunction toPrimitive(input) {\n    var val, valueOf, toString;\n    if (isPrimitive(input)) {\n        return input;\n    }\n    valueOf = input.valueOf;\n    if (typeof valueOf === \"function\") {\n        val = valueOf.call(input);\n        if (isPrimitive(val)) {\n            return val;\n        }\n    }\n    toString = input.toString;\n    if (typeof toString === \"function\") {\n        val = toString.call(input);\n        if (isPrimitive(val)) {\n            return val;\n        }\n    }\n    throw new TypeError();\n}\nvar toObject = function (o) {\n    if (o == null) { // this matches both null and undefined\n        throw new TypeError(\"can't convert \"+o+\" to object\");\n    }\n    return Object(o);\n};\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/worker-css.js",
    "content": "\"no use strict\";\n;(function(window) {\nif (typeof window.window != \"undefined\" && window.document)\n    return;\nif (window.require && window.define)\n    return;\n\nif (!window.console) {\n    window.console = function() {\n        var msgs = Array.prototype.slice.call(arguments, 0);\n        postMessage({type: \"log\", data: msgs});\n    };\n    window.console.error =\n    window.console.warn = \n    window.console.log =\n    window.console.trace = window.console;\n}\nwindow.window = window;\nwindow.ace = window;\n\nwindow.onerror = function(message, file, line, col, err) {\n    postMessage({type: \"error\", data: {\n        message: message,\n        data: err.data,\n        file: file,\n        line: line, \n        col: col,\n        stack: err.stack\n    }});\n};\n\nwindow.normalizeModule = function(parentId, moduleName) {\n    // normalize plugin requires\n    if (moduleName.indexOf(\"!\") !== -1) {\n        var chunks = moduleName.split(\"!\");\n        return window.normalizeModule(parentId, chunks[0]) + \"!\" + window.normalizeModule(parentId, chunks[1]);\n    }\n    // normalize relative requires\n    if (moduleName.charAt(0) == \".\") {\n        var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n        moduleName = (base ? base + \"/\" : \"\") + moduleName;\n        \n        while (moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n            var previous = moduleName;\n            moduleName = moduleName.replace(/^\\.\\//, \"\").replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n        }\n    }\n    \n    return moduleName;\n};\n\nwindow.require = function require(parentId, id) {\n    if (!id) {\n        id = parentId;\n        parentId = null;\n    }\n    if (!id.charAt)\n        throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");\n\n    id = window.normalizeModule(parentId, id);\n\n    var module = window.require.modules[id];\n    if (module) {\n        if (!module.initialized) {\n            module.initialized = true;\n            module.exports = module.factory().exports;\n        }\n        return module.exports;\n    }\n   \n    if (!window.require.tlns)\n        return console.log(\"unable to load \" + id);\n    \n    var path = resolveModuleId(id, window.require.tlns);\n    if (path.slice(-3) != \".js\") path += \".js\";\n    \n    window.require.id = id;\n    window.require.modules[id] = {}; // prevent infinite loop on broken modules\n    importScripts(path);\n    return window.require(parentId, id);\n};\nfunction resolveModuleId(id, paths) {\n    var testPath = id, tail = \"\";\n    while (testPath) {\n        var alias = paths[testPath];\n        if (typeof alias == \"string\") {\n            return alias + tail;\n        } else if (alias) {\n            return  alias.location.replace(/\\/*$/, \"/\") + (tail || alias.main || alias.name);\n        } else if (alias === false) {\n            return \"\";\n        }\n        var i = testPath.lastIndexOf(\"/\");\n        if (i === -1) break;\n        tail = testPath.substr(i) + tail;\n        testPath = testPath.slice(0, i);\n    }\n    return id;\n}\nwindow.require.modules = {};\nwindow.require.tlns = {};\n\nwindow.define = function(id, deps, factory) {\n    if (arguments.length == 2) {\n        factory = deps;\n        if (typeof id != \"string\") {\n            deps = id;\n            id = window.require.id;\n        }\n    } else if (arguments.length == 1) {\n        factory = id;\n        deps = [];\n        id = window.require.id;\n    }\n    \n    if (typeof factory != \"function\") {\n        window.require.modules[id] = {\n            exports: factory,\n            initialized: true\n        };\n        return;\n    }\n\n    if (!deps.length)\n        // If there is no dependencies, we inject \"require\", \"exports\" and\n        // \"module\" as dependencies, to provide CommonJS compatibility.\n        deps = [\"require\", \"exports\", \"module\"];\n\n    var req = function(childId) {\n        return window.require(id, childId);\n    };\n\n    window.require.modules[id] = {\n        exports: {},\n        factory: function() {\n            var module = this;\n            var returnExports = factory.apply(this, deps.map(function(dep) {\n                switch (dep) {\n                    // Because \"require\", \"exports\" and \"module\" aren't actual\n                    // dependencies, we must handle them seperately.\n                    case \"require\": return req;\n                    case \"exports\": return module.exports;\n                    case \"module\":  return module;\n                    // But for all other dependencies, we can just go ahead and\n                    // require them.\n                    default:        return req(dep);\n                }\n            }));\n            if (returnExports)\n                module.exports = returnExports;\n            return module;\n        }\n    };\n};\nwindow.define.amd = {};\nrequire.tlns = {};\nwindow.initBaseUrls  = function initBaseUrls(topLevelNamespaces) {\n    for (var i in topLevelNamespaces)\n        require.tlns[i] = topLevelNamespaces[i];\n};\n\nwindow.initSender = function initSender() {\n\n    var EventEmitter = window.require(\"ace/lib/event_emitter\").EventEmitter;\n    var oop = window.require(\"ace/lib/oop\");\n    \n    var Sender = function() {};\n    \n    (function() {\n        \n        oop.implement(this, EventEmitter);\n                \n        this.callback = function(data, callbackId) {\n            postMessage({\n                type: \"call\",\n                id: callbackId,\n                data: data\n            });\n        };\n    \n        this.emit = function(name, data) {\n            postMessage({\n                type: \"event\",\n                name: name,\n                data: data\n            });\n        };\n        \n    }).call(Sender.prototype);\n    \n    return new Sender();\n};\n\nvar main = window.main = null;\nvar sender = window.sender = null;\n\nwindow.onmessage = function(e) {\n    var msg = e.data;\n    if (msg.event && sender) {\n        sender._signal(msg.event, msg.data);\n    }\n    else if (msg.command) {\n        if (main[msg.command])\n            main[msg.command].apply(main, msg.args);\n        else if (window[msg.command])\n            window[msg.command].apply(window, msg.args);\n        else\n            throw new Error(\"Unknown command:\" + msg.command);\n    }\n    else if (msg.init) {\n        window.initBaseUrls(msg.tlns);\n        require(\"ace/lib/es5-shim\");\n        sender = window.sender = window.initSender();\n        var clazz = require(msg.module)[msg.classname];\n        main = window.main = new clazz(sender);\n    }\n};\n})(this);\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.inherits = function(ctor, superCtor) {\n    ctor.super_ = superCtor;\n    ctor.prototype = Object.create(superCtor.prototype, {\n        constructor: {\n            value: ctor,\n            enumerable: false,\n            writable: true,\n            configurable: true\n        }\n    });\n};\n\nexports.mixin = function(obj, mixin) {\n    for (var key in mixin) {\n        obj[key] = mixin[key];\n    }\n    return obj;\n};\n\nexports.implement = function(proto, mixin) {\n    exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.last = function(a) {\n    return a[a.length - 1];\n};\n\nexports.stringReverse = function(string) {\n    return string.split(\"\").reverse().join(\"\");\n};\n\nexports.stringRepeat = function (string, count) {\n    var result = '';\n    while (count > 0) {\n        if (count & 1)\n            result += string;\n\n        if (count >>= 1)\n            string += string;\n    }\n    return result;\n};\n\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\n\nexports.stringTrimLeft = function (string) {\n    return string.replace(trimBeginRegexp, '');\n};\n\nexports.stringTrimRight = function (string) {\n    return string.replace(trimEndRegexp, '');\n};\n\nexports.copyObject = function(obj) {\n    var copy = {};\n    for (var key in obj) {\n        copy[key] = obj[key];\n    }\n    return copy;\n};\n\nexports.copyArray = function(array){\n    var copy = [];\n    for (var i=0, l=array.length; i<l; i++) {\n        if (array[i] && typeof array[i] == \"object\")\n            copy[i] = this.copyObject(array[i]);\n        else \n            copy[i] = array[i];\n    }\n    return copy;\n};\n\nexports.deepCopy = function deepCopy(obj) {\n    if (typeof obj !== \"object\" || !obj)\n        return obj;\n    var copy;\n    if (Array.isArray(obj)) {\n        copy = [];\n        for (var key = 0; key < obj.length; key++) {\n            copy[key] = deepCopy(obj[key]);\n        }\n        return copy;\n    }\n    if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n        return obj;\n    \n    copy = {};\n    for (var key in obj)\n        copy[key] = deepCopy(obj[key]);\n    return copy;\n};\n\nexports.arrayToMap = function(arr) {\n    var map = {};\n    for (var i=0; i<arr.length; i++) {\n        map[arr[i]] = 1;\n    }\n    return map;\n\n};\n\nexports.createMap = function(props) {\n    var map = Object.create(null);\n    for (var i in props) {\n        map[i] = props[i];\n    }\n    return map;\n};\nexports.arrayRemove = function(array, value) {\n  for (var i = 0; i <= array.length; i++) {\n    if (value === array[i]) {\n      array.splice(i, 1);\n    }\n  }\n};\n\nexports.escapeRegExp = function(str) {\n    return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\n\nexports.escapeHTML = function(str) {\n    return str.replace(/&/g, \"&#38;\").replace(/\"/g, \"&#34;\").replace(/'/g, \"&#39;\").replace(/</g, \"&#60;\");\n};\n\nexports.getMatchOffsets = function(string, regExp) {\n    var matches = [];\n\n    string.replace(regExp, function(str) {\n        matches.push({\n            offset: arguments[arguments.length-2],\n            length: str.length\n        });\n    });\n\n    return matches;\n};\nexports.deferredCall = function(fcn) {\n    var timer = null;\n    var callback = function() {\n        timer = null;\n        fcn();\n    };\n\n    var deferred = function(timeout) {\n        deferred.cancel();\n        timer = setTimeout(callback, timeout || 0);\n        return deferred;\n    };\n\n    deferred.schedule = deferred;\n\n    deferred.call = function() {\n        this.cancel();\n        fcn();\n        return deferred;\n    };\n\n    deferred.cancel = function() {\n        clearTimeout(timer);\n        timer = null;\n        return deferred;\n    };\n    \n    deferred.isPending = function() {\n        return timer;\n    };\n\n    return deferred;\n};\n\n\nexports.delayedCall = function(fcn, defaultTimeout) {\n    var timer = null;\n    var callback = function() {\n        timer = null;\n        fcn();\n    };\n\n    var _self = function(timeout) {\n        if (timer == null)\n            timer = setTimeout(callback, timeout || defaultTimeout);\n    };\n\n    _self.delay = function(timeout) {\n        timer && clearTimeout(timer);\n        timer = setTimeout(callback, timeout || defaultTimeout);\n    };\n    _self.schedule = _self;\n\n    _self.call = function() {\n        this.cancel();\n        fcn();\n    };\n\n    _self.cancel = function() {\n        timer && clearTimeout(timer);\n        timer = null;\n    };\n\n    _self.isPending = function() {\n        return timer;\n    };\n\n    return _self;\n};\n});\n\nace.define(\"ace/range\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\nvar comparePoints = function(p1, p2) {\n    return p1.row - p2.row || p1.column - p2.column;\n};\nvar Range = function(startRow, startColumn, endRow, endColumn) {\n    this.start = {\n        row: startRow,\n        column: startColumn\n    };\n\n    this.end = {\n        row: endRow,\n        column: endColumn\n    };\n};\n\n(function() {\n    this.isEqual = function(range) {\n        return this.start.row === range.start.row &&\n            this.end.row === range.end.row &&\n            this.start.column === range.start.column &&\n            this.end.column === range.end.column;\n    };\n    this.toString = function() {\n        return (\"Range: [\" + this.start.row + \"/\" + this.start.column +\n            \"] -> [\" + this.end.row + \"/\" + this.end.column + \"]\");\n    };\n\n    this.contains = function(row, column) {\n        return this.compare(row, column) == 0;\n    };\n    this.compareRange = function(range) {\n        var cmp,\n            end = range.end,\n            start = range.start;\n\n        cmp = this.compare(end.row, end.column);\n        if (cmp == 1) {\n            cmp = this.compare(start.row, start.column);\n            if (cmp == 1) {\n                return 2;\n            } else if (cmp == 0) {\n                return 1;\n            } else {\n                return 0;\n            }\n        } else if (cmp == -1) {\n            return -2;\n        } else {\n            cmp = this.compare(start.row, start.column);\n            if (cmp == -1) {\n                return -1;\n            } else if (cmp == 1) {\n                return 42;\n            } else {\n                return 0;\n            }\n        }\n    };\n    this.comparePoint = function(p) {\n        return this.compare(p.row, p.column);\n    };\n    this.containsRange = function(range) {\n        return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n    };\n    this.intersects = function(range) {\n        var cmp = this.compareRange(range);\n        return (cmp == -1 || cmp == 0 || cmp == 1);\n    };\n    this.isEnd = function(row, column) {\n        return this.end.row == row && this.end.column == column;\n    };\n    this.isStart = function(row, column) {\n        return this.start.row == row && this.start.column == column;\n    };\n    this.setStart = function(row, column) {\n        if (typeof row == \"object\") {\n            this.start.column = row.column;\n            this.start.row = row.row;\n        } else {\n            this.start.row = row;\n            this.start.column = column;\n        }\n    };\n    this.setEnd = function(row, column) {\n        if (typeof row == \"object\") {\n            this.end.column = row.column;\n            this.end.row = row.row;\n        } else {\n            this.end.row = row;\n            this.end.column = column;\n        }\n    };\n    this.inside = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isEnd(row, column) || this.isStart(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.insideStart = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isEnd(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.insideEnd = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isStart(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.compare = function(row, column) {\n        if (!this.isMultiLine()) {\n            if (row === this.start.row) {\n                return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n            }\n        }\n\n        if (row < this.start.row)\n            return -1;\n\n        if (row > this.end.row)\n            return 1;\n\n        if (this.start.row === row)\n            return column >= this.start.column ? 0 : -1;\n\n        if (this.end.row === row)\n            return column <= this.end.column ? 0 : 1;\n\n        return 0;\n    };\n    this.compareStart = function(row, column) {\n        if (this.start.row == row && this.start.column == column) {\n            return -1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.compareEnd = function(row, column) {\n        if (this.end.row == row && this.end.column == column) {\n            return 1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.compareInside = function(row, column) {\n        if (this.end.row == row && this.end.column == column) {\n            return 1;\n        } else if (this.start.row == row && this.start.column == column) {\n            return -1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.clipRows = function(firstRow, lastRow) {\n        if (this.end.row > lastRow)\n            var end = {row: lastRow + 1, column: 0};\n        else if (this.end.row < firstRow)\n            var end = {row: firstRow, column: 0};\n\n        if (this.start.row > lastRow)\n            var start = {row: lastRow + 1, column: 0};\n        else if (this.start.row < firstRow)\n            var start = {row: firstRow, column: 0};\n\n        return Range.fromPoints(start || this.start, end || this.end);\n    };\n    this.extend = function(row, column) {\n        var cmp = this.compare(row, column);\n\n        if (cmp == 0)\n            return this;\n        else if (cmp == -1)\n            var start = {row: row, column: column};\n        else\n            var end = {row: row, column: column};\n\n        return Range.fromPoints(start || this.start, end || this.end);\n    };\n\n    this.isEmpty = function() {\n        return (this.start.row === this.end.row && this.start.column === this.end.column);\n    };\n    this.isMultiLine = function() {\n        return (this.start.row !== this.end.row);\n    };\n    this.clone = function() {\n        return Range.fromPoints(this.start, this.end);\n    };\n    this.collapseRows = function() {\n        if (this.end.column == 0)\n            return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)\n        else\n            return new Range(this.start.row, 0, this.end.row, 0)\n    };\n    this.toScreenRange = function(session) {\n        var screenPosStart = session.documentToScreenPosition(this.start);\n        var screenPosEnd = session.documentToScreenPosition(this.end);\n\n        return new Range(\n            screenPosStart.row, screenPosStart.column,\n            screenPosEnd.row, screenPosEnd.column\n        );\n    };\n    this.moveBy = function(row, column) {\n        this.start.row += row;\n        this.start.column += column;\n        this.end.row += row;\n        this.end.column += column;\n    };\n\n}).call(Range.prototype);\nRange.fromPoints = function(start, end) {\n    return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\n\nRange.comparePoints = function(p1, p2) {\n    return p1.row - p2.row || p1.column - p2.column;\n};\n\n\nexports.Range = Range;\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nfunction throwDeltaError(delta, errorText){\n    console.log(\"Invalid Delta:\", delta);\n    throw \"Invalid Delta: \" + errorText;\n}\n\nfunction positionInDocument(docLines, position) {\n    return position.row    >= 0 && position.row    <  docLines.length &&\n           position.column >= 0 && position.column <= docLines[position.row].length;\n}\n\nfunction validateDelta(docLines, delta) {\n    if (delta.action != \"insert\" && delta.action != \"remove\")\n        throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n    if (!(delta.lines instanceof Array))\n        throwDeltaError(delta, \"delta.lines must be an Array\");\n    if (!delta.start || !delta.end)\n       throwDeltaError(delta, \"delta.start/end must be an present\");\n    var start = delta.start;\n    if (!positionInDocument(docLines, delta.start))\n        throwDeltaError(delta, \"delta.start must be contained in document\");\n    var end = delta.end;\n    if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n        throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n    var numRangeRows = end.row - start.row;\n    var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n    if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n        throwDeltaError(delta, \"delta.range must match delta lines\");\n}\n\nexports.applyDelta = function(docLines, delta, doNotValidate) {\n    \n    var row = delta.start.row;\n    var startColumn = delta.start.column;\n    var line = docLines[row] || \"\";\n    switch (delta.action) {\n        case \"insert\":\n            var lines = delta.lines;\n            if (lines.length === 1) {\n                docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n            } else {\n                var args = [row, 1].concat(delta.lines);\n                docLines.splice.apply(docLines, args);\n                docLines[row] = line.substring(0, startColumn) + docLines[row];\n                docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n            }\n            break;\n        case \"remove\":\n            var endColumn = delta.end.column;\n            var endRow = delta.end.row;\n            if (row === endRow) {\n                docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n            } else {\n                docLines.splice(\n                    row, endRow - row + 1,\n                    line.substring(0, startColumn) + docLines[endRow].substring(endColumn)\n                );\n            }\n            break;\n    }\n}\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar EventEmitter = {};\nvar stopPropagation = function() { this.propagationStopped = true; };\nvar preventDefault = function() { this.defaultPrevented = true; };\n\nEventEmitter._emit =\nEventEmitter._dispatchEvent = function(eventName, e) {\n    this._eventRegistry || (this._eventRegistry = {});\n    this._defaultHandlers || (this._defaultHandlers = {});\n\n    var listeners = this._eventRegistry[eventName] || [];\n    var defaultHandler = this._defaultHandlers[eventName];\n    if (!listeners.length && !defaultHandler)\n        return;\n\n    if (typeof e != \"object\" || !e)\n        e = {};\n\n    if (!e.type)\n        e.type = eventName;\n    if (!e.stopPropagation)\n        e.stopPropagation = stopPropagation;\n    if (!e.preventDefault)\n        e.preventDefault = preventDefault;\n\n    listeners = listeners.slice();\n    for (var i=0; i<listeners.length; i++) {\n        listeners[i](e, this);\n        if (e.propagationStopped)\n            break;\n    }\n    \n    if (defaultHandler && !e.defaultPrevented)\n        return defaultHandler(e, this);\n};\n\n\nEventEmitter._signal = function(eventName, e) {\n    var listeners = (this._eventRegistry || {})[eventName];\n    if (!listeners)\n        return;\n    listeners = listeners.slice();\n    for (var i=0; i<listeners.length; i++)\n        listeners[i](e, this);\n};\n\nEventEmitter.once = function(eventName, callback) {\n    var _self = this;\n    callback && this.addEventListener(eventName, function newCallback() {\n        _self.removeEventListener(eventName, newCallback);\n        callback.apply(null, arguments);\n    });\n};\n\n\nEventEmitter.setDefaultHandler = function(eventName, callback) {\n    var handlers = this._defaultHandlers\n    if (!handlers)\n        handlers = this._defaultHandlers = {_disabled_: {}};\n    \n    if (handlers[eventName]) {\n        var old = handlers[eventName];\n        var disabled = handlers._disabled_[eventName];\n        if (!disabled)\n            handlers._disabled_[eventName] = disabled = [];\n        disabled.push(old);\n        var i = disabled.indexOf(callback);\n        if (i != -1) \n            disabled.splice(i, 1);\n    }\n    handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function(eventName, callback) {\n    var handlers = this._defaultHandlers\n    if (!handlers)\n        return;\n    var disabled = handlers._disabled_[eventName];\n    \n    if (handlers[eventName] == callback) {\n        var old = handlers[eventName];\n        if (disabled)\n            this.setDefaultHandler(eventName, disabled.pop());\n    } else if (disabled) {\n        var i = disabled.indexOf(callback);\n        if (i != -1)\n            disabled.splice(i, 1);\n    }\n};\n\nEventEmitter.on =\nEventEmitter.addEventListener = function(eventName, callback, capturing) {\n    this._eventRegistry = this._eventRegistry || {};\n\n    var listeners = this._eventRegistry[eventName];\n    if (!listeners)\n        listeners = this._eventRegistry[eventName] = [];\n\n    if (listeners.indexOf(callback) == -1)\n        listeners[capturing ? \"unshift\" : \"push\"](callback);\n    return callback;\n};\n\nEventEmitter.off =\nEventEmitter.removeListener =\nEventEmitter.removeEventListener = function(eventName, callback) {\n    this._eventRegistry = this._eventRegistry || {};\n\n    var listeners = this._eventRegistry[eventName];\n    if (!listeners)\n        return;\n\n    var index = listeners.indexOf(callback);\n    if (index !== -1)\n        listeners.splice(index, 1);\n};\n\nEventEmitter.removeAllListeners = function(eventName) {\n    if (this._eventRegistry) this._eventRegistry[eventName] = [];\n};\n\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\n\nvar Anchor = exports.Anchor = function(doc, row, column) {\n    this.$onChange = this.onChange.bind(this);\n    this.attach(doc);\n    \n    if (typeof column == \"undefined\")\n        this.setPosition(row.row, row.column);\n    else\n        this.setPosition(row, column);\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n    this.getPosition = function() {\n        return this.$clipPositionToDocument(this.row, this.column);\n    };\n    this.getDocument = function() {\n        return this.document;\n    };\n    this.$insertRight = false;\n    this.onChange = function(delta) {\n        if (delta.start.row == delta.end.row && delta.start.row != this.row)\n            return;\n\n        if (delta.start.row > this.row)\n            return;\n            \n        var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight);\n        this.setPosition(point.row, point.column, true);\n    };\n    \n    function $pointsInOrder(point1, point2, equalPointsInOrder) {\n        var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n        return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n    }\n            \n    function $getTransformedPoint(delta, point, moveIfEqual) {\n        var deltaIsInsert = delta.action == \"insert\";\n        var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row    - delta.start.row);\n        var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n        var deltaStart = delta.start;\n        var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n        if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n            return {\n                row: point.row,\n                column: point.column\n            };\n        }\n        if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n            return {\n                row: point.row + deltaRowShift,\n                column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n            };\n        }\n        \n        return {\n            row: deltaStart.row,\n            column: deltaStart.column\n        };\n    }\n    this.setPosition = function(row, column, noClip) {\n        var pos;\n        if (noClip) {\n            pos = {\n                row: row,\n                column: column\n            };\n        } else {\n            pos = this.$clipPositionToDocument(row, column);\n        }\n\n        if (this.row == pos.row && this.column == pos.column)\n            return;\n\n        var old = {\n            row: this.row,\n            column: this.column\n        };\n\n        this.row = pos.row;\n        this.column = pos.column;\n        this._signal(\"change\", {\n            old: old,\n            value: pos\n        });\n    };\n    this.detach = function() {\n        this.document.removeEventListener(\"change\", this.$onChange);\n    };\n    this.attach = function(doc) {\n        this.document = doc || this.document;\n        this.document.on(\"change\", this.$onChange);\n    };\n    this.$clipPositionToDocument = function(row, column) {\n        var pos = {};\n\n        if (row >= this.document.getLength()) {\n            pos.row = Math.max(0, this.document.getLength() - 1);\n            pos.column = this.document.getLine(pos.row).length;\n        }\n        else if (row < 0) {\n            pos.row = 0;\n            pos.column = 0;\n        }\n        else {\n            pos.row = row;\n            pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n        }\n\n        if (column < 0)\n            pos.column = 0;\n\n        return pos;\n    };\n\n}).call(Anchor.prototype);\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar applyDelta = require(\"./apply_delta\").applyDelta;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\n\nvar Document = function(textOrLines) {\n    this.$lines = [\"\"];\n    if (textOrLines.length === 0) {\n        this.$lines = [\"\"];\n    } else if (Array.isArray(textOrLines)) {\n        this.insertMergedLines({row: 0, column: 0}, textOrLines);\n    } else {\n        this.insert({row: 0, column:0}, textOrLines);\n    }\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n    this.setValue = function(text) {\n        var len = this.getLength() - 1;\n        this.remove(new Range(0, 0, len, this.getLine(len).length));\n        this.insert({row: 0, column: 0}, text);\n    };\n    this.getValue = function() {\n        return this.getAllLines().join(this.getNewLineCharacter());\n    };\n    this.createAnchor = function(row, column) {\n        return new Anchor(this, row, column);\n    };\n    if (\"aaa\".split(/a/).length === 0) {\n        this.$split = function(text) {\n            return text.replace(/\\r\\n|\\r/g, \"\\n\").split(\"\\n\");\n        };\n    } else {\n        this.$split = function(text) {\n            return text.split(/\\r\\n|\\r|\\n/);\n        };\n    }\n\n\n    this.$detectNewLine = function(text) {\n        var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n        this.$autoNewLine = match ? match[1] : \"\\n\";\n        this._signal(\"changeNewLineMode\");\n    };\n    this.getNewLineCharacter = function() {\n        switch (this.$newLineMode) {\n          case \"windows\":\n            return \"\\r\\n\";\n          case \"unix\":\n            return \"\\n\";\n          default:\n            return this.$autoNewLine || \"\\n\";\n        }\n    };\n\n    this.$autoNewLine = \"\";\n    this.$newLineMode = \"auto\";\n    this.setNewLineMode = function(newLineMode) {\n        if (this.$newLineMode === newLineMode)\n            return;\n\n        this.$newLineMode = newLineMode;\n        this._signal(\"changeNewLineMode\");\n    };\n    this.getNewLineMode = function() {\n        return this.$newLineMode;\n    };\n    this.isNewLine = function(text) {\n        return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n    };\n    this.getLine = function(row) {\n        return this.$lines[row] || \"\";\n    };\n    this.getLines = function(firstRow, lastRow) {\n        return this.$lines.slice(firstRow, lastRow + 1);\n    };\n    this.getAllLines = function() {\n        return this.getLines(0, this.getLength());\n    };\n    this.getLength = function() {\n        return this.$lines.length;\n    };\n    this.getTextRange = function(range) {\n        return this.getLinesForRange(range).join(this.getNewLineCharacter());\n    };\n    this.getLinesForRange = function(range) {\n        var lines;\n        if (range.start.row === range.end.row) {\n            lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n        } else {\n            lines = this.getLines(range.start.row, range.end.row);\n            lines[0] = (lines[0] || \"\").substring(range.start.column);\n            var l = lines.length - 1;\n            if (range.end.row - range.start.row == l)\n                lines[l] = lines[l].substring(0, range.end.column);\n        }\n        return lines;\n    };\n    this.insertLines = function(row, lines) {\n        console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n        return this.insertFullLines(row, lines);\n    };\n    this.removeLines = function(firstRow, lastRow) {\n        console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n        return this.removeFullLines(firstRow, lastRow);\n    };\n    this.insertNewLine = function(position) {\n        console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n        return this.insertMergedLines(position, [\"\", \"\"]);\n    };\n    this.insert = function(position, text) {\n        if (this.getLength() <= 1)\n            this.$detectNewLine(text);\n        \n        return this.insertMergedLines(position, this.$split(text));\n    };\n    this.insertInLine = function(position, text) {\n        var start = this.clippedPos(position.row, position.column);\n        var end = this.pos(position.row, position.column + text.length);\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"insert\",\n            lines: [text]\n        }, true);\n        \n        return this.clonePos(end);\n    };\n    \n    this.clippedPos = function(row, column) {\n        var length = this.getLength();\n        if (row === undefined) {\n            row = length;\n        } else if (row < 0) {\n            row = 0;\n        } else if (row >= length) {\n            row = length - 1;\n            column = undefined;\n        }\n        var line = this.getLine(row);\n        if (column == undefined)\n            column = line.length;\n        column = Math.min(Math.max(column, 0), line.length);\n        return {row: row, column: column};\n    };\n    \n    this.clonePos = function(pos) {\n        return {row: pos.row, column: pos.column};\n    };\n    \n    this.pos = function(row, column) {\n        return {row: row, column: column};\n    };\n    \n    this.$clipPosition = function(position) {\n        var length = this.getLength();\n        if (position.row >= length) {\n            position.row = Math.max(0, length - 1);\n            position.column = this.getLine(length - 1).length;\n        } else {\n            position.row = Math.max(0, position.row);\n            position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n        }\n        return position;\n    };\n    this.insertFullLines = function(row, lines) {\n        row = Math.min(Math.max(row, 0), this.getLength());\n        var column = 0;\n        if (row < this.getLength()) {\n            lines = lines.concat([\"\"]);\n            column = 0;\n        } else {\n            lines = [\"\"].concat(lines);\n            row--;\n            column = this.$lines[row].length;\n        }\n        this.insertMergedLines({row: row, column: column}, lines);\n    };    \n    this.insertMergedLines = function(position, lines) {\n        var start = this.clippedPos(position.row, position.column);\n        var end = {\n            row: start.row + lines.length - 1,\n            column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n        };\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"insert\",\n            lines: lines\n        });\n        \n        return this.clonePos(end);\n    };\n    this.remove = function(range) {\n        var start = this.clippedPos(range.start.row, range.start.column);\n        var end = this.clippedPos(range.end.row, range.end.column);\n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"remove\",\n            lines: this.getLinesForRange({start: start, end: end})\n        });\n        return this.clonePos(start);\n    };\n    this.removeInLine = function(row, startColumn, endColumn) {\n        var start = this.clippedPos(row, startColumn);\n        var end = this.clippedPos(row, endColumn);\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"remove\",\n            lines: this.getLinesForRange({start: start, end: end})\n        }, true);\n        \n        return this.clonePos(start);\n    };\n    this.removeFullLines = function(firstRow, lastRow) {\n        firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n        lastRow  = Math.min(Math.max(0, lastRow ), this.getLength() - 1);\n        var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n        var deleteLastNewLine  = lastRow  < this.getLength() - 1;\n        var startRow = ( deleteFirstNewLine ? firstRow - 1                  : firstRow                    );\n        var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0                           );\n        var endRow   = ( deleteLastNewLine  ? lastRow + 1                   : lastRow                     );\n        var endCol   = ( deleteLastNewLine  ? 0                             : this.getLine(endRow).length ); \n        var range = new Range(startRow, startCol, endRow, endCol);\n        var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n        \n        this.applyDelta({\n            start: range.start,\n            end: range.end,\n            action: \"remove\",\n            lines: this.getLinesForRange(range)\n        });\n        return deletedLines;\n    };\n    this.removeNewLine = function(row) {\n        if (row < this.getLength() - 1 && row >= 0) {\n            this.applyDelta({\n                start: this.pos(row, this.getLine(row).length),\n                end: this.pos(row + 1, 0),\n                action: \"remove\",\n                lines: [\"\", \"\"]\n            });\n        }\n    };\n    this.replace = function(range, text) {\n        if (!(range instanceof Range))\n            range = Range.fromPoints(range.start, range.end);\n        if (text.length === 0 && range.isEmpty())\n            return range.start;\n        if (text == this.getTextRange(range))\n            return range.end;\n\n        this.remove(range);\n        var end;\n        if (text) {\n            end = this.insert(range.start, text);\n        }\n        else {\n            end = range.start;\n        }\n        \n        return end;\n    };\n    this.applyDeltas = function(deltas) {\n        for (var i=0; i<deltas.length; i++) {\n            this.applyDelta(deltas[i]);\n        }\n    };\n    this.revertDeltas = function(deltas) {\n        for (var i=deltas.length-1; i>=0; i--) {\n            this.revertDelta(deltas[i]);\n        }\n    };\n    this.applyDelta = function(delta, doNotValidate) {\n        var isInsert = delta.action == \"insert\";\n        if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n            : !Range.comparePoints(delta.start, delta.end)) {\n            return;\n        }\n        \n        if (isInsert && delta.lines.length > 20000)\n            this.$splitAndapplyLargeDelta(delta, 20000);\n        applyDelta(this.$lines, delta, doNotValidate);\n        this._signal(\"change\", delta);\n    };\n    \n    this.$splitAndapplyLargeDelta = function(delta, MAX) {\n        var lines = delta.lines;\n        var l = lines.length;\n        var row = delta.start.row; \n        var column = delta.start.column;\n        var from = 0, to = 0;\n        do {\n            from = to;\n            to += MAX - 1;\n            var chunk = lines.slice(from, to);\n            if (to > l) {\n                delta.lines = chunk;\n                delta.start.row = row + from;\n                delta.start.column = column;\n                break;\n            }\n            chunk.push(\"\");\n            this.applyDelta({\n                start: this.pos(row + from, column),\n                end: this.pos(row + to, column = 0),\n                action: delta.action,\n                lines: chunk\n            }, true);\n        } while(true);\n    };\n    this.revertDelta = function(delta) {\n        this.applyDelta({\n            start: this.clonePos(delta.start),\n            end: this.clonePos(delta.end),\n            action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n            lines: delta.lines.slice()\n        });\n    };\n    this.indexToPosition = function(index, startRow) {\n        var lines = this.$lines || this.getAllLines();\n        var newlineLength = this.getNewLineCharacter().length;\n        for (var i = startRow || 0, l = lines.length; i < l; i++) {\n            index -= lines[i].length + newlineLength;\n            if (index < 0)\n                return {row: i, column: index + lines[i].length + newlineLength};\n        }\n        return {row: l-1, column: lines[l-1].length};\n    };\n    this.positionToIndex = function(pos, startRow) {\n        var lines = this.$lines || this.getAllLines();\n        var newlineLength = this.getNewLineCharacter().length;\n        var index = 0;\n        var row = Math.min(pos.row, lines.length);\n        for (var i = startRow || 0; i < row; ++i)\n            index += lines[i].length + newlineLength;\n\n        return index + pos.column;\n    };\n\n}).call(Document.prototype);\n\nexports.Document = Document;\n});\n\nace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\nvar Document = require(\"../document\").Document;\nvar lang = require(\"../lib/lang\");\n    \nvar Mirror = exports.Mirror = function(sender) {\n    this.sender = sender;\n    var doc = this.doc = new Document(\"\");\n    \n    var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this));\n    \n    var _self = this;\n    sender.on(\"change\", function(e) {\n        var data = e.data;\n        if (data[0].start) {\n            doc.applyDeltas(data);\n        } else {\n            for (var i = 0; i < data.length; i += 2) {\n                if (Array.isArray(data[i+1])) {\n                    var d = {action: \"insert\", start: data[i], lines: data[i+1]};\n                } else {\n                    var d = {action: \"remove\", start: data[i], end: data[i+1]};\n                }\n                doc.applyDelta(d, true);\n            }\n        }\n        if (_self.$timeout)\n            return deferredUpdate.schedule(_self.$timeout);\n        _self.onUpdate();\n    });\n};\n\n(function() {\n    \n    this.$timeout = 500;\n    \n    this.setTimeout = function(timeout) {\n        this.$timeout = timeout;\n    };\n    \n    this.setValue = function(value) {\n        this.doc.setValue(value);\n        this.deferredUpdate.schedule(this.$timeout);\n    };\n    \n    this.getValue = function(callbackId) {\n        this.sender.callback(this.doc.getValue(), callbackId);\n    };\n    \n    this.onUpdate = function() {\n    };\n    \n    this.isPending = function() {\n        return this.deferredUpdate.isPending();\n    };\n    \n}).call(Mirror.prototype);\n\n});\n\nace.define(\"ace/mode/css/csslint\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\nvar parserlib = {};\n(function(){\nfunction EventTarget(){\n    this._listeners = {};\n}\n\nEventTarget.prototype = {\n    constructor: EventTarget,\n    addListener: function(type, listener){\n        if (!this._listeners[type]){\n            this._listeners[type] = [];\n        }\n\n        this._listeners[type].push(listener);\n    },\n    fire: function(event){\n        if (typeof event == \"string\"){\n            event = { type: event };\n        }\n        if (typeof event.target != \"undefined\"){\n            event.target = this;\n        }\n\n        if (typeof event.type == \"undefined\"){\n            throw new Error(\"Event object missing 'type' property.\");\n        }\n\n        if (this._listeners[event.type]){\n            var listeners = this._listeners[event.type].concat();\n            for (var i=0, len=listeners.length; i < len; i++){\n                listeners[i].call(this, event);\n            }\n        }\n    },\n    removeListener: function(type, listener){\n        if (this._listeners[type]){\n            var listeners = this._listeners[type];\n            for (var i=0, len=listeners.length; i < len; i++){\n                if (listeners[i] === listener){\n                    listeners.splice(i, 1);\n                    break;\n                }\n            }\n\n\n        }\n    }\n};\nfunction StringReader(text){\n    this._input = text.replace(/\\n\\r?/g, \"\\n\");\n    this._line = 1;\n    this._col = 1;\n    this._cursor = 0;\n}\n\nStringReader.prototype = {\n    constructor: StringReader,\n    getCol: function(){\n        return this._col;\n    },\n    getLine: function(){\n        return this._line ;\n    },\n    eof: function(){\n        return (this._cursor == this._input.length);\n    },\n    peek: function(count){\n        var c = null;\n        count = (typeof count == \"undefined\" ? 1 : count);\n        if (this._cursor < this._input.length){\n            c = this._input.charAt(this._cursor + count - 1);\n        }\n\n        return c;\n    },\n    read: function(){\n        var c = null;\n        if (this._cursor < this._input.length){\n            if (this._input.charAt(this._cursor) == \"\\n\"){\n                this._line++;\n                this._col=1;\n            } else {\n                this._col++;\n            }\n            c = this._input.charAt(this._cursor++);\n        }\n\n        return c;\n    },\n    mark: function(){\n        this._bookmark = {\n            cursor: this._cursor,\n            line:   this._line,\n            col:    this._col\n        };\n    },\n\n    reset: function(){\n        if (this._bookmark){\n            this._cursor = this._bookmark.cursor;\n            this._line = this._bookmark.line;\n            this._col = this._bookmark.col;\n            delete this._bookmark;\n        }\n    },\n    readTo: function(pattern){\n\n        var buffer = \"\",\n            c;\n        while (buffer.length < pattern.length || buffer.lastIndexOf(pattern) != buffer.length - pattern.length){\n            c = this.read();\n            if (c){\n                buffer += c;\n            } else {\n                throw new Error(\"Expected \\\"\" + pattern + \"\\\" at line \" + this._line  + \", col \" + this._col + \".\");\n            }\n        }\n\n        return buffer;\n\n    },\n    readWhile: function(filter){\n\n        var buffer = \"\",\n            c = this.read();\n\n        while(c !== null && filter(c)){\n            buffer += c;\n            c = this.read();\n        }\n\n        return buffer;\n\n    },\n    readMatch: function(matcher){\n\n        var source = this._input.substring(this._cursor),\n            value = null;\n        if (typeof matcher == \"string\"){\n            if (source.indexOf(matcher) === 0){\n                value = this.readCount(matcher.length);\n            }\n        } else if (matcher instanceof RegExp){\n            if (matcher.test(source)){\n                value = this.readCount(RegExp.lastMatch.length);\n            }\n        }\n\n        return value;\n    },\n    readCount: function(count){\n        var buffer = \"\";\n\n        while(count--){\n            buffer += this.read();\n        }\n\n        return buffer;\n    }\n\n};\nfunction SyntaxError(message, line, col){\n    this.col = col;\n    this.line = line;\n    this.message = message;\n\n}\nSyntaxError.prototype = new Error();\nfunction SyntaxUnit(text, line, col, type){\n    this.col = col;\n    this.line = line;\n    this.text = text;\n    this.type = type;\n}\nSyntaxUnit.fromToken = function(token){\n    return new SyntaxUnit(token.value, token.startLine, token.startCol);\n};\n\nSyntaxUnit.prototype = {\n    constructor: SyntaxUnit,\n    valueOf: function(){\n        return this.text;\n    },\n    toString: function(){\n        return this.text;\n    }\n\n};\nfunction TokenStreamBase(input, tokenData){\n    this._reader = input ? new StringReader(input.toString()) : null;\n    this._token = null;\n    this._tokenData = tokenData;\n    this._lt = [];\n    this._ltIndex = 0;\n\n    this._ltIndexCache = [];\n}\nTokenStreamBase.createTokenData = function(tokens){\n\n    var nameMap     = [],\n        typeMap     = {},\n        tokenData     = tokens.concat([]),\n        i            = 0,\n        len            = tokenData.length+1;\n\n    tokenData.UNKNOWN = -1;\n    tokenData.unshift({name:\"EOF\"});\n\n    for (; i < len; i++){\n        nameMap.push(tokenData[i].name);\n        tokenData[tokenData[i].name] = i;\n        if (tokenData[i].text){\n            typeMap[tokenData[i].text] = i;\n        }\n    }\n\n    tokenData.name = function(tt){\n        return nameMap[tt];\n    };\n\n    tokenData.type = function(c){\n        return typeMap[c];\n    };\n\n    return tokenData;\n};\n\nTokenStreamBase.prototype = {\n    constructor: TokenStreamBase,\n    match: function(tokenTypes, channel){\n        if (!(tokenTypes instanceof Array)){\n            tokenTypes = [tokenTypes];\n        }\n\n        var tt  = this.get(channel),\n            i   = 0,\n            len = tokenTypes.length;\n\n        while(i < len){\n            if (tt == tokenTypes[i++]){\n                return true;\n            }\n        }\n        this.unget();\n        return false;\n    },\n    mustMatch: function(tokenTypes, channel){\n\n        var token;\n        if (!(tokenTypes instanceof Array)){\n            tokenTypes = [tokenTypes];\n        }\n\n        if (!this.match.apply(this, arguments)){\n            token = this.LT(1);\n            throw new SyntaxError(\"Expected \" + this._tokenData[tokenTypes[0]].name +\n                \" at line \" + token.startLine + \", col \" + token.startCol + \".\", token.startLine, token.startCol);\n        }\n    },\n    advance: function(tokenTypes, channel){\n\n        while(this.LA(0) !== 0 && !this.match(tokenTypes, channel)){\n            this.get();\n        }\n\n        return this.LA(0);\n    },\n    get: function(channel){\n\n        var tokenInfo   = this._tokenData,\n            reader      = this._reader,\n            value,\n            i           =0,\n            len         = tokenInfo.length,\n            found       = false,\n            token,\n            info;\n        if (this._lt.length && this._ltIndex >= 0 && this._ltIndex < this._lt.length){\n\n            i++;\n            this._token = this._lt[this._ltIndex++];\n            info = tokenInfo[this._token.type];\n            while((info.channel !== undefined && channel !== info.channel) &&\n                    this._ltIndex < this._lt.length){\n                this._token = this._lt[this._ltIndex++];\n                info = tokenInfo[this._token.type];\n                i++;\n            }\n            if ((info.channel === undefined || channel === info.channel) &&\n                    this._ltIndex <= this._lt.length){\n                this._ltIndexCache.push(i);\n                return this._token.type;\n            }\n        }\n        token = this._getToken();\n        if (token.type > -1 && !tokenInfo[token.type].hide){\n            token.channel = tokenInfo[token.type].channel;\n            this._token = token;\n            this._lt.push(token);\n            this._ltIndexCache.push(this._lt.length - this._ltIndex + i);\n            if (this._lt.length > 5){\n                this._lt.shift();\n            }\n            if (this._ltIndexCache.length > 5){\n                this._ltIndexCache.shift();\n            }\n            this._ltIndex = this._lt.length;\n        }\n        info = tokenInfo[token.type];\n        if (info &&\n                (info.hide ||\n                (info.channel !== undefined && channel !== info.channel))){\n            return this.get(channel);\n        } else {\n            return token.type;\n        }\n    },\n    LA: function(index){\n        var total = index,\n            tt;\n        if (index > 0){\n            if (index > 5){\n                throw new Error(\"Too much lookahead.\");\n            }\n            while(total){\n                tt = this.get();\n                total--;\n            }\n            while(total < index){\n                this.unget();\n                total++;\n            }\n        } else if (index < 0){\n\n            if(this._lt[this._ltIndex+index]){\n                tt = this._lt[this._ltIndex+index].type;\n            } else {\n                throw new Error(\"Too much lookbehind.\");\n            }\n\n        } else {\n            tt = this._token.type;\n        }\n\n        return tt;\n\n    },\n    LT: function(index){\n        this.LA(index);\n        return this._lt[this._ltIndex+index-1];\n    },\n    peek: function(){\n        return this.LA(1);\n    },\n    token: function(){\n        return this._token;\n    },\n    tokenName: function(tokenType){\n        if (tokenType < 0 || tokenType > this._tokenData.length){\n            return \"UNKNOWN_TOKEN\";\n        } else {\n            return this._tokenData[tokenType].name;\n        }\n    },\n    tokenType: function(tokenName){\n        return this._tokenData[tokenName] || -1;\n    },\n    unget: function(){\n        if (this._ltIndexCache.length){\n            this._ltIndex -= this._ltIndexCache.pop();//--;\n            this._token = this._lt[this._ltIndex - 1];\n        } else {\n            throw new Error(\"Too much lookahead.\");\n        }\n    }\n\n};\n\n\nparserlib.util = {\nStringReader: StringReader,\nSyntaxError : SyntaxError,\nSyntaxUnit  : SyntaxUnit,\nEventTarget : EventTarget,\nTokenStreamBase : TokenStreamBase\n};\n})();\n(function(){\nvar EventTarget = parserlib.util.EventTarget,\nTokenStreamBase = parserlib.util.TokenStreamBase,\nStringReader = parserlib.util.StringReader,\nSyntaxError = parserlib.util.SyntaxError,\nSyntaxUnit  = parserlib.util.SyntaxUnit;\n\nvar Colors = {\n    aliceblue       :\"#f0f8ff\",\n    antiquewhite    :\"#faebd7\",\n    aqua            :\"#00ffff\",\n    aquamarine      :\"#7fffd4\",\n    azure           :\"#f0ffff\",\n    beige           :\"#f5f5dc\",\n    bisque          :\"#ffe4c4\",\n    black           :\"#000000\",\n    blanchedalmond  :\"#ffebcd\",\n    blue            :\"#0000ff\",\n    blueviolet      :\"#8a2be2\",\n    brown           :\"#a52a2a\",\n    burlywood       :\"#deb887\",\n    cadetblue       :\"#5f9ea0\",\n    chartreuse      :\"#7fff00\",\n    chocolate       :\"#d2691e\",\n    coral           :\"#ff7f50\",\n    cornflowerblue  :\"#6495ed\",\n    cornsilk        :\"#fff8dc\",\n    crimson         :\"#dc143c\",\n    cyan            :\"#00ffff\",\n    darkblue        :\"#00008b\",\n    darkcyan        :\"#008b8b\",\n    darkgoldenrod   :\"#b8860b\",\n    darkgray        :\"#a9a9a9\",\n    darkgrey        :\"#a9a9a9\",\n    darkgreen       :\"#006400\",\n    darkkhaki       :\"#bdb76b\",\n    darkmagenta     :\"#8b008b\",\n    darkolivegreen  :\"#556b2f\",\n    darkorange      :\"#ff8c00\",\n    darkorchid      :\"#9932cc\",\n    darkred         :\"#8b0000\",\n    darksalmon      :\"#e9967a\",\n    darkseagreen    :\"#8fbc8f\",\n    darkslateblue   :\"#483d8b\",\n    darkslategray   :\"#2f4f4f\",\n    darkslategrey   :\"#2f4f4f\",\n    darkturquoise   :\"#00ced1\",\n    darkviolet      :\"#9400d3\",\n    deeppink        :\"#ff1493\",\n    deepskyblue     :\"#00bfff\",\n    dimgray         :\"#696969\",\n    dimgrey         :\"#696969\",\n    dodgerblue      :\"#1e90ff\",\n    firebrick       :\"#b22222\",\n    floralwhite     :\"#fffaf0\",\n    forestgreen     :\"#228b22\",\n    fuchsia         :\"#ff00ff\",\n    gainsboro       :\"#dcdcdc\",\n    ghostwhite      :\"#f8f8ff\",\n    gold            :\"#ffd700\",\n    goldenrod       :\"#daa520\",\n    gray            :\"#808080\",\n    grey            :\"#808080\",\n    green           :\"#008000\",\n    greenyellow     :\"#adff2f\",\n    honeydew        :\"#f0fff0\",\n    hotpink         :\"#ff69b4\",\n    indianred       :\"#cd5c5c\",\n    indigo          :\"#4b0082\",\n    ivory           :\"#fffff0\",\n    khaki           :\"#f0e68c\",\n    lavender        :\"#e6e6fa\",\n    lavenderblush   :\"#fff0f5\",\n    lawngreen       :\"#7cfc00\",\n    lemonchiffon    :\"#fffacd\",\n    lightblue       :\"#add8e6\",\n    lightcoral      :\"#f08080\",\n    lightcyan       :\"#e0ffff\",\n    lightgoldenrodyellow  :\"#fafad2\",\n    lightgray       :\"#d3d3d3\",\n    lightgrey       :\"#d3d3d3\",\n    lightgreen      :\"#90ee90\",\n    lightpink       :\"#ffb6c1\",\n    lightsalmon     :\"#ffa07a\",\n    lightseagreen   :\"#20b2aa\",\n    lightskyblue    :\"#87cefa\",\n    lightslategray  :\"#778899\",\n    lightslategrey  :\"#778899\",\n    lightsteelblue  :\"#b0c4de\",\n    lightyellow     :\"#ffffe0\",\n    lime            :\"#00ff00\",\n    limegreen       :\"#32cd32\",\n    linen           :\"#faf0e6\",\n    magenta         :\"#ff00ff\",\n    maroon          :\"#800000\",\n    mediumaquamarine:\"#66cdaa\",\n    mediumblue      :\"#0000cd\",\n    mediumorchid    :\"#ba55d3\",\n    mediumpurple    :\"#9370d8\",\n    mediumseagreen  :\"#3cb371\",\n    mediumslateblue :\"#7b68ee\",\n    mediumspringgreen   :\"#00fa9a\",\n    mediumturquoise :\"#48d1cc\",\n    mediumvioletred :\"#c71585\",\n    midnightblue    :\"#191970\",\n    mintcream       :\"#f5fffa\",\n    mistyrose       :\"#ffe4e1\",\n    moccasin        :\"#ffe4b5\",\n    navajowhite     :\"#ffdead\",\n    navy            :\"#000080\",\n    oldlace         :\"#fdf5e6\",\n    olive           :\"#808000\",\n    olivedrab       :\"#6b8e23\",\n    orange          :\"#ffa500\",\n    orangered       :\"#ff4500\",\n    orchid          :\"#da70d6\",\n    palegoldenrod   :\"#eee8aa\",\n    palegreen       :\"#98fb98\",\n    paleturquoise   :\"#afeeee\",\n    palevioletred   :\"#d87093\",\n    papayawhip      :\"#ffefd5\",\n    peachpuff       :\"#ffdab9\",\n    peru            :\"#cd853f\",\n    pink            :\"#ffc0cb\",\n    plum            :\"#dda0dd\",\n    powderblue      :\"#b0e0e6\",\n    purple          :\"#800080\",\n    red             :\"#ff0000\",\n    rosybrown       :\"#bc8f8f\",\n    royalblue       :\"#4169e1\",\n    saddlebrown     :\"#8b4513\",\n    salmon          :\"#fa8072\",\n    sandybrown      :\"#f4a460\",\n    seagreen        :\"#2e8b57\",\n    seashell        :\"#fff5ee\",\n    sienna          :\"#a0522d\",\n    silver          :\"#c0c0c0\",\n    skyblue         :\"#87ceeb\",\n    slateblue       :\"#6a5acd\",\n    slategray       :\"#708090\",\n    slategrey       :\"#708090\",\n    snow            :\"#fffafa\",\n    springgreen     :\"#00ff7f\",\n    steelblue       :\"#4682b4\",\n    tan             :\"#d2b48c\",\n    teal            :\"#008080\",\n    thistle         :\"#d8bfd8\",\n    tomato          :\"#ff6347\",\n    turquoise       :\"#40e0d0\",\n    violet          :\"#ee82ee\",\n    wheat           :\"#f5deb3\",\n    white           :\"#ffffff\",\n    whitesmoke      :\"#f5f5f5\",\n    yellow          :\"#ffff00\",\n    yellowgreen     :\"#9acd32\",\n    activeBorder        :\"Active window border.\",\n    activecaption       :\"Active window caption.\",\n    appworkspace        :\"Background color of multiple document interface.\",\n    background          :\"Desktop background.\",\n    buttonface          :\"The face background color for 3-D elements that appear 3-D due to one layer of surrounding border.\",\n    buttonhighlight     :\"The color of the border facing the light source for 3-D elements that appear 3-D due to one layer of surrounding border.\",\n    buttonshadow        :\"The color of the border away from the light source for 3-D elements that appear 3-D due to one layer of surrounding border.\",\n    buttontext          :\"Text on push buttons.\",\n    captiontext         :\"Text in caption, size box, and scrollbar arrow box.\",\n    graytext            :\"Grayed (disabled) text. This color is set to #000 if the current display driver does not support a solid gray color.\",\n    greytext            :\"Greyed (disabled) text. This color is set to #000 if the current display driver does not support a solid grey color.\",\n    highlight           :\"Item(s) selected in a control.\",\n    highlighttext       :\"Text of item(s) selected in a control.\",\n    inactiveborder      :\"Inactive window border.\",\n    inactivecaption     :\"Inactive window caption.\",\n    inactivecaptiontext :\"Color of text in an inactive caption.\",\n    infobackground      :\"Background color for tooltip controls.\",\n    infotext            :\"Text color for tooltip controls.\",\n    menu                :\"Menu background.\",\n    menutext            :\"Text in menus.\",\n    scrollbar           :\"Scroll bar gray area.\",\n    threeddarkshadow    :\"The color of the darker (generally outer) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.\",\n    threedface          :\"The face background color for 3-D elements that appear 3-D due to two concentric layers of surrounding border.\",\n    threedhighlight     :\"The color of the lighter (generally outer) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.\",\n    threedlightshadow   :\"The color of the darker (generally inner) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.\",\n    threedshadow        :\"The color of the lighter (generally inner) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.\",\n    window              :\"Window background.\",\n    windowframe         :\"Window frame.\",\n    windowtext          :\"Text in windows.\"\n};\nfunction Combinator(text, line, col){\n\n    SyntaxUnit.call(this, text, line, col, Parser.COMBINATOR_TYPE);\n    this.type = \"unknown\";\n    if (/^\\s+$/.test(text)){\n        this.type = \"descendant\";\n    } else if (text == \">\"){\n        this.type = \"child\";\n    } else if (text == \"+\"){\n        this.type = \"adjacent-sibling\";\n    } else if (text == \"~\"){\n        this.type = \"sibling\";\n    }\n\n}\n\nCombinator.prototype = new SyntaxUnit();\nCombinator.prototype.constructor = Combinator;\nfunction MediaFeature(name, value){\n\n    SyntaxUnit.call(this, \"(\" + name + (value !== null ? \":\" + value : \"\") + \")\", name.startLine, name.startCol, Parser.MEDIA_FEATURE_TYPE);\n    this.name = name;\n    this.value = value;\n}\n\nMediaFeature.prototype = new SyntaxUnit();\nMediaFeature.prototype.constructor = MediaFeature;\nfunction MediaQuery(modifier, mediaType, features, line, col){\n\n    SyntaxUnit.call(this, (modifier ? modifier + \" \": \"\") + (mediaType ? mediaType : \"\") + (mediaType && features.length > 0 ? \" and \" : \"\") + features.join(\" and \"), line, col, Parser.MEDIA_QUERY_TYPE);\n    this.modifier = modifier;\n    this.mediaType = mediaType;\n    this.features = features;\n\n}\n\nMediaQuery.prototype = new SyntaxUnit();\nMediaQuery.prototype.constructor = MediaQuery;\nfunction Parser(options){\n    EventTarget.call(this);\n\n\n    this.options = options || {};\n\n    this._tokenStream = null;\n}\nParser.DEFAULT_TYPE = 0;\nParser.COMBINATOR_TYPE = 1;\nParser.MEDIA_FEATURE_TYPE = 2;\nParser.MEDIA_QUERY_TYPE = 3;\nParser.PROPERTY_NAME_TYPE = 4;\nParser.PROPERTY_VALUE_TYPE = 5;\nParser.PROPERTY_VALUE_PART_TYPE = 6;\nParser.SELECTOR_TYPE = 7;\nParser.SELECTOR_PART_TYPE = 8;\nParser.SELECTOR_SUB_PART_TYPE = 9;\n\nParser.prototype = function(){\n\n    var proto = new EventTarget(),  //new prototype\n        prop,\n        additions =  {\n            constructor: Parser,\n            DEFAULT_TYPE : 0,\n            COMBINATOR_TYPE : 1,\n            MEDIA_FEATURE_TYPE : 2,\n            MEDIA_QUERY_TYPE : 3,\n            PROPERTY_NAME_TYPE : 4,\n            PROPERTY_VALUE_TYPE : 5,\n            PROPERTY_VALUE_PART_TYPE : 6,\n            SELECTOR_TYPE : 7,\n            SELECTOR_PART_TYPE : 8,\n            SELECTOR_SUB_PART_TYPE : 9,\n\n            _stylesheet: function(){\n\n                var tokenStream = this._tokenStream,\n                    charset     = null,\n                    count,\n                    token,\n                    tt;\n\n                this.fire(\"startstylesheet\");\n                this._charset();\n\n                this._skipCruft();\n                while (tokenStream.peek() == Tokens.IMPORT_SYM){\n                    this._import();\n                    this._skipCruft();\n                }\n                while (tokenStream.peek() == Tokens.NAMESPACE_SYM){\n                    this._namespace();\n                    this._skipCruft();\n                }\n                tt = tokenStream.peek();\n                while(tt > Tokens.EOF){\n\n                    try {\n\n                        switch(tt){\n                            case Tokens.MEDIA_SYM:\n                                this._media();\n                                this._skipCruft();\n                                break;\n                            case Tokens.PAGE_SYM:\n                                this._page();\n                                this._skipCruft();\n                                break;\n                            case Tokens.FONT_FACE_SYM:\n                                this._font_face();\n                                this._skipCruft();\n                                break;\n                            case Tokens.KEYFRAMES_SYM:\n                                this._keyframes();\n                                this._skipCruft();\n                                break;\n                            case Tokens.VIEWPORT_SYM:\n                                this._viewport();\n                                this._skipCruft();\n                                break;\n                            case Tokens.UNKNOWN_SYM:  //unknown @ rule\n                                tokenStream.get();\n                                if (!this.options.strict){\n                                    this.fire({\n                                        type:       \"error\",\n                                        error:      null,\n                                        message:    \"Unknown @ rule: \" + tokenStream.LT(0).value + \".\",\n                                        line:       tokenStream.LT(0).startLine,\n                                        col:        tokenStream.LT(0).startCol\n                                    });\n                                    count=0;\n                                    while (tokenStream.advance([Tokens.LBRACE, Tokens.RBRACE]) == Tokens.LBRACE){\n                                        count++;    //keep track of nesting depth\n                                    }\n\n                                    while(count){\n                                        tokenStream.advance([Tokens.RBRACE]);\n                                        count--;\n                                    }\n\n                                } else {\n                                    throw new SyntaxError(\"Unknown @ rule.\", tokenStream.LT(0).startLine, tokenStream.LT(0).startCol);\n                                }\n                                break;\n                            case Tokens.S:\n                                this._readWhitespace();\n                                break;\n                            default:\n                                if(!this._ruleset()){\n                                    switch(tt){\n                                        case Tokens.CHARSET_SYM:\n                                            token = tokenStream.LT(1);\n                                            this._charset(false);\n                                            throw new SyntaxError(\"@charset not allowed here.\", token.startLine, token.startCol);\n                                        case Tokens.IMPORT_SYM:\n                                            token = tokenStream.LT(1);\n                                            this._import(false);\n                                            throw new SyntaxError(\"@import not allowed here.\", token.startLine, token.startCol);\n                                        case Tokens.NAMESPACE_SYM:\n                                            token = tokenStream.LT(1);\n                                            this._namespace(false);\n                                            throw new SyntaxError(\"@namespace not allowed here.\", token.startLine, token.startCol);\n                                        default:\n                                            tokenStream.get();  //get the last token\n                                            this._unexpectedToken(tokenStream.token());\n                                    }\n\n                                }\n                        }\n                    } catch(ex) {\n                        if (ex instanceof SyntaxError && !this.options.strict){\n                            this.fire({\n                                type:       \"error\",\n                                error:      ex,\n                                message:    ex.message,\n                                line:       ex.line,\n                                col:        ex.col\n                            });\n                        } else {\n                            throw ex;\n                        }\n                    }\n\n                    tt = tokenStream.peek();\n                }\n\n                if (tt != Tokens.EOF){\n                    this._unexpectedToken(tokenStream.token());\n                }\n\n                this.fire(\"endstylesheet\");\n            },\n\n            _charset: function(emit){\n                var tokenStream = this._tokenStream,\n                    charset,\n                    token,\n                    line,\n                    col;\n\n                if (tokenStream.match(Tokens.CHARSET_SYM)){\n                    line = tokenStream.token().startLine;\n                    col = tokenStream.token().startCol;\n\n                    this._readWhitespace();\n                    tokenStream.mustMatch(Tokens.STRING);\n\n                    token = tokenStream.token();\n                    charset = token.value;\n\n                    this._readWhitespace();\n                    tokenStream.mustMatch(Tokens.SEMICOLON);\n\n                    if (emit !== false){\n                        this.fire({\n                            type:   \"charset\",\n                            charset:charset,\n                            line:   line,\n                            col:    col\n                        });\n                    }\n                }\n            },\n\n            _import: function(emit){\n\n                var tokenStream = this._tokenStream,\n                    tt,\n                    uri,\n                    importToken,\n                    mediaList   = [];\n                tokenStream.mustMatch(Tokens.IMPORT_SYM);\n                importToken = tokenStream.token();\n                this._readWhitespace();\n\n                tokenStream.mustMatch([Tokens.STRING, Tokens.URI]);\n                uri = tokenStream.token().value.replace(/^(?:url\\()?[\"']?([^\"']+?)[\"']?\\)?$/, \"$1\");\n\n                this._readWhitespace();\n\n                mediaList = this._media_query_list();\n                tokenStream.mustMatch(Tokens.SEMICOLON);\n                this._readWhitespace();\n\n                if (emit !== false){\n                    this.fire({\n                        type:   \"import\",\n                        uri:    uri,\n                        media:  mediaList,\n                        line:   importToken.startLine,\n                        col:    importToken.startCol\n                    });\n                }\n\n            },\n\n            _namespace: function(emit){\n\n                var tokenStream = this._tokenStream,\n                    line,\n                    col,\n                    prefix,\n                    uri;\n                tokenStream.mustMatch(Tokens.NAMESPACE_SYM);\n                line = tokenStream.token().startLine;\n                col = tokenStream.token().startCol;\n                this._readWhitespace();\n                if (tokenStream.match(Tokens.IDENT)){\n                    prefix = tokenStream.token().value;\n                    this._readWhitespace();\n                }\n\n                tokenStream.mustMatch([Tokens.STRING, Tokens.URI]);\n                uri = tokenStream.token().value.replace(/(?:url\\()?[\"']([^\"']+)[\"']\\)?/, \"$1\");\n\n                this._readWhitespace();\n                tokenStream.mustMatch(Tokens.SEMICOLON);\n                this._readWhitespace();\n\n                if (emit !== false){\n                    this.fire({\n                        type:   \"namespace\",\n                        prefix: prefix,\n                        uri:    uri,\n                        line:   line,\n                        col:    col\n                    });\n                }\n\n            },\n\n            _media: function(){\n                var tokenStream     = this._tokenStream,\n                    line,\n                    col,\n                    mediaList;//       = [];\n                tokenStream.mustMatch(Tokens.MEDIA_SYM);\n                line = tokenStream.token().startLine;\n                col = tokenStream.token().startCol;\n\n                this._readWhitespace();\n\n                mediaList = this._media_query_list();\n\n                tokenStream.mustMatch(Tokens.LBRACE);\n                this._readWhitespace();\n\n                this.fire({\n                    type:   \"startmedia\",\n                    media:  mediaList,\n                    line:   line,\n                    col:    col\n                });\n\n                while(true) {\n                    if (tokenStream.peek() == Tokens.PAGE_SYM){\n                        this._page();\n                    } else if (tokenStream.peek() == Tokens.FONT_FACE_SYM){\n                        this._font_face();\n                    } else if (tokenStream.peek() == Tokens.VIEWPORT_SYM){\n                        this._viewport();\n                    } else if (!this._ruleset()){\n                        break;\n                    }\n                }\n\n                tokenStream.mustMatch(Tokens.RBRACE);\n                this._readWhitespace();\n\n                this.fire({\n                    type:   \"endmedia\",\n                    media:  mediaList,\n                    line:   line,\n                    col:    col\n                });\n            },\n            _media_query_list: function(){\n                var tokenStream = this._tokenStream,\n                    mediaList   = [];\n\n\n                this._readWhitespace();\n\n                if (tokenStream.peek() == Tokens.IDENT || tokenStream.peek() == Tokens.LPAREN){\n                    mediaList.push(this._media_query());\n                }\n\n                while(tokenStream.match(Tokens.COMMA)){\n                    this._readWhitespace();\n                    mediaList.push(this._media_query());\n                }\n\n                return mediaList;\n            },\n            _media_query: function(){\n                var tokenStream = this._tokenStream,\n                    type        = null,\n                    ident       = null,\n                    token       = null,\n                    expressions = [];\n\n                if (tokenStream.match(Tokens.IDENT)){\n                    ident = tokenStream.token().value.toLowerCase();\n                    if (ident != \"only\" && ident != \"not\"){\n                        tokenStream.unget();\n                        ident = null;\n                    } else {\n                        token = tokenStream.token();\n                    }\n                }\n\n                this._readWhitespace();\n\n                if (tokenStream.peek() == Tokens.IDENT){\n                    type = this._media_type();\n                    if (token === null){\n                        token = tokenStream.token();\n                    }\n                } else if (tokenStream.peek() == Tokens.LPAREN){\n                    if (token === null){\n                        token = tokenStream.LT(1);\n                    }\n                    expressions.push(this._media_expression());\n                }\n\n                if (type === null && expressions.length === 0){\n                    return null;\n                } else {\n                    this._readWhitespace();\n                    while (tokenStream.match(Tokens.IDENT)){\n                        if (tokenStream.token().value.toLowerCase() != \"and\"){\n                            this._unexpectedToken(tokenStream.token());\n                        }\n\n                        this._readWhitespace();\n                        expressions.push(this._media_expression());\n                    }\n                }\n\n                return new MediaQuery(ident, type, expressions, token.startLine, token.startCol);\n            },\n            _media_type: function(){\n                return this._media_feature();\n            },\n            _media_expression: function(){\n                var tokenStream = this._tokenStream,\n                    feature     = null,\n                    token,\n                    expression  = null;\n\n                tokenStream.mustMatch(Tokens.LPAREN);\n\n                feature = this._media_feature();\n                this._readWhitespace();\n\n                if (tokenStream.match(Tokens.COLON)){\n                    this._readWhitespace();\n                    token = tokenStream.LT(1);\n                    expression = this._expression();\n                }\n\n                tokenStream.mustMatch(Tokens.RPAREN);\n                this._readWhitespace();\n\n                return new MediaFeature(feature, (expression ? new SyntaxUnit(expression, token.startLine, token.startCol) : null));\n            },\n            _media_feature: function(){\n                var tokenStream = this._tokenStream;\n\n                tokenStream.mustMatch(Tokens.IDENT);\n\n                return SyntaxUnit.fromToken(tokenStream.token());\n            },\n            _page: function(){\n                var tokenStream = this._tokenStream,\n                    line,\n                    col,\n                    identifier  = null,\n                    pseudoPage  = null;\n                tokenStream.mustMatch(Tokens.PAGE_SYM);\n                line = tokenStream.token().startLine;\n                col = tokenStream.token().startCol;\n\n                this._readWhitespace();\n\n                if (tokenStream.match(Tokens.IDENT)){\n                    identifier = tokenStream.token().value;\n                    if (identifier.toLowerCase() === \"auto\"){\n                        this._unexpectedToken(tokenStream.token());\n                    }\n                }\n                if (tokenStream.peek() == Tokens.COLON){\n                    pseudoPage = this._pseudo_page();\n                }\n\n                this._readWhitespace();\n\n                this.fire({\n                    type:   \"startpage\",\n                    id:     identifier,\n                    pseudo: pseudoPage,\n                    line:   line,\n                    col:    col\n                });\n\n                this._readDeclarations(true, true);\n\n                this.fire({\n                    type:   \"endpage\",\n                    id:     identifier,\n                    pseudo: pseudoPage,\n                    line:   line,\n                    col:    col\n                });\n\n            },\n            _margin: function(){\n                var tokenStream = this._tokenStream,\n                    line,\n                    col,\n                    marginSym   = this._margin_sym();\n\n                if (marginSym){\n                    line = tokenStream.token().startLine;\n                    col = tokenStream.token().startCol;\n\n                    this.fire({\n                        type: \"startpagemargin\",\n                        margin: marginSym,\n                        line:   line,\n                        col:    col\n                    });\n\n                    this._readDeclarations(true);\n\n                    this.fire({\n                        type: \"endpagemargin\",\n                        margin: marginSym,\n                        line:   line,\n                        col:    col\n                    });\n                    return true;\n                } else {\n                    return false;\n                }\n            },\n            _margin_sym: function(){\n\n                var tokenStream = this._tokenStream;\n\n                if(tokenStream.match([Tokens.TOPLEFTCORNER_SYM, Tokens.TOPLEFT_SYM,\n                        Tokens.TOPCENTER_SYM, Tokens.TOPRIGHT_SYM, Tokens.TOPRIGHTCORNER_SYM,\n                        Tokens.BOTTOMLEFTCORNER_SYM, Tokens.BOTTOMLEFT_SYM,\n                        Tokens.BOTTOMCENTER_SYM, Tokens.BOTTOMRIGHT_SYM,\n                        Tokens.BOTTOMRIGHTCORNER_SYM, Tokens.LEFTTOP_SYM,\n                        Tokens.LEFTMIDDLE_SYM, Tokens.LEFTBOTTOM_SYM, Tokens.RIGHTTOP_SYM,\n                        Tokens.RIGHTMIDDLE_SYM, Tokens.RIGHTBOTTOM_SYM]))\n                {\n                    return SyntaxUnit.fromToken(tokenStream.token());\n                } else {\n                    return null;\n                }\n\n            },\n\n            _pseudo_page: function(){\n\n                var tokenStream = this._tokenStream;\n\n                tokenStream.mustMatch(Tokens.COLON);\n                tokenStream.mustMatch(Tokens.IDENT);\n\n                return tokenStream.token().value;\n            },\n\n            _font_face: function(){\n                var tokenStream = this._tokenStream,\n                    line,\n                    col;\n                tokenStream.mustMatch(Tokens.FONT_FACE_SYM);\n                line = tokenStream.token().startLine;\n                col = tokenStream.token().startCol;\n\n                this._readWhitespace();\n\n                this.fire({\n                    type:   \"startfontface\",\n                    line:   line,\n                    col:    col\n                });\n\n                this._readDeclarations(true);\n\n                this.fire({\n                    type:   \"endfontface\",\n                    line:   line,\n                    col:    col\n                });\n            },\n\n            _viewport: function(){\n                 var tokenStream = this._tokenStream,\n                    line,\n                    col;\n\n                    tokenStream.mustMatch(Tokens.VIEWPORT_SYM);\n                    line = tokenStream.token().startLine;\n                    col = tokenStream.token().startCol;\n\n                    this._readWhitespace();\n\n                    this.fire({\n                        type:   \"startviewport\",\n                        line:   line,\n                        col:    col\n                    });\n\n                    this._readDeclarations(true);\n\n                    this.fire({\n                        type:   \"endviewport\",\n                        line:   line,\n                        col:    col\n                    });\n\n            },\n\n            _operator: function(inFunction){\n\n                var tokenStream = this._tokenStream,\n                    token       = null;\n\n                if (tokenStream.match([Tokens.SLASH, Tokens.COMMA]) ||\n                    (inFunction && tokenStream.match([Tokens.PLUS, Tokens.STAR, Tokens.MINUS]))){\n                    token =  tokenStream.token();\n                    this._readWhitespace();\n                }\n                return token ? PropertyValuePart.fromToken(token) : null;\n\n            },\n\n            _combinator: function(){\n\n                var tokenStream = this._tokenStream,\n                    value       = null,\n                    token;\n\n                if(tokenStream.match([Tokens.PLUS, Tokens.GREATER, Tokens.TILDE])){\n                    token = tokenStream.token();\n                    value = new Combinator(token.value, token.startLine, token.startCol);\n                    this._readWhitespace();\n                }\n\n                return value;\n            },\n\n            _unary_operator: function(){\n\n                var tokenStream = this._tokenStream;\n\n                if (tokenStream.match([Tokens.MINUS, Tokens.PLUS])){\n                    return tokenStream.token().value;\n                } else {\n                    return null;\n                }\n            },\n\n            _property: function(){\n\n                var tokenStream = this._tokenStream,\n                    value       = null,\n                    hack        = null,\n                    tokenValue,\n                    token,\n                    line,\n                    col;\n                if (tokenStream.peek() == Tokens.STAR && this.options.starHack){\n                    tokenStream.get();\n                    token = tokenStream.token();\n                    hack = token.value;\n                    line = token.startLine;\n                    col = token.startCol;\n                }\n\n                if(tokenStream.match(Tokens.IDENT)){\n                    token = tokenStream.token();\n                    tokenValue = token.value;\n                    if (tokenValue.charAt(0) == \"_\" && this.options.underscoreHack){\n                        hack = \"_\";\n                        tokenValue = tokenValue.substring(1);\n                    }\n\n                    value = new PropertyName(tokenValue, hack, (line||token.startLine), (col||token.startCol));\n                    this._readWhitespace();\n                }\n\n                return value;\n            },\n            _ruleset: function(){\n\n                var tokenStream = this._tokenStream,\n                    tt,\n                    selectors;\n                try {\n                    selectors = this._selectors_group();\n                } catch (ex){\n                    if (ex instanceof SyntaxError && !this.options.strict){\n                        this.fire({\n                            type:       \"error\",\n                            error:      ex,\n                            message:    ex.message,\n                            line:       ex.line,\n                            col:        ex.col\n                        });\n                        tt = tokenStream.advance([Tokens.RBRACE]);\n                        if (tt == Tokens.RBRACE){\n                        } else {\n                            throw ex;\n                        }\n\n                    } else {\n                        throw ex;\n                    }\n                    return true;\n                }\n                if (selectors){\n\n                    this.fire({\n                        type:       \"startrule\",\n                        selectors:  selectors,\n                        line:       selectors[0].line,\n                        col:        selectors[0].col\n                    });\n\n                    this._readDeclarations(true);\n\n                    this.fire({\n                        type:       \"endrule\",\n                        selectors:  selectors,\n                        line:       selectors[0].line,\n                        col:        selectors[0].col\n                    });\n\n                }\n\n                return selectors;\n\n            },\n            _selectors_group: function(){\n                var tokenStream = this._tokenStream,\n                    selectors   = [],\n                    selector;\n\n                selector = this._selector();\n                if (selector !== null){\n\n                    selectors.push(selector);\n                    while(tokenStream.match(Tokens.COMMA)){\n                        this._readWhitespace();\n                        selector = this._selector();\n                        if (selector !== null){\n                            selectors.push(selector);\n                        } else {\n                            this._unexpectedToken(tokenStream.LT(1));\n                        }\n                    }\n                }\n\n                return selectors.length ? selectors : null;\n            },\n            _selector: function(){\n\n                var tokenStream = this._tokenStream,\n                    selector    = [],\n                    nextSelector = null,\n                    combinator  = null,\n                    ws          = null;\n                nextSelector = this._simple_selector_sequence();\n                if (nextSelector === null){\n                    return null;\n                }\n\n                selector.push(nextSelector);\n\n                do {\n                    combinator = this._combinator();\n\n                    if (combinator !== null){\n                        selector.push(combinator);\n                        nextSelector = this._simple_selector_sequence();\n                        if (nextSelector === null){\n                            this._unexpectedToken(tokenStream.LT(1));\n                        } else {\n                            selector.push(nextSelector);\n                        }\n                    } else {\n                        if (this._readWhitespace()){\n                            ws = new Combinator(tokenStream.token().value, tokenStream.token().startLine, tokenStream.token().startCol);\n                            combinator = this._combinator();\n                            nextSelector = this._simple_selector_sequence();\n                            if (nextSelector === null){\n                                if (combinator !== null){\n                                    this._unexpectedToken(tokenStream.LT(1));\n                                }\n                            } else {\n\n                                if (combinator !== null){\n                                    selector.push(combinator);\n                                } else {\n                                    selector.push(ws);\n                                }\n\n                                selector.push(nextSelector);\n                            }\n                        } else {\n                            break;\n                        }\n\n                    }\n                } while(true);\n\n                return new Selector(selector, selector[0].line, selector[0].col);\n            },\n            _simple_selector_sequence: function(){\n\n                var tokenStream = this._tokenStream,\n                    elementName = null,\n                    modifiers   = [],\n                    selectorText= \"\",\n                    components  = [\n                        function(){\n                            return tokenStream.match(Tokens.HASH) ?\n                                    new SelectorSubPart(tokenStream.token().value, \"id\", tokenStream.token().startLine, tokenStream.token().startCol) :\n                                    null;\n                        },\n                        this._class,\n                        this._attrib,\n                        this._pseudo,\n                        this._negation\n                    ],\n                    i           = 0,\n                    len         = components.length,\n                    component   = null,\n                    found       = false,\n                    line,\n                    col;\n                line = tokenStream.LT(1).startLine;\n                col = tokenStream.LT(1).startCol;\n\n                elementName = this._type_selector();\n                if (!elementName){\n                    elementName = this._universal();\n                }\n\n                if (elementName !== null){\n                    selectorText += elementName;\n                }\n\n                while(true){\n                    if (tokenStream.peek() === Tokens.S){\n                        break;\n                    }\n                    while(i < len && component === null){\n                        component = components[i++].call(this);\n                    }\n\n                    if (component === null){\n                        if (selectorText === \"\"){\n                            return null;\n                        } else {\n                            break;\n                        }\n                    } else {\n                        i = 0;\n                        modifiers.push(component);\n                        selectorText += component.toString();\n                        component = null;\n                    }\n                }\n\n\n                return selectorText !== \"\" ?\n                        new SelectorPart(elementName, modifiers, selectorText, line, col) :\n                        null;\n            },\n            _type_selector: function(){\n\n                var tokenStream = this._tokenStream,\n                    ns          = this._namespace_prefix(),\n                    elementName = this._element_name();\n\n                if (!elementName){\n                    if (ns){\n                        tokenStream.unget();\n                        if (ns.length > 1){\n                            tokenStream.unget();\n                        }\n                    }\n\n                    return null;\n                } else {\n                    if (ns){\n                        elementName.text = ns + elementName.text;\n                        elementName.col -= ns.length;\n                    }\n                    return elementName;\n                }\n            },\n            _class: function(){\n\n                var tokenStream = this._tokenStream,\n                    token;\n\n                if (tokenStream.match(Tokens.DOT)){\n                    tokenStream.mustMatch(Tokens.IDENT);\n                    token = tokenStream.token();\n                    return new SelectorSubPart(\".\" + token.value, \"class\", token.startLine, token.startCol - 1);\n                } else {\n                    return null;\n                }\n\n            },\n            _element_name: function(){\n\n                var tokenStream = this._tokenStream,\n                    token;\n\n                if (tokenStream.match(Tokens.IDENT)){\n                    token = tokenStream.token();\n                    return new SelectorSubPart(token.value, \"elementName\", token.startLine, token.startCol);\n\n                } else {\n                    return null;\n                }\n            },\n            _namespace_prefix: function(){\n                var tokenStream = this._tokenStream,\n                    value       = \"\";\n                if (tokenStream.LA(1) === Tokens.PIPE || tokenStream.LA(2) === Tokens.PIPE){\n\n                    if(tokenStream.match([Tokens.IDENT, Tokens.STAR])){\n                        value += tokenStream.token().value;\n                    }\n\n                    tokenStream.mustMatch(Tokens.PIPE);\n                    value += \"|\";\n\n                }\n\n                return value.length ? value : null;\n            },\n            _universal: function(){\n                var tokenStream = this._tokenStream,\n                    value       = \"\",\n                    ns;\n\n                ns = this._namespace_prefix();\n                if(ns){\n                    value += ns;\n                }\n\n                if(tokenStream.match(Tokens.STAR)){\n                    value += \"*\";\n                }\n\n                return value.length ? value : null;\n\n           },\n            _attrib: function(){\n\n                var tokenStream = this._tokenStream,\n                    value       = null,\n                    ns,\n                    token;\n\n                if (tokenStream.match(Tokens.LBRACKET)){\n                    token = tokenStream.token();\n                    value = token.value;\n                    value += this._readWhitespace();\n\n                    ns = this._namespace_prefix();\n\n                    if (ns){\n                        value += ns;\n                    }\n\n                    tokenStream.mustMatch(Tokens.IDENT);\n                    value += tokenStream.token().value;\n                    value += this._readWhitespace();\n\n                    if(tokenStream.match([Tokens.PREFIXMATCH, Tokens.SUFFIXMATCH, Tokens.SUBSTRINGMATCH,\n                            Tokens.EQUALS, Tokens.INCLUDES, Tokens.DASHMATCH])){\n\n                        value += tokenStream.token().value;\n                        value += this._readWhitespace();\n\n                        tokenStream.mustMatch([Tokens.IDENT, Tokens.STRING]);\n                        value += tokenStream.token().value;\n                        value += this._readWhitespace();\n                    }\n\n                    tokenStream.mustMatch(Tokens.RBRACKET);\n\n                    return new SelectorSubPart(value + \"]\", \"attribute\", token.startLine, token.startCol);\n                } else {\n                    return null;\n                }\n            },\n            _pseudo: function(){\n\n                var tokenStream = this._tokenStream,\n                    pseudo      = null,\n                    colons      = \":\",\n                    line,\n                    col;\n\n                if (tokenStream.match(Tokens.COLON)){\n\n                    if (tokenStream.match(Tokens.COLON)){\n                        colons += \":\";\n                    }\n\n                    if (tokenStream.match(Tokens.IDENT)){\n                        pseudo = tokenStream.token().value;\n                        line = tokenStream.token().startLine;\n                        col = tokenStream.token().startCol - colons.length;\n                    } else if (tokenStream.peek() == Tokens.FUNCTION){\n                        line = tokenStream.LT(1).startLine;\n                        col = tokenStream.LT(1).startCol - colons.length;\n                        pseudo = this._functional_pseudo();\n                    }\n\n                    if (pseudo){\n                        pseudo = new SelectorSubPart(colons + pseudo, \"pseudo\", line, col);\n                    }\n                }\n\n                return pseudo;\n            },\n            _functional_pseudo: function(){\n\n                var tokenStream = this._tokenStream,\n                    value = null;\n\n                if(tokenStream.match(Tokens.FUNCTION)){\n                    value = tokenStream.token().value;\n                    value += this._readWhitespace();\n                    value += this._expression();\n                    tokenStream.mustMatch(Tokens.RPAREN);\n                    value += \")\";\n                }\n\n                return value;\n            },\n            _expression: function(){\n\n                var tokenStream = this._tokenStream,\n                    value       = \"\";\n\n                while(tokenStream.match([Tokens.PLUS, Tokens.MINUS, Tokens.DIMENSION,\n                        Tokens.NUMBER, Tokens.STRING, Tokens.IDENT, Tokens.LENGTH,\n                        Tokens.FREQ, Tokens.ANGLE, Tokens.TIME,\n                        Tokens.RESOLUTION, Tokens.SLASH])){\n\n                    value += tokenStream.token().value;\n                    value += this._readWhitespace();\n                }\n\n                return value.length ? value : null;\n\n            },\n            _negation: function(){\n\n                var tokenStream = this._tokenStream,\n                    line,\n                    col,\n                    value       = \"\",\n                    arg,\n                    subpart     = null;\n\n                if (tokenStream.match(Tokens.NOT)){\n                    value = tokenStream.token().value;\n                    line = tokenStream.token().startLine;\n                    col = tokenStream.token().startCol;\n                    value += this._readWhitespace();\n                    arg = this._negation_arg();\n                    value += arg;\n                    value += this._readWhitespace();\n                    tokenStream.match(Tokens.RPAREN);\n                    value += tokenStream.token().value;\n\n                    subpart = new SelectorSubPart(value, \"not\", line, col);\n                    subpart.args.push(arg);\n                }\n\n                return subpart;\n            },\n            _negation_arg: function(){\n\n                var tokenStream = this._tokenStream,\n                    args        = [\n                        this._type_selector,\n                        this._universal,\n                        function(){\n                            return tokenStream.match(Tokens.HASH) ?\n                                    new SelectorSubPart(tokenStream.token().value, \"id\", tokenStream.token().startLine, tokenStream.token().startCol) :\n                                    null;\n                        },\n                        this._class,\n                        this._attrib,\n                        this._pseudo\n                    ],\n                    arg         = null,\n                    i           = 0,\n                    len         = args.length,\n                    elementName,\n                    line,\n                    col,\n                    part;\n\n                line = tokenStream.LT(1).startLine;\n                col = tokenStream.LT(1).startCol;\n\n                while(i < len && arg === null){\n\n                    arg = args[i].call(this);\n                    i++;\n                }\n                if (arg === null){\n                    this._unexpectedToken(tokenStream.LT(1));\n                }\n                if (arg.type == \"elementName\"){\n                    part = new SelectorPart(arg, [], arg.toString(), line, col);\n                } else {\n                    part = new SelectorPart(null, [arg], arg.toString(), line, col);\n                }\n\n                return part;\n            },\n\n            _declaration: function(){\n\n                var tokenStream = this._tokenStream,\n                    property    = null,\n                    expr        = null,\n                    prio        = null,\n                    error       = null,\n                    invalid     = null,\n                    propertyName= \"\";\n\n                property = this._property();\n                if (property !== null){\n\n                    tokenStream.mustMatch(Tokens.COLON);\n                    this._readWhitespace();\n\n                    expr = this._expr();\n                    if (!expr || expr.length === 0){\n                        this._unexpectedToken(tokenStream.LT(1));\n                    }\n\n                    prio = this._prio();\n                    propertyName = property.toString();\n                    if (this.options.starHack && property.hack == \"*\" ||\n                            this.options.underscoreHack && property.hack == \"_\") {\n\n                        propertyName = property.text;\n                    }\n\n                    try {\n                        this._validateProperty(propertyName, expr);\n                    } catch (ex) {\n                        invalid = ex;\n                    }\n\n                    this.fire({\n                        type:       \"property\",\n                        property:   property,\n                        value:      expr,\n                        important:  prio,\n                        line:       property.line,\n                        col:        property.col,\n                        invalid:    invalid\n                    });\n\n                    return true;\n                } else {\n                    return false;\n                }\n            },\n\n            _prio: function(){\n\n                var tokenStream = this._tokenStream,\n                    result      = tokenStream.match(Tokens.IMPORTANT_SYM);\n\n                this._readWhitespace();\n                return result;\n            },\n\n            _expr: function(inFunction){\n\n                var tokenStream = this._tokenStream,\n                    values      = [],\n                    value       = null,\n                    operator    = null;\n\n                value = this._term(inFunction);\n                if (value !== null){\n\n                    values.push(value);\n\n                    do {\n                        operator = this._operator(inFunction);\n                        if (operator){\n                            values.push(operator);\n                        } /*else {\n                            values.push(new PropertyValue(valueParts, valueParts[0].line, valueParts[0].col));\n                            valueParts = [];\n                        }*/\n\n                        value = this._term(inFunction);\n\n                        if (value === null){\n                            break;\n                        } else {\n                            values.push(value);\n                        }\n                    } while(true);\n                }\n\n                return values.length > 0 ? new PropertyValue(values, values[0].line, values[0].col) : null;\n            },\n\n            _term: function(inFunction){\n\n                var tokenStream = this._tokenStream,\n                    unary       = null,\n                    value       = null,\n                    endChar     = null,\n                    token,\n                    line,\n                    col;\n                unary = this._unary_operator();\n                if (unary !== null){\n                    line = tokenStream.token().startLine;\n                    col = tokenStream.token().startCol;\n                }\n                if (tokenStream.peek() == Tokens.IE_FUNCTION && this.options.ieFilters){\n\n                    value = this._ie_function();\n                    if (unary === null){\n                        line = tokenStream.token().startLine;\n                        col = tokenStream.token().startCol;\n                    }\n                } else if (inFunction && tokenStream.match([Tokens.LPAREN, Tokens.LBRACE, Tokens.LBRACKET])){\n\n                    token = tokenStream.token();\n                    endChar = token.endChar;\n                    value = token.value + this._expr(inFunction).text;\n                    if (unary === null){\n                        line = tokenStream.token().startLine;\n                        col = tokenStream.token().startCol;\n                    }\n                    tokenStream.mustMatch(Tokens.type(endChar));\n                    value += endChar;\n                    this._readWhitespace();\n                } else if (tokenStream.match([Tokens.NUMBER, Tokens.PERCENTAGE, Tokens.LENGTH,\n                        Tokens.ANGLE, Tokens.TIME,\n                        Tokens.FREQ, Tokens.STRING, Tokens.IDENT, Tokens.URI, Tokens.UNICODE_RANGE])){\n\n                    value = tokenStream.token().value;\n                    if (unary === null){\n                        line = tokenStream.token().startLine;\n                        col = tokenStream.token().startCol;\n                    }\n                    this._readWhitespace();\n                } else {\n                    token = this._hexcolor();\n                    if (token === null){\n                        if (unary === null){\n                            line = tokenStream.LT(1).startLine;\n                            col = tokenStream.LT(1).startCol;\n                        }\n                        if (value === null){\n                            if (tokenStream.LA(3) == Tokens.EQUALS && this.options.ieFilters){\n                                value = this._ie_function();\n                            } else {\n                                value = this._function();\n                            }\n                        }\n\n                    } else {\n                        value = token.value;\n                        if (unary === null){\n                            line = token.startLine;\n                            col = token.startCol;\n                        }\n                    }\n\n                }\n\n                return value !== null ?\n                        new PropertyValuePart(unary !== null ? unary + value : value, line, col) :\n                        null;\n\n            },\n\n            _function: function(){\n\n                var tokenStream = this._tokenStream,\n                    functionText = null,\n                    expr        = null,\n                    lt;\n\n                if (tokenStream.match(Tokens.FUNCTION)){\n                    functionText = tokenStream.token().value;\n                    this._readWhitespace();\n                    expr = this._expr(true);\n                    functionText += expr;\n                    if (this.options.ieFilters && tokenStream.peek() == Tokens.EQUALS){\n                        do {\n\n                            if (this._readWhitespace()){\n                                functionText += tokenStream.token().value;\n                            }\n                            if (tokenStream.LA(0) == Tokens.COMMA){\n                                functionText += tokenStream.token().value;\n                            }\n\n                            tokenStream.match(Tokens.IDENT);\n                            functionText += tokenStream.token().value;\n\n                            tokenStream.match(Tokens.EQUALS);\n                            functionText += tokenStream.token().value;\n                            lt = tokenStream.peek();\n                            while(lt != Tokens.COMMA && lt != Tokens.S && lt != Tokens.RPAREN){\n                                tokenStream.get();\n                                functionText += tokenStream.token().value;\n                                lt = tokenStream.peek();\n                            }\n                        } while(tokenStream.match([Tokens.COMMA, Tokens.S]));\n                    }\n\n                    tokenStream.match(Tokens.RPAREN);\n                    functionText += \")\";\n                    this._readWhitespace();\n                }\n\n                return functionText;\n            },\n\n            _ie_function: function(){\n\n                var tokenStream = this._tokenStream,\n                    functionText = null,\n                    expr        = null,\n                    lt;\n                if (tokenStream.match([Tokens.IE_FUNCTION, Tokens.FUNCTION])){\n                    functionText = tokenStream.token().value;\n\n                    do {\n\n                        if (this._readWhitespace()){\n                            functionText += tokenStream.token().value;\n                        }\n                        if (tokenStream.LA(0) == Tokens.COMMA){\n                            functionText += tokenStream.token().value;\n                        }\n\n                        tokenStream.match(Tokens.IDENT);\n                        functionText += tokenStream.token().value;\n\n                        tokenStream.match(Tokens.EQUALS);\n                        functionText += tokenStream.token().value;\n                        lt = tokenStream.peek();\n                        while(lt != Tokens.COMMA && lt != Tokens.S && lt != Tokens.RPAREN){\n                            tokenStream.get();\n                            functionText += tokenStream.token().value;\n                            lt = tokenStream.peek();\n                        }\n                    } while(tokenStream.match([Tokens.COMMA, Tokens.S]));\n\n                    tokenStream.match(Tokens.RPAREN);\n                    functionText += \")\";\n                    this._readWhitespace();\n                }\n\n                return functionText;\n            },\n\n            _hexcolor: function(){\n\n                var tokenStream = this._tokenStream,\n                    token = null,\n                    color;\n\n                if(tokenStream.match(Tokens.HASH)){\n\n                    token = tokenStream.token();\n                    color = token.value;\n                    if (!/#[a-f0-9]{3,6}/i.test(color)){\n                        throw new SyntaxError(\"Expected a hex color but found '\" + color + \"' at line \" + token.startLine + \", col \" + token.startCol + \".\", token.startLine, token.startCol);\n                    }\n                    this._readWhitespace();\n                }\n\n                return token;\n            },\n\n            _keyframes: function(){\n                var tokenStream = this._tokenStream,\n                    token,\n                    tt,\n                    name,\n                    prefix = \"\";\n\n                tokenStream.mustMatch(Tokens.KEYFRAMES_SYM);\n                token = tokenStream.token();\n                if (/^@\\-([^\\-]+)\\-/.test(token.value)) {\n                    prefix = RegExp.$1;\n                }\n\n                this._readWhitespace();\n                name = this._keyframe_name();\n\n                this._readWhitespace();\n                tokenStream.mustMatch(Tokens.LBRACE);\n\n                this.fire({\n                    type:   \"startkeyframes\",\n                    name:   name,\n                    prefix: prefix,\n                    line:   token.startLine,\n                    col:    token.startCol\n                });\n\n                this._readWhitespace();\n                tt = tokenStream.peek();\n                while(tt == Tokens.IDENT || tt == Tokens.PERCENTAGE) {\n                    this._keyframe_rule();\n                    this._readWhitespace();\n                    tt = tokenStream.peek();\n                }\n\n                this.fire({\n                    type:   \"endkeyframes\",\n                    name:   name,\n                    prefix: prefix,\n                    line:   token.startLine,\n                    col:    token.startCol\n                });\n\n                this._readWhitespace();\n                tokenStream.mustMatch(Tokens.RBRACE);\n\n            },\n\n            _keyframe_name: function(){\n                var tokenStream = this._tokenStream,\n                    token;\n\n                tokenStream.mustMatch([Tokens.IDENT, Tokens.STRING]);\n                return SyntaxUnit.fromToken(tokenStream.token());\n            },\n\n            _keyframe_rule: function(){\n                var tokenStream = this._tokenStream,\n                    token,\n                    keyList = this._key_list();\n\n                this.fire({\n                    type:   \"startkeyframerule\",\n                    keys:   keyList,\n                    line:   keyList[0].line,\n                    col:    keyList[0].col\n                });\n\n                this._readDeclarations(true);\n\n                this.fire({\n                    type:   \"endkeyframerule\",\n                    keys:   keyList,\n                    line:   keyList[0].line,\n                    col:    keyList[0].col\n                });\n\n            },\n\n            _key_list: function(){\n                var tokenStream = this._tokenStream,\n                    token,\n                    key,\n                    keyList = [];\n                keyList.push(this._key());\n\n                this._readWhitespace();\n\n                while(tokenStream.match(Tokens.COMMA)){\n                    this._readWhitespace();\n                    keyList.push(this._key());\n                    this._readWhitespace();\n                }\n\n                return keyList;\n            },\n\n            _key: function(){\n\n                var tokenStream = this._tokenStream,\n                    token;\n\n                if (tokenStream.match(Tokens.PERCENTAGE)){\n                    return SyntaxUnit.fromToken(tokenStream.token());\n                } else if (tokenStream.match(Tokens.IDENT)){\n                    token = tokenStream.token();\n\n                    if (/from|to/i.test(token.value)){\n                        return SyntaxUnit.fromToken(token);\n                    }\n\n                    tokenStream.unget();\n                }\n                this._unexpectedToken(tokenStream.LT(1));\n            },\n            _skipCruft: function(){\n                while(this._tokenStream.match([Tokens.S, Tokens.CDO, Tokens.CDC])){\n                }\n            },\n            _readDeclarations: function(checkStart, readMargins){\n                var tokenStream = this._tokenStream,\n                    tt;\n\n\n                this._readWhitespace();\n\n                if (checkStart){\n                    tokenStream.mustMatch(Tokens.LBRACE);\n                }\n\n                this._readWhitespace();\n\n                try {\n\n                    while(true){\n\n                        if (tokenStream.match(Tokens.SEMICOLON) || (readMargins && this._margin())){\n                        } else if (this._declaration()){\n                            if (!tokenStream.match(Tokens.SEMICOLON)){\n                                break;\n                            }\n                        } else {\n                            break;\n                        }\n                        this._readWhitespace();\n                    }\n\n                    tokenStream.mustMatch(Tokens.RBRACE);\n                    this._readWhitespace();\n\n                } catch (ex) {\n                    if (ex instanceof SyntaxError && !this.options.strict){\n                        this.fire({\n                            type:       \"error\",\n                            error:      ex,\n                            message:    ex.message,\n                            line:       ex.line,\n                            col:        ex.col\n                        });\n                        tt = tokenStream.advance([Tokens.SEMICOLON, Tokens.RBRACE]);\n                        if (tt == Tokens.SEMICOLON){\n                            this._readDeclarations(false, readMargins);\n                        } else if (tt != Tokens.RBRACE){\n                            throw ex;\n                        }\n\n                    } else {\n                        throw ex;\n                    }\n                }\n\n            },\n            _readWhitespace: function(){\n\n                var tokenStream = this._tokenStream,\n                    ws = \"\";\n\n                while(tokenStream.match(Tokens.S)){\n                    ws += tokenStream.token().value;\n                }\n\n                return ws;\n            },\n            _unexpectedToken: function(token){\n                throw new SyntaxError(\"Unexpected token '\" + token.value + \"' at line \" + token.startLine + \", col \" + token.startCol + \".\", token.startLine, token.startCol);\n            },\n            _verifyEnd: function(){\n                if (this._tokenStream.LA(1) != Tokens.EOF){\n                    this._unexpectedToken(this._tokenStream.LT(1));\n                }\n            },\n            _validateProperty: function(property, value){\n                Validation.validate(property, value);\n            },\n\n            parse: function(input){\n                this._tokenStream = new TokenStream(input, Tokens);\n                this._stylesheet();\n            },\n\n            parseStyleSheet: function(input){\n                return this.parse(input);\n            },\n\n            parseMediaQuery: function(input){\n                this._tokenStream = new TokenStream(input, Tokens);\n                var result = this._media_query();\n                this._verifyEnd();\n                return result;\n            },\n            parsePropertyValue: function(input){\n\n                this._tokenStream = new TokenStream(input, Tokens);\n                this._readWhitespace();\n\n                var result = this._expr();\n                this._readWhitespace();\n                this._verifyEnd();\n                return result;\n            },\n            parseRule: function(input){\n                this._tokenStream = new TokenStream(input, Tokens);\n                this._readWhitespace();\n\n                var result = this._ruleset();\n                this._readWhitespace();\n                this._verifyEnd();\n                return result;\n            },\n            parseSelector: function(input){\n\n                this._tokenStream = new TokenStream(input, Tokens);\n                this._readWhitespace();\n\n                var result = this._selector();\n                this._readWhitespace();\n                this._verifyEnd();\n                return result;\n            },\n            parseStyleAttribute: function(input){\n                input += \"}\"; // for error recovery in _readDeclarations()\n                this._tokenStream = new TokenStream(input, Tokens);\n                this._readDeclarations();\n            }\n        };\n    for (prop in additions){\n        if (additions.hasOwnProperty(prop)){\n            proto[prop] = additions[prop];\n        }\n    }\n\n    return proto;\n}();\nvar Properties = {\n    \"align-items\"                   : \"flex-start | flex-end | center | baseline | stretch\",\n    \"align-content\"                 : \"flex-start | flex-end | center | space-between | space-around | stretch\",\n    \"align-self\"                    : \"auto | flex-start | flex-end | center | baseline | stretch\",\n    \"-webkit-align-items\"           : \"flex-start | flex-end | center | baseline | stretch\",\n    \"-webkit-align-content\"         : \"flex-start | flex-end | center | space-between | space-around | stretch\",\n    \"-webkit-align-self\"            : \"auto | flex-start | flex-end | center | baseline | stretch\",\n    \"alignment-adjust\"              : \"auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical | <percentage> | <length>\",\n    \"alignment-baseline\"            : \"baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical\",\n    \"animation\"                     : 1,\n    \"animation-delay\"               : { multi: \"<time>\", comma: true },\n    \"animation-direction\"           : { multi: \"normal | reverse | alternate | alternate-reverse\", comma: true },\n    \"animation-duration\"            : { multi: \"<time>\", comma: true },\n    \"animation-fill-mode\"           : { multi: \"none | forwards | backwards | both\", comma: true },\n    \"animation-iteration-count\"     : { multi: \"<number> | infinite\", comma: true },\n    \"animation-name\"                : { multi: \"none | <ident>\", comma: true },\n    \"animation-play-state\"          : { multi: \"running | paused\", comma: true },\n    \"animation-timing-function\"     : 1,\n    \"-moz-animation-delay\"               : { multi: \"<time>\", comma: true },\n    \"-moz-animation-direction\"           : { multi: \"normal | reverse | alternate | alternate-reverse\", comma: true },\n    \"-moz-animation-duration\"            : { multi: \"<time>\", comma: true },\n    \"-moz-animation-iteration-count\"     : { multi: \"<number> | infinite\", comma: true },\n    \"-moz-animation-name\"                : { multi: \"none | <ident>\", comma: true },\n    \"-moz-animation-play-state\"          : { multi: \"running | paused\", comma: true },\n\n    \"-ms-animation-delay\"               : { multi: \"<time>\", comma: true },\n    \"-ms-animation-direction\"           : { multi: \"normal | reverse | alternate | alternate-reverse\", comma: true },\n    \"-ms-animation-duration\"            : { multi: \"<time>\", comma: true },\n    \"-ms-animation-iteration-count\"     : { multi: \"<number> | infinite\", comma: true },\n    \"-ms-animation-name\"                : { multi: \"none | <ident>\", comma: true },\n    \"-ms-animation-play-state\"          : { multi: \"running | paused\", comma: true },\n\n    \"-webkit-animation-delay\"               : { multi: \"<time>\", comma: true },\n    \"-webkit-animation-direction\"           : { multi: \"normal | reverse | alternate | alternate-reverse\", comma: true },\n    \"-webkit-animation-duration\"            : { multi: \"<time>\", comma: true },\n    \"-webkit-animation-fill-mode\"           : { multi: \"none | forwards | backwards | both\", comma: true },\n    \"-webkit-animation-iteration-count\"     : { multi: \"<number> | infinite\", comma: true },\n    \"-webkit-animation-name\"                : { multi: \"none | <ident>\", comma: true },\n    \"-webkit-animation-play-state\"          : { multi: \"running | paused\", comma: true },\n\n    \"-o-animation-delay\"               : { multi: \"<time>\", comma: true },\n    \"-o-animation-direction\"           : { multi: \"normal | reverse | alternate | alternate-reverse\", comma: true },\n    \"-o-animation-duration\"            : { multi: \"<time>\", comma: true },\n    \"-o-animation-iteration-count\"     : { multi: \"<number> | infinite\", comma: true },\n    \"-o-animation-name\"                : { multi: \"none | <ident>\", comma: true },\n    \"-o-animation-play-state\"          : { multi: \"running | paused\", comma: true },\n\n    \"appearance\"                    : \"icon | window | desktop | workspace | document | tooltip | dialog | button | push-button | hyperlink | radio-button | checkbox | menu-item | tab | menu | menubar | pull-down-menu | pop-up-menu | list-menu | radio-group | checkbox-group | outline-tree | range | field | combo-box | signature | password | normal | none | inherit\",\n    \"azimuth\"                       : function (expression) {\n        var simple      = \"<angle> | leftwards | rightwards | inherit\",\n            direction   = \"left-side | far-left | left | center-left | center | center-right | right | far-right | right-side\",\n            behind      = false,\n            valid       = false,\n            part;\n\n        if (!ValidationTypes.isAny(expression, simple)) {\n            if (ValidationTypes.isAny(expression, \"behind\")) {\n                behind = true;\n                valid = true;\n            }\n\n            if (ValidationTypes.isAny(expression, direction)) {\n                valid = true;\n                if (!behind) {\n                    ValidationTypes.isAny(expression, \"behind\");\n                }\n            }\n        }\n\n        if (expression.hasNext()) {\n            part = expression.next();\n            if (valid) {\n                throw new ValidationError(\"Expected end of value but found '\" + part + \"'.\", part.line, part.col);\n            } else {\n                throw new ValidationError(\"Expected (<'azimuth'>) but found '\" + part + \"'.\", part.line, part.col);\n            }\n        }\n    },\n    \"backface-visibility\"           : \"visible | hidden\",\n    \"background\"                    : 1,\n    \"background-attachment\"         : { multi: \"<attachment>\", comma: true },\n    \"background-clip\"               : { multi: \"<box>\", comma: true },\n    \"background-color\"              : \"<color> | inherit\",\n    \"background-image\"              : { multi: \"<bg-image>\", comma: true },\n    \"background-origin\"             : { multi: \"<box>\", comma: true },\n    \"background-position\"           : { multi: \"<bg-position>\", comma: true },\n    \"background-repeat\"             : { multi: \"<repeat-style>\" },\n    \"background-size\"               : { multi: \"<bg-size>\", comma: true },\n    \"baseline-shift\"                : \"baseline | sub | super | <percentage> | <length>\",\n    \"behavior\"                      : 1,\n    \"binding\"                       : 1,\n    \"bleed\"                         : \"<length>\",\n    \"bookmark-label\"                : \"<content> | <attr> | <string>\",\n    \"bookmark-level\"                : \"none | <integer>\",\n    \"bookmark-state\"                : \"open | closed\",\n    \"bookmark-target\"               : \"none | <uri> | <attr>\",\n    \"border\"                        : \"<border-width> || <border-style> || <color>\",\n    \"border-bottom\"                 : \"<border-width> || <border-style> || <color>\",\n    \"border-bottom-color\"           : \"<color> | inherit\",\n    \"border-bottom-left-radius\"     :  \"<x-one-radius>\",\n    \"border-bottom-right-radius\"    :  \"<x-one-radius>\",\n    \"border-bottom-style\"           : \"<border-style>\",\n    \"border-bottom-width\"           : \"<border-width>\",\n    \"border-collapse\"               : \"collapse | separate | inherit\",\n    \"border-color\"                  : { multi: \"<color> | inherit\", max: 4 },\n    \"border-image\"                  : 1,\n    \"border-image-outset\"           : { multi: \"<length> | <number>\", max: 4 },\n    \"border-image-repeat\"           : { multi: \"stretch | repeat | round\", max: 2 },\n    \"border-image-slice\"            : function(expression) {\n\n        var valid   = false,\n            numeric = \"<number> | <percentage>\",\n            fill    = false,\n            count   = 0,\n            max     = 4,\n            part;\n\n        if (ValidationTypes.isAny(expression, \"fill\")) {\n            fill = true;\n            valid = true;\n        }\n\n        while (expression.hasNext() && count < max) {\n            valid = ValidationTypes.isAny(expression, numeric);\n            if (!valid) {\n                break;\n            }\n            count++;\n        }\n\n\n        if (!fill) {\n            ValidationTypes.isAny(expression, \"fill\");\n        } else {\n            valid = true;\n        }\n\n        if (expression.hasNext()) {\n            part = expression.next();\n            if (valid) {\n                throw new ValidationError(\"Expected end of value but found '\" + part + \"'.\", part.line, part.col);\n            } else {\n                throw new ValidationError(\"Expected ([<number> | <percentage>]{1,4} && fill?) but found '\" + part + \"'.\", part.line, part.col);\n            }\n        }\n    },\n    \"border-image-source\"           : \"<image> | none\",\n    \"border-image-width\"            : { multi: \"<length> | <percentage> | <number> | auto\", max: 4 },\n    \"border-left\"                   : \"<border-width> || <border-style> || <color>\",\n    \"border-left-color\"             : \"<color> | inherit\",\n    \"border-left-style\"             : \"<border-style>\",\n    \"border-left-width\"             : \"<border-width>\",\n    \"border-radius\"                 : function(expression) {\n\n        var valid   = false,\n            simple = \"<length> | <percentage> | inherit\",\n            slash   = false,\n            fill    = false,\n            count   = 0,\n            max     = 8,\n            part;\n\n        while (expression.hasNext() && count < max) {\n            valid = ValidationTypes.isAny(expression, simple);\n            if (!valid) {\n\n                if (expression.peek() == \"/\" && count > 0 && !slash) {\n                    slash = true;\n                    max = count + 5;\n                    expression.next();\n                } else {\n                    break;\n                }\n            }\n            count++;\n        }\n\n        if (expression.hasNext()) {\n            part = expression.next();\n            if (valid) {\n                throw new ValidationError(\"Expected end of value but found '\" + part + \"'.\", part.line, part.col);\n            } else {\n                throw new ValidationError(\"Expected (<'border-radius'>) but found '\" + part + \"'.\", part.line, part.col);\n            }\n        }\n    },\n    \"border-right\"                  : \"<border-width> || <border-style> || <color>\",\n    \"border-right-color\"            : \"<color> | inherit\",\n    \"border-right-style\"            : \"<border-style>\",\n    \"border-right-width\"            : \"<border-width>\",\n    \"border-spacing\"                : { multi: \"<length> | inherit\", max: 2 },\n    \"border-style\"                  : { multi: \"<border-style>\", max: 4 },\n    \"border-top\"                    : \"<border-width> || <border-style> || <color>\",\n    \"border-top-color\"              : \"<color> | inherit\",\n    \"border-top-left-radius\"        : \"<x-one-radius>\",\n    \"border-top-right-radius\"       : \"<x-one-radius>\",\n    \"border-top-style\"              : \"<border-style>\",\n    \"border-top-width\"              : \"<border-width>\",\n    \"border-width\"                  : { multi: \"<border-width>\", max: 4 },\n    \"bottom\"                        : \"<margin-width> | inherit\",\n    \"-moz-box-align\"                : \"start | end | center | baseline | stretch\",\n    \"-moz-box-decoration-break\"     : \"slice |clone\",\n    \"-moz-box-direction\"            : \"normal | reverse | inherit\",\n    \"-moz-box-flex\"                 : \"<number>\",\n    \"-moz-box-flex-group\"           : \"<integer>\",\n    \"-moz-box-lines\"                : \"single | multiple\",\n    \"-moz-box-ordinal-group\"        : \"<integer>\",\n    \"-moz-box-orient\"               : \"horizontal | vertical | inline-axis | block-axis | inherit\",\n    \"-moz-box-pack\"                 : \"start | end | center | justify\",\n    \"-webkit-box-align\"             : \"start | end | center | baseline | stretch\",\n    \"-webkit-box-decoration-break\"  : \"slice |clone\",\n    \"-webkit-box-direction\"         : \"normal | reverse | inherit\",\n    \"-webkit-box-flex\"              : \"<number>\",\n    \"-webkit-box-flex-group\"        : \"<integer>\",\n    \"-webkit-box-lines\"             : \"single | multiple\",\n    \"-webkit-box-ordinal-group\"     : \"<integer>\",\n    \"-webkit-box-orient\"            : \"horizontal | vertical | inline-axis | block-axis | inherit\",\n    \"-webkit-box-pack\"              : \"start | end | center | justify\",\n    \"box-shadow\"                    : function (expression) {\n        var result      = false,\n            part;\n\n        if (!ValidationTypes.isAny(expression, \"none\")) {\n            Validation.multiProperty(\"<shadow>\", expression, true, Infinity);\n        } else {\n            if (expression.hasNext()) {\n                part = expression.next();\n                throw new ValidationError(\"Expected end of value but found '\" + part + \"'.\", part.line, part.col);\n            }\n        }\n    },\n    \"box-sizing\"                    : \"content-box | border-box | inherit\",\n    \"break-after\"                   : \"auto | always | avoid | left | right | page | column | avoid-page | avoid-column\",\n    \"break-before\"                  : \"auto | always | avoid | left | right | page | column | avoid-page | avoid-column\",\n    \"break-inside\"                  : \"auto | avoid | avoid-page | avoid-column\",\n    \"caption-side\"                  : \"top | bottom | inherit\",\n    \"clear\"                         : \"none | right | left | both | inherit\",\n    \"clip\"                          : 1,\n    \"color\"                         : \"<color> | inherit\",\n    \"color-profile\"                 : 1,\n    \"column-count\"                  : \"<integer> | auto\",                      //http://www.w3.org/TR/css3-multicol/\n    \"column-fill\"                   : \"auto | balance\",\n    \"column-gap\"                    : \"<length> | normal\",\n    \"column-rule\"                   : \"<border-width> || <border-style> || <color>\",\n    \"column-rule-color\"             : \"<color>\",\n    \"column-rule-style\"             : \"<border-style>\",\n    \"column-rule-width\"             : \"<border-width>\",\n    \"column-span\"                   : \"none | all\",\n    \"column-width\"                  : \"<length> | auto\",\n    \"columns\"                       : 1,\n    \"content\"                       : 1,\n    \"counter-increment\"             : 1,\n    \"counter-reset\"                 : 1,\n    \"crop\"                          : \"<shape> | auto\",\n    \"cue\"                           : \"cue-after | cue-before | inherit\",\n    \"cue-after\"                     : 1,\n    \"cue-before\"                    : 1,\n    \"cursor\"                        : 1,\n    \"direction\"                     : \"ltr | rtl | inherit\",\n    \"display\"                       : \"inline | block | list-item | inline-block | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | grid | inline-grid | none | inherit | -moz-box | -moz-inline-block | -moz-inline-box | -moz-inline-grid | -moz-inline-stack | -moz-inline-table | -moz-grid | -moz-grid-group | -moz-grid-line | -moz-groupbox | -moz-deck | -moz-popup | -moz-stack | -moz-marker | -webkit-box | -webkit-inline-box | -ms-flexbox | -ms-inline-flexbox | flex | -webkit-flex | inline-flex | -webkit-inline-flex\",\n    \"dominant-baseline\"             : 1,\n    \"drop-initial-after-adjust\"     : \"central | middle | after-edge | text-after-edge | ideographic | alphabetic | mathematical | <percentage> | <length>\",\n    \"drop-initial-after-align\"      : \"baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical\",\n    \"drop-initial-before-adjust\"    : \"before-edge | text-before-edge | central | middle | hanging | mathematical | <percentage> | <length>\",\n    \"drop-initial-before-align\"     : \"caps-height | baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical\",\n    \"drop-initial-size\"             : \"auto | line | <length> | <percentage>\",\n    \"drop-initial-value\"            : \"initial | <integer>\",\n    \"elevation\"                     : \"<angle> | below | level | above | higher | lower | inherit\",\n    \"empty-cells\"                   : \"show | hide | inherit\",\n    \"filter\"                        : 1,\n    \"fit\"                           : \"fill | hidden | meet | slice\",\n    \"fit-position\"                  : 1,\n    \"flex\"                          : \"<flex>\",\n    \"flex-basis\"                    : \"<width>\",\n    \"flex-direction\"                : \"row | row-reverse | column | column-reverse\",\n    \"flex-flow\"                     : \"<flex-direction> || <flex-wrap>\",\n    \"flex-grow\"                     : \"<number>\",\n    \"flex-shrink\"                   : \"<number>\",\n    \"flex-wrap\"                     : \"nowrap | wrap | wrap-reverse\",\n    \"-webkit-flex\"                  : \"<flex>\",\n    \"-webkit-flex-basis\"            : \"<width>\",\n    \"-webkit-flex-direction\"        : \"row | row-reverse | column | column-reverse\",\n    \"-webkit-flex-flow\"             : \"<flex-direction> || <flex-wrap>\",\n    \"-webkit-flex-grow\"             : \"<number>\",\n    \"-webkit-flex-shrink\"           : \"<number>\",\n    \"-webkit-flex-wrap\"             : \"nowrap | wrap | wrap-reverse\",\n    \"-ms-flex\"                      : \"<flex>\",\n    \"-ms-flex-align\"                : \"start | end | center | stretch | baseline\",\n    \"-ms-flex-direction\"            : \"row | row-reverse | column | column-reverse | inherit\",\n    \"-ms-flex-order\"                : \"<number>\",\n    \"-ms-flex-pack\"                 : \"start | end | center | justify\",\n    \"-ms-flex-wrap\"                 : \"nowrap | wrap | wrap-reverse\",\n    \"float\"                         : \"left | right | none | inherit\",\n    \"float-offset\"                  : 1,\n    \"font\"                          : 1,\n    \"font-family\"                   : 1,\n    \"font-size\"                     : \"<absolute-size> | <relative-size> | <length> | <percentage> | inherit\",\n    \"font-size-adjust\"              : \"<number> | none | inherit\",\n    \"font-stretch\"                  : \"normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | inherit\",\n    \"font-style\"                    : \"normal | italic | oblique | inherit\",\n    \"font-variant\"                  : \"normal | small-caps | inherit\",\n    \"font-weight\"                   : \"normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit\",\n    \"grid-cell-stacking\"            : \"columns | rows | layer\",\n    \"grid-column\"                   : 1,\n    \"grid-columns\"                  : 1,\n    \"grid-column-align\"             : \"start | end | center | stretch\",\n    \"grid-column-sizing\"            : 1,\n    \"grid-column-span\"              : \"<integer>\",\n    \"grid-flow\"                     : \"none | rows | columns\",\n    \"grid-layer\"                    : \"<integer>\",\n    \"grid-row\"                      : 1,\n    \"grid-rows\"                     : 1,\n    \"grid-row-align\"                : \"start | end | center | stretch\",\n    \"grid-row-span\"                 : \"<integer>\",\n    \"grid-row-sizing\"               : 1,\n    \"hanging-punctuation\"           : 1,\n    \"height\"                        : \"<margin-width> | <content-sizing> | inherit\",\n    \"hyphenate-after\"               : \"<integer> | auto\",\n    \"hyphenate-before\"              : \"<integer> | auto\",\n    \"hyphenate-character\"           : \"<string> | auto\",\n    \"hyphenate-lines\"               : \"no-limit | <integer>\",\n    \"hyphenate-resource\"            : 1,\n    \"hyphens\"                       : \"none | manual | auto\",\n    \"icon\"                          : 1,\n    \"image-orientation\"             : \"angle | auto\",\n    \"image-rendering\"               : 1,\n    \"image-resolution\"              : 1,\n    \"inline-box-align\"              : \"initial | last | <integer>\",\n    \"justify-content\"               : \"flex-start | flex-end | center | space-between | space-around\",\n    \"-webkit-justify-content\"       : \"flex-start | flex-end | center | space-between | space-around\",\n    \"left\"                          : \"<margin-width> | inherit\",\n    \"letter-spacing\"                : \"<length> | normal | inherit\",\n    \"line-height\"                   : \"<number> | <length> | <percentage> | normal | inherit\",\n    \"line-break\"                    : \"auto | loose | normal | strict\",\n    \"line-stacking\"                 : 1,\n    \"line-stacking-ruby\"            : \"exclude-ruby | include-ruby\",\n    \"line-stacking-shift\"           : \"consider-shifts | disregard-shifts\",\n    \"line-stacking-strategy\"        : \"inline-line-height | block-line-height | max-height | grid-height\",\n    \"list-style\"                    : 1,\n    \"list-style-image\"              : \"<uri> | none | inherit\",\n    \"list-style-position\"           : \"inside | outside | inherit\",\n    \"list-style-type\"               : \"disc | circle | square | decimal | decimal-leading-zero | lower-roman | upper-roman | lower-greek | lower-latin | upper-latin | armenian | georgian | lower-alpha | upper-alpha | none | inherit\",\n    \"margin\"                        : { multi: \"<margin-width> | inherit\", max: 4 },\n    \"margin-bottom\"                 : \"<margin-width> | inherit\",\n    \"margin-left\"                   : \"<margin-width> | inherit\",\n    \"margin-right\"                  : \"<margin-width> | inherit\",\n    \"margin-top\"                    : \"<margin-width> | inherit\",\n    \"mark\"                          : 1,\n    \"mark-after\"                    : 1,\n    \"mark-before\"                   : 1,\n    \"marks\"                         : 1,\n    \"marquee-direction\"             : 1,\n    \"marquee-play-count\"            : 1,\n    \"marquee-speed\"                 : 1,\n    \"marquee-style\"                 : 1,\n    \"max-height\"                    : \"<length> | <percentage> | <content-sizing> | none | inherit\",\n    \"max-width\"                     : \"<length> | <percentage> | <content-sizing> | none | inherit\",\n    \"min-height\"                    : \"<length> | <percentage> | <content-sizing> | contain-floats | -moz-contain-floats | -webkit-contain-floats | inherit\",\n    \"min-width\"                     : \"<length> | <percentage> | <content-sizing> | contain-floats | -moz-contain-floats | -webkit-contain-floats | inherit\",\n    \"move-to\"                       : 1,\n    \"nav-down\"                      : 1,\n    \"nav-index\"                     : 1,\n    \"nav-left\"                      : 1,\n    \"nav-right\"                     : 1,\n    \"nav-up\"                        : 1,\n    \"opacity\"                       : \"<number> | inherit\",\n    \"order\"                         : \"<integer>\",\n    \"-webkit-order\"                 : \"<integer>\",\n    \"orphans\"                       : \"<integer> | inherit\",\n    \"outline\"                       : 1,\n    \"outline-color\"                 : \"<color> | invert | inherit\",\n    \"outline-offset\"                : 1,\n    \"outline-style\"                 : \"<border-style> | inherit\",\n    \"outline-width\"                 : \"<border-width> | inherit\",\n    \"overflow\"                      : \"visible | hidden | scroll | auto | inherit\",\n    \"overflow-style\"                : 1,\n    \"overflow-wrap\"                 : \"normal | break-word\",\n    \"overflow-x\"                    : 1,\n    \"overflow-y\"                    : 1,\n    \"padding\"                       : { multi: \"<padding-width> | inherit\", max: 4 },\n    \"padding-bottom\"                : \"<padding-width> | inherit\",\n    \"padding-left\"                  : \"<padding-width> | inherit\",\n    \"padding-right\"                 : \"<padding-width> | inherit\",\n    \"padding-top\"                   : \"<padding-width> | inherit\",\n    \"page\"                          : 1,\n    \"page-break-after\"              : \"auto | always | avoid | left | right | inherit\",\n    \"page-break-before\"             : \"auto | always | avoid | left | right | inherit\",\n    \"page-break-inside\"             : \"auto | avoid | inherit\",\n    \"page-policy\"                   : 1,\n    \"pause\"                         : 1,\n    \"pause-after\"                   : 1,\n    \"pause-before\"                  : 1,\n    \"perspective\"                   : 1,\n    \"perspective-origin\"            : 1,\n    \"phonemes\"                      : 1,\n    \"pitch\"                         : 1,\n    \"pitch-range\"                   : 1,\n    \"play-during\"                   : 1,\n    \"pointer-events\"                : \"auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit\",\n    \"position\"                      : \"static | relative | absolute | fixed | inherit\",\n    \"presentation-level\"            : 1,\n    \"punctuation-trim\"              : 1,\n    \"quotes\"                        : 1,\n    \"rendering-intent\"              : 1,\n    \"resize\"                        : 1,\n    \"rest\"                          : 1,\n    \"rest-after\"                    : 1,\n    \"rest-before\"                   : 1,\n    \"richness\"                      : 1,\n    \"right\"                         : \"<margin-width> | inherit\",\n    \"rotation\"                      : 1,\n    \"rotation-point\"                : 1,\n    \"ruby-align\"                    : 1,\n    \"ruby-overhang\"                 : 1,\n    \"ruby-position\"                 : 1,\n    \"ruby-span\"                     : 1,\n    \"size\"                          : 1,\n    \"speak\"                         : \"normal | none | spell-out | inherit\",\n    \"speak-header\"                  : \"once | always | inherit\",\n    \"speak-numeral\"                 : \"digits | continuous | inherit\",\n    \"speak-punctuation\"             : \"code | none | inherit\",\n    \"speech-rate\"                   : 1,\n    \"src\"                           : 1,\n    \"stress\"                        : 1,\n    \"string-set\"                    : 1,\n\n    \"table-layout\"                  : \"auto | fixed | inherit\",\n    \"tab-size\"                      : \"<integer> | <length>\",\n    \"target\"                        : 1,\n    \"target-name\"                   : 1,\n    \"target-new\"                    : 1,\n    \"target-position\"               : 1,\n    \"text-align\"                    : \"left | right | center | justify | inherit\" ,\n    \"text-align-last\"               : 1,\n    \"text-decoration\"               : 1,\n    \"text-emphasis\"                 : 1,\n    \"text-height\"                   : 1,\n    \"text-indent\"                   : \"<length> | <percentage> | inherit\",\n    \"text-justify\"                  : \"auto | none | inter-word | inter-ideograph | inter-cluster | distribute | kashida\",\n    \"text-outline\"                  : 1,\n    \"text-overflow\"                 : 1,\n    \"text-rendering\"                : \"auto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit\",\n    \"text-shadow\"                   : 1,\n    \"text-transform\"                : \"capitalize | uppercase | lowercase | none | inherit\",\n    \"text-wrap\"                     : \"normal | none | avoid\",\n    \"top\"                           : \"<margin-width> | inherit\",\n    \"-ms-touch-action\"              : \"auto | none | pan-x | pan-y\",\n    \"touch-action\"                  : \"auto | none | pan-x | pan-y\",\n    \"transform\"                     : 1,\n    \"transform-origin\"              : 1,\n    \"transform-style\"               : 1,\n    \"transition\"                    : 1,\n    \"transition-delay\"              : 1,\n    \"transition-duration\"           : 1,\n    \"transition-property\"           : 1,\n    \"transition-timing-function\"    : 1,\n    \"unicode-bidi\"                  : \"normal | embed | isolate | bidi-override | isolate-override | plaintext | inherit\",\n    \"user-modify\"                   : \"read-only | read-write | write-only | inherit\",\n    \"user-select\"                   : \"none | text | toggle | element | elements | all | inherit\",\n    \"vertical-align\"                : \"auto | use-script | baseline | sub | super | top | text-top | central | middle | bottom | text-bottom | <percentage> | <length>\",\n    \"visibility\"                    : \"visible | hidden | collapse | inherit\",\n    \"voice-balance\"                 : 1,\n    \"voice-duration\"                : 1,\n    \"voice-family\"                  : 1,\n    \"voice-pitch\"                   : 1,\n    \"voice-pitch-range\"             : 1,\n    \"voice-rate\"                    : 1,\n    \"voice-stress\"                  : 1,\n    \"voice-volume\"                  : 1,\n    \"volume\"                        : 1,\n    \"white-space\"                   : \"normal | pre | nowrap | pre-wrap | pre-line | inherit | -pre-wrap | -o-pre-wrap | -moz-pre-wrap | -hp-pre-wrap\", //http://perishablepress.com/wrapping-content/\n    \"white-space-collapse\"          : 1,\n    \"widows\"                        : \"<integer> | inherit\",\n    \"width\"                         : \"<length> | <percentage> | <content-sizing> | auto | inherit\",\n    \"word-break\"                    : \"normal | keep-all | break-all\",\n    \"word-spacing\"                  : \"<length> | normal | inherit\",\n    \"word-wrap\"                     : \"normal | break-word\",\n    \"writing-mode\"                  : \"horizontal-tb | vertical-rl | vertical-lr | lr-tb | rl-tb | tb-rl | bt-rl | tb-lr | bt-lr | lr-bt | rl-bt | lr | rl | tb | inherit\",\n    \"z-index\"                       : \"<integer> | auto | inherit\",\n    \"zoom\"                          : \"<number> | <percentage> | normal\"\n};\nfunction PropertyName(text, hack, line, col){\n\n    SyntaxUnit.call(this, text, line, col, Parser.PROPERTY_NAME_TYPE);\n    this.hack = hack;\n\n}\n\nPropertyName.prototype = new SyntaxUnit();\nPropertyName.prototype.constructor = PropertyName;\nPropertyName.prototype.toString = function(){\n    return (this.hack ? this.hack : \"\") + this.text;\n};\nfunction PropertyValue(parts, line, col){\n\n    SyntaxUnit.call(this, parts.join(\" \"), line, col, Parser.PROPERTY_VALUE_TYPE);\n    this.parts = parts;\n\n}\n\nPropertyValue.prototype = new SyntaxUnit();\nPropertyValue.prototype.constructor = PropertyValue;\nfunction PropertyValueIterator(value){\n    this._i = 0;\n    this._parts = value.parts;\n    this._marks = [];\n    this.value = value;\n\n}\nPropertyValueIterator.prototype.count = function(){\n    return this._parts.length;\n};\nPropertyValueIterator.prototype.isFirst = function(){\n    return this._i === 0;\n};\nPropertyValueIterator.prototype.hasNext = function(){\n    return (this._i < this._parts.length);\n};\nPropertyValueIterator.prototype.mark = function(){\n    this._marks.push(this._i);\n};\nPropertyValueIterator.prototype.peek = function(count){\n    return this.hasNext() ? this._parts[this._i + (count || 0)] : null;\n};\nPropertyValueIterator.prototype.next = function(){\n    return this.hasNext() ? this._parts[this._i++] : null;\n};\nPropertyValueIterator.prototype.previous = function(){\n    return this._i > 0 ? this._parts[--this._i] : null;\n};\nPropertyValueIterator.prototype.restore = function(){\n    if (this._marks.length){\n        this._i = this._marks.pop();\n    }\n};\nfunction PropertyValuePart(text, line, col){\n\n    SyntaxUnit.call(this, text, line, col, Parser.PROPERTY_VALUE_PART_TYPE);\n    this.type = \"unknown\";\n\n    var temp;\n    if (/^([+\\-]?[\\d\\.]+)([a-z]+)$/i.test(text)){  //dimension\n        this.type = \"dimension\";\n        this.value = +RegExp.$1;\n        this.units = RegExp.$2;\n        switch(this.units.toLowerCase()){\n\n            case \"em\":\n            case \"rem\":\n            case \"ex\":\n            case \"px\":\n            case \"cm\":\n            case \"mm\":\n            case \"in\":\n            case \"pt\":\n            case \"pc\":\n            case \"ch\":\n            case \"vh\":\n            case \"vw\":\n            case \"vmax\":\n            case \"vmin\":\n                this.type = \"length\";\n                break;\n\n            case \"deg\":\n            case \"rad\":\n            case \"grad\":\n                this.type = \"angle\";\n                break;\n\n            case \"ms\":\n            case \"s\":\n                this.type = \"time\";\n                break;\n\n            case \"hz\":\n            case \"khz\":\n                this.type = \"frequency\";\n                break;\n\n            case \"dpi\":\n            case \"dpcm\":\n                this.type = \"resolution\";\n                break;\n\n        }\n\n    } else if (/^([+\\-]?[\\d\\.]+)%$/i.test(text)){  //percentage\n        this.type = \"percentage\";\n        this.value = +RegExp.$1;\n    } else if (/^([+\\-]?\\d+)$/i.test(text)){  //integer\n        this.type = \"integer\";\n        this.value = +RegExp.$1;\n    } else if (/^([+\\-]?[\\d\\.]+)$/i.test(text)){  //number\n        this.type = \"number\";\n        this.value = +RegExp.$1;\n\n    } else if (/^#([a-f0-9]{3,6})/i.test(text)){  //hexcolor\n        this.type = \"color\";\n        temp = RegExp.$1;\n        if (temp.length == 3){\n            this.red    = parseInt(temp.charAt(0)+temp.charAt(0),16);\n            this.green  = parseInt(temp.charAt(1)+temp.charAt(1),16);\n            this.blue   = parseInt(temp.charAt(2)+temp.charAt(2),16);\n        } else {\n            this.red    = parseInt(temp.substring(0,2),16);\n            this.green  = parseInt(temp.substring(2,4),16);\n            this.blue   = parseInt(temp.substring(4,6),16);\n        }\n    } else if (/^rgb\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)/i.test(text)){ //rgb() color with absolute numbers\n        this.type   = \"color\";\n        this.red    = +RegExp.$1;\n        this.green  = +RegExp.$2;\n        this.blue   = +RegExp.$3;\n    } else if (/^rgb\\(\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*\\)/i.test(text)){ //rgb() color with percentages\n        this.type   = \"color\";\n        this.red    = +RegExp.$1 * 255 / 100;\n        this.green  = +RegExp.$2 * 255 / 100;\n        this.blue   = +RegExp.$3 * 255 / 100;\n    } else if (/^rgba\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d\\.]+)\\s*\\)/i.test(text)){ //rgba() color with absolute numbers\n        this.type   = \"color\";\n        this.red    = +RegExp.$1;\n        this.green  = +RegExp.$2;\n        this.blue   = +RegExp.$3;\n        this.alpha  = +RegExp.$4;\n    } else if (/^rgba\\(\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*,\\s*([\\d\\.]+)\\s*\\)/i.test(text)){ //rgba() color with percentages\n        this.type   = \"color\";\n        this.red    = +RegExp.$1 * 255 / 100;\n        this.green  = +RegExp.$2 * 255 / 100;\n        this.blue   = +RegExp.$3 * 255 / 100;\n        this.alpha  = +RegExp.$4;\n    } else if (/^hsl\\(\\s*(\\d+)\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*\\)/i.test(text)){ //hsl()\n        this.type   = \"color\";\n        this.hue    = +RegExp.$1;\n        this.saturation = +RegExp.$2 / 100;\n        this.lightness  = +RegExp.$3 / 100;\n    } else if (/^hsla\\(\\s*(\\d+)\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*,\\s*([\\d\\.]+)\\s*\\)/i.test(text)){ //hsla() color with percentages\n        this.type   = \"color\";\n        this.hue    = +RegExp.$1;\n        this.saturation = +RegExp.$2 / 100;\n        this.lightness  = +RegExp.$3 / 100;\n        this.alpha  = +RegExp.$4;\n    } else if (/^url\\([\"']?([^\\)\"']+)[\"']?\\)/i.test(text)){ //URI\n        this.type   = \"uri\";\n        this.uri    = RegExp.$1;\n    } else if (/^([^\\(]+)\\(/i.test(text)){\n        this.type   = \"function\";\n        this.name   = RegExp.$1;\n        this.value  = text;\n    } else if (/^[\"'][^\"']*[\"']/.test(text)){    //string\n        this.type   = \"string\";\n        this.value  = eval(text);\n    } else if (Colors[text.toLowerCase()]){  //named color\n        this.type   = \"color\";\n        temp        = Colors[text.toLowerCase()].substring(1);\n        this.red    = parseInt(temp.substring(0,2),16);\n        this.green  = parseInt(temp.substring(2,4),16);\n        this.blue   = parseInt(temp.substring(4,6),16);\n    } else if (/^[\\,\\/]$/.test(text)){\n        this.type   = \"operator\";\n        this.value  = text;\n    } else if (/^[a-z\\-_\\u0080-\\uFFFF][a-z0-9\\-_\\u0080-\\uFFFF]*$/i.test(text)){\n        this.type   = \"identifier\";\n        this.value  = text;\n    }\n\n}\n\nPropertyValuePart.prototype = new SyntaxUnit();\nPropertyValuePart.prototype.constructor = PropertyValuePart;\nPropertyValuePart.fromToken = function(token){\n    return new PropertyValuePart(token.value, token.startLine, token.startCol);\n};\nvar Pseudos = {\n    \":first-letter\": 1,\n    \":first-line\":   1,\n    \":before\":       1,\n    \":after\":        1\n};\n\nPseudos.ELEMENT = 1;\nPseudos.CLASS = 2;\n\nPseudos.isElement = function(pseudo){\n    return pseudo.indexOf(\"::\") === 0 || Pseudos[pseudo.toLowerCase()] == Pseudos.ELEMENT;\n};\nfunction Selector(parts, line, col){\n\n    SyntaxUnit.call(this, parts.join(\" \"), line, col, Parser.SELECTOR_TYPE);\n    this.parts = parts;\n    this.specificity = Specificity.calculate(this);\n\n}\n\nSelector.prototype = new SyntaxUnit();\nSelector.prototype.constructor = Selector;\nfunction SelectorPart(elementName, modifiers, text, line, col){\n\n    SyntaxUnit.call(this, text, line, col, Parser.SELECTOR_PART_TYPE);\n    this.elementName = elementName;\n    this.modifiers = modifiers;\n\n}\n\nSelectorPart.prototype = new SyntaxUnit();\nSelectorPart.prototype.constructor = SelectorPart;\nfunction SelectorSubPart(text, type, line, col){\n\n    SyntaxUnit.call(this, text, line, col, Parser.SELECTOR_SUB_PART_TYPE);\n    this.type = type;\n    this.args = [];\n\n}\n\nSelectorSubPart.prototype = new SyntaxUnit();\nSelectorSubPart.prototype.constructor = SelectorSubPart;\nfunction Specificity(a, b, c, d){\n    this.a = a;\n    this.b = b;\n    this.c = c;\n    this.d = d;\n}\n\nSpecificity.prototype = {\n    constructor: Specificity,\n    compare: function(other){\n        var comps = [\"a\", \"b\", \"c\", \"d\"],\n            i, len;\n\n        for (i=0, len=comps.length; i < len; i++){\n            if (this[comps[i]] < other[comps[i]]){\n                return -1;\n            } else if (this[comps[i]] > other[comps[i]]){\n                return 1;\n            }\n        }\n\n        return 0;\n    },\n    valueOf: function(){\n        return (this.a * 1000) + (this.b * 100) + (this.c * 10) + this.d;\n    },\n    toString: function(){\n        return this.a + \",\" + this.b + \",\" + this.c + \",\" + this.d;\n    }\n\n};\nSpecificity.calculate = function(selector){\n\n    var i, len,\n        part,\n        b=0, c=0, d=0;\n\n    function updateValues(part){\n\n        var i, j, len, num,\n            elementName = part.elementName ? part.elementName.text : \"\",\n            modifier;\n\n        if (elementName && elementName.charAt(elementName.length-1) != \"*\") {\n            d++;\n        }\n\n        for (i=0, len=part.modifiers.length; i < len; i++){\n            modifier = part.modifiers[i];\n            switch(modifier.type){\n                case \"class\":\n                case \"attribute\":\n                    c++;\n                    break;\n\n                case \"id\":\n                    b++;\n                    break;\n\n                case \"pseudo\":\n                    if (Pseudos.isElement(modifier.text)){\n                        d++;\n                    } else {\n                        c++;\n                    }\n                    break;\n\n                case \"not\":\n                    for (j=0, num=modifier.args.length; j < num; j++){\n                        updateValues(modifier.args[j]);\n                    }\n            }\n         }\n    }\n\n    for (i=0, len=selector.parts.length; i < len; i++){\n        part = selector.parts[i];\n\n        if (part instanceof SelectorPart){\n            updateValues(part);\n        }\n    }\n\n    return new Specificity(0, b, c, d);\n};\n\nvar h = /^[0-9a-fA-F]$/,\n    nonascii = /^[\\u0080-\\uFFFF]$/,\n    nl = /\\n|\\r\\n|\\r|\\f/;\n\n\nfunction isHexDigit(c){\n    return c !== null && h.test(c);\n}\n\nfunction isDigit(c){\n    return c !== null && /\\d/.test(c);\n}\n\nfunction isWhitespace(c){\n    return c !== null && /\\s/.test(c);\n}\n\nfunction isNewLine(c){\n    return c !== null && nl.test(c);\n}\n\nfunction isNameStart(c){\n    return c !== null && (/[a-z_\\u0080-\\uFFFF\\\\]/i.test(c));\n}\n\nfunction isNameChar(c){\n    return c !== null && (isNameStart(c) || /[0-9\\-\\\\]/.test(c));\n}\n\nfunction isIdentStart(c){\n    return c !== null && (isNameStart(c) || /\\-\\\\/.test(c));\n}\n\nfunction mix(receiver, supplier){\n    for (var prop in supplier){\n        if (supplier.hasOwnProperty(prop)){\n            receiver[prop] = supplier[prop];\n        }\n    }\n    return receiver;\n}\nfunction TokenStream(input){\n    TokenStreamBase.call(this, input, Tokens);\n}\n\nTokenStream.prototype = mix(new TokenStreamBase(), {\n    _getToken: function(channel){\n\n        var c,\n            reader = this._reader,\n            token   = null,\n            startLine   = reader.getLine(),\n            startCol    = reader.getCol();\n\n        c = reader.read();\n\n\n        while(c){\n            switch(c){\n                case \"/\":\n\n                    if(reader.peek() == \"*\"){\n                        token = this.commentToken(c, startLine, startCol);\n                    } else {\n                        token = this.charToken(c, startLine, startCol);\n                    }\n                    break;\n                case \"|\":\n                case \"~\":\n                case \"^\":\n                case \"$\":\n                case \"*\":\n                    if(reader.peek() == \"=\"){\n                        token = this.comparisonToken(c, startLine, startCol);\n                    } else {\n                        token = this.charToken(c, startLine, startCol);\n                    }\n                    break;\n                case \"\\\"\":\n                case \"'\":\n                    token = this.stringToken(c, startLine, startCol);\n                    break;\n                case \"#\":\n                    if (isNameChar(reader.peek())){\n                        token = this.hashToken(c, startLine, startCol);\n                    } else {\n                        token = this.charToken(c, startLine, startCol);\n                    }\n                    break;\n                case \".\":\n                    if (isDigit(reader.peek())){\n                        token = this.numberToken(c, startLine, startCol);\n                    } else {\n                        token = this.charToken(c, startLine, startCol);\n                    }\n                    break;\n                case \"-\":\n                    if (reader.peek() == \"-\"){  //could be closing HTML-style comment\n                        token = this.htmlCommentEndToken(c, startLine, startCol);\n                    } else if (isNameStart(reader.peek())){\n                        token = this.identOrFunctionToken(c, startLine, startCol);\n                    } else {\n                        token = this.charToken(c, startLine, startCol);\n                    }\n                    break;\n                case \"!\":\n                    token = this.importantToken(c, startLine, startCol);\n                    break;\n                case \"@\":\n                    token = this.atRuleToken(c, startLine, startCol);\n                    break;\n                case \":\":\n                    token = this.notToken(c, startLine, startCol);\n                    break;\n                case \"<\":\n                    token = this.htmlCommentStartToken(c, startLine, startCol);\n                    break;\n                case \"U\":\n                case \"u\":\n                    if (reader.peek() == \"+\"){\n                        token = this.unicodeRangeToken(c, startLine, startCol);\n                        break;\n                    }\n                default:\n                    if (isDigit(c)){\n                        token = this.numberToken(c, startLine, startCol);\n                    } else\n                    if (isWhitespace(c)){\n                        token = this.whitespaceToken(c, startLine, startCol);\n                    } else\n                    if (isIdentStart(c)){\n                        token = this.identOrFunctionToken(c, startLine, startCol);\n                    } else\n                    {\n                        token = this.charToken(c, startLine, startCol);\n                    }\n\n\n\n\n\n\n            }\n            break;\n        }\n\n        if (!token && c === null){\n            token = this.createToken(Tokens.EOF,null,startLine,startCol);\n        }\n\n        return token;\n    },\n    createToken: function(tt, value, startLine, startCol, options){\n        var reader = this._reader;\n        options = options || {};\n\n        return {\n            value:      value,\n            type:       tt,\n            channel:    options.channel,\n            endChar:    options.endChar,\n            hide:       options.hide || false,\n            startLine:  startLine,\n            startCol:   startCol,\n            endLine:    reader.getLine(),\n            endCol:     reader.getCol()\n        };\n    },\n    atRuleToken: function(first, startLine, startCol){\n        var rule    = first,\n            reader  = this._reader,\n            tt      = Tokens.CHAR,\n            valid   = false,\n            ident,\n            c;\n        reader.mark();\n        ident = this.readName();\n        rule = first + ident;\n        tt = Tokens.type(rule.toLowerCase());\n        if (tt == Tokens.CHAR || tt == Tokens.UNKNOWN){\n            if (rule.length > 1){\n                tt = Tokens.UNKNOWN_SYM;\n            } else {\n                tt = Tokens.CHAR;\n                rule = first;\n                reader.reset();\n            }\n        }\n\n        return this.createToken(tt, rule, startLine, startCol);\n    },\n    charToken: function(c, startLine, startCol){\n        var tt = Tokens.type(c);\n        var opts = {};\n\n        if (tt == -1){\n            tt = Tokens.CHAR;\n        } else {\n            opts.endChar = Tokens[tt].endChar;\n        }\n\n        return this.createToken(tt, c, startLine, startCol, opts);\n    },\n    commentToken: function(first, startLine, startCol){\n        var reader  = this._reader,\n            comment = this.readComment(first);\n\n        return this.createToken(Tokens.COMMENT, comment, startLine, startCol);\n    },\n    comparisonToken: function(c, startLine, startCol){\n        var reader  = this._reader,\n            comparison  = c + reader.read(),\n            tt      = Tokens.type(comparison) || Tokens.CHAR;\n\n        return this.createToken(tt, comparison, startLine, startCol);\n    },\n    hashToken: function(first, startLine, startCol){\n        var reader  = this._reader,\n            name    = this.readName(first);\n\n        return this.createToken(Tokens.HASH, name, startLine, startCol);\n    },\n    htmlCommentStartToken: function(first, startLine, startCol){\n        var reader      = this._reader,\n            text        = first;\n\n        reader.mark();\n        text += reader.readCount(3);\n\n        if (text == \"<!--\"){\n            return this.createToken(Tokens.CDO, text, startLine, startCol);\n        } else {\n            reader.reset();\n            return this.charToken(first, startLine, startCol);\n        }\n    },\n    htmlCommentEndToken: function(first, startLine, startCol){\n        var reader      = this._reader,\n            text        = first;\n\n        reader.mark();\n        text += reader.readCount(2);\n\n        if (text == \"-->\"){\n            return this.createToken(Tokens.CDC, text, startLine, startCol);\n        } else {\n            reader.reset();\n            return this.charToken(first, startLine, startCol);\n        }\n    },\n    identOrFunctionToken: function(first, startLine, startCol){\n        var reader  = this._reader,\n            ident   = this.readName(first),\n            tt      = Tokens.IDENT;\n        if (reader.peek() == \"(\"){\n            ident += reader.read();\n            if (ident.toLowerCase() == \"url(\"){\n                tt = Tokens.URI;\n                ident = this.readURI(ident);\n                if (ident.toLowerCase() == \"url(\"){\n                    tt = Tokens.FUNCTION;\n                }\n            } else {\n                tt = Tokens.FUNCTION;\n            }\n        } else if (reader.peek() == \":\"){  //might be an IE function\n            if (ident.toLowerCase() == \"progid\"){\n                ident += reader.readTo(\"(\");\n                tt = Tokens.IE_FUNCTION;\n            }\n        }\n\n        return this.createToken(tt, ident, startLine, startCol);\n    },\n    importantToken: function(first, startLine, startCol){\n        var reader      = this._reader,\n            important   = first,\n            tt          = Tokens.CHAR,\n            temp,\n            c;\n\n        reader.mark();\n        c = reader.read();\n\n        while(c){\n            if (c == \"/\"){\n                if (reader.peek() != \"*\"){\n                    break;\n                } else {\n                    temp = this.readComment(c);\n                    if (temp === \"\"){    //broken!\n                        break;\n                    }\n                }\n            } else if (isWhitespace(c)){\n                important += c + this.readWhitespace();\n            } else if (/i/i.test(c)){\n                temp = reader.readCount(8);\n                if (/mportant/i.test(temp)){\n                    important += c + temp;\n                    tt = Tokens.IMPORTANT_SYM;\n\n                }\n                break;  //we're done\n            } else {\n                break;\n            }\n\n            c = reader.read();\n        }\n\n        if (tt == Tokens.CHAR){\n            reader.reset();\n            return this.charToken(first, startLine, startCol);\n        } else {\n            return this.createToken(tt, important, startLine, startCol);\n        }\n\n\n    },\n    notToken: function(first, startLine, startCol){\n        var reader      = this._reader,\n            text        = first;\n\n        reader.mark();\n        text += reader.readCount(4);\n\n        if (text.toLowerCase() == \":not(\"){\n            return this.createToken(Tokens.NOT, text, startLine, startCol);\n        } else {\n            reader.reset();\n            return this.charToken(first, startLine, startCol);\n        }\n    },\n    numberToken: function(first, startLine, startCol){\n        var reader  = this._reader,\n            value   = this.readNumber(first),\n            ident,\n            tt      = Tokens.NUMBER,\n            c       = reader.peek();\n\n        if (isIdentStart(c)){\n            ident = this.readName(reader.read());\n            value += ident;\n\n            if (/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vmax$|^vmin$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(ident)){\n                tt = Tokens.LENGTH;\n            } else if (/^deg|^rad$|^grad$/i.test(ident)){\n                tt = Tokens.ANGLE;\n            } else if (/^ms$|^s$/i.test(ident)){\n                tt = Tokens.TIME;\n            } else if (/^hz$|^khz$/i.test(ident)){\n                tt = Tokens.FREQ;\n            } else if (/^dpi$|^dpcm$/i.test(ident)){\n                tt = Tokens.RESOLUTION;\n            } else {\n                tt = Tokens.DIMENSION;\n            }\n\n        } else if (c == \"%\"){\n            value += reader.read();\n            tt = Tokens.PERCENTAGE;\n        }\n\n        return this.createToken(tt, value, startLine, startCol);\n    },\n    stringToken: function(first, startLine, startCol){\n        var delim   = first,\n            string  = first,\n            reader  = this._reader,\n            prev    = first,\n            tt      = Tokens.STRING,\n            c       = reader.read();\n\n        while(c){\n            string += c;\n            if (c == delim && prev != \"\\\\\"){\n                break;\n            }\n            if (isNewLine(reader.peek()) && c != \"\\\\\"){\n                tt = Tokens.INVALID;\n                break;\n            }\n            prev = c;\n            c = reader.read();\n        }\n        if (c === null){\n            tt = Tokens.INVALID;\n        }\n\n        return this.createToken(tt, string, startLine, startCol);\n    },\n\n    unicodeRangeToken: function(first, startLine, startCol){\n        var reader  = this._reader,\n            value   = first,\n            temp,\n            tt      = Tokens.CHAR;\n        if (reader.peek() == \"+\"){\n            reader.mark();\n            value += reader.read();\n            value += this.readUnicodeRangePart(true);\n            if (value.length == 2){\n                reader.reset();\n            } else {\n\n                tt = Tokens.UNICODE_RANGE;\n                if (value.indexOf(\"?\") == -1){\n\n                    if (reader.peek() == \"-\"){\n                        reader.mark();\n                        temp = reader.read();\n                        temp += this.readUnicodeRangePart(false);\n                        if (temp.length == 1){\n                            reader.reset();\n                        } else {\n                            value += temp;\n                        }\n                    }\n\n                }\n            }\n        }\n\n        return this.createToken(tt, value, startLine, startCol);\n    },\n    whitespaceToken: function(first, startLine, startCol){\n        var reader  = this._reader,\n            value   = first + this.readWhitespace();\n        return this.createToken(Tokens.S, value, startLine, startCol);\n    },\n\n    readUnicodeRangePart: function(allowQuestionMark){\n        var reader  = this._reader,\n            part = \"\",\n            c       = reader.peek();\n        while(isHexDigit(c) && part.length < 6){\n            reader.read();\n            part += c;\n            c = reader.peek();\n        }\n        if (allowQuestionMark){\n            while(c == \"?\" && part.length < 6){\n                reader.read();\n                part += c;\n                c = reader.peek();\n            }\n        }\n\n        return part;\n    },\n\n    readWhitespace: function(){\n        var reader  = this._reader,\n            whitespace = \"\",\n            c       = reader.peek();\n\n        while(isWhitespace(c)){\n            reader.read();\n            whitespace += c;\n            c = reader.peek();\n        }\n\n        return whitespace;\n    },\n    readNumber: function(first){\n        var reader  = this._reader,\n            number  = first,\n            hasDot  = (first == \".\"),\n            c       = reader.peek();\n\n\n        while(c){\n            if (isDigit(c)){\n                number += reader.read();\n            } else if (c == \".\"){\n                if (hasDot){\n                    break;\n                } else {\n                    hasDot = true;\n                    number += reader.read();\n                }\n            } else {\n                break;\n            }\n\n            c = reader.peek();\n        }\n\n        return number;\n    },\n    readString: function(){\n        var reader  = this._reader,\n            delim   = reader.read(),\n            string  = delim,\n            prev    = delim,\n            c       = reader.peek();\n\n        while(c){\n            c = reader.read();\n            string += c;\n            if (c == delim && prev != \"\\\\\"){\n                break;\n            }\n            if (isNewLine(reader.peek()) && c != \"\\\\\"){\n                string = \"\";\n                break;\n            }\n            prev = c;\n            c = reader.peek();\n        }\n        if (c === null){\n            string = \"\";\n        }\n\n        return string;\n    },\n    readURI: function(first){\n        var reader  = this._reader,\n            uri     = first,\n            inner   = \"\",\n            c       = reader.peek();\n\n        reader.mark();\n        while(c && isWhitespace(c)){\n            reader.read();\n            c = reader.peek();\n        }\n        if (c == \"'\" || c == \"\\\"\"){\n            inner = this.readString();\n        } else {\n            inner = this.readURL();\n        }\n\n        c = reader.peek();\n        while(c && isWhitespace(c)){\n            reader.read();\n            c = reader.peek();\n        }\n        if (inner === \"\" || c != \")\"){\n            uri = first;\n            reader.reset();\n        } else {\n            uri += inner + reader.read();\n        }\n\n        return uri;\n    },\n    readURL: function(){\n        var reader  = this._reader,\n            url     = \"\",\n            c       = reader.peek();\n        while (/^[!#$%&\\\\*-~]$/.test(c)){\n            url += reader.read();\n            c = reader.peek();\n        }\n\n        return url;\n\n    },\n    readName: function(first){\n        var reader  = this._reader,\n            ident   = first || \"\",\n            c       = reader.peek();\n\n        while(true){\n            if (c == \"\\\\\"){\n                ident += this.readEscape(reader.read());\n                c = reader.peek();\n            } else if(c && isNameChar(c)){\n                ident += reader.read();\n                c = reader.peek();\n            } else {\n                break;\n            }\n        }\n\n        return ident;\n    },\n\n    readEscape: function(first){\n        var reader  = this._reader,\n            cssEscape = first || \"\",\n            i       = 0,\n            c       = reader.peek();\n\n        if (isHexDigit(c)){\n            do {\n                cssEscape += reader.read();\n                c = reader.peek();\n            } while(c && isHexDigit(c) && ++i < 6);\n        }\n\n        if (cssEscape.length == 3 && /\\s/.test(c) ||\n            cssEscape.length == 7 || cssEscape.length == 1){\n                reader.read();\n        } else {\n            c = \"\";\n        }\n\n        return cssEscape + c;\n    },\n\n    readComment: function(first){\n        var reader  = this._reader,\n            comment = first || \"\",\n            c       = reader.read();\n\n        if (c == \"*\"){\n            while(c){\n                comment += c;\n                if (comment.length > 2 && c == \"*\" && reader.peek() == \"/\"){\n                    comment += reader.read();\n                    break;\n                }\n\n                c = reader.read();\n            }\n\n            return comment;\n        } else {\n            return \"\";\n        }\n\n    }\n});\n\nvar Tokens  = [\n    { name: \"CDO\"},\n    { name: \"CDC\"},\n    { name: \"S\", whitespace: true/*, channel: \"ws\"*/},\n    { name: \"COMMENT\", comment: true, hide: true, channel: \"comment\" },\n    { name: \"INCLUDES\", text: \"~=\"},\n    { name: \"DASHMATCH\", text: \"|=\"},\n    { name: \"PREFIXMATCH\", text: \"^=\"},\n    { name: \"SUFFIXMATCH\", text: \"$=\"},\n    { name: \"SUBSTRINGMATCH\", text: \"*=\"},\n    { name: \"STRING\"},\n    { name: \"IDENT\"},\n    { name: \"HASH\"},\n    { name: \"IMPORT_SYM\", text: \"@import\"},\n    { name: \"PAGE_SYM\", text: \"@page\"},\n    { name: \"MEDIA_SYM\", text: \"@media\"},\n    { name: \"FONT_FACE_SYM\", text: \"@font-face\"},\n    { name: \"CHARSET_SYM\", text: \"@charset\"},\n    { name: \"NAMESPACE_SYM\", text: \"@namespace\"},\n    { name: \"VIEWPORT_SYM\", text: [\"@viewport\", \"@-ms-viewport\"]},\n    { name: \"UNKNOWN_SYM\" },\n    { name: \"KEYFRAMES_SYM\", text: [ \"@keyframes\", \"@-webkit-keyframes\", \"@-moz-keyframes\", \"@-o-keyframes\" ] },\n    { name: \"IMPORTANT_SYM\"},\n    { name: \"LENGTH\"},\n    { name: \"ANGLE\"},\n    { name: \"TIME\"},\n    { name: \"FREQ\"},\n    { name: \"DIMENSION\"},\n    { name: \"PERCENTAGE\"},\n    { name: \"NUMBER\"},\n    { name: \"URI\"},\n    { name: \"FUNCTION\"},\n    { name: \"UNICODE_RANGE\"},\n    { name: \"INVALID\"},\n    { name: \"PLUS\", text: \"+\" },\n    { name: \"GREATER\", text: \">\"},\n    { name: \"COMMA\", text: \",\"},\n    { name: \"TILDE\", text: \"~\"},\n    { name: \"NOT\"},\n    { name: \"TOPLEFTCORNER_SYM\", text: \"@top-left-corner\"},\n    { name: \"TOPLEFT_SYM\", text: \"@top-left\"},\n    { name: \"TOPCENTER_SYM\", text: \"@top-center\"},\n    { name: \"TOPRIGHT_SYM\", text: \"@top-right\"},\n    { name: \"TOPRIGHTCORNER_SYM\", text: \"@top-right-corner\"},\n    { name: \"BOTTOMLEFTCORNER_SYM\", text: \"@bottom-left-corner\"},\n    { name: \"BOTTOMLEFT_SYM\", text: \"@bottom-left\"},\n    { name: \"BOTTOMCENTER_SYM\", text: \"@bottom-center\"},\n    { name: \"BOTTOMRIGHT_SYM\", text: \"@bottom-right\"},\n    { name: \"BOTTOMRIGHTCORNER_SYM\", text: \"@bottom-right-corner\"},\n    { name: \"LEFTTOP_SYM\", text: \"@left-top\"},\n    { name: \"LEFTMIDDLE_SYM\", text: \"@left-middle\"},\n    { name: \"LEFTBOTTOM_SYM\", text: \"@left-bottom\"},\n    { name: \"RIGHTTOP_SYM\", text: \"@right-top\"},\n    { name: \"RIGHTMIDDLE_SYM\", text: \"@right-middle\"},\n    { name: \"RIGHTBOTTOM_SYM\", text: \"@right-bottom\"},\n    { name: \"RESOLUTION\", state: \"media\"},\n    { name: \"IE_FUNCTION\" },\n    { name: \"CHAR\" },\n    {\n        name: \"PIPE\",\n        text: \"|\"\n    },\n    {\n        name: \"SLASH\",\n        text: \"/\"\n    },\n    {\n        name: \"MINUS\",\n        text: \"-\"\n    },\n    {\n        name: \"STAR\",\n        text: \"*\"\n    },\n\n    {\n        name: \"LBRACE\",\n        endChar: \"}\",\n        text: \"{\"\n    },\n    {\n        name: \"RBRACE\",\n        text: \"}\"\n    },\n    {\n        name: \"LBRACKET\",\n        endChar: \"]\",\n        text: \"[\"\n    },\n    {\n        name: \"RBRACKET\",\n        text: \"]\"\n    },\n    {\n        name: \"EQUALS\",\n        text: \"=\"\n    },\n    {\n        name: \"COLON\",\n        text: \":\"\n    },\n    {\n        name: \"SEMICOLON\",\n        text: \";\"\n    },\n\n    {\n        name: \"LPAREN\",\n        endChar: \")\",\n        text: \"(\"\n    },\n    {\n        name: \"RPAREN\",\n        text: \")\"\n    },\n    {\n        name: \"DOT\",\n        text: \".\"\n    }\n];\n\n(function(){\n\n    var nameMap = [],\n        typeMap = {};\n\n    Tokens.UNKNOWN = -1;\n    Tokens.unshift({name:\"EOF\"});\n    for (var i=0, len = Tokens.length; i < len; i++){\n        nameMap.push(Tokens[i].name);\n        Tokens[Tokens[i].name] = i;\n        if (Tokens[i].text){\n            if (Tokens[i].text instanceof Array){\n                for (var j=0; j < Tokens[i].text.length; j++){\n                    typeMap[Tokens[i].text[j]] = i;\n                }\n            } else {\n                typeMap[Tokens[i].text] = i;\n            }\n        }\n    }\n\n    Tokens.name = function(tt){\n        return nameMap[tt];\n    };\n\n    Tokens.type = function(c){\n        return typeMap[c] || -1;\n    };\n\n})();\nvar Validation = {\n\n    validate: function(property, value){\n        var name        = property.toString().toLowerCase(),\n            parts       = value.parts,\n            expression  = new PropertyValueIterator(value),\n            spec        = Properties[name],\n            part,\n            valid,\n            j, count,\n            msg,\n            types,\n            last,\n            literals,\n            max, multi, group;\n\n        if (!spec) {\n            if (name.indexOf(\"-\") !== 0){    //vendor prefixed are ok\n                throw new ValidationError(\"Unknown property '\" + property + \"'.\", property.line, property.col);\n            }\n        } else if (typeof spec != \"number\"){\n            if (typeof spec == \"string\"){\n                if (spec.indexOf(\"||\") > -1) {\n                    this.groupProperty(spec, expression);\n                } else {\n                    this.singleProperty(spec, expression, 1);\n                }\n\n            } else if (spec.multi) {\n                this.multiProperty(spec.multi, expression, spec.comma, spec.max || Infinity);\n            } else if (typeof spec == \"function\") {\n                spec(expression);\n            }\n\n        }\n\n    },\n\n    singleProperty: function(types, expression, max, partial) {\n\n        var result      = false,\n            value       = expression.value,\n            count       = 0,\n            part;\n\n        while (expression.hasNext() && count < max) {\n            result = ValidationTypes.isAny(expression, types);\n            if (!result) {\n                break;\n            }\n            count++;\n        }\n\n        if (!result) {\n            if (expression.hasNext() && !expression.isFirst()) {\n                part = expression.peek();\n                throw new ValidationError(\"Expected end of value but found '\" + part + \"'.\", part.line, part.col);\n            } else {\n                 throw new ValidationError(\"Expected (\" + types + \") but found '\" + value + \"'.\", value.line, value.col);\n            }\n        } else if (expression.hasNext()) {\n            part = expression.next();\n            throw new ValidationError(\"Expected end of value but found '\" + part + \"'.\", part.line, part.col);\n        }\n\n    },\n\n    multiProperty: function (types, expression, comma, max) {\n\n        var result      = false,\n            value       = expression.value,\n            count       = 0,\n            sep         = false,\n            part;\n\n        while(expression.hasNext() && !result && count < max) {\n            if (ValidationTypes.isAny(expression, types)) {\n                count++;\n                if (!expression.hasNext()) {\n                    result = true;\n\n                } else if (comma) {\n                    if (expression.peek() == \",\") {\n                        part = expression.next();\n                    } else {\n                        break;\n                    }\n                }\n            } else {\n                break;\n\n            }\n        }\n\n        if (!result) {\n            if (expression.hasNext() && !expression.isFirst()) {\n                part = expression.peek();\n                throw new ValidationError(\"Expected end of value but found '\" + part + \"'.\", part.line, part.col);\n            } else {\n                part = expression.previous();\n                if (comma && part == \",\") {\n                    throw new ValidationError(\"Expected end of value but found '\" + part + \"'.\", part.line, part.col);\n                } else {\n                    throw new ValidationError(\"Expected (\" + types + \") but found '\" + value + \"'.\", value.line, value.col);\n                }\n            }\n\n        } else if (expression.hasNext()) {\n            part = expression.next();\n            throw new ValidationError(\"Expected end of value but found '\" + part + \"'.\", part.line, part.col);\n        }\n\n    },\n\n    groupProperty: function (types, expression, comma) {\n\n        var result      = false,\n            value       = expression.value,\n            typeCount   = types.split(\"||\").length,\n            groups      = { count: 0 },\n            partial     = false,\n            name,\n            part;\n\n        while(expression.hasNext() && !result) {\n            name = ValidationTypes.isAnyOfGroup(expression, types);\n            if (name) {\n                if (groups[name]) {\n                    break;\n                } else {\n                    groups[name] = 1;\n                    groups.count++;\n                    partial = true;\n\n                    if (groups.count == typeCount || !expression.hasNext()) {\n                        result = true;\n                    }\n                }\n            } else {\n                break;\n            }\n        }\n\n        if (!result) {\n            if (partial && expression.hasNext()) {\n                    part = expression.peek();\n                    throw new ValidationError(\"Expected end of value but found '\" + part + \"'.\", part.line, part.col);\n            } else {\n                throw new ValidationError(\"Expected (\" + types + \") but found '\" + value + \"'.\", value.line, value.col);\n            }\n        } else if (expression.hasNext()) {\n            part = expression.next();\n            throw new ValidationError(\"Expected end of value but found '\" + part + \"'.\", part.line, part.col);\n        }\n    }\n\n\n\n};\nfunction ValidationError(message, line, col){\n    this.col = col;\n    this.line = line;\n    this.message = message;\n\n}\nValidationError.prototype = new Error();\nvar ValidationTypes = {\n\n    isLiteral: function (part, literals) {\n        var text = part.text.toString().toLowerCase(),\n            args = literals.split(\" | \"),\n            i, len, found = false;\n\n        for (i=0,len=args.length; i < len && !found; i++){\n            if (text == args[i].toLowerCase()){\n                found = true;\n            }\n        }\n\n        return found;\n    },\n\n    isSimple: function(type) {\n        return !!this.simple[type];\n    },\n\n    isComplex: function(type) {\n        return !!this.complex[type];\n    },\n    isAny: function (expression, types) {\n        var args = types.split(\" | \"),\n            i, len, found = false;\n\n        for (i=0,len=args.length; i < len && !found && expression.hasNext(); i++){\n            found = this.isType(expression, args[i]);\n        }\n\n        return found;\n    },\n    isAnyOfGroup: function(expression, types) {\n        var args = types.split(\" || \"),\n            i, len, found = false;\n\n        for (i=0,len=args.length; i < len && !found; i++){\n            found = this.isType(expression, args[i]);\n        }\n\n        return found ? args[i-1] : false;\n    },\n    isType: function (expression, type) {\n        var part = expression.peek(),\n            result = false;\n\n        if (type.charAt(0) != \"<\") {\n            result = this.isLiteral(part, type);\n            if (result) {\n                expression.next();\n            }\n        } else if (this.simple[type]) {\n            result = this.simple[type](part);\n            if (result) {\n                expression.next();\n            }\n        } else {\n            result = this.complex[type](expression);\n        }\n\n        return result;\n    },\n\n\n\n    simple: {\n\n        \"<absolute-size>\": function(part){\n            return ValidationTypes.isLiteral(part, \"xx-small | x-small | small | medium | large | x-large | xx-large\");\n        },\n\n        \"<attachment>\": function(part){\n            return ValidationTypes.isLiteral(part, \"scroll | fixed | local\");\n        },\n\n        \"<attr>\": function(part){\n            return part.type == \"function\" && part.name == \"attr\";\n        },\n\n        \"<bg-image>\": function(part){\n            return this[\"<image>\"](part) || this[\"<gradient>\"](part) ||  part == \"none\";\n        },\n\n        \"<gradient>\": function(part) {\n            return part.type == \"function\" && /^(?:\\-(?:ms|moz|o|webkit)\\-)?(?:repeating\\-)?(?:radial\\-|linear\\-)?gradient/i.test(part);\n        },\n\n        \"<box>\": function(part){\n            return ValidationTypes.isLiteral(part, \"padding-box | border-box | content-box\");\n        },\n\n        \"<content>\": function(part){\n            return part.type == \"function\" && part.name == \"content\";\n        },\n\n        \"<relative-size>\": function(part){\n            return ValidationTypes.isLiteral(part, \"smaller | larger\");\n        },\n        \"<ident>\": function(part){\n            return part.type == \"identifier\";\n        },\n\n        \"<length>\": function(part){\n            if (part.type == \"function\" && /^(?:\\-(?:ms|moz|o|webkit)\\-)?calc/i.test(part)){\n                return true;\n            }else{\n                return part.type == \"length\" || part.type == \"number\" || part.type == \"integer\" || part == \"0\";\n            }\n        },\n\n        \"<color>\": function(part){\n            return part.type == \"color\" || part == \"transparent\";\n        },\n\n        \"<number>\": function(part){\n            return part.type == \"number\" || this[\"<integer>\"](part);\n        },\n\n        \"<integer>\": function(part){\n            return part.type == \"integer\";\n        },\n\n        \"<line>\": function(part){\n            return part.type == \"integer\";\n        },\n\n        \"<angle>\": function(part){\n            return part.type == \"angle\";\n        },\n\n        \"<uri>\": function(part){\n            return part.type == \"uri\";\n        },\n\n        \"<image>\": function(part){\n            return this[\"<uri>\"](part);\n        },\n\n        \"<percentage>\": function(part){\n            return part.type == \"percentage\" || part == \"0\";\n        },\n\n        \"<border-width>\": function(part){\n            return this[\"<length>\"](part) || ValidationTypes.isLiteral(part, \"thin | medium | thick\");\n        },\n\n        \"<border-style>\": function(part){\n            return ValidationTypes.isLiteral(part, \"none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset\");\n        },\n\n        \"<content-sizing>\": function(part){ // http://www.w3.org/TR/css3-sizing/#width-height-keywords\n            return ValidationTypes.isLiteral(part, \"fill-available | -moz-available | -webkit-fill-available | max-content | -moz-max-content | -webkit-max-content | min-content | -moz-min-content | -webkit-min-content | fit-content | -moz-fit-content | -webkit-fit-content\");\n        },\n\n        \"<margin-width>\": function(part){\n            return this[\"<length>\"](part) || this[\"<percentage>\"](part) || ValidationTypes.isLiteral(part, \"auto\");\n        },\n\n        \"<padding-width>\": function(part){\n            return this[\"<length>\"](part) || this[\"<percentage>\"](part);\n        },\n\n        \"<shape>\": function(part){\n            return part.type == \"function\" && (part.name == \"rect\" || part.name == \"inset-rect\");\n        },\n\n        \"<time>\": function(part) {\n            return part.type == \"time\";\n        },\n\n        \"<flex-grow>\": function(part){\n            return this[\"<number>\"](part);\n        },\n\n        \"<flex-shrink>\": function(part){\n            return this[\"<number>\"](part);\n        },\n\n        \"<width>\": function(part){\n            return this[\"<margin-width>\"](part);\n        },\n\n        \"<flex-basis>\": function(part){\n            return this[\"<width>\"](part);\n        },\n\n        \"<flex-direction>\": function(part){\n            return ValidationTypes.isLiteral(part, \"row | row-reverse | column | column-reverse\");\n        },\n\n        \"<flex-wrap>\": function(part){\n            return ValidationTypes.isLiteral(part, \"nowrap | wrap | wrap-reverse\");\n        }\n    },\n\n    complex: {\n\n        \"<bg-position>\": function(expression){\n            var types   = this,\n                result  = false,\n                numeric = \"<percentage> | <length>\",\n                xDir    = \"left | right\",\n                yDir    = \"top | bottom\",\n                count = 0,\n                hasNext = function() {\n                    return expression.hasNext() && expression.peek() != \",\";\n                };\n\n            while (expression.peek(count) && expression.peek(count) != \",\") {\n                count++;\n            }\n\n            if (count < 3) {\n                if (ValidationTypes.isAny(expression, xDir + \" | center | \" + numeric)) {\n                        result = true;\n                        ValidationTypes.isAny(expression, yDir + \" | center | \" + numeric);\n                } else if (ValidationTypes.isAny(expression, yDir)) {\n                        result = true;\n                        ValidationTypes.isAny(expression, xDir + \" | center\");\n                }\n            } else {\n                if (ValidationTypes.isAny(expression, xDir)) {\n                    if (ValidationTypes.isAny(expression, yDir)) {\n                        result = true;\n                        ValidationTypes.isAny(expression, numeric);\n                    } else if (ValidationTypes.isAny(expression, numeric)) {\n                        if (ValidationTypes.isAny(expression, yDir)) {\n                            result = true;\n                            ValidationTypes.isAny(expression, numeric);\n                        } else if (ValidationTypes.isAny(expression, \"center\")) {\n                            result = true;\n                        }\n                    }\n                } else if (ValidationTypes.isAny(expression, yDir)) {\n                    if (ValidationTypes.isAny(expression, xDir)) {\n                        result = true;\n                        ValidationTypes.isAny(expression, numeric);\n                    } else if (ValidationTypes.isAny(expression, numeric)) {\n                        if (ValidationTypes.isAny(expression, xDir)) {\n                                result = true;\n                                ValidationTypes.isAny(expression, numeric);\n                        } else if (ValidationTypes.isAny(expression, \"center\")) {\n                            result = true;\n                        }\n                    }\n                } else if (ValidationTypes.isAny(expression, \"center\")) {\n                    if (ValidationTypes.isAny(expression, xDir + \" | \" + yDir)) {\n                        result = true;\n                        ValidationTypes.isAny(expression, numeric);\n                    }\n                }\n            }\n\n            return result;\n        },\n\n        \"<bg-size>\": function(expression){\n            var types   = this,\n                result  = false,\n                numeric = \"<percentage> | <length> | auto\",\n                part,\n                i, len;\n\n            if (ValidationTypes.isAny(expression, \"cover | contain\")) {\n                result = true;\n            } else if (ValidationTypes.isAny(expression, numeric)) {\n                result = true;\n                ValidationTypes.isAny(expression, numeric);\n            }\n\n            return result;\n        },\n\n        \"<repeat-style>\": function(expression){\n            var result  = false,\n                values  = \"repeat | space | round | no-repeat\",\n                part;\n\n            if (expression.hasNext()){\n                part = expression.next();\n\n                if (ValidationTypes.isLiteral(part, \"repeat-x | repeat-y\")) {\n                    result = true;\n                } else if (ValidationTypes.isLiteral(part, values)) {\n                    result = true;\n\n                    if (expression.hasNext() && ValidationTypes.isLiteral(expression.peek(), values)) {\n                        expression.next();\n                    }\n                }\n            }\n\n            return result;\n\n        },\n\n        \"<shadow>\": function(expression) {\n            var result  = false,\n                count   = 0,\n                inset   = false,\n                color   = false,\n                part;\n\n            if (expression.hasNext()) {\n\n                if (ValidationTypes.isAny(expression, \"inset\")){\n                    inset = true;\n                }\n\n                if (ValidationTypes.isAny(expression, \"<color>\")) {\n                    color = true;\n                }\n\n                while (ValidationTypes.isAny(expression, \"<length>\") && count < 4) {\n                    count++;\n                }\n\n\n                if (expression.hasNext()) {\n                    if (!color) {\n                        ValidationTypes.isAny(expression, \"<color>\");\n                    }\n\n                    if (!inset) {\n                        ValidationTypes.isAny(expression, \"inset\");\n                    }\n\n                }\n\n                result = (count >= 2 && count <= 4);\n\n            }\n\n            return result;\n        },\n\n        \"<x-one-radius>\": function(expression) {\n            var result  = false,\n                simple = \"<length> | <percentage> | inherit\";\n\n            if (ValidationTypes.isAny(expression, simple)){\n                result = true;\n                ValidationTypes.isAny(expression, simple);\n            }\n\n            return result;\n        },\n\n        \"<flex>\": function(expression) {\n            var part,\n                result = false;\n            if (ValidationTypes.isAny(expression, \"none | inherit\")) {\n                result = true;\n            } else {\n                if (ValidationTypes.isType(expression, \"<flex-grow>\")) {\n                    if (expression.peek()) {\n                        if (ValidationTypes.isType(expression, \"<flex-shrink>\")) {\n                            if (expression.peek()) {\n                                result = ValidationTypes.isType(expression, \"<flex-basis>\");\n                            } else {\n                                result = true;\n                            }\n                        } else if (ValidationTypes.isType(expression, \"<flex-basis>\")) {\n                            result = expression.peek() === null;\n                        }\n                    } else {\n                        result = true;\n                    }\n                } else if (ValidationTypes.isType(expression, \"<flex-basis>\")) {\n                    result = true;\n                }\n            }\n\n            if (!result) {\n                part = expression.peek();\n                throw new ValidationError(\"Expected (none | [ <flex-grow> <flex-shrink>? || <flex-basis> ]) but found '\" + expression.value.text + \"'.\", part.line, part.col);\n            }\n\n            return result;\n        }\n    }\n};\n\nparserlib.css = {\nColors              :Colors,\nCombinator          :Combinator,\nParser              :Parser,\nPropertyName        :PropertyName,\nPropertyValue       :PropertyValue,\nPropertyValuePart   :PropertyValuePart,\nMediaFeature        :MediaFeature,\nMediaQuery          :MediaQuery,\nSelector            :Selector,\nSelectorPart        :SelectorPart,\nSelectorSubPart     :SelectorSubPart,\nSpecificity         :Specificity,\nTokenStream         :TokenStream,\nTokens              :Tokens,\nValidationError     :ValidationError\n};\n})();\n\n(function(){\nfor(var prop in parserlib){\nexports[prop] = parserlib[prop];\n}\n})();\n\n\nfunction objectToString(o) {\n  return Object.prototype.toString.call(o);\n}\nvar util = {\n  isArray: function (ar) {\n    return Array.isArray(ar) || (typeof ar === 'object' && objectToString(ar) === '[object Array]');\n  },\n  isDate: function (d) {\n    return typeof d === 'object' && objectToString(d) === '[object Date]';\n  },\n  isRegExp: function (re) {\n    return typeof re === 'object' && objectToString(re) === '[object RegExp]';\n  },\n  getRegExpFlags: function (re) {\n    var flags = '';\n    re.global && (flags += 'g');\n    re.ignoreCase && (flags += 'i');\n    re.multiline && (flags += 'm');\n    return flags;\n  }\n};\n\n\nif (typeof module === 'object')\n  module.exports = clone;\n\nfunction clone(parent, circular, depth, prototype) {\n  var allParents = [];\n  var allChildren = [];\n\n  var useBuffer = typeof Buffer != 'undefined';\n\n  if (typeof circular == 'undefined')\n    circular = true;\n\n  if (typeof depth == 'undefined')\n    depth = Infinity;\n  function _clone(parent, depth) {\n    if (parent === null)\n      return null;\n\n    if (depth == 0)\n      return parent;\n\n    var child;\n    if (typeof parent != 'object') {\n      return parent;\n    }\n\n    if (util.isArray(parent)) {\n      child = [];\n    } else if (util.isRegExp(parent)) {\n      child = new RegExp(parent.source, util.getRegExpFlags(parent));\n      if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n    } else if (util.isDate(parent)) {\n      child = new Date(parent.getTime());\n    } else if (useBuffer && Buffer.isBuffer(parent)) {\n      child = new Buffer(parent.length);\n      parent.copy(child);\n      return child;\n    } else {\n      if (typeof prototype == 'undefined') child = Object.create(Object.getPrototypeOf(parent));\n      else child = Object.create(prototype);\n    }\n\n    if (circular) {\n      var index = allParents.indexOf(parent);\n\n      if (index != -1) {\n        return allChildren[index];\n      }\n      allParents.push(parent);\n      allChildren.push(child);\n    }\n\n    for (var i in parent) {\n      child[i] = _clone(parent[i], depth - 1);\n    }\n\n    return child;\n  }\n\n  return _clone(parent, depth);\n}\nclone.clonePrototype = function(parent) {\n  if (parent === null)\n    return null;\n\n  var c = function () {};\n  c.prototype = parent;\n  return new c();\n};\n\nvar CSSLint = (function(){\n\n    var rules           = [],\n        formatters      = [],\n        embeddedRuleset = /\\/\\*csslint([^\\*]*)\\*\\//,\n        api             = new parserlib.util.EventTarget();\n\n    api.version = \"@VERSION@\";\n    api.addRule = function(rule){\n        rules.push(rule);\n        rules[rule.id] = rule;\n    };\n    api.clearRules = function(){\n        rules = [];\n    };\n    api.getRules = function(){\n        return [].concat(rules).sort(function(a,b){\n            return a.id > b.id ? 1 : 0;\n        });\n    };\n    api.getRuleset = function() {\n        var ruleset = {},\n            i = 0,\n            len = rules.length;\n\n        while (i < len){\n            ruleset[rules[i++].id] = 1;    //by default, everything is a warning\n        }\n\n        return ruleset;\n    };\n    function applyEmbeddedRuleset(text, ruleset){\n        var valueMap,\n            embedded = text && text.match(embeddedRuleset),\n            rules = embedded && embedded[1];\n\n        if (rules) {\n            valueMap = {\n                \"true\": 2,  // true is error\n                \"\": 1,      // blank is warning\n                \"false\": 0, // false is ignore\n\n                \"2\": 2,     // explicit error\n                \"1\": 1,     // explicit warning\n                \"0\": 0      // explicit ignore\n            };\n\n            rules.toLowerCase().split(\",\").forEach(function(rule){\n                var pair = rule.split(\":\"),\n                    property = pair[0] || \"\",\n                    value = pair[1] || \"\";\n\n                ruleset[property.trim()] = valueMap[value.trim()];\n            });\n        }\n\n        return ruleset;\n    }\n    api.addFormatter = function(formatter) {\n        formatters[formatter.id] = formatter;\n    };\n    api.getFormatter = function(formatId){\n        return formatters[formatId];\n    };\n    api.format = function(results, filename, formatId, options) {\n        var formatter = this.getFormatter(formatId),\n            result = null;\n\n        if (formatter){\n            result = formatter.startFormat();\n            result += formatter.formatResults(results, filename, options || {});\n            result += formatter.endFormat();\n        }\n\n        return result;\n    };\n    api.hasFormat = function(formatId){\n        return formatters.hasOwnProperty(formatId);\n    };\n    api.verify = function(text, ruleset){\n\n        var i = 0,\n            reporter,\n            lines,\n            report,\n            parser = new parserlib.css.Parser({ starHack: true, ieFilters: true,\n                                                underscoreHack: true, strict: false });\n        lines = text.replace(/\\n\\r?/g, \"$split$\").split(\"$split$\");\n\n        if (!ruleset){\n            ruleset = this.getRuleset();\n        }\n\n        if (embeddedRuleset.test(text)){\n            ruleset = clone(ruleset);\n            ruleset = applyEmbeddedRuleset(text, ruleset);\n        }\n\n        reporter = new Reporter(lines, ruleset);\n\n        ruleset.errors = 2;       //always report parsing errors as errors\n        for (i in ruleset){\n            if(ruleset.hasOwnProperty(i) && ruleset[i]){\n                if (rules[i]){\n                    rules[i].init(parser, reporter);\n                }\n            }\n        }\n        try {\n            parser.parse(text);\n        } catch (ex) {\n            reporter.error(\"Fatal error, cannot continue: \" + ex.message, ex.line, ex.col, {});\n        }\n\n        report = {\n            messages    : reporter.messages,\n            stats       : reporter.stats,\n            ruleset     : reporter.ruleset\n        };\n        report.messages.sort(function (a, b){\n            if (a.rollup && !b.rollup){\n                return 1;\n            } else if (!a.rollup && b.rollup){\n                return -1;\n            } else {\n                return a.line - b.line;\n            }\n        });\n\n        return report;\n    };\n\n    return api;\n\n})();\nfunction Reporter(lines, ruleset){\n    this.messages = [];\n    this.stats = [];\n    this.lines = lines;\n    this.ruleset = ruleset;\n}\n\nReporter.prototype = {\n    constructor: Reporter,\n    error: function(message, line, col, rule){\n        this.messages.push({\n            type    : \"error\",\n            line    : line,\n            col     : col,\n            message : message,\n            evidence: this.lines[line-1],\n            rule    : rule || {}\n        });\n    },\n    warn: function(message, line, col, rule){\n        this.report(message, line, col, rule);\n    },\n    report: function(message, line, col, rule){\n        this.messages.push({\n            type    : this.ruleset[rule.id] === 2 ? \"error\" : \"warning\",\n            line    : line,\n            col     : col,\n            message : message,\n            evidence: this.lines[line-1],\n            rule    : rule\n        });\n    },\n    info: function(message, line, col, rule){\n        this.messages.push({\n            type    : \"info\",\n            line    : line,\n            col     : col,\n            message : message,\n            evidence: this.lines[line-1],\n            rule    : rule\n        });\n    },\n    rollupError: function(message, rule){\n        this.messages.push({\n            type    : \"error\",\n            rollup  : true,\n            message : message,\n            rule    : rule\n        });\n    },\n    rollupWarn: function(message, rule){\n        this.messages.push({\n            type    : \"warning\",\n            rollup  : true,\n            message : message,\n            rule    : rule\n        });\n    },\n    stat: function(name, value){\n        this.stats[name] = value;\n    }\n};\nCSSLint._Reporter = Reporter;\nCSSLint.Util = {\n    mix: function(receiver, supplier){\n        var prop;\n\n        for (prop in supplier){\n            if (supplier.hasOwnProperty(prop)){\n                receiver[prop] = supplier[prop];\n            }\n        }\n\n        return prop;\n    },\n    indexOf: function(values, value){\n        if (values.indexOf){\n            return values.indexOf(value);\n        } else {\n            for (var i=0, len=values.length; i < len; i++){\n                if (values[i] === value){\n                    return i;\n                }\n            }\n            return -1;\n        }\n    },\n    forEach: function(values, func) {\n        if (values.forEach){\n            return values.forEach(func);\n        } else {\n            for (var i=0, len=values.length; i < len; i++){\n                func(values[i], i, values);\n            }\n        }\n    }\n};\n\nCSSLint.addRule({\n    id: \"adjoining-classes\",\n    name: \"Disallow adjoining classes\",\n    desc: \"Don't use adjoining classes.\",\n    browsers: \"IE6\",\n    init: function(parser, reporter){\n        var rule = this;\n        parser.addListener(\"startrule\", function(event){\n            var selectors = event.selectors,\n                selector,\n                part,\n                modifier,\n                classCount,\n                i, j, k;\n\n            for (i=0; i < selectors.length; i++){\n                selector = selectors[i];\n                for (j=0; j < selector.parts.length; j++){\n                    part = selector.parts[j];\n                    if (part.type === parser.SELECTOR_PART_TYPE){\n                        classCount = 0;\n                        for (k=0; k < part.modifiers.length; k++){\n                            modifier = part.modifiers[k];\n                            if (modifier.type === \"class\"){\n                                classCount++;\n                            }\n                            if (classCount > 1){\n                                reporter.report(\"Don't use adjoining classes.\", part.line, part.col, rule);\n                            }\n                        }\n                    }\n                }\n            }\n        });\n    }\n\n});\nCSSLint.addRule({\n    id: \"box-model\",\n    name: \"Beware of broken box size\",\n    desc: \"Don't use width or height when using padding or border.\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this,\n            widthProperties = {\n                border: 1,\n                \"border-left\": 1,\n                \"border-right\": 1,\n                padding: 1,\n                \"padding-left\": 1,\n                \"padding-right\": 1\n            },\n            heightProperties = {\n                border: 1,\n                \"border-bottom\": 1,\n                \"border-top\": 1,\n                padding: 1,\n                \"padding-bottom\": 1,\n                \"padding-top\": 1\n            },\n            properties,\n            boxSizing = false;\n\n        function startRule(){\n            properties = {};\n            boxSizing = false;\n        }\n\n        function endRule(){\n            var prop, value;\n\n            if (!boxSizing) {\n                if (properties.height){\n                    for (prop in heightProperties){\n                        if (heightProperties.hasOwnProperty(prop) && properties[prop]){\n                            value = properties[prop].value;\n                            if (!(prop === \"padding\" && value.parts.length === 2 && value.parts[0].value === 0)){\n                                reporter.report(\"Using height with \" + prop + \" can sometimes make elements larger than you expect.\", properties[prop].line, properties[prop].col, rule);\n                            }\n                        }\n                    }\n                }\n\n                if (properties.width){\n                    for (prop in widthProperties){\n                        if (widthProperties.hasOwnProperty(prop) && properties[prop]){\n                            value = properties[prop].value;\n\n                            if (!(prop === \"padding\" && value.parts.length === 2 && value.parts[1].value === 0)){\n                                reporter.report(\"Using width with \" + prop + \" can sometimes make elements larger than you expect.\", properties[prop].line, properties[prop].col, rule);\n                            }\n                        }\n                    }\n                }\n            }\n        }\n\n        parser.addListener(\"startrule\", startRule);\n        parser.addListener(\"startfontface\", startRule);\n        parser.addListener(\"startpage\", startRule);\n        parser.addListener(\"startpagemargin\", startRule);\n        parser.addListener(\"startkeyframerule\", startRule);\n\n        parser.addListener(\"property\", function(event){\n            var name = event.property.text.toLowerCase();\n\n            if (heightProperties[name] || widthProperties[name]){\n                if (!/^0\\S*$/.test(event.value) && !(name === \"border\" && event.value.toString() === \"none\")){\n                    properties[name] = { line: event.property.line, col: event.property.col, value: event.value };\n                }\n            } else {\n                if (/^(width|height)/i.test(name) && /^(length|percentage)/.test(event.value.parts[0].type)){\n                    properties[name] = 1;\n                } else if (name === \"box-sizing\") {\n                    boxSizing = true;\n                }\n            }\n\n        });\n\n        parser.addListener(\"endrule\", endRule);\n        parser.addListener(\"endfontface\", endRule);\n        parser.addListener(\"endpage\", endRule);\n        parser.addListener(\"endpagemargin\", endRule);\n        parser.addListener(\"endkeyframerule\", endRule);\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"box-sizing\",\n    name: \"Disallow use of box-sizing\",\n    desc: \"The box-sizing properties isn't supported in IE6 and IE7.\",\n    browsers: \"IE6, IE7\",\n    tags: [\"Compatibility\"],\n    init: function(parser, reporter){\n        var rule = this;\n\n        parser.addListener(\"property\", function(event){\n            var name = event.property.text.toLowerCase();\n\n            if (name === \"box-sizing\"){\n                reporter.report(\"The box-sizing property isn't supported in IE6 and IE7.\", event.line, event.col, rule);\n            }\n        });\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"bulletproof-font-face\",\n    name: \"Use the bulletproof @font-face syntax\",\n    desc: \"Use the bulletproof @font-face syntax to avoid 404's in old IE (http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax).\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this,\n            fontFaceRule = false,\n            firstSrc     = true,\n            ruleFailed    = false,\n            line, col;\n        parser.addListener(\"startfontface\", function(){\n            fontFaceRule = true;\n        });\n\n        parser.addListener(\"property\", function(event){\n            if (!fontFaceRule) {\n                return;\n            }\n\n            var propertyName = event.property.toString().toLowerCase(),\n                value        = event.value.toString();\n            line = event.line;\n            col  = event.col;\n            if (propertyName === \"src\") {\n                var regex = /^\\s?url\\(['\"].+\\.eot\\?.*['\"]\\)\\s*format\\(['\"]embedded-opentype['\"]\\).*$/i;\n                if (!value.match(regex) && firstSrc) {\n                    ruleFailed = true;\n                    firstSrc = false;\n                } else if (value.match(regex) && !firstSrc) {\n                    ruleFailed = false;\n                }\n            }\n\n\n        });\n        parser.addListener(\"endfontface\", function(){\n            fontFaceRule = false;\n\n            if (ruleFailed) {\n                reporter.report(\"@font-face declaration doesn't follow the fontspring bulletproof syntax.\", line, col, rule);\n            }\n        });\n    }\n});\n\nCSSLint.addRule({\n    id: \"compatible-vendor-prefixes\",\n    name: \"Require compatible vendor prefixes\",\n    desc: \"Include all compatible vendor prefixes to reach a wider range of users.\",\n    browsers: \"All\",\n    init: function (parser, reporter) {\n        var rule = this,\n            compatiblePrefixes,\n            properties,\n            prop,\n            variations,\n            prefixed,\n            i,\n            len,\n            inKeyFrame = false,\n            arrayPush = Array.prototype.push,\n            applyTo = [];\n        compatiblePrefixes = {\n            \"animation\"                  : \"webkit moz\",\n            \"animation-delay\"            : \"webkit moz\",\n            \"animation-direction\"        : \"webkit moz\",\n            \"animation-duration\"         : \"webkit moz\",\n            \"animation-fill-mode\"        : \"webkit moz\",\n            \"animation-iteration-count\"  : \"webkit moz\",\n            \"animation-name\"             : \"webkit moz\",\n            \"animation-play-state\"       : \"webkit moz\",\n            \"animation-timing-function\"  : \"webkit moz\",\n            \"appearance\"                 : \"webkit moz\",\n            \"border-end\"                 : \"webkit moz\",\n            \"border-end-color\"           : \"webkit moz\",\n            \"border-end-style\"           : \"webkit moz\",\n            \"border-end-width\"           : \"webkit moz\",\n            \"border-image\"               : \"webkit moz o\",\n            \"border-radius\"              : \"webkit\",\n            \"border-start\"               : \"webkit moz\",\n            \"border-start-color\"         : \"webkit moz\",\n            \"border-start-style\"         : \"webkit moz\",\n            \"border-start-width\"         : \"webkit moz\",\n            \"box-align\"                  : \"webkit moz ms\",\n            \"box-direction\"              : \"webkit moz ms\",\n            \"box-flex\"                   : \"webkit moz ms\",\n            \"box-lines\"                  : \"webkit ms\",\n            \"box-ordinal-group\"          : \"webkit moz ms\",\n            \"box-orient\"                 : \"webkit moz ms\",\n            \"box-pack\"                   : \"webkit moz ms\",\n            \"box-sizing\"                 : \"webkit moz\",\n            \"box-shadow\"                 : \"webkit moz\",\n            \"column-count\"               : \"webkit moz ms\",\n            \"column-gap\"                 : \"webkit moz ms\",\n            \"column-rule\"                : \"webkit moz ms\",\n            \"column-rule-color\"          : \"webkit moz ms\",\n            \"column-rule-style\"          : \"webkit moz ms\",\n            \"column-rule-width\"          : \"webkit moz ms\",\n            \"column-width\"               : \"webkit moz ms\",\n            \"hyphens\"                    : \"epub moz\",\n            \"line-break\"                 : \"webkit ms\",\n            \"margin-end\"                 : \"webkit moz\",\n            \"margin-start\"               : \"webkit moz\",\n            \"marquee-speed\"              : \"webkit wap\",\n            \"marquee-style\"              : \"webkit wap\",\n            \"padding-end\"                : \"webkit moz\",\n            \"padding-start\"              : \"webkit moz\",\n            \"tab-size\"                   : \"moz o\",\n            \"text-size-adjust\"           : \"webkit ms\",\n            \"transform\"                  : \"webkit moz ms o\",\n            \"transform-origin\"           : \"webkit moz ms o\",\n            \"transition\"                 : \"webkit moz o\",\n            \"transition-delay\"           : \"webkit moz o\",\n            \"transition-duration\"        : \"webkit moz o\",\n            \"transition-property\"        : \"webkit moz o\",\n            \"transition-timing-function\" : \"webkit moz o\",\n            \"user-modify\"                : \"webkit moz\",\n            \"user-select\"                : \"webkit moz ms\",\n            \"word-break\"                 : \"epub ms\",\n            \"writing-mode\"               : \"epub ms\"\n        };\n\n\n        for (prop in compatiblePrefixes) {\n            if (compatiblePrefixes.hasOwnProperty(prop)) {\n                variations = [];\n                prefixed = compatiblePrefixes[prop].split(\" \");\n                for (i = 0, len = prefixed.length; i < len; i++) {\n                    variations.push(\"-\" + prefixed[i] + \"-\" + prop);\n                }\n                compatiblePrefixes[prop] = variations;\n                arrayPush.apply(applyTo, variations);\n            }\n        }\n\n        parser.addListener(\"startrule\", function () {\n            properties = [];\n        });\n\n        parser.addListener(\"startkeyframes\", function (event) {\n            inKeyFrame = event.prefix || true;\n        });\n\n        parser.addListener(\"endkeyframes\", function () {\n            inKeyFrame = false;\n        });\n\n        parser.addListener(\"property\", function (event) {\n            var name = event.property;\n            if (CSSLint.Util.indexOf(applyTo, name.text) > -1) {\n                if (!inKeyFrame || typeof inKeyFrame !== \"string\" ||\n                        name.text.indexOf(\"-\" + inKeyFrame + \"-\") !== 0) {\n                    properties.push(name);\n                }\n            }\n        });\n\n        parser.addListener(\"endrule\", function () {\n            if (!properties.length) {\n                return;\n            }\n\n            var propertyGroups = {},\n                i,\n                len,\n                name,\n                prop,\n                variations,\n                value,\n                full,\n                actual,\n                item,\n                propertiesSpecified;\n\n            for (i = 0, len = properties.length; i < len; i++) {\n                name = properties[i];\n\n                for (prop in compatiblePrefixes) {\n                    if (compatiblePrefixes.hasOwnProperty(prop)) {\n                        variations = compatiblePrefixes[prop];\n                        if (CSSLint.Util.indexOf(variations, name.text) > -1) {\n                            if (!propertyGroups[prop]) {\n                                propertyGroups[prop] = {\n                                    full : variations.slice(0),\n                                    actual : [],\n                                    actualNodes: []\n                                };\n                            }\n                            if (CSSLint.Util.indexOf(propertyGroups[prop].actual, name.text) === -1) {\n                                propertyGroups[prop].actual.push(name.text);\n                                propertyGroups[prop].actualNodes.push(name);\n                            }\n                        }\n                    }\n                }\n            }\n\n            for (prop in propertyGroups) {\n                if (propertyGroups.hasOwnProperty(prop)) {\n                    value = propertyGroups[prop];\n                    full = value.full;\n                    actual = value.actual;\n\n                    if (full.length > actual.length) {\n                        for (i = 0, len = full.length; i < len; i++) {\n                            item = full[i];\n                            if (CSSLint.Util.indexOf(actual, item) === -1) {\n                                propertiesSpecified = (actual.length === 1) ? actual[0] : (actual.length === 2) ? actual.join(\" and \") : actual.join(\", \");\n                                reporter.report(\"The property \" + item + \" is compatible with \" + propertiesSpecified + \" and should be included as well.\", value.actualNodes[0].line, value.actualNodes[0].col, rule);\n                            }\n                        }\n\n                    }\n                }\n            }\n        });\n    }\n});\n\nCSSLint.addRule({\n    id: \"display-property-grouping\",\n    name: \"Require properties appropriate for display\",\n    desc: \"Certain properties shouldn't be used with certain display property values.\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this;\n\n        var propertiesToCheck = {\n                display: 1,\n                \"float\": \"none\",\n                height: 1,\n                width: 1,\n                margin: 1,\n                \"margin-left\": 1,\n                \"margin-right\": 1,\n                \"margin-bottom\": 1,\n                \"margin-top\": 1,\n                padding: 1,\n                \"padding-left\": 1,\n                \"padding-right\": 1,\n                \"padding-bottom\": 1,\n                \"padding-top\": 1,\n                \"vertical-align\": 1\n            },\n            properties;\n\n        function reportProperty(name, display, msg){\n            if (properties[name]){\n                if (typeof propertiesToCheck[name] !== \"string\" || properties[name].value.toLowerCase() !== propertiesToCheck[name]){\n                    reporter.report(msg || name + \" can't be used with display: \" + display + \".\", properties[name].line, properties[name].col, rule);\n                }\n            }\n        }\n\n        function startRule(){\n            properties = {};\n        }\n\n        function endRule(){\n\n            var display = properties.display ? properties.display.value : null;\n            if (display){\n                switch(display){\n\n                    case \"inline\":\n                        reportProperty(\"height\", display);\n                        reportProperty(\"width\", display);\n                        reportProperty(\"margin\", display);\n                        reportProperty(\"margin-top\", display);\n                        reportProperty(\"margin-bottom\", display);\n                        reportProperty(\"float\", display, \"display:inline has no effect on floated elements (but may be used to fix the IE6 double-margin bug).\");\n                        break;\n\n                    case \"block\":\n                        reportProperty(\"vertical-align\", display);\n                        break;\n\n                    case \"inline-block\":\n                        reportProperty(\"float\", display);\n                        break;\n\n                    default:\n                        if (display.indexOf(\"table-\") === 0){\n                            reportProperty(\"margin\", display);\n                            reportProperty(\"margin-left\", display);\n                            reportProperty(\"margin-right\", display);\n                            reportProperty(\"margin-top\", display);\n                            reportProperty(\"margin-bottom\", display);\n                            reportProperty(\"float\", display);\n                        }\n                }\n            }\n\n        }\n\n        parser.addListener(\"startrule\", startRule);\n        parser.addListener(\"startfontface\", startRule);\n        parser.addListener(\"startkeyframerule\", startRule);\n        parser.addListener(\"startpagemargin\", startRule);\n        parser.addListener(\"startpage\", startRule);\n\n        parser.addListener(\"property\", function(event){\n            var name = event.property.text.toLowerCase();\n\n            if (propertiesToCheck[name]){\n                properties[name] = { value: event.value.text, line: event.property.line, col: event.property.col };\n            }\n        });\n\n        parser.addListener(\"endrule\", endRule);\n        parser.addListener(\"endfontface\", endRule);\n        parser.addListener(\"endkeyframerule\", endRule);\n        parser.addListener(\"endpagemargin\", endRule);\n        parser.addListener(\"endpage\", endRule);\n\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"duplicate-background-images\",\n    name: \"Disallow duplicate background images\",\n    desc: \"Every background-image should be unique. Use a common class for e.g. sprites.\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this,\n            stack = {};\n\n        parser.addListener(\"property\", function(event){\n            var name = event.property.text,\n                value = event.value,\n                i, len;\n\n            if (name.match(/background/i)) {\n                for (i=0, len=value.parts.length; i < len; i++) {\n                    if (value.parts[i].type === \"uri\") {\n                        if (typeof stack[value.parts[i].uri] === \"undefined\") {\n                            stack[value.parts[i].uri] = event;\n                        }\n                        else {\n                            reporter.report(\"Background image '\" + value.parts[i].uri + \"' was used multiple times, first declared at line \" + stack[value.parts[i].uri].line + \", col \" + stack[value.parts[i].uri].col + \".\", event.line, event.col, rule);\n                        }\n                    }\n                }\n            }\n        });\n    }\n});\n\nCSSLint.addRule({\n    id: \"duplicate-properties\",\n    name: \"Disallow duplicate properties\",\n    desc: \"Duplicate properties must appear one after the other.\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this,\n            properties,\n            lastProperty;\n\n        function startRule(){\n            properties = {};\n        }\n\n        parser.addListener(\"startrule\", startRule);\n        parser.addListener(\"startfontface\", startRule);\n        parser.addListener(\"startpage\", startRule);\n        parser.addListener(\"startpagemargin\", startRule);\n        parser.addListener(\"startkeyframerule\", startRule);\n\n        parser.addListener(\"property\", function(event){\n            var property = event.property,\n                name = property.text.toLowerCase();\n\n            if (properties[name] && (lastProperty !== name || properties[name] === event.value.text)){\n                reporter.report(\"Duplicate property '\" + event.property + \"' found.\", event.line, event.col, rule);\n            }\n\n            properties[name] = event.value.text;\n            lastProperty = name;\n\n        });\n\n\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"empty-rules\",\n    name: \"Disallow empty rules\",\n    desc: \"Rules without any properties specified should be removed.\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this,\n            count = 0;\n\n        parser.addListener(\"startrule\", function(){\n            count=0;\n        });\n\n        parser.addListener(\"property\", function(){\n            count++;\n        });\n\n        parser.addListener(\"endrule\", function(event){\n            var selectors = event.selectors;\n            if (count === 0){\n                reporter.report(\"Rule is empty.\", selectors[0].line, selectors[0].col, rule);\n            }\n        });\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"errors\",\n    name: \"Parsing Errors\",\n    desc: \"This rule looks for recoverable syntax errors.\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this;\n\n        parser.addListener(\"error\", function(event){\n            reporter.error(event.message, event.line, event.col, rule);\n        });\n\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"fallback-colors\",\n    name: \"Require fallback colors\",\n    desc: \"For older browsers that don't support RGBA, HSL, or HSLA, provide a fallback color.\",\n    browsers: \"IE6,IE7,IE8\",\n    init: function(parser, reporter){\n        var rule = this,\n            lastProperty,\n            propertiesToCheck = {\n                color: 1,\n                background: 1,\n                \"border-color\": 1,\n                \"border-top-color\": 1,\n                \"border-right-color\": 1,\n                \"border-bottom-color\": 1,\n                \"border-left-color\": 1,\n                border: 1,\n                \"border-top\": 1,\n                \"border-right\": 1,\n                \"border-bottom\": 1,\n                \"border-left\": 1,\n                \"background-color\": 1\n            },\n            properties;\n\n        function startRule(){\n            properties = {};\n            lastProperty = null;\n        }\n\n        parser.addListener(\"startrule\", startRule);\n        parser.addListener(\"startfontface\", startRule);\n        parser.addListener(\"startpage\", startRule);\n        parser.addListener(\"startpagemargin\", startRule);\n        parser.addListener(\"startkeyframerule\", startRule);\n\n        parser.addListener(\"property\", function(event){\n            var property = event.property,\n                name = property.text.toLowerCase(),\n                parts = event.value.parts,\n                i = 0,\n                colorType = \"\",\n                len = parts.length;\n\n            if(propertiesToCheck[name]){\n                while(i < len){\n                    if (parts[i].type === \"color\"){\n                        if (\"alpha\" in parts[i] || \"hue\" in parts[i]){\n\n                            if (/([^\\)]+)\\(/.test(parts[i])){\n                                colorType = RegExp.$1.toUpperCase();\n                            }\n\n                            if (!lastProperty || (lastProperty.property.text.toLowerCase() !== name || lastProperty.colorType !== \"compat\")){\n                                reporter.report(\"Fallback \" + name + \" (hex or RGB) should precede \" + colorType + \" \" + name + \".\", event.line, event.col, rule);\n                            }\n                        } else {\n                            event.colorType = \"compat\";\n                        }\n                    }\n\n                    i++;\n                }\n            }\n\n            lastProperty = event;\n        });\n\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"floats\",\n    name: \"Disallow too many floats\",\n    desc: \"This rule tests if the float property is used too many times\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this;\n        var count = 0;\n        parser.addListener(\"property\", function(event){\n            if (event.property.text.toLowerCase() === \"float\" &&\n                    event.value.text.toLowerCase() !== \"none\"){\n                count++;\n            }\n        });\n        parser.addListener(\"endstylesheet\", function(){\n            reporter.stat(\"floats\", count);\n            if (count >= 10){\n                reporter.rollupWarn(\"Too many floats (\" + count + \"), you're probably using them for layout. Consider using a grid system instead.\", rule);\n            }\n        });\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"font-faces\",\n    name: \"Don't use too many web fonts\",\n    desc: \"Too many different web fonts in the same stylesheet.\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this,\n            count = 0;\n\n\n        parser.addListener(\"startfontface\", function(){\n            count++;\n        });\n\n        parser.addListener(\"endstylesheet\", function(){\n            if (count > 5){\n                reporter.rollupWarn(\"Too many @font-face declarations (\" + count + \").\", rule);\n            }\n        });\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"font-sizes\",\n    name: \"Disallow too many font sizes\",\n    desc: \"Checks the number of font-size declarations.\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this,\n            count = 0;\n        parser.addListener(\"property\", function(event){\n            if (event.property.toString() === \"font-size\"){\n                count++;\n            }\n        });\n        parser.addListener(\"endstylesheet\", function(){\n            reporter.stat(\"font-sizes\", count);\n            if (count >= 10){\n                reporter.rollupWarn(\"Too many font-size declarations (\" + count + \"), abstraction needed.\", rule);\n            }\n        });\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"gradients\",\n    name: \"Require all gradient definitions\",\n    desc: \"When using a vendor-prefixed gradient, make sure to use them all.\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this,\n            gradients;\n\n        parser.addListener(\"startrule\", function(){\n            gradients = {\n                moz: 0,\n                webkit: 0,\n                oldWebkit: 0,\n                o: 0\n            };\n        });\n\n        parser.addListener(\"property\", function(event){\n\n            if (/\\-(moz|o|webkit)(?:\\-(?:linear|radial))\\-gradient/i.test(event.value)){\n                gradients[RegExp.$1] = 1;\n            } else if (/\\-webkit\\-gradient/i.test(event.value)){\n                gradients.oldWebkit = 1;\n            }\n\n        });\n\n        parser.addListener(\"endrule\", function(event){\n            var missing = [];\n\n            if (!gradients.moz){\n                missing.push(\"Firefox 3.6+\");\n            }\n\n            if (!gradients.webkit){\n                missing.push(\"Webkit (Safari 5+, Chrome)\");\n            }\n\n            if (!gradients.oldWebkit){\n                missing.push(\"Old Webkit (Safari 4+, Chrome)\");\n            }\n\n            if (!gradients.o){\n                missing.push(\"Opera 11.1+\");\n            }\n\n            if (missing.length && missing.length < 4){\n                reporter.report(\"Missing vendor-prefixed CSS gradients for \" + missing.join(\", \") + \".\", event.selectors[0].line, event.selectors[0].col, rule);\n            }\n\n        });\n\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"ids\",\n    name: \"Disallow IDs in selectors\",\n    desc: \"Selectors should not contain IDs.\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this;\n        parser.addListener(\"startrule\", function(event){\n            var selectors = event.selectors,\n                selector,\n                part,\n                modifier,\n                idCount,\n                i, j, k;\n\n            for (i=0; i < selectors.length; i++){\n                selector = selectors[i];\n                idCount = 0;\n\n                for (j=0; j < selector.parts.length; j++){\n                    part = selector.parts[j];\n                    if (part.type === parser.SELECTOR_PART_TYPE){\n                        for (k=0; k < part.modifiers.length; k++){\n                            modifier = part.modifiers[k];\n                            if (modifier.type === \"id\"){\n                                idCount++;\n                            }\n                        }\n                    }\n                }\n\n                if (idCount === 1){\n                    reporter.report(\"Don't use IDs in selectors.\", selector.line, selector.col, rule);\n                } else if (idCount > 1){\n                    reporter.report(idCount + \" IDs in the selector, really?\", selector.line, selector.col, rule);\n                }\n            }\n\n        });\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"import\",\n    name: \"Disallow @import\",\n    desc: \"Don't use @import, use <link> instead.\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this;\n\n        parser.addListener(\"import\", function(event){\n            reporter.report(\"@import prevents parallel downloads, use <link> instead.\", event.line, event.col, rule);\n        });\n\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"important\",\n    name: \"Disallow !important\",\n    desc: \"Be careful when using !important declaration\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this,\n            count = 0;\n        parser.addListener(\"property\", function(event){\n            if (event.important === true){\n                count++;\n                reporter.report(\"Use of !important\", event.line, event.col, rule);\n            }\n        });\n        parser.addListener(\"endstylesheet\", function(){\n            reporter.stat(\"important\", count);\n            if (count >= 10){\n                reporter.rollupWarn(\"Too many !important declarations (\" + count + \"), try to use less than 10 to avoid specificity issues.\", rule);\n            }\n        });\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"known-properties\",\n    name: \"Require use of known properties\",\n    desc: \"Properties should be known (listed in CSS3 specification) or be a vendor-prefixed property.\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this;\n\n        parser.addListener(\"property\", function(event){\n            if (event.invalid) {\n                reporter.report(event.invalid.message, event.line, event.col, rule);\n            }\n\n        });\n    }\n\n});\nCSSLint.addRule({\n    id: \"order-alphabetical\",\n    name: \"Alphabetical order\",\n    desc: \"Assure properties are in alphabetical order\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this,\n            properties;\n\n        var startRule = function () {\n            properties = [];\n        };\n\n        parser.addListener(\"startrule\", startRule);\n        parser.addListener(\"startfontface\", startRule);\n        parser.addListener(\"startpage\", startRule);\n        parser.addListener(\"startpagemargin\", startRule);\n        parser.addListener(\"startkeyframerule\", startRule);\n\n        parser.addListener(\"property\", function(event){\n            var name = event.property.text,\n                lowerCasePrefixLessName = name.toLowerCase().replace(/^-.*?-/, \"\");\n\n            properties.push(lowerCasePrefixLessName);\n        });\n\n        parser.addListener(\"endrule\", function(event){\n            var currentProperties = properties.join(\",\"),\n                expectedProperties = properties.sort().join(\",\");\n\n            if (currentProperties !== expectedProperties){\n                reporter.report(\"Rule doesn't have all its properties in alphabetical ordered.\", event.line, event.col, rule);\n            }\n        });\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"outline-none\",\n    name: \"Disallow outline: none\",\n    desc: \"Use of outline: none or outline: 0 should be limited to :focus rules.\",\n    browsers: \"All\",\n    tags: [\"Accessibility\"],\n    init: function(parser, reporter){\n        var rule = this,\n            lastRule;\n\n        function startRule(event){\n            if (event.selectors){\n                lastRule = {\n                    line: event.line,\n                    col: event.col,\n                    selectors: event.selectors,\n                    propCount: 0,\n                    outline: false\n                };\n            } else {\n                lastRule = null;\n            }\n        }\n\n        function endRule(){\n            if (lastRule){\n                if (lastRule.outline){\n                    if (lastRule.selectors.toString().toLowerCase().indexOf(\":focus\") === -1){\n                        reporter.report(\"Outlines should only be modified using :focus.\", lastRule.line, lastRule.col, rule);\n                    } else if (lastRule.propCount === 1) {\n                        reporter.report(\"Outlines shouldn't be hidden unless other visual changes are made.\", lastRule.line, lastRule.col, rule);\n                    }\n                }\n            }\n        }\n\n        parser.addListener(\"startrule\", startRule);\n        parser.addListener(\"startfontface\", startRule);\n        parser.addListener(\"startpage\", startRule);\n        parser.addListener(\"startpagemargin\", startRule);\n        parser.addListener(\"startkeyframerule\", startRule);\n\n        parser.addListener(\"property\", function(event){\n            var name = event.property.text.toLowerCase(),\n                value = event.value;\n\n            if (lastRule){\n                lastRule.propCount++;\n                if (name === \"outline\" && (value.toString() === \"none\" || value.toString() === \"0\")){\n                    lastRule.outline = true;\n                }\n            }\n\n        });\n\n        parser.addListener(\"endrule\", endRule);\n        parser.addListener(\"endfontface\", endRule);\n        parser.addListener(\"endpage\", endRule);\n        parser.addListener(\"endpagemargin\", endRule);\n        parser.addListener(\"endkeyframerule\", endRule);\n\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"overqualified-elements\",\n    name: \"Disallow overqualified elements\",\n    desc: \"Don't use classes or IDs with elements (a.foo or a#foo).\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this,\n            classes = {};\n\n        parser.addListener(\"startrule\", function(event){\n            var selectors = event.selectors,\n                selector,\n                part,\n                modifier,\n                i, j, k;\n\n            for (i=0; i < selectors.length; i++){\n                selector = selectors[i];\n\n                for (j=0; j < selector.parts.length; j++){\n                    part = selector.parts[j];\n                    if (part.type === parser.SELECTOR_PART_TYPE){\n                        for (k=0; k < part.modifiers.length; k++){\n                            modifier = part.modifiers[k];\n                            if (part.elementName && modifier.type === \"id\"){\n                                reporter.report(\"Element (\" + part + \") is overqualified, just use \" + modifier + \" without element name.\", part.line, part.col, rule);\n                            } else if (modifier.type === \"class\"){\n\n                                if (!classes[modifier]){\n                                    classes[modifier] = [];\n                                }\n                                classes[modifier].push({ modifier: modifier, part: part });\n                            }\n                        }\n                    }\n                }\n            }\n        });\n\n        parser.addListener(\"endstylesheet\", function(){\n\n            var prop;\n            for (prop in classes){\n                if (classes.hasOwnProperty(prop)){\n                    if (classes[prop].length === 1 && classes[prop][0].part.elementName){\n                        reporter.report(\"Element (\" + classes[prop][0].part + \") is overqualified, just use \" + classes[prop][0].modifier + \" without element name.\", classes[prop][0].part.line, classes[prop][0].part.col, rule);\n                    }\n                }\n            }\n        });\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"qualified-headings\",\n    name: \"Disallow qualified headings\",\n    desc: \"Headings should not be qualified (namespaced).\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this;\n\n        parser.addListener(\"startrule\", function(event){\n            var selectors = event.selectors,\n                selector,\n                part,\n                i, j;\n\n            for (i=0; i < selectors.length; i++){\n                selector = selectors[i];\n\n                for (j=0; j < selector.parts.length; j++){\n                    part = selector.parts[j];\n                    if (part.type === parser.SELECTOR_PART_TYPE){\n                        if (part.elementName && /h[1-6]/.test(part.elementName.toString()) && j > 0){\n                            reporter.report(\"Heading (\" + part.elementName + \") should not be qualified.\", part.line, part.col, rule);\n                        }\n                    }\n                }\n            }\n        });\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"regex-selectors\",\n    name: \"Disallow selectors that look like regexs\",\n    desc: \"Selectors that look like regular expressions are slow and should be avoided.\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this;\n\n        parser.addListener(\"startrule\", function(event){\n            var selectors = event.selectors,\n                selector,\n                part,\n                modifier,\n                i, j, k;\n\n            for (i=0; i < selectors.length; i++){\n                selector = selectors[i];\n                for (j=0; j < selector.parts.length; j++){\n                    part = selector.parts[j];\n                    if (part.type === parser.SELECTOR_PART_TYPE){\n                        for (k=0; k < part.modifiers.length; k++){\n                            modifier = part.modifiers[k];\n                            if (modifier.type === \"attribute\"){\n                                if (/([\\~\\|\\^\\$\\*]=)/.test(modifier)){\n                                    reporter.report(\"Attribute selectors with \" + RegExp.$1 + \" are slow!\", modifier.line, modifier.col, rule);\n                                }\n                            }\n\n                        }\n                    }\n                }\n            }\n        });\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"rules-count\",\n    name: \"Rules Count\",\n    desc: \"Track how many rules there are.\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var count = 0;\n        parser.addListener(\"startrule\", function(){\n            count++;\n        });\n\n        parser.addListener(\"endstylesheet\", function(){\n            reporter.stat(\"rule-count\", count);\n        });\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"selector-max-approaching\",\n    name: \"Warn when approaching the 4095 selector limit for IE\",\n    desc: \"Will warn when selector count is >= 3800 selectors.\",\n    browsers: \"IE\",\n    init: function(parser, reporter) {\n        var rule = this, count = 0;\n\n        parser.addListener(\"startrule\", function(event) {\n            count += event.selectors.length;\n        });\n\n        parser.addListener(\"endstylesheet\", function() {\n            if (count >= 3800) {\n                reporter.report(\"You have \" + count + \" selectors. Internet Explorer supports a maximum of 4095 selectors per stylesheet. Consider refactoring.\",0,0,rule);\n            }\n        });\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"selector-max\",\n    name: \"Error when past the 4095 selector limit for IE\",\n    desc: \"Will error when selector count is > 4095.\",\n    browsers: \"IE\",\n    init: function(parser, reporter){\n        var rule = this, count = 0;\n\n        parser.addListener(\"startrule\", function(event) {\n            count += event.selectors.length;\n        });\n\n        parser.addListener(\"endstylesheet\", function() {\n            if (count > 4095) {\n                reporter.report(\"You have \" + count + \" selectors. Internet Explorer supports a maximum of 4095 selectors per stylesheet. Consider refactoring.\",0,0,rule);\n            }\n        });\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"selector-newline\",\n    name: \"Disallow new-line characters in selectors\",\n    desc: \"New-line characters in selectors are usually a forgotten comma and not a descendant combinator.\",\n    browsers: \"All\",\n    init: function(parser, reporter) {\n        var rule = this;\n\n        function startRule(event) {\n            var i, len, selector, p, n, pLen, part, part2, type, currentLine, nextLine,\n                selectors = event.selectors;\n\n            for (i = 0, len = selectors.length; i < len; i++) {\n                selector = selectors[i];\n                for (p = 0, pLen = selector.parts.length; p < pLen; p++) {\n                    for (n = p + 1; n < pLen; n++) {\n                        part = selector.parts[p];\n                        part2 = selector.parts[n];\n                        type = part.type;\n                        currentLine = part.line;\n                        nextLine = part2.line;\n\n                        if (type === \"descendant\" && nextLine > currentLine) {\n                            reporter.report(\"newline character found in selector (forgot a comma?)\", currentLine, selectors[i].parts[0].col, rule);\n                        }\n                    }\n                }\n\n            }\n        }\n\n        parser.addListener(\"startrule\", startRule);\n\n    }\n});\n\nCSSLint.addRule({\n    id: \"shorthand\",\n    name: \"Require shorthand properties\",\n    desc: \"Use shorthand properties where possible.\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this,\n            prop, i, len,\n            propertiesToCheck = {},\n            properties,\n            mapping = {\n                \"margin\": [\n                    \"margin-top\",\n                    \"margin-bottom\",\n                    \"margin-left\",\n                    \"margin-right\"\n                ],\n                \"padding\": [\n                    \"padding-top\",\n                    \"padding-bottom\",\n                    \"padding-left\",\n                    \"padding-right\"\n                ]\n            };\n        for (prop in mapping){\n            if (mapping.hasOwnProperty(prop)){\n                for (i=0, len=mapping[prop].length; i < len; i++){\n                    propertiesToCheck[mapping[prop][i]] = prop;\n                }\n            }\n        }\n\n        function startRule(){\n            properties = {};\n        }\n        function endRule(event){\n\n            var prop, i, len, total;\n            for (prop in mapping){\n                if (mapping.hasOwnProperty(prop)){\n                    total=0;\n\n                    for (i=0, len=mapping[prop].length; i < len; i++){\n                        total += properties[mapping[prop][i]] ? 1 : 0;\n                    }\n\n                    if (total === mapping[prop].length){\n                        reporter.report(\"The properties \" + mapping[prop].join(\", \") + \" can be replaced by \" + prop + \".\", event.line, event.col, rule);\n                    }\n                }\n            }\n        }\n\n        parser.addListener(\"startrule\", startRule);\n        parser.addListener(\"startfontface\", startRule);\n        parser.addListener(\"property\", function(event){\n            var name = event.property.toString().toLowerCase();\n\n            if (propertiesToCheck[name]){\n                properties[name] = 1;\n            }\n        });\n\n        parser.addListener(\"endrule\", endRule);\n        parser.addListener(\"endfontface\", endRule);\n\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"star-property-hack\",\n    name: \"Disallow properties with a star prefix\",\n    desc: \"Checks for the star property hack (targets IE6/7)\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this;\n        parser.addListener(\"property\", function(event){\n            var property = event.property;\n\n            if (property.hack === \"*\") {\n                reporter.report(\"Property with star prefix found.\", event.property.line, event.property.col, rule);\n            }\n        });\n    }\n});\n\nCSSLint.addRule({\n    id: \"text-indent\",\n    name: \"Disallow negative text-indent\",\n    desc: \"Checks for text indent less than -99px\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this,\n            textIndent,\n            direction;\n\n\n        function startRule(){\n            textIndent = false;\n            direction = \"inherit\";\n        }\n        function endRule(){\n            if (textIndent && direction !== \"ltr\"){\n                reporter.report(\"Negative text-indent doesn't work well with RTL. If you use text-indent for image replacement explicitly set direction for that item to ltr.\", textIndent.line, textIndent.col, rule);\n            }\n        }\n\n        parser.addListener(\"startrule\", startRule);\n        parser.addListener(\"startfontface\", startRule);\n        parser.addListener(\"property\", function(event){\n            var name = event.property.toString().toLowerCase(),\n                value = event.value;\n\n            if (name === \"text-indent\" && value.parts[0].value < -99){\n                textIndent = event.property;\n            } else if (name === \"direction\" && value.toString() === \"ltr\"){\n                direction = \"ltr\";\n            }\n        });\n\n        parser.addListener(\"endrule\", endRule);\n        parser.addListener(\"endfontface\", endRule);\n\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"underscore-property-hack\",\n    name: \"Disallow properties with an underscore prefix\",\n    desc: \"Checks for the underscore property hack (targets IE6)\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this;\n        parser.addListener(\"property\", function(event){\n            var property = event.property;\n\n            if (property.hack === \"_\") {\n                reporter.report(\"Property with underscore prefix found.\", event.property.line, event.property.col, rule);\n            }\n        });\n    }\n});\n\nCSSLint.addRule({\n    id: \"unique-headings\",\n    name: \"Headings should only be defined once\",\n    desc: \"Headings should be defined only once.\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this;\n\n        var headings = {\n                h1: 0,\n                h2: 0,\n                h3: 0,\n                h4: 0,\n                h5: 0,\n                h6: 0\n            };\n\n        parser.addListener(\"startrule\", function(event){\n            var selectors = event.selectors,\n                selector,\n                part,\n                pseudo,\n                i, j;\n\n            for (i=0; i < selectors.length; i++){\n                selector = selectors[i];\n                part = selector.parts[selector.parts.length-1];\n\n                if (part.elementName && /(h[1-6])/i.test(part.elementName.toString())){\n\n                    for (j=0; j < part.modifiers.length; j++){\n                        if (part.modifiers[j].type === \"pseudo\"){\n                            pseudo = true;\n                            break;\n                        }\n                    }\n\n                    if (!pseudo){\n                        headings[RegExp.$1]++;\n                        if (headings[RegExp.$1] > 1) {\n                            reporter.report(\"Heading (\" + part.elementName + \") has already been defined.\", part.line, part.col, rule);\n                        }\n                    }\n                }\n            }\n        });\n\n        parser.addListener(\"endstylesheet\", function(){\n            var prop,\n                messages = [];\n\n            for (prop in headings){\n                if (headings.hasOwnProperty(prop)){\n                    if (headings[prop] > 1){\n                        messages.push(headings[prop] + \" \" + prop + \"s\");\n                    }\n                }\n            }\n\n            if (messages.length){\n                reporter.rollupWarn(\"You have \" + messages.join(\", \") + \" defined in this stylesheet.\", rule);\n            }\n        });\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"universal-selector\",\n    name: \"Disallow universal selector\",\n    desc: \"The universal selector (*) is known to be slow.\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this;\n\n        parser.addListener(\"startrule\", function(event){\n            var selectors = event.selectors,\n                selector,\n                part,\n                i;\n\n            for (i=0; i < selectors.length; i++){\n                selector = selectors[i];\n\n                part = selector.parts[selector.parts.length-1];\n                if (part.elementName === \"*\"){\n                    reporter.report(rule.desc, part.line, part.col, rule);\n                }\n            }\n        });\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"unqualified-attributes\",\n    name: \"Disallow unqualified attribute selectors\",\n    desc: \"Unqualified attribute selectors are known to be slow.\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this;\n\n        parser.addListener(\"startrule\", function(event){\n\n            var selectors = event.selectors,\n                selector,\n                part,\n                modifier,\n                i, k;\n\n            for (i=0; i < selectors.length; i++){\n                selector = selectors[i];\n\n                part = selector.parts[selector.parts.length-1];\n                if (part.type === parser.SELECTOR_PART_TYPE){\n                    for (k=0; k < part.modifiers.length; k++){\n                        modifier = part.modifiers[k];\n                        if (modifier.type === \"attribute\" && (!part.elementName || part.elementName === \"*\")){\n                            reporter.report(rule.desc, part.line, part.col, rule);\n                        }\n                    }\n                }\n\n            }\n        });\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"vendor-prefix\",\n    name: \"Require standard property with vendor prefix\",\n    desc: \"When using a vendor-prefixed property, make sure to include the standard one.\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this,\n            properties,\n            num,\n            propertiesToCheck = {\n                \"-webkit-border-radius\": \"border-radius\",\n                \"-webkit-border-top-left-radius\": \"border-top-left-radius\",\n                \"-webkit-border-top-right-radius\": \"border-top-right-radius\",\n                \"-webkit-border-bottom-left-radius\": \"border-bottom-left-radius\",\n                \"-webkit-border-bottom-right-radius\": \"border-bottom-right-radius\",\n\n                \"-o-border-radius\": \"border-radius\",\n                \"-o-border-top-left-radius\": \"border-top-left-radius\",\n                \"-o-border-top-right-radius\": \"border-top-right-radius\",\n                \"-o-border-bottom-left-radius\": \"border-bottom-left-radius\",\n                \"-o-border-bottom-right-radius\": \"border-bottom-right-radius\",\n\n                \"-moz-border-radius\": \"border-radius\",\n                \"-moz-border-radius-topleft\": \"border-top-left-radius\",\n                \"-moz-border-radius-topright\": \"border-top-right-radius\",\n                \"-moz-border-radius-bottomleft\": \"border-bottom-left-radius\",\n                \"-moz-border-radius-bottomright\": \"border-bottom-right-radius\",\n\n                \"-moz-column-count\": \"column-count\",\n                \"-webkit-column-count\": \"column-count\",\n\n                \"-moz-column-gap\": \"column-gap\",\n                \"-webkit-column-gap\": \"column-gap\",\n\n                \"-moz-column-rule\": \"column-rule\",\n                \"-webkit-column-rule\": \"column-rule\",\n\n                \"-moz-column-rule-style\": \"column-rule-style\",\n                \"-webkit-column-rule-style\": \"column-rule-style\",\n\n                \"-moz-column-rule-color\": \"column-rule-color\",\n                \"-webkit-column-rule-color\": \"column-rule-color\",\n\n                \"-moz-column-rule-width\": \"column-rule-width\",\n                \"-webkit-column-rule-width\": \"column-rule-width\",\n\n                \"-moz-column-width\": \"column-width\",\n                \"-webkit-column-width\": \"column-width\",\n\n                \"-webkit-column-span\": \"column-span\",\n                \"-webkit-columns\": \"columns\",\n\n                \"-moz-box-shadow\": \"box-shadow\",\n                \"-webkit-box-shadow\": \"box-shadow\",\n\n                \"-moz-transform\" : \"transform\",\n                \"-webkit-transform\" : \"transform\",\n                \"-o-transform\" : \"transform\",\n                \"-ms-transform\" : \"transform\",\n\n                \"-moz-transform-origin\" : \"transform-origin\",\n                \"-webkit-transform-origin\" : \"transform-origin\",\n                \"-o-transform-origin\" : \"transform-origin\",\n                \"-ms-transform-origin\" : \"transform-origin\",\n\n                \"-moz-box-sizing\" : \"box-sizing\",\n                \"-webkit-box-sizing\" : \"box-sizing\"\n            };\n        function startRule(){\n            properties = {};\n            num = 1;\n        }\n        function endRule(){\n            var prop,\n                i,\n                len,\n                needed,\n                actual,\n                needsStandard = [];\n\n            for (prop in properties){\n                if (propertiesToCheck[prop]){\n                    needsStandard.push({ actual: prop, needed: propertiesToCheck[prop]});\n                }\n            }\n\n            for (i=0, len=needsStandard.length; i < len; i++){\n                needed = needsStandard[i].needed;\n                actual = needsStandard[i].actual;\n\n                if (!properties[needed]){\n                    reporter.report(\"Missing standard property '\" + needed + \"' to go along with '\" + actual + \"'.\", properties[actual][0].name.line, properties[actual][0].name.col, rule);\n                } else {\n                    if (properties[needed][0].pos < properties[actual][0].pos){\n                        reporter.report(\"Standard property '\" + needed + \"' should come after vendor-prefixed property '\" + actual + \"'.\", properties[actual][0].name.line, properties[actual][0].name.col, rule);\n                    }\n                }\n            }\n\n        }\n\n        parser.addListener(\"startrule\", startRule);\n        parser.addListener(\"startfontface\", startRule);\n        parser.addListener(\"startpage\", startRule);\n        parser.addListener(\"startpagemargin\", startRule);\n        parser.addListener(\"startkeyframerule\", startRule);\n\n        parser.addListener(\"property\", function(event){\n            var name = event.property.text.toLowerCase();\n\n            if (!properties[name]){\n                properties[name] = [];\n            }\n\n            properties[name].push({ name: event.property, value : event.value, pos:num++ });\n        });\n\n        parser.addListener(\"endrule\", endRule);\n        parser.addListener(\"endfontface\", endRule);\n        parser.addListener(\"endpage\", endRule);\n        parser.addListener(\"endpagemargin\", endRule);\n        parser.addListener(\"endkeyframerule\", endRule);\n    }\n\n});\n\nCSSLint.addRule({\n    id: \"zero-units\",\n    name: \"Disallow units for 0 values\",\n    desc: \"You don't need to specify units when a value is 0.\",\n    browsers: \"All\",\n    init: function(parser, reporter){\n        var rule = this;\n        parser.addListener(\"property\", function(event){\n            var parts = event.value.parts,\n                i = 0,\n                len = parts.length;\n\n            while(i < len){\n                if ((parts[i].units || parts[i].type === \"percentage\") && parts[i].value === 0 && parts[i].type !== \"time\"){\n                    reporter.report(\"Values of 0 shouldn't have units specified.\", parts[i].line, parts[i].col, rule);\n                }\n                i++;\n            }\n\n        });\n\n    }\n\n});\n\n(function() {\n    var xmlEscape = function(str) {\n        if (!str || str.constructor !== String) {\n            return \"\";\n        }\n\n        return str.replace(/[\\\"&><]/g, function(match) {\n            switch (match) {\n                case \"\\\"\":\n                    return \"&quot;\";\n                case \"&\":\n                    return \"&amp;\";\n                case \"<\":\n                    return \"&lt;\";\n                case \">\":\n                    return \"&gt;\";\n            }\n        });\n    };\n\n    CSSLint.addFormatter({\n        id: \"checkstyle-xml\",\n        name: \"Checkstyle XML format\",\n        startFormat: function(){\n            return \"<?xml version=\\\"1.0\\\" encoding=\\\"utf-8\\\"?><checkstyle>\";\n        },\n        endFormat: function(){\n            return \"</checkstyle>\";\n        },\n        readError: function(filename, message) {\n            return \"<file name=\\\"\" + xmlEscape(filename) + \"\\\"><error line=\\\"0\\\" column=\\\"0\\\" severty=\\\"error\\\" message=\\\"\" + xmlEscape(message) + \"\\\"></error></file>\";\n        },\n        formatResults: function(results, filename/*, options*/) {\n            var messages = results.messages,\n                output = [];\n            var generateSource = function(rule) {\n                if (!rule || !(\"name\" in rule)) {\n                    return \"\";\n                }\n                return \"net.csslint.\" + rule.name.replace(/\\s/g,\"\");\n            };\n\n\n\n            if (messages.length > 0) {\n                output.push(\"<file name=\\\"\"+filename+\"\\\">\");\n                CSSLint.Util.forEach(messages, function (message) {\n                    if (!message.rollup) {\n                        output.push(\"<error line=\\\"\" + message.line + \"\\\" column=\\\"\" + message.col + \"\\\" severity=\\\"\" + message.type + \"\\\"\" +\n                          \" message=\\\"\" + xmlEscape(message.message) + \"\\\" source=\\\"\" + generateSource(message.rule) +\"\\\"/>\");\n                    }\n                });\n                output.push(\"</file>\");\n            }\n\n            return output.join(\"\");\n        }\n    });\n\n}());\n\nCSSLint.addFormatter({\n    id: \"compact\",\n    name: \"Compact, 'porcelain' format\",\n    startFormat: function() {\n        return \"\";\n    },\n    endFormat: function() {\n        return \"\";\n    },\n    formatResults: function(results, filename, options) {\n        var messages = results.messages,\n            output = \"\";\n        options = options || {};\n        var capitalize = function(str) {\n            return str.charAt(0).toUpperCase() + str.slice(1);\n        };\n\n        if (messages.length === 0) {\n              return options.quiet ? \"\" : filename + \": Lint Free!\";\n        }\n\n        CSSLint.Util.forEach(messages, function(message) {\n            if (message.rollup) {\n                output += filename + \": \" + capitalize(message.type) + \" - \" + message.message + \"\\n\";\n            } else {\n                output += filename + \": \" + \"line \" + message.line +\n                    \", col \" + message.col + \", \" + capitalize(message.type) + \" - \" + message.message + \" (\" + message.rule.id + \")\\n\";\n            }\n        });\n\n        return output;\n    }\n});\n\nCSSLint.addFormatter({\n    id: \"csslint-xml\",\n    name: \"CSSLint XML format\",\n    startFormat: function(){\n        return \"<?xml version=\\\"1.0\\\" encoding=\\\"utf-8\\\"?><csslint>\";\n    },\n    endFormat: function(){\n        return \"</csslint>\";\n    },\n    formatResults: function(results, filename/*, options*/) {\n        var messages = results.messages,\n            output = [];\n        var escapeSpecialCharacters = function(str) {\n            if (!str || str.constructor !== String) {\n                return \"\";\n            }\n            return str.replace(/\\\"/g, \"'\").replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\");\n        };\n\n        if (messages.length > 0) {\n            output.push(\"<file name=\\\"\"+filename+\"\\\">\");\n            CSSLint.Util.forEach(messages, function (message) {\n                if (message.rollup) {\n                    output.push(\"<issue severity=\\\"\" + message.type + \"\\\" reason=\\\"\" + escapeSpecialCharacters(message.message) + \"\\\" evidence=\\\"\" + escapeSpecialCharacters(message.evidence) + \"\\\"/>\");\n                } else {\n                    output.push(\"<issue line=\\\"\" + message.line + \"\\\" char=\\\"\" + message.col + \"\\\" severity=\\\"\" + message.type + \"\\\"\" +\n                        \" reason=\\\"\" + escapeSpecialCharacters(message.message) + \"\\\" evidence=\\\"\" + escapeSpecialCharacters(message.evidence) + \"\\\"/>\");\n                }\n            });\n            output.push(\"</file>\");\n        }\n\n        return output.join(\"\");\n    }\n});\n\nCSSLint.addFormatter({\n    id: \"junit-xml\",\n    name: \"JUNIT XML format\",\n    startFormat: function(){\n        return \"<?xml version=\\\"1.0\\\" encoding=\\\"utf-8\\\"?><testsuites>\";\n    },\n    endFormat: function() {\n        return \"</testsuites>\";\n    },\n    formatResults: function(results, filename/*, options*/) {\n\n        var messages = results.messages,\n            output = [],\n            tests = {\n                \"error\": 0,\n                \"failure\": 0\n            };\n        var generateSource = function(rule) {\n            if (!rule || !(\"name\" in rule)) {\n                return \"\";\n            }\n            return \"net.csslint.\" + rule.name.replace(/\\s/g,\"\");\n        };\n        var escapeSpecialCharacters = function(str) {\n\n            if (!str || str.constructor !== String) {\n                return \"\";\n            }\n\n            return str.replace(/\\\"/g, \"'\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\");\n\n        };\n\n        if (messages.length > 0) {\n\n            messages.forEach(function (message) {\n                var type = message.type === \"warning\" ? \"error\" : message.type;\n                if (!message.rollup) {\n                    output.push(\"<testcase time=\\\"0\\\" name=\\\"\" + generateSource(message.rule) + \"\\\">\");\n                    output.push(\"<\" + type + \" message=\\\"\" + escapeSpecialCharacters(message.message) + \"\\\"><![CDATA[\" + message.line + \":\" + message.col + \":\" + escapeSpecialCharacters(message.evidence)  + \"]]></\" + type + \">\");\n                    output.push(\"</testcase>\");\n\n                    tests[type] += 1;\n\n                }\n\n            });\n\n            output.unshift(\"<testsuite time=\\\"0\\\" tests=\\\"\" + messages.length + \"\\\" skipped=\\\"0\\\" errors=\\\"\" + tests.error + \"\\\" failures=\\\"\" + tests.failure + \"\\\" package=\\\"net.csslint\\\" name=\\\"\" + filename + \"\\\">\");\n            output.push(\"</testsuite>\");\n\n        }\n\n        return output.join(\"\");\n\n    }\n});\n\nCSSLint.addFormatter({\n    id: \"lint-xml\",\n    name: \"Lint XML format\",\n    startFormat: function(){\n        return \"<?xml version=\\\"1.0\\\" encoding=\\\"utf-8\\\"?><lint>\";\n    },\n    endFormat: function(){\n        return \"</lint>\";\n    },\n    formatResults: function(results, filename/*, options*/) {\n        var messages = results.messages,\n            output = [];\n        var escapeSpecialCharacters = function(str) {\n            if (!str || str.constructor !== String) {\n                return \"\";\n            }\n            return str.replace(/\\\"/g, \"'\").replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\");\n        };\n\n        if (messages.length > 0) {\n\n            output.push(\"<file name=\\\"\"+filename+\"\\\">\");\n            CSSLint.Util.forEach(messages, function (message) {\n                if (message.rollup) {\n                    output.push(\"<issue severity=\\\"\" + message.type + \"\\\" reason=\\\"\" + escapeSpecialCharacters(message.message) + \"\\\" evidence=\\\"\" + escapeSpecialCharacters(message.evidence) + \"\\\"/>\");\n                } else {\n                    output.push(\"<issue line=\\\"\" + message.line + \"\\\" char=\\\"\" + message.col + \"\\\" severity=\\\"\" + message.type + \"\\\"\" +\n                        \" reason=\\\"\" + escapeSpecialCharacters(message.message) + \"\\\" evidence=\\\"\" + escapeSpecialCharacters(message.evidence) + \"\\\"/>\");\n                }\n            });\n            output.push(\"</file>\");\n        }\n\n        return output.join(\"\");\n    }\n});\n\nCSSLint.addFormatter({\n    id: \"text\",\n    name: \"Plain Text\",\n    startFormat: function() {\n        return \"\";\n    },\n    endFormat: function() {\n        return \"\";\n    },\n    formatResults: function(results, filename, options) {\n        var messages = results.messages,\n            output = \"\";\n        options = options || {};\n\n        if (messages.length === 0) {\n            return options.quiet ? \"\" : \"\\n\\ncsslint: No errors in \" + filename + \".\";\n        }\n\n        output = \"\\n\\ncsslint: There \";\n        if (messages.length === 1) {\n            output += \"is 1 problem\";\n        } else {\n            output += \"are \" + messages.length  +  \" problems\";\n        }\n        output += \" in \" + filename + \".\";\n\n        var pos = filename.lastIndexOf(\"/\"),\n            shortFilename = filename;\n\n        if (pos === -1){\n            pos = filename.lastIndexOf(\"\\\\\");\n        }\n        if (pos > -1){\n            shortFilename = filename.substring(pos+1);\n        }\n\n        CSSLint.Util.forEach(messages, function (message, i) {\n            output = output + \"\\n\\n\" + shortFilename;\n            if (message.rollup) {\n                output += \"\\n\" + (i+1) + \": \" + message.type;\n                output += \"\\n\" + message.message;\n            } else {\n                output += \"\\n\" + (i+1) + \": \" + message.type + \" at line \" + message.line + \", col \" + message.col;\n                output += \"\\n\" + message.message;\n                output += \"\\n\" + message.evidence;\n            }\n        });\n\n        return output;\n    }\n});\n\nmodule.exports.CSSLint = CSSLint;\n\n});\n\nace.define(\"ace/mode/css_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/worker/mirror\",\"ace/mode/css/csslint\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar Mirror = require(\"../worker/mirror\").Mirror;\nvar CSSLint = require(\"./css/csslint\").CSSLint;\n\nvar Worker = exports.Worker = function(sender) {\n    Mirror.call(this, sender);\n    this.setTimeout(400);\n    this.ruleset = null;\n    this.setDisabledRules(\"ids|order-alphabetical\");\n    this.setInfoRules(\n      \"adjoining-classes|qualified-headings|zero-units|gradients|\" +\n      \"import|outline-none|vendor-prefix\"\n    );\n};\n\noop.inherits(Worker, Mirror);\n\n(function() {\n    this.setInfoRules = function(ruleNames) {\n        if (typeof ruleNames == \"string\")\n            ruleNames = ruleNames.split(\"|\");\n        this.infoRules = lang.arrayToMap(ruleNames);\n        this.doc.getValue() && this.deferredUpdate.schedule(100);\n    };\n\n    this.setDisabledRules = function(ruleNames) {\n        if (!ruleNames) {\n            this.ruleset = null;\n        } else {\n            if (typeof ruleNames == \"string\")\n                ruleNames = ruleNames.split(\"|\");\n            var all = {};\n\n            CSSLint.getRules().forEach(function(x){\n                all[x.id] = true;\n            });\n            ruleNames.forEach(function(x) {\n                delete all[x];\n            });\n            \n            this.ruleset = all;\n        }\n        this.doc.getValue() && this.deferredUpdate.schedule(100);\n    };\n\n    this.onUpdate = function() {\n        var value = this.doc.getValue();\n        if (!value)\n            return this.sender.emit(\"annotate\", []);\n        var infoRules = this.infoRules;\n\n        var result = CSSLint.verify(value, this.ruleset);\n        this.sender.emit(\"annotate\", result.messages.map(function(msg) {\n            return {\n                row: msg.line - 1,\n                column: msg.col - 1,\n                text: msg.message,\n                type: infoRules[msg.rule.id] ? \"info\" : msg.type,\n                rule: msg.rule.name\n            }\n        }));\n    };\n\n}).call(Worker.prototype);\n\n});\n\nace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\nfunction Empty() {}\n\nif (!Function.prototype.bind) {\n    Function.prototype.bind = function bind(that) { // .length is 1\n        var target = this;\n        if (typeof target != \"function\") {\n            throw new TypeError(\"Function.prototype.bind called on incompatible \" + target);\n        }\n        var args = slice.call(arguments, 1); // for normal call\n        var bound = function () {\n\n            if (this instanceof bound) {\n\n                var result = target.apply(\n                    this,\n                    args.concat(slice.call(arguments))\n                );\n                if (Object(result) === result) {\n                    return result;\n                }\n                return this;\n\n            } else {\n                return target.apply(\n                    that,\n                    args.concat(slice.call(arguments))\n                );\n\n            }\n\n        };\n        if(target.prototype) {\n            Empty.prototype = target.prototype;\n            bound.prototype = new Empty();\n            Empty.prototype = null;\n        }\n        return bound;\n    };\n}\nvar call = Function.prototype.call;\nvar prototypeOfArray = Array.prototype;\nvar prototypeOfObject = Object.prototype;\nvar slice = prototypeOfArray.slice;\nvar _toString = call.bind(prototypeOfObject.toString);\nvar owns = call.bind(prototypeOfObject.hasOwnProperty);\nvar defineGetter;\nvar defineSetter;\nvar lookupGetter;\nvar lookupSetter;\nvar supportsAccessors;\nif ((supportsAccessors = owns(prototypeOfObject, \"__defineGetter__\"))) {\n    defineGetter = call.bind(prototypeOfObject.__defineGetter__);\n    defineSetter = call.bind(prototypeOfObject.__defineSetter__);\n    lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);\n    lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);\n}\nif ([1,2].splice(0).length != 2) {\n    if(function() { // test IE < 9 to splice bug - see issue #138\n        function makeArray(l) {\n            var a = new Array(l+2);\n            a[0] = a[1] = 0;\n            return a;\n        }\n        var array = [], lengthBefore;\n        \n        array.splice.apply(array, makeArray(20));\n        array.splice.apply(array, makeArray(26));\n\n        lengthBefore = array.length; //46\n        array.splice(5, 0, \"XXX\"); // add one element\n\n        lengthBefore + 1 == array.length\n\n        if (lengthBefore + 1 == array.length) {\n            return true;// has right splice implementation without bugs\n        }\n    }()) {//IE 6/7\n        var array_splice = Array.prototype.splice;\n        Array.prototype.splice = function(start, deleteCount) {\n            if (!arguments.length) {\n                return [];\n            } else {\n                return array_splice.apply(this, [\n                    start === void 0 ? 0 : start,\n                    deleteCount === void 0 ? (this.length - start) : deleteCount\n                ].concat(slice.call(arguments, 2)))\n            }\n        };\n    } else {//IE8\n        Array.prototype.splice = function(pos, removeCount){\n            var length = this.length;\n            if (pos > 0) {\n                if (pos > length)\n                    pos = length;\n            } else if (pos == void 0) {\n                pos = 0;\n            } else if (pos < 0) {\n                pos = Math.max(length + pos, 0);\n            }\n\n            if (!(pos+removeCount < length))\n                removeCount = length - pos;\n\n            var removed = this.slice(pos, pos+removeCount);\n            var insert = slice.call(arguments, 2);\n            var add = insert.length;            \n            if (pos === length) {\n                if (add) {\n                    this.push.apply(this, insert);\n                }\n            } else {\n                var remove = Math.min(removeCount, length - pos);\n                var tailOldPos = pos + remove;\n                var tailNewPos = tailOldPos + add - remove;\n                var tailCount = length - tailOldPos;\n                var lengthAfterRemove = length - remove;\n\n                if (tailNewPos < tailOldPos) { // case A\n                    for (var i = 0; i < tailCount; ++i) {\n                        this[tailNewPos+i] = this[tailOldPos+i];\n                    }\n                } else if (tailNewPos > tailOldPos) { // case B\n                    for (i = tailCount; i--; ) {\n                        this[tailNewPos+i] = this[tailOldPos+i];\n                    }\n                } // else, add == remove (nothing to do)\n\n                if (add && pos === lengthAfterRemove) {\n                    this.length = lengthAfterRemove; // truncate array\n                    this.push.apply(this, insert);\n                } else {\n                    this.length = lengthAfterRemove + add; // reserves space\n                    for (i = 0; i < add; ++i) {\n                        this[pos+i] = insert[i];\n                    }\n                }\n            }\n            return removed;\n        };\n    }\n}\nif (!Array.isArray) {\n    Array.isArray = function isArray(obj) {\n        return _toString(obj) == \"[object Array]\";\n    };\n}\nvar boxedString = Object(\"a\"),\n    splitString = boxedString[0] != \"a\" || !(0 in boxedString);\n\nif (!Array.prototype.forEach) {\n    Array.prototype.forEach = function forEach(fun /*, thisp*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            thisp = arguments[1],\n            i = -1,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(); // TODO message\n        }\n\n        while (++i < length) {\n            if (i in self) {\n                fun.call(thisp, self[i], i, object);\n            }\n        }\n    };\n}\nif (!Array.prototype.map) {\n    Array.prototype.map = function map(fun /*, thisp*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            result = Array(length),\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self)\n                result[i] = fun.call(thisp, self[i], i, object);\n        }\n        return result;\n    };\n}\nif (!Array.prototype.filter) {\n    Array.prototype.filter = function filter(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                    object,\n            length = self.length >>> 0,\n            result = [],\n            value,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self) {\n                value = self[i];\n                if (fun.call(thisp, value, i, object)) {\n                    result.push(value);\n                }\n            }\n        }\n        return result;\n    };\n}\nif (!Array.prototype.every) {\n    Array.prototype.every = function every(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self && !fun.call(thisp, self[i], i, object)) {\n                return false;\n            }\n        }\n        return true;\n    };\n}\nif (!Array.prototype.some) {\n    Array.prototype.some = function some(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self && fun.call(thisp, self[i], i, object)) {\n                return true;\n            }\n        }\n        return false;\n    };\n}\nif (!Array.prototype.reduce) {\n    Array.prototype.reduce = function reduce(fun /*, initial*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n        if (!length && arguments.length == 1) {\n            throw new TypeError(\"reduce of empty array with no initial value\");\n        }\n\n        var i = 0;\n        var result;\n        if (arguments.length >= 2) {\n            result = arguments[1];\n        } else {\n            do {\n                if (i in self) {\n                    result = self[i++];\n                    break;\n                }\n                if (++i >= length) {\n                    throw new TypeError(\"reduce of empty array with no initial value\");\n                }\n            } while (true);\n        }\n\n        for (; i < length; i++) {\n            if (i in self) {\n                result = fun.call(void 0, result, self[i], i, object);\n            }\n        }\n\n        return result;\n    };\n}\nif (!Array.prototype.reduceRight) {\n    Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n        if (!length && arguments.length == 1) {\n            throw new TypeError(\"reduceRight of empty array with no initial value\");\n        }\n\n        var result, i = length - 1;\n        if (arguments.length >= 2) {\n            result = arguments[1];\n        } else {\n            do {\n                if (i in self) {\n                    result = self[i--];\n                    break;\n                }\n                if (--i < 0) {\n                    throw new TypeError(\"reduceRight of empty array with no initial value\");\n                }\n            } while (true);\n        }\n\n        do {\n            if (i in this) {\n                result = fun.call(void 0, result, self[i], i, object);\n            }\n        } while (i--);\n\n        return result;\n    };\n}\nif (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {\n    Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {\n        var self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                toObject(this),\n            length = self.length >>> 0;\n\n        if (!length) {\n            return -1;\n        }\n\n        var i = 0;\n        if (arguments.length > 1) {\n            i = toInteger(arguments[1]);\n        }\n        i = i >= 0 ? i : Math.max(0, length + i);\n        for (; i < length; i++) {\n            if (i in self && self[i] === sought) {\n                return i;\n            }\n        }\n        return -1;\n    };\n}\nif (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {\n    Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {\n        var self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                toObject(this),\n            length = self.length >>> 0;\n\n        if (!length) {\n            return -1;\n        }\n        var i = length - 1;\n        if (arguments.length > 1) {\n            i = Math.min(i, toInteger(arguments[1]));\n        }\n        i = i >= 0 ? i : length - Math.abs(i);\n        for (; i >= 0; i--) {\n            if (i in self && sought === self[i]) {\n                return i;\n            }\n        }\n        return -1;\n    };\n}\nif (!Object.getPrototypeOf) {\n    Object.getPrototypeOf = function getPrototypeOf(object) {\n        return object.__proto__ || (\n            object.constructor ?\n            object.constructor.prototype :\n            prototypeOfObject\n        );\n    };\n}\nif (!Object.getOwnPropertyDescriptor) {\n    var ERR_NON_OBJECT = \"Object.getOwnPropertyDescriptor called on a \" +\n                         \"non-object: \";\n    Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n        if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n            throw new TypeError(ERR_NON_OBJECT + object);\n        if (!owns(object, property))\n            return;\n\n        var descriptor, getter, setter;\n        descriptor =  { enumerable: true, configurable: true };\n        if (supportsAccessors) {\n            var prototype = object.__proto__;\n            object.__proto__ = prototypeOfObject;\n\n            var getter = lookupGetter(object, property);\n            var setter = lookupSetter(object, property);\n            object.__proto__ = prototype;\n\n            if (getter || setter) {\n                if (getter) descriptor.get = getter;\n                if (setter) descriptor.set = setter;\n                return descriptor;\n            }\n        }\n        descriptor.value = object[property];\n        return descriptor;\n    };\n}\nif (!Object.getOwnPropertyNames) {\n    Object.getOwnPropertyNames = function getOwnPropertyNames(object) {\n        return Object.keys(object);\n    };\n}\nif (!Object.create) {\n    var createEmpty;\n    if (Object.prototype.__proto__ === null) {\n        createEmpty = function () {\n            return { \"__proto__\": null };\n        };\n    } else {\n        createEmpty = function () {\n            var empty = {};\n            for (var i in empty)\n                empty[i] = null;\n            empty.constructor =\n            empty.hasOwnProperty =\n            empty.propertyIsEnumerable =\n            empty.isPrototypeOf =\n            empty.toLocaleString =\n            empty.toString =\n            empty.valueOf =\n            empty.__proto__ = null;\n            return empty;\n        }\n    }\n\n    Object.create = function create(prototype, properties) {\n        var object;\n        if (prototype === null) {\n            object = createEmpty();\n        } else {\n            if (typeof prototype != \"object\")\n                throw new TypeError(\"typeof prototype[\"+(typeof prototype)+\"] != 'object'\");\n            var Type = function () {};\n            Type.prototype = prototype;\n            object = new Type();\n            object.__proto__ = prototype;\n        }\n        if (properties !== void 0)\n            Object.defineProperties(object, properties);\n        return object;\n    };\n}\n\nfunction doesDefinePropertyWork(object) {\n    try {\n        Object.defineProperty(object, \"sentinel\", {});\n        return \"sentinel\" in object;\n    } catch (exception) {\n    }\n}\nif (Object.defineProperty) {\n    var definePropertyWorksOnObject = doesDefinePropertyWork({});\n    var definePropertyWorksOnDom = typeof document == \"undefined\" ||\n        doesDefinePropertyWork(document.createElement(\"div\"));\n    if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {\n        var definePropertyFallback = Object.defineProperty;\n    }\n}\n\nif (!Object.defineProperty || definePropertyFallback) {\n    var ERR_NON_OBJECT_DESCRIPTOR = \"Property description must be an object: \";\n    var ERR_NON_OBJECT_TARGET = \"Object.defineProperty called on non-object: \"\n    var ERR_ACCESSORS_NOT_SUPPORTED = \"getters & setters can not be defined \" +\n                                      \"on this javascript engine\";\n\n    Object.defineProperty = function defineProperty(object, property, descriptor) {\n        if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n            throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n        if ((typeof descriptor != \"object\" && typeof descriptor != \"function\") || descriptor === null)\n            throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n        if (definePropertyFallback) {\n            try {\n                return definePropertyFallback.call(Object, object, property, descriptor);\n            } catch (exception) {\n            }\n        }\n        if (owns(descriptor, \"value\")) {\n\n            if (supportsAccessors && (lookupGetter(object, property) ||\n                                      lookupSetter(object, property)))\n            {\n                var prototype = object.__proto__;\n                object.__proto__ = prototypeOfObject;\n                delete object[property];\n                object[property] = descriptor.value;\n                object.__proto__ = prototype;\n            } else {\n                object[property] = descriptor.value;\n            }\n        } else {\n            if (!supportsAccessors)\n                throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n            if (owns(descriptor, \"get\"))\n                defineGetter(object, property, descriptor.get);\n            if (owns(descriptor, \"set\"))\n                defineSetter(object, property, descriptor.set);\n        }\n\n        return object;\n    };\n}\nif (!Object.defineProperties) {\n    Object.defineProperties = function defineProperties(object, properties) {\n        for (var property in properties) {\n            if (owns(properties, property))\n                Object.defineProperty(object, property, properties[property]);\n        }\n        return object;\n    };\n}\nif (!Object.seal) {\n    Object.seal = function seal(object) {\n        return object;\n    };\n}\nif (!Object.freeze) {\n    Object.freeze = function freeze(object) {\n        return object;\n    };\n}\ntry {\n    Object.freeze(function () {});\n} catch (exception) {\n    Object.freeze = (function freeze(freezeObject) {\n        return function freeze(object) {\n            if (typeof object == \"function\") {\n                return object;\n            } else {\n                return freezeObject(object);\n            }\n        };\n    })(Object.freeze);\n}\nif (!Object.preventExtensions) {\n    Object.preventExtensions = function preventExtensions(object) {\n        return object;\n    };\n}\nif (!Object.isSealed) {\n    Object.isSealed = function isSealed(object) {\n        return false;\n    };\n}\nif (!Object.isFrozen) {\n    Object.isFrozen = function isFrozen(object) {\n        return false;\n    };\n}\nif (!Object.isExtensible) {\n    Object.isExtensible = function isExtensible(object) {\n        if (Object(object) === object) {\n            throw new TypeError(); // TODO message\n        }\n        var name = '';\n        while (owns(object, name)) {\n            name += '?';\n        }\n        object[name] = true;\n        var returnValue = owns(object, name);\n        delete object[name];\n        return returnValue;\n    };\n}\nif (!Object.keys) {\n    var hasDontEnumBug = true,\n        dontEnums = [\n            \"toString\",\n            \"toLocaleString\",\n            \"valueOf\",\n            \"hasOwnProperty\",\n            \"isPrototypeOf\",\n            \"propertyIsEnumerable\",\n            \"constructor\"\n        ],\n        dontEnumsLength = dontEnums.length;\n\n    for (var key in {\"toString\": null}) {\n        hasDontEnumBug = false;\n    }\n\n    Object.keys = function keys(object) {\n\n        if (\n            (typeof object != \"object\" && typeof object != \"function\") ||\n            object === null\n        ) {\n            throw new TypeError(\"Object.keys called on a non-object\");\n        }\n\n        var keys = [];\n        for (var name in object) {\n            if (owns(object, name)) {\n                keys.push(name);\n            }\n        }\n\n        if (hasDontEnumBug) {\n            for (var i = 0, ii = dontEnumsLength; i < ii; i++) {\n                var dontEnum = dontEnums[i];\n                if (owns(object, dontEnum)) {\n                    keys.push(dontEnum);\n                }\n            }\n        }\n        return keys;\n    };\n\n}\nif (!Date.now) {\n    Date.now = function now() {\n        return new Date().getTime();\n    };\n}\nvar ws = \"\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\" +\n    \"\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\" +\n    \"\\u2029\\uFEFF\";\nif (!String.prototype.trim || ws.trim()) {\n    ws = \"[\" + ws + \"]\";\n    var trimBeginRegexp = new RegExp(\"^\" + ws + ws + \"*\"),\n        trimEndRegexp = new RegExp(ws + ws + \"*$\");\n    String.prototype.trim = function trim() {\n        return String(this).replace(trimBeginRegexp, \"\").replace(trimEndRegexp, \"\");\n    };\n}\n\nfunction toInteger(n) {\n    n = +n;\n    if (n !== n) { // isNaN\n        n = 0;\n    } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {\n        n = (n > 0 || -1) * Math.floor(Math.abs(n));\n    }\n    return n;\n}\n\nfunction isPrimitive(input) {\n    var type = typeof input;\n    return (\n        input === null ||\n        type === \"undefined\" ||\n        type === \"boolean\" ||\n        type === \"number\" ||\n        type === \"string\"\n    );\n}\n\nfunction toPrimitive(input) {\n    var val, valueOf, toString;\n    if (isPrimitive(input)) {\n        return input;\n    }\n    valueOf = input.valueOf;\n    if (typeof valueOf === \"function\") {\n        val = valueOf.call(input);\n        if (isPrimitive(val)) {\n            return val;\n        }\n    }\n    toString = input.toString;\n    if (typeof toString === \"function\") {\n        val = toString.call(input);\n        if (isPrimitive(val)) {\n            return val;\n        }\n    }\n    throw new TypeError();\n}\nvar toObject = function (o) {\n    if (o == null) { // this matches both null and undefined\n        throw new TypeError(\"can't convert \"+o+\" to object\");\n    }\n    return Object(o);\n};\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/worker-html.js",
    "content": "\"no use strict\";\n;(function(window) {\nif (typeof window.window != \"undefined\" && window.document)\n    return;\nif (window.require && window.define)\n    return;\n\nif (!window.console) {\n    window.console = function() {\n        var msgs = Array.prototype.slice.call(arguments, 0);\n        postMessage({type: \"log\", data: msgs});\n    };\n    window.console.error =\n    window.console.warn = \n    window.console.log =\n    window.console.trace = window.console;\n}\nwindow.window = window;\nwindow.ace = window;\n\nwindow.onerror = function(message, file, line, col, err) {\n    postMessage({type: \"error\", data: {\n        message: message,\n        data: err.data,\n        file: file,\n        line: line, \n        col: col,\n        stack: err.stack\n    }});\n};\n\nwindow.normalizeModule = function(parentId, moduleName) {\n    // normalize plugin requires\n    if (moduleName.indexOf(\"!\") !== -1) {\n        var chunks = moduleName.split(\"!\");\n        return window.normalizeModule(parentId, chunks[0]) + \"!\" + window.normalizeModule(parentId, chunks[1]);\n    }\n    // normalize relative requires\n    if (moduleName.charAt(0) == \".\") {\n        var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n        moduleName = (base ? base + \"/\" : \"\") + moduleName;\n        \n        while (moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n            var previous = moduleName;\n            moduleName = moduleName.replace(/^\\.\\//, \"\").replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n        }\n    }\n    \n    return moduleName;\n};\n\nwindow.require = function require(parentId, id) {\n    if (!id) {\n        id = parentId;\n        parentId = null;\n    }\n    if (!id.charAt)\n        throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");\n\n    id = window.normalizeModule(parentId, id);\n\n    var module = window.require.modules[id];\n    if (module) {\n        if (!module.initialized) {\n            module.initialized = true;\n            module.exports = module.factory().exports;\n        }\n        return module.exports;\n    }\n   \n    if (!window.require.tlns)\n        return console.log(\"unable to load \" + id);\n    \n    var path = resolveModuleId(id, window.require.tlns);\n    if (path.slice(-3) != \".js\") path += \".js\";\n    \n    window.require.id = id;\n    window.require.modules[id] = {}; // prevent infinite loop on broken modules\n    importScripts(path);\n    return window.require(parentId, id);\n};\nfunction resolveModuleId(id, paths) {\n    var testPath = id, tail = \"\";\n    while (testPath) {\n        var alias = paths[testPath];\n        if (typeof alias == \"string\") {\n            return alias + tail;\n        } else if (alias) {\n            return  alias.location.replace(/\\/*$/, \"/\") + (tail || alias.main || alias.name);\n        } else if (alias === false) {\n            return \"\";\n        }\n        var i = testPath.lastIndexOf(\"/\");\n        if (i === -1) break;\n        tail = testPath.substr(i) + tail;\n        testPath = testPath.slice(0, i);\n    }\n    return id;\n}\nwindow.require.modules = {};\nwindow.require.tlns = {};\n\nwindow.define = function(id, deps, factory) {\n    if (arguments.length == 2) {\n        factory = deps;\n        if (typeof id != \"string\") {\n            deps = id;\n            id = window.require.id;\n        }\n    } else if (arguments.length == 1) {\n        factory = id;\n        deps = [];\n        id = window.require.id;\n    }\n    \n    if (typeof factory != \"function\") {\n        window.require.modules[id] = {\n            exports: factory,\n            initialized: true\n        };\n        return;\n    }\n\n    if (!deps.length)\n        // If there is no dependencies, we inject \"require\", \"exports\" and\n        // \"module\" as dependencies, to provide CommonJS compatibility.\n        deps = [\"require\", \"exports\", \"module\"];\n\n    var req = function(childId) {\n        return window.require(id, childId);\n    };\n\n    window.require.modules[id] = {\n        exports: {},\n        factory: function() {\n            var module = this;\n            var returnExports = factory.apply(this, deps.map(function(dep) {\n                switch (dep) {\n                    // Because \"require\", \"exports\" and \"module\" aren't actual\n                    // dependencies, we must handle them seperately.\n                    case \"require\": return req;\n                    case \"exports\": return module.exports;\n                    case \"module\":  return module;\n                    // But for all other dependencies, we can just go ahead and\n                    // require them.\n                    default:        return req(dep);\n                }\n            }));\n            if (returnExports)\n                module.exports = returnExports;\n            return module;\n        }\n    };\n};\nwindow.define.amd = {};\nrequire.tlns = {};\nwindow.initBaseUrls  = function initBaseUrls(topLevelNamespaces) {\n    for (var i in topLevelNamespaces)\n        require.tlns[i] = topLevelNamespaces[i];\n};\n\nwindow.initSender = function initSender() {\n\n    var EventEmitter = window.require(\"ace/lib/event_emitter\").EventEmitter;\n    var oop = window.require(\"ace/lib/oop\");\n    \n    var Sender = function() {};\n    \n    (function() {\n        \n        oop.implement(this, EventEmitter);\n                \n        this.callback = function(data, callbackId) {\n            postMessage({\n                type: \"call\",\n                id: callbackId,\n                data: data\n            });\n        };\n    \n        this.emit = function(name, data) {\n            postMessage({\n                type: \"event\",\n                name: name,\n                data: data\n            });\n        };\n        \n    }).call(Sender.prototype);\n    \n    return new Sender();\n};\n\nvar main = window.main = null;\nvar sender = window.sender = null;\n\nwindow.onmessage = function(e) {\n    var msg = e.data;\n    if (msg.event && sender) {\n        sender._signal(msg.event, msg.data);\n    }\n    else if (msg.command) {\n        if (main[msg.command])\n            main[msg.command].apply(main, msg.args);\n        else if (window[msg.command])\n            window[msg.command].apply(window, msg.args);\n        else\n            throw new Error(\"Unknown command:\" + msg.command);\n    }\n    else if (msg.init) {\n        window.initBaseUrls(msg.tlns);\n        require(\"ace/lib/es5-shim\");\n        sender = window.sender = window.initSender();\n        var clazz = require(msg.module)[msg.classname];\n        main = window.main = new clazz(sender);\n    }\n};\n})(this);\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.inherits = function(ctor, superCtor) {\n    ctor.super_ = superCtor;\n    ctor.prototype = Object.create(superCtor.prototype, {\n        constructor: {\n            value: ctor,\n            enumerable: false,\n            writable: true,\n            configurable: true\n        }\n    });\n};\n\nexports.mixin = function(obj, mixin) {\n    for (var key in mixin) {\n        obj[key] = mixin[key];\n    }\n    return obj;\n};\n\nexports.implement = function(proto, mixin) {\n    exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.last = function(a) {\n    return a[a.length - 1];\n};\n\nexports.stringReverse = function(string) {\n    return string.split(\"\").reverse().join(\"\");\n};\n\nexports.stringRepeat = function (string, count) {\n    var result = '';\n    while (count > 0) {\n        if (count & 1)\n            result += string;\n\n        if (count >>= 1)\n            string += string;\n    }\n    return result;\n};\n\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\n\nexports.stringTrimLeft = function (string) {\n    return string.replace(trimBeginRegexp, '');\n};\n\nexports.stringTrimRight = function (string) {\n    return string.replace(trimEndRegexp, '');\n};\n\nexports.copyObject = function(obj) {\n    var copy = {};\n    for (var key in obj) {\n        copy[key] = obj[key];\n    }\n    return copy;\n};\n\nexports.copyArray = function(array){\n    var copy = [];\n    for (var i=0, l=array.length; i<l; i++) {\n        if (array[i] && typeof array[i] == \"object\")\n            copy[i] = this.copyObject(array[i]);\n        else \n            copy[i] = array[i];\n    }\n    return copy;\n};\n\nexports.deepCopy = function deepCopy(obj) {\n    if (typeof obj !== \"object\" || !obj)\n        return obj;\n    var copy;\n    if (Array.isArray(obj)) {\n        copy = [];\n        for (var key = 0; key < obj.length; key++) {\n            copy[key] = deepCopy(obj[key]);\n        }\n        return copy;\n    }\n    if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n        return obj;\n    \n    copy = {};\n    for (var key in obj)\n        copy[key] = deepCopy(obj[key]);\n    return copy;\n};\n\nexports.arrayToMap = function(arr) {\n    var map = {};\n    for (var i=0; i<arr.length; i++) {\n        map[arr[i]] = 1;\n    }\n    return map;\n\n};\n\nexports.createMap = function(props) {\n    var map = Object.create(null);\n    for (var i in props) {\n        map[i] = props[i];\n    }\n    return map;\n};\nexports.arrayRemove = function(array, value) {\n  for (var i = 0; i <= array.length; i++) {\n    if (value === array[i]) {\n      array.splice(i, 1);\n    }\n  }\n};\n\nexports.escapeRegExp = function(str) {\n    return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\n\nexports.escapeHTML = function(str) {\n    return str.replace(/&/g, \"&#38;\").replace(/\"/g, \"&#34;\").replace(/'/g, \"&#39;\").replace(/</g, \"&#60;\");\n};\n\nexports.getMatchOffsets = function(string, regExp) {\n    var matches = [];\n\n    string.replace(regExp, function(str) {\n        matches.push({\n            offset: arguments[arguments.length-2],\n            length: str.length\n        });\n    });\n\n    return matches;\n};\nexports.deferredCall = function(fcn) {\n    var timer = null;\n    var callback = function() {\n        timer = null;\n        fcn();\n    };\n\n    var deferred = function(timeout) {\n        deferred.cancel();\n        timer = setTimeout(callback, timeout || 0);\n        return deferred;\n    };\n\n    deferred.schedule = deferred;\n\n    deferred.call = function() {\n        this.cancel();\n        fcn();\n        return deferred;\n    };\n\n    deferred.cancel = function() {\n        clearTimeout(timer);\n        timer = null;\n        return deferred;\n    };\n    \n    deferred.isPending = function() {\n        return timer;\n    };\n\n    return deferred;\n};\n\n\nexports.delayedCall = function(fcn, defaultTimeout) {\n    var timer = null;\n    var callback = function() {\n        timer = null;\n        fcn();\n    };\n\n    var _self = function(timeout) {\n        if (timer == null)\n            timer = setTimeout(callback, timeout || defaultTimeout);\n    };\n\n    _self.delay = function(timeout) {\n        timer && clearTimeout(timer);\n        timer = setTimeout(callback, timeout || defaultTimeout);\n    };\n    _self.schedule = _self;\n\n    _self.call = function() {\n        this.cancel();\n        fcn();\n    };\n\n    _self.cancel = function() {\n        timer && clearTimeout(timer);\n        timer = null;\n    };\n\n    _self.isPending = function() {\n        return timer;\n    };\n\n    return _self;\n};\n});\n\nace.define(\"ace/range\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\nvar comparePoints = function(p1, p2) {\n    return p1.row - p2.row || p1.column - p2.column;\n};\nvar Range = function(startRow, startColumn, endRow, endColumn) {\n    this.start = {\n        row: startRow,\n        column: startColumn\n    };\n\n    this.end = {\n        row: endRow,\n        column: endColumn\n    };\n};\n\n(function() {\n    this.isEqual = function(range) {\n        return this.start.row === range.start.row &&\n            this.end.row === range.end.row &&\n            this.start.column === range.start.column &&\n            this.end.column === range.end.column;\n    };\n    this.toString = function() {\n        return (\"Range: [\" + this.start.row + \"/\" + this.start.column +\n            \"] -> [\" + this.end.row + \"/\" + this.end.column + \"]\");\n    };\n\n    this.contains = function(row, column) {\n        return this.compare(row, column) == 0;\n    };\n    this.compareRange = function(range) {\n        var cmp,\n            end = range.end,\n            start = range.start;\n\n        cmp = this.compare(end.row, end.column);\n        if (cmp == 1) {\n            cmp = this.compare(start.row, start.column);\n            if (cmp == 1) {\n                return 2;\n            } else if (cmp == 0) {\n                return 1;\n            } else {\n                return 0;\n            }\n        } else if (cmp == -1) {\n            return -2;\n        } else {\n            cmp = this.compare(start.row, start.column);\n            if (cmp == -1) {\n                return -1;\n            } else if (cmp == 1) {\n                return 42;\n            } else {\n                return 0;\n            }\n        }\n    };\n    this.comparePoint = function(p) {\n        return this.compare(p.row, p.column);\n    };\n    this.containsRange = function(range) {\n        return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n    };\n    this.intersects = function(range) {\n        var cmp = this.compareRange(range);\n        return (cmp == -1 || cmp == 0 || cmp == 1);\n    };\n    this.isEnd = function(row, column) {\n        return this.end.row == row && this.end.column == column;\n    };\n    this.isStart = function(row, column) {\n        return this.start.row == row && this.start.column == column;\n    };\n    this.setStart = function(row, column) {\n        if (typeof row == \"object\") {\n            this.start.column = row.column;\n            this.start.row = row.row;\n        } else {\n            this.start.row = row;\n            this.start.column = column;\n        }\n    };\n    this.setEnd = function(row, column) {\n        if (typeof row == \"object\") {\n            this.end.column = row.column;\n            this.end.row = row.row;\n        } else {\n            this.end.row = row;\n            this.end.column = column;\n        }\n    };\n    this.inside = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isEnd(row, column) || this.isStart(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.insideStart = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isEnd(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.insideEnd = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isStart(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.compare = function(row, column) {\n        if (!this.isMultiLine()) {\n            if (row === this.start.row) {\n                return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n            }\n        }\n\n        if (row < this.start.row)\n            return -1;\n\n        if (row > this.end.row)\n            return 1;\n\n        if (this.start.row === row)\n            return column >= this.start.column ? 0 : -1;\n\n        if (this.end.row === row)\n            return column <= this.end.column ? 0 : 1;\n\n        return 0;\n    };\n    this.compareStart = function(row, column) {\n        if (this.start.row == row && this.start.column == column) {\n            return -1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.compareEnd = function(row, column) {\n        if (this.end.row == row && this.end.column == column) {\n            return 1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.compareInside = function(row, column) {\n        if (this.end.row == row && this.end.column == column) {\n            return 1;\n        } else if (this.start.row == row && this.start.column == column) {\n            return -1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.clipRows = function(firstRow, lastRow) {\n        if (this.end.row > lastRow)\n            var end = {row: lastRow + 1, column: 0};\n        else if (this.end.row < firstRow)\n            var end = {row: firstRow, column: 0};\n\n        if (this.start.row > lastRow)\n            var start = {row: lastRow + 1, column: 0};\n        else if (this.start.row < firstRow)\n            var start = {row: firstRow, column: 0};\n\n        return Range.fromPoints(start || this.start, end || this.end);\n    };\n    this.extend = function(row, column) {\n        var cmp = this.compare(row, column);\n\n        if (cmp == 0)\n            return this;\n        else if (cmp == -1)\n            var start = {row: row, column: column};\n        else\n            var end = {row: row, column: column};\n\n        return Range.fromPoints(start || this.start, end || this.end);\n    };\n\n    this.isEmpty = function() {\n        return (this.start.row === this.end.row && this.start.column === this.end.column);\n    };\n    this.isMultiLine = function() {\n        return (this.start.row !== this.end.row);\n    };\n    this.clone = function() {\n        return Range.fromPoints(this.start, this.end);\n    };\n    this.collapseRows = function() {\n        if (this.end.column == 0)\n            return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)\n        else\n            return new Range(this.start.row, 0, this.end.row, 0)\n    };\n    this.toScreenRange = function(session) {\n        var screenPosStart = session.documentToScreenPosition(this.start);\n        var screenPosEnd = session.documentToScreenPosition(this.end);\n\n        return new Range(\n            screenPosStart.row, screenPosStart.column,\n            screenPosEnd.row, screenPosEnd.column\n        );\n    };\n    this.moveBy = function(row, column) {\n        this.start.row += row;\n        this.start.column += column;\n        this.end.row += row;\n        this.end.column += column;\n    };\n\n}).call(Range.prototype);\nRange.fromPoints = function(start, end) {\n    return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\n\nRange.comparePoints = function(p1, p2) {\n    return p1.row - p2.row || p1.column - p2.column;\n};\n\n\nexports.Range = Range;\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nfunction throwDeltaError(delta, errorText){\n    console.log(\"Invalid Delta:\", delta);\n    throw \"Invalid Delta: \" + errorText;\n}\n\nfunction positionInDocument(docLines, position) {\n    return position.row    >= 0 && position.row    <  docLines.length &&\n           position.column >= 0 && position.column <= docLines[position.row].length;\n}\n\nfunction validateDelta(docLines, delta) {\n    if (delta.action != \"insert\" && delta.action != \"remove\")\n        throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n    if (!(delta.lines instanceof Array))\n        throwDeltaError(delta, \"delta.lines must be an Array\");\n    if (!delta.start || !delta.end)\n       throwDeltaError(delta, \"delta.start/end must be an present\");\n    var start = delta.start;\n    if (!positionInDocument(docLines, delta.start))\n        throwDeltaError(delta, \"delta.start must be contained in document\");\n    var end = delta.end;\n    if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n        throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n    var numRangeRows = end.row - start.row;\n    var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n    if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n        throwDeltaError(delta, \"delta.range must match delta lines\");\n}\n\nexports.applyDelta = function(docLines, delta, doNotValidate) {\n    \n    var row = delta.start.row;\n    var startColumn = delta.start.column;\n    var line = docLines[row] || \"\";\n    switch (delta.action) {\n        case \"insert\":\n            var lines = delta.lines;\n            if (lines.length === 1) {\n                docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n            } else {\n                var args = [row, 1].concat(delta.lines);\n                docLines.splice.apply(docLines, args);\n                docLines[row] = line.substring(0, startColumn) + docLines[row];\n                docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n            }\n            break;\n        case \"remove\":\n            var endColumn = delta.end.column;\n            var endRow = delta.end.row;\n            if (row === endRow) {\n                docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n            } else {\n                docLines.splice(\n                    row, endRow - row + 1,\n                    line.substring(0, startColumn) + docLines[endRow].substring(endColumn)\n                );\n            }\n            break;\n    }\n}\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar EventEmitter = {};\nvar stopPropagation = function() { this.propagationStopped = true; };\nvar preventDefault = function() { this.defaultPrevented = true; };\n\nEventEmitter._emit =\nEventEmitter._dispatchEvent = function(eventName, e) {\n    this._eventRegistry || (this._eventRegistry = {});\n    this._defaultHandlers || (this._defaultHandlers = {});\n\n    var listeners = this._eventRegistry[eventName] || [];\n    var defaultHandler = this._defaultHandlers[eventName];\n    if (!listeners.length && !defaultHandler)\n        return;\n\n    if (typeof e != \"object\" || !e)\n        e = {};\n\n    if (!e.type)\n        e.type = eventName;\n    if (!e.stopPropagation)\n        e.stopPropagation = stopPropagation;\n    if (!e.preventDefault)\n        e.preventDefault = preventDefault;\n\n    listeners = listeners.slice();\n    for (var i=0; i<listeners.length; i++) {\n        listeners[i](e, this);\n        if (e.propagationStopped)\n            break;\n    }\n    \n    if (defaultHandler && !e.defaultPrevented)\n        return defaultHandler(e, this);\n};\n\n\nEventEmitter._signal = function(eventName, e) {\n    var listeners = (this._eventRegistry || {})[eventName];\n    if (!listeners)\n        return;\n    listeners = listeners.slice();\n    for (var i=0; i<listeners.length; i++)\n        listeners[i](e, this);\n};\n\nEventEmitter.once = function(eventName, callback) {\n    var _self = this;\n    callback && this.addEventListener(eventName, function newCallback() {\n        _self.removeEventListener(eventName, newCallback);\n        callback.apply(null, arguments);\n    });\n};\n\n\nEventEmitter.setDefaultHandler = function(eventName, callback) {\n    var handlers = this._defaultHandlers\n    if (!handlers)\n        handlers = this._defaultHandlers = {_disabled_: {}};\n    \n    if (handlers[eventName]) {\n        var old = handlers[eventName];\n        var disabled = handlers._disabled_[eventName];\n        if (!disabled)\n            handlers._disabled_[eventName] = disabled = [];\n        disabled.push(old);\n        var i = disabled.indexOf(callback);\n        if (i != -1) \n            disabled.splice(i, 1);\n    }\n    handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function(eventName, callback) {\n    var handlers = this._defaultHandlers\n    if (!handlers)\n        return;\n    var disabled = handlers._disabled_[eventName];\n    \n    if (handlers[eventName] == callback) {\n        var old = handlers[eventName];\n        if (disabled)\n            this.setDefaultHandler(eventName, disabled.pop());\n    } else if (disabled) {\n        var i = disabled.indexOf(callback);\n        if (i != -1)\n            disabled.splice(i, 1);\n    }\n};\n\nEventEmitter.on =\nEventEmitter.addEventListener = function(eventName, callback, capturing) {\n    this._eventRegistry = this._eventRegistry || {};\n\n    var listeners = this._eventRegistry[eventName];\n    if (!listeners)\n        listeners = this._eventRegistry[eventName] = [];\n\n    if (listeners.indexOf(callback) == -1)\n        listeners[capturing ? \"unshift\" : \"push\"](callback);\n    return callback;\n};\n\nEventEmitter.off =\nEventEmitter.removeListener =\nEventEmitter.removeEventListener = function(eventName, callback) {\n    this._eventRegistry = this._eventRegistry || {};\n\n    var listeners = this._eventRegistry[eventName];\n    if (!listeners)\n        return;\n\n    var index = listeners.indexOf(callback);\n    if (index !== -1)\n        listeners.splice(index, 1);\n};\n\nEventEmitter.removeAllListeners = function(eventName) {\n    if (this._eventRegistry) this._eventRegistry[eventName] = [];\n};\n\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\n\nvar Anchor = exports.Anchor = function(doc, row, column) {\n    this.$onChange = this.onChange.bind(this);\n    this.attach(doc);\n    \n    if (typeof column == \"undefined\")\n        this.setPosition(row.row, row.column);\n    else\n        this.setPosition(row, column);\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n    this.getPosition = function() {\n        return this.$clipPositionToDocument(this.row, this.column);\n    };\n    this.getDocument = function() {\n        return this.document;\n    };\n    this.$insertRight = false;\n    this.onChange = function(delta) {\n        if (delta.start.row == delta.end.row && delta.start.row != this.row)\n            return;\n\n        if (delta.start.row > this.row)\n            return;\n            \n        var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight);\n        this.setPosition(point.row, point.column, true);\n    };\n    \n    function $pointsInOrder(point1, point2, equalPointsInOrder) {\n        var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n        return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n    }\n            \n    function $getTransformedPoint(delta, point, moveIfEqual) {\n        var deltaIsInsert = delta.action == \"insert\";\n        var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row    - delta.start.row);\n        var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n        var deltaStart = delta.start;\n        var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n        if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n            return {\n                row: point.row,\n                column: point.column\n            };\n        }\n        if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n            return {\n                row: point.row + deltaRowShift,\n                column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n            };\n        }\n        \n        return {\n            row: deltaStart.row,\n            column: deltaStart.column\n        };\n    }\n    this.setPosition = function(row, column, noClip) {\n        var pos;\n        if (noClip) {\n            pos = {\n                row: row,\n                column: column\n            };\n        } else {\n            pos = this.$clipPositionToDocument(row, column);\n        }\n\n        if (this.row == pos.row && this.column == pos.column)\n            return;\n\n        var old = {\n            row: this.row,\n            column: this.column\n        };\n\n        this.row = pos.row;\n        this.column = pos.column;\n        this._signal(\"change\", {\n            old: old,\n            value: pos\n        });\n    };\n    this.detach = function() {\n        this.document.removeEventListener(\"change\", this.$onChange);\n    };\n    this.attach = function(doc) {\n        this.document = doc || this.document;\n        this.document.on(\"change\", this.$onChange);\n    };\n    this.$clipPositionToDocument = function(row, column) {\n        var pos = {};\n\n        if (row >= this.document.getLength()) {\n            pos.row = Math.max(0, this.document.getLength() - 1);\n            pos.column = this.document.getLine(pos.row).length;\n        }\n        else if (row < 0) {\n            pos.row = 0;\n            pos.column = 0;\n        }\n        else {\n            pos.row = row;\n            pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n        }\n\n        if (column < 0)\n            pos.column = 0;\n\n        return pos;\n    };\n\n}).call(Anchor.prototype);\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar applyDelta = require(\"./apply_delta\").applyDelta;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\n\nvar Document = function(textOrLines) {\n    this.$lines = [\"\"];\n    if (textOrLines.length === 0) {\n        this.$lines = [\"\"];\n    } else if (Array.isArray(textOrLines)) {\n        this.insertMergedLines({row: 0, column: 0}, textOrLines);\n    } else {\n        this.insert({row: 0, column:0}, textOrLines);\n    }\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n    this.setValue = function(text) {\n        var len = this.getLength() - 1;\n        this.remove(new Range(0, 0, len, this.getLine(len).length));\n        this.insert({row: 0, column: 0}, text);\n    };\n    this.getValue = function() {\n        return this.getAllLines().join(this.getNewLineCharacter());\n    };\n    this.createAnchor = function(row, column) {\n        return new Anchor(this, row, column);\n    };\n    if (\"aaa\".split(/a/).length === 0) {\n        this.$split = function(text) {\n            return text.replace(/\\r\\n|\\r/g, \"\\n\").split(\"\\n\");\n        };\n    } else {\n        this.$split = function(text) {\n            return text.split(/\\r\\n|\\r|\\n/);\n        };\n    }\n\n\n    this.$detectNewLine = function(text) {\n        var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n        this.$autoNewLine = match ? match[1] : \"\\n\";\n        this._signal(\"changeNewLineMode\");\n    };\n    this.getNewLineCharacter = function() {\n        switch (this.$newLineMode) {\n          case \"windows\":\n            return \"\\r\\n\";\n          case \"unix\":\n            return \"\\n\";\n          default:\n            return this.$autoNewLine || \"\\n\";\n        }\n    };\n\n    this.$autoNewLine = \"\";\n    this.$newLineMode = \"auto\";\n    this.setNewLineMode = function(newLineMode) {\n        if (this.$newLineMode === newLineMode)\n            return;\n\n        this.$newLineMode = newLineMode;\n        this._signal(\"changeNewLineMode\");\n    };\n    this.getNewLineMode = function() {\n        return this.$newLineMode;\n    };\n    this.isNewLine = function(text) {\n        return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n    };\n    this.getLine = function(row) {\n        return this.$lines[row] || \"\";\n    };\n    this.getLines = function(firstRow, lastRow) {\n        return this.$lines.slice(firstRow, lastRow + 1);\n    };\n    this.getAllLines = function() {\n        return this.getLines(0, this.getLength());\n    };\n    this.getLength = function() {\n        return this.$lines.length;\n    };\n    this.getTextRange = function(range) {\n        return this.getLinesForRange(range).join(this.getNewLineCharacter());\n    };\n    this.getLinesForRange = function(range) {\n        var lines;\n        if (range.start.row === range.end.row) {\n            lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n        } else {\n            lines = this.getLines(range.start.row, range.end.row);\n            lines[0] = (lines[0] || \"\").substring(range.start.column);\n            var l = lines.length - 1;\n            if (range.end.row - range.start.row == l)\n                lines[l] = lines[l].substring(0, range.end.column);\n        }\n        return lines;\n    };\n    this.insertLines = function(row, lines) {\n        console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n        return this.insertFullLines(row, lines);\n    };\n    this.removeLines = function(firstRow, lastRow) {\n        console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n        return this.removeFullLines(firstRow, lastRow);\n    };\n    this.insertNewLine = function(position) {\n        console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n        return this.insertMergedLines(position, [\"\", \"\"]);\n    };\n    this.insert = function(position, text) {\n        if (this.getLength() <= 1)\n            this.$detectNewLine(text);\n        \n        return this.insertMergedLines(position, this.$split(text));\n    };\n    this.insertInLine = function(position, text) {\n        var start = this.clippedPos(position.row, position.column);\n        var end = this.pos(position.row, position.column + text.length);\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"insert\",\n            lines: [text]\n        }, true);\n        \n        return this.clonePos(end);\n    };\n    \n    this.clippedPos = function(row, column) {\n        var length = this.getLength();\n        if (row === undefined) {\n            row = length;\n        } else if (row < 0) {\n            row = 0;\n        } else if (row >= length) {\n            row = length - 1;\n            column = undefined;\n        }\n        var line = this.getLine(row);\n        if (column == undefined)\n            column = line.length;\n        column = Math.min(Math.max(column, 0), line.length);\n        return {row: row, column: column};\n    };\n    \n    this.clonePos = function(pos) {\n        return {row: pos.row, column: pos.column};\n    };\n    \n    this.pos = function(row, column) {\n        return {row: row, column: column};\n    };\n    \n    this.$clipPosition = function(position) {\n        var length = this.getLength();\n        if (position.row >= length) {\n            position.row = Math.max(0, length - 1);\n            position.column = this.getLine(length - 1).length;\n        } else {\n            position.row = Math.max(0, position.row);\n            position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n        }\n        return position;\n    };\n    this.insertFullLines = function(row, lines) {\n        row = Math.min(Math.max(row, 0), this.getLength());\n        var column = 0;\n        if (row < this.getLength()) {\n            lines = lines.concat([\"\"]);\n            column = 0;\n        } else {\n            lines = [\"\"].concat(lines);\n            row--;\n            column = this.$lines[row].length;\n        }\n        this.insertMergedLines({row: row, column: column}, lines);\n    };    \n    this.insertMergedLines = function(position, lines) {\n        var start = this.clippedPos(position.row, position.column);\n        var end = {\n            row: start.row + lines.length - 1,\n            column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n        };\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"insert\",\n            lines: lines\n        });\n        \n        return this.clonePos(end);\n    };\n    this.remove = function(range) {\n        var start = this.clippedPos(range.start.row, range.start.column);\n        var end = this.clippedPos(range.end.row, range.end.column);\n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"remove\",\n            lines: this.getLinesForRange({start: start, end: end})\n        });\n        return this.clonePos(start);\n    };\n    this.removeInLine = function(row, startColumn, endColumn) {\n        var start = this.clippedPos(row, startColumn);\n        var end = this.clippedPos(row, endColumn);\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"remove\",\n            lines: this.getLinesForRange({start: start, end: end})\n        }, true);\n        \n        return this.clonePos(start);\n    };\n    this.removeFullLines = function(firstRow, lastRow) {\n        firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n        lastRow  = Math.min(Math.max(0, lastRow ), this.getLength() - 1);\n        var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n        var deleteLastNewLine  = lastRow  < this.getLength() - 1;\n        var startRow = ( deleteFirstNewLine ? firstRow - 1                  : firstRow                    );\n        var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0                           );\n        var endRow   = ( deleteLastNewLine  ? lastRow + 1                   : lastRow                     );\n        var endCol   = ( deleteLastNewLine  ? 0                             : this.getLine(endRow).length ); \n        var range = new Range(startRow, startCol, endRow, endCol);\n        var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n        \n        this.applyDelta({\n            start: range.start,\n            end: range.end,\n            action: \"remove\",\n            lines: this.getLinesForRange(range)\n        });\n        return deletedLines;\n    };\n    this.removeNewLine = function(row) {\n        if (row < this.getLength() - 1 && row >= 0) {\n            this.applyDelta({\n                start: this.pos(row, this.getLine(row).length),\n                end: this.pos(row + 1, 0),\n                action: \"remove\",\n                lines: [\"\", \"\"]\n            });\n        }\n    };\n    this.replace = function(range, text) {\n        if (!(range instanceof Range))\n            range = Range.fromPoints(range.start, range.end);\n        if (text.length === 0 && range.isEmpty())\n            return range.start;\n        if (text == this.getTextRange(range))\n            return range.end;\n\n        this.remove(range);\n        var end;\n        if (text) {\n            end = this.insert(range.start, text);\n        }\n        else {\n            end = range.start;\n        }\n        \n        return end;\n    };\n    this.applyDeltas = function(deltas) {\n        for (var i=0; i<deltas.length; i++) {\n            this.applyDelta(deltas[i]);\n        }\n    };\n    this.revertDeltas = function(deltas) {\n        for (var i=deltas.length-1; i>=0; i--) {\n            this.revertDelta(deltas[i]);\n        }\n    };\n    this.applyDelta = function(delta, doNotValidate) {\n        var isInsert = delta.action == \"insert\";\n        if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n            : !Range.comparePoints(delta.start, delta.end)) {\n            return;\n        }\n        \n        if (isInsert && delta.lines.length > 20000)\n            this.$splitAndapplyLargeDelta(delta, 20000);\n        applyDelta(this.$lines, delta, doNotValidate);\n        this._signal(\"change\", delta);\n    };\n    \n    this.$splitAndapplyLargeDelta = function(delta, MAX) {\n        var lines = delta.lines;\n        var l = lines.length;\n        var row = delta.start.row; \n        var column = delta.start.column;\n        var from = 0, to = 0;\n        do {\n            from = to;\n            to += MAX - 1;\n            var chunk = lines.slice(from, to);\n            if (to > l) {\n                delta.lines = chunk;\n                delta.start.row = row + from;\n                delta.start.column = column;\n                break;\n            }\n            chunk.push(\"\");\n            this.applyDelta({\n                start: this.pos(row + from, column),\n                end: this.pos(row + to, column = 0),\n                action: delta.action,\n                lines: chunk\n            }, true);\n        } while(true);\n    };\n    this.revertDelta = function(delta) {\n        this.applyDelta({\n            start: this.clonePos(delta.start),\n            end: this.clonePos(delta.end),\n            action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n            lines: delta.lines.slice()\n        });\n    };\n    this.indexToPosition = function(index, startRow) {\n        var lines = this.$lines || this.getAllLines();\n        var newlineLength = this.getNewLineCharacter().length;\n        for (var i = startRow || 0, l = lines.length; i < l; i++) {\n            index -= lines[i].length + newlineLength;\n            if (index < 0)\n                return {row: i, column: index + lines[i].length + newlineLength};\n        }\n        return {row: l-1, column: lines[l-1].length};\n    };\n    this.positionToIndex = function(pos, startRow) {\n        var lines = this.$lines || this.getAllLines();\n        var newlineLength = this.getNewLineCharacter().length;\n        var index = 0;\n        var row = Math.min(pos.row, lines.length);\n        for (var i = startRow || 0; i < row; ++i)\n            index += lines[i].length + newlineLength;\n\n        return index + pos.column;\n    };\n\n}).call(Document.prototype);\n\nexports.Document = Document;\n});\n\nace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\nvar Document = require(\"../document\").Document;\nvar lang = require(\"../lib/lang\");\n    \nvar Mirror = exports.Mirror = function(sender) {\n    this.sender = sender;\n    var doc = this.doc = new Document(\"\");\n    \n    var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this));\n    \n    var _self = this;\n    sender.on(\"change\", function(e) {\n        var data = e.data;\n        if (data[0].start) {\n            doc.applyDeltas(data);\n        } else {\n            for (var i = 0; i < data.length; i += 2) {\n                if (Array.isArray(data[i+1])) {\n                    var d = {action: \"insert\", start: data[i], lines: data[i+1]};\n                } else {\n                    var d = {action: \"remove\", start: data[i], end: data[i+1]};\n                }\n                doc.applyDelta(d, true);\n            }\n        }\n        if (_self.$timeout)\n            return deferredUpdate.schedule(_self.$timeout);\n        _self.onUpdate();\n    });\n};\n\n(function() {\n    \n    this.$timeout = 500;\n    \n    this.setTimeout = function(timeout) {\n        this.$timeout = timeout;\n    };\n    \n    this.setValue = function(value) {\n        this.doc.setValue(value);\n        this.deferredUpdate.schedule(this.$timeout);\n    };\n    \n    this.getValue = function(callbackId) {\n        this.sender.callback(this.doc.getValue(), callbackId);\n    };\n    \n    this.onUpdate = function() {\n    };\n    \n    this.isPending = function() {\n        return this.deferredUpdate.isPending();\n    };\n    \n}).call(Mirror.prototype);\n\n});\n\nace.define(\"ace/mode/html/saxparser\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\nmodule.exports = (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error(\"Cannot find module '\"+o+\"'\")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({\n1:[function(_dereq_,module,exports){\nfunction isScopeMarker(node) {\n\tif (node.namespaceURI === \"http://www.w3.org/1999/xhtml\") {\n\t\treturn node.localName === \"applet\"\n\t\t\t|| node.localName === \"caption\"\n\t\t\t|| node.localName === \"marquee\"\n\t\t\t|| node.localName === \"object\"\n\t\t\t|| node.localName === \"table\"\n\t\t\t|| node.localName === \"td\"\n\t\t\t|| node.localName === \"th\";\n\t}\n\tif (node.namespaceURI === \"http://www.w3.org/1998/Math/MathML\") {\n\t\treturn node.localName === \"mi\"\n\t\t\t|| node.localName === \"mo\"\n\t\t\t|| node.localName === \"mn\"\n\t\t\t|| node.localName === \"ms\"\n\t\t\t|| node.localName === \"mtext\"\n\t\t\t|| node.localName === \"annotation-xml\";\n\t}\n\tif (node.namespaceURI === \"http://www.w3.org/2000/svg\") {\n\t\treturn node.localName === \"foreignObject\"\n\t\t\t|| node.localName === \"desc\"\n\t\t\t|| node.localName === \"title\";\n\t}\n}\n\nfunction isListItemScopeMarker(node) {\n\treturn isScopeMarker(node)\n\t\t|| (node.namespaceURI === \"http://www.w3.org/1999/xhtml\" && node.localName === 'ol')\n\t\t|| (node.namespaceURI === \"http://www.w3.org/1999/xhtml\" && node.localName === 'ul');\n}\n\nfunction isTableScopeMarker(node) {\n\treturn (node.namespaceURI === \"http://www.w3.org/1999/xhtml\" && node.localName === 'table')\n\t\t|| (node.namespaceURI === \"http://www.w3.org/1999/xhtml\" && node.localName === 'html');\n}\n\nfunction isTableBodyScopeMarker(node) {\n\treturn (node.namespaceURI === \"http://www.w3.org/1999/xhtml\" && node.localName === 'tbody')\n\t\t|| (node.namespaceURI === \"http://www.w3.org/1999/xhtml\" && node.localName === 'tfoot')\n\t\t|| (node.namespaceURI === \"http://www.w3.org/1999/xhtml\" && node.localName === 'thead')\n\t\t|| (node.namespaceURI === \"http://www.w3.org/1999/xhtml\" && node.localName === 'html');\n}\n\nfunction isTableRowScopeMarker(node) {\n\treturn (node.namespaceURI === \"http://www.w3.org/1999/xhtml\" && node.localName === 'tr')\n\t\t|| (node.namespaceURI === \"http://www.w3.org/1999/xhtml\" && node.localName === 'html');\n}\n\nfunction isButtonScopeMarker(node) {\n\treturn isScopeMarker(node)\n\t\t|| (node.namespaceURI === \"http://www.w3.org/1999/xhtml\" && node.localName === 'button');\n}\n\nfunction isSelectScopeMarker(node) {\n\treturn !(node.namespaceURI === \"http://www.w3.org/1999/xhtml\" && node.localName === 'optgroup')\n\t\t&& !(node.namespaceURI === \"http://www.w3.org/1999/xhtml\" && node.localName === 'option');\n}\nfunction ElementStack() {\n\tthis.elements = [];\n\tthis.rootNode = null;\n\tthis.headElement = null;\n\tthis.bodyElement = null;\n}\nElementStack.prototype._inScope = function(localName, isMarker) {\n\tfor (var i = this.elements.length - 1; i >= 0; i--) {\n\t\tvar node = this.elements[i];\n\t\tif (node.localName === localName)\n\t\t\treturn true;\n\t\tif (isMarker(node))\n\t\t\treturn false;\n\t}\n};\nElementStack.prototype.push = function(item) {\n\tthis.elements.push(item);\n};\nElementStack.prototype.pushHtmlElement = function(item) {\n\tthis.rootNode = item.node;\n\tthis.push(item);\n};\nElementStack.prototype.pushHeadElement = function(item) {\n\tthis.headElement = item.node;\n\tthis.push(item);\n};\nElementStack.prototype.pushBodyElement = function(item) {\n\tthis.bodyElement = item.node;\n\tthis.push(item);\n};\nElementStack.prototype.pop = function() {\n\treturn this.elements.pop();\n};\nElementStack.prototype.remove = function(item) {\n\tthis.elements.splice(this.elements.indexOf(item), 1);\n};\nElementStack.prototype.popUntilPopped = function(localName) {\n\tvar element;\n\tdo {\n\t\telement = this.pop();\n\t} while (element.localName != localName);\n};\n\nElementStack.prototype.popUntilTableScopeMarker = function() {\n\twhile (!isTableScopeMarker(this.top))\n\t\tthis.pop();\n};\n\nElementStack.prototype.popUntilTableBodyScopeMarker = function() {\n\twhile (!isTableBodyScopeMarker(this.top))\n\t\tthis.pop();\n};\n\nElementStack.prototype.popUntilTableRowScopeMarker = function() {\n\twhile (!isTableRowScopeMarker(this.top))\n\t\tthis.pop();\n};\nElementStack.prototype.item = function(index) {\n\treturn this.elements[index];\n};\nElementStack.prototype.contains = function(element) {\n\treturn this.elements.indexOf(element) !== -1;\n};\nElementStack.prototype.inScope = function(localName) {\n\treturn this._inScope(localName, isScopeMarker);\n};\nElementStack.prototype.inListItemScope = function(localName) {\n\treturn this._inScope(localName, isListItemScopeMarker);\n};\nElementStack.prototype.inTableScope = function(localName) {\n\treturn this._inScope(localName, isTableScopeMarker);\n};\nElementStack.prototype.inButtonScope = function(localName) {\n\treturn this._inScope(localName, isButtonScopeMarker);\n};\nElementStack.prototype.inSelectScope = function(localName) {\n\treturn this._inScope(localName, isSelectScopeMarker);\n};\nElementStack.prototype.hasNumberedHeaderElementInScope = function() {\n\tfor (var i = this.elements.length - 1; i >= 0; i--) {\n\t\tvar node = this.elements[i];\n\t\tif (node.isNumberedHeader())\n\t\t\treturn true;\n\t\tif (isScopeMarker(node))\n\t\t\treturn false;\n\t}\n};\nElementStack.prototype.furthestBlockForFormattingElement = function(element) {\n\tvar furthestBlock = null;\n\tfor (var i = this.elements.length - 1; i >= 0; i--) {\n\t\tvar node = this.elements[i];\n\t\tif (node.node === element)\n\t\t\tbreak;\n\t\tif (node.isSpecial())\n\t\t\tfurthestBlock = node;\n\t}\n    return furthestBlock;\n};\nElementStack.prototype.findIndex = function(localName) {\n\tfor (var i = this.elements.length - 1; i >= 0; i--) {\n\t\tif (this.elements[i].localName == localName)\n\t\t\treturn i;\n\t}\n    return -1;\n};\n\nElementStack.prototype.remove_openElements_until = function(callback) {\n\tvar finished = false;\n\tvar element;\n\twhile (!finished) {\n\t\telement = this.elements.pop();\n\t\tfinished = callback(element);\n\t}\n\treturn element;\n};\n\nObject.defineProperty(ElementStack.prototype, 'top', {\n\tget: function() {\n\t\treturn this.elements[this.elements.length - 1];\n\t}\n});\n\nObject.defineProperty(ElementStack.prototype, 'length', {\n\tget: function() {\n\t\treturn this.elements.length;\n\t}\n});\n\nexports.ElementStack = ElementStack;\n\n},\n{}],\n2:[function(_dereq_,module,exports){\nvar entities  = _dereq_('html5-entities');\nvar InputStream = _dereq_('./InputStream').InputStream;\n\nvar namedEntityPrefixes = {};\nObject.keys(entities).forEach(function (entityKey) {\n\tfor (var i = 0; i < entityKey.length; i++) {\n\t\tnamedEntityPrefixes[entityKey.substring(0, i + 1)] = true;\n\t}\n});\n\nfunction isAlphaNumeric(c) {\n\treturn (c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');\n}\n\nfunction isHexDigit(c) {\n\treturn (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F');\n}\n\nfunction isDecimalDigit(c) {\n\treturn (c >= '0' && c <= '9');\n}\n\nvar EntityParser = {};\n\nEntityParser.consumeEntity = function(buffer, tokenizer, additionalAllowedCharacter) {\n\tvar decodedCharacter = '';\n\tvar consumedCharacters = '';\n\tvar ch = buffer.char();\n\tif (ch === InputStream.EOF)\n\t\treturn false;\n\tconsumedCharacters += ch;\n\tif (ch == '\\t' || ch == '\\n' || ch == '\\v' || ch == ' ' || ch == '<' || ch == '&') {\n\t\tbuffer.unget(consumedCharacters);\n\t\treturn false;\n\t}\n\tif (additionalAllowedCharacter === ch) {\n\t\tbuffer.unget(consumedCharacters);\n\t\treturn false;\n\t}\n\tif (ch == '#') {\n\t\tch = buffer.shift(1);\n\t\tif (ch === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"expected-numeric-entity-but-got-eof\");\n\t\t\tbuffer.unget(consumedCharacters);\n\t\t\treturn false;\n\t\t}\n\t\tconsumedCharacters += ch;\n\t\tvar radix = 10;\n\t\tvar isDigit = isDecimalDigit;\n\t\tif (ch == 'x' || ch == 'X') {\n\t\t\tradix = 16;\n\t\t\tisDigit = isHexDigit;\n\t\t\tch = buffer.shift(1);\n\t\t\tif (ch === InputStream.EOF) {\n\t\t\t\ttokenizer._parseError(\"expected-numeric-entity-but-got-eof\");\n\t\t\t\tbuffer.unget(consumedCharacters);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconsumedCharacters += ch;\n\t\t}\n\t\tif (isDigit(ch)) {\n\t\t\tvar code = '';\n\t\t\twhile (ch !== InputStream.EOF && isDigit(ch)) {\n\t\t\t\tcode += ch;\n\t\t\t\tch = buffer.char();\n\t\t\t}\n\t\t\tcode = parseInt(code, radix);\n\t\t\tvar replacement = this.replaceEntityNumbers(code);\n\t\t\tif (replacement) {\n\t\t\t\ttokenizer._parseError(\"invalid-numeric-entity-replaced\");\n\t\t\t\tcode = replacement;\n\t\t\t}\n\t\t\tif (code > 0xFFFF && code <= 0x10FFFF) {\n\t\t        code -= 0x10000;\n\t\t        var first = ((0xffc00 & code) >> 10) + 0xD800;\n\t\t        var second = (0x3ff & code) + 0xDC00;\n\t\t\t\tdecodedCharacter = String.fromCharCode(first, second);\n\t\t\t} else\n\t\t\t\tdecodedCharacter = String.fromCharCode(code);\n\t\t\tif (ch !== ';') {\n\t\t\t\ttokenizer._parseError(\"numeric-entity-without-semicolon\");\n\t\t\t\tbuffer.unget(ch);\n\t\t\t}\n\t\t\treturn decodedCharacter;\n\t\t}\n\t\tbuffer.unget(consumedCharacters);\n\t\ttokenizer._parseError(\"expected-numeric-entity\");\n\t\treturn false;\n\t}\n\tif ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {\n\t\tvar mostRecentMatch = '';\n\t\twhile (namedEntityPrefixes[consumedCharacters]) {\n\t\t\tif (entities[consumedCharacters]) {\n\t\t\t\tmostRecentMatch = consumedCharacters;\n\t\t\t}\n\t\t\tif (ch == ';')\n\t\t\t\tbreak;\n\t\t\tch = buffer.char();\n\t\t\tif (ch === InputStream.EOF)\n\t\t\t\tbreak;\n\t\t\tconsumedCharacters += ch;\n\t\t}\n\t\tif (!mostRecentMatch) {\n\t\t\ttokenizer._parseError(\"expected-named-entity\");\n\t\t\tbuffer.unget(consumedCharacters);\n\t\t\treturn false;\n\t\t}\n\t\tdecodedCharacter = entities[mostRecentMatch];\n\t\tif (ch === ';' || !additionalAllowedCharacter || !(isAlphaNumeric(ch) || ch === '=')) {\n\t\t\tif (consumedCharacters.length > mostRecentMatch.length) {\n\t\t\t\tbuffer.unget(consumedCharacters.substring(mostRecentMatch.length));\n\t\t\t}\n\t\t\tif (ch !== ';') {\n\t\t\t\ttokenizer._parseError(\"named-entity-without-semicolon\");\n\t\t\t}\n\t\t\treturn decodedCharacter;\n\t\t}\n\t\tbuffer.unget(consumedCharacters);\n\t\treturn false;\n\t}\n};\n\nEntityParser.replaceEntityNumbers = function(c) {\n\tswitch(c) {\n\t\tcase 0x00: return 0xFFFD; // REPLACEMENT CHARACTER\n\t\tcase 0x13: return 0x0010; // Carriage return\n\t\tcase 0x80: return 0x20AC; // EURO SIGN\n\t\tcase 0x81: return 0x0081; // <control>\n\t\tcase 0x82: return 0x201A; // SINGLE LOW-9 QUOTATION MARK\n\t\tcase 0x83: return 0x0192; // LATIN SMALL LETTER F WITH HOOK\n\t\tcase 0x84: return 0x201E; // DOUBLE LOW-9 QUOTATION MARK\n\t\tcase 0x85: return 0x2026; // HORIZONTAL ELLIPSIS\n\t\tcase 0x86: return 0x2020; // DAGGER\n\t\tcase 0x87: return 0x2021; // DOUBLE DAGGER\n\t\tcase 0x88: return 0x02C6; // MODIFIER LETTER CIRCUMFLEX ACCENT\n\t\tcase 0x89: return 0x2030; // PER MILLE SIGN\n\t\tcase 0x8A: return 0x0160; // LATIN CAPITAL LETTER S WITH CARON\n\t\tcase 0x8B: return 0x2039; // SINGLE LEFT-POINTING ANGLE QUOTATION MARK\n\t\tcase 0x8C: return 0x0152; // LATIN CAPITAL LIGATURE OE\n\t\tcase 0x8D: return 0x008D; // <control>\n\t\tcase 0x8E: return 0x017D; // LATIN CAPITAL LETTER Z WITH CARON\n\t\tcase 0x8F: return 0x008F; // <control>\n\t\tcase 0x90: return 0x0090; // <control>\n\t\tcase 0x91: return 0x2018; // LEFT SINGLE QUOTATION MARK\n\t\tcase 0x92: return 0x2019; // RIGHT SINGLE QUOTATION MARK\n\t\tcase 0x93: return 0x201C; // LEFT DOUBLE QUOTATION MARK\n\t\tcase 0x94: return 0x201D; // RIGHT DOUBLE QUOTATION MARK\n\t\tcase 0x95: return 0x2022; // BULLET\n\t\tcase 0x96: return 0x2013; // EN DASH\n\t\tcase 0x97: return 0x2014; // EM DASH\n\t\tcase 0x98: return 0x02DC; // SMALL TILDE\n\t\tcase 0x99: return 0x2122; // TRADE MARK SIGN\n\t\tcase 0x9A: return 0x0161; // LATIN SMALL LETTER S WITH CARON\n\t\tcase 0x9B: return 0x203A; // SINGLE RIGHT-POINTING ANGLE QUOTATION MARK\n\t\tcase 0x9C: return 0x0153; // LATIN SMALL LIGATURE OE\n\t\tcase 0x9D: return 0x009D; // <control>\n\t\tcase 0x9E: return 0x017E; // LATIN SMALL LETTER Z WITH CARON\n\t\tcase 0x9F: return 0x0178; // LATIN CAPITAL LETTER Y WITH DIAERESIS\n\t\tdefault:\n\t\t\tif ((c >= 0xD800 && c <= 0xDFFF) || c > 0x10FFFF) {\n\t\t\t\treturn 0xFFFD;\n\t\t\t} else if ((c >= 0x0001 && c <= 0x0008) || (c >= 0x000E && c <= 0x001F) ||\n\t\t\t\t(c >= 0x007F && c <= 0x009F) || (c >= 0xFDD0 && c <= 0xFDEF) ||\n\t\t\t\tc == 0x000B || c == 0xFFFE || c == 0x1FFFE || c == 0x2FFFFE ||\n\t\t\t\tc == 0x2FFFF || c == 0x3FFFE || c == 0x3FFFF || c == 0x4FFFE ||\n\t\t\t\tc == 0x4FFFF || c == 0x5FFFE || c == 0x5FFFF || c == 0x6FFFE ||\n\t\t\t\tc == 0x6FFFF || c == 0x7FFFE || c == 0x7FFFF || c == 0x8FFFE ||\n\t\t\t\tc == 0x8FFFF || c == 0x9FFFE || c == 0x9FFFF || c == 0xAFFFE ||\n\t\t\t\tc == 0xAFFFF || c == 0xBFFFE || c == 0xBFFFF || c == 0xCFFFE ||\n\t\t\t\tc == 0xCFFFF || c == 0xDFFFE || c == 0xDFFFF || c == 0xEFFFE ||\n\t\t\t\tc == 0xEFFFF || c == 0xFFFFE || c == 0xFFFFF || c == 0x10FFFE ||\n\t\t\t\tc == 0x10FFFF) {\n\t\t\t\treturn c;\n\t\t\t}\n\t}\n};\n\nexports.EntityParser = EntityParser;\n\n},\n{\"./InputStream\":3,\"html5-entities\":12}],\n3:[function(_dereq_,module,exports){\nfunction InputStream() {\n\tthis.data = '';\n\tthis.start = 0;\n\tthis.committed = 0;\n\tthis.eof = false;\n\tthis.lastLocation = {line: 0, column: 0};\n}\n\nInputStream.EOF = -1;\n\nInputStream.DRAIN = -2;\n\nInputStream.prototype = {\n\tslice: function() {\n\t\tif(this.start >= this.data.length) {\n\t\t\tif(!this.eof) throw InputStream.DRAIN;\n\t\t\treturn InputStream.EOF;\n\t\t}\n\t\treturn this.data.slice(this.start, this.data.length);\n\t},\n\tchar: function() {\n\t\tif(!this.eof && this.start >= this.data.length - 1) throw InputStream.DRAIN;\n\t\tif(this.start >= this.data.length) {\n\t\t\treturn InputStream.EOF;\n\t\t}\n\t\tvar ch = this.data[this.start++];\n\t\tif (ch === '\\r')\n\t\t\tch = '\\n';\n\t\treturn ch;\n\t},\n\tadvance: function(amount) {\n\t\tthis.start += amount;\n\t\tif(this.start >= this.data.length) {\n\t\t\tif(!this.eof) throw InputStream.DRAIN;\n\t\t\treturn InputStream.EOF;\n\t\t} else {\n\t\t\tif(this.committed > this.data.length / 2) {\n\t\t\t\tthis.lastLocation = this.location();\n\t\t\t\tthis.data = this.data.slice(this.committed);\n\t\t\t\tthis.start = this.start - this.committed;\n\t\t\t\tthis.committed = 0;\n\t\t\t}\n\t\t}\n\t},\n\tmatchWhile: function(re) {\n\t\tif(this.eof && this.start >= this.data.length ) return '';\n\t\tvar r = new RegExp(\"^\"+re+\"+\");\n\t\tvar m = r.exec(this.slice());\n\t\tif(m) {\n\t\t\tif(!this.eof && m[0].length == this.data.length - this.start) throw InputStream.DRAIN;\n\t\t\tthis.advance(m[0].length);\n\t\t\treturn m[0];\n\t\t} else {\n\t\t\treturn '';\n\t\t}\n\t},\n\tmatchUntil: function(re) {\n\t\tvar m, s;\n\t\ts = this.slice();\n\t\tif(s === InputStream.EOF) {\n\t\t\treturn '';\n\t\t} else if(m = new RegExp(re + (this.eof ? \"|$\" : \"\")).exec(s)) {\n\t\t\tvar t = this.data.slice(this.start, this.start + m.index);\n\t\t\tthis.advance(m.index);\n\t\t\treturn t.replace(/\\r/g, '\\n').replace(/\\n{2,}/g, '\\n');\n\t\t} else {\n\t\t\tthrow InputStream.DRAIN;\n\t\t}\n\t},\n\tappend: function(data) {\n\t\tthis.data += data;\n\t},\n\tshift: function(n) {\n\t\tif(!this.eof && this.start + n >= this.data.length) throw InputStream.DRAIN;\n\t\tif(this.eof && this.start >= this.data.length) return InputStream.EOF;\n\t\tvar d = this.data.slice(this.start, this.start + n).toString();\n\t\tthis.advance(Math.min(n, this.data.length - this.start));\n\t\treturn d;\n\t},\n\tpeek: function(n) {\n\t\tif(!this.eof && this.start + n >= this.data.length) throw InputStream.DRAIN;\n\t\tif(this.eof && this.start >= this.data.length) return InputStream.EOF;\n\t\treturn this.data.slice(this.start, Math.min(this.start + n, this.data.length)).toString();\n\t},\n\tlength: function() {\n\t\treturn this.data.length - this.start - 1;\n\t},\n\tunget: function(d) {\n\t\tif(d === InputStream.EOF) return;\n\t\tthis.start -= (d.length);\n\t},\n\tundo: function() {\n\t\tthis.start = this.committed;\n\t},\n\tcommit: function() {\n\t\tthis.committed = this.start;\n\t},\n\tlocation: function() {\n\t\tvar lastLine = this.lastLocation.line;\n\t\tvar lastColumn = this.lastLocation.column;\n\t\tvar read = this.data.slice(0, this.committed);\n\t\tvar newlines = read.match(/\\n/g);\n\t\tvar line = newlines ? lastLine + newlines.length : lastLine;\n\t\tvar column = newlines ? read.length - read.lastIndexOf('\\n') - 1 : lastColumn + read.length;\n\t\treturn {line: line, column: column};\n\t}\n};\n\nexports.InputStream = InputStream;\n\n},\n{}],\n4:[function(_dereq_,module,exports){\nvar SpecialElements = {\n\t\"http://www.w3.org/1999/xhtml\": [\n\t\t'address',\n\t\t'applet',\n\t\t'area',\n\t\t'article',\n\t\t'aside',\n\t\t'base',\n\t\t'basefont',\n\t\t'bgsound',\n\t\t'blockquote',\n\t\t'body',\n\t\t'br',\n\t\t'button',\n\t\t'caption',\n\t\t'center',\n\t\t'col',\n\t\t'colgroup',\n\t\t'dd',\n\t\t'details',\n\t\t'dir',\n\t\t'div',\n\t\t'dl',\n\t\t'dt',\n\t\t'embed',\n\t\t'fieldset',\n\t\t'figcaption',\n\t\t'figure',\n\t\t'footer',\n\t\t'form',\n\t\t'frame',\n\t\t'frameset',\n\t\t'h1',\n\t\t'h2',\n\t\t'h3',\n\t\t'h4',\n\t\t'h5',\n\t\t'h6',\n\t\t'head',\n\t\t'header',\n\t\t'hgroup',\n\t\t'hr',\n\t\t'html',\n\t\t'iframe',\n\t\t'img',\n\t\t'input',\n\t\t'isindex',\n\t\t'li',\n\t\t'link',\n\t\t'listing',\n\t\t'main',\n\t\t'marquee',\n\t\t'menu',\n\t\t'menuitem',\n\t\t'meta',\n\t\t'nav',\n\t\t'noembed',\n\t\t'noframes',\n\t\t'noscript',\n\t\t'object',\n\t\t'ol',\n\t\t'p',\n\t\t'param',\n\t\t'plaintext',\n\t\t'pre',\n\t\t'script',\n\t\t'section',\n\t\t'select',\n\t\t'source',\n\t\t'style',\n\t\t'summary',\n\t\t'table',\n\t\t'tbody',\n\t\t'td',\n\t\t'textarea',\n\t\t'tfoot',\n\t\t'th',\n\t\t'thead',\n\t\t'title',\n\t\t'tr',\n\t\t'track',\n\t\t'ul',\n\t\t'wbr',\n\t\t'xmp'\n\t],\n\t\"http://www.w3.org/1998/Math/MathML\": [\n\t\t'mi',\n\t\t'mo',\n\t\t'mn',\n\t\t'ms',\n\t\t'mtext',\n\t\t'annotation-xml'\n\t],\n\t\"http://www.w3.org/2000/svg\": [\n\t\t'foreignObject',\n\t\t'desc',\n\t\t'title'\n\t]\n};\n\n\nfunction StackItem(namespaceURI, localName, attributes, node) {\n\tthis.localName = localName;\n\tthis.namespaceURI = namespaceURI;\n\tthis.attributes = attributes;\n\tthis.node = node;\n}\nStackItem.prototype.isSpecial = function() {\n\treturn this.namespaceURI in SpecialElements &&\n\t\tSpecialElements[this.namespaceURI].indexOf(this.localName) > -1;\n};\n\nStackItem.prototype.isFosterParenting = function() {\n\tif (this.namespaceURI === \"http://www.w3.org/1999/xhtml\") {\n\t\treturn this.localName === 'table' ||\n\t\t\tthis.localName === 'tbody' ||\n\t\t\tthis.localName === 'tfoot' ||\n\t\t\tthis.localName === 'thead' ||\n\t\t\tthis.localName === 'tr';\n\t}\n\treturn false;\n};\n\nStackItem.prototype.isNumberedHeader = function() {\n\tif (this.namespaceURI === \"http://www.w3.org/1999/xhtml\") {\n\t\treturn this.localName === 'h1' ||\n\t\t\tthis.localName === 'h2' ||\n\t\t\tthis.localName === 'h3' ||\n\t\t\tthis.localName === 'h4' ||\n\t\t\tthis.localName === 'h5' ||\n\t\t\tthis.localName === 'h6';\n\t}\n\treturn false;\n};\n\nStackItem.prototype.isForeign = function() {\n\treturn this.namespaceURI != \"http://www.w3.org/1999/xhtml\";\n};\n\nfunction getAttribute(item, name) {\n\tfor (var i = 0; i < item.attributes.length; i++) {\n\t\tif (item.attributes[i].nodeName == name)\n\t\t\treturn item.attributes[i].nodeValue;\n\t}\n\treturn null;\n}\n\nStackItem.prototype.isHtmlIntegrationPoint = function() {\n\tif (this.namespaceURI === \"http://www.w3.org/1998/Math/MathML\") {\n\t\tif (this.localName !== \"annotation-xml\")\n\t\t\treturn false;\n\t\tvar encoding = getAttribute(this, 'encoding');\n\t\tif (!encoding)\n\t\t\treturn false;\n\t\tencoding = encoding.toLowerCase();\n\t\treturn encoding === \"text/html\" || encoding === \"application/xhtml+xml\";\n\t}\n\tif (this.namespaceURI === \"http://www.w3.org/2000/svg\") {\n\t\treturn this.localName === \"foreignObject\"\n\t\t\t|| this.localName === \"desc\"\n\t\t\t|| this.localName === \"title\";\n\t}\n\treturn false;\n};\n\nStackItem.prototype.isMathMLTextIntegrationPoint = function() {\n\tif (this.namespaceURI === \"http://www.w3.org/1998/Math/MathML\") {\n\t\treturn this.localName === \"mi\"\n\t\t\t|| this.localName === \"mo\"\n\t\t\t|| this.localName === \"mn\"\n\t\t\t|| this.localName === \"ms\"\n\t\t\t|| this.localName === \"mtext\";\n\t}\n\treturn false;\n};\n\nexports.StackItem = StackItem;\n\n},\n{}],\n5:[function(_dereq_,module,exports){\nvar InputStream = _dereq_('./InputStream').InputStream;\nvar EntityParser = _dereq_('./EntityParser').EntityParser;\n\nfunction isWhitespace(c){\n\treturn c === \" \" || c === \"\\n\" || c === \"\\t\" || c === \"\\r\" || c === \"\\f\";\n}\n\nfunction isAlpha(c) {\n\treturn (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z');\n}\nfunction Tokenizer(tokenHandler) {\n\tthis._tokenHandler = tokenHandler;\n\tthis._state = Tokenizer.DATA;\n\tthis._inputStream = new InputStream();\n\tthis._currentToken = null;\n\tthis._temporaryBuffer = '';\n\tthis._additionalAllowedCharacter = '';\n}\n\nTokenizer.prototype._parseError = function(code, args) {\n\tthis._tokenHandler.parseError(code, args);\n};\n\nTokenizer.prototype._emitToken = function(token) {\n\tif (token.type === 'StartTag') {\n\t\tfor (var i = 1; i < token.data.length; i++) {\n\t\t\tif (!token.data[i].nodeName)\n\t\t\t\ttoken.data.splice(i--, 1);\n\t\t}\n\t} else if (token.type === 'EndTag') {\n\t\tif (token.selfClosing) {\n\t\t\tthis._parseError('self-closing-flag-on-end-tag');\n\t\t}\n\t\tif (token.data.length !== 0) {\n\t\t\tthis._parseError('attributes-in-end-tag');\n\t\t}\n\t}\n\tthis._tokenHandler.processToken(token);\n\tif (token.type === 'StartTag' && token.selfClosing && !this._tokenHandler.isSelfClosingFlagAcknowledged()) {\n\t\tthis._parseError('non-void-element-with-trailing-solidus', {name: token.name});\n\t}\n};\n\nTokenizer.prototype._emitCurrentToken = function() {\n\tthis._state = Tokenizer.DATA;\n\tthis._emitToken(this._currentToken);\n};\n\nTokenizer.prototype._currentAttribute = function() {\n\treturn this._currentToken.data[this._currentToken.data.length - 1];\n};\n\nTokenizer.prototype.setState = function(state) {\n\tthis._state = state;\n};\n\nTokenizer.prototype.tokenize = function(source) {\n\tTokenizer.DATA = data_state;\n\tTokenizer.RCDATA = rcdata_state;\n\tTokenizer.RAWTEXT = rawtext_state;\n\tTokenizer.SCRIPT_DATA = script_data_state;\n\tTokenizer.PLAINTEXT = plaintext_state;\n\n\n\tthis._state = Tokenizer.DATA;\n\n\tthis._inputStream.append(source);\n\n\tthis._tokenHandler.startTokenization(this);\n\n\tthis._inputStream.eof = true;\n\n\tvar tokenizer = this;\n\n\twhile (this._state.call(this, this._inputStream));\n\n\n\tfunction data_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._emitToken({type: 'EOF', data: null});\n\t\t\treturn false;\n\t\t} else if (data === '&') {\n\t\t\ttokenizer.setState(character_reference_in_data_state);\n\t\t} else if (data === '<') {\n\t\t\ttokenizer.setState(tag_open_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data});\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\tvar chars = buffer.matchUntil(\"&|<|\\u0000\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data + chars});\n\t\t\tbuffer.commit();\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction character_reference_in_data_state(buffer) {\n\t\tvar character = EntityParser.consumeEntity(buffer, tokenizer);\n\t\ttokenizer.setState(data_state);\n\t\ttokenizer._emitToken({type: 'Characters', data: character || '&'});\n\t\treturn true;\n\t}\n\n\tfunction rcdata_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._emitToken({type: 'EOF', data: null});\n\t\t\treturn false;\n\t\t} else if (data === '&') {\n\t\t\ttokenizer.setState(character_reference_in_rcdata_state);\n\t\t} else if (data === '<') {\n\t\t\ttokenizer.setState(rcdata_less_than_sign_state);\n\t\t} else if (data === \"\\u0000\") {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '\\uFFFD'});\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\tvar chars = buffer.matchUntil(\"&|<|\\u0000\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data + chars});\n\t\t\tbuffer.commit();\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction character_reference_in_rcdata_state(buffer) {\n\t\tvar character = EntityParser.consumeEntity(buffer, tokenizer);\n\t\ttokenizer.setState(rcdata_state);\n\t\ttokenizer._emitToken({type: 'Characters', data: character || '&'});\n\t\treturn true;\n\t}\n\n\tfunction rawtext_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._emitToken({type: 'EOF', data: null});\n\t\t\treturn false;\n\t\t} else if (data === '<') {\n\t\t\ttokenizer.setState(rawtext_less_than_sign_state);\n\t\t} else if (data === \"\\u0000\") {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '\\uFFFD'});\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\tvar chars = buffer.matchUntil(\"<|\\u0000\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data + chars});\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction plaintext_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._emitToken({type: 'EOF', data: null});\n\t\t\treturn false;\n\t\t} else if (data === \"\\u0000\") {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '\\uFFFD'});\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\tvar chars = buffer.matchUntil(\"\\u0000\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data + chars});\n\t\t}\n\t\treturn true;\n\t}\n\n\n\tfunction script_data_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._emitToken({type: 'EOF', data: null});\n\t\t\treturn false;\n\t\t} else if (data === '<') {\n\t\t\ttokenizer.setState(script_data_less_than_sign_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '\\uFFFD'});\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\tvar chars = buffer.matchUntil(\"<|\\u0000\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data + chars});\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction rcdata_less_than_sign_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === \"/\") {\n\t\t\tthis._temporaryBuffer = '';\n\t\t\ttokenizer.setState(rcdata_end_tag_open_state);\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '<'});\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(rcdata_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction rcdata_end_tag_open_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (isAlpha(data)) {\n\t\t\tthis._temporaryBuffer += data;\n\t\t\ttokenizer.setState(rcdata_end_tag_name_state);\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '</'});\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(rcdata_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction rcdata_end_tag_name_state(buffer) {\n\t\tvar appropriate = tokenizer._currentToken && (tokenizer._currentToken.name === this._temporaryBuffer.toLowerCase());\n\t\tvar data = buffer.char();\n\t\tif (isWhitespace(data) && appropriate) {\n\t\t\ttokenizer._currentToken = {type: 'EndTag', name: this._temporaryBuffer, data: [], selfClosing: false};\n\t\t\ttokenizer.setState(before_attribute_name_state);\n\t\t} else if (data === '/' && appropriate) {\n\t\t\ttokenizer._currentToken = {type: 'EndTag', name: this._temporaryBuffer, data: [], selfClosing: false};\n\t\t\ttokenizer.setState(self_closing_tag_state);\n\t\t} else if (data === '>' && appropriate) {\n\t\t\ttokenizer._currentToken = {type: 'EndTag', name: this._temporaryBuffer, data: [], selfClosing: false};\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isAlpha(data)) {\n\t\t\tthis._temporaryBuffer += data;\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '</' + this._temporaryBuffer});\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(rcdata_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction rawtext_less_than_sign_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === \"/\") {\n\t\t\tthis._temporaryBuffer = '';\n\t\t\ttokenizer.setState(rawtext_end_tag_open_state);\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '<'});\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(rawtext_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction rawtext_end_tag_open_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (isAlpha(data)) {\n\t\t\tthis._temporaryBuffer += data;\n\t\t\ttokenizer.setState(rawtext_end_tag_name_state);\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '</'});\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(rawtext_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction rawtext_end_tag_name_state(buffer) {\n\t\tvar appropriate = tokenizer._currentToken && (tokenizer._currentToken.name === this._temporaryBuffer.toLowerCase());\n\t\tvar data = buffer.char();\n\t\tif (isWhitespace(data) && appropriate) {\n\t\t\ttokenizer._currentToken = {type: 'EndTag', name: this._temporaryBuffer, data: [], selfClosing: false};\n\t\t\ttokenizer.setState(before_attribute_name_state);\n\t\t} else if (data === '/' && appropriate) {\n\t\t\ttokenizer._currentToken = {type: 'EndTag', name: this._temporaryBuffer, data: [], selfClosing: false};\n\t\t\ttokenizer.setState(self_closing_tag_state);\n\t\t} else if (data === '>' && appropriate) {\n\t\t\ttokenizer._currentToken = {type: 'EndTag', name: this._temporaryBuffer, data: [], selfClosing: false};\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isAlpha(data)) {\n\t\t\tthis._temporaryBuffer += data;\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '</' + this._temporaryBuffer});\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(rawtext_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction script_data_less_than_sign_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === \"/\") {\n\t\t\tthis._temporaryBuffer = '';\n\t\t\ttokenizer.setState(script_data_end_tag_open_state);\n\t\t} else if (data === '!') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '<!'});\n\t\t\ttokenizer.setState(script_data_escape_start_state);\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '<'});\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(script_data_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction script_data_end_tag_open_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (isAlpha(data)) {\n\t\t\tthis._temporaryBuffer += data;\n\t\t\ttokenizer.setState(script_data_end_tag_name_state);\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '</'});\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(script_data_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction script_data_end_tag_name_state(buffer) {\n\t\tvar appropriate = tokenizer._currentToken && (tokenizer._currentToken.name === this._temporaryBuffer.toLowerCase());\n\t\tvar data = buffer.char();\n\t\tif (isWhitespace(data) && appropriate) {\n\t\t\ttokenizer._currentToken = {type: 'EndTag', name: 'script', data: [], selfClosing: false};\n\t\t\ttokenizer.setState(before_attribute_name_state);\n\t\t} else if (data === '/' && appropriate) {\n\t\t\ttokenizer._currentToken = {type: 'EndTag', name: 'script', data: [], selfClosing: false};\n\t\t\ttokenizer.setState(self_closing_tag_state);\n\t\t} else if (data === '>' && appropriate) {\n\t\t\ttokenizer._currentToken = {type: 'EndTag', name: 'script', data: [], selfClosing: false};\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (isAlpha(data)) {\n\t\t\tthis._temporaryBuffer += data;\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '</' + this._temporaryBuffer});\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(script_data_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction script_data_escape_start_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === '-') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '-'});\n\t\t\ttokenizer.setState(script_data_escape_start_dash_state);\n\t\t} else {\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(script_data_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction script_data_escape_start_dash_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === '-') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '-'});\n\t\t\ttokenizer.setState(script_data_escaped_dash_dash_state);\n\t\t} else {\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(script_data_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction script_data_escaped_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '-') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '-'});\n\t\t\ttokenizer.setState(script_data_escaped_dash_state);\n\t\t} else if (data === '<') {\n\t\t\ttokenizer.setState(script_data_escaped_less_then_sign_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '\\uFFFD'});\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\tvar chars = buffer.matchUntil('<|-|\\u0000');\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data + chars});\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction script_data_escaped_dash_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '-') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '-'});\n\t\t\ttokenizer.setState(script_data_escaped_dash_dash_state);\n\t\t} else if (data === '<') {\n\t\t\ttokenizer.setState(script_data_escaped_less_then_sign_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '\\uFFFD'});\n\t\t\ttokenizer.setState(script_data_escaped_state);\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data});\n\t\t\ttokenizer.setState(script_data_escaped_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction script_data_escaped_dash_dash_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError('eof-in-script');\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '<') {\n\t\t\ttokenizer.setState(script_data_escaped_less_then_sign_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '>'});\n\t\t\ttokenizer.setState(script_data_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '\\uFFFD'});\n\t\t\ttokenizer.setState(script_data_escaped_state);\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data});\n\t\t\ttokenizer.setState(script_data_escaped_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction script_data_escaped_less_then_sign_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === '/') {\n\t\t\tthis._temporaryBuffer = '';\n\t\t\ttokenizer.setState(script_data_escaped_end_tag_open_state);\n\t\t} else if (isAlpha(data)) {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '<' + data});\n\t\t\tthis._temporaryBuffer = data;\n\t\t\ttokenizer.setState(script_data_double_escape_start_state);\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '<'});\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(script_data_escaped_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction script_data_escaped_end_tag_open_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (isAlpha(data)) {\n\t\t\tthis._temporaryBuffer = data;\n\t\t\ttokenizer.setState(script_data_escaped_end_tag_name_state);\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '</'});\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(script_data_escaped_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction script_data_escaped_end_tag_name_state(buffer) {\n\t\tvar appropriate = tokenizer._currentToken && (tokenizer._currentToken.name === this._temporaryBuffer.toLowerCase());\n\t\tvar data = buffer.char();\n\t\tif (isWhitespace(data) && appropriate) {\n\t\t\ttokenizer._currentToken = {type: 'EndTag', name: 'script', data: [], selfClosing: false};\n\t\t\ttokenizer.setState(before_attribute_name_state);\n\t\t} else if (data === '/' && appropriate) {\n\t\t\ttokenizer._currentToken = {type: 'EndTag', name: 'script', data: [], selfClosing: false};\n\t\t\ttokenizer.setState(self_closing_tag_state);\n\t\t} else if (data === '>' &&  appropriate) {\n\t\t\ttokenizer._currentToken = {type: 'EndTag', name: 'script', data: [], selfClosing: false};\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (isAlpha(data)) {\n\t\t\tthis._temporaryBuffer += data;\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '</' + this._temporaryBuffer});\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(script_data_escaped_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction script_data_double_escape_start_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (isWhitespace(data) || data === '/' || data === '>') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data});\n\t\t\tif (this._temporaryBuffer.toLowerCase() === 'script')\n\t\t\t\ttokenizer.setState(script_data_double_escaped_state);\n\t\t\telse\n\t\t\t\ttokenizer.setState(script_data_escaped_state);\n\t\t} else if (isAlpha(data)) {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data});\n\t\t\tthis._temporaryBuffer += data;\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(script_data_escaped_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction script_data_double_escaped_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError('eof-in-script');\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '-') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '-'});\n\t\t\ttokenizer.setState(script_data_double_escaped_dash_state);\n\t\t} else if (data === '<') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '<'});\n\t\t\ttokenizer.setState(script_data_double_escaped_less_than_sign_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError('invalid-codepoint');\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '\\uFFFD'});\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data});\n\t\t\tbuffer.commit();\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction script_data_double_escaped_dash_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError('eof-in-script');\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '-') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '-'});\n\t\t\ttokenizer.setState(script_data_double_escaped_dash_dash_state);\n\t\t} else if (data === '<') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '<'});\n\t\t\ttokenizer.setState(script_data_double_escaped_less_than_sign_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError('invalid-codepoint');\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '\\uFFFD'});\n\t\t\ttokenizer.setState(script_data_double_escaped_state);\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data});\n\t\t\ttokenizer.setState(script_data_double_escaped_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction script_data_double_escaped_dash_dash_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError('eof-in-script');\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '-') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '-'});\n\t\t\tbuffer.commit();\n\t\t} else if (data === '<') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '<'});\n\t\t\ttokenizer.setState(script_data_double_escaped_less_than_sign_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '>'});\n\t\t\ttokenizer.setState(script_data_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError('invalid-codepoint');\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '\\uFFFD'});\n\t\t\ttokenizer.setState(script_data_double_escaped_state);\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data});\n\t\t\ttokenizer.setState(script_data_double_escaped_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction script_data_double_escaped_less_than_sign_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === '/') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '/'});\n\t\t\tthis._temporaryBuffer = '';\n\t\t\ttokenizer.setState(script_data_double_escape_end_state);\n\t\t} else {\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(script_data_double_escaped_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction script_data_double_escape_end_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (isWhitespace(data) || data === '/' || data === '>') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data});\n\t\t\tif (this._temporaryBuffer.toLowerCase() === 'script')\n\t\t\t\ttokenizer.setState(script_data_escaped_state);\n\t\t\telse\n\t\t\t\ttokenizer.setState(script_data_double_escaped_state);\n\t\t} else if (isAlpha(data)) {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data});\n\t\t\tthis._temporaryBuffer += data;\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(script_data_double_escaped_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction tag_open_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"bare-less-than-sign-at-eof\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '<'});\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isAlpha(data)) {\n\t\t\ttokenizer._currentToken = {type: 'StartTag', name: data.toLowerCase(), data: []};\n\t\t\ttokenizer.setState(tag_name_state);\n\t\t} else if (data === '!') {\n\t\t\ttokenizer.setState(markup_declaration_open_state);\n\t\t} else if (data === '/') {\n\t\t\ttokenizer.setState(close_tag_open_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._parseError(\"expected-tag-name-but-got-right-bracket\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: \"<>\"});\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '?') {\n\t\t\ttokenizer._parseError(\"expected-tag-name-but-got-question-mark\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(bogus_comment_state);\n\t\t} else {\n\t\t\ttokenizer._parseError(\"expected-tag-name\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: \"<\"});\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction close_tag_open_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"expected-closing-tag-but-got-eof\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '</'});\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isAlpha(data)) {\n\t\t\ttokenizer._currentToken = {type: 'EndTag', name: data.toLowerCase(), data: []};\n\t\t\ttokenizer.setState(tag_name_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._parseError(\"expected-closing-tag-but-got-right-bracket\");\n\t\t\ttokenizer.setState(data_state);\n\t\t} else {\n\t\t\ttokenizer._parseError(\"expected-closing-tag-but-got-char\", {data: data}); // param 1 is datavars:\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(bogus_comment_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction tag_name_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError('eof-in-tag-name');\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isWhitespace(data)) {\n\t\t\ttokenizer.setState(before_attribute_name_state);\n\t\t} else if (isAlpha(data)) {\n\t\t\ttokenizer._currentToken.name += data.toLowerCase();\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (data === '/') {\n\t\t\ttokenizer.setState(self_closing_tag_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentToken.name += \"\\uFFFD\";\n\t\t} else {\n\t\t\ttokenizer._currentToken.name += data;\n\t\t}\n\t\tbuffer.commit();\n\n\t\treturn true;\n\t}\n\n\tfunction before_attribute_name_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"expected-attribute-name-but-got-eof\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isWhitespace(data)) {\n\t\t\treturn true;\n\t\t} else if (isAlpha(data)) {\n\t\t\ttokenizer._currentToken.data.push({nodeName: data.toLowerCase(), nodeValue: \"\"});\n\t\t\ttokenizer.setState(attribute_name_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (data === '/') {\n\t\t\ttokenizer.setState(self_closing_tag_state);\n\t\t} else if (data === \"'\" || data === '\"' || data === '=' || data === '<') {\n\t\t\ttokenizer._parseError(\"invalid-character-in-attribute-name\");\n\t\t\ttokenizer._currentToken.data.push({nodeName: data, nodeValue: \"\"});\n\t\t\ttokenizer.setState(attribute_name_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentToken.data.push({nodeName: \"\\uFFFD\", nodeValue: \"\"});\n\t\t} else {\n\t\t\ttokenizer._currentToken.data.push({nodeName: data, nodeValue: \"\"});\n\t\t\ttokenizer.setState(attribute_name_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction attribute_name_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tvar leavingThisState = true;\n\t\tvar shouldEmit = false;\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-attribute-name\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t\tshouldEmit = true;\n\t\t} else if (data === '=') {\n\t\t\ttokenizer.setState(before_attribute_value_state);\n\t\t} else if (isAlpha(data)) {\n\t\t\ttokenizer._currentAttribute().nodeName += data.toLowerCase();\n\t\t\tleavingThisState = false;\n\t\t} else if (data === '>') {\n\t\t\tshouldEmit = true;\n\t\t} else if (isWhitespace(data)) {\n\t\t\ttokenizer.setState(after_attribute_name_state);\n\t\t} else if (data === '/') {\n\t\t\ttokenizer.setState(self_closing_tag_state);\n\t\t} else if (data === \"'\" || data === '\"') {\n\t\t\ttokenizer._parseError(\"invalid-character-in-attribute-name\");\n\t\t\ttokenizer._currentAttribute().nodeName += data;\n\t\t\tleavingThisState = false;\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentAttribute().nodeName += \"\\uFFFD\";\n\t\t} else {\n\t\t\ttokenizer._currentAttribute().nodeName += data;\n\t\t\tleavingThisState = false;\n\t\t}\n\n\t\tif (leavingThisState) {\n\t\t\tvar attributes = tokenizer._currentToken.data;\n\t\t\tvar currentAttribute = attributes[attributes.length - 1];\n\t\t\tfor (var i = attributes.length - 2; i >= 0; i--) {\n\t\t\t\tif (currentAttribute.nodeName === attributes[i].nodeName) {\n\t\t\t\t\ttokenizer._parseError(\"duplicate-attribute\", {name: currentAttribute.nodeName});\n\t\t\t\t\tcurrentAttribute.nodeName = null;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (shouldEmit)\n\t\t\t\ttokenizer._emitCurrentToken();\n\t\t} else {\n\t\t\tbuffer.commit();\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction after_attribute_name_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"expected-end-of-tag-but-got-eof\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isWhitespace(data)) {\n\t\t\treturn true;\n\t\t} else if (data === '=') {\n\t\t\ttokenizer.setState(before_attribute_value_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (isAlpha(data)) {\n\t\t\ttokenizer._currentToken.data.push({nodeName: data, nodeValue: \"\"});\n\t\t\ttokenizer.setState(attribute_name_state);\n\t\t} else if (data === '/') {\n\t\t\ttokenizer.setState(self_closing_tag_state);\n\t\t} else if (data === \"'\" || data === '\"' || data === '<') {\n\t\t\ttokenizer._parseError(\"invalid-character-after-attribute-name\");\n\t\t\ttokenizer._currentToken.data.push({nodeName: data, nodeValue: \"\"});\n\t\t\ttokenizer.setState(attribute_name_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentToken.data.push({nodeName: \"\\uFFFD\", nodeValue: \"\"});\n\t\t} else {\n\t\t\ttokenizer._currentToken.data.push({nodeName: data, nodeValue: \"\"});\n\t\t\ttokenizer.setState(attribute_name_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction before_attribute_value_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"expected-attribute-value-but-got-eof\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isWhitespace(data)) {\n\t\t\treturn true;\n\t\t} else if (data === '\"') {\n\t\t\ttokenizer.setState(attribute_value_double_quoted_state);\n\t\t} else if (data === '&') {\n\t\t\ttokenizer.setState(attribute_value_unquoted_state);\n\t\t\tbuffer.unget(data);\n\t\t} else if (data === \"'\") {\n\t\t\ttokenizer.setState(attribute_value_single_quoted_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._parseError(\"expected-attribute-value-but-got-right-bracket\");\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (data === '=' || data === '<' || data === '`') {\n\t\t\ttokenizer._parseError(\"unexpected-character-in-unquoted-attribute-value\");\n\t\t\ttokenizer._currentAttribute().nodeValue += data;\n\t\t\ttokenizer.setState(attribute_value_unquoted_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentAttribute().nodeValue += \"\\uFFFD\";\n\t\t} else {\n\t\t\ttokenizer._currentAttribute().nodeValue += data;\n\t\t\ttokenizer.setState(attribute_value_unquoted_state);\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tfunction attribute_value_double_quoted_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-attribute-value-double-quote\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '\"') {\n\t\t\ttokenizer.setState(after_attribute_value_state);\n\t\t} else if (data === '&') {\n\t\t\tthis._additionalAllowedCharacter = '\"';\n\t\t\ttokenizer.setState(character_reference_in_attribute_value_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentAttribute().nodeValue += \"\\uFFFD\";\n\t\t} else {\n\t\t\tvar s = buffer.matchUntil('[\\0\"&]');\n\t\t\tdata = data + s;\n\t\t\ttokenizer._currentAttribute().nodeValue += data;\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction attribute_value_single_quoted_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-attribute-value-single-quote\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === \"'\") {\n\t\t\ttokenizer.setState(after_attribute_value_state);\n\t\t} else if (data === '&') {\n\t\t\tthis._additionalAllowedCharacter = \"'\";\n\t\t\ttokenizer.setState(character_reference_in_attribute_value_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentAttribute().nodeValue += \"\\uFFFD\";\n\t\t} else {\n\t\t\ttokenizer._currentAttribute().nodeValue += data + buffer.matchUntil(\"\\u0000|['&]\");\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction attribute_value_unquoted_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-after-attribute-value\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isWhitespace(data)) {\n\t\t\ttokenizer.setState(before_attribute_name_state);\n\t\t} else if (data === '&') {\n\t\t\tthis._additionalAllowedCharacter = \">\";\n\t\t\ttokenizer.setState(character_reference_in_attribute_value_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (data === '\"' || data === \"'\" || data === '=' || data === '`' || data === '<') {\n\t\t\ttokenizer._parseError(\"unexpected-character-in-unquoted-attribute-value\");\n\t\t\ttokenizer._currentAttribute().nodeValue += data;\n\t\t\tbuffer.commit();\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentAttribute().nodeValue += \"\\uFFFD\";\n\t\t} else {\n\t\t\tvar o = buffer.matchUntil(\"\\u0000|[\"+ \"\\t\\n\\v\\f\\x20\\r\" + \"&<>\\\"'=`\" +\"]\");\n\t\t\tif (o === InputStream.EOF) {\n\t\t\t\ttokenizer._parseError(\"eof-in-attribute-value-no-quotes\");\n\t\t\t\ttokenizer._emitCurrentToken();\n\t\t\t}\n\t\t\tbuffer.commit();\n\t\t\ttokenizer._currentAttribute().nodeValue += data + o;\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction character_reference_in_attribute_value_state(buffer) {\n\t\tvar character = EntityParser.consumeEntity(buffer, tokenizer, this._additionalAllowedCharacter);\n\t\tthis._currentAttribute().nodeValue += character || '&';\n\t\tif (this._additionalAllowedCharacter === '\"')\n\t\t\ttokenizer.setState(attribute_value_double_quoted_state);\n\t\telse if (this._additionalAllowedCharacter === '\\'')\n\t\t\ttokenizer.setState(attribute_value_single_quoted_state);\n\t\telse if (this._additionalAllowedCharacter === '>')\n\t\t\ttokenizer.setState(attribute_value_unquoted_state);\n\t\treturn true;\n\t}\n\n\tfunction after_attribute_value_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-after-attribute-value\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isWhitespace(data)) {\n\t\t\ttokenizer.setState(before_attribute_name_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (data === '/') {\n\t\t\ttokenizer.setState(self_closing_tag_state);\n\t\t} else {\n\t\t\ttokenizer._parseError(\"unexpected-character-after-attribute-value\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(before_attribute_name_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction self_closing_tag_state(buffer) {\n\t\tvar c = buffer.char();\n\t\tif (c === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"unexpected-eof-after-solidus-in-tag\");\n\t\t\tbuffer.unget(c);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (c === '>') {\n\t\t\ttokenizer._currentToken.selfClosing = true;\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else {\n\t\t\ttokenizer._parseError(\"unexpected-character-after-solidus-in-tag\");\n\t\t\tbuffer.unget(c);\n\t\t\ttokenizer.setState(before_attribute_name_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction bogus_comment_state(buffer) {\n\t\tvar data = buffer.matchUntil('>');\n\t\tdata = data.replace(/\\u0000/g, \"\\uFFFD\");\n\t\tbuffer.char();\n\t\ttokenizer._emitToken({type: 'Comment', data: data});\n\t\ttokenizer.setState(data_state);\n\t\treturn true;\n\t}\n\n\tfunction markup_declaration_open_state(buffer) {\n\t\tvar chars = buffer.shift(2);\n\t\tif (chars === '--') {\n\t\t\ttokenizer._currentToken = {type: 'Comment', data: ''};\n\t\t\ttokenizer.setState(comment_start_state);\n\t\t} else {\n\t\t\tvar newchars = buffer.shift(5);\n\t\t\tif (newchars === InputStream.EOF || chars === InputStream.EOF) {\n\t\t\t\ttokenizer._parseError(\"expected-dashes-or-doctype\");\n\t\t\t\ttokenizer.setState(bogus_comment_state);\n\t\t\t\tbuffer.unget(chars);\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tchars += newchars;\n\t\t\tif (chars.toUpperCase() === 'DOCTYPE') {\n\t\t\t\ttokenizer._currentToken = {type: 'Doctype', name: '', publicId: null, systemId: null, forceQuirks: false};\n\t\t\t\ttokenizer.setState(doctype_state);\n\t\t\t} else if (tokenizer._tokenHandler.isCdataSectionAllowed() && chars === '[CDATA[') {\n\t\t\t\ttokenizer.setState(cdata_section_state);\n\t\t\t} else {\n\t\t\t\ttokenizer._parseError(\"expected-dashes-or-doctype\");\n\t\t\t\tbuffer.unget(chars);\n\t\t\t\ttokenizer.setState(bogus_comment_state);\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction cdata_section_state(buffer) {\n\t\tvar data = buffer.matchUntil(']]>');\n\t\tbuffer.shift(3);\n\t\tif (data) {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data});\n\t\t}\n\t\ttokenizer.setState(data_state);\n\t\treturn true;\n\t}\n\n\tfunction comment_start_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-comment\");\n\t\t\ttokenizer._emitToken(tokenizer._currentToken);\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '-') {\n\t\t\ttokenizer.setState(comment_start_dash_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._parseError(\"incorrect-comment\");\n\t\t\ttokenizer._emitToken(tokenizer._currentToken);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentToken.data += \"\\uFFFD\";\n\t\t} else {\n\t\t\ttokenizer._currentToken.data += data;\n\t\t\ttokenizer.setState(comment_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction comment_start_dash_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-comment\");\n\t\t\ttokenizer._emitToken(tokenizer._currentToken);\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '-') {\n\t\t\ttokenizer.setState(comment_end_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._parseError(\"incorrect-comment\");\n\t\t\ttokenizer._emitToken(tokenizer._currentToken);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentToken.data += \"\\uFFFD\";\n\t\t} else {\n\t\t\ttokenizer._currentToken.data += '-' + data;\n\t\t\ttokenizer.setState(comment_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction comment_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-comment\");\n\t\t\ttokenizer._emitToken(tokenizer._currentToken);\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '-') {\n\t\t\ttokenizer.setState(comment_end_dash_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentToken.data += \"\\uFFFD\";\n\t\t} else {\n\t\t\ttokenizer._currentToken.data += data;\n\t\t\tbuffer.commit();\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction comment_end_dash_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-comment-end-dash\");\n\t\t\ttokenizer._emitToken(tokenizer._currentToken);\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '-') {\n\t\t\ttokenizer.setState(comment_end_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentToken.data += \"-\\uFFFD\";\n\t\t\ttokenizer.setState(comment_state);\n\t\t} else {\n\t\t\ttokenizer._currentToken.data += '-' + data + buffer.matchUntil('\\u0000|-');\n\t\t\tbuffer.char();\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction comment_end_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-comment-double-dash\");\n\t\t\ttokenizer._emitToken(tokenizer._currentToken);\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._emitToken(tokenizer._currentToken);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '!') {\n\t\t\ttokenizer._parseError(\"unexpected-bang-after-double-dash-in-comment\");\n\t\t\ttokenizer.setState(comment_end_bang_state);\n\t\t} else if (data === '-') {\n\t\t\ttokenizer._parseError(\"unexpected-dash-after-double-dash-in-comment\");\n\t\t\ttokenizer._currentToken.data += data;\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentToken.data += \"--\\uFFFD\";\n\t\t\ttokenizer.setState(comment_state);\n\t\t} else {\n\t\t\ttokenizer._parseError(\"unexpected-char-in-comment\");\n\t\t\ttokenizer._currentToken.data += '--' + data;\n\t\t\ttokenizer.setState(comment_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction comment_end_bang_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-comment-end-bang-state\");\n\t\t\ttokenizer._emitToken(tokenizer._currentToken);\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._emitToken(tokenizer._currentToken);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '-') {\n\t\t\ttokenizer._currentToken.data += '--!';\n\t\t\ttokenizer.setState(comment_end_dash_state);\n\t\t} else {\n\t\t\ttokenizer._currentToken.data += '--!' + data;\n\t\t\ttokenizer.setState(comment_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction doctype_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"expected-doctype-name-but-got-eof\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (isWhitespace(data)) {\n\t\t\ttokenizer.setState(before_doctype_name_state);\n\t\t} else {\n\t\t\ttokenizer._parseError(\"need-space-after-doctype\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(before_doctype_name_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction before_doctype_name_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"expected-doctype-name-but-got-eof\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (isWhitespace(data)) {\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._parseError(\"expected-doctype-name-but-got-right-bracket\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else {\n\t\t\tif (isAlpha(data))\n\t\t\t\tdata = data.toLowerCase();\n\t\t\ttokenizer._currentToken.name = data;\n\t\t\ttokenizer.setState(doctype_name_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction doctype_name_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer._parseError(\"eof-in-doctype-name\");\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (isWhitespace(data)) {\n\t\t\ttokenizer.setState(after_doctype_name_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else {\n\t\t\tif (isAlpha(data))\n\t\t\t\tdata = data.toLowerCase();\n\t\t\ttokenizer._currentToken.name += data;\n\t\t\tbuffer.commit();\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction after_doctype_name_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (isWhitespace(data)) {\n\t\t} else if (data === '>') {\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else {\n\t\t\tif (['p', 'P'].indexOf(data) > -1) {\n\t\t\t\tvar expected = [['u', 'U'], ['b', 'B'], ['l', 'L'], ['i', 'I'], ['c', 'C']];\n\t\t\t\tvar matched = expected.every(function(expected){\n\t\t\t\t\tdata = buffer.char();\n\t\t\t\t\treturn expected.indexOf(data) > -1;\n\t\t\t\t});\n\t\t\t\tif (matched) {\n\t\t\t\t\ttokenizer.setState(after_doctype_public_keyword_state);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else if (['s', 'S'].indexOf(data) > -1) {\n\t\t\t\tvar expected = [['y', 'Y'], ['s', 'S'], ['t', 'T'], ['e', 'E'], ['m', 'M']];\n\t\t\t\tvar matched = expected.every(function(expected){\n\t\t\t\t\tdata = buffer.char();\n\t\t\t\t\treturn expected.indexOf(data) > -1;\n\t\t\t\t});\n\t\t\t\tif (matched) {\n\t\t\t\t\ttokenizer.setState(after_doctype_system_keyword_state);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\n\t\t\tif (data === InputStream.EOF) {\n\t\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\t\tbuffer.unget(data);\n\t\t\t\ttokenizer.setState(data_state);\n\t\t\t\ttokenizer._emitCurrentToken();\n\t\t\t} else {\n\t\t\t\ttokenizer._parseError(\"expected-space-or-right-bracket-in-doctype\", {data: data});\n\t\t\t\ttokenizer.setState(bogus_doctype_state);\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction after_doctype_public_keyword_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (isWhitespace(data)) {\n\t\t\ttokenizer.setState(before_doctype_public_identifier_state);\n\t\t} else if (data === \"'\" || data === '\"') {\n\t\t\ttokenizer._parseError(\"unexpected-char-in-doctype\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(before_doctype_public_identifier_state);\n\t\t} else {\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(before_doctype_public_identifier_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction before_doctype_public_identifier_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (isWhitespace(data)) {\n\t\t} else if (data === '\"') {\n\t\t\ttokenizer._currentToken.publicId = '';\n\t\t\ttokenizer.setState(doctype_public_identifier_double_quoted_state);\n\t\t} else if (data === \"'\") {\n\t\t\ttokenizer._currentToken.publicId = '';\n\t\t\ttokenizer.setState(doctype_public_identifier_single_quoted_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._parseError(\"unexpected-end-of-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else {\n\t\t\ttokenizer._parseError(\"unexpected-char-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer.setState(bogus_doctype_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction doctype_public_identifier_double_quoted_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (data === '\"') {\n\t\t\ttokenizer.setState(after_doctype_public_identifier_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._parseError(\"unexpected-end-of-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else {\n\t\t\ttokenizer._currentToken.publicId += data;\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction doctype_public_identifier_single_quoted_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (data === \"'\") {\n\t\t\ttokenizer.setState(after_doctype_public_identifier_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._parseError(\"unexpected-end-of-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else {\n\t\t\ttokenizer._currentToken.publicId += data;\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction after_doctype_public_identifier_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isWhitespace(data)) {\n\t\t\ttokenizer.setState(between_doctype_public_and_system_identifiers_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (data === '\"') {\n\t\t\ttokenizer._parseError(\"unexpected-char-in-doctype\");\n\t\t\ttokenizer._currentToken.systemId = '';\n\t\t\ttokenizer.setState(doctype_system_identifier_double_quoted_state);\n\t\t} else if (data === \"'\") {\n\t\t\ttokenizer._parseError(\"unexpected-char-in-doctype\");\n\t\t\ttokenizer._currentToken.systemId = '';\n\t\t\ttokenizer.setState(doctype_system_identifier_single_quoted_state);\n\t\t} else {\n\t\t\ttokenizer._parseError(\"unexpected-char-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer.setState(bogus_doctype_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction between_doctype_public_and_system_identifiers_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isWhitespace(data)) {\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '\"') {\n\t\t\ttokenizer._currentToken.systemId = '';\n\t\t\ttokenizer.setState(doctype_system_identifier_double_quoted_state);\n\t\t} else if (data === \"'\") {\n\t\t\ttokenizer._currentToken.systemId = '';\n\t\t\ttokenizer.setState(doctype_system_identifier_single_quoted_state);\n\t\t} else {\n\t\t\ttokenizer._parseError(\"unexpected-char-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer.setState(bogus_doctype_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction after_doctype_system_keyword_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isWhitespace(data)) {\n\t\t\ttokenizer.setState(before_doctype_system_identifier_state);\n\t\t} else if (data === \"'\" || data === '\"') {\n\t\t\ttokenizer._parseError(\"unexpected-char-in-doctype\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(before_doctype_system_identifier_state);\n\t\t} else {\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(before_doctype_system_identifier_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction before_doctype_system_identifier_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isWhitespace(data)) {\n\t\t} else if (data === '\"') {\n\t\t\ttokenizer._currentToken.systemId = '';\n\t\t\ttokenizer.setState(doctype_system_identifier_double_quoted_state);\n\t\t} else if (data === \"'\") {\n\t\t\ttokenizer._currentToken.systemId = '';\n\t\t\ttokenizer.setState(doctype_system_identifier_single_quoted_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._parseError(\"unexpected-end-of-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\ttokenizer.setState(data_state);\n\t\t} else {\n\t\t\ttokenizer._parseError(\"unexpected-char-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer.setState(bogus_doctype_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction doctype_system_identifier_double_quoted_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '\"') {\n\t\t\ttokenizer.setState(after_doctype_system_identifier_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._parseError(\"unexpected-end-of-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\ttokenizer.setState(data_state);\n\t\t} else {\n\t\t\ttokenizer._currentToken.systemId += data;\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction doctype_system_identifier_single_quoted_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === \"'\") {\n\t\t\ttokenizer.setState(after_doctype_system_identifier_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._parseError(\"unexpected-end-of-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\ttokenizer.setState(data_state);\n\t\t} else {\n\t\t\ttokenizer._currentToken.systemId += data;\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction after_doctype_system_identifier_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isWhitespace(data)) {\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\ttokenizer.setState(data_state);\n\t\t} else {\n\t\t\ttokenizer._parseError(\"unexpected-char-in-doctype\");\n\t\t\ttokenizer.setState(bogus_doctype_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction bogus_doctype_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\ttokenizer.setState(data_state);\n\t\t}\n\t\treturn true;\n\t}\n};\n\nObject.defineProperty(Tokenizer.prototype, 'lineNumber', {\n\tget: function() {\n\t\treturn this._inputStream.location().line;\n\t}\n});\n\nObject.defineProperty(Tokenizer.prototype, 'columnNumber', {\n\tget: function() {\n\t\treturn this._inputStream.location().column;\n\t}\n});\n\nexports.Tokenizer = Tokenizer;\n\n},\n{\"./EntityParser\":2,\"./InputStream\":3}],\n6:[function(_dereq_,module,exports){\nvar assert = _dereq_('assert');\n\nvar messages = _dereq_('./messages.json');\nvar constants = _dereq_('./constants');\n\nvar EventEmitter = _dereq_('events').EventEmitter;\n\nvar Tokenizer = _dereq_('./Tokenizer').Tokenizer;\nvar ElementStack = _dereq_('./ElementStack').ElementStack;\nvar StackItem = _dereq_('./StackItem').StackItem;\n\nvar Marker = {};\n\nfunction isWhitespace(ch) {\n\treturn ch === \" \" || ch === \"\\n\" || ch === \"\\t\" || ch === \"\\r\" || ch === \"\\f\";\n}\n\nfunction isWhitespaceOrReplacementCharacter(ch) {\n\treturn isWhitespace(ch) || ch === '\\uFFFD';\n}\n\nfunction isAllWhitespace(characters) {\n\tfor (var i = 0; i < characters.length; i++) {\n\t\tvar ch = characters[i];\n\t\tif (!isWhitespace(ch))\n\t\t\treturn false;\n\t}\n\treturn true;\n}\n\nfunction isAllWhitespaceOrReplacementCharacters(characters) {\n\tfor (var i = 0; i < characters.length; i++) {\n\t\tvar ch = characters[i];\n\t\tif (!isWhitespaceOrReplacementCharacter(ch))\n\t\t\treturn false;\n\t}\n\treturn true;\n}\n\nfunction getAttribute(node, name) {\n\tfor (var i = 0; i < node.attributes.length; i++) {\n\t\tvar attribute = node.attributes[i];\n\t\tif (attribute.nodeName === name) {\n\t\t\treturn attribute;\n\t\t}\n\t}\n\treturn null;\n}\n\nfunction CharacterBuffer(characters) {\n\tthis.characters = characters;\n\tthis.current = 0;\n\tthis.end = this.characters.length;\n}\n\nCharacterBuffer.prototype.skipAtMostOneLeadingNewline = function() {\n\tif (this.characters[this.current] === '\\n')\n\t\tthis.current++;\n};\n\nCharacterBuffer.prototype.skipLeadingWhitespace = function() {\n\twhile (isWhitespace(this.characters[this.current])) {\n\t\tif (++this.current == this.end)\n\t\t\treturn;\n\t}\n};\n\nCharacterBuffer.prototype.skipLeadingNonWhitespace = function() {\n\twhile (!isWhitespace(this.characters[this.current])) {\n\t\tif (++this.current == this.end)\n\t\t\treturn;\n\t}\n};\n\nCharacterBuffer.prototype.takeRemaining = function() {\n\treturn this.characters.substring(this.current);\n};\n\nCharacterBuffer.prototype.takeLeadingWhitespace = function() {\n\tvar start = this.current;\n\tthis.skipLeadingWhitespace();\n\tif (start === this.current)\n\t\treturn \"\";\n\treturn this.characters.substring(start, this.current - start);\n};\n\nObject.defineProperty(CharacterBuffer.prototype, 'length', {\n\tget: function(){\n\t\treturn this.end - this.current;\n\t}\n});\nfunction TreeBuilder() {\n\tthis.tokenizer = null;\n\tthis.errorHandler = null;\n\tthis.scriptingEnabled = false;\n\tthis.document = null;\n\tthis.head = null;\n\tthis.form = null;\n\tthis.openElements = new ElementStack();\n\tthis.activeFormattingElements = [];\n\tthis.insertionMode = null;\n\tthis.insertionModeName = \"\";\n\tthis.originalInsertionMode = \"\";\n\tthis.inQuirksMode = false; // TODO quirks mode\n\tthis.compatMode = \"no quirks\";\n\tthis.framesetOk = true;\n\tthis.redirectAttachToFosterParent = false;\n\tthis.selfClosingFlagAcknowledged = false;\n\tthis.context = \"\";\n\tthis.pendingTableCharacters = [];\n\tthis.shouldSkipLeadingNewline = false;\n\n\tvar tree = this;\n\tvar modes = this.insertionModes = {};\n\tmodes.base = {\n\t\tend_tag_handlers: {\"-default\": 'endTagOther'},\n\t\tstart_tag_handlers: {\"-default\": 'startTagOther'},\n\t\tprocessEOF: function() {\n\t\t\ttree.generateImpliedEndTags();\n\t\t\tif (tree.openElements.length > 2) {\n\t\t\t\ttree.parseError('expected-closing-tag-but-got-eof');\n\t\t\t} else if (tree.openElements.length == 2 &&\n\t\t\t\ttree.openElements.item(1).localName != 'body') {\n\t\t\t\ttree.parseError('expected-closing-tag-but-got-eof');\n\t\t\t} else if (tree.context && tree.openElements.length > 1) {\n\t\t\t}\n\t\t},\n\t\tprocessComment: function(data) {\n\t\t\ttree.insertComment(data, tree.currentStackItem().node);\n\t\t},\n\t\tprocessDoctype: function(name, publicId, systemId, forceQuirks) {\n\t\t\ttree.parseError('unexpected-doctype');\n\t\t},\n\t\tprocessStartTag: function(name, attributes, selfClosing) {\n\t\t\tif (this[this.start_tag_handlers[name]]) {\n\t\t\t\tthis[this.start_tag_handlers[name]](name, attributes, selfClosing);\n\t\t\t} else if (this[this.start_tag_handlers[\"-default\"]]) {\n\t\t\t\tthis[this.start_tag_handlers[\"-default\"]](name, attributes, selfClosing);\n\t\t\t} else {\n\t\t\t\tthrow(new Error(\"No handler found for \"+name));\n\t\t\t}\n\t\t},\n\t\tprocessEndTag: function(name) {\n\t\t\tif (this[this.end_tag_handlers[name]]) {\n\t\t\t\tthis[this.end_tag_handlers[name]](name);\n\t\t\t} else if (this[this.end_tag_handlers[\"-default\"]]) {\n\t\t\t\tthis[this.end_tag_handlers[\"-default\"]](name);\n\t\t\t} else {\n\t\t\t\tthrow(new Error(\"No handler found for \"+name));\n\t\t\t}\n\t\t},\n\t\tstartTagHtml: function(name, attributes) {\n\t\t\tmodes.inBody.startTagHtml(name, attributes);\n\t\t}\n\t};\n\n\tmodes.initial = Object.create(modes.base);\n\n\tmodes.initial.processEOF = function() {\n\t\ttree.parseError(\"expected-doctype-but-got-eof\");\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processEOF();\n\t};\n\n\tmodes.initial.processComment = function(data) {\n\t\ttree.insertComment(data, tree.document);\n\t};\n\n\tmodes.initial.processDoctype = function(name, publicId, systemId, forceQuirks) {\n\t\ttree.insertDoctype(name || '', publicId || '', systemId || '');\n\n\t\tif (forceQuirks || name != 'html' || (publicId != null && ([\n\t\t\t\t\t\"+//silmaril//dtd html pro v0r11 19970101//\",\n\t\t\t\t\t\"-//advasoft ltd//dtd html 3.0 aswedit + extensions//\",\n\t\t\t\t\t\"-//as//dtd html 3.0 aswedit + extensions//\",\n\t\t\t\t\t\"-//ietf//dtd html 2.0 level 1//\",\n\t\t\t\t\t\"-//ietf//dtd html 2.0 level 2//\",\n\t\t\t\t\t\"-//ietf//dtd html 2.0 strict level 1//\",\n\t\t\t\t\t\"-//ietf//dtd html 2.0 strict level 2//\",\n\t\t\t\t\t\"-//ietf//dtd html 2.0 strict//\",\n\t\t\t\t\t\"-//ietf//dtd html 2.0//\",\n\t\t\t\t\t\"-//ietf//dtd html 2.1e//\",\n\t\t\t\t\t\"-//ietf//dtd html 3.0//\",\n\t\t\t\t\t\"-//ietf//dtd html 3.0//\",\n\t\t\t\t\t\"-//ietf//dtd html 3.2 final//\",\n\t\t\t\t\t\"-//ietf//dtd html 3.2//\",\n\t\t\t\t\t\"-//ietf//dtd html 3//\",\n\t\t\t\t\t\"-//ietf//dtd html level 0//\",\n\t\t\t\t\t\"-//ietf//dtd html level 0//\",\n\t\t\t\t\t\"-//ietf//dtd html level 1//\",\n\t\t\t\t\t\"-//ietf//dtd html level 1//\",\n\t\t\t\t\t\"-//ietf//dtd html level 2//\",\n\t\t\t\t\t\"-//ietf//dtd html level 2//\",\n\t\t\t\t\t\"-//ietf//dtd html level 3//\",\n\t\t\t\t\t\"-//ietf//dtd html level 3//\",\n\t\t\t\t\t\"-//ietf//dtd html strict level 0//\",\n\t\t\t\t\t\"-//ietf//dtd html strict level 0//\",\n\t\t\t\t\t\"-//ietf//dtd html strict level 1//\",\n\t\t\t\t\t\"-//ietf//dtd html strict level 1//\",\n\t\t\t\t\t\"-//ietf//dtd html strict level 2//\",\n\t\t\t\t\t\"-//ietf//dtd html strict level 2//\",\n\t\t\t\t\t\"-//ietf//dtd html strict level 3//\",\n\t\t\t\t\t\"-//ietf//dtd html strict level 3//\",\n\t\t\t\t\t\"-//ietf//dtd html strict//\",\n\t\t\t\t\t\"-//ietf//dtd html strict//\",\n\t\t\t\t\t\"-//ietf//dtd html strict//\",\n\t\t\t\t\t\"-//ietf//dtd html//\",\n\t\t\t\t\t\"-//ietf//dtd html//\",\n\t\t\t\t\t\"-//ietf//dtd html//\",\n\t\t\t\t\t\"-//metrius//dtd metrius presentational//\",\n\t\t\t\t\t\"-//microsoft//dtd internet explorer 2.0 html strict//\",\n\t\t\t\t\t\"-//microsoft//dtd internet explorer 2.0 html//\",\n\t\t\t\t\t\"-//microsoft//dtd internet explorer 2.0 tables//\",\n\t\t\t\t\t\"-//microsoft//dtd internet explorer 3.0 html strict//\",\n\t\t\t\t\t\"-//microsoft//dtd internet explorer 3.0 html//\",\n\t\t\t\t\t\"-//microsoft//dtd internet explorer 3.0 tables//\",\n\t\t\t\t\t\"-//netscape comm. corp.//dtd html//\",\n\t\t\t\t\t\"-//netscape comm. corp.//dtd strict html//\",\n\t\t\t\t\t\"-//o'reilly and associates//dtd html 2.0//\",\n\t\t\t\t\t\"-//o'reilly and associates//dtd html extended 1.0//\",\n\t\t\t\t\t\"-//spyglass//dtd html 2.0 extended//\",\n\t\t\t\t\t\"-//sq//dtd html 2.0 hotmetal + extensions//\",\n\t\t\t\t\t\"-//sun microsystems corp.//dtd hotjava html//\",\n\t\t\t\t\t\"-//sun microsystems corp.//dtd hotjava strict html//\",\n\t\t\t\t\t\"-//w3c//dtd html 3 1995-03-24//\",\n\t\t\t\t\t\"-//w3c//dtd html 3.2 draft//\",\n\t\t\t\t\t\"-//w3c//dtd html 3.2 final//\",\n\t\t\t\t\t\"-//w3c//dtd html 3.2//\",\n\t\t\t\t\t\"-//w3c//dtd html 3.2s draft//\",\n\t\t\t\t\t\"-//w3c//dtd html 4.0 frameset//\",\n\t\t\t\t\t\"-//w3c//dtd html 4.0 transitional//\",\n\t\t\t\t\t\"-//w3c//dtd html experimental 19960712//\",\n\t\t\t\t\t\"-//w3c//dtd html experimental 970421//\",\n\t\t\t\t\t\"-//w3c//dtd w3 html//\",\n\t\t\t\t\t\"-//w3o//dtd w3 html 3.0//\",\n\t\t\t\t\t\"-//webtechs//dtd mozilla html 2.0//\",\n\t\t\t\t\t\"-//webtechs//dtd mozilla html//\",\n\t\t\t\t\t\"html\"\n\t\t\t\t].some(publicIdStartsWith)\n\t\t\t\t|| [\n\t\t\t\t\t\"-//w3o//dtd w3 html strict 3.0//en//\",\n\t\t\t\t\t\"-/w3c/dtd html 4.0 transitional/en\",\n\t\t\t\t\t\"html\"\n\t\t\t\t].indexOf(publicId.toLowerCase()) > -1\n\t\t\t\t|| (systemId == null && [\n\t\t\t\t\t\"-//w3c//dtd html 4.01 transitional//\",\n\t\t\t\t\t\"-//w3c//dtd html 4.01 frameset//\"\n\t\t\t\t].some(publicIdStartsWith)))\n\t\t\t)\n\t\t\t|| (systemId != null && (systemId.toLowerCase() == \"http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd\"))\n\t\t) {\n\t\t\ttree.compatMode = \"quirks\";\n\t\t\ttree.parseError(\"quirky-doctype\");\n\t\t} else if (publicId != null && ([\n\t\t\t\t\"-//w3c//dtd xhtml 1.0 transitional//\",\n\t\t\t\t\"-//w3c//dtd xhtml 1.0 frameset//\"\n\t\t\t].some(publicIdStartsWith)\n\t\t\t|| (systemId != null && [\n\t\t\t\t\"-//w3c//dtd html 4.01 transitional//\",\n\t\t\t\t\"-//w3c//dtd html 4.01 frameset//\"\n\t\t\t].indexOf(publicId.toLowerCase()) > -1))\n\t\t) {\n\t\t\ttree.compatMode = \"limited quirks\";\n\t\t\ttree.parseError(\"almost-standards-doctype\");\n\t\t} else {\n\t\t\tif ((publicId == \"-//W3C//DTD HTML 4.0//EN\" && (systemId == null || systemId == \"http://www.w3.org/TR/REC-html40/strict.dtd\"))\n\t\t\t\t|| (publicId == \"-//W3C//DTD HTML 4.01//EN\" && (systemId == null || systemId == \"http://www.w3.org/TR/html4/strict.dtd\"))\n\t\t\t\t|| (publicId == \"-//W3C//DTD XHTML 1.0 Strict//EN\" && (systemId == \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"))\n\t\t\t\t|| (publicId == \"-//W3C//DTD XHTML 1.1//EN\" && (systemId == \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\"))\n\t\t\t) {\n\t\t\t} else if (!((systemId == null || systemId == \"about:legacy-compat\") && publicId == null)) {\n\t\t\t\ttree.parseError(\"unknown-doctype\");\n\t\t\t}\n\t\t}\n\t\ttree.setInsertionMode('beforeHTML');\n\t\tfunction publicIdStartsWith(string) {\n\t\t\treturn publicId.toLowerCase().indexOf(string) === 0;\n\t\t}\n\t};\n\n\tmodes.initial.processCharacters = function(buffer) {\n\t\tbuffer.skipLeadingWhitespace();\n\t\tif (!buffer.length)\n\t\t\treturn;\n\t\ttree.parseError('expected-doctype-but-got-chars');\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processCharacters(buffer);\n\t};\n\n\tmodes.initial.processStartTag = function(name, attributes, selfClosing) {\n\t\ttree.parseError('expected-doctype-but-got-start-tag', {name: name});\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.initial.processEndTag = function(name) {\n\t\ttree.parseError('expected-doctype-but-got-end-tag', {name: name});\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processEndTag(name);\n\t};\n\n\tmodes.initial.anythingElse = function() {\n\t\ttree.compatMode = 'quirks';\n\t\ttree.setInsertionMode('beforeHTML');\n\t};\n\n\tmodes.beforeHTML = Object.create(modes.base);\n\n\tmodes.beforeHTML.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.beforeHTML.processEOF = function() {\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processEOF();\n\t};\n\n\tmodes.beforeHTML.processComment = function(data) {\n\t\ttree.insertComment(data, tree.document);\n\t};\n\n\tmodes.beforeHTML.processCharacters = function(buffer) {\n\t\tbuffer.skipLeadingWhitespace();\n\t\tif (!buffer.length)\n\t\t\treturn;\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processCharacters(buffer);\n\t};\n\n\tmodes.beforeHTML.startTagHtml = function(name, attributes, selfClosing) {\n\t\ttree.insertHtmlElement(attributes);\n\t\ttree.setInsertionMode('beforeHead');\n\t};\n\n\tmodes.beforeHTML.startTagOther = function(name, attributes, selfClosing) {\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.beforeHTML.processEndTag = function(name) {\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processEndTag(name);\n\t};\n\n\tmodes.beforeHTML.anythingElse = function() {\n\t\ttree.insertHtmlElement();\n\t\ttree.setInsertionMode('beforeHead');\n\t};\n\n\tmodes.afterAfterBody = Object.create(modes.base);\n\n\tmodes.afterAfterBody.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.afterAfterBody.processComment = function(data) {\n\t\ttree.insertComment(data, tree.document);\n\t};\n\n\tmodes.afterAfterBody.processDoctype = function(data) {\n\t\tmodes.inBody.processDoctype(data);\n\t};\n\n\tmodes.afterAfterBody.startTagHtml = function(data, attributes) {\n\t\tmodes.inBody.startTagHtml(data, attributes);\n\t};\n\n\tmodes.afterAfterBody.startTagOther = function(name, attributes, selfClosing) {\n\t\ttree.parseError('unexpected-start-tag', {name: name});\n\t\ttree.setInsertionMode('inBody');\n\t\ttree.insertionMode.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.afterAfterBody.endTagOther = function(name) {\n\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\ttree.setInsertionMode('inBody');\n\t\ttree.insertionMode.processEndTag(name);\n\t};\n\n\tmodes.afterAfterBody.processCharacters = function(data) {\n\t\tif (!isAllWhitespace(data.characters)) {\n\t\t\ttree.parseError('unexpected-char-after-body');\n\t\t\ttree.setInsertionMode('inBody');\n\t\t\treturn tree.insertionMode.processCharacters(data);\n\t\t}\n\t\tmodes.inBody.processCharacters(data);\n\t};\n\n\tmodes.afterBody = Object.create(modes.base);\n\n\tmodes.afterBody.end_tag_handlers = {\n\t\thtml: 'endTagHtml',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.afterBody.processComment = function(data) {\n\t\ttree.insertComment(data, tree.openElements.rootNode);\n\t};\n\n\tmodes.afterBody.processCharacters = function(data) {\n\t\tif (!isAllWhitespace(data.characters)) {\n\t\t\ttree.parseError('unexpected-char-after-body');\n\t\t\ttree.setInsertionMode('inBody');\n\t\t\treturn tree.insertionMode.processCharacters(data);\n\t\t}\n\t\tmodes.inBody.processCharacters(data);\n\t};\n\n\tmodes.afterBody.processStartTag = function(name, attributes, selfClosing) {\n\t\ttree.parseError('unexpected-start-tag-after-body', {name: name});\n\t\ttree.setInsertionMode('inBody');\n\t\ttree.insertionMode.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.afterBody.endTagHtml = function(name) {\n\t\tif (tree.context) {\n\t\t\ttree.parseError('end-html-in-innerhtml');\n\t\t} else {\n\t\t\ttree.setInsertionMode('afterAfterBody');\n\t\t}\n\t};\n\n\tmodes.afterBody.endTagOther = function(name) {\n\t\ttree.parseError('unexpected-end-tag-after-body', {name: name});\n\t\ttree.setInsertionMode('inBody');\n\t\ttree.insertionMode.processEndTag(name);\n\t};\n\n\tmodes.afterFrameset = Object.create(modes.base);\n\n\tmodes.afterFrameset.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\tnoframes: 'startTagNoframes',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.afterFrameset.end_tag_handlers = {\n\t\thtml: 'endTagHtml',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.afterFrameset.processCharacters = function(buffer) {\n\t\tvar characters = buffer.takeRemaining();\n\t\tvar whitespace = \"\";\n\t\tfor (var i = 0; i < characters.length; i++) {\n\t\t\tvar ch = characters[i];\n\t\t\tif (isWhitespace(ch))\n\t\t\t\twhitespace += ch;\n\t\t}\n\t\tif (whitespace) {\n\t\t\ttree.insertText(whitespace);\n\t\t}\n\t\tif (whitespace.length < characters.length)\n\t\t\ttree.parseError('expected-eof-but-got-char');\n\t};\n\n\tmodes.afterFrameset.startTagNoframes = function(name, attributes) {\n\t\tmodes.inHead.processStartTag(name, attributes);\n\t};\n\n\tmodes.afterFrameset.startTagOther = function(name, attributes) {\n\t\ttree.parseError(\"unexpected-start-tag-after-frameset\", {name: name});\n\t};\n\n\tmodes.afterFrameset.endTagHtml = function(name) {\n\t\ttree.setInsertionMode('afterAfterFrameset');\n\t};\n\n\tmodes.afterFrameset.endTagOther = function(name) {\n\t\ttree.parseError(\"unexpected-end-tag-after-frameset\", {name: name});\n\t};\n\n\tmodes.beforeHead = Object.create(modes.base);\n\n\tmodes.beforeHead.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\thead: 'startTagHead',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.beforeHead.end_tag_handlers = {\n\t\thtml: 'endTagImplyHead',\n\t\thead: 'endTagImplyHead',\n\t\tbody: 'endTagImplyHead',\n\t\tbr: 'endTagImplyHead',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.beforeHead.processEOF = function() {\n\t\tthis.startTagHead('head', []);\n\t\ttree.insertionMode.processEOF();\n\t};\n\n\tmodes.beforeHead.processCharacters = function(buffer) {\n\t\tbuffer.skipLeadingWhitespace();\n\t\tif (!buffer.length)\n\t\t\treturn;\n\t\tthis.startTagHead('head', []);\n\t\ttree.insertionMode.processCharacters(buffer);\n\t};\n\n\tmodes.beforeHead.startTagHead = function(name, attributes) {\n\t\ttree.insertHeadElement(attributes);\n\t\ttree.setInsertionMode('inHead');\n\t};\n\n\tmodes.beforeHead.startTagOther = function(name, attributes, selfClosing) {\n\t\tthis.startTagHead('head', []);\n\t\ttree.insertionMode.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.beforeHead.endTagImplyHead = function(name) {\n\t\tthis.startTagHead('head', []);\n\t\ttree.insertionMode.processEndTag(name);\n\t};\n\n\tmodes.beforeHead.endTagOther = function(name) {\n\t\ttree.parseError('end-tag-after-implied-root', {name: name});\n\t};\n\n\tmodes.inHead = Object.create(modes.base);\n\n\tmodes.inHead.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\thead: 'startTagHead',\n\t\ttitle: 'startTagTitle',\n\t\tscript: 'startTagScript',\n\t\tstyle: 'startTagNoFramesStyle',\n\t\tnoscript: 'startTagNoScript',\n\t\tnoframes: 'startTagNoFramesStyle',\n\t\tbase: 'startTagBaseBasefontBgsoundLink',\n\t\tbasefont: 'startTagBaseBasefontBgsoundLink',\n\t\tbgsound: 'startTagBaseBasefontBgsoundLink',\n\t\tlink: 'startTagBaseBasefontBgsoundLink',\n\t\tmeta: 'startTagMeta',\n\t\t\"-default\": 'startTagOther'\n\t};\n\n\tmodes.inHead.end_tag_handlers = {\n\t\thead: 'endTagHead',\n\t\thtml: 'endTagHtmlBodyBr',\n\t\tbody: 'endTagHtmlBodyBr',\n\t\tbr: 'endTagHtmlBodyBr',\n\t\t\"-default\": 'endTagOther'\n\t};\n\n\tmodes.inHead.processEOF = function() {\n\t\tvar name = tree.currentStackItem().localName;\n\t\tif (['title', 'style', 'script'].indexOf(name) != -1) {\n\t\t\ttree.parseError(\"expected-named-closing-tag-but-got-eof\", {name: name});\n\t\t\ttree.popElement();\n\t\t}\n\n\t\tthis.anythingElse();\n\n\t\ttree.insertionMode.processEOF();\n\t};\n\n\tmodes.inHead.processCharacters = function(buffer) {\n\t\tvar leadingWhitespace = buffer.takeLeadingWhitespace();\n\t\tif (leadingWhitespace)\n\t\t\ttree.insertText(leadingWhitespace);\n\t\tif (!buffer.length)\n\t\t\treturn;\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processCharacters(buffer);\n\t};\n\n\tmodes.inHead.startTagHtml = function(name, attributes) {\n\t\tmodes.inBody.processStartTag(name, attributes);\n\t};\n\n\tmodes.inHead.startTagHead = function(name, attributes) {\n\t\ttree.parseError('two-heads-are-not-better-than-one');\n\t};\n\n\tmodes.inHead.startTagTitle = function(name, attributes) {\n\t\ttree.processGenericRCDATAStartTag(name, attributes);\n\t};\n\n\tmodes.inHead.startTagNoScript = function(name, attributes) {\n\t\tif (tree.scriptingEnabled)\n\t\t\treturn tree.processGenericRawTextStartTag(name, attributes);\n\t\ttree.insertElement(name, attributes);\n\t\ttree.setInsertionMode('inHeadNoscript');\n\t};\n\n\tmodes.inHead.startTagNoFramesStyle = function(name, attributes) {\n\t\ttree.processGenericRawTextStartTag(name, attributes);\n\t};\n\n\tmodes.inHead.startTagScript = function(name, attributes) {\n\t\ttree.insertElement(name, attributes);\n\t\ttree.tokenizer.setState(Tokenizer.SCRIPT_DATA);\n\t\ttree.originalInsertionMode = tree.insertionModeName;\n\t\ttree.setInsertionMode('text');\n\t};\n\n\tmodes.inHead.startTagBaseBasefontBgsoundLink = function(name, attributes) {\n\t\ttree.insertSelfClosingElement(name, attributes);\n\t};\n\n\tmodes.inHead.startTagMeta = function(name, attributes) {\n\t\ttree.insertSelfClosingElement(name, attributes);\n\t};\n\n\tmodes.inHead.startTagOther = function(name, attributes, selfClosing) {\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.inHead.endTagHead = function(name) {\n\t\tif (tree.openElements.item(tree.openElements.length - 1).localName == 'head') {\n\t\t\ttree.openElements.pop();\n\t\t} else {\n\t\t\ttree.parseError('unexpected-end-tag', {name: 'head'});\n\t\t}\n\t\ttree.setInsertionMode('afterHead');\n\t};\n\n\tmodes.inHead.endTagHtmlBodyBr = function(name) {\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processEndTag(name);\n\t};\n\n\tmodes.inHead.endTagOther = function(name) {\n\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t};\n\n\tmodes.inHead.anythingElse = function() {\n\t\tthis.endTagHead('head');\n\t};\n\n\tmodes.afterHead = Object.create(modes.base);\n\n\tmodes.afterHead.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\thead: 'startTagHead',\n\t\tbody: 'startTagBody',\n\t\tframeset: 'startTagFrameset',\n\t\tbase: 'startTagFromHead',\n\t\tlink: 'startTagFromHead',\n\t\tmeta: 'startTagFromHead',\n\t\tscript: 'startTagFromHead',\n\t\tstyle: 'startTagFromHead',\n\t\ttitle: 'startTagFromHead',\n\t\t\"-default\": 'startTagOther'\n\t};\n\n\tmodes.afterHead.end_tag_handlers = {\n\t\tbody: 'endTagBodyHtmlBr',\n\t\thtml: 'endTagBodyHtmlBr',\n\t\tbr: 'endTagBodyHtmlBr',\n\t\t\"-default\": 'endTagOther'\n\t};\n\n\tmodes.afterHead.processEOF = function() {\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processEOF();\n\t};\n\n\tmodes.afterHead.processCharacters = function(buffer) {\n\t\tvar leadingWhitespace = buffer.takeLeadingWhitespace();\n\t\tif (leadingWhitespace)\n\t\t\ttree.insertText(leadingWhitespace);\n\t\tif (!buffer.length)\n\t\t\treturn;\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processCharacters(buffer);\n\t};\n\n\tmodes.afterHead.startTagHtml = function(name, attributes) {\n\t\tmodes.inBody.processStartTag(name, attributes);\n\t};\n\n\tmodes.afterHead.startTagBody = function(name, attributes) {\n\t\ttree.framesetOk = false;\n\t\ttree.insertBodyElement(attributes);\n\t\ttree.setInsertionMode('inBody');\n\t};\n\n\tmodes.afterHead.startTagFrameset = function(name, attributes) {\n\t\ttree.insertElement(name, attributes);\n\t\ttree.setInsertionMode('inFrameset');\n\t};\n\n\tmodes.afterHead.startTagFromHead = function(name, attributes, selfClosing) {\n\t\ttree.parseError(\"unexpected-start-tag-out-of-my-head\", {name: name});\n\t\ttree.openElements.push(tree.head);\n\t\tmodes.inHead.processStartTag(name, attributes, selfClosing);\n\t\ttree.openElements.remove(tree.head);\n\t};\n\n\tmodes.afterHead.startTagHead = function(name, attributes, selfClosing) {\n\t\ttree.parseError('unexpected-start-tag', {name: name});\n\t};\n\n\tmodes.afterHead.startTagOther = function(name, attributes, selfClosing) {\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.afterHead.endTagBodyHtmlBr = function(name) {\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processEndTag(name);\n\t};\n\n\tmodes.afterHead.endTagOther = function(name) {\n\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t};\n\n\tmodes.afterHead.anythingElse = function() {\n\t\ttree.insertBodyElement([]);\n\t\ttree.setInsertionMode('inBody');\n\t\ttree.framesetOk = true;\n\t}\n\n\tmodes.inBody = Object.create(modes.base);\n\n\tmodes.inBody.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\thead: 'startTagMisplaced',\n\t\tbase: 'startTagProcessInHead',\n\t\tbasefont: 'startTagProcessInHead',\n\t\tbgsound: 'startTagProcessInHead',\n\t\tlink: 'startTagProcessInHead',\n\t\tmeta: 'startTagProcessInHead',\n\t\tnoframes: 'startTagProcessInHead',\n\t\tscript: 'startTagProcessInHead',\n\t\tstyle: 'startTagProcessInHead',\n\t\ttitle: 'startTagProcessInHead',\n\t\tbody: 'startTagBody',\n\t\tform: 'startTagForm',\n\t\tplaintext: 'startTagPlaintext',\n\t\ta: 'startTagA',\n\t\tbutton: 'startTagButton',\n\t\txmp: 'startTagXmp',\n\t\ttable: 'startTagTable',\n\t\thr: 'startTagHr',\n\t\timage: 'startTagImage',\n\t\tinput: 'startTagInput',\n\t\ttextarea: 'startTagTextarea',\n\t\tselect: 'startTagSelect',\n\t\tisindex: 'startTagIsindex',\n\t\tapplet:\t'startTagAppletMarqueeObject',\n\t\tmarquee:\t'startTagAppletMarqueeObject',\n\t\tobject:\t'startTagAppletMarqueeObject',\n\t\tli: 'startTagListItem',\n\t\tdd: 'startTagListItem',\n\t\tdt: 'startTagListItem',\n\t\taddress: 'startTagCloseP',\n\t\tarticle: 'startTagCloseP',\n\t\taside: 'startTagCloseP',\n\t\tblockquote: 'startTagCloseP',\n\t\tcenter: 'startTagCloseP',\n\t\tdetails: 'startTagCloseP',\n\t\tdir: 'startTagCloseP',\n\t\tdiv: 'startTagCloseP',\n\t\tdl: 'startTagCloseP',\n\t\tfieldset: 'startTagCloseP',\n\t\tfigcaption: 'startTagCloseP',\n\t\tfigure: 'startTagCloseP',\n\t\tfooter: 'startTagCloseP',\n\t\theader: 'startTagCloseP',\n\t\thgroup: 'startTagCloseP',\n\t\tmain: 'startTagCloseP',\n\t\tmenu: 'startTagCloseP',\n\t\tnav: 'startTagCloseP',\n\t\tol: 'startTagCloseP',\n\t\tp: 'startTagCloseP',\n\t\tsection: 'startTagCloseP',\n\t\tsummary: 'startTagCloseP',\n\t\tul: 'startTagCloseP',\n\t\tlisting: 'startTagPreListing',\n\t\tpre: 'startTagPreListing',\n\t\tb: 'startTagFormatting',\n\t\tbig: 'startTagFormatting',\n\t\tcode: 'startTagFormatting',\n\t\tem: 'startTagFormatting',\n\t\tfont: 'startTagFormatting',\n\t\ti: 'startTagFormatting',\n\t\ts: 'startTagFormatting',\n\t\tsmall: 'startTagFormatting',\n\t\tstrike: 'startTagFormatting',\n\t\tstrong: 'startTagFormatting',\n\t\ttt: 'startTagFormatting',\n\t\tu: 'startTagFormatting',\n\t\tnobr: 'startTagNobr',\n\t\tarea: 'startTagVoidFormatting',\n\t\tbr: 'startTagVoidFormatting',\n\t\tembed: 'startTagVoidFormatting',\n\t\timg: 'startTagVoidFormatting',\n\t\tkeygen: 'startTagVoidFormatting',\n\t\twbr: 'startTagVoidFormatting',\n\t\tparam: 'startTagParamSourceTrack',\n\t\tsource: 'startTagParamSourceTrack',\n\t\ttrack: 'startTagParamSourceTrack',\n\t\tiframe: 'startTagIFrame',\n\t\tnoembed: 'startTagRawText',\n\t\tnoscript: 'startTagRawText',\n\t\th1: 'startTagHeading',\n\t\th2: 'startTagHeading',\n\t\th3: 'startTagHeading',\n\t\th4: 'startTagHeading',\n\t\th5: 'startTagHeading',\n\t\th6: 'startTagHeading',\n\t\tcaption: 'startTagMisplaced',\n\t\tcol: 'startTagMisplaced',\n\t\tcolgroup: 'startTagMisplaced',\n\t\tframe: 'startTagMisplaced',\n\t\tframeset: 'startTagFrameset',\n\t\ttbody: 'startTagMisplaced',\n\t\ttd: 'startTagMisplaced',\n\t\ttfoot: 'startTagMisplaced',\n\t\tth: 'startTagMisplaced',\n\t\tthead: 'startTagMisplaced',\n\t\ttr: 'startTagMisplaced',\n\t\toption: 'startTagOptionOptgroup',\n\t\toptgroup: 'startTagOptionOptgroup',\n\t\tmath: 'startTagMath',\n\t\tsvg: 'startTagSVG',\n\t\trt: 'startTagRpRt',\n\t\trp: 'startTagRpRt',\n\t\t\"-default\": 'startTagOther'\n\t};\n\n\tmodes.inBody.end_tag_handlers = {\n\t\tp: 'endTagP',\n\t\tbody: 'endTagBody',\n\t\thtml: 'endTagHtml',\n\t\taddress: 'endTagBlock',\n\t\tarticle: 'endTagBlock',\n\t\taside: 'endTagBlock',\n\t\tblockquote: 'endTagBlock',\n\t\tbutton: 'endTagBlock',\n\t\tcenter: 'endTagBlock',\n\t\tdetails: 'endTagBlock',\n\t\tdir: 'endTagBlock',\n\t\tdiv: 'endTagBlock',\n\t\tdl: 'endTagBlock',\n\t\tfieldset: 'endTagBlock',\n\t\tfigcaption: 'endTagBlock',\n\t\tfigure: 'endTagBlock',\n\t\tfooter: 'endTagBlock',\n\t\theader: 'endTagBlock',\n\t\thgroup: 'endTagBlock',\n\t\tlisting: 'endTagBlock',\n\t\tmain: 'endTagBlock',\n\t\tmenu: 'endTagBlock',\n\t\tnav: 'endTagBlock',\n\t\tol: 'endTagBlock',\n\t\tpre: 'endTagBlock',\n\t\tsection: 'endTagBlock',\n\t\tsummary: 'endTagBlock',\n\t\tul: 'endTagBlock',\n\t\tform: 'endTagForm',\n\t\tapplet: 'endTagAppletMarqueeObject',\n\t\tmarquee: 'endTagAppletMarqueeObject',\n\t\tobject: 'endTagAppletMarqueeObject',\n\t\tdd: 'endTagListItem',\n\t\tdt: 'endTagListItem',\n\t\tli: 'endTagListItem',\n\t\th1: 'endTagHeading',\n\t\th2: 'endTagHeading',\n\t\th3: 'endTagHeading',\n\t\th4: 'endTagHeading',\n\t\th5: 'endTagHeading',\n\t\th6: 'endTagHeading',\n\t\ta: 'endTagFormatting',\n\t\tb: 'endTagFormatting',\n\t\tbig: 'endTagFormatting',\n\t\tcode: 'endTagFormatting',\n\t\tem: 'endTagFormatting',\n\t\tfont: 'endTagFormatting',\n\t\ti: 'endTagFormatting',\n\t\tnobr: 'endTagFormatting',\n\t\ts: 'endTagFormatting',\n\t\tsmall: 'endTagFormatting',\n\t\tstrike: 'endTagFormatting',\n\t\tstrong: 'endTagFormatting',\n\t\ttt: 'endTagFormatting',\n\t\tu: 'endTagFormatting',\n\t\tbr: 'endTagBr',\n\t\t\"-default\": 'endTagOther'\n\t};\n\n\tmodes.inBody.processCharacters = function(buffer) {\n\t\tif (tree.shouldSkipLeadingNewline) {\n\t\t\ttree.shouldSkipLeadingNewline = false;\n\t\t\tbuffer.skipAtMostOneLeadingNewline();\n\t\t}\n\t\ttree.reconstructActiveFormattingElements();\n\t\tvar characters = buffer.takeRemaining();\n\t\tcharacters = characters.replace(/\\u0000/g, function(match, index){\n\t\t\ttree.parseError(\"invalid-codepoint\");\n\t\t\treturn '';\n\t\t});\n\t\tif (!characters)\n\t\t\treturn;\n\t\ttree.insertText(characters);\n\t\tif (tree.framesetOk && !isAllWhitespaceOrReplacementCharacters(characters))\n\t\t\ttree.framesetOk = false;\n\t};\n\n\tmodes.inBody.startTagHtml = function(name, attributes) {\n\t\ttree.parseError('non-html-root');\n\t\ttree.addAttributesToElement(tree.openElements.rootNode, attributes);\n\t};\n\n\tmodes.inBody.startTagProcessInHead = function(name, attributes) {\n\t\tmodes.inHead.processStartTag(name, attributes);\n\t};\n\n\tmodes.inBody.startTagBody = function(name, attributes) {\n\t\ttree.parseError('unexpected-start-tag', {name: 'body'});\n\t\tif (tree.openElements.length == 1 ||\n\t\t\ttree.openElements.item(1).localName != 'body') {\n\t\t\tassert.ok(tree.context);\n\t\t} else {\n\t\t\ttree.framesetOk = false;\n\t\t\ttree.addAttributesToElement(tree.openElements.bodyElement, attributes);\n\t\t}\n\t};\n\n\tmodes.inBody.startTagFrameset = function(name, attributes) {\n\t\ttree.parseError('unexpected-start-tag', {name: 'frameset'});\n\t\tif (tree.openElements.length == 1 ||\n\t\t\ttree.openElements.item(1).localName != 'body') {\n\t\t\tassert.ok(tree.context);\n\t\t} else if (tree.framesetOk) {\n\t\t\ttree.detachFromParent(tree.openElements.bodyElement);\n\t\t\twhile (tree.openElements.length > 1)\n\t\t\t\ttree.openElements.pop();\n\t\t\ttree.insertElement(name, attributes);\n\t\t\ttree.setInsertionMode('inFrameset');\n\t\t}\n\t};\n\n\tmodes.inBody.startTagCloseP = function(name, attributes) {\n\t\tif (tree.openElements.inButtonScope('p'))\n\t\t\tthis.endTagP('p');\n\t\ttree.insertElement(name, attributes);\n\t};\n\n\tmodes.inBody.startTagPreListing = function(name, attributes) {\n\t\tif (tree.openElements.inButtonScope('p'))\n\t\t\tthis.endTagP('p');\n\t\ttree.insertElement(name, attributes);\n\t\ttree.framesetOk = false;\n\t\ttree.shouldSkipLeadingNewline = true;\n\t};\n\n\tmodes.inBody.startTagForm = function(name, attributes) {\n\t\tif (tree.form) {\n\t\t\ttree.parseError('unexpected-start-tag', {name: name});\n\t\t} else {\n\t\t\tif (tree.openElements.inButtonScope('p'))\n\t\t\t\tthis.endTagP('p');\n\t\t\ttree.insertElement(name, attributes);\n\t\t\ttree.form = tree.currentStackItem();\n\t\t}\n\t};\n\n\tmodes.inBody.startTagRpRt = function(name, attributes) {\n\t\tif (tree.openElements.inScope('ruby')) {\n\t\t\ttree.generateImpliedEndTags();\n\t\t\tif (tree.currentStackItem().localName != 'ruby') {\n\t\t\t\ttree.parseError('unexpected-start-tag', {name: name});\n\t\t\t}\n\t\t}\n\t\ttree.insertElement(name, attributes);\n\t};\n\n\tmodes.inBody.startTagListItem = function(name, attributes) {\n\t\tvar stopNames = {li: ['li'], dd: ['dd', 'dt'], dt: ['dd', 'dt']};\n\t\tvar stopName = stopNames[name];\n\n\t\tvar els = tree.openElements;\n\t\tfor (var i = els.length - 1; i >= 0; i--) {\n\t\t\tvar node = els.item(i);\n\t\t\tif (stopName.indexOf(node.localName) != -1) {\n\t\t\t\ttree.insertionMode.processEndTag(node.localName);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (node.isSpecial() && node.localName !== 'p' && node.localName !== 'address' && node.localName !== 'div')\n\t\t\t\tbreak;\n\t\t}\n\t\tif (tree.openElements.inButtonScope('p'))\n\t\t\tthis.endTagP('p');\n\t\ttree.insertElement(name, attributes);\n\t\ttree.framesetOk = false;\n\t};\n\n\tmodes.inBody.startTagPlaintext = function(name, attributes) {\n\t\tif (tree.openElements.inButtonScope('p'))\n\t\t\tthis.endTagP('p');\n\t\ttree.insertElement(name, attributes);\n\t\ttree.tokenizer.setState(Tokenizer.PLAINTEXT);\n\t};\n\n\tmodes.inBody.startTagHeading = function(name, attributes) {\n\t\tif (tree.openElements.inButtonScope('p'))\n\t\t\tthis.endTagP('p');\n\t\tif (tree.currentStackItem().isNumberedHeader()) {\n\t\t\ttree.parseError('unexpected-start-tag', {name: name});\n\t\t\ttree.popElement();\n\t\t}\n\t\ttree.insertElement(name, attributes);\n\t};\n\n\tmodes.inBody.startTagA = function(name, attributes) {\n\t\tvar activeA = tree.elementInActiveFormattingElements('a');\n\t\tif (activeA) {\n\t\t\ttree.parseError(\"unexpected-start-tag-implies-end-tag\", {startName: \"a\", endName: \"a\"});\n\t\t\ttree.adoptionAgencyEndTag('a');\n\t\t\tif (tree.openElements.contains(activeA))\n\t\t\t\ttree.openElements.remove(activeA);\n\t\t\ttree.removeElementFromActiveFormattingElements(activeA);\n\t\t}\n\t\ttree.reconstructActiveFormattingElements();\n\t\ttree.insertFormattingElement(name, attributes);\n\t};\n\n\tmodes.inBody.startTagFormatting = function(name, attributes) {\n\t\ttree.reconstructActiveFormattingElements();\n\t\ttree.insertFormattingElement(name, attributes);\n\t};\n\n\tmodes.inBody.startTagNobr = function(name, attributes) {\n\t\ttree.reconstructActiveFormattingElements();\n\t\tif (tree.openElements.inScope('nobr')) {\n\t\t\ttree.parseError(\"unexpected-start-tag-implies-end-tag\", {startName: 'nobr', endName: 'nobr'});\n\t\t\tthis.processEndTag('nobr');\n\t\t\t\ttree.reconstructActiveFormattingElements();\n\t\t}\n\t\ttree.insertFormattingElement(name, attributes);\n\t};\n\n\tmodes.inBody.startTagButton = function(name, attributes) {\n\t\tif (tree.openElements.inScope('button')) {\n\t\t\ttree.parseError('unexpected-start-tag-implies-end-tag', {startName: 'button', endName: 'button'});\n\t\t\tthis.processEndTag('button');\n\t\t\ttree.insertionMode.processStartTag(name, attributes);\n\t\t} else {\n\t\t\ttree.framesetOk = false;\n\t\t\ttree.reconstructActiveFormattingElements();\n\t\t\ttree.insertElement(name, attributes);\n\t\t}\n\t};\n\n\tmodes.inBody.startTagAppletMarqueeObject = function(name, attributes) {\n\t\ttree.reconstructActiveFormattingElements();\n\t\ttree.insertElement(name, attributes);\n\t\ttree.activeFormattingElements.push(Marker);\n\t\ttree.framesetOk = false;\n\t};\n\n\tmodes.inBody.endTagAppletMarqueeObject = function(name) {\n\t\tif (!tree.openElements.inScope(name)) {\n\t\t\ttree.parseError(\"unexpected-end-tag\", {name: name});\n\t\t} else {\n\t\t\ttree.generateImpliedEndTags();\n\t\t\tif (tree.currentStackItem().localName != name) {\n\t\t\t\ttree.parseError('end-tag-too-early', {name: name});\n\t\t\t}\n\t\t\ttree.openElements.popUntilPopped(name);\n\t\t\ttree.clearActiveFormattingElements();\n\t\t}\n\t};\n\n\tmodes.inBody.startTagXmp = function(name, attributes) {\n\t\tif (tree.openElements.inButtonScope('p'))\n\t\t\tthis.processEndTag('p');\n\t\ttree.reconstructActiveFormattingElements();\n\t\ttree.processGenericRawTextStartTag(name, attributes);\n\t\ttree.framesetOk = false;\n\t};\n\n\tmodes.inBody.startTagTable = function(name, attributes) {\n\t\tif (tree.compatMode !== \"quirks\")\n\t\t\tif (tree.openElements.inButtonScope('p'))\n\t\t\t\tthis.processEndTag('p');\n\t\ttree.insertElement(name, attributes);\n\t\ttree.setInsertionMode('inTable');\n\t\ttree.framesetOk = false;\n\t};\n\n\tmodes.inBody.startTagVoidFormatting = function(name, attributes) {\n\t\ttree.reconstructActiveFormattingElements();\n\t\ttree.insertSelfClosingElement(name, attributes);\n\t\ttree.framesetOk = false;\n\t};\n\n\tmodes.inBody.startTagParamSourceTrack = function(name, attributes) {\n\t\ttree.insertSelfClosingElement(name, attributes);\n\t};\n\n\tmodes.inBody.startTagHr = function(name, attributes) {\n\t\tif (tree.openElements.inButtonScope('p'))\n\t\t\tthis.endTagP('p');\n\t\ttree.insertSelfClosingElement(name, attributes);\n\t\ttree.framesetOk = false;\n\t};\n\n\tmodes.inBody.startTagImage = function(name, attributes) {\n\t\ttree.parseError('unexpected-start-tag-treated-as', {originalName: 'image', newName: 'img'});\n\t\tthis.processStartTag('img', attributes);\n\t};\n\n\tmodes.inBody.startTagInput = function(name, attributes) {\n\t\tvar currentFramesetOk = tree.framesetOk;\n\t\tthis.startTagVoidFormatting(name, attributes);\n\t\tfor (var key in attributes) {\n\t\t\tif (attributes[key].nodeName == 'type') {\n\t\t\t\tif (attributes[key].nodeValue.toLowerCase() == 'hidden')\n\t\t\t\t\ttree.framesetOk = currentFramesetOk;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t};\n\n\tmodes.inBody.startTagIsindex = function(name, attributes) {\n\t\ttree.parseError('deprecated-tag', {name: 'isindex'});\n\t\ttree.selfClosingFlagAcknowledged = true;\n\t\tif (tree.form)\n\t\t\treturn;\n\t\tvar formAttributes = [];\n\t\tvar inputAttributes = [];\n\t\tvar prompt = \"This is a searchable index. Enter search keywords: \";\n\t\tfor (var key in attributes) {\n\t\t\tswitch (attributes[key].nodeName) {\n\t\t\t\tcase 'action':\n\t\t\t\t\tformAttributes.push({nodeName: 'action',\n\t\t\t\t\t\tnodeValue: attributes[key].nodeValue});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'prompt':\n\t\t\t\t\tprompt = attributes[key].nodeValue;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'name':\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tinputAttributes.push({nodeName: attributes[key].nodeName,\n\t\t\t\t\t\tnodeValue: attributes[key].nodeValue});\n\t\t\t}\n\t\t}\n\t\tinputAttributes.push({nodeName: 'name', nodeValue: 'isindex'});\n\t\tthis.processStartTag('form', formAttributes);\n\t\tthis.processStartTag('hr');\n\t\tthis.processStartTag('label');\n\t\tthis.processCharacters(new CharacterBuffer(prompt));\n\t\tthis.processStartTag('input', inputAttributes);\n\t\tthis.processEndTag('label');\n\t\tthis.processStartTag('hr');\n\t\tthis.processEndTag('form');\n\t};\n\n\tmodes.inBody.startTagTextarea = function(name, attributes) {\n\t\ttree.insertElement(name, attributes);\n\t\ttree.tokenizer.setState(Tokenizer.RCDATA);\n\t\ttree.originalInsertionMode = tree.insertionModeName;\n\t\ttree.shouldSkipLeadingNewline = true;\n\t\ttree.framesetOk = false;\n\t\ttree.setInsertionMode('text');\n\t};\n\n\tmodes.inBody.startTagIFrame = function(name, attributes) {\n\t\ttree.framesetOk = false;\n\t\tthis.startTagRawText(name, attributes);\n\t};\n\n\tmodes.inBody.startTagRawText = function(name, attributes) {\n\t\ttree.processGenericRawTextStartTag(name, attributes);\n\t};\n\n\tmodes.inBody.startTagSelect = function(name, attributes) {\n\t\ttree.reconstructActiveFormattingElements();\n\t\ttree.insertElement(name, attributes);\n\t\ttree.framesetOk = false;\n\t\tvar insertionModeName = tree.insertionModeName;\n\t\tif (insertionModeName == 'inTable' ||\n\t\t\tinsertionModeName == 'inCaption' ||\n\t\t\tinsertionModeName == 'inColumnGroup' ||\n\t\t\tinsertionModeName == 'inTableBody' ||\n\t\t\tinsertionModeName == 'inRow' ||\n\t\t\tinsertionModeName == 'inCell') {\n\t\t\ttree.setInsertionMode('inSelectInTable');\n\t\t} else {\n\t\t\ttree.setInsertionMode('inSelect');\n\t\t}\n\t};\n\n\tmodes.inBody.startTagMisplaced = function(name, attributes) {\n\t\ttree.parseError('unexpected-start-tag-ignored', {name: name});\n\t};\n\n\tmodes.inBody.endTagMisplaced = function(name) {\n\t\ttree.parseError(\"unexpected-end-tag\", {name: name});\n\t};\n\n\tmodes.inBody.endTagBr = function(name) {\n\t\ttree.parseError(\"unexpected-end-tag-treated-as\", {originalName: \"br\", newName: \"br element\"});\n\t\ttree.reconstructActiveFormattingElements();\n\t\ttree.insertElement(name, []);\n\t\ttree.popElement();\n\t};\n\n\tmodes.inBody.startTagOptionOptgroup = function(name, attributes) {\n\t\tif (tree.currentStackItem().localName == 'option')\n\t\t\ttree.popElement();\n\t\ttree.reconstructActiveFormattingElements();\n\t\ttree.insertElement(name, attributes);\n\t};\n\n\tmodes.inBody.startTagOther = function(name, attributes) {\n\t\ttree.reconstructActiveFormattingElements();\n\t\ttree.insertElement(name, attributes);\n\t};\n\n\tmodes.inBody.endTagOther = function(name) {\n\t\tvar node;\n\t\tfor (var i = tree.openElements.length - 1; i > 0; i--) {\n\t\t\tnode = tree.openElements.item(i);\n\t\t\tif (node.localName == name) {\n\t\t\t\ttree.generateImpliedEndTags(name);\n\t\t\t\tif (tree.currentStackItem().localName != name)\n\t\t\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t\t\ttree.openElements.remove_openElements_until(function(x) {return x === node;});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (node.isSpecial()) {\n\t\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t};\n\n\tmodes.inBody.startTagMath = function(name, attributes, selfClosing) {\n\t\ttree.reconstructActiveFormattingElements();\n\t\tattributes = tree.adjustMathMLAttributes(attributes);\n\t\tattributes = tree.adjustForeignAttributes(attributes);\n\t\ttree.insertForeignElement(name, attributes, \"http://www.w3.org/1998/Math/MathML\", selfClosing);\n\t};\n\n\tmodes.inBody.startTagSVG = function(name, attributes, selfClosing) {\n\t\ttree.reconstructActiveFormattingElements();\n\t\tattributes = tree.adjustSVGAttributes(attributes);\n\t\tattributes = tree.adjustForeignAttributes(attributes);\n\t\ttree.insertForeignElement(name, attributes, \"http://www.w3.org/2000/svg\", selfClosing);\n\t};\n\n\tmodes.inBody.endTagP = function(name) {\n\t\tif (!tree.openElements.inButtonScope('p')) {\n\t\t\ttree.parseError('unexpected-end-tag', {name: 'p'});\n\t\t\tthis.startTagCloseP('p', []);\n\t\t\tthis.endTagP('p');\n\t\t} else {\n\t\t\ttree.generateImpliedEndTags('p');\n\t\t\tif (tree.currentStackItem().localName != 'p')\n\t\t\t\ttree.parseError('unexpected-implied-end-tag', {name: 'p'});\n\t\t\ttree.openElements.popUntilPopped(name);\n\t\t}\n\t};\n\n\tmodes.inBody.endTagBody = function(name) {\n\t\tif (!tree.openElements.inScope('body')) {\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t\treturn;\n\t\t}\n\t\tif (tree.currentStackItem().localName != 'body') {\n\t\t\ttree.parseError('expected-one-end-tag-but-got-another', {\n\t\t\t\texpectedName: tree.currentStackItem().localName,\n\t\t\t\tgotName: name\n\t\t\t});\n\t\t}\n\t\ttree.setInsertionMode('afterBody');\n\t};\n\n\tmodes.inBody.endTagHtml = function(name) {\n\t\tif (!tree.openElements.inScope('body')) {\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t\treturn;\n\t\t}\n\t\tif (tree.currentStackItem().localName != 'body') {\n\t\t\ttree.parseError('expected-one-end-tag-but-got-another', {\n\t\t\t\texpectedName: tree.currentStackItem().localName,\n\t\t\t\tgotName: name\n\t\t\t});\n\t\t}\n\t\ttree.setInsertionMode('afterBody');\n\t\ttree.insertionMode.processEndTag(name);\n\t};\n\n\tmodes.inBody.endTagBlock = function(name) {\n\t\tif (!tree.openElements.inScope(name)) {\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t} else {\n\t\t\ttree.generateImpliedEndTags();\n\t\t\tif (tree.currentStackItem().localName != name) {\n\t\t\t\ttree.parseError('end-tag-too-early', {name: name});\n\t\t\t}\n\t\t\ttree.openElements.popUntilPopped(name);\n\t\t}\n\t};\n\n\tmodes.inBody.endTagForm = function(name)  {\n\t\tvar node = tree.form;\n\t\ttree.form = null;\n\t\tif (!node || !tree.openElements.inScope(name)) {\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t} else {\n\t\t\ttree.generateImpliedEndTags();\n\t\t\tif (tree.currentStackItem() != node) {\n\t\t\t\ttree.parseError('end-tag-too-early-ignored', {name: 'form'});\n\t\t\t}\n\t\t\ttree.openElements.remove(node);\n\t\t}\n\t};\n\n\tmodes.inBody.endTagListItem = function(name) {\n\t\tif (!tree.openElements.inListItemScope(name)) {\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t} else {\n\t\t\ttree.generateImpliedEndTags(name);\n\t\t\tif (tree.currentStackItem().localName != name)\n\t\t\t\ttree.parseError('end-tag-too-early', {name: name});\n\t\t\ttree.openElements.popUntilPopped(name);\n\t\t}\n\t};\n\n\tmodes.inBody.endTagHeading = function(name) {\n\t\tif (!tree.openElements.hasNumberedHeaderElementInScope()) {\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t\treturn;\n\t\t}\n\t\ttree.generateImpliedEndTags();\n\t\tif (tree.currentStackItem().localName != name)\n\t\t\ttree.parseError('end-tag-too-early', {name: name});\n\n\t\ttree.openElements.remove_openElements_until(function(e) {\n\t\t\treturn e.isNumberedHeader();\n\t\t});\n\t};\n\n\tmodes.inBody.endTagFormatting = function(name, attributes) {\n\t\tif (!tree.adoptionAgencyEndTag(name))\n\t\t\tthis.endTagOther(name, attributes);\n\t};\n\n\tmodes.inCaption = Object.create(modes.base);\n\n\tmodes.inCaption.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\tcaption: 'startTagTableElement',\n\t\tcol: 'startTagTableElement',\n\t\tcolgroup: 'startTagTableElement',\n\t\ttbody: 'startTagTableElement',\n\t\ttd: 'startTagTableElement',\n\t\ttfoot: 'startTagTableElement',\n\t\tthead: 'startTagTableElement',\n\t\ttr: 'startTagTableElement',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.inCaption.end_tag_handlers = {\n\t\tcaption: 'endTagCaption',\n\t\ttable: 'endTagTable',\n\t\tbody: 'endTagIgnore',\n\t\tcol: 'endTagIgnore',\n\t\tcolgroup: 'endTagIgnore',\n\t\thtml: 'endTagIgnore',\n\t\ttbody: 'endTagIgnore',\n\t\ttd: 'endTagIgnore',\n\t\ttfood: 'endTagIgnore',\n\t\tthead: 'endTagIgnore',\n\t\ttr: 'endTagIgnore',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.inCaption.processCharacters = function(data) {\n\t\tmodes.inBody.processCharacters(data);\n\t};\n\n\tmodes.inCaption.startTagTableElement = function(name, attributes) {\n\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\tvar ignoreEndTag = !tree.openElements.inTableScope('caption');\n\t\ttree.insertionMode.processEndTag('caption');\n\t\tif (!ignoreEndTag) tree.insertionMode.processStartTag(name, attributes);\n\t};\n\n\tmodes.inCaption.startTagOther = function(name, attributes, selfClosing) {\n\t\tmodes.inBody.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.inCaption.endTagCaption = function(name) {\n\t\tif (!tree.openElements.inTableScope('caption')) {\n\t\t\tassert.ok(tree.context);\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t} else {\n\t\t\ttree.generateImpliedEndTags();\n\t\t\tif (tree.currentStackItem().localName != 'caption') {\n\t\t\t\ttree.parseError('expected-one-end-tag-but-got-another', {\n\t\t\t\t\tgotName: \"caption\",\n\t\t\t\t\texpectedName: tree.currentStackItem().localName\n\t\t\t\t});\n\t\t\t}\n\t\t\ttree.openElements.popUntilPopped('caption');\n\t\t\ttree.clearActiveFormattingElements();\n\t\t\ttree.setInsertionMode('inTable');\n\t\t}\n\t};\n\n\tmodes.inCaption.endTagTable = function(name) {\n\t\ttree.parseError(\"unexpected-end-table-in-caption\");\n\t\tvar ignoreEndTag = !tree.openElements.inTableScope('caption');\n\t\ttree.insertionMode.processEndTag('caption');\n\t\tif (!ignoreEndTag) tree.insertionMode.processEndTag(name);\n\t};\n\n\tmodes.inCaption.endTagIgnore = function(name) {\n\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t};\n\n\tmodes.inCaption.endTagOther = function(name) {\n\t\tmodes.inBody.processEndTag(name);\n\t};\n\n\tmodes.inCell = Object.create(modes.base);\n\n\tmodes.inCell.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\tcaption: 'startTagTableOther',\n\t\tcol: 'startTagTableOther',\n\t\tcolgroup: 'startTagTableOther',\n\t\ttbody: 'startTagTableOther',\n\t\ttd: 'startTagTableOther',\n\t\ttfoot: 'startTagTableOther',\n\t\tth: 'startTagTableOther',\n\t\tthead: 'startTagTableOther',\n\t\ttr: 'startTagTableOther',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.inCell.end_tag_handlers = {\n\t\ttd: 'endTagTableCell',\n\t\tth: 'endTagTableCell',\n\t\tbody: 'endTagIgnore',\n\t\tcaption: 'endTagIgnore',\n\t\tcol: 'endTagIgnore',\n\t\tcolgroup: 'endTagIgnore',\n\t\thtml: 'endTagIgnore',\n\t\ttable: 'endTagImply',\n\t\ttbody: 'endTagImply',\n\t\ttfoot: 'endTagImply',\n\t\tthead: 'endTagImply',\n\t\ttr: 'endTagImply',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.inCell.processCharacters = function(data) {\n\t\tmodes.inBody.processCharacters(data);\n\t};\n\n\tmodes.inCell.startTagTableOther = function(name, attributes, selfClosing) {\n\t\tif (tree.openElements.inTableScope('td') || tree.openElements.inTableScope('th')) {\n\t\t\tthis.closeCell();\n\t\t\ttree.insertionMode.processStartTag(name, attributes, selfClosing);\n\t\t} else {\n\t\t\ttree.parseError('unexpected-start-tag', {name: name});\n\t\t}\n\t};\n\n\tmodes.inCell.startTagOther = function(name, attributes, selfClosing) {\n\t\tmodes.inBody.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.inCell.endTagTableCell = function(name) {\n\t\tif (tree.openElements.inTableScope(name)) {\n\t\t\ttree.generateImpliedEndTags(name);\n\t\t\tif (tree.currentStackItem().localName != name.toLowerCase()) {\n\t\t\t\ttree.parseError('unexpected-cell-end-tag', {name: name});\n\t\t\t\ttree.openElements.popUntilPopped(name);\n\t\t\t} else {\n\t\t\t\ttree.popElement();\n\t\t\t}\n\t\t\ttree.clearActiveFormattingElements();\n\t\t\ttree.setInsertionMode('inRow');\n\t\t} else {\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t}\n\t};\n\n\tmodes.inCell.endTagIgnore = function(name) {\n\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t};\n\n\tmodes.inCell.endTagImply = function(name) {\n\t\tif (tree.openElements.inTableScope(name)) {\n\t\t\tthis.closeCell();\n\t\t\ttree.insertionMode.processEndTag(name);\n\t\t} else {\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t}\n\t};\n\n\tmodes.inCell.endTagOther = function(name) {\n\t\tmodes.inBody.processEndTag(name);\n\t};\n\n\tmodes.inCell.closeCell = function() {\n\t\tif (tree.openElements.inTableScope('td')) {\n\t\t\tthis.endTagTableCell('td');\n\t\t} else if (tree.openElements.inTableScope('th')) {\n\t\t\tthis.endTagTableCell('th');\n\t\t}\n\t};\n\n\n\tmodes.inColumnGroup = Object.create(modes.base);\n\n\tmodes.inColumnGroup.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\tcol: 'startTagCol',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.inColumnGroup.end_tag_handlers = {\n\t\tcolgroup: 'endTagColgroup',\n\t\tcol: 'endTagCol',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.inColumnGroup.ignoreEndTagColgroup = function() {\n\t\treturn tree.currentStackItem().localName == 'html';\n\t};\n\n\tmodes.inColumnGroup.processCharacters = function(buffer) {\n\t\tvar leadingWhitespace = buffer.takeLeadingWhitespace();\n\t\tif (leadingWhitespace)\n\t\t\ttree.insertText(leadingWhitespace);\n\t\tif (!buffer.length)\n\t\t\treturn;\n\t\tvar ignoreEndTag = this.ignoreEndTagColgroup();\n\t\tthis.endTagColgroup('colgroup');\n\t\tif (!ignoreEndTag) tree.insertionMode.processCharacters(buffer);\n\t};\n\n\tmodes.inColumnGroup.startTagCol = function(name, attributes) {\n\t\ttree.insertSelfClosingElement(name, attributes);\n\t};\n\n\tmodes.inColumnGroup.startTagOther = function(name, attributes, selfClosing) {\n\t\tvar ignoreEndTag = this.ignoreEndTagColgroup();\n\t\tthis.endTagColgroup('colgroup');\n\t\tif (!ignoreEndTag) tree.insertionMode.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.inColumnGroup.endTagColgroup = function(name) {\n\t\tif (this.ignoreEndTagColgroup()) {\n\t\t\tassert.ok(tree.context);\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t} else {\n\t\t\ttree.popElement();\n\t\t\ttree.setInsertionMode('inTable');\n\t\t}\n\t};\n\n\tmodes.inColumnGroup.endTagCol = function(name) {\n\t\ttree.parseError(\"no-end-tag\", {name: 'col'});\n\t};\n\n\tmodes.inColumnGroup.endTagOther = function(name) {\n\t\tvar ignoreEndTag = this.ignoreEndTagColgroup();\n\t\tthis.endTagColgroup('colgroup');\n\t\tif (!ignoreEndTag) tree.insertionMode.processEndTag(name) ;\n\t};\n\n\tmodes.inForeignContent = Object.create(modes.base);\n\n\tmodes.inForeignContent.processStartTag = function(name, attributes, selfClosing) {\n\t\tif (['b', 'big', 'blockquote', 'body', 'br', 'center', 'code', 'dd', 'div', 'dl', 'dt', 'em', 'embed', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'hr', 'i', 'img', 'li', 'listing', 'menu', 'meta', 'nobr', 'ol', 'p', 'pre', 'ruby', 's', 'small', 'span', 'strong', 'strike', 'sub', 'sup', 'table', 'tt', 'u', 'ul', 'var'].indexOf(name) != -1\n\t\t\t\t|| (name == 'font' && attributes.some(function(attr){ return ['color', 'face', 'size'].indexOf(attr.nodeName) >= 0 }))) {\n\t\t\ttree.parseError('unexpected-html-element-in-foreign-content', {name: name});\n\t\t\twhile (tree.currentStackItem().isForeign()\n\t\t\t\t&& !tree.currentStackItem().isHtmlIntegrationPoint()\n\t\t\t\t&& !tree.currentStackItem().isMathMLTextIntegrationPoint()) {\n\t\t\t\ttree.openElements.pop();\n\t\t\t}\n\t\t\ttree.insertionMode.processStartTag(name, attributes, selfClosing);\n\t\t\treturn;\n\t\t}\n\t\tif (tree.currentStackItem().namespaceURI == \"http://www.w3.org/1998/Math/MathML\") {\n\t\t\tattributes = tree.adjustMathMLAttributes(attributes);\n\t\t}\n\t\tif (tree.currentStackItem().namespaceURI == \"http://www.w3.org/2000/svg\") {\n\t\t\tname = tree.adjustSVGTagNameCase(name);\n\t\t\tattributes = tree.adjustSVGAttributes(attributes);\n\t\t}\n\t\tattributes = tree.adjustForeignAttributes(attributes);\n\t\ttree.insertForeignElement(name, attributes, tree.currentStackItem().namespaceURI, selfClosing);\n\t};\n\n\tmodes.inForeignContent.processEndTag = function(name) {\n\t\tvar node = tree.currentStackItem();\n\t\tvar index = tree.openElements.length - 1;\n\t\tif (node.localName.toLowerCase() != name)\n\t\t\ttree.parseError(\"unexpected-end-tag\", {name: name});\n\n\t\twhile (true) {\n\t\t\tif (index === 0)\n\t\t\t\tbreak;\n\t\t\tif (node.localName.toLowerCase() == name) {\n\t\t\t\twhile (tree.openElements.pop() != node);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tindex -= 1;\n\t\t\tnode = tree.openElements.item(index);\n\t\t\tif (node.isForeign()) {\n\t\t\t\tcontinue;\n\t\t\t} else {\n\t\t\t\ttree.insertionMode.processEndTag(name);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t};\n\n\tmodes.inForeignContent.processCharacters = function(buffer) {\n\t\tvar characters = buffer.takeRemaining();\n\t\tcharacters = characters.replace(/\\u0000/g, function(match, index){\n\t\t\ttree.parseError('invalid-codepoint');\n\t\t\treturn '\\uFFFD';\n\t\t});\n\t\tif (tree.framesetOk && !isAllWhitespaceOrReplacementCharacters(characters))\n\t\t\ttree.framesetOk = false;\n\t\ttree.insertText(characters);\n\t};\n\n\tmodes.inHeadNoscript = Object.create(modes.base);\n\n\tmodes.inHeadNoscript.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\tbasefont: 'startTagBasefontBgsoundLinkMetaNoframesStyle',\n\t\tbgsound: 'startTagBasefontBgsoundLinkMetaNoframesStyle',\n\t\tlink: 'startTagBasefontBgsoundLinkMetaNoframesStyle',\n\t\tmeta: 'startTagBasefontBgsoundLinkMetaNoframesStyle',\n\t\tnoframes: 'startTagBasefontBgsoundLinkMetaNoframesStyle',\n\t\tstyle: 'startTagBasefontBgsoundLinkMetaNoframesStyle',\n\t\thead: 'startTagHeadNoscript',\n\t\tnoscript: 'startTagHeadNoscript',\n\t\t\"-default\": 'startTagOther'\n\t};\n\n\tmodes.inHeadNoscript.end_tag_handlers = {\n\t\tnoscript: 'endTagNoscript',\n\t\tbr: 'endTagBr',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.inHeadNoscript.processCharacters = function(buffer) {\n\t\tvar leadingWhitespace = buffer.takeLeadingWhitespace();\n\t\tif (leadingWhitespace)\n\t\t\ttree.insertText(leadingWhitespace);\n\t\tif (!buffer.length)\n\t\t\treturn;\n\t\ttree.parseError(\"unexpected-char-in-frameset\");\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processCharacters(buffer);\n\t};\n\n\tmodes.inHeadNoscript.processComment = function(data) {\n\t\tmodes.inHead.processComment(data);\n\t};\n\n\tmodes.inHeadNoscript.startTagBasefontBgsoundLinkMetaNoframesStyle = function(name, attributes) {\n\t\tmodes.inHead.processStartTag(name, attributes);\n\t};\n\n\tmodes.inHeadNoscript.startTagHeadNoscript = function(name, attributes) {\n\t\ttree.parseError(\"unexpected-start-tag-in-frameset\", {name: name});\n\t};\n\n\tmodes.inHeadNoscript.startTagOther = function(name, attributes) {\n\t\ttree.parseError(\"unexpected-start-tag-in-frameset\", {name: name});\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processStartTag(name, attributes);\n\t};\n\n\tmodes.inHeadNoscript.endTagBr = function(name, attributes) {\n\t\ttree.parseError(\"unexpected-end-tag-in-frameset\", {name: name});\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processEndTag(name, attributes);\n\t};\n\n\tmodes.inHeadNoscript.endTagNoscript = function(name, attributes) {\n\t\ttree.popElement();\n\t\ttree.setInsertionMode('inHead');\n\t};\n\n\tmodes.inHeadNoscript.endTagOther = function(name, attributes) {\n\t\ttree.parseError(\"unexpected-end-tag-in-frameset\", {name: name});\n\t};\n\n\tmodes.inHeadNoscript.anythingElse = function() {\n\t\ttree.popElement();\n\t\ttree.setInsertionMode('inHead');\n\t};\n\n\n\tmodes.inFrameset = Object.create(modes.base);\n\n\tmodes.inFrameset.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\tframeset: 'startTagFrameset',\n\t\tframe: 'startTagFrame',\n\t\tnoframes: 'startTagNoframes',\n\t\t\"-default\": 'startTagOther'\n\t};\n\n\tmodes.inFrameset.end_tag_handlers = {\n\t\tframeset: 'endTagFrameset',\n\t\tnoframes: 'endTagNoframes',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.inFrameset.processCharacters = function(data) {\n\t\ttree.parseError(\"unexpected-char-in-frameset\");\n\t};\n\n\tmodes.inFrameset.startTagFrameset = function(name, attributes) {\n\t\ttree.insertElement(name, attributes);\n\t};\n\n\tmodes.inFrameset.startTagFrame = function(name, attributes) {\n\t\ttree.insertSelfClosingElement(name, attributes);\n\t};\n\n\tmodes.inFrameset.startTagNoframes = function(name, attributes) {\n\t\tmodes.inBody.processStartTag(name, attributes);\n\t};\n\n\tmodes.inFrameset.startTagOther = function(name, attributes) {\n\t\ttree.parseError(\"unexpected-start-tag-in-frameset\", {name: name});\n\t};\n\n\tmodes.inFrameset.endTagFrameset = function(name, attributes) {\n\t\tif (tree.currentStackItem().localName == 'html') {\n\t\t\ttree.parseError(\"unexpected-frameset-in-frameset-innerhtml\");\n\t\t} else {\n\t\t\ttree.popElement();\n\t\t}\n\n\t\tif (!tree.context && tree.currentStackItem().localName != 'frameset') {\n\t\t\ttree.setInsertionMode('afterFrameset');\n\t\t}\n\t};\n\n\tmodes.inFrameset.endTagNoframes = function(name) {\n\t\tmodes.inBody.processEndTag(name);\n\t};\n\n\tmodes.inFrameset.endTagOther = function(name) {\n\t\ttree.parseError(\"unexpected-end-tag-in-frameset\", {name: name});\n\t};\n\n\tmodes.inTable = Object.create(modes.base);\n\n\tmodes.inTable.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\tcaption: 'startTagCaption',\n\t\tcolgroup: 'startTagColgroup',\n\t\tcol: 'startTagCol',\n\t\ttable: 'startTagTable',\n\t\ttbody: 'startTagRowGroup',\n\t\ttfoot: 'startTagRowGroup',\n\t\tthead: 'startTagRowGroup',\n\t\ttd: 'startTagImplyTbody',\n\t\tth: 'startTagImplyTbody',\n\t\ttr: 'startTagImplyTbody',\n\t\tstyle: 'startTagStyleScript',\n\t\tscript: 'startTagStyleScript',\n\t\tinput: 'startTagInput',\n\t\tform: 'startTagForm',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.inTable.end_tag_handlers = {\n\t\ttable: 'endTagTable',\n\t\tbody: 'endTagIgnore',\n\t\tcaption: 'endTagIgnore',\n\t\tcol: 'endTagIgnore',\n\t\tcolgroup: 'endTagIgnore',\n\t\thtml: 'endTagIgnore',\n\t\ttbody: 'endTagIgnore',\n\t\ttd: 'endTagIgnore',\n\t\ttfoot: 'endTagIgnore',\n\t\tth: 'endTagIgnore',\n\t\tthead: 'endTagIgnore',\n\t\ttr: 'endTagIgnore',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.inTable.processCharacters =  function(data) {\n\t\tif (tree.currentStackItem().isFosterParenting()) {\n\t\t\tvar originalInsertionMode = tree.insertionModeName;\n\t\t\ttree.setInsertionMode('inTableText');\n\t\t\ttree.originalInsertionMode = originalInsertionMode;\n\t\t\ttree.insertionMode.processCharacters(data);\n\t\t} else {\n\t\t\ttree.redirectAttachToFosterParent = true;\n\t\t\tmodes.inBody.processCharacters(data);\n\t\t\ttree.redirectAttachToFosterParent = false;\n\t\t}\n\t};\n\n\tmodes.inTable.startTagCaption = function(name, attributes) {\n\t\ttree.openElements.popUntilTableScopeMarker();\n\t\ttree.activeFormattingElements.push(Marker);\n\t\ttree.insertElement(name, attributes);\n\t\ttree.setInsertionMode('inCaption');\n\t};\n\n\tmodes.inTable.startTagColgroup = function(name, attributes) {\n\t\ttree.openElements.popUntilTableScopeMarker();\n\t\ttree.insertElement(name, attributes);\n\t\ttree.setInsertionMode('inColumnGroup');\n\t};\n\n\tmodes.inTable.startTagCol = function(name, attributes) {\n\t\tthis.startTagColgroup('colgroup', []);\n\t\ttree.insertionMode.processStartTag(name, attributes);\n\t};\n\n\tmodes.inTable.startTagRowGroup = function(name, attributes) {\n\t\ttree.openElements.popUntilTableScopeMarker();\n\t\ttree.insertElement(name, attributes);\n\t\ttree.setInsertionMode('inTableBody');\n\t};\n\n\tmodes.inTable.startTagImplyTbody = function(name, attributes) {\n\t\tthis.startTagRowGroup('tbody', []);\n\t\ttree.insertionMode.processStartTag(name, attributes);\n\t};\n\n\tmodes.inTable.startTagTable = function(name, attributes) {\n\t\ttree.parseError(\"unexpected-start-tag-implies-end-tag\",\n\t\t\t\t{startName: \"table\", endName: \"table\"});\n\t\ttree.insertionMode.processEndTag('table');\n\t\tif (!tree.context) tree.insertionMode.processStartTag(name, attributes);\n\t};\n\n\tmodes.inTable.startTagStyleScript = function(name, attributes) {\n\t\tmodes.inHead.processStartTag(name, attributes);\n\t};\n\n\tmodes.inTable.startTagInput = function(name, attributes) {\n\t\tfor (var key in attributes) {\n\t\t\tif (attributes[key].nodeName.toLowerCase() == 'type') {\n\t\t\t\tif (attributes[key].nodeValue.toLowerCase() == 'hidden') {\n\t\t\t\t\ttree.parseError(\"unexpected-hidden-input-in-table\");\n\t\t\t\t\ttree.insertElement(name, attributes);\n\t\t\t\t\ttree.openElements.pop();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tthis.startTagOther(name, attributes);\n\t};\n\n\tmodes.inTable.startTagForm = function(name, attributes) {\n\t\ttree.parseError(\"unexpected-form-in-table\");\n\t\tif (!tree.form) {\n\t\t\ttree.insertElement(name, attributes);\n\t\t\ttree.form = tree.currentStackItem();\n\t\t\ttree.openElements.pop();\n\t\t}\n\t};\n\n\tmodes.inTable.startTagOther = function(name, attributes, selfClosing) {\n\t\ttree.parseError(\"unexpected-start-tag-implies-table-voodoo\", {name: name});\n\t\ttree.redirectAttachToFosterParent = true;\n\t\tmodes.inBody.processStartTag(name, attributes, selfClosing);\n\t\ttree.redirectAttachToFosterParent = false;\n\t};\n\n\tmodes.inTable.endTagTable = function(name) {\n\t\tif (tree.openElements.inTableScope(name)) {\n\t\t\ttree.generateImpliedEndTags();\n\t\t\tif (tree.currentStackItem().localName != name) {\n\t\t\t\ttree.parseError(\"end-tag-too-early-named\", {gotName: 'table', expectedName: tree.currentStackItem().localName});\n\t\t\t}\n\n\t\t\ttree.openElements.popUntilPopped('table');\n\t\t\ttree.resetInsertionMode();\n\t\t} else {\n\t\t\tassert.ok(tree.context);\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t}\n\t};\n\n\tmodes.inTable.endTagIgnore = function(name) {\n\t\ttree.parseError(\"unexpected-end-tag\", {name: name});\n\t};\n\n\tmodes.inTable.endTagOther = function(name) {\n\t\ttree.parseError(\"unexpected-end-tag-implies-table-voodoo\", {name: name});\n\t\ttree.redirectAttachToFosterParent = true;\n\t\tmodes.inBody.processEndTag(name);\n\t\ttree.redirectAttachToFosterParent = false;\n\t};\n\n\tmodes.inTableText = Object.create(modes.base);\n\n\tmodes.inTableText.flushCharacters = function() {\n\t\tvar characters = tree.pendingTableCharacters.join('');\n\t\tif (!isAllWhitespace(characters)) {\n\t\t\ttree.redirectAttachToFosterParent = true;\n\t\t\ttree.reconstructActiveFormattingElements();\n\t\t\ttree.insertText(characters);\n\t\t\ttree.framesetOk = false;\n\t\t\ttree.redirectAttachToFosterParent = false;\n\t\t} else {\n\t\t\ttree.insertText(characters);\n\t\t}\n\t\ttree.pendingTableCharacters = [];\n\t};\n\n\tmodes.inTableText.processComment = function(data) {\n\t\tthis.flushCharacters();\n\t\ttree.setInsertionMode(tree.originalInsertionMode);\n\t\ttree.insertionMode.processComment(data);\n\t};\n\n\tmodes.inTableText.processEOF = function(data) {\n\t\tthis.flushCharacters();\n\t\ttree.setInsertionMode(tree.originalInsertionMode);\n\t\ttree.insertionMode.processEOF();\n\t};\n\n\tmodes.inTableText.processCharacters = function(buffer) {\n\t\tvar characters = buffer.takeRemaining();\n\t\tcharacters = characters.replace(/\\u0000/g, function(match, index){\n\t\t\ttree.parseError(\"invalid-codepoint\");\n\t\t\treturn '';\n\t\t});\n\t\tif (!characters)\n\t\t\treturn;\n\t\ttree.pendingTableCharacters.push(characters);\n\t};\n\n\tmodes.inTableText.processStartTag = function(name, attributes, selfClosing) {\n\t\tthis.flushCharacters();\n\t\ttree.setInsertionMode(tree.originalInsertionMode);\n\t\ttree.insertionMode.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.inTableText.processEndTag = function(name, attributes) {\n\t\tthis.flushCharacters();\n\t\ttree.setInsertionMode(tree.originalInsertionMode);\n\t\ttree.insertionMode.processEndTag(name, attributes);\n\t};\n\n\tmodes.inTableBody = Object.create(modes.base);\n\n\tmodes.inTableBody.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\ttr: 'startTagTr',\n\t\ttd: 'startTagTableCell',\n\t\tth: 'startTagTableCell',\n\t\tcaption: 'startTagTableOther',\n\t\tcol: 'startTagTableOther',\n\t\tcolgroup: 'startTagTableOther',\n\t\ttbody: 'startTagTableOther',\n\t\ttfoot: 'startTagTableOther',\n\t\tthead: 'startTagTableOther',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.inTableBody.end_tag_handlers = {\n\t\ttable: 'endTagTable',\n\t\ttbody: 'endTagTableRowGroup',\n\t\ttfoot: 'endTagTableRowGroup',\n\t\tthead: 'endTagTableRowGroup',\n\t\tbody: 'endTagIgnore',\n\t\tcaption: 'endTagIgnore',\n\t\tcol: 'endTagIgnore',\n\t\tcolgroup: 'endTagIgnore',\n\t\thtml: 'endTagIgnore',\n\t\ttd: 'endTagIgnore',\n\t\tth: 'endTagIgnore',\n\t\ttr: 'endTagIgnore',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.inTableBody.processCharacters = function(data) {\n\t\tmodes.inTable.processCharacters(data);\n\t};\n\n\tmodes.inTableBody.startTagTr = function(name, attributes) {\n\t\ttree.openElements.popUntilTableBodyScopeMarker();\n\t\ttree.insertElement(name, attributes);\n\t\ttree.setInsertionMode('inRow');\n\t};\n\n\tmodes.inTableBody.startTagTableCell = function(name, attributes) {\n\t\ttree.parseError(\"unexpected-cell-in-table-body\", {name: name});\n\t\tthis.startTagTr('tr', []);\n\t\ttree.insertionMode.processStartTag(name, attributes);\n\t};\n\n\tmodes.inTableBody.startTagTableOther = function(name, attributes) {\n\t\tif (tree.openElements.inTableScope('tbody') ||  tree.openElements.inTableScope('thead') || tree.openElements.inTableScope('tfoot')) {\n\t\t\ttree.openElements.popUntilTableBodyScopeMarker();\n\t\t\tthis.endTagTableRowGroup(tree.currentStackItem().localName);\n\t\t\ttree.insertionMode.processStartTag(name, attributes);\n\t\t} else {\n\t\t\ttree.parseError('unexpected-start-tag', {name: name});\n\t\t}\n\t};\n\n\tmodes.inTableBody.startTagOther = function(name, attributes) {\n\t\tmodes.inTable.processStartTag(name, attributes);\n\t};\n\n\tmodes.inTableBody.endTagTableRowGroup = function(name) {\n\t\tif (tree.openElements.inTableScope(name)) {\n\t\t\ttree.openElements.popUntilTableBodyScopeMarker();\n\t\t\ttree.popElement();\n\t\t\ttree.setInsertionMode('inTable');\n\t\t} else {\n\t\t\ttree.parseError('unexpected-end-tag-in-table-body', {name: name});\n\t\t}\n\t};\n\n\tmodes.inTableBody.endTagTable = function(name) {\n\t\tif (tree.openElements.inTableScope('tbody') ||  tree.openElements.inTableScope('thead') || tree.openElements.inTableScope('tfoot')) {\n\t\t\ttree.openElements.popUntilTableBodyScopeMarker();\n\t\t\tthis.endTagTableRowGroup(tree.currentStackItem().localName);\n\t\t\ttree.insertionMode.processEndTag(name);\n\t\t} else {\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t}\n\t};\n\n\tmodes.inTableBody.endTagIgnore = function(name) {\n\t\ttree.parseError(\"unexpected-end-tag-in-table-body\", {name: name});\n\t};\n\n\tmodes.inTableBody.endTagOther = function(name) {\n\t\tmodes.inTable.processEndTag(name);\n\t};\n\n\tmodes.inSelect = Object.create(modes.base);\n\n\tmodes.inSelect.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\toption: 'startTagOption',\n\t\toptgroup: 'startTagOptgroup',\n\t\tselect: 'startTagSelect',\n\t\tinput: 'startTagInput',\n\t\tkeygen: 'startTagInput',\n\t\ttextarea: 'startTagInput',\n\t\tscript: 'startTagScript',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.inSelect.end_tag_handlers = {\n\t\toption: 'endTagOption',\n\t\toptgroup: 'endTagOptgroup',\n\t\tselect: 'endTagSelect',\n\t\tcaption: 'endTagTableElements',\n\t\ttable: 'endTagTableElements',\n\t\ttbody: 'endTagTableElements',\n\t\ttfoot: 'endTagTableElements',\n\t\tthead: 'endTagTableElements',\n\t\ttr: 'endTagTableElements',\n\t\ttd: 'endTagTableElements',\n\t\tth: 'endTagTableElements',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.inSelect.processCharacters = function(buffer) {\n\t\tvar data = buffer.takeRemaining();\n\t\tdata = data.replace(/\\u0000/g, function(match, index){\n\t\t\ttree.parseError(\"invalid-codepoint\");\n\t\t\treturn '';\n\t\t});\n\t\tif (!data)\n\t\t\treturn;\n\t\ttree.insertText(data);\n\t};\n\n\tmodes.inSelect.startTagOption = function(name, attributes) {\n\t\tif (tree.currentStackItem().localName == 'option')\n\t\t\ttree.popElement();\n\t\ttree.insertElement(name, attributes);\n\t};\n\n\tmodes.inSelect.startTagOptgroup = function(name, attributes) {\n\t\tif (tree.currentStackItem().localName == 'option')\n\t\t\ttree.popElement();\n\t\tif (tree.currentStackItem().localName == 'optgroup')\n\t\t\ttree.popElement();\n\t\ttree.insertElement(name, attributes);\n\t};\n\n\tmodes.inSelect.endTagOption = function(name) {\n\t\tif (tree.currentStackItem().localName !== 'option') {\n\t\t\ttree.parseError('unexpected-end-tag-in-select', {name: name});\n\t\t\treturn;\n\t\t}\n\t\ttree.popElement();\n\t};\n\n\tmodes.inSelect.endTagOptgroup = function(name) {\n\t\tif (tree.currentStackItem().localName == 'option' && tree.openElements.item(tree.openElements.length - 2).localName == 'optgroup') {\n\t\t\ttree.popElement();\n\t\t}\n\t\tif (tree.currentStackItem().localName == 'optgroup') {\n\t\t\ttree.popElement();\n\t\t} else {\n\t\t\ttree.parseError('unexpected-end-tag-in-select', {name: 'optgroup'});\n\t\t}\n\t};\n\n\tmodes.inSelect.startTagSelect = function(name) {\n\t\ttree.parseError(\"unexpected-select-in-select\");\n\t\tthis.endTagSelect('select');\n\t};\n\n\tmodes.inSelect.endTagSelect = function(name) {\n\t\tif (tree.openElements.inTableScope('select')) {\n\t\t\ttree.openElements.popUntilPopped('select');\n\t\t\ttree.resetInsertionMode();\n\t\t} else {\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t}\n\t};\n\n\tmodes.inSelect.startTagInput = function(name, attributes) {\n\t\ttree.parseError(\"unexpected-input-in-select\");\n\t\tif (tree.openElements.inSelectScope('select')) {\n\t\t\tthis.endTagSelect('select');\n\t\t\ttree.insertionMode.processStartTag(name, attributes);\n\t\t}\n\t};\n\n\tmodes.inSelect.startTagScript = function(name, attributes) {\n\t\tmodes.inHead.processStartTag(name, attributes);\n\t};\n\n\tmodes.inSelect.endTagTableElements = function(name) {\n\t\ttree.parseError('unexpected-end-tag-in-select', {name: name});\n\t\tif (tree.openElements.inTableScope(name)) {\n\t\t\tthis.endTagSelect('select');\n\t\t\ttree.insertionMode.processEndTag(name);\n\t\t}\n\t};\n\n\tmodes.inSelect.startTagOther = function(name, attributes) {\n\t\ttree.parseError(\"unexpected-start-tag-in-select\", {name: name});\n\t};\n\n\tmodes.inSelect.endTagOther = function(name) {\n\t\ttree.parseError('unexpected-end-tag-in-select', {name: name});\n\t};\n\n\tmodes.inSelectInTable = Object.create(modes.base);\n\n\tmodes.inSelectInTable.start_tag_handlers = {\n\t\tcaption: 'startTagTable',\n\t\ttable: 'startTagTable',\n\t\ttbody: 'startTagTable',\n\t\ttfoot: 'startTagTable',\n\t\tthead: 'startTagTable',\n\t\ttr: 'startTagTable',\n\t\ttd: 'startTagTable',\n\t\tth: 'startTagTable',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.inSelectInTable.end_tag_handlers = {\n\t\tcaption: 'endTagTable',\n\t\ttable: 'endTagTable',\n\t\ttbody: 'endTagTable',\n\t\ttfoot: 'endTagTable',\n\t\tthead: 'endTagTable',\n\t\ttr: 'endTagTable',\n\t\ttd: 'endTagTable',\n\t\tth: 'endTagTable',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.inSelectInTable.processCharacters = function(data) {\n\t\tmodes.inSelect.processCharacters(data);\n\t};\n\n\tmodes.inSelectInTable.startTagTable = function(name, attributes) {\n\t\ttree.parseError(\"unexpected-table-element-start-tag-in-select-in-table\", {name: name});\n\t\tthis.endTagOther(\"select\");\n\t\ttree.insertionMode.processStartTag(name, attributes);\n\t};\n\n\tmodes.inSelectInTable.startTagOther = function(name, attributes, selfClosing) {\n\t\tmodes.inSelect.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.inSelectInTable.endTagTable = function(name) {\n\t\ttree.parseError(\"unexpected-table-element-end-tag-in-select-in-table\", {name: name});\n\t\tif (tree.openElements.inTableScope(name)) {\n\t\t\tthis.endTagOther(\"select\");\n\t\t\ttree.insertionMode.processEndTag(name);\n\t\t}\n\t};\n\n\tmodes.inSelectInTable.endTagOther = function(name) {\n\t\tmodes.inSelect.processEndTag(name);\n\t};\n\n\tmodes.inRow = Object.create(modes.base);\n\n\tmodes.inRow.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\ttd: 'startTagTableCell',\n\t\tth: 'startTagTableCell',\n\t\tcaption: 'startTagTableOther',\n\t\tcol: 'startTagTableOther',\n\t\tcolgroup: 'startTagTableOther',\n\t\ttbody: 'startTagTableOther',\n\t\ttfoot: 'startTagTableOther',\n\t\tthead: 'startTagTableOther',\n\t\ttr: 'startTagTableOther',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.inRow.end_tag_handlers = {\n\t\ttr: 'endTagTr',\n\t\ttable: 'endTagTable',\n\t\ttbody: 'endTagTableRowGroup',\n\t\ttfoot: 'endTagTableRowGroup',\n\t\tthead: 'endTagTableRowGroup',\n\t\tbody: 'endTagIgnore',\n\t\tcaption: 'endTagIgnore',\n\t\tcol: 'endTagIgnore',\n\t\tcolgroup: 'endTagIgnore',\n\t\thtml: 'endTagIgnore',\n\t\ttd: 'endTagIgnore',\n\t\tth: 'endTagIgnore',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.inRow.processCharacters = function(data) {\n\t\tmodes.inTable.processCharacters(data);\n\t};\n\n\tmodes.inRow.startTagTableCell = function(name, attributes) {\n\t\ttree.openElements.popUntilTableRowScopeMarker();\n\t\ttree.insertElement(name, attributes);\n\t\ttree.setInsertionMode('inCell');\n\t\ttree.activeFormattingElements.push(Marker);\n\t};\n\n\tmodes.inRow.startTagTableOther = function(name, attributes) {\n\t\tvar ignoreEndTag = this.ignoreEndTagTr();\n\t\tthis.endTagTr('tr');\n\t\tif (!ignoreEndTag) tree.insertionMode.processStartTag(name, attributes);\n\t};\n\n\tmodes.inRow.startTagOther = function(name, attributes, selfClosing) {\n\t\tmodes.inTable.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.inRow.endTagTr = function(name) {\n\t\tif (this.ignoreEndTagTr()) {\n\t\t\tassert.ok(tree.context);\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t} else {\n\t\t\ttree.openElements.popUntilTableRowScopeMarker();\n\t\t\ttree.popElement();\n\t\t\ttree.setInsertionMode('inTableBody');\n\t\t}\n\t};\n\n\tmodes.inRow.endTagTable = function(name) {\n\t\tvar ignoreEndTag = this.ignoreEndTagTr();\n\t\tthis.endTagTr('tr');\n\t\tif (!ignoreEndTag) tree.insertionMode.processEndTag(name);\n\t};\n\n\tmodes.inRow.endTagTableRowGroup = function(name) {\n\t\tif (tree.openElements.inTableScope(name)) {\n\t\t\tthis.endTagTr('tr');\n\t\t\ttree.insertionMode.processEndTag(name);\n\t\t} else {\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t}\n\t};\n\n\tmodes.inRow.endTagIgnore = function(name) {\n\t\ttree.parseError(\"unexpected-end-tag-in-table-row\", {name: name});\n\t};\n\n\tmodes.inRow.endTagOther = function(name) {\n\t\tmodes.inTable.processEndTag(name);\n\t};\n\n\tmodes.inRow.ignoreEndTagTr = function() {\n\t\treturn !tree.openElements.inTableScope('tr');\n\t};\n\n\tmodes.afterAfterFrameset = Object.create(modes.base);\n\n\tmodes.afterAfterFrameset.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\tnoframes: 'startTagNoFrames',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.afterAfterFrameset.processEOF = function() {};\n\n\tmodes.afterAfterFrameset.processComment = function(data) {\n\t\ttree.insertComment(data, tree.document);\n\t};\n\n\tmodes.afterAfterFrameset.processCharacters = function(buffer) {\n\t\tvar characters = buffer.takeRemaining();\n\t\tvar whitespace = \"\";\n\t\tfor (var i = 0; i < characters.length; i++) {\n\t\t\tvar ch = characters[i];\n\t\t\tif (isWhitespace(ch))\n\t\t\t\twhitespace += ch;\n\t\t}\n\t\tif (whitespace) {\n\t\t\ttree.reconstructActiveFormattingElements();\n\t\t\ttree.insertText(whitespace);\n\t\t}\n\t\tif (whitespace.length < characters.length)\n\t\t\ttree.parseError('expected-eof-but-got-char');\n\t};\n\n\tmodes.afterAfterFrameset.startTagNoFrames = function(name, attributes) {\n\t\tmodes.inHead.processStartTag(name, attributes);\n\t};\n\n\tmodes.afterAfterFrameset.startTagOther = function(name, attributes, selfClosing) {\n\t\ttree.parseError('expected-eof-but-got-start-tag', {name: name});\n\t};\n\n\tmodes.afterAfterFrameset.processEndTag = function(name, attributes) {\n\t\ttree.parseError('expected-eof-but-got-end-tag', {name: name});\n\t};\n\n\tmodes.text = Object.create(modes.base);\n\n\tmodes.text.start_tag_handlers = {\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.text.end_tag_handlers = {\n\t\tscript: 'endTagScript',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.text.processCharacters = function(buffer) {\n\t\tif (tree.shouldSkipLeadingNewline) {\n\t\t\ttree.shouldSkipLeadingNewline = false;\n\t\t\tbuffer.skipAtMostOneLeadingNewline();\n\t\t}\n\t\tvar data = buffer.takeRemaining();\n\t\tif (!data)\n\t\t\treturn;\n\t\ttree.insertText(data);\n\t};\n\n\tmodes.text.processEOF = function() {\n\t\ttree.parseError(\"expected-named-closing-tag-but-got-eof\",\n\t\t\t{name: tree.currentStackItem().localName});\n\t\ttree.openElements.pop();\n\t\ttree.setInsertionMode(tree.originalInsertionMode);\n\t\ttree.insertionMode.processEOF();\n\t};\n\n\tmodes.text.startTagOther = function(name) {\n\t\tthrow \"Tried to process start tag \" + name + \" in RCDATA/RAWTEXT mode\";\n\t};\n\n\tmodes.text.endTagScript = function(name) {\n\t\tvar node = tree.openElements.pop();\n\t\tassert.ok(node.localName == 'script');\n\t\ttree.setInsertionMode(tree.originalInsertionMode);\n\t};\n\n\tmodes.text.endTagOther = function(name) {\n\t\ttree.openElements.pop();\n\t\ttree.setInsertionMode(tree.originalInsertionMode);\n\t};\n}\n\nTreeBuilder.prototype.setInsertionMode = function(name) {\n\tthis.insertionMode = this.insertionModes[name];\n\tthis.insertionModeName = name;\n};\nTreeBuilder.prototype.adoptionAgencyEndTag = function(name) {\n\tvar outerIterationLimit = 8;\n\tvar innerIterationLimit = 3;\n\tvar formattingElement;\n\n\tfunction isActiveFormattingElement(el) {\n\t\treturn el === formattingElement;\n\t}\n\n\tvar outerLoopCounter = 0;\n\n\twhile (outerLoopCounter++ < outerIterationLimit) {\n\t\tformattingElement = this.elementInActiveFormattingElements(name);\n\n\t\tif (!formattingElement || (this.openElements.contains(formattingElement) && !this.openElements.inScope(formattingElement.localName))) {\n\t\t\tthis.parseError('adoption-agency-1.1', {name: name});\n\t\t\treturn false;\n\t\t}\n\t\tif (!this.openElements.contains(formattingElement)) {\n\t\t\tthis.parseError('adoption-agency-1.2', {name: name});\n\t\t\tthis.removeElementFromActiveFormattingElements(formattingElement);\n\t\t\treturn true;\n\t\t}\n\t\tif (!this.openElements.inScope(formattingElement.localName)) {\n\t\t\tthis.parseError('adoption-agency-4.4', {name: name});\n\t\t}\n\n\t\tif (formattingElement != this.currentStackItem()) {\n\t\t\tthis.parseError('adoption-agency-1.3', {name: name});\n\t\t}\n\t\tvar furthestBlock = this.openElements.furthestBlockForFormattingElement(formattingElement.node);\n\n\t\tif (!furthestBlock) {\n\t\t\tthis.openElements.remove_openElements_until(isActiveFormattingElement);\n\t\t\tthis.removeElementFromActiveFormattingElements(formattingElement);\n\t\t\treturn true;\n\t\t}\n\n\t\tvar afeIndex = this.openElements.elements.indexOf(formattingElement);\n\t\tvar commonAncestor = this.openElements.item(afeIndex - 1);\n\n\t\tvar bookmark = this.activeFormattingElements.indexOf(formattingElement);\n\n\t\tvar node = furthestBlock;\n\t\tvar lastNode = furthestBlock;\n\t\tvar index = this.openElements.elements.indexOf(node);\n\n\t\tvar innerLoopCounter = 0;\n\t\twhile (innerLoopCounter++ < innerIterationLimit) {\n\t\t\tindex -= 1;\n\t\t\tnode = this.openElements.item(index);\n\t\t\tif (this.activeFormattingElements.indexOf(node) < 0) {\n\t\t\t\tthis.openElements.elements.splice(index, 1);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (node == formattingElement)\n\t\t\t\tbreak;\n\n\t\t\tif (lastNode == furthestBlock)\n\t\t\t\tbookmark = this.activeFormattingElements.indexOf(node) + 1;\n\n\t\t\tvar clone = this.createElement(node.namespaceURI, node.localName, node.attributes);\n\t\t\tvar newNode = new StackItem(node.namespaceURI, node.localName, node.attributes, clone);\n\n\t\t\tthis.activeFormattingElements[this.activeFormattingElements.indexOf(node)] = newNode;\n\t\t\tthis.openElements.elements[this.openElements.elements.indexOf(node)] = newNode;\n\n\t\t\tnode = newNode;\n\t\t\tthis.detachFromParent(lastNode.node);\n\t\t\tthis.attachNode(lastNode.node, node.node);\n\t\t\tlastNode = node;\n\t\t}\n\n\t\tthis.detachFromParent(lastNode.node);\n\t\tif (commonAncestor.isFosterParenting()) {\n\t\t\tthis.insertIntoFosterParent(lastNode.node);\n\t\t} else {\n\t\t\tthis.attachNode(lastNode.node, commonAncestor.node);\n\t\t}\n\n\t\tvar clone = this.createElement(\"http://www.w3.org/1999/xhtml\", formattingElement.localName, formattingElement.attributes);\n\t\tvar formattingClone = new StackItem(formattingElement.namespaceURI, formattingElement.localName, formattingElement.attributes, clone);\n\n\t\tthis.reparentChildren(furthestBlock.node, clone);\n\t\tthis.attachNode(clone, furthestBlock.node);\n\n\t\tthis.removeElementFromActiveFormattingElements(formattingElement);\n\t\tthis.activeFormattingElements.splice(Math.min(bookmark, this.activeFormattingElements.length), 0, formattingClone);\n\n\t\tthis.openElements.remove(formattingElement);\n\t\tthis.openElements.elements.splice(this.openElements.elements.indexOf(furthestBlock) + 1, 0, formattingClone);\n\t}\n\n\treturn true;\n};\n\nTreeBuilder.prototype.start = function() {\n\tthrow \"Not mplemented\";\n};\n\nTreeBuilder.prototype.startTokenization = function(tokenizer) {\n\tthis.tokenizer = tokenizer;\n\tthis.compatMode = \"no quirks\";\n\tthis.originalInsertionMode = \"initial\";\n\tthis.framesetOk = true;\n\tthis.openElements = new ElementStack();\n\tthis.activeFormattingElements = [];\n\tthis.start();\n\tif (this.context) {\n\t\tswitch(this.context) {\n\t\tcase 'title':\n\t\tcase 'textarea':\n\t\t\tthis.tokenizer.setState(Tokenizer.RCDATA);\n\t\t\tbreak;\n\t\tcase 'style':\n\t\tcase 'xmp':\n\t\tcase 'iframe':\n\t\tcase 'noembed':\n\t\tcase 'noframes':\n\t\t\tthis.tokenizer.setState(Tokenizer.RAWTEXT);\n\t\t\tbreak;\n\t\tcase 'script':\n\t\t\tthis.tokenizer.setState(Tokenizer.SCRIPT_DATA);\n\t\t\tbreak;\n\t\tcase 'noscript':\n\t\t\tif (this.scriptingEnabled)\n\t\t\t\tthis.tokenizer.setState(Tokenizer.RAWTEXT);\n\t\t\tbreak;\n\t\tcase 'plaintext':\n\t\t\tthis.tokenizer.setState(Tokenizer.PLAINTEXT);\n\t\t\tbreak;\n\t\t}\n\t\tthis.insertHtmlElement();\n\t\tthis.resetInsertionMode();\n\t} else {\n\t\tthis.setInsertionMode('initial');\n\t}\n};\n\nTreeBuilder.prototype.processToken = function(token) {\n\tthis.selfClosingFlagAcknowledged = false;\n\n\tvar currentNode = this.openElements.top || null;\n\tvar insertionMode;\n\tif (!currentNode || !currentNode.isForeign() ||\n\t\t(currentNode.isMathMLTextIntegrationPoint() &&\n\t\t\t((token.type == 'StartTag' &&\n\t\t\t\t\t!(token.name in {mglyph:0, malignmark:0})) ||\n\t\t\t\t(token.type === 'Characters'))\n\t\t) ||\n\t\t(currentNode.namespaceURI == \"http://www.w3.org/1998/Math/MathML\" &&\n\t\t\tcurrentNode.localName == 'annotation-xml' &&\n\t\t\ttoken.type == 'StartTag' && token.name == 'svg'\n\t\t) ||\n\t\t(currentNode.isHtmlIntegrationPoint() &&\n\t\t\ttoken.type in {StartTag:0, Characters:0}\n\t\t) ||\n\t\ttoken.type == 'EOF'\n\t) {\n\t\tinsertionMode = this.insertionMode;\n\t} else {\n\t\tinsertionMode = this.insertionModes.inForeignContent;\n\t}\n\tswitch(token.type) {\n\tcase 'Characters':\n\t\tvar buffer = new CharacterBuffer(token.data);\n\t\tinsertionMode.processCharacters(buffer);\n\t\tbreak;\n\tcase 'Comment':\n\t\tinsertionMode.processComment(token.data);\n\t\tbreak;\n\tcase 'StartTag':\n\t\tinsertionMode.processStartTag(token.name, token.data, token.selfClosing);\n\t\tbreak;\n\tcase 'EndTag':\n\t\tinsertionMode.processEndTag(token.name);\n\t\tbreak;\n\tcase 'Doctype':\n\t\tinsertionMode.processDoctype(token.name, token.publicId, token.systemId, token.forceQuirks);\n\t\tbreak;\n\tcase 'EOF':\n\t\tinsertionMode.processEOF();\n\t\tbreak;\n\t}\n};\nTreeBuilder.prototype.isCdataSectionAllowed = function() {\n\treturn this.openElements.length > 0 && this.currentStackItem().isForeign();\n};\nTreeBuilder.prototype.isSelfClosingFlagAcknowledged = function() {\n\treturn this.selfClosingFlagAcknowledged;\n};\n\nTreeBuilder.prototype.createElement = function(namespaceURI, localName, attributes) {\n\tthrow new Error(\"Not implemented\");\n};\n\nTreeBuilder.prototype.attachNode = function(child, parent) {\n\tthrow new Error(\"Not implemented\");\n};\n\nTreeBuilder.prototype.attachNodeToFosterParent = function(child, table, stackParent) {\n\tthrow new Error(\"Not implemented\");\n};\n\nTreeBuilder.prototype.detachFromParent = function(node) {\n\tthrow new Error(\"Not implemented\");\n};\n\nTreeBuilder.prototype.addAttributesToElement = function(element, attributes) {\n\tthrow new Error(\"Not implemented\");\n};\n\nTreeBuilder.prototype.insertHtmlElement = function(attributes) {\n\tvar root = this.createElement(\"http://www.w3.org/1999/xhtml\", 'html', attributes);\n\tthis.attachNode(root, this.document);\n\tthis.openElements.pushHtmlElement(new StackItem(\"http://www.w3.org/1999/xhtml\", 'html', attributes, root));\n\treturn root;\n};\n\nTreeBuilder.prototype.insertHeadElement = function(attributes) {\n\tvar element = this.createElement(\"http://www.w3.org/1999/xhtml\", \"head\", attributes);\n\tthis.head = new StackItem(\"http://www.w3.org/1999/xhtml\", \"head\", attributes, element);\n\tthis.attachNode(element, this.openElements.top.node);\n\tthis.openElements.pushHeadElement(this.head);\n\treturn element;\n};\n\nTreeBuilder.prototype.insertBodyElement = function(attributes) {\n\tvar element = this.createElement(\"http://www.w3.org/1999/xhtml\", \"body\", attributes);\n\tthis.attachNode(element, this.openElements.top.node);\n\tthis.openElements.pushBodyElement(new StackItem(\"http://www.w3.org/1999/xhtml\", \"body\", attributes, element));\n\treturn element;\n};\n\nTreeBuilder.prototype.insertIntoFosterParent = function(node) {\n\tvar tableIndex = this.openElements.findIndex('table');\n\tvar tableElement = this.openElements.item(tableIndex).node;\n\tif (tableIndex === 0)\n\t\treturn this.attachNode(node, tableElement);\n\tthis.attachNodeToFosterParent(node, tableElement, this.openElements.item(tableIndex - 1).node);\n};\n\nTreeBuilder.prototype.insertElement = function(name, attributes, namespaceURI, selfClosing) {\n\tif (!namespaceURI)\n\t\tnamespaceURI = \"http://www.w3.org/1999/xhtml\";\n\tvar element = this.createElement(namespaceURI, name, attributes);\n\tif (this.shouldFosterParent())\n\t\tthis.insertIntoFosterParent(element);\n\telse\n\t\tthis.attachNode(element, this.openElements.top.node);\n\tif (!selfClosing)\n\t\tthis.openElements.push(new StackItem(namespaceURI, name, attributes, element));\n};\n\nTreeBuilder.prototype.insertFormattingElement = function(name, attributes) {\n\tthis.insertElement(name, attributes, \"http://www.w3.org/1999/xhtml\");\n\tthis.appendElementToActiveFormattingElements(this.currentStackItem());\n};\n\nTreeBuilder.prototype.insertSelfClosingElement = function(name, attributes) {\n\tthis.selfClosingFlagAcknowledged = true;\n\tthis.insertElement(name, attributes, \"http://www.w3.org/1999/xhtml\", true);\n};\n\nTreeBuilder.prototype.insertForeignElement = function(name, attributes, namespaceURI, selfClosing) {\n\tif (selfClosing)\n\t\tthis.selfClosingFlagAcknowledged = true;\n\tthis.insertElement(name, attributes, namespaceURI, selfClosing);\n};\n\nTreeBuilder.prototype.insertComment = function(data, parent) {\n\tthrow new Error(\"Not implemented\");\n};\n\nTreeBuilder.prototype.insertDoctype = function(name, publicId, systemId) {\n\tthrow new Error(\"Not implemented\");\n};\n\nTreeBuilder.prototype.insertText = function(data) {\n\tthrow new Error(\"Not implemented\");\n};\nTreeBuilder.prototype.currentStackItem = function() {\n\treturn this.openElements.top;\n};\nTreeBuilder.prototype.popElement = function() {\n\treturn this.openElements.pop();\n};\nTreeBuilder.prototype.shouldFosterParent = function() {\n\treturn this.redirectAttachToFosterParent && this.currentStackItem().isFosterParenting();\n};\nTreeBuilder.prototype.generateImpliedEndTags = function(exclude) {\n\tvar name = this.openElements.top.localName;\n\tif (['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt'].indexOf(name) != -1 && name != exclude) {\n\t\tthis.popElement();\n\t\tthis.generateImpliedEndTags(exclude);\n\t}\n};\nTreeBuilder.prototype.reconstructActiveFormattingElements = function() {\n\tif (this.activeFormattingElements.length === 0)\n\t\treturn;\n\tvar i = this.activeFormattingElements.length - 1;\n\tvar entry = this.activeFormattingElements[i];\n\tif (entry == Marker || this.openElements.contains(entry))\n\t\treturn;\n\n\twhile (entry != Marker && !this.openElements.contains(entry)) {\n\t\ti -= 1;\n\t\tentry = this.activeFormattingElements[i];\n\t\tif (!entry)\n\t\t\tbreak;\n\t}\n\n\twhile (true) {\n\t\ti += 1;\n\t\tentry = this.activeFormattingElements[i];\n\t\tthis.insertElement(entry.localName, entry.attributes);\n\t\tvar element = this.currentStackItem();\n\t\tthis.activeFormattingElements[i] = element;\n\t\tif (element == this.activeFormattingElements[this.activeFormattingElements.length -1])\n\t\t\tbreak;\n\t}\n\n};\nTreeBuilder.prototype.ensureNoahsArkCondition = function(item) {\n\tvar kNoahsArkCapacity = 3;\n\tif (this.activeFormattingElements.length < kNoahsArkCapacity)\n\t\treturn;\n\tvar candidates = [];\n\tvar newItemAttributeCount = item.attributes.length;\n\tfor (var i = this.activeFormattingElements.length - 1; i >= 0; i--) {\n\t\tvar candidate = this.activeFormattingElements[i];\n\t\tif (candidate === Marker)\n\t\t\tbreak;\n\t\tif (item.localName !== candidate.localName || item.namespaceURI !== candidate.namespaceURI)\n\t\t\tcontinue;\n\t\tif (candidate.attributes.length != newItemAttributeCount)\n\t\t\tcontinue;\n\t\tcandidates.push(candidate);\n\t}\n\tif (candidates.length < kNoahsArkCapacity)\n\t\treturn;\n\n\tvar remainingCandidates = [];\n\tvar attributes = item.attributes;\n\tfor (var i = 0; i < attributes.length; i++) {\n\t\tvar attribute = attributes[i];\n\n\t\tfor (var j = 0; j < candidates.length; j++) {\n\t\t\tvar candidate = candidates[j];\n\t\t\tvar candidateAttribute = getAttribute(candidate, attribute.nodeName);\n\t\t\tif (candidateAttribute && candidateAttribute.nodeValue === attribute.nodeValue)\n\t\t\t\tremainingCandidates.push(candidate);\n\t\t}\n\t\tif (remainingCandidates.length < kNoahsArkCapacity)\n\t\t\treturn;\n\t\tcandidates = remainingCandidates;\n\t\tremainingCandidates = [];\n\t}\n\tfor (var i = kNoahsArkCapacity - 1; i < candidates.length; i++)\n\t\tthis.removeElementFromActiveFormattingElements(candidates[i]);\n};\nTreeBuilder.prototype.appendElementToActiveFormattingElements = function(item) {\n\tthis.ensureNoahsArkCondition(item);\n\tthis.activeFormattingElements.push(item);\n};\nTreeBuilder.prototype.removeElementFromActiveFormattingElements = function(item) {\n\tvar index = this.activeFormattingElements.indexOf(item);\n\tif (index >= 0)\n\t\tthis.activeFormattingElements.splice(index, 1);\n};\n\nTreeBuilder.prototype.elementInActiveFormattingElements = function(name) {\n\tvar els = this.activeFormattingElements;\n\tfor (var i = els.length - 1; i >= 0; i--) {\n\t\tif (els[i] == Marker) break;\n\t\tif (els[i].localName == name) return els[i];\n\t}\n\treturn false;\n};\n\nTreeBuilder.prototype.clearActiveFormattingElements = function() {\n    while (!(this.activeFormattingElements.length === 0 || this.activeFormattingElements.pop() == Marker));\n};\n\nTreeBuilder.prototype.reparentChildren = function(oldParent, newParent) {\n\tthrow new Error(\"Not implemented\");\n};\nTreeBuilder.prototype.setFragmentContext = function(context) {\n\tthis.context = context;\n};\nTreeBuilder.prototype.parseError = function(code, args) {\n\tif (!this.errorHandler)\n\t\treturn;\n\tvar message = formatMessage(messages[code], args);\n\tthis.errorHandler.error(message, this.tokenizer._inputStream.location(), code);\n};\nTreeBuilder.prototype.resetInsertionMode = function() {\n\tvar last = false;\n\tvar node = null;\n\tfor (var i = this.openElements.length - 1; i >= 0; i--) {\n\t\tnode = this.openElements.item(i);\n\t\tif (i === 0) {\n\t\t\tassert.ok(this.context);\n\t\t\tlast = true;\n\t\t\tnode = new StackItem(\"http://www.w3.org/1999/xhtml\", this.context, [], null);\n\t\t}\n\n\t\tif (node.namespaceURI === \"http://www.w3.org/1999/xhtml\") {\n\t\t\tif (node.localName === 'select')\n\t\t\t\treturn this.setInsertionMode('inSelect');\n\t\t\tif (node.localName === 'td' || node.localName === 'th')\n\t\t\t\treturn this.setInsertionMode('inCell');\n\t\t\tif (node.localName === 'tr')\n\t\t\t\treturn this.setInsertionMode('inRow');\n\t\t\tif (node.localName === 'tbody' || node.localName === 'thead' || node.localName === 'tfoot')\n\t\t\t\treturn this.setInsertionMode('inTableBody');\n\t\t\tif (node.localName === 'caption')\n\t\t\t\treturn this.setInsertionMode('inCaption');\n\t\t\tif (node.localName === 'colgroup')\n\t\t\t\treturn this.setInsertionMode('inColumnGroup');\n\t\t\tif (node.localName === 'table')\n\t\t\t\treturn this.setInsertionMode('inTable');\n\t\t\tif (node.localName === 'head' && !last)\n\t\t\t\treturn this.setInsertionMode('inHead');\n\t\t\tif (node.localName === 'body')\n\t\t\t\treturn this.setInsertionMode('inBody');\n\t\t\tif (node.localName === 'frameset')\n\t\t\t\treturn this.setInsertionMode('inFrameset');\n\t\t\tif (node.localName === 'html')\n\t\t\t\tif (!this.openElements.headElement)\n\t\t\t\t\treturn this.setInsertionMode('beforeHead');\n\t\t\t\telse\n\t\t\t\t\treturn this.setInsertionMode('afterHead');\n\t\t}\n\n\t\tif (last)\n\t\t\treturn this.setInsertionMode('inBody');\n\t}\n};\n\nTreeBuilder.prototype.processGenericRCDATAStartTag = function(name, attributes) {\n\tthis.insertElement(name, attributes);\n\tthis.tokenizer.setState(Tokenizer.RCDATA);\n\tthis.originalInsertionMode = this.insertionModeName;\n\tthis.setInsertionMode('text');\n};\n\nTreeBuilder.prototype.processGenericRawTextStartTag = function(name, attributes) {\n\tthis.insertElement(name, attributes);\n\tthis.tokenizer.setState(Tokenizer.RAWTEXT);\n\tthis.originalInsertionMode = this.insertionModeName;\n\tthis.setInsertionMode('text');\n};\n\nTreeBuilder.prototype.adjustMathMLAttributes = function(attributes) {\n\tattributes.forEach(function(a) {\n\t\ta.namespaceURI = \"http://www.w3.org/1998/Math/MathML\";\n\t\tif (constants.MATHMLAttributeMap[a.nodeName])\n\t\t\ta.nodeName = constants.MATHMLAttributeMap[a.nodeName];\n\t});\n\treturn attributes;\n};\n\nTreeBuilder.prototype.adjustSVGTagNameCase = function(name) {\n\treturn constants.SVGTagMap[name] || name;\n};\n\nTreeBuilder.prototype.adjustSVGAttributes = function(attributes) {\n\tattributes.forEach(function(a) {\n\t\ta.namespaceURI = \"http://www.w3.org/2000/svg\";\n\t\tif (constants.SVGAttributeMap[a.nodeName])\n\t\t\ta.nodeName = constants.SVGAttributeMap[a.nodeName];\n\t});\n\treturn attributes;\n};\n\nTreeBuilder.prototype.adjustForeignAttributes = function(attributes) {\n\tfor (var i = 0; i < attributes.length; i++) {\n\t\tvar attribute = attributes[i];\n\t\tvar adjusted = constants.ForeignAttributeMap[attribute.nodeName];\n\t\tif (adjusted) {\n\t\t\tattribute.nodeName = adjusted.localName;\n\t\t\tattribute.prefix = adjusted.prefix;\n\t\t\tattribute.namespaceURI = adjusted.namespaceURI;\n\t\t}\n\t}\n\treturn attributes;\n};\n\nfunction formatMessage(format, args) {\n\treturn format.replace(new RegExp('{[0-9a-z-]+}', 'gi'), function(match) {\n\t\treturn args[match.slice(1, -1)] || match;\n\t});\n}\n\nexports.TreeBuilder = TreeBuilder;\n\n},\n{\"./ElementStack\":1,\"./StackItem\":4,\"./Tokenizer\":5,\"./constants\":7,\"./messages.json\":8,\"assert\":13,\"events\":16}],\n7:[function(_dereq_,module,exports){\nexports.SVGTagMap = {\n\t\"altglyph\": \"altGlyph\",\n\t\"altglyphdef\": \"altGlyphDef\",\n\t\"altglyphitem\": \"altGlyphItem\",\n\t\"animatecolor\": \"animateColor\",\n\t\"animatemotion\": \"animateMotion\",\n\t\"animatetransform\": \"animateTransform\",\n\t\"clippath\": \"clipPath\",\n\t\"feblend\": \"feBlend\",\n\t\"fecolormatrix\": \"feColorMatrix\",\n\t\"fecomponenttransfer\": \"feComponentTransfer\",\n\t\"fecomposite\": \"feComposite\",\n\t\"feconvolvematrix\": \"feConvolveMatrix\",\n\t\"fediffuselighting\": \"feDiffuseLighting\",\n\t\"fedisplacementmap\": \"feDisplacementMap\",\n\t\"fedistantlight\": \"feDistantLight\",\n\t\"feflood\": \"feFlood\",\n\t\"fefunca\": \"feFuncA\",\n\t\"fefuncb\": \"feFuncB\",\n\t\"fefuncg\": \"feFuncG\",\n\t\"fefuncr\": \"feFuncR\",\n\t\"fegaussianblur\": \"feGaussianBlur\",\n\t\"feimage\": \"feImage\",\n\t\"femerge\": \"feMerge\",\n\t\"femergenode\": \"feMergeNode\",\n\t\"femorphology\": \"feMorphology\",\n\t\"feoffset\": \"feOffset\",\n\t\"fepointlight\": \"fePointLight\",\n\t\"fespecularlighting\": \"feSpecularLighting\",\n\t\"fespotlight\": \"feSpotLight\",\n\t\"fetile\": \"feTile\",\n\t\"feturbulence\": \"feTurbulence\",\n\t\"foreignobject\": \"foreignObject\",\n\t\"glyphref\": \"glyphRef\",\n\t\"lineargradient\": \"linearGradient\",\n\t\"radialgradient\": \"radialGradient\",\n\t\"textpath\": \"textPath\"\n};\n\nexports.MATHMLAttributeMap = {\n\tdefinitionurl: 'definitionURL'\n};\n\nexports.SVGAttributeMap = {\n\tattributename:\t'attributeName',\n\tattributetype:\t'attributeType',\n\tbasefrequency:\t'baseFrequency',\n\tbaseprofile:\t'baseProfile',\n\tcalcmode:\t'calcMode',\n\tclippathunits:\t'clipPathUnits',\n\tcontentscripttype:\t'contentScriptType',\n\tcontentstyletype:\t'contentStyleType',\n\tdiffuseconstant:\t'diffuseConstant',\n\tedgemode:\t'edgeMode',\n\texternalresourcesrequired:\t'externalResourcesRequired',\n\tfilterres:\t'filterRes',\n\tfilterunits:\t'filterUnits',\n\tglyphref:\t'glyphRef',\n\tgradienttransform:\t'gradientTransform',\n\tgradientunits:\t'gradientUnits',\n\tkernelmatrix:\t'kernelMatrix',\n\tkernelunitlength:\t'kernelUnitLength',\n\tkeypoints:\t'keyPoints',\n\tkeysplines:\t'keySplines',\n\tkeytimes:\t'keyTimes',\n\tlengthadjust:\t'lengthAdjust',\n\tlimitingconeangle:\t'limitingConeAngle',\n\tmarkerheight:\t'markerHeight',\n\tmarkerunits:\t'markerUnits',\n\tmarkerwidth:\t'markerWidth',\n\tmaskcontentunits:\t'maskContentUnits',\n\tmaskunits:\t'maskUnits',\n\tnumoctaves:\t'numOctaves',\n\tpathlength:\t'pathLength',\n\tpatterncontentunits:\t'patternContentUnits',\n\tpatterntransform:\t'patternTransform',\n\tpatternunits:\t'patternUnits',\n\tpointsatx:\t'pointsAtX',\n\tpointsaty:\t'pointsAtY',\n\tpointsatz:\t'pointsAtZ',\n\tpreservealpha:\t'preserveAlpha',\n\tpreserveaspectratio:\t'preserveAspectRatio',\n\tprimitiveunits:\t'primitiveUnits',\n\trefx:\t'refX',\n\trefy:\t'refY',\n\trepeatcount:\t'repeatCount',\n\trepeatdur:\t'repeatDur',\n\trequiredextensions:\t'requiredExtensions',\n\trequiredfeatures:\t'requiredFeatures',\n\tspecularconstant:\t'specularConstant',\n\tspecularexponent:\t'specularExponent',\n\tspreadmethod:\t'spreadMethod',\n\tstartoffset:\t'startOffset',\n\tstddeviation:\t'stdDeviation',\n\tstitchtiles:\t'stitchTiles',\n\tsurfacescale:\t'surfaceScale',\n\tsystemlanguage:\t'systemLanguage',\n\ttablevalues:\t'tableValues',\n\ttargetx:\t'targetX',\n\ttargety:\t'targetY',\n\ttextlength:\t'textLength',\n\tviewbox:\t'viewBox',\n\tviewtarget:\t'viewTarget',\n\txchannelselector:\t'xChannelSelector',\n\tychannelselector:\t'yChannelSelector',\n\tzoomandpan:\t'zoomAndPan'\n};\n\nexports.ForeignAttributeMap = {\n\t\"xlink:actuate\": {prefix: \"xlink\", localName: \"actuate\", namespaceURI: \"http://www.w3.org/1999/xlink\"},\n\t\"xlink:arcrole\": {prefix: \"xlink\", localName: \"arcrole\", namespaceURI: \"http://www.w3.org/1999/xlink\"},\n\t\"xlink:href\": {prefix: \"xlink\", localName: \"href\", namespaceURI: \"http://www.w3.org/1999/xlink\"},\n\t\"xlink:role\": {prefix: \"xlink\", localName: \"role\", namespaceURI: \"http://www.w3.org/1999/xlink\"},\n\t\"xlink:show\": {prefix: \"xlink\", localName: \"show\", namespaceURI: \"http://www.w3.org/1999/xlink\"},\n\t\"xlink:title\": {prefix: \"xlink\", localName: \"title\", namespaceURI: \"http://www.w3.org/1999/xlink\"},\n\t\"xlink:type\": {prefix: \"xlink\", localName: \"title\", namespaceURI: \"http://www.w3.org/1999/xlink\"},\n\t\"xml:base\": {prefix: \"xml\", localName: \"base\", namespaceURI: \"http://www.w3.org/XML/1998/namespace\"},\n\t\"xml:lang\": {prefix: \"xml\", localName: \"lang\", namespaceURI: \"http://www.w3.org/XML/1998/namespace\"},\n\t\"xml:space\": {prefix: \"xml\", localName: \"space\", namespaceURI: \"http://www.w3.org/XML/1998/namespace\"},\n\t\"xmlns\": {prefix: null, localName: \"xmlns\", namespaceURI: \"http://www.w3.org/2000/xmlns/\"},\n\t\"xmlns:xlink\": {prefix: \"xmlns\", localName: \"xlink\", namespaceURI: \"http://www.w3.org/2000/xmlns/\"},\n};\n},\n{}],\n8:[function(_dereq_,module,exports){\nmodule.exports={\n\t\"null-character\":\n\t\t\"Null character in input stream, replaced with U+FFFD.\",\n\t\"invalid-codepoint\":\n\t\t\"Invalid codepoint in stream\",\n\t\"incorrectly-placed-solidus\":\n\t\t\"Solidus (/) incorrectly placed in tag.\",\n\t\"incorrect-cr-newline-entity\":\n\t\t\"Incorrect CR newline entity, replaced with LF.\",\n\t\"illegal-windows-1252-entity\":\n\t\t\"Entity used with illegal number (windows-1252 reference).\",\n\t\"cant-convert-numeric-entity\":\n\t\t\"Numeric entity couldn't be converted to character (codepoint U+{charAsInt}).\",\n\t\"invalid-numeric-entity-replaced\":\n\t\t\"Numeric entity represents an illegal codepoint. Expanded to the C1 controls range.\",\n\t\"numeric-entity-without-semicolon\":\n\t\t\"Numeric entity didn't end with ';'.\",\n\t\"expected-numeric-entity-but-got-eof\":\n\t\t\"Numeric entity expected. Got end of file instead.\",\n\t\"expected-numeric-entity\":\n\t\t\"Numeric entity expected but none found.\",\n\t\"named-entity-without-semicolon\":\n\t\t\"Named entity didn't end with ';'.\",\n\t\"expected-named-entity\":\n\t\t\"Named entity expected. Got none.\",\n\t\"attributes-in-end-tag\":\n\t\t\"End tag contains unexpected attributes.\",\n\t\"self-closing-flag-on-end-tag\":\n\t\t\"End tag contains unexpected self-closing flag.\",\n\t\"bare-less-than-sign-at-eof\":\n\t\t\"End of file after <.\",\n\t\"expected-tag-name-but-got-right-bracket\":\n\t\t\"Expected tag name. Got '>' instead.\",\n\t\"expected-tag-name-but-got-question-mark\":\n\t\t\"Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.)\",\n\t\"expected-tag-name\":\n\t\t\"Expected tag name. Got something else instead.\",\n\t\"expected-closing-tag-but-got-right-bracket\":\n\t\t\"Expected closing tag. Got '>' instead. Ignoring '</>'.\",\n\t\"expected-closing-tag-but-got-eof\":\n\t\t\"Expected closing tag. Unexpected end of file.\",\n\t\"expected-closing-tag-but-got-char\":\n\t\t\"Expected closing tag. Unexpected character '{data}' found.\",\n\t\"eof-in-tag-name\":\n\t\t\"Unexpected end of file in the tag name.\",\n\t\"expected-attribute-name-but-got-eof\":\n\t\t\"Unexpected end of file. Expected attribute name instead.\",\n\t\"eof-in-attribute-name\":\n\t\t\"Unexpected end of file in attribute name.\",\n\t\"invalid-character-in-attribute-name\":\n\t\t\"Invalid character in attribute name.\",\n\t\"duplicate-attribute\":\n\t\t\"Dropped duplicate attribute '{name}' on tag.\",\n\t\"expected-end-of-tag-but-got-eof\":\n\t\t\"Unexpected end of file. Expected = or end of tag.\",\n\t\"expected-attribute-value-but-got-eof\":\n\t\t\"Unexpected end of file. Expected attribute value.\",\n\t\"expected-attribute-value-but-got-right-bracket\":\n\t\t\"Expected attribute value. Got '>' instead.\",\n\t\"unexpected-character-in-unquoted-attribute-value\":\n\t\t\"Unexpected character in unquoted attribute\",\n\t\"invalid-character-after-attribute-name\":\n\t\t\"Unexpected character after attribute name.\",\n\t\"unexpected-character-after-attribute-value\":\n\t\t\"Unexpected character after attribute value.\",\n\t\"eof-in-attribute-value-double-quote\":\n\t\t\"Unexpected end of file in attribute value (\\\").\",\n\t\"eof-in-attribute-value-single-quote\":\n\t\t\"Unexpected end of file in attribute value (').\",\n\t\"eof-in-attribute-value-no-quotes\":\n\t\t\"Unexpected end of file in attribute value.\",\n\t\"eof-after-attribute-value\":\n\t\t\"Unexpected end of file after attribute value.\",\n\t\"unexpected-eof-after-solidus-in-tag\":\n\t\t\"Unexpected end of file in tag. Expected >.\",\n\t\"unexpected-character-after-solidus-in-tag\":\n\t\t\"Unexpected character after / in tag. Expected >.\",\n\t\"expected-dashes-or-doctype\":\n\t\t\"Expected '--' or 'DOCTYPE'. Not found.\",\n\t\"unexpected-bang-after-double-dash-in-comment\":\n\t\t\"Unexpected ! after -- in comment.\",\n\t\"incorrect-comment\":\n\t\t\"Incorrect comment.\",\n\t\"eof-in-comment\":\n\t\t\"Unexpected end of file in comment.\",\n\t\"eof-in-comment-end-dash\":\n\t\t\"Unexpected end of file in comment (-).\",\n\t\"unexpected-dash-after-double-dash-in-comment\":\n\t\t\"Unexpected '-' after '--' found in comment.\",\n\t\"eof-in-comment-double-dash\":\n\t\t\"Unexpected end of file in comment (--).\",\n\t\"eof-in-comment-end-bang-state\":\n\t\t\"Unexpected end of file in comment.\",\n\t\"unexpected-char-in-comment\":\n\t\t\"Unexpected character in comment found.\",\n\t\"need-space-after-doctype\":\n\t\t\"No space after literal string 'DOCTYPE'.\",\n\t\"expected-doctype-name-but-got-right-bracket\":\n\t\t\"Unexpected > character. Expected DOCTYPE name.\",\n\t\"expected-doctype-name-but-got-eof\":\n\t\t\"Unexpected end of file. Expected DOCTYPE name.\",\n\t\"eof-in-doctype-name\":\n\t\t\"Unexpected end of file in DOCTYPE name.\",\n\t\"eof-in-doctype\":\n\t\t\"Unexpected end of file in DOCTYPE.\",\n\t\"expected-space-or-right-bracket-in-doctype\":\n\t\t\"Expected space or '>'. Got '{data}'.\",\n\t\"unexpected-end-of-doctype\":\n\t\t\"Unexpected end of DOCTYPE.\",\n\t\"unexpected-char-in-doctype\":\n\t\t\"Unexpected character in DOCTYPE.\",\n\t\"eof-in-bogus-doctype\":\n\t\t\"Unexpected end of file in bogus doctype.\",\n\t\"eof-in-innerhtml\":\n\t\t\"Unexpected EOF in inner html mode.\",\n\t\"unexpected-doctype\":\n\t\t\"Unexpected DOCTYPE. Ignored.\",\n\t\"non-html-root\":\n\t\t\"html needs to be the first start tag.\",\n\t\"expected-doctype-but-got-eof\":\n\t\t\"Unexpected End of file. Expected DOCTYPE.\",\n\t\"unknown-doctype\":\n\t\t\"Erroneous DOCTYPE. Expected <!DOCTYPE html>.\",\n\t\"quirky-doctype\":\n\t\t\"Quirky doctype. Expected <!DOCTYPE html>.\",\n\t\"almost-standards-doctype\":\n\t\t\"Almost standards mode doctype. Expected <!DOCTYPE html>.\",\n\t\"obsolete-doctype\":\n\t\t\"Obsolete doctype. Expected <!DOCTYPE html>.\",\n\t\"expected-doctype-but-got-chars\":\n\t\t\"Non-space characters found without seeing a doctype first. Expected e.g. <!DOCTYPE html>.\",\n\t\"expected-doctype-but-got-start-tag\":\n\t\t\"Start tag seen without seeing a doctype first. Expected e.g. <!DOCTYPE html>.\",\n\t\"expected-doctype-but-got-end-tag\":\n\t\t\"End tag seen without seeing a doctype first. Expected e.g. <!DOCTYPE html>.\",\n\t\"end-tag-after-implied-root\":\n\t\t\"Unexpected end tag ({name}) after the (implied) root element.\",\n\t\"expected-named-closing-tag-but-got-eof\":\n\t\t\"Unexpected end of file. Expected end tag ({name}).\",\n\t\"two-heads-are-not-better-than-one\":\n\t\t\"Unexpected start tag head in existing head. Ignored.\",\n\t\"unexpected-end-tag\":\n\t\t\"Unexpected end tag ({name}). Ignored.\",\n\t\"unexpected-implied-end-tag\":\n\t\t\"End tag {name} implied, but there were open elements.\",\n\t\"unexpected-start-tag-out-of-my-head\":\n\t\t\"Unexpected start tag ({name}) that can be in head. Moved.\",\n\t\"unexpected-start-tag\":\n\t\t\"Unexpected start tag ({name}).\",\n\t\"missing-end-tag\":\n\t\t\"Missing end tag ({name}).\",\n\t\"missing-end-tags\":\n\t\t\"Missing end tags ({name}).\",\n\t\"unexpected-start-tag-implies-end-tag\":\n\t\t\"Unexpected start tag ({startName}) implies end tag ({endName}).\",\n\t\"unexpected-start-tag-treated-as\":\n\t\t\"Unexpected start tag ({originalName}). Treated as {newName}.\",\n\t\"deprecated-tag\":\n\t\t\"Unexpected start tag {name}. Don't use it!\",\n\t\"unexpected-start-tag-ignored\":\n\t\t\"Unexpected start tag {name}. Ignored.\",\n\t\"expected-one-end-tag-but-got-another\":\n\t\t\"Unexpected end tag ({gotName}). Missing end tag ({expectedName}).\",\n\t\"end-tag-too-early\":\n\t\t\"End tag ({name}) seen too early. Expected other end tag.\",\n\t\"end-tag-too-early-named\":\n\t\t\"Unexpected end tag ({gotName}). Expected end tag ({expectedName}.\",\n\t\"end-tag-too-early-ignored\":\n\t\t\"End tag ({name}) seen too early. Ignored.\",\n\t\"adoption-agency-1.1\":\n\t\t\"End tag ({name}) violates step 1, paragraph 1 of the adoption agency algorithm.\",\n\t\"adoption-agency-1.2\":\n\t\t\"End tag ({name}) violates step 1, paragraph 2 of the adoption agency algorithm.\",\n\t\"adoption-agency-1.3\":\n\t\t\"End tag ({name}) violates step 1, paragraph 3 of the adoption agency algorithm.\",\n\t\"adoption-agency-4.4\":\n\t\t\"End tag ({name}) violates step 4, paragraph 4 of the adoption agency algorithm.\",\n\t\"unexpected-end-tag-treated-as\":\n\t\t\"Unexpected end tag ({originalName}). Treated as {newName}.\",\n\t\"no-end-tag\":\n\t\t\"This element ({name}) has no end tag.\",\n\t\"unexpected-implied-end-tag-in-table\":\n\t\t\"Unexpected implied end tag ({name}) in the table phase.\",\n\t\"unexpected-implied-end-tag-in-table-body\":\n\t\t\"Unexpected implied end tag ({name}) in the table body phase.\",\n\t\"unexpected-char-implies-table-voodoo\":\n\t\t\"Unexpected non-space characters in table context caused voodoo mode.\",\n\t\"unexpected-hidden-input-in-table\":\n\t\t\"Unexpected input with type hidden in table context.\",\n\t\"unexpected-form-in-table\":\n\t\t\"Unexpected form in table context.\",\n\t\"unexpected-start-tag-implies-table-voodoo\":\n\t\t\"Unexpected start tag ({name}) in table context caused voodoo mode.\",\n\t\"unexpected-end-tag-implies-table-voodoo\":\n\t\t\"Unexpected end tag ({name}) in table context caused voodoo mode.\",\n\t\"unexpected-cell-in-table-body\":\n\t\t\"Unexpected table cell start tag ({name}) in the table body phase.\",\n\t\"unexpected-cell-end-tag\":\n\t\t\"Got table cell end tag ({name}) while required end tags are missing.\",\n\t\"unexpected-end-tag-in-table-body\":\n\t\t\"Unexpected end tag ({name}) in the table body phase. Ignored.\",\n\t\"unexpected-implied-end-tag-in-table-row\":\n\t\t\"Unexpected implied end tag ({name}) in the table row phase.\",\n\t\"unexpected-end-tag-in-table-row\":\n\t\t\"Unexpected end tag ({name}) in the table row phase. Ignored.\",\n\t\"unexpected-select-in-select\":\n\t\t\"Unexpected select start tag in the select phase treated as select end tag.\",\n\t\"unexpected-input-in-select\":\n\t\t\"Unexpected input start tag in the select phase.\",\n\t\"unexpected-start-tag-in-select\":\n\t\t\"Unexpected start tag token ({name}) in the select phase. Ignored.\",\n\t\"unexpected-end-tag-in-select\":\n\t\t\"Unexpected end tag ({name}) in the select phase. Ignored.\",\n\t\"unexpected-table-element-start-tag-in-select-in-table\":\n\t\t\"Unexpected table element start tag ({name}) in the select in table phase.\",\n\t\"unexpected-table-element-end-tag-in-select-in-table\":\n\t\t\"Unexpected table element end tag ({name}) in the select in table phase.\",\n\t\"unexpected-char-after-body\":\n\t\t\"Unexpected non-space characters in the after body phase.\",\n\t\"unexpected-start-tag-after-body\":\n\t\t\"Unexpected start tag token ({name}) in the after body phase.\",\n\t\"unexpected-end-tag-after-body\":\n\t\t\"Unexpected end tag token ({name}) in the after body phase.\",\n\t\"unexpected-char-in-frameset\":\n\t\t\"Unepxected characters in the frameset phase. Characters ignored.\",\n\t\"unexpected-start-tag-in-frameset\":\n\t\t\"Unexpected start tag token ({name}) in the frameset phase. Ignored.\",\n\t\"unexpected-frameset-in-frameset-innerhtml\":\n\t\t\"Unexpected end tag token (frameset in the frameset phase (innerHTML).\",\n\t\"unexpected-end-tag-in-frameset\":\n\t\t\"Unexpected end tag token ({name}) in the frameset phase. Ignored.\",\n\t\"unexpected-char-after-frameset\":\n\t\t\"Unexpected non-space characters in the after frameset phase. Ignored.\",\n\t\"unexpected-start-tag-after-frameset\":\n\t\t\"Unexpected start tag ({name}) in the after frameset phase. Ignored.\",\n\t\"unexpected-end-tag-after-frameset\":\n\t\t\"Unexpected end tag ({name}) in the after frameset phase. Ignored.\",\n\t\"expected-eof-but-got-char\":\n\t\t\"Unexpected non-space characters. Expected end of file.\",\n\t\"expected-eof-but-got-start-tag\":\n\t\t\"Unexpected start tag ({name}). Expected end of file.\",\n\t\"expected-eof-but-got-end-tag\":\n\t\t\"Unexpected end tag ({name}). Expected end of file.\",\n\t\"unexpected-end-table-in-caption\":\n\t\t\"Unexpected end table tag in caption. Generates implied end caption.\",\n\t\"end-html-in-innerhtml\": \n\t\t\"Unexpected html end tag in inner html mode.\",\n\t\"eof-in-table\":\n\t\t\"Unexpected end of file. Expected table content.\",\n\t\"eof-in-script\":\n\t\t\"Unexpected end of file. Expected script content.\",\n\t\"non-void-element-with-trailing-solidus\":\n\t\t\"Trailing solidus not allowed on element {name}.\",\n\t\"unexpected-html-element-in-foreign-content\":\n\t\t\"HTML start tag \\\"{name}\\\" in a foreign namespace context.\",\n\t\"unexpected-start-tag-in-table\":\n\t\t\"Unexpected {name}. Expected table content.\"\n}\n},\n{}],\n9:[function(_dereq_,module,exports){\nvar SAXTreeBuilder = _dereq_('./SAXTreeBuilder').SAXTreeBuilder;\nvar Tokenizer = _dereq_('../Tokenizer').Tokenizer;\nvar TreeParser = _dereq_('./TreeParser').TreeParser;\n\nfunction SAXParser() {\n\tthis.contentHandler = null;\n\tthis._errorHandler = null;\n\tthis._treeBuilder = new SAXTreeBuilder();\n\tthis._tokenizer = new Tokenizer(this._treeBuilder);\n\tthis._scriptingEnabled = false;\n}\n\nSAXParser.prototype.parse = function(source) {\n\tthis._tokenizer.tokenize(source);\n\tvar document = this._treeBuilder.document;\n\tif (document) {\n\t\tnew TreeParser(this.contentHandler).parse(document);\n\t}\n};\n\nSAXParser.prototype.parseFragment = function(source, context) {\n\tthis._treeBuilder.setFragmentContext(context);\n\tthis._tokenizer.tokenize(source);\n\tvar fragment = this._treeBuilder.getFragment();\n\tif (fragment) {\n\t\tnew TreeParser(this.contentHandler).parse(fragment);\n\t}\n};\n\nObject.defineProperty(SAXParser.prototype, 'scriptingEnabled', {\n\tget: function() {\n\t\treturn this._scriptingEnabled;\n\t},\n\tset: function(value) {\n\t\tthis._scriptingEnabled = value;\n\t\tthis._treeBuilder.scriptingEnabled = value;\n\t}\n});\n\nObject.defineProperty(SAXParser.prototype, 'errorHandler', {\n\tget: function() {\n\t\treturn this._errorHandler;\n\t},\n\tset: function(value) {\n\t\tthis._errorHandler = value;\n\t\tthis._treeBuilder.errorHandler = value;\n\t}\n});\n\nexports.SAXParser = SAXParser;\n\n},\n{\"../Tokenizer\":5,\"./SAXTreeBuilder\":10,\"./TreeParser\":11}],\n10:[function(_dereq_,module,exports){\nvar util = _dereq_('util');\nvar TreeBuilder = _dereq_('../TreeBuilder').TreeBuilder;\n\nfunction SAXTreeBuilder() {\n\tTreeBuilder.call(this);\n}\n\nutil.inherits(SAXTreeBuilder, TreeBuilder);\n\nSAXTreeBuilder.prototype.start = function(tokenizer) {\n\tthis.document = new Document(this.tokenizer);\n};\n\nSAXTreeBuilder.prototype.end = function() {\n\tthis.document.endLocator = this.tokenizer;\n};\n\nSAXTreeBuilder.prototype.insertDoctype = function(name, publicId, systemId) {\n\tvar doctype = new DTD(this.tokenizer, name, publicId, systemId);\n\tdoctype.endLocator = this.tokenizer;\n\tthis.document.appendChild(doctype);\n};\n\nSAXTreeBuilder.prototype.createElement = function(namespaceURI, localName, attributes) {\n\tvar element = new Element(this.tokenizer, namespaceURI, localName, localName, attributes || []);\n\treturn element;\n};\n\nSAXTreeBuilder.prototype.insertComment = function(data, parent) {\n\tif (!parent)\n\t\tparent = this.currentStackItem();\n\tvar comment = new Comment(this.tokenizer, data);\n\tparent.appendChild(comment);\n};\n\nSAXTreeBuilder.prototype.appendCharacters = function(parent, data) {\n\tvar text = new Characters(this.tokenizer, data);\n\tparent.appendChild(text);\n};\n\nSAXTreeBuilder.prototype.insertText = function(data) {\n\tif (this.redirectAttachToFosterParent && this.openElements.top.isFosterParenting()) {\n\t\tvar tableIndex = this.openElements.findIndex('table');\n\t\tvar tableItem = this.openElements.item(tableIndex);\n\t\tvar table = tableItem.node;\n\t\tif (tableIndex === 0) {\n\t\t\treturn this.appendCharacters(table, data);\n\t\t}\n\t\tvar text = new Characters(this.tokenizer, data);\n\t\tvar parent = table.parentNode;\n\t\tif (parent) {\n\t\t\tparent.insertBetween(text, table.previousSibling, table);\n\t\t\treturn;\n\t\t}\n\t\tvar stackParent = this.openElements.item(tableIndex - 1).node;\n\t\tstackParent.appendChild(text);\n\t\treturn;\n\t}\n\tthis.appendCharacters(this.currentStackItem().node, data);\n};\n\nSAXTreeBuilder.prototype.attachNode = function(node, parent) {\n\tparent.appendChild(node);\n};\n\nSAXTreeBuilder.prototype.attachNodeToFosterParent = function(child, table, stackParent) {\n\tvar parent = table.parentNode;\n\tif (parent)\n\t\tparent.insertBetween(child, table.previousSibling, table);\n\telse\n\t\tstackParent.appendChild(child);\n};\n\nSAXTreeBuilder.prototype.detachFromParent = function(element) {\n\telement.detach();\n};\n\nSAXTreeBuilder.prototype.reparentChildren = function(oldParent, newParent) {\n\tnewParent.appendChildren(oldParent.firstChild);\n};\n\nSAXTreeBuilder.prototype.getFragment = function() {\n\tvar fragment = new DocumentFragment();\n\tthis.reparentChildren(this.openElements.rootNode, fragment);\n\treturn fragment;\n};\n\nfunction getAttribute(node, name) {\n\tfor (var i = 0; i < node.attributes.length; i++) {\n\t\tvar attribute = node.attributes[i];\n\t\tif (attribute.nodeName === name)\n\t\t\treturn attribute.nodeValue;\n\t}\n}\n\nSAXTreeBuilder.prototype.addAttributesToElement = function(element, attributes) {\n\tfor (var i = 0; i < attributes.length; i++) {\n\t\tvar attribute = attributes[i];\n\t\tif (!getAttribute(element, attribute.nodeName))\n\t\t\telement.attributes.push(attribute);\n\t}\n};\n\nvar NodeType = {\n\tCDATA: 1,\n\tCHARACTERS: 2,\n\tCOMMENT: 3,\n\tDOCUMENT: 4,\n\tDOCUMENT_FRAGMENT: 5,\n\tDTD: 6,\n\tELEMENT: 7,\n\tENTITY: 8,\n\tIGNORABLE_WHITESPACE: 9,\n\tPROCESSING_INSTRUCTION: 10,\n\tSKIPPED_ENTITY: 11\n};\nfunction Node(locator) {\n\tif (!locator) {\n\t\tthis.columnNumber = -1;\n\t\tthis.lineNumber = -1;\n\t} else {\n\t\tthis.columnNumber = locator.columnNumber;\n\t\tthis.lineNumber = locator.lineNumber;\n\t}\n\tthis.parentNode = null;\n\tthis.nextSibling = null;\n\tthis.firstChild = null;\n}\nNode.prototype.visit = function(treeParser) {\n\tthrow new Error(\"Not Implemented\");\n};\nNode.prototype.revisit = function(treeParser) {\n\treturn;\n};\nNode.prototype.detach = function() {\n\tif (this.parentNode !== null) {\n\t\tthis.parentNode.removeChild(this);\n\t\tthis.parentNode = null;\n\t}\n};\n\nObject.defineProperty(Node.prototype, 'previousSibling', {\n\tget: function() {\n\t\tvar prev = null;\n\t\tvar next = this.parentNode.firstChild;\n\t\tfor(;;) {\n\t\t\tif (this == next) {\n\t\t\t\treturn prev;\n\t\t\t}\n\t\t\tprev = next;\n\t\t\tnext = next.nextSibling;\n\t\t}\n\t}\n});\n\n\nfunction ParentNode(locator) {\n\tNode.call(this, locator);\n\tthis.lastChild = null;\n\tthis._endLocator = null;\n}\n\nParentNode.prototype = Object.create(Node.prototype);\nParentNode.prototype.insertBefore = function(child, sibling) {\n\tif (!sibling) {\n\t\treturn this.appendChild(child);\n\t}\n\tchild.detach();\n\tchild.parentNode = this;\n\tif (this.firstChild == sibling) {\n\t\tchild.nextSibling = sibling;\n\t\tthis.firstChild = child;\n\t} else {\n\t\tvar prev = this.firstChild;\n\t\tvar next = this.firstChild.nextSibling;\n\t\twhile (next != sibling) {\n\t\t\tprev = next;\n\t\t\tnext = next.nextSibling;\n\t\t}\n\t\tprev.nextSibling = child;\n\t\tchild.nextSibling = next;\n\t}\n\treturn child;\n};\n\nParentNode.prototype.insertBetween = function(child, prev, next) {\n\tif (!next) {\n\t\treturn this.appendChild(child);\n\t}\n\tchild.detach();\n\tchild.parentNode = this;\n\tchild.nextSibling = next;\n\tif (!prev) {\n\t\tfirstChild = child;\n\t} else {\n\t\tprev.nextSibling = child;\n\t}\n\treturn child;\n};\nParentNode.prototype.appendChild = function(child) {\n\tchild.detach();\n\tchild.parentNode = this;\n\tif (!this.firstChild) {\n\t\tthis.firstChild = child;\n\t} else {\n\t\tthis.lastChild.nextSibling = child;\n\t}\n\tthis.lastChild = child;\n\treturn child;\n};\nParentNode.prototype.appendChildren = function(parent) {\n\tvar child = parent.firstChild;\n\tif (!child) {\n\t\treturn;\n\t}\n\tvar another = parent;\n\tif (!this.firstChild) {\n\t\tthis.firstChild = child;\n\t} else {\n\t\tthis.lastChild.nextSibling = child;\n\t}\n\tthis.lastChild = another.lastChild;\n\tdo {\n\t\tchild.parentNode = this;\n\t} while ((child = child.nextSibling));\n\tanother.firstChild = null;\n\tanother.lastChild = null;\n};\nParentNode.prototype.removeChild = function(node) {\n\tif (this.firstChild == node) {\n\t\tthis.firstChild = node.nextSibling;\n\t\tif (this.lastChild == node) {\n\t\t\tthis.lastChild = null;\n\t\t}\n\t} else {\n\t\tvar prev = this.firstChild;\n\t\tvar next = this.firstChild.nextSibling;\n\t\twhile (next != node) {\n\t\t\tprev = next;\n\t\t\tnext = next.nextSibling;\n\t\t}\n\t\tprev.nextSibling = node.nextSibling;\n\t\tif (this.lastChild == node) {\n\t\t\tthis.lastChild = prev;\n\t\t}\n\t}\n\tnode.parentNode = null;\n\treturn node;\n};\n\nObject.defineProperty(ParentNode.prototype, 'endLocator', {\n\tget: function() {\n\t\treturn this._endLocator;\n\t},\n\tset: function(endLocator) {\n\t\tthis._endLocator = {\n\t\t\tlineNumber: endLocator.lineNumber,\n\t\t\tcolumnNumber: endLocator.columnNumber\n\t\t};\n\t}\n});\nfunction Document (locator) {\n\tParentNode.call(this, locator);\n\tthis.nodeType = NodeType.DOCUMENT;\n}\n\nDocument.prototype = Object.create(ParentNode.prototype);\nDocument.prototype.visit = function(treeParser) {\n\ttreeParser.startDocument(this);\n};\nDocument.prototype.revisit = function(treeParser) {\n\ttreeParser.endDocument(this.endLocator);\n};\nfunction DocumentFragment() {\n\tParentNode.call(this, new Locator());\n\tthis.nodeType = NodeType.DOCUMENT_FRAGMENT;\n}\n\nDocumentFragment.prototype = Object.create(ParentNode.prototype);\nDocumentFragment.prototype.visit = function(treeParser) {\n};\nfunction Element(locator, uri, localName, qName, atts, prefixMappings) {\n\tParentNode.call(this, locator);\n\tthis.uri = uri;\n\tthis.localName = localName;\n\tthis.qName = qName;\n\tthis.attributes = atts;\n\tthis.prefixMappings = prefixMappings;\n\tthis.nodeType = NodeType.ELEMENT;\n}\n\nElement.prototype = Object.create(ParentNode.prototype);\nElement.prototype.visit = function(treeParser) {\n\tif (this.prefixMappings) {\n\t\tfor (var key in prefixMappings) {\n\t\t\tvar mapping = prefixMappings[key];\n\t\t\ttreeParser.startPrefixMapping(mapping.getPrefix(),\n\t\t\t\t\tmapping.getUri(), this);\n\t\t}\n\t}\n\ttreeParser.startElement(this.uri, this.localName, this.qName, this.attributes, this);\n};\nElement.prototype.revisit = function(treeParser) {\n\ttreeParser.endElement(this.uri, this.localName, this.qName, this.endLocator);\n\tif (this.prefixMappings) {\n\t\tfor (var key in prefixMappings) {\n\t\t\tvar mapping = prefixMappings[key];\n\t\t\ttreeParser.endPrefixMapping(mapping.getPrefix(), this.endLocator);\n\t\t}\n\t}\n};\nfunction Characters(locator, data){\n\tNode.call(this, locator);\n\tthis.data = data;\n\tthis.nodeType = NodeType.CHARACTERS;\n}\n\nCharacters.prototype = Object.create(Node.prototype);\nCharacters.prototype.visit = function (treeParser) {\n\ttreeParser.characters(this.data, 0, this.data.length, this);\n};\nfunction IgnorableWhitespace(locator, data) {\n\tNode.call(this, locator);\n\tthis.data = data;\n\tthis.nodeType = NodeType.IGNORABLE_WHITESPACE;\n}\n\nIgnorableWhitespace.prototype = Object.create(Node.prototype);\nIgnorableWhitespace.prototype.visit = function(treeParser) {\n\ttreeParser.ignorableWhitespace(this.data, 0, this.data.length, this);\n};\nfunction Comment(locator, data) {\n\tNode.call(this, locator);\n\tthis.data = data;\n\tthis.nodeType = NodeType.COMMENT;\n}\n\nComment.prototype = Object.create(Node.prototype);\nComment.prototype.visit = function(treeParser) {\n\ttreeParser.comment(this.data, 0, this.data.length, this);\n};\nfunction CDATA(locator) {\n\tParentNode.call(this, locator);\n\tthis.nodeType = NodeType.CDATA;\n}\n\nCDATA.prototype = Object.create(ParentNode.prototype);\nCDATA.prototype.visit = function(treeParser) {\n\ttreeParser.startCDATA(this);\n};\nCDATA.prototype.revisit = function(treeParser) {\n\ttreeParser.endCDATA(this.endLocator);\n};\nfunction Entity(name) {\n\tParentNode.call(this);\n\tthis.name = name;\n\tthis.nodeType = NodeType.ENTITY;\n}\n\nEntity.prototype = Object.create(ParentNode.prototype);\nEntity.prototype.visit = function(treeParser) {\n\ttreeParser.startEntity(this.name, this);\n};\nEntity.prototype.revisit = function(treeParser) {\n\ttreeParser.endEntity(this.name);\n};\n\nfunction SkippedEntity(name) {\n\tNode.call(this);\n\tthis.name = name;\n\tthis.nodeType = NodeType.SKIPPED_ENTITY;\n}\n\nSkippedEntity.prototype = Object.create(Node.prototype);\nSkippedEntity.prototype.visit = function(treeParser) {\n\ttreeParser.skippedEntity(this.name, this);\n};\nfunction ProcessingInstruction(target, data) {\n\tNode.call(this);\n\tthis.target = target;\n\tthis.data = data;\n}\n\nProcessingInstruction.prototype = Object.create(Node.prototype);\nProcessingInstruction.prototype.visit = function(treeParser) {\n\ttreeParser.processingInstruction(this.target, this.data, this);\n};\nProcessingInstruction.prototype.getNodeType = function() {\n\treturn NodeType.PROCESSING_INSTRUCTION;\n};\nfunction DTD(name, publicIdentifier, systemIdentifier) {\n\tParentNode.call(this);\n\tthis.name = name;\n\tthis.publicIdentifier = publicIdentifier;\n\tthis.systemIdentifier = systemIdentifier;\n\tthis.nodeType = NodeType.DTD;\n}\n\nDTD.prototype = Object.create(ParentNode.prototype);\nDTD.prototype.visit = function(treeParser) {\n\ttreeParser.startDTD(this.name, this.publicIdentifier, this.systemIdentifier, this);\n};\nDTD.prototype.revisit = function(treeParser) {\n\ttreeParser.endDTD();\n};\n\nexports.SAXTreeBuilder = SAXTreeBuilder;\n\n},\n{\"../TreeBuilder\":6,\"util\":20}],\n11:[function(_dereq_,module,exports){\nfunction TreeParser(contentHandler, lexicalHandler){\n\tthis.contentHandler;\n\tthis.lexicalHandler;\n\tthis.locatorDelegate;\n\n\tif (!contentHandler) {\n\t\tthrow new IllegalArgumentException(\"contentHandler was null.\");\n\t}\n\tthis.contentHandler = contentHandler;\n\tif (!lexicalHandler) {\n\t\tthis.lexicalHandler = new NullLexicalHandler();\n\t} else {\n\t\tthis.lexicalHandler = lexicalHandler;\n\t}\n}\nTreeParser.prototype.parse = function(node) {\n\tthis.contentHandler.documentLocator = this;\n\tvar current = node;\n\tvar next;\n\tfor (;;) {\n\t\tcurrent.visit(this);\n\t\tif (next = current.firstChild) {\n\t\t\tcurrent = next;\n\t\t\tcontinue;\n\t\t}\n\t\tfor (;;) {\n\t\t\tcurrent.revisit(this);\n\t\t\tif (current == node) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (next = current.nextSibling) {\n\t\t\t\tcurrent = next;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcurrent = current.parentNode;\n\t\t}\n\t}\n};\nTreeParser.prototype.characters = function(ch, start, length, locator) {\n\tthis.locatorDelegate = locator;\n\tthis.contentHandler.characters(ch, start, length);\n};\nTreeParser.prototype.endDocument = function(locator) {\n\tthis.locatorDelegate = locator;\n\tthis.contentHandler.endDocument();\n};\nTreeParser.prototype.endElement = function(uri, localName, qName, locator) {\n\tthis.locatorDelegate = locator;\n\tthis.contentHandler.endElement(uri, localName, qName);\n};\nTreeParser.prototype.endPrefixMapping = function(prefix, locator) {\n\tthis.locatorDelegate = locator;\n\tthis.contentHandler.endPrefixMapping(prefix);\n};\nTreeParser.prototype.ignorableWhitespace = function(ch, start, length, locator) {\n\tthis.locatorDelegate = locator;\n\tthis.contentHandler.ignorableWhitespace(ch, start, length);\n};\nTreeParser.prototype.processingInstruction = function(target, data, locator) {\n\tthis.locatorDelegate = locator;\n\tthis.contentHandler.processingInstruction(target, data);\n};\nTreeParser.prototype.skippedEntity = function(name, locator) {\n\tthis.locatorDelegate = locator;\n\tthis.contentHandler.skippedEntity(name);\n};\nTreeParser.prototype.startDocument = function(locator) {\n\tthis.locatorDelegate = locator;\n\tthis.contentHandler.startDocument();\n};\nTreeParser.prototype.startElement = function(uri, localName, qName, atts, locator) {\n\tthis.locatorDelegate = locator;\n\tthis.contentHandler.startElement(uri, localName, qName, atts);\n};\nTreeParser.prototype.startPrefixMapping = function(prefix, uri, locator) {\n\tthis.locatorDelegate = locator;\n\tthis.contentHandler.startPrefixMapping(prefix, uri);\n};\nTreeParser.prototype.comment = function(ch, start, length, locator) {\n\tthis.locatorDelegate = locator;\n\tthis.lexicalHandler.comment(ch, start, length);\n};\nTreeParser.prototype.endCDATA = function(locator) {\n\tthis.locatorDelegate = locator;\n\tthis.lexicalHandler.endCDATA();\n};\nTreeParser.prototype.endDTD = function(locator) {\n\tthis.locatorDelegate = locator;\n\tthis.lexicalHandler.endDTD();\n};\nTreeParser.prototype.endEntity = function(name, locator) {\n\tthis.locatorDelegate = locator;\n\tthis.lexicalHandler.endEntity(name);\n};\nTreeParser.prototype.startCDATA = function(locator) {\n\tthis.locatorDelegate = locator;\n\tthis.lexicalHandler.startCDATA();\n};\nTreeParser.prototype.startDTD = function(name, publicId, systemId, locator) {\n\tthis.locatorDelegate = locator;\n\tthis.lexicalHandler.startDTD(name, publicId, systemId);\n};\nTreeParser.prototype.startEntity = function(name, locator) {\n\tthis.locatorDelegate = locator;\n\tthis.lexicalHandler.startEntity(name);\n};\n\nObject.defineProperty(TreeParser.prototype, 'columnNumber', {\n\tget: function() {\n\t\tif (!this.locatorDelegate)\n\t\t\treturn -1;\n\t\telse\n\t\t\treturn this.locatorDelegate.columnNumber;\n\t}\n});\n\nObject.defineProperty(TreeParser.prototype, 'lineNumber', {\n\tget: function() {\n\t\tif (!this.locatorDelegate)\n\t\t\treturn -1;\n\t\telse\n\t\t\treturn this.locatorDelegate.lineNumber;\n\t}\n});\nfunction NullLexicalHandler() {\n\n}\n\nNullLexicalHandler.prototype.comment = function() {};\nNullLexicalHandler.prototype.endCDATA = function() {};\nNullLexicalHandler.prototype.endDTD = function() {};\nNullLexicalHandler.prototype.endEntity = function() {};\nNullLexicalHandler.prototype.startCDATA = function() {};\nNullLexicalHandler.prototype.startDTD = function() {};\nNullLexicalHandler.prototype.startEntity = function() {};\n\nexports.TreeParser = TreeParser;\n\n},\n{}],\n12:[function(_dereq_,module,exports){\nmodule.exports = {\n\t\"Aacute;\": \"\\u00C1\",\n\t\"Aacute\": \"\\u00C1\",\n\t\"aacute;\": \"\\u00E1\",\n\t\"aacute\": \"\\u00E1\",\n\t\"Abreve;\": \"\\u0102\",\n\t\"abreve;\": \"\\u0103\",\n\t\"ac;\": \"\\u223E\",\n\t\"acd;\": \"\\u223F\",\n\t\"acE;\": \"\\u223E\\u0333\",\n\t\"Acirc;\": \"\\u00C2\",\n\t\"Acirc\": \"\\u00C2\",\n\t\"acirc;\": \"\\u00E2\",\n\t\"acirc\": \"\\u00E2\",\n\t\"acute;\": \"\\u00B4\",\n\t\"acute\": \"\\u00B4\",\n\t\"Acy;\": \"\\u0410\",\n\t\"acy;\": \"\\u0430\",\n\t\"AElig;\": \"\\u00C6\",\n\t\"AElig\": \"\\u00C6\",\n\t\"aelig;\": \"\\u00E6\",\n\t\"aelig\": \"\\u00E6\",\n\t\"af;\": \"\\u2061\",\n\t\"Afr;\": \"\\uD835\\uDD04\",\n\t\"afr;\": \"\\uD835\\uDD1E\",\n\t\"Agrave;\": \"\\u00C0\",\n\t\"Agrave\": \"\\u00C0\",\n\t\"agrave;\": \"\\u00E0\",\n\t\"agrave\": \"\\u00E0\",\n\t\"alefsym;\": \"\\u2135\",\n\t\"aleph;\": \"\\u2135\",\n\t\"Alpha;\": \"\\u0391\",\n\t\"alpha;\": \"\\u03B1\",\n\t\"Amacr;\": \"\\u0100\",\n\t\"amacr;\": \"\\u0101\",\n\t\"amalg;\": \"\\u2A3F\",\n\t\"amp;\": \"\\u0026\",\n\t\"amp\": \"\\u0026\",\n\t\"AMP;\": \"\\u0026\",\n\t\"AMP\": \"\\u0026\",\n\t\"andand;\": \"\\u2A55\",\n\t\"And;\": \"\\u2A53\",\n\t\"and;\": \"\\u2227\",\n\t\"andd;\": \"\\u2A5C\",\n\t\"andslope;\": \"\\u2A58\",\n\t\"andv;\": \"\\u2A5A\",\n\t\"ang;\": \"\\u2220\",\n\t\"ange;\": \"\\u29A4\",\n\t\"angle;\": \"\\u2220\",\n\t\"angmsdaa;\": \"\\u29A8\",\n\t\"angmsdab;\": \"\\u29A9\",\n\t\"angmsdac;\": \"\\u29AA\",\n\t\"angmsdad;\": \"\\u29AB\",\n\t\"angmsdae;\": \"\\u29AC\",\n\t\"angmsdaf;\": \"\\u29AD\",\n\t\"angmsdag;\": \"\\u29AE\",\n\t\"angmsdah;\": \"\\u29AF\",\n\t\"angmsd;\": \"\\u2221\",\n\t\"angrt;\": \"\\u221F\",\n\t\"angrtvb;\": \"\\u22BE\",\n\t\"angrtvbd;\": \"\\u299D\",\n\t\"angsph;\": \"\\u2222\",\n\t\"angst;\": \"\\u00C5\",\n\t\"angzarr;\": \"\\u237C\",\n\t\"Aogon;\": \"\\u0104\",\n\t\"aogon;\": \"\\u0105\",\n\t\"Aopf;\": \"\\uD835\\uDD38\",\n\t\"aopf;\": \"\\uD835\\uDD52\",\n\t\"apacir;\": \"\\u2A6F\",\n\t\"ap;\": \"\\u2248\",\n\t\"apE;\": \"\\u2A70\",\n\t\"ape;\": \"\\u224A\",\n\t\"apid;\": \"\\u224B\",\n\t\"apos;\": \"\\u0027\",\n\t\"ApplyFunction;\": \"\\u2061\",\n\t\"approx;\": \"\\u2248\",\n\t\"approxeq;\": \"\\u224A\",\n\t\"Aring;\": \"\\u00C5\",\n\t\"Aring\": \"\\u00C5\",\n\t\"aring;\": \"\\u00E5\",\n\t\"aring\": \"\\u00E5\",\n\t\"Ascr;\": \"\\uD835\\uDC9C\",\n\t\"ascr;\": \"\\uD835\\uDCB6\",\n\t\"Assign;\": \"\\u2254\",\n\t\"ast;\": \"\\u002A\",\n\t\"asymp;\": \"\\u2248\",\n\t\"asympeq;\": \"\\u224D\",\n\t\"Atilde;\": \"\\u00C3\",\n\t\"Atilde\": \"\\u00C3\",\n\t\"atilde;\": \"\\u00E3\",\n\t\"atilde\": \"\\u00E3\",\n\t\"Auml;\": \"\\u00C4\",\n\t\"Auml\": \"\\u00C4\",\n\t\"auml;\": \"\\u00E4\",\n\t\"auml\": \"\\u00E4\",\n\t\"awconint;\": \"\\u2233\",\n\t\"awint;\": \"\\u2A11\",\n\t\"backcong;\": \"\\u224C\",\n\t\"backepsilon;\": \"\\u03F6\",\n\t\"backprime;\": \"\\u2035\",\n\t\"backsim;\": \"\\u223D\",\n\t\"backsimeq;\": \"\\u22CD\",\n\t\"Backslash;\": \"\\u2216\",\n\t\"Barv;\": \"\\u2AE7\",\n\t\"barvee;\": \"\\u22BD\",\n\t\"barwed;\": \"\\u2305\",\n\t\"Barwed;\": \"\\u2306\",\n\t\"barwedge;\": \"\\u2305\",\n\t\"bbrk;\": \"\\u23B5\",\n\t\"bbrktbrk;\": \"\\u23B6\",\n\t\"bcong;\": \"\\u224C\",\n\t\"Bcy;\": \"\\u0411\",\n\t\"bcy;\": \"\\u0431\",\n\t\"bdquo;\": \"\\u201E\",\n\t\"becaus;\": \"\\u2235\",\n\t\"because;\": \"\\u2235\",\n\t\"Because;\": \"\\u2235\",\n\t\"bemptyv;\": \"\\u29B0\",\n\t\"bepsi;\": \"\\u03F6\",\n\t\"bernou;\": \"\\u212C\",\n\t\"Bernoullis;\": \"\\u212C\",\n\t\"Beta;\": \"\\u0392\",\n\t\"beta;\": \"\\u03B2\",\n\t\"beth;\": \"\\u2136\",\n\t\"between;\": \"\\u226C\",\n\t\"Bfr;\": \"\\uD835\\uDD05\",\n\t\"bfr;\": \"\\uD835\\uDD1F\",\n\t\"bigcap;\": \"\\u22C2\",\n\t\"bigcirc;\": \"\\u25EF\",\n\t\"bigcup;\": \"\\u22C3\",\n\t\"bigodot;\": \"\\u2A00\",\n\t\"bigoplus;\": \"\\u2A01\",\n\t\"bigotimes;\": \"\\u2A02\",\n\t\"bigsqcup;\": \"\\u2A06\",\n\t\"bigstar;\": \"\\u2605\",\n\t\"bigtriangledown;\": \"\\u25BD\",\n\t\"bigtriangleup;\": \"\\u25B3\",\n\t\"biguplus;\": \"\\u2A04\",\n\t\"bigvee;\": \"\\u22C1\",\n\t\"bigwedge;\": \"\\u22C0\",\n\t\"bkarow;\": \"\\u290D\",\n\t\"blacklozenge;\": \"\\u29EB\",\n\t\"blacksquare;\": \"\\u25AA\",\n\t\"blacktriangle;\": \"\\u25B4\",\n\t\"blacktriangledown;\": \"\\u25BE\",\n\t\"blacktriangleleft;\": \"\\u25C2\",\n\t\"blacktriangleright;\": \"\\u25B8\",\n\t\"blank;\": \"\\u2423\",\n\t\"blk12;\": \"\\u2592\",\n\t\"blk14;\": \"\\u2591\",\n\t\"blk34;\": \"\\u2593\",\n\t\"block;\": \"\\u2588\",\n\t\"bne;\": \"\\u003D\\u20E5\",\n\t\"bnequiv;\": \"\\u2261\\u20E5\",\n\t\"bNot;\": \"\\u2AED\",\n\t\"bnot;\": \"\\u2310\",\n\t\"Bopf;\": \"\\uD835\\uDD39\",\n\t\"bopf;\": \"\\uD835\\uDD53\",\n\t\"bot;\": \"\\u22A5\",\n\t\"bottom;\": \"\\u22A5\",\n\t\"bowtie;\": \"\\u22C8\",\n\t\"boxbox;\": \"\\u29C9\",\n\t\"boxdl;\": \"\\u2510\",\n\t\"boxdL;\": \"\\u2555\",\n\t\"boxDl;\": \"\\u2556\",\n\t\"boxDL;\": \"\\u2557\",\n\t\"boxdr;\": \"\\u250C\",\n\t\"boxdR;\": \"\\u2552\",\n\t\"boxDr;\": \"\\u2553\",\n\t\"boxDR;\": \"\\u2554\",\n\t\"boxh;\": \"\\u2500\",\n\t\"boxH;\": \"\\u2550\",\n\t\"boxhd;\": \"\\u252C\",\n\t\"boxHd;\": \"\\u2564\",\n\t\"boxhD;\": \"\\u2565\",\n\t\"boxHD;\": \"\\u2566\",\n\t\"boxhu;\": \"\\u2534\",\n\t\"boxHu;\": \"\\u2567\",\n\t\"boxhU;\": \"\\u2568\",\n\t\"boxHU;\": \"\\u2569\",\n\t\"boxminus;\": \"\\u229F\",\n\t\"boxplus;\": \"\\u229E\",\n\t\"boxtimes;\": \"\\u22A0\",\n\t\"boxul;\": \"\\u2518\",\n\t\"boxuL;\": \"\\u255B\",\n\t\"boxUl;\": \"\\u255C\",\n\t\"boxUL;\": \"\\u255D\",\n\t\"boxur;\": \"\\u2514\",\n\t\"boxuR;\": \"\\u2558\",\n\t\"boxUr;\": \"\\u2559\",\n\t\"boxUR;\": \"\\u255A\",\n\t\"boxv;\": \"\\u2502\",\n\t\"boxV;\": \"\\u2551\",\n\t\"boxvh;\": \"\\u253C\",\n\t\"boxvH;\": \"\\u256A\",\n\t\"boxVh;\": \"\\u256B\",\n\t\"boxVH;\": \"\\u256C\",\n\t\"boxvl;\": \"\\u2524\",\n\t\"boxvL;\": \"\\u2561\",\n\t\"boxVl;\": \"\\u2562\",\n\t\"boxVL;\": \"\\u2563\",\n\t\"boxvr;\": \"\\u251C\",\n\t\"boxvR;\": \"\\u255E\",\n\t\"boxVr;\": \"\\u255F\",\n\t\"boxVR;\": \"\\u2560\",\n\t\"bprime;\": \"\\u2035\",\n\t\"breve;\": \"\\u02D8\",\n\t\"Breve;\": \"\\u02D8\",\n\t\"brvbar;\": \"\\u00A6\",\n\t\"brvbar\": \"\\u00A6\",\n\t\"bscr;\": \"\\uD835\\uDCB7\",\n\t\"Bscr;\": \"\\u212C\",\n\t\"bsemi;\": \"\\u204F\",\n\t\"bsim;\": \"\\u223D\",\n\t\"bsime;\": \"\\u22CD\",\n\t\"bsolb;\": \"\\u29C5\",\n\t\"bsol;\": \"\\u005C\",\n\t\"bsolhsub;\": \"\\u27C8\",\n\t\"bull;\": \"\\u2022\",\n\t\"bullet;\": \"\\u2022\",\n\t\"bump;\": \"\\u224E\",\n\t\"bumpE;\": \"\\u2AAE\",\n\t\"bumpe;\": \"\\u224F\",\n\t\"Bumpeq;\": \"\\u224E\",\n\t\"bumpeq;\": \"\\u224F\",\n\t\"Cacute;\": \"\\u0106\",\n\t\"cacute;\": \"\\u0107\",\n\t\"capand;\": \"\\u2A44\",\n\t\"capbrcup;\": \"\\u2A49\",\n\t\"capcap;\": \"\\u2A4B\",\n\t\"cap;\": \"\\u2229\",\n\t\"Cap;\": \"\\u22D2\",\n\t\"capcup;\": \"\\u2A47\",\n\t\"capdot;\": \"\\u2A40\",\n\t\"CapitalDifferentialD;\": \"\\u2145\",\n\t\"caps;\": \"\\u2229\\uFE00\",\n\t\"caret;\": \"\\u2041\",\n\t\"caron;\": \"\\u02C7\",\n\t\"Cayleys;\": \"\\u212D\",\n\t\"ccaps;\": \"\\u2A4D\",\n\t\"Ccaron;\": \"\\u010C\",\n\t\"ccaron;\": \"\\u010D\",\n\t\"Ccedil;\": \"\\u00C7\",\n\t\"Ccedil\": \"\\u00C7\",\n\t\"ccedil;\": \"\\u00E7\",\n\t\"ccedil\": \"\\u00E7\",\n\t\"Ccirc;\": \"\\u0108\",\n\t\"ccirc;\": \"\\u0109\",\n\t\"Cconint;\": \"\\u2230\",\n\t\"ccups;\": \"\\u2A4C\",\n\t\"ccupssm;\": \"\\u2A50\",\n\t\"Cdot;\": \"\\u010A\",\n\t\"cdot;\": \"\\u010B\",\n\t\"cedil;\": \"\\u00B8\",\n\t\"cedil\": \"\\u00B8\",\n\t\"Cedilla;\": \"\\u00B8\",\n\t\"cemptyv;\": \"\\u29B2\",\n\t\"cent;\": \"\\u00A2\",\n\t\"cent\": \"\\u00A2\",\n\t\"centerdot;\": \"\\u00B7\",\n\t\"CenterDot;\": \"\\u00B7\",\n\t\"cfr;\": \"\\uD835\\uDD20\",\n\t\"Cfr;\": \"\\u212D\",\n\t\"CHcy;\": \"\\u0427\",\n\t\"chcy;\": \"\\u0447\",\n\t\"check;\": \"\\u2713\",\n\t\"checkmark;\": \"\\u2713\",\n\t\"Chi;\": \"\\u03A7\",\n\t\"chi;\": \"\\u03C7\",\n\t\"circ;\": \"\\u02C6\",\n\t\"circeq;\": \"\\u2257\",\n\t\"circlearrowleft;\": \"\\u21BA\",\n\t\"circlearrowright;\": \"\\u21BB\",\n\t\"circledast;\": \"\\u229B\",\n\t\"circledcirc;\": \"\\u229A\",\n\t\"circleddash;\": \"\\u229D\",\n\t\"CircleDot;\": \"\\u2299\",\n\t\"circledR;\": \"\\u00AE\",\n\t\"circledS;\": \"\\u24C8\",\n\t\"CircleMinus;\": \"\\u2296\",\n\t\"CirclePlus;\": \"\\u2295\",\n\t\"CircleTimes;\": \"\\u2297\",\n\t\"cir;\": \"\\u25CB\",\n\t\"cirE;\": \"\\u29C3\",\n\t\"cire;\": \"\\u2257\",\n\t\"cirfnint;\": \"\\u2A10\",\n\t\"cirmid;\": \"\\u2AEF\",\n\t\"cirscir;\": \"\\u29C2\",\n\t\"ClockwiseContourIntegral;\": \"\\u2232\",\n\t\"CloseCurlyDoubleQuote;\": \"\\u201D\",\n\t\"CloseCurlyQuote;\": \"\\u2019\",\n\t\"clubs;\": \"\\u2663\",\n\t\"clubsuit;\": \"\\u2663\",\n\t\"colon;\": \"\\u003A\",\n\t\"Colon;\": \"\\u2237\",\n\t\"Colone;\": \"\\u2A74\",\n\t\"colone;\": \"\\u2254\",\n\t\"coloneq;\": \"\\u2254\",\n\t\"comma;\": \"\\u002C\",\n\t\"commat;\": \"\\u0040\",\n\t\"comp;\": \"\\u2201\",\n\t\"compfn;\": \"\\u2218\",\n\t\"complement;\": \"\\u2201\",\n\t\"complexes;\": \"\\u2102\",\n\t\"cong;\": \"\\u2245\",\n\t\"congdot;\": \"\\u2A6D\",\n\t\"Congruent;\": \"\\u2261\",\n\t\"conint;\": \"\\u222E\",\n\t\"Conint;\": \"\\u222F\",\n\t\"ContourIntegral;\": \"\\u222E\",\n\t\"copf;\": \"\\uD835\\uDD54\",\n\t\"Copf;\": \"\\u2102\",\n\t\"coprod;\": \"\\u2210\",\n\t\"Coproduct;\": \"\\u2210\",\n\t\"copy;\": \"\\u00A9\",\n\t\"copy\": \"\\u00A9\",\n\t\"COPY;\": \"\\u00A9\",\n\t\"COPY\": \"\\u00A9\",\n\t\"copysr;\": \"\\u2117\",\n\t\"CounterClockwiseContourIntegral;\": \"\\u2233\",\n\t\"crarr;\": \"\\u21B5\",\n\t\"cross;\": \"\\u2717\",\n\t\"Cross;\": \"\\u2A2F\",\n\t\"Cscr;\": \"\\uD835\\uDC9E\",\n\t\"cscr;\": \"\\uD835\\uDCB8\",\n\t\"csub;\": \"\\u2ACF\",\n\t\"csube;\": \"\\u2AD1\",\n\t\"csup;\": \"\\u2AD0\",\n\t\"csupe;\": \"\\u2AD2\",\n\t\"ctdot;\": \"\\u22EF\",\n\t\"cudarrl;\": \"\\u2938\",\n\t\"cudarrr;\": \"\\u2935\",\n\t\"cuepr;\": \"\\u22DE\",\n\t\"cuesc;\": \"\\u22DF\",\n\t\"cularr;\": \"\\u21B6\",\n\t\"cularrp;\": \"\\u293D\",\n\t\"cupbrcap;\": \"\\u2A48\",\n\t\"cupcap;\": \"\\u2A46\",\n\t\"CupCap;\": \"\\u224D\",\n\t\"cup;\": \"\\u222A\",\n\t\"Cup;\": \"\\u22D3\",\n\t\"cupcup;\": \"\\u2A4A\",\n\t\"cupdot;\": \"\\u228D\",\n\t\"cupor;\": \"\\u2A45\",\n\t\"cups;\": \"\\u222A\\uFE00\",\n\t\"curarr;\": \"\\u21B7\",\n\t\"curarrm;\": \"\\u293C\",\n\t\"curlyeqprec;\": \"\\u22DE\",\n\t\"curlyeqsucc;\": \"\\u22DF\",\n\t\"curlyvee;\": \"\\u22CE\",\n\t\"curlywedge;\": \"\\u22CF\",\n\t\"curren;\": \"\\u00A4\",\n\t\"curren\": \"\\u00A4\",\n\t\"curvearrowleft;\": \"\\u21B6\",\n\t\"curvearrowright;\": \"\\u21B7\",\n\t\"cuvee;\": \"\\u22CE\",\n\t\"cuwed;\": \"\\u22CF\",\n\t\"cwconint;\": \"\\u2232\",\n\t\"cwint;\": \"\\u2231\",\n\t\"cylcty;\": \"\\u232D\",\n\t\"dagger;\": \"\\u2020\",\n\t\"Dagger;\": \"\\u2021\",\n\t\"daleth;\": \"\\u2138\",\n\t\"darr;\": \"\\u2193\",\n\t\"Darr;\": \"\\u21A1\",\n\t\"dArr;\": \"\\u21D3\",\n\t\"dash;\": \"\\u2010\",\n\t\"Dashv;\": \"\\u2AE4\",\n\t\"dashv;\": \"\\u22A3\",\n\t\"dbkarow;\": \"\\u290F\",\n\t\"dblac;\": \"\\u02DD\",\n\t\"Dcaron;\": \"\\u010E\",\n\t\"dcaron;\": \"\\u010F\",\n\t\"Dcy;\": \"\\u0414\",\n\t\"dcy;\": \"\\u0434\",\n\t\"ddagger;\": \"\\u2021\",\n\t\"ddarr;\": \"\\u21CA\",\n\t\"DD;\": \"\\u2145\",\n\t\"dd;\": \"\\u2146\",\n\t\"DDotrahd;\": \"\\u2911\",\n\t\"ddotseq;\": \"\\u2A77\",\n\t\"deg;\": \"\\u00B0\",\n\t\"deg\": \"\\u00B0\",\n\t\"Del;\": \"\\u2207\",\n\t\"Delta;\": \"\\u0394\",\n\t\"delta;\": \"\\u03B4\",\n\t\"demptyv;\": \"\\u29B1\",\n\t\"dfisht;\": \"\\u297F\",\n\t\"Dfr;\": \"\\uD835\\uDD07\",\n\t\"dfr;\": \"\\uD835\\uDD21\",\n\t\"dHar;\": \"\\u2965\",\n\t\"dharl;\": \"\\u21C3\",\n\t\"dharr;\": \"\\u21C2\",\n\t\"DiacriticalAcute;\": \"\\u00B4\",\n\t\"DiacriticalDot;\": \"\\u02D9\",\n\t\"DiacriticalDoubleAcute;\": \"\\u02DD\",\n\t\"DiacriticalGrave;\": \"\\u0060\",\n\t\"DiacriticalTilde;\": \"\\u02DC\",\n\t\"diam;\": \"\\u22C4\",\n\t\"diamond;\": \"\\u22C4\",\n\t\"Diamond;\": \"\\u22C4\",\n\t\"diamondsuit;\": \"\\u2666\",\n\t\"diams;\": \"\\u2666\",\n\t\"die;\": \"\\u00A8\",\n\t\"DifferentialD;\": \"\\u2146\",\n\t\"digamma;\": \"\\u03DD\",\n\t\"disin;\": \"\\u22F2\",\n\t\"div;\": \"\\u00F7\",\n\t\"divide;\": \"\\u00F7\",\n\t\"divide\": \"\\u00F7\",\n\t\"divideontimes;\": \"\\u22C7\",\n\t\"divonx;\": \"\\u22C7\",\n\t\"DJcy;\": \"\\u0402\",\n\t\"djcy;\": \"\\u0452\",\n\t\"dlcorn;\": \"\\u231E\",\n\t\"dlcrop;\": \"\\u230D\",\n\t\"dollar;\": \"\\u0024\",\n\t\"Dopf;\": \"\\uD835\\uDD3B\",\n\t\"dopf;\": \"\\uD835\\uDD55\",\n\t\"Dot;\": \"\\u00A8\",\n\t\"dot;\": \"\\u02D9\",\n\t\"DotDot;\": \"\\u20DC\",\n\t\"doteq;\": \"\\u2250\",\n\t\"doteqdot;\": \"\\u2251\",\n\t\"DotEqual;\": \"\\u2250\",\n\t\"dotminus;\": \"\\u2238\",\n\t\"dotplus;\": \"\\u2214\",\n\t\"dotsquare;\": \"\\u22A1\",\n\t\"doublebarwedge;\": \"\\u2306\",\n\t\"DoubleContourIntegral;\": \"\\u222F\",\n\t\"DoubleDot;\": \"\\u00A8\",\n\t\"DoubleDownArrow;\": \"\\u21D3\",\n\t\"DoubleLeftArrow;\": \"\\u21D0\",\n\t\"DoubleLeftRightArrow;\": \"\\u21D4\",\n\t\"DoubleLeftTee;\": \"\\u2AE4\",\n\t\"DoubleLongLeftArrow;\": \"\\u27F8\",\n\t\"DoubleLongLeftRightArrow;\": \"\\u27FA\",\n\t\"DoubleLongRightArrow;\": \"\\u27F9\",\n\t\"DoubleRightArrow;\": \"\\u21D2\",\n\t\"DoubleRightTee;\": \"\\u22A8\",\n\t\"DoubleUpArrow;\": \"\\u21D1\",\n\t\"DoubleUpDownArrow;\": \"\\u21D5\",\n\t\"DoubleVerticalBar;\": \"\\u2225\",\n\t\"DownArrowBar;\": \"\\u2913\",\n\t\"downarrow;\": \"\\u2193\",\n\t\"DownArrow;\": \"\\u2193\",\n\t\"Downarrow;\": \"\\u21D3\",\n\t\"DownArrowUpArrow;\": \"\\u21F5\",\n\t\"DownBreve;\": \"\\u0311\",\n\t\"downdownarrows;\": \"\\u21CA\",\n\t\"downharpoonleft;\": \"\\u21C3\",\n\t\"downharpoonright;\": \"\\u21C2\",\n\t\"DownLeftRightVector;\": \"\\u2950\",\n\t\"DownLeftTeeVector;\": \"\\u295E\",\n\t\"DownLeftVectorBar;\": \"\\u2956\",\n\t\"DownLeftVector;\": \"\\u21BD\",\n\t\"DownRightTeeVector;\": \"\\u295F\",\n\t\"DownRightVectorBar;\": \"\\u2957\",\n\t\"DownRightVector;\": \"\\u21C1\",\n\t\"DownTeeArrow;\": \"\\u21A7\",\n\t\"DownTee;\": \"\\u22A4\",\n\t\"drbkarow;\": \"\\u2910\",\n\t\"drcorn;\": \"\\u231F\",\n\t\"drcrop;\": \"\\u230C\",\n\t\"Dscr;\": \"\\uD835\\uDC9F\",\n\t\"dscr;\": \"\\uD835\\uDCB9\",\n\t\"DScy;\": \"\\u0405\",\n\t\"dscy;\": \"\\u0455\",\n\t\"dsol;\": \"\\u29F6\",\n\t\"Dstrok;\": \"\\u0110\",\n\t\"dstrok;\": \"\\u0111\",\n\t\"dtdot;\": \"\\u22F1\",\n\t\"dtri;\": \"\\u25BF\",\n\t\"dtrif;\": \"\\u25BE\",\n\t\"duarr;\": \"\\u21F5\",\n\t\"duhar;\": \"\\u296F\",\n\t\"dwangle;\": \"\\u29A6\",\n\t\"DZcy;\": \"\\u040F\",\n\t\"dzcy;\": \"\\u045F\",\n\t\"dzigrarr;\": \"\\u27FF\",\n\t\"Eacute;\": \"\\u00C9\",\n\t\"Eacute\": \"\\u00C9\",\n\t\"eacute;\": \"\\u00E9\",\n\t\"eacute\": \"\\u00E9\",\n\t\"easter;\": \"\\u2A6E\",\n\t\"Ecaron;\": \"\\u011A\",\n\t\"ecaron;\": \"\\u011B\",\n\t\"Ecirc;\": \"\\u00CA\",\n\t\"Ecirc\": \"\\u00CA\",\n\t\"ecirc;\": \"\\u00EA\",\n\t\"ecirc\": \"\\u00EA\",\n\t\"ecir;\": \"\\u2256\",\n\t\"ecolon;\": \"\\u2255\",\n\t\"Ecy;\": \"\\u042D\",\n\t\"ecy;\": \"\\u044D\",\n\t\"eDDot;\": \"\\u2A77\",\n\t\"Edot;\": \"\\u0116\",\n\t\"edot;\": \"\\u0117\",\n\t\"eDot;\": \"\\u2251\",\n\t\"ee;\": \"\\u2147\",\n\t\"efDot;\": \"\\u2252\",\n\t\"Efr;\": \"\\uD835\\uDD08\",\n\t\"efr;\": \"\\uD835\\uDD22\",\n\t\"eg;\": \"\\u2A9A\",\n\t\"Egrave;\": \"\\u00C8\",\n\t\"Egrave\": \"\\u00C8\",\n\t\"egrave;\": \"\\u00E8\",\n\t\"egrave\": \"\\u00E8\",\n\t\"egs;\": \"\\u2A96\",\n\t\"egsdot;\": \"\\u2A98\",\n\t\"el;\": \"\\u2A99\",\n\t\"Element;\": \"\\u2208\",\n\t\"elinters;\": \"\\u23E7\",\n\t\"ell;\": \"\\u2113\",\n\t\"els;\": \"\\u2A95\",\n\t\"elsdot;\": \"\\u2A97\",\n\t\"Emacr;\": \"\\u0112\",\n\t\"emacr;\": \"\\u0113\",\n\t\"empty;\": \"\\u2205\",\n\t\"emptyset;\": \"\\u2205\",\n\t\"EmptySmallSquare;\": \"\\u25FB\",\n\t\"emptyv;\": \"\\u2205\",\n\t\"EmptyVerySmallSquare;\": \"\\u25AB\",\n\t\"emsp13;\": \"\\u2004\",\n\t\"emsp14;\": \"\\u2005\",\n\t\"emsp;\": \"\\u2003\",\n\t\"ENG;\": \"\\u014A\",\n\t\"eng;\": \"\\u014B\",\n\t\"ensp;\": \"\\u2002\",\n\t\"Eogon;\": \"\\u0118\",\n\t\"eogon;\": \"\\u0119\",\n\t\"Eopf;\": \"\\uD835\\uDD3C\",\n\t\"eopf;\": \"\\uD835\\uDD56\",\n\t\"epar;\": \"\\u22D5\",\n\t\"eparsl;\": \"\\u29E3\",\n\t\"eplus;\": \"\\u2A71\",\n\t\"epsi;\": \"\\u03B5\",\n\t\"Epsilon;\": \"\\u0395\",\n\t\"epsilon;\": \"\\u03B5\",\n\t\"epsiv;\": \"\\u03F5\",\n\t\"eqcirc;\": \"\\u2256\",\n\t\"eqcolon;\": \"\\u2255\",\n\t\"eqsim;\": \"\\u2242\",\n\t\"eqslantgtr;\": \"\\u2A96\",\n\t\"eqslantless;\": \"\\u2A95\",\n\t\"Equal;\": \"\\u2A75\",\n\t\"equals;\": \"\\u003D\",\n\t\"EqualTilde;\": \"\\u2242\",\n\t\"equest;\": \"\\u225F\",\n\t\"Equilibrium;\": \"\\u21CC\",\n\t\"equiv;\": \"\\u2261\",\n\t\"equivDD;\": \"\\u2A78\",\n\t\"eqvparsl;\": \"\\u29E5\",\n\t\"erarr;\": \"\\u2971\",\n\t\"erDot;\": \"\\u2253\",\n\t\"escr;\": \"\\u212F\",\n\t\"Escr;\": \"\\u2130\",\n\t\"esdot;\": \"\\u2250\",\n\t\"Esim;\": \"\\u2A73\",\n\t\"esim;\": \"\\u2242\",\n\t\"Eta;\": \"\\u0397\",\n\t\"eta;\": \"\\u03B7\",\n\t\"ETH;\": \"\\u00D0\",\n\t\"ETH\": \"\\u00D0\",\n\t\"eth;\": \"\\u00F0\",\n\t\"eth\": \"\\u00F0\",\n\t\"Euml;\": \"\\u00CB\",\n\t\"Euml\": \"\\u00CB\",\n\t\"euml;\": \"\\u00EB\",\n\t\"euml\": \"\\u00EB\",\n\t\"euro;\": \"\\u20AC\",\n\t\"excl;\": \"\\u0021\",\n\t\"exist;\": \"\\u2203\",\n\t\"Exists;\": \"\\u2203\",\n\t\"expectation;\": \"\\u2130\",\n\t\"exponentiale;\": \"\\u2147\",\n\t\"ExponentialE;\": \"\\u2147\",\n\t\"fallingdotseq;\": \"\\u2252\",\n\t\"Fcy;\": \"\\u0424\",\n\t\"fcy;\": \"\\u0444\",\n\t\"female;\": \"\\u2640\",\n\t\"ffilig;\": \"\\uFB03\",\n\t\"fflig;\": \"\\uFB00\",\n\t\"ffllig;\": \"\\uFB04\",\n\t\"Ffr;\": \"\\uD835\\uDD09\",\n\t\"ffr;\": \"\\uD835\\uDD23\",\n\t\"filig;\": \"\\uFB01\",\n\t\"FilledSmallSquare;\": \"\\u25FC\",\n\t\"FilledVerySmallSquare;\": \"\\u25AA\",\n\t\"fjlig;\": \"\\u0066\\u006A\",\n\t\"flat;\": \"\\u266D\",\n\t\"fllig;\": \"\\uFB02\",\n\t\"fltns;\": \"\\u25B1\",\n\t\"fnof;\": \"\\u0192\",\n\t\"Fopf;\": \"\\uD835\\uDD3D\",\n\t\"fopf;\": \"\\uD835\\uDD57\",\n\t\"forall;\": \"\\u2200\",\n\t\"ForAll;\": \"\\u2200\",\n\t\"fork;\": \"\\u22D4\",\n\t\"forkv;\": \"\\u2AD9\",\n\t\"Fouriertrf;\": \"\\u2131\",\n\t\"fpartint;\": \"\\u2A0D\",\n\t\"frac12;\": \"\\u00BD\",\n\t\"frac12\": \"\\u00BD\",\n\t\"frac13;\": \"\\u2153\",\n\t\"frac14;\": \"\\u00BC\",\n\t\"frac14\": \"\\u00BC\",\n\t\"frac15;\": \"\\u2155\",\n\t\"frac16;\": \"\\u2159\",\n\t\"frac18;\": \"\\u215B\",\n\t\"frac23;\": \"\\u2154\",\n\t\"frac25;\": \"\\u2156\",\n\t\"frac34;\": \"\\u00BE\",\n\t\"frac34\": \"\\u00BE\",\n\t\"frac35;\": \"\\u2157\",\n\t\"frac38;\": \"\\u215C\",\n\t\"frac45;\": \"\\u2158\",\n\t\"frac56;\": \"\\u215A\",\n\t\"frac58;\": \"\\u215D\",\n\t\"frac78;\": \"\\u215E\",\n\t\"frasl;\": \"\\u2044\",\n\t\"frown;\": \"\\u2322\",\n\t\"fscr;\": \"\\uD835\\uDCBB\",\n\t\"Fscr;\": \"\\u2131\",\n\t\"gacute;\": \"\\u01F5\",\n\t\"Gamma;\": \"\\u0393\",\n\t\"gamma;\": \"\\u03B3\",\n\t\"Gammad;\": \"\\u03DC\",\n\t\"gammad;\": \"\\u03DD\",\n\t\"gap;\": \"\\u2A86\",\n\t\"Gbreve;\": \"\\u011E\",\n\t\"gbreve;\": \"\\u011F\",\n\t\"Gcedil;\": \"\\u0122\",\n\t\"Gcirc;\": \"\\u011C\",\n\t\"gcirc;\": \"\\u011D\",\n\t\"Gcy;\": \"\\u0413\",\n\t\"gcy;\": \"\\u0433\",\n\t\"Gdot;\": \"\\u0120\",\n\t\"gdot;\": \"\\u0121\",\n\t\"ge;\": \"\\u2265\",\n\t\"gE;\": \"\\u2267\",\n\t\"gEl;\": \"\\u2A8C\",\n\t\"gel;\": \"\\u22DB\",\n\t\"geq;\": \"\\u2265\",\n\t\"geqq;\": \"\\u2267\",\n\t\"geqslant;\": \"\\u2A7E\",\n\t\"gescc;\": \"\\u2AA9\",\n\t\"ges;\": \"\\u2A7E\",\n\t\"gesdot;\": \"\\u2A80\",\n\t\"gesdoto;\": \"\\u2A82\",\n\t\"gesdotol;\": \"\\u2A84\",\n\t\"gesl;\": \"\\u22DB\\uFE00\",\n\t\"gesles;\": \"\\u2A94\",\n\t\"Gfr;\": \"\\uD835\\uDD0A\",\n\t\"gfr;\": \"\\uD835\\uDD24\",\n\t\"gg;\": \"\\u226B\",\n\t\"Gg;\": \"\\u22D9\",\n\t\"ggg;\": \"\\u22D9\",\n\t\"gimel;\": \"\\u2137\",\n\t\"GJcy;\": \"\\u0403\",\n\t\"gjcy;\": \"\\u0453\",\n\t\"gla;\": \"\\u2AA5\",\n\t\"gl;\": \"\\u2277\",\n\t\"glE;\": \"\\u2A92\",\n\t\"glj;\": \"\\u2AA4\",\n\t\"gnap;\": \"\\u2A8A\",\n\t\"gnapprox;\": \"\\u2A8A\",\n\t\"gne;\": \"\\u2A88\",\n\t\"gnE;\": \"\\u2269\",\n\t\"gneq;\": \"\\u2A88\",\n\t\"gneqq;\": \"\\u2269\",\n\t\"gnsim;\": \"\\u22E7\",\n\t\"Gopf;\": \"\\uD835\\uDD3E\",\n\t\"gopf;\": \"\\uD835\\uDD58\",\n\t\"grave;\": \"\\u0060\",\n\t\"GreaterEqual;\": \"\\u2265\",\n\t\"GreaterEqualLess;\": \"\\u22DB\",\n\t\"GreaterFullEqual;\": \"\\u2267\",\n\t\"GreaterGreater;\": \"\\u2AA2\",\n\t\"GreaterLess;\": \"\\u2277\",\n\t\"GreaterSlantEqual;\": \"\\u2A7E\",\n\t\"GreaterTilde;\": \"\\u2273\",\n\t\"Gscr;\": \"\\uD835\\uDCA2\",\n\t\"gscr;\": \"\\u210A\",\n\t\"gsim;\": \"\\u2273\",\n\t\"gsime;\": \"\\u2A8E\",\n\t\"gsiml;\": \"\\u2A90\",\n\t\"gtcc;\": \"\\u2AA7\",\n\t\"gtcir;\": \"\\u2A7A\",\n\t\"gt;\": \"\\u003E\",\n\t\"gt\": \"\\u003E\",\n\t\"GT;\": \"\\u003E\",\n\t\"GT\": \"\\u003E\",\n\t\"Gt;\": \"\\u226B\",\n\t\"gtdot;\": \"\\u22D7\",\n\t\"gtlPar;\": \"\\u2995\",\n\t\"gtquest;\": \"\\u2A7C\",\n\t\"gtrapprox;\": \"\\u2A86\",\n\t\"gtrarr;\": \"\\u2978\",\n\t\"gtrdot;\": \"\\u22D7\",\n\t\"gtreqless;\": \"\\u22DB\",\n\t\"gtreqqless;\": \"\\u2A8C\",\n\t\"gtrless;\": \"\\u2277\",\n\t\"gtrsim;\": \"\\u2273\",\n\t\"gvertneqq;\": \"\\u2269\\uFE00\",\n\t\"gvnE;\": \"\\u2269\\uFE00\",\n\t\"Hacek;\": \"\\u02C7\",\n\t\"hairsp;\": \"\\u200A\",\n\t\"half;\": \"\\u00BD\",\n\t\"hamilt;\": \"\\u210B\",\n\t\"HARDcy;\": \"\\u042A\",\n\t\"hardcy;\": \"\\u044A\",\n\t\"harrcir;\": \"\\u2948\",\n\t\"harr;\": \"\\u2194\",\n\t\"hArr;\": \"\\u21D4\",\n\t\"harrw;\": \"\\u21AD\",\n\t\"Hat;\": \"\\u005E\",\n\t\"hbar;\": \"\\u210F\",\n\t\"Hcirc;\": \"\\u0124\",\n\t\"hcirc;\": \"\\u0125\",\n\t\"hearts;\": \"\\u2665\",\n\t\"heartsuit;\": \"\\u2665\",\n\t\"hellip;\": \"\\u2026\",\n\t\"hercon;\": \"\\u22B9\",\n\t\"hfr;\": \"\\uD835\\uDD25\",\n\t\"Hfr;\": \"\\u210C\",\n\t\"HilbertSpace;\": \"\\u210B\",\n\t\"hksearow;\": \"\\u2925\",\n\t\"hkswarow;\": \"\\u2926\",\n\t\"hoarr;\": \"\\u21FF\",\n\t\"homtht;\": \"\\u223B\",\n\t\"hookleftarrow;\": \"\\u21A9\",\n\t\"hookrightarrow;\": \"\\u21AA\",\n\t\"hopf;\": \"\\uD835\\uDD59\",\n\t\"Hopf;\": \"\\u210D\",\n\t\"horbar;\": \"\\u2015\",\n\t\"HorizontalLine;\": \"\\u2500\",\n\t\"hscr;\": \"\\uD835\\uDCBD\",\n\t\"Hscr;\": \"\\u210B\",\n\t\"hslash;\": \"\\u210F\",\n\t\"Hstrok;\": \"\\u0126\",\n\t\"hstrok;\": \"\\u0127\",\n\t\"HumpDownHump;\": \"\\u224E\",\n\t\"HumpEqual;\": \"\\u224F\",\n\t\"hybull;\": \"\\u2043\",\n\t\"hyphen;\": \"\\u2010\",\n\t\"Iacute;\": \"\\u00CD\",\n\t\"Iacute\": \"\\u00CD\",\n\t\"iacute;\": \"\\u00ED\",\n\t\"iacute\": \"\\u00ED\",\n\t\"ic;\": \"\\u2063\",\n\t\"Icirc;\": \"\\u00CE\",\n\t\"Icirc\": \"\\u00CE\",\n\t\"icirc;\": \"\\u00EE\",\n\t\"icirc\": \"\\u00EE\",\n\t\"Icy;\": \"\\u0418\",\n\t\"icy;\": \"\\u0438\",\n\t\"Idot;\": \"\\u0130\",\n\t\"IEcy;\": \"\\u0415\",\n\t\"iecy;\": \"\\u0435\",\n\t\"iexcl;\": \"\\u00A1\",\n\t\"iexcl\": \"\\u00A1\",\n\t\"iff;\": \"\\u21D4\",\n\t\"ifr;\": \"\\uD835\\uDD26\",\n\t\"Ifr;\": \"\\u2111\",\n\t\"Igrave;\": \"\\u00CC\",\n\t\"Igrave\": \"\\u00CC\",\n\t\"igrave;\": \"\\u00EC\",\n\t\"igrave\": \"\\u00EC\",\n\t\"ii;\": \"\\u2148\",\n\t\"iiiint;\": \"\\u2A0C\",\n\t\"iiint;\": \"\\u222D\",\n\t\"iinfin;\": \"\\u29DC\",\n\t\"iiota;\": \"\\u2129\",\n\t\"IJlig;\": \"\\u0132\",\n\t\"ijlig;\": \"\\u0133\",\n\t\"Imacr;\": \"\\u012A\",\n\t\"imacr;\": \"\\u012B\",\n\t\"image;\": \"\\u2111\",\n\t\"ImaginaryI;\": \"\\u2148\",\n\t\"imagline;\": \"\\u2110\",\n\t\"imagpart;\": \"\\u2111\",\n\t\"imath;\": \"\\u0131\",\n\t\"Im;\": \"\\u2111\",\n\t\"imof;\": \"\\u22B7\",\n\t\"imped;\": \"\\u01B5\",\n\t\"Implies;\": \"\\u21D2\",\n\t\"incare;\": \"\\u2105\",\n\t\"in;\": \"\\u2208\",\n\t\"infin;\": \"\\u221E\",\n\t\"infintie;\": \"\\u29DD\",\n\t\"inodot;\": \"\\u0131\",\n\t\"intcal;\": \"\\u22BA\",\n\t\"int;\": \"\\u222B\",\n\t\"Int;\": \"\\u222C\",\n\t\"integers;\": \"\\u2124\",\n\t\"Integral;\": \"\\u222B\",\n\t\"intercal;\": \"\\u22BA\",\n\t\"Intersection;\": \"\\u22C2\",\n\t\"intlarhk;\": \"\\u2A17\",\n\t\"intprod;\": \"\\u2A3C\",\n\t\"InvisibleComma;\": \"\\u2063\",\n\t\"InvisibleTimes;\": \"\\u2062\",\n\t\"IOcy;\": \"\\u0401\",\n\t\"iocy;\": \"\\u0451\",\n\t\"Iogon;\": \"\\u012E\",\n\t\"iogon;\": \"\\u012F\",\n\t\"Iopf;\": \"\\uD835\\uDD40\",\n\t\"iopf;\": \"\\uD835\\uDD5A\",\n\t\"Iota;\": \"\\u0399\",\n\t\"iota;\": \"\\u03B9\",\n\t\"iprod;\": \"\\u2A3C\",\n\t\"iquest;\": \"\\u00BF\",\n\t\"iquest\": \"\\u00BF\",\n\t\"iscr;\": \"\\uD835\\uDCBE\",\n\t\"Iscr;\": \"\\u2110\",\n\t\"isin;\": \"\\u2208\",\n\t\"isindot;\": \"\\u22F5\",\n\t\"isinE;\": \"\\u22F9\",\n\t\"isins;\": \"\\u22F4\",\n\t\"isinsv;\": \"\\u22F3\",\n\t\"isinv;\": \"\\u2208\",\n\t\"it;\": \"\\u2062\",\n\t\"Itilde;\": \"\\u0128\",\n\t\"itilde;\": \"\\u0129\",\n\t\"Iukcy;\": \"\\u0406\",\n\t\"iukcy;\": \"\\u0456\",\n\t\"Iuml;\": \"\\u00CF\",\n\t\"Iuml\": \"\\u00CF\",\n\t\"iuml;\": \"\\u00EF\",\n\t\"iuml\": \"\\u00EF\",\n\t\"Jcirc;\": \"\\u0134\",\n\t\"jcirc;\": \"\\u0135\",\n\t\"Jcy;\": \"\\u0419\",\n\t\"jcy;\": \"\\u0439\",\n\t\"Jfr;\": \"\\uD835\\uDD0D\",\n\t\"jfr;\": \"\\uD835\\uDD27\",\n\t\"jmath;\": \"\\u0237\",\n\t\"Jopf;\": \"\\uD835\\uDD41\",\n\t\"jopf;\": \"\\uD835\\uDD5B\",\n\t\"Jscr;\": \"\\uD835\\uDCA5\",\n\t\"jscr;\": \"\\uD835\\uDCBF\",\n\t\"Jsercy;\": \"\\u0408\",\n\t\"jsercy;\": \"\\u0458\",\n\t\"Jukcy;\": \"\\u0404\",\n\t\"jukcy;\": \"\\u0454\",\n\t\"Kappa;\": \"\\u039A\",\n\t\"kappa;\": \"\\u03BA\",\n\t\"kappav;\": \"\\u03F0\",\n\t\"Kcedil;\": \"\\u0136\",\n\t\"kcedil;\": \"\\u0137\",\n\t\"Kcy;\": \"\\u041A\",\n\t\"kcy;\": \"\\u043A\",\n\t\"Kfr;\": \"\\uD835\\uDD0E\",\n\t\"kfr;\": \"\\uD835\\uDD28\",\n\t\"kgreen;\": \"\\u0138\",\n\t\"KHcy;\": \"\\u0425\",\n\t\"khcy;\": \"\\u0445\",\n\t\"KJcy;\": \"\\u040C\",\n\t\"kjcy;\": \"\\u045C\",\n\t\"Kopf;\": \"\\uD835\\uDD42\",\n\t\"kopf;\": \"\\uD835\\uDD5C\",\n\t\"Kscr;\": \"\\uD835\\uDCA6\",\n\t\"kscr;\": \"\\uD835\\uDCC0\",\n\t\"lAarr;\": \"\\u21DA\",\n\t\"Lacute;\": \"\\u0139\",\n\t\"lacute;\": \"\\u013A\",\n\t\"laemptyv;\": \"\\u29B4\",\n\t\"lagran;\": \"\\u2112\",\n\t\"Lambda;\": \"\\u039B\",\n\t\"lambda;\": \"\\u03BB\",\n\t\"lang;\": \"\\u27E8\",\n\t\"Lang;\": \"\\u27EA\",\n\t\"langd;\": \"\\u2991\",\n\t\"langle;\": \"\\u27E8\",\n\t\"lap;\": \"\\u2A85\",\n\t\"Laplacetrf;\": \"\\u2112\",\n\t\"laquo;\": \"\\u00AB\",\n\t\"laquo\": \"\\u00AB\",\n\t\"larrb;\": \"\\u21E4\",\n\t\"larrbfs;\": \"\\u291F\",\n\t\"larr;\": \"\\u2190\",\n\t\"Larr;\": \"\\u219E\",\n\t\"lArr;\": \"\\u21D0\",\n\t\"larrfs;\": \"\\u291D\",\n\t\"larrhk;\": \"\\u21A9\",\n\t\"larrlp;\": \"\\u21AB\",\n\t\"larrpl;\": \"\\u2939\",\n\t\"larrsim;\": \"\\u2973\",\n\t\"larrtl;\": \"\\u21A2\",\n\t\"latail;\": \"\\u2919\",\n\t\"lAtail;\": \"\\u291B\",\n\t\"lat;\": \"\\u2AAB\",\n\t\"late;\": \"\\u2AAD\",\n\t\"lates;\": \"\\u2AAD\\uFE00\",\n\t\"lbarr;\": \"\\u290C\",\n\t\"lBarr;\": \"\\u290E\",\n\t\"lbbrk;\": \"\\u2772\",\n\t\"lbrace;\": \"\\u007B\",\n\t\"lbrack;\": \"\\u005B\",\n\t\"lbrke;\": \"\\u298B\",\n\t\"lbrksld;\": \"\\u298F\",\n\t\"lbrkslu;\": \"\\u298D\",\n\t\"Lcaron;\": \"\\u013D\",\n\t\"lcaron;\": \"\\u013E\",\n\t\"Lcedil;\": \"\\u013B\",\n\t\"lcedil;\": \"\\u013C\",\n\t\"lceil;\": \"\\u2308\",\n\t\"lcub;\": \"\\u007B\",\n\t\"Lcy;\": \"\\u041B\",\n\t\"lcy;\": \"\\u043B\",\n\t\"ldca;\": \"\\u2936\",\n\t\"ldquo;\": \"\\u201C\",\n\t\"ldquor;\": \"\\u201E\",\n\t\"ldrdhar;\": \"\\u2967\",\n\t\"ldrushar;\": \"\\u294B\",\n\t\"ldsh;\": \"\\u21B2\",\n\t\"le;\": \"\\u2264\",\n\t\"lE;\": \"\\u2266\",\n\t\"LeftAngleBracket;\": \"\\u27E8\",\n\t\"LeftArrowBar;\": \"\\u21E4\",\n\t\"leftarrow;\": \"\\u2190\",\n\t\"LeftArrow;\": \"\\u2190\",\n\t\"Leftarrow;\": \"\\u21D0\",\n\t\"LeftArrowRightArrow;\": \"\\u21C6\",\n\t\"leftarrowtail;\": \"\\u21A2\",\n\t\"LeftCeiling;\": \"\\u2308\",\n\t\"LeftDoubleBracket;\": \"\\u27E6\",\n\t\"LeftDownTeeVector;\": \"\\u2961\",\n\t\"LeftDownVectorBar;\": \"\\u2959\",\n\t\"LeftDownVector;\": \"\\u21C3\",\n\t\"LeftFloor;\": \"\\u230A\",\n\t\"leftharpoondown;\": \"\\u21BD\",\n\t\"leftharpoonup;\": \"\\u21BC\",\n\t\"leftleftarrows;\": \"\\u21C7\",\n\t\"leftrightarrow;\": \"\\u2194\",\n\t\"LeftRightArrow;\": \"\\u2194\",\n\t\"Leftrightarrow;\": \"\\u21D4\",\n\t\"leftrightarrows;\": \"\\u21C6\",\n\t\"leftrightharpoons;\": \"\\u21CB\",\n\t\"leftrightsquigarrow;\": \"\\u21AD\",\n\t\"LeftRightVector;\": \"\\u294E\",\n\t\"LeftTeeArrow;\": \"\\u21A4\",\n\t\"LeftTee;\": \"\\u22A3\",\n\t\"LeftTeeVector;\": \"\\u295A\",\n\t\"leftthreetimes;\": \"\\u22CB\",\n\t\"LeftTriangleBar;\": \"\\u29CF\",\n\t\"LeftTriangle;\": \"\\u22B2\",\n\t\"LeftTriangleEqual;\": \"\\u22B4\",\n\t\"LeftUpDownVector;\": \"\\u2951\",\n\t\"LeftUpTeeVector;\": \"\\u2960\",\n\t\"LeftUpVectorBar;\": \"\\u2958\",\n\t\"LeftUpVector;\": \"\\u21BF\",\n\t\"LeftVectorBar;\": \"\\u2952\",\n\t\"LeftVector;\": \"\\u21BC\",\n\t\"lEg;\": \"\\u2A8B\",\n\t\"leg;\": \"\\u22DA\",\n\t\"leq;\": \"\\u2264\",\n\t\"leqq;\": \"\\u2266\",\n\t\"leqslant;\": \"\\u2A7D\",\n\t\"lescc;\": \"\\u2AA8\",\n\t\"les;\": \"\\u2A7D\",\n\t\"lesdot;\": \"\\u2A7F\",\n\t\"lesdoto;\": \"\\u2A81\",\n\t\"lesdotor;\": \"\\u2A83\",\n\t\"lesg;\": \"\\u22DA\\uFE00\",\n\t\"lesges;\": \"\\u2A93\",\n\t\"lessapprox;\": \"\\u2A85\",\n\t\"lessdot;\": \"\\u22D6\",\n\t\"lesseqgtr;\": \"\\u22DA\",\n\t\"lesseqqgtr;\": \"\\u2A8B\",\n\t\"LessEqualGreater;\": \"\\u22DA\",\n\t\"LessFullEqual;\": \"\\u2266\",\n\t\"LessGreater;\": \"\\u2276\",\n\t\"lessgtr;\": \"\\u2276\",\n\t\"LessLess;\": \"\\u2AA1\",\n\t\"lesssim;\": \"\\u2272\",\n\t\"LessSlantEqual;\": \"\\u2A7D\",\n\t\"LessTilde;\": \"\\u2272\",\n\t\"lfisht;\": \"\\u297C\",\n\t\"lfloor;\": \"\\u230A\",\n\t\"Lfr;\": \"\\uD835\\uDD0F\",\n\t\"lfr;\": \"\\uD835\\uDD29\",\n\t\"lg;\": \"\\u2276\",\n\t\"lgE;\": \"\\u2A91\",\n\t\"lHar;\": \"\\u2962\",\n\t\"lhard;\": \"\\u21BD\",\n\t\"lharu;\": \"\\u21BC\",\n\t\"lharul;\": \"\\u296A\",\n\t\"lhblk;\": \"\\u2584\",\n\t\"LJcy;\": \"\\u0409\",\n\t\"ljcy;\": \"\\u0459\",\n\t\"llarr;\": \"\\u21C7\",\n\t\"ll;\": \"\\u226A\",\n\t\"Ll;\": \"\\u22D8\",\n\t\"llcorner;\": \"\\u231E\",\n\t\"Lleftarrow;\": \"\\u21DA\",\n\t\"llhard;\": \"\\u296B\",\n\t\"lltri;\": \"\\u25FA\",\n\t\"Lmidot;\": \"\\u013F\",\n\t\"lmidot;\": \"\\u0140\",\n\t\"lmoustache;\": \"\\u23B0\",\n\t\"lmoust;\": \"\\u23B0\",\n\t\"lnap;\": \"\\u2A89\",\n\t\"lnapprox;\": \"\\u2A89\",\n\t\"lne;\": \"\\u2A87\",\n\t\"lnE;\": \"\\u2268\",\n\t\"lneq;\": \"\\u2A87\",\n\t\"lneqq;\": \"\\u2268\",\n\t\"lnsim;\": \"\\u22E6\",\n\t\"loang;\": \"\\u27EC\",\n\t\"loarr;\": \"\\u21FD\",\n\t\"lobrk;\": \"\\u27E6\",\n\t\"longleftarrow;\": \"\\u27F5\",\n\t\"LongLeftArrow;\": \"\\u27F5\",\n\t\"Longleftarrow;\": \"\\u27F8\",\n\t\"longleftrightarrow;\": \"\\u27F7\",\n\t\"LongLeftRightArrow;\": \"\\u27F7\",\n\t\"Longleftrightarrow;\": \"\\u27FA\",\n\t\"longmapsto;\": \"\\u27FC\",\n\t\"longrightarrow;\": \"\\u27F6\",\n\t\"LongRightArrow;\": \"\\u27F6\",\n\t\"Longrightarrow;\": \"\\u27F9\",\n\t\"looparrowleft;\": \"\\u21AB\",\n\t\"looparrowright;\": \"\\u21AC\",\n\t\"lopar;\": \"\\u2985\",\n\t\"Lopf;\": \"\\uD835\\uDD43\",\n\t\"lopf;\": \"\\uD835\\uDD5D\",\n\t\"loplus;\": \"\\u2A2D\",\n\t\"lotimes;\": \"\\u2A34\",\n\t\"lowast;\": \"\\u2217\",\n\t\"lowbar;\": \"\\u005F\",\n\t\"LowerLeftArrow;\": \"\\u2199\",\n\t\"LowerRightArrow;\": \"\\u2198\",\n\t\"loz;\": \"\\u25CA\",\n\t\"lozenge;\": \"\\u25CA\",\n\t\"lozf;\": \"\\u29EB\",\n\t\"lpar;\": \"\\u0028\",\n\t\"lparlt;\": \"\\u2993\",\n\t\"lrarr;\": \"\\u21C6\",\n\t\"lrcorner;\": \"\\u231F\",\n\t\"lrhar;\": \"\\u21CB\",\n\t\"lrhard;\": \"\\u296D\",\n\t\"lrm;\": \"\\u200E\",\n\t\"lrtri;\": \"\\u22BF\",\n\t\"lsaquo;\": \"\\u2039\",\n\t\"lscr;\": \"\\uD835\\uDCC1\",\n\t\"Lscr;\": \"\\u2112\",\n\t\"lsh;\": \"\\u21B0\",\n\t\"Lsh;\": \"\\u21B0\",\n\t\"lsim;\": \"\\u2272\",\n\t\"lsime;\": \"\\u2A8D\",\n\t\"lsimg;\": \"\\u2A8F\",\n\t\"lsqb;\": \"\\u005B\",\n\t\"lsquo;\": \"\\u2018\",\n\t\"lsquor;\": \"\\u201A\",\n\t\"Lstrok;\": \"\\u0141\",\n\t\"lstrok;\": \"\\u0142\",\n\t\"ltcc;\": \"\\u2AA6\",\n\t\"ltcir;\": \"\\u2A79\",\n\t\"lt;\": \"\\u003C\",\n\t\"lt\": \"\\u003C\",\n\t\"LT;\": \"\\u003C\",\n\t\"LT\": \"\\u003C\",\n\t\"Lt;\": \"\\u226A\",\n\t\"ltdot;\": \"\\u22D6\",\n\t\"lthree;\": \"\\u22CB\",\n\t\"ltimes;\": \"\\u22C9\",\n\t\"ltlarr;\": \"\\u2976\",\n\t\"ltquest;\": \"\\u2A7B\",\n\t\"ltri;\": \"\\u25C3\",\n\t\"ltrie;\": \"\\u22B4\",\n\t\"ltrif;\": \"\\u25C2\",\n\t\"ltrPar;\": \"\\u2996\",\n\t\"lurdshar;\": \"\\u294A\",\n\t\"luruhar;\": \"\\u2966\",\n\t\"lvertneqq;\": \"\\u2268\\uFE00\",\n\t\"lvnE;\": \"\\u2268\\uFE00\",\n\t\"macr;\": \"\\u00AF\",\n\t\"macr\": \"\\u00AF\",\n\t\"male;\": \"\\u2642\",\n\t\"malt;\": \"\\u2720\",\n\t\"maltese;\": \"\\u2720\",\n\t\"Map;\": \"\\u2905\",\n\t\"map;\": \"\\u21A6\",\n\t\"mapsto;\": \"\\u21A6\",\n\t\"mapstodown;\": \"\\u21A7\",\n\t\"mapstoleft;\": \"\\u21A4\",\n\t\"mapstoup;\": \"\\u21A5\",\n\t\"marker;\": \"\\u25AE\",\n\t\"mcomma;\": \"\\u2A29\",\n\t\"Mcy;\": \"\\u041C\",\n\t\"mcy;\": \"\\u043C\",\n\t\"mdash;\": \"\\u2014\",\n\t\"mDDot;\": \"\\u223A\",\n\t\"measuredangle;\": \"\\u2221\",\n\t\"MediumSpace;\": \"\\u205F\",\n\t\"Mellintrf;\": \"\\u2133\",\n\t\"Mfr;\": \"\\uD835\\uDD10\",\n\t\"mfr;\": \"\\uD835\\uDD2A\",\n\t\"mho;\": \"\\u2127\",\n\t\"micro;\": \"\\u00B5\",\n\t\"micro\": \"\\u00B5\",\n\t\"midast;\": \"\\u002A\",\n\t\"midcir;\": \"\\u2AF0\",\n\t\"mid;\": \"\\u2223\",\n\t\"middot;\": \"\\u00B7\",\n\t\"middot\": \"\\u00B7\",\n\t\"minusb;\": \"\\u229F\",\n\t\"minus;\": \"\\u2212\",\n\t\"minusd;\": \"\\u2238\",\n\t\"minusdu;\": \"\\u2A2A\",\n\t\"MinusPlus;\": \"\\u2213\",\n\t\"mlcp;\": \"\\u2ADB\",\n\t\"mldr;\": \"\\u2026\",\n\t\"mnplus;\": \"\\u2213\",\n\t\"models;\": \"\\u22A7\",\n\t\"Mopf;\": \"\\uD835\\uDD44\",\n\t\"mopf;\": \"\\uD835\\uDD5E\",\n\t\"mp;\": \"\\u2213\",\n\t\"mscr;\": \"\\uD835\\uDCC2\",\n\t\"Mscr;\": \"\\u2133\",\n\t\"mstpos;\": \"\\u223E\",\n\t\"Mu;\": \"\\u039C\",\n\t\"mu;\": \"\\u03BC\",\n\t\"multimap;\": \"\\u22B8\",\n\t\"mumap;\": \"\\u22B8\",\n\t\"nabla;\": \"\\u2207\",\n\t\"Nacute;\": \"\\u0143\",\n\t\"nacute;\": \"\\u0144\",\n\t\"nang;\": \"\\u2220\\u20D2\",\n\t\"nap;\": \"\\u2249\",\n\t\"napE;\": \"\\u2A70\\u0338\",\n\t\"napid;\": \"\\u224B\\u0338\",\n\t\"napos;\": \"\\u0149\",\n\t\"napprox;\": \"\\u2249\",\n\t\"natural;\": \"\\u266E\",\n\t\"naturals;\": \"\\u2115\",\n\t\"natur;\": \"\\u266E\",\n\t\"nbsp;\": \"\\u00A0\",\n\t\"nbsp\": \"\\u00A0\",\n\t\"nbump;\": \"\\u224E\\u0338\",\n\t\"nbumpe;\": \"\\u224F\\u0338\",\n\t\"ncap;\": \"\\u2A43\",\n\t\"Ncaron;\": \"\\u0147\",\n\t\"ncaron;\": \"\\u0148\",\n\t\"Ncedil;\": \"\\u0145\",\n\t\"ncedil;\": \"\\u0146\",\n\t\"ncong;\": \"\\u2247\",\n\t\"ncongdot;\": \"\\u2A6D\\u0338\",\n\t\"ncup;\": \"\\u2A42\",\n\t\"Ncy;\": \"\\u041D\",\n\t\"ncy;\": \"\\u043D\",\n\t\"ndash;\": \"\\u2013\",\n\t\"nearhk;\": \"\\u2924\",\n\t\"nearr;\": \"\\u2197\",\n\t\"neArr;\": \"\\u21D7\",\n\t\"nearrow;\": \"\\u2197\",\n\t\"ne;\": \"\\u2260\",\n\t\"nedot;\": \"\\u2250\\u0338\",\n\t\"NegativeMediumSpace;\": \"\\u200B\",\n\t\"NegativeThickSpace;\": \"\\u200B\",\n\t\"NegativeThinSpace;\": \"\\u200B\",\n\t\"NegativeVeryThinSpace;\": \"\\u200B\",\n\t\"nequiv;\": \"\\u2262\",\n\t\"nesear;\": \"\\u2928\",\n\t\"nesim;\": \"\\u2242\\u0338\",\n\t\"NestedGreaterGreater;\": \"\\u226B\",\n\t\"NestedLessLess;\": \"\\u226A\",\n\t\"NewLine;\": \"\\u000A\",\n\t\"nexist;\": \"\\u2204\",\n\t\"nexists;\": \"\\u2204\",\n\t\"Nfr;\": \"\\uD835\\uDD11\",\n\t\"nfr;\": \"\\uD835\\uDD2B\",\n\t\"ngE;\": \"\\u2267\\u0338\",\n\t\"nge;\": \"\\u2271\",\n\t\"ngeq;\": \"\\u2271\",\n\t\"ngeqq;\": \"\\u2267\\u0338\",\n\t\"ngeqslant;\": \"\\u2A7E\\u0338\",\n\t\"nges;\": \"\\u2A7E\\u0338\",\n\t\"nGg;\": \"\\u22D9\\u0338\",\n\t\"ngsim;\": \"\\u2275\",\n\t\"nGt;\": \"\\u226B\\u20D2\",\n\t\"ngt;\": \"\\u226F\",\n\t\"ngtr;\": \"\\u226F\",\n\t\"nGtv;\": \"\\u226B\\u0338\",\n\t\"nharr;\": \"\\u21AE\",\n\t\"nhArr;\": \"\\u21CE\",\n\t\"nhpar;\": \"\\u2AF2\",\n\t\"ni;\": \"\\u220B\",\n\t\"nis;\": \"\\u22FC\",\n\t\"nisd;\": \"\\u22FA\",\n\t\"niv;\": \"\\u220B\",\n\t\"NJcy;\": \"\\u040A\",\n\t\"njcy;\": \"\\u045A\",\n\t\"nlarr;\": \"\\u219A\",\n\t\"nlArr;\": \"\\u21CD\",\n\t\"nldr;\": \"\\u2025\",\n\t\"nlE;\": \"\\u2266\\u0338\",\n\t\"nle;\": \"\\u2270\",\n\t\"nleftarrow;\": \"\\u219A\",\n\t\"nLeftarrow;\": \"\\u21CD\",\n\t\"nleftrightarrow;\": \"\\u21AE\",\n\t\"nLeftrightarrow;\": \"\\u21CE\",\n\t\"nleq;\": \"\\u2270\",\n\t\"nleqq;\": \"\\u2266\\u0338\",\n\t\"nleqslant;\": \"\\u2A7D\\u0338\",\n\t\"nles;\": \"\\u2A7D\\u0338\",\n\t\"nless;\": \"\\u226E\",\n\t\"nLl;\": \"\\u22D8\\u0338\",\n\t\"nlsim;\": \"\\u2274\",\n\t\"nLt;\": \"\\u226A\\u20D2\",\n\t\"nlt;\": \"\\u226E\",\n\t\"nltri;\": \"\\u22EA\",\n\t\"nltrie;\": \"\\u22EC\",\n\t\"nLtv;\": \"\\u226A\\u0338\",\n\t\"nmid;\": \"\\u2224\",\n\t\"NoBreak;\": \"\\u2060\",\n\t\"NonBreakingSpace;\": \"\\u00A0\",\n\t\"nopf;\": \"\\uD835\\uDD5F\",\n\t\"Nopf;\": \"\\u2115\",\n\t\"Not;\": \"\\u2AEC\",\n\t\"not;\": \"\\u00AC\",\n\t\"not\": \"\\u00AC\",\n\t\"NotCongruent;\": \"\\u2262\",\n\t\"NotCupCap;\": \"\\u226D\",\n\t\"NotDoubleVerticalBar;\": \"\\u2226\",\n\t\"NotElement;\": \"\\u2209\",\n\t\"NotEqual;\": \"\\u2260\",\n\t\"NotEqualTilde;\": \"\\u2242\\u0338\",\n\t\"NotExists;\": \"\\u2204\",\n\t\"NotGreater;\": \"\\u226F\",\n\t\"NotGreaterEqual;\": \"\\u2271\",\n\t\"NotGreaterFullEqual;\": \"\\u2267\\u0338\",\n\t\"NotGreaterGreater;\": \"\\u226B\\u0338\",\n\t\"NotGreaterLess;\": \"\\u2279\",\n\t\"NotGreaterSlantEqual;\": \"\\u2A7E\\u0338\",\n\t\"NotGreaterTilde;\": \"\\u2275\",\n\t\"NotHumpDownHump;\": \"\\u224E\\u0338\",\n\t\"NotHumpEqual;\": \"\\u224F\\u0338\",\n\t\"notin;\": \"\\u2209\",\n\t\"notindot;\": \"\\u22F5\\u0338\",\n\t\"notinE;\": \"\\u22F9\\u0338\",\n\t\"notinva;\": \"\\u2209\",\n\t\"notinvb;\": \"\\u22F7\",\n\t\"notinvc;\": \"\\u22F6\",\n\t\"NotLeftTriangleBar;\": \"\\u29CF\\u0338\",\n\t\"NotLeftTriangle;\": \"\\u22EA\",\n\t\"NotLeftTriangleEqual;\": \"\\u22EC\",\n\t\"NotLess;\": \"\\u226E\",\n\t\"NotLessEqual;\": \"\\u2270\",\n\t\"NotLessGreater;\": \"\\u2278\",\n\t\"NotLessLess;\": \"\\u226A\\u0338\",\n\t\"NotLessSlantEqual;\": \"\\u2A7D\\u0338\",\n\t\"NotLessTilde;\": \"\\u2274\",\n\t\"NotNestedGreaterGreater;\": \"\\u2AA2\\u0338\",\n\t\"NotNestedLessLess;\": \"\\u2AA1\\u0338\",\n\t\"notni;\": \"\\u220C\",\n\t\"notniva;\": \"\\u220C\",\n\t\"notnivb;\": \"\\u22FE\",\n\t\"notnivc;\": \"\\u22FD\",\n\t\"NotPrecedes;\": \"\\u2280\",\n\t\"NotPrecedesEqual;\": \"\\u2AAF\\u0338\",\n\t\"NotPrecedesSlantEqual;\": \"\\u22E0\",\n\t\"NotReverseElement;\": \"\\u220C\",\n\t\"NotRightTriangleBar;\": \"\\u29D0\\u0338\",\n\t\"NotRightTriangle;\": \"\\u22EB\",\n\t\"NotRightTriangleEqual;\": \"\\u22ED\",\n\t\"NotSquareSubset;\": \"\\u228F\\u0338\",\n\t\"NotSquareSubsetEqual;\": \"\\u22E2\",\n\t\"NotSquareSuperset;\": \"\\u2290\\u0338\",\n\t\"NotSquareSupersetEqual;\": \"\\u22E3\",\n\t\"NotSubset;\": \"\\u2282\\u20D2\",\n\t\"NotSubsetEqual;\": \"\\u2288\",\n\t\"NotSucceeds;\": \"\\u2281\",\n\t\"NotSucceedsEqual;\": \"\\u2AB0\\u0338\",\n\t\"NotSucceedsSlantEqual;\": \"\\u22E1\",\n\t\"NotSucceedsTilde;\": \"\\u227F\\u0338\",\n\t\"NotSuperset;\": \"\\u2283\\u20D2\",\n\t\"NotSupersetEqual;\": \"\\u2289\",\n\t\"NotTilde;\": \"\\u2241\",\n\t\"NotTildeEqual;\": \"\\u2244\",\n\t\"NotTildeFullEqual;\": \"\\u2247\",\n\t\"NotTildeTilde;\": \"\\u2249\",\n\t\"NotVerticalBar;\": \"\\u2224\",\n\t\"nparallel;\": \"\\u2226\",\n\t\"npar;\": \"\\u2226\",\n\t\"nparsl;\": \"\\u2AFD\\u20E5\",\n\t\"npart;\": \"\\u2202\\u0338\",\n\t\"npolint;\": \"\\u2A14\",\n\t\"npr;\": \"\\u2280\",\n\t\"nprcue;\": \"\\u22E0\",\n\t\"nprec;\": \"\\u2280\",\n\t\"npreceq;\": \"\\u2AAF\\u0338\",\n\t\"npre;\": \"\\u2AAF\\u0338\",\n\t\"nrarrc;\": \"\\u2933\\u0338\",\n\t\"nrarr;\": \"\\u219B\",\n\t\"nrArr;\": \"\\u21CF\",\n\t\"nrarrw;\": \"\\u219D\\u0338\",\n\t\"nrightarrow;\": \"\\u219B\",\n\t\"nRightarrow;\": \"\\u21CF\",\n\t\"nrtri;\": \"\\u22EB\",\n\t\"nrtrie;\": \"\\u22ED\",\n\t\"nsc;\": \"\\u2281\",\n\t\"nsccue;\": \"\\u22E1\",\n\t\"nsce;\": \"\\u2AB0\\u0338\",\n\t\"Nscr;\": \"\\uD835\\uDCA9\",\n\t\"nscr;\": \"\\uD835\\uDCC3\",\n\t\"nshortmid;\": \"\\u2224\",\n\t\"nshortparallel;\": \"\\u2226\",\n\t\"nsim;\": \"\\u2241\",\n\t\"nsime;\": \"\\u2244\",\n\t\"nsimeq;\": \"\\u2244\",\n\t\"nsmid;\": \"\\u2224\",\n\t\"nspar;\": \"\\u2226\",\n\t\"nsqsube;\": \"\\u22E2\",\n\t\"nsqsupe;\": \"\\u22E3\",\n\t\"nsub;\": \"\\u2284\",\n\t\"nsubE;\": \"\\u2AC5\\u0338\",\n\t\"nsube;\": \"\\u2288\",\n\t\"nsubset;\": \"\\u2282\\u20D2\",\n\t\"nsubseteq;\": \"\\u2288\",\n\t\"nsubseteqq;\": \"\\u2AC5\\u0338\",\n\t\"nsucc;\": \"\\u2281\",\n\t\"nsucceq;\": \"\\u2AB0\\u0338\",\n\t\"nsup;\": \"\\u2285\",\n\t\"nsupE;\": \"\\u2AC6\\u0338\",\n\t\"nsupe;\": \"\\u2289\",\n\t\"nsupset;\": \"\\u2283\\u20D2\",\n\t\"nsupseteq;\": \"\\u2289\",\n\t\"nsupseteqq;\": \"\\u2AC6\\u0338\",\n\t\"ntgl;\": \"\\u2279\",\n\t\"Ntilde;\": \"\\u00D1\",\n\t\"Ntilde\": \"\\u00D1\",\n\t\"ntilde;\": \"\\u00F1\",\n\t\"ntilde\": \"\\u00F1\",\n\t\"ntlg;\": \"\\u2278\",\n\t\"ntriangleleft;\": \"\\u22EA\",\n\t\"ntrianglelefteq;\": \"\\u22EC\",\n\t\"ntriangleright;\": \"\\u22EB\",\n\t\"ntrianglerighteq;\": \"\\u22ED\",\n\t\"Nu;\": \"\\u039D\",\n\t\"nu;\": \"\\u03BD\",\n\t\"num;\": \"\\u0023\",\n\t\"numero;\": \"\\u2116\",\n\t\"numsp;\": \"\\u2007\",\n\t\"nvap;\": \"\\u224D\\u20D2\",\n\t\"nvdash;\": \"\\u22AC\",\n\t\"nvDash;\": \"\\u22AD\",\n\t\"nVdash;\": \"\\u22AE\",\n\t\"nVDash;\": \"\\u22AF\",\n\t\"nvge;\": \"\\u2265\\u20D2\",\n\t\"nvgt;\": \"\\u003E\\u20D2\",\n\t\"nvHarr;\": \"\\u2904\",\n\t\"nvinfin;\": \"\\u29DE\",\n\t\"nvlArr;\": \"\\u2902\",\n\t\"nvle;\": \"\\u2264\\u20D2\",\n\t\"nvlt;\": \"\\u003C\\u20D2\",\n\t\"nvltrie;\": \"\\u22B4\\u20D2\",\n\t\"nvrArr;\": \"\\u2903\",\n\t\"nvrtrie;\": \"\\u22B5\\u20D2\",\n\t\"nvsim;\": \"\\u223C\\u20D2\",\n\t\"nwarhk;\": \"\\u2923\",\n\t\"nwarr;\": \"\\u2196\",\n\t\"nwArr;\": \"\\u21D6\",\n\t\"nwarrow;\": \"\\u2196\",\n\t\"nwnear;\": \"\\u2927\",\n\t\"Oacute;\": \"\\u00D3\",\n\t\"Oacute\": \"\\u00D3\",\n\t\"oacute;\": \"\\u00F3\",\n\t\"oacute\": \"\\u00F3\",\n\t\"oast;\": \"\\u229B\",\n\t\"Ocirc;\": \"\\u00D4\",\n\t\"Ocirc\": \"\\u00D4\",\n\t\"ocirc;\": \"\\u00F4\",\n\t\"ocirc\": \"\\u00F4\",\n\t\"ocir;\": \"\\u229A\",\n\t\"Ocy;\": \"\\u041E\",\n\t\"ocy;\": \"\\u043E\",\n\t\"odash;\": \"\\u229D\",\n\t\"Odblac;\": \"\\u0150\",\n\t\"odblac;\": \"\\u0151\",\n\t\"odiv;\": \"\\u2A38\",\n\t\"odot;\": \"\\u2299\",\n\t\"odsold;\": \"\\u29BC\",\n\t\"OElig;\": \"\\u0152\",\n\t\"oelig;\": \"\\u0153\",\n\t\"ofcir;\": \"\\u29BF\",\n\t\"Ofr;\": \"\\uD835\\uDD12\",\n\t\"ofr;\": \"\\uD835\\uDD2C\",\n\t\"ogon;\": \"\\u02DB\",\n\t\"Ograve;\": \"\\u00D2\",\n\t\"Ograve\": \"\\u00D2\",\n\t\"ograve;\": \"\\u00F2\",\n\t\"ograve\": \"\\u00F2\",\n\t\"ogt;\": \"\\u29C1\",\n\t\"ohbar;\": \"\\u29B5\",\n\t\"ohm;\": \"\\u03A9\",\n\t\"oint;\": \"\\u222E\",\n\t\"olarr;\": \"\\u21BA\",\n\t\"olcir;\": \"\\u29BE\",\n\t\"olcross;\": \"\\u29BB\",\n\t\"oline;\": \"\\u203E\",\n\t\"olt;\": \"\\u29C0\",\n\t\"Omacr;\": \"\\u014C\",\n\t\"omacr;\": \"\\u014D\",\n\t\"Omega;\": \"\\u03A9\",\n\t\"omega;\": \"\\u03C9\",\n\t\"Omicron;\": \"\\u039F\",\n\t\"omicron;\": \"\\u03BF\",\n\t\"omid;\": \"\\u29B6\",\n\t\"ominus;\": \"\\u2296\",\n\t\"Oopf;\": \"\\uD835\\uDD46\",\n\t\"oopf;\": \"\\uD835\\uDD60\",\n\t\"opar;\": \"\\u29B7\",\n\t\"OpenCurlyDoubleQuote;\": \"\\u201C\",\n\t\"OpenCurlyQuote;\": \"\\u2018\",\n\t\"operp;\": \"\\u29B9\",\n\t\"oplus;\": \"\\u2295\",\n\t\"orarr;\": \"\\u21BB\",\n\t\"Or;\": \"\\u2A54\",\n\t\"or;\": \"\\u2228\",\n\t\"ord;\": \"\\u2A5D\",\n\t\"order;\": \"\\u2134\",\n\t\"orderof;\": \"\\u2134\",\n\t\"ordf;\": \"\\u00AA\",\n\t\"ordf\": \"\\u00AA\",\n\t\"ordm;\": \"\\u00BA\",\n\t\"ordm\": \"\\u00BA\",\n\t\"origof;\": \"\\u22B6\",\n\t\"oror;\": \"\\u2A56\",\n\t\"orslope;\": \"\\u2A57\",\n\t\"orv;\": \"\\u2A5B\",\n\t\"oS;\": \"\\u24C8\",\n\t\"Oscr;\": \"\\uD835\\uDCAA\",\n\t\"oscr;\": \"\\u2134\",\n\t\"Oslash;\": \"\\u00D8\",\n\t\"Oslash\": \"\\u00D8\",\n\t\"oslash;\": \"\\u00F8\",\n\t\"oslash\": \"\\u00F8\",\n\t\"osol;\": \"\\u2298\",\n\t\"Otilde;\": \"\\u00D5\",\n\t\"Otilde\": \"\\u00D5\",\n\t\"otilde;\": \"\\u00F5\",\n\t\"otilde\": \"\\u00F5\",\n\t\"otimesas;\": \"\\u2A36\",\n\t\"Otimes;\": \"\\u2A37\",\n\t\"otimes;\": \"\\u2297\",\n\t\"Ouml;\": \"\\u00D6\",\n\t\"Ouml\": \"\\u00D6\",\n\t\"ouml;\": \"\\u00F6\",\n\t\"ouml\": \"\\u00F6\",\n\t\"ovbar;\": \"\\u233D\",\n\t\"OverBar;\": \"\\u203E\",\n\t\"OverBrace;\": \"\\u23DE\",\n\t\"OverBracket;\": \"\\u23B4\",\n\t\"OverParenthesis;\": \"\\u23DC\",\n\t\"para;\": \"\\u00B6\",\n\t\"para\": \"\\u00B6\",\n\t\"parallel;\": \"\\u2225\",\n\t\"par;\": \"\\u2225\",\n\t\"parsim;\": \"\\u2AF3\",\n\t\"parsl;\": \"\\u2AFD\",\n\t\"part;\": \"\\u2202\",\n\t\"PartialD;\": \"\\u2202\",\n\t\"Pcy;\": \"\\u041F\",\n\t\"pcy;\": \"\\u043F\",\n\t\"percnt;\": \"\\u0025\",\n\t\"period;\": \"\\u002E\",\n\t\"permil;\": \"\\u2030\",\n\t\"perp;\": \"\\u22A5\",\n\t\"pertenk;\": \"\\u2031\",\n\t\"Pfr;\": \"\\uD835\\uDD13\",\n\t\"pfr;\": \"\\uD835\\uDD2D\",\n\t\"Phi;\": \"\\u03A6\",\n\t\"phi;\": \"\\u03C6\",\n\t\"phiv;\": \"\\u03D5\",\n\t\"phmmat;\": \"\\u2133\",\n\t\"phone;\": \"\\u260E\",\n\t\"Pi;\": \"\\u03A0\",\n\t\"pi;\": \"\\u03C0\",\n\t\"pitchfork;\": \"\\u22D4\",\n\t\"piv;\": \"\\u03D6\",\n\t\"planck;\": \"\\u210F\",\n\t\"planckh;\": \"\\u210E\",\n\t\"plankv;\": \"\\u210F\",\n\t\"plusacir;\": \"\\u2A23\",\n\t\"plusb;\": \"\\u229E\",\n\t\"pluscir;\": \"\\u2A22\",\n\t\"plus;\": \"\\u002B\",\n\t\"plusdo;\": \"\\u2214\",\n\t\"plusdu;\": \"\\u2A25\",\n\t\"pluse;\": \"\\u2A72\",\n\t\"PlusMinus;\": \"\\u00B1\",\n\t\"plusmn;\": \"\\u00B1\",\n\t\"plusmn\": \"\\u00B1\",\n\t\"plussim;\": \"\\u2A26\",\n\t\"plustwo;\": \"\\u2A27\",\n\t\"pm;\": \"\\u00B1\",\n\t\"Poincareplane;\": \"\\u210C\",\n\t\"pointint;\": \"\\u2A15\",\n\t\"popf;\": \"\\uD835\\uDD61\",\n\t\"Popf;\": \"\\u2119\",\n\t\"pound;\": \"\\u00A3\",\n\t\"pound\": \"\\u00A3\",\n\t\"prap;\": \"\\u2AB7\",\n\t\"Pr;\": \"\\u2ABB\",\n\t\"pr;\": \"\\u227A\",\n\t\"prcue;\": \"\\u227C\",\n\t\"precapprox;\": \"\\u2AB7\",\n\t\"prec;\": \"\\u227A\",\n\t\"preccurlyeq;\": \"\\u227C\",\n\t\"Precedes;\": \"\\u227A\",\n\t\"PrecedesEqual;\": \"\\u2AAF\",\n\t\"PrecedesSlantEqual;\": \"\\u227C\",\n\t\"PrecedesTilde;\": \"\\u227E\",\n\t\"preceq;\": \"\\u2AAF\",\n\t\"precnapprox;\": \"\\u2AB9\",\n\t\"precneqq;\": \"\\u2AB5\",\n\t\"precnsim;\": \"\\u22E8\",\n\t\"pre;\": \"\\u2AAF\",\n\t\"prE;\": \"\\u2AB3\",\n\t\"precsim;\": \"\\u227E\",\n\t\"prime;\": \"\\u2032\",\n\t\"Prime;\": \"\\u2033\",\n\t\"primes;\": \"\\u2119\",\n\t\"prnap;\": \"\\u2AB9\",\n\t\"prnE;\": \"\\u2AB5\",\n\t\"prnsim;\": \"\\u22E8\",\n\t\"prod;\": \"\\u220F\",\n\t\"Product;\": \"\\u220F\",\n\t\"profalar;\": \"\\u232E\",\n\t\"profline;\": \"\\u2312\",\n\t\"profsurf;\": \"\\u2313\",\n\t\"prop;\": \"\\u221D\",\n\t\"Proportional;\": \"\\u221D\",\n\t\"Proportion;\": \"\\u2237\",\n\t\"propto;\": \"\\u221D\",\n\t\"prsim;\": \"\\u227E\",\n\t\"prurel;\": \"\\u22B0\",\n\t\"Pscr;\": \"\\uD835\\uDCAB\",\n\t\"pscr;\": \"\\uD835\\uDCC5\",\n\t\"Psi;\": \"\\u03A8\",\n\t\"psi;\": \"\\u03C8\",\n\t\"puncsp;\": \"\\u2008\",\n\t\"Qfr;\": \"\\uD835\\uDD14\",\n\t\"qfr;\": \"\\uD835\\uDD2E\",\n\t\"qint;\": \"\\u2A0C\",\n\t\"qopf;\": \"\\uD835\\uDD62\",\n\t\"Qopf;\": \"\\u211A\",\n\t\"qprime;\": \"\\u2057\",\n\t\"Qscr;\": \"\\uD835\\uDCAC\",\n\t\"qscr;\": \"\\uD835\\uDCC6\",\n\t\"quaternions;\": \"\\u210D\",\n\t\"quatint;\": \"\\u2A16\",\n\t\"quest;\": \"\\u003F\",\n\t\"questeq;\": \"\\u225F\",\n\t\"quot;\": \"\\u0022\",\n\t\"quot\": \"\\u0022\",\n\t\"QUOT;\": \"\\u0022\",\n\t\"QUOT\": \"\\u0022\",\n\t\"rAarr;\": \"\\u21DB\",\n\t\"race;\": \"\\u223D\\u0331\",\n\t\"Racute;\": \"\\u0154\",\n\t\"racute;\": \"\\u0155\",\n\t\"radic;\": \"\\u221A\",\n\t\"raemptyv;\": \"\\u29B3\",\n\t\"rang;\": \"\\u27E9\",\n\t\"Rang;\": \"\\u27EB\",\n\t\"rangd;\": \"\\u2992\",\n\t\"range;\": \"\\u29A5\",\n\t\"rangle;\": \"\\u27E9\",\n\t\"raquo;\": \"\\u00BB\",\n\t\"raquo\": \"\\u00BB\",\n\t\"rarrap;\": \"\\u2975\",\n\t\"rarrb;\": \"\\u21E5\",\n\t\"rarrbfs;\": \"\\u2920\",\n\t\"rarrc;\": \"\\u2933\",\n\t\"rarr;\": \"\\u2192\",\n\t\"Rarr;\": \"\\u21A0\",\n\t\"rArr;\": \"\\u21D2\",\n\t\"rarrfs;\": \"\\u291E\",\n\t\"rarrhk;\": \"\\u21AA\",\n\t\"rarrlp;\": \"\\u21AC\",\n\t\"rarrpl;\": \"\\u2945\",\n\t\"rarrsim;\": \"\\u2974\",\n\t\"Rarrtl;\": \"\\u2916\",\n\t\"rarrtl;\": \"\\u21A3\",\n\t\"rarrw;\": \"\\u219D\",\n\t\"ratail;\": \"\\u291A\",\n\t\"rAtail;\": \"\\u291C\",\n\t\"ratio;\": \"\\u2236\",\n\t\"rationals;\": \"\\u211A\",\n\t\"rbarr;\": \"\\u290D\",\n\t\"rBarr;\": \"\\u290F\",\n\t\"RBarr;\": \"\\u2910\",\n\t\"rbbrk;\": \"\\u2773\",\n\t\"rbrace;\": \"\\u007D\",\n\t\"rbrack;\": \"\\u005D\",\n\t\"rbrke;\": \"\\u298C\",\n\t\"rbrksld;\": \"\\u298E\",\n\t\"rbrkslu;\": \"\\u2990\",\n\t\"Rcaron;\": \"\\u0158\",\n\t\"rcaron;\": \"\\u0159\",\n\t\"Rcedil;\": \"\\u0156\",\n\t\"rcedil;\": \"\\u0157\",\n\t\"rceil;\": \"\\u2309\",\n\t\"rcub;\": \"\\u007D\",\n\t\"Rcy;\": \"\\u0420\",\n\t\"rcy;\": \"\\u0440\",\n\t\"rdca;\": \"\\u2937\",\n\t\"rdldhar;\": \"\\u2969\",\n\t\"rdquo;\": \"\\u201D\",\n\t\"rdquor;\": \"\\u201D\",\n\t\"rdsh;\": \"\\u21B3\",\n\t\"real;\": \"\\u211C\",\n\t\"realine;\": \"\\u211B\",\n\t\"realpart;\": \"\\u211C\",\n\t\"reals;\": \"\\u211D\",\n\t\"Re;\": \"\\u211C\",\n\t\"rect;\": \"\\u25AD\",\n\t\"reg;\": \"\\u00AE\",\n\t\"reg\": \"\\u00AE\",\n\t\"REG;\": \"\\u00AE\",\n\t\"REG\": \"\\u00AE\",\n\t\"ReverseElement;\": \"\\u220B\",\n\t\"ReverseEquilibrium;\": \"\\u21CB\",\n\t\"ReverseUpEquilibrium;\": \"\\u296F\",\n\t\"rfisht;\": \"\\u297D\",\n\t\"rfloor;\": \"\\u230B\",\n\t\"rfr;\": \"\\uD835\\uDD2F\",\n\t\"Rfr;\": \"\\u211C\",\n\t\"rHar;\": \"\\u2964\",\n\t\"rhard;\": \"\\u21C1\",\n\t\"rharu;\": \"\\u21C0\",\n\t\"rharul;\": \"\\u296C\",\n\t\"Rho;\": \"\\u03A1\",\n\t\"rho;\": \"\\u03C1\",\n\t\"rhov;\": \"\\u03F1\",\n\t\"RightAngleBracket;\": \"\\u27E9\",\n\t\"RightArrowBar;\": \"\\u21E5\",\n\t\"rightarrow;\": \"\\u2192\",\n\t\"RightArrow;\": \"\\u2192\",\n\t\"Rightarrow;\": \"\\u21D2\",\n\t\"RightArrowLeftArrow;\": \"\\u21C4\",\n\t\"rightarrowtail;\": \"\\u21A3\",\n\t\"RightCeiling;\": \"\\u2309\",\n\t\"RightDoubleBracket;\": \"\\u27E7\",\n\t\"RightDownTeeVector;\": \"\\u295D\",\n\t\"RightDownVectorBar;\": \"\\u2955\",\n\t\"RightDownVector;\": \"\\u21C2\",\n\t\"RightFloor;\": \"\\u230B\",\n\t\"rightharpoondown;\": \"\\u21C1\",\n\t\"rightharpoonup;\": \"\\u21C0\",\n\t\"rightleftarrows;\": \"\\u21C4\",\n\t\"rightleftharpoons;\": \"\\u21CC\",\n\t\"rightrightarrows;\": \"\\u21C9\",\n\t\"rightsquigarrow;\": \"\\u219D\",\n\t\"RightTeeArrow;\": \"\\u21A6\",\n\t\"RightTee;\": \"\\u22A2\",\n\t\"RightTeeVector;\": \"\\u295B\",\n\t\"rightthreetimes;\": \"\\u22CC\",\n\t\"RightTriangleBar;\": \"\\u29D0\",\n\t\"RightTriangle;\": \"\\u22B3\",\n\t\"RightTriangleEqual;\": \"\\u22B5\",\n\t\"RightUpDownVector;\": \"\\u294F\",\n\t\"RightUpTeeVector;\": \"\\u295C\",\n\t\"RightUpVectorBar;\": \"\\u2954\",\n\t\"RightUpVector;\": \"\\u21BE\",\n\t\"RightVectorBar;\": \"\\u2953\",\n\t\"RightVector;\": \"\\u21C0\",\n\t\"ring;\": \"\\u02DA\",\n\t\"risingdotseq;\": \"\\u2253\",\n\t\"rlarr;\": \"\\u21C4\",\n\t\"rlhar;\": \"\\u21CC\",\n\t\"rlm;\": \"\\u200F\",\n\t\"rmoustache;\": \"\\u23B1\",\n\t\"rmoust;\": \"\\u23B1\",\n\t\"rnmid;\": \"\\u2AEE\",\n\t\"roang;\": \"\\u27ED\",\n\t\"roarr;\": \"\\u21FE\",\n\t\"robrk;\": \"\\u27E7\",\n\t\"ropar;\": \"\\u2986\",\n\t\"ropf;\": \"\\uD835\\uDD63\",\n\t\"Ropf;\": \"\\u211D\",\n\t\"roplus;\": \"\\u2A2E\",\n\t\"rotimes;\": \"\\u2A35\",\n\t\"RoundImplies;\": \"\\u2970\",\n\t\"rpar;\": \"\\u0029\",\n\t\"rpargt;\": \"\\u2994\",\n\t\"rppolint;\": \"\\u2A12\",\n\t\"rrarr;\": \"\\u21C9\",\n\t\"Rrightarrow;\": \"\\u21DB\",\n\t\"rsaquo;\": \"\\u203A\",\n\t\"rscr;\": \"\\uD835\\uDCC7\",\n\t\"Rscr;\": \"\\u211B\",\n\t\"rsh;\": \"\\u21B1\",\n\t\"Rsh;\": \"\\u21B1\",\n\t\"rsqb;\": \"\\u005D\",\n\t\"rsquo;\": \"\\u2019\",\n\t\"rsquor;\": \"\\u2019\",\n\t\"rthree;\": \"\\u22CC\",\n\t\"rtimes;\": \"\\u22CA\",\n\t\"rtri;\": \"\\u25B9\",\n\t\"rtrie;\": \"\\u22B5\",\n\t\"rtrif;\": \"\\u25B8\",\n\t\"rtriltri;\": \"\\u29CE\",\n\t\"RuleDelayed;\": \"\\u29F4\",\n\t\"ruluhar;\": \"\\u2968\",\n\t\"rx;\": \"\\u211E\",\n\t\"Sacute;\": \"\\u015A\",\n\t\"sacute;\": \"\\u015B\",\n\t\"sbquo;\": \"\\u201A\",\n\t\"scap;\": \"\\u2AB8\",\n\t\"Scaron;\": \"\\u0160\",\n\t\"scaron;\": \"\\u0161\",\n\t\"Sc;\": \"\\u2ABC\",\n\t\"sc;\": \"\\u227B\",\n\t\"sccue;\": \"\\u227D\",\n\t\"sce;\": \"\\u2AB0\",\n\t\"scE;\": \"\\u2AB4\",\n\t\"Scedil;\": \"\\u015E\",\n\t\"scedil;\": \"\\u015F\",\n\t\"Scirc;\": \"\\u015C\",\n\t\"scirc;\": \"\\u015D\",\n\t\"scnap;\": \"\\u2ABA\",\n\t\"scnE;\": \"\\u2AB6\",\n\t\"scnsim;\": \"\\u22E9\",\n\t\"scpolint;\": \"\\u2A13\",\n\t\"scsim;\": \"\\u227F\",\n\t\"Scy;\": \"\\u0421\",\n\t\"scy;\": \"\\u0441\",\n\t\"sdotb;\": \"\\u22A1\",\n\t\"sdot;\": \"\\u22C5\",\n\t\"sdote;\": \"\\u2A66\",\n\t\"searhk;\": \"\\u2925\",\n\t\"searr;\": \"\\u2198\",\n\t\"seArr;\": \"\\u21D8\",\n\t\"searrow;\": \"\\u2198\",\n\t\"sect;\": \"\\u00A7\",\n\t\"sect\": \"\\u00A7\",\n\t\"semi;\": \"\\u003B\",\n\t\"seswar;\": \"\\u2929\",\n\t\"setminus;\": \"\\u2216\",\n\t\"setmn;\": \"\\u2216\",\n\t\"sext;\": \"\\u2736\",\n\t\"Sfr;\": \"\\uD835\\uDD16\",\n\t\"sfr;\": \"\\uD835\\uDD30\",\n\t\"sfrown;\": \"\\u2322\",\n\t\"sharp;\": \"\\u266F\",\n\t\"SHCHcy;\": \"\\u0429\",\n\t\"shchcy;\": \"\\u0449\",\n\t\"SHcy;\": \"\\u0428\",\n\t\"shcy;\": \"\\u0448\",\n\t\"ShortDownArrow;\": \"\\u2193\",\n\t\"ShortLeftArrow;\": \"\\u2190\",\n\t\"shortmid;\": \"\\u2223\",\n\t\"shortparallel;\": \"\\u2225\",\n\t\"ShortRightArrow;\": \"\\u2192\",\n\t\"ShortUpArrow;\": \"\\u2191\",\n\t\"shy;\": \"\\u00AD\",\n\t\"shy\": \"\\u00AD\",\n\t\"Sigma;\": \"\\u03A3\",\n\t\"sigma;\": \"\\u03C3\",\n\t\"sigmaf;\": \"\\u03C2\",\n\t\"sigmav;\": \"\\u03C2\",\n\t\"sim;\": \"\\u223C\",\n\t\"simdot;\": \"\\u2A6A\",\n\t\"sime;\": \"\\u2243\",\n\t\"simeq;\": \"\\u2243\",\n\t\"simg;\": \"\\u2A9E\",\n\t\"simgE;\": \"\\u2AA0\",\n\t\"siml;\": \"\\u2A9D\",\n\t\"simlE;\": \"\\u2A9F\",\n\t\"simne;\": \"\\u2246\",\n\t\"simplus;\": \"\\u2A24\",\n\t\"simrarr;\": \"\\u2972\",\n\t\"slarr;\": \"\\u2190\",\n\t\"SmallCircle;\": \"\\u2218\",\n\t\"smallsetminus;\": \"\\u2216\",\n\t\"smashp;\": \"\\u2A33\",\n\t\"smeparsl;\": \"\\u29E4\",\n\t\"smid;\": \"\\u2223\",\n\t\"smile;\": \"\\u2323\",\n\t\"smt;\": \"\\u2AAA\",\n\t\"smte;\": \"\\u2AAC\",\n\t\"smtes;\": \"\\u2AAC\\uFE00\",\n\t\"SOFTcy;\": \"\\u042C\",\n\t\"softcy;\": \"\\u044C\",\n\t\"solbar;\": \"\\u233F\",\n\t\"solb;\": \"\\u29C4\",\n\t\"sol;\": \"\\u002F\",\n\t\"Sopf;\": \"\\uD835\\uDD4A\",\n\t\"sopf;\": \"\\uD835\\uDD64\",\n\t\"spades;\": \"\\u2660\",\n\t\"spadesuit;\": \"\\u2660\",\n\t\"spar;\": \"\\u2225\",\n\t\"sqcap;\": \"\\u2293\",\n\t\"sqcaps;\": \"\\u2293\\uFE00\",\n\t\"sqcup;\": \"\\u2294\",\n\t\"sqcups;\": \"\\u2294\\uFE00\",\n\t\"Sqrt;\": \"\\u221A\",\n\t\"sqsub;\": \"\\u228F\",\n\t\"sqsube;\": \"\\u2291\",\n\t\"sqsubset;\": \"\\u228F\",\n\t\"sqsubseteq;\": \"\\u2291\",\n\t\"sqsup;\": \"\\u2290\",\n\t\"sqsupe;\": \"\\u2292\",\n\t\"sqsupset;\": \"\\u2290\",\n\t\"sqsupseteq;\": \"\\u2292\",\n\t\"square;\": \"\\u25A1\",\n\t\"Square;\": \"\\u25A1\",\n\t\"SquareIntersection;\": \"\\u2293\",\n\t\"SquareSubset;\": \"\\u228F\",\n\t\"SquareSubsetEqual;\": \"\\u2291\",\n\t\"SquareSuperset;\": \"\\u2290\",\n\t\"SquareSupersetEqual;\": \"\\u2292\",\n\t\"SquareUnion;\": \"\\u2294\",\n\t\"squarf;\": \"\\u25AA\",\n\t\"squ;\": \"\\u25A1\",\n\t\"squf;\": \"\\u25AA\",\n\t\"srarr;\": \"\\u2192\",\n\t\"Sscr;\": \"\\uD835\\uDCAE\",\n\t\"sscr;\": \"\\uD835\\uDCC8\",\n\t\"ssetmn;\": \"\\u2216\",\n\t\"ssmile;\": \"\\u2323\",\n\t\"sstarf;\": \"\\u22C6\",\n\t\"Star;\": \"\\u22C6\",\n\t\"star;\": \"\\u2606\",\n\t\"starf;\": \"\\u2605\",\n\t\"straightepsilon;\": \"\\u03F5\",\n\t\"straightphi;\": \"\\u03D5\",\n\t\"strns;\": \"\\u00AF\",\n\t\"sub;\": \"\\u2282\",\n\t\"Sub;\": \"\\u22D0\",\n\t\"subdot;\": \"\\u2ABD\",\n\t\"subE;\": \"\\u2AC5\",\n\t\"sube;\": \"\\u2286\",\n\t\"subedot;\": \"\\u2AC3\",\n\t\"submult;\": \"\\u2AC1\",\n\t\"subnE;\": \"\\u2ACB\",\n\t\"subne;\": \"\\u228A\",\n\t\"subplus;\": \"\\u2ABF\",\n\t\"subrarr;\": \"\\u2979\",\n\t\"subset;\": \"\\u2282\",\n\t\"Subset;\": \"\\u22D0\",\n\t\"subseteq;\": \"\\u2286\",\n\t\"subseteqq;\": \"\\u2AC5\",\n\t\"SubsetEqual;\": \"\\u2286\",\n\t\"subsetneq;\": \"\\u228A\",\n\t\"subsetneqq;\": \"\\u2ACB\",\n\t\"subsim;\": \"\\u2AC7\",\n\t\"subsub;\": \"\\u2AD5\",\n\t\"subsup;\": \"\\u2AD3\",\n\t\"succapprox;\": \"\\u2AB8\",\n\t\"succ;\": \"\\u227B\",\n\t\"succcurlyeq;\": \"\\u227D\",\n\t\"Succeeds;\": \"\\u227B\",\n\t\"SucceedsEqual;\": \"\\u2AB0\",\n\t\"SucceedsSlantEqual;\": \"\\u227D\",\n\t\"SucceedsTilde;\": \"\\u227F\",\n\t\"succeq;\": \"\\u2AB0\",\n\t\"succnapprox;\": \"\\u2ABA\",\n\t\"succneqq;\": \"\\u2AB6\",\n\t\"succnsim;\": \"\\u22E9\",\n\t\"succsim;\": \"\\u227F\",\n\t\"SuchThat;\": \"\\u220B\",\n\t\"sum;\": \"\\u2211\",\n\t\"Sum;\": \"\\u2211\",\n\t\"sung;\": \"\\u266A\",\n\t\"sup1;\": \"\\u00B9\",\n\t\"sup1\": \"\\u00B9\",\n\t\"sup2;\": \"\\u00B2\",\n\t\"sup2\": \"\\u00B2\",\n\t\"sup3;\": \"\\u00B3\",\n\t\"sup3\": \"\\u00B3\",\n\t\"sup;\": \"\\u2283\",\n\t\"Sup;\": \"\\u22D1\",\n\t\"supdot;\": \"\\u2ABE\",\n\t\"supdsub;\": \"\\u2AD8\",\n\t\"supE;\": \"\\u2AC6\",\n\t\"supe;\": \"\\u2287\",\n\t\"supedot;\": \"\\u2AC4\",\n\t\"Superset;\": \"\\u2283\",\n\t\"SupersetEqual;\": \"\\u2287\",\n\t\"suphsol;\": \"\\u27C9\",\n\t\"suphsub;\": \"\\u2AD7\",\n\t\"suplarr;\": \"\\u297B\",\n\t\"supmult;\": \"\\u2AC2\",\n\t\"supnE;\": \"\\u2ACC\",\n\t\"supne;\": \"\\u228B\",\n\t\"supplus;\": \"\\u2AC0\",\n\t\"supset;\": \"\\u2283\",\n\t\"Supset;\": \"\\u22D1\",\n\t\"supseteq;\": \"\\u2287\",\n\t\"supseteqq;\": \"\\u2AC6\",\n\t\"supsetneq;\": \"\\u228B\",\n\t\"supsetneqq;\": \"\\u2ACC\",\n\t\"supsim;\": \"\\u2AC8\",\n\t\"supsub;\": \"\\u2AD4\",\n\t\"supsup;\": \"\\u2AD6\",\n\t\"swarhk;\": \"\\u2926\",\n\t\"swarr;\": \"\\u2199\",\n\t\"swArr;\": \"\\u21D9\",\n\t\"swarrow;\": \"\\u2199\",\n\t\"swnwar;\": \"\\u292A\",\n\t\"szlig;\": \"\\u00DF\",\n\t\"szlig\": \"\\u00DF\",\n\t\"Tab;\": \"\\u0009\",\n\t\"target;\": \"\\u2316\",\n\t\"Tau;\": \"\\u03A4\",\n\t\"tau;\": \"\\u03C4\",\n\t\"tbrk;\": \"\\u23B4\",\n\t\"Tcaron;\": \"\\u0164\",\n\t\"tcaron;\": \"\\u0165\",\n\t\"Tcedil;\": \"\\u0162\",\n\t\"tcedil;\": \"\\u0163\",\n\t\"Tcy;\": \"\\u0422\",\n\t\"tcy;\": \"\\u0442\",\n\t\"tdot;\": \"\\u20DB\",\n\t\"telrec;\": \"\\u2315\",\n\t\"Tfr;\": \"\\uD835\\uDD17\",\n\t\"tfr;\": \"\\uD835\\uDD31\",\n\t\"there4;\": \"\\u2234\",\n\t\"therefore;\": \"\\u2234\",\n\t\"Therefore;\": \"\\u2234\",\n\t\"Theta;\": \"\\u0398\",\n\t\"theta;\": \"\\u03B8\",\n\t\"thetasym;\": \"\\u03D1\",\n\t\"thetav;\": \"\\u03D1\",\n\t\"thickapprox;\": \"\\u2248\",\n\t\"thicksim;\": \"\\u223C\",\n\t\"ThickSpace;\": \"\\u205F\\u200A\",\n\t\"ThinSpace;\": \"\\u2009\",\n\t\"thinsp;\": \"\\u2009\",\n\t\"thkap;\": \"\\u2248\",\n\t\"thksim;\": \"\\u223C\",\n\t\"THORN;\": \"\\u00DE\",\n\t\"THORN\": \"\\u00DE\",\n\t\"thorn;\": \"\\u00FE\",\n\t\"thorn\": \"\\u00FE\",\n\t\"tilde;\": \"\\u02DC\",\n\t\"Tilde;\": \"\\u223C\",\n\t\"TildeEqual;\": \"\\u2243\",\n\t\"TildeFullEqual;\": \"\\u2245\",\n\t\"TildeTilde;\": \"\\u2248\",\n\t\"timesbar;\": \"\\u2A31\",\n\t\"timesb;\": \"\\u22A0\",\n\t\"times;\": \"\\u00D7\",\n\t\"times\": \"\\u00D7\",\n\t\"timesd;\": \"\\u2A30\",\n\t\"tint;\": \"\\u222D\",\n\t\"toea;\": \"\\u2928\",\n\t\"topbot;\": \"\\u2336\",\n\t\"topcir;\": \"\\u2AF1\",\n\t\"top;\": \"\\u22A4\",\n\t\"Topf;\": \"\\uD835\\uDD4B\",\n\t\"topf;\": \"\\uD835\\uDD65\",\n\t\"topfork;\": \"\\u2ADA\",\n\t\"tosa;\": \"\\u2929\",\n\t\"tprime;\": \"\\u2034\",\n\t\"trade;\": \"\\u2122\",\n\t\"TRADE;\": \"\\u2122\",\n\t\"triangle;\": \"\\u25B5\",\n\t\"triangledown;\": \"\\u25BF\",\n\t\"triangleleft;\": \"\\u25C3\",\n\t\"trianglelefteq;\": \"\\u22B4\",\n\t\"triangleq;\": \"\\u225C\",\n\t\"triangleright;\": \"\\u25B9\",\n\t\"trianglerighteq;\": \"\\u22B5\",\n\t\"tridot;\": \"\\u25EC\",\n\t\"trie;\": \"\\u225C\",\n\t\"triminus;\": \"\\u2A3A\",\n\t\"TripleDot;\": \"\\u20DB\",\n\t\"triplus;\": \"\\u2A39\",\n\t\"trisb;\": \"\\u29CD\",\n\t\"tritime;\": \"\\u2A3B\",\n\t\"trpezium;\": \"\\u23E2\",\n\t\"Tscr;\": \"\\uD835\\uDCAF\",\n\t\"tscr;\": \"\\uD835\\uDCC9\",\n\t\"TScy;\": \"\\u0426\",\n\t\"tscy;\": \"\\u0446\",\n\t\"TSHcy;\": \"\\u040B\",\n\t\"tshcy;\": \"\\u045B\",\n\t\"Tstrok;\": \"\\u0166\",\n\t\"tstrok;\": \"\\u0167\",\n\t\"twixt;\": \"\\u226C\",\n\t\"twoheadleftarrow;\": \"\\u219E\",\n\t\"twoheadrightarrow;\": \"\\u21A0\",\n\t\"Uacute;\": \"\\u00DA\",\n\t\"Uacute\": \"\\u00DA\",\n\t\"uacute;\": \"\\u00FA\",\n\t\"uacute\": \"\\u00FA\",\n\t\"uarr;\": \"\\u2191\",\n\t\"Uarr;\": \"\\u219F\",\n\t\"uArr;\": \"\\u21D1\",\n\t\"Uarrocir;\": \"\\u2949\",\n\t\"Ubrcy;\": \"\\u040E\",\n\t\"ubrcy;\": \"\\u045E\",\n\t\"Ubreve;\": \"\\u016C\",\n\t\"ubreve;\": \"\\u016D\",\n\t\"Ucirc;\": \"\\u00DB\",\n\t\"Ucirc\": \"\\u00DB\",\n\t\"ucirc;\": \"\\u00FB\",\n\t\"ucirc\": \"\\u00FB\",\n\t\"Ucy;\": \"\\u0423\",\n\t\"ucy;\": \"\\u0443\",\n\t\"udarr;\": \"\\u21C5\",\n\t\"Udblac;\": \"\\u0170\",\n\t\"udblac;\": \"\\u0171\",\n\t\"udhar;\": \"\\u296E\",\n\t\"ufisht;\": \"\\u297E\",\n\t\"Ufr;\": \"\\uD835\\uDD18\",\n\t\"ufr;\": \"\\uD835\\uDD32\",\n\t\"Ugrave;\": \"\\u00D9\",\n\t\"Ugrave\": \"\\u00D9\",\n\t\"ugrave;\": \"\\u00F9\",\n\t\"ugrave\": \"\\u00F9\",\n\t\"uHar;\": \"\\u2963\",\n\t\"uharl;\": \"\\u21BF\",\n\t\"uharr;\": \"\\u21BE\",\n\t\"uhblk;\": \"\\u2580\",\n\t\"ulcorn;\": \"\\u231C\",\n\t\"ulcorner;\": \"\\u231C\",\n\t\"ulcrop;\": \"\\u230F\",\n\t\"ultri;\": \"\\u25F8\",\n\t\"Umacr;\": \"\\u016A\",\n\t\"umacr;\": \"\\u016B\",\n\t\"uml;\": \"\\u00A8\",\n\t\"uml\": \"\\u00A8\",\n\t\"UnderBar;\": \"\\u005F\",\n\t\"UnderBrace;\": \"\\u23DF\",\n\t\"UnderBracket;\": \"\\u23B5\",\n\t\"UnderParenthesis;\": \"\\u23DD\",\n\t\"Union;\": \"\\u22C3\",\n\t\"UnionPlus;\": \"\\u228E\",\n\t\"Uogon;\": \"\\u0172\",\n\t\"uogon;\": \"\\u0173\",\n\t\"Uopf;\": \"\\uD835\\uDD4C\",\n\t\"uopf;\": \"\\uD835\\uDD66\",\n\t\"UpArrowBar;\": \"\\u2912\",\n\t\"uparrow;\": \"\\u2191\",\n\t\"UpArrow;\": \"\\u2191\",\n\t\"Uparrow;\": \"\\u21D1\",\n\t\"UpArrowDownArrow;\": \"\\u21C5\",\n\t\"updownarrow;\": \"\\u2195\",\n\t\"UpDownArrow;\": \"\\u2195\",\n\t\"Updownarrow;\": \"\\u21D5\",\n\t\"UpEquilibrium;\": \"\\u296E\",\n\t\"upharpoonleft;\": \"\\u21BF\",\n\t\"upharpoonright;\": \"\\u21BE\",\n\t\"uplus;\": \"\\u228E\",\n\t\"UpperLeftArrow;\": \"\\u2196\",\n\t\"UpperRightArrow;\": \"\\u2197\",\n\t\"upsi;\": \"\\u03C5\",\n\t\"Upsi;\": \"\\u03D2\",\n\t\"upsih;\": \"\\u03D2\",\n\t\"Upsilon;\": \"\\u03A5\",\n\t\"upsilon;\": \"\\u03C5\",\n\t\"UpTeeArrow;\": \"\\u21A5\",\n\t\"UpTee;\": \"\\u22A5\",\n\t\"upuparrows;\": \"\\u21C8\",\n\t\"urcorn;\": \"\\u231D\",\n\t\"urcorner;\": \"\\u231D\",\n\t\"urcrop;\": \"\\u230E\",\n\t\"Uring;\": \"\\u016E\",\n\t\"uring;\": \"\\u016F\",\n\t\"urtri;\": \"\\u25F9\",\n\t\"Uscr;\": \"\\uD835\\uDCB0\",\n\t\"uscr;\": \"\\uD835\\uDCCA\",\n\t\"utdot;\": \"\\u22F0\",\n\t\"Utilde;\": \"\\u0168\",\n\t\"utilde;\": \"\\u0169\",\n\t\"utri;\": \"\\u25B5\",\n\t\"utrif;\": \"\\u25B4\",\n\t\"uuarr;\": \"\\u21C8\",\n\t\"Uuml;\": \"\\u00DC\",\n\t\"Uuml\": \"\\u00DC\",\n\t\"uuml;\": \"\\u00FC\",\n\t\"uuml\": \"\\u00FC\",\n\t\"uwangle;\": \"\\u29A7\",\n\t\"vangrt;\": \"\\u299C\",\n\t\"varepsilon;\": \"\\u03F5\",\n\t\"varkappa;\": \"\\u03F0\",\n\t\"varnothing;\": \"\\u2205\",\n\t\"varphi;\": \"\\u03D5\",\n\t\"varpi;\": \"\\u03D6\",\n\t\"varpropto;\": \"\\u221D\",\n\t\"varr;\": \"\\u2195\",\n\t\"vArr;\": \"\\u21D5\",\n\t\"varrho;\": \"\\u03F1\",\n\t\"varsigma;\": \"\\u03C2\",\n\t\"varsubsetneq;\": \"\\u228A\\uFE00\",\n\t\"varsubsetneqq;\": \"\\u2ACB\\uFE00\",\n\t\"varsupsetneq;\": \"\\u228B\\uFE00\",\n\t\"varsupsetneqq;\": \"\\u2ACC\\uFE00\",\n\t\"vartheta;\": \"\\u03D1\",\n\t\"vartriangleleft;\": \"\\u22B2\",\n\t\"vartriangleright;\": \"\\u22B3\",\n\t\"vBar;\": \"\\u2AE8\",\n\t\"Vbar;\": \"\\u2AEB\",\n\t\"vBarv;\": \"\\u2AE9\",\n\t\"Vcy;\": \"\\u0412\",\n\t\"vcy;\": \"\\u0432\",\n\t\"vdash;\": \"\\u22A2\",\n\t\"vDash;\": \"\\u22A8\",\n\t\"Vdash;\": \"\\u22A9\",\n\t\"VDash;\": \"\\u22AB\",\n\t\"Vdashl;\": \"\\u2AE6\",\n\t\"veebar;\": \"\\u22BB\",\n\t\"vee;\": \"\\u2228\",\n\t\"Vee;\": \"\\u22C1\",\n\t\"veeeq;\": \"\\u225A\",\n\t\"vellip;\": \"\\u22EE\",\n\t\"verbar;\": \"\\u007C\",\n\t\"Verbar;\": \"\\u2016\",\n\t\"vert;\": \"\\u007C\",\n\t\"Vert;\": \"\\u2016\",\n\t\"VerticalBar;\": \"\\u2223\",\n\t\"VerticalLine;\": \"\\u007C\",\n\t\"VerticalSeparator;\": \"\\u2758\",\n\t\"VerticalTilde;\": \"\\u2240\",\n\t\"VeryThinSpace;\": \"\\u200A\",\n\t\"Vfr;\": \"\\uD835\\uDD19\",\n\t\"vfr;\": \"\\uD835\\uDD33\",\n\t\"vltri;\": \"\\u22B2\",\n\t\"vnsub;\": \"\\u2282\\u20D2\",\n\t\"vnsup;\": \"\\u2283\\u20D2\",\n\t\"Vopf;\": \"\\uD835\\uDD4D\",\n\t\"vopf;\": \"\\uD835\\uDD67\",\n\t\"vprop;\": \"\\u221D\",\n\t\"vrtri;\": \"\\u22B3\",\n\t\"Vscr;\": \"\\uD835\\uDCB1\",\n\t\"vscr;\": \"\\uD835\\uDCCB\",\n\t\"vsubnE;\": \"\\u2ACB\\uFE00\",\n\t\"vsubne;\": \"\\u228A\\uFE00\",\n\t\"vsupnE;\": \"\\u2ACC\\uFE00\",\n\t\"vsupne;\": \"\\u228B\\uFE00\",\n\t\"Vvdash;\": \"\\u22AA\",\n\t\"vzigzag;\": \"\\u299A\",\n\t\"Wcirc;\": \"\\u0174\",\n\t\"wcirc;\": \"\\u0175\",\n\t\"wedbar;\": \"\\u2A5F\",\n\t\"wedge;\": \"\\u2227\",\n\t\"Wedge;\": \"\\u22C0\",\n\t\"wedgeq;\": \"\\u2259\",\n\t\"weierp;\": \"\\u2118\",\n\t\"Wfr;\": \"\\uD835\\uDD1A\",\n\t\"wfr;\": \"\\uD835\\uDD34\",\n\t\"Wopf;\": \"\\uD835\\uDD4E\",\n\t\"wopf;\": \"\\uD835\\uDD68\",\n\t\"wp;\": \"\\u2118\",\n\t\"wr;\": \"\\u2240\",\n\t\"wreath;\": \"\\u2240\",\n\t\"Wscr;\": \"\\uD835\\uDCB2\",\n\t\"wscr;\": \"\\uD835\\uDCCC\",\n\t\"xcap;\": \"\\u22C2\",\n\t\"xcirc;\": \"\\u25EF\",\n\t\"xcup;\": \"\\u22C3\",\n\t\"xdtri;\": \"\\u25BD\",\n\t\"Xfr;\": \"\\uD835\\uDD1B\",\n\t\"xfr;\": \"\\uD835\\uDD35\",\n\t\"xharr;\": \"\\u27F7\",\n\t\"xhArr;\": \"\\u27FA\",\n\t\"Xi;\": \"\\u039E\",\n\t\"xi;\": \"\\u03BE\",\n\t\"xlarr;\": \"\\u27F5\",\n\t\"xlArr;\": \"\\u27F8\",\n\t\"xmap;\": \"\\u27FC\",\n\t\"xnis;\": \"\\u22FB\",\n\t\"xodot;\": \"\\u2A00\",\n\t\"Xopf;\": \"\\uD835\\uDD4F\",\n\t\"xopf;\": \"\\uD835\\uDD69\",\n\t\"xoplus;\": \"\\u2A01\",\n\t\"xotime;\": \"\\u2A02\",\n\t\"xrarr;\": \"\\u27F6\",\n\t\"xrArr;\": \"\\u27F9\",\n\t\"Xscr;\": \"\\uD835\\uDCB3\",\n\t\"xscr;\": \"\\uD835\\uDCCD\",\n\t\"xsqcup;\": \"\\u2A06\",\n\t\"xuplus;\": \"\\u2A04\",\n\t\"xutri;\": \"\\u25B3\",\n\t\"xvee;\": \"\\u22C1\",\n\t\"xwedge;\": \"\\u22C0\",\n\t\"Yacute;\": \"\\u00DD\",\n\t\"Yacute\": \"\\u00DD\",\n\t\"yacute;\": \"\\u00FD\",\n\t\"yacute\": \"\\u00FD\",\n\t\"YAcy;\": \"\\u042F\",\n\t\"yacy;\": \"\\u044F\",\n\t\"Ycirc;\": \"\\u0176\",\n\t\"ycirc;\": \"\\u0177\",\n\t\"Ycy;\": \"\\u042B\",\n\t\"ycy;\": \"\\u044B\",\n\t\"yen;\": \"\\u00A5\",\n\t\"yen\": \"\\u00A5\",\n\t\"Yfr;\": \"\\uD835\\uDD1C\",\n\t\"yfr;\": \"\\uD835\\uDD36\",\n\t\"YIcy;\": \"\\u0407\",\n\t\"yicy;\": \"\\u0457\",\n\t\"Yopf;\": \"\\uD835\\uDD50\",\n\t\"yopf;\": \"\\uD835\\uDD6A\",\n\t\"Yscr;\": \"\\uD835\\uDCB4\",\n\t\"yscr;\": \"\\uD835\\uDCCE\",\n\t\"YUcy;\": \"\\u042E\",\n\t\"yucy;\": \"\\u044E\",\n\t\"yuml;\": \"\\u00FF\",\n\t\"yuml\": \"\\u00FF\",\n\t\"Yuml;\": \"\\u0178\",\n\t\"Zacute;\": \"\\u0179\",\n\t\"zacute;\": \"\\u017A\",\n\t\"Zcaron;\": \"\\u017D\",\n\t\"zcaron;\": \"\\u017E\",\n\t\"Zcy;\": \"\\u0417\",\n\t\"zcy;\": \"\\u0437\",\n\t\"Zdot;\": \"\\u017B\",\n\t\"zdot;\": \"\\u017C\",\n\t\"zeetrf;\": \"\\u2128\",\n\t\"ZeroWidthSpace;\": \"\\u200B\",\n\t\"Zeta;\": \"\\u0396\",\n\t\"zeta;\": \"\\u03B6\",\n\t\"zfr;\": \"\\uD835\\uDD37\",\n\t\"Zfr;\": \"\\u2128\",\n\t\"ZHcy;\": \"\\u0416\",\n\t\"zhcy;\": \"\\u0436\",\n\t\"zigrarr;\": \"\\u21DD\",\n\t\"zopf;\": \"\\uD835\\uDD6B\",\n\t\"Zopf;\": \"\\u2124\",\n\t\"Zscr;\": \"\\uD835\\uDCB5\",\n\t\"zscr;\": \"\\uD835\\uDCCF\",\n\t\"zwj;\": \"\\u200D\",\n\t\"zwnj;\": \"\\u200C\"\n};\n\n},\n{}],\n13:[function(_dereq_,module,exports){\nvar util = _dereq_('util/');\n\nvar pSlice = Array.prototype.slice;\nvar hasOwn = Object.prototype.hasOwnProperty;\n\nvar assert = module.exports = ok;\n\nassert.AssertionError = function AssertionError(options) {\n  this.name = 'AssertionError';\n  this.actual = options.actual;\n  this.expected = options.expected;\n  this.operator = options.operator;\n  if (options.message) {\n    this.message = options.message;\n    this.generatedMessage = false;\n  } else {\n    this.message = getMessage(this);\n    this.generatedMessage = true;\n  }\n  var stackStartFunction = options.stackStartFunction || fail;\n\n  if (Error.captureStackTrace) {\n    Error.captureStackTrace(this, stackStartFunction);\n  }\n  else {\n    var err = new Error();\n    if (err.stack) {\n      var out = err.stack;\n      var fn_name = stackStartFunction.name;\n      var idx = out.indexOf('\\n' + fn_name);\n      if (idx >= 0) {\n        var next_line = out.indexOf('\\n', idx + 1);\n        out = out.substring(next_line + 1);\n      }\n\n      this.stack = out;\n    }\n  }\n};\nutil.inherits(assert.AssertionError, Error);\n\nfunction replacer(key, value) {\n  if (util.isUndefined(value)) {\n    return '' + value;\n  }\n  if (util.isNumber(value) && (isNaN(value) || !isFinite(value))) {\n    return value.toString();\n  }\n  if (util.isFunction(value) || util.isRegExp(value)) {\n    return value.toString();\n  }\n  return value;\n}\n\nfunction truncate(s, n) {\n  if (util.isString(s)) {\n    return s.length < n ? s : s.slice(0, n);\n  } else {\n    return s;\n  }\n}\n\nfunction getMessage(self) {\n  return truncate(JSON.stringify(self.actual, replacer), 128) + ' ' +\n         self.operator + ' ' +\n         truncate(JSON.stringify(self.expected, replacer), 128);\n}\n\nfunction fail(actual, expected, message, operator, stackStartFunction) {\n  throw new assert.AssertionError({\n    message: message,\n    actual: actual,\n    expected: expected,\n    operator: operator,\n    stackStartFunction: stackStartFunction\n  });\n}\nassert.fail = fail;\n\nfunction ok(value, message) {\n  if (!value) fail(value, true, message, '==', assert.ok);\n}\nassert.ok = ok;\n\nassert.equal = function equal(actual, expected, message) {\n  if (actual != expected) fail(actual, expected, message, '==', assert.equal);\n};\n\nassert.notEqual = function notEqual(actual, expected, message) {\n  if (actual == expected) {\n    fail(actual, expected, message, '!=', assert.notEqual);\n  }\n};\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n  if (!_deepEqual(actual, expected)) {\n    fail(actual, expected, message, 'deepEqual', assert.deepEqual);\n  }\n};\n\nfunction _deepEqual(actual, expected) {\n  if (actual === expected) {\n    return true;\n\n  } else if (util.isBuffer(actual) && util.isBuffer(expected)) {\n    if (actual.length != expected.length) return false;\n\n    for (var i = 0; i < actual.length; i++) {\n      if (actual[i] !== expected[i]) return false;\n    }\n\n    return true;\n  } else if (util.isDate(actual) && util.isDate(expected)) {\n    return actual.getTime() === expected.getTime();\n  } else if (util.isRegExp(actual) && util.isRegExp(expected)) {\n    return actual.source === expected.source &&\n           actual.global === expected.global &&\n           actual.multiline === expected.multiline &&\n           actual.lastIndex === expected.lastIndex &&\n           actual.ignoreCase === expected.ignoreCase;\n  } else if (!util.isObject(actual) && !util.isObject(expected)) {\n    return actual == expected;\n  } else {\n    return objEquiv(actual, expected);\n  }\n}\n\nfunction isArguments(object) {\n  return Object.prototype.toString.call(object) == '[object Arguments]';\n}\n\nfunction objEquiv(a, b) {\n  if (util.isNullOrUndefined(a) || util.isNullOrUndefined(b))\n    return false;\n  if (a.prototype !== b.prototype) return false;\n  if (isArguments(a)) {\n    if (!isArguments(b)) {\n      return false;\n    }\n    a = pSlice.call(a);\n    b = pSlice.call(b);\n    return _deepEqual(a, b);\n  }\n  try {\n    var ka = objectKeys(a),\n        kb = objectKeys(b),\n        key, i;\n  } catch (e) {//happens when one is a string literal and the other isn't\n    return false;\n  }\n  if (ka.length != kb.length)\n    return false;\n  ka.sort();\n  kb.sort();\n  for (i = ka.length - 1; i >= 0; i--) {\n    if (ka[i] != kb[i])\n      return false;\n  }\n  for (i = ka.length - 1; i >= 0; i--) {\n    key = ka[i];\n    if (!_deepEqual(a[key], b[key])) return false;\n  }\n  return true;\n}\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n  if (_deepEqual(actual, expected)) {\n    fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);\n  }\n};\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n  if (actual !== expected) {\n    fail(actual, expected, message, '===', assert.strictEqual);\n  }\n};\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n  if (actual === expected) {\n    fail(actual, expected, message, '!==', assert.notStrictEqual);\n  }\n};\n\nfunction expectedException(actual, expected) {\n  if (!actual || !expected) {\n    return false;\n  }\n\n  if (Object.prototype.toString.call(expected) == '[object RegExp]') {\n    return expected.test(actual);\n  } else if (actual instanceof expected) {\n    return true;\n  } else if (expected.call({}, actual) === true) {\n    return true;\n  }\n\n  return false;\n}\n\nfunction _throws(shouldThrow, block, expected, message) {\n  var actual;\n\n  if (util.isString(expected)) {\n    message = expected;\n    expected = null;\n  }\n\n  try {\n    block();\n  } catch (e) {\n    actual = e;\n  }\n\n  message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +\n            (message ? ' ' + message : '.');\n\n  if (shouldThrow && !actual) {\n    fail(actual, expected, 'Missing expected exception' + message);\n  }\n\n  if (!shouldThrow && expectedException(actual, expected)) {\n    fail(actual, expected, 'Got unwanted exception' + message);\n  }\n\n  if ((shouldThrow && actual && expected &&\n      !expectedException(actual, expected)) || (!shouldThrow && actual)) {\n    throw actual;\n  }\n}\n\nassert.throws = function(block, /*optional*/error, /*optional*/message) {\n  _throws.apply(this, [true].concat(pSlice.call(arguments)));\n};\nassert.doesNotThrow = function(block, /*optional*/message) {\n  _throws.apply(this, [false].concat(pSlice.call(arguments)));\n};\n\nassert.ifError = function(err) { if (err) {throw err;}};\n\nvar objectKeys = Object.keys || function (obj) {\n  var keys = [];\n  for (var key in obj) {\n    if (hasOwn.call(obj, key)) keys.push(key);\n  }\n  return keys;\n};\n\n},\n{\"util/\":15}],\n14:[function(_dereq_,module,exports){\nmodule.exports = function isBuffer(arg) {\n  return arg && typeof arg === 'object'\n    && typeof arg.copy === 'function'\n    && typeof arg.fill === 'function'\n    && typeof arg.readUInt8 === 'function';\n}\n},\n{}],\n15:[function(_dereq_,module,exports){\n(function (process,global){\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n  if (!isString(f)) {\n    var objects = [];\n    for (var i = 0; i < arguments.length; i++) {\n      objects.push(inspect(arguments[i]));\n    }\n    return objects.join(' ');\n  }\n\n  var i = 1;\n  var args = arguments;\n  var len = args.length;\n  var str = String(f).replace(formatRegExp, function(x) {\n    if (x === '%%') return '%';\n    if (i >= len) return x;\n    switch (x) {\n      case '%s': return String(args[i++]);\n      case '%d': return Number(args[i++]);\n      case '%j':\n        try {\n          return JSON.stringify(args[i++]);\n        } catch (_) {\n          return '[Circular]';\n        }\n      default:\n        return x;\n    }\n  });\n  for (var x = args[i]; i < len; x = args[++i]) {\n    if (isNull(x) || !isObject(x)) {\n      str += ' ' + x;\n    } else {\n      str += ' ' + inspect(x);\n    }\n  }\n  return str;\n};\nexports.deprecate = function(fn, msg) {\n  if (isUndefined(global.process)) {\n    return function() {\n      return exports.deprecate(fn, msg).apply(this, arguments);\n    };\n  }\n\n  if (process.noDeprecation === true) {\n    return fn;\n  }\n\n  var warned = false;\n  function deprecated() {\n    if (!warned) {\n      if (process.throwDeprecation) {\n        throw new Error(msg);\n      } else if (process.traceDeprecation) {\n        console.trace(msg);\n      } else {\n        console.error(msg);\n      }\n      warned = true;\n    }\n    return fn.apply(this, arguments);\n  }\n\n  return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n  if (isUndefined(debugEnviron))\n    debugEnviron = process.env.NODE_DEBUG || '';\n  set = set.toUpperCase();\n  if (!debugs[set]) {\n    if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n      var pid = process.pid;\n      debugs[set] = function() {\n        var msg = exports.format.apply(exports, arguments);\n        console.error('%s %d: %s', set, pid, msg);\n      };\n    } else {\n      debugs[set] = function() {};\n    }\n  }\n  return debugs[set];\n};\nfunction inspect(obj, opts) {\n  var ctx = {\n    seen: [],\n    stylize: stylizeNoColor\n  };\n  if (arguments.length >= 3) ctx.depth = arguments[2];\n  if (arguments.length >= 4) ctx.colors = arguments[3];\n  if (isBoolean(opts)) {\n    ctx.showHidden = opts;\n  } else if (opts) {\n    exports._extend(ctx, opts);\n  }\n  if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n  if (isUndefined(ctx.depth)) ctx.depth = 2;\n  if (isUndefined(ctx.colors)) ctx.colors = false;\n  if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n  if (ctx.colors) ctx.stylize = stylizeWithColor;\n  return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\ninspect.colors = {\n  'bold' : [1, 22],\n  'italic' : [3, 23],\n  'underline' : [4, 24],\n  'inverse' : [7, 27],\n  'white' : [37, 39],\n  'grey' : [90, 39],\n  'black' : [30, 39],\n  'blue' : [34, 39],\n  'cyan' : [36, 39],\n  'green' : [32, 39],\n  'magenta' : [35, 39],\n  'red' : [31, 39],\n  'yellow' : [33, 39]\n};\ninspect.styles = {\n  'special': 'cyan',\n  'number': 'yellow',\n  'boolean': 'yellow',\n  'undefined': 'grey',\n  'null': 'bold',\n  'string': 'green',\n  'date': 'magenta',\n  'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n  var style = inspect.styles[styleType];\n\n  if (style) {\n    return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n           '\\u001b[' + inspect.colors[style][1] + 'm';\n  } else {\n    return str;\n  }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n  return str;\n}\n\n\nfunction arrayToHash(array) {\n  var hash = {};\n\n  array.forEach(function(val, idx) {\n    hash[val] = true;\n  });\n\n  return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n  if (ctx.customInspect &&\n      value &&\n      isFunction(value.inspect) &&\n      value.inspect !== exports.inspect &&\n      !(value.constructor && value.constructor.prototype === value)) {\n    var ret = value.inspect(recurseTimes, ctx);\n    if (!isString(ret)) {\n      ret = formatValue(ctx, ret, recurseTimes);\n    }\n    return ret;\n  }\n  var primitive = formatPrimitive(ctx, value);\n  if (primitive) {\n    return primitive;\n  }\n  var keys = Object.keys(value);\n  var visibleKeys = arrayToHash(keys);\n\n  if (ctx.showHidden) {\n    keys = Object.getOwnPropertyNames(value);\n  }\n  if (isError(value)\n      && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n    return formatError(value);\n  }\n  if (keys.length === 0) {\n    if (isFunction(value)) {\n      var name = value.name ? ': ' + value.name : '';\n      return ctx.stylize('[Function' + name + ']', 'special');\n    }\n    if (isRegExp(value)) {\n      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n    }\n    if (isDate(value)) {\n      return ctx.stylize(Date.prototype.toString.call(value), 'date');\n    }\n    if (isError(value)) {\n      return formatError(value);\n    }\n  }\n\n  var base = '', array = false, braces = ['{', '}'];\n  if (isArray(value)) {\n    array = true;\n    braces = ['[', ']'];\n  }\n  if (isFunction(value)) {\n    var n = value.name ? ': ' + value.name : '';\n    base = ' [Function' + n + ']';\n  }\n  if (isRegExp(value)) {\n    base = ' ' + RegExp.prototype.toString.call(value);\n  }\n  if (isDate(value)) {\n    base = ' ' + Date.prototype.toUTCString.call(value);\n  }\n  if (isError(value)) {\n    base = ' ' + formatError(value);\n  }\n\n  if (keys.length === 0 && (!array || value.length == 0)) {\n    return braces[0] + base + braces[1];\n  }\n\n  if (recurseTimes < 0) {\n    if (isRegExp(value)) {\n      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n    } else {\n      return ctx.stylize('[Object]', 'special');\n    }\n  }\n\n  ctx.seen.push(value);\n\n  var output;\n  if (array) {\n    output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n  } else {\n    output = keys.map(function(key) {\n      return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n    });\n  }\n\n  ctx.seen.pop();\n\n  return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n  if (isUndefined(value))\n    return ctx.stylize('undefined', 'undefined');\n  if (isString(value)) {\n    var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n                                             .replace(/'/g, \"\\\\'\")\n                                             .replace(/\\\\\"/g, '\"') + '\\'';\n    return ctx.stylize(simple, 'string');\n  }\n  if (isNumber(value))\n    return ctx.stylize('' + value, 'number');\n  if (isBoolean(value))\n    return ctx.stylize('' + value, 'boolean');\n  if (isNull(value))\n    return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n  return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n  var output = [];\n  for (var i = 0, l = value.length; i < l; ++i) {\n    if (hasOwnProperty(value, String(i))) {\n      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n          String(i), true));\n    } else {\n      output.push('');\n    }\n  }\n  keys.forEach(function(key) {\n    if (!key.match(/^\\d+$/)) {\n      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n          key, true));\n    }\n  });\n  return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n  var name, str, desc;\n  desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n  if (desc.get) {\n    if (desc.set) {\n      str = ctx.stylize('[Getter/Setter]', 'special');\n    } else {\n      str = ctx.stylize('[Getter]', 'special');\n    }\n  } else {\n    if (desc.set) {\n      str = ctx.stylize('[Setter]', 'special');\n    }\n  }\n  if (!hasOwnProperty(visibleKeys, key)) {\n    name = '[' + key + ']';\n  }\n  if (!str) {\n    if (ctx.seen.indexOf(desc.value) < 0) {\n      if (isNull(recurseTimes)) {\n        str = formatValue(ctx, desc.value, null);\n      } else {\n        str = formatValue(ctx, desc.value, recurseTimes - 1);\n      }\n      if (str.indexOf('\\n') > -1) {\n        if (array) {\n          str = str.split('\\n').map(function(line) {\n            return '  ' + line;\n          }).join('\\n').substr(2);\n        } else {\n          str = '\\n' + str.split('\\n').map(function(line) {\n            return '   ' + line;\n          }).join('\\n');\n        }\n      }\n    } else {\n      str = ctx.stylize('[Circular]', 'special');\n    }\n  }\n  if (isUndefined(name)) {\n    if (array && key.match(/^\\d+$/)) {\n      return str;\n    }\n    name = JSON.stringify('' + key);\n    if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n      name = name.substr(1, name.length - 2);\n      name = ctx.stylize(name, 'name');\n    } else {\n      name = name.replace(/'/g, \"\\\\'\")\n                 .replace(/\\\\\"/g, '\"')\n                 .replace(/(^\"|\"$)/g, \"'\");\n      name = ctx.stylize(name, 'string');\n    }\n  }\n\n  return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n  var numLinesEst = 0;\n  var length = output.reduce(function(prev, cur) {\n    numLinesEst++;\n    if (cur.indexOf('\\n') >= 0) numLinesEst++;\n    return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n  }, 0);\n\n  if (length > 60) {\n    return braces[0] +\n           (base === '' ? '' : base + '\\n ') +\n           ' ' +\n           output.join(',\\n  ') +\n           ' ' +\n           braces[1];\n  }\n\n  return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\nfunction isArray(ar) {\n  return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n  return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n  return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n  return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n  return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n  return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n  return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n  return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n  return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n  return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n  return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n  return isObject(e) &&\n      (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n  return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n  return arg === null ||\n         typeof arg === 'boolean' ||\n         typeof arg === 'number' ||\n         typeof arg === 'string' ||\n         typeof arg === 'symbol' ||  // ES6 symbol\n         typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = _dereq_('./support/isBuffer');\n\nfunction objectToString(o) {\n  return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n  return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n              'Oct', 'Nov', 'Dec'];\nfunction timestamp() {\n  var d = new Date();\n  var time = [pad(d.getHours()),\n              pad(d.getMinutes()),\n              pad(d.getSeconds())].join(':');\n  return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\nexports.log = function() {\n  console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\nexports.inherits = _dereq_('inherits');\n\nexports._extend = function(origin, add) {\n  if (!add || !isObject(add)) return origin;\n\n  var keys = Object.keys(add);\n  var i = keys.length;\n  while (i--) {\n    origin[keys[i]] = add[keys[i]];\n  }\n  return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n  return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n}).call(this,_dereq_(\"/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js\"),typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},\n{\"./support/isBuffer\":14,\"/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js\":18,\"inherits\":17}],\n16:[function(_dereq_,module,exports){\n\nfunction EventEmitter() {\n  this._events = this._events || {};\n  this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\nEventEmitter.defaultMaxListeners = 10;\nEventEmitter.prototype.setMaxListeners = function(n) {\n  if (!isNumber(n) || n < 0 || isNaN(n))\n    throw TypeError('n must be a positive number');\n  this._maxListeners = n;\n  return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n  var er, handler, len, args, i, listeners;\n\n  if (!this._events)\n    this._events = {};\n  if (type === 'error') {\n    if (!this._events.error ||\n        (isObject(this._events.error) && !this._events.error.length)) {\n      er = arguments[1];\n      if (er instanceof Error) {\n        throw er; // Unhandled 'error' event\n      } else {\n        throw TypeError('Uncaught, unspecified \"error\" event.');\n      }\n      return false;\n    }\n  }\n\n  handler = this._events[type];\n\n  if (isUndefined(handler))\n    return false;\n\n  if (isFunction(handler)) {\n    switch (arguments.length) {\n      case 1:\n        handler.call(this);\n        break;\n      case 2:\n        handler.call(this, arguments[1]);\n        break;\n      case 3:\n        handler.call(this, arguments[1], arguments[2]);\n        break;\n      default:\n        len = arguments.length;\n        args = new Array(len - 1);\n        for (i = 1; i < len; i++)\n          args[i - 1] = arguments[i];\n        handler.apply(this, args);\n    }\n  } else if (isObject(handler)) {\n    len = arguments.length;\n    args = new Array(len - 1);\n    for (i = 1; i < len; i++)\n      args[i - 1] = arguments[i];\n\n    listeners = handler.slice();\n    len = listeners.length;\n    for (i = 0; i < len; i++)\n      listeners[i].apply(this, args);\n  }\n\n  return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n  var m;\n\n  if (!isFunction(listener))\n    throw TypeError('listener must be a function');\n\n  if (!this._events)\n    this._events = {};\n  if (this._events.newListener)\n    this.emit('newListener', type,\n              isFunction(listener.listener) ?\n              listener.listener : listener);\n\n  if (!this._events[type])\n    this._events[type] = listener;\n  else if (isObject(this._events[type]))\n    this._events[type].push(listener);\n  else\n    this._events[type] = [this._events[type], listener];\n  if (isObject(this._events[type]) && !this._events[type].warned) {\n    var m;\n    if (!isUndefined(this._maxListeners)) {\n      m = this._maxListeners;\n    } else {\n      m = EventEmitter.defaultMaxListeners;\n    }\n\n    if (m && m > 0 && this._events[type].length > m) {\n      this._events[type].warned = true;\n      console.error('(node) warning: possible EventEmitter memory ' +\n                    'leak detected. %d listeners added. ' +\n                    'Use emitter.setMaxListeners() to increase limit.',\n                    this._events[type].length);\n      console.trace();\n    }\n  }\n\n  return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n  if (!isFunction(listener))\n    throw TypeError('listener must be a function');\n\n  var fired = false;\n\n  function g() {\n    this.removeListener(type, g);\n\n    if (!fired) {\n      fired = true;\n      listener.apply(this, arguments);\n    }\n  }\n\n  g.listener = listener;\n  this.on(type, g);\n\n  return this;\n};\nEventEmitter.prototype.removeListener = function(type, listener) {\n  var list, position, length, i;\n\n  if (!isFunction(listener))\n    throw TypeError('listener must be a function');\n\n  if (!this._events || !this._events[type])\n    return this;\n\n  list = this._events[type];\n  length = list.length;\n  position = -1;\n\n  if (list === listener ||\n      (isFunction(list.listener) && list.listener === listener)) {\n    delete this._events[type];\n    if (this._events.removeListener)\n      this.emit('removeListener', type, listener);\n\n  } else if (isObject(list)) {\n    for (i = length; i-- > 0;) {\n      if (list[i] === listener ||\n          (list[i].listener && list[i].listener === listener)) {\n        position = i;\n        break;\n      }\n    }\n\n    if (position < 0)\n      return this;\n\n    if (list.length === 1) {\n      list.length = 0;\n      delete this._events[type];\n    } else {\n      list.splice(position, 1);\n    }\n\n    if (this._events.removeListener)\n      this.emit('removeListener', type, listener);\n  }\n\n  return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n  var key, listeners;\n\n  if (!this._events)\n    return this;\n  if (!this._events.removeListener) {\n    if (arguments.length === 0)\n      this._events = {};\n    else if (this._events[type])\n      delete this._events[type];\n    return this;\n  }\n  if (arguments.length === 0) {\n    for (key in this._events) {\n      if (key === 'removeListener') continue;\n      this.removeAllListeners(key);\n    }\n    this.removeAllListeners('removeListener');\n    this._events = {};\n    return this;\n  }\n\n  listeners = this._events[type];\n\n  if (isFunction(listeners)) {\n    this.removeListener(type, listeners);\n  } else {\n    while (listeners.length)\n      this.removeListener(type, listeners[listeners.length - 1]);\n  }\n  delete this._events[type];\n\n  return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n  var ret;\n  if (!this._events || !this._events[type])\n    ret = [];\n  else if (isFunction(this._events[type]))\n    ret = [this._events[type]];\n  else\n    ret = this._events[type].slice();\n  return ret;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n  var ret;\n  if (!emitter._events || !emitter._events[type])\n    ret = 0;\n  else if (isFunction(emitter._events[type]))\n    ret = 1;\n  else\n    ret = emitter._events[type].length;\n  return ret;\n};\n\nfunction isFunction(arg) {\n  return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n  return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n  return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n  return arg === void 0;\n}\n\n},\n{}],\n17:[function(_dereq_,module,exports){\nif (typeof Object.create === 'function') {\n  module.exports = function inherits(ctor, superCtor) {\n    ctor.super_ = superCtor\n    ctor.prototype = Object.create(superCtor.prototype, {\n      constructor: {\n        value: ctor,\n        enumerable: false,\n        writable: true,\n        configurable: true\n      }\n    });\n  };\n} else {\n  module.exports = function inherits(ctor, superCtor) {\n    ctor.super_ = superCtor\n    var TempCtor = function () {}\n    TempCtor.prototype = superCtor.prototype\n    ctor.prototype = new TempCtor()\n    ctor.prototype.constructor = ctor\n  }\n}\n\n},\n{}],\n18:[function(_dereq_,module,exports){\n\nvar process = module.exports = {};\n\nprocess.nextTick = (function () {\n    var canSetImmediate = typeof window !== 'undefined'\n    && window.setImmediate;\n    var canPost = typeof window !== 'undefined'\n    && window.postMessage && window.addEventListener\n    ;\n\n    if (canSetImmediate) {\n        return function (f) { return window.setImmediate(f) };\n    }\n\n    if (canPost) {\n        var queue = [];\n        window.addEventListener('message', function (ev) {\n            var source = ev.source;\n            if ((source === window || source === null) && ev.data === 'process-tick') {\n                ev.stopPropagation();\n                if (queue.length > 0) {\n                    var fn = queue.shift();\n                    fn();\n                }\n            }\n        }, true);\n\n        return function nextTick(fn) {\n            queue.push(fn);\n            window.postMessage('process-tick', '*');\n        };\n    }\n\n    return function nextTick(fn) {\n        setTimeout(fn, 0);\n    };\n})();\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n}\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\n\n},\n{}],\n19:[function(_dereq_,module,exports){\nmodule.exports=_dereq_(14)\n},\n{}],\n20:[function(_dereq_,module,exports){\nmodule.exports=_dereq_(15)\n},\n{\"./support/isBuffer\":19,\"/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js\":18,\"inherits\":17}]},{},[9])\n(9)\n\n});\n\nace.define(\"ace/mode/html_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/worker/mirror\",\"ace/mode/html/saxparser\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar Mirror = require(\"../worker/mirror\").Mirror;\nvar SAXParser = require(\"./html/saxparser\").SAXParser;\n\nvar errorTypes = {\n    \"expected-doctype-but-got-start-tag\": \"info\",\n    \"expected-doctype-but-got-chars\": \"info\",\n    \"non-html-root\": \"info\"\n}\n\nvar Worker = exports.Worker = function(sender) {\n    Mirror.call(this, sender);\n    this.setTimeout(400);\n    this.context = null;\n};\n\noop.inherits(Worker, Mirror);\n\n(function() {\n\n    this.setOptions = function(options) {\n        this.context = options.context;\n    };\n\n    this.onUpdate = function() {\n        var value = this.doc.getValue();\n        if (!value)\n            return;\n        var parser = new SAXParser();\n        var errors = [];\n        var noop = function(){};\n        parser.contentHandler = {\n           startDocument: noop,\n           endDocument: noop,\n           startElement: noop,\n           endElement: noop,\n           characters: noop\n        };\n        parser.errorHandler = {\n            error: function(message, location, code) {\n                errors.push({\n                    row: location.line,\n                    column: location.column,\n                    text: message,\n                    type: errorTypes[code] || \"error\"\n                });\n            }\n        };\n        if (this.context)\n            parser.parseFragment(value, this.context);\n        else\n            parser.parse(value);\n        this.sender.emit(\"error\", errors);\n    };\n\n}).call(Worker.prototype);\n\n});\n\nace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\nfunction Empty() {}\n\nif (!Function.prototype.bind) {\n    Function.prototype.bind = function bind(that) { // .length is 1\n        var target = this;\n        if (typeof target != \"function\") {\n            throw new TypeError(\"Function.prototype.bind called on incompatible \" + target);\n        }\n        var args = slice.call(arguments, 1); // for normal call\n        var bound = function () {\n\n            if (this instanceof bound) {\n\n                var result = target.apply(\n                    this,\n                    args.concat(slice.call(arguments))\n                );\n                if (Object(result) === result) {\n                    return result;\n                }\n                return this;\n\n            } else {\n                return target.apply(\n                    that,\n                    args.concat(slice.call(arguments))\n                );\n\n            }\n\n        };\n        if(target.prototype) {\n            Empty.prototype = target.prototype;\n            bound.prototype = new Empty();\n            Empty.prototype = null;\n        }\n        return bound;\n    };\n}\nvar call = Function.prototype.call;\nvar prototypeOfArray = Array.prototype;\nvar prototypeOfObject = Object.prototype;\nvar slice = prototypeOfArray.slice;\nvar _toString = call.bind(prototypeOfObject.toString);\nvar owns = call.bind(prototypeOfObject.hasOwnProperty);\nvar defineGetter;\nvar defineSetter;\nvar lookupGetter;\nvar lookupSetter;\nvar supportsAccessors;\nif ((supportsAccessors = owns(prototypeOfObject, \"__defineGetter__\"))) {\n    defineGetter = call.bind(prototypeOfObject.__defineGetter__);\n    defineSetter = call.bind(prototypeOfObject.__defineSetter__);\n    lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);\n    lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);\n}\nif ([1,2].splice(0).length != 2) {\n    if(function() { // test IE < 9 to splice bug - see issue #138\n        function makeArray(l) {\n            var a = new Array(l+2);\n            a[0] = a[1] = 0;\n            return a;\n        }\n        var array = [], lengthBefore;\n        \n        array.splice.apply(array, makeArray(20));\n        array.splice.apply(array, makeArray(26));\n\n        lengthBefore = array.length; //46\n        array.splice(5, 0, \"XXX\"); // add one element\n\n        lengthBefore + 1 == array.length\n\n        if (lengthBefore + 1 == array.length) {\n            return true;// has right splice implementation without bugs\n        }\n    }()) {//IE 6/7\n        var array_splice = Array.prototype.splice;\n        Array.prototype.splice = function(start, deleteCount) {\n            if (!arguments.length) {\n                return [];\n            } else {\n                return array_splice.apply(this, [\n                    start === void 0 ? 0 : start,\n                    deleteCount === void 0 ? (this.length - start) : deleteCount\n                ].concat(slice.call(arguments, 2)))\n            }\n        };\n    } else {//IE8\n        Array.prototype.splice = function(pos, removeCount){\n            var length = this.length;\n            if (pos > 0) {\n                if (pos > length)\n                    pos = length;\n            } else if (pos == void 0) {\n                pos = 0;\n            } else if (pos < 0) {\n                pos = Math.max(length + pos, 0);\n            }\n\n            if (!(pos+removeCount < length))\n                removeCount = length - pos;\n\n            var removed = this.slice(pos, pos+removeCount);\n            var insert = slice.call(arguments, 2);\n            var add = insert.length;            \n            if (pos === length) {\n                if (add) {\n                    this.push.apply(this, insert);\n                }\n            } else {\n                var remove = Math.min(removeCount, length - pos);\n                var tailOldPos = pos + remove;\n                var tailNewPos = tailOldPos + add - remove;\n                var tailCount = length - tailOldPos;\n                var lengthAfterRemove = length - remove;\n\n                if (tailNewPos < tailOldPos) { // case A\n                    for (var i = 0; i < tailCount; ++i) {\n                        this[tailNewPos+i] = this[tailOldPos+i];\n                    }\n                } else if (tailNewPos > tailOldPos) { // case B\n                    for (i = tailCount; i--; ) {\n                        this[tailNewPos+i] = this[tailOldPos+i];\n                    }\n                } // else, add == remove (nothing to do)\n\n                if (add && pos === lengthAfterRemove) {\n                    this.length = lengthAfterRemove; // truncate array\n                    this.push.apply(this, insert);\n                } else {\n                    this.length = lengthAfterRemove + add; // reserves space\n                    for (i = 0; i < add; ++i) {\n                        this[pos+i] = insert[i];\n                    }\n                }\n            }\n            return removed;\n        };\n    }\n}\nif (!Array.isArray) {\n    Array.isArray = function isArray(obj) {\n        return _toString(obj) == \"[object Array]\";\n    };\n}\nvar boxedString = Object(\"a\"),\n    splitString = boxedString[0] != \"a\" || !(0 in boxedString);\n\nif (!Array.prototype.forEach) {\n    Array.prototype.forEach = function forEach(fun /*, thisp*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            thisp = arguments[1],\n            i = -1,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(); // TODO message\n        }\n\n        while (++i < length) {\n            if (i in self) {\n                fun.call(thisp, self[i], i, object);\n            }\n        }\n    };\n}\nif (!Array.prototype.map) {\n    Array.prototype.map = function map(fun /*, thisp*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            result = Array(length),\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self)\n                result[i] = fun.call(thisp, self[i], i, object);\n        }\n        return result;\n    };\n}\nif (!Array.prototype.filter) {\n    Array.prototype.filter = function filter(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                    object,\n            length = self.length >>> 0,\n            result = [],\n            value,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self) {\n                value = self[i];\n                if (fun.call(thisp, value, i, object)) {\n                    result.push(value);\n                }\n            }\n        }\n        return result;\n    };\n}\nif (!Array.prototype.every) {\n    Array.prototype.every = function every(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self && !fun.call(thisp, self[i], i, object)) {\n                return false;\n            }\n        }\n        return true;\n    };\n}\nif (!Array.prototype.some) {\n    Array.prototype.some = function some(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self && fun.call(thisp, self[i], i, object)) {\n                return true;\n            }\n        }\n        return false;\n    };\n}\nif (!Array.prototype.reduce) {\n    Array.prototype.reduce = function reduce(fun /*, initial*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n        if (!length && arguments.length == 1) {\n            throw new TypeError(\"reduce of empty array with no initial value\");\n        }\n\n        var i = 0;\n        var result;\n        if (arguments.length >= 2) {\n            result = arguments[1];\n        } else {\n            do {\n                if (i in self) {\n                    result = self[i++];\n                    break;\n                }\n                if (++i >= length) {\n                    throw new TypeError(\"reduce of empty array with no initial value\");\n                }\n            } while (true);\n        }\n\n        for (; i < length; i++) {\n            if (i in self) {\n                result = fun.call(void 0, result, self[i], i, object);\n            }\n        }\n\n        return result;\n    };\n}\nif (!Array.prototype.reduceRight) {\n    Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n        if (!length && arguments.length == 1) {\n            throw new TypeError(\"reduceRight of empty array with no initial value\");\n        }\n\n        var result, i = length - 1;\n        if (arguments.length >= 2) {\n            result = arguments[1];\n        } else {\n            do {\n                if (i in self) {\n                    result = self[i--];\n                    break;\n                }\n                if (--i < 0) {\n                    throw new TypeError(\"reduceRight of empty array with no initial value\");\n                }\n            } while (true);\n        }\n\n        do {\n            if (i in this) {\n                result = fun.call(void 0, result, self[i], i, object);\n            }\n        } while (i--);\n\n        return result;\n    };\n}\nif (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {\n    Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {\n        var self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                toObject(this),\n            length = self.length >>> 0;\n\n        if (!length) {\n            return -1;\n        }\n\n        var i = 0;\n        if (arguments.length > 1) {\n            i = toInteger(arguments[1]);\n        }\n        i = i >= 0 ? i : Math.max(0, length + i);\n        for (; i < length; i++) {\n            if (i in self && self[i] === sought) {\n                return i;\n            }\n        }\n        return -1;\n    };\n}\nif (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {\n    Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {\n        var self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                toObject(this),\n            length = self.length >>> 0;\n\n        if (!length) {\n            return -1;\n        }\n        var i = length - 1;\n        if (arguments.length > 1) {\n            i = Math.min(i, toInteger(arguments[1]));\n        }\n        i = i >= 0 ? i : length - Math.abs(i);\n        for (; i >= 0; i--) {\n            if (i in self && sought === self[i]) {\n                return i;\n            }\n        }\n        return -1;\n    };\n}\nif (!Object.getPrototypeOf) {\n    Object.getPrototypeOf = function getPrototypeOf(object) {\n        return object.__proto__ || (\n            object.constructor ?\n            object.constructor.prototype :\n            prototypeOfObject\n        );\n    };\n}\nif (!Object.getOwnPropertyDescriptor) {\n    var ERR_NON_OBJECT = \"Object.getOwnPropertyDescriptor called on a \" +\n                         \"non-object: \";\n    Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n        if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n            throw new TypeError(ERR_NON_OBJECT + object);\n        if (!owns(object, property))\n            return;\n\n        var descriptor, getter, setter;\n        descriptor =  { enumerable: true, configurable: true };\n        if (supportsAccessors) {\n            var prototype = object.__proto__;\n            object.__proto__ = prototypeOfObject;\n\n            var getter = lookupGetter(object, property);\n            var setter = lookupSetter(object, property);\n            object.__proto__ = prototype;\n\n            if (getter || setter) {\n                if (getter) descriptor.get = getter;\n                if (setter) descriptor.set = setter;\n                return descriptor;\n            }\n        }\n        descriptor.value = object[property];\n        return descriptor;\n    };\n}\nif (!Object.getOwnPropertyNames) {\n    Object.getOwnPropertyNames = function getOwnPropertyNames(object) {\n        return Object.keys(object);\n    };\n}\nif (!Object.create) {\n    var createEmpty;\n    if (Object.prototype.__proto__ === null) {\n        createEmpty = function () {\n            return { \"__proto__\": null };\n        };\n    } else {\n        createEmpty = function () {\n            var empty = {};\n            for (var i in empty)\n                empty[i] = null;\n            empty.constructor =\n            empty.hasOwnProperty =\n            empty.propertyIsEnumerable =\n            empty.isPrototypeOf =\n            empty.toLocaleString =\n            empty.toString =\n            empty.valueOf =\n            empty.__proto__ = null;\n            return empty;\n        }\n    }\n\n    Object.create = function create(prototype, properties) {\n        var object;\n        if (prototype === null) {\n            object = createEmpty();\n        } else {\n            if (typeof prototype != \"object\")\n                throw new TypeError(\"typeof prototype[\"+(typeof prototype)+\"] != 'object'\");\n            var Type = function () {};\n            Type.prototype = prototype;\n            object = new Type();\n            object.__proto__ = prototype;\n        }\n        if (properties !== void 0)\n            Object.defineProperties(object, properties);\n        return object;\n    };\n}\n\nfunction doesDefinePropertyWork(object) {\n    try {\n        Object.defineProperty(object, \"sentinel\", {});\n        return \"sentinel\" in object;\n    } catch (exception) {\n    }\n}\nif (Object.defineProperty) {\n    var definePropertyWorksOnObject = doesDefinePropertyWork({});\n    var definePropertyWorksOnDom = typeof document == \"undefined\" ||\n        doesDefinePropertyWork(document.createElement(\"div\"));\n    if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {\n        var definePropertyFallback = Object.defineProperty;\n    }\n}\n\nif (!Object.defineProperty || definePropertyFallback) {\n    var ERR_NON_OBJECT_DESCRIPTOR = \"Property description must be an object: \";\n    var ERR_NON_OBJECT_TARGET = \"Object.defineProperty called on non-object: \"\n    var ERR_ACCESSORS_NOT_SUPPORTED = \"getters & setters can not be defined \" +\n                                      \"on this javascript engine\";\n\n    Object.defineProperty = function defineProperty(object, property, descriptor) {\n        if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n            throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n        if ((typeof descriptor != \"object\" && typeof descriptor != \"function\") || descriptor === null)\n            throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n        if (definePropertyFallback) {\n            try {\n                return definePropertyFallback.call(Object, object, property, descriptor);\n            } catch (exception) {\n            }\n        }\n        if (owns(descriptor, \"value\")) {\n\n            if (supportsAccessors && (lookupGetter(object, property) ||\n                                      lookupSetter(object, property)))\n            {\n                var prototype = object.__proto__;\n                object.__proto__ = prototypeOfObject;\n                delete object[property];\n                object[property] = descriptor.value;\n                object.__proto__ = prototype;\n            } else {\n                object[property] = descriptor.value;\n            }\n        } else {\n            if (!supportsAccessors)\n                throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n            if (owns(descriptor, \"get\"))\n                defineGetter(object, property, descriptor.get);\n            if (owns(descriptor, \"set\"))\n                defineSetter(object, property, descriptor.set);\n        }\n\n        return object;\n    };\n}\nif (!Object.defineProperties) {\n    Object.defineProperties = function defineProperties(object, properties) {\n        for (var property in properties) {\n            if (owns(properties, property))\n                Object.defineProperty(object, property, properties[property]);\n        }\n        return object;\n    };\n}\nif (!Object.seal) {\n    Object.seal = function seal(object) {\n        return object;\n    };\n}\nif (!Object.freeze) {\n    Object.freeze = function freeze(object) {\n        return object;\n    };\n}\ntry {\n    Object.freeze(function () {});\n} catch (exception) {\n    Object.freeze = (function freeze(freezeObject) {\n        return function freeze(object) {\n            if (typeof object == \"function\") {\n                return object;\n            } else {\n                return freezeObject(object);\n            }\n        };\n    })(Object.freeze);\n}\nif (!Object.preventExtensions) {\n    Object.preventExtensions = function preventExtensions(object) {\n        return object;\n    };\n}\nif (!Object.isSealed) {\n    Object.isSealed = function isSealed(object) {\n        return false;\n    };\n}\nif (!Object.isFrozen) {\n    Object.isFrozen = function isFrozen(object) {\n        return false;\n    };\n}\nif (!Object.isExtensible) {\n    Object.isExtensible = function isExtensible(object) {\n        if (Object(object) === object) {\n            throw new TypeError(); // TODO message\n        }\n        var name = '';\n        while (owns(object, name)) {\n            name += '?';\n        }\n        object[name] = true;\n        var returnValue = owns(object, name);\n        delete object[name];\n        return returnValue;\n    };\n}\nif (!Object.keys) {\n    var hasDontEnumBug = true,\n        dontEnums = [\n            \"toString\",\n            \"toLocaleString\",\n            \"valueOf\",\n            \"hasOwnProperty\",\n            \"isPrototypeOf\",\n            \"propertyIsEnumerable\",\n            \"constructor\"\n        ],\n        dontEnumsLength = dontEnums.length;\n\n    for (var key in {\"toString\": null}) {\n        hasDontEnumBug = false;\n    }\n\n    Object.keys = function keys(object) {\n\n        if (\n            (typeof object != \"object\" && typeof object != \"function\") ||\n            object === null\n        ) {\n            throw new TypeError(\"Object.keys called on a non-object\");\n        }\n\n        var keys = [];\n        for (var name in object) {\n            if (owns(object, name)) {\n                keys.push(name);\n            }\n        }\n\n        if (hasDontEnumBug) {\n            for (var i = 0, ii = dontEnumsLength; i < ii; i++) {\n                var dontEnum = dontEnums[i];\n                if (owns(object, dontEnum)) {\n                    keys.push(dontEnum);\n                }\n            }\n        }\n        return keys;\n    };\n\n}\nif (!Date.now) {\n    Date.now = function now() {\n        return new Date().getTime();\n    };\n}\nvar ws = \"\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\" +\n    \"\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\" +\n    \"\\u2029\\uFEFF\";\nif (!String.prototype.trim || ws.trim()) {\n    ws = \"[\" + ws + \"]\";\n    var trimBeginRegexp = new RegExp(\"^\" + ws + ws + \"*\"),\n        trimEndRegexp = new RegExp(ws + ws + \"*$\");\n    String.prototype.trim = function trim() {\n        return String(this).replace(trimBeginRegexp, \"\").replace(trimEndRegexp, \"\");\n    };\n}\n\nfunction toInteger(n) {\n    n = +n;\n    if (n !== n) { // isNaN\n        n = 0;\n    } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {\n        n = (n > 0 || -1) * Math.floor(Math.abs(n));\n    }\n    return n;\n}\n\nfunction isPrimitive(input) {\n    var type = typeof input;\n    return (\n        input === null ||\n        type === \"undefined\" ||\n        type === \"boolean\" ||\n        type === \"number\" ||\n        type === \"string\"\n    );\n}\n\nfunction toPrimitive(input) {\n    var val, valueOf, toString;\n    if (isPrimitive(input)) {\n        return input;\n    }\n    valueOf = input.valueOf;\n    if (typeof valueOf === \"function\") {\n        val = valueOf.call(input);\n        if (isPrimitive(val)) {\n            return val;\n        }\n    }\n    toString = input.toString;\n    if (typeof toString === \"function\") {\n        val = toString.call(input);\n        if (isPrimitive(val)) {\n            return val;\n        }\n    }\n    throw new TypeError();\n}\nvar toObject = function (o) {\n    if (o == null) { // this matches both null and undefined\n        throw new TypeError(\"can't convert \"+o+\" to object\");\n    }\n    return Object(o);\n};\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/worker-javascript.js",
    "content": "\"no use strict\";\n;(function(window) {\nif (typeof window.window != \"undefined\" && window.document)\n    return;\nif (window.require && window.define)\n    return;\n\nif (!window.console) {\n    window.console = function() {\n        var msgs = Array.prototype.slice.call(arguments, 0);\n        postMessage({type: \"log\", data: msgs});\n    };\n    window.console.error =\n    window.console.warn = \n    window.console.log =\n    window.console.trace = window.console;\n}\nwindow.window = window;\nwindow.ace = window;\n\nwindow.onerror = function(message, file, line, col, err) {\n    postMessage({type: \"error\", data: {\n        message: message,\n        data: err.data,\n        file: file,\n        line: line, \n        col: col,\n        stack: err.stack\n    }});\n};\n\nwindow.normalizeModule = function(parentId, moduleName) {\n    // normalize plugin requires\n    if (moduleName.indexOf(\"!\") !== -1) {\n        var chunks = moduleName.split(\"!\");\n        return window.normalizeModule(parentId, chunks[0]) + \"!\" + window.normalizeModule(parentId, chunks[1]);\n    }\n    // normalize relative requires\n    if (moduleName.charAt(0) == \".\") {\n        var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n        moduleName = (base ? base + \"/\" : \"\") + moduleName;\n        \n        while (moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n            var previous = moduleName;\n            moduleName = moduleName.replace(/^\\.\\//, \"\").replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n        }\n    }\n    \n    return moduleName;\n};\n\nwindow.require = function require(parentId, id) {\n    if (!id) {\n        id = parentId;\n        parentId = null;\n    }\n    if (!id.charAt)\n        throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");\n\n    id = window.normalizeModule(parentId, id);\n\n    var module = window.require.modules[id];\n    if (module) {\n        if (!module.initialized) {\n            module.initialized = true;\n            module.exports = module.factory().exports;\n        }\n        return module.exports;\n    }\n   \n    if (!window.require.tlns)\n        return console.log(\"unable to load \" + id);\n    \n    var path = resolveModuleId(id, window.require.tlns);\n    if (path.slice(-3) != \".js\") path += \".js\";\n    \n    window.require.id = id;\n    window.require.modules[id] = {}; // prevent infinite loop on broken modules\n    importScripts(path);\n    return window.require(parentId, id);\n};\nfunction resolveModuleId(id, paths) {\n    var testPath = id, tail = \"\";\n    while (testPath) {\n        var alias = paths[testPath];\n        if (typeof alias == \"string\") {\n            return alias + tail;\n        } else if (alias) {\n            return  alias.location.replace(/\\/*$/, \"/\") + (tail || alias.main || alias.name);\n        } else if (alias === false) {\n            return \"\";\n        }\n        var i = testPath.lastIndexOf(\"/\");\n        if (i === -1) break;\n        tail = testPath.substr(i) + tail;\n        testPath = testPath.slice(0, i);\n    }\n    return id;\n}\nwindow.require.modules = {};\nwindow.require.tlns = {};\n\nwindow.define = function(id, deps, factory) {\n    if (arguments.length == 2) {\n        factory = deps;\n        if (typeof id != \"string\") {\n            deps = id;\n            id = window.require.id;\n        }\n    } else if (arguments.length == 1) {\n        factory = id;\n        deps = [];\n        id = window.require.id;\n    }\n    \n    if (typeof factory != \"function\") {\n        window.require.modules[id] = {\n            exports: factory,\n            initialized: true\n        };\n        return;\n    }\n\n    if (!deps.length)\n        // If there is no dependencies, we inject \"require\", \"exports\" and\n        // \"module\" as dependencies, to provide CommonJS compatibility.\n        deps = [\"require\", \"exports\", \"module\"];\n\n    var req = function(childId) {\n        return window.require(id, childId);\n    };\n\n    window.require.modules[id] = {\n        exports: {},\n        factory: function() {\n            var module = this;\n            var returnExports = factory.apply(this, deps.map(function(dep) {\n                switch (dep) {\n                    // Because \"require\", \"exports\" and \"module\" aren't actual\n                    // dependencies, we must handle them seperately.\n                    case \"require\": return req;\n                    case \"exports\": return module.exports;\n                    case \"module\":  return module;\n                    // But for all other dependencies, we can just go ahead and\n                    // require them.\n                    default:        return req(dep);\n                }\n            }));\n            if (returnExports)\n                module.exports = returnExports;\n            return module;\n        }\n    };\n};\nwindow.define.amd = {};\nrequire.tlns = {};\nwindow.initBaseUrls  = function initBaseUrls(topLevelNamespaces) {\n    for (var i in topLevelNamespaces)\n        require.tlns[i] = topLevelNamespaces[i];\n};\n\nwindow.initSender = function initSender() {\n\n    var EventEmitter = window.require(\"ace/lib/event_emitter\").EventEmitter;\n    var oop = window.require(\"ace/lib/oop\");\n    \n    var Sender = function() {};\n    \n    (function() {\n        \n        oop.implement(this, EventEmitter);\n                \n        this.callback = function(data, callbackId) {\n            postMessage({\n                type: \"call\",\n                id: callbackId,\n                data: data\n            });\n        };\n    \n        this.emit = function(name, data) {\n            postMessage({\n                type: \"event\",\n                name: name,\n                data: data\n            });\n        };\n        \n    }).call(Sender.prototype);\n    \n    return new Sender();\n};\n\nvar main = window.main = null;\nvar sender = window.sender = null;\n\nwindow.onmessage = function(e) {\n    var msg = e.data;\n    if (msg.event && sender) {\n        sender._signal(msg.event, msg.data);\n    }\n    else if (msg.command) {\n        if (main[msg.command])\n            main[msg.command].apply(main, msg.args);\n        else if (window[msg.command])\n            window[msg.command].apply(window, msg.args);\n        else\n            throw new Error(\"Unknown command:\" + msg.command);\n    }\n    else if (msg.init) {\n        window.initBaseUrls(msg.tlns);\n        require(\"ace/lib/es5-shim\");\n        sender = window.sender = window.initSender();\n        var clazz = require(msg.module)[msg.classname];\n        main = window.main = new clazz(sender);\n    }\n};\n})(this);\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.inherits = function(ctor, superCtor) {\n    ctor.super_ = superCtor;\n    ctor.prototype = Object.create(superCtor.prototype, {\n        constructor: {\n            value: ctor,\n            enumerable: false,\n            writable: true,\n            configurable: true\n        }\n    });\n};\n\nexports.mixin = function(obj, mixin) {\n    for (var key in mixin) {\n        obj[key] = mixin[key];\n    }\n    return obj;\n};\n\nexports.implement = function(proto, mixin) {\n    exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/range\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\nvar comparePoints = function(p1, p2) {\n    return p1.row - p2.row || p1.column - p2.column;\n};\nvar Range = function(startRow, startColumn, endRow, endColumn) {\n    this.start = {\n        row: startRow,\n        column: startColumn\n    };\n\n    this.end = {\n        row: endRow,\n        column: endColumn\n    };\n};\n\n(function() {\n    this.isEqual = function(range) {\n        return this.start.row === range.start.row &&\n            this.end.row === range.end.row &&\n            this.start.column === range.start.column &&\n            this.end.column === range.end.column;\n    };\n    this.toString = function() {\n        return (\"Range: [\" + this.start.row + \"/\" + this.start.column +\n            \"] -> [\" + this.end.row + \"/\" + this.end.column + \"]\");\n    };\n\n    this.contains = function(row, column) {\n        return this.compare(row, column) == 0;\n    };\n    this.compareRange = function(range) {\n        var cmp,\n            end = range.end,\n            start = range.start;\n\n        cmp = this.compare(end.row, end.column);\n        if (cmp == 1) {\n            cmp = this.compare(start.row, start.column);\n            if (cmp == 1) {\n                return 2;\n            } else if (cmp == 0) {\n                return 1;\n            } else {\n                return 0;\n            }\n        } else if (cmp == -1) {\n            return -2;\n        } else {\n            cmp = this.compare(start.row, start.column);\n            if (cmp == -1) {\n                return -1;\n            } else if (cmp == 1) {\n                return 42;\n            } else {\n                return 0;\n            }\n        }\n    };\n    this.comparePoint = function(p) {\n        return this.compare(p.row, p.column);\n    };\n    this.containsRange = function(range) {\n        return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n    };\n    this.intersects = function(range) {\n        var cmp = this.compareRange(range);\n        return (cmp == -1 || cmp == 0 || cmp == 1);\n    };\n    this.isEnd = function(row, column) {\n        return this.end.row == row && this.end.column == column;\n    };\n    this.isStart = function(row, column) {\n        return this.start.row == row && this.start.column == column;\n    };\n    this.setStart = function(row, column) {\n        if (typeof row == \"object\") {\n            this.start.column = row.column;\n            this.start.row = row.row;\n        } else {\n            this.start.row = row;\n            this.start.column = column;\n        }\n    };\n    this.setEnd = function(row, column) {\n        if (typeof row == \"object\") {\n            this.end.column = row.column;\n            this.end.row = row.row;\n        } else {\n            this.end.row = row;\n            this.end.column = column;\n        }\n    };\n    this.inside = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isEnd(row, column) || this.isStart(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.insideStart = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isEnd(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.insideEnd = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isStart(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.compare = function(row, column) {\n        if (!this.isMultiLine()) {\n            if (row === this.start.row) {\n                return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n            }\n        }\n\n        if (row < this.start.row)\n            return -1;\n\n        if (row > this.end.row)\n            return 1;\n\n        if (this.start.row === row)\n            return column >= this.start.column ? 0 : -1;\n\n        if (this.end.row === row)\n            return column <= this.end.column ? 0 : 1;\n\n        return 0;\n    };\n    this.compareStart = function(row, column) {\n        if (this.start.row == row && this.start.column == column) {\n            return -1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.compareEnd = function(row, column) {\n        if (this.end.row == row && this.end.column == column) {\n            return 1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.compareInside = function(row, column) {\n        if (this.end.row == row && this.end.column == column) {\n            return 1;\n        } else if (this.start.row == row && this.start.column == column) {\n            return -1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.clipRows = function(firstRow, lastRow) {\n        if (this.end.row > lastRow)\n            var end = {row: lastRow + 1, column: 0};\n        else if (this.end.row < firstRow)\n            var end = {row: firstRow, column: 0};\n\n        if (this.start.row > lastRow)\n            var start = {row: lastRow + 1, column: 0};\n        else if (this.start.row < firstRow)\n            var start = {row: firstRow, column: 0};\n\n        return Range.fromPoints(start || this.start, end || this.end);\n    };\n    this.extend = function(row, column) {\n        var cmp = this.compare(row, column);\n\n        if (cmp == 0)\n            return this;\n        else if (cmp == -1)\n            var start = {row: row, column: column};\n        else\n            var end = {row: row, column: column};\n\n        return Range.fromPoints(start || this.start, end || this.end);\n    };\n\n    this.isEmpty = function() {\n        return (this.start.row === this.end.row && this.start.column === this.end.column);\n    };\n    this.isMultiLine = function() {\n        return (this.start.row !== this.end.row);\n    };\n    this.clone = function() {\n        return Range.fromPoints(this.start, this.end);\n    };\n    this.collapseRows = function() {\n        if (this.end.column == 0)\n            return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)\n        else\n            return new Range(this.start.row, 0, this.end.row, 0)\n    };\n    this.toScreenRange = function(session) {\n        var screenPosStart = session.documentToScreenPosition(this.start);\n        var screenPosEnd = session.documentToScreenPosition(this.end);\n\n        return new Range(\n            screenPosStart.row, screenPosStart.column,\n            screenPosEnd.row, screenPosEnd.column\n        );\n    };\n    this.moveBy = function(row, column) {\n        this.start.row += row;\n        this.start.column += column;\n        this.end.row += row;\n        this.end.column += column;\n    };\n\n}).call(Range.prototype);\nRange.fromPoints = function(start, end) {\n    return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\n\nRange.comparePoints = function(p1, p2) {\n    return p1.row - p2.row || p1.column - p2.column;\n};\n\n\nexports.Range = Range;\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nfunction throwDeltaError(delta, errorText){\n    console.log(\"Invalid Delta:\", delta);\n    throw \"Invalid Delta: \" + errorText;\n}\n\nfunction positionInDocument(docLines, position) {\n    return position.row    >= 0 && position.row    <  docLines.length &&\n           position.column >= 0 && position.column <= docLines[position.row].length;\n}\n\nfunction validateDelta(docLines, delta) {\n    if (delta.action != \"insert\" && delta.action != \"remove\")\n        throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n    if (!(delta.lines instanceof Array))\n        throwDeltaError(delta, \"delta.lines must be an Array\");\n    if (!delta.start || !delta.end)\n       throwDeltaError(delta, \"delta.start/end must be an present\");\n    var start = delta.start;\n    if (!positionInDocument(docLines, delta.start))\n        throwDeltaError(delta, \"delta.start must be contained in document\");\n    var end = delta.end;\n    if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n        throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n    var numRangeRows = end.row - start.row;\n    var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n    if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n        throwDeltaError(delta, \"delta.range must match delta lines\");\n}\n\nexports.applyDelta = function(docLines, delta, doNotValidate) {\n    \n    var row = delta.start.row;\n    var startColumn = delta.start.column;\n    var line = docLines[row] || \"\";\n    switch (delta.action) {\n        case \"insert\":\n            var lines = delta.lines;\n            if (lines.length === 1) {\n                docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n            } else {\n                var args = [row, 1].concat(delta.lines);\n                docLines.splice.apply(docLines, args);\n                docLines[row] = line.substring(0, startColumn) + docLines[row];\n                docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n            }\n            break;\n        case \"remove\":\n            var endColumn = delta.end.column;\n            var endRow = delta.end.row;\n            if (row === endRow) {\n                docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n            } else {\n                docLines.splice(\n                    row, endRow - row + 1,\n                    line.substring(0, startColumn) + docLines[endRow].substring(endColumn)\n                );\n            }\n            break;\n    }\n}\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar EventEmitter = {};\nvar stopPropagation = function() { this.propagationStopped = true; };\nvar preventDefault = function() { this.defaultPrevented = true; };\n\nEventEmitter._emit =\nEventEmitter._dispatchEvent = function(eventName, e) {\n    this._eventRegistry || (this._eventRegistry = {});\n    this._defaultHandlers || (this._defaultHandlers = {});\n\n    var listeners = this._eventRegistry[eventName] || [];\n    var defaultHandler = this._defaultHandlers[eventName];\n    if (!listeners.length && !defaultHandler)\n        return;\n\n    if (typeof e != \"object\" || !e)\n        e = {};\n\n    if (!e.type)\n        e.type = eventName;\n    if (!e.stopPropagation)\n        e.stopPropagation = stopPropagation;\n    if (!e.preventDefault)\n        e.preventDefault = preventDefault;\n\n    listeners = listeners.slice();\n    for (var i=0; i<listeners.length; i++) {\n        listeners[i](e, this);\n        if (e.propagationStopped)\n            break;\n    }\n    \n    if (defaultHandler && !e.defaultPrevented)\n        return defaultHandler(e, this);\n};\n\n\nEventEmitter._signal = function(eventName, e) {\n    var listeners = (this._eventRegistry || {})[eventName];\n    if (!listeners)\n        return;\n    listeners = listeners.slice();\n    for (var i=0; i<listeners.length; i++)\n        listeners[i](e, this);\n};\n\nEventEmitter.once = function(eventName, callback) {\n    var _self = this;\n    callback && this.addEventListener(eventName, function newCallback() {\n        _self.removeEventListener(eventName, newCallback);\n        callback.apply(null, arguments);\n    });\n};\n\n\nEventEmitter.setDefaultHandler = function(eventName, callback) {\n    var handlers = this._defaultHandlers\n    if (!handlers)\n        handlers = this._defaultHandlers = {_disabled_: {}};\n    \n    if (handlers[eventName]) {\n        var old = handlers[eventName];\n        var disabled = handlers._disabled_[eventName];\n        if (!disabled)\n            handlers._disabled_[eventName] = disabled = [];\n        disabled.push(old);\n        var i = disabled.indexOf(callback);\n        if (i != -1) \n            disabled.splice(i, 1);\n    }\n    handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function(eventName, callback) {\n    var handlers = this._defaultHandlers\n    if (!handlers)\n        return;\n    var disabled = handlers._disabled_[eventName];\n    \n    if (handlers[eventName] == callback) {\n        var old = handlers[eventName];\n        if (disabled)\n            this.setDefaultHandler(eventName, disabled.pop());\n    } else if (disabled) {\n        var i = disabled.indexOf(callback);\n        if (i != -1)\n            disabled.splice(i, 1);\n    }\n};\n\nEventEmitter.on =\nEventEmitter.addEventListener = function(eventName, callback, capturing) {\n    this._eventRegistry = this._eventRegistry || {};\n\n    var listeners = this._eventRegistry[eventName];\n    if (!listeners)\n        listeners = this._eventRegistry[eventName] = [];\n\n    if (listeners.indexOf(callback) == -1)\n        listeners[capturing ? \"unshift\" : \"push\"](callback);\n    return callback;\n};\n\nEventEmitter.off =\nEventEmitter.removeListener =\nEventEmitter.removeEventListener = function(eventName, callback) {\n    this._eventRegistry = this._eventRegistry || {};\n\n    var listeners = this._eventRegistry[eventName];\n    if (!listeners)\n        return;\n\n    var index = listeners.indexOf(callback);\n    if (index !== -1)\n        listeners.splice(index, 1);\n};\n\nEventEmitter.removeAllListeners = function(eventName) {\n    if (this._eventRegistry) this._eventRegistry[eventName] = [];\n};\n\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\n\nvar Anchor = exports.Anchor = function(doc, row, column) {\n    this.$onChange = this.onChange.bind(this);\n    this.attach(doc);\n    \n    if (typeof column == \"undefined\")\n        this.setPosition(row.row, row.column);\n    else\n        this.setPosition(row, column);\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n    this.getPosition = function() {\n        return this.$clipPositionToDocument(this.row, this.column);\n    };\n    this.getDocument = function() {\n        return this.document;\n    };\n    this.$insertRight = false;\n    this.onChange = function(delta) {\n        if (delta.start.row == delta.end.row && delta.start.row != this.row)\n            return;\n\n        if (delta.start.row > this.row)\n            return;\n            \n        var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight);\n        this.setPosition(point.row, point.column, true);\n    };\n    \n    function $pointsInOrder(point1, point2, equalPointsInOrder) {\n        var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n        return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n    }\n            \n    function $getTransformedPoint(delta, point, moveIfEqual) {\n        var deltaIsInsert = delta.action == \"insert\";\n        var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row    - delta.start.row);\n        var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n        var deltaStart = delta.start;\n        var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n        if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n            return {\n                row: point.row,\n                column: point.column\n            };\n        }\n        if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n            return {\n                row: point.row + deltaRowShift,\n                column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n            };\n        }\n        \n        return {\n            row: deltaStart.row,\n            column: deltaStart.column\n        };\n    }\n    this.setPosition = function(row, column, noClip) {\n        var pos;\n        if (noClip) {\n            pos = {\n                row: row,\n                column: column\n            };\n        } else {\n            pos = this.$clipPositionToDocument(row, column);\n        }\n\n        if (this.row == pos.row && this.column == pos.column)\n            return;\n\n        var old = {\n            row: this.row,\n            column: this.column\n        };\n\n        this.row = pos.row;\n        this.column = pos.column;\n        this._signal(\"change\", {\n            old: old,\n            value: pos\n        });\n    };\n    this.detach = function() {\n        this.document.removeEventListener(\"change\", this.$onChange);\n    };\n    this.attach = function(doc) {\n        this.document = doc || this.document;\n        this.document.on(\"change\", this.$onChange);\n    };\n    this.$clipPositionToDocument = function(row, column) {\n        var pos = {};\n\n        if (row >= this.document.getLength()) {\n            pos.row = Math.max(0, this.document.getLength() - 1);\n            pos.column = this.document.getLine(pos.row).length;\n        }\n        else if (row < 0) {\n            pos.row = 0;\n            pos.column = 0;\n        }\n        else {\n            pos.row = row;\n            pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n        }\n\n        if (column < 0)\n            pos.column = 0;\n\n        return pos;\n    };\n\n}).call(Anchor.prototype);\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar applyDelta = require(\"./apply_delta\").applyDelta;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\n\nvar Document = function(textOrLines) {\n    this.$lines = [\"\"];\n    if (textOrLines.length === 0) {\n        this.$lines = [\"\"];\n    } else if (Array.isArray(textOrLines)) {\n        this.insertMergedLines({row: 0, column: 0}, textOrLines);\n    } else {\n        this.insert({row: 0, column:0}, textOrLines);\n    }\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n    this.setValue = function(text) {\n        var len = this.getLength() - 1;\n        this.remove(new Range(0, 0, len, this.getLine(len).length));\n        this.insert({row: 0, column: 0}, text);\n    };\n    this.getValue = function() {\n        return this.getAllLines().join(this.getNewLineCharacter());\n    };\n    this.createAnchor = function(row, column) {\n        return new Anchor(this, row, column);\n    };\n    if (\"aaa\".split(/a/).length === 0) {\n        this.$split = function(text) {\n            return text.replace(/\\r\\n|\\r/g, \"\\n\").split(\"\\n\");\n        };\n    } else {\n        this.$split = function(text) {\n            return text.split(/\\r\\n|\\r|\\n/);\n        };\n    }\n\n\n    this.$detectNewLine = function(text) {\n        var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n        this.$autoNewLine = match ? match[1] : \"\\n\";\n        this._signal(\"changeNewLineMode\");\n    };\n    this.getNewLineCharacter = function() {\n        switch (this.$newLineMode) {\n          case \"windows\":\n            return \"\\r\\n\";\n          case \"unix\":\n            return \"\\n\";\n          default:\n            return this.$autoNewLine || \"\\n\";\n        }\n    };\n\n    this.$autoNewLine = \"\";\n    this.$newLineMode = \"auto\";\n    this.setNewLineMode = function(newLineMode) {\n        if (this.$newLineMode === newLineMode)\n            return;\n\n        this.$newLineMode = newLineMode;\n        this._signal(\"changeNewLineMode\");\n    };\n    this.getNewLineMode = function() {\n        return this.$newLineMode;\n    };\n    this.isNewLine = function(text) {\n        return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n    };\n    this.getLine = function(row) {\n        return this.$lines[row] || \"\";\n    };\n    this.getLines = function(firstRow, lastRow) {\n        return this.$lines.slice(firstRow, lastRow + 1);\n    };\n    this.getAllLines = function() {\n        return this.getLines(0, this.getLength());\n    };\n    this.getLength = function() {\n        return this.$lines.length;\n    };\n    this.getTextRange = function(range) {\n        return this.getLinesForRange(range).join(this.getNewLineCharacter());\n    };\n    this.getLinesForRange = function(range) {\n        var lines;\n        if (range.start.row === range.end.row) {\n            lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n        } else {\n            lines = this.getLines(range.start.row, range.end.row);\n            lines[0] = (lines[0] || \"\").substring(range.start.column);\n            var l = lines.length - 1;\n            if (range.end.row - range.start.row == l)\n                lines[l] = lines[l].substring(0, range.end.column);\n        }\n        return lines;\n    };\n    this.insertLines = function(row, lines) {\n        console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n        return this.insertFullLines(row, lines);\n    };\n    this.removeLines = function(firstRow, lastRow) {\n        console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n        return this.removeFullLines(firstRow, lastRow);\n    };\n    this.insertNewLine = function(position) {\n        console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n        return this.insertMergedLines(position, [\"\", \"\"]);\n    };\n    this.insert = function(position, text) {\n        if (this.getLength() <= 1)\n            this.$detectNewLine(text);\n        \n        return this.insertMergedLines(position, this.$split(text));\n    };\n    this.insertInLine = function(position, text) {\n        var start = this.clippedPos(position.row, position.column);\n        var end = this.pos(position.row, position.column + text.length);\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"insert\",\n            lines: [text]\n        }, true);\n        \n        return this.clonePos(end);\n    };\n    \n    this.clippedPos = function(row, column) {\n        var length = this.getLength();\n        if (row === undefined) {\n            row = length;\n        } else if (row < 0) {\n            row = 0;\n        } else if (row >= length) {\n            row = length - 1;\n            column = undefined;\n        }\n        var line = this.getLine(row);\n        if (column == undefined)\n            column = line.length;\n        column = Math.min(Math.max(column, 0), line.length);\n        return {row: row, column: column};\n    };\n    \n    this.clonePos = function(pos) {\n        return {row: pos.row, column: pos.column};\n    };\n    \n    this.pos = function(row, column) {\n        return {row: row, column: column};\n    };\n    \n    this.$clipPosition = function(position) {\n        var length = this.getLength();\n        if (position.row >= length) {\n            position.row = Math.max(0, length - 1);\n            position.column = this.getLine(length - 1).length;\n        } else {\n            position.row = Math.max(0, position.row);\n            position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n        }\n        return position;\n    };\n    this.insertFullLines = function(row, lines) {\n        row = Math.min(Math.max(row, 0), this.getLength());\n        var column = 0;\n        if (row < this.getLength()) {\n            lines = lines.concat([\"\"]);\n            column = 0;\n        } else {\n            lines = [\"\"].concat(lines);\n            row--;\n            column = this.$lines[row].length;\n        }\n        this.insertMergedLines({row: row, column: column}, lines);\n    };    \n    this.insertMergedLines = function(position, lines) {\n        var start = this.clippedPos(position.row, position.column);\n        var end = {\n            row: start.row + lines.length - 1,\n            column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n        };\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"insert\",\n            lines: lines\n        });\n        \n        return this.clonePos(end);\n    };\n    this.remove = function(range) {\n        var start = this.clippedPos(range.start.row, range.start.column);\n        var end = this.clippedPos(range.end.row, range.end.column);\n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"remove\",\n            lines: this.getLinesForRange({start: start, end: end})\n        });\n        return this.clonePos(start);\n    };\n    this.removeInLine = function(row, startColumn, endColumn) {\n        var start = this.clippedPos(row, startColumn);\n        var end = this.clippedPos(row, endColumn);\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"remove\",\n            lines: this.getLinesForRange({start: start, end: end})\n        }, true);\n        \n        return this.clonePos(start);\n    };\n    this.removeFullLines = function(firstRow, lastRow) {\n        firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n        lastRow  = Math.min(Math.max(0, lastRow ), this.getLength() - 1);\n        var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n        var deleteLastNewLine  = lastRow  < this.getLength() - 1;\n        var startRow = ( deleteFirstNewLine ? firstRow - 1                  : firstRow                    );\n        var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0                           );\n        var endRow   = ( deleteLastNewLine  ? lastRow + 1                   : lastRow                     );\n        var endCol   = ( deleteLastNewLine  ? 0                             : this.getLine(endRow).length ); \n        var range = new Range(startRow, startCol, endRow, endCol);\n        var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n        \n        this.applyDelta({\n            start: range.start,\n            end: range.end,\n            action: \"remove\",\n            lines: this.getLinesForRange(range)\n        });\n        return deletedLines;\n    };\n    this.removeNewLine = function(row) {\n        if (row < this.getLength() - 1 && row >= 0) {\n            this.applyDelta({\n                start: this.pos(row, this.getLine(row).length),\n                end: this.pos(row + 1, 0),\n                action: \"remove\",\n                lines: [\"\", \"\"]\n            });\n        }\n    };\n    this.replace = function(range, text) {\n        if (!(range instanceof Range))\n            range = Range.fromPoints(range.start, range.end);\n        if (text.length === 0 && range.isEmpty())\n            return range.start;\n        if (text == this.getTextRange(range))\n            return range.end;\n\n        this.remove(range);\n        var end;\n        if (text) {\n            end = this.insert(range.start, text);\n        }\n        else {\n            end = range.start;\n        }\n        \n        return end;\n    };\n    this.applyDeltas = function(deltas) {\n        for (var i=0; i<deltas.length; i++) {\n            this.applyDelta(deltas[i]);\n        }\n    };\n    this.revertDeltas = function(deltas) {\n        for (var i=deltas.length-1; i>=0; i--) {\n            this.revertDelta(deltas[i]);\n        }\n    };\n    this.applyDelta = function(delta, doNotValidate) {\n        var isInsert = delta.action == \"insert\";\n        if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n            : !Range.comparePoints(delta.start, delta.end)) {\n            return;\n        }\n        \n        if (isInsert && delta.lines.length > 20000)\n            this.$splitAndapplyLargeDelta(delta, 20000);\n        applyDelta(this.$lines, delta, doNotValidate);\n        this._signal(\"change\", delta);\n    };\n    \n    this.$splitAndapplyLargeDelta = function(delta, MAX) {\n        var lines = delta.lines;\n        var l = lines.length;\n        var row = delta.start.row; \n        var column = delta.start.column;\n        var from = 0, to = 0;\n        do {\n            from = to;\n            to += MAX - 1;\n            var chunk = lines.slice(from, to);\n            if (to > l) {\n                delta.lines = chunk;\n                delta.start.row = row + from;\n                delta.start.column = column;\n                break;\n            }\n            chunk.push(\"\");\n            this.applyDelta({\n                start: this.pos(row + from, column),\n                end: this.pos(row + to, column = 0),\n                action: delta.action,\n                lines: chunk\n            }, true);\n        } while(true);\n    };\n    this.revertDelta = function(delta) {\n        this.applyDelta({\n            start: this.clonePos(delta.start),\n            end: this.clonePos(delta.end),\n            action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n            lines: delta.lines.slice()\n        });\n    };\n    this.indexToPosition = function(index, startRow) {\n        var lines = this.$lines || this.getAllLines();\n        var newlineLength = this.getNewLineCharacter().length;\n        for (var i = startRow || 0, l = lines.length; i < l; i++) {\n            index -= lines[i].length + newlineLength;\n            if (index < 0)\n                return {row: i, column: index + lines[i].length + newlineLength};\n        }\n        return {row: l-1, column: lines[l-1].length};\n    };\n    this.positionToIndex = function(pos, startRow) {\n        var lines = this.$lines || this.getAllLines();\n        var newlineLength = this.getNewLineCharacter().length;\n        var index = 0;\n        var row = Math.min(pos.row, lines.length);\n        for (var i = startRow || 0; i < row; ++i)\n            index += lines[i].length + newlineLength;\n\n        return index + pos.column;\n    };\n\n}).call(Document.prototype);\n\nexports.Document = Document;\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.last = function(a) {\n    return a[a.length - 1];\n};\n\nexports.stringReverse = function(string) {\n    return string.split(\"\").reverse().join(\"\");\n};\n\nexports.stringRepeat = function (string, count) {\n    var result = '';\n    while (count > 0) {\n        if (count & 1)\n            result += string;\n\n        if (count >>= 1)\n            string += string;\n    }\n    return result;\n};\n\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\n\nexports.stringTrimLeft = function (string) {\n    return string.replace(trimBeginRegexp, '');\n};\n\nexports.stringTrimRight = function (string) {\n    return string.replace(trimEndRegexp, '');\n};\n\nexports.copyObject = function(obj) {\n    var copy = {};\n    for (var key in obj) {\n        copy[key] = obj[key];\n    }\n    return copy;\n};\n\nexports.copyArray = function(array){\n    var copy = [];\n    for (var i=0, l=array.length; i<l; i++) {\n        if (array[i] && typeof array[i] == \"object\")\n            copy[i] = this.copyObject(array[i]);\n        else \n            copy[i] = array[i];\n    }\n    return copy;\n};\n\nexports.deepCopy = function deepCopy(obj) {\n    if (typeof obj !== \"object\" || !obj)\n        return obj;\n    var copy;\n    if (Array.isArray(obj)) {\n        copy = [];\n        for (var key = 0; key < obj.length; key++) {\n            copy[key] = deepCopy(obj[key]);\n        }\n        return copy;\n    }\n    if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n        return obj;\n    \n    copy = {};\n    for (var key in obj)\n        copy[key] = deepCopy(obj[key]);\n    return copy;\n};\n\nexports.arrayToMap = function(arr) {\n    var map = {};\n    for (var i=0; i<arr.length; i++) {\n        map[arr[i]] = 1;\n    }\n    return map;\n\n};\n\nexports.createMap = function(props) {\n    var map = Object.create(null);\n    for (var i in props) {\n        map[i] = props[i];\n    }\n    return map;\n};\nexports.arrayRemove = function(array, value) {\n  for (var i = 0; i <= array.length; i++) {\n    if (value === array[i]) {\n      array.splice(i, 1);\n    }\n  }\n};\n\nexports.escapeRegExp = function(str) {\n    return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\n\nexports.escapeHTML = function(str) {\n    return str.replace(/&/g, \"&#38;\").replace(/\"/g, \"&#34;\").replace(/'/g, \"&#39;\").replace(/</g, \"&#60;\");\n};\n\nexports.getMatchOffsets = function(string, regExp) {\n    var matches = [];\n\n    string.replace(regExp, function(str) {\n        matches.push({\n            offset: arguments[arguments.length-2],\n            length: str.length\n        });\n    });\n\n    return matches;\n};\nexports.deferredCall = function(fcn) {\n    var timer = null;\n    var callback = function() {\n        timer = null;\n        fcn();\n    };\n\n    var deferred = function(timeout) {\n        deferred.cancel();\n        timer = setTimeout(callback, timeout || 0);\n        return deferred;\n    };\n\n    deferred.schedule = deferred;\n\n    deferred.call = function() {\n        this.cancel();\n        fcn();\n        return deferred;\n    };\n\n    deferred.cancel = function() {\n        clearTimeout(timer);\n        timer = null;\n        return deferred;\n    };\n    \n    deferred.isPending = function() {\n        return timer;\n    };\n\n    return deferred;\n};\n\n\nexports.delayedCall = function(fcn, defaultTimeout) {\n    var timer = null;\n    var callback = function() {\n        timer = null;\n        fcn();\n    };\n\n    var _self = function(timeout) {\n        if (timer == null)\n            timer = setTimeout(callback, timeout || defaultTimeout);\n    };\n\n    _self.delay = function(timeout) {\n        timer && clearTimeout(timer);\n        timer = setTimeout(callback, timeout || defaultTimeout);\n    };\n    _self.schedule = _self;\n\n    _self.call = function() {\n        this.cancel();\n        fcn();\n    };\n\n    _self.cancel = function() {\n        timer && clearTimeout(timer);\n        timer = null;\n    };\n\n    _self.isPending = function() {\n        return timer;\n    };\n\n    return _self;\n};\n});\n\nace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\nvar Document = require(\"../document\").Document;\nvar lang = require(\"../lib/lang\");\n    \nvar Mirror = exports.Mirror = function(sender) {\n    this.sender = sender;\n    var doc = this.doc = new Document(\"\");\n    \n    var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this));\n    \n    var _self = this;\n    sender.on(\"change\", function(e) {\n        var data = e.data;\n        if (data[0].start) {\n            doc.applyDeltas(data);\n        } else {\n            for (var i = 0; i < data.length; i += 2) {\n                if (Array.isArray(data[i+1])) {\n                    var d = {action: \"insert\", start: data[i], lines: data[i+1]};\n                } else {\n                    var d = {action: \"remove\", start: data[i], end: data[i+1]};\n                }\n                doc.applyDelta(d, true);\n            }\n        }\n        if (_self.$timeout)\n            return deferredUpdate.schedule(_self.$timeout);\n        _self.onUpdate();\n    });\n};\n\n(function() {\n    \n    this.$timeout = 500;\n    \n    this.setTimeout = function(timeout) {\n        this.$timeout = timeout;\n    };\n    \n    this.setValue = function(value) {\n        this.doc.setValue(value);\n        this.deferredUpdate.schedule(this.$timeout);\n    };\n    \n    this.getValue = function(callbackId) {\n        this.sender.callback(this.doc.getValue(), callbackId);\n    };\n    \n    this.onUpdate = function() {\n    };\n    \n    this.isPending = function() {\n        return this.deferredUpdate.isPending();\n    };\n    \n}).call(Mirror.prototype);\n\n});\n\nace.define(\"ace/mode/javascript/jshint\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\nmodule.exports = (function outer (modules, cache, entry) {\n    var previousRequire = typeof require == \"function\" && require;\n    function newRequire(name, jumped){\n        if(!cache[name]) {\n            if(!modules[name]) {\n                var currentRequire = typeof require == \"function\" && require;\n                if (!jumped && currentRequire) return currentRequire(name, true);\n                if (previousRequire) return previousRequire(name, true);\n                var err = new Error('Cannot find module \\'' + name + '\\'');\n                err.code = 'MODULE_NOT_FOUND';\n                throw err;\n            }\n            var m = cache[name] = {exports:{}};\n            modules[name][0].call(m.exports, function(x){\n                var id = modules[name][1][x];\n                return newRequire(id ? id : x);\n            },m,m.exports,outer,modules,cache,entry);\n        }\n        return cache[name].exports;\n    }\n    for(var i=0;i<entry.length;i++) newRequire(entry[i]);\n    return newRequire(entry[0]);\n})\n({\"/node_modules/browserify/node_modules/events/events.js\":[function(_dereq_,module,exports){\n\nfunction EventEmitter() {\n  this._events = this._events || {};\n  this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\nEventEmitter.defaultMaxListeners = 10;\nEventEmitter.prototype.setMaxListeners = function(n) {\n  if (!isNumber(n) || n < 0 || isNaN(n))\n    throw TypeError('n must be a positive number');\n  this._maxListeners = n;\n  return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n  var er, handler, len, args, i, listeners;\n\n  if (!this._events)\n    this._events = {};\n  if (type === 'error') {\n    if (!this._events.error ||\n        (isObject(this._events.error) && !this._events.error.length)) {\n      er = arguments[1];\n      if (er instanceof Error) {\n        throw er; // Unhandled 'error' event\n      }\n      throw TypeError('Uncaught, unspecified \"error\" event.');\n    }\n  }\n\n  handler = this._events[type];\n\n  if (isUndefined(handler))\n    return false;\n\n  if (isFunction(handler)) {\n    switch (arguments.length) {\n      case 1:\n        handler.call(this);\n        break;\n      case 2:\n        handler.call(this, arguments[1]);\n        break;\n      case 3:\n        handler.call(this, arguments[1], arguments[2]);\n        break;\n      default:\n        len = arguments.length;\n        args = new Array(len - 1);\n        for (i = 1; i < len; i++)\n          args[i - 1] = arguments[i];\n        handler.apply(this, args);\n    }\n  } else if (isObject(handler)) {\n    len = arguments.length;\n    args = new Array(len - 1);\n    for (i = 1; i < len; i++)\n      args[i - 1] = arguments[i];\n\n    listeners = handler.slice();\n    len = listeners.length;\n    for (i = 0; i < len; i++)\n      listeners[i].apply(this, args);\n  }\n\n  return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n  var m;\n\n  if (!isFunction(listener))\n    throw TypeError('listener must be a function');\n\n  if (!this._events)\n    this._events = {};\n  if (this._events.newListener)\n    this.emit('newListener', type,\n              isFunction(listener.listener) ?\n              listener.listener : listener);\n\n  if (!this._events[type])\n    this._events[type] = listener;\n  else if (isObject(this._events[type]))\n    this._events[type].push(listener);\n  else\n    this._events[type] = [this._events[type], listener];\n  if (isObject(this._events[type]) && !this._events[type].warned) {\n    var m;\n    if (!isUndefined(this._maxListeners)) {\n      m = this._maxListeners;\n    } else {\n      m = EventEmitter.defaultMaxListeners;\n    }\n\n    if (m && m > 0 && this._events[type].length > m) {\n      this._events[type].warned = true;\n      console.error('(node) warning: possible EventEmitter memory ' +\n                    'leak detected. %d listeners added. ' +\n                    'Use emitter.setMaxListeners() to increase limit.',\n                    this._events[type].length);\n      if (typeof console.trace === 'function') {\n        console.trace();\n      }\n    }\n  }\n\n  return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n  if (!isFunction(listener))\n    throw TypeError('listener must be a function');\n\n  var fired = false;\n\n  function g() {\n    this.removeListener(type, g);\n\n    if (!fired) {\n      fired = true;\n      listener.apply(this, arguments);\n    }\n  }\n\n  g.listener = listener;\n  this.on(type, g);\n\n  return this;\n};\nEventEmitter.prototype.removeListener = function(type, listener) {\n  var list, position, length, i;\n\n  if (!isFunction(listener))\n    throw TypeError('listener must be a function');\n\n  if (!this._events || !this._events[type])\n    return this;\n\n  list = this._events[type];\n  length = list.length;\n  position = -1;\n\n  if (list === listener ||\n      (isFunction(list.listener) && list.listener === listener)) {\n    delete this._events[type];\n    if (this._events.removeListener)\n      this.emit('removeListener', type, listener);\n\n  } else if (isObject(list)) {\n    for (i = length; i-- > 0;) {\n      if (list[i] === listener ||\n          (list[i].listener && list[i].listener === listener)) {\n        position = i;\n        break;\n      }\n    }\n\n    if (position < 0)\n      return this;\n\n    if (list.length === 1) {\n      list.length = 0;\n      delete this._events[type];\n    } else {\n      list.splice(position, 1);\n    }\n\n    if (this._events.removeListener)\n      this.emit('removeListener', type, listener);\n  }\n\n  return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n  var key, listeners;\n\n  if (!this._events)\n    return this;\n  if (!this._events.removeListener) {\n    if (arguments.length === 0)\n      this._events = {};\n    else if (this._events[type])\n      delete this._events[type];\n    return this;\n  }\n  if (arguments.length === 0) {\n    for (key in this._events) {\n      if (key === 'removeListener') continue;\n      this.removeAllListeners(key);\n    }\n    this.removeAllListeners('removeListener');\n    this._events = {};\n    return this;\n  }\n\n  listeners = this._events[type];\n\n  if (isFunction(listeners)) {\n    this.removeListener(type, listeners);\n  } else {\n    while (listeners.length)\n      this.removeListener(type, listeners[listeners.length - 1]);\n  }\n  delete this._events[type];\n\n  return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n  var ret;\n  if (!this._events || !this._events[type])\n    ret = [];\n  else if (isFunction(this._events[type]))\n    ret = [this._events[type]];\n  else\n    ret = this._events[type].slice();\n  return ret;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n  var ret;\n  if (!emitter._events || !emitter._events[type])\n    ret = 0;\n  else if (isFunction(emitter._events[type]))\n    ret = 1;\n  else\n    ret = emitter._events[type].length;\n  return ret;\n};\n\nfunction isFunction(arg) {\n  return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n  return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n  return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n  return arg === void 0;\n}\n\n},{}],\"/node_modules/jshint/data/ascii-identifier-data.js\":[function(_dereq_,module,exports){\nvar identifierStartTable = [];\n\nfor (var i = 0; i < 128; i++) {\n  identifierStartTable[i] =\n    i === 36 ||           // $\n    i >= 65 && i <= 90 || // A-Z\n    i === 95 ||           // _\n    i >= 97 && i <= 122;  // a-z\n}\n\nvar identifierPartTable = [];\n\nfor (var i = 0; i < 128; i++) {\n  identifierPartTable[i] =\n    identifierStartTable[i] || // $, _, A-Z, a-z\n    i >= 48 && i <= 57;        // 0-9\n}\n\nmodule.exports = {\n  asciiIdentifierStartTable: identifierStartTable,\n  asciiIdentifierPartTable: identifierPartTable\n};\n\n},{}],\"/node_modules/jshint/lodash.js\":[function(_dereq_,module,exports){\n(function (global){\n;(function() {\n\n  var undefined;\n\n  var VERSION = '3.7.0';\n\n  var FUNC_ERROR_TEXT = 'Expected a function';\n\n  var argsTag = '[object Arguments]',\n      arrayTag = '[object Array]',\n      boolTag = '[object Boolean]',\n      dateTag = '[object Date]',\n      errorTag = '[object Error]',\n      funcTag = '[object Function]',\n      mapTag = '[object Map]',\n      numberTag = '[object Number]',\n      objectTag = '[object Object]',\n      regexpTag = '[object RegExp]',\n      setTag = '[object Set]',\n      stringTag = '[object String]',\n      weakMapTag = '[object WeakMap]';\n\n  var arrayBufferTag = '[object ArrayBuffer]',\n      float32Tag = '[object Float32Array]',\n      float64Tag = '[object Float64Array]',\n      int8Tag = '[object Int8Array]',\n      int16Tag = '[object Int16Array]',\n      int32Tag = '[object Int32Array]',\n      uint8Tag = '[object Uint8Array]',\n      uint8ClampedTag = '[object Uint8ClampedArray]',\n      uint16Tag = '[object Uint16Array]',\n      uint32Tag = '[object Uint32Array]';\n\n  var reIsDeepProp = /\\.|\\[(?:[^[\\]]+|([\"'])(?:(?!\\1)[^\\n\\\\]|\\\\.)*?)\\1\\]/,\n      reIsPlainProp = /^\\w*$/,\n      rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\n\\\\]|\\\\.)*?)\\2)\\]/g;\n\n  var reRegExpChars = /[.*+?^${}()|[\\]\\/\\\\]/g,\n      reHasRegExpChars = RegExp(reRegExpChars.source);\n\n  var reEscapeChar = /\\\\(\\\\)?/g;\n\n  var reFlags = /\\w*$/;\n\n  var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n  var typedArrayTags = {};\n  typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n  typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n  typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n  typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n  typedArrayTags[uint32Tag] = true;\n  typedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n  typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n  typedArrayTags[dateTag] = typedArrayTags[errorTag] =\n  typedArrayTags[funcTag] = typedArrayTags[mapTag] =\n  typedArrayTags[numberTag] = typedArrayTags[objectTag] =\n  typedArrayTags[regexpTag] = typedArrayTags[setTag] =\n  typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n\n  var cloneableTags = {};\n  cloneableTags[argsTag] = cloneableTags[arrayTag] =\n  cloneableTags[arrayBufferTag] = cloneableTags[boolTag] =\n  cloneableTags[dateTag] = cloneableTags[float32Tag] =\n  cloneableTags[float64Tag] = cloneableTags[int8Tag] =\n  cloneableTags[int16Tag] = cloneableTags[int32Tag] =\n  cloneableTags[numberTag] = cloneableTags[objectTag] =\n  cloneableTags[regexpTag] = cloneableTags[stringTag] =\n  cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n  cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n  cloneableTags[errorTag] = cloneableTags[funcTag] =\n  cloneableTags[mapTag] = cloneableTags[setTag] =\n  cloneableTags[weakMapTag] = false;\n\n  var objectTypes = {\n    'function': true,\n    'object': true\n  };\n\n  var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports;\n\n  var freeModule = objectTypes[typeof module] && module && !module.nodeType && module;\n\n  var freeGlobal = freeExports && freeModule && typeof global == 'object' && global && global.Object && global;\n\n  var freeSelf = objectTypes[typeof self] && self && self.Object && self;\n\n  var freeWindow = objectTypes[typeof window] && window && window.Object && window;\n\n  var moduleExports = freeModule && freeModule.exports === freeExports && freeExports;\n\n  var root = freeGlobal || ((freeWindow !== (this && this.window)) && freeWindow) || freeSelf || this;\n\n  function baseFindIndex(array, predicate, fromRight) {\n    var length = array.length,\n        index = fromRight ? length : -1;\n\n    while ((fromRight ? index-- : ++index < length)) {\n      if (predicate(array[index], index, array)) {\n        return index;\n      }\n    }\n    return -1;\n  }\n\n  function baseIndexOf(array, value, fromIndex) {\n    if (value !== value) {\n      return indexOfNaN(array, fromIndex);\n    }\n    var index = fromIndex - 1,\n        length = array.length;\n\n    while (++index < length) {\n      if (array[index] === value) {\n        return index;\n      }\n    }\n    return -1;\n  }\n\n  function baseIsFunction(value) {\n    return typeof value == 'function' || false;\n  }\n\n  function baseToString(value) {\n    if (typeof value == 'string') {\n      return value;\n    }\n    return value == null ? '' : (value + '');\n  }\n\n  function indexOfNaN(array, fromIndex, fromRight) {\n    var length = array.length,\n        index = fromIndex + (fromRight ? 0 : -1);\n\n    while ((fromRight ? index-- : ++index < length)) {\n      var other = array[index];\n      if (other !== other) {\n        return index;\n      }\n    }\n    return -1;\n  }\n\n  function isObjectLike(value) {\n    return !!value && typeof value == 'object';\n  }\n\n  var arrayProto = Array.prototype,\n      objectProto = Object.prototype;\n\n  var fnToString = Function.prototype.toString;\n\n  var hasOwnProperty = objectProto.hasOwnProperty;\n\n  var objToString = objectProto.toString;\n\n  var reIsNative = RegExp('^' +\n    escapeRegExp(objToString)\n    .replace(/toString|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n  );\n\n  var ArrayBuffer = isNative(ArrayBuffer = root.ArrayBuffer) && ArrayBuffer,\n      bufferSlice = isNative(bufferSlice = ArrayBuffer && new ArrayBuffer(0).slice) && bufferSlice,\n      floor = Math.floor,\n      getOwnPropertySymbols = isNative(getOwnPropertySymbols = Object.getOwnPropertySymbols) && getOwnPropertySymbols,\n      getPrototypeOf = isNative(getPrototypeOf = Object.getPrototypeOf) && getPrototypeOf,\n      push = arrayProto.push,\n      preventExtensions = isNative(Object.preventExtensions = Object.preventExtensions) && preventExtensions,\n      propertyIsEnumerable = objectProto.propertyIsEnumerable,\n      Uint8Array = isNative(Uint8Array = root.Uint8Array) && Uint8Array;\n\n  var Float64Array = (function() {\n    try {\n      var func = isNative(func = root.Float64Array) && func,\n          result = new func(new ArrayBuffer(10), 0, 1) && func;\n    } catch(e) {}\n    return result;\n  }());\n\n  var nativeAssign = (function() {\n    var object = { '1': 0 },\n        func = preventExtensions && isNative(func = Object.assign) && func;\n\n    try { func(preventExtensions(object), 'xo'); } catch(e) {}\n    return !object[1] && func;\n  }());\n\n  var nativeIsArray = isNative(nativeIsArray = Array.isArray) && nativeIsArray,\n      nativeKeys = isNative(nativeKeys = Object.keys) && nativeKeys,\n      nativeMax = Math.max,\n      nativeMin = Math.min;\n\n  var NEGATIVE_INFINITY = Number.NEGATIVE_INFINITY;\n\n  var MAX_ARRAY_LENGTH = Math.pow(2, 32) - 1,\n      MAX_ARRAY_INDEX =  MAX_ARRAY_LENGTH - 1,\n      HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n  var FLOAT64_BYTES_PER_ELEMENT = Float64Array ? Float64Array.BYTES_PER_ELEMENT : 0;\n\n  var MAX_SAFE_INTEGER = Math.pow(2, 53) - 1;\n\n  function lodash() {\n  }\n\n  var support = lodash.support = {};\n\n  (function(x) {\n    var Ctor = function() { this.x = x; },\n        object = { '0': x, 'length': x },\n        props = [];\n\n    Ctor.prototype = { 'valueOf': x, 'y': x };\n    for (var key in new Ctor) { props.push(key); }\n\n    support.funcDecomp = /\\bthis\\b/.test(function() { return this; });\n\n    support.funcNames = typeof Function.name == 'string';\n\n    try {\n      support.nonEnumArgs = !propertyIsEnumerable.call(arguments, 1);\n    } catch(e) {\n      support.nonEnumArgs = true;\n    }\n  }(1, 0));\n\n  function arrayCopy(source, array) {\n    var index = -1,\n        length = source.length;\n\n    array || (array = Array(length));\n    while (++index < length) {\n      array[index] = source[index];\n    }\n    return array;\n  }\n\n  function arrayEach(array, iteratee) {\n    var index = -1,\n        length = array.length;\n\n    while (++index < length) {\n      if (iteratee(array[index], index, array) === false) {\n        break;\n      }\n    }\n    return array;\n  }\n\n  function arrayFilter(array, predicate) {\n    var index = -1,\n        length = array.length,\n        resIndex = -1,\n        result = [];\n\n    while (++index < length) {\n      var value = array[index];\n      if (predicate(value, index, array)) {\n        result[++resIndex] = value;\n      }\n    }\n    return result;\n  }\n\n  function arrayMap(array, iteratee) {\n    var index = -1,\n        length = array.length,\n        result = Array(length);\n\n    while (++index < length) {\n      result[index] = iteratee(array[index], index, array);\n    }\n    return result;\n  }\n\n  function arrayMax(array) {\n    var index = -1,\n        length = array.length,\n        result = NEGATIVE_INFINITY;\n\n    while (++index < length) {\n      var value = array[index];\n      if (value > result) {\n        result = value;\n      }\n    }\n    return result;\n  }\n\n  function arraySome(array, predicate) {\n    var index = -1,\n        length = array.length;\n\n    while (++index < length) {\n      if (predicate(array[index], index, array)) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  function assignWith(object, source, customizer) {\n    var props = keys(source);\n    push.apply(props, getSymbols(source));\n\n    var index = -1,\n        length = props.length;\n\n    while (++index < length) {\n      var key = props[index],\n          value = object[key],\n          result = customizer(value, source[key], key, object, source);\n\n      if ((result === result ? (result !== value) : (value === value)) ||\n          (value === undefined && !(key in object))) {\n        object[key] = result;\n      }\n    }\n    return object;\n  }\n\n  var baseAssign = nativeAssign || function(object, source) {\n    return source == null\n      ? object\n      : baseCopy(source, getSymbols(source), baseCopy(source, keys(source), object));\n  };\n\n  function baseCopy(source, props, object) {\n    object || (object = {});\n\n    var index = -1,\n        length = props.length;\n\n    while (++index < length) {\n      var key = props[index];\n      object[key] = source[key];\n    }\n    return object;\n  }\n\n  function baseCallback(func, thisArg, argCount) {\n    var type = typeof func;\n    if (type == 'function') {\n      return thisArg === undefined\n        ? func\n        : bindCallback(func, thisArg, argCount);\n    }\n    if (func == null) {\n      return identity;\n    }\n    if (type == 'object') {\n      return baseMatches(func);\n    }\n    return thisArg === undefined\n      ? property(func)\n      : baseMatchesProperty(func, thisArg);\n  }\n\n  function baseClone(value, isDeep, customizer, key, object, stackA, stackB) {\n    var result;\n    if (customizer) {\n      result = object ? customizer(value, key, object) : customizer(value);\n    }\n    if (result !== undefined) {\n      return result;\n    }\n    if (!isObject(value)) {\n      return value;\n    }\n    var isArr = isArray(value);\n    if (isArr) {\n      result = initCloneArray(value);\n      if (!isDeep) {\n        return arrayCopy(value, result);\n      }\n    } else {\n      var tag = objToString.call(value),\n          isFunc = tag == funcTag;\n\n      if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n        result = initCloneObject(isFunc ? {} : value);\n        if (!isDeep) {\n          return baseAssign(result, value);\n        }\n      } else {\n        return cloneableTags[tag]\n          ? initCloneByTag(value, tag, isDeep)\n          : (object ? value : {});\n      }\n    }\n    stackA || (stackA = []);\n    stackB || (stackB = []);\n\n    var length = stackA.length;\n    while (length--) {\n      if (stackA[length] == value) {\n        return stackB[length];\n      }\n    }\n    stackA.push(value);\n    stackB.push(result);\n\n    (isArr ? arrayEach : baseForOwn)(value, function(subValue, key) {\n      result[key] = baseClone(subValue, isDeep, customizer, key, value, stackA, stackB);\n    });\n    return result;\n  }\n\n  var baseEach = createBaseEach(baseForOwn);\n\n  function baseFilter(collection, predicate) {\n    var result = [];\n    baseEach(collection, function(value, index, collection) {\n      if (predicate(value, index, collection)) {\n        result.push(value);\n      }\n    });\n    return result;\n  }\n\n  var baseFor = createBaseFor();\n\n  function baseForIn(object, iteratee) {\n    return baseFor(object, iteratee, keysIn);\n  }\n\n  function baseForOwn(object, iteratee) {\n    return baseFor(object, iteratee, keys);\n  }\n\n  function baseGet(object, path, pathKey) {\n    if (object == null) {\n      return;\n    }\n    if (pathKey !== undefined && pathKey in toObject(object)) {\n      path = [pathKey];\n    }\n    var index = -1,\n        length = path.length;\n\n    while (object != null && ++index < length) {\n      var result = object = object[path[index]];\n    }\n    return result;\n  }\n\n  function baseIsEqual(value, other, customizer, isLoose, stackA, stackB) {\n    if (value === other) {\n      return value !== 0 || (1 / value == 1 / other);\n    }\n    var valType = typeof value,\n        othType = typeof other;\n\n    if ((valType != 'function' && valType != 'object' && othType != 'function' && othType != 'object') ||\n        value == null || other == null) {\n      return value !== value && other !== other;\n    }\n    return baseIsEqualDeep(value, other, baseIsEqual, customizer, isLoose, stackA, stackB);\n  }\n\n  function baseIsEqualDeep(object, other, equalFunc, customizer, isLoose, stackA, stackB) {\n    var objIsArr = isArray(object),\n        othIsArr = isArray(other),\n        objTag = arrayTag,\n        othTag = arrayTag;\n\n    if (!objIsArr) {\n      objTag = objToString.call(object);\n      if (objTag == argsTag) {\n        objTag = objectTag;\n      } else if (objTag != objectTag) {\n        objIsArr = isTypedArray(object);\n      }\n    }\n    if (!othIsArr) {\n      othTag = objToString.call(other);\n      if (othTag == argsTag) {\n        othTag = objectTag;\n      } else if (othTag != objectTag) {\n        othIsArr = isTypedArray(other);\n      }\n    }\n    var objIsObj = objTag == objectTag,\n        othIsObj = othTag == objectTag,\n        isSameTag = objTag == othTag;\n\n    if (isSameTag && !(objIsArr || objIsObj)) {\n      return equalByTag(object, other, objTag);\n    }\n    if (!isLoose) {\n      var valWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n          othWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n      if (valWrapped || othWrapped) {\n        return equalFunc(valWrapped ? object.value() : object, othWrapped ? other.value() : other, customizer, isLoose, stackA, stackB);\n      }\n    }\n    if (!isSameTag) {\n      return false;\n    }\n    stackA || (stackA = []);\n    stackB || (stackB = []);\n\n    var length = stackA.length;\n    while (length--) {\n      if (stackA[length] == object) {\n        return stackB[length] == other;\n      }\n    }\n    stackA.push(object);\n    stackB.push(other);\n\n    var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, isLoose, stackA, stackB);\n\n    stackA.pop();\n    stackB.pop();\n\n    return result;\n  }\n\n  function baseIsMatch(object, props, values, strictCompareFlags, customizer) {\n    var index = -1,\n        length = props.length,\n        noCustomizer = !customizer;\n\n    while (++index < length) {\n      if ((noCustomizer && strictCompareFlags[index])\n            ? values[index] !== object[props[index]]\n            : !(props[index] in object)\n          ) {\n        return false;\n      }\n    }\n    index = -1;\n    while (++index < length) {\n      var key = props[index],\n          objValue = object[key],\n          srcValue = values[index];\n\n      if (noCustomizer && strictCompareFlags[index]) {\n        var result = objValue !== undefined || (key in object);\n      } else {\n        result = customizer ? customizer(objValue, srcValue, key) : undefined;\n        if (result === undefined) {\n          result = baseIsEqual(srcValue, objValue, customizer, true);\n        }\n      }\n      if (!result) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  function baseMatches(source) {\n    var props = keys(source),\n        length = props.length;\n\n    if (!length) {\n      return constant(true);\n    }\n    if (length == 1) {\n      var key = props[0],\n          value = source[key];\n\n      if (isStrictComparable(value)) {\n        return function(object) {\n          if (object == null) {\n            return false;\n          }\n          return object[key] === value && (value !== undefined || (key in toObject(object)));\n        };\n      }\n    }\n    var values = Array(length),\n        strictCompareFlags = Array(length);\n\n    while (length--) {\n      value = source[props[length]];\n      values[length] = value;\n      strictCompareFlags[length] = isStrictComparable(value);\n    }\n    return function(object) {\n      return object != null && baseIsMatch(toObject(object), props, values, strictCompareFlags);\n    };\n  }\n\n  function baseMatchesProperty(path, value) {\n    var isArr = isArray(path),\n        isCommon = isKey(path) && isStrictComparable(value),\n        pathKey = (path + '');\n\n    path = toPath(path);\n    return function(object) {\n      if (object == null) {\n        return false;\n      }\n      var key = pathKey;\n      object = toObject(object);\n      if ((isArr || !isCommon) && !(key in object)) {\n        object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1));\n        if (object == null) {\n          return false;\n        }\n        key = last(path);\n        object = toObject(object);\n      }\n      return object[key] === value\n        ? (value !== undefined || (key in object))\n        : baseIsEqual(value, object[key], null, true);\n    };\n  }\n\n  function baseMerge(object, source, customizer, stackA, stackB) {\n    if (!isObject(object)) {\n      return object;\n    }\n    var isSrcArr = isLength(source.length) && (isArray(source) || isTypedArray(source));\n    if (!isSrcArr) {\n      var props = keys(source);\n      push.apply(props, getSymbols(source));\n    }\n    arrayEach(props || source, function(srcValue, key) {\n      if (props) {\n        key = srcValue;\n        srcValue = source[key];\n      }\n      if (isObjectLike(srcValue)) {\n        stackA || (stackA = []);\n        stackB || (stackB = []);\n        baseMergeDeep(object, source, key, baseMerge, customizer, stackA, stackB);\n      }\n      else {\n        var value = object[key],\n            result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n            isCommon = result === undefined;\n\n        if (isCommon) {\n          result = srcValue;\n        }\n        if ((isSrcArr || result !== undefined) &&\n            (isCommon || (result === result ? (result !== value) : (value === value)))) {\n          object[key] = result;\n        }\n      }\n    });\n    return object;\n  }\n\n  function baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stackB) {\n    var length = stackA.length,\n        srcValue = source[key];\n\n    while (length--) {\n      if (stackA[length] == srcValue) {\n        object[key] = stackB[length];\n        return;\n      }\n    }\n    var value = object[key],\n        result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n        isCommon = result === undefined;\n\n    if (isCommon) {\n      result = srcValue;\n      if (isLength(srcValue.length) && (isArray(srcValue) || isTypedArray(srcValue))) {\n        result = isArray(value)\n          ? value\n          : (getLength(value) ? arrayCopy(value) : []);\n      }\n      else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n        result = isArguments(value)\n          ? toPlainObject(value)\n          : (isPlainObject(value) ? value : {});\n      }\n      else {\n        isCommon = false;\n      }\n    }\n    stackA.push(srcValue);\n    stackB.push(result);\n\n    if (isCommon) {\n      object[key] = mergeFunc(result, srcValue, customizer, stackA, stackB);\n    } else if (result === result ? (result !== value) : (value === value)) {\n      object[key] = result;\n    }\n  }\n\n  function baseProperty(key) {\n    return function(object) {\n      return object == null ? undefined : object[key];\n    };\n  }\n\n  function basePropertyDeep(path) {\n    var pathKey = (path + '');\n    path = toPath(path);\n    return function(object) {\n      return baseGet(object, path, pathKey);\n    };\n  }\n\n  function baseSlice(array, start, end) {\n    var index = -1,\n        length = array.length;\n\n    start = start == null ? 0 : (+start || 0);\n    if (start < 0) {\n      start = -start > length ? 0 : (length + start);\n    }\n    end = (end === undefined || end > length) ? length : (+end || 0);\n    if (end < 0) {\n      end += length;\n    }\n    length = start > end ? 0 : ((end - start) >>> 0);\n    start >>>= 0;\n\n    var result = Array(length);\n    while (++index < length) {\n      result[index] = array[index + start];\n    }\n    return result;\n  }\n\n  function baseSome(collection, predicate) {\n    var result;\n\n    baseEach(collection, function(value, index, collection) {\n      result = predicate(value, index, collection);\n      return !result;\n    });\n    return !!result;\n  }\n\n  function baseValues(object, props) {\n    var index = -1,\n        length = props.length,\n        result = Array(length);\n\n    while (++index < length) {\n      result[index] = object[props[index]];\n    }\n    return result;\n  }\n\n  function binaryIndex(array, value, retHighest) {\n    var low = 0,\n        high = array ? array.length : low;\n\n    if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n      while (low < high) {\n        var mid = (low + high) >>> 1,\n            computed = array[mid];\n\n        if (retHighest ? (computed <= value) : (computed < value)) {\n          low = mid + 1;\n        } else {\n          high = mid;\n        }\n      }\n      return high;\n    }\n    return binaryIndexBy(array, value, identity, retHighest);\n  }\n\n  function binaryIndexBy(array, value, iteratee, retHighest) {\n    value = iteratee(value);\n\n    var low = 0,\n        high = array ? array.length : 0,\n        valIsNaN = value !== value,\n        valIsUndef = value === undefined;\n\n    while (low < high) {\n      var mid = floor((low + high) / 2),\n          computed = iteratee(array[mid]),\n          isReflexive = computed === computed;\n\n      if (valIsNaN) {\n        var setLow = isReflexive || retHighest;\n      } else if (valIsUndef) {\n        setLow = isReflexive && (retHighest || computed !== undefined);\n      } else {\n        setLow = retHighest ? (computed <= value) : (computed < value);\n      }\n      if (setLow) {\n        low = mid + 1;\n      } else {\n        high = mid;\n      }\n    }\n    return nativeMin(high, MAX_ARRAY_INDEX);\n  }\n\n  function bindCallback(func, thisArg, argCount) {\n    if (typeof func != 'function') {\n      return identity;\n    }\n    if (thisArg === undefined) {\n      return func;\n    }\n    switch (argCount) {\n      case 1: return function(value) {\n        return func.call(thisArg, value);\n      };\n      case 3: return function(value, index, collection) {\n        return func.call(thisArg, value, index, collection);\n      };\n      case 4: return function(accumulator, value, index, collection) {\n        return func.call(thisArg, accumulator, value, index, collection);\n      };\n      case 5: return function(value, other, key, object, source) {\n        return func.call(thisArg, value, other, key, object, source);\n      };\n    }\n    return function() {\n      return func.apply(thisArg, arguments);\n    };\n  }\n\n  function bufferClone(buffer) {\n    return bufferSlice.call(buffer, 0);\n  }\n  if (!bufferSlice) {\n    bufferClone = !(ArrayBuffer && Uint8Array) ? constant(null) : function(buffer) {\n      var byteLength = buffer.byteLength,\n          floatLength = Float64Array ? floor(byteLength / FLOAT64_BYTES_PER_ELEMENT) : 0,\n          offset = floatLength * FLOAT64_BYTES_PER_ELEMENT,\n          result = new ArrayBuffer(byteLength);\n\n      if (floatLength) {\n        var view = new Float64Array(result, 0, floatLength);\n        view.set(new Float64Array(buffer, 0, floatLength));\n      }\n      if (byteLength != offset) {\n        view = new Uint8Array(result, offset);\n        view.set(new Uint8Array(buffer, offset));\n      }\n      return result;\n    };\n  }\n\n  function createAssigner(assigner) {\n    return restParam(function(object, sources) {\n      var index = -1,\n          length = object == null ? 0 : sources.length,\n          customizer = length > 2 && sources[length - 2],\n          guard = length > 2 && sources[2],\n          thisArg = length > 1 && sources[length - 1];\n\n      if (typeof customizer == 'function') {\n        customizer = bindCallback(customizer, thisArg, 5);\n        length -= 2;\n      } else {\n        customizer = typeof thisArg == 'function' ? thisArg : null;\n        length -= (customizer ? 1 : 0);\n      }\n      if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n        customizer = length < 3 ? null : customizer;\n        length = 1;\n      }\n      while (++index < length) {\n        var source = sources[index];\n        if (source) {\n          assigner(object, source, customizer);\n        }\n      }\n      return object;\n    });\n  }\n\n  function createBaseEach(eachFunc, fromRight) {\n    return function(collection, iteratee) {\n      var length = collection ? getLength(collection) : 0;\n      if (!isLength(length)) {\n        return eachFunc(collection, iteratee);\n      }\n      var index = fromRight ? length : -1,\n          iterable = toObject(collection);\n\n      while ((fromRight ? index-- : ++index < length)) {\n        if (iteratee(iterable[index], index, iterable) === false) {\n          break;\n        }\n      }\n      return collection;\n    };\n  }\n\n  function createBaseFor(fromRight) {\n    return function(object, iteratee, keysFunc) {\n      var iterable = toObject(object),\n          props = keysFunc(object),\n          length = props.length,\n          index = fromRight ? length : -1;\n\n      while ((fromRight ? index-- : ++index < length)) {\n        var key = props[index];\n        if (iteratee(iterable[key], key, iterable) === false) {\n          break;\n        }\n      }\n      return object;\n    };\n  }\n\n  function createFindIndex(fromRight) {\n    return function(array, predicate, thisArg) {\n      if (!(array && array.length)) {\n        return -1;\n      }\n      predicate = getCallback(predicate, thisArg, 3);\n      return baseFindIndex(array, predicate, fromRight);\n    };\n  }\n\n  function createForEach(arrayFunc, eachFunc) {\n    return function(collection, iteratee, thisArg) {\n      return (typeof iteratee == 'function' && thisArg === undefined && isArray(collection))\n        ? arrayFunc(collection, iteratee)\n        : eachFunc(collection, bindCallback(iteratee, thisArg, 3));\n    };\n  }\n\n  function equalArrays(array, other, equalFunc, customizer, isLoose, stackA, stackB) {\n    var index = -1,\n        arrLength = array.length,\n        othLength = other.length,\n        result = true;\n\n    if (arrLength != othLength && !(isLoose && othLength > arrLength)) {\n      return false;\n    }\n    while (result && ++index < arrLength) {\n      var arrValue = array[index],\n          othValue = other[index];\n\n      result = undefined;\n      if (customizer) {\n        result = isLoose\n          ? customizer(othValue, arrValue, index)\n          : customizer(arrValue, othValue, index);\n      }\n      if (result === undefined) {\n        if (isLoose) {\n          var othIndex = othLength;\n          while (othIndex--) {\n            othValue = other[othIndex];\n            result = (arrValue && arrValue === othValue) || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB);\n            if (result) {\n              break;\n            }\n          }\n        } else {\n          result = (arrValue && arrValue === othValue) || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB);\n        }\n      }\n    }\n    return !!result;\n  }\n\n  function equalByTag(object, other, tag) {\n    switch (tag) {\n      case boolTag:\n      case dateTag:\n        return +object == +other;\n\n      case errorTag:\n        return object.name == other.name && object.message == other.message;\n\n      case numberTag:\n        return (object != +object)\n          ? other != +other\n          : (object == 0 ? ((1 / object) == (1 / other)) : object == +other);\n\n      case regexpTag:\n      case stringTag:\n        return object == (other + '');\n    }\n    return false;\n  }\n\n  function equalObjects(object, other, equalFunc, customizer, isLoose, stackA, stackB) {\n    var objProps = keys(object),\n        objLength = objProps.length,\n        othProps = keys(other),\n        othLength = othProps.length;\n\n    if (objLength != othLength && !isLoose) {\n      return false;\n    }\n    var skipCtor = isLoose,\n        index = -1;\n\n    while (++index < objLength) {\n      var key = objProps[index],\n          result = isLoose ? key in other : hasOwnProperty.call(other, key);\n\n      if (result) {\n        var objValue = object[key],\n            othValue = other[key];\n\n        result = undefined;\n        if (customizer) {\n          result = isLoose\n            ? customizer(othValue, objValue, key)\n            : customizer(objValue, othValue, key);\n        }\n        if (result === undefined) {\n          result = (objValue && objValue === othValue) || equalFunc(objValue, othValue, customizer, isLoose, stackA, stackB);\n        }\n      }\n      if (!result) {\n        return false;\n      }\n      skipCtor || (skipCtor = key == 'constructor');\n    }\n    if (!skipCtor) {\n      var objCtor = object.constructor,\n          othCtor = other.constructor;\n\n      if (objCtor != othCtor &&\n          ('constructor' in object && 'constructor' in other) &&\n          !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n            typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  function getCallback(func, thisArg, argCount) {\n    var result = lodash.callback || callback;\n    result = result === callback ? baseCallback : result;\n    return argCount ? result(func, thisArg, argCount) : result;\n  }\n\n  function getIndexOf(collection, target, fromIndex) {\n    var result = lodash.indexOf || indexOf;\n    result = result === indexOf ? baseIndexOf : result;\n    return collection ? result(collection, target, fromIndex) : result;\n  }\n\n  var getLength = baseProperty('length');\n\n  var getSymbols = !getOwnPropertySymbols ? constant([]) : function(object) {\n    return getOwnPropertySymbols(toObject(object));\n  };\n\n  function initCloneArray(array) {\n    var length = array.length,\n        result = new array.constructor(length);\n\n    if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n      result.index = array.index;\n      result.input = array.input;\n    }\n    return result;\n  }\n\n  function initCloneObject(object) {\n    var Ctor = object.constructor;\n    if (!(typeof Ctor == 'function' && Ctor instanceof Ctor)) {\n      Ctor = Object;\n    }\n    return new Ctor;\n  }\n\n  function initCloneByTag(object, tag, isDeep) {\n    var Ctor = object.constructor;\n    switch (tag) {\n      case arrayBufferTag:\n        return bufferClone(object);\n\n      case boolTag:\n      case dateTag:\n        return new Ctor(+object);\n\n      case float32Tag: case float64Tag:\n      case int8Tag: case int16Tag: case int32Tag:\n      case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n        var buffer = object.buffer;\n        return new Ctor(isDeep ? bufferClone(buffer) : buffer, object.byteOffset, object.length);\n\n      case numberTag:\n      case stringTag:\n        return new Ctor(object);\n\n      case regexpTag:\n        var result = new Ctor(object.source, reFlags.exec(object));\n        result.lastIndex = object.lastIndex;\n    }\n    return result;\n  }\n\n  function isIndex(value, length) {\n    value = +value;\n    length = length == null ? MAX_SAFE_INTEGER : length;\n    return value > -1 && value % 1 == 0 && value < length;\n  }\n\n  function isIterateeCall(value, index, object) {\n    if (!isObject(object)) {\n      return false;\n    }\n    var type = typeof index;\n    if (type == 'number') {\n      var length = getLength(object),\n          prereq = isLength(length) && isIndex(index, length);\n    } else {\n      prereq = type == 'string' && index in object;\n    }\n    if (prereq) {\n      var other = object[index];\n      return value === value ? (value === other) : (other !== other);\n    }\n    return false;\n  }\n\n  function isKey(value, object) {\n    var type = typeof value;\n    if ((type == 'string' && reIsPlainProp.test(value)) || type == 'number') {\n      return true;\n    }\n    if (isArray(value)) {\n      return false;\n    }\n    var result = !reIsDeepProp.test(value);\n    return result || (object != null && value in toObject(object));\n  }\n\n  function isLength(value) {\n    return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n  }\n\n  function isStrictComparable(value) {\n    return value === value && (value === 0 ? ((1 / value) > 0) : !isObject(value));\n  }\n\n  function shimIsPlainObject(value) {\n    var Ctor,\n        support = lodash.support;\n\n    if (!(isObjectLike(value) && objToString.call(value) == objectTag) ||\n        (!hasOwnProperty.call(value, 'constructor') &&\n          (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) {\n      return false;\n    }\n    var result;\n    baseForIn(value, function(subValue, key) {\n      result = key;\n    });\n    return result === undefined || hasOwnProperty.call(value, result);\n  }\n\n  function shimKeys(object) {\n    var props = keysIn(object),\n        propsLength = props.length,\n        length = propsLength && object.length,\n        support = lodash.support;\n\n    var allowIndexes = length && isLength(length) &&\n      (isArray(object) || (support.nonEnumArgs && isArguments(object)));\n\n    var index = -1,\n        result = [];\n\n    while (++index < propsLength) {\n      var key = props[index];\n      if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {\n        result.push(key);\n      }\n    }\n    return result;\n  }\n\n  function toObject(value) {\n    return isObject(value) ? value : Object(value);\n  }\n\n  function toPath(value) {\n    if (isArray(value)) {\n      return value;\n    }\n    var result = [];\n    baseToString(value).replace(rePropName, function(match, number, quote, string) {\n      result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n    });\n    return result;\n  }\n\n  var findLastIndex = createFindIndex(true);\n\n  function indexOf(array, value, fromIndex) {\n    var length = array ? array.length : 0;\n    if (!length) {\n      return -1;\n    }\n    if (typeof fromIndex == 'number') {\n      fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : fromIndex;\n    } else if (fromIndex) {\n      var index = binaryIndex(array, value),\n          other = array[index];\n\n      if (value === value ? (value === other) : (other !== other)) {\n        return index;\n      }\n      return -1;\n    }\n    return baseIndexOf(array, value, fromIndex || 0);\n  }\n\n  function last(array) {\n    var length = array ? array.length : 0;\n    return length ? array[length - 1] : undefined;\n  }\n\n  function slice(array, start, end) {\n    var length = array ? array.length : 0;\n    if (!length) {\n      return [];\n    }\n    if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n      start = 0;\n      end = length;\n    }\n    return baseSlice(array, start, end);\n  }\n\n  function unzip(array) {\n    var index = -1,\n        length = (array && array.length && arrayMax(arrayMap(array, getLength))) >>> 0,\n        result = Array(length);\n\n    while (++index < length) {\n      result[index] = arrayMap(array, baseProperty(index));\n    }\n    return result;\n  }\n\n  var zip = restParam(unzip);\n\n  var forEach = createForEach(arrayEach, baseEach);\n\n  function includes(collection, target, fromIndex, guard) {\n    var length = collection ? getLength(collection) : 0;\n    if (!isLength(length)) {\n      collection = values(collection);\n      length = collection.length;\n    }\n    if (!length) {\n      return false;\n    }\n    if (typeof fromIndex != 'number' || (guard && isIterateeCall(target, fromIndex, guard))) {\n      fromIndex = 0;\n    } else {\n      fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : (fromIndex || 0);\n    }\n    return (typeof collection == 'string' || !isArray(collection) && isString(collection))\n      ? (fromIndex < length && collection.indexOf(target, fromIndex) > -1)\n      : (getIndexOf(collection, target, fromIndex) > -1);\n  }\n\n  function reject(collection, predicate, thisArg) {\n    var func = isArray(collection) ? arrayFilter : baseFilter;\n    predicate = getCallback(predicate, thisArg, 3);\n    return func(collection, function(value, index, collection) {\n      return !predicate(value, index, collection);\n    });\n  }\n\n  function some(collection, predicate, thisArg) {\n    var func = isArray(collection) ? arraySome : baseSome;\n    if (thisArg && isIterateeCall(collection, predicate, thisArg)) {\n      predicate = null;\n    }\n    if (typeof predicate != 'function' || thisArg !== undefined) {\n      predicate = getCallback(predicate, thisArg, 3);\n    }\n    return func(collection, predicate);\n  }\n\n  function restParam(func, start) {\n    if (typeof func != 'function') {\n      throw new TypeError(FUNC_ERROR_TEXT);\n    }\n    start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);\n    return function() {\n      var args = arguments,\n          index = -1,\n          length = nativeMax(args.length - start, 0),\n          rest = Array(length);\n\n      while (++index < length) {\n        rest[index] = args[start + index];\n      }\n      switch (start) {\n        case 0: return func.call(this, rest);\n        case 1: return func.call(this, args[0], rest);\n        case 2: return func.call(this, args[0], args[1], rest);\n      }\n      var otherArgs = Array(start + 1);\n      index = -1;\n      while (++index < start) {\n        otherArgs[index] = args[index];\n      }\n      otherArgs[start] = rest;\n      return func.apply(this, otherArgs);\n    };\n  }\n\n  function clone(value, isDeep, customizer, thisArg) {\n    if (isDeep && typeof isDeep != 'boolean' && isIterateeCall(value, isDeep, customizer)) {\n      isDeep = false;\n    }\n    else if (typeof isDeep == 'function') {\n      thisArg = customizer;\n      customizer = isDeep;\n      isDeep = false;\n    }\n    customizer = typeof customizer == 'function' && bindCallback(customizer, thisArg, 1);\n    return baseClone(value, isDeep, customizer);\n  }\n\n  function isArguments(value) {\n    var length = isObjectLike(value) ? value.length : undefined;\n    return isLength(length) && objToString.call(value) == argsTag;\n  }\n\n  var isArray = nativeIsArray || function(value) {\n    return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\n  };\n\n  function isEmpty(value) {\n    if (value == null) {\n      return true;\n    }\n    var length = getLength(value);\n    if (isLength(length) && (isArray(value) || isString(value) || isArguments(value) ||\n        (isObjectLike(value) && isFunction(value.splice)))) {\n      return !length;\n    }\n    return !keys(value).length;\n  }\n\n  var isFunction = !(baseIsFunction(/x/) || (Uint8Array && !baseIsFunction(Uint8Array))) ? baseIsFunction : function(value) {\n    return objToString.call(value) == funcTag;\n  };\n\n  function isObject(value) {\n    var type = typeof value;\n    return type == 'function' || (!!value && type == 'object');\n  }\n\n  function isNative(value) {\n    if (value == null) {\n      return false;\n    }\n    if (objToString.call(value) == funcTag) {\n      return reIsNative.test(fnToString.call(value));\n    }\n    return isObjectLike(value) && reIsHostCtor.test(value);\n  }\n\n  function isNumber(value) {\n    return typeof value == 'number' || (isObjectLike(value) && objToString.call(value) == numberTag);\n  }\n\n  var isPlainObject = !getPrototypeOf ? shimIsPlainObject : function(value) {\n    if (!(value && objToString.call(value) == objectTag)) {\n      return false;\n    }\n    var valueOf = value.valueOf,\n        objProto = isNative(valueOf) && (objProto = getPrototypeOf(valueOf)) && getPrototypeOf(objProto);\n\n    return objProto\n      ? (value == objProto || getPrototypeOf(value) == objProto)\n      : shimIsPlainObject(value);\n  };\n\n  function isString(value) {\n    return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag);\n  }\n\n  function isTypedArray(value) {\n    return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];\n  }\n\n  function toPlainObject(value) {\n    return baseCopy(value, keysIn(value));\n  }\n\n  var assign = createAssigner(function(object, source, customizer) {\n    return customizer\n      ? assignWith(object, source, customizer)\n      : baseAssign(object, source);\n  });\n\n  function has(object, path) {\n    if (object == null) {\n      return false;\n    }\n    var result = hasOwnProperty.call(object, path);\n    if (!result && !isKey(path)) {\n      path = toPath(path);\n      object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1));\n      path = last(path);\n      result = object != null && hasOwnProperty.call(object, path);\n    }\n    return result;\n  }\n\n  var keys = !nativeKeys ? shimKeys : function(object) {\n    if (object) {\n      var Ctor = object.constructor,\n          length = object.length;\n    }\n    if ((typeof Ctor == 'function' && Ctor.prototype === object) ||\n        (typeof object != 'function' && isLength(length))) {\n      return shimKeys(object);\n    }\n    return isObject(object) ? nativeKeys(object) : [];\n  };\n\n  function keysIn(object) {\n    if (object == null) {\n      return [];\n    }\n    if (!isObject(object)) {\n      object = Object(object);\n    }\n    var length = object.length;\n    length = (length && isLength(length) &&\n      (isArray(object) || (support.nonEnumArgs && isArguments(object))) && length) || 0;\n\n    var Ctor = object.constructor,\n        index = -1,\n        isProto = typeof Ctor == 'function' && Ctor.prototype === object,\n        result = Array(length),\n        skipIndexes = length > 0;\n\n    while (++index < length) {\n      result[index] = (index + '');\n    }\n    for (var key in object) {\n      if (!(skipIndexes && isIndex(key, length)) &&\n          !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n        result.push(key);\n      }\n    }\n    return result;\n  }\n\n  var merge = createAssigner(baseMerge);\n\n  function values(object) {\n    return baseValues(object, keys(object));\n  }\n\n  function escapeRegExp(string) {\n    string = baseToString(string);\n    return (string && reHasRegExpChars.test(string))\n      ? string.replace(reRegExpChars, '\\\\$&')\n      : string;\n  }\n\n  function callback(func, thisArg, guard) {\n    if (guard && isIterateeCall(func, thisArg, guard)) {\n      thisArg = null;\n    }\n    return baseCallback(func, thisArg);\n  }\n\n  function constant(value) {\n    return function() {\n      return value;\n    };\n  }\n\n  function identity(value) {\n    return value;\n  }\n\n  function property(path) {\n    return isKey(path) ? baseProperty(path) : basePropertyDeep(path);\n  }\n  lodash.assign = assign;\n  lodash.callback = callback;\n  lodash.constant = constant;\n  lodash.forEach = forEach;\n  lodash.keys = keys;\n  lodash.keysIn = keysIn;\n  lodash.merge = merge;\n  lodash.property = property;\n  lodash.reject = reject;\n  lodash.restParam = restParam;\n  lodash.slice = slice;\n  lodash.toPlainObject = toPlainObject;\n  lodash.unzip = unzip;\n  lodash.values = values;\n  lodash.zip = zip;\n\n  lodash.each = forEach;\n  lodash.extend = assign;\n  lodash.iteratee = callback;\n  lodash.clone = clone;\n  lodash.escapeRegExp = escapeRegExp;\n  lodash.findLastIndex = findLastIndex;\n  lodash.has = has;\n  lodash.identity = identity;\n  lodash.includes = includes;\n  lodash.indexOf = indexOf;\n  lodash.isArguments = isArguments;\n  lodash.isArray = isArray;\n  lodash.isEmpty = isEmpty;\n  lodash.isFunction = isFunction;\n  lodash.isNative = isNative;\n  lodash.isNumber = isNumber;\n  lodash.isObject = isObject;\n  lodash.isPlainObject = isPlainObject;\n  lodash.isString = isString;\n  lodash.isTypedArray = isTypedArray;\n  lodash.last = last;\n  lodash.some = some;\n\n  lodash.any = some;\n  lodash.contains = includes;\n  lodash.include = includes;\n\n  lodash.VERSION = VERSION;\n  if (freeExports && freeModule) {\n    if (moduleExports) {\n      (freeModule.exports = lodash)._ = lodash;\n    }\n    else {\n      freeExports._ = lodash;\n    }\n  }\n  else {\n    root._ = lodash;\n  }\n}.call(this));\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],\"/node_modules/jshint/src/jshint.js\":[function(_dereq_,module,exports){\n\nvar _            = _dereq_(\"../lodash\");\nvar events       = _dereq_(\"events\");\nvar vars         = _dereq_(\"./vars.js\");\nvar messages     = _dereq_(\"./messages.js\");\nvar Lexer        = _dereq_(\"./lex.js\").Lexer;\nvar reg          = _dereq_(\"./reg.js\");\nvar state        = _dereq_(\"./state.js\").state;\nvar style        = _dereq_(\"./style.js\");\nvar options      = _dereq_(\"./options.js\");\nvar scopeManager = _dereq_(\"./scope-manager.js\");\n\nvar JSHINT = (function() {\n  \"use strict\";\n\n  var api, // Extension API\n    bang = {\n      \"<\"  : true,\n      \"<=\" : true,\n      \"==\" : true,\n      \"===\": true,\n      \"!==\": true,\n      \"!=\" : true,\n      \">\"  : true,\n      \">=\" : true,\n      \"+\"  : true,\n      \"-\"  : true,\n      \"*\"  : true,\n      \"/\"  : true,\n      \"%\"  : true\n    },\n\n    declared, // Globals that were declared using /*global ... */ syntax.\n\n    functionicity = [\n      \"closure\", \"exception\", \"global\", \"label\",\n      \"outer\", \"unused\", \"var\"\n    ],\n\n    functions, // All of the functions\n\n    inblock,\n    indent,\n    lookahead,\n    lex,\n    member,\n    membersOnly,\n    predefined,    // Global variables defined by option\n\n    stack,\n    urls,\n\n    extraModules = [],\n    emitter = new events.EventEmitter();\n\n  function checkOption(name, t) {\n    name = name.trim();\n\n    if (/^[+-]W\\d{3}$/g.test(name)) {\n      return true;\n    }\n\n    if (options.validNames.indexOf(name) === -1) {\n      if (t.type !== \"jslint\" && !_.has(options.removed, name)) {\n        error(\"E001\", t, name);\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n  function isString(obj) {\n    return Object.prototype.toString.call(obj) === \"[object String]\";\n  }\n\n  function isIdentifier(tkn, value) {\n    if (!tkn)\n      return false;\n\n    if (!tkn.identifier || tkn.value !== value)\n      return false;\n\n    return true;\n  }\n\n  function isReserved(token) {\n    if (!token.reserved) {\n      return false;\n    }\n    var meta = token.meta;\n\n    if (meta && meta.isFutureReservedWord && state.inES5()) {\n      if (!meta.es5) {\n        return false;\n      }\n      if (meta.strictOnly) {\n        if (!state.option.strict && !state.isStrict()) {\n          return false;\n        }\n      }\n\n      if (token.isProperty) {\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n  function supplant(str, data) {\n    return str.replace(/\\{([^{}]*)\\}/g, function(a, b) {\n      var r = data[b];\n      return typeof r === \"string\" || typeof r === \"number\" ? r : a;\n    });\n  }\n\n  function combine(dest, src) {\n    Object.keys(src).forEach(function(name) {\n      if (_.has(JSHINT.blacklist, name)) return;\n      dest[name] = src[name];\n    });\n  }\n\n  function processenforceall() {\n    if (state.option.enforceall) {\n      for (var enforceopt in options.bool.enforcing) {\n        if (state.option[enforceopt] === undefined &&\n            !options.noenforceall[enforceopt]) {\n          state.option[enforceopt] = true;\n        }\n      }\n      for (var relaxopt in options.bool.relaxing) {\n        if (state.option[relaxopt] === undefined) {\n          state.option[relaxopt] = false;\n        }\n      }\n    }\n  }\n\n  function assume() {\n    processenforceall();\n    if (!state.option.esversion && !state.option.moz) {\n      if (state.option.es3) {\n        state.option.esversion = 3;\n      } else if (state.option.esnext) {\n        state.option.esversion = 6;\n      } else {\n        state.option.esversion = 5;\n      }\n    }\n\n    if (state.inES5()) {\n      combine(predefined, vars.ecmaIdentifiers[5]);\n    }\n\n    if (state.inES6()) {\n      combine(predefined, vars.ecmaIdentifiers[6]);\n    }\n\n    if (state.option.module) {\n      if (state.option.strict === true) {\n        state.option.strict = \"global\";\n      }\n      if (!state.inES6()) {\n        warning(\"W134\", state.tokens.next, \"module\", 6);\n      }\n    }\n\n    if (state.option.couch) {\n      combine(predefined, vars.couch);\n    }\n\n    if (state.option.qunit) {\n      combine(predefined, vars.qunit);\n    }\n\n    if (state.option.rhino) {\n      combine(predefined, vars.rhino);\n    }\n\n    if (state.option.shelljs) {\n      combine(predefined, vars.shelljs);\n      combine(predefined, vars.node);\n    }\n    if (state.option.typed) {\n      combine(predefined, vars.typed);\n    }\n\n    if (state.option.phantom) {\n      combine(predefined, vars.phantom);\n      if (state.option.strict === true) {\n        state.option.strict = \"global\";\n      }\n    }\n\n    if (state.option.prototypejs) {\n      combine(predefined, vars.prototypejs);\n    }\n\n    if (state.option.node) {\n      combine(predefined, vars.node);\n      combine(predefined, vars.typed);\n      if (state.option.strict === true) {\n        state.option.strict = \"global\";\n      }\n    }\n\n    if (state.option.devel) {\n      combine(predefined, vars.devel);\n    }\n\n    if (state.option.dojo) {\n      combine(predefined, vars.dojo);\n    }\n\n    if (state.option.browser) {\n      combine(predefined, vars.browser);\n      combine(predefined, vars.typed);\n    }\n\n    if (state.option.browserify) {\n      combine(predefined, vars.browser);\n      combine(predefined, vars.typed);\n      combine(predefined, vars.browserify);\n      if (state.option.strict === true) {\n        state.option.strict = \"global\";\n      }\n    }\n\n    if (state.option.nonstandard) {\n      combine(predefined, vars.nonstandard);\n    }\n\n    if (state.option.jasmine) {\n      combine(predefined, vars.jasmine);\n    }\n\n    if (state.option.jquery) {\n      combine(predefined, vars.jquery);\n    }\n\n    if (state.option.mootools) {\n      combine(predefined, vars.mootools);\n    }\n\n    if (state.option.worker) {\n      combine(predefined, vars.worker);\n    }\n\n    if (state.option.wsh) {\n      combine(predefined, vars.wsh);\n    }\n\n    if (state.option.globalstrict && state.option.strict !== false) {\n      state.option.strict = \"global\";\n    }\n\n    if (state.option.yui) {\n      combine(predefined, vars.yui);\n    }\n\n    if (state.option.mocha) {\n      combine(predefined, vars.mocha);\n    }\n  }\n  function quit(code, line, chr) {\n    var percentage = Math.floor((line / state.lines.length) * 100);\n    var message = messages.errors[code].desc;\n\n    throw {\n      name: \"JSHintError\",\n      line: line,\n      character: chr,\n      message: message + \" (\" + percentage + \"% scanned).\",\n      raw: message,\n      code: code\n    };\n  }\n\n  function removeIgnoredMessages() {\n    var ignored = state.ignoredLines;\n\n    if (_.isEmpty(ignored)) return;\n    JSHINT.errors = _.reject(JSHINT.errors, function(err) { return ignored[err.line] });\n  }\n\n  function warning(code, t, a, b, c, d) {\n    var ch, l, w, msg;\n\n    if (/^W\\d{3}$/.test(code)) {\n      if (state.ignored[code])\n        return;\n\n      msg = messages.warnings[code];\n    } else if (/E\\d{3}/.test(code)) {\n      msg = messages.errors[code];\n    } else if (/I\\d{3}/.test(code)) {\n      msg = messages.info[code];\n    }\n\n    t = t || state.tokens.next || {};\n    if (t.id === \"(end)\") {  // `~\n      t = state.tokens.curr;\n    }\n\n    l = t.line || 0;\n    ch = t.from || 0;\n\n    w = {\n      id: \"(error)\",\n      raw: msg.desc,\n      code: msg.code,\n      evidence: state.lines[l - 1] || \"\",\n      line: l,\n      character: ch,\n      scope: JSHINT.scope,\n      a: a,\n      b: b,\n      c: c,\n      d: d\n    };\n\n    w.reason = supplant(msg.desc, w);\n    JSHINT.errors.push(w);\n\n    removeIgnoredMessages();\n\n    if (JSHINT.errors.length >= state.option.maxerr)\n      quit(\"E043\", l, ch);\n\n    return w;\n  }\n\n  function warningAt(m, l, ch, a, b, c, d) {\n    return warning(m, {\n      line: l,\n      from: ch\n    }, a, b, c, d);\n  }\n\n  function error(m, t, a, b, c, d) {\n    warning(m, t, a, b, c, d);\n  }\n\n  function errorAt(m, l, ch, a, b, c, d) {\n    return error(m, {\n      line: l,\n      from: ch\n    }, a, b, c, d);\n  }\n  function addInternalSrc(elem, src) {\n    var i;\n    i = {\n      id: \"(internal)\",\n      elem: elem,\n      value: src\n    };\n    JSHINT.internals.push(i);\n    return i;\n  }\n\n  function doOption() {\n    var nt = state.tokens.next;\n    var body = nt.body.match(/(-\\s+)?[^\\s,:]+(?:\\s*:\\s*(-\\s+)?[^\\s,]+)?/g) || [];\n\n    var predef = {};\n    if (nt.type === \"globals\") {\n      body.forEach(function(g, idx) {\n        g = g.split(\":\");\n        var key = (g[0] || \"\").trim();\n        var val = (g[1] || \"\").trim();\n\n        if (key === \"-\" || !key.length) {\n          if (idx > 0 && idx === body.length - 1) {\n            return;\n          }\n          error(\"E002\", nt);\n          return;\n        }\n\n        if (key.charAt(0) === \"-\") {\n          key = key.slice(1);\n          val = false;\n\n          JSHINT.blacklist[key] = key;\n          delete predefined[key];\n        } else {\n          predef[key] = (val === \"true\");\n        }\n      });\n\n      combine(predefined, predef);\n\n      for (var key in predef) {\n        if (_.has(predef, key)) {\n          declared[key] = nt;\n        }\n      }\n    }\n\n    if (nt.type === \"exported\") {\n      body.forEach(function(e, idx) {\n        if (!e.length) {\n          if (idx > 0 && idx === body.length - 1) {\n            return;\n          }\n          error(\"E002\", nt);\n          return;\n        }\n\n        state.funct[\"(scope)\"].addExported(e);\n      });\n    }\n\n    if (nt.type === \"members\") {\n      membersOnly = membersOnly || {};\n\n      body.forEach(function(m) {\n        var ch1 = m.charAt(0);\n        var ch2 = m.charAt(m.length - 1);\n\n        if (ch1 === ch2 && (ch1 === \"\\\"\" || ch1 === \"'\")) {\n          m = m\n            .substr(1, m.length - 2)\n            .replace(\"\\\\\\\"\", \"\\\"\");\n        }\n\n        membersOnly[m] = false;\n      });\n    }\n\n    var numvals = [\n      \"maxstatements\",\n      \"maxparams\",\n      \"maxdepth\",\n      \"maxcomplexity\",\n      \"maxerr\",\n      \"maxlen\",\n      \"indent\"\n    ];\n\n    if (nt.type === \"jshint\" || nt.type === \"jslint\") {\n      body.forEach(function(g) {\n        g = g.split(\":\");\n        var key = (g[0] || \"\").trim();\n        var val = (g[1] || \"\").trim();\n\n        if (!checkOption(key, nt)) {\n          return;\n        }\n\n        if (numvals.indexOf(key) >= 0) {\n          if (val !== \"false\") {\n            val = +val;\n\n            if (typeof val !== \"number\" || !isFinite(val) || val <= 0 || Math.floor(val) !== val) {\n              error(\"E032\", nt, g[1].trim());\n              return;\n            }\n\n            state.option[key] = val;\n          } else {\n            state.option[key] = key === \"indent\" ? 4 : false;\n          }\n\n          return;\n        }\n\n        if (key === \"validthis\") {\n\n          if (state.funct[\"(global)\"])\n            return void error(\"E009\");\n\n          if (val !== \"true\" && val !== \"false\")\n            return void error(\"E002\", nt);\n\n          state.option.validthis = (val === \"true\");\n          return;\n        }\n\n        if (key === \"quotmark\") {\n          switch (val) {\n          case \"true\":\n          case \"false\":\n            state.option.quotmark = (val === \"true\");\n            break;\n          case \"double\":\n          case \"single\":\n            state.option.quotmark = val;\n            break;\n          default:\n            error(\"E002\", nt);\n          }\n          return;\n        }\n\n        if (key === \"shadow\") {\n          switch (val) {\n          case \"true\":\n            state.option.shadow = true;\n            break;\n          case \"outer\":\n            state.option.shadow = \"outer\";\n            break;\n          case \"false\":\n          case \"inner\":\n            state.option.shadow = \"inner\";\n            break;\n          default:\n            error(\"E002\", nt);\n          }\n          return;\n        }\n\n        if (key === \"unused\") {\n          switch (val) {\n          case \"true\":\n            state.option.unused = true;\n            break;\n          case \"false\":\n            state.option.unused = false;\n            break;\n          case \"vars\":\n          case \"strict\":\n            state.option.unused = val;\n            break;\n          default:\n            error(\"E002\", nt);\n          }\n          return;\n        }\n\n        if (key === \"latedef\") {\n          switch (val) {\n          case \"true\":\n            state.option.latedef = true;\n            break;\n          case \"false\":\n            state.option.latedef = false;\n            break;\n          case \"nofunc\":\n            state.option.latedef = \"nofunc\";\n            break;\n          default:\n            error(\"E002\", nt);\n          }\n          return;\n        }\n\n        if (key === \"ignore\") {\n          switch (val) {\n          case \"line\":\n            state.ignoredLines[nt.line] = true;\n            removeIgnoredMessages();\n            break;\n          default:\n            error(\"E002\", nt);\n          }\n          return;\n        }\n\n        if (key === \"strict\") {\n          switch (val) {\n          case \"true\":\n            state.option.strict = true;\n            break;\n          case \"false\":\n            state.option.strict = false;\n            break;\n          case \"func\":\n          case \"global\":\n          case \"implied\":\n            state.option.strict = val;\n            break;\n          default:\n            error(\"E002\", nt);\n          }\n          return;\n        }\n\n        if (key === \"module\") {\n          if (!hasParsedCode(state.funct)) {\n            error(\"E055\", state.tokens.next, \"module\");\n          }\n        }\n        var esversions = {\n          es3   : 3,\n          es5   : 5,\n          esnext: 6\n        };\n        if (_.has(esversions, key)) {\n          switch (val) {\n          case \"true\":\n            state.option.moz = false;\n            state.option.esversion = esversions[key];\n            break;\n          case \"false\":\n            if (!state.option.moz) {\n              state.option.esversion = 5;\n            }\n            break;\n          default:\n            error(\"E002\", nt);\n          }\n          return;\n        }\n\n        if (key === \"esversion\") {\n          switch (val) {\n          case \"5\":\n            if (state.inES5(true)) {\n              warning(\"I003\");\n            }\n          case \"3\":\n          case \"6\":\n            state.option.moz = false;\n            state.option.esversion = +val;\n            break;\n          case \"2015\":\n            state.option.moz = false;\n            state.option.esversion = 6;\n            break;\n          default:\n            error(\"E002\", nt);\n          }\n          if (!hasParsedCode(state.funct)) {\n            error(\"E055\", state.tokens.next, \"esversion\");\n          }\n          return;\n        }\n\n        var match = /^([+-])(W\\d{3})$/g.exec(key);\n        if (match) {\n          state.ignored[match[2]] = (match[1] === \"-\");\n          return;\n        }\n\n        var tn;\n        if (val === \"true\" || val === \"false\") {\n          if (nt.type === \"jslint\") {\n            tn = options.renamed[key] || key;\n            state.option[tn] = (val === \"true\");\n\n            if (options.inverted[tn] !== undefined) {\n              state.option[tn] = !state.option[tn];\n            }\n          } else {\n            state.option[key] = (val === \"true\");\n          }\n\n          if (key === \"newcap\") {\n            state.option[\"(explicitNewcap)\"] = true;\n          }\n          return;\n        }\n\n        error(\"E002\", nt);\n      });\n\n      assume();\n    }\n  }\n\n  function peek(p) {\n    var i = p || 0, j = lookahead.length, t;\n\n    if (i < j) {\n      return lookahead[i];\n    }\n\n    while (j <= i) {\n      t = lookahead[j];\n      if (!t) {\n        t = lookahead[j] = lex.token();\n      }\n      j += 1;\n    }\n    if (!t && state.tokens.next.id === \"(end)\") {\n      return state.tokens.next;\n    }\n\n    return t;\n  }\n\n  function peekIgnoreEOL() {\n    var i = 0;\n    var t;\n    do {\n      t = peek(i++);\n    } while (t.id === \"(endline)\");\n    return t;\n  }\n\n  function advance(id, t) {\n\n    switch (state.tokens.curr.id) {\n    case \"(number)\":\n      if (state.tokens.next.id === \".\") {\n        warning(\"W005\", state.tokens.curr);\n      }\n      break;\n    case \"-\":\n      if (state.tokens.next.id === \"-\" || state.tokens.next.id === \"--\") {\n        warning(\"W006\");\n      }\n      break;\n    case \"+\":\n      if (state.tokens.next.id === \"+\" || state.tokens.next.id === \"++\") {\n        warning(\"W007\");\n      }\n      break;\n    }\n\n    if (id && state.tokens.next.id !== id) {\n      if (t) {\n        if (state.tokens.next.id === \"(end)\") {\n          error(\"E019\", t, t.id);\n        } else {\n          error(\"E020\", state.tokens.next, id, t.id, t.line, state.tokens.next.value);\n        }\n      } else if (state.tokens.next.type !== \"(identifier)\" || state.tokens.next.value !== id) {\n        warning(\"W116\", state.tokens.next, id, state.tokens.next.value);\n      }\n    }\n\n    state.tokens.prev = state.tokens.curr;\n    state.tokens.curr = state.tokens.next;\n    for (;;) {\n      state.tokens.next = lookahead.shift() || lex.token();\n\n      if (!state.tokens.next) { // No more tokens left, give up\n        quit(\"E041\", state.tokens.curr.line);\n      }\n\n      if (state.tokens.next.id === \"(end)\" || state.tokens.next.id === \"(error)\") {\n        return;\n      }\n\n      if (state.tokens.next.check) {\n        state.tokens.next.check();\n      }\n\n      if (state.tokens.next.isSpecial) {\n        if (state.tokens.next.type === \"falls through\") {\n          state.tokens.curr.caseFallsThrough = true;\n        } else {\n          doOption();\n        }\n      } else {\n        if (state.tokens.next.id !== \"(endline)\") {\n          break;\n        }\n      }\n    }\n  }\n\n  function isInfix(token) {\n    return token.infix || (!token.identifier && !token.template && !!token.led);\n  }\n\n  function isEndOfExpr() {\n    var curr = state.tokens.curr;\n    var next = state.tokens.next;\n    if (next.id === \";\" || next.id === \"}\" || next.id === \":\") {\n      return true;\n    }\n    if (isInfix(next) === isInfix(curr) || (curr.id === \"yield\" && state.inMoz())) {\n      return curr.line !== startLine(next);\n    }\n    return false;\n  }\n\n  function isBeginOfExpr(prev) {\n    return !prev.left && prev.arity !== \"unary\";\n  }\n\n  function expression(rbp, initial) {\n    var left, isArray = false, isObject = false, isLetExpr = false;\n\n    state.nameStack.push();\n    if (!initial && state.tokens.next.value === \"let\" && peek(0).value === \"(\") {\n      if (!state.inMoz()) {\n        warning(\"W118\", state.tokens.next, \"let expressions\");\n      }\n      isLetExpr = true;\n      state.funct[\"(scope)\"].stack();\n      advance(\"let\");\n      advance(\"(\");\n      state.tokens.prev.fud();\n      advance(\")\");\n    }\n\n    if (state.tokens.next.id === \"(end)\")\n      error(\"E006\", state.tokens.curr);\n\n    var isDangerous =\n      state.option.asi &&\n      state.tokens.prev.line !== startLine(state.tokens.curr) &&\n      _.contains([\"]\", \")\"], state.tokens.prev.id) &&\n      _.contains([\"[\", \"(\"], state.tokens.curr.id);\n\n    if (isDangerous)\n      warning(\"W014\", state.tokens.curr, state.tokens.curr.id);\n\n    advance();\n\n    if (initial) {\n      state.funct[\"(verb)\"] = state.tokens.curr.value;\n      state.tokens.curr.beginsStmt = true;\n    }\n\n    if (initial === true && state.tokens.curr.fud) {\n      left = state.tokens.curr.fud();\n    } else {\n      if (state.tokens.curr.nud) {\n        left = state.tokens.curr.nud();\n      } else {\n        error(\"E030\", state.tokens.curr, state.tokens.curr.id);\n      }\n      while ((rbp < state.tokens.next.lbp || state.tokens.next.type === \"(template)\") &&\n              !isEndOfExpr()) {\n        isArray = state.tokens.curr.value === \"Array\";\n        isObject = state.tokens.curr.value === \"Object\";\n        if (left && (left.value || (left.first && left.first.value))) {\n          if (left.value !== \"new\" ||\n            (left.first && left.first.value && left.first.value === \".\")) {\n            isArray = false;\n            if (left.value !== state.tokens.curr.value) {\n              isObject = false;\n            }\n          }\n        }\n\n        advance();\n\n        if (isArray && state.tokens.curr.id === \"(\" && state.tokens.next.id === \")\") {\n          warning(\"W009\", state.tokens.curr);\n        }\n\n        if (isObject && state.tokens.curr.id === \"(\" && state.tokens.next.id === \")\") {\n          warning(\"W010\", state.tokens.curr);\n        }\n\n        if (left && state.tokens.curr.led) {\n          left = state.tokens.curr.led(left);\n        } else {\n          error(\"E033\", state.tokens.curr, state.tokens.curr.id);\n        }\n      }\n    }\n    if (isLetExpr) {\n      state.funct[\"(scope)\"].unstack();\n    }\n\n    state.nameStack.pop();\n\n    return left;\n  }\n\n  function startLine(token) {\n    return token.startLine || token.line;\n  }\n\n  function nobreaknonadjacent(left, right) {\n    left = left || state.tokens.curr;\n    right = right || state.tokens.next;\n    if (!state.option.laxbreak && left.line !== startLine(right)) {\n      warning(\"W014\", right, right.value);\n    }\n  }\n\n  function nolinebreak(t) {\n    t = t || state.tokens.curr;\n    if (t.line !== startLine(state.tokens.next)) {\n      warning(\"E022\", t, t.value);\n    }\n  }\n\n  function nobreakcomma(left, right) {\n    if (left.line !== startLine(right)) {\n      if (!state.option.laxcomma) {\n        if (comma.first) {\n          warning(\"I001\");\n          comma.first = false;\n        }\n        warning(\"W014\", left, right.value);\n      }\n    }\n  }\n\n  function comma(opts) {\n    opts = opts || {};\n\n    if (!opts.peek) {\n      nobreakcomma(state.tokens.curr, state.tokens.next);\n      advance(\",\");\n    } else {\n      nobreakcomma(state.tokens.prev, state.tokens.curr);\n    }\n\n    if (state.tokens.next.identifier && !(opts.property && state.inES5())) {\n      switch (state.tokens.next.value) {\n      case \"break\":\n      case \"case\":\n      case \"catch\":\n      case \"continue\":\n      case \"default\":\n      case \"do\":\n      case \"else\":\n      case \"finally\":\n      case \"for\":\n      case \"if\":\n      case \"in\":\n      case \"instanceof\":\n      case \"return\":\n      case \"switch\":\n      case \"throw\":\n      case \"try\":\n      case \"var\":\n      case \"let\":\n      case \"while\":\n      case \"with\":\n        error(\"E024\", state.tokens.next, state.tokens.next.value);\n        return false;\n      }\n    }\n\n    if (state.tokens.next.type === \"(punctuator)\") {\n      switch (state.tokens.next.value) {\n      case \"}\":\n      case \"]\":\n      case \",\":\n        if (opts.allowTrailing) {\n          return true;\n        }\n      case \")\":\n        error(\"E024\", state.tokens.next, state.tokens.next.value);\n        return false;\n      }\n    }\n    return true;\n  }\n\n  function symbol(s, p) {\n    var x = state.syntax[s];\n    if (!x || typeof x !== \"object\") {\n      state.syntax[s] = x = {\n        id: s,\n        lbp: p,\n        value: s\n      };\n    }\n    return x;\n  }\n\n  function delim(s) {\n    var x = symbol(s, 0);\n    x.delim = true;\n    return x;\n  }\n\n  function stmt(s, f) {\n    var x = delim(s);\n    x.identifier = x.reserved = true;\n    x.fud = f;\n    return x;\n  }\n\n  function blockstmt(s, f) {\n    var x = stmt(s, f);\n    x.block = true;\n    return x;\n  }\n\n  function reserveName(x) {\n    var c = x.id.charAt(0);\n    if ((c >= \"a\" && c <= \"z\") || (c >= \"A\" && c <= \"Z\")) {\n      x.identifier = x.reserved = true;\n    }\n    return x;\n  }\n\n  function prefix(s, f) {\n    var x = symbol(s, 150);\n    reserveName(x);\n\n    x.nud = (typeof f === \"function\") ? f : function() {\n      this.arity = \"unary\";\n      this.right = expression(150);\n\n      if (this.id === \"++\" || this.id === \"--\") {\n        if (state.option.plusplus) {\n          warning(\"W016\", this, this.id);\n        } else if (this.right && (!this.right.identifier || isReserved(this.right)) &&\n            this.right.id !== \".\" && this.right.id !== \"[\") {\n          warning(\"W017\", this);\n        }\n\n        if (this.right && this.right.isMetaProperty) {\n          error(\"E031\", this);\n        } else if (this.right && this.right.identifier) {\n          state.funct[\"(scope)\"].block.modify(this.right.value, this);\n        }\n      }\n\n      return this;\n    };\n\n    return x;\n  }\n\n  function type(s, f) {\n    var x = delim(s);\n    x.type = s;\n    x.nud = f;\n    return x;\n  }\n\n  function reserve(name, func) {\n    var x = type(name, func);\n    x.identifier = true;\n    x.reserved = true;\n    return x;\n  }\n\n  function FutureReservedWord(name, meta) {\n    var x = type(name, (meta && meta.nud) || function() {\n      return this;\n    });\n\n    meta = meta || {};\n    meta.isFutureReservedWord = true;\n\n    x.value = name;\n    x.identifier = true;\n    x.reserved = true;\n    x.meta = meta;\n\n    return x;\n  }\n\n  function reservevar(s, v) {\n    return reserve(s, function() {\n      if (typeof v === \"function\") {\n        v(this);\n      }\n      return this;\n    });\n  }\n\n  function infix(s, f, p, w) {\n    var x = symbol(s, p);\n    reserveName(x);\n    x.infix = true;\n    x.led = function(left) {\n      if (!w) {\n        nobreaknonadjacent(state.tokens.prev, state.tokens.curr);\n      }\n      if ((s === \"in\" || s === \"instanceof\") && left.id === \"!\") {\n        warning(\"W018\", left, \"!\");\n      }\n      if (typeof f === \"function\") {\n        return f(left, this);\n      } else {\n        this.left = left;\n        this.right = expression(p);\n        return this;\n      }\n    };\n    return x;\n  }\n\n  function application(s) {\n    var x = symbol(s, 42);\n\n    x.led = function(left) {\n      nobreaknonadjacent(state.tokens.prev, state.tokens.curr);\n\n      this.left = left;\n      this.right = doFunction({ type: \"arrow\", loneArg: left });\n      return this;\n    };\n    return x;\n  }\n\n  function relation(s, f) {\n    var x = symbol(s, 100);\n\n    x.led = function(left) {\n      nobreaknonadjacent(state.tokens.prev, state.tokens.curr);\n      this.left = left;\n      var right = this.right = expression(100);\n\n      if (isIdentifier(left, \"NaN\") || isIdentifier(right, \"NaN\")) {\n        warning(\"W019\", this);\n      } else if (f) {\n        f.apply(this, [left, right]);\n      }\n\n      if (!left || !right) {\n        quit(\"E041\", state.tokens.curr.line);\n      }\n\n      if (left.id === \"!\") {\n        warning(\"W018\", left, \"!\");\n      }\n\n      if (right.id === \"!\") {\n        warning(\"W018\", right, \"!\");\n      }\n\n      return this;\n    };\n    return x;\n  }\n\n  function isPoorRelation(node) {\n    return node &&\n        ((node.type === \"(number)\" && +node.value === 0) ||\n         (node.type === \"(string)\" && node.value === \"\") ||\n         (node.type === \"null\" && !state.option.eqnull) ||\n        node.type === \"true\" ||\n        node.type === \"false\" ||\n        node.type === \"undefined\");\n  }\n\n  var typeofValues = {};\n  typeofValues.legacy = [\n    \"xml\",\n    \"unknown\"\n  ];\n  typeofValues.es3 = [\n    \"undefined\", \"boolean\", \"number\", \"string\", \"function\", \"object\",\n  ];\n  typeofValues.es3 = typeofValues.es3.concat(typeofValues.legacy);\n  typeofValues.es6 = typeofValues.es3.concat(\"symbol\");\n  function isTypoTypeof(left, right, state) {\n    var values;\n\n    if (state.option.notypeof)\n      return false;\n\n    if (!left || !right)\n      return false;\n\n    values = state.inES6() ? typeofValues.es6 : typeofValues.es3;\n\n    if (right.type === \"(identifier)\" && right.value === \"typeof\" && left.type === \"(string)\")\n      return !_.contains(values, left.value);\n\n    return false;\n  }\n\n  function isGlobalEval(left, state) {\n    var isGlobal = false;\n    if (left.type === \"this\" && state.funct[\"(context)\"] === null) {\n      isGlobal = true;\n    }\n    else if (left.type === \"(identifier)\") {\n      if (state.option.node && left.value === \"global\") {\n        isGlobal = true;\n      }\n\n      else if (state.option.browser && (left.value === \"window\" || left.value === \"document\")) {\n        isGlobal = true;\n      }\n    }\n\n    return isGlobal;\n  }\n\n  function findNativePrototype(left) {\n    var natives = [\n      \"Array\", \"ArrayBuffer\", \"Boolean\", \"Collator\", \"DataView\", \"Date\",\n      \"DateTimeFormat\", \"Error\", \"EvalError\", \"Float32Array\", \"Float64Array\",\n      \"Function\", \"Infinity\", \"Intl\", \"Int16Array\", \"Int32Array\", \"Int8Array\",\n      \"Iterator\", \"Number\", \"NumberFormat\", \"Object\", \"RangeError\",\n      \"ReferenceError\", \"RegExp\", \"StopIteration\", \"String\", \"SyntaxError\",\n      \"TypeError\", \"Uint16Array\", \"Uint32Array\", \"Uint8Array\", \"Uint8ClampedArray\",\n      \"URIError\"\n    ];\n\n    function walkPrototype(obj) {\n      if (typeof obj !== \"object\") return;\n      return obj.right === \"prototype\" ? obj : walkPrototype(obj.left);\n    }\n\n    function walkNative(obj) {\n      while (!obj.identifier && typeof obj.left === \"object\")\n        obj = obj.left;\n\n      if (obj.identifier && natives.indexOf(obj.value) >= 0)\n        return obj.value;\n    }\n\n    var prototype = walkPrototype(left);\n    if (prototype) return walkNative(prototype);\n  }\n  function checkLeftSideAssign(left, assignToken, options) {\n\n    var allowDestructuring = options && options.allowDestructuring;\n\n    assignToken = assignToken || left;\n\n    if (state.option.freeze) {\n      var nativeObject = findNativePrototype(left);\n      if (nativeObject)\n        warning(\"W121\", left, nativeObject);\n    }\n\n    if (left.identifier && !left.isMetaProperty) {\n      state.funct[\"(scope)\"].block.reassign(left.value, left);\n    }\n\n    if (left.id === \".\") {\n      if (!left.left || left.left.value === \"arguments\" && !state.isStrict()) {\n        warning(\"E031\", assignToken);\n      }\n\n      state.nameStack.set(state.tokens.prev);\n      return true;\n    } else if (left.id === \"{\" || left.id === \"[\") {\n      if (allowDestructuring && state.tokens.curr.left.destructAssign) {\n        state.tokens.curr.left.destructAssign.forEach(function(t) {\n          if (t.id) {\n            state.funct[\"(scope)\"].block.modify(t.id, t.token);\n          }\n        });\n      } else {\n        if (left.id === \"{\" || !left.left) {\n          warning(\"E031\", assignToken);\n        } else if (left.left.value === \"arguments\" && !state.isStrict()) {\n          warning(\"E031\", assignToken);\n        }\n      }\n\n      if (left.id === \"[\") {\n        state.nameStack.set(left.right);\n      }\n\n      return true;\n    } else if (left.isMetaProperty) {\n      error(\"E031\", assignToken);\n      return true;\n    } else if (left.identifier && !isReserved(left)) {\n      if (state.funct[\"(scope)\"].labeltype(left.value) === \"exception\") {\n        warning(\"W022\", left);\n      }\n      state.nameStack.set(left);\n      return true;\n    }\n\n    if (left === state.syntax[\"function\"]) {\n      warning(\"W023\", state.tokens.curr);\n    }\n\n    return false;\n  }\n\n  function assignop(s, f, p) {\n    var x = infix(s, typeof f === \"function\" ? f : function(left, that) {\n      that.left = left;\n\n      if (left && checkLeftSideAssign(left, that, { allowDestructuring: true })) {\n        that.right = expression(10);\n        return that;\n      }\n\n      error(\"E031\", that);\n    }, p);\n\n    x.exps = true;\n    x.assign = true;\n    return x;\n  }\n\n\n  function bitwise(s, f, p) {\n    var x = symbol(s, p);\n    reserveName(x);\n    x.led = (typeof f === \"function\") ? f : function(left) {\n      if (state.option.bitwise) {\n        warning(\"W016\", this, this.id);\n      }\n      this.left = left;\n      this.right = expression(p);\n      return this;\n    };\n    return x;\n  }\n\n  function bitwiseassignop(s) {\n    return assignop(s, function(left, that) {\n      if (state.option.bitwise) {\n        warning(\"W016\", that, that.id);\n      }\n\n      if (left && checkLeftSideAssign(left, that)) {\n        that.right = expression(10);\n        return that;\n      }\n      error(\"E031\", that);\n    }, 20);\n  }\n\n  function suffix(s) {\n    var x = symbol(s, 150);\n\n    x.led = function(left) {\n      if (state.option.plusplus) {\n        warning(\"W016\", this, this.id);\n      } else if ((!left.identifier || isReserved(left)) && left.id !== \".\" && left.id !== \"[\") {\n        warning(\"W017\", this);\n      }\n\n      if (left.isMetaProperty) {\n        error(\"E031\", this);\n      } else if (left && left.identifier) {\n        state.funct[\"(scope)\"].block.modify(left.value, left);\n      }\n\n      this.left = left;\n      return this;\n    };\n    return x;\n  }\n\n  function optionalidentifier(fnparam, prop, preserve) {\n    if (!state.tokens.next.identifier) {\n      return;\n    }\n\n    if (!preserve) {\n      advance();\n    }\n\n    var curr = state.tokens.curr;\n    var val  = state.tokens.curr.value;\n\n    if (!isReserved(curr)) {\n      return val;\n    }\n\n    if (prop) {\n      if (state.inES5()) {\n        return val;\n      }\n    }\n\n    if (fnparam && val === \"undefined\") {\n      return val;\n    }\n\n    warning(\"W024\", state.tokens.curr, state.tokens.curr.id);\n    return val;\n  }\n  function identifier(fnparam, prop) {\n    var i = optionalidentifier(fnparam, prop, false);\n    if (i) {\n      return i;\n    }\n    if (state.tokens.next.value === \"...\") {\n      if (!state.inES6(true)) {\n        warning(\"W119\", state.tokens.next, \"spread/rest operator\", \"6\");\n      }\n      advance();\n\n      if (checkPunctuator(state.tokens.next, \"...\")) {\n        warning(\"E024\", state.tokens.next, \"...\");\n        while (checkPunctuator(state.tokens.next, \"...\")) {\n          advance();\n        }\n      }\n\n      if (!state.tokens.next.identifier) {\n        warning(\"E024\", state.tokens.curr, \"...\");\n        return;\n      }\n\n      return identifier(fnparam, prop);\n    } else {\n      error(\"E030\", state.tokens.next, state.tokens.next.value);\n      if (state.tokens.next.id !== \";\") {\n        advance();\n      }\n    }\n  }\n\n\n  function reachable(controlToken) {\n    var i = 0, t;\n    if (state.tokens.next.id !== \";\" || controlToken.inBracelessBlock) {\n      return;\n    }\n    for (;;) {\n      do {\n        t = peek(i);\n        i += 1;\n      } while (t.id !== \"(end)\" && t.id === \"(comment)\");\n\n      if (t.reach) {\n        return;\n      }\n      if (t.id !== \"(endline)\") {\n        if (t.id === \"function\") {\n          if (state.option.latedef === true) {\n            warning(\"W026\", t);\n          }\n          break;\n        }\n\n        warning(\"W027\", t, t.value, controlToken.value);\n        break;\n      }\n    }\n  }\n\n  function parseFinalSemicolon() {\n    if (state.tokens.next.id !== \";\") {\n      if (state.tokens.next.isUnclosed) return advance();\n\n      var sameLine = startLine(state.tokens.next) === state.tokens.curr.line &&\n                     state.tokens.next.id !== \"(end)\";\n      var blockEnd = checkPunctuator(state.tokens.next, \"}\");\n\n      if (sameLine && !blockEnd) {\n        errorAt(\"E058\", state.tokens.curr.line, state.tokens.curr.character);\n      } else if (!state.option.asi) {\n        if ((blockEnd && !state.option.lastsemic) || !sameLine) {\n          warningAt(\"W033\", state.tokens.curr.line, state.tokens.curr.character);\n        }\n      }\n    } else {\n      advance(\";\");\n    }\n  }\n\n  function statement() {\n    var i = indent, r, t = state.tokens.next, hasOwnScope = false;\n\n    if (t.id === \";\") {\n      advance(\";\");\n      return;\n    }\n    var res = isReserved(t);\n\n    if (res && t.meta && t.meta.isFutureReservedWord && peek().id === \":\") {\n      warning(\"W024\", t, t.id);\n      res = false;\n    }\n\n    if (t.identifier && !res && peek().id === \":\") {\n      advance();\n      advance(\":\");\n\n      hasOwnScope = true;\n      state.funct[\"(scope)\"].stack();\n      state.funct[\"(scope)\"].block.addBreakLabel(t.value, { token: state.tokens.curr });\n\n      if (!state.tokens.next.labelled && state.tokens.next.value !== \"{\") {\n        warning(\"W028\", state.tokens.next, t.value, state.tokens.next.value);\n      }\n\n      state.tokens.next.label = t.value;\n      t = state.tokens.next;\n    }\n\n    if (t.id === \"{\") {\n      var iscase = (state.funct[\"(verb)\"] === \"case\" && state.tokens.curr.value === \":\");\n      block(true, true, false, false, iscase);\n      return;\n    }\n\n    r = expression(0, true);\n\n    if (r && !(r.identifier && r.value === \"function\") &&\n        !(r.type === \"(punctuator)\" && r.left &&\n          r.left.identifier && r.left.value === \"function\")) {\n      if (!state.isStrict() &&\n          state.option.strict === \"global\") {\n        warning(\"E007\");\n      }\n    }\n\n    if (!t.block) {\n      if (!state.option.expr && (!r || !r.exps)) {\n        warning(\"W030\", state.tokens.curr);\n      } else if (state.option.nonew && r && r.left && r.id === \"(\" && r.left.id === \"new\") {\n        warning(\"W031\", t);\n      }\n      parseFinalSemicolon();\n    }\n\n    indent = i;\n    if (hasOwnScope) {\n      state.funct[\"(scope)\"].unstack();\n    }\n    return r;\n  }\n\n\n  function statements() {\n    var a = [], p;\n\n    while (!state.tokens.next.reach && state.tokens.next.id !== \"(end)\") {\n      if (state.tokens.next.id === \";\") {\n        p = peek();\n\n        if (!p || (p.id !== \"(\" && p.id !== \"[\")) {\n          warning(\"W032\");\n        }\n\n        advance(\";\");\n      } else {\n        a.push(statement());\n      }\n    }\n    return a;\n  }\n  function directives() {\n    var i, p, pn;\n\n    while (state.tokens.next.id === \"(string)\") {\n      p = peek(0);\n      if (p.id === \"(endline)\") {\n        i = 1;\n        do {\n          pn = peek(i++);\n        } while (pn.id === \"(endline)\");\n        if (pn.id === \";\") {\n          p = pn;\n        } else if (pn.value === \"[\" || pn.value === \".\") {\n          break;\n        } else if (!state.option.asi || pn.value === \"(\") {\n          warning(\"W033\", state.tokens.next);\n        }\n      } else if (p.id === \".\" || p.id === \"[\") {\n        break;\n      } else if (p.id !== \";\") {\n        warning(\"W033\", p);\n      }\n\n      advance();\n      var directive = state.tokens.curr.value;\n      if (state.directive[directive] ||\n          (directive === \"use strict\" && state.option.strict === \"implied\")) {\n        warning(\"W034\", state.tokens.curr, directive);\n      }\n      state.directive[directive] = true;\n\n      if (p.id === \";\") {\n        advance(\";\");\n      }\n    }\n\n    if (state.isStrict()) {\n      if (!state.option[\"(explicitNewcap)\"]) {\n        state.option.newcap = true;\n      }\n      state.option.undef = true;\n    }\n  }\n  function block(ordinary, stmt, isfunc, isfatarrow, iscase) {\n    var a,\n      b = inblock,\n      old_indent = indent,\n      m,\n      t,\n      line,\n      d;\n\n    inblock = ordinary;\n\n    t = state.tokens.next;\n\n    var metrics = state.funct[\"(metrics)\"];\n    metrics.nestedBlockDepth += 1;\n    metrics.verifyMaxNestedBlockDepthPerFunction();\n\n    if (state.tokens.next.id === \"{\") {\n      advance(\"{\");\n      state.funct[\"(scope)\"].stack();\n\n      line = state.tokens.curr.line;\n      if (state.tokens.next.id !== \"}\") {\n        indent += state.option.indent;\n        while (!ordinary && state.tokens.next.from > indent) {\n          indent += state.option.indent;\n        }\n\n        if (isfunc) {\n          m = {};\n          for (d in state.directive) {\n            if (_.has(state.directive, d)) {\n              m[d] = state.directive[d];\n            }\n          }\n          directives();\n\n          if (state.option.strict && state.funct[\"(context)\"][\"(global)\"]) {\n            if (!m[\"use strict\"] && !state.isStrict()) {\n              warning(\"E007\");\n            }\n          }\n        }\n\n        a = statements();\n\n        metrics.statementCount += a.length;\n\n        indent -= state.option.indent;\n      }\n\n      advance(\"}\", t);\n\n      if (isfunc) {\n        state.funct[\"(scope)\"].validateParams();\n        if (m) {\n          state.directive = m;\n        }\n      }\n\n      state.funct[\"(scope)\"].unstack();\n\n      indent = old_indent;\n    } else if (!ordinary) {\n      if (isfunc) {\n        state.funct[\"(scope)\"].stack();\n\n        m = {};\n        if (stmt && !isfatarrow && !state.inMoz()) {\n          error(\"W118\", state.tokens.curr, \"function closure expressions\");\n        }\n\n        if (!stmt) {\n          for (d in state.directive) {\n            if (_.has(state.directive, d)) {\n              m[d] = state.directive[d];\n            }\n          }\n        }\n        expression(10);\n\n        if (state.option.strict && state.funct[\"(context)\"][\"(global)\"]) {\n          if (!m[\"use strict\"] && !state.isStrict()) {\n            warning(\"E007\");\n          }\n        }\n\n        state.funct[\"(scope)\"].unstack();\n      } else {\n        error(\"E021\", state.tokens.next, \"{\", state.tokens.next.value);\n      }\n    } else {\n      state.funct[\"(noblockscopedvar)\"] = state.tokens.next.id !== \"for\";\n      state.funct[\"(scope)\"].stack();\n\n      if (!stmt || state.option.curly) {\n        warning(\"W116\", state.tokens.next, \"{\", state.tokens.next.value);\n      }\n\n      state.tokens.next.inBracelessBlock = true;\n      indent += state.option.indent;\n      a = [statement()];\n      indent -= state.option.indent;\n\n      state.funct[\"(scope)\"].unstack();\n      delete state.funct[\"(noblockscopedvar)\"];\n    }\n    switch (state.funct[\"(verb)\"]) {\n    case \"break\":\n    case \"continue\":\n    case \"return\":\n    case \"throw\":\n      if (iscase) {\n        break;\n      }\n    default:\n      state.funct[\"(verb)\"] = null;\n    }\n\n    inblock = b;\n    if (ordinary && state.option.noempty && (!a || a.length === 0)) {\n      warning(\"W035\", state.tokens.prev);\n    }\n    metrics.nestedBlockDepth -= 1;\n    return a;\n  }\n\n\n  function countMember(m) {\n    if (membersOnly && typeof membersOnly[m] !== \"boolean\") {\n      warning(\"W036\", state.tokens.curr, m);\n    }\n    if (typeof member[m] === \"number\") {\n      member[m] += 1;\n    } else {\n      member[m] = 1;\n    }\n  }\n\n  type(\"(number)\", function() {\n    return this;\n  });\n\n  type(\"(string)\", function() {\n    return this;\n  });\n\n  state.syntax[\"(identifier)\"] = {\n    type: \"(identifier)\",\n    lbp: 0,\n    identifier: true,\n\n    nud: function() {\n      var v = this.value;\n      if (state.tokens.next.id === \"=>\") {\n        return this;\n      }\n\n      if (!state.funct[\"(comparray)\"].check(v)) {\n        state.funct[\"(scope)\"].block.use(v, state.tokens.curr);\n      }\n      return this;\n    },\n\n    led: function() {\n      error(\"E033\", state.tokens.next, state.tokens.next.value);\n    }\n  };\n\n  var baseTemplateSyntax = {\n    lbp: 0,\n    identifier: false,\n    template: true,\n  };\n  state.syntax[\"(template)\"] = _.extend({\n    type: \"(template)\",\n    nud: doTemplateLiteral,\n    led: doTemplateLiteral,\n    noSubst: false\n  }, baseTemplateSyntax);\n\n  state.syntax[\"(template middle)\"] = _.extend({\n    type: \"(template middle)\",\n    middle: true,\n    noSubst: false\n  }, baseTemplateSyntax);\n\n  state.syntax[\"(template tail)\"] = _.extend({\n    type: \"(template tail)\",\n    tail: true,\n    noSubst: false\n  }, baseTemplateSyntax);\n\n  state.syntax[\"(no subst template)\"] = _.extend({\n    type: \"(template)\",\n    nud: doTemplateLiteral,\n    led: doTemplateLiteral,\n    noSubst: true,\n    tail: true // mark as tail, since it's always the last component\n  }, baseTemplateSyntax);\n\n  type(\"(regexp)\", function() {\n    return this;\n  });\n\n  delim(\"(endline)\");\n  delim(\"(begin)\");\n  delim(\"(end)\").reach = true;\n  delim(\"(error)\").reach = true;\n  delim(\"}\").reach = true;\n  delim(\")\");\n  delim(\"]\");\n  delim(\"\\\"\").reach = true;\n  delim(\"'\").reach = true;\n  delim(\";\");\n  delim(\":\").reach = true;\n  delim(\"#\");\n\n  reserve(\"else\");\n  reserve(\"case\").reach = true;\n  reserve(\"catch\");\n  reserve(\"default\").reach = true;\n  reserve(\"finally\");\n  reservevar(\"arguments\", function(x) {\n    if (state.isStrict() && state.funct[\"(global)\"]) {\n      warning(\"E008\", x);\n    }\n  });\n  reservevar(\"eval\");\n  reservevar(\"false\");\n  reservevar(\"Infinity\");\n  reservevar(\"null\");\n  reservevar(\"this\", function(x) {\n    if (state.isStrict() && !isMethod() &&\n        !state.option.validthis && ((state.funct[\"(statement)\"] &&\n        state.funct[\"(name)\"].charAt(0) > \"Z\") || state.funct[\"(global)\"])) {\n      warning(\"W040\", x);\n    }\n  });\n  reservevar(\"true\");\n  reservevar(\"undefined\");\n\n  assignop(\"=\", \"assign\", 20);\n  assignop(\"+=\", \"assignadd\", 20);\n  assignop(\"-=\", \"assignsub\", 20);\n  assignop(\"*=\", \"assignmult\", 20);\n  assignop(\"/=\", \"assigndiv\", 20).nud = function() {\n    error(\"E014\");\n  };\n  assignop(\"%=\", \"assignmod\", 20);\n\n  bitwiseassignop(\"&=\");\n  bitwiseassignop(\"|=\");\n  bitwiseassignop(\"^=\");\n  bitwiseassignop(\"<<=\");\n  bitwiseassignop(\">>=\");\n  bitwiseassignop(\">>>=\");\n  infix(\",\", function(left, that) {\n    var expr;\n    that.exprs = [left];\n\n    if (state.option.nocomma) {\n      warning(\"W127\");\n    }\n\n    if (!comma({ peek: true })) {\n      return that;\n    }\n    while (true) {\n      if (!(expr = expression(10))) {\n        break;\n      }\n      that.exprs.push(expr);\n      if (state.tokens.next.value !== \",\" || !comma()) {\n        break;\n      }\n    }\n    return that;\n  }, 10, true);\n\n  infix(\"?\", function(left, that) {\n    increaseComplexityCount();\n    that.left = left;\n    that.right = expression(10);\n    advance(\":\");\n    that[\"else\"] = expression(10);\n    return that;\n  }, 30);\n\n  var orPrecendence = 40;\n  infix(\"||\", function(left, that) {\n    increaseComplexityCount();\n    that.left = left;\n    that.right = expression(orPrecendence);\n    return that;\n  }, orPrecendence);\n  infix(\"&&\", \"and\", 50);\n  bitwise(\"|\", \"bitor\", 70);\n  bitwise(\"^\", \"bitxor\", 80);\n  bitwise(\"&\", \"bitand\", 90);\n  relation(\"==\", function(left, right) {\n    var eqnull = state.option.eqnull &&\n      ((left && left.value) === \"null\" || (right && right.value) === \"null\");\n\n    switch (true) {\n      case !eqnull && state.option.eqeqeq:\n        this.from = this.character;\n        warning(\"W116\", this, \"===\", \"==\");\n        break;\n      case isPoorRelation(left):\n        warning(\"W041\", this, \"===\", left.value);\n        break;\n      case isPoorRelation(right):\n        warning(\"W041\", this, \"===\", right.value);\n        break;\n      case isTypoTypeof(right, left, state):\n        warning(\"W122\", this, right.value);\n        break;\n      case isTypoTypeof(left, right, state):\n        warning(\"W122\", this, left.value);\n        break;\n    }\n\n    return this;\n  });\n  relation(\"===\", function(left, right) {\n    if (isTypoTypeof(right, left, state)) {\n      warning(\"W122\", this, right.value);\n    } else if (isTypoTypeof(left, right, state)) {\n      warning(\"W122\", this, left.value);\n    }\n    return this;\n  });\n  relation(\"!=\", function(left, right) {\n    var eqnull = state.option.eqnull &&\n        ((left && left.value) === \"null\" || (right && right.value) === \"null\");\n\n    if (!eqnull && state.option.eqeqeq) {\n      this.from = this.character;\n      warning(\"W116\", this, \"!==\", \"!=\");\n    } else if (isPoorRelation(left)) {\n      warning(\"W041\", this, \"!==\", left.value);\n    } else if (isPoorRelation(right)) {\n      warning(\"W041\", this, \"!==\", right.value);\n    } else if (isTypoTypeof(right, left, state)) {\n      warning(\"W122\", this, right.value);\n    } else if (isTypoTypeof(left, right, state)) {\n      warning(\"W122\", this, left.value);\n    }\n    return this;\n  });\n  relation(\"!==\", function(left, right) {\n    if (isTypoTypeof(right, left, state)) {\n      warning(\"W122\", this, right.value);\n    } else if (isTypoTypeof(left, right, state)) {\n      warning(\"W122\", this, left.value);\n    }\n    return this;\n  });\n  relation(\"<\");\n  relation(\">\");\n  relation(\"<=\");\n  relation(\">=\");\n  bitwise(\"<<\", \"shiftleft\", 120);\n  bitwise(\">>\", \"shiftright\", 120);\n  bitwise(\">>>\", \"shiftrightunsigned\", 120);\n  infix(\"in\", \"in\", 120);\n  infix(\"instanceof\", \"instanceof\", 120);\n  infix(\"+\", function(left, that) {\n    var right;\n    that.left = left;\n    that.right = right = expression(130);\n\n    if (left && right && left.id === \"(string)\" && right.id === \"(string)\") {\n      left.value += right.value;\n      left.character = right.character;\n      if (!state.option.scripturl && reg.javascriptURL.test(left.value)) {\n        warning(\"W050\", left);\n      }\n      return left;\n    }\n\n    return that;\n  }, 130);\n  prefix(\"+\", \"num\");\n  prefix(\"+++\", function() {\n    warning(\"W007\");\n    this.arity = \"unary\";\n    this.right = expression(150);\n    return this;\n  });\n  infix(\"+++\", function(left) {\n    warning(\"W007\");\n    this.left = left;\n    this.right = expression(130);\n    return this;\n  }, 130);\n  infix(\"-\", \"sub\", 130);\n  prefix(\"-\", \"neg\");\n  prefix(\"---\", function() {\n    warning(\"W006\");\n    this.arity = \"unary\";\n    this.right = expression(150);\n    return this;\n  });\n  infix(\"---\", function(left) {\n    warning(\"W006\");\n    this.left = left;\n    this.right = expression(130);\n    return this;\n  }, 130);\n  infix(\"*\", \"mult\", 140);\n  infix(\"/\", \"div\", 140);\n  infix(\"%\", \"mod\", 140);\n\n  suffix(\"++\");\n  prefix(\"++\", \"preinc\");\n  state.syntax[\"++\"].exps = true;\n\n  suffix(\"--\");\n  prefix(\"--\", \"predec\");\n  state.syntax[\"--\"].exps = true;\n  prefix(\"delete\", function() {\n    var p = expression(10);\n    if (!p) {\n      return this;\n    }\n\n    if (p.id !== \".\" && p.id !== \"[\") {\n      warning(\"W051\");\n    }\n    this.first = p;\n    if (p.identifier && !state.isStrict()) {\n      p.forgiveUndef = true;\n    }\n    return this;\n  }).exps = true;\n\n  prefix(\"~\", function() {\n    if (state.option.bitwise) {\n      warning(\"W016\", this, \"~\");\n    }\n    this.arity = \"unary\";\n    this.right = expression(150);\n    return this;\n  });\n\n  prefix(\"...\", function() {\n    if (!state.inES6(true)) {\n      warning(\"W119\", this, \"spread/rest operator\", \"6\");\n    }\n    if (!state.tokens.next.identifier &&\n        state.tokens.next.type !== \"(string)\" &&\n          !checkPunctuators(state.tokens.next, [\"[\", \"(\"])) {\n\n      error(\"E030\", state.tokens.next, state.tokens.next.value);\n    }\n    expression(150);\n    return this;\n  });\n\n  prefix(\"!\", function() {\n    this.arity = \"unary\";\n    this.right = expression(150);\n\n    if (!this.right) { // '!' followed by nothing? Give up.\n      quit(\"E041\", this.line || 0);\n    }\n\n    if (bang[this.right.id] === true) {\n      warning(\"W018\", this, \"!\");\n    }\n    return this;\n  });\n\n  prefix(\"typeof\", (function() {\n    var p = expression(150);\n    this.first = this.right = p;\n\n    if (!p) { // 'typeof' followed by nothing? Give up.\n      quit(\"E041\", this.line || 0, this.character || 0);\n    }\n    if (p.identifier) {\n      p.forgiveUndef = true;\n    }\n    return this;\n  }));\n  prefix(\"new\", function() {\n    var mp = metaProperty(\"target\", function() {\n      if (!state.inES6(true)) {\n        warning(\"W119\", state.tokens.prev, \"new.target\", \"6\");\n      }\n      var inFunction, c = state.funct;\n      while (c) {\n        inFunction = !c[\"(global)\"];\n        if (!c[\"(arrow)\"]) { break; }\n        c = c[\"(context)\"];\n      }\n      if (!inFunction) {\n        warning(\"W136\", state.tokens.prev, \"new.target\");\n      }\n    });\n    if (mp) { return mp; }\n\n    var c = expression(155), i;\n    if (c && c.id !== \"function\") {\n      if (c.identifier) {\n        c[\"new\"] = true;\n        switch (c.value) {\n        case \"Number\":\n        case \"String\":\n        case \"Boolean\":\n        case \"Math\":\n        case \"JSON\":\n          warning(\"W053\", state.tokens.prev, c.value);\n          break;\n        case \"Symbol\":\n          if (state.inES6()) {\n            warning(\"W053\", state.tokens.prev, c.value);\n          }\n          break;\n        case \"Function\":\n          if (!state.option.evil) {\n            warning(\"W054\");\n          }\n          break;\n        case \"Date\":\n        case \"RegExp\":\n        case \"this\":\n          break;\n        default:\n          if (c.id !== \"function\") {\n            i = c.value.substr(0, 1);\n            if (state.option.newcap && (i < \"A\" || i > \"Z\") &&\n              !state.funct[\"(scope)\"].isPredefined(c.value)) {\n              warning(\"W055\", state.tokens.curr);\n            }\n          }\n        }\n      } else {\n        if (c.id !== \".\" && c.id !== \"[\" && c.id !== \"(\") {\n          warning(\"W056\", state.tokens.curr);\n        }\n      }\n    } else {\n      if (!state.option.supernew)\n        warning(\"W057\", this);\n    }\n    if (state.tokens.next.id !== \"(\" && !state.option.supernew) {\n      warning(\"W058\", state.tokens.curr, state.tokens.curr.value);\n    }\n    this.first = this.right = c;\n    return this;\n  });\n  state.syntax[\"new\"].exps = true;\n\n  prefix(\"void\").exps = true;\n\n  infix(\".\", function(left, that) {\n    var m = identifier(false, true);\n\n    if (typeof m === \"string\") {\n      countMember(m);\n    }\n\n    that.left = left;\n    that.right = m;\n\n    if (m && m === \"hasOwnProperty\" && state.tokens.next.value === \"=\") {\n      warning(\"W001\");\n    }\n\n    if (left && left.value === \"arguments\" && (m === \"callee\" || m === \"caller\")) {\n      if (state.option.noarg)\n        warning(\"W059\", left, m);\n      else if (state.isStrict())\n        error(\"E008\");\n    } else if (!state.option.evil && left && left.value === \"document\" &&\n        (m === \"write\" || m === \"writeln\")) {\n      warning(\"W060\", left);\n    }\n\n    if (!state.option.evil && (m === \"eval\" || m === \"execScript\")) {\n      if (isGlobalEval(left, state)) {\n        warning(\"W061\");\n      }\n    }\n\n    return that;\n  }, 160, true);\n\n  infix(\"(\", function(left, that) {\n    if (state.option.immed && left && !left.immed && left.id === \"function\") {\n      warning(\"W062\");\n    }\n\n    var n = 0;\n    var p = [];\n\n    if (left) {\n      if (left.type === \"(identifier)\") {\n        if (left.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)) {\n          if (\"Array Number String Boolean Date Object Error Symbol\".indexOf(left.value) === -1) {\n            if (left.value === \"Math\") {\n              warning(\"W063\", left);\n            } else if (state.option.newcap) {\n              warning(\"W064\", left);\n            }\n          }\n        }\n      }\n    }\n\n    if (state.tokens.next.id !== \")\") {\n      for (;;) {\n        p[p.length] = expression(10);\n        n += 1;\n        if (state.tokens.next.id !== \",\") {\n          break;\n        }\n        comma();\n      }\n    }\n\n    advance(\")\");\n\n    if (typeof left === \"object\") {\n      if (!state.inES5() && left.value === \"parseInt\" && n === 1) {\n        warning(\"W065\", state.tokens.curr);\n      }\n      if (!state.option.evil) {\n        if (left.value === \"eval\" || left.value === \"Function\" ||\n            left.value === \"execScript\") {\n          warning(\"W061\", left);\n\n          if (p[0] && [0].id === \"(string)\") {\n            addInternalSrc(left, p[0].value);\n          }\n        } else if (p[0] && p[0].id === \"(string)\" &&\n             (left.value === \"setTimeout\" ||\n            left.value === \"setInterval\")) {\n          warning(\"W066\", left);\n          addInternalSrc(left, p[0].value);\n        } else if (p[0] && p[0].id === \"(string)\" &&\n             left.value === \".\" &&\n             left.left.value === \"window\" &&\n             (left.right === \"setTimeout\" ||\n            left.right === \"setInterval\")) {\n          warning(\"W066\", left);\n          addInternalSrc(left, p[0].value);\n        }\n      }\n      if (!left.identifier && left.id !== \".\" && left.id !== \"[\" && left.id !== \"=>\" &&\n          left.id !== \"(\" && left.id !== \"&&\" && left.id !== \"||\" && left.id !== \"?\" &&\n          !(state.inES6() && left[\"(name)\"])) {\n        warning(\"W067\", that);\n      }\n    }\n\n    that.left = left;\n    return that;\n  }, 155, true).exps = true;\n\n  prefix(\"(\", function() {\n    var pn = state.tokens.next, pn1, i = -1;\n    var ret, triggerFnExpr, first, last;\n    var parens = 1;\n    var opening = state.tokens.curr;\n    var preceeding = state.tokens.prev;\n    var isNecessary = !state.option.singleGroups;\n\n    do {\n      if (pn.value === \"(\") {\n        parens += 1;\n      } else if (pn.value === \")\") {\n        parens -= 1;\n      }\n\n      i += 1;\n      pn1 = pn;\n      pn = peek(i);\n    } while (!(parens === 0 && pn1.value === \")\") && pn.value !== \";\" && pn.type !== \"(end)\");\n\n    if (state.tokens.next.id === \"function\") {\n      triggerFnExpr = state.tokens.next.immed = true;\n    }\n    if (pn.value === \"=>\") {\n      return doFunction({ type: \"arrow\", parsedOpening: true });\n    }\n\n    var exprs = [];\n\n    if (state.tokens.next.id !== \")\") {\n      for (;;) {\n        exprs.push(expression(10));\n\n        if (state.tokens.next.id !== \",\") {\n          break;\n        }\n\n        if (state.option.nocomma) {\n          warning(\"W127\");\n        }\n\n        comma();\n      }\n    }\n\n    advance(\")\", this);\n    if (state.option.immed && exprs[0] && exprs[0].id === \"function\") {\n      if (state.tokens.next.id !== \"(\" &&\n        state.tokens.next.id !== \".\" && state.tokens.next.id !== \"[\") {\n        warning(\"W068\", this);\n      }\n    }\n\n    if (!exprs.length) {\n      return;\n    }\n    if (exprs.length > 1) {\n      ret = Object.create(state.syntax[\",\"]);\n      ret.exprs = exprs;\n\n      first = exprs[0];\n      last = exprs[exprs.length - 1];\n\n      if (!isNecessary) {\n        isNecessary = preceeding.assign || preceeding.delim;\n      }\n    } else {\n      ret = first = last = exprs[0];\n\n      if (!isNecessary) {\n        isNecessary =\n          (opening.beginsStmt && (ret.id === \"{\" || triggerFnExpr || isFunctor(ret))) ||\n          (triggerFnExpr &&\n            (!isEndOfExpr() || state.tokens.prev.id !== \"}\")) ||\n          (isFunctor(ret) && !isEndOfExpr()) ||\n          (ret.id === \"{\" && preceeding.id === \"=>\") ||\n          (ret.type === \"(number)\" &&\n            checkPunctuator(pn, \".\") && /^\\d+$/.test(ret.value));\n      }\n    }\n\n    if (ret) {\n      if (!isNecessary && (first.left || first.right || ret.exprs)) {\n        isNecessary =\n          (!isBeginOfExpr(preceeding) && first.lbp <= preceeding.lbp) ||\n          (!isEndOfExpr() && last.lbp < state.tokens.next.lbp);\n      }\n\n      if (!isNecessary) {\n        warning(\"W126\", opening);\n      }\n\n      ret.paren = true;\n    }\n\n    return ret;\n  });\n\n  application(\"=>\");\n\n  infix(\"[\", function(left, that) {\n    var e = expression(10), s;\n    if (e && e.type === \"(string)\") {\n      if (!state.option.evil && (e.value === \"eval\" || e.value === \"execScript\")) {\n        if (isGlobalEval(left, state)) {\n          warning(\"W061\");\n        }\n      }\n\n      countMember(e.value);\n      if (!state.option.sub && reg.identifier.test(e.value)) {\n        s = state.syntax[e.value];\n        if (!s || !isReserved(s)) {\n          warning(\"W069\", state.tokens.prev, e.value);\n        }\n      }\n    }\n    advance(\"]\", that);\n\n    if (e && e.value === \"hasOwnProperty\" && state.tokens.next.value === \"=\") {\n      warning(\"W001\");\n    }\n\n    that.left = left;\n    that.right = e;\n    return that;\n  }, 160, true);\n\n  function comprehensiveArrayExpression() {\n    var res = {};\n    res.exps = true;\n    state.funct[\"(comparray)\"].stack();\n    var reversed = false;\n    if (state.tokens.next.value !== \"for\") {\n      reversed = true;\n      if (!state.inMoz()) {\n        warning(\"W116\", state.tokens.next, \"for\", state.tokens.next.value);\n      }\n      state.funct[\"(comparray)\"].setState(\"use\");\n      res.right = expression(10);\n    }\n\n    advance(\"for\");\n    if (state.tokens.next.value === \"each\") {\n      advance(\"each\");\n      if (!state.inMoz()) {\n        warning(\"W118\", state.tokens.curr, \"for each\");\n      }\n    }\n    advance(\"(\");\n    state.funct[\"(comparray)\"].setState(\"define\");\n    res.left = expression(130);\n    if (_.contains([\"in\", \"of\"], state.tokens.next.value)) {\n      advance();\n    } else {\n      error(\"E045\", state.tokens.curr);\n    }\n    state.funct[\"(comparray)\"].setState(\"generate\");\n    expression(10);\n\n    advance(\")\");\n    if (state.tokens.next.value === \"if\") {\n      advance(\"if\");\n      advance(\"(\");\n      state.funct[\"(comparray)\"].setState(\"filter\");\n      res.filter = expression(10);\n      advance(\")\");\n    }\n\n    if (!reversed) {\n      state.funct[\"(comparray)\"].setState(\"use\");\n      res.right = expression(10);\n    }\n\n    advance(\"]\");\n    state.funct[\"(comparray)\"].unstack();\n    return res;\n  }\n\n  prefix(\"[\", function() {\n    var blocktype = lookupBlockType();\n    if (blocktype.isCompArray) {\n      if (!state.option.esnext && !state.inMoz()) {\n        warning(\"W118\", state.tokens.curr, \"array comprehension\");\n      }\n      return comprehensiveArrayExpression();\n    } else if (blocktype.isDestAssign) {\n      this.destructAssign = destructuringPattern({ openingParsed: true, assignment: true });\n      return this;\n    }\n    var b = state.tokens.curr.line !== startLine(state.tokens.next);\n    this.first = [];\n    if (b) {\n      indent += state.option.indent;\n      if (state.tokens.next.from === indent + state.option.indent) {\n        indent += state.option.indent;\n      }\n    }\n    while (state.tokens.next.id !== \"(end)\") {\n      while (state.tokens.next.id === \",\") {\n        if (!state.option.elision) {\n          if (!state.inES5()) {\n            warning(\"W070\");\n          } else {\n            warning(\"W128\");\n            do {\n              advance(\",\");\n            } while (state.tokens.next.id === \",\");\n            continue;\n          }\n        }\n        advance(\",\");\n      }\n\n      if (state.tokens.next.id === \"]\") {\n        break;\n      }\n\n      this.first.push(expression(10));\n      if (state.tokens.next.id === \",\") {\n        comma({ allowTrailing: true });\n        if (state.tokens.next.id === \"]\" && !state.inES5()) {\n          warning(\"W070\", state.tokens.curr);\n          break;\n        }\n      } else {\n        break;\n      }\n    }\n    if (b) {\n      indent -= state.option.indent;\n    }\n    advance(\"]\", this);\n    return this;\n  });\n\n\n  function isMethod() {\n    return state.funct[\"(statement)\"] && state.funct[\"(statement)\"].type === \"class\" ||\n           state.funct[\"(context)\"] && state.funct[\"(context)\"][\"(verb)\"] === \"class\";\n  }\n\n\n  function isPropertyName(token) {\n    return token.identifier || token.id === \"(string)\" || token.id === \"(number)\";\n  }\n\n\n  function propertyName(preserveOrToken) {\n    var id;\n    var preserve = true;\n    if (typeof preserveOrToken === \"object\") {\n      id = preserveOrToken;\n    } else {\n      preserve = preserveOrToken;\n      id = optionalidentifier(false, true, preserve);\n    }\n\n    if (!id) {\n      if (state.tokens.next.id === \"(string)\") {\n        id = state.tokens.next.value;\n        if (!preserve) {\n          advance();\n        }\n      } else if (state.tokens.next.id === \"(number)\") {\n        id = state.tokens.next.value.toString();\n        if (!preserve) {\n          advance();\n        }\n      }\n    } else if (typeof id === \"object\") {\n      if (id.id === \"(string)\" || id.id === \"(identifier)\") id = id.value;\n      else if (id.id === \"(number)\") id = id.value.toString();\n    }\n\n    if (id === \"hasOwnProperty\") {\n      warning(\"W001\");\n    }\n\n    return id;\n  }\n  function functionparams(options) {\n    var next;\n    var paramsIds = [];\n    var ident;\n    var tokens = [];\n    var t;\n    var pastDefault = false;\n    var pastRest = false;\n    var arity = 0;\n    var loneArg = options && options.loneArg;\n\n    if (loneArg && loneArg.identifier === true) {\n      state.funct[\"(scope)\"].addParam(loneArg.value, loneArg);\n      return { arity: 1, params: [ loneArg.value ] };\n    }\n\n    next = state.tokens.next;\n\n    if (!options || !options.parsedOpening) {\n      advance(\"(\");\n    }\n\n    if (state.tokens.next.id === \")\") {\n      advance(\")\");\n      return;\n    }\n\n    function addParam(addParamArgs) {\n      state.funct[\"(scope)\"].addParam.apply(state.funct[\"(scope)\"], addParamArgs);\n    }\n\n    for (;;) {\n      arity++;\n      var currentParams = [];\n\n      if (_.contains([\"{\", \"[\"], state.tokens.next.id)) {\n        tokens = destructuringPattern();\n        for (t in tokens) {\n          t = tokens[t];\n          if (t.id) {\n            paramsIds.push(t.id);\n            currentParams.push([t.id, t.token]);\n          }\n        }\n      } else {\n        if (checkPunctuator(state.tokens.next, \"...\")) pastRest = true;\n        ident = identifier(true);\n        if (ident) {\n          paramsIds.push(ident);\n          currentParams.push([ident, state.tokens.curr]);\n        } else {\n          while (!checkPunctuators(state.tokens.next, [\",\", \")\"])) advance();\n        }\n      }\n      if (pastDefault) {\n        if (state.tokens.next.id !== \"=\") {\n          error(\"W138\", state.tokens.current);\n        }\n      }\n      if (state.tokens.next.id === \"=\") {\n        if (!state.inES6()) {\n          warning(\"W119\", state.tokens.next, \"default parameters\", \"6\");\n        }\n        advance(\"=\");\n        pastDefault = true;\n        expression(10);\n      }\n      currentParams.forEach(addParam);\n\n      if (state.tokens.next.id === \",\") {\n        if (pastRest) {\n          warning(\"W131\", state.tokens.next);\n        }\n        comma();\n      } else {\n        advance(\")\", next);\n        return { arity: arity, params: paramsIds };\n      }\n    }\n  }\n\n  function functor(name, token, overwrites) {\n    var funct = {\n      \"(name)\"      : name,\n      \"(breakage)\"  : 0,\n      \"(loopage)\"   : 0,\n      \"(tokens)\"    : {},\n      \"(properties)\": {},\n\n      \"(catch)\"     : false,\n      \"(global)\"    : false,\n\n      \"(line)\"      : null,\n      \"(character)\" : null,\n      \"(metrics)\"   : null,\n      \"(statement)\" : null,\n      \"(context)\"   : null,\n      \"(scope)\"     : null,\n      \"(comparray)\" : null,\n      \"(generator)\" : null,\n      \"(arrow)\"     : null,\n      \"(params)\"    : null\n    };\n\n    if (token) {\n      _.extend(funct, {\n        \"(line)\"     : token.line,\n        \"(character)\": token.character,\n        \"(metrics)\"  : createMetrics(token)\n      });\n    }\n\n    _.extend(funct, overwrites);\n\n    if (funct[\"(context)\"]) {\n      funct[\"(scope)\"] = funct[\"(context)\"][\"(scope)\"];\n      funct[\"(comparray)\"]  = funct[\"(context)\"][\"(comparray)\"];\n    }\n\n    return funct;\n  }\n\n  function isFunctor(token) {\n    return \"(scope)\" in token;\n  }\n  function hasParsedCode(funct) {\n    return funct[\"(global)\"] && !funct[\"(verb)\"];\n  }\n\n  function doTemplateLiteral(left) {\n    var ctx = this.context;\n    var noSubst = this.noSubst;\n    var depth = this.depth;\n\n    if (!noSubst) {\n      while (!end()) {\n        if (!state.tokens.next.template || state.tokens.next.depth > depth) {\n          expression(0); // should probably have different rbp?\n        } else {\n          advance();\n        }\n      }\n    }\n\n    return {\n      id: \"(template)\",\n      type: \"(template)\",\n      tag: left\n    };\n\n    function end() {\n      if (state.tokens.curr.template && state.tokens.curr.tail &&\n          state.tokens.curr.context === ctx) return true;\n      var complete = (state.tokens.next.template && state.tokens.next.tail &&\n                      state.tokens.next.context === ctx);\n      if (complete) advance();\n      return complete || state.tokens.next.isUnclosed;\n    }\n  }\n  function doFunction(options) {\n    var f, token, name, statement, classExprBinding, isGenerator, isArrow, ignoreLoopFunc;\n    var oldOption = state.option;\n    var oldIgnored = state.ignored;\n\n    if (options) {\n      name = options.name;\n      statement = options.statement;\n      classExprBinding = options.classExprBinding;\n      isGenerator = options.type === \"generator\";\n      isArrow = options.type === \"arrow\";\n      ignoreLoopFunc = options.ignoreLoopFunc;\n    }\n\n    state.option = Object.create(state.option);\n    state.ignored = Object.create(state.ignored);\n\n    state.funct = functor(name || state.nameStack.infer(), state.tokens.next, {\n      \"(statement)\": statement,\n      \"(context)\":   state.funct,\n      \"(arrow)\":     isArrow,\n      \"(generator)\": isGenerator\n    });\n\n    f = state.funct;\n    token = state.tokens.curr;\n    token.funct = state.funct;\n\n    functions.push(state.funct);\n    state.funct[\"(scope)\"].stack(\"functionouter\");\n    var internallyAccessibleName = name || classExprBinding;\n    if (internallyAccessibleName) {\n      state.funct[\"(scope)\"].block.add(internallyAccessibleName,\n        classExprBinding ? \"class\" : \"function\", state.tokens.curr, false);\n    }\n    state.funct[\"(scope)\"].stack(\"functionparams\");\n\n    var paramsInfo = functionparams(options);\n\n    if (paramsInfo) {\n      state.funct[\"(params)\"] = paramsInfo.params;\n      state.funct[\"(metrics)\"].arity = paramsInfo.arity;\n      state.funct[\"(metrics)\"].verifyMaxParametersPerFunction();\n    } else {\n      state.funct[\"(metrics)\"].arity = 0;\n    }\n\n    if (isArrow) {\n      if (!state.inES6(true)) {\n        warning(\"W119\", state.tokens.curr, \"arrow function syntax (=>)\", \"6\");\n      }\n\n      if (!options.loneArg) {\n        advance(\"=>\");\n      }\n    }\n\n    block(false, true, true, isArrow);\n\n    if (!state.option.noyield && isGenerator &&\n        state.funct[\"(generator)\"] !== \"yielded\") {\n      warning(\"W124\", state.tokens.curr);\n    }\n\n    state.funct[\"(metrics)\"].verifyMaxStatementsPerFunction();\n    state.funct[\"(metrics)\"].verifyMaxComplexityPerFunction();\n    state.funct[\"(unusedOption)\"] = state.option.unused;\n    state.option = oldOption;\n    state.ignored = oldIgnored;\n    state.funct[\"(last)\"] = state.tokens.curr.line;\n    state.funct[\"(lastcharacter)\"] = state.tokens.curr.character;\n    state.funct[\"(scope)\"].unstack(); // also does usage and label checks\n    state.funct[\"(scope)\"].unstack();\n\n    state.funct = state.funct[\"(context)\"];\n\n    if (!ignoreLoopFunc && !state.option.loopfunc && state.funct[\"(loopage)\"]) {\n      if (f[\"(isCapturing)\"]) {\n        warning(\"W083\", token);\n      }\n    }\n\n    return f;\n  }\n\n  function createMetrics(functionStartToken) {\n    return {\n      statementCount: 0,\n      nestedBlockDepth: -1,\n      ComplexityCount: 1,\n      arity: 0,\n\n      verifyMaxStatementsPerFunction: function() {\n        if (state.option.maxstatements &&\n          this.statementCount > state.option.maxstatements) {\n          warning(\"W071\", functionStartToken, this.statementCount);\n        }\n      },\n\n      verifyMaxParametersPerFunction: function() {\n        if (_.isNumber(state.option.maxparams) &&\n          this.arity > state.option.maxparams) {\n          warning(\"W072\", functionStartToken, this.arity);\n        }\n      },\n\n      verifyMaxNestedBlockDepthPerFunction: function() {\n        if (state.option.maxdepth &&\n          this.nestedBlockDepth > 0 &&\n          this.nestedBlockDepth === state.option.maxdepth + 1) {\n          warning(\"W073\", null, this.nestedBlockDepth);\n        }\n      },\n\n      verifyMaxComplexityPerFunction: function() {\n        var max = state.option.maxcomplexity;\n        var cc = this.ComplexityCount;\n        if (max && cc > max) {\n          warning(\"W074\", functionStartToken, cc);\n        }\n      }\n    };\n  }\n\n  function increaseComplexityCount() {\n    state.funct[\"(metrics)\"].ComplexityCount += 1;\n  }\n\n  function checkCondAssignment(expr) {\n    var id, paren;\n    if (expr) {\n      id = expr.id;\n      paren = expr.paren;\n      if (id === \",\" && (expr = expr.exprs[expr.exprs.length - 1])) {\n        id = expr.id;\n        paren = paren || expr.paren;\n      }\n    }\n    switch (id) {\n    case \"=\":\n    case \"+=\":\n    case \"-=\":\n    case \"*=\":\n    case \"%=\":\n    case \"&=\":\n    case \"|=\":\n    case \"^=\":\n    case \"/=\":\n      if (!paren && !state.option.boss) {\n        warning(\"W084\");\n      }\n    }\n  }\n  function checkProperties(props) {\n    if (state.inES5()) {\n      for (var name in props) {\n        if (props[name] && props[name].setterToken && !props[name].getterToken) {\n          warning(\"W078\", props[name].setterToken);\n        }\n      }\n    }\n  }\n\n  function metaProperty(name, c) {\n    if (checkPunctuator(state.tokens.next, \".\")) {\n      var left = state.tokens.curr.id;\n      advance(\".\");\n      var id = identifier();\n      state.tokens.curr.isMetaProperty = true;\n      if (name !== id) {\n        error(\"E057\", state.tokens.prev, left, id);\n      } else {\n        c();\n      }\n      return state.tokens.curr;\n    }\n  }\n\n  (function(x) {\n    x.nud = function() {\n      var b, f, i, p, t, isGeneratorMethod = false, nextVal;\n      var props = Object.create(null); // All properties, including accessors\n\n      b = state.tokens.curr.line !== startLine(state.tokens.next);\n      if (b) {\n        indent += state.option.indent;\n        if (state.tokens.next.from === indent + state.option.indent) {\n          indent += state.option.indent;\n        }\n      }\n\n      var blocktype = lookupBlockType();\n      if (blocktype.isDestAssign) {\n        this.destructAssign = destructuringPattern({ openingParsed: true, assignment: true });\n        return this;\n      }\n\n      for (;;) {\n        if (state.tokens.next.id === \"}\") {\n          break;\n        }\n\n        nextVal = state.tokens.next.value;\n        if (state.tokens.next.identifier &&\n            (peekIgnoreEOL().id === \",\" || peekIgnoreEOL().id === \"}\")) {\n          if (!state.inES6()) {\n            warning(\"W104\", state.tokens.next, \"object short notation\", \"6\");\n          }\n          i = propertyName(true);\n          saveProperty(props, i, state.tokens.next);\n\n          expression(10);\n\n        } else if (peek().id !== \":\" && (nextVal === \"get\" || nextVal === \"set\")) {\n          advance(nextVal);\n\n          if (!state.inES5()) {\n            error(\"E034\");\n          }\n\n          i = propertyName();\n          if (!i && !state.inES6()) {\n            error(\"E035\");\n          }\n          if (i) {\n            saveAccessor(nextVal, props, i, state.tokens.curr);\n          }\n\n          t = state.tokens.next;\n          f = doFunction();\n          p = f[\"(params)\"];\n          if (nextVal === \"get\" && i && p) {\n            warning(\"W076\", t, p[0], i);\n          } else if (nextVal === \"set\" && i && (!p || p.length !== 1)) {\n            warning(\"W077\", t, i);\n          }\n        } else {\n          if (state.tokens.next.value === \"*\" && state.tokens.next.type === \"(punctuator)\") {\n            if (!state.inES6()) {\n              warning(\"W104\", state.tokens.next, \"generator functions\", \"6\");\n            }\n            advance(\"*\");\n            isGeneratorMethod = true;\n          } else {\n            isGeneratorMethod = false;\n          }\n\n          if (state.tokens.next.id === \"[\") {\n            i = computedPropertyName();\n            state.nameStack.set(i);\n          } else {\n            state.nameStack.set(state.tokens.next);\n            i = propertyName();\n            saveProperty(props, i, state.tokens.next);\n\n            if (typeof i !== \"string\") {\n              break;\n            }\n          }\n\n          if (state.tokens.next.value === \"(\") {\n            if (!state.inES6()) {\n              warning(\"W104\", state.tokens.curr, \"concise methods\", \"6\");\n            }\n            doFunction({ type: isGeneratorMethod ? \"generator\" : null });\n          } else {\n            advance(\":\");\n            expression(10);\n          }\n        }\n\n        countMember(i);\n\n        if (state.tokens.next.id === \",\") {\n          comma({ allowTrailing: true, property: true });\n          if (state.tokens.next.id === \",\") {\n            warning(\"W070\", state.tokens.curr);\n          } else if (state.tokens.next.id === \"}\" && !state.inES5()) {\n            warning(\"W070\", state.tokens.curr);\n          }\n        } else {\n          break;\n        }\n      }\n      if (b) {\n        indent -= state.option.indent;\n      }\n      advance(\"}\", this);\n\n      checkProperties(props);\n\n      return this;\n    };\n    x.fud = function() {\n      error(\"E036\", state.tokens.curr);\n    };\n  }(delim(\"{\")));\n\n  function destructuringPattern(options) {\n    var isAssignment = options && options.assignment;\n\n    if (!state.inES6()) {\n      warning(\"W104\", state.tokens.curr,\n        isAssignment ? \"destructuring assignment\" : \"destructuring binding\", \"6\");\n    }\n\n    return destructuringPatternRecursive(options);\n  }\n\n  function destructuringPatternRecursive(options) {\n    var ids;\n    var identifiers = [];\n    var openingParsed = options && options.openingParsed;\n    var isAssignment = options && options.assignment;\n    var recursiveOptions = isAssignment ? { assignment: isAssignment } : null;\n    var firstToken = openingParsed ? state.tokens.curr : state.tokens.next;\n\n    var nextInnerDE = function() {\n      var ident;\n      if (checkPunctuators(state.tokens.next, [\"[\", \"{\"])) {\n        ids = destructuringPatternRecursive(recursiveOptions);\n        for (var id in ids) {\n          id = ids[id];\n          identifiers.push({ id: id.id, token: id.token });\n        }\n      } else if (checkPunctuator(state.tokens.next, \",\")) {\n        identifiers.push({ id: null, token: state.tokens.curr });\n      } else if (checkPunctuator(state.tokens.next, \"(\")) {\n        advance(\"(\");\n        nextInnerDE();\n        advance(\")\");\n      } else {\n        var is_rest = checkPunctuator(state.tokens.next, \"...\");\n\n        if (isAssignment) {\n          var identifierToken = is_rest ? peek(0) : state.tokens.next;\n          if (!identifierToken.identifier) {\n            warning(\"E030\", identifierToken, identifierToken.value);\n          }\n          var assignTarget = expression(155);\n          if (assignTarget) {\n            checkLeftSideAssign(assignTarget);\n            if (assignTarget.identifier) {\n              ident = assignTarget.value;\n            }\n          }\n        } else {\n          ident = identifier();\n        }\n        if (ident) {\n          identifiers.push({ id: ident, token: state.tokens.curr });\n        }\n        return is_rest;\n      }\n      return false;\n    };\n    var assignmentProperty = function() {\n      var id;\n      if (checkPunctuator(state.tokens.next, \"[\")) {\n        advance(\"[\");\n        expression(10);\n        advance(\"]\");\n        advance(\":\");\n        nextInnerDE();\n      } else if (state.tokens.next.id === \"(string)\" ||\n                 state.tokens.next.id === \"(number)\") {\n        advance();\n        advance(\":\");\n        nextInnerDE();\n      } else {\n        id = identifier();\n        if (checkPunctuator(state.tokens.next, \":\")) {\n          advance(\":\");\n          nextInnerDE();\n        } else if (id) {\n          if (isAssignment) {\n            checkLeftSideAssign(state.tokens.curr);\n          }\n          identifiers.push({ id: id, token: state.tokens.curr });\n        }\n      }\n    };\n    if (checkPunctuator(firstToken, \"[\")) {\n      if (!openingParsed) {\n        advance(\"[\");\n      }\n      if (checkPunctuator(state.tokens.next, \"]\")) {\n        warning(\"W137\", state.tokens.curr);\n      }\n      var element_after_rest = false;\n      while (!checkPunctuator(state.tokens.next, \"]\")) {\n        if (nextInnerDE() && !element_after_rest &&\n            checkPunctuator(state.tokens.next, \",\")) {\n          warning(\"W130\", state.tokens.next);\n          element_after_rest = true;\n        }\n        if (checkPunctuator(state.tokens.next, \"=\")) {\n          if (checkPunctuator(state.tokens.prev, \"...\")) {\n            advance(\"]\");\n          } else {\n            advance(\"=\");\n          }\n          if (state.tokens.next.id === \"undefined\") {\n            warning(\"W080\", state.tokens.prev, state.tokens.prev.value);\n          }\n          expression(10);\n        }\n        if (!checkPunctuator(state.tokens.next, \"]\")) {\n          advance(\",\");\n        }\n      }\n      advance(\"]\");\n    } else if (checkPunctuator(firstToken, \"{\")) {\n\n      if (!openingParsed) {\n        advance(\"{\");\n      }\n      if (checkPunctuator(state.tokens.next, \"}\")) {\n        warning(\"W137\", state.tokens.curr);\n      }\n      while (!checkPunctuator(state.tokens.next, \"}\")) {\n        assignmentProperty();\n        if (checkPunctuator(state.tokens.next, \"=\")) {\n          advance(\"=\");\n          if (state.tokens.next.id === \"undefined\") {\n            warning(\"W080\", state.tokens.prev, state.tokens.prev.value);\n          }\n          expression(10);\n        }\n        if (!checkPunctuator(state.tokens.next, \"}\")) {\n          advance(\",\");\n          if (checkPunctuator(state.tokens.next, \"}\")) {\n            break;\n          }\n        }\n      }\n      advance(\"}\");\n    }\n    return identifiers;\n  }\n\n  function destructuringPatternMatch(tokens, value) {\n    var first = value.first;\n\n    if (!first)\n      return;\n\n    _.zip(tokens, Array.isArray(first) ? first : [ first ]).forEach(function(val) {\n      var token = val[0];\n      var value = val[1];\n\n      if (token && value)\n        token.first = value;\n      else if (token && token.first && !value)\n        warning(\"W080\", token.first, token.first.value);\n    });\n  }\n\n  function blockVariableStatement(type, statement, context) {\n\n    var prefix = context && context.prefix;\n    var inexport = context && context.inexport;\n    var isLet = type === \"let\";\n    var isConst = type === \"const\";\n    var tokens, lone, value, letblock;\n\n    if (!state.inES6()) {\n      warning(\"W104\", state.tokens.curr, type, \"6\");\n    }\n\n    if (isLet && state.tokens.next.value === \"(\") {\n      if (!state.inMoz()) {\n        warning(\"W118\", state.tokens.next, \"let block\");\n      }\n      advance(\"(\");\n      state.funct[\"(scope)\"].stack();\n      letblock = true;\n    } else if (state.funct[\"(noblockscopedvar)\"]) {\n      error(\"E048\", state.tokens.curr, isConst ? \"Const\" : \"Let\");\n    }\n\n    statement.first = [];\n    for (;;) {\n      var names = [];\n      if (_.contains([\"{\", \"[\"], state.tokens.next.value)) {\n        tokens = destructuringPattern();\n        lone = false;\n      } else {\n        tokens = [ { id: identifier(), token: state.tokens.curr } ];\n        lone = true;\n      }\n\n      if (!prefix && isConst && state.tokens.next.id !== \"=\") {\n        warning(\"E012\", state.tokens.curr, state.tokens.curr.value);\n      }\n\n      for (var t in tokens) {\n        if (tokens.hasOwnProperty(t)) {\n          t = tokens[t];\n          if (state.funct[\"(scope)\"].block.isGlobal()) {\n            if (predefined[t.id] === false) {\n              warning(\"W079\", t.token, t.id);\n            }\n          }\n          if (t.id && !state.funct[\"(noblockscopedvar)\"]) {\n            state.funct[\"(scope)\"].addlabel(t.id, {\n              type: type,\n              token: t.token });\n            names.push(t.token);\n\n            if (lone && inexport) {\n              state.funct[\"(scope)\"].setExported(t.token.value, t.token);\n            }\n          }\n        }\n      }\n\n      if (state.tokens.next.id === \"=\") {\n        advance(\"=\");\n        if (!prefix && state.tokens.next.id === \"undefined\") {\n          warning(\"W080\", state.tokens.prev, state.tokens.prev.value);\n        }\n        if (!prefix && peek(0).id === \"=\" && state.tokens.next.identifier) {\n          warning(\"W120\", state.tokens.next, state.tokens.next.value);\n        }\n        value = expression(prefix ? 120 : 10);\n        if (lone) {\n          tokens[0].first = value;\n        } else {\n          destructuringPatternMatch(names, value);\n        }\n      }\n\n      statement.first = statement.first.concat(names);\n\n      if (state.tokens.next.id !== \",\") {\n        break;\n      }\n      comma();\n    }\n    if (letblock) {\n      advance(\")\");\n      block(true, true);\n      statement.block = true;\n      state.funct[\"(scope)\"].unstack();\n    }\n\n    return statement;\n  }\n\n  var conststatement = stmt(\"const\", function(context) {\n    return blockVariableStatement(\"const\", this, context);\n  });\n  conststatement.exps = true;\n\n  var letstatement = stmt(\"let\", function(context) {\n    return blockVariableStatement(\"let\", this, context);\n  });\n  letstatement.exps = true;\n\n  var varstatement = stmt(\"var\", function(context) {\n    var prefix = context && context.prefix;\n    var inexport = context && context.inexport;\n    var tokens, lone, value;\n    var implied = context && context.implied;\n    var report = !(context && context.ignore);\n\n    this.first = [];\n    for (;;) {\n      var names = [];\n      if (_.contains([\"{\", \"[\"], state.tokens.next.value)) {\n        tokens = destructuringPattern();\n        lone = false;\n      } else {\n        tokens = [ { id: identifier(), token: state.tokens.curr } ];\n        lone = true;\n      }\n\n      if (!(prefix && implied) && report && state.option.varstmt) {\n        warning(\"W132\", this);\n      }\n\n      this.first = this.first.concat(names);\n\n      for (var t in tokens) {\n        if (tokens.hasOwnProperty(t)) {\n          t = tokens[t];\n          if (!implied && state.funct[\"(global)\"]) {\n            if (predefined[t.id] === false) {\n              warning(\"W079\", t.token, t.id);\n            } else if (state.option.futurehostile === false) {\n              if ((!state.inES5() && vars.ecmaIdentifiers[5][t.id] === false) ||\n                (!state.inES6() && vars.ecmaIdentifiers[6][t.id] === false)) {\n                warning(\"W129\", t.token, t.id);\n              }\n            }\n          }\n          if (t.id) {\n            if (implied === \"for\") {\n\n              if (!state.funct[\"(scope)\"].has(t.id)) {\n                if (report) warning(\"W088\", t.token, t.id);\n              }\n              state.funct[\"(scope)\"].block.use(t.id, t.token);\n            } else {\n              state.funct[\"(scope)\"].addlabel(t.id, {\n                type: \"var\",\n                token: t.token });\n\n              if (lone && inexport) {\n                state.funct[\"(scope)\"].setExported(t.id, t.token);\n              }\n            }\n            names.push(t.token);\n          }\n        }\n      }\n\n      if (state.tokens.next.id === \"=\") {\n        state.nameStack.set(state.tokens.curr);\n\n        advance(\"=\");\n        if (!prefix && report && !state.funct[\"(loopage)\"] &&\n          state.tokens.next.id === \"undefined\") {\n          warning(\"W080\", state.tokens.prev, state.tokens.prev.value);\n        }\n        if (peek(0).id === \"=\" && state.tokens.next.identifier) {\n          if (!prefix && report &&\n              !state.funct[\"(params)\"] ||\n              state.funct[\"(params)\"].indexOf(state.tokens.next.value) === -1) {\n            warning(\"W120\", state.tokens.next, state.tokens.next.value);\n          }\n        }\n        value = expression(prefix ? 120 : 10);\n        if (lone) {\n          tokens[0].first = value;\n        } else {\n          destructuringPatternMatch(names, value);\n        }\n      }\n\n      if (state.tokens.next.id !== \",\") {\n        break;\n      }\n      comma();\n    }\n\n    return this;\n  });\n  varstatement.exps = true;\n\n  blockstmt(\"class\", function() {\n    return classdef.call(this, true);\n  });\n\n  function classdef(isStatement) {\n    if (!state.inES6()) {\n      warning(\"W104\", state.tokens.curr, \"class\", \"6\");\n    }\n    if (isStatement) {\n      this.name = identifier();\n\n      state.funct[\"(scope)\"].addlabel(this.name, {\n        type: \"class\",\n        token: state.tokens.curr });\n    } else if (state.tokens.next.identifier && state.tokens.next.value !== \"extends\") {\n      this.name = identifier();\n      this.namedExpr = true;\n    } else {\n      this.name = state.nameStack.infer();\n    }\n    classtail(this);\n    return this;\n  }\n\n  function classtail(c) {\n    var wasInClassBody = state.inClassBody;\n    if (state.tokens.next.value === \"extends\") {\n      advance(\"extends\");\n      c.heritage = expression(10);\n    }\n\n    state.inClassBody = true;\n    advance(\"{\");\n    c.body = classbody(c);\n    advance(\"}\");\n    state.inClassBody = wasInClassBody;\n  }\n\n  function classbody(c) {\n    var name;\n    var isStatic;\n    var isGenerator;\n    var getset;\n    var props = Object.create(null);\n    var staticProps = Object.create(null);\n    var computed;\n    for (var i = 0; state.tokens.next.id !== \"}\"; ++i) {\n      name = state.tokens.next;\n      isStatic = false;\n      isGenerator = false;\n      getset = null;\n      if (name.id === \";\") {\n        warning(\"W032\");\n        advance(\";\");\n        continue;\n      }\n\n      if (name.id === \"*\") {\n        isGenerator = true;\n        advance(\"*\");\n        name = state.tokens.next;\n      }\n      if (name.id === \"[\") {\n        name = computedPropertyName();\n        computed = true;\n      } else if (isPropertyName(name)) {\n        advance();\n        computed = false;\n        if (name.identifier && name.value === \"static\") {\n          if (checkPunctuator(state.tokens.next, \"*\")) {\n            isGenerator = true;\n            advance(\"*\");\n          }\n          if (isPropertyName(state.tokens.next) || state.tokens.next.id === \"[\") {\n            computed = state.tokens.next.id === \"[\";\n            isStatic = true;\n            name = state.tokens.next;\n            if (state.tokens.next.id === \"[\") {\n              name = computedPropertyName();\n            } else advance();\n          }\n        }\n\n        if (name.identifier && (name.value === \"get\" || name.value === \"set\")) {\n          if (isPropertyName(state.tokens.next) || state.tokens.next.id === \"[\") {\n            computed = state.tokens.next.id === \"[\";\n            getset = name;\n            name = state.tokens.next;\n            if (state.tokens.next.id === \"[\") {\n              name = computedPropertyName();\n            } else advance();\n          }\n        }\n      } else {\n        warning(\"W052\", state.tokens.next, state.tokens.next.value || state.tokens.next.type);\n        advance();\n        continue;\n      }\n\n      if (!checkPunctuator(state.tokens.next, \"(\")) {\n        error(\"E054\", state.tokens.next, state.tokens.next.value);\n        while (state.tokens.next.id !== \"}\" &&\n               !checkPunctuator(state.tokens.next, \"(\")) {\n          advance();\n        }\n        if (state.tokens.next.value !== \"(\") {\n          doFunction({ statement: c });\n        }\n      }\n\n      if (!computed) {\n        if (getset) {\n          saveAccessor(\n            getset.value, isStatic ? staticProps : props, name.value, name, true, isStatic);\n        } else {\n          if (name.value === \"constructor\") {\n            state.nameStack.set(c);\n          } else {\n            state.nameStack.set(name);\n          }\n          saveProperty(isStatic ? staticProps : props, name.value, name, true, isStatic);\n        }\n      }\n\n      if (getset && name.value === \"constructor\") {\n        var propDesc = getset.value === \"get\" ? \"class getter method\" : \"class setter method\";\n        error(\"E049\", name, propDesc, \"constructor\");\n      } else if (name.value === \"prototype\") {\n        error(\"E049\", name, \"class method\", \"prototype\");\n      }\n\n      propertyName(name);\n\n      doFunction({\n        statement: c,\n        type: isGenerator ? \"generator\" : null,\n        classExprBinding: c.namedExpr ? c.name : null\n      });\n    }\n\n    checkProperties(props);\n  }\n\n  blockstmt(\"function\", function(context) {\n    var inexport = context && context.inexport;\n    var generator = false;\n    if (state.tokens.next.value === \"*\") {\n      advance(\"*\");\n      if (state.inES6({ strict: true })) {\n        generator = true;\n      } else {\n        warning(\"W119\", state.tokens.curr, \"function*\", \"6\");\n      }\n    }\n    if (inblock) {\n      warning(\"W082\", state.tokens.curr);\n    }\n    var i = optionalidentifier();\n\n    state.funct[\"(scope)\"].addlabel(i, {\n      type: \"function\",\n      token: state.tokens.curr });\n\n    if (i === undefined) {\n      warning(\"W025\");\n    } else if (inexport) {\n      state.funct[\"(scope)\"].setExported(i, state.tokens.prev);\n    }\n\n    doFunction({\n      name: i,\n      statement: this,\n      type: generator ? \"generator\" : null,\n      ignoreLoopFunc: inblock // a declaration may already have warned\n    });\n    if (state.tokens.next.id === \"(\" && state.tokens.next.line === state.tokens.curr.line) {\n      error(\"E039\");\n    }\n    return this;\n  });\n\n  prefix(\"function\", function() {\n    var generator = false;\n\n    if (state.tokens.next.value === \"*\") {\n      if (!state.inES6()) {\n        warning(\"W119\", state.tokens.curr, \"function*\", \"6\");\n      }\n      advance(\"*\");\n      generator = true;\n    }\n\n    var i = optionalidentifier();\n    doFunction({ name: i, type: generator ? \"generator\" : null });\n    return this;\n  });\n\n  blockstmt(\"if\", function() {\n    var t = state.tokens.next;\n    increaseComplexityCount();\n    state.condition = true;\n    advance(\"(\");\n    var expr = expression(0);\n    checkCondAssignment(expr);\n    var forinifcheck = null;\n    if (state.option.forin && state.forinifcheckneeded) {\n      state.forinifcheckneeded = false; // We only need to analyze the first if inside the loop\n      forinifcheck = state.forinifchecks[state.forinifchecks.length - 1];\n      if (expr.type === \"(punctuator)\" && expr.value === \"!\") {\n        forinifcheck.type = \"(negative)\";\n      } else {\n        forinifcheck.type = \"(positive)\";\n      }\n    }\n\n    advance(\")\", t);\n    state.condition = false;\n    var s = block(true, true);\n    if (forinifcheck && forinifcheck.type === \"(negative)\") {\n      if (s && s[0] && s[0].type === \"(identifier)\" && s[0].value === \"continue\") {\n        forinifcheck.type = \"(negative-with-continue)\";\n      }\n    }\n\n    if (state.tokens.next.id === \"else\") {\n      advance(\"else\");\n      if (state.tokens.next.id === \"if\" || state.tokens.next.id === \"switch\") {\n        statement();\n      } else {\n        block(true, true);\n      }\n    }\n    return this;\n  });\n\n  blockstmt(\"try\", function() {\n    var b;\n\n    function doCatch() {\n      advance(\"catch\");\n      advance(\"(\");\n\n      state.funct[\"(scope)\"].stack(\"catchparams\");\n\n      if (checkPunctuators(state.tokens.next, [\"[\", \"{\"])) {\n        var tokens = destructuringPattern();\n        _.each(tokens, function(token) {\n          if (token.id) {\n            state.funct[\"(scope)\"].addParam(token.id, token, \"exception\");\n          }\n        });\n      } else if (state.tokens.next.type !== \"(identifier)\") {\n        warning(\"E030\", state.tokens.next, state.tokens.next.value);\n      } else {\n        state.funct[\"(scope)\"].addParam(identifier(), state.tokens.curr, \"exception\");\n      }\n\n      if (state.tokens.next.value === \"if\") {\n        if (!state.inMoz()) {\n          warning(\"W118\", state.tokens.curr, \"catch filter\");\n        }\n        advance(\"if\");\n        expression(0);\n      }\n\n      advance(\")\");\n\n      block(false);\n\n      state.funct[\"(scope)\"].unstack();\n    }\n\n    block(true);\n\n    while (state.tokens.next.id === \"catch\") {\n      increaseComplexityCount();\n      if (b && (!state.inMoz())) {\n        warning(\"W118\", state.tokens.next, \"multiple catch blocks\");\n      }\n      doCatch();\n      b = true;\n    }\n\n    if (state.tokens.next.id === \"finally\") {\n      advance(\"finally\");\n      block(true);\n      return;\n    }\n\n    if (!b) {\n      error(\"E021\", state.tokens.next, \"catch\", state.tokens.next.value);\n    }\n\n    return this;\n  });\n\n  blockstmt(\"while\", function() {\n    var t = state.tokens.next;\n    state.funct[\"(breakage)\"] += 1;\n    state.funct[\"(loopage)\"] += 1;\n    increaseComplexityCount();\n    advance(\"(\");\n    checkCondAssignment(expression(0));\n    advance(\")\", t);\n    block(true, true);\n    state.funct[\"(breakage)\"] -= 1;\n    state.funct[\"(loopage)\"] -= 1;\n    return this;\n  }).labelled = true;\n\n  blockstmt(\"with\", function() {\n    var t = state.tokens.next;\n    if (state.isStrict()) {\n      error(\"E010\", state.tokens.curr);\n    } else if (!state.option.withstmt) {\n      warning(\"W085\", state.tokens.curr);\n    }\n\n    advance(\"(\");\n    expression(0);\n    advance(\")\", t);\n    block(true, true);\n\n    return this;\n  });\n\n  blockstmt(\"switch\", function() {\n    var t = state.tokens.next;\n    var g = false;\n    var noindent = false;\n\n    state.funct[\"(breakage)\"] += 1;\n    advance(\"(\");\n    checkCondAssignment(expression(0));\n    advance(\")\", t);\n    t = state.tokens.next;\n    advance(\"{\");\n\n    if (state.tokens.next.from === indent)\n      noindent = true;\n\n    if (!noindent)\n      indent += state.option.indent;\n\n    this.cases = [];\n\n    for (;;) {\n      switch (state.tokens.next.id) {\n      case \"case\":\n        switch (state.funct[\"(verb)\"]) {\n        case \"yield\":\n        case \"break\":\n        case \"case\":\n        case \"continue\":\n        case \"return\":\n        case \"switch\":\n        case \"throw\":\n          break;\n        default:\n          if (!state.tokens.curr.caseFallsThrough) {\n            warning(\"W086\", state.tokens.curr, \"case\");\n          }\n        }\n\n        advance(\"case\");\n        this.cases.push(expression(0));\n        increaseComplexityCount();\n        g = true;\n        advance(\":\");\n        state.funct[\"(verb)\"] = \"case\";\n        break;\n      case \"default\":\n        switch (state.funct[\"(verb)\"]) {\n        case \"yield\":\n        case \"break\":\n        case \"continue\":\n        case \"return\":\n        case \"throw\":\n          break;\n        default:\n          if (this.cases.length) {\n            if (!state.tokens.curr.caseFallsThrough) {\n              warning(\"W086\", state.tokens.curr, \"default\");\n            }\n          }\n        }\n\n        advance(\"default\");\n        g = true;\n        advance(\":\");\n        break;\n      case \"}\":\n        if (!noindent)\n          indent -= state.option.indent;\n\n        advance(\"}\", t);\n        state.funct[\"(breakage)\"] -= 1;\n        state.funct[\"(verb)\"] = undefined;\n        return;\n      case \"(end)\":\n        error(\"E023\", state.tokens.next, \"}\");\n        return;\n      default:\n        indent += state.option.indent;\n        if (g) {\n          switch (state.tokens.curr.id) {\n          case \",\":\n            error(\"E040\");\n            return;\n          case \":\":\n            g = false;\n            statements();\n            break;\n          default:\n            error(\"E025\", state.tokens.curr);\n            return;\n          }\n        } else {\n          if (state.tokens.curr.id === \":\") {\n            advance(\":\");\n            error(\"E024\", state.tokens.curr, \":\");\n            statements();\n          } else {\n            error(\"E021\", state.tokens.next, \"case\", state.tokens.next.value);\n            return;\n          }\n        }\n        indent -= state.option.indent;\n      }\n    }\n    return this;\n  }).labelled = true;\n\n  stmt(\"debugger\", function() {\n    if (!state.option.debug) {\n      warning(\"W087\", this);\n    }\n    return this;\n  }).exps = true;\n\n  (function() {\n    var x = stmt(\"do\", function() {\n      state.funct[\"(breakage)\"] += 1;\n      state.funct[\"(loopage)\"] += 1;\n      increaseComplexityCount();\n\n      this.first = block(true, true);\n      advance(\"while\");\n      var t = state.tokens.next;\n      advance(\"(\");\n      checkCondAssignment(expression(0));\n      advance(\")\", t);\n      state.funct[\"(breakage)\"] -= 1;\n      state.funct[\"(loopage)\"] -= 1;\n      return this;\n    });\n    x.labelled = true;\n    x.exps = true;\n  }());\n\n  blockstmt(\"for\", function() {\n    var s, t = state.tokens.next;\n    var letscope = false;\n    var foreachtok = null;\n\n    if (t.value === \"each\") {\n      foreachtok = t;\n      advance(\"each\");\n      if (!state.inMoz()) {\n        warning(\"W118\", state.tokens.curr, \"for each\");\n      }\n    }\n\n    increaseComplexityCount();\n    advance(\"(\");\n    var nextop; // contains the token of the \"in\" or \"of\" operator\n    var i = 0;\n    var inof = [\"in\", \"of\"];\n    var level = 0; // BindingPattern \"level\" --- level 0 === no BindingPattern\n    var comma; // First comma punctuator at level 0\n    var initializer; // First initializer at level 0\n    if (checkPunctuators(state.tokens.next, [\"{\", \"[\"])) ++level;\n    do {\n      nextop = peek(i);\n      ++i;\n      if (checkPunctuators(nextop, [\"{\", \"[\"])) ++level;\n      else if (checkPunctuators(nextop, [\"}\", \"]\"])) --level;\n      if (level < 0) break;\n      if (level === 0) {\n        if (!comma && checkPunctuator(nextop, \",\")) comma = nextop;\n        else if (!initializer && checkPunctuator(nextop, \"=\")) initializer = nextop;\n      }\n    } while (level > 0 || !_.contains(inof, nextop.value) && nextop.value !== \";\" &&\n    nextop.type !== \"(end)\"); // Is this a JSCS bug? This looks really weird.\n    if (_.contains(inof, nextop.value)) {\n      if (!state.inES6() && nextop.value === \"of\") {\n        warning(\"W104\", nextop, \"for of\", \"6\");\n      }\n\n      var ok = !(initializer || comma);\n      if (initializer) {\n        error(\"W133\", comma, nextop.value, \"initializer is forbidden\");\n      }\n\n      if (comma) {\n        error(\"W133\", comma, nextop.value, \"more than one ForBinding\");\n      }\n\n      if (state.tokens.next.id === \"var\") {\n        advance(\"var\");\n        state.tokens.curr.fud({ prefix: true });\n      } else if (state.tokens.next.id === \"let\" || state.tokens.next.id === \"const\") {\n        advance(state.tokens.next.id);\n        letscope = true;\n        state.funct[\"(scope)\"].stack();\n        state.tokens.curr.fud({ prefix: true });\n      } else {\n        Object.create(varstatement).fud({ prefix: true, implied: \"for\", ignore: !ok });\n      }\n      advance(nextop.value);\n      expression(20);\n      advance(\")\", t);\n\n      if (nextop.value === \"in\" && state.option.forin) {\n        state.forinifcheckneeded = true;\n\n        if (state.forinifchecks === undefined) {\n          state.forinifchecks = [];\n        }\n        state.forinifchecks.push({\n          type: \"(none)\"\n        });\n      }\n\n      state.funct[\"(breakage)\"] += 1;\n      state.funct[\"(loopage)\"] += 1;\n\n      s = block(true, true);\n\n      if (nextop.value === \"in\" && state.option.forin) {\n        if (state.forinifchecks && state.forinifchecks.length > 0) {\n          var check = state.forinifchecks.pop();\n\n          if (// No if statement or not the first statement in loop body\n              s && s.length > 0 && (typeof s[0] !== \"object\" || s[0].value !== \"if\") ||\n              check.type === \"(positive)\" && s.length > 1 ||\n              check.type === \"(negative)\") {\n            warning(\"W089\", this);\n          }\n        }\n        state.forinifcheckneeded = false;\n      }\n\n      state.funct[\"(breakage)\"] -= 1;\n      state.funct[\"(loopage)\"] -= 1;\n    } else {\n      if (foreachtok) {\n        error(\"E045\", foreachtok);\n      }\n      if (state.tokens.next.id !== \";\") {\n        if (state.tokens.next.id === \"var\") {\n          advance(\"var\");\n          state.tokens.curr.fud();\n        } else if (state.tokens.next.id === \"let\") {\n          advance(\"let\");\n          letscope = true;\n          state.funct[\"(scope)\"].stack();\n          state.tokens.curr.fud();\n        } else {\n          for (;;) {\n            expression(0, \"for\");\n            if (state.tokens.next.id !== \",\") {\n              break;\n            }\n            comma();\n          }\n        }\n      }\n      nolinebreak(state.tokens.curr);\n      advance(\";\");\n      state.funct[\"(loopage)\"] += 1;\n      if (state.tokens.next.id !== \";\") {\n        checkCondAssignment(expression(0));\n      }\n      nolinebreak(state.tokens.curr);\n      advance(\";\");\n      if (state.tokens.next.id === \";\") {\n        error(\"E021\", state.tokens.next, \")\", \";\");\n      }\n      if (state.tokens.next.id !== \")\") {\n        for (;;) {\n          expression(0, \"for\");\n          if (state.tokens.next.id !== \",\") {\n            break;\n          }\n          comma();\n        }\n      }\n      advance(\")\", t);\n      state.funct[\"(breakage)\"] += 1;\n      block(true, true);\n      state.funct[\"(breakage)\"] -= 1;\n      state.funct[\"(loopage)\"] -= 1;\n\n    }\n    if (letscope) {\n      state.funct[\"(scope)\"].unstack();\n    }\n    return this;\n  }).labelled = true;\n\n\n  stmt(\"break\", function() {\n    var v = state.tokens.next.value;\n\n    if (!state.option.asi)\n      nolinebreak(this);\n\n    if (state.tokens.next.id !== \";\" && !state.tokens.next.reach &&\n        state.tokens.curr.line === startLine(state.tokens.next)) {\n      if (!state.funct[\"(scope)\"].funct.hasBreakLabel(v)) {\n        warning(\"W090\", state.tokens.next, v);\n      }\n      this.first = state.tokens.next;\n      advance();\n    } else {\n      if (state.funct[\"(breakage)\"] === 0)\n        warning(\"W052\", state.tokens.next, this.value);\n    }\n\n    reachable(this);\n\n    return this;\n  }).exps = true;\n\n\n  stmt(\"continue\", function() {\n    var v = state.tokens.next.value;\n\n    if (state.funct[\"(breakage)\"] === 0)\n      warning(\"W052\", state.tokens.next, this.value);\n    if (!state.funct[\"(loopage)\"])\n      warning(\"W052\", state.tokens.next, this.value);\n\n    if (!state.option.asi)\n      nolinebreak(this);\n\n    if (state.tokens.next.id !== \";\" && !state.tokens.next.reach) {\n      if (state.tokens.curr.line === startLine(state.tokens.next)) {\n        if (!state.funct[\"(scope)\"].funct.hasBreakLabel(v)) {\n          warning(\"W090\", state.tokens.next, v);\n        }\n        this.first = state.tokens.next;\n        advance();\n      }\n    }\n\n    reachable(this);\n\n    return this;\n  }).exps = true;\n\n\n  stmt(\"return\", function() {\n    if (this.line === startLine(state.tokens.next)) {\n      if (state.tokens.next.id !== \";\" && !state.tokens.next.reach) {\n        this.first = expression(0);\n\n        if (this.first &&\n            this.first.type === \"(punctuator)\" && this.first.value === \"=\" &&\n            !this.first.paren && !state.option.boss) {\n          warningAt(\"W093\", this.first.line, this.first.character);\n        }\n      }\n    } else {\n      if (state.tokens.next.type === \"(punctuator)\" &&\n        [\"[\", \"{\", \"+\", \"-\"].indexOf(state.tokens.next.value) > -1) {\n        nolinebreak(this); // always warn (Line breaking error)\n      }\n    }\n\n    reachable(this);\n\n    return this;\n  }).exps = true;\n\n  (function(x) {\n    x.exps = true;\n    x.lbp = 25;\n  }(prefix(\"yield\", function() {\n    var prev = state.tokens.prev;\n    if (state.inES6(true) && !state.funct[\"(generator)\"]) {\n      if (!(\"(catch)\" === state.funct[\"(name)\"] && state.funct[\"(context)\"][\"(generator)\"])) {\n        error(\"E046\", state.tokens.curr, \"yield\");\n      }\n    } else if (!state.inES6()) {\n      warning(\"W104\", state.tokens.curr, \"yield\", \"6\");\n    }\n    state.funct[\"(generator)\"] = \"yielded\";\n    var delegatingYield = false;\n\n    if (state.tokens.next.value === \"*\") {\n      delegatingYield = true;\n      advance(\"*\");\n    }\n\n    if (this.line === startLine(state.tokens.next) || !state.inMoz()) {\n      if (delegatingYield ||\n          (state.tokens.next.id !== \";\" && !state.option.asi &&\n           !state.tokens.next.reach && state.tokens.next.nud)) {\n\n        nobreaknonadjacent(state.tokens.curr, state.tokens.next);\n        this.first = expression(10);\n\n        if (this.first.type === \"(punctuator)\" && this.first.value === \"=\" &&\n            !this.first.paren && !state.option.boss) {\n          warningAt(\"W093\", this.first.line, this.first.character);\n        }\n      }\n\n      if (state.inMoz() && state.tokens.next.id !== \")\" &&\n          (prev.lbp > 30 || (!prev.assign && !isEndOfExpr()) || prev.id === \"yield\")) {\n        error(\"E050\", this);\n      }\n    } else if (!state.option.asi) {\n      nolinebreak(this); // always warn (Line breaking error)\n    }\n    return this;\n  })));\n\n\n  stmt(\"throw\", function() {\n    nolinebreak(this);\n    this.first = expression(20);\n\n    reachable(this);\n\n    return this;\n  }).exps = true;\n\n  stmt(\"import\", function() {\n    if (!state.inES6()) {\n      warning(\"W119\", state.tokens.curr, \"import\", \"6\");\n    }\n\n    if (state.tokens.next.type === \"(string)\") {\n      advance(\"(string)\");\n      return this;\n    }\n\n    if (state.tokens.next.identifier) {\n      this.name = identifier();\n      state.funct[\"(scope)\"].addlabel(this.name, {\n        type: \"const\",\n        token: state.tokens.curr });\n\n      if (state.tokens.next.value === \",\") {\n        advance(\",\");\n      } else {\n        advance(\"from\");\n        advance(\"(string)\");\n        return this;\n      }\n    }\n\n    if (state.tokens.next.id === \"*\") {\n      advance(\"*\");\n      advance(\"as\");\n      if (state.tokens.next.identifier) {\n        this.name = identifier();\n        state.funct[\"(scope)\"].addlabel(this.name, {\n          type: \"const\",\n          token: state.tokens.curr });\n      }\n    } else {\n      advance(\"{\");\n      for (;;) {\n        if (state.tokens.next.value === \"}\") {\n          advance(\"}\");\n          break;\n        }\n        var importName;\n        if (state.tokens.next.type === \"default\") {\n          importName = \"default\";\n          advance(\"default\");\n        } else {\n          importName = identifier();\n        }\n        if (state.tokens.next.value === \"as\") {\n          advance(\"as\");\n          importName = identifier();\n        }\n        state.funct[\"(scope)\"].addlabel(importName, {\n          type: \"const\",\n          token: state.tokens.curr });\n\n        if (state.tokens.next.value === \",\") {\n          advance(\",\");\n        } else if (state.tokens.next.value === \"}\") {\n          advance(\"}\");\n          break;\n        } else {\n          error(\"E024\", state.tokens.next, state.tokens.next.value);\n          break;\n        }\n      }\n    }\n    advance(\"from\");\n    advance(\"(string)\");\n    return this;\n  }).exps = true;\n\n  stmt(\"export\", function() {\n    var ok = true;\n    var token;\n    var identifier;\n\n    if (!state.inES6()) {\n      warning(\"W119\", state.tokens.curr, \"export\", \"6\");\n      ok = false;\n    }\n\n    if (!state.funct[\"(scope)\"].block.isGlobal()) {\n      error(\"E053\", state.tokens.curr);\n      ok = false;\n    }\n\n    if (state.tokens.next.value === \"*\") {\n      advance(\"*\");\n      advance(\"from\");\n      advance(\"(string)\");\n      return this;\n    }\n\n    if (state.tokens.next.type === \"default\") {\n      state.nameStack.set(state.tokens.next);\n      advance(\"default\");\n      var exportType = state.tokens.next.id;\n      if (exportType === \"function\" || exportType === \"class\") {\n        this.block = true;\n      }\n\n      token = peek();\n\n      expression(10);\n\n      identifier = token.value;\n\n      if (this.block) {\n        state.funct[\"(scope)\"].addlabel(identifier, {\n          type: exportType,\n          token: token });\n\n        state.funct[\"(scope)\"].setExported(identifier, token);\n      }\n\n      return this;\n    }\n\n    if (state.tokens.next.value === \"{\") {\n      advance(\"{\");\n      var exportedTokens = [];\n      for (;;) {\n        if (!state.tokens.next.identifier) {\n          error(\"E030\", state.tokens.next, state.tokens.next.value);\n        }\n        advance();\n\n        exportedTokens.push(state.tokens.curr);\n\n        if (state.tokens.next.value === \"as\") {\n          advance(\"as\");\n          if (!state.tokens.next.identifier) {\n            error(\"E030\", state.tokens.next, state.tokens.next.value);\n          }\n          advance();\n        }\n\n        if (state.tokens.next.value === \",\") {\n          advance(\",\");\n        } else if (state.tokens.next.value === \"}\") {\n          advance(\"}\");\n          break;\n        } else {\n          error(\"E024\", state.tokens.next, state.tokens.next.value);\n          break;\n        }\n      }\n      if (state.tokens.next.value === \"from\") {\n        advance(\"from\");\n        advance(\"(string)\");\n      } else if (ok) {\n        exportedTokens.forEach(function(token) {\n          state.funct[\"(scope)\"].setExported(token.value, token);\n        });\n      }\n      return this;\n    }\n\n    if (state.tokens.next.id === \"var\") {\n      advance(\"var\");\n      state.tokens.curr.fud({ inexport:true });\n    } else if (state.tokens.next.id === \"let\") {\n      advance(\"let\");\n      state.tokens.curr.fud({ inexport:true });\n    } else if (state.tokens.next.id === \"const\") {\n      advance(\"const\");\n      state.tokens.curr.fud({ inexport:true });\n    } else if (state.tokens.next.id === \"function\") {\n      this.block = true;\n      advance(\"function\");\n      state.syntax[\"function\"].fud({ inexport:true });\n    } else if (state.tokens.next.id === \"class\") {\n      this.block = true;\n      advance(\"class\");\n      var classNameToken = state.tokens.next;\n      state.syntax[\"class\"].fud();\n      state.funct[\"(scope)\"].setExported(classNameToken.value, classNameToken);\n    } else {\n      error(\"E024\", state.tokens.next, state.tokens.next.value);\n    }\n\n    return this;\n  }).exps = true;\n\n  FutureReservedWord(\"abstract\");\n  FutureReservedWord(\"boolean\");\n  FutureReservedWord(\"byte\");\n  FutureReservedWord(\"char\");\n  FutureReservedWord(\"class\", { es5: true, nud: classdef });\n  FutureReservedWord(\"double\");\n  FutureReservedWord(\"enum\", { es5: true });\n  FutureReservedWord(\"export\", { es5: true });\n  FutureReservedWord(\"extends\", { es5: true });\n  FutureReservedWord(\"final\");\n  FutureReservedWord(\"float\");\n  FutureReservedWord(\"goto\");\n  FutureReservedWord(\"implements\", { es5: true, strictOnly: true });\n  FutureReservedWord(\"import\", { es5: true });\n  FutureReservedWord(\"int\");\n  FutureReservedWord(\"interface\", { es5: true, strictOnly: true });\n  FutureReservedWord(\"long\");\n  FutureReservedWord(\"native\");\n  FutureReservedWord(\"package\", { es5: true, strictOnly: true });\n  FutureReservedWord(\"private\", { es5: true, strictOnly: true });\n  FutureReservedWord(\"protected\", { es5: true, strictOnly: true });\n  FutureReservedWord(\"public\", { es5: true, strictOnly: true });\n  FutureReservedWord(\"short\");\n  FutureReservedWord(\"static\", { es5: true, strictOnly: true });\n  FutureReservedWord(\"super\", { es5: true });\n  FutureReservedWord(\"synchronized\");\n  FutureReservedWord(\"transient\");\n  FutureReservedWord(\"volatile\");\n\n  var lookupBlockType = function() {\n    var pn, pn1, prev;\n    var i = -1;\n    var bracketStack = 0;\n    var ret = {};\n    if (checkPunctuators(state.tokens.curr, [\"[\", \"{\"])) {\n      bracketStack += 1;\n    }\n    do {\n      prev = i === -1 ? state.tokens.curr : pn;\n      pn = i === -1 ? state.tokens.next : peek(i);\n      pn1 = peek(i + 1);\n      i = i + 1;\n      if (checkPunctuators(pn, [\"[\", \"{\"])) {\n        bracketStack += 1;\n      } else if (checkPunctuators(pn, [\"]\", \"}\"])) {\n        bracketStack -= 1;\n      }\n      if (bracketStack === 1 && pn.identifier && pn.value === \"for\" &&\n          !checkPunctuator(prev, \".\")) {\n        ret.isCompArray = true;\n        ret.notJson = true;\n        break;\n      }\n      if (bracketStack === 0 && checkPunctuators(pn, [\"}\", \"]\"])) {\n        if (pn1.value === \"=\") {\n          ret.isDestAssign = true;\n          ret.notJson = true;\n          break;\n        } else if (pn1.value === \".\") {\n          ret.notJson = true;\n          break;\n        }\n      }\n      if (checkPunctuator(pn, \";\")) {\n        ret.isBlock = true;\n        ret.notJson = true;\n      }\n    } while (bracketStack > 0 && pn.id !== \"(end)\");\n    return ret;\n  };\n\n  function saveProperty(props, name, tkn, isClass, isStatic) {\n    var msg = [\"key\", \"class method\", \"static class method\"];\n    msg = msg[(isClass || false) + (isStatic || false)];\n    if (tkn.identifier) {\n      name = tkn.value;\n    }\n\n    if (props[name] && name !== \"__proto__\") {\n      warning(\"W075\", state.tokens.next, msg, name);\n    } else {\n      props[name] = Object.create(null);\n    }\n\n    props[name].basic = true;\n    props[name].basictkn = tkn;\n  }\n  function saveAccessor(accessorType, props, name, tkn, isClass, isStatic) {\n    var flagName = accessorType === \"get\" ? \"getterToken\" : \"setterToken\";\n    var msg = \"\";\n\n    if (isClass) {\n      if (isStatic) {\n        msg += \"static \";\n      }\n      msg += accessorType + \"ter method\";\n    } else {\n      msg = \"key\";\n    }\n\n    state.tokens.curr.accessorType = accessorType;\n    state.nameStack.set(tkn);\n\n    if (props[name]) {\n      if ((props[name].basic || props[name][flagName]) && name !== \"__proto__\") {\n        warning(\"W075\", state.tokens.next, msg, name);\n      }\n    } else {\n      props[name] = Object.create(null);\n    }\n\n    props[name][flagName] = tkn;\n  }\n\n  function computedPropertyName() {\n    advance(\"[\");\n    if (!state.inES6()) {\n      warning(\"W119\", state.tokens.curr, \"computed property names\", \"6\");\n    }\n    var value = expression(10);\n    advance(\"]\");\n    return value;\n  }\n  function checkPunctuators(token, values) {\n    if (token.type === \"(punctuator)\") {\n      return _.contains(values, token.value);\n    }\n    return false;\n  }\n  function checkPunctuator(token, value) {\n    return token.type === \"(punctuator)\" && token.value === value;\n  }\n  function destructuringAssignOrJsonValue() {\n\n    var block = lookupBlockType();\n    if (block.notJson) {\n      if (!state.inES6() && block.isDestAssign) {\n        warning(\"W104\", state.tokens.curr, \"destructuring assignment\", \"6\");\n      }\n      statements();\n    } else {\n      state.option.laxbreak = true;\n      state.jsonMode = true;\n      jsonValue();\n    }\n  }\n\n  var arrayComprehension = function() {\n    var CompArray = function() {\n      this.mode = \"use\";\n      this.variables = [];\n    };\n    var _carrays = [];\n    var _current;\n    function declare(v) {\n      var l = _current.variables.filter(function(elt) {\n        if (elt.value === v) {\n          elt.undef = false;\n          return v;\n        }\n      }).length;\n      return l !== 0;\n    }\n    function use(v) {\n      var l = _current.variables.filter(function(elt) {\n        if (elt.value === v && !elt.undef) {\n          if (elt.unused === true) {\n            elt.unused = false;\n          }\n          return v;\n        }\n      }).length;\n      return (l === 0);\n    }\n    return { stack: function() {\n          _current = new CompArray();\n          _carrays.push(_current);\n        },\n        unstack: function() {\n          _current.variables.filter(function(v) {\n            if (v.unused)\n              warning(\"W098\", v.token, v.raw_text || v.value);\n            if (v.undef)\n              state.funct[\"(scope)\"].block.use(v.value, v.token);\n          });\n          _carrays.splice(-1, 1);\n          _current = _carrays[_carrays.length - 1];\n        },\n        setState: function(s) {\n          if (_.contains([\"use\", \"define\", \"generate\", \"filter\"], s))\n            _current.mode = s;\n        },\n        check: function(v) {\n          if (!_current) {\n            return;\n          }\n          if (_current && _current.mode === \"use\") {\n            if (use(v)) {\n              _current.variables.push({\n                funct: state.funct,\n                token: state.tokens.curr,\n                value: v,\n                undef: true,\n                unused: false\n              });\n            }\n            return true;\n          } else if (_current && _current.mode === \"define\") {\n            if (!declare(v)) {\n              _current.variables.push({\n                funct: state.funct,\n                token: state.tokens.curr,\n                value: v,\n                undef: false,\n                unused: true\n              });\n            }\n            return true;\n          } else if (_current && _current.mode === \"generate\") {\n            state.funct[\"(scope)\"].block.use(v, state.tokens.curr);\n            return true;\n          } else if (_current && _current.mode === \"filter\") {\n            if (use(v)) {\n              state.funct[\"(scope)\"].block.use(v, state.tokens.curr);\n            }\n            return true;\n          }\n          return false;\n        }\n        };\n  };\n\n  function jsonValue() {\n    function jsonObject() {\n      var o = {}, t = state.tokens.next;\n      advance(\"{\");\n      if (state.tokens.next.id !== \"}\") {\n        for (;;) {\n          if (state.tokens.next.id === \"(end)\") {\n            error(\"E026\", state.tokens.next, t.line);\n          } else if (state.tokens.next.id === \"}\") {\n            warning(\"W094\", state.tokens.curr);\n            break;\n          } else if (state.tokens.next.id === \",\") {\n            error(\"E028\", state.tokens.next);\n          } else if (state.tokens.next.id !== \"(string)\") {\n            warning(\"W095\", state.tokens.next, state.tokens.next.value);\n          }\n          if (o[state.tokens.next.value] === true) {\n            warning(\"W075\", state.tokens.next, \"key\", state.tokens.next.value);\n          } else if ((state.tokens.next.value === \"__proto__\" &&\n            !state.option.proto) || (state.tokens.next.value === \"__iterator__\" &&\n            !state.option.iterator)) {\n            warning(\"W096\", state.tokens.next, state.tokens.next.value);\n          } else {\n            o[state.tokens.next.value] = true;\n          }\n          advance();\n          advance(\":\");\n          jsonValue();\n          if (state.tokens.next.id !== \",\") {\n            break;\n          }\n          advance(\",\");\n        }\n      }\n      advance(\"}\");\n    }\n\n    function jsonArray() {\n      var t = state.tokens.next;\n      advance(\"[\");\n      if (state.tokens.next.id !== \"]\") {\n        for (;;) {\n          if (state.tokens.next.id === \"(end)\") {\n            error(\"E027\", state.tokens.next, t.line);\n          } else if (state.tokens.next.id === \"]\") {\n            warning(\"W094\", state.tokens.curr);\n            break;\n          } else if (state.tokens.next.id === \",\") {\n            error(\"E028\", state.tokens.next);\n          }\n          jsonValue();\n          if (state.tokens.next.id !== \",\") {\n            break;\n          }\n          advance(\",\");\n        }\n      }\n      advance(\"]\");\n    }\n\n    switch (state.tokens.next.id) {\n    case \"{\":\n      jsonObject();\n      break;\n    case \"[\":\n      jsonArray();\n      break;\n    case \"true\":\n    case \"false\":\n    case \"null\":\n    case \"(number)\":\n    case \"(string)\":\n      advance();\n      break;\n    case \"-\":\n      advance(\"-\");\n      advance(\"(number)\");\n      break;\n    default:\n      error(\"E003\", state.tokens.next);\n    }\n  }\n\n  var escapeRegex = function(str) {\n    return str.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n  };\n  var itself = function(s, o, g) {\n    var i, k, x, reIgnoreStr, reIgnore;\n    var optionKeys;\n    var newOptionObj = {};\n    var newIgnoredObj = {};\n\n    o = _.clone(o);\n    state.reset();\n\n    if (o && o.scope) {\n      JSHINT.scope = o.scope;\n    } else {\n      JSHINT.errors = [];\n      JSHINT.undefs = [];\n      JSHINT.internals = [];\n      JSHINT.blacklist = {};\n      JSHINT.scope = \"(main)\";\n    }\n\n    predefined = Object.create(null);\n    combine(predefined, vars.ecmaIdentifiers[3]);\n    combine(predefined, vars.reservedVars);\n\n    combine(predefined, g || {});\n\n    declared = Object.create(null);\n    var exported = Object.create(null); // Variables that live outside the current file\n\n    function each(obj, cb) {\n      if (!obj)\n        return;\n\n      if (!Array.isArray(obj) && typeof obj === \"object\")\n        obj = Object.keys(obj);\n\n      obj.forEach(cb);\n    }\n\n    if (o) {\n      each(o.predef || null, function(item) {\n        var slice, prop;\n\n        if (item[0] === \"-\") {\n          slice = item.slice(1);\n          JSHINT.blacklist[slice] = slice;\n          delete predefined[slice];\n        } else {\n          prop = Object.getOwnPropertyDescriptor(o.predef, item);\n          predefined[item] = prop ? prop.value : false;\n        }\n      });\n\n      each(o.exported || null, function(item) {\n        exported[item] = true;\n      });\n\n      delete o.predef;\n      delete o.exported;\n\n      optionKeys = Object.keys(o);\n      for (x = 0; x < optionKeys.length; x++) {\n        if (/^-W\\d{3}$/g.test(optionKeys[x])) {\n          newIgnoredObj[optionKeys[x].slice(1)] = true;\n        } else {\n          var optionKey = optionKeys[x];\n          newOptionObj[optionKey] = o[optionKey];\n          if ((optionKey === \"esversion\" && o[optionKey] === 5) ||\n              (optionKey === \"es5\" && o[optionKey])) {\n            warning(\"I003\");\n          }\n\n          if (optionKeys[x] === \"newcap\" && o[optionKey] === false)\n            newOptionObj[\"(explicitNewcap)\"] = true;\n        }\n      }\n    }\n\n    state.option = newOptionObj;\n    state.ignored = newIgnoredObj;\n\n    state.option.indent = state.option.indent || 4;\n    state.option.maxerr = state.option.maxerr || 50;\n\n    indent = 1;\n\n    var scopeManagerInst = scopeManager(state, predefined, exported, declared);\n    scopeManagerInst.on(\"warning\", function(ev) {\n      warning.apply(null, [ ev.code, ev.token].concat(ev.data));\n    });\n\n    scopeManagerInst.on(\"error\", function(ev) {\n      error.apply(null, [ ev.code, ev.token ].concat(ev.data));\n    });\n\n    state.funct = functor(\"(global)\", null, {\n      \"(global)\"    : true,\n      \"(scope)\"     : scopeManagerInst,\n      \"(comparray)\" : arrayComprehension(),\n      \"(metrics)\"   : createMetrics(state.tokens.next)\n    });\n\n    functions = [state.funct];\n    urls = [];\n    stack = null;\n    member = {};\n    membersOnly = null;\n    inblock = false;\n    lookahead = [];\n\n    if (!isString(s) && !Array.isArray(s)) {\n      errorAt(\"E004\", 0);\n      return false;\n    }\n\n    api = {\n      get isJSON() {\n        return state.jsonMode;\n      },\n\n      getOption: function(name) {\n        return state.option[name] || null;\n      },\n\n      getCache: function(name) {\n        return state.cache[name];\n      },\n\n      setCache: function(name, value) {\n        state.cache[name] = value;\n      },\n\n      warn: function(code, data) {\n        warningAt.apply(null, [ code, data.line, data.char ].concat(data.data));\n      },\n\n      on: function(names, listener) {\n        names.split(\" \").forEach(function(name) {\n          emitter.on(name, listener);\n        }.bind(this));\n      }\n    };\n\n    emitter.removeAllListeners();\n    (extraModules || []).forEach(function(func) {\n      func(api);\n    });\n\n    state.tokens.prev = state.tokens.curr = state.tokens.next = state.syntax[\"(begin)\"];\n\n    if (o && o.ignoreDelimiters) {\n\n      if (!Array.isArray(o.ignoreDelimiters)) {\n        o.ignoreDelimiters = [o.ignoreDelimiters];\n      }\n\n      o.ignoreDelimiters.forEach(function(delimiterPair) {\n        if (!delimiterPair.start || !delimiterPair.end)\n            return;\n\n        reIgnoreStr = escapeRegex(delimiterPair.start) +\n                      \"[\\\\s\\\\S]*?\" +\n                      escapeRegex(delimiterPair.end);\n\n        reIgnore = new RegExp(reIgnoreStr, \"ig\");\n\n        s = s.replace(reIgnore, function(match) {\n          return match.replace(/./g, \" \");\n        });\n      });\n    }\n\n    lex = new Lexer(s);\n\n    lex.on(\"warning\", function(ev) {\n      warningAt.apply(null, [ ev.code, ev.line, ev.character].concat(ev.data));\n    });\n\n    lex.on(\"error\", function(ev) {\n      errorAt.apply(null, [ ev.code, ev.line, ev.character ].concat(ev.data));\n    });\n\n    lex.on(\"fatal\", function(ev) {\n      quit(\"E041\", ev.line, ev.from);\n    });\n\n    lex.on(\"Identifier\", function(ev) {\n      emitter.emit(\"Identifier\", ev);\n    });\n\n    lex.on(\"String\", function(ev) {\n      emitter.emit(\"String\", ev);\n    });\n\n    lex.on(\"Number\", function(ev) {\n      emitter.emit(\"Number\", ev);\n    });\n\n    lex.start();\n    for (var name in o) {\n      if (_.has(o, name)) {\n        checkOption(name, state.tokens.curr);\n      }\n    }\n\n    assume();\n    combine(predefined, g || {});\n    comma.first = true;\n\n    try {\n      advance();\n      switch (state.tokens.next.id) {\n      case \"{\":\n      case \"[\":\n        destructuringAssignOrJsonValue();\n        break;\n      default:\n        directives();\n\n        if (state.directive[\"use strict\"]) {\n          if (state.option.strict !== \"global\") {\n            warning(\"W097\", state.tokens.prev);\n          }\n        }\n\n        statements();\n      }\n\n      if (state.tokens.next.id !== \"(end)\") {\n        quit(\"E041\", state.tokens.curr.line);\n      }\n\n      state.funct[\"(scope)\"].unstack();\n\n    } catch (err) {\n      if (err && err.name === \"JSHintError\") {\n        var nt = state.tokens.next || {};\n        JSHINT.errors.push({\n          scope     : \"(main)\",\n          raw       : err.raw,\n          code      : err.code,\n          reason    : err.message,\n          line      : err.line || nt.line,\n          character : err.character || nt.from\n        }, null);\n      } else {\n        throw err;\n      }\n    }\n\n    if (JSHINT.scope === \"(main)\") {\n      o = o || {};\n\n      for (i = 0; i < JSHINT.internals.length; i += 1) {\n        k = JSHINT.internals[i];\n        o.scope = k.elem;\n        itself(k.value, o, g);\n      }\n    }\n\n    return JSHINT.errors.length === 0;\n  };\n  itself.addModule = function(func) {\n    extraModules.push(func);\n  };\n\n  itself.addModule(style.register);\n  itself.data = function() {\n    var data = {\n      functions: [],\n      options: state.option\n    };\n\n    var fu, f, i, j, n, globals;\n\n    if (itself.errors.length) {\n      data.errors = itself.errors;\n    }\n\n    if (state.jsonMode) {\n      data.json = true;\n    }\n\n    var impliedGlobals = state.funct[\"(scope)\"].getImpliedGlobals();\n    if (impliedGlobals.length > 0) {\n      data.implieds = impliedGlobals;\n    }\n\n    if (urls.length > 0) {\n      data.urls = urls;\n    }\n\n    globals = state.funct[\"(scope)\"].getUsedOrDefinedGlobals();\n    if (globals.length > 0) {\n      data.globals = globals;\n    }\n\n    for (i = 1; i < functions.length; i += 1) {\n      f = functions[i];\n      fu = {};\n\n      for (j = 0; j < functionicity.length; j += 1) {\n        fu[functionicity[j]] = [];\n      }\n\n      for (j = 0; j < functionicity.length; j += 1) {\n        if (fu[functionicity[j]].length === 0) {\n          delete fu[functionicity[j]];\n        }\n      }\n\n      fu.name = f[\"(name)\"];\n      fu.param = f[\"(params)\"];\n      fu.line = f[\"(line)\"];\n      fu.character = f[\"(character)\"];\n      fu.last = f[\"(last)\"];\n      fu.lastcharacter = f[\"(lastcharacter)\"];\n\n      fu.metrics = {\n        complexity: f[\"(metrics)\"].ComplexityCount,\n        parameters: f[\"(metrics)\"].arity,\n        statements: f[\"(metrics)\"].statementCount\n      };\n\n      data.functions.push(fu);\n    }\n\n    var unuseds = state.funct[\"(scope)\"].getUnuseds();\n    if (unuseds.length > 0) {\n      data.unused = unuseds;\n    }\n\n    for (n in member) {\n      if (typeof member[n] === \"number\") {\n        data.member = member;\n        break;\n      }\n    }\n\n    return data;\n  };\n\n  itself.jshint = itself;\n\n  return itself;\n}());\nif (typeof exports === \"object\" && exports) {\n  exports.JSHINT = JSHINT;\n}\n\n},{\"../lodash\":\"/node_modules/jshint/lodash.js\",\"./lex.js\":\"/node_modules/jshint/src/lex.js\",\"./messages.js\":\"/node_modules/jshint/src/messages.js\",\"./options.js\":\"/node_modules/jshint/src/options.js\",\"./reg.js\":\"/node_modules/jshint/src/reg.js\",\"./scope-manager.js\":\"/node_modules/jshint/src/scope-manager.js\",\"./state.js\":\"/node_modules/jshint/src/state.js\",\"./style.js\":\"/node_modules/jshint/src/style.js\",\"./vars.js\":\"/node_modules/jshint/src/vars.js\",\"events\":\"/node_modules/browserify/node_modules/events/events.js\"}],\"/node_modules/jshint/src/lex.js\":[function(_dereq_,module,exports){\n\n\"use strict\";\n\nvar _      = _dereq_(\"../lodash\");\nvar events = _dereq_(\"events\");\nvar reg    = _dereq_(\"./reg.js\");\nvar state  = _dereq_(\"./state.js\").state;\n\nvar unicodeData = _dereq_(\"../data/ascii-identifier-data.js\");\nvar asciiIdentifierStartTable = unicodeData.asciiIdentifierStartTable;\nvar asciiIdentifierPartTable = unicodeData.asciiIdentifierPartTable;\n\nvar Token = {\n  Identifier: 1,\n  Punctuator: 2,\n  NumericLiteral: 3,\n  StringLiteral: 4,\n  Comment: 5,\n  Keyword: 6,\n  NullLiteral: 7,\n  BooleanLiteral: 8,\n  RegExp: 9,\n  TemplateHead: 10,\n  TemplateMiddle: 11,\n  TemplateTail: 12,\n  NoSubstTemplate: 13\n};\n\nvar Context = {\n  Block: 1,\n  Template: 2\n};\n\nfunction asyncTrigger() {\n  var _checks = [];\n\n  return {\n    push: function(fn) {\n      _checks.push(fn);\n    },\n\n    check: function() {\n      for (var check = 0; check < _checks.length; ++check) {\n        _checks[check]();\n      }\n\n      _checks.splice(0, _checks.length);\n    }\n  };\n}\nfunction Lexer(source) {\n  var lines = source;\n\n  if (typeof lines === \"string\") {\n    lines = lines\n      .replace(/\\r\\n/g, \"\\n\")\n      .replace(/\\r/g, \"\\n\")\n      .split(\"\\n\");\n  }\n\n  if (lines[0] && lines[0].substr(0, 2) === \"#!\") {\n    if (lines[0].indexOf(\"node\") !== -1) {\n      state.option.node = true;\n    }\n    lines[0] = \"\";\n  }\n\n  this.emitter = new events.EventEmitter();\n  this.source = source;\n  this.setLines(lines);\n  this.prereg = true;\n\n  this.line = 0;\n  this.char = 1;\n  this.from = 1;\n  this.input = \"\";\n  this.inComment = false;\n  this.context = [];\n  this.templateStarts = [];\n\n  for (var i = 0; i < state.option.indent; i += 1) {\n    state.tab += \" \";\n  }\n  this.ignoreLinterErrors = false;\n}\n\nLexer.prototype = {\n  _lines: [],\n\n  inContext: function(ctxType) {\n    return this.context.length > 0 && this.context[this.context.length - 1].type === ctxType;\n  },\n\n  pushContext: function(ctxType) {\n    this.context.push({ type: ctxType });\n  },\n\n  popContext: function() {\n    return this.context.pop();\n  },\n\n  isContext: function(context) {\n    return this.context.length > 0 && this.context[this.context.length - 1] === context;\n  },\n\n  currentContext: function() {\n    return this.context.length > 0 && this.context[this.context.length - 1];\n  },\n\n  getLines: function() {\n    this._lines = state.lines;\n    return this._lines;\n  },\n\n  setLines: function(val) {\n    this._lines = val;\n    state.lines = this._lines;\n  },\n  peek: function(i) {\n    return this.input.charAt(i || 0);\n  },\n  skip: function(i) {\n    i = i || 1;\n    this.char += i;\n    this.input = this.input.slice(i);\n  },\n  on: function(names, listener) {\n    names.split(\" \").forEach(function(name) {\n      this.emitter.on(name, listener);\n    }.bind(this));\n  },\n  trigger: function() {\n    this.emitter.emit.apply(this.emitter, Array.prototype.slice.call(arguments));\n  },\n  triggerAsync: function(type, args, checks, fn) {\n    checks.push(function() {\n      if (fn()) {\n        this.trigger(type, args);\n      }\n    }.bind(this));\n  },\n  scanPunctuator: function() {\n    var ch1 = this.peek();\n    var ch2, ch3, ch4;\n\n    switch (ch1) {\n    case \".\":\n      if ((/^[0-9]$/).test(this.peek(1))) {\n        return null;\n      }\n      if (this.peek(1) === \".\" && this.peek(2) === \".\") {\n        return {\n          type: Token.Punctuator,\n          value: \"...\"\n        };\n      }\n    case \"(\":\n    case \")\":\n    case \";\":\n    case \",\":\n    case \"[\":\n    case \"]\":\n    case \":\":\n    case \"~\":\n    case \"?\":\n      return {\n        type: Token.Punctuator,\n        value: ch1\n      };\n    case \"{\":\n      this.pushContext(Context.Block);\n      return {\n        type: Token.Punctuator,\n        value: ch1\n      };\n    case \"}\":\n      if (this.inContext(Context.Block)) {\n        this.popContext();\n      }\n      return {\n        type: Token.Punctuator,\n        value: ch1\n      };\n    case \"#\":\n      return {\n        type: Token.Punctuator,\n        value: ch1\n      };\n    case \"\":\n      return null;\n    }\n\n    ch2 = this.peek(1);\n    ch3 = this.peek(2);\n    ch4 = this.peek(3);\n\n    if (ch1 === \">\" && ch2 === \">\" && ch3 === \">\" && ch4 === \"=\") {\n      return {\n        type: Token.Punctuator,\n        value: \">>>=\"\n      };\n    }\n\n    if (ch1 === \"=\" && ch2 === \"=\" && ch3 === \"=\") {\n      return {\n        type: Token.Punctuator,\n        value: \"===\"\n      };\n    }\n\n    if (ch1 === \"!\" && ch2 === \"=\" && ch3 === \"=\") {\n      return {\n        type: Token.Punctuator,\n        value: \"!==\"\n      };\n    }\n\n    if (ch1 === \">\" && ch2 === \">\" && ch3 === \">\") {\n      return {\n        type: Token.Punctuator,\n        value: \">>>\"\n      };\n    }\n\n    if (ch1 === \"<\" && ch2 === \"<\" && ch3 === \"=\") {\n      return {\n        type: Token.Punctuator,\n        value: \"<<=\"\n      };\n    }\n\n    if (ch1 === \">\" && ch2 === \">\" && ch3 === \"=\") {\n      return {\n        type: Token.Punctuator,\n        value: \">>=\"\n      };\n    }\n    if (ch1 === \"=\" && ch2 === \">\") {\n      return {\n        type: Token.Punctuator,\n        value: ch1 + ch2\n      };\n    }\n    if (ch1 === ch2 && (\"+-<>&|\".indexOf(ch1) >= 0)) {\n      return {\n        type: Token.Punctuator,\n        value: ch1 + ch2\n      };\n    }\n\n    if (\"<>=!+-*%&|^\".indexOf(ch1) >= 0) {\n      if (ch2 === \"=\") {\n        return {\n          type: Token.Punctuator,\n          value: ch1 + ch2\n        };\n      }\n\n      return {\n        type: Token.Punctuator,\n        value: ch1\n      };\n    }\n\n    if (ch1 === \"/\") {\n      if (ch2 === \"=\") {\n        return {\n          type: Token.Punctuator,\n          value: \"/=\"\n        };\n      }\n\n      return {\n        type: Token.Punctuator,\n        value: \"/\"\n      };\n    }\n\n    return null;\n  },\n  scanComments: function() {\n    var ch1 = this.peek();\n    var ch2 = this.peek(1);\n    var rest = this.input.substr(2);\n    var startLine = this.line;\n    var startChar = this.char;\n    var self = this;\n\n    function commentToken(label, body, opt) {\n      var special = [\"jshint\", \"jslint\", \"members\", \"member\", \"globals\", \"global\", \"exported\"];\n      var isSpecial = false;\n      var value = label + body;\n      var commentType = \"plain\";\n      opt = opt || {};\n\n      if (opt.isMultiline) {\n        value += \"*/\";\n      }\n\n      body = body.replace(/\\n/g, \" \");\n\n      if (label === \"/*\" && reg.fallsThrough.test(body)) {\n        isSpecial = true;\n        commentType = \"falls through\";\n      }\n\n      special.forEach(function(str) {\n        if (isSpecial) {\n          return;\n        }\n        if (label === \"//\" && str !== \"jshint\") {\n          return;\n        }\n\n        if (body.charAt(str.length) === \" \" && body.substr(0, str.length) === str) {\n          isSpecial = true;\n          label = label + str;\n          body = body.substr(str.length);\n        }\n\n        if (!isSpecial && body.charAt(0) === \" \" && body.charAt(str.length + 1) === \" \" &&\n          body.substr(1, str.length) === str) {\n          isSpecial = true;\n          label = label + \" \" + str;\n          body = body.substr(str.length + 1);\n        }\n\n        if (!isSpecial) {\n          return;\n        }\n\n        switch (str) {\n        case \"member\":\n          commentType = \"members\";\n          break;\n        case \"global\":\n          commentType = \"globals\";\n          break;\n        default:\n          var options = body.split(\":\").map(function(v) {\n            return v.replace(/^\\s+/, \"\").replace(/\\s+$/, \"\");\n          });\n\n          if (options.length === 2) {\n            switch (options[0]) {\n            case \"ignore\":\n              switch (options[1]) {\n              case \"start\":\n                self.ignoringLinterErrors = true;\n                isSpecial = false;\n                break;\n              case \"end\":\n                self.ignoringLinterErrors = false;\n                isSpecial = false;\n                break;\n              }\n            }\n          }\n\n          commentType = str;\n        }\n      });\n\n      return {\n        type: Token.Comment,\n        commentType: commentType,\n        value: value,\n        body: body,\n        isSpecial: isSpecial,\n        isMultiline: opt.isMultiline || false,\n        isMalformed: opt.isMalformed || false\n      };\n    }\n    if (ch1 === \"*\" && ch2 === \"/\") {\n      this.trigger(\"error\", {\n        code: \"E018\",\n        line: startLine,\n        character: startChar\n      });\n\n      this.skip(2);\n      return null;\n    }\n    if (ch1 !== \"/\" || (ch2 !== \"*\" && ch2 !== \"/\")) {\n      return null;\n    }\n    if (ch2 === \"/\") {\n      this.skip(this.input.length); // Skip to the EOL.\n      return commentToken(\"//\", rest);\n    }\n\n    var body = \"\";\n    if (ch2 === \"*\") {\n      this.inComment = true;\n      this.skip(2);\n\n      while (this.peek() !== \"*\" || this.peek(1) !== \"/\") {\n        if (this.peek() === \"\") { // End of Line\n          body += \"\\n\";\n          if (!this.nextLine()) {\n            this.trigger(\"error\", {\n              code: \"E017\",\n              line: startLine,\n              character: startChar\n            });\n\n            this.inComment = false;\n            return commentToken(\"/*\", body, {\n              isMultiline: true,\n              isMalformed: true\n            });\n          }\n        } else {\n          body += this.peek();\n          this.skip();\n        }\n      }\n\n      this.skip(2);\n      this.inComment = false;\n      return commentToken(\"/*\", body, { isMultiline: true });\n    }\n  },\n  scanKeyword: function() {\n    var result = /^[a-zA-Z_$][a-zA-Z0-9_$]*/.exec(this.input);\n    var keywords = [\n      \"if\", \"in\", \"do\", \"var\", \"for\", \"new\",\n      \"try\", \"let\", \"this\", \"else\", \"case\",\n      \"void\", \"with\", \"enum\", \"while\", \"break\",\n      \"catch\", \"throw\", \"const\", \"yield\", \"class\",\n      \"super\", \"return\", \"typeof\", \"delete\",\n      \"switch\", \"export\", \"import\", \"default\",\n      \"finally\", \"extends\", \"function\", \"continue\",\n      \"debugger\", \"instanceof\"\n    ];\n\n    if (result && keywords.indexOf(result[0]) >= 0) {\n      return {\n        type: Token.Keyword,\n        value: result[0]\n      };\n    }\n\n    return null;\n  },\n  scanIdentifier: function() {\n    var id = \"\";\n    var index = 0;\n    var type, char;\n\n    function isNonAsciiIdentifierStart(code) {\n      return code > 256;\n    }\n\n    function isNonAsciiIdentifierPart(code) {\n      return code > 256;\n    }\n\n    function isHexDigit(str) {\n      return (/^[0-9a-fA-F]$/).test(str);\n    }\n\n    var readUnicodeEscapeSequence = function() {\n      index += 1;\n\n      if (this.peek(index) !== \"u\") {\n        return null;\n      }\n\n      var ch1 = this.peek(index + 1);\n      var ch2 = this.peek(index + 2);\n      var ch3 = this.peek(index + 3);\n      var ch4 = this.peek(index + 4);\n      var code;\n\n      if (isHexDigit(ch1) && isHexDigit(ch2) && isHexDigit(ch3) && isHexDigit(ch4)) {\n        code = parseInt(ch1 + ch2 + ch3 + ch4, 16);\n\n        if (asciiIdentifierPartTable[code] || isNonAsciiIdentifierPart(code)) {\n          index += 5;\n          return \"\\\\u\" + ch1 + ch2 + ch3 + ch4;\n        }\n\n        return null;\n      }\n\n      return null;\n    }.bind(this);\n\n    var getIdentifierStart = function() {\n      var chr = this.peek(index);\n      var code = chr.charCodeAt(0);\n\n      if (code === 92) {\n        return readUnicodeEscapeSequence();\n      }\n\n      if (code < 128) {\n        if (asciiIdentifierStartTable[code]) {\n          index += 1;\n          return chr;\n        }\n\n        return null;\n      }\n\n      if (isNonAsciiIdentifierStart(code)) {\n        index += 1;\n        return chr;\n      }\n\n      return null;\n    }.bind(this);\n\n    var getIdentifierPart = function() {\n      var chr = this.peek(index);\n      var code = chr.charCodeAt(0);\n\n      if (code === 92) {\n        return readUnicodeEscapeSequence();\n      }\n\n      if (code < 128) {\n        if (asciiIdentifierPartTable[code]) {\n          index += 1;\n          return chr;\n        }\n\n        return null;\n      }\n\n      if (isNonAsciiIdentifierPart(code)) {\n        index += 1;\n        return chr;\n      }\n\n      return null;\n    }.bind(this);\n\n    function removeEscapeSequences(id) {\n      return id.replace(/\\\\u([0-9a-fA-F]{4})/g, function(m0, codepoint) {\n        return String.fromCharCode(parseInt(codepoint, 16));\n      });\n    }\n\n    char = getIdentifierStart();\n    if (char === null) {\n      return null;\n    }\n\n    id = char;\n    for (;;) {\n      char = getIdentifierPart();\n\n      if (char === null) {\n        break;\n      }\n\n      id += char;\n    }\n\n    switch (id) {\n    case \"true\":\n    case \"false\":\n      type = Token.BooleanLiteral;\n      break;\n    case \"null\":\n      type = Token.NullLiteral;\n      break;\n    default:\n      type = Token.Identifier;\n    }\n\n    return {\n      type: type,\n      value: removeEscapeSequences(id),\n      text: id,\n      tokenLength: id.length\n    };\n  },\n  scanNumericLiteral: function() {\n    var index = 0;\n    var value = \"\";\n    var length = this.input.length;\n    var char = this.peek(index);\n    var bad;\n    var isAllowedDigit = isDecimalDigit;\n    var base = 10;\n    var isLegacy = false;\n\n    function isDecimalDigit(str) {\n      return (/^[0-9]$/).test(str);\n    }\n\n    function isOctalDigit(str) {\n      return (/^[0-7]$/).test(str);\n    }\n\n    function isBinaryDigit(str) {\n      return (/^[01]$/).test(str);\n    }\n\n    function isHexDigit(str) {\n      return (/^[0-9a-fA-F]$/).test(str);\n    }\n\n    function isIdentifierStart(ch) {\n      return (ch === \"$\") || (ch === \"_\") || (ch === \"\\\\\") ||\n        (ch >= \"a\" && ch <= \"z\") || (ch >= \"A\" && ch <= \"Z\");\n    }\n\n    if (char !== \".\" && !isDecimalDigit(char)) {\n      return null;\n    }\n\n    if (char !== \".\") {\n      value = this.peek(index);\n      index += 1;\n      char = this.peek(index);\n\n      if (value === \"0\") {\n        if (char === \"x\" || char === \"X\") {\n          isAllowedDigit = isHexDigit;\n          base = 16;\n\n          index += 1;\n          value += char;\n        }\n        if (char === \"o\" || char === \"O\") {\n          isAllowedDigit = isOctalDigit;\n          base = 8;\n\n          if (!state.inES6(true)) {\n            this.trigger(\"warning\", {\n              code: \"W119\",\n              line: this.line,\n              character: this.char,\n              data: [ \"Octal integer literal\", \"6\" ]\n            });\n          }\n\n          index += 1;\n          value += char;\n        }\n        if (char === \"b\" || char === \"B\") {\n          isAllowedDigit = isBinaryDigit;\n          base = 2;\n\n          if (!state.inES6(true)) {\n            this.trigger(\"warning\", {\n              code: \"W119\",\n              line: this.line,\n              character: this.char,\n              data: [ \"Binary integer literal\", \"6\" ]\n            });\n          }\n\n          index += 1;\n          value += char;\n        }\n        if (isOctalDigit(char)) {\n          isAllowedDigit = isOctalDigit;\n          base = 8;\n          isLegacy = true;\n          bad = false;\n\n          index += 1;\n          value += char;\n        }\n\n        if (!isOctalDigit(char) && isDecimalDigit(char)) {\n          index += 1;\n          value += char;\n        }\n      }\n\n      while (index < length) {\n        char = this.peek(index);\n\n        if (isLegacy && isDecimalDigit(char)) {\n          bad = true;\n        } else if (!isAllowedDigit(char)) {\n          break;\n        }\n        value += char;\n        index += 1;\n      }\n\n      if (isAllowedDigit !== isDecimalDigit) {\n        if (!isLegacy && value.length <= 2) { // 0x\n          return {\n            type: Token.NumericLiteral,\n            value: value,\n            isMalformed: true\n          };\n        }\n\n        if (index < length) {\n          char = this.peek(index);\n          if (isIdentifierStart(char)) {\n            return null;\n          }\n        }\n\n        return {\n          type: Token.NumericLiteral,\n          value: value,\n          base: base,\n          isLegacy: isLegacy,\n          isMalformed: false\n        };\n      }\n    }\n\n    if (char === \".\") {\n      value += char;\n      index += 1;\n\n      while (index < length) {\n        char = this.peek(index);\n        if (!isDecimalDigit(char)) {\n          break;\n        }\n        value += char;\n        index += 1;\n      }\n    }\n\n    if (char === \"e\" || char === \"E\") {\n      value += char;\n      index += 1;\n      char = this.peek(index);\n\n      if (char === \"+\" || char === \"-\") {\n        value += this.peek(index);\n        index += 1;\n      }\n\n      char = this.peek(index);\n      if (isDecimalDigit(char)) {\n        value += char;\n        index += 1;\n\n        while (index < length) {\n          char = this.peek(index);\n          if (!isDecimalDigit(char)) {\n            break;\n          }\n          value += char;\n          index += 1;\n        }\n      } else {\n        return null;\n      }\n    }\n\n    if (index < length) {\n      char = this.peek(index);\n      if (isIdentifierStart(char)) {\n        return null;\n      }\n    }\n\n    return {\n      type: Token.NumericLiteral,\n      value: value,\n      base: base,\n      isMalformed: !isFinite(value)\n    };\n  },\n  scanEscapeSequence: function(checks) {\n    var allowNewLine = false;\n    var jump = 1;\n    this.skip();\n    var char = this.peek();\n\n    switch (char) {\n    case \"'\":\n      this.triggerAsync(\"warning\", {\n        code: \"W114\",\n        line: this.line,\n        character: this.char,\n        data: [ \"\\\\'\" ]\n      }, checks, function() {return state.jsonMode; });\n      break;\n    case \"b\":\n      char = \"\\\\b\";\n      break;\n    case \"f\":\n      char = \"\\\\f\";\n      break;\n    case \"n\":\n      char = \"\\\\n\";\n      break;\n    case \"r\":\n      char = \"\\\\r\";\n      break;\n    case \"t\":\n      char = \"\\\\t\";\n      break;\n    case \"0\":\n      char = \"\\\\0\";\n      var n = parseInt(this.peek(1), 10);\n      this.triggerAsync(\"warning\", {\n        code: \"W115\",\n        line: this.line,\n        character: this.char\n      }, checks,\n      function() { return n >= 0 && n <= 7 && state.isStrict(); });\n      break;\n    case \"u\":\n      var hexCode = this.input.substr(1, 4);\n      var code = parseInt(hexCode, 16);\n      if (isNaN(code)) {\n        this.trigger(\"warning\", {\n          code: \"W052\",\n          line: this.line,\n          character: this.char,\n          data: [ \"u\" + hexCode ]\n        });\n      }\n      char = String.fromCharCode(code);\n      jump = 5;\n      break;\n    case \"v\":\n      this.triggerAsync(\"warning\", {\n        code: \"W114\",\n        line: this.line,\n        character: this.char,\n        data: [ \"\\\\v\" ]\n      }, checks, function() { return state.jsonMode; });\n\n      char = \"\\v\";\n      break;\n    case \"x\":\n      var  x = parseInt(this.input.substr(1, 2), 16);\n\n      this.triggerAsync(\"warning\", {\n        code: \"W114\",\n        line: this.line,\n        character: this.char,\n        data: [ \"\\\\x-\" ]\n      }, checks, function() { return state.jsonMode; });\n\n      char = String.fromCharCode(x);\n      jump = 3;\n      break;\n    case \"\\\\\":\n      char = \"\\\\\\\\\";\n      break;\n    case \"\\\"\":\n      char = \"\\\\\\\"\";\n      break;\n    case \"/\":\n      break;\n    case \"\":\n      allowNewLine = true;\n      char = \"\";\n      break;\n    }\n\n    return { char: char, jump: jump, allowNewLine: allowNewLine };\n  },\n  scanTemplateLiteral: function(checks) {\n    var tokenType;\n    var value = \"\";\n    var ch;\n    var startLine = this.line;\n    var startChar = this.char;\n    var depth = this.templateStarts.length;\n\n    if (!state.inES6(true)) {\n      return null;\n    } else if (this.peek() === \"`\") {\n      tokenType = Token.TemplateHead;\n      this.templateStarts.push({ line: this.line, char: this.char });\n      depth = this.templateStarts.length;\n      this.skip(1);\n      this.pushContext(Context.Template);\n    } else if (this.inContext(Context.Template) && this.peek() === \"}\") {\n      tokenType = Token.TemplateMiddle;\n    } else {\n      return null;\n    }\n\n    while (this.peek() !== \"`\") {\n      while ((ch = this.peek()) === \"\") {\n        value += \"\\n\";\n        if (!this.nextLine()) {\n          var startPos = this.templateStarts.pop();\n          this.trigger(\"error\", {\n            code: \"E052\",\n            line: startPos.line,\n            character: startPos.char\n          });\n          return {\n            type: tokenType,\n            value: value,\n            startLine: startLine,\n            startChar: startChar,\n            isUnclosed: true,\n            depth: depth,\n            context: this.popContext()\n          };\n        }\n      }\n\n      if (ch === '$' && this.peek(1) === '{') {\n        value += '${';\n        this.skip(2);\n        return {\n          type: tokenType,\n          value: value,\n          startLine: startLine,\n          startChar: startChar,\n          isUnclosed: false,\n          depth: depth,\n          context: this.currentContext()\n        };\n      } else if (ch === '\\\\') {\n        var escape = this.scanEscapeSequence(checks);\n        value += escape.char;\n        this.skip(escape.jump);\n      } else if (ch !== '`') {\n        value += ch;\n        this.skip(1);\n      }\n    }\n    tokenType = tokenType === Token.TemplateHead ? Token.NoSubstTemplate : Token.TemplateTail;\n    this.skip(1);\n    this.templateStarts.pop();\n\n    return {\n      type: tokenType,\n      value: value,\n      startLine: startLine,\n      startChar: startChar,\n      isUnclosed: false,\n      depth: depth,\n      context: this.popContext()\n    };\n  },\n  scanStringLiteral: function(checks) {\n    var quote = this.peek();\n    if (quote !== \"\\\"\" && quote !== \"'\") {\n      return null;\n    }\n    this.triggerAsync(\"warning\", {\n      code: \"W108\",\n      line: this.line,\n      character: this.char // +1?\n    }, checks, function() { return state.jsonMode && quote !== \"\\\"\"; });\n\n    var value = \"\";\n    var startLine = this.line;\n    var startChar = this.char;\n    var allowNewLine = false;\n\n    this.skip();\n\n    while (this.peek() !== quote) {\n      if (this.peek() === \"\") { // End Of Line\n\n        if (!allowNewLine) {\n          this.trigger(\"warning\", {\n            code: \"W112\",\n            line: this.line,\n            character: this.char\n          });\n        } else {\n          allowNewLine = false;\n\n          this.triggerAsync(\"warning\", {\n            code: \"W043\",\n            line: this.line,\n            character: this.char\n          }, checks, function() { return !state.option.multistr; });\n\n          this.triggerAsync(\"warning\", {\n            code: \"W042\",\n            line: this.line,\n            character: this.char\n          }, checks, function() { return state.jsonMode && state.option.multistr; });\n        }\n\n        if (!this.nextLine()) {\n          this.trigger(\"error\", {\n            code: \"E029\",\n            line: startLine,\n            character: startChar\n          });\n\n          return {\n            type: Token.StringLiteral,\n            value: value,\n            startLine: startLine,\n            startChar: startChar,\n            isUnclosed: true,\n            quote: quote\n          };\n        }\n\n      } else { // Any character other than End Of Line\n\n        allowNewLine = false;\n        var char = this.peek();\n        var jump = 1; // A length of a jump, after we're done\n\n        if (char < \" \") {\n          this.trigger(\"warning\", {\n            code: \"W113\",\n            line: this.line,\n            character: this.char,\n            data: [ \"<non-printable>\" ]\n          });\n        }\n        if (char === \"\\\\\") {\n          var parsed = this.scanEscapeSequence(checks);\n          char = parsed.char;\n          jump = parsed.jump;\n          allowNewLine = parsed.allowNewLine;\n        }\n\n        value += char;\n        this.skip(jump);\n      }\n    }\n\n    this.skip();\n    return {\n      type: Token.StringLiteral,\n      value: value,\n      startLine: startLine,\n      startChar: startChar,\n      isUnclosed: false,\n      quote: quote\n    };\n  },\n  scanRegExp: function() {\n    var index = 0;\n    var length = this.input.length;\n    var char = this.peek();\n    var value = char;\n    var body = \"\";\n    var flags = [];\n    var malformed = false;\n    var isCharSet = false;\n    var terminated;\n\n    var scanUnexpectedChars = function() {\n      if (char < \" \") {\n        malformed = true;\n        this.trigger(\"warning\", {\n          code: \"W048\",\n          line: this.line,\n          character: this.char\n        });\n      }\n      if (char === \"<\") {\n        malformed = true;\n        this.trigger(\"warning\", {\n          code: \"W049\",\n          line: this.line,\n          character: this.char,\n          data: [ char ]\n        });\n      }\n    }.bind(this);\n    if (!this.prereg || char !== \"/\") {\n      return null;\n    }\n\n    index += 1;\n    terminated = false;\n\n    while (index < length) {\n      char = this.peek(index);\n      value += char;\n      body += char;\n\n      if (isCharSet) {\n        if (char === \"]\") {\n          if (this.peek(index - 1) !== \"\\\\\" || this.peek(index - 2) === \"\\\\\") {\n            isCharSet = false;\n          }\n        }\n\n        if (char === \"\\\\\") {\n          index += 1;\n          char = this.peek(index);\n          body += char;\n          value += char;\n\n          scanUnexpectedChars();\n        }\n\n        index += 1;\n        continue;\n      }\n\n      if (char === \"\\\\\") {\n        index += 1;\n        char = this.peek(index);\n        body += char;\n        value += char;\n\n        scanUnexpectedChars();\n\n        if (char === \"/\") {\n          index += 1;\n          continue;\n        }\n\n        if (char === \"[\") {\n          index += 1;\n          continue;\n        }\n      }\n\n      if (char === \"[\") {\n        isCharSet = true;\n        index += 1;\n        continue;\n      }\n\n      if (char === \"/\") {\n        body = body.substr(0, body.length - 1);\n        terminated = true;\n        index += 1;\n        break;\n      }\n\n      index += 1;\n    }\n\n    if (!terminated) {\n      this.trigger(\"error\", {\n        code: \"E015\",\n        line: this.line,\n        character: this.from\n      });\n\n      return void this.trigger(\"fatal\", {\n        line: this.line,\n        from: this.from\n      });\n    }\n\n    while (index < length) {\n      char = this.peek(index);\n      if (!/[gim]/.test(char)) {\n        break;\n      }\n      flags.push(char);\n      value += char;\n      index += 1;\n    }\n\n    try {\n      new RegExp(body, flags.join(\"\"));\n    } catch (err) {\n      malformed = true;\n      this.trigger(\"error\", {\n        code: \"E016\",\n        line: this.line,\n        character: this.char,\n        data: [ err.message ] // Platform dependent!\n      });\n    }\n\n    return {\n      type: Token.RegExp,\n      value: value,\n      flags: flags,\n      isMalformed: malformed\n    };\n  },\n  scanNonBreakingSpaces: function() {\n    return state.option.nonbsp ?\n      this.input.search(/(\\u00A0)/) : -1;\n  },\n  scanUnsafeChars: function() {\n    return this.input.search(reg.unsafeChars);\n  },\n  next: function(checks) {\n    this.from = this.char;\n    var start;\n    if (/\\s/.test(this.peek())) {\n      start = this.char;\n\n      while (/\\s/.test(this.peek())) {\n        this.from += 1;\n        this.skip();\n      }\n    }\n\n    var match = this.scanComments() ||\n      this.scanStringLiteral(checks) ||\n      this.scanTemplateLiteral(checks);\n\n    if (match) {\n      return match;\n    }\n\n    match =\n      this.scanRegExp() ||\n      this.scanPunctuator() ||\n      this.scanKeyword() ||\n      this.scanIdentifier() ||\n      this.scanNumericLiteral();\n\n    if (match) {\n      this.skip(match.tokenLength || match.value.length);\n      return match;\n    }\n\n    return null;\n  },\n  nextLine: function() {\n    var char;\n\n    if (this.line >= this.getLines().length) {\n      return false;\n    }\n\n    this.input = this.getLines()[this.line];\n    this.line += 1;\n    this.char = 1;\n    this.from = 1;\n\n    var inputTrimmed = this.input.trim();\n\n    var startsWith = function() {\n      return _.some(arguments, function(prefix) {\n        return inputTrimmed.indexOf(prefix) === 0;\n      });\n    };\n\n    var endsWith = function() {\n      return _.some(arguments, function(suffix) {\n        return inputTrimmed.indexOf(suffix, inputTrimmed.length - suffix.length) !== -1;\n      });\n    };\n    if (this.ignoringLinterErrors === true) {\n      if (!startsWith(\"/*\", \"//\") && !(this.inComment && endsWith(\"*/\"))) {\n        this.input = \"\";\n      }\n    }\n\n    char = this.scanNonBreakingSpaces();\n    if (char >= 0) {\n      this.trigger(\"warning\", { code: \"W125\", line: this.line, character: char + 1 });\n    }\n\n    this.input = this.input.replace(/\\t/g, state.tab);\n    char = this.scanUnsafeChars();\n\n    if (char >= 0) {\n      this.trigger(\"warning\", { code: \"W100\", line: this.line, character: char });\n    }\n\n    if (!this.ignoringLinterErrors && state.option.maxlen &&\n      state.option.maxlen < this.input.length) {\n      var inComment = this.inComment ||\n        startsWith.call(inputTrimmed, \"//\") ||\n        startsWith.call(inputTrimmed, \"/*\");\n\n      var shouldTriggerError = !inComment || !reg.maxlenException.test(inputTrimmed);\n\n      if (shouldTriggerError) {\n        this.trigger(\"warning\", { code: \"W101\", line: this.line, character: this.input.length });\n      }\n    }\n\n    return true;\n  },\n  start: function() {\n    this.nextLine();\n  },\n  token: function() {\n    var checks = asyncTrigger();\n    var token;\n\n\n    function isReserved(token, isProperty) {\n      if (!token.reserved) {\n        return false;\n      }\n      var meta = token.meta;\n\n      if (meta && meta.isFutureReservedWord && state.inES5()) {\n        if (!meta.es5) {\n          return false;\n        }\n        if (meta.strictOnly) {\n          if (!state.option.strict && !state.isStrict()) {\n            return false;\n          }\n        }\n\n        if (isProperty) {\n          return false;\n        }\n      }\n\n      return true;\n    }\n    var create = function(type, value, isProperty, token) {\n      var obj;\n\n      if (type !== \"(endline)\" && type !== \"(end)\") {\n        this.prereg = false;\n      }\n\n      if (type === \"(punctuator)\") {\n        switch (value) {\n        case \".\":\n        case \")\":\n        case \"~\":\n        case \"#\":\n        case \"]\":\n        case \"++\":\n        case \"--\":\n          this.prereg = false;\n          break;\n        default:\n          this.prereg = true;\n        }\n\n        obj = Object.create(state.syntax[value] || state.syntax[\"(error)\"]);\n      }\n\n      if (type === \"(identifier)\") {\n        if (value === \"return\" || value === \"case\" || value === \"typeof\") {\n          this.prereg = true;\n        }\n\n        if (_.has(state.syntax, value)) {\n          obj = Object.create(state.syntax[value] || state.syntax[\"(error)\"]);\n          if (!isReserved(obj, isProperty && type === \"(identifier)\")) {\n            obj = null;\n          }\n        }\n      }\n\n      if (!obj) {\n        obj = Object.create(state.syntax[type]);\n      }\n\n      obj.identifier = (type === \"(identifier)\");\n      obj.type = obj.type || type;\n      obj.value = value;\n      obj.line = this.line;\n      obj.character = this.char;\n      obj.from = this.from;\n      if (obj.identifier && token) obj.raw_text = token.text || token.value;\n      if (token && token.startLine && token.startLine !== this.line) {\n        obj.startLine = token.startLine;\n      }\n      if (token && token.context) {\n        obj.context = token.context;\n      }\n      if (token && token.depth) {\n        obj.depth = token.depth;\n      }\n      if (token && token.isUnclosed) {\n        obj.isUnclosed = token.isUnclosed;\n      }\n\n      if (isProperty && obj.identifier) {\n        obj.isProperty = isProperty;\n      }\n\n      obj.check = checks.check;\n\n      return obj;\n    }.bind(this);\n\n    for (;;) {\n      if (!this.input.length) {\n        if (this.nextLine()) {\n          return create(\"(endline)\", \"\");\n        }\n\n        if (this.exhausted) {\n          return null;\n        }\n\n        this.exhausted = true;\n        return create(\"(end)\", \"\");\n      }\n\n      token = this.next(checks);\n\n      if (!token) {\n        if (this.input.length) {\n          this.trigger(\"error\", {\n            code: \"E024\",\n            line: this.line,\n            character: this.char,\n            data: [ this.peek() ]\n          });\n\n          this.input = \"\";\n        }\n\n        continue;\n      }\n\n      switch (token.type) {\n      case Token.StringLiteral:\n        this.triggerAsync(\"String\", {\n          line: this.line,\n          char: this.char,\n          from: this.from,\n          startLine: token.startLine,\n          startChar: token.startChar,\n          value: token.value,\n          quote: token.quote\n        }, checks, function() { return true; });\n\n        return create(\"(string)\", token.value, null, token);\n\n      case Token.TemplateHead:\n        this.trigger(\"TemplateHead\", {\n          line: this.line,\n          char: this.char,\n          from: this.from,\n          startLine: token.startLine,\n          startChar: token.startChar,\n          value: token.value\n        });\n        return create(\"(template)\", token.value, null, token);\n\n      case Token.TemplateMiddle:\n        this.trigger(\"TemplateMiddle\", {\n          line: this.line,\n          char: this.char,\n          from: this.from,\n          startLine: token.startLine,\n          startChar: token.startChar,\n          value: token.value\n        });\n        return create(\"(template middle)\", token.value, null, token);\n\n      case Token.TemplateTail:\n        this.trigger(\"TemplateTail\", {\n          line: this.line,\n          char: this.char,\n          from: this.from,\n          startLine: token.startLine,\n          startChar: token.startChar,\n          value: token.value\n        });\n        return create(\"(template tail)\", token.value, null, token);\n\n      case Token.NoSubstTemplate:\n        this.trigger(\"NoSubstTemplate\", {\n          line: this.line,\n          char: this.char,\n          from: this.from,\n          startLine: token.startLine,\n          startChar: token.startChar,\n          value: token.value\n        });\n        return create(\"(no subst template)\", token.value, null, token);\n\n      case Token.Identifier:\n        this.triggerAsync(\"Identifier\", {\n          line: this.line,\n          char: this.char,\n          from: this.form,\n          name: token.value,\n          raw_name: token.text,\n          isProperty: state.tokens.curr.id === \".\"\n        }, checks, function() { return true; });\n      case Token.Keyword:\n      case Token.NullLiteral:\n      case Token.BooleanLiteral:\n        return create(\"(identifier)\", token.value, state.tokens.curr.id === \".\", token);\n\n      case Token.NumericLiteral:\n        if (token.isMalformed) {\n          this.trigger(\"warning\", {\n            code: \"W045\",\n            line: this.line,\n            character: this.char,\n            data: [ token.value ]\n          });\n        }\n\n        this.triggerAsync(\"warning\", {\n          code: \"W114\",\n          line: this.line,\n          character: this.char,\n          data: [ \"0x-\" ]\n        }, checks, function() { return token.base === 16 && state.jsonMode; });\n\n        this.triggerAsync(\"warning\", {\n          code: \"W115\",\n          line: this.line,\n          character: this.char\n        }, checks, function() {\n          return state.isStrict() && token.base === 8 && token.isLegacy;\n        });\n\n        this.trigger(\"Number\", {\n          line: this.line,\n          char: this.char,\n          from: this.from,\n          value: token.value,\n          base: token.base,\n          isMalformed: token.malformed\n        });\n\n        return create(\"(number)\", token.value);\n\n      case Token.RegExp:\n        return create(\"(regexp)\", token.value);\n\n      case Token.Comment:\n        state.tokens.curr.comment = true;\n\n        if (token.isSpecial) {\n          return {\n            id: '(comment)',\n            value: token.value,\n            body: token.body,\n            type: token.commentType,\n            isSpecial: token.isSpecial,\n            line: this.line,\n            character: this.char,\n            from: this.from\n          };\n        }\n\n        break;\n\n      case \"\":\n        break;\n\n      default:\n        return create(\"(punctuator)\", token.value);\n      }\n    }\n  }\n};\n\nexports.Lexer = Lexer;\nexports.Context = Context;\n\n},{\"../data/ascii-identifier-data.js\":\"/node_modules/jshint/data/ascii-identifier-data.js\",\"../lodash\":\"/node_modules/jshint/lodash.js\",\"./reg.js\":\"/node_modules/jshint/src/reg.js\",\"./state.js\":\"/node_modules/jshint/src/state.js\",\"events\":\"/node_modules/browserify/node_modules/events/events.js\"}],\"/node_modules/jshint/src/messages.js\":[function(_dereq_,module,exports){\n\"use strict\";\n\nvar _ = _dereq_(\"../lodash\");\n\nvar errors = {\n  E001: \"Bad option: '{a}'.\",\n  E002: \"Bad option value.\",\n  E003: \"Expected a JSON value.\",\n  E004: \"Input is neither a string nor an array of strings.\",\n  E005: \"Input is empty.\",\n  E006: \"Unexpected early end of program.\",\n  E007: \"Missing \\\"use strict\\\" statement.\",\n  E008: \"Strict violation.\",\n  E009: \"Option 'validthis' can't be used in a global scope.\",\n  E010: \"'with' is not allowed in strict mode.\",\n  E011: \"'{a}' has already been declared.\",\n  E012: \"const '{a}' is initialized to 'undefined'.\",\n  E013: \"Attempting to override '{a}' which is a constant.\",\n  E014: \"A regular expression literal can be confused with '/='.\",\n  E015: \"Unclosed regular expression.\",\n  E016: \"Invalid regular expression.\",\n  E017: \"Unclosed comment.\",\n  E018: \"Unbegun comment.\",\n  E019: \"Unmatched '{a}'.\",\n  E020: \"Expected '{a}' to match '{b}' from line {c} and instead saw '{d}'.\",\n  E021: \"Expected '{a}' and instead saw '{b}'.\",\n  E022: \"Line breaking error '{a}'.\",\n  E023: \"Missing '{a}'.\",\n  E024: \"Unexpected '{a}'.\",\n  E025: \"Missing ':' on a case clause.\",\n  E026: \"Missing '}' to match '{' from line {a}.\",\n  E027: \"Missing ']' to match '[' from line {a}.\",\n  E028: \"Illegal comma.\",\n  E029: \"Unclosed string.\",\n  E030: \"Expected an identifier and instead saw '{a}'.\",\n  E031: \"Bad assignment.\", // FIXME: Rephrase\n  E032: \"Expected a small integer or 'false' and instead saw '{a}'.\",\n  E033: \"Expected an operator and instead saw '{a}'.\",\n  E034: \"get/set are ES5 features.\",\n  E035: \"Missing property name.\",\n  E036: \"Expected to see a statement and instead saw a block.\",\n  E037: null,\n  E038: null,\n  E039: \"Function declarations are not invocable. Wrap the whole function invocation in parens.\",\n  E040: \"Each value should have its own case label.\",\n  E041: \"Unrecoverable syntax error.\",\n  E042: \"Stopping.\",\n  E043: \"Too many errors.\",\n  E044: null,\n  E045: \"Invalid for each loop.\",\n  E046: \"A yield statement shall be within a generator function (with syntax: `function*`)\",\n  E047: null,\n  E048: \"{a} declaration not directly within block.\",\n  E049: \"A {a} cannot be named '{b}'.\",\n  E050: \"Mozilla requires the yield expression to be parenthesized here.\",\n  E051: null,\n  E052: \"Unclosed template literal.\",\n  E053: \"Export declaration must be in global scope.\",\n  E054: \"Class properties must be methods. Expected '(' but instead saw '{a}'.\",\n  E055: \"The '{a}' option cannot be set after any executable code.\",\n  E056: \"'{a}' was used before it was declared, which is illegal for '{b}' variables.\",\n  E057: \"Invalid meta property: '{a}.{b}'.\",\n  E058: \"Missing semicolon.\"\n};\n\nvar warnings = {\n  W001: \"'hasOwnProperty' is a really bad name.\",\n  W002: \"Value of '{a}' may be overwritten in IE 8 and earlier.\",\n  W003: \"'{a}' was used before it was defined.\",\n  W004: \"'{a}' is already defined.\",\n  W005: \"A dot following a number can be confused with a decimal point.\",\n  W006: \"Confusing minuses.\",\n  W007: \"Confusing plusses.\",\n  W008: \"A leading decimal point can be confused with a dot: '{a}'.\",\n  W009: \"The array literal notation [] is preferable.\",\n  W010: \"The object literal notation {} is preferable.\",\n  W011: null,\n  W012: null,\n  W013: null,\n  W014: \"Bad line breaking before '{a}'.\",\n  W015: null,\n  W016: \"Unexpected use of '{a}'.\",\n  W017: \"Bad operand.\",\n  W018: \"Confusing use of '{a}'.\",\n  W019: \"Use the isNaN function to compare with NaN.\",\n  W020: \"Read only.\",\n  W021: \"Reassignment of '{a}', which is is a {b}. \" +\n    \"Use 'var' or 'let' to declare bindings that may change.\",\n  W022: \"Do not assign to the exception parameter.\",\n  W023: \"Expected an identifier in an assignment and instead saw a function invocation.\",\n  W024: \"Expected an identifier and instead saw '{a}' (a reserved word).\",\n  W025: \"Missing name in function declaration.\",\n  W026: \"Inner functions should be listed at the top of the outer function.\",\n  W027: \"Unreachable '{a}' after '{b}'.\",\n  W028: \"Label '{a}' on {b} statement.\",\n  W030: \"Expected an assignment or function call and instead saw an expression.\",\n  W031: \"Do not use 'new' for side effects.\",\n  W032: \"Unnecessary semicolon.\",\n  W033: \"Missing semicolon.\",\n  W034: \"Unnecessary directive \\\"{a}\\\".\",\n  W035: \"Empty block.\",\n  W036: \"Unexpected /*member '{a}'.\",\n  W037: \"'{a}' is a statement label.\",\n  W038: \"'{a}' used out of scope.\",\n  W039: \"'{a}' is not allowed.\",\n  W040: \"Possible strict violation.\",\n  W041: \"Use '{a}' to compare with '{b}'.\",\n  W042: \"Avoid EOL escaping.\",\n  W043: \"Bad escaping of EOL. Use option multistr if needed.\",\n  W044: \"Bad or unnecessary escaping.\", /* TODO(caitp): remove W044 */\n  W045: \"Bad number '{a}'.\",\n  W046: \"Don't use extra leading zeros '{a}'.\",\n  W047: \"A trailing decimal point can be confused with a dot: '{a}'.\",\n  W048: \"Unexpected control character in regular expression.\",\n  W049: \"Unexpected escaped character '{a}' in regular expression.\",\n  W050: \"JavaScript URL.\",\n  W051: \"Variables should not be deleted.\",\n  W052: \"Unexpected '{a}'.\",\n  W053: \"Do not use {a} as a constructor.\",\n  W054: \"The Function constructor is a form of eval.\",\n  W055: \"A constructor name should start with an uppercase letter.\",\n  W056: \"Bad constructor.\",\n  W057: \"Weird construction. Is 'new' necessary?\",\n  W058: \"Missing '()' invoking a constructor.\",\n  W059: \"Avoid arguments.{a}.\",\n  W060: \"document.write can be a form of eval.\",\n  W061: \"eval can be harmful.\",\n  W062: \"Wrap an immediate function invocation in parens \" +\n    \"to assist the reader in understanding that the expression \" +\n    \"is the result of a function, and not the function itself.\",\n  W063: \"Math is not a function.\",\n  W064: \"Missing 'new' prefix when invoking a constructor.\",\n  W065: \"Missing radix parameter.\",\n  W066: \"Implied eval. Consider passing a function instead of a string.\",\n  W067: \"Bad invocation.\",\n  W068: \"Wrapping non-IIFE function literals in parens is unnecessary.\",\n  W069: \"['{a}'] is better written in dot notation.\",\n  W070: \"Extra comma. (it breaks older versions of IE)\",\n  W071: \"This function has too many statements. ({a})\",\n  W072: \"This function has too many parameters. ({a})\",\n  W073: \"Blocks are nested too deeply. ({a})\",\n  W074: \"This function's cyclomatic complexity is too high. ({a})\",\n  W075: \"Duplicate {a} '{b}'.\",\n  W076: \"Unexpected parameter '{a}' in get {b} function.\",\n  W077: \"Expected a single parameter in set {a} function.\",\n  W078: \"Setter is defined without getter.\",\n  W079: \"Redefinition of '{a}'.\",\n  W080: \"It's not necessary to initialize '{a}' to 'undefined'.\",\n  W081: null,\n  W082: \"Function declarations should not be placed in blocks. \" +\n    \"Use a function expression or move the statement to the top of \" +\n    \"the outer function.\",\n  W083: \"Don't make functions within a loop.\",\n  W084: \"Assignment in conditional expression\",\n  W085: \"Don't use 'with'.\",\n  W086: \"Expected a 'break' statement before '{a}'.\",\n  W087: \"Forgotten 'debugger' statement?\",\n  W088: \"Creating global 'for' variable. Should be 'for (var {a} ...'.\",\n  W089: \"The body of a for in should be wrapped in an if statement to filter \" +\n    \"unwanted properties from the prototype.\",\n  W090: \"'{a}' is not a statement label.\",\n  W091: null,\n  W093: \"Did you mean to return a conditional instead of an assignment?\",\n  W094: \"Unexpected comma.\",\n  W095: \"Expected a string and instead saw {a}.\",\n  W096: \"The '{a}' key may produce unexpected results.\",\n  W097: \"Use the function form of \\\"use strict\\\".\",\n  W098: \"'{a}' is defined but never used.\",\n  W099: null,\n  W100: \"This character may get silently deleted by one or more browsers.\",\n  W101: \"Line is too long.\",\n  W102: null,\n  W103: \"The '{a}' property is deprecated.\",\n  W104: \"'{a}' is available in ES{b} (use 'esversion: {b}') or Mozilla JS extensions (use moz).\",\n  W105: \"Unexpected {a} in '{b}'.\",\n  W106: \"Identifier '{a}' is not in camel case.\",\n  W107: \"Script URL.\",\n  W108: \"Strings must use doublequote.\",\n  W109: \"Strings must use singlequote.\",\n  W110: \"Mixed double and single quotes.\",\n  W112: \"Unclosed string.\",\n  W113: \"Control character in string: {a}.\",\n  W114: \"Avoid {a}.\",\n  W115: \"Octal literals are not allowed in strict mode.\",\n  W116: \"Expected '{a}' and instead saw '{b}'.\",\n  W117: \"'{a}' is not defined.\",\n  W118: \"'{a}' is only available in Mozilla JavaScript extensions (use moz option).\",\n  W119: \"'{a}' is only available in ES{b} (use 'esversion: {b}').\",\n  W120: \"You might be leaking a variable ({a}) here.\",\n  W121: \"Extending prototype of native object: '{a}'.\",\n  W122: \"Invalid typeof value '{a}'\",\n  W123: \"'{a}' is already defined in outer scope.\",\n  W124: \"A generator function shall contain a yield statement.\",\n  W125: \"This line contains non-breaking spaces: http://jshint.com/doc/options/#nonbsp\",\n  W126: \"Unnecessary grouping operator.\",\n  W127: \"Unexpected use of a comma operator.\",\n  W128: \"Empty array elements require elision=true.\",\n  W129: \"'{a}' is defined in a future version of JavaScript. Use a \" +\n    \"different variable name to avoid migration issues.\",\n  W130: \"Invalid element after rest element.\",\n  W131: \"Invalid parameter after rest parameter.\",\n  W132: \"`var` declarations are forbidden. Use `let` or `const` instead.\",\n  W133: \"Invalid for-{a} loop left-hand-side: {b}.\",\n  W134: \"The '{a}' option is only available when linting ECMAScript {b} code.\",\n  W135: \"{a} may not be supported by non-browser environments.\",\n  W136: \"'{a}' must be in function scope.\",\n  W137: \"Empty destructuring.\",\n  W138: \"Regular parameters should not come after default parameters.\"\n};\n\nvar info = {\n  I001: \"Comma warnings can be turned off with 'laxcomma'.\",\n  I002: null,\n  I003: \"ES5 option is now set per default\"\n};\n\nexports.errors = {};\nexports.warnings = {};\nexports.info = {};\n\n_.each(errors, function(desc, code) {\n  exports.errors[code] = { code: code, desc: desc };\n});\n\n_.each(warnings, function(desc, code) {\n  exports.warnings[code] = { code: code, desc: desc };\n});\n\n_.each(info, function(desc, code) {\n  exports.info[code] = { code: code, desc: desc };\n});\n\n},{\"../lodash\":\"/node_modules/jshint/lodash.js\"}],\"/node_modules/jshint/src/name-stack.js\":[function(_dereq_,module,exports){\n\"use strict\";\n\nfunction NameStack() {\n  this._stack = [];\n}\n\nObject.defineProperty(NameStack.prototype, \"length\", {\n  get: function() {\n    return this._stack.length;\n  }\n});\nNameStack.prototype.push = function() {\n  this._stack.push(null);\n};\nNameStack.prototype.pop = function() {\n  this._stack.pop();\n};\nNameStack.prototype.set = function(token) {\n  this._stack[this.length - 1] = token;\n};\nNameStack.prototype.infer = function() {\n  var nameToken = this._stack[this.length - 1];\n  var prefix = \"\";\n  var type;\n  if (!nameToken || nameToken.type === \"class\") {\n    nameToken = this._stack[this.length - 2];\n  }\n\n  if (!nameToken) {\n    return \"(empty)\";\n  }\n\n  type = nameToken.type;\n\n  if (type !== \"(string)\" && type !== \"(number)\" && type !== \"(identifier)\" && type !== \"default\") {\n    return \"(expression)\";\n  }\n\n  if (nameToken.accessorType) {\n    prefix = nameToken.accessorType + \" \";\n  }\n\n  return prefix + nameToken.value;\n};\n\nmodule.exports = NameStack;\n\n},{}],\"/node_modules/jshint/src/options.js\":[function(_dereq_,module,exports){\n\"use strict\";\nexports.bool = {\n  enforcing: {\n    bitwise     : true,\n    freeze      : true,\n    camelcase   : true,\n    curly       : true,\n    eqeqeq      : true,\n    futurehostile: true,\n    notypeof    : true,\n    es3         : true,\n    es5         : true,\n    forin       : true,\n    funcscope   : true,\n    immed       : true,\n    iterator    : true,\n    newcap      : true,\n    noarg       : true,\n    nocomma     : true,\n    noempty     : true,\n    nonbsp      : true,\n    nonew       : true,\n    undef       : true,\n    singleGroups: false,\n    varstmt: false,\n    enforceall : false\n  },\n  relaxing: {\n    asi         : true,\n    multistr    : true,\n    debug       : true,\n    boss        : true,\n    evil        : true,\n    globalstrict: true,\n    plusplus    : true,\n    proto       : true,\n    scripturl   : true,\n    sub         : true,\n    supernew    : true,\n    laxbreak    : true,\n    laxcomma    : true,\n    validthis   : true,\n    withstmt    : true,\n    moz         : true,\n    noyield     : true,\n    eqnull      : true,\n    lastsemic   : true,\n    loopfunc    : true,\n    expr        : true,\n    esnext      : true,\n    elision     : true,\n  },\n  environments: {\n    mootools    : true,\n    couch       : true,\n    jasmine     : true,\n    jquery      : true,\n    node        : true,\n    qunit       : true,\n    rhino       : true,\n    shelljs     : true,\n    prototypejs : true,\n    yui         : true,\n    mocha       : true,\n    module      : true,\n    wsh         : true,\n    worker      : true,\n    nonstandard : true,\n    browser     : true,\n    browserify  : true,\n    devel       : true,\n    dojo        : true,\n    typed       : true,\n    phantom     : true\n  },\n  obsolete: {\n    onecase     : true, // if one case switch statements should be allowed\n    regexp      : true, // if the . should not be allowed in regexp literals\n    regexdash   : true  // if unescaped first/last dash (-) inside brackets\n  }\n};\nexports.val = {\n  maxlen       : false,\n  indent       : false,\n  maxerr       : false,\n  predef       : false,\n  globals      : false,\n  quotmark     : false,\n\n  scope        : false,\n  maxstatements: false,\n  maxdepth     : false,\n  maxparams    : false,\n  maxcomplexity: false,\n  shadow       : false,\n  strict      : true,\n  unused       : true,\n  latedef      : false,\n\n  ignore       : false, // start/end ignoring lines of code, bypassing the lexer\n\n  ignoreDelimiters: false, // array of start/end delimiters used to ignore\n  esversion: 5\n};\nexports.inverted = {\n  bitwise : true,\n  forin   : true,\n  newcap  : true,\n  plusplus: true,\n  regexp  : true,\n  undef   : true,\n  eqeqeq  : true,\n  strict  : true\n};\n\nexports.validNames = Object.keys(exports.val)\n  .concat(Object.keys(exports.bool.relaxing))\n  .concat(Object.keys(exports.bool.enforcing))\n  .concat(Object.keys(exports.bool.obsolete))\n  .concat(Object.keys(exports.bool.environments));\nexports.renamed = {\n  eqeq   : \"eqeqeq\",\n  windows: \"wsh\",\n  sloppy : \"strict\"\n};\n\nexports.removed = {\n  nomen: true,\n  onevar: true,\n  passfail: true,\n  white: true,\n  gcl: true,\n  smarttabs: true,\n  trailing: true\n};\nexports.noenforceall = {\n  varstmt: true,\n  strict: true\n};\n\n},{}],\"/node_modules/jshint/src/reg.js\":[function(_dereq_,module,exports){\n\n\"use strict\";\nexports.unsafeString =\n  /@cc|<\\/?|script|\\]\\s*\\]|<\\s*!|&lt/i;\nexports.unsafeChars =\n  /[\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/;\nexports.needEsc =\n  /[\\u0000-\\u001f&<\"\\/\\\\\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/;\n\nexports.needEscGlobal =\n  /[\\u0000-\\u001f&<\"\\/\\\\\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g;\nexports.starSlash = /\\*\\//;\nexports.identifier = /^([a-zA-Z_$][a-zA-Z0-9_$]*)$/;\nexports.javascriptURL = /^(?:javascript|jscript|ecmascript|vbscript|livescript)\\s*:/i;\nexports.fallsThrough = /^\\s*falls?\\sthrough\\s*$/;\nexports.maxlenException = /^(?:(?:\\/\\/|\\/\\*|\\*) ?)?[^ ]+$/;\n\n},{}],\"/node_modules/jshint/src/scope-manager.js\":[function(_dereq_,module,exports){\n\"use strict\";\n\nvar _      = _dereq_(\"../lodash\");\nvar events = _dereq_(\"events\");\nvar marker = {};\nvar scopeManager = function(state, predefined, exported, declared) {\n\n  var _current;\n  var _scopeStack = [];\n\n  function _newScope(type) {\n    _current = {\n      \"(labels)\": Object.create(null),\n      \"(usages)\": Object.create(null),\n      \"(breakLabels)\": Object.create(null),\n      \"(parent)\": _current,\n      \"(type)\": type,\n      \"(params)\": (type === \"functionparams\" || type === \"catchparams\") ? [] : null\n    };\n    _scopeStack.push(_current);\n  }\n\n  _newScope(\"global\");\n  _current[\"(predefined)\"] = predefined;\n\n  var _currentFunctBody = _current; // this is the block after the params = function\n\n  var usedPredefinedAndGlobals = Object.create(null);\n  var impliedGlobals = Object.create(null);\n  var unuseds = [];\n  var emitter = new events.EventEmitter();\n\n  function warning(code, token) {\n    emitter.emit(\"warning\", {\n      code: code,\n      token: token,\n      data: _.slice(arguments, 2)\n    });\n  }\n\n  function error(code, token) {\n    emitter.emit(\"warning\", {\n      code: code,\n      token: token,\n      data: _.slice(arguments, 2)\n    });\n  }\n\n  function _setupUsages(labelName) {\n    if (!_current[\"(usages)\"][labelName]) {\n      _current[\"(usages)\"][labelName] = {\n        \"(modified)\": [],\n        \"(reassigned)\": [],\n        \"(tokens)\": []\n      };\n    }\n  }\n\n  var _getUnusedOption = function(unused_opt) {\n    if (unused_opt === undefined) {\n      unused_opt = state.option.unused;\n    }\n\n    if (unused_opt === true) {\n      unused_opt = \"last-param\";\n    }\n\n    return unused_opt;\n  };\n\n  var _warnUnused = function(name, tkn, type, unused_opt) {\n    var line = tkn.line;\n    var chr  = tkn.from;\n    var raw_name = tkn.raw_text || name;\n\n    unused_opt = _getUnusedOption(unused_opt);\n\n    var warnable_types = {\n      \"vars\": [\"var\"],\n      \"last-param\": [\"var\", \"param\"],\n      \"strict\": [\"var\", \"param\", \"last-param\"]\n    };\n\n    if (unused_opt) {\n      if (warnable_types[unused_opt] && warnable_types[unused_opt].indexOf(type) !== -1) {\n        warning(\"W098\", { line: line, from: chr }, raw_name);\n      }\n    }\n    if (unused_opt || type === \"var\") {\n      unuseds.push({\n        name: name,\n        line: line,\n        character: chr\n      });\n    }\n  };\n  function _checkForUnused() {\n    if (_current[\"(type)\"] === \"functionparams\") {\n      _checkParams();\n      return;\n    }\n    var curentLabels = _current[\"(labels)\"];\n    for (var labelName in curentLabels) {\n      if (curentLabels[labelName]) {\n        if (curentLabels[labelName][\"(type)\"] !== \"exception\" &&\n          curentLabels[labelName][\"(unused)\"]) {\n          _warnUnused(labelName, curentLabels[labelName][\"(token)\"], \"var\");\n        }\n      }\n    }\n  }\n  function _checkParams() {\n    var params = _current[\"(params)\"];\n\n    if (!params) {\n      return;\n    }\n\n    var param = params.pop();\n    var unused_opt;\n\n    while (param) {\n      var label = _current[\"(labels)\"][param];\n\n      unused_opt = _getUnusedOption(state.funct[\"(unusedOption)\"]);\n      if (param === \"undefined\")\n        return;\n\n      if (label[\"(unused)\"]) {\n        _warnUnused(param, label[\"(token)\"], \"param\", state.funct[\"(unusedOption)\"]);\n      } else if (unused_opt === \"last-param\") {\n        return;\n      }\n\n      param = params.pop();\n    }\n  }\n  function _getLabel(labelName) {\n    for (var i = _scopeStack.length - 1 ; i >= 0; --i) {\n      var scopeLabels = _scopeStack[i][\"(labels)\"];\n      if (scopeLabels[labelName]) {\n        return scopeLabels;\n      }\n    }\n  }\n\n  function usedSoFarInCurrentFunction(labelName) {\n    for (var i = _scopeStack.length - 1; i >= 0; i--) {\n      var current = _scopeStack[i];\n      if (current[\"(usages)\"][labelName]) {\n        return current[\"(usages)\"][labelName];\n      }\n      if (current === _currentFunctBody) {\n        break;\n      }\n    }\n    return false;\n  }\n\n  function _checkOuterShadow(labelName, token) {\n    if (state.option.shadow !== \"outer\") {\n      return;\n    }\n\n    var isGlobal = _currentFunctBody[\"(type)\"] === \"global\",\n      isNewFunction = _current[\"(type)\"] === \"functionparams\";\n\n    var outsideCurrentFunction = !isGlobal;\n    for (var i = 0; i < _scopeStack.length; i++) {\n      var stackItem = _scopeStack[i];\n\n      if (!isNewFunction && _scopeStack[i + 1] === _currentFunctBody) {\n        outsideCurrentFunction = false;\n      }\n      if (outsideCurrentFunction && stackItem[\"(labels)\"][labelName]) {\n        warning(\"W123\", token, labelName);\n      }\n      if (stackItem[\"(breakLabels)\"][labelName]) {\n        warning(\"W123\", token, labelName);\n      }\n    }\n  }\n\n  function _latedefWarning(type, labelName, token) {\n    if (state.option.latedef) {\n      if ((state.option.latedef === true && type === \"function\") ||\n        type !== \"function\") {\n        warning(\"W003\", token, labelName);\n      }\n    }\n  }\n\n  var scopeManagerInst = {\n\n    on: function(names, listener) {\n      names.split(\" \").forEach(function(name) {\n        emitter.on(name, listener);\n      });\n    },\n\n    isPredefined: function(labelName) {\n      return !this.has(labelName) && _.has(_scopeStack[0][\"(predefined)\"], labelName);\n    },\n    stack: function(type) {\n      var previousScope = _current;\n      _newScope(type);\n\n      if (!type && previousScope[\"(type)\"] === \"functionparams\") {\n\n        _current[\"(isFuncBody)\"] = true;\n        _current[\"(context)\"] = _currentFunctBody;\n        _currentFunctBody = _current;\n      }\n    },\n\n    unstack: function() {\n      var subScope = _scopeStack.length > 1 ? _scopeStack[_scopeStack.length - 2] : null;\n      var isUnstackingFunctionBody = _current === _currentFunctBody,\n        isUnstackingFunctionParams = _current[\"(type)\"] === \"functionparams\",\n        isUnstackingFunctionOuter = _current[\"(type)\"] === \"functionouter\";\n\n      var i, j;\n      var currentUsages = _current[\"(usages)\"];\n      var currentLabels = _current[\"(labels)\"];\n      var usedLabelNameList = Object.keys(currentUsages);\n\n      if (currentUsages.__proto__ && usedLabelNameList.indexOf(\"__proto__\") === -1) {\n        usedLabelNameList.push(\"__proto__\");\n      }\n\n      for (i = 0; i < usedLabelNameList.length; i++) {\n        var usedLabelName = usedLabelNameList[i];\n\n        var usage = currentUsages[usedLabelName];\n        var usedLabel = currentLabels[usedLabelName];\n        if (usedLabel) {\n          var usedLabelType = usedLabel[\"(type)\"];\n\n          if (usedLabel[\"(useOutsideOfScope)\"] && !state.option.funcscope) {\n            var usedTokens = usage[\"(tokens)\"];\n            if (usedTokens) {\n              for (j = 0; j < usedTokens.length; j++) {\n                if (usedLabel[\"(function)\"] === usedTokens[j][\"(function)\"]) {\n                  error(\"W038\", usedTokens[j], usedLabelName);\n                }\n              }\n            }\n          }\n          _current[\"(labels)\"][usedLabelName][\"(unused)\"] = false;\n          if (usedLabelType === \"const\" && usage[\"(modified)\"]) {\n            for (j = 0; j < usage[\"(modified)\"].length; j++) {\n              error(\"E013\", usage[\"(modified)\"][j], usedLabelName);\n            }\n          }\n          if ((usedLabelType === \"function\" || usedLabelType === \"class\") &&\n              usage[\"(reassigned)\"]) {\n            for (j = 0; j < usage[\"(reassigned)\"].length; j++) {\n              error(\"W021\", usage[\"(reassigned)\"][j], usedLabelName, usedLabelType);\n            }\n          }\n          continue;\n        }\n\n        if (isUnstackingFunctionOuter) {\n          state.funct[\"(isCapturing)\"] = true;\n        }\n\n        if (subScope) {\n          if (!subScope[\"(usages)\"][usedLabelName]) {\n            subScope[\"(usages)\"][usedLabelName] = usage;\n            if (isUnstackingFunctionBody) {\n              subScope[\"(usages)\"][usedLabelName][\"(onlyUsedSubFunction)\"] = true;\n            }\n          } else {\n            var subScopeUsage = subScope[\"(usages)\"][usedLabelName];\n            subScopeUsage[\"(modified)\"] = subScopeUsage[\"(modified)\"].concat(usage[\"(modified)\"]);\n            subScopeUsage[\"(tokens)\"] = subScopeUsage[\"(tokens)\"].concat(usage[\"(tokens)\"]);\n            subScopeUsage[\"(reassigned)\"] =\n              subScopeUsage[\"(reassigned)\"].concat(usage[\"(reassigned)\"]);\n            subScopeUsage[\"(onlyUsedSubFunction)\"] = false;\n          }\n        } else {\n          if (typeof _current[\"(predefined)\"][usedLabelName] === \"boolean\") {\n            delete declared[usedLabelName];\n            usedPredefinedAndGlobals[usedLabelName] = marker;\n            if (_current[\"(predefined)\"][usedLabelName] === false && usage[\"(reassigned)\"]) {\n              for (j = 0; j < usage[\"(reassigned)\"].length; j++) {\n                warning(\"W020\", usage[\"(reassigned)\"][j]);\n              }\n            }\n          }\n          else {\n            if (usage[\"(tokens)\"]) {\n              for (j = 0; j < usage[\"(tokens)\"].length; j++) {\n                var undefinedToken = usage[\"(tokens)\"][j];\n                if (!undefinedToken.forgiveUndef) {\n                  if (state.option.undef && !undefinedToken.ignoreUndef) {\n                    warning(\"W117\", undefinedToken, usedLabelName);\n                  }\n                  if (impliedGlobals[usedLabelName]) {\n                    impliedGlobals[usedLabelName].line.push(undefinedToken.line);\n                  } else {\n                    impliedGlobals[usedLabelName] = {\n                      name: usedLabelName,\n                      line: [undefinedToken.line]\n                    };\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      if (!subScope) {\n        Object.keys(declared)\n          .forEach(function(labelNotUsed) {\n            _warnUnused(labelNotUsed, declared[labelNotUsed], \"var\");\n          });\n      }\n      if (subScope && !isUnstackingFunctionBody &&\n        !isUnstackingFunctionParams && !isUnstackingFunctionOuter) {\n        var labelNames = Object.keys(currentLabels);\n        for (i = 0; i < labelNames.length; i++) {\n\n          var defLabelName = labelNames[i];\n          if (!currentLabels[defLabelName][\"(blockscoped)\"] &&\n            currentLabels[defLabelName][\"(type)\"] !== \"exception\" &&\n            !this.funct.has(defLabelName, { excludeCurrent: true })) {\n            subScope[\"(labels)\"][defLabelName] = currentLabels[defLabelName];\n            if (_currentFunctBody[\"(type)\"] !== \"global\") {\n              subScope[\"(labels)\"][defLabelName][\"(useOutsideOfScope)\"] = true;\n            }\n            delete currentLabels[defLabelName];\n          }\n        }\n      }\n\n      _checkForUnused();\n\n      _scopeStack.pop();\n      if (isUnstackingFunctionBody) {\n        _currentFunctBody = _scopeStack[_.findLastIndex(_scopeStack, function(scope) {\n          return scope[\"(isFuncBody)\"] || scope[\"(type)\"] === \"global\";\n        })];\n      }\n\n      _current = subScope;\n    },\n    addParam: function(labelName, token, type) {\n      type = type || \"param\";\n\n      if (type === \"exception\") {\n        var previouslyDefinedLabelType = this.funct.labeltype(labelName);\n        if (previouslyDefinedLabelType && previouslyDefinedLabelType !== \"exception\") {\n          if (!state.option.node) {\n            warning(\"W002\", state.tokens.next, labelName);\n          }\n        }\n      }\n      if (_.has(_current[\"(labels)\"], labelName)) {\n        _current[\"(labels)\"][labelName].duplicated = true;\n      } else {\n        _checkOuterShadow(labelName, token, type);\n\n        _current[\"(labels)\"][labelName] = {\n          \"(type)\" : type,\n          \"(token)\": token,\n          \"(unused)\": true };\n\n        _current[\"(params)\"].push(labelName);\n      }\n\n      if (_.has(_current[\"(usages)\"], labelName)) {\n        var usage = _current[\"(usages)\"][labelName];\n        if (usage[\"(onlyUsedSubFunction)\"]) {\n          _latedefWarning(type, labelName, token);\n        } else {\n          warning(\"E056\", token, labelName, type);\n        }\n      }\n    },\n\n    validateParams: function() {\n      if (_currentFunctBody[\"(type)\"] === \"global\") {\n        return;\n      }\n\n      var isStrict = state.isStrict();\n      var currentFunctParamScope = _currentFunctBody[\"(parent)\"];\n\n      if (!currentFunctParamScope[\"(params)\"]) {\n        return;\n      }\n\n      currentFunctParamScope[\"(params)\"].forEach(function(labelName) {\n        var label = currentFunctParamScope[\"(labels)\"][labelName];\n\n        if (label && label.duplicated) {\n          if (isStrict) {\n            warning(\"E011\", label[\"(token)\"], labelName);\n          } else if (state.option.shadow !== true) {\n            warning(\"W004\", label[\"(token)\"], labelName);\n          }\n        }\n      });\n    },\n\n    getUsedOrDefinedGlobals: function() {\n      var list = Object.keys(usedPredefinedAndGlobals);\n      if (usedPredefinedAndGlobals.__proto__ === marker &&\n        list.indexOf(\"__proto__\") === -1) {\n        list.push(\"__proto__\");\n      }\n\n      return list;\n    },\n    getImpliedGlobals: function() {\n      var values = _.values(impliedGlobals);\n      var hasProto = false;\n      if (impliedGlobals.__proto__) {\n        hasProto = values.some(function(value) {\n          return value.name === \"__proto__\";\n        });\n\n        if (!hasProto) {\n          values.push(impliedGlobals.__proto__);\n        }\n      }\n\n      return values;\n    },\n    getUnuseds: function() {\n      return unuseds;\n    },\n\n    has: function(labelName) {\n      return Boolean(_getLabel(labelName));\n    },\n\n    labeltype: function(labelName) {\n      var scopeLabels = _getLabel(labelName);\n      if (scopeLabels) {\n        return scopeLabels[labelName][\"(type)\"];\n      }\n      return null;\n    },\n    addExported: function(labelName) {\n      var globalLabels = _scopeStack[0][\"(labels)\"];\n      if (_.has(declared, labelName)) {\n        delete declared[labelName];\n      } else if (_.has(globalLabels, labelName)) {\n        globalLabels[labelName][\"(unused)\"] = false;\n      } else {\n        for (var i = 1; i < _scopeStack.length; i++) {\n          var scope = _scopeStack[i];\n          if (!scope[\"(type)\"]) {\n            if (_.has(scope[\"(labels)\"], labelName) &&\n                !scope[\"(labels)\"][labelName][\"(blockscoped)\"]) {\n              scope[\"(labels)\"][labelName][\"(unused)\"] = false;\n              return;\n            }\n          } else {\n            break;\n          }\n        }\n        exported[labelName] = true;\n      }\n    },\n    setExported: function(labelName, token) {\n      this.block.use(labelName, token);\n    },\n    addlabel: function(labelName, opts) {\n\n      var type  = opts.type;\n      var token = opts.token;\n      var isblockscoped = type === \"let\" || type === \"const\" || type === \"class\";\n      var isexported    = (isblockscoped ? _current : _currentFunctBody)[\"(type)\"] === \"global\" &&\n                          _.has(exported, labelName);\n      _checkOuterShadow(labelName, token, type);\n      if (isblockscoped) {\n\n        var declaredInCurrentScope = _current[\"(labels)\"][labelName];\n        if (!declaredInCurrentScope && _current === _currentFunctBody &&\n          _current[\"(type)\"] !== \"global\") {\n          declaredInCurrentScope = !!_currentFunctBody[\"(parent)\"][\"(labels)\"][labelName];\n        }\n        if (!declaredInCurrentScope && _current[\"(usages)\"][labelName]) {\n          var usage = _current[\"(usages)\"][labelName];\n          if (usage[\"(onlyUsedSubFunction)\"]) {\n            _latedefWarning(type, labelName, token);\n          } else {\n            warning(\"E056\", token, labelName, type);\n          }\n        }\n        if (declaredInCurrentScope) {\n          warning(\"E011\", token, labelName);\n        }\n        else if (state.option.shadow === \"outer\") {\n          if (scopeManagerInst.funct.has(labelName)) {\n            warning(\"W004\", token, labelName);\n          }\n        }\n\n        scopeManagerInst.block.add(labelName, type, token, !isexported);\n\n      } else {\n\n        var declaredInCurrentFunctionScope = scopeManagerInst.funct.has(labelName);\n        if (!declaredInCurrentFunctionScope && usedSoFarInCurrentFunction(labelName)) {\n          _latedefWarning(type, labelName, token);\n        }\n        if (scopeManagerInst.funct.has(labelName, { onlyBlockscoped: true })) {\n          warning(\"E011\", token, labelName);\n        } else if (state.option.shadow !== true) {\n          if (declaredInCurrentFunctionScope && labelName !== \"__proto__\") {\n            if (_currentFunctBody[\"(type)\"] !== \"global\") {\n              warning(\"W004\", token, labelName);\n            }\n          }\n        }\n\n        scopeManagerInst.funct.add(labelName, type, token, !isexported);\n\n        if (_currentFunctBody[\"(type)\"] === \"global\") {\n          usedPredefinedAndGlobals[labelName] = marker;\n        }\n      }\n    },\n\n    funct: {\n      labeltype: function(labelName, options) {\n        var onlyBlockscoped = options && options.onlyBlockscoped;\n        var excludeParams = options && options.excludeParams;\n        var currentScopeIndex = _scopeStack.length - (options && options.excludeCurrent ? 2 : 1);\n        for (var i = currentScopeIndex; i >= 0; i--) {\n          var current = _scopeStack[i];\n          if (current[\"(labels)\"][labelName] &&\n            (!onlyBlockscoped || current[\"(labels)\"][labelName][\"(blockscoped)\"])) {\n            return current[\"(labels)\"][labelName][\"(type)\"];\n          }\n          var scopeCheck = excludeParams ? _scopeStack[ i - 1 ] : current;\n          if (scopeCheck && scopeCheck[\"(type)\"] === \"functionparams\") {\n            return null;\n          }\n        }\n        return null;\n      },\n      hasBreakLabel: function(labelName) {\n        for (var i = _scopeStack.length - 1; i >= 0; i--) {\n          var current = _scopeStack[i];\n\n          if (current[\"(breakLabels)\"][labelName]) {\n            return true;\n          }\n          if (current[\"(type)\"] === \"functionparams\") {\n            return false;\n          }\n        }\n        return false;\n      },\n      has: function(labelName, options) {\n        return Boolean(this.labeltype(labelName, options));\n      },\n      add: function(labelName, type, tok, unused) {\n        _current[\"(labels)\"][labelName] = {\n          \"(type)\" : type,\n          \"(token)\": tok,\n          \"(blockscoped)\": false,\n          \"(function)\": _currentFunctBody,\n          \"(unused)\": unused };\n      }\n    },\n\n    block: {\n      isGlobal: function() {\n        return _current[\"(type)\"] === \"global\";\n      },\n\n      use: function(labelName, token) {\n        var paramScope = _currentFunctBody[\"(parent)\"];\n        if (paramScope && paramScope[\"(labels)\"][labelName] &&\n          paramScope[\"(labels)\"][labelName][\"(type)\"] === \"param\") {\n          if (!scopeManagerInst.funct.has(labelName,\n                { excludeParams: true, onlyBlockscoped: true })) {\n            paramScope[\"(labels)\"][labelName][\"(unused)\"] = false;\n          }\n        }\n\n        if (token && (state.ignored.W117 || state.option.undef === false)) {\n          token.ignoreUndef = true;\n        }\n\n        _setupUsages(labelName);\n\n        if (token) {\n          token[\"(function)\"] = _currentFunctBody;\n          _current[\"(usages)\"][labelName][\"(tokens)\"].push(token);\n        }\n      },\n\n      reassign: function(labelName, token) {\n\n        this.modify(labelName, token);\n\n        _current[\"(usages)\"][labelName][\"(reassigned)\"].push(token);\n      },\n\n      modify: function(labelName, token) {\n\n        _setupUsages(labelName);\n\n        _current[\"(usages)\"][labelName][\"(modified)\"].push(token);\n      },\n      add: function(labelName, type, tok, unused) {\n        _current[\"(labels)\"][labelName] = {\n          \"(type)\" : type,\n          \"(token)\": tok,\n          \"(blockscoped)\": true,\n          \"(unused)\": unused };\n      },\n\n      addBreakLabel: function(labelName, opts) {\n        var token = opts.token;\n        if (scopeManagerInst.funct.hasBreakLabel(labelName)) {\n          warning(\"E011\", token, labelName);\n        }\n        else if (state.option.shadow === \"outer\") {\n          if (scopeManagerInst.funct.has(labelName)) {\n            warning(\"W004\", token, labelName);\n          } else {\n            _checkOuterShadow(labelName, token);\n          }\n        }\n        _current[\"(breakLabels)\"][labelName] = token;\n      }\n    }\n  };\n  return scopeManagerInst;\n};\n\nmodule.exports = scopeManager;\n\n},{\"../lodash\":\"/node_modules/jshint/lodash.js\",\"events\":\"/node_modules/browserify/node_modules/events/events.js\"}],\"/node_modules/jshint/src/state.js\":[function(_dereq_,module,exports){\n\"use strict\";\nvar NameStack = _dereq_(\"./name-stack.js\");\n\nvar state = {\n  syntax: {},\n  isStrict: function() {\n    return this.directive[\"use strict\"] || this.inClassBody ||\n      this.option.module || this.option.strict === \"implied\";\n  },\n\n  inMoz: function() {\n    return this.option.moz;\n  },\n  inES6: function() {\n    return this.option.moz || this.option.esversion >= 6;\n  },\n  inES5: function(strict) {\n    if (strict) {\n      return (!this.option.esversion || this.option.esversion === 5) && !this.option.moz;\n    }\n    return !this.option.esversion || this.option.esversion >= 5 || this.option.moz;\n  },\n\n\n  reset: function() {\n    this.tokens = {\n      prev: null,\n      next: null,\n      curr: null\n    };\n\n    this.option = {};\n    this.funct = null;\n    this.ignored = {};\n    this.directive = {};\n    this.jsonMode = false;\n    this.jsonWarnings = [];\n    this.lines = [];\n    this.tab = \"\";\n    this.cache = {}; // Node.JS doesn't have Map. Sniff.\n    this.ignoredLines = {};\n    this.forinifcheckneeded = false;\n    this.nameStack = new NameStack();\n    this.inClassBody = false;\n  }\n};\n\nexports.state = state;\n\n},{\"./name-stack.js\":\"/node_modules/jshint/src/name-stack.js\"}],\"/node_modules/jshint/src/style.js\":[function(_dereq_,module,exports){\n\"use strict\";\n\nexports.register = function(linter) {\n\n  linter.on(\"Identifier\", function style_scanProto(data) {\n    if (linter.getOption(\"proto\")) {\n      return;\n    }\n\n    if (data.name === \"__proto__\") {\n      linter.warn(\"W103\", {\n        line: data.line,\n        char: data.char,\n        data: [ data.name, \"6\" ]\n      });\n    }\n  });\n\n  linter.on(\"Identifier\", function style_scanIterator(data) {\n    if (linter.getOption(\"iterator\")) {\n      return;\n    }\n\n    if (data.name === \"__iterator__\") {\n      linter.warn(\"W103\", {\n        line: data.line,\n        char: data.char,\n        data: [ data.name ]\n      });\n    }\n  });\n\n  linter.on(\"Identifier\", function style_scanCamelCase(data) {\n    if (!linter.getOption(\"camelcase\")) {\n      return;\n    }\n\n    if (data.name.replace(/^_+|_+$/g, \"\").indexOf(\"_\") > -1 && !data.name.match(/^[A-Z0-9_]*$/)) {\n      linter.warn(\"W106\", {\n        line: data.line,\n        char: data.from,\n        data: [ data.name ]\n      });\n    }\n  });\n\n  linter.on(\"String\", function style_scanQuotes(data) {\n    var quotmark = linter.getOption(\"quotmark\");\n    var code;\n\n    if (!quotmark) {\n      return;\n    }\n\n    if (quotmark === \"single\" && data.quote !== \"'\") {\n      code = \"W109\";\n    }\n\n    if (quotmark === \"double\" && data.quote !== \"\\\"\") {\n      code = \"W108\";\n    }\n\n    if (quotmark === true) {\n      if (!linter.getCache(\"quotmark\")) {\n        linter.setCache(\"quotmark\", data.quote);\n      }\n\n      if (linter.getCache(\"quotmark\") !== data.quote) {\n        code = \"W110\";\n      }\n    }\n\n    if (code) {\n      linter.warn(code, {\n        line: data.line,\n        char: data.char,\n      });\n    }\n  });\n\n  linter.on(\"Number\", function style_scanNumbers(data) {\n    if (data.value.charAt(0) === \".\") {\n      linter.warn(\"W008\", {\n        line: data.line,\n        char: data.char,\n        data: [ data.value ]\n      });\n    }\n\n    if (data.value.substr(data.value.length - 1) === \".\") {\n      linter.warn(\"W047\", {\n        line: data.line,\n        char: data.char,\n        data: [ data.value ]\n      });\n    }\n\n    if (/^00+/.test(data.value)) {\n      linter.warn(\"W046\", {\n        line: data.line,\n        char: data.char,\n        data: [ data.value ]\n      });\n    }\n  });\n\n  linter.on(\"String\", function style_scanJavaScriptURLs(data) {\n    var re = /^(?:javascript|jscript|ecmascript|vbscript|livescript)\\s*:/i;\n\n    if (linter.getOption(\"scripturl\")) {\n      return;\n    }\n\n    if (re.test(data.value)) {\n      linter.warn(\"W107\", {\n        line: data.line,\n        char: data.char\n      });\n    }\n  });\n};\n\n},{}],\"/node_modules/jshint/src/vars.js\":[function(_dereq_,module,exports){\n\n\"use strict\";\n\nexports.reservedVars = {\n  arguments : false,\n  NaN       : false\n};\n\nexports.ecmaIdentifiers = {\n  3: {\n    Array              : false,\n    Boolean            : false,\n    Date               : false,\n    decodeURI          : false,\n    decodeURIComponent : false,\n    encodeURI          : false,\n    encodeURIComponent : false,\n    Error              : false,\n    \"eval\"             : false,\n    EvalError          : false,\n    Function           : false,\n    hasOwnProperty     : false,\n    isFinite           : false,\n    isNaN              : false,\n    Math               : false,\n    Number             : false,\n    Object             : false,\n    parseInt           : false,\n    parseFloat         : false,\n    RangeError         : false,\n    ReferenceError     : false,\n    RegExp             : false,\n    String             : false,\n    SyntaxError        : false,\n    TypeError          : false,\n    URIError           : false\n  },\n  5: {\n    JSON               : false\n  },\n  6: {\n    Map                : false,\n    Promise            : false,\n    Proxy              : false,\n    Reflect            : false,\n    Set                : false,\n    Symbol             : false,\n    WeakMap            : false,\n    WeakSet            : false\n  }\n};\n\nexports.browser = {\n  Audio                : false,\n  Blob                 : false,\n  addEventListener     : false,\n  applicationCache     : false,\n  atob                 : false,\n  blur                 : false,\n  btoa                 : false,\n  cancelAnimationFrame : false,\n  CanvasGradient       : false,\n  CanvasPattern        : false,\n  CanvasRenderingContext2D: false,\n  CSS                  : false,\n  clearInterval        : false,\n  clearTimeout         : false,\n  close                : false,\n  closed               : false,\n  Comment              : false,\n  CustomEvent          : false,\n  DOMParser            : false,\n  defaultStatus        : false,\n  Document             : false,\n  document             : false,\n  DocumentFragment     : false,\n  Element              : false,\n  ElementTimeControl   : false,\n  Event                : false,\n  event                : false,\n  fetch                : false,\n  FileReader           : false,\n  FormData             : false,\n  focus                : false,\n  frames               : false,\n  getComputedStyle     : false,\n  HTMLElement          : false,\n  HTMLAnchorElement    : false,\n  HTMLBaseElement      : false,\n  HTMLBlockquoteElement: false,\n  HTMLBodyElement      : false,\n  HTMLBRElement        : false,\n  HTMLButtonElement    : false,\n  HTMLCanvasElement    : false,\n  HTMLCollection       : false,\n  HTMLDirectoryElement : false,\n  HTMLDivElement       : false,\n  HTMLDListElement     : false,\n  HTMLFieldSetElement  : false,\n  HTMLFontElement      : false,\n  HTMLFormElement      : false,\n  HTMLFrameElement     : false,\n  HTMLFrameSetElement  : false,\n  HTMLHeadElement      : false,\n  HTMLHeadingElement   : false,\n  HTMLHRElement        : false,\n  HTMLHtmlElement      : false,\n  HTMLIFrameElement    : false,\n  HTMLImageElement     : false,\n  HTMLInputElement     : false,\n  HTMLIsIndexElement   : false,\n  HTMLLabelElement     : false,\n  HTMLLayerElement     : false,\n  HTMLLegendElement    : false,\n  HTMLLIElement        : false,\n  HTMLLinkElement      : false,\n  HTMLMapElement       : false,\n  HTMLMenuElement      : false,\n  HTMLMetaElement      : false,\n  HTMLModElement       : false,\n  HTMLObjectElement    : false,\n  HTMLOListElement     : false,\n  HTMLOptGroupElement  : false,\n  HTMLOptionElement    : false,\n  HTMLParagraphElement : false,\n  HTMLParamElement     : false,\n  HTMLPreElement       : false,\n  HTMLQuoteElement     : false,\n  HTMLScriptElement    : false,\n  HTMLSelectElement    : false,\n  HTMLStyleElement     : false,\n  HTMLTableCaptionElement: false,\n  HTMLTableCellElement : false,\n  HTMLTableColElement  : false,\n  HTMLTableElement     : false,\n  HTMLTableRowElement  : false,\n  HTMLTableSectionElement: false,\n  HTMLTemplateElement  : false,\n  HTMLTextAreaElement  : false,\n  HTMLTitleElement     : false,\n  HTMLUListElement     : false,\n  HTMLVideoElement     : false,\n  history              : false,\n  Image                : false,\n  Intl                 : false,\n  length               : false,\n  localStorage         : false,\n  location             : false,\n  matchMedia           : false,\n  MessageChannel       : false,\n  MessageEvent         : false,\n  MessagePort          : false,\n  MouseEvent           : false,\n  moveBy               : false,\n  moveTo               : false,\n  MutationObserver     : false,\n  name                 : false,\n  Node                 : false,\n  NodeFilter           : false,\n  NodeList             : false,\n  Notification         : false,\n  navigator            : false,\n  onbeforeunload       : true,\n  onblur               : true,\n  onerror              : true,\n  onfocus              : true,\n  onload               : true,\n  onresize             : true,\n  onunload             : true,\n  open                 : false,\n  openDatabase         : false,\n  opener               : false,\n  Option               : false,\n  parent               : false,\n  performance          : false,\n  print                : false,\n  Range                : false,\n  requestAnimationFrame : false,\n  removeEventListener  : false,\n  resizeBy             : false,\n  resizeTo             : false,\n  screen               : false,\n  scroll               : false,\n  scrollBy             : false,\n  scrollTo             : false,\n  sessionStorage       : false,\n  setInterval          : false,\n  setTimeout           : false,\n  SharedWorker         : false,\n  status               : false,\n  SVGAElement          : false,\n  SVGAltGlyphDefElement: false,\n  SVGAltGlyphElement   : false,\n  SVGAltGlyphItemElement: false,\n  SVGAngle             : false,\n  SVGAnimateColorElement: false,\n  SVGAnimateElement    : false,\n  SVGAnimateMotionElement: false,\n  SVGAnimateTransformElement: false,\n  SVGAnimatedAngle     : false,\n  SVGAnimatedBoolean   : false,\n  SVGAnimatedEnumeration: false,\n  SVGAnimatedInteger   : false,\n  SVGAnimatedLength    : false,\n  SVGAnimatedLengthList: false,\n  SVGAnimatedNumber    : false,\n  SVGAnimatedNumberList: false,\n  SVGAnimatedPathData  : false,\n  SVGAnimatedPoints    : false,\n  SVGAnimatedPreserveAspectRatio: false,\n  SVGAnimatedRect      : false,\n  SVGAnimatedString    : false,\n  SVGAnimatedTransformList: false,\n  SVGAnimationElement  : false,\n  SVGCSSRule           : false,\n  SVGCircleElement     : false,\n  SVGClipPathElement   : false,\n  SVGColor             : false,\n  SVGColorProfileElement: false,\n  SVGColorProfileRule  : false,\n  SVGComponentTransferFunctionElement: false,\n  SVGCursorElement     : false,\n  SVGDefsElement       : false,\n  SVGDescElement       : false,\n  SVGDocument          : false,\n  SVGElement           : false,\n  SVGElementInstance   : false,\n  SVGElementInstanceList: false,\n  SVGEllipseElement    : false,\n  SVGExternalResourcesRequired: false,\n  SVGFEBlendElement    : false,\n  SVGFEColorMatrixElement: false,\n  SVGFEComponentTransferElement: false,\n  SVGFECompositeElement: false,\n  SVGFEConvolveMatrixElement: false,\n  SVGFEDiffuseLightingElement: false,\n  SVGFEDisplacementMapElement: false,\n  SVGFEDistantLightElement: false,\n  SVGFEFloodElement    : false,\n  SVGFEFuncAElement    : false,\n  SVGFEFuncBElement    : false,\n  SVGFEFuncGElement    : false,\n  SVGFEFuncRElement    : false,\n  SVGFEGaussianBlurElement: false,\n  SVGFEImageElement    : false,\n  SVGFEMergeElement    : false,\n  SVGFEMergeNodeElement: false,\n  SVGFEMorphologyElement: false,\n  SVGFEOffsetElement   : false,\n  SVGFEPointLightElement: false,\n  SVGFESpecularLightingElement: false,\n  SVGFESpotLightElement: false,\n  SVGFETileElement     : false,\n  SVGFETurbulenceElement: false,\n  SVGFilterElement     : false,\n  SVGFilterPrimitiveStandardAttributes: false,\n  SVGFitToViewBox      : false,\n  SVGFontElement       : false,\n  SVGFontFaceElement   : false,\n  SVGFontFaceFormatElement: false,\n  SVGFontFaceNameElement: false,\n  SVGFontFaceSrcElement: false,\n  SVGFontFaceUriElement: false,\n  SVGForeignObjectElement: false,\n  SVGGElement          : false,\n  SVGGlyphElement      : false,\n  SVGGlyphRefElement   : false,\n  SVGGradientElement   : false,\n  SVGHKernElement      : false,\n  SVGICCColor          : false,\n  SVGImageElement      : false,\n  SVGLangSpace         : false,\n  SVGLength            : false,\n  SVGLengthList        : false,\n  SVGLineElement       : false,\n  SVGLinearGradientElement: false,\n  SVGLocatable         : false,\n  SVGMPathElement      : false,\n  SVGMarkerElement     : false,\n  SVGMaskElement       : false,\n  SVGMatrix            : false,\n  SVGMetadataElement   : false,\n  SVGMissingGlyphElement: false,\n  SVGNumber            : false,\n  SVGNumberList        : false,\n  SVGPaint             : false,\n  SVGPathElement       : false,\n  SVGPathSeg           : false,\n  SVGPathSegArcAbs     : false,\n  SVGPathSegArcRel     : false,\n  SVGPathSegClosePath  : false,\n  SVGPathSegCurvetoCubicAbs: false,\n  SVGPathSegCurvetoCubicRel: false,\n  SVGPathSegCurvetoCubicSmoothAbs: false,\n  SVGPathSegCurvetoCubicSmoothRel: false,\n  SVGPathSegCurvetoQuadraticAbs: false,\n  SVGPathSegCurvetoQuadraticRel: false,\n  SVGPathSegCurvetoQuadraticSmoothAbs: false,\n  SVGPathSegCurvetoQuadraticSmoothRel: false,\n  SVGPathSegLinetoAbs  : false,\n  SVGPathSegLinetoHorizontalAbs: false,\n  SVGPathSegLinetoHorizontalRel: false,\n  SVGPathSegLinetoRel  : false,\n  SVGPathSegLinetoVerticalAbs: false,\n  SVGPathSegLinetoVerticalRel: false,\n  SVGPathSegList       : false,\n  SVGPathSegMovetoAbs  : false,\n  SVGPathSegMovetoRel  : false,\n  SVGPatternElement    : false,\n  SVGPoint             : false,\n  SVGPointList         : false,\n  SVGPolygonElement    : false,\n  SVGPolylineElement   : false,\n  SVGPreserveAspectRatio: false,\n  SVGRadialGradientElement: false,\n  SVGRect              : false,\n  SVGRectElement       : false,\n  SVGRenderingIntent   : false,\n  SVGSVGElement        : false,\n  SVGScriptElement     : false,\n  SVGSetElement        : false,\n  SVGStopElement       : false,\n  SVGStringList        : false,\n  SVGStylable          : false,\n  SVGStyleElement      : false,\n  SVGSwitchElement     : false,\n  SVGSymbolElement     : false,\n  SVGTRefElement       : false,\n  SVGTSpanElement      : false,\n  SVGTests             : false,\n  SVGTextContentElement: false,\n  SVGTextElement       : false,\n  SVGTextPathElement   : false,\n  SVGTextPositioningElement: false,\n  SVGTitleElement      : false,\n  SVGTransform         : false,\n  SVGTransformList     : false,\n  SVGTransformable     : false,\n  SVGURIReference      : false,\n  SVGUnitTypes         : false,\n  SVGUseElement        : false,\n  SVGVKernElement      : false,\n  SVGViewElement       : false,\n  SVGViewSpec          : false,\n  SVGZoomAndPan        : false,\n  Text                 : false,\n  TextDecoder          : false,\n  TextEncoder          : false,\n  TimeEvent            : false,\n  top                  : false,\n  URL                  : false,\n  WebGLActiveInfo      : false,\n  WebGLBuffer          : false,\n  WebGLContextEvent    : false,\n  WebGLFramebuffer     : false,\n  WebGLProgram         : false,\n  WebGLRenderbuffer    : false,\n  WebGLRenderingContext: false,\n  WebGLShader          : false,\n  WebGLShaderPrecisionFormat: false,\n  WebGLTexture         : false,\n  WebGLUniformLocation : false,\n  WebSocket            : false,\n  window               : false,\n  Window               : false,\n  Worker               : false,\n  XDomainRequest       : false,\n  XMLHttpRequest       : false,\n  XMLSerializer        : false,\n  XPathEvaluator       : false,\n  XPathException       : false,\n  XPathExpression      : false,\n  XPathNamespace       : false,\n  XPathNSResolver      : false,\n  XPathResult          : false\n};\n\nexports.devel = {\n  alert  : false,\n  confirm: false,\n  console: false,\n  Debug  : false,\n  opera  : false,\n  prompt : false\n};\n\nexports.worker = {\n  importScripts  : true,\n  postMessage    : true,\n  self           : true,\n  FileReaderSync : true\n};\nexports.nonstandard = {\n  escape  : false,\n  unescape: false\n};\n\nexports.couch = {\n  \"require\" : false,\n  respond   : false,\n  getRow    : false,\n  emit      : false,\n  send      : false,\n  start     : false,\n  sum       : false,\n  log       : false,\n  exports   : false,\n  module    : false,\n  provides  : false\n};\n\nexports.node = {\n  __filename    : false,\n  __dirname     : false,\n  GLOBAL        : false,\n  global        : false,\n  module        : false,\n  require       : false,\n\n  Buffer        : true,\n  console       : true,\n  exports       : true,\n  process       : true,\n  setTimeout    : true,\n  clearTimeout  : true,\n  setInterval   : true,\n  clearInterval : true,\n  setImmediate  : true, // v0.9.1+\n  clearImmediate: true  // v0.9.1+\n};\n\nexports.browserify = {\n  __filename    : false,\n  __dirname     : false,\n  global        : false,\n  module        : false,\n  require       : false,\n  Buffer        : true,\n  exports       : true,\n  process       : true\n};\n\nexports.phantom = {\n  phantom      : true,\n  require      : true,\n  WebPage      : true,\n  console      : true, // in examples, but undocumented\n  exports      : true  // v1.7+\n};\n\nexports.qunit = {\n  asyncTest      : false,\n  deepEqual      : false,\n  equal          : false,\n  expect         : false,\n  module         : false,\n  notDeepEqual   : false,\n  notEqual       : false,\n  notPropEqual   : false,\n  notStrictEqual : false,\n  ok             : false,\n  propEqual      : false,\n  QUnit          : false,\n  raises         : false,\n  start          : false,\n  stop           : false,\n  strictEqual    : false,\n  test           : false,\n  \"throws\"       : false\n};\n\nexports.rhino = {\n  defineClass  : false,\n  deserialize  : false,\n  gc           : false,\n  help         : false,\n  importClass  : false,\n  importPackage: false,\n  \"java\"       : false,\n  load         : false,\n  loadClass    : false,\n  Packages     : false,\n  print        : false,\n  quit         : false,\n  readFile     : false,\n  readUrl      : false,\n  runCommand   : false,\n  seal         : false,\n  serialize    : false,\n  spawn        : false,\n  sync         : false,\n  toint32      : false,\n  version      : false\n};\n\nexports.shelljs = {\n  target       : false,\n  echo         : false,\n  exit         : false,\n  cd           : false,\n  pwd          : false,\n  ls           : false,\n  find         : false,\n  cp           : false,\n  rm           : false,\n  mv           : false,\n  mkdir        : false,\n  test         : false,\n  cat          : false,\n  sed          : false,\n  grep         : false,\n  which        : false,\n  dirs         : false,\n  pushd        : false,\n  popd         : false,\n  env          : false,\n  exec         : false,\n  chmod        : false,\n  config       : false,\n  error        : false,\n  tempdir      : false\n};\n\nexports.typed = {\n  ArrayBuffer         : false,\n  ArrayBufferView     : false,\n  DataView            : false,\n  Float32Array        : false,\n  Float64Array        : false,\n  Int16Array          : false,\n  Int32Array          : false,\n  Int8Array           : false,\n  Uint16Array         : false,\n  Uint32Array         : false,\n  Uint8Array          : false,\n  Uint8ClampedArray   : false\n};\n\nexports.wsh = {\n  ActiveXObject            : true,\n  Enumerator               : true,\n  GetObject                : true,\n  ScriptEngine             : true,\n  ScriptEngineBuildVersion : true,\n  ScriptEngineMajorVersion : true,\n  ScriptEngineMinorVersion : true,\n  VBArray                  : true,\n  WSH                      : true,\n  WScript                  : true,\n  XDomainRequest           : true\n};\n\nexports.dojo = {\n  dojo     : false,\n  dijit    : false,\n  dojox    : false,\n  define   : false,\n  \"require\": false\n};\n\nexports.jquery = {\n  \"$\"    : false,\n  jQuery : false\n};\n\nexports.mootools = {\n  \"$\"           : false,\n  \"$$\"          : false,\n  Asset         : false,\n  Browser       : false,\n  Chain         : false,\n  Class         : false,\n  Color         : false,\n  Cookie        : false,\n  Core          : false,\n  Document      : false,\n  DomReady      : false,\n  DOMEvent      : false,\n  DOMReady      : false,\n  Drag          : false,\n  Element       : false,\n  Elements      : false,\n  Event         : false,\n  Events        : false,\n  Fx            : false,\n  Group         : false,\n  Hash          : false,\n  HtmlTable     : false,\n  IFrame        : false,\n  IframeShim    : false,\n  InputValidator: false,\n  instanceOf    : false,\n  Keyboard      : false,\n  Locale        : false,\n  Mask          : false,\n  MooTools      : false,\n  Native        : false,\n  Options       : false,\n  OverText      : false,\n  Request       : false,\n  Scroller      : false,\n  Slick         : false,\n  Slider        : false,\n  Sortables     : false,\n  Spinner       : false,\n  Swiff         : false,\n  Tips          : false,\n  Type          : false,\n  typeOf        : false,\n  URI           : false,\n  Window        : false\n};\n\nexports.prototypejs = {\n  \"$\"               : false,\n  \"$$\"              : false,\n  \"$A\"              : false,\n  \"$F\"              : false,\n  \"$H\"              : false,\n  \"$R\"              : false,\n  \"$break\"          : false,\n  \"$continue\"       : false,\n  \"$w\"              : false,\n  Abstract          : false,\n  Ajax              : false,\n  Class             : false,\n  Enumerable        : false,\n  Element           : false,\n  Event             : false,\n  Field             : false,\n  Form              : false,\n  Hash              : false,\n  Insertion         : false,\n  ObjectRange       : false,\n  PeriodicalExecuter: false,\n  Position          : false,\n  Prototype         : false,\n  Selector          : false,\n  Template          : false,\n  Toggle            : false,\n  Try               : false,\n  Autocompleter     : false,\n  Builder           : false,\n  Control           : false,\n  Draggable         : false,\n  Draggables        : false,\n  Droppables        : false,\n  Effect            : false,\n  Sortable          : false,\n  SortableObserver  : false,\n  Sound             : false,\n  Scriptaculous     : false\n};\n\nexports.yui = {\n  YUI       : false,\n  Y         : false,\n  YUI_config: false\n};\n\nexports.mocha = {\n  mocha       : false,\n  describe    : false,\n  xdescribe   : false,\n  it          : false,\n  xit         : false,\n  context     : false,\n  xcontext    : false,\n  before      : false,\n  after       : false,\n  beforeEach  : false,\n  afterEach   : false,\n  suite         : false,\n  test          : false,\n  setup         : false,\n  teardown      : false,\n  suiteSetup    : false,\n  suiteTeardown : false\n};\n\nexports.jasmine = {\n  jasmine     : false,\n  describe    : false,\n  xdescribe   : false,\n  it          : false,\n  xit         : false,\n  beforeEach  : false,\n  afterEach   : false,\n  setFixtures : false,\n  loadFixtures: false,\n  spyOn       : false,\n  expect      : false,\n  runs        : false,\n  waitsFor    : false,\n  waits       : false,\n  beforeAll   : false,\n  afterAll    : false,\n  fail        : false,\n  fdescribe   : false,\n  fit         : false,\n  pending     : false\n};\n\n},{}]},{},[\"/node_modules/jshint/src/jshint.js\"]);\n\n});\n\nace.define(\"ace/mode/javascript_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/javascript/jshint\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar Mirror = require(\"../worker/mirror\").Mirror;\nvar lint = require(\"./javascript/jshint\").JSHINT;\n\nfunction startRegex(arr) {\n    return RegExp(\"^(\" + arr.join(\"|\") + \")\");\n}\n\nvar disabledWarningsRe = startRegex([\n    \"Bad for in variable '(.+)'.\",\n    'Missing \"use strict\"'\n]);\nvar errorsRe = startRegex([\n    \"Unexpected\",\n    \"Expected \",\n    \"Confusing (plus|minus)\",\n    \"\\\\{a\\\\} unterminated regular expression\",\n    \"Unclosed \",\n    \"Unmatched \",\n    \"Unbegun comment\",\n    \"Bad invocation\",\n    \"Missing space after\",\n    \"Missing operator at\"\n]);\nvar infoRe = startRegex([\n    \"Expected an assignment\",\n    \"Bad escapement of EOL\",\n    \"Unexpected comma\",\n    \"Unexpected space\",\n    \"Missing radix parameter.\",\n    \"A leading decimal point can\",\n    \"\\\\['{a}'\\\\] is better written in dot notation.\",\n    \"'{a}' used out of scope\"\n]);\n\nvar JavaScriptWorker = exports.JavaScriptWorker = function(sender) {\n    Mirror.call(this, sender);\n    this.setTimeout(500);\n    this.setOptions();\n};\n\noop.inherits(JavaScriptWorker, Mirror);\n\n(function() {\n    this.setOptions = function(options) {\n        this.options = options || {\n            esnext: true,\n            moz: true,\n            devel: true,\n            browser: true,\n            node: true,\n            laxcomma: true,\n            laxbreak: true,\n            lastsemic: true,\n            onevar: false,\n            passfail: false,\n            maxerr: 100,\n            expr: true,\n            multistr: true,\n            globalstrict: true\n        };\n        this.doc.getValue() && this.deferredUpdate.schedule(100);\n    };\n\n    this.changeOptions = function(newOptions) {\n        oop.mixin(this.options, newOptions);\n        this.doc.getValue() && this.deferredUpdate.schedule(100);\n    };\n\n    this.isValidJS = function(str) {\n        try {\n            eval(\"throw 0;\" + str);\n        } catch(e) {\n            if (e === 0)\n                return true;\n        }\n        return false\n    };\n\n    this.onUpdate = function() {\n        var value = this.doc.getValue();\n        value = value.replace(/^#!.*\\n/, \"\\n\");\n        if (!value)\n            return this.sender.emit(\"annotate\", []);\n\n        var errors = [];\n        var maxErrorLevel = this.isValidJS(value) ? \"warning\" : \"error\";\n        lint(value, this.options, this.options.globals);\n        var results = lint.errors;\n\n        var errorAdded = false\n        for (var i = 0; i < results.length; i++) {\n            var error = results[i];\n            if (!error)\n                continue;\n            var raw = error.raw;\n            var type = \"warning\";\n\n            if (raw == \"Missing semicolon.\") {\n                var str = error.evidence.substr(error.character);\n                str = str.charAt(str.search(/\\S/));\n                if (maxErrorLevel == \"error\" && str && /[\\w\\d{(['\"]/.test(str)) {\n                    error.reason = 'Missing \";\" before statement';\n                    type = \"error\";\n                } else {\n                    type = \"info\";\n                }\n            }\n            else if (disabledWarningsRe.test(raw)) {\n                continue;\n            }\n            else if (infoRe.test(raw)) {\n                type = \"info\"\n            }\n            else if (errorsRe.test(raw)) {\n                errorAdded  = true;\n                type = maxErrorLevel;\n            }\n            else if (raw == \"'{a}' is not defined.\") {\n                type = \"warning\";\n            }\n            else if (raw == \"'{a}' is defined but never used.\") {\n                type = \"info\";\n            }\n\n            errors.push({\n                row: error.line-1,\n                column: error.character-1,\n                text: error.reason,\n                type: type,\n                raw: raw\n            });\n\n            if (errorAdded) {\n            }\n        }\n\n        this.sender.emit(\"annotate\", errors);\n    };\n\n}).call(JavaScriptWorker.prototype);\n\n});\n\nace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\nfunction Empty() {}\n\nif (!Function.prototype.bind) {\n    Function.prototype.bind = function bind(that) { // .length is 1\n        var target = this;\n        if (typeof target != \"function\") {\n            throw new TypeError(\"Function.prototype.bind called on incompatible \" + target);\n        }\n        var args = slice.call(arguments, 1); // for normal call\n        var bound = function () {\n\n            if (this instanceof bound) {\n\n                var result = target.apply(\n                    this,\n                    args.concat(slice.call(arguments))\n                );\n                if (Object(result) === result) {\n                    return result;\n                }\n                return this;\n\n            } else {\n                return target.apply(\n                    that,\n                    args.concat(slice.call(arguments))\n                );\n\n            }\n\n        };\n        if(target.prototype) {\n            Empty.prototype = target.prototype;\n            bound.prototype = new Empty();\n            Empty.prototype = null;\n        }\n        return bound;\n    };\n}\nvar call = Function.prototype.call;\nvar prototypeOfArray = Array.prototype;\nvar prototypeOfObject = Object.prototype;\nvar slice = prototypeOfArray.slice;\nvar _toString = call.bind(prototypeOfObject.toString);\nvar owns = call.bind(prototypeOfObject.hasOwnProperty);\nvar defineGetter;\nvar defineSetter;\nvar lookupGetter;\nvar lookupSetter;\nvar supportsAccessors;\nif ((supportsAccessors = owns(prototypeOfObject, \"__defineGetter__\"))) {\n    defineGetter = call.bind(prototypeOfObject.__defineGetter__);\n    defineSetter = call.bind(prototypeOfObject.__defineSetter__);\n    lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);\n    lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);\n}\nif ([1,2].splice(0).length != 2) {\n    if(function() { // test IE < 9 to splice bug - see issue #138\n        function makeArray(l) {\n            var a = new Array(l+2);\n            a[0] = a[1] = 0;\n            return a;\n        }\n        var array = [], lengthBefore;\n        \n        array.splice.apply(array, makeArray(20));\n        array.splice.apply(array, makeArray(26));\n\n        lengthBefore = array.length; //46\n        array.splice(5, 0, \"XXX\"); // add one element\n\n        lengthBefore + 1 == array.length\n\n        if (lengthBefore + 1 == array.length) {\n            return true;// has right splice implementation without bugs\n        }\n    }()) {//IE 6/7\n        var array_splice = Array.prototype.splice;\n        Array.prototype.splice = function(start, deleteCount) {\n            if (!arguments.length) {\n                return [];\n            } else {\n                return array_splice.apply(this, [\n                    start === void 0 ? 0 : start,\n                    deleteCount === void 0 ? (this.length - start) : deleteCount\n                ].concat(slice.call(arguments, 2)))\n            }\n        };\n    } else {//IE8\n        Array.prototype.splice = function(pos, removeCount){\n            var length = this.length;\n            if (pos > 0) {\n                if (pos > length)\n                    pos = length;\n            } else if (pos == void 0) {\n                pos = 0;\n            } else if (pos < 0) {\n                pos = Math.max(length + pos, 0);\n            }\n\n            if (!(pos+removeCount < length))\n                removeCount = length - pos;\n\n            var removed = this.slice(pos, pos+removeCount);\n            var insert = slice.call(arguments, 2);\n            var add = insert.length;            \n            if (pos === length) {\n                if (add) {\n                    this.push.apply(this, insert);\n                }\n            } else {\n                var remove = Math.min(removeCount, length - pos);\n                var tailOldPos = pos + remove;\n                var tailNewPos = tailOldPos + add - remove;\n                var tailCount = length - tailOldPos;\n                var lengthAfterRemove = length - remove;\n\n                if (tailNewPos < tailOldPos) { // case A\n                    for (var i = 0; i < tailCount; ++i) {\n                        this[tailNewPos+i] = this[tailOldPos+i];\n                    }\n                } else if (tailNewPos > tailOldPos) { // case B\n                    for (i = tailCount; i--; ) {\n                        this[tailNewPos+i] = this[tailOldPos+i];\n                    }\n                } // else, add == remove (nothing to do)\n\n                if (add && pos === lengthAfterRemove) {\n                    this.length = lengthAfterRemove; // truncate array\n                    this.push.apply(this, insert);\n                } else {\n                    this.length = lengthAfterRemove + add; // reserves space\n                    for (i = 0; i < add; ++i) {\n                        this[pos+i] = insert[i];\n                    }\n                }\n            }\n            return removed;\n        };\n    }\n}\nif (!Array.isArray) {\n    Array.isArray = function isArray(obj) {\n        return _toString(obj) == \"[object Array]\";\n    };\n}\nvar boxedString = Object(\"a\"),\n    splitString = boxedString[0] != \"a\" || !(0 in boxedString);\n\nif (!Array.prototype.forEach) {\n    Array.prototype.forEach = function forEach(fun /*, thisp*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            thisp = arguments[1],\n            i = -1,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(); // TODO message\n        }\n\n        while (++i < length) {\n            if (i in self) {\n                fun.call(thisp, self[i], i, object);\n            }\n        }\n    };\n}\nif (!Array.prototype.map) {\n    Array.prototype.map = function map(fun /*, thisp*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            result = Array(length),\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self)\n                result[i] = fun.call(thisp, self[i], i, object);\n        }\n        return result;\n    };\n}\nif (!Array.prototype.filter) {\n    Array.prototype.filter = function filter(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                    object,\n            length = self.length >>> 0,\n            result = [],\n            value,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self) {\n                value = self[i];\n                if (fun.call(thisp, value, i, object)) {\n                    result.push(value);\n                }\n            }\n        }\n        return result;\n    };\n}\nif (!Array.prototype.every) {\n    Array.prototype.every = function every(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self && !fun.call(thisp, self[i], i, object)) {\n                return false;\n            }\n        }\n        return true;\n    };\n}\nif (!Array.prototype.some) {\n    Array.prototype.some = function some(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self && fun.call(thisp, self[i], i, object)) {\n                return true;\n            }\n        }\n        return false;\n    };\n}\nif (!Array.prototype.reduce) {\n    Array.prototype.reduce = function reduce(fun /*, initial*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n        if (!length && arguments.length == 1) {\n            throw new TypeError(\"reduce of empty array with no initial value\");\n        }\n\n        var i = 0;\n        var result;\n        if (arguments.length >= 2) {\n            result = arguments[1];\n        } else {\n            do {\n                if (i in self) {\n                    result = self[i++];\n                    break;\n                }\n                if (++i >= length) {\n                    throw new TypeError(\"reduce of empty array with no initial value\");\n                }\n            } while (true);\n        }\n\n        for (; i < length; i++) {\n            if (i in self) {\n                result = fun.call(void 0, result, self[i], i, object);\n            }\n        }\n\n        return result;\n    };\n}\nif (!Array.prototype.reduceRight) {\n    Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n        if (!length && arguments.length == 1) {\n            throw new TypeError(\"reduceRight of empty array with no initial value\");\n        }\n\n        var result, i = length - 1;\n        if (arguments.length >= 2) {\n            result = arguments[1];\n        } else {\n            do {\n                if (i in self) {\n                    result = self[i--];\n                    break;\n                }\n                if (--i < 0) {\n                    throw new TypeError(\"reduceRight of empty array with no initial value\");\n                }\n            } while (true);\n        }\n\n        do {\n            if (i in this) {\n                result = fun.call(void 0, result, self[i], i, object);\n            }\n        } while (i--);\n\n        return result;\n    };\n}\nif (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {\n    Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {\n        var self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                toObject(this),\n            length = self.length >>> 0;\n\n        if (!length) {\n            return -1;\n        }\n\n        var i = 0;\n        if (arguments.length > 1) {\n            i = toInteger(arguments[1]);\n        }\n        i = i >= 0 ? i : Math.max(0, length + i);\n        for (; i < length; i++) {\n            if (i in self && self[i] === sought) {\n                return i;\n            }\n        }\n        return -1;\n    };\n}\nif (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {\n    Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {\n        var self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                toObject(this),\n            length = self.length >>> 0;\n\n        if (!length) {\n            return -1;\n        }\n        var i = length - 1;\n        if (arguments.length > 1) {\n            i = Math.min(i, toInteger(arguments[1]));\n        }\n        i = i >= 0 ? i : length - Math.abs(i);\n        for (; i >= 0; i--) {\n            if (i in self && sought === self[i]) {\n                return i;\n            }\n        }\n        return -1;\n    };\n}\nif (!Object.getPrototypeOf) {\n    Object.getPrototypeOf = function getPrototypeOf(object) {\n        return object.__proto__ || (\n            object.constructor ?\n            object.constructor.prototype :\n            prototypeOfObject\n        );\n    };\n}\nif (!Object.getOwnPropertyDescriptor) {\n    var ERR_NON_OBJECT = \"Object.getOwnPropertyDescriptor called on a \" +\n                         \"non-object: \";\n    Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n        if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n            throw new TypeError(ERR_NON_OBJECT + object);\n        if (!owns(object, property))\n            return;\n\n        var descriptor, getter, setter;\n        descriptor =  { enumerable: true, configurable: true };\n        if (supportsAccessors) {\n            var prototype = object.__proto__;\n            object.__proto__ = prototypeOfObject;\n\n            var getter = lookupGetter(object, property);\n            var setter = lookupSetter(object, property);\n            object.__proto__ = prototype;\n\n            if (getter || setter) {\n                if (getter) descriptor.get = getter;\n                if (setter) descriptor.set = setter;\n                return descriptor;\n            }\n        }\n        descriptor.value = object[property];\n        return descriptor;\n    };\n}\nif (!Object.getOwnPropertyNames) {\n    Object.getOwnPropertyNames = function getOwnPropertyNames(object) {\n        return Object.keys(object);\n    };\n}\nif (!Object.create) {\n    var createEmpty;\n    if (Object.prototype.__proto__ === null) {\n        createEmpty = function () {\n            return { \"__proto__\": null };\n        };\n    } else {\n        createEmpty = function () {\n            var empty = {};\n            for (var i in empty)\n                empty[i] = null;\n            empty.constructor =\n            empty.hasOwnProperty =\n            empty.propertyIsEnumerable =\n            empty.isPrototypeOf =\n            empty.toLocaleString =\n            empty.toString =\n            empty.valueOf =\n            empty.__proto__ = null;\n            return empty;\n        }\n    }\n\n    Object.create = function create(prototype, properties) {\n        var object;\n        if (prototype === null) {\n            object = createEmpty();\n        } else {\n            if (typeof prototype != \"object\")\n                throw new TypeError(\"typeof prototype[\"+(typeof prototype)+\"] != 'object'\");\n            var Type = function () {};\n            Type.prototype = prototype;\n            object = new Type();\n            object.__proto__ = prototype;\n        }\n        if (properties !== void 0)\n            Object.defineProperties(object, properties);\n        return object;\n    };\n}\n\nfunction doesDefinePropertyWork(object) {\n    try {\n        Object.defineProperty(object, \"sentinel\", {});\n        return \"sentinel\" in object;\n    } catch (exception) {\n    }\n}\nif (Object.defineProperty) {\n    var definePropertyWorksOnObject = doesDefinePropertyWork({});\n    var definePropertyWorksOnDom = typeof document == \"undefined\" ||\n        doesDefinePropertyWork(document.createElement(\"div\"));\n    if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {\n        var definePropertyFallback = Object.defineProperty;\n    }\n}\n\nif (!Object.defineProperty || definePropertyFallback) {\n    var ERR_NON_OBJECT_DESCRIPTOR = \"Property description must be an object: \";\n    var ERR_NON_OBJECT_TARGET = \"Object.defineProperty called on non-object: \"\n    var ERR_ACCESSORS_NOT_SUPPORTED = \"getters & setters can not be defined \" +\n                                      \"on this javascript engine\";\n\n    Object.defineProperty = function defineProperty(object, property, descriptor) {\n        if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n            throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n        if ((typeof descriptor != \"object\" && typeof descriptor != \"function\") || descriptor === null)\n            throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n        if (definePropertyFallback) {\n            try {\n                return definePropertyFallback.call(Object, object, property, descriptor);\n            } catch (exception) {\n            }\n        }\n        if (owns(descriptor, \"value\")) {\n\n            if (supportsAccessors && (lookupGetter(object, property) ||\n                                      lookupSetter(object, property)))\n            {\n                var prototype = object.__proto__;\n                object.__proto__ = prototypeOfObject;\n                delete object[property];\n                object[property] = descriptor.value;\n                object.__proto__ = prototype;\n            } else {\n                object[property] = descriptor.value;\n            }\n        } else {\n            if (!supportsAccessors)\n                throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n            if (owns(descriptor, \"get\"))\n                defineGetter(object, property, descriptor.get);\n            if (owns(descriptor, \"set\"))\n                defineSetter(object, property, descriptor.set);\n        }\n\n        return object;\n    };\n}\nif (!Object.defineProperties) {\n    Object.defineProperties = function defineProperties(object, properties) {\n        for (var property in properties) {\n            if (owns(properties, property))\n                Object.defineProperty(object, property, properties[property]);\n        }\n        return object;\n    };\n}\nif (!Object.seal) {\n    Object.seal = function seal(object) {\n        return object;\n    };\n}\nif (!Object.freeze) {\n    Object.freeze = function freeze(object) {\n        return object;\n    };\n}\ntry {\n    Object.freeze(function () {});\n} catch (exception) {\n    Object.freeze = (function freeze(freezeObject) {\n        return function freeze(object) {\n            if (typeof object == \"function\") {\n                return object;\n            } else {\n                return freezeObject(object);\n            }\n        };\n    })(Object.freeze);\n}\nif (!Object.preventExtensions) {\n    Object.preventExtensions = function preventExtensions(object) {\n        return object;\n    };\n}\nif (!Object.isSealed) {\n    Object.isSealed = function isSealed(object) {\n        return false;\n    };\n}\nif (!Object.isFrozen) {\n    Object.isFrozen = function isFrozen(object) {\n        return false;\n    };\n}\nif (!Object.isExtensible) {\n    Object.isExtensible = function isExtensible(object) {\n        if (Object(object) === object) {\n            throw new TypeError(); // TODO message\n        }\n        var name = '';\n        while (owns(object, name)) {\n            name += '?';\n        }\n        object[name] = true;\n        var returnValue = owns(object, name);\n        delete object[name];\n        return returnValue;\n    };\n}\nif (!Object.keys) {\n    var hasDontEnumBug = true,\n        dontEnums = [\n            \"toString\",\n            \"toLocaleString\",\n            \"valueOf\",\n            \"hasOwnProperty\",\n            \"isPrototypeOf\",\n            \"propertyIsEnumerable\",\n            \"constructor\"\n        ],\n        dontEnumsLength = dontEnums.length;\n\n    for (var key in {\"toString\": null}) {\n        hasDontEnumBug = false;\n    }\n\n    Object.keys = function keys(object) {\n\n        if (\n            (typeof object != \"object\" && typeof object != \"function\") ||\n            object === null\n        ) {\n            throw new TypeError(\"Object.keys called on a non-object\");\n        }\n\n        var keys = [];\n        for (var name in object) {\n            if (owns(object, name)) {\n                keys.push(name);\n            }\n        }\n\n        if (hasDontEnumBug) {\n            for (var i = 0, ii = dontEnumsLength; i < ii; i++) {\n                var dontEnum = dontEnums[i];\n                if (owns(object, dontEnum)) {\n                    keys.push(dontEnum);\n                }\n            }\n        }\n        return keys;\n    };\n\n}\nif (!Date.now) {\n    Date.now = function now() {\n        return new Date().getTime();\n    };\n}\nvar ws = \"\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\" +\n    \"\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\" +\n    \"\\u2029\\uFEFF\";\nif (!String.prototype.trim || ws.trim()) {\n    ws = \"[\" + ws + \"]\";\n    var trimBeginRegexp = new RegExp(\"^\" + ws + ws + \"*\"),\n        trimEndRegexp = new RegExp(ws + ws + \"*$\");\n    String.prototype.trim = function trim() {\n        return String(this).replace(trimBeginRegexp, \"\").replace(trimEndRegexp, \"\");\n    };\n}\n\nfunction toInteger(n) {\n    n = +n;\n    if (n !== n) { // isNaN\n        n = 0;\n    } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {\n        n = (n > 0 || -1) * Math.floor(Math.abs(n));\n    }\n    return n;\n}\n\nfunction isPrimitive(input) {\n    var type = typeof input;\n    return (\n        input === null ||\n        type === \"undefined\" ||\n        type === \"boolean\" ||\n        type === \"number\" ||\n        type === \"string\"\n    );\n}\n\nfunction toPrimitive(input) {\n    var val, valueOf, toString;\n    if (isPrimitive(input)) {\n        return input;\n    }\n    valueOf = input.valueOf;\n    if (typeof valueOf === \"function\") {\n        val = valueOf.call(input);\n        if (isPrimitive(val)) {\n            return val;\n        }\n    }\n    toString = input.toString;\n    if (typeof toString === \"function\") {\n        val = toString.call(input);\n        if (isPrimitive(val)) {\n            return val;\n        }\n    }\n    throw new TypeError();\n}\nvar toObject = function (o) {\n    if (o == null) { // this matches both null and undefined\n        throw new TypeError(\"can't convert \"+o+\" to object\");\n    }\n    return Object(o);\n};\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/worker-json.js",
    "content": "\"no use strict\";\n;(function(window) {\nif (typeof window.window != \"undefined\" && window.document)\n    return;\nif (window.require && window.define)\n    return;\n\nif (!window.console) {\n    window.console = function() {\n        var msgs = Array.prototype.slice.call(arguments, 0);\n        postMessage({type: \"log\", data: msgs});\n    };\n    window.console.error =\n    window.console.warn = \n    window.console.log =\n    window.console.trace = window.console;\n}\nwindow.window = window;\nwindow.ace = window;\n\nwindow.onerror = function(message, file, line, col, err) {\n    postMessage({type: \"error\", data: {\n        message: message,\n        data: err.data,\n        file: file,\n        line: line, \n        col: col,\n        stack: err.stack\n    }});\n};\n\nwindow.normalizeModule = function(parentId, moduleName) {\n    // normalize plugin requires\n    if (moduleName.indexOf(\"!\") !== -1) {\n        var chunks = moduleName.split(\"!\");\n        return window.normalizeModule(parentId, chunks[0]) + \"!\" + window.normalizeModule(parentId, chunks[1]);\n    }\n    // normalize relative requires\n    if (moduleName.charAt(0) == \".\") {\n        var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n        moduleName = (base ? base + \"/\" : \"\") + moduleName;\n        \n        while (moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n            var previous = moduleName;\n            moduleName = moduleName.replace(/^\\.\\//, \"\").replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n        }\n    }\n    \n    return moduleName;\n};\n\nwindow.require = function require(parentId, id) {\n    if (!id) {\n        id = parentId;\n        parentId = null;\n    }\n    if (!id.charAt)\n        throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");\n\n    id = window.normalizeModule(parentId, id);\n\n    var module = window.require.modules[id];\n    if (module) {\n        if (!module.initialized) {\n            module.initialized = true;\n            module.exports = module.factory().exports;\n        }\n        return module.exports;\n    }\n   \n    if (!window.require.tlns)\n        return console.log(\"unable to load \" + id);\n    \n    var path = resolveModuleId(id, window.require.tlns);\n    if (path.slice(-3) != \".js\") path += \".js\";\n    \n    window.require.id = id;\n    window.require.modules[id] = {}; // prevent infinite loop on broken modules\n    importScripts(path);\n    return window.require(parentId, id);\n};\nfunction resolveModuleId(id, paths) {\n    var testPath = id, tail = \"\";\n    while (testPath) {\n        var alias = paths[testPath];\n        if (typeof alias == \"string\") {\n            return alias + tail;\n        } else if (alias) {\n            return  alias.location.replace(/\\/*$/, \"/\") + (tail || alias.main || alias.name);\n        } else if (alias === false) {\n            return \"\";\n        }\n        var i = testPath.lastIndexOf(\"/\");\n        if (i === -1) break;\n        tail = testPath.substr(i) + tail;\n        testPath = testPath.slice(0, i);\n    }\n    return id;\n}\nwindow.require.modules = {};\nwindow.require.tlns = {};\n\nwindow.define = function(id, deps, factory) {\n    if (arguments.length == 2) {\n        factory = deps;\n        if (typeof id != \"string\") {\n            deps = id;\n            id = window.require.id;\n        }\n    } else if (arguments.length == 1) {\n        factory = id;\n        deps = [];\n        id = window.require.id;\n    }\n    \n    if (typeof factory != \"function\") {\n        window.require.modules[id] = {\n            exports: factory,\n            initialized: true\n        };\n        return;\n    }\n\n    if (!deps.length)\n        // If there is no dependencies, we inject \"require\", \"exports\" and\n        // \"module\" as dependencies, to provide CommonJS compatibility.\n        deps = [\"require\", \"exports\", \"module\"];\n\n    var req = function(childId) {\n        return window.require(id, childId);\n    };\n\n    window.require.modules[id] = {\n        exports: {},\n        factory: function() {\n            var module = this;\n            var returnExports = factory.apply(this, deps.map(function(dep) {\n                switch (dep) {\n                    // Because \"require\", \"exports\" and \"module\" aren't actual\n                    // dependencies, we must handle them seperately.\n                    case \"require\": return req;\n                    case \"exports\": return module.exports;\n                    case \"module\":  return module;\n                    // But for all other dependencies, we can just go ahead and\n                    // require them.\n                    default:        return req(dep);\n                }\n            }));\n            if (returnExports)\n                module.exports = returnExports;\n            return module;\n        }\n    };\n};\nwindow.define.amd = {};\nrequire.tlns = {};\nwindow.initBaseUrls  = function initBaseUrls(topLevelNamespaces) {\n    for (var i in topLevelNamespaces)\n        require.tlns[i] = topLevelNamespaces[i];\n};\n\nwindow.initSender = function initSender() {\n\n    var EventEmitter = window.require(\"ace/lib/event_emitter\").EventEmitter;\n    var oop = window.require(\"ace/lib/oop\");\n    \n    var Sender = function() {};\n    \n    (function() {\n        \n        oop.implement(this, EventEmitter);\n                \n        this.callback = function(data, callbackId) {\n            postMessage({\n                type: \"call\",\n                id: callbackId,\n                data: data\n            });\n        };\n    \n        this.emit = function(name, data) {\n            postMessage({\n                type: \"event\",\n                name: name,\n                data: data\n            });\n        };\n        \n    }).call(Sender.prototype);\n    \n    return new Sender();\n};\n\nvar main = window.main = null;\nvar sender = window.sender = null;\n\nwindow.onmessage = function(e) {\n    var msg = e.data;\n    if (msg.event && sender) {\n        sender._signal(msg.event, msg.data);\n    }\n    else if (msg.command) {\n        if (main[msg.command])\n            main[msg.command].apply(main, msg.args);\n        else if (window[msg.command])\n            window[msg.command].apply(window, msg.args);\n        else\n            throw new Error(\"Unknown command:\" + msg.command);\n    }\n    else if (msg.init) {\n        window.initBaseUrls(msg.tlns);\n        require(\"ace/lib/es5-shim\");\n        sender = window.sender = window.initSender();\n        var clazz = require(msg.module)[msg.classname];\n        main = window.main = new clazz(sender);\n    }\n};\n})(this);\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.inherits = function(ctor, superCtor) {\n    ctor.super_ = superCtor;\n    ctor.prototype = Object.create(superCtor.prototype, {\n        constructor: {\n            value: ctor,\n            enumerable: false,\n            writable: true,\n            configurable: true\n        }\n    });\n};\n\nexports.mixin = function(obj, mixin) {\n    for (var key in mixin) {\n        obj[key] = mixin[key];\n    }\n    return obj;\n};\n\nexports.implement = function(proto, mixin) {\n    exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/range\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\nvar comparePoints = function(p1, p2) {\n    return p1.row - p2.row || p1.column - p2.column;\n};\nvar Range = function(startRow, startColumn, endRow, endColumn) {\n    this.start = {\n        row: startRow,\n        column: startColumn\n    };\n\n    this.end = {\n        row: endRow,\n        column: endColumn\n    };\n};\n\n(function() {\n    this.isEqual = function(range) {\n        return this.start.row === range.start.row &&\n            this.end.row === range.end.row &&\n            this.start.column === range.start.column &&\n            this.end.column === range.end.column;\n    };\n    this.toString = function() {\n        return (\"Range: [\" + this.start.row + \"/\" + this.start.column +\n            \"] -> [\" + this.end.row + \"/\" + this.end.column + \"]\");\n    };\n\n    this.contains = function(row, column) {\n        return this.compare(row, column) == 0;\n    };\n    this.compareRange = function(range) {\n        var cmp,\n            end = range.end,\n            start = range.start;\n\n        cmp = this.compare(end.row, end.column);\n        if (cmp == 1) {\n            cmp = this.compare(start.row, start.column);\n            if (cmp == 1) {\n                return 2;\n            } else if (cmp == 0) {\n                return 1;\n            } else {\n                return 0;\n            }\n        } else if (cmp == -1) {\n            return -2;\n        } else {\n            cmp = this.compare(start.row, start.column);\n            if (cmp == -1) {\n                return -1;\n            } else if (cmp == 1) {\n                return 42;\n            } else {\n                return 0;\n            }\n        }\n    };\n    this.comparePoint = function(p) {\n        return this.compare(p.row, p.column);\n    };\n    this.containsRange = function(range) {\n        return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n    };\n    this.intersects = function(range) {\n        var cmp = this.compareRange(range);\n        return (cmp == -1 || cmp == 0 || cmp == 1);\n    };\n    this.isEnd = function(row, column) {\n        return this.end.row == row && this.end.column == column;\n    };\n    this.isStart = function(row, column) {\n        return this.start.row == row && this.start.column == column;\n    };\n    this.setStart = function(row, column) {\n        if (typeof row == \"object\") {\n            this.start.column = row.column;\n            this.start.row = row.row;\n        } else {\n            this.start.row = row;\n            this.start.column = column;\n        }\n    };\n    this.setEnd = function(row, column) {\n        if (typeof row == \"object\") {\n            this.end.column = row.column;\n            this.end.row = row.row;\n        } else {\n            this.end.row = row;\n            this.end.column = column;\n        }\n    };\n    this.inside = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isEnd(row, column) || this.isStart(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.insideStart = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isEnd(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.insideEnd = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isStart(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.compare = function(row, column) {\n        if (!this.isMultiLine()) {\n            if (row === this.start.row) {\n                return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n            }\n        }\n\n        if (row < this.start.row)\n            return -1;\n\n        if (row > this.end.row)\n            return 1;\n\n        if (this.start.row === row)\n            return column >= this.start.column ? 0 : -1;\n\n        if (this.end.row === row)\n            return column <= this.end.column ? 0 : 1;\n\n        return 0;\n    };\n    this.compareStart = function(row, column) {\n        if (this.start.row == row && this.start.column == column) {\n            return -1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.compareEnd = function(row, column) {\n        if (this.end.row == row && this.end.column == column) {\n            return 1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.compareInside = function(row, column) {\n        if (this.end.row == row && this.end.column == column) {\n            return 1;\n        } else if (this.start.row == row && this.start.column == column) {\n            return -1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.clipRows = function(firstRow, lastRow) {\n        if (this.end.row > lastRow)\n            var end = {row: lastRow + 1, column: 0};\n        else if (this.end.row < firstRow)\n            var end = {row: firstRow, column: 0};\n\n        if (this.start.row > lastRow)\n            var start = {row: lastRow + 1, column: 0};\n        else if (this.start.row < firstRow)\n            var start = {row: firstRow, column: 0};\n\n        return Range.fromPoints(start || this.start, end || this.end);\n    };\n    this.extend = function(row, column) {\n        var cmp = this.compare(row, column);\n\n        if (cmp == 0)\n            return this;\n        else if (cmp == -1)\n            var start = {row: row, column: column};\n        else\n            var end = {row: row, column: column};\n\n        return Range.fromPoints(start || this.start, end || this.end);\n    };\n\n    this.isEmpty = function() {\n        return (this.start.row === this.end.row && this.start.column === this.end.column);\n    };\n    this.isMultiLine = function() {\n        return (this.start.row !== this.end.row);\n    };\n    this.clone = function() {\n        return Range.fromPoints(this.start, this.end);\n    };\n    this.collapseRows = function() {\n        if (this.end.column == 0)\n            return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)\n        else\n            return new Range(this.start.row, 0, this.end.row, 0)\n    };\n    this.toScreenRange = function(session) {\n        var screenPosStart = session.documentToScreenPosition(this.start);\n        var screenPosEnd = session.documentToScreenPosition(this.end);\n\n        return new Range(\n            screenPosStart.row, screenPosStart.column,\n            screenPosEnd.row, screenPosEnd.column\n        );\n    };\n    this.moveBy = function(row, column) {\n        this.start.row += row;\n        this.start.column += column;\n        this.end.row += row;\n        this.end.column += column;\n    };\n\n}).call(Range.prototype);\nRange.fromPoints = function(start, end) {\n    return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\n\nRange.comparePoints = function(p1, p2) {\n    return p1.row - p2.row || p1.column - p2.column;\n};\n\n\nexports.Range = Range;\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nfunction throwDeltaError(delta, errorText){\n    console.log(\"Invalid Delta:\", delta);\n    throw \"Invalid Delta: \" + errorText;\n}\n\nfunction positionInDocument(docLines, position) {\n    return position.row    >= 0 && position.row    <  docLines.length &&\n           position.column >= 0 && position.column <= docLines[position.row].length;\n}\n\nfunction validateDelta(docLines, delta) {\n    if (delta.action != \"insert\" && delta.action != \"remove\")\n        throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n    if (!(delta.lines instanceof Array))\n        throwDeltaError(delta, \"delta.lines must be an Array\");\n    if (!delta.start || !delta.end)\n       throwDeltaError(delta, \"delta.start/end must be an present\");\n    var start = delta.start;\n    if (!positionInDocument(docLines, delta.start))\n        throwDeltaError(delta, \"delta.start must be contained in document\");\n    var end = delta.end;\n    if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n        throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n    var numRangeRows = end.row - start.row;\n    var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n    if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n        throwDeltaError(delta, \"delta.range must match delta lines\");\n}\n\nexports.applyDelta = function(docLines, delta, doNotValidate) {\n    \n    var row = delta.start.row;\n    var startColumn = delta.start.column;\n    var line = docLines[row] || \"\";\n    switch (delta.action) {\n        case \"insert\":\n            var lines = delta.lines;\n            if (lines.length === 1) {\n                docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n            } else {\n                var args = [row, 1].concat(delta.lines);\n                docLines.splice.apply(docLines, args);\n                docLines[row] = line.substring(0, startColumn) + docLines[row];\n                docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n            }\n            break;\n        case \"remove\":\n            var endColumn = delta.end.column;\n            var endRow = delta.end.row;\n            if (row === endRow) {\n                docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n            } else {\n                docLines.splice(\n                    row, endRow - row + 1,\n                    line.substring(0, startColumn) + docLines[endRow].substring(endColumn)\n                );\n            }\n            break;\n    }\n}\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar EventEmitter = {};\nvar stopPropagation = function() { this.propagationStopped = true; };\nvar preventDefault = function() { this.defaultPrevented = true; };\n\nEventEmitter._emit =\nEventEmitter._dispatchEvent = function(eventName, e) {\n    this._eventRegistry || (this._eventRegistry = {});\n    this._defaultHandlers || (this._defaultHandlers = {});\n\n    var listeners = this._eventRegistry[eventName] || [];\n    var defaultHandler = this._defaultHandlers[eventName];\n    if (!listeners.length && !defaultHandler)\n        return;\n\n    if (typeof e != \"object\" || !e)\n        e = {};\n\n    if (!e.type)\n        e.type = eventName;\n    if (!e.stopPropagation)\n        e.stopPropagation = stopPropagation;\n    if (!e.preventDefault)\n        e.preventDefault = preventDefault;\n\n    listeners = listeners.slice();\n    for (var i=0; i<listeners.length; i++) {\n        listeners[i](e, this);\n        if (e.propagationStopped)\n            break;\n    }\n    \n    if (defaultHandler && !e.defaultPrevented)\n        return defaultHandler(e, this);\n};\n\n\nEventEmitter._signal = function(eventName, e) {\n    var listeners = (this._eventRegistry || {})[eventName];\n    if (!listeners)\n        return;\n    listeners = listeners.slice();\n    for (var i=0; i<listeners.length; i++)\n        listeners[i](e, this);\n};\n\nEventEmitter.once = function(eventName, callback) {\n    var _self = this;\n    callback && this.addEventListener(eventName, function newCallback() {\n        _self.removeEventListener(eventName, newCallback);\n        callback.apply(null, arguments);\n    });\n};\n\n\nEventEmitter.setDefaultHandler = function(eventName, callback) {\n    var handlers = this._defaultHandlers\n    if (!handlers)\n        handlers = this._defaultHandlers = {_disabled_: {}};\n    \n    if (handlers[eventName]) {\n        var old = handlers[eventName];\n        var disabled = handlers._disabled_[eventName];\n        if (!disabled)\n            handlers._disabled_[eventName] = disabled = [];\n        disabled.push(old);\n        var i = disabled.indexOf(callback);\n        if (i != -1) \n            disabled.splice(i, 1);\n    }\n    handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function(eventName, callback) {\n    var handlers = this._defaultHandlers\n    if (!handlers)\n        return;\n    var disabled = handlers._disabled_[eventName];\n    \n    if (handlers[eventName] == callback) {\n        var old = handlers[eventName];\n        if (disabled)\n            this.setDefaultHandler(eventName, disabled.pop());\n    } else if (disabled) {\n        var i = disabled.indexOf(callback);\n        if (i != -1)\n            disabled.splice(i, 1);\n    }\n};\n\nEventEmitter.on =\nEventEmitter.addEventListener = function(eventName, callback, capturing) {\n    this._eventRegistry = this._eventRegistry || {};\n\n    var listeners = this._eventRegistry[eventName];\n    if (!listeners)\n        listeners = this._eventRegistry[eventName] = [];\n\n    if (listeners.indexOf(callback) == -1)\n        listeners[capturing ? \"unshift\" : \"push\"](callback);\n    return callback;\n};\n\nEventEmitter.off =\nEventEmitter.removeListener =\nEventEmitter.removeEventListener = function(eventName, callback) {\n    this._eventRegistry = this._eventRegistry || {};\n\n    var listeners = this._eventRegistry[eventName];\n    if (!listeners)\n        return;\n\n    var index = listeners.indexOf(callback);\n    if (index !== -1)\n        listeners.splice(index, 1);\n};\n\nEventEmitter.removeAllListeners = function(eventName) {\n    if (this._eventRegistry) this._eventRegistry[eventName] = [];\n};\n\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\n\nvar Anchor = exports.Anchor = function(doc, row, column) {\n    this.$onChange = this.onChange.bind(this);\n    this.attach(doc);\n    \n    if (typeof column == \"undefined\")\n        this.setPosition(row.row, row.column);\n    else\n        this.setPosition(row, column);\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n    this.getPosition = function() {\n        return this.$clipPositionToDocument(this.row, this.column);\n    };\n    this.getDocument = function() {\n        return this.document;\n    };\n    this.$insertRight = false;\n    this.onChange = function(delta) {\n        if (delta.start.row == delta.end.row && delta.start.row != this.row)\n            return;\n\n        if (delta.start.row > this.row)\n            return;\n            \n        var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight);\n        this.setPosition(point.row, point.column, true);\n    };\n    \n    function $pointsInOrder(point1, point2, equalPointsInOrder) {\n        var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n        return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n    }\n            \n    function $getTransformedPoint(delta, point, moveIfEqual) {\n        var deltaIsInsert = delta.action == \"insert\";\n        var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row    - delta.start.row);\n        var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n        var deltaStart = delta.start;\n        var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n        if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n            return {\n                row: point.row,\n                column: point.column\n            };\n        }\n        if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n            return {\n                row: point.row + deltaRowShift,\n                column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n            };\n        }\n        \n        return {\n            row: deltaStart.row,\n            column: deltaStart.column\n        };\n    }\n    this.setPosition = function(row, column, noClip) {\n        var pos;\n        if (noClip) {\n            pos = {\n                row: row,\n                column: column\n            };\n        } else {\n            pos = this.$clipPositionToDocument(row, column);\n        }\n\n        if (this.row == pos.row && this.column == pos.column)\n            return;\n\n        var old = {\n            row: this.row,\n            column: this.column\n        };\n\n        this.row = pos.row;\n        this.column = pos.column;\n        this._signal(\"change\", {\n            old: old,\n            value: pos\n        });\n    };\n    this.detach = function() {\n        this.document.removeEventListener(\"change\", this.$onChange);\n    };\n    this.attach = function(doc) {\n        this.document = doc || this.document;\n        this.document.on(\"change\", this.$onChange);\n    };\n    this.$clipPositionToDocument = function(row, column) {\n        var pos = {};\n\n        if (row >= this.document.getLength()) {\n            pos.row = Math.max(0, this.document.getLength() - 1);\n            pos.column = this.document.getLine(pos.row).length;\n        }\n        else if (row < 0) {\n            pos.row = 0;\n            pos.column = 0;\n        }\n        else {\n            pos.row = row;\n            pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n        }\n\n        if (column < 0)\n            pos.column = 0;\n\n        return pos;\n    };\n\n}).call(Anchor.prototype);\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar applyDelta = require(\"./apply_delta\").applyDelta;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\n\nvar Document = function(textOrLines) {\n    this.$lines = [\"\"];\n    if (textOrLines.length === 0) {\n        this.$lines = [\"\"];\n    } else if (Array.isArray(textOrLines)) {\n        this.insertMergedLines({row: 0, column: 0}, textOrLines);\n    } else {\n        this.insert({row: 0, column:0}, textOrLines);\n    }\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n    this.setValue = function(text) {\n        var len = this.getLength() - 1;\n        this.remove(new Range(0, 0, len, this.getLine(len).length));\n        this.insert({row: 0, column: 0}, text);\n    };\n    this.getValue = function() {\n        return this.getAllLines().join(this.getNewLineCharacter());\n    };\n    this.createAnchor = function(row, column) {\n        return new Anchor(this, row, column);\n    };\n    if (\"aaa\".split(/a/).length === 0) {\n        this.$split = function(text) {\n            return text.replace(/\\r\\n|\\r/g, \"\\n\").split(\"\\n\");\n        };\n    } else {\n        this.$split = function(text) {\n            return text.split(/\\r\\n|\\r|\\n/);\n        };\n    }\n\n\n    this.$detectNewLine = function(text) {\n        var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n        this.$autoNewLine = match ? match[1] : \"\\n\";\n        this._signal(\"changeNewLineMode\");\n    };\n    this.getNewLineCharacter = function() {\n        switch (this.$newLineMode) {\n          case \"windows\":\n            return \"\\r\\n\";\n          case \"unix\":\n            return \"\\n\";\n          default:\n            return this.$autoNewLine || \"\\n\";\n        }\n    };\n\n    this.$autoNewLine = \"\";\n    this.$newLineMode = \"auto\";\n    this.setNewLineMode = function(newLineMode) {\n        if (this.$newLineMode === newLineMode)\n            return;\n\n        this.$newLineMode = newLineMode;\n        this._signal(\"changeNewLineMode\");\n    };\n    this.getNewLineMode = function() {\n        return this.$newLineMode;\n    };\n    this.isNewLine = function(text) {\n        return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n    };\n    this.getLine = function(row) {\n        return this.$lines[row] || \"\";\n    };\n    this.getLines = function(firstRow, lastRow) {\n        return this.$lines.slice(firstRow, lastRow + 1);\n    };\n    this.getAllLines = function() {\n        return this.getLines(0, this.getLength());\n    };\n    this.getLength = function() {\n        return this.$lines.length;\n    };\n    this.getTextRange = function(range) {\n        return this.getLinesForRange(range).join(this.getNewLineCharacter());\n    };\n    this.getLinesForRange = function(range) {\n        var lines;\n        if (range.start.row === range.end.row) {\n            lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n        } else {\n            lines = this.getLines(range.start.row, range.end.row);\n            lines[0] = (lines[0] || \"\").substring(range.start.column);\n            var l = lines.length - 1;\n            if (range.end.row - range.start.row == l)\n                lines[l] = lines[l].substring(0, range.end.column);\n        }\n        return lines;\n    };\n    this.insertLines = function(row, lines) {\n        console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n        return this.insertFullLines(row, lines);\n    };\n    this.removeLines = function(firstRow, lastRow) {\n        console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n        return this.removeFullLines(firstRow, lastRow);\n    };\n    this.insertNewLine = function(position) {\n        console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n        return this.insertMergedLines(position, [\"\", \"\"]);\n    };\n    this.insert = function(position, text) {\n        if (this.getLength() <= 1)\n            this.$detectNewLine(text);\n        \n        return this.insertMergedLines(position, this.$split(text));\n    };\n    this.insertInLine = function(position, text) {\n        var start = this.clippedPos(position.row, position.column);\n        var end = this.pos(position.row, position.column + text.length);\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"insert\",\n            lines: [text]\n        }, true);\n        \n        return this.clonePos(end);\n    };\n    \n    this.clippedPos = function(row, column) {\n        var length = this.getLength();\n        if (row === undefined) {\n            row = length;\n        } else if (row < 0) {\n            row = 0;\n        } else if (row >= length) {\n            row = length - 1;\n            column = undefined;\n        }\n        var line = this.getLine(row);\n        if (column == undefined)\n            column = line.length;\n        column = Math.min(Math.max(column, 0), line.length);\n        return {row: row, column: column};\n    };\n    \n    this.clonePos = function(pos) {\n        return {row: pos.row, column: pos.column};\n    };\n    \n    this.pos = function(row, column) {\n        return {row: row, column: column};\n    };\n    \n    this.$clipPosition = function(position) {\n        var length = this.getLength();\n        if (position.row >= length) {\n            position.row = Math.max(0, length - 1);\n            position.column = this.getLine(length - 1).length;\n        } else {\n            position.row = Math.max(0, position.row);\n            position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n        }\n        return position;\n    };\n    this.insertFullLines = function(row, lines) {\n        row = Math.min(Math.max(row, 0), this.getLength());\n        var column = 0;\n        if (row < this.getLength()) {\n            lines = lines.concat([\"\"]);\n            column = 0;\n        } else {\n            lines = [\"\"].concat(lines);\n            row--;\n            column = this.$lines[row].length;\n        }\n        this.insertMergedLines({row: row, column: column}, lines);\n    };    \n    this.insertMergedLines = function(position, lines) {\n        var start = this.clippedPos(position.row, position.column);\n        var end = {\n            row: start.row + lines.length - 1,\n            column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n        };\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"insert\",\n            lines: lines\n        });\n        \n        return this.clonePos(end);\n    };\n    this.remove = function(range) {\n        var start = this.clippedPos(range.start.row, range.start.column);\n        var end = this.clippedPos(range.end.row, range.end.column);\n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"remove\",\n            lines: this.getLinesForRange({start: start, end: end})\n        });\n        return this.clonePos(start);\n    };\n    this.removeInLine = function(row, startColumn, endColumn) {\n        var start = this.clippedPos(row, startColumn);\n        var end = this.clippedPos(row, endColumn);\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"remove\",\n            lines: this.getLinesForRange({start: start, end: end})\n        }, true);\n        \n        return this.clonePos(start);\n    };\n    this.removeFullLines = function(firstRow, lastRow) {\n        firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n        lastRow  = Math.min(Math.max(0, lastRow ), this.getLength() - 1);\n        var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n        var deleteLastNewLine  = lastRow  < this.getLength() - 1;\n        var startRow = ( deleteFirstNewLine ? firstRow - 1                  : firstRow                    );\n        var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0                           );\n        var endRow   = ( deleteLastNewLine  ? lastRow + 1                   : lastRow                     );\n        var endCol   = ( deleteLastNewLine  ? 0                             : this.getLine(endRow).length ); \n        var range = new Range(startRow, startCol, endRow, endCol);\n        var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n        \n        this.applyDelta({\n            start: range.start,\n            end: range.end,\n            action: \"remove\",\n            lines: this.getLinesForRange(range)\n        });\n        return deletedLines;\n    };\n    this.removeNewLine = function(row) {\n        if (row < this.getLength() - 1 && row >= 0) {\n            this.applyDelta({\n                start: this.pos(row, this.getLine(row).length),\n                end: this.pos(row + 1, 0),\n                action: \"remove\",\n                lines: [\"\", \"\"]\n            });\n        }\n    };\n    this.replace = function(range, text) {\n        if (!(range instanceof Range))\n            range = Range.fromPoints(range.start, range.end);\n        if (text.length === 0 && range.isEmpty())\n            return range.start;\n        if (text == this.getTextRange(range))\n            return range.end;\n\n        this.remove(range);\n        var end;\n        if (text) {\n            end = this.insert(range.start, text);\n        }\n        else {\n            end = range.start;\n        }\n        \n        return end;\n    };\n    this.applyDeltas = function(deltas) {\n        for (var i=0; i<deltas.length; i++) {\n            this.applyDelta(deltas[i]);\n        }\n    };\n    this.revertDeltas = function(deltas) {\n        for (var i=deltas.length-1; i>=0; i--) {\n            this.revertDelta(deltas[i]);\n        }\n    };\n    this.applyDelta = function(delta, doNotValidate) {\n        var isInsert = delta.action == \"insert\";\n        if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n            : !Range.comparePoints(delta.start, delta.end)) {\n            return;\n        }\n        \n        if (isInsert && delta.lines.length > 20000)\n            this.$splitAndapplyLargeDelta(delta, 20000);\n        applyDelta(this.$lines, delta, doNotValidate);\n        this._signal(\"change\", delta);\n    };\n    \n    this.$splitAndapplyLargeDelta = function(delta, MAX) {\n        var lines = delta.lines;\n        var l = lines.length;\n        var row = delta.start.row; \n        var column = delta.start.column;\n        var from = 0, to = 0;\n        do {\n            from = to;\n            to += MAX - 1;\n            var chunk = lines.slice(from, to);\n            if (to > l) {\n                delta.lines = chunk;\n                delta.start.row = row + from;\n                delta.start.column = column;\n                break;\n            }\n            chunk.push(\"\");\n            this.applyDelta({\n                start: this.pos(row + from, column),\n                end: this.pos(row + to, column = 0),\n                action: delta.action,\n                lines: chunk\n            }, true);\n        } while(true);\n    };\n    this.revertDelta = function(delta) {\n        this.applyDelta({\n            start: this.clonePos(delta.start),\n            end: this.clonePos(delta.end),\n            action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n            lines: delta.lines.slice()\n        });\n    };\n    this.indexToPosition = function(index, startRow) {\n        var lines = this.$lines || this.getAllLines();\n        var newlineLength = this.getNewLineCharacter().length;\n        for (var i = startRow || 0, l = lines.length; i < l; i++) {\n            index -= lines[i].length + newlineLength;\n            if (index < 0)\n                return {row: i, column: index + lines[i].length + newlineLength};\n        }\n        return {row: l-1, column: lines[l-1].length};\n    };\n    this.positionToIndex = function(pos, startRow) {\n        var lines = this.$lines || this.getAllLines();\n        var newlineLength = this.getNewLineCharacter().length;\n        var index = 0;\n        var row = Math.min(pos.row, lines.length);\n        for (var i = startRow || 0; i < row; ++i)\n            index += lines[i].length + newlineLength;\n\n        return index + pos.column;\n    };\n\n}).call(Document.prototype);\n\nexports.Document = Document;\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.last = function(a) {\n    return a[a.length - 1];\n};\n\nexports.stringReverse = function(string) {\n    return string.split(\"\").reverse().join(\"\");\n};\n\nexports.stringRepeat = function (string, count) {\n    var result = '';\n    while (count > 0) {\n        if (count & 1)\n            result += string;\n\n        if (count >>= 1)\n            string += string;\n    }\n    return result;\n};\n\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\n\nexports.stringTrimLeft = function (string) {\n    return string.replace(trimBeginRegexp, '');\n};\n\nexports.stringTrimRight = function (string) {\n    return string.replace(trimEndRegexp, '');\n};\n\nexports.copyObject = function(obj) {\n    var copy = {};\n    for (var key in obj) {\n        copy[key] = obj[key];\n    }\n    return copy;\n};\n\nexports.copyArray = function(array){\n    var copy = [];\n    for (var i=0, l=array.length; i<l; i++) {\n        if (array[i] && typeof array[i] == \"object\")\n            copy[i] = this.copyObject(array[i]);\n        else \n            copy[i] = array[i];\n    }\n    return copy;\n};\n\nexports.deepCopy = function deepCopy(obj) {\n    if (typeof obj !== \"object\" || !obj)\n        return obj;\n    var copy;\n    if (Array.isArray(obj)) {\n        copy = [];\n        for (var key = 0; key < obj.length; key++) {\n            copy[key] = deepCopy(obj[key]);\n        }\n        return copy;\n    }\n    if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n        return obj;\n    \n    copy = {};\n    for (var key in obj)\n        copy[key] = deepCopy(obj[key]);\n    return copy;\n};\n\nexports.arrayToMap = function(arr) {\n    var map = {};\n    for (var i=0; i<arr.length; i++) {\n        map[arr[i]] = 1;\n    }\n    return map;\n\n};\n\nexports.createMap = function(props) {\n    var map = Object.create(null);\n    for (var i in props) {\n        map[i] = props[i];\n    }\n    return map;\n};\nexports.arrayRemove = function(array, value) {\n  for (var i = 0; i <= array.length; i++) {\n    if (value === array[i]) {\n      array.splice(i, 1);\n    }\n  }\n};\n\nexports.escapeRegExp = function(str) {\n    return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\n\nexports.escapeHTML = function(str) {\n    return str.replace(/&/g, \"&#38;\").replace(/\"/g, \"&#34;\").replace(/'/g, \"&#39;\").replace(/</g, \"&#60;\");\n};\n\nexports.getMatchOffsets = function(string, regExp) {\n    var matches = [];\n\n    string.replace(regExp, function(str) {\n        matches.push({\n            offset: arguments[arguments.length-2],\n            length: str.length\n        });\n    });\n\n    return matches;\n};\nexports.deferredCall = function(fcn) {\n    var timer = null;\n    var callback = function() {\n        timer = null;\n        fcn();\n    };\n\n    var deferred = function(timeout) {\n        deferred.cancel();\n        timer = setTimeout(callback, timeout || 0);\n        return deferred;\n    };\n\n    deferred.schedule = deferred;\n\n    deferred.call = function() {\n        this.cancel();\n        fcn();\n        return deferred;\n    };\n\n    deferred.cancel = function() {\n        clearTimeout(timer);\n        timer = null;\n        return deferred;\n    };\n    \n    deferred.isPending = function() {\n        return timer;\n    };\n\n    return deferred;\n};\n\n\nexports.delayedCall = function(fcn, defaultTimeout) {\n    var timer = null;\n    var callback = function() {\n        timer = null;\n        fcn();\n    };\n\n    var _self = function(timeout) {\n        if (timer == null)\n            timer = setTimeout(callback, timeout || defaultTimeout);\n    };\n\n    _self.delay = function(timeout) {\n        timer && clearTimeout(timer);\n        timer = setTimeout(callback, timeout || defaultTimeout);\n    };\n    _self.schedule = _self;\n\n    _self.call = function() {\n        this.cancel();\n        fcn();\n    };\n\n    _self.cancel = function() {\n        timer && clearTimeout(timer);\n        timer = null;\n    };\n\n    _self.isPending = function() {\n        return timer;\n    };\n\n    return _self;\n};\n});\n\nace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\nvar Document = require(\"../document\").Document;\nvar lang = require(\"../lib/lang\");\n    \nvar Mirror = exports.Mirror = function(sender) {\n    this.sender = sender;\n    var doc = this.doc = new Document(\"\");\n    \n    var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this));\n    \n    var _self = this;\n    sender.on(\"change\", function(e) {\n        var data = e.data;\n        if (data[0].start) {\n            doc.applyDeltas(data);\n        } else {\n            for (var i = 0; i < data.length; i += 2) {\n                if (Array.isArray(data[i+1])) {\n                    var d = {action: \"insert\", start: data[i], lines: data[i+1]};\n                } else {\n                    var d = {action: \"remove\", start: data[i], end: data[i+1]};\n                }\n                doc.applyDelta(d, true);\n            }\n        }\n        if (_self.$timeout)\n            return deferredUpdate.schedule(_self.$timeout);\n        _self.onUpdate();\n    });\n};\n\n(function() {\n    \n    this.$timeout = 500;\n    \n    this.setTimeout = function(timeout) {\n        this.$timeout = timeout;\n    };\n    \n    this.setValue = function(value) {\n        this.doc.setValue(value);\n        this.deferredUpdate.schedule(this.$timeout);\n    };\n    \n    this.getValue = function(callbackId) {\n        this.sender.callback(this.doc.getValue(), callbackId);\n    };\n    \n    this.onUpdate = function() {\n    };\n    \n    this.isPending = function() {\n        return this.deferredUpdate.isPending();\n    };\n    \n}).call(Mirror.prototype);\n\n});\n\nace.define(\"ace/mode/json/json_parse\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\n    var at,     // The index of the current character\n        ch,     // The current character\n        escapee = {\n            '\"':  '\"',\n            '\\\\': '\\\\',\n            '/':  '/',\n            b:    '\\b',\n            f:    '\\f',\n            n:    '\\n',\n            r:    '\\r',\n            t:    '\\t'\n        },\n        text,\n\n        error = function (m) {\n\n            throw {\n                name:    'SyntaxError',\n                message: m,\n                at:      at,\n                text:    text\n            };\n        },\n\n        next = function (c) {\n\n            if (c && c !== ch) {\n                error(\"Expected '\" + c + \"' instead of '\" + ch + \"'\");\n            }\n\n            ch = text.charAt(at);\n            at += 1;\n            return ch;\n        },\n\n        number = function () {\n\n            var number,\n                string = '';\n\n            if (ch === '-') {\n                string = '-';\n                next('-');\n            }\n            while (ch >= '0' && ch <= '9') {\n                string += ch;\n                next();\n            }\n            if (ch === '.') {\n                string += '.';\n                while (next() && ch >= '0' && ch <= '9') {\n                    string += ch;\n                }\n            }\n            if (ch === 'e' || ch === 'E') {\n                string += ch;\n                next();\n                if (ch === '-' || ch === '+') {\n                    string += ch;\n                    next();\n                }\n                while (ch >= '0' && ch <= '9') {\n                    string += ch;\n                    next();\n                }\n            }\n            number = +string;\n            if (isNaN(number)) {\n                error(\"Bad number\");\n            } else {\n                return number;\n            }\n        },\n\n        string = function () {\n\n            var hex,\n                i,\n                string = '',\n                uffff;\n\n            if (ch === '\"') {\n                while (next()) {\n                    if (ch === '\"') {\n                        next();\n                        return string;\n                    } else if (ch === '\\\\') {\n                        next();\n                        if (ch === 'u') {\n                            uffff = 0;\n                            for (i = 0; i < 4; i += 1) {\n                                hex = parseInt(next(), 16);\n                                if (!isFinite(hex)) {\n                                    break;\n                                }\n                                uffff = uffff * 16 + hex;\n                            }\n                            string += String.fromCharCode(uffff);\n                        } else if (typeof escapee[ch] === 'string') {\n                            string += escapee[ch];\n                        } else {\n                            break;\n                        }\n                    } else {\n                        string += ch;\n                    }\n                }\n            }\n            error(\"Bad string\");\n        },\n\n        white = function () {\n\n            while (ch && ch <= ' ') {\n                next();\n            }\n        },\n\n        word = function () {\n\n            switch (ch) {\n            case 't':\n                next('t');\n                next('r');\n                next('u');\n                next('e');\n                return true;\n            case 'f':\n                next('f');\n                next('a');\n                next('l');\n                next('s');\n                next('e');\n                return false;\n            case 'n':\n                next('n');\n                next('u');\n                next('l');\n                next('l');\n                return null;\n            }\n            error(\"Unexpected '\" + ch + \"'\");\n        },\n\n        value,  // Place holder for the value function.\n\n        array = function () {\n\n            var array = [];\n\n            if (ch === '[') {\n                next('[');\n                white();\n                if (ch === ']') {\n                    next(']');\n                    return array;   // empty array\n                }\n                while (ch) {\n                    array.push(value());\n                    white();\n                    if (ch === ']') {\n                        next(']');\n                        return array;\n                    }\n                    next(',');\n                    white();\n                }\n            }\n            error(\"Bad array\");\n        },\n\n        object = function () {\n\n            var key,\n                object = {};\n\n            if (ch === '{') {\n                next('{');\n                white();\n                if (ch === '}') {\n                    next('}');\n                    return object;   // empty object\n                }\n                while (ch) {\n                    key = string();\n                    white();\n                    next(':');\n                    if (Object.hasOwnProperty.call(object, key)) {\n                        error('Duplicate key \"' + key + '\"');\n                    }\n                    object[key] = value();\n                    white();\n                    if (ch === '}') {\n                        next('}');\n                        return object;\n                    }\n                    next(',');\n                    white();\n                }\n            }\n            error(\"Bad object\");\n        };\n\n    value = function () {\n\n        white();\n        switch (ch) {\n        case '{':\n            return object();\n        case '[':\n            return array();\n        case '\"':\n            return string();\n        case '-':\n            return number();\n        default:\n            return ch >= '0' && ch <= '9' ? number() : word();\n        }\n    };\n\n    return function (source, reviver) {\n        var result;\n\n        text = source;\n        at = 0;\n        ch = ' ';\n        result = value();\n        white();\n        if (ch) {\n            error(\"Syntax error\");\n        }\n\n        return typeof reviver === 'function' ? function walk(holder, key) {\n            var k, v, value = holder[key];\n            if (value && typeof value === 'object') {\n                for (k in value) {\n                    if (Object.hasOwnProperty.call(value, k)) {\n                        v = walk(value, k);\n                        if (v !== undefined) {\n                            value[k] = v;\n                        } else {\n                            delete value[k];\n                        }\n                    }\n                }\n            }\n            return reviver.call(holder, key, value);\n        }({'': result}, '') : result;\n    };\n});\n\nace.define(\"ace/mode/json_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/json/json_parse\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar Mirror = require(\"../worker/mirror\").Mirror;\nvar parse = require(\"./json/json_parse\");\n\nvar JsonWorker = exports.JsonWorker = function(sender) {\n    Mirror.call(this, sender);\n    this.setTimeout(200);\n};\n\noop.inherits(JsonWorker, Mirror);\n\n(function() {\n\n    this.onUpdate = function() {\n        var value = this.doc.getValue();\n        var errors = [];\n        try {\n            if (value)\n                parse(value);\n        } catch (e) {\n            var pos = this.doc.indexToPosition(e.at-1);\n            errors.push({\n                row: pos.row,\n                column: pos.column,\n                text: e.message,\n                type: \"error\"\n            });\n        }\n        this.sender.emit(\"annotate\", errors);\n    };\n\n}).call(JsonWorker.prototype);\n\n});\n\nace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\nfunction Empty() {}\n\nif (!Function.prototype.bind) {\n    Function.prototype.bind = function bind(that) { // .length is 1\n        var target = this;\n        if (typeof target != \"function\") {\n            throw new TypeError(\"Function.prototype.bind called on incompatible \" + target);\n        }\n        var args = slice.call(arguments, 1); // for normal call\n        var bound = function () {\n\n            if (this instanceof bound) {\n\n                var result = target.apply(\n                    this,\n                    args.concat(slice.call(arguments))\n                );\n                if (Object(result) === result) {\n                    return result;\n                }\n                return this;\n\n            } else {\n                return target.apply(\n                    that,\n                    args.concat(slice.call(arguments))\n                );\n\n            }\n\n        };\n        if(target.prototype) {\n            Empty.prototype = target.prototype;\n            bound.prototype = new Empty();\n            Empty.prototype = null;\n        }\n        return bound;\n    };\n}\nvar call = Function.prototype.call;\nvar prototypeOfArray = Array.prototype;\nvar prototypeOfObject = Object.prototype;\nvar slice = prototypeOfArray.slice;\nvar _toString = call.bind(prototypeOfObject.toString);\nvar owns = call.bind(prototypeOfObject.hasOwnProperty);\nvar defineGetter;\nvar defineSetter;\nvar lookupGetter;\nvar lookupSetter;\nvar supportsAccessors;\nif ((supportsAccessors = owns(prototypeOfObject, \"__defineGetter__\"))) {\n    defineGetter = call.bind(prototypeOfObject.__defineGetter__);\n    defineSetter = call.bind(prototypeOfObject.__defineSetter__);\n    lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);\n    lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);\n}\nif ([1,2].splice(0).length != 2) {\n    if(function() { // test IE < 9 to splice bug - see issue #138\n        function makeArray(l) {\n            var a = new Array(l+2);\n            a[0] = a[1] = 0;\n            return a;\n        }\n        var array = [], lengthBefore;\n        \n        array.splice.apply(array, makeArray(20));\n        array.splice.apply(array, makeArray(26));\n\n        lengthBefore = array.length; //46\n        array.splice(5, 0, \"XXX\"); // add one element\n\n        lengthBefore + 1 == array.length\n\n        if (lengthBefore + 1 == array.length) {\n            return true;// has right splice implementation without bugs\n        }\n    }()) {//IE 6/7\n        var array_splice = Array.prototype.splice;\n        Array.prototype.splice = function(start, deleteCount) {\n            if (!arguments.length) {\n                return [];\n            } else {\n                return array_splice.apply(this, [\n                    start === void 0 ? 0 : start,\n                    deleteCount === void 0 ? (this.length - start) : deleteCount\n                ].concat(slice.call(arguments, 2)))\n            }\n        };\n    } else {//IE8\n        Array.prototype.splice = function(pos, removeCount){\n            var length = this.length;\n            if (pos > 0) {\n                if (pos > length)\n                    pos = length;\n            } else if (pos == void 0) {\n                pos = 0;\n            } else if (pos < 0) {\n                pos = Math.max(length + pos, 0);\n            }\n\n            if (!(pos+removeCount < length))\n                removeCount = length - pos;\n\n            var removed = this.slice(pos, pos+removeCount);\n            var insert = slice.call(arguments, 2);\n            var add = insert.length;            \n            if (pos === length) {\n                if (add) {\n                    this.push.apply(this, insert);\n                }\n            } else {\n                var remove = Math.min(removeCount, length - pos);\n                var tailOldPos = pos + remove;\n                var tailNewPos = tailOldPos + add - remove;\n                var tailCount = length - tailOldPos;\n                var lengthAfterRemove = length - remove;\n\n                if (tailNewPos < tailOldPos) { // case A\n                    for (var i = 0; i < tailCount; ++i) {\n                        this[tailNewPos+i] = this[tailOldPos+i];\n                    }\n                } else if (tailNewPos > tailOldPos) { // case B\n                    for (i = tailCount; i--; ) {\n                        this[tailNewPos+i] = this[tailOldPos+i];\n                    }\n                } // else, add == remove (nothing to do)\n\n                if (add && pos === lengthAfterRemove) {\n                    this.length = lengthAfterRemove; // truncate array\n                    this.push.apply(this, insert);\n                } else {\n                    this.length = lengthAfterRemove + add; // reserves space\n                    for (i = 0; i < add; ++i) {\n                        this[pos+i] = insert[i];\n                    }\n                }\n            }\n            return removed;\n        };\n    }\n}\nif (!Array.isArray) {\n    Array.isArray = function isArray(obj) {\n        return _toString(obj) == \"[object Array]\";\n    };\n}\nvar boxedString = Object(\"a\"),\n    splitString = boxedString[0] != \"a\" || !(0 in boxedString);\n\nif (!Array.prototype.forEach) {\n    Array.prototype.forEach = function forEach(fun /*, thisp*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            thisp = arguments[1],\n            i = -1,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(); // TODO message\n        }\n\n        while (++i < length) {\n            if (i in self) {\n                fun.call(thisp, self[i], i, object);\n            }\n        }\n    };\n}\nif (!Array.prototype.map) {\n    Array.prototype.map = function map(fun /*, thisp*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            result = Array(length),\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self)\n                result[i] = fun.call(thisp, self[i], i, object);\n        }\n        return result;\n    };\n}\nif (!Array.prototype.filter) {\n    Array.prototype.filter = function filter(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                    object,\n            length = self.length >>> 0,\n            result = [],\n            value,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self) {\n                value = self[i];\n                if (fun.call(thisp, value, i, object)) {\n                    result.push(value);\n                }\n            }\n        }\n        return result;\n    };\n}\nif (!Array.prototype.every) {\n    Array.prototype.every = function every(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self && !fun.call(thisp, self[i], i, object)) {\n                return false;\n            }\n        }\n        return true;\n    };\n}\nif (!Array.prototype.some) {\n    Array.prototype.some = function some(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self && fun.call(thisp, self[i], i, object)) {\n                return true;\n            }\n        }\n        return false;\n    };\n}\nif (!Array.prototype.reduce) {\n    Array.prototype.reduce = function reduce(fun /*, initial*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n        if (!length && arguments.length == 1) {\n            throw new TypeError(\"reduce of empty array with no initial value\");\n        }\n\n        var i = 0;\n        var result;\n        if (arguments.length >= 2) {\n            result = arguments[1];\n        } else {\n            do {\n                if (i in self) {\n                    result = self[i++];\n                    break;\n                }\n                if (++i >= length) {\n                    throw new TypeError(\"reduce of empty array with no initial value\");\n                }\n            } while (true);\n        }\n\n        for (; i < length; i++) {\n            if (i in self) {\n                result = fun.call(void 0, result, self[i], i, object);\n            }\n        }\n\n        return result;\n    };\n}\nif (!Array.prototype.reduceRight) {\n    Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n        if (!length && arguments.length == 1) {\n            throw new TypeError(\"reduceRight of empty array with no initial value\");\n        }\n\n        var result, i = length - 1;\n        if (arguments.length >= 2) {\n            result = arguments[1];\n        } else {\n            do {\n                if (i in self) {\n                    result = self[i--];\n                    break;\n                }\n                if (--i < 0) {\n                    throw new TypeError(\"reduceRight of empty array with no initial value\");\n                }\n            } while (true);\n        }\n\n        do {\n            if (i in this) {\n                result = fun.call(void 0, result, self[i], i, object);\n            }\n        } while (i--);\n\n        return result;\n    };\n}\nif (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {\n    Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {\n        var self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                toObject(this),\n            length = self.length >>> 0;\n\n        if (!length) {\n            return -1;\n        }\n\n        var i = 0;\n        if (arguments.length > 1) {\n            i = toInteger(arguments[1]);\n        }\n        i = i >= 0 ? i : Math.max(0, length + i);\n        for (; i < length; i++) {\n            if (i in self && self[i] === sought) {\n                return i;\n            }\n        }\n        return -1;\n    };\n}\nif (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {\n    Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {\n        var self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                toObject(this),\n            length = self.length >>> 0;\n\n        if (!length) {\n            return -1;\n        }\n        var i = length - 1;\n        if (arguments.length > 1) {\n            i = Math.min(i, toInteger(arguments[1]));\n        }\n        i = i >= 0 ? i : length - Math.abs(i);\n        for (; i >= 0; i--) {\n            if (i in self && sought === self[i]) {\n                return i;\n            }\n        }\n        return -1;\n    };\n}\nif (!Object.getPrototypeOf) {\n    Object.getPrototypeOf = function getPrototypeOf(object) {\n        return object.__proto__ || (\n            object.constructor ?\n            object.constructor.prototype :\n            prototypeOfObject\n        );\n    };\n}\nif (!Object.getOwnPropertyDescriptor) {\n    var ERR_NON_OBJECT = \"Object.getOwnPropertyDescriptor called on a \" +\n                         \"non-object: \";\n    Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n        if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n            throw new TypeError(ERR_NON_OBJECT + object);\n        if (!owns(object, property))\n            return;\n\n        var descriptor, getter, setter;\n        descriptor =  { enumerable: true, configurable: true };\n        if (supportsAccessors) {\n            var prototype = object.__proto__;\n            object.__proto__ = prototypeOfObject;\n\n            var getter = lookupGetter(object, property);\n            var setter = lookupSetter(object, property);\n            object.__proto__ = prototype;\n\n            if (getter || setter) {\n                if (getter) descriptor.get = getter;\n                if (setter) descriptor.set = setter;\n                return descriptor;\n            }\n        }\n        descriptor.value = object[property];\n        return descriptor;\n    };\n}\nif (!Object.getOwnPropertyNames) {\n    Object.getOwnPropertyNames = function getOwnPropertyNames(object) {\n        return Object.keys(object);\n    };\n}\nif (!Object.create) {\n    var createEmpty;\n    if (Object.prototype.__proto__ === null) {\n        createEmpty = function () {\n            return { \"__proto__\": null };\n        };\n    } else {\n        createEmpty = function () {\n            var empty = {};\n            for (var i in empty)\n                empty[i] = null;\n            empty.constructor =\n            empty.hasOwnProperty =\n            empty.propertyIsEnumerable =\n            empty.isPrototypeOf =\n            empty.toLocaleString =\n            empty.toString =\n            empty.valueOf =\n            empty.__proto__ = null;\n            return empty;\n        }\n    }\n\n    Object.create = function create(prototype, properties) {\n        var object;\n        if (prototype === null) {\n            object = createEmpty();\n        } else {\n            if (typeof prototype != \"object\")\n                throw new TypeError(\"typeof prototype[\"+(typeof prototype)+\"] != 'object'\");\n            var Type = function () {};\n            Type.prototype = prototype;\n            object = new Type();\n            object.__proto__ = prototype;\n        }\n        if (properties !== void 0)\n            Object.defineProperties(object, properties);\n        return object;\n    };\n}\n\nfunction doesDefinePropertyWork(object) {\n    try {\n        Object.defineProperty(object, \"sentinel\", {});\n        return \"sentinel\" in object;\n    } catch (exception) {\n    }\n}\nif (Object.defineProperty) {\n    var definePropertyWorksOnObject = doesDefinePropertyWork({});\n    var definePropertyWorksOnDom = typeof document == \"undefined\" ||\n        doesDefinePropertyWork(document.createElement(\"div\"));\n    if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {\n        var definePropertyFallback = Object.defineProperty;\n    }\n}\n\nif (!Object.defineProperty || definePropertyFallback) {\n    var ERR_NON_OBJECT_DESCRIPTOR = \"Property description must be an object: \";\n    var ERR_NON_OBJECT_TARGET = \"Object.defineProperty called on non-object: \"\n    var ERR_ACCESSORS_NOT_SUPPORTED = \"getters & setters can not be defined \" +\n                                      \"on this javascript engine\";\n\n    Object.defineProperty = function defineProperty(object, property, descriptor) {\n        if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n            throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n        if ((typeof descriptor != \"object\" && typeof descriptor != \"function\") || descriptor === null)\n            throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n        if (definePropertyFallback) {\n            try {\n                return definePropertyFallback.call(Object, object, property, descriptor);\n            } catch (exception) {\n            }\n        }\n        if (owns(descriptor, \"value\")) {\n\n            if (supportsAccessors && (lookupGetter(object, property) ||\n                                      lookupSetter(object, property)))\n            {\n                var prototype = object.__proto__;\n                object.__proto__ = prototypeOfObject;\n                delete object[property];\n                object[property] = descriptor.value;\n                object.__proto__ = prototype;\n            } else {\n                object[property] = descriptor.value;\n            }\n        } else {\n            if (!supportsAccessors)\n                throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n            if (owns(descriptor, \"get\"))\n                defineGetter(object, property, descriptor.get);\n            if (owns(descriptor, \"set\"))\n                defineSetter(object, property, descriptor.set);\n        }\n\n        return object;\n    };\n}\nif (!Object.defineProperties) {\n    Object.defineProperties = function defineProperties(object, properties) {\n        for (var property in properties) {\n            if (owns(properties, property))\n                Object.defineProperty(object, property, properties[property]);\n        }\n        return object;\n    };\n}\nif (!Object.seal) {\n    Object.seal = function seal(object) {\n        return object;\n    };\n}\nif (!Object.freeze) {\n    Object.freeze = function freeze(object) {\n        return object;\n    };\n}\ntry {\n    Object.freeze(function () {});\n} catch (exception) {\n    Object.freeze = (function freeze(freezeObject) {\n        return function freeze(object) {\n            if (typeof object == \"function\") {\n                return object;\n            } else {\n                return freezeObject(object);\n            }\n        };\n    })(Object.freeze);\n}\nif (!Object.preventExtensions) {\n    Object.preventExtensions = function preventExtensions(object) {\n        return object;\n    };\n}\nif (!Object.isSealed) {\n    Object.isSealed = function isSealed(object) {\n        return false;\n    };\n}\nif (!Object.isFrozen) {\n    Object.isFrozen = function isFrozen(object) {\n        return false;\n    };\n}\nif (!Object.isExtensible) {\n    Object.isExtensible = function isExtensible(object) {\n        if (Object(object) === object) {\n            throw new TypeError(); // TODO message\n        }\n        var name = '';\n        while (owns(object, name)) {\n            name += '?';\n        }\n        object[name] = true;\n        var returnValue = owns(object, name);\n        delete object[name];\n        return returnValue;\n    };\n}\nif (!Object.keys) {\n    var hasDontEnumBug = true,\n        dontEnums = [\n            \"toString\",\n            \"toLocaleString\",\n            \"valueOf\",\n            \"hasOwnProperty\",\n            \"isPrototypeOf\",\n            \"propertyIsEnumerable\",\n            \"constructor\"\n        ],\n        dontEnumsLength = dontEnums.length;\n\n    for (var key in {\"toString\": null}) {\n        hasDontEnumBug = false;\n    }\n\n    Object.keys = function keys(object) {\n\n        if (\n            (typeof object != \"object\" && typeof object != \"function\") ||\n            object === null\n        ) {\n            throw new TypeError(\"Object.keys called on a non-object\");\n        }\n\n        var keys = [];\n        for (var name in object) {\n            if (owns(object, name)) {\n                keys.push(name);\n            }\n        }\n\n        if (hasDontEnumBug) {\n            for (var i = 0, ii = dontEnumsLength; i < ii; i++) {\n                var dontEnum = dontEnums[i];\n                if (owns(object, dontEnum)) {\n                    keys.push(dontEnum);\n                }\n            }\n        }\n        return keys;\n    };\n\n}\nif (!Date.now) {\n    Date.now = function now() {\n        return new Date().getTime();\n    };\n}\nvar ws = \"\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\" +\n    \"\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\" +\n    \"\\u2029\\uFEFF\";\nif (!String.prototype.trim || ws.trim()) {\n    ws = \"[\" + ws + \"]\";\n    var trimBeginRegexp = new RegExp(\"^\" + ws + ws + \"*\"),\n        trimEndRegexp = new RegExp(ws + ws + \"*$\");\n    String.prototype.trim = function trim() {\n        return String(this).replace(trimBeginRegexp, \"\").replace(trimEndRegexp, \"\");\n    };\n}\n\nfunction toInteger(n) {\n    n = +n;\n    if (n !== n) { // isNaN\n        n = 0;\n    } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {\n        n = (n > 0 || -1) * Math.floor(Math.abs(n));\n    }\n    return n;\n}\n\nfunction isPrimitive(input) {\n    var type = typeof input;\n    return (\n        input === null ||\n        type === \"undefined\" ||\n        type === \"boolean\" ||\n        type === \"number\" ||\n        type === \"string\"\n    );\n}\n\nfunction toPrimitive(input) {\n    var val, valueOf, toString;\n    if (isPrimitive(input)) {\n        return input;\n    }\n    valueOf = input.valueOf;\n    if (typeof valueOf === \"function\") {\n        val = valueOf.call(input);\n        if (isPrimitive(val)) {\n            return val;\n        }\n    }\n    toString = input.toString;\n    if (typeof toString === \"function\") {\n        val = toString.call(input);\n        if (isPrimitive(val)) {\n            return val;\n        }\n    }\n    throw new TypeError();\n}\nvar toObject = function (o) {\n    if (o == null) { // this matches both null and undefined\n        throw new TypeError(\"can't convert \"+o+\" to object\");\n    }\n    return Object(o);\n};\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/worker-lua.js",
    "content": "\"no use strict\";\n;(function(window) {\nif (typeof window.window != \"undefined\" && window.document)\n    return;\nif (window.require && window.define)\n    return;\n\nif (!window.console) {\n    window.console = function() {\n        var msgs = Array.prototype.slice.call(arguments, 0);\n        postMessage({type: \"log\", data: msgs});\n    };\n    window.console.error =\n    window.console.warn = \n    window.console.log =\n    window.console.trace = window.console;\n}\nwindow.window = window;\nwindow.ace = window;\n\nwindow.onerror = function(message, file, line, col, err) {\n    postMessage({type: \"error\", data: {\n        message: message,\n        data: err.data,\n        file: file,\n        line: line, \n        col: col,\n        stack: err.stack\n    }});\n};\n\nwindow.normalizeModule = function(parentId, moduleName) {\n    // normalize plugin requires\n    if (moduleName.indexOf(\"!\") !== -1) {\n        var chunks = moduleName.split(\"!\");\n        return window.normalizeModule(parentId, chunks[0]) + \"!\" + window.normalizeModule(parentId, chunks[1]);\n    }\n    // normalize relative requires\n    if (moduleName.charAt(0) == \".\") {\n        var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n        moduleName = (base ? base + \"/\" : \"\") + moduleName;\n        \n        while (moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n            var previous = moduleName;\n            moduleName = moduleName.replace(/^\\.\\//, \"\").replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n        }\n    }\n    \n    return moduleName;\n};\n\nwindow.require = function require(parentId, id) {\n    if (!id) {\n        id = parentId;\n        parentId = null;\n    }\n    if (!id.charAt)\n        throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");\n\n    id = window.normalizeModule(parentId, id);\n\n    var module = window.require.modules[id];\n    if (module) {\n        if (!module.initialized) {\n            module.initialized = true;\n            module.exports = module.factory().exports;\n        }\n        return module.exports;\n    }\n   \n    if (!window.require.tlns)\n        return console.log(\"unable to load \" + id);\n    \n    var path = resolveModuleId(id, window.require.tlns);\n    if (path.slice(-3) != \".js\") path += \".js\";\n    \n    window.require.id = id;\n    window.require.modules[id] = {}; // prevent infinite loop on broken modules\n    importScripts(path);\n    return window.require(parentId, id);\n};\nfunction resolveModuleId(id, paths) {\n    var testPath = id, tail = \"\";\n    while (testPath) {\n        var alias = paths[testPath];\n        if (typeof alias == \"string\") {\n            return alias + tail;\n        } else if (alias) {\n            return  alias.location.replace(/\\/*$/, \"/\") + (tail || alias.main || alias.name);\n        } else if (alias === false) {\n            return \"\";\n        }\n        var i = testPath.lastIndexOf(\"/\");\n        if (i === -1) break;\n        tail = testPath.substr(i) + tail;\n        testPath = testPath.slice(0, i);\n    }\n    return id;\n}\nwindow.require.modules = {};\nwindow.require.tlns = {};\n\nwindow.define = function(id, deps, factory) {\n    if (arguments.length == 2) {\n        factory = deps;\n        if (typeof id != \"string\") {\n            deps = id;\n            id = window.require.id;\n        }\n    } else if (arguments.length == 1) {\n        factory = id;\n        deps = [];\n        id = window.require.id;\n    }\n    \n    if (typeof factory != \"function\") {\n        window.require.modules[id] = {\n            exports: factory,\n            initialized: true\n        };\n        return;\n    }\n\n    if (!deps.length)\n        // If there is no dependencies, we inject \"require\", \"exports\" and\n        // \"module\" as dependencies, to provide CommonJS compatibility.\n        deps = [\"require\", \"exports\", \"module\"];\n\n    var req = function(childId) {\n        return window.require(id, childId);\n    };\n\n    window.require.modules[id] = {\n        exports: {},\n        factory: function() {\n            var module = this;\n            var returnExports = factory.apply(this, deps.map(function(dep) {\n                switch (dep) {\n                    // Because \"require\", \"exports\" and \"module\" aren't actual\n                    // dependencies, we must handle them seperately.\n                    case \"require\": return req;\n                    case \"exports\": return module.exports;\n                    case \"module\":  return module;\n                    // But for all other dependencies, we can just go ahead and\n                    // require them.\n                    default:        return req(dep);\n                }\n            }));\n            if (returnExports)\n                module.exports = returnExports;\n            return module;\n        }\n    };\n};\nwindow.define.amd = {};\nrequire.tlns = {};\nwindow.initBaseUrls  = function initBaseUrls(topLevelNamespaces) {\n    for (var i in topLevelNamespaces)\n        require.tlns[i] = topLevelNamespaces[i];\n};\n\nwindow.initSender = function initSender() {\n\n    var EventEmitter = window.require(\"ace/lib/event_emitter\").EventEmitter;\n    var oop = window.require(\"ace/lib/oop\");\n    \n    var Sender = function() {};\n    \n    (function() {\n        \n        oop.implement(this, EventEmitter);\n                \n        this.callback = function(data, callbackId) {\n            postMessage({\n                type: \"call\",\n                id: callbackId,\n                data: data\n            });\n        };\n    \n        this.emit = function(name, data) {\n            postMessage({\n                type: \"event\",\n                name: name,\n                data: data\n            });\n        };\n        \n    }).call(Sender.prototype);\n    \n    return new Sender();\n};\n\nvar main = window.main = null;\nvar sender = window.sender = null;\n\nwindow.onmessage = function(e) {\n    var msg = e.data;\n    if (msg.event && sender) {\n        sender._signal(msg.event, msg.data);\n    }\n    else if (msg.command) {\n        if (main[msg.command])\n            main[msg.command].apply(main, msg.args);\n        else if (window[msg.command])\n            window[msg.command].apply(window, msg.args);\n        else\n            throw new Error(\"Unknown command:\" + msg.command);\n    }\n    else if (msg.init) {\n        window.initBaseUrls(msg.tlns);\n        require(\"ace/lib/es5-shim\");\n        sender = window.sender = window.initSender();\n        var clazz = require(msg.module)[msg.classname];\n        main = window.main = new clazz(sender);\n    }\n};\n})(this);\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.inherits = function(ctor, superCtor) {\n    ctor.super_ = superCtor;\n    ctor.prototype = Object.create(superCtor.prototype, {\n        constructor: {\n            value: ctor,\n            enumerable: false,\n            writable: true,\n            configurable: true\n        }\n    });\n};\n\nexports.mixin = function(obj, mixin) {\n    for (var key in mixin) {\n        obj[key] = mixin[key];\n    }\n    return obj;\n};\n\nexports.implement = function(proto, mixin) {\n    exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/range\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\nvar comparePoints = function(p1, p2) {\n    return p1.row - p2.row || p1.column - p2.column;\n};\nvar Range = function(startRow, startColumn, endRow, endColumn) {\n    this.start = {\n        row: startRow,\n        column: startColumn\n    };\n\n    this.end = {\n        row: endRow,\n        column: endColumn\n    };\n};\n\n(function() {\n    this.isEqual = function(range) {\n        return this.start.row === range.start.row &&\n            this.end.row === range.end.row &&\n            this.start.column === range.start.column &&\n            this.end.column === range.end.column;\n    };\n    this.toString = function() {\n        return (\"Range: [\" + this.start.row + \"/\" + this.start.column +\n            \"] -> [\" + this.end.row + \"/\" + this.end.column + \"]\");\n    };\n\n    this.contains = function(row, column) {\n        return this.compare(row, column) == 0;\n    };\n    this.compareRange = function(range) {\n        var cmp,\n            end = range.end,\n            start = range.start;\n\n        cmp = this.compare(end.row, end.column);\n        if (cmp == 1) {\n            cmp = this.compare(start.row, start.column);\n            if (cmp == 1) {\n                return 2;\n            } else if (cmp == 0) {\n                return 1;\n            } else {\n                return 0;\n            }\n        } else if (cmp == -1) {\n            return -2;\n        } else {\n            cmp = this.compare(start.row, start.column);\n            if (cmp == -1) {\n                return -1;\n            } else if (cmp == 1) {\n                return 42;\n            } else {\n                return 0;\n            }\n        }\n    };\n    this.comparePoint = function(p) {\n        return this.compare(p.row, p.column);\n    };\n    this.containsRange = function(range) {\n        return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n    };\n    this.intersects = function(range) {\n        var cmp = this.compareRange(range);\n        return (cmp == -1 || cmp == 0 || cmp == 1);\n    };\n    this.isEnd = function(row, column) {\n        return this.end.row == row && this.end.column == column;\n    };\n    this.isStart = function(row, column) {\n        return this.start.row == row && this.start.column == column;\n    };\n    this.setStart = function(row, column) {\n        if (typeof row == \"object\") {\n            this.start.column = row.column;\n            this.start.row = row.row;\n        } else {\n            this.start.row = row;\n            this.start.column = column;\n        }\n    };\n    this.setEnd = function(row, column) {\n        if (typeof row == \"object\") {\n            this.end.column = row.column;\n            this.end.row = row.row;\n        } else {\n            this.end.row = row;\n            this.end.column = column;\n        }\n    };\n    this.inside = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isEnd(row, column) || this.isStart(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.insideStart = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isEnd(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.insideEnd = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isStart(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.compare = function(row, column) {\n        if (!this.isMultiLine()) {\n            if (row === this.start.row) {\n                return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n            }\n        }\n\n        if (row < this.start.row)\n            return -1;\n\n        if (row > this.end.row)\n            return 1;\n\n        if (this.start.row === row)\n            return column >= this.start.column ? 0 : -1;\n\n        if (this.end.row === row)\n            return column <= this.end.column ? 0 : 1;\n\n        return 0;\n    };\n    this.compareStart = function(row, column) {\n        if (this.start.row == row && this.start.column == column) {\n            return -1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.compareEnd = function(row, column) {\n        if (this.end.row == row && this.end.column == column) {\n            return 1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.compareInside = function(row, column) {\n        if (this.end.row == row && this.end.column == column) {\n            return 1;\n        } else if (this.start.row == row && this.start.column == column) {\n            return -1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.clipRows = function(firstRow, lastRow) {\n        if (this.end.row > lastRow)\n            var end = {row: lastRow + 1, column: 0};\n        else if (this.end.row < firstRow)\n            var end = {row: firstRow, column: 0};\n\n        if (this.start.row > lastRow)\n            var start = {row: lastRow + 1, column: 0};\n        else if (this.start.row < firstRow)\n            var start = {row: firstRow, column: 0};\n\n        return Range.fromPoints(start || this.start, end || this.end);\n    };\n    this.extend = function(row, column) {\n        var cmp = this.compare(row, column);\n\n        if (cmp == 0)\n            return this;\n        else if (cmp == -1)\n            var start = {row: row, column: column};\n        else\n            var end = {row: row, column: column};\n\n        return Range.fromPoints(start || this.start, end || this.end);\n    };\n\n    this.isEmpty = function() {\n        return (this.start.row === this.end.row && this.start.column === this.end.column);\n    };\n    this.isMultiLine = function() {\n        return (this.start.row !== this.end.row);\n    };\n    this.clone = function() {\n        return Range.fromPoints(this.start, this.end);\n    };\n    this.collapseRows = function() {\n        if (this.end.column == 0)\n            return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)\n        else\n            return new Range(this.start.row, 0, this.end.row, 0)\n    };\n    this.toScreenRange = function(session) {\n        var screenPosStart = session.documentToScreenPosition(this.start);\n        var screenPosEnd = session.documentToScreenPosition(this.end);\n\n        return new Range(\n            screenPosStart.row, screenPosStart.column,\n            screenPosEnd.row, screenPosEnd.column\n        );\n    };\n    this.moveBy = function(row, column) {\n        this.start.row += row;\n        this.start.column += column;\n        this.end.row += row;\n        this.end.column += column;\n    };\n\n}).call(Range.prototype);\nRange.fromPoints = function(start, end) {\n    return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\n\nRange.comparePoints = function(p1, p2) {\n    return p1.row - p2.row || p1.column - p2.column;\n};\n\n\nexports.Range = Range;\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nfunction throwDeltaError(delta, errorText){\n    console.log(\"Invalid Delta:\", delta);\n    throw \"Invalid Delta: \" + errorText;\n}\n\nfunction positionInDocument(docLines, position) {\n    return position.row    >= 0 && position.row    <  docLines.length &&\n           position.column >= 0 && position.column <= docLines[position.row].length;\n}\n\nfunction validateDelta(docLines, delta) {\n    if (delta.action != \"insert\" && delta.action != \"remove\")\n        throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n    if (!(delta.lines instanceof Array))\n        throwDeltaError(delta, \"delta.lines must be an Array\");\n    if (!delta.start || !delta.end)\n       throwDeltaError(delta, \"delta.start/end must be an present\");\n    var start = delta.start;\n    if (!positionInDocument(docLines, delta.start))\n        throwDeltaError(delta, \"delta.start must be contained in document\");\n    var end = delta.end;\n    if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n        throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n    var numRangeRows = end.row - start.row;\n    var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n    if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n        throwDeltaError(delta, \"delta.range must match delta lines\");\n}\n\nexports.applyDelta = function(docLines, delta, doNotValidate) {\n    \n    var row = delta.start.row;\n    var startColumn = delta.start.column;\n    var line = docLines[row] || \"\";\n    switch (delta.action) {\n        case \"insert\":\n            var lines = delta.lines;\n            if (lines.length === 1) {\n                docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n            } else {\n                var args = [row, 1].concat(delta.lines);\n                docLines.splice.apply(docLines, args);\n                docLines[row] = line.substring(0, startColumn) + docLines[row];\n                docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n            }\n            break;\n        case \"remove\":\n            var endColumn = delta.end.column;\n            var endRow = delta.end.row;\n            if (row === endRow) {\n                docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n            } else {\n                docLines.splice(\n                    row, endRow - row + 1,\n                    line.substring(0, startColumn) + docLines[endRow].substring(endColumn)\n                );\n            }\n            break;\n    }\n}\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar EventEmitter = {};\nvar stopPropagation = function() { this.propagationStopped = true; };\nvar preventDefault = function() { this.defaultPrevented = true; };\n\nEventEmitter._emit =\nEventEmitter._dispatchEvent = function(eventName, e) {\n    this._eventRegistry || (this._eventRegistry = {});\n    this._defaultHandlers || (this._defaultHandlers = {});\n\n    var listeners = this._eventRegistry[eventName] || [];\n    var defaultHandler = this._defaultHandlers[eventName];\n    if (!listeners.length && !defaultHandler)\n        return;\n\n    if (typeof e != \"object\" || !e)\n        e = {};\n\n    if (!e.type)\n        e.type = eventName;\n    if (!e.stopPropagation)\n        e.stopPropagation = stopPropagation;\n    if (!e.preventDefault)\n        e.preventDefault = preventDefault;\n\n    listeners = listeners.slice();\n    for (var i=0; i<listeners.length; i++) {\n        listeners[i](e, this);\n        if (e.propagationStopped)\n            break;\n    }\n    \n    if (defaultHandler && !e.defaultPrevented)\n        return defaultHandler(e, this);\n};\n\n\nEventEmitter._signal = function(eventName, e) {\n    var listeners = (this._eventRegistry || {})[eventName];\n    if (!listeners)\n        return;\n    listeners = listeners.slice();\n    for (var i=0; i<listeners.length; i++)\n        listeners[i](e, this);\n};\n\nEventEmitter.once = function(eventName, callback) {\n    var _self = this;\n    callback && this.addEventListener(eventName, function newCallback() {\n        _self.removeEventListener(eventName, newCallback);\n        callback.apply(null, arguments);\n    });\n};\n\n\nEventEmitter.setDefaultHandler = function(eventName, callback) {\n    var handlers = this._defaultHandlers\n    if (!handlers)\n        handlers = this._defaultHandlers = {_disabled_: {}};\n    \n    if (handlers[eventName]) {\n        var old = handlers[eventName];\n        var disabled = handlers._disabled_[eventName];\n        if (!disabled)\n            handlers._disabled_[eventName] = disabled = [];\n        disabled.push(old);\n        var i = disabled.indexOf(callback);\n        if (i != -1) \n            disabled.splice(i, 1);\n    }\n    handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function(eventName, callback) {\n    var handlers = this._defaultHandlers\n    if (!handlers)\n        return;\n    var disabled = handlers._disabled_[eventName];\n    \n    if (handlers[eventName] == callback) {\n        var old = handlers[eventName];\n        if (disabled)\n            this.setDefaultHandler(eventName, disabled.pop());\n    } else if (disabled) {\n        var i = disabled.indexOf(callback);\n        if (i != -1)\n            disabled.splice(i, 1);\n    }\n};\n\nEventEmitter.on =\nEventEmitter.addEventListener = function(eventName, callback, capturing) {\n    this._eventRegistry = this._eventRegistry || {};\n\n    var listeners = this._eventRegistry[eventName];\n    if (!listeners)\n        listeners = this._eventRegistry[eventName] = [];\n\n    if (listeners.indexOf(callback) == -1)\n        listeners[capturing ? \"unshift\" : \"push\"](callback);\n    return callback;\n};\n\nEventEmitter.off =\nEventEmitter.removeListener =\nEventEmitter.removeEventListener = function(eventName, callback) {\n    this._eventRegistry = this._eventRegistry || {};\n\n    var listeners = this._eventRegistry[eventName];\n    if (!listeners)\n        return;\n\n    var index = listeners.indexOf(callback);\n    if (index !== -1)\n        listeners.splice(index, 1);\n};\n\nEventEmitter.removeAllListeners = function(eventName) {\n    if (this._eventRegistry) this._eventRegistry[eventName] = [];\n};\n\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\n\nvar Anchor = exports.Anchor = function(doc, row, column) {\n    this.$onChange = this.onChange.bind(this);\n    this.attach(doc);\n    \n    if (typeof column == \"undefined\")\n        this.setPosition(row.row, row.column);\n    else\n        this.setPosition(row, column);\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n    this.getPosition = function() {\n        return this.$clipPositionToDocument(this.row, this.column);\n    };\n    this.getDocument = function() {\n        return this.document;\n    };\n    this.$insertRight = false;\n    this.onChange = function(delta) {\n        if (delta.start.row == delta.end.row && delta.start.row != this.row)\n            return;\n\n        if (delta.start.row > this.row)\n            return;\n            \n        var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight);\n        this.setPosition(point.row, point.column, true);\n    };\n    \n    function $pointsInOrder(point1, point2, equalPointsInOrder) {\n        var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n        return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n    }\n            \n    function $getTransformedPoint(delta, point, moveIfEqual) {\n        var deltaIsInsert = delta.action == \"insert\";\n        var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row    - delta.start.row);\n        var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n        var deltaStart = delta.start;\n        var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n        if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n            return {\n                row: point.row,\n                column: point.column\n            };\n        }\n        if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n            return {\n                row: point.row + deltaRowShift,\n                column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n            };\n        }\n        \n        return {\n            row: deltaStart.row,\n            column: deltaStart.column\n        };\n    }\n    this.setPosition = function(row, column, noClip) {\n        var pos;\n        if (noClip) {\n            pos = {\n                row: row,\n                column: column\n            };\n        } else {\n            pos = this.$clipPositionToDocument(row, column);\n        }\n\n        if (this.row == pos.row && this.column == pos.column)\n            return;\n\n        var old = {\n            row: this.row,\n            column: this.column\n        };\n\n        this.row = pos.row;\n        this.column = pos.column;\n        this._signal(\"change\", {\n            old: old,\n            value: pos\n        });\n    };\n    this.detach = function() {\n        this.document.removeEventListener(\"change\", this.$onChange);\n    };\n    this.attach = function(doc) {\n        this.document = doc || this.document;\n        this.document.on(\"change\", this.$onChange);\n    };\n    this.$clipPositionToDocument = function(row, column) {\n        var pos = {};\n\n        if (row >= this.document.getLength()) {\n            pos.row = Math.max(0, this.document.getLength() - 1);\n            pos.column = this.document.getLine(pos.row).length;\n        }\n        else if (row < 0) {\n            pos.row = 0;\n            pos.column = 0;\n        }\n        else {\n            pos.row = row;\n            pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n        }\n\n        if (column < 0)\n            pos.column = 0;\n\n        return pos;\n    };\n\n}).call(Anchor.prototype);\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar applyDelta = require(\"./apply_delta\").applyDelta;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\n\nvar Document = function(textOrLines) {\n    this.$lines = [\"\"];\n    if (textOrLines.length === 0) {\n        this.$lines = [\"\"];\n    } else if (Array.isArray(textOrLines)) {\n        this.insertMergedLines({row: 0, column: 0}, textOrLines);\n    } else {\n        this.insert({row: 0, column:0}, textOrLines);\n    }\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n    this.setValue = function(text) {\n        var len = this.getLength() - 1;\n        this.remove(new Range(0, 0, len, this.getLine(len).length));\n        this.insert({row: 0, column: 0}, text);\n    };\n    this.getValue = function() {\n        return this.getAllLines().join(this.getNewLineCharacter());\n    };\n    this.createAnchor = function(row, column) {\n        return new Anchor(this, row, column);\n    };\n    if (\"aaa\".split(/a/).length === 0) {\n        this.$split = function(text) {\n            return text.replace(/\\r\\n|\\r/g, \"\\n\").split(\"\\n\");\n        };\n    } else {\n        this.$split = function(text) {\n            return text.split(/\\r\\n|\\r|\\n/);\n        };\n    }\n\n\n    this.$detectNewLine = function(text) {\n        var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n        this.$autoNewLine = match ? match[1] : \"\\n\";\n        this._signal(\"changeNewLineMode\");\n    };\n    this.getNewLineCharacter = function() {\n        switch (this.$newLineMode) {\n          case \"windows\":\n            return \"\\r\\n\";\n          case \"unix\":\n            return \"\\n\";\n          default:\n            return this.$autoNewLine || \"\\n\";\n        }\n    };\n\n    this.$autoNewLine = \"\";\n    this.$newLineMode = \"auto\";\n    this.setNewLineMode = function(newLineMode) {\n        if (this.$newLineMode === newLineMode)\n            return;\n\n        this.$newLineMode = newLineMode;\n        this._signal(\"changeNewLineMode\");\n    };\n    this.getNewLineMode = function() {\n        return this.$newLineMode;\n    };\n    this.isNewLine = function(text) {\n        return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n    };\n    this.getLine = function(row) {\n        return this.$lines[row] || \"\";\n    };\n    this.getLines = function(firstRow, lastRow) {\n        return this.$lines.slice(firstRow, lastRow + 1);\n    };\n    this.getAllLines = function() {\n        return this.getLines(0, this.getLength());\n    };\n    this.getLength = function() {\n        return this.$lines.length;\n    };\n    this.getTextRange = function(range) {\n        return this.getLinesForRange(range).join(this.getNewLineCharacter());\n    };\n    this.getLinesForRange = function(range) {\n        var lines;\n        if (range.start.row === range.end.row) {\n            lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n        } else {\n            lines = this.getLines(range.start.row, range.end.row);\n            lines[0] = (lines[0] || \"\").substring(range.start.column);\n            var l = lines.length - 1;\n            if (range.end.row - range.start.row == l)\n                lines[l] = lines[l].substring(0, range.end.column);\n        }\n        return lines;\n    };\n    this.insertLines = function(row, lines) {\n        console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n        return this.insertFullLines(row, lines);\n    };\n    this.removeLines = function(firstRow, lastRow) {\n        console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n        return this.removeFullLines(firstRow, lastRow);\n    };\n    this.insertNewLine = function(position) {\n        console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n        return this.insertMergedLines(position, [\"\", \"\"]);\n    };\n    this.insert = function(position, text) {\n        if (this.getLength() <= 1)\n            this.$detectNewLine(text);\n        \n        return this.insertMergedLines(position, this.$split(text));\n    };\n    this.insertInLine = function(position, text) {\n        var start = this.clippedPos(position.row, position.column);\n        var end = this.pos(position.row, position.column + text.length);\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"insert\",\n            lines: [text]\n        }, true);\n        \n        return this.clonePos(end);\n    };\n    \n    this.clippedPos = function(row, column) {\n        var length = this.getLength();\n        if (row === undefined) {\n            row = length;\n        } else if (row < 0) {\n            row = 0;\n        } else if (row >= length) {\n            row = length - 1;\n            column = undefined;\n        }\n        var line = this.getLine(row);\n        if (column == undefined)\n            column = line.length;\n        column = Math.min(Math.max(column, 0), line.length);\n        return {row: row, column: column};\n    };\n    \n    this.clonePos = function(pos) {\n        return {row: pos.row, column: pos.column};\n    };\n    \n    this.pos = function(row, column) {\n        return {row: row, column: column};\n    };\n    \n    this.$clipPosition = function(position) {\n        var length = this.getLength();\n        if (position.row >= length) {\n            position.row = Math.max(0, length - 1);\n            position.column = this.getLine(length - 1).length;\n        } else {\n            position.row = Math.max(0, position.row);\n            position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n        }\n        return position;\n    };\n    this.insertFullLines = function(row, lines) {\n        row = Math.min(Math.max(row, 0), this.getLength());\n        var column = 0;\n        if (row < this.getLength()) {\n            lines = lines.concat([\"\"]);\n            column = 0;\n        } else {\n            lines = [\"\"].concat(lines);\n            row--;\n            column = this.$lines[row].length;\n        }\n        this.insertMergedLines({row: row, column: column}, lines);\n    };    \n    this.insertMergedLines = function(position, lines) {\n        var start = this.clippedPos(position.row, position.column);\n        var end = {\n            row: start.row + lines.length - 1,\n            column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n        };\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"insert\",\n            lines: lines\n        });\n        \n        return this.clonePos(end);\n    };\n    this.remove = function(range) {\n        var start = this.clippedPos(range.start.row, range.start.column);\n        var end = this.clippedPos(range.end.row, range.end.column);\n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"remove\",\n            lines: this.getLinesForRange({start: start, end: end})\n        });\n        return this.clonePos(start);\n    };\n    this.removeInLine = function(row, startColumn, endColumn) {\n        var start = this.clippedPos(row, startColumn);\n        var end = this.clippedPos(row, endColumn);\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"remove\",\n            lines: this.getLinesForRange({start: start, end: end})\n        }, true);\n        \n        return this.clonePos(start);\n    };\n    this.removeFullLines = function(firstRow, lastRow) {\n        firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n        lastRow  = Math.min(Math.max(0, lastRow ), this.getLength() - 1);\n        var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n        var deleteLastNewLine  = lastRow  < this.getLength() - 1;\n        var startRow = ( deleteFirstNewLine ? firstRow - 1                  : firstRow                    );\n        var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0                           );\n        var endRow   = ( deleteLastNewLine  ? lastRow + 1                   : lastRow                     );\n        var endCol   = ( deleteLastNewLine  ? 0                             : this.getLine(endRow).length ); \n        var range = new Range(startRow, startCol, endRow, endCol);\n        var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n        \n        this.applyDelta({\n            start: range.start,\n            end: range.end,\n            action: \"remove\",\n            lines: this.getLinesForRange(range)\n        });\n        return deletedLines;\n    };\n    this.removeNewLine = function(row) {\n        if (row < this.getLength() - 1 && row >= 0) {\n            this.applyDelta({\n                start: this.pos(row, this.getLine(row).length),\n                end: this.pos(row + 1, 0),\n                action: \"remove\",\n                lines: [\"\", \"\"]\n            });\n        }\n    };\n    this.replace = function(range, text) {\n        if (!(range instanceof Range))\n            range = Range.fromPoints(range.start, range.end);\n        if (text.length === 0 && range.isEmpty())\n            return range.start;\n        if (text == this.getTextRange(range))\n            return range.end;\n\n        this.remove(range);\n        var end;\n        if (text) {\n            end = this.insert(range.start, text);\n        }\n        else {\n            end = range.start;\n        }\n        \n        return end;\n    };\n    this.applyDeltas = function(deltas) {\n        for (var i=0; i<deltas.length; i++) {\n            this.applyDelta(deltas[i]);\n        }\n    };\n    this.revertDeltas = function(deltas) {\n        for (var i=deltas.length-1; i>=0; i--) {\n            this.revertDelta(deltas[i]);\n        }\n    };\n    this.applyDelta = function(delta, doNotValidate) {\n        var isInsert = delta.action == \"insert\";\n        if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n            : !Range.comparePoints(delta.start, delta.end)) {\n            return;\n        }\n        \n        if (isInsert && delta.lines.length > 20000)\n            this.$splitAndapplyLargeDelta(delta, 20000);\n        applyDelta(this.$lines, delta, doNotValidate);\n        this._signal(\"change\", delta);\n    };\n    \n    this.$splitAndapplyLargeDelta = function(delta, MAX) {\n        var lines = delta.lines;\n        var l = lines.length;\n        var row = delta.start.row; \n        var column = delta.start.column;\n        var from = 0, to = 0;\n        do {\n            from = to;\n            to += MAX - 1;\n            var chunk = lines.slice(from, to);\n            if (to > l) {\n                delta.lines = chunk;\n                delta.start.row = row + from;\n                delta.start.column = column;\n                break;\n            }\n            chunk.push(\"\");\n            this.applyDelta({\n                start: this.pos(row + from, column),\n                end: this.pos(row + to, column = 0),\n                action: delta.action,\n                lines: chunk\n            }, true);\n        } while(true);\n    };\n    this.revertDelta = function(delta) {\n        this.applyDelta({\n            start: this.clonePos(delta.start),\n            end: this.clonePos(delta.end),\n            action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n            lines: delta.lines.slice()\n        });\n    };\n    this.indexToPosition = function(index, startRow) {\n        var lines = this.$lines || this.getAllLines();\n        var newlineLength = this.getNewLineCharacter().length;\n        for (var i = startRow || 0, l = lines.length; i < l; i++) {\n            index -= lines[i].length + newlineLength;\n            if (index < 0)\n                return {row: i, column: index + lines[i].length + newlineLength};\n        }\n        return {row: l-1, column: lines[l-1].length};\n    };\n    this.positionToIndex = function(pos, startRow) {\n        var lines = this.$lines || this.getAllLines();\n        var newlineLength = this.getNewLineCharacter().length;\n        var index = 0;\n        var row = Math.min(pos.row, lines.length);\n        for (var i = startRow || 0; i < row; ++i)\n            index += lines[i].length + newlineLength;\n\n        return index + pos.column;\n    };\n\n}).call(Document.prototype);\n\nexports.Document = Document;\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.last = function(a) {\n    return a[a.length - 1];\n};\n\nexports.stringReverse = function(string) {\n    return string.split(\"\").reverse().join(\"\");\n};\n\nexports.stringRepeat = function (string, count) {\n    var result = '';\n    while (count > 0) {\n        if (count & 1)\n            result += string;\n\n        if (count >>= 1)\n            string += string;\n    }\n    return result;\n};\n\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\n\nexports.stringTrimLeft = function (string) {\n    return string.replace(trimBeginRegexp, '');\n};\n\nexports.stringTrimRight = function (string) {\n    return string.replace(trimEndRegexp, '');\n};\n\nexports.copyObject = function(obj) {\n    var copy = {};\n    for (var key in obj) {\n        copy[key] = obj[key];\n    }\n    return copy;\n};\n\nexports.copyArray = function(array){\n    var copy = [];\n    for (var i=0, l=array.length; i<l; i++) {\n        if (array[i] && typeof array[i] == \"object\")\n            copy[i] = this.copyObject(array[i]);\n        else \n            copy[i] = array[i];\n    }\n    return copy;\n};\n\nexports.deepCopy = function deepCopy(obj) {\n    if (typeof obj !== \"object\" || !obj)\n        return obj;\n    var copy;\n    if (Array.isArray(obj)) {\n        copy = [];\n        for (var key = 0; key < obj.length; key++) {\n            copy[key] = deepCopy(obj[key]);\n        }\n        return copy;\n    }\n    if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n        return obj;\n    \n    copy = {};\n    for (var key in obj)\n        copy[key] = deepCopy(obj[key]);\n    return copy;\n};\n\nexports.arrayToMap = function(arr) {\n    var map = {};\n    for (var i=0; i<arr.length; i++) {\n        map[arr[i]] = 1;\n    }\n    return map;\n\n};\n\nexports.createMap = function(props) {\n    var map = Object.create(null);\n    for (var i in props) {\n        map[i] = props[i];\n    }\n    return map;\n};\nexports.arrayRemove = function(array, value) {\n  for (var i = 0; i <= array.length; i++) {\n    if (value === array[i]) {\n      array.splice(i, 1);\n    }\n  }\n};\n\nexports.escapeRegExp = function(str) {\n    return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\n\nexports.escapeHTML = function(str) {\n    return str.replace(/&/g, \"&#38;\").replace(/\"/g, \"&#34;\").replace(/'/g, \"&#39;\").replace(/</g, \"&#60;\");\n};\n\nexports.getMatchOffsets = function(string, regExp) {\n    var matches = [];\n\n    string.replace(regExp, function(str) {\n        matches.push({\n            offset: arguments[arguments.length-2],\n            length: str.length\n        });\n    });\n\n    return matches;\n};\nexports.deferredCall = function(fcn) {\n    var timer = null;\n    var callback = function() {\n        timer = null;\n        fcn();\n    };\n\n    var deferred = function(timeout) {\n        deferred.cancel();\n        timer = setTimeout(callback, timeout || 0);\n        return deferred;\n    };\n\n    deferred.schedule = deferred;\n\n    deferred.call = function() {\n        this.cancel();\n        fcn();\n        return deferred;\n    };\n\n    deferred.cancel = function() {\n        clearTimeout(timer);\n        timer = null;\n        return deferred;\n    };\n    \n    deferred.isPending = function() {\n        return timer;\n    };\n\n    return deferred;\n};\n\n\nexports.delayedCall = function(fcn, defaultTimeout) {\n    var timer = null;\n    var callback = function() {\n        timer = null;\n        fcn();\n    };\n\n    var _self = function(timeout) {\n        if (timer == null)\n            timer = setTimeout(callback, timeout || defaultTimeout);\n    };\n\n    _self.delay = function(timeout) {\n        timer && clearTimeout(timer);\n        timer = setTimeout(callback, timeout || defaultTimeout);\n    };\n    _self.schedule = _self;\n\n    _self.call = function() {\n        this.cancel();\n        fcn();\n    };\n\n    _self.cancel = function() {\n        timer && clearTimeout(timer);\n        timer = null;\n    };\n\n    _self.isPending = function() {\n        return timer;\n    };\n\n    return _self;\n};\n});\n\nace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\nvar Document = require(\"../document\").Document;\nvar lang = require(\"../lib/lang\");\n    \nvar Mirror = exports.Mirror = function(sender) {\n    this.sender = sender;\n    var doc = this.doc = new Document(\"\");\n    \n    var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this));\n    \n    var _self = this;\n    sender.on(\"change\", function(e) {\n        var data = e.data;\n        if (data[0].start) {\n            doc.applyDeltas(data);\n        } else {\n            for (var i = 0; i < data.length; i += 2) {\n                if (Array.isArray(data[i+1])) {\n                    var d = {action: \"insert\", start: data[i], lines: data[i+1]};\n                } else {\n                    var d = {action: \"remove\", start: data[i], end: data[i+1]};\n                }\n                doc.applyDelta(d, true);\n            }\n        }\n        if (_self.$timeout)\n            return deferredUpdate.schedule(_self.$timeout);\n        _self.onUpdate();\n    });\n};\n\n(function() {\n    \n    this.$timeout = 500;\n    \n    this.setTimeout = function(timeout) {\n        this.$timeout = timeout;\n    };\n    \n    this.setValue = function(value) {\n        this.doc.setValue(value);\n        this.deferredUpdate.schedule(this.$timeout);\n    };\n    \n    this.getValue = function(callbackId) {\n        this.sender.callback(this.doc.getValue(), callbackId);\n    };\n    \n    this.onUpdate = function() {\n    };\n    \n    this.isPending = function() {\n        return this.deferredUpdate.isPending();\n    };\n    \n}).call(Mirror.prototype);\n\n});\n\nace.define(\"ace/mode/lua/luaparse\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\n(function (root, name, factory) {\n   factory(exports)\n}(this, 'luaparse', function (exports) {\n  'use strict';\n\n  exports.version = '0.1.4';\n\n  var input, options, length;\n  var defaultOptions = exports.defaultOptions = {\n      wait: false\n    , comments: true\n    , scope: false\n    , locations: false\n    , ranges: false\n  };\n\n  var EOF = 1, StringLiteral = 2, Keyword = 4, Identifier = 8\n    , NumericLiteral = 16, Punctuator = 32, BooleanLiteral = 64\n    , NilLiteral = 128, VarargLiteral = 256;\n\n  exports.tokenTypes = { EOF: EOF, StringLiteral: StringLiteral\n    , Keyword: Keyword, Identifier: Identifier, NumericLiteral: NumericLiteral\n    , Punctuator: Punctuator, BooleanLiteral: BooleanLiteral\n    , NilLiteral: NilLiteral, VarargLiteral: VarargLiteral\n  };\n\n  var errors = exports.errors = {\n      unexpected: 'Unexpected %1 \\'%2\\' near \\'%3\\''\n    , expected: '\\'%1\\' expected near \\'%2\\''\n    , expectedToken: '%1 expected near \\'%2\\''\n    , unfinishedString: 'unfinished string near \\'%1\\''\n    , malformedNumber: 'malformed number near \\'%1\\''\n  };\n\n  var ast = exports.ast = {\n      labelStatement: function(label) {\n      return {\n          type: 'LabelStatement'\n        , label: label\n      };\n    }\n\n    , breakStatement: function() {\n      return {\n          type: 'BreakStatement'\n      };\n    }\n\n    , gotoStatement: function(label) {\n      return {\n          type: 'GotoStatement'\n        , label: label\n      };\n    }\n\n    , returnStatement: function(args) {\n      return {\n          type: 'ReturnStatement'\n        , 'arguments': args\n      };\n    }\n\n    , ifStatement: function(clauses) {\n      return {\n          type: 'IfStatement'\n        , clauses: clauses\n      };\n    }\n    , ifClause: function(condition, body) {\n      return {\n          type: 'IfClause'\n        , condition: condition\n        , body: body\n      };\n    }\n    , elseifClause: function(condition, body) {\n      return {\n          type: 'ElseifClause'\n        , condition: condition\n        , body: body\n      };\n    }\n    , elseClause: function(body) {\n      return {\n          type: 'ElseClause'\n        , body: body\n      };\n    }\n\n    , whileStatement: function(condition, body) {\n      return {\n          type: 'WhileStatement'\n        , condition: condition\n        , body: body\n      };\n    }\n\n    , doStatement: function(body) {\n      return {\n          type: 'DoStatement'\n        , body: body\n      };\n    }\n\n    , repeatStatement: function(condition, body) {\n      return {\n          type: 'RepeatStatement'\n        , condition: condition\n        , body: body\n      };\n    }\n\n    , localStatement: function(variables, init) {\n      return {\n          type: 'LocalStatement'\n        , variables: variables\n        , init: init\n      };\n    }\n\n    , assignmentStatement: function(variables, init) {\n      return {\n          type: 'AssignmentStatement'\n        , variables: variables\n        , init: init\n      };\n    }\n\n    , callStatement: function(expression) {\n      return {\n          type: 'CallStatement'\n        , expression: expression\n      };\n    }\n\n    , functionStatement: function(identifier, parameters, isLocal, body) {\n      return {\n          type: 'FunctionDeclaration'\n        , identifier: identifier\n        , isLocal: isLocal\n        , parameters: parameters\n        , body: body\n      };\n    }\n\n    , forNumericStatement: function(variable, start, end, step, body) {\n      return {\n          type: 'ForNumericStatement'\n        , variable: variable\n        , start: start\n        , end: end\n        , step: step\n        , body: body\n      };\n    }\n\n    , forGenericStatement: function(variables, iterators, body) {\n      return {\n          type: 'ForGenericStatement'\n        , variables: variables\n        , iterators: iterators\n        , body: body\n      };\n    }\n\n    , chunk: function(body) {\n      return {\n          type: 'Chunk'\n        , body: body\n      };\n    }\n\n    , identifier: function(name) {\n      return {\n          type: 'Identifier'\n        , name: name\n      };\n    }\n\n    , literal: function(type, value, raw) {\n      type = (type === StringLiteral) ? 'StringLiteral'\n        : (type === NumericLiteral) ? 'NumericLiteral'\n        : (type === BooleanLiteral) ? 'BooleanLiteral'\n        : (type === NilLiteral) ? 'NilLiteral'\n        : 'VarargLiteral';\n\n      return {\n          type: type\n        , value: value\n        , raw: raw\n      };\n    }\n\n    , tableKey: function(key, value) {\n      return {\n          type: 'TableKey'\n        , key: key\n        , value: value\n      };\n    }\n    , tableKeyString: function(key, value) {\n      return {\n          type: 'TableKeyString'\n        , key: key\n        , value: value\n      };\n    }\n    , tableValue: function(value) {\n      return {\n          type: 'TableValue'\n        , value: value\n      };\n    }\n\n\n    , tableConstructorExpression: function(fields) {\n      return {\n          type: 'TableConstructorExpression'\n        , fields: fields\n      };\n    }\n    , binaryExpression: function(operator, left, right) {\n      var type = ('and' === operator || 'or' === operator) ?\n        'LogicalExpression' :\n        'BinaryExpression';\n\n      return {\n          type: type\n        , operator: operator\n        , left: left\n        , right: right\n      };\n    }\n    , unaryExpression: function(operator, argument) {\n      return {\n          type: 'UnaryExpression'\n        , operator: operator\n        , argument: argument\n      };\n    }\n    , memberExpression: function(base, indexer, identifier) {\n      return {\n          type: 'MemberExpression'\n        , indexer: indexer\n        , identifier: identifier\n        , base: base\n      };\n    }\n\n    , indexExpression: function(base, index) {\n      return {\n          type: 'IndexExpression'\n        , base: base\n        , index: index\n      };\n    }\n\n    , callExpression: function(base, args) {\n      return {\n          type: 'CallExpression'\n        , base: base\n        , 'arguments': args\n      };\n    }\n\n    , tableCallExpression: function(base, args) {\n      return {\n          type: 'TableCallExpression'\n        , base: base\n        , 'arguments': args\n      };\n    }\n\n    , stringCallExpression: function(base, argument) {\n      return {\n          type: 'StringCallExpression'\n        , base: base\n        , argument: argument\n      };\n    }\n\n    , comment: function(value, raw) {\n      return {\n          type: 'Comment'\n        , value: value\n        , raw: raw\n      };\n    }\n  };\n\n  function finishNode(node) {\n    if (trackLocations) {\n      var location = locations.pop();\n      location.complete();\n      if (options.locations) node.loc = location.loc;\n      if (options.ranges) node.range = location.range;\n    }\n    return node;\n  }\n\n  var slice = Array.prototype.slice\n    , toString = Object.prototype.toString\n    , indexOf = function indexOf(array, element) {\n      for (var i = 0, length = array.length; i < length; i++) {\n        if (array[i] === element) return i;\n      }\n      return -1;\n    };\n\n  function indexOfObject(array, property, element) {\n    for (var i = 0, length = array.length; i < length; i++) {\n      if (array[i][property] === element) return i;\n    }\n    return -1;\n  }\n\n  function sprintf(format) {\n    var args = slice.call(arguments, 1);\n    format = format.replace(/%(\\d)/g, function (match, index) {\n      return '' + args[index - 1] || '';\n    });\n    return format;\n  }\n\n  function extend() {\n    var args = slice.call(arguments)\n      , dest = {}\n      , src, prop;\n\n    for (var i = 0, length = args.length; i < length; i++) {\n      src = args[i];\n      for (prop in src) if (src.hasOwnProperty(prop)) {\n        dest[prop] = src[prop];\n      }\n    }\n    return dest;\n  }\n\n  function raise(token) {\n    var message = sprintf.apply(null, slice.call(arguments, 1))\n      , error, col;\n\n    if ('undefined' !== typeof token.line) {\n      col = token.range[0] - token.lineStart;\n      error = new SyntaxError(sprintf('[%1:%2] %3', token.line, col, message));\n      error.line = token.line;\n      error.index = token.range[0];\n      error.column = col;\n    } else {\n      col = index - lineStart + 1;\n      error = new SyntaxError(sprintf('[%1:%2] %3', line, col, message));\n      error.index = index;\n      error.line = line;\n      error.column = col;\n    }\n    throw error;\n  }\n\n  function raiseUnexpectedToken(type, token) {\n    raise(token, errors.expectedToken, type, token.value);\n  }\n\n  function unexpected(found, near) {\n    if ('undefined' === typeof near) near = lookahead.value;\n    if ('undefined' !== typeof found.type) {\n      var type;\n      switch (found.type) {\n        case StringLiteral:   type = 'string';      break;\n        case Keyword:         type = 'keyword';     break;\n        case Identifier:      type = 'identifier';  break;\n        case NumericLiteral:  type = 'number';      break;\n        case Punctuator:      type = 'symbol';      break;\n        case BooleanLiteral:  type = 'boolean';     break;\n        case NilLiteral:\n          return raise(found, errors.unexpected, 'symbol', 'nil', near);\n      }\n      return raise(found, errors.unexpected, type, found.value, near);\n    }\n    return raise(found, errors.unexpected, 'symbol', found, near);\n  }\n\n  var index\n    , token\n    , previousToken\n    , lookahead\n    , comments\n    , tokenStart\n    , line\n    , lineStart;\n\n  exports.lex = lex;\n\n  function lex() {\n    skipWhiteSpace();\n    while (45 === input.charCodeAt(index) &&\n           45 === input.charCodeAt(index + 1)) {\n      scanComment();\n      skipWhiteSpace();\n    }\n    if (index >= length) return {\n        type : EOF\n      , value: '<eof>'\n      , line: line\n      , lineStart: lineStart\n      , range: [index, index]\n    };\n\n    var charCode = input.charCodeAt(index)\n      , next = input.charCodeAt(index + 1);\n    tokenStart = index;\n    if (isIdentifierStart(charCode)) return scanIdentifierOrKeyword();\n\n    switch (charCode) {\n      case 39: case 34: // '\"\n        return scanStringLiteral();\n      case 48: case 49: case 50: case 51: case 52: case 53:\n      case 54: case 55: case 56: case 57:\n        return scanNumericLiteral();\n\n      case 46: // .\n        if (isDecDigit(next)) return scanNumericLiteral();\n        if (46 === next) {\n          if (46 === input.charCodeAt(index + 2)) return scanVarargLiteral();\n          return scanPunctuator('..');\n        }\n        return scanPunctuator('.');\n\n      case 61: // =\n        if (61 === next) return scanPunctuator('==');\n        return scanPunctuator('=');\n\n      case 62: // >\n        if (61 === next) return scanPunctuator('>=');\n        return scanPunctuator('>');\n\n      case 60: // <\n        if (61 === next) return scanPunctuator('<=');\n        return scanPunctuator('<');\n\n      case 126: // ~\n        if (61 === next) return scanPunctuator('~=');\n        return raise({}, errors.expected, '=', '~');\n\n      case 58: // :\n        if (58 === next) return scanPunctuator('::');\n        return scanPunctuator(':');\n\n      case 91: // [\n        if (91 === next || 61 === next) return scanLongStringLiteral();\n        return scanPunctuator('[');\n      case 42: case 47: case 94: case 37: case 44: case 123: case 125:\n      case 93: case 40: case 41: case 59: case 35: case 45: case 43:\n        return scanPunctuator(input.charAt(index));\n    }\n\n    return unexpected(input.charAt(index));\n  }\n\n  function skipWhiteSpace() {\n    while (index < length) {\n      var charCode = input.charCodeAt(index);\n      if (isWhiteSpace(charCode)) {\n        index++;\n      } else if (isLineTerminator(charCode)) {\n        line++;\n        lineStart = ++index;\n      } else {\n        break;\n      }\n    }\n  }\n\n  function scanIdentifierOrKeyword() {\n    var value, type;\n    while (isIdentifierPart(input.charCodeAt(++index)));\n    value = input.slice(tokenStart, index);\n    if (isKeyword(value)) {\n      type = Keyword;\n    } else if ('true' === value || 'false' === value) {\n      type = BooleanLiteral;\n      value = ('true' === value);\n    } else if ('nil' === value) {\n      type = NilLiteral;\n      value = null;\n    } else {\n      type = Identifier;\n    }\n\n    return {\n        type: type\n      , value: value\n      , line: line\n      , lineStart: lineStart\n      , range: [tokenStart, index]\n    };\n  }\n\n  function scanPunctuator(value) {\n    index += value.length;\n    return {\n        type: Punctuator\n      , value: value\n      , line: line\n      , lineStart: lineStart\n      , range: [tokenStart, index]\n    };\n  }\n\n  function scanVarargLiteral() {\n    index += 3;\n    return {\n        type: VarargLiteral\n      , value: '...'\n      , line: line\n      , lineStart: lineStart\n      , range: [tokenStart, index]\n    };\n  }\n\n  function scanStringLiteral() {\n    var delimiter = input.charCodeAt(index++)\n      , stringStart = index\n      , string = ''\n      , charCode;\n\n    while (index < length) {\n      charCode = input.charCodeAt(index++);\n      if (delimiter === charCode) break;\n      if (92 === charCode) { // \\\n        string += input.slice(stringStart, index - 1) + readEscapeSequence();\n        stringStart = index;\n      }\n      else if (index >= length || isLineTerminator(charCode)) {\n        string += input.slice(stringStart, index - 1);\n        raise({}, errors.unfinishedString, string + String.fromCharCode(charCode));\n      }\n    }\n    string += input.slice(stringStart, index - 1);\n\n    return {\n        type: StringLiteral\n      , value: string\n      , line: line\n      , lineStart: lineStart\n      , range: [tokenStart, index]\n    };\n  }\n\n  function scanLongStringLiteral() {\n    var string = readLongString();\n    if (false === string) raise(token, errors.expected, '[', token.value);\n\n    return {\n        type: StringLiteral\n      , value: string\n      , line: line\n      , lineStart: lineStart\n      , range: [tokenStart, index]\n    };\n  }\n\n  function scanNumericLiteral() {\n    var character = input.charAt(index)\n      , next = input.charAt(index + 1);\n\n    var value = ('0' === character && 'xX'.indexOf(next || null) >= 0) ?\n      readHexLiteral() : readDecLiteral();\n\n    return {\n        type: NumericLiteral\n      , value: value\n      , line: line\n      , lineStart: lineStart\n      , range: [tokenStart, index]\n    };\n  }\n\n  function readHexLiteral() {\n    var fraction = 0 // defaults to 0 as it gets summed\n      , binaryExponent = 1 // defaults to 1 as it gets multiplied\n      , binarySign = 1 // positive\n      , digit, fractionStart, exponentStart, digitStart;\n\n    digitStart = index += 2; // Skip 0x part\n    if (!isHexDigit(input.charCodeAt(index)))\n      raise({}, errors.malformedNumber, input.slice(tokenStart, index));\n\n    while (isHexDigit(input.charCodeAt(index))) index++;\n    digit = parseInt(input.slice(digitStart, index), 16);\n    if ('.' === input.charAt(index)) {\n      fractionStart = ++index;\n\n      while (isHexDigit(input.charCodeAt(index))) index++;\n      fraction = input.slice(fractionStart, index);\n      fraction = (fractionStart === index) ? 0\n        : parseInt(fraction, 16) / Math.pow(16, index - fractionStart);\n    }\n    if ('pP'.indexOf(input.charAt(index) || null) >= 0) {\n      index++;\n      if ('+-'.indexOf(input.charAt(index) || null) >= 0)\n        binarySign = ('+' === input.charAt(index++)) ? 1 : -1;\n\n      exponentStart = index;\n      if (!isDecDigit(input.charCodeAt(index)))\n        raise({}, errors.malformedNumber, input.slice(tokenStart, index));\n\n      while (isDecDigit(input.charCodeAt(index))) index++;\n      binaryExponent = input.slice(exponentStart, index);\n      binaryExponent = Math.pow(2, binaryExponent * binarySign);\n    }\n\n    return (digit + fraction) * binaryExponent;\n  }\n\n  function readDecLiteral() {\n    while (isDecDigit(input.charCodeAt(index))) index++;\n    if ('.' === input.charAt(index)) {\n      index++;\n      while (isDecDigit(input.charCodeAt(index))) index++;\n    }\n    if ('eE'.indexOf(input.charAt(index) || null) >= 0) {\n      index++;\n      if ('+-'.indexOf(input.charAt(index) || null) >= 0) index++;\n      if (!isDecDigit(input.charCodeAt(index)))\n        raise({}, errors.malformedNumber, input.slice(tokenStart, index));\n\n      while (isDecDigit(input.charCodeAt(index))) index++;\n    }\n\n    return parseFloat(input.slice(tokenStart, index));\n  }\n\n  function readEscapeSequence() {\n    var sequenceStart = index;\n    switch (input.charAt(index)) {\n      case 'n': index++; return '\\n';\n      case 'r': index++; return '\\r';\n      case 't': index++; return '\\t';\n      case 'v': index++; return '\\x0B';\n      case 'b': index++; return '\\b';\n      case 'f': index++; return '\\f';\n      case 'z': index++; skipWhiteSpace(); return '';\n      case 'x':\n        if (isHexDigit(input.charCodeAt(index + 1)) &&\n            isHexDigit(input.charCodeAt(index + 2))) {\n          index += 3;\n          return '\\\\' + input.slice(sequenceStart, index);\n        }\n        return '\\\\' + input.charAt(index++);\n      default:\n        if (isDecDigit(input.charCodeAt(index))) {\n          while (isDecDigit(input.charCodeAt(++index)));\n          return '\\\\' + input.slice(sequenceStart, index);\n        }\n        return input.charAt(index++);\n    }\n  }\n\n  function scanComment() {\n    tokenStart = index;\n    index += 2; // --\n\n    var character = input.charAt(index)\n      , content = ''\n      , isLong = false\n      , commentStart = index\n      , lineStartComment = lineStart\n      , lineComment = line;\n\n    if ('[' === character) {\n      content = readLongString();\n      if (false === content) content = character;\n      else isLong = true;\n    }\n    if (!isLong) {\n      while (index < length) {\n        if (isLineTerminator(input.charCodeAt(index))) break;\n        index++;\n      }\n      if (options.comments) content = input.slice(commentStart, index);\n    }\n\n    if (options.comments) {\n      var node = ast.comment(content, input.slice(tokenStart, index));\n      if (options.locations) {\n        node.loc = {\n            start: { line: lineComment, column: tokenStart - lineStartComment }\n          , end: { line: line, column: index - lineStart }\n        };\n      }\n      if (options.ranges) {\n        node.range = [tokenStart, index];\n      }\n      comments.push(node);\n    }\n  }\n\n  function readLongString() {\n    var level = 0\n      , content = ''\n      , terminator = false\n      , character, stringStart;\n\n    index++; // [\n    while ('=' === input.charAt(index + level)) level++;\n    if ('[' !== input.charAt(index + level)) return false;\n\n    index += level + 1;\n    if (isLineTerminator(input.charCodeAt(index))) {\n      line++;\n      lineStart = index++;\n    }\n\n    stringStart = index;\n    while (index < length) {\n      character = input.charAt(index++);\n      if (isLineTerminator(character.charCodeAt(0))) {\n        line++;\n        lineStart = index;\n      }\n      if (']' === character) {\n        terminator = true;\n        for (var i = 0; i < level; i++) {\n          if ('=' !== input.charAt(index + i)) terminator = false;\n        }\n        if (']' !== input.charAt(index + level)) terminator = false;\n      }\n      if (terminator) break;\n    }\n    content += input.slice(stringStart, index - 1);\n    index += level + 1;\n\n    return content;\n  }\n\n  function next() {\n    previousToken = token;\n    token = lookahead;\n    lookahead = lex();\n  }\n\n  function consume(value) {\n    if (value === token.value) {\n      next();\n      return true;\n    }\n    return false;\n  }\n\n  function expect(value) {\n    if (value === token.value) next();\n    else raise(token, errors.expected, value, token.value);\n  }\n\n  function isWhiteSpace(charCode) {\n    return 9 === charCode || 32 === charCode || 0xB === charCode || 0xC === charCode;\n  }\n\n  function isLineTerminator(charCode) {\n    return 10 === charCode || 13 === charCode;\n  }\n\n  function isDecDigit(charCode) {\n    return charCode >= 48 && charCode <= 57;\n  }\n\n  function isHexDigit(charCode) {\n    return (charCode >= 48 && charCode <= 57) || (charCode >= 97 && charCode <= 102) || (charCode >= 65 && charCode <= 70);\n  }\n\n  function isIdentifierStart(charCode) {\n    return (charCode >= 65 && charCode <= 90) || (charCode >= 97 && charCode <= 122) || 95 === charCode;\n  }\n\n  function isIdentifierPart(charCode) {\n    return (charCode >= 65 && charCode <= 90) || (charCode >= 97 && charCode <= 122) || 95 === charCode || (charCode >= 48 && charCode <= 57);\n  }\n\n  function isKeyword(id) {\n    switch (id.length) {\n      case 2:\n        return 'do' === id || 'if' === id || 'in' === id || 'or' === id;\n      case 3:\n        return 'and' === id || 'end' === id || 'for' === id || 'not' === id;\n      case 4:\n        return 'else' === id || 'goto' === id || 'then' === id;\n      case 5:\n        return 'break' === id || 'local' === id || 'until' === id || 'while' === id;\n      case 6:\n        return 'elseif' === id || 'repeat' === id || 'return' === id;\n      case 8:\n        return 'function' === id;\n    }\n    return false;\n  }\n\n  function isUnary(token) {\n    if (Punctuator === token.type) return '#-'.indexOf(token.value) >= 0;\n    if (Keyword === token.type) return 'not' === token.value;\n    return false;\n  }\n  function isCallExpression(expression) {\n    switch (expression.type) {\n      case 'CallExpression':\n      case 'TableCallExpression':\n      case 'StringCallExpression':\n        return true;\n    }\n    return false;\n  }\n\n  function isBlockFollow(token) {\n    if (EOF === token.type) return true;\n    if (Keyword !== token.type) return false;\n    switch (token.value) {\n      case 'else': case 'elseif':\n      case 'end': case 'until':\n        return true;\n      default:\n        return false;\n    }\n  }\n  var scopes\n    , scopeDepth\n    , globals;\n  function createScope() {\n    scopes.push(Array.apply(null, scopes[scopeDepth++]));\n  }\n  function exitScope() {\n    scopes.pop();\n    scopeDepth--;\n  }\n  function scopeIdentifierName(name) {\n    if (-1 !== indexOf(scopes[scopeDepth], name)) return;\n    scopes[scopeDepth].push(name);\n  }\n  function scopeIdentifier(node) {\n    scopeIdentifierName(node.name);\n    attachScope(node, true);\n  }\n  function attachScope(node, isLocal) {\n    if (!isLocal && -1 === indexOfObject(globals, 'name', node.name))\n      globals.push(node);\n\n    node.isLocal = isLocal;\n  }\n  function scopeHasName(name) {\n    return (-1 !== indexOf(scopes[scopeDepth], name));\n  }\n\n  var locations = []\n    , trackLocations;\n\n  function createLocationMarker() {\n    return new Marker(token);\n  }\n\n  function Marker(token) {\n    if (options.locations) {\n      this.loc = {\n          start: {\n            line: token.line\n          , column: token.range[0] - token.lineStart\n        }\n        , end: {\n            line: 0\n          , column: 0\n        }\n      };\n    }\n    if (options.ranges) this.range = [token.range[0], 0];\n  }\n  Marker.prototype.complete = function() {\n    if (options.locations) {\n      this.loc.end.line = previousToken.line;\n      this.loc.end.column = previousToken.range[1] - previousToken.lineStart;\n    }\n    if (options.ranges) {\n      this.range[1] = previousToken.range[1];\n    }\n  };\n  function markLocation() {\n    if (trackLocations) locations.push(createLocationMarker());\n  }\n  function pushLocation(marker) {\n    if (trackLocations) locations.push(marker);\n  }\n\n  function parseChunk() {\n    next();\n    markLocation();\n    var body = parseBlock();\n    if (EOF !== token.type) unexpected(token);\n    if (trackLocations && !body.length) previousToken = token;\n    return finishNode(ast.chunk(body));\n  }\n\n  function parseBlock(terminator) {\n    var block = []\n      , statement;\n    if (options.scope) createScope();\n\n    while (!isBlockFollow(token)) {\n      if ('return' === token.value) {\n        block.push(parseStatement());\n        break;\n      }\n      statement = parseStatement();\n      if (statement) block.push(statement);\n    }\n\n    if (options.scope) exitScope();\n    return block;\n  }\n\n  function parseStatement() {\n    markLocation();\n    if (Keyword === token.type) {\n      switch (token.value) {\n        case 'local':    next(); return parseLocalStatement();\n        case 'if':       next(); return parseIfStatement();\n        case 'return':   next(); return parseReturnStatement();\n        case 'function': next();\n          var name = parseFunctionName();\n          return parseFunctionDeclaration(name);\n        case 'while':    next(); return parseWhileStatement();\n        case 'for':      next(); return parseForStatement();\n        case 'repeat':   next(); return parseRepeatStatement();\n        case 'break':    next(); return parseBreakStatement();\n        case 'do':       next(); return parseDoStatement();\n        case 'goto':     next(); return parseGotoStatement();\n      }\n    }\n\n    if (Punctuator === token.type) {\n      if (consume('::')) return parseLabelStatement();\n    }\n    if (trackLocations) locations.pop();\n    if (consume(';')) return;\n\n    return parseAssignmentOrCallStatement();\n  }\n\n  function parseLabelStatement() {\n    var name = token.value\n      , label = parseIdentifier();\n\n    if (options.scope) {\n      scopeIdentifierName('::' + name + '::');\n      attachScope(label, true);\n    }\n\n    expect('::');\n    return finishNode(ast.labelStatement(label));\n  }\n\n  function parseBreakStatement() {\n    return finishNode(ast.breakStatement());\n  }\n\n  function parseGotoStatement() {\n    var name = token.value\n      , label = parseIdentifier();\n\n    if (options.scope) label.isLabel = scopeHasName('::' + name + '::');\n    return finishNode(ast.gotoStatement(label));\n  }\n\n  function parseDoStatement() {\n    var body = parseBlock();\n    expect('end');\n    return finishNode(ast.doStatement(body));\n  }\n\n  function parseWhileStatement() {\n    var condition = parseExpectedExpression();\n    expect('do');\n    var body = parseBlock();\n    expect('end');\n    return finishNode(ast.whileStatement(condition, body));\n  }\n\n  function parseRepeatStatement() {\n    var body = parseBlock();\n    expect('until');\n    var condition = parseExpectedExpression();\n    return finishNode(ast.repeatStatement(condition, body));\n  }\n\n  function parseReturnStatement() {\n    var expressions = [];\n\n    if ('end' !== token.value) {\n      var expression = parseExpression();\n      if (null != expression) expressions.push(expression);\n      while (consume(',')) {\n        expression = parseExpectedExpression();\n        expressions.push(expression);\n      }\n      consume(';'); // grammar tells us ; is optional here.\n    }\n    return finishNode(ast.returnStatement(expressions));\n  }\n\n  function parseIfStatement() {\n    var clauses = []\n      , condition\n      , body\n      , marker;\n    if (trackLocations) {\n      marker = locations[locations.length - 1];\n      locations.push(marker);\n    }\n    condition = parseExpectedExpression();\n    expect('then');\n    body = parseBlock();\n    clauses.push(finishNode(ast.ifClause(condition, body)));\n\n    if (trackLocations) marker = createLocationMarker();\n    while (consume('elseif')) {\n      pushLocation(marker);\n      condition = parseExpectedExpression();\n      expect('then');\n      body = parseBlock();\n      clauses.push(finishNode(ast.elseifClause(condition, body)));\n      if (trackLocations) marker = createLocationMarker();\n    }\n\n    if (consume('else')) {\n      if (trackLocations) {\n        marker = new Marker(previousToken);\n        locations.push(marker);\n      }\n      body = parseBlock();\n      clauses.push(finishNode(ast.elseClause(body)));\n    }\n\n    expect('end');\n    return finishNode(ast.ifStatement(clauses));\n  }\n\n  function parseForStatement() {\n    var variable = parseIdentifier()\n      , body;\n    if (options.scope) scopeIdentifier(variable);\n    if (consume('=')) {\n      var start = parseExpectedExpression();\n      expect(',');\n      var end = parseExpectedExpression();\n      var step = consume(',') ? parseExpectedExpression() : null;\n\n      expect('do');\n      body = parseBlock();\n      expect('end');\n\n      return finishNode(ast.forNumericStatement(variable, start, end, step, body));\n    }\n    else {\n      var variables = [variable];\n      while (consume(',')) {\n        variable = parseIdentifier();\n        if (options.scope) scopeIdentifier(variable);\n        variables.push(variable);\n      }\n      expect('in');\n      var iterators = [];\n      do {\n        var expression = parseExpectedExpression();\n        iterators.push(expression);\n      } while (consume(','));\n\n      expect('do');\n      body = parseBlock();\n      expect('end');\n\n      return finishNode(ast.forGenericStatement(variables, iterators, body));\n    }\n  }\n\n  function parseLocalStatement() {\n    var name;\n\n    if (Identifier === token.type) {\n      var variables = []\n        , init = [];\n\n      do {\n        name = parseIdentifier();\n\n        variables.push(name);\n      } while (consume(','));\n\n      if (consume('=')) {\n        do {\n          var expression = parseExpectedExpression();\n          init.push(expression);\n        } while (consume(','));\n      }\n      if (options.scope) {\n        for (var i = 0, l = variables.length; i < l; i++) {\n          scopeIdentifier(variables[i]);\n        }\n      }\n\n      return finishNode(ast.localStatement(variables, init));\n    }\n    if (consume('function')) {\n      name = parseIdentifier();\n      if (options.scope) scopeIdentifier(name);\n      return parseFunctionDeclaration(name, true);\n    } else {\n      raiseUnexpectedToken('<name>', token);\n    }\n  }\n\n  function parseAssignmentOrCallStatement() {\n    var previous = token\n      , expression, marker;\n\n    if (trackLocations) marker = createLocationMarker();\n    expression = parsePrefixExpression();\n\n    if (null == expression) return unexpected(token);\n    if (',='.indexOf(token.value) >= 0) {\n      var variables = [expression]\n        , init = []\n        , exp;\n\n      while (consume(',')) {\n        exp = parsePrefixExpression();\n        if (null == exp) raiseUnexpectedToken('<expression>', token);\n        variables.push(exp);\n      }\n      expect('=');\n      do {\n        exp = parseExpectedExpression();\n        init.push(exp);\n      } while (consume(','));\n\n      pushLocation(marker);\n      return finishNode(ast.assignmentStatement(variables, init));\n    }\n    if (isCallExpression(expression)) {\n      pushLocation(marker);\n      return finishNode(ast.callStatement(expression));\n    }\n    return unexpected(previous);\n  }\n\n  function parseIdentifier() {\n    markLocation();\n    var identifier = token.value;\n    if (Identifier !== token.type) raiseUnexpectedToken('<name>', token);\n    next();\n    return finishNode(ast.identifier(identifier));\n  }\n\n  function parseFunctionDeclaration(name, isLocal) {\n    var parameters = [];\n    expect('(');\n    if (!consume(')')) {\n      while (true) {\n        if (Identifier === token.type) {\n          var parameter = parseIdentifier();\n          if (options.scope) scopeIdentifier(parameter);\n\n          parameters.push(parameter);\n\n          if (consume(',')) continue;\n          else if (consume(')')) break;\n        }\n        else if (VarargLiteral === token.type) {\n          parameters.push(parsePrimaryExpression());\n          expect(')');\n          break;\n        } else {\n          raiseUnexpectedToken('<name> or \\'...\\'', token);\n        }\n      }\n    }\n\n    var body = parseBlock();\n    expect('end');\n\n    isLocal = isLocal || false;\n    return finishNode(ast.functionStatement(name, parameters, isLocal, body));\n  }\n\n  function parseFunctionName() {\n    var base, name, marker;\n\n    if (trackLocations) marker = createLocationMarker();\n    base = parseIdentifier();\n\n    if (options.scope) attachScope(base, false);\n\n    while (consume('.')) {\n      pushLocation(marker);\n      name = parseIdentifier();\n      if (options.scope) attachScope(name, false);\n      base = finishNode(ast.memberExpression(base, '.', name));\n    }\n\n    if (consume(':')) {\n      pushLocation(marker);\n      name = parseIdentifier();\n      if (options.scope) attachScope(name, false);\n      base = finishNode(ast.memberExpression(base, ':', name));\n    }\n\n    return base;\n  }\n\n  function parseTableConstructor() {\n    var fields = []\n      , key, value;\n\n    while (true) {\n      markLocation();\n      if (Punctuator === token.type && consume('[')) {\n        key = parseExpectedExpression();\n        expect(']');\n        expect('=');\n        value = parseExpectedExpression();\n        fields.push(finishNode(ast.tableKey(key, value)));\n      } else if (Identifier === token.type) {\n        key = parseExpectedExpression();\n        if (consume('=')) {\n          value = parseExpectedExpression();\n          fields.push(finishNode(ast.tableKeyString(key, value)));\n        } else {\n          fields.push(finishNode(ast.tableValue(key)));\n        }\n      } else {\n        if (null == (value = parseExpression())) {\n          locations.pop();\n          break;\n        }\n        fields.push(finishNode(ast.tableValue(value)));\n      }\n      if (',;'.indexOf(token.value) >= 0) {\n        next();\n        continue;\n      }\n      if ('}' === token.value) break;\n    }\n    expect('}');\n    return finishNode(ast.tableConstructorExpression(fields));\n  }\n\n  function parseExpression() {\n    var expression = parseSubExpression(0);\n    return expression;\n  }\n\n  function parseExpectedExpression() {\n    var expression = parseExpression();\n    if (null == expression) raiseUnexpectedToken('<expression>', token);\n    else return expression;\n  }\n\n  function binaryPrecedence(operator) {\n    var charCode = operator.charCodeAt(0)\n      , length = operator.length;\n\n    if (1 === length) {\n      switch (charCode) {\n        case 94: return 10; // ^\n        case 42: case 47: case 37: return 7; // * / %\n        case 43: case 45: return 6; // + -\n        case 60: case 62: return 3; // < >\n      }\n    } else if (2 === length) {\n      switch (charCode) {\n        case 46: return 5; // ..\n        case 60: case 62: case 61: case 126: return 3; // <= >= == ~=\n        case 111: return 1; // or\n      }\n    } else if (97 === charCode && 'and' === operator) return 2;\n    return 0;\n  }\n\n  function parseSubExpression(minPrecedence) {\n    var operator = token.value\n      , expression, marker;\n\n    if (trackLocations) marker = createLocationMarker();\n    if (isUnary(token)) {\n      markLocation();\n      next();\n      var argument = parseSubExpression(8);\n      if (argument == null) raiseUnexpectedToken('<expression>', token);\n      expression = finishNode(ast.unaryExpression(operator, argument));\n    }\n    if (null == expression) {\n      expression = parsePrimaryExpression();\n      if (null == expression) {\n        expression = parsePrefixExpression();\n      }\n    }\n    if (null == expression) return null;\n\n    var precedence;\n    while (true) {\n      operator = token.value;\n\n      precedence = (Punctuator === token.type || Keyword === token.type) ?\n        binaryPrecedence(operator) : 0;\n\n      if (precedence === 0 || precedence <= minPrecedence) break;\n      if ('^' === operator || '..' === operator) precedence--;\n      next();\n      var right = parseSubExpression(precedence);\n      if (null == right) raiseUnexpectedToken('<expression>', token);\n      if (trackLocations) locations.push(marker);\n      expression = finishNode(ast.binaryExpression(operator, expression, right));\n\n    }\n    return expression;\n  }\n\n  function parsePrefixExpression() {\n    var base, name, marker\n      , isLocal;\n\n    if (trackLocations) marker = createLocationMarker();\n    if (Identifier === token.type) {\n      name = token.value;\n      base = parseIdentifier();\n      if (options.scope) attachScope(base, isLocal = scopeHasName(name));\n    } else if (consume('(')) {\n      base = parseExpectedExpression();\n      expect(')');\n      if (options.scope) isLocal = base.isLocal;\n    } else {\n      return null;\n    }\n    var expression, identifier;\n    while (true) {\n      if (Punctuator === token.type) {\n        switch (token.value) {\n          case '[':\n            pushLocation(marker);\n            next();\n            expression = parseExpectedExpression();\n            base = finishNode(ast.indexExpression(base, expression));\n            expect(']');\n            break;\n          case '.':\n            pushLocation(marker);\n            next();\n            identifier = parseIdentifier();\n            if (options.scope) attachScope(identifier, isLocal);\n            base = finishNode(ast.memberExpression(base, '.', identifier));\n            break;\n          case ':':\n            pushLocation(marker);\n            next();\n            identifier = parseIdentifier();\n            if (options.scope) attachScope(identifier, isLocal);\n            base = finishNode(ast.memberExpression(base, ':', identifier));\n            pushLocation(marker);\n            base = parseCallExpression(base);\n            break;\n          case '(': case '{': // args\n            pushLocation(marker);\n            base = parseCallExpression(base);\n            break;\n          default:\n            return base;\n        }\n      } else if (StringLiteral === token.type) {\n        pushLocation(marker);\n        base = parseCallExpression(base);\n      } else {\n        break;\n      }\n    }\n\n    return base;\n  }\n\n  function parseCallExpression(base) {\n    if (Punctuator === token.type) {\n      switch (token.value) {\n        case '(':\n          next();\n          var expressions = [];\n          var expression = parseExpression();\n          if (null != expression) expressions.push(expression);\n          while (consume(',')) {\n            expression = parseExpectedExpression();\n            expressions.push(expression);\n          }\n\n          expect(')');\n          return finishNode(ast.callExpression(base, expressions));\n\n        case '{':\n          markLocation();\n          next();\n          var table = parseTableConstructor();\n          return finishNode(ast.tableCallExpression(base, table));\n      }\n    } else if (StringLiteral === token.type) {\n      return finishNode(ast.stringCallExpression(base, parsePrimaryExpression()));\n    }\n\n    raiseUnexpectedToken('function arguments', token);\n  }\n\n  function parsePrimaryExpression() {\n    var literals = StringLiteral | NumericLiteral | BooleanLiteral | NilLiteral | VarargLiteral\n      , value = token.value\n      , type = token.type\n      , marker;\n\n    if (trackLocations) marker = createLocationMarker();\n\n    if (type & literals) {\n      pushLocation(marker);\n      var raw = input.slice(token.range[0], token.range[1]);\n      next();\n      return finishNode(ast.literal(type, value, raw));\n    } else if (Keyword === type && 'function' === value) {\n      pushLocation(marker);\n      next();\n      return parseFunctionDeclaration(null);\n    } else if (consume('{')) {\n      pushLocation(marker);\n      return parseTableConstructor();\n    }\n  }\n\n  exports.parse = parse;\n\n  function parse(_input, _options) {\n    if ('undefined' === typeof _options && 'object' === typeof _input) {\n      _options = _input;\n      _input = undefined;\n    }\n    if (!_options) _options = {};\n\n    input = _input || '';\n    options = extend(defaultOptions, _options);\n    index = 0;\n    line = 1;\n    lineStart = 0;\n    length = input.length;\n    scopes = [[]];\n    scopeDepth = 0;\n    globals = [];\n    locations = [];\n\n    if (options.comments) comments = [];\n    if (!options.wait) return end();\n    return exports;\n  }\n  exports.write = write;\n\n  function write(_input) {\n    input += String(_input);\n    length = input.length;\n    return exports;\n  }\n  exports.end = end;\n\n  function end(_input) {\n    if ('undefined' !== typeof _input) write(_input);\n\n    length = input.length;\n    trackLocations = options.locations || options.ranges;\n    lookahead = lex();\n\n    var chunk = parseChunk();\n    if (options.comments) chunk.comments = comments;\n    if (options.scope) chunk.globals = globals;\n\n    if (locations.length > 0)\n      throw new Error('Location tracking failed. This is most likely a bug in luaparse');\n\n    return chunk;\n  }\n\n}));\n\n});\n\nace.define(\"ace/mode/lua_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/lua/luaparse\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar Mirror = require(\"../worker/mirror\").Mirror;\nvar luaparse = require(\"../mode/lua/luaparse\");\n\nvar Worker = exports.Worker = function(sender) {\n    Mirror.call(this, sender);\n    this.setTimeout(500);\n};\n\noop.inherits(Worker, Mirror);\n\n(function() {\n\n    this.onUpdate = function() {\n        var value = this.doc.getValue();\n        var errors = [];\n        try {\n            luaparse.parse(value);\n        } catch(e) {\n            if (e instanceof SyntaxError) {\n                errors.push({\n                    row: e.line - 1,\n                    column: e.column,\n                    text: e.message,\n                    type: \"error\"\n                });\n            }\n        }\n        this.sender.emit(\"annotate\", errors);\n    };\n\n}).call(Worker.prototype);\n\n});\n\nace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\nfunction Empty() {}\n\nif (!Function.prototype.bind) {\n    Function.prototype.bind = function bind(that) { // .length is 1\n        var target = this;\n        if (typeof target != \"function\") {\n            throw new TypeError(\"Function.prototype.bind called on incompatible \" + target);\n        }\n        var args = slice.call(arguments, 1); // for normal call\n        var bound = function () {\n\n            if (this instanceof bound) {\n\n                var result = target.apply(\n                    this,\n                    args.concat(slice.call(arguments))\n                );\n                if (Object(result) === result) {\n                    return result;\n                }\n                return this;\n\n            } else {\n                return target.apply(\n                    that,\n                    args.concat(slice.call(arguments))\n                );\n\n            }\n\n        };\n        if(target.prototype) {\n            Empty.prototype = target.prototype;\n            bound.prototype = new Empty();\n            Empty.prototype = null;\n        }\n        return bound;\n    };\n}\nvar call = Function.prototype.call;\nvar prototypeOfArray = Array.prototype;\nvar prototypeOfObject = Object.prototype;\nvar slice = prototypeOfArray.slice;\nvar _toString = call.bind(prototypeOfObject.toString);\nvar owns = call.bind(prototypeOfObject.hasOwnProperty);\nvar defineGetter;\nvar defineSetter;\nvar lookupGetter;\nvar lookupSetter;\nvar supportsAccessors;\nif ((supportsAccessors = owns(prototypeOfObject, \"__defineGetter__\"))) {\n    defineGetter = call.bind(prototypeOfObject.__defineGetter__);\n    defineSetter = call.bind(prototypeOfObject.__defineSetter__);\n    lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);\n    lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);\n}\nif ([1,2].splice(0).length != 2) {\n    if(function() { // test IE < 9 to splice bug - see issue #138\n        function makeArray(l) {\n            var a = new Array(l+2);\n            a[0] = a[1] = 0;\n            return a;\n        }\n        var array = [], lengthBefore;\n        \n        array.splice.apply(array, makeArray(20));\n        array.splice.apply(array, makeArray(26));\n\n        lengthBefore = array.length; //46\n        array.splice(5, 0, \"XXX\"); // add one element\n\n        lengthBefore + 1 == array.length\n\n        if (lengthBefore + 1 == array.length) {\n            return true;// has right splice implementation without bugs\n        }\n    }()) {//IE 6/7\n        var array_splice = Array.prototype.splice;\n        Array.prototype.splice = function(start, deleteCount) {\n            if (!arguments.length) {\n                return [];\n            } else {\n                return array_splice.apply(this, [\n                    start === void 0 ? 0 : start,\n                    deleteCount === void 0 ? (this.length - start) : deleteCount\n                ].concat(slice.call(arguments, 2)))\n            }\n        };\n    } else {//IE8\n        Array.prototype.splice = function(pos, removeCount){\n            var length = this.length;\n            if (pos > 0) {\n                if (pos > length)\n                    pos = length;\n            } else if (pos == void 0) {\n                pos = 0;\n            } else if (pos < 0) {\n                pos = Math.max(length + pos, 0);\n            }\n\n            if (!(pos+removeCount < length))\n                removeCount = length - pos;\n\n            var removed = this.slice(pos, pos+removeCount);\n            var insert = slice.call(arguments, 2);\n            var add = insert.length;            \n            if (pos === length) {\n                if (add) {\n                    this.push.apply(this, insert);\n                }\n            } else {\n                var remove = Math.min(removeCount, length - pos);\n                var tailOldPos = pos + remove;\n                var tailNewPos = tailOldPos + add - remove;\n                var tailCount = length - tailOldPos;\n                var lengthAfterRemove = length - remove;\n\n                if (tailNewPos < tailOldPos) { // case A\n                    for (var i = 0; i < tailCount; ++i) {\n                        this[tailNewPos+i] = this[tailOldPos+i];\n                    }\n                } else if (tailNewPos > tailOldPos) { // case B\n                    for (i = tailCount; i--; ) {\n                        this[tailNewPos+i] = this[tailOldPos+i];\n                    }\n                } // else, add == remove (nothing to do)\n\n                if (add && pos === lengthAfterRemove) {\n                    this.length = lengthAfterRemove; // truncate array\n                    this.push.apply(this, insert);\n                } else {\n                    this.length = lengthAfterRemove + add; // reserves space\n                    for (i = 0; i < add; ++i) {\n                        this[pos+i] = insert[i];\n                    }\n                }\n            }\n            return removed;\n        };\n    }\n}\nif (!Array.isArray) {\n    Array.isArray = function isArray(obj) {\n        return _toString(obj) == \"[object Array]\";\n    };\n}\nvar boxedString = Object(\"a\"),\n    splitString = boxedString[0] != \"a\" || !(0 in boxedString);\n\nif (!Array.prototype.forEach) {\n    Array.prototype.forEach = function forEach(fun /*, thisp*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            thisp = arguments[1],\n            i = -1,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(); // TODO message\n        }\n\n        while (++i < length) {\n            if (i in self) {\n                fun.call(thisp, self[i], i, object);\n            }\n        }\n    };\n}\nif (!Array.prototype.map) {\n    Array.prototype.map = function map(fun /*, thisp*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            result = Array(length),\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self)\n                result[i] = fun.call(thisp, self[i], i, object);\n        }\n        return result;\n    };\n}\nif (!Array.prototype.filter) {\n    Array.prototype.filter = function filter(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                    object,\n            length = self.length >>> 0,\n            result = [],\n            value,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self) {\n                value = self[i];\n                if (fun.call(thisp, value, i, object)) {\n                    result.push(value);\n                }\n            }\n        }\n        return result;\n    };\n}\nif (!Array.prototype.every) {\n    Array.prototype.every = function every(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self && !fun.call(thisp, self[i], i, object)) {\n                return false;\n            }\n        }\n        return true;\n    };\n}\nif (!Array.prototype.some) {\n    Array.prototype.some = function some(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self && fun.call(thisp, self[i], i, object)) {\n                return true;\n            }\n        }\n        return false;\n    };\n}\nif (!Array.prototype.reduce) {\n    Array.prototype.reduce = function reduce(fun /*, initial*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n        if (!length && arguments.length == 1) {\n            throw new TypeError(\"reduce of empty array with no initial value\");\n        }\n\n        var i = 0;\n        var result;\n        if (arguments.length >= 2) {\n            result = arguments[1];\n        } else {\n            do {\n                if (i in self) {\n                    result = self[i++];\n                    break;\n                }\n                if (++i >= length) {\n                    throw new TypeError(\"reduce of empty array with no initial value\");\n                }\n            } while (true);\n        }\n\n        for (; i < length; i++) {\n            if (i in self) {\n                result = fun.call(void 0, result, self[i], i, object);\n            }\n        }\n\n        return result;\n    };\n}\nif (!Array.prototype.reduceRight) {\n    Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n        if (!length && arguments.length == 1) {\n            throw new TypeError(\"reduceRight of empty array with no initial value\");\n        }\n\n        var result, i = length - 1;\n        if (arguments.length >= 2) {\n            result = arguments[1];\n        } else {\n            do {\n                if (i in self) {\n                    result = self[i--];\n                    break;\n                }\n                if (--i < 0) {\n                    throw new TypeError(\"reduceRight of empty array with no initial value\");\n                }\n            } while (true);\n        }\n\n        do {\n            if (i in this) {\n                result = fun.call(void 0, result, self[i], i, object);\n            }\n        } while (i--);\n\n        return result;\n    };\n}\nif (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {\n    Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {\n        var self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                toObject(this),\n            length = self.length >>> 0;\n\n        if (!length) {\n            return -1;\n        }\n\n        var i = 0;\n        if (arguments.length > 1) {\n            i = toInteger(arguments[1]);\n        }\n        i = i >= 0 ? i : Math.max(0, length + i);\n        for (; i < length; i++) {\n            if (i in self && self[i] === sought) {\n                return i;\n            }\n        }\n        return -1;\n    };\n}\nif (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {\n    Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {\n        var self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                toObject(this),\n            length = self.length >>> 0;\n\n        if (!length) {\n            return -1;\n        }\n        var i = length - 1;\n        if (arguments.length > 1) {\n            i = Math.min(i, toInteger(arguments[1]));\n        }\n        i = i >= 0 ? i : length - Math.abs(i);\n        for (; i >= 0; i--) {\n            if (i in self && sought === self[i]) {\n                return i;\n            }\n        }\n        return -1;\n    };\n}\nif (!Object.getPrototypeOf) {\n    Object.getPrototypeOf = function getPrototypeOf(object) {\n        return object.__proto__ || (\n            object.constructor ?\n            object.constructor.prototype :\n            prototypeOfObject\n        );\n    };\n}\nif (!Object.getOwnPropertyDescriptor) {\n    var ERR_NON_OBJECT = \"Object.getOwnPropertyDescriptor called on a \" +\n                         \"non-object: \";\n    Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n        if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n            throw new TypeError(ERR_NON_OBJECT + object);\n        if (!owns(object, property))\n            return;\n\n        var descriptor, getter, setter;\n        descriptor =  { enumerable: true, configurable: true };\n        if (supportsAccessors) {\n            var prototype = object.__proto__;\n            object.__proto__ = prototypeOfObject;\n\n            var getter = lookupGetter(object, property);\n            var setter = lookupSetter(object, property);\n            object.__proto__ = prototype;\n\n            if (getter || setter) {\n                if (getter) descriptor.get = getter;\n                if (setter) descriptor.set = setter;\n                return descriptor;\n            }\n        }\n        descriptor.value = object[property];\n        return descriptor;\n    };\n}\nif (!Object.getOwnPropertyNames) {\n    Object.getOwnPropertyNames = function getOwnPropertyNames(object) {\n        return Object.keys(object);\n    };\n}\nif (!Object.create) {\n    var createEmpty;\n    if (Object.prototype.__proto__ === null) {\n        createEmpty = function () {\n            return { \"__proto__\": null };\n        };\n    } else {\n        createEmpty = function () {\n            var empty = {};\n            for (var i in empty)\n                empty[i] = null;\n            empty.constructor =\n            empty.hasOwnProperty =\n            empty.propertyIsEnumerable =\n            empty.isPrototypeOf =\n            empty.toLocaleString =\n            empty.toString =\n            empty.valueOf =\n            empty.__proto__ = null;\n            return empty;\n        }\n    }\n\n    Object.create = function create(prototype, properties) {\n        var object;\n        if (prototype === null) {\n            object = createEmpty();\n        } else {\n            if (typeof prototype != \"object\")\n                throw new TypeError(\"typeof prototype[\"+(typeof prototype)+\"] != 'object'\");\n            var Type = function () {};\n            Type.prototype = prototype;\n            object = new Type();\n            object.__proto__ = prototype;\n        }\n        if (properties !== void 0)\n            Object.defineProperties(object, properties);\n        return object;\n    };\n}\n\nfunction doesDefinePropertyWork(object) {\n    try {\n        Object.defineProperty(object, \"sentinel\", {});\n        return \"sentinel\" in object;\n    } catch (exception) {\n    }\n}\nif (Object.defineProperty) {\n    var definePropertyWorksOnObject = doesDefinePropertyWork({});\n    var definePropertyWorksOnDom = typeof document == \"undefined\" ||\n        doesDefinePropertyWork(document.createElement(\"div\"));\n    if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {\n        var definePropertyFallback = Object.defineProperty;\n    }\n}\n\nif (!Object.defineProperty || definePropertyFallback) {\n    var ERR_NON_OBJECT_DESCRIPTOR = \"Property description must be an object: \";\n    var ERR_NON_OBJECT_TARGET = \"Object.defineProperty called on non-object: \"\n    var ERR_ACCESSORS_NOT_SUPPORTED = \"getters & setters can not be defined \" +\n                                      \"on this javascript engine\";\n\n    Object.defineProperty = function defineProperty(object, property, descriptor) {\n        if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n            throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n        if ((typeof descriptor != \"object\" && typeof descriptor != \"function\") || descriptor === null)\n            throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n        if (definePropertyFallback) {\n            try {\n                return definePropertyFallback.call(Object, object, property, descriptor);\n            } catch (exception) {\n            }\n        }\n        if (owns(descriptor, \"value\")) {\n\n            if (supportsAccessors && (lookupGetter(object, property) ||\n                                      lookupSetter(object, property)))\n            {\n                var prototype = object.__proto__;\n                object.__proto__ = prototypeOfObject;\n                delete object[property];\n                object[property] = descriptor.value;\n                object.__proto__ = prototype;\n            } else {\n                object[property] = descriptor.value;\n            }\n        } else {\n            if (!supportsAccessors)\n                throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n            if (owns(descriptor, \"get\"))\n                defineGetter(object, property, descriptor.get);\n            if (owns(descriptor, \"set\"))\n                defineSetter(object, property, descriptor.set);\n        }\n\n        return object;\n    };\n}\nif (!Object.defineProperties) {\n    Object.defineProperties = function defineProperties(object, properties) {\n        for (var property in properties) {\n            if (owns(properties, property))\n                Object.defineProperty(object, property, properties[property]);\n        }\n        return object;\n    };\n}\nif (!Object.seal) {\n    Object.seal = function seal(object) {\n        return object;\n    };\n}\nif (!Object.freeze) {\n    Object.freeze = function freeze(object) {\n        return object;\n    };\n}\ntry {\n    Object.freeze(function () {});\n} catch (exception) {\n    Object.freeze = (function freeze(freezeObject) {\n        return function freeze(object) {\n            if (typeof object == \"function\") {\n                return object;\n            } else {\n                return freezeObject(object);\n            }\n        };\n    })(Object.freeze);\n}\nif (!Object.preventExtensions) {\n    Object.preventExtensions = function preventExtensions(object) {\n        return object;\n    };\n}\nif (!Object.isSealed) {\n    Object.isSealed = function isSealed(object) {\n        return false;\n    };\n}\nif (!Object.isFrozen) {\n    Object.isFrozen = function isFrozen(object) {\n        return false;\n    };\n}\nif (!Object.isExtensible) {\n    Object.isExtensible = function isExtensible(object) {\n        if (Object(object) === object) {\n            throw new TypeError(); // TODO message\n        }\n        var name = '';\n        while (owns(object, name)) {\n            name += '?';\n        }\n        object[name] = true;\n        var returnValue = owns(object, name);\n        delete object[name];\n        return returnValue;\n    };\n}\nif (!Object.keys) {\n    var hasDontEnumBug = true,\n        dontEnums = [\n            \"toString\",\n            \"toLocaleString\",\n            \"valueOf\",\n            \"hasOwnProperty\",\n            \"isPrototypeOf\",\n            \"propertyIsEnumerable\",\n            \"constructor\"\n        ],\n        dontEnumsLength = dontEnums.length;\n\n    for (var key in {\"toString\": null}) {\n        hasDontEnumBug = false;\n    }\n\n    Object.keys = function keys(object) {\n\n        if (\n            (typeof object != \"object\" && typeof object != \"function\") ||\n            object === null\n        ) {\n            throw new TypeError(\"Object.keys called on a non-object\");\n        }\n\n        var keys = [];\n        for (var name in object) {\n            if (owns(object, name)) {\n                keys.push(name);\n            }\n        }\n\n        if (hasDontEnumBug) {\n            for (var i = 0, ii = dontEnumsLength; i < ii; i++) {\n                var dontEnum = dontEnums[i];\n                if (owns(object, dontEnum)) {\n                    keys.push(dontEnum);\n                }\n            }\n        }\n        return keys;\n    };\n\n}\nif (!Date.now) {\n    Date.now = function now() {\n        return new Date().getTime();\n    };\n}\nvar ws = \"\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\" +\n    \"\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\" +\n    \"\\u2029\\uFEFF\";\nif (!String.prototype.trim || ws.trim()) {\n    ws = \"[\" + ws + \"]\";\n    var trimBeginRegexp = new RegExp(\"^\" + ws + ws + \"*\"),\n        trimEndRegexp = new RegExp(ws + ws + \"*$\");\n    String.prototype.trim = function trim() {\n        return String(this).replace(trimBeginRegexp, \"\").replace(trimEndRegexp, \"\");\n    };\n}\n\nfunction toInteger(n) {\n    n = +n;\n    if (n !== n) { // isNaN\n        n = 0;\n    } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {\n        n = (n > 0 || -1) * Math.floor(Math.abs(n));\n    }\n    return n;\n}\n\nfunction isPrimitive(input) {\n    var type = typeof input;\n    return (\n        input === null ||\n        type === \"undefined\" ||\n        type === \"boolean\" ||\n        type === \"number\" ||\n        type === \"string\"\n    );\n}\n\nfunction toPrimitive(input) {\n    var val, valueOf, toString;\n    if (isPrimitive(input)) {\n        return input;\n    }\n    valueOf = input.valueOf;\n    if (typeof valueOf === \"function\") {\n        val = valueOf.call(input);\n        if (isPrimitive(val)) {\n            return val;\n        }\n    }\n    toString = input.toString;\n    if (typeof toString === \"function\") {\n        val = toString.call(input);\n        if (isPrimitive(val)) {\n            return val;\n        }\n    }\n    throw new TypeError();\n}\nvar toObject = function (o) {\n    if (o == null) { // this matches both null and undefined\n        throw new TypeError(\"can't convert \"+o+\" to object\");\n    }\n    return Object(o);\n};\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/worker-php.js",
    "content": "\"no use strict\";\n;(function(window) {\nif (typeof window.window != \"undefined\" && window.document)\n    return;\nif (window.require && window.define)\n    return;\n\nif (!window.console) {\n    window.console = function() {\n        var msgs = Array.prototype.slice.call(arguments, 0);\n        postMessage({type: \"log\", data: msgs});\n    };\n    window.console.error =\n    window.console.warn = \n    window.console.log =\n    window.console.trace = window.console;\n}\nwindow.window = window;\nwindow.ace = window;\n\nwindow.onerror = function(message, file, line, col, err) {\n    postMessage({type: \"error\", data: {\n        message: message,\n        data: err.data,\n        file: file,\n        line: line, \n        col: col,\n        stack: err.stack\n    }});\n};\n\nwindow.normalizeModule = function(parentId, moduleName) {\n    // normalize plugin requires\n    if (moduleName.indexOf(\"!\") !== -1) {\n        var chunks = moduleName.split(\"!\");\n        return window.normalizeModule(parentId, chunks[0]) + \"!\" + window.normalizeModule(parentId, chunks[1]);\n    }\n    // normalize relative requires\n    if (moduleName.charAt(0) == \".\") {\n        var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n        moduleName = (base ? base + \"/\" : \"\") + moduleName;\n        \n        while (moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n            var previous = moduleName;\n            moduleName = moduleName.replace(/^\\.\\//, \"\").replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n        }\n    }\n    \n    return moduleName;\n};\n\nwindow.require = function require(parentId, id) {\n    if (!id) {\n        id = parentId;\n        parentId = null;\n    }\n    if (!id.charAt)\n        throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");\n\n    id = window.normalizeModule(parentId, id);\n\n    var module = window.require.modules[id];\n    if (module) {\n        if (!module.initialized) {\n            module.initialized = true;\n            module.exports = module.factory().exports;\n        }\n        return module.exports;\n    }\n   \n    if (!window.require.tlns)\n        return console.log(\"unable to load \" + id);\n    \n    var path = resolveModuleId(id, window.require.tlns);\n    if (path.slice(-3) != \".js\") path += \".js\";\n    \n    window.require.id = id;\n    window.require.modules[id] = {}; // prevent infinite loop on broken modules\n    importScripts(path);\n    return window.require(parentId, id);\n};\nfunction resolveModuleId(id, paths) {\n    var testPath = id, tail = \"\";\n    while (testPath) {\n        var alias = paths[testPath];\n        if (typeof alias == \"string\") {\n            return alias + tail;\n        } else if (alias) {\n            return  alias.location.replace(/\\/*$/, \"/\") + (tail || alias.main || alias.name);\n        } else if (alias === false) {\n            return \"\";\n        }\n        var i = testPath.lastIndexOf(\"/\");\n        if (i === -1) break;\n        tail = testPath.substr(i) + tail;\n        testPath = testPath.slice(0, i);\n    }\n    return id;\n}\nwindow.require.modules = {};\nwindow.require.tlns = {};\n\nwindow.define = function(id, deps, factory) {\n    if (arguments.length == 2) {\n        factory = deps;\n        if (typeof id != \"string\") {\n            deps = id;\n            id = window.require.id;\n        }\n    } else if (arguments.length == 1) {\n        factory = id;\n        deps = [];\n        id = window.require.id;\n    }\n    \n    if (typeof factory != \"function\") {\n        window.require.modules[id] = {\n            exports: factory,\n            initialized: true\n        };\n        return;\n    }\n\n    if (!deps.length)\n        // If there is no dependencies, we inject \"require\", \"exports\" and\n        // \"module\" as dependencies, to provide CommonJS compatibility.\n        deps = [\"require\", \"exports\", \"module\"];\n\n    var req = function(childId) {\n        return window.require(id, childId);\n    };\n\n    window.require.modules[id] = {\n        exports: {},\n        factory: function() {\n            var module = this;\n            var returnExports = factory.apply(this, deps.map(function(dep) {\n                switch (dep) {\n                    // Because \"require\", \"exports\" and \"module\" aren't actual\n                    // dependencies, we must handle them seperately.\n                    case \"require\": return req;\n                    case \"exports\": return module.exports;\n                    case \"module\":  return module;\n                    // But for all other dependencies, we can just go ahead and\n                    // require them.\n                    default:        return req(dep);\n                }\n            }));\n            if (returnExports)\n                module.exports = returnExports;\n            return module;\n        }\n    };\n};\nwindow.define.amd = {};\nrequire.tlns = {};\nwindow.initBaseUrls  = function initBaseUrls(topLevelNamespaces) {\n    for (var i in topLevelNamespaces)\n        require.tlns[i] = topLevelNamespaces[i];\n};\n\nwindow.initSender = function initSender() {\n\n    var EventEmitter = window.require(\"ace/lib/event_emitter\").EventEmitter;\n    var oop = window.require(\"ace/lib/oop\");\n    \n    var Sender = function() {};\n    \n    (function() {\n        \n        oop.implement(this, EventEmitter);\n                \n        this.callback = function(data, callbackId) {\n            postMessage({\n                type: \"call\",\n                id: callbackId,\n                data: data\n            });\n        };\n    \n        this.emit = function(name, data) {\n            postMessage({\n                type: \"event\",\n                name: name,\n                data: data\n            });\n        };\n        \n    }).call(Sender.prototype);\n    \n    return new Sender();\n};\n\nvar main = window.main = null;\nvar sender = window.sender = null;\n\nwindow.onmessage = function(e) {\n    var msg = e.data;\n    if (msg.event && sender) {\n        sender._signal(msg.event, msg.data);\n    }\n    else if (msg.command) {\n        if (main[msg.command])\n            main[msg.command].apply(main, msg.args);\n        else if (window[msg.command])\n            window[msg.command].apply(window, msg.args);\n        else\n            throw new Error(\"Unknown command:\" + msg.command);\n    }\n    else if (msg.init) {\n        window.initBaseUrls(msg.tlns);\n        require(\"ace/lib/es5-shim\");\n        sender = window.sender = window.initSender();\n        var clazz = require(msg.module)[msg.classname];\n        main = window.main = new clazz(sender);\n    }\n};\n})(this);\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.inherits = function(ctor, superCtor) {\n    ctor.super_ = superCtor;\n    ctor.prototype = Object.create(superCtor.prototype, {\n        constructor: {\n            value: ctor,\n            enumerable: false,\n            writable: true,\n            configurable: true\n        }\n    });\n};\n\nexports.mixin = function(obj, mixin) {\n    for (var key in mixin) {\n        obj[key] = mixin[key];\n    }\n    return obj;\n};\n\nexports.implement = function(proto, mixin) {\n    exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/range\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\nvar comparePoints = function(p1, p2) {\n    return p1.row - p2.row || p1.column - p2.column;\n};\nvar Range = function(startRow, startColumn, endRow, endColumn) {\n    this.start = {\n        row: startRow,\n        column: startColumn\n    };\n\n    this.end = {\n        row: endRow,\n        column: endColumn\n    };\n};\n\n(function() {\n    this.isEqual = function(range) {\n        return this.start.row === range.start.row &&\n            this.end.row === range.end.row &&\n            this.start.column === range.start.column &&\n            this.end.column === range.end.column;\n    };\n    this.toString = function() {\n        return (\"Range: [\" + this.start.row + \"/\" + this.start.column +\n            \"] -> [\" + this.end.row + \"/\" + this.end.column + \"]\");\n    };\n\n    this.contains = function(row, column) {\n        return this.compare(row, column) == 0;\n    };\n    this.compareRange = function(range) {\n        var cmp,\n            end = range.end,\n            start = range.start;\n\n        cmp = this.compare(end.row, end.column);\n        if (cmp == 1) {\n            cmp = this.compare(start.row, start.column);\n            if (cmp == 1) {\n                return 2;\n            } else if (cmp == 0) {\n                return 1;\n            } else {\n                return 0;\n            }\n        } else if (cmp == -1) {\n            return -2;\n        } else {\n            cmp = this.compare(start.row, start.column);\n            if (cmp == -1) {\n                return -1;\n            } else if (cmp == 1) {\n                return 42;\n            } else {\n                return 0;\n            }\n        }\n    };\n    this.comparePoint = function(p) {\n        return this.compare(p.row, p.column);\n    };\n    this.containsRange = function(range) {\n        return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n    };\n    this.intersects = function(range) {\n        var cmp = this.compareRange(range);\n        return (cmp == -1 || cmp == 0 || cmp == 1);\n    };\n    this.isEnd = function(row, column) {\n        return this.end.row == row && this.end.column == column;\n    };\n    this.isStart = function(row, column) {\n        return this.start.row == row && this.start.column == column;\n    };\n    this.setStart = function(row, column) {\n        if (typeof row == \"object\") {\n            this.start.column = row.column;\n            this.start.row = row.row;\n        } else {\n            this.start.row = row;\n            this.start.column = column;\n        }\n    };\n    this.setEnd = function(row, column) {\n        if (typeof row == \"object\") {\n            this.end.column = row.column;\n            this.end.row = row.row;\n        } else {\n            this.end.row = row;\n            this.end.column = column;\n        }\n    };\n    this.inside = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isEnd(row, column) || this.isStart(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.insideStart = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isEnd(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.insideEnd = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isStart(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.compare = function(row, column) {\n        if (!this.isMultiLine()) {\n            if (row === this.start.row) {\n                return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n            }\n        }\n\n        if (row < this.start.row)\n            return -1;\n\n        if (row > this.end.row)\n            return 1;\n\n        if (this.start.row === row)\n            return column >= this.start.column ? 0 : -1;\n\n        if (this.end.row === row)\n            return column <= this.end.column ? 0 : 1;\n\n        return 0;\n    };\n    this.compareStart = function(row, column) {\n        if (this.start.row == row && this.start.column == column) {\n            return -1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.compareEnd = function(row, column) {\n        if (this.end.row == row && this.end.column == column) {\n            return 1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.compareInside = function(row, column) {\n        if (this.end.row == row && this.end.column == column) {\n            return 1;\n        } else if (this.start.row == row && this.start.column == column) {\n            return -1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.clipRows = function(firstRow, lastRow) {\n        if (this.end.row > lastRow)\n            var end = {row: lastRow + 1, column: 0};\n        else if (this.end.row < firstRow)\n            var end = {row: firstRow, column: 0};\n\n        if (this.start.row > lastRow)\n            var start = {row: lastRow + 1, column: 0};\n        else if (this.start.row < firstRow)\n            var start = {row: firstRow, column: 0};\n\n        return Range.fromPoints(start || this.start, end || this.end);\n    };\n    this.extend = function(row, column) {\n        var cmp = this.compare(row, column);\n\n        if (cmp == 0)\n            return this;\n        else if (cmp == -1)\n            var start = {row: row, column: column};\n        else\n            var end = {row: row, column: column};\n\n        return Range.fromPoints(start || this.start, end || this.end);\n    };\n\n    this.isEmpty = function() {\n        return (this.start.row === this.end.row && this.start.column === this.end.column);\n    };\n    this.isMultiLine = function() {\n        return (this.start.row !== this.end.row);\n    };\n    this.clone = function() {\n        return Range.fromPoints(this.start, this.end);\n    };\n    this.collapseRows = function() {\n        if (this.end.column == 0)\n            return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)\n        else\n            return new Range(this.start.row, 0, this.end.row, 0)\n    };\n    this.toScreenRange = function(session) {\n        var screenPosStart = session.documentToScreenPosition(this.start);\n        var screenPosEnd = session.documentToScreenPosition(this.end);\n\n        return new Range(\n            screenPosStart.row, screenPosStart.column,\n            screenPosEnd.row, screenPosEnd.column\n        );\n    };\n    this.moveBy = function(row, column) {\n        this.start.row += row;\n        this.start.column += column;\n        this.end.row += row;\n        this.end.column += column;\n    };\n\n}).call(Range.prototype);\nRange.fromPoints = function(start, end) {\n    return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\n\nRange.comparePoints = function(p1, p2) {\n    return p1.row - p2.row || p1.column - p2.column;\n};\n\n\nexports.Range = Range;\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nfunction throwDeltaError(delta, errorText){\n    console.log(\"Invalid Delta:\", delta);\n    throw \"Invalid Delta: \" + errorText;\n}\n\nfunction positionInDocument(docLines, position) {\n    return position.row    >= 0 && position.row    <  docLines.length &&\n           position.column >= 0 && position.column <= docLines[position.row].length;\n}\n\nfunction validateDelta(docLines, delta) {\n    if (delta.action != \"insert\" && delta.action != \"remove\")\n        throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n    if (!(delta.lines instanceof Array))\n        throwDeltaError(delta, \"delta.lines must be an Array\");\n    if (!delta.start || !delta.end)\n       throwDeltaError(delta, \"delta.start/end must be an present\");\n    var start = delta.start;\n    if (!positionInDocument(docLines, delta.start))\n        throwDeltaError(delta, \"delta.start must be contained in document\");\n    var end = delta.end;\n    if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n        throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n    var numRangeRows = end.row - start.row;\n    var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n    if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n        throwDeltaError(delta, \"delta.range must match delta lines\");\n}\n\nexports.applyDelta = function(docLines, delta, doNotValidate) {\n    \n    var row = delta.start.row;\n    var startColumn = delta.start.column;\n    var line = docLines[row] || \"\";\n    switch (delta.action) {\n        case \"insert\":\n            var lines = delta.lines;\n            if (lines.length === 1) {\n                docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n            } else {\n                var args = [row, 1].concat(delta.lines);\n                docLines.splice.apply(docLines, args);\n                docLines[row] = line.substring(0, startColumn) + docLines[row];\n                docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n            }\n            break;\n        case \"remove\":\n            var endColumn = delta.end.column;\n            var endRow = delta.end.row;\n            if (row === endRow) {\n                docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n            } else {\n                docLines.splice(\n                    row, endRow - row + 1,\n                    line.substring(0, startColumn) + docLines[endRow].substring(endColumn)\n                );\n            }\n            break;\n    }\n}\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar EventEmitter = {};\nvar stopPropagation = function() { this.propagationStopped = true; };\nvar preventDefault = function() { this.defaultPrevented = true; };\n\nEventEmitter._emit =\nEventEmitter._dispatchEvent = function(eventName, e) {\n    this._eventRegistry || (this._eventRegistry = {});\n    this._defaultHandlers || (this._defaultHandlers = {});\n\n    var listeners = this._eventRegistry[eventName] || [];\n    var defaultHandler = this._defaultHandlers[eventName];\n    if (!listeners.length && !defaultHandler)\n        return;\n\n    if (typeof e != \"object\" || !e)\n        e = {};\n\n    if (!e.type)\n        e.type = eventName;\n    if (!e.stopPropagation)\n        e.stopPropagation = stopPropagation;\n    if (!e.preventDefault)\n        e.preventDefault = preventDefault;\n\n    listeners = listeners.slice();\n    for (var i=0; i<listeners.length; i++) {\n        listeners[i](e, this);\n        if (e.propagationStopped)\n            break;\n    }\n    \n    if (defaultHandler && !e.defaultPrevented)\n        return defaultHandler(e, this);\n};\n\n\nEventEmitter._signal = function(eventName, e) {\n    var listeners = (this._eventRegistry || {})[eventName];\n    if (!listeners)\n        return;\n    listeners = listeners.slice();\n    for (var i=0; i<listeners.length; i++)\n        listeners[i](e, this);\n};\n\nEventEmitter.once = function(eventName, callback) {\n    var _self = this;\n    callback && this.addEventListener(eventName, function newCallback() {\n        _self.removeEventListener(eventName, newCallback);\n        callback.apply(null, arguments);\n    });\n};\n\n\nEventEmitter.setDefaultHandler = function(eventName, callback) {\n    var handlers = this._defaultHandlers\n    if (!handlers)\n        handlers = this._defaultHandlers = {_disabled_: {}};\n    \n    if (handlers[eventName]) {\n        var old = handlers[eventName];\n        var disabled = handlers._disabled_[eventName];\n        if (!disabled)\n            handlers._disabled_[eventName] = disabled = [];\n        disabled.push(old);\n        var i = disabled.indexOf(callback);\n        if (i != -1) \n            disabled.splice(i, 1);\n    }\n    handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function(eventName, callback) {\n    var handlers = this._defaultHandlers\n    if (!handlers)\n        return;\n    var disabled = handlers._disabled_[eventName];\n    \n    if (handlers[eventName] == callback) {\n        var old = handlers[eventName];\n        if (disabled)\n            this.setDefaultHandler(eventName, disabled.pop());\n    } else if (disabled) {\n        var i = disabled.indexOf(callback);\n        if (i != -1)\n            disabled.splice(i, 1);\n    }\n};\n\nEventEmitter.on =\nEventEmitter.addEventListener = function(eventName, callback, capturing) {\n    this._eventRegistry = this._eventRegistry || {};\n\n    var listeners = this._eventRegistry[eventName];\n    if (!listeners)\n        listeners = this._eventRegistry[eventName] = [];\n\n    if (listeners.indexOf(callback) == -1)\n        listeners[capturing ? \"unshift\" : \"push\"](callback);\n    return callback;\n};\n\nEventEmitter.off =\nEventEmitter.removeListener =\nEventEmitter.removeEventListener = function(eventName, callback) {\n    this._eventRegistry = this._eventRegistry || {};\n\n    var listeners = this._eventRegistry[eventName];\n    if (!listeners)\n        return;\n\n    var index = listeners.indexOf(callback);\n    if (index !== -1)\n        listeners.splice(index, 1);\n};\n\nEventEmitter.removeAllListeners = function(eventName) {\n    if (this._eventRegistry) this._eventRegistry[eventName] = [];\n};\n\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\n\nvar Anchor = exports.Anchor = function(doc, row, column) {\n    this.$onChange = this.onChange.bind(this);\n    this.attach(doc);\n    \n    if (typeof column == \"undefined\")\n        this.setPosition(row.row, row.column);\n    else\n        this.setPosition(row, column);\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n    this.getPosition = function() {\n        return this.$clipPositionToDocument(this.row, this.column);\n    };\n    this.getDocument = function() {\n        return this.document;\n    };\n    this.$insertRight = false;\n    this.onChange = function(delta) {\n        if (delta.start.row == delta.end.row && delta.start.row != this.row)\n            return;\n\n        if (delta.start.row > this.row)\n            return;\n            \n        var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight);\n        this.setPosition(point.row, point.column, true);\n    };\n    \n    function $pointsInOrder(point1, point2, equalPointsInOrder) {\n        var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n        return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n    }\n            \n    function $getTransformedPoint(delta, point, moveIfEqual) {\n        var deltaIsInsert = delta.action == \"insert\";\n        var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row    - delta.start.row);\n        var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n        var deltaStart = delta.start;\n        var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n        if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n            return {\n                row: point.row,\n                column: point.column\n            };\n        }\n        if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n            return {\n                row: point.row + deltaRowShift,\n                column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n            };\n        }\n        \n        return {\n            row: deltaStart.row,\n            column: deltaStart.column\n        };\n    }\n    this.setPosition = function(row, column, noClip) {\n        var pos;\n        if (noClip) {\n            pos = {\n                row: row,\n                column: column\n            };\n        } else {\n            pos = this.$clipPositionToDocument(row, column);\n        }\n\n        if (this.row == pos.row && this.column == pos.column)\n            return;\n\n        var old = {\n            row: this.row,\n            column: this.column\n        };\n\n        this.row = pos.row;\n        this.column = pos.column;\n        this._signal(\"change\", {\n            old: old,\n            value: pos\n        });\n    };\n    this.detach = function() {\n        this.document.removeEventListener(\"change\", this.$onChange);\n    };\n    this.attach = function(doc) {\n        this.document = doc || this.document;\n        this.document.on(\"change\", this.$onChange);\n    };\n    this.$clipPositionToDocument = function(row, column) {\n        var pos = {};\n\n        if (row >= this.document.getLength()) {\n            pos.row = Math.max(0, this.document.getLength() - 1);\n            pos.column = this.document.getLine(pos.row).length;\n        }\n        else if (row < 0) {\n            pos.row = 0;\n            pos.column = 0;\n        }\n        else {\n            pos.row = row;\n            pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n        }\n\n        if (column < 0)\n            pos.column = 0;\n\n        return pos;\n    };\n\n}).call(Anchor.prototype);\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar applyDelta = require(\"./apply_delta\").applyDelta;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\n\nvar Document = function(textOrLines) {\n    this.$lines = [\"\"];\n    if (textOrLines.length === 0) {\n        this.$lines = [\"\"];\n    } else if (Array.isArray(textOrLines)) {\n        this.insertMergedLines({row: 0, column: 0}, textOrLines);\n    } else {\n        this.insert({row: 0, column:0}, textOrLines);\n    }\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n    this.setValue = function(text) {\n        var len = this.getLength() - 1;\n        this.remove(new Range(0, 0, len, this.getLine(len).length));\n        this.insert({row: 0, column: 0}, text);\n    };\n    this.getValue = function() {\n        return this.getAllLines().join(this.getNewLineCharacter());\n    };\n    this.createAnchor = function(row, column) {\n        return new Anchor(this, row, column);\n    };\n    if (\"aaa\".split(/a/).length === 0) {\n        this.$split = function(text) {\n            return text.replace(/\\r\\n|\\r/g, \"\\n\").split(\"\\n\");\n        };\n    } else {\n        this.$split = function(text) {\n            return text.split(/\\r\\n|\\r|\\n/);\n        };\n    }\n\n\n    this.$detectNewLine = function(text) {\n        var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n        this.$autoNewLine = match ? match[1] : \"\\n\";\n        this._signal(\"changeNewLineMode\");\n    };\n    this.getNewLineCharacter = function() {\n        switch (this.$newLineMode) {\n          case \"windows\":\n            return \"\\r\\n\";\n          case \"unix\":\n            return \"\\n\";\n          default:\n            return this.$autoNewLine || \"\\n\";\n        }\n    };\n\n    this.$autoNewLine = \"\";\n    this.$newLineMode = \"auto\";\n    this.setNewLineMode = function(newLineMode) {\n        if (this.$newLineMode === newLineMode)\n            return;\n\n        this.$newLineMode = newLineMode;\n        this._signal(\"changeNewLineMode\");\n    };\n    this.getNewLineMode = function() {\n        return this.$newLineMode;\n    };\n    this.isNewLine = function(text) {\n        return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n    };\n    this.getLine = function(row) {\n        return this.$lines[row] || \"\";\n    };\n    this.getLines = function(firstRow, lastRow) {\n        return this.$lines.slice(firstRow, lastRow + 1);\n    };\n    this.getAllLines = function() {\n        return this.getLines(0, this.getLength());\n    };\n    this.getLength = function() {\n        return this.$lines.length;\n    };\n    this.getTextRange = function(range) {\n        return this.getLinesForRange(range).join(this.getNewLineCharacter());\n    };\n    this.getLinesForRange = function(range) {\n        var lines;\n        if (range.start.row === range.end.row) {\n            lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n        } else {\n            lines = this.getLines(range.start.row, range.end.row);\n            lines[0] = (lines[0] || \"\").substring(range.start.column);\n            var l = lines.length - 1;\n            if (range.end.row - range.start.row == l)\n                lines[l] = lines[l].substring(0, range.end.column);\n        }\n        return lines;\n    };\n    this.insertLines = function(row, lines) {\n        console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n        return this.insertFullLines(row, lines);\n    };\n    this.removeLines = function(firstRow, lastRow) {\n        console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n        return this.removeFullLines(firstRow, lastRow);\n    };\n    this.insertNewLine = function(position) {\n        console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n        return this.insertMergedLines(position, [\"\", \"\"]);\n    };\n    this.insert = function(position, text) {\n        if (this.getLength() <= 1)\n            this.$detectNewLine(text);\n        \n        return this.insertMergedLines(position, this.$split(text));\n    };\n    this.insertInLine = function(position, text) {\n        var start = this.clippedPos(position.row, position.column);\n        var end = this.pos(position.row, position.column + text.length);\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"insert\",\n            lines: [text]\n        }, true);\n        \n        return this.clonePos(end);\n    };\n    \n    this.clippedPos = function(row, column) {\n        var length = this.getLength();\n        if (row === undefined) {\n            row = length;\n        } else if (row < 0) {\n            row = 0;\n        } else if (row >= length) {\n            row = length - 1;\n            column = undefined;\n        }\n        var line = this.getLine(row);\n        if (column == undefined)\n            column = line.length;\n        column = Math.min(Math.max(column, 0), line.length);\n        return {row: row, column: column};\n    };\n    \n    this.clonePos = function(pos) {\n        return {row: pos.row, column: pos.column};\n    };\n    \n    this.pos = function(row, column) {\n        return {row: row, column: column};\n    };\n    \n    this.$clipPosition = function(position) {\n        var length = this.getLength();\n        if (position.row >= length) {\n            position.row = Math.max(0, length - 1);\n            position.column = this.getLine(length - 1).length;\n        } else {\n            position.row = Math.max(0, position.row);\n            position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n        }\n        return position;\n    };\n    this.insertFullLines = function(row, lines) {\n        row = Math.min(Math.max(row, 0), this.getLength());\n        var column = 0;\n        if (row < this.getLength()) {\n            lines = lines.concat([\"\"]);\n            column = 0;\n        } else {\n            lines = [\"\"].concat(lines);\n            row--;\n            column = this.$lines[row].length;\n        }\n        this.insertMergedLines({row: row, column: column}, lines);\n    };    \n    this.insertMergedLines = function(position, lines) {\n        var start = this.clippedPos(position.row, position.column);\n        var end = {\n            row: start.row + lines.length - 1,\n            column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n        };\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"insert\",\n            lines: lines\n        });\n        \n        return this.clonePos(end);\n    };\n    this.remove = function(range) {\n        var start = this.clippedPos(range.start.row, range.start.column);\n        var end = this.clippedPos(range.end.row, range.end.column);\n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"remove\",\n            lines: this.getLinesForRange({start: start, end: end})\n        });\n        return this.clonePos(start);\n    };\n    this.removeInLine = function(row, startColumn, endColumn) {\n        var start = this.clippedPos(row, startColumn);\n        var end = this.clippedPos(row, endColumn);\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"remove\",\n            lines: this.getLinesForRange({start: start, end: end})\n        }, true);\n        \n        return this.clonePos(start);\n    };\n    this.removeFullLines = function(firstRow, lastRow) {\n        firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n        lastRow  = Math.min(Math.max(0, lastRow ), this.getLength() - 1);\n        var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n        var deleteLastNewLine  = lastRow  < this.getLength() - 1;\n        var startRow = ( deleteFirstNewLine ? firstRow - 1                  : firstRow                    );\n        var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0                           );\n        var endRow   = ( deleteLastNewLine  ? lastRow + 1                   : lastRow                     );\n        var endCol   = ( deleteLastNewLine  ? 0                             : this.getLine(endRow).length ); \n        var range = new Range(startRow, startCol, endRow, endCol);\n        var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n        \n        this.applyDelta({\n            start: range.start,\n            end: range.end,\n            action: \"remove\",\n            lines: this.getLinesForRange(range)\n        });\n        return deletedLines;\n    };\n    this.removeNewLine = function(row) {\n        if (row < this.getLength() - 1 && row >= 0) {\n            this.applyDelta({\n                start: this.pos(row, this.getLine(row).length),\n                end: this.pos(row + 1, 0),\n                action: \"remove\",\n                lines: [\"\", \"\"]\n            });\n        }\n    };\n    this.replace = function(range, text) {\n        if (!(range instanceof Range))\n            range = Range.fromPoints(range.start, range.end);\n        if (text.length === 0 && range.isEmpty())\n            return range.start;\n        if (text == this.getTextRange(range))\n            return range.end;\n\n        this.remove(range);\n        var end;\n        if (text) {\n            end = this.insert(range.start, text);\n        }\n        else {\n            end = range.start;\n        }\n        \n        return end;\n    };\n    this.applyDeltas = function(deltas) {\n        for (var i=0; i<deltas.length; i++) {\n            this.applyDelta(deltas[i]);\n        }\n    };\n    this.revertDeltas = function(deltas) {\n        for (var i=deltas.length-1; i>=0; i--) {\n            this.revertDelta(deltas[i]);\n        }\n    };\n    this.applyDelta = function(delta, doNotValidate) {\n        var isInsert = delta.action == \"insert\";\n        if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n            : !Range.comparePoints(delta.start, delta.end)) {\n            return;\n        }\n        \n        if (isInsert && delta.lines.length > 20000)\n            this.$splitAndapplyLargeDelta(delta, 20000);\n        applyDelta(this.$lines, delta, doNotValidate);\n        this._signal(\"change\", delta);\n    };\n    \n    this.$splitAndapplyLargeDelta = function(delta, MAX) {\n        var lines = delta.lines;\n        var l = lines.length;\n        var row = delta.start.row; \n        var column = delta.start.column;\n        var from = 0, to = 0;\n        do {\n            from = to;\n            to += MAX - 1;\n            var chunk = lines.slice(from, to);\n            if (to > l) {\n                delta.lines = chunk;\n                delta.start.row = row + from;\n                delta.start.column = column;\n                break;\n            }\n            chunk.push(\"\");\n            this.applyDelta({\n                start: this.pos(row + from, column),\n                end: this.pos(row + to, column = 0),\n                action: delta.action,\n                lines: chunk\n            }, true);\n        } while(true);\n    };\n    this.revertDelta = function(delta) {\n        this.applyDelta({\n            start: this.clonePos(delta.start),\n            end: this.clonePos(delta.end),\n            action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n            lines: delta.lines.slice()\n        });\n    };\n    this.indexToPosition = function(index, startRow) {\n        var lines = this.$lines || this.getAllLines();\n        var newlineLength = this.getNewLineCharacter().length;\n        for (var i = startRow || 0, l = lines.length; i < l; i++) {\n            index -= lines[i].length + newlineLength;\n            if (index < 0)\n                return {row: i, column: index + lines[i].length + newlineLength};\n        }\n        return {row: l-1, column: lines[l-1].length};\n    };\n    this.positionToIndex = function(pos, startRow) {\n        var lines = this.$lines || this.getAllLines();\n        var newlineLength = this.getNewLineCharacter().length;\n        var index = 0;\n        var row = Math.min(pos.row, lines.length);\n        for (var i = startRow || 0; i < row; ++i)\n            index += lines[i].length + newlineLength;\n\n        return index + pos.column;\n    };\n\n}).call(Document.prototype);\n\nexports.Document = Document;\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.last = function(a) {\n    return a[a.length - 1];\n};\n\nexports.stringReverse = function(string) {\n    return string.split(\"\").reverse().join(\"\");\n};\n\nexports.stringRepeat = function (string, count) {\n    var result = '';\n    while (count > 0) {\n        if (count & 1)\n            result += string;\n\n        if (count >>= 1)\n            string += string;\n    }\n    return result;\n};\n\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\n\nexports.stringTrimLeft = function (string) {\n    return string.replace(trimBeginRegexp, '');\n};\n\nexports.stringTrimRight = function (string) {\n    return string.replace(trimEndRegexp, '');\n};\n\nexports.copyObject = function(obj) {\n    var copy = {};\n    for (var key in obj) {\n        copy[key] = obj[key];\n    }\n    return copy;\n};\n\nexports.copyArray = function(array){\n    var copy = [];\n    for (var i=0, l=array.length; i<l; i++) {\n        if (array[i] && typeof array[i] == \"object\")\n            copy[i] = this.copyObject(array[i]);\n        else \n            copy[i] = array[i];\n    }\n    return copy;\n};\n\nexports.deepCopy = function deepCopy(obj) {\n    if (typeof obj !== \"object\" || !obj)\n        return obj;\n    var copy;\n    if (Array.isArray(obj)) {\n        copy = [];\n        for (var key = 0; key < obj.length; key++) {\n            copy[key] = deepCopy(obj[key]);\n        }\n        return copy;\n    }\n    if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n        return obj;\n    \n    copy = {};\n    for (var key in obj)\n        copy[key] = deepCopy(obj[key]);\n    return copy;\n};\n\nexports.arrayToMap = function(arr) {\n    var map = {};\n    for (var i=0; i<arr.length; i++) {\n        map[arr[i]] = 1;\n    }\n    return map;\n\n};\n\nexports.createMap = function(props) {\n    var map = Object.create(null);\n    for (var i in props) {\n        map[i] = props[i];\n    }\n    return map;\n};\nexports.arrayRemove = function(array, value) {\n  for (var i = 0; i <= array.length; i++) {\n    if (value === array[i]) {\n      array.splice(i, 1);\n    }\n  }\n};\n\nexports.escapeRegExp = function(str) {\n    return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\n\nexports.escapeHTML = function(str) {\n    return str.replace(/&/g, \"&#38;\").replace(/\"/g, \"&#34;\").replace(/'/g, \"&#39;\").replace(/</g, \"&#60;\");\n};\n\nexports.getMatchOffsets = function(string, regExp) {\n    var matches = [];\n\n    string.replace(regExp, function(str) {\n        matches.push({\n            offset: arguments[arguments.length-2],\n            length: str.length\n        });\n    });\n\n    return matches;\n};\nexports.deferredCall = function(fcn) {\n    var timer = null;\n    var callback = function() {\n        timer = null;\n        fcn();\n    };\n\n    var deferred = function(timeout) {\n        deferred.cancel();\n        timer = setTimeout(callback, timeout || 0);\n        return deferred;\n    };\n\n    deferred.schedule = deferred;\n\n    deferred.call = function() {\n        this.cancel();\n        fcn();\n        return deferred;\n    };\n\n    deferred.cancel = function() {\n        clearTimeout(timer);\n        timer = null;\n        return deferred;\n    };\n    \n    deferred.isPending = function() {\n        return timer;\n    };\n\n    return deferred;\n};\n\n\nexports.delayedCall = function(fcn, defaultTimeout) {\n    var timer = null;\n    var callback = function() {\n        timer = null;\n        fcn();\n    };\n\n    var _self = function(timeout) {\n        if (timer == null)\n            timer = setTimeout(callback, timeout || defaultTimeout);\n    };\n\n    _self.delay = function(timeout) {\n        timer && clearTimeout(timer);\n        timer = setTimeout(callback, timeout || defaultTimeout);\n    };\n    _self.schedule = _self;\n\n    _self.call = function() {\n        this.cancel();\n        fcn();\n    };\n\n    _self.cancel = function() {\n        timer && clearTimeout(timer);\n        timer = null;\n    };\n\n    _self.isPending = function() {\n        return timer;\n    };\n\n    return _self;\n};\n});\n\nace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\nvar Document = require(\"../document\").Document;\nvar lang = require(\"../lib/lang\");\n    \nvar Mirror = exports.Mirror = function(sender) {\n    this.sender = sender;\n    var doc = this.doc = new Document(\"\");\n    \n    var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this));\n    \n    var _self = this;\n    sender.on(\"change\", function(e) {\n        var data = e.data;\n        if (data[0].start) {\n            doc.applyDeltas(data);\n        } else {\n            for (var i = 0; i < data.length; i += 2) {\n                if (Array.isArray(data[i+1])) {\n                    var d = {action: \"insert\", start: data[i], lines: data[i+1]};\n                } else {\n                    var d = {action: \"remove\", start: data[i], end: data[i+1]};\n                }\n                doc.applyDelta(d, true);\n            }\n        }\n        if (_self.$timeout)\n            return deferredUpdate.schedule(_self.$timeout);\n        _self.onUpdate();\n    });\n};\n\n(function() {\n    \n    this.$timeout = 500;\n    \n    this.setTimeout = function(timeout) {\n        this.$timeout = timeout;\n    };\n    \n    this.setValue = function(value) {\n        this.doc.setValue(value);\n        this.deferredUpdate.schedule(this.$timeout);\n    };\n    \n    this.getValue = function(callbackId) {\n        this.sender.callback(this.doc.getValue(), callbackId);\n    };\n    \n    this.onUpdate = function() {\n    };\n    \n    this.isPending = function() {\n        return this.deferredUpdate.isPending();\n    };\n    \n}).call(Mirror.prototype);\n\n});\n\nace.define(\"ace/mode/php/php\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\nvar PHP = {Constants:{}};\n\nPHP.Constants.T_INCLUDE = 257;\nPHP.Constants.T_INCLUDE_ONCE = 258;\nPHP.Constants.T_EVAL = 259;\nPHP.Constants.T_REQUIRE = 260;\nPHP.Constants.T_REQUIRE_ONCE = 261;\nPHP.Constants.T_LOGICAL_OR = 262;\nPHP.Constants.T_LOGICAL_XOR = 263;\nPHP.Constants.T_LOGICAL_AND = 264;\nPHP.Constants.T_PRINT = 265;\nPHP.Constants.T_YIELD = 266;\nPHP.Constants.T_DOUBLE_ARROW = 267;\nPHP.Constants.T_YIELD_FROM = 268;\nPHP.Constants.T_PLUS_EQUAL = 269;\nPHP.Constants.T_MINUS_EQUAL = 270;\nPHP.Constants.T_MUL_EQUAL = 271;\nPHP.Constants.T_DIV_EQUAL = 272;\nPHP.Constants.T_CONCAT_EQUAL = 273;\nPHP.Constants.T_MOD_EQUAL = 274;\nPHP.Constants.T_AND_EQUAL = 275;\nPHP.Constants.T_OR_EQUAL = 276;\nPHP.Constants.T_XOR_EQUAL = 277;\nPHP.Constants.T_SL_EQUAL = 278;\nPHP.Constants.T_SR_EQUAL = 279;\nPHP.Constants.T_POW_EQUAL = 280;\nPHP.Constants.T_COALESCE = 281;\nPHP.Constants.T_BOOLEAN_OR = 282;\nPHP.Constants.T_BOOLEAN_AND = 283;\nPHP.Constants.T_IS_EQUAL = 284;\nPHP.Constants.T_IS_NOT_EQUAL = 285;\nPHP.Constants.T_IS_IDENTICAL = 286;\nPHP.Constants.T_IS_NOT_IDENTICAL = 287;\nPHP.Constants.T_SPACESHIP = 288;\nPHP.Constants.T_IS_SMALLER_OR_EQUAL = 289;\nPHP.Constants.T_IS_GREATER_OR_EQUAL = 290;\nPHP.Constants.T_SL = 291;\nPHP.Constants.T_SR = 292;\nPHP.Constants.T_INSTANCEOF = 293;\nPHP.Constants.T_INC = 294;\nPHP.Constants.T_DEC = 295;\nPHP.Constants.T_INT_CAST = 296;\nPHP.Constants.T_DOUBLE_CAST = 297;\nPHP.Constants.T_STRING_CAST = 298;\nPHP.Constants.T_ARRAY_CAST = 299;\nPHP.Constants.T_OBJECT_CAST = 300;\nPHP.Constants.T_BOOL_CAST = 301;\nPHP.Constants.T_UNSET_CAST = 302;\nPHP.Constants.T_POW = 303;\nPHP.Constants.T_NEW = 304;\nPHP.Constants.T_CLONE = 305;\nPHP.Constants.T_EXIT = 306;\nPHP.Constants.T_IF = 307;\nPHP.Constants.T_ELSEIF = 308;\nPHP.Constants.T_ELSE = 309;\nPHP.Constants.T_ENDIF = 310;\nPHP.Constants.T_LNUMBER = 311;\nPHP.Constants.T_DNUMBER = 312;\nPHP.Constants.T_STRING = 313;\nPHP.Constants.T_STRING_VARNAME = 314;\nPHP.Constants.T_VARIABLE = 315;\nPHP.Constants.T_NUM_STRING = 316;\nPHP.Constants.T_INLINE_HTML = 317;\nPHP.Constants.T_CHARACTER = 318;\nPHP.Constants.T_BAD_CHARACTER = 319;\nPHP.Constants.T_ENCAPSED_AND_WHITESPACE = 320;\nPHP.Constants.T_CONSTANT_ENCAPSED_STRING = 321;\nPHP.Constants.T_ECHO = 322;\nPHP.Constants.T_DO = 323;\nPHP.Constants.T_WHILE = 324;\nPHP.Constants.T_ENDWHILE = 325;\nPHP.Constants.T_FOR = 326;\nPHP.Constants.T_ENDFOR = 327;\nPHP.Constants.T_FOREACH = 328;\nPHP.Constants.T_ENDFOREACH = 329;\nPHP.Constants.T_DECLARE = 330;\nPHP.Constants.T_ENDDECLARE = 331;\nPHP.Constants.T_AS = 332;\nPHP.Constants.T_SWITCH = 333;\nPHP.Constants.T_ENDSWITCH = 334;\nPHP.Constants.T_CASE = 335;\nPHP.Constants.T_DEFAULT = 336;\nPHP.Constants.T_BREAK = 337;\nPHP.Constants.T_CONTINUE = 338;\nPHP.Constants.T_GOTO = 339;\nPHP.Constants.T_FUNCTION = 340;\nPHP.Constants.T_CONST = 341;\nPHP.Constants.T_RETURN = 342;\nPHP.Constants.T_TRY = 343;\nPHP.Constants.T_CATCH = 344;\nPHP.Constants.T_FINALLY = 345;\nPHP.Constants.T_THROW = 346;\nPHP.Constants.T_USE = 347;\nPHP.Constants.T_INSTEADOF = 348;\nPHP.Constants.T_GLOBAL = 349;\nPHP.Constants.T_STATIC = 350;\nPHP.Constants.T_ABSTRACT = 351;\nPHP.Constants.T_FINAL = 352;\nPHP.Constants.T_PRIVATE = 353;\nPHP.Constants.T_PROTECTED = 354;\nPHP.Constants.T_PUBLIC = 355;\nPHP.Constants.T_VAR = 356;\nPHP.Constants.T_UNSET = 357;\nPHP.Constants.T_ISSET = 358;\nPHP.Constants.T_EMPTY = 359;\nPHP.Constants.T_HALT_COMPILER = 360;\nPHP.Constants.T_CLASS = 361;\nPHP.Constants.T_TRAIT = 362;\nPHP.Constants.T_INTERFACE = 363;\nPHP.Constants.T_EXTENDS = 364;\nPHP.Constants.T_IMPLEMENTS = 365;\nPHP.Constants.T_OBJECT_OPERATOR = 366;\nPHP.Constants.T_LIST = 367;\nPHP.Constants.T_ARRAY = 368;\nPHP.Constants.T_CALLABLE = 369;\nPHP.Constants.T_CLASS_C = 370;\nPHP.Constants.T_TRAIT_C = 371;\nPHP.Constants.T_METHOD_C = 372;\nPHP.Constants.T_FUNC_C = 373;\nPHP.Constants.T_LINE = 374;\nPHP.Constants.T_FILE = 375;\nPHP.Constants.T_COMMENT = 376;\nPHP.Constants.T_DOC_COMMENT = 377;\nPHP.Constants.T_OPEN_TAG = 378;\nPHP.Constants.T_OPEN_TAG_WITH_ECHO = 379;\nPHP.Constants.T_CLOSE_TAG = 380;\nPHP.Constants.T_WHITESPACE = 381;\nPHP.Constants.T_START_HEREDOC = 382;\nPHP.Constants.T_END_HEREDOC = 383;\nPHP.Constants.T_DOLLAR_OPEN_CURLY_BRACES = 384;\nPHP.Constants.T_CURLY_OPEN = 385;\nPHP.Constants.T_PAAMAYIM_NEKUDOTAYIM = 386;\nPHP.Constants.T_NAMESPACE = 387;\nPHP.Constants.T_NS_C = 388;\nPHP.Constants.T_DIR = 389;\nPHP.Constants.T_NS_SEPARATOR = 390;\nPHP.Constants.T_ELLIPSIS = 391;\n\nPHP.Lexer = function(src, ini) {\n    var heredoc, heredocEndAllowed,\n\n    stateStack = ['INITIAL'], stackPos = 0,\n    swapState = function(state) {\n        stateStack[stackPos] = state;\n    },\n    pushState = function(state) {\n        stateStack[++stackPos] = state;\n    },\n    popState = function() {\n        --stackPos;\n    },\n\n    shortOpenTag = ini === undefined || /^(on|true|1)$/i.test(ini.short_open_tag),\n    openTag = shortOpenTag\n        ? /^(\\<\\?php(?:\\r\\n|[ \\t\\r\\n])|<\\?|\\<script language\\=('|\")?php('|\")?\\>)/i\n        : /^(\\<\\?php(?:\\r\\n|[ \\t\\r\\n])|\\<script language\\=('|\")?php('|\")?\\>)/i,\n    inlineHtml = shortOpenTag\n        ? /[^<]*(?:<(?!\\?|script language\\=('|\")?php('|\")?\\>)[^<]*)*/i\n        : /[^<]*(?:<(?!\\?=|\\?php[ \\t\\r\\n]|script language\\=('|\")?php('|\")?\\>)[^<]*)*/i;\n    labelRegexPart = '[a-zA-Z_\\\\x7f-\\\\uffff][a-zA-Z0-9_\\\\x7f-\\\\uffff]*',\n    stringRegexPart = function(quote) {\n        return '[^' + quote + '\\\\\\\\${]*(?:(?:\\\\\\\\[\\\\s\\\\S]|\\\\$(?!\\\\{|[a-zA-Z_\\\\x7f-\\\\uffff])|\\\\{(?!\\\\$))[^' + quote + '\\\\\\\\${]*)*';\n    },\n\n    sharedStringTokens = [\n        {\n            value: PHP.Constants.T_VARIABLE,\n            re: new RegExp('^\\\\$' + labelRegexPart + '(?=\\\\[)'),\n            func: function() {\n                pushState('VAR_OFFSET');\n            }\n        },\n        {\n            value: PHP.Constants.T_VARIABLE,\n            re: new RegExp('^\\\\$' + labelRegexPart + '(?=->' + labelRegexPart + ')'),\n            func: function() {\n                pushState('LOOKING_FOR_PROPERTY');\n            }\n        },\n        {\n            value: PHP.Constants.T_DOLLAR_OPEN_CURLY_BRACES,\n            re: new RegExp('^\\\\$\\\\{(?=' + labelRegexPart + '[\\\\[}])'),\n            func: function() {\n                pushState('LOOKING_FOR_VARNAME');\n            }\n        },\n        {\n            value: PHP.Constants.T_VARIABLE,\n            re: new RegExp('^\\\\$' + labelRegexPart)\n        },\n        {\n            value: PHP.Constants.T_DOLLAR_OPEN_CURLY_BRACES,\n            re: /^\\$\\{/,\n            func: function() {\n                pushState('IN_SCRIPTING');\n            }\n        },\n        {\n            value: PHP.Constants.T_CURLY_OPEN,\n            re: /^\\{(?=\\$)/,\n            func: function() {\n                pushState('IN_SCRIPTING');\n            }\n        }\n    ],\n    data = {\n        'INITIAL': [\n            {\n                value: PHP.Constants.T_OPEN_TAG_WITH_ECHO,\n                re: /^<\\?=/i,\n                func: function() {\n                    swapState('IN_SCRIPTING');\n                }\n            },\n            {\n                value: PHP.Constants.T_OPEN_TAG,\n                re: openTag,\n                func: function() {\n                    swapState('IN_SCRIPTING');\n                }\n            },\n            {\n                value: PHP.Constants.T_INLINE_HTML,\n                re: inlineHtml\n            },\n        ],\n        'IN_SCRIPTING': [\n            {\n                value: PHP.Constants.T_WHITESPACE,\n                re: /^[ \\n\\r\\t]+/\n            },\n            {\n                value: PHP.Constants.T_ABSTRACT,\n                re: /^abstract\\b/i\n            },\n            {\n                value: PHP.Constants.T_LOGICAL_AND,\n                re: /^and\\b/i\n            },\n            {\n                value: PHP.Constants.T_ARRAY,\n                re: /^array\\b/i\n            },\n            {\n                value: PHP.Constants.T_AS,\n                re: /^as\\b/i\n            },\n            {\n                value: PHP.Constants.T_BREAK,\n                re: /^break\\b/i\n            },\n            {\n                value: PHP.Constants.T_CALLABLE,\n                re: /^callable\\b/i\n            },\n            {\n                value: PHP.Constants.T_CASE,\n                re: /^case\\b/i\n            },\n            {\n                value: PHP.Constants.T_CATCH,\n                re: /^catch\\b/i\n            },\n            {\n                value: PHP.Constants.T_CLASS,\n                re: /^class\\b/i,\n            },\n            {\n                value: PHP.Constants.T_CLONE,\n                re: /^clone\\b/i\n            },\n            {\n                value: PHP.Constants.T_CONST,\n                re: /^const\\b/i\n            },\n            {\n                value: PHP.Constants.T_CONTINUE,\n                re: /^continue\\b/i\n            },\n            {\n                value: PHP.Constants.T_DECLARE,\n                re: /^declare\\b/i\n            },\n            {\n                value: PHP.Constants.T_DEFAULT,\n                re: /^default\\b/i\n            },\n            {\n                value: PHP.Constants.T_DO,\n                re: /^do\\b/i\n            },\n            {\n                value: PHP.Constants.T_ECHO,\n                re: /^echo\\b/i\n            },\n            {\n                value: PHP.Constants.T_ELSE,\n                re: /^else\\b/i\n            },\n            {\n                value: PHP.Constants.T_ELSEIF,\n                re: /^elseif\\b/i\n            },\n            {\n                value: PHP.Constants.T_ENDDECLARE,\n                re: /^enddeclare\\b/i\n            },\n            {\n                value: PHP.Constants.T_ENDFOR,\n                re: /^endfor\\b/i\n            },\n            {\n                value: PHP.Constants.T_ENDFOREACH,\n                re: /^endforeach\\b/i\n            },\n            {\n                value: PHP.Constants.T_ENDIF,\n                re: /^endif\\b/i\n            },\n            {\n                value: PHP.Constants.T_ENDSWITCH,\n                re: /^endswitch\\b/i\n            },\n            {\n                value: PHP.Constants.T_ENDWHILE,\n                re: /^endwhile\\b/i\n            },\n            {\n                value: PHP.Constants.T_EMPTY,\n                re: /^empty\\b/i\n            },\n            {\n                value: PHP.Constants.T_EVAL,\n                re: /^eval\\b/i\n            },\n            {\n                value: PHP.Constants.T_EXIT,\n                re: /^(?:exit|die)\\b/i\n            },\n            {\n                value: PHP.Constants.T_EXTENDS,\n                re: /^extends\\b/i\n            },\n            {\n                value: PHP.Constants.T_FINAL,\n                re: /^final\\b/i\n            },\n            {\n                value: PHP.Constants.T_FINALLY,\n                re: /^finally\\b/i\n            },\n            {\n                value: PHP.Constants.T_FOR,\n                re: /^for\\b/i\n            },\n            {\n                value: PHP.Constants.T_FOREACH,\n                re: /^foreach\\b/i\n            },\n            {\n                value: PHP.Constants.T_FUNCTION,\n                re: /^function\\b/i\n            },\n            {\n                value: PHP.Constants.T_GLOBAL,\n                re: /^global\\b/i\n            },\n            {\n                value: PHP.Constants.T_GOTO,\n                re: /^goto\\b/i\n            },\n            {\n                value: PHP.Constants.T_IF,\n                re: /^if\\b/i\n            },\n            {\n                value: PHP.Constants.T_IMPLEMENTS,\n                re: /^implements\\b/i\n            },\n            {\n                value: PHP.Constants.T_INCLUDE,\n                re: /^include\\b/i\n            },\n            {\n                value: PHP.Constants.T_INCLUDE_ONCE,\n                re: /^include_once\\b/i\n            },\n            {\n                value: PHP.Constants.T_INSTANCEOF,\n                re: /^instanceof\\b/i\n            },\n            {\n                value: PHP.Constants.T_INSTEADOF,\n                re: /^insteadof\\b/i\n            },\n            {\n                value: PHP.Constants.T_INTERFACE,\n                re: /^interface\\b/i\n            },\n            {\n                value: PHP.Constants.T_ISSET,\n                re: /^isset\\b/i\n            },\n            {\n                value: PHP.Constants.T_LIST,\n                re: /^list\\b/i\n            },\n            {\n                value: PHP.Constants.T_NAMESPACE,\n                re: /^namespace\\b/i\n            },\n            {\n                value: PHP.Constants.T_NEW,\n                re: /^new\\b/i\n            },\n            {\n                value: PHP.Constants.T_LOGICAL_OR,\n                re: /^or\\b/i\n            },\n            {\n                value: PHP.Constants.T_PRINT,\n                re: /^print\\b/i\n            },\n            {\n                value: PHP.Constants.T_PRIVATE,\n                re: /^private\\b/i\n            },\n            {\n                value: PHP.Constants.T_PROTECTED,\n                re: /^protected\\b/i\n            },\n            {\n                value: PHP.Constants.T_PUBLIC,\n                re: /^public\\b/i\n            },\n            {\n                value: PHP.Constants.T_REQUIRE,\n                re: /^require\\b/i\n            },\n            {\n                value: PHP.Constants.T_REQUIRE_ONCE,\n                re: /^require_once\\b/i\n            },\n            {\n                value: PHP.Constants.T_STATIC,\n                re: /^static\\b/i\n            },\n            {\n                value: PHP.Constants.T_SWITCH,\n                re: /^switch\\b/i\n            },\n            {\n                value: PHP.Constants.T_THROW,\n                re: /^throw\\b/i\n            },\n            {\n                value: PHP.Constants.T_TRAIT,\n                re: /^trait\\b/i,\n            },\n            {\n                value: PHP.Constants.T_TRY,\n                re: /^try\\b/i\n            },\n            {\n                value: PHP.Constants.T_UNSET,\n                re: /^unset\\b/i\n            },\n            {\n                value: PHP.Constants.T_USE,\n                re: /^use\\b/i\n            },\n            {\n                value: PHP.Constants.T_VAR,\n                re: /^var\\b/i\n            },\n            {\n                value: PHP.Constants.T_WHILE,\n                re: /^while\\b/i\n            },\n            {\n                value: PHP.Constants.T_LOGICAL_XOR,\n                re: /^xor\\b/i\n            },\n            {\n                value: PHP.Constants.T_YIELD_FROM,\n                re: /^yield\\s+from\\b/i\n            },\n            {\n                value: PHP.Constants.T_YIELD,\n                re: /^yield\\b/i\n            },\n            {\n                value: PHP.Constants.T_RETURN,\n                re: /^return\\b/i\n            },\n            {\n                value: PHP.Constants.T_METHOD_C,\n                re: /^__METHOD__\\b/i\n            },\n            {\n                value: PHP.Constants.T_LINE,\n                re: /^__LINE__\\b/i\n            },\n            {\n                value: PHP.Constants.T_FILE,\n                re: /^__FILE__\\b/i\n            },\n            {\n                value: PHP.Constants.T_FUNC_C,\n                re: /^__FUNCTION__\\b/i\n            },\n            {\n                value: PHP.Constants.T_NS_C,\n                re: /^__NAMESPACE__\\b/i\n            },\n            {\n                value: PHP.Constants.T_TRAIT_C,\n                re: /^__TRAIT__\\b/i\n            },\n            {\n                value: PHP.Constants.T_DIR,\n                re: /^__DIR__\\b/i\n            },\n            {\n                value: PHP.Constants.T_CLASS_C,\n                re: /^__CLASS__\\b/i\n            },\n            {\n                value: PHP.Constants.T_AND_EQUAL,\n                re: /^&=/\n            },\n            {\n                value: PHP.Constants.T_ARRAY_CAST,\n                re: /^\\([ \\t]*array[ \\t]*\\)/i\n            },\n            {\n                value: PHP.Constants.T_BOOL_CAST,\n                re: /^\\([ \\t]*(?:bool|boolean)[ \\t]*\\)/i\n            },\n            {\n                value: PHP.Constants.T_DOUBLE_CAST,\n                re: /^\\([ \\t]*(?:real|float|double)[ \\t]*\\)/i\n            },\n            {\n                value: PHP.Constants.T_INT_CAST,\n                re: /^\\([ \\t]*(?:int|integer)[ \\t]*\\)/i\n            },\n            {\n                value: PHP.Constants.T_OBJECT_CAST,\n                re: /^\\([ \\t]*object[ \\t]*\\)/i\n            },\n            {\n                value: PHP.Constants.T_STRING_CAST,\n                re: /^\\([ \\t]*(?:binary|string)[ \\t]*\\)/i\n            },\n            {\n                value: PHP.Constants.T_UNSET_CAST,\n                re: /^\\([ \\t]*unset[ \\t]*\\)/i\n            },\n            {\n                value: PHP.Constants.T_BOOLEAN_AND,\n                re: /^&&/\n            },\n            {\n                value: PHP.Constants.T_BOOLEAN_OR,\n                re: /^\\|\\|/\n            },\n            {\n                value: PHP.Constants.T_CLOSE_TAG,\n                re: /^(?:\\?>|<\\/script>)(\\r\\n|\\r|\\n)?/i,\n                func: function() {\n                    swapState('INITIAL');\n                }\n            },\n            {\n                value: PHP.Constants.T_DOUBLE_ARROW,\n                re: /^=>/\n            },\n            {\n                value: PHP.Constants.T_PAAMAYIM_NEKUDOTAYIM,\n                re: /^::/\n            },\n            {\n                value: PHP.Constants.T_INC,\n                re: /^\\+\\+/\n            },\n            {\n                value: PHP.Constants.T_DEC,\n                re: /^--/\n            },\n            {\n                value: PHP.Constants.T_CONCAT_EQUAL,\n                re: /^\\.=/\n            },\n            {\n                value: PHP.Constants.T_DIV_EQUAL,\n                re: /^\\/=/\n            },\n            {\n                value: PHP.Constants.T_XOR_EQUAL,\n                re: /^\\^=/\n            },\n            {\n                value: PHP.Constants.T_MUL_EQUAL,\n                re: /^\\*=/\n            },\n            {\n                value: PHP.Constants.T_MOD_EQUAL,\n                re: /^%=/\n            },\n            {\n                value: PHP.Constants.T_SL_EQUAL,\n                re: /^<<=/\n            },\n            {\n                value: PHP.Constants.T_START_HEREDOC,\n                re: new RegExp('^[bB]?<<<[ \\\\t]*\\'(' + labelRegexPart + ')\\'(?:\\\\r\\\\n|\\\\r|\\\\n)'),\n                func: function(result) {\n                    heredoc = result[1];\n                    swapState('NOWDOC');\n                }\n            },\n            {\n                value: PHP.Constants.T_START_HEREDOC,\n                re: new RegExp('^[bB]?<<<[ \\\\t]*(\"?)(' + labelRegexPart + ')\\\\1(?:\\\\r\\\\n|\\\\r|\\\\n)'),\n                func: function(result) {\n                    heredoc = result[2];\n                    heredocEndAllowed = true;\n                    swapState('HEREDOC');\n                }\n            },\n            {\n                value: PHP.Constants.T_SL,\n                re: /^<</\n            },\n            {\n                value: PHP.Constants.T_SPACESHIP,\n                re: /^<=>/\n            },\n            {\n                value: PHP.Constants.T_IS_SMALLER_OR_EQUAL,\n                re: /^<=/\n            },\n            {\n                value: PHP.Constants.T_SR_EQUAL,\n                re: /^>>=/\n            },\n            {\n                value: PHP.Constants.T_SR,\n                re: /^>>/\n            },\n            {\n                value: PHP.Constants.T_IS_GREATER_OR_EQUAL,\n                re: /^>=/\n            },\n            {\n                value: PHP.Constants.T_OR_EQUAL,\n                re: /^\\|=/\n            },\n            {\n                value: PHP.Constants.T_PLUS_EQUAL,\n                re: /^\\+=/\n            },\n            {\n                value: PHP.Constants.T_MINUS_EQUAL,\n                re: /^-=/\n            },\n            {\n                value: PHP.Constants.T_OBJECT_OPERATOR,\n                re: new RegExp('^->(?=[ \\n\\r\\t]*' + labelRegexPart + ')'),\n                func: function() {\n                    pushState('LOOKING_FOR_PROPERTY');\n                }\n            },\n            {\n                value: PHP.Constants.T_OBJECT_OPERATOR,\n                re: /^->/i\n            },\n            {\n                value: PHP.Constants.T_ELLIPSIS,\n                re: /^\\.\\.\\./\n            },\n            {\n                value: PHP.Constants.T_POW_EQUAL,\n                re: /^\\*\\*=/\n            },\n            {\n                value: PHP.Constants.T_POW,\n                re: /^\\*\\*/\n            },\n            {\n                value: PHP.Constants.T_COALESCE,\n                re: /^\\?\\?/\n            },\n            {\n                value: PHP.Constants.T_COMMENT,\n                re: /^\\/\\*([\\S\\s]*?)(?:\\*\\/|$)/\n            },\n            {\n                value: PHP.Constants.T_COMMENT,\n                re: /^(?:\\/\\/|#)[^\\r\\n?]*(?:\\?(?!>)[^\\r\\n?]*)*(?:\\r\\n|\\r|\\n)?/\n            },\n            {\n                value: PHP.Constants.T_IS_IDENTICAL,\n                re: /^===/\n            },\n            {\n                value: PHP.Constants.T_IS_EQUAL,\n                re: /^==/\n            },\n            {\n                value: PHP.Constants.T_IS_NOT_IDENTICAL,\n                re: /^!==/\n            },\n            {\n                value: PHP.Constants.T_IS_NOT_EQUAL,\n                re: /^(!=|<>)/\n            },\n            {\n                value: PHP.Constants.T_DNUMBER,\n                re: /^(?:[0-9]+\\.[0-9]*|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?/\n            },\n            {\n                value: PHP.Constants.T_DNUMBER,\n                re: /^[0-9]+[eE][+-]?[0-9]+/\n            },\n            {\n                value: PHP.Constants.T_LNUMBER,\n                re: /^(?:0x[0-9A-F]+|0b[01]+|[0-9]+)/i\n            },\n            {\n                value: PHP.Constants.T_VARIABLE,\n                re: new RegExp('^\\\\$' + labelRegexPart)\n            },\n            {\n                value: PHP.Constants.T_CONSTANT_ENCAPSED_STRING,\n                re: /^[bB]?'[^'\\\\]*(?:\\\\[\\s\\S][^'\\\\]*)*'/,\n            },\n            {\n                value: PHP.Constants.T_CONSTANT_ENCAPSED_STRING,\n                re: new RegExp('^[bB]?\"' + stringRegexPart('\"') + '\"')\n            },\n            {\n                value: -1,\n                re: /^[bB]?\"/,\n                func: function() {\n                    swapState('DOUBLE_QUOTES');\n                }\n            },\n            {\n                value: -1,\n                re: /^`/,\n                func: function() {\n                    swapState('BACKTICKS');\n                }\n            },\n            {\n                value: PHP.Constants.T_NS_SEPARATOR,\n                re: /^\\\\/\n            },\n            {\n                value: PHP.Constants.T_STRING,\n                re: /^[a-zA-Z_\\x7f-\\uffff][a-zA-Z0-9_\\x7f-\\uffff]*/\n            },\n            {\n                value: -1,\n                re: /^\\{/,\n                func: function() {\n                    pushState('IN_SCRIPTING');\n                }\n            },\n            {\n                value: -1,\n                re: /^\\}/,\n                func: function() {\n                    if (stackPos > 0) {\n                        popState();\n                    }\n                }\n            },\n            {\n                value: -1,\n                re: /^[\\[\\];:?()!.,><=+-/*|&@^%\"'$~]/\n            }\n        ],\n        'DOUBLE_QUOTES': sharedStringTokens.concat([\n            {\n                value: -1,\n                re: /^\"/,\n                func: function() {\n                    swapState('IN_SCRIPTING');\n                }\n            },\n            {\n                value: PHP.Constants.T_ENCAPSED_AND_WHITESPACE,\n                re: new RegExp('^' + stringRegexPart('\"'))\n            }\n        ]),\n        'BACKTICKS': sharedStringTokens.concat([\n            {\n                value: -1,\n                re: /^`/,\n                func: function() {\n                    swapState('IN_SCRIPTING');\n                }\n            },\n            {\n                value: PHP.Constants.T_ENCAPSED_AND_WHITESPACE,\n                re: new RegExp('^' + stringRegexPart('`'))\n            }\n        ]),\n        'VAR_OFFSET': [\n            {\n                value: -1,\n                re: /^\\]/,\n                func: function() {\n                    popState();\n                }\n            },\n            {\n                value: PHP.Constants.T_NUM_STRING,\n                re: /^(?:0x[0-9A-F]+|0b[01]+|[0-9]+)/i\n            },\n            {\n                value: PHP.Constants.T_VARIABLE,\n                re: new RegExp('^\\\\$' + labelRegexPart)\n            },\n            {\n                value: PHP.Constants.T_STRING,\n                re: new RegExp('^' + labelRegexPart)\n            },\n            {\n                value: -1,\n                re: /^[;:,.\\[()|^&+-/*=%!~$<>?@{}\"`]/\n            }\n        ],\n        'LOOKING_FOR_PROPERTY': [\n            {\n                value: PHP.Constants.T_OBJECT_OPERATOR,\n                re: /^->/\n            },\n            {\n                value: PHP.Constants.T_STRING,\n                re: new RegExp('^' + labelRegexPart),\n                func: function() {\n                    popState();\n                }\n            },\n            {\n                value: PHP.Constants.T_WHITESPACE,\n                re: /^[ \\n\\r\\t]+/\n            }\n        ],\n        'LOOKING_FOR_VARNAME': [\n            {\n                value: PHP.Constants.T_STRING_VARNAME,\n                re: new RegExp('^' + labelRegexPart + '(?=[\\\\[}])'),\n                func: function() {\n                    swapState('IN_SCRIPTING');\n                }\n            }\n        ],\n        'NOWDOC': [\n            {\n                value: PHP.Constants.T_END_HEREDOC,\n                matchFunc: function(src) {\n                    var re = new RegExp('^' + heredoc + '(?=;?[\\\\r\\\\n])');\n                    if (src.match(re)) {\n                        return [src.substr(0, heredoc.length)];\n                    } else {\n                        return null;\n                    }\n                },\n                func: function() {\n                    swapState('IN_SCRIPTING');\n                }\n            },\n            {\n                value: PHP.Constants.T_ENCAPSED_AND_WHITESPACE,\n                matchFunc: function(src) {\n                    var re = new RegExp('[\\\\r\\\\n]' + heredoc + '(?=;?[\\\\r\\\\n])');\n                    var result = re.exec(src);\n                    var end = result ? result.index + 1 : src.length;\n                    return [src.substring(0, end)];\n                }\n            }\n        ],\n        'HEREDOC': sharedStringTokens.concat([\n            {\n                value: PHP.Constants.T_END_HEREDOC,\n                matchFunc: function(src) {\n                    if (!heredocEndAllowed) {\n                        return null;\n                    }\n                    var re = new RegExp('^' + heredoc + '(?=;?[\\\\r\\\\n])');\n                    if (src.match(re)) {\n                        return [src.substr(0, heredoc.length)];\n                    } else {\n                        return null;\n                    }\n                },\n                func: function() {\n                    swapState('IN_SCRIPTING');\n                }\n            },\n            {\n                value: PHP.Constants.T_ENCAPSED_AND_WHITESPACE,\n                matchFunc: function(src) {\n                    var end = src.length;\n                    var re = new RegExp('^' + stringRegexPart(''));\n                    var result = re.exec(src);\n                    if (result) {\n                        end = result[0].length;\n                    }\n                    re = new RegExp('([\\\\r\\\\n])' + heredoc + '(?=;?[\\\\r\\\\n])');\n                    result = re.exec(src.substring(0, end));\n                    if (result) {\n                        end = result.index + 1;\n                        heredocEndAllowed = true;\n                    } else {\n                        heredocEndAllowed = false;\n                    }\n                    if (end == 0) {\n                        return null;\n                    }\n                    return [src.substring(0, end)];\n                }\n            }\n        ])\n    };\n\n    var results = [],\n    line = 1,\n    cancel = true;\n\n    if (src === null) {\n        return results;\n    }\n\n    if (typeof src !== \"string\") {\n        src = src.toString();\n    }\n\n    while (src.length > 0 && cancel === true) {\n        var state = stateStack[stackPos];\n        var tokens = data[state];\n        cancel = tokens.some(function(token){\n            var result = token.matchFunc !== undefined\n                ? token.matchFunc(src)\n                : src.match(token.re);\n            if (result !== null) {\n                if (result[0].length == 0) {\n                    throw new Error(\"empty match\");\n                }\n\n                if (token.func !== undefined) {\n                    token.func(result);\n                }\n\n                if (token.value === -1) {\n                    results.push(result[0]);\n                } else {\n                    var resultString = result[0];\n                    results.push([\n                        parseInt(token.value, 10),\n                        resultString,\n                        line\n                        ]);\n                    line += resultString.split('\\n').length - 1;\n                }\n\n                src = src.substring(result[0].length);\n\n                return true;\n            }\n            return false;\n        });\n    }\n\n    return results;\n};\n\n\nPHP.Parser = function ( preprocessedTokens, eval ) {\n\n    var yybase = this.yybase,\n    yydefault = this.yydefault,\n    yycheck = this.yycheck,\n    yyaction = this.yyaction,\n    yylen = this.yylen,\n    yygbase = this.yygbase,\n    yygcheck = this.yygcheck,\n    yyp = this.yyp,\n    yygoto = this.yygoto,\n    yylhs = this.yylhs,\n    terminals = this.terminals,\n    translate = this.translate,\n    yygdefault = this.yygdefault;\n\n\n    this.pos = -1;\n    this.line = 1;\n\n    this.tokenMap = this.createTokenMap( );\n\n    this.dropTokens = {};\n    this.dropTokens[ PHP.Constants.T_WHITESPACE ] = 1;\n    this.dropTokens[ PHP.Constants.T_OPEN_TAG ] = 1;\n    var tokens = [];\n    preprocessedTokens.forEach( function( token, index ) {\n        if ( typeof token === \"object\" && token[ 0 ] === PHP.Constants.T_OPEN_TAG_WITH_ECHO) {\n            tokens.push([\n                PHP.Constants.T_OPEN_TAG,\n                token[ 1 ],\n                token[ 2 ]\n                ]);\n            tokens.push([\n                PHP.Constants.T_ECHO,\n                token[ 1 ],\n                token[ 2 ]\n                ]);\n        } else {\n            tokens.push( token );\n        }\n    });\n    this.tokens = tokens;\n    var tokenId = this.TOKEN_NONE;\n    this.startAttributes = {\n        'startLine': 1\n    };\n\n    this.endAttributes = {};\n    var attributeStack = [ this.startAttributes ];\n    var state = 0;\n    var stateStack = [ state ];\n    this.yyastk = [];\n    this.stackPos  = 0;\n\n    var yyn;\n\n    var origTokenId;\n\n\n    for (;;) {\n\n        if ( yybase[ state ] === 0 ) {\n            yyn = yydefault[ state ];\n        } else {\n            if (tokenId === this.TOKEN_NONE ) {\n                origTokenId = this.getNextToken( );\n                tokenId = (origTokenId >= 0 && origTokenId < this.TOKEN_MAP_SIZE) ? translate[ origTokenId ] : this.TOKEN_INVALID;\n\n                attributeStack[ this.stackPos ] = this.startAttributes;\n            }\n\n            if (((yyn = yybase[ state ] + tokenId) >= 0\n                && yyn < this.YYLAST && yycheck[ yyn ] === tokenId\n                || (state < this.YY2TBLSTATE\n                    && (yyn = yybase[state + this.YYNLSTATES] + tokenId) >= 0\n                    && yyn < this.YYLAST\n                    && yycheck[ yyn ] === tokenId))\n            && (yyn = yyaction[ yyn ]) !== this.YYDEFAULT ) {\n                if (yyn > 0) {\n                    ++this.stackPos;\n\n                    stateStack[ this.stackPos ] = state = yyn;\n                    this.yyastk[ this.stackPos ] = this.tokenValue;\n                    attributeStack[ this.stackPos ] = this.startAttributes;\n                    tokenId = this.TOKEN_NONE;\n\n                    if (yyn < this.YYNLSTATES)\n                        continue;\n                    yyn -= this.YYNLSTATES;\n                } else {\n                    yyn = -yyn;\n                }\n            } else {\n                yyn = yydefault[ state ];\n            }\n        }\n\n        for (;;) {\n\n            if ( yyn === 0 ) {\n                return this.yyval;\n            } else if (yyn !== this.YYUNEXPECTED ) {\n                for (var attr in this.endAttributes) {\n                    attributeStack[ this.stackPos - yylen[ yyn ] ][ attr ] = this.endAttributes[ attr ];\n                }\n                this.stackPos -= yylen[ yyn ];\n                yyn = yylhs[ yyn ];\n                if ((yyp = yygbase[ yyn ] + stateStack[ this.stackPos ]) >= 0\n                    && yyp < this.YYGLAST\n                    && yygcheck[ yyp ] === yyn) {\n                    state = yygoto[ yyp ];\n                } else {\n                    state = yygdefault[ yyn ];\n                }\n\n                ++this.stackPos;\n\n                stateStack[ this.stackPos ] = state;\n                this.yyastk[ this.stackPos ] = this.yyval;\n                attributeStack[ this.stackPos ] = this.startAttributes;\n            } else {\n                if (eval !== true) {\n\n                    var expected = [];\n\n                    for (var i = 0; i < this.TOKEN_MAP_SIZE; ++i) {\n                        if ((yyn = yybase[ state ] + i) >= 0 && yyn < this.YYLAST && yycheck[ yyn ] == i\n                         || state < this.YY2TBLSTATE\n                            && (yyn = yybase[ state + this.YYNLSTATES] + i)\n                            && yyn < this.YYLAST && yycheck[ yyn ] == i\n                        ) {\n                            if (yyaction[ yyn ] != this.YYUNEXPECTED) {\n                                if (expected.length == 4) {\n                                    expected = [];\n                                    break;\n                                }\n\n                                expected.push( this.terminals[ i ] );\n                            }\n                        }\n                    }\n\n                    var expectedString = '';\n                    if (expected.length) {\n                        expectedString = ', expecting ' + expected.join(' or ');\n                    }\n                    throw new PHP.ParseError('syntax error, unexpected ' + terminals[ tokenId ] + expectedString, this.startAttributes['startLine']);\n                } else {\n                    return this.startAttributes['startLine'];\n                }\n\n            }\n\n            if (state < this.YYNLSTATES)\n                break;\n            yyn = state - this.YYNLSTATES;\n        }\n    }\n};\n\nPHP.ParseError = function( msg, line ) {\n    this.message = msg;\n    this.line = line;\n};\n\nPHP.Parser.prototype.getNextToken = function( ) {\n\n    this.startAttributes = {};\n    this.endAttributes = {};\n\n    var token,\n    tmp;\n\n    while (this.tokens[++this.pos] !== undefined) {\n        token = this.tokens[this.pos];\n\n        if (typeof token === \"string\") {\n            this.startAttributes['startLine'] = this.line;\n            this.endAttributes['endLine'] = this.line;\n            if ('b\"' === token) {\n                this.tokenValue = 'b\"';\n                return '\"'.charCodeAt(0);\n            } else {\n                this.tokenValue = token;\n                return token.charCodeAt(0);\n            }\n        } else {\n\n\n\n            this.line += ((tmp = token[ 1 ].match(/\\n/g)) === null) ? 0 : tmp.length;\n\n            if (PHP.Constants.T_COMMENT === token[0]) {\n\n                if (!Array.isArray(this.startAttributes['comments'])) {\n                    this.startAttributes['comments'] = [];\n                }\n\n                this.startAttributes['comments'].push( {\n                    type: \"comment\",\n                    comment: token[1],\n                    line: token[2]\n                });\n\n            } else if (PHP.Constants.T_DOC_COMMENT === token[0]) {\n                this.startAttributes['comments'].push( new PHPParser_Comment_Doc(token[1], token[2]) );\n            } else if (this.dropTokens[token[0]] === undefined) {\n                this.tokenValue = token[1];\n                this.startAttributes['startLine'] = token[2];\n                this.endAttributes['endLine'] = this.line;\n\n                return this.tokenMap[token[0]];\n            }\n        }\n    }\n\n    this.startAttributes['startLine'] = this.line;\n    return 0;\n};\n\nPHP.Parser.prototype.tokenName = function( token ) {\n    var constants = [\"T_INCLUDE\",\"T_INCLUDE_ONCE\",\"T_EVAL\",\"T_REQUIRE\",\"T_REQUIRE_ONCE\",\"T_LOGICAL_OR\",\"T_LOGICAL_XOR\",\"T_LOGICAL_AND\",\"T_PRINT\",\"T_YIELD\",\"T_DOUBLE_ARROW\",\"T_YIELD_FROM\",\"T_PLUS_EQUAL\",\"T_MINUS_EQUAL\",\"T_MUL_EQUAL\",\"T_DIV_EQUAL\",\"T_CONCAT_EQUAL\",\"T_MOD_EQUAL\",\"T_AND_EQUAL\",\"T_OR_EQUAL\",\"T_XOR_EQUAL\",\"T_SL_EQUAL\",\"T_SR_EQUAL\",\"T_POW_EQUAL\",\"T_COALESCE\",\"T_BOOLEAN_OR\",\"T_BOOLEAN_AND\",\"T_IS_EQUAL\",\"T_IS_NOT_EQUAL\",\"T_IS_IDENTICAL\",\"T_IS_NOT_IDENTICAL\",\"T_SPACESHIP\",\"T_IS_SMALLER_OR_EQUAL\",\"T_IS_GREATER_OR_EQUAL\",\"T_SL\",\"T_SR\",\"T_INSTANCEOF\",\"T_INC\",\"T_DEC\",\"T_INT_CAST\",\"T_DOUBLE_CAST\",\"T_STRING_CAST\",\"T_ARRAY_CAST\",\"T_OBJECT_CAST\",\"T_BOOL_CAST\",\"T_UNSET_CAST\",\"T_POW\",\"T_NEW\",\"T_CLONE\",\"T_EXIT\",\"T_IF\",\"T_ELSEIF\",\"T_ELSE\",\"T_ENDIF\",\"T_LNUMBER\",\"T_DNUMBER\",\"T_STRING\",\"T_STRING_VARNAME\",\"T_VARIABLE\",\"T_NUM_STRING\",\"T_INLINE_HTML\",\"T_CHARACTER\",\"T_BAD_CHARACTER\",\"T_ENCAPSED_AND_WHITESPACE\",\"T_CONSTANT_ENCAPSED_STRING\",\"T_ECHO\",\"T_DO\",\"T_WHILE\",\"T_ENDWHILE\",\"T_FOR\",\"T_ENDFOR\",\"T_FOREACH\",\"T_ENDFOREACH\",\"T_DECLARE\",\"T_ENDDECLARE\",\"T_AS\",\"T_SWITCH\",\"T_ENDSWITCH\",\"T_CASE\",\"T_DEFAULT\",\"T_BREAK\",\"T_CONTINUE\",\"T_GOTO\",\"T_FUNCTION\",\"T_CONST\",\"T_RETURN\",\"T_TRY\",\"T_CATCH\",\"T_FINALLY\",\"T_THROW\",\"T_USE\",\"T_INSTEADOF\",\"T_GLOBAL\",\"T_STATIC\",\"T_ABSTRACT\",\"T_FINAL\",\"T_PRIVATE\",\"T_PROTECTED\",\"T_PUBLIC\",\"T_VAR\",\"T_UNSET\",\"T_ISSET\",\"T_EMPTY\",\"T_HALT_COMPILER\",\"T_CLASS\",\"T_TRAIT\",\"T_INTERFACE\",\"T_EXTENDS\",\"T_IMPLEMENTS\",\"T_OBJECT_OPERATOR\",\"T_DOUBLE_ARROW\",\"T_LIST\",\"T_ARRAY\",\"T_CALLABLE\",\"T_CLASS_C\",\"T_TRAIT_C\",\"T_METHOD_C\",\"T_FUNC_C\",\"T_LINE\",\"T_FILE\",\"T_COMMENT\",\"T_DOC_COMMENT\",\"T_OPEN_TAG\",\"T_OPEN_TAG_WITH_ECHO\",\"T_CLOSE_TAG\",\"T_WHITESPACE\",\"T_START_HEREDOC\",\"T_END_HEREDOC\",\"T_DOLLAR_OPEN_CURLY_BRACES\",\"T_CURLY_OPEN\",\"T_PAAMAYIM_NEKUDOTAYIM\",\"T_NAMESPACE\",\"T_NS_C\",\"T_DIR\",\"T_NS_SEPARATOR\",\"T_ELLIPSIS\"];\n    var current = \"UNKNOWN\";\n    constants.some(function( constant ) {\n        if (PHP.Constants[ constant ] === token) {\n            current = constant;\n            return true;\n        } else {\n            return false;\n        }\n    });\n\n    return current;\n};\n\nPHP.Parser.prototype.createTokenMap = function() {\n    var tokenMap = {},\n    name,\n    i;\n    for ( i = 256; i < 1000; ++i ) {\n        if( PHP.Constants.T_OPEN_TAG_WITH_ECHO === i ) {\n            tokenMap[ i ] = PHP.Constants.T_ECHO;\n        } else if( PHP.Constants.T_CLOSE_TAG === i ) {\n            tokenMap[ i ] = 59;\n        } else if ( 'UNKNOWN' !== (name = this.tokenName( i ) ) ) { \n            tokenMap[ i ] =  this[name];\n        }\n    }\n    return tokenMap;\n};\n\nPHP.Parser.prototype.TOKEN_NONE    = -1;\nPHP.Parser.prototype.TOKEN_INVALID = 157;\n\nPHP.Parser.prototype.TOKEN_MAP_SIZE = 392;\n\nPHP.Parser.prototype.YYLAST       = 889;\nPHP.Parser.prototype.YY2TBLSTATE  = 337;\nPHP.Parser.prototype.YYGLAST      = 410;\nPHP.Parser.prototype.YYNLSTATES   = 564;\nPHP.Parser.prototype.YYUNEXPECTED = 32767;\nPHP.Parser.prototype.YYDEFAULT    = -32766;\nPHP.Parser.prototype.YYERRTOK = 256;\nPHP.Parser.prototype.T_INCLUDE = 257;\nPHP.Parser.prototype.T_INCLUDE_ONCE = 258;\nPHP.Parser.prototype.T_EVAL = 259;\nPHP.Parser.prototype.T_REQUIRE = 260;\nPHP.Parser.prototype.T_REQUIRE_ONCE = 261;\nPHP.Parser.prototype.T_LOGICAL_OR = 262;\nPHP.Parser.prototype.T_LOGICAL_XOR = 263;\nPHP.Parser.prototype.T_LOGICAL_AND = 264;\nPHP.Parser.prototype.T_PRINT = 265;\nPHP.Parser.prototype.T_YIELD = 266;\nPHP.Parser.prototype.T_DOUBLE_ARROW = 267;\nPHP.Parser.prototype.T_YIELD_FROM = 268;\nPHP.Parser.prototype.T_PLUS_EQUAL = 269;\nPHP.Parser.prototype.T_MINUS_EQUAL = 270;\nPHP.Parser.prototype.T_MUL_EQUAL = 271;\nPHP.Parser.prototype.T_DIV_EQUAL = 272;\nPHP.Parser.prototype.T_CONCAT_EQUAL = 273;\nPHP.Parser.prototype.T_MOD_EQUAL = 274;\nPHP.Parser.prototype.T_AND_EQUAL = 275;\nPHP.Parser.prototype.T_OR_EQUAL = 276;\nPHP.Parser.prototype.T_XOR_EQUAL = 277;\nPHP.Parser.prototype.T_SL_EQUAL = 278;\nPHP.Parser.prototype.T_SR_EQUAL = 279;\nPHP.Parser.prototype.T_POW_EQUAL = 280;\nPHP.Parser.prototype.T_COALESCE = 281;\nPHP.Parser.prototype.T_BOOLEAN_OR = 282;\nPHP.Parser.prototype.T_BOOLEAN_AND = 283;\nPHP.Parser.prototype.T_IS_EQUAL = 284;\nPHP.Parser.prototype.T_IS_NOT_EQUAL = 285;\nPHP.Parser.prototype.T_IS_IDENTICAL = 286;\nPHP.Parser.prototype.T_IS_NOT_IDENTICAL = 287;\nPHP.Parser.prototype.T_SPACESHIP = 288;\nPHP.Parser.prototype.T_IS_SMALLER_OR_EQUAL = 289;\nPHP.Parser.prototype.T_IS_GREATER_OR_EQUAL = 290;\nPHP.Parser.prototype.T_SL = 291;\nPHP.Parser.prototype.T_SR = 292;\nPHP.Parser.prototype.T_INSTANCEOF = 293;\nPHP.Parser.prototype.T_INC = 294;\nPHP.Parser.prototype.T_DEC = 295;\nPHP.Parser.prototype.T_INT_CAST = 296;\nPHP.Parser.prototype.T_DOUBLE_CAST = 297;\nPHP.Parser.prototype.T_STRING_CAST = 298;\nPHP.Parser.prototype.T_ARRAY_CAST = 299;\nPHP.Parser.prototype.T_OBJECT_CAST = 300;\nPHP.Parser.prototype.T_BOOL_CAST = 301;\nPHP.Parser.prototype.T_UNSET_CAST = 302;\nPHP.Parser.prototype.T_POW = 303;\nPHP.Parser.prototype.T_NEW = 304;\nPHP.Parser.prototype.T_CLONE = 305;\nPHP.Parser.prototype.T_EXIT = 306;\nPHP.Parser.prototype.T_IF = 307;\nPHP.Parser.prototype.T_ELSEIF = 308;\nPHP.Parser.prototype.T_ELSE = 309;\nPHP.Parser.prototype.T_ENDIF = 310;\nPHP.Parser.prototype.T_LNUMBER = 311;\nPHP.Parser.prototype.T_DNUMBER = 312;\nPHP.Parser.prototype.T_STRING = 313;\nPHP.Parser.prototype.T_STRING_VARNAME = 314;\nPHP.Parser.prototype.T_VARIABLE = 315;\nPHP.Parser.prototype.T_NUM_STRING = 316;\nPHP.Parser.prototype.T_INLINE_HTML = 317;\nPHP.Parser.prototype.T_CHARACTER = 318;\nPHP.Parser.prototype.T_BAD_CHARACTER = 319;\nPHP.Parser.prototype.T_ENCAPSED_AND_WHITESPACE = 320;\nPHP.Parser.prototype.T_CONSTANT_ENCAPSED_STRING = 321;\nPHP.Parser.prototype.T_ECHO = 322;\nPHP.Parser.prototype.T_DO = 323;\nPHP.Parser.prototype.T_WHILE = 324;\nPHP.Parser.prototype.T_ENDWHILE = 325;\nPHP.Parser.prototype.T_FOR = 326;\nPHP.Parser.prototype.T_ENDFOR = 327;\nPHP.Parser.prototype.T_FOREACH = 328;\nPHP.Parser.prototype.T_ENDFOREACH = 329;\nPHP.Parser.prototype.T_DECLARE = 330;\nPHP.Parser.prototype.T_ENDDECLARE = 331;\nPHP.Parser.prototype.T_AS = 332;\nPHP.Parser.prototype.T_SWITCH = 333;\nPHP.Parser.prototype.T_ENDSWITCH = 334;\nPHP.Parser.prototype.T_CASE = 335;\nPHP.Parser.prototype.T_DEFAULT = 336;\nPHP.Parser.prototype.T_BREAK = 337;\nPHP.Parser.prototype.T_CONTINUE = 338;\nPHP.Parser.prototype.T_GOTO = 339;\nPHP.Parser.prototype.T_FUNCTION = 340;\nPHP.Parser.prototype.T_CONST = 341;\nPHP.Parser.prototype.T_RETURN = 342;\nPHP.Parser.prototype.T_TRY = 343;\nPHP.Parser.prototype.T_CATCH = 344;\nPHP.Parser.prototype.T_FINALLY = 345;\nPHP.Parser.prototype.T_THROW = 346;\nPHP.Parser.prototype.T_USE = 347;\nPHP.Parser.prototype.T_INSTEADOF = 348;\nPHP.Parser.prototype.T_GLOBAL = 349;\nPHP.Parser.prototype.T_STATIC = 350;\nPHP.Parser.prototype.T_ABSTRACT = 351;\nPHP.Parser.prototype.T_FINAL = 352;\nPHP.Parser.prototype.T_PRIVATE = 353;\nPHP.Parser.prototype.T_PROTECTED = 354;\nPHP.Parser.prototype.T_PUBLIC = 355;\nPHP.Parser.prototype.T_VAR = 356;\nPHP.Parser.prototype.T_UNSET = 357;\nPHP.Parser.prototype.T_ISSET = 358;\nPHP.Parser.prototype.T_EMPTY = 359;\nPHP.Parser.prototype.T_HALT_COMPILER = 360;\nPHP.Parser.prototype.T_CLASS = 361;\nPHP.Parser.prototype.T_TRAIT = 362;\nPHP.Parser.prototype.T_INTERFACE = 363;\nPHP.Parser.prototype.T_EXTENDS = 364;\nPHP.Parser.prototype.T_IMPLEMENTS = 365;\nPHP.Parser.prototype.T_OBJECT_OPERATOR = 366;\nPHP.Parser.prototype.T_LIST = 367;\nPHP.Parser.prototype.T_ARRAY = 368;\nPHP.Parser.prototype.T_CALLABLE = 369;\nPHP.Parser.prototype.T_CLASS_C = 370;\nPHP.Parser.prototype.T_TRAIT_C = 371;\nPHP.Parser.prototype.T_METHOD_C = 372;\nPHP.Parser.prototype.T_FUNC_C = 373;\nPHP.Parser.prototype.T_LINE = 374;\nPHP.Parser.prototype.T_FILE = 375;\nPHP.Parser.prototype.T_COMMENT = 376;\nPHP.Parser.prototype.T_DOC_COMMENT = 377;\nPHP.Parser.prototype.T_OPEN_TAG = 378;\nPHP.Parser.prototype.T_OPEN_TAG_WITH_ECHO = 379;\nPHP.Parser.prototype.T_CLOSE_TAG = 380;\nPHP.Parser.prototype.T_WHITESPACE = 381;\nPHP.Parser.prototype.T_START_HEREDOC = 382;\nPHP.Parser.prototype.T_END_HEREDOC = 383;\nPHP.Parser.prototype.T_DOLLAR_OPEN_CURLY_BRACES = 384;\nPHP.Parser.prototype.T_CURLY_OPEN = 385;\nPHP.Parser.prototype.T_PAAMAYIM_NEKUDOTAYIM = 386;\nPHP.Parser.prototype.T_NAMESPACE = 387;\nPHP.Parser.prototype.T_NS_C = 388;\nPHP.Parser.prototype.T_DIR = 389;\nPHP.Parser.prototype.T_NS_SEPARATOR = 390;\nPHP.Parser.prototype.T_ELLIPSIS = 391;\nPHP.Parser.prototype.terminals = [\n    \"$EOF\",\n    \"error\",\n    \"T_INCLUDE\",\n    \"T_INCLUDE_ONCE\",\n    \"T_EVAL\",\n    \"T_REQUIRE\",\n    \"T_REQUIRE_ONCE\",\n    \"','\",\n    \"T_LOGICAL_OR\",\n    \"T_LOGICAL_XOR\",\n    \"T_LOGICAL_AND\",\n    \"T_PRINT\",\n    \"T_YIELD\",\n    \"T_DOUBLE_ARROW\",\n    \"T_YIELD_FROM\",\n    \"'='\",\n    \"T_PLUS_EQUAL\",\n    \"T_MINUS_EQUAL\",\n    \"T_MUL_EQUAL\",\n    \"T_DIV_EQUAL\",\n    \"T_CONCAT_EQUAL\",\n    \"T_MOD_EQUAL\",\n    \"T_AND_EQUAL\",\n    \"T_OR_EQUAL\",\n    \"T_XOR_EQUAL\",\n    \"T_SL_EQUAL\",\n    \"T_SR_EQUAL\",\n    \"T_POW_EQUAL\",\n    \"'?'\",\n    \"':'\",\n    \"T_COALESCE\",\n    \"T_BOOLEAN_OR\",\n    \"T_BOOLEAN_AND\",\n    \"'|'\",\n    \"'^'\",\n    \"'&'\",\n    \"T_IS_EQUAL\",\n    \"T_IS_NOT_EQUAL\",\n    \"T_IS_IDENTICAL\",\n    \"T_IS_NOT_IDENTICAL\",\n    \"T_SPACESHIP\",\n    \"'<'\",\n    \"T_IS_SMALLER_OR_EQUAL\",\n    \"'>'\",\n    \"T_IS_GREATER_OR_EQUAL\",\n    \"T_SL\",\n    \"T_SR\",\n    \"'+'\",\n    \"'-'\",\n    \"'.'\",\n    \"'*'\",\n    \"'/'\",\n    \"'%'\",\n    \"'!'\",\n    \"T_INSTANCEOF\",\n    \"'~'\",\n    \"T_INC\",\n    \"T_DEC\",\n    \"T_INT_CAST\",\n    \"T_DOUBLE_CAST\",\n    \"T_STRING_CAST\",\n    \"T_ARRAY_CAST\",\n    \"T_OBJECT_CAST\",\n    \"T_BOOL_CAST\",\n    \"T_UNSET_CAST\",\n    \"'@'\",\n    \"T_POW\",\n    \"'['\",\n    \"T_NEW\",\n    \"T_CLONE\",\n    \"T_EXIT\",\n    \"T_IF\",\n    \"T_ELSEIF\",\n    \"T_ELSE\",\n    \"T_ENDIF\",\n    \"T_LNUMBER\",\n    \"T_DNUMBER\",\n    \"T_STRING\",\n    \"T_STRING_VARNAME\",\n    \"T_VARIABLE\",\n    \"T_NUM_STRING\",\n    \"T_INLINE_HTML\",\n    \"T_ENCAPSED_AND_WHITESPACE\",\n    \"T_CONSTANT_ENCAPSED_STRING\",\n    \"T_ECHO\",\n    \"T_DO\",\n    \"T_WHILE\",\n    \"T_ENDWHILE\",\n    \"T_FOR\",\n    \"T_ENDFOR\",\n    \"T_FOREACH\",\n    \"T_ENDFOREACH\",\n    \"T_DECLARE\",\n    \"T_ENDDECLARE\",\n    \"T_AS\",\n    \"T_SWITCH\",\n    \"T_ENDSWITCH\",\n    \"T_CASE\",\n    \"T_DEFAULT\",\n    \"T_BREAK\",\n    \"T_CONTINUE\",\n    \"T_GOTO\",\n    \"T_FUNCTION\",\n    \"T_CONST\",\n    \"T_RETURN\",\n    \"T_TRY\",\n    \"T_CATCH\",\n    \"T_FINALLY\",\n    \"T_THROW\",\n    \"T_USE\",\n    \"T_INSTEADOF\",\n    \"T_GLOBAL\",\n    \"T_STATIC\",\n    \"T_ABSTRACT\",\n    \"T_FINAL\",\n    \"T_PRIVATE\",\n    \"T_PROTECTED\",\n    \"T_PUBLIC\",\n    \"T_VAR\",\n    \"T_UNSET\",\n    \"T_ISSET\",\n    \"T_EMPTY\",\n    \"T_HALT_COMPILER\",\n    \"T_CLASS\",\n    \"T_TRAIT\",\n    \"T_INTERFACE\",\n    \"T_EXTENDS\",\n    \"T_IMPLEMENTS\",\n    \"T_OBJECT_OPERATOR\",\n    \"T_LIST\",\n    \"T_ARRAY\",\n    \"T_CALLABLE\",\n    \"T_CLASS_C\",\n    \"T_TRAIT_C\",\n    \"T_METHOD_C\",\n    \"T_FUNC_C\",\n    \"T_LINE\",\n    \"T_FILE\",\n    \"T_START_HEREDOC\",\n    \"T_END_HEREDOC\",\n    \"T_DOLLAR_OPEN_CURLY_BRACES\",\n    \"T_CURLY_OPEN\",\n    \"T_PAAMAYIM_NEKUDOTAYIM\",\n    \"T_NAMESPACE\",\n    \"T_NS_C\",\n    \"T_DIR\",\n    \"T_NS_SEPARATOR\",\n    \"T_ELLIPSIS\",\n    \"';'\",\n    \"'{'\",\n    \"'}'\",\n    \"'('\",\n    \"')'\",\n    \"'`'\",\n    \"']'\",\n    \"'\\\"'\",\n    \"'$'\"\n    , \"???\"\n];\nPHP.Parser.prototype.translate = [\n        0,  157,  157,  157,  157,  157,  157,  157,  157,  157,\n      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,\n      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,\n      157,  157,  157,   53,  155,  157,  156,   52,   35,  157,\n      151,  152,   50,   47,    7,   48,   49,   51,  157,  157,\n      157,  157,  157,  157,  157,  157,  157,  157,   29,  148,\n       41,   15,   43,   28,   65,  157,  157,  157,  157,  157,\n      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,\n      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,\n      157,   67,  157,  154,   34,  157,  153,  157,  157,  157,\n      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,\n      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,\n      157,  157,  157,  149,   33,  150,   55,  157,  157,  157,\n      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,\n      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,\n      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,\n      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,\n      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,\n      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,\n      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,\n      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,\n      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,\n      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,\n      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,\n      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,\n      157,  157,  157,  157,  157,  157,    1,    2,    3,    4,\n        5,    6,    8,    9,   10,   11,   12,   13,   14,   16,\n       17,   18,   19,   20,   21,   22,   23,   24,   25,   26,\n       27,   30,   31,   32,   36,   37,   38,   39,   40,   42,\n       44,   45,   46,   54,   56,   57,   58,   59,   60,   61,\n       62,   63,   64,   66,   68,   69,   70,   71,   72,   73,\n       74,   75,   76,   77,   78,   79,   80,   81,  157,  157,\n       82,   83,   84,   85,   86,   87,   88,   89,   90,   91,\n       92,   93,   94,   95,   96,   97,   98,   99,  100,  101,\n      102,  103,  104,  105,  106,  107,  108,  109,  110,  111,\n      112,  113,  114,  115,  116,  117,  118,  119,  120,  121,\n      122,  123,  124,  125,  126,  127,  128,  129,  130,  131,\n      132,  133,  134,  135,  136,  137,  157,  157,  157,  157,\n      157,  157,  138,  139,  140,  141,  142,  143,  144,  145,\n      146,  147\n];\n\nPHP.Parser.prototype.yyaction = [\n      569,  570,  571,  572,  573,  215,  574,  575,  576,  612,\n      613,    0,   27,   99,  100,  101,  102,  103,  104,  105,\n      106,  107,  108,  109,  110,-32766,-32766,-32766,   95,   96,\n       97,   24,  240,  226, -267,-32766,-32766,-32766,-32766,-32766,\n    -32766,  530,  344,  114,   98,-32766,  286,-32766,-32766,-32766,\n    -32766,-32766,  577,  870,  872,-32766,-32766,-32766,-32766,-32766,\n    -32766,-32766,-32766,  224,-32766,  714,  578,  579,  580,  581,\n      582,  583,  584,-32766,  264,  644,  840,  841,  842,  839,\n      838,  837,  585,  586,  587,  588,  589,  590,  591,  592,\n      593,  594,  595,  615,  616,  617,  618,  619,  607,  608,\n      609,  610,  611,  596,  597,  598,  599,  600,  601,  602,\n      638,  639,  640,  641,  642,  643,  603,  604,  605,  606,\n      636,  627,  625,  626,  622,  623,  116,  614,  620,  621,\n      628,  629,  631,  630,  632,  633,   42,   43,  381,   44,\n       45,  624,  635,  634, -214,   46,   47,  289,   48,-32767,\n    -32767,-32767,-32767,   90,   91,   92,   93,   94,  267,  241,\n       22,  840,  841,  842,  839,  838,  837,  832,-32766,-32766,\n    -32766,  306, 1000, 1000, 1037,  120,  966,  436, -423,  244,\n      797,   49,   50,  660,  661,  272,  362,   51,-32766,   52,\n      219,  220,   53,   54,   55,   56,   57,   58,   59,   60,\n     1016,   22,  238,   61,  351,  945,-32766,-32766,-32766,  967,\n      968,  646,  705, 1000,   28, -456,  125,  966,-32766,-32766,\n    -32766,  715,  398,  399,  216, 1000,-32766,  339,-32766,-32766,\n    -32766,-32766,   25,  222,  980,  552,  355,  378,-32766, -423,\n    -32766,-32766,-32766,  121,   65, 1045,  408, 1047, 1046,  274,\n      274,  131,  244, -423,  394,  395,  358,  519,  945,  537,\n     -423,  111, -426,  398,  399,  130,  972,  973,  974,  975,\n      969,  970,  243,  128, -422, -421, 1013,  409,  976,  971,\n      353,  791,  792,    7, -162,   63,  124,  255,  701,  256,\n      274,  382, -122, -122, -122,   -4,  715,  383,  646, 1042,\n     -421,  704,  274, -219,   33,   17,  384, -122,  385, -122,\n      386, -122,  387, -122,  369,  388, -122, -122, -122,   34,\n       35,  389,  352,  520,   36,  390,  353,  702,   62,  112,\n      818,  287,  288,  391,  392, -422, -421, -161,  350,  393,\n       40,   38,  690,  735,  396,  397,  361,   22,  122, -422,\n     -421,-32766,-32766,-32766,  791,  792, -422, -421, -425, 1000,\n     -456, -421, -238,  966,  409,   41,  382,  353,  717,  535,\n     -122,-32766,  383,-32766,-32766, -421,  704,   21,  813,   33,\n       17,  384, -421,  385, -466,  386,  224,  387, -467,  273,\n      388,  367,  945, -458,   34,   35,  389,  352,  345,   36,\n      390,  248,  247,   62,  254,  715,  287,  288,  391,  392,\n      399,-32766,-32766,-32766,  393,  295, 1000,  652,  735,  396,\n      397,  117,  115,  113,  814,  119,   72,   73,   74, -162,\n      764,   65,  240,  541,  370,  518,  274,  118,  270,   92,\n       93,   94,  242,  717,  535,   -4,   26, 1000,   75,   76,\n       77,   78,   79,   80,   81,   82,   83,   84,   85,   86,\n       87,   88,   89,   90,   91,   92,   93,   94,   95,   96,\n       97,  547,  240,  713,  715,  382,  276,-32766,-32766,  126,\n      945,  383, -161,  938,   98,  704,  225,  659,   33,   17,\n      384,  346,  385,  274,  386,  728,  387,  221,  120,  388,\n      505,  506,  540,   34,   35,  389,  715, -238,   36,  390,\n     1017,  223,   62,  494,   18,  287,  288,  127,  297,  376,\n        6,   98,  798,  393,  274,  660,  661,  490,  491, -466,\n       39, -466,  514, -467,  539, -467,   16,  458, -458,  315,\n      791,  792,  829,  553,  382,  817,  563,  653,  538,  765,\n      383,  449,  751,  535,  704,  448,  435,   33,   17,  384,\n      430,  385,  646,  386,  359,  387,  357,  647,  388,  673,\n      429, 1040,   34,   35,  389,  715,  382,   36,  390,  941,\n      492,   62,  383,  503,  287,  288,  704,  434,  440,   33,\n       17,  384,  393,  385,-32766,  386,  445,  387,  495,  509,\n      388,   10,  529,  542,   34,   35,  389,  715,  515,   36,\n      390,  499,  500,   62,  214,  -80,  287,  288,  452,  269,\n      736,  717,  535,  488,  393,  356,  266,  979,  265,  730,\n      982,  722,  358,  338,  493,  548,    0,  294,  737,    0,\n        3,    0,  309,    0,    0,  382,    0,    0,  271,    0,\n        0,  383,    0,  717,  535,  704,  227,    0,   33,   17,\n      384,    9,  385,    0,  386,    0,  387, -382,    0,  388,\n        0,    0,  325,   34,   35,  389,  715,  382,   36,  390,\n      321,  341,   62,  383,  340,  287,  288,  704,   22,  320,\n       33,   17,  384,  393,  385,  442,  386,  337,  387,  562,\n     1000,  388,   32,   31,  966,   34,   35,  389,  823,  657,\n       36,  390,  656,  821,   62,  703,  711,  287,  288,  561,\n      822,  825,  717,  535,  695,  393,  747,  749,  693,  759,\n      758,  752,  767,  945,  824,  706,  700,  712,  699,  698,\n      658,    0,  263,  262,  559,  558,  382,  556,  554,  551,\n      398,  399,  383,  550,  717,  535,  704,  546,  545,   33,\n       17,  384,  543,  385,  536,  386,   71,  387,  933,  932,\n      388,   30,   65,  731,   34,   35,  389,  274,  724,   36,\n      390,  830,  734,   62,  663,  662,  287,  288,-32766,-32766,\n    -32766,  733,  732,  934,  393,  665,  664,  756,  555,  691,\n     1041, 1001,  994, 1006, 1011, 1014,  757, 1043,-32766,  654,\n    -32766,-32766,-32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767,\n    -32767,  655, 1044,  717,  535, -446,  926,  348,  343,  268,\n      237,  236,  235,  234,  218,  217,  132,  129, -426, -425,\n     -424,  123,   20,   23,   70,   69,   29,   37,   64,   68,\n       66,   67, -448,    0,   15,   19,  250,  910,  296, -217,\n      467,  484,  909,  472,  528,  913,   11,  964,  955, -215,\n      525,  379,  375,  373,  371,   14,   13,   12, -214,    0,\n     -393,    0, 1005, 1039,  992,  993,  963,    0,  981\n];\n\nPHP.Parser.prototype.yycheck = [\n        2,    3,    4,    5,    6,   13,    8,    9,   10,   11,\n       12,    0,   15,   16,   17,   18,   19,   20,   21,   22,\n       23,   24,   25,   26,   27,    8,    9,   10,   50,   51,\n       52,    7,   54,    7,   79,    8,    9,   10,    8,    9,\n       10,   77,    7,   13,   66,   28,    7,   30,   31,   32,\n       33,   34,   54,   56,   57,   28,    8,   30,   31,   32,\n       33,   34,   35,   35,  109,    1,   68,   69,   70,   71,\n       72,   73,   74,  118,    7,   77,  112,  113,  114,  115,\n      116,  117,   84,   85,   86,   87,   88,   89,   90,   91,\n       92,   93,   94,   95,   96,   97,   98,   99,  100,  101,\n      102,  103,  104,  105,  106,  107,  108,  109,  110,  111,\n      112,  113,  114,  115,  116,  117,  118,  119,  120,  121,\n      122,  123,  124,  125,  126,  127,    7,  129,  130,  131,\n      132,  133,  134,  135,  136,  137,    2,    3,    4,    5,\n        6,  143,  144,  145,  152,   11,   12,    7,   14,   41,\n       42,   43,   44,   45,   46,   47,   48,   49,  109,    7,\n       67,  112,  113,  114,  115,  116,  117,  118,    8,    9,\n       10,   79,   79,   79,   82,  147,   83,   82,   67,   28,\n      152,   47,   48,  102,  103,    7,    7,   53,   28,   55,\n       56,   57,   58,   59,   60,   61,   62,   63,   64,   65,\n        1,   67,   68,   69,   70,  112,    8,    9,   10,   75,\n       76,   77,  148,   79,   13,    7,   67,   83,    8,    9,\n       10,    1,  129,  130,   13,   79,   28,  146,   30,   31,\n       32,   33,  140,  141,  139,   29,  102,    7,   28,  128,\n       30,   31,   32,  149,  151,   77,  112,   79,   80,  156,\n      156,   15,   28,  142,  120,  121,  146,   77,  112,  149,\n      149,   15,  151,  129,  130,   15,  132,  133,  134,  135,\n      136,  137,  138,   15,   67,   67,   77,  143,  144,  145,\n      146,  130,  131,    7,    7,  151,   15,  153,  148,  155,\n      156,   71,   72,   73,   74,    0,    1,   77,   77,  150,\n       67,   81,  156,  152,   84,   85,   86,   87,   88,   89,\n       90,   91,   92,   93,   29,   95,   96,   97,   98,   99,\n      100,  101,  102,  143,  104,  105,  146,  148,  108,   15,\n      150,  111,  112,  113,  114,  128,  128,    7,    7,  119,\n       67,   67,  122,  123,  124,  125,    7,   67,  149,  142,\n      142,    8,    9,   10,  130,  131,  149,  149,  151,   79,\n      152,  128,    7,   83,  143,    7,   71,  146,  148,  149,\n      150,   28,   77,   30,   31,  142,   81,    7,  148,   84,\n       85,   86,  149,   88,    7,   90,   35,   92,    7,   33,\n       95,    7,  112,    7,   99,  100,  101,  102,  103,  104,\n      105,  128,  128,  108,  109,    1,  111,  112,  113,  114,\n      130,    8,    9,   10,  119,  142,   79,  122,  123,  124,\n      125,   15,  149,  149,  148,   29,    8,    9,   10,  152,\n       29,  151,   54,   29,  149,   79,  156,   15,  143,   47,\n       48,   49,   29,  148,  149,  150,   28,   79,   30,   31,\n       32,   33,   34,   35,   36,   37,   38,   39,   40,   41,\n       42,   43,   44,   45,   46,   47,   48,   49,   50,   51,\n       52,   29,   54,   29,    1,   71,   67,    8,    9,   29,\n      112,   77,  152,  152,   66,   81,   35,  148,   84,   85,\n       86,  123,   88,  156,   90,   35,   92,   35,  147,   95,\n       72,   73,   29,   99,  100,  101,    1,  152,  104,  105,\n      152,   35,  108,   72,   73,  111,  112,   97,   98,  102,\n      103,   66,  152,  119,  156,  102,  103,  106,  107,  152,\n       67,  154,   74,  152,   29,  154,  152,  128,  152,   78,\n      130,  131,  148,  149,   71,  148,  149,  148,  149,  148,\n       77,   77,  148,  149,   81,   77,   77,   84,   85,   86,\n       77,   88,   77,   90,   77,   92,   77,   77,   95,   77,\n       77,   77,   99,  100,  101,    1,   71,  104,  105,   79,\n       79,  108,   77,   79,  111,  112,   81,   79,   82,   84,\n       85,   86,  119,   88,   82,   90,   86,   92,   87,   96,\n       95,   94,   89,   29,   99,  100,  101,    1,   91,  104,\n      105,   93,   96,  108,   94,   94,  111,  112,   94,  110,\n      123,  148,  149,  109,  119,  102,  127,  139,  126,  147,\n      139,  150,  146,  149,  154,   29,   -1,  142,  123,   -1,\n      142,   -1,  146,   -1,   -1,   71,   -1,   -1,  126,   -1,\n       -1,   77,   -1,  148,  149,   81,   35,   -1,   84,   85,\n       86,  142,   88,   -1,   90,   -1,   92,  142,   -1,   95,\n       -1,   -1,  146,   99,  100,  101,    1,   71,  104,  105,\n      146,  146,  108,   77,  146,  111,  112,   81,   67,  146,\n       84,   85,   86,  119,   88,  146,   90,  149,   92,  148,\n       79,   95,  148,  148,   83,   99,  100,  101,  148,  148,\n      104,  105,  148,  148,  108,  148,  148,  111,  112,  148,\n      148,  148,  148,  149,  148,  119,  148,  148,  148,  148,\n      148,  148,  148,  112,  148,  148,  148,  148,  148,  148,\n      148,   -1,  149,  149,  149,  149,   71,  149,  149,  149,\n      129,  130,   77,  149,  148,  149,   81,  149,  149,   84,\n       85,   86,  149,   88,  149,   90,  149,   92,  150,  150,\n       95,  151,  151,  150,   99,  100,  101,  156,  150,  104,\n      105,  150,  150,  108,  150,  150,  111,  112,    8,    9,\n       10,  150,  150,  150,  119,  150,  150,  150,  150,  150,\n      150,  150,  150,  150,  150,  150,  150,  150,   28,  150,\n       30,   31,   32,   33,   34,   35,   36,   37,   38,   39,\n       40,  150,  150,  148,  149,  151,  153,  151,  151,  151,\n      151,  151,  151,  151,  151,  151,  151,  151,  151,  151,\n      151,  151,  151,  151,  151,  151,  151,  151,  151,  151,\n      151,  151,  151,   -1,  152,  152,  152,  152,  152,  152,\n      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,\n      152,  152,  152,  152,  152,  152,  152,  152,  152,   -1,\n      153,   -1,  154,  154,  154,  154,  154,   -1,  155\n];\n\nPHP.Parser.prototype.yybase = [\n        0,  220,  295,   94,  180,  560,   -2,   -2,   -2,   -2,\n      -36,  473,  574,  606,  574,  505,  404,  675,  675,  675,\n       28,  351,  462,  462,  462,  461,  396,  476,  451,  134,\n      134,  134,  134,  134,  134,  134,  134,  134,  134,  134,\n      134,  134,  134,  134,  134,  134,  134,  134,  134,  134,\n      134,  134,  134,  134,  134,  134,  134,  134,  134,  134,\n      134,  134,  134,  134,  134,  134,  134,  134,  134,  134,\n      134,  134,  134,  134,  134,  134,  134,  134,  134,  134,\n      134,  134,  134,  134,  134,  134,  134,  134,  134,  134,\n      134,  134,  134,  134,  134,  134,  134,  134,  134,  134,\n      134,  134,  134,  134,  134,  134,  134,  134,  134,  134,\n      134,  134,  134,  134,  134,  134,  134,  134,  134,  134,\n      134,  134,  134,  134,  134,  134,  134,  134,  134,  134,\n      134,  134,  134,  401,   64,  201,  568,  704,  713,  708,\n      702,  714,  520,  706,  705,  211,  650,  651,  450,  652,\n      653,  654,  655,  709,  480,  703,  712,  418,  418,  418,\n      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,\n      418,  418,  418,   48,   30,  469,  403,  403,  403,  403,\n      403,  403,  403,  403,  403,  403,  403,  403,  403,  403,\n      403,  403,  403,  403,  403,  160,  160,  160,  343,  210,\n      208,  198,   17,  233,   27,  780,  780,  780,  780,  780,\n      108,  108,  108,  108,  621,  621,   93,  280,  280,  280,\n      280,  280,  280,  280,  280,  280,  280,  280,  632,  641,\n      642,  643,  392,  392,  151,  151,  151,  151,  368,  -45,\n      146,  224,  224,   95,  410,  491,  733,  199,  199,  111,\n      207,  -22,  -22,  -22,   81,  506,   92,   92,  233,  233,\n      273,  233,  423,  423,  423,  221,  221,  221,  221,  221,\n      110,  221,  221,  221,  617,  512,  168,  516,  647,  397,\n      503,  656,  274,  381,  377,  538,  535,  337,  523,  337,\n      421,  441,  428,  525,  337,  337,  285,  401,  394,  378,\n      567,  474,  339,  564,  140,  179,  409,  399,  384,  594,\n      561,  711,  330,  710,  358,  149,  378,  378,  378,  370,\n      593,  548,  355,   -8,  646,  484,  277,  417,  386,  645,\n      635,  230,  634,  276,  331,  356,  565,  485,  485,  485,\n      485,  485,  485,  460,  485,  483,  691,  691,  478,  501,\n      460,  696,  460,  485,  691,  460,  460,  502,  485,  522,\n      522,  483,  508,  499,  691,  691,  499,  478,  460,  571,\n      551,  514,  482,  413,  413,  514,  460,  413,  501,  413,\n       11,  697,  699,  444,  700,  695,  698,  676,  694,  493,\n      615,  497,  515,  684,  683,  693,  479,  489,  620,  692,\n      549,  592,  487,  246,  314,  498,  463,  689,  523,  486,\n      455,  455,  455,  463,  687,  455,  455,  455,  455,  455,\n      455,  455,  455,  732,   24,  495,  510,  591,  590,  589,\n      406,  588,  496,  524,  422,  599,  488,  549,  549,  649,\n      727,  673,  490,  682,  716,  690,  555,  119,  271,  681,\n      648,  543,  492,  534,  680,  598,  246,  715,  494,  672,\n      549,  671,  455,  674,  701,  730,  731,  688,  728,  722,\n      152,  526,  587,  178,  729,  659,  596,  595,  554,  725,\n      707,  721,  720,  178,  576,  511,  717,  518,  677,  504,\n      678,  613,  258,  657,  686,  584,  724,  723,  726,  583,\n      582,  609,  608,  250,  236,  685,  442,  458,  517,  581,\n      500,  628,  604,  679,  580,  579,  623,  619,  718,  521,\n      486,  519,  509,  507,  513,  600,  618,  719,  206,  578,\n      586,  573,  481,  572,  631,    0,    0,    0,    0,    0,\n        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n        0,    0,    0,    0,    0,  134,  134,   -2,   -2,   -2,\n        0,    0,    0,    0,   -2,  134,  134,  134,  134,  134,\n      134,  134,  134,  134,  134,  134,  134,  134,  134,  134,\n      134,  134,  134,    0,    0,    0,    0,    0,    0,    0,\n        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n        0,    0,    0,    0,    0,    0,    0,  418,  418,  418,\n      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,\n      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,\n      418,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n        0,    0,    0,    0,    0,    0,    0,  418,  418,  418,\n      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,\n      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,\n      418,  418,  418,  418,   -3,  418,  418,   -3,  418,  418,\n      418,  418,  418,  418,  -22,  -22,  -22,  -22,  221,  221,\n      221,  221,  221,  221,  221,  221,  221,  221,  221,  221,\n      221,  221,   49,   49,   49,   49,  -22,  -22,  221,  221,\n      221,  221,  221,   49,  221,  221,  221,   92,  221,   92,\n       92,  337,  337,    0,    0,    0,    0,    0,  485,   92,\n        0,    0,    0,    0,    0,    0,  485,  485,  485,    0,\n        0,    0,    0,    0,  485,    0,    0,    0,  337,   92,\n        0,  420,  420,  178,  420,  420,    0,    0,    0,  485,\n      485,    0,  508,    0,    0,    0,    0,  691,    0,    0,\n        0,    0,    0,  455,  119,  682,    0,   39,    0,    0,\n        0,    0,    0,  490,   39,   26,    0,   26,    0,    0,\n      455,  455,  455,    0,  490,  490,    0,    0,   67,  490,\n        0,    0,    0,   67,   35,    0,   35,    0,    0,    0,\n      178\n];\n\nPHP.Parser.prototype.yydefault = [\n        3,32767,32767,32767,32767,32767,32767,32767,32767,32767,\n    32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,\n    32767,32767,  468,  468,  468,32767,32767,32767,32767,  285,\n      460,  285,  285,32767,  419,  419,  419,  419,  419,  419,\n      419,  460,32767,32767,32767,32767,32767,  364,32767,32767,\n    32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,\n    32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,\n    32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,\n    32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,\n    32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,\n    32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,\n    32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,\n    32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,\n    32767,32767,32767,32767,32767,  465,32767,32767,32767,32767,\n    32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,\n    32767,32767,32767,32767,32767,32767,32767,  347,  348,  350,\n      351,  284,  420,  237,  464,  283,  116,  246,  239,  191,\n      282,  223,  119,  312,  365,  314,  363,  367,  313,  290,\n      294,  295,  296,  297,  298,  299,  300,  301,  302,  303,\n      304,  305,  288,  289,  366,  344,  343,  342,  310,  311,\n      287,  315,  317,  287,  316,  333,  334,  331,  332,  335,\n      336,  337,  338,  339,32767,32767,32767,32767,32767,32767,\n    32767,32767,32767,32767,32767,32767,32767,32767,  269,  269,\n      269,  269,  324,  325,  229,  229,  229,  229,32767,  270,\n    32767,  229,32767,32767,32767,32767,32767,32767,32767,  413,\n      341,  319,  320,  318,32767,  392,32767,  394,  307,  309,\n      387,  291,32767,32767,32767,32767,32767,32767,32767,32767,\n    32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,\n    32767,32767,  389,  421,  421,32767,32767,32767,  381,32767,\n      159,  210,  212,  397,32767,32767,32767,32767,32767,  329,\n    32767,32767,32767,32767,32767,32767,  474,32767,32767,32767,\n    32767,32767,  421,32767,32767,32767,  321,  322,  323,32767,\n    32767,32767,  421,  421,32767,32767,  421,32767,  421,32767,\n    32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,\n    32767,32767,32767,  163,32767,32767,  395,  395,32767,32767,\n      163,  390,  163,32767,32767,  163,  163,  176,32767,  174,\n      174,32767,32767,  178,32767,  435,  178,32767,  163,  196,\n      196,  373,  165,  231,  231,  373,  163,  231,32767,  231,\n    32767,32767,32767,   82,32767,32767,32767,32767,32767,32767,\n    32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,\n      383,32767,32767,32767,  401,32767,  414,  433,  381,32767,\n      327,  328,  330,32767,  423,  352,  353,  354,  355,  356,\n      357,  358,  360,32767,  461,  386,32767,32767,32767,32767,\n    32767,32767,   84,  108,  245,32767,  473,   84,  384,32767,\n      473,32767,32767,32767,32767,32767,32767,  286,32767,32767,\n    32767,   84,32767,   84,32767,32767,  457,32767,32767,  421,\n      385,32767,  326,  398,  439,32767,32767,  422,32767,32767,\n      218,   84,32767,  177,32767,32767,32767,32767,32767,32767,\n      401,32767,32767,  179,32767,32767,  421,32767,32767,32767,\n    32767,32767,  281,32767,32767,32767,32767,32767,  421,32767,\n    32767,32767,32767,  222,32767,32767,32767,32767,32767,32767,\n    32767,32767,32767,32767,32767,32767,32767,32767,32767,   82,\n       60,32767,  263,32767,32767,32767,32767,32767,32767,32767,\n    32767,32767,32767,32767,32767,  121,  121,    3,    3,  121,\n      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,\n      121,  121,  121,  121,  248,  154,  248,  204,  248,  248,\n      207,  196,  196,  255\n];\n\nPHP.Parser.prototype.yygoto = [\n      163,  163,  135,  135,  135,  146,  148,  179,  164,  161,\n      145,  161,  161,  161,  162,  162,  162,  162,  162,  162,\n      162,  145,  157,  158,  159,  160,  176,  174,  177,  410,\n      411,  299,  412,  415,  416,  417,  418,  419,  420,  421,\n      422,  857,  136,  137,  138,  139,  140,  141,  142,  143,\n      144,  147,  173,  175,  178,  195,  198,  199,  201,  202,\n      204,  205,  206,  207,  208,  209,  210,  211,  212,  213,\n      232,  233,  251,  252,  253,  316,  317,  318,  462,  180,\n      181,  182,  183,  184,  185,  186,  187,  188,  189,  190,\n      191,  192,  193,  149,  194,  150,  165,  166,  167,  196,\n      168,  151,  152,  153,  169,  154,  197,  133,  170,  155,\n      171,  172,  156,  521,  200,  257,  246,  464,  432,  687,\n      649,  278,  481,  482,  527,  200,  437,  437,  437,  766,\n        5,  746,  650,  557,  437,  426,  775,  770,  428,  431,\n      444,  465,  466,  468,  483,  279,  651,  336,  450,  453,\n      437,  560,  485,  487,  508,  511,  763,  516,  517,  777,\n      524,  762,  526,  532,  773,  534,  480,  480,  965,  965,\n      965,  965,  965,  965,  965,  965,  965,  965,  965,  965,\n      413,  413,  413,  413,  413,  413,  413,  413,  413,  413,\n      413,  413,  413,  413,  942,  502,  478,  496,  512,  456,\n      298,  437,  437,  451,  471,  437,  437,  674,  437,  229,\n      456,  230,  231,  463,  828,  533,  681,  438,  513,  826,\n      461,  475,  460,  414,  414,  414,  414,  414,  414,  414,\n      414,  414,  414,  414,  414,  414,  414,  301,  674,  674,\n      443,  454, 1033, 1033, 1034, 1034,  425,  531,  425,  708,\n      750,  800,  457,  372, 1033,  943, 1034, 1026,  300, 1018,\n      497,    8,  313,  904,  796,  944,  996,  785,  789, 1007,\n      285,  670, 1036,  329,  307,  310,  804,  668,  544,  332,\n      935,  940,  366,  807,  678,  477,  377,  754,  844,    0,\n      667,  667,  675,  675,  675,  677,    0,  666,  323,  498,\n      328,  312,  312,  258,  259,  283,  459,  261,  322,  284,\n      326,  486,  280,  281,    0,    0,    0,    0,    0,    0,\n        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n        0,    0,    0,  790,  790,  790,  790,  946,    0,  946,\n      790,  790, 1004,  790, 1004,    0,    0,    0,    0,  836,\n        0, 1015, 1015,    0,    0,    0,    0,    0,    0,    0,\n        0,    0,    0,    0,  744,  744,  744,  720,  744,    0,\n      739,  745,  721,  780,  780, 1023,    0,    0, 1002,    0,\n        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n        0,  806,    0,  806,    0,    0,    0,    0, 1008, 1009\n];\n\nPHP.Parser.prototype.yygcheck = [\n       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,\n       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,\n       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,\n       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,\n       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,\n       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,\n       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,\n       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,\n       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,\n       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,\n       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,\n       23,   23,   23,   52,   45,  112,  112,   80,    8,   10,\n       10,   64,   55,   55,   55,   45,    8,    8,    8,   10,\n       92,   10,   11,   10,    8,   10,   10,   10,   38,   38,\n       38,   38,   38,   38,   62,   62,   12,   62,   28,    8,\n        8,   28,   28,   28,   28,   28,   28,   28,   28,   28,\n       28,   28,   28,   28,   28,   28,   70,   70,   70,   70,\n       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,\n      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,\n      113,  113,  113,  113,   76,   56,   35,   35,   56,   69,\n       56,    8,    8,    8,    8,    8,    8,   19,    8,   60,\n       69,   60,   60,    7,    7,    7,   25,    8,    7,    7,\n        2,    2,    8,  115,  115,  115,  115,  115,  115,  115,\n      115,  115,  115,  115,  115,  115,  115,   53,   19,   19,\n       53,   53,  123,  123,  124,  124,  109,    5,  109,   44,\n       29,   78,  114,   53,  123,   76,  124,  122,   41,  120,\n       43,   53,   42,   96,   74,   76,   76,   72,   75,  117,\n       14,   21,  123,   18,    9,   13,   79,   20,   66,   17,\n      102,  104,   58,   81,   22,   59,  100,   63,   94,   -1,\n       19,   19,   19,   19,   19,   19,   -1,   19,   45,   45,\n       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,\n       45,   45,   64,   64,   -1,   -1,   -1,   -1,   -1,   -1,\n       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,\n       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,\n       -1,   -1,   -1,   52,   52,   52,   52,   52,   -1,   52,\n       52,   52,   80,   52,   80,   -1,   -1,   -1,   -1,   92,\n       -1,   80,   80,   -1,   -1,   -1,   -1,   -1,   -1,   -1,\n       -1,   -1,   -1,   -1,   52,   52,   52,   52,   52,   -1,\n       52,   52,   52,   69,   69,   69,   -1,   -1,   80,   -1,\n       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,\n       -1,   80,   -1,   80,   -1,   -1,   -1,   -1,   80,   80\n];\n\nPHP.Parser.prototype.yygbase = [\n        0,    0, -317,    0,    0,  237,    0,  210, -136,    4,\n      118,  130,  144,  -10,   16,    0,    0,  -59,   10,  -47,\n       -9,    7,  -77,  -20,    0,  209,    0,    0, -388,  234,\n        0,    0,    0,    0,    0,  165,    0,    0,  103,    0,\n        0,  225,   44,   45,  235,   84,    0,    0,    0,    0,\n        0,    0,  109, -115,    0, -113, -179,    0,  -78,  -81,\n     -347,    0, -122,  -80, -249,    0,  -19,    0,    0,  169,\n      -48,    0,   26,    0,   22,   24,  -99,    0,  230,  -13,\n      114,  -79,    0,    0,    0,    0,    0,    0,    0,    0,\n        0,    0,  120,    0,  -90,    0,   23,    0,    0,    0,\n      -89,    0,  -67,    0,  -69,    0,    0,    0,    0,    8,\n        0,    0, -140,  -34,  229,    9,    0,   21,    0,    0,\n      218,    0,  233,   -3,   -1,    0\n];\n\nPHP.Parser.prototype.yygdefault = [\n    -32768,  380,  565,    2,  566,  637,  645,  504,  400,  433,\n      748,  688,  689,  303,  342,  401,  302,  330,  324,  676,\n      669,  671,  679,  134,  333,  682,    1,  684,  439,  716,\n      291,  692,  292,  507,  694,  446,  696,  697,  427,  304,\n      305,  447,  311,  479,  707,  203,  308,  709,  290,  710,\n      719,  335,  293,  510,  489,  469,  501,  402,  363,  476,\n      228,  455,  473,  753,  277,  761,  549,  769,  772,  403,\n      404,  470,  784,  368,  794,  788,  960,  319,  799,  805,\n      991,  808,  811,  349,  331,  327,  815,  816,    4,  820,\n      522,  523,  835,  239,  843,  856,  347,  923,  925,  441,\n      374,  936,  360,  334,  939,  995,  354,  405,  364,  952,\n      260,  282,  245,  406,  423,  249,  407,  365,  998,  314,\n     1019,  424, 1027, 1035,  275,  474\n];\n\nPHP.Parser.prototype.yylhs = [\n        0,    1,    3,    3,    2,    5,    5,    5,    5,    5,\n        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,\n        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,\n        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,\n        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,\n        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,\n        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,\n        5,    5,    5,    6,    6,    6,    6,    6,    6,    6,\n        7,    7,    8,    8,    9,    4,    4,    4,    4,    4,\n        4,    4,    4,    4,    4,    4,   14,   14,   15,   15,\n       15,   15,   17,   17,   13,   13,   18,   18,   19,   19,\n       20,   20,   21,   21,   16,   16,   22,   24,   24,   25,\n       26,   26,   28,   27,   27,   27,   27,   29,   29,   29,\n       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,\n       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,\n       29,   29,   10,   10,   48,   48,   51,   51,   50,   49,\n       49,   42,   42,   53,   53,   54,   54,   11,   12,   12,\n       12,   57,   57,   57,   58,   58,   61,   61,   59,   59,\n       62,   62,   36,   36,   44,   44,   47,   47,   47,   46,\n       46,   63,   37,   37,   37,   37,   64,   64,   65,   65,\n       66,   66,   34,   34,   30,   30,   67,   32,   32,   68,\n       31,   31,   33,   33,   43,   43,   43,   43,   55,   55,\n       71,   71,   72,   72,   74,   74,   75,   75,   75,   73,\n       73,   56,   56,   76,   76,   77,   77,   78,   78,   78,\n       39,   39,   79,   40,   40,   81,   81,   60,   60,   82,\n       82,   82,   82,   87,   87,   88,   88,   89,   89,   89,\n       89,   89,   90,   91,   91,   86,   86,   83,   83,   85,\n       85,   93,   93,   92,   92,   92,   92,   92,   92,   84,\n       84,   94,   94,   41,   41,   35,   35,   23,   23,   23,\n       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,\n       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,\n       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,\n       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,\n       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,\n       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,\n       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,\n       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,\n      101,   95,   95,  100,  100,  103,  103,  104,  105,  105,\n      105,  109,  109,   52,   52,   52,   96,   96,  107,  107,\n       97,   97,   99,   99,   99,  102,  102,  113,  113,   70,\n      115,  115,  115,   98,   98,   98,   98,   98,   98,   98,\n       98,   98,   98,   98,   98,   98,   98,   98,   98,   38,\n       38,  111,  111,  111,  106,  106,  106,  116,  116,  116,\n      116,  116,  116,   45,   45,   45,   80,   80,   80,  118,\n      110,  110,  110,  110,  110,  110,  108,  108,  108,  117,\n      117,  117,  117,   69,  119,  119,  120,  120,  120,  120,\n      120,  114,  121,  121,  122,  122,  122,  122,  122,  112,\n      112,  112,  112,  124,  123,  123,  123,  123,  123,  123,\n      123,  125,  125,  125\n];\n\nPHP.Parser.prototype.yylen = [\n        1,    1,    2,    0,    1,    1,    1,    1,    1,    1,\n        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\n        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\n        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\n        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\n        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\n        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\n        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\n        1,    1,    1,    3,    1,    1,    1,    1,    1,    3,\n        5,    4,    3,    4,    2,    3,    1,    1,    7,    8,\n        6,    7,    3,    1,    3,    1,    3,    1,    1,    3,\n        1,    2,    1,    2,    3,    1,    3,    3,    1,    3,\n        2,    0,    1,    1,    1,    1,    1,    3,    7,   10,\n        5,    7,    9,    5,    3,    3,    3,    3,    3,    3,\n        1,    2,    5,    7,    9,    5,    6,    3,    3,    2,\n        2,    1,    1,    1,    0,    2,    1,    3,    8,    0,\n        4,    1,    3,    0,    1,    0,    1,   10,    7,    6,\n        5,    1,    2,    2,    0,    2,    0,    2,    0,    2,\n        1,    3,    1,    4,    1,    4,    1,    1,    4,    1,\n        3,    3,    3,    4,    4,    5,    0,    2,    4,    3,\n        1,    1,    1,    4,    0,    2,    5,    0,    2,    6,\n        0,    2,    0,    3,    1,    2,    1,    1,    1,    0,\n        1,    3,    4,    6,    1,    2,    1,    1,    1,    0,\n        1,    0,    2,    2,    3,    1,    3,    1,    2,    2,\n        3,    1,    1,    3,    1,    1,    3,    2,    0,    3,\n        4,    9,    3,    1,    3,    0,    2,    4,    5,    4,\n        4,    4,    3,    1,    1,    1,    3,    1,    1,    0,\n        1,    1,    2,    1,    1,    1,    1,    1,    1,    1,\n        3,    1,    3,    3,    1,    0,    1,    1,    3,    3,\n        3,    4,    1,    2,    3,    3,    3,    3,    3,    3,\n        3,    3,    3,    3,    3,    3,    2,    2,    2,    2,\n        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,\n        3,    3,    3,    3,    3,    3,    3,    2,    2,    2,\n        2,    3,    3,    3,    3,    3,    3,    3,    3,    3,\n        3,    3,    5,    4,    3,    4,    4,    2,    2,    4,\n        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,\n        2,    1,    3,    2,    1,    2,    4,    2,   10,   11,\n        7,    3,    2,    0,    4,    1,    3,    2,    2,    2,\n        4,    1,    1,    1,    2,    3,    1,    1,    1,    1,\n        0,    3,    0,    1,    1,    0,    1,    1,    3,    3,\n        4,    1,    1,    1,    1,    1,    1,    1,    1,    1,\n        1,    1,    1,    1,    1,    3,    2,    3,    3,    0,\n        1,    1,    3,    1,    1,    3,    1,    1,    4,    4,\n        4,    1,    4,    1,    1,    3,    1,    4,    2,    3,\n        1,    4,    4,    3,    3,    3,    1,    3,    1,    1,\n        3,    1,    1,    4,    3,    1,    1,    1,    3,    3,\n        0,    1,    3,    1,    3,    1,    4,    2,    0,    2,\n        2,    1,    2,    1,    1,    4,    3,    3,    3,    6,\n        3,    1,    1,    1\n];\n\n\n\nexports.PHP = PHP;\n});\n\nace.define(\"ace/mode/php_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/php/php\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar Mirror = require(\"../worker/mirror\").Mirror;\nvar PHP = require(\"./php/php\").PHP;\n\nvar PhpWorker = exports.PhpWorker = function(sender) {\n    Mirror.call(this, sender);\n    this.setTimeout(500);\n};\n\noop.inherits(PhpWorker, Mirror);\n\n(function() {\n    this.setOptions = function(opts) {\n        this.inlinePhp = opts && opts.inline;\n    };\n    \n    this.onUpdate = function() {\n        var value = this.doc.getValue();\n        var errors = [];\n        if (this.inlinePhp)\n            value = \"<?\" + value + \"?>\";\n\n        var tokens = PHP.Lexer(value, {short_open_tag: 1});\n        try {\n            new PHP.Parser(tokens);\n        } catch(e) {\n            errors.push({\n                row: e.line - 1,\n                column: null,\n                text: e.message.charAt(0).toUpperCase() + e.message.substring(1),\n                type: \"error\"\n            });\n        }\n\n        this.sender.emit(\"annotate\", errors);\n    };\n\n}).call(PhpWorker.prototype);\n\n});\n\nace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\nfunction Empty() {}\n\nif (!Function.prototype.bind) {\n    Function.prototype.bind = function bind(that) { // .length is 1\n        var target = this;\n        if (typeof target != \"function\") {\n            throw new TypeError(\"Function.prototype.bind called on incompatible \" + target);\n        }\n        var args = slice.call(arguments, 1); // for normal call\n        var bound = function () {\n\n            if (this instanceof bound) {\n\n                var result = target.apply(\n                    this,\n                    args.concat(slice.call(arguments))\n                );\n                if (Object(result) === result) {\n                    return result;\n                }\n                return this;\n\n            } else {\n                return target.apply(\n                    that,\n                    args.concat(slice.call(arguments))\n                );\n\n            }\n\n        };\n        if(target.prototype) {\n            Empty.prototype = target.prototype;\n            bound.prototype = new Empty();\n            Empty.prototype = null;\n        }\n        return bound;\n    };\n}\nvar call = Function.prototype.call;\nvar prototypeOfArray = Array.prototype;\nvar prototypeOfObject = Object.prototype;\nvar slice = prototypeOfArray.slice;\nvar _toString = call.bind(prototypeOfObject.toString);\nvar owns = call.bind(prototypeOfObject.hasOwnProperty);\nvar defineGetter;\nvar defineSetter;\nvar lookupGetter;\nvar lookupSetter;\nvar supportsAccessors;\nif ((supportsAccessors = owns(prototypeOfObject, \"__defineGetter__\"))) {\n    defineGetter = call.bind(prototypeOfObject.__defineGetter__);\n    defineSetter = call.bind(prototypeOfObject.__defineSetter__);\n    lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);\n    lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);\n}\nif ([1,2].splice(0).length != 2) {\n    if(function() { // test IE < 9 to splice bug - see issue #138\n        function makeArray(l) {\n            var a = new Array(l+2);\n            a[0] = a[1] = 0;\n            return a;\n        }\n        var array = [], lengthBefore;\n        \n        array.splice.apply(array, makeArray(20));\n        array.splice.apply(array, makeArray(26));\n\n        lengthBefore = array.length; //46\n        array.splice(5, 0, \"XXX\"); // add one element\n\n        lengthBefore + 1 == array.length\n\n        if (lengthBefore + 1 == array.length) {\n            return true;// has right splice implementation without bugs\n        }\n    }()) {//IE 6/7\n        var array_splice = Array.prototype.splice;\n        Array.prototype.splice = function(start, deleteCount) {\n            if (!arguments.length) {\n                return [];\n            } else {\n                return array_splice.apply(this, [\n                    start === void 0 ? 0 : start,\n                    deleteCount === void 0 ? (this.length - start) : deleteCount\n                ].concat(slice.call(arguments, 2)))\n            }\n        };\n    } else {//IE8\n        Array.prototype.splice = function(pos, removeCount){\n            var length = this.length;\n            if (pos > 0) {\n                if (pos > length)\n                    pos = length;\n            } else if (pos == void 0) {\n                pos = 0;\n            } else if (pos < 0) {\n                pos = Math.max(length + pos, 0);\n            }\n\n            if (!(pos+removeCount < length))\n                removeCount = length - pos;\n\n            var removed = this.slice(pos, pos+removeCount);\n            var insert = slice.call(arguments, 2);\n            var add = insert.length;            \n            if (pos === length) {\n                if (add) {\n                    this.push.apply(this, insert);\n                }\n            } else {\n                var remove = Math.min(removeCount, length - pos);\n                var tailOldPos = pos + remove;\n                var tailNewPos = tailOldPos + add - remove;\n                var tailCount = length - tailOldPos;\n                var lengthAfterRemove = length - remove;\n\n                if (tailNewPos < tailOldPos) { // case A\n                    for (var i = 0; i < tailCount; ++i) {\n                        this[tailNewPos+i] = this[tailOldPos+i];\n                    }\n                } else if (tailNewPos > tailOldPos) { // case B\n                    for (i = tailCount; i--; ) {\n                        this[tailNewPos+i] = this[tailOldPos+i];\n                    }\n                } // else, add == remove (nothing to do)\n\n                if (add && pos === lengthAfterRemove) {\n                    this.length = lengthAfterRemove; // truncate array\n                    this.push.apply(this, insert);\n                } else {\n                    this.length = lengthAfterRemove + add; // reserves space\n                    for (i = 0; i < add; ++i) {\n                        this[pos+i] = insert[i];\n                    }\n                }\n            }\n            return removed;\n        };\n    }\n}\nif (!Array.isArray) {\n    Array.isArray = function isArray(obj) {\n        return _toString(obj) == \"[object Array]\";\n    };\n}\nvar boxedString = Object(\"a\"),\n    splitString = boxedString[0] != \"a\" || !(0 in boxedString);\n\nif (!Array.prototype.forEach) {\n    Array.prototype.forEach = function forEach(fun /*, thisp*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            thisp = arguments[1],\n            i = -1,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(); // TODO message\n        }\n\n        while (++i < length) {\n            if (i in self) {\n                fun.call(thisp, self[i], i, object);\n            }\n        }\n    };\n}\nif (!Array.prototype.map) {\n    Array.prototype.map = function map(fun /*, thisp*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            result = Array(length),\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self)\n                result[i] = fun.call(thisp, self[i], i, object);\n        }\n        return result;\n    };\n}\nif (!Array.prototype.filter) {\n    Array.prototype.filter = function filter(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                    object,\n            length = self.length >>> 0,\n            result = [],\n            value,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self) {\n                value = self[i];\n                if (fun.call(thisp, value, i, object)) {\n                    result.push(value);\n                }\n            }\n        }\n        return result;\n    };\n}\nif (!Array.prototype.every) {\n    Array.prototype.every = function every(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self && !fun.call(thisp, self[i], i, object)) {\n                return false;\n            }\n        }\n        return true;\n    };\n}\nif (!Array.prototype.some) {\n    Array.prototype.some = function some(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self && fun.call(thisp, self[i], i, object)) {\n                return true;\n            }\n        }\n        return false;\n    };\n}\nif (!Array.prototype.reduce) {\n    Array.prototype.reduce = function reduce(fun /*, initial*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n        if (!length && arguments.length == 1) {\n            throw new TypeError(\"reduce of empty array with no initial value\");\n        }\n\n        var i = 0;\n        var result;\n        if (arguments.length >= 2) {\n            result = arguments[1];\n        } else {\n            do {\n                if (i in self) {\n                    result = self[i++];\n                    break;\n                }\n                if (++i >= length) {\n                    throw new TypeError(\"reduce of empty array with no initial value\");\n                }\n            } while (true);\n        }\n\n        for (; i < length; i++) {\n            if (i in self) {\n                result = fun.call(void 0, result, self[i], i, object);\n            }\n        }\n\n        return result;\n    };\n}\nif (!Array.prototype.reduceRight) {\n    Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n        if (!length && arguments.length == 1) {\n            throw new TypeError(\"reduceRight of empty array with no initial value\");\n        }\n\n        var result, i = length - 1;\n        if (arguments.length >= 2) {\n            result = arguments[1];\n        } else {\n            do {\n                if (i in self) {\n                    result = self[i--];\n                    break;\n                }\n                if (--i < 0) {\n                    throw new TypeError(\"reduceRight of empty array with no initial value\");\n                }\n            } while (true);\n        }\n\n        do {\n            if (i in this) {\n                result = fun.call(void 0, result, self[i], i, object);\n            }\n        } while (i--);\n\n        return result;\n    };\n}\nif (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {\n    Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {\n        var self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                toObject(this),\n            length = self.length >>> 0;\n\n        if (!length) {\n            return -1;\n        }\n\n        var i = 0;\n        if (arguments.length > 1) {\n            i = toInteger(arguments[1]);\n        }\n        i = i >= 0 ? i : Math.max(0, length + i);\n        for (; i < length; i++) {\n            if (i in self && self[i] === sought) {\n                return i;\n            }\n        }\n        return -1;\n    };\n}\nif (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {\n    Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {\n        var self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                toObject(this),\n            length = self.length >>> 0;\n\n        if (!length) {\n            return -1;\n        }\n        var i = length - 1;\n        if (arguments.length > 1) {\n            i = Math.min(i, toInteger(arguments[1]));\n        }\n        i = i >= 0 ? i : length - Math.abs(i);\n        for (; i >= 0; i--) {\n            if (i in self && sought === self[i]) {\n                return i;\n            }\n        }\n        return -1;\n    };\n}\nif (!Object.getPrototypeOf) {\n    Object.getPrototypeOf = function getPrototypeOf(object) {\n        return object.__proto__ || (\n            object.constructor ?\n            object.constructor.prototype :\n            prototypeOfObject\n        );\n    };\n}\nif (!Object.getOwnPropertyDescriptor) {\n    var ERR_NON_OBJECT = \"Object.getOwnPropertyDescriptor called on a \" +\n                         \"non-object: \";\n    Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n        if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n            throw new TypeError(ERR_NON_OBJECT + object);\n        if (!owns(object, property))\n            return;\n\n        var descriptor, getter, setter;\n        descriptor =  { enumerable: true, configurable: true };\n        if (supportsAccessors) {\n            var prototype = object.__proto__;\n            object.__proto__ = prototypeOfObject;\n\n            var getter = lookupGetter(object, property);\n            var setter = lookupSetter(object, property);\n            object.__proto__ = prototype;\n\n            if (getter || setter) {\n                if (getter) descriptor.get = getter;\n                if (setter) descriptor.set = setter;\n                return descriptor;\n            }\n        }\n        descriptor.value = object[property];\n        return descriptor;\n    };\n}\nif (!Object.getOwnPropertyNames) {\n    Object.getOwnPropertyNames = function getOwnPropertyNames(object) {\n        return Object.keys(object);\n    };\n}\nif (!Object.create) {\n    var createEmpty;\n    if (Object.prototype.__proto__ === null) {\n        createEmpty = function () {\n            return { \"__proto__\": null };\n        };\n    } else {\n        createEmpty = function () {\n            var empty = {};\n            for (var i in empty)\n                empty[i] = null;\n            empty.constructor =\n            empty.hasOwnProperty =\n            empty.propertyIsEnumerable =\n            empty.isPrototypeOf =\n            empty.toLocaleString =\n            empty.toString =\n            empty.valueOf =\n            empty.__proto__ = null;\n            return empty;\n        }\n    }\n\n    Object.create = function create(prototype, properties) {\n        var object;\n        if (prototype === null) {\n            object = createEmpty();\n        } else {\n            if (typeof prototype != \"object\")\n                throw new TypeError(\"typeof prototype[\"+(typeof prototype)+\"] != 'object'\");\n            var Type = function () {};\n            Type.prototype = prototype;\n            object = new Type();\n            object.__proto__ = prototype;\n        }\n        if (properties !== void 0)\n            Object.defineProperties(object, properties);\n        return object;\n    };\n}\n\nfunction doesDefinePropertyWork(object) {\n    try {\n        Object.defineProperty(object, \"sentinel\", {});\n        return \"sentinel\" in object;\n    } catch (exception) {\n    }\n}\nif (Object.defineProperty) {\n    var definePropertyWorksOnObject = doesDefinePropertyWork({});\n    var definePropertyWorksOnDom = typeof document == \"undefined\" ||\n        doesDefinePropertyWork(document.createElement(\"div\"));\n    if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {\n        var definePropertyFallback = Object.defineProperty;\n    }\n}\n\nif (!Object.defineProperty || definePropertyFallback) {\n    var ERR_NON_OBJECT_DESCRIPTOR = \"Property description must be an object: \";\n    var ERR_NON_OBJECT_TARGET = \"Object.defineProperty called on non-object: \"\n    var ERR_ACCESSORS_NOT_SUPPORTED = \"getters & setters can not be defined \" +\n                                      \"on this javascript engine\";\n\n    Object.defineProperty = function defineProperty(object, property, descriptor) {\n        if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n            throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n        if ((typeof descriptor != \"object\" && typeof descriptor != \"function\") || descriptor === null)\n            throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n        if (definePropertyFallback) {\n            try {\n                return definePropertyFallback.call(Object, object, property, descriptor);\n            } catch (exception) {\n            }\n        }\n        if (owns(descriptor, \"value\")) {\n\n            if (supportsAccessors && (lookupGetter(object, property) ||\n                                      lookupSetter(object, property)))\n            {\n                var prototype = object.__proto__;\n                object.__proto__ = prototypeOfObject;\n                delete object[property];\n                object[property] = descriptor.value;\n                object.__proto__ = prototype;\n            } else {\n                object[property] = descriptor.value;\n            }\n        } else {\n            if (!supportsAccessors)\n                throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n            if (owns(descriptor, \"get\"))\n                defineGetter(object, property, descriptor.get);\n            if (owns(descriptor, \"set\"))\n                defineSetter(object, property, descriptor.set);\n        }\n\n        return object;\n    };\n}\nif (!Object.defineProperties) {\n    Object.defineProperties = function defineProperties(object, properties) {\n        for (var property in properties) {\n            if (owns(properties, property))\n                Object.defineProperty(object, property, properties[property]);\n        }\n        return object;\n    };\n}\nif (!Object.seal) {\n    Object.seal = function seal(object) {\n        return object;\n    };\n}\nif (!Object.freeze) {\n    Object.freeze = function freeze(object) {\n        return object;\n    };\n}\ntry {\n    Object.freeze(function () {});\n} catch (exception) {\n    Object.freeze = (function freeze(freezeObject) {\n        return function freeze(object) {\n            if (typeof object == \"function\") {\n                return object;\n            } else {\n                return freezeObject(object);\n            }\n        };\n    })(Object.freeze);\n}\nif (!Object.preventExtensions) {\n    Object.preventExtensions = function preventExtensions(object) {\n        return object;\n    };\n}\nif (!Object.isSealed) {\n    Object.isSealed = function isSealed(object) {\n        return false;\n    };\n}\nif (!Object.isFrozen) {\n    Object.isFrozen = function isFrozen(object) {\n        return false;\n    };\n}\nif (!Object.isExtensible) {\n    Object.isExtensible = function isExtensible(object) {\n        if (Object(object) === object) {\n            throw new TypeError(); // TODO message\n        }\n        var name = '';\n        while (owns(object, name)) {\n            name += '?';\n        }\n        object[name] = true;\n        var returnValue = owns(object, name);\n        delete object[name];\n        return returnValue;\n    };\n}\nif (!Object.keys) {\n    var hasDontEnumBug = true,\n        dontEnums = [\n            \"toString\",\n            \"toLocaleString\",\n            \"valueOf\",\n            \"hasOwnProperty\",\n            \"isPrototypeOf\",\n            \"propertyIsEnumerable\",\n            \"constructor\"\n        ],\n        dontEnumsLength = dontEnums.length;\n\n    for (var key in {\"toString\": null}) {\n        hasDontEnumBug = false;\n    }\n\n    Object.keys = function keys(object) {\n\n        if (\n            (typeof object != \"object\" && typeof object != \"function\") ||\n            object === null\n        ) {\n            throw new TypeError(\"Object.keys called on a non-object\");\n        }\n\n        var keys = [];\n        for (var name in object) {\n            if (owns(object, name)) {\n                keys.push(name);\n            }\n        }\n\n        if (hasDontEnumBug) {\n            for (var i = 0, ii = dontEnumsLength; i < ii; i++) {\n                var dontEnum = dontEnums[i];\n                if (owns(object, dontEnum)) {\n                    keys.push(dontEnum);\n                }\n            }\n        }\n        return keys;\n    };\n\n}\nif (!Date.now) {\n    Date.now = function now() {\n        return new Date().getTime();\n    };\n}\nvar ws = \"\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\" +\n    \"\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\" +\n    \"\\u2029\\uFEFF\";\nif (!String.prototype.trim || ws.trim()) {\n    ws = \"[\" + ws + \"]\";\n    var trimBeginRegexp = new RegExp(\"^\" + ws + ws + \"*\"),\n        trimEndRegexp = new RegExp(ws + ws + \"*$\");\n    String.prototype.trim = function trim() {\n        return String(this).replace(trimBeginRegexp, \"\").replace(trimEndRegexp, \"\");\n    };\n}\n\nfunction toInteger(n) {\n    n = +n;\n    if (n !== n) { // isNaN\n        n = 0;\n    } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {\n        n = (n > 0 || -1) * Math.floor(Math.abs(n));\n    }\n    return n;\n}\n\nfunction isPrimitive(input) {\n    var type = typeof input;\n    return (\n        input === null ||\n        type === \"undefined\" ||\n        type === \"boolean\" ||\n        type === \"number\" ||\n        type === \"string\"\n    );\n}\n\nfunction toPrimitive(input) {\n    var val, valueOf, toString;\n    if (isPrimitive(input)) {\n        return input;\n    }\n    valueOf = input.valueOf;\n    if (typeof valueOf === \"function\") {\n        val = valueOf.call(input);\n        if (isPrimitive(val)) {\n            return val;\n        }\n    }\n    toString = input.toString;\n    if (typeof toString === \"function\") {\n        val = toString.call(input);\n        if (isPrimitive(val)) {\n            return val;\n        }\n    }\n    throw new TypeError();\n}\nvar toObject = function (o) {\n    if (o == null) { // this matches both null and undefined\n        throw new TypeError(\"can't convert \"+o+\" to object\");\n    }\n    return Object(o);\n};\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/worker-xml.js",
    "content": "\"no use strict\";\n;(function(window) {\nif (typeof window.window != \"undefined\" && window.document)\n    return;\nif (window.require && window.define)\n    return;\n\nif (!window.console) {\n    window.console = function() {\n        var msgs = Array.prototype.slice.call(arguments, 0);\n        postMessage({type: \"log\", data: msgs});\n    };\n    window.console.error =\n    window.console.warn = \n    window.console.log =\n    window.console.trace = window.console;\n}\nwindow.window = window;\nwindow.ace = window;\n\nwindow.onerror = function(message, file, line, col, err) {\n    postMessage({type: \"error\", data: {\n        message: message,\n        data: err.data,\n        file: file,\n        line: line, \n        col: col,\n        stack: err.stack\n    }});\n};\n\nwindow.normalizeModule = function(parentId, moduleName) {\n    // normalize plugin requires\n    if (moduleName.indexOf(\"!\") !== -1) {\n        var chunks = moduleName.split(\"!\");\n        return window.normalizeModule(parentId, chunks[0]) + \"!\" + window.normalizeModule(parentId, chunks[1]);\n    }\n    // normalize relative requires\n    if (moduleName.charAt(0) == \".\") {\n        var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n        moduleName = (base ? base + \"/\" : \"\") + moduleName;\n        \n        while (moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n            var previous = moduleName;\n            moduleName = moduleName.replace(/^\\.\\//, \"\").replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n        }\n    }\n    \n    return moduleName;\n};\n\nwindow.require = function require(parentId, id) {\n    if (!id) {\n        id = parentId;\n        parentId = null;\n    }\n    if (!id.charAt)\n        throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");\n\n    id = window.normalizeModule(parentId, id);\n\n    var module = window.require.modules[id];\n    if (module) {\n        if (!module.initialized) {\n            module.initialized = true;\n            module.exports = module.factory().exports;\n        }\n        return module.exports;\n    }\n   \n    if (!window.require.tlns)\n        return console.log(\"unable to load \" + id);\n    \n    var path = resolveModuleId(id, window.require.tlns);\n    if (path.slice(-3) != \".js\") path += \".js\";\n    \n    window.require.id = id;\n    window.require.modules[id] = {}; // prevent infinite loop on broken modules\n    importScripts(path);\n    return window.require(parentId, id);\n};\nfunction resolveModuleId(id, paths) {\n    var testPath = id, tail = \"\";\n    while (testPath) {\n        var alias = paths[testPath];\n        if (typeof alias == \"string\") {\n            return alias + tail;\n        } else if (alias) {\n            return  alias.location.replace(/\\/*$/, \"/\") + (tail || alias.main || alias.name);\n        } else if (alias === false) {\n            return \"\";\n        }\n        var i = testPath.lastIndexOf(\"/\");\n        if (i === -1) break;\n        tail = testPath.substr(i) + tail;\n        testPath = testPath.slice(0, i);\n    }\n    return id;\n}\nwindow.require.modules = {};\nwindow.require.tlns = {};\n\nwindow.define = function(id, deps, factory) {\n    if (arguments.length == 2) {\n        factory = deps;\n        if (typeof id != \"string\") {\n            deps = id;\n            id = window.require.id;\n        }\n    } else if (arguments.length == 1) {\n        factory = id;\n        deps = [];\n        id = window.require.id;\n    }\n    \n    if (typeof factory != \"function\") {\n        window.require.modules[id] = {\n            exports: factory,\n            initialized: true\n        };\n        return;\n    }\n\n    if (!deps.length)\n        // If there is no dependencies, we inject \"require\", \"exports\" and\n        // \"module\" as dependencies, to provide CommonJS compatibility.\n        deps = [\"require\", \"exports\", \"module\"];\n\n    var req = function(childId) {\n        return window.require(id, childId);\n    };\n\n    window.require.modules[id] = {\n        exports: {},\n        factory: function() {\n            var module = this;\n            var returnExports = factory.apply(this, deps.map(function(dep) {\n                switch (dep) {\n                    // Because \"require\", \"exports\" and \"module\" aren't actual\n                    // dependencies, we must handle them seperately.\n                    case \"require\": return req;\n                    case \"exports\": return module.exports;\n                    case \"module\":  return module;\n                    // But for all other dependencies, we can just go ahead and\n                    // require them.\n                    default:        return req(dep);\n                }\n            }));\n            if (returnExports)\n                module.exports = returnExports;\n            return module;\n        }\n    };\n};\nwindow.define.amd = {};\nrequire.tlns = {};\nwindow.initBaseUrls  = function initBaseUrls(topLevelNamespaces) {\n    for (var i in topLevelNamespaces)\n        require.tlns[i] = topLevelNamespaces[i];\n};\n\nwindow.initSender = function initSender() {\n\n    var EventEmitter = window.require(\"ace/lib/event_emitter\").EventEmitter;\n    var oop = window.require(\"ace/lib/oop\");\n    \n    var Sender = function() {};\n    \n    (function() {\n        \n        oop.implement(this, EventEmitter);\n                \n        this.callback = function(data, callbackId) {\n            postMessage({\n                type: \"call\",\n                id: callbackId,\n                data: data\n            });\n        };\n    \n        this.emit = function(name, data) {\n            postMessage({\n                type: \"event\",\n                name: name,\n                data: data\n            });\n        };\n        \n    }).call(Sender.prototype);\n    \n    return new Sender();\n};\n\nvar main = window.main = null;\nvar sender = window.sender = null;\n\nwindow.onmessage = function(e) {\n    var msg = e.data;\n    if (msg.event && sender) {\n        sender._signal(msg.event, msg.data);\n    }\n    else if (msg.command) {\n        if (main[msg.command])\n            main[msg.command].apply(main, msg.args);\n        else if (window[msg.command])\n            window[msg.command].apply(window, msg.args);\n        else\n            throw new Error(\"Unknown command:\" + msg.command);\n    }\n    else if (msg.init) {\n        window.initBaseUrls(msg.tlns);\n        require(\"ace/lib/es5-shim\");\n        sender = window.sender = window.initSender();\n        var clazz = require(msg.module)[msg.classname];\n        main = window.main = new clazz(sender);\n    }\n};\n})(this);\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.inherits = function(ctor, superCtor) {\n    ctor.super_ = superCtor;\n    ctor.prototype = Object.create(superCtor.prototype, {\n        constructor: {\n            value: ctor,\n            enumerable: false,\n            writable: true,\n            configurable: true\n        }\n    });\n};\n\nexports.mixin = function(obj, mixin) {\n    for (var key in mixin) {\n        obj[key] = mixin[key];\n    }\n    return obj;\n};\n\nexports.implement = function(proto, mixin) {\n    exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.last = function(a) {\n    return a[a.length - 1];\n};\n\nexports.stringReverse = function(string) {\n    return string.split(\"\").reverse().join(\"\");\n};\n\nexports.stringRepeat = function (string, count) {\n    var result = '';\n    while (count > 0) {\n        if (count & 1)\n            result += string;\n\n        if (count >>= 1)\n            string += string;\n    }\n    return result;\n};\n\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\n\nexports.stringTrimLeft = function (string) {\n    return string.replace(trimBeginRegexp, '');\n};\n\nexports.stringTrimRight = function (string) {\n    return string.replace(trimEndRegexp, '');\n};\n\nexports.copyObject = function(obj) {\n    var copy = {};\n    for (var key in obj) {\n        copy[key] = obj[key];\n    }\n    return copy;\n};\n\nexports.copyArray = function(array){\n    var copy = [];\n    for (var i=0, l=array.length; i<l; i++) {\n        if (array[i] && typeof array[i] == \"object\")\n            copy[i] = this.copyObject(array[i]);\n        else \n            copy[i] = array[i];\n    }\n    return copy;\n};\n\nexports.deepCopy = function deepCopy(obj) {\n    if (typeof obj !== \"object\" || !obj)\n        return obj;\n    var copy;\n    if (Array.isArray(obj)) {\n        copy = [];\n        for (var key = 0; key < obj.length; key++) {\n            copy[key] = deepCopy(obj[key]);\n        }\n        return copy;\n    }\n    if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n        return obj;\n    \n    copy = {};\n    for (var key in obj)\n        copy[key] = deepCopy(obj[key]);\n    return copy;\n};\n\nexports.arrayToMap = function(arr) {\n    var map = {};\n    for (var i=0; i<arr.length; i++) {\n        map[arr[i]] = 1;\n    }\n    return map;\n\n};\n\nexports.createMap = function(props) {\n    var map = Object.create(null);\n    for (var i in props) {\n        map[i] = props[i];\n    }\n    return map;\n};\nexports.arrayRemove = function(array, value) {\n  for (var i = 0; i <= array.length; i++) {\n    if (value === array[i]) {\n      array.splice(i, 1);\n    }\n  }\n};\n\nexports.escapeRegExp = function(str) {\n    return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\n\nexports.escapeHTML = function(str) {\n    return str.replace(/&/g, \"&#38;\").replace(/\"/g, \"&#34;\").replace(/'/g, \"&#39;\").replace(/</g, \"&#60;\");\n};\n\nexports.getMatchOffsets = function(string, regExp) {\n    var matches = [];\n\n    string.replace(regExp, function(str) {\n        matches.push({\n            offset: arguments[arguments.length-2],\n            length: str.length\n        });\n    });\n\n    return matches;\n};\nexports.deferredCall = function(fcn) {\n    var timer = null;\n    var callback = function() {\n        timer = null;\n        fcn();\n    };\n\n    var deferred = function(timeout) {\n        deferred.cancel();\n        timer = setTimeout(callback, timeout || 0);\n        return deferred;\n    };\n\n    deferred.schedule = deferred;\n\n    deferred.call = function() {\n        this.cancel();\n        fcn();\n        return deferred;\n    };\n\n    deferred.cancel = function() {\n        clearTimeout(timer);\n        timer = null;\n        return deferred;\n    };\n    \n    deferred.isPending = function() {\n        return timer;\n    };\n\n    return deferred;\n};\n\n\nexports.delayedCall = function(fcn, defaultTimeout) {\n    var timer = null;\n    var callback = function() {\n        timer = null;\n        fcn();\n    };\n\n    var _self = function(timeout) {\n        if (timer == null)\n            timer = setTimeout(callback, timeout || defaultTimeout);\n    };\n\n    _self.delay = function(timeout) {\n        timer && clearTimeout(timer);\n        timer = setTimeout(callback, timeout || defaultTimeout);\n    };\n    _self.schedule = _self;\n\n    _self.call = function() {\n        this.cancel();\n        fcn();\n    };\n\n    _self.cancel = function() {\n        timer && clearTimeout(timer);\n        timer = null;\n    };\n\n    _self.isPending = function() {\n        return timer;\n    };\n\n    return _self;\n};\n});\n\nace.define(\"ace/range\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\nvar comparePoints = function(p1, p2) {\n    return p1.row - p2.row || p1.column - p2.column;\n};\nvar Range = function(startRow, startColumn, endRow, endColumn) {\n    this.start = {\n        row: startRow,\n        column: startColumn\n    };\n\n    this.end = {\n        row: endRow,\n        column: endColumn\n    };\n};\n\n(function() {\n    this.isEqual = function(range) {\n        return this.start.row === range.start.row &&\n            this.end.row === range.end.row &&\n            this.start.column === range.start.column &&\n            this.end.column === range.end.column;\n    };\n    this.toString = function() {\n        return (\"Range: [\" + this.start.row + \"/\" + this.start.column +\n            \"] -> [\" + this.end.row + \"/\" + this.end.column + \"]\");\n    };\n\n    this.contains = function(row, column) {\n        return this.compare(row, column) == 0;\n    };\n    this.compareRange = function(range) {\n        var cmp,\n            end = range.end,\n            start = range.start;\n\n        cmp = this.compare(end.row, end.column);\n        if (cmp == 1) {\n            cmp = this.compare(start.row, start.column);\n            if (cmp == 1) {\n                return 2;\n            } else if (cmp == 0) {\n                return 1;\n            } else {\n                return 0;\n            }\n        } else if (cmp == -1) {\n            return -2;\n        } else {\n            cmp = this.compare(start.row, start.column);\n            if (cmp == -1) {\n                return -1;\n            } else if (cmp == 1) {\n                return 42;\n            } else {\n                return 0;\n            }\n        }\n    };\n    this.comparePoint = function(p) {\n        return this.compare(p.row, p.column);\n    };\n    this.containsRange = function(range) {\n        return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n    };\n    this.intersects = function(range) {\n        var cmp = this.compareRange(range);\n        return (cmp == -1 || cmp == 0 || cmp == 1);\n    };\n    this.isEnd = function(row, column) {\n        return this.end.row == row && this.end.column == column;\n    };\n    this.isStart = function(row, column) {\n        return this.start.row == row && this.start.column == column;\n    };\n    this.setStart = function(row, column) {\n        if (typeof row == \"object\") {\n            this.start.column = row.column;\n            this.start.row = row.row;\n        } else {\n            this.start.row = row;\n            this.start.column = column;\n        }\n    };\n    this.setEnd = function(row, column) {\n        if (typeof row == \"object\") {\n            this.end.column = row.column;\n            this.end.row = row.row;\n        } else {\n            this.end.row = row;\n            this.end.column = column;\n        }\n    };\n    this.inside = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isEnd(row, column) || this.isStart(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.insideStart = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isEnd(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.insideEnd = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isStart(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.compare = function(row, column) {\n        if (!this.isMultiLine()) {\n            if (row === this.start.row) {\n                return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n            }\n        }\n\n        if (row < this.start.row)\n            return -1;\n\n        if (row > this.end.row)\n            return 1;\n\n        if (this.start.row === row)\n            return column >= this.start.column ? 0 : -1;\n\n        if (this.end.row === row)\n            return column <= this.end.column ? 0 : 1;\n\n        return 0;\n    };\n    this.compareStart = function(row, column) {\n        if (this.start.row == row && this.start.column == column) {\n            return -1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.compareEnd = function(row, column) {\n        if (this.end.row == row && this.end.column == column) {\n            return 1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.compareInside = function(row, column) {\n        if (this.end.row == row && this.end.column == column) {\n            return 1;\n        } else if (this.start.row == row && this.start.column == column) {\n            return -1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.clipRows = function(firstRow, lastRow) {\n        if (this.end.row > lastRow)\n            var end = {row: lastRow + 1, column: 0};\n        else if (this.end.row < firstRow)\n            var end = {row: firstRow, column: 0};\n\n        if (this.start.row > lastRow)\n            var start = {row: lastRow + 1, column: 0};\n        else if (this.start.row < firstRow)\n            var start = {row: firstRow, column: 0};\n\n        return Range.fromPoints(start || this.start, end || this.end);\n    };\n    this.extend = function(row, column) {\n        var cmp = this.compare(row, column);\n\n        if (cmp == 0)\n            return this;\n        else if (cmp == -1)\n            var start = {row: row, column: column};\n        else\n            var end = {row: row, column: column};\n\n        return Range.fromPoints(start || this.start, end || this.end);\n    };\n\n    this.isEmpty = function() {\n        return (this.start.row === this.end.row && this.start.column === this.end.column);\n    };\n    this.isMultiLine = function() {\n        return (this.start.row !== this.end.row);\n    };\n    this.clone = function() {\n        return Range.fromPoints(this.start, this.end);\n    };\n    this.collapseRows = function() {\n        if (this.end.column == 0)\n            return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)\n        else\n            return new Range(this.start.row, 0, this.end.row, 0)\n    };\n    this.toScreenRange = function(session) {\n        var screenPosStart = session.documentToScreenPosition(this.start);\n        var screenPosEnd = session.documentToScreenPosition(this.end);\n\n        return new Range(\n            screenPosStart.row, screenPosStart.column,\n            screenPosEnd.row, screenPosEnd.column\n        );\n    };\n    this.moveBy = function(row, column) {\n        this.start.row += row;\n        this.start.column += column;\n        this.end.row += row;\n        this.end.column += column;\n    };\n\n}).call(Range.prototype);\nRange.fromPoints = function(start, end) {\n    return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\n\nRange.comparePoints = function(p1, p2) {\n    return p1.row - p2.row || p1.column - p2.column;\n};\n\n\nexports.Range = Range;\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nfunction throwDeltaError(delta, errorText){\n    console.log(\"Invalid Delta:\", delta);\n    throw \"Invalid Delta: \" + errorText;\n}\n\nfunction positionInDocument(docLines, position) {\n    return position.row    >= 0 && position.row    <  docLines.length &&\n           position.column >= 0 && position.column <= docLines[position.row].length;\n}\n\nfunction validateDelta(docLines, delta) {\n    if (delta.action != \"insert\" && delta.action != \"remove\")\n        throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n    if (!(delta.lines instanceof Array))\n        throwDeltaError(delta, \"delta.lines must be an Array\");\n    if (!delta.start || !delta.end)\n       throwDeltaError(delta, \"delta.start/end must be an present\");\n    var start = delta.start;\n    if (!positionInDocument(docLines, delta.start))\n        throwDeltaError(delta, \"delta.start must be contained in document\");\n    var end = delta.end;\n    if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n        throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n    var numRangeRows = end.row - start.row;\n    var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n    if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n        throwDeltaError(delta, \"delta.range must match delta lines\");\n}\n\nexports.applyDelta = function(docLines, delta, doNotValidate) {\n    \n    var row = delta.start.row;\n    var startColumn = delta.start.column;\n    var line = docLines[row] || \"\";\n    switch (delta.action) {\n        case \"insert\":\n            var lines = delta.lines;\n            if (lines.length === 1) {\n                docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n            } else {\n                var args = [row, 1].concat(delta.lines);\n                docLines.splice.apply(docLines, args);\n                docLines[row] = line.substring(0, startColumn) + docLines[row];\n                docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n            }\n            break;\n        case \"remove\":\n            var endColumn = delta.end.column;\n            var endRow = delta.end.row;\n            if (row === endRow) {\n                docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n            } else {\n                docLines.splice(\n                    row, endRow - row + 1,\n                    line.substring(0, startColumn) + docLines[endRow].substring(endColumn)\n                );\n            }\n            break;\n    }\n}\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar EventEmitter = {};\nvar stopPropagation = function() { this.propagationStopped = true; };\nvar preventDefault = function() { this.defaultPrevented = true; };\n\nEventEmitter._emit =\nEventEmitter._dispatchEvent = function(eventName, e) {\n    this._eventRegistry || (this._eventRegistry = {});\n    this._defaultHandlers || (this._defaultHandlers = {});\n\n    var listeners = this._eventRegistry[eventName] || [];\n    var defaultHandler = this._defaultHandlers[eventName];\n    if (!listeners.length && !defaultHandler)\n        return;\n\n    if (typeof e != \"object\" || !e)\n        e = {};\n\n    if (!e.type)\n        e.type = eventName;\n    if (!e.stopPropagation)\n        e.stopPropagation = stopPropagation;\n    if (!e.preventDefault)\n        e.preventDefault = preventDefault;\n\n    listeners = listeners.slice();\n    for (var i=0; i<listeners.length; i++) {\n        listeners[i](e, this);\n        if (e.propagationStopped)\n            break;\n    }\n    \n    if (defaultHandler && !e.defaultPrevented)\n        return defaultHandler(e, this);\n};\n\n\nEventEmitter._signal = function(eventName, e) {\n    var listeners = (this._eventRegistry || {})[eventName];\n    if (!listeners)\n        return;\n    listeners = listeners.slice();\n    for (var i=0; i<listeners.length; i++)\n        listeners[i](e, this);\n};\n\nEventEmitter.once = function(eventName, callback) {\n    var _self = this;\n    callback && this.addEventListener(eventName, function newCallback() {\n        _self.removeEventListener(eventName, newCallback);\n        callback.apply(null, arguments);\n    });\n};\n\n\nEventEmitter.setDefaultHandler = function(eventName, callback) {\n    var handlers = this._defaultHandlers\n    if (!handlers)\n        handlers = this._defaultHandlers = {_disabled_: {}};\n    \n    if (handlers[eventName]) {\n        var old = handlers[eventName];\n        var disabled = handlers._disabled_[eventName];\n        if (!disabled)\n            handlers._disabled_[eventName] = disabled = [];\n        disabled.push(old);\n        var i = disabled.indexOf(callback);\n        if (i != -1) \n            disabled.splice(i, 1);\n    }\n    handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function(eventName, callback) {\n    var handlers = this._defaultHandlers\n    if (!handlers)\n        return;\n    var disabled = handlers._disabled_[eventName];\n    \n    if (handlers[eventName] == callback) {\n        var old = handlers[eventName];\n        if (disabled)\n            this.setDefaultHandler(eventName, disabled.pop());\n    } else if (disabled) {\n        var i = disabled.indexOf(callback);\n        if (i != -1)\n            disabled.splice(i, 1);\n    }\n};\n\nEventEmitter.on =\nEventEmitter.addEventListener = function(eventName, callback, capturing) {\n    this._eventRegistry = this._eventRegistry || {};\n\n    var listeners = this._eventRegistry[eventName];\n    if (!listeners)\n        listeners = this._eventRegistry[eventName] = [];\n\n    if (listeners.indexOf(callback) == -1)\n        listeners[capturing ? \"unshift\" : \"push\"](callback);\n    return callback;\n};\n\nEventEmitter.off =\nEventEmitter.removeListener =\nEventEmitter.removeEventListener = function(eventName, callback) {\n    this._eventRegistry = this._eventRegistry || {};\n\n    var listeners = this._eventRegistry[eventName];\n    if (!listeners)\n        return;\n\n    var index = listeners.indexOf(callback);\n    if (index !== -1)\n        listeners.splice(index, 1);\n};\n\nEventEmitter.removeAllListeners = function(eventName) {\n    if (this._eventRegistry) this._eventRegistry[eventName] = [];\n};\n\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\n\nvar Anchor = exports.Anchor = function(doc, row, column) {\n    this.$onChange = this.onChange.bind(this);\n    this.attach(doc);\n    \n    if (typeof column == \"undefined\")\n        this.setPosition(row.row, row.column);\n    else\n        this.setPosition(row, column);\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n    this.getPosition = function() {\n        return this.$clipPositionToDocument(this.row, this.column);\n    };\n    this.getDocument = function() {\n        return this.document;\n    };\n    this.$insertRight = false;\n    this.onChange = function(delta) {\n        if (delta.start.row == delta.end.row && delta.start.row != this.row)\n            return;\n\n        if (delta.start.row > this.row)\n            return;\n            \n        var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight);\n        this.setPosition(point.row, point.column, true);\n    };\n    \n    function $pointsInOrder(point1, point2, equalPointsInOrder) {\n        var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n        return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n    }\n            \n    function $getTransformedPoint(delta, point, moveIfEqual) {\n        var deltaIsInsert = delta.action == \"insert\";\n        var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row    - delta.start.row);\n        var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n        var deltaStart = delta.start;\n        var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n        if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n            return {\n                row: point.row,\n                column: point.column\n            };\n        }\n        if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n            return {\n                row: point.row + deltaRowShift,\n                column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n            };\n        }\n        \n        return {\n            row: deltaStart.row,\n            column: deltaStart.column\n        };\n    }\n    this.setPosition = function(row, column, noClip) {\n        var pos;\n        if (noClip) {\n            pos = {\n                row: row,\n                column: column\n            };\n        } else {\n            pos = this.$clipPositionToDocument(row, column);\n        }\n\n        if (this.row == pos.row && this.column == pos.column)\n            return;\n\n        var old = {\n            row: this.row,\n            column: this.column\n        };\n\n        this.row = pos.row;\n        this.column = pos.column;\n        this._signal(\"change\", {\n            old: old,\n            value: pos\n        });\n    };\n    this.detach = function() {\n        this.document.removeEventListener(\"change\", this.$onChange);\n    };\n    this.attach = function(doc) {\n        this.document = doc || this.document;\n        this.document.on(\"change\", this.$onChange);\n    };\n    this.$clipPositionToDocument = function(row, column) {\n        var pos = {};\n\n        if (row >= this.document.getLength()) {\n            pos.row = Math.max(0, this.document.getLength() - 1);\n            pos.column = this.document.getLine(pos.row).length;\n        }\n        else if (row < 0) {\n            pos.row = 0;\n            pos.column = 0;\n        }\n        else {\n            pos.row = row;\n            pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n        }\n\n        if (column < 0)\n            pos.column = 0;\n\n        return pos;\n    };\n\n}).call(Anchor.prototype);\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar applyDelta = require(\"./apply_delta\").applyDelta;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\n\nvar Document = function(textOrLines) {\n    this.$lines = [\"\"];\n    if (textOrLines.length === 0) {\n        this.$lines = [\"\"];\n    } else if (Array.isArray(textOrLines)) {\n        this.insertMergedLines({row: 0, column: 0}, textOrLines);\n    } else {\n        this.insert({row: 0, column:0}, textOrLines);\n    }\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n    this.setValue = function(text) {\n        var len = this.getLength() - 1;\n        this.remove(new Range(0, 0, len, this.getLine(len).length));\n        this.insert({row: 0, column: 0}, text);\n    };\n    this.getValue = function() {\n        return this.getAllLines().join(this.getNewLineCharacter());\n    };\n    this.createAnchor = function(row, column) {\n        return new Anchor(this, row, column);\n    };\n    if (\"aaa\".split(/a/).length === 0) {\n        this.$split = function(text) {\n            return text.replace(/\\r\\n|\\r/g, \"\\n\").split(\"\\n\");\n        };\n    } else {\n        this.$split = function(text) {\n            return text.split(/\\r\\n|\\r|\\n/);\n        };\n    }\n\n\n    this.$detectNewLine = function(text) {\n        var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n        this.$autoNewLine = match ? match[1] : \"\\n\";\n        this._signal(\"changeNewLineMode\");\n    };\n    this.getNewLineCharacter = function() {\n        switch (this.$newLineMode) {\n          case \"windows\":\n            return \"\\r\\n\";\n          case \"unix\":\n            return \"\\n\";\n          default:\n            return this.$autoNewLine || \"\\n\";\n        }\n    };\n\n    this.$autoNewLine = \"\";\n    this.$newLineMode = \"auto\";\n    this.setNewLineMode = function(newLineMode) {\n        if (this.$newLineMode === newLineMode)\n            return;\n\n        this.$newLineMode = newLineMode;\n        this._signal(\"changeNewLineMode\");\n    };\n    this.getNewLineMode = function() {\n        return this.$newLineMode;\n    };\n    this.isNewLine = function(text) {\n        return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n    };\n    this.getLine = function(row) {\n        return this.$lines[row] || \"\";\n    };\n    this.getLines = function(firstRow, lastRow) {\n        return this.$lines.slice(firstRow, lastRow + 1);\n    };\n    this.getAllLines = function() {\n        return this.getLines(0, this.getLength());\n    };\n    this.getLength = function() {\n        return this.$lines.length;\n    };\n    this.getTextRange = function(range) {\n        return this.getLinesForRange(range).join(this.getNewLineCharacter());\n    };\n    this.getLinesForRange = function(range) {\n        var lines;\n        if (range.start.row === range.end.row) {\n            lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n        } else {\n            lines = this.getLines(range.start.row, range.end.row);\n            lines[0] = (lines[0] || \"\").substring(range.start.column);\n            var l = lines.length - 1;\n            if (range.end.row - range.start.row == l)\n                lines[l] = lines[l].substring(0, range.end.column);\n        }\n        return lines;\n    };\n    this.insertLines = function(row, lines) {\n        console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n        return this.insertFullLines(row, lines);\n    };\n    this.removeLines = function(firstRow, lastRow) {\n        console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n        return this.removeFullLines(firstRow, lastRow);\n    };\n    this.insertNewLine = function(position) {\n        console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n        return this.insertMergedLines(position, [\"\", \"\"]);\n    };\n    this.insert = function(position, text) {\n        if (this.getLength() <= 1)\n            this.$detectNewLine(text);\n        \n        return this.insertMergedLines(position, this.$split(text));\n    };\n    this.insertInLine = function(position, text) {\n        var start = this.clippedPos(position.row, position.column);\n        var end = this.pos(position.row, position.column + text.length);\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"insert\",\n            lines: [text]\n        }, true);\n        \n        return this.clonePos(end);\n    };\n    \n    this.clippedPos = function(row, column) {\n        var length = this.getLength();\n        if (row === undefined) {\n            row = length;\n        } else if (row < 0) {\n            row = 0;\n        } else if (row >= length) {\n            row = length - 1;\n            column = undefined;\n        }\n        var line = this.getLine(row);\n        if (column == undefined)\n            column = line.length;\n        column = Math.min(Math.max(column, 0), line.length);\n        return {row: row, column: column};\n    };\n    \n    this.clonePos = function(pos) {\n        return {row: pos.row, column: pos.column};\n    };\n    \n    this.pos = function(row, column) {\n        return {row: row, column: column};\n    };\n    \n    this.$clipPosition = function(position) {\n        var length = this.getLength();\n        if (position.row >= length) {\n            position.row = Math.max(0, length - 1);\n            position.column = this.getLine(length - 1).length;\n        } else {\n            position.row = Math.max(0, position.row);\n            position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n        }\n        return position;\n    };\n    this.insertFullLines = function(row, lines) {\n        row = Math.min(Math.max(row, 0), this.getLength());\n        var column = 0;\n        if (row < this.getLength()) {\n            lines = lines.concat([\"\"]);\n            column = 0;\n        } else {\n            lines = [\"\"].concat(lines);\n            row--;\n            column = this.$lines[row].length;\n        }\n        this.insertMergedLines({row: row, column: column}, lines);\n    };    \n    this.insertMergedLines = function(position, lines) {\n        var start = this.clippedPos(position.row, position.column);\n        var end = {\n            row: start.row + lines.length - 1,\n            column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n        };\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"insert\",\n            lines: lines\n        });\n        \n        return this.clonePos(end);\n    };\n    this.remove = function(range) {\n        var start = this.clippedPos(range.start.row, range.start.column);\n        var end = this.clippedPos(range.end.row, range.end.column);\n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"remove\",\n            lines: this.getLinesForRange({start: start, end: end})\n        });\n        return this.clonePos(start);\n    };\n    this.removeInLine = function(row, startColumn, endColumn) {\n        var start = this.clippedPos(row, startColumn);\n        var end = this.clippedPos(row, endColumn);\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"remove\",\n            lines: this.getLinesForRange({start: start, end: end})\n        }, true);\n        \n        return this.clonePos(start);\n    };\n    this.removeFullLines = function(firstRow, lastRow) {\n        firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n        lastRow  = Math.min(Math.max(0, lastRow ), this.getLength() - 1);\n        var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n        var deleteLastNewLine  = lastRow  < this.getLength() - 1;\n        var startRow = ( deleteFirstNewLine ? firstRow - 1                  : firstRow                    );\n        var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0                           );\n        var endRow   = ( deleteLastNewLine  ? lastRow + 1                   : lastRow                     );\n        var endCol   = ( deleteLastNewLine  ? 0                             : this.getLine(endRow).length ); \n        var range = new Range(startRow, startCol, endRow, endCol);\n        var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n        \n        this.applyDelta({\n            start: range.start,\n            end: range.end,\n            action: \"remove\",\n            lines: this.getLinesForRange(range)\n        });\n        return deletedLines;\n    };\n    this.removeNewLine = function(row) {\n        if (row < this.getLength() - 1 && row >= 0) {\n            this.applyDelta({\n                start: this.pos(row, this.getLine(row).length),\n                end: this.pos(row + 1, 0),\n                action: \"remove\",\n                lines: [\"\", \"\"]\n            });\n        }\n    };\n    this.replace = function(range, text) {\n        if (!(range instanceof Range))\n            range = Range.fromPoints(range.start, range.end);\n        if (text.length === 0 && range.isEmpty())\n            return range.start;\n        if (text == this.getTextRange(range))\n            return range.end;\n\n        this.remove(range);\n        var end;\n        if (text) {\n            end = this.insert(range.start, text);\n        }\n        else {\n            end = range.start;\n        }\n        \n        return end;\n    };\n    this.applyDeltas = function(deltas) {\n        for (var i=0; i<deltas.length; i++) {\n            this.applyDelta(deltas[i]);\n        }\n    };\n    this.revertDeltas = function(deltas) {\n        for (var i=deltas.length-1; i>=0; i--) {\n            this.revertDelta(deltas[i]);\n        }\n    };\n    this.applyDelta = function(delta, doNotValidate) {\n        var isInsert = delta.action == \"insert\";\n        if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n            : !Range.comparePoints(delta.start, delta.end)) {\n            return;\n        }\n        \n        if (isInsert && delta.lines.length > 20000)\n            this.$splitAndapplyLargeDelta(delta, 20000);\n        applyDelta(this.$lines, delta, doNotValidate);\n        this._signal(\"change\", delta);\n    };\n    \n    this.$splitAndapplyLargeDelta = function(delta, MAX) {\n        var lines = delta.lines;\n        var l = lines.length;\n        var row = delta.start.row; \n        var column = delta.start.column;\n        var from = 0, to = 0;\n        do {\n            from = to;\n            to += MAX - 1;\n            var chunk = lines.slice(from, to);\n            if (to > l) {\n                delta.lines = chunk;\n                delta.start.row = row + from;\n                delta.start.column = column;\n                break;\n            }\n            chunk.push(\"\");\n            this.applyDelta({\n                start: this.pos(row + from, column),\n                end: this.pos(row + to, column = 0),\n                action: delta.action,\n                lines: chunk\n            }, true);\n        } while(true);\n    };\n    this.revertDelta = function(delta) {\n        this.applyDelta({\n            start: this.clonePos(delta.start),\n            end: this.clonePos(delta.end),\n            action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n            lines: delta.lines.slice()\n        });\n    };\n    this.indexToPosition = function(index, startRow) {\n        var lines = this.$lines || this.getAllLines();\n        var newlineLength = this.getNewLineCharacter().length;\n        for (var i = startRow || 0, l = lines.length; i < l; i++) {\n            index -= lines[i].length + newlineLength;\n            if (index < 0)\n                return {row: i, column: index + lines[i].length + newlineLength};\n        }\n        return {row: l-1, column: lines[l-1].length};\n    };\n    this.positionToIndex = function(pos, startRow) {\n        var lines = this.$lines || this.getAllLines();\n        var newlineLength = this.getNewLineCharacter().length;\n        var index = 0;\n        var row = Math.min(pos.row, lines.length);\n        for (var i = startRow || 0; i < row; ++i)\n            index += lines[i].length + newlineLength;\n\n        return index + pos.column;\n    };\n\n}).call(Document.prototype);\n\nexports.Document = Document;\n});\n\nace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\nvar Document = require(\"../document\").Document;\nvar lang = require(\"../lib/lang\");\n    \nvar Mirror = exports.Mirror = function(sender) {\n    this.sender = sender;\n    var doc = this.doc = new Document(\"\");\n    \n    var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this));\n    \n    var _self = this;\n    sender.on(\"change\", function(e) {\n        var data = e.data;\n        if (data[0].start) {\n            doc.applyDeltas(data);\n        } else {\n            for (var i = 0; i < data.length; i += 2) {\n                if (Array.isArray(data[i+1])) {\n                    var d = {action: \"insert\", start: data[i], lines: data[i+1]};\n                } else {\n                    var d = {action: \"remove\", start: data[i], end: data[i+1]};\n                }\n                doc.applyDelta(d, true);\n            }\n        }\n        if (_self.$timeout)\n            return deferredUpdate.schedule(_self.$timeout);\n        _self.onUpdate();\n    });\n};\n\n(function() {\n    \n    this.$timeout = 500;\n    \n    this.setTimeout = function(timeout) {\n        this.$timeout = timeout;\n    };\n    \n    this.setValue = function(value) {\n        this.doc.setValue(value);\n        this.deferredUpdate.schedule(this.$timeout);\n    };\n    \n    this.getValue = function(callbackId) {\n        this.sender.callback(this.doc.getValue(), callbackId);\n    };\n    \n    this.onUpdate = function() {\n    };\n    \n    this.isPending = function() {\n        return this.deferredUpdate.isPending();\n    };\n    \n}).call(Mirror.prototype);\n\n});\n\nace.define(\"ace/mode/xml/sax\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]///\\u10000-\\uEFFFF\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\u00B7\\u0300-\\u036F\\\\ux203F-\\u2040]\");\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\nvar S_TAG = 0;//tag name offerring\nvar S_ATTR = 1;//attr name offerring \nvar S_ATTR_S=2;//attr name end and space offer\nvar S_EQ = 3;//=space?\nvar S_V = 4;//attr value(no quot value only)\nvar S_E = 5;//attr value end and no space(quot end)\nvar S_S = 6;//(attr value end || tag end ) && (space offer)\nvar S_C = 7;//closed el<el />\n\nfunction XMLReader(){\n\t\n}\n\nXMLReader.prototype = {\n\tparse:function(source,defaultNSMap,entityMap){\n\t\tvar domBuilder = this.domBuilder;\n\t\tdomBuilder.startDocument();\n\t\t_copy(defaultNSMap ,defaultNSMap = {})\n\t\tparse(source,defaultNSMap,entityMap,\n\t\t\t\tdomBuilder,this.errorHandler);\n\t\tdomBuilder.endDocument();\n\t}\n}\nfunction parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){\n  function fixedFromCharCode(code) {\n\t\tif (code > 0xffff) {\n\t\t\tcode -= 0x10000;\n\t\t\tvar surrogate1 = 0xd800 + (code >> 10)\n\t\t\t\t, surrogate2 = 0xdc00 + (code & 0x3ff);\n\n\t\t\treturn String.fromCharCode(surrogate1, surrogate2);\n\t\t} else {\n\t\t\treturn String.fromCharCode(code);\n\t\t}\n\t}\n\tfunction entityReplacer(a){\n\t\tvar k = a.slice(1,-1);\n\t\tif(k in entityMap){\n\t\t\treturn entityMap[k]; \n\t\t}else if(k.charAt(0) === '#'){\n\t\t\treturn fixedFromCharCode(parseInt(k.substr(1).replace('x','0x')))\n\t\t}else{\n\t\t\terrorHandler.error('entity not found:'+a);\n\t\t\treturn a;\n\t\t}\n\t}\n\tfunction appendText(end){//has some bugs\n\t\tvar xt = source.substring(start,end).replace(/&#?\\w+;/g,entityReplacer);\n\t\tlocator&&position(start);\n\t\tdomBuilder.characters(xt,0,end-start);\n\t\tstart = end\n\t}\n\tfunction position(start,m){\n\t\twhile(start>=endPos && (m = linePattern.exec(source))){\n\t\t\tstartPos = m.index;\n\t\t\tendPos = startPos + m[0].length;\n\t\t\tlocator.lineNumber++;\n\t\t}\n\t\tlocator.columnNumber = start-startPos+1;\n\t}\n\tvar startPos = 0;\n\tvar endPos = 0;\n\tvar linePattern = /.+(?:\\r\\n?|\\n)|.*$/g\n\tvar locator = domBuilder.locator;\n\t\n\tvar parseStack = [{currentNSMap:defaultNSMapCopy}]\n\tvar closeMap = {};\n\tvar start = 0;\n\twhile(true){\n\t\tvar i = source.indexOf('<',start);\n\t\tif(i<0){\n\t\t\tif(!source.substr(start).match(/^\\s*$/)){\n\t\t\t\tvar doc = domBuilder.document;\n    \t\t\tvar text = doc.createTextNode(source.substr(start));\n    \t\t\tdoc.appendChild(text);\n    \t\t\tdomBuilder.currentElement = text;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif(i>start){\n\t\t\tappendText(i);\n\t\t}\n\t\tswitch(source.charAt(i+1)){\n\t\tcase '/':\n\t\t\tvar end = source.indexOf('>',i+3);\n\t\t\tvar tagName = source.substring(i+2,end);\n\t\t\tvar config;\n\t\t\tif (parseStack.length > 1) {\n\t\t\t\tconfig = parseStack.pop();\n\t\t\t} else {\n\t\t\t\terrorHandler.fatalError(\"end tag name not found for: \"+tagName);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tvar localNSMap = config.localNSMap;\n\t\t\t\n\t        if(config.tagName != tagName){\n\t            errorHandler.fatalError(\"end tag name: \" + tagName + \" does not match the current start tagName: \"+config.tagName );\n\t        }\n\t\t\tdomBuilder.endElement(config.uri,config.localName,tagName);\n\t\t\tif(localNSMap){\n\t\t\t\tfor(var prefix in localNSMap){\n\t\t\t\t\tdomBuilder.endPrefixMapping(prefix) ;\n\t\t\t\t}\n\t\t\t}\n\t\t\tend++;\n\t\t\tbreak;\n\t\tcase '?':// <?...?>\n\t\t\tlocator&&position(i);\n\t\t\tend = parseInstruction(source,i,domBuilder);\n\t\t\tbreak;\n\t\tcase '!':// <!doctype,<![CDATA,<!--\n\t\t\tlocator&&position(i);\n\t\t\tend = parseDCC(source,i,domBuilder,errorHandler);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\ttry{\n\t\t\t\tlocator&&position(i);\n\t\t\t\t\n\t\t\t\tvar el = new ElementAttributes();\n\t\t\t\tvar end = parseElementStartPart(source,i,el,entityReplacer,errorHandler);\n\t\t\t\tvar len = el.length;\n\t\t\t\tif(len && locator){\n\t\t\t\t\tvar backup = copyLocator(locator,{});\n\t\t\t\t\tfor(var i = 0;i<len;i++){\n\t\t\t\t\t\tvar a = el[i];\n\t\t\t\t\t\tposition(a.offset);\n\t\t\t\t\t\ta.offset = copyLocator(locator,{});\n\t\t\t\t\t}\n\t\t\t\t\tcopyLocator(backup,locator);\n\t\t\t\t}\n\t\t\t\tif(!el.closed && fixSelfClosed(source,end,el.tagName,closeMap)){\n\t\t\t\t\tel.closed = true;\n\t\t\t\t\tif(!entityMap.nbsp){\n\t\t\t\t\t\terrorHandler.warning('unclosed xml attribute');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tappendElement(el,domBuilder,parseStack);\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tif(el.uri === 'http://www.w3.org/1999/xhtml' && !el.closed){\n\t\t\t\t\tend = parseHtmlSpecialContent(source,end,el.tagName,entityReplacer,domBuilder)\n\t\t\t\t}else{\n\t\t\t\t\tend++;\n\t\t\t\t}\n\t\t\t}catch(e){\n\t\t\t\terrorHandler.error('element parse error: '+e);\n\t\t\t\tend = -1;\n\t\t\t}\n\n\t\t}\n\t\tif(end<0){\n\t\t\tappendText(i+1);\n\t\t}else{\n\t\t\tstart = end;\n\t\t}\n\t}\n}\nfunction copyLocator(f,t){\n\tt.lineNumber = f.lineNumber;\n\tt.columnNumber = f.columnNumber;\n\treturn t;\n\t\n}\nfunction parseElementStartPart(source,start,el,entityReplacer,errorHandler){\n\tvar attrName;\n\tvar value;\n\tvar p = ++start;\n\tvar s = S_TAG;//status\n\twhile(true){\n\t\tvar c = source.charAt(p);\n\t\tswitch(c){\n\t\tcase '=':\n\t\t\tif(s === S_ATTR){//attrName\n\t\t\t\tattrName = source.slice(start,p);\n\t\t\t\ts = S_EQ;\n\t\t\t}else if(s === S_ATTR_S){\n\t\t\t\ts = S_EQ;\n\t\t\t}else{\n\t\t\t\tthrow new Error('attribute equal must after attrName');\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '\\'':\n\t\tcase '\"':\n\t\t\tif(s === S_EQ){//equal\n\t\t\t\tstart = p+1;\n\t\t\t\tp = source.indexOf(c,start)\n\t\t\t\tif(p>0){\n\t\t\t\t\tvalue = source.slice(start,p).replace(/&#?\\w+;/g,entityReplacer);\n\t\t\t\t\tel.add(attrName,value,start-1);\n\t\t\t\t\ts = S_E;\n\t\t\t\t}else{\n\t\t\t\t\tthrow new Error('attribute value no end \\''+c+'\\' match');\n\t\t\t\t}\n\t\t\t}else if(s == S_V){\n\t\t\t\tvalue = source.slice(start,p).replace(/&#?\\w+;/g,entityReplacer);\n\t\t\t\tel.add(attrName,value,start);\n\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed start quot('+c+')!!');\n\t\t\t\tstart = p+1;\n\t\t\t\ts = S_E\n\t\t\t}else{\n\t\t\t\tthrow new Error('attribute value must after \"=\"');\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '/':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_E:\n\t\t\tcase S_S:\n\t\t\tcase S_C:\n\t\t\t\ts = S_C;\n\t\t\t\tel.closed = true;\n\t\t\tcase S_V:\n\t\t\tcase S_ATTR:\n\t\t\tcase S_ATTR_S:\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"attribute invalid close char('/')\")\n\t\t\t}\n\t\t\tbreak;\n\t\tcase ''://end document\n\t\t\terrorHandler.error('unexpected end of input');\n\t\tcase '>':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_E:\n\t\t\tcase S_S:\n\t\t\tcase S_C:\n\t\t\t\tbreak;//normal\n\t\t\tcase S_V://Compatible state\n\t\t\tcase S_ATTR:\n\t\t\t\tvalue = source.slice(start,p);\n\t\t\t\tif(value.slice(-1) === '/'){\n\t\t\t\t\tel.closed  = true;\n\t\t\t\t\tvalue = value.slice(0,-1)\n\t\t\t\t}\n\t\t\tcase S_ATTR_S:\n\t\t\t\tif(s === S_ATTR_S){\n\t\t\t\t\tvalue = attrName;\n\t\t\t\t}\n\t\t\t\tif(s == S_V){\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!!');\n\t\t\t\t\tel.add(attrName,value.replace(/&#?\\w+;/g,entityReplacer),start)\n\t\t\t\t}else{\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed value!! \"'+value+'\" instead!!')\n\t\t\t\t\tel.add(value,value,start)\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase S_EQ:\n\t\t\t\tthrow new Error('attribute value missed!!');\n\t\t\t}\n\t\t\treturn p;\n\t\tcase '\\u0080':\n\t\t\tc = ' ';\n\t\tdefault:\n\t\t\tif(c<= ' '){//space\n\t\t\t\tswitch(s){\n\t\t\t\tcase S_TAG:\n\t\t\t\t\tel.setTagName(source.slice(start,p));//tagName\n\t\t\t\t\ts = S_S;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR:\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t\ts = S_ATTR_S;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_V:\n\t\t\t\t\tvar value = source.slice(start,p).replace(/&#?\\w+;/g,entityReplacer);\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!!');\n\t\t\t\t\tel.add(attrName,value,start)\n\t\t\t\tcase S_E:\n\t\t\t\t\ts = S_S;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}else{//not space\n\t\t\t\tswitch(s){\n\t\t\t\tcase S_ATTR_S:\n\t\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed value!! \"'+attrName+'\" instead!!')\n\t\t\t\t\tel.add(attrName,attrName,start);\n\t\t\t\t\tstart = p;\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_E:\n\t\t\t\t\terrorHandler.warning('attribute space is required\"'+attrName+'\"!!')\n\t\t\t\tcase S_S:\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_EQ:\n\t\t\t\t\ts = S_V;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_C:\n\t\t\t\t\tthrow new Error(\"elements closed character '/' and '>' must be connected to\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tp++;\n\t}\n}\nfunction appendElement(el,domBuilder,parseStack){\n\tvar tagName = el.tagName;\n\tvar localNSMap = null;\n\tvar currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\tvar i = el.length;\n\twhile(i--){\n\t\tvar a = el[i];\n\t\tvar qName = a.qName;\n\t\tvar value = a.value;\n\t\tvar nsp = qName.indexOf(':');\n\t\tif(nsp>0){\n\t\t\tvar prefix = a.prefix = qName.slice(0,nsp);\n\t\t\tvar localName = qName.slice(nsp+1);\n\t\t\tvar nsPrefix = prefix === 'xmlns' && localName\n\t\t}else{\n\t\t\tlocalName = qName;\n\t\t\tprefix = null\n\t\t\tnsPrefix = qName === 'xmlns' && ''\n\t\t}\n\t\ta.localName = localName ;\n\t\tif(nsPrefix !== false){//hack!!\n\t\t\tif(localNSMap == null){\n\t\t\t\tlocalNSMap = {}\n\t\t\t\t_copy(currentNSMap,currentNSMap={})\n\t\t\t}\n\t\t\tcurrentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n\t\t\ta.uri = 'http://www.w3.org/2000/xmlns/'\n\t\t\tdomBuilder.startPrefixMapping(nsPrefix, value) \n\t\t}\n\t}\n\tvar i = el.length;\n\twhile(i--){\n\t\ta = el[i];\n\t\tvar prefix = a.prefix;\n\t\tif(prefix){//no prefix attribute has no namespace\n\t\t\tif(prefix === 'xml'){\n\t\t\t\ta.uri = 'http://www.w3.org/XML/1998/namespace';\n\t\t\t}if(prefix !== 'xmlns'){\n\t\t\t\ta.uri = currentNSMap[prefix]\n\t\t\t}\n\t\t}\n\t}\n\tvar nsp = tagName.indexOf(':');\n\tif(nsp>0){\n\t\tprefix = el.prefix = tagName.slice(0,nsp);\n\t\tlocalName = el.localName = tagName.slice(nsp+1);\n\t}else{\n\t\tprefix = null;//important!!\n\t\tlocalName = el.localName = tagName;\n\t}\n\tvar ns = el.uri = currentNSMap[prefix || ''];\n\tdomBuilder.startElement(ns,localName,tagName,el);\n\tif(el.closed){\n\t\tdomBuilder.endElement(ns,localName,tagName);\n\t\tif(localNSMap){\n\t\t\tfor(prefix in localNSMap){\n\t\t\t\tdomBuilder.endPrefixMapping(prefix) \n\t\t\t}\n\t\t}\n\t}else{\n\t\tel.currentNSMap = currentNSMap;\n\t\tel.localNSMap = localNSMap;\n\t\tparseStack.push(el);\n\t}\n}\nfunction parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){\n\tif(/^(?:script|textarea)$/i.test(tagName)){\n\t\tvar elEndStart =  source.indexOf('</'+tagName+'>',elStartEnd);\n\t\tvar text = source.substring(elStartEnd+1,elEndStart);\n\t\tif(/[&<]/.test(text)){\n\t\t\tif(/^script$/i.test(tagName)){\n\t\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\t\treturn elEndStart;\n\t\t\t}//}else{//text area\n\t\t\t\ttext = text.replace(/&#?\\w+;/g,entityReplacer);\n\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\treturn elEndStart;\n\t\t\t\n\t\t}\n\t}\n\treturn elStartEnd+1;\n}\nfunction fixSelfClosed(source,elStartEnd,tagName,closeMap){\n\tvar pos = closeMap[tagName];\n\tif(pos == null){\n\t\tpos = closeMap[tagName] = source.lastIndexOf('</'+tagName+'>')\n\t}\n\treturn pos<elStartEnd;\n}\nfunction _copy(source,target){\n\tfor(var n in source){target[n] = source[n]}\n}\nfunction parseDCC(source,start,domBuilder,errorHandler){//sure start with '<!'\n\tvar next= source.charAt(start+2)\n\tswitch(next){\n\tcase '-':\n\t\tif(source.charAt(start + 3) === '-'){\n\t\t\tvar end = source.indexOf('-->',start+4);\n\t\t\tif(end>start){\n\t\t\t\tdomBuilder.comment(source,start+4,end-start-4);\n\t\t\t\treturn end+3;\n\t\t\t}else{\n\t\t\t\terrorHandler.error(\"Unclosed comment\");\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}else{\n\t\t\treturn -1;\n\t\t}\n\tdefault:\n\t\tif(source.substr(start+3,6) == 'CDATA['){\n\t\t\tvar end = source.indexOf(']]>',start+9);\n\t\t\tdomBuilder.startCDATA();\n\t\t\tdomBuilder.characters(source,start+9,end-start-9);\n\t\t\tdomBuilder.endCDATA() \n\t\t\treturn end+3;\n\t\t}\n\t\tvar matchs = split(source,start);\n\t\tvar len = matchs.length;\n\t\tif(len>1 && /!doctype/i.test(matchs[0][0])){\n\t\t\tvar name = matchs[1][0];\n\t\t\tvar pubid = len>3 && /^public$/i.test(matchs[2][0]) && matchs[3][0]\n\t\t\tvar sysid = len>4 && matchs[4][0];\n\t\t\tvar lastMatch = matchs[len-1]\n\t\t\tdomBuilder.startDTD(name,pubid && pubid.replace(/^(['\"])(.*?)\\1$/,'$2'),\n\t\t\t\t\tsysid && sysid.replace(/^(['\"])(.*?)\\1$/,'$2'));\n\t\t\tdomBuilder.endDTD();\n\t\t\t\n\t\t\treturn lastMatch.index+lastMatch[0].length\n\t\t}\n\t}\n\treturn -1;\n}\n\n\n\nfunction parseInstruction(source,start,domBuilder){\n\tvar end = source.indexOf('?>',start);\n\tif(end){\n\t\tvar match = source.substring(start,end).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)\\s*$/);\n\t\tif(match){\n\t\t\tvar len = match[0].length;\n\t\t\tdomBuilder.processingInstruction(match[1], match[2]) ;\n\t\t\treturn end+2;\n\t\t}else{//error\n\t\t\treturn -1;\n\t\t}\n\t}\n\treturn -1;\n}\nfunction ElementAttributes(source){\n\t\n}\nElementAttributes.prototype = {\n\tsetTagName:function(tagName){\n\t\tif(!tagNamePattern.test(tagName)){\n\t\t\tthrow new Error('invalid tagName:'+tagName)\n\t\t}\n\t\tthis.tagName = tagName\n\t},\n\tadd:function(qName,value,offset){\n\t\tif(!tagNamePattern.test(qName)){\n\t\t\tthrow new Error('invalid attribute:'+qName)\n\t\t}\n\t\tthis[this.length++] = {qName:qName,value:value,offset:offset}\n\t},\n\tlength:0,\n\tgetLocalName:function(i){return this[i].localName},\n\tgetOffset:function(i){return this[i].offset},\n\tgetQName:function(i){return this[i].qName},\n\tgetURI:function(i){return this[i].uri},\n\tgetValue:function(i){return this[i].value}\n}\n\n\n\n\nfunction _set_proto_(thiz,parent){\n\tthiz.__proto__ = parent;\n\treturn thiz;\n}\nif(!(_set_proto_({},_set_proto_.prototype) instanceof _set_proto_)){\n\t_set_proto_ = function(thiz,parent){\n\t\tfunction p(){};\n\t\tp.prototype = parent;\n\t\tp = new p();\n\t\tfor(parent in thiz){\n\t\t\tp[parent] = thiz[parent];\n\t\t}\n\t\treturn p;\n\t}\n}\n\nfunction split(source,start){\n\tvar match;\n\tvar buf = [];\n\tvar reg = /'[^']+'|\"[^\"]+\"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;\n\treg.lastIndex = start;\n\treg.exec(source);//skip <\n\twhile(match = reg.exec(source)){\n\t\tbuf.push(match);\n\t\tif(match[1])return buf;\n\t}\n}\n\nreturn XMLReader;\n});\n\nace.define(\"ace/mode/xml/dom\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\nfunction copy(src,dest){\n\tfor(var p in src){\n\t\tdest[p] = src[p];\n\t}\n}\nfunction _extends(Class,Super){\n\tvar pt = Class.prototype;\n\tif(Object.create){\n\t\tvar ppt = Object.create(Super.prototype)\n\t\tpt.__proto__ = ppt;\n\t}\n\tif(!(pt instanceof Super)){\n\t\tfunction t(){};\n\t\tt.prototype = Super.prototype;\n\t\tt = new t();\n\t\tcopy(pt,t);\n\t\tClass.prototype = pt = t;\n\t}\n\tif(pt.constructor != Class){\n\t\tif(typeof Class != 'function'){\n\t\t\tconsole.error(\"unknow Class:\"+Class)\n\t\t}\n\t\tpt.constructor = Class\n\t}\n}\nvar htmlns = 'http://www.w3.org/1999/xhtml' ;\nvar NodeType = {}\nvar ELEMENT_NODE                = NodeType.ELEMENT_NODE                = 1;\nvar ATTRIBUTE_NODE              = NodeType.ATTRIBUTE_NODE              = 2;\nvar TEXT_NODE                   = NodeType.TEXT_NODE                   = 3;\nvar CDATA_SECTION_NODE          = NodeType.CDATA_SECTION_NODE          = 4;\nvar ENTITY_REFERENCE_NODE       = NodeType.ENTITY_REFERENCE_NODE       = 5;\nvar ENTITY_NODE                 = NodeType.ENTITY_NODE                 = 6;\nvar PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar COMMENT_NODE                = NodeType.COMMENT_NODE                = 8;\nvar DOCUMENT_NODE               = NodeType.DOCUMENT_NODE               = 9;\nvar DOCUMENT_TYPE_NODE          = NodeType.DOCUMENT_TYPE_NODE          = 10;\nvar DOCUMENT_FRAGMENT_NODE      = NodeType.DOCUMENT_FRAGMENT_NODE      = 11;\nvar NOTATION_NODE               = NodeType.NOTATION_NODE               = 12;\nvar ExceptionCode = {}\nvar ExceptionMessage = {};\nvar INDEX_SIZE_ERR              = ExceptionCode.INDEX_SIZE_ERR              = ((ExceptionMessage[1]=\"Index size error\"),1);\nvar DOMSTRING_SIZE_ERR          = ExceptionCode.DOMSTRING_SIZE_ERR          = ((ExceptionMessage[2]=\"DOMString size error\"),2);\nvar HIERARCHY_REQUEST_ERR       = ExceptionCode.HIERARCHY_REQUEST_ERR       = ((ExceptionMessage[3]=\"Hierarchy request error\"),3);\nvar WRONG_DOCUMENT_ERR          = ExceptionCode.WRONG_DOCUMENT_ERR          = ((ExceptionMessage[4]=\"Wrong document\"),4);\nvar INVALID_CHARACTER_ERR       = ExceptionCode.INVALID_CHARACTER_ERR       = ((ExceptionMessage[5]=\"Invalid character\"),5);\nvar NO_DATA_ALLOWED_ERR         = ExceptionCode.NO_DATA_ALLOWED_ERR         = ((ExceptionMessage[6]=\"No data allowed\"),6);\nvar NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]=\"No modification allowed\"),7);\nvar NOT_FOUND_ERR               = ExceptionCode.NOT_FOUND_ERR               = ((ExceptionMessage[8]=\"Not found\"),8);\nvar NOT_SUPPORTED_ERR           = ExceptionCode.NOT_SUPPORTED_ERR           = ((ExceptionMessage[9]=\"Not supported\"),9);\nvar INUSE_ATTRIBUTE_ERR         = ExceptionCode.INUSE_ATTRIBUTE_ERR         = ((ExceptionMessage[10]=\"Attribute in use\"),10);\nvar INVALID_STATE_ERR        \t= ExceptionCode.INVALID_STATE_ERR        \t= ((ExceptionMessage[11]=\"Invalid state\"),11);\nvar SYNTAX_ERR               \t= ExceptionCode.SYNTAX_ERR               \t= ((ExceptionMessage[12]=\"Syntax error\"),12);\nvar INVALID_MODIFICATION_ERR \t= ExceptionCode.INVALID_MODIFICATION_ERR \t= ((ExceptionMessage[13]=\"Invalid modification\"),13);\nvar NAMESPACE_ERR            \t= ExceptionCode.NAMESPACE_ERR           \t= ((ExceptionMessage[14]=\"Invalid namespace\"),14);\nvar INVALID_ACCESS_ERR       \t= ExceptionCode.INVALID_ACCESS_ERR      \t= ((ExceptionMessage[15]=\"Invalid access\"),15);\n\n\nfunction DOMException(code, message) {\n\tif(message instanceof Error){\n\t\tvar error = message;\n\t}else{\n\t\terror = this;\n\t\tError.call(this, ExceptionMessage[code]);\n\t\tthis.message = ExceptionMessage[code];\n\t\tif(Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n\t}\n\terror.code = code;\n\tif(message) this.message = this.message + \": \" + message;\n\treturn error;\n};\nDOMException.prototype = Error.prototype;\ncopy(ExceptionCode,DOMException)\nfunction NodeList() {\n};\nNodeList.prototype = {\n\tlength:0, \n\titem: function(index) {\n\t\treturn this[index] || null;\n\t}\n};\nfunction LiveNodeList(node,refresh){\n\tthis._node = node;\n\tthis._refresh = refresh\n\t_updateLiveList(this);\n}\nfunction _updateLiveList(list){\n\tvar inc = list._node._inc || list._node.ownerDocument._inc;\n\tif(list._inc != inc){\n\t\tvar ls = list._refresh(list._node);\n\t\t__set__(list,'length',ls.length);\n\t\tcopy(ls,list);\n\t\tlist._inc = inc;\n\t}\n}\nLiveNodeList.prototype.item = function(i){\n\t_updateLiveList(this);\n\treturn this[i];\n}\n\n_extends(LiveNodeList,NodeList);\nfunction NamedNodeMap() {\n};\n\nfunction _findNodeIndex(list,node){\n\tvar i = list.length;\n\twhile(i--){\n\t\tif(list[i] === node){return i}\n\t}\n}\n\nfunction _addNamedNode(el,list,newAttr,oldAttr){\n\tif(oldAttr){\n\t\tlist[_findNodeIndex(list,oldAttr)] = newAttr;\n\t}else{\n\t\tlist[list.length++] = newAttr;\n\t}\n\tif(el){\n\t\tnewAttr.ownerElement = el;\n\t\tvar doc = el.ownerDocument;\n\t\tif(doc){\n\t\t\toldAttr && _onRemoveAttribute(doc,el,oldAttr);\n\t\t\t_onAddAttribute(doc,el,newAttr);\n\t\t}\n\t}\n}\nfunction _removeNamedNode(el,list,attr){\n\tvar i = _findNodeIndex(list,attr);\n\tif(i>=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i<lastIndex){\n\t\t\tlist[i] = list[++i]\n\t\t}\n\t\tlist.length = lastIndex;\n\t\tif(el){\n\t\t\tvar doc = el.ownerDocument;\n\t\t\tif(doc){\n\t\t\t\t_onRemoveAttribute(doc,el,attr);\n\t\t\t\tattr.ownerElement = null;\n\t\t\t}\n\t\t}\n\t}else{\n\t\tthrow DOMException(NOT_FOUND_ERR,new Error())\n\t}\n}\nNamedNodeMap.prototype = {\n\tlength:0,\n\titem:NodeList.prototype.item,\n\tgetNamedItem: function(key) {\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar attr = this[i];\n\t\t\tif(attr.nodeName == key){\n\t\t\t\treturn attr;\n\t\t\t}\n\t\t}\n\t},\n\tsetNamedItem: function(attr) {\n\t\tvar el = attr.ownerElement;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\tvar oldAttr = this.getNamedItem(attr.nodeName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\tsetNamedItemNS: function(attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR\n\t\tvar el = attr.ownerElement, oldAttr;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\toldAttr = this.getNamedItemNS(attr.namespaceURI,attr.localName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\tremoveNamedItem: function(key) {\n\t\tvar attr = this.getNamedItem(key);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t\t\n\t\t\n\t},// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR\n\tremoveNamedItemNS:function(namespaceURI,localName){\n\t\tvar attr = this.getNamedItemNS(namespaceURI,localName);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t},\n\tgetNamedItemNS: function(namespaceURI, localName) {\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar node = this[i];\n\t\t\tif(node.localName == localName && node.namespaceURI == namespaceURI){\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n};\nfunction DOMImplementation(/* Object */ features) {\n\tthis._features = {};\n\tif (features) {\n\t\tfor (var feature in features) {\n\t\t\t this._features = features[feature];\n\t\t}\n\t}\n};\n\nDOMImplementation.prototype = {\n\thasFeature: function(/* string */ feature, /* string */ version) {\n\t\tvar versions = this._features[feature.toLowerCase()];\n\t\tif (versions && (!version || version in versions)) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t},\n\tcreateDocument:function(namespaceURI,  qualifiedName, doctype){// raises:INVALID_CHARACTER_ERR,NAMESPACE_ERR,WRONG_DOCUMENT_ERR\n\t\tvar doc = new Document();\n\t\tdoc.implementation = this;\n\t\tdoc.childNodes = new NodeList();\n\t\tdoc.doctype = doctype;\n\t\tif(doctype){\n\t\t\tdoc.appendChild(doctype);\n\t\t}\n\t\tif(qualifiedName){\n\t\t\tvar root = doc.createElementNS(namespaceURI,qualifiedName);\n\t\t\tdoc.appendChild(root);\n\t\t}\n\t\treturn doc;\n\t},\n\tcreateDocumentType:function(qualifiedName, publicId, systemId){// raises:INVALID_CHARACTER_ERR,NAMESPACE_ERR\n\t\tvar node = new DocumentType();\n\t\tnode.name = qualifiedName;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.publicId = publicId;\n\t\tnode.systemId = systemId;\n\t\treturn node;\n\t}\n};\n\nfunction Node() {\n};\n\nNode.prototype = {\n\tfirstChild : null,\n\tlastChild : null,\n\tpreviousSibling : null,\n\tnextSibling : null,\n\tattributes : null,\n\tparentNode : null,\n\tchildNodes : null,\n\townerDocument : null,\n\tnodeValue : null,\n\tnamespaceURI : null,\n\tprefix : null,\n\tlocalName : null,\n\tinsertBefore:function(newChild, refChild){//raises \n\t\treturn _insertBefore(this,newChild,refChild);\n\t},\n\treplaceChild:function(newChild, oldChild){//raises \n\t\tthis.insertBefore(newChild,oldChild);\n\t\tif(oldChild){\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t},\n\tremoveChild:function(oldChild){\n\t\treturn _removeChild(this,oldChild);\n\t},\n\tappendChild:function(newChild){\n\t\treturn this.insertBefore(newChild,null);\n\t},\n\thasChildNodes:function(){\n\t\treturn this.firstChild != null;\n\t},\n\tcloneNode:function(deep){\n\t\treturn cloneNode(this.ownerDocument||this,this,deep);\n\t},\n\tnormalize:function(){\n\t\tvar child = this.firstChild;\n\t\twhile(child){\n\t\t\tvar next = child.nextSibling;\n\t\t\tif(next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE){\n\t\t\t\tthis.removeChild(next);\n\t\t\t\tchild.appendData(next.data);\n\t\t\t}else{\n\t\t\t\tchild.normalize();\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t}\n\t},\n\tisSupported:function(feature, version){\n\t\treturn this.ownerDocument.implementation.hasFeature(feature,version);\n\t},\n    hasAttributes:function(){\n    \treturn this.attributes.length>0;\n    },\n    lookupPrefix:function(namespaceURI){\n    \tvar el = this;\n    \twhile(el){\n    \t\tvar map = el._nsMap;\n    \t\tif(map){\n    \t\t\tfor(var n in map){\n    \t\t\t\tif(map[n] == namespaceURI){\n    \t\t\t\t\treturn n;\n    \t\t\t\t}\n    \t\t\t}\n    \t\t}\n    \t\tel = el.nodeType == 2?el.ownerDocument : el.parentNode;\n    \t}\n    \treturn null;\n    },\n    lookupNamespaceURI:function(prefix){\n    \tvar el = this;\n    \twhile(el){\n    \t\tvar map = el._nsMap;\n    \t\tif(map){\n    \t\t\tif(prefix in map){\n    \t\t\t\treturn map[prefix] ;\n    \t\t\t}\n    \t\t}\n    \t\tel = el.nodeType == 2?el.ownerDocument : el.parentNode;\n    \t}\n    \treturn null;\n    },\n    isDefaultNamespace:function(namespaceURI){\n    \tvar prefix = this.lookupPrefix(namespaceURI);\n    \treturn prefix == null;\n    }\n};\n\n\nfunction _xmlEncoder(c){\n\treturn c == '<' && '&lt;' ||\n         c == '>' && '&gt;' ||\n         c == '&' && '&amp;' ||\n         c == '\"' && '&quot;' ||\n         '&#'+c.charCodeAt()+';'\n}\n\n\ncopy(NodeType,Node);\ncopy(NodeType,Node.prototype);\nfunction _visitNode(node,callback){\n\tif(callback(node)){\n\t\treturn true;\n\t}\n\tif(node = node.firstChild){\n\t\tdo{\n\t\t\tif(_visitNode(node,callback)){return true}\n        }while(node=node.nextSibling)\n    }\n}\n\n\n\nfunction Document(){\n}\nfunction _onAddAttribute(doc,el,newAttr){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns == 'http://www.w3.org/2000/xmlns/'){\n\t\tel._nsMap[newAttr.prefix?newAttr.localName:''] = newAttr.value\n\t}\n}\nfunction _onRemoveAttribute(doc,el,newAttr,remove){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns == 'http://www.w3.org/2000/xmlns/'){\n\t\tdelete el._nsMap[newAttr.prefix?newAttr.localName:'']\n\t}\n}\nfunction _onUpdateChild(doc,el,newChild){\n\tif(doc && doc._inc){\n\t\tdoc._inc++;\n\t\tvar cs = el.childNodes;\n\t\tif(newChild){\n\t\t\tcs[cs.length++] = newChild;\n\t\t}else{\n\t\t\tvar child = el.firstChild;\n\t\t\tvar i = 0;\n\t\t\twhile(child){\n\t\t\t\tcs[i++] = child;\n\t\t\t\tchild =child.nextSibling;\n\t\t\t}\n\t\t\tcs.length = i;\n\t\t}\n\t}\n}\nfunction _removeChild(parentNode,child){\n\tvar previous = child.previousSibling;\n\tvar next = child.nextSibling;\n\tif(previous){\n\t\tprevious.nextSibling = next;\n\t}else{\n\t\tparentNode.firstChild = next\n\t}\n\tif(next){\n\t\tnext.previousSibling = previous;\n\t}else{\n\t\tparentNode.lastChild = previous;\n\t}\n\t_onUpdateChild(parentNode.ownerDocument,parentNode);\n\treturn child;\n}\nfunction _insertBefore(parentNode,newChild,nextChild){\n\tvar cp = newChild.parentNode;\n\tif(cp){\n\t\tcp.removeChild(newChild);//remove and update\n\t}\n\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\tvar newFirst = newChild.firstChild;\n\t\tif (newFirst == null) {\n\t\t\treturn newChild;\n\t\t}\n\t\tvar newLast = newChild.lastChild;\n\t}else{\n\t\tnewFirst = newLast = newChild;\n\t}\n\tvar pre = nextChild ? nextChild.previousSibling : parentNode.lastChild;\n\n\tnewFirst.previousSibling = pre;\n\tnewLast.nextSibling = nextChild;\n\t\n\t\n\tif(pre){\n\t\tpre.nextSibling = newFirst;\n\t}else{\n\t\tparentNode.firstChild = newFirst;\n\t}\n\tif(nextChild == null){\n\t\tparentNode.lastChild = newLast;\n\t}else{\n\t\tnextChild.previousSibling = newLast;\n\t}\n\tdo{\n\t\tnewFirst.parentNode = parentNode;\n\t}while(newFirst !== newLast && (newFirst= newFirst.nextSibling))\n\t_onUpdateChild(parentNode.ownerDocument||parentNode,parentNode);\n\tif (newChild.nodeType == DOCUMENT_FRAGMENT_NODE) {\n\t\tnewChild.firstChild = newChild.lastChild = null;\n\t}\n\treturn newChild;\n}\nfunction _appendSingleChild(parentNode,newChild){\n\tvar cp = newChild.parentNode;\n\tif(cp){\n\t\tvar pre = parentNode.lastChild;\n\t\tcp.removeChild(newChild);//remove and update\n\t\tvar pre = parentNode.lastChild;\n\t}\n\tvar pre = parentNode.lastChild;\n\tnewChild.parentNode = parentNode;\n\tnewChild.previousSibling = pre;\n\tnewChild.nextSibling = null;\n\tif(pre){\n\t\tpre.nextSibling = newChild;\n\t}else{\n\t\tparentNode.firstChild = newChild;\n\t}\n\tparentNode.lastChild = newChild;\n\t_onUpdateChild(parentNode.ownerDocument,parentNode,newChild);\n\treturn newChild;\n}\nDocument.prototype = {\n\tnodeName :  '#document',\n\tnodeType :  DOCUMENT_NODE,\n\tdoctype :  null,\n\tdocumentElement :  null,\n\t_inc : 1,\n\t\n\tinsertBefore :  function(newChild, refChild){//raises \n\t\tif(newChild.nodeType == DOCUMENT_FRAGMENT_NODE){\n\t\t\tvar child = newChild.firstChild;\n\t\t\twhile(child){\n\t\t\t\tvar next = child.nextSibling;\n\t\t\t\tthis.insertBefore(child,refChild);\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t\treturn newChild;\n\t\t}\n\t\tif(this.documentElement == null && newChild.nodeType == 1){\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\t\t\n\t\treturn _insertBefore(this,newChild,refChild),(newChild.ownerDocument = this),newChild;\n\t},\n\tremoveChild :  function(oldChild){\n\t\tif(this.documentElement == oldChild){\n\t\t\tthis.documentElement = null;\n\t\t}\n\t\treturn _removeChild(this,oldChild);\n\t},\n\timportNode : function(importedNode,deep){\n\t\treturn importNode(this,importedNode,deep);\n\t},\n\tgetElementById :\tfunction(id){\n\t\tvar rtv = null;\n\t\t_visitNode(this.documentElement,function(node){\n\t\t\tif(node.nodeType == 1){\n\t\t\t\tif(node.getAttribute('id') == id){\n\t\t\t\t\trtv = node;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\treturn rtv;\n\t},\n\tcreateElement :\tfunction(tagName){\n\t\tvar node = new Element();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = tagName;\n\t\tnode.tagName = tagName;\n\t\tnode.childNodes = new NodeList();\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\tcreateDocumentFragment :\tfunction(){\n\t\tvar node = new DocumentFragment();\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\treturn node;\n\t},\n\tcreateTextNode :\tfunction(data){\n\t\tvar node = new Text();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateComment :\tfunction(data){\n\t\tvar node = new Comment();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateCDATASection :\tfunction(data){\n\t\tvar node = new CDATASection();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateProcessingInstruction :\tfunction(target,data){\n\t\tvar node = new ProcessingInstruction();\n\t\tnode.ownerDocument = this;\n\t\tnode.tagName = node.target = target;\n\t\tnode.nodeValue= node.data = data;\n\t\treturn node;\n\t},\n\tcreateAttribute :\tfunction(name){\n\t\tvar node = new Attr();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.name = name;\n\t\tnode.nodeName\t= name;\n\t\tnode.localName = name;\n\t\tnode.specified = true;\n\t\treturn node;\n\t},\n\tcreateEntityReference :\tfunction(name){\n\t\tvar node = new EntityReference();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.nodeName\t= name;\n\t\treturn node;\n\t},\n\tcreateElementNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Element();\n\t\tvar pl = qualifiedName.split(':');\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tnode.childNodes = new NodeList();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.tagName = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\tcreateAttributeNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Attr();\n\t\tvar pl = qualifiedName.split(':');\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.name = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tnode.specified = true;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\treturn node;\n\t}\n};\n_extends(Document,Node);\n\n\nfunction Element() {\n\tthis._nsMap = {};\n};\nElement.prototype = {\n\tnodeType : ELEMENT_NODE,\n\thasAttribute : function(name){\n\t\treturn this.getAttributeNode(name)!=null;\n\t},\n\tgetAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name);\n\t\treturn attr && attr.value || '';\n\t},\n\tgetAttributeNode : function(name){\n\t\treturn this.attributes.getNamedItem(name);\n\t},\n\tsetAttribute : function(name, value){\n\t\tvar attr = this.ownerDocument.createAttribute(name);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tremoveAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name)\n\t\tattr && this.removeAttributeNode(attr);\n\t},\n\tappendChild:function(newChild){\n\t\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\t\treturn this.insertBefore(newChild,null);\n\t\t}else{\n\t\t\treturn _appendSingleChild(this,newChild);\n\t\t}\n\t},\n\tsetAttributeNode : function(newAttr){\n\t\treturn this.attributes.setNamedItem(newAttr);\n\t},\n\tsetAttributeNodeNS : function(newAttr){\n\t\treturn this.attributes.setNamedItemNS(newAttr);\n\t},\n\tremoveAttributeNode : function(oldAttr){\n\t\treturn this.attributes.removeNamedItem(oldAttr.nodeName);\n\t},\n\tremoveAttributeNS : function(namespaceURI, localName){\n\t\tvar old = this.getAttributeNodeNS(namespaceURI, localName);\n\t\told && this.removeAttributeNode(old);\n\t},\n\t\n\thasAttributeNS : function(namespaceURI, localName){\n\t\treturn this.getAttributeNodeNS(namespaceURI, localName)!=null;\n\t},\n\tgetAttributeNS : function(namespaceURI, localName){\n\t\tvar attr = this.getAttributeNodeNS(namespaceURI, localName);\n\t\treturn attr && attr.value || '';\n\t},\n\tsetAttributeNS : function(namespaceURI, qualifiedName, value){\n\t\tvar attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tgetAttributeNodeNS : function(namespaceURI, localName){\n\t\treturn this.attributes.getNamedItemNS(namespaceURI, localName);\n\t},\n\t\n\tgetElementsByTagName : function(tagName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n\tgetElementsByTagNameNS : function(namespaceURI, localName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t}\n};\nDocument.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;\nDocument.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;\n\n\n_extends(Element,Node);\nfunction Attr() {\n};\nAttr.prototype.nodeType = ATTRIBUTE_NODE;\n_extends(Attr,Node);\n\n\nfunction CharacterData() {\n};\nCharacterData.prototype = {\n\tdata : '',\n\tsubstringData : function(offset, count) {\n\t\treturn this.data.substring(offset, offset+count);\n\t},\n\tappendData: function(text) {\n\t\ttext = this.data+text;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t},\n\tinsertData: function(offset,text) {\n\t\tthis.replaceData(offset,0,text);\n\t\n\t},\n\tappendChild:function(newChild){\n\t\t\tthrow new Error(ExceptionMessage[3])\n\t\treturn Node.prototype.appendChild.apply(this,arguments)\n\t},\n\tdeleteData: function(offset, count) {\n\t\tthis.replaceData(offset,count,\"\");\n\t},\n\treplaceData: function(offset, count, text) {\n\t\tvar start = this.data.substring(0,offset);\n\t\tvar end = this.data.substring(offset+count);\n\t\ttext = start + text + end;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t}\n}\n_extends(CharacterData,Node);\nfunction Text() {\n};\nText.prototype = {\n\tnodeName : \"#text\",\n\tnodeType : TEXT_NODE,\n\tsplitText : function(offset) {\n\t\tvar text = this.data;\n\t\tvar newText = text.substring(offset);\n\t\ttext = text.substring(0, offset);\n\t\tthis.data = this.nodeValue = text;\n\t\tthis.length = text.length;\n\t\tvar newNode = this.ownerDocument.createTextNode(newText);\n\t\tif(this.parentNode){\n\t\t\tthis.parentNode.insertBefore(newNode, this.nextSibling);\n\t\t}\n\t\treturn newNode;\n\t}\n}\n_extends(Text,CharacterData);\nfunction Comment() {\n};\nComment.prototype = {\n\tnodeName : \"#comment\",\n\tnodeType : COMMENT_NODE\n}\n_extends(Comment,CharacterData);\n\nfunction CDATASection() {\n};\nCDATASection.prototype = {\n\tnodeName : \"#cdata-section\",\n\tnodeType : CDATA_SECTION_NODE\n}\n_extends(CDATASection,CharacterData);\n\n\nfunction DocumentType() {\n};\nDocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;\n_extends(DocumentType,Node);\n\nfunction Notation() {\n};\nNotation.prototype.nodeType = NOTATION_NODE;\n_extends(Notation,Node);\n\nfunction Entity() {\n};\nEntity.prototype.nodeType = ENTITY_NODE;\n_extends(Entity,Node);\n\nfunction EntityReference() {\n};\nEntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;\n_extends(EntityReference,Node);\n\nfunction DocumentFragment() {\n};\nDocumentFragment.prototype.nodeName =\t\"#document-fragment\";\nDocumentFragment.prototype.nodeType =\tDOCUMENT_FRAGMENT_NODE;\n_extends(DocumentFragment,Node);\n\n\nfunction ProcessingInstruction() {\n}\nProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;\n_extends(ProcessingInstruction,Node);\nfunction XMLSerializer(){}\nXMLSerializer.prototype.serializeToString = function(node){\n\tvar buf = [];\n\tserializeToString(node,buf);\n\treturn buf.join('');\n}\nNode.prototype.toString =function(){\n\treturn XMLSerializer.prototype.serializeToString(this);\n}\nfunction serializeToString(node,buf){\n\tswitch(node.nodeType){\n\tcase ELEMENT_NODE:\n\t\tvar attrs = node.attributes;\n\t\tvar len = attrs.length;\n\t\tvar child = node.firstChild;\n\t\tvar nodeName = node.tagName;\n\t\tvar isHTML = htmlns === node.namespaceURI\n\t\tbuf.push('<',nodeName);\n\t\tfor(var i=0;i<len;i++){\n\t\t\tserializeToString(attrs.item(i),buf,isHTML);\n\t\t}\n\t\tif(child || isHTML && !/^(?:meta|link|img|br|hr|input|button)$/i.test(nodeName)){\n\t\t\tbuf.push('>');\n\t\t\tif(isHTML && /^script$/i.test(nodeName)){\n\t\t\t\tif(child){\n\t\t\t\t\tbuf.push(child.data);\n\t\t\t\t}\n\t\t\t}else{\n\t\t\t\twhile(child){\n\t\t\t\t\tserializeToString(child,buf);\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuf.push('</',nodeName,'>');\n\t\t}else{\n\t\t\tbuf.push('/>');\n\t\t}\n\t\treturn;\n\tcase DOCUMENT_NODE:\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tserializeToString(child,buf);\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t\treturn;\n\tcase ATTRIBUTE_NODE:\n\t\treturn buf.push(' ',node.name,'=\"',node.value.replace(/[<&\"]/g,_xmlEncoder),'\"');\n\tcase TEXT_NODE:\n\t\treturn buf.push(node.data.replace(/[<&]/g,_xmlEncoder));\n\tcase CDATA_SECTION_NODE:\n\t\treturn buf.push( '<![CDATA[',node.data,']]>');\n\tcase COMMENT_NODE:\n\t\treturn buf.push( \"<!--\",node.data,\"-->\");\n\tcase DOCUMENT_TYPE_NODE:\n\t\tvar pubid = node.publicId;\n\t\tvar sysid = node.systemId;\n\t\tbuf.push('<!DOCTYPE ',node.name);\n\t\tif(pubid){\n\t\t\tbuf.push(' PUBLIC \"',pubid);\n\t\t\tif (sysid && sysid!='.') {\n\t\t\t\tbuf.push( '\" \"',sysid);\n\t\t\t}\n\t\t\tbuf.push('\">');\n\t\t}else if(sysid && sysid!='.'){\n\t\t\tbuf.push(' SYSTEM \"',sysid,'\">');\n\t\t}else{\n\t\t\tvar sub = node.internalSubset;\n\t\t\tif(sub){\n\t\t\t\tbuf.push(\" [\",sub,\"]\");\n\t\t\t}\n\t\t\tbuf.push(\">\");\n\t\t}\n\t\treturn;\n\tcase PROCESSING_INSTRUCTION_NODE:\n\t\treturn buf.push( \"<?\",node.target,\" \",node.data,\"?>\");\n\tcase ENTITY_REFERENCE_NODE:\n\t\treturn buf.push( '&',node.nodeName,';');\n\tdefault:\n\t\tbuf.push('??',node.nodeName);\n\t}\n}\nfunction importNode(doc,node,deep){\n\tvar node2;\n\tswitch (node.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tnode2 = node.cloneNode(false);\n\t\tnode2.ownerDocument = doc;\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tbreak;\n\tcase ATTRIBUTE_NODE:\n\t\tdeep = true;\n\t\tbreak;\n\t}\n\tif(!node2){\n\t\tnode2 = node.cloneNode(false);//false\n\t}\n\tnode2.ownerDocument = doc;\n\tnode2.parentNode = null;\n\tif(deep){\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tnode2.appendChild(importNode(doc,child,deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\nfunction cloneNode(doc,node,deep){\n\tvar node2 = new node.constructor();\n\tfor(var n in node){\n\t\tvar v = node[n];\n\t\tif(typeof v != 'object' ){\n\t\t\tif(v != node2[n]){\n\t\t\t\tnode2[n] = v;\n\t\t\t}\n\t\t}\n\t}\n\tif(node.childNodes){\n\t\tnode2.childNodes = new NodeList();\n\t}\n\tnode2.ownerDocument = doc;\n\tswitch (node2.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tvar attrs\t= node.attributes;\n\t\tvar attrs2\t= node2.attributes = new NamedNodeMap();\n\t\tvar len = attrs.length\n\t\tattrs2._ownerElement = node2;\n\t\tfor(var i=0;i<len;i++){\n\t\t\tnode2.setAttributeNode(cloneNode(doc,attrs.item(i),true));\n\t\t}\n\t\tbreak;;\n\tcase ATTRIBUTE_NODE:\n\t\tdeep = true;\n\t}\n\tif(deep){\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tnode2.appendChild(cloneNode(doc,child,deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n\nfunction __set__(object,key,value){\n\tobject[key] = value\n}\ntry{\n\tif(Object.defineProperty){\n\t\tObject.defineProperty(LiveNodeList.prototype,'length',{\n\t\t\tget:function(){\n\t\t\t\t_updateLiveList(this);\n\t\t\t\treturn this.$$length;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(Node.prototype,'textContent',{\n\t\t\tget:function(){\n\t\t\t\treturn getTextContent(this);\n\t\t\t},\n\t\t\tset:function(data){\n\t\t\t\tswitch(this.nodeType){\n\t\t\t\tcase 1:\n\t\t\t\tcase 11:\n\t\t\t\t\twhile(this.firstChild){\n\t\t\t\t\t\tthis.removeChild(this.firstChild);\n\t\t\t\t\t}\n\t\t\t\t\tif(data || String(data)){\n\t\t\t\t\t\tthis.appendChild(this.ownerDocument.createTextNode(data));\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthis.data = data;\n\t\t\t\t\tthis.value = value;\n\t\t\t\t\tthis.nodeValue = data;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\t\n\t\tfunction getTextContent(node){\n\t\t\tswitch(node.nodeType){\n\t\t\tcase 1:\n\t\t\tcase 11:\n\t\t\t\tvar buf = [];\n\t\t\t\tnode = node.firstChild;\n\t\t\t\twhile(node){\n\t\t\t\t\tif(node.nodeType!==7 && node.nodeType !==8){\n\t\t\t\t\t\tbuf.push(getTextContent(node));\n\t\t\t\t\t}\n\t\t\t\t\tnode = node.nextSibling;\n\t\t\t\t}\n\t\t\t\treturn buf.join('');\n\t\t\tdefault:\n\t\t\t\treturn node.nodeValue;\n\t\t\t}\n\t\t}\n\t\t__set__ = function(object,key,value){\n\t\t\tobject['$$'+key] = value\n\t\t}\n\t}\n}catch(e){//ie8\n}\n\nreturn DOMImplementation;\n});\n\nace.define(\"ace/mode/xml/dom-parser\",[\"require\",\"exports\",\"module\",\"ace/mode/xml/sax\",\"ace/mode/xml/dom\"], function(require, exports, module) {\n\t'use strict';\n\n\tvar XMLReader = require('./sax'),\n\t\tDOMImplementation = require('./dom');\n\nfunction DOMParser(options){\n\tthis.options = options ||{locator:{}};\n\t\n}\nDOMParser.prototype.parseFromString = function(source,mimeType){\t\n\tvar options = this.options;\n\tvar sax =  new XMLReader();\n\tvar domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler\n\tvar errorHandler = options.errorHandler;\n\tvar locator = options.locator;\n\tvar defaultNSMap = options.xmlns||{};\n\tvar entityMap = {'lt':'<','gt':'>','amp':'&','quot':'\"','apos':\"'\"}\n\tif(locator){\n\t\tdomBuilder.setDocumentLocator(locator)\n\t}\n\t\n\tsax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator);\n\tsax.domBuilder = options.domBuilder || domBuilder;\n\tif(/\\/x?html?$/.test(mimeType)){\n\t\tentityMap.nbsp = '\\xa0';\n\t\tentityMap.copy = '\\xa9';\n\t\tdefaultNSMap['']= 'http://www.w3.org/1999/xhtml';\n\t}\n\tif(source){\n\t\tsax.parse(source,defaultNSMap,entityMap);\n\t}else{\n\t\tsax.errorHandler.error(\"invalid document source\");\n\t}\n\treturn domBuilder.document;\n}\nfunction buildErrorHandler(errorImpl,domBuilder,locator){\n\tif(!errorImpl){\n\t\tif(domBuilder instanceof DOMHandler){\n\t\t\treturn domBuilder;\n\t\t}\n\t\terrorImpl = domBuilder ;\n\t}\n\tvar errorHandler = {}\n\tvar isCallback = errorImpl instanceof Function;\n\tlocator = locator||{}\n\tfunction build(key){\n\t\tvar fn = errorImpl[key];\n\t\tif(!fn){\n\t\t\tif(isCallback){\n\t\t\t\tfn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl;\n\t\t\t}else{\n\t\t\t\tvar i=arguments.length;\n\t\t\t\twhile(--i){\n\t\t\t\t\tif(fn = errorImpl[arguments[i]]){\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\terrorHandler[key] = fn && function(msg){\n\t\t\tfn(msg+_locator(locator), msg, locator);\n\t\t}||function(){};\n\t}\n\tbuild('warning','warn');\n\tbuild('error','warn','warning');\n\tbuild('fatalError','warn','warning','error');\n\treturn errorHandler;\n}\nfunction DOMHandler() {\n    this.cdata = false;\n}\nfunction position(locator,node){\n\tnode.lineNumber = locator.lineNumber;\n\tnode.columnNumber = locator.columnNumber;\n} \nDOMHandler.prototype = {\n\tstartDocument : function() {\n    \tthis.document = new DOMImplementation().createDocument(null, null, null);\n    \tif (this.locator) {\n        \tthis.document.documentURI = this.locator.systemId;\n    \t}\n\t},\n\tstartElement:function(namespaceURI, localName, qName, attrs) {\n\t\tvar doc = this.document;\n\t    var el = doc.createElementNS(namespaceURI, qName||localName);\n\t    var len = attrs.length;\n\t    appendElement(this, el);\n\t    this.currentElement = el;\n\t    \n\t\tthis.locator && position(this.locator,el)\n\t    for (var i = 0 ; i < len; i++) {\n\t        var namespaceURI = attrs.getURI(i);\n\t        var value = attrs.getValue(i);\n\t        var qName = attrs.getQName(i);\n\t\t\tvar attr = doc.createAttributeNS(namespaceURI, qName);\n\t\t\tif( attr.getOffset){\n\t\t\t\tposition(attr.getOffset(1),attr)\n\t\t\t}\n\t\t\tattr.value = attr.nodeValue = value;\n\t\t\tel.setAttributeNode(attr)\n\t    }\n\t},\n\tendElement:function(namespaceURI, localName, qName) {\n\t\tvar current = this.currentElement\n\t    var tagName = current.tagName;\n\t    this.currentElement = current.parentNode;\n\t},\n\tstartPrefixMapping:function(prefix, uri) {\n\t},\n\tendPrefixMapping:function(prefix) {\n\t},\n\tprocessingInstruction:function(target, data) {\n\t    var ins = this.document.createProcessingInstruction(target, data);\n\t    this.locator && position(this.locator,ins)\n\t    appendElement(this, ins);\n\t},\n\tignorableWhitespace:function(ch, start, length) {\n\t},\n\tcharacters:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t\tif(this.currentElement && chars){\n\t\t\tif (this.cdata) {\n\t\t\t\tvar charNode = this.document.createCDATASection(chars);\n\t\t\t\tthis.currentElement.appendChild(charNode);\n\t\t\t} else {\n\t\t\t\tvar charNode = this.document.createTextNode(chars);\n\t\t\t\tthis.currentElement.appendChild(charNode);\n\t\t\t}\n\t\t\tthis.locator && position(this.locator,charNode)\n\t\t}\n\t},\n\tskippedEntity:function(name) {\n\t},\n\tendDocument:function() {\n\t\tthis.document.normalize();\n\t},\n\tsetDocumentLocator:function (locator) {\n\t    if(this.locator = locator){// && !('lineNumber' in locator)){\n\t    \tlocator.lineNumber = 0;\n\t    }\n\t},\n\tcomment:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t    var comm = this.document.createComment(chars);\n\t    this.locator && position(this.locator,comm)\n\t    appendElement(this, comm);\n\t},\n\t\n\tstartCDATA:function() {\n\t    this.cdata = true;\n\t},\n\tendCDATA:function() {\n\t    this.cdata = false;\n\t},\n\t\n\tstartDTD:function(name, publicId, systemId) {\n\t\tvar impl = this.document.implementation;\n\t    if (impl && impl.createDocumentType) {\n\t        var dt = impl.createDocumentType(name, publicId, systemId);\n\t        this.locator && position(this.locator,dt)\n\t        appendElement(this, dt);\n\t    }\n\t},\n\twarning:function(error) {\n\t\tconsole.warn(error,_locator(this.locator));\n\t},\n\terror:function(error) {\n\t\tconsole.error(error,_locator(this.locator));\n\t},\n\tfatalError:function(error) {\n\t\tconsole.error(error,_locator(this.locator));\n\t    throw error;\n\t}\n}\nfunction _locator(l){\n\tif(l){\n\t\treturn '\\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']'\n\t}\n}\nfunction _toString(chars,start,length){\n\tif(typeof chars == 'string'){\n\t\treturn chars.substr(start,length)\n\t}else{//java sax connect width xmldom on rhino(what about: \"? && !(chars instanceof String)\")\n\t\tif(chars.length >= start+length || start){\n\t\t\treturn new java.lang.String(chars,start,length)+'';\n\t\t}\n\t\treturn chars;\n\t}\n}\n\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,function(key){\n\tDOMHandler.prototype[key] = function(){return null}\n})\nfunction appendElement (hander,node) {\n    if (!hander.currentElement) {\n        hander.document.appendChild(node);\n    } else {\n        hander.currentElement.appendChild(node);\n    }\n}//appendChild and setAttributeNS are preformance key\n\nreturn {\n\t\tDOMParser: DOMParser\n\t };\n});\n\nace.define(\"ace/mode/xml_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/worker/mirror\",\"ace/mode/xml/dom-parser\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar Mirror = require(\"../worker/mirror\").Mirror;\nvar DOMParser = require(\"./xml/dom-parser\").DOMParser;\n\nvar Worker = exports.Worker = function(sender) {\n    Mirror.call(this, sender);\n    this.setTimeout(400);\n    this.context = null;\n};\n\noop.inherits(Worker, Mirror);\n\n(function() {\n\n    this.setOptions = function(options) {\n        this.context = options.context;\n    };\n\n    this.onUpdate = function() {\n        var value = this.doc.getValue();\n        if (!value)\n            return;\n        var parser = new DOMParser();\n        var errors = [];\n        parser.options.errorHandler = {\n            fatalError: function(fullMsg, errorMsg, locator) {\n                errors.push({\n                    row: locator.lineNumber,\n                    column: locator.columnNumber,\n                    text: errorMsg,\n                    type: \"error\"\n                });\n            },\n            error: function(fullMsg, errorMsg, locator) {\n                errors.push({\n                    row: locator.lineNumber,\n                    column: locator.columnNumber,\n                    text: errorMsg,\n                    type: \"error\"\n                });\n            },\n            warning: function(fullMsg, errorMsg, locator) {\n                errors.push({\n                    row: locator.lineNumber,\n                    column: locator.columnNumber,\n                    text: errorMsg,\n                    type: \"warning\"\n                });\n            }\n        };\n        \n        parser.parseFromString(value);\n        this.sender.emit(\"error\", errors);\n    };\n\n}).call(Worker.prototype);\n\n});\n\nace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\nfunction Empty() {}\n\nif (!Function.prototype.bind) {\n    Function.prototype.bind = function bind(that) { // .length is 1\n        var target = this;\n        if (typeof target != \"function\") {\n            throw new TypeError(\"Function.prototype.bind called on incompatible \" + target);\n        }\n        var args = slice.call(arguments, 1); // for normal call\n        var bound = function () {\n\n            if (this instanceof bound) {\n\n                var result = target.apply(\n                    this,\n                    args.concat(slice.call(arguments))\n                );\n                if (Object(result) === result) {\n                    return result;\n                }\n                return this;\n\n            } else {\n                return target.apply(\n                    that,\n                    args.concat(slice.call(arguments))\n                );\n\n            }\n\n        };\n        if(target.prototype) {\n            Empty.prototype = target.prototype;\n            bound.prototype = new Empty();\n            Empty.prototype = null;\n        }\n        return bound;\n    };\n}\nvar call = Function.prototype.call;\nvar prototypeOfArray = Array.prototype;\nvar prototypeOfObject = Object.prototype;\nvar slice = prototypeOfArray.slice;\nvar _toString = call.bind(prototypeOfObject.toString);\nvar owns = call.bind(prototypeOfObject.hasOwnProperty);\nvar defineGetter;\nvar defineSetter;\nvar lookupGetter;\nvar lookupSetter;\nvar supportsAccessors;\nif ((supportsAccessors = owns(prototypeOfObject, \"__defineGetter__\"))) {\n    defineGetter = call.bind(prototypeOfObject.__defineGetter__);\n    defineSetter = call.bind(prototypeOfObject.__defineSetter__);\n    lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);\n    lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);\n}\nif ([1,2].splice(0).length != 2) {\n    if(function() { // test IE < 9 to splice bug - see issue #138\n        function makeArray(l) {\n            var a = new Array(l+2);\n            a[0] = a[1] = 0;\n            return a;\n        }\n        var array = [], lengthBefore;\n        \n        array.splice.apply(array, makeArray(20));\n        array.splice.apply(array, makeArray(26));\n\n        lengthBefore = array.length; //46\n        array.splice(5, 0, \"XXX\"); // add one element\n\n        lengthBefore + 1 == array.length\n\n        if (lengthBefore + 1 == array.length) {\n            return true;// has right splice implementation without bugs\n        }\n    }()) {//IE 6/7\n        var array_splice = Array.prototype.splice;\n        Array.prototype.splice = function(start, deleteCount) {\n            if (!arguments.length) {\n                return [];\n            } else {\n                return array_splice.apply(this, [\n                    start === void 0 ? 0 : start,\n                    deleteCount === void 0 ? (this.length - start) : deleteCount\n                ].concat(slice.call(arguments, 2)))\n            }\n        };\n    } else {//IE8\n        Array.prototype.splice = function(pos, removeCount){\n            var length = this.length;\n            if (pos > 0) {\n                if (pos > length)\n                    pos = length;\n            } else if (pos == void 0) {\n                pos = 0;\n            } else if (pos < 0) {\n                pos = Math.max(length + pos, 0);\n            }\n\n            if (!(pos+removeCount < length))\n                removeCount = length - pos;\n\n            var removed = this.slice(pos, pos+removeCount);\n            var insert = slice.call(arguments, 2);\n            var add = insert.length;            \n            if (pos === length) {\n                if (add) {\n                    this.push.apply(this, insert);\n                }\n            } else {\n                var remove = Math.min(removeCount, length - pos);\n                var tailOldPos = pos + remove;\n                var tailNewPos = tailOldPos + add - remove;\n                var tailCount = length - tailOldPos;\n                var lengthAfterRemove = length - remove;\n\n                if (tailNewPos < tailOldPos) { // case A\n                    for (var i = 0; i < tailCount; ++i) {\n                        this[tailNewPos+i] = this[tailOldPos+i];\n                    }\n                } else if (tailNewPos > tailOldPos) { // case B\n                    for (i = tailCount; i--; ) {\n                        this[tailNewPos+i] = this[tailOldPos+i];\n                    }\n                } // else, add == remove (nothing to do)\n\n                if (add && pos === lengthAfterRemove) {\n                    this.length = lengthAfterRemove; // truncate array\n                    this.push.apply(this, insert);\n                } else {\n                    this.length = lengthAfterRemove + add; // reserves space\n                    for (i = 0; i < add; ++i) {\n                        this[pos+i] = insert[i];\n                    }\n                }\n            }\n            return removed;\n        };\n    }\n}\nif (!Array.isArray) {\n    Array.isArray = function isArray(obj) {\n        return _toString(obj) == \"[object Array]\";\n    };\n}\nvar boxedString = Object(\"a\"),\n    splitString = boxedString[0] != \"a\" || !(0 in boxedString);\n\nif (!Array.prototype.forEach) {\n    Array.prototype.forEach = function forEach(fun /*, thisp*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            thisp = arguments[1],\n            i = -1,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(); // TODO message\n        }\n\n        while (++i < length) {\n            if (i in self) {\n                fun.call(thisp, self[i], i, object);\n            }\n        }\n    };\n}\nif (!Array.prototype.map) {\n    Array.prototype.map = function map(fun /*, thisp*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            result = Array(length),\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self)\n                result[i] = fun.call(thisp, self[i], i, object);\n        }\n        return result;\n    };\n}\nif (!Array.prototype.filter) {\n    Array.prototype.filter = function filter(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                    object,\n            length = self.length >>> 0,\n            result = [],\n            value,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self) {\n                value = self[i];\n                if (fun.call(thisp, value, i, object)) {\n                    result.push(value);\n                }\n            }\n        }\n        return result;\n    };\n}\nif (!Array.prototype.every) {\n    Array.prototype.every = function every(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self && !fun.call(thisp, self[i], i, object)) {\n                return false;\n            }\n        }\n        return true;\n    };\n}\nif (!Array.prototype.some) {\n    Array.prototype.some = function some(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self && fun.call(thisp, self[i], i, object)) {\n                return true;\n            }\n        }\n        return false;\n    };\n}\nif (!Array.prototype.reduce) {\n    Array.prototype.reduce = function reduce(fun /*, initial*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n        if (!length && arguments.length == 1) {\n            throw new TypeError(\"reduce of empty array with no initial value\");\n        }\n\n        var i = 0;\n        var result;\n        if (arguments.length >= 2) {\n            result = arguments[1];\n        } else {\n            do {\n                if (i in self) {\n                    result = self[i++];\n                    break;\n                }\n                if (++i >= length) {\n                    throw new TypeError(\"reduce of empty array with no initial value\");\n                }\n            } while (true);\n        }\n\n        for (; i < length; i++) {\n            if (i in self) {\n                result = fun.call(void 0, result, self[i], i, object);\n            }\n        }\n\n        return result;\n    };\n}\nif (!Array.prototype.reduceRight) {\n    Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n        if (!length && arguments.length == 1) {\n            throw new TypeError(\"reduceRight of empty array with no initial value\");\n        }\n\n        var result, i = length - 1;\n        if (arguments.length >= 2) {\n            result = arguments[1];\n        } else {\n            do {\n                if (i in self) {\n                    result = self[i--];\n                    break;\n                }\n                if (--i < 0) {\n                    throw new TypeError(\"reduceRight of empty array with no initial value\");\n                }\n            } while (true);\n        }\n\n        do {\n            if (i in this) {\n                result = fun.call(void 0, result, self[i], i, object);\n            }\n        } while (i--);\n\n        return result;\n    };\n}\nif (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {\n    Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {\n        var self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                toObject(this),\n            length = self.length >>> 0;\n\n        if (!length) {\n            return -1;\n        }\n\n        var i = 0;\n        if (arguments.length > 1) {\n            i = toInteger(arguments[1]);\n        }\n        i = i >= 0 ? i : Math.max(0, length + i);\n        for (; i < length; i++) {\n            if (i in self && self[i] === sought) {\n                return i;\n            }\n        }\n        return -1;\n    };\n}\nif (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {\n    Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {\n        var self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                toObject(this),\n            length = self.length >>> 0;\n\n        if (!length) {\n            return -1;\n        }\n        var i = length - 1;\n        if (arguments.length > 1) {\n            i = Math.min(i, toInteger(arguments[1]));\n        }\n        i = i >= 0 ? i : length - Math.abs(i);\n        for (; i >= 0; i--) {\n            if (i in self && sought === self[i]) {\n                return i;\n            }\n        }\n        return -1;\n    };\n}\nif (!Object.getPrototypeOf) {\n    Object.getPrototypeOf = function getPrototypeOf(object) {\n        return object.__proto__ || (\n            object.constructor ?\n            object.constructor.prototype :\n            prototypeOfObject\n        );\n    };\n}\nif (!Object.getOwnPropertyDescriptor) {\n    var ERR_NON_OBJECT = \"Object.getOwnPropertyDescriptor called on a \" +\n                         \"non-object: \";\n    Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n        if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n            throw new TypeError(ERR_NON_OBJECT + object);\n        if (!owns(object, property))\n            return;\n\n        var descriptor, getter, setter;\n        descriptor =  { enumerable: true, configurable: true };\n        if (supportsAccessors) {\n            var prototype = object.__proto__;\n            object.__proto__ = prototypeOfObject;\n\n            var getter = lookupGetter(object, property);\n            var setter = lookupSetter(object, property);\n            object.__proto__ = prototype;\n\n            if (getter || setter) {\n                if (getter) descriptor.get = getter;\n                if (setter) descriptor.set = setter;\n                return descriptor;\n            }\n        }\n        descriptor.value = object[property];\n        return descriptor;\n    };\n}\nif (!Object.getOwnPropertyNames) {\n    Object.getOwnPropertyNames = function getOwnPropertyNames(object) {\n        return Object.keys(object);\n    };\n}\nif (!Object.create) {\n    var createEmpty;\n    if (Object.prototype.__proto__ === null) {\n        createEmpty = function () {\n            return { \"__proto__\": null };\n        };\n    } else {\n        createEmpty = function () {\n            var empty = {};\n            for (var i in empty)\n                empty[i] = null;\n            empty.constructor =\n            empty.hasOwnProperty =\n            empty.propertyIsEnumerable =\n            empty.isPrototypeOf =\n            empty.toLocaleString =\n            empty.toString =\n            empty.valueOf =\n            empty.__proto__ = null;\n            return empty;\n        }\n    }\n\n    Object.create = function create(prototype, properties) {\n        var object;\n        if (prototype === null) {\n            object = createEmpty();\n        } else {\n            if (typeof prototype != \"object\")\n                throw new TypeError(\"typeof prototype[\"+(typeof prototype)+\"] != 'object'\");\n            var Type = function () {};\n            Type.prototype = prototype;\n            object = new Type();\n            object.__proto__ = prototype;\n        }\n        if (properties !== void 0)\n            Object.defineProperties(object, properties);\n        return object;\n    };\n}\n\nfunction doesDefinePropertyWork(object) {\n    try {\n        Object.defineProperty(object, \"sentinel\", {});\n        return \"sentinel\" in object;\n    } catch (exception) {\n    }\n}\nif (Object.defineProperty) {\n    var definePropertyWorksOnObject = doesDefinePropertyWork({});\n    var definePropertyWorksOnDom = typeof document == \"undefined\" ||\n        doesDefinePropertyWork(document.createElement(\"div\"));\n    if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {\n        var definePropertyFallback = Object.defineProperty;\n    }\n}\n\nif (!Object.defineProperty || definePropertyFallback) {\n    var ERR_NON_OBJECT_DESCRIPTOR = \"Property description must be an object: \";\n    var ERR_NON_OBJECT_TARGET = \"Object.defineProperty called on non-object: \"\n    var ERR_ACCESSORS_NOT_SUPPORTED = \"getters & setters can not be defined \" +\n                                      \"on this javascript engine\";\n\n    Object.defineProperty = function defineProperty(object, property, descriptor) {\n        if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n            throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n        if ((typeof descriptor != \"object\" && typeof descriptor != \"function\") || descriptor === null)\n            throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n        if (definePropertyFallback) {\n            try {\n                return definePropertyFallback.call(Object, object, property, descriptor);\n            } catch (exception) {\n            }\n        }\n        if (owns(descriptor, \"value\")) {\n\n            if (supportsAccessors && (lookupGetter(object, property) ||\n                                      lookupSetter(object, property)))\n            {\n                var prototype = object.__proto__;\n                object.__proto__ = prototypeOfObject;\n                delete object[property];\n                object[property] = descriptor.value;\n                object.__proto__ = prototype;\n            } else {\n                object[property] = descriptor.value;\n            }\n        } else {\n            if (!supportsAccessors)\n                throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n            if (owns(descriptor, \"get\"))\n                defineGetter(object, property, descriptor.get);\n            if (owns(descriptor, \"set\"))\n                defineSetter(object, property, descriptor.set);\n        }\n\n        return object;\n    };\n}\nif (!Object.defineProperties) {\n    Object.defineProperties = function defineProperties(object, properties) {\n        for (var property in properties) {\n            if (owns(properties, property))\n                Object.defineProperty(object, property, properties[property]);\n        }\n        return object;\n    };\n}\nif (!Object.seal) {\n    Object.seal = function seal(object) {\n        return object;\n    };\n}\nif (!Object.freeze) {\n    Object.freeze = function freeze(object) {\n        return object;\n    };\n}\ntry {\n    Object.freeze(function () {});\n} catch (exception) {\n    Object.freeze = (function freeze(freezeObject) {\n        return function freeze(object) {\n            if (typeof object == \"function\") {\n                return object;\n            } else {\n                return freezeObject(object);\n            }\n        };\n    })(Object.freeze);\n}\nif (!Object.preventExtensions) {\n    Object.preventExtensions = function preventExtensions(object) {\n        return object;\n    };\n}\nif (!Object.isSealed) {\n    Object.isSealed = function isSealed(object) {\n        return false;\n    };\n}\nif (!Object.isFrozen) {\n    Object.isFrozen = function isFrozen(object) {\n        return false;\n    };\n}\nif (!Object.isExtensible) {\n    Object.isExtensible = function isExtensible(object) {\n        if (Object(object) === object) {\n            throw new TypeError(); // TODO message\n        }\n        var name = '';\n        while (owns(object, name)) {\n            name += '?';\n        }\n        object[name] = true;\n        var returnValue = owns(object, name);\n        delete object[name];\n        return returnValue;\n    };\n}\nif (!Object.keys) {\n    var hasDontEnumBug = true,\n        dontEnums = [\n            \"toString\",\n            \"toLocaleString\",\n            \"valueOf\",\n            \"hasOwnProperty\",\n            \"isPrototypeOf\",\n            \"propertyIsEnumerable\",\n            \"constructor\"\n        ],\n        dontEnumsLength = dontEnums.length;\n\n    for (var key in {\"toString\": null}) {\n        hasDontEnumBug = false;\n    }\n\n    Object.keys = function keys(object) {\n\n        if (\n            (typeof object != \"object\" && typeof object != \"function\") ||\n            object === null\n        ) {\n            throw new TypeError(\"Object.keys called on a non-object\");\n        }\n\n        var keys = [];\n        for (var name in object) {\n            if (owns(object, name)) {\n                keys.push(name);\n            }\n        }\n\n        if (hasDontEnumBug) {\n            for (var i = 0, ii = dontEnumsLength; i < ii; i++) {\n                var dontEnum = dontEnums[i];\n                if (owns(object, dontEnum)) {\n                    keys.push(dontEnum);\n                }\n            }\n        }\n        return keys;\n    };\n\n}\nif (!Date.now) {\n    Date.now = function now() {\n        return new Date().getTime();\n    };\n}\nvar ws = \"\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\" +\n    \"\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\" +\n    \"\\u2029\\uFEFF\";\nif (!String.prototype.trim || ws.trim()) {\n    ws = \"[\" + ws + \"]\";\n    var trimBeginRegexp = new RegExp(\"^\" + ws + ws + \"*\"),\n        trimEndRegexp = new RegExp(ws + ws + \"*$\");\n    String.prototype.trim = function trim() {\n        return String(this).replace(trimBeginRegexp, \"\").replace(trimEndRegexp, \"\");\n    };\n}\n\nfunction toInteger(n) {\n    n = +n;\n    if (n !== n) { // isNaN\n        n = 0;\n    } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {\n        n = (n > 0 || -1) * Math.floor(Math.abs(n));\n    }\n    return n;\n}\n\nfunction isPrimitive(input) {\n    var type = typeof input;\n    return (\n        input === null ||\n        type === \"undefined\" ||\n        type === \"boolean\" ||\n        type === \"number\" ||\n        type === \"string\"\n    );\n}\n\nfunction toPrimitive(input) {\n    var val, valueOf, toString;\n    if (isPrimitive(input)) {\n        return input;\n    }\n    valueOf = input.valueOf;\n    if (typeof valueOf === \"function\") {\n        val = valueOf.call(input);\n        if (isPrimitive(val)) {\n            return val;\n        }\n    }\n    toString = input.toString;\n    if (typeof toString === \"function\") {\n        val = toString.call(input);\n        if (isPrimitive(val)) {\n            return val;\n        }\n    }\n    throw new TypeError();\n}\nvar toObject = function (o) {\n    if (o == null) { // this matches both null and undefined\n        throw new TypeError(\"can't convert \"+o+\" to object\");\n    }\n    return Object(o);\n};\n\n});\n"
  },
  {
    "path": "lib/src-noconflict/worker-xquery.js",
    "content": "\"no use strict\";\n;(function(window) {\nif (typeof window.window != \"undefined\" && window.document)\n    return;\nif (window.require && window.define)\n    return;\n\nif (!window.console) {\n    window.console = function() {\n        var msgs = Array.prototype.slice.call(arguments, 0);\n        postMessage({type: \"log\", data: msgs});\n    };\n    window.console.error =\n    window.console.warn = \n    window.console.log =\n    window.console.trace = window.console;\n}\nwindow.window = window;\nwindow.ace = window;\n\nwindow.onerror = function(message, file, line, col, err) {\n    postMessage({type: \"error\", data: {\n        message: message,\n        data: err.data,\n        file: file,\n        line: line, \n        col: col,\n        stack: err.stack\n    }});\n};\n\nwindow.normalizeModule = function(parentId, moduleName) {\n    // normalize plugin requires\n    if (moduleName.indexOf(\"!\") !== -1) {\n        var chunks = moduleName.split(\"!\");\n        return window.normalizeModule(parentId, chunks[0]) + \"!\" + window.normalizeModule(parentId, chunks[1]);\n    }\n    // normalize relative requires\n    if (moduleName.charAt(0) == \".\") {\n        var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n        moduleName = (base ? base + \"/\" : \"\") + moduleName;\n        \n        while (moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n            var previous = moduleName;\n            moduleName = moduleName.replace(/^\\.\\//, \"\").replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n        }\n    }\n    \n    return moduleName;\n};\n\nwindow.require = function require(parentId, id) {\n    if (!id) {\n        id = parentId;\n        parentId = null;\n    }\n    if (!id.charAt)\n        throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");\n\n    id = window.normalizeModule(parentId, id);\n\n    var module = window.require.modules[id];\n    if (module) {\n        if (!module.initialized) {\n            module.initialized = true;\n            module.exports = module.factory().exports;\n        }\n        return module.exports;\n    }\n   \n    if (!window.require.tlns)\n        return console.log(\"unable to load \" + id);\n    \n    var path = resolveModuleId(id, window.require.tlns);\n    if (path.slice(-3) != \".js\") path += \".js\";\n    \n    window.require.id = id;\n    window.require.modules[id] = {}; // prevent infinite loop on broken modules\n    importScripts(path);\n    return window.require(parentId, id);\n};\nfunction resolveModuleId(id, paths) {\n    var testPath = id, tail = \"\";\n    while (testPath) {\n        var alias = paths[testPath];\n        if (typeof alias == \"string\") {\n            return alias + tail;\n        } else if (alias) {\n            return  alias.location.replace(/\\/*$/, \"/\") + (tail || alias.main || alias.name);\n        } else if (alias === false) {\n            return \"\";\n        }\n        var i = testPath.lastIndexOf(\"/\");\n        if (i === -1) break;\n        tail = testPath.substr(i) + tail;\n        testPath = testPath.slice(0, i);\n    }\n    return id;\n}\nwindow.require.modules = {};\nwindow.require.tlns = {};\n\nwindow.define = function(id, deps, factory) {\n    if (arguments.length == 2) {\n        factory = deps;\n        if (typeof id != \"string\") {\n            deps = id;\n            id = window.require.id;\n        }\n    } else if (arguments.length == 1) {\n        factory = id;\n        deps = [];\n        id = window.require.id;\n    }\n    \n    if (typeof factory != \"function\") {\n        window.require.modules[id] = {\n            exports: factory,\n            initialized: true\n        };\n        return;\n    }\n\n    if (!deps.length)\n        // If there is no dependencies, we inject \"require\", \"exports\" and\n        // \"module\" as dependencies, to provide CommonJS compatibility.\n        deps = [\"require\", \"exports\", \"module\"];\n\n    var req = function(childId) {\n        return window.require(id, childId);\n    };\n\n    window.require.modules[id] = {\n        exports: {},\n        factory: function() {\n            var module = this;\n            var returnExports = factory.apply(this, deps.map(function(dep) {\n                switch (dep) {\n                    // Because \"require\", \"exports\" and \"module\" aren't actual\n                    // dependencies, we must handle them seperately.\n                    case \"require\": return req;\n                    case \"exports\": return module.exports;\n                    case \"module\":  return module;\n                    // But for all other dependencies, we can just go ahead and\n                    // require them.\n                    default:        return req(dep);\n                }\n            }));\n            if (returnExports)\n                module.exports = returnExports;\n            return module;\n        }\n    };\n};\nwindow.define.amd = {};\nrequire.tlns = {};\nwindow.initBaseUrls  = function initBaseUrls(topLevelNamespaces) {\n    for (var i in topLevelNamespaces)\n        require.tlns[i] = topLevelNamespaces[i];\n};\n\nwindow.initSender = function initSender() {\n\n    var EventEmitter = window.require(\"ace/lib/event_emitter\").EventEmitter;\n    var oop = window.require(\"ace/lib/oop\");\n    \n    var Sender = function() {};\n    \n    (function() {\n        \n        oop.implement(this, EventEmitter);\n                \n        this.callback = function(data, callbackId) {\n            postMessage({\n                type: \"call\",\n                id: callbackId,\n                data: data\n            });\n        };\n    \n        this.emit = function(name, data) {\n            postMessage({\n                type: \"event\",\n                name: name,\n                data: data\n            });\n        };\n        \n    }).call(Sender.prototype);\n    \n    return new Sender();\n};\n\nvar main = window.main = null;\nvar sender = window.sender = null;\n\nwindow.onmessage = function(e) {\n    var msg = e.data;\n    if (msg.event && sender) {\n        sender._signal(msg.event, msg.data);\n    }\n    else if (msg.command) {\n        if (main[msg.command])\n            main[msg.command].apply(main, msg.args);\n        else if (window[msg.command])\n            window[msg.command].apply(window, msg.args);\n        else\n            throw new Error(\"Unknown command:\" + msg.command);\n    }\n    else if (msg.init) {\n        window.initBaseUrls(msg.tlns);\n        require(\"ace/lib/es5-shim\");\n        sender = window.sender = window.initSender();\n        var clazz = require(msg.module)[msg.classname];\n        main = window.main = new clazz(sender);\n    }\n};\n})(this);\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.inherits = function(ctor, superCtor) {\n    ctor.super_ = superCtor;\n    ctor.prototype = Object.create(superCtor.prototype, {\n        constructor: {\n            value: ctor,\n            enumerable: false,\n            writable: true,\n            configurable: true\n        }\n    });\n};\n\nexports.mixin = function(obj, mixin) {\n    for (var key in mixin) {\n        obj[key] = mixin[key];\n    }\n    return obj;\n};\n\nexports.implement = function(proto, mixin) {\n    exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/range\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\nvar comparePoints = function(p1, p2) {\n    return p1.row - p2.row || p1.column - p2.column;\n};\nvar Range = function(startRow, startColumn, endRow, endColumn) {\n    this.start = {\n        row: startRow,\n        column: startColumn\n    };\n\n    this.end = {\n        row: endRow,\n        column: endColumn\n    };\n};\n\n(function() {\n    this.isEqual = function(range) {\n        return this.start.row === range.start.row &&\n            this.end.row === range.end.row &&\n            this.start.column === range.start.column &&\n            this.end.column === range.end.column;\n    };\n    this.toString = function() {\n        return (\"Range: [\" + this.start.row + \"/\" + this.start.column +\n            \"] -> [\" + this.end.row + \"/\" + this.end.column + \"]\");\n    };\n\n    this.contains = function(row, column) {\n        return this.compare(row, column) == 0;\n    };\n    this.compareRange = function(range) {\n        var cmp,\n            end = range.end,\n            start = range.start;\n\n        cmp = this.compare(end.row, end.column);\n        if (cmp == 1) {\n            cmp = this.compare(start.row, start.column);\n            if (cmp == 1) {\n                return 2;\n            } else if (cmp == 0) {\n                return 1;\n            } else {\n                return 0;\n            }\n        } else if (cmp == -1) {\n            return -2;\n        } else {\n            cmp = this.compare(start.row, start.column);\n            if (cmp == -1) {\n                return -1;\n            } else if (cmp == 1) {\n                return 42;\n            } else {\n                return 0;\n            }\n        }\n    };\n    this.comparePoint = function(p) {\n        return this.compare(p.row, p.column);\n    };\n    this.containsRange = function(range) {\n        return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n    };\n    this.intersects = function(range) {\n        var cmp = this.compareRange(range);\n        return (cmp == -1 || cmp == 0 || cmp == 1);\n    };\n    this.isEnd = function(row, column) {\n        return this.end.row == row && this.end.column == column;\n    };\n    this.isStart = function(row, column) {\n        return this.start.row == row && this.start.column == column;\n    };\n    this.setStart = function(row, column) {\n        if (typeof row == \"object\") {\n            this.start.column = row.column;\n            this.start.row = row.row;\n        } else {\n            this.start.row = row;\n            this.start.column = column;\n        }\n    };\n    this.setEnd = function(row, column) {\n        if (typeof row == \"object\") {\n            this.end.column = row.column;\n            this.end.row = row.row;\n        } else {\n            this.end.row = row;\n            this.end.column = column;\n        }\n    };\n    this.inside = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isEnd(row, column) || this.isStart(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.insideStart = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isEnd(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.insideEnd = function(row, column) {\n        if (this.compare(row, column) == 0) {\n            if (this.isStart(row, column)) {\n                return false;\n            } else {\n                return true;\n            }\n        }\n        return false;\n    };\n    this.compare = function(row, column) {\n        if (!this.isMultiLine()) {\n            if (row === this.start.row) {\n                return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n            }\n        }\n\n        if (row < this.start.row)\n            return -1;\n\n        if (row > this.end.row)\n            return 1;\n\n        if (this.start.row === row)\n            return column >= this.start.column ? 0 : -1;\n\n        if (this.end.row === row)\n            return column <= this.end.column ? 0 : 1;\n\n        return 0;\n    };\n    this.compareStart = function(row, column) {\n        if (this.start.row == row && this.start.column == column) {\n            return -1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.compareEnd = function(row, column) {\n        if (this.end.row == row && this.end.column == column) {\n            return 1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.compareInside = function(row, column) {\n        if (this.end.row == row && this.end.column == column) {\n            return 1;\n        } else if (this.start.row == row && this.start.column == column) {\n            return -1;\n        } else {\n            return this.compare(row, column);\n        }\n    };\n    this.clipRows = function(firstRow, lastRow) {\n        if (this.end.row > lastRow)\n            var end = {row: lastRow + 1, column: 0};\n        else if (this.end.row < firstRow)\n            var end = {row: firstRow, column: 0};\n\n        if (this.start.row > lastRow)\n            var start = {row: lastRow + 1, column: 0};\n        else if (this.start.row < firstRow)\n            var start = {row: firstRow, column: 0};\n\n        return Range.fromPoints(start || this.start, end || this.end);\n    };\n    this.extend = function(row, column) {\n        var cmp = this.compare(row, column);\n\n        if (cmp == 0)\n            return this;\n        else if (cmp == -1)\n            var start = {row: row, column: column};\n        else\n            var end = {row: row, column: column};\n\n        return Range.fromPoints(start || this.start, end || this.end);\n    };\n\n    this.isEmpty = function() {\n        return (this.start.row === this.end.row && this.start.column === this.end.column);\n    };\n    this.isMultiLine = function() {\n        return (this.start.row !== this.end.row);\n    };\n    this.clone = function() {\n        return Range.fromPoints(this.start, this.end);\n    };\n    this.collapseRows = function() {\n        if (this.end.column == 0)\n            return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)\n        else\n            return new Range(this.start.row, 0, this.end.row, 0)\n    };\n    this.toScreenRange = function(session) {\n        var screenPosStart = session.documentToScreenPosition(this.start);\n        var screenPosEnd = session.documentToScreenPosition(this.end);\n\n        return new Range(\n            screenPosStart.row, screenPosStart.column,\n            screenPosEnd.row, screenPosEnd.column\n        );\n    };\n    this.moveBy = function(row, column) {\n        this.start.row += row;\n        this.start.column += column;\n        this.end.row += row;\n        this.end.column += column;\n    };\n\n}).call(Range.prototype);\nRange.fromPoints = function(start, end) {\n    return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\n\nRange.comparePoints = function(p1, p2) {\n    return p1.row - p2.row || p1.column - p2.column;\n};\n\n\nexports.Range = Range;\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nfunction throwDeltaError(delta, errorText){\n    console.log(\"Invalid Delta:\", delta);\n    throw \"Invalid Delta: \" + errorText;\n}\n\nfunction positionInDocument(docLines, position) {\n    return position.row    >= 0 && position.row    <  docLines.length &&\n           position.column >= 0 && position.column <= docLines[position.row].length;\n}\n\nfunction validateDelta(docLines, delta) {\n    if (delta.action != \"insert\" && delta.action != \"remove\")\n        throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n    if (!(delta.lines instanceof Array))\n        throwDeltaError(delta, \"delta.lines must be an Array\");\n    if (!delta.start || !delta.end)\n       throwDeltaError(delta, \"delta.start/end must be an present\");\n    var start = delta.start;\n    if (!positionInDocument(docLines, delta.start))\n        throwDeltaError(delta, \"delta.start must be contained in document\");\n    var end = delta.end;\n    if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n        throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n    var numRangeRows = end.row - start.row;\n    var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n    if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n        throwDeltaError(delta, \"delta.range must match delta lines\");\n}\n\nexports.applyDelta = function(docLines, delta, doNotValidate) {\n    \n    var row = delta.start.row;\n    var startColumn = delta.start.column;\n    var line = docLines[row] || \"\";\n    switch (delta.action) {\n        case \"insert\":\n            var lines = delta.lines;\n            if (lines.length === 1) {\n                docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n            } else {\n                var args = [row, 1].concat(delta.lines);\n                docLines.splice.apply(docLines, args);\n                docLines[row] = line.substring(0, startColumn) + docLines[row];\n                docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n            }\n            break;\n        case \"remove\":\n            var endColumn = delta.end.column;\n            var endRow = delta.end.row;\n            if (row === endRow) {\n                docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n            } else {\n                docLines.splice(\n                    row, endRow - row + 1,\n                    line.substring(0, startColumn) + docLines[endRow].substring(endColumn)\n                );\n            }\n            break;\n    }\n}\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nvar EventEmitter = {};\nvar stopPropagation = function() { this.propagationStopped = true; };\nvar preventDefault = function() { this.defaultPrevented = true; };\n\nEventEmitter._emit =\nEventEmitter._dispatchEvent = function(eventName, e) {\n    this._eventRegistry || (this._eventRegistry = {});\n    this._defaultHandlers || (this._defaultHandlers = {});\n\n    var listeners = this._eventRegistry[eventName] || [];\n    var defaultHandler = this._defaultHandlers[eventName];\n    if (!listeners.length && !defaultHandler)\n        return;\n\n    if (typeof e != \"object\" || !e)\n        e = {};\n\n    if (!e.type)\n        e.type = eventName;\n    if (!e.stopPropagation)\n        e.stopPropagation = stopPropagation;\n    if (!e.preventDefault)\n        e.preventDefault = preventDefault;\n\n    listeners = listeners.slice();\n    for (var i=0; i<listeners.length; i++) {\n        listeners[i](e, this);\n        if (e.propagationStopped)\n            break;\n    }\n    \n    if (defaultHandler && !e.defaultPrevented)\n        return defaultHandler(e, this);\n};\n\n\nEventEmitter._signal = function(eventName, e) {\n    var listeners = (this._eventRegistry || {})[eventName];\n    if (!listeners)\n        return;\n    listeners = listeners.slice();\n    for (var i=0; i<listeners.length; i++)\n        listeners[i](e, this);\n};\n\nEventEmitter.once = function(eventName, callback) {\n    var _self = this;\n    callback && this.addEventListener(eventName, function newCallback() {\n        _self.removeEventListener(eventName, newCallback);\n        callback.apply(null, arguments);\n    });\n};\n\n\nEventEmitter.setDefaultHandler = function(eventName, callback) {\n    var handlers = this._defaultHandlers\n    if (!handlers)\n        handlers = this._defaultHandlers = {_disabled_: {}};\n    \n    if (handlers[eventName]) {\n        var old = handlers[eventName];\n        var disabled = handlers._disabled_[eventName];\n        if (!disabled)\n            handlers._disabled_[eventName] = disabled = [];\n        disabled.push(old);\n        var i = disabled.indexOf(callback);\n        if (i != -1) \n            disabled.splice(i, 1);\n    }\n    handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function(eventName, callback) {\n    var handlers = this._defaultHandlers\n    if (!handlers)\n        return;\n    var disabled = handlers._disabled_[eventName];\n    \n    if (handlers[eventName] == callback) {\n        var old = handlers[eventName];\n        if (disabled)\n            this.setDefaultHandler(eventName, disabled.pop());\n    } else if (disabled) {\n        var i = disabled.indexOf(callback);\n        if (i != -1)\n            disabled.splice(i, 1);\n    }\n};\n\nEventEmitter.on =\nEventEmitter.addEventListener = function(eventName, callback, capturing) {\n    this._eventRegistry = this._eventRegistry || {};\n\n    var listeners = this._eventRegistry[eventName];\n    if (!listeners)\n        listeners = this._eventRegistry[eventName] = [];\n\n    if (listeners.indexOf(callback) == -1)\n        listeners[capturing ? \"unshift\" : \"push\"](callback);\n    return callback;\n};\n\nEventEmitter.off =\nEventEmitter.removeListener =\nEventEmitter.removeEventListener = function(eventName, callback) {\n    this._eventRegistry = this._eventRegistry || {};\n\n    var listeners = this._eventRegistry[eventName];\n    if (!listeners)\n        return;\n\n    var index = listeners.indexOf(callback);\n    if (index !== -1)\n        listeners.splice(index, 1);\n};\n\nEventEmitter.removeAllListeners = function(eventName) {\n    if (this._eventRegistry) this._eventRegistry[eventName] = [];\n};\n\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\n\nvar Anchor = exports.Anchor = function(doc, row, column) {\n    this.$onChange = this.onChange.bind(this);\n    this.attach(doc);\n    \n    if (typeof column == \"undefined\")\n        this.setPosition(row.row, row.column);\n    else\n        this.setPosition(row, column);\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n    this.getPosition = function() {\n        return this.$clipPositionToDocument(this.row, this.column);\n    };\n    this.getDocument = function() {\n        return this.document;\n    };\n    this.$insertRight = false;\n    this.onChange = function(delta) {\n        if (delta.start.row == delta.end.row && delta.start.row != this.row)\n            return;\n\n        if (delta.start.row > this.row)\n            return;\n            \n        var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight);\n        this.setPosition(point.row, point.column, true);\n    };\n    \n    function $pointsInOrder(point1, point2, equalPointsInOrder) {\n        var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n        return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n    }\n            \n    function $getTransformedPoint(delta, point, moveIfEqual) {\n        var deltaIsInsert = delta.action == \"insert\";\n        var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row    - delta.start.row);\n        var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n        var deltaStart = delta.start;\n        var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n        if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n            return {\n                row: point.row,\n                column: point.column\n            };\n        }\n        if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n            return {\n                row: point.row + deltaRowShift,\n                column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n            };\n        }\n        \n        return {\n            row: deltaStart.row,\n            column: deltaStart.column\n        };\n    }\n    this.setPosition = function(row, column, noClip) {\n        var pos;\n        if (noClip) {\n            pos = {\n                row: row,\n                column: column\n            };\n        } else {\n            pos = this.$clipPositionToDocument(row, column);\n        }\n\n        if (this.row == pos.row && this.column == pos.column)\n            return;\n\n        var old = {\n            row: this.row,\n            column: this.column\n        };\n\n        this.row = pos.row;\n        this.column = pos.column;\n        this._signal(\"change\", {\n            old: old,\n            value: pos\n        });\n    };\n    this.detach = function() {\n        this.document.removeEventListener(\"change\", this.$onChange);\n    };\n    this.attach = function(doc) {\n        this.document = doc || this.document;\n        this.document.on(\"change\", this.$onChange);\n    };\n    this.$clipPositionToDocument = function(row, column) {\n        var pos = {};\n\n        if (row >= this.document.getLength()) {\n            pos.row = Math.max(0, this.document.getLength() - 1);\n            pos.column = this.document.getLine(pos.row).length;\n        }\n        else if (row < 0) {\n            pos.row = 0;\n            pos.column = 0;\n        }\n        else {\n            pos.row = row;\n            pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n        }\n\n        if (column < 0)\n            pos.column = 0;\n\n        return pos;\n    };\n\n}).call(Anchor.prototype);\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar applyDelta = require(\"./apply_delta\").applyDelta;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\n\nvar Document = function(textOrLines) {\n    this.$lines = [\"\"];\n    if (textOrLines.length === 0) {\n        this.$lines = [\"\"];\n    } else if (Array.isArray(textOrLines)) {\n        this.insertMergedLines({row: 0, column: 0}, textOrLines);\n    } else {\n        this.insert({row: 0, column:0}, textOrLines);\n    }\n};\n\n(function() {\n\n    oop.implement(this, EventEmitter);\n    this.setValue = function(text) {\n        var len = this.getLength() - 1;\n        this.remove(new Range(0, 0, len, this.getLine(len).length));\n        this.insert({row: 0, column: 0}, text);\n    };\n    this.getValue = function() {\n        return this.getAllLines().join(this.getNewLineCharacter());\n    };\n    this.createAnchor = function(row, column) {\n        return new Anchor(this, row, column);\n    };\n    if (\"aaa\".split(/a/).length === 0) {\n        this.$split = function(text) {\n            return text.replace(/\\r\\n|\\r/g, \"\\n\").split(\"\\n\");\n        };\n    } else {\n        this.$split = function(text) {\n            return text.split(/\\r\\n|\\r|\\n/);\n        };\n    }\n\n\n    this.$detectNewLine = function(text) {\n        var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n        this.$autoNewLine = match ? match[1] : \"\\n\";\n        this._signal(\"changeNewLineMode\");\n    };\n    this.getNewLineCharacter = function() {\n        switch (this.$newLineMode) {\n          case \"windows\":\n            return \"\\r\\n\";\n          case \"unix\":\n            return \"\\n\";\n          default:\n            return this.$autoNewLine || \"\\n\";\n        }\n    };\n\n    this.$autoNewLine = \"\";\n    this.$newLineMode = \"auto\";\n    this.setNewLineMode = function(newLineMode) {\n        if (this.$newLineMode === newLineMode)\n            return;\n\n        this.$newLineMode = newLineMode;\n        this._signal(\"changeNewLineMode\");\n    };\n    this.getNewLineMode = function() {\n        return this.$newLineMode;\n    };\n    this.isNewLine = function(text) {\n        return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n    };\n    this.getLine = function(row) {\n        return this.$lines[row] || \"\";\n    };\n    this.getLines = function(firstRow, lastRow) {\n        return this.$lines.slice(firstRow, lastRow + 1);\n    };\n    this.getAllLines = function() {\n        return this.getLines(0, this.getLength());\n    };\n    this.getLength = function() {\n        return this.$lines.length;\n    };\n    this.getTextRange = function(range) {\n        return this.getLinesForRange(range).join(this.getNewLineCharacter());\n    };\n    this.getLinesForRange = function(range) {\n        var lines;\n        if (range.start.row === range.end.row) {\n            lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n        } else {\n            lines = this.getLines(range.start.row, range.end.row);\n            lines[0] = (lines[0] || \"\").substring(range.start.column);\n            var l = lines.length - 1;\n            if (range.end.row - range.start.row == l)\n                lines[l] = lines[l].substring(0, range.end.column);\n        }\n        return lines;\n    };\n    this.insertLines = function(row, lines) {\n        console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n        return this.insertFullLines(row, lines);\n    };\n    this.removeLines = function(firstRow, lastRow) {\n        console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n        return this.removeFullLines(firstRow, lastRow);\n    };\n    this.insertNewLine = function(position) {\n        console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n        return this.insertMergedLines(position, [\"\", \"\"]);\n    };\n    this.insert = function(position, text) {\n        if (this.getLength() <= 1)\n            this.$detectNewLine(text);\n        \n        return this.insertMergedLines(position, this.$split(text));\n    };\n    this.insertInLine = function(position, text) {\n        var start = this.clippedPos(position.row, position.column);\n        var end = this.pos(position.row, position.column + text.length);\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"insert\",\n            lines: [text]\n        }, true);\n        \n        return this.clonePos(end);\n    };\n    \n    this.clippedPos = function(row, column) {\n        var length = this.getLength();\n        if (row === undefined) {\n            row = length;\n        } else if (row < 0) {\n            row = 0;\n        } else if (row >= length) {\n            row = length - 1;\n            column = undefined;\n        }\n        var line = this.getLine(row);\n        if (column == undefined)\n            column = line.length;\n        column = Math.min(Math.max(column, 0), line.length);\n        return {row: row, column: column};\n    };\n    \n    this.clonePos = function(pos) {\n        return {row: pos.row, column: pos.column};\n    };\n    \n    this.pos = function(row, column) {\n        return {row: row, column: column};\n    };\n    \n    this.$clipPosition = function(position) {\n        var length = this.getLength();\n        if (position.row >= length) {\n            position.row = Math.max(0, length - 1);\n            position.column = this.getLine(length - 1).length;\n        } else {\n            position.row = Math.max(0, position.row);\n            position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n        }\n        return position;\n    };\n    this.insertFullLines = function(row, lines) {\n        row = Math.min(Math.max(row, 0), this.getLength());\n        var column = 0;\n        if (row < this.getLength()) {\n            lines = lines.concat([\"\"]);\n            column = 0;\n        } else {\n            lines = [\"\"].concat(lines);\n            row--;\n            column = this.$lines[row].length;\n        }\n        this.insertMergedLines({row: row, column: column}, lines);\n    };    \n    this.insertMergedLines = function(position, lines) {\n        var start = this.clippedPos(position.row, position.column);\n        var end = {\n            row: start.row + lines.length - 1,\n            column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n        };\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"insert\",\n            lines: lines\n        });\n        \n        return this.clonePos(end);\n    };\n    this.remove = function(range) {\n        var start = this.clippedPos(range.start.row, range.start.column);\n        var end = this.clippedPos(range.end.row, range.end.column);\n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"remove\",\n            lines: this.getLinesForRange({start: start, end: end})\n        });\n        return this.clonePos(start);\n    };\n    this.removeInLine = function(row, startColumn, endColumn) {\n        var start = this.clippedPos(row, startColumn);\n        var end = this.clippedPos(row, endColumn);\n        \n        this.applyDelta({\n            start: start,\n            end: end,\n            action: \"remove\",\n            lines: this.getLinesForRange({start: start, end: end})\n        }, true);\n        \n        return this.clonePos(start);\n    };\n    this.removeFullLines = function(firstRow, lastRow) {\n        firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n        lastRow  = Math.min(Math.max(0, lastRow ), this.getLength() - 1);\n        var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n        var deleteLastNewLine  = lastRow  < this.getLength() - 1;\n        var startRow = ( deleteFirstNewLine ? firstRow - 1                  : firstRow                    );\n        var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0                           );\n        var endRow   = ( deleteLastNewLine  ? lastRow + 1                   : lastRow                     );\n        var endCol   = ( deleteLastNewLine  ? 0                             : this.getLine(endRow).length ); \n        var range = new Range(startRow, startCol, endRow, endCol);\n        var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n        \n        this.applyDelta({\n            start: range.start,\n            end: range.end,\n            action: \"remove\",\n            lines: this.getLinesForRange(range)\n        });\n        return deletedLines;\n    };\n    this.removeNewLine = function(row) {\n        if (row < this.getLength() - 1 && row >= 0) {\n            this.applyDelta({\n                start: this.pos(row, this.getLine(row).length),\n                end: this.pos(row + 1, 0),\n                action: \"remove\",\n                lines: [\"\", \"\"]\n            });\n        }\n    };\n    this.replace = function(range, text) {\n        if (!(range instanceof Range))\n            range = Range.fromPoints(range.start, range.end);\n        if (text.length === 0 && range.isEmpty())\n            return range.start;\n        if (text == this.getTextRange(range))\n            return range.end;\n\n        this.remove(range);\n        var end;\n        if (text) {\n            end = this.insert(range.start, text);\n        }\n        else {\n            end = range.start;\n        }\n        \n        return end;\n    };\n    this.applyDeltas = function(deltas) {\n        for (var i=0; i<deltas.length; i++) {\n            this.applyDelta(deltas[i]);\n        }\n    };\n    this.revertDeltas = function(deltas) {\n        for (var i=deltas.length-1; i>=0; i--) {\n            this.revertDelta(deltas[i]);\n        }\n    };\n    this.applyDelta = function(delta, doNotValidate) {\n        var isInsert = delta.action == \"insert\";\n        if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n            : !Range.comparePoints(delta.start, delta.end)) {\n            return;\n        }\n        \n        if (isInsert && delta.lines.length > 20000)\n            this.$splitAndapplyLargeDelta(delta, 20000);\n        applyDelta(this.$lines, delta, doNotValidate);\n        this._signal(\"change\", delta);\n    };\n    \n    this.$splitAndapplyLargeDelta = function(delta, MAX) {\n        var lines = delta.lines;\n        var l = lines.length;\n        var row = delta.start.row; \n        var column = delta.start.column;\n        var from = 0, to = 0;\n        do {\n            from = to;\n            to += MAX - 1;\n            var chunk = lines.slice(from, to);\n            if (to > l) {\n                delta.lines = chunk;\n                delta.start.row = row + from;\n                delta.start.column = column;\n                break;\n            }\n            chunk.push(\"\");\n            this.applyDelta({\n                start: this.pos(row + from, column),\n                end: this.pos(row + to, column = 0),\n                action: delta.action,\n                lines: chunk\n            }, true);\n        } while(true);\n    };\n    this.revertDelta = function(delta) {\n        this.applyDelta({\n            start: this.clonePos(delta.start),\n            end: this.clonePos(delta.end),\n            action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n            lines: delta.lines.slice()\n        });\n    };\n    this.indexToPosition = function(index, startRow) {\n        var lines = this.$lines || this.getAllLines();\n        var newlineLength = this.getNewLineCharacter().length;\n        for (var i = startRow || 0, l = lines.length; i < l; i++) {\n            index -= lines[i].length + newlineLength;\n            if (index < 0)\n                return {row: i, column: index + lines[i].length + newlineLength};\n        }\n        return {row: l-1, column: lines[l-1].length};\n    };\n    this.positionToIndex = function(pos, startRow) {\n        var lines = this.$lines || this.getAllLines();\n        var newlineLength = this.getNewLineCharacter().length;\n        var index = 0;\n        var row = Math.min(pos.row, lines.length);\n        for (var i = startRow || 0; i < row; ++i)\n            index += lines[i].length + newlineLength;\n\n        return index + pos.column;\n    };\n\n}).call(Document.prototype);\n\nexports.Document = Document;\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.last = function(a) {\n    return a[a.length - 1];\n};\n\nexports.stringReverse = function(string) {\n    return string.split(\"\").reverse().join(\"\");\n};\n\nexports.stringRepeat = function (string, count) {\n    var result = '';\n    while (count > 0) {\n        if (count & 1)\n            result += string;\n\n        if (count >>= 1)\n            string += string;\n    }\n    return result;\n};\n\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\n\nexports.stringTrimLeft = function (string) {\n    return string.replace(trimBeginRegexp, '');\n};\n\nexports.stringTrimRight = function (string) {\n    return string.replace(trimEndRegexp, '');\n};\n\nexports.copyObject = function(obj) {\n    var copy = {};\n    for (var key in obj) {\n        copy[key] = obj[key];\n    }\n    return copy;\n};\n\nexports.copyArray = function(array){\n    var copy = [];\n    for (var i=0, l=array.length; i<l; i++) {\n        if (array[i] && typeof array[i] == \"object\")\n            copy[i] = this.copyObject(array[i]);\n        else \n            copy[i] = array[i];\n    }\n    return copy;\n};\n\nexports.deepCopy = function deepCopy(obj) {\n    if (typeof obj !== \"object\" || !obj)\n        return obj;\n    var copy;\n    if (Array.isArray(obj)) {\n        copy = [];\n        for (var key = 0; key < obj.length; key++) {\n            copy[key] = deepCopy(obj[key]);\n        }\n        return copy;\n    }\n    if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n        return obj;\n    \n    copy = {};\n    for (var key in obj)\n        copy[key] = deepCopy(obj[key]);\n    return copy;\n};\n\nexports.arrayToMap = function(arr) {\n    var map = {};\n    for (var i=0; i<arr.length; i++) {\n        map[arr[i]] = 1;\n    }\n    return map;\n\n};\n\nexports.createMap = function(props) {\n    var map = Object.create(null);\n    for (var i in props) {\n        map[i] = props[i];\n    }\n    return map;\n};\nexports.arrayRemove = function(array, value) {\n  for (var i = 0; i <= array.length; i++) {\n    if (value === array[i]) {\n      array.splice(i, 1);\n    }\n  }\n};\n\nexports.escapeRegExp = function(str) {\n    return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\n\nexports.escapeHTML = function(str) {\n    return str.replace(/&/g, \"&#38;\").replace(/\"/g, \"&#34;\").replace(/'/g, \"&#39;\").replace(/</g, \"&#60;\");\n};\n\nexports.getMatchOffsets = function(string, regExp) {\n    var matches = [];\n\n    string.replace(regExp, function(str) {\n        matches.push({\n            offset: arguments[arguments.length-2],\n            length: str.length\n        });\n    });\n\n    return matches;\n};\nexports.deferredCall = function(fcn) {\n    var timer = null;\n    var callback = function() {\n        timer = null;\n        fcn();\n    };\n\n    var deferred = function(timeout) {\n        deferred.cancel();\n        timer = setTimeout(callback, timeout || 0);\n        return deferred;\n    };\n\n    deferred.schedule = deferred;\n\n    deferred.call = function() {\n        this.cancel();\n        fcn();\n        return deferred;\n    };\n\n    deferred.cancel = function() {\n        clearTimeout(timer);\n        timer = null;\n        return deferred;\n    };\n    \n    deferred.isPending = function() {\n        return timer;\n    };\n\n    return deferred;\n};\n\n\nexports.delayedCall = function(fcn, defaultTimeout) {\n    var timer = null;\n    var callback = function() {\n        timer = null;\n        fcn();\n    };\n\n    var _self = function(timeout) {\n        if (timer == null)\n            timer = setTimeout(callback, timeout || defaultTimeout);\n    };\n\n    _self.delay = function(timeout) {\n        timer && clearTimeout(timer);\n        timer = setTimeout(callback, timeout || defaultTimeout);\n    };\n    _self.schedule = _self;\n\n    _self.call = function() {\n        this.cancel();\n        fcn();\n    };\n\n    _self.cancel = function() {\n        timer && clearTimeout(timer);\n        timer = null;\n    };\n\n    _self.isPending = function() {\n        return timer;\n    };\n\n    return _self;\n};\n});\n\nace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/document\",\"ace/lib/lang\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\nvar Document = require(\"../document\").Document;\nvar lang = require(\"../lib/lang\");\n    \nvar Mirror = exports.Mirror = function(sender) {\n    this.sender = sender;\n    var doc = this.doc = new Document(\"\");\n    \n    var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this));\n    \n    var _self = this;\n    sender.on(\"change\", function(e) {\n        var data = e.data;\n        if (data[0].start) {\n            doc.applyDeltas(data);\n        } else {\n            for (var i = 0; i < data.length; i += 2) {\n                if (Array.isArray(data[i+1])) {\n                    var d = {action: \"insert\", start: data[i], lines: data[i+1]};\n                } else {\n                    var d = {action: \"remove\", start: data[i], end: data[i+1]};\n                }\n                doc.applyDelta(d, true);\n            }\n        }\n        if (_self.$timeout)\n            return deferredUpdate.schedule(_self.$timeout);\n        _self.onUpdate();\n    });\n};\n\n(function() {\n    \n    this.$timeout = 500;\n    \n    this.setTimeout = function(timeout) {\n        this.$timeout = timeout;\n    };\n    \n    this.setValue = function(value) {\n        this.doc.setValue(value);\n        this.deferredUpdate.schedule(this.$timeout);\n    };\n    \n    this.getValue = function(callbackId) {\n        this.sender.callback(this.doc.getValue(), callbackId);\n    };\n    \n    this.onUpdate = function() {\n    };\n    \n    this.isPending = function() {\n        return this.deferredUpdate.isPending();\n    };\n    \n}).call(Mirror.prototype);\n\n});\n\nace.define(\"ace/mode/xquery/xqlint\",[\"require\",\"exports\",\"module\",\"ace/mode/tree_ops\",\"ace/mode/xquery/errors\",\"ace/mode/tree_ops\",\"ace/mode/xquery/errors\",\"ace/mode/xquery/schema_built-in_types\",\"ace/mode/xquery/errors\",\"ace/mode/tree_ops\",\"ace/mode/xquery/static_context\",\"ace/mode/xquery/handlers\",\"ace/mode/tree_ops\",\"ace/mode/xquery/parsers/JSONiqParser\",\"ace/mode/xquery/parsers/XQueryParser\",\"ace/mode/xquery/parsers/JSONParseTreeHandler\",\"ace/mode/xquery/compiler/translator\",\"ace/mode/xquery/formatter/style_checker\",\"ace/mode/lib/completion/completer\",\"ace/mode/xquery/compiler/static_context\"], function(require, exports, module) {\nmodule.exports = (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({\n1:[function(require,module,exports){\n'use strict';\n\nvar init = function(that, code, message, pos, type){\n    if(!code) {\n        throw new Error(type + ' code is missing.');\n    }\n    \n    if(!message) {\n        throw new Error(type + ' message is missing.');\n    }\n    \n    if(!pos) {\n        throw new Error(type + ' position is missing.');\n    }\n\n    that.getCode = function(){\n        return code;\n    };\n    \n    that.getMessage = function(){\n        return message;\n    };\n\n    that.getPos = function(){\n        return pos;\n    };\n};\n\nvar StaticError = {};\nvar StaticWarning = {};\nStaticError.prototype = new Error();\nStaticWarning.prototype = new Error();\n\nexports.StaticError = StaticError.prototype.constructor = function(code, message, pos) {\n    init(this, code, message, pos, 'Error');\n};\n\nexports.StaticWarning = StaticWarning.prototype.constructor = function(code, message, pos) {\n    init(this, code, message, pos, 'Warning');\n};\n},\n{}],\n2:[function(require,module,exports){\n'use strict';\n\nvar TreeOps = require('../tree_ops').TreeOps;\nvar Errors = require('./errors');\nvar StaticWarning = Errors.StaticWarning;\nexports.ModuleDecl = function(translator, rootSctx, node){\n    var prefix = '';\n    return {\n        NCName: function(ncname){\n            prefix = TreeOps.flatten(ncname);\n        },\n\n        URILiteral: function(uri) {\n            uri = TreeOps.flatten(uri);\n            uri = uri.substring(1, uri.length - 1);\n            translator.apply(function(){\n                rootSctx.moduleNamespace = uri;\n                rootSctx.addNamespace(uri, prefix, node.pos, 'moduleDecl');\n            });\n        }\n    };\n};\n\nexports.ModuleImport = function(translator, rootSctx, node) {\n    var prefix = '';\n    var moduleURI;\n\n    return {\n        NCName: function(ncname){\n            prefix = TreeOps.flatten(ncname);\n        },\n\n        URILiteral: function(uri) {\n            if(moduleURI !== undefined) {\n                return;\n            }\n            uri = TreeOps.flatten(uri);\n            uri = uri.substring(1, uri.length - 1);\n            moduleURI = uri;\n            translator.apply(function(){\n                rootSctx.importModule(uri, prefix, node.pos);\n            });\n        }\n    };\n};\n\nexports.SchemaImport = function(translator, rootSctx, node) {\n    var prefix = '';\n    var schemaURI;\n    \n    return {\n        SchemaPrefix: function(schemaPrefix) {\n            var SchemaPrefixHandler = function () {\n                this.NCName = function (ncname) {\n                    prefix = TreeOps.flatten(ncname);\n                };\n            };\n            translator.visitChildren(schemaPrefix, new SchemaPrefixHandler());\n        },\n\n        URILiteral: function(uri) {\n            if(schemaURI !== undefined) {\n                return;\n            }\n            uri = TreeOps.flatten(uri);\n            uri = uri.substring(1, uri.length - 1);\n            schemaURI = uri;\n            translator.apply(function(){\n                rootSctx.addNamespace(uri, prefix, node.pos, 'schema');\n            });\n        }\n    };\n};\n\nexports.DefaultNamespaceDecl = function(translator, rootSctx, node) {\n    var fn = false;\n    var ns = '';\n\n    return {\n        TOKEN: function(token){\n            fn = fn ? true : (token.value === 'function');\n        },\n        URILiteral: function(uri){\n            ns = TreeOps.flatten(uri);\n            ns = ns.substring(1, ns.length - 1);\n            if(!fn) {\n                translator.apply(function(){\n                    throw new StaticWarning('W06', 'Avoid default element namespace declarations.', node.pos);\n                });\n                rootSctx.defaultElementNamespace = ns;\n            } else {\n                rootSctx.defaultFunctionNamespace = ns;\n            }\n        }\n    };\n};\n\nexports.NamespaceDecl = function(translator, rootSctx, node) {\n    var prefix = '';\n    return {\n        NCName: function(ncname) {\n            prefix = TreeOps.flatten(ncname);\n        },\n        URILiteral: function(uri) {\n            uri = TreeOps.flatten(uri);\n            uri = uri.substring(1, uri.length - 1);\n            translator.apply(function(){\n                rootSctx.addNamespace(uri, prefix, node.pos, 'declare');\n            });\n        }\n    };\n};\nexports.VarHandler = function(translator, sctx, node){\n    var EQNameHandler = function(eqname){\n        var value = TreeOps.flatten(eqname);\n        translator.apply(function(){\n            var qname = sctx.resolveQName(value, eqname.pos);\n            sctx.addVariable(qname, node.name, eqname.pos);\n        });\n    };\n    return {\n        ExprSingle: function(){ return true; },\n        VarValue: function(){ return true; },\n        VarDefaultValue: function(){ return true; },\n        VarName: EQNameHandler,\n        EQName: EQNameHandler\n    };\n};\n\nexports.VarRefHandler = function(translator, sctx, node){\n    return {\n        VarName: function(eqname){\n            var value = TreeOps.flatten(eqname);\n            translator.apply(function(){\n                var qname = sctx.resolveQName(value, node.pos);\n                if(qname.uri !== '') {\n                    sctx.root.namespaces[qname.uri].used = true;\n                }\n                sctx.addVarRef(qname, eqname.pos);\n            });\n        }\n    };\n};\n},\n{\"../tree_ops\":11,\"./errors\":1}],\n3:[function(require,module,exports){\n'use strict';\nexports.getSchemaBuiltinTypes = function(){\n    var ns = 'http://www.w3.org/2001/XMLSchema';\n    var SchemaBuiltinTypes = {};\n    SchemaBuiltinTypes[ns] = {\n        variables: {},\n        functions: {}\n    };\n    SchemaBuiltinTypes[ns].functions[ns + '#string#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'string', arity: 1, eqname: { uri: ns, name: 'string' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#boolean#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'boolean', arity: 1, eqname: { uri: ns, name: 'boolean' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#decimal#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'decimal', arity: 1, eqname: { uri: ns, name: 'decimal' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#float#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'float', arity: 1, eqname: { uri: ns, name: 'float' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#double#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'double', arity: 1, eqname: { uri: ns, name: 'double' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#duration#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'duration', arity: 1, eqname: { uri: ns, name: 'duration' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#dateTime#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'dateTime', arity: 1, eqname: { uri: ns, name: 'dateTime' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#time#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'time', arity: 1, eqname: { uri: ns, name: 'time' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#date#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'date', arity: 1, eqname: { uri: ns, name: 'date' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#gYearMonth#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'gYearMonth', arity: 1, eqname: { uri: ns, name: 'gYearMonth' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#gYear#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'gYear', arity: 1, eqname: { uri: ns, name: 'gYear' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#gMonthDay#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'gMonthDay', arity: 1, eqname: { uri: ns, name: 'gMonthDay' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#gDay#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'gDay', arity: 1, eqname: { uri: ns, name: 'gDay' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#gMonth#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'gMonth', arity: 1, eqname: { uri: ns, name: 'gMonth' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#hexBinary#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'hexBinary', arity: 1, eqname: { uri: ns, name: 'hexBinary' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#base64Binary#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'base64Binary', arity: 1, eqname: { uri: ns, name: 'base64Binary' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#anyURI#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'anyURI', arity: 1, eqname: { uri: ns, name: 'anyURI' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#QName#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'QName', arity: 1, eqname: { uri: ns, name: 'QName' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#normalizedString#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'normalizedString', arity: 1, eqname: { uri: ns, name: 'normalizedString' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#token#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'token', arity: 1, eqname: { uri: ns, name: 'token' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#language#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'language', arity: 1, eqname: { uri: ns, name: 'language' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#NMTOKEN#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'NMTOKEN', arity: 1, eqname: { uri: ns, name: 'NMTOKEN' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#Name#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'Name', arity: 1, eqname: { uri: ns, name: 'Name' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#NCName#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'NCName', arity: 1, eqname: { uri: ns, name: 'NCName' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#ID#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'ID', arity: 1, eqname: { uri: ns, name: 'ID' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#IDREF#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'IDREF', arity: 1, eqname: { uri: ns, name: 'IDREF' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#ENTITY#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'ENTITY', arity: 1, eqname: { uri: ns, name: 'ENTITY' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#integer#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'integer', arity: 1, eqname: { uri: ns, name: 'integer' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#nonPositiveInteger#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'nonPositiveInteger', arity: 1, eqname: { uri: ns, name: 'nonPositiveInteger' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#negativeInteger#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'negativeInteger', arity: 1, eqname: { uri: ns, name: 'negativeInteger' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#long#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'long', arity: 1, eqname: { uri: ns, name: 'long' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#int#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'int', arity: 1, eqname: { uri: ns, name: 'int' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#short#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'short', arity: 1, eqname: { uri: ns, name: 'short' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#byte#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'byte', arity: 1, eqname: { uri: ns, name: 'byte' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#nonNegativeInteger#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'nonNegativeInteger', arity: 1, eqname: { uri: ns, name: 'nonNegativeInteger' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#unsignedLong#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'unsignedLong', arity: 1, eqname: { uri: ns, name: 'unsignedLong' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#unsignedInt#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'unsignedInt', arity: 1, eqname: { uri: ns, name: 'unsignedInt' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#unsignedShort#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'unsignedShort', arity: 1, eqname: { uri: ns, name: 'unsignedShort' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#unsignedByte#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'unsignedByte', arity: 1, eqname: { uri: ns, name: 'unsignedByte' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#positiveInteger#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'positiveInteger', arity: 1, eqname: { uri: ns, name: 'positiveInteger' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#yearMonthDuration#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'yearMonthDuration', arity: 1, eqname: { uri: ns, name: 'yearMonthDuration' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#dayTimeDuration#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'dayTimeDuration', arity: 1, eqname: { uri: ns, name: 'dayTimeDuration' } };\n    SchemaBuiltinTypes[ns].functions[ns + '#untypedAtomic#1'] = { params: ['$arg as xs:anyAtomicType?'], annotations: [], name: 'untypedAtomic', arity: 1, eqname: { uri: ns, name: 'untypedAtomic' } };\n    return SchemaBuiltinTypes;\n};\n},\n{}],\n4:[function(require,module,exports){\nexports.StaticContext = function (parent, pos) {\n    'use strict';\n    \n    var TreeOps = require('../tree_ops').TreeOps;\n    \n    var Errors = require('./errors');\n    var StaticError = Errors.StaticError;\n    var StaticWarning = Errors.StaticWarning;\n    \n    var getSchemaBuiltinTypes = require('./schema_built-in_types').getSchemaBuiltinTypes;\n    \n    var emptyPos = { sl:0, sc: 0, el: 0, ec: 0 };\n    var namespaces = {};\n    \n    var getVarKey = function(qname) {\n        return qname.uri + '#' + qname.name;\n    };\n\n    var getFnKey = function(qname, arity) {\n        return getVarKey(qname) + '#' + arity;\n    };\n\n    if(!parent) {\n        namespaces['http://jsoniq.org/functions'] = {\n            prefix: 'jn',\n            pos: emptyPos,\n            type: 'module',\n            override: true\n        };\n        namespaces['http://www.28msec.com/modules/collections'] = {\n            prefix: 'db',\n            pos: emptyPos,\n            type: 'module',\n            override: true\n        };\n        namespaces['http://www.28msec.com/modules/store'] = {\n            prefix: 'store',\n            pos: emptyPos,\n            type: 'module',\n            override: true\n        };\n        namespaces['http://jsoniq.org/function-library'] = {\n            prefix: 'libjn',\n            pos: emptyPos,\n            type: 'module',\n            override: true\n        };\n        namespaces['http://www.w3.org/2005/xpath-functions'] = {\n            prefix: 'fn',\n            pos: emptyPos,\n            type: 'module',\n            override: true\n        };\n        namespaces['http://www.w3.org/2005/xquery-local-functions'] = {\n            prefix: 'local',\n            pos: emptyPos,\n            type: 'declare',\n            override: true\n        };\n        namespaces['http://www.w3.org/2001/XMLSchema-instance'] = {\n            prefix: 'xsi',\n            pos: emptyPos,\n            type: 'declare'\n        };\n        namespaces['http://www.w3.org/2001/XMLSchema'] = {\n            prefix: 'xs',\n            pos: emptyPos,\n            type: 'declare'\n        };\n        namespaces['http://www.w3.org/XML/1998/namespace'] = {\n            prefix: 'xml',\n            pos: emptyPos,\n            type: 'declare'\n        };\n        namespaces['http://zorba.io/annotations'] = {\n            prefix: 'an',\n            pos: emptyPos,\n            type: 'declare',\n            override: true\n        };\n        namespaces['http://www.28msec.com/annotations/rest'] = {\n            prefix: 'rest',\n            pos: emptyPos,\n            type: 'declare',\n            override: true\n        };\n        namespaces['http://www.w3.org/2005/xqt-errors'] = {\n            prefix: 'err',\n            pos: emptyPos,\n            type: 'declare',\n            override: true\n        };\n        namespaces['http://zorba.io/errors'] = {\n            prefix: 'zerr',\n            pos: emptyPos,\n            type: 'declare',\n            override: true\n        };\n    }\n\n    var s = {\n        parent: parent,\n        children: [],\n        pos: pos,\n        setModuleResolver: function(resolver){\n            this.root.moduleResolver = resolver;\n            return this;\n        },\n        setModules: function(index){\n            if(this !== this.root){\n                throw new Error('setModules() not invoked from the root static context.');\n            }\n            this.moduleResolver = function(uri){\n                return index[uri];\n            };\n            var that = this;\n            Object.keys(this.namespaces).forEach(function(uri){\n                var ns = that.namespaces[uri];\n                if(ns.type === 'module') {\n                    var mod = that.moduleResolver(uri);\n                    if(mod.variables) {\n                        TreeOps.concat(that.variables, mod.variables);\n                    }\n                    if(mod.functions) {\n                        TreeOps.concat(that.functions, mod.functions);\n                    }\n                }\n            });\n            return this;\n        },\n        setModulesFromXQDoc: function(xqdoc){\n            if(this !== this.root){\n                throw new Error('setModulesFromXQDoc() not invoked from the root static context.');\n            }\n            var index = {};\n            Object.keys(xqdoc).forEach(function(uri) {\n                var mod = xqdoc[uri];\n                var variables = {};\n                var functions = {};\n                mod.functions.forEach(function(fn){\n                    functions[uri + '#' + fn.name + '#' + fn.arity] = {\n                        params: [],\n                        annotations: [],\n                        name: fn.name,\n                        arity: fn.arity,\n                        eqname: { uri: uri, name: fn.name }\n                    };\n                    fn.parameters.forEach(function(param){\n                        functions[uri + '#' + fn.name + '#' + fn.arity].params.push('$' + param.name);\n                    });\n                });\n                mod.variables.forEach(function(variable){\n                    var name = variable.name.substring(variable.name.indexOf(':') + 1);\n                    variables[uri + '#' + name] = { type: 'VarDecl', annotations: [], eqname: { uri: uri, name: name } };\n                });\n                index[uri] = {\n                    variables: variables,\n                    functions: functions\n                };\n            });\n            this.root.moduleResolver = function(uri){\n                return index[uri];\n            };\n            var that = this;\n            Object.keys(this.namespaces).forEach(function(uri){\n                var ns = that.namespaces[uri];\n                if(ns.type === 'module') {\n                    var mod = that.moduleResolver(uri);\n                    if(mod.variables) {\n                        TreeOps.concat(that.variables, mod.variables);\n                    }\n                    if(mod.functions) {\n                        TreeOps.concat(that.functions, mod.functions);\n                    }\n                }\n            });\n            return this;\n        },\n        moduleNamespace: '',\n        defaultFunctionNamespace: 'http://www.w3.org/2005/xpath-functions',\n        defaultFunctionNamespaces: [\n            'http://www.28msec.com/modules/collections',\n            'http://www.28msec.com/modules/store',\n            'http://jsoniq.org/functions',\n            'http://jsoniq.org/function-library',\n            'http://www.w3.org/2001/XMLSchema' //Built-in type constructors\n        ],\n        defaultElementNamespace: '',\n        namespaces: namespaces,\n        availableModuleNamespaces: [],\n        importModule: function(uri, prefix, pos) {\n            if(this !== this.root){\n                throw new Error('Function not invoked from the root static context.');\n            }\n            this.addNamespace(uri, prefix, pos, 'module');\n            if(this.moduleResolver) {\n                try {\n                    var mod = this.moduleResolver(uri, []);\n                    if(mod.variables) {\n                        TreeOps.concat(this.variables, mod.variables);\n                    }\n                    if(mod.functions) {\n                        TreeOps.concat(this.functions, mod.functions);\n                    }\n                } catch(e) {\n                    throw new StaticError('XQST0059', 'module \"' + uri + '\" not found', pos);\n                }\n            }\n            return this;\n        },\n        getAvailableModuleNamespaces: function(){\n            return this.root.availableModuleNamespaces;\n        },\n        getPrefixByNamespace: function(uri){\n            return this.root.namespaces[uri].prefix;\n        },\n        addNamespace: function (uri, prefix, pos, type) {\n            if(prefix === '' && type === 'module') {\n                throw new StaticWarning('W01', 'Avoid this type of import. Use import module namespace instead', pos);\n            }\n            if (uri === '') {\n                throw new StaticError('XQST0088', 'empty target namespace in module import or module declaration', pos);\n            }\n            var namespace = this.getNamespace(uri);\n            if (namespace && namespace.type === type && type !== 'declare' && !namespace.override) {\n                throw new StaticError('XQST0047', '\"' + uri + '\": duplicate target namespace', pos);\n            }\n            namespace = this.getNamespaceByPrefix(prefix);\n            if (namespace && !namespace.override) {\n                throw new StaticError('XQST0033', '\"' + prefix + '\": namespace prefix already bound to \"' + namespace.uri + '\"', pos);\n            }\n\n            namespace = this.namespaces[uri];\n            this.namespaces[uri] = {\n                prefix: prefix,\n                pos: pos,\n                type: type\n            };\n\n            if (namespace) {\n                throw new StaticWarning('W02', '\"' + uri + '\" already bound to the \"' + namespace.prefix + '\" prefix', pos);\n            }\n\n        },\n\n        getNamespaces: function(){\n            return this.root.namespaces;\n        },\n        \n        getNamespace: function (uri) {\n            var that = this;\n            while (that) {\n                var namespace = that.namespaces[uri];\n                if (namespace) {\n                    return namespace;\n                }\n                that = that.parent;\n            }\n\n        },\n\n        getNamespaceByPrefix: function (prefix) {\n            var handler = function (uri) {\n                var namespace = that.namespaces[uri];\n                if (namespace.prefix === prefix) {\n                    namespace.uri = uri;\n                    throw namespace;\n                }\n            };\n            var that = this;\n            while (that) {\n                try {\n                    Object.keys(that.namespaces).forEach(handler);\n                } catch (e) {\n                    return e;\n                }\n                that = that.parent;\n            }\n\n        },\n        \n        resolveQName: function(value, pos){\n            var qname = {\n                uri: '',\n                prefix: '',\n                name: ''\n            };\n            var idx;\n            if (value.substring(0, 2) === 'Q{') {\n                idx = value.indexOf('}');\n                qname.uri = value.substring(2, idx);\n                qname.name = value.substring(idx + 1);\n            } else {\n                idx = value.indexOf(':');\n                qname.prefix = value.substring(0, idx);\n                var namespace = this.getNamespaceByPrefix(qname.prefix);\n                if(!namespace && qname.prefix !== '' && ['fn', 'jn'].indexOf(qname.prefix) === -1) {\n                    throw new StaticError('XPST0081', '\"' + qname.prefix + '\": can not expand prefix of lexical QName to namespace URI', pos);\n                }\n                if(namespace) {\n                    qname.uri = namespace.uri;\n                }\n                qname.name = value.substring(idx + 1);\n            }\n            return qname;\n        },\n        \n        variables: {},\n        varRefs: {},\n        functionCalls: {},\n    \n        addVariable: function(qname, type, pos){\n            if(\n                type === 'VarDecl' && this.moduleNamespace !== '' &&\n                !(this.moduleNamespace === qname.uri || (qname.uri === '' && this.defaultFunctionNamespace === this.moduleNamespace))\n            ) {\n                throw new StaticError('XQST0048', '\"' + qname.prefix + ':' + qname.name + '\": Qname not library namespace', pos);\n            }\n            var key = getVarKey(qname);\n            if(type === 'VarDecl' && this.variables[key]) {\n                throw new StaticError('XQST0049', '\"' + qname.name + '\": duplicate variable declaration', pos);\n            }\n            this.variables[key] = {\n                type: type,\n                pos: pos,\n                qname: qname,\n                annotations: {}\n            };\n            return this;\n        },\n        \n        getVariables: function(){\n            var variables = {};\n            var that = this;\n            var handler = function(key){\n                if(!variables[key]){\n                    variables[key] = that.variables[key];\n                }\n            };\n            while(that){\n                Object.keys(that.variables).forEach(handler);\n                that = that.parent;\n            }\n            return variables;\n        },\n        \n        getVariable: function(qname) {\n            var key = getVarKey(qname);\n            var that = this;\n            while(that) {\n                if(that.variables[key]) {\n                    return that.variables[key];\n                }\n                that = that.parent;\n            }\n        },\n        \n        addVarRef: function(qname, pos){\n            var varDecl = this.getVariable(qname);\n            if(!varDecl && (qname.uri === '' || this.root.moduleResolver)) {\n                throw new StaticError('XPST0008', '\"' + qname.name + '\": undeclared variable', pos);\n            }\n            var key = getVarKey(qname);\n            this.varRefs[key] = true;\n        },\n        \n        addFunctionCall: function(qname, arity, pos){\n            var fn = this.getFunction(qname, arity);\n            if(!fn && (qname.uri === 'http://www.w3.org/2005/xquery-local-functions' || this.root.moduleResolver)){\n                if((qname.uri === 'http://www.w3.org/2005/xpath-functions' ||\n                    (qname.uri === '' && this.root.defaultFunctionNamespaces.concat(this.root.defaultFunctionNamespace).indexOf('http://www.w3.org/2005/xpath-functions') !== -1)) && qname.name === 'concat') {\n                } else if(!fn){\n                    throw new StaticError('XPST0008', '\"' + qname.name + '#' + arity + '\": undeclared function', pos);\n                }\n            }\n            var key = getFnKey(qname, arity);\n            this.functionCalls[key] = true;\n        },\n        \n        functions: getSchemaBuiltinTypes()['http://www.w3.org/2001/XMLSchema'].functions,\n\n        getFunctions: function(){\n            return this.root.functions;\n        },\n        \n        getFunction: function(qname, arity){\n            var key = getFnKey(qname, arity);\n            var fn;\n            if(qname.uri === '') {\n                var that = this;\n                this.root.defaultFunctionNamespaces.concat([this.root.defaultFunctionNamespace]).forEach(function(defaultFunctionNamespace){\n                    if(!fn){\n                        fn = that.getFunction({ uri: defaultFunctionNamespace, prefix: qname.prefix, name: qname.name }, arity);\n                    } else {\n                        return false;\n                    }\n                });\n                return fn;\n            } else {\n                return this.root.functions[key];\n            }\n        },\n        \n        addFunction: function(qname, pos, params) {\n            if(this !== this.root){\n                throw new Error('addFunction() not invoked from the root static context.');\n            }\n            var arity = params.length;\n            if(\n                this.moduleNamespace !== '' &&\n                !(this.moduleNamespace === qname.uri || (qname.uri === '' && this.defaultFunctionNamespace === this.moduleNamespace))\n            ) {\n                throw new StaticError('XQST0048', '\"' + qname.prefix + ':' + qname.name + '\": Qname not library namespace', pos);\n            }\n            var key = getFnKey(qname, arity);\n            if(this.functions[key]) {\n                throw new StaticError('XQST0034', '\"' + qname.name + '\": duplicate function declaration', pos);\n            }\n            this.functions[key] = {\n                pos: pos,\n                params: params\n            };\n            return this;\n        }\n        \n    };\n    s.root = parent ? parent.root : s;\n    return s;\n};\n\n},\n{\"../tree_ops\":11,\"./errors\":1,\"./schema_built-in_types\":3}],\n5:[function(require,module,exports){\nexports.Translator = function(rootStcx, ast){\n    'use strict';\n\n    var Errors = require('./errors');\n    var StaticError = Errors.StaticError;\n    var StaticWarning = Errors.StaticWarning;\n    \n    var TreeOps = require('../tree_ops').TreeOps;\n    var StaticContext = require('./static_context').StaticContext;\n    var Handlers = require('./handlers');\n    \n    var get = function(node, path){\n        var result = [];\n        if(path.length === 0){\n            return node;\n        }\n        node.children.forEach(function(child){\n            if(child.name === path[0] && path.length > 1) {\n                result = get(child, path.slice(1));\n            } else if(child.name === path[0]) {\n                result.push(child);\n            }\n        });\n        return result;\n    };\n    \n    var markers = [];\n    this.apply = function(fn) {\n        try {\n            fn();\n        } catch(e) {\n            if(e instanceof StaticError) {\n                addStaticError(e);\n            } else if(e instanceof StaticWarning) {\n                addWarning(e.getCode(), e.getMessage(), e.getPos());\n            } else {\n                throw e;\n            }\n        }\n    };\n\n    var addStaticError = function(e){\n        markers.push({\n            pos: e.getPos(),\n            type: 'error',\n            level: 'error',\n            message: '[' + e.getCode() + '] ' + e.getMessage()\n        });\n    };\n    \n    var addWarning = function(code, message, pos) {\n        markers.push({\n            pos: pos,\n            type: 'warning',\n            level: 'warning',\n            message: '[' + code + '] ' + message\n        });\n    };\n    \n    this.getMarkers = function(){\n        return markers;\n    };\n\n    var translator = this;\n\n    rootStcx.pos = ast.pos;\n    var sctx = rootStcx;\n    var pushSctx = function(pos){\n        sctx = new StaticContext(sctx, pos);\n        sctx.parent.children.push(sctx);\n    };\n    \n    var popSctx = function(pos){\n        if (pos !== undefined) {\n            sctx.pos.el = pos.el;\n            sctx.pos.ec = pos.ec;\n        }\n\n        Object.keys(sctx.varRefs).forEach(function(key){\n            if(!sctx.variables[key]) {\n                sctx.parent.varRefs[key] = true;\n            }\n        });\n        Object.keys(sctx.variables).forEach(function(key){\n            if(!sctx.varRefs[key] && sctx.variables[key].type !== 'GroupingVariable' && sctx.variables[key].type !== 'CatchVar') {\n                addWarning('W03', 'Unused variable \"$' + sctx.variables[key].qname.name + '\"', sctx.variables[key].pos);\n            }\n        });\n        \n        sctx = sctx.parent;\n    };\n    \n    this.visitOnly = function(node, names) {\n        node.children.forEach(function(child){\n            if (names.indexOf(child.name) !== -1){\n                translator.visit(child);\n            }\n        });\n    };\n    \n    this.getFirstChild = function(node, name) {\n        var result;\n        node.children.forEach(function(child){\n            if(child.name === name && result === undefined){\n                result = child;\n            }\n        });\n        return result;\n    };\n    \n    this.ModuleDecl = function(node){\n        this.visitChildren(node, Handlers.ModuleDecl(translator, rootStcx, node));\n        return true;\n    };\n    \n    this.Prolog = function(node){\n        this.visitOnly(node, ['DefaultNamespaceDecl', 'Setter', 'NamespaceDecl', 'Import']);\n        ast.index.forEach(function(node){\n            if(node.name === 'VarDecl') {\n                node.children.forEach(function(child){\n                    if(child.name === 'VarName') {\n                        translator.apply(function(){\n                            var value = TreeOps.flatten(child);\n                            var qname = rootStcx.resolveQName(value, child.pos);\n                            rootStcx.addVariable(qname, node.name, child.pos);\n                        });\n                    }\n                });\n            } else if(node.name === 'FunctionDecl') {\n                var qname, pos, params = [];\n                node.children.forEach(function(child){\n                    if(child.name === 'EQName') {\n                        qname = child;\n                        pos = child.pos;\n                    } else if(child.name === 'ParamList'){\n                        child.children.forEach(function(c){\n                            if(c.name === 'Param') {\n                                params.push(TreeOps.flatten(c));\n                            }\n                        });\n                    }\n                });\n                translator.apply(function(){\n                    qname = TreeOps.flatten(qname);\n                    qname = rootStcx.resolveQName(qname, pos);\n                    rootStcx.addFunction(qname, pos, params);\n                });\n            }\n        });\n        this.visitOnly(node, ['ContextItemDecl', 'AnnotatedDecl', 'OptionDecl']);\n        return true;\n    };\n    \n    this.ModuleImport = function (node) {\n        this.visitChildren(node, Handlers.ModuleImport(translator, rootStcx, node));\n        return true;\n    };\n    \n    this.SchemaImport = function (node) {\n        this.visitChildren(node, Handlers.SchemaImport(translator, rootStcx, node));\n        return true;\n    };\n    \n    this.DefaultNamespaceDecl = function(node){\n        this.visitChildren(node, Handlers.DefaultNamespaceDecl(translator, rootStcx, node));\n        return true;\n    };\n    \n    this.NamespaceDecl = function (node) {\n        this.visitChildren(node, Handlers.NamespaceDecl(translator, rootStcx, node));\n        return true;\n    };\n    \n    var annotations = {};\n    this.AnnotatedDecl = function(node) {\n        annotations = {};\n        this.visitChildren(node, Handlers.NamespaceDecl(translator, rootStcx, node));\n        return true;\n    };\n    \n    this.CompatibilityAnnotation = function(){\n        annotations['http://www.w3.org/2012/xquery#updating'] = [];\n        return true;\n    };\n    \n    this.Annotation = function(node){\n        this.visitChildren(node, {\n            EQName: function(eqname){\n                var value = TreeOps.flatten(eqname);\n                translator.apply(function(){\n                    var qname = sctx.resolveQName(value, eqname.pos);\n                    annotations[qname.uri + '#' + qname.name] = [];\n                });\n            }\n        });\n        return true;\n    };\n    \n    this.VarDecl = function(node){\n        try {\n            var varname = translator.getFirstChild(node, 'VarName');\n            var value = TreeOps.flatten(varname);\n            var qname = sctx.resolveQName(value, varname.pos);\n            var variable = rootStcx.getVariable(qname);\n            if(variable) {\n                variable.annotations = annotations;\n            }\n        } catch(e) {\n        }\n        this.visitOnly(node, ['ExprSingle', 'VarValue', 'VarDefaultValue']);\n        return true;\n    };\n    \n    this.FunctionDecl = function(node) {\n        var isUpdating = annotations['http://www.w3.org/2012/xquery#updating'] !== undefined;\n        var typeDecl = get(node, ['ReturnType'])[0];\n        var name = get(node, ['EQName'])[0];\n        if(!typeDecl && !isUpdating){\n            addWarning('W05', 'Untyped return value', name.pos);\n        }\n        var isExternal = false;\n        node.children.forEach(function(child){\n            if(child.name === 'TOKEN' && child.value === 'external') {\n                isExternal = true;\n                return false;\n            }\n        });\n        if(!isExternal) {\n            pushSctx(node.pos);\n            this.visitChildren(node);\n            popSctx();\n        }\n        return true;\n    };\n    \n    this.VarRef = function(node) {\n        this.visitChildren(node, Handlers.VarRefHandler(translator, sctx, node));\n        return true;\n    };\n    \n    this.Param = function(node){\n        var typeDecl = get(node, ['TypeDeclaration'])[0];\n        if(!typeDecl){\n            addWarning('W05', 'Untyped function parameter', node.pos);\n        }\n        this.visitChildren(node, Handlers.VarHandler(translator, sctx, node));\n        return true;\n    };\n    \n    this.InlineFunctionExpr\t= function(node) {\n        pushSctx(node.pos);\n        this.visitChildren(node);\n        popSctx();\n        return true;\n    };\n    var statementCount = [];\n    var handleStatements = function(node) {\n        pushSctx(node.pos);\n        statementCount.push(0);\n        translator.visitChildren(node);\n        for (var i = 1; i <= statementCount[statementCount.length - 1]; i++) {\n            popSctx(node.pos);\n        }\n        statementCount.pop();\n        popSctx();\n    };\n\n    this.StatementsAndOptionalExpr = function (node) {\n        handleStatements(node);\n        return true;\n    };\n\n    this.StatementsAndExpr = function (node) {\n        handleStatements(node);\n        return true;\n    };\n\n    this.BlockStatement = function (node) {\n        handleStatements(node);\n        return true;\n    };\n    \n    this.VarDeclStatement = function(node){\n        pushSctx(node.pos);\n        statementCount[statementCount.length - 1]++;\n        this.visitChildren(node, Handlers.VarHandler(translator, sctx, node));\n    };\n    var clauses = [];\n    this.FLWORExpr = this.FLWORStatement = function (node) {\n        pushSctx(node.pos);\n        clauses.push(0);\n        this.visitChildren(node);\n        for(var i=1; i <= clauses[clauses.length - 1]; i++) {\n            popSctx(node.pos);\n        }\n        clauses.pop();\n        popSctx();\n        return true;\n    };\n    \n    this.ForBinding = function (node) {\n        this.visitOnly(node, ['ExprSingle', 'VarValue', 'VarDefaultValue']);\n        pushSctx(node.pos);\n        clauses[clauses.length - 1]++;\n        this.visitChildren(node, Handlers.VarHandler(translator, sctx, node));\n        return true;\n    };\n    \n    this.LetBinding = function(node){\n        this.visitOnly(node, ['ExprSingle', 'VarValue', 'VarDefaultValue']);\n        pushSctx(node.pos);\n        clauses[clauses.length - 1]++;\n        this.visitChildren(node, Handlers.VarHandler(translator, sctx, node));\n        return true;\n    };\n\n    this.GroupingSpec = function(node){\n        var isVarDecl = false;\n        node.children.forEach(function(child){\n            if(child.value === ':=') {\n                isVarDecl = true;\n                return false;\n            }\n        });\n        if(isVarDecl) {\n            var groupingVariable = node.children[0];\n            this.visitOnly(node, ['ExprSingle', 'VarValue', 'VarDefaultValue']);\n            pushSctx(node.pos);\n            clauses[clauses.length - 1]++;\n            this.visitChildren(groupingVariable, Handlers.VarHandler(translator, sctx, groupingVariable));\n            return true;\n        } else {\n            \n        }\n    };\n    \n    this.TumblingWindowClause = function (node) {\n        this.visitOnly(node, ['ExprSingle']);\n        pushSctx(node.pos);\n        clauses[clauses.length - 1]++;\n        this.visitChildren(node, Handlers.VarHandler(translator, sctx, node));\n        this.visitOnly(node, ['WindowStartCondition', 'WindowEndCondition']);\n        return true;\n    };\n\n    this.WindowVars = function (node) {\n        pushSctx(node.pos);\n        clauses[clauses.length - 1]++;\n        this.visitChildren(node, Handlers.VarHandler(translator, sctx, node));\n        return true;\n    };\n\n    this.SlidingWindowClause = function (node) {\n        this.visitOnly(node, ['ExprSingle', 'VarValue', 'VarDefaultValue']);\n        pushSctx(node.pos);\n        clauses[clauses.length - 1]++;\n        this.visitChildren(node, Handlers.VarHandler(translator, sctx, node));\n        this.visitOnly(node, ['WindowStartCondition', 'WindowEndCondition']);\n        return true;\n    };\n\n    this.PositionalVar = function (node) {\n        this.visitChildren(node, Handlers.VarHandler(translator, sctx, node));\n        return true;\n    };\n\n    this.PositionalVar = function (node) {\n        this.visitChildren(node, Handlers.VarHandler(translator, sctx, node));\n        return true;\n    };\n\n    this.CurrentItem = function (node) {\n        this.visitChildren(node, Handlers.VarHandler(translator, sctx, node));\n        return true;\n    };\n\n    this.PreviousItem = function (node) {\n        this.visitChildren(node, Handlers.VarHandler(translator, sctx, node));\n        return true;\n    };\n\n    this.NextItem = function (node) {\n        this.visitChildren(node, Handlers.VarHandler(translator, sctx, node));\n        return true;\n    };\n\n    this.CountClause = function (node) {\n        pushSctx(node.pos);\n        clauses[clauses.length - 1]++;\n        this.visitChildren(node, Handlers.VarHandler(translator, sctx, node));\n        return true;\n    };\n    \n    this.CaseClause = function(node) {\n        pushSctx(node.pos);\n        this.visitChildren(node, Handlers.VarHandler(translator, sctx, node));\n        this.visitOnly(node, ['ExprSingle']);\n        popSctx();\n        return true;\n    };\n    \n    this.TransformExpr = function (node) {\n        pushSctx(node.pos);\n        this.visitChildren(node);\n        popSctx();\n        return true;\n    };\n    \n    this.TransformSpec = function(node) {\n        this.visitOnly(node, ['ExprSingle', 'VarValue', 'VarDefaultValue']);\n        this.visitChildren(node, Handlers.VarHandler(translator, sctx, node));\n        return true;\n    };\n    var quantifiedDecls = [];\n    this.QuantifiedExpr = function (node) {\n        pushSctx(node.pos);\n        quantifiedDecls.push(0);\n        this.visitChildren(node);\n        for(var i=1; i <= quantifiedDecls[quantifiedDecls.length - 1]; i++) {\n            popSctx(node.pos);\n        }\n        quantifiedDecls.pop();\n        popSctx();\n        return true;\n    };\n    \n    this.QuantifiedVarDecl = function(node) {\n        this.visitOnly(node, ['ExprSingle']);\n        pushSctx(node.pos);\n        quantifiedDecls[quantifiedDecls.length - 1]++;\n        this.visitChildren(node, Handlers.VarHandler(translator, sctx, node));\n        return true;\n    };\n    \n    this.FunctionCall = function(node){\n        this.visitOnly(node, ['ArgumentList']);\n        var name = translator.getFirstChild(node, 'EQName');\n        var eqname = TreeOps.flatten(name);\n        var arity = get(node, ['ArgumentList', 'Argument']).length;\n        translator.apply(function(){\n            var qname = sctx.resolveQName(eqname, node.pos);\n            try {\n                if(qname.uri !== '') {\n                    sctx.root.namespaces[qname.uri].used = true;\n                }\n            } catch(e){\n            }\n            sctx.addFunctionCall(qname, arity, name.pos);\n        });\n        return true;\n    };\n    \n    this.TryClause = function(node){\n        pushSctx(node.pos);\n        this.visitChildren(node);\n        popSctx();\n        return true;\n    };\n    \n    this.CatchClause = function(node){\n        pushSctx(node.pos);\n        var prefix = 'err';\n        var uri = 'http://www.w3.org/2005/xqt-errors';\n        var emptyPos = { sl: 0, sc: 0, el: 0, ec: 0 };\n        sctx.addVariable({ prefix: prefix, uri: uri, name: 'code' }, 'CatchVar', emptyPos);\n        sctx.addVariable({ prefix: prefix, uri: uri, name: 'description' }, 'CatchVar', emptyPos);\n        sctx.addVariable({ prefix: prefix, uri: uri, name: 'value' }, 'CatchVar', emptyPos);\n        sctx.addVariable({ prefix: prefix, uri: uri, name: 'module' }, 'CatchVar', emptyPos);\n        sctx.addVariable({ prefix: prefix, uri: uri, name: 'line-number' }, 'CatchVar', emptyPos);\n        sctx.addVariable({ prefix: prefix, uri: uri, name: 'column-number' }, 'CatchVar', emptyPos);\n        sctx.addVariable({ prefix: prefix, uri: uri, name: 'additional' }, 'CatchVar', emptyPos);\n        this.visitChildren(node);\n        popSctx();\n        return true;\n    };\n\n    this.Pragma = function(node){\n        var qname = TreeOps.flatten(get(node, ['EQName'])[0]);\n        qname = rootStcx.resolveQName(qname, node);\n        var value = TreeOps.flatten(get(node, ['PragmaContents'])[0]);\n        if (qname.name === 'xqlint' && qname.uri === 'http://xqlint.io') {\n            pushSctx(node.pos);\n            var commands = value.match(/[a-zA-Z]+\\(([^)]+)\\)/g);\n            commands.forEach(function (command) {\n                var name = command.substring(0, command.indexOf('('));\n                var args = command.substring(0, command.length - 1).substring(command.indexOf('(') + 1).split(',').map(function (val) {\n                    return val.trim();\n                });\n                if (name === 'varrefs') {\n                    args.forEach(function (arg) {\n                        var qname = sctx.resolveQName(arg.substring(1), node.pos);\n                        if (qname.uri !== '') {\n                            sctx.root.namespaces[qname.uri].used = true;\n                        }\n                        sctx.addVarRef(qname, node.pos);\n                    });\n                }\n            });\n            this.visitChildren(node);\n            popSctx();\n            return true;\n        }\n    };\n\n    this.visit = function (node) {\n        var name = node.name;\n        var skip = false;\n\n        if (typeof this[name] === 'function') {\n            skip = this[name](node) === true;\n        }\n\n        if (!skip) {\n            this.visitChildren(node);\n        }\n    };\n\n    this.visitChildren = function (node, handler) {\n        for (var i = 0; i < node.children.length; i++) {\n            var child = node.children[i];\n            if (handler !== undefined && typeof handler[child.name] === 'function') {\n                handler[child.name](child);\n            } else {\n                this.visit(child);\n            }\n        }\n    };\n\n    this.visit(ast);\n    Object.keys(rootStcx.variables).forEach(function(key){\n        if(!rootStcx.varRefs[key] && (rootStcx.variables[key].annotations['http://www.w3.org/2005/xpath-functions#private'] || rootStcx.moduleNamespace === '') && rootStcx.variables[key].pos) {\n            addWarning('W03', 'Unused variable \"' + rootStcx.variables[key].qname.name + '\"', rootStcx.variables[key].pos);\n        }\n    });\n    Object.keys(rootStcx.namespaces).forEach(function(uri){\n        var namespace = rootStcx.namespaces[uri];\n        if(namespace.used === undefined && !namespace.override && namespace.type === 'module') {\n            addWarning('W04', 'Unused module \"' + uri + '\"', namespace.pos);\n        }\n    });\n};\n\n},\n{\"../tree_ops\":11,\"./errors\":1,\"./handlers\":2,\"./static_context\":4}],\n6:[function(require,module,exports){\n'use strict';\n\nvar TreeOps = require('../tree_ops').TreeOps;\n\nvar ID_REGEX = /[a-zA-Z_0-9\\$]/;\n\nfunction retrievePrecedingIdentifier(text, pos, regex) {\n    regex = regex || ID_REGEX;\n    var buf = [];\n    for (var i = pos-1; i >= 0; i--) {\n        if (regex.test(text[i])) {\n            buf.push(text[i]);\n        } else {\n            break;\n        }\n    }\n    return buf.reverse().join('');\n}\n\nfunction prefixBinarySearch(items, prefix) {\n    var startIndex = 0;\n    var stopIndex = items.length - 1;\n    var middle = Math.floor((stopIndex + startIndex) / 2);\n    \n    while (stopIndex > startIndex && middle >= 0 && items[middle].indexOf(prefix) !== 0) {\n        if (prefix < items[middle]) {\n            stopIndex = middle - 1;\n        } else if (prefix > items[middle]) {\n            startIndex = middle + 1;\n        }\n        middle = Math.floor((stopIndex + startIndex) / 2);\n    }\n    while (middle > 0 && items[middle-1].indexOf(prefix) === 0) {\n        middle--;\n    }\n    return middle >= 0 ? middle : 0; // ensure we're not returning a negative index\n}\n\nvar uriRegex = /[a-zA-Z_0-9\\/\\.:\\-#]/;\nvar char = '-._A-Za-z0-9:\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02ff\\u0300-\\u037D\\u037F-\\u1FFF\\u200C\\u200D\\u203f\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD';\nvar nameChar = '[' + char + ']';\nvar varChar = '[' + char + '\\\\$]';\nvar nameCharRegExp = new RegExp(nameChar);\nvar varCharRegExp = new RegExp(varChar);\n\nvar varDeclLabels = {\n    'LetBinding': 'Let binding',\n    'Param': 'Function parameter',\n    'QuantifiedExpr': 'Quantified expression binding',\n    'VarDeclStatement': 'Local variable',\n    'ForBinding': 'For binding',\n    'TumblingWindowClause': 'Tumbling window binding',\n    'WindowVars': 'Window variable',\n    'SlidingWindowClause': 'Sliding window binding',\n    'PositionalVar': 'Positional variable',\n    'CurrentItem': 'Current item',\n    'PreviousItem': 'Previous item',\n    'NextItem': 'Next item',\n    'CountClause': 'Count binding',\n    'GroupingVariable': 'Grouping variable',\n    'VarDecl': 'Module variable'\n};\n\nvar findCompletions = function(prefix, allIdentifiers) {\n    allIdentifiers.sort();\n    var startIdx = prefixBinarySearch(allIdentifiers, prefix);\n    var matches = [];\n    for (var i = startIdx; i < allIdentifiers.length && allIdentifiers[i].indexOf(prefix) === 0; i++) {\n        matches.push(allIdentifiers[i]);\n    }\n    return matches;\n};\n\n\nvar completePrefix = function(identifier, pos, sctx){\n    var idx = identifier.indexOf(':');\n    if(idx === -1) {\n        var prefixes = [];\n        var namespaces = sctx.getNamespaces();\n        Object.keys(namespaces).forEach(function(key){\n            if(namespaces[key].type === 'module' || key === 'http://www.w3.org/2005/xquery-local-functions') {\n                prefixes.push(namespaces[key].prefix);\n            }\n        });\n        var matches = findCompletions(identifier, prefixes);\n        var match = function(name) {\n            return {\n                name: name + ':',\n                value: name + ':',\n                meta: 'prefix'\n            };\n        };\n        return matches.map(match);\n    } else {\n        return [];\n    }\n};\n\nvar completeFunction = function(identifier, pos, sctx){\n    var names = [];\n    var snippets = {};\n    var functions = sctx.getFunctions();\n    var uri = '';\n    var prefix = '';\n    var name = identifier;\n    var idx = identifier.indexOf(':');\n    var defaultNamespace = false;\n    if(idx !== -1){\n        prefix = identifier.substring(0, idx);\n        name = identifier.substring(idx + 1);\n        var ns = sctx.getNamespaceByPrefix(prefix);\n        if(ns){\n            uri = sctx.getNamespaceByPrefix(prefix).uri;\n        }\n    } else {\n        defaultNamespace = true;\n        uri = sctx.root.defaultFunctionNamespace;\n    }\n    Object.keys(functions).forEach(function(key){\n        var fn = functions[key];\n        var ns = key.substring(0, key.indexOf('#'));\n        var name = key.substring(key.indexOf('#') + 1);\n        name = name.substring(0, name.indexOf('#'));\n        if(ns !== uri) {\n            return;\n        }\n        if(!defaultNamespace){\n            name = sctx.getNamespaces()[ns].prefix + ':' + name;\n        }\n        name += '(';\n        var snippet = name;\n        snippet += fn.params.map(function(param, index){\n            return '${' + (index + 1) + ':\\\\' + param.split(' ')[0] + '}';\n        }).join(', ');\n        name += fn.params.join(', ');\n        name += ')';\n        snippet += ')';\n        names.push(name);\n        snippets[name] = snippet;\n    });\n    var matches = findCompletions(identifier, names);\n    var match = function(name) {\n        return {\n            name: name,\n            value: name,\n            meta: 'function',\n            priority: 4,\n            identifierRegex: nameCharRegExp,\n            snippet: snippets[name]\n        };\n    };\n    return matches.map(match);\n};\n\nvar completeVariable = function(identifier, pos, sctx){\n    var uri = '';\n    var prefix = '';\n    var idx = identifier.indexOf(':');\n    if(idx !== -1){\n        prefix = identifier.substring(0, idx);\n        uri = sctx.getNamespaceByPrefix(prefix).uri;\n    }\n    var decls = sctx.getVariables();\n    var names = [];\n    var types = {};\n    Object.keys(decls).forEach(function(key){\n        var i = key.indexOf('#');\n        var ns = key.substring(0, i);\n        var name = key.substring(i+1);\n        if(ns !== ''){\n            names.push(sctx.getPrefixByNamespace(ns) + ':' + name);\n            types[sctx.getPrefixByNamespace(ns) + ':' + name] = decls[key].type;\n        } else {\n            names.push(name);\n            types[name] = decls[key].type;\n        }\n    });\n    \n    var matches = findCompletions(identifier, names);\n    var match = function(name) {\n        return {\n            name: '$' + name,\n            value: '$' + name,\n            meta: varDeclLabels[types[name]],\n            priority: 4,\n            identifierRegex: varCharRegExp\n        };\n    };\n    return matches.map(match);\n};\n\nvar completeExpr = function(line, pos, sctx){\n    var identifier = retrievePrecedingIdentifier(line, pos.col, nameCharRegExp);\n    var before = line.substring(0, pos.col - (identifier.length === 0 ? 0 : identifier.length));\n    var isVar = before[before.length - 1] === '$';\n    if(isVar) {\n        return completeVariable(identifier, pos, sctx);\n    } else if(identifier !== '') {\n        return completeFunction(identifier, pos, sctx).concat(completePrefix(identifier, pos, sctx));\n    } else {\n        return completeVariable(identifier, pos, sctx).concat(completeFunction(identifier, pos, sctx)).concat(completePrefix(identifier, pos, sctx));\n    }\n};\n\nvar completeModuleUri = function(line, pos, sctx){\n    var identifier = retrievePrecedingIdentifier(line, pos.col, uriRegex);\n    var matches = findCompletions(identifier, sctx.getAvailableModuleNamespaces());\n    var match = function(uri) {\n        return {\n            name: uri,\n            value: uri,\n            meta: 'module',\n            priority: 4,\n            identifierRegex: uriRegex\n        };\n    };\n    return matches.map(match);\n};\n\nexports.complete = function(source, ast, rootSctx, pos){\n    var line = source.split('\\n')[pos.line];\n    var node = TreeOps.findNode(ast, pos);\n    var sctx = TreeOps.findNode(rootSctx, pos);\n    sctx = sctx ? sctx : rootSctx;\n    if(node && node.name === 'URILiteral' && node.getParent && node.getParent.name === 'ModuleImport'){\n        return completeModuleUri(line, pos, sctx);\n    } else {\n        return completeExpr(line, pos, sctx);\n    }\n};\n\n},\n{\"../tree_ops\":11}],\n7:[function(require,module,exports){\nexports.StyleChecker = function (ast, source) {\n    'use strict';\n\n    var tab = '    ';\n    var markers = [];\n    \n    this.getMarkers = function(){\n        return markers;\n    };\n\n    this.WS = function(node) {\n        var lines = node.value.split('\\n');\n        lines.forEach(function(line, index){\n            var isFirst = index === 0;\n            var isLast  = index === (lines.length - 1);\n\n            if(/\\r$/.test(line)) {\n                markers.push({\n                    pos: {\n                        sl: node.pos.sl + index,\n                        el: node.pos.sl + index,\n                        sc: line.length - 1,\n                        ec: line.length\n                    },\n                    type: 'warning',\n                    level: 'warning',\n                    message: '[SW01] Detected CRLF'\n                });\n            }\n            \n            var match = line.match(/\\t+/);\n            if(match !== null){\n                markers.push({\n                    pos: {\n                        sl: node.pos.sl + index,\n                        el: node.pos.sl + index,\n                        sc: match.index,\n                        ec: match.index + match[0].length\n                    },\n                    type: 'warning',\n                    level: 'warning',\n                    message: '[SW02] Tabs detected'\n                });\n            }\n\n            if((!isFirst) && isLast){\n                match = line.match(/^\\ +/);\n                if(match !== null) {\n                    var mod = match[0].length % tab.length;\n                    if(mod !== 0) {\n                        markers.push({\n                            pos: {\n                                sl: node.pos.sl + index,\n                                el: node.pos.sl + index,\n                                sc: match.index,\n                                ec: match.index + match[0].length\n                            },\n                            type: 'warning',\n                            level: 'warning',\n                            message: '[SW03] Unexcepted indentation of ' + match[0].length\n                        });\n                    }\n                }\n            }\n        });\n        return true;\n    };\n    \n    this.visit = function (node, index) {\n        var name = node.name;\n        var skip = false;\n\n        if (typeof this[name] === 'function') {\n            skip = this[name](node, index) === true;\n        }\n\n        if (!skip) {\n            this.visitChildren(node);\n        }\n    };\n\n    this.visitChildren = function (node, handler) {\n        for (var i = 0; i < node.children.length; i++) {\n            var child = node.children[i];\n            if (handler !== undefined && typeof handler[child.name] === 'function') {\n                handler[child.name](child);\n            } else {\n                this.visit(child);\n            }\n        }\n    };\n\n    source.split('\\n').forEach(function(line, index){\n        var match = line.match(/\\ +$/);\n        if(match){\n            markers.push({\n                pos: {\n                    sl: index,\n                    el: index,\n                    sc: match.index,\n                    ec: match.index + match[0].length\n                },\n                type: 'warning',\n                level: 'warning',\n                message: '[SW04] Trailing whitespace'\n            });\n        }\n    });\n    this.visit(ast);\n};\n},\n{}],\n8:[function(require,module,exports){\nexports.JSONParseTreeHandler = function (code) {\n\t'use strict';\n    var toBeIndex = ['VarDecl', 'FunctionDecl'];\n    var list = [\n        'OrExpr', 'AndExpr', 'ComparisonExpr', 'StringConcatExpr', 'RangeExpr',\n        'UnionExpr', 'IntersectExceptExpr', 'InstanceofExpr', 'TreatExpr', 'CastableExpr', 'CastExpr', 'UnaryExpr', 'ValueExpr',\n        'FTContainsExpr', 'SimpleMapExpr', 'PathExpr', 'RelativePathExpr', 'PostfixExpr', 'StepExpr'\n    ];\n\n    var ast = null;\n    var ptr = null;\n    var remains = code;\n    var cursor = 0;\n    var lineCursor = 0;\n    var line = 0;\n\n    function createNode(name) {\n        return {\n            name: name,\n            children: [],\n            getParent: null,\n            pos: {\n                sl: 0,\n                sc: 0,\n                el: 0,\n                ec: 0\n            }\n        };\n    }\n\n    function pushNode(name) { //begin\n        var node = createNode(name);\n        if (ast === null) {\n            ast = node;\n            ast.index = [];\n            ptr = node;\n        } else {\n            node.getParent = ptr;\n            ptr.children.push(node);\n            ptr = ptr.children[ptr.children.length - 1];\n        }\n    }\n\n    function popNode() {\n\n        if (ptr.children.length > 0) {\n            var s = ptr.children[0];\n            var e = null;\n            for (var i = ptr.children.length - 1; i >= 0; i--) {\n                e = ptr.children[i];\n                if (e.pos.el !== 0 || e.pos.ec !== 0) {\n                    break;\n                }\n            }\n            ptr.pos.sl = s.pos.sl;\n            ptr.pos.sc = s.pos.sc;\n            ptr.pos.el = e.pos.el;\n            ptr.pos.ec = e.pos.ec;\n        }\n        if (ptr.name === 'FunctionName') {\n            ptr.name = 'EQName';\n        }\n        if (ptr.name === 'EQName' && ptr.value === undefined) {\n            ptr.value = ptr.children[0].value;\n            ptr.children.pop();\n        }\n    \n        if(toBeIndex.indexOf(ptr.name) !== -1) {\n            ast.index.push(ptr);\n        }\n    \n        if (ptr.getParent !== null) {\n            ptr = ptr.getParent;\n        } else {\n        }\n        if (ptr.children.length > 0) {\n            var lastChild = ptr.children[ptr.children.length - 1];\n            if (lastChild.children.length === 1 && list.indexOf(lastChild.name) !== -1) {\n                ptr.children[ptr.children.length - 1] = lastChild.children[0];\n            }\n        }\n    }\n\n    this.closeParseTree = function () {\n        while (ptr.getParent !== null) {\n            popNode();\n        }\n        popNode();\n    };\n\n    this.peek = function () {\n        return ptr;\n    };\n\n    this.getParseTree = function () {\n        return ast;\n    };\n\n    this.reset = function () {}; //input\n\n    this.startNonterminal = function (name, begin) {\n        pushNode(name, begin);\n    };\n\n    this.endNonterminal = function () {//name, end\n        popNode();\n    };\n\n    this.terminal = function (name, begin, end) {\n        name = (name.substring(0, 1) === '\\'' && name.substring(name.length - 1) === '\\'') ? 'TOKEN' : name;\n        pushNode(name, begin);\n        setValue(ptr, begin, end);\n        popNode();\n    };\n\n    this.whitespace = function (begin, end) {\n        var name = 'WS';\n        pushNode(name, begin);\n        setValue(ptr, begin, end);\n        popNode();\n    };\n\n    function setValue(node, begin, end) {\n\n        var e = end - cursor;\n        ptr.value = remains.substring(0, e);\n        remains = remains.substring(e);\n        cursor = end;\n\n        var sl = line;\n        var sc = lineCursor;\n        var el = sl + ptr.value.split('\\n').length - 1;\n        var lastIdx = ptr.value.lastIndexOf('\\n');\n        var ec = lastIdx === -1 ? sc + ptr.value.length : ptr.value.substring(lastIdx + 1).length;\n\n        line = el;\n        lineCursor = ec;\n\n        ptr.pos.sl = sl;\n        ptr.pos.sc = sc;\n        ptr.pos.el = el;\n        ptr.pos.ec = ec;\n    }\n};\n},\n{}],\n9:[function(require,module,exports){\n                                                            var JSONiqParser = exports.JSONiqParser = function JSONiqParser(string, parsingEventHandler)\n                                                            {\n                                                              init(string, parsingEventHandler);\n  var self = this;\n\n  this.ParseException = function(b, e, s, o, x)\n  {\n    var\n      begin = b,\n      end = e,\n      state = s,\n      offending = o,\n      expected = x;\n\n    this.getBegin = function() {return begin;};\n    this.getEnd = function() {return end;};\n    this.getState = function() {return state;};\n    this.getExpected = function() {return expected;};\n    this.getOffending = function() {return offending;};\n\n    this.getMessage = function()\n    {\n      return offending < 0 ? \"lexical analysis failed\" : \"syntax error\";\n    };\n  };\n\n  function init(string, parsingEventHandler)\n  {\n    eventHandler = parsingEventHandler;\n    input = string;\n    size = string.length;\n    reset(0, 0, 0);\n  }\n\n  this.getInput = function()\n  {\n    return input;\n  };\n\n  function reset(l, b, e)\n  {\n            b0 = b; e0 = b;\n    l1 = l; b1 = b; e1 = e;\n    l2 = 0;\n    end = e;\n    ex = -1;\n    memo = {};\n    eventHandler.reset(input);\n  }\n\n  this.getOffendingToken = function(e)\n  {\n    var o = e.getOffending();\n    return o >= 0 ? JSONiqParser.TOKEN[o] : null;\n  };\n\n  this.getExpectedTokenSet = function(e)\n  {\n    var expected;\n    if (e.getExpected() < 0)\n    {\n      expected = JSONiqParser.getTokenSet(- e.getState());\n    }\n    else\n    {\n      expected = [JSONiqParser.TOKEN[e.getExpected()]];\n    }\n    return expected;\n  };\n\n  this.getErrorMessage = function(e)\n  {\n    var tokenSet = this.getExpectedTokenSet(e);\n    var found = this.getOffendingToken(e);\n    var prefix = input.substring(0, e.getBegin());\n    var lines = prefix.split(\"\\n\");\n    var line = lines.length;\n    var column = lines[line - 1].length + 1;\n    var size = e.getEnd() - e.getBegin();\n    return e.getMessage()\n         + (found == null ? \"\" : \", found \" + found)\n         + \"\\nwhile expecting \"\n         + (tokenSet.length == 1 ? tokenSet[0] : (\"[\" + tokenSet.join(\", \") + \"]\"))\n         + \"\\n\"\n         + (size == 0 || found != null ? \"\" : \"after successfully scanning \" + size + \" characters beginning \")\n         + \"at line \" + line + \", column \" + column + \":\\n...\"\n         + input.substring(e.getBegin(), Math.min(input.length, e.getBegin() + 64))\n         + \"...\";\n  };\n\n  this.parse_XQuery = function()\n  {\n    eventHandler.startNonterminal(\"XQuery\", e0);\n    lookahead1W(278);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Module();\n    shift(25);                      // EOF\n    eventHandler.endNonterminal(\"XQuery\", e0);\n  };\n\n  function parse_Module()\n  {\n    eventHandler.startNonterminal(\"Module\", e0);\n    switch (l1)\n    {\n    case 170:                       // 'jsoniq'\n      lookahead2W(168);             // S^WS | '#' | '(' | '(:' | 'encoding' | 'version'\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 64682                 // 'jsoniq' 'encoding'\n     || lk == 137898)               // 'jsoniq' 'version'\n    {\n      parse_VersionDecl();\n    }\n    lookahead1W(278);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    switch (l1)\n    {\n    case 185:                       // 'module'\n      lookahead2W(146);             // S^WS | '#' | '(' | '(:' | 'namespace'\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 95929:                     // 'module' 'namespace'\n      whitespace();\n      parse_LibraryModule();\n      break;\n    default:\n      whitespace();\n      parse_MainModule();\n    }\n    eventHandler.endNonterminal(\"Module\", e0);\n  }\n\n  function parse_VersionDecl()\n  {\n    eventHandler.startNonterminal(\"VersionDecl\", e0);\n    shift(170);                     // 'jsoniq'\n    lookahead1W(120);               // S^WS | '(:' | 'encoding' | 'version'\n    switch (l1)\n    {\n    case 126:                       // 'encoding'\n      shift(126);                   // 'encoding'\n      lookahead1W(17);              // StringLiteral | S^WS | '(:'\n      shift(11);                    // StringLiteral\n      break;\n    default:\n      shift(269);                   // 'version'\n      lookahead1W(17);              // StringLiteral | S^WS | '(:'\n      shift(11);                    // StringLiteral\n      lookahead1W(113);             // S^WS | '(:' | ';' | 'encoding'\n      if (l1 == 126)                // 'encoding'\n      {\n        shift(126);                 // 'encoding'\n        lookahead1W(17);            // StringLiteral | S^WS | '(:'\n        shift(11);                  // StringLiteral\n      }\n    }\n    lookahead1W(29);                // S^WS | '(:' | ';'\n    whitespace();\n    parse_Separator();\n    eventHandler.endNonterminal(\"VersionDecl\", e0);\n  }\n\n  function parse_LibraryModule()\n  {\n    eventHandler.startNonterminal(\"LibraryModule\", e0);\n    parse_ModuleDecl();\n    lookahead1W(142);               // S^WS | EOF | '(:' | 'declare' | 'import'\n    whitespace();\n    parse_Prolog();\n    eventHandler.endNonterminal(\"LibraryModule\", e0);\n  }\n\n  function parse_ModuleDecl()\n  {\n    eventHandler.startNonterminal(\"ModuleDecl\", e0);\n    shift(185);                     // 'module'\n    lookahead1W(64);                // S^WS | '(:' | 'namespace'\n    shift(187);                     // 'namespace'\n    lookahead1W(240);               // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_NCName();\n    lookahead1W(30);                // S^WS | '(:' | '='\n    shift(61);                      // '='\n    lookahead1W(15);                // URILiteral | S^WS | '(:'\n    shift(7);                       // URILiteral\n    lookahead1W(29);                // S^WS | '(:' | ';'\n    whitespace();\n    parse_Separator();\n    eventHandler.endNonterminal(\"ModuleDecl\", e0);\n  }\n\n  function parse_Prolog()\n  {\n    eventHandler.startNonterminal(\"Prolog\", e0);\n    for (;;)\n    {\n      lookahead1W(278);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      switch (l1)\n      {\n      case 109:                     // 'declare'\n        lookahead2W(207);           // S^WS | '#' | '%' | '(' | '(:' | 'base-uri' | 'boundary-space' | 'collection' |\n        break;\n      case 155:                     // 'import'\n        lookahead2W(169);           // S^WS | '#' | '(' | '(:' | 'module' | 'schema'\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk != 43117               // 'declare' 'base-uri'\n       && lk != 44141               // 'declare' 'boundary-space'\n       && lk != 50797               // 'declare' 'construction'\n       && lk != 53869               // 'declare' 'copy-namespaces'\n       && lk != 54893               // 'declare' 'decimal-format'\n       && lk != 56429               // 'declare' 'default'\n       && lk != 73325               // 'declare' 'ft-option'\n       && lk != 94875               // 'import' 'module'\n       && lk != 95853               // 'declare' 'namespace'\n       && lk != 106093              // 'declare' 'ordering'\n       && lk != 115821              // 'declare' 'revalidation'\n       && lk != 117403)             // 'import' 'schema'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 109:                     // 'declare'\n        lookahead2W(201);           // S^WS | '(:' | 'base-uri' | 'boundary-space' | 'construction' |\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk == 56429)              // 'declare' 'default'\n      {\n        lk = memoized(0, e0);\n        if (lk == 0)\n        {\n          var b0A = b0; var e0A = e0; var l1A = l1;\n          var b1A = b1; var e1A = e1; var l2A = l2;\n          var b2A = b2; var e2A = e2;\n          try\n          {\n            try_DefaultNamespaceDecl();\n            lk = -1;\n          }\n          catch (p1A)\n          {\n            lk = -2;\n          }\n          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n          b2 = b2A; e2 = e2A; end = e2A; }}\n          memoize(0, e0, lk);\n        }\n      }\n      switch (lk)\n      {\n      case -1:\n        whitespace();\n        parse_DefaultNamespaceDecl();\n        break;\n      case 95853:                   // 'declare' 'namespace'\n        whitespace();\n        parse_NamespaceDecl();\n        break;\n      case 155:                     // 'import'\n        whitespace();\n        parse_Import();\n        break;\n      case 73325:                   // 'declare' 'ft-option'\n        whitespace();\n        parse_FTOptionDecl();\n        break;\n      default:\n        whitespace();\n        parse_Setter();\n      }\n      lookahead1W(29);              // S^WS | '(:' | ';'\n      whitespace();\n      parse_Separator();\n    }\n    for (;;)\n    {\n      lookahead1W(278);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      switch (l1)\n      {\n      case 109:                     // 'declare'\n        lookahead2W(202);           // S^WS | '#' | '%' | '(' | '(:' | 'collection' | 'context' | 'function' | 'index' |\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk != 17005               // 'declare' '%'\n       && lk != 49261               // 'declare' 'collection'\n       && lk != 52333               // 'declare' 'context'\n       && lk != 75373               // 'declare' 'function'\n       && lk != 80493               // 'declare' 'index'\n       && lk != 83565               // 'declare' 'integrity'\n       && lk != 104045              // 'declare' 'option'\n       && lk != 134765              // 'declare' 'updating'\n       && lk != 137325)             // 'declare' 'variable'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 109:                     // 'declare'\n        lookahead2W(197);           // S^WS | '%' | '(:' | 'collection' | 'context' | 'function' | 'index' |\n        break;\n      default:\n        lk = l1;\n      }\n      switch (lk)\n      {\n      case 52333:                   // 'declare' 'context'\n        whitespace();\n        parse_ContextItemDecl();\n        break;\n      case 104045:                  // 'declare' 'option'\n        whitespace();\n        parse_OptionDecl();\n        break;\n      default:\n        whitespace();\n        parse_AnnotatedDecl();\n      }\n      lookahead1W(29);              // S^WS | '(:' | ';'\n      whitespace();\n      parse_Separator();\n    }\n    eventHandler.endNonterminal(\"Prolog\", e0);\n  }\n\n  function parse_Separator()\n  {\n    eventHandler.startNonterminal(\"Separator\", e0);\n    shift(54);                      // ';'\n    eventHandler.endNonterminal(\"Separator\", e0);\n  }\n\n  function parse_Setter()\n  {\n    eventHandler.startNonterminal(\"Setter\", e0);\n    switch (l1)\n    {\n    case 109:                       // 'declare'\n      lookahead2W(194);             // S^WS | '(:' | 'base-uri' | 'boundary-space' | 'construction' |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 56429)                // 'declare' 'default'\n    {\n      lk = memoized(1, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_DefaultCollationDecl();\n          lk = -2;\n        }\n        catch (p2A)\n        {\n          try\n          {\n            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n            b2 = b2A; e2 = e2A; end = e2A; }}\n            try_EmptyOrderDecl();\n            lk = -6;\n          }\n          catch (p6A)\n          {\n            lk = -9;\n          }\n        }\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(1, e0, lk);\n      }\n    }\n    switch (lk)\n    {\n    case 44141:                     // 'declare' 'boundary-space'\n      parse_BoundarySpaceDecl();\n      break;\n    case -2:\n      parse_DefaultCollationDecl();\n      break;\n    case 43117:                     // 'declare' 'base-uri'\n      parse_BaseURIDecl();\n      break;\n    case 50797:                     // 'declare' 'construction'\n      parse_ConstructionDecl();\n      break;\n    case 106093:                    // 'declare' 'ordering'\n      parse_OrderingModeDecl();\n      break;\n    case -6:\n      parse_EmptyOrderDecl();\n      break;\n    case 115821:                    // 'declare' 'revalidation'\n      parse_RevalidationDecl();\n      break;\n    case 53869:                     // 'declare' 'copy-namespaces'\n      parse_CopyNamespacesDecl();\n      break;\n    default:\n      parse_DecimalFormatDecl();\n    }\n    eventHandler.endNonterminal(\"Setter\", e0);\n  }\n\n  function parse_BoundarySpaceDecl()\n  {\n    eventHandler.startNonterminal(\"BoundarySpaceDecl\", e0);\n    shift(109);                     // 'declare'\n    lookahead1W(36);                // S^WS | '(:' | 'boundary-space'\n    shift(86);                      // 'boundary-space'\n    lookahead1W(137);               // S^WS | '(:' | 'preserve' | 'strip'\n    switch (l1)\n    {\n    case 218:                       // 'preserve'\n      shift(218);                   // 'preserve'\n      break;\n    default:\n      shift(246);                   // 'strip'\n    }\n    eventHandler.endNonterminal(\"BoundarySpaceDecl\", e0);\n  }\n\n  function parse_DefaultCollationDecl()\n  {\n    eventHandler.startNonterminal(\"DefaultCollationDecl\", e0);\n    shift(109);                     // 'declare'\n    lookahead1W(49);                // S^WS | '(:' | 'default'\n    shift(110);                     // 'default'\n    lookahead1W(41);                // S^WS | '(:' | 'collation'\n    shift(95);                      // 'collation'\n    lookahead1W(15);                // URILiteral | S^WS | '(:'\n    shift(7);                       // URILiteral\n    eventHandler.endNonterminal(\"DefaultCollationDecl\", e0);\n  }\n\n  function try_DefaultCollationDecl()\n  {\n    shiftT(109);                    // 'declare'\n    lookahead1W(49);                // S^WS | '(:' | 'default'\n    shiftT(110);                    // 'default'\n    lookahead1W(41);                // S^WS | '(:' | 'collation'\n    shiftT(95);                     // 'collation'\n    lookahead1W(15);                // URILiteral | S^WS | '(:'\n    shiftT(7);                      // URILiteral\n  }\n\n  function parse_BaseURIDecl()\n  {\n    eventHandler.startNonterminal(\"BaseURIDecl\", e0);\n    shift(109);                     // 'declare'\n    lookahead1W(35);                // S^WS | '(:' | 'base-uri'\n    shift(84);                      // 'base-uri'\n    lookahead1W(15);                // URILiteral | S^WS | '(:'\n    shift(7);                       // URILiteral\n    eventHandler.endNonterminal(\"BaseURIDecl\", e0);\n  }\n\n  function parse_ConstructionDecl()\n  {\n    eventHandler.startNonterminal(\"ConstructionDecl\", e0);\n    shift(109);                     // 'declare'\n    lookahead1W(44);                // S^WS | '(:' | 'construction'\n    shift(99);                      // 'construction'\n    lookahead1W(137);               // S^WS | '(:' | 'preserve' | 'strip'\n    switch (l1)\n    {\n    case 246:                       // 'strip'\n      shift(246);                   // 'strip'\n      break;\n    default:\n      shift(218);                   // 'preserve'\n    }\n    eventHandler.endNonterminal(\"ConstructionDecl\", e0);\n  }\n\n  function parse_OrderingModeDecl()\n  {\n    eventHandler.startNonterminal(\"OrderingModeDecl\", e0);\n    shift(109);                     // 'declare'\n    lookahead1W(71);                // S^WS | '(:' | 'ordering'\n    shift(207);                     // 'ordering'\n    lookahead1W(135);               // S^WS | '(:' | 'ordered' | 'unordered'\n    switch (l1)\n    {\n    case 206:                       // 'ordered'\n      shift(206);                   // 'ordered'\n      break;\n    default:\n      shift(262);                   // 'unordered'\n    }\n    eventHandler.endNonterminal(\"OrderingModeDecl\", e0);\n  }\n\n  function parse_EmptyOrderDecl()\n  {\n    eventHandler.startNonterminal(\"EmptyOrderDecl\", e0);\n    shift(109);                     // 'declare'\n    lookahead1W(49);                // S^WS | '(:' | 'default'\n    shift(110);                     // 'default'\n    lookahead1W(70);                // S^WS | '(:' | 'order'\n    shift(205);                     // 'order'\n    lookahead1W(52);                // S^WS | '(:' | 'empty'\n    shift(124);                     // 'empty'\n    lookahead1W(125);               // S^WS | '(:' | 'greatest' | 'least'\n    switch (l1)\n    {\n    case 149:                       // 'greatest'\n      shift(149);                   // 'greatest'\n      break;\n    default:\n      shift(176);                   // 'least'\n    }\n    eventHandler.endNonterminal(\"EmptyOrderDecl\", e0);\n  }\n\n  function try_EmptyOrderDecl()\n  {\n    shiftT(109);                    // 'declare'\n    lookahead1W(49);                // S^WS | '(:' | 'default'\n    shiftT(110);                    // 'default'\n    lookahead1W(70);                // S^WS | '(:' | 'order'\n    shiftT(205);                    // 'order'\n    lookahead1W(52);                // S^WS | '(:' | 'empty'\n    shiftT(124);                    // 'empty'\n    lookahead1W(125);               // S^WS | '(:' | 'greatest' | 'least'\n    switch (l1)\n    {\n    case 149:                       // 'greatest'\n      shiftT(149);                  // 'greatest'\n      break;\n    default:\n      shiftT(176);                  // 'least'\n    }\n  }\n\n  function parse_CopyNamespacesDecl()\n  {\n    eventHandler.startNonterminal(\"CopyNamespacesDecl\", e0);\n    shift(109);                     // 'declare'\n    lookahead1W(47);                // S^WS | '(:' | 'copy-namespaces'\n    shift(105);                     // 'copy-namespaces'\n    lookahead1W(132);               // S^WS | '(:' | 'no-preserve' | 'preserve'\n    whitespace();\n    parse_PreserveMode();\n    lookahead1W(25);                // S^WS | '(:' | ','\n    shift(42);                      // ','\n    lookahead1W(127);               // S^WS | '(:' | 'inherit' | 'no-inherit'\n    whitespace();\n    parse_InheritMode();\n    eventHandler.endNonterminal(\"CopyNamespacesDecl\", e0);\n  }\n\n  function parse_PreserveMode()\n  {\n    eventHandler.startNonterminal(\"PreserveMode\", e0);\n    switch (l1)\n    {\n    case 218:                       // 'preserve'\n      shift(218);                   // 'preserve'\n      break;\n    default:\n      shift(193);                   // 'no-preserve'\n    }\n    eventHandler.endNonterminal(\"PreserveMode\", e0);\n  }\n\n  function parse_InheritMode()\n  {\n    eventHandler.startNonterminal(\"InheritMode\", e0);\n    switch (l1)\n    {\n    case 159:                       // 'inherit'\n      shift(159);                   // 'inherit'\n      break;\n    default:\n      shift(192);                   // 'no-inherit'\n    }\n    eventHandler.endNonterminal(\"InheritMode\", e0);\n  }\n\n  function parse_DecimalFormatDecl()\n  {\n    eventHandler.startNonterminal(\"DecimalFormatDecl\", e0);\n    shift(109);                     // 'declare'\n    lookahead1W(118);               // S^WS | '(:' | 'decimal-format' | 'default'\n    switch (l1)\n    {\n    case 107:                       // 'decimal-format'\n      shift(107);                   // 'decimal-format'\n      lookahead1W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_EQName();\n      break;\n    default:\n      shift(110);                   // 'default'\n      lookahead1W(48);              // S^WS | '(:' | 'decimal-format'\n      shift(107);                   // 'decimal-format'\n    }\n    for (;;)\n    {\n      lookahead1W(204);             // S^WS | '(:' | ';' | 'NaN' | 'decimal-separator' | 'digit' |\n      if (l1 == 54)                 // ';'\n      {\n        break;\n      }\n      whitespace();\n      parse_DFPropertyName();\n      lookahead1W(30);              // S^WS | '(:' | '='\n      shift(61);                    // '='\n      lookahead1W(17);              // StringLiteral | S^WS | '(:'\n      shift(11);                    // StringLiteral\n    }\n    eventHandler.endNonterminal(\"DecimalFormatDecl\", e0);\n  }\n\n  function parse_DFPropertyName()\n  {\n    eventHandler.startNonterminal(\"DFPropertyName\", e0);\n    switch (l1)\n    {\n    case 108:                       // 'decimal-separator'\n      shift(108);                   // 'decimal-separator'\n      break;\n    case 151:                       // 'grouping-separator'\n      shift(151);                   // 'grouping-separator'\n      break;\n    case 158:                       // 'infinity'\n      shift(158);                   // 'infinity'\n      break;\n    case 182:                       // 'minus-sign'\n      shift(182);                   // 'minus-sign'\n      break;\n    case 68:                        // 'NaN'\n      shift(68);                    // 'NaN'\n      break;\n    case 213:                       // 'percent'\n      shift(213);                   // 'percent'\n      break;\n    case 212:                       // 'per-mille'\n      shift(212);                   // 'per-mille'\n      break;\n    case 280:                       // 'zero-digit'\n      shift(280);                   // 'zero-digit'\n      break;\n    case 117:                       // 'digit'\n      shift(117);                   // 'digit'\n      break;\n    default:\n      shift(211);                   // 'pattern-separator'\n    }\n    eventHandler.endNonterminal(\"DFPropertyName\", e0);\n  }\n\n  function parse_Import()\n  {\n    eventHandler.startNonterminal(\"Import\", e0);\n    switch (l1)\n    {\n    case 155:                       // 'import'\n      lookahead2W(130);             // S^WS | '(:' | 'module' | 'schema'\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 117403:                    // 'import' 'schema'\n      parse_SchemaImport();\n      break;\n    default:\n      parse_ModuleImport();\n    }\n    eventHandler.endNonterminal(\"Import\", e0);\n  }\n\n  function parse_SchemaImport()\n  {\n    eventHandler.startNonterminal(\"SchemaImport\", e0);\n    shift(155);                     // 'import'\n    lookahead1W(76);                // S^WS | '(:' | 'schema'\n    shift(229);                     // 'schema'\n    lookahead1W(141);               // URILiteral | S^WS | '(:' | 'default' | 'namespace'\n    if (l1 != 7)                    // URILiteral\n    {\n      whitespace();\n      parse_SchemaPrefix();\n    }\n    lookahead1W(15);                // URILiteral | S^WS | '(:'\n    shift(7);                       // URILiteral\n    lookahead1W(112);               // S^WS | '(:' | ';' | 'at'\n    if (l1 == 82)                   // 'at'\n    {\n      shift(82);                    // 'at'\n      lookahead1W(15);              // URILiteral | S^WS | '(:'\n      shift(7);                     // URILiteral\n      for (;;)\n      {\n        lookahead1W(107);           // S^WS | '(:' | ',' | ';'\n        if (l1 != 42)               // ','\n        {\n          break;\n        }\n        shift(42);                  // ','\n        lookahead1W(15);            // URILiteral | S^WS | '(:'\n        shift(7);                   // URILiteral\n      }\n    }\n    eventHandler.endNonterminal(\"SchemaImport\", e0);\n  }\n\n  function parse_SchemaPrefix()\n  {\n    eventHandler.startNonterminal(\"SchemaPrefix\", e0);\n    switch (l1)\n    {\n    case 187:                       // 'namespace'\n      shift(187);                   // 'namespace'\n      lookahead1W(240);             // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_NCName();\n      lookahead1W(30);              // S^WS | '(:' | '='\n      shift(61);                    // '='\n      break;\n    default:\n      shift(110);                   // 'default'\n      lookahead1W(50);              // S^WS | '(:' | 'element'\n      shift(122);                   // 'element'\n      lookahead1W(64);              // S^WS | '(:' | 'namespace'\n      shift(187);                   // 'namespace'\n    }\n    eventHandler.endNonterminal(\"SchemaPrefix\", e0);\n  }\n\n  function parse_ModuleImport()\n  {\n    eventHandler.startNonterminal(\"ModuleImport\", e0);\n    shift(155);                     // 'import'\n    lookahead1W(63);                // S^WS | '(:' | 'module'\n    shift(185);                     // 'module'\n    lookahead1W(93);                // URILiteral | S^WS | '(:' | 'namespace'\n    if (l1 == 187)                  // 'namespace'\n    {\n      shift(187);                   // 'namespace'\n      lookahead1W(240);             // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_NCName();\n      lookahead1W(30);              // S^WS | '(:' | '='\n      shift(61);                    // '='\n    }\n    lookahead1W(15);                // URILiteral | S^WS | '(:'\n    shift(7);                       // URILiteral\n    lookahead1W(112);               // S^WS | '(:' | ';' | 'at'\n    if (l1 == 82)                   // 'at'\n    {\n      shift(82);                    // 'at'\n      lookahead1W(15);              // URILiteral | S^WS | '(:'\n      shift(7);                     // URILiteral\n      for (;;)\n      {\n        lookahead1W(107);           // S^WS | '(:' | ',' | ';'\n        if (l1 != 42)               // ','\n        {\n          break;\n        }\n        shift(42);                  // ','\n        lookahead1W(15);            // URILiteral | S^WS | '(:'\n        shift(7);                   // URILiteral\n      }\n    }\n    eventHandler.endNonterminal(\"ModuleImport\", e0);\n  }\n\n  function parse_NamespaceDecl()\n  {\n    eventHandler.startNonterminal(\"NamespaceDecl\", e0);\n    shift(109);                     // 'declare'\n    lookahead1W(64);                // S^WS | '(:' | 'namespace'\n    shift(187);                     // 'namespace'\n    lookahead1W(240);               // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_NCName();\n    lookahead1W(30);                // S^WS | '(:' | '='\n    shift(61);                      // '='\n    lookahead1W(15);                // URILiteral | S^WS | '(:'\n    shift(7);                       // URILiteral\n    eventHandler.endNonterminal(\"NamespaceDecl\", e0);\n  }\n\n  function parse_DefaultNamespaceDecl()\n  {\n    eventHandler.startNonterminal(\"DefaultNamespaceDecl\", e0);\n    shift(109);                     // 'declare'\n    lookahead1W(49);                // S^WS | '(:' | 'default'\n    shift(110);                     // 'default'\n    lookahead1W(119);               // S^WS | '(:' | 'element' | 'function'\n    switch (l1)\n    {\n    case 122:                       // 'element'\n      shift(122);                   // 'element'\n      break;\n    default:\n      shift(147);                   // 'function'\n    }\n    lookahead1W(64);                // S^WS | '(:' | 'namespace'\n    shift(187);                     // 'namespace'\n    lookahead1W(15);                // URILiteral | S^WS | '(:'\n    shift(7);                       // URILiteral\n    eventHandler.endNonterminal(\"DefaultNamespaceDecl\", e0);\n  }\n\n  function try_DefaultNamespaceDecl()\n  {\n    shiftT(109);                    // 'declare'\n    lookahead1W(49);                // S^WS | '(:' | 'default'\n    shiftT(110);                    // 'default'\n    lookahead1W(119);               // S^WS | '(:' | 'element' | 'function'\n    switch (l1)\n    {\n    case 122:                       // 'element'\n      shiftT(122);                  // 'element'\n      break;\n    default:\n      shiftT(147);                  // 'function'\n    }\n    lookahead1W(64);                // S^WS | '(:' | 'namespace'\n    shiftT(187);                    // 'namespace'\n    lookahead1W(15);                // URILiteral | S^WS | '(:'\n    shiftT(7);                      // URILiteral\n  }\n\n  function parse_FTOptionDecl()\n  {\n    eventHandler.startNonterminal(\"FTOptionDecl\", e0);\n    shift(109);                     // 'declare'\n    lookahead1W(55);                // S^WS | '(:' | 'ft-option'\n    shift(143);                     // 'ft-option'\n    lookahead1W(84);                // S^WS | '(:' | 'using'\n    whitespace();\n    parse_FTMatchOptions();\n    eventHandler.endNonterminal(\"FTOptionDecl\", e0);\n  }\n\n  function parse_AnnotatedDecl()\n  {\n    eventHandler.startNonterminal(\"AnnotatedDecl\", e0);\n    shift(109);                     // 'declare'\n    for (;;)\n    {\n      lookahead1W(192);             // S^WS | '%' | '(:' | 'collection' | 'function' | 'index' | 'integrity' |\n      if (l1 != 33                  // '%'\n       && l1 != 263)                // 'updating'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 263:                     // 'updating'\n        whitespace();\n        parse_CompatibilityAnnotation();\n        break;\n      default:\n        whitespace();\n        parse_Annotation();\n      }\n    }\n    switch (l1)\n    {\n    case 268:                       // 'variable'\n      whitespace();\n      parse_VarDecl();\n      break;\n    case 147:                       // 'function'\n      whitespace();\n      parse_FunctionDecl();\n      break;\n    case 96:                        // 'collection'\n      whitespace();\n      parse_CollectionDecl();\n      break;\n    case 157:                       // 'index'\n      whitespace();\n      parse_IndexDecl();\n      break;\n    default:\n      whitespace();\n      parse_ICDecl();\n    }\n    eventHandler.endNonterminal(\"AnnotatedDecl\", e0);\n  }\n\n  function parse_CompatibilityAnnotation()\n  {\n    eventHandler.startNonterminal(\"CompatibilityAnnotation\", e0);\n    shift(263);                     // 'updating'\n    eventHandler.endNonterminal(\"CompatibilityAnnotation\", e0);\n  }\n\n  function parse_Annotation()\n  {\n    eventHandler.startNonterminal(\"Annotation\", e0);\n    shift(33);                      // '%'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_EQName();\n    lookahead1W(193);               // S^WS | '%' | '(' | '(:' | 'collection' | 'function' | 'index' | 'integrity' |\n    if (l1 == 35)                   // '('\n    {\n      shift(35);                    // '('\n      lookahead1W(190);             // IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | S^WS | '(:' |\n      whitespace();\n      parse_Literal();\n      for (;;)\n      {\n        lookahead1W(105);           // S^WS | '(:' | ')' | ','\n        if (l1 != 42)               // ','\n        {\n          break;\n        }\n        shift(42);                  // ','\n        lookahead1W(190);           // IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | S^WS | '(:' |\n        whitespace();\n        parse_Literal();\n      }\n      shift(38);                    // ')'\n    }\n    eventHandler.endNonterminal(\"Annotation\", e0);\n  }\n\n  function try_Annotation()\n  {\n    shiftT(33);                     // '%'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_EQName();\n    lookahead1W(193);               // S^WS | '%' | '(' | '(:' | 'collection' | 'function' | 'index' | 'integrity' |\n    if (l1 == 35)                   // '('\n    {\n      shiftT(35);                   // '('\n      lookahead1W(190);             // IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | S^WS | '(:' |\n      try_Literal();\n      for (;;)\n      {\n        lookahead1W(105);           // S^WS | '(:' | ')' | ','\n        if (l1 != 42)               // ','\n        {\n          break;\n        }\n        shiftT(42);                 // ','\n        lookahead1W(190);           // IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | S^WS | '(:' |\n        try_Literal();\n      }\n      shiftT(38);                   // ')'\n    }\n  }\n\n  function parse_VarDecl()\n  {\n    eventHandler.startNonterminal(\"VarDecl\", e0);\n    shift(268);                     // 'variable'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shift(31);                      // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    lookahead1W(157);               // S^WS | '(:' | ':=' | 'as' | 'external'\n    if (l1 == 80)                   // 'as'\n    {\n      whitespace();\n      parse_TypeDeclaration();\n    }\n    lookahead1W(110);               // S^WS | '(:' | ':=' | 'external'\n    switch (l1)\n    {\n    case 53:                        // ':='\n      shift(53);                    // ':='\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_VarValue();\n      break;\n    default:\n      shift(134);                   // 'external'\n      lookahead1W(108);             // S^WS | '(:' | ':=' | ';'\n      if (l1 == 53)                 // ':='\n      {\n        shift(53);                  // ':='\n        lookahead1W(267);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        whitespace();\n        parse_VarDefaultValue();\n      }\n    }\n    eventHandler.endNonterminal(\"VarDecl\", e0);\n  }\n\n  function parse_VarValue()\n  {\n    eventHandler.startNonterminal(\"VarValue\", e0);\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"VarValue\", e0);\n  }\n\n  function parse_VarDefaultValue()\n  {\n    eventHandler.startNonterminal(\"VarDefaultValue\", e0);\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"VarDefaultValue\", e0);\n  }\n\n  function parse_ContextItemDecl()\n  {\n    eventHandler.startNonterminal(\"ContextItemDecl\", e0);\n    shift(109);                     // 'declare'\n    lookahead1W(46);                // S^WS | '(:' | 'context'\n    shift(102);                     // 'context'\n    lookahead1W(58);                // S^WS | '(:' | 'item'\n    shift(167);                     // 'item'\n    lookahead1W(157);               // S^WS | '(:' | ':=' | 'as' | 'external'\n    if (l1 == 80)                   // 'as'\n    {\n      shift(80);                    // 'as'\n      lookahead1W(254);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_ItemType();\n    }\n    lookahead1W(110);               // S^WS | '(:' | ':=' | 'external'\n    switch (l1)\n    {\n    case 53:                        // ':='\n      shift(53);                    // ':='\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_VarValue();\n      break;\n    default:\n      shift(134);                   // 'external'\n      lookahead1W(108);             // S^WS | '(:' | ':=' | ';'\n      if (l1 == 53)                 // ':='\n      {\n        shift(53);                  // ':='\n        lookahead1W(267);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        whitespace();\n        parse_VarDefaultValue();\n      }\n    }\n    eventHandler.endNonterminal(\"ContextItemDecl\", e0);\n  }\n\n  function parse_ParamList()\n  {\n    eventHandler.startNonterminal(\"ParamList\", e0);\n    parse_Param();\n    for (;;)\n    {\n      lookahead1W(105);             // S^WS | '(:' | ')' | ','\n      if (l1 != 42)                 // ','\n      {\n        break;\n      }\n      shift(42);                    // ','\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      whitespace();\n      parse_Param();\n    }\n    eventHandler.endNonterminal(\"ParamList\", e0);\n  }\n\n  function try_ParamList()\n  {\n    try_Param();\n    for (;;)\n    {\n      lookahead1W(105);             // S^WS | '(:' | ')' | ','\n      if (l1 != 42)                 // ','\n      {\n        break;\n      }\n      shiftT(42);                   // ','\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      try_Param();\n    }\n  }\n\n  function parse_Param()\n  {\n    eventHandler.startNonterminal(\"Param\", e0);\n    shift(31);                      // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_EQName();\n    lookahead1W(153);               // S^WS | '(:' | ')' | ',' | 'as'\n    if (l1 == 80)                   // 'as'\n    {\n      whitespace();\n      parse_TypeDeclaration();\n    }\n    eventHandler.endNonterminal(\"Param\", e0);\n  }\n\n  function try_Param()\n  {\n    shiftT(31);                     // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_EQName();\n    lookahead1W(153);               // S^WS | '(:' | ')' | ',' | 'as'\n    if (l1 == 80)                   // 'as'\n    {\n      try_TypeDeclaration();\n    }\n  }\n\n  function parse_FunctionBody()\n  {\n    eventHandler.startNonterminal(\"FunctionBody\", e0);\n    parse_EnclosedExpr();\n    eventHandler.endNonterminal(\"FunctionBody\", e0);\n  }\n\n  function try_FunctionBody()\n  {\n    try_EnclosedExpr();\n  }\n\n  function parse_EnclosedExpr()\n  {\n    eventHandler.startNonterminal(\"EnclosedExpr\", e0);\n    shift(281);                     // '{'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Expr();\n    shift(287);                     // '}'\n    eventHandler.endNonterminal(\"EnclosedExpr\", e0);\n  }\n\n  function try_EnclosedExpr()\n  {\n    shiftT(281);                    // '{'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Expr();\n    shiftT(287);                    // '}'\n  }\n\n  function parse_OptionDecl()\n  {\n    eventHandler.startNonterminal(\"OptionDecl\", e0);\n    shift(109);                     // 'declare'\n    lookahead1W(69);                // S^WS | '(:' | 'option'\n    shift(203);                     // 'option'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_EQName();\n    lookahead1W(17);                // StringLiteral | S^WS | '(:'\n    shift(11);                      // StringLiteral\n    eventHandler.endNonterminal(\"OptionDecl\", e0);\n  }\n\n  function parse_Expr()\n  {\n    eventHandler.startNonterminal(\"Expr\", e0);\n    parse_ExprSingle();\n    for (;;)\n    {\n      if (l1 != 42)                 // ','\n      {\n        break;\n      }\n      shift(42);                    // ','\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_ExprSingle();\n    }\n    eventHandler.endNonterminal(\"Expr\", e0);\n  }\n\n  function try_Expr()\n  {\n    try_ExprSingle();\n    for (;;)\n    {\n      if (l1 != 42)                 // ','\n      {\n        break;\n      }\n      shiftT(42);                   // ','\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_ExprSingle();\n    }\n  }\n\n  function parse_FLWORExpr()\n  {\n    eventHandler.startNonterminal(\"FLWORExpr\", e0);\n    parse_InitialClause();\n    for (;;)\n    {\n      lookahead1W(195);             // S^WS | '(:' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' | 'stable' |\n      if (l1 == 224)                // 'return'\n      {\n        break;\n      }\n      whitespace();\n      parse_IntermediateClause();\n    }\n    whitespace();\n    parse_ReturnClause();\n    eventHandler.endNonterminal(\"FLWORExpr\", e0);\n  }\n\n  function try_FLWORExpr()\n  {\n    try_InitialClause();\n    for (;;)\n    {\n      lookahead1W(195);             // S^WS | '(:' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' | 'stable' |\n      if (l1 == 224)                // 'return'\n      {\n        break;\n      }\n      try_IntermediateClause();\n    }\n    try_ReturnClause();\n  }\n\n  function parse_InitialClause()\n  {\n    eventHandler.startNonterminal(\"InitialClause\", e0);\n    switch (l1)\n    {\n    case 139:                       // 'for'\n      lookahead2W(151);             // S^WS | '$' | '(:' | 'sliding' | 'tumbling'\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 16011:                     // 'for' '$'\n      parse_ForClause();\n      break;\n    case 177:                       // 'let'\n      parse_LetClause();\n      break;\n    default:\n      parse_WindowClause();\n    }\n    eventHandler.endNonterminal(\"InitialClause\", e0);\n  }\n\n  function try_InitialClause()\n  {\n    switch (l1)\n    {\n    case 139:                       // 'for'\n      lookahead2W(151);             // S^WS | '$' | '(:' | 'sliding' | 'tumbling'\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 16011:                     // 'for' '$'\n      try_ForClause();\n      break;\n    case 177:                       // 'let'\n      try_LetClause();\n      break;\n    default:\n      try_WindowClause();\n    }\n  }\n\n  function parse_IntermediateClause()\n  {\n    eventHandler.startNonterminal(\"IntermediateClause\", e0);\n    switch (l1)\n    {\n    case 139:                       // 'for'\n    case 177:                       // 'let'\n      parse_InitialClause();\n      break;\n    case 272:                       // 'where'\n      parse_WhereClause();\n      break;\n    case 150:                       // 'group'\n      parse_GroupByClause();\n      break;\n    case 106:                       // 'count'\n      parse_CountClause();\n      break;\n    default:\n      parse_OrderByClause();\n    }\n    eventHandler.endNonterminal(\"IntermediateClause\", e0);\n  }\n\n  function try_IntermediateClause()\n  {\n    switch (l1)\n    {\n    case 139:                       // 'for'\n    case 177:                       // 'let'\n      try_InitialClause();\n      break;\n    case 272:                       // 'where'\n      try_WhereClause();\n      break;\n    case 150:                       // 'group'\n      try_GroupByClause();\n      break;\n    case 106:                       // 'count'\n      try_CountClause();\n      break;\n    default:\n      try_OrderByClause();\n    }\n  }\n\n  function parse_ForClause()\n  {\n    eventHandler.startNonterminal(\"ForClause\", e0);\n    shift(139);                     // 'for'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    whitespace();\n    parse_ForBinding();\n    for (;;)\n    {\n      if (l1 != 42)                 // ','\n      {\n        break;\n      }\n      shift(42);                    // ','\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      whitespace();\n      parse_ForBinding();\n    }\n    eventHandler.endNonterminal(\"ForClause\", e0);\n  }\n\n  function try_ForClause()\n  {\n    shiftT(139);                    // 'for'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    try_ForBinding();\n    for (;;)\n    {\n      if (l1 != 42)                 // ','\n      {\n        break;\n      }\n      shiftT(42);                   // ','\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      try_ForBinding();\n    }\n  }\n\n  function parse_ForBinding()\n  {\n    eventHandler.startNonterminal(\"ForBinding\", e0);\n    shift(31);                      // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    lookahead1W(182);               // S^WS | '(:' | 'allowing' | 'as' | 'at' | 'in' | 'score'\n    if (l1 == 80)                   // 'as'\n    {\n      whitespace();\n      parse_TypeDeclaration();\n    }\n    lookahead1W(173);               // S^WS | '(:' | 'allowing' | 'at' | 'in' | 'score'\n    if (l1 == 73)                   // 'allowing'\n    {\n      whitespace();\n      parse_AllowingEmpty();\n    }\n    lookahead1W(160);               // S^WS | '(:' | 'at' | 'in' | 'score'\n    if (l1 == 82)                   // 'at'\n    {\n      whitespace();\n      parse_PositionalVar();\n    }\n    lookahead1W(126);               // S^WS | '(:' | 'in' | 'score'\n    if (l1 == 232)                  // 'score'\n    {\n      whitespace();\n      parse_FTScoreVar();\n    }\n    lookahead1W(56);                // S^WS | '(:' | 'in'\n    shift(156);                     // 'in'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"ForBinding\", e0);\n  }\n\n  function try_ForBinding()\n  {\n    shiftT(31);                     // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_VarName();\n    lookahead1W(182);               // S^WS | '(:' | 'allowing' | 'as' | 'at' | 'in' | 'score'\n    if (l1 == 80)                   // 'as'\n    {\n      try_TypeDeclaration();\n    }\n    lookahead1W(173);               // S^WS | '(:' | 'allowing' | 'at' | 'in' | 'score'\n    if (l1 == 73)                   // 'allowing'\n    {\n      try_AllowingEmpty();\n    }\n    lookahead1W(160);               // S^WS | '(:' | 'at' | 'in' | 'score'\n    if (l1 == 82)                   // 'at'\n    {\n      try_PositionalVar();\n    }\n    lookahead1W(126);               // S^WS | '(:' | 'in' | 'score'\n    if (l1 == 232)                  // 'score'\n    {\n      try_FTScoreVar();\n    }\n    lookahead1W(56);                // S^WS | '(:' | 'in'\n    shiftT(156);                    // 'in'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_AllowingEmpty()\n  {\n    eventHandler.startNonterminal(\"AllowingEmpty\", e0);\n    shift(73);                      // 'allowing'\n    lookahead1W(52);                // S^WS | '(:' | 'empty'\n    shift(124);                     // 'empty'\n    eventHandler.endNonterminal(\"AllowingEmpty\", e0);\n  }\n\n  function try_AllowingEmpty()\n  {\n    shiftT(73);                     // 'allowing'\n    lookahead1W(52);                // S^WS | '(:' | 'empty'\n    shiftT(124);                    // 'empty'\n  }\n\n  function parse_PositionalVar()\n  {\n    eventHandler.startNonterminal(\"PositionalVar\", e0);\n    shift(82);                      // 'at'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shift(31);                      // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    eventHandler.endNonterminal(\"PositionalVar\", e0);\n  }\n\n  function try_PositionalVar()\n  {\n    shiftT(82);                     // 'at'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shiftT(31);                     // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_VarName();\n  }\n\n  function parse_FTScoreVar()\n  {\n    eventHandler.startNonterminal(\"FTScoreVar\", e0);\n    shift(232);                     // 'score'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shift(31);                      // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    eventHandler.endNonterminal(\"FTScoreVar\", e0);\n  }\n\n  function try_FTScoreVar()\n  {\n    shiftT(232);                    // 'score'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shiftT(31);                     // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_VarName();\n  }\n\n  function parse_LetClause()\n  {\n    eventHandler.startNonterminal(\"LetClause\", e0);\n    shift(177);                     // 'let'\n    lookahead1W(100);               // S^WS | '$' | '(:' | 'score'\n    whitespace();\n    parse_LetBinding();\n    for (;;)\n    {\n      if (l1 != 42)                 // ','\n      {\n        break;\n      }\n      shift(42);                    // ','\n      lookahead1W(100);             // S^WS | '$' | '(:' | 'score'\n      whitespace();\n      parse_LetBinding();\n    }\n    eventHandler.endNonterminal(\"LetClause\", e0);\n  }\n\n  function try_LetClause()\n  {\n    shiftT(177);                    // 'let'\n    lookahead1W(100);               // S^WS | '$' | '(:' | 'score'\n    try_LetBinding();\n    for (;;)\n    {\n      if (l1 != 42)                 // ','\n      {\n        break;\n      }\n      shiftT(42);                   // ','\n      lookahead1W(100);             // S^WS | '$' | '(:' | 'score'\n      try_LetBinding();\n    }\n  }\n\n  function parse_LetBinding()\n  {\n    eventHandler.startNonterminal(\"LetBinding\", e0);\n    switch (l1)\n    {\n    case 31:                        // '$'\n      shift(31);                    // '$'\n      lookahead1W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_VarName();\n      lookahead1W(109);             // S^WS | '(:' | ':=' | 'as'\n      if (l1 == 80)                 // 'as'\n      {\n        whitespace();\n        parse_TypeDeclaration();\n      }\n      break;\n    default:\n      parse_FTScoreVar();\n    }\n    lookahead1W(28);                // S^WS | '(:' | ':='\n    shift(53);                      // ':='\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"LetBinding\", e0);\n  }\n\n  function try_LetBinding()\n  {\n    switch (l1)\n    {\n    case 31:                        // '$'\n      shiftT(31);                   // '$'\n      lookahead1W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_VarName();\n      lookahead1W(109);             // S^WS | '(:' | ':=' | 'as'\n      if (l1 == 80)                 // 'as'\n      {\n        try_TypeDeclaration();\n      }\n      break;\n    default:\n      try_FTScoreVar();\n    }\n    lookahead1W(28);                // S^WS | '(:' | ':='\n    shiftT(53);                     // ':='\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_WindowClause()\n  {\n    eventHandler.startNonterminal(\"WindowClause\", e0);\n    shift(139);                     // 'for'\n    lookahead1W(139);               // S^WS | '(:' | 'sliding' | 'tumbling'\n    switch (l1)\n    {\n    case 257:                       // 'tumbling'\n      whitespace();\n      parse_TumblingWindowClause();\n      break;\n    default:\n      whitespace();\n      parse_SlidingWindowClause();\n    }\n    eventHandler.endNonterminal(\"WindowClause\", e0);\n  }\n\n  function try_WindowClause()\n  {\n    shiftT(139);                    // 'for'\n    lookahead1W(139);               // S^WS | '(:' | 'sliding' | 'tumbling'\n    switch (l1)\n    {\n    case 257:                       // 'tumbling'\n      try_TumblingWindowClause();\n      break;\n    default:\n      try_SlidingWindowClause();\n    }\n  }\n\n  function parse_TumblingWindowClause()\n  {\n    eventHandler.startNonterminal(\"TumblingWindowClause\", e0);\n    shift(257);                     // 'tumbling'\n    lookahead1W(88);                // S^WS | '(:' | 'window'\n    shift(275);                     // 'window'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shift(31);                      // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    lookahead1W(114);               // S^WS | '(:' | 'as' | 'in'\n    if (l1 == 80)                   // 'as'\n    {\n      whitespace();\n      parse_TypeDeclaration();\n    }\n    lookahead1W(56);                // S^WS | '(:' | 'in'\n    shift(156);                     // 'in'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    whitespace();\n    parse_WindowStartCondition();\n    if (l1 == 127                   // 'end'\n     || l1 == 202)                  // 'only'\n    {\n      whitespace();\n      parse_WindowEndCondition();\n    }\n    eventHandler.endNonterminal(\"TumblingWindowClause\", e0);\n  }\n\n  function try_TumblingWindowClause()\n  {\n    shiftT(257);                    // 'tumbling'\n    lookahead1W(88);                // S^WS | '(:' | 'window'\n    shiftT(275);                    // 'window'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shiftT(31);                     // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_VarName();\n    lookahead1W(114);               // S^WS | '(:' | 'as' | 'in'\n    if (l1 == 80)                   // 'as'\n    {\n      try_TypeDeclaration();\n    }\n    lookahead1W(56);                // S^WS | '(:' | 'in'\n    shiftT(156);                    // 'in'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n    try_WindowStartCondition();\n    if (l1 == 127                   // 'end'\n     || l1 == 202)                  // 'only'\n    {\n      try_WindowEndCondition();\n    }\n  }\n\n  function parse_SlidingWindowClause()\n  {\n    eventHandler.startNonterminal(\"SlidingWindowClause\", e0);\n    shift(239);                     // 'sliding'\n    lookahead1W(88);                // S^WS | '(:' | 'window'\n    shift(275);                     // 'window'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shift(31);                      // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    lookahead1W(114);               // S^WS | '(:' | 'as' | 'in'\n    if (l1 == 80)                   // 'as'\n    {\n      whitespace();\n      parse_TypeDeclaration();\n    }\n    lookahead1W(56);                // S^WS | '(:' | 'in'\n    shift(156);                     // 'in'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    whitespace();\n    parse_WindowStartCondition();\n    whitespace();\n    parse_WindowEndCondition();\n    eventHandler.endNonterminal(\"SlidingWindowClause\", e0);\n  }\n\n  function try_SlidingWindowClause()\n  {\n    shiftT(239);                    // 'sliding'\n    lookahead1W(88);                // S^WS | '(:' | 'window'\n    shiftT(275);                    // 'window'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shiftT(31);                     // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_VarName();\n    lookahead1W(114);               // S^WS | '(:' | 'as' | 'in'\n    if (l1 == 80)                   // 'as'\n    {\n      try_TypeDeclaration();\n    }\n    lookahead1W(56);                // S^WS | '(:' | 'in'\n    shiftT(156);                    // 'in'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n    try_WindowStartCondition();\n    try_WindowEndCondition();\n  }\n\n  function parse_WindowStartCondition()\n  {\n    eventHandler.startNonterminal(\"WindowStartCondition\", e0);\n    shift(242);                     // 'start'\n    lookahead1W(181);               // S^WS | '$' | '(:' | 'at' | 'next' | 'previous' | 'when'\n    whitespace();\n    parse_WindowVars();\n    lookahead1W(86);                // S^WS | '(:' | 'when'\n    shift(271);                     // 'when'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"WindowStartCondition\", e0);\n  }\n\n  function try_WindowStartCondition()\n  {\n    shiftT(242);                    // 'start'\n    lookahead1W(181);               // S^WS | '$' | '(:' | 'at' | 'next' | 'previous' | 'when'\n    try_WindowVars();\n    lookahead1W(86);                // S^WS | '(:' | 'when'\n    shiftT(271);                    // 'when'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_WindowEndCondition()\n  {\n    eventHandler.startNonterminal(\"WindowEndCondition\", e0);\n    if (l1 == 202)                  // 'only'\n    {\n      shift(202);                   // 'only'\n    }\n    lookahead1W(53);                // S^WS | '(:' | 'end'\n    shift(127);                     // 'end'\n    lookahead1W(181);               // S^WS | '$' | '(:' | 'at' | 'next' | 'previous' | 'when'\n    whitespace();\n    parse_WindowVars();\n    lookahead1W(86);                // S^WS | '(:' | 'when'\n    shift(271);                     // 'when'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"WindowEndCondition\", e0);\n  }\n\n  function try_WindowEndCondition()\n  {\n    if (l1 == 202)                  // 'only'\n    {\n      shiftT(202);                  // 'only'\n    }\n    lookahead1W(53);                // S^WS | '(:' | 'end'\n    shiftT(127);                    // 'end'\n    lookahead1W(181);               // S^WS | '$' | '(:' | 'at' | 'next' | 'previous' | 'when'\n    try_WindowVars();\n    lookahead1W(86);                // S^WS | '(:' | 'when'\n    shiftT(271);                    // 'when'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_WindowVars()\n  {\n    eventHandler.startNonterminal(\"WindowVars\", e0);\n    if (l1 == 31)                   // '$'\n    {\n      shift(31);                    // '$'\n      lookahead1W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_CurrentItem();\n    }\n    lookahead1W(174);               // S^WS | '(:' | 'at' | 'next' | 'previous' | 'when'\n    if (l1 == 82)                   // 'at'\n    {\n      whitespace();\n      parse_PositionalVar();\n    }\n    lookahead1W(163);               // S^WS | '(:' | 'next' | 'previous' | 'when'\n    if (l1 == 219)                  // 'previous'\n    {\n      shift(219);                   // 'previous'\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      shift(31);                    // '$'\n      lookahead1W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_PreviousItem();\n    }\n    lookahead1W(131);               // S^WS | '(:' | 'next' | 'when'\n    if (l1 == 190)                  // 'next'\n    {\n      shift(190);                   // 'next'\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      shift(31);                    // '$'\n      lookahead1W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_NextItem();\n    }\n    eventHandler.endNonterminal(\"WindowVars\", e0);\n  }\n\n  function try_WindowVars()\n  {\n    if (l1 == 31)                   // '$'\n    {\n      shiftT(31);                   // '$'\n      lookahead1W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_CurrentItem();\n    }\n    lookahead1W(174);               // S^WS | '(:' | 'at' | 'next' | 'previous' | 'when'\n    if (l1 == 82)                   // 'at'\n    {\n      try_PositionalVar();\n    }\n    lookahead1W(163);               // S^WS | '(:' | 'next' | 'previous' | 'when'\n    if (l1 == 219)                  // 'previous'\n    {\n      shiftT(219);                  // 'previous'\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      shiftT(31);                   // '$'\n      lookahead1W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_PreviousItem();\n    }\n    lookahead1W(131);               // S^WS | '(:' | 'next' | 'when'\n    if (l1 == 190)                  // 'next'\n    {\n      shiftT(190);                  // 'next'\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      shiftT(31);                   // '$'\n      lookahead1W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_NextItem();\n    }\n  }\n\n  function parse_CurrentItem()\n  {\n    eventHandler.startNonterminal(\"CurrentItem\", e0);\n    parse_EQName();\n    eventHandler.endNonterminal(\"CurrentItem\", e0);\n  }\n\n  function try_CurrentItem()\n  {\n    try_EQName();\n  }\n\n  function parse_PreviousItem()\n  {\n    eventHandler.startNonterminal(\"PreviousItem\", e0);\n    parse_EQName();\n    eventHandler.endNonterminal(\"PreviousItem\", e0);\n  }\n\n  function try_PreviousItem()\n  {\n    try_EQName();\n  }\n\n  function parse_NextItem()\n  {\n    eventHandler.startNonterminal(\"NextItem\", e0);\n    parse_EQName();\n    eventHandler.endNonterminal(\"NextItem\", e0);\n  }\n\n  function try_NextItem()\n  {\n    try_EQName();\n  }\n\n  function parse_CountClause()\n  {\n    eventHandler.startNonterminal(\"CountClause\", e0);\n    shift(106);                     // 'count'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shift(31);                      // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    eventHandler.endNonterminal(\"CountClause\", e0);\n  }\n\n  function try_CountClause()\n  {\n    shiftT(106);                    // 'count'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shiftT(31);                     // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_VarName();\n  }\n\n  function parse_WhereClause()\n  {\n    eventHandler.startNonterminal(\"WhereClause\", e0);\n    shift(272);                     // 'where'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"WhereClause\", e0);\n  }\n\n  function try_WhereClause()\n  {\n    shiftT(272);                    // 'where'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_GroupByClause()\n  {\n    eventHandler.startNonterminal(\"GroupByClause\", e0);\n    shift(150);                     // 'group'\n    lookahead1W(37);                // S^WS | '(:' | 'by'\n    shift(88);                      // 'by'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_GroupingSpecList();\n    eventHandler.endNonterminal(\"GroupByClause\", e0);\n  }\n\n  function try_GroupByClause()\n  {\n    shiftT(150);                    // 'group'\n    lookahead1W(37);                // S^WS | '(:' | 'by'\n    shiftT(88);                     // 'by'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_GroupingSpecList();\n  }\n\n  function parse_GroupingSpecList()\n  {\n    eventHandler.startNonterminal(\"GroupingSpecList\", e0);\n    parse_GroupingSpec();\n    for (;;)\n    {\n      lookahead1W(198);             // S^WS | '(:' | ',' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' |\n      if (l1 != 42)                 // ','\n      {\n        break;\n      }\n      shift(42);                    // ','\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_GroupingSpec();\n    }\n    eventHandler.endNonterminal(\"GroupingSpecList\", e0);\n  }\n\n  function try_GroupingSpecList()\n  {\n    try_GroupingSpec();\n    for (;;)\n    {\n      lookahead1W(198);             // S^WS | '(:' | ',' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' |\n      if (l1 != 42)                 // ','\n      {\n        break;\n      }\n      shiftT(42);                   // ','\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_GroupingSpec();\n    }\n  }\n\n  function parse_GroupingSpec()\n  {\n    eventHandler.startNonterminal(\"GroupingSpec\", e0);\n    switch (l1)\n    {\n    case 31:                        // '$'\n      lookahead2W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 3103                  // '$' EQName^Token\n     || lk == 36383                 // '$' 'after'\n     || lk == 37407                 // '$' 'allowing'\n     || lk == 37919                 // '$' 'ancestor'\n     || lk == 38431                 // '$' 'ancestor-or-self'\n     || lk == 38943                 // '$' 'and'\n     || lk == 39967                 // '$' 'append'\n     || lk == 40479                 // '$' 'array'\n     || lk == 40991                 // '$' 'as'\n     || lk == 41503                 // '$' 'ascending'\n     || lk == 42015                 // '$' 'at'\n     || lk == 42527                 // '$' 'attribute'\n     || lk == 43039                 // '$' 'base-uri'\n     || lk == 43551                 // '$' 'before'\n     || lk == 44063                 // '$' 'boundary-space'\n     || lk == 44575                 // '$' 'break'\n     || lk == 45599                 // '$' 'case'\n     || lk == 46111                 // '$' 'cast'\n     || lk == 46623                 // '$' 'castable'\n     || lk == 47135                 // '$' 'catch'\n     || lk == 48159                 // '$' 'child'\n     || lk == 48671                 // '$' 'collation'\n     || lk == 49695                 // '$' 'comment'\n     || lk == 50207                 // '$' 'constraint'\n     || lk == 50719                 // '$' 'construction'\n     || lk == 52255                 // '$' 'context'\n     || lk == 52767                 // '$' 'continue'\n     || lk == 53279                 // '$' 'copy'\n     || lk == 53791                 // '$' 'copy-namespaces'\n     || lk == 54303                 // '$' 'count'\n     || lk == 54815                 // '$' 'decimal-format'\n     || lk == 55839                 // '$' 'declare'\n     || lk == 56351                 // '$' 'default'\n     || lk == 56863                 // '$' 'delete'\n     || lk == 57375                 // '$' 'descendant'\n     || lk == 57887                 // '$' 'descendant-or-self'\n     || lk == 58399                 // '$' 'descending'\n     || lk == 60959                 // '$' 'div'\n     || lk == 61471                 // '$' 'document'\n     || lk == 61983                 // '$' 'document-node'\n     || lk == 62495                 // '$' 'element'\n     || lk == 63007                 // '$' 'else'\n     || lk == 63519                 // '$' 'empty'\n     || lk == 64031                 // '$' 'empty-sequence'\n     || lk == 64543                 // '$' 'encoding'\n     || lk == 65055                 // '$' 'end'\n     || lk == 66079                 // '$' 'eq'\n     || lk == 66591                 // '$' 'every'\n     || lk == 67615                 // '$' 'except'\n     || lk == 68127                 // '$' 'exit'\n     || lk == 68639                 // '$' 'external'\n     || lk == 69151                 // '$' 'false'\n     || lk == 69663                 // '$' 'first'\n     || lk == 70175                 // '$' 'following'\n     || lk == 70687                 // '$' 'following-sibling'\n     || lk == 71199                 // '$' 'for'\n     || lk == 72735                 // '$' 'from'\n     || lk == 73247                 // '$' 'ft-option'\n     || lk == 75295                 // '$' 'function'\n     || lk == 75807                 // '$' 'ge'\n     || lk == 76831                 // '$' 'group'\n     || lk == 77855                 // '$' 'gt'\n     || lk == 78367                 // '$' 'idiv'\n     || lk == 78879                 // '$' 'if'\n     || lk == 79391                 // '$' 'import'\n     || lk == 79903                 // '$' 'in'\n     || lk == 80415                 // '$' 'index'\n     || lk == 82463                 // '$' 'insert'\n     || lk == 82975                 // '$' 'instance'\n     || lk == 83487                 // '$' 'integrity'\n     || lk == 83999                 // '$' 'intersect'\n     || lk == 84511                 // '$' 'into'\n     || lk == 85023                 // '$' 'is'\n     || lk == 85535                 // '$' 'item'\n     || lk == 86047                 // '$' 'json'\n     || lk == 86559                 // '$' 'json-item'\n     || lk == 87071                 // '$' 'jsoniq'\n     || lk == 88607                 // '$' 'last'\n     || lk == 89119                 // '$' 'lax'\n     || lk == 89631                 // '$' 'le'\n     || lk == 90655                 // '$' 'let'\n     || lk == 91679                 // '$' 'loop'\n     || lk == 92703                 // '$' 'lt'\n     || lk == 93727                 // '$' 'mod'\n     || lk == 94239                 // '$' 'modify'\n     || lk == 94751                 // '$' 'module'\n     || lk == 95775                 // '$' 'namespace'\n     || lk == 96287                 // '$' 'namespace-node'\n     || lk == 96799                 // '$' 'ne'\n     || lk == 99359                 // '$' 'node'\n     || lk == 99871                 // '$' 'nodes'\n     || lk == 100895                // '$' 'null'\n     || lk == 101407                // '$' 'object'\n     || lk == 103455                // '$' 'only'\n     || lk == 103967                // '$' 'option'\n     || lk == 104479                // '$' 'or'\n     || lk == 104991                // '$' 'order'\n     || lk == 105503                // '$' 'ordered'\n     || lk == 106015                // '$' 'ordering'\n     || lk == 107551                // '$' 'parent'\n     || lk == 110623                // '$' 'preceding'\n     || lk == 111135                // '$' 'preceding-sibling'\n     || lk == 112671                // '$' 'processing-instruction'\n     || lk == 113695                // '$' 'rename'\n     || lk == 114207                // '$' 'replace'\n     || lk == 114719                // '$' 'return'\n     || lk == 115231                // '$' 'returning'\n     || lk == 115743                // '$' 'revalidation'\n     || lk == 116767                // '$' 'satisfies'\n     || lk == 117279                // '$' 'schema'\n     || lk == 117791                // '$' 'schema-attribute'\n     || lk == 118303                // '$' 'schema-element'\n     || lk == 118815                // '$' 'score'\n     || lk == 119327                // '$' 'select'\n     || lk == 119839                // '$' 'self'\n     || lk == 122399                // '$' 'sliding'\n     || lk == 122911                // '$' 'some'\n     || lk == 123423                // '$' 'stable'\n     || lk == 123935                // '$' 'start'\n     || lk == 125471                // '$' 'strict'\n     || lk == 126495                // '$' 'structured-item'\n     || lk == 127007                // '$' 'switch'\n     || lk == 127519                // '$' 'text'\n     || lk == 129567                // '$' 'to'\n     || lk == 130079                // '$' 'treat'\n     || lk == 130591                // '$' 'true'\n     || lk == 131103                // '$' 'try'\n     || lk == 131615                // '$' 'tumbling'\n     || lk == 132127                // '$' 'type'\n     || lk == 132639                // '$' 'typeswitch'\n     || lk == 133151                // '$' 'union'\n     || lk == 134175                // '$' 'unordered'\n     || lk == 134687                // '$' 'updating'\n     || lk == 136223                // '$' 'validate'\n     || lk == 136735                // '$' 'value'\n     || lk == 137247                // '$' 'variable'\n     || lk == 137759                // '$' 'version'\n     || lk == 139295                // '$' 'where'\n     || lk == 139807                // '$' 'while'\n     || lk == 141343)               // '$' 'with'\n    {\n      lk = memoized(2, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_GroupingVariable();\n          lookahead1W(206);         // S^WS | '(:' | ',' | ':=' | 'as' | 'collation' | 'count' | 'for' | 'group' |\n          if (l1 == 53              // ':='\n           || l1 == 80)             // 'as'\n          {\n            if (l1 == 80)           // 'as'\n            {\n              try_TypeDeclaration();\n            }\n            lookahead1W(28);        // S^WS | '(:' | ':='\n            shiftT(53);             // ':='\n            lookahead1W(267);       // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n            try_ExprSingle();\n          }\n          if (l1 == 95)             // 'collation'\n          {\n            shiftT(95);             // 'collation'\n            lookahead1W(15);        // URILiteral | S^WS | '(:'\n            shiftT(7);              // URILiteral\n          }\n          lk = -1;\n        }\n        catch (p1A)\n        {\n          lk = -2;\n        }\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(2, e0, lk);\n      }\n    }\n    switch (lk)\n    {\n    case -1:\n      parse_GroupingVariable();\n      lookahead1W(206);             // S^WS | '(:' | ',' | ':=' | 'as' | 'collation' | 'count' | 'for' | 'group' |\n      if (l1 == 53                  // ':='\n       || l1 == 80)                 // 'as'\n      {\n        if (l1 == 80)               // 'as'\n        {\n          whitespace();\n          parse_TypeDeclaration();\n        }\n        lookahead1W(28);            // S^WS | '(:' | ':='\n        shift(53);                  // ':='\n        lookahead1W(267);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        whitespace();\n        parse_ExprSingle();\n      }\n      if (l1 == 95)                 // 'collation'\n      {\n        shift(95);                  // 'collation'\n        lookahead1W(15);            // URILiteral | S^WS | '(:'\n        shift(7);                   // URILiteral\n      }\n      break;\n    default:\n      parse_ExprSingle();\n    }\n    eventHandler.endNonterminal(\"GroupingSpec\", e0);\n  }\n\n  function try_GroupingSpec()\n  {\n    switch (l1)\n    {\n    case 31:                        // '$'\n      lookahead2W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 3103                  // '$' EQName^Token\n     || lk == 36383                 // '$' 'after'\n     || lk == 37407                 // '$' 'allowing'\n     || lk == 37919                 // '$' 'ancestor'\n     || lk == 38431                 // '$' 'ancestor-or-self'\n     || lk == 38943                 // '$' 'and'\n     || lk == 39967                 // '$' 'append'\n     || lk == 40479                 // '$' 'array'\n     || lk == 40991                 // '$' 'as'\n     || lk == 41503                 // '$' 'ascending'\n     || lk == 42015                 // '$' 'at'\n     || lk == 42527                 // '$' 'attribute'\n     || lk == 43039                 // '$' 'base-uri'\n     || lk == 43551                 // '$' 'before'\n     || lk == 44063                 // '$' 'boundary-space'\n     || lk == 44575                 // '$' 'break'\n     || lk == 45599                 // '$' 'case'\n     || lk == 46111                 // '$' 'cast'\n     || lk == 46623                 // '$' 'castable'\n     || lk == 47135                 // '$' 'catch'\n     || lk == 48159                 // '$' 'child'\n     || lk == 48671                 // '$' 'collation'\n     || lk == 49695                 // '$' 'comment'\n     || lk == 50207                 // '$' 'constraint'\n     || lk == 50719                 // '$' 'construction'\n     || lk == 52255                 // '$' 'context'\n     || lk == 52767                 // '$' 'continue'\n     || lk == 53279                 // '$' 'copy'\n     || lk == 53791                 // '$' 'copy-namespaces'\n     || lk == 54303                 // '$' 'count'\n     || lk == 54815                 // '$' 'decimal-format'\n     || lk == 55839                 // '$' 'declare'\n     || lk == 56351                 // '$' 'default'\n     || lk == 56863                 // '$' 'delete'\n     || lk == 57375                 // '$' 'descendant'\n     || lk == 57887                 // '$' 'descendant-or-self'\n     || lk == 58399                 // '$' 'descending'\n     || lk == 60959                 // '$' 'div'\n     || lk == 61471                 // '$' 'document'\n     || lk == 61983                 // '$' 'document-node'\n     || lk == 62495                 // '$' 'element'\n     || lk == 63007                 // '$' 'else'\n     || lk == 63519                 // '$' 'empty'\n     || lk == 64031                 // '$' 'empty-sequence'\n     || lk == 64543                 // '$' 'encoding'\n     || lk == 65055                 // '$' 'end'\n     || lk == 66079                 // '$' 'eq'\n     || lk == 66591                 // '$' 'every'\n     || lk == 67615                 // '$' 'except'\n     || lk == 68127                 // '$' 'exit'\n     || lk == 68639                 // '$' 'external'\n     || lk == 69151                 // '$' 'false'\n     || lk == 69663                 // '$' 'first'\n     || lk == 70175                 // '$' 'following'\n     || lk == 70687                 // '$' 'following-sibling'\n     || lk == 71199                 // '$' 'for'\n     || lk == 72735                 // '$' 'from'\n     || lk == 73247                 // '$' 'ft-option'\n     || lk == 75295                 // '$' 'function'\n     || lk == 75807                 // '$' 'ge'\n     || lk == 76831                 // '$' 'group'\n     || lk == 77855                 // '$' 'gt'\n     || lk == 78367                 // '$' 'idiv'\n     || lk == 78879                 // '$' 'if'\n     || lk == 79391                 // '$' 'import'\n     || lk == 79903                 // '$' 'in'\n     || lk == 80415                 // '$' 'index'\n     || lk == 82463                 // '$' 'insert'\n     || lk == 82975                 // '$' 'instance'\n     || lk == 83487                 // '$' 'integrity'\n     || lk == 83999                 // '$' 'intersect'\n     || lk == 84511                 // '$' 'into'\n     || lk == 85023                 // '$' 'is'\n     || lk == 85535                 // '$' 'item'\n     || lk == 86047                 // '$' 'json'\n     || lk == 86559                 // '$' 'json-item'\n     || lk == 87071                 // '$' 'jsoniq'\n     || lk == 88607                 // '$' 'last'\n     || lk == 89119                 // '$' 'lax'\n     || lk == 89631                 // '$' 'le'\n     || lk == 90655                 // '$' 'let'\n     || lk == 91679                 // '$' 'loop'\n     || lk == 92703                 // '$' 'lt'\n     || lk == 93727                 // '$' 'mod'\n     || lk == 94239                 // '$' 'modify'\n     || lk == 94751                 // '$' 'module'\n     || lk == 95775                 // '$' 'namespace'\n     || lk == 96287                 // '$' 'namespace-node'\n     || lk == 96799                 // '$' 'ne'\n     || lk == 99359                 // '$' 'node'\n     || lk == 99871                 // '$' 'nodes'\n     || lk == 100895                // '$' 'null'\n     || lk == 101407                // '$' 'object'\n     || lk == 103455                // '$' 'only'\n     || lk == 103967                // '$' 'option'\n     || lk == 104479                // '$' 'or'\n     || lk == 104991                // '$' 'order'\n     || lk == 105503                // '$' 'ordered'\n     || lk == 106015                // '$' 'ordering'\n     || lk == 107551                // '$' 'parent'\n     || lk == 110623                // '$' 'preceding'\n     || lk == 111135                // '$' 'preceding-sibling'\n     || lk == 112671                // '$' 'processing-instruction'\n     || lk == 113695                // '$' 'rename'\n     || lk == 114207                // '$' 'replace'\n     || lk == 114719                // '$' 'return'\n     || lk == 115231                // '$' 'returning'\n     || lk == 115743                // '$' 'revalidation'\n     || lk == 116767                // '$' 'satisfies'\n     || lk == 117279                // '$' 'schema'\n     || lk == 117791                // '$' 'schema-attribute'\n     || lk == 118303                // '$' 'schema-element'\n     || lk == 118815                // '$' 'score'\n     || lk == 119327                // '$' 'select'\n     || lk == 119839                // '$' 'self'\n     || lk == 122399                // '$' 'sliding'\n     || lk == 122911                // '$' 'some'\n     || lk == 123423                // '$' 'stable'\n     || lk == 123935                // '$' 'start'\n     || lk == 125471                // '$' 'strict'\n     || lk == 126495                // '$' 'structured-item'\n     || lk == 127007                // '$' 'switch'\n     || lk == 127519                // '$' 'text'\n     || lk == 129567                // '$' 'to'\n     || lk == 130079                // '$' 'treat'\n     || lk == 130591                // '$' 'true'\n     || lk == 131103                // '$' 'try'\n     || lk == 131615                // '$' 'tumbling'\n     || lk == 132127                // '$' 'type'\n     || lk == 132639                // '$' 'typeswitch'\n     || lk == 133151                // '$' 'union'\n     || lk == 134175                // '$' 'unordered'\n     || lk == 134687                // '$' 'updating'\n     || lk == 136223                // '$' 'validate'\n     || lk == 136735                // '$' 'value'\n     || lk == 137247                // '$' 'variable'\n     || lk == 137759                // '$' 'version'\n     || lk == 139295                // '$' 'where'\n     || lk == 139807                // '$' 'while'\n     || lk == 141343)               // '$' 'with'\n    {\n      lk = memoized(2, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_GroupingVariable();\n          lookahead1W(206);         // S^WS | '(:' | ',' | ':=' | 'as' | 'collation' | 'count' | 'for' | 'group' |\n          if (l1 == 53              // ':='\n           || l1 == 80)             // 'as'\n          {\n            if (l1 == 80)           // 'as'\n            {\n              try_TypeDeclaration();\n            }\n            lookahead1W(28);        // S^WS | '(:' | ':='\n            shiftT(53);             // ':='\n            lookahead1W(267);       // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n            try_ExprSingle();\n          }\n          if (l1 == 95)             // 'collation'\n          {\n            shiftT(95);             // 'collation'\n            lookahead1W(15);        // URILiteral | S^WS | '(:'\n            shiftT(7);              // URILiteral\n          }\n          memoize(2, e0A, -1);\n          lk = -3;\n        }\n        catch (p1A)\n        {\n          lk = -2;\n          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n          b2 = b2A; e2 = e2A; end = e2A; }}\n          memoize(2, e0A, -2);\n        }\n      }\n    }\n    switch (lk)\n    {\n    case -1:\n      try_GroupingVariable();\n      lookahead1W(206);             // S^WS | '(:' | ',' | ':=' | 'as' | 'collation' | 'count' | 'for' | 'group' |\n      if (l1 == 53                  // ':='\n       || l1 == 80)                 // 'as'\n      {\n        if (l1 == 80)               // 'as'\n        {\n          try_TypeDeclaration();\n        }\n        lookahead1W(28);            // S^WS | '(:' | ':='\n        shiftT(53);                 // ':='\n        lookahead1W(267);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        try_ExprSingle();\n      }\n      if (l1 == 95)                 // 'collation'\n      {\n        shiftT(95);                 // 'collation'\n        lookahead1W(15);            // URILiteral | S^WS | '(:'\n        shiftT(7);                  // URILiteral\n      }\n      break;\n    case -3:\n      break;\n    default:\n      try_ExprSingle();\n    }\n  }\n\n  function parse_GroupingVariable()\n  {\n    eventHandler.startNonterminal(\"GroupingVariable\", e0);\n    shift(31);                      // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    eventHandler.endNonterminal(\"GroupingVariable\", e0);\n  }\n\n  function try_GroupingVariable()\n  {\n    shiftT(31);                     // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_VarName();\n  }\n\n  function parse_OrderByClause()\n  {\n    eventHandler.startNonterminal(\"OrderByClause\", e0);\n    switch (l1)\n    {\n    case 205:                       // 'order'\n      shift(205);                   // 'order'\n      lookahead1W(37);              // S^WS | '(:' | 'by'\n      shift(88);                    // 'by'\n      break;\n    default:\n      shift(241);                   // 'stable'\n      lookahead1W(70);              // S^WS | '(:' | 'order'\n      shift(205);                   // 'order'\n      lookahead1W(37);              // S^WS | '(:' | 'by'\n      shift(88);                    // 'by'\n    }\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_OrderSpecList();\n    eventHandler.endNonterminal(\"OrderByClause\", e0);\n  }\n\n  function try_OrderByClause()\n  {\n    switch (l1)\n    {\n    case 205:                       // 'order'\n      shiftT(205);                  // 'order'\n      lookahead1W(37);              // S^WS | '(:' | 'by'\n      shiftT(88);                   // 'by'\n      break;\n    default:\n      shiftT(241);                  // 'stable'\n      lookahead1W(70);              // S^WS | '(:' | 'order'\n      shiftT(205);                  // 'order'\n      lookahead1W(37);              // S^WS | '(:' | 'by'\n      shiftT(88);                   // 'by'\n    }\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_OrderSpecList();\n  }\n\n  function parse_OrderSpecList()\n  {\n    eventHandler.startNonterminal(\"OrderSpecList\", e0);\n    parse_OrderSpec();\n    for (;;)\n    {\n      lookahead1W(198);             // S^WS | '(:' | ',' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' |\n      if (l1 != 42)                 // ','\n      {\n        break;\n      }\n      shift(42);                    // ','\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_OrderSpec();\n    }\n    eventHandler.endNonterminal(\"OrderSpecList\", e0);\n  }\n\n  function try_OrderSpecList()\n  {\n    try_OrderSpec();\n    for (;;)\n    {\n      lookahead1W(198);             // S^WS | '(:' | ',' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' |\n      if (l1 != 42)                 // ','\n      {\n        break;\n      }\n      shiftT(42);                   // ','\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_OrderSpec();\n    }\n  }\n\n  function parse_OrderSpec()\n  {\n    eventHandler.startNonterminal(\"OrderSpec\", e0);\n    parse_ExprSingle();\n    whitespace();\n    parse_OrderModifier();\n    eventHandler.endNonterminal(\"OrderSpec\", e0);\n  }\n\n  function try_OrderSpec()\n  {\n    try_ExprSingle();\n    try_OrderModifier();\n  }\n\n  function parse_OrderModifier()\n  {\n    eventHandler.startNonterminal(\"OrderModifier\", e0);\n    if (l1 == 81                    // 'ascending'\n     || l1 == 114)                  // 'descending'\n    {\n      switch (l1)\n      {\n      case 81:                      // 'ascending'\n        shift(81);                  // 'ascending'\n        break;\n      default:\n        shift(114);                 // 'descending'\n      }\n    }\n    lookahead1W(203);               // S^WS | '(:' | ',' | 'collation' | 'count' | 'empty' | 'for' | 'group' | 'let' |\n    if (l1 == 124)                  // 'empty'\n    {\n      shift(124);                   // 'empty'\n      lookahead1W(125);             // S^WS | '(:' | 'greatest' | 'least'\n      switch (l1)\n      {\n      case 149:                     // 'greatest'\n        shift(149);                 // 'greatest'\n        break;\n      default:\n        shift(176);                 // 'least'\n      }\n    }\n    lookahead1W(199);               // S^WS | '(:' | ',' | 'collation' | 'count' | 'for' | 'group' | 'let' | 'order' |\n    if (l1 == 95)                   // 'collation'\n    {\n      shift(95);                    // 'collation'\n      lookahead1W(15);              // URILiteral | S^WS | '(:'\n      shift(7);                     // URILiteral\n    }\n    eventHandler.endNonterminal(\"OrderModifier\", e0);\n  }\n\n  function try_OrderModifier()\n  {\n    if (l1 == 81                    // 'ascending'\n     || l1 == 114)                  // 'descending'\n    {\n      switch (l1)\n      {\n      case 81:                      // 'ascending'\n        shiftT(81);                 // 'ascending'\n        break;\n      default:\n        shiftT(114);                // 'descending'\n      }\n    }\n    lookahead1W(203);               // S^WS | '(:' | ',' | 'collation' | 'count' | 'empty' | 'for' | 'group' | 'let' |\n    if (l1 == 124)                  // 'empty'\n    {\n      shiftT(124);                  // 'empty'\n      lookahead1W(125);             // S^WS | '(:' | 'greatest' | 'least'\n      switch (l1)\n      {\n      case 149:                     // 'greatest'\n        shiftT(149);                // 'greatest'\n        break;\n      default:\n        shiftT(176);                // 'least'\n      }\n    }\n    lookahead1W(199);               // S^WS | '(:' | ',' | 'collation' | 'count' | 'for' | 'group' | 'let' | 'order' |\n    if (l1 == 95)                   // 'collation'\n    {\n      shiftT(95);                   // 'collation'\n      lookahead1W(15);              // URILiteral | S^WS | '(:'\n      shiftT(7);                    // URILiteral\n    }\n  }\n\n  function parse_ReturnClause()\n  {\n    eventHandler.startNonterminal(\"ReturnClause\", e0);\n    shift(224);                     // 'return'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"ReturnClause\", e0);\n  }\n\n  function try_ReturnClause()\n  {\n    shiftT(224);                    // 'return'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_QuantifiedExpr()\n  {\n    eventHandler.startNonterminal(\"QuantifiedExpr\", e0);\n    switch (l1)\n    {\n    case 240:                       // 'some'\n      shift(240);                   // 'some'\n      break;\n    default:\n      shift(130);                   // 'every'\n    }\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    whitespace();\n    parse_QuantifiedVarDecl();\n    for (;;)\n    {\n      if (l1 != 42)                 // ','\n      {\n        break;\n      }\n      shift(42);                    // ','\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      whitespace();\n      parse_QuantifiedVarDecl();\n    }\n    shift(228);                     // 'satisfies'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"QuantifiedExpr\", e0);\n  }\n\n  function try_QuantifiedExpr()\n  {\n    switch (l1)\n    {\n    case 240:                       // 'some'\n      shiftT(240);                  // 'some'\n      break;\n    default:\n      shiftT(130);                  // 'every'\n    }\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    try_QuantifiedVarDecl();\n    for (;;)\n    {\n      if (l1 != 42)                 // ','\n      {\n        break;\n      }\n      shiftT(42);                   // ','\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      try_QuantifiedVarDecl();\n    }\n    shiftT(228);                    // 'satisfies'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_QuantifiedVarDecl()\n  {\n    eventHandler.startNonterminal(\"QuantifiedVarDecl\", e0);\n    shift(31);                      // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    lookahead1W(114);               // S^WS | '(:' | 'as' | 'in'\n    if (l1 == 80)                   // 'as'\n    {\n      whitespace();\n      parse_TypeDeclaration();\n    }\n    lookahead1W(56);                // S^WS | '(:' | 'in'\n    shift(156);                     // 'in'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"QuantifiedVarDecl\", e0);\n  }\n\n  function try_QuantifiedVarDecl()\n  {\n    shiftT(31);                     // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_VarName();\n    lookahead1W(114);               // S^WS | '(:' | 'as' | 'in'\n    if (l1 == 80)                   // 'as'\n    {\n      try_TypeDeclaration();\n    }\n    lookahead1W(56);                // S^WS | '(:' | 'in'\n    shiftT(156);                    // 'in'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_SwitchExpr()\n  {\n    eventHandler.startNonterminal(\"SwitchExpr\", e0);\n    shift(248);                     // 'switch'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(35);                      // '('\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Expr();\n    shift(38);                      // ')'\n    for (;;)\n    {\n      lookahead1W(38);              // S^WS | '(:' | 'case'\n      whitespace();\n      parse_SwitchCaseClause();\n      if (l1 != 89)                 // 'case'\n      {\n        break;\n      }\n    }\n    shift(110);                     // 'default'\n    lookahead1W(73);                // S^WS | '(:' | 'return'\n    shift(224);                     // 'return'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"SwitchExpr\", e0);\n  }\n\n  function try_SwitchExpr()\n  {\n    shiftT(248);                    // 'switch'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(35);                     // '('\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Expr();\n    shiftT(38);                     // ')'\n    for (;;)\n    {\n      lookahead1W(38);              // S^WS | '(:' | 'case'\n      try_SwitchCaseClause();\n      if (l1 != 89)                 // 'case'\n      {\n        break;\n      }\n    }\n    shiftT(110);                    // 'default'\n    lookahead1W(73);                // S^WS | '(:' | 'return'\n    shiftT(224);                    // 'return'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_SwitchCaseClause()\n  {\n    eventHandler.startNonterminal(\"SwitchCaseClause\", e0);\n    for (;;)\n    {\n      shift(89);                    // 'case'\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_SwitchCaseOperand();\n      if (l1 != 89)                 // 'case'\n      {\n        break;\n      }\n    }\n    shift(224);                     // 'return'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"SwitchCaseClause\", e0);\n  }\n\n  function try_SwitchCaseClause()\n  {\n    for (;;)\n    {\n      shiftT(89);                   // 'case'\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_SwitchCaseOperand();\n      if (l1 != 89)                 // 'case'\n      {\n        break;\n      }\n    }\n    shiftT(224);                    // 'return'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_SwitchCaseOperand()\n  {\n    eventHandler.startNonterminal(\"SwitchCaseOperand\", e0);\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"SwitchCaseOperand\", e0);\n  }\n\n  function try_SwitchCaseOperand()\n  {\n    try_ExprSingle();\n  }\n\n  function parse_TypeswitchExpr()\n  {\n    eventHandler.startNonterminal(\"TypeswitchExpr\", e0);\n    shift(259);                     // 'typeswitch'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(35);                      // '('\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Expr();\n    shift(38);                      // ')'\n    for (;;)\n    {\n      lookahead1W(38);              // S^WS | '(:' | 'case'\n      whitespace();\n      parse_CaseClause();\n      if (l1 != 89)                 // 'case'\n      {\n        break;\n      }\n    }\n    shift(110);                     // 'default'\n    lookahead1W(99);                // S^WS | '$' | '(:' | 'return'\n    if (l1 == 31)                   // '$'\n    {\n      shift(31);                    // '$'\n      lookahead1W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_VarName();\n    }\n    lookahead1W(73);                // S^WS | '(:' | 'return'\n    shift(224);                     // 'return'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"TypeswitchExpr\", e0);\n  }\n\n  function try_TypeswitchExpr()\n  {\n    shiftT(259);                    // 'typeswitch'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(35);                     // '('\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Expr();\n    shiftT(38);                     // ')'\n    for (;;)\n    {\n      lookahead1W(38);              // S^WS | '(:' | 'case'\n      try_CaseClause();\n      if (l1 != 89)                 // 'case'\n      {\n        break;\n      }\n    }\n    shiftT(110);                    // 'default'\n    lookahead1W(99);                // S^WS | '$' | '(:' | 'return'\n    if (l1 == 31)                   // '$'\n    {\n      shiftT(31);                   // '$'\n      lookahead1W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_VarName();\n    }\n    lookahead1W(73);                // S^WS | '(:' | 'return'\n    shiftT(224);                    // 'return'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_CaseClause()\n  {\n    eventHandler.startNonterminal(\"CaseClause\", e0);\n    shift(89);                      // 'case'\n    lookahead1W(258);               // EQName^Token | S^WS | '$' | '%' | '(' | '(:' | 'after' | 'allowing' |\n    if (l1 == 31)                   // '$'\n    {\n      shift(31);                    // '$'\n      lookahead1W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_VarName();\n      lookahead1W(33);              // S^WS | '(:' | 'as'\n      shift(80);                    // 'as'\n    }\n    lookahead1W(254);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_SequenceTypeUnion();\n    shift(224);                     // 'return'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"CaseClause\", e0);\n  }\n\n  function try_CaseClause()\n  {\n    shiftT(89);                     // 'case'\n    lookahead1W(258);               // EQName^Token | S^WS | '$' | '%' | '(' | '(:' | 'after' | 'allowing' |\n    if (l1 == 31)                   // '$'\n    {\n      shiftT(31);                   // '$'\n      lookahead1W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_VarName();\n      lookahead1W(33);              // S^WS | '(:' | 'as'\n      shiftT(80);                   // 'as'\n    }\n    lookahead1W(254);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_SequenceTypeUnion();\n    shiftT(224);                    // 'return'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_SequenceTypeUnion()\n  {\n    eventHandler.startNonterminal(\"SequenceTypeUnion\", e0);\n    parse_SequenceType();\n    for (;;)\n    {\n      lookahead1W(138);             // S^WS | '(:' | 'return' | '|'\n      if (l1 != 284)                // '|'\n      {\n        break;\n      }\n      shift(284);                   // '|'\n      lookahead1W(254);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_SequenceType();\n    }\n    eventHandler.endNonterminal(\"SequenceTypeUnion\", e0);\n  }\n\n  function try_SequenceTypeUnion()\n  {\n    try_SequenceType();\n    for (;;)\n    {\n      lookahead1W(138);             // S^WS | '(:' | 'return' | '|'\n      if (l1 != 284)                // '|'\n      {\n        break;\n      }\n      shiftT(284);                  // '|'\n      lookahead1W(254);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_SequenceType();\n    }\n  }\n\n  function parse_IfExpr()\n  {\n    eventHandler.startNonterminal(\"IfExpr\", e0);\n    shift(154);                     // 'if'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(35);                      // '('\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Expr();\n    shift(38);                      // ')'\n    lookahead1W(80);                // S^WS | '(:' | 'then'\n    shift(250);                     // 'then'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    shift(123);                     // 'else'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"IfExpr\", e0);\n  }\n\n  function try_IfExpr()\n  {\n    shiftT(154);                    // 'if'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(35);                     // '('\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Expr();\n    shiftT(38);                     // ')'\n    lookahead1W(80);                // S^WS | '(:' | 'then'\n    shiftT(250);                    // 'then'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n    shiftT(123);                    // 'else'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_TryCatchExpr()\n  {\n    eventHandler.startNonterminal(\"TryCatchExpr\", e0);\n    parse_TryClause();\n    for (;;)\n    {\n      lookahead1W(39);              // S^WS | '(:' | 'catch'\n      whitespace();\n      parse_CatchClause();\n      lookahead1W(208);             // S^WS | EOF | '(:' | ')' | ',' | ':' | ';' | ']' | 'after' | 'as' | 'ascending' |\n      if (l1 != 92)                 // 'catch'\n      {\n        break;\n      }\n    }\n    eventHandler.endNonterminal(\"TryCatchExpr\", e0);\n  }\n\n  function try_TryCatchExpr()\n  {\n    try_TryClause();\n    for (;;)\n    {\n      lookahead1W(39);              // S^WS | '(:' | 'catch'\n      try_CatchClause();\n      lookahead1W(208);             // S^WS | EOF | '(:' | ')' | ',' | ':' | ';' | ']' | 'after' | 'as' | 'ascending' |\n      if (l1 != 92)                 // 'catch'\n      {\n        break;\n      }\n    }\n  }\n\n  function parse_TryClause()\n  {\n    eventHandler.startNonterminal(\"TryClause\", e0);\n    shift(256);                     // 'try'\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    shift(281);                     // '{'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_TryTargetExpr();\n    shift(287);                     // '}'\n    eventHandler.endNonterminal(\"TryClause\", e0);\n  }\n\n  function try_TryClause()\n  {\n    shiftT(256);                    // 'try'\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    shiftT(281);                    // '{'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_TryTargetExpr();\n    shiftT(287);                    // '}'\n  }\n\n  function parse_TryTargetExpr()\n  {\n    eventHandler.startNonterminal(\"TryTargetExpr\", e0);\n    parse_Expr();\n    eventHandler.endNonterminal(\"TryTargetExpr\", e0);\n  }\n\n  function try_TryTargetExpr()\n  {\n    try_Expr();\n  }\n\n  function parse_CatchClause()\n  {\n    eventHandler.startNonterminal(\"CatchClause\", e0);\n    shift(92);                      // 'catch'\n    lookahead1W(249);               // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_CatchErrorList();\n    shift(281);                     // '{'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Expr();\n    shift(287);                     // '}'\n    eventHandler.endNonterminal(\"CatchClause\", e0);\n  }\n\n  function try_CatchClause()\n  {\n    shiftT(92);                     // 'catch'\n    lookahead1W(249);               // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_CatchErrorList();\n    shiftT(281);                    // '{'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Expr();\n    shiftT(287);                    // '}'\n  }\n\n  function parse_CatchErrorList()\n  {\n    eventHandler.startNonterminal(\"CatchErrorList\", e0);\n    parse_NameTest();\n    for (;;)\n    {\n      lookahead1W(140);             // S^WS | '(:' | '{' | '|'\n      if (l1 != 284)                // '|'\n      {\n        break;\n      }\n      shift(284);                   // '|'\n      lookahead1W(249);             // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_NameTest();\n    }\n    eventHandler.endNonterminal(\"CatchErrorList\", e0);\n  }\n\n  function try_CatchErrorList()\n  {\n    try_NameTest();\n    for (;;)\n    {\n      lookahead1W(140);             // S^WS | '(:' | '{' | '|'\n      if (l1 != 284)                // '|'\n      {\n        break;\n      }\n      shiftT(284);                  // '|'\n      lookahead1W(249);             // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_NameTest();\n    }\n  }\n\n  function parse_OrExpr()\n  {\n    eventHandler.startNonterminal(\"OrExpr\", e0);\n    parse_AndExpr();\n    for (;;)\n    {\n      if (l1 != 204)                // 'or'\n      {\n        break;\n      }\n      shift(204);                   // 'or'\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_AndExpr();\n    }\n    eventHandler.endNonterminal(\"OrExpr\", e0);\n  }\n\n  function try_OrExpr()\n  {\n    try_AndExpr();\n    for (;;)\n    {\n      if (l1 != 204)                // 'or'\n      {\n        break;\n      }\n      shiftT(204);                  // 'or'\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_AndExpr();\n    }\n  }\n\n  function parse_AndExpr()\n  {\n    eventHandler.startNonterminal(\"AndExpr\", e0);\n    parse_NotExpr();\n    for (;;)\n    {\n      if (l1 != 76)                 // 'and'\n      {\n        break;\n      }\n      shift(76);                    // 'and'\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_NotExpr();\n    }\n    eventHandler.endNonterminal(\"AndExpr\", e0);\n  }\n\n  function try_AndExpr()\n  {\n    try_NotExpr();\n    for (;;)\n    {\n      if (l1 != 76)                 // 'and'\n      {\n        break;\n      }\n      shiftT(76);                   // 'and'\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_NotExpr();\n    }\n  }\n\n  function parse_NotExpr()\n  {\n    eventHandler.startNonterminal(\"NotExpr\", e0);\n    if (l1 == 196)                  // 'not'\n    {\n      shift(196);                   // 'not'\n    }\n    lookahead1W(266);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ComparisonExpr();\n    eventHandler.endNonterminal(\"NotExpr\", e0);\n  }\n\n  function try_NotExpr()\n  {\n    if (l1 == 196)                  // 'not'\n    {\n      shiftT(196);                  // 'not'\n    }\n    lookahead1W(266);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ComparisonExpr();\n  }\n\n  function parse_ComparisonExpr()\n  {\n    eventHandler.startNonterminal(\"ComparisonExpr\", e0);\n    parse_FTContainsExpr();\n    if (l1 == 27                    // '!='\n     || l1 == 55                    // '<'\n     || l1 == 58                    // '<<'\n     || l1 == 59                    // '<='\n     || l1 == 61                    // '='\n     || l1 == 62                    // '>'\n     || l1 == 63                    // '>='\n     || l1 == 64                    // '>>'\n     || l1 == 129                   // 'eq'\n     || l1 == 148                   // 'ge'\n     || l1 == 152                   // 'gt'\n     || l1 == 166                   // 'is'\n     || l1 == 175                   // 'le'\n     || l1 == 181                   // 'lt'\n     || l1 == 189)                  // 'ne'\n    {\n      switch (l1)\n      {\n      case 129:                     // 'eq'\n      case 148:                     // 'ge'\n      case 152:                     // 'gt'\n      case 175:                     // 'le'\n      case 181:                     // 'lt'\n      case 189:                     // 'ne'\n        whitespace();\n        parse_ValueComp();\n        break;\n      case 58:                      // '<<'\n      case 64:                      // '>>'\n      case 166:                     // 'is'\n        whitespace();\n        parse_NodeComp();\n        break;\n      default:\n        whitespace();\n        parse_GeneralComp();\n      }\n      lookahead1W(266);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_FTContainsExpr();\n    }\n    eventHandler.endNonterminal(\"ComparisonExpr\", e0);\n  }\n\n  function try_ComparisonExpr()\n  {\n    try_FTContainsExpr();\n    if (l1 == 27                    // '!='\n     || l1 == 55                    // '<'\n     || l1 == 58                    // '<<'\n     || l1 == 59                    // '<='\n     || l1 == 61                    // '='\n     || l1 == 62                    // '>'\n     || l1 == 63                    // '>='\n     || l1 == 64                    // '>>'\n     || l1 == 129                   // 'eq'\n     || l1 == 148                   // 'ge'\n     || l1 == 152                   // 'gt'\n     || l1 == 166                   // 'is'\n     || l1 == 175                   // 'le'\n     || l1 == 181                   // 'lt'\n     || l1 == 189)                  // 'ne'\n    {\n      switch (l1)\n      {\n      case 129:                     // 'eq'\n      case 148:                     // 'ge'\n      case 152:                     // 'gt'\n      case 175:                     // 'le'\n      case 181:                     // 'lt'\n      case 189:                     // 'ne'\n        try_ValueComp();\n        break;\n      case 58:                      // '<<'\n      case 64:                      // '>>'\n      case 166:                     // 'is'\n        try_NodeComp();\n        break;\n      default:\n        try_GeneralComp();\n      }\n      lookahead1W(266);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_FTContainsExpr();\n    }\n  }\n\n  function parse_FTContainsExpr()\n  {\n    eventHandler.startNonterminal(\"FTContainsExpr\", e0);\n    parse_StringConcatExpr();\n    if (l1 == 100)                  // 'contains'\n    {\n      shift(100);                   // 'contains'\n      lookahead1W(79);              // S^WS | '(:' | 'text'\n      shift(249);                   // 'text'\n      lookahead1W(177);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'\n      whitespace();\n      parse_FTSelection();\n      if (l1 == 277)                // 'without'\n      {\n        whitespace();\n        parse_FTIgnoreOption();\n      }\n    }\n    eventHandler.endNonterminal(\"FTContainsExpr\", e0);\n  }\n\n  function try_FTContainsExpr()\n  {\n    try_StringConcatExpr();\n    if (l1 == 100)                  // 'contains'\n    {\n      shiftT(100);                  // 'contains'\n      lookahead1W(79);              // S^WS | '(:' | 'text'\n      shiftT(249);                  // 'text'\n      lookahead1W(177);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'\n      try_FTSelection();\n      if (l1 == 277)                // 'without'\n      {\n        try_FTIgnoreOption();\n      }\n    }\n  }\n\n  function parse_StringConcatExpr()\n  {\n    eventHandler.startNonterminal(\"StringConcatExpr\", e0);\n    parse_RangeExpr();\n    for (;;)\n    {\n      if (l1 != 285)                // '||'\n      {\n        break;\n      }\n      shift(285);                   // '||'\n      lookahead1W(266);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_RangeExpr();\n    }\n    eventHandler.endNonterminal(\"StringConcatExpr\", e0);\n  }\n\n  function try_StringConcatExpr()\n  {\n    try_RangeExpr();\n    for (;;)\n    {\n      if (l1 != 285)                // '||'\n      {\n        break;\n      }\n      shiftT(285);                  // '||'\n      lookahead1W(266);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_RangeExpr();\n    }\n  }\n\n  function parse_RangeExpr()\n  {\n    eventHandler.startNonterminal(\"RangeExpr\", e0);\n    parse_AdditiveExpr();\n    if (l1 == 253)                  // 'to'\n    {\n      shift(253);                   // 'to'\n      lookahead1W(266);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_AdditiveExpr();\n    }\n    eventHandler.endNonterminal(\"RangeExpr\", e0);\n  }\n\n  function try_RangeExpr()\n  {\n    try_AdditiveExpr();\n    if (l1 == 253)                  // 'to'\n    {\n      shiftT(253);                  // 'to'\n      lookahead1W(266);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_AdditiveExpr();\n    }\n  }\n\n  function parse_AdditiveExpr()\n  {\n    eventHandler.startNonterminal(\"AdditiveExpr\", e0);\n    parse_MultiplicativeExpr();\n    for (;;)\n    {\n      if (l1 != 41                  // '+'\n       && l1 != 43)                 // '-'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 41:                      // '+'\n        shift(41);                  // '+'\n        break;\n      default:\n        shift(43);                  // '-'\n      }\n      lookahead1W(266);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_MultiplicativeExpr();\n    }\n    eventHandler.endNonterminal(\"AdditiveExpr\", e0);\n  }\n\n  function try_AdditiveExpr()\n  {\n    try_MultiplicativeExpr();\n    for (;;)\n    {\n      if (l1 != 41                  // '+'\n       && l1 != 43)                 // '-'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 41:                      // '+'\n        shiftT(41);                 // '+'\n        break;\n      default:\n        shiftT(43);                 // '-'\n      }\n      lookahead1W(266);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_MultiplicativeExpr();\n    }\n  }\n\n  function parse_MultiplicativeExpr()\n  {\n    eventHandler.startNonterminal(\"MultiplicativeExpr\", e0);\n    parse_UnionExpr();\n    for (;;)\n    {\n      if (l1 != 39                  // '*'\n       && l1 != 119                 // 'div'\n       && l1 != 153                 // 'idiv'\n       && l1 != 183)                // 'mod'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 39:                      // '*'\n        shift(39);                  // '*'\n        break;\n      case 119:                     // 'div'\n        shift(119);                 // 'div'\n        break;\n      case 153:                     // 'idiv'\n        shift(153);                 // 'idiv'\n        break;\n      default:\n        shift(183);                 // 'mod'\n      }\n      lookahead1W(266);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_UnionExpr();\n    }\n    eventHandler.endNonterminal(\"MultiplicativeExpr\", e0);\n  }\n\n  function try_MultiplicativeExpr()\n  {\n    try_UnionExpr();\n    for (;;)\n    {\n      if (l1 != 39                  // '*'\n       && l1 != 119                 // 'div'\n       && l1 != 153                 // 'idiv'\n       && l1 != 183)                // 'mod'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 39:                      // '*'\n        shiftT(39);                 // '*'\n        break;\n      case 119:                     // 'div'\n        shiftT(119);                // 'div'\n        break;\n      case 153:                     // 'idiv'\n        shiftT(153);                // 'idiv'\n        break;\n      default:\n        shiftT(183);                // 'mod'\n      }\n      lookahead1W(266);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_UnionExpr();\n    }\n  }\n\n  function parse_UnionExpr()\n  {\n    eventHandler.startNonterminal(\"UnionExpr\", e0);\n    parse_IntersectExceptExpr();\n    for (;;)\n    {\n      if (l1 != 260                 // 'union'\n       && l1 != 284)                // '|'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 260:                     // 'union'\n        shift(260);                 // 'union'\n        break;\n      default:\n        shift(284);                 // '|'\n      }\n      lookahead1W(266);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_IntersectExceptExpr();\n    }\n    eventHandler.endNonterminal(\"UnionExpr\", e0);\n  }\n\n  function try_UnionExpr()\n  {\n    try_IntersectExceptExpr();\n    for (;;)\n    {\n      if (l1 != 260                 // 'union'\n       && l1 != 284)                // '|'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 260:                     // 'union'\n        shiftT(260);                // 'union'\n        break;\n      default:\n        shiftT(284);                // '|'\n      }\n      lookahead1W(266);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_IntersectExceptExpr();\n    }\n  }\n\n  function parse_IntersectExceptExpr()\n  {\n    eventHandler.startNonterminal(\"IntersectExceptExpr\", e0);\n    parse_InstanceofExpr();\n    for (;;)\n    {\n      lookahead1W(222);             // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |\n      if (l1 != 132                 // 'except'\n       && l1 != 164)                // 'intersect'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 164:                     // 'intersect'\n        shift(164);                 // 'intersect'\n        break;\n      default:\n        shift(132);                 // 'except'\n      }\n      lookahead1W(266);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_InstanceofExpr();\n    }\n    eventHandler.endNonterminal(\"IntersectExceptExpr\", e0);\n  }\n\n  function try_IntersectExceptExpr()\n  {\n    try_InstanceofExpr();\n    for (;;)\n    {\n      lookahead1W(222);             // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |\n      if (l1 != 132                 // 'except'\n       && l1 != 164)                // 'intersect'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 164:                     // 'intersect'\n        shiftT(164);                // 'intersect'\n        break;\n      default:\n        shiftT(132);                // 'except'\n      }\n      lookahead1W(266);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_InstanceofExpr();\n    }\n  }\n\n  function parse_InstanceofExpr()\n  {\n    eventHandler.startNonterminal(\"InstanceofExpr\", e0);\n    parse_TreatExpr();\n    lookahead1W(223);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |\n    if (l1 == 162)                  // 'instance'\n    {\n      shift(162);                   // 'instance'\n      lookahead1W(67);              // S^WS | '(:' | 'of'\n      shift(200);                   // 'of'\n      lookahead1W(254);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_SequenceType();\n    }\n    eventHandler.endNonterminal(\"InstanceofExpr\", e0);\n  }\n\n  function try_InstanceofExpr()\n  {\n    try_TreatExpr();\n    lookahead1W(223);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |\n    if (l1 == 162)                  // 'instance'\n    {\n      shiftT(162);                  // 'instance'\n      lookahead1W(67);              // S^WS | '(:' | 'of'\n      shiftT(200);                  // 'of'\n      lookahead1W(254);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_SequenceType();\n    }\n  }\n\n  function parse_TreatExpr()\n  {\n    eventHandler.startNonterminal(\"TreatExpr\", e0);\n    parse_CastableExpr();\n    lookahead1W(224);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |\n    if (l1 == 254)                  // 'treat'\n    {\n      shift(254);                   // 'treat'\n      lookahead1W(33);              // S^WS | '(:' | 'as'\n      shift(80);                    // 'as'\n      lookahead1W(254);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_SequenceType();\n    }\n    eventHandler.endNonterminal(\"TreatExpr\", e0);\n  }\n\n  function try_TreatExpr()\n  {\n    try_CastableExpr();\n    lookahead1W(224);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |\n    if (l1 == 254)                  // 'treat'\n    {\n      shiftT(254);                  // 'treat'\n      lookahead1W(33);              // S^WS | '(:' | 'as'\n      shiftT(80);                   // 'as'\n      lookahead1W(254);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_SequenceType();\n    }\n  }\n\n  function parse_CastableExpr()\n  {\n    eventHandler.startNonterminal(\"CastableExpr\", e0);\n    parse_CastExpr();\n    lookahead1W(225);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |\n    if (l1 == 91)                   // 'castable'\n    {\n      shift(91);                    // 'castable'\n      lookahead1W(33);              // S^WS | '(:' | 'as'\n      shift(80);                    // 'as'\n      lookahead1W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_SingleType();\n    }\n    eventHandler.endNonterminal(\"CastableExpr\", e0);\n  }\n\n  function try_CastableExpr()\n  {\n    try_CastExpr();\n    lookahead1W(225);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |\n    if (l1 == 91)                   // 'castable'\n    {\n      shiftT(91);                   // 'castable'\n      lookahead1W(33);              // S^WS | '(:' | 'as'\n      shiftT(80);                   // 'as'\n      lookahead1W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_SingleType();\n    }\n  }\n\n  function parse_CastExpr()\n  {\n    eventHandler.startNonterminal(\"CastExpr\", e0);\n    parse_UnaryExpr();\n    lookahead1W(227);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |\n    if (l1 == 90)                   // 'cast'\n    {\n      shift(90);                    // 'cast'\n      lookahead1W(33);              // S^WS | '(:' | 'as'\n      shift(80);                    // 'as'\n      lookahead1W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_SingleType();\n    }\n    eventHandler.endNonterminal(\"CastExpr\", e0);\n  }\n\n  function try_CastExpr()\n  {\n    try_UnaryExpr();\n    lookahead1W(227);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |\n    if (l1 == 90)                   // 'cast'\n    {\n      shiftT(90);                   // 'cast'\n      lookahead1W(33);              // S^WS | '(:' | 'as'\n      shiftT(80);                   // 'as'\n      lookahead1W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_SingleType();\n    }\n  }\n\n  function parse_UnaryExpr()\n  {\n    eventHandler.startNonterminal(\"UnaryExpr\", e0);\n    for (;;)\n    {\n      lookahead1W(266);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      if (l1 != 41                  // '+'\n       && l1 != 43)                 // '-'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 43:                      // '-'\n        shift(43);                  // '-'\n        break;\n      default:\n        shift(41);                  // '+'\n      }\n    }\n    whitespace();\n    parse_ValueExpr();\n    eventHandler.endNonterminal(\"UnaryExpr\", e0);\n  }\n\n  function try_UnaryExpr()\n  {\n    for (;;)\n    {\n      lookahead1W(266);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      if (l1 != 41                  // '+'\n       && l1 != 43)                 // '-'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 43:                      // '-'\n        shiftT(43);                 // '-'\n        break;\n      default:\n        shiftT(41);                 // '+'\n      }\n    }\n    try_ValueExpr();\n  }\n\n  function parse_ValueExpr()\n  {\n    eventHandler.startNonterminal(\"ValueExpr\", e0);\n    switch (l1)\n    {\n    case 266:                       // 'validate'\n      lookahead2W(188);             // S^WS | '#' | '(' | '(:' | 'lax' | 'strict' | 'type' | '{'\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 89354:                     // 'validate' 'lax'\n    case 125706:                    // 'validate' 'strict'\n    case 132362:                    // 'validate' 'type'\n    case 144138:                    // 'validate' '{'\n      parse_ValidateExpr();\n      break;\n    case 36:                        // '(#'\n      parse_ExtensionExpr();\n      break;\n    default:\n      parse_SimpleMapExpr();\n    }\n    eventHandler.endNonterminal(\"ValueExpr\", e0);\n  }\n\n  function try_ValueExpr()\n  {\n    switch (l1)\n    {\n    case 266:                       // 'validate'\n      lookahead2W(188);             // S^WS | '#' | '(' | '(:' | 'lax' | 'strict' | 'type' | '{'\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 89354:                     // 'validate' 'lax'\n    case 125706:                    // 'validate' 'strict'\n    case 132362:                    // 'validate' 'type'\n    case 144138:                    // 'validate' '{'\n      try_ValidateExpr();\n      break;\n    case 36:                        // '(#'\n      try_ExtensionExpr();\n      break;\n    default:\n      try_SimpleMapExpr();\n    }\n  }\n\n  function parse_SimpleMapExpr()\n  {\n    eventHandler.startNonterminal(\"SimpleMapExpr\", e0);\n    parse_PathExpr();\n    for (;;)\n    {\n      if (l1 != 26)                 // '!'\n      {\n        break;\n      }\n      shift(26);                    // '!'\n      lookahead1W(263);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_PathExpr();\n    }\n    eventHandler.endNonterminal(\"SimpleMapExpr\", e0);\n  }\n\n  function try_SimpleMapExpr()\n  {\n    try_PathExpr();\n    for (;;)\n    {\n      if (l1 != 26)                 // '!'\n      {\n        break;\n      }\n      shiftT(26);                   // '!'\n      lookahead1W(263);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_PathExpr();\n    }\n  }\n\n  function parse_GeneralComp()\n  {\n    eventHandler.startNonterminal(\"GeneralComp\", e0);\n    switch (l1)\n    {\n    case 61:                        // '='\n      shift(61);                    // '='\n      break;\n    case 27:                        // '!='\n      shift(27);                    // '!='\n      break;\n    case 55:                        // '<'\n      shift(55);                    // '<'\n      break;\n    case 59:                        // '<='\n      shift(59);                    // '<='\n      break;\n    case 62:                        // '>'\n      shift(62);                    // '>'\n      break;\n    default:\n      shift(63);                    // '>='\n    }\n    eventHandler.endNonterminal(\"GeneralComp\", e0);\n  }\n\n  function try_GeneralComp()\n  {\n    switch (l1)\n    {\n    case 61:                        // '='\n      shiftT(61);                   // '='\n      break;\n    case 27:                        // '!='\n      shiftT(27);                   // '!='\n      break;\n    case 55:                        // '<'\n      shiftT(55);                   // '<'\n      break;\n    case 59:                        // '<='\n      shiftT(59);                   // '<='\n      break;\n    case 62:                        // '>'\n      shiftT(62);                   // '>'\n      break;\n    default:\n      shiftT(63);                   // '>='\n    }\n  }\n\n  function parse_ValueComp()\n  {\n    eventHandler.startNonterminal(\"ValueComp\", e0);\n    switch (l1)\n    {\n    case 129:                       // 'eq'\n      shift(129);                   // 'eq'\n      break;\n    case 189:                       // 'ne'\n      shift(189);                   // 'ne'\n      break;\n    case 181:                       // 'lt'\n      shift(181);                   // 'lt'\n      break;\n    case 175:                       // 'le'\n      shift(175);                   // 'le'\n      break;\n    case 152:                       // 'gt'\n      shift(152);                   // 'gt'\n      break;\n    default:\n      shift(148);                   // 'ge'\n    }\n    eventHandler.endNonterminal(\"ValueComp\", e0);\n  }\n\n  function try_ValueComp()\n  {\n    switch (l1)\n    {\n    case 129:                       // 'eq'\n      shiftT(129);                  // 'eq'\n      break;\n    case 189:                       // 'ne'\n      shiftT(189);                  // 'ne'\n      break;\n    case 181:                       // 'lt'\n      shiftT(181);                  // 'lt'\n      break;\n    case 175:                       // 'le'\n      shiftT(175);                  // 'le'\n      break;\n    case 152:                       // 'gt'\n      shiftT(152);                  // 'gt'\n      break;\n    default:\n      shiftT(148);                  // 'ge'\n    }\n  }\n\n  function parse_NodeComp()\n  {\n    eventHandler.startNonterminal(\"NodeComp\", e0);\n    switch (l1)\n    {\n    case 166:                       // 'is'\n      shift(166);                   // 'is'\n      break;\n    case 58:                        // '<<'\n      shift(58);                    // '<<'\n      break;\n    default:\n      shift(64);                    // '>>'\n    }\n    eventHandler.endNonterminal(\"NodeComp\", e0);\n  }\n\n  function try_NodeComp()\n  {\n    switch (l1)\n    {\n    case 166:                       // 'is'\n      shiftT(166);                  // 'is'\n      break;\n    case 58:                        // '<<'\n      shiftT(58);                   // '<<'\n      break;\n    default:\n      shiftT(64);                   // '>>'\n    }\n  }\n\n  function parse_ValidateExpr()\n  {\n    eventHandler.startNonterminal(\"ValidateExpr\", e0);\n    shift(266);                     // 'validate'\n    lookahead1W(175);               // S^WS | '(:' | 'lax' | 'strict' | 'type' | '{'\n    if (l1 != 281)                  // '{'\n    {\n      switch (l1)\n      {\n      case 258:                     // 'type'\n        shift(258);                 // 'type'\n        lookahead1W(246);           // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n        whitespace();\n        parse_TypeName();\n        break;\n      default:\n        whitespace();\n        parse_ValidationMode();\n      }\n    }\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    shift(281);                     // '{'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Expr();\n    shift(287);                     // '}'\n    eventHandler.endNonterminal(\"ValidateExpr\", e0);\n  }\n\n  function try_ValidateExpr()\n  {\n    shiftT(266);                    // 'validate'\n    lookahead1W(175);               // S^WS | '(:' | 'lax' | 'strict' | 'type' | '{'\n    if (l1 != 281)                  // '{'\n    {\n      switch (l1)\n      {\n      case 258:                     // 'type'\n        shiftT(258);                // 'type'\n        lookahead1W(246);           // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n        try_TypeName();\n        break;\n      default:\n        try_ValidationMode();\n      }\n    }\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    shiftT(281);                    // '{'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Expr();\n    shiftT(287);                    // '}'\n  }\n\n  function parse_ValidationMode()\n  {\n    eventHandler.startNonterminal(\"ValidationMode\", e0);\n    switch (l1)\n    {\n    case 174:                       // 'lax'\n      shift(174);                   // 'lax'\n      break;\n    default:\n      shift(245);                   // 'strict'\n    }\n    eventHandler.endNonterminal(\"ValidationMode\", e0);\n  }\n\n  function try_ValidationMode()\n  {\n    switch (l1)\n    {\n    case 174:                       // 'lax'\n      shiftT(174);                  // 'lax'\n      break;\n    default:\n      shiftT(245);                  // 'strict'\n    }\n  }\n\n  function parse_ExtensionExpr()\n  {\n    eventHandler.startNonterminal(\"ExtensionExpr\", e0);\n    for (;;)\n    {\n      whitespace();\n      parse_Pragma();\n      lookahead1W(104);             // S^WS | '(#' | '(:' | '{'\n      if (l1 != 36)                 // '(#'\n      {\n        break;\n      }\n    }\n    shift(281);                     // '{'\n    lookahead1W(275);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    if (l1 != 287)                  // '}'\n    {\n      whitespace();\n      parse_Expr();\n    }\n    shift(287);                     // '}'\n    eventHandler.endNonterminal(\"ExtensionExpr\", e0);\n  }\n\n  function try_ExtensionExpr()\n  {\n    for (;;)\n    {\n      try_Pragma();\n      lookahead1W(104);             // S^WS | '(#' | '(:' | '{'\n      if (l1 != 36)                 // '(#'\n      {\n        break;\n      }\n    }\n    shiftT(281);                    // '{'\n    lookahead1W(275);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    if (l1 != 287)                  // '}'\n    {\n      try_Expr();\n    }\n    shiftT(287);                    // '}'\n  }\n\n  function parse_Pragma()\n  {\n    eventHandler.startNonterminal(\"Pragma\", e0);\n    shift(36);                      // '(#'\n    lookahead1(243);                // EQName^Token | S | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' |\n    if (l1 == 21)                   // S\n    {\n      shift(21);                    // S\n    }\n    parse_EQName();\n    lookahead1(10);                 // S | '#)'\n    if (l1 == 21)                   // S\n    {\n      shift(21);                    // S\n      lookahead1(0);                // PragmaContents\n      shift(1);                     // PragmaContents\n    }\n    lookahead1(5);                  // '#)'\n    shift(30);                      // '#)'\n    eventHandler.endNonterminal(\"Pragma\", e0);\n  }\n\n  function try_Pragma()\n  {\n    shiftT(36);                     // '(#'\n    lookahead1(243);                // EQName^Token | S | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' |\n    if (l1 == 21)                   // S\n    {\n      shiftT(21);                   // S\n    }\n    try_EQName();\n    lookahead1(10);                 // S | '#)'\n    if (l1 == 21)                   // S\n    {\n      shiftT(21);                   // S\n      lookahead1(0);                // PragmaContents\n      shiftT(1);                    // PragmaContents\n    }\n    lookahead1(5);                  // '#)'\n    shiftT(30);                     // '#)'\n  }\n\n  function parse_PathExpr()\n  {\n    eventHandler.startNonterminal(\"PathExpr\", e0);\n    switch (l1)\n    {\n    case 47:                        // '/'\n      shift(47);                    // '/'\n      lookahead1W(289);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      switch (l1)\n      {\n      case 25:                      // EOF\n      case 26:                      // '!'\n      case 27:                      // '!='\n      case 38:                      // ')'\n      case 39:                      // '*'\n      case 41:                      // '+'\n      case 42:                      // ','\n      case 43:                      // '-'\n      case 50:                      // ':'\n      case 54:                      // ';'\n      case 58:                      // '<<'\n      case 59:                      // '<='\n      case 61:                      // '='\n      case 62:                      // '>'\n      case 63:                      // '>='\n      case 64:                      // '>>'\n      case 70:                      // ']'\n      case 88:                      // 'by'\n      case 100:                     // 'contains'\n      case 209:                     // 'paragraphs'\n      case 237:                     // 'sentences'\n      case 252:                     // 'times'\n      case 279:                     // 'words'\n      case 284:                     // '|'\n      case 285:                     // '||'\n      case 286:                     // '|}'\n      case 287:                     // '}'\n        break;\n      default:\n        whitespace();\n        parse_RelativePathExpr();\n      }\n      break;\n    case 48:                        // '//'\n      shift(48);                    // '//'\n      lookahead1W(260);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_RelativePathExpr();\n      break;\n    default:\n      parse_RelativePathExpr();\n    }\n    eventHandler.endNonterminal(\"PathExpr\", e0);\n  }\n\n  function try_PathExpr()\n  {\n    switch (l1)\n    {\n    case 47:                        // '/'\n      shiftT(47);                   // '/'\n      lookahead1W(289);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      switch (l1)\n      {\n      case 25:                      // EOF\n      case 26:                      // '!'\n      case 27:                      // '!='\n      case 38:                      // ')'\n      case 39:                      // '*'\n      case 41:                      // '+'\n      case 42:                      // ','\n      case 43:                      // '-'\n      case 50:                      // ':'\n      case 54:                      // ';'\n      case 58:                      // '<<'\n      case 59:                      // '<='\n      case 61:                      // '='\n      case 62:                      // '>'\n      case 63:                      // '>='\n      case 64:                      // '>>'\n      case 70:                      // ']'\n      case 88:                      // 'by'\n      case 100:                     // 'contains'\n      case 209:                     // 'paragraphs'\n      case 237:                     // 'sentences'\n      case 252:                     // 'times'\n      case 279:                     // 'words'\n      case 284:                     // '|'\n      case 285:                     // '||'\n      case 286:                     // '|}'\n      case 287:                     // '}'\n        break;\n      default:\n        try_RelativePathExpr();\n      }\n      break;\n    case 48:                        // '//'\n      shiftT(48);                   // '//'\n      lookahead1W(260);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_RelativePathExpr();\n      break;\n    default:\n      try_RelativePathExpr();\n    }\n  }\n\n  function parse_RelativePathExpr()\n  {\n    eventHandler.startNonterminal(\"RelativePathExpr\", e0);\n    parse_PostfixExpr();\n    for (;;)\n    {\n      switch (l1)\n      {\n      case 26:                      // '!'\n        lookahead2W(265);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk != 25                  // EOF\n       && lk != 27                  // '!='\n       && lk != 38                  // ')'\n       && lk != 39                  // '*'\n       && lk != 41                  // '+'\n       && lk != 42                  // ','\n       && lk != 43                  // '-'\n       && lk != 47                  // '/'\n       && lk != 48                  // '//'\n       && lk != 50                  // ':'\n       && lk != 54                  // ';'\n       && lk != 55                  // '<'\n       && lk != 58                  // '<<'\n       && lk != 59                  // '<='\n       && lk != 61                  // '='\n       && lk != 62                  // '>'\n       && lk != 63                  // '>='\n       && lk != 64                  // '>>'\n       && lk != 70                  // ']'\n       && lk != 71                  // 'after'\n       && lk != 76                  // 'and'\n       && lk != 80                  // 'as'\n       && lk != 81                  // 'ascending'\n       && lk != 82                  // 'at'\n       && lk != 85                  // 'before'\n       && lk != 88                  // 'by'\n       && lk != 89                  // 'case'\n       && lk != 90                  // 'cast'\n       && lk != 91                  // 'castable'\n       && lk != 95                  // 'collation'\n       && lk != 100                 // 'contains'\n       && lk != 106                 // 'count'\n       && lk != 110                 // 'default'\n       && lk != 114                 // 'descending'\n       && lk != 119                 // 'div'\n       && lk != 123                 // 'else'\n       && lk != 124                 // 'empty'\n       && lk != 127                 // 'end'\n       && lk != 129                 // 'eq'\n       && lk != 132                 // 'except'\n       && lk != 139                 // 'for'\n       && lk != 148                 // 'ge'\n       && lk != 150                 // 'group'\n       && lk != 152                 // 'gt'\n       && lk != 153                 // 'idiv'\n       && lk != 162                 // 'instance'\n       && lk != 164                 // 'intersect'\n       && lk != 165                 // 'into'\n       && lk != 166                 // 'is'\n       && lk != 175                 // 'le'\n       && lk != 177                 // 'let'\n       && lk != 181                 // 'lt'\n       && lk != 183                 // 'mod'\n       && lk != 184                 // 'modify'\n       && lk != 189                 // 'ne'\n       && lk != 202                 // 'only'\n       && lk != 204                 // 'or'\n       && lk != 205                 // 'order'\n       && lk != 209                 // 'paragraphs'\n       && lk != 224                 // 'return'\n       && lk != 228                 // 'satisfies'\n       && lk != 237                 // 'sentences'\n       && lk != 241                 // 'stable'\n       && lk != 242                 // 'start'\n       && lk != 252                 // 'times'\n       && lk != 253                 // 'to'\n       && lk != 254                 // 'treat'\n       && lk != 260                 // 'union'\n       && lk != 272                 // 'where'\n       && lk != 276                 // 'with'\n       && lk != 279                 // 'words'\n       && lk != 284                 // '|'\n       && lk != 285                 // '||'\n       && lk != 286                 // '|}'\n       && lk != 287                 // '}'\n       && lk != 2586                // '!' Wildcard\n       && lk != 23578               // '!' '..'\n       && lk != 24090               // '!' '/'\n       && lk != 24602               // '!' '//'\n       && lk != 34330)              // '!' '@'\n      {\n        lk = memoized(3, e0);\n        if (lk == 0)\n        {\n          var b0A = b0; var e0A = e0; var l1A = l1;\n          var b1A = b1; var e1A = e1; var l2A = l2;\n          var b2A = b2; var e2A = e2;\n          try\n          {\n            switch (l1)\n            {\n            case 47:                // '/'\n              shiftT(47);           // '/'\n              break;\n            case 48:                // '//'\n              shiftT(48);           // '//'\n              break;\n            default:\n              shiftT(26);           // '!'\n            }\n            lookahead1W(264);       // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n            try_StepExpr();\n            lk = -1;\n          }\n          catch (p1A)\n          {\n            lk = -2;\n          }\n          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n          b2 = b2A; e2 = e2A; end = e2A; }}\n          memoize(3, e0, lk);\n        }\n      }\n      if (lk != -1\n       && lk != 47                  // '/'\n       && lk != 48                  // '//'\n       && lk != 2586                // '!' Wildcard\n       && lk != 23578               // '!' '..'\n       && lk != 34330)              // '!' '@'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 47:                      // '/'\n        shift(47);                  // '/'\n        break;\n      case 48:                      // '//'\n        shift(48);                  // '//'\n        break;\n      default:\n        shift(26);                  // '!'\n      }\n      lookahead1W(264);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_StepExpr();\n    }\n    eventHandler.endNonterminal(\"RelativePathExpr\", e0);\n  }\n\n  function try_RelativePathExpr()\n  {\n    try_PostfixExpr();\n    for (;;)\n    {\n      switch (l1)\n      {\n      case 26:                      // '!'\n        lookahead2W(265);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk != 25                  // EOF\n       && lk != 27                  // '!='\n       && lk != 38                  // ')'\n       && lk != 39                  // '*'\n       && lk != 41                  // '+'\n       && lk != 42                  // ','\n       && lk != 43                  // '-'\n       && lk != 47                  // '/'\n       && lk != 48                  // '//'\n       && lk != 50                  // ':'\n       && lk != 54                  // ';'\n       && lk != 55                  // '<'\n       && lk != 58                  // '<<'\n       && lk != 59                  // '<='\n       && lk != 61                  // '='\n       && lk != 62                  // '>'\n       && lk != 63                  // '>='\n       && lk != 64                  // '>>'\n       && lk != 70                  // ']'\n       && lk != 71                  // 'after'\n       && lk != 76                  // 'and'\n       && lk != 80                  // 'as'\n       && lk != 81                  // 'ascending'\n       && lk != 82                  // 'at'\n       && lk != 85                  // 'before'\n       && lk != 88                  // 'by'\n       && lk != 89                  // 'case'\n       && lk != 90                  // 'cast'\n       && lk != 91                  // 'castable'\n       && lk != 95                  // 'collation'\n       && lk != 100                 // 'contains'\n       && lk != 106                 // 'count'\n       && lk != 110                 // 'default'\n       && lk != 114                 // 'descending'\n       && lk != 119                 // 'div'\n       && lk != 123                 // 'else'\n       && lk != 124                 // 'empty'\n       && lk != 127                 // 'end'\n       && lk != 129                 // 'eq'\n       && lk != 132                 // 'except'\n       && lk != 139                 // 'for'\n       && lk != 148                 // 'ge'\n       && lk != 150                 // 'group'\n       && lk != 152                 // 'gt'\n       && lk != 153                 // 'idiv'\n       && lk != 162                 // 'instance'\n       && lk != 164                 // 'intersect'\n       && lk != 165                 // 'into'\n       && lk != 166                 // 'is'\n       && lk != 175                 // 'le'\n       && lk != 177                 // 'let'\n       && lk != 181                 // 'lt'\n       && lk != 183                 // 'mod'\n       && lk != 184                 // 'modify'\n       && lk != 189                 // 'ne'\n       && lk != 202                 // 'only'\n       && lk != 204                 // 'or'\n       && lk != 205                 // 'order'\n       && lk != 209                 // 'paragraphs'\n       && lk != 224                 // 'return'\n       && lk != 228                 // 'satisfies'\n       && lk != 237                 // 'sentences'\n       && lk != 241                 // 'stable'\n       && lk != 242                 // 'start'\n       && lk != 252                 // 'times'\n       && lk != 253                 // 'to'\n       && lk != 254                 // 'treat'\n       && lk != 260                 // 'union'\n       && lk != 272                 // 'where'\n       && lk != 276                 // 'with'\n       && lk != 279                 // 'words'\n       && lk != 284                 // '|'\n       && lk != 285                 // '||'\n       && lk != 286                 // '|}'\n       && lk != 287                 // '}'\n       && lk != 2586                // '!' Wildcard\n       && lk != 23578               // '!' '..'\n       && lk != 24090               // '!' '/'\n       && lk != 24602               // '!' '//'\n       && lk != 34330)              // '!' '@'\n      {\n        lk = memoized(3, e0);\n        if (lk == 0)\n        {\n          var b0A = b0; var e0A = e0; var l1A = l1;\n          var b1A = b1; var e1A = e1; var l2A = l2;\n          var b2A = b2; var e2A = e2;\n          try\n          {\n            switch (l1)\n            {\n            case 47:                // '/'\n              shiftT(47);           // '/'\n              break;\n            case 48:                // '//'\n              shiftT(48);           // '//'\n              break;\n            default:\n              shiftT(26);           // '!'\n            }\n            lookahead1W(264);       // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n            try_StepExpr();\n            memoize(3, e0A, -1);\n            continue;\n          }\n          catch (p1A)\n          {\n            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n            b2 = b2A; e2 = e2A; end = e2A; }}\n            memoize(3, e0A, -2);\n            break;\n          }\n        }\n      }\n      if (lk != -1\n       && lk != 47                  // '/'\n       && lk != 48                  // '//'\n       && lk != 2586                // '!' Wildcard\n       && lk != 23578               // '!' '..'\n       && lk != 34330)              // '!' '@'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 47:                      // '/'\n        shiftT(47);                 // '/'\n        break;\n      case 48:                      // '//'\n        shiftT(48);                 // '//'\n        break;\n      default:\n        shiftT(26);                 // '!'\n      }\n      lookahead1W(264);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_StepExpr();\n    }\n  }\n\n  function parse_StepExpr()\n  {\n    eventHandler.startNonterminal(\"StepExpr\", e0);\n    switch (l1)\n    {\n    case 83:                        // 'attribute'\n      lookahead2W(288);             // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' |\n      break;\n    case 122:                       // 'element'\n      lookahead2W(287);             // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' |\n      break;\n    case 187:                       // 'namespace'\n    case 220:                       // 'processing-instruction'\n      lookahead2W(285);             // NCName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' |\n      break;\n    case 135:                       // 'false'\n    case 197:                       // 'null'\n    case 255:                       // 'true'\n      lookahead2W(237);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '.' |\n      break;\n    case 97:                        // 'comment'\n    case 120:                       // 'document'\n    case 206:                       // 'ordered'\n    case 249:                       // 'text'\n    case 262:                       // 'unordered'\n      lookahead2W(239);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    case 79:                        // 'array'\n    case 125:                       // 'empty-sequence'\n    case 154:                       // 'if'\n    case 167:                       // 'item'\n    case 169:                       // 'json-item'\n    case 247:                       // 'structured-item'\n    case 248:                       // 'switch'\n    case 259:                       // 'typeswitch'\n      lookahead2W(230);             // S^WS | EOF | '!' | '!=' | '#' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |\n      break;\n    case 74:                        // 'ancestor'\n    case 75:                        // 'ancestor-or-self'\n    case 94:                        // 'child'\n    case 112:                       // 'descendant'\n    case 113:                       // 'descendant-or-self'\n    case 137:                       // 'following'\n    case 138:                       // 'following-sibling'\n    case 210:                       // 'parent'\n    case 216:                       // 'preceding'\n    case 217:                       // 'preceding-sibling'\n    case 234:                       // 'self'\n      lookahead2W(238);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    case 6:                         // EQName^Token\n    case 71:                        // 'after'\n    case 73:                        // 'allowing'\n    case 76:                        // 'and'\n    case 78:                        // 'append'\n    case 80:                        // 'as'\n    case 81:                        // 'ascending'\n    case 82:                        // 'at'\n    case 84:                        // 'base-uri'\n    case 85:                        // 'before'\n    case 86:                        // 'boundary-space'\n    case 87:                        // 'break'\n    case 89:                        // 'case'\n    case 90:                        // 'cast'\n    case 91:                        // 'castable'\n    case 92:                        // 'catch'\n    case 95:                        // 'collation'\n    case 98:                        // 'constraint'\n    case 99:                        // 'construction'\n    case 102:                       // 'context'\n    case 103:                       // 'continue'\n    case 104:                       // 'copy'\n    case 105:                       // 'copy-namespaces'\n    case 106:                       // 'count'\n    case 107:                       // 'decimal-format'\n    case 109:                       // 'declare'\n    case 110:                       // 'default'\n    case 111:                       // 'delete'\n    case 114:                       // 'descending'\n    case 119:                       // 'div'\n    case 121:                       // 'document-node'\n    case 123:                       // 'else'\n    case 124:                       // 'empty'\n    case 126:                       // 'encoding'\n    case 127:                       // 'end'\n    case 129:                       // 'eq'\n    case 130:                       // 'every'\n    case 132:                       // 'except'\n    case 133:                       // 'exit'\n    case 134:                       // 'external'\n    case 136:                       // 'first'\n    case 139:                       // 'for'\n    case 142:                       // 'from'\n    case 143:                       // 'ft-option'\n    case 147:                       // 'function'\n    case 148:                       // 'ge'\n    case 150:                       // 'group'\n    case 152:                       // 'gt'\n    case 153:                       // 'idiv'\n    case 155:                       // 'import'\n    case 156:                       // 'in'\n    case 157:                       // 'index'\n    case 161:                       // 'insert'\n    case 162:                       // 'instance'\n    case 163:                       // 'integrity'\n    case 164:                       // 'intersect'\n    case 165:                       // 'into'\n    case 166:                       // 'is'\n    case 168:                       // 'json'\n    case 170:                       // 'jsoniq'\n    case 173:                       // 'last'\n    case 174:                       // 'lax'\n    case 175:                       // 'le'\n    case 177:                       // 'let'\n    case 179:                       // 'loop'\n    case 181:                       // 'lt'\n    case 183:                       // 'mod'\n    case 184:                       // 'modify'\n    case 185:                       // 'module'\n    case 188:                       // 'namespace-node'\n    case 189:                       // 'ne'\n    case 194:                       // 'node'\n    case 195:                       // 'nodes'\n    case 198:                       // 'object'\n    case 202:                       // 'only'\n    case 203:                       // 'option'\n    case 204:                       // 'or'\n    case 205:                       // 'order'\n    case 207:                       // 'ordering'\n    case 222:                       // 'rename'\n    case 223:                       // 'replace'\n    case 224:                       // 'return'\n    case 225:                       // 'returning'\n    case 226:                       // 'revalidation'\n    case 228:                       // 'satisfies'\n    case 229:                       // 'schema'\n    case 230:                       // 'schema-attribute'\n    case 231:                       // 'schema-element'\n    case 232:                       // 'score'\n    case 233:                       // 'select'\n    case 239:                       // 'sliding'\n    case 240:                       // 'some'\n    case 241:                       // 'stable'\n    case 242:                       // 'start'\n    case 245:                       // 'strict'\n    case 253:                       // 'to'\n    case 254:                       // 'treat'\n    case 256:                       // 'try'\n    case 257:                       // 'tumbling'\n    case 258:                       // 'type'\n    case 260:                       // 'union'\n    case 263:                       // 'updating'\n    case 266:                       // 'validate'\n    case 267:                       // 'value'\n    case 268:                       // 'variable'\n    case 269:                       // 'version'\n    case 272:                       // 'where'\n    case 273:                       // 'while'\n    case 276:                       // 'with'\n      lookahead2W(234);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 12935                 // 'false' EOF\n     || lk == 12997                 // 'null' EOF\n     || lk == 13055                 // 'true' EOF\n     || lk == 13447                 // 'false' '!'\n     || lk == 13509                 // 'null' '!'\n     || lk == 13567                 // 'true' '!'\n     || lk == 13959                 // 'false' '!='\n     || lk == 14021                 // 'null' '!='\n     || lk == 14079                 // 'true' '!='\n     || lk == 19591                 // 'false' ')'\n     || lk == 19653                 // 'null' ')'\n     || lk == 19711                 // 'true' ')'\n     || lk == 20103                 // 'false' '*'\n     || lk == 20165                 // 'null' '*'\n     || lk == 20223                 // 'true' '*'\n     || lk == 21127                 // 'false' '+'\n     || lk == 21189                 // 'null' '+'\n     || lk == 21247                 // 'true' '+'\n     || lk == 21639                 // 'false' ','\n     || lk == 21701                 // 'null' ','\n     || lk == 21759                 // 'true' ','\n     || lk == 22151                 // 'false' '-'\n     || lk == 22213                 // 'null' '-'\n     || lk == 22271                 // 'true' '-'\n     || lk == 24199                 // 'false' '/'\n     || lk == 24261                 // 'null' '/'\n     || lk == 24319                 // 'true' '/'\n     || lk == 24711                 // 'false' '//'\n     || lk == 24773                 // 'null' '//'\n     || lk == 24831                 // 'true' '//'\n     || lk == 25735                 // 'false' ':'\n     || lk == 25797                 // 'null' ':'\n     || lk == 25855                 // 'true' ':'\n     || lk == 27783                 // 'false' ';'\n     || lk == 27845                 // 'null' ';'\n     || lk == 27903                 // 'true' ';'\n     || lk == 28295                 // 'false' '<'\n     || lk == 28357                 // 'null' '<'\n     || lk == 28415                 // 'true' '<'\n     || lk == 29831                 // 'false' '<<'\n     || lk == 29893                 // 'null' '<<'\n     || lk == 29951                 // 'true' '<<'\n     || lk == 30343                 // 'false' '<='\n     || lk == 30405                 // 'null' '<='\n     || lk == 30463                 // 'true' '<='\n     || lk == 31367                 // 'false' '='\n     || lk == 31429                 // 'null' '='\n     || lk == 31487                 // 'true' '='\n     || lk == 31879                 // 'false' '>'\n     || lk == 31941                 // 'null' '>'\n     || lk == 31999                 // 'true' '>'\n     || lk == 32391                 // 'false' '>='\n     || lk == 32453                 // 'null' '>='\n     || lk == 32511                 // 'true' '>='\n     || lk == 32903                 // 'false' '>>'\n     || lk == 32965                 // 'null' '>>'\n     || lk == 33023                 // 'true' '>>'\n     || lk == 35463                 // 'false' '['\n     || lk == 35525                 // 'null' '['\n     || lk == 35583                 // 'true' '['\n     || lk == 35975                 // 'false' ']'\n     || lk == 36037                 // 'null' ']'\n     || lk == 36095                 // 'true' ']'\n     || lk == 36435                 // 'attribute' 'after'\n     || lk == 36474                 // 'element' 'after'\n     || lk == 36487                 // 'false' 'after'\n     || lk == 36539                 // 'namespace' 'after'\n     || lk == 36549                 // 'null' 'after'\n     || lk == 36572                 // 'processing-instruction' 'after'\n     || lk == 36607                 // 'true' 'after'\n     || lk == 38995                 // 'attribute' 'and'\n     || lk == 39034                 // 'element' 'and'\n     || lk == 39047                 // 'false' 'and'\n     || lk == 39099                 // 'namespace' 'and'\n     || lk == 39109                 // 'null' 'and'\n     || lk == 39132                 // 'processing-instruction' 'and'\n     || lk == 39167                 // 'true' 'and'\n     || lk == 41043                 // 'attribute' 'as'\n     || lk == 41082                 // 'element' 'as'\n     || lk == 41095                 // 'false' 'as'\n     || lk == 41147                 // 'namespace' 'as'\n     || lk == 41157                 // 'null' 'as'\n     || lk == 41180                 // 'processing-instruction' 'as'\n     || lk == 41215                 // 'true' 'as'\n     || lk == 41555                 // 'attribute' 'ascending'\n     || lk == 41594                 // 'element' 'ascending'\n     || lk == 41607                 // 'false' 'ascending'\n     || lk == 41659                 // 'namespace' 'ascending'\n     || lk == 41669                 // 'null' 'ascending'\n     || lk == 41692                 // 'processing-instruction' 'ascending'\n     || lk == 41727                 // 'true' 'ascending'\n     || lk == 42067                 // 'attribute' 'at'\n     || lk == 42106                 // 'element' 'at'\n     || lk == 42119                 // 'false' 'at'\n     || lk == 42171                 // 'namespace' 'at'\n     || lk == 42181                 // 'null' 'at'\n     || lk == 42204                 // 'processing-instruction' 'at'\n     || lk == 42239                 // 'true' 'at'\n     || lk == 43603                 // 'attribute' 'before'\n     || lk == 43642                 // 'element' 'before'\n     || lk == 43655                 // 'false' 'before'\n     || lk == 43707                 // 'namespace' 'before'\n     || lk == 43717                 // 'null' 'before'\n     || lk == 43740                 // 'processing-instruction' 'before'\n     || lk == 43775                 // 'true' 'before'\n     || lk == 45191                 // 'false' 'by'\n     || lk == 45253                 // 'null' 'by'\n     || lk == 45311                 // 'true' 'by'\n     || lk == 45651                 // 'attribute' 'case'\n     || lk == 45690                 // 'element' 'case'\n     || lk == 45703                 // 'false' 'case'\n     || lk == 45755                 // 'namespace' 'case'\n     || lk == 45765                 // 'null' 'case'\n     || lk == 45788                 // 'processing-instruction' 'case'\n     || lk == 45823                 // 'true' 'case'\n     || lk == 46163                 // 'attribute' 'cast'\n     || lk == 46202                 // 'element' 'cast'\n     || lk == 46215                 // 'false' 'cast'\n     || lk == 46267                 // 'namespace' 'cast'\n     || lk == 46277                 // 'null' 'cast'\n     || lk == 46300                 // 'processing-instruction' 'cast'\n     || lk == 46335                 // 'true' 'cast'\n     || lk == 46675                 // 'attribute' 'castable'\n     || lk == 46714                 // 'element' 'castable'\n     || lk == 46727                 // 'false' 'castable'\n     || lk == 46779                 // 'namespace' 'castable'\n     || lk == 46789                 // 'null' 'castable'\n     || lk == 46812                 // 'processing-instruction' 'castable'\n     || lk == 46847                 // 'true' 'castable'\n     || lk == 48723                 // 'attribute' 'collation'\n     || lk == 48762                 // 'element' 'collation'\n     || lk == 48775                 // 'false' 'collation'\n     || lk == 48827                 // 'namespace' 'collation'\n     || lk == 48837                 // 'null' 'collation'\n     || lk == 48860                 // 'processing-instruction' 'collation'\n     || lk == 48895                 // 'true' 'collation'\n     || lk == 51335                 // 'false' 'contains'\n     || lk == 51397                 // 'null' 'contains'\n     || lk == 51455                 // 'true' 'contains'\n     || lk == 54355                 // 'attribute' 'count'\n     || lk == 54394                 // 'element' 'count'\n     || lk == 54407                 // 'false' 'count'\n     || lk == 54459                 // 'namespace' 'count'\n     || lk == 54469                 // 'null' 'count'\n     || lk == 54492                 // 'processing-instruction' 'count'\n     || lk == 54527                 // 'true' 'count'\n     || lk == 56403                 // 'attribute' 'default'\n     || lk == 56442                 // 'element' 'default'\n     || lk == 56455                 // 'false' 'default'\n     || lk == 56507                 // 'namespace' 'default'\n     || lk == 56517                 // 'null' 'default'\n     || lk == 56540                 // 'processing-instruction' 'default'\n     || lk == 56575                 // 'true' 'default'\n     || lk == 58451                 // 'attribute' 'descending'\n     || lk == 58490                 // 'element' 'descending'\n     || lk == 58503                 // 'false' 'descending'\n     || lk == 58555                 // 'namespace' 'descending'\n     || lk == 58565                 // 'null' 'descending'\n     || lk == 58588                 // 'processing-instruction' 'descending'\n     || lk == 58623                 // 'true' 'descending'\n     || lk == 61011                 // 'attribute' 'div'\n     || lk == 61050                 // 'element' 'div'\n     || lk == 61063                 // 'false' 'div'\n     || lk == 61115                 // 'namespace' 'div'\n     || lk == 61125                 // 'null' 'div'\n     || lk == 61148                 // 'processing-instruction' 'div'\n     || lk == 61183                 // 'true' 'div'\n     || lk == 63059                 // 'attribute' 'else'\n     || lk == 63098                 // 'element' 'else'\n     || lk == 63111                 // 'false' 'else'\n     || lk == 63163                 // 'namespace' 'else'\n     || lk == 63173                 // 'null' 'else'\n     || lk == 63196                 // 'processing-instruction' 'else'\n     || lk == 63231                 // 'true' 'else'\n     || lk == 63571                 // 'attribute' 'empty'\n     || lk == 63610                 // 'element' 'empty'\n     || lk == 63623                 // 'false' 'empty'\n     || lk == 63675                 // 'namespace' 'empty'\n     || lk == 63685                 // 'null' 'empty'\n     || lk == 63708                 // 'processing-instruction' 'empty'\n     || lk == 63743                 // 'true' 'empty'\n     || lk == 65107                 // 'attribute' 'end'\n     || lk == 65146                 // 'element' 'end'\n     || lk == 65159                 // 'false' 'end'\n     || lk == 65211                 // 'namespace' 'end'\n     || lk == 65221                 // 'null' 'end'\n     || lk == 65244                 // 'processing-instruction' 'end'\n     || lk == 65279                 // 'true' 'end'\n     || lk == 66131                 // 'attribute' 'eq'\n     || lk == 66170                 // 'element' 'eq'\n     || lk == 66183                 // 'false' 'eq'\n     || lk == 66235                 // 'namespace' 'eq'\n     || lk == 66245                 // 'null' 'eq'\n     || lk == 66268                 // 'processing-instruction' 'eq'\n     || lk == 66303                 // 'true' 'eq'\n     || lk == 67667                 // 'attribute' 'except'\n     || lk == 67706                 // 'element' 'except'\n     || lk == 67719                 // 'false' 'except'\n     || lk == 67771                 // 'namespace' 'except'\n     || lk == 67781                 // 'null' 'except'\n     || lk == 67804                 // 'processing-instruction' 'except'\n     || lk == 67839                 // 'true' 'except'\n     || lk == 71251                 // 'attribute' 'for'\n     || lk == 71290                 // 'element' 'for'\n     || lk == 71303                 // 'false' 'for'\n     || lk == 71355                 // 'namespace' 'for'\n     || lk == 71365                 // 'null' 'for'\n     || lk == 71388                 // 'processing-instruction' 'for'\n     || lk == 71423                 // 'true' 'for'\n     || lk == 75859                 // 'attribute' 'ge'\n     || lk == 75898                 // 'element' 'ge'\n     || lk == 75911                 // 'false' 'ge'\n     || lk == 75963                 // 'namespace' 'ge'\n     || lk == 75973                 // 'null' 'ge'\n     || lk == 75996                 // 'processing-instruction' 'ge'\n     || lk == 76031                 // 'true' 'ge'\n     || lk == 76883                 // 'attribute' 'group'\n     || lk == 76922                 // 'element' 'group'\n     || lk == 76935                 // 'false' 'group'\n     || lk == 76987                 // 'namespace' 'group'\n     || lk == 76997                 // 'null' 'group'\n     || lk == 77020                 // 'processing-instruction' 'group'\n     || lk == 77055                 // 'true' 'group'\n     || lk == 77907                 // 'attribute' 'gt'\n     || lk == 77946                 // 'element' 'gt'\n     || lk == 77959                 // 'false' 'gt'\n     || lk == 78011                 // 'namespace' 'gt'\n     || lk == 78021                 // 'null' 'gt'\n     || lk == 78044                 // 'processing-instruction' 'gt'\n     || lk == 78079                 // 'true' 'gt'\n     || lk == 78419                 // 'attribute' 'idiv'\n     || lk == 78458                 // 'element' 'idiv'\n     || lk == 78471                 // 'false' 'idiv'\n     || lk == 78523                 // 'namespace' 'idiv'\n     || lk == 78533                 // 'null' 'idiv'\n     || lk == 78556                 // 'processing-instruction' 'idiv'\n     || lk == 78591                 // 'true' 'idiv'\n     || lk == 83027                 // 'attribute' 'instance'\n     || lk == 83066                 // 'element' 'instance'\n     || lk == 83079                 // 'false' 'instance'\n     || lk == 83131                 // 'namespace' 'instance'\n     || lk == 83141                 // 'null' 'instance'\n     || lk == 83164                 // 'processing-instruction' 'instance'\n     || lk == 83199                 // 'true' 'instance'\n     || lk == 84051                 // 'attribute' 'intersect'\n     || lk == 84090                 // 'element' 'intersect'\n     || lk == 84103                 // 'false' 'intersect'\n     || lk == 84155                 // 'namespace' 'intersect'\n     || lk == 84165                 // 'null' 'intersect'\n     || lk == 84188                 // 'processing-instruction' 'intersect'\n     || lk == 84223                 // 'true' 'intersect'\n     || lk == 84563                 // 'attribute' 'into'\n     || lk == 84602                 // 'element' 'into'\n     || lk == 84615                 // 'false' 'into'\n     || lk == 84667                 // 'namespace' 'into'\n     || lk == 84677                 // 'null' 'into'\n     || lk == 84700                 // 'processing-instruction' 'into'\n     || lk == 84735                 // 'true' 'into'\n     || lk == 85075                 // 'attribute' 'is'\n     || lk == 85114                 // 'element' 'is'\n     || lk == 85127                 // 'false' 'is'\n     || lk == 85179                 // 'namespace' 'is'\n     || lk == 85189                 // 'null' 'is'\n     || lk == 85212                 // 'processing-instruction' 'is'\n     || lk == 85247                 // 'true' 'is'\n     || lk == 89683                 // 'attribute' 'le'\n     || lk == 89722                 // 'element' 'le'\n     || lk == 89735                 // 'false' 'le'\n     || lk == 89787                 // 'namespace' 'le'\n     || lk == 89797                 // 'null' 'le'\n     || lk == 89820                 // 'processing-instruction' 'le'\n     || lk == 89855                 // 'true' 'le'\n     || lk == 90707                 // 'attribute' 'let'\n     || lk == 90746                 // 'element' 'let'\n     || lk == 90759                 // 'false' 'let'\n     || lk == 90811                 // 'namespace' 'let'\n     || lk == 90821                 // 'null' 'let'\n     || lk == 90844                 // 'processing-instruction' 'let'\n     || lk == 90879                 // 'true' 'let'\n     || lk == 92755                 // 'attribute' 'lt'\n     || lk == 92794                 // 'element' 'lt'\n     || lk == 92807                 // 'false' 'lt'\n     || lk == 92859                 // 'namespace' 'lt'\n     || lk == 92869                 // 'null' 'lt'\n     || lk == 92892                 // 'processing-instruction' 'lt'\n     || lk == 92927                 // 'true' 'lt'\n     || lk == 93779                 // 'attribute' 'mod'\n     || lk == 93818                 // 'element' 'mod'\n     || lk == 93831                 // 'false' 'mod'\n     || lk == 93883                 // 'namespace' 'mod'\n     || lk == 93893                 // 'null' 'mod'\n     || lk == 93916                 // 'processing-instruction' 'mod'\n     || lk == 93951                 // 'true' 'mod'\n     || lk == 94291                 // 'attribute' 'modify'\n     || lk == 94330                 // 'element' 'modify'\n     || lk == 94343                 // 'false' 'modify'\n     || lk == 94395                 // 'namespace' 'modify'\n     || lk == 94405                 // 'null' 'modify'\n     || lk == 94428                 // 'processing-instruction' 'modify'\n     || lk == 94463                 // 'true' 'modify'\n     || lk == 96851                 // 'attribute' 'ne'\n     || lk == 96890                 // 'element' 'ne'\n     || lk == 96903                 // 'false' 'ne'\n     || lk == 96955                 // 'namespace' 'ne'\n     || lk == 96965                 // 'null' 'ne'\n     || lk == 96988                 // 'processing-instruction' 'ne'\n     || lk == 97023                 // 'true' 'ne'\n     || lk == 103507                // 'attribute' 'only'\n     || lk == 103546                // 'element' 'only'\n     || lk == 103559                // 'false' 'only'\n     || lk == 103611                // 'namespace' 'only'\n     || lk == 103621                // 'null' 'only'\n     || lk == 103644                // 'processing-instruction' 'only'\n     || lk == 103679                // 'true' 'only'\n     || lk == 104531                // 'attribute' 'or'\n     || lk == 104570                // 'element' 'or'\n     || lk == 104583                // 'false' 'or'\n     || lk == 104635                // 'namespace' 'or'\n     || lk == 104645                // 'null' 'or'\n     || lk == 104668                // 'processing-instruction' 'or'\n     || lk == 104703                // 'true' 'or'\n     || lk == 105043                // 'attribute' 'order'\n     || lk == 105082                // 'element' 'order'\n     || lk == 105095                // 'false' 'order'\n     || lk == 105147                // 'namespace' 'order'\n     || lk == 105157                // 'null' 'order'\n     || lk == 105180                // 'processing-instruction' 'order'\n     || lk == 105215                // 'true' 'order'\n     || lk == 107143                // 'false' 'paragraphs'\n     || lk == 107205                // 'null' 'paragraphs'\n     || lk == 107263                // 'true' 'paragraphs'\n     || lk == 114771                // 'attribute' 'return'\n     || lk == 114810                // 'element' 'return'\n     || lk == 114823                // 'false' 'return'\n     || lk == 114875                // 'namespace' 'return'\n     || lk == 114885                // 'null' 'return'\n     || lk == 114908                // 'processing-instruction' 'return'\n     || lk == 114943                // 'true' 'return'\n     || lk == 116819                // 'attribute' 'satisfies'\n     || lk == 116858                // 'element' 'satisfies'\n     || lk == 116871                // 'false' 'satisfies'\n     || lk == 116923                // 'namespace' 'satisfies'\n     || lk == 116933                // 'null' 'satisfies'\n     || lk == 116956                // 'processing-instruction' 'satisfies'\n     || lk == 116991                // 'true' 'satisfies'\n     || lk == 121479                // 'false' 'sentences'\n     || lk == 121541                // 'null' 'sentences'\n     || lk == 121599                // 'true' 'sentences'\n     || lk == 123475                // 'attribute' 'stable'\n     || lk == 123514                // 'element' 'stable'\n     || lk == 123527                // 'false' 'stable'\n     || lk == 123579                // 'namespace' 'stable'\n     || lk == 123589                // 'null' 'stable'\n     || lk == 123612                // 'processing-instruction' 'stable'\n     || lk == 123647                // 'true' 'stable'\n     || lk == 123987                // 'attribute' 'start'\n     || lk == 124026                // 'element' 'start'\n     || lk == 124039                // 'false' 'start'\n     || lk == 124091                // 'namespace' 'start'\n     || lk == 124101                // 'null' 'start'\n     || lk == 124124                // 'processing-instruction' 'start'\n     || lk == 124159                // 'true' 'start'\n     || lk == 129159                // 'false' 'times'\n     || lk == 129221                // 'null' 'times'\n     || lk == 129279                // 'true' 'times'\n     || lk == 129619                // 'attribute' 'to'\n     || lk == 129658                // 'element' 'to'\n     || lk == 129671                // 'false' 'to'\n     || lk == 129723                // 'namespace' 'to'\n     || lk == 129733                // 'null' 'to'\n     || lk == 129756                // 'processing-instruction' 'to'\n     || lk == 129791                // 'true' 'to'\n     || lk == 130131                // 'attribute' 'treat'\n     || lk == 130170                // 'element' 'treat'\n     || lk == 130183                // 'false' 'treat'\n     || lk == 130235                // 'namespace' 'treat'\n     || lk == 130245                // 'null' 'treat'\n     || lk == 130268                // 'processing-instruction' 'treat'\n     || lk == 130303                // 'true' 'treat'\n     || lk == 133203                // 'attribute' 'union'\n     || lk == 133242                // 'element' 'union'\n     || lk == 133255                // 'false' 'union'\n     || lk == 133307                // 'namespace' 'union'\n     || lk == 133317                // 'null' 'union'\n     || lk == 133340                // 'processing-instruction' 'union'\n     || lk == 133375                // 'true' 'union'\n     || lk == 139347                // 'attribute' 'where'\n     || lk == 139386                // 'element' 'where'\n     || lk == 139399                // 'false' 'where'\n     || lk == 139451                // 'namespace' 'where'\n     || lk == 139461                // 'null' 'where'\n     || lk == 139484                // 'processing-instruction' 'where'\n     || lk == 139519                // 'true' 'where'\n     || lk == 141395                // 'attribute' 'with'\n     || lk == 141434                // 'element' 'with'\n     || lk == 141447                // 'false' 'with'\n     || lk == 141499                // 'namespace' 'with'\n     || lk == 141509                // 'null' 'with'\n     || lk == 141532                // 'processing-instruction' 'with'\n     || lk == 141567                // 'true' 'with'\n     || lk == 142983                // 'false' 'words'\n     || lk == 143045                // 'null' 'words'\n     || lk == 143103                // 'true' 'words'\n     || lk == 145543                // 'false' '|'\n     || lk == 145605                // 'null' '|'\n     || lk == 145663                // 'true' '|'\n     || lk == 146055                // 'false' '||'\n     || lk == 146117                // 'null' '||'\n     || lk == 146175                // 'true' '||'\n     || lk == 146567                // 'false' '|}'\n     || lk == 146629                // 'null' '|}'\n     || lk == 146687                // 'true' '|}'\n     || lk == 147079                // 'false' '}'\n     || lk == 147141                // 'null' '}'\n     || lk == 147199)               // 'true' '}'\n    {\n      lk = memoized(4, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_PostfixExpr();\n          lk = -1;\n        }\n        catch (p1A)\n        {\n          lk = -2;\n        }\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(4, e0, lk);\n      }\n    }\n    switch (lk)\n    {\n    case -1:\n    case 8:                         // IntegerLiteral\n    case 9:                         // DecimalLiteral\n    case 10:                        // DoubleLiteral\n    case 11:                        // StringLiteral\n    case 31:                        // '$'\n    case 32:                        // '$$'\n    case 33:                        // '%'\n    case 35:                        // '('\n    case 55:                        // '<'\n    case 56:                        // '<!--'\n    case 60:                        // '<?'\n    case 69:                        // '['\n    case 281:                       // '{'\n    case 283:                       // '{|'\n    case 3155:                      // 'attribute' EQName^Token\n    case 3194:                      // 'element' EQName^Token\n    case 9915:                      // 'namespace' NCName^Token\n    case 9948:                      // 'processing-instruction' NCName^Token\n    case 14854:                     // EQName^Token '#'\n    case 14919:                     // 'after' '#'\n    case 14921:                     // 'allowing' '#'\n    case 14922:                     // 'ancestor' '#'\n    case 14923:                     // 'ancestor-or-self' '#'\n    case 14924:                     // 'and' '#'\n    case 14926:                     // 'append' '#'\n    case 14927:                     // 'array' '#'\n    case 14928:                     // 'as' '#'\n    case 14929:                     // 'ascending' '#'\n    case 14930:                     // 'at' '#'\n    case 14931:                     // 'attribute' '#'\n    case 14932:                     // 'base-uri' '#'\n    case 14933:                     // 'before' '#'\n    case 14934:                     // 'boundary-space' '#'\n    case 14935:                     // 'break' '#'\n    case 14937:                     // 'case' '#'\n    case 14938:                     // 'cast' '#'\n    case 14939:                     // 'castable' '#'\n    case 14940:                     // 'catch' '#'\n    case 14942:                     // 'child' '#'\n    case 14943:                     // 'collation' '#'\n    case 14945:                     // 'comment' '#'\n    case 14946:                     // 'constraint' '#'\n    case 14947:                     // 'construction' '#'\n    case 14950:                     // 'context' '#'\n    case 14951:                     // 'continue' '#'\n    case 14952:                     // 'copy' '#'\n    case 14953:                     // 'copy-namespaces' '#'\n    case 14954:                     // 'count' '#'\n    case 14955:                     // 'decimal-format' '#'\n    case 14957:                     // 'declare' '#'\n    case 14958:                     // 'default' '#'\n    case 14959:                     // 'delete' '#'\n    case 14960:                     // 'descendant' '#'\n    case 14961:                     // 'descendant-or-self' '#'\n    case 14962:                     // 'descending' '#'\n    case 14967:                     // 'div' '#'\n    case 14968:                     // 'document' '#'\n    case 14969:                     // 'document-node' '#'\n    case 14970:                     // 'element' '#'\n    case 14971:                     // 'else' '#'\n    case 14972:                     // 'empty' '#'\n    case 14973:                     // 'empty-sequence' '#'\n    case 14974:                     // 'encoding' '#'\n    case 14975:                     // 'end' '#'\n    case 14977:                     // 'eq' '#'\n    case 14978:                     // 'every' '#'\n    case 14980:                     // 'except' '#'\n    case 14981:                     // 'exit' '#'\n    case 14982:                     // 'external' '#'\n    case 14983:                     // 'false' '#'\n    case 14984:                     // 'first' '#'\n    case 14985:                     // 'following' '#'\n    case 14986:                     // 'following-sibling' '#'\n    case 14987:                     // 'for' '#'\n    case 14990:                     // 'from' '#'\n    case 14991:                     // 'ft-option' '#'\n    case 14995:                     // 'function' '#'\n    case 14996:                     // 'ge' '#'\n    case 14998:                     // 'group' '#'\n    case 15000:                     // 'gt' '#'\n    case 15001:                     // 'idiv' '#'\n    case 15002:                     // 'if' '#'\n    case 15003:                     // 'import' '#'\n    case 15004:                     // 'in' '#'\n    case 15005:                     // 'index' '#'\n    case 15009:                     // 'insert' '#'\n    case 15010:                     // 'instance' '#'\n    case 15011:                     // 'integrity' '#'\n    case 15012:                     // 'intersect' '#'\n    case 15013:                     // 'into' '#'\n    case 15014:                     // 'is' '#'\n    case 15015:                     // 'item' '#'\n    case 15016:                     // 'json' '#'\n    case 15017:                     // 'json-item' '#'\n    case 15018:                     // 'jsoniq' '#'\n    case 15021:                     // 'last' '#'\n    case 15022:                     // 'lax' '#'\n    case 15023:                     // 'le' '#'\n    case 15025:                     // 'let' '#'\n    case 15027:                     // 'loop' '#'\n    case 15029:                     // 'lt' '#'\n    case 15031:                     // 'mod' '#'\n    case 15032:                     // 'modify' '#'\n    case 15033:                     // 'module' '#'\n    case 15035:                     // 'namespace' '#'\n    case 15036:                     // 'namespace-node' '#'\n    case 15037:                     // 'ne' '#'\n    case 15042:                     // 'node' '#'\n    case 15043:                     // 'nodes' '#'\n    case 15045:                     // 'null' '#'\n    case 15046:                     // 'object' '#'\n    case 15050:                     // 'only' '#'\n    case 15051:                     // 'option' '#'\n    case 15052:                     // 'or' '#'\n    case 15053:                     // 'order' '#'\n    case 15054:                     // 'ordered' '#'\n    case 15055:                     // 'ordering' '#'\n    case 15058:                     // 'parent' '#'\n    case 15064:                     // 'preceding' '#'\n    case 15065:                     // 'preceding-sibling' '#'\n    case 15068:                     // 'processing-instruction' '#'\n    case 15070:                     // 'rename' '#'\n    case 15071:                     // 'replace' '#'\n    case 15072:                     // 'return' '#'\n    case 15073:                     // 'returning' '#'\n    case 15074:                     // 'revalidation' '#'\n    case 15076:                     // 'satisfies' '#'\n    case 15077:                     // 'schema' '#'\n    case 15078:                     // 'schema-attribute' '#'\n    case 15079:                     // 'schema-element' '#'\n    case 15080:                     // 'score' '#'\n    case 15081:                     // 'select' '#'\n    case 15082:                     // 'self' '#'\n    case 15087:                     // 'sliding' '#'\n    case 15088:                     // 'some' '#'\n    case 15089:                     // 'stable' '#'\n    case 15090:                     // 'start' '#'\n    case 15093:                     // 'strict' '#'\n    case 15095:                     // 'structured-item' '#'\n    case 15096:                     // 'switch' '#'\n    case 15097:                     // 'text' '#'\n    case 15101:                     // 'to' '#'\n    case 15102:                     // 'treat' '#'\n    case 15103:                     // 'true' '#'\n    case 15104:                     // 'try' '#'\n    case 15105:                     // 'tumbling' '#'\n    case 15106:                     // 'type' '#'\n    case 15107:                     // 'typeswitch' '#'\n    case 15108:                     // 'union' '#'\n    case 15110:                     // 'unordered' '#'\n    case 15111:                     // 'updating' '#'\n    case 15114:                     // 'validate' '#'\n    case 15115:                     // 'value' '#'\n    case 15116:                     // 'variable' '#'\n    case 15117:                     // 'version' '#'\n    case 15120:                     // 'where' '#'\n    case 15121:                     // 'while' '#'\n    case 15124:                     // 'with' '#'\n    case 17926:                     // EQName^Token '('\n    case 17991:                     // 'after' '('\n    case 17993:                     // 'allowing' '('\n    case 17994:                     // 'ancestor' '('\n    case 17995:                     // 'ancestor-or-self' '('\n    case 17996:                     // 'and' '('\n    case 17998:                     // 'append' '('\n    case 18000:                     // 'as' '('\n    case 18001:                     // 'ascending' '('\n    case 18002:                     // 'at' '('\n    case 18004:                     // 'base-uri' '('\n    case 18005:                     // 'before' '('\n    case 18006:                     // 'boundary-space' '('\n    case 18007:                     // 'break' '('\n    case 18009:                     // 'case' '('\n    case 18010:                     // 'cast' '('\n    case 18011:                     // 'castable' '('\n    case 18012:                     // 'catch' '('\n    case 18014:                     // 'child' '('\n    case 18015:                     // 'collation' '('\n    case 18018:                     // 'constraint' '('\n    case 18019:                     // 'construction' '('\n    case 18022:                     // 'context' '('\n    case 18023:                     // 'continue' '('\n    case 18024:                     // 'copy' '('\n    case 18025:                     // 'copy-namespaces' '('\n    case 18026:                     // 'count' '('\n    case 18027:                     // 'decimal-format' '('\n    case 18029:                     // 'declare' '('\n    case 18030:                     // 'default' '('\n    case 18031:                     // 'delete' '('\n    case 18032:                     // 'descendant' '('\n    case 18033:                     // 'descendant-or-self' '('\n    case 18034:                     // 'descending' '('\n    case 18039:                     // 'div' '('\n    case 18040:                     // 'document' '('\n    case 18043:                     // 'else' '('\n    case 18044:                     // 'empty' '('\n    case 18046:                     // 'encoding' '('\n    case 18047:                     // 'end' '('\n    case 18049:                     // 'eq' '('\n    case 18050:                     // 'every' '('\n    case 18052:                     // 'except' '('\n    case 18053:                     // 'exit' '('\n    case 18054:                     // 'external' '('\n    case 18055:                     // 'false' '('\n    case 18056:                     // 'first' '('\n    case 18057:                     // 'following' '('\n    case 18058:                     // 'following-sibling' '('\n    case 18059:                     // 'for' '('\n    case 18062:                     // 'from' '('\n    case 18063:                     // 'ft-option' '('\n    case 18067:                     // 'function' '('\n    case 18068:                     // 'ge' '('\n    case 18070:                     // 'group' '('\n    case 18072:                     // 'gt' '('\n    case 18073:                     // 'idiv' '('\n    case 18075:                     // 'import' '('\n    case 18076:                     // 'in' '('\n    case 18077:                     // 'index' '('\n    case 18081:                     // 'insert' '('\n    case 18082:                     // 'instance' '('\n    case 18083:                     // 'integrity' '('\n    case 18084:                     // 'intersect' '('\n    case 18085:                     // 'into' '('\n    case 18086:                     // 'is' '('\n    case 18088:                     // 'json' '('\n    case 18090:                     // 'jsoniq' '('\n    case 18093:                     // 'last' '('\n    case 18094:                     // 'lax' '('\n    case 18095:                     // 'le' '('\n    case 18097:                     // 'let' '('\n    case 18099:                     // 'loop' '('\n    case 18101:                     // 'lt' '('\n    case 18103:                     // 'mod' '('\n    case 18104:                     // 'modify' '('\n    case 18105:                     // 'module' '('\n    case 18107:                     // 'namespace' '('\n    case 18109:                     // 'ne' '('\n    case 18115:                     // 'nodes' '('\n    case 18117:                     // 'null' '('\n    case 18118:                     // 'object' '('\n    case 18122:                     // 'only' '('\n    case 18123:                     // 'option' '('\n    case 18124:                     // 'or' '('\n    case 18125:                     // 'order' '('\n    case 18126:                     // 'ordered' '('\n    case 18127:                     // 'ordering' '('\n    case 18130:                     // 'parent' '('\n    case 18136:                     // 'preceding' '('\n    case 18137:                     // 'preceding-sibling' '('\n    case 18142:                     // 'rename' '('\n    case 18143:                     // 'replace' '('\n    case 18144:                     // 'return' '('\n    case 18145:                     // 'returning' '('\n    case 18146:                     // 'revalidation' '('\n    case 18148:                     // 'satisfies' '('\n    case 18149:                     // 'schema' '('\n    case 18152:                     // 'score' '('\n    case 18153:                     // 'select' '('\n    case 18154:                     // 'self' '('\n    case 18159:                     // 'sliding' '('\n    case 18160:                     // 'some' '('\n    case 18161:                     // 'stable' '('\n    case 18162:                     // 'start' '('\n    case 18165:                     // 'strict' '('\n    case 18173:                     // 'to' '('\n    case 18174:                     // 'treat' '('\n    case 18175:                     // 'true' '('\n    case 18176:                     // 'try' '('\n    case 18177:                     // 'tumbling' '('\n    case 18178:                     // 'type' '('\n    case 18180:                     // 'union' '('\n    case 18182:                     // 'unordered' '('\n    case 18183:                     // 'updating' '('\n    case 18186:                     // 'validate' '('\n    case 18187:                     // 'value' '('\n    case 18188:                     // 'variable' '('\n    case 18189:                     // 'version' '('\n    case 18192:                     // 'where' '('\n    case 18193:                     // 'while' '('\n    case 18196:                     // 'with' '('\n    case 23175:                     // 'false' '.'\n    case 23237:                     // 'null' '.'\n    case 23295:                     // 'true' '.'\n    case 37459:                     // 'attribute' 'allowing'\n    case 37498:                     // 'element' 'allowing'\n    case 37563:                     // 'namespace' 'allowing'\n    case 37596:                     // 'processing-instruction' 'allowing'\n    case 37971:                     // 'attribute' 'ancestor'\n    case 38010:                     // 'element' 'ancestor'\n    case 38075:                     // 'namespace' 'ancestor'\n    case 38108:                     // 'processing-instruction' 'ancestor'\n    case 38483:                     // 'attribute' 'ancestor-or-self'\n    case 38522:                     // 'element' 'ancestor-or-self'\n    case 38587:                     // 'namespace' 'ancestor-or-self'\n    case 38620:                     // 'processing-instruction' 'ancestor-or-self'\n    case 40019:                     // 'attribute' 'append'\n    case 40058:                     // 'element' 'append'\n    case 40123:                     // 'namespace' 'append'\n    case 40156:                     // 'processing-instruction' 'append'\n    case 40531:                     // 'attribute' 'array'\n    case 40570:                     // 'element' 'array'\n    case 42579:                     // 'attribute' 'attribute'\n    case 42618:                     // 'element' 'attribute'\n    case 42683:                     // 'namespace' 'attribute'\n    case 42716:                     // 'processing-instruction' 'attribute'\n    case 43091:                     // 'attribute' 'base-uri'\n    case 43130:                     // 'element' 'base-uri'\n    case 43195:                     // 'namespace' 'base-uri'\n    case 43228:                     // 'processing-instruction' 'base-uri'\n    case 44115:                     // 'attribute' 'boundary-space'\n    case 44154:                     // 'element' 'boundary-space'\n    case 44219:                     // 'namespace' 'boundary-space'\n    case 44252:                     // 'processing-instruction' 'boundary-space'\n    case 44627:                     // 'attribute' 'break'\n    case 44666:                     // 'element' 'break'\n    case 44731:                     // 'namespace' 'break'\n    case 44764:                     // 'processing-instruction' 'break'\n    case 47187:                     // 'attribute' 'catch'\n    case 47226:                     // 'element' 'catch'\n    case 47291:                     // 'namespace' 'catch'\n    case 47324:                     // 'processing-instruction' 'catch'\n    case 48211:                     // 'attribute' 'child'\n    case 48250:                     // 'element' 'child'\n    case 48315:                     // 'namespace' 'child'\n    case 48348:                     // 'processing-instruction' 'child'\n    case 49747:                     // 'attribute' 'comment'\n    case 49786:                     // 'element' 'comment'\n    case 49851:                     // 'namespace' 'comment'\n    case 49884:                     // 'processing-instruction' 'comment'\n    case 50259:                     // 'attribute' 'constraint'\n    case 50298:                     // 'element' 'constraint'\n    case 50363:                     // 'namespace' 'constraint'\n    case 50396:                     // 'processing-instruction' 'constraint'\n    case 50771:                     // 'attribute' 'construction'\n    case 50810:                     // 'element' 'construction'\n    case 50875:                     // 'namespace' 'construction'\n    case 50908:                     // 'processing-instruction' 'construction'\n    case 52307:                     // 'attribute' 'context'\n    case 52346:                     // 'element' 'context'\n    case 52411:                     // 'namespace' 'context'\n    case 52444:                     // 'processing-instruction' 'context'\n    case 52819:                     // 'attribute' 'continue'\n    case 52858:                     // 'element' 'continue'\n    case 52923:                     // 'namespace' 'continue'\n    case 52956:                     // 'processing-instruction' 'continue'\n    case 53331:                     // 'attribute' 'copy'\n    case 53370:                     // 'element' 'copy'\n    case 53435:                     // 'namespace' 'copy'\n    case 53468:                     // 'processing-instruction' 'copy'\n    case 53843:                     // 'attribute' 'copy-namespaces'\n    case 53882:                     // 'element' 'copy-namespaces'\n    case 53947:                     // 'namespace' 'copy-namespaces'\n    case 53980:                     // 'processing-instruction' 'copy-namespaces'\n    case 54867:                     // 'attribute' 'decimal-format'\n    case 54906:                     // 'element' 'decimal-format'\n    case 54971:                     // 'namespace' 'decimal-format'\n    case 55004:                     // 'processing-instruction' 'decimal-format'\n    case 55891:                     // 'attribute' 'declare'\n    case 55930:                     // 'element' 'declare'\n    case 55995:                     // 'namespace' 'declare'\n    case 56028:                     // 'processing-instruction' 'declare'\n    case 56915:                     // 'attribute' 'delete'\n    case 56954:                     // 'element' 'delete'\n    case 57019:                     // 'namespace' 'delete'\n    case 57052:                     // 'processing-instruction' 'delete'\n    case 57427:                     // 'attribute' 'descendant'\n    case 57466:                     // 'element' 'descendant'\n    case 57531:                     // 'namespace' 'descendant'\n    case 57564:                     // 'processing-instruction' 'descendant'\n    case 57939:                     // 'attribute' 'descendant-or-self'\n    case 57978:                     // 'element' 'descendant-or-self'\n    case 58043:                     // 'namespace' 'descendant-or-self'\n    case 58076:                     // 'processing-instruction' 'descendant-or-self'\n    case 61523:                     // 'attribute' 'document'\n    case 61562:                     // 'element' 'document'\n    case 61627:                     // 'namespace' 'document'\n    case 61660:                     // 'processing-instruction' 'document'\n    case 62035:                     // 'attribute' 'document-node'\n    case 62074:                     // 'element' 'document-node'\n    case 62139:                     // 'namespace' 'document-node'\n    case 62172:                     // 'processing-instruction' 'document-node'\n    case 62547:                     // 'attribute' 'element'\n    case 62586:                     // 'element' 'element'\n    case 62651:                     // 'namespace' 'element'\n    case 62684:                     // 'processing-instruction' 'element'\n    case 64083:                     // 'attribute' 'empty-sequence'\n    case 64122:                     // 'element' 'empty-sequence'\n    case 64187:                     // 'namespace' 'empty-sequence'\n    case 64220:                     // 'processing-instruction' 'empty-sequence'\n    case 64595:                     // 'attribute' 'encoding'\n    case 64634:                     // 'element' 'encoding'\n    case 64699:                     // 'namespace' 'encoding'\n    case 64732:                     // 'processing-instruction' 'encoding'\n    case 66643:                     // 'attribute' 'every'\n    case 66682:                     // 'element' 'every'\n    case 66747:                     // 'namespace' 'every'\n    case 66780:                     // 'processing-instruction' 'every'\n    case 68179:                     // 'attribute' 'exit'\n    case 68218:                     // 'element' 'exit'\n    case 68283:                     // 'namespace' 'exit'\n    case 68316:                     // 'processing-instruction' 'exit'\n    case 68691:                     // 'attribute' 'external'\n    case 68730:                     // 'element' 'external'\n    case 68795:                     // 'namespace' 'external'\n    case 68828:                     // 'processing-instruction' 'external'\n    case 69203:                     // 'attribute' 'false'\n    case 69242:                     // 'element' 'false'\n    case 69307:                     // 'namespace' 'false'\n    case 69340:                     // 'processing-instruction' 'false'\n    case 69715:                     // 'attribute' 'first'\n    case 69754:                     // 'element' 'first'\n    case 69819:                     // 'namespace' 'first'\n    case 69852:                     // 'processing-instruction' 'first'\n    case 70227:                     // 'attribute' 'following'\n    case 70266:                     // 'element' 'following'\n    case 70331:                     // 'namespace' 'following'\n    case 70364:                     // 'processing-instruction' 'following'\n    case 70739:                     // 'attribute' 'following-sibling'\n    case 70778:                     // 'element' 'following-sibling'\n    case 70843:                     // 'namespace' 'following-sibling'\n    case 70876:                     // 'processing-instruction' 'following-sibling'\n    case 72787:                     // 'attribute' 'from'\n    case 72826:                     // 'element' 'from'\n    case 72891:                     // 'namespace' 'from'\n    case 72924:                     // 'processing-instruction' 'from'\n    case 73299:                     // 'attribute' 'ft-option'\n    case 73338:                     // 'element' 'ft-option'\n    case 73403:                     // 'namespace' 'ft-option'\n    case 73436:                     // 'processing-instruction' 'ft-option'\n    case 75347:                     // 'attribute' 'function'\n    case 75386:                     // 'element' 'function'\n    case 75451:                     // 'namespace' 'function'\n    case 75484:                     // 'processing-instruction' 'function'\n    case 78931:                     // 'attribute' 'if'\n    case 78970:                     // 'element' 'if'\n    case 79035:                     // 'namespace' 'if'\n    case 79068:                     // 'processing-instruction' 'if'\n    case 79443:                     // 'attribute' 'import'\n    case 79482:                     // 'element' 'import'\n    case 79547:                     // 'namespace' 'import'\n    case 79580:                     // 'processing-instruction' 'import'\n    case 79955:                     // 'attribute' 'in'\n    case 79994:                     // 'element' 'in'\n    case 80059:                     // 'namespace' 'in'\n    case 80092:                     // 'processing-instruction' 'in'\n    case 80467:                     // 'attribute' 'index'\n    case 80506:                     // 'element' 'index'\n    case 80571:                     // 'namespace' 'index'\n    case 80604:                     // 'processing-instruction' 'index'\n    case 82515:                     // 'attribute' 'insert'\n    case 82554:                     // 'element' 'insert'\n    case 82619:                     // 'namespace' 'insert'\n    case 82652:                     // 'processing-instruction' 'insert'\n    case 83539:                     // 'attribute' 'integrity'\n    case 83578:                     // 'element' 'integrity'\n    case 83643:                     // 'namespace' 'integrity'\n    case 83676:                     // 'processing-instruction' 'integrity'\n    case 85587:                     // 'attribute' 'item'\n    case 85626:                     // 'element' 'item'\n    case 85691:                     // 'namespace' 'item'\n    case 85724:                     // 'processing-instruction' 'item'\n    case 86099:                     // 'attribute' 'json'\n    case 86138:                     // 'element' 'json'\n    case 86203:                     // 'namespace' 'json'\n    case 86236:                     // 'processing-instruction' 'json'\n    case 86611:                     // 'attribute' 'json-item'\n    case 86650:                     // 'element' 'json-item'\n    case 87123:                     // 'attribute' 'jsoniq'\n    case 87162:                     // 'element' 'jsoniq'\n    case 87227:                     // 'namespace' 'jsoniq'\n    case 87260:                     // 'processing-instruction' 'jsoniq'\n    case 88659:                     // 'attribute' 'last'\n    case 88698:                     // 'element' 'last'\n    case 88763:                     // 'namespace' 'last'\n    case 88796:                     // 'processing-instruction' 'last'\n    case 89171:                     // 'attribute' 'lax'\n    case 89210:                     // 'element' 'lax'\n    case 89275:                     // 'namespace' 'lax'\n    case 89308:                     // 'processing-instruction' 'lax'\n    case 91731:                     // 'attribute' 'loop'\n    case 91770:                     // 'element' 'loop'\n    case 91835:                     // 'namespace' 'loop'\n    case 91868:                     // 'processing-instruction' 'loop'\n    case 94803:                     // 'attribute' 'module'\n    case 94842:                     // 'element' 'module'\n    case 94907:                     // 'namespace' 'module'\n    case 94940:                     // 'processing-instruction' 'module'\n    case 95827:                     // 'attribute' 'namespace'\n    case 95866:                     // 'element' 'namespace'\n    case 95931:                     // 'namespace' 'namespace'\n    case 95964:                     // 'processing-instruction' 'namespace'\n    case 96339:                     // 'attribute' 'namespace-node'\n    case 96378:                     // 'element' 'namespace-node'\n    case 96443:                     // 'namespace' 'namespace-node'\n    case 96476:                     // 'processing-instruction' 'namespace-node'\n    case 99411:                     // 'attribute' 'node'\n    case 99450:                     // 'element' 'node'\n    case 99515:                     // 'namespace' 'node'\n    case 99548:                     // 'processing-instruction' 'node'\n    case 99923:                     // 'attribute' 'nodes'\n    case 99962:                     // 'element' 'nodes'\n    case 100027:                    // 'namespace' 'nodes'\n    case 100060:                    // 'processing-instruction' 'nodes'\n    case 100947:                    // 'attribute' 'null'\n    case 100986:                    // 'element' 'null'\n    case 101051:                    // 'namespace' 'null'\n    case 101084:                    // 'processing-instruction' 'null'\n    case 101459:                    // 'attribute' 'object'\n    case 101498:                    // 'element' 'object'\n    case 101563:                    // 'namespace' 'object'\n    case 101596:                    // 'processing-instruction' 'object'\n    case 104019:                    // 'attribute' 'option'\n    case 104058:                    // 'element' 'option'\n    case 104123:                    // 'namespace' 'option'\n    case 104156:                    // 'processing-instruction' 'option'\n    case 105555:                    // 'attribute' 'ordered'\n    case 105594:                    // 'element' 'ordered'\n    case 105659:                    // 'namespace' 'ordered'\n    case 105692:                    // 'processing-instruction' 'ordered'\n    case 106067:                    // 'attribute' 'ordering'\n    case 106106:                    // 'element' 'ordering'\n    case 106171:                    // 'namespace' 'ordering'\n    case 106204:                    // 'processing-instruction' 'ordering'\n    case 107603:                    // 'attribute' 'parent'\n    case 107642:                    // 'element' 'parent'\n    case 107707:                    // 'namespace' 'parent'\n    case 107740:                    // 'processing-instruction' 'parent'\n    case 110675:                    // 'attribute' 'preceding'\n    case 110714:                    // 'element' 'preceding'\n    case 110779:                    // 'namespace' 'preceding'\n    case 110812:                    // 'processing-instruction' 'preceding'\n    case 111187:                    // 'attribute' 'preceding-sibling'\n    case 111226:                    // 'element' 'preceding-sibling'\n    case 111291:                    // 'namespace' 'preceding-sibling'\n    case 111324:                    // 'processing-instruction' 'preceding-sibling'\n    case 112723:                    // 'attribute' 'processing-instruction'\n    case 112762:                    // 'element' 'processing-instruction'\n    case 112827:                    // 'namespace' 'processing-instruction'\n    case 112860:                    // 'processing-instruction' 'processing-instruction'\n    case 113747:                    // 'attribute' 'rename'\n    case 113786:                    // 'element' 'rename'\n    case 113851:                    // 'namespace' 'rename'\n    case 113884:                    // 'processing-instruction' 'rename'\n    case 114259:                    // 'attribute' 'replace'\n    case 114298:                    // 'element' 'replace'\n    case 114363:                    // 'namespace' 'replace'\n    case 114396:                    // 'processing-instruction' 'replace'\n    case 115283:                    // 'attribute' 'returning'\n    case 115322:                    // 'element' 'returning'\n    case 115387:                    // 'namespace' 'returning'\n    case 115420:                    // 'processing-instruction' 'returning'\n    case 115795:                    // 'attribute' 'revalidation'\n    case 115834:                    // 'element' 'revalidation'\n    case 115899:                    // 'namespace' 'revalidation'\n    case 115932:                    // 'processing-instruction' 'revalidation'\n    case 117331:                    // 'attribute' 'schema'\n    case 117370:                    // 'element' 'schema'\n    case 117435:                    // 'namespace' 'schema'\n    case 117468:                    // 'processing-instruction' 'schema'\n    case 117843:                    // 'attribute' 'schema-attribute'\n    case 117882:                    // 'element' 'schema-attribute'\n    case 117947:                    // 'namespace' 'schema-attribute'\n    case 117980:                    // 'processing-instruction' 'schema-attribute'\n    case 118355:                    // 'attribute' 'schema-element'\n    case 118394:                    // 'element' 'schema-element'\n    case 118459:                    // 'namespace' 'schema-element'\n    case 118492:                    // 'processing-instruction' 'schema-element'\n    case 118867:                    // 'attribute' 'score'\n    case 118906:                    // 'element' 'score'\n    case 118971:                    // 'namespace' 'score'\n    case 119004:                    // 'processing-instruction' 'score'\n    case 119379:                    // 'attribute' 'select'\n    case 119418:                    // 'element' 'select'\n    case 119483:                    // 'namespace' 'select'\n    case 119516:                    // 'processing-instruction' 'select'\n    case 119891:                    // 'attribute' 'self'\n    case 119930:                    // 'element' 'self'\n    case 119995:                    // 'namespace' 'self'\n    case 120028:                    // 'processing-instruction' 'self'\n    case 122451:                    // 'attribute' 'sliding'\n    case 122490:                    // 'element' 'sliding'\n    case 122555:                    // 'namespace' 'sliding'\n    case 122588:                    // 'processing-instruction' 'sliding'\n    case 122963:                    // 'attribute' 'some'\n    case 123002:                    // 'element' 'some'\n    case 123067:                    // 'namespace' 'some'\n    case 123100:                    // 'processing-instruction' 'some'\n    case 125523:                    // 'attribute' 'strict'\n    case 125562:                    // 'element' 'strict'\n    case 125627:                    // 'namespace' 'strict'\n    case 125660:                    // 'processing-instruction' 'strict'\n    case 126547:                    // 'attribute' 'structured-item'\n    case 126586:                    // 'element' 'structured-item'\n    case 127059:                    // 'attribute' 'switch'\n    case 127098:                    // 'element' 'switch'\n    case 127163:                    // 'namespace' 'switch'\n    case 127196:                    // 'processing-instruction' 'switch'\n    case 127571:                    // 'attribute' 'text'\n    case 127610:                    // 'element' 'text'\n    case 127675:                    // 'namespace' 'text'\n    case 127708:                    // 'processing-instruction' 'text'\n    case 130643:                    // 'attribute' 'true'\n    case 130682:                    // 'element' 'true'\n    case 130747:                    // 'namespace' 'true'\n    case 130780:                    // 'processing-instruction' 'true'\n    case 131155:                    // 'attribute' 'try'\n    case 131194:                    // 'element' 'try'\n    case 131259:                    // 'namespace' 'try'\n    case 131292:                    // 'processing-instruction' 'try'\n    case 131667:                    // 'attribute' 'tumbling'\n    case 131706:                    // 'element' 'tumbling'\n    case 131771:                    // 'namespace' 'tumbling'\n    case 131804:                    // 'processing-instruction' 'tumbling'\n    case 132179:                    // 'attribute' 'type'\n    case 132218:                    // 'element' 'type'\n    case 132283:                    // 'namespace' 'type'\n    case 132316:                    // 'processing-instruction' 'type'\n    case 132691:                    // 'attribute' 'typeswitch'\n    case 132730:                    // 'element' 'typeswitch'\n    case 132795:                    // 'namespace' 'typeswitch'\n    case 132828:                    // 'processing-instruction' 'typeswitch'\n    case 134227:                    // 'attribute' 'unordered'\n    case 134266:                    // 'element' 'unordered'\n    case 134331:                    // 'namespace' 'unordered'\n    case 134364:                    // 'processing-instruction' 'unordered'\n    case 134739:                    // 'attribute' 'updating'\n    case 134778:                    // 'element' 'updating'\n    case 134843:                    // 'namespace' 'updating'\n    case 134876:                    // 'processing-instruction' 'updating'\n    case 136275:                    // 'attribute' 'validate'\n    case 136314:                    // 'element' 'validate'\n    case 136379:                    // 'namespace' 'validate'\n    case 136412:                    // 'processing-instruction' 'validate'\n    case 136787:                    // 'attribute' 'value'\n    case 136826:                    // 'element' 'value'\n    case 136891:                    // 'namespace' 'value'\n    case 136924:                    // 'processing-instruction' 'value'\n    case 137299:                    // 'attribute' 'variable'\n    case 137338:                    // 'element' 'variable'\n    case 137403:                    // 'namespace' 'variable'\n    case 137436:                    // 'processing-instruction' 'variable'\n    case 137811:                    // 'attribute' 'version'\n    case 137850:                    // 'element' 'version'\n    case 137915:                    // 'namespace' 'version'\n    case 137948:                    // 'processing-instruction' 'version'\n    case 139859:                    // 'attribute' 'while'\n    case 139898:                    // 'element' 'while'\n    case 139963:                    // 'namespace' 'while'\n    case 139996:                    // 'processing-instruction' 'while'\n    case 143955:                    // 'attribute' '{'\n    case 143969:                    // 'comment' '{'\n    case 143992:                    // 'document' '{'\n    case 143994:                    // 'element' '{'\n    case 144059:                    // 'namespace' '{'\n    case 144078:                    // 'ordered' '{'\n    case 144092:                    // 'processing-instruction' '{'\n    case 144121:                    // 'text' '{'\n    case 144134:                    // 'unordered' '{'\n      parse_PostfixExpr();\n      break;\n    default:\n      parse_AxisStep();\n    }\n    eventHandler.endNonterminal(\"StepExpr\", e0);\n  }\n\n  function try_StepExpr()\n  {\n    switch (l1)\n    {\n    case 83:                        // 'attribute'\n      lookahead2W(288);             // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' |\n      break;\n    case 122:                       // 'element'\n      lookahead2W(287);             // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' |\n      break;\n    case 187:                       // 'namespace'\n    case 220:                       // 'processing-instruction'\n      lookahead2W(285);             // NCName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' |\n      break;\n    case 135:                       // 'false'\n    case 197:                       // 'null'\n    case 255:                       // 'true'\n      lookahead2W(237);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '.' |\n      break;\n    case 97:                        // 'comment'\n    case 120:                       // 'document'\n    case 206:                       // 'ordered'\n    case 249:                       // 'text'\n    case 262:                       // 'unordered'\n      lookahead2W(239);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    case 79:                        // 'array'\n    case 125:                       // 'empty-sequence'\n    case 154:                       // 'if'\n    case 167:                       // 'item'\n    case 169:                       // 'json-item'\n    case 247:                       // 'structured-item'\n    case 248:                       // 'switch'\n    case 259:                       // 'typeswitch'\n      lookahead2W(230);             // S^WS | EOF | '!' | '!=' | '#' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |\n      break;\n    case 74:                        // 'ancestor'\n    case 75:                        // 'ancestor-or-self'\n    case 94:                        // 'child'\n    case 112:                       // 'descendant'\n    case 113:                       // 'descendant-or-self'\n    case 137:                       // 'following'\n    case 138:                       // 'following-sibling'\n    case 210:                       // 'parent'\n    case 216:                       // 'preceding'\n    case 217:                       // 'preceding-sibling'\n    case 234:                       // 'self'\n      lookahead2W(238);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    case 6:                         // EQName^Token\n    case 71:                        // 'after'\n    case 73:                        // 'allowing'\n    case 76:                        // 'and'\n    case 78:                        // 'append'\n    case 80:                        // 'as'\n    case 81:                        // 'ascending'\n    case 82:                        // 'at'\n    case 84:                        // 'base-uri'\n    case 85:                        // 'before'\n    case 86:                        // 'boundary-space'\n    case 87:                        // 'break'\n    case 89:                        // 'case'\n    case 90:                        // 'cast'\n    case 91:                        // 'castable'\n    case 92:                        // 'catch'\n    case 95:                        // 'collation'\n    case 98:                        // 'constraint'\n    case 99:                        // 'construction'\n    case 102:                       // 'context'\n    case 103:                       // 'continue'\n    case 104:                       // 'copy'\n    case 105:                       // 'copy-namespaces'\n    case 106:                       // 'count'\n    case 107:                       // 'decimal-format'\n    case 109:                       // 'declare'\n    case 110:                       // 'default'\n    case 111:                       // 'delete'\n    case 114:                       // 'descending'\n    case 119:                       // 'div'\n    case 121:                       // 'document-node'\n    case 123:                       // 'else'\n    case 124:                       // 'empty'\n    case 126:                       // 'encoding'\n    case 127:                       // 'end'\n    case 129:                       // 'eq'\n    case 130:                       // 'every'\n    case 132:                       // 'except'\n    case 133:                       // 'exit'\n    case 134:                       // 'external'\n    case 136:                       // 'first'\n    case 139:                       // 'for'\n    case 142:                       // 'from'\n    case 143:                       // 'ft-option'\n    case 147:                       // 'function'\n    case 148:                       // 'ge'\n    case 150:                       // 'group'\n    case 152:                       // 'gt'\n    case 153:                       // 'idiv'\n    case 155:                       // 'import'\n    case 156:                       // 'in'\n    case 157:                       // 'index'\n    case 161:                       // 'insert'\n    case 162:                       // 'instance'\n    case 163:                       // 'integrity'\n    case 164:                       // 'intersect'\n    case 165:                       // 'into'\n    case 166:                       // 'is'\n    case 168:                       // 'json'\n    case 170:                       // 'jsoniq'\n    case 173:                       // 'last'\n    case 174:                       // 'lax'\n    case 175:                       // 'le'\n    case 177:                       // 'let'\n    case 179:                       // 'loop'\n    case 181:                       // 'lt'\n    case 183:                       // 'mod'\n    case 184:                       // 'modify'\n    case 185:                       // 'module'\n    case 188:                       // 'namespace-node'\n    case 189:                       // 'ne'\n    case 194:                       // 'node'\n    case 195:                       // 'nodes'\n    case 198:                       // 'object'\n    case 202:                       // 'only'\n    case 203:                       // 'option'\n    case 204:                       // 'or'\n    case 205:                       // 'order'\n    case 207:                       // 'ordering'\n    case 222:                       // 'rename'\n    case 223:                       // 'replace'\n    case 224:                       // 'return'\n    case 225:                       // 'returning'\n    case 226:                       // 'revalidation'\n    case 228:                       // 'satisfies'\n    case 229:                       // 'schema'\n    case 230:                       // 'schema-attribute'\n    case 231:                       // 'schema-element'\n    case 232:                       // 'score'\n    case 233:                       // 'select'\n    case 239:                       // 'sliding'\n    case 240:                       // 'some'\n    case 241:                       // 'stable'\n    case 242:                       // 'start'\n    case 245:                       // 'strict'\n    case 253:                       // 'to'\n    case 254:                       // 'treat'\n    case 256:                       // 'try'\n    case 257:                       // 'tumbling'\n    case 258:                       // 'type'\n    case 260:                       // 'union'\n    case 263:                       // 'updating'\n    case 266:                       // 'validate'\n    case 267:                       // 'value'\n    case 268:                       // 'variable'\n    case 269:                       // 'version'\n    case 272:                       // 'where'\n    case 273:                       // 'while'\n    case 276:                       // 'with'\n      lookahead2W(234);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 12935                 // 'false' EOF\n     || lk == 12997                 // 'null' EOF\n     || lk == 13055                 // 'true' EOF\n     || lk == 13447                 // 'false' '!'\n     || lk == 13509                 // 'null' '!'\n     || lk == 13567                 // 'true' '!'\n     || lk == 13959                 // 'false' '!='\n     || lk == 14021                 // 'null' '!='\n     || lk == 14079                 // 'true' '!='\n     || lk == 19591                 // 'false' ')'\n     || lk == 19653                 // 'null' ')'\n     || lk == 19711                 // 'true' ')'\n     || lk == 20103                 // 'false' '*'\n     || lk == 20165                 // 'null' '*'\n     || lk == 20223                 // 'true' '*'\n     || lk == 21127                 // 'false' '+'\n     || lk == 21189                 // 'null' '+'\n     || lk == 21247                 // 'true' '+'\n     || lk == 21639                 // 'false' ','\n     || lk == 21701                 // 'null' ','\n     || lk == 21759                 // 'true' ','\n     || lk == 22151                 // 'false' '-'\n     || lk == 22213                 // 'null' '-'\n     || lk == 22271                 // 'true' '-'\n     || lk == 24199                 // 'false' '/'\n     || lk == 24261                 // 'null' '/'\n     || lk == 24319                 // 'true' '/'\n     || lk == 24711                 // 'false' '//'\n     || lk == 24773                 // 'null' '//'\n     || lk == 24831                 // 'true' '//'\n     || lk == 25735                 // 'false' ':'\n     || lk == 25797                 // 'null' ':'\n     || lk == 25855                 // 'true' ':'\n     || lk == 27783                 // 'false' ';'\n     || lk == 27845                 // 'null' ';'\n     || lk == 27903                 // 'true' ';'\n     || lk == 28295                 // 'false' '<'\n     || lk == 28357                 // 'null' '<'\n     || lk == 28415                 // 'true' '<'\n     || lk == 29831                 // 'false' '<<'\n     || lk == 29893                 // 'null' '<<'\n     || lk == 29951                 // 'true' '<<'\n     || lk == 30343                 // 'false' '<='\n     || lk == 30405                 // 'null' '<='\n     || lk == 30463                 // 'true' '<='\n     || lk == 31367                 // 'false' '='\n     || lk == 31429                 // 'null' '='\n     || lk == 31487                 // 'true' '='\n     || lk == 31879                 // 'false' '>'\n     || lk == 31941                 // 'null' '>'\n     || lk == 31999                 // 'true' '>'\n     || lk == 32391                 // 'false' '>='\n     || lk == 32453                 // 'null' '>='\n     || lk == 32511                 // 'true' '>='\n     || lk == 32903                 // 'false' '>>'\n     || lk == 32965                 // 'null' '>>'\n     || lk == 33023                 // 'true' '>>'\n     || lk == 35463                 // 'false' '['\n     || lk == 35525                 // 'null' '['\n     || lk == 35583                 // 'true' '['\n     || lk == 35975                 // 'false' ']'\n     || lk == 36037                 // 'null' ']'\n     || lk == 36095                 // 'true' ']'\n     || lk == 36435                 // 'attribute' 'after'\n     || lk == 36474                 // 'element' 'after'\n     || lk == 36487                 // 'false' 'after'\n     || lk == 36539                 // 'namespace' 'after'\n     || lk == 36549                 // 'null' 'after'\n     || lk == 36572                 // 'processing-instruction' 'after'\n     || lk == 36607                 // 'true' 'after'\n     || lk == 38995                 // 'attribute' 'and'\n     || lk == 39034                 // 'element' 'and'\n     || lk == 39047                 // 'false' 'and'\n     || lk == 39099                 // 'namespace' 'and'\n     || lk == 39109                 // 'null' 'and'\n     || lk == 39132                 // 'processing-instruction' 'and'\n     || lk == 39167                 // 'true' 'and'\n     || lk == 41043                 // 'attribute' 'as'\n     || lk == 41082                 // 'element' 'as'\n     || lk == 41095                 // 'false' 'as'\n     || lk == 41147                 // 'namespace' 'as'\n     || lk == 41157                 // 'null' 'as'\n     || lk == 41180                 // 'processing-instruction' 'as'\n     || lk == 41215                 // 'true' 'as'\n     || lk == 41555                 // 'attribute' 'ascending'\n     || lk == 41594                 // 'element' 'ascending'\n     || lk == 41607                 // 'false' 'ascending'\n     || lk == 41659                 // 'namespace' 'ascending'\n     || lk == 41669                 // 'null' 'ascending'\n     || lk == 41692                 // 'processing-instruction' 'ascending'\n     || lk == 41727                 // 'true' 'ascending'\n     || lk == 42067                 // 'attribute' 'at'\n     || lk == 42106                 // 'element' 'at'\n     || lk == 42119                 // 'false' 'at'\n     || lk == 42171                 // 'namespace' 'at'\n     || lk == 42181                 // 'null' 'at'\n     || lk == 42204                 // 'processing-instruction' 'at'\n     || lk == 42239                 // 'true' 'at'\n     || lk == 43603                 // 'attribute' 'before'\n     || lk == 43642                 // 'element' 'before'\n     || lk == 43655                 // 'false' 'before'\n     || lk == 43707                 // 'namespace' 'before'\n     || lk == 43717                 // 'null' 'before'\n     || lk == 43740                 // 'processing-instruction' 'before'\n     || lk == 43775                 // 'true' 'before'\n     || lk == 45191                 // 'false' 'by'\n     || lk == 45253                 // 'null' 'by'\n     || lk == 45311                 // 'true' 'by'\n     || lk == 45651                 // 'attribute' 'case'\n     || lk == 45690                 // 'element' 'case'\n     || lk == 45703                 // 'false' 'case'\n     || lk == 45755                 // 'namespace' 'case'\n     || lk == 45765                 // 'null' 'case'\n     || lk == 45788                 // 'processing-instruction' 'case'\n     || lk == 45823                 // 'true' 'case'\n     || lk == 46163                 // 'attribute' 'cast'\n     || lk == 46202                 // 'element' 'cast'\n     || lk == 46215                 // 'false' 'cast'\n     || lk == 46267                 // 'namespace' 'cast'\n     || lk == 46277                 // 'null' 'cast'\n     || lk == 46300                 // 'processing-instruction' 'cast'\n     || lk == 46335                 // 'true' 'cast'\n     || lk == 46675                 // 'attribute' 'castable'\n     || lk == 46714                 // 'element' 'castable'\n     || lk == 46727                 // 'false' 'castable'\n     || lk == 46779                 // 'namespace' 'castable'\n     || lk == 46789                 // 'null' 'castable'\n     || lk == 46812                 // 'processing-instruction' 'castable'\n     || lk == 46847                 // 'true' 'castable'\n     || lk == 48723                 // 'attribute' 'collation'\n     || lk == 48762                 // 'element' 'collation'\n     || lk == 48775                 // 'false' 'collation'\n     || lk == 48827                 // 'namespace' 'collation'\n     || lk == 48837                 // 'null' 'collation'\n     || lk == 48860                 // 'processing-instruction' 'collation'\n     || lk == 48895                 // 'true' 'collation'\n     || lk == 51335                 // 'false' 'contains'\n     || lk == 51397                 // 'null' 'contains'\n     || lk == 51455                 // 'true' 'contains'\n     || lk == 54355                 // 'attribute' 'count'\n     || lk == 54394                 // 'element' 'count'\n     || lk == 54407                 // 'false' 'count'\n     || lk == 54459                 // 'namespace' 'count'\n     || lk == 54469                 // 'null' 'count'\n     || lk == 54492                 // 'processing-instruction' 'count'\n     || lk == 54527                 // 'true' 'count'\n     || lk == 56403                 // 'attribute' 'default'\n     || lk == 56442                 // 'element' 'default'\n     || lk == 56455                 // 'false' 'default'\n     || lk == 56507                 // 'namespace' 'default'\n     || lk == 56517                 // 'null' 'default'\n     || lk == 56540                 // 'processing-instruction' 'default'\n     || lk == 56575                 // 'true' 'default'\n     || lk == 58451                 // 'attribute' 'descending'\n     || lk == 58490                 // 'element' 'descending'\n     || lk == 58503                 // 'false' 'descending'\n     || lk == 58555                 // 'namespace' 'descending'\n     || lk == 58565                 // 'null' 'descending'\n     || lk == 58588                 // 'processing-instruction' 'descending'\n     || lk == 58623                 // 'true' 'descending'\n     || lk == 61011                 // 'attribute' 'div'\n     || lk == 61050                 // 'element' 'div'\n     || lk == 61063                 // 'false' 'div'\n     || lk == 61115                 // 'namespace' 'div'\n     || lk == 61125                 // 'null' 'div'\n     || lk == 61148                 // 'processing-instruction' 'div'\n     || lk == 61183                 // 'true' 'div'\n     || lk == 63059                 // 'attribute' 'else'\n     || lk == 63098                 // 'element' 'else'\n     || lk == 63111                 // 'false' 'else'\n     || lk == 63163                 // 'namespace' 'else'\n     || lk == 63173                 // 'null' 'else'\n     || lk == 63196                 // 'processing-instruction' 'else'\n     || lk == 63231                 // 'true' 'else'\n     || lk == 63571                 // 'attribute' 'empty'\n     || lk == 63610                 // 'element' 'empty'\n     || lk == 63623                 // 'false' 'empty'\n     || lk == 63675                 // 'namespace' 'empty'\n     || lk == 63685                 // 'null' 'empty'\n     || lk == 63708                 // 'processing-instruction' 'empty'\n     || lk == 63743                 // 'true' 'empty'\n     || lk == 65107                 // 'attribute' 'end'\n     || lk == 65146                 // 'element' 'end'\n     || lk == 65159                 // 'false' 'end'\n     || lk == 65211                 // 'namespace' 'end'\n     || lk == 65221                 // 'null' 'end'\n     || lk == 65244                 // 'processing-instruction' 'end'\n     || lk == 65279                 // 'true' 'end'\n     || lk == 66131                 // 'attribute' 'eq'\n     || lk == 66170                 // 'element' 'eq'\n     || lk == 66183                 // 'false' 'eq'\n     || lk == 66235                 // 'namespace' 'eq'\n     || lk == 66245                 // 'null' 'eq'\n     || lk == 66268                 // 'processing-instruction' 'eq'\n     || lk == 66303                 // 'true' 'eq'\n     || lk == 67667                 // 'attribute' 'except'\n     || lk == 67706                 // 'element' 'except'\n     || lk == 67719                 // 'false' 'except'\n     || lk == 67771                 // 'namespace' 'except'\n     || lk == 67781                 // 'null' 'except'\n     || lk == 67804                 // 'processing-instruction' 'except'\n     || lk == 67839                 // 'true' 'except'\n     || lk == 71251                 // 'attribute' 'for'\n     || lk == 71290                 // 'element' 'for'\n     || lk == 71303                 // 'false' 'for'\n     || lk == 71355                 // 'namespace' 'for'\n     || lk == 71365                 // 'null' 'for'\n     || lk == 71388                 // 'processing-instruction' 'for'\n     || lk == 71423                 // 'true' 'for'\n     || lk == 75859                 // 'attribute' 'ge'\n     || lk == 75898                 // 'element' 'ge'\n     || lk == 75911                 // 'false' 'ge'\n     || lk == 75963                 // 'namespace' 'ge'\n     || lk == 75973                 // 'null' 'ge'\n     || lk == 75996                 // 'processing-instruction' 'ge'\n     || lk == 76031                 // 'true' 'ge'\n     || lk == 76883                 // 'attribute' 'group'\n     || lk == 76922                 // 'element' 'group'\n     || lk == 76935                 // 'false' 'group'\n     || lk == 76987                 // 'namespace' 'group'\n     || lk == 76997                 // 'null' 'group'\n     || lk == 77020                 // 'processing-instruction' 'group'\n     || lk == 77055                 // 'true' 'group'\n     || lk == 77907                 // 'attribute' 'gt'\n     || lk == 77946                 // 'element' 'gt'\n     || lk == 77959                 // 'false' 'gt'\n     || lk == 78011                 // 'namespace' 'gt'\n     || lk == 78021                 // 'null' 'gt'\n     || lk == 78044                 // 'processing-instruction' 'gt'\n     || lk == 78079                 // 'true' 'gt'\n     || lk == 78419                 // 'attribute' 'idiv'\n     || lk == 78458                 // 'element' 'idiv'\n     || lk == 78471                 // 'false' 'idiv'\n     || lk == 78523                 // 'namespace' 'idiv'\n     || lk == 78533                 // 'null' 'idiv'\n     || lk == 78556                 // 'processing-instruction' 'idiv'\n     || lk == 78591                 // 'true' 'idiv'\n     || lk == 83027                 // 'attribute' 'instance'\n     || lk == 83066                 // 'element' 'instance'\n     || lk == 83079                 // 'false' 'instance'\n     || lk == 83131                 // 'namespace' 'instance'\n     || lk == 83141                 // 'null' 'instance'\n     || lk == 83164                 // 'processing-instruction' 'instance'\n     || lk == 83199                 // 'true' 'instance'\n     || lk == 84051                 // 'attribute' 'intersect'\n     || lk == 84090                 // 'element' 'intersect'\n     || lk == 84103                 // 'false' 'intersect'\n     || lk == 84155                 // 'namespace' 'intersect'\n     || lk == 84165                 // 'null' 'intersect'\n     || lk == 84188                 // 'processing-instruction' 'intersect'\n     || lk == 84223                 // 'true' 'intersect'\n     || lk == 84563                 // 'attribute' 'into'\n     || lk == 84602                 // 'element' 'into'\n     || lk == 84615                 // 'false' 'into'\n     || lk == 84667                 // 'namespace' 'into'\n     || lk == 84677                 // 'null' 'into'\n     || lk == 84700                 // 'processing-instruction' 'into'\n     || lk == 84735                 // 'true' 'into'\n     || lk == 85075                 // 'attribute' 'is'\n     || lk == 85114                 // 'element' 'is'\n     || lk == 85127                 // 'false' 'is'\n     || lk == 85179                 // 'namespace' 'is'\n     || lk == 85189                 // 'null' 'is'\n     || lk == 85212                 // 'processing-instruction' 'is'\n     || lk == 85247                 // 'true' 'is'\n     || lk == 89683                 // 'attribute' 'le'\n     || lk == 89722                 // 'element' 'le'\n     || lk == 89735                 // 'false' 'le'\n     || lk == 89787                 // 'namespace' 'le'\n     || lk == 89797                 // 'null' 'le'\n     || lk == 89820                 // 'processing-instruction' 'le'\n     || lk == 89855                 // 'true' 'le'\n     || lk == 90707                 // 'attribute' 'let'\n     || lk == 90746                 // 'element' 'let'\n     || lk == 90759                 // 'false' 'let'\n     || lk == 90811                 // 'namespace' 'let'\n     || lk == 90821                 // 'null' 'let'\n     || lk == 90844                 // 'processing-instruction' 'let'\n     || lk == 90879                 // 'true' 'let'\n     || lk == 92755                 // 'attribute' 'lt'\n     || lk == 92794                 // 'element' 'lt'\n     || lk == 92807                 // 'false' 'lt'\n     || lk == 92859                 // 'namespace' 'lt'\n     || lk == 92869                 // 'null' 'lt'\n     || lk == 92892                 // 'processing-instruction' 'lt'\n     || lk == 92927                 // 'true' 'lt'\n     || lk == 93779                 // 'attribute' 'mod'\n     || lk == 93818                 // 'element' 'mod'\n     || lk == 93831                 // 'false' 'mod'\n     || lk == 93883                 // 'namespace' 'mod'\n     || lk == 93893                 // 'null' 'mod'\n     || lk == 93916                 // 'processing-instruction' 'mod'\n     || lk == 93951                 // 'true' 'mod'\n     || lk == 94291                 // 'attribute' 'modify'\n     || lk == 94330                 // 'element' 'modify'\n     || lk == 94343                 // 'false' 'modify'\n     || lk == 94395                 // 'namespace' 'modify'\n     || lk == 94405                 // 'null' 'modify'\n     || lk == 94428                 // 'processing-instruction' 'modify'\n     || lk == 94463                 // 'true' 'modify'\n     || lk == 96851                 // 'attribute' 'ne'\n     || lk == 96890                 // 'element' 'ne'\n     || lk == 96903                 // 'false' 'ne'\n     || lk == 96955                 // 'namespace' 'ne'\n     || lk == 96965                 // 'null' 'ne'\n     || lk == 96988                 // 'processing-instruction' 'ne'\n     || lk == 97023                 // 'true' 'ne'\n     || lk == 103507                // 'attribute' 'only'\n     || lk == 103546                // 'element' 'only'\n     || lk == 103559                // 'false' 'only'\n     || lk == 103611                // 'namespace' 'only'\n     || lk == 103621                // 'null' 'only'\n     || lk == 103644                // 'processing-instruction' 'only'\n     || lk == 103679                // 'true' 'only'\n     || lk == 104531                // 'attribute' 'or'\n     || lk == 104570                // 'element' 'or'\n     || lk == 104583                // 'false' 'or'\n     || lk == 104635                // 'namespace' 'or'\n     || lk == 104645                // 'null' 'or'\n     || lk == 104668                // 'processing-instruction' 'or'\n     || lk == 104703                // 'true' 'or'\n     || lk == 105043                // 'attribute' 'order'\n     || lk == 105082                // 'element' 'order'\n     || lk == 105095                // 'false' 'order'\n     || lk == 105147                // 'namespace' 'order'\n     || lk == 105157                // 'null' 'order'\n     || lk == 105180                // 'processing-instruction' 'order'\n     || lk == 105215                // 'true' 'order'\n     || lk == 107143                // 'false' 'paragraphs'\n     || lk == 107205                // 'null' 'paragraphs'\n     || lk == 107263                // 'true' 'paragraphs'\n     || lk == 114771                // 'attribute' 'return'\n     || lk == 114810                // 'element' 'return'\n     || lk == 114823                // 'false' 'return'\n     || lk == 114875                // 'namespace' 'return'\n     || lk == 114885                // 'null' 'return'\n     || lk == 114908                // 'processing-instruction' 'return'\n     || lk == 114943                // 'true' 'return'\n     || lk == 116819                // 'attribute' 'satisfies'\n     || lk == 116858                // 'element' 'satisfies'\n     || lk == 116871                // 'false' 'satisfies'\n     || lk == 116923                // 'namespace' 'satisfies'\n     || lk == 116933                // 'null' 'satisfies'\n     || lk == 116956                // 'processing-instruction' 'satisfies'\n     || lk == 116991                // 'true' 'satisfies'\n     || lk == 121479                // 'false' 'sentences'\n     || lk == 121541                // 'null' 'sentences'\n     || lk == 121599                // 'true' 'sentences'\n     || lk == 123475                // 'attribute' 'stable'\n     || lk == 123514                // 'element' 'stable'\n     || lk == 123527                // 'false' 'stable'\n     || lk == 123579                // 'namespace' 'stable'\n     || lk == 123589                // 'null' 'stable'\n     || lk == 123612                // 'processing-instruction' 'stable'\n     || lk == 123647                // 'true' 'stable'\n     || lk == 123987                // 'attribute' 'start'\n     || lk == 124026                // 'element' 'start'\n     || lk == 124039                // 'false' 'start'\n     || lk == 124091                // 'namespace' 'start'\n     || lk == 124101                // 'null' 'start'\n     || lk == 124124                // 'processing-instruction' 'start'\n     || lk == 124159                // 'true' 'start'\n     || lk == 129159                // 'false' 'times'\n     || lk == 129221                // 'null' 'times'\n     || lk == 129279                // 'true' 'times'\n     || lk == 129619                // 'attribute' 'to'\n     || lk == 129658                // 'element' 'to'\n     || lk == 129671                // 'false' 'to'\n     || lk == 129723                // 'namespace' 'to'\n     || lk == 129733                // 'null' 'to'\n     || lk == 129756                // 'processing-instruction' 'to'\n     || lk == 129791                // 'true' 'to'\n     || lk == 130131                // 'attribute' 'treat'\n     || lk == 130170                // 'element' 'treat'\n     || lk == 130183                // 'false' 'treat'\n     || lk == 130235                // 'namespace' 'treat'\n     || lk == 130245                // 'null' 'treat'\n     || lk == 130268                // 'processing-instruction' 'treat'\n     || lk == 130303                // 'true' 'treat'\n     || lk == 133203                // 'attribute' 'union'\n     || lk == 133242                // 'element' 'union'\n     || lk == 133255                // 'false' 'union'\n     || lk == 133307                // 'namespace' 'union'\n     || lk == 133317                // 'null' 'union'\n     || lk == 133340                // 'processing-instruction' 'union'\n     || lk == 133375                // 'true' 'union'\n     || lk == 139347                // 'attribute' 'where'\n     || lk == 139386                // 'element' 'where'\n     || lk == 139399                // 'false' 'where'\n     || lk == 139451                // 'namespace' 'where'\n     || lk == 139461                // 'null' 'where'\n     || lk == 139484                // 'processing-instruction' 'where'\n     || lk == 139519                // 'true' 'where'\n     || lk == 141395                // 'attribute' 'with'\n     || lk == 141434                // 'element' 'with'\n     || lk == 141447                // 'false' 'with'\n     || lk == 141499                // 'namespace' 'with'\n     || lk == 141509                // 'null' 'with'\n     || lk == 141532                // 'processing-instruction' 'with'\n     || lk == 141567                // 'true' 'with'\n     || lk == 142983                // 'false' 'words'\n     || lk == 143045                // 'null' 'words'\n     || lk == 143103                // 'true' 'words'\n     || lk == 145543                // 'false' '|'\n     || lk == 145605                // 'null' '|'\n     || lk == 145663                // 'true' '|'\n     || lk == 146055                // 'false' '||'\n     || lk == 146117                // 'null' '||'\n     || lk == 146175                // 'true' '||'\n     || lk == 146567                // 'false' '|}'\n     || lk == 146629                // 'null' '|}'\n     || lk == 146687                // 'true' '|}'\n     || lk == 147079                // 'false' '}'\n     || lk == 147141                // 'null' '}'\n     || lk == 147199)               // 'true' '}'\n    {\n      lk = memoized(4, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_PostfixExpr();\n          memoize(4, e0A, -1);\n          lk = -3;\n        }\n        catch (p1A)\n        {\n          lk = -2;\n          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n          b2 = b2A; e2 = e2A; end = e2A; }}\n          memoize(4, e0A, -2);\n        }\n      }\n    }\n    switch (lk)\n    {\n    case -1:\n    case 8:                         // IntegerLiteral\n    case 9:                         // DecimalLiteral\n    case 10:                        // DoubleLiteral\n    case 11:                        // StringLiteral\n    case 31:                        // '$'\n    case 32:                        // '$$'\n    case 33:                        // '%'\n    case 35:                        // '('\n    case 55:                        // '<'\n    case 56:                        // '<!--'\n    case 60:                        // '<?'\n    case 69:                        // '['\n    case 281:                       // '{'\n    case 283:                       // '{|'\n    case 3155:                      // 'attribute' EQName^Token\n    case 3194:                      // 'element' EQName^Token\n    case 9915:                      // 'namespace' NCName^Token\n    case 9948:                      // 'processing-instruction' NCName^Token\n    case 14854:                     // EQName^Token '#'\n    case 14919:                     // 'after' '#'\n    case 14921:                     // 'allowing' '#'\n    case 14922:                     // 'ancestor' '#'\n    case 14923:                     // 'ancestor-or-self' '#'\n    case 14924:                     // 'and' '#'\n    case 14926:                     // 'append' '#'\n    case 14927:                     // 'array' '#'\n    case 14928:                     // 'as' '#'\n    case 14929:                     // 'ascending' '#'\n    case 14930:                     // 'at' '#'\n    case 14931:                     // 'attribute' '#'\n    case 14932:                     // 'base-uri' '#'\n    case 14933:                     // 'before' '#'\n    case 14934:                     // 'boundary-space' '#'\n    case 14935:                     // 'break' '#'\n    case 14937:                     // 'case' '#'\n    case 14938:                     // 'cast' '#'\n    case 14939:                     // 'castable' '#'\n    case 14940:                     // 'catch' '#'\n    case 14942:                     // 'child' '#'\n    case 14943:                     // 'collation' '#'\n    case 14945:                     // 'comment' '#'\n    case 14946:                     // 'constraint' '#'\n    case 14947:                     // 'construction' '#'\n    case 14950:                     // 'context' '#'\n    case 14951:                     // 'continue' '#'\n    case 14952:                     // 'copy' '#'\n    case 14953:                     // 'copy-namespaces' '#'\n    case 14954:                     // 'count' '#'\n    case 14955:                     // 'decimal-format' '#'\n    case 14957:                     // 'declare' '#'\n    case 14958:                     // 'default' '#'\n    case 14959:                     // 'delete' '#'\n    case 14960:                     // 'descendant' '#'\n    case 14961:                     // 'descendant-or-self' '#'\n    case 14962:                     // 'descending' '#'\n    case 14967:                     // 'div' '#'\n    case 14968:                     // 'document' '#'\n    case 14969:                     // 'document-node' '#'\n    case 14970:                     // 'element' '#'\n    case 14971:                     // 'else' '#'\n    case 14972:                     // 'empty' '#'\n    case 14973:                     // 'empty-sequence' '#'\n    case 14974:                     // 'encoding' '#'\n    case 14975:                     // 'end' '#'\n    case 14977:                     // 'eq' '#'\n    case 14978:                     // 'every' '#'\n    case 14980:                     // 'except' '#'\n    case 14981:                     // 'exit' '#'\n    case 14982:                     // 'external' '#'\n    case 14983:                     // 'false' '#'\n    case 14984:                     // 'first' '#'\n    case 14985:                     // 'following' '#'\n    case 14986:                     // 'following-sibling' '#'\n    case 14987:                     // 'for' '#'\n    case 14990:                     // 'from' '#'\n    case 14991:                     // 'ft-option' '#'\n    case 14995:                     // 'function' '#'\n    case 14996:                     // 'ge' '#'\n    case 14998:                     // 'group' '#'\n    case 15000:                     // 'gt' '#'\n    case 15001:                     // 'idiv' '#'\n    case 15002:                     // 'if' '#'\n    case 15003:                     // 'import' '#'\n    case 15004:                     // 'in' '#'\n    case 15005:                     // 'index' '#'\n    case 15009:                     // 'insert' '#'\n    case 15010:                     // 'instance' '#'\n    case 15011:                     // 'integrity' '#'\n    case 15012:                     // 'intersect' '#'\n    case 15013:                     // 'into' '#'\n    case 15014:                     // 'is' '#'\n    case 15015:                     // 'item' '#'\n    case 15016:                     // 'json' '#'\n    case 15017:                     // 'json-item' '#'\n    case 15018:                     // 'jsoniq' '#'\n    case 15021:                     // 'last' '#'\n    case 15022:                     // 'lax' '#'\n    case 15023:                     // 'le' '#'\n    case 15025:                     // 'let' '#'\n    case 15027:                     // 'loop' '#'\n    case 15029:                     // 'lt' '#'\n    case 15031:                     // 'mod' '#'\n    case 15032:                     // 'modify' '#'\n    case 15033:                     // 'module' '#'\n    case 15035:                     // 'namespace' '#'\n    case 15036:                     // 'namespace-node' '#'\n    case 15037:                     // 'ne' '#'\n    case 15042:                     // 'node' '#'\n    case 15043:                     // 'nodes' '#'\n    case 15045:                     // 'null' '#'\n    case 15046:                     // 'object' '#'\n    case 15050:                     // 'only' '#'\n    case 15051:                     // 'option' '#'\n    case 15052:                     // 'or' '#'\n    case 15053:                     // 'order' '#'\n    case 15054:                     // 'ordered' '#'\n    case 15055:                     // 'ordering' '#'\n    case 15058:                     // 'parent' '#'\n    case 15064:                     // 'preceding' '#'\n    case 15065:                     // 'preceding-sibling' '#'\n    case 15068:                     // 'processing-instruction' '#'\n    case 15070:                     // 'rename' '#'\n    case 15071:                     // 'replace' '#'\n    case 15072:                     // 'return' '#'\n    case 15073:                     // 'returning' '#'\n    case 15074:                     // 'revalidation' '#'\n    case 15076:                     // 'satisfies' '#'\n    case 15077:                     // 'schema' '#'\n    case 15078:                     // 'schema-attribute' '#'\n    case 15079:                     // 'schema-element' '#'\n    case 15080:                     // 'score' '#'\n    case 15081:                     // 'select' '#'\n    case 15082:                     // 'self' '#'\n    case 15087:                     // 'sliding' '#'\n    case 15088:                     // 'some' '#'\n    case 15089:                     // 'stable' '#'\n    case 15090:                     // 'start' '#'\n    case 15093:                     // 'strict' '#'\n    case 15095:                     // 'structured-item' '#'\n    case 15096:                     // 'switch' '#'\n    case 15097:                     // 'text' '#'\n    case 15101:                     // 'to' '#'\n    case 15102:                     // 'treat' '#'\n    case 15103:                     // 'true' '#'\n    case 15104:                     // 'try' '#'\n    case 15105:                     // 'tumbling' '#'\n    case 15106:                     // 'type' '#'\n    case 15107:                     // 'typeswitch' '#'\n    case 15108:                     // 'union' '#'\n    case 15110:                     // 'unordered' '#'\n    case 15111:                     // 'updating' '#'\n    case 15114:                     // 'validate' '#'\n    case 15115:                     // 'value' '#'\n    case 15116:                     // 'variable' '#'\n    case 15117:                     // 'version' '#'\n    case 15120:                     // 'where' '#'\n    case 15121:                     // 'while' '#'\n    case 15124:                     // 'with' '#'\n    case 17926:                     // EQName^Token '('\n    case 17991:                     // 'after' '('\n    case 17993:                     // 'allowing' '('\n    case 17994:                     // 'ancestor' '('\n    case 17995:                     // 'ancestor-or-self' '('\n    case 17996:                     // 'and' '('\n    case 17998:                     // 'append' '('\n    case 18000:                     // 'as' '('\n    case 18001:                     // 'ascending' '('\n    case 18002:                     // 'at' '('\n    case 18004:                     // 'base-uri' '('\n    case 18005:                     // 'before' '('\n    case 18006:                     // 'boundary-space' '('\n    case 18007:                     // 'break' '('\n    case 18009:                     // 'case' '('\n    case 18010:                     // 'cast' '('\n    case 18011:                     // 'castable' '('\n    case 18012:                     // 'catch' '('\n    case 18014:                     // 'child' '('\n    case 18015:                     // 'collation' '('\n    case 18018:                     // 'constraint' '('\n    case 18019:                     // 'construction' '('\n    case 18022:                     // 'context' '('\n    case 18023:                     // 'continue' '('\n    case 18024:                     // 'copy' '('\n    case 18025:                     // 'copy-namespaces' '('\n    case 18026:                     // 'count' '('\n    case 18027:                     // 'decimal-format' '('\n    case 18029:                     // 'declare' '('\n    case 18030:                     // 'default' '('\n    case 18031:                     // 'delete' '('\n    case 18032:                     // 'descendant' '('\n    case 18033:                     // 'descendant-or-self' '('\n    case 18034:                     // 'descending' '('\n    case 18039:                     // 'div' '('\n    case 18040:                     // 'document' '('\n    case 18043:                     // 'else' '('\n    case 18044:                     // 'empty' '('\n    case 18046:                     // 'encoding' '('\n    case 18047:                     // 'end' '('\n    case 18049:                     // 'eq' '('\n    case 18050:                     // 'every' '('\n    case 18052:                     // 'except' '('\n    case 18053:                     // 'exit' '('\n    case 18054:                     // 'external' '('\n    case 18055:                     // 'false' '('\n    case 18056:                     // 'first' '('\n    case 18057:                     // 'following' '('\n    case 18058:                     // 'following-sibling' '('\n    case 18059:                     // 'for' '('\n    case 18062:                     // 'from' '('\n    case 18063:                     // 'ft-option' '('\n    case 18067:                     // 'function' '('\n    case 18068:                     // 'ge' '('\n    case 18070:                     // 'group' '('\n    case 18072:                     // 'gt' '('\n    case 18073:                     // 'idiv' '('\n    case 18075:                     // 'import' '('\n    case 18076:                     // 'in' '('\n    case 18077:                     // 'index' '('\n    case 18081:                     // 'insert' '('\n    case 18082:                     // 'instance' '('\n    case 18083:                     // 'integrity' '('\n    case 18084:                     // 'intersect' '('\n    case 18085:                     // 'into' '('\n    case 18086:                     // 'is' '('\n    case 18088:                     // 'json' '('\n    case 18090:                     // 'jsoniq' '('\n    case 18093:                     // 'last' '('\n    case 18094:                     // 'lax' '('\n    case 18095:                     // 'le' '('\n    case 18097:                     // 'let' '('\n    case 18099:                     // 'loop' '('\n    case 18101:                     // 'lt' '('\n    case 18103:                     // 'mod' '('\n    case 18104:                     // 'modify' '('\n    case 18105:                     // 'module' '('\n    case 18107:                     // 'namespace' '('\n    case 18109:                     // 'ne' '('\n    case 18115:                     // 'nodes' '('\n    case 18117:                     // 'null' '('\n    case 18118:                     // 'object' '('\n    case 18122:                     // 'only' '('\n    case 18123:                     // 'option' '('\n    case 18124:                     // 'or' '('\n    case 18125:                     // 'order' '('\n    case 18126:                     // 'ordered' '('\n    case 18127:                     // 'ordering' '('\n    case 18130:                     // 'parent' '('\n    case 18136:                     // 'preceding' '('\n    case 18137:                     // 'preceding-sibling' '('\n    case 18142:                     // 'rename' '('\n    case 18143:                     // 'replace' '('\n    case 18144:                     // 'return' '('\n    case 18145:                     // 'returning' '('\n    case 18146:                     // 'revalidation' '('\n    case 18148:                     // 'satisfies' '('\n    case 18149:                     // 'schema' '('\n    case 18152:                     // 'score' '('\n    case 18153:                     // 'select' '('\n    case 18154:                     // 'self' '('\n    case 18159:                     // 'sliding' '('\n    case 18160:                     // 'some' '('\n    case 18161:                     // 'stable' '('\n    case 18162:                     // 'start' '('\n    case 18165:                     // 'strict' '('\n    case 18173:                     // 'to' '('\n    case 18174:                     // 'treat' '('\n    case 18175:                     // 'true' '('\n    case 18176:                     // 'try' '('\n    case 18177:                     // 'tumbling' '('\n    case 18178:                     // 'type' '('\n    case 18180:                     // 'union' '('\n    case 18182:                     // 'unordered' '('\n    case 18183:                     // 'updating' '('\n    case 18186:                     // 'validate' '('\n    case 18187:                     // 'value' '('\n    case 18188:                     // 'variable' '('\n    case 18189:                     // 'version' '('\n    case 18192:                     // 'where' '('\n    case 18193:                     // 'while' '('\n    case 18196:                     // 'with' '('\n    case 23175:                     // 'false' '.'\n    case 23237:                     // 'null' '.'\n    case 23295:                     // 'true' '.'\n    case 37459:                     // 'attribute' 'allowing'\n    case 37498:                     // 'element' 'allowing'\n    case 37563:                     // 'namespace' 'allowing'\n    case 37596:                     // 'processing-instruction' 'allowing'\n    case 37971:                     // 'attribute' 'ancestor'\n    case 38010:                     // 'element' 'ancestor'\n    case 38075:                     // 'namespace' 'ancestor'\n    case 38108:                     // 'processing-instruction' 'ancestor'\n    case 38483:                     // 'attribute' 'ancestor-or-self'\n    case 38522:                     // 'element' 'ancestor-or-self'\n    case 38587:                     // 'namespace' 'ancestor-or-self'\n    case 38620:                     // 'processing-instruction' 'ancestor-or-self'\n    case 40019:                     // 'attribute' 'append'\n    case 40058:                     // 'element' 'append'\n    case 40123:                     // 'namespace' 'append'\n    case 40156:                     // 'processing-instruction' 'append'\n    case 40531:                     // 'attribute' 'array'\n    case 40570:                     // 'element' 'array'\n    case 42579:                     // 'attribute' 'attribute'\n    case 42618:                     // 'element' 'attribute'\n    case 42683:                     // 'namespace' 'attribute'\n    case 42716:                     // 'processing-instruction' 'attribute'\n    case 43091:                     // 'attribute' 'base-uri'\n    case 43130:                     // 'element' 'base-uri'\n    case 43195:                     // 'namespace' 'base-uri'\n    case 43228:                     // 'processing-instruction' 'base-uri'\n    case 44115:                     // 'attribute' 'boundary-space'\n    case 44154:                     // 'element' 'boundary-space'\n    case 44219:                     // 'namespace' 'boundary-space'\n    case 44252:                     // 'processing-instruction' 'boundary-space'\n    case 44627:                     // 'attribute' 'break'\n    case 44666:                     // 'element' 'break'\n    case 44731:                     // 'namespace' 'break'\n    case 44764:                     // 'processing-instruction' 'break'\n    case 47187:                     // 'attribute' 'catch'\n    case 47226:                     // 'element' 'catch'\n    case 47291:                     // 'namespace' 'catch'\n    case 47324:                     // 'processing-instruction' 'catch'\n    case 48211:                     // 'attribute' 'child'\n    case 48250:                     // 'element' 'child'\n    case 48315:                     // 'namespace' 'child'\n    case 48348:                     // 'processing-instruction' 'child'\n    case 49747:                     // 'attribute' 'comment'\n    case 49786:                     // 'element' 'comment'\n    case 49851:                     // 'namespace' 'comment'\n    case 49884:                     // 'processing-instruction' 'comment'\n    case 50259:                     // 'attribute' 'constraint'\n    case 50298:                     // 'element' 'constraint'\n    case 50363:                     // 'namespace' 'constraint'\n    case 50396:                     // 'processing-instruction' 'constraint'\n    case 50771:                     // 'attribute' 'construction'\n    case 50810:                     // 'element' 'construction'\n    case 50875:                     // 'namespace' 'construction'\n    case 50908:                     // 'processing-instruction' 'construction'\n    case 52307:                     // 'attribute' 'context'\n    case 52346:                     // 'element' 'context'\n    case 52411:                     // 'namespace' 'context'\n    case 52444:                     // 'processing-instruction' 'context'\n    case 52819:                     // 'attribute' 'continue'\n    case 52858:                     // 'element' 'continue'\n    case 52923:                     // 'namespace' 'continue'\n    case 52956:                     // 'processing-instruction' 'continue'\n    case 53331:                     // 'attribute' 'copy'\n    case 53370:                     // 'element' 'copy'\n    case 53435:                     // 'namespace' 'copy'\n    case 53468:                     // 'processing-instruction' 'copy'\n    case 53843:                     // 'attribute' 'copy-namespaces'\n    case 53882:                     // 'element' 'copy-namespaces'\n    case 53947:                     // 'namespace' 'copy-namespaces'\n    case 53980:                     // 'processing-instruction' 'copy-namespaces'\n    case 54867:                     // 'attribute' 'decimal-format'\n    case 54906:                     // 'element' 'decimal-format'\n    case 54971:                     // 'namespace' 'decimal-format'\n    case 55004:                     // 'processing-instruction' 'decimal-format'\n    case 55891:                     // 'attribute' 'declare'\n    case 55930:                     // 'element' 'declare'\n    case 55995:                     // 'namespace' 'declare'\n    case 56028:                     // 'processing-instruction' 'declare'\n    case 56915:                     // 'attribute' 'delete'\n    case 56954:                     // 'element' 'delete'\n    case 57019:                     // 'namespace' 'delete'\n    case 57052:                     // 'processing-instruction' 'delete'\n    case 57427:                     // 'attribute' 'descendant'\n    case 57466:                     // 'element' 'descendant'\n    case 57531:                     // 'namespace' 'descendant'\n    case 57564:                     // 'processing-instruction' 'descendant'\n    case 57939:                     // 'attribute' 'descendant-or-self'\n    case 57978:                     // 'element' 'descendant-or-self'\n    case 58043:                     // 'namespace' 'descendant-or-self'\n    case 58076:                     // 'processing-instruction' 'descendant-or-self'\n    case 61523:                     // 'attribute' 'document'\n    case 61562:                     // 'element' 'document'\n    case 61627:                     // 'namespace' 'document'\n    case 61660:                     // 'processing-instruction' 'document'\n    case 62035:                     // 'attribute' 'document-node'\n    case 62074:                     // 'element' 'document-node'\n    case 62139:                     // 'namespace' 'document-node'\n    case 62172:                     // 'processing-instruction' 'document-node'\n    case 62547:                     // 'attribute' 'element'\n    case 62586:                     // 'element' 'element'\n    case 62651:                     // 'namespace' 'element'\n    case 62684:                     // 'processing-instruction' 'element'\n    case 64083:                     // 'attribute' 'empty-sequence'\n    case 64122:                     // 'element' 'empty-sequence'\n    case 64187:                     // 'namespace' 'empty-sequence'\n    case 64220:                     // 'processing-instruction' 'empty-sequence'\n    case 64595:                     // 'attribute' 'encoding'\n    case 64634:                     // 'element' 'encoding'\n    case 64699:                     // 'namespace' 'encoding'\n    case 64732:                     // 'processing-instruction' 'encoding'\n    case 66643:                     // 'attribute' 'every'\n    case 66682:                     // 'element' 'every'\n    case 66747:                     // 'namespace' 'every'\n    case 66780:                     // 'processing-instruction' 'every'\n    case 68179:                     // 'attribute' 'exit'\n    case 68218:                     // 'element' 'exit'\n    case 68283:                     // 'namespace' 'exit'\n    case 68316:                     // 'processing-instruction' 'exit'\n    case 68691:                     // 'attribute' 'external'\n    case 68730:                     // 'element' 'external'\n    case 68795:                     // 'namespace' 'external'\n    case 68828:                     // 'processing-instruction' 'external'\n    case 69203:                     // 'attribute' 'false'\n    case 69242:                     // 'element' 'false'\n    case 69307:                     // 'namespace' 'false'\n    case 69340:                     // 'processing-instruction' 'false'\n    case 69715:                     // 'attribute' 'first'\n    case 69754:                     // 'element' 'first'\n    case 69819:                     // 'namespace' 'first'\n    case 69852:                     // 'processing-instruction' 'first'\n    case 70227:                     // 'attribute' 'following'\n    case 70266:                     // 'element' 'following'\n    case 70331:                     // 'namespace' 'following'\n    case 70364:                     // 'processing-instruction' 'following'\n    case 70739:                     // 'attribute' 'following-sibling'\n    case 70778:                     // 'element' 'following-sibling'\n    case 70843:                     // 'namespace' 'following-sibling'\n    case 70876:                     // 'processing-instruction' 'following-sibling'\n    case 72787:                     // 'attribute' 'from'\n    case 72826:                     // 'element' 'from'\n    case 72891:                     // 'namespace' 'from'\n    case 72924:                     // 'processing-instruction' 'from'\n    case 73299:                     // 'attribute' 'ft-option'\n    case 73338:                     // 'element' 'ft-option'\n    case 73403:                     // 'namespace' 'ft-option'\n    case 73436:                     // 'processing-instruction' 'ft-option'\n    case 75347:                     // 'attribute' 'function'\n    case 75386:                     // 'element' 'function'\n    case 75451:                     // 'namespace' 'function'\n    case 75484:                     // 'processing-instruction' 'function'\n    case 78931:                     // 'attribute' 'if'\n    case 78970:                     // 'element' 'if'\n    case 79035:                     // 'namespace' 'if'\n    case 79068:                     // 'processing-instruction' 'if'\n    case 79443:                     // 'attribute' 'import'\n    case 79482:                     // 'element' 'import'\n    case 79547:                     // 'namespace' 'import'\n    case 79580:                     // 'processing-instruction' 'import'\n    case 79955:                     // 'attribute' 'in'\n    case 79994:                     // 'element' 'in'\n    case 80059:                     // 'namespace' 'in'\n    case 80092:                     // 'processing-instruction' 'in'\n    case 80467:                     // 'attribute' 'index'\n    case 80506:                     // 'element' 'index'\n    case 80571:                     // 'namespace' 'index'\n    case 80604:                     // 'processing-instruction' 'index'\n    case 82515:                     // 'attribute' 'insert'\n    case 82554:                     // 'element' 'insert'\n    case 82619:                     // 'namespace' 'insert'\n    case 82652:                     // 'processing-instruction' 'insert'\n    case 83539:                     // 'attribute' 'integrity'\n    case 83578:                     // 'element' 'integrity'\n    case 83643:                     // 'namespace' 'integrity'\n    case 83676:                     // 'processing-instruction' 'integrity'\n    case 85587:                     // 'attribute' 'item'\n    case 85626:                     // 'element' 'item'\n    case 85691:                     // 'namespace' 'item'\n    case 85724:                     // 'processing-instruction' 'item'\n    case 86099:                     // 'attribute' 'json'\n    case 86138:                     // 'element' 'json'\n    case 86203:                     // 'namespace' 'json'\n    case 86236:                     // 'processing-instruction' 'json'\n    case 86611:                     // 'attribute' 'json-item'\n    case 86650:                     // 'element' 'json-item'\n    case 87123:                     // 'attribute' 'jsoniq'\n    case 87162:                     // 'element' 'jsoniq'\n    case 87227:                     // 'namespace' 'jsoniq'\n    case 87260:                     // 'processing-instruction' 'jsoniq'\n    case 88659:                     // 'attribute' 'last'\n    case 88698:                     // 'element' 'last'\n    case 88763:                     // 'namespace' 'last'\n    case 88796:                     // 'processing-instruction' 'last'\n    case 89171:                     // 'attribute' 'lax'\n    case 89210:                     // 'element' 'lax'\n    case 89275:                     // 'namespace' 'lax'\n    case 89308:                     // 'processing-instruction' 'lax'\n    case 91731:                     // 'attribute' 'loop'\n    case 91770:                     // 'element' 'loop'\n    case 91835:                     // 'namespace' 'loop'\n    case 91868:                     // 'processing-instruction' 'loop'\n    case 94803:                     // 'attribute' 'module'\n    case 94842:                     // 'element' 'module'\n    case 94907:                     // 'namespace' 'module'\n    case 94940:                     // 'processing-instruction' 'module'\n    case 95827:                     // 'attribute' 'namespace'\n    case 95866:                     // 'element' 'namespace'\n    case 95931:                     // 'namespace' 'namespace'\n    case 95964:                     // 'processing-instruction' 'namespace'\n    case 96339:                     // 'attribute' 'namespace-node'\n    case 96378:                     // 'element' 'namespace-node'\n    case 96443:                     // 'namespace' 'namespace-node'\n    case 96476:                     // 'processing-instruction' 'namespace-node'\n    case 99411:                     // 'attribute' 'node'\n    case 99450:                     // 'element' 'node'\n    case 99515:                     // 'namespace' 'node'\n    case 99548:                     // 'processing-instruction' 'node'\n    case 99923:                     // 'attribute' 'nodes'\n    case 99962:                     // 'element' 'nodes'\n    case 100027:                    // 'namespace' 'nodes'\n    case 100060:                    // 'processing-instruction' 'nodes'\n    case 100947:                    // 'attribute' 'null'\n    case 100986:                    // 'element' 'null'\n    case 101051:                    // 'namespace' 'null'\n    case 101084:                    // 'processing-instruction' 'null'\n    case 101459:                    // 'attribute' 'object'\n    case 101498:                    // 'element' 'object'\n    case 101563:                    // 'namespace' 'object'\n    case 101596:                    // 'processing-instruction' 'object'\n    case 104019:                    // 'attribute' 'option'\n    case 104058:                    // 'element' 'option'\n    case 104123:                    // 'namespace' 'option'\n    case 104156:                    // 'processing-instruction' 'option'\n    case 105555:                    // 'attribute' 'ordered'\n    case 105594:                    // 'element' 'ordered'\n    case 105659:                    // 'namespace' 'ordered'\n    case 105692:                    // 'processing-instruction' 'ordered'\n    case 106067:                    // 'attribute' 'ordering'\n    case 106106:                    // 'element' 'ordering'\n    case 106171:                    // 'namespace' 'ordering'\n    case 106204:                    // 'processing-instruction' 'ordering'\n    case 107603:                    // 'attribute' 'parent'\n    case 107642:                    // 'element' 'parent'\n    case 107707:                    // 'namespace' 'parent'\n    case 107740:                    // 'processing-instruction' 'parent'\n    case 110675:                    // 'attribute' 'preceding'\n    case 110714:                    // 'element' 'preceding'\n    case 110779:                    // 'namespace' 'preceding'\n    case 110812:                    // 'processing-instruction' 'preceding'\n    case 111187:                    // 'attribute' 'preceding-sibling'\n    case 111226:                    // 'element' 'preceding-sibling'\n    case 111291:                    // 'namespace' 'preceding-sibling'\n    case 111324:                    // 'processing-instruction' 'preceding-sibling'\n    case 112723:                    // 'attribute' 'processing-instruction'\n    case 112762:                    // 'element' 'processing-instruction'\n    case 112827:                    // 'namespace' 'processing-instruction'\n    case 112860:                    // 'processing-instruction' 'processing-instruction'\n    case 113747:                    // 'attribute' 'rename'\n    case 113786:                    // 'element' 'rename'\n    case 113851:                    // 'namespace' 'rename'\n    case 113884:                    // 'processing-instruction' 'rename'\n    case 114259:                    // 'attribute' 'replace'\n    case 114298:                    // 'element' 'replace'\n    case 114363:                    // 'namespace' 'replace'\n    case 114396:                    // 'processing-instruction' 'replace'\n    case 115283:                    // 'attribute' 'returning'\n    case 115322:                    // 'element' 'returning'\n    case 115387:                    // 'namespace' 'returning'\n    case 115420:                    // 'processing-instruction' 'returning'\n    case 115795:                    // 'attribute' 'revalidation'\n    case 115834:                    // 'element' 'revalidation'\n    case 115899:                    // 'namespace' 'revalidation'\n    case 115932:                    // 'processing-instruction' 'revalidation'\n    case 117331:                    // 'attribute' 'schema'\n    case 117370:                    // 'element' 'schema'\n    case 117435:                    // 'namespace' 'schema'\n    case 117468:                    // 'processing-instruction' 'schema'\n    case 117843:                    // 'attribute' 'schema-attribute'\n    case 117882:                    // 'element' 'schema-attribute'\n    case 117947:                    // 'namespace' 'schema-attribute'\n    case 117980:                    // 'processing-instruction' 'schema-attribute'\n    case 118355:                    // 'attribute' 'schema-element'\n    case 118394:                    // 'element' 'schema-element'\n    case 118459:                    // 'namespace' 'schema-element'\n    case 118492:                    // 'processing-instruction' 'schema-element'\n    case 118867:                    // 'attribute' 'score'\n    case 118906:                    // 'element' 'score'\n    case 118971:                    // 'namespace' 'score'\n    case 119004:                    // 'processing-instruction' 'score'\n    case 119379:                    // 'attribute' 'select'\n    case 119418:                    // 'element' 'select'\n    case 119483:                    // 'namespace' 'select'\n    case 119516:                    // 'processing-instruction' 'select'\n    case 119891:                    // 'attribute' 'self'\n    case 119930:                    // 'element' 'self'\n    case 119995:                    // 'namespace' 'self'\n    case 120028:                    // 'processing-instruction' 'self'\n    case 122451:                    // 'attribute' 'sliding'\n    case 122490:                    // 'element' 'sliding'\n    case 122555:                    // 'namespace' 'sliding'\n    case 122588:                    // 'processing-instruction' 'sliding'\n    case 122963:                    // 'attribute' 'some'\n    case 123002:                    // 'element' 'some'\n    case 123067:                    // 'namespace' 'some'\n    case 123100:                    // 'processing-instruction' 'some'\n    case 125523:                    // 'attribute' 'strict'\n    case 125562:                    // 'element' 'strict'\n    case 125627:                    // 'namespace' 'strict'\n    case 125660:                    // 'processing-instruction' 'strict'\n    case 126547:                    // 'attribute' 'structured-item'\n    case 126586:                    // 'element' 'structured-item'\n    case 127059:                    // 'attribute' 'switch'\n    case 127098:                    // 'element' 'switch'\n    case 127163:                    // 'namespace' 'switch'\n    case 127196:                    // 'processing-instruction' 'switch'\n    case 127571:                    // 'attribute' 'text'\n    case 127610:                    // 'element' 'text'\n    case 127675:                    // 'namespace' 'text'\n    case 127708:                    // 'processing-instruction' 'text'\n    case 130643:                    // 'attribute' 'true'\n    case 130682:                    // 'element' 'true'\n    case 130747:                    // 'namespace' 'true'\n    case 130780:                    // 'processing-instruction' 'true'\n    case 131155:                    // 'attribute' 'try'\n    case 131194:                    // 'element' 'try'\n    case 131259:                    // 'namespace' 'try'\n    case 131292:                    // 'processing-instruction' 'try'\n    case 131667:                    // 'attribute' 'tumbling'\n    case 131706:                    // 'element' 'tumbling'\n    case 131771:                    // 'namespace' 'tumbling'\n    case 131804:                    // 'processing-instruction' 'tumbling'\n    case 132179:                    // 'attribute' 'type'\n    case 132218:                    // 'element' 'type'\n    case 132283:                    // 'namespace' 'type'\n    case 132316:                    // 'processing-instruction' 'type'\n    case 132691:                    // 'attribute' 'typeswitch'\n    case 132730:                    // 'element' 'typeswitch'\n    case 132795:                    // 'namespace' 'typeswitch'\n    case 132828:                    // 'processing-instruction' 'typeswitch'\n    case 134227:                    // 'attribute' 'unordered'\n    case 134266:                    // 'element' 'unordered'\n    case 134331:                    // 'namespace' 'unordered'\n    case 134364:                    // 'processing-instruction' 'unordered'\n    case 134739:                    // 'attribute' 'updating'\n    case 134778:                    // 'element' 'updating'\n    case 134843:                    // 'namespace' 'updating'\n    case 134876:                    // 'processing-instruction' 'updating'\n    case 136275:                    // 'attribute' 'validate'\n    case 136314:                    // 'element' 'validate'\n    case 136379:                    // 'namespace' 'validate'\n    case 136412:                    // 'processing-instruction' 'validate'\n    case 136787:                    // 'attribute' 'value'\n    case 136826:                    // 'element' 'value'\n    case 136891:                    // 'namespace' 'value'\n    case 136924:                    // 'processing-instruction' 'value'\n    case 137299:                    // 'attribute' 'variable'\n    case 137338:                    // 'element' 'variable'\n    case 137403:                    // 'namespace' 'variable'\n    case 137436:                    // 'processing-instruction' 'variable'\n    case 137811:                    // 'attribute' 'version'\n    case 137850:                    // 'element' 'version'\n    case 137915:                    // 'namespace' 'version'\n    case 137948:                    // 'processing-instruction' 'version'\n    case 139859:                    // 'attribute' 'while'\n    case 139898:                    // 'element' 'while'\n    case 139963:                    // 'namespace' 'while'\n    case 139996:                    // 'processing-instruction' 'while'\n    case 143955:                    // 'attribute' '{'\n    case 143969:                    // 'comment' '{'\n    case 143992:                    // 'document' '{'\n    case 143994:                    // 'element' '{'\n    case 144059:                    // 'namespace' '{'\n    case 144078:                    // 'ordered' '{'\n    case 144092:                    // 'processing-instruction' '{'\n    case 144121:                    // 'text' '{'\n    case 144134:                    // 'unordered' '{'\n      try_PostfixExpr();\n      break;\n    case -3:\n      break;\n    default:\n      try_AxisStep();\n    }\n  }\n\n  function parse_AxisStep()\n  {\n    eventHandler.startNonterminal(\"AxisStep\", e0);\n    switch (l1)\n    {\n    case 74:                        // 'ancestor'\n    case 75:                        // 'ancestor-or-self'\n    case 210:                       // 'parent'\n    case 216:                       // 'preceding'\n    case 217:                       // 'preceding-sibling'\n      lookahead2W(232);             // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 46:                        // '..'\n    case 26698:                     // 'ancestor' '::'\n    case 26699:                     // 'ancestor-or-self' '::'\n    case 26834:                     // 'parent' '::'\n    case 26840:                     // 'preceding' '::'\n    case 26841:                     // 'preceding-sibling' '::'\n      parse_ReverseStep();\n      break;\n    default:\n      parse_ForwardStep();\n    }\n    lookahead1W(228);               // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |\n    whitespace();\n    parse_PredicateList();\n    eventHandler.endNonterminal(\"AxisStep\", e0);\n  }\n\n  function try_AxisStep()\n  {\n    switch (l1)\n    {\n    case 74:                        // 'ancestor'\n    case 75:                        // 'ancestor-or-self'\n    case 210:                       // 'parent'\n    case 216:                       // 'preceding'\n    case 217:                       // 'preceding-sibling'\n      lookahead2W(232);             // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 46:                        // '..'\n    case 26698:                     // 'ancestor' '::'\n    case 26699:                     // 'ancestor-or-self' '::'\n    case 26834:                     // 'parent' '::'\n    case 26840:                     // 'preceding' '::'\n    case 26841:                     // 'preceding-sibling' '::'\n      try_ReverseStep();\n      break;\n    default:\n      try_ForwardStep();\n    }\n    lookahead1W(228);               // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |\n    try_PredicateList();\n  }\n\n  function parse_ForwardStep()\n  {\n    eventHandler.startNonterminal(\"ForwardStep\", e0);\n    switch (l1)\n    {\n    case 83:                        // 'attribute'\n      lookahead2W(236);             // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |\n      break;\n    case 94:                        // 'child'\n    case 112:                       // 'descendant'\n    case 113:                       // 'descendant-or-self'\n    case 137:                       // 'following'\n    case 138:                       // 'following-sibling'\n    case 234:                       // 'self'\n      lookahead2W(232);             // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 26707:                     // 'attribute' '::'\n    case 26718:                     // 'child' '::'\n    case 26736:                     // 'descendant' '::'\n    case 26737:                     // 'descendant-or-self' '::'\n    case 26761:                     // 'following' '::'\n    case 26762:                     // 'following-sibling' '::'\n    case 26858:                     // 'self' '::'\n      parse_ForwardAxis();\n      lookahead1W(249);             // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_NodeTest();\n      break;\n    default:\n      parse_AbbrevForwardStep();\n    }\n    eventHandler.endNonterminal(\"ForwardStep\", e0);\n  }\n\n  function try_ForwardStep()\n  {\n    switch (l1)\n    {\n    case 83:                        // 'attribute'\n      lookahead2W(236);             // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |\n      break;\n    case 94:                        // 'child'\n    case 112:                       // 'descendant'\n    case 113:                       // 'descendant-or-self'\n    case 137:                       // 'following'\n    case 138:                       // 'following-sibling'\n    case 234:                       // 'self'\n      lookahead2W(232);             // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 26707:                     // 'attribute' '::'\n    case 26718:                     // 'child' '::'\n    case 26736:                     // 'descendant' '::'\n    case 26737:                     // 'descendant-or-self' '::'\n    case 26761:                     // 'following' '::'\n    case 26762:                     // 'following-sibling' '::'\n    case 26858:                     // 'self' '::'\n      try_ForwardAxis();\n      lookahead1W(249);             // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_NodeTest();\n      break;\n    default:\n      try_AbbrevForwardStep();\n    }\n  }\n\n  function parse_ForwardAxis()\n  {\n    eventHandler.startNonterminal(\"ForwardAxis\", e0);\n    switch (l1)\n    {\n    case 94:                        // 'child'\n      shift(94);                    // 'child'\n      lookahead1W(27);              // S^WS | '(:' | '::'\n      shift(52);                    // '::'\n      break;\n    case 112:                       // 'descendant'\n      shift(112);                   // 'descendant'\n      lookahead1W(27);              // S^WS | '(:' | '::'\n      shift(52);                    // '::'\n      break;\n    case 83:                        // 'attribute'\n      shift(83);                    // 'attribute'\n      lookahead1W(27);              // S^WS | '(:' | '::'\n      shift(52);                    // '::'\n      break;\n    case 234:                       // 'self'\n      shift(234);                   // 'self'\n      lookahead1W(27);              // S^WS | '(:' | '::'\n      shift(52);                    // '::'\n      break;\n    case 113:                       // 'descendant-or-self'\n      shift(113);                   // 'descendant-or-self'\n      lookahead1W(27);              // S^WS | '(:' | '::'\n      shift(52);                    // '::'\n      break;\n    case 138:                       // 'following-sibling'\n      shift(138);                   // 'following-sibling'\n      lookahead1W(27);              // S^WS | '(:' | '::'\n      shift(52);                    // '::'\n      break;\n    default:\n      shift(137);                   // 'following'\n      lookahead1W(27);              // S^WS | '(:' | '::'\n      shift(52);                    // '::'\n    }\n    eventHandler.endNonterminal(\"ForwardAxis\", e0);\n  }\n\n  function try_ForwardAxis()\n  {\n    switch (l1)\n    {\n    case 94:                        // 'child'\n      shiftT(94);                   // 'child'\n      lookahead1W(27);              // S^WS | '(:' | '::'\n      shiftT(52);                   // '::'\n      break;\n    case 112:                       // 'descendant'\n      shiftT(112);                  // 'descendant'\n      lookahead1W(27);              // S^WS | '(:' | '::'\n      shiftT(52);                   // '::'\n      break;\n    case 83:                        // 'attribute'\n      shiftT(83);                   // 'attribute'\n      lookahead1W(27);              // S^WS | '(:' | '::'\n      shiftT(52);                   // '::'\n      break;\n    case 234:                       // 'self'\n      shiftT(234);                  // 'self'\n      lookahead1W(27);              // S^WS | '(:' | '::'\n      shiftT(52);                   // '::'\n      break;\n    case 113:                       // 'descendant-or-self'\n      shiftT(113);                  // 'descendant-or-self'\n      lookahead1W(27);              // S^WS | '(:' | '::'\n      shiftT(52);                   // '::'\n      break;\n    case 138:                       // 'following-sibling'\n      shiftT(138);                  // 'following-sibling'\n      lookahead1W(27);              // S^WS | '(:' | '::'\n      shiftT(52);                   // '::'\n      break;\n    default:\n      shiftT(137);                  // 'following'\n      lookahead1W(27);              // S^WS | '(:' | '::'\n      shiftT(52);                   // '::'\n    }\n  }\n\n  function parse_AbbrevForwardStep()\n  {\n    eventHandler.startNonterminal(\"AbbrevForwardStep\", e0);\n    if (l1 == 67)                   // '@'\n    {\n      shift(67);                    // '@'\n    }\n    lookahead1W(249);               // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_NodeTest();\n    eventHandler.endNonterminal(\"AbbrevForwardStep\", e0);\n  }\n\n  function try_AbbrevForwardStep()\n  {\n    if (l1 == 67)                   // '@'\n    {\n      shiftT(67);                   // '@'\n    }\n    lookahead1W(249);               // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_NodeTest();\n  }\n\n  function parse_ReverseStep()\n  {\n    eventHandler.startNonterminal(\"ReverseStep\", e0);\n    switch (l1)\n    {\n    case 46:                        // '..'\n      parse_AbbrevReverseStep();\n      break;\n    default:\n      parse_ReverseAxis();\n      lookahead1W(249);             // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_NodeTest();\n    }\n    eventHandler.endNonterminal(\"ReverseStep\", e0);\n  }\n\n  function try_ReverseStep()\n  {\n    switch (l1)\n    {\n    case 46:                        // '..'\n      try_AbbrevReverseStep();\n      break;\n    default:\n      try_ReverseAxis();\n      lookahead1W(249);             // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_NodeTest();\n    }\n  }\n\n  function parse_ReverseAxis()\n  {\n    eventHandler.startNonterminal(\"ReverseAxis\", e0);\n    switch (l1)\n    {\n    case 210:                       // 'parent'\n      shift(210);                   // 'parent'\n      lookahead1W(27);              // S^WS | '(:' | '::'\n      shift(52);                    // '::'\n      break;\n    case 74:                        // 'ancestor'\n      shift(74);                    // 'ancestor'\n      lookahead1W(27);              // S^WS | '(:' | '::'\n      shift(52);                    // '::'\n      break;\n    case 217:                       // 'preceding-sibling'\n      shift(217);                   // 'preceding-sibling'\n      lookahead1W(27);              // S^WS | '(:' | '::'\n      shift(52);                    // '::'\n      break;\n    case 216:                       // 'preceding'\n      shift(216);                   // 'preceding'\n      lookahead1W(27);              // S^WS | '(:' | '::'\n      shift(52);                    // '::'\n      break;\n    default:\n      shift(75);                    // 'ancestor-or-self'\n      lookahead1W(27);              // S^WS | '(:' | '::'\n      shift(52);                    // '::'\n    }\n    eventHandler.endNonterminal(\"ReverseAxis\", e0);\n  }\n\n  function try_ReverseAxis()\n  {\n    switch (l1)\n    {\n    case 210:                       // 'parent'\n      shiftT(210);                  // 'parent'\n      lookahead1W(27);              // S^WS | '(:' | '::'\n      shiftT(52);                   // '::'\n      break;\n    case 74:                        // 'ancestor'\n      shiftT(74);                   // 'ancestor'\n      lookahead1W(27);              // S^WS | '(:' | '::'\n      shiftT(52);                   // '::'\n      break;\n    case 217:                       // 'preceding-sibling'\n      shiftT(217);                  // 'preceding-sibling'\n      lookahead1W(27);              // S^WS | '(:' | '::'\n      shiftT(52);                   // '::'\n      break;\n    case 216:                       // 'preceding'\n      shiftT(216);                  // 'preceding'\n      lookahead1W(27);              // S^WS | '(:' | '::'\n      shiftT(52);                   // '::'\n      break;\n    default:\n      shiftT(75);                   // 'ancestor-or-self'\n      lookahead1W(27);              // S^WS | '(:' | '::'\n      shiftT(52);                   // '::'\n    }\n  }\n\n  function parse_AbbrevReverseStep()\n  {\n    eventHandler.startNonterminal(\"AbbrevReverseStep\", e0);\n    shift(46);                      // '..'\n    eventHandler.endNonterminal(\"AbbrevReverseStep\", e0);\n  }\n\n  function try_AbbrevReverseStep()\n  {\n    shiftT(46);                     // '..'\n  }\n\n  function parse_NodeTest()\n  {\n    eventHandler.startNonterminal(\"NodeTest\", e0);\n    switch (l1)\n    {\n    case 83:                        // 'attribute'\n    case 97:                        // 'comment'\n    case 121:                       // 'document-node'\n    case 122:                       // 'element'\n    case 188:                       // 'namespace-node'\n    case 194:                       // 'node'\n    case 220:                       // 'processing-instruction'\n    case 230:                       // 'schema-attribute'\n    case 231:                       // 'schema-element'\n    case 249:                       // 'text'\n      lookahead2W(231);             // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 18003:                     // 'attribute' '('\n    case 18017:                     // 'comment' '('\n    case 18041:                     // 'document-node' '('\n    case 18042:                     // 'element' '('\n    case 18108:                     // 'namespace-node' '('\n    case 18114:                     // 'node' '('\n    case 18140:                     // 'processing-instruction' '('\n    case 18150:                     // 'schema-attribute' '('\n    case 18151:                     // 'schema-element' '('\n    case 18169:                     // 'text' '('\n      parse_KindTest();\n      break;\n    default:\n      parse_NameTest();\n    }\n    eventHandler.endNonterminal(\"NodeTest\", e0);\n  }\n\n  function try_NodeTest()\n  {\n    switch (l1)\n    {\n    case 83:                        // 'attribute'\n    case 97:                        // 'comment'\n    case 121:                       // 'document-node'\n    case 122:                       // 'element'\n    case 188:                       // 'namespace-node'\n    case 194:                       // 'node'\n    case 220:                       // 'processing-instruction'\n    case 230:                       // 'schema-attribute'\n    case 231:                       // 'schema-element'\n    case 249:                       // 'text'\n      lookahead2W(231);             // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 18003:                     // 'attribute' '('\n    case 18017:                     // 'comment' '('\n    case 18041:                     // 'document-node' '('\n    case 18042:                     // 'element' '('\n    case 18108:                     // 'namespace-node' '('\n    case 18114:                     // 'node' '('\n    case 18140:                     // 'processing-instruction' '('\n    case 18150:                     // 'schema-attribute' '('\n    case 18151:                     // 'schema-element' '('\n    case 18169:                     // 'text' '('\n      try_KindTest();\n      break;\n    default:\n      try_NameTest();\n    }\n  }\n\n  function parse_NameTest()\n  {\n    eventHandler.startNonterminal(\"NameTest\", e0);\n    switch (l1)\n    {\n    case 5:                         // Wildcard\n      shift(5);                     // Wildcard\n      break;\n    default:\n      parse_EQName();\n    }\n    eventHandler.endNonterminal(\"NameTest\", e0);\n  }\n\n  function try_NameTest()\n  {\n    switch (l1)\n    {\n    case 5:                         // Wildcard\n      shiftT(5);                    // Wildcard\n      break;\n    default:\n      try_EQName();\n    }\n  }\n\n  function parse_PostfixExpr()\n  {\n    eventHandler.startNonterminal(\"PostfixExpr\", e0);\n    parse_PrimaryExpr();\n    for (;;)\n    {\n      lookahead1W(235);             // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '.' | '/' |\n      if (l1 != 35                  // '('\n       && l1 != 45                  // '.'\n       && l1 != 69)                 // '['\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 69:                      // '['\n        lookahead2W(273);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk == 35397)              // '[' '['\n      {\n        lk = memoized(5, e0);\n        if (lk == 0)\n        {\n          var b0A = b0; var e0A = e0; var l1A = l1;\n          var b1A = b1; var e1A = e1; var l2A = l2;\n          var b2A = b2; var e2A = e2;\n          try\n          {\n            try_Predicate();\n            lk = -1;\n          }\n          catch (p1A)\n          {\n            lk = -4;\n          }\n          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n          b2 = b2A; e2 = e2A; end = e2A; }}\n          memoize(5, e0, lk);\n        }\n      }\n      switch (lk)\n      {\n      case 35:                      // '('\n        whitespace();\n        parse_ArgumentList();\n        break;\n      case 45:                      // '.'\n        whitespace();\n        parse_ObjectLookup();\n        break;\n      case -4:\n        whitespace();\n        parse_ArrayLookup();\n        break;\n      case 35909:                   // '[' ']'\n        whitespace();\n        parse_ArrayUnboxing();\n        break;\n      default:\n        whitespace();\n        parse_Predicate();\n      }\n    }\n    eventHandler.endNonterminal(\"PostfixExpr\", e0);\n  }\n\n  function try_PostfixExpr()\n  {\n    try_PrimaryExpr();\n    for (;;)\n    {\n      lookahead1W(235);             // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '.' | '/' |\n      if (l1 != 35                  // '('\n       && l1 != 45                  // '.'\n       && l1 != 69)                 // '['\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 69:                      // '['\n        lookahead2W(273);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk == 35397)              // '[' '['\n      {\n        lk = memoized(5, e0);\n        if (lk == 0)\n        {\n          var b0A = b0; var e0A = e0; var l1A = l1;\n          var b1A = b1; var e1A = e1; var l2A = l2;\n          var b2A = b2; var e2A = e2;\n          try\n          {\n            try_Predicate();\n            memoize(5, e0A, -1);\n            lk = -6;\n          }\n          catch (p1A)\n          {\n            lk = -4;\n            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n            b2 = b2A; e2 = e2A; end = e2A; }}\n            memoize(5, e0A, -4);\n          }\n        }\n      }\n      switch (lk)\n      {\n      case 35:                      // '('\n        try_ArgumentList();\n        break;\n      case 45:                      // '.'\n        try_ObjectLookup();\n        break;\n      case -4:\n        try_ArrayLookup();\n        break;\n      case 35909:                   // '[' ']'\n        try_ArrayUnboxing();\n        break;\n      case -6:\n        break;\n      default:\n        try_Predicate();\n      }\n    }\n  }\n\n  function parse_ObjectLookup()\n  {\n    eventHandler.startNonterminal(\"ObjectLookup\", e0);\n    shift(45);                      // '.'\n    lookahead1W(251);               // StringLiteral | NCName^Token | S^WS | '$' | '$$' | '(' | '(:' | 'after' |\n    switch (l1)\n    {\n    case 11:                        // StringLiteral\n      shift(11);                    // StringLiteral\n      break;\n    case 35:                        // '('\n      whitespace();\n      parse_ParenthesizedExpr();\n      break;\n    case 31:                        // '$'\n      whitespace();\n      parse_VarRef();\n      break;\n    case 32:                        // '$$'\n      whitespace();\n      parse_ContextItemExpr();\n      break;\n    default:\n      whitespace();\n      parse_NCName();\n    }\n    eventHandler.endNonterminal(\"ObjectLookup\", e0);\n  }\n\n  function try_ObjectLookup()\n  {\n    shiftT(45);                     // '.'\n    lookahead1W(251);               // StringLiteral | NCName^Token | S^WS | '$' | '$$' | '(' | '(:' | 'after' |\n    switch (l1)\n    {\n    case 11:                        // StringLiteral\n      shiftT(11);                   // StringLiteral\n      break;\n    case 35:                        // '('\n      try_ParenthesizedExpr();\n      break;\n    case 31:                        // '$'\n      try_VarRef();\n      break;\n    case 32:                        // '$$'\n      try_ContextItemExpr();\n      break;\n    default:\n      try_NCName();\n    }\n  }\n\n  function parse_ArrayLookup()\n  {\n    eventHandler.startNonterminal(\"ArrayLookup\", e0);\n    shift(69);                      // '['\n    lookahead1W(31);                // S^WS | '(:' | '['\n    shift(69);                      // '['\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Expr();\n    shift(70);                      // ']'\n    lookahead1W(32);                // S^WS | '(:' | ']'\n    shift(70);                      // ']'\n    eventHandler.endNonterminal(\"ArrayLookup\", e0);\n  }\n\n  function try_ArrayLookup()\n  {\n    shiftT(69);                     // '['\n    lookahead1W(31);                // S^WS | '(:' | '['\n    shiftT(69);                     // '['\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Expr();\n    shiftT(70);                     // ']'\n    lookahead1W(32);                // S^WS | '(:' | ']'\n    shiftT(70);                     // ']'\n  }\n\n  function parse_ArrayUnboxing()\n  {\n    eventHandler.startNonterminal(\"ArrayUnboxing\", e0);\n    shift(69);                      // '['\n    lookahead1W(32);                // S^WS | '(:' | ']'\n    shift(70);                      // ']'\n    eventHandler.endNonterminal(\"ArrayUnboxing\", e0);\n  }\n\n  function try_ArrayUnboxing()\n  {\n    shiftT(69);                     // '['\n    lookahead1W(32);                // S^WS | '(:' | ']'\n    shiftT(70);                     // ']'\n  }\n\n  function parse_ArgumentList()\n  {\n    eventHandler.startNonterminal(\"ArgumentList\", e0);\n    shift(35);                      // '('\n    lookahead1W(280);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    if (l1 != 38)                   // ')'\n    {\n      whitespace();\n      parse_Argument();\n      for (;;)\n      {\n        lookahead1W(105);           // S^WS | '(:' | ')' | ','\n        if (l1 != 42)               // ','\n        {\n          break;\n        }\n        shift(42);                  // ','\n        lookahead1W(272);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        whitespace();\n        parse_Argument();\n      }\n    }\n    shift(38);                      // ')'\n    eventHandler.endNonterminal(\"ArgumentList\", e0);\n  }\n\n  function try_ArgumentList()\n  {\n    shiftT(35);                     // '('\n    lookahead1W(280);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    if (l1 != 38)                   // ')'\n    {\n      try_Argument();\n      for (;;)\n      {\n        lookahead1W(105);           // S^WS | '(:' | ')' | ','\n        if (l1 != 42)               // ','\n        {\n          break;\n        }\n        shiftT(42);                 // ','\n        lookahead1W(272);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        try_Argument();\n      }\n    }\n    shiftT(38);                     // ')'\n  }\n\n  function parse_PredicateList()\n  {\n    eventHandler.startNonterminal(\"PredicateList\", e0);\n    for (;;)\n    {\n      lookahead1W(228);             // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |\n      if (l1 != 69)                 // '['\n      {\n        break;\n      }\n      whitespace();\n      parse_Predicate();\n    }\n    eventHandler.endNonterminal(\"PredicateList\", e0);\n  }\n\n  function try_PredicateList()\n  {\n    for (;;)\n    {\n      lookahead1W(228);             // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |\n      if (l1 != 69)                 // '['\n      {\n        break;\n      }\n      try_Predicate();\n    }\n  }\n\n  function parse_Predicate()\n  {\n    eventHandler.startNonterminal(\"Predicate\", e0);\n    shift(69);                      // '['\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Expr();\n    shift(70);                      // ']'\n    eventHandler.endNonterminal(\"Predicate\", e0);\n  }\n\n  function try_Predicate()\n  {\n    shiftT(69);                     // '['\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Expr();\n    shiftT(70);                     // ']'\n  }\n\n  function parse_Literal()\n  {\n    eventHandler.startNonterminal(\"Literal\", e0);\n    switch (l1)\n    {\n    case 11:                        // StringLiteral\n      shift(11);                    // StringLiteral\n      break;\n    case 135:                       // 'false'\n    case 255:                       // 'true'\n      parse_BooleanLiteral();\n      break;\n    case 197:                       // 'null'\n      parse_NullLiteral();\n      break;\n    default:\n      parse_NumericLiteral();\n    }\n    eventHandler.endNonterminal(\"Literal\", e0);\n  }\n\n  function try_Literal()\n  {\n    switch (l1)\n    {\n    case 11:                        // StringLiteral\n      shiftT(11);                   // StringLiteral\n      break;\n    case 135:                       // 'false'\n    case 255:                       // 'true'\n      try_BooleanLiteral();\n      break;\n    case 197:                       // 'null'\n      try_NullLiteral();\n      break;\n    default:\n      try_NumericLiteral();\n    }\n  }\n\n  function parse_BooleanLiteral()\n  {\n    eventHandler.startNonterminal(\"BooleanLiteral\", e0);\n    switch (l1)\n    {\n    case 255:                       // 'true'\n      shift(255);                   // 'true'\n      break;\n    default:\n      shift(135);                   // 'false'\n    }\n    eventHandler.endNonterminal(\"BooleanLiteral\", e0);\n  }\n\n  function try_BooleanLiteral()\n  {\n    switch (l1)\n    {\n    case 255:                       // 'true'\n      shiftT(255);                  // 'true'\n      break;\n    default:\n      shiftT(135);                  // 'false'\n    }\n  }\n\n  function parse_NullLiteral()\n  {\n    eventHandler.startNonterminal(\"NullLiteral\", e0);\n    shift(197);                     // 'null'\n    eventHandler.endNonterminal(\"NullLiteral\", e0);\n  }\n\n  function try_NullLiteral()\n  {\n    shiftT(197);                    // 'null'\n  }\n\n  function parse_NumericLiteral()\n  {\n    eventHandler.startNonterminal(\"NumericLiteral\", e0);\n    switch (l1)\n    {\n    case 8:                         // IntegerLiteral\n      shift(8);                     // IntegerLiteral\n      break;\n    case 9:                         // DecimalLiteral\n      shift(9);                     // DecimalLiteral\n      break;\n    default:\n      shift(10);                    // DoubleLiteral\n    }\n    eventHandler.endNonterminal(\"NumericLiteral\", e0);\n  }\n\n  function try_NumericLiteral()\n  {\n    switch (l1)\n    {\n    case 8:                         // IntegerLiteral\n      shiftT(8);                    // IntegerLiteral\n      break;\n    case 9:                         // DecimalLiteral\n      shiftT(9);                    // DecimalLiteral\n      break;\n    default:\n      shiftT(10);                   // DoubleLiteral\n    }\n  }\n\n  function parse_VarRef()\n  {\n    eventHandler.startNonterminal(\"VarRef\", e0);\n    shift(31);                      // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    eventHandler.endNonterminal(\"VarRef\", e0);\n  }\n\n  function try_VarRef()\n  {\n    shiftT(31);                     // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_VarName();\n  }\n\n  function parse_VarName()\n  {\n    eventHandler.startNonterminal(\"VarName\", e0);\n    parse_EQName();\n    eventHandler.endNonterminal(\"VarName\", e0);\n  }\n\n  function try_VarName()\n  {\n    try_EQName();\n  }\n\n  function parse_ParenthesizedExpr()\n  {\n    eventHandler.startNonterminal(\"ParenthesizedExpr\", e0);\n    shift(35);                      // '('\n    lookahead1W(270);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    if (l1 != 38)                   // ')'\n    {\n      whitespace();\n      parse_Expr();\n    }\n    shift(38);                      // ')'\n    eventHandler.endNonterminal(\"ParenthesizedExpr\", e0);\n  }\n\n  function try_ParenthesizedExpr()\n  {\n    shiftT(35);                     // '('\n    lookahead1W(270);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    if (l1 != 38)                   // ')'\n    {\n      try_Expr();\n    }\n    shiftT(38);                     // ')'\n  }\n\n  function parse_ContextItemExpr()\n  {\n    eventHandler.startNonterminal(\"ContextItemExpr\", e0);\n    shift(32);                      // '$$'\n    eventHandler.endNonterminal(\"ContextItemExpr\", e0);\n  }\n\n  function try_ContextItemExpr()\n  {\n    shiftT(32);                     // '$$'\n  }\n\n  function parse_OrderedExpr()\n  {\n    eventHandler.startNonterminal(\"OrderedExpr\", e0);\n    shift(206);                     // 'ordered'\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    shift(281);                     // '{'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Expr();\n    shift(287);                     // '}'\n    eventHandler.endNonterminal(\"OrderedExpr\", e0);\n  }\n\n  function try_OrderedExpr()\n  {\n    shiftT(206);                    // 'ordered'\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    shiftT(281);                    // '{'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Expr();\n    shiftT(287);                    // '}'\n  }\n\n  function parse_UnorderedExpr()\n  {\n    eventHandler.startNonterminal(\"UnorderedExpr\", e0);\n    shift(262);                     // 'unordered'\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    shift(281);                     // '{'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Expr();\n    shift(287);                     // '}'\n    eventHandler.endNonterminal(\"UnorderedExpr\", e0);\n  }\n\n  function try_UnorderedExpr()\n  {\n    shiftT(262);                    // 'unordered'\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    shiftT(281);                    // '{'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Expr();\n    shiftT(287);                    // '}'\n  }\n\n  function parse_FunctionCall()\n  {\n    eventHandler.startNonterminal(\"FunctionCall\", e0);\n    parse_FunctionName();\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    whitespace();\n    parse_ArgumentList();\n    eventHandler.endNonterminal(\"FunctionCall\", e0);\n  }\n\n  function try_FunctionCall()\n  {\n    try_FunctionName();\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    try_ArgumentList();\n  }\n\n  function parse_Argument()\n  {\n    eventHandler.startNonterminal(\"Argument\", e0);\n    switch (l1)\n    {\n    case 65:                        // '?'\n      parse_ArgumentPlaceholder();\n      break;\n    default:\n      parse_ExprSingle();\n    }\n    eventHandler.endNonterminal(\"Argument\", e0);\n  }\n\n  function try_Argument()\n  {\n    switch (l1)\n    {\n    case 65:                        // '?'\n      try_ArgumentPlaceholder();\n      break;\n    default:\n      try_ExprSingle();\n    }\n  }\n\n  function parse_ArgumentPlaceholder()\n  {\n    eventHandler.startNonterminal(\"ArgumentPlaceholder\", e0);\n    shift(65);                      // '?'\n    eventHandler.endNonterminal(\"ArgumentPlaceholder\", e0);\n  }\n\n  function try_ArgumentPlaceholder()\n  {\n    shiftT(65);                     // '?'\n  }\n\n  function parse_Constructor()\n  {\n    eventHandler.startNonterminal(\"Constructor\", e0);\n    switch (l1)\n    {\n    case 55:                        // '<'\n    case 56:                        // '<!--'\n    case 60:                        // '<?'\n      parse_DirectConstructor();\n      break;\n    default:\n      parse_ComputedConstructor();\n    }\n    eventHandler.endNonterminal(\"Constructor\", e0);\n  }\n\n  function try_Constructor()\n  {\n    switch (l1)\n    {\n    case 55:                        // '<'\n    case 56:                        // '<!--'\n    case 60:                        // '<?'\n      try_DirectConstructor();\n      break;\n    default:\n      try_ComputedConstructor();\n    }\n  }\n\n  function parse_DirectConstructor()\n  {\n    eventHandler.startNonterminal(\"DirectConstructor\", e0);\n    switch (l1)\n    {\n    case 55:                        // '<'\n      parse_DirElemConstructor();\n      break;\n    case 56:                        // '<!--'\n      parse_DirCommentConstructor();\n      break;\n    default:\n      parse_DirPIConstructor();\n    }\n    eventHandler.endNonterminal(\"DirectConstructor\", e0);\n  }\n\n  function try_DirectConstructor()\n  {\n    switch (l1)\n    {\n    case 55:                        // '<'\n      try_DirElemConstructor();\n      break;\n    case 56:                        // '<!--'\n      try_DirCommentConstructor();\n      break;\n    default:\n      try_DirPIConstructor();\n    }\n  }\n\n  function parse_DirElemConstructor()\n  {\n    eventHandler.startNonterminal(\"DirElemConstructor\", e0);\n    shift(55);                      // '<'\n    lookahead1(4);                  // QName\n    shift(20);                      // QName\n    parse_DirAttributeList();\n    switch (l1)\n    {\n    case 49:                        // '/>'\n      shift(49);                    // '/>'\n      break;\n    default:\n      shift(62);                    // '>'\n      for (;;)\n      {\n        lookahead1(196);            // CDataSection | PredefinedEntityRef | ElementContentChar | CharRef | '<' |\n        if (l1 == 57)               // '</'\n        {\n          break;\n        }\n        parse_DirElemContent();\n      }\n      shift(57);                    // '</'\n      lookahead1(4);                // QName\n      shift(20);                    // QName\n      lookahead1(12);               // S | '>'\n      if (l1 == 21)                 // S\n      {\n        shift(21);                  // S\n      }\n      lookahead1(8);                // '>'\n      shift(62);                    // '>'\n    }\n    eventHandler.endNonterminal(\"DirElemConstructor\", e0);\n  }\n\n  function try_DirElemConstructor()\n  {\n    shiftT(55);                     // '<'\n    lookahead1(4);                  // QName\n    shiftT(20);                     // QName\n    try_DirAttributeList();\n    switch (l1)\n    {\n    case 49:                        // '/>'\n      shiftT(49);                   // '/>'\n      break;\n    default:\n      shiftT(62);                   // '>'\n      for (;;)\n      {\n        lookahead1(196);            // CDataSection | PredefinedEntityRef | ElementContentChar | CharRef | '<' |\n        if (l1 == 57)               // '</'\n        {\n          break;\n        }\n        try_DirElemContent();\n      }\n      shiftT(57);                   // '</'\n      lookahead1(4);                // QName\n      shiftT(20);                   // QName\n      lookahead1(12);               // S | '>'\n      if (l1 == 21)                 // S\n      {\n        shiftT(21);                 // S\n      }\n      lookahead1(8);                // '>'\n      shiftT(62);                   // '>'\n    }\n  }\n\n  function parse_DirAttributeList()\n  {\n    eventHandler.startNonterminal(\"DirAttributeList\", e0);\n    for (;;)\n    {\n      lookahead1(19);               // S | '/>' | '>'\n      if (l1 != 21)                 // S\n      {\n        break;\n      }\n      shift(21);                    // S\n      lookahead1(94);               // QName | S | '/>' | '>'\n      if (l1 == 20)                 // QName\n      {\n        shift(20);                  // QName\n        lookahead1(11);             // S | '='\n        if (l1 == 21)               // S\n        {\n          shift(21);                // S\n        }\n        lookahead1(7);              // '='\n        shift(61);                  // '='\n        lookahead1(18);             // S | '\"' | \"'\"\n        if (l1 == 21)               // S\n        {\n          shift(21);                // S\n        }\n        parse_DirAttributeValue();\n      }\n    }\n    eventHandler.endNonterminal(\"DirAttributeList\", e0);\n  }\n\n  function try_DirAttributeList()\n  {\n    for (;;)\n    {\n      lookahead1(19);               // S | '/>' | '>'\n      if (l1 != 21)                 // S\n      {\n        break;\n      }\n      shiftT(21);                   // S\n      lookahead1(94);               // QName | S | '/>' | '>'\n      if (l1 == 20)                 // QName\n      {\n        shiftT(20);                 // QName\n        lookahead1(11);             // S | '='\n        if (l1 == 21)               // S\n        {\n          shiftT(21);               // S\n        }\n        lookahead1(7);              // '='\n        shiftT(61);                 // '='\n        lookahead1(18);             // S | '\"' | \"'\"\n        if (l1 == 21)               // S\n        {\n          shiftT(21);               // S\n        }\n        try_DirAttributeValue();\n      }\n    }\n  }\n\n  function parse_DirAttributeValue()\n  {\n    eventHandler.startNonterminal(\"DirAttributeValue\", e0);\n    lookahead1(14);                 // '\"' | \"'\"\n    switch (l1)\n    {\n    case 28:                        // '\"'\n      shift(28);                    // '\"'\n      for (;;)\n      {\n        lookahead1(185);            // PredefinedEntityRef | EscapeQuot | QuotAttrContentChar | CharRef | '\"' | '{' |\n        if (l1 == 28)               // '\"'\n        {\n          break;\n        }\n        switch (l1)\n        {\n        case 13:                    // EscapeQuot\n          shift(13);                // EscapeQuot\n          break;\n        default:\n          parse_QuotAttrValueContent();\n        }\n      }\n      shift(28);                    // '\"'\n      break;\n    default:\n      shift(34);                    // \"'\"\n      for (;;)\n      {\n        lookahead1(186);            // PredefinedEntityRef | EscapeApos | AposAttrContentChar | CharRef | \"'\" | '{' |\n        if (l1 == 34)               // \"'\"\n        {\n          break;\n        }\n        switch (l1)\n        {\n        case 14:                    // EscapeApos\n          shift(14);                // EscapeApos\n          break;\n        default:\n          parse_AposAttrValueContent();\n        }\n      }\n      shift(34);                    // \"'\"\n    }\n    eventHandler.endNonterminal(\"DirAttributeValue\", e0);\n  }\n\n  function try_DirAttributeValue()\n  {\n    lookahead1(14);                 // '\"' | \"'\"\n    switch (l1)\n    {\n    case 28:                        // '\"'\n      shiftT(28);                   // '\"'\n      for (;;)\n      {\n        lookahead1(185);            // PredefinedEntityRef | EscapeQuot | QuotAttrContentChar | CharRef | '\"' | '{' |\n        if (l1 == 28)               // '\"'\n        {\n          break;\n        }\n        switch (l1)\n        {\n        case 13:                    // EscapeQuot\n          shiftT(13);               // EscapeQuot\n          break;\n        default:\n          try_QuotAttrValueContent();\n        }\n      }\n      shiftT(28);                   // '\"'\n      break;\n    default:\n      shiftT(34);                   // \"'\"\n      for (;;)\n      {\n        lookahead1(186);            // PredefinedEntityRef | EscapeApos | AposAttrContentChar | CharRef | \"'\" | '{' |\n        if (l1 == 34)               // \"'\"\n        {\n          break;\n        }\n        switch (l1)\n        {\n        case 14:                    // EscapeApos\n          shiftT(14);               // EscapeApos\n          break;\n        default:\n          try_AposAttrValueContent();\n        }\n      }\n      shiftT(34);                   // \"'\"\n    }\n  }\n\n  function parse_QuotAttrValueContent()\n  {\n    eventHandler.startNonterminal(\"QuotAttrValueContent\", e0);\n    switch (l1)\n    {\n    case 16:                        // QuotAttrContentChar\n      shift(16);                    // QuotAttrContentChar\n      break;\n    default:\n      parse_CommonContent();\n    }\n    eventHandler.endNonterminal(\"QuotAttrValueContent\", e0);\n  }\n\n  function try_QuotAttrValueContent()\n  {\n    switch (l1)\n    {\n    case 16:                        // QuotAttrContentChar\n      shiftT(16);                   // QuotAttrContentChar\n      break;\n    default:\n      try_CommonContent();\n    }\n  }\n\n  function parse_AposAttrValueContent()\n  {\n    eventHandler.startNonterminal(\"AposAttrValueContent\", e0);\n    switch (l1)\n    {\n    case 17:                        // AposAttrContentChar\n      shift(17);                    // AposAttrContentChar\n      break;\n    default:\n      parse_CommonContent();\n    }\n    eventHandler.endNonterminal(\"AposAttrValueContent\", e0);\n  }\n\n  function try_AposAttrValueContent()\n  {\n    switch (l1)\n    {\n    case 17:                        // AposAttrContentChar\n      shiftT(17);                   // AposAttrContentChar\n      break;\n    default:\n      try_CommonContent();\n    }\n  }\n\n  function parse_DirElemContent()\n  {\n    eventHandler.startNonterminal(\"DirElemContent\", e0);\n    switch (l1)\n    {\n    case 55:                        // '<'\n    case 56:                        // '<!--'\n    case 60:                        // '<?'\n      parse_DirectConstructor();\n      break;\n    case 4:                         // CDataSection\n      shift(4);                     // CDataSection\n      break;\n    case 15:                        // ElementContentChar\n      shift(15);                    // ElementContentChar\n      break;\n    default:\n      parse_CommonContent();\n    }\n    eventHandler.endNonterminal(\"DirElemContent\", e0);\n  }\n\n  function try_DirElemContent()\n  {\n    switch (l1)\n    {\n    case 55:                        // '<'\n    case 56:                        // '<!--'\n    case 60:                        // '<?'\n      try_DirectConstructor();\n      break;\n    case 4:                         // CDataSection\n      shiftT(4);                    // CDataSection\n      break;\n    case 15:                        // ElementContentChar\n      shiftT(15);                   // ElementContentChar\n      break;\n    default:\n      try_CommonContent();\n    }\n  }\n\n  function parse_DirCommentConstructor()\n  {\n    eventHandler.startNonterminal(\"DirCommentConstructor\", e0);\n    shift(56);                      // '<!--'\n    lookahead1(1);                  // DirCommentContents\n    shift(2);                       // DirCommentContents\n    lookahead1(6);                  // '-->'\n    shift(44);                      // '-->'\n    eventHandler.endNonterminal(\"DirCommentConstructor\", e0);\n  }\n\n  function try_DirCommentConstructor()\n  {\n    shiftT(56);                     // '<!--'\n    lookahead1(1);                  // DirCommentContents\n    shiftT(2);                      // DirCommentContents\n    lookahead1(6);                  // '-->'\n    shiftT(44);                     // '-->'\n  }\n\n  function parse_DirPIConstructor()\n  {\n    eventHandler.startNonterminal(\"DirPIConstructor\", e0);\n    shift(60);                      // '<?'\n    lookahead1(3);                  // PITarget\n    shift(18);                      // PITarget\n    lookahead1(13);                 // S | '?>'\n    if (l1 == 21)                   // S\n    {\n      shift(21);                    // S\n      lookahead1(2);                // DirPIContents\n      shift(3);                     // DirPIContents\n    }\n    lookahead1(9);                  // '?>'\n    shift(66);                      // '?>'\n    eventHandler.endNonterminal(\"DirPIConstructor\", e0);\n  }\n\n  function try_DirPIConstructor()\n  {\n    shiftT(60);                     // '<?'\n    lookahead1(3);                  // PITarget\n    shiftT(18);                     // PITarget\n    lookahead1(13);                 // S | '?>'\n    if (l1 == 21)                   // S\n    {\n      shiftT(21);                   // S\n      lookahead1(2);                // DirPIContents\n      shiftT(3);                    // DirPIContents\n    }\n    lookahead1(9);                  // '?>'\n    shiftT(66);                     // '?>'\n  }\n\n  function parse_ComputedConstructor()\n  {\n    eventHandler.startNonterminal(\"ComputedConstructor\", e0);\n    switch (l1)\n    {\n    case 120:                       // 'document'\n      parse_CompDocConstructor();\n      break;\n    case 122:                       // 'element'\n      parse_CompElemConstructor();\n      break;\n    case 83:                        // 'attribute'\n      parse_CompAttrConstructor();\n      break;\n    case 187:                       // 'namespace'\n      parse_CompNamespaceConstructor();\n      break;\n    case 249:                       // 'text'\n      parse_CompTextConstructor();\n      break;\n    case 97:                        // 'comment'\n      parse_CompCommentConstructor();\n      break;\n    default:\n      parse_CompPIConstructor();\n    }\n    eventHandler.endNonterminal(\"ComputedConstructor\", e0);\n  }\n\n  function try_ComputedConstructor()\n  {\n    switch (l1)\n    {\n    case 120:                       // 'document'\n      try_CompDocConstructor();\n      break;\n    case 122:                       // 'element'\n      try_CompElemConstructor();\n      break;\n    case 83:                        // 'attribute'\n      try_CompAttrConstructor();\n      break;\n    case 187:                       // 'namespace'\n      try_CompNamespaceConstructor();\n      break;\n    case 249:                       // 'text'\n      try_CompTextConstructor();\n      break;\n    case 97:                        // 'comment'\n      try_CompCommentConstructor();\n      break;\n    default:\n      try_CompPIConstructor();\n    }\n  }\n\n  function parse_CompElemConstructor()\n  {\n    eventHandler.startNonterminal(\"CompElemConstructor\", e0);\n    shift(122);                     // 'element'\n    lookahead1W(250);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    switch (l1)\n    {\n    case 281:                       // '{'\n      shift(281);                   // '{'\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_Expr();\n      shift(287);                   // '}'\n      break;\n    default:\n      whitespace();\n      parse_EQName();\n    }\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    shift(281);                     // '{'\n    lookahead1W(281);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    if (l1 != 287)                  // '}'\n    {\n      whitespace();\n      parse_ContentExpr();\n    }\n    shift(287);                     // '}'\n    eventHandler.endNonterminal(\"CompElemConstructor\", e0);\n  }\n\n  function try_CompElemConstructor()\n  {\n    shiftT(122);                    // 'element'\n    lookahead1W(250);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    switch (l1)\n    {\n    case 281:                       // '{'\n      shiftT(281);                  // '{'\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_Expr();\n      shiftT(287);                  // '}'\n      break;\n    default:\n      try_EQName();\n    }\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    shiftT(281);                    // '{'\n    lookahead1W(281);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    if (l1 != 287)                  // '}'\n    {\n      try_ContentExpr();\n    }\n    shiftT(287);                    // '}'\n  }\n\n  function parse_CompNamespaceConstructor()\n  {\n    eventHandler.startNonterminal(\"CompNamespaceConstructor\", e0);\n    shift(187);                     // 'namespace'\n    lookahead1W(242);               // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    switch (l1)\n    {\n    case 281:                       // '{'\n      shift(281);                   // '{'\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_PrefixExpr();\n      shift(287);                   // '}'\n      break;\n    default:\n      whitespace();\n      parse_Prefix();\n    }\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    shift(281);                     // '{'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_URIExpr();\n    shift(287);                     // '}'\n    eventHandler.endNonterminal(\"CompNamespaceConstructor\", e0);\n  }\n\n  function try_CompNamespaceConstructor()\n  {\n    shiftT(187);                    // 'namespace'\n    lookahead1W(242);               // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    switch (l1)\n    {\n    case 281:                       // '{'\n      shiftT(281);                  // '{'\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_PrefixExpr();\n      shiftT(287);                  // '}'\n      break;\n    default:\n      try_Prefix();\n    }\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    shiftT(281);                    // '{'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_URIExpr();\n    shiftT(287);                    // '}'\n  }\n\n  function parse_Prefix()\n  {\n    eventHandler.startNonterminal(\"Prefix\", e0);\n    parse_NCName();\n    eventHandler.endNonterminal(\"Prefix\", e0);\n  }\n\n  function try_Prefix()\n  {\n    try_NCName();\n  }\n\n  function parse_PrefixExpr()\n  {\n    eventHandler.startNonterminal(\"PrefixExpr\", e0);\n    parse_Expr();\n    eventHandler.endNonterminal(\"PrefixExpr\", e0);\n  }\n\n  function try_PrefixExpr()\n  {\n    try_Expr();\n  }\n\n  function parse_URIExpr()\n  {\n    eventHandler.startNonterminal(\"URIExpr\", e0);\n    parse_Expr();\n    eventHandler.endNonterminal(\"URIExpr\", e0);\n  }\n\n  function try_URIExpr()\n  {\n    try_Expr();\n  }\n\n  function parse_FunctionItemExpr()\n  {\n    eventHandler.startNonterminal(\"FunctionItemExpr\", e0);\n    switch (l1)\n    {\n    case 147:                       // 'function'\n      lookahead2W(95);              // S^WS | '#' | '(' | '(:'\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 33:                        // '%'\n    case 18067:                     // 'function' '('\n      parse_InlineFunctionExpr();\n      break;\n    default:\n      parse_NamedFunctionRef();\n    }\n    eventHandler.endNonterminal(\"FunctionItemExpr\", e0);\n  }\n\n  function try_FunctionItemExpr()\n  {\n    switch (l1)\n    {\n    case 147:                       // 'function'\n      lookahead2W(95);              // S^WS | '#' | '(' | '(:'\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 33:                        // '%'\n    case 18067:                     // 'function' '('\n      try_InlineFunctionExpr();\n      break;\n    default:\n      try_NamedFunctionRef();\n    }\n  }\n\n  function parse_NamedFunctionRef()\n  {\n    eventHandler.startNonterminal(\"NamedFunctionRef\", e0);\n    parse_EQName();\n    lookahead1W(20);                // S^WS | '#' | '(:'\n    shift(29);                      // '#'\n    lookahead1W(16);                // IntegerLiteral | S^WS | '(:'\n    shift(8);                       // IntegerLiteral\n    eventHandler.endNonterminal(\"NamedFunctionRef\", e0);\n  }\n\n  function try_NamedFunctionRef()\n  {\n    try_EQName();\n    lookahead1W(20);                // S^WS | '#' | '(:'\n    shiftT(29);                     // '#'\n    lookahead1W(16);                // IntegerLiteral | S^WS | '(:'\n    shiftT(8);                      // IntegerLiteral\n  }\n\n  function parse_InlineFunctionExpr()\n  {\n    eventHandler.startNonterminal(\"InlineFunctionExpr\", e0);\n    for (;;)\n    {\n      lookahead1W(101);             // S^WS | '%' | '(:' | 'function'\n      if (l1 != 33)                 // '%'\n      {\n        break;\n      }\n      whitespace();\n      parse_Annotation();\n    }\n    shift(147);                     // 'function'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(35);                      // '('\n    lookahead1W(98);                // S^WS | '$' | '(:' | ')'\n    if (l1 == 31)                   // '$'\n    {\n      whitespace();\n      parse_ParamList();\n    }\n    shift(38);                      // ')'\n    lookahead1W(115);               // S^WS | '(:' | 'as' | '{'\n    if (l1 == 80)                   // 'as'\n    {\n      shift(80);                    // 'as'\n      lookahead1W(254);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_SequenceType();\n    }\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    whitespace();\n    parse_FunctionBody();\n    eventHandler.endNonterminal(\"InlineFunctionExpr\", e0);\n  }\n\n  function try_InlineFunctionExpr()\n  {\n    for (;;)\n    {\n      lookahead1W(101);             // S^WS | '%' | '(:' | 'function'\n      if (l1 != 33)                 // '%'\n      {\n        break;\n      }\n      try_Annotation();\n    }\n    shiftT(147);                    // 'function'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(35);                     // '('\n    lookahead1W(98);                // S^WS | '$' | '(:' | ')'\n    if (l1 == 31)                   // '$'\n    {\n      try_ParamList();\n    }\n    shiftT(38);                     // ')'\n    lookahead1W(115);               // S^WS | '(:' | 'as' | '{'\n    if (l1 == 80)                   // 'as'\n    {\n      shiftT(80);                   // 'as'\n      lookahead1W(254);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_SequenceType();\n    }\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    try_FunctionBody();\n  }\n\n  function parse_SingleType()\n  {\n    eventHandler.startNonterminal(\"SingleType\", e0);\n    parse_SimpleTypeName();\n    lookahead1W(226);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |\n    if (l1 == 65)                   // '?'\n    {\n      shift(65);                    // '?'\n    }\n    eventHandler.endNonterminal(\"SingleType\", e0);\n  }\n\n  function try_SingleType()\n  {\n    try_SimpleTypeName();\n    lookahead1W(226);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |\n    if (l1 == 65)                   // '?'\n    {\n      shiftT(65);                   // '?'\n    }\n  }\n\n  function parse_TypeDeclaration()\n  {\n    eventHandler.startNonterminal(\"TypeDeclaration\", e0);\n    shift(80);                      // 'as'\n    lookahead1W(254);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_SequenceType();\n    eventHandler.endNonterminal(\"TypeDeclaration\", e0);\n  }\n\n  function try_TypeDeclaration()\n  {\n    shiftT(80);                     // 'as'\n    lookahead1W(254);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_SequenceType();\n  }\n\n  function parse_SequenceType()\n  {\n    eventHandler.startNonterminal(\"SequenceType\", e0);\n    switch (l1)\n    {\n    case 35:                        // '('\n      lookahead2W(259);             // EQName^Token | S^WS | '%' | '(' | '(:' | ')' | 'after' | 'allowing' |\n      break;\n    case 125:                       // 'empty-sequence'\n      lookahead2W(233);             // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' |\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 18045:                     // 'empty-sequence' '('\n    case 19491:                     // '(' ')'\n      if (l1 == 125)                // 'empty-sequence'\n      {\n        shift(125);                 // 'empty-sequence'\n      }\n      lookahead1W(22);              // S^WS | '(' | '(:'\n      shift(35);                    // '('\n      lookahead1W(23);              // S^WS | '(:' | ')'\n      shift(38);                    // ')'\n      break;\n    default:\n      parse_ItemType();\n      lookahead1W(229);             // S^WS | EOF | '!=' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' | ';' |\n      switch (l1)\n      {\n      case 40:                      // '*'\n      case 41:                      // '+'\n      case 65:                      // '?'\n        whitespace();\n        parse_OccurrenceIndicator();\n        break;\n      default:\n        break;\n      }\n    }\n    eventHandler.endNonterminal(\"SequenceType\", e0);\n  }\n\n  function try_SequenceType()\n  {\n    switch (l1)\n    {\n    case 35:                        // '('\n      lookahead2W(259);             // EQName^Token | S^WS | '%' | '(' | '(:' | ')' | 'after' | 'allowing' |\n      break;\n    case 125:                       // 'empty-sequence'\n      lookahead2W(233);             // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' |\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 18045:                     // 'empty-sequence' '('\n    case 19491:                     // '(' ')'\n      if (l1 == 125)                // 'empty-sequence'\n      {\n        shiftT(125);                // 'empty-sequence'\n      }\n      lookahead1W(22);              // S^WS | '(' | '(:'\n      shiftT(35);                   // '('\n      lookahead1W(23);              // S^WS | '(:' | ')'\n      shiftT(38);                   // ')'\n      break;\n    default:\n      try_ItemType();\n      lookahead1W(229);             // S^WS | EOF | '!=' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' | ';' |\n      switch (l1)\n      {\n      case 40:                      // '*'\n      case 41:                      // '+'\n      case 65:                      // '?'\n        try_OccurrenceIndicator();\n        break;\n      default:\n        break;\n      }\n    }\n  }\n\n  function parse_OccurrenceIndicator()\n  {\n    eventHandler.startNonterminal(\"OccurrenceIndicator\", e0);\n    switch (l1)\n    {\n    case 65:                        // '?'\n      shift(65);                    // '?'\n      break;\n    case 40:                        // '*'\n      shift(40);                    // '*'\n      break;\n    default:\n      shift(41);                    // '+'\n    }\n    eventHandler.endNonterminal(\"OccurrenceIndicator\", e0);\n  }\n\n  function try_OccurrenceIndicator()\n  {\n    switch (l1)\n    {\n    case 65:                        // '?'\n      shiftT(65);                   // '?'\n      break;\n    case 40:                        // '*'\n      shiftT(40);                   // '*'\n      break;\n    default:\n      shiftT(41);                   // '+'\n    }\n  }\n\n  function parse_ItemType()\n  {\n    eventHandler.startNonterminal(\"ItemType\", e0);\n    switch (l1)\n    {\n    case 79:                        // 'array'\n    case 83:                        // 'attribute'\n    case 97:                        // 'comment'\n    case 121:                       // 'document-node'\n    case 122:                       // 'element'\n    case 147:                       // 'function'\n    case 167:                       // 'item'\n    case 169:                       // 'json-item'\n    case 188:                       // 'namespace-node'\n    case 194:                       // 'node'\n    case 198:                       // 'object'\n    case 220:                       // 'processing-instruction'\n    case 230:                       // 'schema-attribute'\n    case 231:                       // 'schema-element'\n    case 247:                       // 'structured-item'\n    case 249:                       // 'text'\n      lookahead2W(233);             // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 12879                 // 'array' EOF\n     || lk == 12969                 // 'json-item' EOF\n     || lk == 12998                 // 'object' EOF\n     || lk == 13047                 // 'structured-item' EOF\n     || lk == 13903                 // 'array' '!='\n     || lk == 13993                 // 'json-item' '!='\n     || lk == 14022                 // 'object' '!='\n     || lk == 14071                 // 'structured-item' '!='\n     || lk == 19535                 // 'array' ')'\n     || lk == 19625                 // 'json-item' ')'\n     || lk == 19654                 // 'object' ')'\n     || lk == 19703                 // 'structured-item' ')'\n     || lk == 20047                 // 'array' '*'\n     || lk == 20137                 // 'json-item' '*'\n     || lk == 20166                 // 'object' '*'\n     || lk == 20215                 // 'structured-item' '*'\n     || lk == 20559                 // 'array' '*'\n     || lk == 20649                 // 'json-item' '*'\n     || lk == 20678                 // 'object' '*'\n     || lk == 20727                 // 'structured-item' '*'\n     || lk == 21071                 // 'array' '+'\n     || lk == 21161                 // 'json-item' '+'\n     || lk == 21190                 // 'object' '+'\n     || lk == 21239                 // 'structured-item' '+'\n     || lk == 21583                 // 'array' ','\n     || lk == 21673                 // 'json-item' ','\n     || lk == 21702                 // 'object' ','\n     || lk == 21751                 // 'structured-item' ','\n     || lk == 22095                 // 'array' '-'\n     || lk == 22185                 // 'json-item' '-'\n     || lk == 22214                 // 'object' '-'\n     || lk == 22263                 // 'structured-item' '-'\n     || lk == 25679                 // 'array' ':'\n     || lk == 25769                 // 'json-item' ':'\n     || lk == 25798                 // 'object' ':'\n     || lk == 25847                 // 'structured-item' ':'\n     || lk == 27215                 // 'array' ':='\n     || lk == 27305                 // 'json-item' ':='\n     || lk == 27334                 // 'object' ':='\n     || lk == 27383                 // 'structured-item' ':='\n     || lk == 27727                 // 'array' ';'\n     || lk == 27817                 // 'json-item' ';'\n     || lk == 27846                 // 'object' ';'\n     || lk == 27895                 // 'structured-item' ';'\n     || lk == 28239                 // 'array' '<'\n     || lk == 28329                 // 'json-item' '<'\n     || lk == 28358                 // 'object' '<'\n     || lk == 28407                 // 'structured-item' '<'\n     || lk == 29775                 // 'array' '<<'\n     || lk == 29865                 // 'json-item' '<<'\n     || lk == 29894                 // 'object' '<<'\n     || lk == 29943                 // 'structured-item' '<<'\n     || lk == 30287                 // 'array' '<='\n     || lk == 30377                 // 'json-item' '<='\n     || lk == 30406                 // 'object' '<='\n     || lk == 30455                 // 'structured-item' '<='\n     || lk == 31311                 // 'array' '='\n     || lk == 31401                 // 'json-item' '='\n     || lk == 31430                 // 'object' '='\n     || lk == 31479                 // 'structured-item' '='\n     || lk == 31823                 // 'array' '>'\n     || lk == 31913                 // 'json-item' '>'\n     || lk == 31942                 // 'object' '>'\n     || lk == 31991                 // 'structured-item' '>'\n     || lk == 32335                 // 'array' '>='\n     || lk == 32425                 // 'json-item' '>='\n     || lk == 32454                 // 'object' '>='\n     || lk == 32503                 // 'structured-item' '>='\n     || lk == 32847                 // 'array' '>>'\n     || lk == 32937                 // 'json-item' '>>'\n     || lk == 32966                 // 'object' '>>'\n     || lk == 33015                 // 'structured-item' '>>'\n     || lk == 33359                 // 'array' '?'\n     || lk == 33449                 // 'json-item' '?'\n     || lk == 33478                 // 'object' '?'\n     || lk == 33527                 // 'structured-item' '?'\n     || lk == 35919                 // 'array' ']'\n     || lk == 36009                 // 'json-item' ']'\n     || lk == 36038                 // 'object' ']'\n     || lk == 36087                 // 'structured-item' ']'\n     || lk == 36431                 // 'array' 'after'\n     || lk == 36521                 // 'json-item' 'after'\n     || lk == 36550                 // 'object' 'after'\n     || lk == 36599                 // 'structured-item' 'after'\n     || lk == 37455                 // 'array' 'allowing'\n     || lk == 37545                 // 'json-item' 'allowing'\n     || lk == 37574                 // 'object' 'allowing'\n     || lk == 37623                 // 'structured-item' 'allowing'\n     || lk == 38991                 // 'array' 'and'\n     || lk == 39081                 // 'json-item' 'and'\n     || lk == 39110                 // 'object' 'and'\n     || lk == 39159                 // 'structured-item' 'and'\n     || lk == 41039                 // 'array' 'as'\n     || lk == 41129                 // 'json-item' 'as'\n     || lk == 41158                 // 'object' 'as'\n     || lk == 41207                 // 'structured-item' 'as'\n     || lk == 41551                 // 'array' 'ascending'\n     || lk == 41641                 // 'json-item' 'ascending'\n     || lk == 41670                 // 'object' 'ascending'\n     || lk == 41719                 // 'structured-item' 'ascending'\n     || lk == 42063                 // 'array' 'at'\n     || lk == 42153                 // 'json-item' 'at'\n     || lk == 42182                 // 'object' 'at'\n     || lk == 42231                 // 'structured-item' 'at'\n     || lk == 43599                 // 'array' 'before'\n     || lk == 43689                 // 'json-item' 'before'\n     || lk == 43718                 // 'object' 'before'\n     || lk == 43767                 // 'structured-item' 'before'\n     || lk == 45647                 // 'array' 'case'\n     || lk == 45737                 // 'json-item' 'case'\n     || lk == 45766                 // 'object' 'case'\n     || lk == 45815                 // 'structured-item' 'case'\n     || lk == 48719                 // 'array' 'collation'\n     || lk == 48809                 // 'json-item' 'collation'\n     || lk == 48838                 // 'object' 'collation'\n     || lk == 48887                 // 'structured-item' 'collation'\n     || lk == 51279                 // 'array' 'contains'\n     || lk == 51369                 // 'json-item' 'contains'\n     || lk == 51398                 // 'object' 'contains'\n     || lk == 51447                 // 'structured-item' 'contains'\n     || lk == 54351                 // 'array' 'count'\n     || lk == 54441                 // 'json-item' 'count'\n     || lk == 54470                 // 'object' 'count'\n     || lk == 54519                 // 'structured-item' 'count'\n     || lk == 56399                 // 'array' 'default'\n     || lk == 56489                 // 'json-item' 'default'\n     || lk == 56518                 // 'object' 'default'\n     || lk == 56567                 // 'structured-item' 'default'\n     || lk == 58447                 // 'array' 'descending'\n     || lk == 58537                 // 'json-item' 'descending'\n     || lk == 58566                 // 'object' 'descending'\n     || lk == 58615                 // 'structured-item' 'descending'\n     || lk == 61007                 // 'array' 'div'\n     || lk == 61097                 // 'json-item' 'div'\n     || lk == 61126                 // 'object' 'div'\n     || lk == 61175                 // 'structured-item' 'div'\n     || lk == 63055                 // 'array' 'else'\n     || lk == 63145                 // 'json-item' 'else'\n     || lk == 63174                 // 'object' 'else'\n     || lk == 63223                 // 'structured-item' 'else'\n     || lk == 63567                 // 'array' 'empty'\n     || lk == 63657                 // 'json-item' 'empty'\n     || lk == 63686                 // 'object' 'empty'\n     || lk == 63735                 // 'structured-item' 'empty'\n     || lk == 65103                 // 'array' 'end'\n     || lk == 65193                 // 'json-item' 'end'\n     || lk == 65222                 // 'object' 'end'\n     || lk == 65271                 // 'structured-item' 'end'\n     || lk == 66127                 // 'array' 'eq'\n     || lk == 66217                 // 'json-item' 'eq'\n     || lk == 66246                 // 'object' 'eq'\n     || lk == 66295                 // 'structured-item' 'eq'\n     || lk == 67663                 // 'array' 'except'\n     || lk == 67753                 // 'json-item' 'except'\n     || lk == 67782                 // 'object' 'except'\n     || lk == 67831                 // 'structured-item' 'except'\n     || lk == 68687                 // 'array' 'external'\n     || lk == 68777                 // 'json-item' 'external'\n     || lk == 68806                 // 'object' 'external'\n     || lk == 68855                 // 'structured-item' 'external'\n     || lk == 71247                 // 'array' 'for'\n     || lk == 71337                 // 'json-item' 'for'\n     || lk == 71366                 // 'object' 'for'\n     || lk == 71415                 // 'structured-item' 'for'\n     || lk == 75855                 // 'array' 'ge'\n     || lk == 75945                 // 'json-item' 'ge'\n     || lk == 75974                 // 'object' 'ge'\n     || lk == 76023                 // 'structured-item' 'ge'\n     || lk == 76879                 // 'array' 'group'\n     || lk == 76969                 // 'json-item' 'group'\n     || lk == 76998                 // 'object' 'group'\n     || lk == 77047                 // 'structured-item' 'group'\n     || lk == 77903                 // 'array' 'gt'\n     || lk == 77993                 // 'json-item' 'gt'\n     || lk == 78022                 // 'object' 'gt'\n     || lk == 78071                 // 'structured-item' 'gt'\n     || lk == 78415                 // 'array' 'idiv'\n     || lk == 78505                 // 'json-item' 'idiv'\n     || lk == 78534                 // 'object' 'idiv'\n     || lk == 78583                 // 'structured-item' 'idiv'\n     || lk == 79951                 // 'array' 'in'\n     || lk == 80041                 // 'json-item' 'in'\n     || lk == 80070                 // 'object' 'in'\n     || lk == 80119                 // 'structured-item' 'in'\n     || lk == 83023                 // 'array' 'instance'\n     || lk == 83113                 // 'json-item' 'instance'\n     || lk == 83142                 // 'object' 'instance'\n     || lk == 83191                 // 'structured-item' 'instance'\n     || lk == 84047                 // 'array' 'intersect'\n     || lk == 84137                 // 'json-item' 'intersect'\n     || lk == 84166                 // 'object' 'intersect'\n     || lk == 84215                 // 'structured-item' 'intersect'\n     || lk == 84559                 // 'array' 'into'\n     || lk == 84649                 // 'json-item' 'into'\n     || lk == 84678                 // 'object' 'into'\n     || lk == 84727                 // 'structured-item' 'into'\n     || lk == 85071                 // 'array' 'is'\n     || lk == 85161                 // 'json-item' 'is'\n     || lk == 85190                 // 'object' 'is'\n     || lk == 85239                 // 'structured-item' 'is'\n     || lk == 89679                 // 'array' 'le'\n     || lk == 89769                 // 'json-item' 'le'\n     || lk == 89798                 // 'object' 'le'\n     || lk == 89847                 // 'structured-item' 'le'\n     || lk == 90703                 // 'array' 'let'\n     || lk == 90793                 // 'json-item' 'let'\n     || lk == 90822                 // 'object' 'let'\n     || lk == 90871                 // 'structured-item' 'let'\n     || lk == 92751                 // 'array' 'lt'\n     || lk == 92841                 // 'json-item' 'lt'\n     || lk == 92870                 // 'object' 'lt'\n     || lk == 92919                 // 'structured-item' 'lt'\n     || lk == 93775                 // 'array' 'mod'\n     || lk == 93865                 // 'json-item' 'mod'\n     || lk == 93894                 // 'object' 'mod'\n     || lk == 93943                 // 'structured-item' 'mod'\n     || lk == 94287                 // 'array' 'modify'\n     || lk == 94377                 // 'json-item' 'modify'\n     || lk == 94406                 // 'object' 'modify'\n     || lk == 94455                 // 'structured-item' 'modify'\n     || lk == 96847                 // 'array' 'ne'\n     || lk == 96937                 // 'json-item' 'ne'\n     || lk == 96966                 // 'object' 'ne'\n     || lk == 97015                 // 'structured-item' 'ne'\n     || lk == 103503                // 'array' 'only'\n     || lk == 103593                // 'json-item' 'only'\n     || lk == 103622                // 'object' 'only'\n     || lk == 103671                // 'structured-item' 'only'\n     || lk == 104527                // 'array' 'or'\n     || lk == 104617                // 'json-item' 'or'\n     || lk == 104646                // 'object' 'or'\n     || lk == 104695                // 'structured-item' 'or'\n     || lk == 105039                // 'array' 'order'\n     || lk == 105129                // 'json-item' 'order'\n     || lk == 105158                // 'object' 'order'\n     || lk == 105207                // 'structured-item' 'order'\n     || lk == 107087                // 'array' 'paragraphs'\n     || lk == 107177                // 'json-item' 'paragraphs'\n     || lk == 107206                // 'object' 'paragraphs'\n     || lk == 107255                // 'structured-item' 'paragraphs'\n     || lk == 114767                // 'array' 'return'\n     || lk == 114857                // 'json-item' 'return'\n     || lk == 114886                // 'object' 'return'\n     || lk == 114935                // 'structured-item' 'return'\n     || lk == 116815                // 'array' 'satisfies'\n     || lk == 116905                // 'json-item' 'satisfies'\n     || lk == 116934                // 'object' 'satisfies'\n     || lk == 116983                // 'structured-item' 'satisfies'\n     || lk == 118863                // 'array' 'score'\n     || lk == 118953                // 'json-item' 'score'\n     || lk == 118982                // 'object' 'score'\n     || lk == 119031                // 'structured-item' 'score'\n     || lk == 121423                // 'array' 'sentences'\n     || lk == 121513                // 'json-item' 'sentences'\n     || lk == 121542                // 'object' 'sentences'\n     || lk == 121591                // 'structured-item' 'sentences'\n     || lk == 123471                // 'array' 'stable'\n     || lk == 123561                // 'json-item' 'stable'\n     || lk == 123590                // 'object' 'stable'\n     || lk == 123639                // 'structured-item' 'stable'\n     || lk == 123983                // 'array' 'start'\n     || lk == 124073                // 'json-item' 'start'\n     || lk == 124102                // 'object' 'start'\n     || lk == 124151                // 'structured-item' 'start'\n     || lk == 129103                // 'array' 'times'\n     || lk == 129193                // 'json-item' 'times'\n     || lk == 129222                // 'object' 'times'\n     || lk == 129271                // 'structured-item' 'times'\n     || lk == 129615                // 'array' 'to'\n     || lk == 129705                // 'json-item' 'to'\n     || lk == 129734                // 'object' 'to'\n     || lk == 129783                // 'structured-item' 'to'\n     || lk == 133199                // 'array' 'union'\n     || lk == 133289                // 'json-item' 'union'\n     || lk == 133318                // 'object' 'union'\n     || lk == 133367                // 'structured-item' 'union'\n     || lk == 139343                // 'array' 'where'\n     || lk == 139433                // 'json-item' 'where'\n     || lk == 139462                // 'object' 'where'\n     || lk == 139511                // 'structured-item' 'where'\n     || lk == 141391                // 'array' 'with'\n     || lk == 141481                // 'json-item' 'with'\n     || lk == 141510                // 'object' 'with'\n     || lk == 141559                // 'structured-item' 'with'\n     || lk == 142927                // 'array' 'words'\n     || lk == 143017                // 'json-item' 'words'\n     || lk == 143046                // 'object' 'words'\n     || lk == 143095                // 'structured-item' 'words'\n     || lk == 143951                // 'array' '{'\n     || lk == 144041                // 'json-item' '{'\n     || lk == 144070                // 'object' '{'\n     || lk == 144119                // 'structured-item' '{'\n     || lk == 145487                // 'array' '|'\n     || lk == 145577                // 'json-item' '|'\n     || lk == 145606                // 'object' '|'\n     || lk == 145655                // 'structured-item' '|'\n     || lk == 145999                // 'array' '||'\n     || lk == 146089                // 'json-item' '||'\n     || lk == 146118                // 'object' '||'\n     || lk == 146167                // 'structured-item' '||'\n     || lk == 146511                // 'array' '|}'\n     || lk == 146601                // 'json-item' '|}'\n     || lk == 146630                // 'object' '|}'\n     || lk == 146679                // 'structured-item' '|}'\n     || lk == 147023                // 'array' '}'\n     || lk == 147113                // 'json-item' '}'\n     || lk == 147142                // 'object' '}'\n     || lk == 147191)               // 'structured-item' '}'\n    {\n      lk = memoized(6, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_AtomicOrUnionType();\n          lk = -4;\n        }\n        catch (p4A)\n        {\n          try\n          {\n            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n            b2 = b2A; e2 = e2A; end = e2A; }}\n            try_JSONTest();\n            lk = -6;\n          }\n          catch (p6A)\n          {\n            lk = -7;\n          }\n        }\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(6, e0, lk);\n      }\n    }\n    switch (lk)\n    {\n    case 18003:                     // 'attribute' '('\n    case 18017:                     // 'comment' '('\n    case 18041:                     // 'document-node' '('\n    case 18042:                     // 'element' '('\n    case 18108:                     // 'namespace-node' '('\n    case 18114:                     // 'node' '('\n    case 18140:                     // 'processing-instruction' '('\n    case 18150:                     // 'schema-attribute' '('\n    case 18151:                     // 'schema-element' '('\n    case 18169:                     // 'text' '('\n      parse_KindTest();\n      break;\n    case 18087:                     // 'item' '('\n      shift(167);                   // 'item'\n      lookahead1W(22);              // S^WS | '(' | '(:'\n      shift(35);                    // '('\n      lookahead1W(23);              // S^WS | '(:' | ')'\n      shift(38);                    // ')'\n      break;\n    case 33:                        // '%'\n    case 18067:                     // 'function' '('\n      parse_FunctionTest();\n      break;\n    case 35:                        // '('\n      parse_ParenthesizedItemType();\n      break;\n    case -6:\n    case 17999:                     // 'array' '('\n    case 18089:                     // 'json-item' '('\n    case 18118:                     // 'object' '('\n      parse_JSONTest();\n      break;\n    case -7:\n    case 18167:                     // 'structured-item' '('\n      parse_StructuredItemTest();\n      break;\n    default:\n      parse_AtomicOrUnionType();\n    }\n    eventHandler.endNonterminal(\"ItemType\", e0);\n  }\n\n  function try_ItemType()\n  {\n    switch (l1)\n    {\n    case 79:                        // 'array'\n    case 83:                        // 'attribute'\n    case 97:                        // 'comment'\n    case 121:                       // 'document-node'\n    case 122:                       // 'element'\n    case 147:                       // 'function'\n    case 167:                       // 'item'\n    case 169:                       // 'json-item'\n    case 188:                       // 'namespace-node'\n    case 194:                       // 'node'\n    case 198:                       // 'object'\n    case 220:                       // 'processing-instruction'\n    case 230:                       // 'schema-attribute'\n    case 231:                       // 'schema-element'\n    case 247:                       // 'structured-item'\n    case 249:                       // 'text'\n      lookahead2W(233);             // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 12879                 // 'array' EOF\n     || lk == 12969                 // 'json-item' EOF\n     || lk == 12998                 // 'object' EOF\n     || lk == 13047                 // 'structured-item' EOF\n     || lk == 13903                 // 'array' '!='\n     || lk == 13993                 // 'json-item' '!='\n     || lk == 14022                 // 'object' '!='\n     || lk == 14071                 // 'structured-item' '!='\n     || lk == 19535                 // 'array' ')'\n     || lk == 19625                 // 'json-item' ')'\n     || lk == 19654                 // 'object' ')'\n     || lk == 19703                 // 'structured-item' ')'\n     || lk == 20047                 // 'array' '*'\n     || lk == 20137                 // 'json-item' '*'\n     || lk == 20166                 // 'object' '*'\n     || lk == 20215                 // 'structured-item' '*'\n     || lk == 20559                 // 'array' '*'\n     || lk == 20649                 // 'json-item' '*'\n     || lk == 20678                 // 'object' '*'\n     || lk == 20727                 // 'structured-item' '*'\n     || lk == 21071                 // 'array' '+'\n     || lk == 21161                 // 'json-item' '+'\n     || lk == 21190                 // 'object' '+'\n     || lk == 21239                 // 'structured-item' '+'\n     || lk == 21583                 // 'array' ','\n     || lk == 21673                 // 'json-item' ','\n     || lk == 21702                 // 'object' ','\n     || lk == 21751                 // 'structured-item' ','\n     || lk == 22095                 // 'array' '-'\n     || lk == 22185                 // 'json-item' '-'\n     || lk == 22214                 // 'object' '-'\n     || lk == 22263                 // 'structured-item' '-'\n     || lk == 25679                 // 'array' ':'\n     || lk == 25769                 // 'json-item' ':'\n     || lk == 25798                 // 'object' ':'\n     || lk == 25847                 // 'structured-item' ':'\n     || lk == 27215                 // 'array' ':='\n     || lk == 27305                 // 'json-item' ':='\n     || lk == 27334                 // 'object' ':='\n     || lk == 27383                 // 'structured-item' ':='\n     || lk == 27727                 // 'array' ';'\n     || lk == 27817                 // 'json-item' ';'\n     || lk == 27846                 // 'object' ';'\n     || lk == 27895                 // 'structured-item' ';'\n     || lk == 28239                 // 'array' '<'\n     || lk == 28329                 // 'json-item' '<'\n     || lk == 28358                 // 'object' '<'\n     || lk == 28407                 // 'structured-item' '<'\n     || lk == 29775                 // 'array' '<<'\n     || lk == 29865                 // 'json-item' '<<'\n     || lk == 29894                 // 'object' '<<'\n     || lk == 29943                 // 'structured-item' '<<'\n     || lk == 30287                 // 'array' '<='\n     || lk == 30377                 // 'json-item' '<='\n     || lk == 30406                 // 'object' '<='\n     || lk == 30455                 // 'structured-item' '<='\n     || lk == 31311                 // 'array' '='\n     || lk == 31401                 // 'json-item' '='\n     || lk == 31430                 // 'object' '='\n     || lk == 31479                 // 'structured-item' '='\n     || lk == 31823                 // 'array' '>'\n     || lk == 31913                 // 'json-item' '>'\n     || lk == 31942                 // 'object' '>'\n     || lk == 31991                 // 'structured-item' '>'\n     || lk == 32335                 // 'array' '>='\n     || lk == 32425                 // 'json-item' '>='\n     || lk == 32454                 // 'object' '>='\n     || lk == 32503                 // 'structured-item' '>='\n     || lk == 32847                 // 'array' '>>'\n     || lk == 32937                 // 'json-item' '>>'\n     || lk == 32966                 // 'object' '>>'\n     || lk == 33015                 // 'structured-item' '>>'\n     || lk == 33359                 // 'array' '?'\n     || lk == 33449                 // 'json-item' '?'\n     || lk == 33478                 // 'object' '?'\n     || lk == 33527                 // 'structured-item' '?'\n     || lk == 35919                 // 'array' ']'\n     || lk == 36009                 // 'json-item' ']'\n     || lk == 36038                 // 'object' ']'\n     || lk == 36087                 // 'structured-item' ']'\n     || lk == 36431                 // 'array' 'after'\n     || lk == 36521                 // 'json-item' 'after'\n     || lk == 36550                 // 'object' 'after'\n     || lk == 36599                 // 'structured-item' 'after'\n     || lk == 37455                 // 'array' 'allowing'\n     || lk == 37545                 // 'json-item' 'allowing'\n     || lk == 37574                 // 'object' 'allowing'\n     || lk == 37623                 // 'structured-item' 'allowing'\n     || lk == 38991                 // 'array' 'and'\n     || lk == 39081                 // 'json-item' 'and'\n     || lk == 39110                 // 'object' 'and'\n     || lk == 39159                 // 'structured-item' 'and'\n     || lk == 41039                 // 'array' 'as'\n     || lk == 41129                 // 'json-item' 'as'\n     || lk == 41158                 // 'object' 'as'\n     || lk == 41207                 // 'structured-item' 'as'\n     || lk == 41551                 // 'array' 'ascending'\n     || lk == 41641                 // 'json-item' 'ascending'\n     || lk == 41670                 // 'object' 'ascending'\n     || lk == 41719                 // 'structured-item' 'ascending'\n     || lk == 42063                 // 'array' 'at'\n     || lk == 42153                 // 'json-item' 'at'\n     || lk == 42182                 // 'object' 'at'\n     || lk == 42231                 // 'structured-item' 'at'\n     || lk == 43599                 // 'array' 'before'\n     || lk == 43689                 // 'json-item' 'before'\n     || lk == 43718                 // 'object' 'before'\n     || lk == 43767                 // 'structured-item' 'before'\n     || lk == 45647                 // 'array' 'case'\n     || lk == 45737                 // 'json-item' 'case'\n     || lk == 45766                 // 'object' 'case'\n     || lk == 45815                 // 'structured-item' 'case'\n     || lk == 48719                 // 'array' 'collation'\n     || lk == 48809                 // 'json-item' 'collation'\n     || lk == 48838                 // 'object' 'collation'\n     || lk == 48887                 // 'structured-item' 'collation'\n     || lk == 51279                 // 'array' 'contains'\n     || lk == 51369                 // 'json-item' 'contains'\n     || lk == 51398                 // 'object' 'contains'\n     || lk == 51447                 // 'structured-item' 'contains'\n     || lk == 54351                 // 'array' 'count'\n     || lk == 54441                 // 'json-item' 'count'\n     || lk == 54470                 // 'object' 'count'\n     || lk == 54519                 // 'structured-item' 'count'\n     || lk == 56399                 // 'array' 'default'\n     || lk == 56489                 // 'json-item' 'default'\n     || lk == 56518                 // 'object' 'default'\n     || lk == 56567                 // 'structured-item' 'default'\n     || lk == 58447                 // 'array' 'descending'\n     || lk == 58537                 // 'json-item' 'descending'\n     || lk == 58566                 // 'object' 'descending'\n     || lk == 58615                 // 'structured-item' 'descending'\n     || lk == 61007                 // 'array' 'div'\n     || lk == 61097                 // 'json-item' 'div'\n     || lk == 61126                 // 'object' 'div'\n     || lk == 61175                 // 'structured-item' 'div'\n     || lk == 63055                 // 'array' 'else'\n     || lk == 63145                 // 'json-item' 'else'\n     || lk == 63174                 // 'object' 'else'\n     || lk == 63223                 // 'structured-item' 'else'\n     || lk == 63567                 // 'array' 'empty'\n     || lk == 63657                 // 'json-item' 'empty'\n     || lk == 63686                 // 'object' 'empty'\n     || lk == 63735                 // 'structured-item' 'empty'\n     || lk == 65103                 // 'array' 'end'\n     || lk == 65193                 // 'json-item' 'end'\n     || lk == 65222                 // 'object' 'end'\n     || lk == 65271                 // 'structured-item' 'end'\n     || lk == 66127                 // 'array' 'eq'\n     || lk == 66217                 // 'json-item' 'eq'\n     || lk == 66246                 // 'object' 'eq'\n     || lk == 66295                 // 'structured-item' 'eq'\n     || lk == 67663                 // 'array' 'except'\n     || lk == 67753                 // 'json-item' 'except'\n     || lk == 67782                 // 'object' 'except'\n     || lk == 67831                 // 'structured-item' 'except'\n     || lk == 68687                 // 'array' 'external'\n     || lk == 68777                 // 'json-item' 'external'\n     || lk == 68806                 // 'object' 'external'\n     || lk == 68855                 // 'structured-item' 'external'\n     || lk == 71247                 // 'array' 'for'\n     || lk == 71337                 // 'json-item' 'for'\n     || lk == 71366                 // 'object' 'for'\n     || lk == 71415                 // 'structured-item' 'for'\n     || lk == 75855                 // 'array' 'ge'\n     || lk == 75945                 // 'json-item' 'ge'\n     || lk == 75974                 // 'object' 'ge'\n     || lk == 76023                 // 'structured-item' 'ge'\n     || lk == 76879                 // 'array' 'group'\n     || lk == 76969                 // 'json-item' 'group'\n     || lk == 76998                 // 'object' 'group'\n     || lk == 77047                 // 'structured-item' 'group'\n     || lk == 77903                 // 'array' 'gt'\n     || lk == 77993                 // 'json-item' 'gt'\n     || lk == 78022                 // 'object' 'gt'\n     || lk == 78071                 // 'structured-item' 'gt'\n     || lk == 78415                 // 'array' 'idiv'\n     || lk == 78505                 // 'json-item' 'idiv'\n     || lk == 78534                 // 'object' 'idiv'\n     || lk == 78583                 // 'structured-item' 'idiv'\n     || lk == 79951                 // 'array' 'in'\n     || lk == 80041                 // 'json-item' 'in'\n     || lk == 80070                 // 'object' 'in'\n     || lk == 80119                 // 'structured-item' 'in'\n     || lk == 83023                 // 'array' 'instance'\n     || lk == 83113                 // 'json-item' 'instance'\n     || lk == 83142                 // 'object' 'instance'\n     || lk == 83191                 // 'structured-item' 'instance'\n     || lk == 84047                 // 'array' 'intersect'\n     || lk == 84137                 // 'json-item' 'intersect'\n     || lk == 84166                 // 'object' 'intersect'\n     || lk == 84215                 // 'structured-item' 'intersect'\n     || lk == 84559                 // 'array' 'into'\n     || lk == 84649                 // 'json-item' 'into'\n     || lk == 84678                 // 'object' 'into'\n     || lk == 84727                 // 'structured-item' 'into'\n     || lk == 85071                 // 'array' 'is'\n     || lk == 85161                 // 'json-item' 'is'\n     || lk == 85190                 // 'object' 'is'\n     || lk == 85239                 // 'structured-item' 'is'\n     || lk == 89679                 // 'array' 'le'\n     || lk == 89769                 // 'json-item' 'le'\n     || lk == 89798                 // 'object' 'le'\n     || lk == 89847                 // 'structured-item' 'le'\n     || lk == 90703                 // 'array' 'let'\n     || lk == 90793                 // 'json-item' 'let'\n     || lk == 90822                 // 'object' 'let'\n     || lk == 90871                 // 'structured-item' 'let'\n     || lk == 92751                 // 'array' 'lt'\n     || lk == 92841                 // 'json-item' 'lt'\n     || lk == 92870                 // 'object' 'lt'\n     || lk == 92919                 // 'structured-item' 'lt'\n     || lk == 93775                 // 'array' 'mod'\n     || lk == 93865                 // 'json-item' 'mod'\n     || lk == 93894                 // 'object' 'mod'\n     || lk == 93943                 // 'structured-item' 'mod'\n     || lk == 94287                 // 'array' 'modify'\n     || lk == 94377                 // 'json-item' 'modify'\n     || lk == 94406                 // 'object' 'modify'\n     || lk == 94455                 // 'structured-item' 'modify'\n     || lk == 96847                 // 'array' 'ne'\n     || lk == 96937                 // 'json-item' 'ne'\n     || lk == 96966                 // 'object' 'ne'\n     || lk == 97015                 // 'structured-item' 'ne'\n     || lk == 103503                // 'array' 'only'\n     || lk == 103593                // 'json-item' 'only'\n     || lk == 103622                // 'object' 'only'\n     || lk == 103671                // 'structured-item' 'only'\n     || lk == 104527                // 'array' 'or'\n     || lk == 104617                // 'json-item' 'or'\n     || lk == 104646                // 'object' 'or'\n     || lk == 104695                // 'structured-item' 'or'\n     || lk == 105039                // 'array' 'order'\n     || lk == 105129                // 'json-item' 'order'\n     || lk == 105158                // 'object' 'order'\n     || lk == 105207                // 'structured-item' 'order'\n     || lk == 107087                // 'array' 'paragraphs'\n     || lk == 107177                // 'json-item' 'paragraphs'\n     || lk == 107206                // 'object' 'paragraphs'\n     || lk == 107255                // 'structured-item' 'paragraphs'\n     || lk == 114767                // 'array' 'return'\n     || lk == 114857                // 'json-item' 'return'\n     || lk == 114886                // 'object' 'return'\n     || lk == 114935                // 'structured-item' 'return'\n     || lk == 116815                // 'array' 'satisfies'\n     || lk == 116905                // 'json-item' 'satisfies'\n     || lk == 116934                // 'object' 'satisfies'\n     || lk == 116983                // 'structured-item' 'satisfies'\n     || lk == 118863                // 'array' 'score'\n     || lk == 118953                // 'json-item' 'score'\n     || lk == 118982                // 'object' 'score'\n     || lk == 119031                // 'structured-item' 'score'\n     || lk == 121423                // 'array' 'sentences'\n     || lk == 121513                // 'json-item' 'sentences'\n     || lk == 121542                // 'object' 'sentences'\n     || lk == 121591                // 'structured-item' 'sentences'\n     || lk == 123471                // 'array' 'stable'\n     || lk == 123561                // 'json-item' 'stable'\n     || lk == 123590                // 'object' 'stable'\n     || lk == 123639                // 'structured-item' 'stable'\n     || lk == 123983                // 'array' 'start'\n     || lk == 124073                // 'json-item' 'start'\n     || lk == 124102                // 'object' 'start'\n     || lk == 124151                // 'structured-item' 'start'\n     || lk == 129103                // 'array' 'times'\n     || lk == 129193                // 'json-item' 'times'\n     || lk == 129222                // 'object' 'times'\n     || lk == 129271                // 'structured-item' 'times'\n     || lk == 129615                // 'array' 'to'\n     || lk == 129705                // 'json-item' 'to'\n     || lk == 129734                // 'object' 'to'\n     || lk == 129783                // 'structured-item' 'to'\n     || lk == 133199                // 'array' 'union'\n     || lk == 133289                // 'json-item' 'union'\n     || lk == 133318                // 'object' 'union'\n     || lk == 133367                // 'structured-item' 'union'\n     || lk == 139343                // 'array' 'where'\n     || lk == 139433                // 'json-item' 'where'\n     || lk == 139462                // 'object' 'where'\n     || lk == 139511                // 'structured-item' 'where'\n     || lk == 141391                // 'array' 'with'\n     || lk == 141481                // 'json-item' 'with'\n     || lk == 141510                // 'object' 'with'\n     || lk == 141559                // 'structured-item' 'with'\n     || lk == 142927                // 'array' 'words'\n     || lk == 143017                // 'json-item' 'words'\n     || lk == 143046                // 'object' 'words'\n     || lk == 143095                // 'structured-item' 'words'\n     || lk == 143951                // 'array' '{'\n     || lk == 144041                // 'json-item' '{'\n     || lk == 144070                // 'object' '{'\n     || lk == 144119                // 'structured-item' '{'\n     || lk == 145487                // 'array' '|'\n     || lk == 145577                // 'json-item' '|'\n     || lk == 145606                // 'object' '|'\n     || lk == 145655                // 'structured-item' '|'\n     || lk == 145999                // 'array' '||'\n     || lk == 146089                // 'json-item' '||'\n     || lk == 146118                // 'object' '||'\n     || lk == 146167                // 'structured-item' '||'\n     || lk == 146511                // 'array' '|}'\n     || lk == 146601                // 'json-item' '|}'\n     || lk == 146630                // 'object' '|}'\n     || lk == 146679                // 'structured-item' '|}'\n     || lk == 147023                // 'array' '}'\n     || lk == 147113                // 'json-item' '}'\n     || lk == 147142                // 'object' '}'\n     || lk == 147191)               // 'structured-item' '}'\n    {\n      lk = memoized(6, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_AtomicOrUnionType();\n          memoize(6, e0A, -4);\n          lk = -8;\n        }\n        catch (p4A)\n        {\n          try\n          {\n            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n            b2 = b2A; e2 = e2A; end = e2A; }}\n            try_JSONTest();\n            memoize(6, e0A, -6);\n            lk = -8;\n          }\n          catch (p6A)\n          {\n            lk = -7;\n            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n            b2 = b2A; e2 = e2A; end = e2A; }}\n            memoize(6, e0A, -7);\n          }\n        }\n      }\n    }\n    switch (lk)\n    {\n    case 18003:                     // 'attribute' '('\n    case 18017:                     // 'comment' '('\n    case 18041:                     // 'document-node' '('\n    case 18042:                     // 'element' '('\n    case 18108:                     // 'namespace-node' '('\n    case 18114:                     // 'node' '('\n    case 18140:                     // 'processing-instruction' '('\n    case 18150:                     // 'schema-attribute' '('\n    case 18151:                     // 'schema-element' '('\n    case 18169:                     // 'text' '('\n      try_KindTest();\n      break;\n    case 18087:                     // 'item' '('\n      shiftT(167);                  // 'item'\n      lookahead1W(22);              // S^WS | '(' | '(:'\n      shiftT(35);                   // '('\n      lookahead1W(23);              // S^WS | '(:' | ')'\n      shiftT(38);                   // ')'\n      break;\n    case 33:                        // '%'\n    case 18067:                     // 'function' '('\n      try_FunctionTest();\n      break;\n    case 35:                        // '('\n      try_ParenthesizedItemType();\n      break;\n    case -6:\n    case 17999:                     // 'array' '('\n    case 18089:                     // 'json-item' '('\n    case 18118:                     // 'object' '('\n      try_JSONTest();\n      break;\n    case -7:\n    case 18167:                     // 'structured-item' '('\n      try_StructuredItemTest();\n      break;\n    case -8:\n      break;\n    default:\n      try_AtomicOrUnionType();\n    }\n  }\n\n  function parse_JSONTest()\n  {\n    eventHandler.startNonterminal(\"JSONTest\", e0);\n    switch (l1)\n    {\n    case 169:                       // 'json-item'\n      parse_JSONItemTest();\n      break;\n    case 198:                       // 'object'\n      parse_JSONObjectTest();\n      break;\n    default:\n      parse_JSONArrayTest();\n    }\n    eventHandler.endNonterminal(\"JSONTest\", e0);\n  }\n\n  function try_JSONTest()\n  {\n    switch (l1)\n    {\n    case 169:                       // 'json-item'\n      try_JSONItemTest();\n      break;\n    case 198:                       // 'object'\n      try_JSONObjectTest();\n      break;\n    default:\n      try_JSONArrayTest();\n    }\n  }\n\n  function parse_StructuredItemTest()\n  {\n    eventHandler.startNonterminal(\"StructuredItemTest\", e0);\n    shift(247);                     // 'structured-item'\n    lookahead1W(233);               // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' |\n    if (l1 == 35)                   // '('\n    {\n      shift(35);                    // '('\n      lookahead1W(23);              // S^WS | '(:' | ')'\n      shift(38);                    // ')'\n    }\n    eventHandler.endNonterminal(\"StructuredItemTest\", e0);\n  }\n\n  function try_StructuredItemTest()\n  {\n    shiftT(247);                    // 'structured-item'\n    lookahead1W(233);               // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' |\n    if (l1 == 35)                   // '('\n    {\n      shiftT(35);                   // '('\n      lookahead1W(23);              // S^WS | '(:' | ')'\n      shiftT(38);                   // ')'\n    }\n  }\n\n  function parse_JSONItemTest()\n  {\n    eventHandler.startNonterminal(\"JSONItemTest\", e0);\n    shift(169);                     // 'json-item'\n    lookahead1W(233);               // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' |\n    if (l1 == 35)                   // '('\n    {\n      shift(35);                    // '('\n      lookahead1W(23);              // S^WS | '(:' | ')'\n      shift(38);                    // ')'\n    }\n    eventHandler.endNonterminal(\"JSONItemTest\", e0);\n  }\n\n  function try_JSONItemTest()\n  {\n    shiftT(169);                    // 'json-item'\n    lookahead1W(233);               // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' |\n    if (l1 == 35)                   // '('\n    {\n      shiftT(35);                   // '('\n      lookahead1W(23);              // S^WS | '(:' | ')'\n      shiftT(38);                   // ')'\n    }\n  }\n\n  function parse_JSONObjectTest()\n  {\n    eventHandler.startNonterminal(\"JSONObjectTest\", e0);\n    shift(198);                     // 'object'\n    lookahead1W(233);               // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' |\n    if (l1 == 35)                   // '('\n    {\n      shift(35);                    // '('\n      lookahead1W(23);              // S^WS | '(:' | ')'\n      shift(38);                    // ')'\n    }\n    eventHandler.endNonterminal(\"JSONObjectTest\", e0);\n  }\n\n  function try_JSONObjectTest()\n  {\n    shiftT(198);                    // 'object'\n    lookahead1W(233);               // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' |\n    if (l1 == 35)                   // '('\n    {\n      shiftT(35);                   // '('\n      lookahead1W(23);              // S^WS | '(:' | ')'\n      shiftT(38);                   // ')'\n    }\n  }\n\n  function parse_JSONArrayTest()\n  {\n    eventHandler.startNonterminal(\"JSONArrayTest\", e0);\n    shift(79);                      // 'array'\n    lookahead1W(233);               // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' |\n    if (l1 == 35)                   // '('\n    {\n      shift(35);                    // '('\n      lookahead1W(23);              // S^WS | '(:' | ')'\n      shift(38);                    // ')'\n    }\n    eventHandler.endNonterminal(\"JSONArrayTest\", e0);\n  }\n\n  function try_JSONArrayTest()\n  {\n    shiftT(79);                     // 'array'\n    lookahead1W(233);               // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' |\n    if (l1 == 35)                   // '('\n    {\n      shiftT(35);                   // '('\n      lookahead1W(23);              // S^WS | '(:' | ')'\n      shiftT(38);                   // ')'\n    }\n  }\n\n  function parse_AtomicOrUnionType()\n  {\n    eventHandler.startNonterminal(\"AtomicOrUnionType\", e0);\n    parse_EQName();\n    eventHandler.endNonterminal(\"AtomicOrUnionType\", e0);\n  }\n\n  function try_AtomicOrUnionType()\n  {\n    try_EQName();\n  }\n\n  function parse_KindTest()\n  {\n    eventHandler.startNonterminal(\"KindTest\", e0);\n    switch (l1)\n    {\n    case 121:                       // 'document-node'\n      parse_DocumentTest();\n      break;\n    case 122:                       // 'element'\n      parse_ElementTest();\n      break;\n    case 83:                        // 'attribute'\n      parse_AttributeTest();\n      break;\n    case 231:                       // 'schema-element'\n      parse_SchemaElementTest();\n      break;\n    case 230:                       // 'schema-attribute'\n      parse_SchemaAttributeTest();\n      break;\n    case 220:                       // 'processing-instruction'\n      parse_PITest();\n      break;\n    case 97:                        // 'comment'\n      parse_CommentTest();\n      break;\n    case 249:                       // 'text'\n      parse_TextTest();\n      break;\n    case 188:                       // 'namespace-node'\n      parse_NamespaceNodeTest();\n      break;\n    default:\n      parse_AnyKindTest();\n    }\n    eventHandler.endNonterminal(\"KindTest\", e0);\n  }\n\n  function try_KindTest()\n  {\n    switch (l1)\n    {\n    case 121:                       // 'document-node'\n      try_DocumentTest();\n      break;\n    case 122:                       // 'element'\n      try_ElementTest();\n      break;\n    case 83:                        // 'attribute'\n      try_AttributeTest();\n      break;\n    case 231:                       // 'schema-element'\n      try_SchemaElementTest();\n      break;\n    case 230:                       // 'schema-attribute'\n      try_SchemaAttributeTest();\n      break;\n    case 220:                       // 'processing-instruction'\n      try_PITest();\n      break;\n    case 97:                        // 'comment'\n      try_CommentTest();\n      break;\n    case 249:                       // 'text'\n      try_TextTest();\n      break;\n    case 188:                       // 'namespace-node'\n      try_NamespaceNodeTest();\n      break;\n    default:\n      try_AnyKindTest();\n    }\n  }\n\n  function parse_AnyKindTest()\n  {\n    eventHandler.startNonterminal(\"AnyKindTest\", e0);\n    shift(194);                     // 'node'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(35);                      // '('\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(38);                      // ')'\n    eventHandler.endNonterminal(\"AnyKindTest\", e0);\n  }\n\n  function try_AnyKindTest()\n  {\n    shiftT(194);                    // 'node'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(35);                     // '('\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(38);                     // ')'\n  }\n\n  function parse_DocumentTest()\n  {\n    eventHandler.startNonterminal(\"DocumentTest\", e0);\n    shift(121);                     // 'document-node'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(35);                      // '('\n    lookahead1W(154);               // S^WS | '(:' | ')' | 'element' | 'schema-element'\n    if (l1 != 38)                   // ')'\n    {\n      switch (l1)\n      {\n      case 122:                     // 'element'\n        whitespace();\n        parse_ElementTest();\n        break;\n      default:\n        whitespace();\n        parse_SchemaElementTest();\n      }\n    }\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(38);                      // ')'\n    eventHandler.endNonterminal(\"DocumentTest\", e0);\n  }\n\n  function try_DocumentTest()\n  {\n    shiftT(121);                    // 'document-node'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(35);                     // '('\n    lookahead1W(154);               // S^WS | '(:' | ')' | 'element' | 'schema-element'\n    if (l1 != 38)                   // ')'\n    {\n      switch (l1)\n      {\n      case 122:                     // 'element'\n        try_ElementTest();\n        break;\n      default:\n        try_SchemaElementTest();\n      }\n    }\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(38);                     // ')'\n  }\n\n  function parse_TextTest()\n  {\n    eventHandler.startNonterminal(\"TextTest\", e0);\n    shift(249);                     // 'text'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(35);                      // '('\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(38);                      // ')'\n    eventHandler.endNonterminal(\"TextTest\", e0);\n  }\n\n  function try_TextTest()\n  {\n    shiftT(249);                    // 'text'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(35);                     // '('\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(38);                     // ')'\n  }\n\n  function parse_CommentTest()\n  {\n    eventHandler.startNonterminal(\"CommentTest\", e0);\n    shift(97);                      // 'comment'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(35);                      // '('\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(38);                      // ')'\n    eventHandler.endNonterminal(\"CommentTest\", e0);\n  }\n\n  function try_CommentTest()\n  {\n    shiftT(97);                     // 'comment'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(35);                     // '('\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(38);                     // ')'\n  }\n\n  function parse_NamespaceNodeTest()\n  {\n    eventHandler.startNonterminal(\"NamespaceNodeTest\", e0);\n    shift(188);                     // 'namespace-node'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(35);                      // '('\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(38);                      // ')'\n    eventHandler.endNonterminal(\"NamespaceNodeTest\", e0);\n  }\n\n  function try_NamespaceNodeTest()\n  {\n    shiftT(188);                    // 'namespace-node'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(35);                     // '('\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(38);                     // ')'\n  }\n\n  function parse_PITest()\n  {\n    eventHandler.startNonterminal(\"PITest\", e0);\n    shift(220);                     // 'processing-instruction'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(35);                      // '('\n    lookahead1W(244);               // StringLiteral | NCName^Token | S^WS | '(:' | ')' | 'after' | 'allowing' |\n    if (l1 != 38)                   // ')'\n    {\n      switch (l1)\n      {\n      case 11:                      // StringLiteral\n        shift(11);                  // StringLiteral\n        break;\n      default:\n        whitespace();\n        parse_NCName();\n      }\n    }\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(38);                      // ')'\n    eventHandler.endNonterminal(\"PITest\", e0);\n  }\n\n  function try_PITest()\n  {\n    shiftT(220);                    // 'processing-instruction'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(35);                     // '('\n    lookahead1W(244);               // StringLiteral | NCName^Token | S^WS | '(:' | ')' | 'after' | 'allowing' |\n    if (l1 != 38)                   // ')'\n    {\n      switch (l1)\n      {\n      case 11:                      // StringLiteral\n        shiftT(11);                 // StringLiteral\n        break;\n      default:\n        try_NCName();\n      }\n    }\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(38);                     // ')'\n  }\n\n  function parse_AttributeTest()\n  {\n    eventHandler.startNonterminal(\"AttributeTest\", e0);\n    shift(83);                      // 'attribute'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(35);                      // '('\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | ')' | '*' | 'after' | 'allowing' | 'ancestor' |\n    if (l1 != 38)                   // ')'\n    {\n      whitespace();\n      parse_AttribNameOrWildcard();\n      lookahead1W(105);             // S^WS | '(:' | ')' | ','\n      if (l1 == 42)                 // ','\n      {\n        shift(42);                  // ','\n        lookahead1W(246);           // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n        whitespace();\n        parse_TypeName();\n      }\n    }\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(38);                      // ')'\n    eventHandler.endNonterminal(\"AttributeTest\", e0);\n  }\n\n  function try_AttributeTest()\n  {\n    shiftT(83);                     // 'attribute'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(35);                     // '('\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | ')' | '*' | 'after' | 'allowing' | 'ancestor' |\n    if (l1 != 38)                   // ')'\n    {\n      try_AttribNameOrWildcard();\n      lookahead1W(105);             // S^WS | '(:' | ')' | ','\n      if (l1 == 42)                 // ','\n      {\n        shiftT(42);                 // ','\n        lookahead1W(246);           // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n        try_TypeName();\n      }\n    }\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(38);                     // ')'\n  }\n\n  function parse_AttribNameOrWildcard()\n  {\n    eventHandler.startNonterminal(\"AttribNameOrWildcard\", e0);\n    switch (l1)\n    {\n    case 39:                        // '*'\n      shift(39);                    // '*'\n      break;\n    default:\n      parse_AttributeName();\n    }\n    eventHandler.endNonterminal(\"AttribNameOrWildcard\", e0);\n  }\n\n  function try_AttribNameOrWildcard()\n  {\n    switch (l1)\n    {\n    case 39:                        // '*'\n      shiftT(39);                   // '*'\n      break;\n    default:\n      try_AttributeName();\n    }\n  }\n\n  function parse_SchemaAttributeTest()\n  {\n    eventHandler.startNonterminal(\"SchemaAttributeTest\", e0);\n    shift(230);                     // 'schema-attribute'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(35);                      // '('\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_AttributeDeclaration();\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(38);                      // ')'\n    eventHandler.endNonterminal(\"SchemaAttributeTest\", e0);\n  }\n\n  function try_SchemaAttributeTest()\n  {\n    shiftT(230);                    // 'schema-attribute'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(35);                     // '('\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_AttributeDeclaration();\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(38);                     // ')'\n  }\n\n  function parse_AttributeDeclaration()\n  {\n    eventHandler.startNonterminal(\"AttributeDeclaration\", e0);\n    parse_AttributeName();\n    eventHandler.endNonterminal(\"AttributeDeclaration\", e0);\n  }\n\n  function try_AttributeDeclaration()\n  {\n    try_AttributeName();\n  }\n\n  function parse_ElementTest()\n  {\n    eventHandler.startNonterminal(\"ElementTest\", e0);\n    shift(122);                     // 'element'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(35);                      // '('\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | ')' | '*' | 'after' | 'allowing' | 'ancestor' |\n    if (l1 != 38)                   // ')'\n    {\n      whitespace();\n      parse_ElementNameOrWildcard();\n      lookahead1W(105);             // S^WS | '(:' | ')' | ','\n      if (l1 == 42)                 // ','\n      {\n        shift(42);                  // ','\n        lookahead1W(246);           // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n        whitespace();\n        parse_TypeName();\n        lookahead1W(106);           // S^WS | '(:' | ')' | '?'\n        if (l1 == 65)               // '?'\n        {\n          shift(65);                // '?'\n        }\n      }\n    }\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(38);                      // ')'\n    eventHandler.endNonterminal(\"ElementTest\", e0);\n  }\n\n  function try_ElementTest()\n  {\n    shiftT(122);                    // 'element'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(35);                     // '('\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | ')' | '*' | 'after' | 'allowing' | 'ancestor' |\n    if (l1 != 38)                   // ')'\n    {\n      try_ElementNameOrWildcard();\n      lookahead1W(105);             // S^WS | '(:' | ')' | ','\n      if (l1 == 42)                 // ','\n      {\n        shiftT(42);                 // ','\n        lookahead1W(246);           // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n        try_TypeName();\n        lookahead1W(106);           // S^WS | '(:' | ')' | '?'\n        if (l1 == 65)               // '?'\n        {\n          shiftT(65);               // '?'\n        }\n      }\n    }\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(38);                     // ')'\n  }\n\n  function parse_ElementNameOrWildcard()\n  {\n    eventHandler.startNonterminal(\"ElementNameOrWildcard\", e0);\n    switch (l1)\n    {\n    case 39:                        // '*'\n      shift(39);                    // '*'\n      break;\n    default:\n      parse_ElementName();\n    }\n    eventHandler.endNonterminal(\"ElementNameOrWildcard\", e0);\n  }\n\n  function try_ElementNameOrWildcard()\n  {\n    switch (l1)\n    {\n    case 39:                        // '*'\n      shiftT(39);                   // '*'\n      break;\n    default:\n      try_ElementName();\n    }\n  }\n\n  function parse_SchemaElementTest()\n  {\n    eventHandler.startNonterminal(\"SchemaElementTest\", e0);\n    shift(231);                     // 'schema-element'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(35);                      // '('\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_ElementDeclaration();\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(38);                      // ')'\n    eventHandler.endNonterminal(\"SchemaElementTest\", e0);\n  }\n\n  function try_SchemaElementTest()\n  {\n    shiftT(231);                    // 'schema-element'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(35);                     // '('\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_ElementDeclaration();\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(38);                     // ')'\n  }\n\n  function parse_ElementDeclaration()\n  {\n    eventHandler.startNonterminal(\"ElementDeclaration\", e0);\n    parse_ElementName();\n    eventHandler.endNonterminal(\"ElementDeclaration\", e0);\n  }\n\n  function try_ElementDeclaration()\n  {\n    try_ElementName();\n  }\n\n  function parse_AttributeName()\n  {\n    eventHandler.startNonterminal(\"AttributeName\", e0);\n    parse_EQName();\n    eventHandler.endNonterminal(\"AttributeName\", e0);\n  }\n\n  function try_AttributeName()\n  {\n    try_EQName();\n  }\n\n  function parse_ElementName()\n  {\n    eventHandler.startNonterminal(\"ElementName\", e0);\n    parse_EQName();\n    eventHandler.endNonterminal(\"ElementName\", e0);\n  }\n\n  function try_ElementName()\n  {\n    try_EQName();\n  }\n\n  function parse_SimpleTypeName()\n  {\n    eventHandler.startNonterminal(\"SimpleTypeName\", e0);\n    parse_TypeName();\n    eventHandler.endNonterminal(\"SimpleTypeName\", e0);\n  }\n\n  function try_SimpleTypeName()\n  {\n    try_TypeName();\n  }\n\n  function parse_TypeName()\n  {\n    eventHandler.startNonterminal(\"TypeName\", e0);\n    parse_EQName();\n    eventHandler.endNonterminal(\"TypeName\", e0);\n  }\n\n  function try_TypeName()\n  {\n    try_EQName();\n  }\n\n  function parse_FunctionTest()\n  {\n    eventHandler.startNonterminal(\"FunctionTest\", e0);\n    for (;;)\n    {\n      lookahead1W(101);             // S^WS | '%' | '(:' | 'function'\n      if (l1 != 33)                 // '%'\n      {\n        break;\n      }\n      whitespace();\n      parse_Annotation();\n    }\n    switch (l1)\n    {\n    case 147:                       // 'function'\n      lookahead2W(22);              // S^WS | '(' | '(:'\n      break;\n    default:\n      lk = l1;\n    }\n    lk = memoized(7, e0);\n    if (lk == 0)\n    {\n      var b0A = b0; var e0A = e0; var l1A = l1;\n      var b1A = b1; var e1A = e1; var l2A = l2;\n      var b2A = b2; var e2A = e2;\n      try\n      {\n        try_AnyFunctionTest();\n        lk = -1;\n      }\n      catch (p1A)\n      {\n        lk = -2;\n      }\n      b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n      b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n      b2 = b2A; e2 = e2A; end = e2A; }}\n      memoize(7, e0, lk);\n    }\n    switch (lk)\n    {\n    case -1:\n      whitespace();\n      parse_AnyFunctionTest();\n      break;\n    default:\n      whitespace();\n      parse_TypedFunctionTest();\n    }\n    eventHandler.endNonterminal(\"FunctionTest\", e0);\n  }\n\n  function try_FunctionTest()\n  {\n    for (;;)\n    {\n      lookahead1W(101);             // S^WS | '%' | '(:' | 'function'\n      if (l1 != 33)                 // '%'\n      {\n        break;\n      }\n      try_Annotation();\n    }\n    switch (l1)\n    {\n    case 147:                       // 'function'\n      lookahead2W(22);              // S^WS | '(' | '(:'\n      break;\n    default:\n      lk = l1;\n    }\n    lk = memoized(7, e0);\n    if (lk == 0)\n    {\n      var b0A = b0; var e0A = e0; var l1A = l1;\n      var b1A = b1; var e1A = e1; var l2A = l2;\n      var b2A = b2; var e2A = e2;\n      try\n      {\n        try_AnyFunctionTest();\n        memoize(7, e0A, -1);\n        lk = -3;\n      }\n      catch (p1A)\n      {\n        lk = -2;\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(7, e0A, -2);\n      }\n    }\n    switch (lk)\n    {\n    case -1:\n      try_AnyFunctionTest();\n      break;\n    case -3:\n      break;\n    default:\n      try_TypedFunctionTest();\n    }\n  }\n\n  function parse_AnyFunctionTest()\n  {\n    eventHandler.startNonterminal(\"AnyFunctionTest\", e0);\n    shift(147);                     // 'function'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(35);                      // '('\n    lookahead1W(24);                // S^WS | '(:' | '*'\n    shift(39);                      // '*'\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(38);                      // ')'\n    eventHandler.endNonterminal(\"AnyFunctionTest\", e0);\n  }\n\n  function try_AnyFunctionTest()\n  {\n    shiftT(147);                    // 'function'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(35);                     // '('\n    lookahead1W(24);                // S^WS | '(:' | '*'\n    shiftT(39);                     // '*'\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(38);                     // ')'\n  }\n\n  function parse_TypedFunctionTest()\n  {\n    eventHandler.startNonterminal(\"TypedFunctionTest\", e0);\n    shift(147);                     // 'function'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(35);                      // '('\n    lookahead1W(259);               // EQName^Token | S^WS | '%' | '(' | '(:' | ')' | 'after' | 'allowing' |\n    if (l1 != 38)                   // ')'\n    {\n      whitespace();\n      parse_SequenceType();\n      for (;;)\n      {\n        lookahead1W(105);           // S^WS | '(:' | ')' | ','\n        if (l1 != 42)               // ','\n        {\n          break;\n        }\n        shift(42);                  // ','\n        lookahead1W(254);           // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n        whitespace();\n        parse_SequenceType();\n      }\n    }\n    shift(38);                      // ')'\n    lookahead1W(33);                // S^WS | '(:' | 'as'\n    shift(80);                      // 'as'\n    lookahead1W(254);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_SequenceType();\n    eventHandler.endNonterminal(\"TypedFunctionTest\", e0);\n  }\n\n  function try_TypedFunctionTest()\n  {\n    shiftT(147);                    // 'function'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(35);                     // '('\n    lookahead1W(259);               // EQName^Token | S^WS | '%' | '(' | '(:' | ')' | 'after' | 'allowing' |\n    if (l1 != 38)                   // ')'\n    {\n      try_SequenceType();\n      for (;;)\n      {\n        lookahead1W(105);           // S^WS | '(:' | ')' | ','\n        if (l1 != 42)               // ','\n        {\n          break;\n        }\n        shiftT(42);                 // ','\n        lookahead1W(254);           // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n        try_SequenceType();\n      }\n    }\n    shiftT(38);                     // ')'\n    lookahead1W(33);                // S^WS | '(:' | 'as'\n    shiftT(80);                     // 'as'\n    lookahead1W(254);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_SequenceType();\n  }\n\n  function parse_ParenthesizedItemType()\n  {\n    eventHandler.startNonterminal(\"ParenthesizedItemType\", e0);\n    shift(35);                      // '('\n    lookahead1W(254);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_ItemType();\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(38);                      // ')'\n    eventHandler.endNonterminal(\"ParenthesizedItemType\", e0);\n  }\n\n  function try_ParenthesizedItemType()\n  {\n    shiftT(35);                     // '('\n    lookahead1W(254);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_ItemType();\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(38);                     // ')'\n  }\n\n  function parse_RevalidationDecl()\n  {\n    eventHandler.startNonterminal(\"RevalidationDecl\", e0);\n    shift(109);                     // 'declare'\n    lookahead1W(75);                // S^WS | '(:' | 'revalidation'\n    shift(226);                     // 'revalidation'\n    lookahead1W(162);               // S^WS | '(:' | 'lax' | 'skip' | 'strict'\n    switch (l1)\n    {\n    case 245:                       // 'strict'\n      shift(245);                   // 'strict'\n      break;\n    case 174:                       // 'lax'\n      shift(174);                   // 'lax'\n      break;\n    default:\n      shift(238);                   // 'skip'\n    }\n    eventHandler.endNonterminal(\"RevalidationDecl\", e0);\n  }\n\n  function parse_InsertExprTargetChoice()\n  {\n    eventHandler.startNonterminal(\"InsertExprTargetChoice\", e0);\n    switch (l1)\n    {\n    case 71:                        // 'after'\n      shift(71);                    // 'after'\n      break;\n    case 85:                        // 'before'\n      shift(85);                    // 'before'\n      break;\n    default:\n      if (l1 == 80)                 // 'as'\n      {\n        shift(80);                  // 'as'\n        lookahead1W(123);           // S^WS | '(:' | 'first' | 'last'\n        switch (l1)\n        {\n        case 136:                   // 'first'\n          shift(136);               // 'first'\n          break;\n        default:\n          shift(173);               // 'last'\n        }\n      }\n      lookahead1W(57);              // S^WS | '(:' | 'into'\n      shift(165);                   // 'into'\n    }\n    eventHandler.endNonterminal(\"InsertExprTargetChoice\", e0);\n  }\n\n  function try_InsertExprTargetChoice()\n  {\n    switch (l1)\n    {\n    case 71:                        // 'after'\n      shiftT(71);                   // 'after'\n      break;\n    case 85:                        // 'before'\n      shiftT(85);                   // 'before'\n      break;\n    default:\n      if (l1 == 80)                 // 'as'\n      {\n        shiftT(80);                 // 'as'\n        lookahead1W(123);           // S^WS | '(:' | 'first' | 'last'\n        switch (l1)\n        {\n        case 136:                   // 'first'\n          shiftT(136);              // 'first'\n          break;\n        default:\n          shiftT(173);              // 'last'\n        }\n      }\n      lookahead1W(57);              // S^WS | '(:' | 'into'\n      shiftT(165);                  // 'into'\n    }\n  }\n\n  function parse_InsertExpr()\n  {\n    eventHandler.startNonterminal(\"InsertExpr\", e0);\n    shift(161);                     // 'insert'\n    lookahead1W(133);               // S^WS | '(:' | 'node' | 'nodes'\n    switch (l1)\n    {\n    case 194:                       // 'node'\n      shift(194);                   // 'node'\n      break;\n    default:\n      shift(195);                   // 'nodes'\n    }\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_SourceExpr();\n    whitespace();\n    parse_InsertExprTargetChoice();\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_TargetExpr();\n    eventHandler.endNonterminal(\"InsertExpr\", e0);\n  }\n\n  function try_InsertExpr()\n  {\n    shiftT(161);                    // 'insert'\n    lookahead1W(133);               // S^WS | '(:' | 'node' | 'nodes'\n    switch (l1)\n    {\n    case 194:                       // 'node'\n      shiftT(194);                  // 'node'\n      break;\n    default:\n      shiftT(195);                  // 'nodes'\n    }\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_SourceExpr();\n    try_InsertExprTargetChoice();\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_TargetExpr();\n  }\n\n  function parse_DeleteExpr()\n  {\n    eventHandler.startNonterminal(\"DeleteExpr\", e0);\n    shift(111);                     // 'delete'\n    lookahead1W(133);               // S^WS | '(:' | 'node' | 'nodes'\n    switch (l1)\n    {\n    case 194:                       // 'node'\n      shift(194);                   // 'node'\n      break;\n    default:\n      shift(195);                   // 'nodes'\n    }\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_TargetExpr();\n    eventHandler.endNonterminal(\"DeleteExpr\", e0);\n  }\n\n  function try_DeleteExpr()\n  {\n    shiftT(111);                    // 'delete'\n    lookahead1W(133);               // S^WS | '(:' | 'node' | 'nodes'\n    switch (l1)\n    {\n    case 194:                       // 'node'\n      shiftT(194);                  // 'node'\n      break;\n    default:\n      shiftT(195);                  // 'nodes'\n    }\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_TargetExpr();\n  }\n\n  function parse_ReplaceExpr()\n  {\n    eventHandler.startNonterminal(\"ReplaceExpr\", e0);\n    shift(223);                     // 'replace'\n    lookahead1W(134);               // S^WS | '(:' | 'node' | 'value'\n    if (l1 == 267)                  // 'value'\n    {\n      shift(267);                   // 'value'\n      lookahead1W(67);              // S^WS | '(:' | 'of'\n      shift(200);                   // 'of'\n    }\n    lookahead1W(65);                // S^WS | '(:' | 'node'\n    shift(194);                     // 'node'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_TargetExpr();\n    shift(276);                     // 'with'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"ReplaceExpr\", e0);\n  }\n\n  function try_ReplaceExpr()\n  {\n    shiftT(223);                    // 'replace'\n    lookahead1W(134);               // S^WS | '(:' | 'node' | 'value'\n    if (l1 == 267)                  // 'value'\n    {\n      shiftT(267);                  // 'value'\n      lookahead1W(67);              // S^WS | '(:' | 'of'\n      shiftT(200);                  // 'of'\n    }\n    lookahead1W(65);                // S^WS | '(:' | 'node'\n    shiftT(194);                    // 'node'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_TargetExpr();\n    shiftT(276);                    // 'with'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_RenameExpr()\n  {\n    eventHandler.startNonterminal(\"RenameExpr\", e0);\n    shift(222);                     // 'rename'\n    lookahead1W(65);                // S^WS | '(:' | 'node'\n    shift(194);                     // 'node'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_TargetExpr();\n    shift(80);                      // 'as'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_NewNameExpr();\n    eventHandler.endNonterminal(\"RenameExpr\", e0);\n  }\n\n  function try_RenameExpr()\n  {\n    shiftT(222);                    // 'rename'\n    lookahead1W(65);                // S^WS | '(:' | 'node'\n    shiftT(194);                    // 'node'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_TargetExpr();\n    shiftT(80);                     // 'as'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_NewNameExpr();\n  }\n\n  function parse_SourceExpr()\n  {\n    eventHandler.startNonterminal(\"SourceExpr\", e0);\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"SourceExpr\", e0);\n  }\n\n  function try_SourceExpr()\n  {\n    try_ExprSingle();\n  }\n\n  function parse_TargetExpr()\n  {\n    eventHandler.startNonterminal(\"TargetExpr\", e0);\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"TargetExpr\", e0);\n  }\n\n  function try_TargetExpr()\n  {\n    try_ExprSingle();\n  }\n\n  function parse_NewNameExpr()\n  {\n    eventHandler.startNonterminal(\"NewNameExpr\", e0);\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"NewNameExpr\", e0);\n  }\n\n  function try_NewNameExpr()\n  {\n    try_ExprSingle();\n  }\n\n  function parse_TransformExpr()\n  {\n    eventHandler.startNonterminal(\"TransformExpr\", e0);\n    shift(104);                     // 'copy'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    whitespace();\n    parse_TransformSpec();\n    for (;;)\n    {\n      if (l1 != 42)                 // ','\n      {\n        break;\n      }\n      shift(42);                    // ','\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      whitespace();\n      parse_TransformSpec();\n    }\n    shift(184);                     // 'modify'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    shift(224);                     // 'return'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"TransformExpr\", e0);\n  }\n\n  function try_TransformExpr()\n  {\n    shiftT(104);                    // 'copy'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    try_TransformSpec();\n    for (;;)\n    {\n      if (l1 != 42)                 // ','\n      {\n        break;\n      }\n      shiftT(42);                   // ','\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      try_TransformSpec();\n    }\n    shiftT(184);                    // 'modify'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n    shiftT(224);                    // 'return'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_TransformSpec()\n  {\n    eventHandler.startNonterminal(\"TransformSpec\", e0);\n    shift(31);                      // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    lookahead1W(28);                // S^WS | '(:' | ':='\n    shift(53);                      // ':='\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"TransformSpec\", e0);\n  }\n\n  function try_TransformSpec()\n  {\n    shiftT(31);                     // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_VarName();\n    lookahead1W(28);                // S^WS | '(:' | ':='\n    shiftT(53);                     // ':='\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_FTSelection()\n  {\n    eventHandler.startNonterminal(\"FTSelection\", e0);\n    parse_FTOr();\n    for (;;)\n    {\n      lookahead1W(212);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n      switch (l1)\n      {\n      case 82:                      // 'at'\n        lookahead2W(161);           // S^WS | '(:' | 'end' | 'position' | 'start'\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk != 116                 // 'different'\n       && lk != 118                 // 'distance'\n       && lk != 128                 // 'entire'\n       && lk != 206                 // 'ordered'\n       && lk != 227                 // 'same'\n       && lk != 275                 // 'window'\n       && lk != 65106               // 'at' 'end'\n       && lk != 123986)             // 'at' 'start'\n      {\n        break;\n      }\n      whitespace();\n      parse_FTPosFilter();\n    }\n    eventHandler.endNonterminal(\"FTSelection\", e0);\n  }\n\n  function try_FTSelection()\n  {\n    try_FTOr();\n    for (;;)\n    {\n      lookahead1W(212);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n      switch (l1)\n      {\n      case 82:                      // 'at'\n        lookahead2W(161);           // S^WS | '(:' | 'end' | 'position' | 'start'\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk != 116                 // 'different'\n       && lk != 118                 // 'distance'\n       && lk != 128                 // 'entire'\n       && lk != 206                 // 'ordered'\n       && lk != 227                 // 'same'\n       && lk != 275                 // 'window'\n       && lk != 65106               // 'at' 'end'\n       && lk != 123986)             // 'at' 'start'\n      {\n        break;\n      }\n      try_FTPosFilter();\n    }\n  }\n\n  function parse_FTWeight()\n  {\n    eventHandler.startNonterminal(\"FTWeight\", e0);\n    shift(270);                     // 'weight'\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    shift(281);                     // '{'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Expr();\n    shift(287);                     // '}'\n    eventHandler.endNonterminal(\"FTWeight\", e0);\n  }\n\n  function try_FTWeight()\n  {\n    shiftT(270);                    // 'weight'\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    shiftT(281);                    // '{'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Expr();\n    shiftT(287);                    // '}'\n  }\n\n  function parse_FTOr()\n  {\n    eventHandler.startNonterminal(\"FTOr\", e0);\n    parse_FTAnd();\n    for (;;)\n    {\n      if (l1 != 146)                // 'ftor'\n      {\n        break;\n      }\n      shift(146);                   // 'ftor'\n      lookahead1W(177);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'\n      whitespace();\n      parse_FTAnd();\n    }\n    eventHandler.endNonterminal(\"FTOr\", e0);\n  }\n\n  function try_FTOr()\n  {\n    try_FTAnd();\n    for (;;)\n    {\n      if (l1 != 146)                // 'ftor'\n      {\n        break;\n      }\n      shiftT(146);                  // 'ftor'\n      lookahead1W(177);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'\n      try_FTAnd();\n    }\n  }\n\n  function parse_FTAnd()\n  {\n    eventHandler.startNonterminal(\"FTAnd\", e0);\n    parse_FTMildNot();\n    for (;;)\n    {\n      if (l1 != 144)                // 'ftand'\n      {\n        break;\n      }\n      shift(144);                   // 'ftand'\n      lookahead1W(177);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'\n      whitespace();\n      parse_FTMildNot();\n    }\n    eventHandler.endNonterminal(\"FTAnd\", e0);\n  }\n\n  function try_FTAnd()\n  {\n    try_FTMildNot();\n    for (;;)\n    {\n      if (l1 != 144)                // 'ftand'\n      {\n        break;\n      }\n      shiftT(144);                  // 'ftand'\n      lookahead1W(177);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'\n      try_FTMildNot();\n    }\n  }\n\n  function parse_FTMildNot()\n  {\n    eventHandler.startNonterminal(\"FTMildNot\", e0);\n    parse_FTUnaryNot();\n    for (;;)\n    {\n      lookahead1W(213);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n      if (l1 != 196)                // 'not'\n      {\n        break;\n      }\n      shift(196);                   // 'not'\n      lookahead1W(56);              // S^WS | '(:' | 'in'\n      shift(156);                   // 'in'\n      lookahead1W(177);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'\n      whitespace();\n      parse_FTUnaryNot();\n    }\n    eventHandler.endNonterminal(\"FTMildNot\", e0);\n  }\n\n  function try_FTMildNot()\n  {\n    try_FTUnaryNot();\n    for (;;)\n    {\n      lookahead1W(213);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n      if (l1 != 196)                // 'not'\n      {\n        break;\n      }\n      shiftT(196);                  // 'not'\n      lookahead1W(56);              // S^WS | '(:' | 'in'\n      shiftT(156);                  // 'in'\n      lookahead1W(177);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'\n      try_FTUnaryNot();\n    }\n  }\n\n  function parse_FTUnaryNot()\n  {\n    eventHandler.startNonterminal(\"FTUnaryNot\", e0);\n    if (l1 == 145)                  // 'ftnot'\n    {\n      shift(145);                   // 'ftnot'\n    }\n    lookahead1W(164);               // StringLiteral | S^WS | '(' | '(#' | '(:' | '{'\n    whitespace();\n    parse_FTPrimaryWithOptions();\n    eventHandler.endNonterminal(\"FTUnaryNot\", e0);\n  }\n\n  function try_FTUnaryNot()\n  {\n    if (l1 == 145)                  // 'ftnot'\n    {\n      shiftT(145);                  // 'ftnot'\n    }\n    lookahead1W(164);               // StringLiteral | S^WS | '(' | '(#' | '(:' | '{'\n    try_FTPrimaryWithOptions();\n  }\n\n  function parse_FTPrimaryWithOptions()\n  {\n    eventHandler.startNonterminal(\"FTPrimaryWithOptions\", e0);\n    parse_FTPrimary();\n    lookahead1W(214);               // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n    if (l1 == 265)                  // 'using'\n    {\n      whitespace();\n      parse_FTMatchOptions();\n    }\n    if (l1 == 270)                  // 'weight'\n    {\n      whitespace();\n      parse_FTWeight();\n    }\n    eventHandler.endNonterminal(\"FTPrimaryWithOptions\", e0);\n  }\n\n  function try_FTPrimaryWithOptions()\n  {\n    try_FTPrimary();\n    lookahead1W(214);               // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n    if (l1 == 265)                  // 'using'\n    {\n      try_FTMatchOptions();\n    }\n    if (l1 == 270)                  // 'weight'\n    {\n      try_FTWeight();\n    }\n  }\n\n  function parse_FTPrimary()\n  {\n    eventHandler.startNonterminal(\"FTPrimary\", e0);\n    switch (l1)\n    {\n    case 35:                        // '('\n      shift(35);                    // '('\n      lookahead1W(177);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'\n      whitespace();\n      parse_FTSelection();\n      shift(38);                    // ')'\n      break;\n    case 36:                        // '(#'\n      parse_FTExtensionSelection();\n      break;\n    default:\n      parse_FTWords();\n      lookahead1W(215);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n      if (l1 == 199)                // 'occurs'\n      {\n        whitespace();\n        parse_FTTimes();\n      }\n    }\n    eventHandler.endNonterminal(\"FTPrimary\", e0);\n  }\n\n  function try_FTPrimary()\n  {\n    switch (l1)\n    {\n    case 35:                        // '('\n      shiftT(35);                   // '('\n      lookahead1W(177);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'\n      try_FTSelection();\n      shiftT(38);                   // ')'\n      break;\n    case 36:                        // '(#'\n      try_FTExtensionSelection();\n      break;\n    default:\n      try_FTWords();\n      lookahead1W(215);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n      if (l1 == 199)                // 'occurs'\n      {\n        try_FTTimes();\n      }\n    }\n  }\n\n  function parse_FTWords()\n  {\n    eventHandler.startNonterminal(\"FTWords\", e0);\n    parse_FTWordsValue();\n    lookahead1W(221);               // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n    if (l1 == 72                    // 'all'\n     || l1 == 77                    // 'any'\n     || l1 == 214)                  // 'phrase'\n    {\n      whitespace();\n      parse_FTAnyallOption();\n    }\n    eventHandler.endNonterminal(\"FTWords\", e0);\n  }\n\n  function try_FTWords()\n  {\n    try_FTWordsValue();\n    lookahead1W(221);               // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n    if (l1 == 72                    // 'all'\n     || l1 == 77                    // 'any'\n     || l1 == 214)                  // 'phrase'\n    {\n      try_FTAnyallOption();\n    }\n  }\n\n  function parse_FTWordsValue()\n  {\n    eventHandler.startNonterminal(\"FTWordsValue\", e0);\n    switch (l1)\n    {\n    case 11:                        // StringLiteral\n      shift(11);                    // StringLiteral\n      break;\n    default:\n      shift(281);                   // '{'\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_Expr();\n      shift(287);                   // '}'\n    }\n    eventHandler.endNonterminal(\"FTWordsValue\", e0);\n  }\n\n  function try_FTWordsValue()\n  {\n    switch (l1)\n    {\n    case 11:                        // StringLiteral\n      shiftT(11);                   // StringLiteral\n      break;\n    default:\n      shiftT(281);                  // '{'\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_Expr();\n      shiftT(287);                  // '}'\n    }\n  }\n\n  function parse_FTExtensionSelection()\n  {\n    eventHandler.startNonterminal(\"FTExtensionSelection\", e0);\n    for (;;)\n    {\n      whitespace();\n      parse_Pragma();\n      lookahead1W(104);             // S^WS | '(#' | '(:' | '{'\n      if (l1 != 36)                 // '(#'\n      {\n        break;\n      }\n    }\n    shift(281);                     // '{'\n    lookahead1W(184);               // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{' | '}'\n    if (l1 != 287)                  // '}'\n    {\n      whitespace();\n      parse_FTSelection();\n    }\n    shift(287);                     // '}'\n    eventHandler.endNonterminal(\"FTExtensionSelection\", e0);\n  }\n\n  function try_FTExtensionSelection()\n  {\n    for (;;)\n    {\n      try_Pragma();\n      lookahead1W(104);             // S^WS | '(#' | '(:' | '{'\n      if (l1 != 36)                 // '(#'\n      {\n        break;\n      }\n    }\n    shiftT(281);                    // '{'\n    lookahead1W(184);               // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{' | '}'\n    if (l1 != 287)                  // '}'\n    {\n      try_FTSelection();\n    }\n    shiftT(287);                    // '}'\n  }\n\n  function parse_FTAnyallOption()\n  {\n    eventHandler.startNonterminal(\"FTAnyallOption\", e0);\n    switch (l1)\n    {\n    case 77:                        // 'any'\n      shift(77);                    // 'any'\n      lookahead1W(218);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n      if (l1 == 278)                // 'word'\n      {\n        shift(278);                 // 'word'\n      }\n      break;\n    case 72:                        // 'all'\n      shift(72);                    // 'all'\n      lookahead1W(219);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n      if (l1 == 279)                // 'words'\n      {\n        shift(279);                 // 'words'\n      }\n      break;\n    default:\n      shift(214);                   // 'phrase'\n    }\n    eventHandler.endNonterminal(\"FTAnyallOption\", e0);\n  }\n\n  function try_FTAnyallOption()\n  {\n    switch (l1)\n    {\n    case 77:                        // 'any'\n      shiftT(77);                   // 'any'\n      lookahead1W(218);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n      if (l1 == 278)                // 'word'\n      {\n        shiftT(278);                // 'word'\n      }\n      break;\n    case 72:                        // 'all'\n      shiftT(72);                   // 'all'\n      lookahead1W(219);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n      if (l1 == 279)                // 'words'\n      {\n        shiftT(279);                // 'words'\n      }\n      break;\n    default:\n      shiftT(214);                  // 'phrase'\n    }\n  }\n\n  function parse_FTTimes()\n  {\n    eventHandler.startNonterminal(\"FTTimes\", e0);\n    shift(199);                     // 'occurs'\n    lookahead1W(159);               // S^WS | '(:' | 'at' | 'exactly' | 'from'\n    whitespace();\n    parse_FTRange();\n    shift(252);                     // 'times'\n    eventHandler.endNonterminal(\"FTTimes\", e0);\n  }\n\n  function try_FTTimes()\n  {\n    shiftT(199);                    // 'occurs'\n    lookahead1W(159);               // S^WS | '(:' | 'at' | 'exactly' | 'from'\n    try_FTRange();\n    shiftT(252);                    // 'times'\n  }\n\n  function parse_FTRange()\n  {\n    eventHandler.startNonterminal(\"FTRange\", e0);\n    switch (l1)\n    {\n    case 131:                       // 'exactly'\n      shift(131);                   // 'exactly'\n      lookahead1W(266);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_AdditiveExpr();\n      break;\n    case 82:                        // 'at'\n      shift(82);                    // 'at'\n      lookahead1W(129);             // S^WS | '(:' | 'least' | 'most'\n      switch (l1)\n      {\n      case 176:                     // 'least'\n        shift(176);                 // 'least'\n        lookahead1W(266);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        whitespace();\n        parse_AdditiveExpr();\n        break;\n      default:\n        shift(186);                 // 'most'\n        lookahead1W(266);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        whitespace();\n        parse_AdditiveExpr();\n      }\n      break;\n    default:\n      shift(142);                   // 'from'\n      lookahead1W(266);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_AdditiveExpr();\n      shift(253);                   // 'to'\n      lookahead1W(266);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_AdditiveExpr();\n    }\n    eventHandler.endNonterminal(\"FTRange\", e0);\n  }\n\n  function try_FTRange()\n  {\n    switch (l1)\n    {\n    case 131:                       // 'exactly'\n      shiftT(131);                  // 'exactly'\n      lookahead1W(266);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_AdditiveExpr();\n      break;\n    case 82:                        // 'at'\n      shiftT(82);                   // 'at'\n      lookahead1W(129);             // S^WS | '(:' | 'least' | 'most'\n      switch (l1)\n      {\n      case 176:                     // 'least'\n        shiftT(176);                // 'least'\n        lookahead1W(266);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        try_AdditiveExpr();\n        break;\n      default:\n        shiftT(186);                // 'most'\n        lookahead1W(266);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        try_AdditiveExpr();\n      }\n      break;\n    default:\n      shiftT(142);                  // 'from'\n      lookahead1W(266);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_AdditiveExpr();\n      shiftT(253);                  // 'to'\n      lookahead1W(266);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_AdditiveExpr();\n    }\n  }\n\n  function parse_FTPosFilter()\n  {\n    eventHandler.startNonterminal(\"FTPosFilter\", e0);\n    switch (l1)\n    {\n    case 206:                       // 'ordered'\n      parse_FTOrder();\n      break;\n    case 275:                       // 'window'\n      parse_FTWindow();\n      break;\n    case 118:                       // 'distance'\n      parse_FTDistance();\n      break;\n    case 116:                       // 'different'\n    case 227:                       // 'same'\n      parse_FTScope();\n      break;\n    default:\n      parse_FTContent();\n    }\n    eventHandler.endNonterminal(\"FTPosFilter\", e0);\n  }\n\n  function try_FTPosFilter()\n  {\n    switch (l1)\n    {\n    case 206:                       // 'ordered'\n      try_FTOrder();\n      break;\n    case 275:                       // 'window'\n      try_FTWindow();\n      break;\n    case 118:                       // 'distance'\n      try_FTDistance();\n      break;\n    case 116:                       // 'different'\n    case 227:                       // 'same'\n      try_FTScope();\n      break;\n    default:\n      try_FTContent();\n    }\n  }\n\n  function parse_FTOrder()\n  {\n    eventHandler.startNonterminal(\"FTOrder\", e0);\n    shift(206);                     // 'ordered'\n    eventHandler.endNonterminal(\"FTOrder\", e0);\n  }\n\n  function try_FTOrder()\n  {\n    shiftT(206);                    // 'ordered'\n  }\n\n  function parse_FTWindow()\n  {\n    eventHandler.startNonterminal(\"FTWindow\", e0);\n    shift(275);                     // 'window'\n    lookahead1W(266);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_AdditiveExpr();\n    whitespace();\n    parse_FTUnit();\n    eventHandler.endNonterminal(\"FTWindow\", e0);\n  }\n\n  function try_FTWindow()\n  {\n    shiftT(275);                    // 'window'\n    lookahead1W(266);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_AdditiveExpr();\n    try_FTUnit();\n  }\n\n  function parse_FTDistance()\n  {\n    eventHandler.startNonterminal(\"FTDistance\", e0);\n    shift(118);                     // 'distance'\n    lookahead1W(159);               // S^WS | '(:' | 'at' | 'exactly' | 'from'\n    whitespace();\n    parse_FTRange();\n    whitespace();\n    parse_FTUnit();\n    eventHandler.endNonterminal(\"FTDistance\", e0);\n  }\n\n  function try_FTDistance()\n  {\n    shiftT(118);                    // 'distance'\n    lookahead1W(159);               // S^WS | '(:' | 'at' | 'exactly' | 'from'\n    try_FTRange();\n    try_FTUnit();\n  }\n\n  function parse_FTUnit()\n  {\n    eventHandler.startNonterminal(\"FTUnit\", e0);\n    switch (l1)\n    {\n    case 279:                       // 'words'\n      shift(279);                   // 'words'\n      break;\n    case 237:                       // 'sentences'\n      shift(237);                   // 'sentences'\n      break;\n    default:\n      shift(209);                   // 'paragraphs'\n    }\n    eventHandler.endNonterminal(\"FTUnit\", e0);\n  }\n\n  function try_FTUnit()\n  {\n    switch (l1)\n    {\n    case 279:                       // 'words'\n      shiftT(279);                  // 'words'\n      break;\n    case 237:                       // 'sentences'\n      shiftT(237);                  // 'sentences'\n      break;\n    default:\n      shiftT(209);                  // 'paragraphs'\n    }\n  }\n\n  function parse_FTScope()\n  {\n    eventHandler.startNonterminal(\"FTScope\", e0);\n    switch (l1)\n    {\n    case 227:                       // 'same'\n      shift(227);                   // 'same'\n      break;\n    default:\n      shift(116);                   // 'different'\n    }\n    lookahead1W(136);               // S^WS | '(:' | 'paragraph' | 'sentence'\n    whitespace();\n    parse_FTBigUnit();\n    eventHandler.endNonterminal(\"FTScope\", e0);\n  }\n\n  function try_FTScope()\n  {\n    switch (l1)\n    {\n    case 227:                       // 'same'\n      shiftT(227);                  // 'same'\n      break;\n    default:\n      shiftT(116);                  // 'different'\n    }\n    lookahead1W(136);               // S^WS | '(:' | 'paragraph' | 'sentence'\n    try_FTBigUnit();\n  }\n\n  function parse_FTBigUnit()\n  {\n    eventHandler.startNonterminal(\"FTBigUnit\", e0);\n    switch (l1)\n    {\n    case 236:                       // 'sentence'\n      shift(236);                   // 'sentence'\n      break;\n    default:\n      shift(208);                   // 'paragraph'\n    }\n    eventHandler.endNonterminal(\"FTBigUnit\", e0);\n  }\n\n  function try_FTBigUnit()\n  {\n    switch (l1)\n    {\n    case 236:                       // 'sentence'\n      shiftT(236);                  // 'sentence'\n      break;\n    default:\n      shiftT(208);                  // 'paragraph'\n    }\n  }\n\n  function parse_FTContent()\n  {\n    eventHandler.startNonterminal(\"FTContent\", e0);\n    switch (l1)\n    {\n    case 82:                        // 'at'\n      shift(82);                    // 'at'\n      lookahead1W(121);             // S^WS | '(:' | 'end' | 'start'\n      switch (l1)\n      {\n      case 242:                     // 'start'\n        shift(242);                 // 'start'\n        break;\n      default:\n        shift(127);                 // 'end'\n      }\n      break;\n    default:\n      shift(128);                   // 'entire'\n      lookahead1W(45);              // S^WS | '(:' | 'content'\n      shift(101);                   // 'content'\n    }\n    eventHandler.endNonterminal(\"FTContent\", e0);\n  }\n\n  function try_FTContent()\n  {\n    switch (l1)\n    {\n    case 82:                        // 'at'\n      shiftT(82);                   // 'at'\n      lookahead1W(121);             // S^WS | '(:' | 'end' | 'start'\n      switch (l1)\n      {\n      case 242:                     // 'start'\n        shiftT(242);                // 'start'\n        break;\n      default:\n        shiftT(127);                // 'end'\n      }\n      break;\n    default:\n      shiftT(128);                  // 'entire'\n      lookahead1W(45);              // S^WS | '(:' | 'content'\n      shiftT(101);                  // 'content'\n    }\n  }\n\n  function parse_FTMatchOptions()\n  {\n    eventHandler.startNonterminal(\"FTMatchOptions\", e0);\n    for (;;)\n    {\n      shift(265);                   // 'using'\n      lookahead1W(205);             // S^WS | '(:' | 'case' | 'diacritics' | 'language' | 'lowercase' | 'no' |\n      whitespace();\n      parse_FTMatchOption();\n      lookahead1W(214);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n      if (l1 != 265)                // 'using'\n      {\n        break;\n      }\n    }\n    eventHandler.endNonterminal(\"FTMatchOptions\", e0);\n  }\n\n  function try_FTMatchOptions()\n  {\n    for (;;)\n    {\n      shiftT(265);                  // 'using'\n      lookahead1W(205);             // S^WS | '(:' | 'case' | 'diacritics' | 'language' | 'lowercase' | 'no' |\n      try_FTMatchOption();\n      lookahead1W(214);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n      if (l1 != 265)                // 'using'\n      {\n        break;\n      }\n    }\n  }\n\n  function parse_FTMatchOption()\n  {\n    eventHandler.startNonterminal(\"FTMatchOption\", e0);\n    switch (l1)\n    {\n    case 191:                       // 'no'\n      lookahead2W(176);             // S^WS | '(:' | 'stemming' | 'stop' | 'thesaurus' | 'wildcards'\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 172:                       // 'language'\n      parse_FTLanguageOption();\n      break;\n    case 274:                       // 'wildcards'\n    case 140479:                    // 'no' 'wildcards'\n      parse_FTWildCardOption();\n      break;\n    case 251:                       // 'thesaurus'\n    case 128703:                    // 'no' 'thesaurus'\n      parse_FTThesaurusOption();\n      break;\n    case 243:                       // 'stemming'\n    case 124607:                    // 'no' 'stemming'\n      parse_FTStemOption();\n      break;\n    case 115:                       // 'diacritics'\n      parse_FTDiacriticsOption();\n      break;\n    case 244:                       // 'stop'\n    case 125119:                    // 'no' 'stop'\n      parse_FTStopWordOption();\n      break;\n    case 203:                       // 'option'\n      parse_FTExtensionOption();\n      break;\n    default:\n      parse_FTCaseOption();\n    }\n    eventHandler.endNonterminal(\"FTMatchOption\", e0);\n  }\n\n  function try_FTMatchOption()\n  {\n    switch (l1)\n    {\n    case 191:                       // 'no'\n      lookahead2W(176);             // S^WS | '(:' | 'stemming' | 'stop' | 'thesaurus' | 'wildcards'\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 172:                       // 'language'\n      try_FTLanguageOption();\n      break;\n    case 274:                       // 'wildcards'\n    case 140479:                    // 'no' 'wildcards'\n      try_FTWildCardOption();\n      break;\n    case 251:                       // 'thesaurus'\n    case 128703:                    // 'no' 'thesaurus'\n      try_FTThesaurusOption();\n      break;\n    case 243:                       // 'stemming'\n    case 124607:                    // 'no' 'stemming'\n      try_FTStemOption();\n      break;\n    case 115:                       // 'diacritics'\n      try_FTDiacriticsOption();\n      break;\n    case 244:                       // 'stop'\n    case 125119:                    // 'no' 'stop'\n      try_FTStopWordOption();\n      break;\n    case 203:                       // 'option'\n      try_FTExtensionOption();\n      break;\n    default:\n      try_FTCaseOption();\n    }\n  }\n\n  function parse_FTCaseOption()\n  {\n    eventHandler.startNonterminal(\"FTCaseOption\", e0);\n    switch (l1)\n    {\n    case 89:                        // 'case'\n      shift(89);                    // 'case'\n      lookahead1W(128);             // S^WS | '(:' | 'insensitive' | 'sensitive'\n      switch (l1)\n      {\n      case 160:                     // 'insensitive'\n        shift(160);                 // 'insensitive'\n        break;\n      default:\n        shift(235);                 // 'sensitive'\n      }\n      break;\n    case 180:                       // 'lowercase'\n      shift(180);                   // 'lowercase'\n      break;\n    default:\n      shift(264);                   // 'uppercase'\n    }\n    eventHandler.endNonterminal(\"FTCaseOption\", e0);\n  }\n\n  function try_FTCaseOption()\n  {\n    switch (l1)\n    {\n    case 89:                        // 'case'\n      shiftT(89);                   // 'case'\n      lookahead1W(128);             // S^WS | '(:' | 'insensitive' | 'sensitive'\n      switch (l1)\n      {\n      case 160:                     // 'insensitive'\n        shiftT(160);                // 'insensitive'\n        break;\n      default:\n        shiftT(235);                // 'sensitive'\n      }\n      break;\n    case 180:                       // 'lowercase'\n      shiftT(180);                  // 'lowercase'\n      break;\n    default:\n      shiftT(264);                  // 'uppercase'\n    }\n  }\n\n  function parse_FTDiacriticsOption()\n  {\n    eventHandler.startNonterminal(\"FTDiacriticsOption\", e0);\n    shift(115);                     // 'diacritics'\n    lookahead1W(128);               // S^WS | '(:' | 'insensitive' | 'sensitive'\n    switch (l1)\n    {\n    case 160:                       // 'insensitive'\n      shift(160);                   // 'insensitive'\n      break;\n    default:\n      shift(235);                   // 'sensitive'\n    }\n    eventHandler.endNonterminal(\"FTDiacriticsOption\", e0);\n  }\n\n  function try_FTDiacriticsOption()\n  {\n    shiftT(115);                    // 'diacritics'\n    lookahead1W(128);               // S^WS | '(:' | 'insensitive' | 'sensitive'\n    switch (l1)\n    {\n    case 160:                       // 'insensitive'\n      shiftT(160);                  // 'insensitive'\n      break;\n    default:\n      shiftT(235);                  // 'sensitive'\n    }\n  }\n\n  function parse_FTStemOption()\n  {\n    eventHandler.startNonterminal(\"FTStemOption\", e0);\n    switch (l1)\n    {\n    case 243:                       // 'stemming'\n      shift(243);                   // 'stemming'\n      break;\n    default:\n      shift(191);                   // 'no'\n      lookahead1W(77);              // S^WS | '(:' | 'stemming'\n      shift(243);                   // 'stemming'\n    }\n    eventHandler.endNonterminal(\"FTStemOption\", e0);\n  }\n\n  function try_FTStemOption()\n  {\n    switch (l1)\n    {\n    case 243:                       // 'stemming'\n      shiftT(243);                  // 'stemming'\n      break;\n    default:\n      shiftT(191);                  // 'no'\n      lookahead1W(77);              // S^WS | '(:' | 'stemming'\n      shiftT(243);                  // 'stemming'\n    }\n  }\n\n  function parse_FTThesaurusOption()\n  {\n    eventHandler.startNonterminal(\"FTThesaurusOption\", e0);\n    switch (l1)\n    {\n    case 251:                       // 'thesaurus'\n      shift(251);                   // 'thesaurus'\n      lookahead1W(152);             // S^WS | '(' | '(:' | 'at' | 'default'\n      switch (l1)\n      {\n      case 82:                      // 'at'\n        whitespace();\n        parse_FTThesaurusID();\n        break;\n      case 110:                     // 'default'\n        shift(110);                 // 'default'\n        break;\n      default:\n        shift(35);                  // '('\n        lookahead1W(116);           // S^WS | '(:' | 'at' | 'default'\n        switch (l1)\n        {\n        case 82:                    // 'at'\n          whitespace();\n          parse_FTThesaurusID();\n          break;\n        default:\n          shift(110);               // 'default'\n        }\n        for (;;)\n        {\n          lookahead1W(105);         // S^WS | '(:' | ')' | ','\n          if (l1 != 42)             // ','\n          {\n            break;\n          }\n          shift(42);                // ','\n          lookahead1W(34);          // S^WS | '(:' | 'at'\n          whitespace();\n          parse_FTThesaurusID();\n        }\n        shift(38);                  // ')'\n      }\n      break;\n    default:\n      shift(191);                   // 'no'\n      lookahead1W(81);              // S^WS | '(:' | 'thesaurus'\n      shift(251);                   // 'thesaurus'\n    }\n    eventHandler.endNonterminal(\"FTThesaurusOption\", e0);\n  }\n\n  function try_FTThesaurusOption()\n  {\n    switch (l1)\n    {\n    case 251:                       // 'thesaurus'\n      shiftT(251);                  // 'thesaurus'\n      lookahead1W(152);             // S^WS | '(' | '(:' | 'at' | 'default'\n      switch (l1)\n      {\n      case 82:                      // 'at'\n        try_FTThesaurusID();\n        break;\n      case 110:                     // 'default'\n        shiftT(110);                // 'default'\n        break;\n      default:\n        shiftT(35);                 // '('\n        lookahead1W(116);           // S^WS | '(:' | 'at' | 'default'\n        switch (l1)\n        {\n        case 82:                    // 'at'\n          try_FTThesaurusID();\n          break;\n        default:\n          shiftT(110);              // 'default'\n        }\n        for (;;)\n        {\n          lookahead1W(105);         // S^WS | '(:' | ')' | ','\n          if (l1 != 42)             // ','\n          {\n            break;\n          }\n          shiftT(42);               // ','\n          lookahead1W(34);          // S^WS | '(:' | 'at'\n          try_FTThesaurusID();\n        }\n        shiftT(38);                 // ')'\n      }\n      break;\n    default:\n      shiftT(191);                  // 'no'\n      lookahead1W(81);              // S^WS | '(:' | 'thesaurus'\n      shiftT(251);                  // 'thesaurus'\n    }\n  }\n\n  function parse_FTThesaurusID()\n  {\n    eventHandler.startNonterminal(\"FTThesaurusID\", e0);\n    shift(82);                      // 'at'\n    lookahead1W(15);                // URILiteral | S^WS | '(:'\n    shift(7);                       // URILiteral\n    lookahead1W(220);               // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n    if (l1 == 221)                  // 'relationship'\n    {\n      shift(221);                   // 'relationship'\n      lookahead1W(17);              // StringLiteral | S^WS | '(:'\n      shift(11);                    // StringLiteral\n    }\n    lookahead1W(216);               // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n    switch (l1)\n    {\n    case 82:                        // 'at'\n      lookahead2W(183);             // S^WS | '(:' | 'end' | 'least' | 'most' | 'position' | 'start'\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 131                   // 'exactly'\n     || lk == 142                   // 'from'\n     || lk == 90194                 // 'at' 'least'\n     || lk == 95314)                // 'at' 'most'\n    {\n      whitespace();\n      parse_FTLiteralRange();\n      lookahead1W(61);              // S^WS | '(:' | 'levels'\n      shift(178);                   // 'levels'\n    }\n    eventHandler.endNonterminal(\"FTThesaurusID\", e0);\n  }\n\n  function try_FTThesaurusID()\n  {\n    shiftT(82);                     // 'at'\n    lookahead1W(15);                // URILiteral | S^WS | '(:'\n    shiftT(7);                      // URILiteral\n    lookahead1W(220);               // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n    if (l1 == 221)                  // 'relationship'\n    {\n      shiftT(221);                  // 'relationship'\n      lookahead1W(17);              // StringLiteral | S^WS | '(:'\n      shiftT(11);                   // StringLiteral\n    }\n    lookahead1W(216);               // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n    switch (l1)\n    {\n    case 82:                        // 'at'\n      lookahead2W(183);             // S^WS | '(:' | 'end' | 'least' | 'most' | 'position' | 'start'\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 131                   // 'exactly'\n     || lk == 142                   // 'from'\n     || lk == 90194                 // 'at' 'least'\n     || lk == 95314)                // 'at' 'most'\n    {\n      try_FTLiteralRange();\n      lookahead1W(61);              // S^WS | '(:' | 'levels'\n      shiftT(178);                  // 'levels'\n    }\n  }\n\n  function parse_FTLiteralRange()\n  {\n    eventHandler.startNonterminal(\"FTLiteralRange\", e0);\n    switch (l1)\n    {\n    case 131:                       // 'exactly'\n      shift(131);                   // 'exactly'\n      lookahead1W(16);              // IntegerLiteral | S^WS | '(:'\n      shift(8);                     // IntegerLiteral\n      break;\n    case 82:                        // 'at'\n      shift(82);                    // 'at'\n      lookahead1W(129);             // S^WS | '(:' | 'least' | 'most'\n      switch (l1)\n      {\n      case 176:                     // 'least'\n        shift(176);                 // 'least'\n        lookahead1W(16);            // IntegerLiteral | S^WS | '(:'\n        shift(8);                   // IntegerLiteral\n        break;\n      default:\n        shift(186);                 // 'most'\n        lookahead1W(16);            // IntegerLiteral | S^WS | '(:'\n        shift(8);                   // IntegerLiteral\n      }\n      break;\n    default:\n      shift(142);                   // 'from'\n      lookahead1W(16);              // IntegerLiteral | S^WS | '(:'\n      shift(8);                     // IntegerLiteral\n      lookahead1W(82);              // S^WS | '(:' | 'to'\n      shift(253);                   // 'to'\n      lookahead1W(16);              // IntegerLiteral | S^WS | '(:'\n      shift(8);                     // IntegerLiteral\n    }\n    eventHandler.endNonterminal(\"FTLiteralRange\", e0);\n  }\n\n  function try_FTLiteralRange()\n  {\n    switch (l1)\n    {\n    case 131:                       // 'exactly'\n      shiftT(131);                  // 'exactly'\n      lookahead1W(16);              // IntegerLiteral | S^WS | '(:'\n      shiftT(8);                    // IntegerLiteral\n      break;\n    case 82:                        // 'at'\n      shiftT(82);                   // 'at'\n      lookahead1W(129);             // S^WS | '(:' | 'least' | 'most'\n      switch (l1)\n      {\n      case 176:                     // 'least'\n        shiftT(176);                // 'least'\n        lookahead1W(16);            // IntegerLiteral | S^WS | '(:'\n        shiftT(8);                  // IntegerLiteral\n        break;\n      default:\n        shiftT(186);                // 'most'\n        lookahead1W(16);            // IntegerLiteral | S^WS | '(:'\n        shiftT(8);                  // IntegerLiteral\n      }\n      break;\n    default:\n      shiftT(142);                  // 'from'\n      lookahead1W(16);              // IntegerLiteral | S^WS | '(:'\n      shiftT(8);                    // IntegerLiteral\n      lookahead1W(82);              // S^WS | '(:' | 'to'\n      shiftT(253);                  // 'to'\n      lookahead1W(16);              // IntegerLiteral | S^WS | '(:'\n      shiftT(8);                    // IntegerLiteral\n    }\n  }\n\n  function parse_FTStopWordOption()\n  {\n    eventHandler.startNonterminal(\"FTStopWordOption\", e0);\n    switch (l1)\n    {\n    case 244:                       // 'stop'\n      shift(244);                   // 'stop'\n      lookahead1W(89);              // S^WS | '(:' | 'words'\n      shift(279);                   // 'words'\n      lookahead1W(152);             // S^WS | '(' | '(:' | 'at' | 'default'\n      switch (l1)\n      {\n      case 110:                     // 'default'\n        shift(110);                 // 'default'\n        for (;;)\n        {\n          lookahead1W(217);         // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n          if (l1 != 132             // 'except'\n           && l1 != 260)            // 'union'\n          {\n            break;\n          }\n          whitespace();\n          parse_FTStopWordsInclExcl();\n        }\n        break;\n      default:\n        whitespace();\n        parse_FTStopWords();\n        for (;;)\n        {\n          lookahead1W(217);         // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n          if (l1 != 132             // 'except'\n           && l1 != 260)            // 'union'\n          {\n            break;\n          }\n          whitespace();\n          parse_FTStopWordsInclExcl();\n        }\n      }\n      break;\n    default:\n      shift(191);                   // 'no'\n      lookahead1W(78);              // S^WS | '(:' | 'stop'\n      shift(244);                   // 'stop'\n      lookahead1W(89);              // S^WS | '(:' | 'words'\n      shift(279);                   // 'words'\n    }\n    eventHandler.endNonterminal(\"FTStopWordOption\", e0);\n  }\n\n  function try_FTStopWordOption()\n  {\n    switch (l1)\n    {\n    case 244:                       // 'stop'\n      shiftT(244);                  // 'stop'\n      lookahead1W(89);              // S^WS | '(:' | 'words'\n      shiftT(279);                  // 'words'\n      lookahead1W(152);             // S^WS | '(' | '(:' | 'at' | 'default'\n      switch (l1)\n      {\n      case 110:                     // 'default'\n        shiftT(110);                // 'default'\n        for (;;)\n        {\n          lookahead1W(217);         // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n          if (l1 != 132             // 'except'\n           && l1 != 260)            // 'union'\n          {\n            break;\n          }\n          try_FTStopWordsInclExcl();\n        }\n        break;\n      default:\n        try_FTStopWords();\n        for (;;)\n        {\n          lookahead1W(217);         // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n          if (l1 != 132             // 'except'\n           && l1 != 260)            // 'union'\n          {\n            break;\n          }\n          try_FTStopWordsInclExcl();\n        }\n      }\n      break;\n    default:\n      shiftT(191);                  // 'no'\n      lookahead1W(78);              // S^WS | '(:' | 'stop'\n      shiftT(244);                  // 'stop'\n      lookahead1W(89);              // S^WS | '(:' | 'words'\n      shiftT(279);                  // 'words'\n    }\n  }\n\n  function parse_FTStopWords()\n  {\n    eventHandler.startNonterminal(\"FTStopWords\", e0);\n    switch (l1)\n    {\n    case 82:                        // 'at'\n      shift(82);                    // 'at'\n      lookahead1W(15);              // URILiteral | S^WS | '(:'\n      shift(7);                     // URILiteral\n      break;\n    default:\n      shift(35);                    // '('\n      lookahead1W(17);              // StringLiteral | S^WS | '(:'\n      shift(11);                    // StringLiteral\n      for (;;)\n      {\n        lookahead1W(105);           // S^WS | '(:' | ')' | ','\n        if (l1 != 42)               // ','\n        {\n          break;\n        }\n        shift(42);                  // ','\n        lookahead1W(17);            // StringLiteral | S^WS | '(:'\n        shift(11);                  // StringLiteral\n      }\n      shift(38);                    // ')'\n    }\n    eventHandler.endNonterminal(\"FTStopWords\", e0);\n  }\n\n  function try_FTStopWords()\n  {\n    switch (l1)\n    {\n    case 82:                        // 'at'\n      shiftT(82);                   // 'at'\n      lookahead1W(15);              // URILiteral | S^WS | '(:'\n      shiftT(7);                    // URILiteral\n      break;\n    default:\n      shiftT(35);                   // '('\n      lookahead1W(17);              // StringLiteral | S^WS | '(:'\n      shiftT(11);                   // StringLiteral\n      for (;;)\n      {\n        lookahead1W(105);           // S^WS | '(:' | ')' | ','\n        if (l1 != 42)               // ','\n        {\n          break;\n        }\n        shiftT(42);                 // ','\n        lookahead1W(17);            // StringLiteral | S^WS | '(:'\n        shiftT(11);                 // StringLiteral\n      }\n      shiftT(38);                   // ')'\n    }\n  }\n\n  function parse_FTStopWordsInclExcl()\n  {\n    eventHandler.startNonterminal(\"FTStopWordsInclExcl\", e0);\n    switch (l1)\n    {\n    case 260:                       // 'union'\n      shift(260);                   // 'union'\n      break;\n    default:\n      shift(132);                   // 'except'\n    }\n    lookahead1W(103);               // S^WS | '(' | '(:' | 'at'\n    whitespace();\n    parse_FTStopWords();\n    eventHandler.endNonterminal(\"FTStopWordsInclExcl\", e0);\n  }\n\n  function try_FTStopWordsInclExcl()\n  {\n    switch (l1)\n    {\n    case 260:                       // 'union'\n      shiftT(260);                  // 'union'\n      break;\n    default:\n      shiftT(132);                  // 'except'\n    }\n    lookahead1W(103);               // S^WS | '(' | '(:' | 'at'\n    try_FTStopWords();\n  }\n\n  function parse_FTLanguageOption()\n  {\n    eventHandler.startNonterminal(\"FTLanguageOption\", e0);\n    shift(172);                     // 'language'\n    lookahead1W(17);                // StringLiteral | S^WS | '(:'\n    shift(11);                      // StringLiteral\n    eventHandler.endNonterminal(\"FTLanguageOption\", e0);\n  }\n\n  function try_FTLanguageOption()\n  {\n    shiftT(172);                    // 'language'\n    lookahead1W(17);                // StringLiteral | S^WS | '(:'\n    shiftT(11);                     // StringLiteral\n  }\n\n  function parse_FTWildCardOption()\n  {\n    eventHandler.startNonterminal(\"FTWildCardOption\", e0);\n    switch (l1)\n    {\n    case 274:                       // 'wildcards'\n      shift(274);                   // 'wildcards'\n      break;\n    default:\n      shift(191);                   // 'no'\n      lookahead1W(87);              // S^WS | '(:' | 'wildcards'\n      shift(274);                   // 'wildcards'\n    }\n    eventHandler.endNonterminal(\"FTWildCardOption\", e0);\n  }\n\n  function try_FTWildCardOption()\n  {\n    switch (l1)\n    {\n    case 274:                       // 'wildcards'\n      shiftT(274);                  // 'wildcards'\n      break;\n    default:\n      shiftT(191);                  // 'no'\n      lookahead1W(87);              // S^WS | '(:' | 'wildcards'\n      shiftT(274);                  // 'wildcards'\n    }\n  }\n\n  function parse_FTExtensionOption()\n  {\n    eventHandler.startNonterminal(\"FTExtensionOption\", e0);\n    shift(203);                     // 'option'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_EQName();\n    lookahead1W(17);                // StringLiteral | S^WS | '(:'\n    shift(11);                      // StringLiteral\n    eventHandler.endNonterminal(\"FTExtensionOption\", e0);\n  }\n\n  function try_FTExtensionOption()\n  {\n    shiftT(203);                    // 'option'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_EQName();\n    lookahead1W(17);                // StringLiteral | S^WS | '(:'\n    shiftT(11);                     // StringLiteral\n  }\n\n  function parse_FTIgnoreOption()\n  {\n    eventHandler.startNonterminal(\"FTIgnoreOption\", e0);\n    shift(277);                     // 'without'\n    lookahead1W(45);                // S^WS | '(:' | 'content'\n    shift(101);                     // 'content'\n    lookahead1W(266);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_UnionExpr();\n    eventHandler.endNonterminal(\"FTIgnoreOption\", e0);\n  }\n\n  function try_FTIgnoreOption()\n  {\n    shiftT(277);                    // 'without'\n    lookahead1W(45);                // S^WS | '(:' | 'content'\n    shiftT(101);                    // 'content'\n    lookahead1W(266);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_UnionExpr();\n  }\n\n  function parse_CollectionDecl()\n  {\n    eventHandler.startNonterminal(\"CollectionDecl\", e0);\n    shift(96);                      // 'collection'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_EQName();\n    lookahead1W(111);               // S^WS | '(:' | ';' | 'as'\n    if (l1 == 80)                   // 'as'\n    {\n      whitespace();\n      parse_CollectionTypeDecl();\n    }\n    eventHandler.endNonterminal(\"CollectionDecl\", e0);\n  }\n\n  function parse_CollectionTypeDecl()\n  {\n    eventHandler.startNonterminal(\"CollectionTypeDecl\", e0);\n    shift(80);                      // 'as'\n    lookahead1W(200);               // S^WS | '(:' | 'attribute' | 'comment' | 'document-node' | 'element' |\n    whitespace();\n    parse_KindTest();\n    lookahead1W(171);               // S^WS | '(:' | '*' | '+' | ';' | '?'\n    if (l1 != 54)                   // ';'\n    {\n      whitespace();\n      parse_OccurrenceIndicator();\n    }\n    eventHandler.endNonterminal(\"CollectionTypeDecl\", e0);\n  }\n\n  function parse_IndexName()\n  {\n    eventHandler.startNonterminal(\"IndexName\", e0);\n    parse_EQName();\n    eventHandler.endNonterminal(\"IndexName\", e0);\n  }\n\n  function parse_IndexDomainExpr()\n  {\n    eventHandler.startNonterminal(\"IndexDomainExpr\", e0);\n    parse_PathExpr();\n    eventHandler.endNonterminal(\"IndexDomainExpr\", e0);\n  }\n\n  function parse_IndexKeySpec()\n  {\n    eventHandler.startNonterminal(\"IndexKeySpec\", e0);\n    parse_IndexKeyExpr();\n    if (l1 == 80)                   // 'as'\n    {\n      whitespace();\n      parse_IndexKeyTypeDecl();\n    }\n    lookahead1W(156);               // S^WS | '(:' | ',' | ';' | 'collation'\n    if (l1 == 95)                   // 'collation'\n    {\n      whitespace();\n      parse_IndexKeyCollation();\n    }\n    eventHandler.endNonterminal(\"IndexKeySpec\", e0);\n  }\n\n  function parse_IndexKeyExpr()\n  {\n    eventHandler.startNonterminal(\"IndexKeyExpr\", e0);\n    parse_PathExpr();\n    eventHandler.endNonterminal(\"IndexKeyExpr\", e0);\n  }\n\n  function parse_IndexKeyTypeDecl()\n  {\n    eventHandler.startNonterminal(\"IndexKeyTypeDecl\", e0);\n    shift(80);                      // 'as'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_AtomicType();\n    lookahead1W(189);               // S^WS | '(:' | '*' | '+' | ',' | ';' | '?' | 'collation'\n    if (l1 == 40                    // '*'\n     || l1 == 41                    // '+'\n     || l1 == 65)                   // '?'\n    {\n      whitespace();\n      parse_OccurrenceIndicator();\n    }\n    eventHandler.endNonterminal(\"IndexKeyTypeDecl\", e0);\n  }\n\n  function parse_AtomicType()\n  {\n    eventHandler.startNonterminal(\"AtomicType\", e0);\n    parse_EQName();\n    eventHandler.endNonterminal(\"AtomicType\", e0);\n  }\n\n  function parse_IndexKeyCollation()\n  {\n    eventHandler.startNonterminal(\"IndexKeyCollation\", e0);\n    shift(95);                      // 'collation'\n    lookahead1W(15);                // URILiteral | S^WS | '(:'\n    shift(7);                       // URILiteral\n    eventHandler.endNonterminal(\"IndexKeyCollation\", e0);\n  }\n\n  function parse_IndexDecl()\n  {\n    eventHandler.startNonterminal(\"IndexDecl\", e0);\n    shift(157);                     // 'index'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_IndexName();\n    lookahead1W(68);                // S^WS | '(:' | 'on'\n    shift(201);                     // 'on'\n    lookahead1W(66);                // S^WS | '(:' | 'nodes'\n    shift(195);                     // 'nodes'\n    lookahead1W(263);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_IndexDomainExpr();\n    shift(88);                      // 'by'\n    lookahead1W(263);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_IndexKeySpec();\n    for (;;)\n    {\n      lookahead1W(107);             // S^WS | '(:' | ',' | ';'\n      if (l1 != 42)                 // ','\n      {\n        break;\n      }\n      shift(42);                    // ','\n      lookahead1W(263);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_IndexKeySpec();\n    }\n    eventHandler.endNonterminal(\"IndexDecl\", e0);\n  }\n\n  function parse_ICDecl()\n  {\n    eventHandler.startNonterminal(\"ICDecl\", e0);\n    shift(163);                     // 'integrity'\n    lookahead1W(43);                // S^WS | '(:' | 'constraint'\n    shift(98);                      // 'constraint'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_EQName();\n    lookahead1W(124);               // S^WS | '(:' | 'foreign' | 'on'\n    switch (l1)\n    {\n    case 201:                       // 'on'\n      whitespace();\n      parse_ICCollection();\n      break;\n    default:\n      whitespace();\n      parse_ICForeignKey();\n    }\n    eventHandler.endNonterminal(\"ICDecl\", e0);\n  }\n\n  function parse_ICCollection()\n  {\n    eventHandler.startNonterminal(\"ICCollection\", e0);\n    shift(201);                     // 'on'\n    lookahead1W(42);                // S^WS | '(:' | 'collection'\n    shift(96);                      // 'collection'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_EQName();\n    lookahead1W(150);               // S^WS | '$' | '(:' | 'foreach' | 'node'\n    switch (l1)\n    {\n    case 31:                        // '$'\n      whitespace();\n      parse_ICCollSequence();\n      break;\n    case 194:                       // 'node'\n      whitespace();\n      parse_ICCollSequenceUnique();\n      break;\n    default:\n      whitespace();\n      parse_ICCollNode();\n    }\n    eventHandler.endNonterminal(\"ICCollection\", e0);\n  }\n\n  function parse_ICCollSequence()\n  {\n    eventHandler.startNonterminal(\"ICCollSequence\", e0);\n    parse_VarRef();\n    lookahead1W(40);                // S^WS | '(:' | 'check'\n    shift(93);                      // 'check'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"ICCollSequence\", e0);\n  }\n\n  function parse_ICCollSequenceUnique()\n  {\n    eventHandler.startNonterminal(\"ICCollSequenceUnique\", e0);\n    shift(194);                     // 'node'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    whitespace();\n    parse_VarRef();\n    lookahead1W(40);                // S^WS | '(:' | 'check'\n    shift(93);                      // 'check'\n    lookahead1W(83);                // S^WS | '(:' | 'unique'\n    shift(261);                     // 'unique'\n    lookahead1W(60);                // S^WS | '(:' | 'key'\n    shift(171);                     // 'key'\n    lookahead1W(263);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_PathExpr();\n    eventHandler.endNonterminal(\"ICCollSequenceUnique\", e0);\n  }\n\n  function parse_ICCollNode()\n  {\n    eventHandler.startNonterminal(\"ICCollNode\", e0);\n    shift(140);                     // 'foreach'\n    lookahead1W(65);                // S^WS | '(:' | 'node'\n    shift(194);                     // 'node'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    whitespace();\n    parse_VarRef();\n    lookahead1W(40);                // S^WS | '(:' | 'check'\n    shift(93);                      // 'check'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"ICCollNode\", e0);\n  }\n\n  function parse_ICForeignKey()\n  {\n    eventHandler.startNonterminal(\"ICForeignKey\", e0);\n    shift(141);                     // 'foreign'\n    lookahead1W(60);                // S^WS | '(:' | 'key'\n    shift(171);                     // 'key'\n    lookahead1W(54);                // S^WS | '(:' | 'from'\n    whitespace();\n    parse_ICForeignKeySource();\n    whitespace();\n    parse_ICForeignKeyTarget();\n    eventHandler.endNonterminal(\"ICForeignKey\", e0);\n  }\n\n  function parse_ICForeignKeySource()\n  {\n    eventHandler.startNonterminal(\"ICForeignKeySource\", e0);\n    shift(142);                     // 'from'\n    lookahead1W(42);                // S^WS | '(:' | 'collection'\n    whitespace();\n    parse_ICForeignKeyValues();\n    eventHandler.endNonterminal(\"ICForeignKeySource\", e0);\n  }\n\n  function parse_ICForeignKeyTarget()\n  {\n    eventHandler.startNonterminal(\"ICForeignKeyTarget\", e0);\n    shift(253);                     // 'to'\n    lookahead1W(42);                // S^WS | '(:' | 'collection'\n    whitespace();\n    parse_ICForeignKeyValues();\n    eventHandler.endNonterminal(\"ICForeignKeyTarget\", e0);\n  }\n\n  function parse_ICForeignKeyValues()\n  {\n    eventHandler.startNonterminal(\"ICForeignKeyValues\", e0);\n    shift(96);                      // 'collection'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_EQName();\n    lookahead1W(65);                // S^WS | '(:' | 'node'\n    shift(194);                     // 'node'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    whitespace();\n    parse_VarRef();\n    lookahead1W(60);                // S^WS | '(:' | 'key'\n    shift(171);                     // 'key'\n    lookahead1W(263);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_PathExpr();\n    eventHandler.endNonterminal(\"ICForeignKeyValues\", e0);\n  }\n\n  function try_Comment()\n  {\n    shiftT(37);                     // '(:'\n    for (;;)\n    {\n      lookahead1(92);               // CommentContents | '(:' | ':)'\n      if (l1 == 51)                 // ':)'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 24:                      // CommentContents\n        shiftT(24);                 // CommentContents\n        break;\n      default:\n        try_Comment();\n      }\n    }\n    shiftT(51);                     // ':)'\n  }\n\n  function try_Whitespace()\n  {\n    switch (l1)\n    {\n    case 22:                        // S^WS\n      shiftT(22);                   // S^WS\n      break;\n    default:\n      try_Comment();\n    }\n  }\n\n  function parse_EQName()\n  {\n    eventHandler.startNonterminal(\"EQName\", e0);\n    lookahead1(241);                // EQName^Token | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' | 'and' |\n    switch (l1)\n    {\n    case 83:                        // 'attribute'\n      shift(83);                    // 'attribute'\n      break;\n    case 97:                        // 'comment'\n      shift(97);                    // 'comment'\n      break;\n    case 121:                       // 'document-node'\n      shift(121);                   // 'document-node'\n      break;\n    case 122:                       // 'element'\n      shift(122);                   // 'element'\n      break;\n    case 125:                       // 'empty-sequence'\n      shift(125);                   // 'empty-sequence'\n      break;\n    case 147:                       // 'function'\n      shift(147);                   // 'function'\n      break;\n    case 154:                       // 'if'\n      shift(154);                   // 'if'\n      break;\n    case 167:                       // 'item'\n      shift(167);                   // 'item'\n      break;\n    case 188:                       // 'namespace-node'\n      shift(188);                   // 'namespace-node'\n      break;\n    case 194:                       // 'node'\n      shift(194);                   // 'node'\n      break;\n    case 220:                       // 'processing-instruction'\n      shift(220);                   // 'processing-instruction'\n      break;\n    case 230:                       // 'schema-attribute'\n      shift(230);                   // 'schema-attribute'\n      break;\n    case 231:                       // 'schema-element'\n      shift(231);                   // 'schema-element'\n      break;\n    case 248:                       // 'switch'\n      shift(248);                   // 'switch'\n      break;\n    case 249:                       // 'text'\n      shift(249);                   // 'text'\n      break;\n    case 259:                       // 'typeswitch'\n      shift(259);                   // 'typeswitch'\n      break;\n    case 79:                        // 'array'\n      shift(79);                    // 'array'\n      break;\n    case 169:                       // 'json-item'\n      shift(169);                   // 'json-item'\n      break;\n    case 247:                       // 'structured-item'\n      shift(247);                   // 'structured-item'\n      break;\n    default:\n      parse_FunctionName();\n    }\n    eventHandler.endNonterminal(\"EQName\", e0);\n  }\n\n  function try_EQName()\n  {\n    lookahead1(241);                // EQName^Token | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' | 'and' |\n    switch (l1)\n    {\n    case 83:                        // 'attribute'\n      shiftT(83);                   // 'attribute'\n      break;\n    case 97:                        // 'comment'\n      shiftT(97);                   // 'comment'\n      break;\n    case 121:                       // 'document-node'\n      shiftT(121);                  // 'document-node'\n      break;\n    case 122:                       // 'element'\n      shiftT(122);                  // 'element'\n      break;\n    case 125:                       // 'empty-sequence'\n      shiftT(125);                  // 'empty-sequence'\n      break;\n    case 147:                       // 'function'\n      shiftT(147);                  // 'function'\n      break;\n    case 154:                       // 'if'\n      shiftT(154);                  // 'if'\n      break;\n    case 167:                       // 'item'\n      shiftT(167);                  // 'item'\n      break;\n    case 188:                       // 'namespace-node'\n      shiftT(188);                  // 'namespace-node'\n      break;\n    case 194:                       // 'node'\n      shiftT(194);                  // 'node'\n      break;\n    case 220:                       // 'processing-instruction'\n      shiftT(220);                  // 'processing-instruction'\n      break;\n    case 230:                       // 'schema-attribute'\n      shiftT(230);                  // 'schema-attribute'\n      break;\n    case 231:                       // 'schema-element'\n      shiftT(231);                  // 'schema-element'\n      break;\n    case 248:                       // 'switch'\n      shiftT(248);                  // 'switch'\n      break;\n    case 249:                       // 'text'\n      shiftT(249);                  // 'text'\n      break;\n    case 259:                       // 'typeswitch'\n      shiftT(259);                  // 'typeswitch'\n      break;\n    case 79:                        // 'array'\n      shiftT(79);                   // 'array'\n      break;\n    case 169:                       // 'json-item'\n      shiftT(169);                  // 'json-item'\n      break;\n    case 247:                       // 'structured-item'\n      shiftT(247);                  // 'structured-item'\n      break;\n    default:\n      try_FunctionName();\n    }\n  }\n\n  function parse_FunctionName()\n  {\n    eventHandler.startNonterminal(\"FunctionName\", e0);\n    switch (l1)\n    {\n    case 6:                         // EQName^Token\n      shift(6);                     // EQName^Token\n      break;\n    case 71:                        // 'after'\n      shift(71);                    // 'after'\n      break;\n    case 74:                        // 'ancestor'\n      shift(74);                    // 'ancestor'\n      break;\n    case 75:                        // 'ancestor-or-self'\n      shift(75);                    // 'ancestor-or-self'\n      break;\n    case 76:                        // 'and'\n      shift(76);                    // 'and'\n      break;\n    case 80:                        // 'as'\n      shift(80);                    // 'as'\n      break;\n    case 81:                        // 'ascending'\n      shift(81);                    // 'ascending'\n      break;\n    case 85:                        // 'before'\n      shift(85);                    // 'before'\n      break;\n    case 89:                        // 'case'\n      shift(89);                    // 'case'\n      break;\n    case 90:                        // 'cast'\n      shift(90);                    // 'cast'\n      break;\n    case 91:                        // 'castable'\n      shift(91);                    // 'castable'\n      break;\n    case 94:                        // 'child'\n      shift(94);                    // 'child'\n      break;\n    case 95:                        // 'collation'\n      shift(95);                    // 'collation'\n      break;\n    case 104:                       // 'copy'\n      shift(104);                   // 'copy'\n      break;\n    case 106:                       // 'count'\n      shift(106);                   // 'count'\n      break;\n    case 109:                       // 'declare'\n      shift(109);                   // 'declare'\n      break;\n    case 110:                       // 'default'\n      shift(110);                   // 'default'\n      break;\n    case 111:                       // 'delete'\n      shift(111);                   // 'delete'\n      break;\n    case 112:                       // 'descendant'\n      shift(112);                   // 'descendant'\n      break;\n    case 113:                       // 'descendant-or-self'\n      shift(113);                   // 'descendant-or-self'\n      break;\n    case 114:                       // 'descending'\n      shift(114);                   // 'descending'\n      break;\n    case 119:                       // 'div'\n      shift(119);                   // 'div'\n      break;\n    case 120:                       // 'document'\n      shift(120);                   // 'document'\n      break;\n    case 123:                       // 'else'\n      shift(123);                   // 'else'\n      break;\n    case 124:                       // 'empty'\n      shift(124);                   // 'empty'\n      break;\n    case 127:                       // 'end'\n      shift(127);                   // 'end'\n      break;\n    case 129:                       // 'eq'\n      shift(129);                   // 'eq'\n      break;\n    case 130:                       // 'every'\n      shift(130);                   // 'every'\n      break;\n    case 132:                       // 'except'\n      shift(132);                   // 'except'\n      break;\n    case 136:                       // 'first'\n      shift(136);                   // 'first'\n      break;\n    case 137:                       // 'following'\n      shift(137);                   // 'following'\n      break;\n    case 138:                       // 'following-sibling'\n      shift(138);                   // 'following-sibling'\n      break;\n    case 139:                       // 'for'\n      shift(139);                   // 'for'\n      break;\n    case 148:                       // 'ge'\n      shift(148);                   // 'ge'\n      break;\n    case 150:                       // 'group'\n      shift(150);                   // 'group'\n      break;\n    case 152:                       // 'gt'\n      shift(152);                   // 'gt'\n      break;\n    case 153:                       // 'idiv'\n      shift(153);                   // 'idiv'\n      break;\n    case 155:                       // 'import'\n      shift(155);                   // 'import'\n      break;\n    case 161:                       // 'insert'\n      shift(161);                   // 'insert'\n      break;\n    case 162:                       // 'instance'\n      shift(162);                   // 'instance'\n      break;\n    case 164:                       // 'intersect'\n      shift(164);                   // 'intersect'\n      break;\n    case 165:                       // 'into'\n      shift(165);                   // 'into'\n      break;\n    case 166:                       // 'is'\n      shift(166);                   // 'is'\n      break;\n    case 173:                       // 'last'\n      shift(173);                   // 'last'\n      break;\n    case 175:                       // 'le'\n      shift(175);                   // 'le'\n      break;\n    case 177:                       // 'let'\n      shift(177);                   // 'let'\n      break;\n    case 181:                       // 'lt'\n      shift(181);                   // 'lt'\n      break;\n    case 183:                       // 'mod'\n      shift(183);                   // 'mod'\n      break;\n    case 184:                       // 'modify'\n      shift(184);                   // 'modify'\n      break;\n    case 185:                       // 'module'\n      shift(185);                   // 'module'\n      break;\n    case 187:                       // 'namespace'\n      shift(187);                   // 'namespace'\n      break;\n    case 189:                       // 'ne'\n      shift(189);                   // 'ne'\n      break;\n    case 202:                       // 'only'\n      shift(202);                   // 'only'\n      break;\n    case 204:                       // 'or'\n      shift(204);                   // 'or'\n      break;\n    case 205:                       // 'order'\n      shift(205);                   // 'order'\n      break;\n    case 206:                       // 'ordered'\n      shift(206);                   // 'ordered'\n      break;\n    case 210:                       // 'parent'\n      shift(210);                   // 'parent'\n      break;\n    case 216:                       // 'preceding'\n      shift(216);                   // 'preceding'\n      break;\n    case 217:                       // 'preceding-sibling'\n      shift(217);                   // 'preceding-sibling'\n      break;\n    case 222:                       // 'rename'\n      shift(222);                   // 'rename'\n      break;\n    case 223:                       // 'replace'\n      shift(223);                   // 'replace'\n      break;\n    case 224:                       // 'return'\n      shift(224);                   // 'return'\n      break;\n    case 228:                       // 'satisfies'\n      shift(228);                   // 'satisfies'\n      break;\n    case 234:                       // 'self'\n      shift(234);                   // 'self'\n      break;\n    case 240:                       // 'some'\n      shift(240);                   // 'some'\n      break;\n    case 241:                       // 'stable'\n      shift(241);                   // 'stable'\n      break;\n    case 242:                       // 'start'\n      shift(242);                   // 'start'\n      break;\n    case 253:                       // 'to'\n      shift(253);                   // 'to'\n      break;\n    case 254:                       // 'treat'\n      shift(254);                   // 'treat'\n      break;\n    case 256:                       // 'try'\n      shift(256);                   // 'try'\n      break;\n    case 260:                       // 'union'\n      shift(260);                   // 'union'\n      break;\n    case 262:                       // 'unordered'\n      shift(262);                   // 'unordered'\n      break;\n    case 266:                       // 'validate'\n      shift(266);                   // 'validate'\n      break;\n    case 272:                       // 'where'\n      shift(272);                   // 'where'\n      break;\n    case 276:                       // 'with'\n      shift(276);                   // 'with'\n      break;\n    case 170:                       // 'jsoniq'\n      shift(170);                   // 'jsoniq'\n      break;\n    case 73:                        // 'allowing'\n      shift(73);                    // 'allowing'\n      break;\n    case 82:                        // 'at'\n      shift(82);                    // 'at'\n      break;\n    case 84:                        // 'base-uri'\n      shift(84);                    // 'base-uri'\n      break;\n    case 86:                        // 'boundary-space'\n      shift(86);                    // 'boundary-space'\n      break;\n    case 87:                        // 'break'\n      shift(87);                    // 'break'\n      break;\n    case 92:                        // 'catch'\n      shift(92);                    // 'catch'\n      break;\n    case 99:                        // 'construction'\n      shift(99);                    // 'construction'\n      break;\n    case 102:                       // 'context'\n      shift(102);                   // 'context'\n      break;\n    case 103:                       // 'continue'\n      shift(103);                   // 'continue'\n      break;\n    case 105:                       // 'copy-namespaces'\n      shift(105);                   // 'copy-namespaces'\n      break;\n    case 107:                       // 'decimal-format'\n      shift(107);                   // 'decimal-format'\n      break;\n    case 126:                       // 'encoding'\n      shift(126);                   // 'encoding'\n      break;\n    case 133:                       // 'exit'\n      shift(133);                   // 'exit'\n      break;\n    case 134:                       // 'external'\n      shift(134);                   // 'external'\n      break;\n    case 143:                       // 'ft-option'\n      shift(143);                   // 'ft-option'\n      break;\n    case 156:                       // 'in'\n      shift(156);                   // 'in'\n      break;\n    case 157:                       // 'index'\n      shift(157);                   // 'index'\n      break;\n    case 163:                       // 'integrity'\n      shift(163);                   // 'integrity'\n      break;\n    case 174:                       // 'lax'\n      shift(174);                   // 'lax'\n      break;\n    case 195:                       // 'nodes'\n      shift(195);                   // 'nodes'\n      break;\n    case 203:                       // 'option'\n      shift(203);                   // 'option'\n      break;\n    case 207:                       // 'ordering'\n      shift(207);                   // 'ordering'\n      break;\n    case 226:                       // 'revalidation'\n      shift(226);                   // 'revalidation'\n      break;\n    case 229:                       // 'schema'\n      shift(229);                   // 'schema'\n      break;\n    case 232:                       // 'score'\n      shift(232);                   // 'score'\n      break;\n    case 239:                       // 'sliding'\n      shift(239);                   // 'sliding'\n      break;\n    case 245:                       // 'strict'\n      shift(245);                   // 'strict'\n      break;\n    case 257:                       // 'tumbling'\n      shift(257);                   // 'tumbling'\n      break;\n    case 258:                       // 'type'\n      shift(258);                   // 'type'\n      break;\n    case 263:                       // 'updating'\n      shift(263);                   // 'updating'\n      break;\n    case 267:                       // 'value'\n      shift(267);                   // 'value'\n      break;\n    case 268:                       // 'variable'\n      shift(268);                   // 'variable'\n      break;\n    case 269:                       // 'version'\n      shift(269);                   // 'version'\n      break;\n    case 273:                       // 'while'\n      shift(273);                   // 'while'\n      break;\n    case 98:                        // 'constraint'\n      shift(98);                    // 'constraint'\n      break;\n    case 179:                       // 'loop'\n      shift(179);                   // 'loop'\n      break;\n    case 225:                       // 'returning'\n      shift(225);                   // 'returning'\n      break;\n    case 78:                        // 'append'\n      shift(78);                    // 'append'\n      break;\n    case 135:                       // 'false'\n      shift(135);                   // 'false'\n      break;\n    case 142:                       // 'from'\n      shift(142);                   // 'from'\n      break;\n    case 197:                       // 'null'\n      shift(197);                   // 'null'\n      break;\n    case 168:                       // 'json'\n      shift(168);                   // 'json'\n      break;\n    case 198:                       // 'object'\n      shift(198);                   // 'object'\n      break;\n    case 233:                       // 'select'\n      shift(233);                   // 'select'\n      break;\n    default:\n      shift(255);                   // 'true'\n    }\n    eventHandler.endNonterminal(\"FunctionName\", e0);\n  }\n\n  function try_FunctionName()\n  {\n    switch (l1)\n    {\n    case 6:                         // EQName^Token\n      shiftT(6);                    // EQName^Token\n      break;\n    case 71:                        // 'after'\n      shiftT(71);                   // 'after'\n      break;\n    case 74:                        // 'ancestor'\n      shiftT(74);                   // 'ancestor'\n      break;\n    case 75:                        // 'ancestor-or-self'\n      shiftT(75);                   // 'ancestor-or-self'\n      break;\n    case 76:                        // 'and'\n      shiftT(76);                   // 'and'\n      break;\n    case 80:                        // 'as'\n      shiftT(80);                   // 'as'\n      break;\n    case 81:                        // 'ascending'\n      shiftT(81);                   // 'ascending'\n      break;\n    case 85:                        // 'before'\n      shiftT(85);                   // 'before'\n      break;\n    case 89:                        // 'case'\n      shiftT(89);                   // 'case'\n      break;\n    case 90:                        // 'cast'\n      shiftT(90);                   // 'cast'\n      break;\n    case 91:                        // 'castable'\n      shiftT(91);                   // 'castable'\n      break;\n    case 94:                        // 'child'\n      shiftT(94);                   // 'child'\n      break;\n    case 95:                        // 'collation'\n      shiftT(95);                   // 'collation'\n      break;\n    case 104:                       // 'copy'\n      shiftT(104);                  // 'copy'\n      break;\n    case 106:                       // 'count'\n      shiftT(106);                  // 'count'\n      break;\n    case 109:                       // 'declare'\n      shiftT(109);                  // 'declare'\n      break;\n    case 110:                       // 'default'\n      shiftT(110);                  // 'default'\n      break;\n    case 111:                       // 'delete'\n      shiftT(111);                  // 'delete'\n      break;\n    case 112:                       // 'descendant'\n      shiftT(112);                  // 'descendant'\n      break;\n    case 113:                       // 'descendant-or-self'\n      shiftT(113);                  // 'descendant-or-self'\n      break;\n    case 114:                       // 'descending'\n      shiftT(114);                  // 'descending'\n      break;\n    case 119:                       // 'div'\n      shiftT(119);                  // 'div'\n      break;\n    case 120:                       // 'document'\n      shiftT(120);                  // 'document'\n      break;\n    case 123:                       // 'else'\n      shiftT(123);                  // 'else'\n      break;\n    case 124:                       // 'empty'\n      shiftT(124);                  // 'empty'\n      break;\n    case 127:                       // 'end'\n      shiftT(127);                  // 'end'\n      break;\n    case 129:                       // 'eq'\n      shiftT(129);                  // 'eq'\n      break;\n    case 130:                       // 'every'\n      shiftT(130);                  // 'every'\n      break;\n    case 132:                       // 'except'\n      shiftT(132);                  // 'except'\n      break;\n    case 136:                       // 'first'\n      shiftT(136);                  // 'first'\n      break;\n    case 137:                       // 'following'\n      shiftT(137);                  // 'following'\n      break;\n    case 138:                       // 'following-sibling'\n      shiftT(138);                  // 'following-sibling'\n      break;\n    case 139:                       // 'for'\n      shiftT(139);                  // 'for'\n      break;\n    case 148:                       // 'ge'\n      shiftT(148);                  // 'ge'\n      break;\n    case 150:                       // 'group'\n      shiftT(150);                  // 'group'\n      break;\n    case 152:                       // 'gt'\n      shiftT(152);                  // 'gt'\n      break;\n    case 153:                       // 'idiv'\n      shiftT(153);                  // 'idiv'\n      break;\n    case 155:                       // 'import'\n      shiftT(155);                  // 'import'\n      break;\n    case 161:                       // 'insert'\n      shiftT(161);                  // 'insert'\n      break;\n    case 162:                       // 'instance'\n      shiftT(162);                  // 'instance'\n      break;\n    case 164:                       // 'intersect'\n      shiftT(164);                  // 'intersect'\n      break;\n    case 165:                       // 'into'\n      shiftT(165);                  // 'into'\n      break;\n    case 166:                       // 'is'\n      shiftT(166);                  // 'is'\n      break;\n    case 173:                       // 'last'\n      shiftT(173);                  // 'last'\n      break;\n    case 175:                       // 'le'\n      shiftT(175);                  // 'le'\n      break;\n    case 177:                       // 'let'\n      shiftT(177);                  // 'let'\n      break;\n    case 181:                       // 'lt'\n      shiftT(181);                  // 'lt'\n      break;\n    case 183:                       // 'mod'\n      shiftT(183);                  // 'mod'\n      break;\n    case 184:                       // 'modify'\n      shiftT(184);                  // 'modify'\n      break;\n    case 185:                       // 'module'\n      shiftT(185);                  // 'module'\n      break;\n    case 187:                       // 'namespace'\n      shiftT(187);                  // 'namespace'\n      break;\n    case 189:                       // 'ne'\n      shiftT(189);                  // 'ne'\n      break;\n    case 202:                       // 'only'\n      shiftT(202);                  // 'only'\n      break;\n    case 204:                       // 'or'\n      shiftT(204);                  // 'or'\n      break;\n    case 205:                       // 'order'\n      shiftT(205);                  // 'order'\n      break;\n    case 206:                       // 'ordered'\n      shiftT(206);                  // 'ordered'\n      break;\n    case 210:                       // 'parent'\n      shiftT(210);                  // 'parent'\n      break;\n    case 216:                       // 'preceding'\n      shiftT(216);                  // 'preceding'\n      break;\n    case 217:                       // 'preceding-sibling'\n      shiftT(217);                  // 'preceding-sibling'\n      break;\n    case 222:                       // 'rename'\n      shiftT(222);                  // 'rename'\n      break;\n    case 223:                       // 'replace'\n      shiftT(223);                  // 'replace'\n      break;\n    case 224:                       // 'return'\n      shiftT(224);                  // 'return'\n      break;\n    case 228:                       // 'satisfies'\n      shiftT(228);                  // 'satisfies'\n      break;\n    case 234:                       // 'self'\n      shiftT(234);                  // 'self'\n      break;\n    case 240:                       // 'some'\n      shiftT(240);                  // 'some'\n      break;\n    case 241:                       // 'stable'\n      shiftT(241);                  // 'stable'\n      break;\n    case 242:                       // 'start'\n      shiftT(242);                  // 'start'\n      break;\n    case 253:                       // 'to'\n      shiftT(253);                  // 'to'\n      break;\n    case 254:                       // 'treat'\n      shiftT(254);                  // 'treat'\n      break;\n    case 256:                       // 'try'\n      shiftT(256);                  // 'try'\n      break;\n    case 260:                       // 'union'\n      shiftT(260);                  // 'union'\n      break;\n    case 262:                       // 'unordered'\n      shiftT(262);                  // 'unordered'\n      break;\n    case 266:                       // 'validate'\n      shiftT(266);                  // 'validate'\n      break;\n    case 272:                       // 'where'\n      shiftT(272);                  // 'where'\n      break;\n    case 276:                       // 'with'\n      shiftT(276);                  // 'with'\n      break;\n    case 170:                       // 'jsoniq'\n      shiftT(170);                  // 'jsoniq'\n      break;\n    case 73:                        // 'allowing'\n      shiftT(73);                   // 'allowing'\n      break;\n    case 82:                        // 'at'\n      shiftT(82);                   // 'at'\n      break;\n    case 84:                        // 'base-uri'\n      shiftT(84);                   // 'base-uri'\n      break;\n    case 86:                        // 'boundary-space'\n      shiftT(86);                   // 'boundary-space'\n      break;\n    case 87:                        // 'break'\n      shiftT(87);                   // 'break'\n      break;\n    case 92:                        // 'catch'\n      shiftT(92);                   // 'catch'\n      break;\n    case 99:                        // 'construction'\n      shiftT(99);                   // 'construction'\n      break;\n    case 102:                       // 'context'\n      shiftT(102);                  // 'context'\n      break;\n    case 103:                       // 'continue'\n      shiftT(103);                  // 'continue'\n      break;\n    case 105:                       // 'copy-namespaces'\n      shiftT(105);                  // 'copy-namespaces'\n      break;\n    case 107:                       // 'decimal-format'\n      shiftT(107);                  // 'decimal-format'\n      break;\n    case 126:                       // 'encoding'\n      shiftT(126);                  // 'encoding'\n      break;\n    case 133:                       // 'exit'\n      shiftT(133);                  // 'exit'\n      break;\n    case 134:                       // 'external'\n      shiftT(134);                  // 'external'\n      break;\n    case 143:                       // 'ft-option'\n      shiftT(143);                  // 'ft-option'\n      break;\n    case 156:                       // 'in'\n      shiftT(156);                  // 'in'\n      break;\n    case 157:                       // 'index'\n      shiftT(157);                  // 'index'\n      break;\n    case 163:                       // 'integrity'\n      shiftT(163);                  // 'integrity'\n      break;\n    case 174:                       // 'lax'\n      shiftT(174);                  // 'lax'\n      break;\n    case 195:                       // 'nodes'\n      shiftT(195);                  // 'nodes'\n      break;\n    case 203:                       // 'option'\n      shiftT(203);                  // 'option'\n      break;\n    case 207:                       // 'ordering'\n      shiftT(207);                  // 'ordering'\n      break;\n    case 226:                       // 'revalidation'\n      shiftT(226);                  // 'revalidation'\n      break;\n    case 229:                       // 'schema'\n      shiftT(229);                  // 'schema'\n      break;\n    case 232:                       // 'score'\n      shiftT(232);                  // 'score'\n      break;\n    case 239:                       // 'sliding'\n      shiftT(239);                  // 'sliding'\n      break;\n    case 245:                       // 'strict'\n      shiftT(245);                  // 'strict'\n      break;\n    case 257:                       // 'tumbling'\n      shiftT(257);                  // 'tumbling'\n      break;\n    case 258:                       // 'type'\n      shiftT(258);                  // 'type'\n      break;\n    case 263:                       // 'updating'\n      shiftT(263);                  // 'updating'\n      break;\n    case 267:                       // 'value'\n      shiftT(267);                  // 'value'\n      break;\n    case 268:                       // 'variable'\n      shiftT(268);                  // 'variable'\n      break;\n    case 269:                       // 'version'\n      shiftT(269);                  // 'version'\n      break;\n    case 273:                       // 'while'\n      shiftT(273);                  // 'while'\n      break;\n    case 98:                        // 'constraint'\n      shiftT(98);                   // 'constraint'\n      break;\n    case 179:                       // 'loop'\n      shiftT(179);                  // 'loop'\n      break;\n    case 225:                       // 'returning'\n      shiftT(225);                  // 'returning'\n      break;\n    case 78:                        // 'append'\n      shiftT(78);                   // 'append'\n      break;\n    case 135:                       // 'false'\n      shiftT(135);                  // 'false'\n      break;\n    case 142:                       // 'from'\n      shiftT(142);                  // 'from'\n      break;\n    case 197:                       // 'null'\n      shiftT(197);                  // 'null'\n      break;\n    case 168:                       // 'json'\n      shiftT(168);                  // 'json'\n      break;\n    case 198:                       // 'object'\n      shiftT(198);                  // 'object'\n      break;\n    case 233:                       // 'select'\n      shiftT(233);                  // 'select'\n      break;\n    default:\n      shiftT(255);                  // 'true'\n    }\n  }\n\n  function parse_NCName()\n  {\n    eventHandler.startNonterminal(\"NCName\", e0);\n    switch (l1)\n    {\n    case 19:                        // NCName^Token\n      shift(19);                    // NCName^Token\n      break;\n    case 71:                        // 'after'\n      shift(71);                    // 'after'\n      break;\n    case 76:                        // 'and'\n      shift(76);                    // 'and'\n      break;\n    case 80:                        // 'as'\n      shift(80);                    // 'as'\n      break;\n    case 81:                        // 'ascending'\n      shift(81);                    // 'ascending'\n      break;\n    case 85:                        // 'before'\n      shift(85);                    // 'before'\n      break;\n    case 89:                        // 'case'\n      shift(89);                    // 'case'\n      break;\n    case 90:                        // 'cast'\n      shift(90);                    // 'cast'\n      break;\n    case 91:                        // 'castable'\n      shift(91);                    // 'castable'\n      break;\n    case 95:                        // 'collation'\n      shift(95);                    // 'collation'\n      break;\n    case 106:                       // 'count'\n      shift(106);                   // 'count'\n      break;\n    case 110:                       // 'default'\n      shift(110);                   // 'default'\n      break;\n    case 114:                       // 'descending'\n      shift(114);                   // 'descending'\n      break;\n    case 119:                       // 'div'\n      shift(119);                   // 'div'\n      break;\n    case 123:                       // 'else'\n      shift(123);                   // 'else'\n      break;\n    case 124:                       // 'empty'\n      shift(124);                   // 'empty'\n      break;\n    case 127:                       // 'end'\n      shift(127);                   // 'end'\n      break;\n    case 129:                       // 'eq'\n      shift(129);                   // 'eq'\n      break;\n    case 132:                       // 'except'\n      shift(132);                   // 'except'\n      break;\n    case 139:                       // 'for'\n      shift(139);                   // 'for'\n      break;\n    case 148:                       // 'ge'\n      shift(148);                   // 'ge'\n      break;\n    case 150:                       // 'group'\n      shift(150);                   // 'group'\n      break;\n    case 152:                       // 'gt'\n      shift(152);                   // 'gt'\n      break;\n    case 153:                       // 'idiv'\n      shift(153);                   // 'idiv'\n      break;\n    case 162:                       // 'instance'\n      shift(162);                   // 'instance'\n      break;\n    case 164:                       // 'intersect'\n      shift(164);                   // 'intersect'\n      break;\n    case 165:                       // 'into'\n      shift(165);                   // 'into'\n      break;\n    case 166:                       // 'is'\n      shift(166);                   // 'is'\n      break;\n    case 175:                       // 'le'\n      shift(175);                   // 'le'\n      break;\n    case 177:                       // 'let'\n      shift(177);                   // 'let'\n      break;\n    case 181:                       // 'lt'\n      shift(181);                   // 'lt'\n      break;\n    case 183:                       // 'mod'\n      shift(183);                   // 'mod'\n      break;\n    case 184:                       // 'modify'\n      shift(184);                   // 'modify'\n      break;\n    case 189:                       // 'ne'\n      shift(189);                   // 'ne'\n      break;\n    case 202:                       // 'only'\n      shift(202);                   // 'only'\n      break;\n    case 204:                       // 'or'\n      shift(204);                   // 'or'\n      break;\n    case 205:                       // 'order'\n      shift(205);                   // 'order'\n      break;\n    case 224:                       // 'return'\n      shift(224);                   // 'return'\n      break;\n    case 228:                       // 'satisfies'\n      shift(228);                   // 'satisfies'\n      break;\n    case 241:                       // 'stable'\n      shift(241);                   // 'stable'\n      break;\n    case 242:                       // 'start'\n      shift(242);                   // 'start'\n      break;\n    case 253:                       // 'to'\n      shift(253);                   // 'to'\n      break;\n    case 254:                       // 'treat'\n      shift(254);                   // 'treat'\n      break;\n    case 260:                       // 'union'\n      shift(260);                   // 'union'\n      break;\n    case 272:                       // 'where'\n      shift(272);                   // 'where'\n      break;\n    case 276:                       // 'with'\n      shift(276);                   // 'with'\n      break;\n    case 74:                        // 'ancestor'\n      shift(74);                    // 'ancestor'\n      break;\n    case 75:                        // 'ancestor-or-self'\n      shift(75);                    // 'ancestor-or-self'\n      break;\n    case 83:                        // 'attribute'\n      shift(83);                    // 'attribute'\n      break;\n    case 94:                        // 'child'\n      shift(94);                    // 'child'\n      break;\n    case 97:                        // 'comment'\n      shift(97);                    // 'comment'\n      break;\n    case 104:                       // 'copy'\n      shift(104);                   // 'copy'\n      break;\n    case 109:                       // 'declare'\n      shift(109);                   // 'declare'\n      break;\n    case 111:                       // 'delete'\n      shift(111);                   // 'delete'\n      break;\n    case 112:                       // 'descendant'\n      shift(112);                   // 'descendant'\n      break;\n    case 113:                       // 'descendant-or-self'\n      shift(113);                   // 'descendant-or-self'\n      break;\n    case 120:                       // 'document'\n      shift(120);                   // 'document'\n      break;\n    case 121:                       // 'document-node'\n      shift(121);                   // 'document-node'\n      break;\n    case 122:                       // 'element'\n      shift(122);                   // 'element'\n      break;\n    case 125:                       // 'empty-sequence'\n      shift(125);                   // 'empty-sequence'\n      break;\n    case 130:                       // 'every'\n      shift(130);                   // 'every'\n      break;\n    case 136:                       // 'first'\n      shift(136);                   // 'first'\n      break;\n    case 137:                       // 'following'\n      shift(137);                   // 'following'\n      break;\n    case 138:                       // 'following-sibling'\n      shift(138);                   // 'following-sibling'\n      break;\n    case 147:                       // 'function'\n      shift(147);                   // 'function'\n      break;\n    case 154:                       // 'if'\n      shift(154);                   // 'if'\n      break;\n    case 155:                       // 'import'\n      shift(155);                   // 'import'\n      break;\n    case 161:                       // 'insert'\n      shift(161);                   // 'insert'\n      break;\n    case 167:                       // 'item'\n      shift(167);                   // 'item'\n      break;\n    case 173:                       // 'last'\n      shift(173);                   // 'last'\n      break;\n    case 185:                       // 'module'\n      shift(185);                   // 'module'\n      break;\n    case 187:                       // 'namespace'\n      shift(187);                   // 'namespace'\n      break;\n    case 188:                       // 'namespace-node'\n      shift(188);                   // 'namespace-node'\n      break;\n    case 194:                       // 'node'\n      shift(194);                   // 'node'\n      break;\n    case 206:                       // 'ordered'\n      shift(206);                   // 'ordered'\n      break;\n    case 210:                       // 'parent'\n      shift(210);                   // 'parent'\n      break;\n    case 216:                       // 'preceding'\n      shift(216);                   // 'preceding'\n      break;\n    case 217:                       // 'preceding-sibling'\n      shift(217);                   // 'preceding-sibling'\n      break;\n    case 220:                       // 'processing-instruction'\n      shift(220);                   // 'processing-instruction'\n      break;\n    case 222:                       // 'rename'\n      shift(222);                   // 'rename'\n      break;\n    case 223:                       // 'replace'\n      shift(223);                   // 'replace'\n      break;\n    case 230:                       // 'schema-attribute'\n      shift(230);                   // 'schema-attribute'\n      break;\n    case 231:                       // 'schema-element'\n      shift(231);                   // 'schema-element'\n      break;\n    case 234:                       // 'self'\n      shift(234);                   // 'self'\n      break;\n    case 240:                       // 'some'\n      shift(240);                   // 'some'\n      break;\n    case 248:                       // 'switch'\n      shift(248);                   // 'switch'\n      break;\n    case 249:                       // 'text'\n      shift(249);                   // 'text'\n      break;\n    case 256:                       // 'try'\n      shift(256);                   // 'try'\n      break;\n    case 259:                       // 'typeswitch'\n      shift(259);                   // 'typeswitch'\n      break;\n    case 262:                       // 'unordered'\n      shift(262);                   // 'unordered'\n      break;\n    case 266:                       // 'validate'\n      shift(266);                   // 'validate'\n      break;\n    case 268:                       // 'variable'\n      shift(268);                   // 'variable'\n      break;\n    case 170:                       // 'jsoniq'\n      shift(170);                   // 'jsoniq'\n      break;\n    case 73:                        // 'allowing'\n      shift(73);                    // 'allowing'\n      break;\n    case 82:                        // 'at'\n      shift(82);                    // 'at'\n      break;\n    case 84:                        // 'base-uri'\n      shift(84);                    // 'base-uri'\n      break;\n    case 86:                        // 'boundary-space'\n      shift(86);                    // 'boundary-space'\n      break;\n    case 87:                        // 'break'\n      shift(87);                    // 'break'\n      break;\n    case 92:                        // 'catch'\n      shift(92);                    // 'catch'\n      break;\n    case 99:                        // 'construction'\n      shift(99);                    // 'construction'\n      break;\n    case 102:                       // 'context'\n      shift(102);                   // 'context'\n      break;\n    case 103:                       // 'continue'\n      shift(103);                   // 'continue'\n      break;\n    case 105:                       // 'copy-namespaces'\n      shift(105);                   // 'copy-namespaces'\n      break;\n    case 107:                       // 'decimal-format'\n      shift(107);                   // 'decimal-format'\n      break;\n    case 126:                       // 'encoding'\n      shift(126);                   // 'encoding'\n      break;\n    case 133:                       // 'exit'\n      shift(133);                   // 'exit'\n      break;\n    case 134:                       // 'external'\n      shift(134);                   // 'external'\n      break;\n    case 143:                       // 'ft-option'\n      shift(143);                   // 'ft-option'\n      break;\n    case 156:                       // 'in'\n      shift(156);                   // 'in'\n      break;\n    case 157:                       // 'index'\n      shift(157);                   // 'index'\n      break;\n    case 163:                       // 'integrity'\n      shift(163);                   // 'integrity'\n      break;\n    case 174:                       // 'lax'\n      shift(174);                   // 'lax'\n      break;\n    case 195:                       // 'nodes'\n      shift(195);                   // 'nodes'\n      break;\n    case 203:                       // 'option'\n      shift(203);                   // 'option'\n      break;\n    case 207:                       // 'ordering'\n      shift(207);                   // 'ordering'\n      break;\n    case 226:                       // 'revalidation'\n      shift(226);                   // 'revalidation'\n      break;\n    case 229:                       // 'schema'\n      shift(229);                   // 'schema'\n      break;\n    case 232:                       // 'score'\n      shift(232);                   // 'score'\n      break;\n    case 239:                       // 'sliding'\n      shift(239);                   // 'sliding'\n      break;\n    case 245:                       // 'strict'\n      shift(245);                   // 'strict'\n      break;\n    case 257:                       // 'tumbling'\n      shift(257);                   // 'tumbling'\n      break;\n    case 258:                       // 'type'\n      shift(258);                   // 'type'\n      break;\n    case 263:                       // 'updating'\n      shift(263);                   // 'updating'\n      break;\n    case 267:                       // 'value'\n      shift(267);                   // 'value'\n      break;\n    case 269:                       // 'version'\n      shift(269);                   // 'version'\n      break;\n    case 273:                       // 'while'\n      shift(273);                   // 'while'\n      break;\n    case 98:                        // 'constraint'\n      shift(98);                    // 'constraint'\n      break;\n    case 179:                       // 'loop'\n      shift(179);                   // 'loop'\n      break;\n    case 225:                       // 'returning'\n      shift(225);                   // 'returning'\n      break;\n    case 78:                        // 'append'\n      shift(78);                    // 'append'\n      break;\n    case 135:                       // 'false'\n      shift(135);                   // 'false'\n      break;\n    case 142:                       // 'from'\n      shift(142);                   // 'from'\n      break;\n    case 197:                       // 'null'\n      shift(197);                   // 'null'\n      break;\n    case 168:                       // 'json'\n      shift(168);                   // 'json'\n      break;\n    case 198:                       // 'object'\n      shift(198);                   // 'object'\n      break;\n    case 233:                       // 'select'\n      shift(233);                   // 'select'\n      break;\n    default:\n      shift(255);                   // 'true'\n    }\n    eventHandler.endNonterminal(\"NCName\", e0);\n  }\n\n  function try_NCName()\n  {\n    switch (l1)\n    {\n    case 19:                        // NCName^Token\n      shiftT(19);                   // NCName^Token\n      break;\n    case 71:                        // 'after'\n      shiftT(71);                   // 'after'\n      break;\n    case 76:                        // 'and'\n      shiftT(76);                   // 'and'\n      break;\n    case 80:                        // 'as'\n      shiftT(80);                   // 'as'\n      break;\n    case 81:                        // 'ascending'\n      shiftT(81);                   // 'ascending'\n      break;\n    case 85:                        // 'before'\n      shiftT(85);                   // 'before'\n      break;\n    case 89:                        // 'case'\n      shiftT(89);                   // 'case'\n      break;\n    case 90:                        // 'cast'\n      shiftT(90);                   // 'cast'\n      break;\n    case 91:                        // 'castable'\n      shiftT(91);                   // 'castable'\n      break;\n    case 95:                        // 'collation'\n      shiftT(95);                   // 'collation'\n      break;\n    case 106:                       // 'count'\n      shiftT(106);                  // 'count'\n      break;\n    case 110:                       // 'default'\n      shiftT(110);                  // 'default'\n      break;\n    case 114:                       // 'descending'\n      shiftT(114);                  // 'descending'\n      break;\n    case 119:                       // 'div'\n      shiftT(119);                  // 'div'\n      break;\n    case 123:                       // 'else'\n      shiftT(123);                  // 'else'\n      break;\n    case 124:                       // 'empty'\n      shiftT(124);                  // 'empty'\n      break;\n    case 127:                       // 'end'\n      shiftT(127);                  // 'end'\n      break;\n    case 129:                       // 'eq'\n      shiftT(129);                  // 'eq'\n      break;\n    case 132:                       // 'except'\n      shiftT(132);                  // 'except'\n      break;\n    case 139:                       // 'for'\n      shiftT(139);                  // 'for'\n      break;\n    case 148:                       // 'ge'\n      shiftT(148);                  // 'ge'\n      break;\n    case 150:                       // 'group'\n      shiftT(150);                  // 'group'\n      break;\n    case 152:                       // 'gt'\n      shiftT(152);                  // 'gt'\n      break;\n    case 153:                       // 'idiv'\n      shiftT(153);                  // 'idiv'\n      break;\n    case 162:                       // 'instance'\n      shiftT(162);                  // 'instance'\n      break;\n    case 164:                       // 'intersect'\n      shiftT(164);                  // 'intersect'\n      break;\n    case 165:                       // 'into'\n      shiftT(165);                  // 'into'\n      break;\n    case 166:                       // 'is'\n      shiftT(166);                  // 'is'\n      break;\n    case 175:                       // 'le'\n      shiftT(175);                  // 'le'\n      break;\n    case 177:                       // 'let'\n      shiftT(177);                  // 'let'\n      break;\n    case 181:                       // 'lt'\n      shiftT(181);                  // 'lt'\n      break;\n    case 183:                       // 'mod'\n      shiftT(183);                  // 'mod'\n      break;\n    case 184:                       // 'modify'\n      shiftT(184);                  // 'modify'\n      break;\n    case 189:                       // 'ne'\n      shiftT(189);                  // 'ne'\n      break;\n    case 202:                       // 'only'\n      shiftT(202);                  // 'only'\n      break;\n    case 204:                       // 'or'\n      shiftT(204);                  // 'or'\n      break;\n    case 205:                       // 'order'\n      shiftT(205);                  // 'order'\n      break;\n    case 224:                       // 'return'\n      shiftT(224);                  // 'return'\n      break;\n    case 228:                       // 'satisfies'\n      shiftT(228);                  // 'satisfies'\n      break;\n    case 241:                       // 'stable'\n      shiftT(241);                  // 'stable'\n      break;\n    case 242:                       // 'start'\n      shiftT(242);                  // 'start'\n      break;\n    case 253:                       // 'to'\n      shiftT(253);                  // 'to'\n      break;\n    case 254:                       // 'treat'\n      shiftT(254);                  // 'treat'\n      break;\n    case 260:                       // 'union'\n      shiftT(260);                  // 'union'\n      break;\n    case 272:                       // 'where'\n      shiftT(272);                  // 'where'\n      break;\n    case 276:                       // 'with'\n      shiftT(276);                  // 'with'\n      break;\n    case 74:                        // 'ancestor'\n      shiftT(74);                   // 'ancestor'\n      break;\n    case 75:                        // 'ancestor-or-self'\n      shiftT(75);                   // 'ancestor-or-self'\n      break;\n    case 83:                        // 'attribute'\n      shiftT(83);                   // 'attribute'\n      break;\n    case 94:                        // 'child'\n      shiftT(94);                   // 'child'\n      break;\n    case 97:                        // 'comment'\n      shiftT(97);                   // 'comment'\n      break;\n    case 104:                       // 'copy'\n      shiftT(104);                  // 'copy'\n      break;\n    case 109:                       // 'declare'\n      shiftT(109);                  // 'declare'\n      break;\n    case 111:                       // 'delete'\n      shiftT(111);                  // 'delete'\n      break;\n    case 112:                       // 'descendant'\n      shiftT(112);                  // 'descendant'\n      break;\n    case 113:                       // 'descendant-or-self'\n      shiftT(113);                  // 'descendant-or-self'\n      break;\n    case 120:                       // 'document'\n      shiftT(120);                  // 'document'\n      break;\n    case 121:                       // 'document-node'\n      shiftT(121);                  // 'document-node'\n      break;\n    case 122:                       // 'element'\n      shiftT(122);                  // 'element'\n      break;\n    case 125:                       // 'empty-sequence'\n      shiftT(125);                  // 'empty-sequence'\n      break;\n    case 130:                       // 'every'\n      shiftT(130);                  // 'every'\n      break;\n    case 136:                       // 'first'\n      shiftT(136);                  // 'first'\n      break;\n    case 137:                       // 'following'\n      shiftT(137);                  // 'following'\n      break;\n    case 138:                       // 'following-sibling'\n      shiftT(138);                  // 'following-sibling'\n      break;\n    case 147:                       // 'function'\n      shiftT(147);                  // 'function'\n      break;\n    case 154:                       // 'if'\n      shiftT(154);                  // 'if'\n      break;\n    case 155:                       // 'import'\n      shiftT(155);                  // 'import'\n      break;\n    case 161:                       // 'insert'\n      shiftT(161);                  // 'insert'\n      break;\n    case 167:                       // 'item'\n      shiftT(167);                  // 'item'\n      break;\n    case 173:                       // 'last'\n      shiftT(173);                  // 'last'\n      break;\n    case 185:                       // 'module'\n      shiftT(185);                  // 'module'\n      break;\n    case 187:                       // 'namespace'\n      shiftT(187);                  // 'namespace'\n      break;\n    case 188:                       // 'namespace-node'\n      shiftT(188);                  // 'namespace-node'\n      break;\n    case 194:                       // 'node'\n      shiftT(194);                  // 'node'\n      break;\n    case 206:                       // 'ordered'\n      shiftT(206);                  // 'ordered'\n      break;\n    case 210:                       // 'parent'\n      shiftT(210);                  // 'parent'\n      break;\n    case 216:                       // 'preceding'\n      shiftT(216);                  // 'preceding'\n      break;\n    case 217:                       // 'preceding-sibling'\n      shiftT(217);                  // 'preceding-sibling'\n      break;\n    case 220:                       // 'processing-instruction'\n      shiftT(220);                  // 'processing-instruction'\n      break;\n    case 222:                       // 'rename'\n      shiftT(222);                  // 'rename'\n      break;\n    case 223:                       // 'replace'\n      shiftT(223);                  // 'replace'\n      break;\n    case 230:                       // 'schema-attribute'\n      shiftT(230);                  // 'schema-attribute'\n      break;\n    case 231:                       // 'schema-element'\n      shiftT(231);                  // 'schema-element'\n      break;\n    case 234:                       // 'self'\n      shiftT(234);                  // 'self'\n      break;\n    case 240:                       // 'some'\n      shiftT(240);                  // 'some'\n      break;\n    case 248:                       // 'switch'\n      shiftT(248);                  // 'switch'\n      break;\n    case 249:                       // 'text'\n      shiftT(249);                  // 'text'\n      break;\n    case 256:                       // 'try'\n      shiftT(256);                  // 'try'\n      break;\n    case 259:                       // 'typeswitch'\n      shiftT(259);                  // 'typeswitch'\n      break;\n    case 262:                       // 'unordered'\n      shiftT(262);                  // 'unordered'\n      break;\n    case 266:                       // 'validate'\n      shiftT(266);                  // 'validate'\n      break;\n    case 268:                       // 'variable'\n      shiftT(268);                  // 'variable'\n      break;\n    case 170:                       // 'jsoniq'\n      shiftT(170);                  // 'jsoniq'\n      break;\n    case 73:                        // 'allowing'\n      shiftT(73);                   // 'allowing'\n      break;\n    case 82:                        // 'at'\n      shiftT(82);                   // 'at'\n      break;\n    case 84:                        // 'base-uri'\n      shiftT(84);                   // 'base-uri'\n      break;\n    case 86:                        // 'boundary-space'\n      shiftT(86);                   // 'boundary-space'\n      break;\n    case 87:                        // 'break'\n      shiftT(87);                   // 'break'\n      break;\n    case 92:                        // 'catch'\n      shiftT(92);                   // 'catch'\n      break;\n    case 99:                        // 'construction'\n      shiftT(99);                   // 'construction'\n      break;\n    case 102:                       // 'context'\n      shiftT(102);                  // 'context'\n      break;\n    case 103:                       // 'continue'\n      shiftT(103);                  // 'continue'\n      break;\n    case 105:                       // 'copy-namespaces'\n      shiftT(105);                  // 'copy-namespaces'\n      break;\n    case 107:                       // 'decimal-format'\n      shiftT(107);                  // 'decimal-format'\n      break;\n    case 126:                       // 'encoding'\n      shiftT(126);                  // 'encoding'\n      break;\n    case 133:                       // 'exit'\n      shiftT(133);                  // 'exit'\n      break;\n    case 134:                       // 'external'\n      shiftT(134);                  // 'external'\n      break;\n    case 143:                       // 'ft-option'\n      shiftT(143);                  // 'ft-option'\n      break;\n    case 156:                       // 'in'\n      shiftT(156);                  // 'in'\n      break;\n    case 157:                       // 'index'\n      shiftT(157);                  // 'index'\n      break;\n    case 163:                       // 'integrity'\n      shiftT(163);                  // 'integrity'\n      break;\n    case 174:                       // 'lax'\n      shiftT(174);                  // 'lax'\n      break;\n    case 195:                       // 'nodes'\n      shiftT(195);                  // 'nodes'\n      break;\n    case 203:                       // 'option'\n      shiftT(203);                  // 'option'\n      break;\n    case 207:                       // 'ordering'\n      shiftT(207);                  // 'ordering'\n      break;\n    case 226:                       // 'revalidation'\n      shiftT(226);                  // 'revalidation'\n      break;\n    case 229:                       // 'schema'\n      shiftT(229);                  // 'schema'\n      break;\n    case 232:                       // 'score'\n      shiftT(232);                  // 'score'\n      break;\n    case 239:                       // 'sliding'\n      shiftT(239);                  // 'sliding'\n      break;\n    case 245:                       // 'strict'\n      shiftT(245);                  // 'strict'\n      break;\n    case 257:                       // 'tumbling'\n      shiftT(257);                  // 'tumbling'\n      break;\n    case 258:                       // 'type'\n      shiftT(258);                  // 'type'\n      break;\n    case 263:                       // 'updating'\n      shiftT(263);                  // 'updating'\n      break;\n    case 267:                       // 'value'\n      shiftT(267);                  // 'value'\n      break;\n    case 269:                       // 'version'\n      shiftT(269);                  // 'version'\n      break;\n    case 273:                       // 'while'\n      shiftT(273);                  // 'while'\n      break;\n    case 98:                        // 'constraint'\n      shiftT(98);                   // 'constraint'\n      break;\n    case 179:                       // 'loop'\n      shiftT(179);                  // 'loop'\n      break;\n    case 225:                       // 'returning'\n      shiftT(225);                  // 'returning'\n      break;\n    case 78:                        // 'append'\n      shiftT(78);                   // 'append'\n      break;\n    case 135:                       // 'false'\n      shiftT(135);                  // 'false'\n      break;\n    case 142:                       // 'from'\n      shiftT(142);                  // 'from'\n      break;\n    case 197:                       // 'null'\n      shiftT(197);                  // 'null'\n      break;\n    case 168:                       // 'json'\n      shiftT(168);                  // 'json'\n      break;\n    case 198:                       // 'object'\n      shiftT(198);                  // 'object'\n      break;\n    case 233:                       // 'select'\n      shiftT(233);                  // 'select'\n      break;\n    default:\n      shiftT(255);                  // 'true'\n    }\n  }\n\n  function parse_MainModule()\n  {\n    eventHandler.startNonterminal(\"MainModule\", e0);\n    parse_Prolog();\n    whitespace();\n    parse_Program();\n    eventHandler.endNonterminal(\"MainModule\", e0);\n  }\n\n  function parse_Program()\n  {\n    eventHandler.startNonterminal(\"Program\", e0);\n    parse_StatementsAndOptionalExpr();\n    eventHandler.endNonterminal(\"Program\", e0);\n  }\n\n  function parse_Statements()\n  {\n    eventHandler.startNonterminal(\"Statements\", e0);\n    for (;;)\n    {\n      lookahead1W(284);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      switch (l1)\n      {\n      case 35:                      // '('\n        lookahead2W(270);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      case 36:                      // '(#'\n        lookahead2(243);            // EQName^Token | S | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' |\n        break;\n      case 47:                      // '/'\n        lookahead2W(286);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      case 48:                      // '//'\n        lookahead2W(260);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      case 55:                      // '<'\n        lookahead2(4);              // QName\n        break;\n      case 56:                      // '<!--'\n        lookahead2(1);              // DirCommentContents\n        break;\n      case 60:                      // '<?'\n        lookahead2(3);              // PITarget\n        break;\n      case 69:                      // '['\n        lookahead2W(273);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      case 78:                      // 'append'\n        lookahead2W(269);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      case 133:                     // 'exit'\n        lookahead2W(147);           // S^WS | '#' | '(' | '(:' | 'returning'\n        break;\n      case 139:                     // 'for'\n        lookahead2W(179);           // S^WS | '#' | '$' | '(' | '(:' | 'sliding' | 'tumbling'\n        break;\n      case 161:                     // 'insert'\n        lookahead2W(276);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      case 177:                     // 'let'\n        lookahead2W(166);           // S^WS | '#' | '$' | '(' | '(:' | 'score'\n        break;\n      case 187:                     // 'namespace'\n        lookahead2W(247);           // NCName^Token | S^WS | '#' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n        break;\n      case 220:                     // 'processing-instruction'\n        lookahead2W(245);           // NCName^Token | S^WS | '#' | '(:' | 'after' | 'allowing' | 'ancestor' |\n        break;\n      case 223:                     // 'replace'\n        lookahead2W(170);           // S^WS | '#' | '(' | '(:' | 'node' | 'value'\n        break;\n      case 266:                     // 'validate'\n        lookahead2W(188);           // S^WS | '#' | '(' | '(:' | 'lax' | 'strict' | 'type' | '{'\n        break;\n      case 281:                     // '{'\n        lookahead2W(283);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      case 283:                     // '{|'\n        lookahead2W(274);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      case 31:                      // '$'\n      case 33:                      // '%'\n        lookahead2W(246);           // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n        break;\n      case 83:                      // 'attribute'\n      case 122:                     // 'element'\n        lookahead2W(253);           // EQName^Token | S^WS | '#' | '(:' | 'after' | 'allowing' | 'ancestor' |\n        break;\n      case 87:                      // 'break'\n      case 103:                     // 'continue'\n        lookahead2W(145);           // S^WS | '#' | '(' | '(:' | 'loop'\n        break;\n      case 97:                      // 'comment'\n      case 249:                     // 'text'\n        lookahead2W(97);            // S^WS | '#' | '(:' | '{'\n        break;\n      case 111:                     // 'delete'\n      case 222:                     // 'rename'\n        lookahead2W(261);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      case 41:                      // '+'\n      case 43:                      // '-'\n      case 196:                     // 'not'\n        lookahead2W(266);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      case 135:                     // 'false'\n      case 197:                     // 'null'\n      case 255:                     // 'true'\n        lookahead2W(211);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '.' | '/' |\n        break;\n      case 104:                     // 'copy'\n      case 130:                     // 'every'\n      case 240:                     // 'some'\n      case 268:                     // 'variable'\n        lookahead2W(143);           // S^WS | '#' | '$' | '(' | '(:'\n        break;\n      case 120:                     // 'document'\n      case 206:                     // 'ordered'\n      case 256:                     // 'try'\n      case 262:                     // 'unordered'\n        lookahead2W(148);           // S^WS | '#' | '(' | '(:' | '{'\n        break;\n      case 8:                       // IntegerLiteral\n      case 9:                       // DecimalLiteral\n      case 10:                      // DoubleLiteral\n      case 11:                      // StringLiteral\n      case 32:                      // '$$'\n        lookahead2W(210);           // S^WS | EOF | '!' | '!=' | '(' | '(:' | '*' | '+' | ',' | '-' | '.' | '/' | '//' |\n        break;\n      case 79:                      // 'array'\n      case 121:                     // 'document-node'\n      case 125:                     // 'empty-sequence'\n      case 167:                     // 'item'\n      case 169:                     // 'json-item'\n      case 188:                     // 'namespace-node'\n      case 194:                     // 'node'\n      case 230:                     // 'schema-attribute'\n      case 231:                     // 'schema-element'\n      case 247:                     // 'structured-item'\n        lookahead2W(20);            // S^WS | '#' | '(:'\n        break;\n      case 6:                       // EQName^Token\n      case 71:                      // 'after'\n      case 73:                      // 'allowing'\n      case 74:                      // 'ancestor'\n      case 75:                      // 'ancestor-or-self'\n      case 76:                      // 'and'\n      case 80:                      // 'as'\n      case 81:                      // 'ascending'\n      case 82:                      // 'at'\n      case 84:                      // 'base-uri'\n      case 85:                      // 'before'\n      case 86:                      // 'boundary-space'\n      case 89:                      // 'case'\n      case 90:                      // 'cast'\n      case 91:                      // 'castable'\n      case 92:                      // 'catch'\n      case 94:                      // 'child'\n      case 95:                      // 'collation'\n      case 98:                      // 'constraint'\n      case 99:                      // 'construction'\n      case 102:                     // 'context'\n      case 105:                     // 'copy-namespaces'\n      case 106:                     // 'count'\n      case 107:                     // 'decimal-format'\n      case 109:                     // 'declare'\n      case 110:                     // 'default'\n      case 112:                     // 'descendant'\n      case 113:                     // 'descendant-or-self'\n      case 114:                     // 'descending'\n      case 119:                     // 'div'\n      case 123:                     // 'else'\n      case 124:                     // 'empty'\n      case 126:                     // 'encoding'\n      case 127:                     // 'end'\n      case 129:                     // 'eq'\n      case 132:                     // 'except'\n      case 134:                     // 'external'\n      case 136:                     // 'first'\n      case 137:                     // 'following'\n      case 138:                     // 'following-sibling'\n      case 142:                     // 'from'\n      case 143:                     // 'ft-option'\n      case 147:                     // 'function'\n      case 148:                     // 'ge'\n      case 150:                     // 'group'\n      case 152:                     // 'gt'\n      case 153:                     // 'idiv'\n      case 154:                     // 'if'\n      case 155:                     // 'import'\n      case 156:                     // 'in'\n      case 157:                     // 'index'\n      case 162:                     // 'instance'\n      case 163:                     // 'integrity'\n      case 164:                     // 'intersect'\n      case 165:                     // 'into'\n      case 166:                     // 'is'\n      case 168:                     // 'json'\n      case 170:                     // 'jsoniq'\n      case 173:                     // 'last'\n      case 174:                     // 'lax'\n      case 175:                     // 'le'\n      case 179:                     // 'loop'\n      case 181:                     // 'lt'\n      case 183:                     // 'mod'\n      case 184:                     // 'modify'\n      case 185:                     // 'module'\n      case 189:                     // 'ne'\n      case 195:                     // 'nodes'\n      case 198:                     // 'object'\n      case 202:                     // 'only'\n      case 203:                     // 'option'\n      case 204:                     // 'or'\n      case 205:                     // 'order'\n      case 207:                     // 'ordering'\n      case 210:                     // 'parent'\n      case 216:                     // 'preceding'\n      case 217:                     // 'preceding-sibling'\n      case 224:                     // 'return'\n      case 225:                     // 'returning'\n      case 226:                     // 'revalidation'\n      case 228:                     // 'satisfies'\n      case 229:                     // 'schema'\n      case 232:                     // 'score'\n      case 233:                     // 'select'\n      case 234:                     // 'self'\n      case 239:                     // 'sliding'\n      case 241:                     // 'stable'\n      case 242:                     // 'start'\n      case 245:                     // 'strict'\n      case 248:                     // 'switch'\n      case 253:                     // 'to'\n      case 254:                     // 'treat'\n      case 257:                     // 'tumbling'\n      case 258:                     // 'type'\n      case 259:                     // 'typeswitch'\n      case 260:                     // 'union'\n      case 263:                     // 'updating'\n      case 267:                     // 'value'\n      case 269:                     // 'version'\n      case 272:                     // 'where'\n      case 273:                     // 'while'\n      case 276:                     // 'with'\n        lookahead2W(95);            // S^WS | '#' | '(' | '(:'\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk != 25                  // EOF\n       && lk != 54                  // ';'\n       && lk != 287                 // '}'\n       && lk != 12808               // IntegerLiteral EOF\n       && lk != 12809               // DecimalLiteral EOF\n       && lk != 12810               // DoubleLiteral EOF\n       && lk != 12811               // StringLiteral EOF\n       && lk != 12832               // '$$' EOF\n       && lk != 12847               // '/' EOF\n       && lk != 12935               // 'false' EOF\n       && lk != 12997               // 'null' EOF\n       && lk != 13055               // 'true' EOF\n       && lk != 16140               // 'variable' '$'\n       && lk != 21512               // IntegerLiteral ','\n       && lk != 21513               // DecimalLiteral ','\n       && lk != 21514               // DoubleLiteral ','\n       && lk != 21515               // StringLiteral ','\n       && lk != 21536               // '$$' ','\n       && lk != 21551               // '/' ','\n       && lk != 21639               // 'false' ','\n       && lk != 21701               // 'null' ','\n       && lk != 21759               // 'true' ','\n       && lk != 27656               // IntegerLiteral ';'\n       && lk != 27657               // DecimalLiteral ';'\n       && lk != 27658               // DoubleLiteral ';'\n       && lk != 27659               // StringLiteral ';'\n       && lk != 27680               // '$$' ';'\n       && lk != 27695               // '/' ';'\n       && lk != 27783               // 'false' ';'\n       && lk != 27845               // 'null' ';'\n       && lk != 27903               // 'true' ';'\n       && lk != 91735               // 'break' 'loop'\n       && lk != 91751               // 'continue' 'loop'\n       && lk != 115333              // 'exit' 'returning'\n       && lk != 146952              // IntegerLiteral '}'\n       && lk != 146953              // DecimalLiteral '}'\n       && lk != 146954              // DoubleLiteral '}'\n       && lk != 146955              // StringLiteral '}'\n       && lk != 146976              // '$$' '}'\n       && lk != 146991              // '/' '}'\n       && lk != 147079              // 'false' '}'\n       && lk != 147141              // 'null' '}'\n       && lk != 147199)             // 'true' '}'\n      {\n        lk = memoized(8, e0);\n        if (lk == 0)\n        {\n          var b0A = b0; var e0A = e0; var l1A = l1;\n          var b1A = b1; var e1A = e1; var l2A = l2;\n          var b2A = b2; var e2A = e2;\n          try\n          {\n            try_Statement();\n            lk = -1;\n          }\n          catch (p1A)\n          {\n            lk = -2;\n          }\n          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n          b2 = b2A; e2 = e2A; end = e2A; }}\n          memoize(8, e0, lk);\n        }\n      }\n      if (lk != -1\n       && lk != 54                  // ';'\n       && lk != 16140               // 'variable' '$'\n       && lk != 27656               // IntegerLiteral ';'\n       && lk != 27657               // DecimalLiteral ';'\n       && lk != 27658               // DoubleLiteral ';'\n       && lk != 27659               // StringLiteral ';'\n       && lk != 27680               // '$$' ';'\n       && lk != 27695               // '/' ';'\n       && lk != 27783               // 'false' ';'\n       && lk != 27845               // 'null' ';'\n       && lk != 27903               // 'true' ';'\n       && lk != 91735               // 'break' 'loop'\n       && lk != 91751               // 'continue' 'loop'\n       && lk != 115333)             // 'exit' 'returning'\n      {\n        break;\n      }\n      whitespace();\n      parse_Statement();\n    }\n    eventHandler.endNonterminal(\"Statements\", e0);\n  }\n\n  function try_Statements()\n  {\n    for (;;)\n    {\n      lookahead1W(284);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      switch (l1)\n      {\n      case 35:                      // '('\n        lookahead2W(270);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      case 36:                      // '(#'\n        lookahead2(243);            // EQName^Token | S | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' |\n        break;\n      case 47:                      // '/'\n        lookahead2W(286);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      case 48:                      // '//'\n        lookahead2W(260);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      case 55:                      // '<'\n        lookahead2(4);              // QName\n        break;\n      case 56:                      // '<!--'\n        lookahead2(1);              // DirCommentContents\n        break;\n      case 60:                      // '<?'\n        lookahead2(3);              // PITarget\n        break;\n      case 69:                      // '['\n        lookahead2W(273);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      case 78:                      // 'append'\n        lookahead2W(269);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      case 133:                     // 'exit'\n        lookahead2W(147);           // S^WS | '#' | '(' | '(:' | 'returning'\n        break;\n      case 139:                     // 'for'\n        lookahead2W(179);           // S^WS | '#' | '$' | '(' | '(:' | 'sliding' | 'tumbling'\n        break;\n      case 161:                     // 'insert'\n        lookahead2W(276);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      case 177:                     // 'let'\n        lookahead2W(166);           // S^WS | '#' | '$' | '(' | '(:' | 'score'\n        break;\n      case 187:                     // 'namespace'\n        lookahead2W(247);           // NCName^Token | S^WS | '#' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n        break;\n      case 220:                     // 'processing-instruction'\n        lookahead2W(245);           // NCName^Token | S^WS | '#' | '(:' | 'after' | 'allowing' | 'ancestor' |\n        break;\n      case 223:                     // 'replace'\n        lookahead2W(170);           // S^WS | '#' | '(' | '(:' | 'node' | 'value'\n        break;\n      case 266:                     // 'validate'\n        lookahead2W(188);           // S^WS | '#' | '(' | '(:' | 'lax' | 'strict' | 'type' | '{'\n        break;\n      case 281:                     // '{'\n        lookahead2W(283);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      case 283:                     // '{|'\n        lookahead2W(274);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      case 31:                      // '$'\n      case 33:                      // '%'\n        lookahead2W(246);           // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n        break;\n      case 83:                      // 'attribute'\n      case 122:                     // 'element'\n        lookahead2W(253);           // EQName^Token | S^WS | '#' | '(:' | 'after' | 'allowing' | 'ancestor' |\n        break;\n      case 87:                      // 'break'\n      case 103:                     // 'continue'\n        lookahead2W(145);           // S^WS | '#' | '(' | '(:' | 'loop'\n        break;\n      case 97:                      // 'comment'\n      case 249:                     // 'text'\n        lookahead2W(97);            // S^WS | '#' | '(:' | '{'\n        break;\n      case 111:                     // 'delete'\n      case 222:                     // 'rename'\n        lookahead2W(261);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      case 41:                      // '+'\n      case 43:                      // '-'\n      case 196:                     // 'not'\n        lookahead2W(266);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      case 135:                     // 'false'\n      case 197:                     // 'null'\n      case 255:                     // 'true'\n        lookahead2W(211);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '.' | '/' |\n        break;\n      case 104:                     // 'copy'\n      case 130:                     // 'every'\n      case 240:                     // 'some'\n      case 268:                     // 'variable'\n        lookahead2W(143);           // S^WS | '#' | '$' | '(' | '(:'\n        break;\n      case 120:                     // 'document'\n      case 206:                     // 'ordered'\n      case 256:                     // 'try'\n      case 262:                     // 'unordered'\n        lookahead2W(148);           // S^WS | '#' | '(' | '(:' | '{'\n        break;\n      case 8:                       // IntegerLiteral\n      case 9:                       // DecimalLiteral\n      case 10:                      // DoubleLiteral\n      case 11:                      // StringLiteral\n      case 32:                      // '$$'\n        lookahead2W(210);           // S^WS | EOF | '!' | '!=' | '(' | '(:' | '*' | '+' | ',' | '-' | '.' | '/' | '//' |\n        break;\n      case 79:                      // 'array'\n      case 121:                     // 'document-node'\n      case 125:                     // 'empty-sequence'\n      case 167:                     // 'item'\n      case 169:                     // 'json-item'\n      case 188:                     // 'namespace-node'\n      case 194:                     // 'node'\n      case 230:                     // 'schema-attribute'\n      case 231:                     // 'schema-element'\n      case 247:                     // 'structured-item'\n        lookahead2W(20);            // S^WS | '#' | '(:'\n        break;\n      case 6:                       // EQName^Token\n      case 71:                      // 'after'\n      case 73:                      // 'allowing'\n      case 74:                      // 'ancestor'\n      case 75:                      // 'ancestor-or-self'\n      case 76:                      // 'and'\n      case 80:                      // 'as'\n      case 81:                      // 'ascending'\n      case 82:                      // 'at'\n      case 84:                      // 'base-uri'\n      case 85:                      // 'before'\n      case 86:                      // 'boundary-space'\n      case 89:                      // 'case'\n      case 90:                      // 'cast'\n      case 91:                      // 'castable'\n      case 92:                      // 'catch'\n      case 94:                      // 'child'\n      case 95:                      // 'collation'\n      case 98:                      // 'constraint'\n      case 99:                      // 'construction'\n      case 102:                     // 'context'\n      case 105:                     // 'copy-namespaces'\n      case 106:                     // 'count'\n      case 107:                     // 'decimal-format'\n      case 109:                     // 'declare'\n      case 110:                     // 'default'\n      case 112:                     // 'descendant'\n      case 113:                     // 'descendant-or-self'\n      case 114:                     // 'descending'\n      case 119:                     // 'div'\n      case 123:                     // 'else'\n      case 124:                     // 'empty'\n      case 126:                     // 'encoding'\n      case 127:                     // 'end'\n      case 129:                     // 'eq'\n      case 132:                     // 'except'\n      case 134:                     // 'external'\n      case 136:                     // 'first'\n      case 137:                     // 'following'\n      case 138:                     // 'following-sibling'\n      case 142:                     // 'from'\n      case 143:                     // 'ft-option'\n      case 147:                     // 'function'\n      case 148:                     // 'ge'\n      case 150:                     // 'group'\n      case 152:                     // 'gt'\n      case 153:                     // 'idiv'\n      case 154:                     // 'if'\n      case 155:                     // 'import'\n      case 156:                     // 'in'\n      case 157:                     // 'index'\n      case 162:                     // 'instance'\n      case 163:                     // 'integrity'\n      case 164:                     // 'intersect'\n      case 165:                     // 'into'\n      case 166:                     // 'is'\n      case 168:                     // 'json'\n      case 170:                     // 'jsoniq'\n      case 173:                     // 'last'\n      case 174:                     // 'lax'\n      case 175:                     // 'le'\n      case 179:                     // 'loop'\n      case 181:                     // 'lt'\n      case 183:                     // 'mod'\n      case 184:                     // 'modify'\n      case 185:                     // 'module'\n      case 189:                     // 'ne'\n      case 195:                     // 'nodes'\n      case 198:                     // 'object'\n      case 202:                     // 'only'\n      case 203:                     // 'option'\n      case 204:                     // 'or'\n      case 205:                     // 'order'\n      case 207:                     // 'ordering'\n      case 210:                     // 'parent'\n      case 216:                     // 'preceding'\n      case 217:                     // 'preceding-sibling'\n      case 224:                     // 'return'\n      case 225:                     // 'returning'\n      case 226:                     // 'revalidation'\n      case 228:                     // 'satisfies'\n      case 229:                     // 'schema'\n      case 232:                     // 'score'\n      case 233:                     // 'select'\n      case 234:                     // 'self'\n      case 239:                     // 'sliding'\n      case 241:                     // 'stable'\n      case 242:                     // 'start'\n      case 245:                     // 'strict'\n      case 248:                     // 'switch'\n      case 253:                     // 'to'\n      case 254:                     // 'treat'\n      case 257:                     // 'tumbling'\n      case 258:                     // 'type'\n      case 259:                     // 'typeswitch'\n      case 260:                     // 'union'\n      case 263:                     // 'updating'\n      case 267:                     // 'value'\n      case 269:                     // 'version'\n      case 272:                     // 'where'\n      case 273:                     // 'while'\n      case 276:                     // 'with'\n        lookahead2W(95);            // S^WS | '#' | '(' | '(:'\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk != 25                  // EOF\n       && lk != 54                  // ';'\n       && lk != 287                 // '}'\n       && lk != 12808               // IntegerLiteral EOF\n       && lk != 12809               // DecimalLiteral EOF\n       && lk != 12810               // DoubleLiteral EOF\n       && lk != 12811               // StringLiteral EOF\n       && lk != 12832               // '$$' EOF\n       && lk != 12847               // '/' EOF\n       && lk != 12935               // 'false' EOF\n       && lk != 12997               // 'null' EOF\n       && lk != 13055               // 'true' EOF\n       && lk != 16140               // 'variable' '$'\n       && lk != 21512               // IntegerLiteral ','\n       && lk != 21513               // DecimalLiteral ','\n       && lk != 21514               // DoubleLiteral ','\n       && lk != 21515               // StringLiteral ','\n       && lk != 21536               // '$$' ','\n       && lk != 21551               // '/' ','\n       && lk != 21639               // 'false' ','\n       && lk != 21701               // 'null' ','\n       && lk != 21759               // 'true' ','\n       && lk != 27656               // IntegerLiteral ';'\n       && lk != 27657               // DecimalLiteral ';'\n       && lk != 27658               // DoubleLiteral ';'\n       && lk != 27659               // StringLiteral ';'\n       && lk != 27680               // '$$' ';'\n       && lk != 27695               // '/' ';'\n       && lk != 27783               // 'false' ';'\n       && lk != 27845               // 'null' ';'\n       && lk != 27903               // 'true' ';'\n       && lk != 91735               // 'break' 'loop'\n       && lk != 91751               // 'continue' 'loop'\n       && lk != 115333              // 'exit' 'returning'\n       && lk != 146952              // IntegerLiteral '}'\n       && lk != 146953              // DecimalLiteral '}'\n       && lk != 146954              // DoubleLiteral '}'\n       && lk != 146955              // StringLiteral '}'\n       && lk != 146976              // '$$' '}'\n       && lk != 146991              // '/' '}'\n       && lk != 147079              // 'false' '}'\n       && lk != 147141              // 'null' '}'\n       && lk != 147199)             // 'true' '}'\n      {\n        lk = memoized(8, e0);\n        if (lk == 0)\n        {\n          var b0A = b0; var e0A = e0; var l1A = l1;\n          var b1A = b1; var e1A = e1; var l2A = l2;\n          var b2A = b2; var e2A = e2;\n          try\n          {\n            try_Statement();\n            memoize(8, e0A, -1);\n            continue;\n          }\n          catch (p1A)\n          {\n            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n            b2 = b2A; e2 = e2A; end = e2A; }}\n            memoize(8, e0A, -2);\n            break;\n          }\n        }\n      }\n      if (lk != -1\n       && lk != 54                  // ';'\n       && lk != 16140               // 'variable' '$'\n       && lk != 27656               // IntegerLiteral ';'\n       && lk != 27657               // DecimalLiteral ';'\n       && lk != 27658               // DoubleLiteral ';'\n       && lk != 27659               // StringLiteral ';'\n       && lk != 27680               // '$$' ';'\n       && lk != 27695               // '/' ';'\n       && lk != 27783               // 'false' ';'\n       && lk != 27845               // 'null' ';'\n       && lk != 27903               // 'true' ';'\n       && lk != 91735               // 'break' 'loop'\n       && lk != 91751               // 'continue' 'loop'\n       && lk != 115333)             // 'exit' 'returning'\n      {\n        break;\n      }\n      try_Statement();\n    }\n  }\n\n  function parse_StatementsAndExpr()\n  {\n    eventHandler.startNonterminal(\"StatementsAndExpr\", e0);\n    parse_Statements();\n    whitespace();\n    parse_Expr();\n    eventHandler.endNonterminal(\"StatementsAndExpr\", e0);\n  }\n\n  function try_StatementsAndExpr()\n  {\n    try_Statements();\n    try_Expr();\n  }\n\n  function parse_StatementsAndOptionalExpr()\n  {\n    eventHandler.startNonterminal(\"StatementsAndOptionalExpr\", e0);\n    parse_Statements();\n    if (l1 != 25                    // EOF\n     && l1 != 287)                  // '}'\n    {\n      whitespace();\n      parse_Expr();\n    }\n    eventHandler.endNonterminal(\"StatementsAndOptionalExpr\", e0);\n  }\n\n  function try_StatementsAndOptionalExpr()\n  {\n    try_Statements();\n    if (l1 != 25                    // EOF\n     && l1 != 287)                  // '}'\n    {\n      try_Expr();\n    }\n  }\n\n  function parse_Statement()\n  {\n    eventHandler.startNonterminal(\"Statement\", e0);\n    switch (l1)\n    {\n    case 133:                       // 'exit'\n      lookahead2W(147);             // S^WS | '#' | '(' | '(:' | 'returning'\n      break;\n    case 139:                       // 'for'\n      lookahead2W(179);             // S^WS | '#' | '$' | '(' | '(:' | 'sliding' | 'tumbling'\n      break;\n    case 177:                       // 'let'\n      lookahead2W(166);             // S^WS | '#' | '$' | '(' | '(:' | 'score'\n      break;\n    case 256:                       // 'try'\n      lookahead2W(148);             // S^WS | '#' | '(' | '(:' | '{'\n      break;\n    case 268:                       // 'variable'\n      lookahead2W(143);             // S^WS | '#' | '$' | '(' | '(:'\n      break;\n    case 281:                       // '{'\n      lookahead2W(283);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    case 31:                        // '$'\n    case 33:                        // '%'\n      lookahead2W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      break;\n    case 87:                        // 'break'\n    case 103:                       // 'continue'\n      lookahead2W(145);             // S^WS | '#' | '(' | '(:' | 'loop'\n      break;\n    case 154:                       // 'if'\n    case 248:                       // 'switch'\n    case 259:                       // 'typeswitch'\n    case 273:                       // 'while'\n      lookahead2W(95);              // S^WS | '#' | '(' | '(:'\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk != 6                     // EQName^Token\n     && lk != 8                     // IntegerLiteral\n     && lk != 9                     // DecimalLiteral\n     && lk != 10                    // DoubleLiteral\n     && lk != 11                    // StringLiteral\n     && lk != 32                    // '$$'\n     && lk != 35                    // '('\n     && lk != 36                    // '(#'\n     && lk != 41                    // '+'\n     && lk != 43                    // '-'\n     && lk != 47                    // '/'\n     && lk != 48                    // '//'\n     && lk != 54                    // ';'\n     && lk != 55                    // '<'\n     && lk != 56                    // '<!--'\n     && lk != 60                    // '<?'\n     && lk != 69                    // '['\n     && lk != 71                    // 'after'\n     && lk != 73                    // 'allowing'\n     && lk != 74                    // 'ancestor'\n     && lk != 75                    // 'ancestor-or-self'\n     && lk != 76                    // 'and'\n     && lk != 78                    // 'append'\n     && lk != 79                    // 'array'\n     && lk != 80                    // 'as'\n     && lk != 81                    // 'ascending'\n     && lk != 82                    // 'at'\n     && lk != 83                    // 'attribute'\n     && lk != 84                    // 'base-uri'\n     && lk != 85                    // 'before'\n     && lk != 86                    // 'boundary-space'\n     && lk != 89                    // 'case'\n     && lk != 90                    // 'cast'\n     && lk != 91                    // 'castable'\n     && lk != 92                    // 'catch'\n     && lk != 94                    // 'child'\n     && lk != 95                    // 'collation'\n     && lk != 97                    // 'comment'\n     && lk != 98                    // 'constraint'\n     && lk != 99                    // 'construction'\n     && lk != 102                   // 'context'\n     && lk != 104                   // 'copy'\n     && lk != 105                   // 'copy-namespaces'\n     && lk != 106                   // 'count'\n     && lk != 107                   // 'decimal-format'\n     && lk != 109                   // 'declare'\n     && lk != 110                   // 'default'\n     && lk != 111                   // 'delete'\n     && lk != 112                   // 'descendant'\n     && lk != 113                   // 'descendant-or-self'\n     && lk != 114                   // 'descending'\n     && lk != 119                   // 'div'\n     && lk != 120                   // 'document'\n     && lk != 121                   // 'document-node'\n     && lk != 122                   // 'element'\n     && lk != 123                   // 'else'\n     && lk != 124                   // 'empty'\n     && lk != 125                   // 'empty-sequence'\n     && lk != 126                   // 'encoding'\n     && lk != 127                   // 'end'\n     && lk != 129                   // 'eq'\n     && lk != 130                   // 'every'\n     && lk != 132                   // 'except'\n     && lk != 134                   // 'external'\n     && lk != 135                   // 'false'\n     && lk != 136                   // 'first'\n     && lk != 137                   // 'following'\n     && lk != 138                   // 'following-sibling'\n     && lk != 142                   // 'from'\n     && lk != 143                   // 'ft-option'\n     && lk != 147                   // 'function'\n     && lk != 148                   // 'ge'\n     && lk != 150                   // 'group'\n     && lk != 152                   // 'gt'\n     && lk != 153                   // 'idiv'\n     && lk != 155                   // 'import'\n     && lk != 156                   // 'in'\n     && lk != 157                   // 'index'\n     && lk != 161                   // 'insert'\n     && lk != 162                   // 'instance'\n     && lk != 163                   // 'integrity'\n     && lk != 164                   // 'intersect'\n     && lk != 165                   // 'into'\n     && lk != 166                   // 'is'\n     && lk != 167                   // 'item'\n     && lk != 168                   // 'json'\n     && lk != 169                   // 'json-item'\n     && lk != 170                   // 'jsoniq'\n     && lk != 173                   // 'last'\n     && lk != 174                   // 'lax'\n     && lk != 175                   // 'le'\n     && lk != 179                   // 'loop'\n     && lk != 181                   // 'lt'\n     && lk != 183                   // 'mod'\n     && lk != 184                   // 'modify'\n     && lk != 185                   // 'module'\n     && lk != 187                   // 'namespace'\n     && lk != 188                   // 'namespace-node'\n     && lk != 189                   // 'ne'\n     && lk != 194                   // 'node'\n     && lk != 195                   // 'nodes'\n     && lk != 196                   // 'not'\n     && lk != 197                   // 'null'\n     && lk != 198                   // 'object'\n     && lk != 202                   // 'only'\n     && lk != 203                   // 'option'\n     && lk != 204                   // 'or'\n     && lk != 205                   // 'order'\n     && lk != 206                   // 'ordered'\n     && lk != 207                   // 'ordering'\n     && lk != 210                   // 'parent'\n     && lk != 216                   // 'preceding'\n     && lk != 217                   // 'preceding-sibling'\n     && lk != 220                   // 'processing-instruction'\n     && lk != 222                   // 'rename'\n     && lk != 223                   // 'replace'\n     && lk != 224                   // 'return'\n     && lk != 225                   // 'returning'\n     && lk != 226                   // 'revalidation'\n     && lk != 228                   // 'satisfies'\n     && lk != 229                   // 'schema'\n     && lk != 230                   // 'schema-attribute'\n     && lk != 231                   // 'schema-element'\n     && lk != 232                   // 'score'\n     && lk != 233                   // 'select'\n     && lk != 234                   // 'self'\n     && lk != 239                   // 'sliding'\n     && lk != 240                   // 'some'\n     && lk != 241                   // 'stable'\n     && lk != 242                   // 'start'\n     && lk != 245                   // 'strict'\n     && lk != 247                   // 'structured-item'\n     && lk != 249                   // 'text'\n     && lk != 253                   // 'to'\n     && lk != 254                   // 'treat'\n     && lk != 255                   // 'true'\n     && lk != 257                   // 'tumbling'\n     && lk != 258                   // 'type'\n     && lk != 260                   // 'union'\n     && lk != 262                   // 'unordered'\n     && lk != 263                   // 'updating'\n     && lk != 266                   // 'validate'\n     && lk != 267                   // 'value'\n     && lk != 269                   // 'version'\n     && lk != 272                   // 'where'\n     && lk != 276                   // 'with'\n     && lk != 283                   // '{|'\n     && lk != 10009                 // '{' NCName^Token\n     && lk != 14935                 // 'break' '#'\n     && lk != 14951                 // 'continue' '#'\n     && lk != 14981                 // 'exit' '#'\n     && lk != 14987                 // 'for' '#'\n     && lk != 15002                 // 'if' '#'\n     && lk != 15025                 // 'let' '#'\n     && lk != 15096                 // 'switch' '#'\n     && lk != 15104                 // 'try' '#'\n     && lk != 15107                 // 'typeswitch' '#'\n     && lk != 15116                 // 'variable' '#'\n     && lk != 15121                 // 'while' '#'\n     && lk != 16011                 // 'for' '$'\n     && lk != 16049                 // 'let' '$'\n     && lk != 16140                 // 'variable' '$'\n     && lk != 18007                 // 'break' '('\n     && lk != 18023                 // 'continue' '('\n     && lk != 18053                 // 'exit' '('\n     && lk != 18059                 // 'for' '('\n     && lk != 18074                 // 'if' '('\n     && lk != 18097                 // 'let' '('\n     && lk != 18168                 // 'switch' '('\n     && lk != 18176                 // 'try' '('\n     && lk != 18179                 // 'typeswitch' '('\n     && lk != 18188                 // 'variable' '('\n     && lk != 91735                 // 'break' 'loop'\n     && lk != 91751                 // 'continue' 'loop'\n     && lk != 115333                // 'exit' 'returning'\n     && lk != 118961                // 'let' 'score'\n     && lk != 122507                // 'for' 'sliding'\n     && lk != 131723                // 'for' 'tumbling'\n     && lk != 144128                // 'try' '{'\n     && lk != 147225)               // '{' '}'\n    {\n      lk = memoized(9, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_ApplyStatement();\n          lk = -1;\n        }\n        catch (p1A)\n        {\n          try\n          {\n            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n            b2 = b2A; e2 = e2A; end = e2A; }}\n            try_AssignStatement();\n            lk = -2;\n          }\n          catch (p2A)\n          {\n            try\n            {\n              b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n              b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n              b2 = b2A; e2 = e2A; end = e2A; }}\n              try_BlockStatement();\n              lk = -3;\n            }\n            catch (p3A)\n            {\n              try\n              {\n                b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n                b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n                b2 = b2A; e2 = e2A; end = e2A; }}\n                try_VarDeclStatement();\n                lk = -12;\n              }\n              catch (p12A)\n              {\n                lk = -13;\n              }\n            }\n          }\n        }\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(9, e0, lk);\n      }\n    }\n    switch (lk)\n    {\n    case -2:\n      parse_AssignStatement();\n      break;\n    case -3:\n      parse_BlockStatement();\n      break;\n    case 91735:                     // 'break' 'loop'\n      parse_BreakStatement();\n      break;\n    case 91751:                     // 'continue' 'loop'\n      parse_ContinueStatement();\n      break;\n    case 115333:                    // 'exit' 'returning'\n      parse_ExitStatement();\n      break;\n    case 16011:                     // 'for' '$'\n    case 16049:                     // 'let' '$'\n    case 118961:                    // 'let' 'score'\n    case 122507:                    // 'for' 'sliding'\n    case 131723:                    // 'for' 'tumbling'\n      parse_FLWORStatement();\n      break;\n    case 18074:                     // 'if' '('\n      parse_IfStatement();\n      break;\n    case 18168:                     // 'switch' '('\n      parse_SwitchStatement();\n      break;\n    case 144128:                    // 'try' '{'\n      parse_TryCatchStatement();\n      break;\n    case 18179:                     // 'typeswitch' '('\n      parse_TypeswitchStatement();\n      break;\n    case -12:\n    case 16140:                     // 'variable' '$'\n      parse_VarDeclStatement();\n      break;\n    case -13:\n      parse_WhileStatement();\n      break;\n    case 54:                        // ';'\n      parse_VoidStatement();\n      break;\n    default:\n      parse_ApplyStatement();\n    }\n    eventHandler.endNonterminal(\"Statement\", e0);\n  }\n\n  function try_Statement()\n  {\n    switch (l1)\n    {\n    case 133:                       // 'exit'\n      lookahead2W(147);             // S^WS | '#' | '(' | '(:' | 'returning'\n      break;\n    case 139:                       // 'for'\n      lookahead2W(179);             // S^WS | '#' | '$' | '(' | '(:' | 'sliding' | 'tumbling'\n      break;\n    case 177:                       // 'let'\n      lookahead2W(166);             // S^WS | '#' | '$' | '(' | '(:' | 'score'\n      break;\n    case 256:                       // 'try'\n      lookahead2W(148);             // S^WS | '#' | '(' | '(:' | '{'\n      break;\n    case 268:                       // 'variable'\n      lookahead2W(143);             // S^WS | '#' | '$' | '(' | '(:'\n      break;\n    case 281:                       // '{'\n      lookahead2W(283);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    case 31:                        // '$'\n    case 33:                        // '%'\n      lookahead2W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      break;\n    case 87:                        // 'break'\n    case 103:                       // 'continue'\n      lookahead2W(145);             // S^WS | '#' | '(' | '(:' | 'loop'\n      break;\n    case 154:                       // 'if'\n    case 248:                       // 'switch'\n    case 259:                       // 'typeswitch'\n    case 273:                       // 'while'\n      lookahead2W(95);              // S^WS | '#' | '(' | '(:'\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk != 6                     // EQName^Token\n     && lk != 8                     // IntegerLiteral\n     && lk != 9                     // DecimalLiteral\n     && lk != 10                    // DoubleLiteral\n     && lk != 11                    // StringLiteral\n     && lk != 32                    // '$$'\n     && lk != 35                    // '('\n     && lk != 36                    // '(#'\n     && lk != 41                    // '+'\n     && lk != 43                    // '-'\n     && lk != 47                    // '/'\n     && lk != 48                    // '//'\n     && lk != 54                    // ';'\n     && lk != 55                    // '<'\n     && lk != 56                    // '<!--'\n     && lk != 60                    // '<?'\n     && lk != 69                    // '['\n     && lk != 71                    // 'after'\n     && lk != 73                    // 'allowing'\n     && lk != 74                    // 'ancestor'\n     && lk != 75                    // 'ancestor-or-self'\n     && lk != 76                    // 'and'\n     && lk != 78                    // 'append'\n     && lk != 79                    // 'array'\n     && lk != 80                    // 'as'\n     && lk != 81                    // 'ascending'\n     && lk != 82                    // 'at'\n     && lk != 83                    // 'attribute'\n     && lk != 84                    // 'base-uri'\n     && lk != 85                    // 'before'\n     && lk != 86                    // 'boundary-space'\n     && lk != 89                    // 'case'\n     && lk != 90                    // 'cast'\n     && lk != 91                    // 'castable'\n     && lk != 92                    // 'catch'\n     && lk != 94                    // 'child'\n     && lk != 95                    // 'collation'\n     && lk != 97                    // 'comment'\n     && lk != 98                    // 'constraint'\n     && lk != 99                    // 'construction'\n     && lk != 102                   // 'context'\n     && lk != 104                   // 'copy'\n     && lk != 105                   // 'copy-namespaces'\n     && lk != 106                   // 'count'\n     && lk != 107                   // 'decimal-format'\n     && lk != 109                   // 'declare'\n     && lk != 110                   // 'default'\n     && lk != 111                   // 'delete'\n     && lk != 112                   // 'descendant'\n     && lk != 113                   // 'descendant-or-self'\n     && lk != 114                   // 'descending'\n     && lk != 119                   // 'div'\n     && lk != 120                   // 'document'\n     && lk != 121                   // 'document-node'\n     && lk != 122                   // 'element'\n     && lk != 123                   // 'else'\n     && lk != 124                   // 'empty'\n     && lk != 125                   // 'empty-sequence'\n     && lk != 126                   // 'encoding'\n     && lk != 127                   // 'end'\n     && lk != 129                   // 'eq'\n     && lk != 130                   // 'every'\n     && lk != 132                   // 'except'\n     && lk != 134                   // 'external'\n     && lk != 135                   // 'false'\n     && lk != 136                   // 'first'\n     && lk != 137                   // 'following'\n     && lk != 138                   // 'following-sibling'\n     && lk != 142                   // 'from'\n     && lk != 143                   // 'ft-option'\n     && lk != 147                   // 'function'\n     && lk != 148                   // 'ge'\n     && lk != 150                   // 'group'\n     && lk != 152                   // 'gt'\n     && lk != 153                   // 'idiv'\n     && lk != 155                   // 'import'\n     && lk != 156                   // 'in'\n     && lk != 157                   // 'index'\n     && lk != 161                   // 'insert'\n     && lk != 162                   // 'instance'\n     && lk != 163                   // 'integrity'\n     && lk != 164                   // 'intersect'\n     && lk != 165                   // 'into'\n     && lk != 166                   // 'is'\n     && lk != 167                   // 'item'\n     && lk != 168                   // 'json'\n     && lk != 169                   // 'json-item'\n     && lk != 170                   // 'jsoniq'\n     && lk != 173                   // 'last'\n     && lk != 174                   // 'lax'\n     && lk != 175                   // 'le'\n     && lk != 179                   // 'loop'\n     && lk != 181                   // 'lt'\n     && lk != 183                   // 'mod'\n     && lk != 184                   // 'modify'\n     && lk != 185                   // 'module'\n     && lk != 187                   // 'namespace'\n     && lk != 188                   // 'namespace-node'\n     && lk != 189                   // 'ne'\n     && lk != 194                   // 'node'\n     && lk != 195                   // 'nodes'\n     && lk != 196                   // 'not'\n     && lk != 197                   // 'null'\n     && lk != 198                   // 'object'\n     && lk != 202                   // 'only'\n     && lk != 203                   // 'option'\n     && lk != 204                   // 'or'\n     && lk != 205                   // 'order'\n     && lk != 206                   // 'ordered'\n     && lk != 207                   // 'ordering'\n     && lk != 210                   // 'parent'\n     && lk != 216                   // 'preceding'\n     && lk != 217                   // 'preceding-sibling'\n     && lk != 220                   // 'processing-instruction'\n     && lk != 222                   // 'rename'\n     && lk != 223                   // 'replace'\n     && lk != 224                   // 'return'\n     && lk != 225                   // 'returning'\n     && lk != 226                   // 'revalidation'\n     && lk != 228                   // 'satisfies'\n     && lk != 229                   // 'schema'\n     && lk != 230                   // 'schema-attribute'\n     && lk != 231                   // 'schema-element'\n     && lk != 232                   // 'score'\n     && lk != 233                   // 'select'\n     && lk != 234                   // 'self'\n     && lk != 239                   // 'sliding'\n     && lk != 240                   // 'some'\n     && lk != 241                   // 'stable'\n     && lk != 242                   // 'start'\n     && lk != 245                   // 'strict'\n     && lk != 247                   // 'structured-item'\n     && lk != 249                   // 'text'\n     && lk != 253                   // 'to'\n     && lk != 254                   // 'treat'\n     && lk != 255                   // 'true'\n     && lk != 257                   // 'tumbling'\n     && lk != 258                   // 'type'\n     && lk != 260                   // 'union'\n     && lk != 262                   // 'unordered'\n     && lk != 263                   // 'updating'\n     && lk != 266                   // 'validate'\n     && lk != 267                   // 'value'\n     && lk != 269                   // 'version'\n     && lk != 272                   // 'where'\n     && lk != 276                   // 'with'\n     && lk != 283                   // '{|'\n     && lk != 10009                 // '{' NCName^Token\n     && lk != 14935                 // 'break' '#'\n     && lk != 14951                 // 'continue' '#'\n     && lk != 14981                 // 'exit' '#'\n     && lk != 14987                 // 'for' '#'\n     && lk != 15002                 // 'if' '#'\n     && lk != 15025                 // 'let' '#'\n     && lk != 15096                 // 'switch' '#'\n     && lk != 15104                 // 'try' '#'\n     && lk != 15107                 // 'typeswitch' '#'\n     && lk != 15116                 // 'variable' '#'\n     && lk != 15121                 // 'while' '#'\n     && lk != 16011                 // 'for' '$'\n     && lk != 16049                 // 'let' '$'\n     && lk != 16140                 // 'variable' '$'\n     && lk != 18007                 // 'break' '('\n     && lk != 18023                 // 'continue' '('\n     && lk != 18053                 // 'exit' '('\n     && lk != 18059                 // 'for' '('\n     && lk != 18074                 // 'if' '('\n     && lk != 18097                 // 'let' '('\n     && lk != 18168                 // 'switch' '('\n     && lk != 18176                 // 'try' '('\n     && lk != 18179                 // 'typeswitch' '('\n     && lk != 18188                 // 'variable' '('\n     && lk != 91735                 // 'break' 'loop'\n     && lk != 91751                 // 'continue' 'loop'\n     && lk != 115333                // 'exit' 'returning'\n     && lk != 118961                // 'let' 'score'\n     && lk != 122507                // 'for' 'sliding'\n     && lk != 131723                // 'for' 'tumbling'\n     && lk != 144128                // 'try' '{'\n     && lk != 147225)               // '{' '}'\n    {\n      lk = memoized(9, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_ApplyStatement();\n          memoize(9, e0A, -1);\n          lk = -15;\n        }\n        catch (p1A)\n        {\n          try\n          {\n            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n            b2 = b2A; e2 = e2A; end = e2A; }}\n            try_AssignStatement();\n            memoize(9, e0A, -2);\n            lk = -15;\n          }\n          catch (p2A)\n          {\n            try\n            {\n              b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n              b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n              b2 = b2A; e2 = e2A; end = e2A; }}\n              try_BlockStatement();\n              memoize(9, e0A, -3);\n              lk = -15;\n            }\n            catch (p3A)\n            {\n              try\n              {\n                b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n                b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n                b2 = b2A; e2 = e2A; end = e2A; }}\n                try_VarDeclStatement();\n                memoize(9, e0A, -12);\n                lk = -15;\n              }\n              catch (p12A)\n              {\n                lk = -13;\n                b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n                b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n                b2 = b2A; e2 = e2A; end = e2A; }}\n                memoize(9, e0A, -13);\n              }\n            }\n          }\n        }\n      }\n    }\n    switch (lk)\n    {\n    case -2:\n      try_AssignStatement();\n      break;\n    case -3:\n      try_BlockStatement();\n      break;\n    case 91735:                     // 'break' 'loop'\n      try_BreakStatement();\n      break;\n    case 91751:                     // 'continue' 'loop'\n      try_ContinueStatement();\n      break;\n    case 115333:                    // 'exit' 'returning'\n      try_ExitStatement();\n      break;\n    case 16011:                     // 'for' '$'\n    case 16049:                     // 'let' '$'\n    case 118961:                    // 'let' 'score'\n    case 122507:                    // 'for' 'sliding'\n    case 131723:                    // 'for' 'tumbling'\n      try_FLWORStatement();\n      break;\n    case 18074:                     // 'if' '('\n      try_IfStatement();\n      break;\n    case 18168:                     // 'switch' '('\n      try_SwitchStatement();\n      break;\n    case 144128:                    // 'try' '{'\n      try_TryCatchStatement();\n      break;\n    case 18179:                     // 'typeswitch' '('\n      try_TypeswitchStatement();\n      break;\n    case -12:\n    case 16140:                     // 'variable' '$'\n      try_VarDeclStatement();\n      break;\n    case -13:\n      try_WhileStatement();\n      break;\n    case 54:                        // ';'\n      try_VoidStatement();\n      break;\n    case -15:\n      break;\n    default:\n      try_ApplyStatement();\n    }\n  }\n\n  function parse_ApplyStatement()\n  {\n    eventHandler.startNonterminal(\"ApplyStatement\", e0);\n    parse_ExprSimple();\n    shift(54);                      // ';'\n    eventHandler.endNonterminal(\"ApplyStatement\", e0);\n  }\n\n  function try_ApplyStatement()\n  {\n    try_ExprSimple();\n    shiftT(54);                     // ';'\n  }\n\n  function parse_AssignStatement()\n  {\n    eventHandler.startNonterminal(\"AssignStatement\", e0);\n    shift(31);                      // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    lookahead1W(28);                // S^WS | '(:' | ':='\n    shift(53);                      // ':='\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    shift(54);                      // ';'\n    eventHandler.endNonterminal(\"AssignStatement\", e0);\n  }\n\n  function try_AssignStatement()\n  {\n    shiftT(31);                     // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_VarName();\n    lookahead1W(28);                // S^WS | '(:' | ':='\n    shiftT(53);                     // ':='\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n    shiftT(54);                     // ';'\n  }\n\n  function parse_BlockStatement()\n  {\n    eventHandler.startNonterminal(\"BlockStatement\", e0);\n    shift(281);                     // '{'\n    lookahead1W(271);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Statement();\n    lookahead1W(281);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Statements();\n    shift(287);                     // '}'\n    eventHandler.endNonterminal(\"BlockStatement\", e0);\n  }\n\n  function try_BlockStatement()\n  {\n    shiftT(281);                    // '{'\n    lookahead1W(271);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Statement();\n    lookahead1W(281);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Statements();\n    shiftT(287);                    // '}'\n  }\n\n  function parse_BreakStatement()\n  {\n    eventHandler.startNonterminal(\"BreakStatement\", e0);\n    shift(87);                      // 'break'\n    lookahead1W(62);                // S^WS | '(:' | 'loop'\n    shift(179);                     // 'loop'\n    lookahead1W(29);                // S^WS | '(:' | ';'\n    shift(54);                      // ';'\n    eventHandler.endNonterminal(\"BreakStatement\", e0);\n  }\n\n  function try_BreakStatement()\n  {\n    shiftT(87);                     // 'break'\n    lookahead1W(62);                // S^WS | '(:' | 'loop'\n    shiftT(179);                    // 'loop'\n    lookahead1W(29);                // S^WS | '(:' | ';'\n    shiftT(54);                     // ';'\n  }\n\n  function parse_ContinueStatement()\n  {\n    eventHandler.startNonterminal(\"ContinueStatement\", e0);\n    shift(103);                     // 'continue'\n    lookahead1W(62);                // S^WS | '(:' | 'loop'\n    shift(179);                     // 'loop'\n    lookahead1W(29);                // S^WS | '(:' | ';'\n    shift(54);                      // ';'\n    eventHandler.endNonterminal(\"ContinueStatement\", e0);\n  }\n\n  function try_ContinueStatement()\n  {\n    shiftT(103);                    // 'continue'\n    lookahead1W(62);                // S^WS | '(:' | 'loop'\n    shiftT(179);                    // 'loop'\n    lookahead1W(29);                // S^WS | '(:' | ';'\n    shiftT(54);                     // ';'\n  }\n\n  function parse_ExitStatement()\n  {\n    eventHandler.startNonterminal(\"ExitStatement\", e0);\n    shift(133);                     // 'exit'\n    lookahead1W(74);                // S^WS | '(:' | 'returning'\n    shift(225);                     // 'returning'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    shift(54);                      // ';'\n    eventHandler.endNonterminal(\"ExitStatement\", e0);\n  }\n\n  function try_ExitStatement()\n  {\n    shiftT(133);                    // 'exit'\n    lookahead1W(74);                // S^WS | '(:' | 'returning'\n    shiftT(225);                    // 'returning'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n    shiftT(54);                     // ';'\n  }\n\n  function parse_FLWORStatement()\n  {\n    eventHandler.startNonterminal(\"FLWORStatement\", e0);\n    parse_InitialClause();\n    for (;;)\n    {\n      lookahead1W(195);             // S^WS | '(:' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' | 'stable' |\n      if (l1 == 224)                // 'return'\n      {\n        break;\n      }\n      whitespace();\n      parse_IntermediateClause();\n    }\n    whitespace();\n    parse_ReturnStatement();\n    eventHandler.endNonterminal(\"FLWORStatement\", e0);\n  }\n\n  function try_FLWORStatement()\n  {\n    try_InitialClause();\n    for (;;)\n    {\n      lookahead1W(195);             // S^WS | '(:' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' | 'stable' |\n      if (l1 == 224)                // 'return'\n      {\n        break;\n      }\n      try_IntermediateClause();\n    }\n    try_ReturnStatement();\n  }\n\n  function parse_ReturnStatement()\n  {\n    eventHandler.startNonterminal(\"ReturnStatement\", e0);\n    shift(224);                     // 'return'\n    lookahead1W(271);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Statement();\n    eventHandler.endNonterminal(\"ReturnStatement\", e0);\n  }\n\n  function try_ReturnStatement()\n  {\n    shiftT(224);                    // 'return'\n    lookahead1W(271);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Statement();\n  }\n\n  function parse_IfStatement()\n  {\n    eventHandler.startNonterminal(\"IfStatement\", e0);\n    shift(154);                     // 'if'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(35);                      // '('\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Expr();\n    shift(38);                      // ')'\n    lookahead1W(80);                // S^WS | '(:' | 'then'\n    shift(250);                     // 'then'\n    lookahead1W(271);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Statement();\n    lookahead1W(51);                // S^WS | '(:' | 'else'\n    shift(123);                     // 'else'\n    lookahead1W(271);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Statement();\n    eventHandler.endNonterminal(\"IfStatement\", e0);\n  }\n\n  function try_IfStatement()\n  {\n    shiftT(154);                    // 'if'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(35);                     // '('\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Expr();\n    shiftT(38);                     // ')'\n    lookahead1W(80);                // S^WS | '(:' | 'then'\n    shiftT(250);                    // 'then'\n    lookahead1W(271);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Statement();\n    lookahead1W(51);                // S^WS | '(:' | 'else'\n    shiftT(123);                    // 'else'\n    lookahead1W(271);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Statement();\n  }\n\n  function parse_SwitchStatement()\n  {\n    eventHandler.startNonterminal(\"SwitchStatement\", e0);\n    shift(248);                     // 'switch'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(35);                      // '('\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Expr();\n    shift(38);                      // ')'\n    for (;;)\n    {\n      lookahead1W(38);              // S^WS | '(:' | 'case'\n      whitespace();\n      parse_SwitchCaseStatement();\n      lookahead1W(117);             // S^WS | '(:' | 'case' | 'default'\n      if (l1 != 89)                 // 'case'\n      {\n        break;\n      }\n    }\n    shift(110);                     // 'default'\n    lookahead1W(73);                // S^WS | '(:' | 'return'\n    shift(224);                     // 'return'\n    lookahead1W(271);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Statement();\n    eventHandler.endNonterminal(\"SwitchStatement\", e0);\n  }\n\n  function try_SwitchStatement()\n  {\n    shiftT(248);                    // 'switch'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(35);                     // '('\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Expr();\n    shiftT(38);                     // ')'\n    for (;;)\n    {\n      lookahead1W(38);              // S^WS | '(:' | 'case'\n      try_SwitchCaseStatement();\n      lookahead1W(117);             // S^WS | '(:' | 'case' | 'default'\n      if (l1 != 89)                 // 'case'\n      {\n        break;\n      }\n    }\n    shiftT(110);                    // 'default'\n    lookahead1W(73);                // S^WS | '(:' | 'return'\n    shiftT(224);                    // 'return'\n    lookahead1W(271);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Statement();\n  }\n\n  function parse_SwitchCaseStatement()\n  {\n    eventHandler.startNonterminal(\"SwitchCaseStatement\", e0);\n    for (;;)\n    {\n      shift(89);                    // 'case'\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_SwitchCaseOperand();\n      if (l1 != 89)                 // 'case'\n      {\n        break;\n      }\n    }\n    shift(224);                     // 'return'\n    lookahead1W(271);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Statement();\n    eventHandler.endNonterminal(\"SwitchCaseStatement\", e0);\n  }\n\n  function try_SwitchCaseStatement()\n  {\n    for (;;)\n    {\n      shiftT(89);                   // 'case'\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_SwitchCaseOperand();\n      if (l1 != 89)                 // 'case'\n      {\n        break;\n      }\n    }\n    shiftT(224);                    // 'return'\n    lookahead1W(271);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Statement();\n  }\n\n  function parse_TryCatchStatement()\n  {\n    eventHandler.startNonterminal(\"TryCatchStatement\", e0);\n    shift(256);                     // 'try'\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    whitespace();\n    parse_BlockStatement();\n    for (;;)\n    {\n      lookahead1W(39);              // S^WS | '(:' | 'catch'\n      shift(92);                    // 'catch'\n      lookahead1W(249);             // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_CatchErrorList();\n      whitespace();\n      parse_BlockStatement();\n      lookahead1W(284);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      switch (l1)\n      {\n      case 92:                      // 'catch'\n        lookahead2W(256);           // Wildcard | EQName^Token | S^WS | '#' | '(' | '(:' | 'after' | 'allowing' |\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk != 2652                // 'catch' Wildcard\n       && lk != 3164                // 'catch' EQName^Token\n       && lk != 36444               // 'catch' 'after'\n       && lk != 37468               // 'catch' 'allowing'\n       && lk != 37980               // 'catch' 'ancestor'\n       && lk != 38492               // 'catch' 'ancestor-or-self'\n       && lk != 39004               // 'catch' 'and'\n       && lk != 40028               // 'catch' 'append'\n       && lk != 40540               // 'catch' 'array'\n       && lk != 41052               // 'catch' 'as'\n       && lk != 41564               // 'catch' 'ascending'\n       && lk != 42076               // 'catch' 'at'\n       && lk != 42588               // 'catch' 'attribute'\n       && lk != 43100               // 'catch' 'base-uri'\n       && lk != 43612               // 'catch' 'before'\n       && lk != 44124               // 'catch' 'boundary-space'\n       && lk != 44636               // 'catch' 'break'\n       && lk != 45660               // 'catch' 'case'\n       && lk != 46172               // 'catch' 'cast'\n       && lk != 46684               // 'catch' 'castable'\n       && lk != 47196               // 'catch' 'catch'\n       && lk != 48220               // 'catch' 'child'\n       && lk != 48732               // 'catch' 'collation'\n       && lk != 49756               // 'catch' 'comment'\n       && lk != 50268               // 'catch' 'constraint'\n       && lk != 50780               // 'catch' 'construction'\n       && lk != 52316               // 'catch' 'context'\n       && lk != 52828               // 'catch' 'continue'\n       && lk != 53340               // 'catch' 'copy'\n       && lk != 53852               // 'catch' 'copy-namespaces'\n       && lk != 54364               // 'catch' 'count'\n       && lk != 54876               // 'catch' 'decimal-format'\n       && lk != 55900               // 'catch' 'declare'\n       && lk != 56412               // 'catch' 'default'\n       && lk != 56924               // 'catch' 'delete'\n       && lk != 57436               // 'catch' 'descendant'\n       && lk != 57948               // 'catch' 'descendant-or-self'\n       && lk != 58460               // 'catch' 'descending'\n       && lk != 61020               // 'catch' 'div'\n       && lk != 61532               // 'catch' 'document'\n       && lk != 62044               // 'catch' 'document-node'\n       && lk != 62556               // 'catch' 'element'\n       && lk != 63068               // 'catch' 'else'\n       && lk != 63580               // 'catch' 'empty'\n       && lk != 64092               // 'catch' 'empty-sequence'\n       && lk != 64604               // 'catch' 'encoding'\n       && lk != 65116               // 'catch' 'end'\n       && lk != 66140               // 'catch' 'eq'\n       && lk != 66652               // 'catch' 'every'\n       && lk != 67676               // 'catch' 'except'\n       && lk != 68188               // 'catch' 'exit'\n       && lk != 68700               // 'catch' 'external'\n       && lk != 69212               // 'catch' 'false'\n       && lk != 69724               // 'catch' 'first'\n       && lk != 70236               // 'catch' 'following'\n       && lk != 70748               // 'catch' 'following-sibling'\n       && lk != 71260               // 'catch' 'for'\n       && lk != 72796               // 'catch' 'from'\n       && lk != 73308               // 'catch' 'ft-option'\n       && lk != 75356               // 'catch' 'function'\n       && lk != 75868               // 'catch' 'ge'\n       && lk != 76892               // 'catch' 'group'\n       && lk != 77916               // 'catch' 'gt'\n       && lk != 78428               // 'catch' 'idiv'\n       && lk != 78940               // 'catch' 'if'\n       && lk != 79452               // 'catch' 'import'\n       && lk != 79964               // 'catch' 'in'\n       && lk != 80476               // 'catch' 'index'\n       && lk != 82524               // 'catch' 'insert'\n       && lk != 83036               // 'catch' 'instance'\n       && lk != 83548               // 'catch' 'integrity'\n       && lk != 84060               // 'catch' 'intersect'\n       && lk != 84572               // 'catch' 'into'\n       && lk != 85084               // 'catch' 'is'\n       && lk != 85596               // 'catch' 'item'\n       && lk != 86108               // 'catch' 'json'\n       && lk != 86620               // 'catch' 'json-item'\n       && lk != 87132               // 'catch' 'jsoniq'\n       && lk != 88668               // 'catch' 'last'\n       && lk != 89180               // 'catch' 'lax'\n       && lk != 89692               // 'catch' 'le'\n       && lk != 90716               // 'catch' 'let'\n       && lk != 91740               // 'catch' 'loop'\n       && lk != 92764               // 'catch' 'lt'\n       && lk != 93788               // 'catch' 'mod'\n       && lk != 94300               // 'catch' 'modify'\n       && lk != 94812               // 'catch' 'module'\n       && lk != 95836               // 'catch' 'namespace'\n       && lk != 96348               // 'catch' 'namespace-node'\n       && lk != 96860               // 'catch' 'ne'\n       && lk != 99420               // 'catch' 'node'\n       && lk != 99932               // 'catch' 'nodes'\n       && lk != 100956              // 'catch' 'null'\n       && lk != 101468              // 'catch' 'object'\n       && lk != 103516              // 'catch' 'only'\n       && lk != 104028              // 'catch' 'option'\n       && lk != 104540              // 'catch' 'or'\n       && lk != 105052              // 'catch' 'order'\n       && lk != 105564              // 'catch' 'ordered'\n       && lk != 106076              // 'catch' 'ordering'\n       && lk != 107612              // 'catch' 'parent'\n       && lk != 110684              // 'catch' 'preceding'\n       && lk != 111196              // 'catch' 'preceding-sibling'\n       && lk != 112732              // 'catch' 'processing-instruction'\n       && lk != 113756              // 'catch' 'rename'\n       && lk != 114268              // 'catch' 'replace'\n       && lk != 114780              // 'catch' 'return'\n       && lk != 115292              // 'catch' 'returning'\n       && lk != 115804              // 'catch' 'revalidation'\n       && lk != 116828              // 'catch' 'satisfies'\n       && lk != 117340              // 'catch' 'schema'\n       && lk != 117852              // 'catch' 'schema-attribute'\n       && lk != 118364              // 'catch' 'schema-element'\n       && lk != 118876              // 'catch' 'score'\n       && lk != 119388              // 'catch' 'select'\n       && lk != 119900              // 'catch' 'self'\n       && lk != 122460              // 'catch' 'sliding'\n       && lk != 122972              // 'catch' 'some'\n       && lk != 123484              // 'catch' 'stable'\n       && lk != 123996              // 'catch' 'start'\n       && lk != 125532              // 'catch' 'strict'\n       && lk != 126556              // 'catch' 'structured-item'\n       && lk != 127068              // 'catch' 'switch'\n       && lk != 127580              // 'catch' 'text'\n       && lk != 129628              // 'catch' 'to'\n       && lk != 130140              // 'catch' 'treat'\n       && lk != 130652              // 'catch' 'true'\n       && lk != 131164              // 'catch' 'try'\n       && lk != 131676              // 'catch' 'tumbling'\n       && lk != 132188              // 'catch' 'type'\n       && lk != 132700              // 'catch' 'typeswitch'\n       && lk != 133212              // 'catch' 'union'\n       && lk != 134236              // 'catch' 'unordered'\n       && lk != 134748              // 'catch' 'updating'\n       && lk != 136284              // 'catch' 'validate'\n       && lk != 136796              // 'catch' 'value'\n       && lk != 137308              // 'catch' 'variable'\n       && lk != 137820              // 'catch' 'version'\n       && lk != 139356              // 'catch' 'where'\n       && lk != 139868              // 'catch' 'while'\n       && lk != 141404)             // 'catch' 'with'\n      {\n        break;\n      }\n    }\n    eventHandler.endNonterminal(\"TryCatchStatement\", e0);\n  }\n\n  function try_TryCatchStatement()\n  {\n    shiftT(256);                    // 'try'\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    try_BlockStatement();\n    for (;;)\n    {\n      lookahead1W(39);              // S^WS | '(:' | 'catch'\n      shiftT(92);                   // 'catch'\n      lookahead1W(249);             // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_CatchErrorList();\n      try_BlockStatement();\n      lookahead1W(284);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      switch (l1)\n      {\n      case 92:                      // 'catch'\n        lookahead2W(256);           // Wildcard | EQName^Token | S^WS | '#' | '(' | '(:' | 'after' | 'allowing' |\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk != 2652                // 'catch' Wildcard\n       && lk != 3164                // 'catch' EQName^Token\n       && lk != 36444               // 'catch' 'after'\n       && lk != 37468               // 'catch' 'allowing'\n       && lk != 37980               // 'catch' 'ancestor'\n       && lk != 38492               // 'catch' 'ancestor-or-self'\n       && lk != 39004               // 'catch' 'and'\n       && lk != 40028               // 'catch' 'append'\n       && lk != 40540               // 'catch' 'array'\n       && lk != 41052               // 'catch' 'as'\n       && lk != 41564               // 'catch' 'ascending'\n       && lk != 42076               // 'catch' 'at'\n       && lk != 42588               // 'catch' 'attribute'\n       && lk != 43100               // 'catch' 'base-uri'\n       && lk != 43612               // 'catch' 'before'\n       && lk != 44124               // 'catch' 'boundary-space'\n       && lk != 44636               // 'catch' 'break'\n       && lk != 45660               // 'catch' 'case'\n       && lk != 46172               // 'catch' 'cast'\n       && lk != 46684               // 'catch' 'castable'\n       && lk != 47196               // 'catch' 'catch'\n       && lk != 48220               // 'catch' 'child'\n       && lk != 48732               // 'catch' 'collation'\n       && lk != 49756               // 'catch' 'comment'\n       && lk != 50268               // 'catch' 'constraint'\n       && lk != 50780               // 'catch' 'construction'\n       && lk != 52316               // 'catch' 'context'\n       && lk != 52828               // 'catch' 'continue'\n       && lk != 53340               // 'catch' 'copy'\n       && lk != 53852               // 'catch' 'copy-namespaces'\n       && lk != 54364               // 'catch' 'count'\n       && lk != 54876               // 'catch' 'decimal-format'\n       && lk != 55900               // 'catch' 'declare'\n       && lk != 56412               // 'catch' 'default'\n       && lk != 56924               // 'catch' 'delete'\n       && lk != 57436               // 'catch' 'descendant'\n       && lk != 57948               // 'catch' 'descendant-or-self'\n       && lk != 58460               // 'catch' 'descending'\n       && lk != 61020               // 'catch' 'div'\n       && lk != 61532               // 'catch' 'document'\n       && lk != 62044               // 'catch' 'document-node'\n       && lk != 62556               // 'catch' 'element'\n       && lk != 63068               // 'catch' 'else'\n       && lk != 63580               // 'catch' 'empty'\n       && lk != 64092               // 'catch' 'empty-sequence'\n       && lk != 64604               // 'catch' 'encoding'\n       && lk != 65116               // 'catch' 'end'\n       && lk != 66140               // 'catch' 'eq'\n       && lk != 66652               // 'catch' 'every'\n       && lk != 67676               // 'catch' 'except'\n       && lk != 68188               // 'catch' 'exit'\n       && lk != 68700               // 'catch' 'external'\n       && lk != 69212               // 'catch' 'false'\n       && lk != 69724               // 'catch' 'first'\n       && lk != 70236               // 'catch' 'following'\n       && lk != 70748               // 'catch' 'following-sibling'\n       && lk != 71260               // 'catch' 'for'\n       && lk != 72796               // 'catch' 'from'\n       && lk != 73308               // 'catch' 'ft-option'\n       && lk != 75356               // 'catch' 'function'\n       && lk != 75868               // 'catch' 'ge'\n       && lk != 76892               // 'catch' 'group'\n       && lk != 77916               // 'catch' 'gt'\n       && lk != 78428               // 'catch' 'idiv'\n       && lk != 78940               // 'catch' 'if'\n       && lk != 79452               // 'catch' 'import'\n       && lk != 79964               // 'catch' 'in'\n       && lk != 80476               // 'catch' 'index'\n       && lk != 82524               // 'catch' 'insert'\n       && lk != 83036               // 'catch' 'instance'\n       && lk != 83548               // 'catch' 'integrity'\n       && lk != 84060               // 'catch' 'intersect'\n       && lk != 84572               // 'catch' 'into'\n       && lk != 85084               // 'catch' 'is'\n       && lk != 85596               // 'catch' 'item'\n       && lk != 86108               // 'catch' 'json'\n       && lk != 86620               // 'catch' 'json-item'\n       && lk != 87132               // 'catch' 'jsoniq'\n       && lk != 88668               // 'catch' 'last'\n       && lk != 89180               // 'catch' 'lax'\n       && lk != 89692               // 'catch' 'le'\n       && lk != 90716               // 'catch' 'let'\n       && lk != 91740               // 'catch' 'loop'\n       && lk != 92764               // 'catch' 'lt'\n       && lk != 93788               // 'catch' 'mod'\n       && lk != 94300               // 'catch' 'modify'\n       && lk != 94812               // 'catch' 'module'\n       && lk != 95836               // 'catch' 'namespace'\n       && lk != 96348               // 'catch' 'namespace-node'\n       && lk != 96860               // 'catch' 'ne'\n       && lk != 99420               // 'catch' 'node'\n       && lk != 99932               // 'catch' 'nodes'\n       && lk != 100956              // 'catch' 'null'\n       && lk != 101468              // 'catch' 'object'\n       && lk != 103516              // 'catch' 'only'\n       && lk != 104028              // 'catch' 'option'\n       && lk != 104540              // 'catch' 'or'\n       && lk != 105052              // 'catch' 'order'\n       && lk != 105564              // 'catch' 'ordered'\n       && lk != 106076              // 'catch' 'ordering'\n       && lk != 107612              // 'catch' 'parent'\n       && lk != 110684              // 'catch' 'preceding'\n       && lk != 111196              // 'catch' 'preceding-sibling'\n       && lk != 112732              // 'catch' 'processing-instruction'\n       && lk != 113756              // 'catch' 'rename'\n       && lk != 114268              // 'catch' 'replace'\n       && lk != 114780              // 'catch' 'return'\n       && lk != 115292              // 'catch' 'returning'\n       && lk != 115804              // 'catch' 'revalidation'\n       && lk != 116828              // 'catch' 'satisfies'\n       && lk != 117340              // 'catch' 'schema'\n       && lk != 117852              // 'catch' 'schema-attribute'\n       && lk != 118364              // 'catch' 'schema-element'\n       && lk != 118876              // 'catch' 'score'\n       && lk != 119388              // 'catch' 'select'\n       && lk != 119900              // 'catch' 'self'\n       && lk != 122460              // 'catch' 'sliding'\n       && lk != 122972              // 'catch' 'some'\n       && lk != 123484              // 'catch' 'stable'\n       && lk != 123996              // 'catch' 'start'\n       && lk != 125532              // 'catch' 'strict'\n       && lk != 126556              // 'catch' 'structured-item'\n       && lk != 127068              // 'catch' 'switch'\n       && lk != 127580              // 'catch' 'text'\n       && lk != 129628              // 'catch' 'to'\n       && lk != 130140              // 'catch' 'treat'\n       && lk != 130652              // 'catch' 'true'\n       && lk != 131164              // 'catch' 'try'\n       && lk != 131676              // 'catch' 'tumbling'\n       && lk != 132188              // 'catch' 'type'\n       && lk != 132700              // 'catch' 'typeswitch'\n       && lk != 133212              // 'catch' 'union'\n       && lk != 134236              // 'catch' 'unordered'\n       && lk != 134748              // 'catch' 'updating'\n       && lk != 136284              // 'catch' 'validate'\n       && lk != 136796              // 'catch' 'value'\n       && lk != 137308              // 'catch' 'variable'\n       && lk != 137820              // 'catch' 'version'\n       && lk != 139356              // 'catch' 'where'\n       && lk != 139868              // 'catch' 'while'\n       && lk != 141404)             // 'catch' 'with'\n      {\n        break;\n      }\n    }\n  }\n\n  function parse_TypeswitchStatement()\n  {\n    eventHandler.startNonterminal(\"TypeswitchStatement\", e0);\n    shift(259);                     // 'typeswitch'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(35);                      // '('\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Expr();\n    shift(38);                      // ')'\n    for (;;)\n    {\n      lookahead1W(38);              // S^WS | '(:' | 'case'\n      whitespace();\n      parse_CaseStatement();\n      lookahead1W(117);             // S^WS | '(:' | 'case' | 'default'\n      if (l1 != 89)                 // 'case'\n      {\n        break;\n      }\n    }\n    shift(110);                     // 'default'\n    lookahead1W(99);                // S^WS | '$' | '(:' | 'return'\n    if (l1 == 31)                   // '$'\n    {\n      shift(31);                    // '$'\n      lookahead1W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_VarName();\n    }\n    lookahead1W(73);                // S^WS | '(:' | 'return'\n    shift(224);                     // 'return'\n    lookahead1W(271);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Statement();\n    eventHandler.endNonterminal(\"TypeswitchStatement\", e0);\n  }\n\n  function try_TypeswitchStatement()\n  {\n    shiftT(259);                    // 'typeswitch'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(35);                     // '('\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Expr();\n    shiftT(38);                     // ')'\n    for (;;)\n    {\n      lookahead1W(38);              // S^WS | '(:' | 'case'\n      try_CaseStatement();\n      lookahead1W(117);             // S^WS | '(:' | 'case' | 'default'\n      if (l1 != 89)                 // 'case'\n      {\n        break;\n      }\n    }\n    shiftT(110);                    // 'default'\n    lookahead1W(99);                // S^WS | '$' | '(:' | 'return'\n    if (l1 == 31)                   // '$'\n    {\n      shiftT(31);                   // '$'\n      lookahead1W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_VarName();\n    }\n    lookahead1W(73);                // S^WS | '(:' | 'return'\n    shiftT(224);                    // 'return'\n    lookahead1W(271);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Statement();\n  }\n\n  function parse_CaseStatement()\n  {\n    eventHandler.startNonterminal(\"CaseStatement\", e0);\n    shift(89);                      // 'case'\n    lookahead1W(258);               // EQName^Token | S^WS | '$' | '%' | '(' | '(:' | 'after' | 'allowing' |\n    if (l1 == 31)                   // '$'\n    {\n      shift(31);                    // '$'\n      lookahead1W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_VarName();\n      lookahead1W(33);              // S^WS | '(:' | 'as'\n      shift(80);                    // 'as'\n    }\n    lookahead1W(254);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_SequenceType();\n    lookahead1W(73);                // S^WS | '(:' | 'return'\n    shift(224);                     // 'return'\n    lookahead1W(271);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Statement();\n    eventHandler.endNonterminal(\"CaseStatement\", e0);\n  }\n\n  function try_CaseStatement()\n  {\n    shiftT(89);                     // 'case'\n    lookahead1W(258);               // EQName^Token | S^WS | '$' | '%' | '(' | '(:' | 'after' | 'allowing' |\n    if (l1 == 31)                   // '$'\n    {\n      shiftT(31);                   // '$'\n      lookahead1W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_VarName();\n      lookahead1W(33);              // S^WS | '(:' | 'as'\n      shiftT(80);                   // 'as'\n    }\n    lookahead1W(254);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_SequenceType();\n    lookahead1W(73);                // S^WS | '(:' | 'return'\n    shiftT(224);                    // 'return'\n    lookahead1W(271);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Statement();\n  }\n\n  function parse_VarDeclStatement()\n  {\n    eventHandler.startNonterminal(\"VarDeclStatement\", e0);\n    for (;;)\n    {\n      lookahead1W(102);             // S^WS | '%' | '(:' | 'variable'\n      if (l1 != 33)                 // '%'\n      {\n        break;\n      }\n      whitespace();\n      parse_Annotation();\n    }\n    shift(268);                     // 'variable'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shift(31);                      // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    lookahead1W(172);               // S^WS | '(:' | ',' | ':=' | ';' | 'as'\n    if (l1 == 80)                   // 'as'\n    {\n      whitespace();\n      parse_TypeDeclaration();\n    }\n    lookahead1W(155);               // S^WS | '(:' | ',' | ':=' | ';'\n    if (l1 == 53)                   // ':='\n    {\n      shift(53);                    // ':='\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_ExprSingle();\n    }\n    for (;;)\n    {\n      if (l1 != 42)                 // ','\n      {\n        break;\n      }\n      shift(42);                    // ','\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      shift(31);                    // '$'\n      lookahead1W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_VarName();\n      lookahead1W(172);             // S^WS | '(:' | ',' | ':=' | ';' | 'as'\n      if (l1 == 80)                 // 'as'\n      {\n        whitespace();\n        parse_TypeDeclaration();\n      }\n      lookahead1W(155);             // S^WS | '(:' | ',' | ':=' | ';'\n      if (l1 == 53)                 // ':='\n      {\n        shift(53);                  // ':='\n        lookahead1W(267);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        whitespace();\n        parse_ExprSingle();\n      }\n    }\n    shift(54);                      // ';'\n    eventHandler.endNonterminal(\"VarDeclStatement\", e0);\n  }\n\n  function try_VarDeclStatement()\n  {\n    for (;;)\n    {\n      lookahead1W(102);             // S^WS | '%' | '(:' | 'variable'\n      if (l1 != 33)                 // '%'\n      {\n        break;\n      }\n      try_Annotation();\n    }\n    shiftT(268);                    // 'variable'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shiftT(31);                     // '$'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_VarName();\n    lookahead1W(172);               // S^WS | '(:' | ',' | ':=' | ';' | 'as'\n    if (l1 == 80)                   // 'as'\n    {\n      try_TypeDeclaration();\n    }\n    lookahead1W(155);               // S^WS | '(:' | ',' | ':=' | ';'\n    if (l1 == 53)                   // ':='\n    {\n      shiftT(53);                   // ':='\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_ExprSingle();\n    }\n    for (;;)\n    {\n      if (l1 != 42)                 // ','\n      {\n        break;\n      }\n      shiftT(42);                   // ','\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      shiftT(31);                   // '$'\n      lookahead1W(246);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_VarName();\n      lookahead1W(172);             // S^WS | '(:' | ',' | ':=' | ';' | 'as'\n      if (l1 == 80)                 // 'as'\n      {\n        try_TypeDeclaration();\n      }\n      lookahead1W(155);             // S^WS | '(:' | ',' | ':=' | ';'\n      if (l1 == 53)                 // ':='\n      {\n        shiftT(53);                 // ':='\n        lookahead1W(267);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        try_ExprSingle();\n      }\n    }\n    shiftT(54);                     // ';'\n  }\n\n  function parse_WhileStatement()\n  {\n    eventHandler.startNonterminal(\"WhileStatement\", e0);\n    shift(273);                     // 'while'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(35);                      // '('\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Expr();\n    shift(38);                      // ')'\n    lookahead1W(271);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_Statement();\n    eventHandler.endNonterminal(\"WhileStatement\", e0);\n  }\n\n  function try_WhileStatement()\n  {\n    shiftT(273);                    // 'while'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(35);                     // '('\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Expr();\n    shiftT(38);                     // ')'\n    lookahead1W(271);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_Statement();\n  }\n\n  function parse_VoidStatement()\n  {\n    eventHandler.startNonterminal(\"VoidStatement\", e0);\n    shift(54);                      // ';'\n    eventHandler.endNonterminal(\"VoidStatement\", e0);\n  }\n\n  function try_VoidStatement()\n  {\n    shiftT(54);                     // ';'\n  }\n\n  function parse_ExprSingle()\n  {\n    eventHandler.startNonterminal(\"ExprSingle\", e0);\n    switch (l1)\n    {\n    case 139:                       // 'for'\n      lookahead2W(179);             // S^WS | '#' | '$' | '(' | '(:' | 'sliding' | 'tumbling'\n      break;\n    case 177:                       // 'let'\n      lookahead2W(166);             // S^WS | '#' | '$' | '(' | '(:' | 'score'\n      break;\n    case 256:                       // 'try'\n      lookahead2W(148);             // S^WS | '#' | '(' | '(:' | '{'\n      break;\n    case 154:                       // 'if'\n    case 248:                       // 'switch'\n    case 259:                       // 'typeswitch'\n      lookahead2W(95);              // S^WS | '#' | '(' | '(:'\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 16011:                     // 'for' '$'\n    case 16049:                     // 'let' '$'\n    case 118961:                    // 'let' 'score'\n    case 122507:                    // 'for' 'sliding'\n    case 131723:                    // 'for' 'tumbling'\n      parse_FLWORExpr();\n      break;\n    case 18074:                     // 'if' '('\n      parse_IfExpr();\n      break;\n    case 18168:                     // 'switch' '('\n      parse_SwitchExpr();\n      break;\n    case 144128:                    // 'try' '{'\n      parse_TryCatchExpr();\n      break;\n    case 18179:                     // 'typeswitch' '('\n      parse_TypeswitchExpr();\n      break;\n    default:\n      parse_ExprSimple();\n    }\n    eventHandler.endNonterminal(\"ExprSingle\", e0);\n  }\n\n  function try_ExprSingle()\n  {\n    switch (l1)\n    {\n    case 139:                       // 'for'\n      lookahead2W(179);             // S^WS | '#' | '$' | '(' | '(:' | 'sliding' | 'tumbling'\n      break;\n    case 177:                       // 'let'\n      lookahead2W(166);             // S^WS | '#' | '$' | '(' | '(:' | 'score'\n      break;\n    case 256:                       // 'try'\n      lookahead2W(148);             // S^WS | '#' | '(' | '(:' | '{'\n      break;\n    case 154:                       // 'if'\n    case 248:                       // 'switch'\n    case 259:                       // 'typeswitch'\n      lookahead2W(95);              // S^WS | '#' | '(' | '(:'\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 16011:                     // 'for' '$'\n    case 16049:                     // 'let' '$'\n    case 118961:                    // 'let' 'score'\n    case 122507:                    // 'for' 'sliding'\n    case 131723:                    // 'for' 'tumbling'\n      try_FLWORExpr();\n      break;\n    case 18074:                     // 'if' '('\n      try_IfExpr();\n      break;\n    case 18168:                     // 'switch' '('\n      try_SwitchExpr();\n      break;\n    case 144128:                    // 'try' '{'\n      try_TryCatchExpr();\n      break;\n    case 18179:                     // 'typeswitch' '('\n      try_TypeswitchExpr();\n      break;\n    default:\n      try_ExprSimple();\n    }\n  }\n\n  function parse_ExprSimple()\n  {\n    eventHandler.startNonterminal(\"ExprSimple\", e0);\n    switch (l1)\n    {\n    case 78:                        // 'append'\n      lookahead2W(269);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    case 161:                       // 'insert'\n      lookahead2W(276);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    case 223:                       // 'replace'\n      lookahead2W(170);             // S^WS | '#' | '(' | '(:' | 'node' | 'value'\n      break;\n    case 111:                       // 'delete'\n    case 222:                       // 'rename'\n      lookahead2W(261);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    case 104:                       // 'copy'\n    case 130:                       // 'every'\n    case 240:                       // 'some'\n      lookahead2W(143);             // S^WS | '#' | '$' | '(' | '(:'\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 17998                 // 'append' '('\n     || lk == 18031                 // 'delete' '('\n     || lk == 18081                 // 'insert' '('\n     || lk == 18142                 // 'rename' '('\n     || lk == 99439                 // 'delete' 'node'\n     || lk == 99489                 // 'insert' 'node'\n     || lk == 99550                 // 'rename' 'node'\n     || lk == 99951                 // 'delete' 'nodes'\n     || lk == 100001                // 'insert' 'nodes'\n     || lk == 136927)               // 'replace' 'value'\n    {\n      lk = memoized(10, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_OrExpr();\n          lk = -2;\n        }\n        catch (p2A)\n        {\n          try\n          {\n            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n            b2 = b2A; e2 = e2A; end = e2A; }}\n            try_InsertExpr();\n            lk = -3;\n          }\n          catch (p3A)\n          {\n            try\n            {\n              b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n              b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n              b2 = b2A; e2 = e2A; end = e2A; }}\n              try_DeleteExpr();\n              lk = -4;\n            }\n            catch (p4A)\n            {\n              try\n              {\n                b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n                b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n                b2 = b2A; e2 = e2A; end = e2A; }}\n                try_RenameExpr();\n                lk = -5;\n              }\n              catch (p5A)\n              {\n                try\n                {\n                  b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n                  b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n                  b2 = b2A; e2 = e2A; end = e2A; }}\n                  try_ReplaceExpr();\n                  lk = -6;\n                }\n                catch (p6A)\n                {\n                  try\n                  {\n                    b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n                    b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n                    b2 = b2A; e2 = e2A; end = e2A; }}\n                    try_JSONDeleteExpr();\n                    lk = -8;\n                  }\n                  catch (p8A)\n                  {\n                    try\n                    {\n                      b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n                      b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n                      b2 = b2A; e2 = e2A; end = e2A; }}\n                      try_JSONInsertExpr();\n                      lk = -9;\n                    }\n                    catch (p9A)\n                    {\n                      try\n                      {\n                        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n                        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n                        b2 = b2A; e2 = e2A; end = e2A; }}\n                        try_JSONRenameExpr();\n                        lk = -10;\n                      }\n                      catch (p10A)\n                      {\n                        try\n                        {\n                          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n                          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n                          b2 = b2A; e2 = e2A; end = e2A; }}\n                          try_JSONReplaceExpr();\n                          lk = -11;\n                        }\n                        catch (p11A)\n                        {\n                          lk = -12;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(10, e0, lk);\n      }\n    }\n    switch (lk)\n    {\n    case 16002:                     // 'every' '$'\n    case 16112:                     // 'some' '$'\n      parse_QuantifiedExpr();\n      break;\n    case -3:\n      parse_InsertExpr();\n      break;\n    case -4:\n      parse_DeleteExpr();\n      break;\n    case -5:\n      parse_RenameExpr();\n      break;\n    case -6:\n    case 99551:                     // 'replace' 'node'\n      parse_ReplaceExpr();\n      break;\n    case 15976:                     // 'copy' '$'\n      parse_TransformExpr();\n      break;\n    case -8:\n    case 3183:                      // 'delete' EQName^Token\n    case 4207:                      // 'delete' IntegerLiteral\n    case 4719:                      // 'delete' DecimalLiteral\n    case 5231:                      // 'delete' DoubleLiteral\n    case 5743:                      // 'delete' StringLiteral\n    case 15983:                     // 'delete' '$'\n    case 16495:                     // 'delete' '$$'\n    case 17007:                     // 'delete' '%'\n    case 28271:                     // 'delete' '<'\n    case 28783:                     // 'delete' '<!--'\n    case 30831:                     // 'delete' '<?'\n    case 35439:                     // 'delete' '['\n    case 36463:                     // 'delete' 'after'\n    case 37487:                     // 'delete' 'allowing'\n    case 37999:                     // 'delete' 'ancestor'\n    case 38511:                     // 'delete' 'ancestor-or-self'\n    case 39023:                     // 'delete' 'and'\n    case 40047:                     // 'delete' 'append'\n    case 40559:                     // 'delete' 'array'\n    case 41071:                     // 'delete' 'as'\n    case 41583:                     // 'delete' 'ascending'\n    case 42095:                     // 'delete' 'at'\n    case 42607:                     // 'delete' 'attribute'\n    case 43119:                     // 'delete' 'base-uri'\n    case 43631:                     // 'delete' 'before'\n    case 44143:                     // 'delete' 'boundary-space'\n    case 44655:                     // 'delete' 'break'\n    case 45679:                     // 'delete' 'case'\n    case 46191:                     // 'delete' 'cast'\n    case 46703:                     // 'delete' 'castable'\n    case 47215:                     // 'delete' 'catch'\n    case 48239:                     // 'delete' 'child'\n    case 48751:                     // 'delete' 'collation'\n    case 49775:                     // 'delete' 'comment'\n    case 50287:                     // 'delete' 'constraint'\n    case 50799:                     // 'delete' 'construction'\n    case 52335:                     // 'delete' 'context'\n    case 52847:                     // 'delete' 'continue'\n    case 53359:                     // 'delete' 'copy'\n    case 53871:                     // 'delete' 'copy-namespaces'\n    case 54383:                     // 'delete' 'count'\n    case 54895:                     // 'delete' 'decimal-format'\n    case 55919:                     // 'delete' 'declare'\n    case 56431:                     // 'delete' 'default'\n    case 56943:                     // 'delete' 'delete'\n    case 57455:                     // 'delete' 'descendant'\n    case 57967:                     // 'delete' 'descendant-or-self'\n    case 58479:                     // 'delete' 'descending'\n    case 61039:                     // 'delete' 'div'\n    case 61551:                     // 'delete' 'document'\n    case 62063:                     // 'delete' 'document-node'\n    case 62575:                     // 'delete' 'element'\n    case 63087:                     // 'delete' 'else'\n    case 63599:                     // 'delete' 'empty'\n    case 64111:                     // 'delete' 'empty-sequence'\n    case 64623:                     // 'delete' 'encoding'\n    case 65135:                     // 'delete' 'end'\n    case 66159:                     // 'delete' 'eq'\n    case 66671:                     // 'delete' 'every'\n    case 67695:                     // 'delete' 'except'\n    case 68207:                     // 'delete' 'exit'\n    case 68719:                     // 'delete' 'external'\n    case 69231:                     // 'delete' 'false'\n    case 69743:                     // 'delete' 'first'\n    case 70255:                     // 'delete' 'following'\n    case 70767:                     // 'delete' 'following-sibling'\n    case 71279:                     // 'delete' 'for'\n    case 72815:                     // 'delete' 'from'\n    case 73327:                     // 'delete' 'ft-option'\n    case 75375:                     // 'delete' 'function'\n    case 75887:                     // 'delete' 'ge'\n    case 76911:                     // 'delete' 'group'\n    case 77935:                     // 'delete' 'gt'\n    case 78447:                     // 'delete' 'idiv'\n    case 78959:                     // 'delete' 'if'\n    case 79471:                     // 'delete' 'import'\n    case 79983:                     // 'delete' 'in'\n    case 80495:                     // 'delete' 'index'\n    case 82543:                     // 'delete' 'insert'\n    case 83055:                     // 'delete' 'instance'\n    case 83567:                     // 'delete' 'integrity'\n    case 84079:                     // 'delete' 'intersect'\n    case 84591:                     // 'delete' 'into'\n    case 85103:                     // 'delete' 'is'\n    case 85615:                     // 'delete' 'item'\n    case 86127:                     // 'delete' 'json'\n    case 86639:                     // 'delete' 'json-item'\n    case 87151:                     // 'delete' 'jsoniq'\n    case 88687:                     // 'delete' 'last'\n    case 89199:                     // 'delete' 'lax'\n    case 89711:                     // 'delete' 'le'\n    case 90735:                     // 'delete' 'let'\n    case 91759:                     // 'delete' 'loop'\n    case 92783:                     // 'delete' 'lt'\n    case 93807:                     // 'delete' 'mod'\n    case 94319:                     // 'delete' 'modify'\n    case 94831:                     // 'delete' 'module'\n    case 95855:                     // 'delete' 'namespace'\n    case 96367:                     // 'delete' 'namespace-node'\n    case 96879:                     // 'delete' 'ne'\n    case 100975:                    // 'delete' 'null'\n    case 101487:                    // 'delete' 'object'\n    case 103535:                    // 'delete' 'only'\n    case 104047:                    // 'delete' 'option'\n    case 104559:                    // 'delete' 'or'\n    case 105071:                    // 'delete' 'order'\n    case 105583:                    // 'delete' 'ordered'\n    case 106095:                    // 'delete' 'ordering'\n    case 107631:                    // 'delete' 'parent'\n    case 110703:                    // 'delete' 'preceding'\n    case 111215:                    // 'delete' 'preceding-sibling'\n    case 112751:                    // 'delete' 'processing-instruction'\n    case 113775:                    // 'delete' 'rename'\n    case 114287:                    // 'delete' 'replace'\n    case 114799:                    // 'delete' 'return'\n    case 115311:                    // 'delete' 'returning'\n    case 115823:                    // 'delete' 'revalidation'\n    case 116847:                    // 'delete' 'satisfies'\n    case 117359:                    // 'delete' 'schema'\n    case 117871:                    // 'delete' 'schema-attribute'\n    case 118383:                    // 'delete' 'schema-element'\n    case 118895:                    // 'delete' 'score'\n    case 119407:                    // 'delete' 'select'\n    case 119919:                    // 'delete' 'self'\n    case 122479:                    // 'delete' 'sliding'\n    case 122991:                    // 'delete' 'some'\n    case 123503:                    // 'delete' 'stable'\n    case 124015:                    // 'delete' 'start'\n    case 125551:                    // 'delete' 'strict'\n    case 126575:                    // 'delete' 'structured-item'\n    case 127087:                    // 'delete' 'switch'\n    case 127599:                    // 'delete' 'text'\n    case 129647:                    // 'delete' 'to'\n    case 130159:                    // 'delete' 'treat'\n    case 130671:                    // 'delete' 'true'\n    case 131183:                    // 'delete' 'try'\n    case 131695:                    // 'delete' 'tumbling'\n    case 132207:                    // 'delete' 'type'\n    case 132719:                    // 'delete' 'typeswitch'\n    case 133231:                    // 'delete' 'union'\n    case 134255:                    // 'delete' 'unordered'\n    case 134767:                    // 'delete' 'updating'\n    case 136303:                    // 'delete' 'validate'\n    case 136815:                    // 'delete' 'value'\n    case 137327:                    // 'delete' 'variable'\n    case 137839:                    // 'delete' 'version'\n    case 139375:                    // 'delete' 'where'\n    case 139887:                    // 'delete' 'while'\n    case 141423:                    // 'delete' 'with'\n    case 143983:                    // 'delete' '{'\n    case 145007:                    // 'delete' '{|'\n      parse_JSONDeleteExpr();\n      break;\n    case -9:\n    case 3233:                      // 'insert' EQName^Token\n    case 4257:                      // 'insert' IntegerLiteral\n    case 4769:                      // 'insert' DecimalLiteral\n    case 5281:                      // 'insert' DoubleLiteral\n    case 5793:                      // 'insert' StringLiteral\n    case 9889:                      // 'insert' NCName^Token\n    case 16033:                     // 'insert' '$'\n    case 16545:                     // 'insert' '$$'\n    case 17057:                     // 'insert' '%'\n    case 18593:                     // 'insert' '(#'\n    case 21153:                     // 'insert' '+'\n    case 22177:                     // 'insert' '-'\n    case 24225:                     // 'insert' '/'\n    case 24737:                     // 'insert' '//'\n    case 28321:                     // 'insert' '<'\n    case 28833:                     // 'insert' '<!--'\n    case 30881:                     // 'insert' '<?'\n    case 35489:                     // 'insert' '['\n    case 36513:                     // 'insert' 'after'\n    case 37537:                     // 'insert' 'allowing'\n    case 38049:                     // 'insert' 'ancestor'\n    case 38561:                     // 'insert' 'ancestor-or-self'\n    case 39073:                     // 'insert' 'and'\n    case 40097:                     // 'insert' 'append'\n    case 40609:                     // 'insert' 'array'\n    case 41121:                     // 'insert' 'as'\n    case 41633:                     // 'insert' 'ascending'\n    case 42145:                     // 'insert' 'at'\n    case 42657:                     // 'insert' 'attribute'\n    case 43169:                     // 'insert' 'base-uri'\n    case 43681:                     // 'insert' 'before'\n    case 44193:                     // 'insert' 'boundary-space'\n    case 44705:                     // 'insert' 'break'\n    case 45729:                     // 'insert' 'case'\n    case 46241:                     // 'insert' 'cast'\n    case 46753:                     // 'insert' 'castable'\n    case 47265:                     // 'insert' 'catch'\n    case 48289:                     // 'insert' 'child'\n    case 48801:                     // 'insert' 'collation'\n    case 49825:                     // 'insert' 'comment'\n    case 50337:                     // 'insert' 'constraint'\n    case 50849:                     // 'insert' 'construction'\n    case 52385:                     // 'insert' 'context'\n    case 52897:                     // 'insert' 'continue'\n    case 53409:                     // 'insert' 'copy'\n    case 53921:                     // 'insert' 'copy-namespaces'\n    case 54433:                     // 'insert' 'count'\n    case 54945:                     // 'insert' 'decimal-format'\n    case 55969:                     // 'insert' 'declare'\n    case 56481:                     // 'insert' 'default'\n    case 56993:                     // 'insert' 'delete'\n    case 57505:                     // 'insert' 'descendant'\n    case 58017:                     // 'insert' 'descendant-or-self'\n    case 58529:                     // 'insert' 'descending'\n    case 61089:                     // 'insert' 'div'\n    case 61601:                     // 'insert' 'document'\n    case 62113:                     // 'insert' 'document-node'\n    case 62625:                     // 'insert' 'element'\n    case 63137:                     // 'insert' 'else'\n    case 63649:                     // 'insert' 'empty'\n    case 64161:                     // 'insert' 'empty-sequence'\n    case 64673:                     // 'insert' 'encoding'\n    case 65185:                     // 'insert' 'end'\n    case 66209:                     // 'insert' 'eq'\n    case 66721:                     // 'insert' 'every'\n    case 67745:                     // 'insert' 'except'\n    case 68257:                     // 'insert' 'exit'\n    case 68769:                     // 'insert' 'external'\n    case 69281:                     // 'insert' 'false'\n    case 69793:                     // 'insert' 'first'\n    case 70305:                     // 'insert' 'following'\n    case 70817:                     // 'insert' 'following-sibling'\n    case 71329:                     // 'insert' 'for'\n    case 72865:                     // 'insert' 'from'\n    case 73377:                     // 'insert' 'ft-option'\n    case 75425:                     // 'insert' 'function'\n    case 75937:                     // 'insert' 'ge'\n    case 76961:                     // 'insert' 'group'\n    case 77985:                     // 'insert' 'gt'\n    case 78497:                     // 'insert' 'idiv'\n    case 79009:                     // 'insert' 'if'\n    case 79521:                     // 'insert' 'import'\n    case 80033:                     // 'insert' 'in'\n    case 80545:                     // 'insert' 'index'\n    case 82593:                     // 'insert' 'insert'\n    case 83105:                     // 'insert' 'instance'\n    case 83617:                     // 'insert' 'integrity'\n    case 84129:                     // 'insert' 'intersect'\n    case 84641:                     // 'insert' 'into'\n    case 85153:                     // 'insert' 'is'\n    case 85665:                     // 'insert' 'item'\n    case 86177:                     // 'insert' 'json'\n    case 86689:                     // 'insert' 'json-item'\n    case 87201:                     // 'insert' 'jsoniq'\n    case 88737:                     // 'insert' 'last'\n    case 89249:                     // 'insert' 'lax'\n    case 89761:                     // 'insert' 'le'\n    case 90785:                     // 'insert' 'let'\n    case 91809:                     // 'insert' 'loop'\n    case 92833:                     // 'insert' 'lt'\n    case 93857:                     // 'insert' 'mod'\n    case 94369:                     // 'insert' 'modify'\n    case 94881:                     // 'insert' 'module'\n    case 95905:                     // 'insert' 'namespace'\n    case 96417:                     // 'insert' 'namespace-node'\n    case 96929:                     // 'insert' 'ne'\n    case 100513:                    // 'insert' 'not'\n    case 101025:                    // 'insert' 'null'\n    case 101537:                    // 'insert' 'object'\n    case 103585:                    // 'insert' 'only'\n    case 104097:                    // 'insert' 'option'\n    case 104609:                    // 'insert' 'or'\n    case 105121:                    // 'insert' 'order'\n    case 105633:                    // 'insert' 'ordered'\n    case 106145:                    // 'insert' 'ordering'\n    case 107681:                    // 'insert' 'parent'\n    case 110753:                    // 'insert' 'preceding'\n    case 111265:                    // 'insert' 'preceding-sibling'\n    case 112801:                    // 'insert' 'processing-instruction'\n    case 113825:                    // 'insert' 'rename'\n    case 114337:                    // 'insert' 'replace'\n    case 114849:                    // 'insert' 'return'\n    case 115361:                    // 'insert' 'returning'\n    case 115873:                    // 'insert' 'revalidation'\n    case 116897:                    // 'insert' 'satisfies'\n    case 117409:                    // 'insert' 'schema'\n    case 117921:                    // 'insert' 'schema-attribute'\n    case 118433:                    // 'insert' 'schema-element'\n    case 118945:                    // 'insert' 'score'\n    case 119457:                    // 'insert' 'select'\n    case 119969:                    // 'insert' 'self'\n    case 122529:                    // 'insert' 'sliding'\n    case 123041:                    // 'insert' 'some'\n    case 123553:                    // 'insert' 'stable'\n    case 124065:                    // 'insert' 'start'\n    case 125601:                    // 'insert' 'strict'\n    case 126625:                    // 'insert' 'structured-item'\n    case 127137:                    // 'insert' 'switch'\n    case 127649:                    // 'insert' 'text'\n    case 129697:                    // 'insert' 'to'\n    case 130209:                    // 'insert' 'treat'\n    case 130721:                    // 'insert' 'true'\n    case 131233:                    // 'insert' 'try'\n    case 131745:                    // 'insert' 'tumbling'\n    case 132257:                    // 'insert' 'type'\n    case 132769:                    // 'insert' 'typeswitch'\n    case 133281:                    // 'insert' 'union'\n    case 134305:                    // 'insert' 'unordered'\n    case 134817:                    // 'insert' 'updating'\n    case 136353:                    // 'insert' 'validate'\n    case 136865:                    // 'insert' 'value'\n    case 137377:                    // 'insert' 'variable'\n    case 137889:                    // 'insert' 'version'\n    case 139425:                    // 'insert' 'where'\n    case 139937:                    // 'insert' 'while'\n    case 141473:                    // 'insert' 'with'\n    case 144033:                    // 'insert' '{'\n    case 145057:                    // 'insert' '{|'\n      parse_JSONInsertExpr();\n      break;\n    case -10:\n    case 3294:                      // 'rename' EQName^Token\n    case 4318:                      // 'rename' IntegerLiteral\n    case 4830:                      // 'rename' DecimalLiteral\n    case 5342:                      // 'rename' DoubleLiteral\n    case 5854:                      // 'rename' StringLiteral\n    case 16094:                     // 'rename' '$'\n    case 16606:                     // 'rename' '$$'\n    case 17118:                     // 'rename' '%'\n    case 28382:                     // 'rename' '<'\n    case 28894:                     // 'rename' '<!--'\n    case 30942:                     // 'rename' '<?'\n    case 35550:                     // 'rename' '['\n    case 36574:                     // 'rename' 'after'\n    case 37598:                     // 'rename' 'allowing'\n    case 38110:                     // 'rename' 'ancestor'\n    case 38622:                     // 'rename' 'ancestor-or-self'\n    case 39134:                     // 'rename' 'and'\n    case 40158:                     // 'rename' 'append'\n    case 40670:                     // 'rename' 'array'\n    case 41182:                     // 'rename' 'as'\n    case 41694:                     // 'rename' 'ascending'\n    case 42206:                     // 'rename' 'at'\n    case 42718:                     // 'rename' 'attribute'\n    case 43230:                     // 'rename' 'base-uri'\n    case 43742:                     // 'rename' 'before'\n    case 44254:                     // 'rename' 'boundary-space'\n    case 44766:                     // 'rename' 'break'\n    case 45790:                     // 'rename' 'case'\n    case 46302:                     // 'rename' 'cast'\n    case 46814:                     // 'rename' 'castable'\n    case 47326:                     // 'rename' 'catch'\n    case 48350:                     // 'rename' 'child'\n    case 48862:                     // 'rename' 'collation'\n    case 49886:                     // 'rename' 'comment'\n    case 50398:                     // 'rename' 'constraint'\n    case 50910:                     // 'rename' 'construction'\n    case 52446:                     // 'rename' 'context'\n    case 52958:                     // 'rename' 'continue'\n    case 53470:                     // 'rename' 'copy'\n    case 53982:                     // 'rename' 'copy-namespaces'\n    case 54494:                     // 'rename' 'count'\n    case 55006:                     // 'rename' 'decimal-format'\n    case 56030:                     // 'rename' 'declare'\n    case 56542:                     // 'rename' 'default'\n    case 57054:                     // 'rename' 'delete'\n    case 57566:                     // 'rename' 'descendant'\n    case 58078:                     // 'rename' 'descendant-or-self'\n    case 58590:                     // 'rename' 'descending'\n    case 61150:                     // 'rename' 'div'\n    case 61662:                     // 'rename' 'document'\n    case 62174:                     // 'rename' 'document-node'\n    case 62686:                     // 'rename' 'element'\n    case 63198:                     // 'rename' 'else'\n    case 63710:                     // 'rename' 'empty'\n    case 64222:                     // 'rename' 'empty-sequence'\n    case 64734:                     // 'rename' 'encoding'\n    case 65246:                     // 'rename' 'end'\n    case 66270:                     // 'rename' 'eq'\n    case 66782:                     // 'rename' 'every'\n    case 67806:                     // 'rename' 'except'\n    case 68318:                     // 'rename' 'exit'\n    case 68830:                     // 'rename' 'external'\n    case 69342:                     // 'rename' 'false'\n    case 69854:                     // 'rename' 'first'\n    case 70366:                     // 'rename' 'following'\n    case 70878:                     // 'rename' 'following-sibling'\n    case 71390:                     // 'rename' 'for'\n    case 72926:                     // 'rename' 'from'\n    case 73438:                     // 'rename' 'ft-option'\n    case 75486:                     // 'rename' 'function'\n    case 75998:                     // 'rename' 'ge'\n    case 77022:                     // 'rename' 'group'\n    case 78046:                     // 'rename' 'gt'\n    case 78558:                     // 'rename' 'idiv'\n    case 79070:                     // 'rename' 'if'\n    case 79582:                     // 'rename' 'import'\n    case 80094:                     // 'rename' 'in'\n    case 80606:                     // 'rename' 'index'\n    case 82654:                     // 'rename' 'insert'\n    case 83166:                     // 'rename' 'instance'\n    case 83678:                     // 'rename' 'integrity'\n    case 84190:                     // 'rename' 'intersect'\n    case 84702:                     // 'rename' 'into'\n    case 85214:                     // 'rename' 'is'\n    case 85726:                     // 'rename' 'item'\n    case 86238:                     // 'rename' 'json'\n    case 86750:                     // 'rename' 'json-item'\n    case 87262:                     // 'rename' 'jsoniq'\n    case 88798:                     // 'rename' 'last'\n    case 89310:                     // 'rename' 'lax'\n    case 89822:                     // 'rename' 'le'\n    case 90846:                     // 'rename' 'let'\n    case 91870:                     // 'rename' 'loop'\n    case 92894:                     // 'rename' 'lt'\n    case 93918:                     // 'rename' 'mod'\n    case 94430:                     // 'rename' 'modify'\n    case 94942:                     // 'rename' 'module'\n    case 95966:                     // 'rename' 'namespace'\n    case 96478:                     // 'rename' 'namespace-node'\n    case 96990:                     // 'rename' 'ne'\n    case 100062:                    // 'rename' 'nodes'\n    case 101086:                    // 'rename' 'null'\n    case 101598:                    // 'rename' 'object'\n    case 103646:                    // 'rename' 'only'\n    case 104158:                    // 'rename' 'option'\n    case 104670:                    // 'rename' 'or'\n    case 105182:                    // 'rename' 'order'\n    case 105694:                    // 'rename' 'ordered'\n    case 106206:                    // 'rename' 'ordering'\n    case 107742:                    // 'rename' 'parent'\n    case 110814:                    // 'rename' 'preceding'\n    case 111326:                    // 'rename' 'preceding-sibling'\n    case 112862:                    // 'rename' 'processing-instruction'\n    case 113886:                    // 'rename' 'rename'\n    case 114398:                    // 'rename' 'replace'\n    case 114910:                    // 'rename' 'return'\n    case 115422:                    // 'rename' 'returning'\n    case 115934:                    // 'rename' 'revalidation'\n    case 116958:                    // 'rename' 'satisfies'\n    case 117470:                    // 'rename' 'schema'\n    case 117982:                    // 'rename' 'schema-attribute'\n    case 118494:                    // 'rename' 'schema-element'\n    case 119006:                    // 'rename' 'score'\n    case 119518:                    // 'rename' 'select'\n    case 120030:                    // 'rename' 'self'\n    case 122590:                    // 'rename' 'sliding'\n    case 123102:                    // 'rename' 'some'\n    case 123614:                    // 'rename' 'stable'\n    case 124126:                    // 'rename' 'start'\n    case 125662:                    // 'rename' 'strict'\n    case 126686:                    // 'rename' 'structured-item'\n    case 127198:                    // 'rename' 'switch'\n    case 127710:                    // 'rename' 'text'\n    case 129758:                    // 'rename' 'to'\n    case 130270:                    // 'rename' 'treat'\n    case 130782:                    // 'rename' 'true'\n    case 131294:                    // 'rename' 'try'\n    case 131806:                    // 'rename' 'tumbling'\n    case 132318:                    // 'rename' 'type'\n    case 132830:                    // 'rename' 'typeswitch'\n    case 133342:                    // 'rename' 'union'\n    case 134366:                    // 'rename' 'unordered'\n    case 134878:                    // 'rename' 'updating'\n    case 136414:                    // 'rename' 'validate'\n    case 136926:                    // 'rename' 'value'\n    case 137438:                    // 'rename' 'variable'\n    case 137950:                    // 'rename' 'version'\n    case 139486:                    // 'rename' 'where'\n    case 139998:                    // 'rename' 'while'\n    case 141534:                    // 'rename' 'with'\n    case 144094:                    // 'rename' '{'\n    case 145118:                    // 'rename' '{|'\n      parse_JSONRenameExpr();\n      break;\n    case -11:\n      parse_JSONReplaceExpr();\n      break;\n    case -12:\n    case 3150:                      // 'append' EQName^Token\n    case 4174:                      // 'append' IntegerLiteral\n    case 4686:                      // 'append' DecimalLiteral\n    case 5198:                      // 'append' DoubleLiteral\n    case 5710:                      // 'append' StringLiteral\n    case 15950:                     // 'append' '$'\n    case 16462:                     // 'append' '$$'\n    case 16974:                     // 'append' '%'\n    case 18510:                     // 'append' '(#'\n    case 21070:                     // 'append' '+'\n    case 22094:                     // 'append' '-'\n    case 24142:                     // 'append' '/'\n    case 24654:                     // 'append' '//'\n    case 28238:                     // 'append' '<'\n    case 28750:                     // 'append' '<!--'\n    case 30798:                     // 'append' '<?'\n    case 35406:                     // 'append' '['\n    case 36430:                     // 'append' 'after'\n    case 37454:                     // 'append' 'allowing'\n    case 37966:                     // 'append' 'ancestor'\n    case 38478:                     // 'append' 'ancestor-or-self'\n    case 38990:                     // 'append' 'and'\n    case 40014:                     // 'append' 'append'\n    case 40526:                     // 'append' 'array'\n    case 41038:                     // 'append' 'as'\n    case 41550:                     // 'append' 'ascending'\n    case 42062:                     // 'append' 'at'\n    case 42574:                     // 'append' 'attribute'\n    case 43086:                     // 'append' 'base-uri'\n    case 43598:                     // 'append' 'before'\n    case 44110:                     // 'append' 'boundary-space'\n    case 44622:                     // 'append' 'break'\n    case 45646:                     // 'append' 'case'\n    case 46158:                     // 'append' 'cast'\n    case 46670:                     // 'append' 'castable'\n    case 47182:                     // 'append' 'catch'\n    case 48206:                     // 'append' 'child'\n    case 48718:                     // 'append' 'collation'\n    case 49742:                     // 'append' 'comment'\n    case 50254:                     // 'append' 'constraint'\n    case 50766:                     // 'append' 'construction'\n    case 52302:                     // 'append' 'context'\n    case 52814:                     // 'append' 'continue'\n    case 53326:                     // 'append' 'copy'\n    case 53838:                     // 'append' 'copy-namespaces'\n    case 54350:                     // 'append' 'count'\n    case 54862:                     // 'append' 'decimal-format'\n    case 55886:                     // 'append' 'declare'\n    case 56398:                     // 'append' 'default'\n    case 56910:                     // 'append' 'delete'\n    case 57422:                     // 'append' 'descendant'\n    case 57934:                     // 'append' 'descendant-or-self'\n    case 58446:                     // 'append' 'descending'\n    case 61006:                     // 'append' 'div'\n    case 61518:                     // 'append' 'document'\n    case 62030:                     // 'append' 'document-node'\n    case 62542:                     // 'append' 'element'\n    case 63054:                     // 'append' 'else'\n    case 63566:                     // 'append' 'empty'\n    case 64078:                     // 'append' 'empty-sequence'\n    case 64590:                     // 'append' 'encoding'\n    case 65102:                     // 'append' 'end'\n    case 66126:                     // 'append' 'eq'\n    case 66638:                     // 'append' 'every'\n    case 67662:                     // 'append' 'except'\n    case 68174:                     // 'append' 'exit'\n    case 68686:                     // 'append' 'external'\n    case 69198:                     // 'append' 'false'\n    case 69710:                     // 'append' 'first'\n    case 70222:                     // 'append' 'following'\n    case 70734:                     // 'append' 'following-sibling'\n    case 71246:                     // 'append' 'for'\n    case 72782:                     // 'append' 'from'\n    case 73294:                     // 'append' 'ft-option'\n    case 75342:                     // 'append' 'function'\n    case 75854:                     // 'append' 'ge'\n    case 76878:                     // 'append' 'group'\n    case 77902:                     // 'append' 'gt'\n    case 78414:                     // 'append' 'idiv'\n    case 78926:                     // 'append' 'if'\n    case 79438:                     // 'append' 'import'\n    case 79950:                     // 'append' 'in'\n    case 80462:                     // 'append' 'index'\n    case 82510:                     // 'append' 'insert'\n    case 83022:                     // 'append' 'instance'\n    case 83534:                     // 'append' 'integrity'\n    case 84046:                     // 'append' 'intersect'\n    case 84558:                     // 'append' 'into'\n    case 85070:                     // 'append' 'is'\n    case 85582:                     // 'append' 'item'\n    case 86094:                     // 'append' 'json'\n    case 86606:                     // 'append' 'json-item'\n    case 87118:                     // 'append' 'jsoniq'\n    case 88654:                     // 'append' 'last'\n    case 89166:                     // 'append' 'lax'\n    case 89678:                     // 'append' 'le'\n    case 90702:                     // 'append' 'let'\n    case 91726:                     // 'append' 'loop'\n    case 92750:                     // 'append' 'lt'\n    case 93774:                     // 'append' 'mod'\n    case 94286:                     // 'append' 'modify'\n    case 94798:                     // 'append' 'module'\n    case 95822:                     // 'append' 'namespace'\n    case 96334:                     // 'append' 'namespace-node'\n    case 96846:                     // 'append' 'ne'\n    case 99406:                     // 'append' 'node'\n    case 99918:                     // 'append' 'nodes'\n    case 100430:                    // 'append' 'not'\n    case 100942:                    // 'append' 'null'\n    case 101454:                    // 'append' 'object'\n    case 103502:                    // 'append' 'only'\n    case 104014:                    // 'append' 'option'\n    case 104526:                    // 'append' 'or'\n    case 105038:                    // 'append' 'order'\n    case 105550:                    // 'append' 'ordered'\n    case 106062:                    // 'append' 'ordering'\n    case 107598:                    // 'append' 'parent'\n    case 110670:                    // 'append' 'preceding'\n    case 111182:                    // 'append' 'preceding-sibling'\n    case 112718:                    // 'append' 'processing-instruction'\n    case 113742:                    // 'append' 'rename'\n    case 114254:                    // 'append' 'replace'\n    case 114766:                    // 'append' 'return'\n    case 115278:                    // 'append' 'returning'\n    case 115790:                    // 'append' 'revalidation'\n    case 116814:                    // 'append' 'satisfies'\n    case 117326:                    // 'append' 'schema'\n    case 117838:                    // 'append' 'schema-attribute'\n    case 118350:                    // 'append' 'schema-element'\n    case 118862:                    // 'append' 'score'\n    case 119374:                    // 'append' 'select'\n    case 119886:                    // 'append' 'self'\n    case 122446:                    // 'append' 'sliding'\n    case 122958:                    // 'append' 'some'\n    case 123470:                    // 'append' 'stable'\n    case 123982:                    // 'append' 'start'\n    case 125518:                    // 'append' 'strict'\n    case 126542:                    // 'append' 'structured-item'\n    case 127054:                    // 'append' 'switch'\n    case 127566:                    // 'append' 'text'\n    case 129614:                    // 'append' 'to'\n    case 130126:                    // 'append' 'treat'\n    case 130638:                    // 'append' 'true'\n    case 131150:                    // 'append' 'try'\n    case 131662:                    // 'append' 'tumbling'\n    case 132174:                    // 'append' 'type'\n    case 132686:                    // 'append' 'typeswitch'\n    case 133198:                    // 'append' 'union'\n    case 134222:                    // 'append' 'unordered'\n    case 134734:                    // 'append' 'updating'\n    case 136270:                    // 'append' 'validate'\n    case 136782:                    // 'append' 'value'\n    case 137294:                    // 'append' 'variable'\n    case 137806:                    // 'append' 'version'\n    case 139342:                    // 'append' 'where'\n    case 139854:                    // 'append' 'while'\n    case 141390:                    // 'append' 'with'\n    case 143950:                    // 'append' '{'\n    case 144974:                    // 'append' '{|'\n      parse_JSONAppendExpr();\n      break;\n    default:\n      parse_OrExpr();\n    }\n    eventHandler.endNonterminal(\"ExprSimple\", e0);\n  }\n\n  function try_ExprSimple()\n  {\n    switch (l1)\n    {\n    case 78:                        // 'append'\n      lookahead2W(269);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    case 161:                       // 'insert'\n      lookahead2W(276);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    case 223:                       // 'replace'\n      lookahead2W(170);             // S^WS | '#' | '(' | '(:' | 'node' | 'value'\n      break;\n    case 111:                       // 'delete'\n    case 222:                       // 'rename'\n      lookahead2W(261);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    case 104:                       // 'copy'\n    case 130:                       // 'every'\n    case 240:                       // 'some'\n      lookahead2W(143);             // S^WS | '#' | '$' | '(' | '(:'\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 17998                 // 'append' '('\n     || lk == 18031                 // 'delete' '('\n     || lk == 18081                 // 'insert' '('\n     || lk == 18142                 // 'rename' '('\n     || lk == 99439                 // 'delete' 'node'\n     || lk == 99489                 // 'insert' 'node'\n     || lk == 99550                 // 'rename' 'node'\n     || lk == 99951                 // 'delete' 'nodes'\n     || lk == 100001                // 'insert' 'nodes'\n     || lk == 136927)               // 'replace' 'value'\n    {\n      lk = memoized(10, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_OrExpr();\n          memoize(10, e0A, -2);\n          lk = -13;\n        }\n        catch (p2A)\n        {\n          try\n          {\n            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n            b2 = b2A; e2 = e2A; end = e2A; }}\n            try_InsertExpr();\n            memoize(10, e0A, -3);\n            lk = -13;\n          }\n          catch (p3A)\n          {\n            try\n            {\n              b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n              b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n              b2 = b2A; e2 = e2A; end = e2A; }}\n              try_DeleteExpr();\n              memoize(10, e0A, -4);\n              lk = -13;\n            }\n            catch (p4A)\n            {\n              try\n              {\n                b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n                b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n                b2 = b2A; e2 = e2A; end = e2A; }}\n                try_RenameExpr();\n                memoize(10, e0A, -5);\n                lk = -13;\n              }\n              catch (p5A)\n              {\n                try\n                {\n                  b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n                  b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n                  b2 = b2A; e2 = e2A; end = e2A; }}\n                  try_ReplaceExpr();\n                  memoize(10, e0A, -6);\n                  lk = -13;\n                }\n                catch (p6A)\n                {\n                  try\n                  {\n                    b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n                    b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n                    b2 = b2A; e2 = e2A; end = e2A; }}\n                    try_JSONDeleteExpr();\n                    memoize(10, e0A, -8);\n                    lk = -13;\n                  }\n                  catch (p8A)\n                  {\n                    try\n                    {\n                      b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n                      b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n                      b2 = b2A; e2 = e2A; end = e2A; }}\n                      try_JSONInsertExpr();\n                      memoize(10, e0A, -9);\n                      lk = -13;\n                    }\n                    catch (p9A)\n                    {\n                      try\n                      {\n                        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n                        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n                        b2 = b2A; e2 = e2A; end = e2A; }}\n                        try_JSONRenameExpr();\n                        memoize(10, e0A, -10);\n                        lk = -13;\n                      }\n                      catch (p10A)\n                      {\n                        try\n                        {\n                          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n                          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n                          b2 = b2A; e2 = e2A; end = e2A; }}\n                          try_JSONReplaceExpr();\n                          memoize(10, e0A, -11);\n                          lk = -13;\n                        }\n                        catch (p11A)\n                        {\n                          lk = -12;\n                          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n                          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n                          b2 = b2A; e2 = e2A; end = e2A; }}\n                          memoize(10, e0A, -12);\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    switch (lk)\n    {\n    case 16002:                     // 'every' '$'\n    case 16112:                     // 'some' '$'\n      try_QuantifiedExpr();\n      break;\n    case -3:\n      try_InsertExpr();\n      break;\n    case -4:\n      try_DeleteExpr();\n      break;\n    case -5:\n      try_RenameExpr();\n      break;\n    case -6:\n    case 99551:                     // 'replace' 'node'\n      try_ReplaceExpr();\n      break;\n    case 15976:                     // 'copy' '$'\n      try_TransformExpr();\n      break;\n    case -8:\n    case 3183:                      // 'delete' EQName^Token\n    case 4207:                      // 'delete' IntegerLiteral\n    case 4719:                      // 'delete' DecimalLiteral\n    case 5231:                      // 'delete' DoubleLiteral\n    case 5743:                      // 'delete' StringLiteral\n    case 15983:                     // 'delete' '$'\n    case 16495:                     // 'delete' '$$'\n    case 17007:                     // 'delete' '%'\n    case 28271:                     // 'delete' '<'\n    case 28783:                     // 'delete' '<!--'\n    case 30831:                     // 'delete' '<?'\n    case 35439:                     // 'delete' '['\n    case 36463:                     // 'delete' 'after'\n    case 37487:                     // 'delete' 'allowing'\n    case 37999:                     // 'delete' 'ancestor'\n    case 38511:                     // 'delete' 'ancestor-or-self'\n    case 39023:                     // 'delete' 'and'\n    case 40047:                     // 'delete' 'append'\n    case 40559:                     // 'delete' 'array'\n    case 41071:                     // 'delete' 'as'\n    case 41583:                     // 'delete' 'ascending'\n    case 42095:                     // 'delete' 'at'\n    case 42607:                     // 'delete' 'attribute'\n    case 43119:                     // 'delete' 'base-uri'\n    case 43631:                     // 'delete' 'before'\n    case 44143:                     // 'delete' 'boundary-space'\n    case 44655:                     // 'delete' 'break'\n    case 45679:                     // 'delete' 'case'\n    case 46191:                     // 'delete' 'cast'\n    case 46703:                     // 'delete' 'castable'\n    case 47215:                     // 'delete' 'catch'\n    case 48239:                     // 'delete' 'child'\n    case 48751:                     // 'delete' 'collation'\n    case 49775:                     // 'delete' 'comment'\n    case 50287:                     // 'delete' 'constraint'\n    case 50799:                     // 'delete' 'construction'\n    case 52335:                     // 'delete' 'context'\n    case 52847:                     // 'delete' 'continue'\n    case 53359:                     // 'delete' 'copy'\n    case 53871:                     // 'delete' 'copy-namespaces'\n    case 54383:                     // 'delete' 'count'\n    case 54895:                     // 'delete' 'decimal-format'\n    case 55919:                     // 'delete' 'declare'\n    case 56431:                     // 'delete' 'default'\n    case 56943:                     // 'delete' 'delete'\n    case 57455:                     // 'delete' 'descendant'\n    case 57967:                     // 'delete' 'descendant-or-self'\n    case 58479:                     // 'delete' 'descending'\n    case 61039:                     // 'delete' 'div'\n    case 61551:                     // 'delete' 'document'\n    case 62063:                     // 'delete' 'document-node'\n    case 62575:                     // 'delete' 'element'\n    case 63087:                     // 'delete' 'else'\n    case 63599:                     // 'delete' 'empty'\n    case 64111:                     // 'delete' 'empty-sequence'\n    case 64623:                     // 'delete' 'encoding'\n    case 65135:                     // 'delete' 'end'\n    case 66159:                     // 'delete' 'eq'\n    case 66671:                     // 'delete' 'every'\n    case 67695:                     // 'delete' 'except'\n    case 68207:                     // 'delete' 'exit'\n    case 68719:                     // 'delete' 'external'\n    case 69231:                     // 'delete' 'false'\n    case 69743:                     // 'delete' 'first'\n    case 70255:                     // 'delete' 'following'\n    case 70767:                     // 'delete' 'following-sibling'\n    case 71279:                     // 'delete' 'for'\n    case 72815:                     // 'delete' 'from'\n    case 73327:                     // 'delete' 'ft-option'\n    case 75375:                     // 'delete' 'function'\n    case 75887:                     // 'delete' 'ge'\n    case 76911:                     // 'delete' 'group'\n    case 77935:                     // 'delete' 'gt'\n    case 78447:                     // 'delete' 'idiv'\n    case 78959:                     // 'delete' 'if'\n    case 79471:                     // 'delete' 'import'\n    case 79983:                     // 'delete' 'in'\n    case 80495:                     // 'delete' 'index'\n    case 82543:                     // 'delete' 'insert'\n    case 83055:                     // 'delete' 'instance'\n    case 83567:                     // 'delete' 'integrity'\n    case 84079:                     // 'delete' 'intersect'\n    case 84591:                     // 'delete' 'into'\n    case 85103:                     // 'delete' 'is'\n    case 85615:                     // 'delete' 'item'\n    case 86127:                     // 'delete' 'json'\n    case 86639:                     // 'delete' 'json-item'\n    case 87151:                     // 'delete' 'jsoniq'\n    case 88687:                     // 'delete' 'last'\n    case 89199:                     // 'delete' 'lax'\n    case 89711:                     // 'delete' 'le'\n    case 90735:                     // 'delete' 'let'\n    case 91759:                     // 'delete' 'loop'\n    case 92783:                     // 'delete' 'lt'\n    case 93807:                     // 'delete' 'mod'\n    case 94319:                     // 'delete' 'modify'\n    case 94831:                     // 'delete' 'module'\n    case 95855:                     // 'delete' 'namespace'\n    case 96367:                     // 'delete' 'namespace-node'\n    case 96879:                     // 'delete' 'ne'\n    case 100975:                    // 'delete' 'null'\n    case 101487:                    // 'delete' 'object'\n    case 103535:                    // 'delete' 'only'\n    case 104047:                    // 'delete' 'option'\n    case 104559:                    // 'delete' 'or'\n    case 105071:                    // 'delete' 'order'\n    case 105583:                    // 'delete' 'ordered'\n    case 106095:                    // 'delete' 'ordering'\n    case 107631:                    // 'delete' 'parent'\n    case 110703:                    // 'delete' 'preceding'\n    case 111215:                    // 'delete' 'preceding-sibling'\n    case 112751:                    // 'delete' 'processing-instruction'\n    case 113775:                    // 'delete' 'rename'\n    case 114287:                    // 'delete' 'replace'\n    case 114799:                    // 'delete' 'return'\n    case 115311:                    // 'delete' 'returning'\n    case 115823:                    // 'delete' 'revalidation'\n    case 116847:                    // 'delete' 'satisfies'\n    case 117359:                    // 'delete' 'schema'\n    case 117871:                    // 'delete' 'schema-attribute'\n    case 118383:                    // 'delete' 'schema-element'\n    case 118895:                    // 'delete' 'score'\n    case 119407:                    // 'delete' 'select'\n    case 119919:                    // 'delete' 'self'\n    case 122479:                    // 'delete' 'sliding'\n    case 122991:                    // 'delete' 'some'\n    case 123503:                    // 'delete' 'stable'\n    case 124015:                    // 'delete' 'start'\n    case 125551:                    // 'delete' 'strict'\n    case 126575:                    // 'delete' 'structured-item'\n    case 127087:                    // 'delete' 'switch'\n    case 127599:                    // 'delete' 'text'\n    case 129647:                    // 'delete' 'to'\n    case 130159:                    // 'delete' 'treat'\n    case 130671:                    // 'delete' 'true'\n    case 131183:                    // 'delete' 'try'\n    case 131695:                    // 'delete' 'tumbling'\n    case 132207:                    // 'delete' 'type'\n    case 132719:                    // 'delete' 'typeswitch'\n    case 133231:                    // 'delete' 'union'\n    case 134255:                    // 'delete' 'unordered'\n    case 134767:                    // 'delete' 'updating'\n    case 136303:                    // 'delete' 'validate'\n    case 136815:                    // 'delete' 'value'\n    case 137327:                    // 'delete' 'variable'\n    case 137839:                    // 'delete' 'version'\n    case 139375:                    // 'delete' 'where'\n    case 139887:                    // 'delete' 'while'\n    case 141423:                    // 'delete' 'with'\n    case 143983:                    // 'delete' '{'\n    case 145007:                    // 'delete' '{|'\n      try_JSONDeleteExpr();\n      break;\n    case -9:\n    case 3233:                      // 'insert' EQName^Token\n    case 4257:                      // 'insert' IntegerLiteral\n    case 4769:                      // 'insert' DecimalLiteral\n    case 5281:                      // 'insert' DoubleLiteral\n    case 5793:                      // 'insert' StringLiteral\n    case 9889:                      // 'insert' NCName^Token\n    case 16033:                     // 'insert' '$'\n    case 16545:                     // 'insert' '$$'\n    case 17057:                     // 'insert' '%'\n    case 18593:                     // 'insert' '(#'\n    case 21153:                     // 'insert' '+'\n    case 22177:                     // 'insert' '-'\n    case 24225:                     // 'insert' '/'\n    case 24737:                     // 'insert' '//'\n    case 28321:                     // 'insert' '<'\n    case 28833:                     // 'insert' '<!--'\n    case 30881:                     // 'insert' '<?'\n    case 35489:                     // 'insert' '['\n    case 36513:                     // 'insert' 'after'\n    case 37537:                     // 'insert' 'allowing'\n    case 38049:                     // 'insert' 'ancestor'\n    case 38561:                     // 'insert' 'ancestor-or-self'\n    case 39073:                     // 'insert' 'and'\n    case 40097:                     // 'insert' 'append'\n    case 40609:                     // 'insert' 'array'\n    case 41121:                     // 'insert' 'as'\n    case 41633:                     // 'insert' 'ascending'\n    case 42145:                     // 'insert' 'at'\n    case 42657:                     // 'insert' 'attribute'\n    case 43169:                     // 'insert' 'base-uri'\n    case 43681:                     // 'insert' 'before'\n    case 44193:                     // 'insert' 'boundary-space'\n    case 44705:                     // 'insert' 'break'\n    case 45729:                     // 'insert' 'case'\n    case 46241:                     // 'insert' 'cast'\n    case 46753:                     // 'insert' 'castable'\n    case 47265:                     // 'insert' 'catch'\n    case 48289:                     // 'insert' 'child'\n    case 48801:                     // 'insert' 'collation'\n    case 49825:                     // 'insert' 'comment'\n    case 50337:                     // 'insert' 'constraint'\n    case 50849:                     // 'insert' 'construction'\n    case 52385:                     // 'insert' 'context'\n    case 52897:                     // 'insert' 'continue'\n    case 53409:                     // 'insert' 'copy'\n    case 53921:                     // 'insert' 'copy-namespaces'\n    case 54433:                     // 'insert' 'count'\n    case 54945:                     // 'insert' 'decimal-format'\n    case 55969:                     // 'insert' 'declare'\n    case 56481:                     // 'insert' 'default'\n    case 56993:                     // 'insert' 'delete'\n    case 57505:                     // 'insert' 'descendant'\n    case 58017:                     // 'insert' 'descendant-or-self'\n    case 58529:                     // 'insert' 'descending'\n    case 61089:                     // 'insert' 'div'\n    case 61601:                     // 'insert' 'document'\n    case 62113:                     // 'insert' 'document-node'\n    case 62625:                     // 'insert' 'element'\n    case 63137:                     // 'insert' 'else'\n    case 63649:                     // 'insert' 'empty'\n    case 64161:                     // 'insert' 'empty-sequence'\n    case 64673:                     // 'insert' 'encoding'\n    case 65185:                     // 'insert' 'end'\n    case 66209:                     // 'insert' 'eq'\n    case 66721:                     // 'insert' 'every'\n    case 67745:                     // 'insert' 'except'\n    case 68257:                     // 'insert' 'exit'\n    case 68769:                     // 'insert' 'external'\n    case 69281:                     // 'insert' 'false'\n    case 69793:                     // 'insert' 'first'\n    case 70305:                     // 'insert' 'following'\n    case 70817:                     // 'insert' 'following-sibling'\n    case 71329:                     // 'insert' 'for'\n    case 72865:                     // 'insert' 'from'\n    case 73377:                     // 'insert' 'ft-option'\n    case 75425:                     // 'insert' 'function'\n    case 75937:                     // 'insert' 'ge'\n    case 76961:                     // 'insert' 'group'\n    case 77985:                     // 'insert' 'gt'\n    case 78497:                     // 'insert' 'idiv'\n    case 79009:                     // 'insert' 'if'\n    case 79521:                     // 'insert' 'import'\n    case 80033:                     // 'insert' 'in'\n    case 80545:                     // 'insert' 'index'\n    case 82593:                     // 'insert' 'insert'\n    case 83105:                     // 'insert' 'instance'\n    case 83617:                     // 'insert' 'integrity'\n    case 84129:                     // 'insert' 'intersect'\n    case 84641:                     // 'insert' 'into'\n    case 85153:                     // 'insert' 'is'\n    case 85665:                     // 'insert' 'item'\n    case 86177:                     // 'insert' 'json'\n    case 86689:                     // 'insert' 'json-item'\n    case 87201:                     // 'insert' 'jsoniq'\n    case 88737:                     // 'insert' 'last'\n    case 89249:                     // 'insert' 'lax'\n    case 89761:                     // 'insert' 'le'\n    case 90785:                     // 'insert' 'let'\n    case 91809:                     // 'insert' 'loop'\n    case 92833:                     // 'insert' 'lt'\n    case 93857:                     // 'insert' 'mod'\n    case 94369:                     // 'insert' 'modify'\n    case 94881:                     // 'insert' 'module'\n    case 95905:                     // 'insert' 'namespace'\n    case 96417:                     // 'insert' 'namespace-node'\n    case 96929:                     // 'insert' 'ne'\n    case 100513:                    // 'insert' 'not'\n    case 101025:                    // 'insert' 'null'\n    case 101537:                    // 'insert' 'object'\n    case 103585:                    // 'insert' 'only'\n    case 104097:                    // 'insert' 'option'\n    case 104609:                    // 'insert' 'or'\n    case 105121:                    // 'insert' 'order'\n    case 105633:                    // 'insert' 'ordered'\n    case 106145:                    // 'insert' 'ordering'\n    case 107681:                    // 'insert' 'parent'\n    case 110753:                    // 'insert' 'preceding'\n    case 111265:                    // 'insert' 'preceding-sibling'\n    case 112801:                    // 'insert' 'processing-instruction'\n    case 113825:                    // 'insert' 'rename'\n    case 114337:                    // 'insert' 'replace'\n    case 114849:                    // 'insert' 'return'\n    case 115361:                    // 'insert' 'returning'\n    case 115873:                    // 'insert' 'revalidation'\n    case 116897:                    // 'insert' 'satisfies'\n    case 117409:                    // 'insert' 'schema'\n    case 117921:                    // 'insert' 'schema-attribute'\n    case 118433:                    // 'insert' 'schema-element'\n    case 118945:                    // 'insert' 'score'\n    case 119457:                    // 'insert' 'select'\n    case 119969:                    // 'insert' 'self'\n    case 122529:                    // 'insert' 'sliding'\n    case 123041:                    // 'insert' 'some'\n    case 123553:                    // 'insert' 'stable'\n    case 124065:                    // 'insert' 'start'\n    case 125601:                    // 'insert' 'strict'\n    case 126625:                    // 'insert' 'structured-item'\n    case 127137:                    // 'insert' 'switch'\n    case 127649:                    // 'insert' 'text'\n    case 129697:                    // 'insert' 'to'\n    case 130209:                    // 'insert' 'treat'\n    case 130721:                    // 'insert' 'true'\n    case 131233:                    // 'insert' 'try'\n    case 131745:                    // 'insert' 'tumbling'\n    case 132257:                    // 'insert' 'type'\n    case 132769:                    // 'insert' 'typeswitch'\n    case 133281:                    // 'insert' 'union'\n    case 134305:                    // 'insert' 'unordered'\n    case 134817:                    // 'insert' 'updating'\n    case 136353:                    // 'insert' 'validate'\n    case 136865:                    // 'insert' 'value'\n    case 137377:                    // 'insert' 'variable'\n    case 137889:                    // 'insert' 'version'\n    case 139425:                    // 'insert' 'where'\n    case 139937:                    // 'insert' 'while'\n    case 141473:                    // 'insert' 'with'\n    case 144033:                    // 'insert' '{'\n    case 145057:                    // 'insert' '{|'\n      try_JSONInsertExpr();\n      break;\n    case -10:\n    case 3294:                      // 'rename' EQName^Token\n    case 4318:                      // 'rename' IntegerLiteral\n    case 4830:                      // 'rename' DecimalLiteral\n    case 5342:                      // 'rename' DoubleLiteral\n    case 5854:                      // 'rename' StringLiteral\n    case 16094:                     // 'rename' '$'\n    case 16606:                     // 'rename' '$$'\n    case 17118:                     // 'rename' '%'\n    case 28382:                     // 'rename' '<'\n    case 28894:                     // 'rename' '<!--'\n    case 30942:                     // 'rename' '<?'\n    case 35550:                     // 'rename' '['\n    case 36574:                     // 'rename' 'after'\n    case 37598:                     // 'rename' 'allowing'\n    case 38110:                     // 'rename' 'ancestor'\n    case 38622:                     // 'rename' 'ancestor-or-self'\n    case 39134:                     // 'rename' 'and'\n    case 40158:                     // 'rename' 'append'\n    case 40670:                     // 'rename' 'array'\n    case 41182:                     // 'rename' 'as'\n    case 41694:                     // 'rename' 'ascending'\n    case 42206:                     // 'rename' 'at'\n    case 42718:                     // 'rename' 'attribute'\n    case 43230:                     // 'rename' 'base-uri'\n    case 43742:                     // 'rename' 'before'\n    case 44254:                     // 'rename' 'boundary-space'\n    case 44766:                     // 'rename' 'break'\n    case 45790:                     // 'rename' 'case'\n    case 46302:                     // 'rename' 'cast'\n    case 46814:                     // 'rename' 'castable'\n    case 47326:                     // 'rename' 'catch'\n    case 48350:                     // 'rename' 'child'\n    case 48862:                     // 'rename' 'collation'\n    case 49886:                     // 'rename' 'comment'\n    case 50398:                     // 'rename' 'constraint'\n    case 50910:                     // 'rename' 'construction'\n    case 52446:                     // 'rename' 'context'\n    case 52958:                     // 'rename' 'continue'\n    case 53470:                     // 'rename' 'copy'\n    case 53982:                     // 'rename' 'copy-namespaces'\n    case 54494:                     // 'rename' 'count'\n    case 55006:                     // 'rename' 'decimal-format'\n    case 56030:                     // 'rename' 'declare'\n    case 56542:                     // 'rename' 'default'\n    case 57054:                     // 'rename' 'delete'\n    case 57566:                     // 'rename' 'descendant'\n    case 58078:                     // 'rename' 'descendant-or-self'\n    case 58590:                     // 'rename' 'descending'\n    case 61150:                     // 'rename' 'div'\n    case 61662:                     // 'rename' 'document'\n    case 62174:                     // 'rename' 'document-node'\n    case 62686:                     // 'rename' 'element'\n    case 63198:                     // 'rename' 'else'\n    case 63710:                     // 'rename' 'empty'\n    case 64222:                     // 'rename' 'empty-sequence'\n    case 64734:                     // 'rename' 'encoding'\n    case 65246:                     // 'rename' 'end'\n    case 66270:                     // 'rename' 'eq'\n    case 66782:                     // 'rename' 'every'\n    case 67806:                     // 'rename' 'except'\n    case 68318:                     // 'rename' 'exit'\n    case 68830:                     // 'rename' 'external'\n    case 69342:                     // 'rename' 'false'\n    case 69854:                     // 'rename' 'first'\n    case 70366:                     // 'rename' 'following'\n    case 70878:                     // 'rename' 'following-sibling'\n    case 71390:                     // 'rename' 'for'\n    case 72926:                     // 'rename' 'from'\n    case 73438:                     // 'rename' 'ft-option'\n    case 75486:                     // 'rename' 'function'\n    case 75998:                     // 'rename' 'ge'\n    case 77022:                     // 'rename' 'group'\n    case 78046:                     // 'rename' 'gt'\n    case 78558:                     // 'rename' 'idiv'\n    case 79070:                     // 'rename' 'if'\n    case 79582:                     // 'rename' 'import'\n    case 80094:                     // 'rename' 'in'\n    case 80606:                     // 'rename' 'index'\n    case 82654:                     // 'rename' 'insert'\n    case 83166:                     // 'rename' 'instance'\n    case 83678:                     // 'rename' 'integrity'\n    case 84190:                     // 'rename' 'intersect'\n    case 84702:                     // 'rename' 'into'\n    case 85214:                     // 'rename' 'is'\n    case 85726:                     // 'rename' 'item'\n    case 86238:                     // 'rename' 'json'\n    case 86750:                     // 'rename' 'json-item'\n    case 87262:                     // 'rename' 'jsoniq'\n    case 88798:                     // 'rename' 'last'\n    case 89310:                     // 'rename' 'lax'\n    case 89822:                     // 'rename' 'le'\n    case 90846:                     // 'rename' 'let'\n    case 91870:                     // 'rename' 'loop'\n    case 92894:                     // 'rename' 'lt'\n    case 93918:                     // 'rename' 'mod'\n    case 94430:                     // 'rename' 'modify'\n    case 94942:                     // 'rename' 'module'\n    case 95966:                     // 'rename' 'namespace'\n    case 96478:                     // 'rename' 'namespace-node'\n    case 96990:                     // 'rename' 'ne'\n    case 100062:                    // 'rename' 'nodes'\n    case 101086:                    // 'rename' 'null'\n    case 101598:                    // 'rename' 'object'\n    case 103646:                    // 'rename' 'only'\n    case 104158:                    // 'rename' 'option'\n    case 104670:                    // 'rename' 'or'\n    case 105182:                    // 'rename' 'order'\n    case 105694:                    // 'rename' 'ordered'\n    case 106206:                    // 'rename' 'ordering'\n    case 107742:                    // 'rename' 'parent'\n    case 110814:                    // 'rename' 'preceding'\n    case 111326:                    // 'rename' 'preceding-sibling'\n    case 112862:                    // 'rename' 'processing-instruction'\n    case 113886:                    // 'rename' 'rename'\n    case 114398:                    // 'rename' 'replace'\n    case 114910:                    // 'rename' 'return'\n    case 115422:                    // 'rename' 'returning'\n    case 115934:                    // 'rename' 'revalidation'\n    case 116958:                    // 'rename' 'satisfies'\n    case 117470:                    // 'rename' 'schema'\n    case 117982:                    // 'rename' 'schema-attribute'\n    case 118494:                    // 'rename' 'schema-element'\n    case 119006:                    // 'rename' 'score'\n    case 119518:                    // 'rename' 'select'\n    case 120030:                    // 'rename' 'self'\n    case 122590:                    // 'rename' 'sliding'\n    case 123102:                    // 'rename' 'some'\n    case 123614:                    // 'rename' 'stable'\n    case 124126:                    // 'rename' 'start'\n    case 125662:                    // 'rename' 'strict'\n    case 126686:                    // 'rename' 'structured-item'\n    case 127198:                    // 'rename' 'switch'\n    case 127710:                    // 'rename' 'text'\n    case 129758:                    // 'rename' 'to'\n    case 130270:                    // 'rename' 'treat'\n    case 130782:                    // 'rename' 'true'\n    case 131294:                    // 'rename' 'try'\n    case 131806:                    // 'rename' 'tumbling'\n    case 132318:                    // 'rename' 'type'\n    case 132830:                    // 'rename' 'typeswitch'\n    case 133342:                    // 'rename' 'union'\n    case 134366:                    // 'rename' 'unordered'\n    case 134878:                    // 'rename' 'updating'\n    case 136414:                    // 'rename' 'validate'\n    case 136926:                    // 'rename' 'value'\n    case 137438:                    // 'rename' 'variable'\n    case 137950:                    // 'rename' 'version'\n    case 139486:                    // 'rename' 'where'\n    case 139998:                    // 'rename' 'while'\n    case 141534:                    // 'rename' 'with'\n    case 144094:                    // 'rename' '{'\n    case 145118:                    // 'rename' '{|'\n      try_JSONRenameExpr();\n      break;\n    case -11:\n      try_JSONReplaceExpr();\n      break;\n    case -12:\n    case 3150:                      // 'append' EQName^Token\n    case 4174:                      // 'append' IntegerLiteral\n    case 4686:                      // 'append' DecimalLiteral\n    case 5198:                      // 'append' DoubleLiteral\n    case 5710:                      // 'append' StringLiteral\n    case 15950:                     // 'append' '$'\n    case 16462:                     // 'append' '$$'\n    case 16974:                     // 'append' '%'\n    case 18510:                     // 'append' '(#'\n    case 21070:                     // 'append' '+'\n    case 22094:                     // 'append' '-'\n    case 24142:                     // 'append' '/'\n    case 24654:                     // 'append' '//'\n    case 28238:                     // 'append' '<'\n    case 28750:                     // 'append' '<!--'\n    case 30798:                     // 'append' '<?'\n    case 35406:                     // 'append' '['\n    case 36430:                     // 'append' 'after'\n    case 37454:                     // 'append' 'allowing'\n    case 37966:                     // 'append' 'ancestor'\n    case 38478:                     // 'append' 'ancestor-or-self'\n    case 38990:                     // 'append' 'and'\n    case 40014:                     // 'append' 'append'\n    case 40526:                     // 'append' 'array'\n    case 41038:                     // 'append' 'as'\n    case 41550:                     // 'append' 'ascending'\n    case 42062:                     // 'append' 'at'\n    case 42574:                     // 'append' 'attribute'\n    case 43086:                     // 'append' 'base-uri'\n    case 43598:                     // 'append' 'before'\n    case 44110:                     // 'append' 'boundary-space'\n    case 44622:                     // 'append' 'break'\n    case 45646:                     // 'append' 'case'\n    case 46158:                     // 'append' 'cast'\n    case 46670:                     // 'append' 'castable'\n    case 47182:                     // 'append' 'catch'\n    case 48206:                     // 'append' 'child'\n    case 48718:                     // 'append' 'collation'\n    case 49742:                     // 'append' 'comment'\n    case 50254:                     // 'append' 'constraint'\n    case 50766:                     // 'append' 'construction'\n    case 52302:                     // 'append' 'context'\n    case 52814:                     // 'append' 'continue'\n    case 53326:                     // 'append' 'copy'\n    case 53838:                     // 'append' 'copy-namespaces'\n    case 54350:                     // 'append' 'count'\n    case 54862:                     // 'append' 'decimal-format'\n    case 55886:                     // 'append' 'declare'\n    case 56398:                     // 'append' 'default'\n    case 56910:                     // 'append' 'delete'\n    case 57422:                     // 'append' 'descendant'\n    case 57934:                     // 'append' 'descendant-or-self'\n    case 58446:                     // 'append' 'descending'\n    case 61006:                     // 'append' 'div'\n    case 61518:                     // 'append' 'document'\n    case 62030:                     // 'append' 'document-node'\n    case 62542:                     // 'append' 'element'\n    case 63054:                     // 'append' 'else'\n    case 63566:                     // 'append' 'empty'\n    case 64078:                     // 'append' 'empty-sequence'\n    case 64590:                     // 'append' 'encoding'\n    case 65102:                     // 'append' 'end'\n    case 66126:                     // 'append' 'eq'\n    case 66638:                     // 'append' 'every'\n    case 67662:                     // 'append' 'except'\n    case 68174:                     // 'append' 'exit'\n    case 68686:                     // 'append' 'external'\n    case 69198:                     // 'append' 'false'\n    case 69710:                     // 'append' 'first'\n    case 70222:                     // 'append' 'following'\n    case 70734:                     // 'append' 'following-sibling'\n    case 71246:                     // 'append' 'for'\n    case 72782:                     // 'append' 'from'\n    case 73294:                     // 'append' 'ft-option'\n    case 75342:                     // 'append' 'function'\n    case 75854:                     // 'append' 'ge'\n    case 76878:                     // 'append' 'group'\n    case 77902:                     // 'append' 'gt'\n    case 78414:                     // 'append' 'idiv'\n    case 78926:                     // 'append' 'if'\n    case 79438:                     // 'append' 'import'\n    case 79950:                     // 'append' 'in'\n    case 80462:                     // 'append' 'index'\n    case 82510:                     // 'append' 'insert'\n    case 83022:                     // 'append' 'instance'\n    case 83534:                     // 'append' 'integrity'\n    case 84046:                     // 'append' 'intersect'\n    case 84558:                     // 'append' 'into'\n    case 85070:                     // 'append' 'is'\n    case 85582:                     // 'append' 'item'\n    case 86094:                     // 'append' 'json'\n    case 86606:                     // 'append' 'json-item'\n    case 87118:                     // 'append' 'jsoniq'\n    case 88654:                     // 'append' 'last'\n    case 89166:                     // 'append' 'lax'\n    case 89678:                     // 'append' 'le'\n    case 90702:                     // 'append' 'let'\n    case 91726:                     // 'append' 'loop'\n    case 92750:                     // 'append' 'lt'\n    case 93774:                     // 'append' 'mod'\n    case 94286:                     // 'append' 'modify'\n    case 94798:                     // 'append' 'module'\n    case 95822:                     // 'append' 'namespace'\n    case 96334:                     // 'append' 'namespace-node'\n    case 96846:                     // 'append' 'ne'\n    case 99406:                     // 'append' 'node'\n    case 99918:                     // 'append' 'nodes'\n    case 100430:                    // 'append' 'not'\n    case 100942:                    // 'append' 'null'\n    case 101454:                    // 'append' 'object'\n    case 103502:                    // 'append' 'only'\n    case 104014:                    // 'append' 'option'\n    case 104526:                    // 'append' 'or'\n    case 105038:                    // 'append' 'order'\n    case 105550:                    // 'append' 'ordered'\n    case 106062:                    // 'append' 'ordering'\n    case 107598:                    // 'append' 'parent'\n    case 110670:                    // 'append' 'preceding'\n    case 111182:                    // 'append' 'preceding-sibling'\n    case 112718:                    // 'append' 'processing-instruction'\n    case 113742:                    // 'append' 'rename'\n    case 114254:                    // 'append' 'replace'\n    case 114766:                    // 'append' 'return'\n    case 115278:                    // 'append' 'returning'\n    case 115790:                    // 'append' 'revalidation'\n    case 116814:                    // 'append' 'satisfies'\n    case 117326:                    // 'append' 'schema'\n    case 117838:                    // 'append' 'schema-attribute'\n    case 118350:                    // 'append' 'schema-element'\n    case 118862:                    // 'append' 'score'\n    case 119374:                    // 'append' 'select'\n    case 119886:                    // 'append' 'self'\n    case 122446:                    // 'append' 'sliding'\n    case 122958:                    // 'append' 'some'\n    case 123470:                    // 'append' 'stable'\n    case 123982:                    // 'append' 'start'\n    case 125518:                    // 'append' 'strict'\n    case 126542:                    // 'append' 'structured-item'\n    case 127054:                    // 'append' 'switch'\n    case 127566:                    // 'append' 'text'\n    case 129614:                    // 'append' 'to'\n    case 130126:                    // 'append' 'treat'\n    case 130638:                    // 'append' 'true'\n    case 131150:                    // 'append' 'try'\n    case 131662:                    // 'append' 'tumbling'\n    case 132174:                    // 'append' 'type'\n    case 132686:                    // 'append' 'typeswitch'\n    case 133198:                    // 'append' 'union'\n    case 134222:                    // 'append' 'unordered'\n    case 134734:                    // 'append' 'updating'\n    case 136270:                    // 'append' 'validate'\n    case 136782:                    // 'append' 'value'\n    case 137294:                    // 'append' 'variable'\n    case 137806:                    // 'append' 'version'\n    case 139342:                    // 'append' 'where'\n    case 139854:                    // 'append' 'while'\n    case 141390:                    // 'append' 'with'\n    case 143950:                    // 'append' '{'\n    case 144974:                    // 'append' '{|'\n      try_JSONAppendExpr();\n      break;\n    case -13:\n      break;\n    default:\n      try_OrExpr();\n    }\n  }\n\n  function parse_JSONDeleteExpr()\n  {\n    eventHandler.startNonterminal(\"JSONDeleteExpr\", e0);\n    shift(111);                     // 'delete'\n    lookahead1W(260);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    switch (l1)\n    {\n    case 168:                       // 'json'\n      lookahead2W(261);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 18088)                // 'json' '('\n    {\n      lk = memoized(11, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          shiftT(168);              // 'json'\n          lk = -1;\n        }\n        catch (p1A)\n        {\n          lk = -2;\n        }\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(11, e0, lk);\n      }\n    }\n    if (lk == -1\n     || lk == 3240                  // 'json' EQName^Token\n     || lk == 4264                  // 'json' IntegerLiteral\n     || lk == 4776                  // 'json' DecimalLiteral\n     || lk == 5288                  // 'json' DoubleLiteral\n     || lk == 5800                  // 'json' StringLiteral\n     || lk == 16040                 // 'json' '$'\n     || lk == 16552                 // 'json' '$$'\n     || lk == 17064                 // 'json' '%'\n     || lk == 28328                 // 'json' '<'\n     || lk == 28840                 // 'json' '<!--'\n     || lk == 30888                 // 'json' '<?'\n     || lk == 35496                 // 'json' '['\n     || lk == 36520                 // 'json' 'after'\n     || lk == 37544                 // 'json' 'allowing'\n     || lk == 38056                 // 'json' 'ancestor'\n     || lk == 38568                 // 'json' 'ancestor-or-self'\n     || lk == 39080                 // 'json' 'and'\n     || lk == 40104                 // 'json' 'append'\n     || lk == 40616                 // 'json' 'array'\n     || lk == 41128                 // 'json' 'as'\n     || lk == 41640                 // 'json' 'ascending'\n     || lk == 42152                 // 'json' 'at'\n     || lk == 42664                 // 'json' 'attribute'\n     || lk == 43176                 // 'json' 'base-uri'\n     || lk == 43688                 // 'json' 'before'\n     || lk == 44200                 // 'json' 'boundary-space'\n     || lk == 44712                 // 'json' 'break'\n     || lk == 45736                 // 'json' 'case'\n     || lk == 46248                 // 'json' 'cast'\n     || lk == 46760                 // 'json' 'castable'\n     || lk == 47272                 // 'json' 'catch'\n     || lk == 48296                 // 'json' 'child'\n     || lk == 48808                 // 'json' 'collation'\n     || lk == 49832                 // 'json' 'comment'\n     || lk == 50344                 // 'json' 'constraint'\n     || lk == 50856                 // 'json' 'construction'\n     || lk == 52392                 // 'json' 'context'\n     || lk == 52904                 // 'json' 'continue'\n     || lk == 53416                 // 'json' 'copy'\n     || lk == 53928                 // 'json' 'copy-namespaces'\n     || lk == 54440                 // 'json' 'count'\n     || lk == 54952                 // 'json' 'decimal-format'\n     || lk == 55976                 // 'json' 'declare'\n     || lk == 56488                 // 'json' 'default'\n     || lk == 57000                 // 'json' 'delete'\n     || lk == 57512                 // 'json' 'descendant'\n     || lk == 58024                 // 'json' 'descendant-or-self'\n     || lk == 58536                 // 'json' 'descending'\n     || lk == 61096                 // 'json' 'div'\n     || lk == 61608                 // 'json' 'document'\n     || lk == 62120                 // 'json' 'document-node'\n     || lk == 62632                 // 'json' 'element'\n     || lk == 63144                 // 'json' 'else'\n     || lk == 63656                 // 'json' 'empty'\n     || lk == 64168                 // 'json' 'empty-sequence'\n     || lk == 64680                 // 'json' 'encoding'\n     || lk == 65192                 // 'json' 'end'\n     || lk == 66216                 // 'json' 'eq'\n     || lk == 66728                 // 'json' 'every'\n     || lk == 67752                 // 'json' 'except'\n     || lk == 68264                 // 'json' 'exit'\n     || lk == 68776                 // 'json' 'external'\n     || lk == 69288                 // 'json' 'false'\n     || lk == 69800                 // 'json' 'first'\n     || lk == 70312                 // 'json' 'following'\n     || lk == 70824                 // 'json' 'following-sibling'\n     || lk == 71336                 // 'json' 'for'\n     || lk == 72872                 // 'json' 'from'\n     || lk == 73384                 // 'json' 'ft-option'\n     || lk == 75432                 // 'json' 'function'\n     || lk == 75944                 // 'json' 'ge'\n     || lk == 76968                 // 'json' 'group'\n     || lk == 77992                 // 'json' 'gt'\n     || lk == 78504                 // 'json' 'idiv'\n     || lk == 79016                 // 'json' 'if'\n     || lk == 79528                 // 'json' 'import'\n     || lk == 80040                 // 'json' 'in'\n     || lk == 80552                 // 'json' 'index'\n     || lk == 82600                 // 'json' 'insert'\n     || lk == 83112                 // 'json' 'instance'\n     || lk == 83624                 // 'json' 'integrity'\n     || lk == 84136                 // 'json' 'intersect'\n     || lk == 84648                 // 'json' 'into'\n     || lk == 85160                 // 'json' 'is'\n     || lk == 85672                 // 'json' 'item'\n     || lk == 86184                 // 'json' 'json'\n     || lk == 86696                 // 'json' 'json-item'\n     || lk == 87208                 // 'json' 'jsoniq'\n     || lk == 88744                 // 'json' 'last'\n     || lk == 89256                 // 'json' 'lax'\n     || lk == 89768                 // 'json' 'le'\n     || lk == 90792                 // 'json' 'let'\n     || lk == 91816                 // 'json' 'loop'\n     || lk == 92840                 // 'json' 'lt'\n     || lk == 93864                 // 'json' 'mod'\n     || lk == 94376                 // 'json' 'modify'\n     || lk == 94888                 // 'json' 'module'\n     || lk == 95912                 // 'json' 'namespace'\n     || lk == 96424                 // 'json' 'namespace-node'\n     || lk == 96936                 // 'json' 'ne'\n     || lk == 99496                 // 'json' 'node'\n     || lk == 100008                // 'json' 'nodes'\n     || lk == 101032                // 'json' 'null'\n     || lk == 101544                // 'json' 'object'\n     || lk == 103592                // 'json' 'only'\n     || lk == 104104                // 'json' 'option'\n     || lk == 104616                // 'json' 'or'\n     || lk == 105128                // 'json' 'order'\n     || lk == 105640                // 'json' 'ordered'\n     || lk == 106152                // 'json' 'ordering'\n     || lk == 107688                // 'json' 'parent'\n     || lk == 110760                // 'json' 'preceding'\n     || lk == 111272                // 'json' 'preceding-sibling'\n     || lk == 112808                // 'json' 'processing-instruction'\n     || lk == 113832                // 'json' 'rename'\n     || lk == 114344                // 'json' 'replace'\n     || lk == 114856                // 'json' 'return'\n     || lk == 115368                // 'json' 'returning'\n     || lk == 115880                // 'json' 'revalidation'\n     || lk == 116904                // 'json' 'satisfies'\n     || lk == 117416                // 'json' 'schema'\n     || lk == 117928                // 'json' 'schema-attribute'\n     || lk == 118440                // 'json' 'schema-element'\n     || lk == 118952                // 'json' 'score'\n     || lk == 119464                // 'json' 'select'\n     || lk == 119976                // 'json' 'self'\n     || lk == 122536                // 'json' 'sliding'\n     || lk == 123048                // 'json' 'some'\n     || lk == 123560                // 'json' 'stable'\n     || lk == 124072                // 'json' 'start'\n     || lk == 125608                // 'json' 'strict'\n     || lk == 126632                // 'json' 'structured-item'\n     || lk == 127144                // 'json' 'switch'\n     || lk == 127656                // 'json' 'text'\n     || lk == 129704                // 'json' 'to'\n     || lk == 130216                // 'json' 'treat'\n     || lk == 130728                // 'json' 'true'\n     || lk == 131240                // 'json' 'try'\n     || lk == 131752                // 'json' 'tumbling'\n     || lk == 132264                // 'json' 'type'\n     || lk == 132776                // 'json' 'typeswitch'\n     || lk == 133288                // 'json' 'union'\n     || lk == 134312                // 'json' 'unordered'\n     || lk == 134824                // 'json' 'updating'\n     || lk == 136360                // 'json' 'validate'\n     || lk == 136872                // 'json' 'value'\n     || lk == 137384                // 'json' 'variable'\n     || lk == 137896                // 'json' 'version'\n     || lk == 139432                // 'json' 'where'\n     || lk == 139944                // 'json' 'while'\n     || lk == 141480                // 'json' 'with'\n     || lk == 144040                // 'json' '{'\n     || lk == 145064)               // 'json' '{|'\n    {\n      shift(168);                   // 'json'\n    }\n    lookahead1W(260);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_PostfixExpr();\n    eventHandler.endNonterminal(\"JSONDeleteExpr\", e0);\n  }\n\n  function try_JSONDeleteExpr()\n  {\n    shiftT(111);                    // 'delete'\n    lookahead1W(260);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    switch (l1)\n    {\n    case 168:                       // 'json'\n      lookahead2W(261);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 18088)                // 'json' '('\n    {\n      lk = memoized(11, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          shiftT(168);              // 'json'\n          memoize(11, e0A, -1);\n        }\n        catch (p1A)\n        {\n          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n          b2 = b2A; e2 = e2A; end = e2A; }}\n          memoize(11, e0A, -2);\n        }\n        lk = -2;\n      }\n    }\n    if (lk == -1\n     || lk == 3240                  // 'json' EQName^Token\n     || lk == 4264                  // 'json' IntegerLiteral\n     || lk == 4776                  // 'json' DecimalLiteral\n     || lk == 5288                  // 'json' DoubleLiteral\n     || lk == 5800                  // 'json' StringLiteral\n     || lk == 16040                 // 'json' '$'\n     || lk == 16552                 // 'json' '$$'\n     || lk == 17064                 // 'json' '%'\n     || lk == 28328                 // 'json' '<'\n     || lk == 28840                 // 'json' '<!--'\n     || lk == 30888                 // 'json' '<?'\n     || lk == 35496                 // 'json' '['\n     || lk == 36520                 // 'json' 'after'\n     || lk == 37544                 // 'json' 'allowing'\n     || lk == 38056                 // 'json' 'ancestor'\n     || lk == 38568                 // 'json' 'ancestor-or-self'\n     || lk == 39080                 // 'json' 'and'\n     || lk == 40104                 // 'json' 'append'\n     || lk == 40616                 // 'json' 'array'\n     || lk == 41128                 // 'json' 'as'\n     || lk == 41640                 // 'json' 'ascending'\n     || lk == 42152                 // 'json' 'at'\n     || lk == 42664                 // 'json' 'attribute'\n     || lk == 43176                 // 'json' 'base-uri'\n     || lk == 43688                 // 'json' 'before'\n     || lk == 44200                 // 'json' 'boundary-space'\n     || lk == 44712                 // 'json' 'break'\n     || lk == 45736                 // 'json' 'case'\n     || lk == 46248                 // 'json' 'cast'\n     || lk == 46760                 // 'json' 'castable'\n     || lk == 47272                 // 'json' 'catch'\n     || lk == 48296                 // 'json' 'child'\n     || lk == 48808                 // 'json' 'collation'\n     || lk == 49832                 // 'json' 'comment'\n     || lk == 50344                 // 'json' 'constraint'\n     || lk == 50856                 // 'json' 'construction'\n     || lk == 52392                 // 'json' 'context'\n     || lk == 52904                 // 'json' 'continue'\n     || lk == 53416                 // 'json' 'copy'\n     || lk == 53928                 // 'json' 'copy-namespaces'\n     || lk == 54440                 // 'json' 'count'\n     || lk == 54952                 // 'json' 'decimal-format'\n     || lk == 55976                 // 'json' 'declare'\n     || lk == 56488                 // 'json' 'default'\n     || lk == 57000                 // 'json' 'delete'\n     || lk == 57512                 // 'json' 'descendant'\n     || lk == 58024                 // 'json' 'descendant-or-self'\n     || lk == 58536                 // 'json' 'descending'\n     || lk == 61096                 // 'json' 'div'\n     || lk == 61608                 // 'json' 'document'\n     || lk == 62120                 // 'json' 'document-node'\n     || lk == 62632                 // 'json' 'element'\n     || lk == 63144                 // 'json' 'else'\n     || lk == 63656                 // 'json' 'empty'\n     || lk == 64168                 // 'json' 'empty-sequence'\n     || lk == 64680                 // 'json' 'encoding'\n     || lk == 65192                 // 'json' 'end'\n     || lk == 66216                 // 'json' 'eq'\n     || lk == 66728                 // 'json' 'every'\n     || lk == 67752                 // 'json' 'except'\n     || lk == 68264                 // 'json' 'exit'\n     || lk == 68776                 // 'json' 'external'\n     || lk == 69288                 // 'json' 'false'\n     || lk == 69800                 // 'json' 'first'\n     || lk == 70312                 // 'json' 'following'\n     || lk == 70824                 // 'json' 'following-sibling'\n     || lk == 71336                 // 'json' 'for'\n     || lk == 72872                 // 'json' 'from'\n     || lk == 73384                 // 'json' 'ft-option'\n     || lk == 75432                 // 'json' 'function'\n     || lk == 75944                 // 'json' 'ge'\n     || lk == 76968                 // 'json' 'group'\n     || lk == 77992                 // 'json' 'gt'\n     || lk == 78504                 // 'json' 'idiv'\n     || lk == 79016                 // 'json' 'if'\n     || lk == 79528                 // 'json' 'import'\n     || lk == 80040                 // 'json' 'in'\n     || lk == 80552                 // 'json' 'index'\n     || lk == 82600                 // 'json' 'insert'\n     || lk == 83112                 // 'json' 'instance'\n     || lk == 83624                 // 'json' 'integrity'\n     || lk == 84136                 // 'json' 'intersect'\n     || lk == 84648                 // 'json' 'into'\n     || lk == 85160                 // 'json' 'is'\n     || lk == 85672                 // 'json' 'item'\n     || lk == 86184                 // 'json' 'json'\n     || lk == 86696                 // 'json' 'json-item'\n     || lk == 87208                 // 'json' 'jsoniq'\n     || lk == 88744                 // 'json' 'last'\n     || lk == 89256                 // 'json' 'lax'\n     || lk == 89768                 // 'json' 'le'\n     || lk == 90792                 // 'json' 'let'\n     || lk == 91816                 // 'json' 'loop'\n     || lk == 92840                 // 'json' 'lt'\n     || lk == 93864                 // 'json' 'mod'\n     || lk == 94376                 // 'json' 'modify'\n     || lk == 94888                 // 'json' 'module'\n     || lk == 95912                 // 'json' 'namespace'\n     || lk == 96424                 // 'json' 'namespace-node'\n     || lk == 96936                 // 'json' 'ne'\n     || lk == 99496                 // 'json' 'node'\n     || lk == 100008                // 'json' 'nodes'\n     || lk == 101032                // 'json' 'null'\n     || lk == 101544                // 'json' 'object'\n     || lk == 103592                // 'json' 'only'\n     || lk == 104104                // 'json' 'option'\n     || lk == 104616                // 'json' 'or'\n     || lk == 105128                // 'json' 'order'\n     || lk == 105640                // 'json' 'ordered'\n     || lk == 106152                // 'json' 'ordering'\n     || lk == 107688                // 'json' 'parent'\n     || lk == 110760                // 'json' 'preceding'\n     || lk == 111272                // 'json' 'preceding-sibling'\n     || lk == 112808                // 'json' 'processing-instruction'\n     || lk == 113832                // 'json' 'rename'\n     || lk == 114344                // 'json' 'replace'\n     || lk == 114856                // 'json' 'return'\n     || lk == 115368                // 'json' 'returning'\n     || lk == 115880                // 'json' 'revalidation'\n     || lk == 116904                // 'json' 'satisfies'\n     || lk == 117416                // 'json' 'schema'\n     || lk == 117928                // 'json' 'schema-attribute'\n     || lk == 118440                // 'json' 'schema-element'\n     || lk == 118952                // 'json' 'score'\n     || lk == 119464                // 'json' 'select'\n     || lk == 119976                // 'json' 'self'\n     || lk == 122536                // 'json' 'sliding'\n     || lk == 123048                // 'json' 'some'\n     || lk == 123560                // 'json' 'stable'\n     || lk == 124072                // 'json' 'start'\n     || lk == 125608                // 'json' 'strict'\n     || lk == 126632                // 'json' 'structured-item'\n     || lk == 127144                // 'json' 'switch'\n     || lk == 127656                // 'json' 'text'\n     || lk == 129704                // 'json' 'to'\n     || lk == 130216                // 'json' 'treat'\n     || lk == 130728                // 'json' 'true'\n     || lk == 131240                // 'json' 'try'\n     || lk == 131752                // 'json' 'tumbling'\n     || lk == 132264                // 'json' 'type'\n     || lk == 132776                // 'json' 'typeswitch'\n     || lk == 133288                // 'json' 'union'\n     || lk == 134312                // 'json' 'unordered'\n     || lk == 134824                // 'json' 'updating'\n     || lk == 136360                // 'json' 'validate'\n     || lk == 136872                // 'json' 'value'\n     || lk == 137384                // 'json' 'variable'\n     || lk == 137896                // 'json' 'version'\n     || lk == 139432                // 'json' 'where'\n     || lk == 139944                // 'json' 'while'\n     || lk == 141480                // 'json' 'with'\n     || lk == 144040                // 'json' '{'\n     || lk == 145064)               // 'json' '{|'\n    {\n      shiftT(168);                  // 'json'\n    }\n    lookahead1W(260);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_PostfixExpr();\n  }\n\n  function parse_JSONInsertExpr()\n  {\n    eventHandler.startNonterminal(\"JSONInsertExpr\", e0);\n    switch (l1)\n    {\n    case 161:                       // 'insert'\n      lookahead2W(268);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk != 9889)                 // 'insert' NCName^Token\n    {\n      lk = memoized(12, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          shiftT(161);              // 'insert'\n          lookahead1W(267);         // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n          switch (l1)\n          {\n          case 168:                 // 'json'\n            lookahead2W(269);       // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n            break;\n          default:\n            lk = l1;\n          }\n          if (lk == 18088)          // 'json' '('\n          {\n            lk = memoized(13, e0);\n            if (lk == 0)\n            {\n              var b0B = b0; var e0B = e0; var l1B = l1;\n              var b1B = b1; var e1B = e1; var l2B = l2;\n              var b2B = b2; var e2B = e2;\n              try\n              {\n                shiftT(168);        // 'json'\n                memoize(13, e0B, -1);\n              }\n              catch (p1B)\n              {\n                b0 = b0B; e0 = e0B; l1 = l1B; if (l1 == 0) {end = e0B;} else {\n                b1 = b1B; e1 = e1B; l2 = l2B; if (l2 == 0) {end = e1B;} else {\n                b2 = b2B; e2 = e2B; end = e2B; }}\n                memoize(13, e0B, -2);\n              }\n              lk = -2;\n            }\n          }\n          if (lk == -1\n           || lk == 3240            // 'json' EQName^Token\n           || lk == 4264            // 'json' IntegerLiteral\n           || lk == 4776            // 'json' DecimalLiteral\n           || lk == 5288            // 'json' DoubleLiteral\n           || lk == 5800            // 'json' StringLiteral\n           || lk == 16040           // 'json' '$'\n           || lk == 16552           // 'json' '$$'\n           || lk == 17064           // 'json' '%'\n           || lk == 18600           // 'json' '(#'\n           || lk == 21160           // 'json' '+'\n           || lk == 22184           // 'json' '-'\n           || lk == 24232           // 'json' '/'\n           || lk == 24744           // 'json' '//'\n           || lk == 28328           // 'json' '<'\n           || lk == 28840           // 'json' '<!--'\n           || lk == 30888           // 'json' '<?'\n           || lk == 35496           // 'json' '['\n           || lk == 36520           // 'json' 'after'\n           || lk == 37544           // 'json' 'allowing'\n           || lk == 38056           // 'json' 'ancestor'\n           || lk == 38568           // 'json' 'ancestor-or-self'\n           || lk == 39080           // 'json' 'and'\n           || lk == 40104           // 'json' 'append'\n           || lk == 40616           // 'json' 'array'\n           || lk == 41128           // 'json' 'as'\n           || lk == 41640           // 'json' 'ascending'\n           || lk == 42152           // 'json' 'at'\n           || lk == 42664           // 'json' 'attribute'\n           || lk == 43176           // 'json' 'base-uri'\n           || lk == 43688           // 'json' 'before'\n           || lk == 44200           // 'json' 'boundary-space'\n           || lk == 44712           // 'json' 'break'\n           || lk == 45736           // 'json' 'case'\n           || lk == 46248           // 'json' 'cast'\n           || lk == 46760           // 'json' 'castable'\n           || lk == 47272           // 'json' 'catch'\n           || lk == 48296           // 'json' 'child'\n           || lk == 48808           // 'json' 'collation'\n           || lk == 49832           // 'json' 'comment'\n           || lk == 50344           // 'json' 'constraint'\n           || lk == 50856           // 'json' 'construction'\n           || lk == 52392           // 'json' 'context'\n           || lk == 52904           // 'json' 'continue'\n           || lk == 53416           // 'json' 'copy'\n           || lk == 53928           // 'json' 'copy-namespaces'\n           || lk == 54440           // 'json' 'count'\n           || lk == 54952           // 'json' 'decimal-format'\n           || lk == 55976           // 'json' 'declare'\n           || lk == 56488           // 'json' 'default'\n           || lk == 57000           // 'json' 'delete'\n           || lk == 57512           // 'json' 'descendant'\n           || lk == 58024           // 'json' 'descendant-or-self'\n           || lk == 58536           // 'json' 'descending'\n           || lk == 61096           // 'json' 'div'\n           || lk == 61608           // 'json' 'document'\n           || lk == 62120           // 'json' 'document-node'\n           || lk == 62632           // 'json' 'element'\n           || lk == 63144           // 'json' 'else'\n           || lk == 63656           // 'json' 'empty'\n           || lk == 64168           // 'json' 'empty-sequence'\n           || lk == 64680           // 'json' 'encoding'\n           || lk == 65192           // 'json' 'end'\n           || lk == 66216           // 'json' 'eq'\n           || lk == 66728           // 'json' 'every'\n           || lk == 67752           // 'json' 'except'\n           || lk == 68264           // 'json' 'exit'\n           || lk == 68776           // 'json' 'external'\n           || lk == 69288           // 'json' 'false'\n           || lk == 69800           // 'json' 'first'\n           || lk == 70312           // 'json' 'following'\n           || lk == 70824           // 'json' 'following-sibling'\n           || lk == 71336           // 'json' 'for'\n           || lk == 72872           // 'json' 'from'\n           || lk == 73384           // 'json' 'ft-option'\n           || lk == 75432           // 'json' 'function'\n           || lk == 75944           // 'json' 'ge'\n           || lk == 76968           // 'json' 'group'\n           || lk == 77992           // 'json' 'gt'\n           || lk == 78504           // 'json' 'idiv'\n           || lk == 79016           // 'json' 'if'\n           || lk == 79528           // 'json' 'import'\n           || lk == 80040           // 'json' 'in'\n           || lk == 80552           // 'json' 'index'\n           || lk == 82600           // 'json' 'insert'\n           || lk == 83112           // 'json' 'instance'\n           || lk == 83624           // 'json' 'integrity'\n           || lk == 84136           // 'json' 'intersect'\n           || lk == 84648           // 'json' 'into'\n           || lk == 85160           // 'json' 'is'\n           || lk == 85672           // 'json' 'item'\n           || lk == 86184           // 'json' 'json'\n           || lk == 86696           // 'json' 'json-item'\n           || lk == 87208           // 'json' 'jsoniq'\n           || lk == 88744           // 'json' 'last'\n           || lk == 89256           // 'json' 'lax'\n           || lk == 89768           // 'json' 'le'\n           || lk == 90792           // 'json' 'let'\n           || lk == 91816           // 'json' 'loop'\n           || lk == 92840           // 'json' 'lt'\n           || lk == 93864           // 'json' 'mod'\n           || lk == 94376           // 'json' 'modify'\n           || lk == 94888           // 'json' 'module'\n           || lk == 95912           // 'json' 'namespace'\n           || lk == 96424           // 'json' 'namespace-node'\n           || lk == 96936           // 'json' 'ne'\n           || lk == 99496           // 'json' 'node'\n           || lk == 100008          // 'json' 'nodes'\n           || lk == 100520          // 'json' 'not'\n           || lk == 101032          // 'json' 'null'\n           || lk == 101544          // 'json' 'object'\n           || lk == 103592          // 'json' 'only'\n           || lk == 104104          // 'json' 'option'\n           || lk == 104616          // 'json' 'or'\n           || lk == 105128          // 'json' 'order'\n           || lk == 105640          // 'json' 'ordered'\n           || lk == 106152          // 'json' 'ordering'\n           || lk == 107688          // 'json' 'parent'\n           || lk == 110760          // 'json' 'preceding'\n           || lk == 111272          // 'json' 'preceding-sibling'\n           || lk == 112808          // 'json' 'processing-instruction'\n           || lk == 113832          // 'json' 'rename'\n           || lk == 114344          // 'json' 'replace'\n           || lk == 114856          // 'json' 'return'\n           || lk == 115368          // 'json' 'returning'\n           || lk == 115880          // 'json' 'revalidation'\n           || lk == 116904          // 'json' 'satisfies'\n           || lk == 117416          // 'json' 'schema'\n           || lk == 117928          // 'json' 'schema-attribute'\n           || lk == 118440          // 'json' 'schema-element'\n           || lk == 118952          // 'json' 'score'\n           || lk == 119464          // 'json' 'select'\n           || lk == 119976          // 'json' 'self'\n           || lk == 122536          // 'json' 'sliding'\n           || lk == 123048          // 'json' 'some'\n           || lk == 123560          // 'json' 'stable'\n           || lk == 124072          // 'json' 'start'\n           || lk == 125608          // 'json' 'strict'\n           || lk == 126632          // 'json' 'structured-item'\n           || lk == 127144          // 'json' 'switch'\n           || lk == 127656          // 'json' 'text'\n           || lk == 129704          // 'json' 'to'\n           || lk == 130216          // 'json' 'treat'\n           || lk == 130728          // 'json' 'true'\n           || lk == 131240          // 'json' 'try'\n           || lk == 131752          // 'json' 'tumbling'\n           || lk == 132264          // 'json' 'type'\n           || lk == 132776          // 'json' 'typeswitch'\n           || lk == 133288          // 'json' 'union'\n           || lk == 134312          // 'json' 'unordered'\n           || lk == 134824          // 'json' 'updating'\n           || lk == 136360          // 'json' 'validate'\n           || lk == 136872          // 'json' 'value'\n           || lk == 137384          // 'json' 'variable'\n           || lk == 137896          // 'json' 'version'\n           || lk == 139432          // 'json' 'where'\n           || lk == 139944          // 'json' 'while'\n           || lk == 141480          // 'json' 'with'\n           || lk == 144040          // 'json' '{'\n           || lk == 145064)         // 'json' '{|'\n          {\n            shiftT(168);            // 'json'\n          }\n          lookahead1W(267);         // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n          try_ExprSingle();\n          shiftT(165);              // 'into'\n          lookahead1W(267);         // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n          try_ExprSingle();\n          switch (l1)\n          {\n          case 82:                  // 'at'\n            lookahead2W(72);        // S^WS | '(:' | 'position'\n            break;\n          default:\n            lk = l1;\n          }\n          if (lk == 110162)         // 'at' 'position'\n          {\n            lk = memoized(14, e0);\n            if (lk == 0)\n            {\n              var b0B = b0; var e0B = e0; var l1B = l1;\n              var b1B = b1; var e1B = e1; var l2B = l2;\n              var b2B = b2; var e2B = e2;\n              try\n              {\n                shiftT(82);         // 'at'\n                lookahead1W(72);    // S^WS | '(:' | 'position'\n                shiftT(215);        // 'position'\n                lookahead1W(267);   // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n                try_ExprSingle();\n                memoize(14, e0B, -1);\n              }\n              catch (p1B)\n              {\n                b0 = b0B; e0 = e0B; l1 = l1B; if (l1 == 0) {end = e0B;} else {\n                b1 = b1B; e1 = e1B; l2 = l2B; if (l2 == 0) {end = e1B;} else {\n                b2 = b2B; e2 = e2B; end = e2B; }}\n                memoize(14, e0B, -2);\n              }\n              lk = -2;\n            }\n          }\n          if (lk == -1)\n          {\n            shiftT(82);             // 'at'\n            lookahead1W(72);        // S^WS | '(:' | 'position'\n            shiftT(215);            // 'position'\n            lookahead1W(267);       // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n            try_ExprSingle();\n          }\n          lk = -1;\n        }\n        catch (p1A)\n        {\n          lk = -2;\n        }\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(12, e0, lk);\n      }\n    }\n    switch (lk)\n    {\n    case -1:\n      shift(161);                   // 'insert'\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      switch (l1)\n      {\n      case 168:                     // 'json'\n        lookahead2W(269);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk == 18088)              // 'json' '('\n      {\n        lk = memoized(13, e0);\n        if (lk == 0)\n        {\n          var b0B = b0; var e0B = e0; var l1B = l1;\n          var b1B = b1; var e1B = e1; var l2B = l2;\n          var b2B = b2; var e2B = e2;\n          try\n          {\n            shiftT(168);            // 'json'\n            lk = -1;\n          }\n          catch (p1B)\n          {\n            lk = -2;\n          }\n          b0 = b0B; e0 = e0B; l1 = l1B; if (l1 == 0) {end = e0B;} else {\n          b1 = b1B; e1 = e1B; l2 = l2B; if (l2 == 0) {end = e1B;} else {\n          b2 = b2B; e2 = e2B; end = e2B; }}\n          memoize(13, e0, lk);\n        }\n      }\n      if (lk == -1\n       || lk == 3240                // 'json' EQName^Token\n       || lk == 4264                // 'json' IntegerLiteral\n       || lk == 4776                // 'json' DecimalLiteral\n       || lk == 5288                // 'json' DoubleLiteral\n       || lk == 5800                // 'json' StringLiteral\n       || lk == 16040               // 'json' '$'\n       || lk == 16552               // 'json' '$$'\n       || lk == 17064               // 'json' '%'\n       || lk == 18600               // 'json' '(#'\n       || lk == 21160               // 'json' '+'\n       || lk == 22184               // 'json' '-'\n       || lk == 24232               // 'json' '/'\n       || lk == 24744               // 'json' '//'\n       || lk == 28328               // 'json' '<'\n       || lk == 28840               // 'json' '<!--'\n       || lk == 30888               // 'json' '<?'\n       || lk == 35496               // 'json' '['\n       || lk == 36520               // 'json' 'after'\n       || lk == 37544               // 'json' 'allowing'\n       || lk == 38056               // 'json' 'ancestor'\n       || lk == 38568               // 'json' 'ancestor-or-self'\n       || lk == 39080               // 'json' 'and'\n       || lk == 40104               // 'json' 'append'\n       || lk == 40616               // 'json' 'array'\n       || lk == 41128               // 'json' 'as'\n       || lk == 41640               // 'json' 'ascending'\n       || lk == 42152               // 'json' 'at'\n       || lk == 42664               // 'json' 'attribute'\n       || lk == 43176               // 'json' 'base-uri'\n       || lk == 43688               // 'json' 'before'\n       || lk == 44200               // 'json' 'boundary-space'\n       || lk == 44712               // 'json' 'break'\n       || lk == 45736               // 'json' 'case'\n       || lk == 46248               // 'json' 'cast'\n       || lk == 46760               // 'json' 'castable'\n       || lk == 47272               // 'json' 'catch'\n       || lk == 48296               // 'json' 'child'\n       || lk == 48808               // 'json' 'collation'\n       || lk == 49832               // 'json' 'comment'\n       || lk == 50344               // 'json' 'constraint'\n       || lk == 50856               // 'json' 'construction'\n       || lk == 52392               // 'json' 'context'\n       || lk == 52904               // 'json' 'continue'\n       || lk == 53416               // 'json' 'copy'\n       || lk == 53928               // 'json' 'copy-namespaces'\n       || lk == 54440               // 'json' 'count'\n       || lk == 54952               // 'json' 'decimal-format'\n       || lk == 55976               // 'json' 'declare'\n       || lk == 56488               // 'json' 'default'\n       || lk == 57000               // 'json' 'delete'\n       || lk == 57512               // 'json' 'descendant'\n       || lk == 58024               // 'json' 'descendant-or-self'\n       || lk == 58536               // 'json' 'descending'\n       || lk == 61096               // 'json' 'div'\n       || lk == 61608               // 'json' 'document'\n       || lk == 62120               // 'json' 'document-node'\n       || lk == 62632               // 'json' 'element'\n       || lk == 63144               // 'json' 'else'\n       || lk == 63656               // 'json' 'empty'\n       || lk == 64168               // 'json' 'empty-sequence'\n       || lk == 64680               // 'json' 'encoding'\n       || lk == 65192               // 'json' 'end'\n       || lk == 66216               // 'json' 'eq'\n       || lk == 66728               // 'json' 'every'\n       || lk == 67752               // 'json' 'except'\n       || lk == 68264               // 'json' 'exit'\n       || lk == 68776               // 'json' 'external'\n       || lk == 69288               // 'json' 'false'\n       || lk == 69800               // 'json' 'first'\n       || lk == 70312               // 'json' 'following'\n       || lk == 70824               // 'json' 'following-sibling'\n       || lk == 71336               // 'json' 'for'\n       || lk == 72872               // 'json' 'from'\n       || lk == 73384               // 'json' 'ft-option'\n       || lk == 75432               // 'json' 'function'\n       || lk == 75944               // 'json' 'ge'\n       || lk == 76968               // 'json' 'group'\n       || lk == 77992               // 'json' 'gt'\n       || lk == 78504               // 'json' 'idiv'\n       || lk == 79016               // 'json' 'if'\n       || lk == 79528               // 'json' 'import'\n       || lk == 80040               // 'json' 'in'\n       || lk == 80552               // 'json' 'index'\n       || lk == 82600               // 'json' 'insert'\n       || lk == 83112               // 'json' 'instance'\n       || lk == 83624               // 'json' 'integrity'\n       || lk == 84136               // 'json' 'intersect'\n       || lk == 84648               // 'json' 'into'\n       || lk == 85160               // 'json' 'is'\n       || lk == 85672               // 'json' 'item'\n       || lk == 86184               // 'json' 'json'\n       || lk == 86696               // 'json' 'json-item'\n       || lk == 87208               // 'json' 'jsoniq'\n       || lk == 88744               // 'json' 'last'\n       || lk == 89256               // 'json' 'lax'\n       || lk == 89768               // 'json' 'le'\n       || lk == 90792               // 'json' 'let'\n       || lk == 91816               // 'json' 'loop'\n       || lk == 92840               // 'json' 'lt'\n       || lk == 93864               // 'json' 'mod'\n       || lk == 94376               // 'json' 'modify'\n       || lk == 94888               // 'json' 'module'\n       || lk == 95912               // 'json' 'namespace'\n       || lk == 96424               // 'json' 'namespace-node'\n       || lk == 96936               // 'json' 'ne'\n       || lk == 99496               // 'json' 'node'\n       || lk == 100008              // 'json' 'nodes'\n       || lk == 100520              // 'json' 'not'\n       || lk == 101032              // 'json' 'null'\n       || lk == 101544              // 'json' 'object'\n       || lk == 103592              // 'json' 'only'\n       || lk == 104104              // 'json' 'option'\n       || lk == 104616              // 'json' 'or'\n       || lk == 105128              // 'json' 'order'\n       || lk == 105640              // 'json' 'ordered'\n       || lk == 106152              // 'json' 'ordering'\n       || lk == 107688              // 'json' 'parent'\n       || lk == 110760              // 'json' 'preceding'\n       || lk == 111272              // 'json' 'preceding-sibling'\n       || lk == 112808              // 'json' 'processing-instruction'\n       || lk == 113832              // 'json' 'rename'\n       || lk == 114344              // 'json' 'replace'\n       || lk == 114856              // 'json' 'return'\n       || lk == 115368              // 'json' 'returning'\n       || lk == 115880              // 'json' 'revalidation'\n       || lk == 116904              // 'json' 'satisfies'\n       || lk == 117416              // 'json' 'schema'\n       || lk == 117928              // 'json' 'schema-attribute'\n       || lk == 118440              // 'json' 'schema-element'\n       || lk == 118952              // 'json' 'score'\n       || lk == 119464              // 'json' 'select'\n       || lk == 119976              // 'json' 'self'\n       || lk == 122536              // 'json' 'sliding'\n       || lk == 123048              // 'json' 'some'\n       || lk == 123560              // 'json' 'stable'\n       || lk == 124072              // 'json' 'start'\n       || lk == 125608              // 'json' 'strict'\n       || lk == 126632              // 'json' 'structured-item'\n       || lk == 127144              // 'json' 'switch'\n       || lk == 127656              // 'json' 'text'\n       || lk == 129704              // 'json' 'to'\n       || lk == 130216              // 'json' 'treat'\n       || lk == 130728              // 'json' 'true'\n       || lk == 131240              // 'json' 'try'\n       || lk == 131752              // 'json' 'tumbling'\n       || lk == 132264              // 'json' 'type'\n       || lk == 132776              // 'json' 'typeswitch'\n       || lk == 133288              // 'json' 'union'\n       || lk == 134312              // 'json' 'unordered'\n       || lk == 134824              // 'json' 'updating'\n       || lk == 136360              // 'json' 'validate'\n       || lk == 136872              // 'json' 'value'\n       || lk == 137384              // 'json' 'variable'\n       || lk == 137896              // 'json' 'version'\n       || lk == 139432              // 'json' 'where'\n       || lk == 139944              // 'json' 'while'\n       || lk == 141480              // 'json' 'with'\n       || lk == 144040              // 'json' '{'\n       || lk == 145064)             // 'json' '{|'\n      {\n        shift(168);                 // 'json'\n      }\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_ExprSingle();\n      shift(165);                   // 'into'\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_ExprSingle();\n      switch (l1)\n      {\n      case 82:                      // 'at'\n        lookahead2W(72);            // S^WS | '(:' | 'position'\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk == 110162)             // 'at' 'position'\n      {\n        lk = memoized(14, e0);\n        if (lk == 0)\n        {\n          var b0B = b0; var e0B = e0; var l1B = l1;\n          var b1B = b1; var e1B = e1; var l2B = l2;\n          var b2B = b2; var e2B = e2;\n          try\n          {\n            shiftT(82);             // 'at'\n            lookahead1W(72);        // S^WS | '(:' | 'position'\n            shiftT(215);            // 'position'\n            lookahead1W(267);       // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n            try_ExprSingle();\n            lk = -1;\n          }\n          catch (p1B)\n          {\n            lk = -2;\n          }\n          b0 = b0B; e0 = e0B; l1 = l1B; if (l1 == 0) {end = e0B;} else {\n          b1 = b1B; e1 = e1B; l2 = l2B; if (l2 == 0) {end = e1B;} else {\n          b2 = b2B; e2 = e2B; end = e2B; }}\n          memoize(14, e0, lk);\n        }\n      }\n      if (lk == -1)\n      {\n        shift(82);                  // 'at'\n        lookahead1W(72);            // S^WS | '(:' | 'position'\n        shift(215);                 // 'position'\n        lookahead1W(267);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        whitespace();\n        parse_ExprSingle();\n      }\n      break;\n    default:\n      shift(161);                   // 'insert'\n      lookahead1W(268);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      switch (l1)\n      {\n      case 168:                     // 'json'\n        lookahead2W(282);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk == 18088)              // 'json' '('\n      {\n        lk = memoized(15, e0);\n        if (lk == 0)\n        {\n          var b0B = b0; var e0B = e0; var l1B = l1;\n          var b1B = b1; var e1B = e1; var l2B = l2;\n          var b2B = b2; var e2B = e2;\n          try\n          {\n            shiftT(168);            // 'json'\n            lk = -1;\n          }\n          catch (p1B)\n          {\n            lk = -2;\n          }\n          b0 = b0B; e0 = e0B; l1 = l1B; if (l1 == 0) {end = e0B;} else {\n          b1 = b1B; e1 = e1B; l2 = l2B; if (l2 == 0) {end = e1B;} else {\n          b2 = b2B; e2 = e2B; end = e2B; }}\n          memoize(15, e0, lk);\n        }\n      }\n      if (lk == -1\n       || lk == 3240                // 'json' EQName^Token\n       || lk == 4264                // 'json' IntegerLiteral\n       || lk == 4776                // 'json' DecimalLiteral\n       || lk == 5288                // 'json' DoubleLiteral\n       || lk == 5800                // 'json' StringLiteral\n       || lk == 9896                // 'json' NCName^Token\n       || lk == 16040               // 'json' '$'\n       || lk == 16552               // 'json' '$$'\n       || lk == 17064               // 'json' '%'\n       || lk == 18600               // 'json' '(#'\n       || lk == 21160               // 'json' '+'\n       || lk == 22184               // 'json' '-'\n       || lk == 24232               // 'json' '/'\n       || lk == 24744               // 'json' '//'\n       || lk == 28328               // 'json' '<'\n       || lk == 28840               // 'json' '<!--'\n       || lk == 30888               // 'json' '<?'\n       || lk == 35496               // 'json' '['\n       || lk == 36520               // 'json' 'after'\n       || lk == 37544               // 'json' 'allowing'\n       || lk == 38056               // 'json' 'ancestor'\n       || lk == 38568               // 'json' 'ancestor-or-self'\n       || lk == 39080               // 'json' 'and'\n       || lk == 40104               // 'json' 'append'\n       || lk == 40616               // 'json' 'array'\n       || lk == 41128               // 'json' 'as'\n       || lk == 41640               // 'json' 'ascending'\n       || lk == 42152               // 'json' 'at'\n       || lk == 42664               // 'json' 'attribute'\n       || lk == 43176               // 'json' 'base-uri'\n       || lk == 43688               // 'json' 'before'\n       || lk == 44200               // 'json' 'boundary-space'\n       || lk == 44712               // 'json' 'break'\n       || lk == 45736               // 'json' 'case'\n       || lk == 46248               // 'json' 'cast'\n       || lk == 46760               // 'json' 'castable'\n       || lk == 47272               // 'json' 'catch'\n       || lk == 48296               // 'json' 'child'\n       || lk == 48808               // 'json' 'collation'\n       || lk == 49832               // 'json' 'comment'\n       || lk == 50344               // 'json' 'constraint'\n       || lk == 50856               // 'json' 'construction'\n       || lk == 52392               // 'json' 'context'\n       || lk == 52904               // 'json' 'continue'\n       || lk == 53416               // 'json' 'copy'\n       || lk == 53928               // 'json' 'copy-namespaces'\n       || lk == 54440               // 'json' 'count'\n       || lk == 54952               // 'json' 'decimal-format'\n       || lk == 55976               // 'json' 'declare'\n       || lk == 56488               // 'json' 'default'\n       || lk == 57000               // 'json' 'delete'\n       || lk == 57512               // 'json' 'descendant'\n       || lk == 58024               // 'json' 'descendant-or-self'\n       || lk == 58536               // 'json' 'descending'\n       || lk == 61096               // 'json' 'div'\n       || lk == 61608               // 'json' 'document'\n       || lk == 62120               // 'json' 'document-node'\n       || lk == 62632               // 'json' 'element'\n       || lk == 63144               // 'json' 'else'\n       || lk == 63656               // 'json' 'empty'\n       || lk == 64168               // 'json' 'empty-sequence'\n       || lk == 64680               // 'json' 'encoding'\n       || lk == 65192               // 'json' 'end'\n       || lk == 66216               // 'json' 'eq'\n       || lk == 66728               // 'json' 'every'\n       || lk == 67752               // 'json' 'except'\n       || lk == 68264               // 'json' 'exit'\n       || lk == 68776               // 'json' 'external'\n       || lk == 69288               // 'json' 'false'\n       || lk == 69800               // 'json' 'first'\n       || lk == 70312               // 'json' 'following'\n       || lk == 70824               // 'json' 'following-sibling'\n       || lk == 71336               // 'json' 'for'\n       || lk == 72872               // 'json' 'from'\n       || lk == 73384               // 'json' 'ft-option'\n       || lk == 75432               // 'json' 'function'\n       || lk == 75944               // 'json' 'ge'\n       || lk == 76968               // 'json' 'group'\n       || lk == 77992               // 'json' 'gt'\n       || lk == 78504               // 'json' 'idiv'\n       || lk == 79016               // 'json' 'if'\n       || lk == 79528               // 'json' 'import'\n       || lk == 80040               // 'json' 'in'\n       || lk == 80552               // 'json' 'index'\n       || lk == 82600               // 'json' 'insert'\n       || lk == 83112               // 'json' 'instance'\n       || lk == 83624               // 'json' 'integrity'\n       || lk == 84136               // 'json' 'intersect'\n       || lk == 84648               // 'json' 'into'\n       || lk == 85160               // 'json' 'is'\n       || lk == 85672               // 'json' 'item'\n       || lk == 86184               // 'json' 'json'\n       || lk == 86696               // 'json' 'json-item'\n       || lk == 87208               // 'json' 'jsoniq'\n       || lk == 88744               // 'json' 'last'\n       || lk == 89256               // 'json' 'lax'\n       || lk == 89768               // 'json' 'le'\n       || lk == 90792               // 'json' 'let'\n       || lk == 91816               // 'json' 'loop'\n       || lk == 92840               // 'json' 'lt'\n       || lk == 93864               // 'json' 'mod'\n       || lk == 94376               // 'json' 'modify'\n       || lk == 94888               // 'json' 'module'\n       || lk == 95912               // 'json' 'namespace'\n       || lk == 96424               // 'json' 'namespace-node'\n       || lk == 96936               // 'json' 'ne'\n       || lk == 99496               // 'json' 'node'\n       || lk == 100008              // 'json' 'nodes'\n       || lk == 100520              // 'json' 'not'\n       || lk == 101032              // 'json' 'null'\n       || lk == 101544              // 'json' 'object'\n       || lk == 103592              // 'json' 'only'\n       || lk == 104104              // 'json' 'option'\n       || lk == 104616              // 'json' 'or'\n       || lk == 105128              // 'json' 'order'\n       || lk == 105640              // 'json' 'ordered'\n       || lk == 106152              // 'json' 'ordering'\n       || lk == 107688              // 'json' 'parent'\n       || lk == 110760              // 'json' 'preceding'\n       || lk == 111272              // 'json' 'preceding-sibling'\n       || lk == 112808              // 'json' 'processing-instruction'\n       || lk == 113832              // 'json' 'rename'\n       || lk == 114344              // 'json' 'replace'\n       || lk == 114856              // 'json' 'return'\n       || lk == 115368              // 'json' 'returning'\n       || lk == 115880              // 'json' 'revalidation'\n       || lk == 116904              // 'json' 'satisfies'\n       || lk == 117416              // 'json' 'schema'\n       || lk == 117928              // 'json' 'schema-attribute'\n       || lk == 118440              // 'json' 'schema-element'\n       || lk == 118952              // 'json' 'score'\n       || lk == 119464              // 'json' 'select'\n       || lk == 119976              // 'json' 'self'\n       || lk == 122536              // 'json' 'sliding'\n       || lk == 123048              // 'json' 'some'\n       || lk == 123560              // 'json' 'stable'\n       || lk == 124072              // 'json' 'start'\n       || lk == 125608              // 'json' 'strict'\n       || lk == 126632              // 'json' 'structured-item'\n       || lk == 127144              // 'json' 'switch'\n       || lk == 127656              // 'json' 'text'\n       || lk == 129704              // 'json' 'to'\n       || lk == 130216              // 'json' 'treat'\n       || lk == 130728              // 'json' 'true'\n       || lk == 131240              // 'json' 'try'\n       || lk == 131752              // 'json' 'tumbling'\n       || lk == 132264              // 'json' 'type'\n       || lk == 132776              // 'json' 'typeswitch'\n       || lk == 133288              // 'json' 'union'\n       || lk == 134312              // 'json' 'unordered'\n       || lk == 134824              // 'json' 'updating'\n       || lk == 136360              // 'json' 'validate'\n       || lk == 136872              // 'json' 'value'\n       || lk == 137384              // 'json' 'variable'\n       || lk == 137896              // 'json' 'version'\n       || lk == 139432              // 'json' 'where'\n       || lk == 139944              // 'json' 'while'\n       || lk == 141480              // 'json' 'with'\n       || lk == 144040              // 'json' '{'\n       || lk == 145064)             // 'json' '{|'\n      {\n        shift(168);                 // 'json'\n      }\n      lookahead1W(268);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_PairConstructorList();\n      shift(165);                   // 'into'\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_ExprSingle();\n    }\n    eventHandler.endNonterminal(\"JSONInsertExpr\", e0);\n  }\n\n  function try_JSONInsertExpr()\n  {\n    switch (l1)\n    {\n    case 161:                       // 'insert'\n      lookahead2W(268);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk != 9889)                 // 'insert' NCName^Token\n    {\n      lk = memoized(12, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          shiftT(161);              // 'insert'\n          lookahead1W(267);         // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n          switch (l1)\n          {\n          case 168:                 // 'json'\n            lookahead2W(269);       // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n            break;\n          default:\n            lk = l1;\n          }\n          if (lk == 18088)          // 'json' '('\n          {\n            lk = memoized(13, e0);\n            if (lk == 0)\n            {\n              var b0B = b0; var e0B = e0; var l1B = l1;\n              var b1B = b1; var e1B = e1; var l2B = l2;\n              var b2B = b2; var e2B = e2;\n              try\n              {\n                shiftT(168);        // 'json'\n                memoize(13, e0B, -1);\n              }\n              catch (p1B)\n              {\n                b0 = b0B; e0 = e0B; l1 = l1B; if (l1 == 0) {end = e0B;} else {\n                b1 = b1B; e1 = e1B; l2 = l2B; if (l2 == 0) {end = e1B;} else {\n                b2 = b2B; e2 = e2B; end = e2B; }}\n                memoize(13, e0B, -2);\n              }\n              lk = -2;\n            }\n          }\n          if (lk == -1\n           || lk == 3240            // 'json' EQName^Token\n           || lk == 4264            // 'json' IntegerLiteral\n           || lk == 4776            // 'json' DecimalLiteral\n           || lk == 5288            // 'json' DoubleLiteral\n           || lk == 5800            // 'json' StringLiteral\n           || lk == 16040           // 'json' '$'\n           || lk == 16552           // 'json' '$$'\n           || lk == 17064           // 'json' '%'\n           || lk == 18600           // 'json' '(#'\n           || lk == 21160           // 'json' '+'\n           || lk == 22184           // 'json' '-'\n           || lk == 24232           // 'json' '/'\n           || lk == 24744           // 'json' '//'\n           || lk == 28328           // 'json' '<'\n           || lk == 28840           // 'json' '<!--'\n           || lk == 30888           // 'json' '<?'\n           || lk == 35496           // 'json' '['\n           || lk == 36520           // 'json' 'after'\n           || lk == 37544           // 'json' 'allowing'\n           || lk == 38056           // 'json' 'ancestor'\n           || lk == 38568           // 'json' 'ancestor-or-self'\n           || lk == 39080           // 'json' 'and'\n           || lk == 40104           // 'json' 'append'\n           || lk == 40616           // 'json' 'array'\n           || lk == 41128           // 'json' 'as'\n           || lk == 41640           // 'json' 'ascending'\n           || lk == 42152           // 'json' 'at'\n           || lk == 42664           // 'json' 'attribute'\n           || lk == 43176           // 'json' 'base-uri'\n           || lk == 43688           // 'json' 'before'\n           || lk == 44200           // 'json' 'boundary-space'\n           || lk == 44712           // 'json' 'break'\n           || lk == 45736           // 'json' 'case'\n           || lk == 46248           // 'json' 'cast'\n           || lk == 46760           // 'json' 'castable'\n           || lk == 47272           // 'json' 'catch'\n           || lk == 48296           // 'json' 'child'\n           || lk == 48808           // 'json' 'collation'\n           || lk == 49832           // 'json' 'comment'\n           || lk == 50344           // 'json' 'constraint'\n           || lk == 50856           // 'json' 'construction'\n           || lk == 52392           // 'json' 'context'\n           || lk == 52904           // 'json' 'continue'\n           || lk == 53416           // 'json' 'copy'\n           || lk == 53928           // 'json' 'copy-namespaces'\n           || lk == 54440           // 'json' 'count'\n           || lk == 54952           // 'json' 'decimal-format'\n           || lk == 55976           // 'json' 'declare'\n           || lk == 56488           // 'json' 'default'\n           || lk == 57000           // 'json' 'delete'\n           || lk == 57512           // 'json' 'descendant'\n           || lk == 58024           // 'json' 'descendant-or-self'\n           || lk == 58536           // 'json' 'descending'\n           || lk == 61096           // 'json' 'div'\n           || lk == 61608           // 'json' 'document'\n           || lk == 62120           // 'json' 'document-node'\n           || lk == 62632           // 'json' 'element'\n           || lk == 63144           // 'json' 'else'\n           || lk == 63656           // 'json' 'empty'\n           || lk == 64168           // 'json' 'empty-sequence'\n           || lk == 64680           // 'json' 'encoding'\n           || lk == 65192           // 'json' 'end'\n           || lk == 66216           // 'json' 'eq'\n           || lk == 66728           // 'json' 'every'\n           || lk == 67752           // 'json' 'except'\n           || lk == 68264           // 'json' 'exit'\n           || lk == 68776           // 'json' 'external'\n           || lk == 69288           // 'json' 'false'\n           || lk == 69800           // 'json' 'first'\n           || lk == 70312           // 'json' 'following'\n           || lk == 70824           // 'json' 'following-sibling'\n           || lk == 71336           // 'json' 'for'\n           || lk == 72872           // 'json' 'from'\n           || lk == 73384           // 'json' 'ft-option'\n           || lk == 75432           // 'json' 'function'\n           || lk == 75944           // 'json' 'ge'\n           || lk == 76968           // 'json' 'group'\n           || lk == 77992           // 'json' 'gt'\n           || lk == 78504           // 'json' 'idiv'\n           || lk == 79016           // 'json' 'if'\n           || lk == 79528           // 'json' 'import'\n           || lk == 80040           // 'json' 'in'\n           || lk == 80552           // 'json' 'index'\n           || lk == 82600           // 'json' 'insert'\n           || lk == 83112           // 'json' 'instance'\n           || lk == 83624           // 'json' 'integrity'\n           || lk == 84136           // 'json' 'intersect'\n           || lk == 84648           // 'json' 'into'\n           || lk == 85160           // 'json' 'is'\n           || lk == 85672           // 'json' 'item'\n           || lk == 86184           // 'json' 'json'\n           || lk == 86696           // 'json' 'json-item'\n           || lk == 87208           // 'json' 'jsoniq'\n           || lk == 88744           // 'json' 'last'\n           || lk == 89256           // 'json' 'lax'\n           || lk == 89768           // 'json' 'le'\n           || lk == 90792           // 'json' 'let'\n           || lk == 91816           // 'json' 'loop'\n           || lk == 92840           // 'json' 'lt'\n           || lk == 93864           // 'json' 'mod'\n           || lk == 94376           // 'json' 'modify'\n           || lk == 94888           // 'json' 'module'\n           || lk == 95912           // 'json' 'namespace'\n           || lk == 96424           // 'json' 'namespace-node'\n           || lk == 96936           // 'json' 'ne'\n           || lk == 99496           // 'json' 'node'\n           || lk == 100008          // 'json' 'nodes'\n           || lk == 100520          // 'json' 'not'\n           || lk == 101032          // 'json' 'null'\n           || lk == 101544          // 'json' 'object'\n           || lk == 103592          // 'json' 'only'\n           || lk == 104104          // 'json' 'option'\n           || lk == 104616          // 'json' 'or'\n           || lk == 105128          // 'json' 'order'\n           || lk == 105640          // 'json' 'ordered'\n           || lk == 106152          // 'json' 'ordering'\n           || lk == 107688          // 'json' 'parent'\n           || lk == 110760          // 'json' 'preceding'\n           || lk == 111272          // 'json' 'preceding-sibling'\n           || lk == 112808          // 'json' 'processing-instruction'\n           || lk == 113832          // 'json' 'rename'\n           || lk == 114344          // 'json' 'replace'\n           || lk == 114856          // 'json' 'return'\n           || lk == 115368          // 'json' 'returning'\n           || lk == 115880          // 'json' 'revalidation'\n           || lk == 116904          // 'json' 'satisfies'\n           || lk == 117416          // 'json' 'schema'\n           || lk == 117928          // 'json' 'schema-attribute'\n           || lk == 118440          // 'json' 'schema-element'\n           || lk == 118952          // 'json' 'score'\n           || lk == 119464          // 'json' 'select'\n           || lk == 119976          // 'json' 'self'\n           || lk == 122536          // 'json' 'sliding'\n           || lk == 123048          // 'json' 'some'\n           || lk == 123560          // 'json' 'stable'\n           || lk == 124072          // 'json' 'start'\n           || lk == 125608          // 'json' 'strict'\n           || lk == 126632          // 'json' 'structured-item'\n           || lk == 127144          // 'json' 'switch'\n           || lk == 127656          // 'json' 'text'\n           || lk == 129704          // 'json' 'to'\n           || lk == 130216          // 'json' 'treat'\n           || lk == 130728          // 'json' 'true'\n           || lk == 131240          // 'json' 'try'\n           || lk == 131752          // 'json' 'tumbling'\n           || lk == 132264          // 'json' 'type'\n           || lk == 132776          // 'json' 'typeswitch'\n           || lk == 133288          // 'json' 'union'\n           || lk == 134312          // 'json' 'unordered'\n           || lk == 134824          // 'json' 'updating'\n           || lk == 136360          // 'json' 'validate'\n           || lk == 136872          // 'json' 'value'\n           || lk == 137384          // 'json' 'variable'\n           || lk == 137896          // 'json' 'version'\n           || lk == 139432          // 'json' 'where'\n           || lk == 139944          // 'json' 'while'\n           || lk == 141480          // 'json' 'with'\n           || lk == 144040          // 'json' '{'\n           || lk == 145064)         // 'json' '{|'\n          {\n            shiftT(168);            // 'json'\n          }\n          lookahead1W(267);         // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n          try_ExprSingle();\n          shiftT(165);              // 'into'\n          lookahead1W(267);         // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n          try_ExprSingle();\n          switch (l1)\n          {\n          case 82:                  // 'at'\n            lookahead2W(72);        // S^WS | '(:' | 'position'\n            break;\n          default:\n            lk = l1;\n          }\n          if (lk == 110162)         // 'at' 'position'\n          {\n            lk = memoized(14, e0);\n            if (lk == 0)\n            {\n              var b0B = b0; var e0B = e0; var l1B = l1;\n              var b1B = b1; var e1B = e1; var l2B = l2;\n              var b2B = b2; var e2B = e2;\n              try\n              {\n                shiftT(82);         // 'at'\n                lookahead1W(72);    // S^WS | '(:' | 'position'\n                shiftT(215);        // 'position'\n                lookahead1W(267);   // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n                try_ExprSingle();\n                memoize(14, e0B, -1);\n              }\n              catch (p1B)\n              {\n                b0 = b0B; e0 = e0B; l1 = l1B; if (l1 == 0) {end = e0B;} else {\n                b1 = b1B; e1 = e1B; l2 = l2B; if (l2 == 0) {end = e1B;} else {\n                b2 = b2B; e2 = e2B; end = e2B; }}\n                memoize(14, e0B, -2);\n              }\n              lk = -2;\n            }\n          }\n          if (lk == -1)\n          {\n            shiftT(82);             // 'at'\n            lookahead1W(72);        // S^WS | '(:' | 'position'\n            shiftT(215);            // 'position'\n            lookahead1W(267);       // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n            try_ExprSingle();\n          }\n          memoize(12, e0A, -1);\n          lk = -3;\n        }\n        catch (p1A)\n        {\n          lk = -2;\n          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n          b2 = b2A; e2 = e2A; end = e2A; }}\n          memoize(12, e0A, -2);\n        }\n      }\n    }\n    switch (lk)\n    {\n    case -1:\n      shiftT(161);                  // 'insert'\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      switch (l1)\n      {\n      case 168:                     // 'json'\n        lookahead2W(269);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk == 18088)              // 'json' '('\n      {\n        lk = memoized(13, e0);\n        if (lk == 0)\n        {\n          var b0B = b0; var e0B = e0; var l1B = l1;\n          var b1B = b1; var e1B = e1; var l2B = l2;\n          var b2B = b2; var e2B = e2;\n          try\n          {\n            shiftT(168);            // 'json'\n            memoize(13, e0B, -1);\n          }\n          catch (p1B)\n          {\n            b0 = b0B; e0 = e0B; l1 = l1B; if (l1 == 0) {end = e0B;} else {\n            b1 = b1B; e1 = e1B; l2 = l2B; if (l2 == 0) {end = e1B;} else {\n            b2 = b2B; e2 = e2B; end = e2B; }}\n            memoize(13, e0B, -2);\n          }\n          lk = -2;\n        }\n      }\n      if (lk == -1\n       || lk == 3240                // 'json' EQName^Token\n       || lk == 4264                // 'json' IntegerLiteral\n       || lk == 4776                // 'json' DecimalLiteral\n       || lk == 5288                // 'json' DoubleLiteral\n       || lk == 5800                // 'json' StringLiteral\n       || lk == 16040               // 'json' '$'\n       || lk == 16552               // 'json' '$$'\n       || lk == 17064               // 'json' '%'\n       || lk == 18600               // 'json' '(#'\n       || lk == 21160               // 'json' '+'\n       || lk == 22184               // 'json' '-'\n       || lk == 24232               // 'json' '/'\n       || lk == 24744               // 'json' '//'\n       || lk == 28328               // 'json' '<'\n       || lk == 28840               // 'json' '<!--'\n       || lk == 30888               // 'json' '<?'\n       || lk == 35496               // 'json' '['\n       || lk == 36520               // 'json' 'after'\n       || lk == 37544               // 'json' 'allowing'\n       || lk == 38056               // 'json' 'ancestor'\n       || lk == 38568               // 'json' 'ancestor-or-self'\n       || lk == 39080               // 'json' 'and'\n       || lk == 40104               // 'json' 'append'\n       || lk == 40616               // 'json' 'array'\n       || lk == 41128               // 'json' 'as'\n       || lk == 41640               // 'json' 'ascending'\n       || lk == 42152               // 'json' 'at'\n       || lk == 42664               // 'json' 'attribute'\n       || lk == 43176               // 'json' 'base-uri'\n       || lk == 43688               // 'json' 'before'\n       || lk == 44200               // 'json' 'boundary-space'\n       || lk == 44712               // 'json' 'break'\n       || lk == 45736               // 'json' 'case'\n       || lk == 46248               // 'json' 'cast'\n       || lk == 46760               // 'json' 'castable'\n       || lk == 47272               // 'json' 'catch'\n       || lk == 48296               // 'json' 'child'\n       || lk == 48808               // 'json' 'collation'\n       || lk == 49832               // 'json' 'comment'\n       || lk == 50344               // 'json' 'constraint'\n       || lk == 50856               // 'json' 'construction'\n       || lk == 52392               // 'json' 'context'\n       || lk == 52904               // 'json' 'continue'\n       || lk == 53416               // 'json' 'copy'\n       || lk == 53928               // 'json' 'copy-namespaces'\n       || lk == 54440               // 'json' 'count'\n       || lk == 54952               // 'json' 'decimal-format'\n       || lk == 55976               // 'json' 'declare'\n       || lk == 56488               // 'json' 'default'\n       || lk == 57000               // 'json' 'delete'\n       || lk == 57512               // 'json' 'descendant'\n       || lk == 58024               // 'json' 'descendant-or-self'\n       || lk == 58536               // 'json' 'descending'\n       || lk == 61096               // 'json' 'div'\n       || lk == 61608               // 'json' 'document'\n       || lk == 62120               // 'json' 'document-node'\n       || lk == 62632               // 'json' 'element'\n       || lk == 63144               // 'json' 'else'\n       || lk == 63656               // 'json' 'empty'\n       || lk == 64168               // 'json' 'empty-sequence'\n       || lk == 64680               // 'json' 'encoding'\n       || lk == 65192               // 'json' 'end'\n       || lk == 66216               // 'json' 'eq'\n       || lk == 66728               // 'json' 'every'\n       || lk == 67752               // 'json' 'except'\n       || lk == 68264               // 'json' 'exit'\n       || lk == 68776               // 'json' 'external'\n       || lk == 69288               // 'json' 'false'\n       || lk == 69800               // 'json' 'first'\n       || lk == 70312               // 'json' 'following'\n       || lk == 70824               // 'json' 'following-sibling'\n       || lk == 71336               // 'json' 'for'\n       || lk == 72872               // 'json' 'from'\n       || lk == 73384               // 'json' 'ft-option'\n       || lk == 75432               // 'json' 'function'\n       || lk == 75944               // 'json' 'ge'\n       || lk == 76968               // 'json' 'group'\n       || lk == 77992               // 'json' 'gt'\n       || lk == 78504               // 'json' 'idiv'\n       || lk == 79016               // 'json' 'if'\n       || lk == 79528               // 'json' 'import'\n       || lk == 80040               // 'json' 'in'\n       || lk == 80552               // 'json' 'index'\n       || lk == 82600               // 'json' 'insert'\n       || lk == 83112               // 'json' 'instance'\n       || lk == 83624               // 'json' 'integrity'\n       || lk == 84136               // 'json' 'intersect'\n       || lk == 84648               // 'json' 'into'\n       || lk == 85160               // 'json' 'is'\n       || lk == 85672               // 'json' 'item'\n       || lk == 86184               // 'json' 'json'\n       || lk == 86696               // 'json' 'json-item'\n       || lk == 87208               // 'json' 'jsoniq'\n       || lk == 88744               // 'json' 'last'\n       || lk == 89256               // 'json' 'lax'\n       || lk == 89768               // 'json' 'le'\n       || lk == 90792               // 'json' 'let'\n       || lk == 91816               // 'json' 'loop'\n       || lk == 92840               // 'json' 'lt'\n       || lk == 93864               // 'json' 'mod'\n       || lk == 94376               // 'json' 'modify'\n       || lk == 94888               // 'json' 'module'\n       || lk == 95912               // 'json' 'namespace'\n       || lk == 96424               // 'json' 'namespace-node'\n       || lk == 96936               // 'json' 'ne'\n       || lk == 99496               // 'json' 'node'\n       || lk == 100008              // 'json' 'nodes'\n       || lk == 100520              // 'json' 'not'\n       || lk == 101032              // 'json' 'null'\n       || lk == 101544              // 'json' 'object'\n       || lk == 103592              // 'json' 'only'\n       || lk == 104104              // 'json' 'option'\n       || lk == 104616              // 'json' 'or'\n       || lk == 105128              // 'json' 'order'\n       || lk == 105640              // 'json' 'ordered'\n       || lk == 106152              // 'json' 'ordering'\n       || lk == 107688              // 'json' 'parent'\n       || lk == 110760              // 'json' 'preceding'\n       || lk == 111272              // 'json' 'preceding-sibling'\n       || lk == 112808              // 'json' 'processing-instruction'\n       || lk == 113832              // 'json' 'rename'\n       || lk == 114344              // 'json' 'replace'\n       || lk == 114856              // 'json' 'return'\n       || lk == 115368              // 'json' 'returning'\n       || lk == 115880              // 'json' 'revalidation'\n       || lk == 116904              // 'json' 'satisfies'\n       || lk == 117416              // 'json' 'schema'\n       || lk == 117928              // 'json' 'schema-attribute'\n       || lk == 118440              // 'json' 'schema-element'\n       || lk == 118952              // 'json' 'score'\n       || lk == 119464              // 'json' 'select'\n       || lk == 119976              // 'json' 'self'\n       || lk == 122536              // 'json' 'sliding'\n       || lk == 123048              // 'json' 'some'\n       || lk == 123560              // 'json' 'stable'\n       || lk == 124072              // 'json' 'start'\n       || lk == 125608              // 'json' 'strict'\n       || lk == 126632              // 'json' 'structured-item'\n       || lk == 127144              // 'json' 'switch'\n       || lk == 127656              // 'json' 'text'\n       || lk == 129704              // 'json' 'to'\n       || lk == 130216              // 'json' 'treat'\n       || lk == 130728              // 'json' 'true'\n       || lk == 131240              // 'json' 'try'\n       || lk == 131752              // 'json' 'tumbling'\n       || lk == 132264              // 'json' 'type'\n       || lk == 132776              // 'json' 'typeswitch'\n       || lk == 133288              // 'json' 'union'\n       || lk == 134312              // 'json' 'unordered'\n       || lk == 134824              // 'json' 'updating'\n       || lk == 136360              // 'json' 'validate'\n       || lk == 136872              // 'json' 'value'\n       || lk == 137384              // 'json' 'variable'\n       || lk == 137896              // 'json' 'version'\n       || lk == 139432              // 'json' 'where'\n       || lk == 139944              // 'json' 'while'\n       || lk == 141480              // 'json' 'with'\n       || lk == 144040              // 'json' '{'\n       || lk == 145064)             // 'json' '{|'\n      {\n        shiftT(168);                // 'json'\n      }\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_ExprSingle();\n      shiftT(165);                  // 'into'\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_ExprSingle();\n      switch (l1)\n      {\n      case 82:                      // 'at'\n        lookahead2W(72);            // S^WS | '(:' | 'position'\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk == 110162)             // 'at' 'position'\n      {\n        lk = memoized(14, e0);\n        if (lk == 0)\n        {\n          var b0B = b0; var e0B = e0; var l1B = l1;\n          var b1B = b1; var e1B = e1; var l2B = l2;\n          var b2B = b2; var e2B = e2;\n          try\n          {\n            shiftT(82);             // 'at'\n            lookahead1W(72);        // S^WS | '(:' | 'position'\n            shiftT(215);            // 'position'\n            lookahead1W(267);       // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n            try_ExprSingle();\n            memoize(14, e0B, -1);\n          }\n          catch (p1B)\n          {\n            b0 = b0B; e0 = e0B; l1 = l1B; if (l1 == 0) {end = e0B;} else {\n            b1 = b1B; e1 = e1B; l2 = l2B; if (l2 == 0) {end = e1B;} else {\n            b2 = b2B; e2 = e2B; end = e2B; }}\n            memoize(14, e0B, -2);\n          }\n          lk = -2;\n        }\n      }\n      if (lk == -1)\n      {\n        shiftT(82);                 // 'at'\n        lookahead1W(72);            // S^WS | '(:' | 'position'\n        shiftT(215);                // 'position'\n        lookahead1W(267);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        try_ExprSingle();\n      }\n      break;\n    case -3:\n      break;\n    default:\n      shiftT(161);                  // 'insert'\n      lookahead1W(268);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      switch (l1)\n      {\n      case 168:                     // 'json'\n        lookahead2W(282);           // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk == 18088)              // 'json' '('\n      {\n        lk = memoized(15, e0);\n        if (lk == 0)\n        {\n          var b0B = b0; var e0B = e0; var l1B = l1;\n          var b1B = b1; var e1B = e1; var l2B = l2;\n          var b2B = b2; var e2B = e2;\n          try\n          {\n            shiftT(168);            // 'json'\n            memoize(15, e0B, -1);\n          }\n          catch (p1B)\n          {\n            b0 = b0B; e0 = e0B; l1 = l1B; if (l1 == 0) {end = e0B;} else {\n            b1 = b1B; e1 = e1B; l2 = l2B; if (l2 == 0) {end = e1B;} else {\n            b2 = b2B; e2 = e2B; end = e2B; }}\n            memoize(15, e0B, -2);\n          }\n          lk = -2;\n        }\n      }\n      if (lk == -1\n       || lk == 3240                // 'json' EQName^Token\n       || lk == 4264                // 'json' IntegerLiteral\n       || lk == 4776                // 'json' DecimalLiteral\n       || lk == 5288                // 'json' DoubleLiteral\n       || lk == 5800                // 'json' StringLiteral\n       || lk == 9896                // 'json' NCName^Token\n       || lk == 16040               // 'json' '$'\n       || lk == 16552               // 'json' '$$'\n       || lk == 17064               // 'json' '%'\n       || lk == 18600               // 'json' '(#'\n       || lk == 21160               // 'json' '+'\n       || lk == 22184               // 'json' '-'\n       || lk == 24232               // 'json' '/'\n       || lk == 24744               // 'json' '//'\n       || lk == 28328               // 'json' '<'\n       || lk == 28840               // 'json' '<!--'\n       || lk == 30888               // 'json' '<?'\n       || lk == 35496               // 'json' '['\n       || lk == 36520               // 'json' 'after'\n       || lk == 37544               // 'json' 'allowing'\n       || lk == 38056               // 'json' 'ancestor'\n       || lk == 38568               // 'json' 'ancestor-or-self'\n       || lk == 39080               // 'json' 'and'\n       || lk == 40104               // 'json' 'append'\n       || lk == 40616               // 'json' 'array'\n       || lk == 41128               // 'json' 'as'\n       || lk == 41640               // 'json' 'ascending'\n       || lk == 42152               // 'json' 'at'\n       || lk == 42664               // 'json' 'attribute'\n       || lk == 43176               // 'json' 'base-uri'\n       || lk == 43688               // 'json' 'before'\n       || lk == 44200               // 'json' 'boundary-space'\n       || lk == 44712               // 'json' 'break'\n       || lk == 45736               // 'json' 'case'\n       || lk == 46248               // 'json' 'cast'\n       || lk == 46760               // 'json' 'castable'\n       || lk == 47272               // 'json' 'catch'\n       || lk == 48296               // 'json' 'child'\n       || lk == 48808               // 'json' 'collation'\n       || lk == 49832               // 'json' 'comment'\n       || lk == 50344               // 'json' 'constraint'\n       || lk == 50856               // 'json' 'construction'\n       || lk == 52392               // 'json' 'context'\n       || lk == 52904               // 'json' 'continue'\n       || lk == 53416               // 'json' 'copy'\n       || lk == 53928               // 'json' 'copy-namespaces'\n       || lk == 54440               // 'json' 'count'\n       || lk == 54952               // 'json' 'decimal-format'\n       || lk == 55976               // 'json' 'declare'\n       || lk == 56488               // 'json' 'default'\n       || lk == 57000               // 'json' 'delete'\n       || lk == 57512               // 'json' 'descendant'\n       || lk == 58024               // 'json' 'descendant-or-self'\n       || lk == 58536               // 'json' 'descending'\n       || lk == 61096               // 'json' 'div'\n       || lk == 61608               // 'json' 'document'\n       || lk == 62120               // 'json' 'document-node'\n       || lk == 62632               // 'json' 'element'\n       || lk == 63144               // 'json' 'else'\n       || lk == 63656               // 'json' 'empty'\n       || lk == 64168               // 'json' 'empty-sequence'\n       || lk == 64680               // 'json' 'encoding'\n       || lk == 65192               // 'json' 'end'\n       || lk == 66216               // 'json' 'eq'\n       || lk == 66728               // 'json' 'every'\n       || lk == 67752               // 'json' 'except'\n       || lk == 68264               // 'json' 'exit'\n       || lk == 68776               // 'json' 'external'\n       || lk == 69288               // 'json' 'false'\n       || lk == 69800               // 'json' 'first'\n       || lk == 70312               // 'json' 'following'\n       || lk == 70824               // 'json' 'following-sibling'\n       || lk == 71336               // 'json' 'for'\n       || lk == 72872               // 'json' 'from'\n       || lk == 73384               // 'json' 'ft-option'\n       || lk == 75432               // 'json' 'function'\n       || lk == 75944               // 'json' 'ge'\n       || lk == 76968               // 'json' 'group'\n       || lk == 77992               // 'json' 'gt'\n       || lk == 78504               // 'json' 'idiv'\n       || lk == 79016               // 'json' 'if'\n       || lk == 79528               // 'json' 'import'\n       || lk == 80040               // 'json' 'in'\n       || lk == 80552               // 'json' 'index'\n       || lk == 82600               // 'json' 'insert'\n       || lk == 83112               // 'json' 'instance'\n       || lk == 83624               // 'json' 'integrity'\n       || lk == 84136               // 'json' 'intersect'\n       || lk == 84648               // 'json' 'into'\n       || lk == 85160               // 'json' 'is'\n       || lk == 85672               // 'json' 'item'\n       || lk == 86184               // 'json' 'json'\n       || lk == 86696               // 'json' 'json-item'\n       || lk == 87208               // 'json' 'jsoniq'\n       || lk == 88744               // 'json' 'last'\n       || lk == 89256               // 'json' 'lax'\n       || lk == 89768               // 'json' 'le'\n       || lk == 90792               // 'json' 'let'\n       || lk == 91816               // 'json' 'loop'\n       || lk == 92840               // 'json' 'lt'\n       || lk == 93864               // 'json' 'mod'\n       || lk == 94376               // 'json' 'modify'\n       || lk == 94888               // 'json' 'module'\n       || lk == 95912               // 'json' 'namespace'\n       || lk == 96424               // 'json' 'namespace-node'\n       || lk == 96936               // 'json' 'ne'\n       || lk == 99496               // 'json' 'node'\n       || lk == 100008              // 'json' 'nodes'\n       || lk == 100520              // 'json' 'not'\n       || lk == 101032              // 'json' 'null'\n       || lk == 101544              // 'json' 'object'\n       || lk == 103592              // 'json' 'only'\n       || lk == 104104              // 'json' 'option'\n       || lk == 104616              // 'json' 'or'\n       || lk == 105128              // 'json' 'order'\n       || lk == 105640              // 'json' 'ordered'\n       || lk == 106152              // 'json' 'ordering'\n       || lk == 107688              // 'json' 'parent'\n       || lk == 110760              // 'json' 'preceding'\n       || lk == 111272              // 'json' 'preceding-sibling'\n       || lk == 112808              // 'json' 'processing-instruction'\n       || lk == 113832              // 'json' 'rename'\n       || lk == 114344              // 'json' 'replace'\n       || lk == 114856              // 'json' 'return'\n       || lk == 115368              // 'json' 'returning'\n       || lk == 115880              // 'json' 'revalidation'\n       || lk == 116904              // 'json' 'satisfies'\n       || lk == 117416              // 'json' 'schema'\n       || lk == 117928              // 'json' 'schema-attribute'\n       || lk == 118440              // 'json' 'schema-element'\n       || lk == 118952              // 'json' 'score'\n       || lk == 119464              // 'json' 'select'\n       || lk == 119976              // 'json' 'self'\n       || lk == 122536              // 'json' 'sliding'\n       || lk == 123048              // 'json' 'some'\n       || lk == 123560              // 'json' 'stable'\n       || lk == 124072              // 'json' 'start'\n       || lk == 125608              // 'json' 'strict'\n       || lk == 126632              // 'json' 'structured-item'\n       || lk == 127144              // 'json' 'switch'\n       || lk == 127656              // 'json' 'text'\n       || lk == 129704              // 'json' 'to'\n       || lk == 130216              // 'json' 'treat'\n       || lk == 130728              // 'json' 'true'\n       || lk == 131240              // 'json' 'try'\n       || lk == 131752              // 'json' 'tumbling'\n       || lk == 132264              // 'json' 'type'\n       || lk == 132776              // 'json' 'typeswitch'\n       || lk == 133288              // 'json' 'union'\n       || lk == 134312              // 'json' 'unordered'\n       || lk == 134824              // 'json' 'updating'\n       || lk == 136360              // 'json' 'validate'\n       || lk == 136872              // 'json' 'value'\n       || lk == 137384              // 'json' 'variable'\n       || lk == 137896              // 'json' 'version'\n       || lk == 139432              // 'json' 'where'\n       || lk == 139944              // 'json' 'while'\n       || lk == 141480              // 'json' 'with'\n       || lk == 144040              // 'json' '{'\n       || lk == 145064)             // 'json' '{|'\n      {\n        shiftT(168);                // 'json'\n      }\n      lookahead1W(268);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_PairConstructorList();\n      shiftT(165);                  // 'into'\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_ExprSingle();\n    }\n  }\n\n  function parse_JSONRenameExpr()\n  {\n    eventHandler.startNonterminal(\"JSONRenameExpr\", e0);\n    shift(222);                     // 'rename'\n    lookahead1W(260);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    switch (l1)\n    {\n    case 168:                       // 'json'\n      lookahead2W(261);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 18088)                // 'json' '('\n    {\n      lk = memoized(16, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          shiftT(168);              // 'json'\n          lk = -1;\n        }\n        catch (p1A)\n        {\n          lk = -2;\n        }\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(16, e0, lk);\n      }\n    }\n    if (lk == -1\n     || lk == 3240                  // 'json' EQName^Token\n     || lk == 4264                  // 'json' IntegerLiteral\n     || lk == 4776                  // 'json' DecimalLiteral\n     || lk == 5288                  // 'json' DoubleLiteral\n     || lk == 5800                  // 'json' StringLiteral\n     || lk == 16040                 // 'json' '$'\n     || lk == 16552                 // 'json' '$$'\n     || lk == 17064                 // 'json' '%'\n     || lk == 28328                 // 'json' '<'\n     || lk == 28840                 // 'json' '<!--'\n     || lk == 30888                 // 'json' '<?'\n     || lk == 35496                 // 'json' '['\n     || lk == 36520                 // 'json' 'after'\n     || lk == 37544                 // 'json' 'allowing'\n     || lk == 38056                 // 'json' 'ancestor'\n     || lk == 38568                 // 'json' 'ancestor-or-self'\n     || lk == 39080                 // 'json' 'and'\n     || lk == 40104                 // 'json' 'append'\n     || lk == 40616                 // 'json' 'array'\n     || lk == 41128                 // 'json' 'as'\n     || lk == 41640                 // 'json' 'ascending'\n     || lk == 42152                 // 'json' 'at'\n     || lk == 42664                 // 'json' 'attribute'\n     || lk == 43176                 // 'json' 'base-uri'\n     || lk == 43688                 // 'json' 'before'\n     || lk == 44200                 // 'json' 'boundary-space'\n     || lk == 44712                 // 'json' 'break'\n     || lk == 45736                 // 'json' 'case'\n     || lk == 46248                 // 'json' 'cast'\n     || lk == 46760                 // 'json' 'castable'\n     || lk == 47272                 // 'json' 'catch'\n     || lk == 48296                 // 'json' 'child'\n     || lk == 48808                 // 'json' 'collation'\n     || lk == 49832                 // 'json' 'comment'\n     || lk == 50344                 // 'json' 'constraint'\n     || lk == 50856                 // 'json' 'construction'\n     || lk == 52392                 // 'json' 'context'\n     || lk == 52904                 // 'json' 'continue'\n     || lk == 53416                 // 'json' 'copy'\n     || lk == 53928                 // 'json' 'copy-namespaces'\n     || lk == 54440                 // 'json' 'count'\n     || lk == 54952                 // 'json' 'decimal-format'\n     || lk == 55976                 // 'json' 'declare'\n     || lk == 56488                 // 'json' 'default'\n     || lk == 57000                 // 'json' 'delete'\n     || lk == 57512                 // 'json' 'descendant'\n     || lk == 58024                 // 'json' 'descendant-or-self'\n     || lk == 58536                 // 'json' 'descending'\n     || lk == 61096                 // 'json' 'div'\n     || lk == 61608                 // 'json' 'document'\n     || lk == 62120                 // 'json' 'document-node'\n     || lk == 62632                 // 'json' 'element'\n     || lk == 63144                 // 'json' 'else'\n     || lk == 63656                 // 'json' 'empty'\n     || lk == 64168                 // 'json' 'empty-sequence'\n     || lk == 64680                 // 'json' 'encoding'\n     || lk == 65192                 // 'json' 'end'\n     || lk == 66216                 // 'json' 'eq'\n     || lk == 66728                 // 'json' 'every'\n     || lk == 67752                 // 'json' 'except'\n     || lk == 68264                 // 'json' 'exit'\n     || lk == 68776                 // 'json' 'external'\n     || lk == 69288                 // 'json' 'false'\n     || lk == 69800                 // 'json' 'first'\n     || lk == 70312                 // 'json' 'following'\n     || lk == 70824                 // 'json' 'following-sibling'\n     || lk == 71336                 // 'json' 'for'\n     || lk == 72872                 // 'json' 'from'\n     || lk == 73384                 // 'json' 'ft-option'\n     || lk == 75432                 // 'json' 'function'\n     || lk == 75944                 // 'json' 'ge'\n     || lk == 76968                 // 'json' 'group'\n     || lk == 77992                 // 'json' 'gt'\n     || lk == 78504                 // 'json' 'idiv'\n     || lk == 79016                 // 'json' 'if'\n     || lk == 79528                 // 'json' 'import'\n     || lk == 80040                 // 'json' 'in'\n     || lk == 80552                 // 'json' 'index'\n     || lk == 82600                 // 'json' 'insert'\n     || lk == 83112                 // 'json' 'instance'\n     || lk == 83624                 // 'json' 'integrity'\n     || lk == 84136                 // 'json' 'intersect'\n     || lk == 84648                 // 'json' 'into'\n     || lk == 85160                 // 'json' 'is'\n     || lk == 85672                 // 'json' 'item'\n     || lk == 86184                 // 'json' 'json'\n     || lk == 86696                 // 'json' 'json-item'\n     || lk == 87208                 // 'json' 'jsoniq'\n     || lk == 88744                 // 'json' 'last'\n     || lk == 89256                 // 'json' 'lax'\n     || lk == 89768                 // 'json' 'le'\n     || lk == 90792                 // 'json' 'let'\n     || lk == 91816                 // 'json' 'loop'\n     || lk == 92840                 // 'json' 'lt'\n     || lk == 93864                 // 'json' 'mod'\n     || lk == 94376                 // 'json' 'modify'\n     || lk == 94888                 // 'json' 'module'\n     || lk == 95912                 // 'json' 'namespace'\n     || lk == 96424                 // 'json' 'namespace-node'\n     || lk == 96936                 // 'json' 'ne'\n     || lk == 99496                 // 'json' 'node'\n     || lk == 100008                // 'json' 'nodes'\n     || lk == 101032                // 'json' 'null'\n     || lk == 101544                // 'json' 'object'\n     || lk == 103592                // 'json' 'only'\n     || lk == 104104                // 'json' 'option'\n     || lk == 104616                // 'json' 'or'\n     || lk == 105128                // 'json' 'order'\n     || lk == 105640                // 'json' 'ordered'\n     || lk == 106152                // 'json' 'ordering'\n     || lk == 107688                // 'json' 'parent'\n     || lk == 110760                // 'json' 'preceding'\n     || lk == 111272                // 'json' 'preceding-sibling'\n     || lk == 112808                // 'json' 'processing-instruction'\n     || lk == 113832                // 'json' 'rename'\n     || lk == 114344                // 'json' 'replace'\n     || lk == 114856                // 'json' 'return'\n     || lk == 115368                // 'json' 'returning'\n     || lk == 115880                // 'json' 'revalidation'\n     || lk == 116904                // 'json' 'satisfies'\n     || lk == 117416                // 'json' 'schema'\n     || lk == 117928                // 'json' 'schema-attribute'\n     || lk == 118440                // 'json' 'schema-element'\n     || lk == 118952                // 'json' 'score'\n     || lk == 119464                // 'json' 'select'\n     || lk == 119976                // 'json' 'self'\n     || lk == 122536                // 'json' 'sliding'\n     || lk == 123048                // 'json' 'some'\n     || lk == 123560                // 'json' 'stable'\n     || lk == 124072                // 'json' 'start'\n     || lk == 125608                // 'json' 'strict'\n     || lk == 126632                // 'json' 'structured-item'\n     || lk == 127144                // 'json' 'switch'\n     || lk == 127656                // 'json' 'text'\n     || lk == 129704                // 'json' 'to'\n     || lk == 130216                // 'json' 'treat'\n     || lk == 130728                // 'json' 'true'\n     || lk == 131240                // 'json' 'try'\n     || lk == 131752                // 'json' 'tumbling'\n     || lk == 132264                // 'json' 'type'\n     || lk == 132776                // 'json' 'typeswitch'\n     || lk == 133288                // 'json' 'union'\n     || lk == 134312                // 'json' 'unordered'\n     || lk == 134824                // 'json' 'updating'\n     || lk == 136360                // 'json' 'validate'\n     || lk == 136872                // 'json' 'value'\n     || lk == 137384                // 'json' 'variable'\n     || lk == 137896                // 'json' 'version'\n     || lk == 139432                // 'json' 'where'\n     || lk == 139944                // 'json' 'while'\n     || lk == 141480                // 'json' 'with'\n     || lk == 144040                // 'json' '{'\n     || lk == 145064)               // 'json' '{|'\n    {\n      shift(168);                   // 'json'\n    }\n    lookahead1W(260);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_PostfixExpr();\n    shift(80);                      // 'as'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"JSONRenameExpr\", e0);\n  }\n\n  function try_JSONRenameExpr()\n  {\n    shiftT(222);                    // 'rename'\n    lookahead1W(260);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    switch (l1)\n    {\n    case 168:                       // 'json'\n      lookahead2W(261);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 18088)                // 'json' '('\n    {\n      lk = memoized(16, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          shiftT(168);              // 'json'\n          memoize(16, e0A, -1);\n        }\n        catch (p1A)\n        {\n          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n          b2 = b2A; e2 = e2A; end = e2A; }}\n          memoize(16, e0A, -2);\n        }\n        lk = -2;\n      }\n    }\n    if (lk == -1\n     || lk == 3240                  // 'json' EQName^Token\n     || lk == 4264                  // 'json' IntegerLiteral\n     || lk == 4776                  // 'json' DecimalLiteral\n     || lk == 5288                  // 'json' DoubleLiteral\n     || lk == 5800                  // 'json' StringLiteral\n     || lk == 16040                 // 'json' '$'\n     || lk == 16552                 // 'json' '$$'\n     || lk == 17064                 // 'json' '%'\n     || lk == 28328                 // 'json' '<'\n     || lk == 28840                 // 'json' '<!--'\n     || lk == 30888                 // 'json' '<?'\n     || lk == 35496                 // 'json' '['\n     || lk == 36520                 // 'json' 'after'\n     || lk == 37544                 // 'json' 'allowing'\n     || lk == 38056                 // 'json' 'ancestor'\n     || lk == 38568                 // 'json' 'ancestor-or-self'\n     || lk == 39080                 // 'json' 'and'\n     || lk == 40104                 // 'json' 'append'\n     || lk == 40616                 // 'json' 'array'\n     || lk == 41128                 // 'json' 'as'\n     || lk == 41640                 // 'json' 'ascending'\n     || lk == 42152                 // 'json' 'at'\n     || lk == 42664                 // 'json' 'attribute'\n     || lk == 43176                 // 'json' 'base-uri'\n     || lk == 43688                 // 'json' 'before'\n     || lk == 44200                 // 'json' 'boundary-space'\n     || lk == 44712                 // 'json' 'break'\n     || lk == 45736                 // 'json' 'case'\n     || lk == 46248                 // 'json' 'cast'\n     || lk == 46760                 // 'json' 'castable'\n     || lk == 47272                 // 'json' 'catch'\n     || lk == 48296                 // 'json' 'child'\n     || lk == 48808                 // 'json' 'collation'\n     || lk == 49832                 // 'json' 'comment'\n     || lk == 50344                 // 'json' 'constraint'\n     || lk == 50856                 // 'json' 'construction'\n     || lk == 52392                 // 'json' 'context'\n     || lk == 52904                 // 'json' 'continue'\n     || lk == 53416                 // 'json' 'copy'\n     || lk == 53928                 // 'json' 'copy-namespaces'\n     || lk == 54440                 // 'json' 'count'\n     || lk == 54952                 // 'json' 'decimal-format'\n     || lk == 55976                 // 'json' 'declare'\n     || lk == 56488                 // 'json' 'default'\n     || lk == 57000                 // 'json' 'delete'\n     || lk == 57512                 // 'json' 'descendant'\n     || lk == 58024                 // 'json' 'descendant-or-self'\n     || lk == 58536                 // 'json' 'descending'\n     || lk == 61096                 // 'json' 'div'\n     || lk == 61608                 // 'json' 'document'\n     || lk == 62120                 // 'json' 'document-node'\n     || lk == 62632                 // 'json' 'element'\n     || lk == 63144                 // 'json' 'else'\n     || lk == 63656                 // 'json' 'empty'\n     || lk == 64168                 // 'json' 'empty-sequence'\n     || lk == 64680                 // 'json' 'encoding'\n     || lk == 65192                 // 'json' 'end'\n     || lk == 66216                 // 'json' 'eq'\n     || lk == 66728                 // 'json' 'every'\n     || lk == 67752                 // 'json' 'except'\n     || lk == 68264                 // 'json' 'exit'\n     || lk == 68776                 // 'json' 'external'\n     || lk == 69288                 // 'json' 'false'\n     || lk == 69800                 // 'json' 'first'\n     || lk == 70312                 // 'json' 'following'\n     || lk == 70824                 // 'json' 'following-sibling'\n     || lk == 71336                 // 'json' 'for'\n     || lk == 72872                 // 'json' 'from'\n     || lk == 73384                 // 'json' 'ft-option'\n     || lk == 75432                 // 'json' 'function'\n     || lk == 75944                 // 'json' 'ge'\n     || lk == 76968                 // 'json' 'group'\n     || lk == 77992                 // 'json' 'gt'\n     || lk == 78504                 // 'json' 'idiv'\n     || lk == 79016                 // 'json' 'if'\n     || lk == 79528                 // 'json' 'import'\n     || lk == 80040                 // 'json' 'in'\n     || lk == 80552                 // 'json' 'index'\n     || lk == 82600                 // 'json' 'insert'\n     || lk == 83112                 // 'json' 'instance'\n     || lk == 83624                 // 'json' 'integrity'\n     || lk == 84136                 // 'json' 'intersect'\n     || lk == 84648                 // 'json' 'into'\n     || lk == 85160                 // 'json' 'is'\n     || lk == 85672                 // 'json' 'item'\n     || lk == 86184                 // 'json' 'json'\n     || lk == 86696                 // 'json' 'json-item'\n     || lk == 87208                 // 'json' 'jsoniq'\n     || lk == 88744                 // 'json' 'last'\n     || lk == 89256                 // 'json' 'lax'\n     || lk == 89768                 // 'json' 'le'\n     || lk == 90792                 // 'json' 'let'\n     || lk == 91816                 // 'json' 'loop'\n     || lk == 92840                 // 'json' 'lt'\n     || lk == 93864                 // 'json' 'mod'\n     || lk == 94376                 // 'json' 'modify'\n     || lk == 94888                 // 'json' 'module'\n     || lk == 95912                 // 'json' 'namespace'\n     || lk == 96424                 // 'json' 'namespace-node'\n     || lk == 96936                 // 'json' 'ne'\n     || lk == 99496                 // 'json' 'node'\n     || lk == 100008                // 'json' 'nodes'\n     || lk == 101032                // 'json' 'null'\n     || lk == 101544                // 'json' 'object'\n     || lk == 103592                // 'json' 'only'\n     || lk == 104104                // 'json' 'option'\n     || lk == 104616                // 'json' 'or'\n     || lk == 105128                // 'json' 'order'\n     || lk == 105640                // 'json' 'ordered'\n     || lk == 106152                // 'json' 'ordering'\n     || lk == 107688                // 'json' 'parent'\n     || lk == 110760                // 'json' 'preceding'\n     || lk == 111272                // 'json' 'preceding-sibling'\n     || lk == 112808                // 'json' 'processing-instruction'\n     || lk == 113832                // 'json' 'rename'\n     || lk == 114344                // 'json' 'replace'\n     || lk == 114856                // 'json' 'return'\n     || lk == 115368                // 'json' 'returning'\n     || lk == 115880                // 'json' 'revalidation'\n     || lk == 116904                // 'json' 'satisfies'\n     || lk == 117416                // 'json' 'schema'\n     || lk == 117928                // 'json' 'schema-attribute'\n     || lk == 118440                // 'json' 'schema-element'\n     || lk == 118952                // 'json' 'score'\n     || lk == 119464                // 'json' 'select'\n     || lk == 119976                // 'json' 'self'\n     || lk == 122536                // 'json' 'sliding'\n     || lk == 123048                // 'json' 'some'\n     || lk == 123560                // 'json' 'stable'\n     || lk == 124072                // 'json' 'start'\n     || lk == 125608                // 'json' 'strict'\n     || lk == 126632                // 'json' 'structured-item'\n     || lk == 127144                // 'json' 'switch'\n     || lk == 127656                // 'json' 'text'\n     || lk == 129704                // 'json' 'to'\n     || lk == 130216                // 'json' 'treat'\n     || lk == 130728                // 'json' 'true'\n     || lk == 131240                // 'json' 'try'\n     || lk == 131752                // 'json' 'tumbling'\n     || lk == 132264                // 'json' 'type'\n     || lk == 132776                // 'json' 'typeswitch'\n     || lk == 133288                // 'json' 'union'\n     || lk == 134312                // 'json' 'unordered'\n     || lk == 134824                // 'json' 'updating'\n     || lk == 136360                // 'json' 'validate'\n     || lk == 136872                // 'json' 'value'\n     || lk == 137384                // 'json' 'variable'\n     || lk == 137896                // 'json' 'version'\n     || lk == 139432                // 'json' 'where'\n     || lk == 139944                // 'json' 'while'\n     || lk == 141480                // 'json' 'with'\n     || lk == 144040                // 'json' '{'\n     || lk == 145064)               // 'json' '{|'\n    {\n      shiftT(168);                  // 'json'\n    }\n    lookahead1W(260);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_PostfixExpr();\n    shiftT(80);                     // 'as'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_JSONReplaceExpr()\n  {\n    eventHandler.startNonterminal(\"JSONReplaceExpr\", e0);\n    shift(223);                     // 'replace'\n    lookahead1W(85);                // S^WS | '(:' | 'value'\n    shift(267);                     // 'value'\n    lookahead1W(67);                // S^WS | '(:' | 'of'\n    shift(200);                     // 'of'\n    lookahead1W(59);                // S^WS | '(:' | 'json'\n    shift(168);                     // 'json'\n    lookahead1W(260);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_PostfixExpr();\n    shift(276);                     // 'with'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"JSONReplaceExpr\", e0);\n  }\n\n  function try_JSONReplaceExpr()\n  {\n    shiftT(223);                    // 'replace'\n    lookahead1W(85);                // S^WS | '(:' | 'value'\n    shiftT(267);                    // 'value'\n    lookahead1W(67);                // S^WS | '(:' | 'of'\n    shiftT(200);                    // 'of'\n    lookahead1W(59);                // S^WS | '(:' | 'json'\n    shiftT(168);                    // 'json'\n    lookahead1W(260);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_PostfixExpr();\n    shiftT(276);                    // 'with'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_JSONAppendExpr()\n  {\n    eventHandler.startNonterminal(\"JSONAppendExpr\", e0);\n    shift(78);                      // 'append'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    switch (l1)\n    {\n    case 168:                       // 'json'\n      lookahead2W(269);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 18088)                // 'json' '('\n    {\n      lk = memoized(17, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          shiftT(168);              // 'json'\n          lk = -1;\n        }\n        catch (p1A)\n        {\n          lk = -2;\n        }\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(17, e0, lk);\n      }\n    }\n    if (lk == -1\n     || lk == 3240                  // 'json' EQName^Token\n     || lk == 4264                  // 'json' IntegerLiteral\n     || lk == 4776                  // 'json' DecimalLiteral\n     || lk == 5288                  // 'json' DoubleLiteral\n     || lk == 5800                  // 'json' StringLiteral\n     || lk == 16040                 // 'json' '$'\n     || lk == 16552                 // 'json' '$$'\n     || lk == 17064                 // 'json' '%'\n     || lk == 18600                 // 'json' '(#'\n     || lk == 21160                 // 'json' '+'\n     || lk == 22184                 // 'json' '-'\n     || lk == 24232                 // 'json' '/'\n     || lk == 24744                 // 'json' '//'\n     || lk == 28328                 // 'json' '<'\n     || lk == 28840                 // 'json' '<!--'\n     || lk == 30888                 // 'json' '<?'\n     || lk == 35496                 // 'json' '['\n     || lk == 36520                 // 'json' 'after'\n     || lk == 37544                 // 'json' 'allowing'\n     || lk == 38056                 // 'json' 'ancestor'\n     || lk == 38568                 // 'json' 'ancestor-or-self'\n     || lk == 39080                 // 'json' 'and'\n     || lk == 40104                 // 'json' 'append'\n     || lk == 40616                 // 'json' 'array'\n     || lk == 41128                 // 'json' 'as'\n     || lk == 41640                 // 'json' 'ascending'\n     || lk == 42152                 // 'json' 'at'\n     || lk == 42664                 // 'json' 'attribute'\n     || lk == 43176                 // 'json' 'base-uri'\n     || lk == 43688                 // 'json' 'before'\n     || lk == 44200                 // 'json' 'boundary-space'\n     || lk == 44712                 // 'json' 'break'\n     || lk == 45736                 // 'json' 'case'\n     || lk == 46248                 // 'json' 'cast'\n     || lk == 46760                 // 'json' 'castable'\n     || lk == 47272                 // 'json' 'catch'\n     || lk == 48296                 // 'json' 'child'\n     || lk == 48808                 // 'json' 'collation'\n     || lk == 49832                 // 'json' 'comment'\n     || lk == 50344                 // 'json' 'constraint'\n     || lk == 50856                 // 'json' 'construction'\n     || lk == 52392                 // 'json' 'context'\n     || lk == 52904                 // 'json' 'continue'\n     || lk == 53416                 // 'json' 'copy'\n     || lk == 53928                 // 'json' 'copy-namespaces'\n     || lk == 54440                 // 'json' 'count'\n     || lk == 54952                 // 'json' 'decimal-format'\n     || lk == 55976                 // 'json' 'declare'\n     || lk == 56488                 // 'json' 'default'\n     || lk == 57000                 // 'json' 'delete'\n     || lk == 57512                 // 'json' 'descendant'\n     || lk == 58024                 // 'json' 'descendant-or-self'\n     || lk == 58536                 // 'json' 'descending'\n     || lk == 61096                 // 'json' 'div'\n     || lk == 61608                 // 'json' 'document'\n     || lk == 62120                 // 'json' 'document-node'\n     || lk == 62632                 // 'json' 'element'\n     || lk == 63144                 // 'json' 'else'\n     || lk == 63656                 // 'json' 'empty'\n     || lk == 64168                 // 'json' 'empty-sequence'\n     || lk == 64680                 // 'json' 'encoding'\n     || lk == 65192                 // 'json' 'end'\n     || lk == 66216                 // 'json' 'eq'\n     || lk == 66728                 // 'json' 'every'\n     || lk == 67752                 // 'json' 'except'\n     || lk == 68264                 // 'json' 'exit'\n     || lk == 68776                 // 'json' 'external'\n     || lk == 69288                 // 'json' 'false'\n     || lk == 69800                 // 'json' 'first'\n     || lk == 70312                 // 'json' 'following'\n     || lk == 70824                 // 'json' 'following-sibling'\n     || lk == 71336                 // 'json' 'for'\n     || lk == 72872                 // 'json' 'from'\n     || lk == 73384                 // 'json' 'ft-option'\n     || lk == 75432                 // 'json' 'function'\n     || lk == 75944                 // 'json' 'ge'\n     || lk == 76968                 // 'json' 'group'\n     || lk == 77992                 // 'json' 'gt'\n     || lk == 78504                 // 'json' 'idiv'\n     || lk == 79016                 // 'json' 'if'\n     || lk == 79528                 // 'json' 'import'\n     || lk == 80040                 // 'json' 'in'\n     || lk == 80552                 // 'json' 'index'\n     || lk == 82600                 // 'json' 'insert'\n     || lk == 83112                 // 'json' 'instance'\n     || lk == 83624                 // 'json' 'integrity'\n     || lk == 84136                 // 'json' 'intersect'\n     || lk == 84648                 // 'json' 'into'\n     || lk == 85160                 // 'json' 'is'\n     || lk == 85672                 // 'json' 'item'\n     || lk == 86184                 // 'json' 'json'\n     || lk == 86696                 // 'json' 'json-item'\n     || lk == 87208                 // 'json' 'jsoniq'\n     || lk == 88744                 // 'json' 'last'\n     || lk == 89256                 // 'json' 'lax'\n     || lk == 89768                 // 'json' 'le'\n     || lk == 90792                 // 'json' 'let'\n     || lk == 91816                 // 'json' 'loop'\n     || lk == 92840                 // 'json' 'lt'\n     || lk == 93864                 // 'json' 'mod'\n     || lk == 94376                 // 'json' 'modify'\n     || lk == 94888                 // 'json' 'module'\n     || lk == 95912                 // 'json' 'namespace'\n     || lk == 96424                 // 'json' 'namespace-node'\n     || lk == 96936                 // 'json' 'ne'\n     || lk == 99496                 // 'json' 'node'\n     || lk == 100008                // 'json' 'nodes'\n     || lk == 100520                // 'json' 'not'\n     || lk == 101032                // 'json' 'null'\n     || lk == 101544                // 'json' 'object'\n     || lk == 103592                // 'json' 'only'\n     || lk == 104104                // 'json' 'option'\n     || lk == 104616                // 'json' 'or'\n     || lk == 105128                // 'json' 'order'\n     || lk == 105640                // 'json' 'ordered'\n     || lk == 106152                // 'json' 'ordering'\n     || lk == 107688                // 'json' 'parent'\n     || lk == 110760                // 'json' 'preceding'\n     || lk == 111272                // 'json' 'preceding-sibling'\n     || lk == 112808                // 'json' 'processing-instruction'\n     || lk == 113832                // 'json' 'rename'\n     || lk == 114344                // 'json' 'replace'\n     || lk == 114856                // 'json' 'return'\n     || lk == 115368                // 'json' 'returning'\n     || lk == 115880                // 'json' 'revalidation'\n     || lk == 116904                // 'json' 'satisfies'\n     || lk == 117416                // 'json' 'schema'\n     || lk == 117928                // 'json' 'schema-attribute'\n     || lk == 118440                // 'json' 'schema-element'\n     || lk == 118952                // 'json' 'score'\n     || lk == 119464                // 'json' 'select'\n     || lk == 119976                // 'json' 'self'\n     || lk == 122536                // 'json' 'sliding'\n     || lk == 123048                // 'json' 'some'\n     || lk == 123560                // 'json' 'stable'\n     || lk == 124072                // 'json' 'start'\n     || lk == 125608                // 'json' 'strict'\n     || lk == 126632                // 'json' 'structured-item'\n     || lk == 127144                // 'json' 'switch'\n     || lk == 127656                // 'json' 'text'\n     || lk == 129704                // 'json' 'to'\n     || lk == 130216                // 'json' 'treat'\n     || lk == 130728                // 'json' 'true'\n     || lk == 131240                // 'json' 'try'\n     || lk == 131752                // 'json' 'tumbling'\n     || lk == 132264                // 'json' 'type'\n     || lk == 132776                // 'json' 'typeswitch'\n     || lk == 133288                // 'json' 'union'\n     || lk == 134312                // 'json' 'unordered'\n     || lk == 134824                // 'json' 'updating'\n     || lk == 136360                // 'json' 'validate'\n     || lk == 136872                // 'json' 'value'\n     || lk == 137384                // 'json' 'variable'\n     || lk == 137896                // 'json' 'version'\n     || lk == 139432                // 'json' 'where'\n     || lk == 139944                // 'json' 'while'\n     || lk == 141480                // 'json' 'with'\n     || lk == 144040                // 'json' '{'\n     || lk == 145064)               // 'json' '{|'\n    {\n      shift(168);                   // 'json'\n    }\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    shift(165);                     // 'into'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"JSONAppendExpr\", e0);\n  }\n\n  function try_JSONAppendExpr()\n  {\n    shiftT(78);                     // 'append'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    switch (l1)\n    {\n    case 168:                       // 'json'\n      lookahead2W(269);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 18088)                // 'json' '('\n    {\n      lk = memoized(17, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          shiftT(168);              // 'json'\n          memoize(17, e0A, -1);\n        }\n        catch (p1A)\n        {\n          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n          b2 = b2A; e2 = e2A; end = e2A; }}\n          memoize(17, e0A, -2);\n        }\n        lk = -2;\n      }\n    }\n    if (lk == -1\n     || lk == 3240                  // 'json' EQName^Token\n     || lk == 4264                  // 'json' IntegerLiteral\n     || lk == 4776                  // 'json' DecimalLiteral\n     || lk == 5288                  // 'json' DoubleLiteral\n     || lk == 5800                  // 'json' StringLiteral\n     || lk == 16040                 // 'json' '$'\n     || lk == 16552                 // 'json' '$$'\n     || lk == 17064                 // 'json' '%'\n     || lk == 18600                 // 'json' '(#'\n     || lk == 21160                 // 'json' '+'\n     || lk == 22184                 // 'json' '-'\n     || lk == 24232                 // 'json' '/'\n     || lk == 24744                 // 'json' '//'\n     || lk == 28328                 // 'json' '<'\n     || lk == 28840                 // 'json' '<!--'\n     || lk == 30888                 // 'json' '<?'\n     || lk == 35496                 // 'json' '['\n     || lk == 36520                 // 'json' 'after'\n     || lk == 37544                 // 'json' 'allowing'\n     || lk == 38056                 // 'json' 'ancestor'\n     || lk == 38568                 // 'json' 'ancestor-or-self'\n     || lk == 39080                 // 'json' 'and'\n     || lk == 40104                 // 'json' 'append'\n     || lk == 40616                 // 'json' 'array'\n     || lk == 41128                 // 'json' 'as'\n     || lk == 41640                 // 'json' 'ascending'\n     || lk == 42152                 // 'json' 'at'\n     || lk == 42664                 // 'json' 'attribute'\n     || lk == 43176                 // 'json' 'base-uri'\n     || lk == 43688                 // 'json' 'before'\n     || lk == 44200                 // 'json' 'boundary-space'\n     || lk == 44712                 // 'json' 'break'\n     || lk == 45736                 // 'json' 'case'\n     || lk == 46248                 // 'json' 'cast'\n     || lk == 46760                 // 'json' 'castable'\n     || lk == 47272                 // 'json' 'catch'\n     || lk == 48296                 // 'json' 'child'\n     || lk == 48808                 // 'json' 'collation'\n     || lk == 49832                 // 'json' 'comment'\n     || lk == 50344                 // 'json' 'constraint'\n     || lk == 50856                 // 'json' 'construction'\n     || lk == 52392                 // 'json' 'context'\n     || lk == 52904                 // 'json' 'continue'\n     || lk == 53416                 // 'json' 'copy'\n     || lk == 53928                 // 'json' 'copy-namespaces'\n     || lk == 54440                 // 'json' 'count'\n     || lk == 54952                 // 'json' 'decimal-format'\n     || lk == 55976                 // 'json' 'declare'\n     || lk == 56488                 // 'json' 'default'\n     || lk == 57000                 // 'json' 'delete'\n     || lk == 57512                 // 'json' 'descendant'\n     || lk == 58024                 // 'json' 'descendant-or-self'\n     || lk == 58536                 // 'json' 'descending'\n     || lk == 61096                 // 'json' 'div'\n     || lk == 61608                 // 'json' 'document'\n     || lk == 62120                 // 'json' 'document-node'\n     || lk == 62632                 // 'json' 'element'\n     || lk == 63144                 // 'json' 'else'\n     || lk == 63656                 // 'json' 'empty'\n     || lk == 64168                 // 'json' 'empty-sequence'\n     || lk == 64680                 // 'json' 'encoding'\n     || lk == 65192                 // 'json' 'end'\n     || lk == 66216                 // 'json' 'eq'\n     || lk == 66728                 // 'json' 'every'\n     || lk == 67752                 // 'json' 'except'\n     || lk == 68264                 // 'json' 'exit'\n     || lk == 68776                 // 'json' 'external'\n     || lk == 69288                 // 'json' 'false'\n     || lk == 69800                 // 'json' 'first'\n     || lk == 70312                 // 'json' 'following'\n     || lk == 70824                 // 'json' 'following-sibling'\n     || lk == 71336                 // 'json' 'for'\n     || lk == 72872                 // 'json' 'from'\n     || lk == 73384                 // 'json' 'ft-option'\n     || lk == 75432                 // 'json' 'function'\n     || lk == 75944                 // 'json' 'ge'\n     || lk == 76968                 // 'json' 'group'\n     || lk == 77992                 // 'json' 'gt'\n     || lk == 78504                 // 'json' 'idiv'\n     || lk == 79016                 // 'json' 'if'\n     || lk == 79528                 // 'json' 'import'\n     || lk == 80040                 // 'json' 'in'\n     || lk == 80552                 // 'json' 'index'\n     || lk == 82600                 // 'json' 'insert'\n     || lk == 83112                 // 'json' 'instance'\n     || lk == 83624                 // 'json' 'integrity'\n     || lk == 84136                 // 'json' 'intersect'\n     || lk == 84648                 // 'json' 'into'\n     || lk == 85160                 // 'json' 'is'\n     || lk == 85672                 // 'json' 'item'\n     || lk == 86184                 // 'json' 'json'\n     || lk == 86696                 // 'json' 'json-item'\n     || lk == 87208                 // 'json' 'jsoniq'\n     || lk == 88744                 // 'json' 'last'\n     || lk == 89256                 // 'json' 'lax'\n     || lk == 89768                 // 'json' 'le'\n     || lk == 90792                 // 'json' 'let'\n     || lk == 91816                 // 'json' 'loop'\n     || lk == 92840                 // 'json' 'lt'\n     || lk == 93864                 // 'json' 'mod'\n     || lk == 94376                 // 'json' 'modify'\n     || lk == 94888                 // 'json' 'module'\n     || lk == 95912                 // 'json' 'namespace'\n     || lk == 96424                 // 'json' 'namespace-node'\n     || lk == 96936                 // 'json' 'ne'\n     || lk == 99496                 // 'json' 'node'\n     || lk == 100008                // 'json' 'nodes'\n     || lk == 100520                // 'json' 'not'\n     || lk == 101032                // 'json' 'null'\n     || lk == 101544                // 'json' 'object'\n     || lk == 103592                // 'json' 'only'\n     || lk == 104104                // 'json' 'option'\n     || lk == 104616                // 'json' 'or'\n     || lk == 105128                // 'json' 'order'\n     || lk == 105640                // 'json' 'ordered'\n     || lk == 106152                // 'json' 'ordering'\n     || lk == 107688                // 'json' 'parent'\n     || lk == 110760                // 'json' 'preceding'\n     || lk == 111272                // 'json' 'preceding-sibling'\n     || lk == 112808                // 'json' 'processing-instruction'\n     || lk == 113832                // 'json' 'rename'\n     || lk == 114344                // 'json' 'replace'\n     || lk == 114856                // 'json' 'return'\n     || lk == 115368                // 'json' 'returning'\n     || lk == 115880                // 'json' 'revalidation'\n     || lk == 116904                // 'json' 'satisfies'\n     || lk == 117416                // 'json' 'schema'\n     || lk == 117928                // 'json' 'schema-attribute'\n     || lk == 118440                // 'json' 'schema-element'\n     || lk == 118952                // 'json' 'score'\n     || lk == 119464                // 'json' 'select'\n     || lk == 119976                // 'json' 'self'\n     || lk == 122536                // 'json' 'sliding'\n     || lk == 123048                // 'json' 'some'\n     || lk == 123560                // 'json' 'stable'\n     || lk == 124072                // 'json' 'start'\n     || lk == 125608                // 'json' 'strict'\n     || lk == 126632                // 'json' 'structured-item'\n     || lk == 127144                // 'json' 'switch'\n     || lk == 127656                // 'json' 'text'\n     || lk == 129704                // 'json' 'to'\n     || lk == 130216                // 'json' 'treat'\n     || lk == 130728                // 'json' 'true'\n     || lk == 131240                // 'json' 'try'\n     || lk == 131752                // 'json' 'tumbling'\n     || lk == 132264                // 'json' 'type'\n     || lk == 132776                // 'json' 'typeswitch'\n     || lk == 133288                // 'json' 'union'\n     || lk == 134312                // 'json' 'unordered'\n     || lk == 134824                // 'json' 'updating'\n     || lk == 136360                // 'json' 'validate'\n     || lk == 136872                // 'json' 'value'\n     || lk == 137384                // 'json' 'variable'\n     || lk == 137896                // 'json' 'version'\n     || lk == 139432                // 'json' 'where'\n     || lk == 139944                // 'json' 'while'\n     || lk == 141480                // 'json' 'with'\n     || lk == 144040                // 'json' '{'\n     || lk == 145064)               // 'json' '{|'\n    {\n      shiftT(168);                  // 'json'\n    }\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n    shiftT(165);                    // 'into'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_CommonContent()\n  {\n    eventHandler.startNonterminal(\"CommonContent\", e0);\n    switch (l1)\n    {\n    case 12:                        // PredefinedEntityRef\n      shift(12);                    // PredefinedEntityRef\n      break;\n    case 23:                        // CharRef\n      shift(23);                    // CharRef\n      break;\n    case 282:                       // '{{'\n      shift(282);                   // '{{'\n      break;\n    case 288:                       // '}}'\n      shift(288);                   // '}}'\n      break;\n    default:\n      parse_BlockExpr();\n    }\n    eventHandler.endNonterminal(\"CommonContent\", e0);\n  }\n\n  function try_CommonContent()\n  {\n    switch (l1)\n    {\n    case 12:                        // PredefinedEntityRef\n      shiftT(12);                   // PredefinedEntityRef\n      break;\n    case 23:                        // CharRef\n      shiftT(23);                   // CharRef\n      break;\n    case 282:                       // '{{'\n      shiftT(282);                  // '{{'\n      break;\n    case 288:                       // '}}'\n      shiftT(288);                  // '}}'\n      break;\n    default:\n      try_BlockExpr();\n    }\n  }\n\n  function parse_ContentExpr()\n  {\n    eventHandler.startNonterminal(\"ContentExpr\", e0);\n    parse_StatementsAndExpr();\n    eventHandler.endNonterminal(\"ContentExpr\", e0);\n  }\n\n  function try_ContentExpr()\n  {\n    try_StatementsAndExpr();\n  }\n\n  function parse_CompDocConstructor()\n  {\n    eventHandler.startNonterminal(\"CompDocConstructor\", e0);\n    shift(120);                     // 'document'\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    whitespace();\n    parse_BlockExpr();\n    eventHandler.endNonterminal(\"CompDocConstructor\", e0);\n  }\n\n  function try_CompDocConstructor()\n  {\n    shiftT(120);                    // 'document'\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    try_BlockExpr();\n  }\n\n  function parse_CompAttrConstructor()\n  {\n    eventHandler.startNonterminal(\"CompAttrConstructor\", e0);\n    shift(83);                      // 'attribute'\n    lookahead1W(250);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    switch (l1)\n    {\n    case 281:                       // '{'\n      shift(281);                   // '{'\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_Expr();\n      shift(287);                   // '}'\n      break;\n    default:\n      whitespace();\n      parse_EQName();\n    }\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    switch (l1)\n    {\n    case 281:                       // '{'\n      lookahead2W(281);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 147225)               // '{' '}'\n    {\n      lk = memoized(18, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          shiftT(281);              // '{'\n          lookahead1W(91);          // S^WS | '(:' | '}'\n          shiftT(287);              // '}'\n          lk = -1;\n        }\n        catch (p1A)\n        {\n          lk = -2;\n        }\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(18, e0, lk);\n      }\n    }\n    switch (lk)\n    {\n    case -1:\n      shift(281);                   // '{'\n      lookahead1W(91);              // S^WS | '(:' | '}'\n      shift(287);                   // '}'\n      break;\n    default:\n      whitespace();\n      parse_BlockExpr();\n    }\n    eventHandler.endNonterminal(\"CompAttrConstructor\", e0);\n  }\n\n  function try_CompAttrConstructor()\n  {\n    shiftT(83);                     // 'attribute'\n    lookahead1W(250);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    switch (l1)\n    {\n    case 281:                       // '{'\n      shiftT(281);                  // '{'\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_Expr();\n      shiftT(287);                  // '}'\n      break;\n    default:\n      try_EQName();\n    }\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    switch (l1)\n    {\n    case 281:                       // '{'\n      lookahead2W(281);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 147225)               // '{' '}'\n    {\n      lk = memoized(18, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          shiftT(281);              // '{'\n          lookahead1W(91);          // S^WS | '(:' | '}'\n          shiftT(287);              // '}'\n          memoize(18, e0A, -1);\n          lk = -3;\n        }\n        catch (p1A)\n        {\n          lk = -2;\n          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n          b2 = b2A; e2 = e2A; end = e2A; }}\n          memoize(18, e0A, -2);\n        }\n      }\n    }\n    switch (lk)\n    {\n    case -1:\n      shiftT(281);                  // '{'\n      lookahead1W(91);              // S^WS | '(:' | '}'\n      shiftT(287);                  // '}'\n      break;\n    case -3:\n      break;\n    default:\n      try_BlockExpr();\n    }\n  }\n\n  function parse_CompPIConstructor()\n  {\n    eventHandler.startNonterminal(\"CompPIConstructor\", e0);\n    shift(220);                     // 'processing-instruction'\n    lookahead1W(242);               // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    switch (l1)\n    {\n    case 281:                       // '{'\n      shift(281);                   // '{'\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_Expr();\n      shift(287);                   // '}'\n      break;\n    default:\n      whitespace();\n      parse_NCName();\n    }\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    switch (l1)\n    {\n    case 281:                       // '{'\n      lookahead2W(281);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 147225)               // '{' '}'\n    {\n      lk = memoized(19, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          shiftT(281);              // '{'\n          lookahead1W(91);          // S^WS | '(:' | '}'\n          shiftT(287);              // '}'\n          lk = -1;\n        }\n        catch (p1A)\n        {\n          lk = -2;\n        }\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(19, e0, lk);\n      }\n    }\n    switch (lk)\n    {\n    case -1:\n      shift(281);                   // '{'\n      lookahead1W(91);              // S^WS | '(:' | '}'\n      shift(287);                   // '}'\n      break;\n    default:\n      whitespace();\n      parse_BlockExpr();\n    }\n    eventHandler.endNonterminal(\"CompPIConstructor\", e0);\n  }\n\n  function try_CompPIConstructor()\n  {\n    shiftT(220);                    // 'processing-instruction'\n    lookahead1W(242);               // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    switch (l1)\n    {\n    case 281:                       // '{'\n      shiftT(281);                  // '{'\n      lookahead1W(267);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_Expr();\n      shiftT(287);                  // '}'\n      break;\n    default:\n      try_NCName();\n    }\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    switch (l1)\n    {\n    case 281:                       // '{'\n      lookahead2W(281);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 147225)               // '{' '}'\n    {\n      lk = memoized(19, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          shiftT(281);              // '{'\n          lookahead1W(91);          // S^WS | '(:' | '}'\n          shiftT(287);              // '}'\n          memoize(19, e0A, -1);\n          lk = -3;\n        }\n        catch (p1A)\n        {\n          lk = -2;\n          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n          b2 = b2A; e2 = e2A; end = e2A; }}\n          memoize(19, e0A, -2);\n        }\n      }\n    }\n    switch (lk)\n    {\n    case -1:\n      shiftT(281);                  // '{'\n      lookahead1W(91);              // S^WS | '(:' | '}'\n      shiftT(287);                  // '}'\n      break;\n    case -3:\n      break;\n    default:\n      try_BlockExpr();\n    }\n  }\n\n  function parse_CompCommentConstructor()\n  {\n    eventHandler.startNonterminal(\"CompCommentConstructor\", e0);\n    shift(97);                      // 'comment'\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    whitespace();\n    parse_BlockExpr();\n    eventHandler.endNonterminal(\"CompCommentConstructor\", e0);\n  }\n\n  function try_CompCommentConstructor()\n  {\n    shiftT(97);                     // 'comment'\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    try_BlockExpr();\n  }\n\n  function parse_CompTextConstructor()\n  {\n    eventHandler.startNonterminal(\"CompTextConstructor\", e0);\n    shift(249);                     // 'text'\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    whitespace();\n    parse_BlockExpr();\n    eventHandler.endNonterminal(\"CompTextConstructor\", e0);\n  }\n\n  function try_CompTextConstructor()\n  {\n    shiftT(249);                    // 'text'\n    lookahead1W(90);                // S^WS | '(:' | '{'\n    try_BlockExpr();\n  }\n\n  function parse_PrimaryExpr()\n  {\n    eventHandler.startNonterminal(\"PrimaryExpr\", e0);\n    switch (l1)\n    {\n    case 187:                       // 'namespace'\n      lookahead2W(247);             // NCName^Token | S^WS | '#' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      break;\n    case 220:                       // 'processing-instruction'\n      lookahead2W(245);             // NCName^Token | S^WS | '#' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      break;\n    case 281:                       // '{'\n      lookahead2W(283);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    case 83:                        // 'attribute'\n    case 122:                       // 'element'\n      lookahead2W(253);             // EQName^Token | S^WS | '#' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      break;\n    case 97:                        // 'comment'\n    case 249:                       // 'text'\n      lookahead2W(97);              // S^WS | '#' | '(:' | '{'\n      break;\n    case 120:                       // 'document'\n    case 206:                       // 'ordered'\n    case 262:                       // 'unordered'\n      lookahead2W(148);             // S^WS | '#' | '(' | '(:' | '{'\n      break;\n    case 135:                       // 'false'\n    case 197:                       // 'null'\n    case 255:                       // 'true'\n      lookahead2W(237);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '.' |\n      break;\n    case 6:                         // EQName^Token\n    case 71:                        // 'after'\n    case 73:                        // 'allowing'\n    case 74:                        // 'ancestor'\n    case 75:                        // 'ancestor-or-self'\n    case 76:                        // 'and'\n    case 78:                        // 'append'\n    case 80:                        // 'as'\n    case 81:                        // 'ascending'\n    case 82:                        // 'at'\n    case 84:                        // 'base-uri'\n    case 85:                        // 'before'\n    case 86:                        // 'boundary-space'\n    case 87:                        // 'break'\n    case 89:                        // 'case'\n    case 90:                        // 'cast'\n    case 91:                        // 'castable'\n    case 92:                        // 'catch'\n    case 94:                        // 'child'\n    case 95:                        // 'collation'\n    case 98:                        // 'constraint'\n    case 99:                        // 'construction'\n    case 102:                       // 'context'\n    case 103:                       // 'continue'\n    case 104:                       // 'copy'\n    case 105:                       // 'copy-namespaces'\n    case 106:                       // 'count'\n    case 107:                       // 'decimal-format'\n    case 109:                       // 'declare'\n    case 110:                       // 'default'\n    case 111:                       // 'delete'\n    case 112:                       // 'descendant'\n    case 113:                       // 'descendant-or-self'\n    case 114:                       // 'descending'\n    case 119:                       // 'div'\n    case 123:                       // 'else'\n    case 124:                       // 'empty'\n    case 126:                       // 'encoding'\n    case 127:                       // 'end'\n    case 129:                       // 'eq'\n    case 130:                       // 'every'\n    case 132:                       // 'except'\n    case 133:                       // 'exit'\n    case 134:                       // 'external'\n    case 136:                       // 'first'\n    case 137:                       // 'following'\n    case 138:                       // 'following-sibling'\n    case 139:                       // 'for'\n    case 142:                       // 'from'\n    case 143:                       // 'ft-option'\n    case 148:                       // 'ge'\n    case 150:                       // 'group'\n    case 152:                       // 'gt'\n    case 153:                       // 'idiv'\n    case 155:                       // 'import'\n    case 156:                       // 'in'\n    case 157:                       // 'index'\n    case 161:                       // 'insert'\n    case 162:                       // 'instance'\n    case 163:                       // 'integrity'\n    case 164:                       // 'intersect'\n    case 165:                       // 'into'\n    case 166:                       // 'is'\n    case 168:                       // 'json'\n    case 170:                       // 'jsoniq'\n    case 173:                       // 'last'\n    case 174:                       // 'lax'\n    case 175:                       // 'le'\n    case 177:                       // 'let'\n    case 179:                       // 'loop'\n    case 181:                       // 'lt'\n    case 183:                       // 'mod'\n    case 184:                       // 'modify'\n    case 185:                       // 'module'\n    case 189:                       // 'ne'\n    case 195:                       // 'nodes'\n    case 198:                       // 'object'\n    case 202:                       // 'only'\n    case 203:                       // 'option'\n    case 204:                       // 'or'\n    case 205:                       // 'order'\n    case 207:                       // 'ordering'\n    case 210:                       // 'parent'\n    case 216:                       // 'preceding'\n    case 217:                       // 'preceding-sibling'\n    case 222:                       // 'rename'\n    case 223:                       // 'replace'\n    case 224:                       // 'return'\n    case 225:                       // 'returning'\n    case 226:                       // 'revalidation'\n    case 228:                       // 'satisfies'\n    case 229:                       // 'schema'\n    case 232:                       // 'score'\n    case 233:                       // 'select'\n    case 234:                       // 'self'\n    case 239:                       // 'sliding'\n    case 240:                       // 'some'\n    case 241:                       // 'stable'\n    case 242:                       // 'start'\n    case 245:                       // 'strict'\n    case 253:                       // 'to'\n    case 254:                       // 'treat'\n    case 256:                       // 'try'\n    case 257:                       // 'tumbling'\n    case 258:                       // 'type'\n    case 260:                       // 'union'\n    case 263:                       // 'updating'\n    case 266:                       // 'validate'\n    case 267:                       // 'value'\n    case 268:                       // 'variable'\n    case 269:                       // 'version'\n    case 272:                       // 'where'\n    case 273:                       // 'while'\n    case 276:                       // 'with'\n      lookahead2W(95);              // S^WS | '#' | '(' | '(:'\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 3353                  // '{' EQName^Token\n     || lk == 4377                  // '{' IntegerLiteral\n     || lk == 4889                  // '{' DecimalLiteral\n     || lk == 5401                  // '{' DoubleLiteral\n     || lk == 5913                  // '{' StringLiteral\n     || lk == 16153                 // '{' '$'\n     || lk == 16665                 // '{' '$$'\n     || lk == 17177                 // '{' '%'\n     || lk == 18055                 // 'false' '('\n     || lk == 18117                 // 'null' '('\n     || lk == 18175                 // 'true' '('\n     || lk == 18201                 // '{' '('\n     || lk == 18713                 // '{' '(#'\n     || lk == 21273                 // '{' '+'\n     || lk == 22297                 // '{' '-'\n     || lk == 24345                 // '{' '/'\n     || lk == 24857                 // '{' '//'\n     || lk == 28441                 // '{' '<'\n     || lk == 28953                 // '{' '<!--'\n     || lk == 31001                 // '{' '<?'\n     || lk == 35609                 // '{' '['\n     || lk == 36633                 // '{' 'after'\n     || lk == 37657                 // '{' 'allowing'\n     || lk == 38169                 // '{' 'ancestor'\n     || lk == 38681                 // '{' 'ancestor-or-self'\n     || lk == 39193                 // '{' 'and'\n     || lk == 40217                 // '{' 'append'\n     || lk == 40729                 // '{' 'array'\n     || lk == 41241                 // '{' 'as'\n     || lk == 41753                 // '{' 'ascending'\n     || lk == 42265                 // '{' 'at'\n     || lk == 42777                 // '{' 'attribute'\n     || lk == 43289                 // '{' 'base-uri'\n     || lk == 43801                 // '{' 'before'\n     || lk == 44313                 // '{' 'boundary-space'\n     || lk == 44825                 // '{' 'break'\n     || lk == 45849                 // '{' 'case'\n     || lk == 46361                 // '{' 'cast'\n     || lk == 46873                 // '{' 'castable'\n     || lk == 47385                 // '{' 'catch'\n     || lk == 48409                 // '{' 'child'\n     || lk == 48921                 // '{' 'collation'\n     || lk == 49945                 // '{' 'comment'\n     || lk == 50457                 // '{' 'constraint'\n     || lk == 50969                 // '{' 'construction'\n     || lk == 52505                 // '{' 'context'\n     || lk == 53017                 // '{' 'continue'\n     || lk == 53529                 // '{' 'copy'\n     || lk == 54041                 // '{' 'copy-namespaces'\n     || lk == 54553                 // '{' 'count'\n     || lk == 55065                 // '{' 'decimal-format'\n     || lk == 56089                 // '{' 'declare'\n     || lk == 56601                 // '{' 'default'\n     || lk == 57113                 // '{' 'delete'\n     || lk == 57625                 // '{' 'descendant'\n     || lk == 58137                 // '{' 'descendant-or-self'\n     || lk == 58649                 // '{' 'descending'\n     || lk == 61209                 // '{' 'div'\n     || lk == 61721                 // '{' 'document'\n     || lk == 62233                 // '{' 'document-node'\n     || lk == 62745                 // '{' 'element'\n     || lk == 63257                 // '{' 'else'\n     || lk == 63769                 // '{' 'empty'\n     || lk == 64281                 // '{' 'empty-sequence'\n     || lk == 64793                 // '{' 'encoding'\n     || lk == 65305                 // '{' 'end'\n     || lk == 66329                 // '{' 'eq'\n     || lk == 66841                 // '{' 'every'\n     || lk == 67865                 // '{' 'except'\n     || lk == 68377                 // '{' 'exit'\n     || lk == 68889                 // '{' 'external'\n     || lk == 69401                 // '{' 'false'\n     || lk == 69913                 // '{' 'first'\n     || lk == 70425                 // '{' 'following'\n     || lk == 70937                 // '{' 'following-sibling'\n     || lk == 71449                 // '{' 'for'\n     || lk == 72985                 // '{' 'from'\n     || lk == 73497                 // '{' 'ft-option'\n     || lk == 75545                 // '{' 'function'\n     || lk == 76057                 // '{' 'ge'\n     || lk == 77081                 // '{' 'group'\n     || lk == 78105                 // '{' 'gt'\n     || lk == 78617                 // '{' 'idiv'\n     || lk == 79129                 // '{' 'if'\n     || lk == 79641                 // '{' 'import'\n     || lk == 80153                 // '{' 'in'\n     || lk == 80665                 // '{' 'index'\n     || lk == 82713                 // '{' 'insert'\n     || lk == 83225                 // '{' 'instance'\n     || lk == 83737                 // '{' 'integrity'\n     || lk == 84249                 // '{' 'intersect'\n     || lk == 84761                 // '{' 'into'\n     || lk == 85273                 // '{' 'is'\n     || lk == 85785                 // '{' 'item'\n     || lk == 86297                 // '{' 'json'\n     || lk == 86809                 // '{' 'json-item'\n     || lk == 87321                 // '{' 'jsoniq'\n     || lk == 88857                 // '{' 'last'\n     || lk == 89369                 // '{' 'lax'\n     || lk == 89881                 // '{' 'le'\n     || lk == 90905                 // '{' 'let'\n     || lk == 91929                 // '{' 'loop'\n     || lk == 92953                 // '{' 'lt'\n     || lk == 93977                 // '{' 'mod'\n     || lk == 94489                 // '{' 'modify'\n     || lk == 95001                 // '{' 'module'\n     || lk == 96025                 // '{' 'namespace'\n     || lk == 96537                 // '{' 'namespace-node'\n     || lk == 97049                 // '{' 'ne'\n     || lk == 99609                 // '{' 'node'\n     || lk == 100121                // '{' 'nodes'\n     || lk == 100633                // '{' 'not'\n     || lk == 101145                // '{' 'null'\n     || lk == 101657                // '{' 'object'\n     || lk == 103705                // '{' 'only'\n     || lk == 104217                // '{' 'option'\n     || lk == 104729                // '{' 'or'\n     || lk == 105241                // '{' 'order'\n     || lk == 105753                // '{' 'ordered'\n     || lk == 106265                // '{' 'ordering'\n     || lk == 107801                // '{' 'parent'\n     || lk == 110873                // '{' 'preceding'\n     || lk == 111385                // '{' 'preceding-sibling'\n     || lk == 112921                // '{' 'processing-instruction'\n     || lk == 113945                // '{' 'rename'\n     || lk == 114457                // '{' 'replace'\n     || lk == 114969                // '{' 'return'\n     || lk == 115481                // '{' 'returning'\n     || lk == 115993                // '{' 'revalidation'\n     || lk == 117017                // '{' 'satisfies'\n     || lk == 117529                // '{' 'schema'\n     || lk == 118041                // '{' 'schema-attribute'\n     || lk == 118553                // '{' 'schema-element'\n     || lk == 119065                // '{' 'score'\n     || lk == 119577                // '{' 'select'\n     || lk == 120089                // '{' 'self'\n     || lk == 122649                // '{' 'sliding'\n     || lk == 123161                // '{' 'some'\n     || lk == 123673                // '{' 'stable'\n     || lk == 124185                // '{' 'start'\n     || lk == 125721                // '{' 'strict'\n     || lk == 126745                // '{' 'structured-item'\n     || lk == 127257                // '{' 'switch'\n     || lk == 127769                // '{' 'text'\n     || lk == 129817                // '{' 'to'\n     || lk == 130329                // '{' 'treat'\n     || lk == 130841                // '{' 'true'\n     || lk == 131353                // '{' 'try'\n     || lk == 131865                // '{' 'tumbling'\n     || lk == 132377                // '{' 'type'\n     || lk == 132889                // '{' 'typeswitch'\n     || lk == 133401                // '{' 'union'\n     || lk == 134425                // '{' 'unordered'\n     || lk == 134937                // '{' 'updating'\n     || lk == 136473                // '{' 'validate'\n     || lk == 136985                // '{' 'value'\n     || lk == 137497                // '{' 'variable'\n     || lk == 138009                // '{' 'version'\n     || lk == 139545                // '{' 'where'\n     || lk == 140057                // '{' 'while'\n     || lk == 141593                // '{' 'with'\n     || lk == 144153                // '{' '{'\n     || lk == 145177                // '{' '{|'\n     || lk == 147225)               // '{' '}'\n    {\n      lk = memoized(20, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_Literal();\n          lk = -1;\n        }\n        catch (p1A)\n        {\n          try\n          {\n            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n            b2 = b2A; e2 = e2A; end = e2A; }}\n            try_FunctionCall();\n            lk = -5;\n          }\n          catch (p5A)\n          {\n            try\n            {\n              b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n              b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n              b2 = b2A; e2 = e2A; end = e2A; }}\n              try_BlockExpr();\n              lk = -10;\n            }\n            catch (p10A)\n            {\n              lk = -11;\n            }\n          }\n        }\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(20, e0, lk);\n      }\n    }\n    switch (lk)\n    {\n    case -1:\n    case 8:                         // IntegerLiteral\n    case 9:                         // DecimalLiteral\n    case 10:                        // DoubleLiteral\n    case 11:                        // StringLiteral\n    case 12935:                     // 'false' EOF\n    case 12997:                     // 'null' EOF\n    case 13055:                     // 'true' EOF\n    case 13447:                     // 'false' '!'\n    case 13509:                     // 'null' '!'\n    case 13567:                     // 'true' '!'\n    case 13959:                     // 'false' '!='\n    case 14021:                     // 'null' '!='\n    case 14079:                     // 'true' '!='\n    case 19591:                     // 'false' ')'\n    case 19653:                     // 'null' ')'\n    case 19711:                     // 'true' ')'\n    case 20103:                     // 'false' '*'\n    case 20165:                     // 'null' '*'\n    case 20223:                     // 'true' '*'\n    case 21127:                     // 'false' '+'\n    case 21189:                     // 'null' '+'\n    case 21247:                     // 'true' '+'\n    case 21639:                     // 'false' ','\n    case 21701:                     // 'null' ','\n    case 21759:                     // 'true' ','\n    case 22151:                     // 'false' '-'\n    case 22213:                     // 'null' '-'\n    case 22271:                     // 'true' '-'\n    case 23175:                     // 'false' '.'\n    case 23237:                     // 'null' '.'\n    case 23295:                     // 'true' '.'\n    case 24199:                     // 'false' '/'\n    case 24261:                     // 'null' '/'\n    case 24319:                     // 'true' '/'\n    case 24711:                     // 'false' '//'\n    case 24773:                     // 'null' '//'\n    case 24831:                     // 'true' '//'\n    case 25735:                     // 'false' ':'\n    case 25797:                     // 'null' ':'\n    case 25855:                     // 'true' ':'\n    case 27783:                     // 'false' ';'\n    case 27845:                     // 'null' ';'\n    case 27903:                     // 'true' ';'\n    case 28295:                     // 'false' '<'\n    case 28357:                     // 'null' '<'\n    case 28415:                     // 'true' '<'\n    case 29831:                     // 'false' '<<'\n    case 29893:                     // 'null' '<<'\n    case 29951:                     // 'true' '<<'\n    case 30343:                     // 'false' '<='\n    case 30405:                     // 'null' '<='\n    case 30463:                     // 'true' '<='\n    case 31367:                     // 'false' '='\n    case 31429:                     // 'null' '='\n    case 31487:                     // 'true' '='\n    case 31879:                     // 'false' '>'\n    case 31941:                     // 'null' '>'\n    case 31999:                     // 'true' '>'\n    case 32391:                     // 'false' '>='\n    case 32453:                     // 'null' '>='\n    case 32511:                     // 'true' '>='\n    case 32903:                     // 'false' '>>'\n    case 32965:                     // 'null' '>>'\n    case 33023:                     // 'true' '>>'\n    case 35463:                     // 'false' '['\n    case 35525:                     // 'null' '['\n    case 35583:                     // 'true' '['\n    case 35975:                     // 'false' ']'\n    case 36037:                     // 'null' ']'\n    case 36095:                     // 'true' ']'\n    case 36487:                     // 'false' 'after'\n    case 36549:                     // 'null' 'after'\n    case 36607:                     // 'true' 'after'\n    case 39047:                     // 'false' 'and'\n    case 39109:                     // 'null' 'and'\n    case 39167:                     // 'true' 'and'\n    case 41095:                     // 'false' 'as'\n    case 41157:                     // 'null' 'as'\n    case 41215:                     // 'true' 'as'\n    case 41607:                     // 'false' 'ascending'\n    case 41669:                     // 'null' 'ascending'\n    case 41727:                     // 'true' 'ascending'\n    case 42119:                     // 'false' 'at'\n    case 42181:                     // 'null' 'at'\n    case 42239:                     // 'true' 'at'\n    case 43655:                     // 'false' 'before'\n    case 43717:                     // 'null' 'before'\n    case 43775:                     // 'true' 'before'\n    case 45191:                     // 'false' 'by'\n    case 45253:                     // 'null' 'by'\n    case 45311:                     // 'true' 'by'\n    case 45703:                     // 'false' 'case'\n    case 45765:                     // 'null' 'case'\n    case 45823:                     // 'true' 'case'\n    case 46215:                     // 'false' 'cast'\n    case 46277:                     // 'null' 'cast'\n    case 46335:                     // 'true' 'cast'\n    case 46727:                     // 'false' 'castable'\n    case 46789:                     // 'null' 'castable'\n    case 46847:                     // 'true' 'castable'\n    case 48775:                     // 'false' 'collation'\n    case 48837:                     // 'null' 'collation'\n    case 48895:                     // 'true' 'collation'\n    case 51335:                     // 'false' 'contains'\n    case 51397:                     // 'null' 'contains'\n    case 51455:                     // 'true' 'contains'\n    case 54407:                     // 'false' 'count'\n    case 54469:                     // 'null' 'count'\n    case 54527:                     // 'true' 'count'\n    case 56455:                     // 'false' 'default'\n    case 56517:                     // 'null' 'default'\n    case 56575:                     // 'true' 'default'\n    case 58503:                     // 'false' 'descending'\n    case 58565:                     // 'null' 'descending'\n    case 58623:                     // 'true' 'descending'\n    case 61063:                     // 'false' 'div'\n    case 61125:                     // 'null' 'div'\n    case 61183:                     // 'true' 'div'\n    case 63111:                     // 'false' 'else'\n    case 63173:                     // 'null' 'else'\n    case 63231:                     // 'true' 'else'\n    case 63623:                     // 'false' 'empty'\n    case 63685:                     // 'null' 'empty'\n    case 63743:                     // 'true' 'empty'\n    case 65159:                     // 'false' 'end'\n    case 65221:                     // 'null' 'end'\n    case 65279:                     // 'true' 'end'\n    case 66183:                     // 'false' 'eq'\n    case 66245:                     // 'null' 'eq'\n    case 66303:                     // 'true' 'eq'\n    case 67719:                     // 'false' 'except'\n    case 67781:                     // 'null' 'except'\n    case 67839:                     // 'true' 'except'\n    case 71303:                     // 'false' 'for'\n    case 71365:                     // 'null' 'for'\n    case 71423:                     // 'true' 'for'\n    case 75911:                     // 'false' 'ge'\n    case 75973:                     // 'null' 'ge'\n    case 76031:                     // 'true' 'ge'\n    case 76935:                     // 'false' 'group'\n    case 76997:                     // 'null' 'group'\n    case 77055:                     // 'true' 'group'\n    case 77959:                     // 'false' 'gt'\n    case 78021:                     // 'null' 'gt'\n    case 78079:                     // 'true' 'gt'\n    case 78471:                     // 'false' 'idiv'\n    case 78533:                     // 'null' 'idiv'\n    case 78591:                     // 'true' 'idiv'\n    case 83079:                     // 'false' 'instance'\n    case 83141:                     // 'null' 'instance'\n    case 83199:                     // 'true' 'instance'\n    case 84103:                     // 'false' 'intersect'\n    case 84165:                     // 'null' 'intersect'\n    case 84223:                     // 'true' 'intersect'\n    case 84615:                     // 'false' 'into'\n    case 84677:                     // 'null' 'into'\n    case 84735:                     // 'true' 'into'\n    case 85127:                     // 'false' 'is'\n    case 85189:                     // 'null' 'is'\n    case 85247:                     // 'true' 'is'\n    case 89735:                     // 'false' 'le'\n    case 89797:                     // 'null' 'le'\n    case 89855:                     // 'true' 'le'\n    case 90759:                     // 'false' 'let'\n    case 90821:                     // 'null' 'let'\n    case 90879:                     // 'true' 'let'\n    case 92807:                     // 'false' 'lt'\n    case 92869:                     // 'null' 'lt'\n    case 92927:                     // 'true' 'lt'\n    case 93831:                     // 'false' 'mod'\n    case 93893:                     // 'null' 'mod'\n    case 93951:                     // 'true' 'mod'\n    case 94343:                     // 'false' 'modify'\n    case 94405:                     // 'null' 'modify'\n    case 94463:                     // 'true' 'modify'\n    case 96903:                     // 'false' 'ne'\n    case 96965:                     // 'null' 'ne'\n    case 97023:                     // 'true' 'ne'\n    case 103559:                    // 'false' 'only'\n    case 103621:                    // 'null' 'only'\n    case 103679:                    // 'true' 'only'\n    case 104583:                    // 'false' 'or'\n    case 104645:                    // 'null' 'or'\n    case 104703:                    // 'true' 'or'\n    case 105095:                    // 'false' 'order'\n    case 105157:                    // 'null' 'order'\n    case 105215:                    // 'true' 'order'\n    case 107143:                    // 'false' 'paragraphs'\n    case 107205:                    // 'null' 'paragraphs'\n    case 107263:                    // 'true' 'paragraphs'\n    case 114823:                    // 'false' 'return'\n    case 114885:                    // 'null' 'return'\n    case 114943:                    // 'true' 'return'\n    case 116871:                    // 'false' 'satisfies'\n    case 116933:                    // 'null' 'satisfies'\n    case 116991:                    // 'true' 'satisfies'\n    case 121479:                    // 'false' 'sentences'\n    case 121541:                    // 'null' 'sentences'\n    case 121599:                    // 'true' 'sentences'\n    case 123527:                    // 'false' 'stable'\n    case 123589:                    // 'null' 'stable'\n    case 123647:                    // 'true' 'stable'\n    case 124039:                    // 'false' 'start'\n    case 124101:                    // 'null' 'start'\n    case 124159:                    // 'true' 'start'\n    case 129159:                    // 'false' 'times'\n    case 129221:                    // 'null' 'times'\n    case 129279:                    // 'true' 'times'\n    case 129671:                    // 'false' 'to'\n    case 129733:                    // 'null' 'to'\n    case 129791:                    // 'true' 'to'\n    case 130183:                    // 'false' 'treat'\n    case 130245:                    // 'null' 'treat'\n    case 130303:                    // 'true' 'treat'\n    case 133255:                    // 'false' 'union'\n    case 133317:                    // 'null' 'union'\n    case 133375:                    // 'true' 'union'\n    case 139399:                    // 'false' 'where'\n    case 139461:                    // 'null' 'where'\n    case 139519:                    // 'true' 'where'\n    case 141447:                    // 'false' 'with'\n    case 141509:                    // 'null' 'with'\n    case 141567:                    // 'true' 'with'\n    case 142983:                    // 'false' 'words'\n    case 143045:                    // 'null' 'words'\n    case 143103:                    // 'true' 'words'\n    case 145543:                    // 'false' '|'\n    case 145605:                    // 'null' '|'\n    case 145663:                    // 'true' '|'\n    case 146055:                    // 'false' '||'\n    case 146117:                    // 'null' '||'\n    case 146175:                    // 'true' '||'\n    case 146567:                    // 'false' '|}'\n    case 146629:                    // 'null' '|}'\n    case 146687:                    // 'true' '|}'\n    case 147079:                    // 'false' '}'\n    case 147141:                    // 'null' '}'\n    case 147199:                    // 'true' '}'\n      parse_Literal();\n      break;\n    case 31:                        // '$'\n      parse_VarRef();\n      break;\n    case 35:                        // '('\n      parse_ParenthesizedExpr();\n      break;\n    case 32:                        // '$$'\n      parse_ContextItemExpr();\n      break;\n    case -5:\n    case 17926:                     // EQName^Token '('\n    case 17991:                     // 'after' '('\n    case 17993:                     // 'allowing' '('\n    case 17994:                     // 'ancestor' '('\n    case 17995:                     // 'ancestor-or-self' '('\n    case 17996:                     // 'and' '('\n    case 17998:                     // 'append' '('\n    case 18000:                     // 'as' '('\n    case 18001:                     // 'ascending' '('\n    case 18002:                     // 'at' '('\n    case 18004:                     // 'base-uri' '('\n    case 18005:                     // 'before' '('\n    case 18006:                     // 'boundary-space' '('\n    case 18007:                     // 'break' '('\n    case 18009:                     // 'case' '('\n    case 18010:                     // 'cast' '('\n    case 18011:                     // 'castable' '('\n    case 18012:                     // 'catch' '('\n    case 18014:                     // 'child' '('\n    case 18015:                     // 'collation' '('\n    case 18018:                     // 'constraint' '('\n    case 18019:                     // 'construction' '('\n    case 18022:                     // 'context' '('\n    case 18023:                     // 'continue' '('\n    case 18024:                     // 'copy' '('\n    case 18025:                     // 'copy-namespaces' '('\n    case 18026:                     // 'count' '('\n    case 18027:                     // 'decimal-format' '('\n    case 18029:                     // 'declare' '('\n    case 18030:                     // 'default' '('\n    case 18031:                     // 'delete' '('\n    case 18032:                     // 'descendant' '('\n    case 18033:                     // 'descendant-or-self' '('\n    case 18034:                     // 'descending' '('\n    case 18039:                     // 'div' '('\n    case 18040:                     // 'document' '('\n    case 18043:                     // 'else' '('\n    case 18044:                     // 'empty' '('\n    case 18046:                     // 'encoding' '('\n    case 18047:                     // 'end' '('\n    case 18049:                     // 'eq' '('\n    case 18050:                     // 'every' '('\n    case 18052:                     // 'except' '('\n    case 18053:                     // 'exit' '('\n    case 18054:                     // 'external' '('\n    case 18056:                     // 'first' '('\n    case 18057:                     // 'following' '('\n    case 18058:                     // 'following-sibling' '('\n    case 18059:                     // 'for' '('\n    case 18062:                     // 'from' '('\n    case 18063:                     // 'ft-option' '('\n    case 18068:                     // 'ge' '('\n    case 18070:                     // 'group' '('\n    case 18072:                     // 'gt' '('\n    case 18073:                     // 'idiv' '('\n    case 18075:                     // 'import' '('\n    case 18076:                     // 'in' '('\n    case 18077:                     // 'index' '('\n    case 18081:                     // 'insert' '('\n    case 18082:                     // 'instance' '('\n    case 18083:                     // 'integrity' '('\n    case 18084:                     // 'intersect' '('\n    case 18085:                     // 'into' '('\n    case 18086:                     // 'is' '('\n    case 18088:                     // 'json' '('\n    case 18090:                     // 'jsoniq' '('\n    case 18093:                     // 'last' '('\n    case 18094:                     // 'lax' '('\n    case 18095:                     // 'le' '('\n    case 18097:                     // 'let' '('\n    case 18099:                     // 'loop' '('\n    case 18101:                     // 'lt' '('\n    case 18103:                     // 'mod' '('\n    case 18104:                     // 'modify' '('\n    case 18105:                     // 'module' '('\n    case 18107:                     // 'namespace' '('\n    case 18109:                     // 'ne' '('\n    case 18115:                     // 'nodes' '('\n    case 18118:                     // 'object' '('\n    case 18122:                     // 'only' '('\n    case 18123:                     // 'option' '('\n    case 18124:                     // 'or' '('\n    case 18125:                     // 'order' '('\n    case 18126:                     // 'ordered' '('\n    case 18127:                     // 'ordering' '('\n    case 18130:                     // 'parent' '('\n    case 18136:                     // 'preceding' '('\n    case 18137:                     // 'preceding-sibling' '('\n    case 18142:                     // 'rename' '('\n    case 18143:                     // 'replace' '('\n    case 18144:                     // 'return' '('\n    case 18145:                     // 'returning' '('\n    case 18146:                     // 'revalidation' '('\n    case 18148:                     // 'satisfies' '('\n    case 18149:                     // 'schema' '('\n    case 18152:                     // 'score' '('\n    case 18153:                     // 'select' '('\n    case 18154:                     // 'self' '('\n    case 18159:                     // 'sliding' '('\n    case 18160:                     // 'some' '('\n    case 18161:                     // 'stable' '('\n    case 18162:                     // 'start' '('\n    case 18165:                     // 'strict' '('\n    case 18173:                     // 'to' '('\n    case 18174:                     // 'treat' '('\n    case 18176:                     // 'try' '('\n    case 18177:                     // 'tumbling' '('\n    case 18178:                     // 'type' '('\n    case 18180:                     // 'union' '('\n    case 18182:                     // 'unordered' '('\n    case 18183:                     // 'updating' '('\n    case 18186:                     // 'validate' '('\n    case 18187:                     // 'value' '('\n    case 18188:                     // 'variable' '('\n    case 18189:                     // 'version' '('\n    case 18192:                     // 'where' '('\n    case 18193:                     // 'while' '('\n    case 18196:                     // 'with' '('\n      parse_FunctionCall();\n      break;\n    case 144078:                    // 'ordered' '{'\n      parse_OrderedExpr();\n      break;\n    case 144134:                    // 'unordered' '{'\n      parse_UnorderedExpr();\n      break;\n    case 33:                        // '%'\n    case 79:                        // 'array'\n    case 121:                       // 'document-node'\n    case 125:                       // 'empty-sequence'\n    case 147:                       // 'function'\n    case 154:                       // 'if'\n    case 167:                       // 'item'\n    case 169:                       // 'json-item'\n    case 188:                       // 'namespace-node'\n    case 194:                       // 'node'\n    case 230:                       // 'schema-attribute'\n    case 231:                       // 'schema-element'\n    case 247:                       // 'structured-item'\n    case 248:                       // 'switch'\n    case 259:                       // 'typeswitch'\n    case 14854:                     // EQName^Token '#'\n    case 14919:                     // 'after' '#'\n    case 14921:                     // 'allowing' '#'\n    case 14922:                     // 'ancestor' '#'\n    case 14923:                     // 'ancestor-or-self' '#'\n    case 14924:                     // 'and' '#'\n    case 14926:                     // 'append' '#'\n    case 14928:                     // 'as' '#'\n    case 14929:                     // 'ascending' '#'\n    case 14930:                     // 'at' '#'\n    case 14931:                     // 'attribute' '#'\n    case 14932:                     // 'base-uri' '#'\n    case 14933:                     // 'before' '#'\n    case 14934:                     // 'boundary-space' '#'\n    case 14935:                     // 'break' '#'\n    case 14937:                     // 'case' '#'\n    case 14938:                     // 'cast' '#'\n    case 14939:                     // 'castable' '#'\n    case 14940:                     // 'catch' '#'\n    case 14942:                     // 'child' '#'\n    case 14943:                     // 'collation' '#'\n    case 14945:                     // 'comment' '#'\n    case 14946:                     // 'constraint' '#'\n    case 14947:                     // 'construction' '#'\n    case 14950:                     // 'context' '#'\n    case 14951:                     // 'continue' '#'\n    case 14952:                     // 'copy' '#'\n    case 14953:                     // 'copy-namespaces' '#'\n    case 14954:                     // 'count' '#'\n    case 14955:                     // 'decimal-format' '#'\n    case 14957:                     // 'declare' '#'\n    case 14958:                     // 'default' '#'\n    case 14959:                     // 'delete' '#'\n    case 14960:                     // 'descendant' '#'\n    case 14961:                     // 'descendant-or-self' '#'\n    case 14962:                     // 'descending' '#'\n    case 14967:                     // 'div' '#'\n    case 14968:                     // 'document' '#'\n    case 14970:                     // 'element' '#'\n    case 14971:                     // 'else' '#'\n    case 14972:                     // 'empty' '#'\n    case 14974:                     // 'encoding' '#'\n    case 14975:                     // 'end' '#'\n    case 14977:                     // 'eq' '#'\n    case 14978:                     // 'every' '#'\n    case 14980:                     // 'except' '#'\n    case 14981:                     // 'exit' '#'\n    case 14982:                     // 'external' '#'\n    case 14983:                     // 'false' '#'\n    case 14984:                     // 'first' '#'\n    case 14985:                     // 'following' '#'\n    case 14986:                     // 'following-sibling' '#'\n    case 14987:                     // 'for' '#'\n    case 14990:                     // 'from' '#'\n    case 14991:                     // 'ft-option' '#'\n    case 14996:                     // 'ge' '#'\n    case 14998:                     // 'group' '#'\n    case 15000:                     // 'gt' '#'\n    case 15001:                     // 'idiv' '#'\n    case 15003:                     // 'import' '#'\n    case 15004:                     // 'in' '#'\n    case 15005:                     // 'index' '#'\n    case 15009:                     // 'insert' '#'\n    case 15010:                     // 'instance' '#'\n    case 15011:                     // 'integrity' '#'\n    case 15012:                     // 'intersect' '#'\n    case 15013:                     // 'into' '#'\n    case 15014:                     // 'is' '#'\n    case 15016:                     // 'json' '#'\n    case 15018:                     // 'jsoniq' '#'\n    case 15021:                     // 'last' '#'\n    case 15022:                     // 'lax' '#'\n    case 15023:                     // 'le' '#'\n    case 15025:                     // 'let' '#'\n    case 15027:                     // 'loop' '#'\n    case 15029:                     // 'lt' '#'\n    case 15031:                     // 'mod' '#'\n    case 15032:                     // 'modify' '#'\n    case 15033:                     // 'module' '#'\n    case 15035:                     // 'namespace' '#'\n    case 15037:                     // 'ne' '#'\n    case 15043:                     // 'nodes' '#'\n    case 15045:                     // 'null' '#'\n    case 15046:                     // 'object' '#'\n    case 15050:                     // 'only' '#'\n    case 15051:                     // 'option' '#'\n    case 15052:                     // 'or' '#'\n    case 15053:                     // 'order' '#'\n    case 15054:                     // 'ordered' '#'\n    case 15055:                     // 'ordering' '#'\n    case 15058:                     // 'parent' '#'\n    case 15064:                     // 'preceding' '#'\n    case 15065:                     // 'preceding-sibling' '#'\n    case 15068:                     // 'processing-instruction' '#'\n    case 15070:                     // 'rename' '#'\n    case 15071:                     // 'replace' '#'\n    case 15072:                     // 'return' '#'\n    case 15073:                     // 'returning' '#'\n    case 15074:                     // 'revalidation' '#'\n    case 15076:                     // 'satisfies' '#'\n    case 15077:                     // 'schema' '#'\n    case 15080:                     // 'score' '#'\n    case 15081:                     // 'select' '#'\n    case 15082:                     // 'self' '#'\n    case 15087:                     // 'sliding' '#'\n    case 15088:                     // 'some' '#'\n    case 15089:                     // 'stable' '#'\n    case 15090:                     // 'start' '#'\n    case 15093:                     // 'strict' '#'\n    case 15097:                     // 'text' '#'\n    case 15101:                     // 'to' '#'\n    case 15102:                     // 'treat' '#'\n    case 15103:                     // 'true' '#'\n    case 15104:                     // 'try' '#'\n    case 15105:                     // 'tumbling' '#'\n    case 15106:                     // 'type' '#'\n    case 15108:                     // 'union' '#'\n    case 15110:                     // 'unordered' '#'\n    case 15111:                     // 'updating' '#'\n    case 15114:                     // 'validate' '#'\n    case 15115:                     // 'value' '#'\n    case 15116:                     // 'variable' '#'\n    case 15117:                     // 'version' '#'\n    case 15120:                     // 'where' '#'\n    case 15121:                     // 'while' '#'\n    case 15124:                     // 'with' '#'\n      parse_FunctionItemExpr();\n      break;\n    case -10:\n    case 27929:                     // '{' ';'\n      parse_BlockExpr();\n      break;\n    case -11:\n    case 10009:                     // '{' NCName^Token\n      parse_ObjectConstructor();\n      break;\n    case 69:                        // '['\n      parse_ArrayConstructor();\n      break;\n    case 283:                       // '{|'\n      parse_JSONSimpleObjectUnion();\n      break;\n    default:\n      parse_Constructor();\n    }\n    eventHandler.endNonterminal(\"PrimaryExpr\", e0);\n  }\n\n  function try_PrimaryExpr()\n  {\n    switch (l1)\n    {\n    case 187:                       // 'namespace'\n      lookahead2W(247);             // NCName^Token | S^WS | '#' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      break;\n    case 220:                       // 'processing-instruction'\n      lookahead2W(245);             // NCName^Token | S^WS | '#' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      break;\n    case 281:                       // '{'\n      lookahead2W(283);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    case 83:                        // 'attribute'\n    case 122:                       // 'element'\n      lookahead2W(253);             // EQName^Token | S^WS | '#' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      break;\n    case 97:                        // 'comment'\n    case 249:                       // 'text'\n      lookahead2W(97);              // S^WS | '#' | '(:' | '{'\n      break;\n    case 120:                       // 'document'\n    case 206:                       // 'ordered'\n    case 262:                       // 'unordered'\n      lookahead2W(148);             // S^WS | '#' | '(' | '(:' | '{'\n      break;\n    case 135:                       // 'false'\n    case 197:                       // 'null'\n    case 255:                       // 'true'\n      lookahead2W(237);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '.' |\n      break;\n    case 6:                         // EQName^Token\n    case 71:                        // 'after'\n    case 73:                        // 'allowing'\n    case 74:                        // 'ancestor'\n    case 75:                        // 'ancestor-or-self'\n    case 76:                        // 'and'\n    case 78:                        // 'append'\n    case 80:                        // 'as'\n    case 81:                        // 'ascending'\n    case 82:                        // 'at'\n    case 84:                        // 'base-uri'\n    case 85:                        // 'before'\n    case 86:                        // 'boundary-space'\n    case 87:                        // 'break'\n    case 89:                        // 'case'\n    case 90:                        // 'cast'\n    case 91:                        // 'castable'\n    case 92:                        // 'catch'\n    case 94:                        // 'child'\n    case 95:                        // 'collation'\n    case 98:                        // 'constraint'\n    case 99:                        // 'construction'\n    case 102:                       // 'context'\n    case 103:                       // 'continue'\n    case 104:                       // 'copy'\n    case 105:                       // 'copy-namespaces'\n    case 106:                       // 'count'\n    case 107:                       // 'decimal-format'\n    case 109:                       // 'declare'\n    case 110:                       // 'default'\n    case 111:                       // 'delete'\n    case 112:                       // 'descendant'\n    case 113:                       // 'descendant-or-self'\n    case 114:                       // 'descending'\n    case 119:                       // 'div'\n    case 123:                       // 'else'\n    case 124:                       // 'empty'\n    case 126:                       // 'encoding'\n    case 127:                       // 'end'\n    case 129:                       // 'eq'\n    case 130:                       // 'every'\n    case 132:                       // 'except'\n    case 133:                       // 'exit'\n    case 134:                       // 'external'\n    case 136:                       // 'first'\n    case 137:                       // 'following'\n    case 138:                       // 'following-sibling'\n    case 139:                       // 'for'\n    case 142:                       // 'from'\n    case 143:                       // 'ft-option'\n    case 148:                       // 'ge'\n    case 150:                       // 'group'\n    case 152:                       // 'gt'\n    case 153:                       // 'idiv'\n    case 155:                       // 'import'\n    case 156:                       // 'in'\n    case 157:                       // 'index'\n    case 161:                       // 'insert'\n    case 162:                       // 'instance'\n    case 163:                       // 'integrity'\n    case 164:                       // 'intersect'\n    case 165:                       // 'into'\n    case 166:                       // 'is'\n    case 168:                       // 'json'\n    case 170:                       // 'jsoniq'\n    case 173:                       // 'last'\n    case 174:                       // 'lax'\n    case 175:                       // 'le'\n    case 177:                       // 'let'\n    case 179:                       // 'loop'\n    case 181:                       // 'lt'\n    case 183:                       // 'mod'\n    case 184:                       // 'modify'\n    case 185:                       // 'module'\n    case 189:                       // 'ne'\n    case 195:                       // 'nodes'\n    case 198:                       // 'object'\n    case 202:                       // 'only'\n    case 203:                       // 'option'\n    case 204:                       // 'or'\n    case 205:                       // 'order'\n    case 207:                       // 'ordering'\n    case 210:                       // 'parent'\n    case 216:                       // 'preceding'\n    case 217:                       // 'preceding-sibling'\n    case 222:                       // 'rename'\n    case 223:                       // 'replace'\n    case 224:                       // 'return'\n    case 225:                       // 'returning'\n    case 226:                       // 'revalidation'\n    case 228:                       // 'satisfies'\n    case 229:                       // 'schema'\n    case 232:                       // 'score'\n    case 233:                       // 'select'\n    case 234:                       // 'self'\n    case 239:                       // 'sliding'\n    case 240:                       // 'some'\n    case 241:                       // 'stable'\n    case 242:                       // 'start'\n    case 245:                       // 'strict'\n    case 253:                       // 'to'\n    case 254:                       // 'treat'\n    case 256:                       // 'try'\n    case 257:                       // 'tumbling'\n    case 258:                       // 'type'\n    case 260:                       // 'union'\n    case 263:                       // 'updating'\n    case 266:                       // 'validate'\n    case 267:                       // 'value'\n    case 268:                       // 'variable'\n    case 269:                       // 'version'\n    case 272:                       // 'where'\n    case 273:                       // 'while'\n    case 276:                       // 'with'\n      lookahead2W(95);              // S^WS | '#' | '(' | '(:'\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 3353                  // '{' EQName^Token\n     || lk == 4377                  // '{' IntegerLiteral\n     || lk == 4889                  // '{' DecimalLiteral\n     || lk == 5401                  // '{' DoubleLiteral\n     || lk == 5913                  // '{' StringLiteral\n     || lk == 16153                 // '{' '$'\n     || lk == 16665                 // '{' '$$'\n     || lk == 17177                 // '{' '%'\n     || lk == 18055                 // 'false' '('\n     || lk == 18117                 // 'null' '('\n     || lk == 18175                 // 'true' '('\n     || lk == 18201                 // '{' '('\n     || lk == 18713                 // '{' '(#'\n     || lk == 21273                 // '{' '+'\n     || lk == 22297                 // '{' '-'\n     || lk == 24345                 // '{' '/'\n     || lk == 24857                 // '{' '//'\n     || lk == 28441                 // '{' '<'\n     || lk == 28953                 // '{' '<!--'\n     || lk == 31001                 // '{' '<?'\n     || lk == 35609                 // '{' '['\n     || lk == 36633                 // '{' 'after'\n     || lk == 37657                 // '{' 'allowing'\n     || lk == 38169                 // '{' 'ancestor'\n     || lk == 38681                 // '{' 'ancestor-or-self'\n     || lk == 39193                 // '{' 'and'\n     || lk == 40217                 // '{' 'append'\n     || lk == 40729                 // '{' 'array'\n     || lk == 41241                 // '{' 'as'\n     || lk == 41753                 // '{' 'ascending'\n     || lk == 42265                 // '{' 'at'\n     || lk == 42777                 // '{' 'attribute'\n     || lk == 43289                 // '{' 'base-uri'\n     || lk == 43801                 // '{' 'before'\n     || lk == 44313                 // '{' 'boundary-space'\n     || lk == 44825                 // '{' 'break'\n     || lk == 45849                 // '{' 'case'\n     || lk == 46361                 // '{' 'cast'\n     || lk == 46873                 // '{' 'castable'\n     || lk == 47385                 // '{' 'catch'\n     || lk == 48409                 // '{' 'child'\n     || lk == 48921                 // '{' 'collation'\n     || lk == 49945                 // '{' 'comment'\n     || lk == 50457                 // '{' 'constraint'\n     || lk == 50969                 // '{' 'construction'\n     || lk == 52505                 // '{' 'context'\n     || lk == 53017                 // '{' 'continue'\n     || lk == 53529                 // '{' 'copy'\n     || lk == 54041                 // '{' 'copy-namespaces'\n     || lk == 54553                 // '{' 'count'\n     || lk == 55065                 // '{' 'decimal-format'\n     || lk == 56089                 // '{' 'declare'\n     || lk == 56601                 // '{' 'default'\n     || lk == 57113                 // '{' 'delete'\n     || lk == 57625                 // '{' 'descendant'\n     || lk == 58137                 // '{' 'descendant-or-self'\n     || lk == 58649                 // '{' 'descending'\n     || lk == 61209                 // '{' 'div'\n     || lk == 61721                 // '{' 'document'\n     || lk == 62233                 // '{' 'document-node'\n     || lk == 62745                 // '{' 'element'\n     || lk == 63257                 // '{' 'else'\n     || lk == 63769                 // '{' 'empty'\n     || lk == 64281                 // '{' 'empty-sequence'\n     || lk == 64793                 // '{' 'encoding'\n     || lk == 65305                 // '{' 'end'\n     || lk == 66329                 // '{' 'eq'\n     || lk == 66841                 // '{' 'every'\n     || lk == 67865                 // '{' 'except'\n     || lk == 68377                 // '{' 'exit'\n     || lk == 68889                 // '{' 'external'\n     || lk == 69401                 // '{' 'false'\n     || lk == 69913                 // '{' 'first'\n     || lk == 70425                 // '{' 'following'\n     || lk == 70937                 // '{' 'following-sibling'\n     || lk == 71449                 // '{' 'for'\n     || lk == 72985                 // '{' 'from'\n     || lk == 73497                 // '{' 'ft-option'\n     || lk == 75545                 // '{' 'function'\n     || lk == 76057                 // '{' 'ge'\n     || lk == 77081                 // '{' 'group'\n     || lk == 78105                 // '{' 'gt'\n     || lk == 78617                 // '{' 'idiv'\n     || lk == 79129                 // '{' 'if'\n     || lk == 79641                 // '{' 'import'\n     || lk == 80153                 // '{' 'in'\n     || lk == 80665                 // '{' 'index'\n     || lk == 82713                 // '{' 'insert'\n     || lk == 83225                 // '{' 'instance'\n     || lk == 83737                 // '{' 'integrity'\n     || lk == 84249                 // '{' 'intersect'\n     || lk == 84761                 // '{' 'into'\n     || lk == 85273                 // '{' 'is'\n     || lk == 85785                 // '{' 'item'\n     || lk == 86297                 // '{' 'json'\n     || lk == 86809                 // '{' 'json-item'\n     || lk == 87321                 // '{' 'jsoniq'\n     || lk == 88857                 // '{' 'last'\n     || lk == 89369                 // '{' 'lax'\n     || lk == 89881                 // '{' 'le'\n     || lk == 90905                 // '{' 'let'\n     || lk == 91929                 // '{' 'loop'\n     || lk == 92953                 // '{' 'lt'\n     || lk == 93977                 // '{' 'mod'\n     || lk == 94489                 // '{' 'modify'\n     || lk == 95001                 // '{' 'module'\n     || lk == 96025                 // '{' 'namespace'\n     || lk == 96537                 // '{' 'namespace-node'\n     || lk == 97049                 // '{' 'ne'\n     || lk == 99609                 // '{' 'node'\n     || lk == 100121                // '{' 'nodes'\n     || lk == 100633                // '{' 'not'\n     || lk == 101145                // '{' 'null'\n     || lk == 101657                // '{' 'object'\n     || lk == 103705                // '{' 'only'\n     || lk == 104217                // '{' 'option'\n     || lk == 104729                // '{' 'or'\n     || lk == 105241                // '{' 'order'\n     || lk == 105753                // '{' 'ordered'\n     || lk == 106265                // '{' 'ordering'\n     || lk == 107801                // '{' 'parent'\n     || lk == 110873                // '{' 'preceding'\n     || lk == 111385                // '{' 'preceding-sibling'\n     || lk == 112921                // '{' 'processing-instruction'\n     || lk == 113945                // '{' 'rename'\n     || lk == 114457                // '{' 'replace'\n     || lk == 114969                // '{' 'return'\n     || lk == 115481                // '{' 'returning'\n     || lk == 115993                // '{' 'revalidation'\n     || lk == 117017                // '{' 'satisfies'\n     || lk == 117529                // '{' 'schema'\n     || lk == 118041                // '{' 'schema-attribute'\n     || lk == 118553                // '{' 'schema-element'\n     || lk == 119065                // '{' 'score'\n     || lk == 119577                // '{' 'select'\n     || lk == 120089                // '{' 'self'\n     || lk == 122649                // '{' 'sliding'\n     || lk == 123161                // '{' 'some'\n     || lk == 123673                // '{' 'stable'\n     || lk == 124185                // '{' 'start'\n     || lk == 125721                // '{' 'strict'\n     || lk == 126745                // '{' 'structured-item'\n     || lk == 127257                // '{' 'switch'\n     || lk == 127769                // '{' 'text'\n     || lk == 129817                // '{' 'to'\n     || lk == 130329                // '{' 'treat'\n     || lk == 130841                // '{' 'true'\n     || lk == 131353                // '{' 'try'\n     || lk == 131865                // '{' 'tumbling'\n     || lk == 132377                // '{' 'type'\n     || lk == 132889                // '{' 'typeswitch'\n     || lk == 133401                // '{' 'union'\n     || lk == 134425                // '{' 'unordered'\n     || lk == 134937                // '{' 'updating'\n     || lk == 136473                // '{' 'validate'\n     || lk == 136985                // '{' 'value'\n     || lk == 137497                // '{' 'variable'\n     || lk == 138009                // '{' 'version'\n     || lk == 139545                // '{' 'where'\n     || lk == 140057                // '{' 'while'\n     || lk == 141593                // '{' 'with'\n     || lk == 144153                // '{' '{'\n     || lk == 145177                // '{' '{|'\n     || lk == 147225)               // '{' '}'\n    {\n      lk = memoized(20, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_Literal();\n          memoize(20, e0A, -1);\n          lk = -14;\n        }\n        catch (p1A)\n        {\n          try\n          {\n            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n            b2 = b2A; e2 = e2A; end = e2A; }}\n            try_FunctionCall();\n            memoize(20, e0A, -5);\n            lk = -14;\n          }\n          catch (p5A)\n          {\n            try\n            {\n              b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n              b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n              b2 = b2A; e2 = e2A; end = e2A; }}\n              try_BlockExpr();\n              memoize(20, e0A, -10);\n              lk = -14;\n            }\n            catch (p10A)\n            {\n              lk = -11;\n              b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n              b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n              b2 = b2A; e2 = e2A; end = e2A; }}\n              memoize(20, e0A, -11);\n            }\n          }\n        }\n      }\n    }\n    switch (lk)\n    {\n    case -1:\n    case 8:                         // IntegerLiteral\n    case 9:                         // DecimalLiteral\n    case 10:                        // DoubleLiteral\n    case 11:                        // StringLiteral\n    case 12935:                     // 'false' EOF\n    case 12997:                     // 'null' EOF\n    case 13055:                     // 'true' EOF\n    case 13447:                     // 'false' '!'\n    case 13509:                     // 'null' '!'\n    case 13567:                     // 'true' '!'\n    case 13959:                     // 'false' '!='\n    case 14021:                     // 'null' '!='\n    case 14079:                     // 'true' '!='\n    case 19591:                     // 'false' ')'\n    case 19653:                     // 'null' ')'\n    case 19711:                     // 'true' ')'\n    case 20103:                     // 'false' '*'\n    case 20165:                     // 'null' '*'\n    case 20223:                     // 'true' '*'\n    case 21127:                     // 'false' '+'\n    case 21189:                     // 'null' '+'\n    case 21247:                     // 'true' '+'\n    case 21639:                     // 'false' ','\n    case 21701:                     // 'null' ','\n    case 21759:                     // 'true' ','\n    case 22151:                     // 'false' '-'\n    case 22213:                     // 'null' '-'\n    case 22271:                     // 'true' '-'\n    case 23175:                     // 'false' '.'\n    case 23237:                     // 'null' '.'\n    case 23295:                     // 'true' '.'\n    case 24199:                     // 'false' '/'\n    case 24261:                     // 'null' '/'\n    case 24319:                     // 'true' '/'\n    case 24711:                     // 'false' '//'\n    case 24773:                     // 'null' '//'\n    case 24831:                     // 'true' '//'\n    case 25735:                     // 'false' ':'\n    case 25797:                     // 'null' ':'\n    case 25855:                     // 'true' ':'\n    case 27783:                     // 'false' ';'\n    case 27845:                     // 'null' ';'\n    case 27903:                     // 'true' ';'\n    case 28295:                     // 'false' '<'\n    case 28357:                     // 'null' '<'\n    case 28415:                     // 'true' '<'\n    case 29831:                     // 'false' '<<'\n    case 29893:                     // 'null' '<<'\n    case 29951:                     // 'true' '<<'\n    case 30343:                     // 'false' '<='\n    case 30405:                     // 'null' '<='\n    case 30463:                     // 'true' '<='\n    case 31367:                     // 'false' '='\n    case 31429:                     // 'null' '='\n    case 31487:                     // 'true' '='\n    case 31879:                     // 'false' '>'\n    case 31941:                     // 'null' '>'\n    case 31999:                     // 'true' '>'\n    case 32391:                     // 'false' '>='\n    case 32453:                     // 'null' '>='\n    case 32511:                     // 'true' '>='\n    case 32903:                     // 'false' '>>'\n    case 32965:                     // 'null' '>>'\n    case 33023:                     // 'true' '>>'\n    case 35463:                     // 'false' '['\n    case 35525:                     // 'null' '['\n    case 35583:                     // 'true' '['\n    case 35975:                     // 'false' ']'\n    case 36037:                     // 'null' ']'\n    case 36095:                     // 'true' ']'\n    case 36487:                     // 'false' 'after'\n    case 36549:                     // 'null' 'after'\n    case 36607:                     // 'true' 'after'\n    case 39047:                     // 'false' 'and'\n    case 39109:                     // 'null' 'and'\n    case 39167:                     // 'true' 'and'\n    case 41095:                     // 'false' 'as'\n    case 41157:                     // 'null' 'as'\n    case 41215:                     // 'true' 'as'\n    case 41607:                     // 'false' 'ascending'\n    case 41669:                     // 'null' 'ascending'\n    case 41727:                     // 'true' 'ascending'\n    case 42119:                     // 'false' 'at'\n    case 42181:                     // 'null' 'at'\n    case 42239:                     // 'true' 'at'\n    case 43655:                     // 'false' 'before'\n    case 43717:                     // 'null' 'before'\n    case 43775:                     // 'true' 'before'\n    case 45191:                     // 'false' 'by'\n    case 45253:                     // 'null' 'by'\n    case 45311:                     // 'true' 'by'\n    case 45703:                     // 'false' 'case'\n    case 45765:                     // 'null' 'case'\n    case 45823:                     // 'true' 'case'\n    case 46215:                     // 'false' 'cast'\n    case 46277:                     // 'null' 'cast'\n    case 46335:                     // 'true' 'cast'\n    case 46727:                     // 'false' 'castable'\n    case 46789:                     // 'null' 'castable'\n    case 46847:                     // 'true' 'castable'\n    case 48775:                     // 'false' 'collation'\n    case 48837:                     // 'null' 'collation'\n    case 48895:                     // 'true' 'collation'\n    case 51335:                     // 'false' 'contains'\n    case 51397:                     // 'null' 'contains'\n    case 51455:                     // 'true' 'contains'\n    case 54407:                     // 'false' 'count'\n    case 54469:                     // 'null' 'count'\n    case 54527:                     // 'true' 'count'\n    case 56455:                     // 'false' 'default'\n    case 56517:                     // 'null' 'default'\n    case 56575:                     // 'true' 'default'\n    case 58503:                     // 'false' 'descending'\n    case 58565:                     // 'null' 'descending'\n    case 58623:                     // 'true' 'descending'\n    case 61063:                     // 'false' 'div'\n    case 61125:                     // 'null' 'div'\n    case 61183:                     // 'true' 'div'\n    case 63111:                     // 'false' 'else'\n    case 63173:                     // 'null' 'else'\n    case 63231:                     // 'true' 'else'\n    case 63623:                     // 'false' 'empty'\n    case 63685:                     // 'null' 'empty'\n    case 63743:                     // 'true' 'empty'\n    case 65159:                     // 'false' 'end'\n    case 65221:                     // 'null' 'end'\n    case 65279:                     // 'true' 'end'\n    case 66183:                     // 'false' 'eq'\n    case 66245:                     // 'null' 'eq'\n    case 66303:                     // 'true' 'eq'\n    case 67719:                     // 'false' 'except'\n    case 67781:                     // 'null' 'except'\n    case 67839:                     // 'true' 'except'\n    case 71303:                     // 'false' 'for'\n    case 71365:                     // 'null' 'for'\n    case 71423:                     // 'true' 'for'\n    case 75911:                     // 'false' 'ge'\n    case 75973:                     // 'null' 'ge'\n    case 76031:                     // 'true' 'ge'\n    case 76935:                     // 'false' 'group'\n    case 76997:                     // 'null' 'group'\n    case 77055:                     // 'true' 'group'\n    case 77959:                     // 'false' 'gt'\n    case 78021:                     // 'null' 'gt'\n    case 78079:                     // 'true' 'gt'\n    case 78471:                     // 'false' 'idiv'\n    case 78533:                     // 'null' 'idiv'\n    case 78591:                     // 'true' 'idiv'\n    case 83079:                     // 'false' 'instance'\n    case 83141:                     // 'null' 'instance'\n    case 83199:                     // 'true' 'instance'\n    case 84103:                     // 'false' 'intersect'\n    case 84165:                     // 'null' 'intersect'\n    case 84223:                     // 'true' 'intersect'\n    case 84615:                     // 'false' 'into'\n    case 84677:                     // 'null' 'into'\n    case 84735:                     // 'true' 'into'\n    case 85127:                     // 'false' 'is'\n    case 85189:                     // 'null' 'is'\n    case 85247:                     // 'true' 'is'\n    case 89735:                     // 'false' 'le'\n    case 89797:                     // 'null' 'le'\n    case 89855:                     // 'true' 'le'\n    case 90759:                     // 'false' 'let'\n    case 90821:                     // 'null' 'let'\n    case 90879:                     // 'true' 'let'\n    case 92807:                     // 'false' 'lt'\n    case 92869:                     // 'null' 'lt'\n    case 92927:                     // 'true' 'lt'\n    case 93831:                     // 'false' 'mod'\n    case 93893:                     // 'null' 'mod'\n    case 93951:                     // 'true' 'mod'\n    case 94343:                     // 'false' 'modify'\n    case 94405:                     // 'null' 'modify'\n    case 94463:                     // 'true' 'modify'\n    case 96903:                     // 'false' 'ne'\n    case 96965:                     // 'null' 'ne'\n    case 97023:                     // 'true' 'ne'\n    case 103559:                    // 'false' 'only'\n    case 103621:                    // 'null' 'only'\n    case 103679:                    // 'true' 'only'\n    case 104583:                    // 'false' 'or'\n    case 104645:                    // 'null' 'or'\n    case 104703:                    // 'true' 'or'\n    case 105095:                    // 'false' 'order'\n    case 105157:                    // 'null' 'order'\n    case 105215:                    // 'true' 'order'\n    case 107143:                    // 'false' 'paragraphs'\n    case 107205:                    // 'null' 'paragraphs'\n    case 107263:                    // 'true' 'paragraphs'\n    case 114823:                    // 'false' 'return'\n    case 114885:                    // 'null' 'return'\n    case 114943:                    // 'true' 'return'\n    case 116871:                    // 'false' 'satisfies'\n    case 116933:                    // 'null' 'satisfies'\n    case 116991:                    // 'true' 'satisfies'\n    case 121479:                    // 'false' 'sentences'\n    case 121541:                    // 'null' 'sentences'\n    case 121599:                    // 'true' 'sentences'\n    case 123527:                    // 'false' 'stable'\n    case 123589:                    // 'null' 'stable'\n    case 123647:                    // 'true' 'stable'\n    case 124039:                    // 'false' 'start'\n    case 124101:                    // 'null' 'start'\n    case 124159:                    // 'true' 'start'\n    case 129159:                    // 'false' 'times'\n    case 129221:                    // 'null' 'times'\n    case 129279:                    // 'true' 'times'\n    case 129671:                    // 'false' 'to'\n    case 129733:                    // 'null' 'to'\n    case 129791:                    // 'true' 'to'\n    case 130183:                    // 'false' 'treat'\n    case 130245:                    // 'null' 'treat'\n    case 130303:                    // 'true' 'treat'\n    case 133255:                    // 'false' 'union'\n    case 133317:                    // 'null' 'union'\n    case 133375:                    // 'true' 'union'\n    case 139399:                    // 'false' 'where'\n    case 139461:                    // 'null' 'where'\n    case 139519:                    // 'true' 'where'\n    case 141447:                    // 'false' 'with'\n    case 141509:                    // 'null' 'with'\n    case 141567:                    // 'true' 'with'\n    case 142983:                    // 'false' 'words'\n    case 143045:                    // 'null' 'words'\n    case 143103:                    // 'true' 'words'\n    case 145543:                    // 'false' '|'\n    case 145605:                    // 'null' '|'\n    case 145663:                    // 'true' '|'\n    case 146055:                    // 'false' '||'\n    case 146117:                    // 'null' '||'\n    case 146175:                    // 'true' '||'\n    case 146567:                    // 'false' '|}'\n    case 146629:                    // 'null' '|}'\n    case 146687:                    // 'true' '|}'\n    case 147079:                    // 'false' '}'\n    case 147141:                    // 'null' '}'\n    case 147199:                    // 'true' '}'\n      try_Literal();\n      break;\n    case 31:                        // '$'\n      try_VarRef();\n      break;\n    case 35:                        // '('\n      try_ParenthesizedExpr();\n      break;\n    case 32:                        // '$$'\n      try_ContextItemExpr();\n      break;\n    case -5:\n    case 17926:                     // EQName^Token '('\n    case 17991:                     // 'after' '('\n    case 17993:                     // 'allowing' '('\n    case 17994:                     // 'ancestor' '('\n    case 17995:                     // 'ancestor-or-self' '('\n    case 17996:                     // 'and' '('\n    case 17998:                     // 'append' '('\n    case 18000:                     // 'as' '('\n    case 18001:                     // 'ascending' '('\n    case 18002:                     // 'at' '('\n    case 18004:                     // 'base-uri' '('\n    case 18005:                     // 'before' '('\n    case 18006:                     // 'boundary-space' '('\n    case 18007:                     // 'break' '('\n    case 18009:                     // 'case' '('\n    case 18010:                     // 'cast' '('\n    case 18011:                     // 'castable' '('\n    case 18012:                     // 'catch' '('\n    case 18014:                     // 'child' '('\n    case 18015:                     // 'collation' '('\n    case 18018:                     // 'constraint' '('\n    case 18019:                     // 'construction' '('\n    case 18022:                     // 'context' '('\n    case 18023:                     // 'continue' '('\n    case 18024:                     // 'copy' '('\n    case 18025:                     // 'copy-namespaces' '('\n    case 18026:                     // 'count' '('\n    case 18027:                     // 'decimal-format' '('\n    case 18029:                     // 'declare' '('\n    case 18030:                     // 'default' '('\n    case 18031:                     // 'delete' '('\n    case 18032:                     // 'descendant' '('\n    case 18033:                     // 'descendant-or-self' '('\n    case 18034:                     // 'descending' '('\n    case 18039:                     // 'div' '('\n    case 18040:                     // 'document' '('\n    case 18043:                     // 'else' '('\n    case 18044:                     // 'empty' '('\n    case 18046:                     // 'encoding' '('\n    case 18047:                     // 'end' '('\n    case 18049:                     // 'eq' '('\n    case 18050:                     // 'every' '('\n    case 18052:                     // 'except' '('\n    case 18053:                     // 'exit' '('\n    case 18054:                     // 'external' '('\n    case 18056:                     // 'first' '('\n    case 18057:                     // 'following' '('\n    case 18058:                     // 'following-sibling' '('\n    case 18059:                     // 'for' '('\n    case 18062:                     // 'from' '('\n    case 18063:                     // 'ft-option' '('\n    case 18068:                     // 'ge' '('\n    case 18070:                     // 'group' '('\n    case 18072:                     // 'gt' '('\n    case 18073:                     // 'idiv' '('\n    case 18075:                     // 'import' '('\n    case 18076:                     // 'in' '('\n    case 18077:                     // 'index' '('\n    case 18081:                     // 'insert' '('\n    case 18082:                     // 'instance' '('\n    case 18083:                     // 'integrity' '('\n    case 18084:                     // 'intersect' '('\n    case 18085:                     // 'into' '('\n    case 18086:                     // 'is' '('\n    case 18088:                     // 'json' '('\n    case 18090:                     // 'jsoniq' '('\n    case 18093:                     // 'last' '('\n    case 18094:                     // 'lax' '('\n    case 18095:                     // 'le' '('\n    case 18097:                     // 'let' '('\n    case 18099:                     // 'loop' '('\n    case 18101:                     // 'lt' '('\n    case 18103:                     // 'mod' '('\n    case 18104:                     // 'modify' '('\n    case 18105:                     // 'module' '('\n    case 18107:                     // 'namespace' '('\n    case 18109:                     // 'ne' '('\n    case 18115:                     // 'nodes' '('\n    case 18118:                     // 'object' '('\n    case 18122:                     // 'only' '('\n    case 18123:                     // 'option' '('\n    case 18124:                     // 'or' '('\n    case 18125:                     // 'order' '('\n    case 18126:                     // 'ordered' '('\n    case 18127:                     // 'ordering' '('\n    case 18130:                     // 'parent' '('\n    case 18136:                     // 'preceding' '('\n    case 18137:                     // 'preceding-sibling' '('\n    case 18142:                     // 'rename' '('\n    case 18143:                     // 'replace' '('\n    case 18144:                     // 'return' '('\n    case 18145:                     // 'returning' '('\n    case 18146:                     // 'revalidation' '('\n    case 18148:                     // 'satisfies' '('\n    case 18149:                     // 'schema' '('\n    case 18152:                     // 'score' '('\n    case 18153:                     // 'select' '('\n    case 18154:                     // 'self' '('\n    case 18159:                     // 'sliding' '('\n    case 18160:                     // 'some' '('\n    case 18161:                     // 'stable' '('\n    case 18162:                     // 'start' '('\n    case 18165:                     // 'strict' '('\n    case 18173:                     // 'to' '('\n    case 18174:                     // 'treat' '('\n    case 18176:                     // 'try' '('\n    case 18177:                     // 'tumbling' '('\n    case 18178:                     // 'type' '('\n    case 18180:                     // 'union' '('\n    case 18182:                     // 'unordered' '('\n    case 18183:                     // 'updating' '('\n    case 18186:                     // 'validate' '('\n    case 18187:                     // 'value' '('\n    case 18188:                     // 'variable' '('\n    case 18189:                     // 'version' '('\n    case 18192:                     // 'where' '('\n    case 18193:                     // 'while' '('\n    case 18196:                     // 'with' '('\n      try_FunctionCall();\n      break;\n    case 144078:                    // 'ordered' '{'\n      try_OrderedExpr();\n      break;\n    case 144134:                    // 'unordered' '{'\n      try_UnorderedExpr();\n      break;\n    case 33:                        // '%'\n    case 79:                        // 'array'\n    case 121:                       // 'document-node'\n    case 125:                       // 'empty-sequence'\n    case 147:                       // 'function'\n    case 154:                       // 'if'\n    case 167:                       // 'item'\n    case 169:                       // 'json-item'\n    case 188:                       // 'namespace-node'\n    case 194:                       // 'node'\n    case 230:                       // 'schema-attribute'\n    case 231:                       // 'schema-element'\n    case 247:                       // 'structured-item'\n    case 248:                       // 'switch'\n    case 259:                       // 'typeswitch'\n    case 14854:                     // EQName^Token '#'\n    case 14919:                     // 'after' '#'\n    case 14921:                     // 'allowing' '#'\n    case 14922:                     // 'ancestor' '#'\n    case 14923:                     // 'ancestor-or-self' '#'\n    case 14924:                     // 'and' '#'\n    case 14926:                     // 'append' '#'\n    case 14928:                     // 'as' '#'\n    case 14929:                     // 'ascending' '#'\n    case 14930:                     // 'at' '#'\n    case 14931:                     // 'attribute' '#'\n    case 14932:                     // 'base-uri' '#'\n    case 14933:                     // 'before' '#'\n    case 14934:                     // 'boundary-space' '#'\n    case 14935:                     // 'break' '#'\n    case 14937:                     // 'case' '#'\n    case 14938:                     // 'cast' '#'\n    case 14939:                     // 'castable' '#'\n    case 14940:                     // 'catch' '#'\n    case 14942:                     // 'child' '#'\n    case 14943:                     // 'collation' '#'\n    case 14945:                     // 'comment' '#'\n    case 14946:                     // 'constraint' '#'\n    case 14947:                     // 'construction' '#'\n    case 14950:                     // 'context' '#'\n    case 14951:                     // 'continue' '#'\n    case 14952:                     // 'copy' '#'\n    case 14953:                     // 'copy-namespaces' '#'\n    case 14954:                     // 'count' '#'\n    case 14955:                     // 'decimal-format' '#'\n    case 14957:                     // 'declare' '#'\n    case 14958:                     // 'default' '#'\n    case 14959:                     // 'delete' '#'\n    case 14960:                     // 'descendant' '#'\n    case 14961:                     // 'descendant-or-self' '#'\n    case 14962:                     // 'descending' '#'\n    case 14967:                     // 'div' '#'\n    case 14968:                     // 'document' '#'\n    case 14970:                     // 'element' '#'\n    case 14971:                     // 'else' '#'\n    case 14972:                     // 'empty' '#'\n    case 14974:                     // 'encoding' '#'\n    case 14975:                     // 'end' '#'\n    case 14977:                     // 'eq' '#'\n    case 14978:                     // 'every' '#'\n    case 14980:                     // 'except' '#'\n    case 14981:                     // 'exit' '#'\n    case 14982:                     // 'external' '#'\n    case 14983:                     // 'false' '#'\n    case 14984:                     // 'first' '#'\n    case 14985:                     // 'following' '#'\n    case 14986:                     // 'following-sibling' '#'\n    case 14987:                     // 'for' '#'\n    case 14990:                     // 'from' '#'\n    case 14991:                     // 'ft-option' '#'\n    case 14996:                     // 'ge' '#'\n    case 14998:                     // 'group' '#'\n    case 15000:                     // 'gt' '#'\n    case 15001:                     // 'idiv' '#'\n    case 15003:                     // 'import' '#'\n    case 15004:                     // 'in' '#'\n    case 15005:                     // 'index' '#'\n    case 15009:                     // 'insert' '#'\n    case 15010:                     // 'instance' '#'\n    case 15011:                     // 'integrity' '#'\n    case 15012:                     // 'intersect' '#'\n    case 15013:                     // 'into' '#'\n    case 15014:                     // 'is' '#'\n    case 15016:                     // 'json' '#'\n    case 15018:                     // 'jsoniq' '#'\n    case 15021:                     // 'last' '#'\n    case 15022:                     // 'lax' '#'\n    case 15023:                     // 'le' '#'\n    case 15025:                     // 'let' '#'\n    case 15027:                     // 'loop' '#'\n    case 15029:                     // 'lt' '#'\n    case 15031:                     // 'mod' '#'\n    case 15032:                     // 'modify' '#'\n    case 15033:                     // 'module' '#'\n    case 15035:                     // 'namespace' '#'\n    case 15037:                     // 'ne' '#'\n    case 15043:                     // 'nodes' '#'\n    case 15045:                     // 'null' '#'\n    case 15046:                     // 'object' '#'\n    case 15050:                     // 'only' '#'\n    case 15051:                     // 'option' '#'\n    case 15052:                     // 'or' '#'\n    case 15053:                     // 'order' '#'\n    case 15054:                     // 'ordered' '#'\n    case 15055:                     // 'ordering' '#'\n    case 15058:                     // 'parent' '#'\n    case 15064:                     // 'preceding' '#'\n    case 15065:                     // 'preceding-sibling' '#'\n    case 15068:                     // 'processing-instruction' '#'\n    case 15070:                     // 'rename' '#'\n    case 15071:                     // 'replace' '#'\n    case 15072:                     // 'return' '#'\n    case 15073:                     // 'returning' '#'\n    case 15074:                     // 'revalidation' '#'\n    case 15076:                     // 'satisfies' '#'\n    case 15077:                     // 'schema' '#'\n    case 15080:                     // 'score' '#'\n    case 15081:                     // 'select' '#'\n    case 15082:                     // 'self' '#'\n    case 15087:                     // 'sliding' '#'\n    case 15088:                     // 'some' '#'\n    case 15089:                     // 'stable' '#'\n    case 15090:                     // 'start' '#'\n    case 15093:                     // 'strict' '#'\n    case 15097:                     // 'text' '#'\n    case 15101:                     // 'to' '#'\n    case 15102:                     // 'treat' '#'\n    case 15103:                     // 'true' '#'\n    case 15104:                     // 'try' '#'\n    case 15105:                     // 'tumbling' '#'\n    case 15106:                     // 'type' '#'\n    case 15108:                     // 'union' '#'\n    case 15110:                     // 'unordered' '#'\n    case 15111:                     // 'updating' '#'\n    case 15114:                     // 'validate' '#'\n    case 15115:                     // 'value' '#'\n    case 15116:                     // 'variable' '#'\n    case 15117:                     // 'version' '#'\n    case 15120:                     // 'where' '#'\n    case 15121:                     // 'while' '#'\n    case 15124:                     // 'with' '#'\n      try_FunctionItemExpr();\n      break;\n    case -10:\n    case 27929:                     // '{' ';'\n      try_BlockExpr();\n      break;\n    case -11:\n    case 10009:                     // '{' NCName^Token\n      try_ObjectConstructor();\n      break;\n    case 69:                        // '['\n      try_ArrayConstructor();\n      break;\n    case 283:                       // '{|'\n      try_JSONSimpleObjectUnion();\n      break;\n    case -14:\n      break;\n    default:\n      try_Constructor();\n    }\n  }\n\n  function parse_JSONSimpleObjectUnion()\n  {\n    eventHandler.startNonterminal(\"JSONSimpleObjectUnion\", e0);\n    shift(283);                     // '{|'\n    lookahead1W(274);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    if (l1 != 286)                  // '|}'\n    {\n      whitespace();\n      parse_Expr();\n    }\n    shift(286);                     // '|}'\n    eventHandler.endNonterminal(\"JSONSimpleObjectUnion\", e0);\n  }\n\n  function try_JSONSimpleObjectUnion()\n  {\n    shiftT(283);                    // '{|'\n    lookahead1W(274);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    if (l1 != 286)                  // '|}'\n    {\n      try_Expr();\n    }\n    shiftT(286);                    // '|}'\n  }\n\n  function parse_ObjectConstructor()\n  {\n    eventHandler.startNonterminal(\"ObjectConstructor\", e0);\n    shift(281);                     // '{'\n    lookahead1W(277);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    if (l1 != 287)                  // '}'\n    {\n      whitespace();\n      parse_PairConstructorList();\n    }\n    shift(287);                     // '}'\n    eventHandler.endNonterminal(\"ObjectConstructor\", e0);\n  }\n\n  function try_ObjectConstructor()\n  {\n    shiftT(281);                    // '{'\n    lookahead1W(277);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    if (l1 != 287)                  // '}'\n    {\n      try_PairConstructorList();\n    }\n    shiftT(287);                    // '}'\n  }\n\n  function parse_PairConstructorList()\n  {\n    eventHandler.startNonterminal(\"PairConstructorList\", e0);\n    parse_PairConstructor();\n    for (;;)\n    {\n      if (l1 != 42)                 // ','\n      {\n        break;\n      }\n      shift(42);                    // ','\n      lookahead1W(268);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_PairConstructor();\n    }\n    eventHandler.endNonterminal(\"PairConstructorList\", e0);\n  }\n\n  function try_PairConstructorList()\n  {\n    try_PairConstructor();\n    for (;;)\n    {\n      if (l1 != 42)                 // ','\n      {\n        break;\n      }\n      shiftT(42);                   // ','\n      lookahead1W(268);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      try_PairConstructor();\n    }\n  }\n\n  function parse_PairConstructor()\n  {\n    eventHandler.startNonterminal(\"PairConstructor\", e0);\n    switch (l1)\n    {\n    case 78:                        // 'append'\n      lookahead2W(279);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    case 139:                       // 'for'\n      lookahead2W(187);             // S^WS | '#' | '$' | '(' | '(:' | ':' | 'sliding' | 'tumbling'\n      break;\n    case 161:                       // 'insert'\n      lookahead2W(282);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    case 177:                       // 'let'\n      lookahead2W(178);             // S^WS | '#' | '$' | '(' | '(:' | ':' | 'score'\n      break;\n    case 187:                       // 'namespace'\n      lookahead2W(252);             // NCName^Token | S^WS | '#' | '(' | '(:' | ':' | 'after' | 'allowing' |\n      break;\n    case 220:                       // 'processing-instruction'\n      lookahead2W(248);             // NCName^Token | S^WS | '#' | '(:' | ':' | 'after' | 'allowing' | 'ancestor' |\n      break;\n    case 223:                       // 'replace'\n      lookahead2W(180);             // S^WS | '#' | '(' | '(:' | ':' | 'node' | 'value'\n      break;\n    case 266:                       // 'validate'\n      lookahead2W(191);             // S^WS | '#' | '(' | '(:' | ':' | 'lax' | 'strict' | 'type' | '{'\n      break;\n    case 83:                        // 'attribute'\n    case 122:                       // 'element'\n      lookahead2W(257);             // EQName^Token | S^WS | '#' | '(:' | ':' | 'after' | 'allowing' | 'ancestor' |\n      break;\n    case 97:                        // 'comment'\n    case 249:                       // 'text'\n      lookahead2W(149);             // S^WS | '#' | '(:' | ':' | '{'\n      break;\n    case 111:                       // 'delete'\n    case 222:                       // 'rename'\n      lookahead2W(262);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    case 104:                       // 'copy'\n    case 130:                       // 'every'\n    case 240:                       // 'some'\n      lookahead2W(165);             // S^WS | '#' | '$' | '(' | '(:' | ':'\n      break;\n    case 135:                       // 'false'\n    case 197:                       // 'null'\n    case 255:                       // 'true'\n      lookahead2W(209);             // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '.' | '/' | '//' | ':' |\n      break;\n    case 120:                       // 'document'\n    case 206:                       // 'ordered'\n    case 256:                       // 'try'\n    case 262:                       // 'unordered'\n      lookahead2W(167);             // S^WS | '#' | '(' | '(:' | ':' | '{'\n      break;\n    case 121:                       // 'document-node'\n    case 125:                       // 'empty-sequence'\n    case 167:                       // 'item'\n    case 188:                       // 'namespace-node'\n    case 194:                       // 'node'\n    case 230:                       // 'schema-attribute'\n    case 231:                       // 'schema-element'\n      lookahead2W(96);              // S^WS | '#' | '(:' | ':'\n      break;\n    case 71:                        // 'after'\n    case 73:                        // 'allowing'\n    case 74:                        // 'ancestor'\n    case 75:                        // 'ancestor-or-self'\n    case 76:                        // 'and'\n    case 80:                        // 'as'\n    case 81:                        // 'ascending'\n    case 82:                        // 'at'\n    case 84:                        // 'base-uri'\n    case 85:                        // 'before'\n    case 86:                        // 'boundary-space'\n    case 87:                        // 'break'\n    case 89:                        // 'case'\n    case 90:                        // 'cast'\n    case 91:                        // 'castable'\n    case 92:                        // 'catch'\n    case 94:                        // 'child'\n    case 95:                        // 'collation'\n    case 98:                        // 'constraint'\n    case 99:                        // 'construction'\n    case 102:                       // 'context'\n    case 103:                       // 'continue'\n    case 105:                       // 'copy-namespaces'\n    case 106:                       // 'count'\n    case 107:                       // 'decimal-format'\n    case 109:                       // 'declare'\n    case 110:                       // 'default'\n    case 112:                       // 'descendant'\n    case 113:                       // 'descendant-or-self'\n    case 114:                       // 'descending'\n    case 119:                       // 'div'\n    case 123:                       // 'else'\n    case 124:                       // 'empty'\n    case 126:                       // 'encoding'\n    case 127:                       // 'end'\n    case 129:                       // 'eq'\n    case 132:                       // 'except'\n    case 133:                       // 'exit'\n    case 134:                       // 'external'\n    case 136:                       // 'first'\n    case 137:                       // 'following'\n    case 138:                       // 'following-sibling'\n    case 142:                       // 'from'\n    case 143:                       // 'ft-option'\n    case 147:                       // 'function'\n    case 148:                       // 'ge'\n    case 150:                       // 'group'\n    case 152:                       // 'gt'\n    case 153:                       // 'idiv'\n    case 154:                       // 'if'\n    case 155:                       // 'import'\n    case 156:                       // 'in'\n    case 157:                       // 'index'\n    case 162:                       // 'instance'\n    case 163:                       // 'integrity'\n    case 164:                       // 'intersect'\n    case 165:                       // 'into'\n    case 166:                       // 'is'\n    case 168:                       // 'json'\n    case 170:                       // 'jsoniq'\n    case 173:                       // 'last'\n    case 174:                       // 'lax'\n    case 175:                       // 'le'\n    case 179:                       // 'loop'\n    case 181:                       // 'lt'\n    case 183:                       // 'mod'\n    case 184:                       // 'modify'\n    case 185:                       // 'module'\n    case 189:                       // 'ne'\n    case 195:                       // 'nodes'\n    case 198:                       // 'object'\n    case 202:                       // 'only'\n    case 203:                       // 'option'\n    case 204:                       // 'or'\n    case 205:                       // 'order'\n    case 207:                       // 'ordering'\n    case 210:                       // 'parent'\n    case 216:                       // 'preceding'\n    case 217:                       // 'preceding-sibling'\n    case 224:                       // 'return'\n    case 225:                       // 'returning'\n    case 226:                       // 'revalidation'\n    case 228:                       // 'satisfies'\n    case 229:                       // 'schema'\n    case 232:                       // 'score'\n    case 233:                       // 'select'\n    case 234:                       // 'self'\n    case 239:                       // 'sliding'\n    case 241:                       // 'stable'\n    case 242:                       // 'start'\n    case 245:                       // 'strict'\n    case 248:                       // 'switch'\n    case 253:                       // 'to'\n    case 254:                       // 'treat'\n    case 257:                       // 'tumbling'\n    case 258:                       // 'type'\n    case 259:                       // 'typeswitch'\n    case 260:                       // 'union'\n    case 263:                       // 'updating'\n    case 267:                       // 'value'\n    case 268:                       // 'variable'\n    case 269:                       // 'version'\n    case 272:                       // 'where'\n    case 273:                       // 'while'\n    case 276:                       // 'with'\n      lookahead2W(144);             // S^WS | '#' | '(' | '(:' | ':'\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 25735                 // 'false' ':'\n     || lk == 25797                 // 'null' ':'\n     || lk == 25855)                // 'true' ':'\n    {\n      lk = memoized(21, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_ExprSingle();\n          lk = -1;\n        }\n        catch (p1A)\n        {\n          lk = -2;\n        }\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(21, e0, lk);\n      }\n    }\n    switch (lk)\n    {\n    case -2:\n    case 19:                        // NCName^Token\n    case 25671:                     // 'after' ':'\n    case 25673:                     // 'allowing' ':'\n    case 25674:                     // 'ancestor' ':'\n    case 25675:                     // 'ancestor-or-self' ':'\n    case 25676:                     // 'and' ':'\n    case 25678:                     // 'append' ':'\n    case 25680:                     // 'as' ':'\n    case 25681:                     // 'ascending' ':'\n    case 25682:                     // 'at' ':'\n    case 25683:                     // 'attribute' ':'\n    case 25684:                     // 'base-uri' ':'\n    case 25685:                     // 'before' ':'\n    case 25686:                     // 'boundary-space' ':'\n    case 25687:                     // 'break' ':'\n    case 25689:                     // 'case' ':'\n    case 25690:                     // 'cast' ':'\n    case 25691:                     // 'castable' ':'\n    case 25692:                     // 'catch' ':'\n    case 25694:                     // 'child' ':'\n    case 25695:                     // 'collation' ':'\n    case 25697:                     // 'comment' ':'\n    case 25698:                     // 'constraint' ':'\n    case 25699:                     // 'construction' ':'\n    case 25702:                     // 'context' ':'\n    case 25703:                     // 'continue' ':'\n    case 25704:                     // 'copy' ':'\n    case 25705:                     // 'copy-namespaces' ':'\n    case 25706:                     // 'count' ':'\n    case 25707:                     // 'decimal-format' ':'\n    case 25709:                     // 'declare' ':'\n    case 25710:                     // 'default' ':'\n    case 25711:                     // 'delete' ':'\n    case 25712:                     // 'descendant' ':'\n    case 25713:                     // 'descendant-or-self' ':'\n    case 25714:                     // 'descending' ':'\n    case 25719:                     // 'div' ':'\n    case 25720:                     // 'document' ':'\n    case 25721:                     // 'document-node' ':'\n    case 25722:                     // 'element' ':'\n    case 25723:                     // 'else' ':'\n    case 25724:                     // 'empty' ':'\n    case 25725:                     // 'empty-sequence' ':'\n    case 25726:                     // 'encoding' ':'\n    case 25727:                     // 'end' ':'\n    case 25729:                     // 'eq' ':'\n    case 25730:                     // 'every' ':'\n    case 25732:                     // 'except' ':'\n    case 25733:                     // 'exit' ':'\n    case 25734:                     // 'external' ':'\n    case 25736:                     // 'first' ':'\n    case 25737:                     // 'following' ':'\n    case 25738:                     // 'following-sibling' ':'\n    case 25739:                     // 'for' ':'\n    case 25742:                     // 'from' ':'\n    case 25743:                     // 'ft-option' ':'\n    case 25747:                     // 'function' ':'\n    case 25748:                     // 'ge' ':'\n    case 25750:                     // 'group' ':'\n    case 25752:                     // 'gt' ':'\n    case 25753:                     // 'idiv' ':'\n    case 25754:                     // 'if' ':'\n    case 25755:                     // 'import' ':'\n    case 25756:                     // 'in' ':'\n    case 25757:                     // 'index' ':'\n    case 25761:                     // 'insert' ':'\n    case 25762:                     // 'instance' ':'\n    case 25763:                     // 'integrity' ':'\n    case 25764:                     // 'intersect' ':'\n    case 25765:                     // 'into' ':'\n    case 25766:                     // 'is' ':'\n    case 25767:                     // 'item' ':'\n    case 25768:                     // 'json' ':'\n    case 25770:                     // 'jsoniq' ':'\n    case 25773:                     // 'last' ':'\n    case 25774:                     // 'lax' ':'\n    case 25775:                     // 'le' ':'\n    case 25777:                     // 'let' ':'\n    case 25779:                     // 'loop' ':'\n    case 25781:                     // 'lt' ':'\n    case 25783:                     // 'mod' ':'\n    case 25784:                     // 'modify' ':'\n    case 25785:                     // 'module' ':'\n    case 25787:                     // 'namespace' ':'\n    case 25788:                     // 'namespace-node' ':'\n    case 25789:                     // 'ne' ':'\n    case 25794:                     // 'node' ':'\n    case 25795:                     // 'nodes' ':'\n    case 25798:                     // 'object' ':'\n    case 25802:                     // 'only' ':'\n    case 25803:                     // 'option' ':'\n    case 25804:                     // 'or' ':'\n    case 25805:                     // 'order' ':'\n    case 25806:                     // 'ordered' ':'\n    case 25807:                     // 'ordering' ':'\n    case 25810:                     // 'parent' ':'\n    case 25816:                     // 'preceding' ':'\n    case 25817:                     // 'preceding-sibling' ':'\n    case 25820:                     // 'processing-instruction' ':'\n    case 25822:                     // 'rename' ':'\n    case 25823:                     // 'replace' ':'\n    case 25824:                     // 'return' ':'\n    case 25825:                     // 'returning' ':'\n    case 25826:                     // 'revalidation' ':'\n    case 25828:                     // 'satisfies' ':'\n    case 25829:                     // 'schema' ':'\n    case 25830:                     // 'schema-attribute' ':'\n    case 25831:                     // 'schema-element' ':'\n    case 25832:                     // 'score' ':'\n    case 25833:                     // 'select' ':'\n    case 25834:                     // 'self' ':'\n    case 25839:                     // 'sliding' ':'\n    case 25840:                     // 'some' ':'\n    case 25841:                     // 'stable' ':'\n    case 25842:                     // 'start' ':'\n    case 25845:                     // 'strict' ':'\n    case 25848:                     // 'switch' ':'\n    case 25849:                     // 'text' ':'\n    case 25853:                     // 'to' ':'\n    case 25854:                     // 'treat' ':'\n    case 25856:                     // 'try' ':'\n    case 25857:                     // 'tumbling' ':'\n    case 25858:                     // 'type' ':'\n    case 25859:                     // 'typeswitch' ':'\n    case 25860:                     // 'union' ':'\n    case 25862:                     // 'unordered' ':'\n    case 25863:                     // 'updating' ':'\n    case 25866:                     // 'validate' ':'\n    case 25867:                     // 'value' ':'\n    case 25868:                     // 'variable' ':'\n    case 25869:                     // 'version' ':'\n    case 25872:                     // 'where' ':'\n    case 25873:                     // 'while' ':'\n    case 25876:                     // 'with' ':'\n      parse_NCName();\n      break;\n    default:\n      parse_ExprSingle();\n    }\n    lookahead1W(26);                // S^WS | '(:' | ':'\n    shift(50);                      // ':'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"PairConstructor\", e0);\n  }\n\n  function try_PairConstructor()\n  {\n    switch (l1)\n    {\n    case 78:                        // 'append'\n      lookahead2W(279);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    case 139:                       // 'for'\n      lookahead2W(187);             // S^WS | '#' | '$' | '(' | '(:' | ':' | 'sliding' | 'tumbling'\n      break;\n    case 161:                       // 'insert'\n      lookahead2W(282);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    case 177:                       // 'let'\n      lookahead2W(178);             // S^WS | '#' | '$' | '(' | '(:' | ':' | 'score'\n      break;\n    case 187:                       // 'namespace'\n      lookahead2W(252);             // NCName^Token | S^WS | '#' | '(' | '(:' | ':' | 'after' | 'allowing' |\n      break;\n    case 220:                       // 'processing-instruction'\n      lookahead2W(248);             // NCName^Token | S^WS | '#' | '(:' | ':' | 'after' | 'allowing' | 'ancestor' |\n      break;\n    case 223:                       // 'replace'\n      lookahead2W(180);             // S^WS | '#' | '(' | '(:' | ':' | 'node' | 'value'\n      break;\n    case 266:                       // 'validate'\n      lookahead2W(191);             // S^WS | '#' | '(' | '(:' | ':' | 'lax' | 'strict' | 'type' | '{'\n      break;\n    case 83:                        // 'attribute'\n    case 122:                       // 'element'\n      lookahead2W(257);             // EQName^Token | S^WS | '#' | '(:' | ':' | 'after' | 'allowing' | 'ancestor' |\n      break;\n    case 97:                        // 'comment'\n    case 249:                       // 'text'\n      lookahead2W(149);             // S^WS | '#' | '(:' | ':' | '{'\n      break;\n    case 111:                       // 'delete'\n    case 222:                       // 'rename'\n      lookahead2W(262);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      break;\n    case 104:                       // 'copy'\n    case 130:                       // 'every'\n    case 240:                       // 'some'\n      lookahead2W(165);             // S^WS | '#' | '$' | '(' | '(:' | ':'\n      break;\n    case 135:                       // 'false'\n    case 197:                       // 'null'\n    case 255:                       // 'true'\n      lookahead2W(209);             // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '.' | '/' | '//' | ':' |\n      break;\n    case 120:                       // 'document'\n    case 206:                       // 'ordered'\n    case 256:                       // 'try'\n    case 262:                       // 'unordered'\n      lookahead2W(167);             // S^WS | '#' | '(' | '(:' | ':' | '{'\n      break;\n    case 121:                       // 'document-node'\n    case 125:                       // 'empty-sequence'\n    case 167:                       // 'item'\n    case 188:                       // 'namespace-node'\n    case 194:                       // 'node'\n    case 230:                       // 'schema-attribute'\n    case 231:                       // 'schema-element'\n      lookahead2W(96);              // S^WS | '#' | '(:' | ':'\n      break;\n    case 71:                        // 'after'\n    case 73:                        // 'allowing'\n    case 74:                        // 'ancestor'\n    case 75:                        // 'ancestor-or-self'\n    case 76:                        // 'and'\n    case 80:                        // 'as'\n    case 81:                        // 'ascending'\n    case 82:                        // 'at'\n    case 84:                        // 'base-uri'\n    case 85:                        // 'before'\n    case 86:                        // 'boundary-space'\n    case 87:                        // 'break'\n    case 89:                        // 'case'\n    case 90:                        // 'cast'\n    case 91:                        // 'castable'\n    case 92:                        // 'catch'\n    case 94:                        // 'child'\n    case 95:                        // 'collation'\n    case 98:                        // 'constraint'\n    case 99:                        // 'construction'\n    case 102:                       // 'context'\n    case 103:                       // 'continue'\n    case 105:                       // 'copy-namespaces'\n    case 106:                       // 'count'\n    case 107:                       // 'decimal-format'\n    case 109:                       // 'declare'\n    case 110:                       // 'default'\n    case 112:                       // 'descendant'\n    case 113:                       // 'descendant-or-self'\n    case 114:                       // 'descending'\n    case 119:                       // 'div'\n    case 123:                       // 'else'\n    case 124:                       // 'empty'\n    case 126:                       // 'encoding'\n    case 127:                       // 'end'\n    case 129:                       // 'eq'\n    case 132:                       // 'except'\n    case 133:                       // 'exit'\n    case 134:                       // 'external'\n    case 136:                       // 'first'\n    case 137:                       // 'following'\n    case 138:                       // 'following-sibling'\n    case 142:                       // 'from'\n    case 143:                       // 'ft-option'\n    case 147:                       // 'function'\n    case 148:                       // 'ge'\n    case 150:                       // 'group'\n    case 152:                       // 'gt'\n    case 153:                       // 'idiv'\n    case 154:                       // 'if'\n    case 155:                       // 'import'\n    case 156:                       // 'in'\n    case 157:                       // 'index'\n    case 162:                       // 'instance'\n    case 163:                       // 'integrity'\n    case 164:                       // 'intersect'\n    case 165:                       // 'into'\n    case 166:                       // 'is'\n    case 168:                       // 'json'\n    case 170:                       // 'jsoniq'\n    case 173:                       // 'last'\n    case 174:                       // 'lax'\n    case 175:                       // 'le'\n    case 179:                       // 'loop'\n    case 181:                       // 'lt'\n    case 183:                       // 'mod'\n    case 184:                       // 'modify'\n    case 185:                       // 'module'\n    case 189:                       // 'ne'\n    case 195:                       // 'nodes'\n    case 198:                       // 'object'\n    case 202:                       // 'only'\n    case 203:                       // 'option'\n    case 204:                       // 'or'\n    case 205:                       // 'order'\n    case 207:                       // 'ordering'\n    case 210:                       // 'parent'\n    case 216:                       // 'preceding'\n    case 217:                       // 'preceding-sibling'\n    case 224:                       // 'return'\n    case 225:                       // 'returning'\n    case 226:                       // 'revalidation'\n    case 228:                       // 'satisfies'\n    case 229:                       // 'schema'\n    case 232:                       // 'score'\n    case 233:                       // 'select'\n    case 234:                       // 'self'\n    case 239:                       // 'sliding'\n    case 241:                       // 'stable'\n    case 242:                       // 'start'\n    case 245:                       // 'strict'\n    case 248:                       // 'switch'\n    case 253:                       // 'to'\n    case 254:                       // 'treat'\n    case 257:                       // 'tumbling'\n    case 258:                       // 'type'\n    case 259:                       // 'typeswitch'\n    case 260:                       // 'union'\n    case 263:                       // 'updating'\n    case 267:                       // 'value'\n    case 268:                       // 'variable'\n    case 269:                       // 'version'\n    case 272:                       // 'where'\n    case 273:                       // 'while'\n    case 276:                       // 'with'\n      lookahead2W(144);             // S^WS | '#' | '(' | '(:' | ':'\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 25735                 // 'false' ':'\n     || lk == 25797                 // 'null' ':'\n     || lk == 25855)                // 'true' ':'\n    {\n      lk = memoized(21, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_ExprSingle();\n          memoize(21, e0A, -1);\n          lk = -3;\n        }\n        catch (p1A)\n        {\n          lk = -2;\n          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n          b2 = b2A; e2 = e2A; end = e2A; }}\n          memoize(21, e0A, -2);\n        }\n      }\n    }\n    switch (lk)\n    {\n    case -2:\n    case 19:                        // NCName^Token\n    case 25671:                     // 'after' ':'\n    case 25673:                     // 'allowing' ':'\n    case 25674:                     // 'ancestor' ':'\n    case 25675:                     // 'ancestor-or-self' ':'\n    case 25676:                     // 'and' ':'\n    case 25678:                     // 'append' ':'\n    case 25680:                     // 'as' ':'\n    case 25681:                     // 'ascending' ':'\n    case 25682:                     // 'at' ':'\n    case 25683:                     // 'attribute' ':'\n    case 25684:                     // 'base-uri' ':'\n    case 25685:                     // 'before' ':'\n    case 25686:                     // 'boundary-space' ':'\n    case 25687:                     // 'break' ':'\n    case 25689:                     // 'case' ':'\n    case 25690:                     // 'cast' ':'\n    case 25691:                     // 'castable' ':'\n    case 25692:                     // 'catch' ':'\n    case 25694:                     // 'child' ':'\n    case 25695:                     // 'collation' ':'\n    case 25697:                     // 'comment' ':'\n    case 25698:                     // 'constraint' ':'\n    case 25699:                     // 'construction' ':'\n    case 25702:                     // 'context' ':'\n    case 25703:                     // 'continue' ':'\n    case 25704:                     // 'copy' ':'\n    case 25705:                     // 'copy-namespaces' ':'\n    case 25706:                     // 'count' ':'\n    case 25707:                     // 'decimal-format' ':'\n    case 25709:                     // 'declare' ':'\n    case 25710:                     // 'default' ':'\n    case 25711:                     // 'delete' ':'\n    case 25712:                     // 'descendant' ':'\n    case 25713:                     // 'descendant-or-self' ':'\n    case 25714:                     // 'descending' ':'\n    case 25719:                     // 'div' ':'\n    case 25720:                     // 'document' ':'\n    case 25721:                     // 'document-node' ':'\n    case 25722:                     // 'element' ':'\n    case 25723:                     // 'else' ':'\n    case 25724:                     // 'empty' ':'\n    case 25725:                     // 'empty-sequence' ':'\n    case 25726:                     // 'encoding' ':'\n    case 25727:                     // 'end' ':'\n    case 25729:                     // 'eq' ':'\n    case 25730:                     // 'every' ':'\n    case 25732:                     // 'except' ':'\n    case 25733:                     // 'exit' ':'\n    case 25734:                     // 'external' ':'\n    case 25736:                     // 'first' ':'\n    case 25737:                     // 'following' ':'\n    case 25738:                     // 'following-sibling' ':'\n    case 25739:                     // 'for' ':'\n    case 25742:                     // 'from' ':'\n    case 25743:                     // 'ft-option' ':'\n    case 25747:                     // 'function' ':'\n    case 25748:                     // 'ge' ':'\n    case 25750:                     // 'group' ':'\n    case 25752:                     // 'gt' ':'\n    case 25753:                     // 'idiv' ':'\n    case 25754:                     // 'if' ':'\n    case 25755:                     // 'import' ':'\n    case 25756:                     // 'in' ':'\n    case 25757:                     // 'index' ':'\n    case 25761:                     // 'insert' ':'\n    case 25762:                     // 'instance' ':'\n    case 25763:                     // 'integrity' ':'\n    case 25764:                     // 'intersect' ':'\n    case 25765:                     // 'into' ':'\n    case 25766:                     // 'is' ':'\n    case 25767:                     // 'item' ':'\n    case 25768:                     // 'json' ':'\n    case 25770:                     // 'jsoniq' ':'\n    case 25773:                     // 'last' ':'\n    case 25774:                     // 'lax' ':'\n    case 25775:                     // 'le' ':'\n    case 25777:                     // 'let' ':'\n    case 25779:                     // 'loop' ':'\n    case 25781:                     // 'lt' ':'\n    case 25783:                     // 'mod' ':'\n    case 25784:                     // 'modify' ':'\n    case 25785:                     // 'module' ':'\n    case 25787:                     // 'namespace' ':'\n    case 25788:                     // 'namespace-node' ':'\n    case 25789:                     // 'ne' ':'\n    case 25794:                     // 'node' ':'\n    case 25795:                     // 'nodes' ':'\n    case 25798:                     // 'object' ':'\n    case 25802:                     // 'only' ':'\n    case 25803:                     // 'option' ':'\n    case 25804:                     // 'or' ':'\n    case 25805:                     // 'order' ':'\n    case 25806:                     // 'ordered' ':'\n    case 25807:                     // 'ordering' ':'\n    case 25810:                     // 'parent' ':'\n    case 25816:                     // 'preceding' ':'\n    case 25817:                     // 'preceding-sibling' ':'\n    case 25820:                     // 'processing-instruction' ':'\n    case 25822:                     // 'rename' ':'\n    case 25823:                     // 'replace' ':'\n    case 25824:                     // 'return' ':'\n    case 25825:                     // 'returning' ':'\n    case 25826:                     // 'revalidation' ':'\n    case 25828:                     // 'satisfies' ':'\n    case 25829:                     // 'schema' ':'\n    case 25830:                     // 'schema-attribute' ':'\n    case 25831:                     // 'schema-element' ':'\n    case 25832:                     // 'score' ':'\n    case 25833:                     // 'select' ':'\n    case 25834:                     // 'self' ':'\n    case 25839:                     // 'sliding' ':'\n    case 25840:                     // 'some' ':'\n    case 25841:                     // 'stable' ':'\n    case 25842:                     // 'start' ':'\n    case 25845:                     // 'strict' ':'\n    case 25848:                     // 'switch' ':'\n    case 25849:                     // 'text' ':'\n    case 25853:                     // 'to' ':'\n    case 25854:                     // 'treat' ':'\n    case 25856:                     // 'try' ':'\n    case 25857:                     // 'tumbling' ':'\n    case 25858:                     // 'type' ':'\n    case 25859:                     // 'typeswitch' ':'\n    case 25860:                     // 'union' ':'\n    case 25862:                     // 'unordered' ':'\n    case 25863:                     // 'updating' ':'\n    case 25866:                     // 'validate' ':'\n    case 25867:                     // 'value' ':'\n    case 25868:                     // 'variable' ':'\n    case 25869:                     // 'version' ':'\n    case 25872:                     // 'where' ':'\n    case 25873:                     // 'while' ':'\n    case 25876:                     // 'with' ':'\n      try_NCName();\n      break;\n    case -3:\n      break;\n    default:\n      try_ExprSingle();\n    }\n    lookahead1W(26);                // S^WS | '(:' | ':'\n    shiftT(50);                     // ':'\n    lookahead1W(267);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_ArrayConstructor()\n  {\n    eventHandler.startNonterminal(\"ArrayConstructor\", e0);\n    shift(69);                      // '['\n    lookahead1W(273);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    if (l1 != 70)                   // ']'\n    {\n      whitespace();\n      parse_Expr();\n    }\n    shift(70);                      // ']'\n    eventHandler.endNonterminal(\"ArrayConstructor\", e0);\n  }\n\n  function try_ArrayConstructor()\n  {\n    shiftT(69);                     // '['\n    lookahead1W(273);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    if (l1 != 70)                   // ']'\n    {\n      try_Expr();\n    }\n    shiftT(70);                     // ']'\n  }\n\n  function parse_BlockExpr()\n  {\n    eventHandler.startNonterminal(\"BlockExpr\", e0);\n    shift(281);                     // '{'\n    lookahead1W(281);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_StatementsAndOptionalExpr();\n    shift(287);                     // '}'\n    eventHandler.endNonterminal(\"BlockExpr\", e0);\n  }\n\n  function try_BlockExpr()\n  {\n    shiftT(281);                    // '{'\n    lookahead1W(281);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_StatementsAndOptionalExpr();\n    shiftT(287);                    // '}'\n  }\n\n  function parse_FunctionDecl()\n  {\n    eventHandler.startNonterminal(\"FunctionDecl\", e0);\n    shift(147);                     // 'function'\n    lookahead1W(246);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_EQName();\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(35);                      // '('\n    lookahead1W(98);                // S^WS | '$' | '(:' | ')'\n    if (l1 == 31)                   // '$'\n    {\n      whitespace();\n      parse_ParamList();\n    }\n    shift(38);                      // ')'\n    lookahead1W(158);               // S^WS | '(:' | 'as' | 'external' | '{'\n    if (l1 == 80)                   // 'as'\n    {\n      whitespace();\n      parse_ReturnType();\n    }\n    lookahead1W(122);               // S^WS | '(:' | 'external' | '{'\n    switch (l1)\n    {\n    case 281:                       // '{'\n      shift(281);                   // '{'\n      lookahead1W(281);             // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n      whitespace();\n      parse_StatementsAndOptionalExpr();\n      shift(287);                   // '}'\n      break;\n    default:\n      shift(134);                   // 'external'\n    }\n    eventHandler.endNonterminal(\"FunctionDecl\", e0);\n  }\n\n  function parse_ReturnType()\n  {\n    eventHandler.startNonterminal(\"ReturnType\", e0);\n    shift(80);                      // 'as'\n    lookahead1W(254);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_SequenceType();\n    eventHandler.endNonterminal(\"ReturnType\", e0);\n  }\n\n  function shift(t)\n  {\n    if (l1 == t)\n    {\n      whitespace();\n      eventHandler.terminal(JSONiqParser.TOKEN[l1], b1, e1 > size ? size : e1);\n      b0 = b1; e0 = e1; l1 = l2; if (l1 != 0) {\n      b1 = b2; e1 = e2; l2 = 0; }\n    }\n    else\n    {\n      error(b1, e1, 0, l1, t);\n    }\n  }\n\n  function shiftT(t)\n  {\n    if (l1 == t)\n    {\n      b0 = b1; e0 = e1; l1 = l2; if (l1 != 0) {\n      b1 = b2; e1 = e2; l2 = 0; }\n    }\n    else\n    {\n      error(b1, e1, 0, l1, t);\n    }\n  }\n\n  function skip(code)\n  {\n    var b0W = b0; var e0W = e0; var l1W = l1;\n    var b1W = b1; var e1W = e1;\n\n    l1 = code; b1 = begin; e1 = end;\n    l2 = 0;\n\n    try_Whitespace();\n\n    b0 = b0W; e0 = e0W; l1 = l1W; if (l1 != 0) {\n    b1 = b1W; e1 = e1W; }\n  }\n\n  function whitespace()\n  {\n    if (e0 != b1)\n    {\n      b0 = e0;\n      e0 = b1;\n      eventHandler.whitespace(b0, e0);\n    }\n  }\n\n  function matchW(set)\n  {\n    var code;\n    for (;;)\n    {\n      code = match(set);\n      if (code != 22)               // S^WS\n      {\n        if (code != 37)             // '(:'\n        {\n          break;\n        }\n        skip(code);\n      }\n    }\n    return code;\n  }\n\n  function lookahead1W(set)\n  {\n    if (l1 == 0)\n    {\n      l1 = matchW(set);\n      b1 = begin;\n      e1 = end;\n    }\n  }\n\n  function lookahead2W(set)\n  {\n    if (l2 == 0)\n    {\n      l2 = matchW(set);\n      b2 = begin;\n      e2 = end;\n    }\n    lk = (l2 << 9) | l1;\n  }\n\n  function lookahead1(set)\n  {\n    if (l1 == 0)\n    {\n      l1 = match(set);\n      b1 = begin;\n      e1 = end;\n    }\n  }\n\n  function lookahead2(set)\n  {\n    if (l2 == 0)\n    {\n      l2 = match(set);\n      b2 = begin;\n      e2 = end;\n    }\n    lk = (l2 << 9) | l1;\n  }\n\n  function error(b, e, s, l, t)\n  {\n    if (e > ex)\n    {\n      bx = b;\n      ex = e;\n      sx = s;\n      lx = l;\n      tx = t;\n    }\n    throw new self.ParseException(bx, ex, sx, lx, tx);\n  }\n\n  var lk, b0, e0;\n  var l1, b1, e1;\n  var l2, b2, e2;\n  var bx, ex, sx, lx, tx;\n  var eventHandler;\n  var memo;\n\n  function memoize(i, e, v)\n  {\n    memo[(e << 5) + i] = v;\n  }\n\n  function memoized(i, e)\n  {\n    var v = memo[(e << 5) + i];\n    return typeof v != \"undefined\" ? v : 0;\n  }\n\n  var input;\n  var size;\n  var begin;\n  var end;\n\n  function match(tokenSetId)\n  {\n    var nonbmp = false;\n    begin = end;\n    var current = end;\n    var result = JSONiqParser.INITIAL[tokenSetId];\n    var state = 0;\n\n    for (var code = result & 8191; code != 0; )\n    {\n      var charclass;\n      var c0 = current < size ? input.charCodeAt(current) : 0;\n      ++current;\n      if (c0 < 0x80)\n      {\n        charclass = JSONiqParser.MAP0[c0];\n      }\n      else if (c0 < 0xd800)\n      {\n        var c1 = c0 >> 4;\n        charclass = JSONiqParser.MAP1[(c0 & 15) + JSONiqParser.MAP1[(c1 & 31) + JSONiqParser.MAP1[c1 >> 5]]];\n      }\n      else\n      {\n        if (c0 < 0xdc00)\n        {\n          var c1 = current < size ? input.charCodeAt(current) : 0;\n          if (c1 >= 0xdc00 && c1 < 0xe000)\n          {\n            ++current;\n            c0 = ((c0 & 0x3ff) << 10) + (c1 & 0x3ff) + 0x10000;\n            nonbmp = true;\n          }\n        }\n        var lo = 0, hi = 5;\n        for (var m = 3; ; m = (hi + lo) >> 1)\n        {\n          if (JSONiqParser.MAP2[m] > c0) hi = m - 1;\n          else if (JSONiqParser.MAP2[6 + m] < c0) lo = m + 1;\n          else {charclass = JSONiqParser.MAP2[12 + m]; break;}\n          if (lo > hi) {charclass = 0; break;}\n        }\n      }\n\n      state = code;\n      var i0 = (charclass << 13) + code - 1;\n      code = JSONiqParser.TRANSITION[(i0 & 15) + JSONiqParser.TRANSITION[i0 >> 4]];\n\n      if (code > 8191)\n      {\n        result = code;\n        code &= 8191;\n        end = current;\n      }\n    }\n\n    result >>= 13;\n    if (result == 0)\n    {\n      end = current - 1;\n      var c1 = end < size ? input.charCodeAt(end) : 0;\n      if (c1 >= 0xdc00 && c1 < 0xe000) --end;\n      return error(begin, end, state, -1, -1);\n    }\n\n    if (nonbmp)\n    {\n      for (var i = result >> 9; i > 0; --i)\n      {\n        --end;\n        var c1 = end < size ? input.charCodeAt(end) : 0;\n        if (c1 >= 0xdc00 && c1 < 0xe000) --end;\n      }\n    }\n    else\n    {\n      end -= result >> 9;\n    }\n\n    return (result & 511) - 1;\n  }\n}\n\nJSONiqParser.getTokenSet = function(tokenSetId)\n{\n  var set = [];\n  var s = tokenSetId < 0 ? - tokenSetId : INITIAL[tokenSetId] & 8191;\n  for (var i = 0; i < 289; i += 32)\n  {\n    var j = i;\n    var i0 = (i >> 5) * 4317 + s - 1;\n    var i1 = i0 >> 2;\n    var i2 = i1 >> 2;\n    var f = JSONiqParser.EXPECTED[(i0 & 3) + JSONiqParser.EXPECTED[(i1 & 3) + JSONiqParser.EXPECTED[(i2 & 15) + JSONiqParser.EXPECTED[i2 >> 4]]]];\n    for ( ; f != 0; f >>>= 1, ++j)\n    {\n      if ((f & 1) != 0)\n      {\n        set.push(JSONiqParser.TOKEN[j]);\n      }\n    }\n  }\n  return set;\n};\n\nJSONiqParser.MAP0 =\n[ 71, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 26, 30, 30, 30, 30, 30, 31, 32, 33, 30, 30, 34, 30, 30, 35, 30, 30, 30, 36, 30, 30, 37, 38, 39, 40, 30, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 40, 40\n];\n\nJSONiqParser.MAP1 =\n[ 108, 124, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 156, 181, 181, 181, 181, 181, 214, 215, 213, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 247, 261, 277, 293, 309, 355, 371, 387, 423, 423, 423, 415, 339, 331, 339, 331, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 440, 440, 440, 440, 440, 440, 440, 324, 339, 339, 339, 339, 339, 339, 339, 339, 401, 423, 423, 424, 422, 423, 423, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 338, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 423, 71, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 26, 30, 30, 30, 30, 30, 31, 32, 33, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 40, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 34, 30, 30, 35, 30, 30, 30, 36, 30, 30, 37, 38, 39, 40, 30, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 30, 30, 40, 40, 40, 40, 40, 40, 40, 70, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70\n];\n\nJSONiqParser.MAP2 =\n[ 57344, 63744, 64976, 65008, 65536, 983040, 63743, 64975, 65007, 65533, 983039, 1114111, 40, 30, 40, 30, 30, 40\n];\n\nJSONiqParser.INITIAL =\n[ 1, 24578, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290\n];\n\nJSONiqParser.TRANSITION =\n[ 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 36864, 36899, 36883, 36883, 36883, 36903, 36883, 36883, 36883, 36883, 36883, 36926, 36919, 36883, 36883, 36879, 36883, 36883, 36942, 36991, 37318, 37318, 41289, 37087, 37318, 37318, 37010, 37318, 37318, 37318, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 39335, 40192, 38527, 37031, 44584, 37054, 37076, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 37222, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39708, 37318, 37318, 37318, 37318, 48276, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 39727, 39739, 37318, 37318, 72403, 39755, 36991, 37318, 37318, 41289, 37087, 37318, 37318, 37010, 39794, 37318, 37318, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 39813, 40192, 39835, 37031, 44584, 37054, 37076, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 37222, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39854, 39870, 37318, 37318, 37318, 46325, 37318, 37318, 36994, 37318, 61657, 45847, 57964, 37318, 37318, 61650, 62405, 62409, 50496, 39889, 37318, 37318, 41289, 37087, 37318, 44009, 37010, 37318, 37318, 37318, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 39335, 40192, 45833, 37031, 44584, 37054, 37076, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 37222, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39908, 62747, 37318, 37318, 37318, 42026, 65655, 37318, 73568, 65651, 65646, 39935, 62736, 68791, 45102, 45088, 45095, 68779, 39950, 36991, 37318, 37318, 41289, 39994, 37318, 45426, 37010, 37318, 37318, 37318, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 39335, 40192, 39370, 40016, 44584, 37054, 37076, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 37222, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 40039, 69458, 41098, 41041, 37318, 46044, 44842, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39708, 47580, 37318, 37318, 37318, 48276, 40073, 37318, 37015, 71422, 71423, 40094, 57964, 37318, 37318, 67783, 40130, 40134, 40150, 36991, 37318, 37318, 41289, 37087, 37318, 37318, 37010, 37318, 37318, 37318, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 40186, 40192, 38527, 37031, 44584, 37054, 37076, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 37222, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39708, 37318, 37318, 37318, 37318, 48276, 71599, 37318, 37318, 37318, 37318, 67919, 40209, 37318, 37318, 66772, 40222, 40225, 40241, 36991, 37318, 37318, 41289, 37087, 37318, 37318, 37010, 37318, 37318, 37318, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 39335, 40192, 38527, 37031, 44584, 37054, 37076, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 37222, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39708, 37318, 37318, 37318, 37318, 48276, 37318, 37318, 37318, 37318, 37318, 71606, 73347, 37318, 37318, 37318, 37318, 37318, 40283, 40324, 37318, 37318, 41289, 37087, 37318, 37318, 37010, 37318, 37318, 37318, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 39335, 40192, 38527, 37031, 44584, 37054, 37076, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 40344, 37116, 37202, 37162, 40378, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 40416, 40432, 37318, 37318, 37318, 48315, 37318, 37318, 37526, 37318, 62612, 40451, 57964, 37318, 37318, 62605, 65082, 65086, 40487, 40535, 37318, 37318, 41289, 37087, 37318, 37318, 40554, 37318, 37318, 37318, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 39335, 40192, 38131, 40575, 44584, 37054, 37076, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 37222, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 40598, 40656, 40697, 40697, 40697, 40663, 40736, 40697, 40698, 40727, 40642, 40679, 40626, 40693, 40745, 40613, 40752, 40714, 40768, 36991, 37318, 37318, 40817, 40815, 37318, 37318, 37010, 37318, 37318, 37318, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 39335, 40192, 38527, 37031, 44584, 37054, 40804, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 37222, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39708, 43152, 37318, 37318, 37318, 48276, 40833, 37318, 37318, 73511, 37318, 67919, 57964, 40868, 40872, 43155, 43156, 43784, 40888, 36991, 37318, 37318, 41289, 40924, 37318, 37318, 37010, 37318, 37318, 37318, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 39335, 40192, 38527, 37031, 44584, 37054, 40942, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 37222, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39708, 43775, 37318, 37318, 37318, 48276, 37318, 37318, 37318, 37318, 69945, 73273, 57964, 40977, 41007, 44794, 41023, 73756, 40991, 36991, 37318, 37318, 41289, 37087, 37318, 37318, 37010, 37318, 37318, 37318, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 39335, 40192, 38527, 37031, 44584, 37054, 37076, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 41058, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39708, 37318, 37318, 37318, 37318, 48276, 37318, 37318, 37318, 37318, 45645, 38564, 57964, 41115, 41135, 37318, 41119, 41135, 41149, 36991, 37318, 37318, 41289, 37087, 37318, 37318, 37010, 37318, 37318, 37318, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 39335, 40192, 38527, 37031, 44584, 37054, 37076, 37318, 37318, 37301, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 37222, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39708, 62620, 37318, 37318, 37318, 48276, 62315, 37318, 37318, 42112, 62617, 51150, 68655, 68669, 68671, 37318, 37318, 74000, 41165, 36991, 37318, 37318, 41289, 37087, 37318, 37318, 37010, 37318, 37318, 37318, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 39335, 40192, 38527, 37031, 44584, 37054, 37076, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 37222, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 41215, 37318, 37318, 37318, 37318, 48276, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 41238, 41258, 37318, 41242, 41258, 41272, 36991, 37318, 37318, 41289, 37087, 37318, 37318, 37010, 37318, 37318, 37318, 37318, 37318, 44404, 72644, 50028, 41369, 65498, 47282, 62003, 69205, 37318, 62433, 37318, 68839, 45752, 41288, 37301, 44633, 37318, 37318, 37318, 37318, 73164, 72644, 41305, 72644, 72644, 41324, 38775, 41542, 41542, 58552, 65498, 52179, 65498, 65498, 52319, 41461, 41342, 41461, 41461, 60376, 37318, 37318, 37318, 37318, 37318, 37318, 57380, 44576, 38329, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 72644, 41363, 41542, 41542, 41542, 41542, 41542, 65493, 65498, 65498, 65498, 65498, 65498, 46825, 41461, 41461, 41461, 41461, 41461, 47041, 57802, 45001, 37318, 37318, 37318, 37318, 37318, 62575, 37318, 37318, 71516, 41385, 72644, 72644, 72644, 72645, 41405, 67865, 41542, 58857, 41542, 41542, 46917, 69302, 65498, 55881, 65498, 65498, 53308, 58621, 41461, 41722, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 64802, 37318, 37318, 72642, 48855, 72644, 72644, 72644, 38767, 41542, 41439, 41542, 41542, 41444, 65497, 64981, 65498, 65498, 65498, 59803, 41461, 41460, 41461, 41461, 47863, 54854, 37318, 37318, 69109, 41478, 37318, 60498, 72644, 72644, 70521, 58547, 41542, 41542, 60742, 46770, 65498, 65498, 73471, 59798, 41461, 41461, 70944, 47288, 64766, 37318, 37318, 37507, 37318, 71005, 72644, 60920, 59569, 41542, 41542, 72922, 65498, 65498, 48896, 41461, 41461, 46878, 37318, 60844, 41498, 41222, 67506, 72644, 41518, 41541, 58729, 41559, 65498, 46559, 41593, 41462, 56939, 50451, 37318, 66947, 41614, 41423, 73664, 58829, 59801, 41638, 49498, 41664, 52412, 41686, 41702, 41738, 63218, 38594, 66255, 64873, 73961, 46828, 73161, 59759, 73663, 59797, 47605, 39543, 41802, 41825, 41848, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39708, 37318, 37318, 37318, 37318, 48276, 37318, 37318, 37318, 37318, 37318, 45787, 57964, 41925, 72170, 37318, 38278, 38288, 41945, 36991, 37318, 37318, 41289, 37087, 37318, 37318, 41981, 37318, 37318, 37318, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 69382, 40192, 38527, 37031, 44584, 37054, 37076, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 37222, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39708, 42002, 37318, 37318, 37318, 45026, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 42022, 71555, 37318, 43019, 43028, 71570, 36991, 37318, 37318, 41289, 37087, 37318, 37318, 37010, 42042, 37318, 73045, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 39335, 40192, 45833, 37031, 44584, 37054, 37076, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 37222, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39708, 42061, 37318, 37318, 37318, 48276, 37318, 37318, 37318, 37318, 37318, 50713, 57964, 37318, 37318, 37318, 38993, 38997, 42078, 42128, 37318, 37318, 41289, 37087, 37318, 37318, 42147, 37318, 37318, 37318, 37318, 37318, 44404, 72644, 50028, 41369, 65498, 42168, 62003, 69205, 37318, 37318, 37318, 68839, 37318, 37318, 39275, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 41324, 41542, 41542, 41542, 58552, 65498, 65498, 65498, 65498, 57854, 41461, 41461, 41461, 41461, 64567, 42190, 37318, 37318, 37318, 37318, 37318, 42212, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 72644, 41363, 41542, 41542, 41542, 41542, 41542, 65493, 65498, 65498, 65498, 65498, 65498, 46825, 41461, 41461, 41461, 41461, 41461, 67436, 42249, 37318, 37318, 37318, 37318, 37318, 44403, 37318, 37318, 37318, 72643, 72644, 72644, 72644, 72644, 72187, 38772, 41542, 41542, 41542, 41542, 41542, 72266, 65498, 65498, 65498, 65498, 65498, 59800, 41461, 41461, 41461, 41461, 41461, 47863, 51497, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72642, 72644, 72644, 72644, 72644, 42270, 41542, 41542, 41542, 41542, 49331, 65497, 65498, 65498, 65498, 65498, 59803, 41461, 41461, 41461, 41461, 47863, 47501, 37318, 37318, 37318, 37318, 37318, 60498, 72644, 72644, 72644, 42291, 41542, 41542, 41542, 59595, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 37318, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39708, 63809, 37318, 37318, 37318, 49242, 42389, 37318, 37318, 42312, 41767, 44524, 59934, 42356, 42367, 45136, 42383, 44513, 42405, 42445, 37318, 37318, 40926, 42420, 37318, 37318, 37010, 37318, 37318, 37318, 37318, 37318, 65657, 40192, 44142, 43528, 42807, 74542, 43714, 44329, 37031, 44584, 37054, 42466, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 42495, 44053, 42520, 44234, 42536, 42631, 42566, 42582, 42617, 43323, 74548, 42732, 42652, 43181, 43457, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 74695, 44148, 43301, 42504, 44146, 43812, 43314, 42636, 43906, 44107, 42807, 42594, 42699, 42706, 42722, 43750, 42901, 42677, 43141, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 42748, 42962, 43618, 43603, 43820, 43354, 42764, 44271, 43892, 42788, 42804, 42826, 43918, 42855, 43210, 42882, 42898, 42920, 44134, 44337, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 42949, 44040, 42992, 42978, 43271, 43008, 43044, 42839, 43084, 44099, 43110, 43126, 43172, 43197, 43740, 43442, 43226, 43242, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 43259, 44205, 43287, 43339, 74705, 42601, 43379, 43395, 43411, 42683, 43427, 43493, 43509, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 43544, 43363, 43588, 43648, 42772, 43664, 43059, 43680, 43709, 43730, 43766, 38739, 38791, 38841, 38876, 38942, 38892, 43800, 43836, 43632, 43878, 43941, 43957, 42665, 43973, 43989, 39013, 39048, 39078, 44025, 44069, 44085, 43094, 44123, 43693, 44164, 39249, 55484, 44195, 43559, 43068, 43925, 39327, 39819, 44240, 42810, 42904, 39356, 44221, 43849, 44282, 42866, 45051, 43520, 43862, 42933, 39494, 44256, 44298, 44314, 39590, 43572, 44353, 42550, 44369, 44420, 44431, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39708, 37091, 37318, 37318, 37318, 48276, 39140, 44447, 37318, 67184, 67184, 50155, 62190, 71955, 71957, 37318, 37089, 71946, 44465, 36991, 37318, 37318, 41289, 37087, 37318, 37318, 37010, 37318, 37318, 37318, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 39335, 40192, 38527, 37031, 44584, 37054, 37076, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 37222, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 44502, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38381, 36956, 50180, 37398, 37414, 37436, 50351, 44540, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 44565, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 44600, 38038, 38061, 37792, 39434, 44649, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 44665, 37459, 38432, 38451, 37229, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39708, 37318, 37318, 37318, 37318, 48276, 37318, 37318, 37318, 37318, 37318, 37318, 73156, 44700, 44701, 37318, 74225, 74229, 44717, 36991, 37318, 37318, 41289, 37087, 37318, 37318, 37010, 37318, 37318, 46650, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 39335, 40192, 44756, 37031, 44584, 37054, 37076, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 37222, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 44775, 67647, 37318, 37318, 37318, 48276, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 44810, 44811, 37318, 37318, 74488, 44827, 44876, 37318, 37318, 41289, 37087, 37318, 37318, 37010, 37318, 37318, 44898, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 39335, 40192, 44921, 37031, 44584, 37054, 37076, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 37222, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 44940, 44949, 37318, 37318, 37318, 45580, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 44969, 44970, 37318, 37318, 68795, 44986, 45022, 37318, 37318, 41289, 37087, 37318, 37318, 37010, 37318, 37318, 72142, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 39335, 40192, 38201, 37031, 44584, 37054, 37076, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 37222, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 45042, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45074, 37318, 37318, 37318, 37318, 48276, 59955, 37318, 37318, 37318, 59954, 73317, 57964, 37318, 45118, 37318, 37318, 45127, 45152, 36991, 37318, 37318, 41289, 37087, 37318, 37318, 37010, 45201, 37318, 37318, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 45220, 40192, 45247, 37031, 44584, 37054, 37076, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 37222, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39708, 37318, 37318, 37318, 37318, 48276, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 37318, 37318, 37318, 46105, 37318, 45266, 36991, 37318, 37318, 41289, 37087, 37318, 37318, 37010, 37318, 37318, 37318, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 39335, 40192, 38527, 37031, 44584, 37054, 37076, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 37222, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 37318, 44953, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 37318, 37318, 45323, 45350, 63443, 47000, 65689, 37318, 37318, 41289, 37087, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 44404, 72644, 50028, 41369, 65498, 47282, 62003, 72217, 37318, 37318, 37318, 68839, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 45386, 41542, 41542, 41542, 52709, 65498, 65498, 65498, 65498, 57854, 41461, 41461, 41461, 41461, 64567, 41960, 37318, 37318, 37318, 37318, 37318, 44399, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 72644, 41363, 41542, 41542, 41542, 41542, 41542, 65493, 65498, 65498, 65498, 65498, 65498, 46825, 41461, 41461, 41461, 41461, 41461, 63696, 45404, 37318, 37318, 37318, 37318, 37318, 44403, 37318, 37318, 37318, 72643, 72644, 72644, 72644, 72644, 72645, 38772, 41542, 41542, 41542, 41542, 41542, 45363, 65498, 65498, 65498, 65498, 65498, 59800, 41461, 41461, 41461, 41461, 41461, 47863, 51497, 37318, 37318, 37318, 37318, 47785, 37318, 37318, 72642, 72644, 72644, 72644, 72644, 61913, 41542, 41542, 41542, 41542, 48876, 65497, 65498, 65498, 65498, 65498, 59803, 41461, 41461, 41461, 41461, 47863, 47501, 37318, 37318, 37318, 37318, 37318, 60498, 72644, 72644, 72644, 42291, 41542, 41542, 41542, 59595, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 37318, 37318, 45425, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 37318, 44953, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 37318, 37318, 45323, 45350, 63443, 47000, 65689, 37318, 37318, 41289, 37087, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 44404, 72644, 50028, 41369, 65498, 47282, 62003, 72217, 37318, 37318, 37318, 68839, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 45386, 41542, 41542, 41542, 52709, 65498, 65498, 65498, 65498, 57854, 41461, 41461, 41461, 41461, 64567, 41960, 37318, 37318, 37318, 37318, 37318, 44399, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 72644, 41363, 41542, 41542, 41542, 41542, 41542, 65493, 65498, 65498, 65498, 65498, 65498, 46825, 41461, 41461, 41461, 41461, 41461, 63696, 45404, 37318, 37318, 37318, 37318, 37318, 44403, 37318, 37318, 37318, 72643, 72644, 72644, 72644, 72644, 72645, 38772, 41542, 41542, 41542, 41542, 41542, 45363, 65498, 65498, 65498, 65498, 65498, 59800, 41461, 41461, 41461, 41461, 41461, 47863, 51497, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72642, 72644, 72644, 72644, 72644, 61913, 41542, 41542, 41542, 41542, 48876, 65497, 65498, 65498, 65498, 65498, 59803, 41461, 41461, 41461, 41461, 47863, 47501, 37318, 37318, 37318, 37318, 37318, 60498, 72644, 72644, 72644, 42291, 41542, 41542, 41542, 59595, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 37318, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 37318, 44953, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 37318, 37318, 45323, 45350, 63443, 47000, 65689, 37318, 37318, 41289, 37087, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 44404, 72644, 50028, 41369, 65498, 47282, 62003, 72217, 37318, 37318, 37318, 68839, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 45386, 41542, 41542, 41542, 52709, 65498, 65498, 65498, 65498, 57854, 41461, 41461, 41461, 41461, 64567, 41960, 37318, 37318, 37318, 37318, 37318, 44399, 68819, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 72644, 41363, 41542, 41542, 41542, 41542, 41542, 65493, 65498, 65498, 65498, 65498, 65498, 46825, 41461, 41461, 41461, 41461, 41461, 63696, 45404, 37318, 37318, 37318, 37318, 37318, 44403, 37318, 37318, 37318, 72643, 72644, 72644, 72644, 72644, 72645, 38772, 41542, 41542, 41542, 41542, 41542, 45363, 65498, 65498, 65498, 65498, 65498, 59800, 41461, 41461, 41461, 41461, 41461, 47863, 51497, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72642, 72644, 72644, 72644, 72644, 61913, 41542, 41542, 41542, 41542, 48876, 65497, 65498, 65498, 65498, 65498, 59803, 41461, 41461, 41461, 41461, 47863, 47501, 37318, 37318, 37318, 37318, 37318, 60498, 72644, 72644, 72644, 42291, 41542, 41542, 41542, 59595, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 37318, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 37318, 44953, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 37318, 37318, 45323, 45350, 63443, 47000, 65689, 37318, 37318, 41289, 37087, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 44404, 72644, 50028, 41369, 65498, 47282, 62003, 72217, 37318, 37318, 37318, 68839, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 45386, 41542, 41542, 41542, 52709, 65498, 65498, 65498, 65498, 57854, 41461, 41461, 41461, 41461, 64567, 41960, 37318, 37318, 37318, 37318, 37318, 44399, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 72644, 41363, 41542, 41542, 41542, 41542, 41542, 65493, 65498, 65498, 65498, 65498, 65498, 46825, 41461, 41461, 41461, 41461, 41461, 63696, 45404, 37318, 37318, 37318, 37318, 37318, 45442, 37318, 37318, 37318, 72643, 72644, 72644, 72644, 72644, 72645, 38772, 41542, 41542, 41542, 41542, 41542, 45363, 65498, 65498, 65498, 65498, 65498, 59800, 41461, 41461, 41461, 41461, 41461, 47863, 51497, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72642, 72644, 72644, 72644, 72644, 61913, 41542, 41542, 41542, 41542, 48876, 65497, 65498, 65498, 65498, 65498, 59803, 41461, 41461, 41461, 41461, 47863, 47501, 37318, 37318, 37318, 37318, 37318, 60498, 72644, 72644, 72644, 42291, 41542, 41542, 41542, 59595, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 37318, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 37318, 44953, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 37318, 37318, 45323, 45350, 63443, 47000, 65689, 37318, 37318, 41289, 37087, 37318, 37318, 50781, 37318, 37318, 37318, 37318, 37318, 44404, 72644, 50028, 41369, 65498, 47282, 62003, 72217, 37318, 37318, 37318, 68839, 37318, 37318, 53518, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 45386, 41542, 41542, 41542, 52709, 65498, 65498, 65498, 65498, 57854, 41461, 41461, 41461, 41461, 64567, 41960, 37318, 37318, 37318, 37318, 37318, 44399, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 72644, 41363, 41542, 41542, 41542, 41542, 41542, 65493, 65498, 65498, 65498, 65498, 65498, 46825, 41461, 41461, 41461, 41461, 41461, 63696, 45404, 37318, 37318, 37318, 37318, 37318, 44403, 37318, 37318, 37318, 72643, 72644, 72644, 72644, 72644, 72645, 38772, 41542, 41542, 41542, 41542, 41542, 45363, 65498, 65498, 65498, 65498, 65498, 59800, 41461, 41461, 41461, 41461, 41461, 47863, 51497, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72642, 72644, 72644, 72644, 72644, 61913, 41542, 41542, 41542, 41542, 48876, 65497, 65498, 65498, 65498, 65498, 59803, 41461, 41461, 41461, 41461, 47863, 47501, 37318, 37318, 37318, 37318, 37318, 60498, 72644, 72644, 72644, 42291, 41542, 41542, 41542, 59595, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 37318, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 37318, 44953, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 37318, 37318, 45323, 45350, 63443, 47000, 65689, 37318, 37318, 41289, 37087, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 44404, 72644, 50028, 41369, 65498, 47282, 62003, 72217, 37318, 37318, 37318, 68839, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 45386, 41542, 41542, 41542, 52709, 65498, 65498, 65498, 65498, 57854, 41461, 41461, 41461, 41461, 60376, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 72644, 41363, 41542, 41542, 41542, 41542, 41542, 65493, 65498, 65498, 65498, 65498, 65498, 46825, 41461, 41461, 41461, 41461, 41461, 47041, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72643, 72644, 72644, 72644, 72644, 72645, 38772, 41542, 41542, 41542, 41542, 41542, 45363, 65498, 65498, 65498, 65498, 65498, 59800, 41461, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72642, 72644, 72644, 72644, 72644, 38767, 41542, 41542, 41542, 41542, 41444, 65497, 65498, 65498, 65498, 65498, 59803, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 60498, 72644, 72644, 72644, 58547, 41542, 41542, 41542, 46770, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 37318, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 37318, 44953, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 37318, 37318, 45323, 45350, 63443, 47000, 65689, 37318, 37318, 41289, 37087, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 44404, 72644, 50028, 41369, 65498, 47282, 62003, 65804, 37318, 37318, 37318, 68839, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 45386, 41542, 41542, 41542, 52709, 65498, 65498, 65498, 65498, 57854, 41461, 41461, 41461, 41461, 60376, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 72644, 41363, 41542, 41542, 41542, 41542, 41542, 65493, 65498, 65498, 65498, 65498, 65498, 46825, 41461, 41461, 41461, 41461, 41461, 47041, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72643, 72644, 72644, 72644, 72644, 72645, 38772, 41542, 41542, 41542, 41542, 41542, 45363, 65498, 65498, 65498, 65498, 65498, 59800, 41461, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72642, 72644, 72644, 72644, 72644, 38767, 41542, 41542, 41542, 41542, 41444, 65497, 65498, 65498, 65498, 65498, 59803, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 60498, 72644, 72644, 72644, 58547, 41542, 41542, 41542, 46770, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 37318, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 37318, 44953, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 37318, 37318, 45323, 45350, 63443, 48653, 65689, 37318, 37318, 41289, 37087, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 44404, 72644, 50028, 41369, 65498, 47282, 62003, 72217, 37318, 37318, 37318, 68839, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 45386, 41542, 41542, 41542, 52709, 65498, 65498, 65498, 65498, 57854, 41461, 41461, 41461, 41461, 60376, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 72644, 41363, 41542, 41542, 41542, 41542, 41542, 65493, 65498, 65498, 65498, 65498, 65498, 46825, 41461, 41461, 41461, 41461, 41461, 47041, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72643, 72644, 72644, 72644, 72644, 72645, 38772, 41542, 41542, 41542, 41542, 41542, 45363, 65498, 65498, 65498, 65498, 65498, 59800, 41461, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72642, 72644, 72644, 72644, 72644, 38767, 41542, 41542, 41542, 41542, 41444, 65497, 65498, 65498, 65498, 65498, 59803, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 60498, 72644, 72644, 72644, 58547, 41542, 41542, 41542, 46770, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 37318, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 37318, 44953, 37318, 37318, 37318, 37318, 37318, 67919, 60153, 37318, 37318, 45323, 45350, 63443, 47000, 65689, 37318, 37318, 41289, 37087, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 44404, 72644, 50028, 41369, 65498, 47282, 62003, 72217, 37318, 37318, 37318, 68839, 37318, 37318, 37318, 37318, 45477, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 45386, 41542, 41542, 41542, 52709, 65498, 65498, 65498, 65498, 57854, 41461, 41461, 41461, 41461, 60376, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 72644, 41363, 41542, 41542, 41542, 41542, 41542, 65493, 65498, 65498, 65498, 65498, 65498, 46825, 41461, 41461, 41461, 41461, 41461, 47041, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72643, 72644, 72644, 72644, 72644, 72645, 38772, 41542, 41542, 41542, 41542, 41542, 45363, 65498, 65498, 65498, 65498, 65498, 59800, 41461, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72642, 72644, 72644, 72644, 72644, 38767, 41542, 41542, 41542, 41542, 41444, 65497, 65498, 65498, 65498, 65498, 59803, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 60498, 72644, 72644, 72644, 58547, 41542, 41542, 41542, 46770, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 37318, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 37318, 44953, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 37318, 37318, 45496, 45525, 45509, 45539, 65689, 37318, 37318, 41289, 37087, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 44404, 72644, 50028, 41369, 65498, 47282, 62003, 72217, 37318, 37318, 37318, 68839, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 45386, 41542, 41542, 41542, 52709, 65498, 65498, 65498, 65498, 57854, 41461, 41461, 41461, 41461, 60376, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 72644, 41363, 41542, 41542, 41542, 41542, 41542, 65493, 65498, 65498, 65498, 65498, 65498, 46825, 41461, 41461, 41461, 41461, 41461, 47041, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72643, 72644, 72644, 72644, 72644, 72645, 38772, 41542, 41542, 41542, 41542, 41542, 45363, 65498, 65498, 65498, 65498, 65498, 59800, 41461, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72642, 72644, 72644, 72644, 72644, 38767, 41542, 41542, 41542, 41542, 41444, 65497, 65498, 65498, 65498, 65498, 59803, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 60498, 72644, 72644, 72644, 58547, 41542, 41542, 41542, 46770, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 37318, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 37318, 44953, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 37318, 37318, 45323, 45350, 63443, 47000, 65689, 37318, 37318, 41289, 37087, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 44404, 72644, 50028, 41369, 65498, 47282, 62003, 72217, 37318, 37318, 37318, 68839, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 45386, 41542, 41542, 41542, 52709, 65498, 65498, 65498, 65498, 57854, 41461, 41461, 41461, 41461, 60376, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 72644, 41363, 41542, 41542, 41542, 41542, 41542, 65493, 65498, 65498, 65498, 65498, 65498, 46825, 41461, 41461, 41461, 41461, 41461, 47041, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72643, 72644, 72644, 72644, 72644, 72645, 38772, 41542, 41542, 41542, 41542, 41542, 45363, 65498, 65498, 65498, 65498, 65498, 59800, 41461, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72642, 72644, 72644, 72644, 72644, 38767, 41542, 41542, 41542, 41542, 41444, 65497, 65498, 65498, 65498, 65498, 59803, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 64785, 37318, 37318, 60498, 72644, 72644, 72644, 58547, 41542, 41542, 41542, 46770, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 37318, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45555, 37318, 37318, 37318, 37318, 44953, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 37318, 37318, 45323, 45350, 63443, 47000, 65689, 37318, 37318, 41289, 37087, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 44404, 72644, 50028, 41369, 65498, 47282, 62003, 72217, 37318, 37318, 37318, 68839, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 45386, 41542, 41542, 41542, 52709, 65498, 65498, 65498, 65498, 57854, 41461, 41461, 41461, 41461, 60376, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 72644, 41363, 41542, 41542, 41542, 41542, 41542, 65493, 65498, 65498, 65498, 65498, 65498, 46825, 41461, 41461, 41461, 41461, 41461, 47041, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72643, 72644, 72644, 72644, 72644, 72645, 38772, 41542, 41542, 41542, 41542, 41542, 45363, 65498, 65498, 65498, 65498, 65498, 59800, 41461, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72642, 72644, 72644, 72644, 72644, 38767, 41542, 41542, 41542, 41542, 41444, 65497, 65498, 65498, 65498, 65498, 59803, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 60498, 72644, 72644, 72644, 58547, 41542, 41542, 41542, 46770, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 37318, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39708, 38529, 37318, 37318, 37318, 48276, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 45576, 74434, 37318, 74579, 74583, 74448, 36991, 37318, 37318, 41289, 37087, 37318, 37318, 37010, 37318, 37318, 37318, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 39335, 40192, 38527, 37031, 44584, 37054, 37076, 37318, 37318, 74250, 68588, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 37222, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 45596, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39708, 37318, 37318, 37318, 37318, 48276, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 37318, 37318, 37318, 37318, 37318, 45625, 45661, 37318, 37318, 41289, 37087, 37318, 37318, 37010, 37318, 37318, 37318, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 39335, 40192, 45833, 37031, 44584, 37054, 37076, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 37222, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39708, 37318, 45715, 37318, 37318, 48276, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 45680, 45684, 37318, 37318, 45700, 45732, 36991, 37318, 37318, 41289, 37087, 37318, 37318, 37010, 37318, 37318, 37318, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 39335, 40192, 38527, 37031, 44584, 37054, 37076, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 37222, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 45768, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 45803, 55484, 39265, 39291, 55476, 39311, 45819, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39708, 37318, 37318, 37318, 37318, 48276, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 37318, 37318, 37318, 37318, 37318, 45266, 36991, 37318, 37318, 41289, 37087, 37318, 37318, 37010, 37318, 37318, 37318, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 39335, 40192, 38527, 37031, 44584, 37054, 37076, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 37222, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 45863, 37318, 37318, 44953, 53155, 45882, 37318, 52352, 45886, 39423, 67164, 45902, 45916, 45932, 45961, 45945, 45975, 45991, 37318, 45455, 41670, 46020, 50786, 46004, 46033, 45185, 46061, 46096, 44613, 41965, 46121, 46173, 46189, 46205, 46221, 46237, 46288, 65632, 46304, 37318, 37318, 68839, 40298, 50758, 37318, 41033, 53889, 69149, 37318, 46321, 73164, 72644, 72644, 72644, 46341, 45386, 41542, 41542, 59697, 52709, 65498, 65498, 65498, 64013, 57854, 41461, 41461, 41461, 53427, 64567, 41960, 63943, 65692, 37318, 55390, 46361, 44399, 46380, 37318, 58658, 46936, 46397, 46417, 72644, 72644, 59240, 58293, 46453, 46492, 41542, 41542, 52156, 55833, 61582, 46520, 65498, 65498, 64241, 46547, 52866, 68024, 41461, 41461, 68015, 46594, 47566, 46621, 37318, 37318, 46672, 37318, 46264, 44403, 37318, 40057, 46707, 46725, 63333, 41308, 72644, 46741, 63340, 42275, 46760, 41542, 46793, 66052, 61720, 45363, 46811, 65498, 49417, 68460, 65498, 46845, 46864, 41461, 51002, 52264, 41461, 46904, 52111, 46933, 46952, 37318, 46684, 52530, 67711, 37318, 59166, 64847, 72644, 54549, 51902, 61913, 46986, 41542, 41542, 73854, 71759, 72272, 41570, 65498, 54158, 68314, 46848, 58449, 41461, 41461, 47016, 47035, 51372, 47057, 47076, 37318, 47124, 37318, 47140, 47156, 71524, 72644, 42291, 47208, 67563, 41542, 59595, 47244, 47267, 65498, 59798, 47304, 47328, 41461, 53433, 37318, 47344, 37318, 61381, 37318, 72644, 47362, 47380, 41542, 47407, 47424, 65498, 47447, 64139, 63673, 47467, 64041, 56936, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 41347, 39062, 47486, 47520, 47551, 47602, 47622, 61702, 70577, 48688, 47605, 47638, 50030, 47449, 46829, 57656, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 47659, 37318, 37318, 44953, 37318, 37318, 37318, 37318, 37318, 67919, 47681, 47697, 47709, 47725, 47754, 47738, 47770, 65689, 37318, 37318, 41289, 37087, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 44404, 67827, 50028, 47806, 47251, 47282, 47858, 50482, 37318, 37318, 37318, 68839, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 45386, 41542, 41542, 41542, 52709, 65498, 65498, 65498, 65498, 57854, 41461, 41461, 41461, 41461, 64567, 41960, 37318, 37318, 37318, 37318, 73633, 44399, 56082, 37318, 56083, 37318, 73164, 72644, 72644, 72644, 72644, 47879, 41363, 41542, 41542, 41542, 41542, 47922, 65493, 65498, 65498, 65498, 65498, 47955, 46825, 41461, 41461, 41461, 67629, 66428, 63696, 45404, 37318, 37318, 37318, 37318, 37318, 44403, 37318, 37318, 37318, 72643, 72644, 72644, 72644, 72644, 72645, 38772, 41542, 41542, 41542, 41542, 41542, 45363, 65498, 65498, 65498, 65498, 65498, 59800, 41461, 41461, 41461, 41461, 41461, 47863, 51497, 37318, 58926, 37318, 37318, 64306, 57609, 37318, 65431, 72644, 72644, 72644, 56125, 63073, 47979, 41542, 41542, 41542, 70807, 58352, 65498, 65498, 65498, 65498, 47999, 41461, 41461, 41461, 41461, 48015, 47501, 37318, 37318, 37318, 37318, 37318, 60498, 72644, 72644, 72644, 42291, 41542, 41542, 41542, 59595, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 37318, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 65375, 48037, 48062, 48088, 48113, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 49548, 37318, 37318, 44953, 37318, 41780, 37318, 41482, 37318, 54642, 48139, 48155, 48170, 48186, 48215, 48199, 48231, 65689, 37318, 37318, 48273, 48292, 37318, 48311, 37318, 51503, 37318, 37318, 37318, 48331, 46709, 48623, 50028, 58342, 50938, 47282, 52495, 55465, 37318, 48349, 37318, 68839, 48369, 47665, 37318, 51866, 48388, 48408, 48427, 73007, 67026, 70205, 72644, 72644, 72644, 48444, 48468, 41542, 41542, 52709, 48501, 48532, 65498, 65498, 51441, 56912, 41461, 41461, 41461, 64567, 71585, 37318, 37318, 65402, 37318, 56580, 44399, 46364, 37873, 48553, 37318, 73164, 48570, 72644, 48622, 56986, 72644, 41363, 48639, 50032, 41542, 55261, 41542, 65493, 48669, 57135, 65498, 73731, 65498, 46825, 48704, 41598, 41461, 48739, 41461, 63696, 45404, 37318, 37318, 39025, 37318, 62106, 44403, 37318, 37318, 37318, 72643, 72644, 72644, 60958, 57260, 72645, 38772, 41542, 41542, 54046, 68350, 48760, 45363, 65498, 65498, 65498, 48780, 52828, 59800, 41461, 41461, 41461, 48796, 66903, 47863, 51534, 37318, 37318, 37318, 64199, 37318, 64441, 37318, 72642, 72644, 72644, 64854, 72644, 61913, 41542, 41542, 41542, 48812, 48876, 65497, 65498, 65498, 71839, 65498, 59803, 41461, 41461, 47470, 41461, 47863, 47501, 37318, 65142, 37318, 37318, 38723, 48831, 72644, 48851, 72644, 42291, 41542, 48871, 41542, 59595, 65498, 70398, 65498, 59798, 41461, 61249, 41461, 42174, 72114, 37318, 37318, 53513, 66795, 54283, 70249, 60920, 63484, 67969, 41542, 58586, 58373, 65498, 49897, 57220, 41461, 56936, 37318, 37318, 67331, 73163, 72644, 72800, 50031, 41542, 52475, 65498, 65498, 48892, 41461, 58211, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 47019, 45307, 48912, 48959, 48989, 49019, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 70340, 49053, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 49089, 37318, 44953, 37318, 48599, 37585, 39665, 37318, 67919, 49107, 49123, 49137, 49153, 49182, 49166, 49196, 65689, 37318, 37318, 41289, 37087, 37318, 37318, 37318, 37318, 37318, 48353, 37318, 48351, 60095, 51266, 41622, 41369, 62908, 47535, 62003, 72217, 37318, 62994, 49212, 68839, 37318, 49238, 37318, 49258, 37318, 51050, 39778, 49276, 57933, 60709, 68980, 49292, 71214, 49326, 70571, 70834, 49347, 57459, 49369, 49386, 49404, 49439, 49457, 61552, 61800, 49485, 58425, 64567, 41960, 37318, 37318, 68084, 37318, 56022, 44399, 37318, 37318, 37318, 70710, 73164, 72644, 72644, 72644, 72644, 49520, 41363, 41542, 41542, 41542, 52429, 41542, 65493, 65498, 65498, 65498, 59621, 65498, 46825, 41461, 41461, 41461, 65942, 41461, 71902, 49537, 37318, 37318, 48372, 63307, 37318, 44403, 37318, 37318, 38213, 70690, 72446, 72644, 72644, 72644, 64634, 56631, 49564, 49582, 41542, 41542, 56653, 45363, 49600, 48682, 65498, 65498, 64927, 49622, 49640, 70938, 41461, 41461, 62085, 49662, 51497, 37318, 37318, 37318, 37318, 37318, 49684, 37318, 68617, 72644, 72644, 69970, 72644, 65479, 41542, 41542, 41326, 41542, 48876, 49710, 65498, 65498, 47842, 65498, 59286, 41461, 41461, 58267, 41461, 47863, 47501, 37918, 62752, 37318, 37318, 49733, 60498, 55203, 65029, 49752, 42291, 67741, 65203, 74026, 59595, 66024, 65498, 49773, 59798, 49646, 41461, 49825, 47288, 37318, 51997, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 49852, 37318, 73163, 72644, 60539, 50031, 41542, 72428, 65498, 65498, 49872, 41461, 70461, 56939, 61615, 37318, 72643, 60923, 41542, 57845, 65498, 49892, 41461, 49913, 72946, 72644, 50030, 54383, 59799, 54339, 40392, 49935, 49960, 49980, 50002, 57326, 50022, 50048, 50069, 50089, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 50115, 37318, 44953, 44449, 50137, 37318, 37060, 50171, 54108, 64429, 50196, 50210, 50226, 50255, 50239, 50269, 65689, 44626, 50285, 50301, 50316, 50332, 50367, 39233, 53108, 50384, 61398, 55344, 50419, 50467, 50512, 50528, 50544, 50594, 50610, 50651, 50667, 73014, 50694, 49260, 50729, 62653, 50756, 50774, 72085, 37318, 37318, 49073, 37318, 73164, 50802, 70730, 47643, 67373, 50837, 50866, 47931, 48477, 50890, 64147, 50934, 50954, 50974, 61240, 51024, 54206, 54678, 60300, 51066, 42093, 59527, 51082, 54503, 44179, 51132, 51166, 69514, 50121, 44486, 44480, 51182, 51198, 51247, 51290, 51306, 51322, 51357, 51407, 51457, 51482, 51519, 51581, 60231, 51607, 51635, 51659, 51675, 51432, 54188, 73942, 51691, 51713, 51750, 51800, 41753, 51824, 51840, 37318, 45167, 74354, 51864, 51882, 51918, 51962, 51982, 72643, 52018, 52052, 68101, 52072, 70228, 38772, 52096, 72897, 41542, 52136, 57279, 52172, 66566, 52195, 65498, 64541, 65498, 52222, 56902, 52245, 41461, 67612, 41461, 52280, 51497, 37891, 64079, 46636, 37318, 52344, 55168, 73701, 70986, 47906, 72644, 52368, 52401, 61913, 52428, 52445, 53191, 52464, 52511, 46777, 66351, 65498, 52546, 52580, 55946, 51008, 41461, 52615, 49469, 47863, 47501, 37318, 39657, 52645, 37318, 58484, 60498, 52664, 60195, 52685, 42291, 67536, 73887, 52704, 59595, 49809, 69760, 70602, 59798, 46578, 54457, 71795, 47288, 37318, 68581, 52725, 60872, 52759, 71031, 52775, 65989, 69245, 52802, 72675, 52206, 52852, 55908, 48097, 54237, 46605, 52882, 52918, 52936, 39919, 39478, 52952, 52973, 52992, 65449, 53038, 56792, 66087, 71786, 53088, 56765, 56939, 40362, 53104, 72643, 69978, 41542, 52310, 65498, 53124, 53817, 55637, 53146, 55211, 53171, 53289, 59799, 53207, 55668, 73239, 68122, 73294, 50578, 53242, 53264, 53284, 53305, 53324, 42326, 53340, 53356, 53372, 60496, 73658, 47451, 66435, 53400, 53449, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 51938, 37318, 44953, 62203, 56053, 37318, 51929, 37318, 53498, 53534, 53550, 53564, 53580, 53609, 53593, 53623, 65689, 37318, 68909, 41289, 37087, 37318, 37318, 37318, 37318, 61388, 37318, 61393, 61388, 52002, 53639, 47391, 58863, 63536, 59869, 62003, 50482, 37318, 53663, 37318, 68839, 53663, 37318, 37318, 37318, 69142, 53682, 45250, 37318, 55674, 71208, 72644, 72644, 72644, 53704, 53738, 41542, 41542, 52709, 48072, 65498, 65498, 65498, 57854, 53755, 41461, 41461, 41461, 64567, 41960, 37318, 37318, 37318, 37318, 37318, 44399, 37318, 37318, 37318, 53779, 73164, 72644, 72644, 72644, 63735, 72644, 41363, 41542, 41542, 41542, 60760, 41542, 65493, 65498, 65498, 65498, 61277, 65498, 46825, 41461, 41461, 41461, 48744, 41461, 63696, 45404, 37318, 37318, 37318, 37318, 37318, 44403, 37318, 45747, 37318, 72643, 72644, 72644, 50815, 72644, 72645, 38772, 41542, 41542, 71247, 41542, 41542, 45363, 65498, 65498, 48537, 65498, 65498, 59800, 41461, 41461, 67762, 41461, 41461, 47863, 51497, 37318, 37318, 37318, 37318, 37318, 67308, 37318, 72642, 72644, 72644, 56359, 72644, 61913, 41542, 41542, 41542, 70112, 48876, 65497, 65498, 65498, 66735, 65498, 59803, 41461, 41461, 41461, 53797, 47863, 47501, 37318, 37318, 37318, 37318, 37318, 60498, 72644, 72644, 72644, 42291, 41542, 41542, 41542, 59595, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 37318, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 54260, 37318, 37318, 37318, 73163, 67467, 72644, 48046, 41542, 73662, 48935, 65498, 59802, 53815, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 41851, 61054, 66378, 62339, 68189, 53833, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 37318, 44953, 37318, 39797, 37318, 37318, 37318, 67919, 53869, 53905, 53909, 53925, 53954, 53938, 53968, 65689, 37318, 37318, 41289, 37087, 37318, 45716, 37318, 37318, 37318, 37318, 37318, 37318, 44404, 72644, 50028, 41369, 65498, 47282, 62003, 46136, 46156, 37318, 37318, 68839, 37318, 37318, 37318, 37318, 40903, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 45386, 41542, 41542, 41542, 52709, 65498, 65498, 65498, 65498, 57854, 41461, 41461, 41461, 41461, 60376, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 36975, 37318, 64085, 73164, 72644, 72644, 72644, 72644, 72644, 53984, 41542, 41542, 41542, 41542, 41542, 62136, 65498, 65498, 65498, 65498, 65498, 46825, 41461, 41461, 41461, 41461, 41461, 47041, 37318, 37318, 37318, 54006, 37318, 54026, 36968, 37318, 37318, 53666, 72643, 72644, 65774, 72644, 72644, 72645, 38772, 41542, 41542, 54043, 41542, 41542, 45363, 65498, 65498, 53015, 65498, 65498, 59800, 41461, 41461, 66593, 41461, 41461, 71140, 54854, 37318, 37318, 54062, 37318, 37318, 37318, 37318, 72642, 72644, 72644, 72644, 72644, 38767, 41542, 41542, 41542, 41542, 41444, 65497, 65498, 65498, 65498, 65498, 59803, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 54082, 64821, 37318, 60498, 72644, 72644, 62830, 58547, 41542, 41542, 58315, 46770, 65498, 65498, 71297, 59798, 41461, 41461, 54740, 47288, 59033, 54099, 69440, 44860, 37318, 54124, 64478, 44740, 41542, 54141, 70297, 54157, 61206, 54174, 54204, 58614, 54222, 56936, 53884, 37318, 41072, 40582, 71978, 54276, 54299, 54319, 56380, 73391, 73919, 41714, 55599, 54335, 56939, 50403, 59838, 42233, 54355, 53715, 54379, 54399, 59801, 54439, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 57408, 54473, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 37318, 44953, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 37318, 37318, 45323, 45350, 63443, 47000, 59399, 37318, 37318, 60166, 37087, 37318, 37318, 37318, 54501, 37318, 54501, 42045, 54519, 39472, 54546, 54565, 67872, 65498, 54590, 62375, 54624, 37318, 37318, 47504, 68839, 67717, 44759, 37318, 37318, 54658, 37318, 37318, 37318, 73164, 72644, 72644, 58045, 72644, 45386, 41542, 41542, 67542, 52709, 65498, 65498, 65498, 56180, 57854, 41461, 41461, 41461, 54676, 60376, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 68532, 57795, 73164, 72644, 72644, 72644, 72644, 72644, 54694, 41542, 41542, 41542, 41542, 41542, 54716, 65498, 65498, 65498, 65498, 65498, 54737, 41461, 41461, 41461, 41461, 41461, 54756, 71731, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 74625, 57661, 72644, 72644, 72644, 72644, 72645, 38772, 54791, 41542, 41542, 41542, 41542, 45363, 54808, 65498, 65498, 65498, 65498, 59800, 54829, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 66657, 37318, 37318, 37318, 37318, 72642, 72644, 72644, 72644, 58513, 38767, 41542, 41542, 41542, 63753, 41444, 65497, 65498, 65498, 65498, 70365, 59803, 41461, 41461, 41461, 60263, 47863, 54854, 37318, 37318, 49068, 37318, 37318, 60498, 72644, 72644, 72644, 58547, 41542, 41542, 41542, 46770, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 37318, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 54946, 37318, 40844, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 54850, 61615, 65734, 72643, 61015, 41542, 72843, 65498, 54871, 41461, 54893, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 51946, 37318, 44953, 37318, 54915, 54931, 37318, 54967, 54974, 54990, 55006, 55021, 55037, 55066, 55050, 55080, 65689, 37318, 37318, 51966, 38825, 37318, 37318, 37318, 54010, 55096, 55115, 48257, 55149, 55184, 55227, 55249, 41525, 55284, 55303, 63265, 55333, 37318, 37318, 37318, 40256, 37318, 55133, 55360, 37318, 37318, 37318, 55377, 52524, 73164, 55412, 59232, 72644, 55450, 55508, 48452, 55571, 48764, 46504, 61212, 71358, 65498, 52836, 55590, 72384, 66401, 41461, 55624, 55653, 37318, 55162, 48123, 45480, 68146, 44384, 37318, 37318, 55690, 55710, 55730, 55750, 50821, 72644, 73775, 55770, 55805, 41363, 53990, 41542, 54303, 55821, 55849, 65493, 53022, 65498, 61780, 55897, 55924, 46825, 56459, 41461, 71394, 55962, 55996, 47041, 37318, 37318, 37318, 54660, 56044, 56069, 49736, 37318, 37318, 37318, 56099, 56122, 72644, 56141, 70528, 58519, 56160, 58143, 41542, 63117, 55574, 66717, 50850, 52564, 65498, 63146, 65498, 56203, 56221, 51808, 41461, 56467, 41461, 56251, 56269, 54854, 55099, 56307, 46073, 56323, 59679, 56339, 62046, 56355, 52688, 61008, 58074, 70003, 51212, 41542, 66283, 70084, 56375, 56396, 56430, 65125, 61593, 46531, 69280, 62369, 41461, 56449, 56483, 56517, 56546, 63230, 66178, 37927, 69494, 47228, 56575, 66873, 56144, 56596, 56612, 70031, 45388, 56647, 56669, 56693, 56729, 56747, 56781, 56815, 56873, 56892, 51765, 56928, 56955, 37318, 37318, 61883, 53848, 56976, 57010, 57028, 57047, 57072, 57089, 57107, 57133, 57151, 57170, 57197, 57216, 56936, 60597, 37318, 40353, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 57236, 61615, 37318, 57252, 51333, 57276, 57295, 62141, 50073, 54877, 49498, 57311, 72644, 50030, 54383, 59799, 54339, 39384, 52786, 55523, 72337, 68506, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 57331, 57347, 55938, 57396, 53268, 62159, 62339, 66862, 41867, 57424, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 42152, 37318, 44953, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 37318, 37318, 57475, 57504, 57488, 57518, 65689, 37318, 37318, 41289, 37087, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 44404, 72644, 50028, 41369, 65498, 47282, 62003, 72217, 37318, 37318, 37318, 68839, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 66211, 72644, 45386, 41542, 41542, 57534, 52709, 65498, 65498, 49388, 65498, 57854, 41461, 41461, 51784, 41461, 60376, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 72644, 41363, 41542, 41542, 41542, 41542, 41542, 65493, 65498, 65498, 65498, 65498, 65498, 46825, 41461, 41461, 41461, 41461, 41461, 47041, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72643, 72644, 72644, 72644, 72644, 72645, 38772, 41542, 41542, 41542, 41542, 41542, 45363, 65498, 65498, 65498, 65498, 65498, 59800, 41461, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72642, 72644, 72644, 72644, 72644, 38767, 41542, 41542, 41542, 41542, 41444, 65497, 65498, 65498, 65498, 65498, 59803, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 60498, 72644, 72644, 72644, 58547, 41542, 41542, 41542, 46770, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 37318, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 41502, 37318, 44953, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 37318, 37318, 45323, 45350, 63443, 47000, 65689, 37318, 37318, 41289, 37087, 37318, 52736, 37318, 37318, 37318, 37318, 37318, 37318, 44404, 72644, 50028, 41369, 65498, 47282, 62003, 72217, 37318, 37318, 37318, 68839, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 45386, 41542, 41542, 41542, 52709, 65498, 65498, 65498, 65498, 57854, 41461, 41461, 41461, 41461, 60376, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 72644, 41363, 41542, 41542, 41542, 41542, 41542, 65493, 65498, 65498, 65498, 65498, 65498, 46825, 41461, 41461, 41461, 41461, 41461, 47041, 47060, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 57438, 72644, 72644, 72644, 72644, 72645, 61918, 41542, 41542, 41542, 41542, 41542, 45363, 57553, 65498, 65498, 65498, 65498, 59800, 57571, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72642, 72644, 72644, 72644, 72644, 38767, 41542, 41542, 41542, 41542, 41444, 65497, 65498, 65498, 65498, 65498, 59803, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 60498, 72644, 72644, 72644, 58547, 41542, 41542, 41542, 46770, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 37318, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 39711, 37318, 44953, 37318, 42450, 57589, 57607, 57625, 51565, 57641, 57677, 57681, 57697, 57726, 57710, 57740, 65689, 51556, 37318, 41289, 37087, 47346, 60068, 37318, 37318, 39892, 37318, 40511, 57756, 45560, 57818, 57834, 63977, 57879, 60331, 41648, 58000, 57914, 37318, 37318, 38814, 37318, 37318, 57949, 44882, 37318, 57925, 37318, 67807, 49037, 57985, 58044, 51257, 58061, 58115, 58131, 41542, 58165, 54574, 59660, 56705, 57154, 47834, 58193, 52256, 58227, 57863, 58246, 50918, 53781, 37318, 37318, 37318, 37318, 49029, 67667, 37318, 37318, 37318, 37318, 73164, 60986, 49757, 72644, 58283, 72644, 58309, 58331, 63863, 47408, 61105, 41542, 58368, 58389, 67585, 57555, 49801, 65498, 58422, 58441, 68033, 65185, 60256, 69351, 47041, 37318, 61839, 58465, 37318, 37318, 45281, 53688, 37318, 37318, 37318, 72643, 72644, 72644, 63835, 58500, 58535, 38772, 41542, 41542, 55268, 69704, 69729, 45363, 65498, 65498, 61489, 63774, 58568, 59800, 41461, 41461, 66754, 51734, 58602, 47863, 54854, 58637, 37318, 37318, 68901, 37318, 37318, 37318, 72642, 66219, 72644, 72644, 72644, 38767, 67986, 41542, 41542, 41542, 41444, 65497, 56713, 65498, 65498, 65498, 59803, 71875, 41461, 41461, 41461, 47863, 54899, 37318, 58657, 37318, 51097, 69488, 55754, 58674, 72644, 72644, 58694, 58724, 41542, 41542, 58745, 58769, 65498, 65498, 61143, 58793, 41461, 41461, 71804, 37318, 68935, 37318, 73352, 37318, 72644, 49303, 60920, 41542, 72302, 41542, 65498, 52557, 65498, 63673, 46570, 41461, 56936, 37318, 38852, 37318, 73163, 72644, 56106, 50031, 41542, 58818, 65498, 73828, 59802, 41461, 48715, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 53248, 58845, 64251, 68569, 67094, 58879, 59108, 47606, 53268, 62159, 58907, 58895, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37319, 37318, 44953, 37318, 37318, 58923, 37318, 37038, 61423, 60807, 58942, 58956, 58972, 59001, 58985, 59015, 65689, 38336, 37318, 41289, 37087, 37318, 59031, 37318, 37318, 40327, 37318, 38338, 59049, 40328, 59079, 54363, 41369, 59103, 48516, 62003, 72217, 37318, 37318, 59124, 68839, 37318, 63001, 62951, 44924, 37318, 37318, 37318, 59142, 59160, 59182, 72644, 59203, 59223, 59256, 41542, 57091, 48815, 59272, 59718, 65498, 52599, 56799, 57854, 54450, 41461, 63259, 59312, 52629, 59347, 40308, 54027, 37318, 37318, 37318, 37318, 56028, 37318, 37318, 37318, 73164, 56849, 59370, 68264, 72644, 72644, 41363, 63477, 59429, 70290, 41542, 41542, 65493, 64678, 69828, 70882, 65498, 65498, 46825, 59459, 66600, 59489, 41461, 41461, 47041, 37318, 60820, 72604, 37318, 37318, 56414, 63654, 59509, 37318, 37318, 72643, 61043, 72644, 72644, 59543, 72645, 59566, 72479, 41542, 41542, 59585, 41542, 65528, 73531, 59619, 65498, 70373, 65498, 59800, 54834, 59637, 41461, 64050, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72642, 72644, 72644, 72644, 72644, 38767, 41542, 41542, 41542, 41542, 41444, 65497, 65498, 65498, 65498, 65498, 59803, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 60498, 72644, 72644, 72644, 58547, 41542, 41542, 41542, 46770, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 44851, 37318, 37318, 37318, 37318, 59207, 72644, 60920, 61740, 41542, 41542, 73606, 65498, 65498, 49876, 41461, 41461, 56936, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 61445, 73662, 65498, 59655, 59802, 56876, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 59676, 72644, 59695, 59713, 71108, 58802, 59734, 59756, 59775, 59794, 59819, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 59854, 73737, 67066, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 67305, 48392, 37318, 54855, 59885, 59896, 59919, 66152, 67290, 59971, 59985, 60001, 60031, 60044, 60015, 65689, 47586, 44905, 38860, 60060, 60084, 37318, 60579, 48333, 40435, 72237, 60111, 60138, 60122, 60182, 60217, 60279, 60316, 65566, 60366, 50482, 58641, 37318, 37318, 48606, 72949, 68216, 73429, 60392, 69215, 60419, 37318, 60465, 60494, 60514, 60535, 72871, 72644, 60555, 49584, 41542, 47939, 52709, 70645, 70888, 65498, 70640, 57854, 54601, 60344, 63674, 41461, 59473, 64205, 46157, 37318, 60571, 37318, 37318, 37318, 60595, 37318, 37318, 45177, 73164, 60613, 72644, 53647, 72644, 72644, 41363, 60640, 41542, 61097, 41542, 41542, 58708, 70406, 65498, 55874, 65498, 65498, 50904, 58204, 41461, 60666, 41461, 41461, 47041, 37318, 37318, 37318, 37318, 40106, 37318, 37318, 44677, 60687, 37318, 60703, 72644, 72644, 46744, 72644, 58087, 60725, 41542, 41542, 41542, 60758, 74033, 52815, 65498, 65498, 65498, 52593, 61759, 41832, 41461, 41461, 41461, 53066, 69906, 47863, 49504, 60776, 60792, 64608, 60842, 51384, 60860, 60895, 60918, 60939, 60974, 61031, 61070, 38767, 70056, 61088, 61121, 61167, 41444, 65497, 61193, 61228, 55536, 61274, 59803, 61293, 61309, 61258, 72531, 61332, 54854, 48246, 61348, 61369, 61414, 58477, 51897, 68272, 58678, 65107, 61439, 53722, 46795, 49566, 61461, 54813, 65498, 61486, 61505, 72623, 61531, 61548, 61568, 67348, 61609, 37318, 37318, 61636, 61678, 47889, 61697, 61718, 52147, 61736, 61756, 56291, 61775, 61796, 55608, 61816, 46251, 61838, 37318, 61855, 73163, 61899, 68974, 61934, 52295, 73662, 61950, 58777, 71058, 61966, 62000, 62019, 63023, 62043, 40852, 60923, 72471, 73664, 62062, 59801, 62083, 49498, 62101, 55233, 62122, 54383, 62157, 62175, 62225, 62247, 62263, 62279, 62295, 62331, 57449, 55864, 54413, 66647, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 62355, 62391, 62339, 66862, 41867, 41898, 57361, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 62425, 44953, 37318, 41929, 62645, 37318, 37318, 67919, 62449, 62465, 62479, 62495, 62524, 62508, 62538, 62554, 62570, 62591, 51116, 40267, 62636, 62669, 37763, 62688, 62721, 40114, 62768, 62784, 62800, 62846, 62862, 62878, 62894, 62929, 62967, 62983, 37318, 74513, 46381, 42254, 37318, 40466, 50397, 50445, 63017, 37318, 37318, 63039, 73164, 72644, 63059, 63089, 55789, 45386, 47983, 63105, 51466, 69257, 65498, 47963, 66977, 63139, 63162, 41461, 63187, 63203, 63246, 60376, 37318, 65243, 37318, 54083, 37318, 65923, 63281, 37318, 49694, 37318, 63306, 63323, 63356, 63373, 63389, 72644, 67473, 63412, 41542, 63428, 63500, 41542, 54700, 59443, 65498, 63522, 63557, 65498, 56187, 53414, 41461, 63578, 63594, 41461, 68051, 48021, 46148, 37318, 59832, 55125, 37318, 37318, 37318, 37318, 37318, 63803, 72643, 72644, 70758, 59187, 72644, 72645, 38772, 41542, 55434, 57073, 41542, 41542, 45363, 65498, 74070, 65498, 63613, 65498, 59800, 41461, 60671, 41461, 63633, 41461, 47863, 54854, 37318, 37318, 63653, 44684, 37318, 37318, 37318, 72642, 72644, 72644, 72644, 57012, 55426, 41542, 41542, 41542, 41542, 66835, 62140, 65498, 65498, 65498, 65498, 63670, 41461, 41461, 41461, 41461, 63690, 54854, 67948, 37318, 37318, 37318, 37318, 63712, 72644, 63734, 72644, 46430, 41542, 63751, 41542, 56170, 65498, 63769, 65498, 41577, 41461, 51728, 41461, 47288, 63790, 37318, 37318, 37318, 37318, 62822, 66520, 60920, 41416, 71239, 41542, 47825, 58753, 65498, 61151, 71116, 41461, 72584, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 45334, 61615, 37318, 63825, 73373, 63858, 64501, 63879, 65885, 41461, 56530, 63897, 63917, 63966, 63993, 64029, 64066, 39534, 64101, 64126, 64163, 64186, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 50006, 53268, 62159, 64221, 66862, 41867, 64277, 64293, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 66665, 44953, 37318, 37318, 68891, 37318, 64328, 64337, 67698, 39838, 64353, 64369, 64398, 64382, 64414, 65689, 37318, 69115, 41289, 37087, 37318, 37318, 63950, 37318, 51547, 37318, 37318, 37318, 44404, 64465, 64494, 64517, 49717, 67057, 64557, 72217, 37318, 64583, 37318, 68839, 37318, 40908, 40502, 64605, 50368, 64607, 37318, 37318, 62231, 64624, 67101, 73183, 63396, 64650, 67404, 68345, 48485, 71344, 64666, 64694, 64712, 71834, 64730, 57181, 60350, 61532, 53072, 55317, 64759, 37318, 64782, 64801, 45664, 45866, 38224, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 52669, 72644, 72644, 41363, 41542, 41542, 67409, 41542, 41542, 65493, 65498, 65498, 55555, 65498, 65498, 46825, 41461, 41461, 68042, 41461, 41461, 49668, 53220, 61353, 37318, 37318, 37318, 64818, 59354, 57374, 68538, 37318, 72643, 72644, 64837, 72644, 72644, 72645, 64870, 41542, 64889, 41542, 41542, 41542, 68453, 65498, 51231, 64925, 65498, 65498, 59800, 41461, 61515, 64943, 41461, 41461, 47863, 54854, 59903, 37318, 37318, 37318, 37909, 37318, 37318, 72642, 72644, 72644, 64960, 72644, 56626, 41542, 41542, 73894, 41542, 42296, 65497, 65498, 65498, 64978, 65498, 59803, 41461, 41461, 71869, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 60498, 72644, 72644, 72644, 58547, 41542, 41542, 41542, 46770, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 37318, 52897, 37318, 59144, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 62943, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 56828, 64997, 65024, 65045, 64231, 59603, 54339, 38753, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 37318, 44953, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 37318, 37318, 45323, 45350, 63443, 47000, 65689, 37318, 37318, 41289, 37087, 37318, 46305, 37318, 37318, 37318, 42426, 42429, 65068, 54066, 65102, 51341, 41369, 65123, 50559, 62003, 48585, 65141, 37318, 37318, 68839, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 45386, 41542, 41542, 41542, 52709, 65498, 65498, 65498, 65498, 57854, 41461, 41461, 41461, 41461, 60376, 37318, 37318, 37318, 43472, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 72644, 65158, 41542, 41542, 41542, 41542, 41542, 66019, 65498, 65498, 65498, 65498, 65498, 46825, 41461, 41461, 41461, 41461, 41461, 47041, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72643, 72644, 72644, 72644, 72644, 72645, 38772, 41542, 41542, 41542, 41542, 41542, 45363, 65498, 65498, 65498, 65498, 65498, 59800, 41461, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72642, 72644, 52976, 72644, 72644, 38767, 41542, 41542, 73801, 41542, 41444, 65497, 65498, 49370, 65498, 65498, 59803, 41461, 41461, 65182, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 60498, 72644, 72644, 72644, 58547, 41542, 41542, 41542, 46770, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 37318, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 37318, 37318, 73163, 51274, 72644, 50031, 65201, 73662, 71079, 65498, 59802, 58261, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 37806, 44953, 65219, 37318, 37420, 65239, 37318, 67919, 65259, 65275, 65288, 65304, 65333, 65317, 65347, 65689, 45409, 47790, 41289, 50740, 71165, 72077, 54775, 46691, 68943, 37318, 65363, 65398, 65418, 65465, 65515, 65551, 65582, 68491, 65617, 65675, 37318, 37318, 37318, 55396, 65708, 50432, 65732, 40783, 60879, 37318, 37318, 46888, 65750, 54125, 65773, 60201, 65790, 65831, 49353, 41542, 61177, 57056, 65855, 49783, 65498, 65874, 65901, 41461, 65939, 58230, 64743, 49003, 37318, 37318, 37318, 54951, 44007, 65958, 37318, 73691, 37318, 44004, 69414, 59740, 72644, 52378, 72644, 64962, 65976, 66005, 41542, 53183, 41542, 52448, 66040, 66074, 65498, 73466, 65498, 70854, 66103, 60245, 41461, 66119, 41461, 72537, 66911, 47041, 37318, 37318, 38803, 72980, 60478, 40954, 37318, 37480, 66138, 66168, 66202, 72644, 66235, 46345, 66251, 72645, 66271, 41542, 58177, 66299, 66320, 41542, 56559, 65498, 65535, 66344, 66367, 65498, 69808, 41461, 53763, 66394, 66417, 41461, 47863, 49919, 37318, 37318, 52902, 66451, 37318, 66495, 39978, 72642, 66512, 60519, 72644, 72644, 38767, 65839, 41542, 66536, 41542, 41444, 65497, 66557, 54721, 65498, 65498, 59803, 66582, 73488, 41461, 41461, 52328, 47223, 43477, 62672, 37318, 37318, 37318, 65382, 72644, 72644, 61681, 58099, 41542, 41542, 41542, 66616, 65498, 65498, 65498, 66632, 66681, 41461, 41461, 54252, 37318, 70963, 37318, 37318, 37318, 66698, 72644, 60920, 66716, 41542, 67896, 66733, 65498, 69783, 66751, 41461, 54608, 56936, 37318, 66770, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 56009, 66788, 66811, 66827, 66851, 66889, 49836, 61620, 60922, 73660, 47450, 46828, 42223, 66927, 59778, 49606, 47605, 66943, 50030, 47449, 46829, 60496, 73658, 47451, 52229, 66963, 67001, 67042, 47192, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 42006, 44953, 41194, 40023, 67082, 63290, 67117, 67133, 67149, 67200, 67214, 67230, 67259, 67243, 67275, 67324, 37318, 67347, 72149, 37087, 37318, 39873, 37318, 37318, 73640, 55694, 39647, 45609, 60403, 67364, 67389, 66058, 64007, 71278, 67425, 72217, 39770, 40165, 39032, 68839, 68408, 37318, 37318, 37318, 37318, 39965, 41180, 37318, 67452, 67489, 70764, 72644, 72644, 67522, 67558, 63467, 41542, 52709, 51619, 65498, 67579, 65498, 57854, 67601, 63637, 67628, 41461, 60376, 37318, 67645, 37318, 67663, 67683, 37318, 56960, 37318, 65223, 37318, 37318, 73164, 52080, 69630, 72644, 72644, 72644, 67733, 60734, 73861, 41542, 41542, 53739, 65493, 58399, 51643, 65498, 65498, 63881, 46825, 67757, 59323, 41461, 41461, 66122, 50625, 37318, 37318, 67778, 47108, 48295, 37318, 38228, 67799, 44787, 57969, 67823, 72644, 72644, 69591, 55783, 67843, 67888, 41542, 41542, 63123, 65166, 73809, 53005, 65498, 65498, 64714, 62913, 63541, 72852, 41461, 41461, 59639, 69865, 70909, 48723, 67912, 59519, 37318, 37900, 37318, 51391, 37318, 67935, 72642, 72644, 52056, 59087, 72644, 38767, 41542, 41542, 67964, 67985, 41444, 65497, 65498, 65858, 58406, 65498, 59803, 41461, 41461, 68002, 41461, 47863, 54854, 37318, 68397, 37318, 68076, 37318, 60498, 68624, 72644, 68100, 65444, 66541, 41542, 68117, 51222, 72818, 65498, 55549, 59798, 53799, 41461, 51777, 47288, 37318, 37318, 40078, 37318, 68138, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 65915, 37954, 37318, 68162, 56840, 72644, 69566, 50031, 41542, 68178, 65498, 72029, 59802, 41461, 61324, 68205, 61615, 68239, 68255, 57031, 68288, 49964, 68312, 64170, 41461, 72350, 72946, 63842, 68330, 50053, 68366, 68384, 61620, 60922, 73660, 47450, 46828, 40170, 49310, 63506, 57898, 47605, 68424, 68440, 45370, 63171, 40400, 68476, 68554, 68604, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 38247, 68640, 37318, 37318, 44545, 44549, 42062, 66479, 66466, 68687, 68703, 68719, 68748, 68732, 68764, 68811, 49856, 37318, 68835, 73418, 40538, 54530, 37318, 68855, 37963, 68877, 39120, 68925, 68959, 68996, 69012, 46476, 69028, 71470, 69063, 59385, 62027, 45461, 65008, 68839, 69079, 37318, 38220, 69096, 65716, 69131, 41882, 69165, 69175, 69191, 63718, 59550, 63357, 69231, 50874, 46465, 70280, 70118, 64531, 65596, 69273, 69296, 57117, 69318, 73551, 69334, 69350, 69367, 69406, 69430, 37318, 69456, 69475, 69510, 37318, 37318, 68519, 50099, 69530, 44732, 69549, 69582, 60998, 72644, 69624, 41363, 69646, 69670, 69695, 41542, 69720, 65493, 69753, 69776, 69799, 65498, 69824, 48973, 69844, 69860, 69881, 41461, 69903, 51039, 37318, 69922, 62705, 62209, 69940, 52743, 51107, 45640, 57591, 40471, 72643, 69961, 69994, 72644, 48835, 70019, 70047, 70072, 69679, 41542, 41542, 70100, 64902, 48943, 63562, 65498, 65498, 70134, 59800, 68060, 61822, 41461, 41461, 70150, 47863, 72356, 45780, 37318, 73436, 47091, 37318, 37318, 70166, 72704, 72644, 70194, 70221, 70244, 47170, 73209, 73218, 70265, 66328, 41444, 70313, 65498, 70329, 70356, 70389, 60293, 70422, 70441, 54423, 70477, 47863, 50635, 37318, 50706, 66496, 53384, 69533, 46401, 70511, 72644, 72644, 70544, 70560, 70789, 41542, 70593, 70626, 69047, 65498, 52486, 70661, 69887, 41461, 70487, 37318, 41199, 59126, 70706, 37318, 70726, 70746, 56994, 70780, 70823, 72308, 70850, 70870, 65601, 70904, 70925, 51697, 70495, 37450, 37318, 70960, 70979, 71002, 71021, 63456, 46437, 71047, 71074, 71095, 49624, 59493, 71132, 71156, 71181, 41086, 71197, 69608, 71230, 71263, 71294, 71313, 57200, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 65052, 64909, 59331, 55194, 71329, 71374, 71410, 71439, 71455, 66985, 70676, 53268, 62159, 62339, 66862, 71486, 71502, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 37318, 71540, 37318, 37318, 62697, 37318, 37318, 67919, 71622, 71638, 71652, 71668, 71697, 71681, 71711, 65689, 37318, 37318, 41289, 71727, 43243, 37318, 54635, 37318, 47100, 37318, 37318, 37318, 44404, 60624, 71747, 71775, 71820, 71855, 71891, 71918, 50345, 37318, 37318, 68839, 37318, 37318, 64312, 71934, 37318, 37318, 37318, 63901, 73164, 71973, 72644, 72644, 67498, 71994, 41542, 41542, 41542, 72010, 61470, 65498, 65498, 49441, 57854, 72045, 41461, 41461, 72052, 56235, 72068, 37318, 72101, 73266, 37318, 37318, 37318, 72130, 72165, 37318, 45286, 73164, 72644, 72186, 72203, 52036, 66700, 41363, 41543, 41542, 72253, 47431, 72288, 65493, 56731, 65499, 62067, 70610, 72324, 46825, 73981, 63597, 47312, 56493, 72372, 47041, 37318, 38557, 37318, 72400, 37318, 37318, 37318, 52648, 37318, 37318, 72643, 69558, 72644, 72644, 72644, 72645, 72419, 58149, 41542, 41542, 41542, 41542, 61134, 64696, 65498, 65498, 65498, 65498, 59800, 57573, 41461, 41461, 41461, 41461, 47863, 56406, 37318, 67179, 37318, 37318, 37318, 37318, 60902, 62813, 72644, 72644, 72644, 72644, 42340, 41542, 41542, 41542, 41542, 41444, 47816, 65498, 65498, 65498, 65498, 64261, 41461, 41461, 41461, 41461, 47863, 54766, 37318, 37318, 46970, 37318, 37318, 39394, 72444, 72644, 72644, 67855, 72462, 41542, 57537, 51591, 72495, 65498, 65498, 72517, 72553, 41461, 41461, 72576, 37318, 72600, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 61615, 37318, 65757, 60923, 69654, 73664, 69041, 59801, 72620, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 72639, 72661, 49423, 56501, 60496, 73658, 47451, 47606, 53268, 68368, 54485, 72691, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 37318, 42479, 51143, 66186, 50148, 37318, 40519, 67015, 72720, 37318, 37318, 72736, 72765, 72749, 72779, 65689, 37318, 37318, 41289, 37087, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 44404, 72795, 49944, 41369, 72816, 50989, 62003, 72217, 37318, 49091, 63043, 68839, 37318, 37318, 37318, 37318, 37318, 52920, 37318, 37318, 73164, 47899, 72644, 73587, 72644, 45386, 72834, 41542, 56677, 52709, 56433, 65498, 65498, 72024, 57854, 55980, 41461, 64944, 41461, 60376, 37318, 37318, 37318, 37318, 37318, 55361, 37318, 37318, 37318, 53853, 37318, 73164, 72644, 72644, 72868, 72644, 72644, 41363, 41542, 41542, 72887, 41542, 41542, 65493, 65498, 65498, 72920, 65498, 65498, 46825, 41461, 56253, 41461, 41461, 41461, 47041, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72643, 72644, 72644, 72644, 72644, 72645, 38772, 41542, 41542, 41542, 41542, 41542, 45363, 65498, 65498, 65498, 65498, 65498, 59800, 41461, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72642, 72644, 72644, 72644, 72644, 38767, 41542, 41542, 41542, 41542, 41444, 65497, 65498, 65498, 65498, 65498, 59803, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 40788, 37318, 37318, 37318, 60498, 72644, 72644, 72644, 58547, 41542, 41542, 41542, 46770, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 69080, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 72938, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 37318, 50678, 37318, 37318, 72976, 37318, 72965, 72996, 73030, 73066, 73080, 73096, 73125, 73109, 73141, 65689, 37318, 37318, 41289, 37087, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 44404, 49521, 50028, 47181, 50958, 47282, 59296, 63932, 37318, 37318, 37318, 68839, 37318, 37318, 37318, 37318, 45204, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 45386, 41542, 41542, 41542, 52709, 65498, 65498, 65498, 65498, 57854, 41461, 41461, 41461, 41461, 60376, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 72644, 41363, 41542, 41542, 41542, 41542, 41542, 65493, 65498, 65498, 65498, 65498, 65498, 46825, 41461, 41461, 41461, 41461, 41461, 47041, 37318, 37318, 37318, 37318, 37318, 48411, 37318, 37318, 37318, 37318, 73180, 72644, 72644, 72644, 72644, 72645, 73199, 41542, 41542, 41542, 41542, 41542, 56282, 65498, 65498, 65498, 65498, 65498, 56756, 41461, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 68223, 37318, 37318, 37318, 37318, 37318, 72642, 72644, 73234, 72644, 56857, 38767, 41542, 66304, 41542, 41542, 73255, 65497, 65498, 73289, 65498, 72501, 59803, 41461, 61976, 41461, 70425, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 60498, 72644, 72644, 72644, 58547, 41542, 41542, 41542, 46770, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 37318, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45555, 37318, 37318, 37318, 37318, 44953, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 37318, 37318, 45323, 45350, 63443, 47000, 65689, 37318, 37318, 41289, 73310, 37318, 39135, 37318, 37318, 37318, 46656, 37318, 73333, 55714, 73368, 64110, 41369, 73389, 53053, 62003, 72217, 37318, 37318, 37318, 73407, 48428, 48554, 40049, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 61072, 72644, 52030, 45386, 41542, 41809, 41542, 73452, 65498, 65498, 58580, 63617, 57854, 41461, 41461, 73487, 55972, 60376, 73504, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 72644, 41363, 41542, 41542, 41542, 41542, 41542, 65493, 65498, 65498, 65498, 65498, 65498, 46825, 41461, 41461, 41461, 41461, 41461, 47041, 37318, 37318, 37318, 37318, 37318, 37318, 62308, 37318, 37318, 37318, 72643, 72644, 52957, 72644, 72644, 74050, 38772, 41542, 54792, 41542, 41542, 41542, 48926, 65498, 65498, 73527, 65498, 65498, 59800, 41461, 41461, 73547, 41461, 41461, 47863, 54854, 73567, 37318, 37318, 37318, 37318, 37318, 37318, 72642, 73584, 72644, 72644, 72644, 38767, 72904, 41542, 41542, 41542, 41444, 65497, 73603, 65498, 65498, 65498, 59803, 70455, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 60498, 72644, 72644, 72644, 58547, 41542, 41542, 41542, 46770, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 37318, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 37318, 44953, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 37318, 37318, 45323, 45350, 63443, 47000, 73622, 37318, 37318, 41289, 37087, 37318, 42196, 37318, 37318, 37318, 37318, 37318, 37318, 40000, 72644, 73656, 60650, 55287, 47282, 61984, 73680, 37318, 42131, 37318, 68839, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 41786, 73164, 72644, 72644, 72644, 69600, 45386, 41542, 41542, 41542, 73717, 65498, 65498, 65498, 56205, 57854, 41461, 41461, 41461, 72560, 60376, 37318, 59949, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73753, 37318, 73164, 52385, 72644, 72644, 73772, 72644, 41363, 69737, 41542, 41542, 73791, 41542, 65493, 49792, 65498, 65498, 73825, 65498, 46825, 50572, 41461, 66682, 41461, 41461, 47041, 37318, 46080, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72643, 41389, 72644, 72644, 72644, 72645, 73844, 41542, 73877, 41542, 41542, 41542, 51420, 65498, 73910, 65498, 65498, 65498, 49986, 41461, 73935, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 61662, 37318, 72642, 72644, 47364, 72644, 72644, 38767, 41542, 41542, 70798, 41542, 41444, 65497, 65498, 65498, 73958, 65498, 59803, 41461, 41461, 73977, 41461, 47863, 54854, 37318, 37318, 42105, 37318, 37318, 60498, 72644, 72644, 72644, 58547, 41542, 41542, 41542, 46770, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 73997, 37318, 37318, 40961, 37318, 60952, 72644, 60920, 74016, 41542, 41542, 57892, 65498, 65498, 71387, 41461, 41461, 56936, 37318, 60826, 37318, 73163, 72644, 74049, 50031, 68296, 73662, 65498, 74066, 59802, 53130, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 45302, 37318, 37318, 37318, 37318, 44953, 37318, 37318, 37318, 37318, 37318, 67919, 61870, 37318, 37318, 45323, 45350, 63443, 47000, 65689, 37318, 37318, 41289, 37087, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 44404, 72644, 50028, 41369, 65498, 47282, 62003, 72217, 37318, 37318, 37318, 68839, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 45386, 41542, 41542, 41542, 52709, 65498, 65498, 65498, 65498, 57854, 41461, 41461, 41461, 41461, 60376, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 72644, 41363, 41542, 41542, 41542, 41542, 41542, 65493, 65498, 65498, 65498, 65498, 65498, 46825, 41461, 41461, 41461, 41461, 41461, 47041, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72643, 72644, 72644, 72644, 72644, 72645, 38772, 41542, 41542, 41542, 41542, 41542, 45363, 65498, 65498, 65498, 65498, 65498, 59800, 41461, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72642, 72644, 72644, 72644, 72644, 38767, 41542, 41542, 41542, 41542, 41444, 65497, 65498, 65498, 65498, 65498, 59803, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 60498, 72644, 72644, 72644, 58547, 41542, 41542, 41542, 46770, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 37318, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39708, 37318, 37318, 37318, 37318, 64589, 74088, 74086, 40559, 74115, 74104, 74140, 74169, 37318, 74124, 74153, 74190, 74194, 74210, 36991, 37318, 37318, 41289, 37087, 37318, 37318, 74245, 37318, 37318, 37318, 37318, 37318, 65657, 40192, 74266, 55734, 37318, 53472, 40192, 38527, 37031, 44584, 37054, 37076, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 72228, 37116, 37202, 37162, 74643, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39708, 37318, 37318, 37318, 37318, 48276, 37318, 37318, 53226, 37318, 37318, 67919, 57964, 74289, 74334, 37318, 37318, 74319, 74303, 36991, 37318, 37318, 41289, 37087, 37318, 37318, 37010, 37318, 37318, 37318, 74350, 37318, 53463, 40192, 38525, 37318, 37318, 74370, 40192, 38527, 37031, 44584, 37054, 37076, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 37182, 37116, 37202, 37162, 37222, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39708, 37318, 37318, 37318, 37318, 74174, 37318, 37318, 37318, 37318, 37318, 52120, 37296, 74401, 74403, 37318, 37318, 74392, 74419, 36991, 37318, 37318, 41289, 37087, 37318, 37318, 74464, 37318, 37318, 74485, 37318, 37318, 59413, 40192, 38525, 37318, 37318, 39335, 40192, 38527, 37031, 44584, 37054, 37076, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 74504, 37116, 37202, 37162, 74529, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 39013, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 39249, 55484, 39265, 39291, 55476, 39311, 39327, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 39708, 37318, 37318, 37318, 37318, 48276, 37318, 37318, 37318, 37318, 37318, 67919, 57964, 37318, 37318, 37318, 37318, 37318, 74564, 65689, 37318, 37318, 41289, 37087, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 44404, 72644, 50028, 41369, 65498, 47282, 62003, 69205, 37318, 37318, 37318, 68839, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 41324, 41542, 41542, 41542, 58552, 65498, 65498, 65498, 65498, 57854, 41461, 41461, 41461, 41461, 60376, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 73164, 72644, 72644, 72644, 72644, 72644, 41363, 41542, 41542, 41542, 41542, 41542, 65493, 65498, 65498, 65498, 65498, 65498, 46825, 41461, 41461, 41461, 41461, 41461, 47041, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72643, 72644, 72644, 72644, 72644, 72645, 38772, 41542, 41542, 41542, 41542, 41542, 45363, 65498, 65498, 65498, 65498, 65498, 59800, 41461, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 72642, 72644, 72644, 72644, 72644, 38767, 41542, 41542, 41542, 41542, 41444, 65497, 65498, 65498, 65498, 65498, 59803, 41461, 41461, 41461, 41461, 47863, 54854, 37318, 37318, 37318, 37318, 37318, 60498, 72644, 72644, 72644, 58547, 41542, 41542, 41542, 46770, 65498, 65498, 65498, 59798, 41461, 41461, 41461, 47288, 37318, 37318, 37318, 37318, 37318, 72644, 72644, 60920, 41542, 41542, 41542, 65498, 65498, 65498, 63673, 41461, 41461, 56936, 37318, 37318, 37318, 73163, 72644, 72644, 50031, 41542, 73662, 65498, 65498, 59802, 41461, 41462, 56939, 61615, 37318, 72643, 60923, 41542, 73664, 65498, 59801, 41461, 49498, 72946, 72644, 50030, 54383, 59799, 54339, 61620, 60922, 73660, 47450, 46828, 73161, 59759, 73663, 59797, 47605, 60497, 50030, 47449, 46829, 60496, 73658, 47451, 47606, 53268, 62159, 62339, 66862, 41867, 41898, 41909, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 65960, 37318, 37318, 37318, 37318, 74599, 74601, 37318, 37318, 70178, 74617, 37014, 37318, 37318, 37318, 37318, 37318, 37318, 37010, 37318, 37318, 37318, 37318, 37318, 65657, 40192, 38525, 37318, 37318, 39335, 40192, 38527, 37031, 44584, 37054, 74641, 37318, 37318, 74250, 37318, 69924, 37107, 37136, 37152, 65815, 69390, 37247, 37265, 53482, 72228, 37116, 37202, 37162, 74643, 37186, 37120, 37206, 37166, 74726, 69388, 37245, 37263, 53480, 37281, 37318, 41092, 37317, 37318, 37318, 45006, 57380, 37335, 37318, 74671, 64449, 74683, 40193, 37351, 37378, 40192, 39199, 37741, 69458, 41098, 41041, 37318, 46044, 37882, 69459, 41099, 41042, 37318, 46045, 37371, 74376, 37355, 37382, 40192, 39202, 38523, 74469, 50180, 37398, 37414, 37436, 50351, 37475, 37318, 58014, 37496, 39340, 37628, 37651, 37674, 55492, 37717, 38230, 37546, 37566, 58028, 41986, 37605, 37523, 37542, 37562, 58024, 37582, 37601, 39304, 37621, 37644, 37667, 37690, 37709, 37733, 74273, 57770, 38317, 37757, 37779, 37822, 46961, 37943, 37979, 37995, 38150, 38170, 38011, 38093, 38038, 38061, 37792, 39434, 38084, 38100, 38045, 38068, 37799, 39441, 38116, 37992, 38147, 38166, 38186, 38022, 38246, 38263, 37318, 38304, 37318, 38354, 38370, 45231, 38397, 38413, 37861, 37459, 38432, 38451, 68861, 37456, 38429, 38448, 38467, 45226, 38483, 38407, 38516, 57783, 51848, 38545, 38580, 73050, 38677, 38610, 38626, 49222, 38643, 38660, 49221, 38642, 38659, 38676, 38693, 38624, 38714, 38739, 38791, 38841, 38876, 38942, 38892, 60443, 38908, 60433, 60449, 38914, 38930, 38946, 38962, 38978, 74659, 39048, 39078, 39105, 39169, 39156, 39172, 39188, 39089, 39218, 46272, 55484, 39265, 39291, 55476, 39311, 74721, 37693, 37318, 65659, 38698, 39356, 39410, 37835, 37848, 39457, 45051, 38498, 38500, 45058, 39494, 39520, 39559, 39504, 39575, 59063, 39606, 39616, 39632, 39681, 39692, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 37318, 1, 24578, 3, 0, 0, 0, 0, 0, 0, 0, 180524, 180524, 180524, 180524, 0, 188717, 0, 188717, 180524, 188717, 188717, 188717, 188717, 188717, 188717, 188717, 188717, 188717, 188717, 188717, 188717, 188717, 188717, 188717, 188717, 188717, 188717, 180524, 180524, 188717, 188717, 188717, 188717, 188717, 188717, 188717, 188717, 188717, 188717, 188717, 188717, 368, 188717, 180524, 188717, 188717, 188717, 188717, 188717, 131072, 188717, 188717, 188717, 188717, 188717, 188717, 188717, 188717, 188717, 188717, 188717, 139264, 147456, 188717, 188717, 188717, 188717, 188717, 188717, 188717, 1, 24578, 3, 0, 0, 4366336, 0, 0, 0, 180524, 188717, 302, 303, 0, 0, 307, 0, 0, 0, 307, 0, 0, 0, 4931584, 0, 0, 0, 0, 0, 0, 2367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1854, 0, 0, 0, 0, 0, 0, 4268032, 306, 307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, 0, 4268032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262144, 0, 0, 4857856, 4874240, 0, 0, 4923392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5840896, 5849088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 328, 0, 0, 375, 375, 405, 0, 0, 0, 6275072, 0, 0, 0, 0, 0, 0, 0, 368, 368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 450560, 0, 0, 0, 0, 4857856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5259264, 0, 0, 0, 0, 0, 0, 0, 0, 5414912, 0, 5447680, 0, 5464064, 0, 5414912, 5447680, 0, 0, 5562368, 5636096, 5685248, 0, 5750784, 5873664, 0, 0, 0, 0, 5636096, 5873664, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5873664, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6275072, 0, 0, 0, 914, 0, 0, 0, 0, 0, 4857856, 4874240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5447680, 0, 5464064, 0, 5480448, 5562368, 0, 0, 0, 5636096, 0, 5685248, 0, 0, 5750784, 0, 0, 0, 0, 0, 6275072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 990, 0, 0, 0, 4841472, 0, 0, 0, 4898816, 0, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 5414912, 4358144, 5447680, 4358144, 5464064, 4358144, 5480448, 5562368, 4358144, 4358144, 4358144, 5636096, 4358144, 5636096, 4358144, 5685248, 4358144, 4358144, 5750784, 4358144, 4358144, 4358144, 4358144, 4358144, 5873664, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4923392, 4358144, 4358144, 4358144, 4358144, 4358144, 0, 4923392, 0, 0, 0, 0, 4366336, 0, 0, 0, 0, 418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4276224, 1258, 0, 0, 0, 5603328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 341, 0, 0, 5341184, 0, 5652480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4759552, 4358144, 4358144, 4358144, 4358144, 4358144, 5242880, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 5341184, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 0, 0, 5808128, 4358144, 4358144, 4358144, 4825088, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 5627904, 5652480, 4358144, 5701632, 4358144, 4358144, 5808128, 4358144, 4358144, 4358144, 5668864, 0, 0, 5791744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6201344, 6242304, 6250496, 0, 0, 0, 0, 6422528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 0, 0, 0, 0, 0, 0, 5619712, 0, 0, 0, 0, 0, 0, 0, 5726208, 5758976, 0, 0, 5791744, 0, 0, 0, 0, 0, 3664, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5111808, 0, 0, 0, 0, 0, 5283840, 0, 0, 0, 0, 0, 5816320, 6291456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2389, 0, 2391, 2392, 0, 0, 0, 0, 6062080, 6463488, 0, 5398528, 0, 0, 6479872, 0, 0, 0, 0, 0, 0, 0, 3459, 0, 0, 0, 3463, 0, 0, 0, 0, 0, 0, 6463488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, 0, 0, 4931584, 4939776, 0, 0, 0, 0, 0, 0, 5054464, 0, 0, 0, 0, 0, 0, 0, 0, 5210112, 0, 0, 0, 5210112, 0, 0, 0, 0, 5292032, 0, 0, 0, 0, 5365760, 0, 0, 0, 5455872, 0, 0, 5816320, 0, 5857280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 327, 401, 0, 6119424, 0, 6168576, 0, 0, 0, 0, 0, 6242304, 0, 6291456, 0, 6316032, 0, 0, 0, 0, 0, 0, 0, 4358144, 4358144, 4931584, 4939776, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 5054464, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 5210112, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 5210112, 4358144, 4358144, 4358144, 4358144, 5292032, 4358144, 4358144, 4358144, 4358144, 5365760, 4358144, 4358144, 4358144, 5455872, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 5455872, 4358144, 4358144, 4358144, 4358144, 4358144, 5554176, 5570560, 5578752, 5619712, 5668864, 4358144, 4358144, 4358144, 5791744, 5816320, 4358144, 5857280, 4358144, 4358144, 4358144, 4358144, 5816320, 4358144, 5857280, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 0, 0, 0, 6119424, 4358144, 6168576, 4358144, 4358144, 4358144, 4358144, 4358144, 6242304, 4358144, 6291456, 4358144, 6316032, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 6463488, 0, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 6463488, 4358144, 4358144, 4358144, 4358144, 4358144, 0, 0, 0, 0, 0, 4825088, 0, 0, 0, 0, 0, 0, 0, 6184960, 5316608, 0, 0, 5644288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 646, 755, 756, 757, 0, 0, 6217728, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5390336, 5308416, 5488640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5799936, 0, 0, 5881856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 352, 353, 0, 0, 0, 0, 5070848, 5431296, 0, 6430720, 0, 0, 0, 0, 0, 0, 0, 0, 5160960, 0, 0, 0, 0, 0, 0, 6053888, 0, 0, 0, 0, 0, 5013504, 0, 0, 0, 0, 0, 0, 6053888, 0, 0, 0, 4358144, 4358144, 5013504, 4358144, 4358144, 4358144, 0, 0, 0, 0, 4841472, 0, 0, 0, 4898816, 0, 0, 0, 0, 0, 0, 1851, 0, 1853, 0, 0, 0, 0, 0, 0, 0, 0, 4825088, 0, 0, 0, 0, 0, 0, 0, 0, 2786, 0, 0, 0, 0, 0, 0, 0, 0, 2809, 0, 0, 0, 0, 0, 0, 0, 0, 2834, 0, 0, 0, 0, 0, 0, 0, 0, 3154, 0, 0, 0, 0, 0, 0, 0, 0, 3167, 3168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6283264, 6332416, 0, 0, 0, 5881856, 0, 5382144, 0, 0, 0, 0, 0, 0, 0, 3665, 3666, 0, 0, 0, 0, 0, 0, 0, 665, 0, 644, 0, 0, 0, 0, 0, 0, 0, 6266880, 4784128, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4915200, 4358144, 4956160, 4972544, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 5070848, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 5218304, 4358144, 5267456, 4358144, 4358144, 4358144, 6184960, 4358144, 4358144, 6283264, 4358144, 4358144, 6332416, 4358144, 4358144, 4358144, 6389760, 4358144, 4358144, 6430720, 6438912, 4358144, 4358144, 4358144, 6266880, 6488064, 0, 0, 0, 6266880, 0, 0, 4915200, 0, 4956160, 4972544, 0, 0, 0, 0, 0, 0, 5070848, 0, 0, 0, 0, 0, 0, 0, 5218304, 0, 5267456, 0, 0, 0, 0, 5218304, 0, 5267456, 0, 0, 5308416, 5316608, 0, 0, 0, 5431296, 0, 5488640, 0, 0, 0, 0, 0, 0, 0, 0, 6332416, 0, 0, 0, 6389760, 0, 0, 6430720, 6438912, 0, 0, 0, 0, 0, 0, 4784128, 0, 0, 0, 4849664, 0, 0, 0, 0, 0, 4915200, 0, 4956160, 4972544, 0, 0, 0, 6430720, 6438912, 4784128, 4358144, 4358144, 4358144, 4849664, 4358144, 4358144, 4358144, 4358144, 4358144, 4915200, 4358144, 4358144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 302, 0, 303, 306, 5218304, 4358144, 5267456, 4358144, 4358144, 5308416, 5316608, 4358144, 4358144, 4358144, 5431296, 4358144, 5488640, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 5799936, 4358144, 4358144, 5881856, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 6103040, 4358144, 4358144, 4358144, 6103040, 4358144, 4358144, 4358144, 6184960, 4358144, 4358144, 4358144, 6283264, 4358144, 4358144, 6332416, 4358144, 4358144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 368640, 0, 0, 0, 0, 0, 0, 2411, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4931584, 4939776, 6488064, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 357, 5660672, 5718016, 0, 5865472, 0, 0, 6037504, 0, 0, 6078464, 0, 0, 6340608, 0, 6455296, 0, 0, 0, 0, 420, 420, 420, 420, 597, 597, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 0, 420, 0, 0, 0, 0, 5472256, 0, 0, 0, 6209536, 0, 0, 0, 0, 6176768, 0, 0, 0, 0, 0, 0, 6373376, 6389760, 0, 0, 6488064, 6103040, 0, 0, 0, 0, 0, 0, 1850, 0, 0, 0, 0, 0, 0, 0, 0, 0, 662, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4898816, 0, 5709824, 0, 0, 0, 5283840, 0, 0, 0, 0, 5251072, 0, 6414336, 5832704, 0, 5955584, 0, 0, 4358144, 4358144, 4841472, 4358144, 4358144, 4358144, 4898816, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 0, 0, 0, 0, 0, 0, 303, 0, 0, 0, 4358144, 5472256, 5521408, 4358144, 4358144, 4358144, 5595136, 5709824, 5718016, 4358144, 5824512, 5865472, 4358144, 4358144, 5922816, 4358144, 4358144, 6021120, 4358144, 6037504, 4358144, 4358144, 6078464, 6111232, 4358144, 6176768, 6209536, 6234112, 4358144, 4358144, 4358144, 4358144, 5283840, 0, 0, 0, 0, 5472256, 5521408, 0, 0, 0, 0, 5595136, 5709824, 5718016, 0, 5824512, 5865472, 0, 0, 5865472, 0, 0, 5922816, 0, 0, 6021120, 0, 6037504, 0, 0, 6078464, 6111232, 0, 6176768, 6209536, 0, 6234112, 0, 0, 6234112, 0, 0, 0, 0, 0, 0, 0, 4358144, 4358144, 4841472, 4358144, 4358144, 4358144, 4898816, 4358144, 5283840, 4358144, 4358144, 4358144, 4358144, 5472256, 5521408, 4358144, 4358144, 4358144, 4358144, 5595136, 5709824, 5718016, 4358144, 4358144, 0, 0, 0, 0, 0, 5193728, 0, 0, 0, 0, 0, 0, 0, 0, 4358144, 4358144, 6209536, 4358144, 6234112, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 573440, 0, 0, 5890048, 0, 0, 0, 6160384, 0, 5095424, 5349376, 0, 5275648, 0, 0, 0, 0, 0, 0, 2308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139264, 147456, 0, 0, 344064, 0, 0, 0, 0, 4997120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5947392, 0, 0, 0, 0, 0, 3675, 0, 0, 0, 0, 0, 0, 0, 0, 4012, 528, 5103616, 4358144, 4358144, 5201920, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 5890048, 4358144, 4358144, 4358144, 6029312, 4358144, 4358144, 4358144, 4358144, 6160384, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 6406144, 0, 5103616, 0, 0, 5201920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5890048, 0, 0, 0, 0, 6029312, 0, 0, 0, 0, 6160384, 0, 0, 0, 0, 0, 0, 0, 6406144, 6406144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4997120, 4358144, 4358144, 5038080, 4358144, 4358144, 4358144, 5095424, 5095424, 5103616, 4358144, 4358144, 5201920, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 0, 5013504, 0, 4358144, 6406144, 4358144, 4358144, 4358144, 0, 0, 0, 4890624, 0, 0, 0, 0, 0, 0, 0, 0, 3209, 0, 0, 3212, 0, 0, 0, 0, 0, 0, 5898240, 5963776, 0, 0, 6193152, 0, 0, 5406720, 6397952, 5300224, 5234688, 5423104, 0, 0, 0, 0, 0, 3675, 0, 0, 0, 0, 0, 4009, 0, 4011, 528, 528, 0, 0, 0, 0, 0, 0, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58815, 57893, 57893, 0, 0, 5988352, 0, 0, 6135808, 6307840, 0, 5996544, 4800512, 0, 6356992, 0, 0, 0, 0, 0, 0, 2317, 2318, 0, 2320, 2321, 0, 0, 0, 0, 0, 0, 1207, 0, 1209, 0, 0, 368, 368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 710, 0, 0, 0, 0, 0, 0, 0, 0, 5496832, 0, 0, 0, 0, 0, 5611520, 0, 0, 0, 0, 0, 0, 0, 3673, 0, 0, 0, 0, 0, 0, 0, 0, 693, 0, 0, 0, 0, 0, 0, 368, 4947968, 5021696, 5529600, 0, 0, 5169152, 0, 0, 0, 4800512, 4808704, 4358144, 4358144, 4890624, 4358144, 4947968, 4358144, 4358144, 4358144, 5898240, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 6307840, 4358144, 4358144, 6356992, 6381568, 5185536, 0, 5234688, 5300224, 0, 0, 5406720, 5529600, 0, 0, 0, 0, 5898240, 0, 0, 0, 0, 0, 0, 0, 0, 6307840, 0, 0, 6356992, 6381568, 6397952, 4800512, 4808704, 4358144, 4358144, 4890624, 4358144, 4947968, 4358144, 4358144, 4358144, 5046272, 4358144, 4358144, 4358144, 4358144, 5185536, 4358144, 5234688, 5300224, 4358144, 4358144, 5406720, 5529600, 4358144, 4358144, 4358144, 4358144, 5898240, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 6307840, 4358144, 4358144, 6356992, 6381568, 6397952, 5021696, 4358144, 4358144, 5021696, 0, 0, 0, 4980736, 0, 0, 0, 0, 0, 5373952, 5734400, 6045696, 0, 0, 0, 0, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 0, 421, 0, 6258688, 6447104, 0, 0, 6127616, 0, 6348800, 5906432, 0, 5537792, 3675, 4882432, 0, 0, 0, 0, 0, 0, 2329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5939200, 0, 0, 5677056, 6365184, 4866048, 0, 6070272, 5545984, 5152768, 0, 0, 0, 0, 0, 3675, 0, 0, 0, 0, 4008, 0, 4010, 0, 528, 4013, 6144000, 4358144, 4866048, 4882432, 4358144, 4980736, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 5324800, 5373952, 5537792, 5545984, 5586944, 5734400, 5971968, 4358144, 6045696, 4358144, 6070272, 4358144, 4358144, 5537792, 5545984, 5734400, 5971968, 4358144, 6045696, 4358144, 6070272, 4358144, 4358144, 4358144, 6348800, 0, 4866048, 4882432, 0, 0, 0, 0, 644, 0, 0, 0, 803, 0, 808, 0, 794, 0, 820, 0, 0, 0, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 450560, 450560, 0, 0, 450560, 0, 6045696, 0, 6070272, 0, 0, 0, 0, 6348800, 0, 4866048, 4882432, 0, 4980736, 0, 0, 0, 0, 0, 0, 0, 0, 5324800, 5373952, 5537792, 5545984, 5586944, 5734400, 5971968, 0, 6045696, 0, 6070272, 0, 0, 0, 0, 6348800, 4358144, 4866048, 4882432, 4358144, 4980736, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 6299648, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 6348800, 4358144, 6144000, 0, 6144000, 0, 4988928, 5005312, 0, 0, 0, 0, 5775360, 0, 0, 0, 0, 749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 759, 0, 0, 3675, 0, 0, 0, 0, 0, 0, 5693440, 0, 6496256, 5144576, 5136384, 0, 5914624, 4358144, 6324224, 0, 0, 5005312, 0, 0, 0, 5120000, 5136384, 0, 0, 0, 0, 0, 0, 0, 1252, 0, 0, 0, 748, 1259, 0, 0, 0, 0, 0, 0, 0, 6324224, 0, 0, 5005312, 0, 0, 0, 5120000, 5136384, 0, 0, 0, 0, 0, 0, 6463488, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 6324224, 5914624, 5914624, 0, 0, 0, 0, 0, 5513216, 5783552, 0, 3675, 0, 0, 0, 0, 0, 0, 0, 0, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4931584, 4939776, 4358144, 4358144, 4358144, 0, 6053888, 0, 0, 0, 0, 0, 0, 0, 0, 6012928, 4358144, 4358144, 5013504, 4358144, 4358144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1153, 0, 0, 0, 0, 0, 3675, 0, 0, 4006, 4007, 0, 0, 0, 0, 528, 528, 528, 528, 3220, 528, 528, 528, 528, 528, 528, 3227, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 6053888, 4358144, 4358144, 0, 0, 5013504, 0, 0, 0, 0, 0, 312, 414, 0, 0, 139264, 147456, 0, 0, 0, 0, 0, 0, 0, 6103040, 0, 0, 0, 6184960, 0, 0, 0, 6283264, 0, 0, 6332416, 0, 0, 0, 6389760, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 6053888, 4358144, 4358144, 4358144, 0, 0, 0, 0, 5193728, 0, 0, 0, 0, 761, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 528, 528, 3700, 528, 528, 528, 5742592, 0, 0, 0, 0, 0, 4358144, 4907008, 4358144, 5079040, 4358144, 5226496, 4358144, 5742592, 4358144, 4358144, 4358144, 6094848, 4358144, 5062656, 0, 0, 0, 0, 0, 4358144, 4358144, 6094848, 0, 4907008, 0, 5079040, 0, 5226496, 0, 5742592, 0, 0, 0, 6094848, 0, 0, 0, 0, 0, 3675, 0, 4005, 0, 0, 0, 0, 0, 0, 528, 528, 528, 528, 4155, 528, 528, 528, 528, 528, 528, 4907008, 0, 5079040, 0, 5226496, 0, 5742592, 0, 0, 0, 6094848, 0, 4358144, 4907008, 4358144, 5079040, 5062656, 4358144, 4358144, 4358144, 4358144, 4358144, 0, 5062656, 0, 0, 0, 0, 0, 6225920, 0, 5062656, 4358144, 4358144, 4358144, 4358144, 4358144, 913, 5063569, 913, 913, 913, 913, 913, 6226833, 989, 5063645, 0, 0, 0, 4816896, 4358144, 4358144, 4358144, 4358144, 6086656, 4816896, 0, 0, 0, 0, 6086656, 4816896, 4358144, 4358144, 4358144, 4358144, 6086656, 0, 5087232, 0, 5931008, 4358144, 5332992, 5980160, 4358144, 0, 5332992, 5980160, 0, 0, 5332992, 5980160, 0, 4358144, 5332992, 5980160, 4358144, 0, 0, 0, 0, 787, 0, 0, 0, 0, 806, 0, 0, 0, 0, 0, 0, 0, 3166, 0, 0, 0, 0, 0, 0, 0, 0, 327, 0, 0, 0, 0, 0, 0, 0, 5439488, 5128192, 4358144, 5128192, 0, 5128192, 0, 5128192, 4358144, 0, 4358144, 0, 0, 4358144, 0, 4358144, 0, 0, 4358144, 6004736, 6004736, 6004736, 6004736, 6004736, 0, 0, 0, 1, 24578, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 339, 340, 0, 0, 221652, 221652, 221652, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 221652, 468, 221652, 221652, 221652, 468, 221652, 221652, 221652, 221652, 221652, 221652, 221652, 221652, 1, 24578, 3, 0, 0, 4366336, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 1162, 0, 0, 1164, 0, 0, 0, 0, 0, 0, 0, 0, 1311, 0, 0, 0, 0, 0, 1179, 0, 0, 0, 762, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 383, 0, 0, 0, 0, 1064, 0, 0, 0, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 913, 913, 913, 4358144, 4358144, 1064, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 507, 514, 514, 1, 24578, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 237568, 302, 0, 306, 237568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 643, 0, 0, 4268032, 98304, 307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 661, 0, 0, 4210979, 24578, 3, 0, 0, 297, 0, 0, 0, 0, 297, 0, 0, 0, 0, 0, 0, 0, 3685, 0, 0, 0, 3688, 3689, 0, 0, 0, 0, 0, 245760, 245760, 245760, 0, 0, 0, 0, 139264, 147456, 245760, 245760, 0, 0, 245760, 0, 4210979, 24578, 3, 0, 0, 4366336, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 1164, 1297, 0, 0, 0, 0, 0, 0, 1304, 0, 0, 0, 0, 0, 2859, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2867, 368, 368, 0, 0, 0, 303104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 647, 0, 0, 0, 0, 528, 1158, 0, 4857856, 4874240, 0, 0, 4923392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 379, 0, 0, 0, 0, 371, 0, 4358144, 4358144, 4358144, 4358144, 0, 1984, 0, 0, 0, 4825088, 0, 0, 0, 0, 0, 0, 0, 1253, 0, 0, 0, 0, 0, 0, 0, 0, 2399, 2400, 0, 0, 2402, 0, 0, 0, 0, 0, 262144, 262144, 262144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3449, 0, 0, 0, 0, 0, 262144, 262144, 0, 262144, 0, 0, 0, 139264, 147456, 262144, 0, 0, 0, 0, 0, 0, 2344, 2345, 0, 0, 0, 0, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 809, 0, 0, 0, 262144, 0, 262738, 262738, 262738, 262738, 262738, 262738, 262738, 262738, 262738, 262738, 262738, 262738, 262738, 0, 262738, 0, 0, 262738, 1, 24578, 3, 0, 0, 4366336, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 1177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4086, 528, 528, 528, 528, 0, 270336, 0, 0, 0, 0, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 5177344, 278528, 278528, 0, 0, 131072, 278528, 0, 0, 0, 0, 278528, 0, 0, 0, 0, 278528, 278528, 278528, 278528, 278528, 278528, 278528, 278528, 278528, 278528, 278528, 278528, 278528, 278528, 0, 278528, 0, 0, 278528, 1, 24578, 3, 0, 0, 4366336, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 1205, 1206, 0, 0, 0, 0, 0, 368, 368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 712, 0, 0, 0, 0, 1, 24578, 3, 0, 0, 4366336, 0, 0, 0, 0, 0, 302, 638, 0, 0, 0, 0, 1218, 0, 0, 0, 0, 1223, 0, 0, 0, 0, 0, 0, 0, 1752, 0, 0, 0, 1755, 0, 0, 1758, 0, 4268032, 306, 641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 662, 0, 0, 528, 0, 1430, 0, 0, 0, 0, 0, 4857856, 4874240, 0, 0, 0, 0, 0, 0, 0, 0, 3686, 0, 0, 0, 0, 0, 0, 0, 0, 3826, 0, 3675, 0, 0, 0, 0, 0, 0, 6275072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1525, 0, 0, 0, 0, 0, 3675, 4004, 0, 0, 0, 0, 0, 0, 0, 528, 528, 4209, 528, 4210, 528, 528, 528, 528, 528, 1, 24578, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 286720, 303, 0, 307, 286720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 663, 0, 792, 0, 307, 0, 0, 0, 0, 0, 0, 307, 139264, 287139, 0, 0, 0, 307, 0, 0, 0, 0, 1234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2414, 0, 0, 0, 0, 0, 307, 1, 24578, 3, 0, 0, 4366336, 0, 0, 0, 0, 0, 302, 66175, 0, 0, 0, 0, 1250, 0, 0, 0, 1255, 0, 0, 0, 0, 0, 0, 0, 661, 0, 0, 0, 0, 0, 0, 0, 0, 378, 0, 363, 0, 0, 0, 0, 0, 4268032, 306, 98946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 728, 0, 0, 0, 0, 122880, 0, 4268032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2310144, 0, 0, 0, 0, 307, 4857856, 4874240, 0, 0, 4923392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 528, 3699, 528, 528, 528, 528, 1, 24578, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 0, 304, 0, 304, 304, 304, 295216, 304, 304, 304, 295216, 295216, 304, 295216, 304, 304, 131072, 304, 304, 304, 304, 304, 295216, 304, 304, 304, 304, 295216, 304, 304, 304, 304, 295286, 295216, 295216, 295216, 295216, 295216, 295216, 304, 304, 304, 304, 304, 0, 0, 304, 304, 295216, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 369, 304, 0, 295216, 304, 295286, 295216, 295216, 295216, 304, 304, 304, 295286, 139264, 147456, 295216, 295216, 304, 304, 295216, 295216, 295216, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 295216, 295286, 295286, 295286, 295286, 295286, 295286, 295286, 295286, 295286, 295286, 295286, 295286, 295286, 295216, 295216, 295216, 295216, 295216, 304, 304, 304, 295216, 304, 304, 304, 304, 304, 304, 304, 295216, 374, 304, 304, 304, 304, 304, 304, 304, 295216, 304, 295216, 295216, 295216, 295216, 295216, 295216, 295216, 295216, 295286, 295286, 295286, 295286, 295286, 295286, 295216, 295216, 1, 24578, 3, 0, 0, 4366336, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 1267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3170, 0, 0, 0, 0, 0, 0, 0, 6275072, 0, 0, 0, 0, 0, 0, 0, 4399804, 4399804, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4399804, 0, 0, 319488, 0, 0, 0, 0, 0, 0, 319488, 319488, 0, 0, 0, 0, 0, 0, 0, 3696, 0, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3849, 528, 528, 528, 319488, 0, 0, 0, 319488, 319488, 319488, 319488, 319488, 319488, 319488, 319488, 319488, 319488, 319488, 319488, 319488, 319488, 319488, 319488, 319488, 319488, 0, 24578, 3, 0, 0, 4366336, 253952, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 1282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1241, 0, 0, 0, 0, 368, 425984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4399805, 0, 0, 0, 6275072, 0, 0, 0, 0, 0, 0, 0, 368, 0, 0, 0, 0, 0, 0, 2357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3461, 0, 0, 0, 0, 0, 0, 0, 327680, 327680, 327680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 327680, 327680, 1, 24578, 3, 0, 0, 4366336, 0, 0, 0, 0, 0, 302, 303, 0, 327680, 327680, 327680, 327680, 327680, 335872, 327680, 327680, 327680, 335872, 327680, 327680, 327680, 327680, 327680, 327680, 49723, 0, 0, 0, 0, 0, 0, 0, 49723, 49723, 0, 0, 0, 0, 0, 0, 0, 1270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5627904, 5652480, 0, 5701632, 0, 0, 0, 0, 0, 6275072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49152, 990, 0, 0, 0, 0, 0, 3683, 0, 0, 0, 0, 0, 0, 0, 3690, 0, 0, 0, 0, 0, 3836, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5242880, 0, 0, 0, 0, 0, 0, 0, 5341184, 0, 0, 0, 0, 0, 344064, 344064, 344064, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 344064, 344064, 344064, 344064, 344064, 344064, 344064, 344064, 344064, 344064, 344064, 344064, 344064, 344064, 344064, 344064, 344064, 344064, 344064, 344064, 344064, 344064, 1, 24578, 3, 0, 0, 4366336, 0, 0, 0, 0, 0, 302, 303, 0, 352256, 352256, 1, 24578, 3, 0, 0, 4366336, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 1309, 0, 0, 0, 0, 0, 0, 0, 0, 1315, 0, 0, 0, 0, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3438, 0, 0, 3440, 0, 1, 292, 3, 0, 0, 0, 298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 3698, 528, 528, 528, 3701, 528, 0, 360448, 360448, 360448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 360448, 360448, 360448, 360448, 360448, 360448, 360448, 360448, 360448, 360448, 360448, 360448, 360448, 360448, 360448, 360448, 360448, 360448, 360448, 360448, 360448, 360448, 1, 0, 3, 155942, 155942, 296, 0, 636, 0, 0, 0, 302, 303, 0, 1230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 368, 528, 528, 1376, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2460, 528, 0, 914, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60322, 57943, 57943, 57943, 57943, 59004, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 528, 57893, 3998, 0, 4000, 528, 528, 528, 528, 58773, 0, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 0, 57916, 57916, 57916, 57916, 57916, 528, 528, 528, 2437, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2446, 528, 2448, 0, 0, 0, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59856, 57893, 57893, 57893, 57893, 57893, 57893, 60873, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61213, 57893, 57893, 57893, 57893, 61214, 61215, 57893, 57893, 57893, 57893, 60300, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 0, 0, 0, 0, 0, 60432, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 528, 0, 0, 0, 3191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 0, 0, 0, 0, 0, 0, 3682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 338, 0, 0, 0, 528, 57893, 61069, 57893, 57893, 57893, 61072, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58331, 0, 57916, 57916, 57916, 57916, 57916, 61080, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59358, 61101, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61109, 57916, 57916, 57916, 57916, 57916, 57916, 60360, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 60707, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61138, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59568, 57943, 57943, 57943, 528, 528, 3852, 3853, 528, 528, 528, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58291, 57893, 57893, 57943, 57943, 57943, 61251, 57943, 57943, 57943, 57943, 61252, 61253, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 58468, 57943, 57943, 57943, 57943, 528, 528, 528, 898, 0, 0, 3675, 0, 0, 3929, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 695, 0, 0, 0, 0, 368, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 61299, 57893, 57893, 57893, 57893, 57893, 57893, 61305, 57893, 57893, 57893, 61309, 57893, 57916, 57916, 57916, 57916, 57916, 57916, 61315, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 61128, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60066, 57943, 57943, 57943, 57943, 57943, 57943, 57916, 57916, 61321, 57916, 57916, 57916, 61325, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 61331, 57943, 528, 1951, 528, 2283, 528, 57893, 59394, 57893, 59632, 57893, 2290, 0, 2291, 0, 0, 0, 0, 0, 417792, 0, 417792, 0, 0, 0, 0, 310, 0, 0, 0, 0, 0, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1328, 0, 0, 0, 0, 0, 528, 528, 57893, 57893, 57893, 57893, 61511, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58826, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 57916, 57916, 57916, 61524, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 60024, 57943, 60026, 57943, 57943, 57943, 57943, 57943, 61537, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 0, 0, 0, 0, 0, 0, 4244, 528, 528, 528, 57893, 57893, 57893, 57893, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 0, 0, 0, 0, 1310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1316, 1269, 0, 528, 528, 57893, 57893, 57916, 57916, 57943, 57943, 0, 528, 57893, 57916, 57943, 0, 528, 57893, 57916, 57943, 0, 528, 57893, 57916, 57943, 0, 0, 0, 0, 376832, 376832, 376832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 346, 0, 0, 0, 0, 420, 1, 24578, 3, 0, 0, 4366336, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 1731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 648, 0, 0, 0, 0, 0, 0, 0, 0, 4268780, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6119424, 0, 6168576, 0, 0, 0, 0, 308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 354, 355, 356, 0, 0, 393685, 393685, 393685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 368, 0, 0, 245760, 0, 0, 475136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 761, 0, 0, 305, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411, 0, 421, 1, 24578, 3, 155942, 155942, 296, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 1731, 0, 0, 0, 0, 1738, 0, 1740, 0, 0, 0, 0, 0, 0, 3180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 352256, 0, 352256, 352256, 0, 0, 0, 305, 306, 307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1185, 0, 0, 0, 0, 0, 748, 421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, 0, 0, 0, 57916, 0, 0, 0, 748, 57893, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 528, 528, 3413, 57893, 57893, 60760, 1725, 0, 0, 0, 1731, 1732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 741, 0, 0, 0, 0, 0, 0, 0, 0, 1252, 1825, 0, 0, 0, 0, 1259, 1259, 0, 0, 0, 0, 0, 0, 0, 4083, 0, 4085, 0, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3848, 528, 528, 528, 528, 0, 0, 2293, 1732, 2294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 368, 368, 1212, 0, 0, 528, 528, 2499, 2932, 0, 0, 0, 0, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59860, 528, 528, 528, 2932, 0, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 0, 0, 2592, 0, 0, 417792, 0, 0, 0, 0, 417792, 0, 0, 0, 0, 0, 310, 0, 310, 0, 0, 0, 0, 0, 4151, 4152, 4153, 528, 528, 528, 4156, 528, 4158, 528, 528, 0, 0, 0, 0, 0, 0, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60283, 417792, 417792, 0, 0, 417792, 417792, 417792, 417792, 417792, 417792, 417792, 417792, 417792, 417792, 417792, 417792, 418102, 417792, 417792, 418101, 418102, 417792, 417792, 418101, 417792, 418101, 417792, 0, 417792, 0, 0, 0, 0, 417792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, 310, 310, 0, 418101, 417792, 1, 24578, 3, 0, 0, 4366971, 0, 0, 0, 0, 0, 302, 303, 311296, 4399805, 0, 0, 0, 311296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 800, 0, 0, 0, 0, 0, 0, 0, 0, 4268032, 306, 307, 0, 434176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 381, 0, 384, 0, 0, 0, 0, 0, 6275072, 0, 0, 0, 0, 0, 0, 0, 0, 4399805, 0, 0, 0, 0, 0, 363, 0, 0, 0, 0, 0, 0, 368, 0, 296, 0, 0, 914, 913, 913, 913, 913, 913, 4858769, 4875153, 913, 913, 913, 913, 913, 913, 913, 913, 913, 5628817, 5653393, 913, 5702545, 913, 913, 913, 913, 5448593, 913, 5464977, 913, 5481361, 5563281, 913, 913, 913, 5637009, 913, 5686161, 913, 913, 5751697, 913, 6275985, 913, 913, 913, 913, 913, 913, 913, 913, 913, 0, 0, 990, 989, 989, 989, 989, 6087645, 4817809, 4359057, 4359057, 4359057, 4359057, 6087569, 0, 5087232, 0, 5931008, 4358144, 989, 989, 5260253, 989, 989, 989, 989, 989, 989, 989, 989, 5415901, 989, 5448669, 989, 5465053, 989, 5481437, 5563357, 989, 989, 989, 5637085, 989, 5686237, 989, 989, 5751773, 989, 989, 989, 989, 989, 989, 6300637, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 5112797, 989, 989, 989, 989, 989, 989, 5874653, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 6276061, 989, 989, 989, 4858845, 4875229, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 5178333, 989, 989, 4359057, 5637009, 4359057, 5686161, 4359057, 4359057, 5751697, 4359057, 4359057, 4359057, 4359057, 4359057, 5874577, 4359057, 4359057, 4359057, 4359057, 5186449, 4359057, 5235601, 5301137, 4359057, 4359057, 5407633, 5530513, 4359057, 4359057, 4359057, 4359057, 4359057, 6300561, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 5112721, 4359057, 4359057, 4359057, 4359057, 989, 989, 5809041, 4359057, 4359057, 4359057, 4826001, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 5178257, 4359057, 4359057, 4359057, 4359057, 4359057, 5243793, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 5342097, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 5415825, 4359057, 5448593, 4359057, 5464977, 4359057, 5481361, 5563281, 4359057, 4359057, 0, 0, 0, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 4932497, 4940689, 913, 913, 6464401, 0, 0, 0, 0, 989, 989, 989, 989, 989, 989, 989, 989, 989, 4998109, 989, 989, 5039069, 989, 989, 989, 5096413, 989, 5456861, 989, 989, 989, 989, 989, 5555165, 5571549, 5579741, 5620701, 5669853, 989, 989, 989, 5792733, 5817309, 989, 5858269, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 4359057, 4359057, 4359057, 6120413, 989, 6169565, 989, 989, 989, 989, 989, 6243293, 989, 6292445, 989, 6317021, 989, 989, 989, 989, 989, 5071837, 989, 989, 989, 989, 989, 989, 989, 5219293, 989, 5268445, 4359057, 4359057, 4932497, 4940689, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 5055377, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 6054801, 4359057, 4359057, 4359057, 0, 0, 0, 0, 5193728, 0, 4359057, 5456785, 4359057, 4359057, 4359057, 4359057, 4359057, 5555089, 5571473, 5579665, 5620625, 5669777, 4359057, 4359057, 4359057, 5792657, 5817233, 4359057, 5858193, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 0, 5013504, 0, 6120337, 4359057, 6169489, 4359057, 4359057, 4359057, 4359057, 4359057, 6243217, 4359057, 6292369, 4359057, 6316945, 4359057, 4359057, 4359057, 5194641, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4907008, 0, 5079040, 6094848, 6430720, 6438912, 0, 0, 0, 0, 0, 0, 4785041, 913, 913, 913, 4850577, 913, 913, 913, 913, 913, 913, 5055377, 913, 913, 913, 913, 913, 913, 913, 913, 5211025, 5489553, 913, 913, 913, 913, 913, 913, 913, 913, 913, 5800849, 913, 913, 5882769, 913, 913, 913, 913, 5219217, 913, 5268369, 913, 913, 5309329, 5317521, 913, 913, 913, 5432209, 913, 913, 913, 6333329, 913, 913, 913, 6390673, 913, 913, 6431633, 6439825, 0, 0, 0, 0, 0, 0, 0, 393685, 0, 393685, 393685, 393685, 393685, 393685, 393685, 393685, 393685, 393685, 393685, 393685, 393685, 393685, 393685, 0, 393685, 0, 4785117, 989, 989, 989, 4850653, 989, 989, 989, 989, 989, 4916189, 989, 4957149, 4973533, 989, 989, 989, 6030301, 989, 989, 989, 989, 6161373, 989, 989, 989, 989, 989, 989, 989, 6325213, 4359057, 4359057, 5006225, 4359057, 4359057, 4359057, 5120913, 5137297, 989, 989, 5309405, 5317597, 989, 989, 989, 5432285, 989, 5489629, 989, 989, 989, 989, 989, 989, 5325789, 5374941, 5538781, 5546973, 5587933, 5735389, 5972957, 989, 6046685, 989, 6104029, 989, 989, 989, 6185949, 989, 989, 989, 6284253, 989, 989, 6333405, 989, 989, 989, 6390749, 989, 989, 6431709, 6439901, 4785041, 4359057, 4359057, 4359057, 4850577, 4359057, 4359057, 4359057, 4359057, 4359057, 4916113, 4359057, 4358144, 4358144, 4358144, 4358144, 4358144, 913, 913, 913, 913, 913, 0, 0, 0, 0, 0, 0, 0, 319488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319488, 0, 4957073, 4973457, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 5071761, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 6275985, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 5219217, 4359057, 5268369, 4359057, 4359057, 5309329, 5317521, 4359057, 4359057, 4359057, 5432209, 4359057, 5489553, 4359057, 4359057, 4359057, 5211025, 4359057, 4359057, 4359057, 4359057, 5292945, 4359057, 4359057, 4359057, 4359057, 5366673, 4359057, 4359057, 4359057, 4359057, 6390673, 4359057, 4359057, 6431633, 6439825, 4358144, 4358144, 4358144, 6266880, 6488064, 913, 913, 913, 6267793, 6488977, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 730, 4358144, 4358144, 4358144, 0, 0, 913, 913, 4842385, 913, 913, 913, 4899729, 913, 913, 913, 913, 913, 913, 913, 6103953, 913, 913, 913, 6185873, 913, 913, 913, 6284177, 913, 913, 5473169, 5522321, 913, 913, 913, 913, 5596049, 5710737, 5718929, 913, 5825425, 5866385, 913, 913, 913, 913, 5243793, 913, 913, 913, 913, 913, 913, 913, 5342097, 913, 913, 913, 0, 0, 989, 989, 989, 4826077, 989, 989, 989, 989, 989, 989, 989, 0, 913, 4359057, 4359057, 4359057, 4359057, 4359057, 4858769, 4875153, 5923729, 913, 913, 6022033, 913, 6038417, 913, 913, 6079377, 6112145, 913, 6177681, 6210449, 913, 6235025, 913, 913, 913, 913, 6243217, 913, 6292369, 913, 6316945, 913, 913, 913, 913, 913, 913, 913, 4998033, 913, 913, 5038993, 913, 913, 913, 5096337, 5104529, 5284829, 989, 989, 989, 989, 5473245, 5522397, 989, 989, 989, 989, 5596125, 5710813, 5719005, 989, 5825501, 5866461, 989, 989, 5923805, 989, 989, 6022109, 989, 6038493, 989, 989, 6079453, 6112221, 989, 6177757, 6210525, 989, 6235101, 989, 989, 989, 989, 989, 989, 989, 4359057, 4359057, 4842385, 4359057, 4359057, 4359057, 4899729, 4359057, 5284753, 4359057, 4359057, 4359057, 4359057, 5473169, 5522321, 4359057, 4359057, 4359057, 4359057, 5596049, 5710737, 5718929, 4359057, 4359057, 4359057, 6103953, 4359057, 4359057, 4359057, 6185873, 4359057, 4359057, 4359057, 6284177, 4359057, 4359057, 6333329, 4359057, 4359057, 4923392, 4358144, 4358144, 4358144, 4358144, 4358144, 913, 4924305, 913, 913, 913, 913, 4366336, 0, 0, 0, 0, 1779, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3156, 0, 3157, 0, 0, 5825425, 5866385, 4359057, 4359057, 5923729, 4359057, 4359057, 6022033, 4359057, 6038417, 4359057, 4359057, 6079377, 6112145, 4359057, 6177681, 6210449, 4359057, 6235025, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4358144, 4358144, 4358144, 913, 913, 913, 913, 913, 5194641, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 988, 989, 989, 989, 989, 989, 4358144, 4358144, 6029312, 4358144, 4358144, 4358144, 4358144, 6160384, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 6406144, 913, 913, 913, 913, 6325137, 989, 989, 5006301, 989, 989, 989, 5120989, 5137373, 989, 989, 989, 989, 989, 6226909, 4359057, 5063569, 4359057, 4359057, 4359057, 4359057, 4359057, 6226833, 0, 6086656, 913, 913, 5202833, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 5890961, 913, 913, 913, 5555089, 5571473, 5579665, 5620625, 5669777, 913, 913, 913, 5792657, 5817233, 913, 5858193, 913, 913, 913, 913, 5292945, 913, 913, 913, 913, 5366673, 913, 913, 913, 5456785, 913, 913, 913, 913, 913, 6308753, 913, 913, 6357905, 6382481, 6398865, 4801501, 4809693, 989, 989, 4891613, 913, 913, 6030225, 913, 913, 913, 913, 6161297, 913, 913, 913, 913, 913, 913, 913, 6407057, 5104605, 989, 989, 5202909, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 5891037, 6407133, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4998033, 4359057, 4359057, 5038993, 4359057, 4359057, 4359057, 5325713, 5374865, 5538705, 5546897, 5587857, 5735313, 5972881, 4359057, 6046609, 4359057, 6071185, 4359057, 4359057, 5096337, 5104529, 4359057, 4359057, 5202833, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4358144, 4358144, 4358144, 4358144, 5890961, 4359057, 4359057, 4359057, 6030225, 4359057, 4359057, 4359057, 4359057, 6161297, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 5800849, 4359057, 4359057, 5882769, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 5628817, 5653393, 4359057, 5702545, 4359057, 4359057, 5809041, 4359057, 4359057, 4359057, 4359057, 6407057, 4358144, 4358144, 4358144, 913, 913, 913, 4890624, 0, 0, 0, 0, 0, 0, 0, 0, 327680, 0, 0, 0, 0, 0, 0, 0, 0, 319488, 0, 0, 0, 0, 319488, 0, 319488, 6397952, 4801425, 4809617, 913, 913, 4891537, 913, 4948881, 913, 913, 913, 5047185, 913, 913, 913, 913, 913, 913, 913, 6300561, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 6120337, 913, 6169489, 913, 5186449, 913, 5235601, 5301137, 913, 913, 5407633, 5530513, 913, 913, 913, 913, 5899153, 913, 913, 913, 913, 913, 913, 6054801, 913, 913, 913, 989, 989, 5014493, 989, 989, 989, 989, 989, 5194717, 989, 989, 989, 989, 989, 989, 989, 989, 4359057, 4359057, 989, 4948957, 989, 989, 989, 5047261, 989, 989, 989, 989, 5186525, 989, 5235677, 5301213, 989, 989, 989, 5211101, 989, 989, 989, 989, 5293021, 989, 989, 989, 989, 5366749, 989, 989, 989, 5243869, 989, 989, 989, 989, 989, 989, 989, 5342173, 989, 989, 989, 989, 989, 989, 6464477, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 6325137, 5914624, 5915537, 0, 0, 0, 5407709, 5530589, 989, 989, 989, 989, 5899229, 989, 989, 989, 989, 989, 989, 989, 989, 6308829, 989, 989, 6357981, 6382557, 6398941, 4801425, 4809617, 4359057, 4359057, 4891537, 4359057, 4948881, 4359057, 4359057, 4359057, 5047185, 5899153, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 6308753, 4359057, 4359057, 6357905, 6382481, 6398865, 5021696, 4358144, 4358144, 5022609, 913, 913, 0, 4980736, 0, 0, 0, 0, 0, 5373952, 5734400, 6045696, 0, 0, 0, 0, 1792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114688, 0, 5537792, 5545984, 5734400, 5971968, 4358144, 6045696, 4358144, 6070272, 4358144, 4358144, 4358144, 6348800, 913, 4866961, 4883345, 913, 913, 4916113, 913, 4957073, 4973457, 913, 913, 913, 913, 913, 913, 5071761, 913, 913, 913, 913, 913, 913, 5260177, 913, 913, 913, 913, 913, 913, 913, 913, 5415825, 4981649, 913, 913, 913, 913, 913, 913, 913, 913, 5325713, 5374865, 5538705, 5546897, 5587857, 5735313, 5972881, 913, 6046609, 913, 6071185, 913, 913, 913, 913, 6349713, 989, 4867037, 4883421, 989, 4981725, 989, 989, 989, 5800925, 989, 989, 5882845, 989, 989, 989, 989, 989, 989, 989, 989, 989, 5628893, 5653469, 989, 5702621, 989, 989, 989, 989, 6071261, 989, 989, 989, 989, 6349789, 4359057, 4866961, 4883345, 4359057, 4981649, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 6464401, 4358144, 4358144, 4358144, 4358144, 4358144, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 5178257, 913, 4359057, 4359057, 6349713, 4358144, 6144000, 913, 6144913, 0, 4988928, 5005312, 0, 0, 0, 0, 5775360, 0, 0, 0, 0, 1795, 0, 0, 1798, 0, 1800, 0, 0, 0, 0, 0, 1806, 4358144, 6324224, 913, 913, 5006225, 913, 913, 913, 5120913, 5137297, 913, 913, 913, 913, 913, 913, 913, 5112721, 913, 913, 913, 913, 913, 5284753, 913, 913, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 6053888, 4358144, 4358144, 913, 913, 5014417, 913, 913, 913, 913, 913, 5874577, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 989, 989, 989, 4358144, 6094848, 913, 4907921, 913, 5079953, 913, 5227409, 913, 5743505, 913, 913, 913, 6095761, 913, 989, 989, 4932573, 4940765, 989, 989, 989, 989, 989, 989, 5055453, 989, 989, 989, 989, 989, 989, 6054877, 989, 989, 989, 4359057, 4359057, 5014417, 4359057, 4359057, 4359057, 4907997, 989, 5080029, 989, 5227485, 989, 5743581, 989, 989, 989, 6095837, 989, 4359057, 4907921, 4359057, 5079953, 4359057, 5227409, 4359057, 5743505, 4359057, 4359057, 4359057, 6095761, 4359057, 5062656, 0, 0, 0, 0, 0, 4358144, 4358144, 0, 913, 913, 913, 913, 913, 913, 0, 0, 0, 0, 0, 0, 0, 0, 4956160, 4964352, 0, 0, 0, 0, 0, 0, 0, 0, 4816896, 4358144, 4358144, 4358144, 4358144, 6086656, 4817809, 913, 913, 913, 913, 6087569, 4817885, 5332992, 5980160, 4358144, 913, 5333905, 5981073, 913, 989, 5333981, 5981149, 989, 4359057, 5333905, 5981073, 4359057, 0, 0, 0, 0, 1811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1820, 0, 0, 0, 0, 1825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 5439488, 5128192, 4358144, 5129105, 913, 5129181, 989, 5129105, 4359057, 0, 4358144, 913, 989, 4359057, 0, 4358144, 913, 989, 4359057, 6004736, 6004736, 6005649, 6005725, 6005649, 0, 0, 0, 450560, 450560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 375, 0, 450560, 450560, 1, 24578, 3, 0, 0, 4366336, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 1876, 1877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1867, 0, 0, 1870, 0, 0, 0, 0, 0, 196608, 0, 0, 0, 106496, 0, 0, 4284416, 0, 0, 0, 0, 0, 0, 0, 417792, 0, 0, 417792, 0, 0, 417792, 0, 417792, 0, 0, 0, 0, 139264, 147456, 417792, 0, 0, 0, 417792, 196608, 0, 0, 5816320, 6291456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, 307, 0, 0, 0, 4956160, 4964352, 0, 0, 0, 0, 0, 0, 0, 466944, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5480448, 0, 0, 0, 0, 0, 0, 6430720, 6438912, 914, 0, 0, 0, 914, 0, 4784128, 0, 0, 0, 4849664, 0, 0, 0, 0, 0, 648, 0, 0, 0, 0, 0, 0, 818, 0, 0, 0, 0, 0, 658, 659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 6332416, 0, 0, 0, 6389760, 0, 0, 6430720, 6438912, 990, 0, 0, 0, 990, 4358144, 4358144, 4358144, 914, 0, 0, 0, 4841472, 0, 0, 0, 4898816, 0, 0, 0, 0, 0, 0, 2383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2825, 0, 0, 0, 0, 0, 0, 0, 459222, 459222, 459222, 459222, 459222, 459222, 459222, 459222, 459222, 459222, 459222, 459222, 459222, 459222, 459222, 459222, 459222, 459379, 1, 24578, 3, 0, 0, 4366336, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 1887, 0, 1889, 1865, 528, 528, 528, 528, 528, 528, 528, 528, 3516, 528, 528, 3519, 528, 528, 528, 60866, 4358144, 4358144, 483328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1243, 0, 0, 1, 24578, 3, 0, 0, 0, 0, 507904, 0, 0, 0, 507904, 0, 0, 0, 0, 0, 0, 2398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49723, 0, 0, 0, 0, 0, 327680, 0, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 507904, 1, 24578, 3, 0, 0, 4366336, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 2084, 0, 0, 0, 4825088, 0, 0, 0, 0, 0, 0, 0, 0, 3423, 0, 0, 0, 0, 0, 0, 0, 0, 3460, 0, 0, 0, 0, 0, 3465, 0, 4268032, 306, 307, 0, 0, 442368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1168, 1167, 0, 0, 0, 0, 0, 0, 0, 229376, 0, 491520, 524288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 678, 0, 0, 0, 0, 0, 0, 4358144, 4358144, 491520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1275, 0, 1277, 1, 24578, 3, 0, 0, 0, 0, 0, 516096, 0, 0, 0, 516096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 368, 0, 296, 0, 0, 516567, 516567, 516567, 516567, 516567, 516567, 516567, 516567, 516567, 516567, 516567, 516567, 516567, 516567, 516567, 516567, 516567, 516567, 1, 24578, 0, 0, 0, 4366336, 0, 0, 548864, 0, 0, 302, 303, 0, 0, 0, 0, 2306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5627904, 0, 0, 0, 4268032, 306, 307, 409600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 368, 0, 308, 0, 0, 0, 5513216, 5783552, 0, 40960, 0, 0, 0, 0, 0, 0, 0, 0, 4358144, 4358144, 4358144, 4358144, 4358144, 5193728, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4907008, 0, 5079040, 6094848, 1, 24578, 4227365, 0, 0, 0, 0, 0, 0, 299, 0, 0, 0, 299, 0, 0, 0, 0, 0, 245760, 0, 245760, 245760, 0, 0, 0, 245760, 245760, 0, 0, 0, 0, 0, 0, 245760, 0, 0, 0, 245760, 0, 0, 245760, 245760, 245760, 0, 0, 540672, 0, 0, 540672, 0, 0, 0, 540672, 0, 0, 0, 0, 0, 0, 0, 540672, 0, 0, 0, 0, 0, 0, 0, 0, 417792, 0, 0, 0, 417792, 0, 0, 0, 0, 0, 1, 24578, 4227365, 0, 0, 4366336, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 2328, 0, 0, 0, 0, 2332, 0, 0, 0, 0, 0, 0, 0, 1879, 0, 0, 0, 0, 0, 0, 0, 0, 768, 0, 0, 771, 0, 0, 0, 0, 0, 0, 499712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1291, 0, 0, 0, 0, 499712, 0, 0, 0, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 5111808, 4358144, 4358144, 4358144, 4358144, 4358144, 5283840, 4358144, 4358144, 4358144, 4358144, 4358144, 499712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1314, 0, 0, 0, 0, 1, 24578, 3, 0, 0, 4366336, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 2355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1882, 0, 0, 0, 0, 1, 24578, 3, 155942, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 4087, 528, 4088, 528, 528, 57893, 528, 57893, 528, 528, 57893, 528, 528, 57916, 57893, 528, 528, 57893, 57893, 57893, 0, 0, 0, 0, 0, 0, 3821, 0, 0, 0, 0, 57916, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 57916, 57893, 57893, 57943, 57893, 57893, 57893, 0, 0, 0, 0, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61529, 57916, 57916, 57916, 57943, 57943, 58773, 914, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60631, 0, 0, 2293, 0, 2294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 664, 0, 0, 0, 0, 3453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 744, 1825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2373, 0, 0, 0, 0, 0, 674, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1182, 0, 0, 0, 0, 0, 0, 0, 1280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1788, 0, 0, 528, 57894, 528, 57894, 528, 528, 57894, 528, 528, 57917, 57894, 528, 528, 57894, 57894, 57894, 57894, 57944, 57944, 57894, 57894, 57894, 57894, 57944, 57944, 57894, 528, 57894, 57894, 57917, 57894, 57894, 57894, 57894, 57894, 57894, 57894, 57917, 57917, 57894, 57894, 57944, 57894, 57894, 57894, 1, 24578, 3, 155942, 155942, 296, 0, 0, 0, 0, 0, 302, 303, 0, 1, 24578, 3, 155943, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 740, 661, 0, 0, 528, 0, 573440, 573440, 573440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 368, 0, 516096, 0, 0, 0, 5988352, 0, 0, 6135808, 6307840, 0, 5996544, 4800512, 0, 6356992, 3675, 0, 0, 0, 0, 0, 694, 0, 0, 0, 787, 0, 0, 0, 0, 806, 0, 0, 0, 1, 24578, 3, 0, 0, 4366336, 0, 0, 0, 0, 0, 637, 303, 0, 0, 0, 0, 2381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 344064, 0, 0, 0, 0, 4268032, 640, 307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1804, 0, 0, 581632, 0, 0, 0, 581632, 581632, 581632, 581632, 581632, 581632, 581632, 581632, 581632, 581632, 581632, 581632, 581632, 581632, 581632, 581632, 0, 581632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 581632, 0, 581632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 746, 581632, 581632, 1, 24578, 3, 0, 0, 4366336, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 2397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1225, 0, 0, 0, 0, 6258688, 6447104, 0, 0, 6127616, 0, 6348800, 5906432, 0, 5537792, 3827, 4882432, 0, 0, 0, 0, 0, 0, 2784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139264, 147456, 0, 0, 0, 420, 0, 0, 0, 3926, 0, 0, 0, 0, 0, 0, 5693440, 0, 6496256, 5144576, 5136384, 0, 5914624, 0, 0, 5513216, 5783552, 0, 3926, 0, 0, 0, 0, 0, 0, 0, 0, 4358144, 4358144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 302, 0, 0, 306, 0, 0, 0, 0, 0, 0, 306, 237983, 147456, 0, 0, 0, 306, 0, 0, 311, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1819, 0, 0, 312, 0, 311, 311, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 409, 312, 0, 458, 472, 472, 472, 485, 485, 485, 485, 485, 485, 485, 485, 485, 506, 485, 485, 485, 485, 485, 524, 485, 485, 485, 524, 485, 485, 485, 485, 485, 485, 529, 57895, 529, 57895, 529, 529, 57895, 529, 529, 57918, 57895, 529, 529, 57895, 57895, 57895, 57895, 57945, 57945, 57895, 57895, 57895, 57895, 57945, 57945, 57895, 529, 57895, 57895, 57918, 57895, 57895, 57895, 57895, 57895, 57895, 57895, 57918, 57918, 57895, 57895, 57945, 57895, 57895, 57895, 1, 24578, 3, 155942, 155942, 296, 0, 0, 0, 0, 0, 302, 303, 0, 0, 306, 307, 0, 0, 0, 0, 0, 645, 0, 0, 648, 649, 0, 0, 0, 0, 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 745, 368, 368, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 711, 0, 0, 0, 0, 0, 750, 0, 0, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 6299648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 777, 0, 0, 781, 0, 0, 0, 0, 0, 0, 0, 789, 0, 0, 0, 0, 0, 0, 2807, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2310, 0, 0, 0, 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 797, 0, 0, 0, 0, 0, 0, 0, 0, 557056, 557056, 0, 0, 0, 0, 0, 0, 0, 833, 793, 0, 0, 0, 0, 0, 837, 838, 0, 0, 0, 0, 793, 528, 528, 0, 57893, 57893, 57893, 57893, 57893, 57893, 155942, 1151, 0, 0, 1155, 0, 0, 0, 0, 2295, 0, 1160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1759, 528, 847, 851, 528, 528, 863, 528, 528, 528, 879, 528, 884, 528, 892, 528, 895, 528, 528, 909, 528, 57893, 57893, 57893, 58266, 58270, 57893, 57893, 58282, 57893, 57893, 57893, 58298, 57893, 58303, 57893, 58311, 57893, 58314, 57893, 57893, 58328, 57893, 0, 57916, 57916, 57916, 58342, 58346, 57916, 57916, 58358, 57916, 57916, 57916, 58374, 57916, 58379, 57916, 58387, 57916, 58390, 57916, 57916, 58404, 57916, 0, 0, 0, 0, 58303, 57943, 57943, 57943, 58417, 58421, 57943, 57943, 58433, 57943, 57943, 528, 528, 528, 57893, 57893, 57893, 0, 0, 3655, 0, 3657, 0, 0, 0, 0, 0, 2356, 0, 2358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5693440, 0, 6496256, 5144576, 5136384, 0, 5914624, 57943, 58449, 57943, 58454, 57943, 58462, 57943, 58465, 57943, 57943, 58479, 57943, 847, 851, 1141, 895, 1159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 747, 0, 0, 0, 1320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 368, 302, 0, 0, 528, 528, 528, 1411, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2470, 528, 528, 0, 0, 1809, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1842, 0, 0, 1832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1201, 1885, 0, 0, 1886, 0, 0, 0, 0, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3225, 528, 528, 528, 1899, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1912, 528, 528, 528, 0, 0, 57893, 60609, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61085, 57893, 57893, 57893, 57893, 57893, 57893, 528, 528, 528, 528, 58773, 1985, 57893, 57893, 57893, 57893, 57893, 59336, 57893, 57893, 57893, 57893, 57893, 58822, 57893, 57893, 57893, 57893, 58827, 57893, 57893, 57893, 57893, 57893, 58319, 57893, 57893, 57893, 57893, 0, 57916, 57916, 58341, 57916, 57916, 57893, 59342, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59355, 57893, 57893, 57893, 57893, 57893, 58859, 57893, 57893, 57893, 58866, 57893, 50676, 58773, 990, 57916, 57916, 59442, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59455, 57916, 57916, 57916, 57916, 57916, 57916, 60387, 57916, 57916, 57916, 57916, 57916, 57916, 60394, 57916, 57916, 57916, 57916, 57916, 57916, 59514, 57916, 57916, 57916, 57916, 57916, 57916, 59520, 57916, 57916, 57916, 57916, 57916, 57943, 61127, 57943, 57943, 57943, 61130, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60968, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60721, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59610, 57943, 57943, 57943, 57943, 57943, 57943, 59616, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60982, 60984, 57943, 57943, 57943, 57943, 60988, 57943, 60990, 0, 0, 2293, 0, 2294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2300, 0, 0, 0, 0, 2806, 0, 0, 0, 0, 0, 2811, 0, 2813, 2814, 0, 0, 0, 0, 0, 483328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 801, 0, 0, 0, 0, 0, 0, 2325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2334, 0, 0, 0, 0, 0, 0, 2822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 769, 0, 0, 0, 774, 0, 0, 0, 2407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 702, 528, 2399, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2429, 528, 528, 2432, 528, 528, 2475, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2471, 528, 57893, 57893, 59863, 57893, 57893, 57893, 57893, 57893, 57893, 59871, 57893, 57893, 57893, 57893, 57893, 57893, 0, 0, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60351, 57916, 57916, 57916, 57916, 57916, 57916, 57893, 59891, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60640, 57916, 57916, 57916, 59949, 57916, 57916, 59952, 57916, 57916, 57916, 57916, 57916, 57916, 59960, 57916, 57916, 57893, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 0, 0, 0, 0, 57916, 57916, 60017, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60417, 57943, 57943, 57943, 57943, 57943, 60032, 57943, 57943, 60035, 57943, 57943, 57943, 57943, 57943, 57943, 60043, 57943, 57943, 528, 528, 528, 57893, 57893, 57893, 0, 3654, 0, 0, 0, 0, 0, 0, 0, 1325, 0, 0, 0, 1329, 0, 0, 0, 0, 57943, 57943, 60100, 57943, 57943, 57943, 57943, 2760, 528, 528, 528, 528, 60109, 57893, 57893, 57893, 0, 0, 0, 0, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59945, 57916, 0, 0, 2781, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1884, 0, 0, 0, 0, 2794, 0, 0, 0, 0, 0, 2798, 0, 0, 0, 0, 0, 0, 0, 0, 4784128, 0, 0, 0, 0, 0, 0, 0, 0, 3181, 0, 0, 0, 0, 0, 3186, 0, 57893, 60285, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60293, 57893, 57893, 1, 24578, 3, 155942, 155942, 296, 0, 0, 0, 0, 0, 302, 303, 0, 57943, 57943, 60461, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 4075, 0, 4076, 57943, 60472, 57943, 57943, 57943, 57943, 57943, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 0, 0, 0, 0, 0, 0, 0, 3150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2299, 0, 0, 0, 3160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3173, 0, 0, 0, 0, 2820, 0, 0, 0, 2824, 0, 0, 0, 0, 0, 0, 0, 703, 0, 0, 0, 0, 0, 0, 0, 0, 2331, 0, 0, 0, 0, 0, 0, 0, 0, 3189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3202, 3203, 0, 0, 3215, 0, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3226, 528, 528, 3230, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3239, 528, 528, 0, 0, 0, 0, 0, 0, 57893, 57893, 60279, 57893, 57893, 57893, 57893, 57893, 58320, 57893, 57893, 57893, 57893, 0, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 0, 0, 4289, 0, 528, 60617, 57893, 57893, 60621, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60630, 57893, 0, 0, 3137, 3138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3199, 0, 0, 0, 0, 57916, 57916, 57916, 60666, 57916, 57916, 60670, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58383, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60679, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60687, 57916, 0, 0, 0, 0, 57893, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 528, 528, 528, 57893, 57893, 57893, 57943, 57943, 57943, 57943, 60715, 57943, 57943, 60719, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59582, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60728, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60736, 0, 3430, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 729, 0, 528, 3495, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2904, 528, 528, 528, 528, 3512, 528, 3514, 528, 528, 528, 528, 528, 528, 528, 528, 57893, 57893, 58259, 57893, 57893, 57893, 57893, 57893, 57893, 58292, 57893, 57893, 60879, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59389, 57893, 57893, 57893, 57893, 60897, 57893, 60899, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59399, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 60921, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 60963, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60457, 57943, 528, 4015, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 57893, 61372, 57893, 302, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1199, 0, 0, 61374, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 61388, 57916, 0, 0, 0, 0, 57893, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 58442, 61390, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 61404, 57943, 528, 2281, 528, 528, 528, 57893, 59630, 57893, 57893, 57893, 2290, 0, 2291, 0, 0, 0, 0, 0, 262144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 663, 0, 0, 666, 667, 0, 61406, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 0, 0, 0, 0, 0, 0, 528, 4077, 0, 0, 0, 0, 0, 0, 0, 4084, 0, 0, 528, 528, 528, 528, 4089, 0, 0, 4148, 0, 4150, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1399, 528, 528, 528, 0, 0, 0, 313, 314, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1240, 0, 0, 0, 0, 0, 0, 0, 427, 0, 131072, 0, 0, 0, 0, 427, 0, 0, 0, 0, 0, 427, 459, 0, 0, 0, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 523, 459, 523, 523, 523, 459, 523, 523, 523, 523, 523, 523, 530, 57896, 530, 57896, 530, 530, 57896, 530, 530, 57919, 57896, 530, 530, 57896, 57896, 57896, 57896, 57946, 57946, 57896, 57896, 57896, 57896, 57946, 57946, 57896, 621, 57896, 57973, 57919, 57896, 57896, 57896, 57896, 57896, 57896, 57896, 57919, 57919, 57896, 57896, 57946, 57896, 57896, 57896, 57973, 57973, 1, 24578, 3, 155942, 155942, 296, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 2830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 680, 681, 0, 0, 0, 57893, 57893, 58307, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 0, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60350, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60915, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58942, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60389, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 58458, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 528, 528, 1965, 528, 528, 528, 528, 528, 528, 1972, 528, 528, 528, 528, 528, 528, 528, 3501, 528, 3503, 528, 528, 528, 528, 528, 528, 1360, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2887, 528, 2889, 528, 528, 528, 528, 57893, 59408, 57893, 57893, 57893, 57893, 57893, 57893, 59416, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58823, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58840, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59508, 57916, 57916, 57916, 57916, 57916, 57916, 59516, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58909, 57916, 57916, 57916, 58912, 57916, 57916, 57916, 57893, 57893, 57893, 60286, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58814, 57893, 57893, 57893, 60408, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 60414, 57943, 57943, 57943, 57943, 60418, 57943, 57943, 57943, 60473, 57943, 57943, 57943, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 0, 0, 0, 0, 2292, 528, 528, 528, 4093, 528, 4095, 528, 528, 4097, 528, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61077, 57893, 57893, 57893, 57893, 61450, 57893, 61452, 57893, 57893, 61454, 57893, 57893, 57916, 57916, 57916, 57916, 57916, 57916, 58879, 57916, 57916, 57916, 57916, 57916, 58891, 57916, 57916, 57916, 57916, 57916, 61464, 57916, 61466, 57916, 57916, 61468, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 60956, 57943, 57943, 57943, 57943, 57943, 60960, 57943, 57943, 57943, 57943, 61478, 57943, 61480, 57943, 57943, 61482, 57943, 57943, 0, 0, 0, 0, 0, 0, 0, 1766, 0, 0, 1769, 0, 0, 0, 0, 0, 320, 320, 428, 429, 131072, 436, 429, 437, 439, 428, 436, 437, 0, 316, 437, 455, 460, 473, 473, 473, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 508, 508, 521, 521, 522, 522, 508, 522, 522, 522, 508, 522, 522, 522, 522, 522, 522, 531, 57897, 531, 57897, 531, 531, 57897, 531, 531, 57920, 57897, 531, 531, 57897, 57897, 57897, 57897, 57947, 57947, 57897, 57897, 57897, 57897, 57947, 57947, 57897, 622, 57972, 57972, 57920, 57897, 57897, 57897, 57897, 57897, 57897, 57897, 57920, 57920, 57897, 57897, 57947, 57897, 57897, 57897, 57972, 57972, 1, 24578, 3, 155942, 155942, 296, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 3151, 0, 0, 0, 0, 0, 3155, 0, 0, 0, 0, 0, 0, 814, 0, 0, 0, 0, 0, 0, 819, 0, 0, 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 368, 0, 0, 0, 368, 368, 702, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2315, 0, 0, 0, 0, 0, 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 368, 303, 0, 0, 0, 823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 775, 0, 0, 1174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 804, 0, 0, 0, 0, 1216, 1174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2336, 0, 0, 0, 0, 0, 1281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 368, 342, 296, 0, 0, 0, 1295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2363, 0, 0, 1307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1229, 58773, 914, 57893, 57893, 58777, 57893, 57893, 58781, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58808, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58795, 57893, 58800, 57893, 57893, 58804, 57893, 57893, 58807, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58838, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58841, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58872, 57916, 57916, 58876, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58890, 57916, 58895, 57916, 0, 0, 0, 0, 57893, 57943, 57943, 57943, 57943, 57943, 57943, 58428, 57943, 57943, 58444, 57916, 58899, 57916, 57916, 58902, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59985, 57916, 57916, 57916, 1860, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1245, 528, 528, 528, 528, 1902, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1914, 528, 528, 0, 57893, 57893, 57893, 57893, 57893, 57893, 155942, 1151, 0, 0, 1156, 0, 0, 0, 0, 327, 327, 377, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1210, 0, 368, 368, 0, 1213, 0, 1929, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 896, 57893, 57893, 57893, 59345, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59357, 57893, 57893, 1, 24578, 3, 155942, 156282, 296, 0, 0, 0, 0, 0, 302, 303, 0, 57916, 57916, 59445, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59457, 57916, 57916, 57916, 57916, 57916, 59967, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 61474, 57943, 59541, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59553, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61152, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 528, 528, 528, 2763, 2764, 57893, 57893, 57893, 60112, 57943, 57943, 57943, 59591, 59592, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59601, 57943, 57943, 57943, 57893, 59917, 59918, 59919, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58848, 57893, 57893, 58852, 57916, 59989, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60002, 57943, 60072, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60085, 57893, 57893, 60325, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58849, 57893, 57893, 0, 0, 0, 3216, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2484, 528, 528, 528, 528, 528, 3243, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2891, 528, 528, 57893, 57893, 57893, 57893, 60634, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 0, 2999, 0, 0, 0, 61125, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60962, 528, 528, 4092, 528, 528, 528, 528, 528, 528, 528, 57893, 61444, 57893, 61445, 57893, 57893, 57893, 2589, 0, 0, 0, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61106, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59954, 57916, 57916, 59958, 57916, 57916, 57916, 59962, 57893, 61449, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 61458, 57916, 61459, 57916, 57916, 57893, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59540, 57916, 61463, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 61472, 57943, 61473, 57943, 57943, 528, 528, 1715, 528, 528, 1718, 57893, 57893, 59064, 57893, 57893, 59067, 1151, 0, 57943, 61477, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 0, 0, 0, 0, 0, 0, 0, 1814, 0, 0, 0, 0, 0, 0, 0, 0, 528, 1338, 528, 528, 528, 528, 528, 528, 528, 528, 4291, 57893, 57893, 57893, 61637, 57916, 57916, 57916, 61639, 57943, 57943, 57943, 61641, 0, 0, 0, 0, 3178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1312, 0, 0, 0, 0, 326, 327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1186, 0, 0, 0, 377, 0, 131072, 0, 0, 0, 440, 377, 0, 0, 445, 451, 0, 377, 461, 474, 474, 474, 487, 487, 487, 487, 487, 487, 487, 487, 487, 487, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 532, 57898, 532, 57898, 532, 532, 57898, 532, 532, 57921, 57898, 532, 532, 57898, 57898, 57898, 57898, 57948, 57948, 57898, 57898, 57898, 57898, 57948, 57948, 57898, 532, 57898, 57898, 57921, 57898, 57898, 57898, 57898, 57898, 57898, 57898, 57921, 57921, 57898, 57898, 57948, 57898, 57898, 57898, 1, 24578, 3, 155942, 155942, 296, 0, 0, 0, 0, 0, 302, 303, 0, 1188, 0, 1190, 1191, 0, 0, 0, 1193, 1194, 0, 0, 0, 0, 0, 0, 0, 0, 4997120, 0, 0, 5038080, 0, 0, 0, 5095424, 5103616, 0, 0, 1232, 1233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 370, 0, 0, 0, 1263, 1265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1200, 0, 1317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1303, 0, 0, 0, 1331, 1193, 528, 528, 1390, 528, 528, 1392, 528, 528, 528, 528, 1397, 528, 528, 528, 528, 528, 528, 3500, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 61443, 57893, 57893, 57893, 57893, 57893, 58773, 914, 57893, 57893, 58778, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 2588, 2999, 0, 0, 0, 58831, 57893, 57893, 57893, 57893, 58836, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58811, 58813, 57893, 57893, 57893, 57893, 58873, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60380, 57916, 58900, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58928, 57916, 57916, 58915, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58924, 57916, 57916, 58926, 57916, 57916, 57916, 57916, 57916, 59980, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61530, 57916, 57916, 57943, 57943, 57916, 58931, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58950, 57916, 57916, 57916, 58956, 57916, 57916, 57916, 57916, 0, 58831, 57943, 57943, 58967, 57943, 57943, 57943, 57943, 57943, 57943, 60464, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60470, 57943, 57943, 57943, 57943, 59018, 57943, 57943, 59020, 57943, 57943, 57943, 57943, 59026, 57943, 57943, 57943, 528, 528, 57893, 57893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2778, 1963, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 901, 0, 0, 2293, 0, 2294, 0, 0, 0, 0, 0, 2297, 0, 0, 0, 0, 0, 0, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 57893, 59862, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60650, 57893, 59878, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58816, 57893, 59947, 57916, 57916, 57916, 57916, 59951, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 61475, 60015, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61133, 57943, 60030, 57943, 57943, 57943, 57943, 60034, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60723, 57943, 57943, 57943, 60098, 57943, 57943, 57943, 57943, 57943, 57943, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 0, 0, 0, 1729, 0, 0, 0, 0, 2844, 0, 0, 0, 0, 0, 2849, 0, 0, 0, 0, 0, 0, 0, 1852, 0, 0, 0, 0, 0, 0, 0, 1859, 0, 57916, 57916, 57916, 60347, 57916, 60348, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58385, 57916, 57916, 57916, 57916, 58403, 57916, 0, 0, 3205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2374, 0, 0, 528, 528, 528, 528, 3253, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1926, 528, 528, 528, 57916, 60688, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60694, 57916, 57916, 57916, 57916, 57916, 57916, 58906, 58908, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59451, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59498, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60672, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 60737, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60743, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61339, 57943, 57943, 57943, 528, 57893, 0, 0, 0, 0, 0, 0, 3671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 665, 0, 0, 668, 57916, 61126, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60961, 57943, 57916, 57916, 57916, 61239, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60959, 57943, 57943, 57943, 57943, 61258, 57943, 57943, 528, 528, 57893, 57893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2776, 2777, 0, 528, 528, 528, 528, 4018, 528, 528, 528, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 58280, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61377, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 57916, 57916, 61223, 57916, 57916, 57916, 57916, 57916, 57916, 61393, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 60025, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61409, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 0, 0, 0, 4241, 0, 4243, 528, 528, 528, 528, 528, 4094, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59372, 57893, 57893, 57893, 61451, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61318, 57916, 57916, 57916, 61465, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 61244, 57943, 57943, 57943, 57943, 57943, 57943, 61479, 57943, 57943, 57943, 57943, 57943, 57943, 0, 0, 0, 0, 0, 0, 0, 1865, 1866, 0, 0, 0, 1869, 0, 0, 0, 0, 0, 328, 329, 330, 331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1855, 1856, 0, 1857, 1858, 0, 0, 376, 0, 0, 0, 0, 0, 328, 376, 331, 375, 0, 0, 0, 0, 0, 0, 363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139264, 147456, 0, 0, 450560, 0, 0, 0, 331, 0, 0, 0, 0, 0, 0, 376, 0, 0, 0, 0, 0, 0, 0, 0, 5210112, 0, 5365760, 0, 5554176, 5570560, 5578752, 0, 462, 475, 475, 475, 488, 488, 488, 488, 499, 501, 488, 488, 499, 488, 510, 510, 510, 510, 510, 525, 510, 510, 510, 525, 510, 510, 510, 510, 510, 510, 533, 57899, 533, 57899, 533, 533, 57899, 533, 533, 57922, 57899, 533, 533, 57899, 57899, 57899, 57899, 57949, 57949, 57899, 57899, 57899, 57899, 57949, 57949, 57899, 533, 57899, 57899, 57922, 57899, 57899, 57899, 57899, 57899, 57899, 57899, 57922, 57922, 57899, 57899, 57949, 57899, 57899, 57899, 1, 24578, 3, 155942, 155942, 296, 0, 0, 0, 0, 0, 302, 303, 0, 0, 670, 671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 683, 684, 685, 0, 0, 0, 689, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 368, 368, 0, 0, 0, 0, 0, 0, 707, 708, 0, 0, 0, 0, 0, 714, 0, 0, 0, 718, 0, 720, 0, 0, 0, 0, 0, 0, 727, 0, 0, 0, 0, 0, 1163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6152192, 0, 0, 0, 6316032, 0, 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1292, 778, 779, 0, 0, 0, 0, 0, 0, 0, 0, 788, 0, 790, 0, 0, 0, 0, 0, 1201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3675, 0, 0, 0, 3830, 0, 822, 0, 0, 0, 0, 0, 822, 822, 825, 0, 0, 0, 790, 0, 0, 0, 0, 0, 1235, 0, 1237, 0, 0, 0, 0, 1242, 0, 0, 0, 0, 0, 1268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3675, 0, 0, 3829, 0, 0, 0, 0, 834, 0, 0, 0, 0, 0, 0, 0, 788, 0, 0, 0, 834, 528, 528, 0, 57893, 57893, 57893, 57893, 57893, 57893, 155942, 1151, 0, 302, 0, 0, 306, 1, 24578, 3, 0, 0, 4366336, 0, 0, 0, 0, 0, 65536, 303, 0, 528, 848, 528, 854, 528, 528, 869, 528, 528, 880, 528, 885, 528, 528, 894, 897, 902, 528, 910, 528, 57893, 57893, 57893, 58267, 57893, 58273, 57893, 57893, 58288, 57893, 57893, 58299, 57893, 58304, 57893, 57893, 58313, 58316, 58321, 57893, 58329, 57893, 0, 57916, 57916, 57916, 58343, 57916, 0, 0, 0, 0, 57893, 57943, 57943, 57943, 57943, 57943, 57943, 58430, 57943, 57943, 57943, 57943, 57943, 59547, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61417, 57943, 0, 0, 0, 58349, 57916, 57916, 58364, 57916, 57916, 58375, 57916, 58380, 57916, 57916, 58389, 58392, 58397, 57916, 58405, 57916, 0, 0, 0, 0, 58304, 57943, 57943, 57943, 58418, 57943, 58424, 57943, 57943, 58439, 57943, 1906, 528, 528, 528, 528, 59349, 57893, 57893, 57893, 57893, 0, 0, 0, 0, 0, 3140, 0, 0, 3143, 3144, 0, 0, 3147, 3148, 0, 57943, 58450, 57943, 58455, 57943, 57943, 58464, 58467, 58472, 57943, 58480, 57943, 848, 528, 528, 1142, 902, 528, 0, 57893, 58267, 57893, 58492, 58321, 57893, 155942, 1151, 0, 0, 0, 0, 0, 0, 364, 365, 366, 367, 0, 0, 368, 0, 296, 0, 0, 0, 0, 1176, 0, 0, 0, 0, 0, 0, 0, 1183, 0, 0, 0, 0, 0, 0, 3165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139264, 147456, 0, 0, 0, 421, 0, 0, 1203, 1204, 0, 0, 0, 0, 1208, 0, 0, 0, 368, 368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 713, 0, 0, 1231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1244, 0, 0, 0, 1248, 0, 0, 1200, 0, 0, 0, 0, 0, 749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 726, 0, 0, 0, 0, 528, 1347, 528, 528, 528, 528, 528, 528, 1362, 528, 528, 528, 1367, 528, 528, 528, 528, 528, 2464, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1910, 528, 528, 528, 528, 58773, 914, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58786, 57893, 57893, 57893, 0, 0, 0, 0, 57916, 57916, 57916, 57916, 57916, 57916, 59944, 57916, 57916, 57893, 57893, 57893, 58801, 57893, 57893, 57893, 58806, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58809, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58854, 57893, 57893, 57893, 57893, 57893, 57893, 58865, 57893, 50676, 58773, 990, 57916, 57916, 57893, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59537, 57943, 57943, 528, 1351, 528, 1408, 528, 528, 58790, 57893, 57893, 58847, 57893, 57893, 1151, 0, 57916, 57916, 57916, 58901, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58391, 57916, 57916, 57916, 57916, 57916, 57916, 58918, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58396, 57916, 57916, 57916, 57916, 57916, 57916, 58933, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58949, 57916, 0, 0, 0, 0, 57893, 57943, 57943, 57943, 57943, 57943, 57943, 58431, 57943, 57943, 57943, 57943, 57943, 60063, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60428, 57943, 60430, 57943, 57943, 57943, 57943, 58975, 57943, 57943, 57943, 57943, 57943, 57943, 58990, 57943, 57943, 57943, 58995, 57943, 2280, 528, 2282, 528, 528, 59629, 57893, 59631, 57893, 57893, 0, 0, 0, 0, 0, 0, 1298, 0, 0, 0, 0, 1303, 0, 0, 0, 0, 59055, 57943, 528, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 1151, 1724, 0, 1760, 0, 0, 1763, 1764, 1765, 0, 1767, 1768, 0, 0, 0, 0, 1773, 0, 0, 0, 0, 3192, 0, 0, 0, 0, 3197, 0, 0, 0, 0, 0, 0, 0, 2368, 2369, 0, 0, 0, 0, 0, 0, 0, 692, 0, 0, 0, 0, 0, 0, 699, 368, 1807, 0, 0, 0, 0, 0, 0, 0, 0, 1816, 1817, 0, 0, 0, 0, 0, 0, 373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139264, 147456, 0, 0, 352256, 0, 0, 0, 1823, 0, 0, 1825, 0, 0, 0, 0, 0, 0, 0, 0, 1829, 1830, 1831, 0, 1870, 0, 0, 0, 1888, 1740, 1740, 1890, 528, 1892, 528, 1893, 1894, 528, 1896, 528, 528, 528, 1900, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1913, 528, 528, 0, 0, 0, 0, 0, 0, 57893, 60278, 57893, 57893, 57893, 57893, 57893, 57893, 0, 2592, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59969, 57916, 57916, 57916, 57916, 57916, 57916, 59974, 57916, 528, 528, 1917, 528, 528, 528, 528, 1921, 528, 1923, 528, 528, 528, 528, 528, 528, 1393, 528, 1395, 528, 528, 528, 528, 528, 528, 528, 872, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3710, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1933, 1934, 1936, 528, 528, 528, 528, 528, 528, 528, 1944, 1945, 528, 1947, 528, 528, 1950, 1951, 528, 528, 528, 528, 528, 528, 528, 1959, 528, 1961, 528, 1964, 528, 528, 528, 528, 528, 1971, 528, 528, 1973, 528, 528, 528, 528, 528, 528, 3855, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 58279, 57893, 57893, 57893, 57893, 57893, 528, 528, 528, 528, 58773, 0, 59332, 57893, 59334, 57893, 59335, 57893, 59337, 57893, 59339, 57893, 302, 306, 0, 0, 0, 0, 3141, 0, 0, 0, 3145, 0, 0, 0, 0, 0, 0, 2832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2835, 0, 0, 0, 0, 0, 0, 57893, 57893, 59343, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59356, 57893, 57893, 57893, 0, 0, 0, 0, 57916, 57916, 57916, 57916, 59942, 57916, 57916, 57916, 57916, 57916, 59515, 57916, 57916, 59517, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 0, 57893, 57943, 57943, 58966, 57943, 57943, 58970, 57943, 57893, 59360, 57893, 57893, 57893, 57893, 59364, 57893, 59366, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58839, 57893, 57893, 58846, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59376, 59377, 59379, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59387, 59388, 57893, 2770, 2291, 0, 2771, 2294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 770, 0, 0, 0, 0, 0, 59390, 57893, 57893, 59393, 59394, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59402, 57893, 59404, 57893, 2770, 2291, 0, 2771, 2294, 0, 0, 0, 0, 0, 0, 2775, 0, 0, 0, 0, 0, 784, 0, 0, 679, 0, 0, 0, 0, 0, 0, 0, 660, 661, 0, 0, 0, 0, 0, 0, 0, 384, 0, 139264, 147456, 0, 406, 0, 0, 406, 59407, 57893, 57893, 57893, 57893, 57893, 59415, 57893, 57893, 59417, 57893, 57893, 57893, 57893, 57893, 57893, 0, 0, 57916, 57916, 57916, 57916, 60660, 57916, 57916, 57916, 57916, 59443, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59456, 57916, 57916, 57916, 57916, 57916, 58878, 57916, 57916, 57916, 58882, 57916, 57916, 58893, 57916, 57916, 58897, 59460, 57916, 57916, 57916, 57916, 59464, 57916, 59466, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59467, 59468, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59476, 59477, 59479, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59487, 59488, 57916, 59490, 57916, 57916, 59493, 59494, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59502, 57916, 59504, 57916, 59507, 57943, 57943, 57943, 59560, 57943, 59562, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60987, 57943, 57943, 57943, 59572, 59573, 59575, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59583, 59584, 57943, 57943, 59586, 57943, 57943, 57943, 57943, 57943, 60731, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60081, 57943, 57943, 57943, 57943, 57943, 59589, 59590, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59598, 57943, 59600, 57943, 59603, 57943, 57943, 57943, 57943, 57943, 60739, 57943, 57943, 57943, 60742, 57943, 60744, 57943, 57943, 57943, 57943, 57943, 57943, 60740, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59023, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59611, 57943, 57943, 59613, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60039, 57943, 57943, 57943, 57943, 57943, 57943, 0, 0, 2293, 0, 2294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2301, 0, 0, 2304, 2305, 0, 0, 0, 2309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6406144, 5357568, 0, 5505024, 0, 0, 0, 0, 2352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1276, 0, 1825, 0, 2365, 0, 0, 0, 0, 0, 0, 0, 0, 2372, 0, 0, 2375, 0, 0, 0, 0, 3217, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2929, 528, 528, 528, 0, 2378, 0, 0, 0, 0, 0, 0, 2385, 0, 2387, 0, 0, 0, 0, 0, 0, 403, 0, 0, 0, 0, 0, 0, 0, 0, 332, 333, 0, 0, 0, 0, 0, 0, 0, 0, 334, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 2396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, 698, 0, 368, 2406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2417, 0, 0, 0, 0, 3433, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 786, 0, 0, 0, 528, 2433, 528, 2435, 528, 528, 528, 528, 528, 528, 2443, 528, 2445, 528, 528, 528, 528, 528, 1414, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1956, 528, 528, 528, 528, 528, 528, 528, 528, 2451, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2902, 528, 528, 2473, 528, 528, 528, 528, 528, 528, 2480, 528, 528, 528, 528, 528, 528, 528, 528, 1906, 528, 528, 528, 528, 528, 528, 528, 57893, 57893, 57893, 59864, 57893, 59866, 57893, 57893, 57893, 57893, 57893, 57893, 59874, 57893, 59876, 57893, 2770, 2291, 0, 2771, 2294, 0, 0, 2773, 0, 0, 0, 0, 0, 0, 0, 0, 2359296, 418, 418, 0, 0, 0, 0, 0, 57893, 57893, 59904, 59905, 57893, 57893, 57893, 57893, 57893, 57893, 59912, 57893, 57893, 57893, 57893, 57893, 57893, 60885, 57893, 60887, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59397, 57893, 57893, 59400, 57893, 57893, 57893, 57893, 57893, 59930, 59931, 57893, 0, 0, 0, 0, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58910, 57916, 57916, 57916, 57916, 57916, 57916, 59963, 57916, 59965, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59971, 57916, 57916, 57916, 57916, 57916, 57916, 60914, 57916, 57916, 57916, 57916, 57916, 60918, 57916, 57916, 57916, 57916, 60016, 57916, 57916, 60019, 60020, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 0, 4239, 0, 0, 0, 0, 528, 60046, 57943, 60048, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60054, 57943, 57943, 57943, 57943, 57943, 57943, 58979, 58986, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60079, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60099, 57943, 57943, 60102, 60103, 57943, 2435, 528, 2762, 528, 528, 59866, 57893, 60111, 57893, 57893, 57893, 57893, 57893, 61083, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61089, 57893, 57893, 57893, 57893, 57893, 61219, 57893, 57893, 57893, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 1272, 57893, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 528, 3132, 528, 528, 528, 57893, 60479, 57893, 57893, 0, 0, 2829, 0, 0, 0, 0, 2833, 0, 0, 0, 0, 0, 0, 0, 0, 312, 311, 0, 0, 0, 311, 311, 312, 2905, 528, 528, 528, 528, 2909, 528, 528, 528, 2914, 528, 528, 528, 528, 528, 528, 1920, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1908, 528, 528, 528, 528, 528, 528, 528, 528, 2922, 528, 528, 528, 528, 528, 528, 528, 2927, 528, 528, 528, 528, 528, 528, 3940, 528, 528, 528, 528, 528, 528, 3946, 528, 528, 60284, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59406, 60296, 57893, 60298, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59403, 57893, 57893, 57893, 60324, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60332, 57893, 57893, 57893, 57893, 57893, 57893, 61096, 57893, 57893, 57893, 57893, 57916, 57916, 57916, 57916, 57916, 57916, 60703, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 58466, 57943, 57943, 57943, 57943, 528, 528, 528, 896, 57893, 57893, 57893, 60338, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 0, 2999, 0, 0, 0, 0, 0, 1323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2836, 2837, 0, 0, 0, 0, 57916, 60382, 57916, 57916, 57916, 57916, 60386, 57916, 57916, 57916, 60391, 57916, 57916, 57916, 57916, 57916, 57916, 60926, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59956, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60399, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60405, 57916, 57916, 57916, 57916, 57916, 59992, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58925, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 60447, 57943, 57943, 57943, 57943, 60451, 57943, 57943, 57943, 60456, 57943, 57943, 528, 1352, 528, 528, 1717, 528, 58791, 57893, 57893, 57893, 59066, 57893, 1151, 0, 0, 0, 3177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2390, 0, 0, 528, 528, 528, 528, 3232, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1941, 528, 528, 528, 528, 528, 3251, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2892, 528, 57893, 57893, 57893, 57893, 60643, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 50676, 58773, 990, 57916, 57916, 3442, 3443, 0, 3444, 0, 3446, 0, 0, 0, 0, 3448, 0, 0, 0, 0, 0, 0, 737, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2360, 0, 0, 0, 0, 0, 2364, 3467, 0, 0, 0, 0, 3472, 3473, 0, 3475, 0, 0, 3478, 0, 0, 0, 3481, 528, 528, 528, 528, 3498, 528, 528, 528, 528, 528, 3504, 528, 528, 528, 528, 528, 528, 4020, 528, 4022, 4023, 528, 4025, 528, 57893, 57893, 57893, 57893, 57893, 57893, 60882, 57893, 57893, 57893, 57893, 57893, 60888, 57893, 57893, 60891, 57893, 57893, 57893, 0, 0, 0, 0, 57916, 57916, 57916, 59941, 57916, 59943, 57916, 57916, 57916, 57916, 57916, 60006, 60007, 60008, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58943, 57916, 57916, 58947, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60924, 57916, 57916, 57916, 57916, 57916, 60930, 57916, 57916, 60933, 57916, 57916, 57893, 57943, 57943, 57943, 57943, 57943, 59532, 57943, 57943, 57943, 57943, 57943, 59538, 57943, 60991, 57943, 528, 528, 3650, 57893, 57893, 60997, 0, 0, 0, 0, 0, 0, 3659, 0, 0, 0, 0, 3445, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2812, 0, 0, 2815, 0, 0, 3662, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1306, 0, 3669, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3676, 0, 3678, 528, 528, 528, 528, 3705, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2458, 528, 528, 528, 528, 528, 3715, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2903, 528, 528, 57893, 57893, 57893, 61071, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61076, 57893, 57893, 57893, 0, 0, 0, 0, 57916, 57916, 59940, 57916, 57916, 57916, 57916, 57916, 57916, 59981, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59453, 57916, 57916, 57916, 57916, 57916, 57916, 57893, 57893, 57893, 57893, 61095, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 57916, 57916, 61100, 57916, 0, 0, 0, 0, 57893, 57943, 57943, 57943, 57943, 57943, 57943, 58432, 57943, 57943, 57943, 57943, 57943, 60075, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59048, 57943, 57943, 57943, 57943, 61134, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61145, 3832, 0, 0, 3835, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 772, 0, 0, 0, 57916, 57916, 61238, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61142, 57943, 57943, 57943, 3924, 0, 3675, 0, 0, 0, 0, 0, 3932, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 311, 0, 311, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61301, 57893, 57893, 57893, 57893, 57893, 59363, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60315, 57893, 57893, 57893, 57893, 60319, 57893, 57893, 57943, 61333, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 528, 57893, 0, 0, 0, 0, 0, 1736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2334720, 0, 2334720, 0, 0, 0, 0, 0, 0, 4079, 0, 0, 0, 0, 0, 0, 0, 528, 528, 528, 528, 528, 528, 528, 4157, 528, 4159, 528, 528, 4091, 528, 528, 528, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 57916, 61448, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61317, 57916, 61462, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60028, 57943, 61476, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 4141, 4142, 0, 0, 0, 4145, 528, 528, 61507, 61508, 61509, 57893, 57893, 57893, 61512, 57893, 61514, 57893, 57893, 57893, 57893, 61519, 61520, 61521, 61522, 57916, 57916, 57916, 61525, 57916, 61527, 57916, 57916, 57916, 57916, 61532, 61533, 61534, 61535, 57943, 57943, 57943, 61538, 57943, 61540, 57943, 57943, 57943, 57943, 61545, 0, 0, 0, 0, 0, 0, 3194, 0, 0, 0, 3198, 0, 3200, 0, 0, 0, 528, 4245, 528, 528, 528, 4249, 57893, 57893, 61595, 57893, 57893, 57893, 61599, 57893, 57916, 57916, 57893, 57943, 59529, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59536, 57943, 57943, 57943, 57943, 57943, 59040, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 528, 3412, 528, 57893, 60759, 57893, 61601, 57916, 57916, 57916, 61605, 57916, 57943, 57943, 61607, 57943, 57943, 57943, 61611, 57943, 0, 0, 0, 0, 0, 2342912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4358144, 4359058, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 6275072, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 0, 413, 0, 0, 0, 0, 0, 0, 413, 139264, 147456, 0, 0, 0, 422, 0, 0, 0, 0, 3456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 749, 0, 0, 0, 0, 372, 372, 0, 430, 131072, 372, 430, 430, 0, 333, 372, 430, 0, 0, 430, 456, 430, 0, 0, 0, 430, 495, 495, 495, 500, 495, 495, 495, 500, 495, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 534, 57900, 534, 57900, 534, 534, 57900, 534, 534, 57923, 57900, 534, 534, 57900, 57900, 57900, 57900, 57950, 57950, 57900, 57900, 57900, 57900, 57950, 57950, 57900, 534, 57900, 57900, 57923, 57900, 57900, 57900, 57900, 57900, 57900, 57900, 57923, 57923, 57900, 57900, 57950, 57900, 57900, 57900, 1, 24578, 3, 155942, 155942, 296, 0, 0, 0, 0, 0, 302, 303, 0, 841, 528, 528, 528, 528, 528, 528, 873, 528, 528, 528, 528, 528, 528, 528, 528, 1939, 528, 528, 528, 528, 528, 528, 528, 0, 0, 1175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2416, 0, 0, 0, 0, 0, 1296, 0, 1175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2371, 0, 0, 0, 0, 0, 58773, 914, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58784, 57893, 57893, 57893, 57893, 57893, 57893, 61210, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60626, 57893, 57893, 60629, 57893, 57893, 57893, 58796, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59424, 57943, 58973, 57943, 57943, 57943, 57943, 57943, 58985, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60053, 57943, 57943, 57943, 57943, 57943, 57943, 0, 1873, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1743, 1744, 57943, 60460, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60726, 57943, 61135, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61257, 528, 528, 528, 61636, 57893, 57893, 57893, 61638, 57916, 57916, 57916, 61640, 57943, 57943, 57943, 0, 0, 0, 0, 3471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1868, 0, 0, 0, 0, 0, 0, 0, 431, 131072, 0, 431, 431, 0, 0, 0, 431, 446, 0, 431, 0, 0, 0, 0, 3663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1289, 0, 0, 0, 0, 431, 476, 476, 476, 489, 489, 489, 489, 489, 489, 489, 489, 489, 489, 489, 489, 489, 489, 489, 489, 535, 57901, 535, 57901, 535, 535, 57901, 535, 535, 57924, 57901, 535, 535, 57901, 57901, 57901, 57901, 57951, 57951, 57901, 57901, 57901, 57901, 57951, 57951, 57901, 535, 57901, 57901, 57924, 57901, 57901, 57901, 57901, 57901, 57901, 57901, 57924, 57924, 57901, 57901, 57951, 57901, 57901, 57901, 1, 24578, 3, 155942, 155942, 296, 0, 0, 0, 0, 0, 302, 303, 0, 528, 528, 528, 528, 58773, 1986, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59353, 57893, 57893, 57893, 57893, 57893, 0, 0, 0, 2327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 773, 0, 0, 776, 2351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1774, 57893, 57893, 59892, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59900, 57893, 57893, 0, 0, 0, 2805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 800, 0, 0, 528, 3175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1790, 0, 0, 3431, 0, 0, 0, 0, 0, 3437, 0, 0, 0, 0, 0, 0, 0, 331, 0, 139264, 147456, 0, 0, 0, 0, 0, 3482, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1372, 57893, 57893, 57893, 57893, 60883, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60893, 60908, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60396, 60935, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60944, 57916, 57916, 60947, 57916, 57916, 57893, 59528, 57943, 59530, 57943, 59531, 57943, 59533, 57943, 59535, 57943, 57943, 57943, 59539, 57916, 60950, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59012, 57943, 57943, 60977, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60986, 57943, 57943, 60989, 57943, 57943, 57943, 57943, 57943, 60966, 57943, 57943, 57943, 57943, 57943, 60972, 57943, 57943, 60975, 57943, 57943, 57943, 57943, 57943, 60750, 57943, 57943, 57943, 57943, 528, 528, 528, 57893, 57893, 57893, 0, 0, 0, 0, 0, 0, 0, 3660, 528, 528, 528, 528, 3716, 528, 3718, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3491, 528, 528, 528, 528, 528, 528, 57893, 57893, 61070, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59385, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61082, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61088, 57893, 61090, 57943, 61146, 57943, 61148, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 528, 57893, 0, 0, 0, 528, 528, 528, 528, 3854, 528, 528, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 58277, 57893, 57893, 58293, 57893, 57893, 61216, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61229, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61235, 57916, 57916, 57916, 57916, 57916, 61467, 57916, 57916, 61469, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60449, 57943, 57943, 60453, 57943, 57943, 57943, 57943, 57943, 61248, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61254, 57943, 57943, 57943, 57943, 57943, 57943, 58980, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60734, 57943, 57943, 57943, 57943, 57943, 57916, 61625, 61626, 57916, 57916, 57943, 57943, 61629, 61630, 57943, 57943, 0, 0, 0, 0, 528, 528, 528, 528, 4275, 528, 57893, 57893, 57893, 57893, 61623, 57893, 57916, 0, 761, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1789, 0, 761, 0, 0, 0, 0, 0, 761, 761, 0, 0, 828, 0, 0, 0, 0, 0, 0, 738, 0, 644, 738, 0, 742, 743, 644, 0, 0, 528, 528, 852, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2919, 528, 528, 528, 528, 911, 57893, 57893, 57893, 57893, 58271, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58862, 57893, 57893, 57893, 50676, 58773, 990, 57916, 58871, 58406, 0, 0, 0, 0, 57893, 57943, 57943, 57943, 57943, 58422, 57943, 57943, 57943, 57943, 57943, 57943, 58981, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60985, 57943, 57943, 57943, 57943, 57943, 528, 911, 0, 58271, 57893, 57893, 57893, 57893, 58330, 155942, 1151, 0, 0, 0, 0, 0, 0, 751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139264, 147456, 0, 0, 319, 0, 0, 0, 1279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2337, 0, 57943, 59035, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59028, 57943, 528, 528, 528, 1983, 58773, 0, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59418, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59427, 50676, 0, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60377, 57916, 57916, 57916, 57916, 59527, 57893, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60746, 57943, 59623, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 0, 0, 0, 0, 0, 0, 0, 3142, 0, 0, 0, 0, 0, 0, 0, 752, 0, 0, 0, 0, 0, 0, 758, 0, 59861, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59889, 57916, 57916, 57916, 57916, 59950, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60675, 57916, 57916, 60678, 57943, 57943, 57943, 57943, 60033, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60042, 57943, 57943, 57943, 3812, 528, 57893, 61158, 57893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 386, 57916, 57916, 57916, 57916, 61240, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61255, 57943, 57943, 57943, 57943, 61259, 57943, 528, 528, 57893, 57893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3146, 0, 0, 0, 0, 0, 334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 334, 385, 387, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 402, 0, 0, 0, 0, 3672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1786, 0, 0, 0, 0, 334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 334, 0, 0, 139264, 147456, 0, 0, 0, 0, 0, 425, 425, 0, 0, 131072, 425, 0, 0, 0, 0, 425, 0, 447, 0, 0, 425, 335, 477, 477, 477, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 511, 519, 519, 519, 519, 519, 526, 519, 519, 519, 526, 519, 519, 519, 519, 519, 519, 536, 57902, 536, 57902, 536, 536, 57902, 536, 536, 57925, 57902, 536, 536, 57902, 57902, 57902, 57902, 57952, 57952, 57902, 57902, 57902, 57902, 57952, 57952, 57902, 536, 57902, 57902, 57925, 57902, 57902, 57902, 57902, 57902, 57902, 57902, 57925, 57925, 57902, 57902, 57952, 57902, 57902, 57902, 1, 24578, 3, 155942, 155942, 296, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 780, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2789, 2790, 0, 0, 795, 0, 0, 0, 0, 0, 0, 0, 799, 0, 0, 0, 0, 0, 0, 0, 2330, 0, 0, 0, 0, 0, 0, 0, 0, 1238, 0, 0, 0, 0, 0, 0, 0, 819, 0, 0, 0, 0, 0, 819, 819, 0, 0, 0, 0, 799, 0, 0, 0, 0, 0, 1750, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2850, 0, 0, 0, 0, 0, 0, 0, 0, 835, 795, 0, 0, 835, 0, 0, 0, 0, 0, 0, 0, 528, 528, 528, 4154, 528, 528, 528, 528, 528, 528, 528, 3234, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3942, 528, 528, 528, 528, 528, 528, 528, 528, 528, 855, 528, 864, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3944, 528, 528, 528, 528, 528, 528, 528, 912, 57893, 57893, 57893, 57893, 57893, 58274, 57893, 58283, 57893, 57893, 57893, 57893, 57893, 59395, 59396, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59897, 57893, 57893, 57893, 57893, 57893, 57893, 58350, 57916, 58359, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58401, 57916, 57916, 58407, 0, 0, 0, 0, 57893, 57943, 57943, 57943, 57943, 57943, 58425, 57943, 58434, 57943, 57943, 528, 1354, 528, 528, 528, 528, 58793, 57893, 57893, 57893, 57893, 57893, 1151, 0, 1143, 912, 0, 57893, 57893, 57893, 57893, 58493, 58331, 155942, 1151, 0, 0, 0, 0, 0, 0, 790, 0, 802, 0, 816, 0, 0, 0, 0, 810, 1246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1821, 0, 0, 0, 1308, 0, 0, 0, 0, 0, 0, 0, 0, 1313, 0, 0, 0, 0, 0, 1796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1211, 368, 368, 0, 0, 1214, 528, 528, 528, 1350, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1369, 528, 528, 0, 0, 0, 2933, 0, 1986, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59884, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 528, 1409, 528, 528, 1413, 528, 528, 528, 528, 528, 1420, 528, 528, 528, 1427, 528, 528, 0, 57893, 57893, 57893, 58315, 57893, 57893, 155942, 1151, 0, 0, 0, 0, 0, 0, 0, 6324224, 4358144, 4358144, 5005312, 4358144, 4358144, 4358144, 5120000, 5136384, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 6119424, 4358144, 6168576, 4358144, 4358144, 4358144, 4358144, 58773, 914, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58789, 57893, 57893, 57893, 57893, 57893, 61379, 57893, 61381, 61382, 57893, 61384, 57893, 61386, 57916, 57916, 57916, 57916, 57916, 60385, 57916, 57916, 57916, 57916, 57916, 57916, 60393, 57916, 57916, 57916, 57916, 57916, 60691, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59484, 57916, 57916, 57916, 57916, 57916, 57893, 57893, 58818, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59914, 57893, 57893, 57916, 58954, 57916, 57916, 57916, 58961, 57916, 0, 57893, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61140, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60969, 57943, 60971, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59038, 57943, 57943, 59042, 57943, 57943, 57943, 57943, 57943, 59049, 57943, 57943, 57943, 528, 528, 57893, 57893, 0, 0, 0, 0, 0, 0, 0, 0, 3923, 59056, 57943, 528, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 1151, 0, 0, 0, 0, 4003, 3675, 0, 0, 0, 0, 0, 0, 0, 0, 528, 528, 528, 528, 528, 528, 528, 1345, 1844, 1845, 0, 1847, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 806, 0, 0, 0, 0, 1861, 0, 1863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 839, 0, 0, 528, 0, 0, 0, 1875, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 990, 0, 0, 0, 0, 0, 1861, 0, 0, 0, 0, 0, 528, 528, 528, 528, 528, 528, 528, 528, 3223, 528, 528, 528, 528, 528, 528, 1949, 528, 528, 528, 528, 528, 528, 528, 528, 1958, 528, 528, 528, 528, 528, 2478, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1421, 528, 528, 528, 528, 528, 528, 528, 528, 1967, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1977, 1979, 57893, 57893, 59392, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59401, 57893, 57893, 57893, 57893, 57893, 59414, 57893, 57893, 57893, 57893, 57893, 57893, 59420, 57893, 57893, 57893, 57893, 57893, 59410, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59421, 59423, 57893, 57893, 57893, 57893, 57893, 61453, 57893, 57893, 61455, 57893, 57916, 57916, 57916, 57916, 57916, 57916, 59482, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59983, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59492, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59501, 57916, 57916, 57916, 57916, 57916, 57916, 60940, 60942, 57916, 57916, 57916, 57916, 60946, 57916, 60948, 60949, 57916, 59510, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59521, 59523, 57916, 57916, 57916, 57916, 57916, 61570, 57916, 61571, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60416, 57943, 57943, 57943, 59588, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59597, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59043, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 58988, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59606, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59617, 59619, 57943, 57943, 57943, 528, 528, 57893, 57893, 0, 0, 0, 0, 0, 3921, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1839, 0, 0, 0, 0, 0, 0, 0, 2340, 0, 0, 0, 0, 0, 2346, 0, 0, 0, 0, 0, 0, 0, 372, 0, 0, 0, 380, 382, 0, 0, 0, 0, 0, 0, 2354, 0, 0, 0, 0, 0, 0, 0, 0, 2362, 0, 0, 0, 0, 0, 1835, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 528, 528, 528, 528, 2424, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3722, 528, 528, 528, 528, 528, 528, 528, 2436, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2930, 528, 528, 528, 2463, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3240, 3241, 0, 0, 0, 57893, 57893, 57893, 57893, 57893, 57893, 59855, 57893, 57893, 57893, 57893, 57893, 57893, 0, 0, 57916, 60658, 57916, 57916, 57916, 57916, 57916, 57916, 58940, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59518, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60003, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58951, 57916, 57916, 57916, 57916, 60018, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 60027, 57943, 57943, 528, 1355, 528, 528, 528, 528, 58794, 57893, 57893, 57893, 57893, 57893, 1151, 0, 57943, 60086, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59570, 57943, 57943, 57943, 57943, 60101, 57943, 57943, 57943, 2436, 528, 528, 528, 528, 59867, 57893, 57893, 57893, 0, 0, 0, 0, 57916, 59939, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60927, 57916, 60929, 57916, 57916, 57916, 57916, 57916, 57916, 0, 2793, 0, 2795, 0, 0, 0, 0, 0, 0, 0, 0, 2800, 0, 0, 2803, 0, 0, 2818, 0, 0, 0, 0, 0, 0, 0, 2826, 0, 0, 0, 0, 2828, 0, 2842, 0, 0, 2845, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2855, 0, 0, 528, 2869, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2918, 528, 528, 57893, 57893, 57893, 57893, 60327, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 57916, 61099, 57916, 57916, 60336, 57893, 57893, 57893, 60339, 57893, 57893, 57893, 57893, 57893, 57893, 0, 0, 0, 0, 0, 0, 2772, 0, 0, 0, 0, 0, 0, 0, 0, 2359, 0, 0, 0, 0, 0, 0, 0, 0, 57916, 60345, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58894, 57916, 57916, 57943, 60433, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60438, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59549, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60067, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60444, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60452, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59595, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61543, 57943, 57943, 0, 0, 0, 0, 60459, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60468, 57943, 57943, 57943, 528, 528, 57893, 57893, 0, 0, 0, 3919, 0, 0, 3922, 0, 0, 60471, 57943, 57943, 57943, 57943, 57943, 57943, 3131, 528, 528, 528, 528, 60478, 57893, 57893, 57893, 0, 0, 0, 0, 59938, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59946, 3204, 0, 0, 0, 3206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1818, 0, 0, 0, 0, 528, 528, 528, 528, 3244, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3249, 528, 528, 528, 3252, 528, 3254, 528, 528, 528, 528, 528, 528, 528, 3258, 528, 528, 0, 0, 2503, 0, 0, 0, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59858, 57893, 57893, 57893, 60632, 57893, 57893, 57893, 57893, 60635, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59924, 57893, 59926, 57893, 57893, 57893, 57893, 60641, 57893, 57893, 57893, 60644, 57893, 60646, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58843, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60651, 57893, 57893, 57893, 57893, 57893, 0, 0, 57916, 57916, 57916, 60659, 57916, 57916, 57916, 57916, 57916, 58905, 57916, 58907, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60362, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60664, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59458, 57916, 57916, 57916, 60680, 60681, 57916, 57916, 57916, 57916, 60684, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 60022, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61153, 57943, 57943, 57943, 57943, 57943, 57943, 528, 57916, 57916, 57916, 57916, 60690, 57916, 57916, 57916, 60693, 57916, 60695, 57916, 57916, 57916, 57916, 57916, 57916, 61105, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58944, 57916, 57916, 57916, 57916, 57916, 58952, 57916, 57916, 57916, 60700, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 60708, 57943, 57943, 57943, 528, 528, 57893, 57893, 3918, 0, 0, 0, 3920, 0, 0, 0, 0, 0, 0, 3695, 0, 3697, 528, 528, 528, 528, 528, 528, 528, 1905, 528, 528, 528, 528, 528, 528, 528, 528, 2926, 528, 528, 528, 528, 528, 528, 528, 57943, 57943, 60713, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61144, 57943, 57943, 57943, 57943, 60729, 60730, 57943, 57943, 57943, 57943, 60733, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60036, 57943, 60038, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 58984, 57943, 58989, 57943, 57943, 58993, 57943, 57943, 58996, 57943, 57943, 57943, 57943, 60749, 57943, 57943, 57943, 57943, 57943, 528, 528, 528, 57893, 57893, 57893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3417, 0, 0, 3420, 3421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1827, 0, 0, 0, 0, 528, 528, 528, 528, 3486, 528, 528, 528, 528, 3490, 528, 528, 528, 528, 528, 528, 1952, 1953, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3517, 528, 528, 528, 528, 528, 57893, 528, 3496, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2931, 528, 3510, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 57893, 57893, 57893, 61204, 57893, 57893, 57893, 60870, 57893, 57893, 57893, 57893, 60874, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58863, 58864, 57893, 57893, 50676, 58773, 990, 57916, 57916, 60880, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59901, 57893, 60895, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58830, 57893, 57916, 57916, 57916, 57916, 60912, 57916, 57916, 57916, 57916, 60916, 57916, 57916, 57916, 57916, 57916, 57916, 58962, 0, 58963, 58964, 57943, 57943, 57943, 57943, 57943, 58971, 57916, 60922, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59472, 57916, 57916, 57916, 60937, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58927, 57916, 58929, 57916, 57943, 57943, 57943, 57943, 60954, 57943, 57943, 57943, 57943, 60958, 57943, 57943, 57943, 57943, 57943, 57943, 58982, 57943, 57943, 57943, 57943, 58992, 57943, 57943, 57943, 57943, 57943, 57943, 60964, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61256, 57943, 57943, 57943, 57943, 60979, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60974, 57943, 60976, 528, 528, 57893, 57893, 57893, 0, 0, 0, 0, 3819, 0, 0, 0, 0, 0, 3822, 0, 528, 528, 528, 528, 528, 528, 3844, 528, 528, 528, 528, 528, 528, 528, 528, 2481, 528, 528, 528, 528, 528, 2485, 2486, 57893, 57893, 61206, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59927, 57893, 57893, 57893, 57893, 61217, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 57916, 57916, 57916, 57916, 57916, 61225, 0, 0, 3675, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3934, 0, 0, 0, 0, 4080, 0, 0, 0, 0, 0, 0, 528, 528, 528, 528, 528, 528, 4211, 528, 4212, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 61562, 57893, 61563, 57893, 57893, 57893, 57893, 57916, 57943, 4313, 4314, 61659, 61660, 61661, 0, 528, 57893, 57916, 57943, 0, 0, 0, 0, 0, 2382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4284416, 0, 0, 0, 0, 0, 57943, 57943, 61578, 57943, 61579, 57943, 57943, 57943, 57943, 0, 0, 0, 0, 0, 0, 528, 528, 4273, 4274, 528, 528, 57893, 57893, 61621, 61622, 57893, 57893, 57916, 0, 528, 528, 57893, 57893, 57916, 57916, 57943, 57943, 4303, 4304, 61649, 61650, 61651, 0, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2428, 528, 528, 528, 528, 528, 528, 4096, 528, 528, 4098, 57893, 57893, 57893, 57893, 57893, 57893, 58861, 57893, 57893, 57893, 57893, 50676, 58773, 990, 57916, 57916, 537, 57903, 537, 57903, 537, 537, 57903, 537, 537, 57926, 57903, 537, 537, 57903, 57903, 57903, 57903, 57953, 57953, 57903, 57903, 57903, 57903, 57953, 57953, 57903, 537, 57903, 57903, 57926, 57903, 57903, 57903, 57903, 57903, 57903, 57903, 57926, 57926, 57903, 57903, 57953, 57903, 57903, 57903, 1, 24578, 3, 155942, 155942, 296, 0, 0, 0, 0, 0, 302, 303, 0, 57893, 57893, 58833, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60649, 57893, 57893, 57916, 59948, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59489, 57916, 57943, 60031, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60044, 57943, 0, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2404, 0, 0, 340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2854, 0, 0, 0, 406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 406, 0, 0, 0, 432, 131072, 0, 432, 432, 0, 0, 0, 432, 0, 452, 432, 0, 0, 0, 0, 4206, 0, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2430, 528, 528, 432, 478, 478, 478, 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, 538, 57904, 538, 57904, 538, 538, 57904, 538, 538, 57927, 57904, 538, 538, 57904, 57904, 57904, 57904, 57954, 57954, 57904, 57904, 57904, 57904, 57954, 57954, 57904, 538, 57904, 57904, 57927, 57904, 57904, 57904, 57904, 57904, 57904, 57904, 57927, 57927, 57904, 57904, 57954, 57904, 57904, 57904, 1, 24578, 3, 155942, 155942, 296, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 661, 0, 661, 0, 0, 0, 0, 826, 0, 0, 0, 661, 0, 0, 0, 0, 0, 5218304, 0, 0, 0, 0, 5799936, 0, 5881856, 0, 0, 0, 0, 0, 0, 5029888, 5038080, 0, 0, 5103616, 5201920, 0, 0, 0, 0, 0, 0, 1878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2296, 0, 0, 0, 0, 0, 0, 842, 528, 528, 528, 857, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 898, 528, 528, 528, 528, 57893, 57893, 58260, 57893, 57893, 57893, 58276, 57893, 57893, 57893, 57893, 57893, 57893, 61220, 57893, 57893, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 0, 57893, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59022, 57943, 59024, 57943, 57943, 57943, 57943, 57943, 57916, 58352, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58393, 57916, 57916, 57916, 57916, 57916, 60913, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61471, 57943, 57943, 57943, 57943, 57943, 1160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1167, 1168, 0, 0, 0, 0, 0, 0, 1299, 0, 0, 0, 0, 0, 0, 0, 0, 528, 528, 1340, 528, 528, 528, 528, 528, 0, 0, 0, 1249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1260, 1261, 0, 0, 0, 0, 131072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2415, 0, 0, 2418, 528, 528, 528, 528, 1351, 1358, 528, 528, 528, 528, 528, 528, 528, 528, 1371, 528, 528, 0, 57893, 57893, 57893, 58317, 57893, 57893, 294, 1151, 0, 0, 1155, 0, 0, 0, 0, 0, 5857280, 0, 6463488, 4939776, 0, 0, 5455872, 0, 0, 0, 0, 0, 5554176, 5570560, 5578752, 5619712, 5668864, 0, 0, 0, 5791744, 5816320, 0, 5857280, 0, 1373, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1406, 1408, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1423, 528, 528, 528, 528, 528, 2910, 528, 528, 528, 528, 528, 528, 2917, 528, 528, 528, 528, 528, 2490, 528, 528, 528, 528, 528, 528, 528, 528, 528, 0, 0, 57893, 57893, 57893, 57893, 57893, 60612, 57893, 60613, 57893, 57893, 57893, 58773, 914, 57893, 58776, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58790, 58797, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58810, 57893, 58812, 57893, 57893, 57893, 57893, 57893, 59867, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59872, 57893, 57893, 57893, 57893, 57893, 57893, 58832, 57893, 58834, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58847, 57893, 57893, 57893, 57893, 57893, 59881, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59888, 57893, 57916, 57916, 57916, 58957, 57916, 57916, 57916, 0, 57893, 57943, 58965, 57943, 57943, 57943, 57943, 57943, 57943, 59548, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61154, 57943, 57943, 57943, 57943, 528, 58999, 57943, 59001, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59027, 57943, 57943, 57943, 57943, 59037, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59052, 57943, 57943, 57943, 57943, 57943, 61139, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60454, 57943, 57943, 57943, 57943, 1946, 528, 528, 528, 528, 528, 528, 528, 528, 1955, 528, 528, 528, 528, 528, 528, 1970, 528, 528, 528, 528, 528, 528, 1976, 528, 528, 528, 528, 1982, 528, 58773, 1986, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60648, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59346, 59347, 57893, 57893, 57893, 57893, 59354, 57893, 57893, 57893, 57893, 57893, 58315, 57893, 57893, 57893, 57893, 0, 57916, 57916, 57916, 57916, 57916, 57916, 60349, 57916, 57916, 57916, 57916, 60353, 57916, 57916, 57916, 57893, 59426, 57893, 50676, 2086, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60932, 57916, 60934, 57916, 57916, 57916, 57916, 59446, 59447, 57916, 57916, 57916, 57916, 59454, 57916, 57916, 57916, 57916, 57916, 57916, 59449, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60390, 57916, 57916, 57916, 57916, 57916, 57916, 59526, 57916, 57893, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59051, 57943, 57943, 57943, 59542, 59543, 57943, 57943, 57943, 57943, 59550, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60425, 57943, 57943, 57943, 57943, 57943, 57943, 0, 2313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2322, 0, 0, 0, 0, 0, 0, 3208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3210, 3211, 0, 0, 0, 0, 0, 528, 528, 528, 528, 2477, 528, 528, 528, 528, 528, 528, 528, 2483, 528, 528, 528, 528, 528, 2924, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2496, 528, 528, 528, 0, 528, 528, 528, 2488, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 0, 0, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 0, 0, 990, 57916, 57916, 57916, 57916, 57916, 60004, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60010, 57916, 57916, 57916, 57916, 57916, 58921, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60917, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 60087, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60093, 57943, 57943, 57943, 57943, 57943, 57943, 60967, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60040, 57943, 57943, 57943, 57943, 57943, 0, 0, 0, 2782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1169, 1170, 1171, 1172, 3159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1871, 528, 528, 528, 3231, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3248, 528, 528, 528, 3262, 528, 0, 0, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60614, 57893, 57893, 57893, 50676, 0, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59441, 57893, 57893, 57893, 57893, 60622, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 61098, 57916, 57916, 57916, 57893, 57893, 57893, 57893, 60655, 57893, 0, 0, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60928, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60663, 57916, 57916, 57916, 57916, 57916, 57916, 60671, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61118, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 60712, 57943, 57943, 57943, 57943, 57943, 57943, 60720, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61340, 57943, 57943, 528, 57893, 0, 0, 0, 57893, 57893, 57893, 61094, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 57916, 57916, 57916, 57916, 57916, 61232, 57916, 57916, 57916, 57916, 61233, 61234, 57916, 57916, 57916, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61513, 57893, 61515, 57893, 57893, 57893, 57893, 57893, 59894, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 0, 57916, 57916, 58335, 57916, 57916, 528, 528, 61559, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61567, 61624, 57916, 57916, 57916, 57916, 57943, 61628, 57943, 57943, 57943, 57943, 0, 0, 0, 0, 528, 4272, 528, 528, 528, 528, 57893, 61620, 57893, 57893, 57893, 57893, 57916, 0, 389, 341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2801, 0, 0, 463, 479, 479, 479, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 539, 57905, 539, 57905, 539, 539, 57905, 539, 539, 57928, 57905, 539, 539, 57905, 57905, 57905, 57905, 57955, 57955, 57905, 57905, 57905, 57905, 57955, 57955, 57905, 539, 57905, 57905, 57928, 57905, 57905, 57905, 57905, 57905, 57905, 57905, 57928, 57928, 57905, 57905, 57955, 57905, 57905, 57905, 1, 24578, 3, 155942, 156282, 296, 0, 0, 0, 0, 0, 302, 303, 0, 0, 732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3427, 0, 0, 0, 662, 0, 662, 0, 0, 0, 0, 0, 0, 0, 0, 662, 0, 0, 0, 0, 0, 6225920, 4358144, 5062656, 4358144, 4358144, 4358144, 4358144, 4358144, 6225920, 0, 6086656, 528, 528, 528, 528, 858, 528, 528, 874, 528, 528, 528, 528, 528, 528, 528, 528, 2913, 528, 528, 528, 528, 528, 528, 528, 57916, 58353, 57916, 57916, 58369, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61575, 57943, 57943, 57943, 0, 1189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3451, 0, 0, 1318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3480, 0, 0, 0, 1334, 0, 0, 0, 0, 0, 528, 528, 528, 528, 528, 528, 528, 528, 2876, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1352, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2469, 528, 528, 528, 528, 528, 528, 1391, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3493, 528, 528, 528, 528, 1410, 528, 528, 528, 528, 528, 1418, 528, 528, 528, 528, 528, 528, 528, 1379, 528, 528, 528, 528, 528, 528, 528, 528, 1954, 528, 528, 1957, 528, 528, 528, 528, 58773, 914, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58791, 57893, 57893, 57893, 58857, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 50676, 58773, 990, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 60412, 57943, 60413, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 58471, 57943, 57943, 57943, 57943, 528, 528, 528, 901, 57943, 57943, 57943, 57943, 59039, 57943, 57943, 57943, 57943, 57943, 59047, 57943, 57943, 57943, 57943, 57943, 57943, 59563, 59564, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61484, 0, 0, 4143, 4144, 0, 0, 0, 1727, 0, 0, 0, 0, 1734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2370, 0, 0, 0, 0, 0, 0, 528, 1916, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1927, 528, 528, 0, 57893, 57893, 57893, 58319, 57893, 57893, 155942, 1151, 0, 302, 0, 0, 306, 307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 650, 0, 0, 0, 0, 0, 2351104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4358144, 59359, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59370, 57893, 57893, 57893, 50676, 0, 57916, 59433, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59440, 57916, 57943, 57943, 57943, 59544, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59555, 57943, 57943, 528, 1714, 528, 1716, 528, 528, 59063, 57893, 57893, 59065, 57893, 57893, 1151, 0, 57943, 57943, 57943, 59577, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61143, 57943, 57943, 0, 0, 2379, 2380, 0, 0, 0, 0, 0, 2386, 0, 0, 0, 0, 0, 0, 0, 2785, 0, 0, 0, 0, 0, 0, 0, 0, 1753, 0, 0, 0, 0, 0, 0, 0, 528, 2474, 528, 528, 528, 528, 2479, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1396, 528, 528, 528, 1403, 1405, 528, 2501, 0, 0, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60878, 57893, 57893, 57893, 57893, 57893, 57893, 59906, 57893, 57893, 57893, 57893, 59911, 57893, 57893, 57893, 57893, 57893, 57893, 2999, 0, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 61327, 57943, 57943, 61329, 57943, 57943, 57943, 57916, 59964, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59506, 57916, 57943, 60047, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60070, 60071, 57916, 57916, 57916, 57916, 61115, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58885, 58892, 57916, 57916, 57916, 0, 3925, 3675, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2838, 2839, 0, 3949, 528, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58850, 57893, 57893, 57893, 61308, 57893, 57893, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58886, 57916, 57916, 57916, 57916, 4001, 0, 0, 0, 0, 3675, 0, 0, 0, 0, 0, 0, 0, 0, 528, 528, 528, 528, 528, 528, 1895, 528, 528, 528, 4016, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61375, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 57916, 57916, 57916, 57916, 61461, 57916, 61391, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61407, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 0, 0, 0, 0, 0, 2316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3838, 0, 0, 0, 0, 0, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61566, 57916, 0, 0, 0, 0, 57893, 57943, 57943, 58410, 57943, 57943, 57943, 57943, 57943, 57943, 58443, 0, 0, 0, 390, 391, 393, 343, 0, 0, 0, 0, 0, 0, 342, 0, 0, 0, 343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2787, 0, 0, 0, 0, 0, 0, 0, 0, 0, 390, 0, 0, 0, 0, 0, 0, 343, 0, 0, 0, 390, 0, 0, 0, 0, 131072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, 0, 0, 0, 1749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540672, 0, 0, 0, 0, 0, 0, 480, 480, 480, 480, 496, 496, 496, 496, 496, 496, 496, 496, 496, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 540, 57906, 540, 57906, 540, 540, 57906, 540, 540, 57929, 57906, 540, 540, 57906, 57906, 57906, 1, 24578, 3, 155942, 155942, 296, 0, 0, 0, 0, 0, 302, 303, 0, 57929, 57906, 57906, 57906, 57906, 57906, 57906, 57906, 57929, 57929, 57906, 57942, 57956, 57942, 57942, 57942, 57942, 57956, 57956, 57942, 57942, 57942, 57942, 57956, 57956, 57942, 540, 57906, 57906, 368, 368, 0, 0, 0, 0, 0, 706, 0, 0, 0, 0, 0, 0, 0, 0, 740, 0, 0, 0, 0, 740, 0, 746, 715, 0, 717, 0, 0, 0, 0, 0, 0, 0, 725, 0, 0, 0, 0, 0, 0, 804, 0, 0, 0, 0, 0, 0, 804, 0, 528, 0, 0, 813, 0, 796, 0, 0, 815, 0, 667, 0, 792, 0, 0, 0, 0, 0, 836, 0, 0, 0, 0, 796, 663, 840, 0, 528, 0, 792, 815, 0, 815, 813, 0, 0, 0, 827, 0, 0, 0, 663, 830, 0, 0, 0, 0, 131072, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 690, 691, 0, 0, 0, 0, 696, 0, 0, 0, 368, 843, 528, 528, 528, 859, 528, 528, 875, 528, 528, 528, 528, 889, 528, 528, 528, 528, 528, 3245, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1398, 528, 528, 528, 528, 528, 907, 528, 528, 57893, 57893, 58261, 57893, 57893, 57893, 58278, 57893, 57893, 58294, 57893, 57893, 57893, 50676, 0, 59432, 57916, 59434, 57916, 59435, 57916, 59437, 57916, 59439, 57916, 57916, 57893, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59534, 57943, 57943, 57943, 57943, 57943, 57943, 59594, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60467, 57943, 57943, 57943, 57943, 57943, 57893, 57893, 58308, 57893, 57893, 57893, 57893, 58326, 57893, 57893, 0, 57916, 57916, 58337, 57916, 57916, 57916, 57916, 57943, 57943, 60411, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59044, 57943, 57943, 57943, 57943, 57943, 57943, 57916, 58354, 57916, 57916, 58370, 57916, 57916, 57916, 57916, 58384, 57916, 57916, 57916, 57916, 58402, 57916, 0, 0, 0, 0, 57893, 57943, 57943, 58411, 57943, 57943, 57943, 58427, 57943, 57943, 57943, 57943, 57943, 59005, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59008, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 58459, 57943, 57943, 57943, 57943, 58477, 57943, 57943, 528, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 1151, 0, 0, 0, 1170, 0, 0, 0, 0, 0, 0, 0, 1172, 0, 0, 0, 0, 0, 0, 806, 0, 0, 0, 0, 787, 0, 806, 0, 528, 1293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1305, 0, 0, 0, 0, 0, 6307840, 0, 0, 6356992, 6381568, 6397952, 4800512, 4808704, 0, 0, 4890624, 0, 4947968, 0, 0, 0, 5046272, 0, 0, 0, 0, 5185536, 0, 5234688, 5300224, 0, 0, 0, 0, 1210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1305, 0, 0, 0, 0, 0, 2343, 0, 0, 0, 0, 0, 2347, 0, 0, 2349, 0, 0, 1333, 0, 0, 0, 0, 0, 0, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1353, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2901, 528, 528, 528, 528, 528, 528, 1377, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3724, 528, 528, 58773, 914, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58792, 0, 0, 1777, 0, 0, 1780, 0, 1782, 0, 0, 0, 0, 0, 0, 0, 0, 753, 0, 0, 0, 0, 0, 0, 0, 0, 1833, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3667, 3668, 528, 1898, 528, 528, 528, 528, 528, 528, 528, 528, 1909, 528, 528, 528, 528, 528, 868, 528, 528, 528, 528, 528, 887, 528, 528, 528, 528, 59341, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59352, 57893, 57893, 57893, 57893, 57893, 57893, 58325, 57893, 57893, 57893, 0, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 59578, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60056, 57943, 57943, 57943, 0, 2394, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2405, 0, 528, 528, 528, 2422, 2423, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1366, 528, 528, 528, 528, 528, 0, 0, 0, 57893, 57893, 57893, 59852, 57893, 59854, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59349, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60647, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59903, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59405, 57893, 0, 2780, 0, 0, 2783, 0, 0, 0, 0, 0, 0, 2788, 0, 0, 0, 2791, 2792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2802, 0, 0, 0, 0, 131072, 0, 0, 0, 0, 0, 0, 0, 448, 0, 0, 0, 0, 0, 2307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3674, 0, 0, 0, 0, 0, 0, 2817, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3677, 0, 0, 0, 2843, 0, 0, 0, 0, 0, 0, 0, 0, 2851, 0, 0, 0, 0, 0, 0, 3448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1287, 1288, 0, 0, 0, 0, 0, 0, 2857, 0, 0, 0, 0, 2860, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2862, 0, 0, 0, 0, 0, 0, 2868, 0, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 2879, 528, 528, 2882, 2883, 528, 528, 528, 528, 528, 2888, 528, 2890, 528, 528, 528, 528, 528, 3487, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2468, 528, 528, 528, 528, 528, 528, 2894, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2900, 528, 528, 528, 528, 528, 1903, 1904, 528, 528, 528, 528, 1911, 528, 528, 528, 528, 528, 1935, 528, 528, 528, 1940, 528, 528, 528, 528, 528, 528, 2897, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3858, 528, 57893, 57893, 57893, 57893, 528, 528, 528, 528, 2908, 528, 528, 528, 528, 528, 528, 2916, 528, 528, 528, 528, 528, 2439, 528, 528, 528, 528, 2444, 528, 528, 528, 528, 528, 528, 61594, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61600, 57916, 528, 2921, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1387, 528, 57893, 60297, 57893, 60299, 57893, 57893, 57893, 57893, 60303, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59382, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59398, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60309, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60318, 57893, 57893, 57893, 0, 0, 0, 2593, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60704, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60957, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57893, 57893, 57893, 60326, 57893, 57893, 57893, 57893, 57893, 60331, 57893, 57893, 57893, 57893, 57893, 57893, 58837, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58851, 57893, 60355, 57916, 57916, 60358, 60359, 57916, 57916, 57916, 57916, 57916, 60364, 57916, 60366, 57916, 57916, 57916, 57916, 57916, 60925, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58884, 57916, 57916, 57916, 57916, 57916, 57916, 60370, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60376, 57916, 57916, 57916, 57916, 57916, 58960, 57916, 0, 57893, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60732, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60450, 57943, 57943, 57943, 57943, 57943, 57943, 60458, 57916, 57916, 60398, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59505, 57916, 57916, 57943, 57943, 57943, 60420, 57943, 57943, 60423, 60424, 57943, 57943, 57943, 57943, 57943, 60429, 57943, 60431, 57943, 57943, 57943, 57943, 60435, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60441, 57943, 57943, 57943, 57943, 57943, 61150, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 528, 528, 3133, 528, 528, 57893, 57893, 60480, 57893, 0, 0, 3161, 3162, 3163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2311, 0, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 3182, 0, 3184, 0, 0, 0, 0, 0, 0, 3458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 802, 0, 807, 0, 810, 3188, 0, 0, 0, 0, 3193, 0, 0, 3196, 0, 0, 0, 0, 0, 0, 0, 389, 0, 139264, 147456, 0, 0, 0, 0, 0, 528, 528, 3263, 0, 0, 60608, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61086, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60653, 57893, 57893, 60656, 0, 0, 60657, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58880, 57916, 57916, 57916, 58889, 57916, 57916, 57916, 57916, 57916, 57916, 60689, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59986, 57916, 57916, 57916, 57916, 60699, 57916, 57916, 60702, 57916, 57916, 60705, 60706, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60052, 57943, 57943, 57943, 57943, 57943, 57943, 60057, 57943, 60727, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59031, 57943, 57943, 57943, 60738, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 58994, 57943, 57943, 57943, 57943, 57943, 57943, 60748, 57943, 57943, 60751, 57943, 57943, 60754, 3411, 528, 528, 60758, 57893, 57893, 57893, 50676, 2085, 57916, 57916, 57916, 57916, 57916, 59436, 57916, 57916, 57916, 57916, 57916, 57916, 60373, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60379, 57916, 3429, 0, 0, 0, 0, 3434, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3675, 0, 0, 0, 0, 0, 0, 0, 0, 528, 528, 0, 0, 0, 3470, 0, 0, 0, 0, 0, 0, 3477, 0, 0, 3479, 0, 0, 0, 0, 306, 0, 0, 0, 0, 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2852, 0, 0, 0, 528, 528, 3484, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3259, 528, 3509, 528, 528, 3511, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 61446, 57893, 57893, 60868, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59928, 57893, 60894, 57893, 57893, 60896, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60877, 57893, 57893, 57893, 57916, 57916, 60910, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60012, 57916, 57916, 57916, 60936, 57916, 57916, 60938, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59485, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 60952, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59009, 57943, 57943, 57943, 57943, 57943, 60978, 57943, 57943, 60980, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60055, 57943, 57943, 57943, 60058, 3661, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2312, 3679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3691, 0, 0, 0, 0, 131072, 0, 0, 0, 0, 0, 0, 0, 450, 0, 0, 0, 0, 0, 3457, 0, 0, 0, 0, 3462, 0, 0, 0, 0, 3466, 3702, 3703, 528, 528, 528, 528, 3707, 3708, 528, 528, 528, 528, 528, 3712, 528, 528, 0, 2932, 0, 0, 0, 0, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59859, 57893, 57893, 528, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61073, 61074, 57893, 57893, 57893, 57893, 61078, 61079, 57916, 57916, 61102, 61103, 57916, 57916, 57916, 57916, 61107, 61108, 57916, 57916, 57916, 57916, 57916, 61112, 57943, 57943, 61136, 61137, 57943, 57943, 57943, 57943, 57943, 61141, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60436, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 58476, 57943, 57943, 57943, 1139, 528, 528, 528, 57943, 57943, 61147, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 528, 528, 528, 528, 528, 528, 57893, 57893, 57893, 0, 0, 3817, 0, 0, 0, 0, 0, 0, 0, 0, 1165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3834, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2865, 0, 0, 57916, 57916, 57916, 57916, 61230, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59486, 57916, 57916, 57916, 57916, 57943, 61249, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60096, 57943, 0, 0, 3675, 0, 3928, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2361, 0, 0, 0, 0, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61303, 57893, 57893, 57893, 50676, 2086, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61236, 61319, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 0, 0, 57943, 57943, 57943, 61335, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 528, 57893, 0, 3999, 0, 0, 0, 0, 131072, 0, 0, 0, 0, 0, 0, 0, 450560, 0, 0, 0, 0, 0, 372, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2333, 0, 0, 0, 0, 2338, 0, 4002, 0, 0, 0, 3675, 0, 0, 0, 0, 0, 0, 0, 0, 528, 528, 528, 1341, 528, 528, 528, 528, 4014, 528, 528, 528, 528, 4019, 528, 528, 528, 528, 4024, 528, 528, 57893, 57893, 61373, 57893, 57893, 57893, 57893, 61378, 57893, 57893, 57893, 57893, 61383, 57893, 57893, 57893, 57916, 57916, 61389, 57916, 57916, 57916, 57916, 61394, 57916, 57916, 57916, 57916, 61399, 57916, 57916, 57916, 57943, 57943, 61405, 57943, 57943, 57943, 57943, 61410, 57943, 57943, 57943, 57943, 61415, 57943, 57943, 57943, 0, 0, 0, 0, 0, 2366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 352256, 0, 352256, 0, 0, 0, 0, 0, 0, 4078, 0, 0, 4081, 0, 0, 0, 0, 0, 528, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 528, 528, 4246, 4247, 528, 528, 57893, 57893, 57893, 61596, 61597, 57893, 57893, 57893, 57916, 57916, 57916, 57916, 57943, 60410, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 58481, 528, 852, 528, 528, 57916, 61602, 61603, 57916, 57916, 57916, 57943, 57943, 57943, 61608, 61609, 57943, 57943, 57943, 0, 0, 0, 0, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 0, 306, 0, 0, 0, 0, 345, 346, 347, 348, 349, 0, 0, 0, 0, 0, 0, 0, 0, 1181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 349, 348, 131072, 347, 348, 348, 0, 349, 347, 348, 0, 347, 348, 457, 464, 481, 481, 481, 492, 492, 492, 498, 492, 492, 498, 498, 492, 498, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 541, 57907, 541, 57907, 541, 541, 57907, 541, 541, 57930, 57907, 541, 541, 57907, 57907, 57907, 57907, 57957, 57957, 57907, 57907, 57907, 57907, 57957, 57957, 57907, 541, 57907, 57907, 57930, 57907, 57907, 57907, 57907, 57907, 57907, 57907, 57930, 57930, 57907, 57907, 57957, 57907, 57907, 57907, 1, 24578, 3, 155942, 155942, 296, 0, 0, 0, 0, 0, 302, 303, 0, 0, 306, 307, 0, 0, 0, 0, 0, 0, 646, 0, 0, 0, 0, 651, 652, 653, 654, 655, 656, 657, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2388, 0, 0, 0, 0, 0, 0, 0, 672, 673, 0, 675, 676, 0, 0, 0, 0, 0, 682, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 352256, 0, 0, 0, 0, 0, 0, 0, 716, 0, 0, 719, 0, 721, 0, 723, 0, 0, 0, 0, 0, 0, 0, 394, 0, 0, 0, 0, 0, 0, 0, 0, 1222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 733, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3172, 0, 0, 0, 0, 0, 763, 764, 0, 766, 767, 675, 0, 0, 0, 0, 0, 0, 0, 395, 0, 0, 0, 0, 0, 0, 0, 0, 2319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 782, 783, 0, 785, 0, 0, 0, 0, 764, 0, 0, 791, 0, 0, 0, 0, 131072, 0, 0, 0, 0, 0, 245760, 0, 0, 0, 0, 245760, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3171, 0, 0, 0, 0, 692, 0, 0, 0, 764, 0, 0, 0, 0, 0, 0, 0, 0, 757, 821, 0, 0, 0, 757, 0, 0, 824, 699, 0, 0, 0, 829, 0, 0, 0, 831, 0, 0, 0, 692, 699, 0, 0, 692, 829, 829, 0, 0, 0, 0, 0, 528, 528, 528, 528, 528, 528, 2874, 528, 528, 528, 528, 528, 528, 528, 3489, 528, 528, 528, 528, 528, 528, 528, 528, 3256, 528, 528, 528, 528, 528, 528, 528, 528, 849, 853, 856, 528, 865, 528, 528, 528, 881, 883, 886, 528, 528, 528, 899, 903, 528, 528, 528, 57893, 57893, 57893, 58268, 58272, 58275, 57893, 58284, 57893, 57893, 57893, 58300, 58302, 58305, 57893, 57893, 57893, 58318, 58322, 57893, 57893, 57893, 0, 57916, 57916, 57916, 58344, 58348, 58351, 57916, 58360, 57916, 57916, 57916, 58376, 58378, 58381, 57916, 57916, 57916, 58394, 58398, 57916, 57916, 57916, 57916, 58367, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59999, 57916, 57916, 57916, 57916, 0, 0, 0, 0, 58409, 57943, 57943, 57943, 58419, 58423, 58426, 57943, 58435, 57943, 57943, 528, 3649, 528, 57893, 60996, 57893, 0, 0, 0, 0, 0, 0, 0, 0, 1254, 0, 0, 0, 0, 0, 0, 0, 57943, 58451, 58453, 58456, 57943, 57943, 57943, 58469, 58473, 57943, 57943, 57943, 849, 1140, 528, 899, 903, 1144, 0, 58489, 58268, 57893, 58318, 58322, 58494, 155942, 1151, 0, 0, 0, 0, 0, 0, 1179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1239, 0, 0, 0, 0, 0, 0, 1278, 0, 0, 0, 0, 1283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3675, 0, 3828, 0, 0, 0, 0, 0, 0, 1321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1198, 0, 0, 0, 528, 1375, 528, 528, 528, 1378, 528, 528, 528, 528, 528, 528, 528, 1385, 528, 528, 0, 2932, 0, 0, 0, 0, 57893, 57893, 57893, 57893, 57893, 57893, 60282, 57893, 1389, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1400, 528, 528, 1407, 58817, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58824, 57893, 57893, 58828, 57893, 57893, 57893, 57893, 57893, 59895, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59898, 59899, 57893, 57893, 57893, 57893, 57916, 57916, 57916, 58934, 57916, 57916, 58941, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59984, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58955, 57916, 57916, 57916, 57916, 57916, 0, 57893, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61542, 57943, 57943, 57943, 0, 4202, 0, 0, 57943, 57943, 57943, 59003, 57943, 57943, 57943, 59006, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59013, 57943, 57943, 59017, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59029, 57943, 57943, 57943, 57943, 57943, 61337, 57943, 57943, 57943, 61341, 57943, 528, 57893, 0, 0, 0, 0, 3139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3149, 57943, 59036, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59050, 57943, 57943, 57943, 57943, 57943, 59019, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 58482, 528, 528, 528, 528, 1822, 0, 1824, 0, 0, 0, 1826, 0, 746, 0, 0, 0, 0, 0, 0, 0, 399, 0, 0, 404, 0, 0, 0, 0, 0, 1872, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2350, 0, 1757, 0, 0, 0, 0, 0, 0, 528, 1891, 528, 528, 528, 528, 528, 528, 2440, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2495, 528, 528, 528, 528, 0, 1897, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1428, 528, 528, 528, 528, 1919, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1928, 528, 528, 528, 1932, 528, 528, 1937, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1419, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 58773, 0, 57893, 59333, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59340, 57893, 57893, 57893, 59362, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59371, 57893, 57893, 57893, 57893, 57943, 57943, 57893, 57893, 57893, 57893, 57943, 57943, 57893, 528, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61075, 57893, 57893, 57893, 57893, 57893, 58821, 57893, 57893, 57893, 58825, 57893, 57893, 57893, 57893, 57893, 57893, 59348, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60875, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59375, 57893, 57893, 59380, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61457, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59462, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59471, 57916, 57916, 57916, 57916, 58368, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60011, 57916, 57916, 57916, 57916, 59475, 57916, 57916, 59480, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59972, 57916, 57916, 57916, 59975, 59558, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59567, 57943, 57943, 57943, 59571, 57943, 57943, 59576, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59569, 57943, 57943, 57916, 57916, 57916, 59990, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58948, 57916, 57916, 57916, 57943, 57943, 57943, 60073, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59010, 57943, 57943, 57943, 2804, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2376, 57916, 60409, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59030, 57943, 57943, 57943, 57943, 60474, 57943, 57943, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 2290, 0, 2291, 0, 0, 3214, 0, 0, 0, 528, 3218, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1383, 528, 528, 528, 528, 1388, 3242, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1962, 57893, 60633, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60335, 57893, 57916, 57916, 57916, 57916, 60682, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59998, 57916, 57916, 57916, 57916, 0, 0, 3419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3425, 0, 0, 0, 0, 0, 2410, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 417792, 309, 310, 0, 0, 0, 0, 3841, 528, 528, 528, 528, 528, 528, 528, 3846, 528, 528, 528, 528, 528, 528, 2465, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3943, 528, 3945, 528, 528, 528, 57893, 57893, 57893, 57893, 61208, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59369, 57893, 57893, 57893, 57893, 57916, 61227, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59524, 57916, 0, 0, 3675, 3927, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1266, 0, 0, 0, 528, 528, 528, 3937, 528, 528, 528, 528, 3941, 528, 528, 528, 528, 528, 3947, 528, 528, 0, 57893, 57893, 57893, 58320, 57893, 57893, 155942, 1151, 0, 0, 0, 0, 0, 0, 1751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 754, 0, 0, 0, 0, 0, 0, 528, 528, 57893, 57893, 57893, 61296, 57893, 57893, 57893, 57893, 61300, 57893, 57893, 57893, 57893, 57893, 58317, 57893, 57893, 57893, 57893, 0, 57916, 57916, 58336, 57916, 57916, 61306, 57893, 57893, 57893, 57893, 57916, 57916, 57916, 61312, 57916, 57916, 57916, 57916, 61316, 57916, 57916, 57916, 57916, 58371, 58373, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58945, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61322, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 61328, 57943, 57943, 57943, 57943, 57943, 57943, 60981, 57943, 60983, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60078, 57943, 57943, 57943, 57943, 60083, 57943, 57943, 61332, 57943, 57943, 57943, 57943, 57943, 61338, 57943, 57943, 57943, 57943, 528, 57893, 0, 0, 0, 0, 0, 2797, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1881, 0, 0, 0, 0, 0, 528, 528, 528, 4017, 528, 528, 528, 4021, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 58281, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61376, 57893, 57893, 57893, 61380, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 57916, 57916, 57916, 57916, 60939, 57916, 60941, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58881, 57916, 57916, 57916, 57916, 57916, 57916, 58896, 57916, 57916, 61392, 57916, 57916, 57916, 61396, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 61242, 57943, 57943, 57943, 61245, 57943, 57943, 57943, 57943, 61408, 57943, 57943, 57943, 61412, 57943, 57943, 57943, 57943, 57943, 57943, 0, 0, 0, 0, 0, 2821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1739, 0, 0, 0, 0, 0, 0, 4270, 0, 528, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 61311, 57916, 57916, 61313, 57916, 57916, 57916, 57916, 57916, 57916, 59497, 57916, 57916, 59500, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61526, 57916, 61528, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60415, 57943, 57943, 57943, 57943, 0, 528, 528, 57893, 57893, 57916, 57916, 57943, 57943, 0, 528, 57893, 57916, 57943, 4308, 4309, 61654, 61655, 61656, 0, 528, 57893, 57916, 57943, 0, 528, 57893, 57916, 57943, 0, 0, 0, 0, 0, 2831, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1257, 0, 0, 0, 0, 1262, 0, 350, 0, 408, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 408, 0, 350, 0, 139264, 147456, 0, 0, 0, 0, 0, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 542, 57908, 542, 57908, 542, 542, 57908, 542, 542, 57931, 57908, 542, 542, 57908, 57908, 57908, 57908, 57958, 57958, 57908, 57908, 57908, 57908, 57958, 57958, 57908, 623, 57908, 57974, 57931, 57908, 57908, 57908, 57908, 57908, 57908, 57908, 57931, 57931, 57908, 57908, 57958, 57908, 57908, 57908, 57974, 57974, 1, 24578, 3, 155942, 155942, 296, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 131072, 0, 0, 0, 328, 0, 0, 330, 0, 0, 0, 0, 0, 0, 2847, 2848, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5808128, 0, 0, 0, 0, 4792320, 4833280, 844, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 890, 528, 528, 528, 528, 528, 3499, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3508, 528, 908, 528, 528, 57893, 57893, 58262, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61222, 57916, 57916, 57916, 57916, 57916, 57916, 57893, 57893, 58309, 57893, 57893, 57893, 57893, 58327, 57893, 57893, 0, 57916, 57916, 58338, 57916, 57916, 57916, 57916, 58877, 57916, 57916, 57916, 57916, 58883, 57916, 57916, 57916, 57916, 57916, 57916, 59993, 59994, 57916, 57916, 57916, 57916, 57916, 57916, 60001, 57916, 57943, 57943, 57943, 57943, 58460, 57943, 57943, 57943, 57943, 58478, 57943, 57943, 528, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 1151, 1724, 1173, 0, 0, 0, 0, 1178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2310144, 0, 368, 0, 0, 0, 0, 0, 1173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2816, 528, 528, 528, 528, 1354, 528, 528, 528, 528, 1364, 528, 528, 528, 528, 528, 528, 2491, 528, 2493, 528, 528, 528, 528, 528, 528, 0, 58773, 914, 57893, 57893, 57893, 58779, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58793, 57916, 58874, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58888, 57916, 57916, 57916, 57916, 57916, 59448, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59459, 58898, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59961, 57916, 58914, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59987, 59988, 58953, 57916, 57916, 57916, 57916, 57916, 57916, 0, 57893, 57943, 57943, 57943, 58968, 57943, 57943, 57943, 57943, 57943, 59041, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59053, 59054, 0, 1728, 0, 0, 0, 0, 1735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3424, 0, 0, 0, 0, 0, 0, 0, 0, 1761, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3185, 0, 0, 1775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2840, 0, 0, 2353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3201, 0, 0, 2449, 528, 528, 528, 528, 528, 528, 2454, 528, 2456, 528, 528, 528, 528, 528, 528, 2884, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2915, 528, 528, 528, 528, 528, 2502, 0, 0, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61387, 57916, 57916, 57893, 57893, 57893, 59880, 57893, 57893, 57893, 57893, 57893, 57893, 59885, 57893, 59887, 57893, 57893, 57893, 0, 0, 2592, 0, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61470, 57943, 57943, 57943, 57943, 57943, 57943, 59976, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60013, 57916, 60059, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59033, 528, 2906, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1960, 528, 57916, 57916, 60383, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60367, 57916, 57916, 0, 0, 3675, 0, 0, 0, 0, 3931, 0, 0, 3933, 0, 0, 0, 0, 0, 0, 1192, 0, 0, 0, 1196, 1197, 0, 0, 0, 0, 528, 3936, 528, 528, 3938, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3247, 528, 528, 528, 528, 528, 57893, 61295, 57893, 57893, 61297, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61456, 57916, 57916, 57916, 57916, 57916, 57916, 0, 0, 800, 0, 800, 0, 0, 0, 0, 0, 0, 0, 0, 800, 0, 0, 0, 0, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 0, 307, 0, 528, 528, 528, 528, 860, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3257, 528, 528, 3260, 57916, 58355, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60368, 57916, 1161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3174, 528, 528, 528, 528, 58773, 1987, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59910, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57943, 57943, 60445, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59585, 57943, 57943, 57893, 61081, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60639, 57893, 0, 0, 0, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1746, 0, 0, 0, 0, 0, 0, 352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1756, 1757, 0, 0, 0, 0, 353, 351, 131072, 0, 351, 351, 0, 353, 0, 351, 0, 0, 351, 353, 351, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 505, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 543, 57909, 543, 57909, 543, 543, 57909, 543, 543, 57932, 57909, 543, 543, 57909, 57909, 57909, 57909, 57959, 57959, 57909, 57909, 57909, 57909, 57959, 57959, 57909, 543, 57909, 57909, 57932, 57909, 57909, 57909, 57909, 57909, 57909, 57909, 57932, 57932, 57909, 57909, 57959, 57909, 57909, 57909, 1, 24578, 3, 155942, 155942, 296, 0, 0, 0, 0, 0, 302, 303, 0, 811, 812, 0, 0, 0, 0, 0, 0, 758, 0, 0, 817, 0, 0, 0, 0, 0, 0, 4082, 0, 0, 0, 0, 528, 528, 528, 528, 528, 3221, 528, 3222, 528, 528, 528, 528, 0, 817, 0, 664, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1787, 0, 0, 0, 832, 0, 0, 0, 0, 0, 0, 812, 0, 0, 0, 0, 0, 0, 0, 528, 528, 528, 528, 528, 2873, 528, 528, 528, 528, 2877, 528, 528, 528, 0, 2503, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61087, 57893, 57893, 57893, 57893, 528, 850, 528, 528, 528, 866, 870, 528, 528, 528, 528, 528, 891, 893, 528, 528, 0, 2932, 0, 0, 0, 0, 57893, 57893, 57893, 60280, 57893, 60281, 57893, 57893, 57893, 50676, 0, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59473, 904, 528, 528, 528, 57893, 57893, 58263, 58269, 57893, 57893, 57893, 58285, 58289, 57893, 57893, 57893, 0, 2590, 0, 0, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59970, 57916, 57916, 57916, 57916, 57916, 57916, 57893, 57893, 58310, 58312, 57893, 57893, 58323, 57893, 57893, 57893, 0, 57916, 57916, 58339, 58345, 57916, 0, 0, 0, 0, 57893, 57943, 57943, 58412, 57943, 57943, 57943, 58429, 57943, 57943, 58445, 57916, 57916, 58361, 58365, 57916, 57916, 57916, 57916, 57916, 58386, 58388, 57916, 57916, 58399, 57916, 57916, 57916, 57916, 58904, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60945, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 58461, 58463, 57943, 57943, 58474, 57943, 57943, 57943, 850, 528, 893, 528, 528, 0, 58270, 58266, 58491, 58314, 57893, 57893, 155942, 1151, 0, 0, 1154, 0, 0, 0, 0, 0, 245760, 245760, 245760, 245760, 245760, 245760, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4358144, 4358144, 4358144, 904, 528, 0, 57893, 58269, 58312, 57893, 58323, 57893, 155942, 1151, 0, 302, 0, 0, 306, 307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1772, 0, 0, 0, 0, 0, 1217, 0, 1219, 0, 1221, 0, 0, 0, 0, 0, 0, 0, 0, 1286, 0, 0, 0, 0, 0, 0, 0, 0, 1247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3839, 0, 1332, 0, 0, 0, 0, 0, 0, 0, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3850, 528, 528, 1374, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2461, 528, 528, 528, 1412, 528, 528, 528, 528, 528, 528, 528, 528, 1424, 1425, 528, 528, 0, 57893, 57893, 57893, 57893, 57893, 57893, 294, 1151, 0, 0, 0, 0, 0, 0, 0, 5480448, 4358144, 4358144, 4358144, 4358144, 4857856, 4874240, 4358144, 4358144, 58773, 914, 57893, 57893, 57893, 57893, 58780, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60289, 57893, 57893, 57893, 57893, 57893, 60294, 57893, 57916, 57916, 58875, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60378, 57916, 57916, 57916, 57916, 58932, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58946, 57916, 57916, 57916, 57916, 57916, 57916, 61241, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61246, 57943, 57916, 57916, 57916, 58958, 58959, 57916, 57916, 0, 57893, 57943, 57943, 57943, 57943, 58969, 57943, 57943, 3648, 528, 528, 60995, 57893, 57893, 0, 0, 0, 0, 0, 0, 0, 0, 1815, 0, 0, 0, 0, 0, 0, 0, 57943, 59000, 59002, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59602, 57943, 57943, 0, 1808, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 212992, 0, 528, 528, 1966, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1975, 528, 528, 528, 528, 528, 3513, 3515, 528, 528, 528, 3518, 528, 3520, 3521, 528, 57893, 528, 1981, 528, 528, 58773, 0, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59338, 57893, 57893, 57893, 50676, 2087, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60674, 57916, 57916, 57916, 57916, 57893, 59409, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59419, 57893, 57893, 57893, 57893, 57893, 59907, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 0, 57916, 57916, 58340, 57916, 57916, 59425, 57893, 57893, 50676, 0, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59438, 57916, 57916, 57916, 57916, 57916, 61116, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61124, 57916, 59509, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59519, 57916, 57916, 57916, 57916, 59525, 57943, 57943, 59559, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59620, 57943, 57943, 2393, 0, 2395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2403, 0, 0, 0, 0, 343, 390, 0, 0, 0, 139264, 147456, 0, 0, 0, 423, 0, 0, 0, 2408, 2409, 0, 0, 0, 0, 0, 2413, 0, 0, 0, 0, 0, 0, 0, 3153, 0, 0, 0, 0, 0, 0, 0, 0, 378, 0, 0, 0, 0, 0, 0, 0, 0, 2419, 528, 528, 528, 528, 528, 528, 2426, 528, 528, 528, 528, 528, 528, 528, 1394, 528, 528, 528, 528, 528, 528, 528, 528, 2886, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2450, 528, 528, 528, 528, 528, 528, 528, 528, 2457, 528, 2459, 528, 2462, 528, 528, 528, 2476, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 61371, 57893, 57893, 0, 0, 0, 59849, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59857, 57893, 57893, 57893, 57893, 57893, 60301, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60306, 57893, 57893, 59890, 57893, 59893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60304, 57893, 57893, 57893, 57893, 59902, 57893, 57893, 57893, 57893, 57893, 59908, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60330, 57893, 57893, 57893, 60333, 60334, 57893, 57893, 57916, 57916, 59977, 57916, 59979, 57916, 59982, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60363, 57916, 60365, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59991, 57916, 57916, 57916, 57916, 57916, 59997, 57916, 57916, 57916, 57916, 57916, 57916, 61606, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 0, 0, 57943, 57943, 60060, 57943, 60062, 57943, 60065, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59007, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60074, 57943, 57943, 57943, 57943, 57943, 60080, 57943, 57943, 57943, 57943, 57943, 57943, 59612, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 0, 0, 4240, 0, 0, 0, 528, 0, 0, 0, 2819, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2827, 0, 0, 0, 0, 131072, 0, 0, 0, 357, 0, 0, 0, 0, 359, 0, 0, 400, 0, 0, 0, 0, 0, 139264, 147456, 400, 411, 0, 424, 411, 2841, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3187, 528, 2880, 528, 528, 528, 528, 528, 2885, 528, 528, 528, 528, 528, 528, 528, 528, 3502, 528, 528, 528, 528, 528, 528, 528, 57893, 57893, 57893, 60310, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60628, 57893, 57893, 57893, 57893, 57916, 60356, 57916, 57916, 57916, 57916, 57916, 60361, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59953, 57916, 59955, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 60421, 57943, 57943, 57943, 57943, 57943, 60426, 57943, 57943, 57943, 57943, 57943, 57943, 60064, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59566, 57943, 57943, 57943, 57943, 57943, 57893, 60652, 57893, 57893, 57893, 57893, 0, 0, 57916, 57916, 57916, 57916, 57916, 60661, 57916, 60662, 57916, 57916, 57916, 57916, 60701, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 60710, 57943, 57943, 57943, 57943, 57943, 61481, 57943, 57943, 61483, 57943, 0, 0, 0, 0, 0, 0, 0, 2808, 0, 0, 0, 0, 0, 0, 0, 0, 350, 0, 0, 0, 0, 0, 0, 0, 60711, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59587, 528, 3483, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1978, 528, 60867, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59929, 57916, 60909, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60395, 57916, 57916, 57943, 60951, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60069, 57943, 57943, 0, 3670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 278528, 0, 0, 0, 3675, 0, 0, 0, 3930, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3476, 0, 0, 0, 0, 0, 0, 3935, 528, 528, 528, 528, 3939, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3948, 528, 528, 61294, 57893, 57893, 57893, 57893, 61298, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60342, 57893, 57893, 0, 0, 0, 3000, 0, 57893, 61307, 57893, 57893, 57893, 61310, 57916, 57916, 57916, 57916, 61314, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 0, 0, 0, 0, 528, 528, 528, 3219, 528, 528, 528, 528, 528, 3224, 528, 528, 57916, 57916, 57916, 57916, 61323, 57916, 57916, 57916, 61326, 57943, 57943, 57943, 57943, 61330, 57943, 57943, 57943, 57943, 57943, 60089, 60090, 60091, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59615, 57943, 57943, 57943, 57943, 59621, 57943, 4090, 528, 528, 528, 528, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 61447, 0, 0, 0, 4149, 0, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3851, 528, 528, 528, 528, 528, 4248, 528, 57893, 57893, 57893, 57893, 57893, 61598, 57893, 57893, 57916, 57916, 57916, 57916, 58919, 57916, 57916, 58923, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61572, 61573, 57916, 57916, 57943, 57943, 57943, 57943, 57916, 57916, 57916, 61604, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 61610, 57943, 57943, 0, 0, 0, 0, 363, 0, 0, 0, 0, 139264, 147456, 0, 0, 0, 0, 0, 0, 1307, 0, 528, 528, 1339, 528, 1342, 528, 528, 528, 4269, 0, 4271, 528, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 0, 0, 0, 0, 57893, 57943, 57943, 58413, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61582, 0, 0, 0, 0, 0, 0, 528, 388, 0, 354, 0, 0, 0, 0, 0, 397, 398, 0, 399, 0, 0, 0, 0, 0, 0, 4208, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1380, 528, 528, 528, 528, 528, 528, 371, 379, 407, 0, 0, 0, 371, 0, 0, 354, 0, 0, 0, 371, 0, 410, 412, 0, 371, 399, 0, 0, 371, 379, 0, 139264, 147456, 399, 410, 0, 0, 410, 0, 0, 0, 433, 131072, 0, 433, 433, 443, 0, 0, 433, 0, 412, 433, 0, 0, 0, 0, 131072, 0, 0, 0, 438, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 2796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 450560, 450560, 0, 0, 0, 465, 0, 0, 0, 493, 493, 493, 493, 493, 493, 493, 493, 493, 493, 515, 515, 515, 515, 515, 527, 515, 515, 515, 527, 515, 515, 515, 515, 515, 515, 544, 57910, 544, 57910, 544, 544, 57910, 544, 544, 57933, 57910, 544, 544, 57910, 57910, 57910, 57910, 57960, 57960, 57910, 57910, 57910, 57910, 57960, 57960, 57910, 624, 57910, 57975, 57933, 57910, 57910, 57910, 57910, 57910, 57910, 57910, 57933, 57933, 57910, 57910, 57960, 57910, 57910, 57910, 57975, 57975, 1, 24578, 3, 155942, 155942, 296, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 131072, 0, 0, 0, 441, 342, 0, 0, 0, 453, 0, 342, 343, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2853, 0, 0, 0, 306, 307, 0, 0, 0, 643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3687, 0, 0, 0, 0, 0, 0, 669, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3428, 845, 528, 528, 528, 528, 528, 528, 876, 878, 528, 528, 528, 528, 528, 528, 528, 1415, 528, 528, 528, 528, 528, 528, 1426, 528, 528, 528, 528, 528, 57893, 57893, 58264, 57893, 57893, 57893, 57893, 57893, 57893, 58295, 58297, 57893, 57893, 57893, 57893, 58803, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59384, 57893, 57893, 57893, 57893, 58448, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 2290, 1725, 2291, 0, 0, 0, 0, 0, 1309, 1335, 1336, 0, 1309, 528, 528, 528, 528, 528, 528, 1344, 528, 528, 528, 528, 528, 3706, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1974, 528, 528, 528, 528, 528, 528, 1348, 528, 528, 1359, 528, 528, 1363, 528, 528, 528, 528, 528, 528, 528, 1416, 528, 528, 528, 528, 528, 528, 528, 528, 3709, 528, 528, 528, 528, 528, 528, 528, 58773, 914, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58783, 57893, 57893, 57893, 58787, 57893, 57893, 57893, 57893, 57893, 60623, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58845, 57893, 57893, 57893, 57893, 57893, 58798, 57893, 57893, 58802, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60638, 57893, 57893, 57893, 57893, 57916, 58916, 57916, 57916, 57916, 58920, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59469, 57916, 57916, 57916, 57916, 57916, 58972, 57943, 57943, 57943, 58976, 57943, 57943, 58987, 57943, 57943, 58991, 57943, 57943, 57943, 57943, 57943, 57943, 60076, 60077, 57943, 57943, 57943, 57943, 57943, 57943, 60084, 57943, 59014, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59604, 1745, 1746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 507904, 0, 0, 0, 0, 1778, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1828, 0, 0, 0, 1791, 0, 1793, 0, 0, 0, 1797, 0, 0, 0, 1801, 0, 0, 0, 1805, 0, 0, 0, 0, 131072, 0, 0, 0, 442, 0, 0, 0, 449, 0, 0, 0, 0, 0, 2846, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1224, 0, 0, 0, 0, 0, 1980, 528, 528, 528, 58773, 0, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60625, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57943, 57943, 57943, 57943, 59545, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60068, 57943, 57943, 57943, 0, 0, 2314, 0, 2315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262738, 0, 0, 0, 0, 2377, 0, 0, 0, 0, 0, 0, 2384, 0, 0, 0, 0, 0, 0, 0, 0, 1326, 1327, 0, 0, 1167, 0, 0, 0, 0, 528, 528, 2421, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 888, 528, 528, 528, 528, 528, 528, 528, 2489, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 0, 0, 57893, 57893, 57893, 57893, 60611, 57893, 57893, 57893, 57893, 57893, 57893, 59868, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58330, 0, 57916, 57916, 57916, 57916, 58347, 0, 0, 0, 57893, 57893, 59851, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60901, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60113, 0, 0, 1729, 0, 0, 1736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139264, 147456, 0, 0, 0, 0, 0, 0, 0, 2858, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2864, 0, 0, 0, 0, 0, 3152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3158, 57893, 57893, 57893, 57893, 60311, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60890, 57893, 60892, 57893, 57893, 60323, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60295, 60443, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60455, 57943, 57943, 57943, 57943, 57943, 59593, 57943, 57943, 59596, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59551, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59565, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59580, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59614, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60037, 57943, 57943, 60041, 57943, 57943, 57943, 60045, 0, 0, 3190, 0, 0, 0, 0, 3195, 0, 0, 0, 0, 0, 0, 0, 0, 1783, 1784, 1785, 0, 0, 0, 0, 0, 3250, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2472, 57893, 57893, 60642, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61385, 57893, 57916, 57916, 57916, 0, 3468, 3469, 0, 0, 0, 0, 3474, 0, 0, 0, 0, 0, 0, 0, 0, 1799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3681, 0, 0, 0, 3684, 0, 0, 0, 0, 0, 0, 0, 0, 3692, 57893, 61092, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 0, 0, 0, 0, 4290, 528, 3813, 57893, 57893, 61159, 3816, 0, 0, 0, 0, 3820, 0, 0, 0, 0, 0, 0, 1236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2799, 0, 0, 0, 0, 0, 0, 0, 3833, 0, 0, 0, 0, 3837, 0, 0, 0, 0, 0, 0, 0, 0, 3840, 0, 528, 528, 528, 3842, 528, 528, 528, 3845, 528, 528, 528, 528, 528, 528, 528, 1938, 528, 528, 528, 528, 528, 528, 528, 528, 3235, 528, 528, 3238, 528, 528, 528, 528, 57893, 57893, 57893, 61207, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61084, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61226, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60407, 57916, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61302, 57893, 61304, 57893, 57893, 57893, 57893, 58819, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59913, 57893, 57893, 57893, 57893, 57916, 61320, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 4268, 0, 57943, 57943, 61334, 57943, 61336, 57943, 57943, 57943, 57943, 57943, 57943, 528, 57893, 0, 0, 0, 0, 0, 3164, 0, 0, 0, 0, 3169, 0, 0, 0, 0, 0, 0, 1220, 0, 0, 0, 0, 0, 1226, 0, 1228, 0, 4146, 0, 0, 0, 0, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 4160, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61516, 57893, 57893, 57893, 0, 2591, 0, 0, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59996, 57916, 57916, 57916, 57916, 57916, 57916, 528, 528, 57893, 57893, 61560, 57893, 61561, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 0, 0, 0, 0, 57893, 57943, 57943, 58414, 58420, 57943, 57943, 57943, 58436, 58440, 57943, 57943, 57943, 57943, 57943, 61411, 57943, 61413, 61414, 57943, 61416, 57943, 61418, 0, 0, 0, 0, 0, 1849, 0, 0, 0, 0, 0, 0, 1748, 0, 0, 0, 0, 0, 1864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2401, 0, 0, 0, 0, 0, 57916, 61568, 57916, 61569, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 61576, 57943, 57943, 57943, 57943, 57943, 61539, 57943, 61541, 57943, 57943, 57943, 57943, 0, 0, 0, 0, 0, 0, 3435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1273, 0, 0, 0, 0, 0, 0, 61577, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 0, 0, 0, 0, 0, 0, 528, 528, 528, 2871, 2872, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3237, 528, 528, 528, 528, 528, 358, 359, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 368, 0, 296, 0, 0, 0, 0, 131072, 0, 352256, 352256, 0, 0, 0, 352256, 0, 0, 352256, 0, 352256, 352256, 352256, 352256, 352256, 352256, 352256, 352256, 352256, 352256, 352256, 352256, 352256, 352256, 352256, 352256, 0, 482, 482, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 516, 516, 520, 520, 520, 520, 520, 516, 520, 520, 520, 516, 520, 520, 520, 520, 520, 520, 545, 57911, 545, 57911, 545, 545, 57911, 545, 545, 57934, 57911, 545, 545, 57911, 57911, 57911, 57911, 57961, 57961, 57911, 57911, 57911, 57911, 57961, 57961, 57911, 625, 57911, 57976, 57934, 57911, 57911, 57911, 57911, 57911, 57911, 57911, 57934, 57934, 57911, 57911, 57961, 57911, 57911, 57911, 57976, 57976, 1, 24578, 3, 155942, 155942, 296, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 245760, 0, 0, 245760, 0, 0, 245760, 0, 0, 245760, 0, 245760, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 516567, 516567, 516567, 0, 306, 307, 0, 0, 0, 0, 644, 0, 0, 0, 0, 0, 0, 0, 0, 1837, 0, 0, 0, 0, 0, 0, 0, 0, 0, 687, 688, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 368, 368, 0, 0, 0, 760, 0, 0, 0, 0, 765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4841472, 0, 0, 0, 4898816, 0, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 803, 0, 808, 0, 0, 0, 0, 392, 0, 0, 0, 396, 392, 0, 0, 0, 0, 0, 0, 0, 2823, 0, 0, 0, 0, 0, 0, 0, 0, 677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 820, 0, 0, 0, 0, 0, 644, 0, 0, 0, 0, 0, 0, 0, 3436, 0, 0, 0, 0, 0, 0, 0, 0, 681, 0, 0, 0, 0, 0, 0, 680, 0, 0, 794, 0, 0, 0, 0, 0, 0, 0, 0, 644, 0, 0, 794, 528, 528, 528, 528, 528, 3717, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1381, 528, 528, 528, 528, 528, 846, 528, 528, 528, 528, 867, 871, 877, 528, 882, 528, 528, 528, 528, 528, 900, 528, 528, 528, 528, 57893, 57893, 58265, 57893, 57893, 57893, 57893, 58286, 58290, 58296, 57893, 58301, 57916, 57916, 58362, 58366, 58372, 57916, 58377, 57916, 57916, 57916, 57916, 57916, 58395, 57916, 57916, 57916, 57916, 57916, 61231, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60686, 57916, 57916, 57916, 57916, 57916, 57943, 58452, 57943, 57943, 57943, 57943, 57943, 58470, 57943, 57943, 57943, 57943, 528, 528, 528, 900, 1215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3441, 1264, 0, 0, 0, 0, 0, 1269, 0, 0, 0, 0, 0, 1274, 0, 0, 0, 0, 0, 3179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 679, 0, 0, 0, 0, 0, 0, 1294, 0, 0, 1165, 0, 0, 0, 1300, 0, 1302, 0, 0, 0, 0, 0, 0, 1284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1301, 0, 0, 0, 0, 0, 0, 0, 1300, 1319, 0, 1322, 0, 0, 0, 1196, 0, 0, 0, 0, 1330, 0, 0, 1215, 1330, 1337, 528, 528, 528, 528, 1343, 528, 528, 528, 528, 1349, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1370, 528, 528, 0, 57893, 57893, 57893, 57893, 57893, 57893, 155942, 0, 0, 0, 0, 0, 0, 0, 1285, 0, 0, 0, 0, 1290, 0, 0, 0, 58773, 914, 58775, 57893, 57893, 57893, 57893, 57893, 58782, 57893, 57893, 57893, 57893, 58788, 57893, 57893, 57893, 57893, 57893, 60872, 57893, 57893, 57893, 57893, 57893, 60876, 57893, 57893, 57893, 57893, 57893, 58860, 57893, 57893, 57893, 57893, 57893, 50676, 58773, 990, 57916, 57916, 57916, 58917, 57916, 57916, 57916, 57916, 58922, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60403, 57916, 57916, 57916, 60406, 57916, 57916, 58930, 57916, 57916, 57916, 58937, 58939, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59957, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 58977, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 58998, 57943, 59016, 57943, 57943, 57943, 57943, 57943, 59021, 57943, 57943, 57943, 59025, 57943, 57943, 57943, 59032, 59034, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59622, 57943, 59057, 528, 528, 528, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 1151, 0, 0, 0, 0, 385024, 0, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 5259264, 4358144, 4358144, 4358144, 4358144, 0, 0, 1729, 0, 0, 0, 0, 1736, 0, 0, 0, 0, 0, 0, 0, 0, 1880, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1747, 1748, 0, 0, 0, 0, 0, 1754, 0, 0, 0, 0, 0, 0, 0, 3447, 0, 0, 0, 0, 0, 3450, 0, 3452, 0, 1776, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5177344, 0, 0, 0, 0, 0, 1794, 0, 0, 0, 0, 0, 0, 0, 1802, 1803, 0, 0, 0, 0, 0, 3207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3183, 0, 0, 0, 0, 0, 0, 0, 0, 1810, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1841, 0, 1843, 0, 0, 0, 1874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3213, 0, 0, 528, 528, 528, 1901, 528, 528, 528, 528, 1907, 528, 528, 528, 528, 528, 528, 528, 2441, 528, 528, 528, 528, 528, 528, 528, 528, 3720, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1918, 528, 528, 528, 528, 1922, 528, 528, 528, 528, 528, 528, 528, 2466, 2467, 528, 528, 528, 528, 528, 528, 528, 1417, 528, 528, 528, 528, 528, 528, 528, 528, 3856, 528, 528, 528, 57893, 57893, 57893, 57893, 528, 528, 528, 528, 1968, 1969, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1924, 1925, 528, 528, 528, 528, 57893, 57893, 59344, 57893, 57893, 57893, 57893, 59350, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61212, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59361, 57893, 57893, 57893, 57893, 59365, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59883, 57893, 57893, 57893, 59886, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59378, 57893, 57893, 57893, 59383, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59909, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59915, 57893, 57893, 57893, 59412, 59413, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59921, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59351, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 59444, 57916, 57916, 57916, 57916, 59450, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60685, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59461, 57916, 57916, 57916, 57916, 59465, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60943, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59478, 57916, 57916, 57916, 59483, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60021, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60029, 57916, 57916, 59512, 59513, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59470, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 59546, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59557, 57943, 57943, 57943, 57943, 59561, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60082, 57943, 57943, 57943, 57943, 59574, 57943, 57943, 57943, 59579, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60735, 57943, 57943, 57943, 57943, 57943, 59608, 59609, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60095, 57943, 57943, 2302, 2303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5767168, 0, 2339, 0, 0, 2341, 2342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 335872, 0, 0, 0, 0, 528, 2434, 528, 528, 2438, 528, 528, 528, 2442, 528, 528, 528, 528, 528, 528, 528, 2912, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3857, 528, 528, 57893, 57893, 57893, 57893, 528, 528, 528, 528, 2452, 528, 528, 528, 2455, 528, 528, 528, 528, 528, 528, 528, 2925, 528, 528, 528, 2928, 528, 528, 528, 528, 528, 2487, 528, 528, 528, 528, 528, 2492, 528, 528, 528, 528, 528, 528, 528, 0, 0, 57893, 57893, 57893, 60610, 57893, 57893, 57893, 57893, 57893, 60615, 57893, 0, 2503, 0, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60288, 57893, 57893, 60291, 60292, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59865, 57893, 57893, 59869, 57893, 57893, 57893, 59873, 57893, 57893, 57893, 57893, 57893, 60312, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60320, 57893, 57893, 59916, 57893, 57893, 57893, 57893, 59920, 57893, 57893, 57893, 57893, 57893, 59925, 57893, 57893, 57893, 57893, 57893, 60328, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58867, 50676, 58773, 990, 58870, 57916, 57916, 57916, 57916, 57916, 60005, 57916, 57916, 57916, 57916, 60009, 57916, 57916, 57916, 57916, 57916, 60014, 57943, 57943, 57943, 57943, 60088, 57943, 57943, 57943, 57943, 60092, 57943, 57943, 57943, 57943, 57943, 60097, 2856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2863, 0, 0, 0, 0, 0, 0, 212992, 0, 0, 0, 0, 0, 212992, 212992, 212992, 212992, 2893, 528, 528, 528, 528, 2896, 528, 528, 2898, 528, 2899, 528, 528, 528, 528, 528, 1356, 528, 1361, 528, 528, 1365, 528, 528, 1368, 528, 528, 528, 528, 528, 2907, 528, 528, 2911, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2494, 528, 528, 2497, 2498, 528, 0, 2920, 528, 528, 528, 2923, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3506, 3507, 528, 528, 57893, 60308, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60317, 57893, 57893, 60321, 57893, 57893, 57893, 57893, 58835, 57893, 57893, 57893, 58842, 58844, 57893, 57893, 57893, 57893, 57893, 57893, 59381, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60902, 57893, 57893, 60905, 57893, 57893, 57893, 0, 57916, 57916, 60346, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60354, 60369, 57916, 57916, 57916, 57916, 60372, 57916, 57916, 60374, 57916, 60375, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 4288, 0, 0, 0, 528, 57916, 57916, 57916, 57916, 60384, 57916, 57916, 60388, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60402, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59995, 57916, 57916, 57916, 57916, 60000, 57916, 57916, 57916, 60397, 57916, 57916, 57916, 60400, 60401, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60683, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59452, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 60419, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60469, 57943, 57943, 57943, 57943, 57943, 60434, 57943, 57943, 57943, 57943, 60437, 57943, 57943, 60439, 57943, 60440, 57943, 57943, 57943, 57943, 57943, 60422, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61155, 57943, 57943, 57943, 528, 57943, 57943, 57943, 57943, 60462, 57943, 57943, 57943, 60465, 60466, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60752, 57943, 57943, 528, 528, 528, 57893, 57893, 57893, 0, 0, 0, 0, 0, 3658, 0, 0, 3228, 528, 528, 528, 528, 3233, 528, 528, 528, 3236, 528, 528, 528, 528, 528, 528, 3255, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2482, 528, 528, 528, 528, 528, 3261, 528, 528, 0, 0, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60616, 57893, 60619, 57893, 57893, 57893, 57893, 60624, 57893, 57893, 57893, 60627, 57893, 57893, 57893, 57893, 57893, 58805, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 57916, 57916, 57916, 61460, 57916, 57893, 57893, 57893, 60654, 57893, 57893, 0, 0, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60692, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59499, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60665, 57916, 60668, 57916, 57916, 57916, 57916, 60673, 57916, 57916, 57916, 60676, 57916, 57916, 57916, 57916, 58935, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58887, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 60714, 57943, 60717, 57943, 57943, 57943, 57943, 60722, 57943, 57943, 57943, 60725, 57943, 57943, 57943, 57943, 57943, 61580, 61581, 57943, 57943, 0, 0, 0, 0, 4242, 0, 528, 528, 528, 528, 528, 528, 528, 528, 2427, 528, 528, 528, 528, 2431, 528, 0, 3454, 0, 3455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1883, 0, 0, 0, 528, 528, 528, 3485, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1384, 528, 528, 528, 528, 528, 3497, 528, 528, 528, 528, 528, 528, 528, 528, 3505, 528, 528, 528, 528, 528, 2453, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1382, 528, 528, 528, 1386, 528, 57893, 57893, 60869, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60637, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60314, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60341, 57893, 57893, 57893, 0, 2999, 0, 0, 0, 57893, 60881, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60889, 57893, 57893, 57893, 57893, 57893, 58820, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58829, 57893, 57893, 57916, 57916, 57916, 60911, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59503, 57916, 57916, 57916, 57916, 57916, 60923, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60931, 57916, 57916, 57916, 57916, 57916, 59481, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58911, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 60953, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60094, 57943, 57943, 57943, 57943, 57943, 57943, 60965, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60973, 57943, 57943, 57943, 57943, 57943, 60050, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60745, 57943, 57943, 57943, 0, 3680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3439, 0, 0, 0, 0, 0, 3693, 3694, 0, 0, 0, 0, 528, 528, 528, 528, 528, 528, 528, 2875, 528, 528, 528, 528, 528, 528, 528, 528, 3704, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3494, 528, 528, 3714, 528, 528, 528, 528, 528, 3719, 528, 3721, 528, 528, 528, 528, 528, 528, 3488, 528, 528, 528, 528, 528, 3492, 528, 528, 528, 61091, 57893, 61093, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61131, 61132, 57943, 57943, 57916, 57916, 57916, 57916, 61104, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61110, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61114, 57916, 57916, 57916, 57916, 57916, 57916, 61120, 57916, 61122, 57916, 57916, 57916, 57916, 57916, 61324, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60970, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61149, 57943, 61151, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 528, 2761, 528, 528, 528, 57893, 60110, 57893, 57893, 528, 528, 57893, 57893, 57893, 0, 0, 0, 3818, 0, 0, 0, 0, 0, 0, 0, 722, 0, 724, 0, 0, 0, 0, 0, 0, 0, 0, 3823, 0, 0, 0, 0, 0, 0, 0, 3675, 0, 0, 0, 0, 3831, 0, 528, 528, 528, 528, 528, 3843, 528, 528, 528, 3847, 528, 528, 528, 528, 528, 1357, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1422, 528, 528, 528, 528, 57893, 61205, 57893, 57893, 57893, 61209, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60886, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59896, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61218, 57893, 57893, 57893, 57893, 57916, 57916, 57916, 57916, 57916, 61224, 57916, 0, 0, 0, 0, 57893, 57943, 57943, 58415, 57943, 57943, 57943, 57943, 57943, 57943, 58446, 57916, 57916, 61228, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60697, 57916, 57916, 57916, 61237, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 57943, 61243, 57943, 57943, 57943, 61247, 528, 4162, 57893, 57893, 57893, 61510, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61518, 57893, 57893, 57893, 57893, 58858, 57893, 57893, 57893, 57893, 57893, 57893, 50676, 58773, 990, 57916, 57916, 57916, 57916, 58903, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 58913, 57916, 57916, 57916, 57916, 61523, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61531, 57916, 57943, 57943, 57943, 57943, 57943, 60955, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59581, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61536, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 61544, 57943, 0, 0, 0, 0, 0, 0, 262144, 262144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4203, 4204, 4205, 0, 4207, 528, 528, 528, 528, 528, 528, 528, 528, 528, 4213, 4214, 528, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61564, 61565, 57893, 57893, 57916, 0, 0, 0, 0, 57893, 57943, 57943, 58416, 57943, 57943, 57943, 57943, 58437, 58441, 58447, 528, 528, 528, 57893, 57893, 57893, 57893, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 4298, 0, 528, 4299, 57893, 61644, 57916, 61645, 57943, 61646, 0, 528, 57893, 57916, 57943, 0, 528, 528, 528, 528, 528, 528, 2425, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3246, 528, 528, 528, 528, 528, 528, 0, 0, 0, 361, 362, 0, 0, 0, 0, 0, 0, 0, 368, 0, 296, 0, 0, 0, 0, 393685, 0, 393685, 393685, 393685, 0, 393685, 393685, 393685, 393685, 393685, 393685, 0, 1, 24578, 3, 0, 0, 4366336, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 1731, 0, 0, 0, 0, 0, 0, 0, 1741, 1742, 0, 0, 0, 0, 0, 278528, 278528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 416, 0, 0, 0, 0, 0, 426, 426, 0, 0, 131072, 426, 0, 0, 0, 0, 426, 0, 0, 454, 0, 426, 0, 483, 483, 483, 0, 0, 362, 362, 362, 502, 362, 362, 362, 362, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, 546, 57912, 546, 57912, 546, 546, 57912, 546, 546, 57935, 57912, 546, 546, 57912, 57912, 57912, 57912, 57962, 57962, 57912, 57912, 57912, 57912, 57962, 57962, 57912, 546, 57912, 57912, 57935, 57912, 57912, 57912, 57912, 57912, 57912, 57912, 57935, 57935, 57912, 57912, 57962, 57912, 57912, 57912, 1, 24578, 3, 155942, 155942, 296, 0, 0, 0, 0, 0, 302, 303, 0, 368, 368, 0, 703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2298, 0, 0, 0, 905, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58287, 57893, 57893, 57893, 57893, 57893, 60340, 57893, 57893, 57893, 57893, 57893, 0, 2999, 0, 0, 0, 57893, 58306, 57893, 57893, 57893, 57893, 58324, 57893, 57893, 57893, 0, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 61129, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60741, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60753, 57943, 528, 528, 528, 57893, 57893, 57893, 57916, 57916, 58363, 57916, 57916, 57916, 57916, 57916, 58382, 57916, 57916, 57916, 57916, 58400, 57916, 57916, 57916, 57916, 58936, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60392, 57916, 57916, 57916, 57916, 57916, 0, 0, 0, 0, 58306, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 58438, 57943, 57943, 57943, 57943, 57943, 60448, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60427, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 58457, 57943, 57943, 57943, 57943, 58475, 57943, 57943, 57943, 528, 528, 528, 528, 2284, 57893, 57893, 57893, 57893, 59633, 2290, 0, 2291, 0, 0, 905, 528, 0, 57893, 57893, 57893, 57893, 58324, 57893, 155942, 1151, 0, 1152, 0, 0, 1157, 0, 0, 0, 1266, 0, 0, 0, 0, 0, 0, 0, 1266, 0, 0, 0, 0, 0, 0, 450560, 0, 0, 450560, 0, 450560, 450560, 450560, 450560, 450560, 450560, 450560, 450560, 450560, 450560, 450560, 450560, 450560, 450560, 450560, 450560, 1346, 528, 528, 528, 1355, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3711, 528, 528, 528, 58773, 914, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 58785, 57893, 57893, 57893, 58794, 57893, 57893, 58855, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 50676, 58773, 990, 57916, 57916, 57916, 57916, 58938, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61121, 57916, 57916, 57916, 57916, 57943, 57943, 58974, 57943, 57943, 57943, 58983, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59045, 57943, 57943, 57943, 57943, 57943, 57943, 0, 0, 0, 1730, 0, 0, 0, 0, 1737, 0, 0, 0, 0, 0, 0, 0, 739, 0, 0, 0, 0, 0, 0, 0, 0, 1271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1762, 0, 0, 0, 0, 0, 0, 0, 1770, 1771, 0, 0, 0, 0, 0, 3422, 0, 0, 0, 0, 0, 0, 0, 3426, 0, 0, 0, 0, 0, 1834, 0, 0, 0, 0, 0, 0, 0, 1840, 0, 0, 0, 0, 0, 0, 532480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 694, 0, 0, 0, 0, 0, 368, 0, 0, 1846, 0, 1848, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 376832, 0, 376832, 0, 0, 1915, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2499, 528, 1930, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1943, 528, 528, 0, 57893, 57893, 57893, 57893, 57893, 57893, 155942, 1151, 0, 0, 0, 0, 0, 0, 0, 4857856, 4874240, 0, 0, 0, 0, 0, 0, 0, 796, 0, 0, 0, 0, 805, 0, 0, 0, 59373, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59386, 57893, 57893, 57893, 2588, 0, 0, 0, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60352, 57916, 57916, 57916, 57916, 57916, 57893, 57893, 59411, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59422, 57893, 57893, 57893, 57893, 57893, 60884, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60903, 57893, 57893, 57893, 57893, 57893, 57916, 59511, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59522, 57916, 57916, 57916, 57916, 57916, 61395, 57916, 61397, 61398, 57916, 61400, 57916, 61402, 57943, 57943, 57943, 3916, 528, 61261, 57893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2774, 0, 0, 0, 0, 59607, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59618, 57943, 57943, 57943, 57943, 57943, 58978, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 58997, 0, 0, 2326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221652, 221652, 221652, 0, 0, 2504, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61097, 57893, 57893, 57893, 57916, 57916, 57916, 57916, 57916, 528, 3229, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2447, 528, 60618, 57893, 60620, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61211, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59870, 57893, 57893, 57893, 57893, 59875, 57893, 57893, 57916, 57916, 57916, 60667, 57916, 60669, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60404, 57916, 57916, 57916, 57916, 57916, 60698, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 60709, 57943, 57943, 57943, 57943, 57943, 60463, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59599, 57943, 57943, 57943, 59605, 57943, 57943, 57943, 57943, 60716, 57943, 60718, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59046, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60747, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 528, 528, 528, 57893, 57893, 57893, 0, 0, 0, 3656, 0, 0, 0, 0, 0, 0, 0, 3432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2323, 2324, 0, 0, 57943, 57943, 61250, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60724, 57943, 57943, 0, 4147, 0, 0, 0, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 0, 4161, 528, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61517, 57893, 57893, 57893, 57893, 57893, 60898, 60900, 57893, 57893, 57893, 57893, 60904, 57893, 60906, 60907, 57893, 57916, 57916, 57916, 61627, 57916, 57943, 57943, 57943, 57943, 61631, 57943, 0, 0, 0, 0, 528, 528, 2870, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2878, 373, 373, 0, 0, 131072, 373, 0, 0, 0, 0, 373, 0, 0, 0, 0, 373, 547, 57913, 547, 57913, 547, 547, 57913, 547, 547, 57936, 57913, 547, 547, 57913, 57913, 57913, 57913, 57963, 57963, 57913, 57913, 57913, 57913, 57963, 57963, 57913, 547, 57913, 57913, 57936, 57913, 57913, 57913, 57913, 57913, 57913, 57913, 57936, 57936, 57913, 57913, 57963, 57913, 57913, 57913, 1, 24578, 3, 155942, 155942, 296, 0, 0, 0, 0, 0, 302, 303, 0, 528, 528, 528, 528, 861, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 3723, 528, 528, 528, 57916, 58356, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60677, 57916, 57893, 58799, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 61221, 57893, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 60023, 57943, 57943, 57943, 57943, 57943, 57943, 528, 528, 1931, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1401, 528, 528, 57893, 59374, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59882, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60290, 57893, 57893, 57893, 57893, 57893, 57893, 59474, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60920, 57916, 0, 0, 0, 3824, 0, 3825, 0, 0, 0, 0, 3675, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1227, 0, 0, 0, 0, 0, 364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2335, 0, 0, 0, 365, 0, 0, 0, 0, 364, 0, 0, 0, 139264, 147456, 0, 0, 0, 0, 0, 0, 1324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 434, 131072, 0, 434, 434, 0, 0, 0, 434, 0, 365, 434, 0, 0, 0, 0, 401408, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6471680, 0, 0, 0, 466, 0, 0, 0, 494, 494, 497, 497, 497, 497, 503, 504, 497, 497, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 548, 57914, 548, 57914, 548, 548, 57914, 548, 548, 57937, 57914, 548, 548, 57914, 57914, 57914, 57914, 57964, 57964, 57914, 57914, 57914, 57914, 57964, 57964, 57914, 626, 57914, 57977, 57937, 57914, 57914, 57914, 57914, 57914, 57914, 57914, 57937, 57937, 57914, 57914, 57964, 57914, 57914, 57914, 57977, 57977, 1, 24578, 3, 155942, 155942, 296, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 459187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 528, 528, 528, 528, 528, 528, 528, 0, 528, 2420, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1402, 528, 528, 0, 0, 0, 57893, 59850, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60287, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60302, 57893, 57893, 57893, 57893, 60305, 57893, 57893, 60307, 528, 528, 528, 528, 2895, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 4026, 57893, 57893, 57893, 57893, 60337, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 0, 0, 0, 0, 0, 0, 1781, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139264, 147456, 0, 0, 335872, 0, 0, 57916, 57916, 57916, 57916, 60371, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61401, 57916, 57943, 57943, 57943, 368, 368, 0, 0, 0, 0, 705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139264, 147456, 0, 0, 540672, 0, 0, 0, 0, 735, 0, 801, 0, 0, 0, 0, 0, 0, 0, 0, 801, 0, 0, 0, 0, 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3464, 0, 0, 0, 528, 528, 528, 528, 862, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 61203, 57893, 57893, 57893, 57916, 58357, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61111, 57916, 1202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 368, 368, 0, 0, 0, 0, 0, 0, 0, 0, 709, 0, 0, 0, 0, 0, 0, 1251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2810, 0, 0, 0, 0, 0, 0, 58853, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 50676, 58773, 990, 57916, 57916, 57916, 57916, 59463, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60696, 57916, 57916, 57916, 57916, 59015, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 60442, 1726, 0, 0, 0, 0, 1733, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319488, 319488, 0, 0, 0, 0, 0, 57916, 57916, 57916, 59978, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59959, 57916, 57916, 57916, 57943, 57943, 57943, 60061, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59011, 57943, 57943, 57943, 2779, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245760, 528, 528, 2881, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1404, 528, 528, 57916, 57916, 60357, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 60919, 57916, 57916, 0, 306, 307, 0, 0, 0, 0, 0, 0, 0, 647, 0, 0, 0, 0, 0, 0, 1813, 0, 0, 0, 0, 0, 0, 0, 0, 0, 787, 0, 0, 0, 0, 0, 0, 906, 528, 528, 528, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 906, 528, 0, 57893, 58490, 57893, 57893, 58325, 57893, 155942, 1151, 0, 0, 0, 0, 0, 0, 1836, 0, 0, 1838, 0, 0, 0, 0, 0, 0, 0, 2861, 2813, 0, 0, 0, 0, 0, 2866, 0, 57893, 57893, 58856, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 50676, 58773, 990, 57916, 57916, 57916, 57916, 59495, 59496, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61574, 57943, 57943, 57943, 57943, 0, 0, 1862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 327680, 327680, 327680, 528, 528, 1948, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1942, 528, 528, 57893, 59391, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60313, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59922, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59491, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61123, 57916, 57916, 0, 0, 0, 57893, 57893, 57893, 57893, 59853, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60329, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59367, 59368, 57893, 57893, 57893, 57893, 57893, 59877, 57893, 59879, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60636, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60316, 57893, 57893, 57893, 57893, 57893, 57893, 57916, 57916, 57916, 57916, 59966, 57916, 59968, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61117, 57916, 61119, 57916, 57916, 57916, 57916, 57916, 57916, 57943, 57943, 57943, 57943, 60049, 57943, 60051, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59552, 57943, 57943, 57943, 57943, 59556, 57943, 60381, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 61403, 57943, 57943, 57943, 57943, 57943, 60446, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943, 59554, 57943, 57943, 57943, 0, 3418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 352256, 352256, 352256, 57893, 57893, 57893, 57893, 60871, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 60645, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 57893, 59923, 57893, 57893, 57893, 57893, 57893, 57893, 3713, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 2500, 57916, 57916, 61113, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 57916, 59973, 57916, 57916, 57916, 0, 0, 0, 2310144, 0, 0, 0, 0, 0, 0, 2310144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2310144, 0, 0, 2310144, 0, 0, 0, 0, 0, 0, 0, 2310144, 2310144, 0, 0, 0, 0, 0, 0, 0, 0, 2310144, 0, 0, 0, 2310144, 0, 0, 0, 0, 0, 2310144, 0, 2310144, 0, 0, 0, 0, 0, 0, 2310144, 2310561, 2310561, 0, 2310144, 0, 0, 2310144, 0, 0, 2310144, 0, 2310144, 2310144, 0, 2310144, 0, 2310144, 2310144, 0, 0, 0, 0, 0, 0, 2310561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2359296, 368, 0, 0, 0, 0, 2310144, 0, 0, 2310740, 2310740, 2310740, 2310740, 2310740, 2310740, 2310740, 2310740, 2310740, 2310740, 2310740, 2310740, 2310740, 2310144, 2310740, 2310144, 2310144, 2310740, 1, 24578, 3, 0, 0, 4366336, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 459347, 459347, 459347, 459347, 459347, 459347, 459347, 459347, 459347, 459347, 459347, 459347, 459347, 459222, 459379, 459222, 2318336, 0, 0, 0, 4268032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4276224, 0, 0, 0, 0, 4358144, 4358144, 4358144, 4358144, 0, 914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4956160, 4964352, 0, 0, 0, 0, 0, 467, 2335204, 2335204, 2335204, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 2335238, 2335238, 1, 24578, 3, 0, 0, 4366336, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 467, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2335238, 2335204, 2335238, 2335238, 2335238, 2335238, 2335238, 2335238, 2335238, 2335238, 2335238, 2335238, 2335238, 2335238, 2335238, 2335238, 2335238, 2335238, 0, 0, 0, 2342912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2348, 0, 0, 0, 0, 0, 0, 2326528, 0, 0, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 4358144, 5177344, 4358144, 4358144, 4358144, 4358144, 0, 0, 0, 2359296, 0, 2359296, 0, 0, 0, 2359296, 0, 2359296, 2359296, 2359296, 2359296, 2359296, 2359296, 2359296, 2359296, 2359296, 2359296, 2359296, 2359296, 2359296, 2359296, 2359296, 2359296, 2359296, 2359296, 1, 24578, 3, 0, 0, 4366336, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 573440, 0, 573440, 573440, 573440, 0, 573440, 573440, 573440, 573440, 573440, 573440, 1, 24578, 3, 0, 0, 4366336, 0, 0, 0, 0, 0, 302, 303, 0, 0, 2367488, 0, 0, 4268032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4931584, 0, 0, 0, 0, 0, 0, 2351104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 507904, 507904, 507904, 0, 913, 0, 0, 0, 0, 0, 4857856, 4874240, 0, 0, 0, 0, 0, 0, 0, 1180, 0, 0, 0, 0, 1184, 0, 0, 1187, 0, 6275072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 989, 0, 0, 0, 0, 913, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 4359057, 5260177, 4359057, 4359057, 0, 0, 1, 24578, 3, 155942, 155942, 296, 0, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 573440, 573440, 573440, 573440, 573440, 573440, 573440, 573440, 573440, 573440, 573440, 573440, 573440, 573440, 573440, 573440, 212992, 0, 212992, 212992, 212992, 212992, 212992, 212992, 212992, 212992, 212992, 212992, 212992, 212992, 212992, 212992, 212992, 212992, 212992, 212992, 0, 0, 0, 0, 0, 4366336, 0, 0, 0, 0, 0, 0, 0, 0, 2412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6275072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6258688, 6447104, 0, 0, 6127616, 0, 6348800, 5906432, 0, 5537792, 0, 4882432, 0, 0, 0, 0, 0, 0, 4825088, 0, 0, 5177344, 0, 0, 0, 0, 5701632, 0, 0, 0, 0, 0, 4358144, 4358144, 4358144, 4825088, 4358144, 4358144, 4358144, 4358144, 0, 0, 913, 913, 913, 4826001, 913, 913, 913, 913, 913, 913, 0, 0, 989, 989, 4842461, 989, 989, 989, 4899805, 989, 0, 0, 5513216, 5783552, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4358144, 4358144, 4358144, 4358144, 4358144, 4857856, 4874240\n];\n\nJSONiqParser.EXPECTED =\n[ 169, 185, 215, 1326, 231, 1001, 278, 928, 942, 1085, 320, 247, 263, 307, 336, 352, 368, 384, 400, 914, 2264, 430, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2268, 1707, 1603, 1403, 460, 1356, 1591, 491, 507, 517, 533, 1816, 1031, 2119, 564, 475, 580, 596, 625, 684, 700, 1905, 716, 1114, 747, 778, 788, 1693, 1145, 762, 804, 820, 836, 852, 868, 884, 900, 958, 988, 1017, 972, 1997, 1047, 1057, 1073, 1101, 1130, 2028, 1562, 1190, 1205, 1221, 1237, 1253, 1269, 1298, 1314, 1342, 1174, 1446, 1372, 1876, 2073, 1633, 668, 1388, 1419, 1434, 1467, 1483, 1499, 1515, 609, 1531, 1547, 1578, 444, 654, 640, 1619, 1649, 1662, 1678, 1723, 1738, 1754, 1770, 1786, 1802, 1832, 1848, 291, 1864, 2228, 1892, 1921, 1937, 199, 2149, 1953, 1969, 1985, 1282, 2013, 2044, 2060, 2089, 2105, 548, 2135, 2165, 2181, 2197, 2213, 1160, 2244, 731, 2260, 2264, 1457, 412, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 419, 2284, 2288, 2290, 2290, 2290, 2291, 2295, 2290, 2297, 2301, 2304, 2311, 2307, 2315, 2318, 2322, 2326, 2330, 2334, 2338, 2345, 2345, 3446, 2344, 2345, 3427, 2352, 3605, 2345, 4169, 2345, 2345, 2345, 3950, 4664, 4990, 4059, 4582, 2828, 4588, 2345, 4069, 4598, 2345, 4069, 4603, 2734, 3100, 2397, 2497, 2359, 2366, 2466, 2372, 2376, 2345, 2345, 4266, 2345, 2345, 2383, 3820, 2359, 2359, 2392, 2419, 2419, 2419, 2419, 2405, 2427, 2345, 2345, 2345, 2345, 2345, 2409, 2455, 3819, 2345, 2345, 3099, 3100, 3100, 3100, 2495, 2398, 2398, 2398, 2504, 2359, 2359, 2359, 2482, 2419, 2419, 2419, 2517, 2345, 2345, 2345, 2457, 2345, 3100, 3100, 3101, 2398, 2398, 2398, 2359, 2359, 2359, 2359, 2359, 2418, 2419, 2419, 2419, 2419, 2419, 2424, 2437, 2345, 2345, 2345, 2345, 4505, 2729, 2345, 2345, 2345, 2345, 4509, 5101, 4513, 2345, 2345, 3904, 2359, 2359, 2484, 2419, 2419, 2519, 2345, 3864, 2345, 4865, 3100, 3100, 2501, 2398, 2538, 2359, 2359, 2359, 2359, 2359, 2548, 2419, 2419, 2419, 2419, 2395, 2490, 2345, 2345, 2359, 2483, 2419, 2549, 2508, 3755, 2345, 4867, 4911, 2398, 2400, 2359, 2515, 2419, 2525, 3605, 3100, 2476, 2401, 2547, 2550, 2816, 4868, 2399, 2481, 2485, 2735, 2532, 2503, 2361, 2368, 4866, 2476, 2360, 2420, 4909, 2537, 2546, 2486, 2533, 2362, 2542, 2554, 2567, 2571, 2575, 2579, 2583, 2586, 2586, 2586, 2598, 2591, 2586, 2587, 2595, 2602, 2606, 2610, 2614, 2618, 2622, 2626, 2630, 4594, 2634, 2345, 2345, 2903, 2640, 2345, 2345, 2999, 2345, 2345, 2645, 2345, 2345, 2345, 2345, 2345, 2345, 4208, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 4460, 2655, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2655, 2345, 2345, 2636, 4128, 2345, 2345, 2345, 2345, 2635, 4127, 2345, 2345, 2345, 2345, 2635, 4127, 2794, 2345, 2345, 2345, 3016, 2798, 2345, 2345, 2345, 3017, 2799, 2345, 2345, 2345, 2806, 2729, 2876, 3308, 2345, 2915, 2345, 3310, 2345, 2922, 2345, 3536, 2683, 4475, 3831, 4927, 2685, 4422, 2850, 2345, 2345, 2345, 2345, 2345, 2345, 5004, 2345, 2345, 2345, 2345, 4417, 3024, 3547, 2854, 5007, 2861, 2345, 2345, 2345, 2345, 4422, 2869, 2345, 2345, 2345, 2345, 2345, 2868, 2729, 2345, 2345, 2345, 2345, 2345, 2873, 2345, 2345, 2345, 4443, 2345, 3549, 3338, 2880, 2345, 2345, 2345, 2345, 2887, 2729, 2345, 2345, 2345, 2883, 2880, 2345, 2345, 4951, 4956, 2345, 2345, 2345, 2345, 4604, 4971, 4982, 2345, 2345, 4805, 4988, 3762, 2345, 3965, 2345, 4436, 4591, 2907, 2345, 3192, 2909, 2345, 4490, 2345, 3191, 2908, 2345, 3491, 4849, 4476, 4920, 4920, 4920, 4849, 2720, 4477, 4477, 4477, 4918, 4922, 2683, 4476, 4863, 4478, 2719, 2684, 2432, 2429, 2431, 2563, 2345, 2345, 2345, 2345, 2345, 2345, 2984, 2345, 2345, 2345, 2511, 4068, 4075, 2345, 2345, 4081, 2345, 4085, 2345, 2345, 4099, 2345, 3067, 3768, 2729, 4088, 2928, 3046, 2947, 2932, 2935, 2938, 2940, 2940, 2944, 2345, 2951, 2956, 2345, 2345, 5022, 2729, 2345, 2345, 2345, 2345, 4180, 2345, 2345, 2345, 2345, 5023, 2345, 4654, 2345, 4496, 2345, 3077, 4168, 3570, 5100, 4176, 2345, 2345, 2345, 5024, 2345, 2345, 4147, 2345, 2345, 4258, 2345, 2345, 2339, 3845, 2345, 3726, 3911, 3122, 3918, 2345, 4757, 2345, 4949, 2345, 2961, 2974, 2978, 3641, 3718, 2988, 2996, 2722, 3003, 3008, 2345, 2998, 4205, 2345, 2952, 2345, 2345, 3697, 2345, 3015, 4630, 3021, 3029, 3033, 2412, 2991, 2723, 3040, 3497, 2345, 2951, 2956, 2345, 5067, 4831, 2345, 3623, 2964, 3050, 4101, 2345, 3156, 3059, 2345, 2345, 5115, 3712, 2387, 4578, 2345, 5120, 2458, 2509, 4221, 2345, 5107, 2345, 3202, 2763, 3060, 2345, 2345, 2345, 3733, 2345, 2951, 2733, 2345, 4755, 4856, 3111, 4236, 2557, 3086, 2345, 2348, 3162, 2345, 2345, 2527, 3154, 2345, 2345, 2347, 3161, 2345, 2345, 4684, 3167, 3432, 4676, 3096, 2345, 2345, 2345, 2345, 2472, 3106, 2345, 2345, 2345, 2345, 2346, 3105, 2345, 2345, 2345, 4878, 3110, 3119, 2345, 5067, 4832, 4234, 3023, 3126, 4109, 3602, 3171, 3176, 2345, 4069, 3180, 2345, 4170, 3176, 2345, 2345, 3187, 2345, 4682, 3217, 4094, 3257, 3196, 3972, 3190, 2345, 3974, 2345, 3251, 3209, 2345, 3973, 2345, 3214, 3218, 3223, 3227, 3231, 4192, 2345, 3229, 2345, 3237, 3606, 3242, 3246, 4319, 3250, 3238, 3230, 3255, 3261, 3266, 3266, 3266, 3274, 3278, 3262, 3262, 3262, 3285, 3289, 4198, 3290, 4959, 3294, 4246, 5038, 3298, 3302, 3306, 3316, 3322, 3329, 2345, 2345, 2345, 2345, 3926, 2345, 2345, 2875, 3333, 3337, 4593, 3342, 3347, 4397, 3357, 3361, 3365, 3366, 3366, 3370, 2345, 4118, 3376, 2345, 4445, 3382, 4945, 3392, 2721, 3398, 2829, 3406, 3410, 3417, 3424, 3004, 3431, 3947, 2345, 3426, 2345, 2345, 3115, 3658, 4038, 4560, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2650, 2345, 2345, 2454, 2345, 2345, 2345, 4867, 3100, 3100, 3100, 3100, 3101, 2398, 2398, 2398, 2398, 2545, 2359, 2359, 2359, 2359, 2359, 2464, 2419, 2419, 2419, 2419, 2419, 2395, 2470, 4119, 2345, 2345, 3437, 3706, 3578, 3394, 4115, 2345, 5085, 3441, 3522, 4170, 3451, 2345, 2345, 3132, 3489, 2345, 2345, 2345, 2345, 3143, 3495, 2345, 2345, 2345, 2345, 4516, 3484, 2345, 4070, 3455, 2345, 2345, 2345, 4071, 3456, 2345, 2345, 2345, 3460, 3464, 2345, 2345, 2345, 3098, 3100, 3100, 3100, 3100, 3100, 2397, 2398, 2398, 2398, 2398, 2398, 2480, 4118, 3830, 2345, 3469, 3584, 3579, 3476, 4935, 4215, 3011, 2345, 2345, 4515, 3483, 2345, 2345, 3191, 2898, 2345, 2345, 2345, 2892, 2345, 2345, 2345, 2897, 2345, 2345, 2345, 3963, 3232, 2345, 2345, 2345, 2345, 3517, 3490, 2345, 2345, 2345, 2345, 4515, 3520, 2345, 2345, 2345, 2345, 3982, 2345, 3526, 3585, 3535, 4117, 2786, 2345, 2345, 3541, 2345, 2345, 2345, 2345, 4530, 3545, 2345, 2345, 2345, 2345, 3541, 2345, 2345, 2345, 2345, 2456, 2345, 2345, 4910, 3100, 3100, 3100, 3100, 2476, 2398, 2398, 2398, 4531, 3232, 2345, 2345, 2345, 3560, 3565, 3576, 4115, 3204, 3583, 2345, 5095, 2345, 2345, 2345, 3163, 3064, 2345, 2345, 2345, 2345, 3219, 3071, 2345, 2345, 2345, 2345, 3157, 5054, 2345, 2345, 2345, 5094, 2345, 2345, 2345, 5053, 2345, 2345, 2345, 3590, 3966, 3561, 2345, 2521, 3137, 2345, 2345, 3754, 2981, 3141, 5078, 4842, 4667, 2967, 3147, 2528, 3155, 2345, 2751, 5076, 2686, 5082, 4996, 5091, 5099, 2345, 2345, 5072, 2345, 2345, 5105, 2345, 2345, 4450, 3818, 2345, 3825, 2345, 2460, 3835, 3839, 2345, 2345, 2345, 4069, 3843, 2345, 4928, 2345, 3443, 2345, 3828, 2345, 4052, 3148, 2345, 2386, 3114, 3150, 4047, 3149, 3635, 3635, 4052, 3113, 3150, 3150, 3150, 3980, 3634, 3112, 3635, 4053, 3622, 3635, 3150, 4974, 4976, 3627, 4978, 3631, 3640, 2345, 2345, 2345, 2345, 4428, 3779, 3723, 2345, 3595, 3645, 3649, 4091, 3655, 3663, 3667, 3671, 3675, 3679, 3680, 3684, 2345, 2801, 3689, 2345, 4841, 3695, 4295, 2763, 3350, 3199, 3691, 5040, 3485, 3701, 4584, 3465, 3705, 4823, 3710, 3716, 2345, 2345, 2802, 3690, 2345, 4616, 4756, 3722, 3731, 3957, 3201, 3737, 3750, 3759, 2345, 3940, 3766, 2345, 2345, 2345, 3312, 4745, 4749, 4761, 4765, 4769, 4773, 4777, 4781, 4785, 4788, 4792, 4795, 3504, 3232, 2345, 2345, 2345, 3505, 2345, 2345, 2345, 2646, 3772, 2345, 2345, 2345, 4427, 3778, 2345, 4164, 4095, 2345, 3785, 4903, 2651, 2345, 3753, 2345, 2345, 3793, 2345, 2345, 2345, 2345, 3098, 3100, 3100, 3100, 3100, 2398, 2398, 2398, 2398, 2478, 2359, 2359, 2345, 3797, 2345, 2345, 2345, 2345, 2345, 3801, 2345, 2345, 2345, 2345, 2345, 3805, 2345, 2345, 3846, 2810, 5004, 2345, 2345, 2345, 2345, 4151, 2345, 2815, 2820, 2833, 4077, 2838, 3850, 2345, 2345, 2345, 2345, 4737, 2345, 3855, 2458, 4716, 3837, 3863, 2345, 2345, 3172, 3871, 3924, 2345, 2340, 2345, 2345, 4149, 2345, 2339, 3845, 3723, 3089, 3789, 2345, 3930, 4129, 2345, 2776, 3914, 4135, 2728, 2345, 2345, 2345, 2345, 3210, 2345, 2784, 3082, 3938, 2345, 2790, 5046, 2345, 3935, 2345, 3944, 2730, 3877, 2345, 3352, 2732, 3955, 2731, 4157, 4157, 4157, 3351, 2732, 2732, 2732, 3531, 4156, 4716, 4157, 4718, 3878, 4157, 2732, 2345, 2345, 2345, 2345, 3851, 2345, 2345, 2345, 2345, 2345, 3850, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 3612, 2663, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 3780, 3961, 2345, 2345, 3920, 3970, 3978, 3986, 3990, 3994, 3998, 4001, 4005, 4007, 4011, 2345, 2345, 2345, 4015, 2345, 3606, 4752, 4107, 3553, 4020, 4024, 4643, 4888, 4028, 2345, 4851, 2811, 4032, 4826, 4037, 4042, 4046, 2345, 2345, 4016, 2345, 3746, 4051, 3551, 3877, 4057, 3636, 4570, 4063, 2345, 2345, 2345, 2780, 2345, 2345, 2345, 2510, 4067, 4105, 2924, 4156, 4113, 2386, 4123, 4538, 2345, 2345, 2635, 4127, 2345, 2345, 2345, 2345, 2641, 4133, 2345, 2345, 2345, 2345, 2778, 4181, 2345, 2457, 2345, 2345, 4984, 5025, 2345, 4139, 2345, 2855, 3611, 2345, 2857, 2345, 2345, 3386, 2345, 2856, 2345, 2345, 3830, 3616, 2345, 3445, 2345, 4145, 2345, 4670, 3724, 4155, 3572, 3114, 4161, 2345, 2345, 2345, 3472, 2729, 2345, 2345, 2345, 2345, 2842, 2345, 2345, 2345, 2345, 3081, 2846, 2345, 2345, 2345, 2345, 2345, 2739, 2692, 3821, 2749, 2757, 2345, 2761, 2767, 2345, 2771, 4802, 2345, 4185, 3077, 3725, 4231, 3041, 4220, 2345, 5087, 2729, 2345, 2345, 2911, 4134, 2345, 2345, 4172, 2345, 2345, 2345, 2354, 3845, 2345, 3723, 3606, 2458, 3787, 3901, 2345, 3781, 3537, 4190, 2345, 2345, 2910, 4196, 3378, 3685, 3607, 4673, 4202, 2823, 2345, 4033, 2729, 2345, 3931, 2956, 2345, 3925, 4214, 4219, 4225, 4240, 4244, 4264, 2345, 4250, 2345, 4252, 2345, 2345, 4256, 2345, 4251, 3343, 4538, 4228, 4262, 2345, 4270, 3353, 2345, 4610, 2345, 3183, 3130, 2345, 2345, 2345, 2346, 3136, 2345, 2345, 2345, 2345, 3183, 3130, 2345, 2345, 2673, 2345, 2345, 2677, 3814, 2690, 2696, 2700, 2704, 2708, 2712, 2716, 3744, 2727, 4275, 4284, 4288, 4419, 2668, 3659, 2733, 4292, 4308, 4420, 3556, 3556, 3556, 4317, 3530, 4421, 4335, 4323, 3555, 3529, 3568, 3025, 2669, 3556, 4330, 4339, 4341, 4333, 4326, 4345, 4349, 4351, 2345, 2345, 2345, 2345, 3897, 2992, 2345, 4313, 4355, 4359, 4390, 4363, 4367, 4371, 4375, 4379, 4381, 4383, 2345, 2345, 2345, 4937, 4387, 4657, 4394, 4401, 4460, 2827, 4636, 4599, 4278, 4407, 4411, 5122, 3727, 4426, 4432, 2345, 4440, 4449, 2345, 2345, 4938, 3774, 2657, 4454, 4458, 3325, 2345, 3053, 4464, 4468, 2345, 2345, 2345, 5128, 4474, 2345, 2345, 2345, 4482, 2345, 2345, 4271, 2888, 2345, 2345, 2345, 2345, 3233, 2345, 2345, 2345, 4962, 2864, 3650, 2893, 2345, 3727, 4483, 2345, 2345, 2345, 3055, 4487, 4494, 2345, 2345, 3890, 4311, 2433, 2446, 3618, 2826, 4186, 5066, 4947, 2733, 2345, 2345, 2345, 3413, 4500, 2345, 2345, 2345, 2345, 3420, 2800, 4414, 4622, 4520, 3318, 2345, 2970, 5060, 2345, 2345, 2345, 2377, 4524, 2345, 2345, 2345, 2345, 3869, 2345, 2345, 2345, 2345, 4171, 3876, 2345, 2345, 2345, 4069, 3870, 2345, 4952, 4311, 2443, 4535, 2827, 3865, 3433, 2345, 2345, 2345, 2379, 4543, 2345, 2345, 2345, 3858, 2345, 2345, 2345, 2345, 3859, 2345, 2345, 2345, 2957, 3045, 2345, 2345, 2377, 4548, 2345, 2345, 2345, 2345, 3281, 4553, 2345, 2345, 2345, 2378, 4549, 4470, 2345, 4558, 2440, 4564, 3203, 4831, 2345, 2345, 2377, 4568, 2345, 2345, 2345, 3951, 2345, 2345, 2345, 4574, 2345, 4640, 2345, 4069, 4647, 2560, 4651, 4661, 2345, 4680, 4539, 4642, 5031, 2345, 5014, 4688, 4830, 4815, 4403, 3883, 4642, 4692, 4628, 4816, 4696, 4696, 4702, 4830, 4706, 4714, 4714, 4722, 2414, 2449, 3808, 4731, 2414, 4906, 2450, 4735, 4725, 4727, 4741, 4829, 2345, 2345, 2345, 2345, 3925, 2345, 2772, 3501, 4141, 3509, 4115, 4215, 3074, 2345, 2345, 3513, 4799, 2345, 2345, 2345, 2345, 4809, 3015, 4813, 4820, 4967, 2388, 2680, 4210, 4836, 4554, 2345, 3372, 2345, 2345, 3384, 2345, 2345, 3372, 2345, 2345, 2856, 2345, 2345, 3589, 3594, 3599, 4708, 3872, 4840, 4846, 2345, 4710, 4855, 2345, 2345, 4544, 4860, 2834, 3742, 4965, 3080, 4872, 4877, 4882, 2345, 2345, 2345, 2345, 3606, 4886, 2345, 2345, 2345, 3478, 4892, 2345, 2345, 2345, 3882, 2663, 2459, 3092, 3887, 2345, 2345, 3894, 2345, 2345, 2345, 2355, 2345, 3479, 2345, 2345, 2345, 2345, 4897, 3616, 2345, 2345, 4544, 4915, 3035, 4280, 2918, 3446, 4873, 4698, 4926, 2345, 2345, 2345, 2345, 2345, 4932, 2345, 2345, 2345, 2345, 3606, 4942, 2345, 2345, 4435, 3377, 3907, 2902, 2345, 4489, 2729, 2345, 3651, 2902, 2345, 3192, 2909, 2345, 4994, 5020, 5001, 3205, 5011, 2345, 2345, 2345, 2345, 2741, 2745, 2345, 2345, 2345, 2345, 4170, 4608, 2345, 2345, 4614, 4989, 4620, 4626, 3755, 4950, 2345, 4634, 2345, 5013, 2345, 2744, 2345, 2345, 2345, 2345, 2345, 2743, 2345, 2345, 2345, 2345, 2345, 2743, 4900, 2345, 4501, 4915, 3036, 5018, 3447, 3864, 5029, 2345, 2345, 2345, 4170, 5035, 2345, 2345, 2345, 2345, 4303, 5044, 2345, 2345, 2345, 2345, 5050, 2345, 2345, 2345, 2345, 4304, 4900, 2345, 3811, 3740, 4997, 5058, 5064, 2345, 2345, 2345, 5071, 2345, 2345, 2345, 3269, 2345, 2345, 2345, 4297, 4301, 2345, 3402, 2800, 2345, 2345, 2345, 2345, 3401, 4528, 2345, 2345, 2345, 2345, 3401, 4528, 4470, 4299, 2345, 2345, 3270, 2345, 5111, 4997, 4577, 2345, 2345, 2753, 2345, 4893, 5116, 2345, 2752, 2491, 2458, 2345, 5126, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2661, 3388, 2667, 2345, 7267, 5893, 5132, 5144, 5141, 5151, 5153, 5153, 5153, 5153, 5148, 5176, 5152, 5153, 5153, 5153, 5159, 5163, 5176, 5153, 5153, 5169, 5164, 5153, 5180, 5155, 5154, 5168, 5151, 6159, 5173, 5199, 5205, 5205, 5205, 5209, 5209, 5201, 5213, 5217, 5220, 5224, 5228, 5245, 5232, 5242, 5234, 5238, 5236, 5249, 5252, 7269, 7026, 5260, 5273, 5276, 5276, 5276, 5255, 5821, 5295, 5276, 5276, 5276, 5276, 5268, 5730, 6588, 6270, 5301, 5276, 5276, 5254, 6597, 5821, 6646, 6646, 6646, 6646, 5394, 5396, 5325, 5449, 5322, 5396, 5396, 5325, 5276, 5384, 5428, 5333, 5409, 5274, 5276, 5276, 5276, 5286, 5290, 7174, 5276, 6844, 7218, 6005, 5276, 5276, 5276, 6390, 6115, 6646, 6647, 5323, 5396, 5397, 5400, 5428, 5428, 5428, 5428, 6645, 6646, 6646, 5398, 5400, 5428, 5345, 6844, 7217, 5353, 5276, 5266, 5276, 5276, 5388, 7455, 5457, 5396, 5396, 5396, 5396, 5276, 5399, 5402, 6779, 5408, 6667, 5275, 5276, 5275, 5276, 5276, 6239, 5276, 6839, 5410, 6667, 5275, 5276, 5275, 6561, 5276, 5275, 6839, 6843, 7454, 7155, 5276, 5276, 7229, 5276, 5276, 6466, 5276, 5276, 6526, 5276, 5276, 5276, 5302, 5276, 5276, 6646, 5393, 5396, 5396, 5396, 5400, 5407, 6668, 5276, 5276, 5268, 6066, 5402, 5428, 5428, 5428, 5429, 6646, 6646, 6646, 5395, 5396, 5396, 5396, 5326, 5368, 5419, 5276, 5276, 5276, 5305, 5401, 5428, 5428, 5428, 5430, 6646, 5427, 5428, 5428, 5428, 6644, 6646, 6646, 5402, 5387, 5276, 5276, 5276, 5307, 6771, 6646, 5394, 5396, 5396, 5398, 5427, 5276, 5276, 5268, 6630, 5397, 5403, 5276, 5276, 5269, 5731, 6036, 5400, 5400, 5402, 5428, 6644, 5402, 5428, 5428, 6643, 6646, 5368, 5400, 5427, 6643, 6646, 6646, 6646, 5396, 5396, 5396, 5397, 5387, 6646, 5395, 5324, 5368, 5276, 5999, 5276, 5276, 7234, 6237, 5276, 6239, 6237, 5401, 6643, 5393, 5324, 5415, 5434, 5460, 5464, 5463, 5462, 5461, 5326, 7445, 6108, 6418, 5509, 5541, 5438, 5442, 5508, 5508, 5508, 5508, 5486, 5515, 5454, 5468, 5472, 5491, 5543, 5496, 5508, 5508, 5538, 5446, 5582, 5487, 5506, 5581, 5513, 5475, 5519, 5535, 6805, 6808, 5547, 6811, 6814, 6815, 6816, 5551, 5554, 5558, 5569, 5573, 5579, 5492, 5586, 5590, 5594, 5598, 5605, 5604, 5601, 5609, 5613, 5561, 6981, 5276, 5276, 5276, 5308, 5312, 7372, 5276, 5276, 5276, 5309, 7137, 5276, 5276, 5276, 5329, 5276, 6389, 5276, 5276, 6557, 5276, 6391, 5276, 5276, 5275, 5276, 6392, 6392, 5276, 5276, 5279, 5276, 6282, 5276, 5276, 5276, 5366, 5276, 6000, 6885, 5910, 7281, 5626, 5297, 5629, 5276, 5276, 7348, 5276, 5276, 7354, 5276, 5276, 5276, 5631, 5640, 5899, 5276, 5647, 5276, 6987, 5263, 5186, 5654, 5657, 5659, 5660, 5664, 5668, 5673, 5672, 5677, 5679, 5680, 5680, 5684, 5686, 5693, 5688, 5700, 5688, 5697, 5689, 5704, 5276, 5276, 7355, 5276, 5276, 5276, 5648, 6027, 6933, 6281, 5898, 5276, 5276, 5276, 5367, 5276, 5276, 5276, 5368, 5400, 5708, 6023, 5276, 5276, 5281, 7411, 7471, 7426, 5276, 5276, 6043, 5135, 5276, 5276, 5281, 7468, 6467, 5276, 5716, 5276, 5276, 5721, 6061, 5339, 5276, 5276, 5304, 5276, 5341, 5737, 5745, 5751, 5749, 5276, 5276, 5276, 5369, 6219, 5751, 5276, 5276, 5306, 5310, 6765, 5276, 5276, 6988, 5276, 6526, 5277, 6886, 6113, 5784, 5276, 5793, 7239, 5808, 5855, 5812, 5831, 7055, 5318, 5276, 5276, 5276, 5372, 5348, 7452, 5827, 5832, 7056, 5137, 5276, 5276, 5276, 5376, 5368, 5276, 6525, 5276, 5414, 5276, 7452, 7443, 5276, 5276, 7419, 6200, 5276, 5925, 5276, 5276, 5276, 7249, 5717, 5276, 5276, 5276, 5387, 5795, 7243, 5854, 5845, 7241, 5851, 5855, 5846, 7242, 5852, 5856, 5317, 5850, 5854, 5845, 5898, 5860, 5276, 5276, 5276, 5388, 6362, 5276, 5854, 5876, 5318, 5276, 5276, 7441, 6519, 7240, 5851, 5855, 5877, 5898, 5881, 5839, 5276, 5276, 5370, 5276, 5276, 5853, 5885, 5318, 5276, 5276, 7452, 6134, 7239, 6135, 5854, 5886, 5898, 6404, 5870, 6865, 5276, 5276, 6117, 5869, 6864, 5898, 5276, 6867, 5276, 5276, 5276, 5617, 6117, 5890, 6866, 5276, 5276, 5276, 5620, 6857, 5276, 6719, 6723, 5276, 5276, 7455, 6886, 6721, 5898, 5276, 5276, 5373, 5276, 5914, 5276, 5898, 7023, 5934, 5938, 5942, 5945, 5948, 5949, 5949, 5950, 5954, 5954, 5954, 5954, 5954, 5958, 5961, 5276, 5277, 5921, 5930, 5276, 6659, 6079, 5966, 6872, 6872, 5276, 5276, 5276, 5650, 6487, 5276, 5711, 6194, 7445, 7444, 5368, 5276, 6000, 6525, 5276, 7025, 5302, 6259, 5276, 5370, 5979, 6510, 5997, 5276, 6523, 5276, 5276, 6660, 6080, 5967, 5898, 6890, 5997, 5276, 6889, 5276, 5276, 5276, 5841, 6010, 5276, 6606, 5276, 5276, 5276, 5822, 6016, 5276, 5276, 5276, 5787, 5276, 6605, 6017, 5276, 5277, 5962, 6001, 7450, 5276, 5276, 5276, 5826, 5831, 5712, 6195, 7052, 5276, 5368, 5276, 5276, 5366, 5369, 6121, 5276, 6513, 5276, 6559, 5276, 5276, 5386, 5282, 5276, 6093, 5276, 5276, 5276, 5864, 6029, 5276, 5276, 5276, 5896, 6848, 5998, 5276, 6523, 6792, 5276, 5276, 6397, 7112, 6033, 6047, 6053, 5898, 5276, 6034, 6048, 6054, 5276, 5278, 5281, 6211, 6035, 6049, 6055, 5276, 5278, 5909, 5276, 5279, 6836, 6888, 5276, 5276, 5276, 7452, 5761, 6526, 6233, 6268, 5276, 5280, 5303, 6536, 5276, 6268, 6140, 6038, 6070, 5276, 5276, 5400, 5400, 5400, 5400, 5401, 6066, 6588, 6039, 5894, 5276, 7456, 5276, 5276, 5276, 6002, 5276, 5276, 5276, 5975, 5277, 6078, 6084, 5367, 6266, 7445, 6236, 5999, 6524, 5276, 6100, 6037, 6070, 5276, 5276, 5477, 5481, 6630, 6587, 6090, 5894, 5276, 6080, 6086, 5276, 5276, 5478, 5482, 6099, 5276, 5276, 5276, 6003, 5276, 5276, 6036, 6107, 5276, 5276, 5276, 6072, 6033, 6588, 6106, 5276, 5276, 5276, 6073, 6085, 5276, 5276, 7023, 6099, 5276, 5276, 5281, 6583, 5728, 5732, 6105, 5894, 5729, 5733, 6106, 5276, 5281, 6629, 6586, 5727, 5731, 6104, 6108, 5276, 5276, 5276, 6117, 5890, 5371, 6000, 6125, 6268, 6456, 5276, 6388, 5276, 5276, 5276, 6523, 5276, 7417, 6416, 5276, 5276, 5276, 6119, 5276, 6524, 6525, 6659, 6322, 5276, 5276, 5276, 6074, 5363, 7445, 5276, 5370, 6000, 6236, 5276, 6320, 5799, 5803, 5276, 5276, 5276, 6127, 6319, 5798, 5802, 5276, 5276, 6321, 5276, 7260, 7446, 5368, 6001, 6320, 5799, 5801, 5276, 5276, 6319, 5797, 5276, 7073, 5276, 7258, 7447, 5276, 7447, 5302, 7075, 5803, 5276, 5276, 7072, 7076, 5276, 5281, 7468, 7477, 5276, 5276, 7073, 7260, 7446, 5276, 7074, 5802, 5276, 5285, 5289, 7173, 6339, 7258, 7447, 6339, 7077, 5276, 6117, 7076, 5276, 6342, 5276, 6117, 6342, 6139, 6117, 6200, 6978, 5276, 6978, 5276, 6978, 5276, 7445, 6197, 5276, 6237, 6722, 5276, 5276, 5372, 7365, 6199, 6197, 5276, 6199, 5276, 5925, 7445, 6198, 6198, 6198, 5276, 5276, 5926, 6198, 5276, 6896, 6896, 5389, 6536, 5368, 5525, 6145, 5276, 5276, 5276, 6133, 6358, 5367, 5276, 5276, 6198, 6537, 6199, 6536, 6200, 5276, 6537, 5276, 5276, 5276, 6480, 6167, 6152, 6171, 6175, 6179, 6181, 6185, 6185, 6181, 6189, 6189, 6189, 6189, 6189, 6191, 5276, 5276, 5564, 6363, 6206, 5276, 5276, 5276, 6199, 6200, 6251, 5898, 5276, 5276, 5565, 5371, 5276, 5276, 5575, 6934, 6200, 5276, 7454, 5803, 7356, 5276, 6293, 5276, 5804, 5276, 5287, 5291, 7160, 7066, 6196, 5276, 5285, 6217, 6223, 7106, 6232, 5276, 5287, 7149, 7129, 6243, 5276, 7260, 5276, 5288, 7150, 7141, 6257, 5276, 5789, 5276, 5276, 5276, 6202, 6263, 5276, 5276, 5276, 6201, 5367, 5369, 5387, 6274, 6253, 5278, 6018, 5276, 5276, 5642, 5276, 5276, 5276, 6388, 6113, 5193, 6286, 6935, 6040, 6287, 6936, 6041, 5276, 5276, 5191, 5195, 6288, 6937, 6042, 5276, 5276, 5276, 6226, 5385, 6114, 6252, 5276, 5307, 5311, 5315, 7420, 7354, 5276, 5276, 5739, 7397, 7403, 6298, 6329, 5803, 5276, 5276, 6006, 6299, 6330, 5276, 5276, 5276, 6265, 6300, 6331, 5276, 5276, 5753, 5752, 5387, 6275, 5897, 5276, 5328, 6552, 6547, 5803, 6197, 7453, 7421, 6267, 6392, 5479, 6312, 6329, 5276, 6458, 5480, 6313, 6330, 5276, 5276, 5764, 5276, 5385, 6246, 6253, 5276, 5363, 5367, 5276, 5276, 6536, 6317, 6267, 5276, 5276, 5276, 5621, 6392, 7412, 6327, 6332, 6301, 5803, 5276, 5276, 5815, 7444, 6522, 5276, 5276, 5375, 5276, 5276, 5365, 5276, 5276, 5916, 5276, 5276, 5276, 6294, 5368, 5386, 6336, 5276, 5365, 5276, 6535, 5276, 6820, 7444, 5276, 5276, 6519, 6308, 5276, 6198, 5276, 7452, 5280, 5276, 5276, 5276, 6307, 6197, 5276, 6843, 5276, 6356, 6250, 6678, 5276, 5276, 5276, 6368, 5276, 6844, 5894, 5276, 5369, 5998, 6524, 5276, 5276, 5276, 5277, 6208, 6362, 5276, 5276, 5276, 6371, 5276, 6846, 5276, 5276, 5898, 5276, 6005, 5276, 5276, 6005, 5276, 5276, 6846, 6004, 6002, 6846, 6005, 6005, 6005, 5276, 5276, 6004, 5276, 5276, 6005, 6847, 5276, 5276, 5995, 6375, 5894, 5276, 6520, 6383, 5276, 5276, 5276, 6404, 5871, 6112, 7024, 6387, 6111, 5276, 5276, 5276, 5363, 6401, 6761, 6409, 6972, 6429, 6432, 6433, 6434, 6438, 6438, 6438, 6438, 6441, 6443, 6444, 6444, 6451, 6451, 6451, 6451, 6448, 6452, 5276, 5276, 5276, 6425, 5348, 6566, 5276, 5276, 5276, 6463, 6370, 6494, 5276, 5276, 5973, 5276, 5362, 6468, 5276, 6469, 6475, 5276, 5276, 5276, 6519, 5276, 6484, 5276, 5276, 6000, 5389, 6228, 6477, 5276, 5276, 6012, 5276, 6112, 5276, 5276, 5276, 6520, 5276, 5276, 5276, 6396, 5304, 6197, 5276, 5276, 6060, 6059, 5276, 6499, 6507, 5276, 5386, 5283, 5276, 5276, 6395, 5276, 5276, 5279, 6208, 6518, 5276, 5276, 5359, 5276, 5276, 5276, 6524, 5276, 5276, 6534, 6534, 5276, 5388, 5276, 5284, 6546, 6618, 5276, 5276, 6109, 5903, 6553, 6548, 5276, 5276, 6116, 5998, 5349, 6567, 5276, 5276, 5276, 6392, 6611, 5305, 6199, 5276, 6537, 6265, 5276, 6236, 6525, 5276, 6830, 6573, 5818, 5276, 6831, 5501, 5819, 5276, 6832, 5502, 5820, 6830, 5500, 5818, 5276, 5422, 6847, 5276, 5522, 7448, 5276, 5636, 6001, 5998, 6565, 5276, 5276, 5276, 6525, 5276, 5276, 7449, 6887, 6493, 5276, 5641, 6843, 5276, 5276, 5276, 6237, 6537, 5276, 6268, 6140, 5276, 6390, 5276, 6459, 6571, 6577, 5821, 5276, 5276, 5276, 6657, 5276, 7285, 5499, 6578, 5276, 5276, 6886, 5279, 5276, 5649, 6028, 6094, 5276, 6458, 5276, 5276, 5276, 6526, 7024, 6877, 5256, 6579, 5276, 5276, 5276, 6528, 6598, 5276, 5276, 5276, 6536, 5276, 6592, 5276, 5276, 5276, 6620, 5276, 6391, 6459, 5276, 5739, 7123, 6938, 5281, 6583, 6579, 5276, 5741, 7125, 6332, 6602, 5276, 6459, 5276, 5741, 7125, 6522, 5276, 6404, 5871, 5280, 5276, 5302, 5276, 5757, 5276, 5356, 6392, 6526, 5276, 5276, 6118, 5279, 6610, 5276, 5276, 5276, 6783, 5367, 6615, 5276, 5276, 5276, 6784, 5276, 6919, 6923, 5276, 5777, 5276, 5276, 5327, 6542, 5280, 6537, 6266, 5276, 5788, 6264, 5276, 5288, 7184, 7189, 5276, 5277, 5276, 5367, 5276, 6268, 6141, 6712, 6424, 5276, 5276, 6126, 5898, 5276, 5276, 5632, 6626, 6634, 5276, 5276, 6131, 6414, 6108, 5276, 5276, 6395, 5276, 6844, 5276, 5276, 5917, 5276, 6521, 5276, 6395, 6522, 6729, 6846, 5276, 5375, 6502, 6651, 6664, 6672, 6682, 6685, 6689, 6693, 6693, 6693, 6695, 6697, 6697, 6697, 6697, 6701, 6702, 6702, 6702, 6703, 6707, 5276, 6711, 6423, 5276, 5276, 5276, 6735, 5276, 6716, 5276, 7351, 5276, 6727, 5276, 7420, 6268, 6969, 6745, 5276, 5276, 5276, 6785, 5450, 5276, 5276, 5276, 6793, 6743, 6094, 5276, 6750, 6751, 5276, 5276, 5276, 6844, 6212, 5276, 5276, 5276, 6847, 5276, 5276, 6755, 5276, 5276, 6238, 5276, 6524, 6798, 6267, 6759, 6771, 6766, 5276, 5276, 5276, 6877, 5194, 6287, 5276, 7275, 5276, 5276, 6248, 5276, 5276, 6776, 6772, 6767, 6790, 5276, 6792, 5276, 5907, 5276, 6269, 5894, 7260, 7023, 5276, 5276, 5276, 6111, 6392, 6422, 6847, 5276, 6100, 5276, 6888, 5276, 5276, 6521, 5276, 5276, 6194, 7446, 5368, 7418, 5276, 5276, 6293, 5276, 5276, 5276, 6269, 6206, 7033, 6523, 6797, 6266, 5312, 5316, 5276, 5276, 5276, 6921, 5313, 5317, 5276, 5276, 5276, 6933, 6792, 6791, 5276, 5276, 6305, 5304, 6420, 6424, 5276, 5276, 6319, 6922, 5276, 5276, 6118, 5276, 5374, 5276, 5276, 6535, 5276, 5276, 7034, 7452, 6826, 5276, 5908, 5278, 6495, 5276, 6519, 5276, 5276, 5276, 5281, 5255, 6598, 5276, 7033, 5863, 6828, 6852, 5314, 5318, 5276, 5276, 6913, 5276, 5276, 5276, 6958, 6858, 5318, 5276, 5276, 6321, 5800, 6857, 5317, 5276, 5276, 6340, 5802, 6535, 5276, 6862, 5276, 6022, 5753, 5276, 5278, 5276, 5276, 7210, 5276, 6871, 5276, 5276, 5276, 7191, 6199, 6200, 5276, 5276, 5276, 7042, 6425, 5276, 5276, 6876, 6887, 5276, 5367, 6820, 7444, 5276, 6002, 5276, 6194, 7052, 5276, 6637, 6520, 5276, 6536, 5276, 6822, 5276, 5276, 6341, 5276, 7204, 5276, 5276, 5276, 7203, 5367, 5276, 6786, 5276, 5276, 6392, 6921, 6821, 5276, 5276, 6904, 5276, 5276, 6388, 6391, 6480, 5276, 5276, 5276, 7239, 5276, 6478, 5367, 5276, 6095, 5276, 5276, 6394, 5276, 6897, 5276, 5276, 6883, 6535, 5276, 5371, 6904, 5364, 5276, 6894, 5276, 6110, 5276, 5276, 5981, 7461, 7451, 5276, 5276, 5276, 5983, 7470, 5990, 5283, 6536, 6901, 5276, 6114, 5276, 6001, 6911, 5374, 6535, 5368, 5803, 5276, 6392, 6412, 5369, 5276, 5276, 5366, 5364, 6537, 6364, 5364, 5276, 5367, 5371, 5366, 5364, 5276, 5276, 6536, 5365, 5276, 5366, 5276, 5366, 5367, 6538, 6538, 6538, 5773, 5767, 5769, 5771, 5771, 5772, 5276, 7445, 5183, 5276, 5282, 5917, 7454, 6113, 6917, 6942, 7063, 5336, 6951, 6962, 6966, 5531, 6992, 6995, 6995, 6998, 7003, 7002, 7002, 7004, 7008, 7009, 7015, 7013, 7013, 7013, 7013, 7019, 7022, 7030, 5276, 5276, 6115, 5375, 5528, 6927, 5276, 7445, 6842, 7453, 6149, 6156, 6163, 7038, 6983, 5276, 5276, 6392, 7229, 5277, 5276, 5276, 7046, 7060, 5276, 7070, 5276, 6116, 5999, 5276, 6117, 5276, 5276, 5364, 5276, 5276, 5276, 7240, 7085, 5276, 5276, 5276, 7337, 5349, 5276, 6906, 7086, 5276, 6117, 5368, 5276, 5276, 6907, 5276, 7090, 5276, 6120, 5276, 5368, 5389, 6113, 7094, 5276, 5276, 5276, 7338, 6840, 5276, 6782, 7444, 6985, 5276, 5896, 5276, 6197, 5276, 5276, 7024, 5276, 7104, 5277, 5276, 5276, 6947, 6946, 5276, 6378, 5276, 5276, 5276, 7356, 5276, 5276, 7356, 6396, 7111, 7118, 6379, 5276, 7119, 6094, 5276, 5276, 6405, 5872, 5898, 6956, 6954, 5276, 5276, 6422, 6847, 7144, 5276, 5276, 5276, 7363, 5285, 5289, 7113, 7142, 5286, 7148, 7114, 7143, 6201, 5367, 5276, 5276, 6458, 5480, 6298, 7452, 7154, 5276, 5895, 5290, 7159, 7164, 5318, 7066, 5318, 5276, 5276, 6458, 5481, 6301, 6676, 5276, 5276, 6199, 5276, 5276, 5276, 6879, 7180, 5276, 5276, 5276, 7364, 5290, 7174, 7179, 5276, 5276, 7178, 5276, 5276, 5276, 7380, 5740, 7169, 5276, 5276, 6467, 5276, 6677, 6197, 5276, 5924, 7196, 6975, 5276, 5276, 6467, 7049, 5285, 7195, 7185, 6391, 6116, 5276, 5276, 5276, 7208, 7454, 5276, 5276, 6473, 6477, 6526, 5276, 7449, 5276, 6197, 6520, 5276, 7446, 5276, 5375, 7224, 5276, 5276, 5276, 7381, 7214, 5276, 5276, 5276, 7408, 7223, 6847, 5276, 5276, 6479, 5276, 7222, 6425, 5276, 6201, 6886, 6492, 7200, 5276, 6237, 5276, 5276, 6841, 6675, 5276, 5276, 5387, 5276, 5276, 6488, 5276, 6878, 6781, 5276, 5276, 6514, 5276, 5276, 6879, 7230, 5276, 5276, 5276, 7446, 7228, 5276, 5276, 6249, 7452, 5276, 5389, 5276, 6198, 6197, 5276, 6000, 5276, 6238, 5276, 6524, 6201, 5276, 6201, 7449, 5276, 6193, 7445, 5276, 5280, 6209, 6213, 5276, 6520, 5276, 5281, 6065, 6587, 6879, 7455, 5276, 5276, 6525, 6526, 6659, 6079, 7450, 5276, 6395, 7455, 6621, 6847, 5276, 7238, 5276, 6622, 5276, 5276, 6526, 7416, 5276, 6622, 5276, 7247, 6620, 7455, 5276, 5276, 6530, 5276, 7391, 6527, 6621, 6847, 5276, 5276, 6537, 5276, 5276, 6536, 6621, 6847, 7455, 5387, 5388, 6847, 5388, 7344, 5276, 5276, 7229, 7453, 5386, 5423, 5389, 5276, 5276, 6593, 5276, 5388, 5276, 5386, 5388, 7253, 5276, 7258, 7446, 6196, 5276, 5363, 5276, 6210, 6887, 5276, 5894, 5276, 5276, 5276, 5971, 7257, 5276, 5916, 6640, 7264, 6258, 5276, 5189, 5276, 7260, 5916, 7259, 6503, 7097, 7283, 7273, 5724, 7100, 7135, 7279, 6930, 7132, 7289, 7293, 7302, 7295, 7297, 7306, 7298, 7317, 7310, 7311, 7315, 7318, 7326, 7326, 7328, 7324, 7322, 7332, 7335, 5276, 6218, 5750, 5276, 5276, 7362, 7366, 7364, 7342, 5276, 6467, 5389, 5281, 5276, 5276, 6621, 5276, 5276, 6393, 5276, 5915, 5276, 6227, 6476, 5276, 5377, 6746, 5276, 5386, 5276, 5276, 5276, 7449, 5276, 5276, 7360, 7370, 7376, 7385, 5276, 5276, 5276, 7450, 5276, 5276, 6529, 7386, 5276, 6265, 5276, 5276, 5378, 6094, 7392, 5276, 5276, 5276, 7451, 7342, 7445, 6201, 5276, 6266, 5276, 5276, 5382, 5400, 5400, 5400, 5427, 6389, 6113, 5276, 5276, 6235, 6234, 5276, 5276, 5276, 7457, 5276, 6526, 6716, 7433, 7396, 7402, 5276, 5276, 6733, 6739, 7403, 5276, 5276, 5276, 7466, 7408, 7398, 7404, 6844, 5276, 6847, 5276, 6267, 6140, 5276, 5388, 7230, 5276, 5414, 5400, 5400, 5400, 5428, 7342, 7447, 7451, 5276, 6268, 5276, 6237, 6268, 5276, 5276, 7356, 6110, 6268, 5276, 5276, 5276, 5643, 7409, 5986, 7425, 5276, 6292, 5276, 5276, 5740, 7124, 7030, 7410, 5987, 7426, 5276, 6306, 5305, 5276, 5276, 6201, 5276, 5276, 5276, 5739, 7168, 7411, 5988, 7427, 5276, 6323, 7446, 6117, 5276, 5371, 5276, 5276, 7454, 5276, 6887, 5276, 5985, 5989, 6236, 6846, 6003, 5276, 6004, 5276, 6004, 6002, 5276, 6845, 5276, 5276, 5276, 6802, 5311, 6560, 7449, 5276, 5276, 5281, 7200, 5276, 6393, 5276, 7452, 5276, 5276, 5276, 6388, 6113, 5276, 6233, 5836, 5898, 5276, 5276, 7387, 5868, 7434, 5276, 5276, 5276, 6877, 7228, 6201, 5276, 7452, 5962, 5276, 5276, 5276, 6853, 5315, 5898, 5276, 5276, 7431, 5276, 5276, 5276, 6878, 7229, 5984, 7471, 5991, 5276, 6340, 5803, 5276, 5780, 5276, 5990, 5276, 5276, 5276, 6920, 5821, 5982, 7469, 5989, 5276, 6346, 6351, 5276, 5276, 6388, 6113, 5276, 5276, 6946, 5276, 5276, 7438, 5276, 5276, 7024, 5276, 5276, 5276, 7467, 7476, 5276, 5276, 7477, 5276, 5276, 5276, 7025, 5276, 7450, 5276, 5388, 5281, 6279, 5276, 5276, 5622, 5315, 5276, 6389, 6114, 5276, 6347, 6352, 5276, 5276, 5276, 7444, 5276, 5276, 5276, 6945, 7466, 7475, 5276, 5276, 7041, 5276, 5631, 5276, 5388, 5282, 7466, 7462, 5276, 5276, 5276, 7040, 5276, 5276, 5276, 7081, 5276, 5303, 5276, 5276, 5276, 7110, 6654, 0, 0, 1075838976, 2097152, -1845493760, 0, 0, 0x80000000, 16777216, 4194560, 4196352, 270532608, 2097152, 2097152, 268435456, 4194432, 16777216, 4194432, 3145728, 541065216, -2143289344, 4194304, 4194304, 4194304, 4194304, 541065216, 4194304, 4194304, 4194432, 37748736, -1606418432, 541065216, 541065216, 541065216, 541065216, 4194304, 4194304, 4196352, -1606418432, -1606418432, 541065216, 541065216, 4194304, 4198144, 541065216, 541065216, -2143289344, -2143289344, 8425488, 4194304, 4194304, 4194304, 1, 32768, 0, 0x80000000, 16, 33554432, 33554432, 0, 2, 4, 112, 128, 256, 3584, 16384, 37748736, 742391808, 239075328, 775946240, 775946240, 775946240, 171966464, 171966464, 171966464, 171966464, 239075328, 171966464, 775946240, 239075328, 4718592, 64, 4718592, 2097216, 4720640, 541589504, 4194368, 541589504, 4194400, 4194368, -2142763008, 541589504, 541065280, 4194368, 4194368, 541065312, 541065280, -2143289280, 4194368, -2143285408, -2143285408, -2143285440, -2143285440, -2143285440, -2143285440, -1605890240, -2142761152, -2109731008, -1606414528, -2142761152, -1606414528, -2143285440, -2143285440, -1606414528, -1606414528, -2143285440, -2109731008, 776470528, -1908404416, 775946304, -1908404416, 2, 4, 8, 16, 512, 1024, 4194304, 128, 128, 0, 0x80000000, 524288, 5242880, 0x80000000, 0, 0, 2, 12, 64, 256, 2048, 2048, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 4, 16, 224, 256, 512, 1024, 16777216, 16777216, 0, 0, 0x80000000, 65536, 1792, 0, 0, 0, 8, 0, 0, 0, 12, 32, 64, 1024, 2048, 57344, 262144, 50331648, 268435456, 1073741824, 0x80000000, 0, 0, 1536, 64, 524352, 524352, 524352, 0, 0, 0, 62, 64, 128, 64, 262144, 1048576, 0, 0x80000000, 2097152, 0, -2113929216, 0, 0, -1979711488, -1912602624, 64, 64, 1048576, 128, 256, 2048, 262144, 524288, 4096, 1024, 1024, 0, -570425344, 32505856, 0, 0, 48, 25165824, 0, 0, 0, 33554432, 268435456, 0, 0, 0, 524288, 0, 0, 0, 32, 0, 0, 0, 44, 64576, 319029248, 0, 524288, 524288, 524288, 0, 64, 0, 0, 0, 64, 0, 96, 96, 96, 524352, 524352, 524352, 524352, 524288, 524288, 524288, 524288, 64, 64, 0, 64, 128, 128, 128, 128, 2048, 2048, 0, 0, 524288, 524288, 64, 64, 128, 2048, 0, 0, 64, 128, 8388608, 524288, 64, 64, 64, 64, 32, 96, 64, 96, 96, 524352, 96, 160, 1056, 262176, 1048608, 2097184, 4194336, 536870944, 40, 262176, 32, 96, 0, 0, 0, 60, 40, 48, 1120, 96, 96, 64, 524352, 0, 524288, 64, 96, 524352, 0, 524288, 4195360, 6291488, 2097184, 2097184, 4194336, 4194336, 4194336, 32, 56, 0, 4, 16, 32, 64, 128, 256, 1536, 2048, 40, 262184, 40, 40, 40, 40, 40, 262176, 32, 32, 6292512, 4195360, 2097184, 32, 128, 1792, 8192, 16384, 131072, 524288, 4195104, 6292512, 32, 32, 32, 32, 4, 40, 262184, 32, 32, 34, 34, 262184, 40, 4196128, 32, 262144, 524288, 0, 0, 64, 256, 0, 2097152, 135790592, 131073, 4, 393233, 262184, 34, 42, 32, 524320, 32, 1073872896, 32, 32, 40, 1120, 96, 1056, 4194336, 32, 2098208, -322695456, -322695456, -322695456, -322695456, -322597152, -320598176, -322597152, -322597144, -321548576, -320598168, -322597144, -321548568, -37482773, 0, 0, 64, 1536, 32768, -322588952, -321548568, -322588952, -321548568, -322597144, 32, 0, 32, 64, 65536, 0, 96, 32, 32, 56, 262184, 40, 41, 262184, 32, 42, 224, 40, 262176, 42, 106, 293601323, 293601323, 293863467, 293699627, 293617707, 293716011, 293702203, 293702203, 293702203, 297896507, 293702203, 293702203, 293702203, 293702267, 293964347, 293702267, 297896507, 293964347, 297896507, 297896507, -322597144, -37744981, 0, 32, 524288, 0, 0, 64, 2048, 16384, 32768, 0, 0, 262144, 65536, 262144, 262144, 0, 4096, 0, 8, 0, 2, 65536, 262656, 328192, 0, 0, 0, 1536, 32768, 0, 5242880, 0, 0, 0, 1998, 518144, 8388608, -2147418112, 5242880, -1842937664, 201330721, 201330721, -2111369023, -2111369023, -2111369023, -2111369023, -2111360575, -2111369023, -2111369023, -2111369023, -1977151295, -1977151293, -1910042431, -1893265183, -2111368509, -1893265183, -1893265183, -1893265183, -1893265183, -2111368509, -1893265183, -1893265183, -553689472, -553656704, -553689472, -553689472, -553656704, -553656704, -553656704, -553656704, -553656704, -553656672, -553656672, -553656672, -553656672, -536912159, -553656672, -553656672, -553656664, -553656664, -553656672, -553656672, -553656670, -553656672, -553656672, -553656670, -553656608, -553656671, -536879391, -536879391, -536879391, 0, 0, 262656, 0, 0, 65, 1024, 0, 1, 4096, 201326592, 0, 0, 0, 0, 462976, -2113929216, 100663296, 100663296, 2, 4, 8, 64, 128, 512, 2048, 8192, 16384, 458752, 18874368, 463488, 0, 0, 1, 2, 4, 32, 0, 0, 1007232, 15728640, 1040000, 15728640, -570425344, 0, 0, 0, 2014, 0, 0, 0, 32505856, -570425344, 196608, 2097152, 301989888, 0, 0, 80, 268435456, 0, 268435456, 0, 268435456, 268435456, 268435456, 268435456, 0, 0, 0, 4096, 201326592, 0, 0, 96, 2260992, 12288, 0, 0x80000000, 0, 0, 118, 577408, 22020096, 1040187392, 0, 0, 167772160, 234881024, 128, 512, 2048, 196608, 262144, 33554432, 536870912, 0, 0, 0, 557056, 7168, 16384, 196608, 786432, 503316480, 1073741824, 0x80000000, 0, 0, 128, 131072, 524288, 58720256, 402653184, 0, 0, 0, 318767104, 128, 512, 7168, 16384, 32768, 32768, 196608, 786432, 1048576, 2097152, 4194304, 33554432, 268435456, 536870912, 0x80000000, 0, 0, 1, 256, 8388608, 234881024, 268435456, 1073741824, 0x80000000, 4096, 16384, 32768, 131072, 524288, 1048576, 2097152, 4194304, 8388608, 234881024, 0, 0, 201326592, 0, 0, 128, 536870912, 4194304, 512, 3072, 16384, 131072, 524288, 1048576, 4194304, 134217728, 8388608, 33554432, 201326592, 268435456, 1073741824, 0, 1048576, 4194304, 268435456, 4194304, 8388608, 134217728, 268435456, 1073741824, 3072, 131072, 524288, 1048576, 1073741824, 0, 0, 0, 0x80000000, 0, 0, 0, -2147483646, 16384, 18432, 67108864, 1073741824, 16384, 8192, 0, 0, 65536, 262144, 0, 0, 67108864, 0, 0, 0, 32768, 0, 1, 18952, 1024, 0, 0, 192, 0, 0, 0, 65, 1024, 1024, 100663298, 18952, 65, 268436480, 2101248, 524288, 1024, 19017, -1744550912, 8388624, 8388624, 8388624, -1739308032, -1739308032, -1739308032, -1739308032, -1736162288, -1736162288, -1736162288, -1736162288, -7868466, -7868466, -7868466, -7868466, -7868466, -7868450, -7868450, -7868450, -7868450, 0, 0, 0, 65536, 2048, 16384, 67108864, 134217728, 268435456, 0, 0, 1073741824, 18432, 0, 0, 1, 285212672, 0, 585, 0, 0, 2, 8, 16, 64, 128, 3072, 4096, 8192, 65536, 131072, 0, 0, 1024, 5521408, -1744830464, 0, 0, 0, 262144, 0, 0, 0, 1024, 0, 0, 0, 112, 1040, 0, 0, -1744830464, 0, -1744830464, 59238400, -67108864, 0, 0, 0, 327680, 2014, 0, 0, 0, 328192, 518144, 8388608, 50331648, 201326592, 805306368, -1073741824, 768, 1024, 10240, 16384, 32768, 458752, 50331648, 67108864, 134217728, 805306368, 0, 0, 0, 458880, 32768, 458752, 8388608, 50331648, 67108864, 134217728, 67108864, 134217728, 805306368, 1073741824, 0x80000000, 0, 0, 220, 0, 0, 0, 471424, 12, 192, 768, 1024, 2048, 805306368, 1073741824, 0, 0, 2, 204, 768, 1024, 4, 8, 32, 64, 512, 2048, 512, 2048, 16384, 67108864, 0, 0, 458752, 50331648, 67108864, 805306368, -1073741824, 0, 0, 0, 393240, 0, 1048576, 4194304, 0, 0, 16384, 458752, 50331648, 67108864, 536870912, 1073741824, 0, 0, 16384, 0, 0, 0, 256, 0, 0, 0, 512, 0, 0, 0, 585, 16, 0, 0, 1048576, 4194304, 0x80000000, 4, 8, 128, 512, 3072, 16384, 32768, 131072, 512, 0, 0, 4096, 1048576, 0x80000000, 8192, 2097152, 268435456, 0x80000000, 537395200, 537395200, 0, 4196352, 51380242, 51380242, 51380242, 0, 537395200, 4196352, 4196352, 276901888, 8540160, -1606418432, 0, 32768, 537395200, 4196352, 1082130432, 0, 4196352, 537427968, 22022147, 22349827, 22349827, 22349827, 22366219, 22349843, 22349827, 22349827, 22366219, 22349827, 55576594, 55576594, 55576594, 55576594, 55576594, 324012114, 55576594, 55576594, 1062785014, 1062785014, 1062785014, 1062785014, 0, 0, 2, 33554432, 0, 0, 0, 131072, 0, 0, 0, 8192, 8392704, 32768, 268435456, 0, 0, 2, 67108864, 12, 16384, 0, 65536, 0, 22020096, 0, 0, 0, 1040000, 15728640, 0, 0, 329728, 0, 0, 254, 1792, 2809856, 58720256, 19, 0, 0, 0, 1048576, 0, 0, 0, 2048, 0, 0, 0, 18, 33554432, 0, 0, 256, 8192, 0, 0, 8192, 2097152, 0, 0x80000000, 0, 82, 301989888, 0, 0, 0, 2101248, 22020096, 1040187392, 0, 0, 0, 4194304, 0, 0, 0, 16384, 1536, 0, 256, 0, 8192, 2097152, 16, 1048576, 16777216, 33554432, 268435456, 536870912, 0x80000000, 3584, 16384, 32768, 524288, 1048576, 4194304, 0, 0, 8388608, 1073741824, 0, 0, 1536, 2048, 16384, 32768, 524288, 4194304, 134217728, 0, 0, 134217728, 4096, 0, 8, 0, 256, 1536, 16384, 32768, 524288, 128, 536870912, 0, 0, 4, 8, 512, 2048, 0, 0, 1536, 32768, 524288, 4194304, 33554432, 134217728, 536870912, 0, 0, 8192, 2097152, 0x80000000, 0, 0, 512, 2048, 131072, 536870912, 0, 0, 16, 64, 1536, 32768, 32768, 524288, 134217728, 0, 0, 0, 524288, 0, 64, 64, 16392, 1536, 32768, 524288, 0, 0, 33554432, 8192, 0, 65536, 0, 0, 1, 1, 0, 1, 67174400, 33554432, 536870912, -1073741824, 0, 0, 0, 0, 524288, 134217728, 67174400, 0, 0, 0, 16777216, 0, 0, 0, 4, 0, 0, 0, 7, 16, 16384, 8, 8, 0, 0, 512, 3072, 131072, 131072, 268435456, 134217728, 8, 512, 2048, 196608, 262144, 50331648, 536870912, 1073741824, 0, 4, 8, 2048, 8192, 32768, 8388608, 0, 0, 134217736, 16908320, 547389524, 547389524, 555909216, 555909216, 555909216, 555909216, 564297840, 564297844, 564297844, 564297844, 564297844, 1001055742, 1001056254, 1001055742, 1001055742, 1001056254, 1001056254, 1001056254, 1001056254, 1001055742, 1001056254, 1001056254, 1001056254, 1001056254, 0, 1052672, 0x80000000, 0, 0, 4, 16, 0, 0, 84, 2129920, 8388608, 4096, 0, 0, 0, 116, 0, 254, 1280, 2809856, 58720256, 939524096, 0, 0, 0, 50331648, 268435456, 0, 0, 0, 939524096, 0, 0, 520, 1024, 0, 0, 1, 0, 67108864, 1073741824, 0, 0, 0, 20, 64, 32768, 8192, 0, 2048, 0, 2097152, 8388608, 536870912, 0, 0, 1024, 278528, 0, 0, 0, 393232, 163840, 0, 0, 0, 134217728, 0, 0, 0, 16, 0, 0, 0, 15, 208, 15360, 1245184, 52, 0, 0, 0, 268435456, 0, 0, 33554432, 64, 128, 1280, 24576, 163840, 524288, 2097152, 58720256, 402653184, 536870912, 128, 1792, 24576, 163840, 524288, 0, 4, 16, 8388608, 0, 0, 4096, 32768, 262144, 524288, 33554432, 134217728, 0, 0, 24, 32, 128, 1280, 8192, 16384, 8192, 524288, 16777216, 33554432, 402653184, 0, 4, 8, 16, 1024, 2048, 8192, 16384, 32768, 458752, 0, 262144, 33554432, 134217728, 0, 512, 1024, 16777216, 33554432, 402653184, 0, 4096, 1048576, 0, 0, 1998, 59238400, -67108864, 4, 8, 16, 402653184, 0, 0, 8, 16, 402653184, 536870912, 0, 0, 4, 64, 128, 8388608, 0, 0, 67108866, 12, 64, 128, 512, 1024, 4, 16384, 65536, 67108864, 0, 65536, 0, 0, 2048, 64, 64, 64, 96, 96, 96, 96, 0, 8192, 8192, 268435460, 32768, 65536, 2490368, 16777216, 0x80000000, 0, 0, 1, 4, 8, 2048, 8192, 3670016, 2048, 2048, 2048, 2048, 0, 8192, 34816, 9216, 4096, 0, 128, 0, 2097152, 0, 0, 4096, 4096, 29696, 29712, 29840, 29712, 29712, 29840, 29840, 536900624, 4224144, 144384, 144384, 144384, 144384, -754647956, -754647956, -754647956, -754647956, -754647956, -754647940, -754647940, -754647940, -754647940, -754516884, -754647956, -754516884, -754516884, -754516884, 4, 8, 256, 512, 2048, 0, 0, 3670016, 0, 0, 2048, 131072, 524288, 4194304, 0x80000000, 0, 0, 9216, 0, 0, 4, 134217728, 0, 29696, 0, 0, 4, 268435456, 0, 16, 0, 29824, 0, 60, 64576, 319029248, -1073741824, 0, 0, 319160320, 0, 0, 0, 319160320, 0, 0, 524288, 3145728, 0, 12288, 131072, 0, 8, 131072, 61440, 262144, 318767104, -1073741824, 0, 0, 64, 1024, 2048, 61440, 262144, 0, 28, 32, 64, 64, 64, 128, 0, 0, 16384, 32768, 50331648, 268435456, 0, 0, 0, 393216, 0, 0, 0, 486539264, 0, 128, 0, 536870912, 0, 0, 12, 16, 32, 327155712, 34, 1056, 32, 32, 42, 4457568, -326784344, -322851160, -322698144, -322698144, -322698144, -322698144, -322695456, 0, 0, 524288, 1048576, 0, 0, 0, 536870912, 4194304, 131072, 0, 0, 6, 56, 128, 1792, 2, 67108864, 16384, 0, 0, 4096, 4194304, 32768, 0, 0, 0, 8388608, 0, 0, 0, 72, 0, 8, 64, 2048, 57344, 16384, 32768, 262144, 50331648, 268435456, 0, 524288, 1048576, 2097152, 4194304, 134217728, 0x80000000, 0, 0, 50331648, 268435456, 0x80000000, 0, 0, 1, 0, 0, 2, 4, 16, 64, 1, 0, 2, 0, 0, 65536, 0, 0, 0, 1040, 8667136, 0, 131072, 131072, 0, 131072, 0, 131072, 0, 0, 524288, 536870912, 131072, 0, 0, 7, 27756528, -503316480, 0, 256, 0, 2048, 32768, 8388608, 262144, 2113536, 0, 0, 8, 16, 512, 402653184, 0, 0, 0, 256, 32768, 0, 0, 4224, 65536, 262144, 1048576, 4194304, 16777216, 33554432, 67108864, 134217728, 0, 0, 256, 262144, 0, 0, 8192, 268435456, 0, 0, 0, 4, 131073, 0, 0, 9728, 268435456, 0, 0, 16, 393216, 0, 131073, 131073, 33554624, 4, 0, 131073, 0, 0, 13312, 131072, 4194304, -2146430976, 131072, 2097152, 16777216, 0, 0, 512, 131072, 1048576, 2097152, 0, 1572864, 0, 0, 0, 0x80000000, 524288, 0, 1610612736, 1610612736, 1610612736, 393241, 393241, 393241, 393241, 805707793, 805707793, 1879449617, 805708049, 1879449617, 1879449617, 1879449617, 1879449617, -483948553, -475559945, -483948553, -475559945, -483948553, -483948553, -475559945, -475559945, -475559945, -475559945, -483948553, -483948553, -215504905, -475559945, -207116297, -207116297, 0, 0, 0, 1073741824, 0, 0, 2097152, 67108864, 134217728, 536870912, 0, 0, 24576, 0, 0, 0, 2113536, 0, 0, 8, 64, 0, 0, 0, 401424, 805306368, 0, 0, 28672, 0, 0, 4096, 2097152, 4194304, 8388608, 503316480, 1073741824, 0, 0, 1879048192, 0, 0, 32768, 2097152, 8388608, 16777216, 33554432, 0, 401680, 0, 0, 8, 512, 2048, 131072, 33554432, 536870912, 0, 0, 7, 19367920, -503316480, 27756528, -503316480, 0, 0, 0, 0, 0, 19376112, -234881024, 0, 27764720, -234881024, 0, 0, 32768, 33554436, 0, 0, 33554436, 24, 0, 0, 0, 11, 346112, 7, 16, 480, 1536, 32768, 65536, 393216, 10485760, 65536, 10878976, 16777216, 33554432, 536870912, 4, 32, 524288, 1048576, 33554432, 67108864, 65536, 393216, 2097152, 16777216, 262400, 65536, 4224, 4224, 0, 65536, 201326592, 0x80000000, 393216, 10485760, 16777216, 33554432, 1073741824, 0x80000000, 0, 16, 224, 256, 1536, 32768, 65536, 0, 16384, 2097152, 0, 0, 1024, 32768, 65536, 131072, 262144, 262144, 2097152, 16777216, 33554432, 4, 32, 524288, 134217728, 0, 512, 32768, 131072, 262144, 2097152, 2097152, 8388608, 16777216, 1073741824, 0, 0, 512, 32768, 131072, 2097152, 8388608, 8388608, 16777216, 0, 0, 16, 33554432, 4, 16, 224, 512, 32768, 4, 524288, 134217728, 0, 0, 32768, 50331648, 268435456, 4096, 32768, 0, 0, 16, 536870912, 16, 192, 32768, 8388608, 4096, 4096, 4096, 1536, 2, 4, 16, 192, 32768, 0, 16, 64, 128, 8388608, 0, 0, 0, 2, 4, 134217728, 4, 0, 0, 128, 512, 3072, 4096, 16384, 131072, 4, 128, 0, 0, 18, 17825792, 524288, 8388608, 33554432, 0x80000000, 8192, 0, 33554432, 0, 0, 33554432, 0, 0, 0, 268435456, 2, 4, 8, 262144, 262144, 1048576, 2048, 32768, 0, 0, 28, 0, 100663296, 4224, 65536, 65536, 262144, 33554432, 0, 2, 4, 24, -1072627712, 805306384, -1342177264, -1342177264, -1070006272, -1070006272, -1069989376, -1069989376, -258932720, -258932720, -258932720, -258932720, -225378288, -1069989376, -1069989360, -1065795072, -1061600768, -258932720, -225378288, -258932720, -258932720, 1260767, 34815199, 1260767, 34815199, 1260767, 34815199, 34815199, 1260767, 1260767, 34815199, 1260767, 1260767, 169032927, -1978450721, 169032927, -1978450721, 169032927, 169032927, 169032927, 169032927, 1242774751, -1978450721, -1978450721, -225231649, -1173144353, -225231649, -91013921, 0, 0, 32, 128, 256, 262144, 524288, 8388608, 0, 64, 0, 0, 1114112, 1073741824, 0, 0, 34816, 0, 0, 2048, 4194304, 0, 0, 0, 3735552, 0, 0, 32, 512, 2048, 32768, 262144, 524288, 3751936, 0, 0, 0, 48, 0, 0, 528, 7946240, 12140544, 9502720, 1610612736, 0, 0, 0, 15360, 1245184, 0, 0, 134217728, 128, 15, 9633792, 0, 0, 0, 2, 12, 80, 128, 7168, 8192, 7168, 8192, 196608, 1048576, 0, 0, 0, 1, 2, 12, 16, 64, 128, 256, 0, 0, 3145728, 0, 0, 0, 536870912, 0, 0, 8192, 65536, 131072, 1048576, 0, 0, 0, 2097152, 0, 16384, 0, 4194304, 0, 0, 2097152, 16384, 0, 0, 131072, 2097152, 0, 0, 0, 4096, 0, 0, 8192, 0, 0, 0, 128, 0, 0, 0, 208, 0, 64, 128, 1024, 4096, 0, 0, 2, 8, 64, 128, 1024, 2048, 4096, 8192, 128, 1024, 4096, 8192, 0, 0\n];\n\nJSONiqParser.TOKEN =\n[\n  \"(0)\",\n  \"PragmaContents\",\n  \"DirCommentContents\",\n  \"DirPIContents\",\n  \"CDataSection\",\n  \"Wildcard\",\n  \"EQName\",\n  \"URILiteral\",\n  \"IntegerLiteral\",\n  \"DecimalLiteral\",\n  \"DoubleLiteral\",\n  \"StringLiteral\",\n  \"PredefinedEntityRef\",\n  \"'\\\"\\\"'\",\n  \"EscapeApos\",\n  \"ElementContentChar\",\n  \"QuotAttrContentChar\",\n  \"AposAttrContentChar\",\n  \"PITarget\",\n  \"NCName\",\n  \"QName\",\n  \"S\",\n  \"S\",\n  \"CharRef\",\n  \"CommentContents\",\n  \"EOF\",\n  \"'!'\",\n  \"'!='\",\n  \"'\\\"'\",\n  \"'#'\",\n  \"'#)'\",\n  \"'$'\",\n  \"'$$'\",\n  \"'%'\",\n  \"''''\",\n  \"'('\",\n  \"'(#'\",\n  \"'(:'\",\n  \"')'\",\n  \"'*'\",\n  \"'*'\",\n  \"'+'\",\n  \"','\",\n  \"'-'\",\n  \"'-->'\",\n  \"'.'\",\n  \"'..'\",\n  \"'/'\",\n  \"'//'\",\n  \"'/>'\",\n  \"':'\",\n  \"':)'\",\n  \"'::'\",\n  \"':='\",\n  \"';'\",\n  \"'<'\",\n  \"'<!--'\",\n  \"'</'\",\n  \"'<<'\",\n  \"'<='\",\n  \"'<?'\",\n  \"'='\",\n  \"'>'\",\n  \"'>='\",\n  \"'>>'\",\n  \"'?'\",\n  \"'?>'\",\n  \"'@'\",\n  \"'NaN'\",\n  \"'['\",\n  \"']'\",\n  \"'after'\",\n  \"'all'\",\n  \"'allowing'\",\n  \"'ancestor'\",\n  \"'ancestor-or-self'\",\n  \"'and'\",\n  \"'any'\",\n  \"'append'\",\n  \"'array'\",\n  \"'as'\",\n  \"'ascending'\",\n  \"'at'\",\n  \"'attribute'\",\n  \"'base-uri'\",\n  \"'before'\",\n  \"'boundary-space'\",\n  \"'break'\",\n  \"'by'\",\n  \"'case'\",\n  \"'cast'\",\n  \"'castable'\",\n  \"'catch'\",\n  \"'check'\",\n  \"'child'\",\n  \"'collation'\",\n  \"'collection'\",\n  \"'comment'\",\n  \"'constraint'\",\n  \"'construction'\",\n  \"'contains'\",\n  \"'content'\",\n  \"'context'\",\n  \"'continue'\",\n  \"'copy'\",\n  \"'copy-namespaces'\",\n  \"'count'\",\n  \"'decimal-format'\",\n  \"'decimal-separator'\",\n  \"'declare'\",\n  \"'default'\",\n  \"'delete'\",\n  \"'descendant'\",\n  \"'descendant-or-self'\",\n  \"'descending'\",\n  \"'diacritics'\",\n  \"'different'\",\n  \"'digit'\",\n  \"'distance'\",\n  \"'div'\",\n  \"'document'\",\n  \"'document-node'\",\n  \"'element'\",\n  \"'else'\",\n  \"'empty'\",\n  \"'empty-sequence'\",\n  \"'encoding'\",\n  \"'end'\",\n  \"'entire'\",\n  \"'eq'\",\n  \"'every'\",\n  \"'exactly'\",\n  \"'except'\",\n  \"'exit'\",\n  \"'external'\",\n  \"'false'\",\n  \"'first'\",\n  \"'following'\",\n  \"'following-sibling'\",\n  \"'for'\",\n  \"'foreach'\",\n  \"'foreign'\",\n  \"'from'\",\n  \"'ft-option'\",\n  \"'ftand'\",\n  \"'ftnot'\",\n  \"'ftor'\",\n  \"'function'\",\n  \"'ge'\",\n  \"'greatest'\",\n  \"'group'\",\n  \"'grouping-separator'\",\n  \"'gt'\",\n  \"'idiv'\",\n  \"'if'\",\n  \"'import'\",\n  \"'in'\",\n  \"'index'\",\n  \"'infinity'\",\n  \"'inherit'\",\n  \"'insensitive'\",\n  \"'insert'\",\n  \"'instance'\",\n  \"'integrity'\",\n  \"'intersect'\",\n  \"'into'\",\n  \"'is'\",\n  \"'item'\",\n  \"'json'\",\n  \"'json-item'\",\n  \"'jsoniq'\",\n  \"'key'\",\n  \"'language'\",\n  \"'last'\",\n  \"'lax'\",\n  \"'le'\",\n  \"'least'\",\n  \"'let'\",\n  \"'levels'\",\n  \"'loop'\",\n  \"'lowercase'\",\n  \"'lt'\",\n  \"'minus-sign'\",\n  \"'mod'\",\n  \"'modify'\",\n  \"'module'\",\n  \"'most'\",\n  \"'namespace'\",\n  \"'namespace-node'\",\n  \"'ne'\",\n  \"'next'\",\n  \"'no'\",\n  \"'no-inherit'\",\n  \"'no-preserve'\",\n  \"'node'\",\n  \"'nodes'\",\n  \"'not'\",\n  \"'null'\",\n  \"'object'\",\n  \"'occurs'\",\n  \"'of'\",\n  \"'on'\",\n  \"'only'\",\n  \"'option'\",\n  \"'or'\",\n  \"'order'\",\n  \"'ordered'\",\n  \"'ordering'\",\n  \"'paragraph'\",\n  \"'paragraphs'\",\n  \"'parent'\",\n  \"'pattern-separator'\",\n  \"'per-mille'\",\n  \"'percent'\",\n  \"'phrase'\",\n  \"'position'\",\n  \"'preceding'\",\n  \"'preceding-sibling'\",\n  \"'preserve'\",\n  \"'previous'\",\n  \"'processing-instruction'\",\n  \"'relationship'\",\n  \"'rename'\",\n  \"'replace'\",\n  \"'return'\",\n  \"'returning'\",\n  \"'revalidation'\",\n  \"'same'\",\n  \"'satisfies'\",\n  \"'schema'\",\n  \"'schema-attribute'\",\n  \"'schema-element'\",\n  \"'score'\",\n  \"'select'\",\n  \"'self'\",\n  \"'sensitive'\",\n  \"'sentence'\",\n  \"'sentences'\",\n  \"'skip'\",\n  \"'sliding'\",\n  \"'some'\",\n  \"'stable'\",\n  \"'start'\",\n  \"'stemming'\",\n  \"'stop'\",\n  \"'strict'\",\n  \"'strip'\",\n  \"'structured-item'\",\n  \"'switch'\",\n  \"'text'\",\n  \"'then'\",\n  \"'thesaurus'\",\n  \"'times'\",\n  \"'to'\",\n  \"'treat'\",\n  \"'true'\",\n  \"'try'\",\n  \"'tumbling'\",\n  \"'type'\",\n  \"'typeswitch'\",\n  \"'union'\",\n  \"'unique'\",\n  \"'unordered'\",\n  \"'updating'\",\n  \"'uppercase'\",\n  \"'using'\",\n  \"'validate'\",\n  \"'value'\",\n  \"'variable'\",\n  \"'version'\",\n  \"'weight'\",\n  \"'when'\",\n  \"'where'\",\n  \"'while'\",\n  \"'wildcards'\",\n  \"'window'\",\n  \"'with'\",\n  \"'without'\",\n  \"'word'\",\n  \"'words'\",\n  \"'zero-digit'\",\n  \"'{'\",\n  \"'{{'\",\n  \"'{|'\",\n  \"'|'\",\n  \"'||'\",\n  \"'|}'\",\n  \"'}'\",\n  \"'}}'\"\n];\n\n},\n{}],\n10:[function(require,module,exports){\n                                                            var XQueryParser = exports.XQueryParser = function XQueryParser(string, parsingEventHandler)\n                                                            {\n                                                              init(string, parsingEventHandler);\n  var self = this;\n\n  this.ParseException = function(b, e, s, o, x)\n  {\n    var\n      begin = b,\n      end = e,\n      state = s,\n      offending = o,\n      expected = x;\n\n    this.getBegin = function() {return begin;};\n    this.getEnd = function() {return end;};\n    this.getState = function() {return state;};\n    this.getExpected = function() {return expected;};\n    this.getOffending = function() {return offending;};\n\n    this.getMessage = function()\n    {\n      return offending < 0 ? \"lexical analysis failed\" : \"syntax error\";\n    };\n  };\n\n  function init(string, parsingEventHandler)\n  {\n    eventHandler = parsingEventHandler;\n    input = string;\n    size = string.length;\n    reset(0, 0, 0);\n  }\n\n  this.getInput = function()\n  {\n    return input;\n  };\n\n  function reset(l, b, e)\n  {\n            b0 = b; e0 = b;\n    l1 = l; b1 = b; e1 = e;\n    l2 = 0;\n    end = e;\n    ex = -1;\n    memo = {};\n    eventHandler.reset(input);\n  }\n\n  this.getOffendingToken = function(e)\n  {\n    var o = e.getOffending();\n    return o >= 0 ? XQueryParser.TOKEN[o] : null;\n  };\n\n  this.getExpectedTokenSet = function(e)\n  {\n    var expected;\n    if (e.getExpected() < 0)\n    {\n      expected = XQueryParser.getTokenSet(- e.getState());\n    }\n    else\n    {\n      expected = [XQueryParser.TOKEN[e.getExpected()]];\n    }\n    return expected;\n  };\n\n  this.getErrorMessage = function(e)\n  {\n    var tokenSet = this.getExpectedTokenSet(e);\n    var found = this.getOffendingToken(e);\n    var prefix = input.substring(0, e.getBegin());\n    var lines = prefix.split(\"\\n\");\n    var line = lines.length;\n    var column = lines[line - 1].length + 1;\n    var size = e.getEnd() - e.getBegin();\n    return e.getMessage()\n         + (found == null ? \"\" : \", found \" + found)\n         + \"\\nwhile expecting \"\n         + (tokenSet.length == 1 ? tokenSet[0] : (\"[\" + tokenSet.join(\", \") + \"]\"))\n         + \"\\n\"\n         + (size == 0 || found != null ? \"\" : \"after successfully scanning \" + size + \" characters beginning \")\n         + \"at line \" + line + \", column \" + column + \":\\n...\"\n         + input.substring(e.getBegin(), Math.min(input.length, e.getBegin() + 64))\n         + \"...\";\n  };\n\n  this.parse_XQuery = function()\n  {\n    eventHandler.startNonterminal(\"XQuery\", e0);\n    lookahead1W(275);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_Module();\n    shift(25);                      // EOF\n    eventHandler.endNonterminal(\"XQuery\", e0);\n  };\n\n  function parse_Module()\n  {\n    eventHandler.startNonterminal(\"Module\", e0);\n    switch (l1)\n    {\n    case 274:                       // 'xquery'\n      lookahead2W(199);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 64274                 // 'xquery' 'encoding'\n     || lk == 134930)               // 'xquery' 'version'\n    {\n      parse_VersionDecl();\n    }\n    lookahead1W(275);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    switch (l1)\n    {\n    case 182:                       // 'module'\n      lookahead2W(194);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 94390:                     // 'module' 'namespace'\n      whitespace();\n      parse_LibraryModule();\n      break;\n    default:\n      whitespace();\n      parse_MainModule();\n    }\n    eventHandler.endNonterminal(\"Module\", e0);\n  }\n\n  function parse_VersionDecl()\n  {\n    eventHandler.startNonterminal(\"VersionDecl\", e0);\n    shift(274);                     // 'xquery'\n    lookahead1W(116);               // S^WS | '(:' | 'encoding' | 'version'\n    switch (l1)\n    {\n    case 125:                       // 'encoding'\n      shift(125);                   // 'encoding'\n      lookahead1W(17);              // StringLiteral | S^WS | '(:'\n      shift(11);                    // StringLiteral\n      break;\n    default:\n      shift(263);                   // 'version'\n      lookahead1W(17);              // StringLiteral | S^WS | '(:'\n      shift(11);                    // StringLiteral\n      lookahead1W(109);             // S^WS | '(:' | ';' | 'encoding'\n      if (l1 == 125)                // 'encoding'\n      {\n        shift(125);                 // 'encoding'\n        lookahead1W(17);            // StringLiteral | S^WS | '(:'\n        shift(11);                  // StringLiteral\n      }\n    }\n    lookahead1W(28);                // S^WS | '(:' | ';'\n    whitespace();\n    parse_Separator();\n    eventHandler.endNonterminal(\"VersionDecl\", e0);\n  }\n\n  function parse_LibraryModule()\n  {\n    eventHandler.startNonterminal(\"LibraryModule\", e0);\n    parse_ModuleDecl();\n    lookahead1W(138);               // S^WS | EOF | '(:' | 'declare' | 'import'\n    whitespace();\n    parse_Prolog();\n    eventHandler.endNonterminal(\"LibraryModule\", e0);\n  }\n\n  function parse_ModuleDecl()\n  {\n    eventHandler.startNonterminal(\"ModuleDecl\", e0);\n    shift(182);                     // 'module'\n    lookahead1W(61);                // S^WS | '(:' | 'namespace'\n    shift(184);                     // 'namespace'\n    lookahead1W(249);               // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_NCName();\n    lookahead1W(29);                // S^WS | '(:' | '='\n    shift(60);                      // '='\n    lookahead1W(15);                // URILiteral | S^WS | '(:'\n    shift(7);                       // URILiteral\n    lookahead1W(28);                // S^WS | '(:' | ';'\n    whitespace();\n    parse_Separator();\n    eventHandler.endNonterminal(\"ModuleDecl\", e0);\n  }\n\n  function parse_Prolog()\n  {\n    eventHandler.startNonterminal(\"Prolog\", e0);\n    for (;;)\n    {\n      lookahead1W(275);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      switch (l1)\n      {\n      case 108:                     // 'declare'\n        lookahead2W(214);           // S^WS | EOF | '!' | '!=' | '#' | '%' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' |\n        break;\n      case 153:                     // 'import'\n        lookahead2W(202);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk != 42604               // 'declare' 'base-uri'\n       && lk != 43628               // 'declare' 'boundary-space'\n       && lk != 50284               // 'declare' 'construction'\n       && lk != 53356               // 'declare' 'copy-namespaces'\n       && lk != 54380               // 'declare' 'decimal-format'\n       && lk != 55916               // 'declare' 'default'\n       && lk != 72300               // 'declare' 'ft-option'\n       && lk != 93337               // 'import' 'module'\n       && lk != 94316               // 'declare' 'namespace'\n       && lk != 104044              // 'declare' 'ordering'\n       && lk != 113772              // 'declare' 'revalidation'\n       && lk != 115353)             // 'import' 'schema'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 108:                     // 'declare'\n        lookahead2W(179);           // S^WS | '(:' | 'base-uri' | 'boundary-space' | 'construction' |\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk == 55916)              // 'declare' 'default'\n      {\n        lk = memoized(0, e0);\n        if (lk == 0)\n        {\n          var b0A = b0; var e0A = e0; var l1A = l1;\n          var b1A = b1; var e1A = e1; var l2A = l2;\n          var b2A = b2; var e2A = e2;\n          try\n          {\n            try_DefaultNamespaceDecl();\n            lk = -1;\n          }\n          catch (p1A)\n          {\n            lk = -2;\n          }\n          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n          b2 = b2A; e2 = e2A; end = e2A; }}\n          memoize(0, e0, lk);\n        }\n      }\n      switch (lk)\n      {\n      case -1:\n        whitespace();\n        parse_DefaultNamespaceDecl();\n        break;\n      case 94316:                   // 'declare' 'namespace'\n        whitespace();\n        parse_NamespaceDecl();\n        break;\n      case 153:                     // 'import'\n        whitespace();\n        parse_Import();\n        break;\n      case 72300:                   // 'declare' 'ft-option'\n        whitespace();\n        parse_FTOptionDecl();\n        break;\n      default:\n        whitespace();\n        parse_Setter();\n      }\n      lookahead1W(28);              // S^WS | '(:' | ';'\n      whitespace();\n      parse_Separator();\n    }\n    for (;;)\n    {\n      lookahead1W(275);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      switch (l1)\n      {\n      case 108:                     // 'declare'\n        lookahead2W(211);           // S^WS | EOF | '!' | '!=' | '#' | '%' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' |\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk != 16492               // 'declare' '%'\n       && lk != 48748               // 'declare' 'collection'\n       && lk != 51820               // 'declare' 'context'\n       && lk != 74348               // 'declare' 'function'\n       && lk != 79468               // 'declare' 'index'\n       && lk != 82540               // 'declare' 'integrity'\n       && lk != 101996              // 'declare' 'option'\n       && lk != 131692              // 'declare' 'updating'\n       && lk != 134252)             // 'declare' 'variable'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 108:                     // 'declare'\n        lookahead2W(175);           // S^WS | '%' | '(:' | 'collection' | 'context' | 'function' | 'index' |\n        break;\n      default:\n        lk = l1;\n      }\n      switch (lk)\n      {\n      case 51820:                   // 'declare' 'context'\n        whitespace();\n        parse_ContextItemDecl();\n        break;\n      case 101996:                  // 'declare' 'option'\n        whitespace();\n        parse_OptionDecl();\n        break;\n      default:\n        whitespace();\n        parse_AnnotatedDecl();\n      }\n      lookahead1W(28);              // S^WS | '(:' | ';'\n      whitespace();\n      parse_Separator();\n    }\n    eventHandler.endNonterminal(\"Prolog\", e0);\n  }\n\n  function parse_Separator()\n  {\n    eventHandler.startNonterminal(\"Separator\", e0);\n    shift(53);                      // ';'\n    eventHandler.endNonterminal(\"Separator\", e0);\n  }\n\n  function parse_Setter()\n  {\n    eventHandler.startNonterminal(\"Setter\", e0);\n    switch (l1)\n    {\n    case 108:                       // 'declare'\n      lookahead2W(172);             // S^WS | '(:' | 'base-uri' | 'boundary-space' | 'construction' |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 55916)                // 'declare' 'default'\n    {\n      lk = memoized(1, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_DefaultCollationDecl();\n          lk = -2;\n        }\n        catch (p2A)\n        {\n          try\n          {\n            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n            b2 = b2A; e2 = e2A; end = e2A; }}\n            try_EmptyOrderDecl();\n            lk = -6;\n          }\n          catch (p6A)\n          {\n            lk = -9;\n          }\n        }\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(1, e0, lk);\n      }\n    }\n    switch (lk)\n    {\n    case 43628:                     // 'declare' 'boundary-space'\n      parse_BoundarySpaceDecl();\n      break;\n    case -2:\n      parse_DefaultCollationDecl();\n      break;\n    case 42604:                     // 'declare' 'base-uri'\n      parse_BaseURIDecl();\n      break;\n    case 50284:                     // 'declare' 'construction'\n      parse_ConstructionDecl();\n      break;\n    case 104044:                    // 'declare' 'ordering'\n      parse_OrderingModeDecl();\n      break;\n    case -6:\n      parse_EmptyOrderDecl();\n      break;\n    case 113772:                    // 'declare' 'revalidation'\n      parse_RevalidationDecl();\n      break;\n    case 53356:                     // 'declare' 'copy-namespaces'\n      parse_CopyNamespacesDecl();\n      break;\n    default:\n      parse_DecimalFormatDecl();\n    }\n    eventHandler.endNonterminal(\"Setter\", e0);\n  }\n\n  function parse_BoundarySpaceDecl()\n  {\n    eventHandler.startNonterminal(\"BoundarySpaceDecl\", e0);\n    shift(108);                     // 'declare'\n    lookahead1W(33);                // S^WS | '(:' | 'boundary-space'\n    shift(85);                      // 'boundary-space'\n    lookahead1W(133);               // S^WS | '(:' | 'preserve' | 'strip'\n    switch (l1)\n    {\n    case 214:                       // 'preserve'\n      shift(214);                   // 'preserve'\n      break;\n    default:\n      shift(241);                   // 'strip'\n    }\n    eventHandler.endNonterminal(\"BoundarySpaceDecl\", e0);\n  }\n\n  function parse_DefaultCollationDecl()\n  {\n    eventHandler.startNonterminal(\"DefaultCollationDecl\", e0);\n    shift(108);                     // 'declare'\n    lookahead1W(46);                // S^WS | '(:' | 'default'\n    shift(109);                     // 'default'\n    lookahead1W(38);                // S^WS | '(:' | 'collation'\n    shift(94);                      // 'collation'\n    lookahead1W(15);                // URILiteral | S^WS | '(:'\n    shift(7);                       // URILiteral\n    eventHandler.endNonterminal(\"DefaultCollationDecl\", e0);\n  }\n\n  function try_DefaultCollationDecl()\n  {\n    shiftT(108);                    // 'declare'\n    lookahead1W(46);                // S^WS | '(:' | 'default'\n    shiftT(109);                    // 'default'\n    lookahead1W(38);                // S^WS | '(:' | 'collation'\n    shiftT(94);                     // 'collation'\n    lookahead1W(15);                // URILiteral | S^WS | '(:'\n    shiftT(7);                      // URILiteral\n  }\n\n  function parse_BaseURIDecl()\n  {\n    eventHandler.startNonterminal(\"BaseURIDecl\", e0);\n    shift(108);                     // 'declare'\n    lookahead1W(32);                // S^WS | '(:' | 'base-uri'\n    shift(83);                      // 'base-uri'\n    lookahead1W(15);                // URILiteral | S^WS | '(:'\n    shift(7);                       // URILiteral\n    eventHandler.endNonterminal(\"BaseURIDecl\", e0);\n  }\n\n  function parse_ConstructionDecl()\n  {\n    eventHandler.startNonterminal(\"ConstructionDecl\", e0);\n    shift(108);                     // 'declare'\n    lookahead1W(41);                // S^WS | '(:' | 'construction'\n    shift(98);                      // 'construction'\n    lookahead1W(133);               // S^WS | '(:' | 'preserve' | 'strip'\n    switch (l1)\n    {\n    case 241:                       // 'strip'\n      shift(241);                   // 'strip'\n      break;\n    default:\n      shift(214);                   // 'preserve'\n    }\n    eventHandler.endNonterminal(\"ConstructionDecl\", e0);\n  }\n\n  function parse_OrderingModeDecl()\n  {\n    eventHandler.startNonterminal(\"OrderingModeDecl\", e0);\n    shift(108);                     // 'declare'\n    lookahead1W(68);                // S^WS | '(:' | 'ordering'\n    shift(203);                     // 'ordering'\n    lookahead1W(131);               // S^WS | '(:' | 'ordered' | 'unordered'\n    switch (l1)\n    {\n    case 202:                       // 'ordered'\n      shift(202);                   // 'ordered'\n      break;\n    default:\n      shift(256);                   // 'unordered'\n    }\n    eventHandler.endNonterminal(\"OrderingModeDecl\", e0);\n  }\n\n  function parse_EmptyOrderDecl()\n  {\n    eventHandler.startNonterminal(\"EmptyOrderDecl\", e0);\n    shift(108);                     // 'declare'\n    lookahead1W(46);                // S^WS | '(:' | 'default'\n    shift(109);                     // 'default'\n    lookahead1W(67);                // S^WS | '(:' | 'order'\n    shift(201);                     // 'order'\n    lookahead1W(49);                // S^WS | '(:' | 'empty'\n    shift(123);                     // 'empty'\n    lookahead1W(121);               // S^WS | '(:' | 'greatest' | 'least'\n    switch (l1)\n    {\n    case 147:                       // 'greatest'\n      shift(147);                   // 'greatest'\n      break;\n    default:\n      shift(173);                   // 'least'\n    }\n    eventHandler.endNonterminal(\"EmptyOrderDecl\", e0);\n  }\n\n  function try_EmptyOrderDecl()\n  {\n    shiftT(108);                    // 'declare'\n    lookahead1W(46);                // S^WS | '(:' | 'default'\n    shiftT(109);                    // 'default'\n    lookahead1W(67);                // S^WS | '(:' | 'order'\n    shiftT(201);                    // 'order'\n    lookahead1W(49);                // S^WS | '(:' | 'empty'\n    shiftT(123);                    // 'empty'\n    lookahead1W(121);               // S^WS | '(:' | 'greatest' | 'least'\n    switch (l1)\n    {\n    case 147:                       // 'greatest'\n      shiftT(147);                  // 'greatest'\n      break;\n    default:\n      shiftT(173);                  // 'least'\n    }\n  }\n\n  function parse_CopyNamespacesDecl()\n  {\n    eventHandler.startNonterminal(\"CopyNamespacesDecl\", e0);\n    shift(108);                     // 'declare'\n    lookahead1W(44);                // S^WS | '(:' | 'copy-namespaces'\n    shift(104);                     // 'copy-namespaces'\n    lookahead1W(128);               // S^WS | '(:' | 'no-preserve' | 'preserve'\n    whitespace();\n    parse_PreserveMode();\n    lookahead1W(25);                // S^WS | '(:' | ','\n    shift(41);                      // ','\n    lookahead1W(123);               // S^WS | '(:' | 'inherit' | 'no-inherit'\n    whitespace();\n    parse_InheritMode();\n    eventHandler.endNonterminal(\"CopyNamespacesDecl\", e0);\n  }\n\n  function parse_PreserveMode()\n  {\n    eventHandler.startNonterminal(\"PreserveMode\", e0);\n    switch (l1)\n    {\n    case 214:                       // 'preserve'\n      shift(214);                   // 'preserve'\n      break;\n    default:\n      shift(190);                   // 'no-preserve'\n    }\n    eventHandler.endNonterminal(\"PreserveMode\", e0);\n  }\n\n  function parse_InheritMode()\n  {\n    eventHandler.startNonterminal(\"InheritMode\", e0);\n    switch (l1)\n    {\n    case 157:                       // 'inherit'\n      shift(157);                   // 'inherit'\n      break;\n    default:\n      shift(189);                   // 'no-inherit'\n    }\n    eventHandler.endNonterminal(\"InheritMode\", e0);\n  }\n\n  function parse_DecimalFormatDecl()\n  {\n    eventHandler.startNonterminal(\"DecimalFormatDecl\", e0);\n    shift(108);                     // 'declare'\n    lookahead1W(114);               // S^WS | '(:' | 'decimal-format' | 'default'\n    switch (l1)\n    {\n    case 106:                       // 'decimal-format'\n      shift(106);                   // 'decimal-format'\n      lookahead1W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_EQName();\n      break;\n    default:\n      shift(109);                   // 'default'\n      lookahead1W(45);              // S^WS | '(:' | 'decimal-format'\n      shift(106);                   // 'decimal-format'\n    }\n    for (;;)\n    {\n      lookahead1W(181);             // S^WS | '(:' | ';' | 'NaN' | 'decimal-separator' | 'digit' |\n      if (l1 == 53)                 // ';'\n      {\n        break;\n      }\n      whitespace();\n      parse_DFPropertyName();\n      lookahead1W(29);              // S^WS | '(:' | '='\n      shift(60);                    // '='\n      lookahead1W(17);              // StringLiteral | S^WS | '(:'\n      shift(11);                    // StringLiteral\n    }\n    eventHandler.endNonterminal(\"DecimalFormatDecl\", e0);\n  }\n\n  function parse_DFPropertyName()\n  {\n    eventHandler.startNonterminal(\"DFPropertyName\", e0);\n    switch (l1)\n    {\n    case 107:                       // 'decimal-separator'\n      shift(107);                   // 'decimal-separator'\n      break;\n    case 149:                       // 'grouping-separator'\n      shift(149);                   // 'grouping-separator'\n      break;\n    case 156:                       // 'infinity'\n      shift(156);                   // 'infinity'\n      break;\n    case 179:                       // 'minus-sign'\n      shift(179);                   // 'minus-sign'\n      break;\n    case 67:                        // 'NaN'\n      shift(67);                    // 'NaN'\n      break;\n    case 209:                       // 'percent'\n      shift(209);                   // 'percent'\n      break;\n    case 208:                       // 'per-mille'\n      shift(208);                   // 'per-mille'\n      break;\n    case 275:                       // 'zero-digit'\n      shift(275);                   // 'zero-digit'\n      break;\n    case 116:                       // 'digit'\n      shift(116);                   // 'digit'\n      break;\n    default:\n      shift(207);                   // 'pattern-separator'\n    }\n    eventHandler.endNonterminal(\"DFPropertyName\", e0);\n  }\n\n  function parse_Import()\n  {\n    eventHandler.startNonterminal(\"Import\", e0);\n    switch (l1)\n    {\n    case 153:                       // 'import'\n      lookahead2W(126);             // S^WS | '(:' | 'module' | 'schema'\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 115353:                    // 'import' 'schema'\n      parse_SchemaImport();\n      break;\n    default:\n      parse_ModuleImport();\n    }\n    eventHandler.endNonterminal(\"Import\", e0);\n  }\n\n  function parse_SchemaImport()\n  {\n    eventHandler.startNonterminal(\"SchemaImport\", e0);\n    shift(153);                     // 'import'\n    lookahead1W(73);                // S^WS | '(:' | 'schema'\n    shift(225);                     // 'schema'\n    lookahead1W(137);               // URILiteral | S^WS | '(:' | 'default' | 'namespace'\n    if (l1 != 7)                    // URILiteral\n    {\n      whitespace();\n      parse_SchemaPrefix();\n    }\n    lookahead1W(15);                // URILiteral | S^WS | '(:'\n    shift(7);                       // URILiteral\n    lookahead1W(108);               // S^WS | '(:' | ';' | 'at'\n    if (l1 == 81)                   // 'at'\n    {\n      shift(81);                    // 'at'\n      lookahead1W(15);              // URILiteral | S^WS | '(:'\n      shift(7);                     // URILiteral\n      for (;;)\n      {\n        lookahead1W(103);           // S^WS | '(:' | ',' | ';'\n        if (l1 != 41)               // ','\n        {\n          break;\n        }\n        shift(41);                  // ','\n        lookahead1W(15);            // URILiteral | S^WS | '(:'\n        shift(7);                   // URILiteral\n      }\n    }\n    eventHandler.endNonterminal(\"SchemaImport\", e0);\n  }\n\n  function parse_SchemaPrefix()\n  {\n    eventHandler.startNonterminal(\"SchemaPrefix\", e0);\n    switch (l1)\n    {\n    case 184:                       // 'namespace'\n      shift(184);                   // 'namespace'\n      lookahead1W(249);             // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_NCName();\n      lookahead1W(29);              // S^WS | '(:' | '='\n      shift(60);                    // '='\n      break;\n    default:\n      shift(109);                   // 'default'\n      lookahead1W(47);              // S^WS | '(:' | 'element'\n      shift(121);                   // 'element'\n      lookahead1W(61);              // S^WS | '(:' | 'namespace'\n      shift(184);                   // 'namespace'\n    }\n    eventHandler.endNonterminal(\"SchemaPrefix\", e0);\n  }\n\n  function parse_ModuleImport()\n  {\n    eventHandler.startNonterminal(\"ModuleImport\", e0);\n    shift(153);                     // 'import'\n    lookahead1W(60);                // S^WS | '(:' | 'module'\n    shift(182);                     // 'module'\n    lookahead1W(90);                // URILiteral | S^WS | '(:' | 'namespace'\n    if (l1 == 184)                  // 'namespace'\n    {\n      shift(184);                   // 'namespace'\n      lookahead1W(249);             // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_NCName();\n      lookahead1W(29);              // S^WS | '(:' | '='\n      shift(60);                    // '='\n    }\n    lookahead1W(15);                // URILiteral | S^WS | '(:'\n    shift(7);                       // URILiteral\n    lookahead1W(108);               // S^WS | '(:' | ';' | 'at'\n    if (l1 == 81)                   // 'at'\n    {\n      shift(81);                    // 'at'\n      lookahead1W(15);              // URILiteral | S^WS | '(:'\n      shift(7);                     // URILiteral\n      for (;;)\n      {\n        lookahead1W(103);           // S^WS | '(:' | ',' | ';'\n        if (l1 != 41)               // ','\n        {\n          break;\n        }\n        shift(41);                  // ','\n        lookahead1W(15);            // URILiteral | S^WS | '(:'\n        shift(7);                   // URILiteral\n      }\n    }\n    eventHandler.endNonterminal(\"ModuleImport\", e0);\n  }\n\n  function parse_NamespaceDecl()\n  {\n    eventHandler.startNonterminal(\"NamespaceDecl\", e0);\n    shift(108);                     // 'declare'\n    lookahead1W(61);                // S^WS | '(:' | 'namespace'\n    shift(184);                     // 'namespace'\n    lookahead1W(249);               // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_NCName();\n    lookahead1W(29);                // S^WS | '(:' | '='\n    shift(60);                      // '='\n    lookahead1W(15);                // URILiteral | S^WS | '(:'\n    shift(7);                       // URILiteral\n    eventHandler.endNonterminal(\"NamespaceDecl\", e0);\n  }\n\n  function parse_DefaultNamespaceDecl()\n  {\n    eventHandler.startNonterminal(\"DefaultNamespaceDecl\", e0);\n    shift(108);                     // 'declare'\n    lookahead1W(46);                // S^WS | '(:' | 'default'\n    shift(109);                     // 'default'\n    lookahead1W(115);               // S^WS | '(:' | 'element' | 'function'\n    switch (l1)\n    {\n    case 121:                       // 'element'\n      shift(121);                   // 'element'\n      break;\n    default:\n      shift(145);                   // 'function'\n    }\n    lookahead1W(61);                // S^WS | '(:' | 'namespace'\n    shift(184);                     // 'namespace'\n    lookahead1W(15);                // URILiteral | S^WS | '(:'\n    shift(7);                       // URILiteral\n    eventHandler.endNonterminal(\"DefaultNamespaceDecl\", e0);\n  }\n\n  function try_DefaultNamespaceDecl()\n  {\n    shiftT(108);                    // 'declare'\n    lookahead1W(46);                // S^WS | '(:' | 'default'\n    shiftT(109);                    // 'default'\n    lookahead1W(115);               // S^WS | '(:' | 'element' | 'function'\n    switch (l1)\n    {\n    case 121:                       // 'element'\n      shiftT(121);                  // 'element'\n      break;\n    default:\n      shiftT(145);                  // 'function'\n    }\n    lookahead1W(61);                // S^WS | '(:' | 'namespace'\n    shiftT(184);                    // 'namespace'\n    lookahead1W(15);                // URILiteral | S^WS | '(:'\n    shiftT(7);                      // URILiteral\n  }\n\n  function parse_FTOptionDecl()\n  {\n    eventHandler.startNonterminal(\"FTOptionDecl\", e0);\n    shift(108);                     // 'declare'\n    lookahead1W(52);                // S^WS | '(:' | 'ft-option'\n    shift(141);                     // 'ft-option'\n    lookahead1W(81);                // S^WS | '(:' | 'using'\n    whitespace();\n    parse_FTMatchOptions();\n    eventHandler.endNonterminal(\"FTOptionDecl\", e0);\n  }\n\n  function parse_AnnotatedDecl()\n  {\n    eventHandler.startNonterminal(\"AnnotatedDecl\", e0);\n    shift(108);                     // 'declare'\n    for (;;)\n    {\n      lookahead1W(170);             // S^WS | '%' | '(:' | 'collection' | 'function' | 'index' | 'integrity' |\n      if (l1 != 32                  // '%'\n       && l1 != 257)                // 'updating'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 257:                     // 'updating'\n        whitespace();\n        parse_CompatibilityAnnotation();\n        break;\n      default:\n        whitespace();\n        parse_Annotation();\n      }\n    }\n    switch (l1)\n    {\n    case 262:                       // 'variable'\n      whitespace();\n      parse_VarDecl();\n      break;\n    case 145:                       // 'function'\n      whitespace();\n      parse_FunctionDecl();\n      break;\n    case 95:                        // 'collection'\n      whitespace();\n      parse_CollectionDecl();\n      break;\n    case 155:                       // 'index'\n      whitespace();\n      parse_IndexDecl();\n      break;\n    default:\n      whitespace();\n      parse_ICDecl();\n    }\n    eventHandler.endNonterminal(\"AnnotatedDecl\", e0);\n  }\n\n  function parse_CompatibilityAnnotation()\n  {\n    eventHandler.startNonterminal(\"CompatibilityAnnotation\", e0);\n    shift(257);                     // 'updating'\n    eventHandler.endNonterminal(\"CompatibilityAnnotation\", e0);\n  }\n\n  function parse_Annotation()\n  {\n    eventHandler.startNonterminal(\"Annotation\", e0);\n    shift(32);                      // '%'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_EQName();\n    lookahead1W(171);               // S^WS | '%' | '(' | '(:' | 'collection' | 'function' | 'index' | 'integrity' |\n    if (l1 == 34)                   // '('\n    {\n      shift(34);                    // '('\n      lookahead1W(154);             // IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | S^WS | '(:'\n      whitespace();\n      parse_Literal();\n      for (;;)\n      {\n        lookahead1W(101);           // S^WS | '(:' | ')' | ','\n        if (l1 != 41)               // ','\n        {\n          break;\n        }\n        shift(41);                  // ','\n        lookahead1W(154);           // IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | S^WS | '(:'\n        whitespace();\n        parse_Literal();\n      }\n      shift(37);                    // ')'\n    }\n    eventHandler.endNonterminal(\"Annotation\", e0);\n  }\n\n  function try_Annotation()\n  {\n    shiftT(32);                     // '%'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_EQName();\n    lookahead1W(171);               // S^WS | '%' | '(' | '(:' | 'collection' | 'function' | 'index' | 'integrity' |\n    if (l1 == 34)                   // '('\n    {\n      shiftT(34);                   // '('\n      lookahead1W(154);             // IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | S^WS | '(:'\n      try_Literal();\n      for (;;)\n      {\n        lookahead1W(101);           // S^WS | '(:' | ')' | ','\n        if (l1 != 41)               // ','\n        {\n          break;\n        }\n        shiftT(41);                 // ','\n        lookahead1W(154);           // IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | S^WS | '(:'\n        try_Literal();\n      }\n      shiftT(37);                   // ')'\n    }\n  }\n\n  function parse_VarDecl()\n  {\n    eventHandler.startNonterminal(\"VarDecl\", e0);\n    shift(262);                     // 'variable'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shift(31);                      // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    lookahead1W(147);               // S^WS | '(:' | ':=' | 'as' | 'external'\n    if (l1 == 79)                   // 'as'\n    {\n      whitespace();\n      parse_TypeDeclaration();\n    }\n    lookahead1W(106);               // S^WS | '(:' | ':=' | 'external'\n    switch (l1)\n    {\n    case 52:                        // ':='\n      shift(52);                    // ':='\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_VarValue();\n      break;\n    default:\n      shift(133);                   // 'external'\n      lookahead1W(104);             // S^WS | '(:' | ':=' | ';'\n      if (l1 == 52)                 // ':='\n      {\n        shift(52);                  // ':='\n        lookahead1W(267);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        whitespace();\n        parse_VarDefaultValue();\n      }\n    }\n    eventHandler.endNonterminal(\"VarDecl\", e0);\n  }\n\n  function parse_VarValue()\n  {\n    eventHandler.startNonterminal(\"VarValue\", e0);\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"VarValue\", e0);\n  }\n\n  function parse_VarDefaultValue()\n  {\n    eventHandler.startNonterminal(\"VarDefaultValue\", e0);\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"VarDefaultValue\", e0);\n  }\n\n  function parse_ContextItemDecl()\n  {\n    eventHandler.startNonterminal(\"ContextItemDecl\", e0);\n    shift(108);                     // 'declare'\n    lookahead1W(43);                // S^WS | '(:' | 'context'\n    shift(101);                     // 'context'\n    lookahead1W(55);                // S^WS | '(:' | 'item'\n    shift(165);                     // 'item'\n    lookahead1W(147);               // S^WS | '(:' | ':=' | 'as' | 'external'\n    if (l1 == 79)                   // 'as'\n    {\n      shift(79);                    // 'as'\n      lookahead1W(260);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_ItemType();\n    }\n    lookahead1W(106);               // S^WS | '(:' | ':=' | 'external'\n    switch (l1)\n    {\n    case 52:                        // ':='\n      shift(52);                    // ':='\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_VarValue();\n      break;\n    default:\n      shift(133);                   // 'external'\n      lookahead1W(104);             // S^WS | '(:' | ':=' | ';'\n      if (l1 == 52)                 // ':='\n      {\n        shift(52);                  // ':='\n        lookahead1W(267);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        whitespace();\n        parse_VarDefaultValue();\n      }\n    }\n    eventHandler.endNonterminal(\"ContextItemDecl\", e0);\n  }\n\n  function parse_ParamList()\n  {\n    eventHandler.startNonterminal(\"ParamList\", e0);\n    parse_Param();\n    for (;;)\n    {\n      lookahead1W(101);             // S^WS | '(:' | ')' | ','\n      if (l1 != 41)                 // ','\n      {\n        break;\n      }\n      shift(41);                    // ','\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      whitespace();\n      parse_Param();\n    }\n    eventHandler.endNonterminal(\"ParamList\", e0);\n  }\n\n  function try_ParamList()\n  {\n    try_Param();\n    for (;;)\n    {\n      lookahead1W(101);             // S^WS | '(:' | ')' | ','\n      if (l1 != 41)                 // ','\n      {\n        break;\n      }\n      shiftT(41);                   // ','\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      try_Param();\n    }\n  }\n\n  function parse_Param()\n  {\n    eventHandler.startNonterminal(\"Param\", e0);\n    shift(31);                      // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_EQName();\n    lookahead1W(143);               // S^WS | '(:' | ')' | ',' | 'as'\n    if (l1 == 79)                   // 'as'\n    {\n      whitespace();\n      parse_TypeDeclaration();\n    }\n    eventHandler.endNonterminal(\"Param\", e0);\n  }\n\n  function try_Param()\n  {\n    shiftT(31);                     // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_EQName();\n    lookahead1W(143);               // S^WS | '(:' | ')' | ',' | 'as'\n    if (l1 == 79)                   // 'as'\n    {\n      try_TypeDeclaration();\n    }\n  }\n\n  function parse_FunctionBody()\n  {\n    eventHandler.startNonterminal(\"FunctionBody\", e0);\n    parse_EnclosedExpr();\n    eventHandler.endNonterminal(\"FunctionBody\", e0);\n  }\n\n  function try_FunctionBody()\n  {\n    try_EnclosedExpr();\n  }\n\n  function parse_EnclosedExpr()\n  {\n    eventHandler.startNonterminal(\"EnclosedExpr\", e0);\n    shift(276);                     // '{'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_Expr();\n    shift(282);                     // '}'\n    eventHandler.endNonterminal(\"EnclosedExpr\", e0);\n  }\n\n  function try_EnclosedExpr()\n  {\n    shiftT(276);                    // '{'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_Expr();\n    shiftT(282);                    // '}'\n  }\n\n  function parse_OptionDecl()\n  {\n    eventHandler.startNonterminal(\"OptionDecl\", e0);\n    shift(108);                     // 'declare'\n    lookahead1W(66);                // S^WS | '(:' | 'option'\n    shift(199);                     // 'option'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_EQName();\n    lookahead1W(17);                // StringLiteral | S^WS | '(:'\n    shift(11);                      // StringLiteral\n    eventHandler.endNonterminal(\"OptionDecl\", e0);\n  }\n\n  function parse_Expr()\n  {\n    eventHandler.startNonterminal(\"Expr\", e0);\n    parse_ExprSingle();\n    for (;;)\n    {\n      if (l1 != 41)                 // ','\n      {\n        break;\n      }\n      shift(41);                    // ','\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_ExprSingle();\n    }\n    eventHandler.endNonterminal(\"Expr\", e0);\n  }\n\n  function try_Expr()\n  {\n    try_ExprSingle();\n    for (;;)\n    {\n      if (l1 != 41)                 // ','\n      {\n        break;\n      }\n      shiftT(41);                   // ','\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_ExprSingle();\n    }\n  }\n\n  function parse_FLWORExpr()\n  {\n    eventHandler.startNonterminal(\"FLWORExpr\", e0);\n    parse_InitialClause();\n    for (;;)\n    {\n      lookahead1W(173);             // S^WS | '(:' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' | 'stable' |\n      if (l1 == 220)                // 'return'\n      {\n        break;\n      }\n      whitespace();\n      parse_IntermediateClause();\n    }\n    whitespace();\n    parse_ReturnClause();\n    eventHandler.endNonterminal(\"FLWORExpr\", e0);\n  }\n\n  function try_FLWORExpr()\n  {\n    try_InitialClause();\n    for (;;)\n    {\n      lookahead1W(173);             // S^WS | '(:' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' | 'stable' |\n      if (l1 == 220)                // 'return'\n      {\n        break;\n      }\n      try_IntermediateClause();\n    }\n    try_ReturnClause();\n  }\n\n  function parse_InitialClause()\n  {\n    eventHandler.startNonterminal(\"InitialClause\", e0);\n    switch (l1)\n    {\n    case 137:                       // 'for'\n      lookahead2W(141);             // S^WS | '$' | '(:' | 'sliding' | 'tumbling'\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 16009:                     // 'for' '$'\n      parse_ForClause();\n      break;\n    case 174:                       // 'let'\n      parse_LetClause();\n      break;\n    default:\n      parse_WindowClause();\n    }\n    eventHandler.endNonterminal(\"InitialClause\", e0);\n  }\n\n  function try_InitialClause()\n  {\n    switch (l1)\n    {\n    case 137:                       // 'for'\n      lookahead2W(141);             // S^WS | '$' | '(:' | 'sliding' | 'tumbling'\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 16009:                     // 'for' '$'\n      try_ForClause();\n      break;\n    case 174:                       // 'let'\n      try_LetClause();\n      break;\n    default:\n      try_WindowClause();\n    }\n  }\n\n  function parse_IntermediateClause()\n  {\n    eventHandler.startNonterminal(\"IntermediateClause\", e0);\n    switch (l1)\n    {\n    case 137:                       // 'for'\n    case 174:                       // 'let'\n      parse_InitialClause();\n      break;\n    case 266:                       // 'where'\n      parse_WhereClause();\n      break;\n    case 148:                       // 'group'\n      parse_GroupByClause();\n      break;\n    case 105:                       // 'count'\n      parse_CountClause();\n      break;\n    default:\n      parse_OrderByClause();\n    }\n    eventHandler.endNonterminal(\"IntermediateClause\", e0);\n  }\n\n  function try_IntermediateClause()\n  {\n    switch (l1)\n    {\n    case 137:                       // 'for'\n    case 174:                       // 'let'\n      try_InitialClause();\n      break;\n    case 266:                       // 'where'\n      try_WhereClause();\n      break;\n    case 148:                       // 'group'\n      try_GroupByClause();\n      break;\n    case 105:                       // 'count'\n      try_CountClause();\n      break;\n    default:\n      try_OrderByClause();\n    }\n  }\n\n  function parse_ForClause()\n  {\n    eventHandler.startNonterminal(\"ForClause\", e0);\n    shift(137);                     // 'for'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    whitespace();\n    parse_ForBinding();\n    for (;;)\n    {\n      if (l1 != 41)                 // ','\n      {\n        break;\n      }\n      shift(41);                    // ','\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      whitespace();\n      parse_ForBinding();\n    }\n    eventHandler.endNonterminal(\"ForClause\", e0);\n  }\n\n  function try_ForClause()\n  {\n    shiftT(137);                    // 'for'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    try_ForBinding();\n    for (;;)\n    {\n      if (l1 != 41)                 // ','\n      {\n        break;\n      }\n      shiftT(41);                   // ','\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      try_ForBinding();\n    }\n  }\n\n  function parse_ForBinding()\n  {\n    eventHandler.startNonterminal(\"ForBinding\", e0);\n    shift(31);                      // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    lookahead1W(164);               // S^WS | '(:' | 'allowing' | 'as' | 'at' | 'in' | 'score'\n    if (l1 == 79)                   // 'as'\n    {\n      whitespace();\n      parse_TypeDeclaration();\n    }\n    lookahead1W(158);               // S^WS | '(:' | 'allowing' | 'at' | 'in' | 'score'\n    if (l1 == 72)                   // 'allowing'\n    {\n      whitespace();\n      parse_AllowingEmpty();\n    }\n    lookahead1W(150);               // S^WS | '(:' | 'at' | 'in' | 'score'\n    if (l1 == 81)                   // 'at'\n    {\n      whitespace();\n      parse_PositionalVar();\n    }\n    lookahead1W(122);               // S^WS | '(:' | 'in' | 'score'\n    if (l1 == 228)                  // 'score'\n    {\n      whitespace();\n      parse_FTScoreVar();\n    }\n    lookahead1W(53);                // S^WS | '(:' | 'in'\n    shift(154);                     // 'in'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"ForBinding\", e0);\n  }\n\n  function try_ForBinding()\n  {\n    shiftT(31);                     // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_VarName();\n    lookahead1W(164);               // S^WS | '(:' | 'allowing' | 'as' | 'at' | 'in' | 'score'\n    if (l1 == 79)                   // 'as'\n    {\n      try_TypeDeclaration();\n    }\n    lookahead1W(158);               // S^WS | '(:' | 'allowing' | 'at' | 'in' | 'score'\n    if (l1 == 72)                   // 'allowing'\n    {\n      try_AllowingEmpty();\n    }\n    lookahead1W(150);               // S^WS | '(:' | 'at' | 'in' | 'score'\n    if (l1 == 81)                   // 'at'\n    {\n      try_PositionalVar();\n    }\n    lookahead1W(122);               // S^WS | '(:' | 'in' | 'score'\n    if (l1 == 228)                  // 'score'\n    {\n      try_FTScoreVar();\n    }\n    lookahead1W(53);                // S^WS | '(:' | 'in'\n    shiftT(154);                    // 'in'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_AllowingEmpty()\n  {\n    eventHandler.startNonterminal(\"AllowingEmpty\", e0);\n    shift(72);                      // 'allowing'\n    lookahead1W(49);                // S^WS | '(:' | 'empty'\n    shift(123);                     // 'empty'\n    eventHandler.endNonterminal(\"AllowingEmpty\", e0);\n  }\n\n  function try_AllowingEmpty()\n  {\n    shiftT(72);                     // 'allowing'\n    lookahead1W(49);                // S^WS | '(:' | 'empty'\n    shiftT(123);                    // 'empty'\n  }\n\n  function parse_PositionalVar()\n  {\n    eventHandler.startNonterminal(\"PositionalVar\", e0);\n    shift(81);                      // 'at'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shift(31);                      // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    eventHandler.endNonterminal(\"PositionalVar\", e0);\n  }\n\n  function try_PositionalVar()\n  {\n    shiftT(81);                     // 'at'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shiftT(31);                     // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_VarName();\n  }\n\n  function parse_FTScoreVar()\n  {\n    eventHandler.startNonterminal(\"FTScoreVar\", e0);\n    shift(228);                     // 'score'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shift(31);                      // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    eventHandler.endNonterminal(\"FTScoreVar\", e0);\n  }\n\n  function try_FTScoreVar()\n  {\n    shiftT(228);                    // 'score'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shiftT(31);                     // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_VarName();\n  }\n\n  function parse_LetClause()\n  {\n    eventHandler.startNonterminal(\"LetClause\", e0);\n    shift(174);                     // 'let'\n    lookahead1W(96);                // S^WS | '$' | '(:' | 'score'\n    whitespace();\n    parse_LetBinding();\n    for (;;)\n    {\n      if (l1 != 41)                 // ','\n      {\n        break;\n      }\n      shift(41);                    // ','\n      lookahead1W(96);              // S^WS | '$' | '(:' | 'score'\n      whitespace();\n      parse_LetBinding();\n    }\n    eventHandler.endNonterminal(\"LetClause\", e0);\n  }\n\n  function try_LetClause()\n  {\n    shiftT(174);                    // 'let'\n    lookahead1W(96);                // S^WS | '$' | '(:' | 'score'\n    try_LetBinding();\n    for (;;)\n    {\n      if (l1 != 41)                 // ','\n      {\n        break;\n      }\n      shiftT(41);                   // ','\n      lookahead1W(96);              // S^WS | '$' | '(:' | 'score'\n      try_LetBinding();\n    }\n  }\n\n  function parse_LetBinding()\n  {\n    eventHandler.startNonterminal(\"LetBinding\", e0);\n    switch (l1)\n    {\n    case 31:                        // '$'\n      shift(31);                    // '$'\n      lookahead1W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_VarName();\n      lookahead1W(105);             // S^WS | '(:' | ':=' | 'as'\n      if (l1 == 79)                 // 'as'\n      {\n        whitespace();\n        parse_TypeDeclaration();\n      }\n      break;\n    default:\n      parse_FTScoreVar();\n    }\n    lookahead1W(27);                // S^WS | '(:' | ':='\n    shift(52);                      // ':='\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"LetBinding\", e0);\n  }\n\n  function try_LetBinding()\n  {\n    switch (l1)\n    {\n    case 31:                        // '$'\n      shiftT(31);                   // '$'\n      lookahead1W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_VarName();\n      lookahead1W(105);             // S^WS | '(:' | ':=' | 'as'\n      if (l1 == 79)                 // 'as'\n      {\n        try_TypeDeclaration();\n      }\n      break;\n    default:\n      try_FTScoreVar();\n    }\n    lookahead1W(27);                // S^WS | '(:' | ':='\n    shiftT(52);                     // ':='\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_WindowClause()\n  {\n    eventHandler.startNonterminal(\"WindowClause\", e0);\n    shift(137);                     // 'for'\n    lookahead1W(135);               // S^WS | '(:' | 'sliding' | 'tumbling'\n    switch (l1)\n    {\n    case 251:                       // 'tumbling'\n      whitespace();\n      parse_TumblingWindowClause();\n      break;\n    default:\n      whitespace();\n      parse_SlidingWindowClause();\n    }\n    eventHandler.endNonterminal(\"WindowClause\", e0);\n  }\n\n  function try_WindowClause()\n  {\n    shiftT(137);                    // 'for'\n    lookahead1W(135);               // S^WS | '(:' | 'sliding' | 'tumbling'\n    switch (l1)\n    {\n    case 251:                       // 'tumbling'\n      try_TumblingWindowClause();\n      break;\n    default:\n      try_SlidingWindowClause();\n    }\n  }\n\n  function parse_TumblingWindowClause()\n  {\n    eventHandler.startNonterminal(\"TumblingWindowClause\", e0);\n    shift(251);                     // 'tumbling'\n    lookahead1W(85);                // S^WS | '(:' | 'window'\n    shift(269);                     // 'window'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shift(31);                      // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    lookahead1W(110);               // S^WS | '(:' | 'as' | 'in'\n    if (l1 == 79)                   // 'as'\n    {\n      whitespace();\n      parse_TypeDeclaration();\n    }\n    lookahead1W(53);                // S^WS | '(:' | 'in'\n    shift(154);                     // 'in'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    whitespace();\n    parse_WindowStartCondition();\n    if (l1 == 126                   // 'end'\n     || l1 == 198)                  // 'only'\n    {\n      whitespace();\n      parse_WindowEndCondition();\n    }\n    eventHandler.endNonterminal(\"TumblingWindowClause\", e0);\n  }\n\n  function try_TumblingWindowClause()\n  {\n    shiftT(251);                    // 'tumbling'\n    lookahead1W(85);                // S^WS | '(:' | 'window'\n    shiftT(269);                    // 'window'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shiftT(31);                     // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_VarName();\n    lookahead1W(110);               // S^WS | '(:' | 'as' | 'in'\n    if (l1 == 79)                   // 'as'\n    {\n      try_TypeDeclaration();\n    }\n    lookahead1W(53);                // S^WS | '(:' | 'in'\n    shiftT(154);                    // 'in'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n    try_WindowStartCondition();\n    if (l1 == 126                   // 'end'\n     || l1 == 198)                  // 'only'\n    {\n      try_WindowEndCondition();\n    }\n  }\n\n  function parse_SlidingWindowClause()\n  {\n    eventHandler.startNonterminal(\"SlidingWindowClause\", e0);\n    shift(234);                     // 'sliding'\n    lookahead1W(85);                // S^WS | '(:' | 'window'\n    shift(269);                     // 'window'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shift(31);                      // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    lookahead1W(110);               // S^WS | '(:' | 'as' | 'in'\n    if (l1 == 79)                   // 'as'\n    {\n      whitespace();\n      parse_TypeDeclaration();\n    }\n    lookahead1W(53);                // S^WS | '(:' | 'in'\n    shift(154);                     // 'in'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    whitespace();\n    parse_WindowStartCondition();\n    whitespace();\n    parse_WindowEndCondition();\n    eventHandler.endNonterminal(\"SlidingWindowClause\", e0);\n  }\n\n  function try_SlidingWindowClause()\n  {\n    shiftT(234);                    // 'sliding'\n    lookahead1W(85);                // S^WS | '(:' | 'window'\n    shiftT(269);                    // 'window'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shiftT(31);                     // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_VarName();\n    lookahead1W(110);               // S^WS | '(:' | 'as' | 'in'\n    if (l1 == 79)                   // 'as'\n    {\n      try_TypeDeclaration();\n    }\n    lookahead1W(53);                // S^WS | '(:' | 'in'\n    shiftT(154);                    // 'in'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n    try_WindowStartCondition();\n    try_WindowEndCondition();\n  }\n\n  function parse_WindowStartCondition()\n  {\n    eventHandler.startNonterminal(\"WindowStartCondition\", e0);\n    shift(237);                     // 'start'\n    lookahead1W(163);               // S^WS | '$' | '(:' | 'at' | 'next' | 'previous' | 'when'\n    whitespace();\n    parse_WindowVars();\n    lookahead1W(83);                // S^WS | '(:' | 'when'\n    shift(265);                     // 'when'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"WindowStartCondition\", e0);\n  }\n\n  function try_WindowStartCondition()\n  {\n    shiftT(237);                    // 'start'\n    lookahead1W(163);               // S^WS | '$' | '(:' | 'at' | 'next' | 'previous' | 'when'\n    try_WindowVars();\n    lookahead1W(83);                // S^WS | '(:' | 'when'\n    shiftT(265);                    // 'when'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_WindowEndCondition()\n  {\n    eventHandler.startNonterminal(\"WindowEndCondition\", e0);\n    if (l1 == 198)                  // 'only'\n    {\n      shift(198);                   // 'only'\n    }\n    lookahead1W(50);                // S^WS | '(:' | 'end'\n    shift(126);                     // 'end'\n    lookahead1W(163);               // S^WS | '$' | '(:' | 'at' | 'next' | 'previous' | 'when'\n    whitespace();\n    parse_WindowVars();\n    lookahead1W(83);                // S^WS | '(:' | 'when'\n    shift(265);                     // 'when'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"WindowEndCondition\", e0);\n  }\n\n  function try_WindowEndCondition()\n  {\n    if (l1 == 198)                  // 'only'\n    {\n      shiftT(198);                  // 'only'\n    }\n    lookahead1W(50);                // S^WS | '(:' | 'end'\n    shiftT(126);                    // 'end'\n    lookahead1W(163);               // S^WS | '$' | '(:' | 'at' | 'next' | 'previous' | 'when'\n    try_WindowVars();\n    lookahead1W(83);                // S^WS | '(:' | 'when'\n    shiftT(265);                    // 'when'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_WindowVars()\n  {\n    eventHandler.startNonterminal(\"WindowVars\", e0);\n    if (l1 == 31)                   // '$'\n    {\n      shift(31);                    // '$'\n      lookahead1W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_CurrentItem();\n    }\n    lookahead1W(159);               // S^WS | '(:' | 'at' | 'next' | 'previous' | 'when'\n    if (l1 == 81)                   // 'at'\n    {\n      whitespace();\n      parse_PositionalVar();\n    }\n    lookahead1W(153);               // S^WS | '(:' | 'next' | 'previous' | 'when'\n    if (l1 == 215)                  // 'previous'\n    {\n      shift(215);                   // 'previous'\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      shift(31);                    // '$'\n      lookahead1W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_PreviousItem();\n    }\n    lookahead1W(127);               // S^WS | '(:' | 'next' | 'when'\n    if (l1 == 187)                  // 'next'\n    {\n      shift(187);                   // 'next'\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      shift(31);                    // '$'\n      lookahead1W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_NextItem();\n    }\n    eventHandler.endNonterminal(\"WindowVars\", e0);\n  }\n\n  function try_WindowVars()\n  {\n    if (l1 == 31)                   // '$'\n    {\n      shiftT(31);                   // '$'\n      lookahead1W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_CurrentItem();\n    }\n    lookahead1W(159);               // S^WS | '(:' | 'at' | 'next' | 'previous' | 'when'\n    if (l1 == 81)                   // 'at'\n    {\n      try_PositionalVar();\n    }\n    lookahead1W(153);               // S^WS | '(:' | 'next' | 'previous' | 'when'\n    if (l1 == 215)                  // 'previous'\n    {\n      shiftT(215);                  // 'previous'\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      shiftT(31);                   // '$'\n      lookahead1W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_PreviousItem();\n    }\n    lookahead1W(127);               // S^WS | '(:' | 'next' | 'when'\n    if (l1 == 187)                  // 'next'\n    {\n      shiftT(187);                  // 'next'\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      shiftT(31);                   // '$'\n      lookahead1W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_NextItem();\n    }\n  }\n\n  function parse_CurrentItem()\n  {\n    eventHandler.startNonterminal(\"CurrentItem\", e0);\n    parse_EQName();\n    eventHandler.endNonterminal(\"CurrentItem\", e0);\n  }\n\n  function try_CurrentItem()\n  {\n    try_EQName();\n  }\n\n  function parse_PreviousItem()\n  {\n    eventHandler.startNonterminal(\"PreviousItem\", e0);\n    parse_EQName();\n    eventHandler.endNonterminal(\"PreviousItem\", e0);\n  }\n\n  function try_PreviousItem()\n  {\n    try_EQName();\n  }\n\n  function parse_NextItem()\n  {\n    eventHandler.startNonterminal(\"NextItem\", e0);\n    parse_EQName();\n    eventHandler.endNonterminal(\"NextItem\", e0);\n  }\n\n  function try_NextItem()\n  {\n    try_EQName();\n  }\n\n  function parse_CountClause()\n  {\n    eventHandler.startNonterminal(\"CountClause\", e0);\n    shift(105);                     // 'count'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shift(31);                      // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    eventHandler.endNonterminal(\"CountClause\", e0);\n  }\n\n  function try_CountClause()\n  {\n    shiftT(105);                    // 'count'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shiftT(31);                     // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_VarName();\n  }\n\n  function parse_WhereClause()\n  {\n    eventHandler.startNonterminal(\"WhereClause\", e0);\n    shift(266);                     // 'where'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"WhereClause\", e0);\n  }\n\n  function try_WhereClause()\n  {\n    shiftT(266);                    // 'where'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_GroupByClause()\n  {\n    eventHandler.startNonterminal(\"GroupByClause\", e0);\n    shift(148);                     // 'group'\n    lookahead1W(34);                // S^WS | '(:' | 'by'\n    shift(87);                      // 'by'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_GroupingSpecList();\n    eventHandler.endNonterminal(\"GroupByClause\", e0);\n  }\n\n  function try_GroupByClause()\n  {\n    shiftT(148);                    // 'group'\n    lookahead1W(34);                // S^WS | '(:' | 'by'\n    shiftT(87);                     // 'by'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_GroupingSpecList();\n  }\n\n  function parse_GroupingSpecList()\n  {\n    eventHandler.startNonterminal(\"GroupingSpecList\", e0);\n    parse_GroupingSpec();\n    for (;;)\n    {\n      lookahead1W(176);             // S^WS | '(:' | ',' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' |\n      if (l1 != 41)                 // ','\n      {\n        break;\n      }\n      shift(41);                    // ','\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_GroupingSpec();\n    }\n    eventHandler.endNonterminal(\"GroupingSpecList\", e0);\n  }\n\n  function try_GroupingSpecList()\n  {\n    try_GroupingSpec();\n    for (;;)\n    {\n      lookahead1W(176);             // S^WS | '(:' | ',' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' |\n      if (l1 != 41)                 // ','\n      {\n        break;\n      }\n      shiftT(41);                   // ','\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_GroupingSpec();\n    }\n  }\n\n  function parse_GroupingSpec()\n  {\n    eventHandler.startNonterminal(\"GroupingSpec\", e0);\n    switch (l1)\n    {\n    case 31:                        // '$'\n      lookahead2W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 3103                  // '$' EQName^Token\n     || lk == 35871                 // '$' 'after'\n     || lk == 36895                 // '$' 'allowing'\n     || lk == 37407                 // '$' 'ancestor'\n     || lk == 37919                 // '$' 'ancestor-or-self'\n     || lk == 38431                 // '$' 'and'\n     || lk == 39455                 // '$' 'append'\n     || lk == 39967                 // '$' 'array'\n     || lk == 40479                 // '$' 'as'\n     || lk == 40991                 // '$' 'ascending'\n     || lk == 41503                 // '$' 'at'\n     || lk == 42015                 // '$' 'attribute'\n     || lk == 42527                 // '$' 'base-uri'\n     || lk == 43039                 // '$' 'before'\n     || lk == 43551                 // '$' 'boundary-space'\n     || lk == 44063                 // '$' 'break'\n     || lk == 45087                 // '$' 'case'\n     || lk == 45599                 // '$' 'cast'\n     || lk == 46111                 // '$' 'castable'\n     || lk == 46623                 // '$' 'catch'\n     || lk == 47647                 // '$' 'child'\n     || lk == 48159                 // '$' 'collation'\n     || lk == 49183                 // '$' 'comment'\n     || lk == 49695                 // '$' 'constraint'\n     || lk == 50207                 // '$' 'construction'\n     || lk == 51743                 // '$' 'context'\n     || lk == 52255                 // '$' 'continue'\n     || lk == 52767                 // '$' 'copy'\n     || lk == 53279                 // '$' 'copy-namespaces'\n     || lk == 53791                 // '$' 'count'\n     || lk == 54303                 // '$' 'decimal-format'\n     || lk == 55327                 // '$' 'declare'\n     || lk == 55839                 // '$' 'default'\n     || lk == 56351                 // '$' 'delete'\n     || lk == 56863                 // '$' 'descendant'\n     || lk == 57375                 // '$' 'descendant-or-self'\n     || lk == 57887                 // '$' 'descending'\n     || lk == 60447                 // '$' 'div'\n     || lk == 60959                 // '$' 'document'\n     || lk == 61471                 // '$' 'document-node'\n     || lk == 61983                 // '$' 'element'\n     || lk == 62495                 // '$' 'else'\n     || lk == 63007                 // '$' 'empty'\n     || lk == 63519                 // '$' 'empty-sequence'\n     || lk == 64031                 // '$' 'encoding'\n     || lk == 64543                 // '$' 'end'\n     || lk == 65567                 // '$' 'eq'\n     || lk == 66079                 // '$' 'every'\n     || lk == 67103                 // '$' 'except'\n     || lk == 67615                 // '$' 'exit'\n     || lk == 68127                 // '$' 'external'\n     || lk == 68639                 // '$' 'first'\n     || lk == 69151                 // '$' 'following'\n     || lk == 69663                 // '$' 'following-sibling'\n     || lk == 70175                 // '$' 'for'\n     || lk == 72223                 // '$' 'ft-option'\n     || lk == 74271                 // '$' 'function'\n     || lk == 74783                 // '$' 'ge'\n     || lk == 75807                 // '$' 'group'\n     || lk == 76831                 // '$' 'gt'\n     || lk == 77343                 // '$' 'idiv'\n     || lk == 77855                 // '$' 'if'\n     || lk == 78367                 // '$' 'import'\n     || lk == 78879                 // '$' 'in'\n     || lk == 79391                 // '$' 'index'\n     || lk == 81439                 // '$' 'insert'\n     || lk == 81951                 // '$' 'instance'\n     || lk == 82463                 // '$' 'integrity'\n     || lk == 82975                 // '$' 'intersect'\n     || lk == 83487                 // '$' 'into'\n     || lk == 83999                 // '$' 'is'\n     || lk == 84511                 // '$' 'item'\n     || lk == 85023                 // '$' 'json'\n     || lk == 85535                 // '$' 'json-item'\n     || lk == 87071                 // '$' 'last'\n     || lk == 87583                 // '$' 'lax'\n     || lk == 88095                 // '$' 'le'\n     || lk == 89119                 // '$' 'let'\n     || lk == 90143                 // '$' 'loop'\n     || lk == 91167                 // '$' 'lt'\n     || lk == 92191                 // '$' 'mod'\n     || lk == 92703                 // '$' 'modify'\n     || lk == 93215                 // '$' 'module'\n     || lk == 94239                 // '$' 'namespace'\n     || lk == 94751                 // '$' 'namespace-node'\n     || lk == 95263                 // '$' 'ne'\n     || lk == 97823                 // '$' 'node'\n     || lk == 98335                 // '$' 'nodes'\n     || lk == 99359                 // '$' 'object'\n     || lk == 101407                // '$' 'only'\n     || lk == 101919                // '$' 'option'\n     || lk == 102431                // '$' 'or'\n     || lk == 102943                // '$' 'order'\n     || lk == 103455                // '$' 'ordered'\n     || lk == 103967                // '$' 'ordering'\n     || lk == 105503                // '$' 'parent'\n     || lk == 108575                // '$' 'preceding'\n     || lk == 109087                // '$' 'preceding-sibling'\n     || lk == 110623                // '$' 'processing-instruction'\n     || lk == 111647                // '$' 'rename'\n     || lk == 112159                // '$' 'replace'\n     || lk == 112671                // '$' 'return'\n     || lk == 113183                // '$' 'returning'\n     || lk == 113695                // '$' 'revalidation'\n     || lk == 114719                // '$' 'satisfies'\n     || lk == 115231                // '$' 'schema'\n     || lk == 115743                // '$' 'schema-attribute'\n     || lk == 116255                // '$' 'schema-element'\n     || lk == 116767                // '$' 'score'\n     || lk == 117279                // '$' 'self'\n     || lk == 119839                // '$' 'sliding'\n     || lk == 120351                // '$' 'some'\n     || lk == 120863                // '$' 'stable'\n     || lk == 121375                // '$' 'start'\n     || lk == 122911                // '$' 'strict'\n     || lk == 123935                // '$' 'structured-item'\n     || lk == 124447                // '$' 'switch'\n     || lk == 124959                // '$' 'text'\n     || lk == 127007                // '$' 'to'\n     || lk == 127519                // '$' 'treat'\n     || lk == 128031                // '$' 'try'\n     || lk == 128543                // '$' 'tumbling'\n     || lk == 129055                // '$' 'type'\n     || lk == 129567                // '$' 'typeswitch'\n     || lk == 130079                // '$' 'union'\n     || lk == 131103                // '$' 'unordered'\n     || lk == 131615                // '$' 'updating'\n     || lk == 133151                // '$' 'validate'\n     || lk == 133663                // '$' 'value'\n     || lk == 134175                // '$' 'variable'\n     || lk == 134687                // '$' 'version'\n     || lk == 136223                // '$' 'where'\n     || lk == 136735                // '$' 'while'\n     || lk == 138271                // '$' 'with'\n     || lk == 140319)               // '$' 'xquery'\n    {\n      lk = memoized(2, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_GroupingVariable();\n          lookahead1W(183);         // S^WS | '(:' | ',' | ':=' | 'as' | 'collation' | 'count' | 'for' | 'group' |\n          if (l1 == 52              // ':='\n           || l1 == 79)             // 'as'\n          {\n            if (l1 == 79)           // 'as'\n            {\n              try_TypeDeclaration();\n            }\n            lookahead1W(27);        // S^WS | '(:' | ':='\n            shiftT(52);             // ':='\n            lookahead1W(267);       // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n            try_ExprSingle();\n          }\n          if (l1 == 94)             // 'collation'\n          {\n            shiftT(94);             // 'collation'\n            lookahead1W(15);        // URILiteral | S^WS | '(:'\n            shiftT(7);              // URILiteral\n          }\n          lk = -1;\n        }\n        catch (p1A)\n        {\n          lk = -2;\n        }\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(2, e0, lk);\n      }\n    }\n    switch (lk)\n    {\n    case -1:\n      parse_GroupingVariable();\n      lookahead1W(183);             // S^WS | '(:' | ',' | ':=' | 'as' | 'collation' | 'count' | 'for' | 'group' |\n      if (l1 == 52                  // ':='\n       || l1 == 79)                 // 'as'\n      {\n        if (l1 == 79)               // 'as'\n        {\n          whitespace();\n          parse_TypeDeclaration();\n        }\n        lookahead1W(27);            // S^WS | '(:' | ':='\n        shift(52);                  // ':='\n        lookahead1W(267);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        whitespace();\n        parse_ExprSingle();\n      }\n      if (l1 == 94)                 // 'collation'\n      {\n        shift(94);                  // 'collation'\n        lookahead1W(15);            // URILiteral | S^WS | '(:'\n        shift(7);                   // URILiteral\n      }\n      break;\n    default:\n      parse_ExprSingle();\n    }\n    eventHandler.endNonterminal(\"GroupingSpec\", e0);\n  }\n\n  function try_GroupingSpec()\n  {\n    switch (l1)\n    {\n    case 31:                        // '$'\n      lookahead2W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 3103                  // '$' EQName^Token\n     || lk == 35871                 // '$' 'after'\n     || lk == 36895                 // '$' 'allowing'\n     || lk == 37407                 // '$' 'ancestor'\n     || lk == 37919                 // '$' 'ancestor-or-self'\n     || lk == 38431                 // '$' 'and'\n     || lk == 39455                 // '$' 'append'\n     || lk == 39967                 // '$' 'array'\n     || lk == 40479                 // '$' 'as'\n     || lk == 40991                 // '$' 'ascending'\n     || lk == 41503                 // '$' 'at'\n     || lk == 42015                 // '$' 'attribute'\n     || lk == 42527                 // '$' 'base-uri'\n     || lk == 43039                 // '$' 'before'\n     || lk == 43551                 // '$' 'boundary-space'\n     || lk == 44063                 // '$' 'break'\n     || lk == 45087                 // '$' 'case'\n     || lk == 45599                 // '$' 'cast'\n     || lk == 46111                 // '$' 'castable'\n     || lk == 46623                 // '$' 'catch'\n     || lk == 47647                 // '$' 'child'\n     || lk == 48159                 // '$' 'collation'\n     || lk == 49183                 // '$' 'comment'\n     || lk == 49695                 // '$' 'constraint'\n     || lk == 50207                 // '$' 'construction'\n     || lk == 51743                 // '$' 'context'\n     || lk == 52255                 // '$' 'continue'\n     || lk == 52767                 // '$' 'copy'\n     || lk == 53279                 // '$' 'copy-namespaces'\n     || lk == 53791                 // '$' 'count'\n     || lk == 54303                 // '$' 'decimal-format'\n     || lk == 55327                 // '$' 'declare'\n     || lk == 55839                 // '$' 'default'\n     || lk == 56351                 // '$' 'delete'\n     || lk == 56863                 // '$' 'descendant'\n     || lk == 57375                 // '$' 'descendant-or-self'\n     || lk == 57887                 // '$' 'descending'\n     || lk == 60447                 // '$' 'div'\n     || lk == 60959                 // '$' 'document'\n     || lk == 61471                 // '$' 'document-node'\n     || lk == 61983                 // '$' 'element'\n     || lk == 62495                 // '$' 'else'\n     || lk == 63007                 // '$' 'empty'\n     || lk == 63519                 // '$' 'empty-sequence'\n     || lk == 64031                 // '$' 'encoding'\n     || lk == 64543                 // '$' 'end'\n     || lk == 65567                 // '$' 'eq'\n     || lk == 66079                 // '$' 'every'\n     || lk == 67103                 // '$' 'except'\n     || lk == 67615                 // '$' 'exit'\n     || lk == 68127                 // '$' 'external'\n     || lk == 68639                 // '$' 'first'\n     || lk == 69151                 // '$' 'following'\n     || lk == 69663                 // '$' 'following-sibling'\n     || lk == 70175                 // '$' 'for'\n     || lk == 72223                 // '$' 'ft-option'\n     || lk == 74271                 // '$' 'function'\n     || lk == 74783                 // '$' 'ge'\n     || lk == 75807                 // '$' 'group'\n     || lk == 76831                 // '$' 'gt'\n     || lk == 77343                 // '$' 'idiv'\n     || lk == 77855                 // '$' 'if'\n     || lk == 78367                 // '$' 'import'\n     || lk == 78879                 // '$' 'in'\n     || lk == 79391                 // '$' 'index'\n     || lk == 81439                 // '$' 'insert'\n     || lk == 81951                 // '$' 'instance'\n     || lk == 82463                 // '$' 'integrity'\n     || lk == 82975                 // '$' 'intersect'\n     || lk == 83487                 // '$' 'into'\n     || lk == 83999                 // '$' 'is'\n     || lk == 84511                 // '$' 'item'\n     || lk == 85023                 // '$' 'json'\n     || lk == 85535                 // '$' 'json-item'\n     || lk == 87071                 // '$' 'last'\n     || lk == 87583                 // '$' 'lax'\n     || lk == 88095                 // '$' 'le'\n     || lk == 89119                 // '$' 'let'\n     || lk == 90143                 // '$' 'loop'\n     || lk == 91167                 // '$' 'lt'\n     || lk == 92191                 // '$' 'mod'\n     || lk == 92703                 // '$' 'modify'\n     || lk == 93215                 // '$' 'module'\n     || lk == 94239                 // '$' 'namespace'\n     || lk == 94751                 // '$' 'namespace-node'\n     || lk == 95263                 // '$' 'ne'\n     || lk == 97823                 // '$' 'node'\n     || lk == 98335                 // '$' 'nodes'\n     || lk == 99359                 // '$' 'object'\n     || lk == 101407                // '$' 'only'\n     || lk == 101919                // '$' 'option'\n     || lk == 102431                // '$' 'or'\n     || lk == 102943                // '$' 'order'\n     || lk == 103455                // '$' 'ordered'\n     || lk == 103967                // '$' 'ordering'\n     || lk == 105503                // '$' 'parent'\n     || lk == 108575                // '$' 'preceding'\n     || lk == 109087                // '$' 'preceding-sibling'\n     || lk == 110623                // '$' 'processing-instruction'\n     || lk == 111647                // '$' 'rename'\n     || lk == 112159                // '$' 'replace'\n     || lk == 112671                // '$' 'return'\n     || lk == 113183                // '$' 'returning'\n     || lk == 113695                // '$' 'revalidation'\n     || lk == 114719                // '$' 'satisfies'\n     || lk == 115231                // '$' 'schema'\n     || lk == 115743                // '$' 'schema-attribute'\n     || lk == 116255                // '$' 'schema-element'\n     || lk == 116767                // '$' 'score'\n     || lk == 117279                // '$' 'self'\n     || lk == 119839                // '$' 'sliding'\n     || lk == 120351                // '$' 'some'\n     || lk == 120863                // '$' 'stable'\n     || lk == 121375                // '$' 'start'\n     || lk == 122911                // '$' 'strict'\n     || lk == 123935                // '$' 'structured-item'\n     || lk == 124447                // '$' 'switch'\n     || lk == 124959                // '$' 'text'\n     || lk == 127007                // '$' 'to'\n     || lk == 127519                // '$' 'treat'\n     || lk == 128031                // '$' 'try'\n     || lk == 128543                // '$' 'tumbling'\n     || lk == 129055                // '$' 'type'\n     || lk == 129567                // '$' 'typeswitch'\n     || lk == 130079                // '$' 'union'\n     || lk == 131103                // '$' 'unordered'\n     || lk == 131615                // '$' 'updating'\n     || lk == 133151                // '$' 'validate'\n     || lk == 133663                // '$' 'value'\n     || lk == 134175                // '$' 'variable'\n     || lk == 134687                // '$' 'version'\n     || lk == 136223                // '$' 'where'\n     || lk == 136735                // '$' 'while'\n     || lk == 138271                // '$' 'with'\n     || lk == 140319)               // '$' 'xquery'\n    {\n      lk = memoized(2, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_GroupingVariable();\n          lookahead1W(183);         // S^WS | '(:' | ',' | ':=' | 'as' | 'collation' | 'count' | 'for' | 'group' |\n          if (l1 == 52              // ':='\n           || l1 == 79)             // 'as'\n          {\n            if (l1 == 79)           // 'as'\n            {\n              try_TypeDeclaration();\n            }\n            lookahead1W(27);        // S^WS | '(:' | ':='\n            shiftT(52);             // ':='\n            lookahead1W(267);       // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n            try_ExprSingle();\n          }\n          if (l1 == 94)             // 'collation'\n          {\n            shiftT(94);             // 'collation'\n            lookahead1W(15);        // URILiteral | S^WS | '(:'\n            shiftT(7);              // URILiteral\n          }\n          memoize(2, e0A, -1);\n          lk = -3;\n        }\n        catch (p1A)\n        {\n          lk = -2;\n          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n          b2 = b2A; e2 = e2A; end = e2A; }}\n          memoize(2, e0A, -2);\n        }\n      }\n    }\n    switch (lk)\n    {\n    case -1:\n      try_GroupingVariable();\n      lookahead1W(183);             // S^WS | '(:' | ',' | ':=' | 'as' | 'collation' | 'count' | 'for' | 'group' |\n      if (l1 == 52                  // ':='\n       || l1 == 79)                 // 'as'\n      {\n        if (l1 == 79)               // 'as'\n        {\n          try_TypeDeclaration();\n        }\n        lookahead1W(27);            // S^WS | '(:' | ':='\n        shiftT(52);                 // ':='\n        lookahead1W(267);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        try_ExprSingle();\n      }\n      if (l1 == 94)                 // 'collation'\n      {\n        shiftT(94);                 // 'collation'\n        lookahead1W(15);            // URILiteral | S^WS | '(:'\n        shiftT(7);                  // URILiteral\n      }\n      break;\n    case -3:\n      break;\n    default:\n      try_ExprSingle();\n    }\n  }\n\n  function parse_GroupingVariable()\n  {\n    eventHandler.startNonterminal(\"GroupingVariable\", e0);\n    shift(31);                      // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    eventHandler.endNonterminal(\"GroupingVariable\", e0);\n  }\n\n  function try_GroupingVariable()\n  {\n    shiftT(31);                     // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_VarName();\n  }\n\n  function parse_OrderByClause()\n  {\n    eventHandler.startNonterminal(\"OrderByClause\", e0);\n    switch (l1)\n    {\n    case 201:                       // 'order'\n      shift(201);                   // 'order'\n      lookahead1W(34);              // S^WS | '(:' | 'by'\n      shift(87);                    // 'by'\n      break;\n    default:\n      shift(236);                   // 'stable'\n      lookahead1W(67);              // S^WS | '(:' | 'order'\n      shift(201);                   // 'order'\n      lookahead1W(34);              // S^WS | '(:' | 'by'\n      shift(87);                    // 'by'\n    }\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_OrderSpecList();\n    eventHandler.endNonterminal(\"OrderByClause\", e0);\n  }\n\n  function try_OrderByClause()\n  {\n    switch (l1)\n    {\n    case 201:                       // 'order'\n      shiftT(201);                  // 'order'\n      lookahead1W(34);              // S^WS | '(:' | 'by'\n      shiftT(87);                   // 'by'\n      break;\n    default:\n      shiftT(236);                  // 'stable'\n      lookahead1W(67);              // S^WS | '(:' | 'order'\n      shiftT(201);                  // 'order'\n      lookahead1W(34);              // S^WS | '(:' | 'by'\n      shiftT(87);                   // 'by'\n    }\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_OrderSpecList();\n  }\n\n  function parse_OrderSpecList()\n  {\n    eventHandler.startNonterminal(\"OrderSpecList\", e0);\n    parse_OrderSpec();\n    for (;;)\n    {\n      lookahead1W(176);             // S^WS | '(:' | ',' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' |\n      if (l1 != 41)                 // ','\n      {\n        break;\n      }\n      shift(41);                    // ','\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_OrderSpec();\n    }\n    eventHandler.endNonterminal(\"OrderSpecList\", e0);\n  }\n\n  function try_OrderSpecList()\n  {\n    try_OrderSpec();\n    for (;;)\n    {\n      lookahead1W(176);             // S^WS | '(:' | ',' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' |\n      if (l1 != 41)                 // ','\n      {\n        break;\n      }\n      shiftT(41);                   // ','\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_OrderSpec();\n    }\n  }\n\n  function parse_OrderSpec()\n  {\n    eventHandler.startNonterminal(\"OrderSpec\", e0);\n    parse_ExprSingle();\n    whitespace();\n    parse_OrderModifier();\n    eventHandler.endNonterminal(\"OrderSpec\", e0);\n  }\n\n  function try_OrderSpec()\n  {\n    try_ExprSingle();\n    try_OrderModifier();\n  }\n\n  function parse_OrderModifier()\n  {\n    eventHandler.startNonterminal(\"OrderModifier\", e0);\n    if (l1 == 80                    // 'ascending'\n     || l1 == 113)                  // 'descending'\n    {\n      switch (l1)\n      {\n      case 80:                      // 'ascending'\n        shift(80);                  // 'ascending'\n        break;\n      default:\n        shift(113);                 // 'descending'\n      }\n    }\n    lookahead1W(180);               // S^WS | '(:' | ',' | 'collation' | 'count' | 'empty' | 'for' | 'group' | 'let' |\n    if (l1 == 123)                  // 'empty'\n    {\n      shift(123);                   // 'empty'\n      lookahead1W(121);             // S^WS | '(:' | 'greatest' | 'least'\n      switch (l1)\n      {\n      case 147:                     // 'greatest'\n        shift(147);                 // 'greatest'\n        break;\n      default:\n        shift(173);                 // 'least'\n      }\n    }\n    lookahead1W(177);               // S^WS | '(:' | ',' | 'collation' | 'count' | 'for' | 'group' | 'let' | 'order' |\n    if (l1 == 94)                   // 'collation'\n    {\n      shift(94);                    // 'collation'\n      lookahead1W(15);              // URILiteral | S^WS | '(:'\n      shift(7);                     // URILiteral\n    }\n    eventHandler.endNonterminal(\"OrderModifier\", e0);\n  }\n\n  function try_OrderModifier()\n  {\n    if (l1 == 80                    // 'ascending'\n     || l1 == 113)                  // 'descending'\n    {\n      switch (l1)\n      {\n      case 80:                      // 'ascending'\n        shiftT(80);                 // 'ascending'\n        break;\n      default:\n        shiftT(113);                // 'descending'\n      }\n    }\n    lookahead1W(180);               // S^WS | '(:' | ',' | 'collation' | 'count' | 'empty' | 'for' | 'group' | 'let' |\n    if (l1 == 123)                  // 'empty'\n    {\n      shiftT(123);                  // 'empty'\n      lookahead1W(121);             // S^WS | '(:' | 'greatest' | 'least'\n      switch (l1)\n      {\n      case 147:                     // 'greatest'\n        shiftT(147);                // 'greatest'\n        break;\n      default:\n        shiftT(173);                // 'least'\n      }\n    }\n    lookahead1W(177);               // S^WS | '(:' | ',' | 'collation' | 'count' | 'for' | 'group' | 'let' | 'order' |\n    if (l1 == 94)                   // 'collation'\n    {\n      shiftT(94);                   // 'collation'\n      lookahead1W(15);              // URILiteral | S^WS | '(:'\n      shiftT(7);                    // URILiteral\n    }\n  }\n\n  function parse_ReturnClause()\n  {\n    eventHandler.startNonterminal(\"ReturnClause\", e0);\n    shift(220);                     // 'return'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"ReturnClause\", e0);\n  }\n\n  function try_ReturnClause()\n  {\n    shiftT(220);                    // 'return'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_QuantifiedExpr()\n  {\n    eventHandler.startNonterminal(\"QuantifiedExpr\", e0);\n    switch (l1)\n    {\n    case 235:                       // 'some'\n      shift(235);                   // 'some'\n      break;\n    default:\n      shift(129);                   // 'every'\n    }\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    whitespace();\n    parse_QuantifiedVarDecl();\n    for (;;)\n    {\n      if (l1 != 41)                 // ','\n      {\n        break;\n      }\n      shift(41);                    // ','\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      whitespace();\n      parse_QuantifiedVarDecl();\n    }\n    shift(224);                     // 'satisfies'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"QuantifiedExpr\", e0);\n  }\n\n  function try_QuantifiedExpr()\n  {\n    switch (l1)\n    {\n    case 235:                       // 'some'\n      shiftT(235);                  // 'some'\n      break;\n    default:\n      shiftT(129);                  // 'every'\n    }\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    try_QuantifiedVarDecl();\n    for (;;)\n    {\n      if (l1 != 41)                 // ','\n      {\n        break;\n      }\n      shiftT(41);                   // ','\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      try_QuantifiedVarDecl();\n    }\n    shiftT(224);                    // 'satisfies'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_QuantifiedVarDecl()\n  {\n    eventHandler.startNonterminal(\"QuantifiedVarDecl\", e0);\n    shift(31);                      // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    lookahead1W(110);               // S^WS | '(:' | 'as' | 'in'\n    if (l1 == 79)                   // 'as'\n    {\n      whitespace();\n      parse_TypeDeclaration();\n    }\n    lookahead1W(53);                // S^WS | '(:' | 'in'\n    shift(154);                     // 'in'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"QuantifiedVarDecl\", e0);\n  }\n\n  function try_QuantifiedVarDecl()\n  {\n    shiftT(31);                     // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_VarName();\n    lookahead1W(110);               // S^WS | '(:' | 'as' | 'in'\n    if (l1 == 79)                   // 'as'\n    {\n      try_TypeDeclaration();\n    }\n    lookahead1W(53);                // S^WS | '(:' | 'in'\n    shiftT(154);                    // 'in'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_SwitchExpr()\n  {\n    eventHandler.startNonterminal(\"SwitchExpr\", e0);\n    shift(243);                     // 'switch'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_Expr();\n    shift(37);                      // ')'\n    for (;;)\n    {\n      lookahead1W(35);              // S^WS | '(:' | 'case'\n      whitespace();\n      parse_SwitchCaseClause();\n      if (l1 != 88)                 // 'case'\n      {\n        break;\n      }\n    }\n    shift(109);                     // 'default'\n    lookahead1W(70);                // S^WS | '(:' | 'return'\n    shift(220);                     // 'return'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"SwitchExpr\", e0);\n  }\n\n  function try_SwitchExpr()\n  {\n    shiftT(243);                    // 'switch'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(34);                     // '('\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_Expr();\n    shiftT(37);                     // ')'\n    for (;;)\n    {\n      lookahead1W(35);              // S^WS | '(:' | 'case'\n      try_SwitchCaseClause();\n      if (l1 != 88)                 // 'case'\n      {\n        break;\n      }\n    }\n    shiftT(109);                    // 'default'\n    lookahead1W(70);                // S^WS | '(:' | 'return'\n    shiftT(220);                    // 'return'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_SwitchCaseClause()\n  {\n    eventHandler.startNonterminal(\"SwitchCaseClause\", e0);\n    for (;;)\n    {\n      shift(88);                    // 'case'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_SwitchCaseOperand();\n      if (l1 != 88)                 // 'case'\n      {\n        break;\n      }\n    }\n    shift(220);                     // 'return'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"SwitchCaseClause\", e0);\n  }\n\n  function try_SwitchCaseClause()\n  {\n    for (;;)\n    {\n      shiftT(88);                   // 'case'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_SwitchCaseOperand();\n      if (l1 != 88)                 // 'case'\n      {\n        break;\n      }\n    }\n    shiftT(220);                    // 'return'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_SwitchCaseOperand()\n  {\n    eventHandler.startNonterminal(\"SwitchCaseOperand\", e0);\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"SwitchCaseOperand\", e0);\n  }\n\n  function try_SwitchCaseOperand()\n  {\n    try_ExprSingle();\n  }\n\n  function parse_TypeswitchExpr()\n  {\n    eventHandler.startNonterminal(\"TypeswitchExpr\", e0);\n    shift(253);                     // 'typeswitch'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_Expr();\n    shift(37);                      // ')'\n    for (;;)\n    {\n      lookahead1W(35);              // S^WS | '(:' | 'case'\n      whitespace();\n      parse_CaseClause();\n      if (l1 != 88)                 // 'case'\n      {\n        break;\n      }\n    }\n    shift(109);                     // 'default'\n    lookahead1W(95);                // S^WS | '$' | '(:' | 'return'\n    if (l1 == 31)                   // '$'\n    {\n      shift(31);                    // '$'\n      lookahead1W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_VarName();\n    }\n    lookahead1W(70);                // S^WS | '(:' | 'return'\n    shift(220);                     // 'return'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"TypeswitchExpr\", e0);\n  }\n\n  function try_TypeswitchExpr()\n  {\n    shiftT(253);                    // 'typeswitch'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(34);                     // '('\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_Expr();\n    shiftT(37);                     // ')'\n    for (;;)\n    {\n      lookahead1W(35);              // S^WS | '(:' | 'case'\n      try_CaseClause();\n      if (l1 != 88)                 // 'case'\n      {\n        break;\n      }\n    }\n    shiftT(109);                    // 'default'\n    lookahead1W(95);                // S^WS | '$' | '(:' | 'return'\n    if (l1 == 31)                   // '$'\n    {\n      shiftT(31);                   // '$'\n      lookahead1W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_VarName();\n    }\n    lookahead1W(70);                // S^WS | '(:' | 'return'\n    shiftT(220);                    // 'return'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_CaseClause()\n  {\n    eventHandler.startNonterminal(\"CaseClause\", e0);\n    shift(88);                      // 'case'\n    lookahead1W(262);               // EQName^Token | S^WS | '$' | '%' | '(' | '(:' | 'after' | 'allowing' |\n    if (l1 == 31)                   // '$'\n    {\n      shift(31);                    // '$'\n      lookahead1W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_VarName();\n      lookahead1W(30);              // S^WS | '(:' | 'as'\n      shift(79);                    // 'as'\n    }\n    lookahead1W(260);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_SequenceTypeUnion();\n    shift(220);                     // 'return'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"CaseClause\", e0);\n  }\n\n  function try_CaseClause()\n  {\n    shiftT(88);                     // 'case'\n    lookahead1W(262);               // EQName^Token | S^WS | '$' | '%' | '(' | '(:' | 'after' | 'allowing' |\n    if (l1 == 31)                   // '$'\n    {\n      shiftT(31);                   // '$'\n      lookahead1W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_VarName();\n      lookahead1W(30);              // S^WS | '(:' | 'as'\n      shiftT(79);                   // 'as'\n    }\n    lookahead1W(260);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_SequenceTypeUnion();\n    shiftT(220);                    // 'return'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_SequenceTypeUnion()\n  {\n    eventHandler.startNonterminal(\"SequenceTypeUnion\", e0);\n    parse_SequenceType();\n    for (;;)\n    {\n      lookahead1W(134);             // S^WS | '(:' | 'return' | '|'\n      if (l1 != 279)                // '|'\n      {\n        break;\n      }\n      shift(279);                   // '|'\n      lookahead1W(260);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_SequenceType();\n    }\n    eventHandler.endNonterminal(\"SequenceTypeUnion\", e0);\n  }\n\n  function try_SequenceTypeUnion()\n  {\n    try_SequenceType();\n    for (;;)\n    {\n      lookahead1W(134);             // S^WS | '(:' | 'return' | '|'\n      if (l1 != 279)                // '|'\n      {\n        break;\n      }\n      shiftT(279);                  // '|'\n      lookahead1W(260);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_SequenceType();\n    }\n  }\n\n  function parse_IfExpr()\n  {\n    eventHandler.startNonterminal(\"IfExpr\", e0);\n    shift(152);                     // 'if'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_Expr();\n    shift(37);                      // ')'\n    lookahead1W(77);                // S^WS | '(:' | 'then'\n    shift(245);                     // 'then'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    shift(122);                     // 'else'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"IfExpr\", e0);\n  }\n\n  function try_IfExpr()\n  {\n    shiftT(152);                    // 'if'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(34);                     // '('\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_Expr();\n    shiftT(37);                     // ')'\n    lookahead1W(77);                // S^WS | '(:' | 'then'\n    shiftT(245);                    // 'then'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n    shiftT(122);                    // 'else'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_TryCatchExpr()\n  {\n    eventHandler.startNonterminal(\"TryCatchExpr\", e0);\n    parse_TryClause();\n    for (;;)\n    {\n      lookahead1W(36);              // S^WS | '(:' | 'catch'\n      whitespace();\n      parse_CatchClause();\n      lookahead1W(184);             // S^WS | EOF | '(:' | ')' | ',' | ':' | ';' | ']' | 'after' | 'as' | 'ascending' |\n      if (l1 != 91)                 // 'catch'\n      {\n        break;\n      }\n    }\n    eventHandler.endNonterminal(\"TryCatchExpr\", e0);\n  }\n\n  function try_TryCatchExpr()\n  {\n    try_TryClause();\n    for (;;)\n    {\n      lookahead1W(36);              // S^WS | '(:' | 'catch'\n      try_CatchClause();\n      lookahead1W(184);             // S^WS | EOF | '(:' | ')' | ',' | ':' | ';' | ']' | 'after' | 'as' | 'ascending' |\n      if (l1 != 91)                 // 'catch'\n      {\n        break;\n      }\n    }\n  }\n\n  function parse_TryClause()\n  {\n    eventHandler.startNonterminal(\"TryClause\", e0);\n    shift(250);                     // 'try'\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    shift(276);                     // '{'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_TryTargetExpr();\n    shift(282);                     // '}'\n    eventHandler.endNonterminal(\"TryClause\", e0);\n  }\n\n  function try_TryClause()\n  {\n    shiftT(250);                    // 'try'\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    shiftT(276);                    // '{'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_TryTargetExpr();\n    shiftT(282);                    // '}'\n  }\n\n  function parse_TryTargetExpr()\n  {\n    eventHandler.startNonterminal(\"TryTargetExpr\", e0);\n    parse_Expr();\n    eventHandler.endNonterminal(\"TryTargetExpr\", e0);\n  }\n\n  function try_TryTargetExpr()\n  {\n    try_Expr();\n  }\n\n  function parse_CatchClause()\n  {\n    eventHandler.startNonterminal(\"CatchClause\", e0);\n    shift(91);                      // 'catch'\n    lookahead1W(257);               // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_CatchErrorList();\n    shift(276);                     // '{'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_Expr();\n    shift(282);                     // '}'\n    eventHandler.endNonterminal(\"CatchClause\", e0);\n  }\n\n  function try_CatchClause()\n  {\n    shiftT(91);                     // 'catch'\n    lookahead1W(257);               // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_CatchErrorList();\n    shiftT(276);                    // '{'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_Expr();\n    shiftT(282);                    // '}'\n  }\n\n  function parse_CatchErrorList()\n  {\n    eventHandler.startNonterminal(\"CatchErrorList\", e0);\n    parse_NameTest();\n    for (;;)\n    {\n      lookahead1W(136);             // S^WS | '(:' | '{' | '|'\n      if (l1 != 279)                // '|'\n      {\n        break;\n      }\n      shift(279);                   // '|'\n      lookahead1W(257);             // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_NameTest();\n    }\n    eventHandler.endNonterminal(\"CatchErrorList\", e0);\n  }\n\n  function try_CatchErrorList()\n  {\n    try_NameTest();\n    for (;;)\n    {\n      lookahead1W(136);             // S^WS | '(:' | '{' | '|'\n      if (l1 != 279)                // '|'\n      {\n        break;\n      }\n      shiftT(279);                  // '|'\n      lookahead1W(257);             // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_NameTest();\n    }\n  }\n\n  function parse_OrExpr()\n  {\n    eventHandler.startNonterminal(\"OrExpr\", e0);\n    parse_AndExpr();\n    for (;;)\n    {\n      if (l1 != 200)                // 'or'\n      {\n        break;\n      }\n      shift(200);                   // 'or'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_AndExpr();\n    }\n    eventHandler.endNonterminal(\"OrExpr\", e0);\n  }\n\n  function try_OrExpr()\n  {\n    try_AndExpr();\n    for (;;)\n    {\n      if (l1 != 200)                // 'or'\n      {\n        break;\n      }\n      shiftT(200);                  // 'or'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_AndExpr();\n    }\n  }\n\n  function parse_AndExpr()\n  {\n    eventHandler.startNonterminal(\"AndExpr\", e0);\n    parse_ComparisonExpr();\n    for (;;)\n    {\n      if (l1 != 75)                 // 'and'\n      {\n        break;\n      }\n      shift(75);                    // 'and'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_ComparisonExpr();\n    }\n    eventHandler.endNonterminal(\"AndExpr\", e0);\n  }\n\n  function try_AndExpr()\n  {\n    try_ComparisonExpr();\n    for (;;)\n    {\n      if (l1 != 75)                 // 'and'\n      {\n        break;\n      }\n      shiftT(75);                   // 'and'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_ComparisonExpr();\n    }\n  }\n\n  function parse_ComparisonExpr()\n  {\n    eventHandler.startNonterminal(\"ComparisonExpr\", e0);\n    parse_FTContainsExpr();\n    if (l1 == 27                    // '!='\n     || l1 == 54                    // '<'\n     || l1 == 57                    // '<<'\n     || l1 == 58                    // '<='\n     || l1 == 60                    // '='\n     || l1 == 61                    // '>'\n     || l1 == 62                    // '>='\n     || l1 == 63                    // '>>'\n     || l1 == 128                   // 'eq'\n     || l1 == 146                   // 'ge'\n     || l1 == 150                   // 'gt'\n     || l1 == 164                   // 'is'\n     || l1 == 172                   // 'le'\n     || l1 == 178                   // 'lt'\n     || l1 == 186)                  // 'ne'\n    {\n      switch (l1)\n      {\n      case 128:                     // 'eq'\n      case 146:                     // 'ge'\n      case 150:                     // 'gt'\n      case 172:                     // 'le'\n      case 178:                     // 'lt'\n      case 186:                     // 'ne'\n        whitespace();\n        parse_ValueComp();\n        break;\n      case 57:                      // '<<'\n      case 63:                      // '>>'\n      case 164:                     // 'is'\n        whitespace();\n        parse_NodeComp();\n        break;\n      default:\n        whitespace();\n        parse_GeneralComp();\n      }\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_FTContainsExpr();\n    }\n    eventHandler.endNonterminal(\"ComparisonExpr\", e0);\n  }\n\n  function try_ComparisonExpr()\n  {\n    try_FTContainsExpr();\n    if (l1 == 27                    // '!='\n     || l1 == 54                    // '<'\n     || l1 == 57                    // '<<'\n     || l1 == 58                    // '<='\n     || l1 == 60                    // '='\n     || l1 == 61                    // '>'\n     || l1 == 62                    // '>='\n     || l1 == 63                    // '>>'\n     || l1 == 128                   // 'eq'\n     || l1 == 146                   // 'ge'\n     || l1 == 150                   // 'gt'\n     || l1 == 164                   // 'is'\n     || l1 == 172                   // 'le'\n     || l1 == 178                   // 'lt'\n     || l1 == 186)                  // 'ne'\n    {\n      switch (l1)\n      {\n      case 128:                     // 'eq'\n      case 146:                     // 'ge'\n      case 150:                     // 'gt'\n      case 172:                     // 'le'\n      case 178:                     // 'lt'\n      case 186:                     // 'ne'\n        try_ValueComp();\n        break;\n      case 57:                      // '<<'\n      case 63:                      // '>>'\n      case 164:                     // 'is'\n        try_NodeComp();\n        break;\n      default:\n        try_GeneralComp();\n      }\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_FTContainsExpr();\n    }\n  }\n\n  function parse_FTContainsExpr()\n  {\n    eventHandler.startNonterminal(\"FTContainsExpr\", e0);\n    parse_StringConcatExpr();\n    if (l1 == 99)                   // 'contains'\n    {\n      shift(99);                    // 'contains'\n      lookahead1W(76);              // S^WS | '(:' | 'text'\n      shift(244);                   // 'text'\n      lookahead1W(162);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'\n      whitespace();\n      parse_FTSelection();\n      if (l1 == 271)                // 'without'\n      {\n        whitespace();\n        parse_FTIgnoreOption();\n      }\n    }\n    eventHandler.endNonterminal(\"FTContainsExpr\", e0);\n  }\n\n  function try_FTContainsExpr()\n  {\n    try_StringConcatExpr();\n    if (l1 == 99)                   // 'contains'\n    {\n      shiftT(99);                   // 'contains'\n      lookahead1W(76);              // S^WS | '(:' | 'text'\n      shiftT(244);                  // 'text'\n      lookahead1W(162);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'\n      try_FTSelection();\n      if (l1 == 271)                // 'without'\n      {\n        try_FTIgnoreOption();\n      }\n    }\n  }\n\n  function parse_StringConcatExpr()\n  {\n    eventHandler.startNonterminal(\"StringConcatExpr\", e0);\n    parse_RangeExpr();\n    for (;;)\n    {\n      if (l1 != 280)                // '||'\n      {\n        break;\n      }\n      shift(280);                   // '||'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_RangeExpr();\n    }\n    eventHandler.endNonterminal(\"StringConcatExpr\", e0);\n  }\n\n  function try_StringConcatExpr()\n  {\n    try_RangeExpr();\n    for (;;)\n    {\n      if (l1 != 280)                // '||'\n      {\n        break;\n      }\n      shiftT(280);                  // '||'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_RangeExpr();\n    }\n  }\n\n  function parse_RangeExpr()\n  {\n    eventHandler.startNonterminal(\"RangeExpr\", e0);\n    parse_AdditiveExpr();\n    if (l1 == 248)                  // 'to'\n    {\n      shift(248);                   // 'to'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_AdditiveExpr();\n    }\n    eventHandler.endNonterminal(\"RangeExpr\", e0);\n  }\n\n  function try_RangeExpr()\n  {\n    try_AdditiveExpr();\n    if (l1 == 248)                  // 'to'\n    {\n      shiftT(248);                  // 'to'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_AdditiveExpr();\n    }\n  }\n\n  function parse_AdditiveExpr()\n  {\n    eventHandler.startNonterminal(\"AdditiveExpr\", e0);\n    parse_MultiplicativeExpr();\n    for (;;)\n    {\n      if (l1 != 40                  // '+'\n       && l1 != 42)                 // '-'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 40:                      // '+'\n        shift(40);                  // '+'\n        break;\n      default:\n        shift(42);                  // '-'\n      }\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_MultiplicativeExpr();\n    }\n    eventHandler.endNonterminal(\"AdditiveExpr\", e0);\n  }\n\n  function try_AdditiveExpr()\n  {\n    try_MultiplicativeExpr();\n    for (;;)\n    {\n      if (l1 != 40                  // '+'\n       && l1 != 42)                 // '-'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 40:                      // '+'\n        shiftT(40);                 // '+'\n        break;\n      default:\n        shiftT(42);                 // '-'\n      }\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_MultiplicativeExpr();\n    }\n  }\n\n  function parse_MultiplicativeExpr()\n  {\n    eventHandler.startNonterminal(\"MultiplicativeExpr\", e0);\n    parse_UnionExpr();\n    for (;;)\n    {\n      if (l1 != 38                  // '*'\n       && l1 != 118                 // 'div'\n       && l1 != 151                 // 'idiv'\n       && l1 != 180)                // 'mod'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 38:                      // '*'\n        shift(38);                  // '*'\n        break;\n      case 118:                     // 'div'\n        shift(118);                 // 'div'\n        break;\n      case 151:                     // 'idiv'\n        shift(151);                 // 'idiv'\n        break;\n      default:\n        shift(180);                 // 'mod'\n      }\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_UnionExpr();\n    }\n    eventHandler.endNonterminal(\"MultiplicativeExpr\", e0);\n  }\n\n  function try_MultiplicativeExpr()\n  {\n    try_UnionExpr();\n    for (;;)\n    {\n      if (l1 != 38                  // '*'\n       && l1 != 118                 // 'div'\n       && l1 != 151                 // 'idiv'\n       && l1 != 180)                // 'mod'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 38:                      // '*'\n        shiftT(38);                 // '*'\n        break;\n      case 118:                     // 'div'\n        shiftT(118);                // 'div'\n        break;\n      case 151:                     // 'idiv'\n        shiftT(151);                // 'idiv'\n        break;\n      default:\n        shiftT(180);                // 'mod'\n      }\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_UnionExpr();\n    }\n  }\n\n  function parse_UnionExpr()\n  {\n    eventHandler.startNonterminal(\"UnionExpr\", e0);\n    parse_IntersectExceptExpr();\n    for (;;)\n    {\n      if (l1 != 254                 // 'union'\n       && l1 != 279)                // '|'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 254:                     // 'union'\n        shift(254);                 // 'union'\n        break;\n      default:\n        shift(279);                 // '|'\n      }\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_IntersectExceptExpr();\n    }\n    eventHandler.endNonterminal(\"UnionExpr\", e0);\n  }\n\n  function try_UnionExpr()\n  {\n    try_IntersectExceptExpr();\n    for (;;)\n    {\n      if (l1 != 254                 // 'union'\n       && l1 != 279)                // '|'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 254:                     // 'union'\n        shiftT(254);                // 'union'\n        break;\n      default:\n        shiftT(279);                // '|'\n      }\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_IntersectExceptExpr();\n    }\n  }\n\n  function parse_IntersectExceptExpr()\n  {\n    eventHandler.startNonterminal(\"IntersectExceptExpr\", e0);\n    parse_InstanceofExpr();\n    for (;;)\n    {\n      lookahead1W(223);             // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |\n      if (l1 != 131                 // 'except'\n       && l1 != 162)                // 'intersect'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 162:                     // 'intersect'\n        shift(162);                 // 'intersect'\n        break;\n      default:\n        shift(131);                 // 'except'\n      }\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_InstanceofExpr();\n    }\n    eventHandler.endNonterminal(\"IntersectExceptExpr\", e0);\n  }\n\n  function try_IntersectExceptExpr()\n  {\n    try_InstanceofExpr();\n    for (;;)\n    {\n      lookahead1W(223);             // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |\n      if (l1 != 131                 // 'except'\n       && l1 != 162)                // 'intersect'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 162:                     // 'intersect'\n        shiftT(162);                // 'intersect'\n        break;\n      default:\n        shiftT(131);                // 'except'\n      }\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_InstanceofExpr();\n    }\n  }\n\n  function parse_InstanceofExpr()\n  {\n    eventHandler.startNonterminal(\"InstanceofExpr\", e0);\n    parse_TreatExpr();\n    lookahead1W(224);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |\n    if (l1 == 160)                  // 'instance'\n    {\n      shift(160);                   // 'instance'\n      lookahead1W(64);              // S^WS | '(:' | 'of'\n      shift(196);                   // 'of'\n      lookahead1W(260);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_SequenceType();\n    }\n    eventHandler.endNonterminal(\"InstanceofExpr\", e0);\n  }\n\n  function try_InstanceofExpr()\n  {\n    try_TreatExpr();\n    lookahead1W(224);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |\n    if (l1 == 160)                  // 'instance'\n    {\n      shiftT(160);                  // 'instance'\n      lookahead1W(64);              // S^WS | '(:' | 'of'\n      shiftT(196);                  // 'of'\n      lookahead1W(260);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_SequenceType();\n    }\n  }\n\n  function parse_TreatExpr()\n  {\n    eventHandler.startNonterminal(\"TreatExpr\", e0);\n    parse_CastableExpr();\n    lookahead1W(225);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |\n    if (l1 == 249)                  // 'treat'\n    {\n      shift(249);                   // 'treat'\n      lookahead1W(30);              // S^WS | '(:' | 'as'\n      shift(79);                    // 'as'\n      lookahead1W(260);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_SequenceType();\n    }\n    eventHandler.endNonterminal(\"TreatExpr\", e0);\n  }\n\n  function try_TreatExpr()\n  {\n    try_CastableExpr();\n    lookahead1W(225);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |\n    if (l1 == 249)                  // 'treat'\n    {\n      shiftT(249);                  // 'treat'\n      lookahead1W(30);              // S^WS | '(:' | 'as'\n      shiftT(79);                   // 'as'\n      lookahead1W(260);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_SequenceType();\n    }\n  }\n\n  function parse_CastableExpr()\n  {\n    eventHandler.startNonterminal(\"CastableExpr\", e0);\n    parse_CastExpr();\n    lookahead1W(226);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |\n    if (l1 == 90)                   // 'castable'\n    {\n      shift(90);                    // 'castable'\n      lookahead1W(30);              // S^WS | '(:' | 'as'\n      shift(79);                    // 'as'\n      lookahead1W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_SingleType();\n    }\n    eventHandler.endNonterminal(\"CastableExpr\", e0);\n  }\n\n  function try_CastableExpr()\n  {\n    try_CastExpr();\n    lookahead1W(226);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |\n    if (l1 == 90)                   // 'castable'\n    {\n      shiftT(90);                   // 'castable'\n      lookahead1W(30);              // S^WS | '(:' | 'as'\n      shiftT(79);                   // 'as'\n      lookahead1W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_SingleType();\n    }\n  }\n\n  function parse_CastExpr()\n  {\n    eventHandler.startNonterminal(\"CastExpr\", e0);\n    parse_UnaryExpr();\n    lookahead1W(228);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |\n    if (l1 == 89)                   // 'cast'\n    {\n      shift(89);                    // 'cast'\n      lookahead1W(30);              // S^WS | '(:' | 'as'\n      shift(79);                    // 'as'\n      lookahead1W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_SingleType();\n    }\n    eventHandler.endNonterminal(\"CastExpr\", e0);\n  }\n\n  function try_CastExpr()\n  {\n    try_UnaryExpr();\n    lookahead1W(228);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |\n    if (l1 == 89)                   // 'cast'\n    {\n      shiftT(89);                   // 'cast'\n      lookahead1W(30);              // S^WS | '(:' | 'as'\n      shiftT(79);                   // 'as'\n      lookahead1W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_SingleType();\n    }\n  }\n\n  function parse_UnaryExpr()\n  {\n    eventHandler.startNonterminal(\"UnaryExpr\", e0);\n    for (;;)\n    {\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      if (l1 != 40                  // '+'\n       && l1 != 42)                 // '-'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 42:                      // '-'\n        shift(42);                  // '-'\n        break;\n      default:\n        shift(40);                  // '+'\n      }\n    }\n    whitespace();\n    parse_ValueExpr();\n    eventHandler.endNonterminal(\"UnaryExpr\", e0);\n  }\n\n  function try_UnaryExpr()\n  {\n    for (;;)\n    {\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      if (l1 != 40                  // '+'\n       && l1 != 42)                 // '-'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 42:                      // '-'\n        shiftT(42);                 // '-'\n        break;\n      default:\n        shiftT(40);                 // '+'\n      }\n    }\n    try_ValueExpr();\n  }\n\n  function parse_ValueExpr()\n  {\n    eventHandler.startNonterminal(\"ValueExpr\", e0);\n    switch (l1)\n    {\n    case 260:                       // 'validate'\n      lookahead2W(248);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 87812:                     // 'validate' 'lax'\n    case 123140:                    // 'validate' 'strict'\n    case 129284:                    // 'validate' 'type'\n    case 141572:                    // 'validate' '{'\n      parse_ValidateExpr();\n      break;\n    case 35:                        // '(#'\n      parse_ExtensionExpr();\n      break;\n    default:\n      parse_SimpleMapExpr();\n    }\n    eventHandler.endNonterminal(\"ValueExpr\", e0);\n  }\n\n  function try_ValueExpr()\n  {\n    switch (l1)\n    {\n    case 260:                       // 'validate'\n      lookahead2W(248);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 87812:                     // 'validate' 'lax'\n    case 123140:                    // 'validate' 'strict'\n    case 129284:                    // 'validate' 'type'\n    case 141572:                    // 'validate' '{'\n      try_ValidateExpr();\n      break;\n    case 35:                        // '(#'\n      try_ExtensionExpr();\n      break;\n    default:\n      try_SimpleMapExpr();\n    }\n  }\n\n  function parse_SimpleMapExpr()\n  {\n    eventHandler.startNonterminal(\"SimpleMapExpr\", e0);\n    parse_PathExpr();\n    for (;;)\n    {\n      if (l1 != 26)                 // '!'\n      {\n        break;\n      }\n      shift(26);                    // '!'\n      lookahead1W(266);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_PathExpr();\n    }\n    eventHandler.endNonterminal(\"SimpleMapExpr\", e0);\n  }\n\n  function try_SimpleMapExpr()\n  {\n    try_PathExpr();\n    for (;;)\n    {\n      if (l1 != 26)                 // '!'\n      {\n        break;\n      }\n      shiftT(26);                   // '!'\n      lookahead1W(266);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_PathExpr();\n    }\n  }\n\n  function parse_GeneralComp()\n  {\n    eventHandler.startNonterminal(\"GeneralComp\", e0);\n    switch (l1)\n    {\n    case 60:                        // '='\n      shift(60);                    // '='\n      break;\n    case 27:                        // '!='\n      shift(27);                    // '!='\n      break;\n    case 54:                        // '<'\n      shift(54);                    // '<'\n      break;\n    case 58:                        // '<='\n      shift(58);                    // '<='\n      break;\n    case 61:                        // '>'\n      shift(61);                    // '>'\n      break;\n    default:\n      shift(62);                    // '>='\n    }\n    eventHandler.endNonterminal(\"GeneralComp\", e0);\n  }\n\n  function try_GeneralComp()\n  {\n    switch (l1)\n    {\n    case 60:                        // '='\n      shiftT(60);                   // '='\n      break;\n    case 27:                        // '!='\n      shiftT(27);                   // '!='\n      break;\n    case 54:                        // '<'\n      shiftT(54);                   // '<'\n      break;\n    case 58:                        // '<='\n      shiftT(58);                   // '<='\n      break;\n    case 61:                        // '>'\n      shiftT(61);                   // '>'\n      break;\n    default:\n      shiftT(62);                   // '>='\n    }\n  }\n\n  function parse_ValueComp()\n  {\n    eventHandler.startNonterminal(\"ValueComp\", e0);\n    switch (l1)\n    {\n    case 128:                       // 'eq'\n      shift(128);                   // 'eq'\n      break;\n    case 186:                       // 'ne'\n      shift(186);                   // 'ne'\n      break;\n    case 178:                       // 'lt'\n      shift(178);                   // 'lt'\n      break;\n    case 172:                       // 'le'\n      shift(172);                   // 'le'\n      break;\n    case 150:                       // 'gt'\n      shift(150);                   // 'gt'\n      break;\n    default:\n      shift(146);                   // 'ge'\n    }\n    eventHandler.endNonterminal(\"ValueComp\", e0);\n  }\n\n  function try_ValueComp()\n  {\n    switch (l1)\n    {\n    case 128:                       // 'eq'\n      shiftT(128);                  // 'eq'\n      break;\n    case 186:                       // 'ne'\n      shiftT(186);                  // 'ne'\n      break;\n    case 178:                       // 'lt'\n      shiftT(178);                  // 'lt'\n      break;\n    case 172:                       // 'le'\n      shiftT(172);                  // 'le'\n      break;\n    case 150:                       // 'gt'\n      shiftT(150);                  // 'gt'\n      break;\n    default:\n      shiftT(146);                  // 'ge'\n    }\n  }\n\n  function parse_NodeComp()\n  {\n    eventHandler.startNonterminal(\"NodeComp\", e0);\n    switch (l1)\n    {\n    case 164:                       // 'is'\n      shift(164);                   // 'is'\n      break;\n    case 57:                        // '<<'\n      shift(57);                    // '<<'\n      break;\n    default:\n      shift(63);                    // '>>'\n    }\n    eventHandler.endNonterminal(\"NodeComp\", e0);\n  }\n\n  function try_NodeComp()\n  {\n    switch (l1)\n    {\n    case 164:                       // 'is'\n      shiftT(164);                  // 'is'\n      break;\n    case 57:                        // '<<'\n      shiftT(57);                   // '<<'\n      break;\n    default:\n      shiftT(63);                   // '>>'\n    }\n  }\n\n  function parse_ValidateExpr()\n  {\n    eventHandler.startNonterminal(\"ValidateExpr\", e0);\n    shift(260);                     // 'validate'\n    lookahead1W(160);               // S^WS | '(:' | 'lax' | 'strict' | 'type' | '{'\n    if (l1 != 276)                  // '{'\n    {\n      switch (l1)\n      {\n      case 252:                     // 'type'\n        shift(252);                 // 'type'\n        lookahead1W(255);           // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n        whitespace();\n        parse_TypeName();\n        break;\n      default:\n        whitespace();\n        parse_ValidationMode();\n      }\n    }\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    shift(276);                     // '{'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_Expr();\n    shift(282);                     // '}'\n    eventHandler.endNonterminal(\"ValidateExpr\", e0);\n  }\n\n  function try_ValidateExpr()\n  {\n    shiftT(260);                    // 'validate'\n    lookahead1W(160);               // S^WS | '(:' | 'lax' | 'strict' | 'type' | '{'\n    if (l1 != 276)                  // '{'\n    {\n      switch (l1)\n      {\n      case 252:                     // 'type'\n        shiftT(252);                // 'type'\n        lookahead1W(255);           // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n        try_TypeName();\n        break;\n      default:\n        try_ValidationMode();\n      }\n    }\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    shiftT(276);                    // '{'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_Expr();\n    shiftT(282);                    // '}'\n  }\n\n  function parse_ValidationMode()\n  {\n    eventHandler.startNonterminal(\"ValidationMode\", e0);\n    switch (l1)\n    {\n    case 171:                       // 'lax'\n      shift(171);                   // 'lax'\n      break;\n    default:\n      shift(240);                   // 'strict'\n    }\n    eventHandler.endNonterminal(\"ValidationMode\", e0);\n  }\n\n  function try_ValidationMode()\n  {\n    switch (l1)\n    {\n    case 171:                       // 'lax'\n      shiftT(171);                  // 'lax'\n      break;\n    default:\n      shiftT(240);                  // 'strict'\n    }\n  }\n\n  function parse_ExtensionExpr()\n  {\n    eventHandler.startNonterminal(\"ExtensionExpr\", e0);\n    for (;;)\n    {\n      whitespace();\n      parse_Pragma();\n      lookahead1W(100);             // S^WS | '(#' | '(:' | '{'\n      if (l1 != 35)                 // '(#'\n      {\n        break;\n      }\n    }\n    shift(276);                     // '{'\n    lookahead1W(274);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    if (l1 != 282)                  // '}'\n    {\n      whitespace();\n      parse_Expr();\n    }\n    shift(282);                     // '}'\n    eventHandler.endNonterminal(\"ExtensionExpr\", e0);\n  }\n\n  function try_ExtensionExpr()\n  {\n    for (;;)\n    {\n      try_Pragma();\n      lookahead1W(100);             // S^WS | '(#' | '(:' | '{'\n      if (l1 != 35)                 // '(#'\n      {\n        break;\n      }\n    }\n    shiftT(276);                    // '{'\n    lookahead1W(274);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    if (l1 != 282)                  // '}'\n    {\n      try_Expr();\n    }\n    shiftT(282);                    // '}'\n  }\n\n  function parse_Pragma()\n  {\n    eventHandler.startNonterminal(\"Pragma\", e0);\n    shift(35);                      // '(#'\n    lookahead1(252);                // EQName^Token | S | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' |\n    if (l1 == 21)                   // S\n    {\n      shift(21);                    // S\n    }\n    parse_EQName();\n    lookahead1(10);                 // S | '#)'\n    if (l1 == 21)                   // S\n    {\n      shift(21);                    // S\n      lookahead1(0);                // PragmaContents\n      shift(1);                     // PragmaContents\n    }\n    lookahead1(5);                  // '#)'\n    shift(30);                      // '#)'\n    eventHandler.endNonterminal(\"Pragma\", e0);\n  }\n\n  function try_Pragma()\n  {\n    shiftT(35);                     // '(#'\n    lookahead1(252);                // EQName^Token | S | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' |\n    if (l1 == 21)                   // S\n    {\n      shiftT(21);                   // S\n    }\n    try_EQName();\n    lookahead1(10);                 // S | '#)'\n    if (l1 == 21)                   // S\n    {\n      shiftT(21);                   // S\n      lookahead1(0);                // PragmaContents\n      shiftT(1);                    // PragmaContents\n    }\n    lookahead1(5);                  // '#)'\n    shiftT(30);                     // '#)'\n  }\n\n  function parse_PathExpr()\n  {\n    eventHandler.startNonterminal(\"PathExpr\", e0);\n    switch (l1)\n    {\n    case 46:                        // '/'\n      shift(46);                    // '/'\n      lookahead1W(286);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      switch (l1)\n      {\n      case 25:                      // EOF\n      case 26:                      // '!'\n      case 27:                      // '!='\n      case 37:                      // ')'\n      case 38:                      // '*'\n      case 40:                      // '+'\n      case 41:                      // ','\n      case 42:                      // '-'\n      case 49:                      // ':'\n      case 53:                      // ';'\n      case 57:                      // '<<'\n      case 58:                      // '<='\n      case 60:                      // '='\n      case 61:                      // '>'\n      case 62:                      // '>='\n      case 63:                      // '>>'\n      case 69:                      // ']'\n      case 87:                      // 'by'\n      case 99:                      // 'contains'\n      case 205:                     // 'paragraphs'\n      case 232:                     // 'sentences'\n      case 247:                     // 'times'\n      case 273:                     // 'words'\n      case 279:                     // '|'\n      case 280:                     // '||'\n      case 281:                     // '|}'\n      case 282:                     // '}'\n        break;\n      default:\n        whitespace();\n        parse_RelativePathExpr();\n      }\n      break;\n    case 47:                        // '//'\n      shift(47);                    // '//'\n      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_RelativePathExpr();\n      break;\n    default:\n      parse_RelativePathExpr();\n    }\n    eventHandler.endNonterminal(\"PathExpr\", e0);\n  }\n\n  function try_PathExpr()\n  {\n    switch (l1)\n    {\n    case 46:                        // '/'\n      shiftT(46);                   // '/'\n      lookahead1W(286);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      switch (l1)\n      {\n      case 25:                      // EOF\n      case 26:                      // '!'\n      case 27:                      // '!='\n      case 37:                      // ')'\n      case 38:                      // '*'\n      case 40:                      // '+'\n      case 41:                      // ','\n      case 42:                      // '-'\n      case 49:                      // ':'\n      case 53:                      // ';'\n      case 57:                      // '<<'\n      case 58:                      // '<='\n      case 60:                      // '='\n      case 61:                      // '>'\n      case 62:                      // '>='\n      case 63:                      // '>>'\n      case 69:                      // ']'\n      case 87:                      // 'by'\n      case 99:                      // 'contains'\n      case 205:                     // 'paragraphs'\n      case 232:                     // 'sentences'\n      case 247:                     // 'times'\n      case 273:                     // 'words'\n      case 279:                     // '|'\n      case 280:                     // '||'\n      case 281:                     // '|}'\n      case 282:                     // '}'\n        break;\n      default:\n        try_RelativePathExpr();\n      }\n      break;\n    case 47:                        // '//'\n      shiftT(47);                   // '//'\n      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_RelativePathExpr();\n      break;\n    default:\n      try_RelativePathExpr();\n    }\n  }\n\n  function parse_RelativePathExpr()\n  {\n    eventHandler.startNonterminal(\"RelativePathExpr\", e0);\n    parse_StepExpr();\n    for (;;)\n    {\n      switch (l1)\n      {\n      case 26:                      // '!'\n        lookahead2W(266);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk != 25                  // EOF\n       && lk != 27                  // '!='\n       && lk != 37                  // ')'\n       && lk != 38                  // '*'\n       && lk != 40                  // '+'\n       && lk != 41                  // ','\n       && lk != 42                  // '-'\n       && lk != 46                  // '/'\n       && lk != 47                  // '//'\n       && lk != 49                  // ':'\n       && lk != 53                  // ';'\n       && lk != 54                  // '<'\n       && lk != 57                  // '<<'\n       && lk != 58                  // '<='\n       && lk != 60                  // '='\n       && lk != 61                  // '>'\n       && lk != 62                  // '>='\n       && lk != 63                  // '>>'\n       && lk != 69                  // ']'\n       && lk != 70                  // 'after'\n       && lk != 75                  // 'and'\n       && lk != 79                  // 'as'\n       && lk != 80                  // 'ascending'\n       && lk != 81                  // 'at'\n       && lk != 84                  // 'before'\n       && lk != 87                  // 'by'\n       && lk != 88                  // 'case'\n       && lk != 89                  // 'cast'\n       && lk != 90                  // 'castable'\n       && lk != 94                  // 'collation'\n       && lk != 99                  // 'contains'\n       && lk != 105                 // 'count'\n       && lk != 109                 // 'default'\n       && lk != 113                 // 'descending'\n       && lk != 118                 // 'div'\n       && lk != 122                 // 'else'\n       && lk != 123                 // 'empty'\n       && lk != 126                 // 'end'\n       && lk != 128                 // 'eq'\n       && lk != 131                 // 'except'\n       && lk != 137                 // 'for'\n       && lk != 146                 // 'ge'\n       && lk != 148                 // 'group'\n       && lk != 150                 // 'gt'\n       && lk != 151                 // 'idiv'\n       && lk != 160                 // 'instance'\n       && lk != 162                 // 'intersect'\n       && lk != 163                 // 'into'\n       && lk != 164                 // 'is'\n       && lk != 172                 // 'le'\n       && lk != 174                 // 'let'\n       && lk != 178                 // 'lt'\n       && lk != 180                 // 'mod'\n       && lk != 181                 // 'modify'\n       && lk != 186                 // 'ne'\n       && lk != 198                 // 'only'\n       && lk != 200                 // 'or'\n       && lk != 201                 // 'order'\n       && lk != 205                 // 'paragraphs'\n       && lk != 220                 // 'return'\n       && lk != 224                 // 'satisfies'\n       && lk != 232                 // 'sentences'\n       && lk != 236                 // 'stable'\n       && lk != 237                 // 'start'\n       && lk != 247                 // 'times'\n       && lk != 248                 // 'to'\n       && lk != 249                 // 'treat'\n       && lk != 254                 // 'union'\n       && lk != 266                 // 'where'\n       && lk != 270                 // 'with'\n       && lk != 273                 // 'words'\n       && lk != 279                 // '|'\n       && lk != 280                 // '||'\n       && lk != 281                 // '|}'\n       && lk != 282                 // '}'\n       && lk != 23578               // '!' '/'\n       && lk != 24090)              // '!' '//'\n      {\n        lk = memoized(3, e0);\n        if (lk == 0)\n        {\n          var b0A = b0; var e0A = e0; var l1A = l1;\n          var b1A = b1; var e1A = e1; var l2A = l2;\n          var b2A = b2; var e2A = e2;\n          try\n          {\n            switch (l1)\n            {\n            case 46:                // '/'\n              shiftT(46);           // '/'\n              break;\n            case 47:                // '//'\n              shiftT(47);           // '//'\n              break;\n            default:\n              shiftT(26);           // '!'\n            }\n            lookahead1W(265);       // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n            try_StepExpr();\n            lk = -1;\n          }\n          catch (p1A)\n          {\n            lk = -2;\n          }\n          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n          b2 = b2A; e2 = e2A; end = e2A; }}\n          memoize(3, e0, lk);\n        }\n      }\n      if (lk != -1\n       && lk != 46                  // '/'\n       && lk != 47)                 // '//'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 46:                      // '/'\n        shift(46);                  // '/'\n        break;\n      case 47:                      // '//'\n        shift(47);                  // '//'\n        break;\n      default:\n        shift(26);                  // '!'\n      }\n      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_StepExpr();\n    }\n    eventHandler.endNonterminal(\"RelativePathExpr\", e0);\n  }\n\n  function try_RelativePathExpr()\n  {\n    try_StepExpr();\n    for (;;)\n    {\n      switch (l1)\n      {\n      case 26:                      // '!'\n        lookahead2W(266);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk != 25                  // EOF\n       && lk != 27                  // '!='\n       && lk != 37                  // ')'\n       && lk != 38                  // '*'\n       && lk != 40                  // '+'\n       && lk != 41                  // ','\n       && lk != 42                  // '-'\n       && lk != 46                  // '/'\n       && lk != 47                  // '//'\n       && lk != 49                  // ':'\n       && lk != 53                  // ';'\n       && lk != 54                  // '<'\n       && lk != 57                  // '<<'\n       && lk != 58                  // '<='\n       && lk != 60                  // '='\n       && lk != 61                  // '>'\n       && lk != 62                  // '>='\n       && lk != 63                  // '>>'\n       && lk != 69                  // ']'\n       && lk != 70                  // 'after'\n       && lk != 75                  // 'and'\n       && lk != 79                  // 'as'\n       && lk != 80                  // 'ascending'\n       && lk != 81                  // 'at'\n       && lk != 84                  // 'before'\n       && lk != 87                  // 'by'\n       && lk != 88                  // 'case'\n       && lk != 89                  // 'cast'\n       && lk != 90                  // 'castable'\n       && lk != 94                  // 'collation'\n       && lk != 99                  // 'contains'\n       && lk != 105                 // 'count'\n       && lk != 109                 // 'default'\n       && lk != 113                 // 'descending'\n       && lk != 118                 // 'div'\n       && lk != 122                 // 'else'\n       && lk != 123                 // 'empty'\n       && lk != 126                 // 'end'\n       && lk != 128                 // 'eq'\n       && lk != 131                 // 'except'\n       && lk != 137                 // 'for'\n       && lk != 146                 // 'ge'\n       && lk != 148                 // 'group'\n       && lk != 150                 // 'gt'\n       && lk != 151                 // 'idiv'\n       && lk != 160                 // 'instance'\n       && lk != 162                 // 'intersect'\n       && lk != 163                 // 'into'\n       && lk != 164                 // 'is'\n       && lk != 172                 // 'le'\n       && lk != 174                 // 'let'\n       && lk != 178                 // 'lt'\n       && lk != 180                 // 'mod'\n       && lk != 181                 // 'modify'\n       && lk != 186                 // 'ne'\n       && lk != 198                 // 'only'\n       && lk != 200                 // 'or'\n       && lk != 201                 // 'order'\n       && lk != 205                 // 'paragraphs'\n       && lk != 220                 // 'return'\n       && lk != 224                 // 'satisfies'\n       && lk != 232                 // 'sentences'\n       && lk != 236                 // 'stable'\n       && lk != 237                 // 'start'\n       && lk != 247                 // 'times'\n       && lk != 248                 // 'to'\n       && lk != 249                 // 'treat'\n       && lk != 254                 // 'union'\n       && lk != 266                 // 'where'\n       && lk != 270                 // 'with'\n       && lk != 273                 // 'words'\n       && lk != 279                 // '|'\n       && lk != 280                 // '||'\n       && lk != 281                 // '|}'\n       && lk != 282                 // '}'\n       && lk != 23578               // '!' '/'\n       && lk != 24090)              // '!' '//'\n      {\n        lk = memoized(3, e0);\n        if (lk == 0)\n        {\n          var b0A = b0; var e0A = e0; var l1A = l1;\n          var b1A = b1; var e1A = e1; var l2A = l2;\n          var b2A = b2; var e2A = e2;\n          try\n          {\n            switch (l1)\n            {\n            case 46:                // '/'\n              shiftT(46);           // '/'\n              break;\n            case 47:                // '//'\n              shiftT(47);           // '//'\n              break;\n            default:\n              shiftT(26);           // '!'\n            }\n            lookahead1W(265);       // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n            try_StepExpr();\n            memoize(3, e0A, -1);\n            continue;\n          }\n          catch (p1A)\n          {\n            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n            b2 = b2A; e2 = e2A; end = e2A; }}\n            memoize(3, e0A, -2);\n            break;\n          }\n        }\n      }\n      if (lk != -1\n       && lk != 46                  // '/'\n       && lk != 47)                 // '//'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 46:                      // '/'\n        shiftT(46);                 // '/'\n        break;\n      case 47:                      // '//'\n        shiftT(47);                 // '//'\n        break;\n      default:\n        shiftT(26);                 // '!'\n      }\n      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_StepExpr();\n    }\n  }\n\n  function parse_StepExpr()\n  {\n    eventHandler.startNonterminal(\"StepExpr\", e0);\n    switch (l1)\n    {\n    case 82:                        // 'attribute'\n      lookahead2W(285);             // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' |\n      break;\n    case 121:                       // 'element'\n      lookahead2W(283);             // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' |\n      break;\n    case 184:                       // 'namespace'\n    case 216:                       // 'processing-instruction'\n      lookahead2W(282);             // NCName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' |\n      break;\n    case 96:                        // 'comment'\n    case 119:                       // 'document'\n    case 202:                       // 'ordered'\n    case 244:                       // 'text'\n    case 256:                       // 'unordered'\n      lookahead2W(247);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    case 78:                        // 'array'\n    case 124:                       // 'empty-sequence'\n    case 152:                       // 'if'\n    case 165:                       // 'item'\n    case 167:                       // 'json-item'\n    case 242:                       // 'structured-item'\n    case 243:                       // 'switch'\n    case 253:                       // 'typeswitch'\n      lookahead2W(240);             // S^WS | EOF | '!' | '!=' | '#' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |\n      break;\n    case 73:                        // 'ancestor'\n    case 74:                        // 'ancestor-or-self'\n    case 93:                        // 'child'\n    case 111:                       // 'descendant'\n    case 112:                       // 'descendant-or-self'\n    case 135:                       // 'following'\n    case 136:                       // 'following-sibling'\n    case 206:                       // 'parent'\n    case 212:                       // 'preceding'\n    case 213:                       // 'preceding-sibling'\n    case 229:                       // 'self'\n      lookahead2W(246);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    case 6:                         // EQName^Token\n    case 70:                        // 'after'\n    case 72:                        // 'allowing'\n    case 75:                        // 'and'\n    case 77:                        // 'append'\n    case 79:                        // 'as'\n    case 80:                        // 'ascending'\n    case 81:                        // 'at'\n    case 83:                        // 'base-uri'\n    case 84:                        // 'before'\n    case 85:                        // 'boundary-space'\n    case 86:                        // 'break'\n    case 88:                        // 'case'\n    case 89:                        // 'cast'\n    case 90:                        // 'castable'\n    case 91:                        // 'catch'\n    case 94:                        // 'collation'\n    case 97:                        // 'constraint'\n    case 98:                        // 'construction'\n    case 101:                       // 'context'\n    case 102:                       // 'continue'\n    case 103:                       // 'copy'\n    case 104:                       // 'copy-namespaces'\n    case 105:                       // 'count'\n    case 106:                       // 'decimal-format'\n    case 108:                       // 'declare'\n    case 109:                       // 'default'\n    case 110:                       // 'delete'\n    case 113:                       // 'descending'\n    case 118:                       // 'div'\n    case 120:                       // 'document-node'\n    case 122:                       // 'else'\n    case 123:                       // 'empty'\n    case 125:                       // 'encoding'\n    case 126:                       // 'end'\n    case 128:                       // 'eq'\n    case 129:                       // 'every'\n    case 131:                       // 'except'\n    case 132:                       // 'exit'\n    case 133:                       // 'external'\n    case 134:                       // 'first'\n    case 137:                       // 'for'\n    case 141:                       // 'ft-option'\n    case 145:                       // 'function'\n    case 146:                       // 'ge'\n    case 148:                       // 'group'\n    case 150:                       // 'gt'\n    case 151:                       // 'idiv'\n    case 153:                       // 'import'\n    case 154:                       // 'in'\n    case 155:                       // 'index'\n    case 159:                       // 'insert'\n    case 160:                       // 'instance'\n    case 161:                       // 'integrity'\n    case 162:                       // 'intersect'\n    case 163:                       // 'into'\n    case 164:                       // 'is'\n    case 166:                       // 'json'\n    case 170:                       // 'last'\n    case 171:                       // 'lax'\n    case 172:                       // 'le'\n    case 174:                       // 'let'\n    case 176:                       // 'loop'\n    case 178:                       // 'lt'\n    case 180:                       // 'mod'\n    case 181:                       // 'modify'\n    case 182:                       // 'module'\n    case 185:                       // 'namespace-node'\n    case 186:                       // 'ne'\n    case 191:                       // 'node'\n    case 192:                       // 'nodes'\n    case 194:                       // 'object'\n    case 198:                       // 'only'\n    case 199:                       // 'option'\n    case 200:                       // 'or'\n    case 201:                       // 'order'\n    case 203:                       // 'ordering'\n    case 218:                       // 'rename'\n    case 219:                       // 'replace'\n    case 220:                       // 'return'\n    case 221:                       // 'returning'\n    case 222:                       // 'revalidation'\n    case 224:                       // 'satisfies'\n    case 225:                       // 'schema'\n    case 226:                       // 'schema-attribute'\n    case 227:                       // 'schema-element'\n    case 228:                       // 'score'\n    case 234:                       // 'sliding'\n    case 235:                       // 'some'\n    case 236:                       // 'stable'\n    case 237:                       // 'start'\n    case 240:                       // 'strict'\n    case 248:                       // 'to'\n    case 249:                       // 'treat'\n    case 250:                       // 'try'\n    case 251:                       // 'tumbling'\n    case 252:                       // 'type'\n    case 254:                       // 'union'\n    case 257:                       // 'updating'\n    case 260:                       // 'validate'\n    case 261:                       // 'value'\n    case 262:                       // 'variable'\n    case 263:                       // 'version'\n    case 266:                       // 'where'\n    case 267:                       // 'while'\n    case 270:                       // 'with'\n    case 274:                       // 'xquery'\n      lookahead2W(244);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 35922                 // 'attribute' 'after'\n     || lk == 35961                 // 'element' 'after'\n     || lk == 36024                 // 'namespace' 'after'\n     || lk == 36056                 // 'processing-instruction' 'after'\n     || lk == 38482                 // 'attribute' 'and'\n     || lk == 38521                 // 'element' 'and'\n     || lk == 38584                 // 'namespace' 'and'\n     || lk == 38616                 // 'processing-instruction' 'and'\n     || lk == 40530                 // 'attribute' 'as'\n     || lk == 40569                 // 'element' 'as'\n     || lk == 40632                 // 'namespace' 'as'\n     || lk == 40664                 // 'processing-instruction' 'as'\n     || lk == 41042                 // 'attribute' 'ascending'\n     || lk == 41081                 // 'element' 'ascending'\n     || lk == 41144                 // 'namespace' 'ascending'\n     || lk == 41176                 // 'processing-instruction' 'ascending'\n     || lk == 41554                 // 'attribute' 'at'\n     || lk == 41593                 // 'element' 'at'\n     || lk == 41656                 // 'namespace' 'at'\n     || lk == 41688                 // 'processing-instruction' 'at'\n     || lk == 43090                 // 'attribute' 'before'\n     || lk == 43129                 // 'element' 'before'\n     || lk == 43192                 // 'namespace' 'before'\n     || lk == 43224                 // 'processing-instruction' 'before'\n     || lk == 45138                 // 'attribute' 'case'\n     || lk == 45177                 // 'element' 'case'\n     || lk == 45240                 // 'namespace' 'case'\n     || lk == 45272                 // 'processing-instruction' 'case'\n     || lk == 45650                 // 'attribute' 'cast'\n     || lk == 45689                 // 'element' 'cast'\n     || lk == 45752                 // 'namespace' 'cast'\n     || lk == 45784                 // 'processing-instruction' 'cast'\n     || lk == 46162                 // 'attribute' 'castable'\n     || lk == 46201                 // 'element' 'castable'\n     || lk == 46264                 // 'namespace' 'castable'\n     || lk == 46296                 // 'processing-instruction' 'castable'\n     || lk == 48210                 // 'attribute' 'collation'\n     || lk == 48249                 // 'element' 'collation'\n     || lk == 48312                 // 'namespace' 'collation'\n     || lk == 48344                 // 'processing-instruction' 'collation'\n     || lk == 53842                 // 'attribute' 'count'\n     || lk == 53881                 // 'element' 'count'\n     || lk == 53944                 // 'namespace' 'count'\n     || lk == 53976                 // 'processing-instruction' 'count'\n     || lk == 55890                 // 'attribute' 'default'\n     || lk == 55929                 // 'element' 'default'\n     || lk == 55992                 // 'namespace' 'default'\n     || lk == 56024                 // 'processing-instruction' 'default'\n     || lk == 57938                 // 'attribute' 'descending'\n     || lk == 57977                 // 'element' 'descending'\n     || lk == 58040                 // 'namespace' 'descending'\n     || lk == 58072                 // 'processing-instruction' 'descending'\n     || lk == 60498                 // 'attribute' 'div'\n     || lk == 60537                 // 'element' 'div'\n     || lk == 60600                 // 'namespace' 'div'\n     || lk == 60632                 // 'processing-instruction' 'div'\n     || lk == 62546                 // 'attribute' 'else'\n     || lk == 62585                 // 'element' 'else'\n     || lk == 62648                 // 'namespace' 'else'\n     || lk == 62680                 // 'processing-instruction' 'else'\n     || lk == 63058                 // 'attribute' 'empty'\n     || lk == 63097                 // 'element' 'empty'\n     || lk == 63160                 // 'namespace' 'empty'\n     || lk == 63192                 // 'processing-instruction' 'empty'\n     || lk == 64594                 // 'attribute' 'end'\n     || lk == 64633                 // 'element' 'end'\n     || lk == 64696                 // 'namespace' 'end'\n     || lk == 64728                 // 'processing-instruction' 'end'\n     || lk == 65618                 // 'attribute' 'eq'\n     || lk == 65657                 // 'element' 'eq'\n     || lk == 65720                 // 'namespace' 'eq'\n     || lk == 65752                 // 'processing-instruction' 'eq'\n     || lk == 67154                 // 'attribute' 'except'\n     || lk == 67193                 // 'element' 'except'\n     || lk == 67256                 // 'namespace' 'except'\n     || lk == 67288                 // 'processing-instruction' 'except'\n     || lk == 70226                 // 'attribute' 'for'\n     || lk == 70265                 // 'element' 'for'\n     || lk == 70328                 // 'namespace' 'for'\n     || lk == 70360                 // 'processing-instruction' 'for'\n     || lk == 74834                 // 'attribute' 'ge'\n     || lk == 74873                 // 'element' 'ge'\n     || lk == 74936                 // 'namespace' 'ge'\n     || lk == 74968                 // 'processing-instruction' 'ge'\n     || lk == 75858                 // 'attribute' 'group'\n     || lk == 75897                 // 'element' 'group'\n     || lk == 75960                 // 'namespace' 'group'\n     || lk == 75992                 // 'processing-instruction' 'group'\n     || lk == 76882                 // 'attribute' 'gt'\n     || lk == 76921                 // 'element' 'gt'\n     || lk == 76984                 // 'namespace' 'gt'\n     || lk == 77016                 // 'processing-instruction' 'gt'\n     || lk == 77394                 // 'attribute' 'idiv'\n     || lk == 77433                 // 'element' 'idiv'\n     || lk == 77496                 // 'namespace' 'idiv'\n     || lk == 77528                 // 'processing-instruction' 'idiv'\n     || lk == 82002                 // 'attribute' 'instance'\n     || lk == 82041                 // 'element' 'instance'\n     || lk == 82104                 // 'namespace' 'instance'\n     || lk == 82136                 // 'processing-instruction' 'instance'\n     || lk == 83026                 // 'attribute' 'intersect'\n     || lk == 83065                 // 'element' 'intersect'\n     || lk == 83128                 // 'namespace' 'intersect'\n     || lk == 83160                 // 'processing-instruction' 'intersect'\n     || lk == 83538                 // 'attribute' 'into'\n     || lk == 83577                 // 'element' 'into'\n     || lk == 83640                 // 'namespace' 'into'\n     || lk == 83672                 // 'processing-instruction' 'into'\n     || lk == 84050                 // 'attribute' 'is'\n     || lk == 84089                 // 'element' 'is'\n     || lk == 84152                 // 'namespace' 'is'\n     || lk == 84184                 // 'processing-instruction' 'is'\n     || lk == 88146                 // 'attribute' 'le'\n     || lk == 88185                 // 'element' 'le'\n     || lk == 88248                 // 'namespace' 'le'\n     || lk == 88280                 // 'processing-instruction' 'le'\n     || lk == 89170                 // 'attribute' 'let'\n     || lk == 89209                 // 'element' 'let'\n     || lk == 89272                 // 'namespace' 'let'\n     || lk == 89304                 // 'processing-instruction' 'let'\n     || lk == 91218                 // 'attribute' 'lt'\n     || lk == 91257                 // 'element' 'lt'\n     || lk == 91320                 // 'namespace' 'lt'\n     || lk == 91352                 // 'processing-instruction' 'lt'\n     || lk == 92242                 // 'attribute' 'mod'\n     || lk == 92281                 // 'element' 'mod'\n     || lk == 92344                 // 'namespace' 'mod'\n     || lk == 92376                 // 'processing-instruction' 'mod'\n     || lk == 92754                 // 'attribute' 'modify'\n     || lk == 92793                 // 'element' 'modify'\n     || lk == 92856                 // 'namespace' 'modify'\n     || lk == 92888                 // 'processing-instruction' 'modify'\n     || lk == 95314                 // 'attribute' 'ne'\n     || lk == 95353                 // 'element' 'ne'\n     || lk == 95416                 // 'namespace' 'ne'\n     || lk == 95448                 // 'processing-instruction' 'ne'\n     || lk == 101458                // 'attribute' 'only'\n     || lk == 101497                // 'element' 'only'\n     || lk == 101560                // 'namespace' 'only'\n     || lk == 101592                // 'processing-instruction' 'only'\n     || lk == 102482                // 'attribute' 'or'\n     || lk == 102521                // 'element' 'or'\n     || lk == 102584                // 'namespace' 'or'\n     || lk == 102616                // 'processing-instruction' 'or'\n     || lk == 102994                // 'attribute' 'order'\n     || lk == 103033                // 'element' 'order'\n     || lk == 103096                // 'namespace' 'order'\n     || lk == 103128                // 'processing-instruction' 'order'\n     || lk == 112722                // 'attribute' 'return'\n     || lk == 112761                // 'element' 'return'\n     || lk == 112824                // 'namespace' 'return'\n     || lk == 112856                // 'processing-instruction' 'return'\n     || lk == 114770                // 'attribute' 'satisfies'\n     || lk == 114809                // 'element' 'satisfies'\n     || lk == 114872                // 'namespace' 'satisfies'\n     || lk == 114904                // 'processing-instruction' 'satisfies'\n     || lk == 120914                // 'attribute' 'stable'\n     || lk == 120953                // 'element' 'stable'\n     || lk == 121016                // 'namespace' 'stable'\n     || lk == 121048                // 'processing-instruction' 'stable'\n     || lk == 121426                // 'attribute' 'start'\n     || lk == 121465                // 'element' 'start'\n     || lk == 121528                // 'namespace' 'start'\n     || lk == 121560                // 'processing-instruction' 'start'\n     || lk == 127058                // 'attribute' 'to'\n     || lk == 127097                // 'element' 'to'\n     || lk == 127160                // 'namespace' 'to'\n     || lk == 127192                // 'processing-instruction' 'to'\n     || lk == 127570                // 'attribute' 'treat'\n     || lk == 127609                // 'element' 'treat'\n     || lk == 127672                // 'namespace' 'treat'\n     || lk == 127704                // 'processing-instruction' 'treat'\n     || lk == 130130                // 'attribute' 'union'\n     || lk == 130169                // 'element' 'union'\n     || lk == 130232                // 'namespace' 'union'\n     || lk == 130264                // 'processing-instruction' 'union'\n     || lk == 136274                // 'attribute' 'where'\n     || lk == 136313                // 'element' 'where'\n     || lk == 136376                // 'namespace' 'where'\n     || lk == 136408                // 'processing-instruction' 'where'\n     || lk == 138322                // 'attribute' 'with'\n     || lk == 138361                // 'element' 'with'\n     || lk == 138424                // 'namespace' 'with'\n     || lk == 138456)               // 'processing-instruction' 'with'\n    {\n      lk = memoized(4, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_PostfixExpr();\n          lk = -1;\n        }\n        catch (p1A)\n        {\n          lk = -2;\n        }\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(4, e0, lk);\n      }\n    }\n    switch (lk)\n    {\n    case -1:\n    case 8:                         // IntegerLiteral\n    case 9:                         // DecimalLiteral\n    case 10:                        // DoubleLiteral\n    case 11:                        // StringLiteral\n    case 31:                        // '$'\n    case 32:                        // '%'\n    case 34:                        // '('\n    case 44:                        // '.'\n    case 54:                        // '<'\n    case 55:                        // '<!--'\n    case 59:                        // '<?'\n    case 68:                        // '['\n    case 276:                       // '{'\n    case 278:                       // '{|'\n    case 3154:                      // 'attribute' EQName^Token\n    case 3193:                      // 'element' EQName^Token\n    case 9912:                      // 'namespace' NCName^Token\n    case 9944:                      // 'processing-instruction' NCName^Token\n    case 14854:                     // EQName^Token '#'\n    case 14918:                     // 'after' '#'\n    case 14920:                     // 'allowing' '#'\n    case 14921:                     // 'ancestor' '#'\n    case 14922:                     // 'ancestor-or-self' '#'\n    case 14923:                     // 'and' '#'\n    case 14925:                     // 'append' '#'\n    case 14926:                     // 'array' '#'\n    case 14927:                     // 'as' '#'\n    case 14928:                     // 'ascending' '#'\n    case 14929:                     // 'at' '#'\n    case 14930:                     // 'attribute' '#'\n    case 14931:                     // 'base-uri' '#'\n    case 14932:                     // 'before' '#'\n    case 14933:                     // 'boundary-space' '#'\n    case 14934:                     // 'break' '#'\n    case 14936:                     // 'case' '#'\n    case 14937:                     // 'cast' '#'\n    case 14938:                     // 'castable' '#'\n    case 14939:                     // 'catch' '#'\n    case 14941:                     // 'child' '#'\n    case 14942:                     // 'collation' '#'\n    case 14944:                     // 'comment' '#'\n    case 14945:                     // 'constraint' '#'\n    case 14946:                     // 'construction' '#'\n    case 14949:                     // 'context' '#'\n    case 14950:                     // 'continue' '#'\n    case 14951:                     // 'copy' '#'\n    case 14952:                     // 'copy-namespaces' '#'\n    case 14953:                     // 'count' '#'\n    case 14954:                     // 'decimal-format' '#'\n    case 14956:                     // 'declare' '#'\n    case 14957:                     // 'default' '#'\n    case 14958:                     // 'delete' '#'\n    case 14959:                     // 'descendant' '#'\n    case 14960:                     // 'descendant-or-self' '#'\n    case 14961:                     // 'descending' '#'\n    case 14966:                     // 'div' '#'\n    case 14967:                     // 'document' '#'\n    case 14968:                     // 'document-node' '#'\n    case 14969:                     // 'element' '#'\n    case 14970:                     // 'else' '#'\n    case 14971:                     // 'empty' '#'\n    case 14972:                     // 'empty-sequence' '#'\n    case 14973:                     // 'encoding' '#'\n    case 14974:                     // 'end' '#'\n    case 14976:                     // 'eq' '#'\n    case 14977:                     // 'every' '#'\n    case 14979:                     // 'except' '#'\n    case 14980:                     // 'exit' '#'\n    case 14981:                     // 'external' '#'\n    case 14982:                     // 'first' '#'\n    case 14983:                     // 'following' '#'\n    case 14984:                     // 'following-sibling' '#'\n    case 14985:                     // 'for' '#'\n    case 14989:                     // 'ft-option' '#'\n    case 14993:                     // 'function' '#'\n    case 14994:                     // 'ge' '#'\n    case 14996:                     // 'group' '#'\n    case 14998:                     // 'gt' '#'\n    case 14999:                     // 'idiv' '#'\n    case 15000:                     // 'if' '#'\n    case 15001:                     // 'import' '#'\n    case 15002:                     // 'in' '#'\n    case 15003:                     // 'index' '#'\n    case 15007:                     // 'insert' '#'\n    case 15008:                     // 'instance' '#'\n    case 15009:                     // 'integrity' '#'\n    case 15010:                     // 'intersect' '#'\n    case 15011:                     // 'into' '#'\n    case 15012:                     // 'is' '#'\n    case 15013:                     // 'item' '#'\n    case 15014:                     // 'json' '#'\n    case 15015:                     // 'json-item' '#'\n    case 15018:                     // 'last' '#'\n    case 15019:                     // 'lax' '#'\n    case 15020:                     // 'le' '#'\n    case 15022:                     // 'let' '#'\n    case 15024:                     // 'loop' '#'\n    case 15026:                     // 'lt' '#'\n    case 15028:                     // 'mod' '#'\n    case 15029:                     // 'modify' '#'\n    case 15030:                     // 'module' '#'\n    case 15032:                     // 'namespace' '#'\n    case 15033:                     // 'namespace-node' '#'\n    case 15034:                     // 'ne' '#'\n    case 15039:                     // 'node' '#'\n    case 15040:                     // 'nodes' '#'\n    case 15042:                     // 'object' '#'\n    case 15046:                     // 'only' '#'\n    case 15047:                     // 'option' '#'\n    case 15048:                     // 'or' '#'\n    case 15049:                     // 'order' '#'\n    case 15050:                     // 'ordered' '#'\n    case 15051:                     // 'ordering' '#'\n    case 15054:                     // 'parent' '#'\n    case 15060:                     // 'preceding' '#'\n    case 15061:                     // 'preceding-sibling' '#'\n    case 15064:                     // 'processing-instruction' '#'\n    case 15066:                     // 'rename' '#'\n    case 15067:                     // 'replace' '#'\n    case 15068:                     // 'return' '#'\n    case 15069:                     // 'returning' '#'\n    case 15070:                     // 'revalidation' '#'\n    case 15072:                     // 'satisfies' '#'\n    case 15073:                     // 'schema' '#'\n    case 15074:                     // 'schema-attribute' '#'\n    case 15075:                     // 'schema-element' '#'\n    case 15076:                     // 'score' '#'\n    case 15077:                     // 'self' '#'\n    case 15082:                     // 'sliding' '#'\n    case 15083:                     // 'some' '#'\n    case 15084:                     // 'stable' '#'\n    case 15085:                     // 'start' '#'\n    case 15088:                     // 'strict' '#'\n    case 15090:                     // 'structured-item' '#'\n    case 15091:                     // 'switch' '#'\n    case 15092:                     // 'text' '#'\n    case 15096:                     // 'to' '#'\n    case 15097:                     // 'treat' '#'\n    case 15098:                     // 'try' '#'\n    case 15099:                     // 'tumbling' '#'\n    case 15100:                     // 'type' '#'\n    case 15101:                     // 'typeswitch' '#'\n    case 15102:                     // 'union' '#'\n    case 15104:                     // 'unordered' '#'\n    case 15105:                     // 'updating' '#'\n    case 15108:                     // 'validate' '#'\n    case 15109:                     // 'value' '#'\n    case 15110:                     // 'variable' '#'\n    case 15111:                     // 'version' '#'\n    case 15114:                     // 'where' '#'\n    case 15115:                     // 'while' '#'\n    case 15118:                     // 'with' '#'\n    case 15122:                     // 'xquery' '#'\n    case 17414:                     // EQName^Token '('\n    case 17478:                     // 'after' '('\n    case 17480:                     // 'allowing' '('\n    case 17481:                     // 'ancestor' '('\n    case 17482:                     // 'ancestor-or-self' '('\n    case 17483:                     // 'and' '('\n    case 17485:                     // 'append' '('\n    case 17487:                     // 'as' '('\n    case 17488:                     // 'ascending' '('\n    case 17489:                     // 'at' '('\n    case 17491:                     // 'base-uri' '('\n    case 17492:                     // 'before' '('\n    case 17493:                     // 'boundary-space' '('\n    case 17494:                     // 'break' '('\n    case 17496:                     // 'case' '('\n    case 17497:                     // 'cast' '('\n    case 17498:                     // 'castable' '('\n    case 17499:                     // 'catch' '('\n    case 17501:                     // 'child' '('\n    case 17502:                     // 'collation' '('\n    case 17505:                     // 'constraint' '('\n    case 17506:                     // 'construction' '('\n    case 17509:                     // 'context' '('\n    case 17510:                     // 'continue' '('\n    case 17511:                     // 'copy' '('\n    case 17512:                     // 'copy-namespaces' '('\n    case 17513:                     // 'count' '('\n    case 17514:                     // 'decimal-format' '('\n    case 17516:                     // 'declare' '('\n    case 17517:                     // 'default' '('\n    case 17518:                     // 'delete' '('\n    case 17519:                     // 'descendant' '('\n    case 17520:                     // 'descendant-or-self' '('\n    case 17521:                     // 'descending' '('\n    case 17526:                     // 'div' '('\n    case 17527:                     // 'document' '('\n    case 17530:                     // 'else' '('\n    case 17531:                     // 'empty' '('\n    case 17533:                     // 'encoding' '('\n    case 17534:                     // 'end' '('\n    case 17536:                     // 'eq' '('\n    case 17537:                     // 'every' '('\n    case 17539:                     // 'except' '('\n    case 17540:                     // 'exit' '('\n    case 17541:                     // 'external' '('\n    case 17542:                     // 'first' '('\n    case 17543:                     // 'following' '('\n    case 17544:                     // 'following-sibling' '('\n    case 17545:                     // 'for' '('\n    case 17549:                     // 'ft-option' '('\n    case 17553:                     // 'function' '('\n    case 17554:                     // 'ge' '('\n    case 17556:                     // 'group' '('\n    case 17558:                     // 'gt' '('\n    case 17559:                     // 'idiv' '('\n    case 17561:                     // 'import' '('\n    case 17562:                     // 'in' '('\n    case 17563:                     // 'index' '('\n    case 17567:                     // 'insert' '('\n    case 17568:                     // 'instance' '('\n    case 17569:                     // 'integrity' '('\n    case 17570:                     // 'intersect' '('\n    case 17571:                     // 'into' '('\n    case 17572:                     // 'is' '('\n    case 17574:                     // 'json' '('\n    case 17578:                     // 'last' '('\n    case 17579:                     // 'lax' '('\n    case 17580:                     // 'le' '('\n    case 17582:                     // 'let' '('\n    case 17584:                     // 'loop' '('\n    case 17586:                     // 'lt' '('\n    case 17588:                     // 'mod' '('\n    case 17589:                     // 'modify' '('\n    case 17590:                     // 'module' '('\n    case 17592:                     // 'namespace' '('\n    case 17594:                     // 'ne' '('\n    case 17600:                     // 'nodes' '('\n    case 17602:                     // 'object' '('\n    case 17606:                     // 'only' '('\n    case 17607:                     // 'option' '('\n    case 17608:                     // 'or' '('\n    case 17609:                     // 'order' '('\n    case 17610:                     // 'ordered' '('\n    case 17611:                     // 'ordering' '('\n    case 17614:                     // 'parent' '('\n    case 17620:                     // 'preceding' '('\n    case 17621:                     // 'preceding-sibling' '('\n    case 17626:                     // 'rename' '('\n    case 17627:                     // 'replace' '('\n    case 17628:                     // 'return' '('\n    case 17629:                     // 'returning' '('\n    case 17630:                     // 'revalidation' '('\n    case 17632:                     // 'satisfies' '('\n    case 17633:                     // 'schema' '('\n    case 17636:                     // 'score' '('\n    case 17637:                     // 'self' '('\n    case 17642:                     // 'sliding' '('\n    case 17643:                     // 'some' '('\n    case 17644:                     // 'stable' '('\n    case 17645:                     // 'start' '('\n    case 17648:                     // 'strict' '('\n    case 17656:                     // 'to' '('\n    case 17657:                     // 'treat' '('\n    case 17658:                     // 'try' '('\n    case 17659:                     // 'tumbling' '('\n    case 17660:                     // 'type' '('\n    case 17662:                     // 'union' '('\n    case 17664:                     // 'unordered' '('\n    case 17665:                     // 'updating' '('\n    case 17668:                     // 'validate' '('\n    case 17669:                     // 'value' '('\n    case 17670:                     // 'variable' '('\n    case 17671:                     // 'version' '('\n    case 17674:                     // 'where' '('\n    case 17675:                     // 'while' '('\n    case 17678:                     // 'with' '('\n    case 17682:                     // 'xquery' '('\n    case 36946:                     // 'attribute' 'allowing'\n    case 36985:                     // 'element' 'allowing'\n    case 37048:                     // 'namespace' 'allowing'\n    case 37080:                     // 'processing-instruction' 'allowing'\n    case 37458:                     // 'attribute' 'ancestor'\n    case 37497:                     // 'element' 'ancestor'\n    case 37560:                     // 'namespace' 'ancestor'\n    case 37592:                     // 'processing-instruction' 'ancestor'\n    case 37970:                     // 'attribute' 'ancestor-or-self'\n    case 38009:                     // 'element' 'ancestor-or-self'\n    case 38072:                     // 'namespace' 'ancestor-or-self'\n    case 38104:                     // 'processing-instruction' 'ancestor-or-self'\n    case 39506:                     // 'attribute' 'append'\n    case 39545:                     // 'element' 'append'\n    case 39608:                     // 'namespace' 'append'\n    case 39640:                     // 'processing-instruction' 'append'\n    case 40018:                     // 'attribute' 'array'\n    case 40057:                     // 'element' 'array'\n    case 42066:                     // 'attribute' 'attribute'\n    case 42105:                     // 'element' 'attribute'\n    case 42168:                     // 'namespace' 'attribute'\n    case 42200:                     // 'processing-instruction' 'attribute'\n    case 42578:                     // 'attribute' 'base-uri'\n    case 42617:                     // 'element' 'base-uri'\n    case 42680:                     // 'namespace' 'base-uri'\n    case 42712:                     // 'processing-instruction' 'base-uri'\n    case 43602:                     // 'attribute' 'boundary-space'\n    case 43641:                     // 'element' 'boundary-space'\n    case 43704:                     // 'namespace' 'boundary-space'\n    case 43736:                     // 'processing-instruction' 'boundary-space'\n    case 44114:                     // 'attribute' 'break'\n    case 44153:                     // 'element' 'break'\n    case 44216:                     // 'namespace' 'break'\n    case 44248:                     // 'processing-instruction' 'break'\n    case 46674:                     // 'attribute' 'catch'\n    case 46713:                     // 'element' 'catch'\n    case 46776:                     // 'namespace' 'catch'\n    case 46808:                     // 'processing-instruction' 'catch'\n    case 47698:                     // 'attribute' 'child'\n    case 47737:                     // 'element' 'child'\n    case 47800:                     // 'namespace' 'child'\n    case 47832:                     // 'processing-instruction' 'child'\n    case 49234:                     // 'attribute' 'comment'\n    case 49273:                     // 'element' 'comment'\n    case 49336:                     // 'namespace' 'comment'\n    case 49368:                     // 'processing-instruction' 'comment'\n    case 49746:                     // 'attribute' 'constraint'\n    case 49785:                     // 'element' 'constraint'\n    case 49848:                     // 'namespace' 'constraint'\n    case 49880:                     // 'processing-instruction' 'constraint'\n    case 50258:                     // 'attribute' 'construction'\n    case 50297:                     // 'element' 'construction'\n    case 50360:                     // 'namespace' 'construction'\n    case 50392:                     // 'processing-instruction' 'construction'\n    case 51794:                     // 'attribute' 'context'\n    case 51833:                     // 'element' 'context'\n    case 51896:                     // 'namespace' 'context'\n    case 51928:                     // 'processing-instruction' 'context'\n    case 52306:                     // 'attribute' 'continue'\n    case 52345:                     // 'element' 'continue'\n    case 52408:                     // 'namespace' 'continue'\n    case 52440:                     // 'processing-instruction' 'continue'\n    case 52818:                     // 'attribute' 'copy'\n    case 52857:                     // 'element' 'copy'\n    case 52920:                     // 'namespace' 'copy'\n    case 52952:                     // 'processing-instruction' 'copy'\n    case 53330:                     // 'attribute' 'copy-namespaces'\n    case 53369:                     // 'element' 'copy-namespaces'\n    case 53432:                     // 'namespace' 'copy-namespaces'\n    case 53464:                     // 'processing-instruction' 'copy-namespaces'\n    case 54354:                     // 'attribute' 'decimal-format'\n    case 54393:                     // 'element' 'decimal-format'\n    case 54456:                     // 'namespace' 'decimal-format'\n    case 54488:                     // 'processing-instruction' 'decimal-format'\n    case 55378:                     // 'attribute' 'declare'\n    case 55417:                     // 'element' 'declare'\n    case 55480:                     // 'namespace' 'declare'\n    case 55512:                     // 'processing-instruction' 'declare'\n    case 56402:                     // 'attribute' 'delete'\n    case 56441:                     // 'element' 'delete'\n    case 56504:                     // 'namespace' 'delete'\n    case 56536:                     // 'processing-instruction' 'delete'\n    case 56914:                     // 'attribute' 'descendant'\n    case 56953:                     // 'element' 'descendant'\n    case 57016:                     // 'namespace' 'descendant'\n    case 57048:                     // 'processing-instruction' 'descendant'\n    case 57426:                     // 'attribute' 'descendant-or-self'\n    case 57465:                     // 'element' 'descendant-or-self'\n    case 57528:                     // 'namespace' 'descendant-or-self'\n    case 57560:                     // 'processing-instruction' 'descendant-or-self'\n    case 61010:                     // 'attribute' 'document'\n    case 61049:                     // 'element' 'document'\n    case 61112:                     // 'namespace' 'document'\n    case 61144:                     // 'processing-instruction' 'document'\n    case 61522:                     // 'attribute' 'document-node'\n    case 61561:                     // 'element' 'document-node'\n    case 61624:                     // 'namespace' 'document-node'\n    case 61656:                     // 'processing-instruction' 'document-node'\n    case 62034:                     // 'attribute' 'element'\n    case 62073:                     // 'element' 'element'\n    case 62136:                     // 'namespace' 'element'\n    case 62168:                     // 'processing-instruction' 'element'\n    case 63570:                     // 'attribute' 'empty-sequence'\n    case 63609:                     // 'element' 'empty-sequence'\n    case 63672:                     // 'namespace' 'empty-sequence'\n    case 63704:                     // 'processing-instruction' 'empty-sequence'\n    case 64082:                     // 'attribute' 'encoding'\n    case 64121:                     // 'element' 'encoding'\n    case 64184:                     // 'namespace' 'encoding'\n    case 64216:                     // 'processing-instruction' 'encoding'\n    case 66130:                     // 'attribute' 'every'\n    case 66169:                     // 'element' 'every'\n    case 66232:                     // 'namespace' 'every'\n    case 66264:                     // 'processing-instruction' 'every'\n    case 67666:                     // 'attribute' 'exit'\n    case 67705:                     // 'element' 'exit'\n    case 67768:                     // 'namespace' 'exit'\n    case 67800:                     // 'processing-instruction' 'exit'\n    case 68178:                     // 'attribute' 'external'\n    case 68217:                     // 'element' 'external'\n    case 68280:                     // 'namespace' 'external'\n    case 68312:                     // 'processing-instruction' 'external'\n    case 68690:                     // 'attribute' 'first'\n    case 68729:                     // 'element' 'first'\n    case 68792:                     // 'namespace' 'first'\n    case 68824:                     // 'processing-instruction' 'first'\n    case 69202:                     // 'attribute' 'following'\n    case 69241:                     // 'element' 'following'\n    case 69304:                     // 'namespace' 'following'\n    case 69336:                     // 'processing-instruction' 'following'\n    case 69714:                     // 'attribute' 'following-sibling'\n    case 69753:                     // 'element' 'following-sibling'\n    case 69816:                     // 'namespace' 'following-sibling'\n    case 69848:                     // 'processing-instruction' 'following-sibling'\n    case 72274:                     // 'attribute' 'ft-option'\n    case 72313:                     // 'element' 'ft-option'\n    case 72376:                     // 'namespace' 'ft-option'\n    case 72408:                     // 'processing-instruction' 'ft-option'\n    case 74322:                     // 'attribute' 'function'\n    case 74361:                     // 'element' 'function'\n    case 74424:                     // 'namespace' 'function'\n    case 74456:                     // 'processing-instruction' 'function'\n    case 77906:                     // 'attribute' 'if'\n    case 77945:                     // 'element' 'if'\n    case 78008:                     // 'namespace' 'if'\n    case 78040:                     // 'processing-instruction' 'if'\n    case 78418:                     // 'attribute' 'import'\n    case 78457:                     // 'element' 'import'\n    case 78520:                     // 'namespace' 'import'\n    case 78552:                     // 'processing-instruction' 'import'\n    case 78930:                     // 'attribute' 'in'\n    case 78969:                     // 'element' 'in'\n    case 79032:                     // 'namespace' 'in'\n    case 79064:                     // 'processing-instruction' 'in'\n    case 79442:                     // 'attribute' 'index'\n    case 79481:                     // 'element' 'index'\n    case 79544:                     // 'namespace' 'index'\n    case 79576:                     // 'processing-instruction' 'index'\n    case 81490:                     // 'attribute' 'insert'\n    case 81529:                     // 'element' 'insert'\n    case 81592:                     // 'namespace' 'insert'\n    case 81624:                     // 'processing-instruction' 'insert'\n    case 82514:                     // 'attribute' 'integrity'\n    case 82553:                     // 'element' 'integrity'\n    case 82616:                     // 'namespace' 'integrity'\n    case 82648:                     // 'processing-instruction' 'integrity'\n    case 84562:                     // 'attribute' 'item'\n    case 84601:                     // 'element' 'item'\n    case 84664:                     // 'namespace' 'item'\n    case 84696:                     // 'processing-instruction' 'item'\n    case 85074:                     // 'attribute' 'json'\n    case 85113:                     // 'element' 'json'\n    case 85176:                     // 'namespace' 'json'\n    case 85208:                     // 'processing-instruction' 'json'\n    case 85586:                     // 'attribute' 'json-item'\n    case 85625:                     // 'element' 'json-item'\n    case 87122:                     // 'attribute' 'last'\n    case 87161:                     // 'element' 'last'\n    case 87224:                     // 'namespace' 'last'\n    case 87256:                     // 'processing-instruction' 'last'\n    case 87634:                     // 'attribute' 'lax'\n    case 87673:                     // 'element' 'lax'\n    case 87736:                     // 'namespace' 'lax'\n    case 87768:                     // 'processing-instruction' 'lax'\n    case 90194:                     // 'attribute' 'loop'\n    case 90233:                     // 'element' 'loop'\n    case 90296:                     // 'namespace' 'loop'\n    case 90328:                     // 'processing-instruction' 'loop'\n    case 93266:                     // 'attribute' 'module'\n    case 93305:                     // 'element' 'module'\n    case 93368:                     // 'namespace' 'module'\n    case 93400:                     // 'processing-instruction' 'module'\n    case 94290:                     // 'attribute' 'namespace'\n    case 94329:                     // 'element' 'namespace'\n    case 94392:                     // 'namespace' 'namespace'\n    case 94424:                     // 'processing-instruction' 'namespace'\n    case 94802:                     // 'attribute' 'namespace-node'\n    case 94841:                     // 'element' 'namespace-node'\n    case 94904:                     // 'namespace' 'namespace-node'\n    case 94936:                     // 'processing-instruction' 'namespace-node'\n    case 97874:                     // 'attribute' 'node'\n    case 97913:                     // 'element' 'node'\n    case 97976:                     // 'namespace' 'node'\n    case 98008:                     // 'processing-instruction' 'node'\n    case 98386:                     // 'attribute' 'nodes'\n    case 98425:                     // 'element' 'nodes'\n    case 98488:                     // 'namespace' 'nodes'\n    case 98520:                     // 'processing-instruction' 'nodes'\n    case 99410:                     // 'attribute' 'object'\n    case 99449:                     // 'element' 'object'\n    case 99512:                     // 'namespace' 'object'\n    case 99544:                     // 'processing-instruction' 'object'\n    case 101970:                    // 'attribute' 'option'\n    case 102009:                    // 'element' 'option'\n    case 102072:                    // 'namespace' 'option'\n    case 102104:                    // 'processing-instruction' 'option'\n    case 103506:                    // 'attribute' 'ordered'\n    case 103545:                    // 'element' 'ordered'\n    case 103608:                    // 'namespace' 'ordered'\n    case 103640:                    // 'processing-instruction' 'ordered'\n    case 104018:                    // 'attribute' 'ordering'\n    case 104057:                    // 'element' 'ordering'\n    case 104120:                    // 'namespace' 'ordering'\n    case 104152:                    // 'processing-instruction' 'ordering'\n    case 105554:                    // 'attribute' 'parent'\n    case 105593:                    // 'element' 'parent'\n    case 105656:                    // 'namespace' 'parent'\n    case 105688:                    // 'processing-instruction' 'parent'\n    case 108626:                    // 'attribute' 'preceding'\n    case 108665:                    // 'element' 'preceding'\n    case 108728:                    // 'namespace' 'preceding'\n    case 108760:                    // 'processing-instruction' 'preceding'\n    case 109138:                    // 'attribute' 'preceding-sibling'\n    case 109177:                    // 'element' 'preceding-sibling'\n    case 109240:                    // 'namespace' 'preceding-sibling'\n    case 109272:                    // 'processing-instruction' 'preceding-sibling'\n    case 110674:                    // 'attribute' 'processing-instruction'\n    case 110713:                    // 'element' 'processing-instruction'\n    case 110776:                    // 'namespace' 'processing-instruction'\n    case 110808:                    // 'processing-instruction' 'processing-instruction'\n    case 111698:                    // 'attribute' 'rename'\n    case 111737:                    // 'element' 'rename'\n    case 111800:                    // 'namespace' 'rename'\n    case 111832:                    // 'processing-instruction' 'rename'\n    case 112210:                    // 'attribute' 'replace'\n    case 112249:                    // 'element' 'replace'\n    case 112312:                    // 'namespace' 'replace'\n    case 112344:                    // 'processing-instruction' 'replace'\n    case 113234:                    // 'attribute' 'returning'\n    case 113273:                    // 'element' 'returning'\n    case 113336:                    // 'namespace' 'returning'\n    case 113368:                    // 'processing-instruction' 'returning'\n    case 113746:                    // 'attribute' 'revalidation'\n    case 113785:                    // 'element' 'revalidation'\n    case 113848:                    // 'namespace' 'revalidation'\n    case 113880:                    // 'processing-instruction' 'revalidation'\n    case 115282:                    // 'attribute' 'schema'\n    case 115321:                    // 'element' 'schema'\n    case 115384:                    // 'namespace' 'schema'\n    case 115416:                    // 'processing-instruction' 'schema'\n    case 115794:                    // 'attribute' 'schema-attribute'\n    case 115833:                    // 'element' 'schema-attribute'\n    case 115896:                    // 'namespace' 'schema-attribute'\n    case 115928:                    // 'processing-instruction' 'schema-attribute'\n    case 116306:                    // 'attribute' 'schema-element'\n    case 116345:                    // 'element' 'schema-element'\n    case 116408:                    // 'namespace' 'schema-element'\n    case 116440:                    // 'processing-instruction' 'schema-element'\n    case 116818:                    // 'attribute' 'score'\n    case 116857:                    // 'element' 'score'\n    case 116920:                    // 'namespace' 'score'\n    case 116952:                    // 'processing-instruction' 'score'\n    case 117330:                    // 'attribute' 'self'\n    case 117369:                    // 'element' 'self'\n    case 117432:                    // 'namespace' 'self'\n    case 117464:                    // 'processing-instruction' 'self'\n    case 119890:                    // 'attribute' 'sliding'\n    case 119929:                    // 'element' 'sliding'\n    case 119992:                    // 'namespace' 'sliding'\n    case 120024:                    // 'processing-instruction' 'sliding'\n    case 120402:                    // 'attribute' 'some'\n    case 120441:                    // 'element' 'some'\n    case 120504:                    // 'namespace' 'some'\n    case 120536:                    // 'processing-instruction' 'some'\n    case 122962:                    // 'attribute' 'strict'\n    case 123001:                    // 'element' 'strict'\n    case 123064:                    // 'namespace' 'strict'\n    case 123096:                    // 'processing-instruction' 'strict'\n    case 123986:                    // 'attribute' 'structured-item'\n    case 124025:                    // 'element' 'structured-item'\n    case 124498:                    // 'attribute' 'switch'\n    case 124537:                    // 'element' 'switch'\n    case 124600:                    // 'namespace' 'switch'\n    case 124632:                    // 'processing-instruction' 'switch'\n    case 125010:                    // 'attribute' 'text'\n    case 125049:                    // 'element' 'text'\n    case 125112:                    // 'namespace' 'text'\n    case 125144:                    // 'processing-instruction' 'text'\n    case 128082:                    // 'attribute' 'try'\n    case 128121:                    // 'element' 'try'\n    case 128184:                    // 'namespace' 'try'\n    case 128216:                    // 'processing-instruction' 'try'\n    case 128594:                    // 'attribute' 'tumbling'\n    case 128633:                    // 'element' 'tumbling'\n    case 128696:                    // 'namespace' 'tumbling'\n    case 128728:                    // 'processing-instruction' 'tumbling'\n    case 129106:                    // 'attribute' 'type'\n    case 129145:                    // 'element' 'type'\n    case 129208:                    // 'namespace' 'type'\n    case 129240:                    // 'processing-instruction' 'type'\n    case 129618:                    // 'attribute' 'typeswitch'\n    case 129657:                    // 'element' 'typeswitch'\n    case 129720:                    // 'namespace' 'typeswitch'\n    case 129752:                    // 'processing-instruction' 'typeswitch'\n    case 131154:                    // 'attribute' 'unordered'\n    case 131193:                    // 'element' 'unordered'\n    case 131256:                    // 'namespace' 'unordered'\n    case 131288:                    // 'processing-instruction' 'unordered'\n    case 131666:                    // 'attribute' 'updating'\n    case 131705:                    // 'element' 'updating'\n    case 131768:                    // 'namespace' 'updating'\n    case 131800:                    // 'processing-instruction' 'updating'\n    case 133202:                    // 'attribute' 'validate'\n    case 133241:                    // 'element' 'validate'\n    case 133304:                    // 'namespace' 'validate'\n    case 133336:                    // 'processing-instruction' 'validate'\n    case 133714:                    // 'attribute' 'value'\n    case 133753:                    // 'element' 'value'\n    case 133816:                    // 'namespace' 'value'\n    case 133848:                    // 'processing-instruction' 'value'\n    case 134226:                    // 'attribute' 'variable'\n    case 134265:                    // 'element' 'variable'\n    case 134328:                    // 'namespace' 'variable'\n    case 134360:                    // 'processing-instruction' 'variable'\n    case 134738:                    // 'attribute' 'version'\n    case 134777:                    // 'element' 'version'\n    case 134840:                    // 'namespace' 'version'\n    case 134872:                    // 'processing-instruction' 'version'\n    case 136786:                    // 'attribute' 'while'\n    case 136825:                    // 'element' 'while'\n    case 136888:                    // 'namespace' 'while'\n    case 136920:                    // 'processing-instruction' 'while'\n    case 140370:                    // 'attribute' 'xquery'\n    case 140409:                    // 'element' 'xquery'\n    case 140472:                    // 'namespace' 'xquery'\n    case 140504:                    // 'processing-instruction' 'xquery'\n    case 141394:                    // 'attribute' '{'\n    case 141408:                    // 'comment' '{'\n    case 141431:                    // 'document' '{'\n    case 141433:                    // 'element' '{'\n    case 141496:                    // 'namespace' '{'\n    case 141514:                    // 'ordered' '{'\n    case 141528:                    // 'processing-instruction' '{'\n    case 141556:                    // 'text' '{'\n    case 141568:                    // 'unordered' '{'\n      parse_PostfixExpr();\n      break;\n    default:\n      parse_AxisStep();\n    }\n    eventHandler.endNonterminal(\"StepExpr\", e0);\n  }\n\n  function try_StepExpr()\n  {\n    switch (l1)\n    {\n    case 82:                        // 'attribute'\n      lookahead2W(285);             // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' |\n      break;\n    case 121:                       // 'element'\n      lookahead2W(283);             // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' |\n      break;\n    case 184:                       // 'namespace'\n    case 216:                       // 'processing-instruction'\n      lookahead2W(282);             // NCName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' |\n      break;\n    case 96:                        // 'comment'\n    case 119:                       // 'document'\n    case 202:                       // 'ordered'\n    case 244:                       // 'text'\n    case 256:                       // 'unordered'\n      lookahead2W(247);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    case 78:                        // 'array'\n    case 124:                       // 'empty-sequence'\n    case 152:                       // 'if'\n    case 165:                       // 'item'\n    case 167:                       // 'json-item'\n    case 242:                       // 'structured-item'\n    case 243:                       // 'switch'\n    case 253:                       // 'typeswitch'\n      lookahead2W(240);             // S^WS | EOF | '!' | '!=' | '#' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |\n      break;\n    case 73:                        // 'ancestor'\n    case 74:                        // 'ancestor-or-self'\n    case 93:                        // 'child'\n    case 111:                       // 'descendant'\n    case 112:                       // 'descendant-or-self'\n    case 135:                       // 'following'\n    case 136:                       // 'following-sibling'\n    case 206:                       // 'parent'\n    case 212:                       // 'preceding'\n    case 213:                       // 'preceding-sibling'\n    case 229:                       // 'self'\n      lookahead2W(246);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    case 6:                         // EQName^Token\n    case 70:                        // 'after'\n    case 72:                        // 'allowing'\n    case 75:                        // 'and'\n    case 77:                        // 'append'\n    case 79:                        // 'as'\n    case 80:                        // 'ascending'\n    case 81:                        // 'at'\n    case 83:                        // 'base-uri'\n    case 84:                        // 'before'\n    case 85:                        // 'boundary-space'\n    case 86:                        // 'break'\n    case 88:                        // 'case'\n    case 89:                        // 'cast'\n    case 90:                        // 'castable'\n    case 91:                        // 'catch'\n    case 94:                        // 'collation'\n    case 97:                        // 'constraint'\n    case 98:                        // 'construction'\n    case 101:                       // 'context'\n    case 102:                       // 'continue'\n    case 103:                       // 'copy'\n    case 104:                       // 'copy-namespaces'\n    case 105:                       // 'count'\n    case 106:                       // 'decimal-format'\n    case 108:                       // 'declare'\n    case 109:                       // 'default'\n    case 110:                       // 'delete'\n    case 113:                       // 'descending'\n    case 118:                       // 'div'\n    case 120:                       // 'document-node'\n    case 122:                       // 'else'\n    case 123:                       // 'empty'\n    case 125:                       // 'encoding'\n    case 126:                       // 'end'\n    case 128:                       // 'eq'\n    case 129:                       // 'every'\n    case 131:                       // 'except'\n    case 132:                       // 'exit'\n    case 133:                       // 'external'\n    case 134:                       // 'first'\n    case 137:                       // 'for'\n    case 141:                       // 'ft-option'\n    case 145:                       // 'function'\n    case 146:                       // 'ge'\n    case 148:                       // 'group'\n    case 150:                       // 'gt'\n    case 151:                       // 'idiv'\n    case 153:                       // 'import'\n    case 154:                       // 'in'\n    case 155:                       // 'index'\n    case 159:                       // 'insert'\n    case 160:                       // 'instance'\n    case 161:                       // 'integrity'\n    case 162:                       // 'intersect'\n    case 163:                       // 'into'\n    case 164:                       // 'is'\n    case 166:                       // 'json'\n    case 170:                       // 'last'\n    case 171:                       // 'lax'\n    case 172:                       // 'le'\n    case 174:                       // 'let'\n    case 176:                       // 'loop'\n    case 178:                       // 'lt'\n    case 180:                       // 'mod'\n    case 181:                       // 'modify'\n    case 182:                       // 'module'\n    case 185:                       // 'namespace-node'\n    case 186:                       // 'ne'\n    case 191:                       // 'node'\n    case 192:                       // 'nodes'\n    case 194:                       // 'object'\n    case 198:                       // 'only'\n    case 199:                       // 'option'\n    case 200:                       // 'or'\n    case 201:                       // 'order'\n    case 203:                       // 'ordering'\n    case 218:                       // 'rename'\n    case 219:                       // 'replace'\n    case 220:                       // 'return'\n    case 221:                       // 'returning'\n    case 222:                       // 'revalidation'\n    case 224:                       // 'satisfies'\n    case 225:                       // 'schema'\n    case 226:                       // 'schema-attribute'\n    case 227:                       // 'schema-element'\n    case 228:                       // 'score'\n    case 234:                       // 'sliding'\n    case 235:                       // 'some'\n    case 236:                       // 'stable'\n    case 237:                       // 'start'\n    case 240:                       // 'strict'\n    case 248:                       // 'to'\n    case 249:                       // 'treat'\n    case 250:                       // 'try'\n    case 251:                       // 'tumbling'\n    case 252:                       // 'type'\n    case 254:                       // 'union'\n    case 257:                       // 'updating'\n    case 260:                       // 'validate'\n    case 261:                       // 'value'\n    case 262:                       // 'variable'\n    case 263:                       // 'version'\n    case 266:                       // 'where'\n    case 267:                       // 'while'\n    case 270:                       // 'with'\n    case 274:                       // 'xquery'\n      lookahead2W(244);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 35922                 // 'attribute' 'after'\n     || lk == 35961                 // 'element' 'after'\n     || lk == 36024                 // 'namespace' 'after'\n     || lk == 36056                 // 'processing-instruction' 'after'\n     || lk == 38482                 // 'attribute' 'and'\n     || lk == 38521                 // 'element' 'and'\n     || lk == 38584                 // 'namespace' 'and'\n     || lk == 38616                 // 'processing-instruction' 'and'\n     || lk == 40530                 // 'attribute' 'as'\n     || lk == 40569                 // 'element' 'as'\n     || lk == 40632                 // 'namespace' 'as'\n     || lk == 40664                 // 'processing-instruction' 'as'\n     || lk == 41042                 // 'attribute' 'ascending'\n     || lk == 41081                 // 'element' 'ascending'\n     || lk == 41144                 // 'namespace' 'ascending'\n     || lk == 41176                 // 'processing-instruction' 'ascending'\n     || lk == 41554                 // 'attribute' 'at'\n     || lk == 41593                 // 'element' 'at'\n     || lk == 41656                 // 'namespace' 'at'\n     || lk == 41688                 // 'processing-instruction' 'at'\n     || lk == 43090                 // 'attribute' 'before'\n     || lk == 43129                 // 'element' 'before'\n     || lk == 43192                 // 'namespace' 'before'\n     || lk == 43224                 // 'processing-instruction' 'before'\n     || lk == 45138                 // 'attribute' 'case'\n     || lk == 45177                 // 'element' 'case'\n     || lk == 45240                 // 'namespace' 'case'\n     || lk == 45272                 // 'processing-instruction' 'case'\n     || lk == 45650                 // 'attribute' 'cast'\n     || lk == 45689                 // 'element' 'cast'\n     || lk == 45752                 // 'namespace' 'cast'\n     || lk == 45784                 // 'processing-instruction' 'cast'\n     || lk == 46162                 // 'attribute' 'castable'\n     || lk == 46201                 // 'element' 'castable'\n     || lk == 46264                 // 'namespace' 'castable'\n     || lk == 46296                 // 'processing-instruction' 'castable'\n     || lk == 48210                 // 'attribute' 'collation'\n     || lk == 48249                 // 'element' 'collation'\n     || lk == 48312                 // 'namespace' 'collation'\n     || lk == 48344                 // 'processing-instruction' 'collation'\n     || lk == 53842                 // 'attribute' 'count'\n     || lk == 53881                 // 'element' 'count'\n     || lk == 53944                 // 'namespace' 'count'\n     || lk == 53976                 // 'processing-instruction' 'count'\n     || lk == 55890                 // 'attribute' 'default'\n     || lk == 55929                 // 'element' 'default'\n     || lk == 55992                 // 'namespace' 'default'\n     || lk == 56024                 // 'processing-instruction' 'default'\n     || lk == 57938                 // 'attribute' 'descending'\n     || lk == 57977                 // 'element' 'descending'\n     || lk == 58040                 // 'namespace' 'descending'\n     || lk == 58072                 // 'processing-instruction' 'descending'\n     || lk == 60498                 // 'attribute' 'div'\n     || lk == 60537                 // 'element' 'div'\n     || lk == 60600                 // 'namespace' 'div'\n     || lk == 60632                 // 'processing-instruction' 'div'\n     || lk == 62546                 // 'attribute' 'else'\n     || lk == 62585                 // 'element' 'else'\n     || lk == 62648                 // 'namespace' 'else'\n     || lk == 62680                 // 'processing-instruction' 'else'\n     || lk == 63058                 // 'attribute' 'empty'\n     || lk == 63097                 // 'element' 'empty'\n     || lk == 63160                 // 'namespace' 'empty'\n     || lk == 63192                 // 'processing-instruction' 'empty'\n     || lk == 64594                 // 'attribute' 'end'\n     || lk == 64633                 // 'element' 'end'\n     || lk == 64696                 // 'namespace' 'end'\n     || lk == 64728                 // 'processing-instruction' 'end'\n     || lk == 65618                 // 'attribute' 'eq'\n     || lk == 65657                 // 'element' 'eq'\n     || lk == 65720                 // 'namespace' 'eq'\n     || lk == 65752                 // 'processing-instruction' 'eq'\n     || lk == 67154                 // 'attribute' 'except'\n     || lk == 67193                 // 'element' 'except'\n     || lk == 67256                 // 'namespace' 'except'\n     || lk == 67288                 // 'processing-instruction' 'except'\n     || lk == 70226                 // 'attribute' 'for'\n     || lk == 70265                 // 'element' 'for'\n     || lk == 70328                 // 'namespace' 'for'\n     || lk == 70360                 // 'processing-instruction' 'for'\n     || lk == 74834                 // 'attribute' 'ge'\n     || lk == 74873                 // 'element' 'ge'\n     || lk == 74936                 // 'namespace' 'ge'\n     || lk == 74968                 // 'processing-instruction' 'ge'\n     || lk == 75858                 // 'attribute' 'group'\n     || lk == 75897                 // 'element' 'group'\n     || lk == 75960                 // 'namespace' 'group'\n     || lk == 75992                 // 'processing-instruction' 'group'\n     || lk == 76882                 // 'attribute' 'gt'\n     || lk == 76921                 // 'element' 'gt'\n     || lk == 76984                 // 'namespace' 'gt'\n     || lk == 77016                 // 'processing-instruction' 'gt'\n     || lk == 77394                 // 'attribute' 'idiv'\n     || lk == 77433                 // 'element' 'idiv'\n     || lk == 77496                 // 'namespace' 'idiv'\n     || lk == 77528                 // 'processing-instruction' 'idiv'\n     || lk == 82002                 // 'attribute' 'instance'\n     || lk == 82041                 // 'element' 'instance'\n     || lk == 82104                 // 'namespace' 'instance'\n     || lk == 82136                 // 'processing-instruction' 'instance'\n     || lk == 83026                 // 'attribute' 'intersect'\n     || lk == 83065                 // 'element' 'intersect'\n     || lk == 83128                 // 'namespace' 'intersect'\n     || lk == 83160                 // 'processing-instruction' 'intersect'\n     || lk == 83538                 // 'attribute' 'into'\n     || lk == 83577                 // 'element' 'into'\n     || lk == 83640                 // 'namespace' 'into'\n     || lk == 83672                 // 'processing-instruction' 'into'\n     || lk == 84050                 // 'attribute' 'is'\n     || lk == 84089                 // 'element' 'is'\n     || lk == 84152                 // 'namespace' 'is'\n     || lk == 84184                 // 'processing-instruction' 'is'\n     || lk == 88146                 // 'attribute' 'le'\n     || lk == 88185                 // 'element' 'le'\n     || lk == 88248                 // 'namespace' 'le'\n     || lk == 88280                 // 'processing-instruction' 'le'\n     || lk == 89170                 // 'attribute' 'let'\n     || lk == 89209                 // 'element' 'let'\n     || lk == 89272                 // 'namespace' 'let'\n     || lk == 89304                 // 'processing-instruction' 'let'\n     || lk == 91218                 // 'attribute' 'lt'\n     || lk == 91257                 // 'element' 'lt'\n     || lk == 91320                 // 'namespace' 'lt'\n     || lk == 91352                 // 'processing-instruction' 'lt'\n     || lk == 92242                 // 'attribute' 'mod'\n     || lk == 92281                 // 'element' 'mod'\n     || lk == 92344                 // 'namespace' 'mod'\n     || lk == 92376                 // 'processing-instruction' 'mod'\n     || lk == 92754                 // 'attribute' 'modify'\n     || lk == 92793                 // 'element' 'modify'\n     || lk == 92856                 // 'namespace' 'modify'\n     || lk == 92888                 // 'processing-instruction' 'modify'\n     || lk == 95314                 // 'attribute' 'ne'\n     || lk == 95353                 // 'element' 'ne'\n     || lk == 95416                 // 'namespace' 'ne'\n     || lk == 95448                 // 'processing-instruction' 'ne'\n     || lk == 101458                // 'attribute' 'only'\n     || lk == 101497                // 'element' 'only'\n     || lk == 101560                // 'namespace' 'only'\n     || lk == 101592                // 'processing-instruction' 'only'\n     || lk == 102482                // 'attribute' 'or'\n     || lk == 102521                // 'element' 'or'\n     || lk == 102584                // 'namespace' 'or'\n     || lk == 102616                // 'processing-instruction' 'or'\n     || lk == 102994                // 'attribute' 'order'\n     || lk == 103033                // 'element' 'order'\n     || lk == 103096                // 'namespace' 'order'\n     || lk == 103128                // 'processing-instruction' 'order'\n     || lk == 112722                // 'attribute' 'return'\n     || lk == 112761                // 'element' 'return'\n     || lk == 112824                // 'namespace' 'return'\n     || lk == 112856                // 'processing-instruction' 'return'\n     || lk == 114770                // 'attribute' 'satisfies'\n     || lk == 114809                // 'element' 'satisfies'\n     || lk == 114872                // 'namespace' 'satisfies'\n     || lk == 114904                // 'processing-instruction' 'satisfies'\n     || lk == 120914                // 'attribute' 'stable'\n     || lk == 120953                // 'element' 'stable'\n     || lk == 121016                // 'namespace' 'stable'\n     || lk == 121048                // 'processing-instruction' 'stable'\n     || lk == 121426                // 'attribute' 'start'\n     || lk == 121465                // 'element' 'start'\n     || lk == 121528                // 'namespace' 'start'\n     || lk == 121560                // 'processing-instruction' 'start'\n     || lk == 127058                // 'attribute' 'to'\n     || lk == 127097                // 'element' 'to'\n     || lk == 127160                // 'namespace' 'to'\n     || lk == 127192                // 'processing-instruction' 'to'\n     || lk == 127570                // 'attribute' 'treat'\n     || lk == 127609                // 'element' 'treat'\n     || lk == 127672                // 'namespace' 'treat'\n     || lk == 127704                // 'processing-instruction' 'treat'\n     || lk == 130130                // 'attribute' 'union'\n     || lk == 130169                // 'element' 'union'\n     || lk == 130232                // 'namespace' 'union'\n     || lk == 130264                // 'processing-instruction' 'union'\n     || lk == 136274                // 'attribute' 'where'\n     || lk == 136313                // 'element' 'where'\n     || lk == 136376                // 'namespace' 'where'\n     || lk == 136408                // 'processing-instruction' 'where'\n     || lk == 138322                // 'attribute' 'with'\n     || lk == 138361                // 'element' 'with'\n     || lk == 138424                // 'namespace' 'with'\n     || lk == 138456)               // 'processing-instruction' 'with'\n    {\n      lk = memoized(4, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_PostfixExpr();\n          memoize(4, e0A, -1);\n          lk = -3;\n        }\n        catch (p1A)\n        {\n          lk = -2;\n          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n          b2 = b2A; e2 = e2A; end = e2A; }}\n          memoize(4, e0A, -2);\n        }\n      }\n    }\n    switch (lk)\n    {\n    case -1:\n    case 8:                         // IntegerLiteral\n    case 9:                         // DecimalLiteral\n    case 10:                        // DoubleLiteral\n    case 11:                        // StringLiteral\n    case 31:                        // '$'\n    case 32:                        // '%'\n    case 34:                        // '('\n    case 44:                        // '.'\n    case 54:                        // '<'\n    case 55:                        // '<!--'\n    case 59:                        // '<?'\n    case 68:                        // '['\n    case 276:                       // '{'\n    case 278:                       // '{|'\n    case 3154:                      // 'attribute' EQName^Token\n    case 3193:                      // 'element' EQName^Token\n    case 9912:                      // 'namespace' NCName^Token\n    case 9944:                      // 'processing-instruction' NCName^Token\n    case 14854:                     // EQName^Token '#'\n    case 14918:                     // 'after' '#'\n    case 14920:                     // 'allowing' '#'\n    case 14921:                     // 'ancestor' '#'\n    case 14922:                     // 'ancestor-or-self' '#'\n    case 14923:                     // 'and' '#'\n    case 14925:                     // 'append' '#'\n    case 14926:                     // 'array' '#'\n    case 14927:                     // 'as' '#'\n    case 14928:                     // 'ascending' '#'\n    case 14929:                     // 'at' '#'\n    case 14930:                     // 'attribute' '#'\n    case 14931:                     // 'base-uri' '#'\n    case 14932:                     // 'before' '#'\n    case 14933:                     // 'boundary-space' '#'\n    case 14934:                     // 'break' '#'\n    case 14936:                     // 'case' '#'\n    case 14937:                     // 'cast' '#'\n    case 14938:                     // 'castable' '#'\n    case 14939:                     // 'catch' '#'\n    case 14941:                     // 'child' '#'\n    case 14942:                     // 'collation' '#'\n    case 14944:                     // 'comment' '#'\n    case 14945:                     // 'constraint' '#'\n    case 14946:                     // 'construction' '#'\n    case 14949:                     // 'context' '#'\n    case 14950:                     // 'continue' '#'\n    case 14951:                     // 'copy' '#'\n    case 14952:                     // 'copy-namespaces' '#'\n    case 14953:                     // 'count' '#'\n    case 14954:                     // 'decimal-format' '#'\n    case 14956:                     // 'declare' '#'\n    case 14957:                     // 'default' '#'\n    case 14958:                     // 'delete' '#'\n    case 14959:                     // 'descendant' '#'\n    case 14960:                     // 'descendant-or-self' '#'\n    case 14961:                     // 'descending' '#'\n    case 14966:                     // 'div' '#'\n    case 14967:                     // 'document' '#'\n    case 14968:                     // 'document-node' '#'\n    case 14969:                     // 'element' '#'\n    case 14970:                     // 'else' '#'\n    case 14971:                     // 'empty' '#'\n    case 14972:                     // 'empty-sequence' '#'\n    case 14973:                     // 'encoding' '#'\n    case 14974:                     // 'end' '#'\n    case 14976:                     // 'eq' '#'\n    case 14977:                     // 'every' '#'\n    case 14979:                     // 'except' '#'\n    case 14980:                     // 'exit' '#'\n    case 14981:                     // 'external' '#'\n    case 14982:                     // 'first' '#'\n    case 14983:                     // 'following' '#'\n    case 14984:                     // 'following-sibling' '#'\n    case 14985:                     // 'for' '#'\n    case 14989:                     // 'ft-option' '#'\n    case 14993:                     // 'function' '#'\n    case 14994:                     // 'ge' '#'\n    case 14996:                     // 'group' '#'\n    case 14998:                     // 'gt' '#'\n    case 14999:                     // 'idiv' '#'\n    case 15000:                     // 'if' '#'\n    case 15001:                     // 'import' '#'\n    case 15002:                     // 'in' '#'\n    case 15003:                     // 'index' '#'\n    case 15007:                     // 'insert' '#'\n    case 15008:                     // 'instance' '#'\n    case 15009:                     // 'integrity' '#'\n    case 15010:                     // 'intersect' '#'\n    case 15011:                     // 'into' '#'\n    case 15012:                     // 'is' '#'\n    case 15013:                     // 'item' '#'\n    case 15014:                     // 'json' '#'\n    case 15015:                     // 'json-item' '#'\n    case 15018:                     // 'last' '#'\n    case 15019:                     // 'lax' '#'\n    case 15020:                     // 'le' '#'\n    case 15022:                     // 'let' '#'\n    case 15024:                     // 'loop' '#'\n    case 15026:                     // 'lt' '#'\n    case 15028:                     // 'mod' '#'\n    case 15029:                     // 'modify' '#'\n    case 15030:                     // 'module' '#'\n    case 15032:                     // 'namespace' '#'\n    case 15033:                     // 'namespace-node' '#'\n    case 15034:                     // 'ne' '#'\n    case 15039:                     // 'node' '#'\n    case 15040:                     // 'nodes' '#'\n    case 15042:                     // 'object' '#'\n    case 15046:                     // 'only' '#'\n    case 15047:                     // 'option' '#'\n    case 15048:                     // 'or' '#'\n    case 15049:                     // 'order' '#'\n    case 15050:                     // 'ordered' '#'\n    case 15051:                     // 'ordering' '#'\n    case 15054:                     // 'parent' '#'\n    case 15060:                     // 'preceding' '#'\n    case 15061:                     // 'preceding-sibling' '#'\n    case 15064:                     // 'processing-instruction' '#'\n    case 15066:                     // 'rename' '#'\n    case 15067:                     // 'replace' '#'\n    case 15068:                     // 'return' '#'\n    case 15069:                     // 'returning' '#'\n    case 15070:                     // 'revalidation' '#'\n    case 15072:                     // 'satisfies' '#'\n    case 15073:                     // 'schema' '#'\n    case 15074:                     // 'schema-attribute' '#'\n    case 15075:                     // 'schema-element' '#'\n    case 15076:                     // 'score' '#'\n    case 15077:                     // 'self' '#'\n    case 15082:                     // 'sliding' '#'\n    case 15083:                     // 'some' '#'\n    case 15084:                     // 'stable' '#'\n    case 15085:                     // 'start' '#'\n    case 15088:                     // 'strict' '#'\n    case 15090:                     // 'structured-item' '#'\n    case 15091:                     // 'switch' '#'\n    case 15092:                     // 'text' '#'\n    case 15096:                     // 'to' '#'\n    case 15097:                     // 'treat' '#'\n    case 15098:                     // 'try' '#'\n    case 15099:                     // 'tumbling' '#'\n    case 15100:                     // 'type' '#'\n    case 15101:                     // 'typeswitch' '#'\n    case 15102:                     // 'union' '#'\n    case 15104:                     // 'unordered' '#'\n    case 15105:                     // 'updating' '#'\n    case 15108:                     // 'validate' '#'\n    case 15109:                     // 'value' '#'\n    case 15110:                     // 'variable' '#'\n    case 15111:                     // 'version' '#'\n    case 15114:                     // 'where' '#'\n    case 15115:                     // 'while' '#'\n    case 15118:                     // 'with' '#'\n    case 15122:                     // 'xquery' '#'\n    case 17414:                     // EQName^Token '('\n    case 17478:                     // 'after' '('\n    case 17480:                     // 'allowing' '('\n    case 17481:                     // 'ancestor' '('\n    case 17482:                     // 'ancestor-or-self' '('\n    case 17483:                     // 'and' '('\n    case 17485:                     // 'append' '('\n    case 17487:                     // 'as' '('\n    case 17488:                     // 'ascending' '('\n    case 17489:                     // 'at' '('\n    case 17491:                     // 'base-uri' '('\n    case 17492:                     // 'before' '('\n    case 17493:                     // 'boundary-space' '('\n    case 17494:                     // 'break' '('\n    case 17496:                     // 'case' '('\n    case 17497:                     // 'cast' '('\n    case 17498:                     // 'castable' '('\n    case 17499:                     // 'catch' '('\n    case 17501:                     // 'child' '('\n    case 17502:                     // 'collation' '('\n    case 17505:                     // 'constraint' '('\n    case 17506:                     // 'construction' '('\n    case 17509:                     // 'context' '('\n    case 17510:                     // 'continue' '('\n    case 17511:                     // 'copy' '('\n    case 17512:                     // 'copy-namespaces' '('\n    case 17513:                     // 'count' '('\n    case 17514:                     // 'decimal-format' '('\n    case 17516:                     // 'declare' '('\n    case 17517:                     // 'default' '('\n    case 17518:                     // 'delete' '('\n    case 17519:                     // 'descendant' '('\n    case 17520:                     // 'descendant-or-self' '('\n    case 17521:                     // 'descending' '('\n    case 17526:                     // 'div' '('\n    case 17527:                     // 'document' '('\n    case 17530:                     // 'else' '('\n    case 17531:                     // 'empty' '('\n    case 17533:                     // 'encoding' '('\n    case 17534:                     // 'end' '('\n    case 17536:                     // 'eq' '('\n    case 17537:                     // 'every' '('\n    case 17539:                     // 'except' '('\n    case 17540:                     // 'exit' '('\n    case 17541:                     // 'external' '('\n    case 17542:                     // 'first' '('\n    case 17543:                     // 'following' '('\n    case 17544:                     // 'following-sibling' '('\n    case 17545:                     // 'for' '('\n    case 17549:                     // 'ft-option' '('\n    case 17553:                     // 'function' '('\n    case 17554:                     // 'ge' '('\n    case 17556:                     // 'group' '('\n    case 17558:                     // 'gt' '('\n    case 17559:                     // 'idiv' '('\n    case 17561:                     // 'import' '('\n    case 17562:                     // 'in' '('\n    case 17563:                     // 'index' '('\n    case 17567:                     // 'insert' '('\n    case 17568:                     // 'instance' '('\n    case 17569:                     // 'integrity' '('\n    case 17570:                     // 'intersect' '('\n    case 17571:                     // 'into' '('\n    case 17572:                     // 'is' '('\n    case 17574:                     // 'json' '('\n    case 17578:                     // 'last' '('\n    case 17579:                     // 'lax' '('\n    case 17580:                     // 'le' '('\n    case 17582:                     // 'let' '('\n    case 17584:                     // 'loop' '('\n    case 17586:                     // 'lt' '('\n    case 17588:                     // 'mod' '('\n    case 17589:                     // 'modify' '('\n    case 17590:                     // 'module' '('\n    case 17592:                     // 'namespace' '('\n    case 17594:                     // 'ne' '('\n    case 17600:                     // 'nodes' '('\n    case 17602:                     // 'object' '('\n    case 17606:                     // 'only' '('\n    case 17607:                     // 'option' '('\n    case 17608:                     // 'or' '('\n    case 17609:                     // 'order' '('\n    case 17610:                     // 'ordered' '('\n    case 17611:                     // 'ordering' '('\n    case 17614:                     // 'parent' '('\n    case 17620:                     // 'preceding' '('\n    case 17621:                     // 'preceding-sibling' '('\n    case 17626:                     // 'rename' '('\n    case 17627:                     // 'replace' '('\n    case 17628:                     // 'return' '('\n    case 17629:                     // 'returning' '('\n    case 17630:                     // 'revalidation' '('\n    case 17632:                     // 'satisfies' '('\n    case 17633:                     // 'schema' '('\n    case 17636:                     // 'score' '('\n    case 17637:                     // 'self' '('\n    case 17642:                     // 'sliding' '('\n    case 17643:                     // 'some' '('\n    case 17644:                     // 'stable' '('\n    case 17645:                     // 'start' '('\n    case 17648:                     // 'strict' '('\n    case 17656:                     // 'to' '('\n    case 17657:                     // 'treat' '('\n    case 17658:                     // 'try' '('\n    case 17659:                     // 'tumbling' '('\n    case 17660:                     // 'type' '('\n    case 17662:                     // 'union' '('\n    case 17664:                     // 'unordered' '('\n    case 17665:                     // 'updating' '('\n    case 17668:                     // 'validate' '('\n    case 17669:                     // 'value' '('\n    case 17670:                     // 'variable' '('\n    case 17671:                     // 'version' '('\n    case 17674:                     // 'where' '('\n    case 17675:                     // 'while' '('\n    case 17678:                     // 'with' '('\n    case 17682:                     // 'xquery' '('\n    case 36946:                     // 'attribute' 'allowing'\n    case 36985:                     // 'element' 'allowing'\n    case 37048:                     // 'namespace' 'allowing'\n    case 37080:                     // 'processing-instruction' 'allowing'\n    case 37458:                     // 'attribute' 'ancestor'\n    case 37497:                     // 'element' 'ancestor'\n    case 37560:                     // 'namespace' 'ancestor'\n    case 37592:                     // 'processing-instruction' 'ancestor'\n    case 37970:                     // 'attribute' 'ancestor-or-self'\n    case 38009:                     // 'element' 'ancestor-or-self'\n    case 38072:                     // 'namespace' 'ancestor-or-self'\n    case 38104:                     // 'processing-instruction' 'ancestor-or-self'\n    case 39506:                     // 'attribute' 'append'\n    case 39545:                     // 'element' 'append'\n    case 39608:                     // 'namespace' 'append'\n    case 39640:                     // 'processing-instruction' 'append'\n    case 40018:                     // 'attribute' 'array'\n    case 40057:                     // 'element' 'array'\n    case 42066:                     // 'attribute' 'attribute'\n    case 42105:                     // 'element' 'attribute'\n    case 42168:                     // 'namespace' 'attribute'\n    case 42200:                     // 'processing-instruction' 'attribute'\n    case 42578:                     // 'attribute' 'base-uri'\n    case 42617:                     // 'element' 'base-uri'\n    case 42680:                     // 'namespace' 'base-uri'\n    case 42712:                     // 'processing-instruction' 'base-uri'\n    case 43602:                     // 'attribute' 'boundary-space'\n    case 43641:                     // 'element' 'boundary-space'\n    case 43704:                     // 'namespace' 'boundary-space'\n    case 43736:                     // 'processing-instruction' 'boundary-space'\n    case 44114:                     // 'attribute' 'break'\n    case 44153:                     // 'element' 'break'\n    case 44216:                     // 'namespace' 'break'\n    case 44248:                     // 'processing-instruction' 'break'\n    case 46674:                     // 'attribute' 'catch'\n    case 46713:                     // 'element' 'catch'\n    case 46776:                     // 'namespace' 'catch'\n    case 46808:                     // 'processing-instruction' 'catch'\n    case 47698:                     // 'attribute' 'child'\n    case 47737:                     // 'element' 'child'\n    case 47800:                     // 'namespace' 'child'\n    case 47832:                     // 'processing-instruction' 'child'\n    case 49234:                     // 'attribute' 'comment'\n    case 49273:                     // 'element' 'comment'\n    case 49336:                     // 'namespace' 'comment'\n    case 49368:                     // 'processing-instruction' 'comment'\n    case 49746:                     // 'attribute' 'constraint'\n    case 49785:                     // 'element' 'constraint'\n    case 49848:                     // 'namespace' 'constraint'\n    case 49880:                     // 'processing-instruction' 'constraint'\n    case 50258:                     // 'attribute' 'construction'\n    case 50297:                     // 'element' 'construction'\n    case 50360:                     // 'namespace' 'construction'\n    case 50392:                     // 'processing-instruction' 'construction'\n    case 51794:                     // 'attribute' 'context'\n    case 51833:                     // 'element' 'context'\n    case 51896:                     // 'namespace' 'context'\n    case 51928:                     // 'processing-instruction' 'context'\n    case 52306:                     // 'attribute' 'continue'\n    case 52345:                     // 'element' 'continue'\n    case 52408:                     // 'namespace' 'continue'\n    case 52440:                     // 'processing-instruction' 'continue'\n    case 52818:                     // 'attribute' 'copy'\n    case 52857:                     // 'element' 'copy'\n    case 52920:                     // 'namespace' 'copy'\n    case 52952:                     // 'processing-instruction' 'copy'\n    case 53330:                     // 'attribute' 'copy-namespaces'\n    case 53369:                     // 'element' 'copy-namespaces'\n    case 53432:                     // 'namespace' 'copy-namespaces'\n    case 53464:                     // 'processing-instruction' 'copy-namespaces'\n    case 54354:                     // 'attribute' 'decimal-format'\n    case 54393:                     // 'element' 'decimal-format'\n    case 54456:                     // 'namespace' 'decimal-format'\n    case 54488:                     // 'processing-instruction' 'decimal-format'\n    case 55378:                     // 'attribute' 'declare'\n    case 55417:                     // 'element' 'declare'\n    case 55480:                     // 'namespace' 'declare'\n    case 55512:                     // 'processing-instruction' 'declare'\n    case 56402:                     // 'attribute' 'delete'\n    case 56441:                     // 'element' 'delete'\n    case 56504:                     // 'namespace' 'delete'\n    case 56536:                     // 'processing-instruction' 'delete'\n    case 56914:                     // 'attribute' 'descendant'\n    case 56953:                     // 'element' 'descendant'\n    case 57016:                     // 'namespace' 'descendant'\n    case 57048:                     // 'processing-instruction' 'descendant'\n    case 57426:                     // 'attribute' 'descendant-or-self'\n    case 57465:                     // 'element' 'descendant-or-self'\n    case 57528:                     // 'namespace' 'descendant-or-self'\n    case 57560:                     // 'processing-instruction' 'descendant-or-self'\n    case 61010:                     // 'attribute' 'document'\n    case 61049:                     // 'element' 'document'\n    case 61112:                     // 'namespace' 'document'\n    case 61144:                     // 'processing-instruction' 'document'\n    case 61522:                     // 'attribute' 'document-node'\n    case 61561:                     // 'element' 'document-node'\n    case 61624:                     // 'namespace' 'document-node'\n    case 61656:                     // 'processing-instruction' 'document-node'\n    case 62034:                     // 'attribute' 'element'\n    case 62073:                     // 'element' 'element'\n    case 62136:                     // 'namespace' 'element'\n    case 62168:                     // 'processing-instruction' 'element'\n    case 63570:                     // 'attribute' 'empty-sequence'\n    case 63609:                     // 'element' 'empty-sequence'\n    case 63672:                     // 'namespace' 'empty-sequence'\n    case 63704:                     // 'processing-instruction' 'empty-sequence'\n    case 64082:                     // 'attribute' 'encoding'\n    case 64121:                     // 'element' 'encoding'\n    case 64184:                     // 'namespace' 'encoding'\n    case 64216:                     // 'processing-instruction' 'encoding'\n    case 66130:                     // 'attribute' 'every'\n    case 66169:                     // 'element' 'every'\n    case 66232:                     // 'namespace' 'every'\n    case 66264:                     // 'processing-instruction' 'every'\n    case 67666:                     // 'attribute' 'exit'\n    case 67705:                     // 'element' 'exit'\n    case 67768:                     // 'namespace' 'exit'\n    case 67800:                     // 'processing-instruction' 'exit'\n    case 68178:                     // 'attribute' 'external'\n    case 68217:                     // 'element' 'external'\n    case 68280:                     // 'namespace' 'external'\n    case 68312:                     // 'processing-instruction' 'external'\n    case 68690:                     // 'attribute' 'first'\n    case 68729:                     // 'element' 'first'\n    case 68792:                     // 'namespace' 'first'\n    case 68824:                     // 'processing-instruction' 'first'\n    case 69202:                     // 'attribute' 'following'\n    case 69241:                     // 'element' 'following'\n    case 69304:                     // 'namespace' 'following'\n    case 69336:                     // 'processing-instruction' 'following'\n    case 69714:                     // 'attribute' 'following-sibling'\n    case 69753:                     // 'element' 'following-sibling'\n    case 69816:                     // 'namespace' 'following-sibling'\n    case 69848:                     // 'processing-instruction' 'following-sibling'\n    case 72274:                     // 'attribute' 'ft-option'\n    case 72313:                     // 'element' 'ft-option'\n    case 72376:                     // 'namespace' 'ft-option'\n    case 72408:                     // 'processing-instruction' 'ft-option'\n    case 74322:                     // 'attribute' 'function'\n    case 74361:                     // 'element' 'function'\n    case 74424:                     // 'namespace' 'function'\n    case 74456:                     // 'processing-instruction' 'function'\n    case 77906:                     // 'attribute' 'if'\n    case 77945:                     // 'element' 'if'\n    case 78008:                     // 'namespace' 'if'\n    case 78040:                     // 'processing-instruction' 'if'\n    case 78418:                     // 'attribute' 'import'\n    case 78457:                     // 'element' 'import'\n    case 78520:                     // 'namespace' 'import'\n    case 78552:                     // 'processing-instruction' 'import'\n    case 78930:                     // 'attribute' 'in'\n    case 78969:                     // 'element' 'in'\n    case 79032:                     // 'namespace' 'in'\n    case 79064:                     // 'processing-instruction' 'in'\n    case 79442:                     // 'attribute' 'index'\n    case 79481:                     // 'element' 'index'\n    case 79544:                     // 'namespace' 'index'\n    case 79576:                     // 'processing-instruction' 'index'\n    case 81490:                     // 'attribute' 'insert'\n    case 81529:                     // 'element' 'insert'\n    case 81592:                     // 'namespace' 'insert'\n    case 81624:                     // 'processing-instruction' 'insert'\n    case 82514:                     // 'attribute' 'integrity'\n    case 82553:                     // 'element' 'integrity'\n    case 82616:                     // 'namespace' 'integrity'\n    case 82648:                     // 'processing-instruction' 'integrity'\n    case 84562:                     // 'attribute' 'item'\n    case 84601:                     // 'element' 'item'\n    case 84664:                     // 'namespace' 'item'\n    case 84696:                     // 'processing-instruction' 'item'\n    case 85074:                     // 'attribute' 'json'\n    case 85113:                     // 'element' 'json'\n    case 85176:                     // 'namespace' 'json'\n    case 85208:                     // 'processing-instruction' 'json'\n    case 85586:                     // 'attribute' 'json-item'\n    case 85625:                     // 'element' 'json-item'\n    case 87122:                     // 'attribute' 'last'\n    case 87161:                     // 'element' 'last'\n    case 87224:                     // 'namespace' 'last'\n    case 87256:                     // 'processing-instruction' 'last'\n    case 87634:                     // 'attribute' 'lax'\n    case 87673:                     // 'element' 'lax'\n    case 87736:                     // 'namespace' 'lax'\n    case 87768:                     // 'processing-instruction' 'lax'\n    case 90194:                     // 'attribute' 'loop'\n    case 90233:                     // 'element' 'loop'\n    case 90296:                     // 'namespace' 'loop'\n    case 90328:                     // 'processing-instruction' 'loop'\n    case 93266:                     // 'attribute' 'module'\n    case 93305:                     // 'element' 'module'\n    case 93368:                     // 'namespace' 'module'\n    case 93400:                     // 'processing-instruction' 'module'\n    case 94290:                     // 'attribute' 'namespace'\n    case 94329:                     // 'element' 'namespace'\n    case 94392:                     // 'namespace' 'namespace'\n    case 94424:                     // 'processing-instruction' 'namespace'\n    case 94802:                     // 'attribute' 'namespace-node'\n    case 94841:                     // 'element' 'namespace-node'\n    case 94904:                     // 'namespace' 'namespace-node'\n    case 94936:                     // 'processing-instruction' 'namespace-node'\n    case 97874:                     // 'attribute' 'node'\n    case 97913:                     // 'element' 'node'\n    case 97976:                     // 'namespace' 'node'\n    case 98008:                     // 'processing-instruction' 'node'\n    case 98386:                     // 'attribute' 'nodes'\n    case 98425:                     // 'element' 'nodes'\n    case 98488:                     // 'namespace' 'nodes'\n    case 98520:                     // 'processing-instruction' 'nodes'\n    case 99410:                     // 'attribute' 'object'\n    case 99449:                     // 'element' 'object'\n    case 99512:                     // 'namespace' 'object'\n    case 99544:                     // 'processing-instruction' 'object'\n    case 101970:                    // 'attribute' 'option'\n    case 102009:                    // 'element' 'option'\n    case 102072:                    // 'namespace' 'option'\n    case 102104:                    // 'processing-instruction' 'option'\n    case 103506:                    // 'attribute' 'ordered'\n    case 103545:                    // 'element' 'ordered'\n    case 103608:                    // 'namespace' 'ordered'\n    case 103640:                    // 'processing-instruction' 'ordered'\n    case 104018:                    // 'attribute' 'ordering'\n    case 104057:                    // 'element' 'ordering'\n    case 104120:                    // 'namespace' 'ordering'\n    case 104152:                    // 'processing-instruction' 'ordering'\n    case 105554:                    // 'attribute' 'parent'\n    case 105593:                    // 'element' 'parent'\n    case 105656:                    // 'namespace' 'parent'\n    case 105688:                    // 'processing-instruction' 'parent'\n    case 108626:                    // 'attribute' 'preceding'\n    case 108665:                    // 'element' 'preceding'\n    case 108728:                    // 'namespace' 'preceding'\n    case 108760:                    // 'processing-instruction' 'preceding'\n    case 109138:                    // 'attribute' 'preceding-sibling'\n    case 109177:                    // 'element' 'preceding-sibling'\n    case 109240:                    // 'namespace' 'preceding-sibling'\n    case 109272:                    // 'processing-instruction' 'preceding-sibling'\n    case 110674:                    // 'attribute' 'processing-instruction'\n    case 110713:                    // 'element' 'processing-instruction'\n    case 110776:                    // 'namespace' 'processing-instruction'\n    case 110808:                    // 'processing-instruction' 'processing-instruction'\n    case 111698:                    // 'attribute' 'rename'\n    case 111737:                    // 'element' 'rename'\n    case 111800:                    // 'namespace' 'rename'\n    case 111832:                    // 'processing-instruction' 'rename'\n    case 112210:                    // 'attribute' 'replace'\n    case 112249:                    // 'element' 'replace'\n    case 112312:                    // 'namespace' 'replace'\n    case 112344:                    // 'processing-instruction' 'replace'\n    case 113234:                    // 'attribute' 'returning'\n    case 113273:                    // 'element' 'returning'\n    case 113336:                    // 'namespace' 'returning'\n    case 113368:                    // 'processing-instruction' 'returning'\n    case 113746:                    // 'attribute' 'revalidation'\n    case 113785:                    // 'element' 'revalidation'\n    case 113848:                    // 'namespace' 'revalidation'\n    case 113880:                    // 'processing-instruction' 'revalidation'\n    case 115282:                    // 'attribute' 'schema'\n    case 115321:                    // 'element' 'schema'\n    case 115384:                    // 'namespace' 'schema'\n    case 115416:                    // 'processing-instruction' 'schema'\n    case 115794:                    // 'attribute' 'schema-attribute'\n    case 115833:                    // 'element' 'schema-attribute'\n    case 115896:                    // 'namespace' 'schema-attribute'\n    case 115928:                    // 'processing-instruction' 'schema-attribute'\n    case 116306:                    // 'attribute' 'schema-element'\n    case 116345:                    // 'element' 'schema-element'\n    case 116408:                    // 'namespace' 'schema-element'\n    case 116440:                    // 'processing-instruction' 'schema-element'\n    case 116818:                    // 'attribute' 'score'\n    case 116857:                    // 'element' 'score'\n    case 116920:                    // 'namespace' 'score'\n    case 116952:                    // 'processing-instruction' 'score'\n    case 117330:                    // 'attribute' 'self'\n    case 117369:                    // 'element' 'self'\n    case 117432:                    // 'namespace' 'self'\n    case 117464:                    // 'processing-instruction' 'self'\n    case 119890:                    // 'attribute' 'sliding'\n    case 119929:                    // 'element' 'sliding'\n    case 119992:                    // 'namespace' 'sliding'\n    case 120024:                    // 'processing-instruction' 'sliding'\n    case 120402:                    // 'attribute' 'some'\n    case 120441:                    // 'element' 'some'\n    case 120504:                    // 'namespace' 'some'\n    case 120536:                    // 'processing-instruction' 'some'\n    case 122962:                    // 'attribute' 'strict'\n    case 123001:                    // 'element' 'strict'\n    case 123064:                    // 'namespace' 'strict'\n    case 123096:                    // 'processing-instruction' 'strict'\n    case 123986:                    // 'attribute' 'structured-item'\n    case 124025:                    // 'element' 'structured-item'\n    case 124498:                    // 'attribute' 'switch'\n    case 124537:                    // 'element' 'switch'\n    case 124600:                    // 'namespace' 'switch'\n    case 124632:                    // 'processing-instruction' 'switch'\n    case 125010:                    // 'attribute' 'text'\n    case 125049:                    // 'element' 'text'\n    case 125112:                    // 'namespace' 'text'\n    case 125144:                    // 'processing-instruction' 'text'\n    case 128082:                    // 'attribute' 'try'\n    case 128121:                    // 'element' 'try'\n    case 128184:                    // 'namespace' 'try'\n    case 128216:                    // 'processing-instruction' 'try'\n    case 128594:                    // 'attribute' 'tumbling'\n    case 128633:                    // 'element' 'tumbling'\n    case 128696:                    // 'namespace' 'tumbling'\n    case 128728:                    // 'processing-instruction' 'tumbling'\n    case 129106:                    // 'attribute' 'type'\n    case 129145:                    // 'element' 'type'\n    case 129208:                    // 'namespace' 'type'\n    case 129240:                    // 'processing-instruction' 'type'\n    case 129618:                    // 'attribute' 'typeswitch'\n    case 129657:                    // 'element' 'typeswitch'\n    case 129720:                    // 'namespace' 'typeswitch'\n    case 129752:                    // 'processing-instruction' 'typeswitch'\n    case 131154:                    // 'attribute' 'unordered'\n    case 131193:                    // 'element' 'unordered'\n    case 131256:                    // 'namespace' 'unordered'\n    case 131288:                    // 'processing-instruction' 'unordered'\n    case 131666:                    // 'attribute' 'updating'\n    case 131705:                    // 'element' 'updating'\n    case 131768:                    // 'namespace' 'updating'\n    case 131800:                    // 'processing-instruction' 'updating'\n    case 133202:                    // 'attribute' 'validate'\n    case 133241:                    // 'element' 'validate'\n    case 133304:                    // 'namespace' 'validate'\n    case 133336:                    // 'processing-instruction' 'validate'\n    case 133714:                    // 'attribute' 'value'\n    case 133753:                    // 'element' 'value'\n    case 133816:                    // 'namespace' 'value'\n    case 133848:                    // 'processing-instruction' 'value'\n    case 134226:                    // 'attribute' 'variable'\n    case 134265:                    // 'element' 'variable'\n    case 134328:                    // 'namespace' 'variable'\n    case 134360:                    // 'processing-instruction' 'variable'\n    case 134738:                    // 'attribute' 'version'\n    case 134777:                    // 'element' 'version'\n    case 134840:                    // 'namespace' 'version'\n    case 134872:                    // 'processing-instruction' 'version'\n    case 136786:                    // 'attribute' 'while'\n    case 136825:                    // 'element' 'while'\n    case 136888:                    // 'namespace' 'while'\n    case 136920:                    // 'processing-instruction' 'while'\n    case 140370:                    // 'attribute' 'xquery'\n    case 140409:                    // 'element' 'xquery'\n    case 140472:                    // 'namespace' 'xquery'\n    case 140504:                    // 'processing-instruction' 'xquery'\n    case 141394:                    // 'attribute' '{'\n    case 141408:                    // 'comment' '{'\n    case 141431:                    // 'document' '{'\n    case 141433:                    // 'element' '{'\n    case 141496:                    // 'namespace' '{'\n    case 141514:                    // 'ordered' '{'\n    case 141528:                    // 'processing-instruction' '{'\n    case 141556:                    // 'text' '{'\n    case 141568:                    // 'unordered' '{'\n      try_PostfixExpr();\n      break;\n    case -3:\n      break;\n    default:\n      try_AxisStep();\n    }\n  }\n\n  function parse_AxisStep()\n  {\n    eventHandler.startNonterminal(\"AxisStep\", e0);\n    switch (l1)\n    {\n    case 73:                        // 'ancestor'\n    case 74:                        // 'ancestor-or-self'\n    case 206:                       // 'parent'\n    case 212:                       // 'preceding'\n    case 213:                       // 'preceding-sibling'\n      lookahead2W(242);             // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 45:                        // '..'\n    case 26185:                     // 'ancestor' '::'\n    case 26186:                     // 'ancestor-or-self' '::'\n    case 26318:                     // 'parent' '::'\n    case 26324:                     // 'preceding' '::'\n    case 26325:                     // 'preceding-sibling' '::'\n      parse_ReverseStep();\n      break;\n    default:\n      parse_ForwardStep();\n    }\n    lookahead1W(238);               // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |\n    whitespace();\n    parse_PredicateList();\n    eventHandler.endNonterminal(\"AxisStep\", e0);\n  }\n\n  function try_AxisStep()\n  {\n    switch (l1)\n    {\n    case 73:                        // 'ancestor'\n    case 74:                        // 'ancestor-or-self'\n    case 206:                       // 'parent'\n    case 212:                       // 'preceding'\n    case 213:                       // 'preceding-sibling'\n      lookahead2W(242);             // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 45:                        // '..'\n    case 26185:                     // 'ancestor' '::'\n    case 26186:                     // 'ancestor-or-self' '::'\n    case 26318:                     // 'parent' '::'\n    case 26324:                     // 'preceding' '::'\n    case 26325:                     // 'preceding-sibling' '::'\n      try_ReverseStep();\n      break;\n    default:\n      try_ForwardStep();\n    }\n    lookahead1W(238);               // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |\n    try_PredicateList();\n  }\n\n  function parse_ForwardStep()\n  {\n    eventHandler.startNonterminal(\"ForwardStep\", e0);\n    switch (l1)\n    {\n    case 82:                        // 'attribute'\n      lookahead2W(245);             // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |\n      break;\n    case 93:                        // 'child'\n    case 111:                       // 'descendant'\n    case 112:                       // 'descendant-or-self'\n    case 135:                       // 'following'\n    case 136:                       // 'following-sibling'\n    case 229:                       // 'self'\n      lookahead2W(242);             // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 26194:                     // 'attribute' '::'\n    case 26205:                     // 'child' '::'\n    case 26223:                     // 'descendant' '::'\n    case 26224:                     // 'descendant-or-self' '::'\n    case 26247:                     // 'following' '::'\n    case 26248:                     // 'following-sibling' '::'\n    case 26341:                     // 'self' '::'\n      parse_ForwardAxis();\n      lookahead1W(257);             // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_NodeTest();\n      break;\n    default:\n      parse_AbbrevForwardStep();\n    }\n    eventHandler.endNonterminal(\"ForwardStep\", e0);\n  }\n\n  function try_ForwardStep()\n  {\n    switch (l1)\n    {\n    case 82:                        // 'attribute'\n      lookahead2W(245);             // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |\n      break;\n    case 93:                        // 'child'\n    case 111:                       // 'descendant'\n    case 112:                       // 'descendant-or-self'\n    case 135:                       // 'following'\n    case 136:                       // 'following-sibling'\n    case 229:                       // 'self'\n      lookahead2W(242);             // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 26194:                     // 'attribute' '::'\n    case 26205:                     // 'child' '::'\n    case 26223:                     // 'descendant' '::'\n    case 26224:                     // 'descendant-or-self' '::'\n    case 26247:                     // 'following' '::'\n    case 26248:                     // 'following-sibling' '::'\n    case 26341:                     // 'self' '::'\n      try_ForwardAxis();\n      lookahead1W(257);             // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_NodeTest();\n      break;\n    default:\n      try_AbbrevForwardStep();\n    }\n  }\n\n  function parse_ForwardAxis()\n  {\n    eventHandler.startNonterminal(\"ForwardAxis\", e0);\n    switch (l1)\n    {\n    case 93:                        // 'child'\n      shift(93);                    // 'child'\n      lookahead1W(26);              // S^WS | '(:' | '::'\n      shift(51);                    // '::'\n      break;\n    case 111:                       // 'descendant'\n      shift(111);                   // 'descendant'\n      lookahead1W(26);              // S^WS | '(:' | '::'\n      shift(51);                    // '::'\n      break;\n    case 82:                        // 'attribute'\n      shift(82);                    // 'attribute'\n      lookahead1W(26);              // S^WS | '(:' | '::'\n      shift(51);                    // '::'\n      break;\n    case 229:                       // 'self'\n      shift(229);                   // 'self'\n      lookahead1W(26);              // S^WS | '(:' | '::'\n      shift(51);                    // '::'\n      break;\n    case 112:                       // 'descendant-or-self'\n      shift(112);                   // 'descendant-or-self'\n      lookahead1W(26);              // S^WS | '(:' | '::'\n      shift(51);                    // '::'\n      break;\n    case 136:                       // 'following-sibling'\n      shift(136);                   // 'following-sibling'\n      lookahead1W(26);              // S^WS | '(:' | '::'\n      shift(51);                    // '::'\n      break;\n    default:\n      shift(135);                   // 'following'\n      lookahead1W(26);              // S^WS | '(:' | '::'\n      shift(51);                    // '::'\n    }\n    eventHandler.endNonterminal(\"ForwardAxis\", e0);\n  }\n\n  function try_ForwardAxis()\n  {\n    switch (l1)\n    {\n    case 93:                        // 'child'\n      shiftT(93);                   // 'child'\n      lookahead1W(26);              // S^WS | '(:' | '::'\n      shiftT(51);                   // '::'\n      break;\n    case 111:                       // 'descendant'\n      shiftT(111);                  // 'descendant'\n      lookahead1W(26);              // S^WS | '(:' | '::'\n      shiftT(51);                   // '::'\n      break;\n    case 82:                        // 'attribute'\n      shiftT(82);                   // 'attribute'\n      lookahead1W(26);              // S^WS | '(:' | '::'\n      shiftT(51);                   // '::'\n      break;\n    case 229:                       // 'self'\n      shiftT(229);                  // 'self'\n      lookahead1W(26);              // S^WS | '(:' | '::'\n      shiftT(51);                   // '::'\n      break;\n    case 112:                       // 'descendant-or-self'\n      shiftT(112);                  // 'descendant-or-self'\n      lookahead1W(26);              // S^WS | '(:' | '::'\n      shiftT(51);                   // '::'\n      break;\n    case 136:                       // 'following-sibling'\n      shiftT(136);                  // 'following-sibling'\n      lookahead1W(26);              // S^WS | '(:' | '::'\n      shiftT(51);                   // '::'\n      break;\n    default:\n      shiftT(135);                  // 'following'\n      lookahead1W(26);              // S^WS | '(:' | '::'\n      shiftT(51);                   // '::'\n    }\n  }\n\n  function parse_AbbrevForwardStep()\n  {\n    eventHandler.startNonterminal(\"AbbrevForwardStep\", e0);\n    if (l1 == 66)                   // '@'\n    {\n      shift(66);                    // '@'\n    }\n    lookahead1W(257);               // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_NodeTest();\n    eventHandler.endNonterminal(\"AbbrevForwardStep\", e0);\n  }\n\n  function try_AbbrevForwardStep()\n  {\n    if (l1 == 66)                   // '@'\n    {\n      shiftT(66);                   // '@'\n    }\n    lookahead1W(257);               // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_NodeTest();\n  }\n\n  function parse_ReverseStep()\n  {\n    eventHandler.startNonterminal(\"ReverseStep\", e0);\n    switch (l1)\n    {\n    case 45:                        // '..'\n      parse_AbbrevReverseStep();\n      break;\n    default:\n      parse_ReverseAxis();\n      lookahead1W(257);             // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_NodeTest();\n    }\n    eventHandler.endNonterminal(\"ReverseStep\", e0);\n  }\n\n  function try_ReverseStep()\n  {\n    switch (l1)\n    {\n    case 45:                        // '..'\n      try_AbbrevReverseStep();\n      break;\n    default:\n      try_ReverseAxis();\n      lookahead1W(257);             // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_NodeTest();\n    }\n  }\n\n  function parse_ReverseAxis()\n  {\n    eventHandler.startNonterminal(\"ReverseAxis\", e0);\n    switch (l1)\n    {\n    case 206:                       // 'parent'\n      shift(206);                   // 'parent'\n      lookahead1W(26);              // S^WS | '(:' | '::'\n      shift(51);                    // '::'\n      break;\n    case 73:                        // 'ancestor'\n      shift(73);                    // 'ancestor'\n      lookahead1W(26);              // S^WS | '(:' | '::'\n      shift(51);                    // '::'\n      break;\n    case 213:                       // 'preceding-sibling'\n      shift(213);                   // 'preceding-sibling'\n      lookahead1W(26);              // S^WS | '(:' | '::'\n      shift(51);                    // '::'\n      break;\n    case 212:                       // 'preceding'\n      shift(212);                   // 'preceding'\n      lookahead1W(26);              // S^WS | '(:' | '::'\n      shift(51);                    // '::'\n      break;\n    default:\n      shift(74);                    // 'ancestor-or-self'\n      lookahead1W(26);              // S^WS | '(:' | '::'\n      shift(51);                    // '::'\n    }\n    eventHandler.endNonterminal(\"ReverseAxis\", e0);\n  }\n\n  function try_ReverseAxis()\n  {\n    switch (l1)\n    {\n    case 206:                       // 'parent'\n      shiftT(206);                  // 'parent'\n      lookahead1W(26);              // S^WS | '(:' | '::'\n      shiftT(51);                   // '::'\n      break;\n    case 73:                        // 'ancestor'\n      shiftT(73);                   // 'ancestor'\n      lookahead1W(26);              // S^WS | '(:' | '::'\n      shiftT(51);                   // '::'\n      break;\n    case 213:                       // 'preceding-sibling'\n      shiftT(213);                  // 'preceding-sibling'\n      lookahead1W(26);              // S^WS | '(:' | '::'\n      shiftT(51);                   // '::'\n      break;\n    case 212:                       // 'preceding'\n      shiftT(212);                  // 'preceding'\n      lookahead1W(26);              // S^WS | '(:' | '::'\n      shiftT(51);                   // '::'\n      break;\n    default:\n      shiftT(74);                   // 'ancestor-or-self'\n      lookahead1W(26);              // S^WS | '(:' | '::'\n      shiftT(51);                   // '::'\n    }\n  }\n\n  function parse_AbbrevReverseStep()\n  {\n    eventHandler.startNonterminal(\"AbbrevReverseStep\", e0);\n    shift(45);                      // '..'\n    eventHandler.endNonterminal(\"AbbrevReverseStep\", e0);\n  }\n\n  function try_AbbrevReverseStep()\n  {\n    shiftT(45);                     // '..'\n  }\n\n  function parse_NodeTest()\n  {\n    eventHandler.startNonterminal(\"NodeTest\", e0);\n    switch (l1)\n    {\n    case 82:                        // 'attribute'\n    case 96:                        // 'comment'\n    case 120:                       // 'document-node'\n    case 121:                       // 'element'\n    case 185:                       // 'namespace-node'\n    case 191:                       // 'node'\n    case 216:                       // 'processing-instruction'\n    case 226:                       // 'schema-attribute'\n    case 227:                       // 'schema-element'\n    case 244:                       // 'text'\n      lookahead2W(241);             // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 17490:                     // 'attribute' '('\n    case 17504:                     // 'comment' '('\n    case 17528:                     // 'document-node' '('\n    case 17529:                     // 'element' '('\n    case 17593:                     // 'namespace-node' '('\n    case 17599:                     // 'node' '('\n    case 17624:                     // 'processing-instruction' '('\n    case 17634:                     // 'schema-attribute' '('\n    case 17635:                     // 'schema-element' '('\n    case 17652:                     // 'text' '('\n      parse_KindTest();\n      break;\n    default:\n      parse_NameTest();\n    }\n    eventHandler.endNonterminal(\"NodeTest\", e0);\n  }\n\n  function try_NodeTest()\n  {\n    switch (l1)\n    {\n    case 82:                        // 'attribute'\n    case 96:                        // 'comment'\n    case 120:                       // 'document-node'\n    case 121:                       // 'element'\n    case 185:                       // 'namespace-node'\n    case 191:                       // 'node'\n    case 216:                       // 'processing-instruction'\n    case 226:                       // 'schema-attribute'\n    case 227:                       // 'schema-element'\n    case 244:                       // 'text'\n      lookahead2W(241);             // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 17490:                     // 'attribute' '('\n    case 17504:                     // 'comment' '('\n    case 17528:                     // 'document-node' '('\n    case 17529:                     // 'element' '('\n    case 17593:                     // 'namespace-node' '('\n    case 17599:                     // 'node' '('\n    case 17624:                     // 'processing-instruction' '('\n    case 17634:                     // 'schema-attribute' '('\n    case 17635:                     // 'schema-element' '('\n    case 17652:                     // 'text' '('\n      try_KindTest();\n      break;\n    default:\n      try_NameTest();\n    }\n  }\n\n  function parse_NameTest()\n  {\n    eventHandler.startNonterminal(\"NameTest\", e0);\n    switch (l1)\n    {\n    case 5:                         // Wildcard\n      shift(5);                     // Wildcard\n      break;\n    default:\n      parse_EQName();\n    }\n    eventHandler.endNonterminal(\"NameTest\", e0);\n  }\n\n  function try_NameTest()\n  {\n    switch (l1)\n    {\n    case 5:                         // Wildcard\n      shiftT(5);                    // Wildcard\n      break;\n    default:\n      try_EQName();\n    }\n  }\n\n  function parse_PostfixExpr()\n  {\n    eventHandler.startNonterminal(\"PostfixExpr\", e0);\n    parse_PrimaryExpr();\n    for (;;)\n    {\n      lookahead1W(241);             // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |\n      if (l1 != 34                  // '('\n       && l1 != 68)                 // '['\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 68:                      // '['\n        whitespace();\n        parse_Predicate();\n        break;\n      default:\n        whitespace();\n        parse_ArgumentList();\n      }\n    }\n    eventHandler.endNonterminal(\"PostfixExpr\", e0);\n  }\n\n  function try_PostfixExpr()\n  {\n    try_PrimaryExpr();\n    for (;;)\n    {\n      lookahead1W(241);             // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |\n      if (l1 != 34                  // '('\n       && l1 != 68)                 // '['\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 68:                      // '['\n        try_Predicate();\n        break;\n      default:\n        try_ArgumentList();\n      }\n    }\n  }\n\n  function parse_ArgumentList()\n  {\n    eventHandler.startNonterminal(\"ArgumentList\", e0);\n    shift(34);                      // '('\n    lookahead1W(276);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    if (l1 != 37)                   // ')'\n    {\n      whitespace();\n      parse_Argument();\n      for (;;)\n      {\n        lookahead1W(101);           // S^WS | '(:' | ')' | ','\n        if (l1 != 41)               // ','\n        {\n          break;\n        }\n        shift(41);                  // ','\n        lookahead1W(271);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        whitespace();\n        parse_Argument();\n      }\n    }\n    shift(37);                      // ')'\n    eventHandler.endNonterminal(\"ArgumentList\", e0);\n  }\n\n  function try_ArgumentList()\n  {\n    shiftT(34);                     // '('\n    lookahead1W(276);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    if (l1 != 37)                   // ')'\n    {\n      try_Argument();\n      for (;;)\n      {\n        lookahead1W(101);           // S^WS | '(:' | ')' | ','\n        if (l1 != 41)               // ','\n        {\n          break;\n        }\n        shiftT(41);                 // ','\n        lookahead1W(271);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        try_Argument();\n      }\n    }\n    shiftT(37);                     // ')'\n  }\n\n  function parse_PredicateList()\n  {\n    eventHandler.startNonterminal(\"PredicateList\", e0);\n    for (;;)\n    {\n      lookahead1W(238);             // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |\n      if (l1 != 68)                 // '['\n      {\n        break;\n      }\n      whitespace();\n      parse_Predicate();\n    }\n    eventHandler.endNonterminal(\"PredicateList\", e0);\n  }\n\n  function try_PredicateList()\n  {\n    for (;;)\n    {\n      lookahead1W(238);             // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |\n      if (l1 != 68)                 // '['\n      {\n        break;\n      }\n      try_Predicate();\n    }\n  }\n\n  function parse_Predicate()\n  {\n    eventHandler.startNonterminal(\"Predicate\", e0);\n    shift(68);                      // '['\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_Expr();\n    shift(69);                      // ']'\n    eventHandler.endNonterminal(\"Predicate\", e0);\n  }\n\n  function try_Predicate()\n  {\n    shiftT(68);                     // '['\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_Expr();\n    shiftT(69);                     // ']'\n  }\n\n  function parse_Literal()\n  {\n    eventHandler.startNonterminal(\"Literal\", e0);\n    switch (l1)\n    {\n    case 11:                        // StringLiteral\n      shift(11);                    // StringLiteral\n      break;\n    default:\n      parse_NumericLiteral();\n    }\n    eventHandler.endNonterminal(\"Literal\", e0);\n  }\n\n  function try_Literal()\n  {\n    switch (l1)\n    {\n    case 11:                        // StringLiteral\n      shiftT(11);                   // StringLiteral\n      break;\n    default:\n      try_NumericLiteral();\n    }\n  }\n\n  function parse_NumericLiteral()\n  {\n    eventHandler.startNonterminal(\"NumericLiteral\", e0);\n    switch (l1)\n    {\n    case 8:                         // IntegerLiteral\n      shift(8);                     // IntegerLiteral\n      break;\n    case 9:                         // DecimalLiteral\n      shift(9);                     // DecimalLiteral\n      break;\n    default:\n      shift(10);                    // DoubleLiteral\n    }\n    eventHandler.endNonterminal(\"NumericLiteral\", e0);\n  }\n\n  function try_NumericLiteral()\n  {\n    switch (l1)\n    {\n    case 8:                         // IntegerLiteral\n      shiftT(8);                    // IntegerLiteral\n      break;\n    case 9:                         // DecimalLiteral\n      shiftT(9);                    // DecimalLiteral\n      break;\n    default:\n      shiftT(10);                   // DoubleLiteral\n    }\n  }\n\n  function parse_VarRef()\n  {\n    eventHandler.startNonterminal(\"VarRef\", e0);\n    shift(31);                      // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    eventHandler.endNonterminal(\"VarRef\", e0);\n  }\n\n  function try_VarRef()\n  {\n    shiftT(31);                     // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_VarName();\n  }\n\n  function parse_VarName()\n  {\n    eventHandler.startNonterminal(\"VarName\", e0);\n    parse_EQName();\n    eventHandler.endNonterminal(\"VarName\", e0);\n  }\n\n  function try_VarName()\n  {\n    try_EQName();\n  }\n\n  function parse_ParenthesizedExpr()\n  {\n    eventHandler.startNonterminal(\"ParenthesizedExpr\", e0);\n    shift(34);                      // '('\n    lookahead1W(269);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    if (l1 != 37)                   // ')'\n    {\n      whitespace();\n      parse_Expr();\n    }\n    shift(37);                      // ')'\n    eventHandler.endNonterminal(\"ParenthesizedExpr\", e0);\n  }\n\n  function try_ParenthesizedExpr()\n  {\n    shiftT(34);                     // '('\n    lookahead1W(269);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    if (l1 != 37)                   // ')'\n    {\n      try_Expr();\n    }\n    shiftT(37);                     // ')'\n  }\n\n  function parse_ContextItemExpr()\n  {\n    eventHandler.startNonterminal(\"ContextItemExpr\", e0);\n    shift(44);                      // '.'\n    eventHandler.endNonterminal(\"ContextItemExpr\", e0);\n  }\n\n  function try_ContextItemExpr()\n  {\n    shiftT(44);                     // '.'\n  }\n\n  function parse_OrderedExpr()\n  {\n    eventHandler.startNonterminal(\"OrderedExpr\", e0);\n    shift(202);                     // 'ordered'\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    shift(276);                     // '{'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_Expr();\n    shift(282);                     // '}'\n    eventHandler.endNonterminal(\"OrderedExpr\", e0);\n  }\n\n  function try_OrderedExpr()\n  {\n    shiftT(202);                    // 'ordered'\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    shiftT(276);                    // '{'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_Expr();\n    shiftT(282);                    // '}'\n  }\n\n  function parse_UnorderedExpr()\n  {\n    eventHandler.startNonterminal(\"UnorderedExpr\", e0);\n    shift(256);                     // 'unordered'\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    shift(276);                     // '{'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_Expr();\n    shift(282);                     // '}'\n    eventHandler.endNonterminal(\"UnorderedExpr\", e0);\n  }\n\n  function try_UnorderedExpr()\n  {\n    shiftT(256);                    // 'unordered'\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    shiftT(276);                    // '{'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_Expr();\n    shiftT(282);                    // '}'\n  }\n\n  function parse_FunctionCall()\n  {\n    eventHandler.startNonterminal(\"FunctionCall\", e0);\n    parse_FunctionName();\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    whitespace();\n    parse_ArgumentList();\n    eventHandler.endNonterminal(\"FunctionCall\", e0);\n  }\n\n  function try_FunctionCall()\n  {\n    try_FunctionName();\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    try_ArgumentList();\n  }\n\n  function parse_Argument()\n  {\n    eventHandler.startNonterminal(\"Argument\", e0);\n    switch (l1)\n    {\n    case 64:                        // '?'\n      parse_ArgumentPlaceholder();\n      break;\n    default:\n      parse_ExprSingle();\n    }\n    eventHandler.endNonterminal(\"Argument\", e0);\n  }\n\n  function try_Argument()\n  {\n    switch (l1)\n    {\n    case 64:                        // '?'\n      try_ArgumentPlaceholder();\n      break;\n    default:\n      try_ExprSingle();\n    }\n  }\n\n  function parse_ArgumentPlaceholder()\n  {\n    eventHandler.startNonterminal(\"ArgumentPlaceholder\", e0);\n    shift(64);                      // '?'\n    eventHandler.endNonterminal(\"ArgumentPlaceholder\", e0);\n  }\n\n  function try_ArgumentPlaceholder()\n  {\n    shiftT(64);                     // '?'\n  }\n\n  function parse_Constructor()\n  {\n    eventHandler.startNonterminal(\"Constructor\", e0);\n    switch (l1)\n    {\n    case 54:                        // '<'\n    case 55:                        // '<!--'\n    case 59:                        // '<?'\n      parse_DirectConstructor();\n      break;\n    default:\n      parse_ComputedConstructor();\n    }\n    eventHandler.endNonterminal(\"Constructor\", e0);\n  }\n\n  function try_Constructor()\n  {\n    switch (l1)\n    {\n    case 54:                        // '<'\n    case 55:                        // '<!--'\n    case 59:                        // '<?'\n      try_DirectConstructor();\n      break;\n    default:\n      try_ComputedConstructor();\n    }\n  }\n\n  function parse_DirectConstructor()\n  {\n    eventHandler.startNonterminal(\"DirectConstructor\", e0);\n    switch (l1)\n    {\n    case 54:                        // '<'\n      parse_DirElemConstructor();\n      break;\n    case 55:                        // '<!--'\n      parse_DirCommentConstructor();\n      break;\n    default:\n      parse_DirPIConstructor();\n    }\n    eventHandler.endNonterminal(\"DirectConstructor\", e0);\n  }\n\n  function try_DirectConstructor()\n  {\n    switch (l1)\n    {\n    case 54:                        // '<'\n      try_DirElemConstructor();\n      break;\n    case 55:                        // '<!--'\n      try_DirCommentConstructor();\n      break;\n    default:\n      try_DirPIConstructor();\n    }\n  }\n\n  function parse_DirElemConstructor()\n  {\n    eventHandler.startNonterminal(\"DirElemConstructor\", e0);\n    shift(54);                      // '<'\n    lookahead1(4);                  // QName\n    shift(20);                      // QName\n    parse_DirAttributeList();\n    switch (l1)\n    {\n    case 48:                        // '/>'\n      shift(48);                    // '/>'\n      break;\n    default:\n      shift(61);                    // '>'\n      for (;;)\n      {\n        lookahead1(174);            // CDataSection | PredefinedEntityRef | ElementContentChar | CharRef | '<' |\n        if (l1 == 56)               // '</'\n        {\n          break;\n        }\n        parse_DirElemContent();\n      }\n      shift(56);                    // '</'\n      lookahead1(4);                // QName\n      shift(20);                    // QName\n      lookahead1(12);               // S | '>'\n      if (l1 == 21)                 // S\n      {\n        shift(21);                  // S\n      }\n      lookahead1(8);                // '>'\n      shift(61);                    // '>'\n    }\n    eventHandler.endNonterminal(\"DirElemConstructor\", e0);\n  }\n\n  function try_DirElemConstructor()\n  {\n    shiftT(54);                     // '<'\n    lookahead1(4);                  // QName\n    shiftT(20);                     // QName\n    try_DirAttributeList();\n    switch (l1)\n    {\n    case 48:                        // '/>'\n      shiftT(48);                   // '/>'\n      break;\n    default:\n      shiftT(61);                   // '>'\n      for (;;)\n      {\n        lookahead1(174);            // CDataSection | PredefinedEntityRef | ElementContentChar | CharRef | '<' |\n        if (l1 == 56)               // '</'\n        {\n          break;\n        }\n        try_DirElemContent();\n      }\n      shiftT(56);                   // '</'\n      lookahead1(4);                // QName\n      shiftT(20);                   // QName\n      lookahead1(12);               // S | '>'\n      if (l1 == 21)                 // S\n      {\n        shiftT(21);                 // S\n      }\n      lookahead1(8);                // '>'\n      shiftT(61);                   // '>'\n    }\n  }\n\n  function parse_DirAttributeList()\n  {\n    eventHandler.startNonterminal(\"DirAttributeList\", e0);\n    for (;;)\n    {\n      lookahead1(19);               // S | '/>' | '>'\n      if (l1 != 21)                 // S\n      {\n        break;\n      }\n      shift(21);                    // S\n      lookahead1(91);               // QName | S | '/>' | '>'\n      if (l1 == 20)                 // QName\n      {\n        shift(20);                  // QName\n        lookahead1(11);             // S | '='\n        if (l1 == 21)               // S\n        {\n          shift(21);                // S\n        }\n        lookahead1(7);              // '='\n        shift(60);                  // '='\n        lookahead1(18);             // S | '\"' | \"'\"\n        if (l1 == 21)               // S\n        {\n          shift(21);                // S\n        }\n        parse_DirAttributeValue();\n      }\n    }\n    eventHandler.endNonterminal(\"DirAttributeList\", e0);\n  }\n\n  function try_DirAttributeList()\n  {\n    for (;;)\n    {\n      lookahead1(19);               // S | '/>' | '>'\n      if (l1 != 21)                 // S\n      {\n        break;\n      }\n      shiftT(21);                   // S\n      lookahead1(91);               // QName | S | '/>' | '>'\n      if (l1 == 20)                 // QName\n      {\n        shiftT(20);                 // QName\n        lookahead1(11);             // S | '='\n        if (l1 == 21)               // S\n        {\n          shiftT(21);               // S\n        }\n        lookahead1(7);              // '='\n        shiftT(60);                 // '='\n        lookahead1(18);             // S | '\"' | \"'\"\n        if (l1 == 21)               // S\n        {\n          shiftT(21);               // S\n        }\n        try_DirAttributeValue();\n      }\n    }\n  }\n\n  function parse_DirAttributeValue()\n  {\n    eventHandler.startNonterminal(\"DirAttributeValue\", e0);\n    lookahead1(14);                 // '\"' | \"'\"\n    switch (l1)\n    {\n    case 28:                        // '\"'\n      shift(28);                    // '\"'\n      for (;;)\n      {\n        lookahead1(167);            // PredefinedEntityRef | EscapeQuot | QuotAttrContentChar | CharRef | '\"' | '{' |\n        if (l1 == 28)               // '\"'\n        {\n          break;\n        }\n        switch (l1)\n        {\n        case 13:                    // EscapeQuot\n          shift(13);                // EscapeQuot\n          break;\n        default:\n          parse_QuotAttrValueContent();\n        }\n      }\n      shift(28);                    // '\"'\n      break;\n    default:\n      shift(33);                    // \"'\"\n      for (;;)\n      {\n        lookahead1(168);            // PredefinedEntityRef | EscapeApos | AposAttrContentChar | CharRef | \"'\" | '{' |\n        if (l1 == 33)               // \"'\"\n        {\n          break;\n        }\n        switch (l1)\n        {\n        case 14:                    // EscapeApos\n          shift(14);                // EscapeApos\n          break;\n        default:\n          parse_AposAttrValueContent();\n        }\n      }\n      shift(33);                    // \"'\"\n    }\n    eventHandler.endNonterminal(\"DirAttributeValue\", e0);\n  }\n\n  function try_DirAttributeValue()\n  {\n    lookahead1(14);                 // '\"' | \"'\"\n    switch (l1)\n    {\n    case 28:                        // '\"'\n      shiftT(28);                   // '\"'\n      for (;;)\n      {\n        lookahead1(167);            // PredefinedEntityRef | EscapeQuot | QuotAttrContentChar | CharRef | '\"' | '{' |\n        if (l1 == 28)               // '\"'\n        {\n          break;\n        }\n        switch (l1)\n        {\n        case 13:                    // EscapeQuot\n          shiftT(13);               // EscapeQuot\n          break;\n        default:\n          try_QuotAttrValueContent();\n        }\n      }\n      shiftT(28);                   // '\"'\n      break;\n    default:\n      shiftT(33);                   // \"'\"\n      for (;;)\n      {\n        lookahead1(168);            // PredefinedEntityRef | EscapeApos | AposAttrContentChar | CharRef | \"'\" | '{' |\n        if (l1 == 33)               // \"'\"\n        {\n          break;\n        }\n        switch (l1)\n        {\n        case 14:                    // EscapeApos\n          shiftT(14);               // EscapeApos\n          break;\n        default:\n          try_AposAttrValueContent();\n        }\n      }\n      shiftT(33);                   // \"'\"\n    }\n  }\n\n  function parse_QuotAttrValueContent()\n  {\n    eventHandler.startNonterminal(\"QuotAttrValueContent\", e0);\n    switch (l1)\n    {\n    case 16:                        // QuotAttrContentChar\n      shift(16);                    // QuotAttrContentChar\n      break;\n    default:\n      parse_CommonContent();\n    }\n    eventHandler.endNonterminal(\"QuotAttrValueContent\", e0);\n  }\n\n  function try_QuotAttrValueContent()\n  {\n    switch (l1)\n    {\n    case 16:                        // QuotAttrContentChar\n      shiftT(16);                   // QuotAttrContentChar\n      break;\n    default:\n      try_CommonContent();\n    }\n  }\n\n  function parse_AposAttrValueContent()\n  {\n    eventHandler.startNonterminal(\"AposAttrValueContent\", e0);\n    switch (l1)\n    {\n    case 17:                        // AposAttrContentChar\n      shift(17);                    // AposAttrContentChar\n      break;\n    default:\n      parse_CommonContent();\n    }\n    eventHandler.endNonterminal(\"AposAttrValueContent\", e0);\n  }\n\n  function try_AposAttrValueContent()\n  {\n    switch (l1)\n    {\n    case 17:                        // AposAttrContentChar\n      shiftT(17);                   // AposAttrContentChar\n      break;\n    default:\n      try_CommonContent();\n    }\n  }\n\n  function parse_DirElemContent()\n  {\n    eventHandler.startNonterminal(\"DirElemContent\", e0);\n    switch (l1)\n    {\n    case 54:                        // '<'\n    case 55:                        // '<!--'\n    case 59:                        // '<?'\n      parse_DirectConstructor();\n      break;\n    case 4:                         // CDataSection\n      shift(4);                     // CDataSection\n      break;\n    case 15:                        // ElementContentChar\n      shift(15);                    // ElementContentChar\n      break;\n    default:\n      parse_CommonContent();\n    }\n    eventHandler.endNonterminal(\"DirElemContent\", e0);\n  }\n\n  function try_DirElemContent()\n  {\n    switch (l1)\n    {\n    case 54:                        // '<'\n    case 55:                        // '<!--'\n    case 59:                        // '<?'\n      try_DirectConstructor();\n      break;\n    case 4:                         // CDataSection\n      shiftT(4);                    // CDataSection\n      break;\n    case 15:                        // ElementContentChar\n      shiftT(15);                   // ElementContentChar\n      break;\n    default:\n      try_CommonContent();\n    }\n  }\n\n  function parse_DirCommentConstructor()\n  {\n    eventHandler.startNonterminal(\"DirCommentConstructor\", e0);\n    shift(55);                      // '<!--'\n    lookahead1(1);                  // DirCommentContents\n    shift(2);                       // DirCommentContents\n    lookahead1(6);                  // '-->'\n    shift(43);                      // '-->'\n    eventHandler.endNonterminal(\"DirCommentConstructor\", e0);\n  }\n\n  function try_DirCommentConstructor()\n  {\n    shiftT(55);                     // '<!--'\n    lookahead1(1);                  // DirCommentContents\n    shiftT(2);                      // DirCommentContents\n    lookahead1(6);                  // '-->'\n    shiftT(43);                     // '-->'\n  }\n\n  function parse_DirPIConstructor()\n  {\n    eventHandler.startNonterminal(\"DirPIConstructor\", e0);\n    shift(59);                      // '<?'\n    lookahead1(3);                  // PITarget\n    shift(18);                      // PITarget\n    lookahead1(13);                 // S | '?>'\n    if (l1 == 21)                   // S\n    {\n      shift(21);                    // S\n      lookahead1(2);                // DirPIContents\n      shift(3);                     // DirPIContents\n    }\n    lookahead1(9);                  // '?>'\n    shift(65);                      // '?>'\n    eventHandler.endNonterminal(\"DirPIConstructor\", e0);\n  }\n\n  function try_DirPIConstructor()\n  {\n    shiftT(59);                     // '<?'\n    lookahead1(3);                  // PITarget\n    shiftT(18);                     // PITarget\n    lookahead1(13);                 // S | '?>'\n    if (l1 == 21)                   // S\n    {\n      shiftT(21);                   // S\n      lookahead1(2);                // DirPIContents\n      shiftT(3);                    // DirPIContents\n    }\n    lookahead1(9);                  // '?>'\n    shiftT(65);                     // '?>'\n  }\n\n  function parse_ComputedConstructor()\n  {\n    eventHandler.startNonterminal(\"ComputedConstructor\", e0);\n    switch (l1)\n    {\n    case 119:                       // 'document'\n      parse_CompDocConstructor();\n      break;\n    case 121:                       // 'element'\n      parse_CompElemConstructor();\n      break;\n    case 82:                        // 'attribute'\n      parse_CompAttrConstructor();\n      break;\n    case 184:                       // 'namespace'\n      parse_CompNamespaceConstructor();\n      break;\n    case 244:                       // 'text'\n      parse_CompTextConstructor();\n      break;\n    case 96:                        // 'comment'\n      parse_CompCommentConstructor();\n      break;\n    default:\n      parse_CompPIConstructor();\n    }\n    eventHandler.endNonterminal(\"ComputedConstructor\", e0);\n  }\n\n  function try_ComputedConstructor()\n  {\n    switch (l1)\n    {\n    case 119:                       // 'document'\n      try_CompDocConstructor();\n      break;\n    case 121:                       // 'element'\n      try_CompElemConstructor();\n      break;\n    case 82:                        // 'attribute'\n      try_CompAttrConstructor();\n      break;\n    case 184:                       // 'namespace'\n      try_CompNamespaceConstructor();\n      break;\n    case 244:                       // 'text'\n      try_CompTextConstructor();\n      break;\n    case 96:                        // 'comment'\n      try_CompCommentConstructor();\n      break;\n    default:\n      try_CompPIConstructor();\n    }\n  }\n\n  function parse_CompElemConstructor()\n  {\n    eventHandler.startNonterminal(\"CompElemConstructor\", e0);\n    shift(121);                     // 'element'\n    lookahead1W(258);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    switch (l1)\n    {\n    case 276:                       // '{'\n      shift(276);                   // '{'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_Expr();\n      shift(282);                   // '}'\n      break;\n    default:\n      whitespace();\n      parse_EQName();\n    }\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    shift(276);                     // '{'\n    lookahead1W(277);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    if (l1 != 282)                  // '}'\n    {\n      whitespace();\n      parse_ContentExpr();\n    }\n    shift(282);                     // '}'\n    eventHandler.endNonterminal(\"CompElemConstructor\", e0);\n  }\n\n  function try_CompElemConstructor()\n  {\n    shiftT(121);                    // 'element'\n    lookahead1W(258);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    switch (l1)\n    {\n    case 276:                       // '{'\n      shiftT(276);                  // '{'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_Expr();\n      shiftT(282);                  // '}'\n      break;\n    default:\n      try_EQName();\n    }\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    shiftT(276);                    // '{'\n    lookahead1W(277);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    if (l1 != 282)                  // '}'\n    {\n      try_ContentExpr();\n    }\n    shiftT(282);                    // '}'\n  }\n\n  function parse_CompNamespaceConstructor()\n  {\n    eventHandler.startNonterminal(\"CompNamespaceConstructor\", e0);\n    shift(184);                     // 'namespace'\n    lookahead1W(251);               // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    switch (l1)\n    {\n    case 276:                       // '{'\n      shift(276);                   // '{'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_PrefixExpr();\n      shift(282);                   // '}'\n      break;\n    default:\n      whitespace();\n      parse_Prefix();\n    }\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    shift(276);                     // '{'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_URIExpr();\n    shift(282);                     // '}'\n    eventHandler.endNonterminal(\"CompNamespaceConstructor\", e0);\n  }\n\n  function try_CompNamespaceConstructor()\n  {\n    shiftT(184);                    // 'namespace'\n    lookahead1W(251);               // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    switch (l1)\n    {\n    case 276:                       // '{'\n      shiftT(276);                  // '{'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_PrefixExpr();\n      shiftT(282);                  // '}'\n      break;\n    default:\n      try_Prefix();\n    }\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    shiftT(276);                    // '{'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_URIExpr();\n    shiftT(282);                    // '}'\n  }\n\n  function parse_Prefix()\n  {\n    eventHandler.startNonterminal(\"Prefix\", e0);\n    parse_NCName();\n    eventHandler.endNonterminal(\"Prefix\", e0);\n  }\n\n  function try_Prefix()\n  {\n    try_NCName();\n  }\n\n  function parse_PrefixExpr()\n  {\n    eventHandler.startNonterminal(\"PrefixExpr\", e0);\n    parse_Expr();\n    eventHandler.endNonterminal(\"PrefixExpr\", e0);\n  }\n\n  function try_PrefixExpr()\n  {\n    try_Expr();\n  }\n\n  function parse_URIExpr()\n  {\n    eventHandler.startNonterminal(\"URIExpr\", e0);\n    parse_Expr();\n    eventHandler.endNonterminal(\"URIExpr\", e0);\n  }\n\n  function try_URIExpr()\n  {\n    try_Expr();\n  }\n\n  function parse_FunctionItemExpr()\n  {\n    eventHandler.startNonterminal(\"FunctionItemExpr\", e0);\n    switch (l1)\n    {\n    case 145:                       // 'function'\n      lookahead2W(92);              // S^WS | '#' | '(' | '(:'\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 32:                        // '%'\n    case 17553:                     // 'function' '('\n      parse_InlineFunctionExpr();\n      break;\n    default:\n      parse_NamedFunctionRef();\n    }\n    eventHandler.endNonterminal(\"FunctionItemExpr\", e0);\n  }\n\n  function try_FunctionItemExpr()\n  {\n    switch (l1)\n    {\n    case 145:                       // 'function'\n      lookahead2W(92);              // S^WS | '#' | '(' | '(:'\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 32:                        // '%'\n    case 17553:                     // 'function' '('\n      try_InlineFunctionExpr();\n      break;\n    default:\n      try_NamedFunctionRef();\n    }\n  }\n\n  function parse_NamedFunctionRef()\n  {\n    eventHandler.startNonterminal(\"NamedFunctionRef\", e0);\n    parse_EQName();\n    lookahead1W(20);                // S^WS | '#' | '(:'\n    shift(29);                      // '#'\n    lookahead1W(16);                // IntegerLiteral | S^WS | '(:'\n    shift(8);                       // IntegerLiteral\n    eventHandler.endNonterminal(\"NamedFunctionRef\", e0);\n  }\n\n  function try_NamedFunctionRef()\n  {\n    try_EQName();\n    lookahead1W(20);                // S^WS | '#' | '(:'\n    shiftT(29);                     // '#'\n    lookahead1W(16);                // IntegerLiteral | S^WS | '(:'\n    shiftT(8);                      // IntegerLiteral\n  }\n\n  function parse_InlineFunctionExpr()\n  {\n    eventHandler.startNonterminal(\"InlineFunctionExpr\", e0);\n    for (;;)\n    {\n      lookahead1W(97);              // S^WS | '%' | '(:' | 'function'\n      if (l1 != 32)                 // '%'\n      {\n        break;\n      }\n      whitespace();\n      parse_Annotation();\n    }\n    shift(145);                     // 'function'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(94);                // S^WS | '$' | '(:' | ')'\n    if (l1 == 31)                   // '$'\n    {\n      whitespace();\n      parse_ParamList();\n    }\n    shift(37);                      // ')'\n    lookahead1W(111);               // S^WS | '(:' | 'as' | '{'\n    if (l1 == 79)                   // 'as'\n    {\n      shift(79);                    // 'as'\n      lookahead1W(260);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_SequenceType();\n    }\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    whitespace();\n    parse_FunctionBody();\n    eventHandler.endNonterminal(\"InlineFunctionExpr\", e0);\n  }\n\n  function try_InlineFunctionExpr()\n  {\n    for (;;)\n    {\n      lookahead1W(97);              // S^WS | '%' | '(:' | 'function'\n      if (l1 != 32)                 // '%'\n      {\n        break;\n      }\n      try_Annotation();\n    }\n    shiftT(145);                    // 'function'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(34);                     // '('\n    lookahead1W(94);                // S^WS | '$' | '(:' | ')'\n    if (l1 == 31)                   // '$'\n    {\n      try_ParamList();\n    }\n    shiftT(37);                     // ')'\n    lookahead1W(111);               // S^WS | '(:' | 'as' | '{'\n    if (l1 == 79)                   // 'as'\n    {\n      shiftT(79);                   // 'as'\n      lookahead1W(260);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_SequenceType();\n    }\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    try_FunctionBody();\n  }\n\n  function parse_SingleType()\n  {\n    eventHandler.startNonterminal(\"SingleType\", e0);\n    parse_SimpleTypeName();\n    lookahead1W(227);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |\n    if (l1 == 64)                   // '?'\n    {\n      shift(64);                    // '?'\n    }\n    eventHandler.endNonterminal(\"SingleType\", e0);\n  }\n\n  function try_SingleType()\n  {\n    try_SimpleTypeName();\n    lookahead1W(227);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |\n    if (l1 == 64)                   // '?'\n    {\n      shiftT(64);                   // '?'\n    }\n  }\n\n  function parse_TypeDeclaration()\n  {\n    eventHandler.startNonterminal(\"TypeDeclaration\", e0);\n    shift(79);                      // 'as'\n    lookahead1W(260);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_SequenceType();\n    eventHandler.endNonterminal(\"TypeDeclaration\", e0);\n  }\n\n  function try_TypeDeclaration()\n  {\n    shiftT(79);                     // 'as'\n    lookahead1W(260);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_SequenceType();\n  }\n\n  function parse_SequenceType()\n  {\n    eventHandler.startNonterminal(\"SequenceType\", e0);\n    switch (l1)\n    {\n    case 124:                       // 'empty-sequence'\n      lookahead2W(243);             // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' |\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 17532:                     // 'empty-sequence' '('\n      shift(124);                   // 'empty-sequence'\n      lookahead1W(22);              // S^WS | '(' | '(:'\n      shift(34);                    // '('\n      lookahead1W(23);              // S^WS | '(:' | ')'\n      shift(37);                    // ')'\n      break;\n    default:\n      parse_ItemType();\n      lookahead1W(239);             // S^WS | EOF | '!=' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' | ';' |\n      switch (l1)\n      {\n      case 39:                      // '*'\n      case 40:                      // '+'\n      case 64:                      // '?'\n        whitespace();\n        parse_OccurrenceIndicator();\n        break;\n      default:\n        break;\n      }\n    }\n    eventHandler.endNonterminal(\"SequenceType\", e0);\n  }\n\n  function try_SequenceType()\n  {\n    switch (l1)\n    {\n    case 124:                       // 'empty-sequence'\n      lookahead2W(243);             // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' |\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 17532:                     // 'empty-sequence' '('\n      shiftT(124);                  // 'empty-sequence'\n      lookahead1W(22);              // S^WS | '(' | '(:'\n      shiftT(34);                   // '('\n      lookahead1W(23);              // S^WS | '(:' | ')'\n      shiftT(37);                   // ')'\n      break;\n    default:\n      try_ItemType();\n      lookahead1W(239);             // S^WS | EOF | '!=' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' | ';' |\n      switch (l1)\n      {\n      case 39:                      // '*'\n      case 40:                      // '+'\n      case 64:                      // '?'\n        try_OccurrenceIndicator();\n        break;\n      default:\n        break;\n      }\n    }\n  }\n\n  function parse_OccurrenceIndicator()\n  {\n    eventHandler.startNonterminal(\"OccurrenceIndicator\", e0);\n    switch (l1)\n    {\n    case 64:                        // '?'\n      shift(64);                    // '?'\n      break;\n    case 39:                        // '*'\n      shift(39);                    // '*'\n      break;\n    default:\n      shift(40);                    // '+'\n    }\n    eventHandler.endNonterminal(\"OccurrenceIndicator\", e0);\n  }\n\n  function try_OccurrenceIndicator()\n  {\n    switch (l1)\n    {\n    case 64:                        // '?'\n      shiftT(64);                   // '?'\n      break;\n    case 39:                        // '*'\n      shiftT(39);                   // '*'\n      break;\n    default:\n      shiftT(40);                   // '+'\n    }\n  }\n\n  function parse_ItemType()\n  {\n    eventHandler.startNonterminal(\"ItemType\", e0);\n    switch (l1)\n    {\n    case 78:                        // 'array'\n    case 82:                        // 'attribute'\n    case 96:                        // 'comment'\n    case 120:                       // 'document-node'\n    case 121:                       // 'element'\n    case 145:                       // 'function'\n    case 165:                       // 'item'\n    case 167:                       // 'json-item'\n    case 185:                       // 'namespace-node'\n    case 191:                       // 'node'\n    case 194:                       // 'object'\n    case 216:                       // 'processing-instruction'\n    case 226:                       // 'schema-attribute'\n    case 227:                       // 'schema-element'\n    case 242:                       // 'structured-item'\n    case 244:                       // 'text'\n      lookahead2W(243);             // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' |\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 17490:                     // 'attribute' '('\n    case 17504:                     // 'comment' '('\n    case 17528:                     // 'document-node' '('\n    case 17529:                     // 'element' '('\n    case 17593:                     // 'namespace-node' '('\n    case 17599:                     // 'node' '('\n    case 17624:                     // 'processing-instruction' '('\n    case 17634:                     // 'schema-attribute' '('\n    case 17635:                     // 'schema-element' '('\n    case 17652:                     // 'text' '('\n      parse_KindTest();\n      break;\n    case 17573:                     // 'item' '('\n      shift(165);                   // 'item'\n      lookahead1W(22);              // S^WS | '(' | '(:'\n      shift(34);                    // '('\n      lookahead1W(23);              // S^WS | '(:' | ')'\n      shift(37);                    // ')'\n      break;\n    case 32:                        // '%'\n    case 17553:                     // 'function' '('\n      parse_FunctionTest();\n      break;\n    case 34:                        // '('\n      parse_ParenthesizedItemType();\n      break;\n    case 17486:                     // 'array' '('\n    case 17575:                     // 'json-item' '('\n    case 17602:                     // 'object' '('\n      parse_JSONTest();\n      break;\n    case 17650:                     // 'structured-item' '('\n      parse_StructuredItemTest();\n      break;\n    default:\n      parse_AtomicOrUnionType();\n    }\n    eventHandler.endNonterminal(\"ItemType\", e0);\n  }\n\n  function try_ItemType()\n  {\n    switch (l1)\n    {\n    case 78:                        // 'array'\n    case 82:                        // 'attribute'\n    case 96:                        // 'comment'\n    case 120:                       // 'document-node'\n    case 121:                       // 'element'\n    case 145:                       // 'function'\n    case 165:                       // 'item'\n    case 167:                       // 'json-item'\n    case 185:                       // 'namespace-node'\n    case 191:                       // 'node'\n    case 194:                       // 'object'\n    case 216:                       // 'processing-instruction'\n    case 226:                       // 'schema-attribute'\n    case 227:                       // 'schema-element'\n    case 242:                       // 'structured-item'\n    case 244:                       // 'text'\n      lookahead2W(243);             // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' |\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 17490:                     // 'attribute' '('\n    case 17504:                     // 'comment' '('\n    case 17528:                     // 'document-node' '('\n    case 17529:                     // 'element' '('\n    case 17593:                     // 'namespace-node' '('\n    case 17599:                     // 'node' '('\n    case 17624:                     // 'processing-instruction' '('\n    case 17634:                     // 'schema-attribute' '('\n    case 17635:                     // 'schema-element' '('\n    case 17652:                     // 'text' '('\n      try_KindTest();\n      break;\n    case 17573:                     // 'item' '('\n      shiftT(165);                  // 'item'\n      lookahead1W(22);              // S^WS | '(' | '(:'\n      shiftT(34);                   // '('\n      lookahead1W(23);              // S^WS | '(:' | ')'\n      shiftT(37);                   // ')'\n      break;\n    case 32:                        // '%'\n    case 17553:                     // 'function' '('\n      try_FunctionTest();\n      break;\n    case 34:                        // '('\n      try_ParenthesizedItemType();\n      break;\n    case 17486:                     // 'array' '('\n    case 17575:                     // 'json-item' '('\n    case 17602:                     // 'object' '('\n      try_JSONTest();\n      break;\n    case 17650:                     // 'structured-item' '('\n      try_StructuredItemTest();\n      break;\n    default:\n      try_AtomicOrUnionType();\n    }\n  }\n\n  function parse_JSONTest()\n  {\n    eventHandler.startNonterminal(\"JSONTest\", e0);\n    switch (l1)\n    {\n    case 167:                       // 'json-item'\n      parse_JSONItemTest();\n      break;\n    case 194:                       // 'object'\n      parse_JSONObjectTest();\n      break;\n    default:\n      parse_JSONArrayTest();\n    }\n    eventHandler.endNonterminal(\"JSONTest\", e0);\n  }\n\n  function try_JSONTest()\n  {\n    switch (l1)\n    {\n    case 167:                       // 'json-item'\n      try_JSONItemTest();\n      break;\n    case 194:                       // 'object'\n      try_JSONObjectTest();\n      break;\n    default:\n      try_JSONArrayTest();\n    }\n  }\n\n  function parse_StructuredItemTest()\n  {\n    eventHandler.startNonterminal(\"StructuredItemTest\", e0);\n    shift(242);                     // 'structured-item'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(37);                      // ')'\n    eventHandler.endNonterminal(\"StructuredItemTest\", e0);\n  }\n\n  function try_StructuredItemTest()\n  {\n    shiftT(242);                    // 'structured-item'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(34);                     // '('\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(37);                     // ')'\n  }\n\n  function parse_JSONItemTest()\n  {\n    eventHandler.startNonterminal(\"JSONItemTest\", e0);\n    shift(167);                     // 'json-item'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(37);                      // ')'\n    eventHandler.endNonterminal(\"JSONItemTest\", e0);\n  }\n\n  function try_JSONItemTest()\n  {\n    shiftT(167);                    // 'json-item'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(34);                     // '('\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(37);                     // ')'\n  }\n\n  function parse_JSONObjectTest()\n  {\n    eventHandler.startNonterminal(\"JSONObjectTest\", e0);\n    shift(194);                     // 'object'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(37);                      // ')'\n    eventHandler.endNonterminal(\"JSONObjectTest\", e0);\n  }\n\n  function try_JSONObjectTest()\n  {\n    shiftT(194);                    // 'object'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(34);                     // '('\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(37);                     // ')'\n  }\n\n  function parse_JSONArrayTest()\n  {\n    eventHandler.startNonterminal(\"JSONArrayTest\", e0);\n    shift(78);                      // 'array'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(37);                      // ')'\n    eventHandler.endNonterminal(\"JSONArrayTest\", e0);\n  }\n\n  function try_JSONArrayTest()\n  {\n    shiftT(78);                     // 'array'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(34);                     // '('\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(37);                     // ')'\n  }\n\n  function parse_AtomicOrUnionType()\n  {\n    eventHandler.startNonterminal(\"AtomicOrUnionType\", e0);\n    parse_EQName();\n    eventHandler.endNonterminal(\"AtomicOrUnionType\", e0);\n  }\n\n  function try_AtomicOrUnionType()\n  {\n    try_EQName();\n  }\n\n  function parse_KindTest()\n  {\n    eventHandler.startNonterminal(\"KindTest\", e0);\n    switch (l1)\n    {\n    case 120:                       // 'document-node'\n      parse_DocumentTest();\n      break;\n    case 121:                       // 'element'\n      parse_ElementTest();\n      break;\n    case 82:                        // 'attribute'\n      parse_AttributeTest();\n      break;\n    case 227:                       // 'schema-element'\n      parse_SchemaElementTest();\n      break;\n    case 226:                       // 'schema-attribute'\n      parse_SchemaAttributeTest();\n      break;\n    case 216:                       // 'processing-instruction'\n      parse_PITest();\n      break;\n    case 96:                        // 'comment'\n      parse_CommentTest();\n      break;\n    case 244:                       // 'text'\n      parse_TextTest();\n      break;\n    case 185:                       // 'namespace-node'\n      parse_NamespaceNodeTest();\n      break;\n    default:\n      parse_AnyKindTest();\n    }\n    eventHandler.endNonterminal(\"KindTest\", e0);\n  }\n\n  function try_KindTest()\n  {\n    switch (l1)\n    {\n    case 120:                       // 'document-node'\n      try_DocumentTest();\n      break;\n    case 121:                       // 'element'\n      try_ElementTest();\n      break;\n    case 82:                        // 'attribute'\n      try_AttributeTest();\n      break;\n    case 227:                       // 'schema-element'\n      try_SchemaElementTest();\n      break;\n    case 226:                       // 'schema-attribute'\n      try_SchemaAttributeTest();\n      break;\n    case 216:                       // 'processing-instruction'\n      try_PITest();\n      break;\n    case 96:                        // 'comment'\n      try_CommentTest();\n      break;\n    case 244:                       // 'text'\n      try_TextTest();\n      break;\n    case 185:                       // 'namespace-node'\n      try_NamespaceNodeTest();\n      break;\n    default:\n      try_AnyKindTest();\n    }\n  }\n\n  function parse_AnyKindTest()\n  {\n    eventHandler.startNonterminal(\"AnyKindTest\", e0);\n    shift(191);                     // 'node'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(37);                      // ')'\n    eventHandler.endNonterminal(\"AnyKindTest\", e0);\n  }\n\n  function try_AnyKindTest()\n  {\n    shiftT(191);                    // 'node'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(34);                     // '('\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(37);                     // ')'\n  }\n\n  function parse_DocumentTest()\n  {\n    eventHandler.startNonterminal(\"DocumentTest\", e0);\n    shift(120);                     // 'document-node'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(144);               // S^WS | '(:' | ')' | 'element' | 'schema-element'\n    if (l1 != 37)                   // ')'\n    {\n      switch (l1)\n      {\n      case 121:                     // 'element'\n        whitespace();\n        parse_ElementTest();\n        break;\n      default:\n        whitespace();\n        parse_SchemaElementTest();\n      }\n    }\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(37);                      // ')'\n    eventHandler.endNonterminal(\"DocumentTest\", e0);\n  }\n\n  function try_DocumentTest()\n  {\n    shiftT(120);                    // 'document-node'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(34);                     // '('\n    lookahead1W(144);               // S^WS | '(:' | ')' | 'element' | 'schema-element'\n    if (l1 != 37)                   // ')'\n    {\n      switch (l1)\n      {\n      case 121:                     // 'element'\n        try_ElementTest();\n        break;\n      default:\n        try_SchemaElementTest();\n      }\n    }\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(37);                     // ')'\n  }\n\n  function parse_TextTest()\n  {\n    eventHandler.startNonterminal(\"TextTest\", e0);\n    shift(244);                     // 'text'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(37);                      // ')'\n    eventHandler.endNonterminal(\"TextTest\", e0);\n  }\n\n  function try_TextTest()\n  {\n    shiftT(244);                    // 'text'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(34);                     // '('\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(37);                     // ')'\n  }\n\n  function parse_CommentTest()\n  {\n    eventHandler.startNonterminal(\"CommentTest\", e0);\n    shift(96);                      // 'comment'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(37);                      // ')'\n    eventHandler.endNonterminal(\"CommentTest\", e0);\n  }\n\n  function try_CommentTest()\n  {\n    shiftT(96);                     // 'comment'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(34);                     // '('\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(37);                     // ')'\n  }\n\n  function parse_NamespaceNodeTest()\n  {\n    eventHandler.startNonterminal(\"NamespaceNodeTest\", e0);\n    shift(185);                     // 'namespace-node'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(37);                      // ')'\n    eventHandler.endNonterminal(\"NamespaceNodeTest\", e0);\n  }\n\n  function try_NamespaceNodeTest()\n  {\n    shiftT(185);                    // 'namespace-node'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(34);                     // '('\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(37);                     // ')'\n  }\n\n  function parse_PITest()\n  {\n    eventHandler.startNonterminal(\"PITest\", e0);\n    shift(216);                     // 'processing-instruction'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(253);               // StringLiteral | NCName^Token | S^WS | '(:' | ')' | 'after' | 'allowing' |\n    if (l1 != 37)                   // ')'\n    {\n      switch (l1)\n      {\n      case 11:                      // StringLiteral\n        shift(11);                  // StringLiteral\n        break;\n      default:\n        whitespace();\n        parse_NCName();\n      }\n    }\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(37);                      // ')'\n    eventHandler.endNonterminal(\"PITest\", e0);\n  }\n\n  function try_PITest()\n  {\n    shiftT(216);                    // 'processing-instruction'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(34);                     // '('\n    lookahead1W(253);               // StringLiteral | NCName^Token | S^WS | '(:' | ')' | 'after' | 'allowing' |\n    if (l1 != 37)                   // ')'\n    {\n      switch (l1)\n      {\n      case 11:                      // StringLiteral\n        shiftT(11);                 // StringLiteral\n        break;\n      default:\n        try_NCName();\n      }\n    }\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(37);                     // ')'\n  }\n\n  function parse_AttributeTest()\n  {\n    eventHandler.startNonterminal(\"AttributeTest\", e0);\n    shift(82);                      // 'attribute'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(261);               // EQName^Token | S^WS | '(:' | ')' | '*' | 'after' | 'allowing' | 'ancestor' |\n    if (l1 != 37)                   // ')'\n    {\n      whitespace();\n      parse_AttribNameOrWildcard();\n      lookahead1W(101);             // S^WS | '(:' | ')' | ','\n      if (l1 == 41)                 // ','\n      {\n        shift(41);                  // ','\n        lookahead1W(255);           // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n        whitespace();\n        parse_TypeName();\n      }\n    }\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(37);                      // ')'\n    eventHandler.endNonterminal(\"AttributeTest\", e0);\n  }\n\n  function try_AttributeTest()\n  {\n    shiftT(82);                     // 'attribute'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(34);                     // '('\n    lookahead1W(261);               // EQName^Token | S^WS | '(:' | ')' | '*' | 'after' | 'allowing' | 'ancestor' |\n    if (l1 != 37)                   // ')'\n    {\n      try_AttribNameOrWildcard();\n      lookahead1W(101);             // S^WS | '(:' | ')' | ','\n      if (l1 == 41)                 // ','\n      {\n        shiftT(41);                 // ','\n        lookahead1W(255);           // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n        try_TypeName();\n      }\n    }\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(37);                     // ')'\n  }\n\n  function parse_AttribNameOrWildcard()\n  {\n    eventHandler.startNonterminal(\"AttribNameOrWildcard\", e0);\n    switch (l1)\n    {\n    case 38:                        // '*'\n      shift(38);                    // '*'\n      break;\n    default:\n      parse_AttributeName();\n    }\n    eventHandler.endNonterminal(\"AttribNameOrWildcard\", e0);\n  }\n\n  function try_AttribNameOrWildcard()\n  {\n    switch (l1)\n    {\n    case 38:                        // '*'\n      shiftT(38);                   // '*'\n      break;\n    default:\n      try_AttributeName();\n    }\n  }\n\n  function parse_SchemaAttributeTest()\n  {\n    eventHandler.startNonterminal(\"SchemaAttributeTest\", e0);\n    shift(226);                     // 'schema-attribute'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_AttributeDeclaration();\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(37);                      // ')'\n    eventHandler.endNonterminal(\"SchemaAttributeTest\", e0);\n  }\n\n  function try_SchemaAttributeTest()\n  {\n    shiftT(226);                    // 'schema-attribute'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(34);                     // '('\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_AttributeDeclaration();\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(37);                     // ')'\n  }\n\n  function parse_AttributeDeclaration()\n  {\n    eventHandler.startNonterminal(\"AttributeDeclaration\", e0);\n    parse_AttributeName();\n    eventHandler.endNonterminal(\"AttributeDeclaration\", e0);\n  }\n\n  function try_AttributeDeclaration()\n  {\n    try_AttributeName();\n  }\n\n  function parse_ElementTest()\n  {\n    eventHandler.startNonterminal(\"ElementTest\", e0);\n    shift(121);                     // 'element'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(261);               // EQName^Token | S^WS | '(:' | ')' | '*' | 'after' | 'allowing' | 'ancestor' |\n    if (l1 != 37)                   // ')'\n    {\n      whitespace();\n      parse_ElementNameOrWildcard();\n      lookahead1W(101);             // S^WS | '(:' | ')' | ','\n      if (l1 == 41)                 // ','\n      {\n        shift(41);                  // ','\n        lookahead1W(255);           // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n        whitespace();\n        parse_TypeName();\n        lookahead1W(102);           // S^WS | '(:' | ')' | '?'\n        if (l1 == 64)               // '?'\n        {\n          shift(64);                // '?'\n        }\n      }\n    }\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(37);                      // ')'\n    eventHandler.endNonterminal(\"ElementTest\", e0);\n  }\n\n  function try_ElementTest()\n  {\n    shiftT(121);                    // 'element'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(34);                     // '('\n    lookahead1W(261);               // EQName^Token | S^WS | '(:' | ')' | '*' | 'after' | 'allowing' | 'ancestor' |\n    if (l1 != 37)                   // ')'\n    {\n      try_ElementNameOrWildcard();\n      lookahead1W(101);             // S^WS | '(:' | ')' | ','\n      if (l1 == 41)                 // ','\n      {\n        shiftT(41);                 // ','\n        lookahead1W(255);           // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n        try_TypeName();\n        lookahead1W(102);           // S^WS | '(:' | ')' | '?'\n        if (l1 == 64)               // '?'\n        {\n          shiftT(64);               // '?'\n        }\n      }\n    }\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(37);                     // ')'\n  }\n\n  function parse_ElementNameOrWildcard()\n  {\n    eventHandler.startNonterminal(\"ElementNameOrWildcard\", e0);\n    switch (l1)\n    {\n    case 38:                        // '*'\n      shift(38);                    // '*'\n      break;\n    default:\n      parse_ElementName();\n    }\n    eventHandler.endNonterminal(\"ElementNameOrWildcard\", e0);\n  }\n\n  function try_ElementNameOrWildcard()\n  {\n    switch (l1)\n    {\n    case 38:                        // '*'\n      shiftT(38);                   // '*'\n      break;\n    default:\n      try_ElementName();\n    }\n  }\n\n  function parse_SchemaElementTest()\n  {\n    eventHandler.startNonterminal(\"SchemaElementTest\", e0);\n    shift(227);                     // 'schema-element'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_ElementDeclaration();\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(37);                      // ')'\n    eventHandler.endNonterminal(\"SchemaElementTest\", e0);\n  }\n\n  function try_SchemaElementTest()\n  {\n    shiftT(227);                    // 'schema-element'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(34);                     // '('\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_ElementDeclaration();\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(37);                     // ')'\n  }\n\n  function parse_ElementDeclaration()\n  {\n    eventHandler.startNonterminal(\"ElementDeclaration\", e0);\n    parse_ElementName();\n    eventHandler.endNonterminal(\"ElementDeclaration\", e0);\n  }\n\n  function try_ElementDeclaration()\n  {\n    try_ElementName();\n  }\n\n  function parse_AttributeName()\n  {\n    eventHandler.startNonterminal(\"AttributeName\", e0);\n    parse_EQName();\n    eventHandler.endNonterminal(\"AttributeName\", e0);\n  }\n\n  function try_AttributeName()\n  {\n    try_EQName();\n  }\n\n  function parse_ElementName()\n  {\n    eventHandler.startNonterminal(\"ElementName\", e0);\n    parse_EQName();\n    eventHandler.endNonterminal(\"ElementName\", e0);\n  }\n\n  function try_ElementName()\n  {\n    try_EQName();\n  }\n\n  function parse_SimpleTypeName()\n  {\n    eventHandler.startNonterminal(\"SimpleTypeName\", e0);\n    parse_TypeName();\n    eventHandler.endNonterminal(\"SimpleTypeName\", e0);\n  }\n\n  function try_SimpleTypeName()\n  {\n    try_TypeName();\n  }\n\n  function parse_TypeName()\n  {\n    eventHandler.startNonterminal(\"TypeName\", e0);\n    parse_EQName();\n    eventHandler.endNonterminal(\"TypeName\", e0);\n  }\n\n  function try_TypeName()\n  {\n    try_EQName();\n  }\n\n  function parse_FunctionTest()\n  {\n    eventHandler.startNonterminal(\"FunctionTest\", e0);\n    for (;;)\n    {\n      lookahead1W(97);              // S^WS | '%' | '(:' | 'function'\n      if (l1 != 32)                 // '%'\n      {\n        break;\n      }\n      whitespace();\n      parse_Annotation();\n    }\n    switch (l1)\n    {\n    case 145:                       // 'function'\n      lookahead2W(22);              // S^WS | '(' | '(:'\n      break;\n    default:\n      lk = l1;\n    }\n    lk = memoized(5, e0);\n    if (lk == 0)\n    {\n      var b0A = b0; var e0A = e0; var l1A = l1;\n      var b1A = b1; var e1A = e1; var l2A = l2;\n      var b2A = b2; var e2A = e2;\n      try\n      {\n        try_AnyFunctionTest();\n        lk = -1;\n      }\n      catch (p1A)\n      {\n        lk = -2;\n      }\n      b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n      b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n      b2 = b2A; e2 = e2A; end = e2A; }}\n      memoize(5, e0, lk);\n    }\n    switch (lk)\n    {\n    case -1:\n      whitespace();\n      parse_AnyFunctionTest();\n      break;\n    default:\n      whitespace();\n      parse_TypedFunctionTest();\n    }\n    eventHandler.endNonterminal(\"FunctionTest\", e0);\n  }\n\n  function try_FunctionTest()\n  {\n    for (;;)\n    {\n      lookahead1W(97);              // S^WS | '%' | '(:' | 'function'\n      if (l1 != 32)                 // '%'\n      {\n        break;\n      }\n      try_Annotation();\n    }\n    switch (l1)\n    {\n    case 145:                       // 'function'\n      lookahead2W(22);              // S^WS | '(' | '(:'\n      break;\n    default:\n      lk = l1;\n    }\n    lk = memoized(5, e0);\n    if (lk == 0)\n    {\n      var b0A = b0; var e0A = e0; var l1A = l1;\n      var b1A = b1; var e1A = e1; var l2A = l2;\n      var b2A = b2; var e2A = e2;\n      try\n      {\n        try_AnyFunctionTest();\n        memoize(5, e0A, -1);\n        lk = -3;\n      }\n      catch (p1A)\n      {\n        lk = -2;\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(5, e0A, -2);\n      }\n    }\n    switch (lk)\n    {\n    case -1:\n      try_AnyFunctionTest();\n      break;\n    case -3:\n      break;\n    default:\n      try_TypedFunctionTest();\n    }\n  }\n\n  function parse_AnyFunctionTest()\n  {\n    eventHandler.startNonterminal(\"AnyFunctionTest\", e0);\n    shift(145);                     // 'function'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(24);                // S^WS | '(:' | '*'\n    shift(38);                      // '*'\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(37);                      // ')'\n    eventHandler.endNonterminal(\"AnyFunctionTest\", e0);\n  }\n\n  function try_AnyFunctionTest()\n  {\n    shiftT(145);                    // 'function'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(34);                     // '('\n    lookahead1W(24);                // S^WS | '(:' | '*'\n    shiftT(38);                     // '*'\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(37);                     // ')'\n  }\n\n  function parse_TypedFunctionTest()\n  {\n    eventHandler.startNonterminal(\"TypedFunctionTest\", e0);\n    shift(145);                     // 'function'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(263);               // EQName^Token | S^WS | '%' | '(' | '(:' | ')' | 'after' | 'allowing' |\n    if (l1 != 37)                   // ')'\n    {\n      whitespace();\n      parse_SequenceType();\n      for (;;)\n      {\n        lookahead1W(101);           // S^WS | '(:' | ')' | ','\n        if (l1 != 41)               // ','\n        {\n          break;\n        }\n        shift(41);                  // ','\n        lookahead1W(260);           // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n        whitespace();\n        parse_SequenceType();\n      }\n    }\n    shift(37);                      // ')'\n    lookahead1W(30);                // S^WS | '(:' | 'as'\n    shift(79);                      // 'as'\n    lookahead1W(260);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_SequenceType();\n    eventHandler.endNonterminal(\"TypedFunctionTest\", e0);\n  }\n\n  function try_TypedFunctionTest()\n  {\n    shiftT(145);                    // 'function'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(34);                     // '('\n    lookahead1W(263);               // EQName^Token | S^WS | '%' | '(' | '(:' | ')' | 'after' | 'allowing' |\n    if (l1 != 37)                   // ')'\n    {\n      try_SequenceType();\n      for (;;)\n      {\n        lookahead1W(101);           // S^WS | '(:' | ')' | ','\n        if (l1 != 41)               // ','\n        {\n          break;\n        }\n        shiftT(41);                 // ','\n        lookahead1W(260);           // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n        try_SequenceType();\n      }\n    }\n    shiftT(37);                     // ')'\n    lookahead1W(30);                // S^WS | '(:' | 'as'\n    shiftT(79);                     // 'as'\n    lookahead1W(260);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_SequenceType();\n  }\n\n  function parse_ParenthesizedItemType()\n  {\n    eventHandler.startNonterminal(\"ParenthesizedItemType\", e0);\n    shift(34);                      // '('\n    lookahead1W(260);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_ItemType();\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shift(37);                      // ')'\n    eventHandler.endNonterminal(\"ParenthesizedItemType\", e0);\n  }\n\n  function try_ParenthesizedItemType()\n  {\n    shiftT(34);                     // '('\n    lookahead1W(260);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_ItemType();\n    lookahead1W(23);                // S^WS | '(:' | ')'\n    shiftT(37);                     // ')'\n  }\n\n  function parse_RevalidationDecl()\n  {\n    eventHandler.startNonterminal(\"RevalidationDecl\", e0);\n    shift(108);                     // 'declare'\n    lookahead1W(72);                // S^WS | '(:' | 'revalidation'\n    shift(222);                     // 'revalidation'\n    lookahead1W(152);               // S^WS | '(:' | 'lax' | 'skip' | 'strict'\n    switch (l1)\n    {\n    case 240:                       // 'strict'\n      shift(240);                   // 'strict'\n      break;\n    case 171:                       // 'lax'\n      shift(171);                   // 'lax'\n      break;\n    default:\n      shift(233);                   // 'skip'\n    }\n    eventHandler.endNonterminal(\"RevalidationDecl\", e0);\n  }\n\n  function parse_InsertExprTargetChoice()\n  {\n    eventHandler.startNonterminal(\"InsertExprTargetChoice\", e0);\n    switch (l1)\n    {\n    case 70:                        // 'after'\n      shift(70);                    // 'after'\n      break;\n    case 84:                        // 'before'\n      shift(84);                    // 'before'\n      break;\n    default:\n      if (l1 == 79)                 // 'as'\n      {\n        shift(79);                  // 'as'\n        lookahead1W(119);           // S^WS | '(:' | 'first' | 'last'\n        switch (l1)\n        {\n        case 134:                   // 'first'\n          shift(134);               // 'first'\n          break;\n        default:\n          shift(170);               // 'last'\n        }\n      }\n      lookahead1W(54);              // S^WS | '(:' | 'into'\n      shift(163);                   // 'into'\n    }\n    eventHandler.endNonterminal(\"InsertExprTargetChoice\", e0);\n  }\n\n  function try_InsertExprTargetChoice()\n  {\n    switch (l1)\n    {\n    case 70:                        // 'after'\n      shiftT(70);                   // 'after'\n      break;\n    case 84:                        // 'before'\n      shiftT(84);                   // 'before'\n      break;\n    default:\n      if (l1 == 79)                 // 'as'\n      {\n        shiftT(79);                 // 'as'\n        lookahead1W(119);           // S^WS | '(:' | 'first' | 'last'\n        switch (l1)\n        {\n        case 134:                   // 'first'\n          shiftT(134);              // 'first'\n          break;\n        default:\n          shiftT(170);              // 'last'\n        }\n      }\n      lookahead1W(54);              // S^WS | '(:' | 'into'\n      shiftT(163);                  // 'into'\n    }\n  }\n\n  function parse_InsertExpr()\n  {\n    eventHandler.startNonterminal(\"InsertExpr\", e0);\n    shift(159);                     // 'insert'\n    lookahead1W(129);               // S^WS | '(:' | 'node' | 'nodes'\n    switch (l1)\n    {\n    case 191:                       // 'node'\n      shift(191);                   // 'node'\n      break;\n    default:\n      shift(192);                   // 'nodes'\n    }\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_SourceExpr();\n    whitespace();\n    parse_InsertExprTargetChoice();\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_TargetExpr();\n    eventHandler.endNonterminal(\"InsertExpr\", e0);\n  }\n\n  function try_InsertExpr()\n  {\n    shiftT(159);                    // 'insert'\n    lookahead1W(129);               // S^WS | '(:' | 'node' | 'nodes'\n    switch (l1)\n    {\n    case 191:                       // 'node'\n      shiftT(191);                  // 'node'\n      break;\n    default:\n      shiftT(192);                  // 'nodes'\n    }\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_SourceExpr();\n    try_InsertExprTargetChoice();\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_TargetExpr();\n  }\n\n  function parse_DeleteExpr()\n  {\n    eventHandler.startNonterminal(\"DeleteExpr\", e0);\n    shift(110);                     // 'delete'\n    lookahead1W(129);               // S^WS | '(:' | 'node' | 'nodes'\n    switch (l1)\n    {\n    case 191:                       // 'node'\n      shift(191);                   // 'node'\n      break;\n    default:\n      shift(192);                   // 'nodes'\n    }\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_TargetExpr();\n    eventHandler.endNonterminal(\"DeleteExpr\", e0);\n  }\n\n  function try_DeleteExpr()\n  {\n    shiftT(110);                    // 'delete'\n    lookahead1W(129);               // S^WS | '(:' | 'node' | 'nodes'\n    switch (l1)\n    {\n    case 191:                       // 'node'\n      shiftT(191);                  // 'node'\n      break;\n    default:\n      shiftT(192);                  // 'nodes'\n    }\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_TargetExpr();\n  }\n\n  function parse_ReplaceExpr()\n  {\n    eventHandler.startNonterminal(\"ReplaceExpr\", e0);\n    shift(219);                     // 'replace'\n    lookahead1W(130);               // S^WS | '(:' | 'node' | 'value'\n    if (l1 == 261)                  // 'value'\n    {\n      shift(261);                   // 'value'\n      lookahead1W(64);              // S^WS | '(:' | 'of'\n      shift(196);                   // 'of'\n    }\n    lookahead1W(62);                // S^WS | '(:' | 'node'\n    shift(191);                     // 'node'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_TargetExpr();\n    shift(270);                     // 'with'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"ReplaceExpr\", e0);\n  }\n\n  function try_ReplaceExpr()\n  {\n    shiftT(219);                    // 'replace'\n    lookahead1W(130);               // S^WS | '(:' | 'node' | 'value'\n    if (l1 == 261)                  // 'value'\n    {\n      shiftT(261);                  // 'value'\n      lookahead1W(64);              // S^WS | '(:' | 'of'\n      shiftT(196);                  // 'of'\n    }\n    lookahead1W(62);                // S^WS | '(:' | 'node'\n    shiftT(191);                    // 'node'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_TargetExpr();\n    shiftT(270);                    // 'with'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_RenameExpr()\n  {\n    eventHandler.startNonterminal(\"RenameExpr\", e0);\n    shift(218);                     // 'rename'\n    lookahead1W(62);                // S^WS | '(:' | 'node'\n    shift(191);                     // 'node'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_TargetExpr();\n    shift(79);                      // 'as'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_NewNameExpr();\n    eventHandler.endNonterminal(\"RenameExpr\", e0);\n  }\n\n  function try_RenameExpr()\n  {\n    shiftT(218);                    // 'rename'\n    lookahead1W(62);                // S^WS | '(:' | 'node'\n    shiftT(191);                    // 'node'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_TargetExpr();\n    shiftT(79);                     // 'as'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_NewNameExpr();\n  }\n\n  function parse_SourceExpr()\n  {\n    eventHandler.startNonterminal(\"SourceExpr\", e0);\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"SourceExpr\", e0);\n  }\n\n  function try_SourceExpr()\n  {\n    try_ExprSingle();\n  }\n\n  function parse_TargetExpr()\n  {\n    eventHandler.startNonterminal(\"TargetExpr\", e0);\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"TargetExpr\", e0);\n  }\n\n  function try_TargetExpr()\n  {\n    try_ExprSingle();\n  }\n\n  function parse_NewNameExpr()\n  {\n    eventHandler.startNonterminal(\"NewNameExpr\", e0);\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"NewNameExpr\", e0);\n  }\n\n  function try_NewNameExpr()\n  {\n    try_ExprSingle();\n  }\n\n  function parse_TransformExpr()\n  {\n    eventHandler.startNonterminal(\"TransformExpr\", e0);\n    shift(103);                     // 'copy'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    whitespace();\n    parse_TransformSpec();\n    for (;;)\n    {\n      if (l1 != 41)                 // ','\n      {\n        break;\n      }\n      shift(41);                    // ','\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      whitespace();\n      parse_TransformSpec();\n    }\n    shift(181);                     // 'modify'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    shift(220);                     // 'return'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"TransformExpr\", e0);\n  }\n\n  function try_TransformExpr()\n  {\n    shiftT(103);                    // 'copy'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    try_TransformSpec();\n    for (;;)\n    {\n      if (l1 != 41)                 // ','\n      {\n        break;\n      }\n      shiftT(41);                   // ','\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      try_TransformSpec();\n    }\n    shiftT(181);                    // 'modify'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n    shiftT(220);                    // 'return'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_TransformSpec()\n  {\n    eventHandler.startNonterminal(\"TransformSpec\", e0);\n    shift(31);                      // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    lookahead1W(27);                // S^WS | '(:' | ':='\n    shift(52);                      // ':='\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"TransformSpec\", e0);\n  }\n\n  function try_TransformSpec()\n  {\n    shiftT(31);                     // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_VarName();\n    lookahead1W(27);                // S^WS | '(:' | ':='\n    shiftT(52);                     // ':='\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_FTSelection()\n  {\n    eventHandler.startNonterminal(\"FTSelection\", e0);\n    parse_FTOr();\n    for (;;)\n    {\n      lookahead1W(212);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n      switch (l1)\n      {\n      case 81:                      // 'at'\n        lookahead2W(151);           // S^WS | '(:' | 'end' | 'position' | 'start'\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk != 115                 // 'different'\n       && lk != 117                 // 'distance'\n       && lk != 127                 // 'entire'\n       && lk != 202                 // 'ordered'\n       && lk != 223                 // 'same'\n       && lk != 269                 // 'window'\n       && lk != 64593               // 'at' 'end'\n       && lk != 121425)             // 'at' 'start'\n      {\n        break;\n      }\n      whitespace();\n      parse_FTPosFilter();\n    }\n    eventHandler.endNonterminal(\"FTSelection\", e0);\n  }\n\n  function try_FTSelection()\n  {\n    try_FTOr();\n    for (;;)\n    {\n      lookahead1W(212);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n      switch (l1)\n      {\n      case 81:                      // 'at'\n        lookahead2W(151);           // S^WS | '(:' | 'end' | 'position' | 'start'\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk != 115                 // 'different'\n       && lk != 117                 // 'distance'\n       && lk != 127                 // 'entire'\n       && lk != 202                 // 'ordered'\n       && lk != 223                 // 'same'\n       && lk != 269                 // 'window'\n       && lk != 64593               // 'at' 'end'\n       && lk != 121425)             // 'at' 'start'\n      {\n        break;\n      }\n      try_FTPosFilter();\n    }\n  }\n\n  function parse_FTWeight()\n  {\n    eventHandler.startNonterminal(\"FTWeight\", e0);\n    shift(264);                     // 'weight'\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    shift(276);                     // '{'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_Expr();\n    shift(282);                     // '}'\n    eventHandler.endNonterminal(\"FTWeight\", e0);\n  }\n\n  function try_FTWeight()\n  {\n    shiftT(264);                    // 'weight'\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    shiftT(276);                    // '{'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_Expr();\n    shiftT(282);                    // '}'\n  }\n\n  function parse_FTOr()\n  {\n    eventHandler.startNonterminal(\"FTOr\", e0);\n    parse_FTAnd();\n    for (;;)\n    {\n      if (l1 != 144)                // 'ftor'\n      {\n        break;\n      }\n      shift(144);                   // 'ftor'\n      lookahead1W(162);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'\n      whitespace();\n      parse_FTAnd();\n    }\n    eventHandler.endNonterminal(\"FTOr\", e0);\n  }\n\n  function try_FTOr()\n  {\n    try_FTAnd();\n    for (;;)\n    {\n      if (l1 != 144)                // 'ftor'\n      {\n        break;\n      }\n      shiftT(144);                  // 'ftor'\n      lookahead1W(162);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'\n      try_FTAnd();\n    }\n  }\n\n  function parse_FTAnd()\n  {\n    eventHandler.startNonterminal(\"FTAnd\", e0);\n    parse_FTMildNot();\n    for (;;)\n    {\n      if (l1 != 142)                // 'ftand'\n      {\n        break;\n      }\n      shift(142);                   // 'ftand'\n      lookahead1W(162);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'\n      whitespace();\n      parse_FTMildNot();\n    }\n    eventHandler.endNonterminal(\"FTAnd\", e0);\n  }\n\n  function try_FTAnd()\n  {\n    try_FTMildNot();\n    for (;;)\n    {\n      if (l1 != 142)                // 'ftand'\n      {\n        break;\n      }\n      shiftT(142);                  // 'ftand'\n      lookahead1W(162);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'\n      try_FTMildNot();\n    }\n  }\n\n  function parse_FTMildNot()\n  {\n    eventHandler.startNonterminal(\"FTMildNot\", e0);\n    parse_FTUnaryNot();\n    for (;;)\n    {\n      lookahead1W(213);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n      if (l1 != 193)                // 'not'\n      {\n        break;\n      }\n      shift(193);                   // 'not'\n      lookahead1W(53);              // S^WS | '(:' | 'in'\n      shift(154);                   // 'in'\n      lookahead1W(162);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'\n      whitespace();\n      parse_FTUnaryNot();\n    }\n    eventHandler.endNonterminal(\"FTMildNot\", e0);\n  }\n\n  function try_FTMildNot()\n  {\n    try_FTUnaryNot();\n    for (;;)\n    {\n      lookahead1W(213);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n      if (l1 != 193)                // 'not'\n      {\n        break;\n      }\n      shiftT(193);                  // 'not'\n      lookahead1W(53);              // S^WS | '(:' | 'in'\n      shiftT(154);                  // 'in'\n      lookahead1W(162);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'\n      try_FTUnaryNot();\n    }\n  }\n\n  function parse_FTUnaryNot()\n  {\n    eventHandler.startNonterminal(\"FTUnaryNot\", e0);\n    if (l1 == 143)                  // 'ftnot'\n    {\n      shift(143);                   // 'ftnot'\n    }\n    lookahead1W(155);               // StringLiteral | S^WS | '(' | '(#' | '(:' | '{'\n    whitespace();\n    parse_FTPrimaryWithOptions();\n    eventHandler.endNonterminal(\"FTUnaryNot\", e0);\n  }\n\n  function try_FTUnaryNot()\n  {\n    if (l1 == 143)                  // 'ftnot'\n    {\n      shiftT(143);                  // 'ftnot'\n    }\n    lookahead1W(155);               // StringLiteral | S^WS | '(' | '(#' | '(:' | '{'\n    try_FTPrimaryWithOptions();\n  }\n\n  function parse_FTPrimaryWithOptions()\n  {\n    eventHandler.startNonterminal(\"FTPrimaryWithOptions\", e0);\n    parse_FTPrimary();\n    lookahead1W(215);               // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n    if (l1 == 259)                  // 'using'\n    {\n      whitespace();\n      parse_FTMatchOptions();\n    }\n    if (l1 == 264)                  // 'weight'\n    {\n      whitespace();\n      parse_FTWeight();\n    }\n    eventHandler.endNonterminal(\"FTPrimaryWithOptions\", e0);\n  }\n\n  function try_FTPrimaryWithOptions()\n  {\n    try_FTPrimary();\n    lookahead1W(215);               // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n    if (l1 == 259)                  // 'using'\n    {\n      try_FTMatchOptions();\n    }\n    if (l1 == 264)                  // 'weight'\n    {\n      try_FTWeight();\n    }\n  }\n\n  function parse_FTPrimary()\n  {\n    eventHandler.startNonterminal(\"FTPrimary\", e0);\n    switch (l1)\n    {\n    case 34:                        // '('\n      shift(34);                    // '('\n      lookahead1W(162);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'\n      whitespace();\n      parse_FTSelection();\n      shift(37);                    // ')'\n      break;\n    case 35:                        // '(#'\n      parse_FTExtensionSelection();\n      break;\n    default:\n      parse_FTWords();\n      lookahead1W(216);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n      if (l1 == 195)                // 'occurs'\n      {\n        whitespace();\n        parse_FTTimes();\n      }\n    }\n    eventHandler.endNonterminal(\"FTPrimary\", e0);\n  }\n\n  function try_FTPrimary()\n  {\n    switch (l1)\n    {\n    case 34:                        // '('\n      shiftT(34);                   // '('\n      lookahead1W(162);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'\n      try_FTSelection();\n      shiftT(37);                   // ')'\n      break;\n    case 35:                        // '(#'\n      try_FTExtensionSelection();\n      break;\n    default:\n      try_FTWords();\n      lookahead1W(216);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n      if (l1 == 195)                // 'occurs'\n      {\n        try_FTTimes();\n      }\n    }\n  }\n\n  function parse_FTWords()\n  {\n    eventHandler.startNonterminal(\"FTWords\", e0);\n    parse_FTWordsValue();\n    lookahead1W(222);               // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n    if (l1 == 71                    // 'all'\n     || l1 == 76                    // 'any'\n     || l1 == 210)                  // 'phrase'\n    {\n      whitespace();\n      parse_FTAnyallOption();\n    }\n    eventHandler.endNonterminal(\"FTWords\", e0);\n  }\n\n  function try_FTWords()\n  {\n    try_FTWordsValue();\n    lookahead1W(222);               // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n    if (l1 == 71                    // 'all'\n     || l1 == 76                    // 'any'\n     || l1 == 210)                  // 'phrase'\n    {\n      try_FTAnyallOption();\n    }\n  }\n\n  function parse_FTWordsValue()\n  {\n    eventHandler.startNonterminal(\"FTWordsValue\", e0);\n    switch (l1)\n    {\n    case 11:                        // StringLiteral\n      shift(11);                    // StringLiteral\n      break;\n    default:\n      shift(276);                   // '{'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_Expr();\n      shift(282);                   // '}'\n    }\n    eventHandler.endNonterminal(\"FTWordsValue\", e0);\n  }\n\n  function try_FTWordsValue()\n  {\n    switch (l1)\n    {\n    case 11:                        // StringLiteral\n      shiftT(11);                   // StringLiteral\n      break;\n    default:\n      shiftT(276);                  // '{'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_Expr();\n      shiftT(282);                  // '}'\n    }\n  }\n\n  function parse_FTExtensionSelection()\n  {\n    eventHandler.startNonterminal(\"FTExtensionSelection\", e0);\n    for (;;)\n    {\n      whitespace();\n      parse_Pragma();\n      lookahead1W(100);             // S^WS | '(#' | '(:' | '{'\n      if (l1 != 35)                 // '(#'\n      {\n        break;\n      }\n    }\n    shift(276);                     // '{'\n    lookahead1W(166);               // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{' | '}'\n    if (l1 != 282)                  // '}'\n    {\n      whitespace();\n      parse_FTSelection();\n    }\n    shift(282);                     // '}'\n    eventHandler.endNonterminal(\"FTExtensionSelection\", e0);\n  }\n\n  function try_FTExtensionSelection()\n  {\n    for (;;)\n    {\n      try_Pragma();\n      lookahead1W(100);             // S^WS | '(#' | '(:' | '{'\n      if (l1 != 35)                 // '(#'\n      {\n        break;\n      }\n    }\n    shiftT(276);                    // '{'\n    lookahead1W(166);               // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{' | '}'\n    if (l1 != 282)                  // '}'\n    {\n      try_FTSelection();\n    }\n    shiftT(282);                    // '}'\n  }\n\n  function parse_FTAnyallOption()\n  {\n    eventHandler.startNonterminal(\"FTAnyallOption\", e0);\n    switch (l1)\n    {\n    case 76:                        // 'any'\n      shift(76);                    // 'any'\n      lookahead1W(219);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n      if (l1 == 272)                // 'word'\n      {\n        shift(272);                 // 'word'\n      }\n      break;\n    case 71:                        // 'all'\n      shift(71);                    // 'all'\n      lookahead1W(220);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n      if (l1 == 273)                // 'words'\n      {\n        shift(273);                 // 'words'\n      }\n      break;\n    default:\n      shift(210);                   // 'phrase'\n    }\n    eventHandler.endNonterminal(\"FTAnyallOption\", e0);\n  }\n\n  function try_FTAnyallOption()\n  {\n    switch (l1)\n    {\n    case 76:                        // 'any'\n      shiftT(76);                   // 'any'\n      lookahead1W(219);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n      if (l1 == 272)                // 'word'\n      {\n        shiftT(272);                // 'word'\n      }\n      break;\n    case 71:                        // 'all'\n      shiftT(71);                   // 'all'\n      lookahead1W(220);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n      if (l1 == 273)                // 'words'\n      {\n        shiftT(273);                // 'words'\n      }\n      break;\n    default:\n      shiftT(210);                  // 'phrase'\n    }\n  }\n\n  function parse_FTTimes()\n  {\n    eventHandler.startNonterminal(\"FTTimes\", e0);\n    shift(195);                     // 'occurs'\n    lookahead1W(149);               // S^WS | '(:' | 'at' | 'exactly' | 'from'\n    whitespace();\n    parse_FTRange();\n    shift(247);                     // 'times'\n    eventHandler.endNonterminal(\"FTTimes\", e0);\n  }\n\n  function try_FTTimes()\n  {\n    shiftT(195);                    // 'occurs'\n    lookahead1W(149);               // S^WS | '(:' | 'at' | 'exactly' | 'from'\n    try_FTRange();\n    shiftT(247);                    // 'times'\n  }\n\n  function parse_FTRange()\n  {\n    eventHandler.startNonterminal(\"FTRange\", e0);\n    switch (l1)\n    {\n    case 130:                       // 'exactly'\n      shift(130);                   // 'exactly'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_AdditiveExpr();\n      break;\n    case 81:                        // 'at'\n      shift(81);                    // 'at'\n      lookahead1W(125);             // S^WS | '(:' | 'least' | 'most'\n      switch (l1)\n      {\n      case 173:                     // 'least'\n        shift(173);                 // 'least'\n        lookahead1W(267);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        whitespace();\n        parse_AdditiveExpr();\n        break;\n      default:\n        shift(183);                 // 'most'\n        lookahead1W(267);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        whitespace();\n        parse_AdditiveExpr();\n      }\n      break;\n    default:\n      shift(140);                   // 'from'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_AdditiveExpr();\n      shift(248);                   // 'to'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_AdditiveExpr();\n    }\n    eventHandler.endNonterminal(\"FTRange\", e0);\n  }\n\n  function try_FTRange()\n  {\n    switch (l1)\n    {\n    case 130:                       // 'exactly'\n      shiftT(130);                  // 'exactly'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_AdditiveExpr();\n      break;\n    case 81:                        // 'at'\n      shiftT(81);                   // 'at'\n      lookahead1W(125);             // S^WS | '(:' | 'least' | 'most'\n      switch (l1)\n      {\n      case 173:                     // 'least'\n        shiftT(173);                // 'least'\n        lookahead1W(267);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        try_AdditiveExpr();\n        break;\n      default:\n        shiftT(183);                // 'most'\n        lookahead1W(267);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        try_AdditiveExpr();\n      }\n      break;\n    default:\n      shiftT(140);                  // 'from'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_AdditiveExpr();\n      shiftT(248);                  // 'to'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_AdditiveExpr();\n    }\n  }\n\n  function parse_FTPosFilter()\n  {\n    eventHandler.startNonterminal(\"FTPosFilter\", e0);\n    switch (l1)\n    {\n    case 202:                       // 'ordered'\n      parse_FTOrder();\n      break;\n    case 269:                       // 'window'\n      parse_FTWindow();\n      break;\n    case 117:                       // 'distance'\n      parse_FTDistance();\n      break;\n    case 115:                       // 'different'\n    case 223:                       // 'same'\n      parse_FTScope();\n      break;\n    default:\n      parse_FTContent();\n    }\n    eventHandler.endNonterminal(\"FTPosFilter\", e0);\n  }\n\n  function try_FTPosFilter()\n  {\n    switch (l1)\n    {\n    case 202:                       // 'ordered'\n      try_FTOrder();\n      break;\n    case 269:                       // 'window'\n      try_FTWindow();\n      break;\n    case 117:                       // 'distance'\n      try_FTDistance();\n      break;\n    case 115:                       // 'different'\n    case 223:                       // 'same'\n      try_FTScope();\n      break;\n    default:\n      try_FTContent();\n    }\n  }\n\n  function parse_FTOrder()\n  {\n    eventHandler.startNonterminal(\"FTOrder\", e0);\n    shift(202);                     // 'ordered'\n    eventHandler.endNonterminal(\"FTOrder\", e0);\n  }\n\n  function try_FTOrder()\n  {\n    shiftT(202);                    // 'ordered'\n  }\n\n  function parse_FTWindow()\n  {\n    eventHandler.startNonterminal(\"FTWindow\", e0);\n    shift(269);                     // 'window'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_AdditiveExpr();\n    whitespace();\n    parse_FTUnit();\n    eventHandler.endNonterminal(\"FTWindow\", e0);\n  }\n\n  function try_FTWindow()\n  {\n    shiftT(269);                    // 'window'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_AdditiveExpr();\n    try_FTUnit();\n  }\n\n  function parse_FTDistance()\n  {\n    eventHandler.startNonterminal(\"FTDistance\", e0);\n    shift(117);                     // 'distance'\n    lookahead1W(149);               // S^WS | '(:' | 'at' | 'exactly' | 'from'\n    whitespace();\n    parse_FTRange();\n    whitespace();\n    parse_FTUnit();\n    eventHandler.endNonterminal(\"FTDistance\", e0);\n  }\n\n  function try_FTDistance()\n  {\n    shiftT(117);                    // 'distance'\n    lookahead1W(149);               // S^WS | '(:' | 'at' | 'exactly' | 'from'\n    try_FTRange();\n    try_FTUnit();\n  }\n\n  function parse_FTUnit()\n  {\n    eventHandler.startNonterminal(\"FTUnit\", e0);\n    switch (l1)\n    {\n    case 273:                       // 'words'\n      shift(273);                   // 'words'\n      break;\n    case 232:                       // 'sentences'\n      shift(232);                   // 'sentences'\n      break;\n    default:\n      shift(205);                   // 'paragraphs'\n    }\n    eventHandler.endNonterminal(\"FTUnit\", e0);\n  }\n\n  function try_FTUnit()\n  {\n    switch (l1)\n    {\n    case 273:                       // 'words'\n      shiftT(273);                  // 'words'\n      break;\n    case 232:                       // 'sentences'\n      shiftT(232);                  // 'sentences'\n      break;\n    default:\n      shiftT(205);                  // 'paragraphs'\n    }\n  }\n\n  function parse_FTScope()\n  {\n    eventHandler.startNonterminal(\"FTScope\", e0);\n    switch (l1)\n    {\n    case 223:                       // 'same'\n      shift(223);                   // 'same'\n      break;\n    default:\n      shift(115);                   // 'different'\n    }\n    lookahead1W(132);               // S^WS | '(:' | 'paragraph' | 'sentence'\n    whitespace();\n    parse_FTBigUnit();\n    eventHandler.endNonterminal(\"FTScope\", e0);\n  }\n\n  function try_FTScope()\n  {\n    switch (l1)\n    {\n    case 223:                       // 'same'\n      shiftT(223);                  // 'same'\n      break;\n    default:\n      shiftT(115);                  // 'different'\n    }\n    lookahead1W(132);               // S^WS | '(:' | 'paragraph' | 'sentence'\n    try_FTBigUnit();\n  }\n\n  function parse_FTBigUnit()\n  {\n    eventHandler.startNonterminal(\"FTBigUnit\", e0);\n    switch (l1)\n    {\n    case 231:                       // 'sentence'\n      shift(231);                   // 'sentence'\n      break;\n    default:\n      shift(204);                   // 'paragraph'\n    }\n    eventHandler.endNonterminal(\"FTBigUnit\", e0);\n  }\n\n  function try_FTBigUnit()\n  {\n    switch (l1)\n    {\n    case 231:                       // 'sentence'\n      shiftT(231);                  // 'sentence'\n      break;\n    default:\n      shiftT(204);                  // 'paragraph'\n    }\n  }\n\n  function parse_FTContent()\n  {\n    eventHandler.startNonterminal(\"FTContent\", e0);\n    switch (l1)\n    {\n    case 81:                        // 'at'\n      shift(81);                    // 'at'\n      lookahead1W(117);             // S^WS | '(:' | 'end' | 'start'\n      switch (l1)\n      {\n      case 237:                     // 'start'\n        shift(237);                 // 'start'\n        break;\n      default:\n        shift(126);                 // 'end'\n      }\n      break;\n    default:\n      shift(127);                   // 'entire'\n      lookahead1W(42);              // S^WS | '(:' | 'content'\n      shift(100);                   // 'content'\n    }\n    eventHandler.endNonterminal(\"FTContent\", e0);\n  }\n\n  function try_FTContent()\n  {\n    switch (l1)\n    {\n    case 81:                        // 'at'\n      shiftT(81);                   // 'at'\n      lookahead1W(117);             // S^WS | '(:' | 'end' | 'start'\n      switch (l1)\n      {\n      case 237:                     // 'start'\n        shiftT(237);                // 'start'\n        break;\n      default:\n        shiftT(126);                // 'end'\n      }\n      break;\n    default:\n      shiftT(127);                  // 'entire'\n      lookahead1W(42);              // S^WS | '(:' | 'content'\n      shiftT(100);                  // 'content'\n    }\n  }\n\n  function parse_FTMatchOptions()\n  {\n    eventHandler.startNonterminal(\"FTMatchOptions\", e0);\n    for (;;)\n    {\n      shift(259);                   // 'using'\n      lookahead1W(182);             // S^WS | '(:' | 'case' | 'diacritics' | 'language' | 'lowercase' | 'no' |\n      whitespace();\n      parse_FTMatchOption();\n      lookahead1W(215);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n      if (l1 != 259)                // 'using'\n      {\n        break;\n      }\n    }\n    eventHandler.endNonterminal(\"FTMatchOptions\", e0);\n  }\n\n  function try_FTMatchOptions()\n  {\n    for (;;)\n    {\n      shiftT(259);                  // 'using'\n      lookahead1W(182);             // S^WS | '(:' | 'case' | 'diacritics' | 'language' | 'lowercase' | 'no' |\n      try_FTMatchOption();\n      lookahead1W(215);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n      if (l1 != 259)                // 'using'\n      {\n        break;\n      }\n    }\n  }\n\n  function parse_FTMatchOption()\n  {\n    eventHandler.startNonterminal(\"FTMatchOption\", e0);\n    switch (l1)\n    {\n    case 188:                       // 'no'\n      lookahead2W(161);             // S^WS | '(:' | 'stemming' | 'stop' | 'thesaurus' | 'wildcards'\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 169:                       // 'language'\n      parse_FTLanguageOption();\n      break;\n    case 268:                       // 'wildcards'\n    case 137404:                    // 'no' 'wildcards'\n      parse_FTWildCardOption();\n      break;\n    case 246:                       // 'thesaurus'\n    case 126140:                    // 'no' 'thesaurus'\n      parse_FTThesaurusOption();\n      break;\n    case 238:                       // 'stemming'\n    case 122044:                    // 'no' 'stemming'\n      parse_FTStemOption();\n      break;\n    case 114:                       // 'diacritics'\n      parse_FTDiacriticsOption();\n      break;\n    case 239:                       // 'stop'\n    case 122556:                    // 'no' 'stop'\n      parse_FTStopWordOption();\n      break;\n    case 199:                       // 'option'\n      parse_FTExtensionOption();\n      break;\n    default:\n      parse_FTCaseOption();\n    }\n    eventHandler.endNonterminal(\"FTMatchOption\", e0);\n  }\n\n  function try_FTMatchOption()\n  {\n    switch (l1)\n    {\n    case 188:                       // 'no'\n      lookahead2W(161);             // S^WS | '(:' | 'stemming' | 'stop' | 'thesaurus' | 'wildcards'\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 169:                       // 'language'\n      try_FTLanguageOption();\n      break;\n    case 268:                       // 'wildcards'\n    case 137404:                    // 'no' 'wildcards'\n      try_FTWildCardOption();\n      break;\n    case 246:                       // 'thesaurus'\n    case 126140:                    // 'no' 'thesaurus'\n      try_FTThesaurusOption();\n      break;\n    case 238:                       // 'stemming'\n    case 122044:                    // 'no' 'stemming'\n      try_FTStemOption();\n      break;\n    case 114:                       // 'diacritics'\n      try_FTDiacriticsOption();\n      break;\n    case 239:                       // 'stop'\n    case 122556:                    // 'no' 'stop'\n      try_FTStopWordOption();\n      break;\n    case 199:                       // 'option'\n      try_FTExtensionOption();\n      break;\n    default:\n      try_FTCaseOption();\n    }\n  }\n\n  function parse_FTCaseOption()\n  {\n    eventHandler.startNonterminal(\"FTCaseOption\", e0);\n    switch (l1)\n    {\n    case 88:                        // 'case'\n      shift(88);                    // 'case'\n      lookahead1W(124);             // S^WS | '(:' | 'insensitive' | 'sensitive'\n      switch (l1)\n      {\n      case 158:                     // 'insensitive'\n        shift(158);                 // 'insensitive'\n        break;\n      default:\n        shift(230);                 // 'sensitive'\n      }\n      break;\n    case 177:                       // 'lowercase'\n      shift(177);                   // 'lowercase'\n      break;\n    default:\n      shift(258);                   // 'uppercase'\n    }\n    eventHandler.endNonterminal(\"FTCaseOption\", e0);\n  }\n\n  function try_FTCaseOption()\n  {\n    switch (l1)\n    {\n    case 88:                        // 'case'\n      shiftT(88);                   // 'case'\n      lookahead1W(124);             // S^WS | '(:' | 'insensitive' | 'sensitive'\n      switch (l1)\n      {\n      case 158:                     // 'insensitive'\n        shiftT(158);                // 'insensitive'\n        break;\n      default:\n        shiftT(230);                // 'sensitive'\n      }\n      break;\n    case 177:                       // 'lowercase'\n      shiftT(177);                  // 'lowercase'\n      break;\n    default:\n      shiftT(258);                  // 'uppercase'\n    }\n  }\n\n  function parse_FTDiacriticsOption()\n  {\n    eventHandler.startNonterminal(\"FTDiacriticsOption\", e0);\n    shift(114);                     // 'diacritics'\n    lookahead1W(124);               // S^WS | '(:' | 'insensitive' | 'sensitive'\n    switch (l1)\n    {\n    case 158:                       // 'insensitive'\n      shift(158);                   // 'insensitive'\n      break;\n    default:\n      shift(230);                   // 'sensitive'\n    }\n    eventHandler.endNonterminal(\"FTDiacriticsOption\", e0);\n  }\n\n  function try_FTDiacriticsOption()\n  {\n    shiftT(114);                    // 'diacritics'\n    lookahead1W(124);               // S^WS | '(:' | 'insensitive' | 'sensitive'\n    switch (l1)\n    {\n    case 158:                       // 'insensitive'\n      shiftT(158);                  // 'insensitive'\n      break;\n    default:\n      shiftT(230);                  // 'sensitive'\n    }\n  }\n\n  function parse_FTStemOption()\n  {\n    eventHandler.startNonterminal(\"FTStemOption\", e0);\n    switch (l1)\n    {\n    case 238:                       // 'stemming'\n      shift(238);                   // 'stemming'\n      break;\n    default:\n      shift(188);                   // 'no'\n      lookahead1W(74);              // S^WS | '(:' | 'stemming'\n      shift(238);                   // 'stemming'\n    }\n    eventHandler.endNonterminal(\"FTStemOption\", e0);\n  }\n\n  function try_FTStemOption()\n  {\n    switch (l1)\n    {\n    case 238:                       // 'stemming'\n      shiftT(238);                  // 'stemming'\n      break;\n    default:\n      shiftT(188);                  // 'no'\n      lookahead1W(74);              // S^WS | '(:' | 'stemming'\n      shiftT(238);                  // 'stemming'\n    }\n  }\n\n  function parse_FTThesaurusOption()\n  {\n    eventHandler.startNonterminal(\"FTThesaurusOption\", e0);\n    switch (l1)\n    {\n    case 246:                       // 'thesaurus'\n      shift(246);                   // 'thesaurus'\n      lookahead1W(142);             // S^WS | '(' | '(:' | 'at' | 'default'\n      switch (l1)\n      {\n      case 81:                      // 'at'\n        whitespace();\n        parse_FTThesaurusID();\n        break;\n      case 109:                     // 'default'\n        shift(109);                 // 'default'\n        break;\n      default:\n        shift(34);                  // '('\n        lookahead1W(112);           // S^WS | '(:' | 'at' | 'default'\n        switch (l1)\n        {\n        case 81:                    // 'at'\n          whitespace();\n          parse_FTThesaurusID();\n          break;\n        default:\n          shift(109);               // 'default'\n        }\n        for (;;)\n        {\n          lookahead1W(101);         // S^WS | '(:' | ')' | ','\n          if (l1 != 41)             // ','\n          {\n            break;\n          }\n          shift(41);                // ','\n          lookahead1W(31);          // S^WS | '(:' | 'at'\n          whitespace();\n          parse_FTThesaurusID();\n        }\n        shift(37);                  // ')'\n      }\n      break;\n    default:\n      shift(188);                   // 'no'\n      lookahead1W(78);              // S^WS | '(:' | 'thesaurus'\n      shift(246);                   // 'thesaurus'\n    }\n    eventHandler.endNonterminal(\"FTThesaurusOption\", e0);\n  }\n\n  function try_FTThesaurusOption()\n  {\n    switch (l1)\n    {\n    case 246:                       // 'thesaurus'\n      shiftT(246);                  // 'thesaurus'\n      lookahead1W(142);             // S^WS | '(' | '(:' | 'at' | 'default'\n      switch (l1)\n      {\n      case 81:                      // 'at'\n        try_FTThesaurusID();\n        break;\n      case 109:                     // 'default'\n        shiftT(109);                // 'default'\n        break;\n      default:\n        shiftT(34);                 // '('\n        lookahead1W(112);           // S^WS | '(:' | 'at' | 'default'\n        switch (l1)\n        {\n        case 81:                    // 'at'\n          try_FTThesaurusID();\n          break;\n        default:\n          shiftT(109);              // 'default'\n        }\n        for (;;)\n        {\n          lookahead1W(101);         // S^WS | '(:' | ')' | ','\n          if (l1 != 41)             // ','\n          {\n            break;\n          }\n          shiftT(41);               // ','\n          lookahead1W(31);          // S^WS | '(:' | 'at'\n          try_FTThesaurusID();\n        }\n        shiftT(37);                 // ')'\n      }\n      break;\n    default:\n      shiftT(188);                  // 'no'\n      lookahead1W(78);              // S^WS | '(:' | 'thesaurus'\n      shiftT(246);                  // 'thesaurus'\n    }\n  }\n\n  function parse_FTThesaurusID()\n  {\n    eventHandler.startNonterminal(\"FTThesaurusID\", e0);\n    shift(81);                      // 'at'\n    lookahead1W(15);                // URILiteral | S^WS | '(:'\n    shift(7);                       // URILiteral\n    lookahead1W(221);               // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n    if (l1 == 217)                  // 'relationship'\n    {\n      shift(217);                   // 'relationship'\n      lookahead1W(17);              // StringLiteral | S^WS | '(:'\n      shift(11);                    // StringLiteral\n    }\n    lookahead1W(217);               // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n    switch (l1)\n    {\n    case 81:                        // 'at'\n      lookahead2W(165);             // S^WS | '(:' | 'end' | 'least' | 'most' | 'position' | 'start'\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 130                   // 'exactly'\n     || lk == 140                   // 'from'\n     || lk == 88657                 // 'at' 'least'\n     || lk == 93777)                // 'at' 'most'\n    {\n      whitespace();\n      parse_FTLiteralRange();\n      lookahead1W(58);              // S^WS | '(:' | 'levels'\n      shift(175);                   // 'levels'\n    }\n    eventHandler.endNonterminal(\"FTThesaurusID\", e0);\n  }\n\n  function try_FTThesaurusID()\n  {\n    shiftT(81);                     // 'at'\n    lookahead1W(15);                // URILiteral | S^WS | '(:'\n    shiftT(7);                      // URILiteral\n    lookahead1W(221);               // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n    if (l1 == 217)                  // 'relationship'\n    {\n      shiftT(217);                  // 'relationship'\n      lookahead1W(17);              // StringLiteral | S^WS | '(:'\n      shiftT(11);                   // StringLiteral\n    }\n    lookahead1W(217);               // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n    switch (l1)\n    {\n    case 81:                        // 'at'\n      lookahead2W(165);             // S^WS | '(:' | 'end' | 'least' | 'most' | 'position' | 'start'\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 130                   // 'exactly'\n     || lk == 140                   // 'from'\n     || lk == 88657                 // 'at' 'least'\n     || lk == 93777)                // 'at' 'most'\n    {\n      try_FTLiteralRange();\n      lookahead1W(58);              // S^WS | '(:' | 'levels'\n      shiftT(175);                  // 'levels'\n    }\n  }\n\n  function parse_FTLiteralRange()\n  {\n    eventHandler.startNonterminal(\"FTLiteralRange\", e0);\n    switch (l1)\n    {\n    case 130:                       // 'exactly'\n      shift(130);                   // 'exactly'\n      lookahead1W(16);              // IntegerLiteral | S^WS | '(:'\n      shift(8);                     // IntegerLiteral\n      break;\n    case 81:                        // 'at'\n      shift(81);                    // 'at'\n      lookahead1W(125);             // S^WS | '(:' | 'least' | 'most'\n      switch (l1)\n      {\n      case 173:                     // 'least'\n        shift(173);                 // 'least'\n        lookahead1W(16);            // IntegerLiteral | S^WS | '(:'\n        shift(8);                   // IntegerLiteral\n        break;\n      default:\n        shift(183);                 // 'most'\n        lookahead1W(16);            // IntegerLiteral | S^WS | '(:'\n        shift(8);                   // IntegerLiteral\n      }\n      break;\n    default:\n      shift(140);                   // 'from'\n      lookahead1W(16);              // IntegerLiteral | S^WS | '(:'\n      shift(8);                     // IntegerLiteral\n      lookahead1W(79);              // S^WS | '(:' | 'to'\n      shift(248);                   // 'to'\n      lookahead1W(16);              // IntegerLiteral | S^WS | '(:'\n      shift(8);                     // IntegerLiteral\n    }\n    eventHandler.endNonterminal(\"FTLiteralRange\", e0);\n  }\n\n  function try_FTLiteralRange()\n  {\n    switch (l1)\n    {\n    case 130:                       // 'exactly'\n      shiftT(130);                  // 'exactly'\n      lookahead1W(16);              // IntegerLiteral | S^WS | '(:'\n      shiftT(8);                    // IntegerLiteral\n      break;\n    case 81:                        // 'at'\n      shiftT(81);                   // 'at'\n      lookahead1W(125);             // S^WS | '(:' | 'least' | 'most'\n      switch (l1)\n      {\n      case 173:                     // 'least'\n        shiftT(173);                // 'least'\n        lookahead1W(16);            // IntegerLiteral | S^WS | '(:'\n        shiftT(8);                  // IntegerLiteral\n        break;\n      default:\n        shiftT(183);                // 'most'\n        lookahead1W(16);            // IntegerLiteral | S^WS | '(:'\n        shiftT(8);                  // IntegerLiteral\n      }\n      break;\n    default:\n      shiftT(140);                  // 'from'\n      lookahead1W(16);              // IntegerLiteral | S^WS | '(:'\n      shiftT(8);                    // IntegerLiteral\n      lookahead1W(79);              // S^WS | '(:' | 'to'\n      shiftT(248);                  // 'to'\n      lookahead1W(16);              // IntegerLiteral | S^WS | '(:'\n      shiftT(8);                    // IntegerLiteral\n    }\n  }\n\n  function parse_FTStopWordOption()\n  {\n    eventHandler.startNonterminal(\"FTStopWordOption\", e0);\n    switch (l1)\n    {\n    case 239:                       // 'stop'\n      shift(239);                   // 'stop'\n      lookahead1W(86);              // S^WS | '(:' | 'words'\n      shift(273);                   // 'words'\n      lookahead1W(142);             // S^WS | '(' | '(:' | 'at' | 'default'\n      switch (l1)\n      {\n      case 109:                     // 'default'\n        shift(109);                 // 'default'\n        for (;;)\n        {\n          lookahead1W(218);         // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n          if (l1 != 131             // 'except'\n           && l1 != 254)            // 'union'\n          {\n            break;\n          }\n          whitespace();\n          parse_FTStopWordsInclExcl();\n        }\n        break;\n      default:\n        whitespace();\n        parse_FTStopWords();\n        for (;;)\n        {\n          lookahead1W(218);         // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n          if (l1 != 131             // 'except'\n           && l1 != 254)            // 'union'\n          {\n            break;\n          }\n          whitespace();\n          parse_FTStopWordsInclExcl();\n        }\n      }\n      break;\n    default:\n      shift(188);                   // 'no'\n      lookahead1W(75);              // S^WS | '(:' | 'stop'\n      shift(239);                   // 'stop'\n      lookahead1W(86);              // S^WS | '(:' | 'words'\n      shift(273);                   // 'words'\n    }\n    eventHandler.endNonterminal(\"FTStopWordOption\", e0);\n  }\n\n  function try_FTStopWordOption()\n  {\n    switch (l1)\n    {\n    case 239:                       // 'stop'\n      shiftT(239);                  // 'stop'\n      lookahead1W(86);              // S^WS | '(:' | 'words'\n      shiftT(273);                  // 'words'\n      lookahead1W(142);             // S^WS | '(' | '(:' | 'at' | 'default'\n      switch (l1)\n      {\n      case 109:                     // 'default'\n        shiftT(109);                // 'default'\n        for (;;)\n        {\n          lookahead1W(218);         // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n          if (l1 != 131             // 'except'\n           && l1 != 254)            // 'union'\n          {\n            break;\n          }\n          try_FTStopWordsInclExcl();\n        }\n        break;\n      default:\n        try_FTStopWords();\n        for (;;)\n        {\n          lookahead1W(218);         // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |\n          if (l1 != 131             // 'except'\n           && l1 != 254)            // 'union'\n          {\n            break;\n          }\n          try_FTStopWordsInclExcl();\n        }\n      }\n      break;\n    default:\n      shiftT(188);                  // 'no'\n      lookahead1W(75);              // S^WS | '(:' | 'stop'\n      shiftT(239);                  // 'stop'\n      lookahead1W(86);              // S^WS | '(:' | 'words'\n      shiftT(273);                  // 'words'\n    }\n  }\n\n  function parse_FTStopWords()\n  {\n    eventHandler.startNonterminal(\"FTStopWords\", e0);\n    switch (l1)\n    {\n    case 81:                        // 'at'\n      shift(81);                    // 'at'\n      lookahead1W(15);              // URILiteral | S^WS | '(:'\n      shift(7);                     // URILiteral\n      break;\n    default:\n      shift(34);                    // '('\n      lookahead1W(17);              // StringLiteral | S^WS | '(:'\n      shift(11);                    // StringLiteral\n      for (;;)\n      {\n        lookahead1W(101);           // S^WS | '(:' | ')' | ','\n        if (l1 != 41)               // ','\n        {\n          break;\n        }\n        shift(41);                  // ','\n        lookahead1W(17);            // StringLiteral | S^WS | '(:'\n        shift(11);                  // StringLiteral\n      }\n      shift(37);                    // ')'\n    }\n    eventHandler.endNonterminal(\"FTStopWords\", e0);\n  }\n\n  function try_FTStopWords()\n  {\n    switch (l1)\n    {\n    case 81:                        // 'at'\n      shiftT(81);                   // 'at'\n      lookahead1W(15);              // URILiteral | S^WS | '(:'\n      shiftT(7);                    // URILiteral\n      break;\n    default:\n      shiftT(34);                   // '('\n      lookahead1W(17);              // StringLiteral | S^WS | '(:'\n      shiftT(11);                   // StringLiteral\n      for (;;)\n      {\n        lookahead1W(101);           // S^WS | '(:' | ')' | ','\n        if (l1 != 41)               // ','\n        {\n          break;\n        }\n        shiftT(41);                 // ','\n        lookahead1W(17);            // StringLiteral | S^WS | '(:'\n        shiftT(11);                 // StringLiteral\n      }\n      shiftT(37);                   // ')'\n    }\n  }\n\n  function parse_FTStopWordsInclExcl()\n  {\n    eventHandler.startNonterminal(\"FTStopWordsInclExcl\", e0);\n    switch (l1)\n    {\n    case 254:                       // 'union'\n      shift(254);                   // 'union'\n      break;\n    default:\n      shift(131);                   // 'except'\n    }\n    lookahead1W(99);                // S^WS | '(' | '(:' | 'at'\n    whitespace();\n    parse_FTStopWords();\n    eventHandler.endNonterminal(\"FTStopWordsInclExcl\", e0);\n  }\n\n  function try_FTStopWordsInclExcl()\n  {\n    switch (l1)\n    {\n    case 254:                       // 'union'\n      shiftT(254);                  // 'union'\n      break;\n    default:\n      shiftT(131);                  // 'except'\n    }\n    lookahead1W(99);                // S^WS | '(' | '(:' | 'at'\n    try_FTStopWords();\n  }\n\n  function parse_FTLanguageOption()\n  {\n    eventHandler.startNonterminal(\"FTLanguageOption\", e0);\n    shift(169);                     // 'language'\n    lookahead1W(17);                // StringLiteral | S^WS | '(:'\n    shift(11);                      // StringLiteral\n    eventHandler.endNonterminal(\"FTLanguageOption\", e0);\n  }\n\n  function try_FTLanguageOption()\n  {\n    shiftT(169);                    // 'language'\n    lookahead1W(17);                // StringLiteral | S^WS | '(:'\n    shiftT(11);                     // StringLiteral\n  }\n\n  function parse_FTWildCardOption()\n  {\n    eventHandler.startNonterminal(\"FTWildCardOption\", e0);\n    switch (l1)\n    {\n    case 268:                       // 'wildcards'\n      shift(268);                   // 'wildcards'\n      break;\n    default:\n      shift(188);                   // 'no'\n      lookahead1W(84);              // S^WS | '(:' | 'wildcards'\n      shift(268);                   // 'wildcards'\n    }\n    eventHandler.endNonterminal(\"FTWildCardOption\", e0);\n  }\n\n  function try_FTWildCardOption()\n  {\n    switch (l1)\n    {\n    case 268:                       // 'wildcards'\n      shiftT(268);                  // 'wildcards'\n      break;\n    default:\n      shiftT(188);                  // 'no'\n      lookahead1W(84);              // S^WS | '(:' | 'wildcards'\n      shiftT(268);                  // 'wildcards'\n    }\n  }\n\n  function parse_FTExtensionOption()\n  {\n    eventHandler.startNonterminal(\"FTExtensionOption\", e0);\n    shift(199);                     // 'option'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_EQName();\n    lookahead1W(17);                // StringLiteral | S^WS | '(:'\n    shift(11);                      // StringLiteral\n    eventHandler.endNonterminal(\"FTExtensionOption\", e0);\n  }\n\n  function try_FTExtensionOption()\n  {\n    shiftT(199);                    // 'option'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_EQName();\n    lookahead1W(17);                // StringLiteral | S^WS | '(:'\n    shiftT(11);                     // StringLiteral\n  }\n\n  function parse_FTIgnoreOption()\n  {\n    eventHandler.startNonterminal(\"FTIgnoreOption\", e0);\n    shift(271);                     // 'without'\n    lookahead1W(42);                // S^WS | '(:' | 'content'\n    shift(100);                     // 'content'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_UnionExpr();\n    eventHandler.endNonterminal(\"FTIgnoreOption\", e0);\n  }\n\n  function try_FTIgnoreOption()\n  {\n    shiftT(271);                    // 'without'\n    lookahead1W(42);                // S^WS | '(:' | 'content'\n    shiftT(100);                    // 'content'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_UnionExpr();\n  }\n\n  function parse_CollectionDecl()\n  {\n    eventHandler.startNonterminal(\"CollectionDecl\", e0);\n    shift(95);                      // 'collection'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_EQName();\n    lookahead1W(107);               // S^WS | '(:' | ';' | 'as'\n    if (l1 == 79)                   // 'as'\n    {\n      whitespace();\n      parse_CollectionTypeDecl();\n    }\n    eventHandler.endNonterminal(\"CollectionDecl\", e0);\n  }\n\n  function parse_CollectionTypeDecl()\n  {\n    eventHandler.startNonterminal(\"CollectionTypeDecl\", e0);\n    shift(79);                      // 'as'\n    lookahead1W(178);               // S^WS | '(:' | 'attribute' | 'comment' | 'document-node' | 'element' |\n    whitespace();\n    parse_KindTest();\n    lookahead1W(156);               // S^WS | '(:' | '*' | '+' | ';' | '?'\n    if (l1 != 53)                   // ';'\n    {\n      whitespace();\n      parse_OccurrenceIndicator();\n    }\n    eventHandler.endNonterminal(\"CollectionTypeDecl\", e0);\n  }\n\n  function parse_IndexName()\n  {\n    eventHandler.startNonterminal(\"IndexName\", e0);\n    parse_EQName();\n    eventHandler.endNonterminal(\"IndexName\", e0);\n  }\n\n  function parse_IndexDomainExpr()\n  {\n    eventHandler.startNonterminal(\"IndexDomainExpr\", e0);\n    parse_PathExpr();\n    eventHandler.endNonterminal(\"IndexDomainExpr\", e0);\n  }\n\n  function parse_IndexKeySpec()\n  {\n    eventHandler.startNonterminal(\"IndexKeySpec\", e0);\n    parse_IndexKeyExpr();\n    if (l1 == 79)                   // 'as'\n    {\n      whitespace();\n      parse_IndexKeyTypeDecl();\n    }\n    lookahead1W(146);               // S^WS | '(:' | ',' | ';' | 'collation'\n    if (l1 == 94)                   // 'collation'\n    {\n      whitespace();\n      parse_IndexKeyCollation();\n    }\n    eventHandler.endNonterminal(\"IndexKeySpec\", e0);\n  }\n\n  function parse_IndexKeyExpr()\n  {\n    eventHandler.startNonterminal(\"IndexKeyExpr\", e0);\n    parse_PathExpr();\n    eventHandler.endNonterminal(\"IndexKeyExpr\", e0);\n  }\n\n  function parse_IndexKeyTypeDecl()\n  {\n    eventHandler.startNonterminal(\"IndexKeyTypeDecl\", e0);\n    shift(79);                      // 'as'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_AtomicType();\n    lookahead1W(169);               // S^WS | '(:' | '*' | '+' | ',' | ';' | '?' | 'collation'\n    if (l1 == 39                    // '*'\n     || l1 == 40                    // '+'\n     || l1 == 64)                   // '?'\n    {\n      whitespace();\n      parse_OccurrenceIndicator();\n    }\n    eventHandler.endNonterminal(\"IndexKeyTypeDecl\", e0);\n  }\n\n  function parse_AtomicType()\n  {\n    eventHandler.startNonterminal(\"AtomicType\", e0);\n    parse_EQName();\n    eventHandler.endNonterminal(\"AtomicType\", e0);\n  }\n\n  function parse_IndexKeyCollation()\n  {\n    eventHandler.startNonterminal(\"IndexKeyCollation\", e0);\n    shift(94);                      // 'collation'\n    lookahead1W(15);                // URILiteral | S^WS | '(:'\n    shift(7);                       // URILiteral\n    eventHandler.endNonterminal(\"IndexKeyCollation\", e0);\n  }\n\n  function parse_IndexDecl()\n  {\n    eventHandler.startNonterminal(\"IndexDecl\", e0);\n    shift(155);                     // 'index'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_IndexName();\n    lookahead1W(65);                // S^WS | '(:' | 'on'\n    shift(197);                     // 'on'\n    lookahead1W(63);                // S^WS | '(:' | 'nodes'\n    shift(192);                     // 'nodes'\n    lookahead1W(266);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_IndexDomainExpr();\n    shift(87);                      // 'by'\n    lookahead1W(266);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_IndexKeySpec();\n    for (;;)\n    {\n      lookahead1W(103);             // S^WS | '(:' | ',' | ';'\n      if (l1 != 41)                 // ','\n      {\n        break;\n      }\n      shift(41);                    // ','\n      lookahead1W(266);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_IndexKeySpec();\n    }\n    eventHandler.endNonterminal(\"IndexDecl\", e0);\n  }\n\n  function parse_ICDecl()\n  {\n    eventHandler.startNonterminal(\"ICDecl\", e0);\n    shift(161);                     // 'integrity'\n    lookahead1W(40);                // S^WS | '(:' | 'constraint'\n    shift(97);                      // 'constraint'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_EQName();\n    lookahead1W(120);               // S^WS | '(:' | 'foreign' | 'on'\n    switch (l1)\n    {\n    case 197:                       // 'on'\n      whitespace();\n      parse_ICCollection();\n      break;\n    default:\n      whitespace();\n      parse_ICForeignKey();\n    }\n    eventHandler.endNonterminal(\"ICDecl\", e0);\n  }\n\n  function parse_ICCollection()\n  {\n    eventHandler.startNonterminal(\"ICCollection\", e0);\n    shift(197);                     // 'on'\n    lookahead1W(39);                // S^WS | '(:' | 'collection'\n    shift(95);                      // 'collection'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_EQName();\n    lookahead1W(140);               // S^WS | '$' | '(:' | 'foreach' | 'node'\n    switch (l1)\n    {\n    case 31:                        // '$'\n      whitespace();\n      parse_ICCollSequence();\n      break;\n    case 191:                       // 'node'\n      whitespace();\n      parse_ICCollSequenceUnique();\n      break;\n    default:\n      whitespace();\n      parse_ICCollNode();\n    }\n    eventHandler.endNonterminal(\"ICCollection\", e0);\n  }\n\n  function parse_ICCollSequence()\n  {\n    eventHandler.startNonterminal(\"ICCollSequence\", e0);\n    parse_VarRef();\n    lookahead1W(37);                // S^WS | '(:' | 'check'\n    shift(92);                      // 'check'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"ICCollSequence\", e0);\n  }\n\n  function parse_ICCollSequenceUnique()\n  {\n    eventHandler.startNonterminal(\"ICCollSequenceUnique\", e0);\n    shift(191);                     // 'node'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    whitespace();\n    parse_VarRef();\n    lookahead1W(37);                // S^WS | '(:' | 'check'\n    shift(92);                      // 'check'\n    lookahead1W(80);                // S^WS | '(:' | 'unique'\n    shift(255);                     // 'unique'\n    lookahead1W(57);                // S^WS | '(:' | 'key'\n    shift(168);                     // 'key'\n    lookahead1W(266);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_PathExpr();\n    eventHandler.endNonterminal(\"ICCollSequenceUnique\", e0);\n  }\n\n  function parse_ICCollNode()\n  {\n    eventHandler.startNonterminal(\"ICCollNode\", e0);\n    shift(138);                     // 'foreach'\n    lookahead1W(62);                // S^WS | '(:' | 'node'\n    shift(191);                     // 'node'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    whitespace();\n    parse_VarRef();\n    lookahead1W(37);                // S^WS | '(:' | 'check'\n    shift(92);                      // 'check'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"ICCollNode\", e0);\n  }\n\n  function parse_ICForeignKey()\n  {\n    eventHandler.startNonterminal(\"ICForeignKey\", e0);\n    shift(139);                     // 'foreign'\n    lookahead1W(57);                // S^WS | '(:' | 'key'\n    shift(168);                     // 'key'\n    lookahead1W(51);                // S^WS | '(:' | 'from'\n    whitespace();\n    parse_ICForeignKeySource();\n    whitespace();\n    parse_ICForeignKeyTarget();\n    eventHandler.endNonterminal(\"ICForeignKey\", e0);\n  }\n\n  function parse_ICForeignKeySource()\n  {\n    eventHandler.startNonterminal(\"ICForeignKeySource\", e0);\n    shift(140);                     // 'from'\n    lookahead1W(39);                // S^WS | '(:' | 'collection'\n    whitespace();\n    parse_ICForeignKeyValues();\n    eventHandler.endNonterminal(\"ICForeignKeySource\", e0);\n  }\n\n  function parse_ICForeignKeyTarget()\n  {\n    eventHandler.startNonterminal(\"ICForeignKeyTarget\", e0);\n    shift(248);                     // 'to'\n    lookahead1W(39);                // S^WS | '(:' | 'collection'\n    whitespace();\n    parse_ICForeignKeyValues();\n    eventHandler.endNonterminal(\"ICForeignKeyTarget\", e0);\n  }\n\n  function parse_ICForeignKeyValues()\n  {\n    eventHandler.startNonterminal(\"ICForeignKeyValues\", e0);\n    shift(95);                      // 'collection'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_EQName();\n    lookahead1W(62);                // S^WS | '(:' | 'node'\n    shift(191);                     // 'node'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    whitespace();\n    parse_VarRef();\n    lookahead1W(57);                // S^WS | '(:' | 'key'\n    shift(168);                     // 'key'\n    lookahead1W(266);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_PathExpr();\n    eventHandler.endNonterminal(\"ICForeignKeyValues\", e0);\n  }\n\n  function try_Comment()\n  {\n    shiftT(36);                     // '(:'\n    for (;;)\n    {\n      lookahead1(89);               // CommentContents | '(:' | ':)'\n      if (l1 == 50)                 // ':)'\n      {\n        break;\n      }\n      switch (l1)\n      {\n      case 24:                      // CommentContents\n        shiftT(24);                 // CommentContents\n        break;\n      default:\n        try_Comment();\n      }\n    }\n    shiftT(50);                     // ':)'\n  }\n\n  function try_Whitespace()\n  {\n    switch (l1)\n    {\n    case 22:                        // S^WS\n      shiftT(22);                   // S^WS\n      break;\n    default:\n      try_Comment();\n    }\n  }\n\n  function parse_EQName()\n  {\n    eventHandler.startNonterminal(\"EQName\", e0);\n    lookahead1(250);                // EQName^Token | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' | 'and' |\n    switch (l1)\n    {\n    case 82:                        // 'attribute'\n      shift(82);                    // 'attribute'\n      break;\n    case 96:                        // 'comment'\n      shift(96);                    // 'comment'\n      break;\n    case 120:                       // 'document-node'\n      shift(120);                   // 'document-node'\n      break;\n    case 121:                       // 'element'\n      shift(121);                   // 'element'\n      break;\n    case 124:                       // 'empty-sequence'\n      shift(124);                   // 'empty-sequence'\n      break;\n    case 145:                       // 'function'\n      shift(145);                   // 'function'\n      break;\n    case 152:                       // 'if'\n      shift(152);                   // 'if'\n      break;\n    case 165:                       // 'item'\n      shift(165);                   // 'item'\n      break;\n    case 185:                       // 'namespace-node'\n      shift(185);                   // 'namespace-node'\n      break;\n    case 191:                       // 'node'\n      shift(191);                   // 'node'\n      break;\n    case 216:                       // 'processing-instruction'\n      shift(216);                   // 'processing-instruction'\n      break;\n    case 226:                       // 'schema-attribute'\n      shift(226);                   // 'schema-attribute'\n      break;\n    case 227:                       // 'schema-element'\n      shift(227);                   // 'schema-element'\n      break;\n    case 243:                       // 'switch'\n      shift(243);                   // 'switch'\n      break;\n    case 244:                       // 'text'\n      shift(244);                   // 'text'\n      break;\n    case 253:                       // 'typeswitch'\n      shift(253);                   // 'typeswitch'\n      break;\n    case 78:                        // 'array'\n      shift(78);                    // 'array'\n      break;\n    case 167:                       // 'json-item'\n      shift(167);                   // 'json-item'\n      break;\n    case 242:                       // 'structured-item'\n      shift(242);                   // 'structured-item'\n      break;\n    default:\n      parse_FunctionName();\n    }\n    eventHandler.endNonterminal(\"EQName\", e0);\n  }\n\n  function try_EQName()\n  {\n    lookahead1(250);                // EQName^Token | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' | 'and' |\n    switch (l1)\n    {\n    case 82:                        // 'attribute'\n      shiftT(82);                   // 'attribute'\n      break;\n    case 96:                        // 'comment'\n      shiftT(96);                   // 'comment'\n      break;\n    case 120:                       // 'document-node'\n      shiftT(120);                  // 'document-node'\n      break;\n    case 121:                       // 'element'\n      shiftT(121);                  // 'element'\n      break;\n    case 124:                       // 'empty-sequence'\n      shiftT(124);                  // 'empty-sequence'\n      break;\n    case 145:                       // 'function'\n      shiftT(145);                  // 'function'\n      break;\n    case 152:                       // 'if'\n      shiftT(152);                  // 'if'\n      break;\n    case 165:                       // 'item'\n      shiftT(165);                  // 'item'\n      break;\n    case 185:                       // 'namespace-node'\n      shiftT(185);                  // 'namespace-node'\n      break;\n    case 191:                       // 'node'\n      shiftT(191);                  // 'node'\n      break;\n    case 216:                       // 'processing-instruction'\n      shiftT(216);                  // 'processing-instruction'\n      break;\n    case 226:                       // 'schema-attribute'\n      shiftT(226);                  // 'schema-attribute'\n      break;\n    case 227:                       // 'schema-element'\n      shiftT(227);                  // 'schema-element'\n      break;\n    case 243:                       // 'switch'\n      shiftT(243);                  // 'switch'\n      break;\n    case 244:                       // 'text'\n      shiftT(244);                  // 'text'\n      break;\n    case 253:                       // 'typeswitch'\n      shiftT(253);                  // 'typeswitch'\n      break;\n    case 78:                        // 'array'\n      shiftT(78);                   // 'array'\n      break;\n    case 167:                       // 'json-item'\n      shiftT(167);                  // 'json-item'\n      break;\n    case 242:                       // 'structured-item'\n      shiftT(242);                  // 'structured-item'\n      break;\n    default:\n      try_FunctionName();\n    }\n  }\n\n  function parse_FunctionName()\n  {\n    eventHandler.startNonterminal(\"FunctionName\", e0);\n    switch (l1)\n    {\n    case 6:                         // EQName^Token\n      shift(6);                     // EQName^Token\n      break;\n    case 70:                        // 'after'\n      shift(70);                    // 'after'\n      break;\n    case 73:                        // 'ancestor'\n      shift(73);                    // 'ancestor'\n      break;\n    case 74:                        // 'ancestor-or-self'\n      shift(74);                    // 'ancestor-or-self'\n      break;\n    case 75:                        // 'and'\n      shift(75);                    // 'and'\n      break;\n    case 79:                        // 'as'\n      shift(79);                    // 'as'\n      break;\n    case 80:                        // 'ascending'\n      shift(80);                    // 'ascending'\n      break;\n    case 84:                        // 'before'\n      shift(84);                    // 'before'\n      break;\n    case 88:                        // 'case'\n      shift(88);                    // 'case'\n      break;\n    case 89:                        // 'cast'\n      shift(89);                    // 'cast'\n      break;\n    case 90:                        // 'castable'\n      shift(90);                    // 'castable'\n      break;\n    case 93:                        // 'child'\n      shift(93);                    // 'child'\n      break;\n    case 94:                        // 'collation'\n      shift(94);                    // 'collation'\n      break;\n    case 103:                       // 'copy'\n      shift(103);                   // 'copy'\n      break;\n    case 105:                       // 'count'\n      shift(105);                   // 'count'\n      break;\n    case 108:                       // 'declare'\n      shift(108);                   // 'declare'\n      break;\n    case 109:                       // 'default'\n      shift(109);                   // 'default'\n      break;\n    case 110:                       // 'delete'\n      shift(110);                   // 'delete'\n      break;\n    case 111:                       // 'descendant'\n      shift(111);                   // 'descendant'\n      break;\n    case 112:                       // 'descendant-or-self'\n      shift(112);                   // 'descendant-or-self'\n      break;\n    case 113:                       // 'descending'\n      shift(113);                   // 'descending'\n      break;\n    case 118:                       // 'div'\n      shift(118);                   // 'div'\n      break;\n    case 119:                       // 'document'\n      shift(119);                   // 'document'\n      break;\n    case 122:                       // 'else'\n      shift(122);                   // 'else'\n      break;\n    case 123:                       // 'empty'\n      shift(123);                   // 'empty'\n      break;\n    case 126:                       // 'end'\n      shift(126);                   // 'end'\n      break;\n    case 128:                       // 'eq'\n      shift(128);                   // 'eq'\n      break;\n    case 129:                       // 'every'\n      shift(129);                   // 'every'\n      break;\n    case 131:                       // 'except'\n      shift(131);                   // 'except'\n      break;\n    case 134:                       // 'first'\n      shift(134);                   // 'first'\n      break;\n    case 135:                       // 'following'\n      shift(135);                   // 'following'\n      break;\n    case 136:                       // 'following-sibling'\n      shift(136);                   // 'following-sibling'\n      break;\n    case 137:                       // 'for'\n      shift(137);                   // 'for'\n      break;\n    case 146:                       // 'ge'\n      shift(146);                   // 'ge'\n      break;\n    case 148:                       // 'group'\n      shift(148);                   // 'group'\n      break;\n    case 150:                       // 'gt'\n      shift(150);                   // 'gt'\n      break;\n    case 151:                       // 'idiv'\n      shift(151);                   // 'idiv'\n      break;\n    case 153:                       // 'import'\n      shift(153);                   // 'import'\n      break;\n    case 159:                       // 'insert'\n      shift(159);                   // 'insert'\n      break;\n    case 160:                       // 'instance'\n      shift(160);                   // 'instance'\n      break;\n    case 162:                       // 'intersect'\n      shift(162);                   // 'intersect'\n      break;\n    case 163:                       // 'into'\n      shift(163);                   // 'into'\n      break;\n    case 164:                       // 'is'\n      shift(164);                   // 'is'\n      break;\n    case 170:                       // 'last'\n      shift(170);                   // 'last'\n      break;\n    case 172:                       // 'le'\n      shift(172);                   // 'le'\n      break;\n    case 174:                       // 'let'\n      shift(174);                   // 'let'\n      break;\n    case 178:                       // 'lt'\n      shift(178);                   // 'lt'\n      break;\n    case 180:                       // 'mod'\n      shift(180);                   // 'mod'\n      break;\n    case 181:                       // 'modify'\n      shift(181);                   // 'modify'\n      break;\n    case 182:                       // 'module'\n      shift(182);                   // 'module'\n      break;\n    case 184:                       // 'namespace'\n      shift(184);                   // 'namespace'\n      break;\n    case 186:                       // 'ne'\n      shift(186);                   // 'ne'\n      break;\n    case 198:                       // 'only'\n      shift(198);                   // 'only'\n      break;\n    case 200:                       // 'or'\n      shift(200);                   // 'or'\n      break;\n    case 201:                       // 'order'\n      shift(201);                   // 'order'\n      break;\n    case 202:                       // 'ordered'\n      shift(202);                   // 'ordered'\n      break;\n    case 206:                       // 'parent'\n      shift(206);                   // 'parent'\n      break;\n    case 212:                       // 'preceding'\n      shift(212);                   // 'preceding'\n      break;\n    case 213:                       // 'preceding-sibling'\n      shift(213);                   // 'preceding-sibling'\n      break;\n    case 218:                       // 'rename'\n      shift(218);                   // 'rename'\n      break;\n    case 219:                       // 'replace'\n      shift(219);                   // 'replace'\n      break;\n    case 220:                       // 'return'\n      shift(220);                   // 'return'\n      break;\n    case 224:                       // 'satisfies'\n      shift(224);                   // 'satisfies'\n      break;\n    case 229:                       // 'self'\n      shift(229);                   // 'self'\n      break;\n    case 235:                       // 'some'\n      shift(235);                   // 'some'\n      break;\n    case 236:                       // 'stable'\n      shift(236);                   // 'stable'\n      break;\n    case 237:                       // 'start'\n      shift(237);                   // 'start'\n      break;\n    case 248:                       // 'to'\n      shift(248);                   // 'to'\n      break;\n    case 249:                       // 'treat'\n      shift(249);                   // 'treat'\n      break;\n    case 250:                       // 'try'\n      shift(250);                   // 'try'\n      break;\n    case 254:                       // 'union'\n      shift(254);                   // 'union'\n      break;\n    case 256:                       // 'unordered'\n      shift(256);                   // 'unordered'\n      break;\n    case 260:                       // 'validate'\n      shift(260);                   // 'validate'\n      break;\n    case 266:                       // 'where'\n      shift(266);                   // 'where'\n      break;\n    case 270:                       // 'with'\n      shift(270);                   // 'with'\n      break;\n    case 274:                       // 'xquery'\n      shift(274);                   // 'xquery'\n      break;\n    case 72:                        // 'allowing'\n      shift(72);                    // 'allowing'\n      break;\n    case 81:                        // 'at'\n      shift(81);                    // 'at'\n      break;\n    case 83:                        // 'base-uri'\n      shift(83);                    // 'base-uri'\n      break;\n    case 85:                        // 'boundary-space'\n      shift(85);                    // 'boundary-space'\n      break;\n    case 86:                        // 'break'\n      shift(86);                    // 'break'\n      break;\n    case 91:                        // 'catch'\n      shift(91);                    // 'catch'\n      break;\n    case 98:                        // 'construction'\n      shift(98);                    // 'construction'\n      break;\n    case 101:                       // 'context'\n      shift(101);                   // 'context'\n      break;\n    case 102:                       // 'continue'\n      shift(102);                   // 'continue'\n      break;\n    case 104:                       // 'copy-namespaces'\n      shift(104);                   // 'copy-namespaces'\n      break;\n    case 106:                       // 'decimal-format'\n      shift(106);                   // 'decimal-format'\n      break;\n    case 125:                       // 'encoding'\n      shift(125);                   // 'encoding'\n      break;\n    case 132:                       // 'exit'\n      shift(132);                   // 'exit'\n      break;\n    case 133:                       // 'external'\n      shift(133);                   // 'external'\n      break;\n    case 141:                       // 'ft-option'\n      shift(141);                   // 'ft-option'\n      break;\n    case 154:                       // 'in'\n      shift(154);                   // 'in'\n      break;\n    case 155:                       // 'index'\n      shift(155);                   // 'index'\n      break;\n    case 161:                       // 'integrity'\n      shift(161);                   // 'integrity'\n      break;\n    case 171:                       // 'lax'\n      shift(171);                   // 'lax'\n      break;\n    case 192:                       // 'nodes'\n      shift(192);                   // 'nodes'\n      break;\n    case 199:                       // 'option'\n      shift(199);                   // 'option'\n      break;\n    case 203:                       // 'ordering'\n      shift(203);                   // 'ordering'\n      break;\n    case 222:                       // 'revalidation'\n      shift(222);                   // 'revalidation'\n      break;\n    case 225:                       // 'schema'\n      shift(225);                   // 'schema'\n      break;\n    case 228:                       // 'score'\n      shift(228);                   // 'score'\n      break;\n    case 234:                       // 'sliding'\n      shift(234);                   // 'sliding'\n      break;\n    case 240:                       // 'strict'\n      shift(240);                   // 'strict'\n      break;\n    case 251:                       // 'tumbling'\n      shift(251);                   // 'tumbling'\n      break;\n    case 252:                       // 'type'\n      shift(252);                   // 'type'\n      break;\n    case 257:                       // 'updating'\n      shift(257);                   // 'updating'\n      break;\n    case 261:                       // 'value'\n      shift(261);                   // 'value'\n      break;\n    case 262:                       // 'variable'\n      shift(262);                   // 'variable'\n      break;\n    case 263:                       // 'version'\n      shift(263);                   // 'version'\n      break;\n    case 267:                       // 'while'\n      shift(267);                   // 'while'\n      break;\n    case 97:                        // 'constraint'\n      shift(97);                    // 'constraint'\n      break;\n    case 176:                       // 'loop'\n      shift(176);                   // 'loop'\n      break;\n    case 221:                       // 'returning'\n      shift(221);                   // 'returning'\n      break;\n    case 77:                        // 'append'\n      shift(77);                    // 'append'\n      break;\n    case 166:                       // 'json'\n      shift(166);                   // 'json'\n      break;\n    default:\n      shift(194);                   // 'object'\n    }\n    eventHandler.endNonterminal(\"FunctionName\", e0);\n  }\n\n  function try_FunctionName()\n  {\n    switch (l1)\n    {\n    case 6:                         // EQName^Token\n      shiftT(6);                    // EQName^Token\n      break;\n    case 70:                        // 'after'\n      shiftT(70);                   // 'after'\n      break;\n    case 73:                        // 'ancestor'\n      shiftT(73);                   // 'ancestor'\n      break;\n    case 74:                        // 'ancestor-or-self'\n      shiftT(74);                   // 'ancestor-or-self'\n      break;\n    case 75:                        // 'and'\n      shiftT(75);                   // 'and'\n      break;\n    case 79:                        // 'as'\n      shiftT(79);                   // 'as'\n      break;\n    case 80:                        // 'ascending'\n      shiftT(80);                   // 'ascending'\n      break;\n    case 84:                        // 'before'\n      shiftT(84);                   // 'before'\n      break;\n    case 88:                        // 'case'\n      shiftT(88);                   // 'case'\n      break;\n    case 89:                        // 'cast'\n      shiftT(89);                   // 'cast'\n      break;\n    case 90:                        // 'castable'\n      shiftT(90);                   // 'castable'\n      break;\n    case 93:                        // 'child'\n      shiftT(93);                   // 'child'\n      break;\n    case 94:                        // 'collation'\n      shiftT(94);                   // 'collation'\n      break;\n    case 103:                       // 'copy'\n      shiftT(103);                  // 'copy'\n      break;\n    case 105:                       // 'count'\n      shiftT(105);                  // 'count'\n      break;\n    case 108:                       // 'declare'\n      shiftT(108);                  // 'declare'\n      break;\n    case 109:                       // 'default'\n      shiftT(109);                  // 'default'\n      break;\n    case 110:                       // 'delete'\n      shiftT(110);                  // 'delete'\n      break;\n    case 111:                       // 'descendant'\n      shiftT(111);                  // 'descendant'\n      break;\n    case 112:                       // 'descendant-or-self'\n      shiftT(112);                  // 'descendant-or-self'\n      break;\n    case 113:                       // 'descending'\n      shiftT(113);                  // 'descending'\n      break;\n    case 118:                       // 'div'\n      shiftT(118);                  // 'div'\n      break;\n    case 119:                       // 'document'\n      shiftT(119);                  // 'document'\n      break;\n    case 122:                       // 'else'\n      shiftT(122);                  // 'else'\n      break;\n    case 123:                       // 'empty'\n      shiftT(123);                  // 'empty'\n      break;\n    case 126:                       // 'end'\n      shiftT(126);                  // 'end'\n      break;\n    case 128:                       // 'eq'\n      shiftT(128);                  // 'eq'\n      break;\n    case 129:                       // 'every'\n      shiftT(129);                  // 'every'\n      break;\n    case 131:                       // 'except'\n      shiftT(131);                  // 'except'\n      break;\n    case 134:                       // 'first'\n      shiftT(134);                  // 'first'\n      break;\n    case 135:                       // 'following'\n      shiftT(135);                  // 'following'\n      break;\n    case 136:                       // 'following-sibling'\n      shiftT(136);                  // 'following-sibling'\n      break;\n    case 137:                       // 'for'\n      shiftT(137);                  // 'for'\n      break;\n    case 146:                       // 'ge'\n      shiftT(146);                  // 'ge'\n      break;\n    case 148:                       // 'group'\n      shiftT(148);                  // 'group'\n      break;\n    case 150:                       // 'gt'\n      shiftT(150);                  // 'gt'\n      break;\n    case 151:                       // 'idiv'\n      shiftT(151);                  // 'idiv'\n      break;\n    case 153:                       // 'import'\n      shiftT(153);                  // 'import'\n      break;\n    case 159:                       // 'insert'\n      shiftT(159);                  // 'insert'\n      break;\n    case 160:                       // 'instance'\n      shiftT(160);                  // 'instance'\n      break;\n    case 162:                       // 'intersect'\n      shiftT(162);                  // 'intersect'\n      break;\n    case 163:                       // 'into'\n      shiftT(163);                  // 'into'\n      break;\n    case 164:                       // 'is'\n      shiftT(164);                  // 'is'\n      break;\n    case 170:                       // 'last'\n      shiftT(170);                  // 'last'\n      break;\n    case 172:                       // 'le'\n      shiftT(172);                  // 'le'\n      break;\n    case 174:                       // 'let'\n      shiftT(174);                  // 'let'\n      break;\n    case 178:                       // 'lt'\n      shiftT(178);                  // 'lt'\n      break;\n    case 180:                       // 'mod'\n      shiftT(180);                  // 'mod'\n      break;\n    case 181:                       // 'modify'\n      shiftT(181);                  // 'modify'\n      break;\n    case 182:                       // 'module'\n      shiftT(182);                  // 'module'\n      break;\n    case 184:                       // 'namespace'\n      shiftT(184);                  // 'namespace'\n      break;\n    case 186:                       // 'ne'\n      shiftT(186);                  // 'ne'\n      break;\n    case 198:                       // 'only'\n      shiftT(198);                  // 'only'\n      break;\n    case 200:                       // 'or'\n      shiftT(200);                  // 'or'\n      break;\n    case 201:                       // 'order'\n      shiftT(201);                  // 'order'\n      break;\n    case 202:                       // 'ordered'\n      shiftT(202);                  // 'ordered'\n      break;\n    case 206:                       // 'parent'\n      shiftT(206);                  // 'parent'\n      break;\n    case 212:                       // 'preceding'\n      shiftT(212);                  // 'preceding'\n      break;\n    case 213:                       // 'preceding-sibling'\n      shiftT(213);                  // 'preceding-sibling'\n      break;\n    case 218:                       // 'rename'\n      shiftT(218);                  // 'rename'\n      break;\n    case 219:                       // 'replace'\n      shiftT(219);                  // 'replace'\n      break;\n    case 220:                       // 'return'\n      shiftT(220);                  // 'return'\n      break;\n    case 224:                       // 'satisfies'\n      shiftT(224);                  // 'satisfies'\n      break;\n    case 229:                       // 'self'\n      shiftT(229);                  // 'self'\n      break;\n    case 235:                       // 'some'\n      shiftT(235);                  // 'some'\n      break;\n    case 236:                       // 'stable'\n      shiftT(236);                  // 'stable'\n      break;\n    case 237:                       // 'start'\n      shiftT(237);                  // 'start'\n      break;\n    case 248:                       // 'to'\n      shiftT(248);                  // 'to'\n      break;\n    case 249:                       // 'treat'\n      shiftT(249);                  // 'treat'\n      break;\n    case 250:                       // 'try'\n      shiftT(250);                  // 'try'\n      break;\n    case 254:                       // 'union'\n      shiftT(254);                  // 'union'\n      break;\n    case 256:                       // 'unordered'\n      shiftT(256);                  // 'unordered'\n      break;\n    case 260:                       // 'validate'\n      shiftT(260);                  // 'validate'\n      break;\n    case 266:                       // 'where'\n      shiftT(266);                  // 'where'\n      break;\n    case 270:                       // 'with'\n      shiftT(270);                  // 'with'\n      break;\n    case 274:                       // 'xquery'\n      shiftT(274);                  // 'xquery'\n      break;\n    case 72:                        // 'allowing'\n      shiftT(72);                   // 'allowing'\n      break;\n    case 81:                        // 'at'\n      shiftT(81);                   // 'at'\n      break;\n    case 83:                        // 'base-uri'\n      shiftT(83);                   // 'base-uri'\n      break;\n    case 85:                        // 'boundary-space'\n      shiftT(85);                   // 'boundary-space'\n      break;\n    case 86:                        // 'break'\n      shiftT(86);                   // 'break'\n      break;\n    case 91:                        // 'catch'\n      shiftT(91);                   // 'catch'\n      break;\n    case 98:                        // 'construction'\n      shiftT(98);                   // 'construction'\n      break;\n    case 101:                       // 'context'\n      shiftT(101);                  // 'context'\n      break;\n    case 102:                       // 'continue'\n      shiftT(102);                  // 'continue'\n      break;\n    case 104:                       // 'copy-namespaces'\n      shiftT(104);                  // 'copy-namespaces'\n      break;\n    case 106:                       // 'decimal-format'\n      shiftT(106);                  // 'decimal-format'\n      break;\n    case 125:                       // 'encoding'\n      shiftT(125);                  // 'encoding'\n      break;\n    case 132:                       // 'exit'\n      shiftT(132);                  // 'exit'\n      break;\n    case 133:                       // 'external'\n      shiftT(133);                  // 'external'\n      break;\n    case 141:                       // 'ft-option'\n      shiftT(141);                  // 'ft-option'\n      break;\n    case 154:                       // 'in'\n      shiftT(154);                  // 'in'\n      break;\n    case 155:                       // 'index'\n      shiftT(155);                  // 'index'\n      break;\n    case 161:                       // 'integrity'\n      shiftT(161);                  // 'integrity'\n      break;\n    case 171:                       // 'lax'\n      shiftT(171);                  // 'lax'\n      break;\n    case 192:                       // 'nodes'\n      shiftT(192);                  // 'nodes'\n      break;\n    case 199:                       // 'option'\n      shiftT(199);                  // 'option'\n      break;\n    case 203:                       // 'ordering'\n      shiftT(203);                  // 'ordering'\n      break;\n    case 222:                       // 'revalidation'\n      shiftT(222);                  // 'revalidation'\n      break;\n    case 225:                       // 'schema'\n      shiftT(225);                  // 'schema'\n      break;\n    case 228:                       // 'score'\n      shiftT(228);                  // 'score'\n      break;\n    case 234:                       // 'sliding'\n      shiftT(234);                  // 'sliding'\n      break;\n    case 240:                       // 'strict'\n      shiftT(240);                  // 'strict'\n      break;\n    case 251:                       // 'tumbling'\n      shiftT(251);                  // 'tumbling'\n      break;\n    case 252:                       // 'type'\n      shiftT(252);                  // 'type'\n      break;\n    case 257:                       // 'updating'\n      shiftT(257);                  // 'updating'\n      break;\n    case 261:                       // 'value'\n      shiftT(261);                  // 'value'\n      break;\n    case 262:                       // 'variable'\n      shiftT(262);                  // 'variable'\n      break;\n    case 263:                       // 'version'\n      shiftT(263);                  // 'version'\n      break;\n    case 267:                       // 'while'\n      shiftT(267);                  // 'while'\n      break;\n    case 97:                        // 'constraint'\n      shiftT(97);                   // 'constraint'\n      break;\n    case 176:                       // 'loop'\n      shiftT(176);                  // 'loop'\n      break;\n    case 221:                       // 'returning'\n      shiftT(221);                  // 'returning'\n      break;\n    case 77:                        // 'append'\n      shiftT(77);                   // 'append'\n      break;\n    case 166:                       // 'json'\n      shiftT(166);                  // 'json'\n      break;\n    default:\n      shiftT(194);                  // 'object'\n    }\n  }\n\n  function parse_NCName()\n  {\n    eventHandler.startNonterminal(\"NCName\", e0);\n    switch (l1)\n    {\n    case 19:                        // NCName^Token\n      shift(19);                    // NCName^Token\n      break;\n    case 70:                        // 'after'\n      shift(70);                    // 'after'\n      break;\n    case 75:                        // 'and'\n      shift(75);                    // 'and'\n      break;\n    case 79:                        // 'as'\n      shift(79);                    // 'as'\n      break;\n    case 80:                        // 'ascending'\n      shift(80);                    // 'ascending'\n      break;\n    case 84:                        // 'before'\n      shift(84);                    // 'before'\n      break;\n    case 88:                        // 'case'\n      shift(88);                    // 'case'\n      break;\n    case 89:                        // 'cast'\n      shift(89);                    // 'cast'\n      break;\n    case 90:                        // 'castable'\n      shift(90);                    // 'castable'\n      break;\n    case 94:                        // 'collation'\n      shift(94);                    // 'collation'\n      break;\n    case 105:                       // 'count'\n      shift(105);                   // 'count'\n      break;\n    case 109:                       // 'default'\n      shift(109);                   // 'default'\n      break;\n    case 113:                       // 'descending'\n      shift(113);                   // 'descending'\n      break;\n    case 118:                       // 'div'\n      shift(118);                   // 'div'\n      break;\n    case 122:                       // 'else'\n      shift(122);                   // 'else'\n      break;\n    case 123:                       // 'empty'\n      shift(123);                   // 'empty'\n      break;\n    case 126:                       // 'end'\n      shift(126);                   // 'end'\n      break;\n    case 128:                       // 'eq'\n      shift(128);                   // 'eq'\n      break;\n    case 131:                       // 'except'\n      shift(131);                   // 'except'\n      break;\n    case 137:                       // 'for'\n      shift(137);                   // 'for'\n      break;\n    case 146:                       // 'ge'\n      shift(146);                   // 'ge'\n      break;\n    case 148:                       // 'group'\n      shift(148);                   // 'group'\n      break;\n    case 150:                       // 'gt'\n      shift(150);                   // 'gt'\n      break;\n    case 151:                       // 'idiv'\n      shift(151);                   // 'idiv'\n      break;\n    case 160:                       // 'instance'\n      shift(160);                   // 'instance'\n      break;\n    case 162:                       // 'intersect'\n      shift(162);                   // 'intersect'\n      break;\n    case 163:                       // 'into'\n      shift(163);                   // 'into'\n      break;\n    case 164:                       // 'is'\n      shift(164);                   // 'is'\n      break;\n    case 172:                       // 'le'\n      shift(172);                   // 'le'\n      break;\n    case 174:                       // 'let'\n      shift(174);                   // 'let'\n      break;\n    case 178:                       // 'lt'\n      shift(178);                   // 'lt'\n      break;\n    case 180:                       // 'mod'\n      shift(180);                   // 'mod'\n      break;\n    case 181:                       // 'modify'\n      shift(181);                   // 'modify'\n      break;\n    case 186:                       // 'ne'\n      shift(186);                   // 'ne'\n      break;\n    case 198:                       // 'only'\n      shift(198);                   // 'only'\n      break;\n    case 200:                       // 'or'\n      shift(200);                   // 'or'\n      break;\n    case 201:                       // 'order'\n      shift(201);                   // 'order'\n      break;\n    case 220:                       // 'return'\n      shift(220);                   // 'return'\n      break;\n    case 224:                       // 'satisfies'\n      shift(224);                   // 'satisfies'\n      break;\n    case 236:                       // 'stable'\n      shift(236);                   // 'stable'\n      break;\n    case 237:                       // 'start'\n      shift(237);                   // 'start'\n      break;\n    case 248:                       // 'to'\n      shift(248);                   // 'to'\n      break;\n    case 249:                       // 'treat'\n      shift(249);                   // 'treat'\n      break;\n    case 254:                       // 'union'\n      shift(254);                   // 'union'\n      break;\n    case 266:                       // 'where'\n      shift(266);                   // 'where'\n      break;\n    case 270:                       // 'with'\n      shift(270);                   // 'with'\n      break;\n    case 73:                        // 'ancestor'\n      shift(73);                    // 'ancestor'\n      break;\n    case 74:                        // 'ancestor-or-self'\n      shift(74);                    // 'ancestor-or-self'\n      break;\n    case 82:                        // 'attribute'\n      shift(82);                    // 'attribute'\n      break;\n    case 93:                        // 'child'\n      shift(93);                    // 'child'\n      break;\n    case 96:                        // 'comment'\n      shift(96);                    // 'comment'\n      break;\n    case 103:                       // 'copy'\n      shift(103);                   // 'copy'\n      break;\n    case 108:                       // 'declare'\n      shift(108);                   // 'declare'\n      break;\n    case 110:                       // 'delete'\n      shift(110);                   // 'delete'\n      break;\n    case 111:                       // 'descendant'\n      shift(111);                   // 'descendant'\n      break;\n    case 112:                       // 'descendant-or-self'\n      shift(112);                   // 'descendant-or-self'\n      break;\n    case 119:                       // 'document'\n      shift(119);                   // 'document'\n      break;\n    case 120:                       // 'document-node'\n      shift(120);                   // 'document-node'\n      break;\n    case 121:                       // 'element'\n      shift(121);                   // 'element'\n      break;\n    case 124:                       // 'empty-sequence'\n      shift(124);                   // 'empty-sequence'\n      break;\n    case 129:                       // 'every'\n      shift(129);                   // 'every'\n      break;\n    case 134:                       // 'first'\n      shift(134);                   // 'first'\n      break;\n    case 135:                       // 'following'\n      shift(135);                   // 'following'\n      break;\n    case 136:                       // 'following-sibling'\n      shift(136);                   // 'following-sibling'\n      break;\n    case 145:                       // 'function'\n      shift(145);                   // 'function'\n      break;\n    case 152:                       // 'if'\n      shift(152);                   // 'if'\n      break;\n    case 153:                       // 'import'\n      shift(153);                   // 'import'\n      break;\n    case 159:                       // 'insert'\n      shift(159);                   // 'insert'\n      break;\n    case 165:                       // 'item'\n      shift(165);                   // 'item'\n      break;\n    case 170:                       // 'last'\n      shift(170);                   // 'last'\n      break;\n    case 182:                       // 'module'\n      shift(182);                   // 'module'\n      break;\n    case 184:                       // 'namespace'\n      shift(184);                   // 'namespace'\n      break;\n    case 185:                       // 'namespace-node'\n      shift(185);                   // 'namespace-node'\n      break;\n    case 191:                       // 'node'\n      shift(191);                   // 'node'\n      break;\n    case 202:                       // 'ordered'\n      shift(202);                   // 'ordered'\n      break;\n    case 206:                       // 'parent'\n      shift(206);                   // 'parent'\n      break;\n    case 212:                       // 'preceding'\n      shift(212);                   // 'preceding'\n      break;\n    case 213:                       // 'preceding-sibling'\n      shift(213);                   // 'preceding-sibling'\n      break;\n    case 216:                       // 'processing-instruction'\n      shift(216);                   // 'processing-instruction'\n      break;\n    case 218:                       // 'rename'\n      shift(218);                   // 'rename'\n      break;\n    case 219:                       // 'replace'\n      shift(219);                   // 'replace'\n      break;\n    case 226:                       // 'schema-attribute'\n      shift(226);                   // 'schema-attribute'\n      break;\n    case 227:                       // 'schema-element'\n      shift(227);                   // 'schema-element'\n      break;\n    case 229:                       // 'self'\n      shift(229);                   // 'self'\n      break;\n    case 235:                       // 'some'\n      shift(235);                   // 'some'\n      break;\n    case 243:                       // 'switch'\n      shift(243);                   // 'switch'\n      break;\n    case 244:                       // 'text'\n      shift(244);                   // 'text'\n      break;\n    case 250:                       // 'try'\n      shift(250);                   // 'try'\n      break;\n    case 253:                       // 'typeswitch'\n      shift(253);                   // 'typeswitch'\n      break;\n    case 256:                       // 'unordered'\n      shift(256);                   // 'unordered'\n      break;\n    case 260:                       // 'validate'\n      shift(260);                   // 'validate'\n      break;\n    case 262:                       // 'variable'\n      shift(262);                   // 'variable'\n      break;\n    case 274:                       // 'xquery'\n      shift(274);                   // 'xquery'\n      break;\n    case 72:                        // 'allowing'\n      shift(72);                    // 'allowing'\n      break;\n    case 81:                        // 'at'\n      shift(81);                    // 'at'\n      break;\n    case 83:                        // 'base-uri'\n      shift(83);                    // 'base-uri'\n      break;\n    case 85:                        // 'boundary-space'\n      shift(85);                    // 'boundary-space'\n      break;\n    case 86:                        // 'break'\n      shift(86);                    // 'break'\n      break;\n    case 91:                        // 'catch'\n      shift(91);                    // 'catch'\n      break;\n    case 98:                        // 'construction'\n      shift(98);                    // 'construction'\n      break;\n    case 101:                       // 'context'\n      shift(101);                   // 'context'\n      break;\n    case 102:                       // 'continue'\n      shift(102);                   // 'continue'\n      break;\n    case 104:                       // 'copy-namespaces'\n      shift(104);                   // 'copy-namespaces'\n      break;\n    case 106:                       // 'decimal-format'\n      shift(106);                   // 'decimal-format'\n      break;\n    case 125:                       // 'encoding'\n      shift(125);                   // 'encoding'\n      break;\n    case 132:                       // 'exit'\n      shift(132);                   // 'exit'\n      break;\n    case 133:                       // 'external'\n      shift(133);                   // 'external'\n      break;\n    case 141:                       // 'ft-option'\n      shift(141);                   // 'ft-option'\n      break;\n    case 154:                       // 'in'\n      shift(154);                   // 'in'\n      break;\n    case 155:                       // 'index'\n      shift(155);                   // 'index'\n      break;\n    case 161:                       // 'integrity'\n      shift(161);                   // 'integrity'\n      break;\n    case 171:                       // 'lax'\n      shift(171);                   // 'lax'\n      break;\n    case 192:                       // 'nodes'\n      shift(192);                   // 'nodes'\n      break;\n    case 199:                       // 'option'\n      shift(199);                   // 'option'\n      break;\n    case 203:                       // 'ordering'\n      shift(203);                   // 'ordering'\n      break;\n    case 222:                       // 'revalidation'\n      shift(222);                   // 'revalidation'\n      break;\n    case 225:                       // 'schema'\n      shift(225);                   // 'schema'\n      break;\n    case 228:                       // 'score'\n      shift(228);                   // 'score'\n      break;\n    case 234:                       // 'sliding'\n      shift(234);                   // 'sliding'\n      break;\n    case 240:                       // 'strict'\n      shift(240);                   // 'strict'\n      break;\n    case 251:                       // 'tumbling'\n      shift(251);                   // 'tumbling'\n      break;\n    case 252:                       // 'type'\n      shift(252);                   // 'type'\n      break;\n    case 257:                       // 'updating'\n      shift(257);                   // 'updating'\n      break;\n    case 261:                       // 'value'\n      shift(261);                   // 'value'\n      break;\n    case 263:                       // 'version'\n      shift(263);                   // 'version'\n      break;\n    case 267:                       // 'while'\n      shift(267);                   // 'while'\n      break;\n    case 97:                        // 'constraint'\n      shift(97);                    // 'constraint'\n      break;\n    case 176:                       // 'loop'\n      shift(176);                   // 'loop'\n      break;\n    case 221:                       // 'returning'\n      shift(221);                   // 'returning'\n      break;\n    case 77:                        // 'append'\n      shift(77);                    // 'append'\n      break;\n    case 166:                       // 'json'\n      shift(166);                   // 'json'\n      break;\n    default:\n      shift(194);                   // 'object'\n    }\n    eventHandler.endNonterminal(\"NCName\", e0);\n  }\n\n  function try_NCName()\n  {\n    switch (l1)\n    {\n    case 19:                        // NCName^Token\n      shiftT(19);                   // NCName^Token\n      break;\n    case 70:                        // 'after'\n      shiftT(70);                   // 'after'\n      break;\n    case 75:                        // 'and'\n      shiftT(75);                   // 'and'\n      break;\n    case 79:                        // 'as'\n      shiftT(79);                   // 'as'\n      break;\n    case 80:                        // 'ascending'\n      shiftT(80);                   // 'ascending'\n      break;\n    case 84:                        // 'before'\n      shiftT(84);                   // 'before'\n      break;\n    case 88:                        // 'case'\n      shiftT(88);                   // 'case'\n      break;\n    case 89:                        // 'cast'\n      shiftT(89);                   // 'cast'\n      break;\n    case 90:                        // 'castable'\n      shiftT(90);                   // 'castable'\n      break;\n    case 94:                        // 'collation'\n      shiftT(94);                   // 'collation'\n      break;\n    case 105:                       // 'count'\n      shiftT(105);                  // 'count'\n      break;\n    case 109:                       // 'default'\n      shiftT(109);                  // 'default'\n      break;\n    case 113:                       // 'descending'\n      shiftT(113);                  // 'descending'\n      break;\n    case 118:                       // 'div'\n      shiftT(118);                  // 'div'\n      break;\n    case 122:                       // 'else'\n      shiftT(122);                  // 'else'\n      break;\n    case 123:                       // 'empty'\n      shiftT(123);                  // 'empty'\n      break;\n    case 126:                       // 'end'\n      shiftT(126);                  // 'end'\n      break;\n    case 128:                       // 'eq'\n      shiftT(128);                  // 'eq'\n      break;\n    case 131:                       // 'except'\n      shiftT(131);                  // 'except'\n      break;\n    case 137:                       // 'for'\n      shiftT(137);                  // 'for'\n      break;\n    case 146:                       // 'ge'\n      shiftT(146);                  // 'ge'\n      break;\n    case 148:                       // 'group'\n      shiftT(148);                  // 'group'\n      break;\n    case 150:                       // 'gt'\n      shiftT(150);                  // 'gt'\n      break;\n    case 151:                       // 'idiv'\n      shiftT(151);                  // 'idiv'\n      break;\n    case 160:                       // 'instance'\n      shiftT(160);                  // 'instance'\n      break;\n    case 162:                       // 'intersect'\n      shiftT(162);                  // 'intersect'\n      break;\n    case 163:                       // 'into'\n      shiftT(163);                  // 'into'\n      break;\n    case 164:                       // 'is'\n      shiftT(164);                  // 'is'\n      break;\n    case 172:                       // 'le'\n      shiftT(172);                  // 'le'\n      break;\n    case 174:                       // 'let'\n      shiftT(174);                  // 'let'\n      break;\n    case 178:                       // 'lt'\n      shiftT(178);                  // 'lt'\n      break;\n    case 180:                       // 'mod'\n      shiftT(180);                  // 'mod'\n      break;\n    case 181:                       // 'modify'\n      shiftT(181);                  // 'modify'\n      break;\n    case 186:                       // 'ne'\n      shiftT(186);                  // 'ne'\n      break;\n    case 198:                       // 'only'\n      shiftT(198);                  // 'only'\n      break;\n    case 200:                       // 'or'\n      shiftT(200);                  // 'or'\n      break;\n    case 201:                       // 'order'\n      shiftT(201);                  // 'order'\n      break;\n    case 220:                       // 'return'\n      shiftT(220);                  // 'return'\n      break;\n    case 224:                       // 'satisfies'\n      shiftT(224);                  // 'satisfies'\n      break;\n    case 236:                       // 'stable'\n      shiftT(236);                  // 'stable'\n      break;\n    case 237:                       // 'start'\n      shiftT(237);                  // 'start'\n      break;\n    case 248:                       // 'to'\n      shiftT(248);                  // 'to'\n      break;\n    case 249:                       // 'treat'\n      shiftT(249);                  // 'treat'\n      break;\n    case 254:                       // 'union'\n      shiftT(254);                  // 'union'\n      break;\n    case 266:                       // 'where'\n      shiftT(266);                  // 'where'\n      break;\n    case 270:                       // 'with'\n      shiftT(270);                  // 'with'\n      break;\n    case 73:                        // 'ancestor'\n      shiftT(73);                   // 'ancestor'\n      break;\n    case 74:                        // 'ancestor-or-self'\n      shiftT(74);                   // 'ancestor-or-self'\n      break;\n    case 82:                        // 'attribute'\n      shiftT(82);                   // 'attribute'\n      break;\n    case 93:                        // 'child'\n      shiftT(93);                   // 'child'\n      break;\n    case 96:                        // 'comment'\n      shiftT(96);                   // 'comment'\n      break;\n    case 103:                       // 'copy'\n      shiftT(103);                  // 'copy'\n      break;\n    case 108:                       // 'declare'\n      shiftT(108);                  // 'declare'\n      break;\n    case 110:                       // 'delete'\n      shiftT(110);                  // 'delete'\n      break;\n    case 111:                       // 'descendant'\n      shiftT(111);                  // 'descendant'\n      break;\n    case 112:                       // 'descendant-or-self'\n      shiftT(112);                  // 'descendant-or-self'\n      break;\n    case 119:                       // 'document'\n      shiftT(119);                  // 'document'\n      break;\n    case 120:                       // 'document-node'\n      shiftT(120);                  // 'document-node'\n      break;\n    case 121:                       // 'element'\n      shiftT(121);                  // 'element'\n      break;\n    case 124:                       // 'empty-sequence'\n      shiftT(124);                  // 'empty-sequence'\n      break;\n    case 129:                       // 'every'\n      shiftT(129);                  // 'every'\n      break;\n    case 134:                       // 'first'\n      shiftT(134);                  // 'first'\n      break;\n    case 135:                       // 'following'\n      shiftT(135);                  // 'following'\n      break;\n    case 136:                       // 'following-sibling'\n      shiftT(136);                  // 'following-sibling'\n      break;\n    case 145:                       // 'function'\n      shiftT(145);                  // 'function'\n      break;\n    case 152:                       // 'if'\n      shiftT(152);                  // 'if'\n      break;\n    case 153:                       // 'import'\n      shiftT(153);                  // 'import'\n      break;\n    case 159:                       // 'insert'\n      shiftT(159);                  // 'insert'\n      break;\n    case 165:                       // 'item'\n      shiftT(165);                  // 'item'\n      break;\n    case 170:                       // 'last'\n      shiftT(170);                  // 'last'\n      break;\n    case 182:                       // 'module'\n      shiftT(182);                  // 'module'\n      break;\n    case 184:                       // 'namespace'\n      shiftT(184);                  // 'namespace'\n      break;\n    case 185:                       // 'namespace-node'\n      shiftT(185);                  // 'namespace-node'\n      break;\n    case 191:                       // 'node'\n      shiftT(191);                  // 'node'\n      break;\n    case 202:                       // 'ordered'\n      shiftT(202);                  // 'ordered'\n      break;\n    case 206:                       // 'parent'\n      shiftT(206);                  // 'parent'\n      break;\n    case 212:                       // 'preceding'\n      shiftT(212);                  // 'preceding'\n      break;\n    case 213:                       // 'preceding-sibling'\n      shiftT(213);                  // 'preceding-sibling'\n      break;\n    case 216:                       // 'processing-instruction'\n      shiftT(216);                  // 'processing-instruction'\n      break;\n    case 218:                       // 'rename'\n      shiftT(218);                  // 'rename'\n      break;\n    case 219:                       // 'replace'\n      shiftT(219);                  // 'replace'\n      break;\n    case 226:                       // 'schema-attribute'\n      shiftT(226);                  // 'schema-attribute'\n      break;\n    case 227:                       // 'schema-element'\n      shiftT(227);                  // 'schema-element'\n      break;\n    case 229:                       // 'self'\n      shiftT(229);                  // 'self'\n      break;\n    case 235:                       // 'some'\n      shiftT(235);                  // 'some'\n      break;\n    case 243:                       // 'switch'\n      shiftT(243);                  // 'switch'\n      break;\n    case 244:                       // 'text'\n      shiftT(244);                  // 'text'\n      break;\n    case 250:                       // 'try'\n      shiftT(250);                  // 'try'\n      break;\n    case 253:                       // 'typeswitch'\n      shiftT(253);                  // 'typeswitch'\n      break;\n    case 256:                       // 'unordered'\n      shiftT(256);                  // 'unordered'\n      break;\n    case 260:                       // 'validate'\n      shiftT(260);                  // 'validate'\n      break;\n    case 262:                       // 'variable'\n      shiftT(262);                  // 'variable'\n      break;\n    case 274:                       // 'xquery'\n      shiftT(274);                  // 'xquery'\n      break;\n    case 72:                        // 'allowing'\n      shiftT(72);                   // 'allowing'\n      break;\n    case 81:                        // 'at'\n      shiftT(81);                   // 'at'\n      break;\n    case 83:                        // 'base-uri'\n      shiftT(83);                   // 'base-uri'\n      break;\n    case 85:                        // 'boundary-space'\n      shiftT(85);                   // 'boundary-space'\n      break;\n    case 86:                        // 'break'\n      shiftT(86);                   // 'break'\n      break;\n    case 91:                        // 'catch'\n      shiftT(91);                   // 'catch'\n      break;\n    case 98:                        // 'construction'\n      shiftT(98);                   // 'construction'\n      break;\n    case 101:                       // 'context'\n      shiftT(101);                  // 'context'\n      break;\n    case 102:                       // 'continue'\n      shiftT(102);                  // 'continue'\n      break;\n    case 104:                       // 'copy-namespaces'\n      shiftT(104);                  // 'copy-namespaces'\n      break;\n    case 106:                       // 'decimal-format'\n      shiftT(106);                  // 'decimal-format'\n      break;\n    case 125:                       // 'encoding'\n      shiftT(125);                  // 'encoding'\n      break;\n    case 132:                       // 'exit'\n      shiftT(132);                  // 'exit'\n      break;\n    case 133:                       // 'external'\n      shiftT(133);                  // 'external'\n      break;\n    case 141:                       // 'ft-option'\n      shiftT(141);                  // 'ft-option'\n      break;\n    case 154:                       // 'in'\n      shiftT(154);                  // 'in'\n      break;\n    case 155:                       // 'index'\n      shiftT(155);                  // 'index'\n      break;\n    case 161:                       // 'integrity'\n      shiftT(161);                  // 'integrity'\n      break;\n    case 171:                       // 'lax'\n      shiftT(171);                  // 'lax'\n      break;\n    case 192:                       // 'nodes'\n      shiftT(192);                  // 'nodes'\n      break;\n    case 199:                       // 'option'\n      shiftT(199);                  // 'option'\n      break;\n    case 203:                       // 'ordering'\n      shiftT(203);                  // 'ordering'\n      break;\n    case 222:                       // 'revalidation'\n      shiftT(222);                  // 'revalidation'\n      break;\n    case 225:                       // 'schema'\n      shiftT(225);                  // 'schema'\n      break;\n    case 228:                       // 'score'\n      shiftT(228);                  // 'score'\n      break;\n    case 234:                       // 'sliding'\n      shiftT(234);                  // 'sliding'\n      break;\n    case 240:                       // 'strict'\n      shiftT(240);                  // 'strict'\n      break;\n    case 251:                       // 'tumbling'\n      shiftT(251);                  // 'tumbling'\n      break;\n    case 252:                       // 'type'\n      shiftT(252);                  // 'type'\n      break;\n    case 257:                       // 'updating'\n      shiftT(257);                  // 'updating'\n      break;\n    case 261:                       // 'value'\n      shiftT(261);                  // 'value'\n      break;\n    case 263:                       // 'version'\n      shiftT(263);                  // 'version'\n      break;\n    case 267:                       // 'while'\n      shiftT(267);                  // 'while'\n      break;\n    case 97:                        // 'constraint'\n      shiftT(97);                   // 'constraint'\n      break;\n    case 176:                       // 'loop'\n      shiftT(176);                  // 'loop'\n      break;\n    case 221:                       // 'returning'\n      shiftT(221);                  // 'returning'\n      break;\n    case 77:                        // 'append'\n      shiftT(77);                   // 'append'\n      break;\n    case 166:                       // 'json'\n      shiftT(166);                  // 'json'\n      break;\n    default:\n      shiftT(194);                  // 'object'\n    }\n  }\n\n  function parse_MainModule()\n  {\n    eventHandler.startNonterminal(\"MainModule\", e0);\n    parse_Prolog();\n    whitespace();\n    parse_Program();\n    eventHandler.endNonterminal(\"MainModule\", e0);\n  }\n\n  function parse_Program()\n  {\n    eventHandler.startNonterminal(\"Program\", e0);\n    parse_StatementsAndOptionalExpr();\n    eventHandler.endNonterminal(\"Program\", e0);\n  }\n\n  function parse_Statements()\n  {\n    eventHandler.startNonterminal(\"Statements\", e0);\n    for (;;)\n    {\n      lookahead1W(278);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      switch (l1)\n      {\n      case 34:                      // '('\n        lookahead2W(269);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        break;\n      case 35:                      // '(#'\n        lookahead2(252);            // EQName^Token | S | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' |\n        break;\n      case 46:                      // '/'\n        lookahead2W(284);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        break;\n      case 47:                      // '//'\n        lookahead2W(265);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        break;\n      case 54:                      // '<'\n        lookahead2(4);              // QName\n        break;\n      case 55:                      // '<!--'\n        lookahead2(1);              // DirCommentContents\n        break;\n      case 59:                      // '<?'\n        lookahead2(3);              // PITarget\n        break;\n      case 66:                      // '@'\n        lookahead2W(257);           // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n        break;\n      case 68:                      // '['\n        lookahead2W(272);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        break;\n      case 77:                      // 'append'\n        lookahead2W(200);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |\n        break;\n      case 82:                      // 'attribute'\n        lookahead2W(281);           // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' |\n        break;\n      case 121:                     // 'element'\n        lookahead2W(280);           // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' |\n        break;\n      case 132:                     // 'exit'\n        lookahead2W(203);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |\n        break;\n      case 137:                     // 'for'\n        lookahead2W(208);           // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' |\n        break;\n      case 174:                     // 'let'\n        lookahead2W(205);           // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' |\n        break;\n      case 218:                     // 'rename'\n        lookahead2W(206);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |\n        break;\n      case 219:                     // 'replace'\n        lookahead2W(207);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |\n        break;\n      case 260:                     // 'validate'\n        lookahead2W(210);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |\n        break;\n      case 276:                     // '{'\n        lookahead2W(277);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        break;\n      case 278:                     // '{|'\n        lookahead2W(273);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        break;\n      case 5:                       // Wildcard\n      case 45:                      // '..'\n        lookahead2W(186);           // S^WS | EOF | '!' | '!=' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | ';' | '<' |\n        break;\n      case 31:                      // '$'\n      case 32:                      // '%'\n        lookahead2W(255);           // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n        break;\n      case 40:                      // '+'\n      case 42:                      // '-'\n        lookahead2W(267);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        break;\n      case 86:                      // 'break'\n      case 102:                     // 'continue'\n        lookahead2W(201);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |\n        break;\n      case 110:                     // 'delete'\n      case 159:                     // 'insert'\n        lookahead2W(209);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |\n        break;\n      case 184:                     // 'namespace'\n      case 216:                     // 'processing-instruction'\n        lookahead2W(268);           // NCName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' |\n        break;\n      case 103:                     // 'copy'\n      case 129:                     // 'every'\n      case 235:                     // 'some'\n      case 262:                     // 'variable'\n        lookahead2W(197);           // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' |\n        break;\n      case 8:                       // IntegerLiteral\n      case 9:                       // DecimalLiteral\n      case 10:                      // DoubleLiteral\n      case 11:                      // StringLiteral\n      case 44:                      // '.'\n        lookahead2W(192);           // S^WS | EOF | '!' | '!=' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | ';' |\n        break;\n      case 78:                      // 'array'\n      case 124:                     // 'empty-sequence'\n      case 165:                     // 'item'\n      case 167:                     // 'json-item'\n      case 242:                     // 'structured-item'\n        lookahead2W(191);           // S^WS | EOF | '!' | '!=' | '#' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | ';' |\n        break;\n      case 96:                      // 'comment'\n      case 119:                     // 'document'\n      case 202:                     // 'ordered'\n      case 244:                     // 'text'\n      case 250:                     // 'try'\n      case 256:                     // 'unordered'\n        lookahead2W(204);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |\n        break;\n      case 73:                      // 'ancestor'\n      case 74:                      // 'ancestor-or-self'\n      case 93:                      // 'child'\n      case 111:                     // 'descendant'\n      case 112:                     // 'descendant-or-self'\n      case 135:                     // 'following'\n      case 136:                     // 'following-sibling'\n      case 206:                     // 'parent'\n      case 212:                     // 'preceding'\n      case 213:                     // 'preceding-sibling'\n      case 229:                     // 'self'\n        lookahead2W(198);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |\n        break;\n      case 6:                       // EQName^Token\n      case 70:                      // 'after'\n      case 72:                      // 'allowing'\n      case 75:                      // 'and'\n      case 79:                      // 'as'\n      case 80:                      // 'ascending'\n      case 81:                      // 'at'\n      case 83:                      // 'base-uri'\n      case 84:                      // 'before'\n      case 85:                      // 'boundary-space'\n      case 88:                      // 'case'\n      case 89:                      // 'cast'\n      case 90:                      // 'castable'\n      case 91:                      // 'catch'\n      case 94:                      // 'collation'\n      case 97:                      // 'constraint'\n      case 98:                      // 'construction'\n      case 101:                     // 'context'\n      case 104:                     // 'copy-namespaces'\n      case 105:                     // 'count'\n      case 106:                     // 'decimal-format'\n      case 108:                     // 'declare'\n      case 109:                     // 'default'\n      case 113:                     // 'descending'\n      case 118:                     // 'div'\n      case 120:                     // 'document-node'\n      case 122:                     // 'else'\n      case 123:                     // 'empty'\n      case 125:                     // 'encoding'\n      case 126:                     // 'end'\n      case 128:                     // 'eq'\n      case 131:                     // 'except'\n      case 133:                     // 'external'\n      case 134:                     // 'first'\n      case 141:                     // 'ft-option'\n      case 145:                     // 'function'\n      case 146:                     // 'ge'\n      case 148:                     // 'group'\n      case 150:                     // 'gt'\n      case 151:                     // 'idiv'\n      case 152:                     // 'if'\n      case 153:                     // 'import'\n      case 154:                     // 'in'\n      case 155:                     // 'index'\n      case 160:                     // 'instance'\n      case 161:                     // 'integrity'\n      case 162:                     // 'intersect'\n      case 163:                     // 'into'\n      case 164:                     // 'is'\n      case 166:                     // 'json'\n      case 170:                     // 'last'\n      case 171:                     // 'lax'\n      case 172:                     // 'le'\n      case 176:                     // 'loop'\n      case 178:                     // 'lt'\n      case 180:                     // 'mod'\n      case 181:                     // 'modify'\n      case 182:                     // 'module'\n      case 185:                     // 'namespace-node'\n      case 186:                     // 'ne'\n      case 191:                     // 'node'\n      case 192:                     // 'nodes'\n      case 194:                     // 'object'\n      case 198:                     // 'only'\n      case 199:                     // 'option'\n      case 200:                     // 'or'\n      case 201:                     // 'order'\n      case 203:                     // 'ordering'\n      case 220:                     // 'return'\n      case 221:                     // 'returning'\n      case 222:                     // 'revalidation'\n      case 224:                     // 'satisfies'\n      case 225:                     // 'schema'\n      case 226:                     // 'schema-attribute'\n      case 227:                     // 'schema-element'\n      case 228:                     // 'score'\n      case 234:                     // 'sliding'\n      case 236:                     // 'stable'\n      case 237:                     // 'start'\n      case 240:                     // 'strict'\n      case 243:                     // 'switch'\n      case 248:                     // 'to'\n      case 249:                     // 'treat'\n      case 251:                     // 'tumbling'\n      case 252:                     // 'type'\n      case 253:                     // 'typeswitch'\n      case 254:                     // 'union'\n      case 257:                     // 'updating'\n      case 261:                     // 'value'\n      case 263:                     // 'version'\n      case 266:                     // 'where'\n      case 267:                     // 'while'\n      case 270:                     // 'with'\n      case 274:                     // 'xquery'\n        lookahead2W(195);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk != 25                  // EOF\n       && lk != 53                  // ';'\n       && lk != 282                 // '}'\n       && lk != 12805               // Wildcard EOF\n       && lk != 12806               // EQName^Token EOF\n       && lk != 12808               // IntegerLiteral EOF\n       && lk != 12809               // DecimalLiteral EOF\n       && lk != 12810               // DoubleLiteral EOF\n       && lk != 12811               // StringLiteral EOF\n       && lk != 12844               // '.' EOF\n       && lk != 12845               // '..' EOF\n       && lk != 12846               // '/' EOF\n       && lk != 12870               // 'after' EOF\n       && lk != 12872               // 'allowing' EOF\n       && lk != 12873               // 'ancestor' EOF\n       && lk != 12874               // 'ancestor-or-self' EOF\n       && lk != 12875               // 'and' EOF\n       && lk != 12877               // 'append' EOF\n       && lk != 12878               // 'array' EOF\n       && lk != 12879               // 'as' EOF\n       && lk != 12880               // 'ascending' EOF\n       && lk != 12881               // 'at' EOF\n       && lk != 12882               // 'attribute' EOF\n       && lk != 12883               // 'base-uri' EOF\n       && lk != 12884               // 'before' EOF\n       && lk != 12885               // 'boundary-space' EOF\n       && lk != 12886               // 'break' EOF\n       && lk != 12888               // 'case' EOF\n       && lk != 12889               // 'cast' EOF\n       && lk != 12890               // 'castable' EOF\n       && lk != 12891               // 'catch' EOF\n       && lk != 12893               // 'child' EOF\n       && lk != 12894               // 'collation' EOF\n       && lk != 12896               // 'comment' EOF\n       && lk != 12897               // 'constraint' EOF\n       && lk != 12898               // 'construction' EOF\n       && lk != 12901               // 'context' EOF\n       && lk != 12902               // 'continue' EOF\n       && lk != 12903               // 'copy' EOF\n       && lk != 12904               // 'copy-namespaces' EOF\n       && lk != 12905               // 'count' EOF\n       && lk != 12906               // 'decimal-format' EOF\n       && lk != 12908               // 'declare' EOF\n       && lk != 12909               // 'default' EOF\n       && lk != 12910               // 'delete' EOF\n       && lk != 12911               // 'descendant' EOF\n       && lk != 12912               // 'descendant-or-self' EOF\n       && lk != 12913               // 'descending' EOF\n       && lk != 12918               // 'div' EOF\n       && lk != 12919               // 'document' EOF\n       && lk != 12920               // 'document-node' EOF\n       && lk != 12921               // 'element' EOF\n       && lk != 12922               // 'else' EOF\n       && lk != 12923               // 'empty' EOF\n       && lk != 12924               // 'empty-sequence' EOF\n       && lk != 12925               // 'encoding' EOF\n       && lk != 12926               // 'end' EOF\n       && lk != 12928               // 'eq' EOF\n       && lk != 12929               // 'every' EOF\n       && lk != 12931               // 'except' EOF\n       && lk != 12932               // 'exit' EOF\n       && lk != 12933               // 'external' EOF\n       && lk != 12934               // 'first' EOF\n       && lk != 12935               // 'following' EOF\n       && lk != 12936               // 'following-sibling' EOF\n       && lk != 12937               // 'for' EOF\n       && lk != 12941               // 'ft-option' EOF\n       && lk != 12945               // 'function' EOF\n       && lk != 12946               // 'ge' EOF\n       && lk != 12948               // 'group' EOF\n       && lk != 12950               // 'gt' EOF\n       && lk != 12951               // 'idiv' EOF\n       && lk != 12952               // 'if' EOF\n       && lk != 12953               // 'import' EOF\n       && lk != 12954               // 'in' EOF\n       && lk != 12955               // 'index' EOF\n       && lk != 12959               // 'insert' EOF\n       && lk != 12960               // 'instance' EOF\n       && lk != 12961               // 'integrity' EOF\n       && lk != 12962               // 'intersect' EOF\n       && lk != 12963               // 'into' EOF\n       && lk != 12964               // 'is' EOF\n       && lk != 12965               // 'item' EOF\n       && lk != 12966               // 'json' EOF\n       && lk != 12967               // 'json-item' EOF\n       && lk != 12970               // 'last' EOF\n       && lk != 12971               // 'lax' EOF\n       && lk != 12972               // 'le' EOF\n       && lk != 12974               // 'let' EOF\n       && lk != 12976               // 'loop' EOF\n       && lk != 12978               // 'lt' EOF\n       && lk != 12980               // 'mod' EOF\n       && lk != 12981               // 'modify' EOF\n       && lk != 12982               // 'module' EOF\n       && lk != 12984               // 'namespace' EOF\n       && lk != 12985               // 'namespace-node' EOF\n       && lk != 12986               // 'ne' EOF\n       && lk != 12991               // 'node' EOF\n       && lk != 12992               // 'nodes' EOF\n       && lk != 12994               // 'object' EOF\n       && lk != 12998               // 'only' EOF\n       && lk != 12999               // 'option' EOF\n       && lk != 13000               // 'or' EOF\n       && lk != 13001               // 'order' EOF\n       && lk != 13002               // 'ordered' EOF\n       && lk != 13003               // 'ordering' EOF\n       && lk != 13006               // 'parent' EOF\n       && lk != 13012               // 'preceding' EOF\n       && lk != 13013               // 'preceding-sibling' EOF\n       && lk != 13016               // 'processing-instruction' EOF\n       && lk != 13018               // 'rename' EOF\n       && lk != 13019               // 'replace' EOF\n       && lk != 13020               // 'return' EOF\n       && lk != 13021               // 'returning' EOF\n       && lk != 13022               // 'revalidation' EOF\n       && lk != 13024               // 'satisfies' EOF\n       && lk != 13025               // 'schema' EOF\n       && lk != 13026               // 'schema-attribute' EOF\n       && lk != 13027               // 'schema-element' EOF\n       && lk != 13028               // 'score' EOF\n       && lk != 13029               // 'self' EOF\n       && lk != 13034               // 'sliding' EOF\n       && lk != 13035               // 'some' EOF\n       && lk != 13036               // 'stable' EOF\n       && lk != 13037               // 'start' EOF\n       && lk != 13040               // 'strict' EOF\n       && lk != 13042               // 'structured-item' EOF\n       && lk != 13043               // 'switch' EOF\n       && lk != 13044               // 'text' EOF\n       && lk != 13048               // 'to' EOF\n       && lk != 13049               // 'treat' EOF\n       && lk != 13050               // 'try' EOF\n       && lk != 13051               // 'tumbling' EOF\n       && lk != 13052               // 'type' EOF\n       && lk != 13053               // 'typeswitch' EOF\n       && lk != 13054               // 'union' EOF\n       && lk != 13056               // 'unordered' EOF\n       && lk != 13057               // 'updating' EOF\n       && lk != 13060               // 'validate' EOF\n       && lk != 13061               // 'value' EOF\n       && lk != 13062               // 'variable' EOF\n       && lk != 13063               // 'version' EOF\n       && lk != 13066               // 'where' EOF\n       && lk != 13067               // 'while' EOF\n       && lk != 13070               // 'with' EOF\n       && lk != 13074               // 'xquery' EOF\n       && lk != 16134               // 'variable' '$'\n       && lk != 20997               // Wildcard ','\n       && lk != 20998               // EQName^Token ','\n       && lk != 21000               // IntegerLiteral ','\n       && lk != 21001               // DecimalLiteral ','\n       && lk != 21002               // DoubleLiteral ','\n       && lk != 21003               // StringLiteral ','\n       && lk != 21036               // '.' ','\n       && lk != 21037               // '..' ','\n       && lk != 21038               // '/' ','\n       && lk != 21062               // 'after' ','\n       && lk != 21064               // 'allowing' ','\n       && lk != 21065               // 'ancestor' ','\n       && lk != 21066               // 'ancestor-or-self' ','\n       && lk != 21067               // 'and' ','\n       && lk != 21069               // 'append' ','\n       && lk != 21070               // 'array' ','\n       && lk != 21071               // 'as' ','\n       && lk != 21072               // 'ascending' ','\n       && lk != 21073               // 'at' ','\n       && lk != 21074               // 'attribute' ','\n       && lk != 21075               // 'base-uri' ','\n       && lk != 21076               // 'before' ','\n       && lk != 21077               // 'boundary-space' ','\n       && lk != 21078               // 'break' ','\n       && lk != 21080               // 'case' ','\n       && lk != 21081               // 'cast' ','\n       && lk != 21082               // 'castable' ','\n       && lk != 21083               // 'catch' ','\n       && lk != 21085               // 'child' ','\n       && lk != 21086               // 'collation' ','\n       && lk != 21088               // 'comment' ','\n       && lk != 21089               // 'constraint' ','\n       && lk != 21090               // 'construction' ','\n       && lk != 21093               // 'context' ','\n       && lk != 21094               // 'continue' ','\n       && lk != 21095               // 'copy' ','\n       && lk != 21096               // 'copy-namespaces' ','\n       && lk != 21097               // 'count' ','\n       && lk != 21098               // 'decimal-format' ','\n       && lk != 21100               // 'declare' ','\n       && lk != 21101               // 'default' ','\n       && lk != 21102               // 'delete' ','\n       && lk != 21103               // 'descendant' ','\n       && lk != 21104               // 'descendant-or-self' ','\n       && lk != 21105               // 'descending' ','\n       && lk != 21110               // 'div' ','\n       && lk != 21111               // 'document' ','\n       && lk != 21112               // 'document-node' ','\n       && lk != 21113               // 'element' ','\n       && lk != 21114               // 'else' ','\n       && lk != 21115               // 'empty' ','\n       && lk != 21116               // 'empty-sequence' ','\n       && lk != 21117               // 'encoding' ','\n       && lk != 21118               // 'end' ','\n       && lk != 21120               // 'eq' ','\n       && lk != 21121               // 'every' ','\n       && lk != 21123               // 'except' ','\n       && lk != 21124               // 'exit' ','\n       && lk != 21125               // 'external' ','\n       && lk != 21126               // 'first' ','\n       && lk != 21127               // 'following' ','\n       && lk != 21128               // 'following-sibling' ','\n       && lk != 21129               // 'for' ','\n       && lk != 21133               // 'ft-option' ','\n       && lk != 21137               // 'function' ','\n       && lk != 21138               // 'ge' ','\n       && lk != 21140               // 'group' ','\n       && lk != 21142               // 'gt' ','\n       && lk != 21143               // 'idiv' ','\n       && lk != 21144               // 'if' ','\n       && lk != 21145               // 'import' ','\n       && lk != 21146               // 'in' ','\n       && lk != 21147               // 'index' ','\n       && lk != 21151               // 'insert' ','\n       && lk != 21152               // 'instance' ','\n       && lk != 21153               // 'integrity' ','\n       && lk != 21154               // 'intersect' ','\n       && lk != 21155               // 'into' ','\n       && lk != 21156               // 'is' ','\n       && lk != 21157               // 'item' ','\n       && lk != 21158               // 'json' ','\n       && lk != 21159               // 'json-item' ','\n       && lk != 21162               // 'last' ','\n       && lk != 21163               // 'lax' ','\n       && lk != 21164               // 'le' ','\n       && lk != 21166               // 'let' ','\n       && lk != 21168               // 'loop' ','\n       && lk != 21170               // 'lt' ','\n       && lk != 21172               // 'mod' ','\n       && lk != 21173               // 'modify' ','\n       && lk != 21174               // 'module' ','\n       && lk != 21176               // 'namespace' ','\n       && lk != 21177               // 'namespace-node' ','\n       && lk != 21178               // 'ne' ','\n       && lk != 21183               // 'node' ','\n       && lk != 21184               // 'nodes' ','\n       && lk != 21186               // 'object' ','\n       && lk != 21190               // 'only' ','\n       && lk != 21191               // 'option' ','\n       && lk != 21192               // 'or' ','\n       && lk != 21193               // 'order' ','\n       && lk != 21194               // 'ordered' ','\n       && lk != 21195               // 'ordering' ','\n       && lk != 21198               // 'parent' ','\n       && lk != 21204               // 'preceding' ','\n       && lk != 21205               // 'preceding-sibling' ','\n       && lk != 21208               // 'processing-instruction' ','\n       && lk != 21210               // 'rename' ','\n       && lk != 21211               // 'replace' ','\n       && lk != 21212               // 'return' ','\n       && lk != 21213               // 'returning' ','\n       && lk != 21214               // 'revalidation' ','\n       && lk != 21216               // 'satisfies' ','\n       && lk != 21217               // 'schema' ','\n       && lk != 21218               // 'schema-attribute' ','\n       && lk != 21219               // 'schema-element' ','\n       && lk != 21220               // 'score' ','\n       && lk != 21221               // 'self' ','\n       && lk != 21226               // 'sliding' ','\n       && lk != 21227               // 'some' ','\n       && lk != 21228               // 'stable' ','\n       && lk != 21229               // 'start' ','\n       && lk != 21232               // 'strict' ','\n       && lk != 21234               // 'structured-item' ','\n       && lk != 21235               // 'switch' ','\n       && lk != 21236               // 'text' ','\n       && lk != 21240               // 'to' ','\n       && lk != 21241               // 'treat' ','\n       && lk != 21242               // 'try' ','\n       && lk != 21243               // 'tumbling' ','\n       && lk != 21244               // 'type' ','\n       && lk != 21245               // 'typeswitch' ','\n       && lk != 21246               // 'union' ','\n       && lk != 21248               // 'unordered' ','\n       && lk != 21249               // 'updating' ','\n       && lk != 21252               // 'validate' ','\n       && lk != 21253               // 'value' ','\n       && lk != 21254               // 'variable' ','\n       && lk != 21255               // 'version' ','\n       && lk != 21258               // 'where' ','\n       && lk != 21259               // 'while' ','\n       && lk != 21262               // 'with' ','\n       && lk != 21266               // 'xquery' ','\n       && lk != 27141               // Wildcard ';'\n       && lk != 27142               // EQName^Token ';'\n       && lk != 27144               // IntegerLiteral ';'\n       && lk != 27145               // DecimalLiteral ';'\n       && lk != 27146               // DoubleLiteral ';'\n       && lk != 27147               // StringLiteral ';'\n       && lk != 27180               // '.' ';'\n       && lk != 27181               // '..' ';'\n       && lk != 27182               // '/' ';'\n       && lk != 27206               // 'after' ';'\n       && lk != 27208               // 'allowing' ';'\n       && lk != 27209               // 'ancestor' ';'\n       && lk != 27210               // 'ancestor-or-self' ';'\n       && lk != 27211               // 'and' ';'\n       && lk != 27213               // 'append' ';'\n       && lk != 27214               // 'array' ';'\n       && lk != 27215               // 'as' ';'\n       && lk != 27216               // 'ascending' ';'\n       && lk != 27217               // 'at' ';'\n       && lk != 27218               // 'attribute' ';'\n       && lk != 27219               // 'base-uri' ';'\n       && lk != 27220               // 'before' ';'\n       && lk != 27221               // 'boundary-space' ';'\n       && lk != 27222               // 'break' ';'\n       && lk != 27224               // 'case' ';'\n       && lk != 27225               // 'cast' ';'\n       && lk != 27226               // 'castable' ';'\n       && lk != 27227               // 'catch' ';'\n       && lk != 27229               // 'child' ';'\n       && lk != 27230               // 'collation' ';'\n       && lk != 27232               // 'comment' ';'\n       && lk != 27233               // 'constraint' ';'\n       && lk != 27234               // 'construction' ';'\n       && lk != 27237               // 'context' ';'\n       && lk != 27238               // 'continue' ';'\n       && lk != 27239               // 'copy' ';'\n       && lk != 27240               // 'copy-namespaces' ';'\n       && lk != 27241               // 'count' ';'\n       && lk != 27242               // 'decimal-format' ';'\n       && lk != 27244               // 'declare' ';'\n       && lk != 27245               // 'default' ';'\n       && lk != 27246               // 'delete' ';'\n       && lk != 27247               // 'descendant' ';'\n       && lk != 27248               // 'descendant-or-self' ';'\n       && lk != 27249               // 'descending' ';'\n       && lk != 27254               // 'div' ';'\n       && lk != 27255               // 'document' ';'\n       && lk != 27256               // 'document-node' ';'\n       && lk != 27257               // 'element' ';'\n       && lk != 27258               // 'else' ';'\n       && lk != 27259               // 'empty' ';'\n       && lk != 27260               // 'empty-sequence' ';'\n       && lk != 27261               // 'encoding' ';'\n       && lk != 27262               // 'end' ';'\n       && lk != 27264               // 'eq' ';'\n       && lk != 27265               // 'every' ';'\n       && lk != 27267               // 'except' ';'\n       && lk != 27268               // 'exit' ';'\n       && lk != 27269               // 'external' ';'\n       && lk != 27270               // 'first' ';'\n       && lk != 27271               // 'following' ';'\n       && lk != 27272               // 'following-sibling' ';'\n       && lk != 27273               // 'for' ';'\n       && lk != 27277               // 'ft-option' ';'\n       && lk != 27281               // 'function' ';'\n       && lk != 27282               // 'ge' ';'\n       && lk != 27284               // 'group' ';'\n       && lk != 27286               // 'gt' ';'\n       && lk != 27287               // 'idiv' ';'\n       && lk != 27288               // 'if' ';'\n       && lk != 27289               // 'import' ';'\n       && lk != 27290               // 'in' ';'\n       && lk != 27291               // 'index' ';'\n       && lk != 27295               // 'insert' ';'\n       && lk != 27296               // 'instance' ';'\n       && lk != 27297               // 'integrity' ';'\n       && lk != 27298               // 'intersect' ';'\n       && lk != 27299               // 'into' ';'\n       && lk != 27300               // 'is' ';'\n       && lk != 27301               // 'item' ';'\n       && lk != 27302               // 'json' ';'\n       && lk != 27303               // 'json-item' ';'\n       && lk != 27306               // 'last' ';'\n       && lk != 27307               // 'lax' ';'\n       && lk != 27308               // 'le' ';'\n       && lk != 27310               // 'let' ';'\n       && lk != 27312               // 'loop' ';'\n       && lk != 27314               // 'lt' ';'\n       && lk != 27316               // 'mod' ';'\n       && lk != 27317               // 'modify' ';'\n       && lk != 27318               // 'module' ';'\n       && lk != 27320               // 'namespace' ';'\n       && lk != 27321               // 'namespace-node' ';'\n       && lk != 27322               // 'ne' ';'\n       && lk != 27327               // 'node' ';'\n       && lk != 27328               // 'nodes' ';'\n       && lk != 27330               // 'object' ';'\n       && lk != 27334               // 'only' ';'\n       && lk != 27335               // 'option' ';'\n       && lk != 27336               // 'or' ';'\n       && lk != 27337               // 'order' ';'\n       && lk != 27338               // 'ordered' ';'\n       && lk != 27339               // 'ordering' ';'\n       && lk != 27342               // 'parent' ';'\n       && lk != 27348               // 'preceding' ';'\n       && lk != 27349               // 'preceding-sibling' ';'\n       && lk != 27352               // 'processing-instruction' ';'\n       && lk != 27354               // 'rename' ';'\n       && lk != 27355               // 'replace' ';'\n       && lk != 27356               // 'return' ';'\n       && lk != 27357               // 'returning' ';'\n       && lk != 27358               // 'revalidation' ';'\n       && lk != 27360               // 'satisfies' ';'\n       && lk != 27361               // 'schema' ';'\n       && lk != 27362               // 'schema-attribute' ';'\n       && lk != 27363               // 'schema-element' ';'\n       && lk != 27364               // 'score' ';'\n       && lk != 27365               // 'self' ';'\n       && lk != 27370               // 'sliding' ';'\n       && lk != 27371               // 'some' ';'\n       && lk != 27372               // 'stable' ';'\n       && lk != 27373               // 'start' ';'\n       && lk != 27376               // 'strict' ';'\n       && lk != 27378               // 'structured-item' ';'\n       && lk != 27379               // 'switch' ';'\n       && lk != 27380               // 'text' ';'\n       && lk != 27384               // 'to' ';'\n       && lk != 27385               // 'treat' ';'\n       && lk != 27386               // 'try' ';'\n       && lk != 27387               // 'tumbling' ';'\n       && lk != 27388               // 'type' ';'\n       && lk != 27389               // 'typeswitch' ';'\n       && lk != 27390               // 'union' ';'\n       && lk != 27392               // 'unordered' ';'\n       && lk != 27393               // 'updating' ';'\n       && lk != 27396               // 'validate' ';'\n       && lk != 27397               // 'value' ';'\n       && lk != 27398               // 'variable' ';'\n       && lk != 27399               // 'version' ';'\n       && lk != 27402               // 'where' ';'\n       && lk != 27403               // 'while' ';'\n       && lk != 27406               // 'with' ';'\n       && lk != 27410               // 'xquery' ';'\n       && lk != 90198               // 'break' 'loop'\n       && lk != 90214               // 'continue' 'loop'\n       && lk != 113284              // 'exit' 'returning'\n       && lk != 144389              // Wildcard '}'\n       && lk != 144390              // EQName^Token '}'\n       && lk != 144392              // IntegerLiteral '}'\n       && lk != 144393              // DecimalLiteral '}'\n       && lk != 144394              // DoubleLiteral '}'\n       && lk != 144395              // StringLiteral '}'\n       && lk != 144428              // '.' '}'\n       && lk != 144429              // '..' '}'\n       && lk != 144430              // '/' '}'\n       && lk != 144454              // 'after' '}'\n       && lk != 144456              // 'allowing' '}'\n       && lk != 144457              // 'ancestor' '}'\n       && lk != 144458              // 'ancestor-or-self' '}'\n       && lk != 144459              // 'and' '}'\n       && lk != 144461              // 'append' '}'\n       && lk != 144462              // 'array' '}'\n       && lk != 144463              // 'as' '}'\n       && lk != 144464              // 'ascending' '}'\n       && lk != 144465              // 'at' '}'\n       && lk != 144466              // 'attribute' '}'\n       && lk != 144467              // 'base-uri' '}'\n       && lk != 144468              // 'before' '}'\n       && lk != 144469              // 'boundary-space' '}'\n       && lk != 144470              // 'break' '}'\n       && lk != 144472              // 'case' '}'\n       && lk != 144473              // 'cast' '}'\n       && lk != 144474              // 'castable' '}'\n       && lk != 144475              // 'catch' '}'\n       && lk != 144477              // 'child' '}'\n       && lk != 144478              // 'collation' '}'\n       && lk != 144480              // 'comment' '}'\n       && lk != 144481              // 'constraint' '}'\n       && lk != 144482              // 'construction' '}'\n       && lk != 144485              // 'context' '}'\n       && lk != 144486              // 'continue' '}'\n       && lk != 144487              // 'copy' '}'\n       && lk != 144488              // 'copy-namespaces' '}'\n       && lk != 144489              // 'count' '}'\n       && lk != 144490              // 'decimal-format' '}'\n       && lk != 144492              // 'declare' '}'\n       && lk != 144493              // 'default' '}'\n       && lk != 144494              // 'delete' '}'\n       && lk != 144495              // 'descendant' '}'\n       && lk != 144496              // 'descendant-or-self' '}'\n       && lk != 144497              // 'descending' '}'\n       && lk != 144502              // 'div' '}'\n       && lk != 144503              // 'document' '}'\n       && lk != 144504              // 'document-node' '}'\n       && lk != 144505              // 'element' '}'\n       && lk != 144506              // 'else' '}'\n       && lk != 144507              // 'empty' '}'\n       && lk != 144508              // 'empty-sequence' '}'\n       && lk != 144509              // 'encoding' '}'\n       && lk != 144510              // 'end' '}'\n       && lk != 144512              // 'eq' '}'\n       && lk != 144513              // 'every' '}'\n       && lk != 144515              // 'except' '}'\n       && lk != 144516              // 'exit' '}'\n       && lk != 144517              // 'external' '}'\n       && lk != 144518              // 'first' '}'\n       && lk != 144519              // 'following' '}'\n       && lk != 144520              // 'following-sibling' '}'\n       && lk != 144521              // 'for' '}'\n       && lk != 144525              // 'ft-option' '}'\n       && lk != 144529              // 'function' '}'\n       && lk != 144530              // 'ge' '}'\n       && lk != 144532              // 'group' '}'\n       && lk != 144534              // 'gt' '}'\n       && lk != 144535              // 'idiv' '}'\n       && lk != 144536              // 'if' '}'\n       && lk != 144537              // 'import' '}'\n       && lk != 144538              // 'in' '}'\n       && lk != 144539              // 'index' '}'\n       && lk != 144543              // 'insert' '}'\n       && lk != 144544              // 'instance' '}'\n       && lk != 144545              // 'integrity' '}'\n       && lk != 144546              // 'intersect' '}'\n       && lk != 144547              // 'into' '}'\n       && lk != 144548              // 'is' '}'\n       && lk != 144549              // 'item' '}'\n       && lk != 144550              // 'json' '}'\n       && lk != 144551              // 'json-item' '}'\n       && lk != 144554              // 'last' '}'\n       && lk != 144555              // 'lax' '}'\n       && lk != 144556              // 'le' '}'\n       && lk != 144558              // 'let' '}'\n       && lk != 144560              // 'loop' '}'\n       && lk != 144562              // 'lt' '}'\n       && lk != 144564              // 'mod' '}'\n       && lk != 144565              // 'modify' '}'\n       && lk != 144566              // 'module' '}'\n       && lk != 144568              // 'namespace' '}'\n       && lk != 144569              // 'namespace-node' '}'\n       && lk != 144570              // 'ne' '}'\n       && lk != 144575              // 'node' '}'\n       && lk != 144576              // 'nodes' '}'\n       && lk != 144578              // 'object' '}'\n       && lk != 144582              // 'only' '}'\n       && lk != 144583              // 'option' '}'\n       && lk != 144584              // 'or' '}'\n       && lk != 144585              // 'order' '}'\n       && lk != 144586              // 'ordered' '}'\n       && lk != 144587              // 'ordering' '}'\n       && lk != 144590              // 'parent' '}'\n       && lk != 144596              // 'preceding' '}'\n       && lk != 144597              // 'preceding-sibling' '}'\n       && lk != 144600              // 'processing-instruction' '}'\n       && lk != 144602              // 'rename' '}'\n       && lk != 144603              // 'replace' '}'\n       && lk != 144604              // 'return' '}'\n       && lk != 144605              // 'returning' '}'\n       && lk != 144606              // 'revalidation' '}'\n       && lk != 144608              // 'satisfies' '}'\n       && lk != 144609              // 'schema' '}'\n       && lk != 144610              // 'schema-attribute' '}'\n       && lk != 144611              // 'schema-element' '}'\n       && lk != 144612              // 'score' '}'\n       && lk != 144613              // 'self' '}'\n       && lk != 144618              // 'sliding' '}'\n       && lk != 144619              // 'some' '}'\n       && lk != 144620              // 'stable' '}'\n       && lk != 144621              // 'start' '}'\n       && lk != 144624              // 'strict' '}'\n       && lk != 144626              // 'structured-item' '}'\n       && lk != 144627              // 'switch' '}'\n       && lk != 144628              // 'text' '}'\n       && lk != 144632              // 'to' '}'\n       && lk != 144633              // 'treat' '}'\n       && lk != 144634              // 'try' '}'\n       && lk != 144635              // 'tumbling' '}'\n       && lk != 144636              // 'type' '}'\n       && lk != 144637              // 'typeswitch' '}'\n       && lk != 144638              // 'union' '}'\n       && lk != 144640              // 'unordered' '}'\n       && lk != 144641              // 'updating' '}'\n       && lk != 144644              // 'validate' '}'\n       && lk != 144645              // 'value' '}'\n       && lk != 144646              // 'variable' '}'\n       && lk != 144647              // 'version' '}'\n       && lk != 144650              // 'where' '}'\n       && lk != 144651              // 'while' '}'\n       && lk != 144654              // 'with' '}'\n       && lk != 144658)             // 'xquery' '}'\n      {\n        lk = memoized(6, e0);\n        if (lk == 0)\n        {\n          var b0A = b0; var e0A = e0; var l1A = l1;\n          var b1A = b1; var e1A = e1; var l2A = l2;\n          var b2A = b2; var e2A = e2;\n          try\n          {\n            try_Statement();\n            lk = -1;\n          }\n          catch (p1A)\n          {\n            lk = -2;\n          }\n          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n          b2 = b2A; e2 = e2A; end = e2A; }}\n          memoize(6, e0, lk);\n        }\n      }\n      if (lk != -1\n       && lk != 53                  // ';'\n       && lk != 16134               // 'variable' '$'\n       && lk != 27141               // Wildcard ';'\n       && lk != 27142               // EQName^Token ';'\n       && lk != 27144               // IntegerLiteral ';'\n       && lk != 27145               // DecimalLiteral ';'\n       && lk != 27146               // DoubleLiteral ';'\n       && lk != 27147               // StringLiteral ';'\n       && lk != 27180               // '.' ';'\n       && lk != 27181               // '..' ';'\n       && lk != 27182               // '/' ';'\n       && lk != 27206               // 'after' ';'\n       && lk != 27208               // 'allowing' ';'\n       && lk != 27209               // 'ancestor' ';'\n       && lk != 27210               // 'ancestor-or-self' ';'\n       && lk != 27211               // 'and' ';'\n       && lk != 27213               // 'append' ';'\n       && lk != 27214               // 'array' ';'\n       && lk != 27215               // 'as' ';'\n       && lk != 27216               // 'ascending' ';'\n       && lk != 27217               // 'at' ';'\n       && lk != 27218               // 'attribute' ';'\n       && lk != 27219               // 'base-uri' ';'\n       && lk != 27220               // 'before' ';'\n       && lk != 27221               // 'boundary-space' ';'\n       && lk != 27222               // 'break' ';'\n       && lk != 27224               // 'case' ';'\n       && lk != 27225               // 'cast' ';'\n       && lk != 27226               // 'castable' ';'\n       && lk != 27227               // 'catch' ';'\n       && lk != 27229               // 'child' ';'\n       && lk != 27230               // 'collation' ';'\n       && lk != 27232               // 'comment' ';'\n       && lk != 27233               // 'constraint' ';'\n       && lk != 27234               // 'construction' ';'\n       && lk != 27237               // 'context' ';'\n       && lk != 27238               // 'continue' ';'\n       && lk != 27239               // 'copy' ';'\n       && lk != 27240               // 'copy-namespaces' ';'\n       && lk != 27241               // 'count' ';'\n       && lk != 27242               // 'decimal-format' ';'\n       && lk != 27244               // 'declare' ';'\n       && lk != 27245               // 'default' ';'\n       && lk != 27246               // 'delete' ';'\n       && lk != 27247               // 'descendant' ';'\n       && lk != 27248               // 'descendant-or-self' ';'\n       && lk != 27249               // 'descending' ';'\n       && lk != 27254               // 'div' ';'\n       && lk != 27255               // 'document' ';'\n       && lk != 27256               // 'document-node' ';'\n       && lk != 27257               // 'element' ';'\n       && lk != 27258               // 'else' ';'\n       && lk != 27259               // 'empty' ';'\n       && lk != 27260               // 'empty-sequence' ';'\n       && lk != 27261               // 'encoding' ';'\n       && lk != 27262               // 'end' ';'\n       && lk != 27264               // 'eq' ';'\n       && lk != 27265               // 'every' ';'\n       && lk != 27267               // 'except' ';'\n       && lk != 27268               // 'exit' ';'\n       && lk != 27269               // 'external' ';'\n       && lk != 27270               // 'first' ';'\n       && lk != 27271               // 'following' ';'\n       && lk != 27272               // 'following-sibling' ';'\n       && lk != 27273               // 'for' ';'\n       && lk != 27277               // 'ft-option' ';'\n       && lk != 27281               // 'function' ';'\n       && lk != 27282               // 'ge' ';'\n       && lk != 27284               // 'group' ';'\n       && lk != 27286               // 'gt' ';'\n       && lk != 27287               // 'idiv' ';'\n       && lk != 27288               // 'if' ';'\n       && lk != 27289               // 'import' ';'\n       && lk != 27290               // 'in' ';'\n       && lk != 27291               // 'index' ';'\n       && lk != 27295               // 'insert' ';'\n       && lk != 27296               // 'instance' ';'\n       && lk != 27297               // 'integrity' ';'\n       && lk != 27298               // 'intersect' ';'\n       && lk != 27299               // 'into' ';'\n       && lk != 27300               // 'is' ';'\n       && lk != 27301               // 'item' ';'\n       && lk != 27302               // 'json' ';'\n       && lk != 27303               // 'json-item' ';'\n       && lk != 27306               // 'last' ';'\n       && lk != 27307               // 'lax' ';'\n       && lk != 27308               // 'le' ';'\n       && lk != 27310               // 'let' ';'\n       && lk != 27312               // 'loop' ';'\n       && lk != 27314               // 'lt' ';'\n       && lk != 27316               // 'mod' ';'\n       && lk != 27317               // 'modify' ';'\n       && lk != 27318               // 'module' ';'\n       && lk != 27320               // 'namespace' ';'\n       && lk != 27321               // 'namespace-node' ';'\n       && lk != 27322               // 'ne' ';'\n       && lk != 27327               // 'node' ';'\n       && lk != 27328               // 'nodes' ';'\n       && lk != 27330               // 'object' ';'\n       && lk != 27334               // 'only' ';'\n       && lk != 27335               // 'option' ';'\n       && lk != 27336               // 'or' ';'\n       && lk != 27337               // 'order' ';'\n       && lk != 27338               // 'ordered' ';'\n       && lk != 27339               // 'ordering' ';'\n       && lk != 27342               // 'parent' ';'\n       && lk != 27348               // 'preceding' ';'\n       && lk != 27349               // 'preceding-sibling' ';'\n       && lk != 27352               // 'processing-instruction' ';'\n       && lk != 27354               // 'rename' ';'\n       && lk != 27355               // 'replace' ';'\n       && lk != 27356               // 'return' ';'\n       && lk != 27357               // 'returning' ';'\n       && lk != 27358               // 'revalidation' ';'\n       && lk != 27360               // 'satisfies' ';'\n       && lk != 27361               // 'schema' ';'\n       && lk != 27362               // 'schema-attribute' ';'\n       && lk != 27363               // 'schema-element' ';'\n       && lk != 27364               // 'score' ';'\n       && lk != 27365               // 'self' ';'\n       && lk != 27370               // 'sliding' ';'\n       && lk != 27371               // 'some' ';'\n       && lk != 27372               // 'stable' ';'\n       && lk != 27373               // 'start' ';'\n       && lk != 27376               // 'strict' ';'\n       && lk != 27378               // 'structured-item' ';'\n       && lk != 27379               // 'switch' ';'\n       && lk != 27380               // 'text' ';'\n       && lk != 27384               // 'to' ';'\n       && lk != 27385               // 'treat' ';'\n       && lk != 27386               // 'try' ';'\n       && lk != 27387               // 'tumbling' ';'\n       && lk != 27388               // 'type' ';'\n       && lk != 27389               // 'typeswitch' ';'\n       && lk != 27390               // 'union' ';'\n       && lk != 27392               // 'unordered' ';'\n       && lk != 27393               // 'updating' ';'\n       && lk != 27396               // 'validate' ';'\n       && lk != 27397               // 'value' ';'\n       && lk != 27398               // 'variable' ';'\n       && lk != 27399               // 'version' ';'\n       && lk != 27402               // 'where' ';'\n       && lk != 27403               // 'while' ';'\n       && lk != 27406               // 'with' ';'\n       && lk != 27410               // 'xquery' ';'\n       && lk != 90198               // 'break' 'loop'\n       && lk != 90214               // 'continue' 'loop'\n       && lk != 113284)             // 'exit' 'returning'\n      {\n        break;\n      }\n      whitespace();\n      parse_Statement();\n    }\n    eventHandler.endNonterminal(\"Statements\", e0);\n  }\n\n  function try_Statements()\n  {\n    for (;;)\n    {\n      lookahead1W(278);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      switch (l1)\n      {\n      case 34:                      // '('\n        lookahead2W(269);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        break;\n      case 35:                      // '(#'\n        lookahead2(252);            // EQName^Token | S | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' |\n        break;\n      case 46:                      // '/'\n        lookahead2W(284);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        break;\n      case 47:                      // '//'\n        lookahead2W(265);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        break;\n      case 54:                      // '<'\n        lookahead2(4);              // QName\n        break;\n      case 55:                      // '<!--'\n        lookahead2(1);              // DirCommentContents\n        break;\n      case 59:                      // '<?'\n        lookahead2(3);              // PITarget\n        break;\n      case 66:                      // '@'\n        lookahead2W(257);           // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n        break;\n      case 68:                      // '['\n        lookahead2W(272);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        break;\n      case 77:                      // 'append'\n        lookahead2W(200);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |\n        break;\n      case 82:                      // 'attribute'\n        lookahead2W(281);           // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' |\n        break;\n      case 121:                     // 'element'\n        lookahead2W(280);           // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' |\n        break;\n      case 132:                     // 'exit'\n        lookahead2W(203);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |\n        break;\n      case 137:                     // 'for'\n        lookahead2W(208);           // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' |\n        break;\n      case 174:                     // 'let'\n        lookahead2W(205);           // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' |\n        break;\n      case 218:                     // 'rename'\n        lookahead2W(206);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |\n        break;\n      case 219:                     // 'replace'\n        lookahead2W(207);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |\n        break;\n      case 260:                     // 'validate'\n        lookahead2W(210);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |\n        break;\n      case 276:                     // '{'\n        lookahead2W(277);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        break;\n      case 278:                     // '{|'\n        lookahead2W(273);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        break;\n      case 5:                       // Wildcard\n      case 45:                      // '..'\n        lookahead2W(186);           // S^WS | EOF | '!' | '!=' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | ';' | '<' |\n        break;\n      case 31:                      // '$'\n      case 32:                      // '%'\n        lookahead2W(255);           // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n        break;\n      case 40:                      // '+'\n      case 42:                      // '-'\n        lookahead2W(267);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        break;\n      case 86:                      // 'break'\n      case 102:                     // 'continue'\n        lookahead2W(201);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |\n        break;\n      case 110:                     // 'delete'\n      case 159:                     // 'insert'\n        lookahead2W(209);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |\n        break;\n      case 184:                     // 'namespace'\n      case 216:                     // 'processing-instruction'\n        lookahead2W(268);           // NCName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' |\n        break;\n      case 103:                     // 'copy'\n      case 129:                     // 'every'\n      case 235:                     // 'some'\n      case 262:                     // 'variable'\n        lookahead2W(197);           // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' |\n        break;\n      case 8:                       // IntegerLiteral\n      case 9:                       // DecimalLiteral\n      case 10:                      // DoubleLiteral\n      case 11:                      // StringLiteral\n      case 44:                      // '.'\n        lookahead2W(192);           // S^WS | EOF | '!' | '!=' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | ';' |\n        break;\n      case 78:                      // 'array'\n      case 124:                     // 'empty-sequence'\n      case 165:                     // 'item'\n      case 167:                     // 'json-item'\n      case 242:                     // 'structured-item'\n        lookahead2W(191);           // S^WS | EOF | '!' | '!=' | '#' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | ';' |\n        break;\n      case 96:                      // 'comment'\n      case 119:                     // 'document'\n      case 202:                     // 'ordered'\n      case 244:                     // 'text'\n      case 250:                     // 'try'\n      case 256:                     // 'unordered'\n        lookahead2W(204);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |\n        break;\n      case 73:                      // 'ancestor'\n      case 74:                      // 'ancestor-or-self'\n      case 93:                      // 'child'\n      case 111:                     // 'descendant'\n      case 112:                     // 'descendant-or-self'\n      case 135:                     // 'following'\n      case 136:                     // 'following-sibling'\n      case 206:                     // 'parent'\n      case 212:                     // 'preceding'\n      case 213:                     // 'preceding-sibling'\n      case 229:                     // 'self'\n        lookahead2W(198);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |\n        break;\n      case 6:                       // EQName^Token\n      case 70:                      // 'after'\n      case 72:                      // 'allowing'\n      case 75:                      // 'and'\n      case 79:                      // 'as'\n      case 80:                      // 'ascending'\n      case 81:                      // 'at'\n      case 83:                      // 'base-uri'\n      case 84:                      // 'before'\n      case 85:                      // 'boundary-space'\n      case 88:                      // 'case'\n      case 89:                      // 'cast'\n      case 90:                      // 'castable'\n      case 91:                      // 'catch'\n      case 94:                      // 'collation'\n      case 97:                      // 'constraint'\n      case 98:                      // 'construction'\n      case 101:                     // 'context'\n      case 104:                     // 'copy-namespaces'\n      case 105:                     // 'count'\n      case 106:                     // 'decimal-format'\n      case 108:                     // 'declare'\n      case 109:                     // 'default'\n      case 113:                     // 'descending'\n      case 118:                     // 'div'\n      case 120:                     // 'document-node'\n      case 122:                     // 'else'\n      case 123:                     // 'empty'\n      case 125:                     // 'encoding'\n      case 126:                     // 'end'\n      case 128:                     // 'eq'\n      case 131:                     // 'except'\n      case 133:                     // 'external'\n      case 134:                     // 'first'\n      case 141:                     // 'ft-option'\n      case 145:                     // 'function'\n      case 146:                     // 'ge'\n      case 148:                     // 'group'\n      case 150:                     // 'gt'\n      case 151:                     // 'idiv'\n      case 152:                     // 'if'\n      case 153:                     // 'import'\n      case 154:                     // 'in'\n      case 155:                     // 'index'\n      case 160:                     // 'instance'\n      case 161:                     // 'integrity'\n      case 162:                     // 'intersect'\n      case 163:                     // 'into'\n      case 164:                     // 'is'\n      case 166:                     // 'json'\n      case 170:                     // 'last'\n      case 171:                     // 'lax'\n      case 172:                     // 'le'\n      case 176:                     // 'loop'\n      case 178:                     // 'lt'\n      case 180:                     // 'mod'\n      case 181:                     // 'modify'\n      case 182:                     // 'module'\n      case 185:                     // 'namespace-node'\n      case 186:                     // 'ne'\n      case 191:                     // 'node'\n      case 192:                     // 'nodes'\n      case 194:                     // 'object'\n      case 198:                     // 'only'\n      case 199:                     // 'option'\n      case 200:                     // 'or'\n      case 201:                     // 'order'\n      case 203:                     // 'ordering'\n      case 220:                     // 'return'\n      case 221:                     // 'returning'\n      case 222:                     // 'revalidation'\n      case 224:                     // 'satisfies'\n      case 225:                     // 'schema'\n      case 226:                     // 'schema-attribute'\n      case 227:                     // 'schema-element'\n      case 228:                     // 'score'\n      case 234:                     // 'sliding'\n      case 236:                     // 'stable'\n      case 237:                     // 'start'\n      case 240:                     // 'strict'\n      case 243:                     // 'switch'\n      case 248:                     // 'to'\n      case 249:                     // 'treat'\n      case 251:                     // 'tumbling'\n      case 252:                     // 'type'\n      case 253:                     // 'typeswitch'\n      case 254:                     // 'union'\n      case 257:                     // 'updating'\n      case 261:                     // 'value'\n      case 263:                     // 'version'\n      case 266:                     // 'where'\n      case 267:                     // 'while'\n      case 270:                     // 'with'\n      case 274:                     // 'xquery'\n        lookahead2W(195);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk != 25                  // EOF\n       && lk != 53                  // ';'\n       && lk != 282                 // '}'\n       && lk != 12805               // Wildcard EOF\n       && lk != 12806               // EQName^Token EOF\n       && lk != 12808               // IntegerLiteral EOF\n       && lk != 12809               // DecimalLiteral EOF\n       && lk != 12810               // DoubleLiteral EOF\n       && lk != 12811               // StringLiteral EOF\n       && lk != 12844               // '.' EOF\n       && lk != 12845               // '..' EOF\n       && lk != 12846               // '/' EOF\n       && lk != 12870               // 'after' EOF\n       && lk != 12872               // 'allowing' EOF\n       && lk != 12873               // 'ancestor' EOF\n       && lk != 12874               // 'ancestor-or-self' EOF\n       && lk != 12875               // 'and' EOF\n       && lk != 12877               // 'append' EOF\n       && lk != 12878               // 'array' EOF\n       && lk != 12879               // 'as' EOF\n       && lk != 12880               // 'ascending' EOF\n       && lk != 12881               // 'at' EOF\n       && lk != 12882               // 'attribute' EOF\n       && lk != 12883               // 'base-uri' EOF\n       && lk != 12884               // 'before' EOF\n       && lk != 12885               // 'boundary-space' EOF\n       && lk != 12886               // 'break' EOF\n       && lk != 12888               // 'case' EOF\n       && lk != 12889               // 'cast' EOF\n       && lk != 12890               // 'castable' EOF\n       && lk != 12891               // 'catch' EOF\n       && lk != 12893               // 'child' EOF\n       && lk != 12894               // 'collation' EOF\n       && lk != 12896               // 'comment' EOF\n       && lk != 12897               // 'constraint' EOF\n       && lk != 12898               // 'construction' EOF\n       && lk != 12901               // 'context' EOF\n       && lk != 12902               // 'continue' EOF\n       && lk != 12903               // 'copy' EOF\n       && lk != 12904               // 'copy-namespaces' EOF\n       && lk != 12905               // 'count' EOF\n       && lk != 12906               // 'decimal-format' EOF\n       && lk != 12908               // 'declare' EOF\n       && lk != 12909               // 'default' EOF\n       && lk != 12910               // 'delete' EOF\n       && lk != 12911               // 'descendant' EOF\n       && lk != 12912               // 'descendant-or-self' EOF\n       && lk != 12913               // 'descending' EOF\n       && lk != 12918               // 'div' EOF\n       && lk != 12919               // 'document' EOF\n       && lk != 12920               // 'document-node' EOF\n       && lk != 12921               // 'element' EOF\n       && lk != 12922               // 'else' EOF\n       && lk != 12923               // 'empty' EOF\n       && lk != 12924               // 'empty-sequence' EOF\n       && lk != 12925               // 'encoding' EOF\n       && lk != 12926               // 'end' EOF\n       && lk != 12928               // 'eq' EOF\n       && lk != 12929               // 'every' EOF\n       && lk != 12931               // 'except' EOF\n       && lk != 12932               // 'exit' EOF\n       && lk != 12933               // 'external' EOF\n       && lk != 12934               // 'first' EOF\n       && lk != 12935               // 'following' EOF\n       && lk != 12936               // 'following-sibling' EOF\n       && lk != 12937               // 'for' EOF\n       && lk != 12941               // 'ft-option' EOF\n       && lk != 12945               // 'function' EOF\n       && lk != 12946               // 'ge' EOF\n       && lk != 12948               // 'group' EOF\n       && lk != 12950               // 'gt' EOF\n       && lk != 12951               // 'idiv' EOF\n       && lk != 12952               // 'if' EOF\n       && lk != 12953               // 'import' EOF\n       && lk != 12954               // 'in' EOF\n       && lk != 12955               // 'index' EOF\n       && lk != 12959               // 'insert' EOF\n       && lk != 12960               // 'instance' EOF\n       && lk != 12961               // 'integrity' EOF\n       && lk != 12962               // 'intersect' EOF\n       && lk != 12963               // 'into' EOF\n       && lk != 12964               // 'is' EOF\n       && lk != 12965               // 'item' EOF\n       && lk != 12966               // 'json' EOF\n       && lk != 12967               // 'json-item' EOF\n       && lk != 12970               // 'last' EOF\n       && lk != 12971               // 'lax' EOF\n       && lk != 12972               // 'le' EOF\n       && lk != 12974               // 'let' EOF\n       && lk != 12976               // 'loop' EOF\n       && lk != 12978               // 'lt' EOF\n       && lk != 12980               // 'mod' EOF\n       && lk != 12981               // 'modify' EOF\n       && lk != 12982               // 'module' EOF\n       && lk != 12984               // 'namespace' EOF\n       && lk != 12985               // 'namespace-node' EOF\n       && lk != 12986               // 'ne' EOF\n       && lk != 12991               // 'node' EOF\n       && lk != 12992               // 'nodes' EOF\n       && lk != 12994               // 'object' EOF\n       && lk != 12998               // 'only' EOF\n       && lk != 12999               // 'option' EOF\n       && lk != 13000               // 'or' EOF\n       && lk != 13001               // 'order' EOF\n       && lk != 13002               // 'ordered' EOF\n       && lk != 13003               // 'ordering' EOF\n       && lk != 13006               // 'parent' EOF\n       && lk != 13012               // 'preceding' EOF\n       && lk != 13013               // 'preceding-sibling' EOF\n       && lk != 13016               // 'processing-instruction' EOF\n       && lk != 13018               // 'rename' EOF\n       && lk != 13019               // 'replace' EOF\n       && lk != 13020               // 'return' EOF\n       && lk != 13021               // 'returning' EOF\n       && lk != 13022               // 'revalidation' EOF\n       && lk != 13024               // 'satisfies' EOF\n       && lk != 13025               // 'schema' EOF\n       && lk != 13026               // 'schema-attribute' EOF\n       && lk != 13027               // 'schema-element' EOF\n       && lk != 13028               // 'score' EOF\n       && lk != 13029               // 'self' EOF\n       && lk != 13034               // 'sliding' EOF\n       && lk != 13035               // 'some' EOF\n       && lk != 13036               // 'stable' EOF\n       && lk != 13037               // 'start' EOF\n       && lk != 13040               // 'strict' EOF\n       && lk != 13042               // 'structured-item' EOF\n       && lk != 13043               // 'switch' EOF\n       && lk != 13044               // 'text' EOF\n       && lk != 13048               // 'to' EOF\n       && lk != 13049               // 'treat' EOF\n       && lk != 13050               // 'try' EOF\n       && lk != 13051               // 'tumbling' EOF\n       && lk != 13052               // 'type' EOF\n       && lk != 13053               // 'typeswitch' EOF\n       && lk != 13054               // 'union' EOF\n       && lk != 13056               // 'unordered' EOF\n       && lk != 13057               // 'updating' EOF\n       && lk != 13060               // 'validate' EOF\n       && lk != 13061               // 'value' EOF\n       && lk != 13062               // 'variable' EOF\n       && lk != 13063               // 'version' EOF\n       && lk != 13066               // 'where' EOF\n       && lk != 13067               // 'while' EOF\n       && lk != 13070               // 'with' EOF\n       && lk != 13074               // 'xquery' EOF\n       && lk != 16134               // 'variable' '$'\n       && lk != 20997               // Wildcard ','\n       && lk != 20998               // EQName^Token ','\n       && lk != 21000               // IntegerLiteral ','\n       && lk != 21001               // DecimalLiteral ','\n       && lk != 21002               // DoubleLiteral ','\n       && lk != 21003               // StringLiteral ','\n       && lk != 21036               // '.' ','\n       && lk != 21037               // '..' ','\n       && lk != 21038               // '/' ','\n       && lk != 21062               // 'after' ','\n       && lk != 21064               // 'allowing' ','\n       && lk != 21065               // 'ancestor' ','\n       && lk != 21066               // 'ancestor-or-self' ','\n       && lk != 21067               // 'and' ','\n       && lk != 21069               // 'append' ','\n       && lk != 21070               // 'array' ','\n       && lk != 21071               // 'as' ','\n       && lk != 21072               // 'ascending' ','\n       && lk != 21073               // 'at' ','\n       && lk != 21074               // 'attribute' ','\n       && lk != 21075               // 'base-uri' ','\n       && lk != 21076               // 'before' ','\n       && lk != 21077               // 'boundary-space' ','\n       && lk != 21078               // 'break' ','\n       && lk != 21080               // 'case' ','\n       && lk != 21081               // 'cast' ','\n       && lk != 21082               // 'castable' ','\n       && lk != 21083               // 'catch' ','\n       && lk != 21085               // 'child' ','\n       && lk != 21086               // 'collation' ','\n       && lk != 21088               // 'comment' ','\n       && lk != 21089               // 'constraint' ','\n       && lk != 21090               // 'construction' ','\n       && lk != 21093               // 'context' ','\n       && lk != 21094               // 'continue' ','\n       && lk != 21095               // 'copy' ','\n       && lk != 21096               // 'copy-namespaces' ','\n       && lk != 21097               // 'count' ','\n       && lk != 21098               // 'decimal-format' ','\n       && lk != 21100               // 'declare' ','\n       && lk != 21101               // 'default' ','\n       && lk != 21102               // 'delete' ','\n       && lk != 21103               // 'descendant' ','\n       && lk != 21104               // 'descendant-or-self' ','\n       && lk != 21105               // 'descending' ','\n       && lk != 21110               // 'div' ','\n       && lk != 21111               // 'document' ','\n       && lk != 21112               // 'document-node' ','\n       && lk != 21113               // 'element' ','\n       && lk != 21114               // 'else' ','\n       && lk != 21115               // 'empty' ','\n       && lk != 21116               // 'empty-sequence' ','\n       && lk != 21117               // 'encoding' ','\n       && lk != 21118               // 'end' ','\n       && lk != 21120               // 'eq' ','\n       && lk != 21121               // 'every' ','\n       && lk != 21123               // 'except' ','\n       && lk != 21124               // 'exit' ','\n       && lk != 21125               // 'external' ','\n       && lk != 21126               // 'first' ','\n       && lk != 21127               // 'following' ','\n       && lk != 21128               // 'following-sibling' ','\n       && lk != 21129               // 'for' ','\n       && lk != 21133               // 'ft-option' ','\n       && lk != 21137               // 'function' ','\n       && lk != 21138               // 'ge' ','\n       && lk != 21140               // 'group' ','\n       && lk != 21142               // 'gt' ','\n       && lk != 21143               // 'idiv' ','\n       && lk != 21144               // 'if' ','\n       && lk != 21145               // 'import' ','\n       && lk != 21146               // 'in' ','\n       && lk != 21147               // 'index' ','\n       && lk != 21151               // 'insert' ','\n       && lk != 21152               // 'instance' ','\n       && lk != 21153               // 'integrity' ','\n       && lk != 21154               // 'intersect' ','\n       && lk != 21155               // 'into' ','\n       && lk != 21156               // 'is' ','\n       && lk != 21157               // 'item' ','\n       && lk != 21158               // 'json' ','\n       && lk != 21159               // 'json-item' ','\n       && lk != 21162               // 'last' ','\n       && lk != 21163               // 'lax' ','\n       && lk != 21164               // 'le' ','\n       && lk != 21166               // 'let' ','\n       && lk != 21168               // 'loop' ','\n       && lk != 21170               // 'lt' ','\n       && lk != 21172               // 'mod' ','\n       && lk != 21173               // 'modify' ','\n       && lk != 21174               // 'module' ','\n       && lk != 21176               // 'namespace' ','\n       && lk != 21177               // 'namespace-node' ','\n       && lk != 21178               // 'ne' ','\n       && lk != 21183               // 'node' ','\n       && lk != 21184               // 'nodes' ','\n       && lk != 21186               // 'object' ','\n       && lk != 21190               // 'only' ','\n       && lk != 21191               // 'option' ','\n       && lk != 21192               // 'or' ','\n       && lk != 21193               // 'order' ','\n       && lk != 21194               // 'ordered' ','\n       && lk != 21195               // 'ordering' ','\n       && lk != 21198               // 'parent' ','\n       && lk != 21204               // 'preceding' ','\n       && lk != 21205               // 'preceding-sibling' ','\n       && lk != 21208               // 'processing-instruction' ','\n       && lk != 21210               // 'rename' ','\n       && lk != 21211               // 'replace' ','\n       && lk != 21212               // 'return' ','\n       && lk != 21213               // 'returning' ','\n       && lk != 21214               // 'revalidation' ','\n       && lk != 21216               // 'satisfies' ','\n       && lk != 21217               // 'schema' ','\n       && lk != 21218               // 'schema-attribute' ','\n       && lk != 21219               // 'schema-element' ','\n       && lk != 21220               // 'score' ','\n       && lk != 21221               // 'self' ','\n       && lk != 21226               // 'sliding' ','\n       && lk != 21227               // 'some' ','\n       && lk != 21228               // 'stable' ','\n       && lk != 21229               // 'start' ','\n       && lk != 21232               // 'strict' ','\n       && lk != 21234               // 'structured-item' ','\n       && lk != 21235               // 'switch' ','\n       && lk != 21236               // 'text' ','\n       && lk != 21240               // 'to' ','\n       && lk != 21241               // 'treat' ','\n       && lk != 21242               // 'try' ','\n       && lk != 21243               // 'tumbling' ','\n       && lk != 21244               // 'type' ','\n       && lk != 21245               // 'typeswitch' ','\n       && lk != 21246               // 'union' ','\n       && lk != 21248               // 'unordered' ','\n       && lk != 21249               // 'updating' ','\n       && lk != 21252               // 'validate' ','\n       && lk != 21253               // 'value' ','\n       && lk != 21254               // 'variable' ','\n       && lk != 21255               // 'version' ','\n       && lk != 21258               // 'where' ','\n       && lk != 21259               // 'while' ','\n       && lk != 21262               // 'with' ','\n       && lk != 21266               // 'xquery' ','\n       && lk != 27141               // Wildcard ';'\n       && lk != 27142               // EQName^Token ';'\n       && lk != 27144               // IntegerLiteral ';'\n       && lk != 27145               // DecimalLiteral ';'\n       && lk != 27146               // DoubleLiteral ';'\n       && lk != 27147               // StringLiteral ';'\n       && lk != 27180               // '.' ';'\n       && lk != 27181               // '..' ';'\n       && lk != 27182               // '/' ';'\n       && lk != 27206               // 'after' ';'\n       && lk != 27208               // 'allowing' ';'\n       && lk != 27209               // 'ancestor' ';'\n       && lk != 27210               // 'ancestor-or-self' ';'\n       && lk != 27211               // 'and' ';'\n       && lk != 27213               // 'append' ';'\n       && lk != 27214               // 'array' ';'\n       && lk != 27215               // 'as' ';'\n       && lk != 27216               // 'ascending' ';'\n       && lk != 27217               // 'at' ';'\n       && lk != 27218               // 'attribute' ';'\n       && lk != 27219               // 'base-uri' ';'\n       && lk != 27220               // 'before' ';'\n       && lk != 27221               // 'boundary-space' ';'\n       && lk != 27222               // 'break' ';'\n       && lk != 27224               // 'case' ';'\n       && lk != 27225               // 'cast' ';'\n       && lk != 27226               // 'castable' ';'\n       && lk != 27227               // 'catch' ';'\n       && lk != 27229               // 'child' ';'\n       && lk != 27230               // 'collation' ';'\n       && lk != 27232               // 'comment' ';'\n       && lk != 27233               // 'constraint' ';'\n       && lk != 27234               // 'construction' ';'\n       && lk != 27237               // 'context' ';'\n       && lk != 27238               // 'continue' ';'\n       && lk != 27239               // 'copy' ';'\n       && lk != 27240               // 'copy-namespaces' ';'\n       && lk != 27241               // 'count' ';'\n       && lk != 27242               // 'decimal-format' ';'\n       && lk != 27244               // 'declare' ';'\n       && lk != 27245               // 'default' ';'\n       && lk != 27246               // 'delete' ';'\n       && lk != 27247               // 'descendant' ';'\n       && lk != 27248               // 'descendant-or-self' ';'\n       && lk != 27249               // 'descending' ';'\n       && lk != 27254               // 'div' ';'\n       && lk != 27255               // 'document' ';'\n       && lk != 27256               // 'document-node' ';'\n       && lk != 27257               // 'element' ';'\n       && lk != 27258               // 'else' ';'\n       && lk != 27259               // 'empty' ';'\n       && lk != 27260               // 'empty-sequence' ';'\n       && lk != 27261               // 'encoding' ';'\n       && lk != 27262               // 'end' ';'\n       && lk != 27264               // 'eq' ';'\n       && lk != 27265               // 'every' ';'\n       && lk != 27267               // 'except' ';'\n       && lk != 27268               // 'exit' ';'\n       && lk != 27269               // 'external' ';'\n       && lk != 27270               // 'first' ';'\n       && lk != 27271               // 'following' ';'\n       && lk != 27272               // 'following-sibling' ';'\n       && lk != 27273               // 'for' ';'\n       && lk != 27277               // 'ft-option' ';'\n       && lk != 27281               // 'function' ';'\n       && lk != 27282               // 'ge' ';'\n       && lk != 27284               // 'group' ';'\n       && lk != 27286               // 'gt' ';'\n       && lk != 27287               // 'idiv' ';'\n       && lk != 27288               // 'if' ';'\n       && lk != 27289               // 'import' ';'\n       && lk != 27290               // 'in' ';'\n       && lk != 27291               // 'index' ';'\n       && lk != 27295               // 'insert' ';'\n       && lk != 27296               // 'instance' ';'\n       && lk != 27297               // 'integrity' ';'\n       && lk != 27298               // 'intersect' ';'\n       && lk != 27299               // 'into' ';'\n       && lk != 27300               // 'is' ';'\n       && lk != 27301               // 'item' ';'\n       && lk != 27302               // 'json' ';'\n       && lk != 27303               // 'json-item' ';'\n       && lk != 27306               // 'last' ';'\n       && lk != 27307               // 'lax' ';'\n       && lk != 27308               // 'le' ';'\n       && lk != 27310               // 'let' ';'\n       && lk != 27312               // 'loop' ';'\n       && lk != 27314               // 'lt' ';'\n       && lk != 27316               // 'mod' ';'\n       && lk != 27317               // 'modify' ';'\n       && lk != 27318               // 'module' ';'\n       && lk != 27320               // 'namespace' ';'\n       && lk != 27321               // 'namespace-node' ';'\n       && lk != 27322               // 'ne' ';'\n       && lk != 27327               // 'node' ';'\n       && lk != 27328               // 'nodes' ';'\n       && lk != 27330               // 'object' ';'\n       && lk != 27334               // 'only' ';'\n       && lk != 27335               // 'option' ';'\n       && lk != 27336               // 'or' ';'\n       && lk != 27337               // 'order' ';'\n       && lk != 27338               // 'ordered' ';'\n       && lk != 27339               // 'ordering' ';'\n       && lk != 27342               // 'parent' ';'\n       && lk != 27348               // 'preceding' ';'\n       && lk != 27349               // 'preceding-sibling' ';'\n       && lk != 27352               // 'processing-instruction' ';'\n       && lk != 27354               // 'rename' ';'\n       && lk != 27355               // 'replace' ';'\n       && lk != 27356               // 'return' ';'\n       && lk != 27357               // 'returning' ';'\n       && lk != 27358               // 'revalidation' ';'\n       && lk != 27360               // 'satisfies' ';'\n       && lk != 27361               // 'schema' ';'\n       && lk != 27362               // 'schema-attribute' ';'\n       && lk != 27363               // 'schema-element' ';'\n       && lk != 27364               // 'score' ';'\n       && lk != 27365               // 'self' ';'\n       && lk != 27370               // 'sliding' ';'\n       && lk != 27371               // 'some' ';'\n       && lk != 27372               // 'stable' ';'\n       && lk != 27373               // 'start' ';'\n       && lk != 27376               // 'strict' ';'\n       && lk != 27378               // 'structured-item' ';'\n       && lk != 27379               // 'switch' ';'\n       && lk != 27380               // 'text' ';'\n       && lk != 27384               // 'to' ';'\n       && lk != 27385               // 'treat' ';'\n       && lk != 27386               // 'try' ';'\n       && lk != 27387               // 'tumbling' ';'\n       && lk != 27388               // 'type' ';'\n       && lk != 27389               // 'typeswitch' ';'\n       && lk != 27390               // 'union' ';'\n       && lk != 27392               // 'unordered' ';'\n       && lk != 27393               // 'updating' ';'\n       && lk != 27396               // 'validate' ';'\n       && lk != 27397               // 'value' ';'\n       && lk != 27398               // 'variable' ';'\n       && lk != 27399               // 'version' ';'\n       && lk != 27402               // 'where' ';'\n       && lk != 27403               // 'while' ';'\n       && lk != 27406               // 'with' ';'\n       && lk != 27410               // 'xquery' ';'\n       && lk != 90198               // 'break' 'loop'\n       && lk != 90214               // 'continue' 'loop'\n       && lk != 113284              // 'exit' 'returning'\n       && lk != 144389              // Wildcard '}'\n       && lk != 144390              // EQName^Token '}'\n       && lk != 144392              // IntegerLiteral '}'\n       && lk != 144393              // DecimalLiteral '}'\n       && lk != 144394              // DoubleLiteral '}'\n       && lk != 144395              // StringLiteral '}'\n       && lk != 144428              // '.' '}'\n       && lk != 144429              // '..' '}'\n       && lk != 144430              // '/' '}'\n       && lk != 144454              // 'after' '}'\n       && lk != 144456              // 'allowing' '}'\n       && lk != 144457              // 'ancestor' '}'\n       && lk != 144458              // 'ancestor-or-self' '}'\n       && lk != 144459              // 'and' '}'\n       && lk != 144461              // 'append' '}'\n       && lk != 144462              // 'array' '}'\n       && lk != 144463              // 'as' '}'\n       && lk != 144464              // 'ascending' '}'\n       && lk != 144465              // 'at' '}'\n       && lk != 144466              // 'attribute' '}'\n       && lk != 144467              // 'base-uri' '}'\n       && lk != 144468              // 'before' '}'\n       && lk != 144469              // 'boundary-space' '}'\n       && lk != 144470              // 'break' '}'\n       && lk != 144472              // 'case' '}'\n       && lk != 144473              // 'cast' '}'\n       && lk != 144474              // 'castable' '}'\n       && lk != 144475              // 'catch' '}'\n       && lk != 144477              // 'child' '}'\n       && lk != 144478              // 'collation' '}'\n       && lk != 144480              // 'comment' '}'\n       && lk != 144481              // 'constraint' '}'\n       && lk != 144482              // 'construction' '}'\n       && lk != 144485              // 'context' '}'\n       && lk != 144486              // 'continue' '}'\n       && lk != 144487              // 'copy' '}'\n       && lk != 144488              // 'copy-namespaces' '}'\n       && lk != 144489              // 'count' '}'\n       && lk != 144490              // 'decimal-format' '}'\n       && lk != 144492              // 'declare' '}'\n       && lk != 144493              // 'default' '}'\n       && lk != 144494              // 'delete' '}'\n       && lk != 144495              // 'descendant' '}'\n       && lk != 144496              // 'descendant-or-self' '}'\n       && lk != 144497              // 'descending' '}'\n       && lk != 144502              // 'div' '}'\n       && lk != 144503              // 'document' '}'\n       && lk != 144504              // 'document-node' '}'\n       && lk != 144505              // 'element' '}'\n       && lk != 144506              // 'else' '}'\n       && lk != 144507              // 'empty' '}'\n       && lk != 144508              // 'empty-sequence' '}'\n       && lk != 144509              // 'encoding' '}'\n       && lk != 144510              // 'end' '}'\n       && lk != 144512              // 'eq' '}'\n       && lk != 144513              // 'every' '}'\n       && lk != 144515              // 'except' '}'\n       && lk != 144516              // 'exit' '}'\n       && lk != 144517              // 'external' '}'\n       && lk != 144518              // 'first' '}'\n       && lk != 144519              // 'following' '}'\n       && lk != 144520              // 'following-sibling' '}'\n       && lk != 144521              // 'for' '}'\n       && lk != 144525              // 'ft-option' '}'\n       && lk != 144529              // 'function' '}'\n       && lk != 144530              // 'ge' '}'\n       && lk != 144532              // 'group' '}'\n       && lk != 144534              // 'gt' '}'\n       && lk != 144535              // 'idiv' '}'\n       && lk != 144536              // 'if' '}'\n       && lk != 144537              // 'import' '}'\n       && lk != 144538              // 'in' '}'\n       && lk != 144539              // 'index' '}'\n       && lk != 144543              // 'insert' '}'\n       && lk != 144544              // 'instance' '}'\n       && lk != 144545              // 'integrity' '}'\n       && lk != 144546              // 'intersect' '}'\n       && lk != 144547              // 'into' '}'\n       && lk != 144548              // 'is' '}'\n       && lk != 144549              // 'item' '}'\n       && lk != 144550              // 'json' '}'\n       && lk != 144551              // 'json-item' '}'\n       && lk != 144554              // 'last' '}'\n       && lk != 144555              // 'lax' '}'\n       && lk != 144556              // 'le' '}'\n       && lk != 144558              // 'let' '}'\n       && lk != 144560              // 'loop' '}'\n       && lk != 144562              // 'lt' '}'\n       && lk != 144564              // 'mod' '}'\n       && lk != 144565              // 'modify' '}'\n       && lk != 144566              // 'module' '}'\n       && lk != 144568              // 'namespace' '}'\n       && lk != 144569              // 'namespace-node' '}'\n       && lk != 144570              // 'ne' '}'\n       && lk != 144575              // 'node' '}'\n       && lk != 144576              // 'nodes' '}'\n       && lk != 144578              // 'object' '}'\n       && lk != 144582              // 'only' '}'\n       && lk != 144583              // 'option' '}'\n       && lk != 144584              // 'or' '}'\n       && lk != 144585              // 'order' '}'\n       && lk != 144586              // 'ordered' '}'\n       && lk != 144587              // 'ordering' '}'\n       && lk != 144590              // 'parent' '}'\n       && lk != 144596              // 'preceding' '}'\n       && lk != 144597              // 'preceding-sibling' '}'\n       && lk != 144600              // 'processing-instruction' '}'\n       && lk != 144602              // 'rename' '}'\n       && lk != 144603              // 'replace' '}'\n       && lk != 144604              // 'return' '}'\n       && lk != 144605              // 'returning' '}'\n       && lk != 144606              // 'revalidation' '}'\n       && lk != 144608              // 'satisfies' '}'\n       && lk != 144609              // 'schema' '}'\n       && lk != 144610              // 'schema-attribute' '}'\n       && lk != 144611              // 'schema-element' '}'\n       && lk != 144612              // 'score' '}'\n       && lk != 144613              // 'self' '}'\n       && lk != 144618              // 'sliding' '}'\n       && lk != 144619              // 'some' '}'\n       && lk != 144620              // 'stable' '}'\n       && lk != 144621              // 'start' '}'\n       && lk != 144624              // 'strict' '}'\n       && lk != 144626              // 'structured-item' '}'\n       && lk != 144627              // 'switch' '}'\n       && lk != 144628              // 'text' '}'\n       && lk != 144632              // 'to' '}'\n       && lk != 144633              // 'treat' '}'\n       && lk != 144634              // 'try' '}'\n       && lk != 144635              // 'tumbling' '}'\n       && lk != 144636              // 'type' '}'\n       && lk != 144637              // 'typeswitch' '}'\n       && lk != 144638              // 'union' '}'\n       && lk != 144640              // 'unordered' '}'\n       && lk != 144641              // 'updating' '}'\n       && lk != 144644              // 'validate' '}'\n       && lk != 144645              // 'value' '}'\n       && lk != 144646              // 'variable' '}'\n       && lk != 144647              // 'version' '}'\n       && lk != 144650              // 'where' '}'\n       && lk != 144651              // 'while' '}'\n       && lk != 144654              // 'with' '}'\n       && lk != 144658)             // 'xquery' '}'\n      {\n        lk = memoized(6, e0);\n        if (lk == 0)\n        {\n          var b0A = b0; var e0A = e0; var l1A = l1;\n          var b1A = b1; var e1A = e1; var l2A = l2;\n          var b2A = b2; var e2A = e2;\n          try\n          {\n            try_Statement();\n            memoize(6, e0A, -1);\n            continue;\n          }\n          catch (p1A)\n          {\n            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n            b2 = b2A; e2 = e2A; end = e2A; }}\n            memoize(6, e0A, -2);\n            break;\n          }\n        }\n      }\n      if (lk != -1\n       && lk != 53                  // ';'\n       && lk != 16134               // 'variable' '$'\n       && lk != 27141               // Wildcard ';'\n       && lk != 27142               // EQName^Token ';'\n       && lk != 27144               // IntegerLiteral ';'\n       && lk != 27145               // DecimalLiteral ';'\n       && lk != 27146               // DoubleLiteral ';'\n       && lk != 27147               // StringLiteral ';'\n       && lk != 27180               // '.' ';'\n       && lk != 27181               // '..' ';'\n       && lk != 27182               // '/' ';'\n       && lk != 27206               // 'after' ';'\n       && lk != 27208               // 'allowing' ';'\n       && lk != 27209               // 'ancestor' ';'\n       && lk != 27210               // 'ancestor-or-self' ';'\n       && lk != 27211               // 'and' ';'\n       && lk != 27213               // 'append' ';'\n       && lk != 27214               // 'array' ';'\n       && lk != 27215               // 'as' ';'\n       && lk != 27216               // 'ascending' ';'\n       && lk != 27217               // 'at' ';'\n       && lk != 27218               // 'attribute' ';'\n       && lk != 27219               // 'base-uri' ';'\n       && lk != 27220               // 'before' ';'\n       && lk != 27221               // 'boundary-space' ';'\n       && lk != 27222               // 'break' ';'\n       && lk != 27224               // 'case' ';'\n       && lk != 27225               // 'cast' ';'\n       && lk != 27226               // 'castable' ';'\n       && lk != 27227               // 'catch' ';'\n       && lk != 27229               // 'child' ';'\n       && lk != 27230               // 'collation' ';'\n       && lk != 27232               // 'comment' ';'\n       && lk != 27233               // 'constraint' ';'\n       && lk != 27234               // 'construction' ';'\n       && lk != 27237               // 'context' ';'\n       && lk != 27238               // 'continue' ';'\n       && lk != 27239               // 'copy' ';'\n       && lk != 27240               // 'copy-namespaces' ';'\n       && lk != 27241               // 'count' ';'\n       && lk != 27242               // 'decimal-format' ';'\n       && lk != 27244               // 'declare' ';'\n       && lk != 27245               // 'default' ';'\n       && lk != 27246               // 'delete' ';'\n       && lk != 27247               // 'descendant' ';'\n       && lk != 27248               // 'descendant-or-self' ';'\n       && lk != 27249               // 'descending' ';'\n       && lk != 27254               // 'div' ';'\n       && lk != 27255               // 'document' ';'\n       && lk != 27256               // 'document-node' ';'\n       && lk != 27257               // 'element' ';'\n       && lk != 27258               // 'else' ';'\n       && lk != 27259               // 'empty' ';'\n       && lk != 27260               // 'empty-sequence' ';'\n       && lk != 27261               // 'encoding' ';'\n       && lk != 27262               // 'end' ';'\n       && lk != 27264               // 'eq' ';'\n       && lk != 27265               // 'every' ';'\n       && lk != 27267               // 'except' ';'\n       && lk != 27268               // 'exit' ';'\n       && lk != 27269               // 'external' ';'\n       && lk != 27270               // 'first' ';'\n       && lk != 27271               // 'following' ';'\n       && lk != 27272               // 'following-sibling' ';'\n       && lk != 27273               // 'for' ';'\n       && lk != 27277               // 'ft-option' ';'\n       && lk != 27281               // 'function' ';'\n       && lk != 27282               // 'ge' ';'\n       && lk != 27284               // 'group' ';'\n       && lk != 27286               // 'gt' ';'\n       && lk != 27287               // 'idiv' ';'\n       && lk != 27288               // 'if' ';'\n       && lk != 27289               // 'import' ';'\n       && lk != 27290               // 'in' ';'\n       && lk != 27291               // 'index' ';'\n       && lk != 27295               // 'insert' ';'\n       && lk != 27296               // 'instance' ';'\n       && lk != 27297               // 'integrity' ';'\n       && lk != 27298               // 'intersect' ';'\n       && lk != 27299               // 'into' ';'\n       && lk != 27300               // 'is' ';'\n       && lk != 27301               // 'item' ';'\n       && lk != 27302               // 'json' ';'\n       && lk != 27303               // 'json-item' ';'\n       && lk != 27306               // 'last' ';'\n       && lk != 27307               // 'lax' ';'\n       && lk != 27308               // 'le' ';'\n       && lk != 27310               // 'let' ';'\n       && lk != 27312               // 'loop' ';'\n       && lk != 27314               // 'lt' ';'\n       && lk != 27316               // 'mod' ';'\n       && lk != 27317               // 'modify' ';'\n       && lk != 27318               // 'module' ';'\n       && lk != 27320               // 'namespace' ';'\n       && lk != 27321               // 'namespace-node' ';'\n       && lk != 27322               // 'ne' ';'\n       && lk != 27327               // 'node' ';'\n       && lk != 27328               // 'nodes' ';'\n       && lk != 27330               // 'object' ';'\n       && lk != 27334               // 'only' ';'\n       && lk != 27335               // 'option' ';'\n       && lk != 27336               // 'or' ';'\n       && lk != 27337               // 'order' ';'\n       && lk != 27338               // 'ordered' ';'\n       && lk != 27339               // 'ordering' ';'\n       && lk != 27342               // 'parent' ';'\n       && lk != 27348               // 'preceding' ';'\n       && lk != 27349               // 'preceding-sibling' ';'\n       && lk != 27352               // 'processing-instruction' ';'\n       && lk != 27354               // 'rename' ';'\n       && lk != 27355               // 'replace' ';'\n       && lk != 27356               // 'return' ';'\n       && lk != 27357               // 'returning' ';'\n       && lk != 27358               // 'revalidation' ';'\n       && lk != 27360               // 'satisfies' ';'\n       && lk != 27361               // 'schema' ';'\n       && lk != 27362               // 'schema-attribute' ';'\n       && lk != 27363               // 'schema-element' ';'\n       && lk != 27364               // 'score' ';'\n       && lk != 27365               // 'self' ';'\n       && lk != 27370               // 'sliding' ';'\n       && lk != 27371               // 'some' ';'\n       && lk != 27372               // 'stable' ';'\n       && lk != 27373               // 'start' ';'\n       && lk != 27376               // 'strict' ';'\n       && lk != 27378               // 'structured-item' ';'\n       && lk != 27379               // 'switch' ';'\n       && lk != 27380               // 'text' ';'\n       && lk != 27384               // 'to' ';'\n       && lk != 27385               // 'treat' ';'\n       && lk != 27386               // 'try' ';'\n       && lk != 27387               // 'tumbling' ';'\n       && lk != 27388               // 'type' ';'\n       && lk != 27389               // 'typeswitch' ';'\n       && lk != 27390               // 'union' ';'\n       && lk != 27392               // 'unordered' ';'\n       && lk != 27393               // 'updating' ';'\n       && lk != 27396               // 'validate' ';'\n       && lk != 27397               // 'value' ';'\n       && lk != 27398               // 'variable' ';'\n       && lk != 27399               // 'version' ';'\n       && lk != 27402               // 'where' ';'\n       && lk != 27403               // 'while' ';'\n       && lk != 27406               // 'with' ';'\n       && lk != 27410               // 'xquery' ';'\n       && lk != 90198               // 'break' 'loop'\n       && lk != 90214               // 'continue' 'loop'\n       && lk != 113284)             // 'exit' 'returning'\n      {\n        break;\n      }\n      try_Statement();\n    }\n  }\n\n  function parse_StatementsAndExpr()\n  {\n    eventHandler.startNonterminal(\"StatementsAndExpr\", e0);\n    parse_Statements();\n    whitespace();\n    parse_Expr();\n    eventHandler.endNonterminal(\"StatementsAndExpr\", e0);\n  }\n\n  function try_StatementsAndExpr()\n  {\n    try_Statements();\n    try_Expr();\n  }\n\n  function parse_StatementsAndOptionalExpr()\n  {\n    eventHandler.startNonterminal(\"StatementsAndOptionalExpr\", e0);\n    parse_Statements();\n    if (l1 != 25                    // EOF\n     && l1 != 282)                  // '}'\n    {\n      whitespace();\n      parse_Expr();\n    }\n    eventHandler.endNonterminal(\"StatementsAndOptionalExpr\", e0);\n  }\n\n  function try_StatementsAndOptionalExpr()\n  {\n    try_Statements();\n    if (l1 != 25                    // EOF\n     && l1 != 282)                  // '}'\n    {\n      try_Expr();\n    }\n  }\n\n  function parse_Statement()\n  {\n    eventHandler.startNonterminal(\"Statement\", e0);\n    switch (l1)\n    {\n    case 132:                       // 'exit'\n      lookahead2W(189);             // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' |\n      break;\n    case 137:                       // 'for'\n      lookahead2W(196);             // S^WS | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' |\n      break;\n    case 174:                       // 'let'\n      lookahead2W(193);             // S^WS | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' |\n      break;\n    case 250:                       // 'try'\n      lookahead2W(190);             // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' |\n      break;\n    case 262:                       // 'variable'\n      lookahead2W(187);             // S^WS | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' |\n      break;\n    case 276:                       // '{'\n      lookahead2W(277);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      break;\n    case 31:                        // '$'\n    case 32:                        // '%'\n      lookahead2W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      break;\n    case 86:                        // 'break'\n    case 102:                       // 'continue'\n      lookahead2W(188);             // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' |\n      break;\n    case 152:                       // 'if'\n    case 243:                       // 'switch'\n    case 253:                       // 'typeswitch'\n    case 267:                       // 'while'\n      lookahead2W(185);             // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 2836                  // '{' Wildcard\n     || lk == 3103                  // '$' EQName^Token\n     || lk == 3104                  // '%' EQName^Token\n     || lk == 3348                  // '{' EQName^Token\n     || lk == 4372                  // '{' IntegerLiteral\n     || lk == 4884                  // '{' DecimalLiteral\n     || lk == 5396                  // '{' DoubleLiteral\n     || lk == 5908                  // '{' StringLiteral\n     || lk == 16148                 // '{' '$'\n     || lk == 16660                 // '{' '%'\n     || lk == 17675                 // 'while' '('\n     || lk == 17684                 // '{' '('\n     || lk == 18196                 // '{' '(#'\n     || lk == 20756                 // '{' '+'\n     || lk == 21780                 // '{' '-'\n     || lk == 22804                 // '{' '.'\n     || lk == 23316                 // '{' '..'\n     || lk == 23828                 // '{' '/'\n     || lk == 24340                 // '{' '//'\n     || lk == 27412                 // '{' ';'\n     || lk == 27924                 // '{' '<'\n     || lk == 28436                 // '{' '<!--'\n     || lk == 30484                 // '{' '<?'\n     || lk == 34068                 // '{' '@'\n     || lk == 35092                 // '{' '['\n     || lk == 35871                 // '$' 'after'\n     || lk == 35872                 // '%' 'after'\n     || lk == 36116                 // '{' 'after'\n     || lk == 36895                 // '$' 'allowing'\n     || lk == 36896                 // '%' 'allowing'\n     || lk == 37140                 // '{' 'allowing'\n     || lk == 37407                 // '$' 'ancestor'\n     || lk == 37408                 // '%' 'ancestor'\n     || lk == 37652                 // '{' 'ancestor'\n     || lk == 37919                 // '$' 'ancestor-or-self'\n     || lk == 37920                 // '%' 'ancestor-or-self'\n     || lk == 38164                 // '{' 'ancestor-or-self'\n     || lk == 38431                 // '$' 'and'\n     || lk == 38432                 // '%' 'and'\n     || lk == 38676                 // '{' 'and'\n     || lk == 39455                 // '$' 'append'\n     || lk == 39456                 // '%' 'append'\n     || lk == 39700                 // '{' 'append'\n     || lk == 39967                 // '$' 'array'\n     || lk == 39968                 // '%' 'array'\n     || lk == 40212                 // '{' 'array'\n     || lk == 40479                 // '$' 'as'\n     || lk == 40480                 // '%' 'as'\n     || lk == 40724                 // '{' 'as'\n     || lk == 40991                 // '$' 'ascending'\n     || lk == 40992                 // '%' 'ascending'\n     || lk == 41236                 // '{' 'ascending'\n     || lk == 41503                 // '$' 'at'\n     || lk == 41504                 // '%' 'at'\n     || lk == 41748                 // '{' 'at'\n     || lk == 42015                 // '$' 'attribute'\n     || lk == 42016                 // '%' 'attribute'\n     || lk == 42260                 // '{' 'attribute'\n     || lk == 42527                 // '$' 'base-uri'\n     || lk == 42528                 // '%' 'base-uri'\n     || lk == 42772                 // '{' 'base-uri'\n     || lk == 43039                 // '$' 'before'\n     || lk == 43040                 // '%' 'before'\n     || lk == 43284                 // '{' 'before'\n     || lk == 43551                 // '$' 'boundary-space'\n     || lk == 43552                 // '%' 'boundary-space'\n     || lk == 43796                 // '{' 'boundary-space'\n     || lk == 44063                 // '$' 'break'\n     || lk == 44064                 // '%' 'break'\n     || lk == 44308                 // '{' 'break'\n     || lk == 45087                 // '$' 'case'\n     || lk == 45088                 // '%' 'case'\n     || lk == 45332                 // '{' 'case'\n     || lk == 45599                 // '$' 'cast'\n     || lk == 45600                 // '%' 'cast'\n     || lk == 45844                 // '{' 'cast'\n     || lk == 46111                 // '$' 'castable'\n     || lk == 46112                 // '%' 'castable'\n     || lk == 46356                 // '{' 'castable'\n     || lk == 46623                 // '$' 'catch'\n     || lk == 46624                 // '%' 'catch'\n     || lk == 46868                 // '{' 'catch'\n     || lk == 47647                 // '$' 'child'\n     || lk == 47648                 // '%' 'child'\n     || lk == 47892                 // '{' 'child'\n     || lk == 48159                 // '$' 'collation'\n     || lk == 48160                 // '%' 'collation'\n     || lk == 48404                 // '{' 'collation'\n     || lk == 49183                 // '$' 'comment'\n     || lk == 49184                 // '%' 'comment'\n     || lk == 49428                 // '{' 'comment'\n     || lk == 49695                 // '$' 'constraint'\n     || lk == 49696                 // '%' 'constraint'\n     || lk == 49940                 // '{' 'constraint'\n     || lk == 50207                 // '$' 'construction'\n     || lk == 50208                 // '%' 'construction'\n     || lk == 50452                 // '{' 'construction'\n     || lk == 51743                 // '$' 'context'\n     || lk == 51744                 // '%' 'context'\n     || lk == 51988                 // '{' 'context'\n     || lk == 52255                 // '$' 'continue'\n     || lk == 52256                 // '%' 'continue'\n     || lk == 52500                 // '{' 'continue'\n     || lk == 52767                 // '$' 'copy'\n     || lk == 52768                 // '%' 'copy'\n     || lk == 53012                 // '{' 'copy'\n     || lk == 53279                 // '$' 'copy-namespaces'\n     || lk == 53280                 // '%' 'copy-namespaces'\n     || lk == 53524                 // '{' 'copy-namespaces'\n     || lk == 53791                 // '$' 'count'\n     || lk == 53792                 // '%' 'count'\n     || lk == 54036                 // '{' 'count'\n     || lk == 54303                 // '$' 'decimal-format'\n     || lk == 54304                 // '%' 'decimal-format'\n     || lk == 54548                 // '{' 'decimal-format'\n     || lk == 55327                 // '$' 'declare'\n     || lk == 55328                 // '%' 'declare'\n     || lk == 55572                 // '{' 'declare'\n     || lk == 55839                 // '$' 'default'\n     || lk == 55840                 // '%' 'default'\n     || lk == 56084                 // '{' 'default'\n     || lk == 56351                 // '$' 'delete'\n     || lk == 56352                 // '%' 'delete'\n     || lk == 56596                 // '{' 'delete'\n     || lk == 56863                 // '$' 'descendant'\n     || lk == 56864                 // '%' 'descendant'\n     || lk == 57108                 // '{' 'descendant'\n     || lk == 57375                 // '$' 'descendant-or-self'\n     || lk == 57376                 // '%' 'descendant-or-self'\n     || lk == 57620                 // '{' 'descendant-or-self'\n     || lk == 57887                 // '$' 'descending'\n     || lk == 57888                 // '%' 'descending'\n     || lk == 58132                 // '{' 'descending'\n     || lk == 60447                 // '$' 'div'\n     || lk == 60448                 // '%' 'div'\n     || lk == 60692                 // '{' 'div'\n     || lk == 60959                 // '$' 'document'\n     || lk == 60960                 // '%' 'document'\n     || lk == 61204                 // '{' 'document'\n     || lk == 61471                 // '$' 'document-node'\n     || lk == 61472                 // '%' 'document-node'\n     || lk == 61716                 // '{' 'document-node'\n     || lk == 61983                 // '$' 'element'\n     || lk == 61984                 // '%' 'element'\n     || lk == 62228                 // '{' 'element'\n     || lk == 62495                 // '$' 'else'\n     || lk == 62496                 // '%' 'else'\n     || lk == 62740                 // '{' 'else'\n     || lk == 63007                 // '$' 'empty'\n     || lk == 63008                 // '%' 'empty'\n     || lk == 63252                 // '{' 'empty'\n     || lk == 63519                 // '$' 'empty-sequence'\n     || lk == 63520                 // '%' 'empty-sequence'\n     || lk == 63764                 // '{' 'empty-sequence'\n     || lk == 64031                 // '$' 'encoding'\n     || lk == 64032                 // '%' 'encoding'\n     || lk == 64276                 // '{' 'encoding'\n     || lk == 64543                 // '$' 'end'\n     || lk == 64544                 // '%' 'end'\n     || lk == 64788                 // '{' 'end'\n     || lk == 65567                 // '$' 'eq'\n     || lk == 65568                 // '%' 'eq'\n     || lk == 65812                 // '{' 'eq'\n     || lk == 66079                 // '$' 'every'\n     || lk == 66080                 // '%' 'every'\n     || lk == 66324                 // '{' 'every'\n     || lk == 67103                 // '$' 'except'\n     || lk == 67104                 // '%' 'except'\n     || lk == 67348                 // '{' 'except'\n     || lk == 67615                 // '$' 'exit'\n     || lk == 67616                 // '%' 'exit'\n     || lk == 67860                 // '{' 'exit'\n     || lk == 68127                 // '$' 'external'\n     || lk == 68128                 // '%' 'external'\n     || lk == 68372                 // '{' 'external'\n     || lk == 68639                 // '$' 'first'\n     || lk == 68640                 // '%' 'first'\n     || lk == 68884                 // '{' 'first'\n     || lk == 69151                 // '$' 'following'\n     || lk == 69152                 // '%' 'following'\n     || lk == 69396                 // '{' 'following'\n     || lk == 69663                 // '$' 'following-sibling'\n     || lk == 69664                 // '%' 'following-sibling'\n     || lk == 69908                 // '{' 'following-sibling'\n     || lk == 70175                 // '$' 'for'\n     || lk == 70176                 // '%' 'for'\n     || lk == 70420                 // '{' 'for'\n     || lk == 72223                 // '$' 'ft-option'\n     || lk == 72224                 // '%' 'ft-option'\n     || lk == 72468                 // '{' 'ft-option'\n     || lk == 74271                 // '$' 'function'\n     || lk == 74272                 // '%' 'function'\n     || lk == 74516                 // '{' 'function'\n     || lk == 74783                 // '$' 'ge'\n     || lk == 74784                 // '%' 'ge'\n     || lk == 75028                 // '{' 'ge'\n     || lk == 75807                 // '$' 'group'\n     || lk == 75808                 // '%' 'group'\n     || lk == 76052                 // '{' 'group'\n     || lk == 76831                 // '$' 'gt'\n     || lk == 76832                 // '%' 'gt'\n     || lk == 77076                 // '{' 'gt'\n     || lk == 77343                 // '$' 'idiv'\n     || lk == 77344                 // '%' 'idiv'\n     || lk == 77588                 // '{' 'idiv'\n     || lk == 77855                 // '$' 'if'\n     || lk == 77856                 // '%' 'if'\n     || lk == 78100                 // '{' 'if'\n     || lk == 78367                 // '$' 'import'\n     || lk == 78368                 // '%' 'import'\n     || lk == 78612                 // '{' 'import'\n     || lk == 78879                 // '$' 'in'\n     || lk == 78880                 // '%' 'in'\n     || lk == 79124                 // '{' 'in'\n     || lk == 79391                 // '$' 'index'\n     || lk == 79392                 // '%' 'index'\n     || lk == 79636                 // '{' 'index'\n     || lk == 81439                 // '$' 'insert'\n     || lk == 81440                 // '%' 'insert'\n     || lk == 81684                 // '{' 'insert'\n     || lk == 81951                 // '$' 'instance'\n     || lk == 81952                 // '%' 'instance'\n     || lk == 82196                 // '{' 'instance'\n     || lk == 82463                 // '$' 'integrity'\n     || lk == 82464                 // '%' 'integrity'\n     || lk == 82708                 // '{' 'integrity'\n     || lk == 82975                 // '$' 'intersect'\n     || lk == 82976                 // '%' 'intersect'\n     || lk == 83220                 // '{' 'intersect'\n     || lk == 83487                 // '$' 'into'\n     || lk == 83488                 // '%' 'into'\n     || lk == 83732                 // '{' 'into'\n     || lk == 83999                 // '$' 'is'\n     || lk == 84000                 // '%' 'is'\n     || lk == 84244                 // '{' 'is'\n     || lk == 84511                 // '$' 'item'\n     || lk == 84512                 // '%' 'item'\n     || lk == 84756                 // '{' 'item'\n     || lk == 85023                 // '$' 'json'\n     || lk == 85024                 // '%' 'json'\n     || lk == 85268                 // '{' 'json'\n     || lk == 85535                 // '$' 'json-item'\n     || lk == 85536                 // '%' 'json-item'\n     || lk == 85780                 // '{' 'json-item'\n     || lk == 87071                 // '$' 'last'\n     || lk == 87072                 // '%' 'last'\n     || lk == 87316                 // '{' 'last'\n     || lk == 87583                 // '$' 'lax'\n     || lk == 87584                 // '%' 'lax'\n     || lk == 87828                 // '{' 'lax'\n     || lk == 88095                 // '$' 'le'\n     || lk == 88096                 // '%' 'le'\n     || lk == 88340                 // '{' 'le'\n     || lk == 89119                 // '$' 'let'\n     || lk == 89120                 // '%' 'let'\n     || lk == 89364                 // '{' 'let'\n     || lk == 90143                 // '$' 'loop'\n     || lk == 90144                 // '%' 'loop'\n     || lk == 90388                 // '{' 'loop'\n     || lk == 91167                 // '$' 'lt'\n     || lk == 91168                 // '%' 'lt'\n     || lk == 91412                 // '{' 'lt'\n     || lk == 92191                 // '$' 'mod'\n     || lk == 92192                 // '%' 'mod'\n     || lk == 92436                 // '{' 'mod'\n     || lk == 92703                 // '$' 'modify'\n     || lk == 92704                 // '%' 'modify'\n     || lk == 92948                 // '{' 'modify'\n     || lk == 93215                 // '$' 'module'\n     || lk == 93216                 // '%' 'module'\n     || lk == 93460                 // '{' 'module'\n     || lk == 94239                 // '$' 'namespace'\n     || lk == 94240                 // '%' 'namespace'\n     || lk == 94484                 // '{' 'namespace'\n     || lk == 94751                 // '$' 'namespace-node'\n     || lk == 94752                 // '%' 'namespace-node'\n     || lk == 94996                 // '{' 'namespace-node'\n     || lk == 95263                 // '$' 'ne'\n     || lk == 95264                 // '%' 'ne'\n     || lk == 95508                 // '{' 'ne'\n     || lk == 97823                 // '$' 'node'\n     || lk == 97824                 // '%' 'node'\n     || lk == 98068                 // '{' 'node'\n     || lk == 98335                 // '$' 'nodes'\n     || lk == 98336                 // '%' 'nodes'\n     || lk == 98580                 // '{' 'nodes'\n     || lk == 99359                 // '$' 'object'\n     || lk == 99360                 // '%' 'object'\n     || lk == 99604                 // '{' 'object'\n     || lk == 101407                // '$' 'only'\n     || lk == 101408                // '%' 'only'\n     || lk == 101652                // '{' 'only'\n     || lk == 101919                // '$' 'option'\n     || lk == 101920                // '%' 'option'\n     || lk == 102164                // '{' 'option'\n     || lk == 102431                // '$' 'or'\n     || lk == 102432                // '%' 'or'\n     || lk == 102676                // '{' 'or'\n     || lk == 102943                // '$' 'order'\n     || lk == 102944                // '%' 'order'\n     || lk == 103188                // '{' 'order'\n     || lk == 103455                // '$' 'ordered'\n     || lk == 103456                // '%' 'ordered'\n     || lk == 103700                // '{' 'ordered'\n     || lk == 103967                // '$' 'ordering'\n     || lk == 103968                // '%' 'ordering'\n     || lk == 104212                // '{' 'ordering'\n     || lk == 105503                // '$' 'parent'\n     || lk == 105504                // '%' 'parent'\n     || lk == 105748                // '{' 'parent'\n     || lk == 108575                // '$' 'preceding'\n     || lk == 108576                // '%' 'preceding'\n     || lk == 108820                // '{' 'preceding'\n     || lk == 109087                // '$' 'preceding-sibling'\n     || lk == 109088                // '%' 'preceding-sibling'\n     || lk == 109332                // '{' 'preceding-sibling'\n     || lk == 110623                // '$' 'processing-instruction'\n     || lk == 110624                // '%' 'processing-instruction'\n     || lk == 110868                // '{' 'processing-instruction'\n     || lk == 111647                // '$' 'rename'\n     || lk == 111648                // '%' 'rename'\n     || lk == 111892                // '{' 'rename'\n     || lk == 112159                // '$' 'replace'\n     || lk == 112160                // '%' 'replace'\n     || lk == 112404                // '{' 'replace'\n     || lk == 112671                // '$' 'return'\n     || lk == 112672                // '%' 'return'\n     || lk == 112916                // '{' 'return'\n     || lk == 113183                // '$' 'returning'\n     || lk == 113184                // '%' 'returning'\n     || lk == 113428                // '{' 'returning'\n     || lk == 113695                // '$' 'revalidation'\n     || lk == 113696                // '%' 'revalidation'\n     || lk == 113940                // '{' 'revalidation'\n     || lk == 114719                // '$' 'satisfies'\n     || lk == 114720                // '%' 'satisfies'\n     || lk == 114964                // '{' 'satisfies'\n     || lk == 115231                // '$' 'schema'\n     || lk == 115232                // '%' 'schema'\n     || lk == 115476                // '{' 'schema'\n     || lk == 115743                // '$' 'schema-attribute'\n     || lk == 115744                // '%' 'schema-attribute'\n     || lk == 115988                // '{' 'schema-attribute'\n     || lk == 116255                // '$' 'schema-element'\n     || lk == 116256                // '%' 'schema-element'\n     || lk == 116500                // '{' 'schema-element'\n     || lk == 116767                // '$' 'score'\n     || lk == 116768                // '%' 'score'\n     || lk == 117012                // '{' 'score'\n     || lk == 117279                // '$' 'self'\n     || lk == 117280                // '%' 'self'\n     || lk == 117524                // '{' 'self'\n     || lk == 119839                // '$' 'sliding'\n     || lk == 119840                // '%' 'sliding'\n     || lk == 120084                // '{' 'sliding'\n     || lk == 120351                // '$' 'some'\n     || lk == 120352                // '%' 'some'\n     || lk == 120596                // '{' 'some'\n     || lk == 120863                // '$' 'stable'\n     || lk == 120864                // '%' 'stable'\n     || lk == 121108                // '{' 'stable'\n     || lk == 121375                // '$' 'start'\n     || lk == 121376                // '%' 'start'\n     || lk == 121620                // '{' 'start'\n     || lk == 122911                // '$' 'strict'\n     || lk == 122912                // '%' 'strict'\n     || lk == 123156                // '{' 'strict'\n     || lk == 123935                // '$' 'structured-item'\n     || lk == 123936                // '%' 'structured-item'\n     || lk == 124180                // '{' 'structured-item'\n     || lk == 124447                // '$' 'switch'\n     || lk == 124448                // '%' 'switch'\n     || lk == 124692                // '{' 'switch'\n     || lk == 124959                // '$' 'text'\n     || lk == 124960                // '%' 'text'\n     || lk == 125204                // '{' 'text'\n     || lk == 127007                // '$' 'to'\n     || lk == 127008                // '%' 'to'\n     || lk == 127252                // '{' 'to'\n     || lk == 127519                // '$' 'treat'\n     || lk == 127520                // '%' 'treat'\n     || lk == 127764                // '{' 'treat'\n     || lk == 128031                // '$' 'try'\n     || lk == 128032                // '%' 'try'\n     || lk == 128276                // '{' 'try'\n     || lk == 128543                // '$' 'tumbling'\n     || lk == 128544                // '%' 'tumbling'\n     || lk == 128788                // '{' 'tumbling'\n     || lk == 129055                // '$' 'type'\n     || lk == 129056                // '%' 'type'\n     || lk == 129300                // '{' 'type'\n     || lk == 129567                // '$' 'typeswitch'\n     || lk == 129568                // '%' 'typeswitch'\n     || lk == 129812                // '{' 'typeswitch'\n     || lk == 130079                // '$' 'union'\n     || lk == 130080                // '%' 'union'\n     || lk == 130324                // '{' 'union'\n     || lk == 131103                // '$' 'unordered'\n     || lk == 131104                // '%' 'unordered'\n     || lk == 131348                // '{' 'unordered'\n     || lk == 131615                // '$' 'updating'\n     || lk == 131616                // '%' 'updating'\n     || lk == 131860                // '{' 'updating'\n     || lk == 133151                // '$' 'validate'\n     || lk == 133152                // '%' 'validate'\n     || lk == 133396                // '{' 'validate'\n     || lk == 133663                // '$' 'value'\n     || lk == 133664                // '%' 'value'\n     || lk == 133908                // '{' 'value'\n     || lk == 134175                // '$' 'variable'\n     || lk == 134176                // '%' 'variable'\n     || lk == 134420                // '{' 'variable'\n     || lk == 134687                // '$' 'version'\n     || lk == 134688                // '%' 'version'\n     || lk == 134932                // '{' 'version'\n     || lk == 136223                // '$' 'where'\n     || lk == 136224                // '%' 'where'\n     || lk == 136468                // '{' 'where'\n     || lk == 136735                // '$' 'while'\n     || lk == 136736                // '%' 'while'\n     || lk == 136980                // '{' 'while'\n     || lk == 138271                // '$' 'with'\n     || lk == 138272                // '%' 'with'\n     || lk == 138516                // '{' 'with'\n     || lk == 140319                // '$' 'xquery'\n     || lk == 140320                // '%' 'xquery'\n     || lk == 140564                // '{' 'xquery'\n     || lk == 141588                // '{' '{'\n     || lk == 142612                // '{' '{|'\n     || lk == 144660)               // '{' '}'\n    {\n      lk = memoized(7, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_ApplyStatement();\n          lk = -1;\n        }\n        catch (p1A)\n        {\n          try\n          {\n            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n            b2 = b2A; e2 = e2A; end = e2A; }}\n            try_AssignStatement();\n            lk = -2;\n          }\n          catch (p2A)\n          {\n            try\n            {\n              b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n              b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n              b2 = b2A; e2 = e2A; end = e2A; }}\n              try_BlockStatement();\n              lk = -3;\n            }\n            catch (p3A)\n            {\n              try\n              {\n                b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n                b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n                b2 = b2A; e2 = e2A; end = e2A; }}\n                try_VarDeclStatement();\n                lk = -12;\n              }\n              catch (p12A)\n              {\n                lk = -13;\n              }\n            }\n          }\n        }\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(7, e0, lk);\n      }\n    }\n    switch (lk)\n    {\n    case -2:\n      parse_AssignStatement();\n      break;\n    case -3:\n      parse_BlockStatement();\n      break;\n    case 90198:                     // 'break' 'loop'\n      parse_BreakStatement();\n      break;\n    case 90214:                     // 'continue' 'loop'\n      parse_ContinueStatement();\n      break;\n    case 113284:                    // 'exit' 'returning'\n      parse_ExitStatement();\n      break;\n    case 16009:                     // 'for' '$'\n    case 16046:                     // 'let' '$'\n    case 116910:                    // 'let' 'score'\n    case 119945:                    // 'for' 'sliding'\n    case 128649:                    // 'for' 'tumbling'\n      parse_FLWORStatement();\n      break;\n    case 17560:                     // 'if' '('\n      parse_IfStatement();\n      break;\n    case 17651:                     // 'switch' '('\n      parse_SwitchStatement();\n      break;\n    case 141562:                    // 'try' '{'\n      parse_TryCatchStatement();\n      break;\n    case 17661:                     // 'typeswitch' '('\n      parse_TypeswitchStatement();\n      break;\n    case -12:\n    case 16134:                     // 'variable' '$'\n      parse_VarDeclStatement();\n      break;\n    case -13:\n      parse_WhileStatement();\n      break;\n    case 53:                        // ';'\n      parse_VoidStatement();\n      break;\n    default:\n      parse_ApplyStatement();\n    }\n    eventHandler.endNonterminal(\"Statement\", e0);\n  }\n\n  function try_Statement()\n  {\n    switch (l1)\n    {\n    case 132:                       // 'exit'\n      lookahead2W(189);             // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' |\n      break;\n    case 137:                       // 'for'\n      lookahead2W(196);             // S^WS | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' |\n      break;\n    case 174:                       // 'let'\n      lookahead2W(193);             // S^WS | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' |\n      break;\n    case 250:                       // 'try'\n      lookahead2W(190);             // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' |\n      break;\n    case 262:                       // 'variable'\n      lookahead2W(187);             // S^WS | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' |\n      break;\n    case 276:                       // '{'\n      lookahead2W(277);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      break;\n    case 31:                        // '$'\n    case 32:                        // '%'\n      lookahead2W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      break;\n    case 86:                        // 'break'\n    case 102:                       // 'continue'\n      lookahead2W(188);             // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' |\n      break;\n    case 152:                       // 'if'\n    case 243:                       // 'switch'\n    case 253:                       // 'typeswitch'\n    case 267:                       // 'while'\n      lookahead2W(185);             // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 2836                  // '{' Wildcard\n     || lk == 3103                  // '$' EQName^Token\n     || lk == 3104                  // '%' EQName^Token\n     || lk == 3348                  // '{' EQName^Token\n     || lk == 4372                  // '{' IntegerLiteral\n     || lk == 4884                  // '{' DecimalLiteral\n     || lk == 5396                  // '{' DoubleLiteral\n     || lk == 5908                  // '{' StringLiteral\n     || lk == 16148                 // '{' '$'\n     || lk == 16660                 // '{' '%'\n     || lk == 17675                 // 'while' '('\n     || lk == 17684                 // '{' '('\n     || lk == 18196                 // '{' '(#'\n     || lk == 20756                 // '{' '+'\n     || lk == 21780                 // '{' '-'\n     || lk == 22804                 // '{' '.'\n     || lk == 23316                 // '{' '..'\n     || lk == 23828                 // '{' '/'\n     || lk == 24340                 // '{' '//'\n     || lk == 27412                 // '{' ';'\n     || lk == 27924                 // '{' '<'\n     || lk == 28436                 // '{' '<!--'\n     || lk == 30484                 // '{' '<?'\n     || lk == 34068                 // '{' '@'\n     || lk == 35092                 // '{' '['\n     || lk == 35871                 // '$' 'after'\n     || lk == 35872                 // '%' 'after'\n     || lk == 36116                 // '{' 'after'\n     || lk == 36895                 // '$' 'allowing'\n     || lk == 36896                 // '%' 'allowing'\n     || lk == 37140                 // '{' 'allowing'\n     || lk == 37407                 // '$' 'ancestor'\n     || lk == 37408                 // '%' 'ancestor'\n     || lk == 37652                 // '{' 'ancestor'\n     || lk == 37919                 // '$' 'ancestor-or-self'\n     || lk == 37920                 // '%' 'ancestor-or-self'\n     || lk == 38164                 // '{' 'ancestor-or-self'\n     || lk == 38431                 // '$' 'and'\n     || lk == 38432                 // '%' 'and'\n     || lk == 38676                 // '{' 'and'\n     || lk == 39455                 // '$' 'append'\n     || lk == 39456                 // '%' 'append'\n     || lk == 39700                 // '{' 'append'\n     || lk == 39967                 // '$' 'array'\n     || lk == 39968                 // '%' 'array'\n     || lk == 40212                 // '{' 'array'\n     || lk == 40479                 // '$' 'as'\n     || lk == 40480                 // '%' 'as'\n     || lk == 40724                 // '{' 'as'\n     || lk == 40991                 // '$' 'ascending'\n     || lk == 40992                 // '%' 'ascending'\n     || lk == 41236                 // '{' 'ascending'\n     || lk == 41503                 // '$' 'at'\n     || lk == 41504                 // '%' 'at'\n     || lk == 41748                 // '{' 'at'\n     || lk == 42015                 // '$' 'attribute'\n     || lk == 42016                 // '%' 'attribute'\n     || lk == 42260                 // '{' 'attribute'\n     || lk == 42527                 // '$' 'base-uri'\n     || lk == 42528                 // '%' 'base-uri'\n     || lk == 42772                 // '{' 'base-uri'\n     || lk == 43039                 // '$' 'before'\n     || lk == 43040                 // '%' 'before'\n     || lk == 43284                 // '{' 'before'\n     || lk == 43551                 // '$' 'boundary-space'\n     || lk == 43552                 // '%' 'boundary-space'\n     || lk == 43796                 // '{' 'boundary-space'\n     || lk == 44063                 // '$' 'break'\n     || lk == 44064                 // '%' 'break'\n     || lk == 44308                 // '{' 'break'\n     || lk == 45087                 // '$' 'case'\n     || lk == 45088                 // '%' 'case'\n     || lk == 45332                 // '{' 'case'\n     || lk == 45599                 // '$' 'cast'\n     || lk == 45600                 // '%' 'cast'\n     || lk == 45844                 // '{' 'cast'\n     || lk == 46111                 // '$' 'castable'\n     || lk == 46112                 // '%' 'castable'\n     || lk == 46356                 // '{' 'castable'\n     || lk == 46623                 // '$' 'catch'\n     || lk == 46624                 // '%' 'catch'\n     || lk == 46868                 // '{' 'catch'\n     || lk == 47647                 // '$' 'child'\n     || lk == 47648                 // '%' 'child'\n     || lk == 47892                 // '{' 'child'\n     || lk == 48159                 // '$' 'collation'\n     || lk == 48160                 // '%' 'collation'\n     || lk == 48404                 // '{' 'collation'\n     || lk == 49183                 // '$' 'comment'\n     || lk == 49184                 // '%' 'comment'\n     || lk == 49428                 // '{' 'comment'\n     || lk == 49695                 // '$' 'constraint'\n     || lk == 49696                 // '%' 'constraint'\n     || lk == 49940                 // '{' 'constraint'\n     || lk == 50207                 // '$' 'construction'\n     || lk == 50208                 // '%' 'construction'\n     || lk == 50452                 // '{' 'construction'\n     || lk == 51743                 // '$' 'context'\n     || lk == 51744                 // '%' 'context'\n     || lk == 51988                 // '{' 'context'\n     || lk == 52255                 // '$' 'continue'\n     || lk == 52256                 // '%' 'continue'\n     || lk == 52500                 // '{' 'continue'\n     || lk == 52767                 // '$' 'copy'\n     || lk == 52768                 // '%' 'copy'\n     || lk == 53012                 // '{' 'copy'\n     || lk == 53279                 // '$' 'copy-namespaces'\n     || lk == 53280                 // '%' 'copy-namespaces'\n     || lk == 53524                 // '{' 'copy-namespaces'\n     || lk == 53791                 // '$' 'count'\n     || lk == 53792                 // '%' 'count'\n     || lk == 54036                 // '{' 'count'\n     || lk == 54303                 // '$' 'decimal-format'\n     || lk == 54304                 // '%' 'decimal-format'\n     || lk == 54548                 // '{' 'decimal-format'\n     || lk == 55327                 // '$' 'declare'\n     || lk == 55328                 // '%' 'declare'\n     || lk == 55572                 // '{' 'declare'\n     || lk == 55839                 // '$' 'default'\n     || lk == 55840                 // '%' 'default'\n     || lk == 56084                 // '{' 'default'\n     || lk == 56351                 // '$' 'delete'\n     || lk == 56352                 // '%' 'delete'\n     || lk == 56596                 // '{' 'delete'\n     || lk == 56863                 // '$' 'descendant'\n     || lk == 56864                 // '%' 'descendant'\n     || lk == 57108                 // '{' 'descendant'\n     || lk == 57375                 // '$' 'descendant-or-self'\n     || lk == 57376                 // '%' 'descendant-or-self'\n     || lk == 57620                 // '{' 'descendant-or-self'\n     || lk == 57887                 // '$' 'descending'\n     || lk == 57888                 // '%' 'descending'\n     || lk == 58132                 // '{' 'descending'\n     || lk == 60447                 // '$' 'div'\n     || lk == 60448                 // '%' 'div'\n     || lk == 60692                 // '{' 'div'\n     || lk == 60959                 // '$' 'document'\n     || lk == 60960                 // '%' 'document'\n     || lk == 61204                 // '{' 'document'\n     || lk == 61471                 // '$' 'document-node'\n     || lk == 61472                 // '%' 'document-node'\n     || lk == 61716                 // '{' 'document-node'\n     || lk == 61983                 // '$' 'element'\n     || lk == 61984                 // '%' 'element'\n     || lk == 62228                 // '{' 'element'\n     || lk == 62495                 // '$' 'else'\n     || lk == 62496                 // '%' 'else'\n     || lk == 62740                 // '{' 'else'\n     || lk == 63007                 // '$' 'empty'\n     || lk == 63008                 // '%' 'empty'\n     || lk == 63252                 // '{' 'empty'\n     || lk == 63519                 // '$' 'empty-sequence'\n     || lk == 63520                 // '%' 'empty-sequence'\n     || lk == 63764                 // '{' 'empty-sequence'\n     || lk == 64031                 // '$' 'encoding'\n     || lk == 64032                 // '%' 'encoding'\n     || lk == 64276                 // '{' 'encoding'\n     || lk == 64543                 // '$' 'end'\n     || lk == 64544                 // '%' 'end'\n     || lk == 64788                 // '{' 'end'\n     || lk == 65567                 // '$' 'eq'\n     || lk == 65568                 // '%' 'eq'\n     || lk == 65812                 // '{' 'eq'\n     || lk == 66079                 // '$' 'every'\n     || lk == 66080                 // '%' 'every'\n     || lk == 66324                 // '{' 'every'\n     || lk == 67103                 // '$' 'except'\n     || lk == 67104                 // '%' 'except'\n     || lk == 67348                 // '{' 'except'\n     || lk == 67615                 // '$' 'exit'\n     || lk == 67616                 // '%' 'exit'\n     || lk == 67860                 // '{' 'exit'\n     || lk == 68127                 // '$' 'external'\n     || lk == 68128                 // '%' 'external'\n     || lk == 68372                 // '{' 'external'\n     || lk == 68639                 // '$' 'first'\n     || lk == 68640                 // '%' 'first'\n     || lk == 68884                 // '{' 'first'\n     || lk == 69151                 // '$' 'following'\n     || lk == 69152                 // '%' 'following'\n     || lk == 69396                 // '{' 'following'\n     || lk == 69663                 // '$' 'following-sibling'\n     || lk == 69664                 // '%' 'following-sibling'\n     || lk == 69908                 // '{' 'following-sibling'\n     || lk == 70175                 // '$' 'for'\n     || lk == 70176                 // '%' 'for'\n     || lk == 70420                 // '{' 'for'\n     || lk == 72223                 // '$' 'ft-option'\n     || lk == 72224                 // '%' 'ft-option'\n     || lk == 72468                 // '{' 'ft-option'\n     || lk == 74271                 // '$' 'function'\n     || lk == 74272                 // '%' 'function'\n     || lk == 74516                 // '{' 'function'\n     || lk == 74783                 // '$' 'ge'\n     || lk == 74784                 // '%' 'ge'\n     || lk == 75028                 // '{' 'ge'\n     || lk == 75807                 // '$' 'group'\n     || lk == 75808                 // '%' 'group'\n     || lk == 76052                 // '{' 'group'\n     || lk == 76831                 // '$' 'gt'\n     || lk == 76832                 // '%' 'gt'\n     || lk == 77076                 // '{' 'gt'\n     || lk == 77343                 // '$' 'idiv'\n     || lk == 77344                 // '%' 'idiv'\n     || lk == 77588                 // '{' 'idiv'\n     || lk == 77855                 // '$' 'if'\n     || lk == 77856                 // '%' 'if'\n     || lk == 78100                 // '{' 'if'\n     || lk == 78367                 // '$' 'import'\n     || lk == 78368                 // '%' 'import'\n     || lk == 78612                 // '{' 'import'\n     || lk == 78879                 // '$' 'in'\n     || lk == 78880                 // '%' 'in'\n     || lk == 79124                 // '{' 'in'\n     || lk == 79391                 // '$' 'index'\n     || lk == 79392                 // '%' 'index'\n     || lk == 79636                 // '{' 'index'\n     || lk == 81439                 // '$' 'insert'\n     || lk == 81440                 // '%' 'insert'\n     || lk == 81684                 // '{' 'insert'\n     || lk == 81951                 // '$' 'instance'\n     || lk == 81952                 // '%' 'instance'\n     || lk == 82196                 // '{' 'instance'\n     || lk == 82463                 // '$' 'integrity'\n     || lk == 82464                 // '%' 'integrity'\n     || lk == 82708                 // '{' 'integrity'\n     || lk == 82975                 // '$' 'intersect'\n     || lk == 82976                 // '%' 'intersect'\n     || lk == 83220                 // '{' 'intersect'\n     || lk == 83487                 // '$' 'into'\n     || lk == 83488                 // '%' 'into'\n     || lk == 83732                 // '{' 'into'\n     || lk == 83999                 // '$' 'is'\n     || lk == 84000                 // '%' 'is'\n     || lk == 84244                 // '{' 'is'\n     || lk == 84511                 // '$' 'item'\n     || lk == 84512                 // '%' 'item'\n     || lk == 84756                 // '{' 'item'\n     || lk == 85023                 // '$' 'json'\n     || lk == 85024                 // '%' 'json'\n     || lk == 85268                 // '{' 'json'\n     || lk == 85535                 // '$' 'json-item'\n     || lk == 85536                 // '%' 'json-item'\n     || lk == 85780                 // '{' 'json-item'\n     || lk == 87071                 // '$' 'last'\n     || lk == 87072                 // '%' 'last'\n     || lk == 87316                 // '{' 'last'\n     || lk == 87583                 // '$' 'lax'\n     || lk == 87584                 // '%' 'lax'\n     || lk == 87828                 // '{' 'lax'\n     || lk == 88095                 // '$' 'le'\n     || lk == 88096                 // '%' 'le'\n     || lk == 88340                 // '{' 'le'\n     || lk == 89119                 // '$' 'let'\n     || lk == 89120                 // '%' 'let'\n     || lk == 89364                 // '{' 'let'\n     || lk == 90143                 // '$' 'loop'\n     || lk == 90144                 // '%' 'loop'\n     || lk == 90388                 // '{' 'loop'\n     || lk == 91167                 // '$' 'lt'\n     || lk == 91168                 // '%' 'lt'\n     || lk == 91412                 // '{' 'lt'\n     || lk == 92191                 // '$' 'mod'\n     || lk == 92192                 // '%' 'mod'\n     || lk == 92436                 // '{' 'mod'\n     || lk == 92703                 // '$' 'modify'\n     || lk == 92704                 // '%' 'modify'\n     || lk == 92948                 // '{' 'modify'\n     || lk == 93215                 // '$' 'module'\n     || lk == 93216                 // '%' 'module'\n     || lk == 93460                 // '{' 'module'\n     || lk == 94239                 // '$' 'namespace'\n     || lk == 94240                 // '%' 'namespace'\n     || lk == 94484                 // '{' 'namespace'\n     || lk == 94751                 // '$' 'namespace-node'\n     || lk == 94752                 // '%' 'namespace-node'\n     || lk == 94996                 // '{' 'namespace-node'\n     || lk == 95263                 // '$' 'ne'\n     || lk == 95264                 // '%' 'ne'\n     || lk == 95508                 // '{' 'ne'\n     || lk == 97823                 // '$' 'node'\n     || lk == 97824                 // '%' 'node'\n     || lk == 98068                 // '{' 'node'\n     || lk == 98335                 // '$' 'nodes'\n     || lk == 98336                 // '%' 'nodes'\n     || lk == 98580                 // '{' 'nodes'\n     || lk == 99359                 // '$' 'object'\n     || lk == 99360                 // '%' 'object'\n     || lk == 99604                 // '{' 'object'\n     || lk == 101407                // '$' 'only'\n     || lk == 101408                // '%' 'only'\n     || lk == 101652                // '{' 'only'\n     || lk == 101919                // '$' 'option'\n     || lk == 101920                // '%' 'option'\n     || lk == 102164                // '{' 'option'\n     || lk == 102431                // '$' 'or'\n     || lk == 102432                // '%' 'or'\n     || lk == 102676                // '{' 'or'\n     || lk == 102943                // '$' 'order'\n     || lk == 102944                // '%' 'order'\n     || lk == 103188                // '{' 'order'\n     || lk == 103455                // '$' 'ordered'\n     || lk == 103456                // '%' 'ordered'\n     || lk == 103700                // '{' 'ordered'\n     || lk == 103967                // '$' 'ordering'\n     || lk == 103968                // '%' 'ordering'\n     || lk == 104212                // '{' 'ordering'\n     || lk == 105503                // '$' 'parent'\n     || lk == 105504                // '%' 'parent'\n     || lk == 105748                // '{' 'parent'\n     || lk == 108575                // '$' 'preceding'\n     || lk == 108576                // '%' 'preceding'\n     || lk == 108820                // '{' 'preceding'\n     || lk == 109087                // '$' 'preceding-sibling'\n     || lk == 109088                // '%' 'preceding-sibling'\n     || lk == 109332                // '{' 'preceding-sibling'\n     || lk == 110623                // '$' 'processing-instruction'\n     || lk == 110624                // '%' 'processing-instruction'\n     || lk == 110868                // '{' 'processing-instruction'\n     || lk == 111647                // '$' 'rename'\n     || lk == 111648                // '%' 'rename'\n     || lk == 111892                // '{' 'rename'\n     || lk == 112159                // '$' 'replace'\n     || lk == 112160                // '%' 'replace'\n     || lk == 112404                // '{' 'replace'\n     || lk == 112671                // '$' 'return'\n     || lk == 112672                // '%' 'return'\n     || lk == 112916                // '{' 'return'\n     || lk == 113183                // '$' 'returning'\n     || lk == 113184                // '%' 'returning'\n     || lk == 113428                // '{' 'returning'\n     || lk == 113695                // '$' 'revalidation'\n     || lk == 113696                // '%' 'revalidation'\n     || lk == 113940                // '{' 'revalidation'\n     || lk == 114719                // '$' 'satisfies'\n     || lk == 114720                // '%' 'satisfies'\n     || lk == 114964                // '{' 'satisfies'\n     || lk == 115231                // '$' 'schema'\n     || lk == 115232                // '%' 'schema'\n     || lk == 115476                // '{' 'schema'\n     || lk == 115743                // '$' 'schema-attribute'\n     || lk == 115744                // '%' 'schema-attribute'\n     || lk == 115988                // '{' 'schema-attribute'\n     || lk == 116255                // '$' 'schema-element'\n     || lk == 116256                // '%' 'schema-element'\n     || lk == 116500                // '{' 'schema-element'\n     || lk == 116767                // '$' 'score'\n     || lk == 116768                // '%' 'score'\n     || lk == 117012                // '{' 'score'\n     || lk == 117279                // '$' 'self'\n     || lk == 117280                // '%' 'self'\n     || lk == 117524                // '{' 'self'\n     || lk == 119839                // '$' 'sliding'\n     || lk == 119840                // '%' 'sliding'\n     || lk == 120084                // '{' 'sliding'\n     || lk == 120351                // '$' 'some'\n     || lk == 120352                // '%' 'some'\n     || lk == 120596                // '{' 'some'\n     || lk == 120863                // '$' 'stable'\n     || lk == 120864                // '%' 'stable'\n     || lk == 121108                // '{' 'stable'\n     || lk == 121375                // '$' 'start'\n     || lk == 121376                // '%' 'start'\n     || lk == 121620                // '{' 'start'\n     || lk == 122911                // '$' 'strict'\n     || lk == 122912                // '%' 'strict'\n     || lk == 123156                // '{' 'strict'\n     || lk == 123935                // '$' 'structured-item'\n     || lk == 123936                // '%' 'structured-item'\n     || lk == 124180                // '{' 'structured-item'\n     || lk == 124447                // '$' 'switch'\n     || lk == 124448                // '%' 'switch'\n     || lk == 124692                // '{' 'switch'\n     || lk == 124959                // '$' 'text'\n     || lk == 124960                // '%' 'text'\n     || lk == 125204                // '{' 'text'\n     || lk == 127007                // '$' 'to'\n     || lk == 127008                // '%' 'to'\n     || lk == 127252                // '{' 'to'\n     || lk == 127519                // '$' 'treat'\n     || lk == 127520                // '%' 'treat'\n     || lk == 127764                // '{' 'treat'\n     || lk == 128031                // '$' 'try'\n     || lk == 128032                // '%' 'try'\n     || lk == 128276                // '{' 'try'\n     || lk == 128543                // '$' 'tumbling'\n     || lk == 128544                // '%' 'tumbling'\n     || lk == 128788                // '{' 'tumbling'\n     || lk == 129055                // '$' 'type'\n     || lk == 129056                // '%' 'type'\n     || lk == 129300                // '{' 'type'\n     || lk == 129567                // '$' 'typeswitch'\n     || lk == 129568                // '%' 'typeswitch'\n     || lk == 129812                // '{' 'typeswitch'\n     || lk == 130079                // '$' 'union'\n     || lk == 130080                // '%' 'union'\n     || lk == 130324                // '{' 'union'\n     || lk == 131103                // '$' 'unordered'\n     || lk == 131104                // '%' 'unordered'\n     || lk == 131348                // '{' 'unordered'\n     || lk == 131615                // '$' 'updating'\n     || lk == 131616                // '%' 'updating'\n     || lk == 131860                // '{' 'updating'\n     || lk == 133151                // '$' 'validate'\n     || lk == 133152                // '%' 'validate'\n     || lk == 133396                // '{' 'validate'\n     || lk == 133663                // '$' 'value'\n     || lk == 133664                // '%' 'value'\n     || lk == 133908                // '{' 'value'\n     || lk == 134175                // '$' 'variable'\n     || lk == 134176                // '%' 'variable'\n     || lk == 134420                // '{' 'variable'\n     || lk == 134687                // '$' 'version'\n     || lk == 134688                // '%' 'version'\n     || lk == 134932                // '{' 'version'\n     || lk == 136223                // '$' 'where'\n     || lk == 136224                // '%' 'where'\n     || lk == 136468                // '{' 'where'\n     || lk == 136735                // '$' 'while'\n     || lk == 136736                // '%' 'while'\n     || lk == 136980                // '{' 'while'\n     || lk == 138271                // '$' 'with'\n     || lk == 138272                // '%' 'with'\n     || lk == 138516                // '{' 'with'\n     || lk == 140319                // '$' 'xquery'\n     || lk == 140320                // '%' 'xquery'\n     || lk == 140564                // '{' 'xquery'\n     || lk == 141588                // '{' '{'\n     || lk == 142612                // '{' '{|'\n     || lk == 144660)               // '{' '}'\n    {\n      lk = memoized(7, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_ApplyStatement();\n          memoize(7, e0A, -1);\n          lk = -15;\n        }\n        catch (p1A)\n        {\n          try\n          {\n            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n            b2 = b2A; e2 = e2A; end = e2A; }}\n            try_AssignStatement();\n            memoize(7, e0A, -2);\n            lk = -15;\n          }\n          catch (p2A)\n          {\n            try\n            {\n              b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n              b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n              b2 = b2A; e2 = e2A; end = e2A; }}\n              try_BlockStatement();\n              memoize(7, e0A, -3);\n              lk = -15;\n            }\n            catch (p3A)\n            {\n              try\n              {\n                b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n                b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n                b2 = b2A; e2 = e2A; end = e2A; }}\n                try_VarDeclStatement();\n                memoize(7, e0A, -12);\n                lk = -15;\n              }\n              catch (p12A)\n              {\n                lk = -13;\n                b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n                b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n                b2 = b2A; e2 = e2A; end = e2A; }}\n                memoize(7, e0A, -13);\n              }\n            }\n          }\n        }\n      }\n    }\n    switch (lk)\n    {\n    case -2:\n      try_AssignStatement();\n      break;\n    case -3:\n      try_BlockStatement();\n      break;\n    case 90198:                     // 'break' 'loop'\n      try_BreakStatement();\n      break;\n    case 90214:                     // 'continue' 'loop'\n      try_ContinueStatement();\n      break;\n    case 113284:                    // 'exit' 'returning'\n      try_ExitStatement();\n      break;\n    case 16009:                     // 'for' '$'\n    case 16046:                     // 'let' '$'\n    case 116910:                    // 'let' 'score'\n    case 119945:                    // 'for' 'sliding'\n    case 128649:                    // 'for' 'tumbling'\n      try_FLWORStatement();\n      break;\n    case 17560:                     // 'if' '('\n      try_IfStatement();\n      break;\n    case 17651:                     // 'switch' '('\n      try_SwitchStatement();\n      break;\n    case 141562:                    // 'try' '{'\n      try_TryCatchStatement();\n      break;\n    case 17661:                     // 'typeswitch' '('\n      try_TypeswitchStatement();\n      break;\n    case -12:\n    case 16134:                     // 'variable' '$'\n      try_VarDeclStatement();\n      break;\n    case -13:\n      try_WhileStatement();\n      break;\n    case 53:                        // ';'\n      try_VoidStatement();\n      break;\n    case -15:\n      break;\n    default:\n      try_ApplyStatement();\n    }\n  }\n\n  function parse_ApplyStatement()\n  {\n    eventHandler.startNonterminal(\"ApplyStatement\", e0);\n    parse_ExprSimple();\n    shift(53);                      // ';'\n    eventHandler.endNonterminal(\"ApplyStatement\", e0);\n  }\n\n  function try_ApplyStatement()\n  {\n    try_ExprSimple();\n    shiftT(53);                     // ';'\n  }\n\n  function parse_AssignStatement()\n  {\n    eventHandler.startNonterminal(\"AssignStatement\", e0);\n    shift(31);                      // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    lookahead1W(27);                // S^WS | '(:' | ':='\n    shift(52);                      // ':='\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    shift(53);                      // ';'\n    eventHandler.endNonterminal(\"AssignStatement\", e0);\n  }\n\n  function try_AssignStatement()\n  {\n    shiftT(31);                     // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_VarName();\n    lookahead1W(27);                // S^WS | '(:' | ':='\n    shiftT(52);                     // ':='\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n    shiftT(53);                     // ';'\n  }\n\n  function parse_BlockStatement()\n  {\n    eventHandler.startNonterminal(\"BlockStatement\", e0);\n    shift(276);                     // '{'\n    lookahead1W(277);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_Statements();\n    shift(282);                     // '}'\n    eventHandler.endNonterminal(\"BlockStatement\", e0);\n  }\n\n  function try_BlockStatement()\n  {\n    shiftT(276);                    // '{'\n    lookahead1W(277);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_Statements();\n    shiftT(282);                    // '}'\n  }\n\n  function parse_BreakStatement()\n  {\n    eventHandler.startNonterminal(\"BreakStatement\", e0);\n    shift(86);                      // 'break'\n    lookahead1W(59);                // S^WS | '(:' | 'loop'\n    shift(176);                     // 'loop'\n    lookahead1W(28);                // S^WS | '(:' | ';'\n    shift(53);                      // ';'\n    eventHandler.endNonterminal(\"BreakStatement\", e0);\n  }\n\n  function try_BreakStatement()\n  {\n    shiftT(86);                     // 'break'\n    lookahead1W(59);                // S^WS | '(:' | 'loop'\n    shiftT(176);                    // 'loop'\n    lookahead1W(28);                // S^WS | '(:' | ';'\n    shiftT(53);                     // ';'\n  }\n\n  function parse_ContinueStatement()\n  {\n    eventHandler.startNonterminal(\"ContinueStatement\", e0);\n    shift(102);                     // 'continue'\n    lookahead1W(59);                // S^WS | '(:' | 'loop'\n    shift(176);                     // 'loop'\n    lookahead1W(28);                // S^WS | '(:' | ';'\n    shift(53);                      // ';'\n    eventHandler.endNonterminal(\"ContinueStatement\", e0);\n  }\n\n  function try_ContinueStatement()\n  {\n    shiftT(102);                    // 'continue'\n    lookahead1W(59);                // S^WS | '(:' | 'loop'\n    shiftT(176);                    // 'loop'\n    lookahead1W(28);                // S^WS | '(:' | ';'\n    shiftT(53);                     // ';'\n  }\n\n  function parse_ExitStatement()\n  {\n    eventHandler.startNonterminal(\"ExitStatement\", e0);\n    shift(132);                     // 'exit'\n    lookahead1W(71);                // S^WS | '(:' | 'returning'\n    shift(221);                     // 'returning'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    shift(53);                      // ';'\n    eventHandler.endNonterminal(\"ExitStatement\", e0);\n  }\n\n  function try_ExitStatement()\n  {\n    shiftT(132);                    // 'exit'\n    lookahead1W(71);                // S^WS | '(:' | 'returning'\n    shiftT(221);                    // 'returning'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n    shiftT(53);                     // ';'\n  }\n\n  function parse_FLWORStatement()\n  {\n    eventHandler.startNonterminal(\"FLWORStatement\", e0);\n    parse_InitialClause();\n    for (;;)\n    {\n      lookahead1W(173);             // S^WS | '(:' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' | 'stable' |\n      if (l1 == 220)                // 'return'\n      {\n        break;\n      }\n      whitespace();\n      parse_IntermediateClause();\n    }\n    whitespace();\n    parse_ReturnStatement();\n    eventHandler.endNonterminal(\"FLWORStatement\", e0);\n  }\n\n  function try_FLWORStatement()\n  {\n    try_InitialClause();\n    for (;;)\n    {\n      lookahead1W(173);             // S^WS | '(:' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' | 'stable' |\n      if (l1 == 220)                // 'return'\n      {\n        break;\n      }\n      try_IntermediateClause();\n    }\n    try_ReturnStatement();\n  }\n\n  function parse_ReturnStatement()\n  {\n    eventHandler.startNonterminal(\"ReturnStatement\", e0);\n    shift(220);                     // 'return'\n    lookahead1W(270);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_Statement();\n    eventHandler.endNonterminal(\"ReturnStatement\", e0);\n  }\n\n  function try_ReturnStatement()\n  {\n    shiftT(220);                    // 'return'\n    lookahead1W(270);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_Statement();\n  }\n\n  function parse_IfStatement()\n  {\n    eventHandler.startNonterminal(\"IfStatement\", e0);\n    shift(152);                     // 'if'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_Expr();\n    shift(37);                      // ')'\n    lookahead1W(77);                // S^WS | '(:' | 'then'\n    shift(245);                     // 'then'\n    lookahead1W(270);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_Statement();\n    lookahead1W(48);                // S^WS | '(:' | 'else'\n    shift(122);                     // 'else'\n    lookahead1W(270);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_Statement();\n    eventHandler.endNonterminal(\"IfStatement\", e0);\n  }\n\n  function try_IfStatement()\n  {\n    shiftT(152);                    // 'if'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(34);                     // '('\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_Expr();\n    shiftT(37);                     // ')'\n    lookahead1W(77);                // S^WS | '(:' | 'then'\n    shiftT(245);                    // 'then'\n    lookahead1W(270);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_Statement();\n    lookahead1W(48);                // S^WS | '(:' | 'else'\n    shiftT(122);                    // 'else'\n    lookahead1W(270);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_Statement();\n  }\n\n  function parse_SwitchStatement()\n  {\n    eventHandler.startNonterminal(\"SwitchStatement\", e0);\n    shift(243);                     // 'switch'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_Expr();\n    shift(37);                      // ')'\n    for (;;)\n    {\n      lookahead1W(35);              // S^WS | '(:' | 'case'\n      whitespace();\n      parse_SwitchCaseStatement();\n      lookahead1W(113);             // S^WS | '(:' | 'case' | 'default'\n      if (l1 != 88)                 // 'case'\n      {\n        break;\n      }\n    }\n    shift(109);                     // 'default'\n    lookahead1W(70);                // S^WS | '(:' | 'return'\n    shift(220);                     // 'return'\n    lookahead1W(270);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_Statement();\n    eventHandler.endNonterminal(\"SwitchStatement\", e0);\n  }\n\n  function try_SwitchStatement()\n  {\n    shiftT(243);                    // 'switch'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(34);                     // '('\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_Expr();\n    shiftT(37);                     // ')'\n    for (;;)\n    {\n      lookahead1W(35);              // S^WS | '(:' | 'case'\n      try_SwitchCaseStatement();\n      lookahead1W(113);             // S^WS | '(:' | 'case' | 'default'\n      if (l1 != 88)                 // 'case'\n      {\n        break;\n      }\n    }\n    shiftT(109);                    // 'default'\n    lookahead1W(70);                // S^WS | '(:' | 'return'\n    shiftT(220);                    // 'return'\n    lookahead1W(270);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_Statement();\n  }\n\n  function parse_SwitchCaseStatement()\n  {\n    eventHandler.startNonterminal(\"SwitchCaseStatement\", e0);\n    for (;;)\n    {\n      shift(88);                    // 'case'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_SwitchCaseOperand();\n      if (l1 != 88)                 // 'case'\n      {\n        break;\n      }\n    }\n    shift(220);                     // 'return'\n    lookahead1W(270);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_Statement();\n    eventHandler.endNonterminal(\"SwitchCaseStatement\", e0);\n  }\n\n  function try_SwitchCaseStatement()\n  {\n    for (;;)\n    {\n      shiftT(88);                   // 'case'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_SwitchCaseOperand();\n      if (l1 != 88)                 // 'case'\n      {\n        break;\n      }\n    }\n    shiftT(220);                    // 'return'\n    lookahead1W(270);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_Statement();\n  }\n\n  function parse_TryCatchStatement()\n  {\n    eventHandler.startNonterminal(\"TryCatchStatement\", e0);\n    shift(250);                     // 'try'\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    whitespace();\n    parse_BlockStatement();\n    for (;;)\n    {\n      lookahead1W(36);              // S^WS | '(:' | 'catch'\n      shift(91);                    // 'catch'\n      lookahead1W(257);             // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_CatchErrorList();\n      whitespace();\n      parse_BlockStatement();\n      lookahead1W(278);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      switch (l1)\n      {\n      case 91:                      // 'catch'\n        lookahead2W(279);           // Wildcard | EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' |\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk == 38491               // 'catch' 'and'\n       || lk == 45659               // 'catch' 'cast'\n       || lk == 46171               // 'catch' 'castable'\n       || lk == 60507               // 'catch' 'div'\n       || lk == 65627               // 'catch' 'eq'\n       || lk == 67163               // 'catch' 'except'\n       || lk == 74843               // 'catch' 'ge'\n       || lk == 76891               // 'catch' 'gt'\n       || lk == 77403               // 'catch' 'idiv'\n       || lk == 82011               // 'catch' 'instance'\n       || lk == 83035               // 'catch' 'intersect'\n       || lk == 84059               // 'catch' 'is'\n       || lk == 88155               // 'catch' 'le'\n       || lk == 91227               // 'catch' 'lt'\n       || lk == 92251               // 'catch' 'mod'\n       || lk == 95323               // 'catch' 'ne'\n       || lk == 102491              // 'catch' 'or'\n       || lk == 127067              // 'catch' 'to'\n       || lk == 127579              // 'catch' 'treat'\n       || lk == 130139)             // 'catch' 'union'\n      {\n        lk = memoized(8, e0);\n        if (lk == 0)\n        {\n          var b0A = b0; var e0A = e0; var l1A = l1;\n          var b1A = b1; var e1A = e1; var l2A = l2;\n          var b2A = b2; var e2A = e2;\n          try\n          {\n            lookahead1W(36);        // S^WS | '(:' | 'catch'\n            shiftT(91);             // 'catch'\n            lookahead1W(257);       // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n            try_CatchErrorList();\n            try_BlockStatement();\n            lk = -1;\n          }\n          catch (p1A)\n          {\n            lk = -2;\n          }\n          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n          b2 = b2A; e2 = e2A; end = e2A; }}\n          memoize(8, e0, lk);\n        }\n      }\n      if (lk != -1\n       && lk != 2651                // 'catch' Wildcard\n       && lk != 3163                // 'catch' EQName^Token\n       && lk != 35931               // 'catch' 'after'\n       && lk != 36955               // 'catch' 'allowing'\n       && lk != 37467               // 'catch' 'ancestor'\n       && lk != 37979               // 'catch' 'ancestor-or-self'\n       && lk != 39515               // 'catch' 'append'\n       && lk != 40027               // 'catch' 'array'\n       && lk != 40539               // 'catch' 'as'\n       && lk != 41051               // 'catch' 'ascending'\n       && lk != 41563               // 'catch' 'at'\n       && lk != 42075               // 'catch' 'attribute'\n       && lk != 42587               // 'catch' 'base-uri'\n       && lk != 43099               // 'catch' 'before'\n       && lk != 43611               // 'catch' 'boundary-space'\n       && lk != 44123               // 'catch' 'break'\n       && lk != 45147               // 'catch' 'case'\n       && lk != 46683               // 'catch' 'catch'\n       && lk != 47707               // 'catch' 'child'\n       && lk != 48219               // 'catch' 'collation'\n       && lk != 49243               // 'catch' 'comment'\n       && lk != 49755               // 'catch' 'constraint'\n       && lk != 50267               // 'catch' 'construction'\n       && lk != 51803               // 'catch' 'context'\n       && lk != 52315               // 'catch' 'continue'\n       && lk != 52827               // 'catch' 'copy'\n       && lk != 53339               // 'catch' 'copy-namespaces'\n       && lk != 53851               // 'catch' 'count'\n       && lk != 54363               // 'catch' 'decimal-format'\n       && lk != 55387               // 'catch' 'declare'\n       && lk != 55899               // 'catch' 'default'\n       && lk != 56411               // 'catch' 'delete'\n       && lk != 56923               // 'catch' 'descendant'\n       && lk != 57435               // 'catch' 'descendant-or-self'\n       && lk != 57947               // 'catch' 'descending'\n       && lk != 61019               // 'catch' 'document'\n       && lk != 61531               // 'catch' 'document-node'\n       && lk != 62043               // 'catch' 'element'\n       && lk != 62555               // 'catch' 'else'\n       && lk != 63067               // 'catch' 'empty'\n       && lk != 63579               // 'catch' 'empty-sequence'\n       && lk != 64091               // 'catch' 'encoding'\n       && lk != 64603               // 'catch' 'end'\n       && lk != 66139               // 'catch' 'every'\n       && lk != 67675               // 'catch' 'exit'\n       && lk != 68187               // 'catch' 'external'\n       && lk != 68699               // 'catch' 'first'\n       && lk != 69211               // 'catch' 'following'\n       && lk != 69723               // 'catch' 'following-sibling'\n       && lk != 70235               // 'catch' 'for'\n       && lk != 72283               // 'catch' 'ft-option'\n       && lk != 74331               // 'catch' 'function'\n       && lk != 75867               // 'catch' 'group'\n       && lk != 77915               // 'catch' 'if'\n       && lk != 78427               // 'catch' 'import'\n       && lk != 78939               // 'catch' 'in'\n       && lk != 79451               // 'catch' 'index'\n       && lk != 81499               // 'catch' 'insert'\n       && lk != 82523               // 'catch' 'integrity'\n       && lk != 83547               // 'catch' 'into'\n       && lk != 84571               // 'catch' 'item'\n       && lk != 85083               // 'catch' 'json'\n       && lk != 85595               // 'catch' 'json-item'\n       && lk != 87131               // 'catch' 'last'\n       && lk != 87643               // 'catch' 'lax'\n       && lk != 89179               // 'catch' 'let'\n       && lk != 90203               // 'catch' 'loop'\n       && lk != 92763               // 'catch' 'modify'\n       && lk != 93275               // 'catch' 'module'\n       && lk != 94299               // 'catch' 'namespace'\n       && lk != 94811               // 'catch' 'namespace-node'\n       && lk != 97883               // 'catch' 'node'\n       && lk != 98395               // 'catch' 'nodes'\n       && lk != 99419               // 'catch' 'object'\n       && lk != 101467              // 'catch' 'only'\n       && lk != 101979              // 'catch' 'option'\n       && lk != 103003              // 'catch' 'order'\n       && lk != 103515              // 'catch' 'ordered'\n       && lk != 104027              // 'catch' 'ordering'\n       && lk != 105563              // 'catch' 'parent'\n       && lk != 108635              // 'catch' 'preceding'\n       && lk != 109147              // 'catch' 'preceding-sibling'\n       && lk != 110683              // 'catch' 'processing-instruction'\n       && lk != 111707              // 'catch' 'rename'\n       && lk != 112219              // 'catch' 'replace'\n       && lk != 112731              // 'catch' 'return'\n       && lk != 113243              // 'catch' 'returning'\n       && lk != 113755              // 'catch' 'revalidation'\n       && lk != 114779              // 'catch' 'satisfies'\n       && lk != 115291              // 'catch' 'schema'\n       && lk != 115803              // 'catch' 'schema-attribute'\n       && lk != 116315              // 'catch' 'schema-element'\n       && lk != 116827              // 'catch' 'score'\n       && lk != 117339              // 'catch' 'self'\n       && lk != 119899              // 'catch' 'sliding'\n       && lk != 120411              // 'catch' 'some'\n       && lk != 120923              // 'catch' 'stable'\n       && lk != 121435              // 'catch' 'start'\n       && lk != 122971              // 'catch' 'strict'\n       && lk != 123995              // 'catch' 'structured-item'\n       && lk != 124507              // 'catch' 'switch'\n       && lk != 125019              // 'catch' 'text'\n       && lk != 128091              // 'catch' 'try'\n       && lk != 128603              // 'catch' 'tumbling'\n       && lk != 129115              // 'catch' 'type'\n       && lk != 129627              // 'catch' 'typeswitch'\n       && lk != 131163              // 'catch' 'unordered'\n       && lk != 131675              // 'catch' 'updating'\n       && lk != 133211              // 'catch' 'validate'\n       && lk != 133723              // 'catch' 'value'\n       && lk != 134235              // 'catch' 'variable'\n       && lk != 134747              // 'catch' 'version'\n       && lk != 136283              // 'catch' 'where'\n       && lk != 136795              // 'catch' 'while'\n       && lk != 138331              // 'catch' 'with'\n       && lk != 140379)             // 'catch' 'xquery'\n      {\n        break;\n      }\n    }\n    eventHandler.endNonterminal(\"TryCatchStatement\", e0);\n  }\n\n  function try_TryCatchStatement()\n  {\n    shiftT(250);                    // 'try'\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    try_BlockStatement();\n    lookahead1W(36);                // S^WS | '(:' | 'catch'\n    shiftT(91);                     // 'catch'\n    lookahead1W(257);               // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_CatchErrorList();\n    try_BlockStatement();\n    for (;;)\n    {\n      lookahead1W(278);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      switch (l1)\n      {\n      case 91:                      // 'catch'\n        lookahead2W(279);           // Wildcard | EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' |\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk == 38491               // 'catch' 'and'\n       || lk == 45659               // 'catch' 'cast'\n       || lk == 46171               // 'catch' 'castable'\n       || lk == 60507               // 'catch' 'div'\n       || lk == 65627               // 'catch' 'eq'\n       || lk == 67163               // 'catch' 'except'\n       || lk == 74843               // 'catch' 'ge'\n       || lk == 76891               // 'catch' 'gt'\n       || lk == 77403               // 'catch' 'idiv'\n       || lk == 82011               // 'catch' 'instance'\n       || lk == 83035               // 'catch' 'intersect'\n       || lk == 84059               // 'catch' 'is'\n       || lk == 88155               // 'catch' 'le'\n       || lk == 91227               // 'catch' 'lt'\n       || lk == 92251               // 'catch' 'mod'\n       || lk == 95323               // 'catch' 'ne'\n       || lk == 102491              // 'catch' 'or'\n       || lk == 127067              // 'catch' 'to'\n       || lk == 127579              // 'catch' 'treat'\n       || lk == 130139)             // 'catch' 'union'\n      {\n        lk = memoized(8, e0);\n        if (lk == 0)\n        {\n          var b0A = b0; var e0A = e0; var l1A = l1;\n          var b1A = b1; var e1A = e1; var l2A = l2;\n          var b2A = b2; var e2A = e2;\n          try\n          {\n            lookahead1W(36);        // S^WS | '(:' | 'catch'\n            shiftT(91);             // 'catch'\n            lookahead1W(257);       // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n            try_CatchErrorList();\n            try_BlockStatement();\n            memoize(8, e0A, -1);\n            continue;\n          }\n          catch (p1A)\n          {\n            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n            b2 = b2A; e2 = e2A; end = e2A; }}\n            memoize(8, e0A, -2);\n            break;\n          }\n        }\n      }\n      if (lk != -1\n       && lk != 2651                // 'catch' Wildcard\n       && lk != 3163                // 'catch' EQName^Token\n       && lk != 35931               // 'catch' 'after'\n       && lk != 36955               // 'catch' 'allowing'\n       && lk != 37467               // 'catch' 'ancestor'\n       && lk != 37979               // 'catch' 'ancestor-or-self'\n       && lk != 39515               // 'catch' 'append'\n       && lk != 40027               // 'catch' 'array'\n       && lk != 40539               // 'catch' 'as'\n       && lk != 41051               // 'catch' 'ascending'\n       && lk != 41563               // 'catch' 'at'\n       && lk != 42075               // 'catch' 'attribute'\n       && lk != 42587               // 'catch' 'base-uri'\n       && lk != 43099               // 'catch' 'before'\n       && lk != 43611               // 'catch' 'boundary-space'\n       && lk != 44123               // 'catch' 'break'\n       && lk != 45147               // 'catch' 'case'\n       && lk != 46683               // 'catch' 'catch'\n       && lk != 47707               // 'catch' 'child'\n       && lk != 48219               // 'catch' 'collation'\n       && lk != 49243               // 'catch' 'comment'\n       && lk != 49755               // 'catch' 'constraint'\n       && lk != 50267               // 'catch' 'construction'\n       && lk != 51803               // 'catch' 'context'\n       && lk != 52315               // 'catch' 'continue'\n       && lk != 52827               // 'catch' 'copy'\n       && lk != 53339               // 'catch' 'copy-namespaces'\n       && lk != 53851               // 'catch' 'count'\n       && lk != 54363               // 'catch' 'decimal-format'\n       && lk != 55387               // 'catch' 'declare'\n       && lk != 55899               // 'catch' 'default'\n       && lk != 56411               // 'catch' 'delete'\n       && lk != 56923               // 'catch' 'descendant'\n       && lk != 57435               // 'catch' 'descendant-or-self'\n       && lk != 57947               // 'catch' 'descending'\n       && lk != 61019               // 'catch' 'document'\n       && lk != 61531               // 'catch' 'document-node'\n       && lk != 62043               // 'catch' 'element'\n       && lk != 62555               // 'catch' 'else'\n       && lk != 63067               // 'catch' 'empty'\n       && lk != 63579               // 'catch' 'empty-sequence'\n       && lk != 64091               // 'catch' 'encoding'\n       && lk != 64603               // 'catch' 'end'\n       && lk != 66139               // 'catch' 'every'\n       && lk != 67675               // 'catch' 'exit'\n       && lk != 68187               // 'catch' 'external'\n       && lk != 68699               // 'catch' 'first'\n       && lk != 69211               // 'catch' 'following'\n       && lk != 69723               // 'catch' 'following-sibling'\n       && lk != 70235               // 'catch' 'for'\n       && lk != 72283               // 'catch' 'ft-option'\n       && lk != 74331               // 'catch' 'function'\n       && lk != 75867               // 'catch' 'group'\n       && lk != 77915               // 'catch' 'if'\n       && lk != 78427               // 'catch' 'import'\n       && lk != 78939               // 'catch' 'in'\n       && lk != 79451               // 'catch' 'index'\n       && lk != 81499               // 'catch' 'insert'\n       && lk != 82523               // 'catch' 'integrity'\n       && lk != 83547               // 'catch' 'into'\n       && lk != 84571               // 'catch' 'item'\n       && lk != 85083               // 'catch' 'json'\n       && lk != 85595               // 'catch' 'json-item'\n       && lk != 87131               // 'catch' 'last'\n       && lk != 87643               // 'catch' 'lax'\n       && lk != 89179               // 'catch' 'let'\n       && lk != 90203               // 'catch' 'loop'\n       && lk != 92763               // 'catch' 'modify'\n       && lk != 93275               // 'catch' 'module'\n       && lk != 94299               // 'catch' 'namespace'\n       && lk != 94811               // 'catch' 'namespace-node'\n       && lk != 97883               // 'catch' 'node'\n       && lk != 98395               // 'catch' 'nodes'\n       && lk != 99419               // 'catch' 'object'\n       && lk != 101467              // 'catch' 'only'\n       && lk != 101979              // 'catch' 'option'\n       && lk != 103003              // 'catch' 'order'\n       && lk != 103515              // 'catch' 'ordered'\n       && lk != 104027              // 'catch' 'ordering'\n       && lk != 105563              // 'catch' 'parent'\n       && lk != 108635              // 'catch' 'preceding'\n       && lk != 109147              // 'catch' 'preceding-sibling'\n       && lk != 110683              // 'catch' 'processing-instruction'\n       && lk != 111707              // 'catch' 'rename'\n       && lk != 112219              // 'catch' 'replace'\n       && lk != 112731              // 'catch' 'return'\n       && lk != 113243              // 'catch' 'returning'\n       && lk != 113755              // 'catch' 'revalidation'\n       && lk != 114779              // 'catch' 'satisfies'\n       && lk != 115291              // 'catch' 'schema'\n       && lk != 115803              // 'catch' 'schema-attribute'\n       && lk != 116315              // 'catch' 'schema-element'\n       && lk != 116827              // 'catch' 'score'\n       && lk != 117339              // 'catch' 'self'\n       && lk != 119899              // 'catch' 'sliding'\n       && lk != 120411              // 'catch' 'some'\n       && lk != 120923              // 'catch' 'stable'\n       && lk != 121435              // 'catch' 'start'\n       && lk != 122971              // 'catch' 'strict'\n       && lk != 123995              // 'catch' 'structured-item'\n       && lk != 124507              // 'catch' 'switch'\n       && lk != 125019              // 'catch' 'text'\n       && lk != 128091              // 'catch' 'try'\n       && lk != 128603              // 'catch' 'tumbling'\n       && lk != 129115              // 'catch' 'type'\n       && lk != 129627              // 'catch' 'typeswitch'\n       && lk != 131163              // 'catch' 'unordered'\n       && lk != 131675              // 'catch' 'updating'\n       && lk != 133211              // 'catch' 'validate'\n       && lk != 133723              // 'catch' 'value'\n       && lk != 134235              // 'catch' 'variable'\n       && lk != 134747              // 'catch' 'version'\n       && lk != 136283              // 'catch' 'where'\n       && lk != 136795              // 'catch' 'while'\n       && lk != 138331              // 'catch' 'with'\n       && lk != 140379)             // 'catch' 'xquery'\n      {\n        break;\n      }\n      lookahead1W(36);              // S^WS | '(:' | 'catch'\n      shiftT(91);                   // 'catch'\n      lookahead1W(257);             // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_CatchErrorList();\n      try_BlockStatement();\n    }\n  }\n\n  function parse_TypeswitchStatement()\n  {\n    eventHandler.startNonterminal(\"TypeswitchStatement\", e0);\n    shift(253);                     // 'typeswitch'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_Expr();\n    shift(37);                      // ')'\n    for (;;)\n    {\n      lookahead1W(35);              // S^WS | '(:' | 'case'\n      whitespace();\n      parse_CaseStatement();\n      lookahead1W(113);             // S^WS | '(:' | 'case' | 'default'\n      if (l1 != 88)                 // 'case'\n      {\n        break;\n      }\n    }\n    shift(109);                     // 'default'\n    lookahead1W(95);                // S^WS | '$' | '(:' | 'return'\n    if (l1 == 31)                   // '$'\n    {\n      shift(31);                    // '$'\n      lookahead1W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_VarName();\n    }\n    lookahead1W(70);                // S^WS | '(:' | 'return'\n    shift(220);                     // 'return'\n    lookahead1W(270);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_Statement();\n    eventHandler.endNonterminal(\"TypeswitchStatement\", e0);\n  }\n\n  function try_TypeswitchStatement()\n  {\n    shiftT(253);                    // 'typeswitch'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(34);                     // '('\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_Expr();\n    shiftT(37);                     // ')'\n    for (;;)\n    {\n      lookahead1W(35);              // S^WS | '(:' | 'case'\n      try_CaseStatement();\n      lookahead1W(113);             // S^WS | '(:' | 'case' | 'default'\n      if (l1 != 88)                 // 'case'\n      {\n        break;\n      }\n    }\n    shiftT(109);                    // 'default'\n    lookahead1W(95);                // S^WS | '$' | '(:' | 'return'\n    if (l1 == 31)                   // '$'\n    {\n      shiftT(31);                   // '$'\n      lookahead1W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_VarName();\n    }\n    lookahead1W(70);                // S^WS | '(:' | 'return'\n    shiftT(220);                    // 'return'\n    lookahead1W(270);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_Statement();\n  }\n\n  function parse_CaseStatement()\n  {\n    eventHandler.startNonterminal(\"CaseStatement\", e0);\n    shift(88);                      // 'case'\n    lookahead1W(262);               // EQName^Token | S^WS | '$' | '%' | '(' | '(:' | 'after' | 'allowing' |\n    if (l1 == 31)                   // '$'\n    {\n      shift(31);                    // '$'\n      lookahead1W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_VarName();\n      lookahead1W(30);              // S^WS | '(:' | 'as'\n      shift(79);                    // 'as'\n    }\n    lookahead1W(260);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_SequenceType();\n    lookahead1W(70);                // S^WS | '(:' | 'return'\n    shift(220);                     // 'return'\n    lookahead1W(270);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_Statement();\n    eventHandler.endNonterminal(\"CaseStatement\", e0);\n  }\n\n  function try_CaseStatement()\n  {\n    shiftT(88);                     // 'case'\n    lookahead1W(262);               // EQName^Token | S^WS | '$' | '%' | '(' | '(:' | 'after' | 'allowing' |\n    if (l1 == 31)                   // '$'\n    {\n      shiftT(31);                   // '$'\n      lookahead1W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_VarName();\n      lookahead1W(30);              // S^WS | '(:' | 'as'\n      shiftT(79);                   // 'as'\n    }\n    lookahead1W(260);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_SequenceType();\n    lookahead1W(70);                // S^WS | '(:' | 'return'\n    shiftT(220);                    // 'return'\n    lookahead1W(270);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_Statement();\n  }\n\n  function parse_VarDeclStatement()\n  {\n    eventHandler.startNonterminal(\"VarDeclStatement\", e0);\n    for (;;)\n    {\n      lookahead1W(98);              // S^WS | '%' | '(:' | 'variable'\n      if (l1 != 32)                 // '%'\n      {\n        break;\n      }\n      whitespace();\n      parse_Annotation();\n    }\n    shift(262);                     // 'variable'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shift(31);                      // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_VarName();\n    lookahead1W(157);               // S^WS | '(:' | ',' | ':=' | ';' | 'as'\n    if (l1 == 79)                   // 'as'\n    {\n      whitespace();\n      parse_TypeDeclaration();\n    }\n    lookahead1W(145);               // S^WS | '(:' | ',' | ':=' | ';'\n    if (l1 == 52)                   // ':='\n    {\n      shift(52);                    // ':='\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_ExprSingle();\n    }\n    for (;;)\n    {\n      if (l1 != 41)                 // ','\n      {\n        break;\n      }\n      shift(41);                    // ','\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      shift(31);                    // '$'\n      lookahead1W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      whitespace();\n      parse_VarName();\n      lookahead1W(157);             // S^WS | '(:' | ',' | ':=' | ';' | 'as'\n      if (l1 == 79)                 // 'as'\n      {\n        whitespace();\n        parse_TypeDeclaration();\n      }\n      lookahead1W(145);             // S^WS | '(:' | ',' | ':=' | ';'\n      if (l1 == 52)                 // ':='\n      {\n        shift(52);                  // ':='\n        lookahead1W(267);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        whitespace();\n        parse_ExprSingle();\n      }\n    }\n    shift(53);                      // ';'\n    eventHandler.endNonterminal(\"VarDeclStatement\", e0);\n  }\n\n  function try_VarDeclStatement()\n  {\n    for (;;)\n    {\n      lookahead1W(98);              // S^WS | '%' | '(:' | 'variable'\n      if (l1 != 32)                 // '%'\n      {\n        break;\n      }\n      try_Annotation();\n    }\n    shiftT(262);                    // 'variable'\n    lookahead1W(21);                // S^WS | '$' | '(:'\n    shiftT(31);                     // '$'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    try_VarName();\n    lookahead1W(157);               // S^WS | '(:' | ',' | ':=' | ';' | 'as'\n    if (l1 == 79)                   // 'as'\n    {\n      try_TypeDeclaration();\n    }\n    lookahead1W(145);               // S^WS | '(:' | ',' | ':=' | ';'\n    if (l1 == 52)                   // ':='\n    {\n      shiftT(52);                   // ':='\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_ExprSingle();\n    }\n    for (;;)\n    {\n      if (l1 != 41)                 // ','\n      {\n        break;\n      }\n      shiftT(41);                   // ','\n      lookahead1W(21);              // S^WS | '$' | '(:'\n      shiftT(31);                   // '$'\n      lookahead1W(255);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n      try_VarName();\n      lookahead1W(157);             // S^WS | '(:' | ',' | ':=' | ';' | 'as'\n      if (l1 == 79)                 // 'as'\n      {\n        try_TypeDeclaration();\n      }\n      lookahead1W(145);             // S^WS | '(:' | ',' | ':=' | ';'\n      if (l1 == 52)                 // ':='\n      {\n        shiftT(52);                 // ':='\n        lookahead1W(267);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        try_ExprSingle();\n      }\n    }\n    shiftT(53);                     // ';'\n  }\n\n  function parse_WhileStatement()\n  {\n    eventHandler.startNonterminal(\"WhileStatement\", e0);\n    shift(267);                     // 'while'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_Expr();\n    shift(37);                      // ')'\n    lookahead1W(270);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_Statement();\n    eventHandler.endNonterminal(\"WhileStatement\", e0);\n  }\n\n  function try_WhileStatement()\n  {\n    shiftT(267);                    // 'while'\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shiftT(34);                     // '('\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_Expr();\n    shiftT(37);                     // ')'\n    lookahead1W(270);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_Statement();\n  }\n\n  function parse_VoidStatement()\n  {\n    eventHandler.startNonterminal(\"VoidStatement\", e0);\n    shift(53);                      // ';'\n    eventHandler.endNonterminal(\"VoidStatement\", e0);\n  }\n\n  function try_VoidStatement()\n  {\n    shiftT(53);                     // ';'\n  }\n\n  function parse_ExprSingle()\n  {\n    eventHandler.startNonterminal(\"ExprSingle\", e0);\n    switch (l1)\n    {\n    case 137:                       // 'for'\n      lookahead2W(236);             // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' |\n      break;\n    case 174:                       // 'let'\n      lookahead2W(233);             // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' |\n      break;\n    case 250:                       // 'try'\n      lookahead2W(232);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    case 152:                       // 'if'\n    case 243:                       // 'switch'\n    case 253:                       // 'typeswitch'\n      lookahead2W(229);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 16009:                     // 'for' '$'\n    case 16046:                     // 'let' '$'\n    case 116910:                    // 'let' 'score'\n    case 119945:                    // 'for' 'sliding'\n    case 128649:                    // 'for' 'tumbling'\n      parse_FLWORExpr();\n      break;\n    case 17560:                     // 'if' '('\n      parse_IfExpr();\n      break;\n    case 17651:                     // 'switch' '('\n      parse_SwitchExpr();\n      break;\n    case 141562:                    // 'try' '{'\n      parse_TryCatchExpr();\n      break;\n    case 17661:                     // 'typeswitch' '('\n      parse_TypeswitchExpr();\n      break;\n    default:\n      parse_ExprSimple();\n    }\n    eventHandler.endNonterminal(\"ExprSingle\", e0);\n  }\n\n  function try_ExprSingle()\n  {\n    switch (l1)\n    {\n    case 137:                       // 'for'\n      lookahead2W(236);             // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' |\n      break;\n    case 174:                       // 'let'\n      lookahead2W(233);             // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' |\n      break;\n    case 250:                       // 'try'\n      lookahead2W(232);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    case 152:                       // 'if'\n    case 243:                       // 'switch'\n    case 253:                       // 'typeswitch'\n      lookahead2W(229);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    default:\n      lk = l1;\n    }\n    switch (lk)\n    {\n    case 16009:                     // 'for' '$'\n    case 16046:                     // 'let' '$'\n    case 116910:                    // 'let' 'score'\n    case 119945:                    // 'for' 'sliding'\n    case 128649:                    // 'for' 'tumbling'\n      try_FLWORExpr();\n      break;\n    case 17560:                     // 'if' '('\n      try_IfExpr();\n      break;\n    case 17651:                     // 'switch' '('\n      try_SwitchExpr();\n      break;\n    case 141562:                    // 'try' '{'\n      try_TryCatchExpr();\n      break;\n    case 17661:                     // 'typeswitch' '('\n      try_TypeswitchExpr();\n      break;\n    default:\n      try_ExprSimple();\n    }\n  }\n\n  function parse_ExprSimple()\n  {\n    eventHandler.startNonterminal(\"ExprSimple\", e0);\n    switch (l1)\n    {\n    case 77:                        // 'append'\n      lookahead2W(231);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    case 218:                       // 'rename'\n      lookahead2W(234);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    case 219:                       // 'replace'\n      lookahead2W(235);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    case 110:                       // 'delete'\n    case 159:                       // 'insert'\n      lookahead2W(237);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    case 103:                       // 'copy'\n    case 129:                       // 'every'\n    case 235:                       // 'some'\n      lookahead2W(230);             // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 133851)               // 'replace' 'value'\n    {\n      lk = memoized(9, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_ReplaceExpr();\n          lk = -6;\n        }\n        catch (p6A)\n        {\n          lk = -11;\n        }\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(9, e0, lk);\n      }\n    }\n    switch (lk)\n    {\n    case 16001:                     // 'every' '$'\n    case 16107:                     // 'some' '$'\n      parse_QuantifiedExpr();\n      break;\n    case 97951:                     // 'insert' 'node'\n    case 98463:                     // 'insert' 'nodes'\n      parse_InsertExpr();\n      break;\n    case 97902:                     // 'delete' 'node'\n    case 98414:                     // 'delete' 'nodes'\n      parse_DeleteExpr();\n      break;\n    case 98010:                     // 'rename' 'node'\n      parse_RenameExpr();\n      break;\n    case -6:\n    case 98011:                     // 'replace' 'node'\n      parse_ReplaceExpr();\n      break;\n    case 15975:                     // 'copy' '$'\n      parse_TransformExpr();\n      break;\n    case 85102:                     // 'delete' 'json'\n      parse_JSONDeleteExpr();\n      break;\n    case 85151:                     // 'insert' 'json'\n      parse_JSONInsertExpr();\n      break;\n    case 85210:                     // 'rename' 'json'\n      parse_JSONRenameExpr();\n      break;\n    case -11:\n      parse_JSONReplaceExpr();\n      break;\n    case 85069:                     // 'append' 'json'\n      parse_JSONAppendExpr();\n      break;\n    default:\n      parse_OrExpr();\n    }\n    eventHandler.endNonterminal(\"ExprSimple\", e0);\n  }\n\n  function try_ExprSimple()\n  {\n    switch (l1)\n    {\n    case 77:                        // 'append'\n      lookahead2W(231);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    case 218:                       // 'rename'\n      lookahead2W(234);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    case 219:                       // 'replace'\n      lookahead2W(235);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    case 110:                       // 'delete'\n    case 159:                       // 'insert'\n      lookahead2W(237);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |\n      break;\n    case 103:                       // 'copy'\n    case 129:                       // 'every'\n    case 235:                       // 'some'\n      lookahead2W(230);             // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 133851)               // 'replace' 'value'\n    {\n      lk = memoized(9, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_ReplaceExpr();\n          memoize(9, e0A, -6);\n          lk = -13;\n        }\n        catch (p6A)\n        {\n          lk = -11;\n          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n          b2 = b2A; e2 = e2A; end = e2A; }}\n          memoize(9, e0A, -11);\n        }\n      }\n    }\n    switch (lk)\n    {\n    case 16001:                     // 'every' '$'\n    case 16107:                     // 'some' '$'\n      try_QuantifiedExpr();\n      break;\n    case 97951:                     // 'insert' 'node'\n    case 98463:                     // 'insert' 'nodes'\n      try_InsertExpr();\n      break;\n    case 97902:                     // 'delete' 'node'\n    case 98414:                     // 'delete' 'nodes'\n      try_DeleteExpr();\n      break;\n    case 98010:                     // 'rename' 'node'\n      try_RenameExpr();\n      break;\n    case -6:\n    case 98011:                     // 'replace' 'node'\n      try_ReplaceExpr();\n      break;\n    case 15975:                     // 'copy' '$'\n      try_TransformExpr();\n      break;\n    case 85102:                     // 'delete' 'json'\n      try_JSONDeleteExpr();\n      break;\n    case 85151:                     // 'insert' 'json'\n      try_JSONInsertExpr();\n      break;\n    case 85210:                     // 'rename' 'json'\n      try_JSONRenameExpr();\n      break;\n    case -11:\n      try_JSONReplaceExpr();\n      break;\n    case 85069:                     // 'append' 'json'\n      try_JSONAppendExpr();\n      break;\n    case -13:\n      break;\n    default:\n      try_OrExpr();\n    }\n  }\n\n  function parse_JSONDeleteExpr()\n  {\n    eventHandler.startNonterminal(\"JSONDeleteExpr\", e0);\n    shift(110);                     // 'delete'\n    lookahead1W(56);                // S^WS | '(:' | 'json'\n    shift(166);                     // 'json'\n    lookahead1W(264);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_PostfixExpr();\n    eventHandler.endNonterminal(\"JSONDeleteExpr\", e0);\n  }\n\n  function try_JSONDeleteExpr()\n  {\n    shiftT(110);                    // 'delete'\n    lookahead1W(56);                // S^WS | '(:' | 'json'\n    shiftT(166);                    // 'json'\n    lookahead1W(264);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_PostfixExpr();\n  }\n\n  function parse_JSONInsertExpr()\n  {\n    eventHandler.startNonterminal(\"JSONInsertExpr\", e0);\n    switch (l1)\n    {\n    case 159:                       // 'insert'\n      lookahead2W(56);              // S^WS | '(:' | 'json'\n      break;\n    default:\n      lk = l1;\n    }\n    lk = memoized(10, e0);\n    if (lk == 0)\n    {\n      var b0A = b0; var e0A = e0; var l1A = l1;\n      var b1A = b1; var e1A = e1; var l2A = l2;\n      var b2A = b2; var e2A = e2;\n      try\n      {\n        shiftT(159);                // 'insert'\n        lookahead1W(56);            // S^WS | '(:' | 'json'\n        shiftT(166);                // 'json'\n        lookahead1W(267);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        try_ExprSingle();\n        shiftT(163);                // 'into'\n        lookahead1W(267);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        try_ExprSingle();\n        switch (l1)\n        {\n        case 81:                    // 'at'\n          lookahead2W(69);          // S^WS | '(:' | 'position'\n          break;\n        default:\n          lk = l1;\n        }\n        if (lk == 108113)           // 'at' 'position'\n        {\n          lk = memoized(11, e0);\n          if (lk == 0)\n          {\n            var b0B = b0; var e0B = e0; var l1B = l1;\n            var b1B = b1; var e1B = e1; var l2B = l2;\n            var b2B = b2; var e2B = e2;\n            try\n            {\n              shiftT(81);           // 'at'\n              lookahead1W(69);      // S^WS | '(:' | 'position'\n              shiftT(211);          // 'position'\n              lookahead1W(267);     // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n              try_ExprSingle();\n              memoize(11, e0B, -1);\n            }\n            catch (p1B)\n            {\n              b0 = b0B; e0 = e0B; l1 = l1B; if (l1 == 0) {end = e0B;} else {\n              b1 = b1B; e1 = e1B; l2 = l2B; if (l2 == 0) {end = e1B;} else {\n              b2 = b2B; e2 = e2B; end = e2B; }}\n              memoize(11, e0B, -2);\n            }\n            lk = -2;\n          }\n        }\n        if (lk == -1)\n        {\n          shiftT(81);               // 'at'\n          lookahead1W(69);          // S^WS | '(:' | 'position'\n          shiftT(211);              // 'position'\n          lookahead1W(267);         // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n          try_ExprSingle();\n        }\n        lk = -1;\n      }\n      catch (p1A)\n      {\n        lk = -2;\n      }\n      b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n      b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n      b2 = b2A; e2 = e2A; end = e2A; }}\n      memoize(10, e0, lk);\n    }\n    switch (lk)\n    {\n    case -1:\n      shift(159);                   // 'insert'\n      lookahead1W(56);              // S^WS | '(:' | 'json'\n      shift(166);                   // 'json'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_ExprSingle();\n      shift(163);                   // 'into'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_ExprSingle();\n      switch (l1)\n      {\n      case 81:                      // 'at'\n        lookahead2W(69);            // S^WS | '(:' | 'position'\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk == 108113)             // 'at' 'position'\n      {\n        lk = memoized(11, e0);\n        if (lk == 0)\n        {\n          var b0B = b0; var e0B = e0; var l1B = l1;\n          var b1B = b1; var e1B = e1; var l2B = l2;\n          var b2B = b2; var e2B = e2;\n          try\n          {\n            shiftT(81);             // 'at'\n            lookahead1W(69);        // S^WS | '(:' | 'position'\n            shiftT(211);            // 'position'\n            lookahead1W(267);       // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n            try_ExprSingle();\n            lk = -1;\n          }\n          catch (p1B)\n          {\n            lk = -2;\n          }\n          b0 = b0B; e0 = e0B; l1 = l1B; if (l1 == 0) {end = e0B;} else {\n          b1 = b1B; e1 = e1B; l2 = l2B; if (l2 == 0) {end = e1B;} else {\n          b2 = b2B; e2 = e2B; end = e2B; }}\n          memoize(11, e0, lk);\n        }\n      }\n      if (lk == -1)\n      {\n        shift(81);                  // 'at'\n        lookahead1W(69);            // S^WS | '(:' | 'position'\n        shift(211);                 // 'position'\n        lookahead1W(267);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        whitespace();\n        parse_ExprSingle();\n      }\n      break;\n    default:\n      shift(159);                   // 'insert'\n      lookahead1W(56);              // S^WS | '(:' | 'json'\n      shift(166);                   // 'json'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_PairConstructorList();\n      shift(163);                   // 'into'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_ExprSingle();\n    }\n    eventHandler.endNonterminal(\"JSONInsertExpr\", e0);\n  }\n\n  function try_JSONInsertExpr()\n  {\n    switch (l1)\n    {\n    case 159:                       // 'insert'\n      lookahead2W(56);              // S^WS | '(:' | 'json'\n      break;\n    default:\n      lk = l1;\n    }\n    lk = memoized(10, e0);\n    if (lk == 0)\n    {\n      var b0A = b0; var e0A = e0; var l1A = l1;\n      var b1A = b1; var e1A = e1; var l2A = l2;\n      var b2A = b2; var e2A = e2;\n      try\n      {\n        shiftT(159);                // 'insert'\n        lookahead1W(56);            // S^WS | '(:' | 'json'\n        shiftT(166);                // 'json'\n        lookahead1W(267);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        try_ExprSingle();\n        shiftT(163);                // 'into'\n        lookahead1W(267);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        try_ExprSingle();\n        switch (l1)\n        {\n        case 81:                    // 'at'\n          lookahead2W(69);          // S^WS | '(:' | 'position'\n          break;\n        default:\n          lk = l1;\n        }\n        if (lk == 108113)           // 'at' 'position'\n        {\n          lk = memoized(11, e0);\n          if (lk == 0)\n          {\n            var b0B = b0; var e0B = e0; var l1B = l1;\n            var b1B = b1; var e1B = e1; var l2B = l2;\n            var b2B = b2; var e2B = e2;\n            try\n            {\n              shiftT(81);           // 'at'\n              lookahead1W(69);      // S^WS | '(:' | 'position'\n              shiftT(211);          // 'position'\n              lookahead1W(267);     // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n              try_ExprSingle();\n              memoize(11, e0B, -1);\n            }\n            catch (p1B)\n            {\n              b0 = b0B; e0 = e0B; l1 = l1B; if (l1 == 0) {end = e0B;} else {\n              b1 = b1B; e1 = e1B; l2 = l2B; if (l2 == 0) {end = e1B;} else {\n              b2 = b2B; e2 = e2B; end = e2B; }}\n              memoize(11, e0B, -2);\n            }\n            lk = -2;\n          }\n        }\n        if (lk == -1)\n        {\n          shiftT(81);               // 'at'\n          lookahead1W(69);          // S^WS | '(:' | 'position'\n          shiftT(211);              // 'position'\n          lookahead1W(267);         // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n          try_ExprSingle();\n        }\n        memoize(10, e0A, -1);\n        lk = -3;\n      }\n      catch (p1A)\n      {\n        lk = -2;\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(10, e0A, -2);\n      }\n    }\n    switch (lk)\n    {\n    case -1:\n      shiftT(159);                  // 'insert'\n      lookahead1W(56);              // S^WS | '(:' | 'json'\n      shiftT(166);                  // 'json'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_ExprSingle();\n      shiftT(163);                  // 'into'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_ExprSingle();\n      switch (l1)\n      {\n      case 81:                      // 'at'\n        lookahead2W(69);            // S^WS | '(:' | 'position'\n        break;\n      default:\n        lk = l1;\n      }\n      if (lk == 108113)             // 'at' 'position'\n      {\n        lk = memoized(11, e0);\n        if (lk == 0)\n        {\n          var b0B = b0; var e0B = e0; var l1B = l1;\n          var b1B = b1; var e1B = e1; var l2B = l2;\n          var b2B = b2; var e2B = e2;\n          try\n          {\n            shiftT(81);             // 'at'\n            lookahead1W(69);        // S^WS | '(:' | 'position'\n            shiftT(211);            // 'position'\n            lookahead1W(267);       // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n            try_ExprSingle();\n            memoize(11, e0B, -1);\n          }\n          catch (p1B)\n          {\n            b0 = b0B; e0 = e0B; l1 = l1B; if (l1 == 0) {end = e0B;} else {\n            b1 = b1B; e1 = e1B; l2 = l2B; if (l2 == 0) {end = e1B;} else {\n            b2 = b2B; e2 = e2B; end = e2B; }}\n            memoize(11, e0B, -2);\n          }\n          lk = -2;\n        }\n      }\n      if (lk == -1)\n      {\n        shiftT(81);                 // 'at'\n        lookahead1W(69);            // S^WS | '(:' | 'position'\n        shiftT(211);                // 'position'\n        lookahead1W(267);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n        try_ExprSingle();\n      }\n      break;\n    case -3:\n      break;\n    default:\n      shiftT(159);                  // 'insert'\n      lookahead1W(56);              // S^WS | '(:' | 'json'\n      shiftT(166);                  // 'json'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_PairConstructorList();\n      shiftT(163);                  // 'into'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_ExprSingle();\n    }\n  }\n\n  function parse_JSONRenameExpr()\n  {\n    eventHandler.startNonterminal(\"JSONRenameExpr\", e0);\n    shift(218);                     // 'rename'\n    lookahead1W(56);                // S^WS | '(:' | 'json'\n    shift(166);                     // 'json'\n    lookahead1W(264);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_PostfixExpr();\n    shift(79);                      // 'as'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"JSONRenameExpr\", e0);\n  }\n\n  function try_JSONRenameExpr()\n  {\n    shiftT(218);                    // 'rename'\n    lookahead1W(56);                // S^WS | '(:' | 'json'\n    shiftT(166);                    // 'json'\n    lookahead1W(264);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_PostfixExpr();\n    shiftT(79);                     // 'as'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_JSONReplaceExpr()\n  {\n    eventHandler.startNonterminal(\"JSONReplaceExpr\", e0);\n    shift(219);                     // 'replace'\n    lookahead1W(82);                // S^WS | '(:' | 'value'\n    shift(261);                     // 'value'\n    lookahead1W(64);                // S^WS | '(:' | 'of'\n    shift(196);                     // 'of'\n    lookahead1W(56);                // S^WS | '(:' | 'json'\n    shift(166);                     // 'json'\n    lookahead1W(264);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    whitespace();\n    parse_PostfixExpr();\n    shift(270);                     // 'with'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"JSONReplaceExpr\", e0);\n  }\n\n  function try_JSONReplaceExpr()\n  {\n    shiftT(219);                    // 'replace'\n    lookahead1W(82);                // S^WS | '(:' | 'value'\n    shiftT(261);                    // 'value'\n    lookahead1W(64);                // S^WS | '(:' | 'of'\n    shiftT(196);                    // 'of'\n    lookahead1W(56);                // S^WS | '(:' | 'json'\n    shiftT(166);                    // 'json'\n    lookahead1W(264);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |\n    try_PostfixExpr();\n    shiftT(270);                    // 'with'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_JSONAppendExpr()\n  {\n    eventHandler.startNonterminal(\"JSONAppendExpr\", e0);\n    shift(77);                      // 'append'\n    lookahead1W(56);                // S^WS | '(:' | 'json'\n    shift(166);                     // 'json'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    shift(163);                     // 'into'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"JSONAppendExpr\", e0);\n  }\n\n  function try_JSONAppendExpr()\n  {\n    shiftT(77);                     // 'append'\n    lookahead1W(56);                // S^WS | '(:' | 'json'\n    shiftT(166);                    // 'json'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n    shiftT(163);                    // 'into'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_CommonContent()\n  {\n    eventHandler.startNonterminal(\"CommonContent\", e0);\n    switch (l1)\n    {\n    case 12:                        // PredefinedEntityRef\n      shift(12);                    // PredefinedEntityRef\n      break;\n    case 23:                        // CharRef\n      shift(23);                    // CharRef\n      break;\n    case 277:                       // '{{'\n      shift(277);                   // '{{'\n      break;\n    case 283:                       // '}}'\n      shift(283);                   // '}}'\n      break;\n    default:\n      parse_BlockExpr();\n    }\n    eventHandler.endNonterminal(\"CommonContent\", e0);\n  }\n\n  function try_CommonContent()\n  {\n    switch (l1)\n    {\n    case 12:                        // PredefinedEntityRef\n      shiftT(12);                   // PredefinedEntityRef\n      break;\n    case 23:                        // CharRef\n      shiftT(23);                   // CharRef\n      break;\n    case 277:                       // '{{'\n      shiftT(277);                  // '{{'\n      break;\n    case 283:                       // '}}'\n      shiftT(283);                  // '}}'\n      break;\n    default:\n      try_BlockExpr();\n    }\n  }\n\n  function parse_ContentExpr()\n  {\n    eventHandler.startNonterminal(\"ContentExpr\", e0);\n    parse_StatementsAndExpr();\n    eventHandler.endNonterminal(\"ContentExpr\", e0);\n  }\n\n  function try_ContentExpr()\n  {\n    try_StatementsAndExpr();\n  }\n\n  function parse_CompDocConstructor()\n  {\n    eventHandler.startNonterminal(\"CompDocConstructor\", e0);\n    shift(119);                     // 'document'\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    whitespace();\n    parse_BlockExpr();\n    eventHandler.endNonterminal(\"CompDocConstructor\", e0);\n  }\n\n  function try_CompDocConstructor()\n  {\n    shiftT(119);                    // 'document'\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    try_BlockExpr();\n  }\n\n  function parse_CompAttrConstructor()\n  {\n    eventHandler.startNonterminal(\"CompAttrConstructor\", e0);\n    shift(82);                      // 'attribute'\n    lookahead1W(258);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    switch (l1)\n    {\n    case 276:                       // '{'\n      shift(276);                   // '{'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_Expr();\n      shift(282);                   // '}'\n      break;\n    default:\n      whitespace();\n      parse_EQName();\n    }\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    switch (l1)\n    {\n    case 276:                       // '{'\n      lookahead2W(277);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 144660)               // '{' '}'\n    {\n      lk = memoized(12, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          shiftT(276);              // '{'\n          lookahead1W(88);          // S^WS | '(:' | '}'\n          shiftT(282);              // '}'\n          lk = -1;\n        }\n        catch (p1A)\n        {\n          lk = -2;\n        }\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(12, e0, lk);\n      }\n    }\n    switch (lk)\n    {\n    case -1:\n      shift(276);                   // '{'\n      lookahead1W(88);              // S^WS | '(:' | '}'\n      shift(282);                   // '}'\n      break;\n    default:\n      whitespace();\n      parse_BlockExpr();\n    }\n    eventHandler.endNonterminal(\"CompAttrConstructor\", e0);\n  }\n\n  function try_CompAttrConstructor()\n  {\n    shiftT(82);                     // 'attribute'\n    lookahead1W(258);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    switch (l1)\n    {\n    case 276:                       // '{'\n      shiftT(276);                  // '{'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_Expr();\n      shiftT(282);                  // '}'\n      break;\n    default:\n      try_EQName();\n    }\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    switch (l1)\n    {\n    case 276:                       // '{'\n      lookahead2W(277);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 144660)               // '{' '}'\n    {\n      lk = memoized(12, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          shiftT(276);              // '{'\n          lookahead1W(88);          // S^WS | '(:' | '}'\n          shiftT(282);              // '}'\n          memoize(12, e0A, -1);\n          lk = -3;\n        }\n        catch (p1A)\n        {\n          lk = -2;\n          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n          b2 = b2A; e2 = e2A; end = e2A; }}\n          memoize(12, e0A, -2);\n        }\n      }\n    }\n    switch (lk)\n    {\n    case -1:\n      shiftT(276);                  // '{'\n      lookahead1W(88);              // S^WS | '(:' | '}'\n      shiftT(282);                  // '}'\n      break;\n    case -3:\n      break;\n    default:\n      try_BlockExpr();\n    }\n  }\n\n  function parse_CompPIConstructor()\n  {\n    eventHandler.startNonterminal(\"CompPIConstructor\", e0);\n    shift(216);                     // 'processing-instruction'\n    lookahead1W(251);               // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    switch (l1)\n    {\n    case 276:                       // '{'\n      shift(276);                   // '{'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_Expr();\n      shift(282);                   // '}'\n      break;\n    default:\n      whitespace();\n      parse_NCName();\n    }\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    switch (l1)\n    {\n    case 276:                       // '{'\n      lookahead2W(277);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 144660)               // '{' '}'\n    {\n      lk = memoized(13, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          shiftT(276);              // '{'\n          lookahead1W(88);          // S^WS | '(:' | '}'\n          shiftT(282);              // '}'\n          lk = -1;\n        }\n        catch (p1A)\n        {\n          lk = -2;\n        }\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(13, e0, lk);\n      }\n    }\n    switch (lk)\n    {\n    case -1:\n      shift(276);                   // '{'\n      lookahead1W(88);              // S^WS | '(:' | '}'\n      shift(282);                   // '}'\n      break;\n    default:\n      whitespace();\n      parse_BlockExpr();\n    }\n    eventHandler.endNonterminal(\"CompPIConstructor\", e0);\n  }\n\n  function try_CompPIConstructor()\n  {\n    shiftT(216);                    // 'processing-instruction'\n    lookahead1W(251);               // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    switch (l1)\n    {\n    case 276:                       // '{'\n      shiftT(276);                  // '{'\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_Expr();\n      shiftT(282);                  // '}'\n      break;\n    default:\n      try_NCName();\n    }\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    switch (l1)\n    {\n    case 276:                       // '{'\n      lookahead2W(277);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 144660)               // '{' '}'\n    {\n      lk = memoized(13, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          shiftT(276);              // '{'\n          lookahead1W(88);          // S^WS | '(:' | '}'\n          shiftT(282);              // '}'\n          memoize(13, e0A, -1);\n          lk = -3;\n        }\n        catch (p1A)\n        {\n          lk = -2;\n          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n          b2 = b2A; e2 = e2A; end = e2A; }}\n          memoize(13, e0A, -2);\n        }\n      }\n    }\n    switch (lk)\n    {\n    case -1:\n      shiftT(276);                  // '{'\n      lookahead1W(88);              // S^WS | '(:' | '}'\n      shiftT(282);                  // '}'\n      break;\n    case -3:\n      break;\n    default:\n      try_BlockExpr();\n    }\n  }\n\n  function parse_CompCommentConstructor()\n  {\n    eventHandler.startNonterminal(\"CompCommentConstructor\", e0);\n    shift(96);                      // 'comment'\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    whitespace();\n    parse_BlockExpr();\n    eventHandler.endNonterminal(\"CompCommentConstructor\", e0);\n  }\n\n  function try_CompCommentConstructor()\n  {\n    shiftT(96);                     // 'comment'\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    try_BlockExpr();\n  }\n\n  function parse_CompTextConstructor()\n  {\n    eventHandler.startNonterminal(\"CompTextConstructor\", e0);\n    shift(244);                     // 'text'\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    whitespace();\n    parse_BlockExpr();\n    eventHandler.endNonterminal(\"CompTextConstructor\", e0);\n  }\n\n  function try_CompTextConstructor()\n  {\n    shiftT(244);                    // 'text'\n    lookahead1W(87);                // S^WS | '(:' | '{'\n    try_BlockExpr();\n  }\n\n  function parse_PrimaryExpr()\n  {\n    eventHandler.startNonterminal(\"PrimaryExpr\", e0);\n    switch (l1)\n    {\n    case 184:                       // 'namespace'\n      lookahead2W(256);             // NCName^Token | S^WS | '#' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      break;\n    case 216:                       // 'processing-instruction'\n      lookahead2W(254);             // NCName^Token | S^WS | '#' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      break;\n    case 276:                       // '{'\n      lookahead2W(277);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      break;\n    case 82:                        // 'attribute'\n    case 121:                       // 'element'\n      lookahead2W(259);             // EQName^Token | S^WS | '#' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      break;\n    case 96:                        // 'comment'\n    case 244:                       // 'text'\n      lookahead2W(93);              // S^WS | '#' | '(:' | '{'\n      break;\n    case 119:                       // 'document'\n    case 202:                       // 'ordered'\n    case 256:                       // 'unordered'\n      lookahead2W(139);             // S^WS | '#' | '(' | '(:' | '{'\n      break;\n    case 6:                         // EQName^Token\n    case 70:                        // 'after'\n    case 72:                        // 'allowing'\n    case 73:                        // 'ancestor'\n    case 74:                        // 'ancestor-or-self'\n    case 75:                        // 'and'\n    case 77:                        // 'append'\n    case 79:                        // 'as'\n    case 80:                        // 'ascending'\n    case 81:                        // 'at'\n    case 83:                        // 'base-uri'\n    case 84:                        // 'before'\n    case 85:                        // 'boundary-space'\n    case 86:                        // 'break'\n    case 88:                        // 'case'\n    case 89:                        // 'cast'\n    case 90:                        // 'castable'\n    case 91:                        // 'catch'\n    case 93:                        // 'child'\n    case 94:                        // 'collation'\n    case 97:                        // 'constraint'\n    case 98:                        // 'construction'\n    case 101:                       // 'context'\n    case 102:                       // 'continue'\n    case 103:                       // 'copy'\n    case 104:                       // 'copy-namespaces'\n    case 105:                       // 'count'\n    case 106:                       // 'decimal-format'\n    case 108:                       // 'declare'\n    case 109:                       // 'default'\n    case 110:                       // 'delete'\n    case 111:                       // 'descendant'\n    case 112:                       // 'descendant-or-self'\n    case 113:                       // 'descending'\n    case 118:                       // 'div'\n    case 122:                       // 'else'\n    case 123:                       // 'empty'\n    case 125:                       // 'encoding'\n    case 126:                       // 'end'\n    case 128:                       // 'eq'\n    case 129:                       // 'every'\n    case 131:                       // 'except'\n    case 132:                       // 'exit'\n    case 133:                       // 'external'\n    case 134:                       // 'first'\n    case 135:                       // 'following'\n    case 136:                       // 'following-sibling'\n    case 137:                       // 'for'\n    case 141:                       // 'ft-option'\n    case 146:                       // 'ge'\n    case 148:                       // 'group'\n    case 150:                       // 'gt'\n    case 151:                       // 'idiv'\n    case 153:                       // 'import'\n    case 154:                       // 'in'\n    case 155:                       // 'index'\n    case 159:                       // 'insert'\n    case 160:                       // 'instance'\n    case 161:                       // 'integrity'\n    case 162:                       // 'intersect'\n    case 163:                       // 'into'\n    case 164:                       // 'is'\n    case 166:                       // 'json'\n    case 170:                       // 'last'\n    case 171:                       // 'lax'\n    case 172:                       // 'le'\n    case 174:                       // 'let'\n    case 176:                       // 'loop'\n    case 178:                       // 'lt'\n    case 180:                       // 'mod'\n    case 181:                       // 'modify'\n    case 182:                       // 'module'\n    case 186:                       // 'ne'\n    case 192:                       // 'nodes'\n    case 194:                       // 'object'\n    case 198:                       // 'only'\n    case 199:                       // 'option'\n    case 200:                       // 'or'\n    case 201:                       // 'order'\n    case 203:                       // 'ordering'\n    case 206:                       // 'parent'\n    case 212:                       // 'preceding'\n    case 213:                       // 'preceding-sibling'\n    case 218:                       // 'rename'\n    case 219:                       // 'replace'\n    case 220:                       // 'return'\n    case 221:                       // 'returning'\n    case 222:                       // 'revalidation'\n    case 224:                       // 'satisfies'\n    case 225:                       // 'schema'\n    case 228:                       // 'score'\n    case 229:                       // 'self'\n    case 234:                       // 'sliding'\n    case 235:                       // 'some'\n    case 236:                       // 'stable'\n    case 237:                       // 'start'\n    case 240:                       // 'strict'\n    case 248:                       // 'to'\n    case 249:                       // 'treat'\n    case 250:                       // 'try'\n    case 251:                       // 'tumbling'\n    case 252:                       // 'type'\n    case 254:                       // 'union'\n    case 257:                       // 'updating'\n    case 260:                       // 'validate'\n    case 261:                       // 'value'\n    case 262:                       // 'variable'\n    case 263:                       // 'version'\n    case 266:                       // 'where'\n    case 267:                       // 'while'\n    case 270:                       // 'with'\n    case 274:                       // 'xquery'\n      lookahead2W(92);              // S^WS | '#' | '(' | '(:'\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 2836                  // '{' Wildcard\n     || lk == 3348                  // '{' EQName^Token\n     || lk == 4372                  // '{' IntegerLiteral\n     || lk == 4884                  // '{' DecimalLiteral\n     || lk == 5396                  // '{' DoubleLiteral\n     || lk == 5908                  // '{' StringLiteral\n     || lk == 16148                 // '{' '$'\n     || lk == 16660                 // '{' '%'\n     || lk == 17684                 // '{' '('\n     || lk == 18196                 // '{' '(#'\n     || lk == 20756                 // '{' '+'\n     || lk == 21780                 // '{' '-'\n     || lk == 22804                 // '{' '.'\n     || lk == 23316                 // '{' '..'\n     || lk == 23828                 // '{' '/'\n     || lk == 24340                 // '{' '//'\n     || lk == 27924                 // '{' '<'\n     || lk == 28436                 // '{' '<!--'\n     || lk == 30484                 // '{' '<?'\n     || lk == 34068                 // '{' '@'\n     || lk == 35092                 // '{' '['\n     || lk == 36116                 // '{' 'after'\n     || lk == 37140                 // '{' 'allowing'\n     || lk == 37652                 // '{' 'ancestor'\n     || lk == 38164                 // '{' 'ancestor-or-self'\n     || lk == 38676                 // '{' 'and'\n     || lk == 39700                 // '{' 'append'\n     || lk == 40212                 // '{' 'array'\n     || lk == 40724                 // '{' 'as'\n     || lk == 41236                 // '{' 'ascending'\n     || lk == 41748                 // '{' 'at'\n     || lk == 42260                 // '{' 'attribute'\n     || lk == 42772                 // '{' 'base-uri'\n     || lk == 43284                 // '{' 'before'\n     || lk == 43796                 // '{' 'boundary-space'\n     || lk == 44308                 // '{' 'break'\n     || lk == 45332                 // '{' 'case'\n     || lk == 45844                 // '{' 'cast'\n     || lk == 46356                 // '{' 'castable'\n     || lk == 46868                 // '{' 'catch'\n     || lk == 47892                 // '{' 'child'\n     || lk == 48404                 // '{' 'collation'\n     || lk == 49428                 // '{' 'comment'\n     || lk == 49940                 // '{' 'constraint'\n     || lk == 50452                 // '{' 'construction'\n     || lk == 51988                 // '{' 'context'\n     || lk == 52500                 // '{' 'continue'\n     || lk == 53012                 // '{' 'copy'\n     || lk == 53524                 // '{' 'copy-namespaces'\n     || lk == 54036                 // '{' 'count'\n     || lk == 54548                 // '{' 'decimal-format'\n     || lk == 55572                 // '{' 'declare'\n     || lk == 56084                 // '{' 'default'\n     || lk == 56596                 // '{' 'delete'\n     || lk == 57108                 // '{' 'descendant'\n     || lk == 57620                 // '{' 'descendant-or-self'\n     || lk == 58132                 // '{' 'descending'\n     || lk == 60692                 // '{' 'div'\n     || lk == 61204                 // '{' 'document'\n     || lk == 61716                 // '{' 'document-node'\n     || lk == 62228                 // '{' 'element'\n     || lk == 62740                 // '{' 'else'\n     || lk == 63252                 // '{' 'empty'\n     || lk == 63764                 // '{' 'empty-sequence'\n     || lk == 64276                 // '{' 'encoding'\n     || lk == 64788                 // '{' 'end'\n     || lk == 65812                 // '{' 'eq'\n     || lk == 66324                 // '{' 'every'\n     || lk == 67348                 // '{' 'except'\n     || lk == 67860                 // '{' 'exit'\n     || lk == 68372                 // '{' 'external'\n     || lk == 68884                 // '{' 'first'\n     || lk == 69396                 // '{' 'following'\n     || lk == 69908                 // '{' 'following-sibling'\n     || lk == 70420                 // '{' 'for'\n     || lk == 72468                 // '{' 'ft-option'\n     || lk == 74516                 // '{' 'function'\n     || lk == 75028                 // '{' 'ge'\n     || lk == 76052                 // '{' 'group'\n     || lk == 77076                 // '{' 'gt'\n     || lk == 77588                 // '{' 'idiv'\n     || lk == 78100                 // '{' 'if'\n     || lk == 78612                 // '{' 'import'\n     || lk == 79124                 // '{' 'in'\n     || lk == 79636                 // '{' 'index'\n     || lk == 81684                 // '{' 'insert'\n     || lk == 82196                 // '{' 'instance'\n     || lk == 82708                 // '{' 'integrity'\n     || lk == 83220                 // '{' 'intersect'\n     || lk == 83732                 // '{' 'into'\n     || lk == 84244                 // '{' 'is'\n     || lk == 84756                 // '{' 'item'\n     || lk == 85268                 // '{' 'json'\n     || lk == 85780                 // '{' 'json-item'\n     || lk == 87316                 // '{' 'last'\n     || lk == 87828                 // '{' 'lax'\n     || lk == 88340                 // '{' 'le'\n     || lk == 89364                 // '{' 'let'\n     || lk == 90388                 // '{' 'loop'\n     || lk == 91412                 // '{' 'lt'\n     || lk == 92436                 // '{' 'mod'\n     || lk == 92948                 // '{' 'modify'\n     || lk == 93460                 // '{' 'module'\n     || lk == 94484                 // '{' 'namespace'\n     || lk == 94996                 // '{' 'namespace-node'\n     || lk == 95508                 // '{' 'ne'\n     || lk == 98068                 // '{' 'node'\n     || lk == 98580                 // '{' 'nodes'\n     || lk == 99604                 // '{' 'object'\n     || lk == 101652                // '{' 'only'\n     || lk == 102164                // '{' 'option'\n     || lk == 102676                // '{' 'or'\n     || lk == 103188                // '{' 'order'\n     || lk == 103700                // '{' 'ordered'\n     || lk == 104212                // '{' 'ordering'\n     || lk == 105748                // '{' 'parent'\n     || lk == 108820                // '{' 'preceding'\n     || lk == 109332                // '{' 'preceding-sibling'\n     || lk == 110868                // '{' 'processing-instruction'\n     || lk == 111892                // '{' 'rename'\n     || lk == 112404                // '{' 'replace'\n     || lk == 112916                // '{' 'return'\n     || lk == 113428                // '{' 'returning'\n     || lk == 113940                // '{' 'revalidation'\n     || lk == 114964                // '{' 'satisfies'\n     || lk == 115476                // '{' 'schema'\n     || lk == 115988                // '{' 'schema-attribute'\n     || lk == 116500                // '{' 'schema-element'\n     || lk == 117012                // '{' 'score'\n     || lk == 117524                // '{' 'self'\n     || lk == 120084                // '{' 'sliding'\n     || lk == 120596                // '{' 'some'\n     || lk == 121108                // '{' 'stable'\n     || lk == 121620                // '{' 'start'\n     || lk == 123156                // '{' 'strict'\n     || lk == 124180                // '{' 'structured-item'\n     || lk == 124692                // '{' 'switch'\n     || lk == 125204                // '{' 'text'\n     || lk == 127252                // '{' 'to'\n     || lk == 127764                // '{' 'treat'\n     || lk == 128276                // '{' 'try'\n     || lk == 128788                // '{' 'tumbling'\n     || lk == 129300                // '{' 'type'\n     || lk == 129812                // '{' 'typeswitch'\n     || lk == 130324                // '{' 'union'\n     || lk == 131348                // '{' 'unordered'\n     || lk == 131860                // '{' 'updating'\n     || lk == 133396                // '{' 'validate'\n     || lk == 133908                // '{' 'value'\n     || lk == 134420                // '{' 'variable'\n     || lk == 134932                // '{' 'version'\n     || lk == 136468                // '{' 'where'\n     || lk == 136980                // '{' 'while'\n     || lk == 138516                // '{' 'with'\n     || lk == 140564                // '{' 'xquery'\n     || lk == 141588                // '{' '{'\n     || lk == 142612                // '{' '{|'\n     || lk == 144660)               // '{' '}'\n    {\n      lk = memoized(14, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_BlockExpr();\n          lk = -10;\n        }\n        catch (p10A)\n        {\n          lk = -11;\n        }\n        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n        b2 = b2A; e2 = e2A; end = e2A; }}\n        memoize(14, e0, lk);\n      }\n    }\n    switch (lk)\n    {\n    case 8:                         // IntegerLiteral\n    case 9:                         // DecimalLiteral\n    case 10:                        // DoubleLiteral\n    case 11:                        // StringLiteral\n      parse_Literal();\n      break;\n    case 31:                        // '$'\n      parse_VarRef();\n      break;\n    case 34:                        // '('\n      parse_ParenthesizedExpr();\n      break;\n    case 44:                        // '.'\n      parse_ContextItemExpr();\n      break;\n    case 17414:                     // EQName^Token '('\n    case 17478:                     // 'after' '('\n    case 17480:                     // 'allowing' '('\n    case 17481:                     // 'ancestor' '('\n    case 17482:                     // 'ancestor-or-self' '('\n    case 17483:                     // 'and' '('\n    case 17485:                     // 'append' '('\n    case 17487:                     // 'as' '('\n    case 17488:                     // 'ascending' '('\n    case 17489:                     // 'at' '('\n    case 17491:                     // 'base-uri' '('\n    case 17492:                     // 'before' '('\n    case 17493:                     // 'boundary-space' '('\n    case 17494:                     // 'break' '('\n    case 17496:                     // 'case' '('\n    case 17497:                     // 'cast' '('\n    case 17498:                     // 'castable' '('\n    case 17499:                     // 'catch' '('\n    case 17501:                     // 'child' '('\n    case 17502:                     // 'collation' '('\n    case 17505:                     // 'constraint' '('\n    case 17506:                     // 'construction' '('\n    case 17509:                     // 'context' '('\n    case 17510:                     // 'continue' '('\n    case 17511:                     // 'copy' '('\n    case 17512:                     // 'copy-namespaces' '('\n    case 17513:                     // 'count' '('\n    case 17514:                     // 'decimal-format' '('\n    case 17516:                     // 'declare' '('\n    case 17517:                     // 'default' '('\n    case 17518:                     // 'delete' '('\n    case 17519:                     // 'descendant' '('\n    case 17520:                     // 'descendant-or-self' '('\n    case 17521:                     // 'descending' '('\n    case 17526:                     // 'div' '('\n    case 17527:                     // 'document' '('\n    case 17530:                     // 'else' '('\n    case 17531:                     // 'empty' '('\n    case 17533:                     // 'encoding' '('\n    case 17534:                     // 'end' '('\n    case 17536:                     // 'eq' '('\n    case 17537:                     // 'every' '('\n    case 17539:                     // 'except' '('\n    case 17540:                     // 'exit' '('\n    case 17541:                     // 'external' '('\n    case 17542:                     // 'first' '('\n    case 17543:                     // 'following' '('\n    case 17544:                     // 'following-sibling' '('\n    case 17545:                     // 'for' '('\n    case 17549:                     // 'ft-option' '('\n    case 17554:                     // 'ge' '('\n    case 17556:                     // 'group' '('\n    case 17558:                     // 'gt' '('\n    case 17559:                     // 'idiv' '('\n    case 17561:                     // 'import' '('\n    case 17562:                     // 'in' '('\n    case 17563:                     // 'index' '('\n    case 17567:                     // 'insert' '('\n    case 17568:                     // 'instance' '('\n    case 17569:                     // 'integrity' '('\n    case 17570:                     // 'intersect' '('\n    case 17571:                     // 'into' '('\n    case 17572:                     // 'is' '('\n    case 17574:                     // 'json' '('\n    case 17578:                     // 'last' '('\n    case 17579:                     // 'lax' '('\n    case 17580:                     // 'le' '('\n    case 17582:                     // 'let' '('\n    case 17584:                     // 'loop' '('\n    case 17586:                     // 'lt' '('\n    case 17588:                     // 'mod' '('\n    case 17589:                     // 'modify' '('\n    case 17590:                     // 'module' '('\n    case 17592:                     // 'namespace' '('\n    case 17594:                     // 'ne' '('\n    case 17600:                     // 'nodes' '('\n    case 17602:                     // 'object' '('\n    case 17606:                     // 'only' '('\n    case 17607:                     // 'option' '('\n    case 17608:                     // 'or' '('\n    case 17609:                     // 'order' '('\n    case 17610:                     // 'ordered' '('\n    case 17611:                     // 'ordering' '('\n    case 17614:                     // 'parent' '('\n    case 17620:                     // 'preceding' '('\n    case 17621:                     // 'preceding-sibling' '('\n    case 17626:                     // 'rename' '('\n    case 17627:                     // 'replace' '('\n    case 17628:                     // 'return' '('\n    case 17629:                     // 'returning' '('\n    case 17630:                     // 'revalidation' '('\n    case 17632:                     // 'satisfies' '('\n    case 17633:                     // 'schema' '('\n    case 17636:                     // 'score' '('\n    case 17637:                     // 'self' '('\n    case 17642:                     // 'sliding' '('\n    case 17643:                     // 'some' '('\n    case 17644:                     // 'stable' '('\n    case 17645:                     // 'start' '('\n    case 17648:                     // 'strict' '('\n    case 17656:                     // 'to' '('\n    case 17657:                     // 'treat' '('\n    case 17658:                     // 'try' '('\n    case 17659:                     // 'tumbling' '('\n    case 17660:                     // 'type' '('\n    case 17662:                     // 'union' '('\n    case 17664:                     // 'unordered' '('\n    case 17665:                     // 'updating' '('\n    case 17668:                     // 'validate' '('\n    case 17669:                     // 'value' '('\n    case 17670:                     // 'variable' '('\n    case 17671:                     // 'version' '('\n    case 17674:                     // 'where' '('\n    case 17675:                     // 'while' '('\n    case 17678:                     // 'with' '('\n    case 17682:                     // 'xquery' '('\n      parse_FunctionCall();\n      break;\n    case 141514:                    // 'ordered' '{'\n      parse_OrderedExpr();\n      break;\n    case 141568:                    // 'unordered' '{'\n      parse_UnorderedExpr();\n      break;\n    case 32:                        // '%'\n    case 78:                        // 'array'\n    case 120:                       // 'document-node'\n    case 124:                       // 'empty-sequence'\n    case 145:                       // 'function'\n    case 152:                       // 'if'\n    case 165:                       // 'item'\n    case 167:                       // 'json-item'\n    case 185:                       // 'namespace-node'\n    case 191:                       // 'node'\n    case 226:                       // 'schema-attribute'\n    case 227:                       // 'schema-element'\n    case 242:                       // 'structured-item'\n    case 243:                       // 'switch'\n    case 253:                       // 'typeswitch'\n    case 14854:                     // EQName^Token '#'\n    case 14918:                     // 'after' '#'\n    case 14920:                     // 'allowing' '#'\n    case 14921:                     // 'ancestor' '#'\n    case 14922:                     // 'ancestor-or-self' '#'\n    case 14923:                     // 'and' '#'\n    case 14925:                     // 'append' '#'\n    case 14927:                     // 'as' '#'\n    case 14928:                     // 'ascending' '#'\n    case 14929:                     // 'at' '#'\n    case 14930:                     // 'attribute' '#'\n    case 14931:                     // 'base-uri' '#'\n    case 14932:                     // 'before' '#'\n    case 14933:                     // 'boundary-space' '#'\n    case 14934:                     // 'break' '#'\n    case 14936:                     // 'case' '#'\n    case 14937:                     // 'cast' '#'\n    case 14938:                     // 'castable' '#'\n    case 14939:                     // 'catch' '#'\n    case 14941:                     // 'child' '#'\n    case 14942:                     // 'collation' '#'\n    case 14944:                     // 'comment' '#'\n    case 14945:                     // 'constraint' '#'\n    case 14946:                     // 'construction' '#'\n    case 14949:                     // 'context' '#'\n    case 14950:                     // 'continue' '#'\n    case 14951:                     // 'copy' '#'\n    case 14952:                     // 'copy-namespaces' '#'\n    case 14953:                     // 'count' '#'\n    case 14954:                     // 'decimal-format' '#'\n    case 14956:                     // 'declare' '#'\n    case 14957:                     // 'default' '#'\n    case 14958:                     // 'delete' '#'\n    case 14959:                     // 'descendant' '#'\n    case 14960:                     // 'descendant-or-self' '#'\n    case 14961:                     // 'descending' '#'\n    case 14966:                     // 'div' '#'\n    case 14967:                     // 'document' '#'\n    case 14969:                     // 'element' '#'\n    case 14970:                     // 'else' '#'\n    case 14971:                     // 'empty' '#'\n    case 14973:                     // 'encoding' '#'\n    case 14974:                     // 'end' '#'\n    case 14976:                     // 'eq' '#'\n    case 14977:                     // 'every' '#'\n    case 14979:                     // 'except' '#'\n    case 14980:                     // 'exit' '#'\n    case 14981:                     // 'external' '#'\n    case 14982:                     // 'first' '#'\n    case 14983:                     // 'following' '#'\n    case 14984:                     // 'following-sibling' '#'\n    case 14985:                     // 'for' '#'\n    case 14989:                     // 'ft-option' '#'\n    case 14994:                     // 'ge' '#'\n    case 14996:                     // 'group' '#'\n    case 14998:                     // 'gt' '#'\n    case 14999:                     // 'idiv' '#'\n    case 15001:                     // 'import' '#'\n    case 15002:                     // 'in' '#'\n    case 15003:                     // 'index' '#'\n    case 15007:                     // 'insert' '#'\n    case 15008:                     // 'instance' '#'\n    case 15009:                     // 'integrity' '#'\n    case 15010:                     // 'intersect' '#'\n    case 15011:                     // 'into' '#'\n    case 15012:                     // 'is' '#'\n    case 15014:                     // 'json' '#'\n    case 15018:                     // 'last' '#'\n    case 15019:                     // 'lax' '#'\n    case 15020:                     // 'le' '#'\n    case 15022:                     // 'let' '#'\n    case 15024:                     // 'loop' '#'\n    case 15026:                     // 'lt' '#'\n    case 15028:                     // 'mod' '#'\n    case 15029:                     // 'modify' '#'\n    case 15030:                     // 'module' '#'\n    case 15032:                     // 'namespace' '#'\n    case 15034:                     // 'ne' '#'\n    case 15040:                     // 'nodes' '#'\n    case 15042:                     // 'object' '#'\n    case 15046:                     // 'only' '#'\n    case 15047:                     // 'option' '#'\n    case 15048:                     // 'or' '#'\n    case 15049:                     // 'order' '#'\n    case 15050:                     // 'ordered' '#'\n    case 15051:                     // 'ordering' '#'\n    case 15054:                     // 'parent' '#'\n    case 15060:                     // 'preceding' '#'\n    case 15061:                     // 'preceding-sibling' '#'\n    case 15064:                     // 'processing-instruction' '#'\n    case 15066:                     // 'rename' '#'\n    case 15067:                     // 'replace' '#'\n    case 15068:                     // 'return' '#'\n    case 15069:                     // 'returning' '#'\n    case 15070:                     // 'revalidation' '#'\n    case 15072:                     // 'satisfies' '#'\n    case 15073:                     // 'schema' '#'\n    case 15076:                     // 'score' '#'\n    case 15077:                     // 'self' '#'\n    case 15082:                     // 'sliding' '#'\n    case 15083:                     // 'some' '#'\n    case 15084:                     // 'stable' '#'\n    case 15085:                     // 'start' '#'\n    case 15088:                     // 'strict' '#'\n    case 15092:                     // 'text' '#'\n    case 15096:                     // 'to' '#'\n    case 15097:                     // 'treat' '#'\n    case 15098:                     // 'try' '#'\n    case 15099:                     // 'tumbling' '#'\n    case 15100:                     // 'type' '#'\n    case 15102:                     // 'union' '#'\n    case 15104:                     // 'unordered' '#'\n    case 15105:                     // 'updating' '#'\n    case 15108:                     // 'validate' '#'\n    case 15109:                     // 'value' '#'\n    case 15110:                     // 'variable' '#'\n    case 15111:                     // 'version' '#'\n    case 15114:                     // 'where' '#'\n    case 15115:                     // 'while' '#'\n    case 15118:                     // 'with' '#'\n    case 15122:                     // 'xquery' '#'\n      parse_FunctionItemExpr();\n      break;\n    case -10:\n    case 27412:                     // '{' ';'\n      parse_BlockExpr();\n      break;\n    case -11:\n      parse_ObjectConstructor();\n      break;\n    case 68:                        // '['\n      parse_ArrayConstructor();\n      break;\n    case 278:                       // '{|'\n      parse_JSONSimpleObjectUnion();\n      break;\n    default:\n      parse_Constructor();\n    }\n    eventHandler.endNonterminal(\"PrimaryExpr\", e0);\n  }\n\n  function try_PrimaryExpr()\n  {\n    switch (l1)\n    {\n    case 184:                       // 'namespace'\n      lookahead2W(256);             // NCName^Token | S^WS | '#' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      break;\n    case 216:                       // 'processing-instruction'\n      lookahead2W(254);             // NCName^Token | S^WS | '#' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      break;\n    case 276:                       // '{'\n      lookahead2W(277);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      break;\n    case 82:                        // 'attribute'\n    case 121:                       // 'element'\n      lookahead2W(259);             // EQName^Token | S^WS | '#' | '(:' | 'after' | 'allowing' | 'ancestor' |\n      break;\n    case 96:                        // 'comment'\n    case 244:                       // 'text'\n      lookahead2W(93);              // S^WS | '#' | '(:' | '{'\n      break;\n    case 119:                       // 'document'\n    case 202:                       // 'ordered'\n    case 256:                       // 'unordered'\n      lookahead2W(139);             // S^WS | '#' | '(' | '(:' | '{'\n      break;\n    case 6:                         // EQName^Token\n    case 70:                        // 'after'\n    case 72:                        // 'allowing'\n    case 73:                        // 'ancestor'\n    case 74:                        // 'ancestor-or-self'\n    case 75:                        // 'and'\n    case 77:                        // 'append'\n    case 79:                        // 'as'\n    case 80:                        // 'ascending'\n    case 81:                        // 'at'\n    case 83:                        // 'base-uri'\n    case 84:                        // 'before'\n    case 85:                        // 'boundary-space'\n    case 86:                        // 'break'\n    case 88:                        // 'case'\n    case 89:                        // 'cast'\n    case 90:                        // 'castable'\n    case 91:                        // 'catch'\n    case 93:                        // 'child'\n    case 94:                        // 'collation'\n    case 97:                        // 'constraint'\n    case 98:                        // 'construction'\n    case 101:                       // 'context'\n    case 102:                       // 'continue'\n    case 103:                       // 'copy'\n    case 104:                       // 'copy-namespaces'\n    case 105:                       // 'count'\n    case 106:                       // 'decimal-format'\n    case 108:                       // 'declare'\n    case 109:                       // 'default'\n    case 110:                       // 'delete'\n    case 111:                       // 'descendant'\n    case 112:                       // 'descendant-or-self'\n    case 113:                       // 'descending'\n    case 118:                       // 'div'\n    case 122:                       // 'else'\n    case 123:                       // 'empty'\n    case 125:                       // 'encoding'\n    case 126:                       // 'end'\n    case 128:                       // 'eq'\n    case 129:                       // 'every'\n    case 131:                       // 'except'\n    case 132:                       // 'exit'\n    case 133:                       // 'external'\n    case 134:                       // 'first'\n    case 135:                       // 'following'\n    case 136:                       // 'following-sibling'\n    case 137:                       // 'for'\n    case 141:                       // 'ft-option'\n    case 146:                       // 'ge'\n    case 148:                       // 'group'\n    case 150:                       // 'gt'\n    case 151:                       // 'idiv'\n    case 153:                       // 'import'\n    case 154:                       // 'in'\n    case 155:                       // 'index'\n    case 159:                       // 'insert'\n    case 160:                       // 'instance'\n    case 161:                       // 'integrity'\n    case 162:                       // 'intersect'\n    case 163:                       // 'into'\n    case 164:                       // 'is'\n    case 166:                       // 'json'\n    case 170:                       // 'last'\n    case 171:                       // 'lax'\n    case 172:                       // 'le'\n    case 174:                       // 'let'\n    case 176:                       // 'loop'\n    case 178:                       // 'lt'\n    case 180:                       // 'mod'\n    case 181:                       // 'modify'\n    case 182:                       // 'module'\n    case 186:                       // 'ne'\n    case 192:                       // 'nodes'\n    case 194:                       // 'object'\n    case 198:                       // 'only'\n    case 199:                       // 'option'\n    case 200:                       // 'or'\n    case 201:                       // 'order'\n    case 203:                       // 'ordering'\n    case 206:                       // 'parent'\n    case 212:                       // 'preceding'\n    case 213:                       // 'preceding-sibling'\n    case 218:                       // 'rename'\n    case 219:                       // 'replace'\n    case 220:                       // 'return'\n    case 221:                       // 'returning'\n    case 222:                       // 'revalidation'\n    case 224:                       // 'satisfies'\n    case 225:                       // 'schema'\n    case 228:                       // 'score'\n    case 229:                       // 'self'\n    case 234:                       // 'sliding'\n    case 235:                       // 'some'\n    case 236:                       // 'stable'\n    case 237:                       // 'start'\n    case 240:                       // 'strict'\n    case 248:                       // 'to'\n    case 249:                       // 'treat'\n    case 250:                       // 'try'\n    case 251:                       // 'tumbling'\n    case 252:                       // 'type'\n    case 254:                       // 'union'\n    case 257:                       // 'updating'\n    case 260:                       // 'validate'\n    case 261:                       // 'value'\n    case 262:                       // 'variable'\n    case 263:                       // 'version'\n    case 266:                       // 'where'\n    case 267:                       // 'while'\n    case 270:                       // 'with'\n    case 274:                       // 'xquery'\n      lookahead2W(92);              // S^WS | '#' | '(' | '(:'\n      break;\n    default:\n      lk = l1;\n    }\n    if (lk == 2836                  // '{' Wildcard\n     || lk == 3348                  // '{' EQName^Token\n     || lk == 4372                  // '{' IntegerLiteral\n     || lk == 4884                  // '{' DecimalLiteral\n     || lk == 5396                  // '{' DoubleLiteral\n     || lk == 5908                  // '{' StringLiteral\n     || lk == 16148                 // '{' '$'\n     || lk == 16660                 // '{' '%'\n     || lk == 17684                 // '{' '('\n     || lk == 18196                 // '{' '(#'\n     || lk == 20756                 // '{' '+'\n     || lk == 21780                 // '{' '-'\n     || lk == 22804                 // '{' '.'\n     || lk == 23316                 // '{' '..'\n     || lk == 23828                 // '{' '/'\n     || lk == 24340                 // '{' '//'\n     || lk == 27924                 // '{' '<'\n     || lk == 28436                 // '{' '<!--'\n     || lk == 30484                 // '{' '<?'\n     || lk == 34068                 // '{' '@'\n     || lk == 35092                 // '{' '['\n     || lk == 36116                 // '{' 'after'\n     || lk == 37140                 // '{' 'allowing'\n     || lk == 37652                 // '{' 'ancestor'\n     || lk == 38164                 // '{' 'ancestor-or-self'\n     || lk == 38676                 // '{' 'and'\n     || lk == 39700                 // '{' 'append'\n     || lk == 40212                 // '{' 'array'\n     || lk == 40724                 // '{' 'as'\n     || lk == 41236                 // '{' 'ascending'\n     || lk == 41748                 // '{' 'at'\n     || lk == 42260                 // '{' 'attribute'\n     || lk == 42772                 // '{' 'base-uri'\n     || lk == 43284                 // '{' 'before'\n     || lk == 43796                 // '{' 'boundary-space'\n     || lk == 44308                 // '{' 'break'\n     || lk == 45332                 // '{' 'case'\n     || lk == 45844                 // '{' 'cast'\n     || lk == 46356                 // '{' 'castable'\n     || lk == 46868                 // '{' 'catch'\n     || lk == 47892                 // '{' 'child'\n     || lk == 48404                 // '{' 'collation'\n     || lk == 49428                 // '{' 'comment'\n     || lk == 49940                 // '{' 'constraint'\n     || lk == 50452                 // '{' 'construction'\n     || lk == 51988                 // '{' 'context'\n     || lk == 52500                 // '{' 'continue'\n     || lk == 53012                 // '{' 'copy'\n     || lk == 53524                 // '{' 'copy-namespaces'\n     || lk == 54036                 // '{' 'count'\n     || lk == 54548                 // '{' 'decimal-format'\n     || lk == 55572                 // '{' 'declare'\n     || lk == 56084                 // '{' 'default'\n     || lk == 56596                 // '{' 'delete'\n     || lk == 57108                 // '{' 'descendant'\n     || lk == 57620                 // '{' 'descendant-or-self'\n     || lk == 58132                 // '{' 'descending'\n     || lk == 60692                 // '{' 'div'\n     || lk == 61204                 // '{' 'document'\n     || lk == 61716                 // '{' 'document-node'\n     || lk == 62228                 // '{' 'element'\n     || lk == 62740                 // '{' 'else'\n     || lk == 63252                 // '{' 'empty'\n     || lk == 63764                 // '{' 'empty-sequence'\n     || lk == 64276                 // '{' 'encoding'\n     || lk == 64788                 // '{' 'end'\n     || lk == 65812                 // '{' 'eq'\n     || lk == 66324                 // '{' 'every'\n     || lk == 67348                 // '{' 'except'\n     || lk == 67860                 // '{' 'exit'\n     || lk == 68372                 // '{' 'external'\n     || lk == 68884                 // '{' 'first'\n     || lk == 69396                 // '{' 'following'\n     || lk == 69908                 // '{' 'following-sibling'\n     || lk == 70420                 // '{' 'for'\n     || lk == 72468                 // '{' 'ft-option'\n     || lk == 74516                 // '{' 'function'\n     || lk == 75028                 // '{' 'ge'\n     || lk == 76052                 // '{' 'group'\n     || lk == 77076                 // '{' 'gt'\n     || lk == 77588                 // '{' 'idiv'\n     || lk == 78100                 // '{' 'if'\n     || lk == 78612                 // '{' 'import'\n     || lk == 79124                 // '{' 'in'\n     || lk == 79636                 // '{' 'index'\n     || lk == 81684                 // '{' 'insert'\n     || lk == 82196                 // '{' 'instance'\n     || lk == 82708                 // '{' 'integrity'\n     || lk == 83220                 // '{' 'intersect'\n     || lk == 83732                 // '{' 'into'\n     || lk == 84244                 // '{' 'is'\n     || lk == 84756                 // '{' 'item'\n     || lk == 85268                 // '{' 'json'\n     || lk == 85780                 // '{' 'json-item'\n     || lk == 87316                 // '{' 'last'\n     || lk == 87828                 // '{' 'lax'\n     || lk == 88340                 // '{' 'le'\n     || lk == 89364                 // '{' 'let'\n     || lk == 90388                 // '{' 'loop'\n     || lk == 91412                 // '{' 'lt'\n     || lk == 92436                 // '{' 'mod'\n     || lk == 92948                 // '{' 'modify'\n     || lk == 93460                 // '{' 'module'\n     || lk == 94484                 // '{' 'namespace'\n     || lk == 94996                 // '{' 'namespace-node'\n     || lk == 95508                 // '{' 'ne'\n     || lk == 98068                 // '{' 'node'\n     || lk == 98580                 // '{' 'nodes'\n     || lk == 99604                 // '{' 'object'\n     || lk == 101652                // '{' 'only'\n     || lk == 102164                // '{' 'option'\n     || lk == 102676                // '{' 'or'\n     || lk == 103188                // '{' 'order'\n     || lk == 103700                // '{' 'ordered'\n     || lk == 104212                // '{' 'ordering'\n     || lk == 105748                // '{' 'parent'\n     || lk == 108820                // '{' 'preceding'\n     || lk == 109332                // '{' 'preceding-sibling'\n     || lk == 110868                // '{' 'processing-instruction'\n     || lk == 111892                // '{' 'rename'\n     || lk == 112404                // '{' 'replace'\n     || lk == 112916                // '{' 'return'\n     || lk == 113428                // '{' 'returning'\n     || lk == 113940                // '{' 'revalidation'\n     || lk == 114964                // '{' 'satisfies'\n     || lk == 115476                // '{' 'schema'\n     || lk == 115988                // '{' 'schema-attribute'\n     || lk == 116500                // '{' 'schema-element'\n     || lk == 117012                // '{' 'score'\n     || lk == 117524                // '{' 'self'\n     || lk == 120084                // '{' 'sliding'\n     || lk == 120596                // '{' 'some'\n     || lk == 121108                // '{' 'stable'\n     || lk == 121620                // '{' 'start'\n     || lk == 123156                // '{' 'strict'\n     || lk == 124180                // '{' 'structured-item'\n     || lk == 124692                // '{' 'switch'\n     || lk == 125204                // '{' 'text'\n     || lk == 127252                // '{' 'to'\n     || lk == 127764                // '{' 'treat'\n     || lk == 128276                // '{' 'try'\n     || lk == 128788                // '{' 'tumbling'\n     || lk == 129300                // '{' 'type'\n     || lk == 129812                // '{' 'typeswitch'\n     || lk == 130324                // '{' 'union'\n     || lk == 131348                // '{' 'unordered'\n     || lk == 131860                // '{' 'updating'\n     || lk == 133396                // '{' 'validate'\n     || lk == 133908                // '{' 'value'\n     || lk == 134420                // '{' 'variable'\n     || lk == 134932                // '{' 'version'\n     || lk == 136468                // '{' 'where'\n     || lk == 136980                // '{' 'while'\n     || lk == 138516                // '{' 'with'\n     || lk == 140564                // '{' 'xquery'\n     || lk == 141588                // '{' '{'\n     || lk == 142612                // '{' '{|'\n     || lk == 144660)               // '{' '}'\n    {\n      lk = memoized(14, e0);\n      if (lk == 0)\n      {\n        var b0A = b0; var e0A = e0; var l1A = l1;\n        var b1A = b1; var e1A = e1; var l2A = l2;\n        var b2A = b2; var e2A = e2;\n        try\n        {\n          try_BlockExpr();\n          memoize(14, e0A, -10);\n          lk = -14;\n        }\n        catch (p10A)\n        {\n          lk = -11;\n          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {\n          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {\n          b2 = b2A; e2 = e2A; end = e2A; }}\n          memoize(14, e0A, -11);\n        }\n      }\n    }\n    switch (lk)\n    {\n    case 8:                         // IntegerLiteral\n    case 9:                         // DecimalLiteral\n    case 10:                        // DoubleLiteral\n    case 11:                        // StringLiteral\n      try_Literal();\n      break;\n    case 31:                        // '$'\n      try_VarRef();\n      break;\n    case 34:                        // '('\n      try_ParenthesizedExpr();\n      break;\n    case 44:                        // '.'\n      try_ContextItemExpr();\n      break;\n    case 17414:                     // EQName^Token '('\n    case 17478:                     // 'after' '('\n    case 17480:                     // 'allowing' '('\n    case 17481:                     // 'ancestor' '('\n    case 17482:                     // 'ancestor-or-self' '('\n    case 17483:                     // 'and' '('\n    case 17485:                     // 'append' '('\n    case 17487:                     // 'as' '('\n    case 17488:                     // 'ascending' '('\n    case 17489:                     // 'at' '('\n    case 17491:                     // 'base-uri' '('\n    case 17492:                     // 'before' '('\n    case 17493:                     // 'boundary-space' '('\n    case 17494:                     // 'break' '('\n    case 17496:                     // 'case' '('\n    case 17497:                     // 'cast' '('\n    case 17498:                     // 'castable' '('\n    case 17499:                     // 'catch' '('\n    case 17501:                     // 'child' '('\n    case 17502:                     // 'collation' '('\n    case 17505:                     // 'constraint' '('\n    case 17506:                     // 'construction' '('\n    case 17509:                     // 'context' '('\n    case 17510:                     // 'continue' '('\n    case 17511:                     // 'copy' '('\n    case 17512:                     // 'copy-namespaces' '('\n    case 17513:                     // 'count' '('\n    case 17514:                     // 'decimal-format' '('\n    case 17516:                     // 'declare' '('\n    case 17517:                     // 'default' '('\n    case 17518:                     // 'delete' '('\n    case 17519:                     // 'descendant' '('\n    case 17520:                     // 'descendant-or-self' '('\n    case 17521:                     // 'descending' '('\n    case 17526:                     // 'div' '('\n    case 17527:                     // 'document' '('\n    case 17530:                     // 'else' '('\n    case 17531:                     // 'empty' '('\n    case 17533:                     // 'encoding' '('\n    case 17534:                     // 'end' '('\n    case 17536:                     // 'eq' '('\n    case 17537:                     // 'every' '('\n    case 17539:                     // 'except' '('\n    case 17540:                     // 'exit' '('\n    case 17541:                     // 'external' '('\n    case 17542:                     // 'first' '('\n    case 17543:                     // 'following' '('\n    case 17544:                     // 'following-sibling' '('\n    case 17545:                     // 'for' '('\n    case 17549:                     // 'ft-option' '('\n    case 17554:                     // 'ge' '('\n    case 17556:                     // 'group' '('\n    case 17558:                     // 'gt' '('\n    case 17559:                     // 'idiv' '('\n    case 17561:                     // 'import' '('\n    case 17562:                     // 'in' '('\n    case 17563:                     // 'index' '('\n    case 17567:                     // 'insert' '('\n    case 17568:                     // 'instance' '('\n    case 17569:                     // 'integrity' '('\n    case 17570:                     // 'intersect' '('\n    case 17571:                     // 'into' '('\n    case 17572:                     // 'is' '('\n    case 17574:                     // 'json' '('\n    case 17578:                     // 'last' '('\n    case 17579:                     // 'lax' '('\n    case 17580:                     // 'le' '('\n    case 17582:                     // 'let' '('\n    case 17584:                     // 'loop' '('\n    case 17586:                     // 'lt' '('\n    case 17588:                     // 'mod' '('\n    case 17589:                     // 'modify' '('\n    case 17590:                     // 'module' '('\n    case 17592:                     // 'namespace' '('\n    case 17594:                     // 'ne' '('\n    case 17600:                     // 'nodes' '('\n    case 17602:                     // 'object' '('\n    case 17606:                     // 'only' '('\n    case 17607:                     // 'option' '('\n    case 17608:                     // 'or' '('\n    case 17609:                     // 'order' '('\n    case 17610:                     // 'ordered' '('\n    case 17611:                     // 'ordering' '('\n    case 17614:                     // 'parent' '('\n    case 17620:                     // 'preceding' '('\n    case 17621:                     // 'preceding-sibling' '('\n    case 17626:                     // 'rename' '('\n    case 17627:                     // 'replace' '('\n    case 17628:                     // 'return' '('\n    case 17629:                     // 'returning' '('\n    case 17630:                     // 'revalidation' '('\n    case 17632:                     // 'satisfies' '('\n    case 17633:                     // 'schema' '('\n    case 17636:                     // 'score' '('\n    case 17637:                     // 'self' '('\n    case 17642:                     // 'sliding' '('\n    case 17643:                     // 'some' '('\n    case 17644:                     // 'stable' '('\n    case 17645:                     // 'start' '('\n    case 17648:                     // 'strict' '('\n    case 17656:                     // 'to' '('\n    case 17657:                     // 'treat' '('\n    case 17658:                     // 'try' '('\n    case 17659:                     // 'tumbling' '('\n    case 17660:                     // 'type' '('\n    case 17662:                     // 'union' '('\n    case 17664:                     // 'unordered' '('\n    case 17665:                     // 'updating' '('\n    case 17668:                     // 'validate' '('\n    case 17669:                     // 'value' '('\n    case 17670:                     // 'variable' '('\n    case 17671:                     // 'version' '('\n    case 17674:                     // 'where' '('\n    case 17675:                     // 'while' '('\n    case 17678:                     // 'with' '('\n    case 17682:                     // 'xquery' '('\n      try_FunctionCall();\n      break;\n    case 141514:                    // 'ordered' '{'\n      try_OrderedExpr();\n      break;\n    case 141568:                    // 'unordered' '{'\n      try_UnorderedExpr();\n      break;\n    case 32:                        // '%'\n    case 78:                        // 'array'\n    case 120:                       // 'document-node'\n    case 124:                       // 'empty-sequence'\n    case 145:                       // 'function'\n    case 152:                       // 'if'\n    case 165:                       // 'item'\n    case 167:                       // 'json-item'\n    case 185:                       // 'namespace-node'\n    case 191:                       // 'node'\n    case 226:                       // 'schema-attribute'\n    case 227:                       // 'schema-element'\n    case 242:                       // 'structured-item'\n    case 243:                       // 'switch'\n    case 253:                       // 'typeswitch'\n    case 14854:                     // EQName^Token '#'\n    case 14918:                     // 'after' '#'\n    case 14920:                     // 'allowing' '#'\n    case 14921:                     // 'ancestor' '#'\n    case 14922:                     // 'ancestor-or-self' '#'\n    case 14923:                     // 'and' '#'\n    case 14925:                     // 'append' '#'\n    case 14927:                     // 'as' '#'\n    case 14928:                     // 'ascending' '#'\n    case 14929:                     // 'at' '#'\n    case 14930:                     // 'attribute' '#'\n    case 14931:                     // 'base-uri' '#'\n    case 14932:                     // 'before' '#'\n    case 14933:                     // 'boundary-space' '#'\n    case 14934:                     // 'break' '#'\n    case 14936:                     // 'case' '#'\n    case 14937:                     // 'cast' '#'\n    case 14938:                     // 'castable' '#'\n    case 14939:                     // 'catch' '#'\n    case 14941:                     // 'child' '#'\n    case 14942:                     // 'collation' '#'\n    case 14944:                     // 'comment' '#'\n    case 14945:                     // 'constraint' '#'\n    case 14946:                     // 'construction' '#'\n    case 14949:                     // 'context' '#'\n    case 14950:                     // 'continue' '#'\n    case 14951:                     // 'copy' '#'\n    case 14952:                     // 'copy-namespaces' '#'\n    case 14953:                     // 'count' '#'\n    case 14954:                     // 'decimal-format' '#'\n    case 14956:                     // 'declare' '#'\n    case 14957:                     // 'default' '#'\n    case 14958:                     // 'delete' '#'\n    case 14959:                     // 'descendant' '#'\n    case 14960:                     // 'descendant-or-self' '#'\n    case 14961:                     // 'descending' '#'\n    case 14966:                     // 'div' '#'\n    case 14967:                     // 'document' '#'\n    case 14969:                     // 'element' '#'\n    case 14970:                     // 'else' '#'\n    case 14971:                     // 'empty' '#'\n    case 14973:                     // 'encoding' '#'\n    case 14974:                     // 'end' '#'\n    case 14976:                     // 'eq' '#'\n    case 14977:                     // 'every' '#'\n    case 14979:                     // 'except' '#'\n    case 14980:                     // 'exit' '#'\n    case 14981:                     // 'external' '#'\n    case 14982:                     // 'first' '#'\n    case 14983:                     // 'following' '#'\n    case 14984:                     // 'following-sibling' '#'\n    case 14985:                     // 'for' '#'\n    case 14989:                     // 'ft-option' '#'\n    case 14994:                     // 'ge' '#'\n    case 14996:                     // 'group' '#'\n    case 14998:                     // 'gt' '#'\n    case 14999:                     // 'idiv' '#'\n    case 15001:                     // 'import' '#'\n    case 15002:                     // 'in' '#'\n    case 15003:                     // 'index' '#'\n    case 15007:                     // 'insert' '#'\n    case 15008:                     // 'instance' '#'\n    case 15009:                     // 'integrity' '#'\n    case 15010:                     // 'intersect' '#'\n    case 15011:                     // 'into' '#'\n    case 15012:                     // 'is' '#'\n    case 15014:                     // 'json' '#'\n    case 15018:                     // 'last' '#'\n    case 15019:                     // 'lax' '#'\n    case 15020:                     // 'le' '#'\n    case 15022:                     // 'let' '#'\n    case 15024:                     // 'loop' '#'\n    case 15026:                     // 'lt' '#'\n    case 15028:                     // 'mod' '#'\n    case 15029:                     // 'modify' '#'\n    case 15030:                     // 'module' '#'\n    case 15032:                     // 'namespace' '#'\n    case 15034:                     // 'ne' '#'\n    case 15040:                     // 'nodes' '#'\n    case 15042:                     // 'object' '#'\n    case 15046:                     // 'only' '#'\n    case 15047:                     // 'option' '#'\n    case 15048:                     // 'or' '#'\n    case 15049:                     // 'order' '#'\n    case 15050:                     // 'ordered' '#'\n    case 15051:                     // 'ordering' '#'\n    case 15054:                     // 'parent' '#'\n    case 15060:                     // 'preceding' '#'\n    case 15061:                     // 'preceding-sibling' '#'\n    case 15064:                     // 'processing-instruction' '#'\n    case 15066:                     // 'rename' '#'\n    case 15067:                     // 'replace' '#'\n    case 15068:                     // 'return' '#'\n    case 15069:                     // 'returning' '#'\n    case 15070:                     // 'revalidation' '#'\n    case 15072:                     // 'satisfies' '#'\n    case 15073:                     // 'schema' '#'\n    case 15076:                     // 'score' '#'\n    case 15077:                     // 'self' '#'\n    case 15082:                     // 'sliding' '#'\n    case 15083:                     // 'some' '#'\n    case 15084:                     // 'stable' '#'\n    case 15085:                     // 'start' '#'\n    case 15088:                     // 'strict' '#'\n    case 15092:                     // 'text' '#'\n    case 15096:                     // 'to' '#'\n    case 15097:                     // 'treat' '#'\n    case 15098:                     // 'try' '#'\n    case 15099:                     // 'tumbling' '#'\n    case 15100:                     // 'type' '#'\n    case 15102:                     // 'union' '#'\n    case 15104:                     // 'unordered' '#'\n    case 15105:                     // 'updating' '#'\n    case 15108:                     // 'validate' '#'\n    case 15109:                     // 'value' '#'\n    case 15110:                     // 'variable' '#'\n    case 15111:                     // 'version' '#'\n    case 15114:                     // 'where' '#'\n    case 15115:                     // 'while' '#'\n    case 15118:                     // 'with' '#'\n    case 15122:                     // 'xquery' '#'\n      try_FunctionItemExpr();\n      break;\n    case -10:\n    case 27412:                     // '{' ';'\n      try_BlockExpr();\n      break;\n    case -11:\n      try_ObjectConstructor();\n      break;\n    case 68:                        // '['\n      try_ArrayConstructor();\n      break;\n    case 278:                       // '{|'\n      try_JSONSimpleObjectUnion();\n      break;\n    case -14:\n      break;\n    default:\n      try_Constructor();\n    }\n  }\n\n  function parse_JSONSimpleObjectUnion()\n  {\n    eventHandler.startNonterminal(\"JSONSimpleObjectUnion\", e0);\n    shift(278);                     // '{|'\n    lookahead1W(273);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    if (l1 != 281)                  // '|}'\n    {\n      whitespace();\n      parse_Expr();\n    }\n    shift(281);                     // '|}'\n    eventHandler.endNonterminal(\"JSONSimpleObjectUnion\", e0);\n  }\n\n  function try_JSONSimpleObjectUnion()\n  {\n    shiftT(278);                    // '{|'\n    lookahead1W(273);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    if (l1 != 281)                  // '|}'\n    {\n      try_Expr();\n    }\n    shiftT(281);                    // '|}'\n  }\n\n  function parse_ObjectConstructor()\n  {\n    eventHandler.startNonterminal(\"ObjectConstructor\", e0);\n    shift(276);                     // '{'\n    lookahead1W(274);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    if (l1 != 282)                  // '}'\n    {\n      whitespace();\n      parse_PairConstructorList();\n    }\n    shift(282);                     // '}'\n    eventHandler.endNonterminal(\"ObjectConstructor\", e0);\n  }\n\n  function try_ObjectConstructor()\n  {\n    shiftT(276);                    // '{'\n    lookahead1W(274);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    if (l1 != 282)                  // '}'\n    {\n      try_PairConstructorList();\n    }\n    shiftT(282);                    // '}'\n  }\n\n  function parse_PairConstructorList()\n  {\n    eventHandler.startNonterminal(\"PairConstructorList\", e0);\n    parse_PairConstructor();\n    for (;;)\n    {\n      if (l1 != 41)                 // ','\n      {\n        break;\n      }\n      shift(41);                    // ','\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_PairConstructor();\n    }\n    eventHandler.endNonterminal(\"PairConstructorList\", e0);\n  }\n\n  function try_PairConstructorList()\n  {\n    try_PairConstructor();\n    for (;;)\n    {\n      if (l1 != 41)                 // ','\n      {\n        break;\n      }\n      shiftT(41);                   // ','\n      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      try_PairConstructor();\n    }\n  }\n\n  function parse_PairConstructor()\n  {\n    eventHandler.startNonterminal(\"PairConstructor\", e0);\n    parse_ExprSingle();\n    shift(49);                      // ':'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_ExprSingle();\n    eventHandler.endNonterminal(\"PairConstructor\", e0);\n  }\n\n  function try_PairConstructor()\n  {\n    try_ExprSingle();\n    shiftT(49);                     // ':'\n    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_ExprSingle();\n  }\n\n  function parse_ArrayConstructor()\n  {\n    eventHandler.startNonterminal(\"ArrayConstructor\", e0);\n    shift(68);                      // '['\n    lookahead1W(272);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    if (l1 != 69)                   // ']'\n    {\n      whitespace();\n      parse_Expr();\n    }\n    shift(69);                      // ']'\n    eventHandler.endNonterminal(\"ArrayConstructor\", e0);\n  }\n\n  function try_ArrayConstructor()\n  {\n    shiftT(68);                     // '['\n    lookahead1W(272);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    if (l1 != 69)                   // ']'\n    {\n      try_Expr();\n    }\n    shiftT(69);                     // ']'\n  }\n\n  function parse_BlockExpr()\n  {\n    eventHandler.startNonterminal(\"BlockExpr\", e0);\n    shift(276);                     // '{'\n    lookahead1W(277);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    whitespace();\n    parse_StatementsAndOptionalExpr();\n    shift(282);                     // '}'\n    eventHandler.endNonterminal(\"BlockExpr\", e0);\n  }\n\n  function try_BlockExpr()\n  {\n    shiftT(276);                    // '{'\n    lookahead1W(277);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n    try_StatementsAndOptionalExpr();\n    shiftT(282);                    // '}'\n  }\n\n  function parse_FunctionDecl()\n  {\n    eventHandler.startNonterminal(\"FunctionDecl\", e0);\n    shift(145);                     // 'function'\n    lookahead1W(255);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_EQName();\n    lookahead1W(22);                // S^WS | '(' | '(:'\n    shift(34);                      // '('\n    lookahead1W(94);                // S^WS | '$' | '(:' | ')'\n    if (l1 == 31)                   // '$'\n    {\n      whitespace();\n      parse_ParamList();\n    }\n    shift(37);                      // ')'\n    lookahead1W(148);               // S^WS | '(:' | 'as' | 'external' | '{'\n    if (l1 == 79)                   // 'as'\n    {\n      whitespace();\n      parse_ReturnType();\n    }\n    lookahead1W(118);               // S^WS | '(:' | 'external' | '{'\n    switch (l1)\n    {\n    case 276:                       // '{'\n      shift(276);                   // '{'\n      lookahead1W(277);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |\n      whitespace();\n      parse_StatementsAndOptionalExpr();\n      shift(282);                   // '}'\n      break;\n    default:\n      shift(133);                   // 'external'\n    }\n    eventHandler.endNonterminal(\"FunctionDecl\", e0);\n  }\n\n  function parse_ReturnType()\n  {\n    eventHandler.startNonterminal(\"ReturnType\", e0);\n    shift(79);                      // 'as'\n    lookahead1W(260);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |\n    whitespace();\n    parse_SequenceType();\n    eventHandler.endNonterminal(\"ReturnType\", e0);\n  }\n\n  function shift(t)\n  {\n    if (l1 == t)\n    {\n      whitespace();\n      eventHandler.terminal(XQueryParser.TOKEN[l1], b1, e1 > size ? size : e1);\n      b0 = b1; e0 = e1; l1 = l2; if (l1 != 0) {\n      b1 = b2; e1 = e2; l2 = 0; }\n    }\n    else\n    {\n      error(b1, e1, 0, l1, t);\n    }\n  }\n\n  function shiftT(t)\n  {\n    if (l1 == t)\n    {\n      b0 = b1; e0 = e1; l1 = l2; if (l1 != 0) {\n      b1 = b2; e1 = e2; l2 = 0; }\n    }\n    else\n    {\n      error(b1, e1, 0, l1, t);\n    }\n  }\n\n  function skip(code)\n  {\n    var b0W = b0; var e0W = e0; var l1W = l1;\n    var b1W = b1; var e1W = e1;\n\n    l1 = code; b1 = begin; e1 = end;\n    l2 = 0;\n\n    try_Whitespace();\n\n    b0 = b0W; e0 = e0W; l1 = l1W; if (l1 != 0) {\n    b1 = b1W; e1 = e1W; }\n  }\n\n  function whitespace()\n  {\n    if (e0 != b1)\n    {\n      b0 = e0;\n      e0 = b1;\n      eventHandler.whitespace(b0, e0);\n    }\n  }\n\n  function matchW(set)\n  {\n    var code;\n    for (;;)\n    {\n      code = match(set);\n      if (code != 22)               // S^WS\n      {\n        if (code != 36)             // '(:'\n        {\n          break;\n        }\n        skip(code);\n      }\n    }\n    return code;\n  }\n\n  function lookahead1W(set)\n  {\n    if (l1 == 0)\n    {\n      l1 = matchW(set);\n      b1 = begin;\n      e1 = end;\n    }\n  }\n\n  function lookahead2W(set)\n  {\n    if (l2 == 0)\n    {\n      l2 = matchW(set);\n      b2 = begin;\n      e2 = end;\n    }\n    lk = (l2 << 9) | l1;\n  }\n\n  function lookahead1(set)\n  {\n    if (l1 == 0)\n    {\n      l1 = match(set);\n      b1 = begin;\n      e1 = end;\n    }\n  }\n\n  function lookahead2(set)\n  {\n    if (l2 == 0)\n    {\n      l2 = match(set);\n      b2 = begin;\n      e2 = end;\n    }\n    lk = (l2 << 9) | l1;\n  }\n\n  function error(b, e, s, l, t)\n  {\n    if (e > ex)\n    {\n      bx = b;\n      ex = e;\n      sx = s;\n      lx = l;\n      tx = t;\n    }\n    throw new self.ParseException(bx, ex, sx, lx, tx);\n  }\n\n  var lk, b0, e0;\n  var l1, b1, e1;\n  var l2, b2, e2;\n  var bx, ex, sx, lx, tx;\n  var eventHandler;\n  var memo;\n\n  function memoize(i, e, v)\n  {\n    memo[(e << 4) + i] = v;\n  }\n\n  function memoized(i, e)\n  {\n    var v = memo[(e << 4) + i];\n    return typeof v != \"undefined\" ? v : 0;\n  }\n\n  var input;\n  var size;\n  var begin;\n  var end;\n\n  function match(tokenSetId)\n  {\n    var nonbmp = false;\n    begin = end;\n    var current = end;\n    var result = XQueryParser.INITIAL[tokenSetId];\n    var state = 0;\n\n    for (var code = result & 4095; code != 0; )\n    {\n      var charclass;\n      var c0 = current < size ? input.charCodeAt(current) : 0;\n      ++current;\n      if (c0 < 0x80)\n      {\n        charclass = XQueryParser.MAP0[c0];\n      }\n      else if (c0 < 0xd800)\n      {\n        var c1 = c0 >> 4;\n        charclass = XQueryParser.MAP1[(c0 & 15) + XQueryParser.MAP1[(c1 & 31) + XQueryParser.MAP1[c1 >> 5]]];\n      }\n      else\n      {\n        if (c0 < 0xdc00)\n        {\n          var c1 = current < size ? input.charCodeAt(current) : 0;\n          if (c1 >= 0xdc00 && c1 < 0xe000)\n          {\n            ++current;\n            c0 = ((c0 & 0x3ff) << 10) + (c1 & 0x3ff) + 0x10000;\n            nonbmp = true;\n          }\n        }\n        var lo = 0, hi = 5;\n        for (var m = 3; ; m = (hi + lo) >> 1)\n        {\n          if (XQueryParser.MAP2[m] > c0) hi = m - 1;\n          else if (XQueryParser.MAP2[6 + m] < c0) lo = m + 1;\n          else {charclass = XQueryParser.MAP2[12 + m]; break;}\n          if (lo > hi) {charclass = 0; break;}\n        }\n      }\n\n      state = code;\n      var i0 = (charclass << 12) + code - 1;\n      code = XQueryParser.TRANSITION[(i0 & 15) + XQueryParser.TRANSITION[i0 >> 4]];\n\n      if (code > 4095)\n      {\n        result = code;\n        code &= 4095;\n        end = current;\n      }\n    }\n\n    result >>= 12;\n    if (result == 0)\n    {\n      end = current - 1;\n      var c1 = end < size ? input.charCodeAt(end) : 0;\n      if (c1 >= 0xdc00 && c1 < 0xe000) --end;\n      return error(begin, end, state, -1, -1);\n    }\n\n    if (nonbmp)\n    {\n      for (var i = result >> 9; i > 0; --i)\n      {\n        --end;\n        var c1 = end < size ? input.charCodeAt(end) : 0;\n        if (c1 >= 0xdc00 && c1 < 0xe000) --end;\n      }\n    }\n    else\n    {\n      end -= result >> 9;\n    }\n\n    return (result & 511) - 1;\n  }\n}\n\nXQueryParser.getTokenSet = function(tokenSetId)\n{\n  var set = [];\n  var s = tokenSetId < 0 ? - tokenSetId : INITIAL[tokenSetId] & 4095;\n  for (var i = 0; i < 284; i += 32)\n  {\n    var j = i;\n    var i0 = (i >> 5) * 3694 + s - 1;\n    var i1 = i0 >> 1;\n    var i2 = i1 >> 2;\n    var f = XQueryParser.EXPECTED[(i0 & 1) + XQueryParser.EXPECTED[(i1 & 3) + XQueryParser.EXPECTED[(i2 & 3) + XQueryParser.EXPECTED[i2 >> 2]]]];\n    for ( ; f != 0; f >>>= 1, ++j)\n    {\n      if ((f & 1) != 0)\n      {\n        set.push(XQueryParser.TOKEN[j]);\n      }\n    }\n  }\n  return set;\n};\n\nXQueryParser.MAP0 =\n[ 70, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 26, 30, 30, 30, 30, 30, 31, 32, 33, 30, 30, 34, 30, 30, 35, 30, 30, 30, 36, 30, 30, 37, 38, 39, 38, 30, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 38, 38\n];\n\nXQueryParser.MAP1 =\n[ 108, 124, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 156, 181, 181, 181, 181, 181, 214, 215, 213, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 247, 261, 277, 293, 309, 355, 371, 387, 423, 423, 423, 415, 339, 331, 339, 331, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 440, 440, 440, 440, 440, 440, 440, 324, 339, 339, 339, 339, 339, 339, 339, 339, 401, 423, 423, 424, 422, 423, 423, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 338, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 423, 70, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 26, 30, 30, 30, 30, 30, 31, 32, 33, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 38, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 34, 30, 30, 35, 30, 30, 30, 36, 30, 30, 37, 38, 39, 38, 30, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 30, 30, 38, 38, 38, 38, 38, 38, 38, 69, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69\n];\n\nXQueryParser.MAP2 =\n[ 57344, 63744, 64976, 65008, 65536, 983040, 63743, 64975, 65007, 65533, 983039, 1114111, 38, 30, 38, 30, 30, 38\n];\n\nXQueryParser.INITIAL =\n[ 1, 12290, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287\n];\n\nXQueryParser.TRANSITION =\n[ 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 25651, 25666, 25670, 25670, 25670, 18189, 25670, 25670, 25670, 25670, 18201, 25670, 25670, 25670, 25670, 18176, 25670, 25671, 18217, 42516, 42516, 42516, 27632, 42516, 42516, 51474, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 32629, 20505, 21066, 18953, 21068, 19019, 18919, 18270, 40105, 18293, 18315, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 18459, 25598, 18486, 18508, 51199, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 20477, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 21141, 42516, 42516, 42516, 42516, 48069, 42516, 42516, 42516, 42516, 25917, 18730, 20976, 20988, 20999, 21015, 25420, 18732, 21040, 42516, 42516, 42516, 27632, 42516, 42516, 51474, 31122, 42516, 42516, 42516, 42516, 42516, 42516, 32629, 20505, 21066, 18953, 21068, 21056, 21084, 18270, 40105, 18293, 18315, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 18459, 25598, 18486, 18508, 51199, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 20477, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 23286, 21107, 42516, 42516, 42516, 39416, 42516, 42516, 43470, 47286, 25568, 42516, 42516, 42516, 42516, 23672, 41495, 21126, 21160, 42516, 42516, 42516, 27632, 42516, 42516, 35938, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 32629, 20505, 21066, 18953, 21068, 19019, 25556, 18270, 40105, 18293, 18315, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 18459, 25598, 18486, 18508, 51199, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 20477, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 21176, 21248, 42516, 42516, 42516, 50595, 42516, 42516, 42445, 42516, 25917, 23619, 21211, 21279, 21269, 21226, 21240, 44419, 21040, 42516, 42516, 42516, 27632, 21302, 42516, 32247, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 32629, 20505, 21066, 18953, 21068, 19019, 19871, 21321, 40105, 18293, 18315, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 18459, 25598, 18486, 18508, 51199, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 21344, 26008, 18612, 18632, 18596, 21349, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 20477, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 21141, 42510, 42516, 42516, 42516, 48894, 42515, 42516, 51366, 42516, 21365, 42504, 21403, 42515, 21410, 42516, 27599, 27612, 21040, 42516, 42516, 42516, 27632, 42516, 42516, 51474, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 32629, 20505, 21066, 18953, 21068, 19019, 18919, 18270, 40105, 18293, 18315, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 18459, 25598, 18486, 18508, 51199, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 20477, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 21141, 42516, 42516, 42516, 42516, 48069, 21426, 42516, 42516, 42516, 22170, 42516, 42516, 21445, 42516, 42516, 21468, 21481, 21040, 42516, 42516, 42516, 27632, 42516, 42516, 51474, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 32629, 20505, 21066, 18953, 21068, 19019, 18919, 18270, 40105, 18293, 18315, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 18459, 25598, 18486, 18508, 51199, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 20477, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 21141, 42516, 42516, 42516, 42516, 48069, 42516, 42516, 42516, 42516, 24484, 42516, 42516, 42516, 42516, 42516, 42516, 42517, 21497, 42516, 42516, 42516, 27632, 42516, 42516, 51474, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 32629, 20505, 21066, 18953, 21068, 19019, 18919, 18270, 40105, 18293, 18315, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 21513, 25598, 18486, 18508, 51408, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 20477, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 25358, 21538, 42516, 42516, 42516, 29996, 42516, 42516, 26519, 46446, 25383, 42516, 42516, 42516, 42516, 25736, 28473, 18232, 21557, 42516, 42516, 42516, 27632, 42516, 42516, 51474, 21573, 42516, 42516, 42516, 42516, 42516, 42516, 32629, 20505, 21066, 18953, 21068, 19019, 19060, 21591, 40105, 18293, 18315, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 18459, 25598, 18486, 18508, 51199, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 20477, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 23074, 23089, 21619, 21619, 21619, 21672, 21614, 21619, 21624, 23096, 21640, 21745, 21688, 21665, 21655, 21732, 21703, 21716, 21040, 42516, 42516, 42516, 33326, 42516, 42516, 51474, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 32629, 20505, 21066, 18953, 21068, 19019, 18919, 18270, 40105, 18293, 21761, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 18459, 25598, 18486, 18508, 51199, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 20477, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 21141, 45317, 42516, 42516, 42516, 49458, 21798, 42516, 22640, 21804, 25917, 45316, 42516, 21821, 21844, 21828, 21860, 21869, 21885, 42516, 42516, 42516, 29550, 42516, 42516, 51474, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 32629, 20505, 21066, 18953, 21068, 19019, 18919, 18270, 40105, 18293, 21901, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 18459, 25598, 18486, 18508, 51199, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 20477, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 21141, 21944, 42516, 42516, 42516, 48069, 42516, 42516, 42516, 26308, 36543, 25445, 25454, 21937, 25455, 21960, 21985, 21998, 21040, 42516, 42516, 42516, 27632, 42516, 42516, 51474, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 32629, 20505, 21066, 18953, 21068, 19019, 18919, 18270, 40105, 18293, 18315, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 18459, 25598, 18486, 18508, 18888, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 20477, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 21141, 42516, 42516, 42516, 42516, 48069, 42516, 42516, 42516, 26329, 37275, 42655, 22014, 22031, 22014, 22046, 42653, 22015, 21040, 42516, 42516, 42516, 27632, 42516, 42516, 51474, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 32629, 20505, 21066, 18953, 21068, 19019, 18919, 18270, 40105, 18293, 18315, 42516, 42516, 22071, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 18459, 25598, 18486, 18508, 51199, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 20477, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 21141, 26891, 42516, 42516, 42516, 48069, 22092, 42516, 23653, 22130, 40293, 22116, 22186, 22191, 22191, 22207, 26888, 44587, 21040, 42516, 42516, 42516, 27632, 42516, 42516, 51474, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 32629, 20505, 21066, 18953, 21068, 19019, 18919, 18270, 40105, 18293, 18315, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 18459, 25598, 18486, 18508, 51199, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 20477, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 18247, 42516, 42516, 42516, 42516, 48069, 42516, 42516, 42516, 42516, 25917, 35843, 22232, 22249, 22232, 22264, 35841, 22233, 22289, 42516, 42516, 42516, 27632, 42516, 42516, 51474, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28241, 22657, 46314, 35273, 38147, 34810, 46363, 42516, 33841, 42516, 34304, 43899, 22305, 22071, 36154, 42516, 42516, 42516, 42516, 28243, 22657, 22322, 22657, 22657, 22341, 33347, 46316, 46316, 39789, 38147, 35514, 38147, 38147, 22359, 22382, 42516, 42516, 42516, 42516, 42516, 28815, 42516, 22405, 22426, 42516, 42516, 38368, 22657, 22657, 22657, 22657, 38374, 22541, 46316, 46316, 46316, 46316, 44805, 38147, 38147, 38147, 38147, 38147, 32923, 22444, 47355, 26569, 42516, 42516, 42516, 42516, 42516, 45225, 42516, 42516, 32981, 50880, 22657, 22657, 22657, 30360, 22467, 39622, 46316, 22501, 46316, 22343, 36422, 42625, 38147, 22520, 38147, 27826, 41766, 42516, 42516, 42516, 42516, 42516, 49148, 42516, 23255, 22657, 44467, 22657, 22657, 30361, 22539, 42077, 46316, 46316, 46316, 30525, 38147, 40186, 38147, 38147, 34440, 41769, 42516, 42516, 20027, 37487, 42516, 28242, 22657, 22657, 36250, 37745, 46316, 46316, 44329, 37798, 38147, 38147, 43834, 27827, 30836, 42516, 42516, 19405, 22558, 38368, 22576, 22657, 40730, 22597, 46316, 36583, 22617, 38147, 40469, 22638, 42516, 25905, 42516, 34153, 22656, 33064, 46073, 46316, 22674, 22710, 27827, 22690, 51145, 42516, 32408, 22729, 37572, 22752, 32120, 22683, 29050, 30609, 22771, 38961, 22813, 36803, 22874, 22893, 22911, 28238, 43147, 27775, 22913, 22451, 22736, 46400, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 21141, 42516, 42516, 42516, 42516, 48069, 42516, 42516, 42516, 50215, 25917, 42516, 42516, 42516, 42516, 42516, 45715, 23059, 23112, 42516, 42516, 42516, 27632, 42516, 42516, 37325, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28241, 22657, 46314, 35273, 38147, 23128, 46363, 42516, 42516, 42516, 34304, 42516, 42516, 18360, 42516, 42516, 42516, 42516, 42516, 28243, 22657, 22657, 22657, 22657, 22341, 46316, 46316, 46316, 39789, 38147, 38147, 38147, 38147, 40896, 22382, 42516, 42516, 42516, 42516, 42516, 28815, 42516, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 22657, 22657, 38374, 22541, 46316, 46316, 46316, 46316, 44805, 38147, 38147, 38147, 38147, 38147, 32923, 22444, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38370, 22657, 22657, 22657, 22657, 30360, 22540, 46316, 46316, 46316, 46316, 22343, 30533, 38147, 38147, 38147, 38147, 27826, 41766, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 23255, 22657, 22657, 22657, 22657, 30361, 22539, 46316, 46316, 46316, 46316, 30525, 38147, 38147, 38147, 38147, 34440, 41769, 42516, 42516, 42516, 42516, 42516, 28242, 22657, 22657, 22657, 37745, 46316, 46316, 46316, 37798, 38147, 38147, 38147, 27827, 22690, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 21141, 23154, 42516, 42516, 42516, 46371, 42516, 42516, 42516, 42516, 25917, 35960, 23175, 23206, 23195, 23229, 35959, 23179, 21040, 42516, 42516, 42516, 27632, 42516, 42516, 51474, 27227, 42516, 43023, 42516, 42516, 42516, 42516, 32629, 20505, 21066, 18953, 21068, 19019, 18919, 18270, 40105, 18293, 18315, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 18459, 25598, 18486, 18508, 51199, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 20477, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 21141, 23254, 42516, 42516, 42516, 48069, 42516, 42516, 42516, 19968, 25917, 42516, 42516, 42516, 42516, 42516, 42762, 23271, 23302, 42516, 42516, 42516, 27632, 42516, 42516, 21380, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28241, 22657, 46314, 35273, 38147, 23318, 46363, 42516, 42516, 42516, 34304, 42516, 42516, 23344, 42516, 42516, 42516, 42516, 42516, 28243, 22657, 22657, 22657, 22657, 22341, 46316, 46316, 46316, 39789, 38147, 38147, 38147, 38147, 40896, 23370, 23409, 42516, 42516, 42516, 42516, 38331, 23429, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 22657, 22657, 38374, 22541, 46316, 46316, 46316, 46316, 44805, 38147, 38147, 38147, 38147, 38147, 32923, 23450, 23383, 42516, 42516, 42516, 42516, 42516, 23487, 42516, 42516, 42516, 38370, 22657, 22657, 22657, 22657, 50700, 22540, 46316, 46316, 46316, 46316, 47852, 30533, 38147, 38147, 38147, 38147, 27826, 35762, 23510, 42516, 42516, 42516, 42516, 42516, 42516, 23255, 22657, 22657, 22657, 22657, 29796, 22539, 46316, 46316, 46316, 46316, 23533, 38147, 38147, 38147, 38147, 34440, 41769, 42516, 42516, 42516, 42516, 42516, 28242, 22657, 22657, 22657, 46191, 46316, 46316, 46316, 32038, 38147, 38147, 38147, 27827, 22690, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 21141, 48371, 42516, 42516, 42516, 31492, 32078, 42516, 42516, 23557, 25917, 18721, 49121, 23587, 23594, 23610, 42516, 43878, 23635, 23651, 42516, 42516, 33439, 23669, 42516, 51474, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 32629, 20505, 25038, 24355, 23991, 25028, 23804, 18270, 40105, 18293, 23688, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 23724, 24084, 23749, 23789, 24317, 23827, 23849, 23904, 24015, 23917, 23946, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 23969, 24689, 24310, 25086, 25092, 23974, 23990, 24416, 24845, 24007, 23833, 24977, 24993, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 24031, 23930, 24046, 24073, 24057, 24100, 24137, 24664, 24240, 24198, 24251, 24225, 24986, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 24267, 24283, 24299, 24348, 24333, 24371, 24167, 24428, 24402, 23773, 24444, 24474, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 24500, 24558, 24572, 24588, 24604, 24182, 24745, 24620, 24636, 24767, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19514, 24680, 24514, 19528, 24705, 24152, 24757, 19947, 19984, 20043, 20080, 20119, 20157, 20667, 24542, 24528, 24731, 24830, 24209, 24939, 20235, 20264, 20301, 24783, 24799, 24815, 24715, 24861, 20381, 20397, 19814, 23733, 24877, 24893, 20503, 25039, 24968, 23864, 24927, 24955, 25015, 20652, 18443, 23763, 24386, 25055, 24651, 25071, 25108, 25159, 25175, 25191, 25243, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 21141, 27003, 42516, 42516, 42516, 48069, 25296, 42516, 42516, 25291, 40518, 25312, 25320, 25320, 25320, 25327, 27168, 25343, 21040, 42516, 42516, 42516, 27632, 42516, 42516, 51474, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 32629, 20505, 21066, 18953, 21068, 19019, 18919, 18270, 40105, 18293, 18315, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 18459, 25598, 18486, 18508, 51199, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25399, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 18963, 25373, 18652, 18689, 18711, 18748, 18695, 25415, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 19337, 25436, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 25471, 25509, 25525, 20579, 19301, 19596, 25541, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 25584, 19614, 19632, 19650, 25620, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 20477, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 21141, 42516, 42516, 42516, 42516, 48069, 42516, 42516, 42516, 42516, 21541, 28730, 28739, 28739, 28739, 28746, 47533, 25636, 21040, 42516, 42516, 42516, 27632, 42516, 42516, 51474, 42516, 42516, 27653, 42516, 42516, 42516, 42516, 32629, 20505, 21066, 18953, 21068, 19019, 25687, 18270, 40105, 18293, 18315, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 18459, 25598, 18486, 18508, 51199, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 20477, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51268, 23158, 42516, 42516, 42516, 48069, 42516, 42516, 42516, 42516, 25917, 22795, 25710, 25710, 25710, 25717, 23159, 22797, 21040, 25733, 42516, 42516, 27632, 42516, 42516, 51474, 42516, 42516, 44769, 42516, 42516, 42516, 42516, 32629, 20505, 21066, 18953, 21068, 19019, 25752, 18270, 40105, 18293, 18315, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 18459, 25598, 18486, 18508, 51199, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 20477, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 26066, 26075, 42516, 42516, 42516, 42907, 42516, 42516, 42516, 42516, 25917, 26405, 25775, 25775, 25775, 25782, 28588, 26407, 25798, 25814, 42516, 42516, 27632, 42516, 42516, 51474, 42516, 42516, 23413, 42516, 42516, 42516, 42516, 32629, 20505, 21066, 18953, 21068, 19019, 25831, 18270, 40105, 18293, 18315, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 18459, 25598, 18486, 18508, 51199, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 25857, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 25891, 42516, 42516, 42516, 42516, 48069, 25942, 42516, 42516, 28970, 33768, 42516, 42516, 42516, 25933, 25960, 26180, 25944, 25980, 42516, 42516, 42516, 27632, 42516, 42516, 51474, 27927, 42516, 42516, 42516, 42516, 42516, 42516, 32629, 20505, 21066, 18953, 21068, 25996, 26028, 18270, 40105, 18293, 18315, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 18459, 25598, 18486, 18508, 51199, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 20477, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 21141, 42516, 42516, 42516, 42516, 48069, 42516, 42516, 42516, 42516, 25917, 42516, 42516, 42516, 42516, 42516, 41865, 26051, 21040, 42516, 42516, 42516, 27632, 42516, 42516, 51474, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 32629, 20505, 21066, 18953, 21068, 19019, 18919, 18270, 40105, 18293, 18315, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 18459, 25598, 18486, 18508, 51199, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 20477, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 42516, 42516, 51537, 42516, 42516, 42516, 42516, 25917, 42516, 42516, 42516, 42516, 46741, 49861, 51029, 26099, 42516, 42516, 42516, 27632, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28241, 22657, 46314, 35273, 38147, 34810, 28721, 42516, 42516, 42516, 34304, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28243, 22657, 22657, 22657, 22657, 27401, 46316, 46316, 46316, 48318, 38147, 38147, 38147, 38147, 40896, 22382, 42516, 42516, 42516, 42516, 42516, 42516, 23487, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 22657, 22657, 38374, 22541, 46316, 46316, 46316, 46316, 44805, 38147, 38147, 38147, 38147, 38147, 32923, 26115, 26152, 42516, 42516, 42516, 42516, 42516, 23487, 42516, 42516, 42516, 38370, 22657, 22657, 22657, 22657, 30360, 22540, 46316, 46316, 46316, 46316, 22343, 30533, 38147, 38147, 38147, 38147, 27826, 35762, 23510, 42516, 42516, 42516, 42516, 26178, 42516, 23255, 22657, 22657, 22657, 22657, 22877, 22539, 46316, 46316, 46316, 46316, 32774, 38147, 38147, 38147, 38147, 34440, 41769, 42516, 42516, 42516, 42516, 42516, 28242, 22657, 22657, 22657, 46191, 46316, 46316, 46316, 32038, 38147, 38147, 38147, 27827, 22690, 42516, 42516, 23464, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 42516, 42516, 51537, 42516, 42516, 42516, 42516, 25917, 42516, 42516, 42516, 42516, 46741, 49861, 51029, 26099, 42516, 42516, 42516, 27632, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28241, 22657, 46314, 35273, 38147, 34810, 28721, 42516, 42516, 42516, 34304, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28243, 22657, 22657, 22657, 22657, 27401, 46316, 46316, 46316, 48318, 38147, 38147, 38147, 38147, 40896, 22382, 42516, 42516, 42516, 42516, 42516, 42516, 23487, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 22657, 22657, 38374, 22541, 46316, 46316, 46316, 46316, 44805, 38147, 38147, 38147, 38147, 38147, 32923, 26115, 26152, 42516, 42516, 42516, 42516, 42516, 23487, 42516, 42516, 42516, 38370, 22657, 22657, 22657, 22657, 30360, 22540, 46316, 46316, 46316, 46316, 22343, 30533, 38147, 38147, 38147, 38147, 27826, 35762, 23510, 42516, 42516, 42516, 42516, 42516, 42516, 23255, 22657, 22657, 22657, 22657, 22877, 22539, 46316, 46316, 46316, 46316, 32774, 38147, 38147, 38147, 38147, 34440, 41769, 42516, 42516, 42516, 42516, 42516, 28242, 22657, 22657, 22657, 46191, 46316, 46316, 46316, 32038, 38147, 38147, 38147, 27827, 22690, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 42516, 42516, 51537, 42516, 42516, 42516, 42516, 25917, 42516, 42516, 42516, 42516, 46741, 49861, 51029, 26099, 42516, 42516, 42516, 27632, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28241, 22657, 46314, 35273, 38147, 34810, 28721, 42516, 42516, 42516, 34304, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28243, 22657, 22657, 22657, 22657, 27401, 46316, 46316, 46316, 48318, 38147, 38147, 38147, 38147, 40896, 22382, 42516, 42516, 42516, 42516, 42516, 42516, 23487, 26196, 42516, 42516, 42516, 38368, 22657, 22657, 22657, 22657, 38374, 22541, 46316, 46316, 46316, 46316, 44805, 38147, 38147, 38147, 38147, 38147, 32923, 26115, 26152, 42516, 42516, 42516, 42516, 42516, 23487, 42516, 42516, 42516, 38370, 22657, 22657, 22657, 22657, 30360, 22540, 46316, 46316, 46316, 46316, 22343, 30533, 38147, 38147, 38147, 38147, 27826, 35762, 23510, 42516, 42516, 42516, 42516, 42516, 42516, 23255, 22657, 22657, 22657, 22657, 22877, 22539, 46316, 46316, 46316, 46316, 32774, 38147, 38147, 38147, 38147, 34440, 41769, 42516, 42516, 42516, 42516, 42516, 28242, 22657, 22657, 22657, 46191, 46316, 46316, 46316, 32038, 38147, 38147, 38147, 27827, 22690, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 42516, 42516, 51537, 42516, 42516, 42516, 42516, 25917, 42516, 42516, 42516, 42516, 46741, 49861, 51029, 26099, 42516, 42516, 42516, 27632, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28241, 22657, 46314, 35273, 38147, 34810, 28721, 42516, 42516, 42516, 34304, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28243, 22657, 22657, 22657, 22657, 27401, 46316, 46316, 46316, 48318, 38147, 38147, 38147, 38147, 40896, 22382, 42516, 42516, 42516, 42516, 42516, 42516, 23487, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 22657, 22657, 38374, 22541, 46316, 46316, 46316, 46316, 44805, 38147, 38147, 38147, 38147, 38147, 32923, 26115, 26152, 42516, 42516, 42516, 42516, 42516, 26216, 42516, 42516, 42516, 38370, 22657, 22657, 22657, 22657, 30360, 22540, 46316, 46316, 46316, 46316, 22343, 30533, 38147, 38147, 38147, 38147, 27826, 35762, 23510, 42516, 42516, 42516, 42516, 42516, 42516, 23255, 22657, 22657, 22657, 22657, 22877, 22539, 46316, 46316, 46316, 46316, 32774, 38147, 38147, 38147, 38147, 34440, 41769, 42516, 42516, 42516, 42516, 42516, 28242, 22657, 22657, 22657, 46191, 46316, 46316, 46316, 32038, 38147, 38147, 38147, 27827, 22690, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 42516, 42516, 51537, 42516, 42516, 42516, 42516, 25917, 42516, 42516, 42516, 42516, 46741, 49861, 51029, 26099, 42516, 42516, 42516, 27632, 42516, 42516, 31151, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28241, 22657, 46314, 35273, 38147, 34810, 28721, 42516, 42516, 42516, 34304, 42516, 42516, 31154, 42516, 42516, 42516, 42516, 42516, 28243, 22657, 22657, 22657, 22657, 27401, 46316, 46316, 46316, 48318, 38147, 38147, 38147, 38147, 40896, 22382, 42516, 42516, 42516, 42516, 42516, 42516, 23487, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 22657, 22657, 38374, 22541, 46316, 46316, 46316, 46316, 44805, 38147, 38147, 38147, 38147, 38147, 32923, 26115, 26152, 42516, 42516, 42516, 42516, 42516, 23487, 42516, 42516, 42516, 38370, 22657, 22657, 22657, 22657, 30360, 22540, 46316, 46316, 46316, 46316, 22343, 30533, 38147, 38147, 38147, 38147, 27826, 35762, 23510, 42516, 42516, 42516, 42516, 42516, 42516, 23255, 22657, 22657, 22657, 22657, 22877, 22539, 46316, 46316, 46316, 46316, 32774, 38147, 38147, 38147, 38147, 34440, 41769, 42516, 42516, 42516, 42516, 42516, 28242, 22657, 22657, 22657, 46191, 46316, 46316, 46316, 32038, 38147, 38147, 38147, 27827, 22690, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 42516, 42516, 51537, 42516, 42516, 42516, 42516, 25917, 42516, 42516, 42516, 42516, 46741, 49861, 51029, 26099, 42516, 42516, 42516, 27632, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28241, 22657, 46314, 35273, 38147, 34810, 28721, 42516, 42516, 42516, 34304, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28243, 22657, 22657, 22657, 22657, 27401, 46316, 46316, 46316, 48318, 38147, 38147, 38147, 38147, 40896, 22382, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 22657, 22657, 38374, 22541, 46316, 46316, 46316, 46316, 44805, 38147, 38147, 38147, 38147, 38147, 32923, 22444, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38370, 22657, 22657, 22657, 22657, 30360, 22540, 46316, 46316, 46316, 46316, 22343, 30533, 38147, 38147, 38147, 38147, 27826, 41766, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 23255, 22657, 22657, 22657, 22657, 30361, 22539, 46316, 46316, 46316, 46316, 30525, 38147, 38147, 38147, 38147, 34440, 41769, 42516, 42516, 42516, 42516, 42516, 28242, 22657, 22657, 22657, 37745, 46316, 46316, 46316, 37798, 38147, 38147, 38147, 27827, 22690, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 42516, 42516, 51537, 42516, 42516, 42516, 42516, 25917, 42516, 42516, 42516, 42516, 46741, 49861, 51029, 26099, 42516, 42516, 42516, 27632, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28241, 22657, 46314, 35273, 38147, 34810, 22786, 42516, 42516, 42516, 34304, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28243, 22657, 22657, 22657, 22657, 27401, 46316, 46316, 46316, 48318, 38147, 38147, 38147, 38147, 40896, 22382, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 22657, 22657, 38374, 22541, 46316, 46316, 46316, 46316, 44805, 38147, 38147, 38147, 38147, 38147, 32923, 22444, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38370, 22657, 22657, 22657, 22657, 30360, 22540, 46316, 46316, 46316, 46316, 22343, 30533, 38147, 38147, 38147, 38147, 27826, 41766, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 23255, 22657, 22657, 22657, 22657, 30361, 22539, 46316, 46316, 46316, 46316, 30525, 38147, 38147, 38147, 38147, 34440, 41769, 42516, 42516, 42516, 42516, 42516, 28242, 22657, 22657, 22657, 37745, 46316, 46316, 46316, 37798, 38147, 38147, 38147, 27827, 22690, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 42516, 42516, 51537, 42516, 42516, 42516, 42516, 25917, 42516, 42516, 42516, 42516, 46741, 49861, 51029, 26258, 42516, 42516, 42516, 27632, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28241, 22657, 46314, 35273, 38147, 34810, 28721, 42516, 42516, 42516, 34304, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28243, 22657, 22657, 22657, 22657, 27401, 46316, 46316, 46316, 48318, 38147, 38147, 38147, 38147, 40896, 22382, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 22657, 22657, 38374, 22541, 46316, 46316, 46316, 46316, 44805, 38147, 38147, 38147, 38147, 38147, 32923, 22444, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38370, 22657, 22657, 22657, 22657, 30360, 22540, 46316, 46316, 46316, 46316, 22343, 30533, 38147, 38147, 38147, 38147, 27826, 41766, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 23255, 22657, 22657, 22657, 22657, 30361, 22539, 46316, 46316, 46316, 46316, 30525, 38147, 38147, 38147, 38147, 34440, 41769, 42516, 42516, 42516, 42516, 42516, 28242, 22657, 22657, 22657, 37745, 46316, 46316, 46316, 37798, 38147, 38147, 38147, 27827, 22690, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 42516, 42516, 51537, 42516, 42516, 42516, 42516, 25917, 48694, 42516, 42516, 42516, 46741, 49861, 51029, 26099, 42516, 42516, 42516, 27632, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28241, 22657, 46314, 35273, 38147, 34810, 28721, 42516, 42516, 42516, 34304, 42516, 42516, 42516, 28605, 42516, 42516, 42516, 42516, 28243, 22657, 22657, 22657, 22657, 27401, 46316, 46316, 46316, 48318, 38147, 38147, 38147, 38147, 40896, 22382, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 22657, 22657, 38374, 22541, 46316, 46316, 46316, 46316, 44805, 38147, 38147, 38147, 38147, 38147, 32923, 22444, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38370, 22657, 22657, 22657, 22657, 30360, 22540, 46316, 46316, 46316, 46316, 22343, 30533, 38147, 38147, 38147, 38147, 27826, 41766, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 23255, 22657, 22657, 22657, 22657, 30361, 22539, 46316, 46316, 46316, 46316, 30525, 38147, 38147, 38147, 38147, 34440, 41769, 42516, 42516, 42516, 42516, 42516, 28242, 22657, 22657, 22657, 37745, 46316, 46316, 46316, 37798, 38147, 38147, 38147, 27827, 22690, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 42516, 42516, 51537, 42516, 42516, 42516, 42516, 25917, 42516, 42516, 42516, 42516, 47769, 26274, 26287, 26099, 42516, 42516, 42516, 27632, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28241, 22657, 46314, 35273, 38147, 34810, 28721, 42516, 42516, 42516, 34304, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28243, 22657, 22657, 22657, 22657, 27401, 46316, 46316, 46316, 48318, 38147, 38147, 38147, 38147, 40896, 22382, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 22657, 22657, 38374, 22541, 46316, 46316, 46316, 46316, 44805, 38147, 38147, 38147, 38147, 38147, 32923, 22444, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38370, 22657, 22657, 22657, 22657, 30360, 22540, 46316, 46316, 46316, 46316, 22343, 30533, 38147, 38147, 38147, 38147, 27826, 41766, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 23255, 22657, 22657, 22657, 22657, 30361, 22539, 46316, 46316, 46316, 46316, 30525, 38147, 38147, 38147, 38147, 34440, 41769, 42516, 42516, 42516, 42516, 42516, 28242, 22657, 22657, 22657, 37745, 46316, 46316, 46316, 37798, 38147, 38147, 38147, 27827, 22690, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 42516, 42516, 51537, 42516, 42516, 42516, 42516, 25917, 42516, 42516, 42516, 42516, 46741, 49861, 51029, 26099, 42516, 42516, 42516, 27632, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28241, 22657, 46314, 35273, 38147, 34810, 28721, 42516, 42516, 42516, 34304, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28243, 22657, 22657, 22657, 22657, 27401, 46316, 46316, 46316, 48318, 38147, 38147, 38147, 38147, 40896, 22382, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 22657, 22657, 38374, 22541, 46316, 46316, 46316, 46316, 44805, 38147, 38147, 38147, 38147, 38147, 32923, 22444, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38370, 22657, 22657, 22657, 22657, 30360, 22540, 46316, 46316, 46316, 46316, 22343, 30533, 38147, 38147, 38147, 38147, 27826, 41766, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 23255, 22657, 22657, 22657, 22657, 30361, 22539, 46316, 46316, 46316, 46316, 30525, 38147, 38147, 38147, 38147, 34440, 41769, 42516, 42516, 42516, 26303, 42516, 28242, 22657, 22657, 22657, 37745, 46316, 46316, 46316, 37798, 38147, 38147, 38147, 27827, 22690, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 26324, 42516, 42516, 42516, 42516, 51537, 42516, 42516, 42516, 42516, 25917, 42516, 42516, 42516, 42516, 46741, 49861, 51029, 26099, 42516, 42516, 42516, 27632, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28241, 22657, 46314, 35273, 38147, 34810, 28721, 42516, 42516, 42516, 34304, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28243, 22657, 22657, 22657, 22657, 27401, 46316, 46316, 46316, 48318, 38147, 38147, 38147, 38147, 40896, 22382, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 22657, 22657, 38374, 22541, 46316, 46316, 46316, 46316, 44805, 38147, 38147, 38147, 38147, 38147, 32923, 22444, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38370, 22657, 22657, 22657, 22657, 30360, 22540, 46316, 46316, 46316, 46316, 22343, 30533, 38147, 38147, 38147, 38147, 27826, 41766, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 23255, 22657, 22657, 22657, 22657, 30361, 22539, 46316, 46316, 46316, 46316, 30525, 38147, 38147, 38147, 38147, 34440, 41769, 42516, 42516, 42516, 42516, 42516, 28242, 22657, 22657, 22657, 37745, 46316, 46316, 46316, 37798, 38147, 38147, 38147, 27827, 22690, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 21141, 42516, 42516, 42516, 42516, 48069, 42516, 42516, 42516, 42516, 25917, 35004, 26345, 26373, 26362, 26396, 35005, 26346, 21040, 42516, 42516, 42516, 27632, 42516, 42516, 51474, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 32629, 20505, 21066, 18953, 21068, 19019, 18919, 18270, 40105, 18293, 18315, 42516, 42516, 18360, 37963, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 18459, 25598, 18486, 18508, 51199, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 26423, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 20477, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 21141, 42516, 42516, 42516, 42516, 48069, 42516, 42516, 42516, 42516, 25917, 42516, 42516, 42516, 42516, 42516, 42516, 42517, 21040, 42516, 42516, 42516, 27632, 42516, 42516, 51474, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 32629, 20505, 21066, 18953, 21068, 19019, 18919, 18270, 40105, 18293, 18315, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 18459, 25598, 18486, 18508, 51199, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 20477, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 21141, 42516, 42516, 42516, 42516, 48069, 42516, 42516, 42516, 42516, 25917, 47727, 42516, 26460, 26483, 26467, 42516, 47735, 21040, 42516, 42516, 42516, 27632, 42516, 42516, 51474, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 32629, 20505, 21066, 18953, 21068, 19019, 18919, 18270, 40105, 18293, 18315, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 18459, 25598, 18486, 18508, 51199, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 26499, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 26535, 20397, 20422, 20606, 20438, 26551, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 29068, 42516, 42516, 42516, 51537, 26585, 26616, 29663, 26601, 26633, 26690, 26699, 26715, 26730, 26742, 26758, 26771, 26099, 19999, 42516, 26787, 26162, 26806, 41856, 26832, 26883, 26907, 26946, 30733, 26962, 26998, 27019, 27054, 46783, 31896, 27070, 46885, 46348, 36728, 27120, 42516, 42516, 34304, 27137, 37896, 42516, 27163, 34995, 39190, 42516, 27184, 43650, 22657, 22657, 22657, 27203, 27401, 46316, 46316, 41985, 48318, 38147, 38147, 38147, 37213, 40896, 22382, 42516, 27222, 48046, 42516, 27243, 27263, 27280, 42516, 42516, 27038, 20763, 27308, 27328, 22657, 22657, 27363, 27386, 27419, 35266, 46316, 30482, 27448, 27495, 27524, 27566, 38147, 35889, 38740, 46095, 27585, 26152, 27628, 42516, 45564, 42516, 47310, 23487, 42516, 46936, 27648, 27669, 27685, 34339, 22657, 27729, 22984, 44673, 27748, 45967, 46316, 27773, 39768, 32782, 27791, 37607, 38147, 27824, 22485, 27843, 27859, 27882, 27899, 42516, 27922, 31758, 27943, 23255, 33056, 27962, 22657, 42185, 33093, 27982, 30091, 46316, 35423, 43042, 32774, 28017, 38147, 38147, 42363, 28033, 23138, 28062, 40096, 28115, 41486, 28137, 21969, 22956, 28160, 22657, 46191, 35558, 28176, 28197, 32038, 49740, 47969, 28214, 27827, 28233, 42899, 42516, 21253, 42516, 38368, 42934, 43766, 40730, 37393, 48025, 36583, 51021, 44713, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 28260, 28298, 33550, 28320, 28341, 28379, 28401, 28421, 26921, 40729, 36585, 44924, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 28445, 42516, 42516, 51537, 42516, 42516, 42516, 42516, 31409, 28464, 42516, 28489, 28496, 28512, 28528, 28541, 26099, 42516, 42516, 42516, 27632, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28241, 42942, 46314, 28557, 30860, 34810, 28721, 42516, 42516, 42516, 34304, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28243, 22657, 22657, 22657, 22657, 27401, 46316, 46316, 46316, 48318, 38147, 38147, 38147, 38147, 40896, 22382, 42516, 42516, 42516, 42516, 42516, 28583, 23487, 28604, 45602, 42516, 42516, 38368, 22657, 22657, 22657, 44648, 28621, 22541, 46316, 46316, 46316, 40008, 44805, 38147, 38147, 38147, 38147, 41449, 32923, 26115, 26152, 42516, 42516, 42516, 42516, 42516, 23487, 42516, 42516, 42516, 38370, 22657, 22657, 22657, 22657, 30360, 22540, 46316, 46316, 46316, 46316, 22343, 30533, 38147, 38147, 38147, 38147, 27826, 35762, 23510, 42516, 32305, 42516, 42516, 28652, 43395, 23255, 28671, 22657, 22657, 22657, 28690, 28706, 46316, 46316, 46316, 37589, 32774, 28762, 38147, 38147, 38147, 44356, 41769, 42516, 42516, 42516, 42516, 42516, 28242, 22657, 22657, 22657, 46191, 46316, 46316, 46316, 32038, 38147, 38147, 38147, 27827, 22690, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 23013, 26674, 44310, 41661, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 28784, 42516, 42516, 51537, 42516, 28813, 42516, 28831, 36313, 28851, 28860, 28876, 28891, 28903, 28919, 28932, 26099, 42516, 42516, 33807, 29427, 42516, 42516, 28948, 42516, 28965, 42516, 42516, 42516, 25275, 42516, 28986, 44283, 46314, 29021, 22622, 37863, 32069, 42516, 29066, 42516, 34304, 29084, 49128, 42516, 45291, 29103, 36853, 42516, 39408, 30216, 37513, 22657, 22657, 22657, 29138, 29162, 46316, 46316, 48917, 29187, 29203, 38147, 38147, 40896, 22382, 23471, 42516, 42516, 37970, 42516, 41320, 23487, 39926, 29222, 42516, 42516, 38368, 29257, 38293, 22657, 29296, 38374, 29315, 31567, 38618, 38779, 46316, 44805, 42631, 29346, 29367, 48610, 38147, 32923, 26115, 26152, 42516, 42516, 35359, 42516, 36267, 23487, 42516, 42516, 42516, 38370, 22657, 22657, 38875, 29587, 30360, 22540, 46316, 46316, 49716, 48753, 22343, 30533, 38147, 38147, 47896, 47206, 27826, 35762, 29388, 42516, 42516, 42516, 29423, 42516, 29443, 23255, 22657, 22657, 22657, 43545, 22877, 22539, 46316, 46316, 49625, 46316, 32774, 38147, 38147, 38147, 29464, 34440, 41769, 42516, 42516, 19074, 42516, 46902, 29483, 22657, 45738, 22657, 46191, 46316, 28001, 46316, 32038, 38147, 48630, 38147, 27827, 29518, 29546, 42516, 39530, 20864, 38368, 29566, 29583, 46250, 46316, 29603, 36583, 29623, 29640, 40469, 42516, 42516, 42516, 29661, 38373, 22657, 29679, 46316, 51108, 36586, 38147, 50541, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 29702, 29722, 29738, 29754, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 34720, 29778, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 26790, 42516, 42516, 51537, 42516, 29812, 25227, 42516, 31450, 29831, 29840, 29856, 29871, 29878, 29894, 29907, 26099, 42516, 42516, 42516, 27632, 42516, 42516, 42516, 42516, 42516, 42516, 31072, 31070, 42516, 32276, 32283, 40826, 29686, 35273, 29923, 34810, 28721, 42516, 35352, 29943, 34304, 42516, 29968, 36872, 42516, 42516, 29988, 30012, 34471, 30028, 22581, 34160, 30064, 24121, 30107, 48780, 30128, 30172, 30191, 29624, 22523, 47650, 28217, 40896, 22382, 42516, 42516, 42516, 42735, 42516, 30232, 23487, 42516, 42516, 42516, 27906, 38368, 22657, 22657, 22657, 26867, 38374, 22541, 46316, 46316, 46316, 37425, 44805, 38147, 38147, 38147, 38147, 30252, 50615, 30272, 30304, 42516, 42516, 42516, 30320, 30338, 23487, 42516, 42516, 27104, 21782, 30358, 30377, 22657, 22657, 30395, 30434, 30481, 30498, 46316, 46316, 30515, 51071, 30551, 30568, 38147, 38147, 30585, 35762, 23510, 42516, 42516, 42516, 42516, 42516, 30625, 23255, 30648, 22657, 22657, 30668, 22877, 30687, 46316, 46316, 34855, 46316, 32837, 38147, 38147, 43217, 38147, 34440, 41769, 45029, 42516, 30729, 42516, 21024, 28242, 29299, 22657, 30749, 46191, 50174, 46316, 30776, 32038, 38147, 30812, 48472, 27827, 22690, 23708, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 37071, 42516, 42516, 38373, 22657, 31523, 46316, 43307, 36586, 38147, 39352, 22690, 34920, 42516, 38372, 43148, 46316, 38137, 38147, 30829, 36804, 38368, 28385, 28404, 30535, 27085, 28354, 31634, 30852, 30600, 30074, 38197, 42103, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 21805, 30876, 42516, 51537, 49762, 30895, 42516, 30918, 43094, 30942, 30951, 30967, 30982, 30994, 31010, 31023, 26099, 42516, 31039, 39573, 31055, 20844, 31088, 31151, 40795, 31438, 31118, 31138, 31170, 31208, 31224, 31259, 31325, 39316, 31341, 31357, 42305, 39859, 31243, 31397, 39944, 31425, 33906, 31466, 31484, 36903, 42516, 42516, 38844, 42516, 28243, 31508, 40831, 43064, 26242, 31546, 31583, 49551, 32501, 35578, 43001, 31607, 35023, 30465, 31623, 22382, 40777, 39000, 31658, 40711, 31716, 41838, 31747, 42230, 41234, 31783, 31813, 31829, 31873, 31912, 31936, 31952, 31988, 32019, 35868, 32054, 38034, 47598, 32094, 32110, 32136, 39813, 32152, 32186, 47170, 32233, 26152, 32263, 42516, 49503, 42516, 32299, 32321, 32337, 32365, 32386, 32406, 32424, 22657, 35078, 32463, 30760, 22540, 32487, 46316, 47681, 50971, 43200, 30533, 32517, 38147, 37625, 38481, 40265, 32560, 23510, 18666, 32576, 32596, 39698, 32624, 37664, 32645, 31965, 32706, 47478, 32693, 32731, 32762, 40433, 46316, 32798, 32825, 32774, 32853, 32872, 49013, 32893, 32919, 41769, 42516, 21429, 46706, 42516, 42516, 32939, 25143, 43551, 27695, 46191, 47568, 50517, 33128, 32038, 44391, 37914, 44027, 27827, 22690, 51501, 22158, 32960, 23571, 32997, 33045, 33080, 33109, 33144, 33160, 33196, 33225, 33259, 33289, 25257, 41794, 33305, 33321, 22943, 47433, 44826, 33342, 33363, 33392, 45913, 37247, 22690, 23238, 33434, 38372, 47456, 46316, 49977, 38147, 33455, 33478, 32944, 28385, 33515, 33536, 30206, 38372, 33571, 38971, 31372, 39304, 33587, 33611, 33627, 33643, 33674, 33720, 28385, 36584, 33273, 33742, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 33784, 42516, 51537, 33805, 33823, 29972, 43389, 33866, 33897, 42516, 33882, 33940, 33947, 33963, 33976, 26099, 42516, 42516, 20279, 27632, 42516, 42516, 42516, 42516, 42516, 41269, 42516, 41261, 42516, 41268, 25123, 41628, 38176, 37400, 33992, 34810, 28721, 42516, 34012, 42516, 34304, 34012, 42516, 42516, 42516, 34029, 34013, 37295, 42516, 28243, 34045, 22657, 22657, 22657, 34069, 34103, 46316, 46316, 48318, 47159, 38147, 38147, 38147, 40896, 22382, 42516, 42516, 42516, 42516, 42516, 42516, 23487, 42516, 42516, 45931, 42516, 38368, 22657, 22657, 22657, 44213, 38374, 22541, 46316, 46316, 46316, 42968, 44805, 38147, 38147, 38147, 38147, 34120, 32923, 26115, 26152, 42516, 42516, 42516, 42516, 42516, 23487, 42516, 46602, 42516, 38370, 22657, 22657, 30041, 22657, 30360, 22540, 46316, 46316, 42268, 46316, 22343, 30533, 38147, 38147, 44000, 38147, 27826, 35762, 23510, 42516, 42516, 42516, 42516, 42516, 39273, 23255, 22657, 22657, 22657, 37139, 22877, 22539, 46316, 46316, 49643, 46316, 32774, 38147, 38147, 38147, 48815, 34440, 41769, 42516, 42516, 42516, 42516, 42516, 28242, 22657, 22657, 22657, 46191, 46316, 46316, 46316, 32038, 38147, 38147, 38147, 27827, 22690, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 46733, 42516, 42516, 42516, 36647, 22657, 28384, 27995, 46316, 49984, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 44874, 43254, 31692, 29762, 34139, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 42516, 42516, 51537, 42516, 38852, 42516, 42516, 51280, 34176, 34185, 34201, 34208, 34215, 34231, 34244, 26099, 42516, 42516, 42516, 27632, 42516, 42516, 34401, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28241, 22657, 46314, 35273, 38147, 34810, 37878, 42057, 42516, 42516, 34304, 42516, 42516, 42516, 42516, 34260, 42516, 42516, 42516, 28243, 22657, 22657, 22657, 22657, 27401, 46316, 46316, 46316, 48318, 38147, 38147, 38147, 38147, 40896, 22382, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 34278, 42516, 28081, 38368, 22657, 22657, 22657, 22657, 38374, 42076, 46316, 46316, 46316, 46316, 46212, 38147, 38147, 38147, 38147, 38147, 32923, 22444, 42516, 42516, 42516, 47761, 42516, 34299, 19108, 42516, 42516, 19113, 34320, 22657, 22657, 34338, 22657, 30360, 22540, 46316, 34104, 46316, 46316, 22343, 30533, 38147, 42837, 38147, 38147, 27826, 34355, 42516, 42516, 42516, 34399, 42516, 42516, 42516, 23255, 22657, 22657, 22657, 22657, 30361, 22539, 46316, 46316, 46316, 46316, 30525, 38147, 38147, 38147, 38147, 34440, 41769, 42516, 42516, 38663, 42516, 34417, 28242, 22657, 22657, 38760, 37745, 46316, 46316, 50996, 37798, 38147, 38147, 38147, 34438, 22690, 34456, 18364, 34487, 34538, 24114, 31309, 31274, 34559, 34565, 27432, 34581, 44559, 30458, 34604, 22076, 42516, 19757, 34657, 29792, 34679, 47804, 33555, 31559, 34736, 35451, 34758, 22690, 41150, 39051, 35676, 32439, 38610, 34776, 34795, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 34833, 34871, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 42516, 42516, 51537, 42516, 42516, 42516, 42516, 25917, 42516, 42516, 42516, 42516, 46741, 49861, 51029, 26099, 18277, 42516, 42516, 34899, 42516, 42516, 42516, 36062, 42516, 36065, 42516, 42516, 34947, 34936, 36697, 22657, 34963, 27757, 38148, 48007, 34986, 42516, 42516, 29815, 34304, 21387, 19116, 42516, 38636, 42516, 42516, 42516, 42516, 28243, 22657, 22657, 43325, 22657, 27401, 46316, 46316, 30705, 48318, 38147, 38147, 38147, 35021, 40896, 22382, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 35376, 42516, 35039, 38368, 22657, 22657, 22657, 22657, 50945, 22541, 46316, 46316, 46316, 46316, 38717, 38147, 38147, 38147, 38147, 38147, 41757, 22444, 42516, 35059, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 39196, 38370, 35077, 22657, 22657, 22657, 30360, 46821, 46316, 46316, 46316, 46316, 22343, 23541, 38147, 38147, 38147, 38147, 27826, 41766, 42516, 42516, 42516, 50318, 42516, 42516, 42516, 23255, 22657, 22657, 22657, 46040, 30361, 22539, 46316, 46316, 46316, 34080, 30525, 38147, 38147, 38147, 42204, 34440, 41769, 42516, 42516, 46608, 42516, 42516, 28242, 22657, 22657, 22657, 37745, 46316, 46316, 46316, 37798, 38147, 38147, 38147, 27827, 22690, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 23434, 42516, 22428, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 35094, 34920, 22560, 38372, 50497, 46316, 40393, 38147, 43581, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 44978, 42516, 51537, 30322, 33499, 42482, 50012, 50022, 18763, 18772, 35115, 35131, 35143, 35159, 35172, 26099, 42516, 42516, 42516, 36498, 41847, 42516, 42516, 42516, 31671, 41803, 35188, 36161, 35205, 35221, 43491, 35237, 35256, 29171, 35289, 37464, 35305, 42516, 42516, 42516, 35339, 42516, 28090, 35375, 42516, 42516, 28949, 35314, 39266, 28243, 48989, 48108, 22657, 35392, 47509, 37433, 35422, 34970, 35439, 27808, 35467, 38147, 35501, 35536, 22382, 42516, 35594, 39908, 48509, 34515, 35614, 42516, 18299, 18417, 42516, 35655, 35672, 48116, 22657, 43129, 29280, 37184, 22541, 48019, 46316, 38117, 35692, 47637, 38147, 35719, 38147, 35737, 27472, 35753, 22444, 42516, 42516, 42516, 42516, 35778, 48535, 35820, 42516, 42516, 42516, 23024, 36244, 22657, 22657, 29502, 38418, 35859, 41980, 46316, 46316, 48733, 41934, 49389, 35884, 38147, 38147, 40673, 49832, 35905, 42516, 36909, 35924, 35976, 35997, 18673, 36033, 34522, 36081, 47410, 36098, 36117, 36141, 36177, 46316, 36198, 32809, 43953, 30446, 38147, 43626, 42012, 36214, 36230, 23328, 20636, 45205, 36266, 36283, 36301, 35981, 36329, 26662, 46771, 36350, 36390, 48253, 35703, 36411, 36456, 40231, 38454, 41461, 37653, 42516, 42516, 37028, 36479, 40577, 43121, 45398, 22366, 37772, 48725, 38205, 36432, 50457, 40469, 42516, 25485, 42516, 36514, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 36626, 36531, 42516, 28996, 31885, 36559, 36579, 36602, 36619, 36804, 36642, 28385, 28404, 30535, 42423, 49897, 44263, 36663, 36694, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 36713, 36744, 34366, 22755, 31692, 28429, 36774, 36790, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 39935, 42516, 51537, 42516, 42516, 42516, 42516, 25917, 42516, 29952, 39942, 19158, 38671, 36820, 36833, 26099, 42516, 42516, 42516, 27632, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28241, 22657, 46314, 35273, 38147, 34810, 28721, 42516, 42516, 42516, 34304, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28243, 22657, 22657, 44206, 22657, 27401, 46316, 46317, 46316, 48318, 38147, 38147, 34588, 38147, 40896, 22382, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 22657, 22657, 38374, 22541, 46316, 46316, 46316, 46316, 44805, 38147, 38147, 38147, 38147, 38147, 32923, 22444, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38370, 22657, 22657, 22657, 22657, 30360, 22540, 46316, 46316, 46316, 46316, 22343, 30533, 38147, 38147, 38147, 38147, 27826, 41766, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 23255, 22657, 22657, 22657, 22657, 30361, 22539, 46316, 46316, 46316, 46316, 30525, 38147, 38147, 38147, 38147, 34440, 41769, 42516, 42516, 42516, 42516, 42516, 28242, 22657, 22657, 22657, 37745, 46316, 46316, 46316, 37798, 38147, 38147, 38147, 27827, 22690, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 19484, 42516, 51537, 42516, 42516, 42516, 42516, 25917, 42516, 42516, 42516, 42516, 46741, 49861, 51029, 26099, 42516, 42516, 42516, 27632, 42516, 42516, 36849, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28241, 22657, 46314, 35273, 38147, 34810, 28721, 42516, 42516, 42516, 34304, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28243, 22657, 22657, 22657, 22657, 27401, 46316, 46316, 46316, 48318, 38147, 38147, 38147, 38147, 40896, 22382, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 22657, 22657, 38374, 22541, 46316, 46316, 46316, 46316, 44805, 38147, 38147, 38147, 38147, 38147, 32923, 22444, 42516, 36869, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 46294, 22657, 22657, 22657, 22657, 30360, 49232, 46316, 46316, 46316, 46316, 22343, 30796, 38147, 38147, 38147, 38147, 27826, 41766, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 23255, 22657, 22657, 22657, 22657, 30361, 22539, 46316, 46316, 46316, 46316, 30525, 38147, 38147, 38147, 38147, 34440, 41769, 42516, 42516, 42516, 42516, 42516, 28242, 22657, 22657, 22657, 37745, 46316, 46316, 46316, 37798, 38147, 38147, 38147, 27827, 22690, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 46996, 42516, 51537, 42516, 23354, 42516, 42753, 36888, 36925, 36938, 36954, 36961, 36977, 36993, 37006, 26099, 42516, 37022, 42516, 27632, 42516, 41516, 26816, 42516, 42516, 37044, 42516, 37049, 18537, 37065, 37087, 37117, 44086, 37200, 37235, 39844, 33658, 37263, 42516, 42516, 35791, 42516, 42516, 34914, 28072, 42516, 37291, 22389, 37311, 18926, 37716, 37348, 43712, 48153, 37366, 37382, 46316, 37416, 40607, 40193, 49587, 35520, 37449, 27508, 37480, 37934, 42516, 42516, 42516, 42516, 41144, 42516, 42516, 42516, 42516, 42516, 38368, 37503, 36125, 22657, 37529, 39594, 37550, 37566, 48265, 46316, 37588, 30713, 29645, 37605, 37623, 38799, 38147, 37641, 22444, 42516, 42516, 37688, 42516, 42516, 49494, 24999, 42516, 42516, 42516, 38370, 22657, 22657, 29494, 37704, 37740, 22540, 46316, 46316, 40001, 37761, 37795, 30533, 38147, 38147, 37825, 37814, 37848, 41766, 42516, 37894, 42516, 42516, 51139, 42516, 42516, 23255, 22657, 41398, 22657, 22657, 30361, 22539, 42274, 46316, 46316, 46316, 30525, 38147, 37912, 38147, 38147, 34440, 41769, 37930, 36490, 42516, 34663, 37950, 28242, 37986, 22657, 22657, 46812, 38013, 46316, 46316, 45485, 49261, 38147, 38147, 48821, 22690, 49311, 42516, 42516, 38050, 38368, 41404, 22657, 40730, 47057, 46316, 36583, 48937, 38147, 40469, 42516, 21575, 42516, 42516, 38373, 22657, 38069, 46316, 45780, 36586, 38147, 40463, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 38089, 46273, 22694, 23034, 40134, 34366, 22755, 38105, 38164, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 26200, 42516, 51537, 42516, 27946, 42516, 42516, 47834, 20951, 20960, 38221, 38236, 38243, 38259, 38272, 26258, 42516, 38551, 42516, 27632, 42516, 34262, 42516, 42516, 42516, 38553, 42516, 38546, 21091, 38552, 21774, 38288, 31700, 35273, 38309, 34810, 28721, 42516, 42516, 38329, 34304, 42516, 29241, 23811, 23953, 42516, 42516, 42516, 38347, 38364, 33022, 22657, 38390, 38410, 28636, 46316, 29607, 39628, 38434, 42370, 38147, 48603, 38470, 47663, 38504, 38541, 39253, 39681, 42516, 42516, 42516, 42516, 41197, 42516, 42516, 42516, 38368, 31857, 22657, 38569, 22657, 38374, 22541, 38589, 28198, 46316, 46316, 44805, 29206, 27800, 32877, 38147, 38147, 32923, 22444, 42516, 28144, 42516, 38634, 42516, 45188, 42516, 38652, 42516, 42516, 38370, 39723, 22657, 22657, 38687, 30379, 22540, 23043, 46316, 46316, 38710, 22895, 30533, 49398, 38147, 38147, 38733, 27826, 41766, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 23255, 22657, 22657, 22657, 22657, 30361, 22539, 46316, 46316, 46316, 46316, 30525, 38147, 38147, 38147, 38147, 34440, 41769, 42516, 42516, 42516, 42516, 42516, 28242, 22657, 22657, 22657, 37745, 46316, 46316, 46316, 37798, 38147, 38147, 38147, 27827, 33462, 42516, 42516, 42516, 42516, 38368, 38756, 22657, 40730, 38776, 46316, 36583, 38795, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 38815, 36586, 49663, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 49485, 38368, 44256, 40047, 45820, 38834, 38868, 32210, 38891, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 38914, 38935, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 27187, 42516, 30926, 42516, 34543, 38987, 37672, 39016, 39067, 39107, 39092, 39111, 39076, 39127, 39140, 26099, 42516, 25841, 23701, 20829, 39222, 20009, 42516, 39156, 41252, 39175, 39212, 32746, 21195, 39238, 26847, 39289, 45668, 39332, 39368, 34810, 28721, 32390, 42516, 42516, 26444, 30879, 36010, 28099, 40787, 39398, 38525, 26035, 39432, 39483, 44460, 39503, 41633, 22657, 32003, 22601, 46316, 49709, 48318, 47976, 47889, 30552, 38147, 33209, 39523, 39917, 39159, 42516, 39546, 42516, 42516, 40976, 42516, 42516, 42516, 39568, 39487, 37157, 22657, 39589, 22657, 38374, 39610, 45436, 46316, 39644, 46316, 44805, 27542, 39661, 38313, 38147, 38147, 32923, 22444, 42516, 42516, 42516, 42516, 30632, 42516, 42516, 21187, 39678, 39697, 39714, 22657, 22657, 50559, 22657, 39739, 39760, 46316, 46316, 38818, 46316, 39784, 39805, 38147, 38147, 32856, 38147, 39829, 41766, 46006, 39893, 48391, 49682, 42516, 39960, 34641, 39976, 38394, 40024, 37997, 33010, 30361, 22539, 40063, 40121, 43817, 40157, 30525, 40868, 40175, 40209, 40247, 34760, 44916, 20285, 40281, 34623, 40309, 51090, 50324, 48429, 40325, 40344, 40364, 39645, 40409, 40428, 40449, 38147, 40485, 49825, 39382, 22690, 40506, 42516, 42516, 22216, 40534, 39507, 48098, 30083, 50926, 38024, 33595, 45640, 28567, 40469, 40559, 42516, 40087, 26129, 45371, 31289, 28384, 40593, 41927, 40637, 40665, 40689, 34614, 41203, 40707, 27312, 43148, 48295, 28405, 40861, 22683, 50287, 38368, 40727, 40746, 40649, 40767, 40811, 22827, 40847, 33407, 49334, 48207, 33243, 28244, 40729, 36585, 22448, 28385, 36584, 41673, 40884, 31692, 28429, 22929, 40922, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 42516, 40951, 51537, 42516, 42744, 40972, 42516, 27292, 40992, 41001, 41017, 41032, 41039, 41055, 41068, 26099, 20248, 41084, 41102, 41129, 21286, 41166, 42516, 41182, 41219, 41286, 31731, 41302, 41336, 41352, 41368, 41384, 34883, 41420, 41436, 48349, 41477, 42516, 42240, 27121, 34422, 42516, 41511, 25267, 41532, 41575, 42516, 42516, 41594, 28243, 22657, 31843, 41613, 34053, 27401, 40159, 35568, 34847, 41649, 38147, 27550, 41689, 41744, 40896, 22382, 42516, 26380, 42516, 41578, 42516, 44762, 41785, 42516, 41828, 27866, 41270, 19255, 22657, 41881, 41897, 22657, 35406, 41916, 43971, 44095, 46316, 46316, 41950, 22851, 37219, 42001, 38147, 29467, 32923, 42028, 42044, 42516, 46644, 19385, 42516, 42516, 42516, 42516, 42516, 34632, 38370, 22657, 27339, 43920, 22657, 30360, 22540, 46316, 44514, 36395, 46316, 22343, 30533, 38147, 35478, 49592, 38147, 27826, 41766, 42516, 42516, 21305, 42516, 31235, 42516, 42516, 23255, 22657, 22657, 22657, 22657, 20064, 42074, 46316, 46316, 46316, 46316, 42093, 38147, 38147, 38147, 38147, 50734, 41769, 50664, 35952, 42516, 42516, 42516, 41113, 22657, 42177, 22657, 45759, 46316, 43945, 46316, 45799, 38147, 45843, 38147, 27827, 29041, 42127, 42516, 42516, 42516, 48412, 30671, 22657, 38073, 44692, 46316, 33520, 45533, 38147, 40469, 42146, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 43588, 34920, 42516, 42166, 40348, 33173, 48271, 42201, 22683, 42220, 41559, 42256, 42290, 42321, 33756, 44448, 35547, 42352, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 32531, 22755, 42386, 28429, 22929, 42410, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 42516, 39045, 51537, 42516, 42516, 42439, 19363, 42461, 42498, 42516, 31468, 42533, 42547, 42563, 42576, 26099, 42516, 42516, 25867, 27632, 42516, 42516, 42516, 42592, 26617, 42516, 42516, 26436, 25867, 42516, 30236, 31920, 49620, 42612, 36440, 34810, 28721, 42516, 42647, 42516, 34304, 42516, 44608, 36046, 42516, 35598, 42516, 42516, 36057, 51481, 44194, 32471, 36334, 37148, 42671, 32033, 42687, 33121, 42706, 38488, 30256, 30569, 29372, 32199, 42722, 42778, 42516, 42799, 42516, 49524, 50043, 35835, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 37175, 22657, 38374, 22541, 46316, 46316, 47563, 46316, 44805, 38147, 38147, 38147, 42836, 38147, 32923, 42853, 42888, 35656, 42516, 42516, 42516, 50763, 30902, 39460, 48700, 42516, 38370, 22657, 42923, 22657, 22657, 37350, 22540, 46316, 42958, 46316, 46316, 27403, 30533, 38147, 42991, 38147, 38147, 27826, 41766, 42516, 29233, 42516, 42516, 42516, 43017, 42516, 23255, 22657, 22657, 49093, 22657, 22325, 22539, 46316, 46316, 43039, 46316, 30788, 38147, 38147, 35485, 38147, 34440, 41769, 42516, 42516, 42516, 42516, 42516, 28242, 22657, 22657, 22657, 37745, 46316, 46316, 46316, 37798, 38147, 38147, 38147, 27827, 22690, 42516, 36017, 42516, 42516, 43058, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 48843, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 46409, 43080, 43110, 32715, 30112, 30535, 40935, 43145, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 42516, 42516, 51537, 42516, 42516, 42516, 42516, 25917, 42516, 42516, 42516, 42516, 46741, 49861, 51029, 26099, 42516, 42516, 42516, 27632, 42516, 42516, 35061, 42516, 42516, 42516, 28279, 28282, 18254, 28275, 31684, 43164, 43182, 29146, 43216, 43233, 29330, 43270, 42516, 42516, 34304, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28243, 22657, 22657, 22657, 22657, 27401, 46316, 46316, 46316, 48318, 38147, 38147, 38147, 38147, 40896, 22382, 42516, 42516, 42516, 43287, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 22657, 22657, 38374, 43306, 46316, 46316, 46316, 46316, 50852, 38147, 38147, 38147, 38147, 38147, 32923, 22444, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38370, 22657, 22657, 22657, 22657, 30360, 22540, 46316, 46316, 46316, 46316, 22343, 30533, 38147, 38147, 38147, 38147, 27826, 41766, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 23255, 22657, 22657, 22657, 22657, 30361, 22539, 46316, 46316, 46316, 46316, 30525, 38147, 38147, 38147, 38147, 34440, 41769, 42516, 42516, 42516, 42516, 42516, 28242, 22657, 22657, 22657, 37745, 46316, 46316, 46316, 37798, 38147, 38147, 38147, 27827, 22690, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 43323, 28384, 43789, 46316, 36586, 43341, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 42516, 50278, 22100, 42516, 42516, 50243, 42516, 29530, 43375, 33789, 43361, 43411, 43418, 43434, 43447, 26099, 42516, 33915, 33924, 27632, 40956, 43463, 43486, 41243, 43507, 26512, 26972, 26982, 27147, 41812, 42783, 43531, 49966, 43567, 43604, 44058, 40078, 42516, 42516, 42516, 23213, 43642, 34502, 43666, 43684, 38517, 42516, 42516, 35323, 43702, 22657, 43728, 30048, 43746, 43782, 42975, 46316, 43805, 34708, 43833, 43850, 27569, 49274, 49874, 43871, 42516, 42516, 42516, 45270, 35189, 42516, 42516, 43894, 43668, 42516, 42814, 33726, 22657, 43915, 22657, 37724, 49041, 43936, 46316, 43969, 46316, 45680, 43987, 44022, 33996, 38147, 38147, 44043, 44074, 22444, 42516, 42516, 19081, 42516, 44111, 44127, 42516, 43290, 44154, 44166, 44182, 22657, 37101, 44229, 44279, 30652, 44299, 46316, 42336, 45461, 44326, 40412, 44345, 38147, 44372, 45987, 44388, 34123, 41766, 28121, 42516, 42516, 24911, 44407, 50085, 42516, 44435, 27732, 44483, 22975, 22657, 30361, 22539, 44504, 42690, 46316, 46316, 30525, 28768, 44537, 44554, 38147, 40691, 44575, 42516, 44603, 44624, 42516, 42516, 28242, 44645, 22657, 22657, 44664, 44689, 46316, 46316, 49378, 44708, 38147, 38147, 49798, 22690, 42516, 44729, 42516, 42516, 20056, 22657, 22657, 34376, 46316, 51047, 22477, 38147, 44538, 40469, 42516, 22273, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 44749, 26230, 34694, 49922, 44785, 36803, 38372, 46315, 38146, 47702, 44821, 44842, 44862, 21913, 40729, 36585, 22448, 28385, 36584, 40621, 44890, 44940, 42111, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 42516, 46959, 51537, 45028, 47264, 44964, 45002, 45045, 45083, 45015, 45108, 45123, 45139, 45155, 45168, 26099, 45184, 28448, 42516, 28797, 42516, 42516, 30342, 42516, 42516, 45204, 45221, 31185, 28655, 31192, 26648, 48147, 38948, 50978, 45241, 34810, 28721, 45262, 45286, 25875, 34304, 35804, 42516, 42516, 42516, 42516, 45307, 45333, 42516, 45362, 45387, 27370, 22657, 22657, 45422, 45457, 45477, 46316, 48318, 45501, 22713, 45531, 38147, 40896, 22382, 41086, 42516, 42516, 45549, 45580, 42516, 42516, 42516, 42516, 42516, 41312, 38368, 32670, 37166, 22657, 22657, 33029, 22541, 45618, 47052, 46316, 46316, 45690, 35721, 38147, 45637, 38147, 38147, 45656, 22444, 42516, 42516, 45593, 44733, 42516, 45600, 35835, 45706, 27030, 38348, 45731, 22657, 22657, 40543, 26861, 45754, 45775, 46316, 46316, 43191, 44800, 45796, 45815, 38147, 38147, 40256, 45836, 45859, 28046, 42867, 49429, 42516, 25220, 42516, 19477, 43271, 20461, 22657, 22657, 27347, 45890, 30361, 22539, 46316, 48577, 44521, 46316, 30525, 38147, 38147, 46850, 45910, 34440, 41769, 42516, 50831, 45929, 19737, 42516, 28242, 22657, 45947, 43759, 50887, 46316, 45965, 46065, 28181, 38147, 45983, 46857, 27827, 22690, 42516, 42516, 46003, 44138, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 29031, 51383, 46022, 26136, 47337, 46039, 22657, 46056, 46316, 34383, 36586, 38147, 46089, 46111, 34920, 46149, 46173, 43148, 46207, 44846, 46228, 32903, 36804, 38368, 46247, 46266, 45515, 36803, 38372, 46315, 38146, 35099, 35240, 22504, 22913, 46289, 46310, 46333, 36758, 46387, 47879, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 42516, 27247, 51537, 42516, 42516, 23393, 42516, 46425, 46462, 46474, 46490, 46505, 46521, 46537, 46550, 26099, 46566, 25493, 25815, 46587, 26561, 21328, 46624, 21598, 42516, 46636, 46660, 46669, 46685, 46722, 46757, 46799, 32544, 46837, 46873, 41704, 47524, 33832, 37332, 35627, 34304, 46901, 42516, 44629, 46918, 39031, 46952, 46975, 47012, 47022, 48184, 31972, 27713, 43730, 47038, 31642, 47073, 47098, 47607, 47121, 47145, 47186, 47202, 47222, 47250, 47280, 47302, 42058, 42516, 47326, 47353, 42516, 42516, 47371, 47388, 46928, 47404, 47426, 47449, 47472, 29567, 47494, 47549, 47584, 47623, 47679, 36182, 44805, 36463, 37832, 40141, 38147, 32161, 32170, 47697, 42516, 45060, 42596, 50682, 47718, 42130, 47751, 46440, 36515, 21144, 38370, 47785, 29270, 22657, 44488, 47820, 47850, 47868, 40376, 46316, 45441, 47912, 47938, 47958, 43617, 38147, 38919, 47992, 41766, 29407, 48041, 42516, 27096, 48062, 42516, 50062, 40568, 48085, 38573, 48132, 48169, 30361, 48200, 48223, 48241, 48287, 48311, 47922, 47129, 22858, 48334, 43855, 34440, 40906, 48365, 50193, 42516, 22144, 48387, 48407, 44243, 48428, 22657, 49223, 47234, 48445, 46316, 47082, 50795, 48488, 38147, 33704, 22690, 42516, 48504, 48525, 42516, 20103, 22966, 48559, 32447, 40385, 48575, 48593, 50156, 48626, 48646, 48680, 42516, 33850, 39552, 21921, 26930, 48716, 48749, 48769, 48802, 45246, 48837, 48960, 48859, 48887, 32658, 28363, 48910, 33376, 48933, 48953, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 45621, 46231, 48976, 39991, 49005, 49029, 40039, 49057, 44903, 22755, 31692, 28429, 49073, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 42516, 42516, 49109, 42516, 42516, 49144, 42516, 32608, 18328, 18337, 49164, 18337, 18344, 49180, 49193, 26099, 42516, 42516, 42516, 27632, 20863, 28835, 42516, 42516, 42516, 42516, 28834, 42516, 20857, 42516, 28241, 49209, 31530, 22841, 49248, 36678, 30143, 33493, 42516, 42516, 34304, 42516, 42516, 35043, 49290, 42516, 42516, 42516, 38053, 28243, 49327, 22657, 22657, 22658, 49350, 46316, 46316, 46316, 31591, 33687, 38147, 38147, 38147, 49366, 49414, 49451, 42516, 49474, 49519, 42516, 42516, 43686, 45346, 42516, 46571, 46157, 38368, 45949, 40328, 45406, 25137, 29005, 22541, 48786, 34087, 38601, 49540, 48459, 38147, 33697, 39345, 49573, 33236, 49608, 22444, 42516, 19180, 42516, 50588, 42516, 42516, 42516, 18791, 42516, 42516, 38370, 38694, 22657, 22657, 22657, 30360, 49641, 32217, 46316, 46316, 46316, 22343, 49659, 38898, 38147, 38147, 38147, 27826, 41766, 46990, 42516, 49679, 42516, 42516, 42516, 42516, 20094, 31303, 22657, 22657, 22657, 30361, 49698, 46316, 46316, 46316, 46316, 30525, 49732, 38147, 38147, 38147, 34440, 35908, 42516, 42516, 46023, 49756, 42516, 29706, 37130, 22657, 22657, 39744, 38128, 46316, 46316, 49778, 49814, 38147, 38147, 49848, 22690, 22055, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 34322, 43148, 47105, 28405, 38446, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 49890, 49913, 49938, 22448, 28385, 36584, 34366, 34779, 33418, 49954, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 42516, 42516, 50000, 50082, 50038, 50059, 42516, 32349, 42516, 20487, 50078, 34283, 44986, 50101, 50114, 26099, 42516, 42516, 42516, 27632, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28241, 50130, 42394, 35273, 50148, 34810, 28721, 42516, 36285, 32580, 34304, 42516, 42516, 42516, 42516, 42516, 25759, 42516, 42516, 28243, 27704, 22657, 37534, 22657, 27401, 50172, 46316, 38188, 48318, 29351, 38147, 30813, 38147, 40896, 22382, 42516, 42516, 42516, 42516, 42516, 41597, 42516, 42516, 42516, 42476, 42516, 38368, 22657, 50132, 22657, 22657, 38374, 22541, 46316, 49557, 46316, 46316, 44805, 38147, 38147, 50449, 38147, 38147, 32923, 22444, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38370, 22657, 22657, 22657, 22657, 30360, 22540, 46316, 46316, 46316, 46316, 22343, 30533, 38147, 38147, 38147, 38147, 27826, 41766, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 23255, 22657, 22657, 22657, 22657, 30361, 22539, 46316, 46316, 46316, 46316, 30525, 38147, 38147, 38147, 38147, 34440, 41769, 42516, 42516, 50190, 42516, 42516, 28242, 22657, 22657, 22657, 37745, 46316, 46316, 46316, 37798, 38147, 38147, 38147, 27827, 22690, 42516, 50209, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 50231, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 42516, 42516, 50266, 42516, 22306, 42516, 45067, 50303, 50340, 42516, 50365, 50380, 50394, 50410, 50423, 26099, 42516, 42516, 42516, 27632, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28241, 45894, 46314, 50439, 28325, 41965, 36365, 42516, 42516, 42516, 34304, 42516, 42516, 42516, 42516, 25694, 42516, 42516, 42516, 28243, 22657, 22657, 22657, 22657, 27401, 46316, 46316, 46316, 48318, 38147, 38147, 38147, 38147, 40896, 22382, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 22657, 22657, 38374, 22541, 46316, 46316, 46316, 46316, 44805, 38147, 38147, 38147, 38147, 38147, 32923, 22444, 42516, 42516, 42516, 42516, 42516, 42516, 50473, 42516, 42516, 42516, 50491, 22657, 22657, 22657, 22657, 30360, 50513, 46316, 46316, 46316, 46316, 22343, 50533, 38147, 38147, 38147, 38147, 27826, 41766, 42516, 42516, 29399, 42516, 42516, 42516, 42516, 23255, 22657, 22657, 50557, 22657, 50575, 22539, 46316, 43245, 46316, 33180, 30525, 38147, 47942, 38147, 38147, 50611, 41769, 42516, 42516, 42516, 42516, 42516, 28242, 22657, 22657, 22657, 37745, 46316, 46316, 46316, 37798, 38147, 38147, 38147, 27827, 22690, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 26324, 42516, 42516, 42516, 42516, 51537, 42516, 42516, 42516, 42516, 25917, 42516, 42516, 42516, 42516, 48543, 50631, 50644, 26099, 42516, 42516, 42516, 27632, 50660, 42516, 50680, 42516, 42516, 42516, 29122, 42516, 21452, 29118, 32973, 50698, 44948, 35273, 50716, 34810, 28721, 42516, 42516, 42516, 50750, 27264, 27883, 43515, 42516, 42516, 42516, 42516, 42516, 28243, 22657, 43166, 22657, 49088, 27401, 46316, 30696, 30175, 48318, 38147, 38147, 50786, 27533, 40896, 50811, 50827, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 22657, 22657, 38374, 22541, 46316, 46316, 46316, 46316, 44805, 38147, 38147, 38147, 38147, 38147, 32923, 22444, 42516, 42516, 42516, 42516, 42516, 42516, 51530, 42516, 42516, 42516, 38370, 22657, 27966, 22657, 22657, 27206, 22540, 46316, 36563, 46316, 46316, 48225, 30533, 38147, 43345, 38147, 38147, 27826, 41766, 21110, 42516, 42516, 42516, 42516, 42516, 42516, 23255, 36082, 22657, 22657, 22657, 30361, 22539, 50847, 46316, 46316, 46316, 30525, 40490, 38147, 38147, 38147, 34440, 41769, 42516, 42516, 42516, 42516, 42516, 28242, 22657, 22657, 22657, 37745, 46316, 46316, 46316, 37798, 38147, 38147, 38147, 27827, 22690, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 42516, 42516, 51537, 42516, 42516, 42516, 42516, 25917, 42516, 42516, 42516, 42516, 46741, 49861, 51029, 26099, 24903, 42516, 42516, 27632, 42516, 42516, 20017, 42516, 42516, 42516, 42516, 20023, 42516, 42516, 50868, 36101, 46314, 27462, 29927, 45874, 41719, 42516, 29087, 42516, 34304, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42872, 28243, 22657, 22657, 22657, 47797, 27401, 46316, 46316, 22542, 48318, 38147, 38147, 38147, 27479, 40896, 22382, 42516, 50903, 42516, 42516, 42516, 42516, 42516, 42516, 42150, 42516, 42516, 38368, 46183, 22657, 41900, 22657, 38374, 22541, 50922, 46316, 37779, 46316, 44805, 36603, 38147, 38147, 40222, 38147, 32923, 22444, 42516, 50475, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38370, 22657, 50942, 22657, 22657, 30360, 50961, 30499, 50994, 46316, 46316, 22343, 49789, 39662, 51012, 38147, 38147, 27826, 41766, 42516, 42516, 42516, 42516, 42516, 42516, 48664, 23255, 22657, 22657, 32677, 22657, 28304, 22539, 46316, 46316, 51045, 46316, 51063, 38147, 38147, 50725, 38147, 44006, 41769, 42516, 42516, 50906, 42516, 42516, 28242, 22657, 22657, 22657, 37745, 46316, 46316, 46316, 37798, 38147, 38147, 38147, 27827, 48656, 42516, 42516, 47372, 42516, 31381, 22657, 22657, 34817, 46316, 46316, 40751, 38147, 38147, 40469, 42516, 42516, 51087, 42516, 38373, 28681, 28384, 46316, 51106, 36586, 34742, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 51361, 42516, 42516, 42516, 42516, 51537, 42516, 42516, 42516, 42516, 25917, 19962, 42516, 42516, 42516, 46741, 49861, 51029, 26099, 42516, 42516, 42516, 27632, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28241, 22657, 46314, 35273, 38147, 34810, 28721, 42516, 42516, 42516, 34304, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28243, 22657, 22657, 22657, 22657, 27401, 46316, 46316, 46316, 48318, 38147, 38147, 38147, 38147, 40896, 22382, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 22657, 22657, 38374, 22541, 46316, 46316, 46316, 46316, 44805, 38147, 38147, 38147, 38147, 38147, 32923, 22444, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38370, 22657, 22657, 22657, 22657, 30360, 22540, 46316, 46316, 46316, 46316, 22343, 30533, 38147, 38147, 38147, 38147, 27826, 41766, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 23255, 22657, 22657, 22657, 22657, 30361, 22539, 46316, 46316, 46316, 46316, 30525, 38147, 38147, 38147, 38147, 34440, 41769, 42516, 42516, 42516, 42516, 42516, 28242, 22657, 22657, 22657, 37745, 46316, 46316, 46316, 37798, 38147, 38147, 38147, 27827, 22690, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 21141, 42516, 42516, 42516, 42516, 46123, 30288, 30286, 49299, 30156, 51124, 22408, 22410, 49308, 30152, 46133, 51161, 51174, 21040, 42516, 42516, 42516, 27632, 42516, 42516, 31797, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 32629, 20505, 20792, 18990, 21068, 19019, 18919, 18270, 40105, 18293, 18315, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 51190, 25598, 18486, 18508, 19308, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 20477, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 21141, 42516, 42516, 42516, 42516, 48069, 42516, 42516, 30409, 42516, 25917, 39868, 39877, 51215, 51230, 51237, 29448, 51253, 21040, 42516, 42516, 42516, 27632, 42516, 42516, 51474, 42516, 42516, 42516, 23517, 42516, 42516, 23514, 32629, 20505, 21066, 18953, 21068, 18866, 18919, 18270, 40105, 18293, 18315, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 18459, 25598, 18486, 18508, 51199, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 20477, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 21141, 42516, 42516, 42516, 42516, 36374, 42516, 42516, 42516, 42516, 31102, 50349, 51296, 51323, 51307, 51330, 32370, 51346, 21040, 42516, 42516, 42516, 27632, 42516, 42516, 51474, 51382, 42516, 26083, 42516, 42516, 42516, 26079, 32629, 20505, 21066, 18953, 21068, 19019, 18919, 18270, 40105, 18293, 18315, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 51399, 25598, 18486, 18508, 21522, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 20235, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 20381, 20397, 20422, 20606, 20438, 20477, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 21141, 42516, 42516, 42516, 42516, 48069, 42516, 42516, 42516, 42516, 25917, 42516, 42516, 42516, 42516, 42516, 42516, 42517, 26099, 42516, 42516, 42516, 27632, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28241, 22657, 46314, 35273, 38147, 34810, 46363, 42516, 42516, 42516, 34304, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 28243, 22657, 22657, 22657, 22657, 22341, 46316, 46316, 46316, 39789, 38147, 38147, 38147, 38147, 40896, 22382, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 22657, 22657, 38374, 22541, 46316, 46316, 46316, 46316, 44805, 38147, 38147, 38147, 38147, 38147, 32923, 22444, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 38370, 22657, 22657, 22657, 22657, 30360, 22540, 46316, 46316, 46316, 46316, 22343, 30533, 38147, 38147, 38147, 38147, 27826, 41766, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 23255, 22657, 22657, 22657, 22657, 30361, 22539, 46316, 46316, 46316, 46316, 30525, 38147, 38147, 38147, 38147, 34440, 41769, 42516, 42516, 42516, 42516, 42516, 28242, 22657, 22657, 22657, 37745, 46316, 46316, 46316, 37798, 38147, 38147, 38147, 27827, 22690, 42516, 42516, 42516, 42516, 38368, 22657, 22657, 40730, 46316, 46316, 36583, 38147, 38147, 40469, 42516, 42516, 42516, 42516, 38373, 22657, 28384, 46316, 46316, 36586, 38147, 27827, 22690, 34920, 42516, 38372, 43148, 46316, 28405, 38147, 22683, 36804, 38368, 28385, 28404, 30535, 36803, 38372, 46315, 38146, 28238, 43147, 27775, 22913, 28244, 40729, 36585, 22448, 28385, 36584, 34366, 22755, 31692, 28429, 22929, 23000, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 23494, 42516, 42516, 45092, 51424, 51429, 51429, 51451, 23492, 51445, 51467, 42516, 42516, 42516, 42516, 42516, 42516, 51474, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 32629, 20505, 21066, 18953, 21068, 19019, 18919, 18270, 40105, 18293, 51497, 42516, 42516, 18360, 42516, 49435, 42820, 18380, 18411, 18395, 18574, 19226, 18433, 20169, 51190, 25598, 18486, 18508, 19308, 18465, 25604, 18492, 18514, 20728, 18530, 42516, 30418, 42516, 42516, 42516, 50250, 25964, 50770, 42516, 18553, 39446, 18564, 20175, 20411, 20131, 20505, 23879, 18590, 26008, 18612, 18632, 18596, 18470, 18594, 26012, 18616, 18636, 20798, 20741, 20757, 42516, 18652, 18689, 18711, 18748, 18695, 18788, 42516, 41546, 48871, 18807, 18835, 19802, 18823, 19840, 25206, 18851, 18904, 18942, 18979, 19680, 19006, 18851, 18904, 18942, 18979, 19680, 19045, 20750, 46697, 19097, 19132, 20936, 31767, 19148, 19174, 19196, 20141, 20921, 19788, 19212, 19242, 19278, 25525, 20579, 19301, 19596, 19271, 25518, 20572, 19294, 19589, 19324, 19353, 35639, 19379, 39467, 19401, 41728, 19421, 19500, 24458, 19544, 19575, 19614, 19632, 19650, 19559, 19612, 19630, 19648, 19666, 19029, 19696, 19712, 19728, 19753, 19773, 19830, 19435, 19449, 19888, 19905, 19856, 19887, 19904, 19921, 19947, 19984, 20043, 20080, 20119, 20157, 20536, 20191, 20213, 20542, 20197, 20219, 19931, 51517, 20264, 20301, 20317, 20346, 20333, 20349, 20365, 51553, 20397, 20422, 20606, 20438, 20453, 20503, 21067, 21068, 20521, 20558, 20595, 20622, 20652, 23888, 18878, 20683, 20699, 20715, 20779, 20814, 20880, 20890, 20906, 19463, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 42516, 94506, 94506, 94506, 94506, 94506, 94506, 94506, 94506, 94506, 94506, 0, 94506, 90409, 94506, 94506, 94506, 94506, 94506, 94506, 94506, 94506, 94506, 365, 94506, 90409, 94506, 94506, 94506, 94506, 94506, 94506, 94506, 69632, 73728, 94506, 94506, 94506, 94506, 94506, 65536, 94506, 12290, 3, 0, 0, 2183168, 0, 0, 0, 90409, 94506, 299, 300, 0, 2134016, 303, 304, 304, 304, 304, 304, 304, 304, 0, 0, 0, 0, 0, 304, 0, 304, 1, 289, 3, 0, 0, 0, 295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 796, 0, 796, 0, 0, 0, 0, 0, 2424832, 2433024, 0, 0, 2457600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2904064, 2908160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1685, 1686, 0, 1688, 0, 0, 0, 0, 3117056, 0, 0, 0, 0, 0, 0, 0, 365, 365, 0, 0, 0, 0, 0, 0, 448, 0, 0, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 559, 582, 559, 582, 559, 559, 582, 0, 0, 0, 2138112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2991, 0, 0, 0, 2772992, 2805760, 2830336, 0, 2863104, 2920448, 0, 0, 0, 0, 0, 0, 0, 2805760, 2920448, 0, 0, 0, 0, 0, 0, 0, 2732032, 0, 2179072, 2179072, 2179072, 2179072, 2424832, 2433024, 0, 0, 0, 0, 0, 2920448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1702, 0, 1704, 0, 0, 2179072, 2830336, 2179072, 2179072, 2863104, 2179072, 2179072, 2179072, 2179072, 2920448, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2126737, 2126737, 2126737, 2126737, 2126737, 2593681, 2126737, 2126737, 2126737, 2126737, 0, 914, 2125824, 2125824, 2125824, 2125824, 2125824, 2424832, 2433024, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 2125824, 2125824, 2125824, 2125824, 2723840, 2125824, 2732032, 2772992, 2125824, 2125824, 2125824, 2805760, 2125824, 2830336, 2125824, 2125824, 2863104, 2125824, 2125824, 2125824, 2125824, 2920448, 2125824, 2125824, 2125824, 2125824, 2125824, 2920448, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3117056, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2457600, 2125824, 2125824, 2125824, 2125824, 2183168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 661, 0, 661, 0, 0, 0, 2408448, 0, 0, 2584576, 0, 0, 0, 0, 2838528, 0, 0, 2838528, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 2408448, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2625536, 2179072, 2179072, 0, 2125824, 2125824, 2125824, 2408448, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3125248, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2662400, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2801664, 2813952, 2125824, 2125824, 2801664, 2813952, 2125824, 2838528, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2461696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2600960, 0, 0, 0, 0, 0, 0, 2441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2493, 2494, 0, 0, 2497, 0, 2768896, 2777088, 2781184, 0, 2822144, 0, 0, 2883584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3055616, 0, 0, 0, 3080192, 3100672, 3104768, 0, 0, 0, 0, 3186688, 0, 0, 0, 0, 0, 0, 0, 307, 204800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 111051, 111051, 111051, 111051, 111051, 111051, 111051, 111051, 1, 0, 0, 0, 0, 0, 2797568, 0, 0, 0, 0, 0, 0, 0, 2850816, 2867200, 0, 0, 0, 0, 0, 441, 0, 0, 332, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 0, 0, 3133440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2131, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2461696, 2465792, 2179072, 2768896, 2777088, 2781184, 2797568, 2822144, 2179072, 2179072, 2179072, 2883584, 2179072, 2912256, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2523136, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2600960, 0, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2461696, 2465792, 2125824, 0, 1142784, 0, 2179072, 2125824, 2125824, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2592768, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 24576, 988, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2523136, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2600960, 2125824, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 541, 1272, 541, 541, 541, 541, 2125824, 2125824, 2125824, 2641920, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2719744, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 299, 0, 0, 0, 299, 0, 300, 0, 0, 0, 2768896, 2777088, 2781184, 2797568, 2822144, 2125824, 2125824, 2125824, 2883584, 2125824, 2912256, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 2125824, 2126812, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3133440, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3207168, 2125824, 0, 0, 0, 2179072, 2125824, 2125824, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 2510848, 2514944, 0, 0, 2125824, 2125824, 3133440, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3207168, 2125824, 2179072, 2125824, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 300, 0, 0, 0, 0, 0, 0, 2764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2059, 2060, 0, 2062, 2063, 0, 0, 0, 0, 2605056, 0, 0, 0, 0, 2887680, 0, 2924544, 0, 0, 0, 0, 0, 0, 0, 2108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1177, 0, 0, 0, 0, 0, 0, 3162112, 3170304, 0, 0, 3219456, 3035136, 0, 0, 0, 0, 0, 3072000, 3190784, 0, 0, 0, 0, 0, 0, 0, 0, 2576384, 0, 0, 0, 0, 0, 0, 0, 334, 0, 0, 334, 0, 0, 334, 0, 0, 0, 0, 0, 0, 0, 2387968, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2050, 0, 0, 0, 0, 3121152, 3141632, 0, 0, 0, 2924544, 0, 2682880, 0, 0, 0, 0, 0, 0, 3112960, 2387968, 2924544, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3035136, 2179072, 2179072, 3072000, 2179072, 2179072, 2179072, 2179072, 2699264, 2179072, 2715648, 2179072, 2723840, 2179072, 2732032, 2772992, 2179072, 2179072, 2179072, 2805760, 3121152, 2179072, 2179072, 3141632, 2179072, 2179072, 2179072, 3170304, 2179072, 2179072, 3190784, 3194880, 2179072, 0, 0, 0, 0, 0, 0, 541, 1734, 541, 541, 541, 541, 541, 541, 1740, 541, 2125824, 3190784, 3194880, 2125824, 0, 0, 0, 0, 0, 0, 2387968, 2125824, 2125824, 2125824, 2420736, 2125824, 2125824, 2125824, 2125824, 2125824, 2453504, 2125824, 2473984, 2125824, 2736128, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2887680, 2125824, 2125824, 2924544, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 3141632, 2125824, 2125824, 2125824, 3170304, 2125824, 2125824, 3190784, 3194880, 2125824, 2179072, 2125824, 2125824, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 299, 0, 300, 3112960, 3219456, 2125824, 2125824, 3112960, 3219456, 2125824, 2125824, 3112960, 3219456, 0, 0, 0, 0, 0, 0, 0, 347, 0, 405, 0, 0, 0, 0, 0, 405, 3022848, 0, 0, 3145728, 0, 3203072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2072, 0, 0, 0, 0, 0, 0, 0, 3067904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3003, 0, 0, 0, 0, 0, 2621440, 0, 3182592, 2899968, 0, 2961408, 0, 0, 2179072, 2179072, 2416640, 2179072, 2179072, 2179072, 2179072, 2928640, 2179072, 2179072, 2179072, 2998272, 2179072, 2179072, 2179072, 2179072, 3059712, 2179072, 2179072, 2179072, 2179072, 3178496, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2494464, 2125824, 2125824, 0, 2179072, 2125824, 2125824, 0, 2179072, 2125824, 2125824, 2985984, 2985984, 2985984, 2985984, 0, 0, 0, 0, 0, 0, 2490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 335, 0, 0, 0, 0, 0, 0, 2179072, 2445312, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2551808, 2179072, 2179072, 2179072, 2179072, 3178496, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2495377, 2126737, 2126737, 2126737, 2126737, 2126737, 3179409, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2495451, 2126811, 2895872, 2916352, 2179072, 2179072, 2945024, 2179072, 2179072, 2994176, 2179072, 3002368, 2179072, 2179072, 3022848, 2179072, 3067904, 3084288, 2125824, 3096576, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3223552, 0, 0, 2125824, 2125824, 2416640, 3096576, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3223552, 0, 0, 2125824, 2125824, 2416640, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3035136, 2125824, 2125824, 3072000, 2125824, 2125824, 2125824, 3121152, 2125824, 2125824, 3141632, 2125824, 2125824, 2125824, 3170304, 2125824, 2125824, 2125824, 2125824, 2445312, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2551808, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2637824, 2125824, 2125824, 2125824, 2125824, 2727936, 2752512, 2125824, 2125824, 2125824, 2125824, 2842624, 2846720, 2842624, 2846720, 2125824, 2895872, 2916352, 2125824, 2125824, 2945024, 2125824, 2125824, 2994176, 2125824, 3002368, 2125824, 2125824, 3022848, 2125824, 3067904, 2125824, 3067904, 3084288, 2125824, 3096576, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3223552, 2179072, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3039232, 2125824, 3063808, 2125824, 2125824, 2125824, 2125824, 2125824, 3100672, 2547712, 2596864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3178496, 2670592, 0, 2744320, 0, 0, 0, 0, 0, 2928640, 0, 0, 0, 3059712, 0, 2543616, 2666496, 0, 2633728, 0, 0, 0, 0, 0, 0, 2494464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2780, 0, 0, 0, 0, 2785, 0, 0, 0, 0, 2957312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3188, 0, 0, 0, 0, 3211264, 0, 0, 0, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2494464, 2179072, 2179072, 2179072, 2707456, 2179072, 2736128, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2887680, 2179072, 2179072, 2179072, 2179072, 2641920, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2719744, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3137536, 2126737, 2126737, 2499473, 2126737, 2126737, 2126737, 2556817, 2565009, 2179072, 2514944, 2179072, 2179072, 2179072, 2543616, 2547712, 2179072, 2179072, 2596864, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3039232, 2179072, 3063808, 2179072, 2179072, 2179072, 2179072, 3100672, 2125824, 2125824, 2125824, 2125824, 2125824, 3178496, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2494464, 2125824, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 1080, 1084, 0, 0, 1088, 2125824, 2514944, 2125824, 2125824, 2125824, 2543616, 2547712, 2125824, 2125824, 2596864, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2928640, 2125824, 2125824, 2125824, 2998272, 2125824, 2125824, 2125824, 2125824, 3059712, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3178496, 2179072, 2125824, 2125824, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 0, 2486272, 0, 0, 0, 0, 0, 2678784, 2854912, 3006464, 2441216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2932736, 2965504, 0, 0, 3076096, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 407, 0, 0, 0, 0, 0, 0, 2695168, 3174400, 2646016, 2613248, 2703360, 0, 0, 0, 0, 2977792, 0, 0, 3047424, 3129344, 0, 0, 0, 0, 0, 645, 0, 0, 648, 649, 0, 0, 0, 0, 0, 0, 0, 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2769, 0, 0, 0, 2981888, 2396160, 0, 3153920, 0, 0, 0, 0, 0, 0, 0, 0, 2740224, 0, 0, 0, 0, 0, 0, 541, 3027, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2584, 541, 541, 541, 0, 0, 0, 0, 0, 2793472, 0, 0, 0, 0, 0, 2469888, 2506752, 2756608, 0, 0, 2580480, 0, 0, 0, 0, 0, 0, 2517, 0, 0, 0, 0, 0, 0, 0, 0, 541, 541, 541, 3029, 541, 541, 541, 541, 541, 541, 0, 2396160, 2400256, 2179072, 2179072, 2441216, 2179072, 2469888, 2179072, 2179072, 2179072, 2519040, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2801664, 2813952, 2179072, 2838528, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2453504, 2179072, 2473984, 2482176, 2179072, 2179072, 2179072, 2179072, 2588672, 2179072, 2613248, 2646016, 2179072, 2179072, 2695168, 2756608, 2179072, 2179072, 2179072, 2932736, 2179072, 2179072, 2179072, 2179072, 2179072, 3117056, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2584576, 2179072, 2179072, 2125824, 2125824, 2125824, 2519040, 2125824, 2125824, 2125824, 2125824, 2588672, 2125824, 2613248, 2646016, 2125824, 2125824, 2695168, 2756608, 2125824, 2125824, 2125824, 2125824, 2932736, 2125824, 2125824, 2125824, 2125824, 2125824, 2932736, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3129344, 2125824, 2125824, 3153920, 3166208, 3174400, 2506752, 2506752, 2506752, 0, 3108864, 3198976, 0, 0, 3043328, 0, 3149824, 2936832, 0, 2760704, 3180, 2437120, 0, 0, 0, 0, 0, 0, 646, 0, 0, 0, 0, 651, 652, 653, 654, 655, 0, 0, 0, 0, 0, 2953216, 0, 0, 2826240, 3158016, 2428928, 0, 3018752, 2764800, 2572288, 0, 0, 0, 0, 0, 677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2741, 0, 0, 0, 0, 0, 3051520, 2179072, 2428928, 2437120, 2179072, 2486272, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2654208, 2678784, 2760704, 2764800, 2854912, 2969600, 2179072, 3006464, 2179072, 3018752, 2179072, 2179072, 2179072, 3149824, 2125824, 2428928, 2437120, 2969600, 2125824, 3006464, 2125824, 3018752, 2125824, 2125824, 2125824, 2125824, 3149824, 2125824, 2428928, 2437120, 2125824, 2486272, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2654208, 2678784, 2760704, 2764800, 2785280, 2854912, 2969600, 2125824, 3006464, 2125824, 3018752, 2125824, 2125824, 2125824, 2125824, 3149824, 2179072, 3051520, 2125824, 3051520, 2125824, 3051520, 0, 2490368, 2498560, 0, 0, 0, 0, 2875392, 0, 0, 0, 3180, 0, 0, 0, 0, 0, 0, 2834432, 0, 3227648, 2568192, 2564096, 0, 2940928, 2179072, 2179072, 2498560, 2179072, 2179072, 2179072, 2555904, 2564096, 2179072, 2179072, 2179072, 2617344, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2662400, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3137536, 2125824, 2125824, 2498560, 2125824, 2125824, 2125824, 2555904, 2564096, 2125824, 2555904, 2564096, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3137536, 2940928, 2940928, 0, 0, 0, 0, 0, 2748416, 2879488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2519, 0, 0, 0, 0, 0, 541, 2940928, 0, 0, 0, 0, 0, 2748416, 2879488, 0, 3180, 0, 0, 0, 0, 0, 0, 0, 375, 0, 0, 0, 0, 0, 0, 0, 360, 0, 0, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 0, 2502656, 0, 0, 3010560, 0, 0, 0, 0, 0, 0, 0, 0, 2990080, 2179072, 2179072, 2179072, 3129344, 2179072, 2179072, 3153920, 3166208, 3174400, 2396160, 2400256, 2125824, 2125824, 2441216, 2125824, 2469888, 2125824, 2125824, 2125824, 2519040, 2125824, 2125824, 2179072, 2502656, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3010560, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2605056, 2125824, 2629632, 2125824, 2125824, 2650112, 2125824, 2125824, 2125824, 2707456, 2125824, 2736128, 2125824, 2125824, 2125824, 2125824, 2125824, 2502656, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3010560, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3137536, 2125824, 2125824, 2498560, 2125824, 2125824, 2502656, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3010560, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 2739, 0, 0, 0, 0, 0, 0, 0, 2743, 0, 0, 0, 2592768, 0, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 2179072, 2179072, 2592768, 2179072, 2179072, 2179072, 3129344, 2179072, 2179072, 3153920, 3166208, 3174400, 2397073, 2401169, 2126737, 2126737, 2442129, 2126737, 2470801, 2125824, 2125824, 2449408, 0, 2535424, 3031040, 2859008, 0, 0, 0, 0, 0, 2179072, 2449408, 2179072, 2535424, 2179072, 2609152, 2179072, 2859008, 2179072, 2179072, 2179072, 3031040, 2125824, 2449408, 2125824, 2535424, 2125824, 2609152, 2125824, 2859008, 2125824, 2125824, 2125824, 3031040, 2125824, 2125824, 2449408, 2125824, 2535424, 2125824, 2609152, 2125824, 2859008, 2125824, 2125824, 2125824, 0, 2179072, 2125824, 2125824, 2457600, 2179072, 2179072, 2179072, 2179072, 2457600, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2179072, 2125824, 2125824, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1727, 0, 0, 1728, 0, 3031040, 2125824, 2527232, 0, 0, 0, 0, 0, 2179072, 2527232, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2126738, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3125248, 2125824, 2125824, 2125824, 2125824, 2125824, 2527232, 2125824, 2125824, 2125824, 2125824, 2125824, 3092480, 2125824, 2527232, 2125824, 2125824, 2125824, 2125824, 2125824, 3092480, 0, 0, 0, 0, 0, 693, 0, 0, 0, 0, 0, 0, 365, 365, 365, 0, 0, 0, 0, 0, 707, 708, 0, 0, 0, 0, 0, 714, 0, 0, 0, 0, 0, 0, 703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3020, 3026944, 0, 0, 0, 2404352, 2179072, 2179072, 2179072, 2179072, 3026944, 2404352, 2125824, 2125824, 2125824, 2125824, 3026944, 0, 2539520, 0, 2949120, 2179072, 2658304, 2973696, 2179072, 2125824, 2658304, 2973696, 2125824, 2125824, 2658304, 2973696, 2125824, 0, 2711552, 2560000, 2179072, 2560000, 2125824, 2560000, 2125824, 0, 2179072, 2179072, 2531328, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2605056, 2179072, 2629632, 2179072, 2179072, 2650112, 0, 0, 2809856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3088384, 0, 0, 0, 0, 0, 442, 0, 0, 454, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 480, 470, 470, 470, 470, 470, 111051, 111051, 111051, 111051, 111051, 111051, 111051, 111051, 111051, 111051, 111051, 111051, 111051, 111051, 111051, 111051, 459, 459, 111051, 459, 459, 459, 459, 459, 459, 459, 459, 459, 111051, 111051, 111051, 111051, 111051, 111051, 111051, 111051, 111051, 111051, 459, 111051, 111051, 111051, 459, 111051, 111051, 111051, 111051, 111051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2795, 0, 0, 0, 0, 0, 0, 12290, 3, 0, 0, 2183168, 0, 0, 0, 0, 0, 299, 300, 0, 2134016, 303, 304, 2125824, 1060, 0, 0, 2179072, 2125824, 2125824, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 1060, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 662, 0, 662, 0, 0, 0, 0, 303, 118784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2434, 0, 303, 303, 303, 303, 303, 303, 303, 0, 0, 0, 0, 0, 303, 0, 303, 1, 12290, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2155, 0, 12290, 3, 0, 0, 2183168, 0, 0, 0, 0, 0, 33403, 300, 0, 2134016, 49791, 304, 2105632, 12290, 3, 0, 0, 294, 0, 0, 0, 0, 294, 0, 0, 0, 0, 0, 0, 0, 2124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 788, 814, 0, 814, 809, 0, 0, 0, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 0, 0, 0, 122880, 0, 122880, 122880, 122880, 0, 0, 0, 0, 0, 122880, 0, 0, 122880, 0, 0, 0, 0, 0, 0, 0, 0, 122880, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3002, 0, 0, 0, 0, 0, 0, 0, 0, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 0, 0, 122880, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 712, 0, 0, 0, 716, 0, 0, 0, 147456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2459, 0, 1092, 0, 2424832, 2433024, 0, 0, 2457600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 728, 0, 0, 0, 0, 0, 1823, 2125824, 2125824, 2125824, 2408448, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 1919, 2125824, 2125824, 2125824, 0, 0, 0, 131072, 0, 0, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 0, 740, 407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1158, 0, 0, 0, 0, 0, 0, 131072, 0, 0, 131072, 131072, 0, 0, 0, 0, 0, 0, 0, 131072, 0, 0, 131072, 0, 0, 131072, 0, 0, 0, 0, 135168, 135168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2756, 0, 0, 0, 0, 135168, 0, 0, 135168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 735, 0, 797, 0, 0, 0, 0, 0, 0, 0, 135168, 0, 135168, 135168, 135168, 135168, 135168, 135168, 0, 135168, 135168, 135168, 135168, 135168, 135168, 135168, 0, 0, 0, 0, 0, 135168, 0, 135168, 1, 12290, 3, 0, 0, 2183168, 0, 0, 0, 0, 0, 636, 637, 0, 2134016, 640, 641, 0, 1361, 2125824, 2125824, 2125824, 2125824, 2125824, 2424832, 2433024, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 987, 2125824, 2125824, 2125824, 2125824, 0, 304, 139264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225709, 0, 12290, 3, 0, 0, 2183168, 0, 0, 0, 0, 0, 299, 33406, 0, 2134016, 303, 49794, 0, 61440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3178, 0, 304, 2424832, 2433024, 0, 0, 2457600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 757, 0, 0, 0, 0, 762, 301, 301, 301, 143661, 371, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 143661, 301, 301, 143661, 301, 301, 301, 143731, 301, 301, 301, 143731, 69632, 73728, 301, 301, 143661, 301, 301, 65536, 301, 301, 301, 301, 301, 143661, 143661, 143661, 143661, 143661, 143661, 143661, 143661, 143661, 301, 301, 143661, 301, 301, 301, 301, 301, 301, 301, 301, 301, 366, 301, 0, 143661, 301, 301, 301, 143661, 143661, 143661, 143661, 143661, 143661, 143661, 143661, 143661, 143661, 143661, 143661, 143661, 143661, 143661, 143661, 301, 301, 301, 143661, 301, 143661, 143661, 143661, 143661, 143661, 143731, 143661, 143731, 143731, 143731, 143731, 143731, 143731, 143731, 143661, 143661, 143661, 143661, 143661, 143661, 143661, 143661, 1, 301, 143661, 301, 143661, 143661, 143661, 143661, 143661, 143661, 301, 0, 301, 0, 301, 301, 301, 301, 301, 301, 301, 301, 301, 143661, 301, 143661, 143661, 143661, 143661, 301, 0, 0, 0, 3117056, 0, 0, 0, 0, 0, 0, 0, 2200252, 2200252, 0, 0, 0, 0, 0, 0, 662, 0, 0, 0, 0, 0, 541, 541, 541, 541, 541, 541, 541, 541, 2168, 541, 541, 541, 0, 0, 0, 0, 0, 155648, 155648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 325, 0, 0, 0, 0, 155648, 155648, 0, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 0, 0, 0, 0, 155648, 0, 0, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 0, 0, 0, 0, 0, 155648, 0, 155648, 0, 0, 0, 0, 0, 155648, 0, 0, 0, 0, 0, 155648, 155648, 0, 155648, 155648, 0, 12290, 3, 0, 0, 2183168, 126976, 0, 0, 0, 0, 299, 300, 0, 2134016, 303, 304, 0, 0, 0, 3117056, 0, 0, 0, 0, 0, 0, 0, 365, 0, 0, 0, 0, 0, 0, 0, 3563, 0, 541, 541, 541, 541, 541, 541, 541, 541, 541, 3209, 541, 541, 541, 541, 541, 159744, 159744, 159744, 159744, 0, 0, 159744, 0, 0, 0, 0, 0, 0, 0, 0, 159744, 0, 0, 0, 0, 0, 0, 0, 159744, 159744, 159744, 163840, 159744, 159744, 159744, 159744, 159744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2805, 0, 541, 541, 541, 541, 541, 0, 25162, 0, 0, 0, 159744, 0, 0, 0, 25162, 25162, 25162, 159744, 25162, 25162, 25162, 25162, 25162, 25162, 25162, 25162, 159744, 159744, 159744, 159744, 25162, 159744, 25162, 1, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 1, 167936, 167936, 167936, 167936, 0, 0, 167936, 0, 0, 0, 0, 0, 0, 0, 0, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2976, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2138112, 1183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3168, 0, 0, 0, 0, 0, 0, 0, 0, 172032, 0, 172032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 0, 293, 0, 0, 0, 348, 172032, 172032, 0, 0, 172032, 0, 0, 172032, 172032, 0, 172032, 0, 0, 0, 0, 172032, 172032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172032, 0, 0, 0, 0, 0, 0, 2777, 0, 0, 0, 0, 0, 0, 2784, 0, 0, 0, 0, 0, 0, 2986, 2987, 0, 2988, 0, 2990, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 135168, 135168, 0, 0, 65536, 135168, 172032, 0, 172032, 172032, 0, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3014, 0, 0, 0, 0, 0, 0, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 1, 176128, 176128, 176128, 176128, 0, 0, 176128, 0, 0, 0, 0, 0, 0, 0, 0, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3175, 0, 0, 0, 0, 0, 0, 0, 3, 78115, 78115, 293, 0, 634, 0, 0, 0, 299, 300, 0, 2134016, 303, 304, 1164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 361, 541, 541, 1308, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 0, 0, 2242, 0, 914, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 0, 0, 587, 587, 587, 1203, 541, 587, 563, 541, 541, 541, 541, 541, 563, 563, 563, 563, 3070, 563, 563, 563, 563, 3074, 563, 563, 587, 587, 587, 587, 587, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1102, 0, 0, 0, 0, 0, 0, 0, 229376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1134592, 0, 0, 0, 0, 1691, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3201, 563, 563, 587, 587, 587, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 541, 541, 541, 541, 3569, 541, 541, 0, 0, 563, 563, 563, 563, 563, 563, 563, 2251, 563, 563, 563, 563, 563, 563, 587, 3109, 587, 587, 587, 587, 587, 587, 587, 587, 2407, 587, 587, 587, 587, 587, 2412, 2413, 563, 563, 2288, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3541, 587, 587, 587, 2375, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1497, 587, 587, 0, 0, 0, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1439, 0, 3007, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3317, 541, 541, 541, 541, 3038, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1300, 541, 541, 541, 563, 563, 563, 3078, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1401, 563, 563, 563, 587, 587, 587, 587, 3120, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1042, 587, 587, 587, 587, 0, 3159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155648, 3214, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1359, 563, 563, 563, 587, 3259, 587, 587, 587, 3262, 587, 587, 587, 587, 587, 587, 587, 541, 541, 563, 563, 587, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3609, 541, 541, 541, 587, 587, 3270, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1498, 587, 587, 541, 541, 541, 3330, 3331, 541, 541, 541, 541, 541, 541, 541, 541, 563, 563, 563, 563, 3581, 563, 563, 563, 563, 563, 3349, 563, 563, 563, 563, 563, 563, 563, 563, 563, 587, 587, 587, 587, 587, 587, 587, 587, 0, 541, 541, 541, 3406, 541, 541, 541, 541, 563, 563, 563, 563, 563, 563, 3415, 563, 0, 587, 587, 587, 587, 587, 291, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 1, 587, 3431, 587, 587, 587, 587, 587, 587, 3437, 587, 587, 587, 3441, 587, 541, 563, 563, 3473, 563, 563, 563, 563, 3478, 563, 563, 563, 563, 3483, 563, 563, 563, 563, 977, 563, 563, 563, 563, 0, 587, 587, 587, 587, 587, 587, 1931, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2678, 587, 587, 587, 2681, 587, 587, 0, 0, 3456, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 0, 2586, 0, 541, 3471, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 0, 2327, 563, 3487, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 0, 0, 563, 563, 587, 587, 587, 587, 0, 0, 541, 541, 563, 563, 587, 587, 0, 541, 541, 541, 3205, 541, 541, 541, 541, 541, 541, 541, 3210, 541, 541, 541, 541, 541, 541, 2816, 541, 541, 2820, 541, 541, 541, 541, 541, 541, 541, 541, 3041, 541, 541, 541, 541, 541, 541, 541, 541, 2556, 541, 541, 541, 541, 541, 541, 541, 541, 2233, 541, 541, 541, 541, 541, 0, 0, 563, 587, 0, 541, 563, 587, 0, 541, 563, 587, 0, 541, 563, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3510, 0, 0, 0, 0, 541, 541, 541, 541, 541, 2165, 541, 541, 541, 541, 541, 541, 541, 541, 3616, 563, 563, 563, 563, 563, 563, 563, 2265, 563, 563, 563, 563, 2270, 563, 563, 563, 184932, 184932, 184932, 184932, 184932, 184932, 184932, 0, 0, 0, 0, 0, 184932, 0, 184932, 1, 12290, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 301, 301, 0, 0, 301, 301, 143661, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 143731, 301, 301, 301, 301, 12290, 3, 78115, 78115, 293, 0, 0, 0, 0, 0, 299, 300, 0, 2134016, 303, 304, 587, 0, 0, 188416, 541, 587, 563, 541, 541, 541, 541, 541, 563, 563, 563, 563, 587, 587, 587, 587, 0, 0, 0, 0, 2731, 0, 0, 0, 0, 305, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249856, 0, 0, 0, 192972, 192972, 192972, 192972, 192972, 192972, 192972, 192972, 192972, 192972, 192972, 192972, 192972, 192972, 192972, 192972, 0, 192972, 0, 1, 0, 0, 0, 0, 0, 192972, 192972, 192972, 192972, 192972, 192972, 192972, 192972, 192972, 192972, 0, 0, 192972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1145, 365, 365, 0, 0, 1148, 192972, 192972, 192972, 0, 192972, 192972, 192972, 192972, 192972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3304, 0, 3180, 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 541, 407, 407, 407, 407, 407, 407, 407, 0, 0, 0, 0, 0, 407, 0, 407, 1, 12290, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118784, 299, 12290, 3, 78115, 78115, 293, 0, 0, 0, 0, 0, 299, 300, 0, 302, 303, 304, 587, 0, 0, 740, 541, 587, 563, 541, 541, 541, 541, 541, 563, 563, 563, 563, 587, 587, 587, 587, 0, 0, 2729, 0, 0, 0, 0, 0, 0, 740, 1184, 0, 0, 0, 0, 1188, 0, 0, 0, 0, 0, 0, 0, 378, 0, 381, 0, 0, 0, 381, 0, 0, 563, 587, 587, 587, 587, 587, 1079, 1559, 0, 0, 0, 1565, 0, 0, 0, 1571, 2034, 0, 0, 0, 0, 1577, 2036, 0, 0, 0, 0, 0, 0, 0, 397, 0, 0, 0, 0, 0, 397, 0, 0, 0, 0, 0, 1577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262144, 0, 0, 0, 0, 0, 1188, 1669, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3177, 0, 0, 0, 563, 563, 587, 587, 587, 587, 1559, 2030, 0, 0, 0, 0, 1565, 2032, 0, 0, 0, 0, 0, 0, 2997, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1586, 1587, 0, 0, 0, 0, 0, 0, 0, 0, 1669, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106496, 0, 0, 0, 0, 0, 0, 2034, 0, 2036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1150976, 0, 0, 0, 0, 0, 563, 563, 563, 563, 2325, 2652, 0, 0, 0, 0, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2343, 0, 307, 0, 307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 0, 3011, 0, 0, 0, 0, 3016, 3017, 0, 3019, 0, 0, 0, 0, 0, 204800, 204800, 0, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 205107, 204800, 204800, 205106, 205107, 204800, 205106, 205106, 204800, 204800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122880, 0, 122880, 122880, 122880, 122880, 122880, 12290, 3, 0, 0, 2183801, 0, 0, 0, 0, 0, 299, 300, 151552, 2134016, 303, 304, 0, 212992, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172032, 0, 0, 151552, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, 0, 0, 0, 3117056, 0, 0, 0, 0, 0, 0, 0, 0, 2200253, 0, 0, 0, 0, 0, 0, 678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2977, 0, 0, 0, 0, 0, 0, 914, 2126737, 2126737, 2126737, 2126737, 2126737, 2425745, 2433937, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3138449, 2126811, 2126811, 2499547, 2126811, 2126811, 2126737, 2724753, 2126737, 2732945, 2773905, 2126737, 2126737, 2126737, 2806673, 2126737, 2831249, 2126737, 2126737, 2864017, 2126737, 2126737, 2126737, 2126737, 2126811, 2126811, 2126811, 2126811, 2126811, 2593755, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 3036123, 2126811, 2126811, 3072987, 2126811, 2126811, 2126811, 3122139, 2126811, 2126737, 2126737, 2921361, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3117969, 2126737, 0, 2126811, 2126811, 2126811, 2126811, 2126811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1190, 0, 0, 0, 0, 0, 2126811, 2425819, 2434011, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 3126235, 2126811, 2126811, 2126811, 2126811, 2126811, 2626523, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2700251, 2126811, 2716635, 2126811, 2724827, 2126811, 2733019, 2773979, 2126811, 0, 2502656, 0, 0, 3010560, 0, 0, 0, 0, 0, 0, 0, 0, 2990080, 2179072, 2179072, 3125248, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2125824, 2592768, 2125824, 2125824, 2125824, 2125824, 2126811, 2126811, 2806747, 2126811, 2831323, 2126811, 2126811, 2864091, 2126811, 2126811, 2126811, 2126811, 2921435, 2126811, 2126811, 2126811, 0, 2179072, 2126811, 2126737, 2457600, 2179072, 2179072, 2179072, 2179072, 2458513, 2126737, 2126737, 2126737, 2126737, 2126737, 2524049, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2601873, 2126737, 2126737, 2458587, 2126811, 2126811, 2126811, 2126811, 2183168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1206, 0, 1208, 0, 0, 0, 0, 2126737, 2126737, 2126737, 2409361, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 0, 0, 2126811, 2126811, 2126811, 2409435, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2839515, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 3118043, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 0, 0, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2462609, 2466705, 2126737, 2126737, 2126737, 2642833, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2720657, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3040145, 2126737, 3064721, 2126737, 2126737, 2126737, 2126737, 2126737, 3101585, 2769809, 2778001, 2782097, 2798481, 2823057, 2126737, 2126737, 2126737, 2884497, 2126737, 2913169, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2626449, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2700177, 2126737, 2716561, 2126737, 2126737, 3134353, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3208081, 2126737, 0, 0, 0, 0, 0, 0, 3026, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1352, 541, 541, 541, 541, 541, 0, 0, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2462683, 2466779, 2126811, 2126811, 2126811, 2126811, 2126811, 2929627, 2126811, 2126811, 2126811, 2999259, 2126811, 2126811, 2126811, 2126811, 3060699, 2126811, 2126811, 2126811, 2126811, 2454491, 2126811, 2474971, 2483163, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2532315, 2126811, 2126811, 2126811, 2446299, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2552795, 2769883, 2778075, 2782171, 2798555, 2823131, 2126811, 2126811, 2126811, 2884571, 2126811, 2913243, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 3130331, 2126811, 2126811, 3154907, 3167195, 3175387, 2506752, 2507739, 2507665, 2126811, 2126811, 3134427, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 3208155, 2126811, 2179072, 2126811, 2126811, 2126811, 2642907, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2720731, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 3040219, 2126811, 3064795, 2126811, 2126811, 2126811, 2126811, 2126811, 3101659, 0, 0, 0, 2388881, 2126737, 2126737, 2126737, 2421649, 2126737, 2126737, 2126737, 2126737, 2126737, 2454417, 2126737, 2474897, 2483089, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2532241, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2605969, 2126737, 2630545, 2126737, 2126737, 2651025, 2126737, 2126737, 2126737, 2708369, 2126737, 2737041, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2663313, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 0, 0, 988, 2126811, 2126811, 2126811, 2126811, 3036049, 2126737, 2126737, 3072913, 2126737, 2126737, 2126737, 3122065, 2126737, 2126737, 3142545, 2126737, 2126737, 2126737, 3171217, 2126737, 2126737, 2126737, 2888593, 2126737, 2126737, 2925457, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 986, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126737, 3191697, 3195793, 2126737, 0, 0, 0, 0, 0, 0, 2388955, 2126811, 2126811, 2126811, 2421723, 2126811, 2126811, 2449408, 0, 2535424, 3031040, 2859008, 0, 0, 0, 0, 0, 2179072, 2449408, 2179072, 2535424, 2126811, 2737115, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2888667, 2126811, 2126811, 2925531, 2126811, 2126811, 2126811, 2126811, 2126811, 2585563, 2126811, 2126811, 2126811, 2126811, 2126811, 2618331, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2606043, 2126811, 2630619, 2126811, 2126811, 2651099, 2126811, 2126811, 2126811, 2708443, 2126811, 3142619, 2126811, 2126811, 2126811, 3171291, 2126811, 2126811, 3191771, 3195867, 2126811, 2179072, 2126811, 2126737, 2179072, 2179072, 2179072, 2637824, 2179072, 2179072, 2179072, 2179072, 2727936, 2752512, 2179072, 2179072, 2179072, 2842624, 2846720, 2179072, 3112960, 3219456, 2126737, 2126737, 3113873, 3220369, 2126811, 2126811, 3113947, 3220443, 0, 0, 0, 0, 0, 0, 0, 415, 415, 0, 0, 0, 0, 0, 415, 0, 3096576, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3223552, 0, 0, 2126737, 2126737, 2417553, 2126737, 2126737, 2126737, 2126737, 2929553, 2126737, 2126737, 2126737, 2999185, 2126737, 2126737, 2126737, 2126737, 3060625, 2126737, 2126737, 2126737, 2126737, 2933649, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3130257, 2126737, 2126737, 2126737, 2519953, 2126737, 2126737, 2126737, 2126737, 2589585, 2126737, 2614161, 2646929, 2126737, 2126737, 2696081, 2757521, 2126737, 2446225, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2552721, 2126737, 2126737, 2126737, 2638737, 2126737, 2126737, 2126737, 2126737, 2728849, 2753425, 2126737, 2126737, 2126737, 2126737, 2843537, 2847633, 2126737, 2896785, 2917265, 2126737, 2126737, 2945937, 2126737, 2126737, 2995089, 2126737, 3003281, 2126737, 2126737, 3023761, 2126737, 3068817, 3085201, 2126737, 3097489, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3224465, 0, 0, 2126811, 2126811, 2417627, 2843611, 2847707, 2126811, 2896859, 2917339, 2126811, 2126811, 2946011, 2126811, 2126811, 2995163, 2126811, 3003355, 2126811, 2126811, 3023835, 2126811, 3068891, 3085275, 2126811, 3097563, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 3224539, 2179072, 2126811, 2126737, 2126737, 2126737, 3031953, 2126737, 2126811, 2450395, 2126811, 2536411, 2126811, 2610139, 2126811, 2859995, 2126811, 2126811, 2126811, 2126811, 2126811, 2524123, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2601947, 2126811, 2515857, 2126737, 2126737, 2126737, 2544529, 2548625, 2126737, 2126737, 2597777, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2585489, 2126737, 2126737, 2126737, 2126737, 2126737, 2618257, 2126811, 2515931, 2126811, 2126811, 2126811, 2544603, 2548699, 2126811, 2126811, 2597851, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2655195, 2679771, 2761691, 2765787, 2786267, 2855899, 2970587, 2126811, 3007451, 3154833, 3167121, 3175313, 2397147, 2401243, 2126811, 2126811, 2442203, 2126811, 2470875, 2126811, 2126811, 2126811, 2520027, 2126811, 2126811, 2126811, 2126811, 2126811, 2638811, 2126811, 2126811, 2126811, 2126811, 2728923, 2753499, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 3179483, 2179072, 2126811, 2126737, 2179072, 2179072, 2126737, 2126737, 2126811, 2126811, 0, 0, 0, 0, 0, 0, 2510848, 2514944, 0, 0, 2678784, 2760704, 2764800, 2854912, 2969600, 2179072, 3006464, 2179072, 3018752, 2179072, 2179072, 2179072, 3149824, 2126737, 2429841, 2438033, 2126737, 2487185, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2655121, 2679697, 2761617, 2765713, 2786193, 2855825, 2970513, 2126737, 3007377, 2126737, 3019665, 2126737, 2126737, 2126737, 2126737, 3150737, 2126811, 2429915, 2438107, 2126811, 2487259, 2126811, 2126811, 2589659, 2126811, 2614235, 2647003, 2126811, 2126811, 2696155, 2757595, 2126811, 2126811, 2126811, 2126811, 2933723, 2126811, 2126811, 2663387, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2802651, 2814939, 2126811, 3019739, 2126811, 2126811, 2126811, 2126811, 3150811, 2179072, 3051520, 2126737, 3052433, 2126811, 3052507, 0, 2490368, 2498560, 2126811, 2556891, 2565083, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 3138523, 2940928, 2941841, 2941915, 0, 0, 0, 0, 0, 2748416, 2879488, 0, 3180, 0, 0, 0, 0, 0, 0, 0, 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2467, 0, 0, 2470, 0, 0, 0, 2179072, 2502656, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3010560, 2179072, 2179072, 2126737, 2126737, 2126811, 2126811, 0, 2486272, 0, 0, 0, 0, 0, 2678784, 2854912, 3006464, 2503569, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3011473, 2126737, 2126737, 2126737, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2179072, 2126811, 2126737, 2179072, 2179072, 2179072, 2179072, 2126737, 2126737, 2126737, 2126737, 2126811, 2126811, 2126811, 2126811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2112, 0, 0, 0, 0, 2503643, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 2126811, 3011547, 2126811, 2126811, 2126811, 0, 0, 0, 2179072, 2126811, 2126737, 2179072, 2179072, 2179072, 2179072, 2179072, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2179072, 2609152, 2179072, 2859008, 2179072, 2179072, 2179072, 3031040, 2126737, 2450321, 2126737, 2536337, 2126737, 2610065, 2126737, 2859921, 3032027, 2126811, 2527232, 0, 0, 0, 0, 0, 2179072, 2527232, 2179072, 2179072, 2179072, 2179072, 2179072, 2126737, 2126737, 2802577, 2814865, 2126737, 2839441, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3126161, 2126737, 2528145, 2126737, 2126737, 2126737, 2126737, 2126737, 3093393, 2126811, 2528219, 2126811, 2126811, 2126811, 2126811, 2126811, 3093467, 0, 0, 0, 0, 0, 782, 0, 0, 0, 0, 0, 0, 541, 843, 541, 541, 541, 541, 541, 1796, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2822, 541, 541, 541, 541, 3026944, 0, 0, 0, 2404352, 2179072, 2179072, 2179072, 2179072, 3026944, 2405265, 2126737, 2126737, 2126737, 2126737, 3027857, 2405339, 2126811, 2126811, 2126811, 2126811, 3027931, 0, 2539520, 0, 2949120, 2179072, 2658304, 2973696, 2179072, 2126737, 2659217, 2974609, 2126737, 2126811, 2659291, 2974683, 2126811, 0, 2711552, 2560000, 2179072, 2560913, 2126737, 2560987, 2126811, 0, 2179072, 2179072, 3133440, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3207168, 2179072, 0, 0, 0, 0, 0, 0, 2464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 324, 398, 0, 0, 0, 324, 0, 2126737, 2126811, 0, 2179072, 2126737, 2126811, 0, 2179072, 2126737, 2126811, 2985984, 2985984, 2986897, 2986971, 0, 0, 0, 0, 0, 0, 3164, 0, 0, 3167, 0, 0, 0, 0, 0, 0, 0, 1135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 824, 0, 0, 0, 0, 0, 0, 0, 221184, 221184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221184, 221184, 0, 0, 221184, 221184, 221184, 0, 0, 0, 0, 0, 0, 0, 221184, 0, 0, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221184, 0, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 1, 12290, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139264, 300, 0, 303, 0, 0, 0, 303, 0, 304, 0, 0, 0, 304, 0, 0, 0, 304, 69632, 139682, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 98304, 0, 0, 0, 53248, 0, 0, 0, 0, 0, 2662400, 0, 2813952, 0, 0, 3133440, 0, 98304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 111051, 0, 0, 0, 0, 303, 0, 304, 0, 0, 0, 2473984, 2478080, 0, 0, 0, 0, 0, 0, 0, 0, 0, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 163840, 3121152, 2179072, 2179072, 3141632, 2179072, 2179072, 2179072, 3170304, 2179072, 2179072, 3190784, 3194880, 2179072, 914, 0, 0, 0, 0, 0, 0, 3172, 3173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 665, 0, 0, 668, 0, 0, 0, 0, 914, 0, 2387968, 2125824, 2125824, 2125824, 2420736, 2125824, 2125824, 2125824, 2125824, 2125824, 2453504, 2125824, 2473984, 2482176, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2531328, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2605056, 2125824, 3190784, 3194880, 2125824, 988, 0, 0, 0, 988, 0, 2387968, 2125824, 2125824, 2125824, 2420736, 2125824, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 299, 0, 0, 0, 303, 0, 0, 0, 303, 119198, 73728, 0, 0, 0, 0, 0, 65536, 0, 3096576, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3223552, 914, 0, 2125824, 2125824, 2416640, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2625536, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2699264, 2125824, 2715648, 2125824, 2723840, 2125824, 2732032, 2772992, 2125824, 3084288, 2125824, 3096576, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3223552, 988, 0, 2125824, 2125824, 2416640, 225890, 225890, 225890, 225890, 225890, 225890, 225890, 225741, 225741, 225741, 225741, 225741, 225906, 225741, 225906, 1, 12290, 3, 0, 0, 0, 0, 0, 0, 0, 90409, 90409, 90409, 90409, 0, 94506, 94506, 90409, 90409, 94506, 94506, 94506, 94506, 94506, 94506, 94506, 94506, 94506, 94506, 94506, 94506, 94506, 94506, 94506, 94506, 1, 2125824, 237568, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1222, 0, 0, 0, 0, 0, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 217088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 0, 0, 2125824, 241664, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1236, 0, 0, 0, 0, 0, 254414, 254414, 254414, 254414, 254414, 254414, 254414, 254414, 254414, 254414, 254414, 254414, 254414, 254414, 254414, 254414, 0, 0, 0, 0, 0, 0, 0, 12290, 0, 0, 0, 2183168, 0, 0, 270336, 0, 0, 299, 300, 0, 2134016, 303, 304, 200704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 687, 2125824, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 180224, 0, 0, 0, 0, 0, 0, 0, 663, 0, 0, 666, 667, 0, 0, 0, 0, 2940928, 0, 0, 0, 0, 0, 2748416, 2879488, 0, 20480, 0, 0, 0, 0, 0, 0, 0, 679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1129, 0, 0, 0, 0, 0, 0, 1, 12290, 2113826, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 3182, 0, 0, 0, 0, 3187, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 266240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 266240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 266240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2662400, 0, 2813952, 12290, 2113826, 0, 0, 2183168, 0, 0, 0, 0, 0, 299, 300, 0, 2134016, 303, 304, 2125824, 245760, 0, 0, 2179072, 2125824, 2125824, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2584576, 2125824, 2125824, 2125824, 2125824, 2125824, 2617344, 2125824, 2125824, 2125824, 2125824, 2125824, 245760, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1245, 0, 0, 0, 0, 0, 274432, 274432, 274432, 274432, 274432, 274432, 274432, 0, 0, 0, 0, 0, 274432, 0, 274432, 1, 12290, 3, 0, 0, 0, 0, 0, 253952, 0, 0, 0, 253952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1155072, 0, 0, 0, 0, 0, 0, 12290, 3, 78115, 78115, 293, 0, 0, 0, 0, 0, 299, 300, 0, 0, 303, 304, 563, 563, 587, 587, 587, 587, 0, 2030, 0, 0, 0, 0, 0, 2032, 0, 0, 0, 0, 0, 0, 3196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3186, 0, 0, 0, 3189, 0, 0, 0, 0, 2034, 0, 0, 0, 0, 0, 2036, 0, 0, 0, 0, 0, 0, 0, 695, 0, 0, 0, 0, 365, 365, 365, 0, 0, 2485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 266240, 0, 0, 0, 1678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 338, 0, 0, 0, 0, 0, 0, 0, 1669, 0, 0, 0, 0, 0, 0, 0, 0, 2114, 0, 0, 0, 0, 0, 0, 3395, 541, 541, 541, 541, 3399, 541, 541, 541, 541, 541, 541, 1346, 541, 541, 541, 541, 541, 541, 1356, 541, 541, 12290, 3, 78115, 78456, 293, 0, 0, 0, 0, 0, 299, 300, 0, 0, 303, 304, 541, 588, 564, 564, 564, 564, 564, 564, 564, 588, 588, 588, 541, 588, 588, 588, 588, 588, 588, 588, 588, 564, 564, 541, 564, 588, 564, 588, 1, 0, 0, 0, 0, 2775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 163840, 0, 0, 0, 1, 12290, 3, 78116, 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167936, 0, 0, 0, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 1, 0, 0, 0, 0, 0, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 0, 0, 282624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1600, 1601, 0, 0, 0, 0, 282624, 282624, 282624, 0, 282624, 282624, 282624, 282624, 282624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254414, 254414, 254414, 254414, 254414, 254414, 254414, 254414, 1, 2981888, 2396160, 0, 3153920, 3180, 0, 0, 0, 0, 0, 0, 0, 2740224, 0, 0, 0, 0, 0, 0, 679, 751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1144, 0, 365, 365, 0, 1147, 0, 0, 0, 0, 0, 286720, 286720, 0, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 0, 0, 0, 0, 0, 0, 0, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 0, 3108864, 3198976, 0, 0, 3043328, 0, 3149824, 2936832, 0, 2760704, 3305, 2437120, 0, 0, 0, 0, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2875392, 0, 0, 0, 3386, 0, 0, 0, 0, 0, 0, 2834432, 2940928, 0, 0, 0, 0, 0, 2748416, 2879488, 0, 3386, 0, 0, 0, 0, 0, 0, 0, 709, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2048, 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, 308, 0, 308, 309, 0, 308, 308, 0, 0, 0, 308, 308, 309, 309, 0, 0, 0, 0, 0, 0, 308, 408, 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 781, 0, 0, 0, 309, 413, 0, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 0, 783, 0, 802, 0, 0, 0, 0, 541, 847, 541, 541, 541, 541, 541, 2830, 2831, 541, 541, 541, 541, 2834, 541, 541, 541, 541, 541, 541, 541, 3521, 541, 3523, 541, 541, 3525, 541, 563, 563, 0, 0, 432, 0, 0, 0, 0, 308, 449, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 489, 489, 463, 489, 489, 489, 489, 489, 489, 489, 514, 489, 489, 489, 489, 489, 489, 489, 489, 489, 489, 489, 489, 489, 489, 489, 534, 489, 489, 489, 489, 489, 542, 565, 542, 565, 542, 542, 565, 542, 589, 565, 565, 565, 565, 565, 565, 565, 589, 589, 589, 542, 589, 589, 589, 589, 589, 589, 589, 589, 565, 565, 542, 565, 589, 565, 589, 1, 0, 0, 674, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 323, 324, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 711, 0, 0, 0, 0, 0, 0, 0, 742, 0, 0, 0, 0, 742, 0, 748, 0, 0, 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 747, 0, 0, 0, 0, 0, 792, 663, 841, 0, 0, 0, 0, 541, 845, 541, 541, 541, 541, 541, 2217, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1802, 541, 541, 541, 541, 0, 0, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172032, 0, 0, 0, 0, 0, 0, 0, 0, 765, 0, 0, 768, 0, 0, 0, 0, 774, 0, 0, 778, 0, 0, 0, 0, 0, 0, 3562, 0, 3564, 541, 541, 541, 541, 541, 541, 541, 541, 541, 3219, 541, 541, 541, 541, 541, 3224, 0, 0, 785, 0, 0, 0, 0, 789, 0, 0, 0, 0, 0, 0, 0, 793, 0, 0, 736, 0, 793, 0, 0, 0, 0, 648, 0, 0, 0, 0, 0, 0, 0, 807, 808, 0, 0, 0, 0, 808, 0, 0, 807, 0, 0, 0, 0, 0, 755, 0, 0, 816, 817, 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221184, 0, 0, 0, 0, 0, 0, 648, 0, 0, 0, 0, 0, 834, 789, 0, 0, 0, 0, 0, 0, 0, 2139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1712, 0, 0, 0, 0, 0, 0, 838, 839, 789, 789, 0, 0, 0, 0, 789, 736, 789, 0, 541, 541, 849, 853, 563, 964, 563, 967, 563, 563, 981, 563, 563, 0, 587, 587, 587, 996, 1000, 587, 0, 0, 0, 0, 0, 0, 0, 0, 3180, 3448, 0, 0, 0, 0, 0, 0, 0, 2465, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2152, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1135, 0, 0, 0, 0, 1152, 0, 0, 0, 0, 1157, 0, 0, 0, 0, 0, 0, 0, 822, 0, 816, 0, 664, 0, 0, 0, 0, 0, 0, 0, 0, 1201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221184, 0, 221184, 0, 0, 0, 1253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 339, 340, 341, 541, 541, 1342, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2239, 0, 0, 0, 0, 0, 1596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 233472, 0, 0, 0, 0, 0, 0, 1640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 354, 355, 356, 357, 1653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1163, 0, 0, 0, 0, 1669, 0, 0, 0, 0, 0, 0, 1673, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 346, 345, 65536, 344, 0, 1729, 0, 0, 0, 0, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 3327, 541, 541, 1742, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1755, 541, 541, 541, 541, 541, 541, 541, 2193, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2557, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1794, 541, 541, 1797, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1314, 541, 541, 541, 1318, 541, 541, 1809, 541, 541, 541, 541, 541, 1814, 541, 541, 541, 541, 541, 541, 541, 1360, 914, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 0, 2328, 1824, 563, 563, 563, 563, 563, 1831, 563, 563, 563, 563, 563, 1837, 563, 563, 563, 563, 563, 3093, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3102, 563, 563, 1892, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1905, 563, 563, 563, 563, 978, 563, 563, 563, 563, 0, 587, 587, 587, 587, 587, 587, 1997, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1531, 587, 587, 587, 587, 587, 587, 563, 563, 563, 1910, 563, 563, 563, 563, 563, 563, 563, 26028, 1920, 587, 587, 587, 0, 1285, 1469, 1377, 541, 541, 1339, 541, 541, 563, 563, 1431, 563, 587, 587, 1927, 587, 587, 587, 587, 587, 1933, 587, 587, 587, 587, 587, 587, 587, 1529, 587, 587, 587, 587, 587, 587, 587, 587, 1932, 587, 587, 587, 587, 587, 587, 587, 587, 1494, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1946, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1513, 587, 587, 563, 563, 2026, 587, 587, 587, 0, 2030, 0, 0, 0, 0, 0, 2032, 0, 0, 0, 0, 0, 0, 131072, 0, 131072, 131072, 131072, 131072, 0, 131072, 131072, 131072, 131072, 131072, 131072, 131072, 0, 0, 0, 0, 0, 131072, 0, 131072, 1, 0, 0, 0, 2042, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 365, 365, 0, 0, 2141, 0, 0, 2148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 237568, 0, 0, 0, 0, 0, 0, 2140, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2170, 541, 541, 2173, 541, 541, 541, 541, 541, 541, 2181, 541, 541, 541, 541, 541, 541, 541, 541, 2841, 541, 541, 541, 541, 541, 541, 541, 541, 1294, 541, 541, 541, 541, 541, 541, 541, 541, 1327, 541, 541, 541, 1334, 1336, 541, 541, 541, 541, 2214, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2535, 541, 563, 2258, 563, 563, 563, 563, 563, 563, 2266, 563, 563, 563, 563, 563, 563, 563, 983, 563, 0, 587, 587, 587, 587, 1001, 587, 563, 2300, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 587, 587, 587, 2345, 587, 587, 587, 587, 587, 587, 2353, 587, 587, 587, 587, 587, 587, 587, 1950, 587, 587, 587, 587, 587, 587, 587, 587, 1468, 587, 587, 587, 587, 587, 587, 587, 587, 2387, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 541, 587, 563, 2414, 541, 541, 541, 541, 563, 563, 563, 563, 587, 587, 587, 587, 2030, 0, 2032, 0, 2034, 0, 2036, 0, 0, 2428, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1713, 0, 0, 0, 0, 0, 2436, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1179, 2449, 0, 0, 0, 0, 0, 2453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2477, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245760, 0, 0, 0, 0, 0, 2501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 386, 338, 0, 541, 541, 541, 2539, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2198, 541, 541, 0, 0, 0, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2595, 563, 563, 563, 563, 563, 3238, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2880, 563, 563, 563, 563, 563, 587, 587, 587, 2661, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2669, 587, 587, 587, 587, 2714, 587, 587, 587, 587, 587, 587, 541, 587, 563, 541, 541, 2417, 2418, 563, 563, 2421, 2422, 587, 587, 2425, 2426, 0, 1563, 0, 0, 0, 2735, 0, 0, 0, 0, 0, 0, 2740, 0, 0, 0, 0, 0, 0, 0, 1102, 1101, 0, 0, 0, 0, 0, 0, 0, 0, 1724, 0, 0, 0, 0, 0, 0, 0, 0, 1172, 0, 0, 0, 0, 0, 0, 0, 0, 1187, 0, 0, 0, 0, 0, 0, 1104, 0, 0, 0, 0, 0, 2763, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2431, 2432, 0, 0, 0, 0, 0, 0, 0, 0, 2792, 2793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2049, 0, 0, 0, 0, 0, 541, 541, 541, 541, 2829, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2836, 563, 563, 563, 563, 2876, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 0, 2329, 587, 587, 587, 2884, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1874, 587, 587, 2933, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1536, 587, 587, 2955, 541, 2957, 563, 2959, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 541, 541, 541, 541, 541, 541, 541, 587, 3442, 0, 3444, 0, 0, 0, 0, 0, 3180, 0, 0, 0, 0, 3452, 0, 0, 0, 0, 0, 796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 796, 0, 0, 0, 0, 3454, 0, 541, 3457, 541, 3459, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2585, 0, 0, 0, 563, 587, 3488, 587, 3490, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1047, 587, 587, 587, 587, 587, 0, 0, 0, 3505, 0, 0, 0, 0, 0, 0, 0, 3512, 0, 0, 541, 541, 541, 541, 541, 541, 3462, 541, 541, 541, 541, 541, 541, 541, 541, 541, 3334, 541, 541, 541, 563, 563, 563, 541, 541, 541, 3517, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3530, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 587, 587, 587, 587, 587, 587, 587, 587, 3544, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 0, 0, 0, 0, 541, 541, 541, 541, 563, 563, 310, 311, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 669, 0, 0, 0, 0, 0, 421, 0, 0, 0, 0, 450, 0, 0, 0, 0, 0, 0, 0, 0, 304, 304, 304, 304, 0, 304, 304, 304, 0, 0, 0, 0, 450, 450, 421, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 533, 450, 533, 533, 533, 450, 533, 533, 533, 533, 450, 543, 566, 543, 566, 543, 543, 566, 543, 590, 566, 566, 566, 566, 566, 566, 566, 590, 590, 590, 543, 590, 590, 590, 590, 590, 590, 590, 590, 566, 566, 616, 621, 590, 621, 627, 1, 960, 563, 563, 563, 563, 563, 563, 563, 563, 0, 587, 587, 587, 587, 587, 587, 587, 3136, 587, 587, 3138, 587, 587, 587, 587, 587, 0, 0, 0, 0, 1657, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254414, 0, 0, 0, 1676, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1211, 541, 541, 541, 1810, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1360, 914, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1378, 0, 0, 2486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 694, 0, 0, 541, 541, 541, 541, 2528, 541, 541, 541, 541, 2532, 541, 541, 541, 541, 541, 541, 541, 541, 3218, 541, 541, 541, 541, 541, 541, 541, 541, 2583, 541, 541, 541, 541, 0, 2586, 0, 0, 0, 0, 563, 563, 563, 563, 563, 563, 2592, 563, 563, 563, 563, 2596, 563, 0, 587, 587, 587, 587, 587, 78115, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225741, 225741, 225741, 225741, 225741, 225741, 225741, 225741, 225741, 225741, 225741, 225741, 225741, 225741, 225741, 225741, 0, 0, 0, 0, 0, 0, 0, 2658, 587, 587, 587, 587, 2662, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2665, 587, 587, 587, 587, 587, 0, 0, 0, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 0, 0, 0, 0, 0, 0, 694, 0, 0, 0, 0, 0, 365, 365, 365, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2142208, 0, 0, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 730, 0, 0, 0, 423, 431, 433, 422, 431, 0, 313, 431, 451, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 485, 490, 490, 501, 490, 490, 490, 490, 490, 490, 490, 490, 516, 516, 529, 529, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 516, 530, 530, 530, 530, 530, 544, 567, 544, 567, 544, 544, 567, 544, 591, 567, 567, 567, 567, 567, 567, 567, 591, 591, 591, 613, 591, 591, 591, 591, 591, 591, 591, 614, 615, 615, 613, 615, 614, 615, 614, 1, 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1238, 0, 0, 0, 0, 767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 266240, 0, 0, 0, 0, 0, 702, 0, 0, 0, 0, 0, 702, 0, 0, 0, 541, 541, 541, 541, 541, 541, 3322, 541, 541, 541, 541, 541, 541, 541, 541, 1816, 541, 541, 541, 541, 541, 541, 1360, 563, 563, 563, 968, 563, 563, 563, 563, 563, 0, 587, 587, 587, 587, 587, 587, 587, 3150, 3151, 3152, 541, 541, 563, 563, 587, 587, 0, 0, 2963, 0, 0, 0, 0, 0, 0, 0, 0, 3180, 0, 0, 3389, 0, 0, 0, 0, 0, 1108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 308, 309, 0, 1150, 1108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 1212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1225, 0, 0, 0, 0, 0, 797, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 797, 0, 1360, 914, 563, 563, 1364, 563, 563, 1368, 563, 563, 563, 563, 563, 563, 563, 563, 985, 0, 587, 587, 587, 587, 587, 587, 1382, 563, 1387, 563, 563, 1391, 563, 563, 1394, 563, 563, 563, 563, 563, 563, 563, 984, 563, 0, 587, 587, 587, 587, 587, 1004, 587, 1460, 587, 587, 587, 587, 587, 587, 587, 587, 1474, 587, 1479, 587, 587, 1483, 587, 587, 1486, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1939, 587, 587, 0, 1692, 0, 1694, 0, 0, 0, 0, 0, 0, 1701, 0, 0, 0, 0, 0, 0, 0, 2442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1173, 0, 0, 0, 0, 0, 0, 541, 541, 1745, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1757, 541, 541, 541, 541, 541, 541, 2192, 541, 541, 2195, 541, 541, 541, 541, 541, 541, 541, 1798, 541, 541, 541, 541, 541, 541, 1806, 541, 541, 1792, 1793, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2824, 541, 0, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1840, 563, 0, 587, 587, 587, 587, 587, 78115, 1079, 0, 0, 1083, 1087, 0, 0, 1091, 587, 587, 587, 587, 1948, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1478, 587, 587, 587, 587, 587, 587, 587, 587, 1961, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1533, 587, 587, 587, 587, 0, 2034, 0, 2036, 0, 0, 0, 0, 0, 0, 2430, 0, 0, 0, 0, 0, 0, 0, 2454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 365, 365, 702, 0, 0, 0, 2502, 2503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1147355, 0, 0, 0, 587, 587, 2700, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2004, 587, 587, 0, 0, 2802, 0, 0, 0, 0, 0, 0, 0, 2806, 541, 541, 541, 541, 541, 541, 541, 2204, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2220, 541, 541, 541, 541, 541, 541, 541, 2956, 563, 2958, 587, 2960, 0, 0, 0, 0, 0, 2966, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 350, 348, 65536, 0, 0, 0, 0, 2970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 365, 208896, 0, 3035, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1807, 541, 541, 3050, 3051, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2223, 2224, 541, 563, 3090, 563, 3092, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1415, 563, 563, 563, 3117, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1484, 587, 587, 3132, 587, 3134, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1937, 1938, 587, 587, 587, 0, 3192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 308, 541, 541, 541, 541, 3228, 541, 541, 541, 541, 563, 563, 563, 563, 563, 563, 563, 563, 563, 945, 563, 563, 563, 563, 587, 3503, 0, 3504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 541, 541, 541, 541, 2810, 3515, 541, 3516, 541, 541, 541, 3520, 541, 541, 541, 541, 541, 541, 541, 563, 3528, 563, 3529, 563, 563, 563, 3533, 563, 563, 563, 563, 563, 563, 563, 563, 587, 3542, 587, 3543, 587, 587, 587, 3547, 587, 587, 587, 587, 587, 587, 587, 587, 0, 0, 0, 0, 3673, 541, 541, 541, 3675, 563, 563, 3676, 587, 587, 587, 3678, 0, 0, 541, 541, 563, 563, 587, 587, 0, 541, 541, 3204, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2238, 2586, 0, 324, 324, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1133, 0, 0, 0, 0, 434, 374, 0, 439, 445, 0, 452, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 491, 491, 502, 491, 491, 491, 491, 491, 491, 491, 491, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 545, 568, 545, 568, 545, 545, 568, 545, 592, 568, 568, 568, 568, 568, 568, 568, 592, 592, 592, 545, 592, 592, 592, 592, 592, 592, 592, 592, 568, 568, 545, 568, 592, 568, 592, 1, 587, 587, 587, 1019, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1052, 587, 587, 587, 1122, 0, 1124, 1125, 0, 0, 0, 1127, 1128, 0, 0, 0, 0, 0, 0, 0, 0, 334, 0, 0, 0, 0, 0, 334, 0, 0, 0, 1166, 1167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 400, 0, 0, 0, 0, 0, 1228, 0, 0, 0, 0, 1233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1241, 0, 0, 0, 0, 1244, 0, 1194, 0, 1113, 0, 1250, 1127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 541, 541, 1274, 541, 541, 541, 541, 541, 541, 2203, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1329, 541, 541, 541, 541, 541, 541, 541, 1322, 541, 541, 1324, 541, 541, 541, 1328, 541, 541, 541, 541, 541, 541, 541, 541, 3522, 541, 541, 541, 541, 541, 563, 563, 3068, 563, 563, 563, 563, 563, 563, 563, 563, 2603, 563, 563, 563, 563, 563, 563, 563, 1360, 914, 563, 563, 1365, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 587, 3427, 587, 587, 3429, 563, 563, 563, 1405, 563, 563, 563, 563, 563, 563, 563, 1414, 563, 563, 1416, 563, 0, 587, 587, 587, 1051, 587, 78115, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 1134592, 0, 0, 0, 0, 0, 0, 1134592, 0, 0, 0, 0, 563, 563, 1420, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1437, 563, 563, 563, 563, 563, 1444, 563, 563, 563, 563, 563, 26028, 1360, 988, 587, 587, 1457, 587, 0, 0, 0, 0, 0, 0, 0, 3447, 3180, 0, 0, 0, 0, 0, 0, 0, 1237, 0, 0, 541, 541, 1273, 541, 1276, 541, 0, 0, 0, 1656, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 541, 846, 541, 541, 587, 587, 587, 1993, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1496, 587, 587, 587, 563, 2025, 587, 587, 587, 2029, 0, 2030, 0, 0, 0, 0, 0, 2032, 0, 0, 0, 0, 0, 0, 1134592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1134592, 0, 0, 0, 2034, 0, 0, 0, 0, 0, 2036, 0, 0, 0, 0, 0, 2039, 0, 2078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, 0, 0, 0, 2092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 643, 0, 0, 0, 541, 2172, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 0, 0, 0, 541, 2188, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 0, 2240, 541, 541, 541, 541, 2229, 541, 2231, 541, 541, 541, 541, 541, 541, 541, 0, 0, 0, 0, 0, 0, 1146880, 0, 1146880, 0, 0, 0, 0, 0, 0, 0, 0, 2617344, 0, 0, 0, 0, 0, 2789376, 0, 0, 0, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2253, 563, 563, 563, 563, 0, 0, 0, 0, 0, 0, 587, 2654, 587, 587, 587, 587, 587, 587, 3135, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1530, 587, 587, 587, 587, 587, 587, 2257, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1889, 2273, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2272, 563, 563, 563, 563, 2316, 563, 2318, 563, 563, 563, 563, 563, 563, 563, 0, 0, 0, 0, 0, 0, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 541, 563, 2344, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1516, 2360, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1517, 587, 587, 587, 587, 2403, 587, 2405, 587, 587, 587, 587, 587, 587, 587, 541, 587, 0, 0, 0, 0, 0, 0, 0, 3508, 0, 0, 0, 0, 0, 0, 541, 541, 541, 541, 541, 541, 3400, 541, 541, 541, 2499, 0, 0, 0, 0, 0, 2504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2086, 2087, 0, 0, 0, 0, 541, 541, 2526, 2527, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2237, 0, 0, 541, 541, 2566, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 3046, 541, 0, 0, 0, 563, 563, 563, 2590, 563, 2591, 563, 563, 563, 563, 563, 563, 563, 1411, 563, 563, 563, 563, 563, 563, 563, 563, 1429, 563, 563, 563, 563, 563, 563, 563, 563, 1916, 563, 563, 26028, 1921, 587, 587, 587, 0, 0, 0, 2761, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 674, 0, 0, 0, 541, 541, 2837, 541, 541, 541, 541, 541, 541, 541, 2843, 541, 541, 541, 541, 541, 541, 541, 2232, 541, 541, 2235, 2236, 541, 541, 0, 0, 563, 563, 563, 2885, 563, 563, 563, 563, 563, 563, 563, 2891, 563, 563, 563, 563, 0, 0, 2329, 0, 0, 0, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2341, 587, 587, 587, 2920, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1519, 587, 587, 587, 587, 3373, 587, 587, 541, 541, 563, 563, 587, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2968, 563, 587, 587, 587, 587, 587, 587, 3493, 587, 587, 587, 587, 587, 587, 587, 587, 1034, 587, 587, 587, 587, 587, 587, 587, 326, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1161, 0, 0, 0, 0, 0, 325, 373, 328, 372, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2111, 0, 0, 0, 0, 0, 325, 0, 0, 372, 372, 402, 0, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 339, 293, 0, 0, 0, 0, 0, 0, 325, 0, 327, 0, 0, 0, 453, 466, 466, 466, 466, 466, 466, 466, 479, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 492, 492, 466, 492, 492, 507, 509, 492, 492, 507, 492, 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, 535, 518, 518, 518, 518, 518, 546, 569, 546, 569, 546, 546, 569, 546, 593, 569, 569, 569, 569, 569, 569, 569, 593, 593, 593, 546, 593, 593, 593, 593, 593, 593, 593, 593, 569, 569, 546, 569, 593, 569, 593, 1, 0, 0, 658, 659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 670, 671, 0, 689, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 365, 365, 0, 0, 0, 0, 0, 800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 718, 0, 720, 0, 0, 0, 0, 0, 0, 727, 0, 0, 0, 731, 0, 0, 0, 0, 0, 0, 1159168, 417, 417, 0, 0, 0, 0, 0, 417, 0, 0, 784, 0, 786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 759, 0, 0, 0, 0, 0, 798, 0, 803, 0, 806, 0, 0, 0, 0, 803, 806, 0, 0, 0, 0, 0, 0, 741, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 806, 806, 803, 0, 0, 0, 0, 0, 0, 0, 786, 0, 798, 0, 815, 0, 0, 0, 0, 0, 802, 0, 0, 783, 0, 0, 0, 0, 802, 0, 0, 0, 0, 0, 0, 0, 802, 0, 0, 0, 0, 806, 0, 707, 0, 0, 823, 0, 0, 0, 0, 0, 823, 823, 826, 0, 0, 0, 786, 0, 0, 0, 0, 0, 835, 0, 0, 0, 0, 0, 0, 0, 2480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 835, 815, 835, 0, 541, 541, 850, 541, 541, 541, 541, 541, 3052, 541, 541, 541, 541, 541, 541, 541, 541, 3060, 541, 541, 541, 541, 541, 3217, 541, 541, 541, 541, 541, 541, 541, 3222, 541, 541, 541, 541, 541, 2529, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 3043, 541, 541, 541, 541, 856, 541, 541, 869, 541, 541, 880, 541, 885, 541, 541, 893, 896, 901, 541, 909, 563, 563, 966, 969, 974, 563, 982, 563, 563, 0, 587, 587, 587, 997, 587, 1003, 587, 587, 1016, 587, 587, 1027, 587, 1032, 587, 587, 1040, 1043, 1048, 587, 1056, 587, 0, 0, 0, 0, 0, 0, 3507, 0, 0, 0, 0, 0, 0, 0, 541, 541, 541, 541, 541, 3031, 541, 541, 541, 541, 0, 0, 0, 1110, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 421, 0, 65536, 0, 0, 1137, 1138, 0, 0, 0, 0, 1142, 0, 0, 0, 365, 365, 0, 0, 0, 0, 0, 0, 769, 0, 0, 0, 775, 776, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 374, 0, 65536, 0, 0, 1165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, 522, 0, 0, 1182, 741, 0, 0, 0, 1134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 367, 0, 0, 0, 0, 0, 0, 541, 541, 541, 1281, 541, 541, 541, 541, 541, 541, 1296, 541, 541, 541, 1301, 541, 541, 541, 541, 541, 3229, 541, 541, 541, 563, 563, 563, 563, 563, 563, 563, 941, 563, 563, 563, 563, 563, 563, 1360, 914, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1373, 563, 563, 563, 563, 563, 3249, 563, 3251, 563, 563, 563, 563, 563, 563, 563, 563, 1852, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1388, 563, 563, 563, 1393, 563, 563, 563, 563, 563, 563, 563, 563, 1451, 26028, 1360, 988, 587, 587, 587, 587, 587, 1485, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1500, 1540, 587, 587, 0, 541, 587, 563, 541, 541, 541, 541, 541, 563, 563, 563, 563, 563, 563, 3477, 563, 563, 563, 563, 563, 563, 563, 563, 1396, 563, 563, 563, 563, 563, 563, 563, 0, 0, 1607, 1608, 1609, 0, 1611, 1612, 0, 0, 0, 0, 1617, 0, 0, 0, 0, 0, 0, 770, 0, 0, 773, 0, 0, 777, 0, 0, 0, 0, 0, 0, 796, 0, 0, 0, 0, 0, 541, 541, 541, 541, 541, 541, 563, 563, 563, 563, 563, 563, 933, 563, 563, 947, 563, 563, 563, 563, 0, 0, 1639, 0, 0, 1642, 0, 1644, 0, 0, 0, 0, 0, 1650, 1651, 0, 0, 0, 0, 0, 805, 0, 0, 692, 0, 0, 672, 0, 692, 0, 810, 0, 1667, 0, 0, 1669, 0, 0, 0, 0, 1671, 1672, 0, 0, 0, 0, 0, 0, 0, 2491, 2492, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2686976, 2736128, 0, 0, 2531328, 2707456, 0, 0, 0, 0, 0, 1708, 0, 0, 1711, 0, 0, 0, 0, 0, 1715, 0, 0, 0, 0, 0, 0, 2134016, 0, 0, 0, 0, 0, 0, 0, 0, 1138688, 0, 1719, 1720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1711, 0, 0, 0, 1731, 1585, 1585, 1733, 541, 1735, 541, 1736, 1737, 541, 1739, 541, 541, 541, 541, 541, 1310, 541, 541, 541, 541, 541, 541, 541, 1317, 541, 541, 541, 541, 541, 1748, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1759, 541, 1743, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1756, 541, 541, 541, 541, 541, 541, 541, 3333, 541, 541, 541, 541, 541, 563, 563, 563, 922, 926, 563, 563, 563, 563, 563, 563, 952, 563, 957, 1760, 541, 541, 541, 541, 1764, 541, 1766, 541, 541, 541, 541, 541, 541, 541, 541, 541, 889, 541, 541, 541, 541, 907, 541, 1774, 1775, 1777, 541, 541, 541, 541, 541, 541, 541, 1785, 1786, 1787, 541, 541, 1790, 1791, 541, 541, 541, 541, 541, 541, 541, 1799, 541, 541, 541, 1803, 541, 541, 541, 541, 541, 541, 2530, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1315, 541, 541, 541, 541, 1320, 541, 541, 541, 541, 1811, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1822, 1360, 914, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1379, 0, 1827, 563, 1829, 563, 1830, 563, 1832, 563, 1834, 563, 563, 563, 1838, 563, 563, 563, 563, 1390, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2652, 0, 587, 587, 587, 563, 1859, 563, 1861, 563, 563, 563, 563, 563, 563, 563, 563, 1869, 1870, 1872, 563, 0, 587, 587, 1042, 587, 587, 78115, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 307, 307, 307, 0, 0, 0, 0, 0, 1907, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1918, 26028, 0, 1923, 587, 1925, 587, 1926, 587, 1928, 587, 1930, 587, 587, 587, 1934, 587, 587, 587, 587, 587, 587, 587, 3366, 587, 587, 587, 587, 3367, 3368, 587, 587, 587, 587, 587, 1947, 587, 587, 587, 587, 1951, 587, 587, 587, 587, 1955, 587, 1957, 587, 587, 1976, 1977, 1978, 587, 587, 1981, 1982, 587, 587, 587, 587, 587, 587, 587, 1999, 2000, 587, 587, 587, 587, 587, 587, 587, 2015, 2016, 2017, 541, 2019, 541, 541, 563, 2023, 1990, 587, 587, 587, 1994, 587, 587, 587, 587, 587, 587, 587, 2003, 587, 587, 587, 0, 1288, 1472, 1380, 541, 541, 541, 541, 541, 563, 563, 563, 563, 3475, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2267, 563, 563, 563, 563, 563, 563, 2024, 563, 1982, 587, 2028, 587, 0, 2030, 0, 0, 0, 0, 0, 2032, 0, 0, 0, 0, 0, 0, 2134016, 0, 0, 0, 0, 0, 0, 0, 746, 0, 0, 0, 0, 0, 2043, 0, 0, 2046, 2047, 0, 0, 0, 2051, 0, 0, 0, 0, 0, 0, 800, 0, 0, 0, 0, 0, 0, 0, 800, 0, 0, 0, 0, 541, 541, 541, 541, 2090, 0, 0, 0, 0, 2094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2456, 0, 0, 0, 0, 0, 0, 0, 0, 1669, 0, 0, 0, 0, 0, 0, 0, 2113, 0, 0, 2116, 0, 0, 2119, 0, 0, 0, 0, 0, 0, 2126, 0, 2128, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 370, 370, 0, 0, 65536, 370, 0, 0, 0, 0, 2137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1159168, 0, 0, 0, 0, 2047, 0, 2147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1103, 1104, 1105, 1106, 0, 2158, 0, 0, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 3329, 541, 541, 541, 2174, 541, 2176, 541, 541, 541, 541, 541, 541, 2184, 541, 2186, 541, 541, 541, 541, 541, 3332, 541, 541, 541, 541, 541, 541, 541, 563, 563, 563, 3069, 563, 563, 563, 563, 563, 563, 563, 2212, 541, 541, 541, 541, 541, 541, 2219, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1312, 541, 541, 541, 541, 541, 541, 563, 563, 2259, 563, 2261, 563, 563, 563, 563, 563, 563, 2269, 563, 2271, 563, 563, 563, 563, 1422, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1438, 587, 587, 2346, 587, 2348, 587, 587, 587, 587, 587, 587, 2356, 587, 2358, 587, 587, 0, 0, 0, 3634, 0, 3636, 541, 541, 541, 541, 541, 541, 541, 563, 563, 921, 563, 563, 563, 563, 940, 944, 950, 563, 955, 563, 563, 2261, 541, 2416, 541, 541, 563, 2420, 563, 563, 587, 2424, 587, 587, 2030, 0, 2032, 0, 0, 0, 2452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1132, 0, 0, 0, 0, 0, 2461, 0, 0, 0, 0, 0, 2466, 0, 2468, 2469, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 420, 420, 0, 0, 65536, 420, 0, 0, 0, 0, 2488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 2179072, 0, 0, 0, 0, 2516, 2468, 0, 0, 0, 0, 0, 2521, 0, 0, 0, 541, 541, 541, 541, 541, 3321, 541, 541, 541, 3325, 541, 541, 541, 541, 541, 541, 1749, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2558, 541, 541, 541, 541, 541, 2563, 541, 541, 541, 2568, 541, 541, 541, 541, 541, 541, 541, 2575, 541, 541, 541, 541, 541, 541, 2542, 541, 2544, 541, 541, 541, 541, 541, 541, 541, 541, 563, 3411, 563, 563, 3413, 563, 563, 563, 541, 541, 541, 541, 2580, 541, 541, 541, 541, 541, 541, 541, 541, 0, 2586, 0, 0, 0, 0, 0, 812, 0, 809, 792, 0, 0, 814, 0, 667, 0, 788, 0, 0, 0, 563, 563, 563, 563, 563, 563, 563, 563, 2594, 563, 563, 563, 563, 0, 2652, 0, 0, 0, 0, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2342, 587, 563, 2624, 563, 563, 563, 563, 2628, 563, 563, 563, 2633, 563, 563, 563, 563, 563, 563, 2629, 563, 563, 563, 563, 563, 563, 2636, 563, 563, 563, 563, 2640, 563, 563, 563, 563, 563, 563, 563, 563, 2646, 563, 563, 563, 563, 0, 2652, 0, 0, 0, 0, 587, 587, 587, 2656, 587, 2657, 587, 587, 2660, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2383, 587, 587, 587, 587, 2672, 587, 2674, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1970, 587, 587, 587, 587, 587, 2699, 587, 587, 587, 587, 587, 587, 587, 2706, 587, 587, 587, 587, 587, 587, 587, 3375, 541, 3376, 563, 3377, 587, 0, 0, 0, 587, 587, 2712, 587, 587, 587, 587, 587, 587, 587, 587, 541, 587, 563, 541, 541, 541, 541, 563, 563, 2800, 2801, 0, 0, 0, 0, 0, 0, 0, 0, 0, 541, 541, 541, 541, 541, 541, 541, 541, 541, 3402, 2992, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2992, 0, 0, 0, 0, 0, 0, 840, 0, 0, 0, 0, 0, 541, 541, 541, 541, 541, 541, 2166, 541, 541, 541, 541, 541, 0, 3022, 0, 0, 0, 3025, 541, 541, 541, 541, 541, 541, 3032, 541, 541, 541, 541, 541, 541, 2570, 541, 541, 541, 541, 2574, 541, 541, 541, 541, 541, 541, 1286, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1818, 541, 541, 541, 541, 1360, 541, 541, 3036, 541, 541, 541, 541, 541, 541, 541, 3042, 541, 541, 541, 541, 541, 541, 541, 2531, 541, 541, 541, 541, 541, 541, 541, 541, 541, 563, 3230, 563, 563, 563, 3233, 563, 3048, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 3057, 3059, 541, 541, 541, 541, 541, 541, 2582, 541, 541, 541, 541, 541, 541, 0, 2586, 0, 3062, 541, 3064, 3065, 541, 563, 563, 563, 563, 563, 563, 3072, 563, 563, 563, 563, 563, 1425, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2889, 563, 563, 563, 563, 563, 563, 563, 3076, 563, 563, 563, 563, 563, 563, 563, 3082, 563, 563, 563, 563, 563, 3088, 563, 563, 3091, 563, 563, 563, 563, 563, 563, 563, 563, 3098, 3100, 563, 563, 563, 563, 563, 3342, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2645, 563, 563, 563, 563, 563, 563, 563, 3104, 563, 3106, 3107, 563, 587, 587, 587, 587, 587, 587, 3114, 587, 587, 587, 0, 1544, 1545, 1546, 541, 541, 1548, 541, 541, 563, 563, 1552, 563, 587, 587, 3118, 587, 587, 587, 587, 587, 587, 587, 3124, 587, 587, 587, 587, 587, 587, 1998, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3551, 587, 587, 3553, 587, 0, 0, 3130, 587, 587, 3133, 587, 587, 587, 587, 587, 587, 587, 587, 3140, 3142, 587, 587, 0, 0, 3633, 0, 0, 0, 541, 541, 3638, 541, 541, 541, 3642, 563, 587, 587, 3146, 587, 3148, 3149, 587, 541, 587, 563, 541, 3154, 563, 3156, 587, 3158, 0, 0, 0, 0, 0, 3181, 0, 3183, 0, 0, 0, 0, 0, 0, 0, 3190, 0, 0, 0, 3193, 3194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2200252, 2200252, 2200252, 0, 563, 563, 563, 563, 3237, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1400, 563, 563, 563, 563, 563, 563, 563, 3248, 563, 563, 563, 563, 563, 563, 563, 563, 3256, 563, 563, 563, 563, 563, 3352, 563, 563, 563, 563, 587, 587, 587, 587, 587, 3358, 563, 563, 563, 587, 587, 587, 3261, 587, 587, 587, 587, 587, 587, 587, 3266, 587, 0, 0, 0, 0, 0, 3506, 0, 0, 3509, 0, 0, 0, 0, 0, 541, 541, 541, 541, 3662, 541, 563, 563, 563, 563, 3666, 563, 0, 3310, 0, 0, 3313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2200253, 151552, 2200253, 0, 587, 587, 587, 3372, 587, 587, 587, 541, 541, 563, 563, 587, 587, 0, 0, 0, 0, 0, 0, 0, 0, 2967, 0, 0, 0, 0, 0, 0, 3383, 3384, 0, 3180, 0, 0, 0, 0, 0, 3392, 0, 0, 0, 0, 0, 1097, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 331, 382, 384, 0, 0, 0, 563, 3417, 563, 563, 563, 563, 563, 563, 563, 563, 563, 587, 587, 587, 587, 587, 587, 587, 3115, 587, 587, 587, 587, 587, 587, 3433, 587, 587, 587, 587, 587, 587, 587, 587, 587, 541, 563, 3472, 563, 3474, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3243, 563, 563, 563, 3470, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3485, 563, 563, 563, 563, 3532, 563, 563, 563, 563, 563, 563, 563, 563, 563, 587, 587, 3110, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3546, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3555, 3556, 0, 0, 0, 3559, 0, 0, 0, 0, 0, 3565, 3566, 3567, 541, 541, 541, 3570, 541, 3572, 541, 541, 541, 541, 3577, 3578, 3579, 563, 563, 563, 3582, 563, 3584, 563, 0, 587, 587, 1044, 587, 587, 291, 1079, 0, 0, 1082, 1086, 0, 0, 1090, 563, 563, 563, 3589, 3590, 3591, 3592, 587, 587, 587, 3595, 587, 3597, 587, 587, 587, 587, 587, 1464, 587, 587, 587, 1473, 587, 587, 587, 587, 587, 587, 1949, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2949, 587, 587, 587, 541, 587, 563, 587, 3602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 541, 541, 541, 541, 541, 541, 1738, 541, 541, 541, 563, 3644, 563, 563, 563, 3648, 563, 587, 587, 3650, 587, 587, 587, 3654, 587, 0, 0, 0, 0, 0, 0, 0, 0, 3180, 0, 3449, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 266240, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 329, 330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 349, 0, 0, 0, 0, 0, 369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 369, 0, 0, 0, 377, 379, 0, 0, 0, 0, 0, 0, 0, 0, 1099, 0, 0, 0, 0, 0, 0, 0, 0, 1115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3185, 0, 0, 0, 0, 0, 0, 0, 0, 412, 0, 0, 0, 412, 69632, 73728, 0, 369, 369, 0, 424, 65536, 369, 0, 0, 0, 369, 424, 499, 503, 499, 499, 508, 499, 499, 499, 508, 499, 424, 424, 0, 330, 424, 0, 0, 424, 424, 0, 0, 0, 0, 0, 0, 0, 0, 1156, 0, 0, 0, 0, 0, 0, 0, 0, 664, 0, 0, 0, 0, 0, 0, 0, 0, 680, 681, 0, 0, 0, 0, 0, 0, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 547, 570, 547, 570, 547, 547, 570, 547, 594, 570, 570, 570, 570, 570, 570, 570, 594, 594, 594, 547, 594, 594, 594, 594, 594, 594, 594, 594, 570, 570, 547, 570, 594, 570, 594, 1, 587, 587, 587, 1020, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1954, 587, 587, 587, 0, 0, 1109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1226, 541, 1279, 541, 541, 541, 541, 541, 1291, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1351, 541, 541, 541, 541, 541, 541, 1360, 914, 563, 563, 563, 563, 563, 563, 563, 563, 1371, 563, 563, 563, 563, 563, 563, 2643, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1866, 563, 563, 563, 563, 563, 563, 1383, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2286, 587, 587, 1992, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2411, 541, 587, 563, 563, 3677, 587, 587, 587, 0, 0, 541, 541, 563, 563, 587, 587, 0, 541, 3203, 541, 541, 541, 3206, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1313, 541, 541, 541, 541, 541, 425, 425, 0, 0, 425, 440, 0, 425, 425, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 493, 493, 467, 493, 493, 493, 493, 493, 493, 493, 493, 493, 493, 493, 493, 493, 493, 493, 493, 548, 571, 548, 571, 548, 548, 571, 548, 595, 571, 571, 571, 571, 571, 571, 571, 595, 595, 595, 548, 595, 595, 595, 595, 595, 595, 595, 595, 571, 571, 548, 571, 595, 571, 595, 1, 0, 1213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 0, 0, 0, 0, 0, 1695, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 360, 0, 0, 0, 0, 0, 0, 0, 0, 2093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 365, 0, 0, 0, 2157, 0, 0, 0, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 3328, 541, 2201, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2200, 563, 2415, 541, 541, 541, 2419, 563, 563, 563, 2423, 587, 587, 587, 0, 0, 0, 0, 0, 0, 541, 541, 541, 541, 541, 541, 541, 563, 3067, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3253, 563, 563, 563, 563, 563, 563, 0, 2460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 748, 0, 0, 0, 0, 0, 2791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 365, 1146, 0, 0, 2943, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 541, 587, 563, 541, 541, 0, 0, 0, 0, 2971, 0, 0, 0, 2975, 0, 0, 0, 0, 0, 2981, 0, 0, 0, 0, 0, 1128, 0, 0, 0, 0, 0, 1233, 0, 0, 0, 1265, 0, 0, 0, 2994, 0, 2996, 0, 0, 0, 0, 0, 0, 0, 0, 3004, 0, 0, 0, 0, 0, 1169, 0, 1171, 0, 0, 0, 0, 1176, 0, 0, 0, 0, 0, 0, 1643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2520, 0, 0, 0, 0, 541, 0, 0, 0, 0, 3009, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 383, 0, 0, 0, 387, 541, 3063, 541, 541, 541, 3066, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3083, 563, 563, 563, 563, 563, 563, 563, 3105, 563, 563, 563, 3108, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1509, 587, 587, 587, 587, 587, 587, 3144, 587, 587, 3147, 587, 587, 587, 541, 587, 563, 541, 541, 563, 563, 587, 587, 0, 0, 3295, 0, 0, 0, 0, 0, 0, 0, 0, 2766, 0, 0, 0, 0, 0, 0, 0, 0, 2151, 0, 0, 0, 0, 0, 0, 0, 0, 2506, 0, 0, 0, 0, 0, 2512, 0, 0, 0, 0, 0, 0, 3195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2782, 0, 0, 0, 0, 541, 541, 541, 541, 3216, 541, 541, 541, 541, 541, 541, 541, 3221, 541, 3223, 541, 541, 541, 541, 541, 3408, 541, 541, 3410, 563, 563, 563, 563, 3414, 563, 563, 563, 563, 1446, 1447, 563, 563, 563, 26028, 1360, 988, 587, 587, 587, 587, 587, 587, 3671, 0, 0, 0, 541, 541, 541, 3674, 563, 563, 563, 563, 563, 587, 587, 3260, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3274, 587, 587, 587, 587, 587, 587, 3280, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 541, 587, 563, 541, 2722, 563, 3350, 563, 563, 563, 563, 563, 563, 563, 563, 587, 587, 587, 587, 587, 587, 587, 587, 3655, 587, 587, 587, 587, 3363, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3369, 587, 0, 0, 0, 541, 587, 563, 541, 541, 541, 541, 541, 563, 563, 563, 563, 563, 3071, 563, 563, 563, 563, 563, 0, 0, 0, 0, 541, 541, 3660, 3661, 541, 541, 563, 563, 3664, 3665, 563, 563, 563, 563, 1423, 563, 563, 1430, 563, 563, 563, 563, 563, 563, 563, 563, 2631, 563, 563, 563, 563, 563, 563, 563, 587, 587, 3668, 3669, 587, 587, 0, 0, 0, 0, 541, 541, 541, 541, 563, 563, 563, 924, 928, 931, 563, 939, 563, 563, 563, 954, 956, 959, 0, 0, 690, 691, 0, 0, 0, 0, 696, 0, 0, 0, 365, 365, 365, 0, 0, 0, 0, 0, 1185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3180, 0, 0, 0, 0, 0, 0, 829, 0, 0, 0, 0, 0, 0, 0, 0, 0, 758, 0, 0, 0, 0, 0, 0, 758, 0, 0, 0, 0, 0, 758, 758, 910, 541, 563, 563, 563, 563, 927, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1432, 563, 563, 1436, 563, 563, 563, 983, 0, 587, 587, 587, 587, 1057, 78115, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 1220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 587, 1521, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1514, 587, 0, 0, 0, 1721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1193, 0, 0, 0, 0, 2040, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 749, 0, 2171, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2211, 3288, 541, 3290, 563, 3292, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3514, 468, 468, 468, 486, 494, 494, 486, 494, 494, 494, 494, 494, 494, 494, 494, 519, 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 536, 527, 527, 527, 527, 527, 549, 572, 549, 572, 549, 549, 572, 549, 596, 572, 572, 572, 572, 572, 572, 572, 596, 596, 596, 549, 596, 596, 596, 596, 596, 596, 596, 596, 572, 572, 549, 572, 596, 572, 596, 1, 795, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1652, 0, 818, 0, 0, 0, 795, 0, 0, 818, 0, 0, 0, 0, 0, 818, 818, 0, 0, 0, 0, 795, 0, 0, 0, 0, 0, 0, 836, 791, 0, 0, 836, 857, 541, 865, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 3527, 563, 911, 541, 563, 563, 563, 563, 563, 930, 563, 938, 563, 563, 563, 563, 563, 563, 1850, 563, 563, 563, 563, 563, 563, 563, 563, 563, 0, 587, 587, 587, 587, 587, 587, 587, 1012, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1058, 984, 0, 587, 587, 587, 1077, 1058, 78115, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 1243, 0, 0, 0, 0, 0, 0, 0, 0, 1259, 0, 0, 0, 1263, 0, 0, 0, 0, 0, 0, 0, 1139, 1140, 0, 0, 0, 0, 0, 365, 365, 0, 0, 0, 0, 0, 0, 1113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2071, 0, 0, 0, 0, 0, 1180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1705, 1340, 541, 541, 1344, 541, 541, 541, 541, 541, 1350, 541, 541, 541, 1357, 541, 541, 541, 541, 541, 1812, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1360, 1403, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2638, 563, 563, 1442, 563, 563, 563, 1449, 563, 563, 26028, 1360, 988, 587, 587, 587, 587, 587, 587, 3272, 587, 587, 587, 587, 587, 587, 587, 587, 3278, 587, 587, 1487, 587, 587, 587, 587, 587, 587, 587, 1495, 587, 587, 587, 587, 587, 587, 2365, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2691, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1524, 587, 587, 1528, 587, 587, 587, 587, 587, 1534, 587, 587, 587, 587, 587, 1492, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1510, 587, 587, 587, 587, 587, 1541, 587, 587, 0, 541, 587, 563, 541, 541, 541, 541, 541, 563, 563, 563, 563, 563, 3476, 563, 563, 563, 3480, 563, 563, 563, 563, 563, 563, 2863, 563, 563, 2867, 563, 563, 563, 563, 563, 563, 1409, 563, 563, 1413, 563, 563, 563, 563, 563, 563, 1448, 563, 563, 26028, 1360, 988, 587, 587, 587, 587, 0, 0, 0, 1595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1223, 0, 0, 0, 0, 0, 1655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1664, 0, 0, 0, 0, 0, 0, 1126, 0, 0, 0, 1130, 1131, 0, 0, 0, 0, 0, 0, 0, 2818048, 2846720, 0, 2916352, 0, 0, 3002368, 0, 0, 1718, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2053, 1702, 0, 0, 0, 0, 0, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 3326, 541, 541, 541, 563, 563, 563, 1893, 563, 563, 563, 563, 563, 563, 1901, 563, 563, 563, 563, 563, 563, 2887, 563, 563, 563, 2890, 563, 2892, 563, 563, 563, 587, 1944, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1940, 587, 587, 1974, 587, 587, 587, 587, 1980, 587, 587, 587, 587, 587, 587, 587, 587, 1989, 2007, 2009, 587, 587, 587, 587, 587, 541, 587, 563, 541, 541, 541, 541, 563, 563, 563, 563, 587, 587, 587, 587, 2030, 0, 2032, 0, 0, 2079, 0, 0, 0, 2082, 0, 0, 0, 0, 0, 2088, 0, 0, 0, 0, 0, 0, 1141, 0, 1143, 0, 0, 365, 365, 0, 0, 0, 0, 0, 0, 1154, 0, 0, 0, 0, 0, 1160, 0, 1162, 0, 2104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2115, 0, 0, 0, 0, 0, 1192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 0, 0, 563, 563, 563, 563, 563, 563, 2250, 563, 563, 563, 563, 563, 563, 563, 1851, 563, 563, 563, 563, 1855, 563, 563, 563, 587, 587, 587, 587, 2349, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1985, 587, 587, 1988, 587, 2262, 541, 541, 541, 541, 563, 563, 563, 563, 587, 587, 587, 587, 0, 0, 0, 0, 0, 2732, 0, 2450, 0, 0, 0, 0, 0, 0, 0, 0, 2455, 0, 0, 2458, 0, 0, 0, 0, 0, 0, 2134016, 0, 0, 0, 0, 0, 0, 57344, 0, 0, 0, 0, 0, 0, 2748, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192972, 192972, 192972, 192972, 192972, 192972, 192972, 0, 0, 0, 0, 2462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 541, 541, 541, 2809, 541, 2473, 0, 0, 0, 0, 0, 0, 0, 2481, 0, 0, 0, 2483, 0, 0, 0, 0, 0, 0, 1170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2989, 0, 0, 0, 0, 0, 0, 2500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2510, 0, 0, 0, 0, 0, 0, 1186, 0, 0, 0, 1191, 0, 0, 0, 0, 1107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 758, 0, 0, 0, 0, 0, 0, 0, 2524, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2536, 541, 541, 2552, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 905, 541, 541, 2564, 541, 541, 541, 541, 541, 541, 2571, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1768, 541, 541, 541, 541, 541, 541, 541, 2578, 541, 541, 541, 2581, 541, 541, 541, 541, 541, 541, 541, 0, 0, 0, 0, 0, 0, 1203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 813, 0, 0, 0, 0, 0, 0, 0, 0, 563, 2588, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1903, 1904, 563, 563, 563, 2611, 563, 563, 563, 563, 563, 563, 2616, 563, 563, 563, 563, 563, 563, 563, 2622, 587, 587, 587, 587, 2702, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2710, 587, 587, 587, 2713, 587, 587, 587, 587, 587, 587, 587, 2718, 2719, 2720, 541, 541, 541, 541, 541, 2177, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2845, 541, 541, 541, 2758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2103, 0, 2773, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1120, 0, 0, 0, 2789, 0, 0, 0, 0, 2794, 0, 0, 0, 2796, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 316, 317, 317, 422, 423, 65536, 430, 541, 541, 541, 541, 2814, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1333, 541, 541, 541, 541, 541, 2848, 541, 541, 541, 541, 541, 541, 0, 0, 563, 563, 563, 2856, 563, 0, 587, 587, 1047, 587, 587, 78115, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 1159168, 365, 0, 0, 0, 0, 0, 0, 563, 563, 563, 563, 2861, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2294, 563, 563, 563, 563, 563, 563, 563, 563, 2897, 563, 563, 563, 563, 563, 563, 0, 0, 587, 587, 587, 587, 587, 587, 587, 2338, 587, 587, 587, 587, 587, 587, 587, 3122, 587, 587, 587, 587, 587, 587, 587, 587, 1036, 587, 587, 587, 587, 1054, 587, 587, 2905, 587, 587, 587, 587, 587, 2910, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1935, 587, 587, 587, 587, 1941, 587, 3006, 0, 0, 0, 0, 3010, 0, 0, 0, 0, 3015, 0, 0, 0, 0, 0, 0, 0, 2749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, 698, 0, 365, 365, 365, 0, 3191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2145, 3300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3180, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 163840, 0, 0, 0, 0, 65536, 0, 563, 563, 563, 3340, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2283, 563, 563, 563, 563, 563, 563, 3351, 563, 563, 563, 563, 563, 563, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3359, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1942, 3370, 587, 587, 587, 587, 587, 587, 541, 541, 563, 563, 587, 587, 0, 0, 0, 0, 3297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3394, 0, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 3211, 541, 541, 3486, 587, 587, 587, 587, 587, 587, 587, 587, 3495, 587, 3497, 3498, 587, 3500, 587, 0, 0, 0, 541, 587, 563, 541, 541, 541, 904, 541, 563, 563, 563, 977, 3502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 541, 541, 541, 854, 541, 541, 3612, 541, 3613, 541, 541, 541, 563, 563, 563, 563, 563, 563, 3619, 563, 0, 996, 1075, 1041, 587, 587, 78115, 1079, 0, 0, 1081, 1085, 0, 0, 1089, 3620, 563, 563, 563, 563, 587, 587, 587, 587, 587, 587, 3627, 587, 3628, 587, 587, 0, 3603, 0, 0, 0, 0, 0, 0, 0, 0, 541, 541, 3610, 541, 563, 563, 587, 587, 587, 587, 0, 0, 541, 541, 563, 563, 587, 587, 3683, 3684, 3685, 3686, 0, 541, 563, 587, 0, 541, 563, 587, 0, 541, 563, 587, 0, 0, 0, 0, 0, 0, 0, 0, 3180, 0, 0, 0, 0, 0, 0, 0, 550, 597, 573, 573, 573, 573, 573, 573, 573, 597, 597, 597, 550, 597, 597, 597, 597, 597, 597, 597, 597, 573, 573, 550, 573, 597, 573, 597, 1, 0, 0, 0, 737, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1237, 0, 0, 0, 0, 0, 2041, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1194, 1196, 0, 403, 0, 0, 0, 0, 381, 0, 69632, 73728, 0, 0, 0, 0, 426, 65536, 0, 0, 0, 0, 0, 1202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2444, 2445, 0, 0, 2448, 426, 426, 0, 0, 426, 0, 446, 426, 426, 469, 469, 469, 476, 469, 469, 469, 469, 469, 469, 469, 469, 469, 476, 469, 469, 469, 469, 469, 469, 469, 469, 483, 469, 495, 495, 469, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 538, 551, 574, 551, 574, 551, 551, 574, 551, 598, 574, 574, 574, 574, 574, 574, 574, 598, 598, 598, 551, 598, 598, 598, 598, 598, 598, 598, 598, 574, 574, 551, 574, 598, 574, 598, 1, 0, 0, 0, 0, 660, 661, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3001, 0, 0, 0, 0, 0, 0, 0, 0, 661, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 661, 0, 0, 0, 0, 0, 827, 0, 0, 0, 661, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 729, 0, 742, 661, 0, 0, 0, 0, 0, 541, 844, 541, 541, 541, 541, 541, 2191, 541, 541, 541, 541, 541, 541, 2197, 541, 2199, 541, 541, 859, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 897, 541, 541, 541, 541, 541, 541, 2817, 541, 2819, 541, 541, 541, 541, 541, 541, 541, 541, 2572, 541, 541, 541, 541, 541, 541, 541, 541, 1349, 541, 541, 541, 541, 541, 541, 541, 541, 1752, 541, 541, 541, 541, 541, 541, 541, 541, 1767, 541, 541, 541, 541, 541, 541, 541, 541, 1782, 541, 541, 541, 541, 541, 541, 541, 541, 1815, 1817, 541, 541, 541, 541, 541, 1360, 563, 563, 563, 970, 563, 563, 563, 563, 563, 0, 587, 587, 990, 587, 587, 587, 587, 587, 1526, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1953, 587, 587, 587, 587, 587, 1006, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1044, 587, 587, 587, 587, 587, 587, 3285, 587, 587, 587, 587, 587, 587, 541, 587, 563, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1101, 1102, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 167936, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 1229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1247, 0, 0, 0, 0, 0, 0, 0, 1102, 0, 0, 0, 0, 1260, 1261, 0, 0, 1101, 0, 0, 0, 0, 0, 0, 2134756, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1116, 0, 0, 0, 0, 0, 541, 1306, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 0, 2241, 1360, 914, 563, 1363, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1377, 1384, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1398, 563, 563, 563, 563, 563, 563, 3079, 563, 563, 563, 563, 563, 563, 563, 563, 563, 0, 587, 587, 989, 587, 587, 587, 1418, 563, 563, 563, 563, 563, 563, 563, 1431, 563, 563, 563, 563, 563, 563, 563, 1897, 563, 563, 563, 563, 563, 563, 563, 563, 1395, 563, 563, 563, 563, 563, 563, 563, 587, 587, 1523, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1537, 587, 0, 0, 0, 541, 587, 563, 541, 541, 541, 1067, 911, 563, 563, 563, 1072, 563, 587, 587, 1523, 587, 587, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2781, 0, 0, 0, 0, 0, 541, 541, 541, 1746, 1747, 541, 541, 541, 541, 1754, 541, 541, 541, 541, 541, 541, 541, 1290, 541, 1295, 541, 541, 1299, 541, 541, 1302, 541, 541, 541, 541, 1795, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1335, 541, 541, 541, 1825, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1841, 1842, 563, 563, 563, 563, 1849, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3347, 563, 563, 563, 563, 3348, 1890, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2649, 587, 1945, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2372, 587, 587, 1959, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2384, 2385, 587, 587, 587, 587, 2012, 587, 587, 541, 587, 563, 541, 541, 541, 541, 563, 563, 587, 587, 2961, 0, 0, 2964, 2965, 0, 0, 0, 0, 0, 0, 0, 2505, 0, 0, 0, 0, 0, 0, 0, 0, 0, 387, 0, 0, 0, 0, 0, 387, 0, 0, 0, 2054, 0, 2055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2064, 541, 541, 541, 541, 2216, 541, 541, 541, 541, 541, 541, 2221, 541, 541, 541, 541, 541, 541, 1285, 1292, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1800, 541, 541, 541, 1805, 541, 541, 541, 2226, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 0, 0, 563, 563, 563, 563, 563, 563, 563, 563, 2302, 563, 563, 563, 563, 563, 563, 2307, 563, 563, 563, 563, 563, 563, 3080, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1883, 563, 563, 563, 563, 563, 563, 563, 2313, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 0, 0, 587, 587, 587, 587, 587, 587, 2389, 587, 587, 587, 587, 587, 587, 2394, 587, 587, 587, 587, 587, 587, 2377, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1952, 587, 587, 587, 587, 1956, 587, 587, 2400, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 541, 587, 0, 0, 0, 541, 587, 563, 541, 541, 895, 541, 541, 563, 563, 968, 563, 0, 587, 587, 587, 587, 587, 78115, 1079, 0, 0, 1082, 1086, 0, 0, 1090, 0, 2437, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1178, 0, 587, 2671, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2931, 587, 0, 0, 0, 2736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1588, 1589, 0, 0, 2787, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2797, 0, 0, 0, 0, 0, 0, 1204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1631, 0, 0, 0, 0, 0, 541, 541, 541, 2813, 541, 541, 541, 541, 541, 541, 2821, 541, 541, 541, 541, 541, 541, 541, 2555, 541, 541, 541, 541, 541, 541, 541, 2562, 563, 563, 563, 2860, 563, 563, 563, 563, 563, 563, 2868, 563, 563, 563, 563, 563, 563, 3094, 563, 563, 3096, 563, 563, 563, 563, 563, 563, 1880, 1881, 1882, 563, 563, 1885, 1886, 563, 563, 563, 0, 0, 3008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1197, 0, 0, 541, 541, 3227, 541, 541, 541, 541, 541, 541, 563, 563, 563, 563, 563, 563, 563, 3073, 563, 563, 563, 3571, 541, 3573, 541, 541, 541, 563, 563, 563, 563, 563, 563, 563, 3583, 563, 3585, 0, 0, 0, 0, 541, 3659, 541, 541, 541, 541, 563, 3663, 563, 563, 563, 563, 563, 1878, 563, 563, 563, 563, 1884, 563, 563, 563, 563, 563, 563, 2864, 563, 2866, 563, 563, 563, 563, 563, 563, 563, 3354, 563, 563, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1057, 587, 3667, 587, 587, 587, 587, 0, 0, 0, 0, 541, 541, 541, 541, 563, 563, 915, 563, 563, 563, 563, 563, 563, 946, 563, 563, 563, 563, 563, 1427, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3535, 563, 563, 563, 563, 563, 563, 587, 587, 587, 587, 3112, 587, 587, 587, 587, 3116, 470, 470, 470, 470, 454, 454, 470, 454, 454, 454, 454, 454, 454, 454, 454, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 552, 575, 552, 575, 552, 552, 575, 552, 599, 575, 575, 575, 575, 575, 575, 575, 599, 599, 599, 552, 599, 599, 599, 599, 599, 599, 599, 599, 575, 575, 552, 575, 599, 575, 599, 1, 541, 860, 541, 541, 874, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1770, 541, 541, 541, 1007, 587, 587, 1021, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1971, 587, 587, 587, 0, 1123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1184, 1184, 1251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2156, 0, 0, 0, 1268, 0, 0, 0, 0, 0, 0, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1360, 541, 541, 541, 1323, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2534, 541, 541, 541, 1341, 541, 541, 541, 541, 541, 1348, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2234, 541, 541, 541, 541, 0, 0, 1440, 563, 563, 563, 563, 563, 563, 563, 563, 26028, 1360, 988, 587, 587, 587, 587, 587, 587, 3365, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2936, 587, 587, 587, 2939, 587, 2941, 587, 587, 587, 587, 587, 1525, 587, 587, 587, 587, 587, 1532, 587, 587, 587, 587, 587, 587, 2392, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1472, 587, 587, 587, 587, 1482, 587, 563, 587, 587, 587, 1557, 587, 1079, 0, 1561, 0, 0, 0, 1567, 0, 0, 0, 0, 0, 0, 1218, 1219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1235, 0, 0, 0, 0, 0, 0, 1573, 0, 0, 0, 1579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 662, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 541, 541, 541, 1779, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2548, 541, 541, 563, 1843, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1854, 563, 563, 563, 563, 563, 1879, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3344, 563, 563, 563, 563, 563, 563, 563, 563, 1865, 563, 563, 563, 563, 563, 563, 563, 2065, 2066, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1210, 0, 2117, 0, 0, 2120, 2121, 0, 0, 0, 0, 0, 2127, 0, 0, 0, 0, 0, 0, 0, 2765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 550, 573, 550, 573, 550, 550, 573, 541, 2213, 541, 541, 541, 541, 2218, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2182, 541, 541, 541, 541, 541, 2299, 563, 563, 563, 563, 2304, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1917, 563, 26028, 0, 587, 587, 587, 2386, 587, 587, 587, 587, 2391, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2001, 587, 587, 587, 587, 587, 2006, 541, 541, 541, 3037, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2846, 541, 541, 563, 563, 3077, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1887, 1888, 563, 587, 587, 587, 3119, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1986, 587, 587, 587, 563, 563, 3247, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2296, 563, 563, 587, 0, 0, 0, 3445, 0, 0, 0, 0, 3180, 0, 0, 0, 0, 0, 0, 0, 1242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 380, 0, 0, 0, 0, 0, 0, 0, 0, 541, 541, 541, 541, 3460, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2207, 541, 541, 541, 541, 541, 563, 587, 587, 587, 587, 3491, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2354, 587, 587, 587, 587, 587, 587, 563, 563, 563, 563, 3623, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2395, 587, 587, 587, 587, 587, 3631, 0, 0, 0, 0, 0, 0, 541, 541, 541, 541, 541, 541, 541, 563, 563, 920, 563, 563, 563, 563, 563, 563, 949, 951, 563, 563, 563, 563, 563, 3421, 563, 563, 563, 3425, 563, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3501, 388, 390, 340, 0, 0, 0, 0, 0, 0, 339, 0, 0, 340, 0, 0, 0, 0, 0, 0, 1598, 0, 0, 0, 0, 0, 0, 0, 0, 1604, 0, 0, 0, 387, 0, 0, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 0, 1217, 0, 0, 0, 0, 0, 0, 0, 1224, 0, 0, 0, 0, 0, 347, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3316, 0, 0, 0, 0, 0, 0, 435, 339, 0, 0, 447, 0, 0, 471, 471, 471, 471, 471, 471, 471, 471, 471, 553, 576, 553, 576, 553, 553, 576, 471, 482, 471, 471, 471, 500, 477, 500, 500, 500, 500, 500, 500, 500, 500, 471, 471, 477, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 481, 481, 471, 482, 471, 471, 553, 600, 576, 576, 576, 576, 576, 576, 576, 600, 600, 600, 553, 600, 600, 600, 600, 600, 600, 600, 600, 576, 576, 553, 576, 600, 576, 600, 1, 0, 0, 750, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1603, 0, 0, 0, 0, 0, 0, 663, 0, 788, 0, 0, 0, 0, 0, 0, 0, 792, 0, 0, 0, 0, 0, 1231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2153, 0, 0, 0, 0, 0, 0, 0, 801, 0, 0, 0, 0, 0, 809, 0, 0, 0, 0, 706, 0, 0, 0, 0, 0, 0, 0, 0, 715, 0, 717, 0, 828, 0, 0, 0, 663, 831, 0, 788, 0, 0, 0, 0, 0, 837, 0, 0, 0, 0, 0, 1597, 0, 0, 0, 577536, 0, 0, 1602, 0, 0, 0, 0, 0, 0, 1257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2508, 0, 0, 0, 0, 0, 541, 861, 541, 541, 875, 541, 541, 541, 541, 888, 541, 541, 541, 541, 906, 541, 541, 541, 541, 541, 3519, 541, 541, 541, 541, 541, 541, 541, 541, 563, 563, 563, 923, 563, 929, 563, 563, 942, 563, 563, 953, 563, 958, 961, 563, 563, 563, 563, 979, 563, 563, 563, 0, 587, 587, 991, 587, 587, 587, 587, 587, 1962, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3287, 587, 587, 587, 541, 587, 563, 1008, 587, 587, 1022, 587, 587, 587, 587, 1035, 587, 587, 587, 587, 1053, 587, 587, 587, 587, 587, 2945, 587, 587, 2948, 587, 587, 2951, 587, 2952, 2953, 2954, 0, 0, 0, 0, 1216, 0, 0, 0, 0, 1221, 0, 0, 0, 0, 0, 0, 0, 1258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 299, 0, 0, 0, 0, 0, 0, 1144, 0, 0, 1256, 0, 0, 0, 0, 0, 0, 0, 0, 1235, 0, 0, 0, 0, 0, 0, 2891776, 0, 0, 0, 0, 0, 2392064, 2412544, 0, 0, 0, 0, 0, 0, 2123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2727936, 0, 0, 0, 3084288, 0, 0, 0, 1267, 0, 0, 0, 0, 0, 0, 0, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1741, 541, 541, 541, 1309, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 3045, 541, 3047, 563, 587, 587, 1556, 587, 587, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3000, 0, 0, 0, 0, 0, 1621, 0, 0, 1624, 0, 1626, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3198, 3199, 0, 0, 0, 0, 0, 0, 0, 1722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 683, 684, 685, 0, 0, 541, 541, 541, 541, 1780, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1820, 541, 541, 1360, 0, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1836, 563, 563, 563, 563, 563, 2263, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1433, 563, 563, 563, 563, 563, 1875, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2872, 1943, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2359, 0, 0, 2135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1618, 0, 0, 2146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2484, 0, 0, 0, 0, 541, 541, 541, 2163, 2164, 541, 541, 541, 541, 541, 541, 541, 541, 2180, 541, 541, 541, 541, 2185, 541, 541, 541, 541, 541, 2228, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 0, 0, 563, 563, 563, 563, 2857, 0, 0, 563, 563, 563, 2247, 563, 2249, 563, 563, 563, 563, 563, 563, 563, 563, 2320, 563, 563, 563, 563, 563, 0, 0, 563, 563, 563, 2315, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 0, 0, 988, 587, 587, 587, 587, 0, 0, 587, 587, 587, 2334, 587, 2336, 587, 587, 587, 587, 587, 587, 587, 587, 1965, 1966, 1968, 587, 587, 587, 587, 587, 587, 587, 587, 2402, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 541, 587, 0, 0, 0, 541, 587, 563, 541, 541, 897, 541, 541, 563, 563, 970, 563, 0, 997, 587, 1076, 1048, 587, 78115, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 458, 1147355, 1147355, 1147355, 1147355, 1147355, 1147355, 1147355, 1147355, 1147355, 1147355, 1147355, 1147355, 1147355, 1147355, 1147355, 1147355, 0, 0, 2438, 0, 0, 0, 0, 0, 0, 2443, 0, 0, 0, 2446, 2447, 0, 0, 0, 0, 0, 1610, 0, 0, 1613, 0, 0, 0, 0, 0, 0, 0, 0, 1584, 0, 0, 0, 0, 0, 0, 0, 0, 1683, 0, 0, 0, 0, 0, 0, 0, 0, 334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1134, 0, 0, 0, 0, 2487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2498, 0, 0, 0, 2515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2523, 0, 541, 541, 541, 541, 541, 3576, 563, 563, 563, 3580, 563, 563, 563, 563, 563, 563, 2290, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1899, 563, 563, 563, 563, 563, 1906, 2537, 2538, 541, 541, 541, 541, 541, 2543, 541, 2545, 541, 541, 541, 541, 2549, 541, 541, 541, 541, 541, 3614, 3615, 541, 563, 563, 563, 563, 563, 563, 563, 563, 3424, 563, 563, 587, 587, 587, 587, 587, 563, 563, 2598, 563, 563, 2601, 2602, 563, 563, 563, 563, 563, 2607, 563, 2609, 563, 0, 999, 1039, 587, 1050, 587, 78115, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 3184, 0, 0, 0, 0, 0, 0, 0, 0, 2750, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2732032, 0, 0, 0, 0, 0, 0, 563, 563, 563, 2613, 563, 563, 563, 563, 563, 563, 563, 563, 2619, 563, 563, 563, 563, 563, 3624, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1967, 587, 587, 587, 1972, 587, 587, 563, 2639, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1402, 563, 587, 587, 587, 2673, 587, 2675, 587, 587, 587, 587, 2679, 587, 587, 587, 587, 587, 587, 2676, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1469, 1476, 587, 587, 587, 587, 587, 587, 587, 587, 2685, 587, 587, 587, 587, 587, 587, 587, 587, 2693, 587, 587, 587, 587, 587, 1979, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2926, 2927, 587, 587, 587, 587, 2930, 587, 587, 587, 587, 587, 2701, 587, 587, 587, 587, 2705, 587, 587, 587, 587, 587, 587, 587, 2378, 2379, 587, 587, 587, 587, 587, 587, 587, 2406, 587, 587, 2409, 2410, 587, 587, 2176, 2348, 0, 2745, 0, 0, 0, 0, 0, 0, 0, 2751, 2752, 2753, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 172032, 0, 0, 0, 0, 65536, 0, 2772, 0, 2774, 0, 0, 0, 0, 2778, 0, 0, 0, 0, 2783, 0, 0, 2786, 541, 541, 2828, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1771, 541, 541, 541, 541, 541, 2838, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 3337, 563, 563, 541, 2847, 541, 541, 2850, 541, 541, 2853, 541, 0, 0, 2854, 563, 563, 563, 563, 563, 2277, 563, 563, 2280, 563, 563, 563, 563, 563, 563, 563, 3081, 563, 563, 563, 563, 563, 563, 563, 563, 3355, 563, 587, 587, 587, 587, 587, 587, 563, 563, 2875, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2324, 0, 0, 563, 563, 563, 563, 2886, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2606, 563, 2608, 563, 563, 563, 563, 563, 2896, 563, 563, 2899, 563, 563, 2902, 563, 0, 0, 2903, 587, 587, 587, 587, 587, 3284, 587, 587, 587, 587, 587, 587, 587, 541, 587, 563, 541, 541, 563, 563, 587, 587, 587, 2921, 587, 587, 2924, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2666, 587, 587, 587, 587, 0, 0, 0, 0, 0, 2972, 2973, 0, 0, 0, 0, 2978, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 221184, 0, 0, 0, 0, 65536, 0, 3021, 0, 0, 3023, 0, 0, 541, 541, 3028, 541, 541, 541, 541, 541, 541, 541, 541, 2205, 2206, 541, 541, 541, 541, 541, 541, 0, 0, 3160, 0, 3162, 0, 0, 0, 3166, 0, 0, 0, 0, 0, 0, 0, 0, 2518, 0, 0, 0, 0, 0, 0, 541, 541, 541, 541, 3030, 541, 541, 541, 541, 3034, 3234, 3235, 563, 563, 563, 563, 3239, 3240, 563, 563, 563, 563, 563, 3244, 563, 563, 563, 563, 1445, 563, 563, 563, 563, 26028, 1360, 988, 587, 1455, 587, 587, 0, 3632, 0, 0, 0, 0, 541, 541, 541, 541, 541, 3641, 541, 563, 563, 563, 563, 587, 587, 587, 587, 587, 587, 587, 3263, 3264, 587, 587, 587, 587, 587, 587, 3435, 587, 587, 587, 587, 587, 587, 587, 541, 563, 3268, 3269, 587, 587, 587, 587, 587, 3273, 587, 587, 587, 587, 587, 587, 587, 587, 2393, 587, 587, 587, 587, 587, 587, 587, 3279, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 541, 587, 563, 2721, 541, 0, 0, 0, 3312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1633, 0, 0, 0, 541, 3404, 541, 541, 541, 541, 541, 541, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3419, 563, 563, 563, 563, 563, 563, 563, 587, 587, 587, 587, 587, 3113, 587, 587, 587, 587, 587, 0, 3443, 0, 0, 3446, 0, 0, 0, 3180, 0, 0, 0, 0, 0, 0, 0, 1583, 0, 1585, 0, 0, 0, 0, 0, 0, 0, 1106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 756, 0, 0, 0, 0, 0, 0, 0, 0, 541, 541, 3458, 541, 541, 541, 541, 3463, 541, 541, 541, 541, 3468, 541, 541, 541, 541, 872, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1316, 541, 541, 541, 563, 587, 587, 3489, 587, 587, 587, 587, 3494, 587, 587, 587, 587, 3499, 587, 587, 587, 587, 587, 3364, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2664, 587, 587, 2667, 2668, 587, 587, 563, 563, 3645, 3646, 563, 563, 563, 587, 587, 587, 3651, 3652, 587, 587, 587, 0, 541, 587, 563, 541, 541, 541, 541, 541, 563, 563, 563, 563, 587, 587, 587, 587, 0, 0, 0, 2730, 0, 0, 563, 587, 0, 541, 563, 587, 3691, 3692, 3693, 3694, 0, 541, 563, 587, 0, 0, 0, 0, 0, 0, 0, 0, 3180, 0, 0, 0, 0, 0, 3453, 342, 343, 344, 345, 346, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 713, 0, 0, 0, 0, 0, 0, 0, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1674, 0, 0, 0, 345, 345, 0, 346, 345, 0, 344, 345, 455, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 487, 496, 496, 504, 496, 506, 496, 496, 506, 506, 496, 506, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 554, 577, 554, 577, 554, 554, 577, 554, 601, 577, 577, 577, 577, 577, 577, 577, 601, 601, 601, 554, 601, 601, 601, 601, 601, 601, 601, 601, 577, 577, 554, 577, 601, 577, 601, 1, 656, 657, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1590, 1591, 672, 673, 0, 675, 676, 0, 0, 0, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 2804, 0, 0, 0, 541, 2808, 541, 541, 541, 0, 0, 0, 0, 692, 0, 0, 0, 0, 0, 0, 699, 365, 365, 365, 0, 0, 0, 0, 0, 1658, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3180, 0, 0, 0, 3308, 0, 719, 0, 721, 0, 723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 733, 0, 0, 0, 0, 646, 752, 753, 754, 0, 0, 0, 0, 0, 760, 761, 0, 0, 0, 0, 0, 1680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3180, 0, 3306, 0, 0, 763, 764, 675, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 779, 780, 0, 0, 0, 0, 0, 1696, 1697, 1698, 1699, 0, 0, 0, 0, 0, 0, 0, 0, 755, 0, 0, 0, 0, 0, 0, 0, 0, 772, 0, 0, 0, 0, 0, 0, 0, 0, 782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1601, 0, 0, 761, 0, 0, 787, 0, 0, 0, 0, 0, 0, 0, 0, 0, 794, 675, 723, 0, 692, 811, 0, 0, 0, 0, 761, 0, 0, 0, 0, 0, 0, 0, 1591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1662, 0, 0, 0, 0, 0, 0, 0, 0, 754, 820, 821, 0, 0, 0, 0, 0, 0, 754, 0, 0, 825, 699, 0, 0, 0, 830, 0, 0, 0, 832, 0, 0, 0, 692, 699, 0, 0, 692, 830, 830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 692, 541, 541, 851, 855, 858, 541, 866, 541, 541, 541, 881, 883, 886, 541, 541, 541, 898, 902, 541, 541, 541, 541, 541, 2541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 3044, 541, 541, 541, 563, 563, 563, 971, 975, 563, 563, 563, 563, 0, 587, 587, 587, 998, 1002, 1005, 587, 1013, 587, 587, 587, 1028, 1030, 1033, 587, 587, 587, 1045, 1049, 587, 587, 587, 587, 587, 1995, 587, 587, 587, 587, 587, 2002, 587, 587, 587, 587, 587, 587, 2946, 587, 587, 587, 587, 587, 587, 541, 587, 563, 1073, 0, 998, 587, 1045, 1049, 1078, 78115, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 2779, 0, 0, 0, 0, 0, 0, 0, 0, 303, 303, 303, 303, 0, 303, 303, 303, 0, 0, 0, 0, 1168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 729, 0, 0, 0, 0, 0, 0, 1199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1209, 0, 0, 0, 0, 0, 0, 2912256, 0, 3207168, 2465792, 0, 0, 2719744, 0, 0, 0, 0, 0, 0, 541, 541, 541, 3397, 541, 541, 541, 541, 3401, 541, 0, 0, 1214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1634, 0, 0, 0, 0, 1254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1665, 0, 0, 1321, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1331, 541, 541, 1338, 541, 541, 541, 541, 873, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1332, 541, 541, 541, 563, 563, 1443, 563, 563, 563, 563, 563, 563, 26028, 1360, 988, 587, 587, 587, 587, 587, 587, 3548, 587, 3550, 587, 587, 3552, 587, 587, 0, 0, 0, 0, 0, 0, 541, 541, 541, 3639, 3640, 541, 541, 563, 1501, 587, 587, 1505, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1515, 587, 0, 0, 0, 541, 587, 563, 541, 541, 899, 541, 541, 563, 563, 972, 563, 0, 1074, 587, 587, 1052, 587, 78115, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 2445312, 0, 2842624, 0, 0, 0, 2637824, 0, 587, 1522, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1535, 587, 587, 587, 587, 587, 2013, 587, 541, 587, 563, 541, 541, 541, 541, 563, 563, 563, 563, 587, 587, 587, 587, 0, 0, 0, 0, 0, 0, 1666, 0, 1668, 0, 0, 0, 1670, 0, 748, 0, 0, 0, 0, 0, 0, 0, 0, 3174, 0, 0, 0, 0, 0, 0, 0, 0, 791, 0, 0, 0, 0, 0, 0, 0, 0, 833, 0, 0, 0, 0, 0, 0, 808, 0, 0, 1693, 0, 0, 0, 0, 0, 0, 1700, 0, 0, 0, 0, 0, 0, 0, 1660, 1661, 0, 0, 0, 0, 0, 0, 0, 0, 710, 0, 0, 0, 0, 0, 0, 0, 0, 726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 274432, 274432, 274432, 0, 274432, 274432, 274432, 541, 541, 1762, 541, 541, 541, 541, 541, 541, 541, 541, 1769, 541, 541, 541, 1773, 541, 541, 1778, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1788, 541, 541, 0, 563, 1828, 563, 563, 563, 563, 563, 563, 563, 1835, 563, 563, 563, 563, 563, 563, 3250, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2321, 563, 563, 563, 563, 0, 0, 563, 1908, 563, 563, 563, 563, 563, 563, 563, 563, 563, 26028, 0, 587, 1924, 587, 0, 0, 0, 541, 587, 563, 541, 541, 900, 541, 541, 563, 563, 973, 563, 563, 563, 563, 2262, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1434, 563, 563, 563, 563, 587, 587, 587, 1960, 587, 587, 587, 1964, 587, 587, 1969, 587, 587, 587, 587, 587, 587, 2688, 587, 587, 587, 587, 587, 587, 2695, 587, 587, 563, 563, 587, 587, 587, 587, 0, 0, 0, 2031, 0, 1082, 0, 0, 0, 2033, 0, 1086, 0, 0, 0, 2035, 0, 1090, 0, 0, 0, 2037, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1620, 2587, 0, 1825, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2610, 2650, 563, 563, 563, 0, 0, 0, 2653, 0, 1921, 587, 587, 587, 587, 587, 587, 587, 3549, 587, 587, 587, 587, 587, 587, 0, 0, 3672, 0, 541, 541, 541, 541, 563, 563, 0, 0, 2969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2102, 0, 0, 0, 0, 0, 3161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1703, 0, 0, 0, 0, 0, 3319, 541, 541, 541, 541, 541, 541, 541, 3324, 541, 541, 541, 541, 541, 541, 541, 2832, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2573, 541, 541, 541, 541, 541, 541, 587, 587, 3361, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2709, 587, 587, 3379, 0, 0, 3382, 0, 0, 0, 0, 3180, 3387, 0, 0, 0, 0, 0, 0, 0, 1682, 0, 1684, 0, 0, 0, 0, 0, 0, 0, 1114, 0, 0, 0, 0, 1118, 0, 0, 1121, 541, 541, 541, 541, 3407, 541, 541, 541, 563, 563, 563, 3412, 563, 563, 563, 563, 563, 2289, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2605, 563, 563, 563, 563, 563, 3416, 563, 563, 563, 563, 563, 3422, 563, 563, 563, 563, 587, 587, 587, 3428, 587, 0, 0, 0, 541, 587, 563, 850, 541, 1066, 901, 541, 923, 563, 1071, 974, 587, 587, 587, 3432, 587, 587, 587, 587, 587, 3438, 587, 587, 587, 587, 541, 563, 563, 563, 563, 2276, 563, 563, 563, 563, 563, 563, 2282, 563, 2284, 563, 2287, 563, 587, 587, 587, 587, 587, 3492, 587, 587, 587, 3496, 587, 587, 587, 587, 587, 587, 2704, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1470, 587, 587, 587, 587, 587, 587, 0, 0, 3657, 0, 541, 541, 541, 541, 541, 541, 563, 563, 563, 563, 563, 563, 936, 563, 563, 563, 563, 563, 563, 563, 563, 587, 3687, 3688, 3689, 3690, 0, 541, 563, 587, 0, 541, 563, 587, 0, 0, 0, 0, 0, 0, 0, 0, 3180, 0, 0, 3450, 3451, 0, 0, 389, 0, 0, 0, 393, 389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122880, 0, 0, 0, 0, 0, 0, 0, 405, 0, 347, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 0, 1709, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 399, 0, 0, 0, 0, 0, 0, 0, 436, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 522, 522, 522, 522, 522, 0, 0, 0, 0, 0, 0, 0, 0, 0, 522, 522, 522, 522, 522, 522, 522, 522, 522, 555, 578, 555, 578, 555, 555, 578, 555, 602, 578, 578, 578, 578, 578, 578, 578, 602, 602, 602, 555, 602, 602, 602, 602, 602, 602, 602, 602, 578, 578, 617, 622, 602, 622, 628, 1, 0, 0, 0, 751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2061, 0, 0, 0, 962, 563, 563, 563, 563, 980, 563, 563, 563, 0, 587, 587, 992, 587, 587, 587, 587, 587, 2350, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1936, 587, 587, 587, 587, 587, 1107, 0, 0, 0, 0, 1112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 1360, 914, 563, 563, 563, 1366, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1380, 563, 563, 1404, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2620, 563, 563, 563, 1441, 563, 563, 563, 563, 563, 563, 563, 26028, 1360, 988, 587, 587, 587, 1458, 563, 587, 587, 587, 587, 587, 1079, 0, 1562, 0, 0, 0, 1568, 0, 0, 0, 0, 0, 0, 1627, 1628, 1629, 0, 0, 0, 0, 0, 0, 0, 0, 343, 0, 0, 0, 0, 0, 0, 0, 0, 403, 0, 0, 0, 0, 0, 0, 0, 0, 407, 407, 407, 407, 0, 407, 407, 407, 1574, 0, 0, 0, 1580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 808, 541, 541, 852, 541, 1605, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1619, 0, 0, 0, 0, 0, 1723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2625536, 0, 2699264, 2715648, 0, 1973, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2373, 563, 563, 587, 587, 587, 587, 0, 0, 1563, 0, 0, 0, 0, 0, 1569, 0, 1575, 0, 1581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1262, 0, 0, 0, 0, 0, 0, 0, 0, 1575, 0, 0, 0, 0, 0, 1581, 0, 0, 0, 0, 0, 0, 0, 2974, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 0, 253952, 0, 0, 0, 0, 541, 541, 541, 2190, 541, 541, 541, 541, 2194, 541, 2196, 541, 541, 541, 541, 541, 541, 541, 3039, 541, 541, 541, 541, 541, 541, 541, 541, 541, 887, 541, 541, 541, 541, 541, 541, 563, 563, 2275, 563, 563, 563, 563, 2279, 563, 2281, 563, 563, 563, 563, 563, 563, 1896, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1397, 1399, 563, 563, 563, 563, 563, 587, 587, 2362, 587, 587, 587, 587, 2366, 587, 2368, 587, 587, 587, 587, 587, 587, 1465, 587, 587, 587, 587, 587, 587, 1480, 587, 587, 0, 0, 0, 0, 0, 2489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196608, 0, 0, 0, 0, 563, 563, 2625, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2648, 563, 563, 0, 0, 0, 0, 3024, 0, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1330, 541, 541, 541, 541, 0, 3380, 0, 0, 0, 0, 0, 0, 3180, 0, 0, 0, 0, 3391, 0, 0, 0, 0, 0, 328, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 3393, 0, 0, 0, 0, 0, 541, 3396, 541, 541, 3398, 541, 541, 541, 541, 541, 541, 541, 3040, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1783, 541, 541, 541, 541, 1789, 541, 0, 3455, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 563, 563, 563, 541, 862, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1319, 541, 541, 912, 563, 563, 563, 563, 563, 563, 935, 563, 563, 563, 563, 563, 563, 563, 2291, 2292, 563, 563, 563, 563, 563, 563, 563, 2319, 563, 563, 2322, 2323, 563, 563, 0, 0, 1009, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2697, 1059, 0, 0, 0, 541, 587, 563, 541, 541, 541, 541, 541, 563, 563, 563, 563, 563, 2614, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3649, 587, 587, 587, 587, 587, 587, 587, 0, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2513, 0, 0, 1623, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2130, 0, 2132, 1826, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3258, 541, 3215, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1337, 541, 587, 587, 587, 3271, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2370, 587, 587, 587, 0, 0, 0, 0, 348, 348, 350, 348, 348, 348, 348, 348, 348, 513, 348, 348, 0, 350, 348, 0, 0, 348, 348, 0, 0, 0, 0, 349, 0, 0, 0, 0, 0, 329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2509, 0, 0, 0, 0, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 556, 579, 556, 579, 556, 556, 579, 556, 603, 579, 579, 579, 579, 579, 579, 579, 603, 603, 603, 556, 603, 603, 603, 603, 603, 603, 603, 603, 579, 579, 556, 579, 603, 579, 603, 1, 0, 0, 0, 0, 722, 0, 724, 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 836, 541, 541, 541, 541, 0, 0, 0, 766, 0, 0, 0, 771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1189, 0, 0, 0, 0, 0, 0, 541, 541, 541, 870, 541, 541, 541, 541, 541, 890, 892, 541, 541, 903, 541, 541, 541, 541, 541, 2569, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2835, 541, 541, 541, 963, 965, 563, 563, 976, 563, 563, 563, 563, 0, 587, 587, 993, 999, 587, 587, 587, 587, 587, 3374, 587, 541, 541, 563, 563, 587, 587, 0, 0, 0, 0, 0, 0, 3299, 0, 0, 0, 587, 587, 1017, 587, 587, 587, 587, 587, 1037, 1039, 587, 587, 1050, 587, 587, 587, 587, 587, 2364, 587, 587, 2367, 587, 587, 587, 587, 587, 587, 587, 2677, 587, 587, 587, 587, 587, 587, 2682, 587, 0, 0, 0, 1151, 0, 1153, 0, 1155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1231, 541, 541, 541, 541, 541, 541, 0, 1181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1636, 0, 0, 1198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1675, 0, 0, 1266, 0, 0, 0, 0, 0, 0, 0, 1181, 541, 541, 541, 541, 541, 541, 541, 1326, 541, 541, 541, 541, 541, 541, 541, 1339, 1305, 1307, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1358, 541, 541, 541, 1343, 541, 541, 541, 541, 541, 541, 541, 541, 1354, 1355, 541, 541, 541, 541, 541, 541, 2840, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 3056, 541, 3058, 541, 541, 541, 1360, 914, 563, 563, 563, 563, 1367, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3242, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1421, 563, 563, 563, 563, 563, 563, 563, 1435, 563, 563, 563, 563, 563, 2627, 563, 563, 563, 563, 563, 563, 2635, 563, 563, 563, 1459, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2942, 587, 587, 587, 1489, 1491, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2707, 2708, 587, 587, 587, 1554, 587, 1555, 587, 587, 1558, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 306, 204800, 204800, 0, 205106, 204800, 1, 0, 1677, 0, 0, 1679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1159, 0, 0, 0, 0, 541, 541, 541, 541, 1763, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2208, 541, 541, 541, 0, 563, 563, 563, 563, 563, 563, 563, 1833, 563, 563, 563, 563, 563, 563, 563, 2879, 563, 563, 563, 563, 563, 563, 563, 563, 2644, 563, 563, 563, 2647, 563, 563, 563, 1858, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1857, 563, 563, 563, 1909, 563, 563, 563, 563, 1915, 563, 563, 563, 26028, 0, 587, 587, 587, 587, 587, 2376, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2717, 541, 587, 563, 541, 541, 587, 587, 587, 587, 1929, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2938, 587, 587, 587, 587, 587, 1991, 587, 587, 587, 1996, 587, 587, 587, 587, 587, 587, 587, 587, 2005, 587, 0, 0, 0, 541, 587, 563, 852, 892, 541, 903, 541, 925, 965, 563, 976, 587, 587, 587, 2011, 587, 587, 587, 541, 587, 563, 541, 541, 541, 541, 563, 563, 916, 563, 563, 563, 932, 563, 563, 563, 563, 563, 563, 563, 1864, 563, 563, 563, 1868, 563, 563, 1873, 563, 2077, 0, 0, 0, 0, 0, 0, 0, 0, 2085, 0, 0, 0, 0, 0, 2089, 0, 0, 2091, 0, 0, 0, 0, 0, 0, 0, 2099, 0, 0, 0, 0, 0, 0, 0, 3012, 3013, 0, 0, 0, 0, 3018, 0, 0, 2133, 2134, 0, 2136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2144, 0, 0, 2149, 2150, 0, 0, 0, 0, 0, 2154, 0, 0, 0, 0, 0, 0, 0, 2160, 541, 541, 541, 541, 541, 541, 2167, 541, 541, 541, 541, 541, 541, 1288, 541, 541, 541, 541, 1298, 541, 541, 541, 541, 541, 541, 1325, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1801, 541, 541, 541, 541, 541, 2202, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2209, 541, 541, 541, 541, 541, 2815, 541, 2818, 541, 541, 541, 541, 2823, 541, 541, 541, 541, 541, 541, 3409, 541, 563, 563, 563, 563, 563, 563, 563, 563, 3479, 563, 3481, 3482, 563, 3484, 563, 541, 541, 541, 2215, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 895, 541, 541, 541, 0, 0, 2244, 563, 563, 563, 563, 563, 563, 563, 2252, 563, 563, 563, 563, 563, 563, 3534, 563, 3536, 563, 563, 3538, 563, 563, 587, 587, 563, 563, 2301, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2893, 563, 563, 0, 0, 2331, 587, 587, 587, 587, 587, 587, 587, 2339, 587, 587, 587, 587, 587, 587, 2715, 587, 587, 587, 587, 541, 587, 563, 541, 541, 587, 587, 587, 587, 2363, 587, 587, 587, 587, 587, 587, 2369, 587, 2371, 587, 2374, 587, 587, 2388, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2918, 587, 587, 0, 2474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2482, 0, 0, 0, 0, 0, 0, 0, 122880, 122880, 122880, 122880, 122880, 0, 122880, 0, 2105632, 0, 0, 2514, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2522, 0, 0, 541, 541, 541, 541, 541, 3461, 541, 541, 541, 3465, 541, 541, 541, 541, 541, 541, 1287, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2546, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2540, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2222, 541, 541, 541, 563, 563, 563, 2599, 563, 563, 563, 563, 563, 2604, 563, 563, 563, 563, 563, 563, 2278, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2632, 563, 563, 563, 563, 563, 563, 2670, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3143, 587, 587, 587, 587, 2686, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3125, 587, 587, 587, 587, 541, 541, 2723, 563, 563, 563, 2725, 587, 587, 587, 2727, 2728, 0, 0, 0, 0, 0, 0, 0, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 1, 0, 0, 2746, 0, 2747, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1175, 0, 0, 0, 0, 0, 0, 0, 0, 2762, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1192, 0, 1195, 0, 0, 2811, 541, 2812, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1804, 541, 541, 541, 541, 541, 2849, 541, 541, 541, 541, 541, 0, 0, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2255, 563, 2858, 563, 2859, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3086, 563, 563, 587, 587, 2907, 587, 2908, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3139, 587, 3141, 587, 587, 0, 0, 0, 2983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2073, 0, 0, 0, 0, 0, 3381, 0, 0, 0, 0, 0, 3180, 0, 0, 0, 3390, 0, 0, 0, 0, 0, 0, 1659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114688, 0, 241664, 258048, 0, 0, 3430, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3439, 587, 587, 587, 541, 563, 563, 563, 563, 2303, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 26028, 0, 587, 587, 587, 541, 541, 541, 541, 3518, 541, 541, 541, 541, 541, 541, 541, 541, 541, 563, 563, 563, 3232, 563, 563, 563, 563, 563, 563, 3531, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 587, 587, 587, 3357, 587, 587, 587, 587, 587, 3545, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 0, 0, 0, 0, 0, 0, 3637, 541, 541, 541, 541, 541, 541, 3643, 563, 563, 563, 563, 3647, 563, 563, 587, 587, 587, 587, 587, 3653, 587, 587, 0, 0, 0, 0, 3635, 0, 541, 541, 541, 541, 541, 541, 541, 563, 2724, 563, 563, 587, 2726, 587, 587, 0, 0, 0, 0, 0, 0, 0, 0, 3607, 0, 541, 541, 541, 541, 0, 3656, 0, 3658, 541, 541, 541, 541, 541, 541, 563, 563, 563, 563, 563, 563, 937, 563, 563, 563, 563, 563, 563, 563, 0, 0, 0, 0, 394, 395, 0, 396, 0, 0, 0, 0, 0, 396, 0, 0, 0, 0, 0, 331, 332, 333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 560, 583, 560, 583, 560, 560, 583, 401, 0, 0, 0, 0, 0, 368, 376, 404, 0, 0, 0, 0, 0, 368, 0, 0, 396, 0, 0, 0, 0, 0, 351, 0, 0, 368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2744, 409, 411, 0, 0, 368, 376, 0, 69632, 73728, 0, 0, 0, 0, 427, 65536, 0, 0, 0, 0, 0, 2044, 2045, 0, 0, 0, 0, 0, 0, 0, 0, 0, 361, 0, 0, 0, 0, 0, 361, 427, 427, 437, 0, 427, 0, 411, 427, 456, 0, 0, 0, 0, 0, 0, 0, 0, 106496, 0, 106496, 0, 0, 0, 0, 106496, 396, 0, 409, 0, 497, 497, 0, 497, 497, 497, 497, 497, 497, 497, 497, 523, 523, 523, 523, 523, 456, 456, 456, 456, 531, 456, 456, 532, 456, 523, 537, 523, 523, 523, 537, 523, 523, 523, 523, 539, 557, 580, 557, 580, 557, 557, 580, 557, 604, 580, 580, 580, 580, 580, 580, 580, 604, 604, 604, 557, 604, 604, 604, 604, 604, 604, 604, 604, 580, 580, 618, 623, 604, 623, 629, 1, 0, 0, 0, 643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2101, 0, 0, 0, 783, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2757, 0, 0, 0, 802, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2129, 0, 0, 0, 587, 587, 587, 1023, 1025, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3275, 587, 587, 587, 587, 0, 0, 0, 0, 1096, 0, 0, 1098, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1630, 0, 0, 0, 0, 0, 1636, 0, 0, 0, 0, 1111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1207, 0, 0, 0, 0, 1098, 1227, 0, 0, 0, 0, 0, 0, 1234, 0, 0, 0, 0, 0, 0, 0, 0, 155648, 0, 0, 0, 0, 0, 0, 0, 0, 1239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1239, 1248, 0, 0, 0, 0, 0, 0, 1681, 0, 0, 0, 0, 0, 0, 1687, 0, 1689, 0, 0, 0, 0, 1239, 1269, 1270, 0, 1239, 0, 541, 541, 541, 541, 541, 541, 541, 3207, 3208, 541, 541, 541, 541, 3212, 3213, 1278, 541, 541, 541, 1282, 541, 541, 1293, 541, 541, 1297, 541, 541, 541, 541, 541, 541, 541, 3054, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1784, 541, 541, 541, 541, 541, 541, 1360, 914, 563, 563, 563, 563, 563, 563, 563, 1370, 563, 563, 563, 1374, 563, 563, 563, 563, 1847, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2308, 563, 563, 563, 563, 1385, 563, 563, 1389, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2295, 563, 563, 563, 563, 563, 563, 1406, 563, 563, 563, 1410, 563, 563, 563, 563, 563, 563, 563, 563, 2901, 563, 563, 0, 0, 587, 587, 587, 587, 587, 587, 1462, 587, 587, 587, 1466, 587, 587, 1477, 587, 587, 1481, 587, 587, 587, 587, 587, 3434, 587, 3436, 587, 587, 587, 587, 587, 587, 541, 563, 587, 1502, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3128, 587, 0, 1622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1635, 0, 0, 0, 0, 0, 2067, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2076, 1637, 0, 0, 0, 1641, 0, 0, 0, 1645, 0, 0, 0, 1649, 0, 0, 0, 0, 0, 0, 2056, 0, 2057, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1676, 0, 563, 563, 1844, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3540, 587, 587, 1958, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3127, 587, 3129, 587, 587, 2010, 587, 587, 587, 587, 1749, 1940, 1844, 541, 541, 541, 541, 563, 563, 917, 563, 563, 563, 934, 563, 563, 948, 563, 563, 563, 563, 563, 1895, 563, 563, 563, 1900, 563, 563, 563, 563, 563, 563, 1914, 563, 563, 563, 563, 26028, 0, 587, 587, 587, 0, 2118, 0, 0, 0, 0, 0, 0, 2125, 0, 0, 0, 0, 0, 0, 0, 0, 184726, 184932, 184932, 184932, 0, 184932, 184932, 184932, 0, 0, 2159, 0, 541, 541, 2162, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2833, 541, 541, 541, 541, 541, 541, 541, 2227, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 0, 0, 563, 2855, 563, 563, 563, 0, 0, 563, 563, 2246, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3255, 563, 563, 563, 563, 563, 563, 2314, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 0, 0, 587, 2904, 587, 0, 0, 587, 587, 2333, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3440, 587, 587, 541, 563, 587, 587, 587, 587, 2390, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2928, 587, 587, 587, 587, 587, 587, 587, 587, 2401, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 541, 587, 0, 0, 0, 541, 587, 563, 1064, 541, 541, 905, 541, 1069, 563, 563, 978, 541, 541, 541, 2567, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 900, 541, 541, 541, 2698, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3277, 587, 587, 0, 2759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1716, 0, 541, 2827, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1758, 541, 563, 2874, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2285, 563, 587, 587, 587, 2923, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2382, 587, 587, 587, 0, 0, 2993, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2433, 0, 2435, 3171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2771, 3202, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2577, 3225, 541, 541, 541, 541, 541, 541, 541, 541, 563, 563, 563, 563, 563, 563, 563, 2888, 563, 563, 563, 563, 563, 563, 563, 563, 3241, 563, 563, 563, 563, 563, 563, 563, 587, 587, 587, 3282, 587, 587, 587, 587, 587, 587, 587, 587, 587, 541, 587, 563, 2018, 541, 541, 541, 2022, 563, 541, 3289, 563, 3291, 587, 3293, 3294, 0, 0, 0, 0, 3298, 0, 0, 0, 0, 0, 0, 0, 1134592, 0, 365, 0, 0, 0, 1134592, 0, 0, 0, 1134592, 1134592, 0, 0, 1134592, 0, 0, 1134592, 0, 0, 0, 3311, 0, 0, 0, 0, 3315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1725, 0, 0, 0, 0, 0, 0, 3318, 0, 541, 541, 541, 3320, 541, 541, 541, 3323, 541, 541, 541, 541, 541, 541, 541, 1751, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2586, 0, 563, 563, 563, 563, 563, 3338, 563, 563, 563, 3341, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 26028, 1921, 587, 587, 587, 587, 3360, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3554, 0, 0, 3403, 541, 3405, 541, 541, 541, 541, 541, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3075, 563, 563, 3418, 563, 3420, 563, 563, 563, 563, 563, 563, 587, 587, 587, 587, 587, 587, 587, 3596, 587, 3598, 587, 587, 0, 0, 0, 0, 3560, 0, 0, 0, 0, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2169, 541, 541, 541, 541, 541, 3574, 541, 541, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1417, 3586, 563, 563, 563, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3599, 587, 0, 0, 0, 853, 1000, 926, 849, 1065, 894, 541, 541, 922, 1070, 967, 563, 0, 587, 587, 587, 587, 587, 78115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 0, 305, 0, 0, 0, 0, 3611, 541, 541, 541, 541, 541, 541, 541, 563, 563, 3617, 563, 3618, 563, 563, 563, 563, 587, 587, 587, 587, 3594, 587, 587, 587, 587, 587, 587, 587, 541, 541, 563, 563, 587, 587, 3378, 0, 0, 410, 356, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 0, 2122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 304, 0, 0, 0, 0, 0, 0, 354, 0, 0, 0, 356, 0, 0, 473, 473, 473, 473, 473, 473, 473, 478, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 478, 473, 484, 473, 0, 0, 473, 0, 0, 0, 0, 0, 0, 0, 0, 524, 528, 528, 528, 528, 473, 473, 473, 473, 473, 473, 473, 478, 473, 528, 524, 528, 528, 528, 524, 528, 528, 528, 528, 540, 558, 581, 558, 581, 558, 558, 581, 558, 605, 581, 581, 581, 581, 581, 581, 581, 605, 605, 605, 558, 605, 605, 605, 605, 605, 605, 605, 605, 581, 581, 619, 624, 605, 624, 630, 1, 0, 0, 0, 0, 644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1606, 0, 0, 0, 0, 688, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 365, 365, 0, 0, 0, 0, 0, 2138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2768, 0, 0, 0, 0, 0, 0, 0, 738, 0, 0, 0, 644, 738, 0, 744, 745, 644, 0, 0, 0, 0, 0, 0, 790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2058, 0, 0, 0, 0, 0, 0, 0, 0, 799, 0, 804, 0, 0, 0, 0, 0, 0, 804, 0, 0, 0, 0, 0, 644, 0, 0, 0, 799, 0, 804, 0, 790, 0, 819, 0, 0, 0, 665, 0, 0, 0, 0, 819, 0, 0, 0, 0, 0, 0, 0, 2473984, 2478080, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2767, 0, 0, 0, 0, 0, 0, 0, 644, 0, 0, 0, 0, 0, 0, 0, 0, 790, 0, 0, 0, 0, 0, 0, 0, 3165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 541, 563, 541, 563, 541, 541, 563, 0, 0, 790, 790, 0, 644, 0, 0, 790, 804, 842, 0, 541, 848, 541, 541, 541, 541, 541, 2839, 541, 541, 541, 2842, 541, 2844, 541, 541, 541, 541, 541, 541, 879, 541, 884, 541, 891, 541, 894, 541, 541, 908, 541, 541, 867, 871, 877, 541, 882, 541, 541, 541, 541, 541, 899, 541, 541, 541, 541, 541, 541, 2852, 541, 541, 0, 0, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2256, 563, 563, 563, 972, 563, 563, 563, 563, 563, 0, 587, 587, 995, 587, 587, 587, 587, 587, 2687, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2937, 587, 587, 587, 587, 587, 587, 587, 1014, 1018, 1024, 587, 1029, 587, 587, 587, 587, 587, 1046, 587, 587, 587, 587, 587, 1026, 587, 1031, 587, 1038, 587, 1041, 587, 587, 1055, 587, 1149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2799, 0, 0, 0, 1200, 0, 0, 0, 0, 0, 1205, 0, 0, 0, 0, 0, 0, 0, 1714, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2140, 2141, 0, 0, 2143, 0, 0, 1099, 0, 0, 0, 1230, 0, 1232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 352, 353, 0, 0, 0, 0, 1240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1246, 0, 1249, 1200, 0, 0, 0, 0, 0, 2427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 337, 0, 0, 0, 0, 1230, 1252, 0, 1255, 0, 0, 0, 0, 0, 1130, 0, 0, 0, 0, 1264, 0, 0, 1149, 1264, 0, 1271, 541, 541, 541, 541, 1277, 1360, 914, 1362, 563, 563, 563, 563, 563, 1369, 563, 563, 563, 563, 1375, 563, 563, 563, 563, 1862, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3084, 563, 563, 563, 563, 563, 563, 563, 1407, 563, 563, 563, 563, 1412, 563, 563, 563, 563, 563, 563, 563, 2900, 563, 563, 563, 0, 0, 587, 587, 587, 563, 1419, 563, 563, 563, 1426, 1428, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3346, 563, 563, 563, 563, 563, 563, 587, 587, 1461, 587, 587, 587, 587, 1467, 587, 587, 587, 587, 587, 587, 587, 587, 2663, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1488, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1499, 587, 587, 587, 587, 1463, 587, 587, 587, 587, 587, 1475, 587, 587, 587, 587, 587, 587, 2014, 541, 587, 563, 1791, 541, 2020, 541, 1886, 563, 587, 587, 1504, 587, 587, 587, 587, 587, 587, 587, 587, 1511, 587, 587, 587, 1518, 1520, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2396, 2397, 2398, 587, 587, 1542, 587, 0, 541, 587, 563, 541, 541, 541, 541, 541, 563, 563, 563, 563, 563, 2862, 563, 2865, 563, 563, 563, 563, 2870, 563, 563, 563, 563, 587, 587, 587, 587, 587, 1079, 0, 0, 1563, 0, 0, 0, 1569, 0, 0, 0, 0, 0, 376, 0, 0, 0, 0, 368, 0, 385, 0, 351, 0, 0, 1575, 0, 0, 0, 1581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 303, 0, 0, 0, 0, 1592, 1593, 0, 0, 0, 0, 0, 1599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2098, 0, 2100, 0, 0, 0, 0, 0, 1638, 0, 0, 0, 0, 0, 0, 0, 1646, 1647, 0, 0, 0, 0, 0, 0, 0, 3197, 0, 0, 0, 0, 0, 0, 3200, 0, 0, 1654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2038, 0, 1690, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3005, 0, 1706, 1707, 0, 0, 0, 1710, 0, 0, 0, 0, 0, 1714, 0, 0, 1717, 0, 0, 1730, 0, 1732, 1706, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2547, 541, 541, 541, 541, 541, 1744, 541, 541, 541, 541, 1750, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 3220, 541, 541, 541, 541, 541, 541, 1761, 541, 541, 541, 541, 1765, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 3335, 541, 541, 563, 563, 563, 541, 1776, 541, 541, 541, 1781, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2559, 541, 541, 541, 541, 1808, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1360, 914, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1376, 563, 0, 587, 587, 1046, 587, 587, 78115, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 225890, 225890, 225890, 225890, 225741, 225890, 225890, 225890, 0, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1839, 563, 563, 563, 563, 1877, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2869, 563, 563, 563, 563, 563, 563, 1845, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1856, 563, 563, 563, 563, 1894, 563, 563, 563, 1898, 563, 563, 563, 563, 563, 563, 563, 1450, 563, 26028, 1360, 988, 1454, 587, 587, 587, 563, 563, 1860, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1871, 563, 563, 563, 563, 1911, 1913, 563, 563, 563, 563, 563, 26028, 0, 587, 587, 587, 587, 587, 1506, 587, 587, 1508, 587, 587, 587, 1512, 587, 587, 587, 0, 1286, 1470, 1378, 541, 541, 541, 1549, 541, 563, 563, 563, 1553, 563, 1876, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2297, 2298, 563, 563, 587, 2027, 587, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3511, 0, 3513, 0, 541, 0, 0, 0, 2080, 2081, 0, 0, 2083, 2084, 0, 0, 0, 0, 0, 0, 0, 0, 286720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 286720, 286720, 0, 286720, 286720, 1, 0, 0, 0, 2106, 0, 0, 0, 0, 2109, 2110, 0, 0, 0, 0, 0, 0, 0, 2069, 0, 0, 0, 0, 0, 0, 0, 0, 0, 541, 564, 541, 564, 541, 541, 564, 541, 541, 541, 541, 2175, 541, 541, 2179, 541, 541, 541, 2183, 541, 541, 541, 541, 541, 541, 1347, 541, 541, 541, 541, 541, 541, 541, 541, 541, 563, 563, 3231, 563, 563, 563, 563, 2225, 541, 541, 541, 541, 2230, 541, 541, 541, 541, 541, 541, 541, 541, 0, 0, 0, 0, 0, 386, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 2242, 0, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2325, 0, 563, 563, 563, 2260, 563, 563, 2264, 563, 563, 563, 2268, 563, 563, 563, 563, 563, 587, 587, 3625, 587, 3626, 587, 587, 587, 587, 587, 587, 1493, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2380, 587, 587, 587, 587, 587, 587, 2312, 563, 563, 563, 563, 2317, 563, 563, 563, 563, 563, 563, 563, 563, 0, 0, 0, 0, 0, 0, 587, 587, 2655, 587, 587, 587, 2329, 0, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2680, 587, 587, 587, 587, 587, 587, 2347, 587, 587, 2351, 587, 587, 587, 2355, 587, 587, 587, 587, 587, 587, 2925, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1471, 587, 587, 587, 587, 587, 587, 2399, 587, 587, 587, 587, 2404, 587, 587, 587, 587, 587, 587, 587, 587, 541, 587, 0, 0, 0, 854, 1001, 927, 541, 541, 541, 541, 910, 563, 563, 563, 563, 563, 1848, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3097, 563, 3099, 563, 563, 563, 0, 0, 0, 0, 2439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1616, 0, 0, 0, 0, 0, 0, 2475, 0, 0, 0, 2479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 0, 0, 0, 0, 0, 0, 541, 2525, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2533, 541, 541, 541, 541, 541, 541, 3053, 541, 541, 3055, 541, 541, 541, 541, 541, 541, 541, 1311, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1753, 541, 541, 541, 541, 541, 541, 541, 2551, 541, 541, 2553, 541, 2554, 541, 541, 541, 541, 541, 541, 541, 2561, 541, 541, 541, 541, 876, 878, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1353, 541, 541, 541, 541, 541, 2565, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2576, 541, 541, 541, 541, 1283, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1304, 0, 0, 0, 563, 563, 2589, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3537, 563, 563, 3539, 563, 587, 587, 563, 2597, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2326, 0, 563, 563, 2612, 563, 563, 563, 2615, 563, 563, 2617, 563, 2618, 563, 563, 563, 563, 563, 2877, 2878, 563, 563, 563, 563, 2881, 563, 563, 563, 563, 563, 1863, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3356, 587, 587, 587, 587, 587, 563, 563, 563, 563, 2626, 563, 563, 2630, 563, 563, 563, 563, 563, 563, 563, 563, 3345, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2641, 2642, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 26028, 1360, 988, 587, 587, 587, 587, 2683, 587, 2684, 587, 587, 587, 587, 587, 587, 587, 587, 2692, 587, 587, 2696, 587, 0, 0, 0, 1061, 1062, 1063, 851, 541, 898, 902, 1068, 924, 563, 971, 975, 2733, 2734, 0, 0, 2737, 2738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 306, 307, 0, 0, 0, 0, 0, 2788, 0, 2790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2457, 0, 0, 0, 0, 0, 0, 0, 2803, 0, 0, 0, 0, 0, 0, 541, 541, 541, 541, 541, 541, 541, 3033, 541, 541, 2826, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2825, 2873, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2883, 563, 563, 563, 563, 1912, 563, 563, 563, 563, 563, 563, 26028, 0, 587, 587, 587, 587, 587, 2934, 587, 587, 587, 587, 587, 587, 587, 2940, 587, 587, 587, 587, 2922, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2932, 0, 2982, 0, 0, 2984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1632, 0, 0, 0, 0, 0, 0, 0, 0, 2995, 0, 0, 2998, 0, 2999, 0, 0, 0, 0, 0, 0, 0, 2096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 562, 585, 562, 585, 562, 562, 585, 541, 3049, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 3061, 3089, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2621, 563, 3103, 563, 563, 563, 563, 563, 587, 587, 587, 3111, 587, 587, 587, 587, 587, 587, 1507, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1983, 1984, 587, 587, 587, 587, 587, 587, 3131, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2929, 587, 587, 587, 587, 3145, 587, 587, 587, 587, 587, 541, 587, 563, 541, 541, 563, 563, 587, 587, 0, 2962, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3163, 0, 0, 0, 0, 0, 0, 0, 3169, 0, 0, 0, 0, 0, 438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2142, 0, 0, 0, 0, 541, 3226, 541, 541, 541, 541, 541, 541, 541, 563, 563, 563, 563, 563, 563, 563, 3095, 563, 563, 563, 563, 563, 563, 563, 563, 2306, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3236, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2309, 2310, 2311, 563, 563, 3246, 563, 563, 563, 563, 563, 563, 3252, 563, 3254, 563, 563, 563, 563, 563, 1392, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1853, 563, 563, 563, 563, 563, 563, 563, 563, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3265, 587, 587, 587, 587, 587, 2703, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2950, 587, 587, 541, 587, 563, 587, 587, 3281, 587, 3283, 587, 587, 587, 587, 587, 587, 587, 587, 541, 587, 563, 3153, 541, 3155, 563, 3157, 587, 0, 0, 0, 3301, 0, 0, 0, 0, 0, 0, 0, 3180, 0, 0, 0, 0, 0, 0, 0, 3014656, 3207168, 0, 2691072, 0, 0, 3215360, 0, 0, 3309, 0, 0, 0, 0, 0, 3314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 0, 0, 0, 0, 131072, 131072, 563, 563, 3339, 563, 563, 563, 3343, 563, 563, 563, 563, 563, 563, 563, 563, 563, 26028, 1360, 988, 587, 587, 1456, 587, 587, 587, 587, 3362, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3126, 587, 587, 587, 587, 587, 3371, 587, 587, 587, 587, 541, 541, 563, 563, 587, 587, 0, 0, 0, 3296, 0, 0, 0, 0, 0, 0, 3557, 3558, 0, 0, 0, 0, 0, 0, 0, 541, 541, 541, 3568, 541, 541, 541, 541, 541, 1284, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1303, 563, 563, 3588, 563, 587, 587, 587, 3593, 587, 587, 587, 587, 587, 587, 587, 587, 2690, 587, 587, 587, 587, 2694, 587, 587, 3601, 587, 0, 0, 0, 0, 0, 3604, 3605, 3606, 0, 3608, 541, 541, 541, 541, 541, 541, 1813, 541, 541, 541, 541, 1819, 541, 541, 541, 1360, 563, 3621, 3622, 563, 563, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3629, 3630, 563, 563, 587, 587, 587, 587, 3679, 0, 541, 3680, 563, 3681, 587, 3682, 0, 541, 541, 541, 541, 1345, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2560, 541, 541, 541, 358, 359, 0, 0, 0, 0, 0, 0, 0, 365, 0, 293, 0, 0, 0, 0, 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1174, 0, 0, 0, 0, 0, 0, 0, 0, 392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2495, 0, 0, 0, 474, 474, 474, 488, 0, 0, 488, 359, 359, 359, 510, 359, 359, 359, 359, 474, 559, 606, 582, 582, 582, 582, 582, 582, 582, 606, 606, 606, 559, 606, 606, 606, 606, 606, 606, 606, 606, 582, 582, 559, 582, 606, 582, 606, 1, 541, 541, 868, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 904, 541, 541, 541, 541, 541, 2851, 541, 541, 541, 0, 0, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2254, 563, 563, 563, 587, 1015, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1051, 587, 587, 587, 587, 587, 2909, 587, 587, 587, 587, 587, 587, 2917, 587, 587, 587, 587, 587, 1527, 587, 587, 587, 587, 587, 587, 587, 587, 1538, 1539, 1197, 0, 0, 0, 0, 0, 0, 0, 1197, 0, 0, 0, 0, 0, 0, 0, 0, 1134592, 0, 0, 1134592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2980, 0, 0, 541, 541, 1280, 541, 541, 541, 1289, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 3524, 541, 541, 3526, 563, 563, 1360, 914, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1372, 563, 563, 563, 1381, 587, 587, 1543, 0, 1289, 1473, 1381, 541, 541, 541, 541, 541, 563, 563, 563, 563, 563, 2898, 563, 563, 563, 563, 563, 0, 0, 587, 587, 587, 587, 587, 587, 2337, 587, 587, 587, 587, 587, 587, 587, 2352, 587, 587, 587, 587, 2357, 587, 587, 587, 563, 587, 587, 587, 587, 587, 1079, 0, 0, 0, 1564, 0, 0, 0, 1570, 0, 0, 0, 0, 0, 2440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2871296, 0, 0, 2424832, 0, 0, 0, 1576, 0, 0, 0, 1582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 0, 0, 0, 0, 155648, 0, 0, 1606, 0, 0, 0, 0, 0, 0, 0, 1614, 1615, 0, 0, 0, 0, 0, 0, 0, 3385, 3180, 0, 0, 0, 0, 0, 0, 0, 0, 2097, 0, 0, 0, 0, 0, 0, 0, 0, 2070, 0, 0, 0, 0, 2074, 0, 0, 0, 0, 0, 0, 1625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1648, 0, 0, 0, 0, 563, 1891, 563, 563, 563, 563, 563, 563, 563, 563, 1902, 563, 563, 563, 563, 563, 1408, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 1867, 563, 563, 563, 563, 563, 587, 1975, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1987, 587, 587, 587, 587, 1490, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2381, 587, 587, 587, 587, 2008, 587, 587, 587, 587, 587, 587, 541, 587, 563, 541, 541, 541, 541, 563, 563, 918, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2634, 563, 563, 563, 563, 0, 2243, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2637, 563, 0, 2330, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3276, 587, 587, 587, 0, 0, 2451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2471, 0, 2472, 0, 0, 0, 563, 563, 563, 563, 563, 563, 563, 2593, 563, 563, 563, 563, 563, 1424, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2293, 563, 563, 563, 563, 563, 563, 587, 2659, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2912, 587, 587, 2916, 587, 587, 587, 587, 0, 0, 0, 0, 0, 2776, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 372, 0, 0, 373, 0, 0, 563, 2895, 563, 563, 563, 563, 563, 563, 563, 563, 563, 0, 0, 587, 587, 587, 587, 2335, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2947, 587, 587, 587, 587, 587, 541, 587, 563, 587, 2906, 587, 587, 587, 587, 587, 587, 2913, 587, 2915, 587, 587, 587, 587, 587, 587, 2935, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2408, 587, 587, 587, 587, 2177, 2349, 587, 587, 587, 2944, 587, 587, 587, 587, 587, 587, 587, 587, 587, 541, 587, 563, 563, 563, 563, 563, 563, 563, 587, 587, 587, 541, 587, 587, 587, 0, 541, 587, 563, 541, 1547, 541, 541, 1550, 563, 1551, 563, 563, 0, 0, 0, 0, 0, 3561, 0, 0, 0, 541, 541, 541, 541, 541, 541, 541, 541, 3464, 541, 3466, 3467, 541, 3469, 541, 541, 541, 541, 3575, 541, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3423, 563, 563, 563, 3426, 587, 587, 587, 587, 563, 3587, 563, 563, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3600, 587, 587, 587, 587, 3670, 587, 0, 0, 0, 0, 541, 541, 541, 541, 563, 563, 919, 925, 563, 563, 563, 563, 943, 563, 563, 563, 563, 563, 563, 3353, 563, 563, 563, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3267, 0, 0, 360, 0, 0, 0, 0, 0, 0, 365, 0, 293, 0, 0, 0, 0, 0, 0, 331, 0, 0, 0, 0, 0, 0, 0, 331, 0, 0, 69632, 73728, 0, 419, 419, 0, 0, 65536, 419, 0, 0, 0, 0, 375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1663, 0, 0, 0, 0, 0, 0, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2511, 0, 0, 0, 0, 0, 370, 0, 0, 370, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2496, 0, 0, 560, 607, 583, 583, 583, 583, 583, 583, 583, 607, 607, 607, 560, 607, 607, 607, 607, 607, 607, 607, 607, 583, 583, 560, 583, 607, 583, 607, 1, 541, 863, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1772, 541, 1010, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3123, 587, 587, 587, 587, 587, 587, 587, 563, 1386, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2871, 563, 0, 0, 2760, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2755, 0, 0, 0, 0, 0, 0, 0, 2985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3302, 0, 3303, 0, 0, 0, 0, 3180, 0, 0, 0, 0, 0, 0, 348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2801664, 0, 0, 0, 0, 2142208, 0, 0, 0, 361, 362, 363, 364, 0, 0, 365, 0, 293, 0, 0, 0, 0, 0, 0, 348, 349, 350, 0, 0, 0, 0, 0, 0, 0, 0, 3180, 0, 3388, 0, 0, 0, 0, 0, 0, 362, 0, 361, 0, 0, 0, 69632, 73728, 0, 0, 0, 0, 428, 65536, 0, 0, 0, 0, 0, 2463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2807, 541, 541, 541, 541, 428, 428, 0, 0, 428, 0, 362, 428, 457, 0, 0, 0, 0, 0, 0, 0, 0, 1159168, 0, 1159168, 0, 0, 0, 0, 1159168, 0, 0, 0, 0, 498, 498, 0, 505, 505, 505, 505, 511, 512, 505, 505, 525, 525, 525, 525, 525, 457, 457, 457, 457, 457, 457, 457, 457, 457, 525, 525, 525, 525, 525, 525, 525, 525, 525, 561, 584, 561, 584, 561, 561, 584, 561, 608, 584, 584, 584, 584, 584, 584, 584, 608, 608, 608, 561, 608, 608, 608, 608, 608, 608, 608, 608, 584, 584, 620, 625, 608, 625, 631, 1, 563, 563, 563, 973, 563, 563, 563, 563, 563, 0, 587, 587, 587, 587, 587, 587, 1963, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3137, 587, 587, 587, 587, 587, 587, 587, 0, 2105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 541, 2161, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 3336, 541, 563, 563, 563, 0, 0, 563, 2245, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2882, 563, 563, 563, 0, 0, 587, 2332, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3286, 587, 587, 587, 587, 541, 587, 563, 2550, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2210, 541, 541, 541, 2579, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 0, 0, 0, 0, 0, 0, 2068, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 0, 0, 122880, 122880, 0, 0, 2711, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 541, 587, 563, 541, 541, 541, 2021, 563, 563, 562, 609, 585, 585, 585, 585, 585, 585, 585, 609, 609, 609, 562, 609, 609, 609, 609, 609, 609, 609, 609, 585, 585, 562, 585, 609, 585, 609, 1, 0, 0, 0, 705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2742, 0, 0, 0, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2075, 0, 541, 864, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 2238, 0, 1011, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2689, 587, 587, 587, 587, 587, 587, 587, 587, 2716, 587, 587, 587, 541, 587, 563, 541, 541, 1136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 365, 0, 0, 0, 0, 0, 0, 2095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2375680, 0, 0, 0, 0, 0, 587, 1503, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2911, 587, 2914, 587, 587, 587, 587, 2919, 587, 563, 587, 587, 587, 587, 587, 1079, 1560, 0, 0, 0, 1566, 0, 0, 0, 1572, 0, 0, 0, 1578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2754, 0, 0, 0, 563, 563, 563, 563, 2600, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 26028, 1922, 587, 587, 587, 0, 0, 0, 0, 647, 0, 0, 0, 0, 0, 0, 743, 541, 541, 541, 541, 541, 541, 2178, 541, 541, 541, 541, 541, 541, 541, 541, 541, 0, 2242, 563, 563, 563, 563, 563, 0, 0, 1594, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2770, 0, 0, 563, 563, 563, 1846, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3085, 563, 3087, 563, 2187, 541, 2189, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 1821, 541, 1360, 0, 0, 563, 563, 563, 563, 2248, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2305, 563, 563, 563, 563, 563, 563, 563, 563, 563, 0, 587, 587, 994, 587, 587, 587, 563, 2274, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 2894, 563, 587, 2361, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 3121, 587, 587, 587, 587, 587, 587, 587, 587, 563, 563, 541, 563, 587, 563, 587, 1, 2623, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3101, 563, 563, 563, 563, 2651, 0, 0, 0, 0, 0, 0, 587, 587, 587, 587, 587, 587, 587, 587, 587, 2340, 587, 587, 587, 587, 0, 0, 3179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2798, 0, 0, 3245, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 3257, 563, 1134592, 0, 1134592, 0, 0, 0, 1134592, 1135008, 1135008, 0, 0, 0, 0, 0, 1135008, 0, 0, 0, 0, 0, 2478, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3180, 0, 0, 3307, 0, 1134592, 0, 1134592, 1134592, 0, 0, 0, 0, 1135203, 1135203, 1135203, 1135203, 1134592, 1135203, 1135203, 1135203, 1135203, 1135203, 1135203, 1135203, 0, 1134592, 1134592, 1134592, 1134592, 1135203, 1134592, 1135203, 1, 0, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 2424832, 2433024, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 988, 2125824, 2125824, 2125824, 2125824, 1147355, 1147355, 1147355, 1147355, 458, 458, 1147355, 458, 458, 458, 458, 458, 458, 458, 458, 1147406, 1147406, 1147406, 1147406, 1147406, 1147406, 1147406, 1147406, 1147406, 1147406, 1147406, 1147406, 1147406, 1147406, 1147406, 1147406, 0, 0, 0, 0, 0, 0, 0, 0, 458, 0, 0, 0, 0, 0, 1147355, 1147355, 1147355, 1147406, 1147406, 1147355, 1147406, 1147406, 1, 12290, 3, 0, 0, 0, 0, 249856, 0, 0, 0, 249856, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 0, 425, 65536, 0, 1159168, 0, 0, 1159168, 0, 1159168, 1159168, 0, 1159168, 1159168, 0, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 0, 1159168, 1159168, 0, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1159168, 0, 0, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1, 12290, 3, 78115, 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131072, 131072, 0, 0, 1163264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3170, 0, 913, 2125824, 2125824, 2125824, 2125824, 2125824, 2424832, 2433024, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 1453, 2125824, 2125824, 2125824, 2125824, 106496, 0, 106496, 106496, 0, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 0, 0, 0, 106496, 0, 0, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2183168, 0, 0, 0, 0, 0, 0, 0, 0, 2134016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 541, 541, 541, 1275, 541, 541, 0, 0, 0, 3117056, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2979, 0, 0, 0, 0, 3108864, 3198976, 0, 0, 3043328, 0, 3149824, 2936832, 0, 2760704, 0, 2437120, 0, 0, 0, 0, 0, 0, 2107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, 2875392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2834432\n];\n\nXQueryParser.EXPECTED =\n[ 1039, 1047, 1048, 1046, 1042, 1052, 1056, 1060, 1064, 1068, 1446, 1074, 2948, 2053, 1092, 1446, 2490, 1670, 1213, 1080, 1084, 1085, 1446, 1089, 1446, 1446, 2818, 1098, 1103, 1108, 1187, 1181, 1181, 1114, 1118, 1446, 1933, 1123, 1446, 1136, 1098, 1098, 1204, 1108, 1108, 1171, 1181, 1181, 1130, 1134, 1446, 1446, 1140, 1446, 1147, 1098, 1152, 1108, 1108, 1109, 1181, 1181, 1182, 1158, 1446, 1446, 1238, 1668, 1098, 1148, 1108, 1108, 1206, 1181, 1181, 1165, 1446, 3130, 2162, 1098, 1099, 1108, 1177, 1181, 1215, 1219, 2143, 1136, 1098, 1186, 1110, 1181, 1191, 3130, 2153, 1099, 1108, 1180, 1217, 2659, 2819, 1197, 1173, 1201, 1104, 1235, 1210, 1224, 1154, 1228, 1232, 1168, 1243, 1247, 1251, 1255, 1259, 1261, 1266, 1262, 1270, 1274, 1278, 1282, 1286, 1290, 1220, 1295, 1890, 1296, 1446, 1446, 1446, 1446, 1375, 2489, 1446, 1446, 1446, 2385, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1076, 1446, 1446, 1446, 1446, 2986, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1300, 1304, 1305, 1309, 1405, 1315, 1318, 1322, 1326, 1330, 1446, 1446, 1804, 1334, 2315, 1338, 2350, 1142, 1143, 1342, 1346, 1446, 1446, 2834, 1352, 1362, 1369, 1446, 1126, 1446, 2386, 1379, 1446, 1384, 1390, 1446, 2987, 2588, 1396, 2688, 1457, 1446, 1518, 1446, 1446, 2269, 1446, 1446, 1446, 1402, 1446, 1441, 1897, 1409, 1413, 1446, 1447, 1419, 1446, 1447, 1419, 1446, 1446, 1193, 1446, 2988, 3136, 2482, 1446, 2617, 1425, 1446, 1448, 1431, 1446, 1918, 1446, 2648, 1436, 1457, 1348, 1457, 1380, 1440, 1446, 1445, 3050, 1452, 1446, 1456, 1311, 1446, 1916, 2325, 1463, 2125, 1347, 1472, 2317, 1909, 1478, 3010, 2343, 2076, 2746, 2758, 1482, 2765, 2077, 1799, 1486, 2744, 1493, 1358, 1446, 1446, 2131, 1446, 2559, 1386, 1365, 1497, 1501, 1505, 1509, 1515, 2369, 1569, 2450, 1522, 2538, 1526, 1530, 1536, 2479, 2088, 1457, 1971, 1540, 1544, 1548, 1552, 1557, 1446, 2103, 1446, 1532, 1446, 2479, 2082, 1563, 1568, 2137, 1573, 1577, 3026, 1446, 1446, 2116, 1446, 1446, 3027, 1446, 1586, 1938, 1584, 2123, 1647, 1590, 1432, 1594, 1446, 2517, 1600, 1446, 2517, 1600, 1446, 2872, 1606, 1612, 1616, 1620, 1626, 1446, 1239, 1633, 1446, 1596, 1640, 3118, 2782, 1645, 1651, 1863, 1446, 1863, 1446, 1602, 1446, 2675, 2173, 1655, 2685, 1559, 1866, 2685, 3124, 1659, 1665, 2904, 2903, 3055, 2673, 1674, 1678, 3047, 2266, 2239, 1682, 1686, 1690, 1694, 1698, 2892, 1702, 1715, 1719, 1723, 1727, 1731, 1446, 2332, 1773, 1737, 1744, 1748, 1751, 1755, 1758, 1446, 1772, 2979, 1777, 1781, 2506, 1788, 1792, 1635, 1636, 1446, 2668, 2874, 1796, 1808, 2784, 1815, 1819, 1823, 2304, 1828, 1446, 2430, 1446, 1446, 2334, 1853, 2583, 1834, 1843, 1446, 2069, 1446, 1446, 1954, 1446, 1446, 2070, 1446, 1446, 1622, 1608, 1847, 1851, 1857, 1641, 1871, 1446, 2225, 1956, 1446, 2225, 1956, 1446, 2374, 1885, 1876, 1811, 1446, 1883, 1446, 1947, 1889, 1446, 1511, 1446, 1291, 2287, 1894, 1901, 1906, 1446, 1906, 1446, 1913, 1446, 1740, 1922, 1446, 1932, 1733, 1446, 1932, 1830, 1094, 1732, 1446, 1937, 2066, 2439, 2671, 1945, 1942, 2455, 1489, 2323, 1951, 1709, 1711, 1629, 1161, 1962, 1968, 1977, 1980, 1984, 1446, 1119, 1994, 1999, 2003, 2007, 2011, 2015, 2019, 2023, 1986, 1872, 2093, 1928, 2028, 2032, 2036, 1802, 2040, 1446, 1446, 2044, 1580, 2050, 2059, 2063, 2074, 2046, 1446, 2024, 2081, 1446, 2086, 1446, 1446, 1988, 2092, 2097, 2109, 2113, 1446, 2120, 1446, 1446, 2129, 1446, 1558, 2135, 1446, 1446, 2141, 2535, 2866, 2147, 1446, 1990, 1446, 1446, 3096, 1446, 1446, 3096, 1446, 1446, 1466, 2151, 2157, 2204, 1458, 2161, 1446, 2914, 1446, 1446, 1764, 1446, 3053, 2166, 2170, 1446, 2182, 1446, 2187, 1446, 2916, 1957, 2192, 2202, 2305, 1446, 2210, 2496, 1824, 3112, 2217, 1761, 1459, 1558, 2224, 2229, 2841, 2969, 2682, 2815, 2233, 2248, 2236, 2243, 1837, 1839, 2247, 2252, 2100, 1446, 1446, 1446, 1446, 2918, 1766, 2256, 2260, 2273, 2277, 2281, 2284, 1446, 2889, 1902, 2985, 2524, 2433, 2299, 2576, 2212, 2213, 2303, 1415, 1457, 2309, 1958, 2321, 2329, 1446, 2976, 1446, 1398, 1446, 1553, 2338, 2342, 2751, 1446, 2347, 2503, 2354, 2358, 1558, 2363, 1446, 1995, 2368, 1446, 1421, 2364, 2373, 2733, 2378, 2383, 2390, 3044, 1446, 2715, 1446, 1446, 1860, 1446, 1446, 1860, 2719, 2733, 2397, 2176, 2401, 1946, 2461, 1446, 1446, 2405, 1446, 1473, 2717, 2413, 2417, 2427, 2437, 3061, 1446, 2105, 1446, 1973, 2407, 2443, 2447, 2454, 2459, 2379, 1446, 2465, 2472, 2476, 2486, 2511, 2494, 2701, 2409, 2500, 2510, 2516, 2521, 2528, 2220, 2532, 2542, 2546, 2198, 2312, 2550, 2554, 2563, 2567, 2571, 2575, 1446, 2580, 2592, 2596, 2600, 2604, 2608, 2612, 2616, 1446, 2621, 2393, 1372, 2628, 2632, 2636, 2640, 2652, 3103, 1446, 2708, 2468, 2656, 2665, 2679, 2692, 1558, 2699, 1446, 2705, 1446, 2998, 2712, 1446, 2723, 2624, 1768, 1879, 3159, 1446, 2205, 2727, 1446, 1468, 2732, 1446, 2206, 2982, 1446, 3004, 2737, 2741, 3109, 2750, 1446, 2755, 1446, 1446, 2762, 1446, 1446, 2762, 2769, 3037, 2775, 2420, 2779, 1446, 2788, 1446, 1446, 2795, 1446, 1427, 2801, 3020, 2805, 2646, 1446, 2812, 1446, 2809, 1446, 3067, 2853, 2823, 2643, 2183, 2827, 2863, 2512, 2832, 2838, 1707, 1070, 2359, 2845, 2851, 2857, 1964, 1474, 3084, 2557, 2878, 2955, 3090, 2882, 2293, 2295, 2886, 2896, 2900, 2908, 2912, 1446, 1446, 1446, 2922, 2926, 2930, 2934, 2938, 2942, 2946, 1446, 2055, 2952, 1355, 2791, 2178, 2959, 1867, 2963, 1784, 2967, 1446, 2973, 2423, 2992, 2996, 3002, 1446, 2728, 1446, 1446, 3008, 1446, 3014, 3018, 1446, 3024, 2188, 3031, 3147, 1446, 1446, 2694, 1446, 1446, 2847, 1446, 1446, 2695, 3035, 1446, 3041, 3078, 3141, 3059, 1446, 1446, 3065, 1446, 1446, 3065, 1446, 1446, 3071, 1446, 3075, 1925, 3153, 1446, 1446, 3082, 1446, 1564, 3088, 1446, 1661, 3094, 3100, 2195, 3116, 1446, 3122, 1446, 3128, 1446, 3134, 1705, 3140, 2586, 2797, 1446, 3145, 2771, 1392, 3151, 1446, 3157, 2290, 2828, 2661, 2869, 2422, 3106, 2860, 2263, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1473, 3163, 3166, 3170, 3182, 3186, 3182, 3189, 3181, 3182, 3182, 3182, 3182, 3177, 3173, 3193, 3182, 3197, 3201, 3204, 3210, 3214, 3216, 3206, 3220, 3224, 3228, 3232, 3235, 3239, 3243, 3729, 3929, 3929, 3246, 3929, 3929, 5383, 3929, 3929, 3300, 3929, 3261, 3562, 3273, 4078, 3734, 3929, 3929, 3929, 3277, 3287, 3294, 4847, 3929, 3250, 3929, 3929, 3344, 3929, 4873, 4873, 4873, 4873, 3266, 4873, 4873, 3564, 3564, 3567, 3564, 3564, 3564, 3564, 3267, 3256, 3305, 3562, 3568, 3335, 4081, 3929, 3929, 3929, 3323, 4919, 3377, 4693, 3929, 3252, 3722, 3750, 3365, 3315, 3269, 3334, 4080, 3732, 3929, 3929, 3559, 4873, 5799, 4692, 3929, 3929, 3688, 3929, 3929, 3560, 4873, 4873, 4873, 4195, 4873, 4873, 4873, 4874, 3564, 3267, 3264, 3331, 3339, 3929, 3342, 3929, 3738, 3256, 3367, 3317, 3321, 3560, 4873, 3564, 3309, 3256, 3256, 3365, 3371, 3564, 3564, 3564, 3567, 3256, 3256, 3256, 3256, 3327, 4195, 3564, 3564, 3564, 3310, 3365, 3359, 3929, 3929, 3813, 3929, 3564, 3564, 3564, 3364, 3929, 5741, 3559, 4873, 4194, 3564, 3564, 3268, 3256, 4193, 4873, 3266, 3564, 3310, 3256, 3256, 3256, 3366, 3348, 3929, 3929, 3929, 3505, 3383, 3256, 3373, 3766, 3256, 3384, 3929, 4872, 4874, 3564, 3268, 3256, 3257, 3373, 4694, 3929, 3929, 3929, 3355, 3566, 3256, 3321, 4194, 3565, 3311, 3560, 3563, 3384, 3561, 3319, 3360, 3388, 3390, 4109, 3394, 3401, 3405, 3429, 3429, 3429, 3429, 3424, 3430, 3412, 3416, 3420, 3428, 3434, 3438, 3442, 3397, 3446, 3450, 3453, 3457, 3460, 3463, 3465, 3469, 3473, 3408, 3477, 3481, 3485, 3696, 3498, 4473, 3929, 3929, 3929, 3512, 3511, 3929, 3929, 3929, 3517, 4964, 4966, 3929, 3523, 3527, 3929, 3929, 3929, 3752, 3534, 3543, 3929, 3929, 3850, 3854, 3578, 3582, 3586, 3589, 3590, 3594, 3597, 3601, 3604, 3608, 3611, 3614, 3618, 3622, 3626, 4965, 3648, 3636, 5178, 3647, 5820, 3654, 4257, 3659, 3929, 3669, 4219, 3694, 3703, 3929, 5714, 3525, 3929, 3929, 3929, 3770, 3790, 3929, 5539, 3707, 3929, 3342, 5695, 3904, 3929, 3289, 3290, 3906, 3929, 4658, 4464, 5227, 4306, 3936, 3718, 3726, 3743, 3929, 3375, 3631, 3929, 3548, 5050, 5064, 3749, 3929, 3929, 3929, 3836, 3758, 3298, 3929, 3929, 3915, 3927, 4893, 3528, 3929, 3929, 3921, 4548, 5744, 4281, 3929, 3929, 3932, 5019, 3929, 5587, 5178, 3929, 3553, 3557, 3572, 5826, 3929, 3929, 4530, 3789, 3794, 3929, 3929, 3972, 4899, 3798, 3806, 3929, 3929, 3972, 5040, 3817, 3826, 3929, 3929, 3972, 5490, 3785, 3929, 3929, 3929, 3869, 4728, 4203, 3770, 3790, 4142, 3929, 3929, 3929, 3894, 4001, 3929, 3929, 3929, 3929, 3252, 3798, 4127, 4203, 3850, 3854, 4139, 3744, 3929, 3929, 3929, 3844, 5313, 5832, 4137, 4141, 3929, 3650, 3929, 3929, 4854, 4858, 4140, 3929, 3929, 3929, 3930, 5557, 3873, 3929, 3929, 3883, 3929, 5107, 3929, 5107, 4780, 3929, 4781, 5020, 3929, 3929, 3738, 5109, 3929, 3290, 3904, 3940, 3947, 3946, 3942, 3951, 3955, 3956, 3956, 3960, 3962, 3963, 3962, 3967, 3971, 3929, 3929, 4017, 4021, 4708, 3978, 3988, 3929, 3683, 3781, 3802, 3995, 4392, 3929, 5597, 5363, 3530, 3929, 4135, 4005, 4013, 3929, 3929, 4065, 4070, 4026, 3929, 3929, 4026, 3375, 3929, 3929, 4049, 4056, 4576, 3997, 5403, 5596, 3929, 3856, 4795, 3529, 3929, 3929, 3929, 3931, 4061, 3929, 3929, 3929, 3972, 4199, 3911, 3929, 3929, 3929, 3974, 5170, 3929, 3929, 4704, 3929, 4075, 5320, 4248, 5165, 3855, 4657, 4085, 3929, 3690, 4699, 5178, 3978, 3251, 3929, 3929, 4101, 3929, 5319, 4247, 5772, 5010, 4113, 3981, 3929, 3929, 4164, 4148, 4148, 4120, 3929, 3929, 4165, 4115, 4709, 4132, 3929, 3929, 4247, 4459, 5170, 3929, 3929, 4706, 3879, 4572, 4576, 5321, 4249, 4655, 3929, 3929, 4274, 3929, 3972, 4146, 4150, 3929, 3735, 3929, 3735, 4154, 4158, 3929, 3929, 4396, 3929, 3929, 3982, 3929, 3929, 3929, 4029, 4107, 3929, 4706, 3929, 4366, 4574, 4181, 5320, 5850, 4644, 4180, 5319, 4886, 4217, 4208, 4673, 3929, 3929, 4424, 5855, 3279, 5321, 4215, 3929, 3766, 4873, 4873, 3563, 3564, 4228, 3929, 4451, 4182, 4233, 4305, 4240, 4273, 4435, 4246, 4434, 4245, 4708, 4241, 3929, 3699, 4502, 3698, 4255, 5609, 4272, 5609, 4272, 3699, 5199, 5610, 4273, 4253, 3281, 4246, 4270, 3929, 3809, 3929, 4549, 3737, 3929, 3896, 3929, 5021, 3770, 4271, 3771, 4182, 5163, 5161, 3929, 3283, 5762, 3710, 4279, 4279, 4211, 4127, 4128, 4405, 3712, 4286, 3929, 3929, 3929, 4052, 3929, 5548, 3754, 4301, 3929, 3842, 3574, 4534, 4651, 5125, 3745, 4537, 4310, 4314, 4318, 4319, 4323, 4327, 4333, 4334, 4331, 4338, 4339, 4339, 4340, 3929, 3844, 4827, 3929, 3846, 3929, 3929, 4905, 3929, 3376, 5780, 4202, 3929, 3929, 3929, 4235, 4524, 5352, 5187, 4364, 4473, 3342, 4273, 3929, 3888, 5737, 4840, 4356, 4374, 4378, 4842, 5051, 4864, 3929, 4387, 4491, 3929, 4413, 3929, 3892, 5107, 3929, 3665, 3929, 3929, 4681, 3640, 4265, 4472, 3929, 4802, 3929, 4518, 3670, 4266, 4421, 3929, 4204, 4203, 3929, 4718, 4428, 4432, 3929, 3929, 3929, 4451, 4440, 4445, 3929, 3929, 4450, 4541, 4470, 3929, 3343, 3929, 3897, 3929, 4294, 3929, 4296, 3929, 5616, 3929, 5461, 4463, 3929, 5347, 4362, 5468, 4800, 3929, 3929, 4457, 4461, 5243, 3929, 4484, 3929, 3931, 5074, 3929, 3972, 4166, 4116, 3929, 3929, 3929, 4035, 4737, 3929, 3929, 3929, 4505, 3929, 5347, 4495, 3929, 3972, 5410, 5415, 4015, 4019, 3929, 3929, 4457, 4490, 4499, 3929, 3929, 3929, 4624, 5347, 3929, 4801, 3929, 3997, 3929, 5743, 4160, 3929, 3929, 3929, 4628, 3929, 5704, 4529, 3929, 3998, 5353, 5435, 3929, 5703, 4528, 3929, 4000, 3929, 3929, 3999, 3528, 4505, 5352, 4800, 3929, 4007, 4653, 3929, 4009, 3929, 4642, 5697, 3929, 3929, 3929, 4695, 4052, 3929, 3929, 3929, 4708, 4545, 3929, 3929, 3301, 4450, 3929, 3929, 3929, 4734, 3929, 5303, 3342, 3929, 4030, 4480, 3929, 3929, 3929, 4516, 4994, 3894, 3929, 3895, 3929, 3929, 3351, 3892, 3737, 3735, 3929, 4039, 3929, 3929, 4086, 5090, 3895, 5020, 3895, 3737, 5022, 3736, 3737, 4554, 4556, 3929, 3929, 4638, 4794, 3929, 3929, 4668, 4806, 4689, 3929, 3929, 3929, 4752, 4504, 3929, 3929, 5097, 4566, 4022, 5334, 4383, 5691, 4570, 4582, 4586, 4590, 4594, 4598, 4602, 4605, 4608, 4612, 4614, 4618, 4634, 4632, 4634, 4621, 3929, 3929, 3929, 4757, 4725, 4816, 3929, 4648, 4662, 4666, 5081, 4672, 3929, 5344, 4398, 4352, 4678, 3929, 3929, 4678, 4687, 5178, 3929, 3929, 4745, 4749, 4210, 3929, 4965, 4768, 5739, 3929, 3929, 3322, 5689, 3899, 5181, 4703, 5110, 5214, 4713, 4722, 3929, 4051, 3558, 3929, 4028, 4478, 4500, 3929, 5400, 4741, 3929, 3929, 4780, 3929, 4780, 4762, 3929, 3929, 3929, 4821, 4756, 4761, 3929, 3929, 4818, 4822, 4505, 3863, 3867, 3929, 3341, 3341, 3929, 4766, 4294, 3929, 3899, 3929, 4066, 3929, 3929, 4087, 5091, 3767, 5433, 4817, 4683, 4716, 3929, 5809, 3929, 4091, 4095, 3751, 3972, 4773, 4777, 3929, 4107, 3929, 3929, 4137, 4141, 4786, 4775, 3929, 3929, 4820, 3910, 4788, 4777, 3929, 3929, 4828, 3972, 3322, 4792, 3929, 3929, 4847, 3929, 5432, 4816, 4833, 4799, 3929, 5147, 3929, 3929, 4872, 4873, 4966, 4295, 4304, 4814, 4826, 3929, 3929, 3929, 4871, 4674, 3929, 4708, 3897, 5180, 5433, 4832, 3929, 4159, 3929, 3377, 3299, 3929, 4503, 4708, 3929, 4837, 3929, 3929, 3929, 4913, 5207, 3929, 3929, 3929, 4965, 3929, 5148, 3929, 4008, 3929, 4408, 3929, 4172, 3929, 4172, 3900, 5432, 3628, 3929, 3929, 3929, 4856, 4860, 3844, 5313, 3929, 3929, 4982, 3929, 5086, 3768, 5434, 3630, 3929, 4174, 3929, 4562, 5312, 3929, 3929, 3929, 5003, 4502, 5148, 4878, 4885, 4293, 3929, 3929, 4296, 3929, 4296, 3929, 4229, 5198, 5520, 3928, 3929, 3928, 3897, 4293, 3929, 3898, 3929, 5228, 3899, 3898, 3929, 4296, 3929, 5547, 3519, 4911, 3929, 5584, 4917, 3769, 3929, 3929, 3929, 4240, 4273, 3929, 3779, 3800, 3744, 4923, 4927, 4934, 4935, 4930, 4939, 4943, 4949, 4953, 4945, 4957, 4957, 4958, 4962, 3929, 4247, 4511, 3929, 3972, 5871, 3929, 3983, 3929, 5572, 5591, 3929, 4731, 4359, 5861, 5581, 4990, 3929, 3929, 3929, 5111, 4846, 5503, 4707, 5051, 3929, 4263, 4465, 3929, 4282, 3929, 3929, 3860, 3929, 5742, 3929, 3929, 3737, 3929, 3894, 5322, 3929, 5000, 5007, 3507, 3929, 4290, 3929, 3929, 4449, 3929, 5018, 3929, 3929, 3642, 5026, 3929, 3929, 3929, 5177, 4628, 3929, 3300, 3929, 4346, 3674, 3681, 3547, 3929, 3539, 5030, 5034, 3929, 3929, 3929, 5337, 5040, 3822, 3929, 3929, 3641, 5042, 3929, 3929, 3929, 5368, 3643, 3929, 3929, 3929, 5405, 5793, 3929, 3929, 3929, 5453, 4626, 3377, 5052, 3929, 3929, 3929, 3721, 4501, 4368, 3929, 3546, 3490, 5496, 5308, 5793, 3929, 3929, 5485, 4370, 3929, 3929, 5068, 3972, 5073, 4863, 3929, 3513, 4450, 5122, 3375, 5406, 3842, 3929, 3655, 5793, 3929, 3739, 4707, 5781, 3929, 3990, 3929, 3929, 4006, 3299, 4452, 4369, 3929, 4439, 4444, 3929, 3895, 4547, 3886, 3929, 5078, 3929, 3929, 5048, 5304, 3929, 5095, 3929, 5486, 5051, 4451, 4368, 3929, 4474, 4050, 4057, 4293, 4450, 3929, 3929, 5228, 3929, 5453, 3929, 3929, 5072, 4862, 3929, 5101, 3929, 3512, 5742, 3929, 5241, 5105, 4986, 3751, 5323, 3296, 4502, 4381, 3929, 4486, 4034, 3929, 3684, 3783, 3744, 5062, 3929, 3929, 4209, 3929, 3929, 3929, 3560, 3929, 5118, 3929, 3929, 5111, 4852, 4515, 4382, 5129, 3929, 4502, 4176, 3929, 4350, 5314, 3549, 3929, 5797, 3929, 3929, 3929, 5526, 5795, 3929, 3929, 3929, 5603, 5136, 5144, 5227, 4451, 4236, 3929, 4975, 3676, 5063, 4465, 3744, 4042, 4464, 5152, 3929, 4507, 3865, 3929, 4121, 5622, 4297, 4174, 3342, 5169, 3342, 5169, 4514, 3537, 4561, 4558, 3929, 4559, 4453, 3929, 5213, 4466, 3929, 4520, 3929, 3929, 5170, 4045, 5196, 5187, 5174, 4560, 5185, 4558, 5193, 5203, 5211, 5218, 5221, 5222, 5226, 3929, 3929, 3929, 5725, 3929, 5232, 4690, 3929, 4524, 5352, 3677, 3929, 3929, 3929, 5771, 3929, 5740, 3929, 4274, 4848, 5238, 5247, 5773, 5254, 5251, 4704, 3918, 5260, 5266, 5262, 5268, 5272, 5276, 5280, 5284, 5287, 5291, 5294, 5293, 5298, 5302, 3929, 3929, 3929, 5742, 5425, 3929, 4694, 5050, 3546, 3490, 3494, 3929, 5318, 3929, 5327, 3923, 4464, 4390, 5227, 3929, 5816, 5331, 5341, 3929, 5782, 3744, 3929, 4547, 3770, 3929, 4547, 3929, 3736, 5322, 3929, 5189, 3929, 3929, 5189, 5361, 5367, 3374, 3929, 4693, 3929, 3929, 3829, 3929, 5372, 3929, 5411, 3929, 4704, 4292, 3929, 3892, 3929, 3929, 4517, 5713, 4819, 4170, 3929, 5416, 3991, 3929, 4708, 4852, 3929, 4186, 4190, 3929, 3765, 3775, 3800, 5841, 5084, 3929, 3929, 5111, 5157, 3753, 5377, 5381, 3929, 3929, 5117, 3929, 3929, 5388, 3821, 3929, 4708, 5234, 4550, 3929, 5393, 5392, 3929, 4751, 5041, 3744, 3929, 3929, 5048, 5036, 3929, 5373, 5397, 4693, 3501, 3929, 3929, 3929, 5766, 4862, 3929, 3929, 3929, 5789, 5048, 4769, 3378, 3492, 5429, 4705, 5779, 3929, 4781, 4779, 3929, 4505, 5110, 3876, 3929, 3929, 3929, 5791, 3972, 5439, 3839, 3929, 4815, 3929, 4778, 5514, 5443, 3839, 3929, 4815, 3929, 5108, 5841, 5843, 3929, 3929, 5139, 3929, 5050, 5457, 3492, 4485, 5465, 3770, 3878, 3929, 4821, 3929, 3929, 4417, 3929, 3929, 5472, 5477, 3929, 4881, 3929, 5701, 5473, 5482, 3929, 3929, 5140, 3929, 5478, 3929, 5420, 3877, 3546, 5494, 3714, 3632, 3929, 5514, 5508, 3929, 4907, 5500, 3929, 4890, 4880, 3929, 4193, 4873, 4873, 4195, 5742, 3379, 5773, 3631, 5525, 3929, 3929, 3929, 5870, 5524, 3760, 3896, 3929, 5819, 4519, 5513, 3488, 5530, 5351, 3929, 4708, 4846, 4159, 3929, 3929, 3929, 5155, 5159, 5336, 5518, 3761, 3929, 3929, 5512, 5536, 4519, 4522, 3989, 3929, 3929, 3929, 4913, 5518, 3929, 4964, 4293, 5179, 5352, 3929, 3929, 4125, 3929, 3929, 4247, 4402, 4086, 3353, 3929, 5556, 5570, 3929, 5570, 5578, 3983, 3929, 5573, 3929, 4971, 3751, 3929, 4253, 3929, 4261, 5594, 4522, 3929, 5601, 3984, 3929, 5574, 3929, 4978, 4224, 3929, 3929, 5608, 5571, 5607, 5351, 5349, 3929, 3929, 3929, 5206, 4827, 3929, 3929, 4897, 4901, 5733, 5834, 3662, 4782, 5757, 3879, 5132, 5614, 5467, 5620, 5626, 5630, 5634, 5638, 5642, 5646, 5650, 5654, 5658, 5662, 5666, 5670, 5673, 5677, 5681, 5685, 3929, 3929, 5256, 4275, 5756, 3929, 3972, 3929, 4996, 3929, 5561, 5708, 5718, 3929, 5722, 5729, 3929, 3888, 3998, 5749, 3929, 3929, 3929, 5311, 3929, 5731, 5753, 5459, 3929, 5014, 4985, 3929, 4344, 4461, 3929, 3875, 5420, 3929, 3878, 3929, 3929, 3929, 3736, 4071, 4506, 3929, 3766, 4521, 4967, 3929, 3929, 3929, 5387, 3820, 5761, 4485, 3929, 3929, 5424, 4691, 5113, 3998, 3929, 3929, 5435, 3873, 3929, 5112, 5770, 4234, 5849, 3929, 3929, 3929, 5447, 3929, 5732, 5805, 3929, 3972, 4093, 4097, 3929, 3905, 3929, 4408, 3670, 5786, 3929, 3929, 3929, 5447, 4693, 4517, 5803, 5807, 3929, 5046, 5056, 3929, 4434, 4245, 3929, 3770, 5321, 3929, 3649, 3929, 3929, 4977, 4223, 3929, 5830, 3929, 3929, 5450, 5042, 4423, 5838, 3929, 3929, 5507, 4159, 4423, 5838, 4248, 5847, 4578, 5805, 3929, 4548, 3929, 3929, 5813, 4423, 5854, 3929, 3929, 5552, 5542, 5859, 3929, 3929, 3929, 5564, 3929, 5786, 4235, 3929, 3929, 5566, 4810, 4103, 5807, 3990, 3929, 5059, 5357, 3929, 4549, 3929, 3929, 4549, 5416, 3929, 4674, 3929, 4868, 5532, 3929, 3929, 3929, 5710, 3929, 3831, 3998, 3929, 3929, 5712, 4818, 3973, 5866, 3929, 3929, 5739, 3929, 3972, 5865, 3929, 3929, 5745, 3929, 4964, 3929, 5180, 4523, 5824, 3832, 3929, 3929, 3929, 5777, 5545, 4965, 3929, 4409, 3929, 3675, 3738, 3973, 3547, 3929, 3929, 5841, 3929, 6277, 6502, 5875, 6282, 5878, 6547, 6266, 5881, 6546, 5889, 6232, 5882, 6232, 5892, 6221, 6267, 5888, 5883, 5884, 6232, 6232, 6232, 6232, 6414, 5887, 5883, 6232, 5891, 6232, 6232, 5894, 6232, 6232, 5922, 5937, 5949, 5938, 5939, 5949, 5944, 5950, 5944, 5944, 5940, 5944, 5941, 5952, 5941, 5944, 5946, 5945, 5946, 5946, 5946, 5946, 5947, 5941, 5948, 5952, 5948, 5944, 5942, 5954, 5956, 5958, 5962, 5960, 5959, 5964, 5966, 5967, 5971, 5967, 5968, 5967, 5969, 5974, 5973, 5976, 5978, 6293, 5998, 5875, 6282, 5896, 6871, 6437, 6282, 6321, 6282, 6282, 6282, 5917, 6456, 6456, 6456, 6456, 5991, 5906, 6379, 6455, 5990, 6019, 5991, 5904, 5904, 5904, 6456, 6456, 5926, 5899, 6456, 6456, 5997, 6282, 6408, 6410, 6282, 5932, 6282, 5933, 6464, 6024, 6282, 6282, 6379, 5924, 6282, 6282, 5924, 6282, 6362, 6010, 5984, 6282, 6003, 6282, 6362, 6282, 6282, 6282, 6004, 6456, 5906, 6455, 5990, 5904, 5902, 6456, 6456, 6456, 5906, 6457, 6019, 6019, 5904, 5904, 6456, 6456, 6282, 6282, 6282, 5980, 5917, 6456, 6456, 6456, 6455, 5905, 6456, 6445, 5926, 5926, 5926, 5926, 6032, 6032, 6008, 5932, 6282, 6282, 6282, 6434, 6024, 6282, 6019, 5904, 6456, 6282, 5896, 6873, 6282, 6282, 6282, 6474, 5903, 6457, 6019, 5904, 6456, 6229, 5904, 6456, 6456, 6456, 6018, 6457, 6019, 5991, 5905, 5906, 6282, 6282, 6282, 5984, 6282, 6282, 6282, 5925, 6543, 5905, 6456, 6456, 6456, 6282, 5905, 6229, 5905, 6229, 5905, 6282, 6650, 6437, 6043, 6515, 6056, 6672, 6088, 6052, 6515, 6520, 6054, 6060, 6058, 6515, 6515, 6083, 6528, 6101, 6761, 6518, 6521, 6516, 6517, 6063, 6065, 6068, 6061, 6057, 6515, 6515, 6519, 6515, 6070, 6072, 6066, 6515, 6515, 6515, 6515, 6125, 6522, 6074, 6515, 6515, 6076, 6515, 6523, 6079, 6082, 6515, 6081, 6055, 6091, 6089, 6090, 6093, 6114, 6092, 6113, 6114, 6114, 6114, 6114, 6115, 6117, 6116, 6117, 6117, 6118, 6119, 6120, 6121, 6121, 6095, 6097, 6099, 6122, 6123, 6124, 6524, 5900, 6515, 6518, 6103, 6108, 6110, 6104, 6105, 6109, 6106, 6112, 6121, 6127, 6129, 6282, 5899, 6282, 5925, 6463, 6321, 6282, 6294, 6006, 6378, 6282, 6508, 6282, 6449, 6646, 6218, 6604, 6282, 6524, 6291, 6282, 6774, 6282, 6270, 6282, 6282, 6282, 6000, 6000, 6027, 6161, 6282, 6282, 5895, 6375, 6282, 6312, 6230, 6366, 6265, 5876, 6282, 6282, 6282, 6015, 6406, 6282, 6284, 6027, 6027, 6137, 6282, 6282, 6379, 6281, 6372, 6028, 6159, 6282, 5899, 6282, 6282, 6282, 6573, 6282, 6282, 6467, 6282, 6311, 6312, 6372, 6282, 6282, 6282, 6019, 6019, 5904, 5904, 5904, 5904, 5905, 6456, 6456, 6031, 6154, 6158, 6282, 6149, 6273, 6282, 6163, 6282, 6677, 6280, 6166, 6279, 6682, 6685, 6501, 6173, 6175, 6178, 6178, 6178, 6178, 6176, 6181, 6180, 6181, 6181, 6183, 6181, 6185, 6187, 6188, 6188, 6188, 6194, 6193, 6194, 6193, 6193, 6189, 6191, 6190, 6190, 6196, 6196, 6198, 6203, 6202, 6204, 6208, 6203, 6205, 6199, 6200, 6210, 6206, 6212, 6282, 6282, 5896, 6282, 6282, 6282, 6512, 6282, 6150, 6135, 6320, 6500, 6163, 6282, 6282, 6282, 6026, 6282, 6026, 6166, 6282, 6282, 6282, 6027, 6221, 6282, 6505, 6282, 6282, 6282, 6032, 6238, 6282, 6241, 6282, 5899, 6451, 6282, 5913, 6669, 6401, 6238, 6282, 6282, 6282, 6037, 6245, 6282, 6282, 6282, 6040, 6282, 6282, 6225, 6248, 6282, 6282, 5916, 6722, 6377, 6247, 6249, 6282, 6282, 5924, 6370, 6252, 6253, 6282, 6282, 5932, 6282, 6282, 6530, 5924, 6254, 6282, 6282, 6254, 6282, 6322, 6228, 6282, 5933, 6378, 6282, 6378, 6282, 6452, 6282, 6432, 6317, 6282, 5917, 6086, 6725, 6727, 6216, 6086, 6726, 6450, 6231, 5926, 5933, 6008, 6008, 6008, 6282, 6282, 6282, 5918, 6282, 6282, 6282, 5923, 6309, 6683, 6282, 6282, 6282, 6148, 6216, 6308, 6310, 6282, 6282, 6282, 6149, 6282, 5903, 6397, 6605, 6282, 6282, 5933, 5933, 5933, 6780, 6282, 6282, 6282, 6229, 6282, 6282, 6282, 5933, 5924, 6316, 5917, 6723, 6377, 5916, 6722, 6323, 6448, 6454, 6216, 6332, 6436, 6683, 6282, 5917, 6328, 6465, 6450, 6217, 6231, 6160, 6436, 6683, 6328, 6448, 6454, 6216, 6610, 6436, 6683, 6282, 6221, 6602, 6310, 6282, 5984, 5899, 5925, 6229, 6435, 6500, 6281, 6722, 6013, 6465, 6450, 6160, 6603, 6683, 6282, 6282, 6231, 6218, 6310, 6282, 5984, 6282, 6283, 6043, 5914, 6282, 5933, 6328, 6465, 6450, 6647, 6604, 6282, 6000, 6282, 6282, 6283, 6277, 6707, 6733, 6282, 6722, 6465, 6230, 6396, 6282, 6282, 6282, 6235, 6686, 6282, 6708, 6281, 6282, 6000, 6437, 6362, 6338, 6279, 6282, 6282, 6283, 6444, 6145, 6683, 6282, 6282, 5933, 6003, 6282, 6282, 6282, 6006, 6375, 6465, 6708, 6282, 6005, 6282, 6282, 6287, 6289, 6282, 6548, 6282, 6282, 5933, 6282, 6282, 6282, 6137, 6282, 6282, 6020, 6282, 6375, 6282, 6282, 6282, 6281, 6471, 6218, 6683, 6282, 6282, 6282, 6370, 5984, 6282, 6010, 6795, 5984, 5899, 6282, 6282, 6661, 6282, 6000, 6137, 6282, 6282, 6282, 6282, 5896, 5914, 6704, 6273, 5928, 6340, 6344, 6503, 6348, 6349, 6349, 6350, 6355, 6352, 6349, 6349, 6349, 6349, 6354, 6355, 6355, 6355, 6356, 6357, 6357, 6357, 6357, 6357, 6358, 6359, 6359, 6359, 6359, 6383, 6360, 6382, 6382, 6382, 6361, 6282, 6282, 6282, 6283, 6043, 5903, 5897, 6485, 6376, 6395, 6425, 6282, 6282, 6282, 6293, 6291, 6338, 6282, 6282, 6282, 6284, 6282, 6282, 6345, 6282, 6282, 6291, 6282, 6282, 6282, 6230, 5876, 6282, 6407, 6282, 6282, 6282, 6286, 6282, 6282, 6037, 6411, 6417, 6282, 6282, 5979, 5903, 6470, 6313, 6647, 6281, 6282, 6282, 6408, 6416, 6418, 6282, 6282, 5979, 6525, 6458, 6342, 6422, 6282, 6282, 6282, 6288, 6282, 6664, 6731, 6282, 6012, 6000, 6282, 6012, 6335, 6310, 5985, 6504, 6282, 6282, 6273, 6470, 6372, 6273, 6504, 6385, 6282, 6282, 6412, 6257, 6598, 6600, 6282, 6411, 6413, 6597, 6599, 6599, 6282, 6282, 6282, 6291, 6410, 6282, 6322, 6451, 5926, 5926, 6008, 6008, 6008, 5932, 6236, 6282, 6282, 6282, 6292, 5982, 6282, 6283, 6442, 6050, 6013, 6609, 6259, 6424, 6310, 6282, 5919, 5920, 6282, 6282, 6011, 5916, 6282, 6664, 6282, 6282, 6023, 6437, 6459, 5983, 6013, 6594, 6700, 6437, 6282, 6424, 6437, 6282, 6282, 6235, 6480, 6481, 6282, 6282, 6133, 6282, 6282, 6485, 6376, 6647, 6282, 6016, 6282, 6282, 5933, 6330, 6454, 6217, 6683, 6282, 6282, 6484, 5917, 5929, 6011, 6608, 6259, 6425, 6282, 6486, 5983, 6013, 6594, 6786, 6437, 6282, 6282, 6282, 6294, 6282, 6283, 6484, 5917, 5983, 6013, 6531, 6471, 6282, 6282, 6146, 6683, 6282, 6282, 6155, 6282, 6282, 6385, 6282, 6322, 6282, 6282, 6275, 6493, 5917, 5983, 6324, 6259, 6729, 6282, 6019, 6019, 6019, 5991, 5904, 6277, 5903, 6531, 6011, 6148, 6282, 6282, 6282, 6234, 6531, 6282, 6282, 6282, 6322, 6282, 6133, 6372, 6505, 6282, 6230, 6282, 6282, 6171, 6756, 6531, 6046, 6834, 6437, 6282, 6282, 6285, 6530, 5924, 6282, 6684, 6282, 6149, 6282, 6282, 6282, 6325, 6285, 6530, 6045, 6159, 6024, 6046, 6386, 6282, 6282, 6282, 6372, 6282, 6294, 6282, 6530, 6464, 6386, 6282, 6282, 6215, 6224, 5933, 5924, 6410, 6282, 6040, 6282, 6482, 6282, 6282, 6282, 6531, 6536, 6024, 6282, 6282, 6282, 6370, 5987, 6282, 6535, 6282, 6282, 6227, 6282, 6282, 6282, 6378, 6378, 6378, 6282, 6452, 5994, 6282, 6282, 6282, 6394, 6282, 6282, 6282, 6404, 6539, 6333, 6683, 6282, 6020, 6282, 6282, 6282, 6341, 6282, 6570, 6300, 6569, 6301, 6370, 6545, 6300, 6302, 6303, 6303, 6303, 6303, 6303, 6304, 6551, 6554, 6552, 6561, 6552, 6555, 6563, 6564, 6563, 6563, 6563, 6563, 6564, 6556, 6557, 6557, 6557, 6557, 6558, 6372, 6273, 6282, 6282, 6243, 6282, 6509, 6566, 6282, 6282, 6271, 6213, 6282, 6283, 6568, 6282, 6021, 6041, 6282, 6027, 6282, 6321, 6282, 6006, 6282, 6282, 6027, 6462, 6282, 6282, 6282, 6572, 6282, 6168, 6282, 6575, 6510, 6282, 6029, 6282, 6282, 6282, 6588, 5907, 5909, 5911, 6282, 6036, 6282, 6282, 6388, 6407, 5908, 5910, 6282, 6282, 6272, 6282, 6526, 6282, 5916, 6322, 6282, 6378, 6282, 6020, 6282, 6278, 6282, 6282, 6394, 5924, 6278, 6282, 6283, 6502, 6365, 6282, 6579, 6282, 6282, 6275, 6525, 5914, 5992, 6371, 6048, 6365, 6367, 6369, 6282, 6282, 6277, 6531, 6046, 6275, 6583, 5993, 6047, 6256, 6256, 6366, 6368, 6282, 6282, 6452, 6000, 6282, 6282, 6282, 6408, 6282, 6027, 6282, 6372, 6526, 6282, 5899, 6539, 6664, 6682, 6282, 6282, 6282, 6146, 6282, 6482, 6282, 6006, 6451, 6282, 6282, 6282, 5985, 6458, 6342, 6313, 6136, 6152, 6282, 6037, 6378, 6282, 6282, 6282, 6421, 6584, 6020, 6437, 6683, 6282, 6027, 6321, 6282, 6451, 6646, 6152, 6282, 6282, 6282, 6410, 6282, 6282, 6282, 6375, 6282, 6000, 6526, 6322, 6533, 6682, 6282, 6408, 6282, 6282, 6282, 6505, 6282, 6282, 6278, 6282, 6282, 6282, 6143, 6371, 6472, 6282, 6282, 6282, 6423, 6539, 6437, 6683, 6282, 6040, 6148, 6040, 6149, 6273, 6229, 6682, 6282, 6470, 6282, 6282, 6283, 6282, 6282, 6282, 6524, 6548, 5933, 6282, 5933, 6282, 6434, 6410, 6282, 6282, 6434, 6537, 6282, 6664, 6491, 6866, 5876, 6482, 6491, 6282, 6282, 6283, 6410, 6282, 6427, 6282, 6282, 5980, 6011, 6276, 6037, 6285, 6038, 6590, 6783, 6607, 6612, 6620, 6619, 6620, 6620, 6616, 6620, 6620, 6618, 6622, 6620, 6614, 6613, 6624, 6627, 6626, 6627, 6627, 6628, 6630, 6630, 6634, 6630, 6632, 6631, 6630, 6630, 6630, 6636, 6638, 6638, 6637, 6637, 6640, 6641, 6282, 6132, 6282, 6282, 5895, 5924, 5984, 6282, 6640, 6637, 6640, 6640, 6640, 6640, 6505, 5903, 6644, 6331, 6649, 6282, 6282, 6229, 5879, 6282, 6527, 6653, 6148, 6282, 6137, 5924, 6282, 6282, 6282, 6230, 6281, 6282, 6282, 6306, 6402, 6433, 6346, 6656, 6658, 6549, 6282, 6282, 6283, 6475, 6423, 6282, 6282, 6282, 6437, 6682, 5912, 6668, 6400, 6282, 6157, 6282, 6282, 5896, 6451, 5980, 5917, 6029, 6221, 6281, 6282, 6282, 6524, 6282, 6282, 6282, 5930, 6664, 6282, 6264, 6683, 6694, 6282, 6282, 6282, 6452, 6282, 6282, 6282, 6285, 5897, 6453, 6654, 6282, 6346, 6295, 6282, 6282, 6283, 6582, 6297, 6282, 6681, 6282, 6164, 6024, 6282, 6133, 6451, 6282, 5988, 6281, 6285, 5980, 6458, 6371, 6263, 6647, 6281, 6282, 6676, 6282, 6676, 6514, 5903, 6680, 6465, 6489, 5995, 6282, 6282, 6283, 6496, 6085, 6282, 6513, 6525, 6679, 6688, 6688, 6399, 6713, 6281, 6282, 6286, 6282, 6037, 6282, 6282, 6282, 5899, 6691, 6497, 6724, 6488, 6734, 6282, 6282, 6282, 6498, 6282, 6282, 6282, 6255, 6282, 6283, 6691, 6696, 6724, 6488, 6698, 6331, 6222, 6282, 6282, 6282, 6431, 6296, 6282, 6282, 6282, 6499, 6282, 6282, 5903, 6464, 6231, 6734, 6696, 6134, 6733, 6281, 6693, 6282, 6282, 6434, 6282, 6282, 6282, 6277, 6525, 6531, 6471, 6218, 6231, 6490, 6282, 6282, 6282, 6504, 6548, 6282, 6283, 6278, 6282, 6275, 6710, 6733, 6282, 6169, 6282, 6282, 6509, 6003, 6712, 6282, 6282, 6282, 6508, 5899, 6702, 6490, 6282, 6282, 6283, 6861, 6854, 6033, 6858, 6646, 6218, 6604, 6282, 6282, 6282, 6577, 6286, 6282, 6394, 6282, 6229, 6019, 6019, 6019, 6019, 5904, 6286, 6282, 6137, 6282, 6229, 6282, 6292, 6229, 6282, 6282, 6372, 6505, 6282, 6437, 6683, 6282, 6229, 6146, 6265, 6282, 6283, 6525, 5927, 6539, 6729, 6683, 6282, 6282, 6650, 6282, 6282, 6283, 6863, 6364, 6024, 6282, 6282, 6283, 6869, 6282, 6362, 6282, 6362, 6363, 6010, 6592, 5925, 6719, 6591, 6593, 6718, 6721, 5934, 5934, 5935, 6469, 6736, 5934, 5934, 5934, 6736, 6738, 6742, 6740, 6739, 6744, 6746, 6751, 6751, 6752, 6753, 6747, 6748, 6748, 6748, 6749, 6751, 6751, 6751, 6753, 6753, 6753, 6753, 6758, 6754, 6755, 6282, 6282, 6285, 6282, 6282, 6282, 6014, 6760, 5981, 6007, 6728, 6282, 6763, 6282, 6282, 6285, 6496, 6531, 6282, 6283, 6768, 6770, 6282, 6282, 6282, 6539, 6392, 6282, 6282, 6392, 6027, 6156, 6282, 6282, 6293, 6586, 6282, 6373, 6281, 6285, 6507, 5903, 6470, 6326, 6505, 6659, 6282, 6234, 6229, 5879, 6283, 6496, 6703, 6776, 6704, 6777, 6282, 6282, 6282, 6548, 6282, 5918, 6025, 6282, 6282, 6026, 6282, 6286, 6505, 6394, 6282, 6291, 6370, 6282, 6370, 6282, 6496, 6085, 6831, 6147, 6603, 6683, 6282, 6380, 6282, 6282, 6370, 6282, 6282, 6282, 6003, 6282, 6294, 6336, 6000, 6282, 6239, 6846, 6282, 6260, 6282, 6282, 6282, 6642, 6379, 6282, 6505, 6336, 6283, 6702, 6782, 6319, 6218, 6604, 6282, 6785, 5999, 6282, 6269, 6663, 6282, 6140, 6282, 6282, 6393, 6282, 5982, 6724, 6319, 6218, 6604, 6539, 6310, 6282, 6282, 6375, 6370, 6375, 6788, 6320, 6310, 6000, 6000, 6282, 6282, 6375, 6548, 6282, 6282, 6282, 6275, 6084, 6447, 6282, 6788, 6429, 6683, 6282, 6282, 6664, 6683, 6282, 6273, 6541, 6148, 6282, 6394, 6000, 6282, 6274, 6282, 6003, 6318, 6429, 6683, 6282, 6275, 5898, 5915, 6282, 6282, 6370, 6370, 6370, 6664, 6282, 6683, 6282, 6410, 6282, 6699, 6282, 6275, 5901, 5982, 6724, 6291, 6282, 6282, 6531, 6689, 6282, 6282, 6220, 6282, 6537, 6282, 6282, 6282, 6664, 6146, 6282, 6282, 6434, 6281, 6282, 6282, 6282, 6020, 6282, 6006, 6410, 6408, 6282, 6027, 6282, 6282, 6250, 6843, 6434, 6410, 6282, 6434, 6410, 6282, 6408, 6282, 6322, 6282, 6410, 6410, 6027, 6282, 6275, 6702, 6231, 6490, 6146, 6282, 6146, 6282, 6282, 6282, 6671, 6146, 6410, 6408, 6408, 6409, 6409, 6409, 6409, 6409, 6282, 6282, 6282, 6682, 6282, 6282, 6285, 6039, 6216, 6221, 6281, 6286, 6282, 6282, 6790, 6543, 6282, 6505, 6003, 6282, 6559, 6282, 6282, 6559, 6508, 6792, 6282, 6077, 6139, 6282, 6282, 6379, 6374, 6793, 6806, 6798, 6798, 6801, 6799, 6798, 6799, 6798, 6797, 6803, 6808, 6807, 6808, 6805, 6808, 6809, 6810, 6813, 6814, 6815, 6816, 6815, 6818, 6811, 6813, 6811, 6813, 6820, 6822, 6822, 6821, 6821, 6824, 6824, 6824, 6824, 6821, 6824, 6824, 6828, 6825, 6826, 6282, 6282, 6282, 6683, 6282, 6282, 6689, 6439, 6282, 6277, 6715, 6282, 6282, 6282, 6510, 6035, 6282, 6282, 6282, 6684, 6282, 6282, 6282, 6233, 6282, 6716, 6282, 6580, 6419, 6282, 6836, 6282, 6281, 6282, 6282, 6283, 6293, 6337, 6282, 6838, 6840, 6282, 6282, 6666, 6282, 6143, 6292, 6282, 6282, 6292, 6282, 6282, 6282, 6378, 6845, 6282, 6282, 6845, 6282, 6487, 6282, 6282, 6391, 6391, 6651, 6282, 6282, 6282, 6730, 6512, 6282, 6282, 6282, 6830, 6853, 5931, 6141, 6428, 6602, 6604, 6282, 6282, 6409, 6410, 6282, 6852, 6854, 6856, 6450, 6002, 6282, 6001, 6003, 6282, 6645, 6231, 6281, 6282, 6282, 6674, 6282, 6167, 6282, 6282, 6000, 6282, 6000, 6034, 6282, 6282, 6282, 6848, 6282, 6394, 6683, 6282, 6282, 5933, 6003, 5933, 6003, 6282, 6830, 6645, 6231, 6222, 6487, 6282, 6024, 6282, 6282, 6693, 6282, 6282, 6282, 6464, 6861, 6854, 6009, 6377, 6525, 5931, 6011, 6465, 6282, 6830, 5885, 6282, 6282, 6702, 5931, 6319, 6436, 6683, 5916, 6282, 6282, 5925, 6282, 6282, 6448, 6282, 6282, 6931, 6282, 6282, 6451, 6282, 6282, 6282, 6860, 6044, 6011, 6465, 6449, 6647, 6310, 6282, 6282, 6142, 6436, 6683, 6282, 6282, 6732, 5924, 5984, 6861, 5983, 6377, 6454, 5982, 6321, 6282, 6294, 6138, 6282, 6461, 6151, 6437, 6282, 6282, 6732, 6772, 6860, 5983, 6465, 6151, 6437, 6282, 6865, 6282, 6282, 6282, 6860, 6337, 6437, 6282, 6282, 6466, 6282, 6144, 6436, 6282, 6282, 6282, 6868, 6219, 6282, 6282, 6282, 6468, 6282, 6282, 6732, 6282, 5916, 6262, 6299, 6282, 5918, 5918, 5918, 6378, 6282, 6282, 6526, 6282, 6148, 6282, 6283, 6293, 6586, 6292, 6502, 6437, 6282, 6282, 6282, 6294, 6282, 6292, 6294, 6282, 6282, 6474, 5980, 6293, 6291, 6282, 6282, 6292, 6502, 6282, 6278, 6294, 6282, 6278, 6282, 6282, 6765, 6282, 6229, 6362, 6282, 6230, 6320, 6500, 6282, 6505, 6282, 6292, 6502, 6282, 6505, 6233, 6282, 6282, 6293, 6282, 6282, 6282, 6474, 6478, 6291, 6278, 6282, 6282, 6292, 6531, 6536, 6875, 6255, 6282, 6282, 6476, 6282, 6006, 6255, 6282, 6006, 6390, 6282, 6314, 6049, 6282, 6877, 6878, 6881, 6375, 6880, 5930, 6282, 6532, 6542, 6883, 6596, 6258, 6885, 6596, 6595, 6595, 6886, 6889, 6595, 6888, 6890, 6889, 6892, 6897, 6893, 6894, 6895, 6899, 6900, 6905, 6905, 6901, 6902, 6912, 6903, 6902, 6906, 6905, 6906, 6905, 6906, 6907, 6909, 6908, 6910, 6914, 6908, 6908, 6922, 6922, 6921, 6922, 6923, 6916, 6917, 6918, 6920, 6926, 6925, 6928, 6460, 6371, 6282, 6282, 6482, 5932, 6321, 6285, 6282, 6282, 6494, 6371, 6930, 6282, 6282, 6282, 6505, 6494, 6371, 6130, 6282, 6282, 6282, 6505, 6506, 6282, 6282, 6282, 6312, 6933, 6282, 6505, 6935, 6282, 6282, 6937, 6282, 6282, 6767, 6769, 6290, 6282, 6282, 6282, 6505, 6692, 6011, 6313, 6291, 6233, 6282, 6282, 6508, 6282, 6282, 6282, 5916, 6030, 6282, 6423, 6170, 6282, 6282, 6170, 6011, 6372, 6282, 5916, 6282, 6282, 5915, 6451, 6440, 6282, 6282, 5918, 6322, 6283, 6939, 6446, 6705, 6447, 6291, 6282, 6282, 6294, 6282, 6282, 6282, 6438, 6282, 6282, 6511, 6282, 6282, 6282, 6842, 6149, 6282, 6149, 6282, 6282, 6779, 6007, 6728, 6310, 6282, 6282, 6319, 6310, 6282, 6282, 6363, 6282, 6692, 6011, 6372, 5916, 6282, 5915, 6282, 6282, 6511, 6268, 6286, 6282, 5924, 6282, 6282, 6833, 6282, 6279, 6398, 6282, 6282, 6014, 6282, 6282, 6282, 6601, 6282, 6439, 5933, 6133, 6282, 6148, 6282, 6255, 6282, 5914, 5931, 6705, 6282, 6282, 6850, 6282, 6850, 6282, 6372, 6282, 6372, 6282, 6149, 6282, 6505, 5914, 5931, 6291, 6282, 6282, 5982, 6585, 6282, 6282, 6660, 6291, 6043, 5914, 6291, 6282, 6282, 6283, 6043, 5899, 6282, 6282, 1048576, 1073741824, 0x80000000, 1075838976, 2097152, 0x80000000, 4194560, 4196352, -2143289344, -2143289344, 4194304, 0x80000000, 37748736, 541065216, 541065216, -2143289344, 4198144, 4196352, 276901888, 8540160, 4194304, 1, 4, 16, 64, 0, 48, 64, 32, 64, 64, 96, 0, 59, 140224, 5505024, -1887436800, 0, 63, 64, 128, 0, 64, 256, 0, 110, 110, 8425488, 4194304, 1024, 0, 128, 128, 512, 512, 1024, 1024, 2048, 0, 256, 256, 257, 37748736, 742391808, 742391808, 775946240, -1371537408, 775946240, 4718592, 775946240, 775946240, 171966464, 171966464, 775946240, 239075328, -1405091840, -1371537408, 239075328, 171966464, 64, 4718592, 2097216, 4720640, 541589504, 4194368, 4194368, 541065280, 541589504, 4194400, -2143289280, 4194368, -2143285440, -2143285408, -2143285408, -2109730976, 775946336, 776470528, -2143285408, 776470528, 775946304, 775946304, -1908404384, 775946304, -1908404384, 2, 8, 32, 128, 1024, 4096, 0, 260, 8392704, 0, 1856, 64, 524288, 64, 896, 8192, 67108864, 0x80000000, 96, 262144, 262144, 8192, 0, 288, 8388608, 0, 384, 0, 512, 2048, 2048, 4096, 4096, 8192, 8192, 16384, 0, 520, 520, 96, 524288, 524288, 0, 2432, 2048, 268435456, 0, 24576, 0, 32768, 32768, 65536, 1048576, 128, 2048, 12288, 0, 12289, 0, 16384, 16384, 32768, 0, 1864, 2, 16, 1024, 98304, 131072, 262144, 1048576, 512, 5120, 2, 536936448, 80, 528, 528, 2097168, 2097168, 268435472, 524304, 1048592, 2097168, 24, 560, 48, 2097680, 1048592, 3145744, 1048592, 20, 560, 48, 3146256, 2097552, 3146256, 28, 16, 8192, 2, 2098064, 163577856, 17, 21, 112, 128, 3584, 8192, 2228784, -161430188, -161430188, -161429680, -161430188, -161429676, -161430188, -161298576, -160299088, -161298576, -161298572, -160774288, -160299084, 146804757, 146812949, 146862101, 146863389, 146863389, 148960541, -161429740, -161429676, 146863421, 148960541, 146863389, -161429676, -160905388, -161429676, -161429676, -161429675, -161349072, -161349072, -161347728, -161347728, -161298572, -161298572, -160774284, -161298572, 16, 262160, -18860267, -160774284, -18729163, 0, 58368, 159383552, 0, 65536, 2097152, 8388608, 33554432, 0, 66048, 0, 77824, 524288, 33554432, 1024, 262144, 2097152, 16777216, 67108864, 0, 131072, 524288, 134217728, 0x80000000, 1, 32768, 196608, 0, 131328, 131072, 16777216, 100663296, -1073741824, 164096, 0, 131584, 2621440, 0, 139264, 0, 150528, 0, 235712, 16777216, 1073774592, 1226014816, 100665360, -2046818288, 100665360, 100665360, -2044196848, 1091799136, 1091799136, 1091803360, 1091799136, 1158908000, 1158908001, 1192462432, 1192462448, 1192462448, 1870638912, 1870655296, 1870638912, 1200851056, 1200851056, 1091799393, 1870655296, 1870655296, 1870655312, 1870655316, 1870655312, 1870655312, 1870638928, 1870655316, 1870655316, 1870655317, 1870655316, 1879043952, 1870655348, 1870655316, 1879027568, 1879043952, 1879043956, 0, 284672, 229440, 1048576, 2097152, 67108864, 134217728, 8, 4194304, 16777216, 0x80000000, 1224736768, 0, 503616, 2048, 100663296, 0, 524288, 2097152, 4194304, 4194304, 0, 40, 0, 44, -2046820352, 0, 605503, 231488, 1090519040, 1157627904, 1191182336, 9437184, 231744, 520000, 7864320, 1862270976, 0, 867391, 1862270976, 1862270976, 16252928, 0, 1048576, 4194304, 25165824, 25165824, 33554432, 8192, 98304, 1048576, 8388608, 134217728, 268435456, 4194432, 3145728, 0, 24, 0, 29, 0, 32, 1, 2, 2, 4, 0, 0x80000000, 0x80000000, 0, 0, 1, 0, 2, 0, 3, 240, 19456, 262144, 0, 4, 8, 0, 6, 0, 7, 150994944, 0, 1049088, 1049088, 12845065, 12845065, 147193865, 128, 6144, 4194304, 251658240, 536870912, 1073741824, 32768, 131072, 1048576, 4096, 83886080, 117440512, 0, 3145728, 16777216, 134217728, 0, 2048, 8192, 229376, 0, 2304, 1536, 8192, 1536, 65536, 4194304, 67108864, 536870912, 9216, 33554432, 262144, 134217728, 1073741824, 50331649, 9476, 512, 8192, 134218240, 1050624, 0, 5242880, 1275208192, 4194312, 4194312, 4194344, 4194312, 541065224, 4203820, -869654016, -869654016, 1279402504, 1279402504, 2143549415, 2143549415, 2143549423, 0, 8388608, 4096, 4194304, 8388608, 16777216, 33554432, -1946157056, 0, 8192, 131072, 0, 1792, 0, 1024, 8192, 65536, 0, 1536, 0x80000000, 2143549423, 2143549423, 2143549415, 1, 16777216, 268435456, 512, 139264, 2760704, -872415232, 0, 19947520, 0, 33554432, 67108864, 1073741824, 1073741824, 262144, 7340032, -2030043136, 0, 331776, 300, 4203520, 4333568, 1275068416, 0, 16777216, 16777216, 0, 999, 259072, 4194304, 4194432, 999, 29619200, 2113929216, 0, 58720256, 1007, 1007, 0, 67108864, 402653184, 536870912, 2048, 1048576, 16777216, 536870912, 300, 0, 83886080, 0, 2097152, 134217728, 536870912, 0, 49152, 0, 57344, 102, 384, 6, 96, 128, 3072, 16384, 65536, 524288, 1048576, 0, 4096, 262144, 524288, 96, 96, 64, 384, 512, 4096, 65536, 131072, 1024, 65536, 262144, 131072, 32768, 256, 384, 8192, 33554432, 0x80000000, 1, 6, 8, 8388608, 96, 384, 104, 104, 0, 134217728, 6, 32, 256, 512, 65536, 7340032, 50331648, 0, 8396800, 4, 32, 384, 4, 64, 1024, 2097152, 268435456, 1073741824, 8, 262144, 512, 0, 8, 8, 16, 0, 9, 0, 12, 0, 15, 16, 16, 17, 20, 16, 20, 48, 16, 28, 0, 16, 32, 0, 21, 53, 4, 256, 1024, 524288, 536870912, 256, 65536, 16777216, 1073741824, 2048, 524288, 32, 4100, 1024, 134217728, 1049088, 270532608, 2097152, 2097152, 0, 23, 5505537, 5587457, 5591557, 147202057, 5587457, 13894153, -1881791493, -1881791493, 0, 134218752, 5587465, 5587457, 13894153, 13894153, 81003049, 4456448, 8388608, 5505024, 0, 134348800, 134348800, 82432, 0, 142606336, 5, 86528, 41, 75497472, 81920, 0, 184549376, 2, 56, 64, 2048, 262144, 536870912, 2048, 134217728, -2113929216, 16777216, 1073743872, 268435968, 229376, 25165824, 92274688, 25165824, 100663296, 402653184, 1610612736, 0, 100663296, 134217728, 805306368, 1073741824, 8388608, 268567040, 16384, 229376, 4194304, 117440512, 2113544, 68423701, -2079059883, -2079059947, 85200917, 68423701, 68423765, 68489237, 68423701, 68423701, 72618005, 68423701, 68425749, 68423703, 85200919, 69488664, 69488664, 70537244, 70537245, 70537245, -2076946339, -2076946403, 70537245, 70537309, 70539293, -2022351745, -2022351617, -2022351745, -2022351617, -2022351617, 0, 243269632, 256, 32768, 1048576, 33554432, 134217728, -2113929216, 0, 268435456, 49152, 266240, 1048576, 67108864, -2080374784, -2080374784, 268288, 0, 301989888, 0, 318767104, 282624, 0, 536870912, 28, 3145728, 192, 351232, 7340032, 5, 16, 1049104, 12, 3145728, 13, 0, 1073741825, 192, 3072, 20480, 0, 1073741824, 0, 262144, 2621440, -1073741824, 20480, 65536, 268435456, 14, 32, 512, 131072, 268435456, 192, 1024, 64, 32768, 33554432, 268435456, 4, 128, 3840, 16384, 262144, 128, 2097152, 1073741824, 4, 2097152, 4, 50331648, 67108864, 128, 50331648, 1073741824, 128, 268435968, 268435968, 268436032, 256, 1536, 2048, 16384, 98304, 393216, 524288, 268435456, 536870912, 9216, 0, 4194304, 50331648, 0x80000000, 256, 536871168, -1879046336, -1879046334, -1879046326, -1879046334, 1073744256, -1879046334, -1879046326, -1845491902, -1878784182, 268444480, 268436288, 268436288, 268436289, 268444480, 268444480, 2100318149, 2100318149, 2100326341, 0, 1090519040, 2100326341, 2100326341, 1, 16, 536936448, 576, 0, 832, 8192, 1, 4036, 19939328, 2080374784, 0, 1, 1024, 768, 8192, 16384, 19922944, 2080374784, 1, 128, 4096, 3584, 16384, 524288, 8, 33554432, 402653184, 2048, 3145728, 128, 131072, 268500992, 4243456, 4096, 1048588, 0, 1258292224, 1124073472, 1124073472, 1124073488, 1124073474, 1124073472, 1392574464, 1124073472, 1073754113, 12289, 1124073472, 12289, 12289, 1098920193, 1132474625, 1098920209, 1132474625, 1132474625, 1124085761, 1124085761, 1124085777, 1258304513, 1124085761, 1400975617, 2132360255, 2132622399, 2132360255, 2132622399, 2132622399, 2141011263, 0, 2140749119, 2141011263, 2, 16384, 3145728, 12545, 25165824, 268435456, 12305, 13313, 12561, 0, 78081, 327155712, 605247, 1058013184, 1073741824, 867647, 1066401792, 0, 1, 12288, 256, 8388608, 1, 30, 32, 1024, 2048, 339968, 327680, 524288, 1, 14, 16, 14, 1024, 16384, 4194304, 134217728, 1, 12, 1024, 8, 134217728, 8, 536870912, 9437184, 0, 68157440, 137363456, 0, 137363456, 66, 66, 100680704, 25165824, 26214400, 92274688, 25165952, 93323264, 92274688, 92274688, 92274720, 93323264, 25165890, 100721928, 100721928, 100787464, 100721664, 100721664, 100853000, 100721928, 125977600, 125846528, 125846528, 125846560, 125977600, 125977600, 127026176, 281843, 281843, 1330419, 281843, 126895104, 125846528, 1330419, 1330419, 72633587, 5524723, 72633587, 92556531, 93605107, 93605107, 5524723, 5524723, 39079155, 97799411, 127290611, 127290611, 131484915, 0, 17408, 33554432, 1073741824, 58624, 0, 124160, 189696, 148480, 50331648, 2, 112\n];\n\nXQueryParser.TOKEN =\n[\n  \"(0)\",\n  \"PragmaContents\",\n  \"DirCommentContents\",\n  \"DirPIContents\",\n  \"CDataSection\",\n  \"Wildcard\",\n  \"EQName\",\n  \"URILiteral\",\n  \"IntegerLiteral\",\n  \"DecimalLiteral\",\n  \"DoubleLiteral\",\n  \"StringLiteral\",\n  \"PredefinedEntityRef\",\n  \"'\\\"\\\"'\",\n  \"EscapeApos\",\n  \"ElementContentChar\",\n  \"QuotAttrContentChar\",\n  \"AposAttrContentChar\",\n  \"PITarget\",\n  \"NCName\",\n  \"QName\",\n  \"S\",\n  \"S\",\n  \"CharRef\",\n  \"CommentContents\",\n  \"EOF\",\n  \"'!'\",\n  \"'!='\",\n  \"'\\\"'\",\n  \"'#'\",\n  \"'#)'\",\n  \"'$'\",\n  \"'%'\",\n  \"''''\",\n  \"'('\",\n  \"'(#'\",\n  \"'(:'\",\n  \"')'\",\n  \"'*'\",\n  \"'*'\",\n  \"'+'\",\n  \"','\",\n  \"'-'\",\n  \"'-->'\",\n  \"'.'\",\n  \"'..'\",\n  \"'/'\",\n  \"'//'\",\n  \"'/>'\",\n  \"':'\",\n  \"':)'\",\n  \"'::'\",\n  \"':='\",\n  \"';'\",\n  \"'<'\",\n  \"'<!--'\",\n  \"'</'\",\n  \"'<<'\",\n  \"'<='\",\n  \"'<?'\",\n  \"'='\",\n  \"'>'\",\n  \"'>='\",\n  \"'>>'\",\n  \"'?'\",\n  \"'?>'\",\n  \"'@'\",\n  \"'NaN'\",\n  \"'['\",\n  \"']'\",\n  \"'after'\",\n  \"'all'\",\n  \"'allowing'\",\n  \"'ancestor'\",\n  \"'ancestor-or-self'\",\n  \"'and'\",\n  \"'any'\",\n  \"'append'\",\n  \"'array'\",\n  \"'as'\",\n  \"'ascending'\",\n  \"'at'\",\n  \"'attribute'\",\n  \"'base-uri'\",\n  \"'before'\",\n  \"'boundary-space'\",\n  \"'break'\",\n  \"'by'\",\n  \"'case'\",\n  \"'cast'\",\n  \"'castable'\",\n  \"'catch'\",\n  \"'check'\",\n  \"'child'\",\n  \"'collation'\",\n  \"'collection'\",\n  \"'comment'\",\n  \"'constraint'\",\n  \"'construction'\",\n  \"'contains'\",\n  \"'content'\",\n  \"'context'\",\n  \"'continue'\",\n  \"'copy'\",\n  \"'copy-namespaces'\",\n  \"'count'\",\n  \"'decimal-format'\",\n  \"'decimal-separator'\",\n  \"'declare'\",\n  \"'default'\",\n  \"'delete'\",\n  \"'descendant'\",\n  \"'descendant-or-self'\",\n  \"'descending'\",\n  \"'diacritics'\",\n  \"'different'\",\n  \"'digit'\",\n  \"'distance'\",\n  \"'div'\",\n  \"'document'\",\n  \"'document-node'\",\n  \"'element'\",\n  \"'else'\",\n  \"'empty'\",\n  \"'empty-sequence'\",\n  \"'encoding'\",\n  \"'end'\",\n  \"'entire'\",\n  \"'eq'\",\n  \"'every'\",\n  \"'exactly'\",\n  \"'except'\",\n  \"'exit'\",\n  \"'external'\",\n  \"'first'\",\n  \"'following'\",\n  \"'following-sibling'\",\n  \"'for'\",\n  \"'foreach'\",\n  \"'foreign'\",\n  \"'from'\",\n  \"'ft-option'\",\n  \"'ftand'\",\n  \"'ftnot'\",\n  \"'ftor'\",\n  \"'function'\",\n  \"'ge'\",\n  \"'greatest'\",\n  \"'group'\",\n  \"'grouping-separator'\",\n  \"'gt'\",\n  \"'idiv'\",\n  \"'if'\",\n  \"'import'\",\n  \"'in'\",\n  \"'index'\",\n  \"'infinity'\",\n  \"'inherit'\",\n  \"'insensitive'\",\n  \"'insert'\",\n  \"'instance'\",\n  \"'integrity'\",\n  \"'intersect'\",\n  \"'into'\",\n  \"'is'\",\n  \"'item'\",\n  \"'json'\",\n  \"'json-item'\",\n  \"'key'\",\n  \"'language'\",\n  \"'last'\",\n  \"'lax'\",\n  \"'le'\",\n  \"'least'\",\n  \"'let'\",\n  \"'levels'\",\n  \"'loop'\",\n  \"'lowercase'\",\n  \"'lt'\",\n  \"'minus-sign'\",\n  \"'mod'\",\n  \"'modify'\",\n  \"'module'\",\n  \"'most'\",\n  \"'namespace'\",\n  \"'namespace-node'\",\n  \"'ne'\",\n  \"'next'\",\n  \"'no'\",\n  \"'no-inherit'\",\n  \"'no-preserve'\",\n  \"'node'\",\n  \"'nodes'\",\n  \"'not'\",\n  \"'object'\",\n  \"'occurs'\",\n  \"'of'\",\n  \"'on'\",\n  \"'only'\",\n  \"'option'\",\n  \"'or'\",\n  \"'order'\",\n  \"'ordered'\",\n  \"'ordering'\",\n  \"'paragraph'\",\n  \"'paragraphs'\",\n  \"'parent'\",\n  \"'pattern-separator'\",\n  \"'per-mille'\",\n  \"'percent'\",\n  \"'phrase'\",\n  \"'position'\",\n  \"'preceding'\",\n  \"'preceding-sibling'\",\n  \"'preserve'\",\n  \"'previous'\",\n  \"'processing-instruction'\",\n  \"'relationship'\",\n  \"'rename'\",\n  \"'replace'\",\n  \"'return'\",\n  \"'returning'\",\n  \"'revalidation'\",\n  \"'same'\",\n  \"'satisfies'\",\n  \"'schema'\",\n  \"'schema-attribute'\",\n  \"'schema-element'\",\n  \"'score'\",\n  \"'self'\",\n  \"'sensitive'\",\n  \"'sentence'\",\n  \"'sentences'\",\n  \"'skip'\",\n  \"'sliding'\",\n  \"'some'\",\n  \"'stable'\",\n  \"'start'\",\n  \"'stemming'\",\n  \"'stop'\",\n  \"'strict'\",\n  \"'strip'\",\n  \"'structured-item'\",\n  \"'switch'\",\n  \"'text'\",\n  \"'then'\",\n  \"'thesaurus'\",\n  \"'times'\",\n  \"'to'\",\n  \"'treat'\",\n  \"'try'\",\n  \"'tumbling'\",\n  \"'type'\",\n  \"'typeswitch'\",\n  \"'union'\",\n  \"'unique'\",\n  \"'unordered'\",\n  \"'updating'\",\n  \"'uppercase'\",\n  \"'using'\",\n  \"'validate'\",\n  \"'value'\",\n  \"'variable'\",\n  \"'version'\",\n  \"'weight'\",\n  \"'when'\",\n  \"'where'\",\n  \"'while'\",\n  \"'wildcards'\",\n  \"'window'\",\n  \"'with'\",\n  \"'without'\",\n  \"'word'\",\n  \"'words'\",\n  \"'xquery'\",\n  \"'zero-digit'\",\n  \"'{'\",\n  \"'{{'\",\n  \"'{|'\",\n  \"'|'\",\n  \"'||'\",\n  \"'|}'\",\n  \"'}'\",\n  \"'}}'\"\n];\n\n},\n{}],\n11:[function(require,module,exports){\n'use strict';\n\nexports.TreeOps = {\n    flatten: function(node){\n        var that = this;\n        var value = '';\n        if(!node) {\n            throw new Error('Invalid node found');\n        } else if (node.value === undefined) {\n            node.children.forEach(function(child){\n                value += that.flatten(child);\n            });\n        } else {\n            value += node.value;\n        }\n        return value;\n    },\n    \n    concat: function(obj1, obj2, copy){\n        var result = copy ? {} : obj1;\n        if(copy){\n            Object.keys(obj1).forEach(function(key){\n                result[key] = obj1[key];\n            });\n        }\n        var keys = Object.keys(obj2);\n        keys.forEach(function(key){\n            result[key] = obj2[key];\n        });\n        return result;\n    },\n    \n    removeParentPtr: function(ast){\n        if(ast.getParent !== undefined) {\n            delete ast.getParent;\n        }\n        for(var i in ast.children) {\n            var child = ast.children[i];\n            this.removeParentPtr(child);\n        }\n    },\n    \n    inRange: function(p, pos, exclusive){\n        if(p && p.sl <= pos.line && pos.line <= p.el) {\n            if(p.sl < pos.line && pos.line < p.el) {\n                return true;\n            } else if(p.sl === pos.line && pos.line < p.el) {\n                return p.sc <= pos.col;\n            } else if(p.sl === pos.line && p.el === pos.line) {\n                return p.sc <= pos.col && pos.col <= p.ec + (exclusive ? 1 : 0);\n            } else if(p.sl < pos.line && p.el === pos.line) {\n                return pos.col <= p.ec + (exclusive ? 1 : 0);\n            }\n        }\n    },\n    \n    findNode: function(ast, pos) {\n        if(!ast) {\n            return;\n        }\n        var p = ast.pos;\n        if(this.inRange(p, pos) === true) {\n            for(var i in ast.children) {\n                var child = ast.children[i];\n                var n = this.findNode(child, pos);\n                if(n !== undefined) {\n                    return n;\n                }\n            }\n            return ast;\n        } else {\n            return;\n        }\n    },\n    \n    astAsXML: function(node, indent){\n        var result =  '';\n        indent = indent ? indent : '';\n        if(node.value) {\n            result += (indent + '<' + node.name + '>' + node.value + '</' + node.name + '>\\n');\n        }\n        result += indent + '<' + node.name + '>\\n';\n        var that = this;\n        node.children.forEach(function(child){\n            result += that.astAsXML(child, indent + '  ');\n        });\n        result += indent + '</' + node.name + '>\\n';\n        return result;\n    }\n};\n},\n{}],\n12:[function(require,module,exports){\n'use strict';\n\nvar JSONiqParser = require('./parsers/JSONiqParser').JSONiqParser;\nvar XQueryParser = require('./parsers/XQueryParser').XQueryParser;\nvar JSONParseTreeHandler = require('./parsers/JSONParseTreeHandler').JSONParseTreeHandler;\nvar Translator = require('./compiler/translator').Translator;\nvar StyleChecker = require('./formatter/style_checker').StyleChecker;\nvar completer = require('../lib/completion/completer');\n    \nvar createStaticContext = exports.createStaticContext = function(){\n    var StaticContext = require('./compiler/static_context').StaticContext;\n    return new StaticContext();\n};\n\nvar defaults = function(current, def){\n    if(!current) {\n        return def;\n    }\n    Object.keys(def).forEach(function(key){\n        if(current[key] === undefined){\n            current[key] = def[key];\n        }\n    });\n    return current;\n};\n\nvar convertPosition = function (code, begin, end) {\n    var before = code.substring(0, begin);\n    var after = code.substring(0, end);\n    var startline = before.split('\\n').length;\n    var startcolumn = begin - before.lastIndexOf('\\n');\n    var endline = after.split('\\n').length;\n    var endcolumn = end - after.lastIndexOf('\\n');\n    var pos = {\n        sl: startline - 1,\n        sc: startcolumn - 1,\n        el: endline - 1,\n        ec: endcolumn - 1\n    };\n    return pos;\n};\n\nexports.XQLint = function (source, opts) {\n\n    opts = opts ? opts : {};\n    opts = defaults(opts, { styleCheck: false });\n\n    var ast;\n    this.getAST = function () {\n        return ast;\n    };\n\n    var markers = [];\n    this.getMarkers = function () {\n        return markers;\n    };\n    \n    this.getMarkers = function(type){\n        var m = [];\n        markers.forEach(function(marker){\n            if(marker.type === type || type === undefined){\n                m.push(marker);\n            }\n        });\n        return m;\n    };\n\n    this.getErrors = function(){\n        return this.getMarkers('error');\n    };\n\n    this.getWarnings = function(){\n        return this.getMarkers('warning');\n    };\n    \n    this.getCompletions = function(pos){\n        return completer.complete(source, ast, sctx, pos);\n    };\n\n    var syntaxError = false;\n    this.hasSyntaxError = function () {\n        return syntaxError;\n    };\n\n    var sctx = opts.staticContext ? opts.staticContext : createStaticContext();\n    var file = opts.fileName ? opts.fileName : '';\n    var isJSONiq = ((file.substring(file.length - '.jq'.length).indexOf('.jq') !== -1) && source.indexOf('xquery version') !== 0) || source.indexOf('jsoniq version') === 0;\n    var h = new JSONParseTreeHandler(source);\n    var parser = isJSONiq ? new JSONiqParser(source, h) : new XQueryParser(source, h);\n    try {\n        parser.parse_XQuery();\n    } catch (e) {\n        if (e instanceof parser.ParseException) {\n            syntaxError = true;\n            h.closeParseTree();\n            var pos = convertPosition(source, e.getBegin(), e.getEnd());\n            var message = parser.getErrorMessage(e);\n            if (pos.sc === pos.ec) {\n                pos.ec++;\n            }\n            markers.push({\n                pos: pos,\n                type: 'error',\n                level: 'error',\n                message: message\n            });\n        } else {\n            throw e;\n        }\n    }\n    ast = h.getParseTree();\n    if(opts.styleCheck) {\n        markers = markers.concat(new StyleChecker(ast, source).getMarkers());\n    }\n    var translator = new Translator(sctx, ast);\n    markers = markers.concat(translator.getMarkers());\n};\n\n},\n{\"../lib/completion/completer\":6,\"./compiler/static_context\":4,\"./compiler/translator\":5,\"./formatter/style_checker\":7,\"./parsers/JSONParseTreeHandler\":8,\"./parsers/JSONiqParser\":9,\"./parsers/XQueryParser\":10}]},{},[12])(12)\n\n});\n\nace.define(\"ace/mode/xquery_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/xquery/xqlint\"], function(require, exports, module) {\n\"use strict\";\n    \nvar oop = require(\"../lib/oop\");\nvar Mirror = require(\"../worker/mirror\").Mirror;\nvar XQLintLib = require(\"./xquery/xqlint\");\nvar XQLint =  XQLintLib.XQLint;\n\nvar getModuleResolverFromModules = function(modules){\n    return function(uri){\n            var index = modules;\n            var mod = index[uri];\n            var variables = {};\n            var functions = {};\n            mod.functions.forEach(function(fn){\n                functions[uri + '#' + fn.name + '#' + fn.arity] = {\n                    params: []\n                };\n                fn.parameters.forEach(function(param){\n                    functions[uri + '#' + fn.name + '#' + fn.arity].params.push('$' + param.name);\n                });\n            });\n            mod.variables.forEach(function(variable){\n                var name = variable.name.substring(variable.name.indexOf(':') + 1);\n                variables[uri + '#' + name] = { type: 'VarDecl', annotations: [] };\n            });\n            return {\n                variables: variables,\n                functions: functions\n            };\n    };\n};\n\nvar XQueryWorker = exports.XQueryWorker = function(sender) {\n    Mirror.call(this, sender);\n    this.setTimeout(200);\n    this.opts = {\n        styleCheck: false\n    };\n    var that = this;\n\n    this.sender.on(\"complete\", function(e){\n        if(that.xqlint) {\n            var pos = { line: e.data.pos.row, col: e.data.pos.column };\n            var proposals = that.xqlint.getCompletions(pos);\n            that.sender.emit(\"complete\", proposals);\n        }\n    });\n\n    this.sender.on(\"setAvailableModuleNamespaces\", function(e){\n        that.availableModuleNamespaces = e.data;\n    });\n\n    this.sender.on(\"setModuleResolver\", function(e){\n        that.moduleResolver = getModuleResolverFromModules(e.data);\n    });\n};\n\noop.inherits(XQueryWorker, Mirror);\n\n(function() {\n    \n    this.onUpdate = function() {\n        this.sender.emit(\"start\");\n        var value = this.doc.getValue();\n        var sctx = XQLintLib.createStaticContext();\n        if(this.moduleResolver) {\n            sctx.setModuleResolver(this.moduleResolver);\n        }\n        if(this.availableModuleNamespaces) {\n            sctx.availableModuleNamespaces = this.availableModuleNamespaces;\n        }\n        var opts = {\n            styleCheck: this.styleCheck,\n            staticContext: sctx\n        };\n        this.xqlint = new XQLint(value, opts);\n        this.sender.emit(\"markers\", this.xqlint.getMarkers());\n    };\n}).call(XQueryWorker.prototype);\n\n});\n\nace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\nfunction Empty() {}\n\nif (!Function.prototype.bind) {\n    Function.prototype.bind = function bind(that) { // .length is 1\n        var target = this;\n        if (typeof target != \"function\") {\n            throw new TypeError(\"Function.prototype.bind called on incompatible \" + target);\n        }\n        var args = slice.call(arguments, 1); // for normal call\n        var bound = function () {\n\n            if (this instanceof bound) {\n\n                var result = target.apply(\n                    this,\n                    args.concat(slice.call(arguments))\n                );\n                if (Object(result) === result) {\n                    return result;\n                }\n                return this;\n\n            } else {\n                return target.apply(\n                    that,\n                    args.concat(slice.call(arguments))\n                );\n\n            }\n\n        };\n        if(target.prototype) {\n            Empty.prototype = target.prototype;\n            bound.prototype = new Empty();\n            Empty.prototype = null;\n        }\n        return bound;\n    };\n}\nvar call = Function.prototype.call;\nvar prototypeOfArray = Array.prototype;\nvar prototypeOfObject = Object.prototype;\nvar slice = prototypeOfArray.slice;\nvar _toString = call.bind(prototypeOfObject.toString);\nvar owns = call.bind(prototypeOfObject.hasOwnProperty);\nvar defineGetter;\nvar defineSetter;\nvar lookupGetter;\nvar lookupSetter;\nvar supportsAccessors;\nif ((supportsAccessors = owns(prototypeOfObject, \"__defineGetter__\"))) {\n    defineGetter = call.bind(prototypeOfObject.__defineGetter__);\n    defineSetter = call.bind(prototypeOfObject.__defineSetter__);\n    lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);\n    lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);\n}\nif ([1,2].splice(0).length != 2) {\n    if(function() { // test IE < 9 to splice bug - see issue #138\n        function makeArray(l) {\n            var a = new Array(l+2);\n            a[0] = a[1] = 0;\n            return a;\n        }\n        var array = [], lengthBefore;\n        \n        array.splice.apply(array, makeArray(20));\n        array.splice.apply(array, makeArray(26));\n\n        lengthBefore = array.length; //46\n        array.splice(5, 0, \"XXX\"); // add one element\n\n        lengthBefore + 1 == array.length\n\n        if (lengthBefore + 1 == array.length) {\n            return true;// has right splice implementation without bugs\n        }\n    }()) {//IE 6/7\n        var array_splice = Array.prototype.splice;\n        Array.prototype.splice = function(start, deleteCount) {\n            if (!arguments.length) {\n                return [];\n            } else {\n                return array_splice.apply(this, [\n                    start === void 0 ? 0 : start,\n                    deleteCount === void 0 ? (this.length - start) : deleteCount\n                ].concat(slice.call(arguments, 2)))\n            }\n        };\n    } else {//IE8\n        Array.prototype.splice = function(pos, removeCount){\n            var length = this.length;\n            if (pos > 0) {\n                if (pos > length)\n                    pos = length;\n            } else if (pos == void 0) {\n                pos = 0;\n            } else if (pos < 0) {\n                pos = Math.max(length + pos, 0);\n            }\n\n            if (!(pos+removeCount < length))\n                removeCount = length - pos;\n\n            var removed = this.slice(pos, pos+removeCount);\n            var insert = slice.call(arguments, 2);\n            var add = insert.length;            \n            if (pos === length) {\n                if (add) {\n                    this.push.apply(this, insert);\n                }\n            } else {\n                var remove = Math.min(removeCount, length - pos);\n                var tailOldPos = pos + remove;\n                var tailNewPos = tailOldPos + add - remove;\n                var tailCount = length - tailOldPos;\n                var lengthAfterRemove = length - remove;\n\n                if (tailNewPos < tailOldPos) { // case A\n                    for (var i = 0; i < tailCount; ++i) {\n                        this[tailNewPos+i] = this[tailOldPos+i];\n                    }\n                } else if (tailNewPos > tailOldPos) { // case B\n                    for (i = tailCount; i--; ) {\n                        this[tailNewPos+i] = this[tailOldPos+i];\n                    }\n                } // else, add == remove (nothing to do)\n\n                if (add && pos === lengthAfterRemove) {\n                    this.length = lengthAfterRemove; // truncate array\n                    this.push.apply(this, insert);\n                } else {\n                    this.length = lengthAfterRemove + add; // reserves space\n                    for (i = 0; i < add; ++i) {\n                        this[pos+i] = insert[i];\n                    }\n                }\n            }\n            return removed;\n        };\n    }\n}\nif (!Array.isArray) {\n    Array.isArray = function isArray(obj) {\n        return _toString(obj) == \"[object Array]\";\n    };\n}\nvar boxedString = Object(\"a\"),\n    splitString = boxedString[0] != \"a\" || !(0 in boxedString);\n\nif (!Array.prototype.forEach) {\n    Array.prototype.forEach = function forEach(fun /*, thisp*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            thisp = arguments[1],\n            i = -1,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(); // TODO message\n        }\n\n        while (++i < length) {\n            if (i in self) {\n                fun.call(thisp, self[i], i, object);\n            }\n        }\n    };\n}\nif (!Array.prototype.map) {\n    Array.prototype.map = function map(fun /*, thisp*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            result = Array(length),\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self)\n                result[i] = fun.call(thisp, self[i], i, object);\n        }\n        return result;\n    };\n}\nif (!Array.prototype.filter) {\n    Array.prototype.filter = function filter(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                    object,\n            length = self.length >>> 0,\n            result = [],\n            value,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self) {\n                value = self[i];\n                if (fun.call(thisp, value, i, object)) {\n                    result.push(value);\n                }\n            }\n        }\n        return result;\n    };\n}\nif (!Array.prototype.every) {\n    Array.prototype.every = function every(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self && !fun.call(thisp, self[i], i, object)) {\n                return false;\n            }\n        }\n        return true;\n    };\n}\nif (!Array.prototype.some) {\n    Array.prototype.some = function some(fun /*, thisp */) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0,\n            thisp = arguments[1];\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self && fun.call(thisp, self[i], i, object)) {\n                return true;\n            }\n        }\n        return false;\n    };\n}\nif (!Array.prototype.reduce) {\n    Array.prototype.reduce = function reduce(fun /*, initial*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n        if (!length && arguments.length == 1) {\n            throw new TypeError(\"reduce of empty array with no initial value\");\n        }\n\n        var i = 0;\n        var result;\n        if (arguments.length >= 2) {\n            result = arguments[1];\n        } else {\n            do {\n                if (i in self) {\n                    result = self[i++];\n                    break;\n                }\n                if (++i >= length) {\n                    throw new TypeError(\"reduce of empty array with no initial value\");\n                }\n            } while (true);\n        }\n\n        for (; i < length; i++) {\n            if (i in self) {\n                result = fun.call(void 0, result, self[i], i, object);\n            }\n        }\n\n        return result;\n    };\n}\nif (!Array.prototype.reduceRight) {\n    Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {\n        var object = toObject(this),\n            self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                object,\n            length = self.length >>> 0;\n        if (_toString(fun) != \"[object Function]\") {\n            throw new TypeError(fun + \" is not a function\");\n        }\n        if (!length && arguments.length == 1) {\n            throw new TypeError(\"reduceRight of empty array with no initial value\");\n        }\n\n        var result, i = length - 1;\n        if (arguments.length >= 2) {\n            result = arguments[1];\n        } else {\n            do {\n                if (i in self) {\n                    result = self[i--];\n                    break;\n                }\n                if (--i < 0) {\n                    throw new TypeError(\"reduceRight of empty array with no initial value\");\n                }\n            } while (true);\n        }\n\n        do {\n            if (i in this) {\n                result = fun.call(void 0, result, self[i], i, object);\n            }\n        } while (i--);\n\n        return result;\n    };\n}\nif (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {\n    Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {\n        var self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                toObject(this),\n            length = self.length >>> 0;\n\n        if (!length) {\n            return -1;\n        }\n\n        var i = 0;\n        if (arguments.length > 1) {\n            i = toInteger(arguments[1]);\n        }\n        i = i >= 0 ? i : Math.max(0, length + i);\n        for (; i < length; i++) {\n            if (i in self && self[i] === sought) {\n                return i;\n            }\n        }\n        return -1;\n    };\n}\nif (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {\n    Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {\n        var self = splitString && _toString(this) == \"[object String]\" ?\n                this.split(\"\") :\n                toObject(this),\n            length = self.length >>> 0;\n\n        if (!length) {\n            return -1;\n        }\n        var i = length - 1;\n        if (arguments.length > 1) {\n            i = Math.min(i, toInteger(arguments[1]));\n        }\n        i = i >= 0 ? i : length - Math.abs(i);\n        for (; i >= 0; i--) {\n            if (i in self && sought === self[i]) {\n                return i;\n            }\n        }\n        return -1;\n    };\n}\nif (!Object.getPrototypeOf) {\n    Object.getPrototypeOf = function getPrototypeOf(object) {\n        return object.__proto__ || (\n            object.constructor ?\n            object.constructor.prototype :\n            prototypeOfObject\n        );\n    };\n}\nif (!Object.getOwnPropertyDescriptor) {\n    var ERR_NON_OBJECT = \"Object.getOwnPropertyDescriptor called on a \" +\n                         \"non-object: \";\n    Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n        if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n            throw new TypeError(ERR_NON_OBJECT + object);\n        if (!owns(object, property))\n            return;\n\n        var descriptor, getter, setter;\n        descriptor =  { enumerable: true, configurable: true };\n        if (supportsAccessors) {\n            var prototype = object.__proto__;\n            object.__proto__ = prototypeOfObject;\n\n            var getter = lookupGetter(object, property);\n            var setter = lookupSetter(object, property);\n            object.__proto__ = prototype;\n\n            if (getter || setter) {\n                if (getter) descriptor.get = getter;\n                if (setter) descriptor.set = setter;\n                return descriptor;\n            }\n        }\n        descriptor.value = object[property];\n        return descriptor;\n    };\n}\nif (!Object.getOwnPropertyNames) {\n    Object.getOwnPropertyNames = function getOwnPropertyNames(object) {\n        return Object.keys(object);\n    };\n}\nif (!Object.create) {\n    var createEmpty;\n    if (Object.prototype.__proto__ === null) {\n        createEmpty = function () {\n            return { \"__proto__\": null };\n        };\n    } else {\n        createEmpty = function () {\n            var empty = {};\n            for (var i in empty)\n                empty[i] = null;\n            empty.constructor =\n            empty.hasOwnProperty =\n            empty.propertyIsEnumerable =\n            empty.isPrototypeOf =\n            empty.toLocaleString =\n            empty.toString =\n            empty.valueOf =\n            empty.__proto__ = null;\n            return empty;\n        }\n    }\n\n    Object.create = function create(prototype, properties) {\n        var object;\n        if (prototype === null) {\n            object = createEmpty();\n        } else {\n            if (typeof prototype != \"object\")\n                throw new TypeError(\"typeof prototype[\"+(typeof prototype)+\"] != 'object'\");\n            var Type = function () {};\n            Type.prototype = prototype;\n            object = new Type();\n            object.__proto__ = prototype;\n        }\n        if (properties !== void 0)\n            Object.defineProperties(object, properties);\n        return object;\n    };\n}\n\nfunction doesDefinePropertyWork(object) {\n    try {\n        Object.defineProperty(object, \"sentinel\", {});\n        return \"sentinel\" in object;\n    } catch (exception) {\n    }\n}\nif (Object.defineProperty) {\n    var definePropertyWorksOnObject = doesDefinePropertyWork({});\n    var definePropertyWorksOnDom = typeof document == \"undefined\" ||\n        doesDefinePropertyWork(document.createElement(\"div\"));\n    if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {\n        var definePropertyFallback = Object.defineProperty;\n    }\n}\n\nif (!Object.defineProperty || definePropertyFallback) {\n    var ERR_NON_OBJECT_DESCRIPTOR = \"Property description must be an object: \";\n    var ERR_NON_OBJECT_TARGET = \"Object.defineProperty called on non-object: \"\n    var ERR_ACCESSORS_NOT_SUPPORTED = \"getters & setters can not be defined \" +\n                                      \"on this javascript engine\";\n\n    Object.defineProperty = function defineProperty(object, property, descriptor) {\n        if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n            throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n        if ((typeof descriptor != \"object\" && typeof descriptor != \"function\") || descriptor === null)\n            throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n        if (definePropertyFallback) {\n            try {\n                return definePropertyFallback.call(Object, object, property, descriptor);\n            } catch (exception) {\n            }\n        }\n        if (owns(descriptor, \"value\")) {\n\n            if (supportsAccessors && (lookupGetter(object, property) ||\n                                      lookupSetter(object, property)))\n            {\n                var prototype = object.__proto__;\n                object.__proto__ = prototypeOfObject;\n                delete object[property];\n                object[property] = descriptor.value;\n                object.__proto__ = prototype;\n            } else {\n                object[property] = descriptor.value;\n            }\n        } else {\n            if (!supportsAccessors)\n                throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n            if (owns(descriptor, \"get\"))\n                defineGetter(object, property, descriptor.get);\n            if (owns(descriptor, \"set\"))\n                defineSetter(object, property, descriptor.set);\n        }\n\n        return object;\n    };\n}\nif (!Object.defineProperties) {\n    Object.defineProperties = function defineProperties(object, properties) {\n        for (var property in properties) {\n            if (owns(properties, property))\n                Object.defineProperty(object, property, properties[property]);\n        }\n        return object;\n    };\n}\nif (!Object.seal) {\n    Object.seal = function seal(object) {\n        return object;\n    };\n}\nif (!Object.freeze) {\n    Object.freeze = function freeze(object) {\n        return object;\n    };\n}\ntry {\n    Object.freeze(function () {});\n} catch (exception) {\n    Object.freeze = (function freeze(freezeObject) {\n        return function freeze(object) {\n            if (typeof object == \"function\") {\n                return object;\n            } else {\n                return freezeObject(object);\n            }\n        };\n    })(Object.freeze);\n}\nif (!Object.preventExtensions) {\n    Object.preventExtensions = function preventExtensions(object) {\n        return object;\n    };\n}\nif (!Object.isSealed) {\n    Object.isSealed = function isSealed(object) {\n        return false;\n    };\n}\nif (!Object.isFrozen) {\n    Object.isFrozen = function isFrozen(object) {\n        return false;\n    };\n}\nif (!Object.isExtensible) {\n    Object.isExtensible = function isExtensible(object) {\n        if (Object(object) === object) {\n            throw new TypeError(); // TODO message\n        }\n        var name = '';\n        while (owns(object, name)) {\n            name += '?';\n        }\n        object[name] = true;\n        var returnValue = owns(object, name);\n        delete object[name];\n        return returnValue;\n    };\n}\nif (!Object.keys) {\n    var hasDontEnumBug = true,\n        dontEnums = [\n            \"toString\",\n            \"toLocaleString\",\n            \"valueOf\",\n            \"hasOwnProperty\",\n            \"isPrototypeOf\",\n            \"propertyIsEnumerable\",\n            \"constructor\"\n        ],\n        dontEnumsLength = dontEnums.length;\n\n    for (var key in {\"toString\": null}) {\n        hasDontEnumBug = false;\n    }\n\n    Object.keys = function keys(object) {\n\n        if (\n            (typeof object != \"object\" && typeof object != \"function\") ||\n            object === null\n        ) {\n            throw new TypeError(\"Object.keys called on a non-object\");\n        }\n\n        var keys = [];\n        for (var name in object) {\n            if (owns(object, name)) {\n                keys.push(name);\n            }\n        }\n\n        if (hasDontEnumBug) {\n            for (var i = 0, ii = dontEnumsLength; i < ii; i++) {\n                var dontEnum = dontEnums[i];\n                if (owns(object, dontEnum)) {\n                    keys.push(dontEnum);\n                }\n            }\n        }\n        return keys;\n    };\n\n}\nif (!Date.now) {\n    Date.now = function now() {\n        return new Date().getTime();\n    };\n}\nvar ws = \"\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\" +\n    \"\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\" +\n    \"\\u2029\\uFEFF\";\nif (!String.prototype.trim || ws.trim()) {\n    ws = \"[\" + ws + \"]\";\n    var trimBeginRegexp = new RegExp(\"^\" + ws + ws + \"*\"),\n        trimEndRegexp = new RegExp(ws + ws + \"*$\");\n    String.prototype.trim = function trim() {\n        return String(this).replace(trimBeginRegexp, \"\").replace(trimEndRegexp, \"\");\n    };\n}\n\nfunction toInteger(n) {\n    n = +n;\n    if (n !== n) { // isNaN\n        n = 0;\n    } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {\n        n = (n > 0 || -1) * Math.floor(Math.abs(n));\n    }\n    return n;\n}\n\nfunction isPrimitive(input) {\n    var type = typeof input;\n    return (\n        input === null ||\n        type === \"undefined\" ||\n        type === \"boolean\" ||\n        type === \"number\" ||\n        type === \"string\"\n    );\n}\n\nfunction toPrimitive(input) {\n    var val, valueOf, toString;\n    if (isPrimitive(input)) {\n        return input;\n    }\n    valueOf = input.valueOf;\n    if (typeof valueOf === \"function\") {\n        val = valueOf.call(input);\n        if (isPrimitive(val)) {\n            return val;\n        }\n    }\n    toString = input.toString;\n    if (typeof toString === \"function\") {\n        val = toString.call(input);\n        if (isPrimitive(val)) {\n            return val;\n        }\n    }\n    throw new TypeError();\n}\nvar toObject = function (o) {\n    if (o == null) { // this matches both null and undefined\n        throw new TypeError(\"can't convert \"+o+\" to object\");\n    }\n    return Object(o);\n};\n\n});\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"awcy-react\",\n  \"version\": \"1.0.0\",\n  \"description\": \"\",\n  \"main\": \"index.js\",\n  \"scripts\": {\n    \"build\": \"webpack --config config/webpack.config.js\",\n    \"build-watch\": \"webpack --watch --config config/webpack.config.js\",\n    \"dev-server\": \"./node_modules/webpack-dev-server/bin/webpack-dev-server.js --config config/webpack.config.js\"\n  },\n  \"keywords\": [],\n  \"author\": \"\",\n  \"license\": \"ISC\",\n  \"devDependencies\": {\n    \"@types/react\": \"^16.0.34\",\n    \"@types/react-dom\": \"^16.0.3\",\n    \"source-map-loader\": \"^0.2.3\",\n    \"ts-loader\": \"^3.2.0\",\n    \"typescript\": \"^2.6.2\",\n    \"webpack\": \"^3.10.0\",\n    \"webpack-dev-server\": \"^2.10.0\",\n    \"webpack-notifier\": \"^1.5.0\"\n  },\n  \"dependencies\": {\n    \"copy-webpack-plugin\": \"^4.3.1\",\n    \"demangle\": \"^1.0.1\",\n    \"monaco-editor\": \"^0.10.1\",\n    \"react\": \"^16.2.0\",\n    \"react-ace\": \"^5.9.0\",\n    \"react-dom\": \"^16.2.0\",\n    \"react-monaco-editor\": \"^0.13.0\",\n    \"react-split-pane\": \"^0.1.74\",\n    \"ts-events\": \"^3.2.0\"\n  }\n}\n"
  },
  {
    "path": "src/App.tsx",
    "content": "import * as React from \"react\";\nimport * as ReactSplitPane from \"react-split-pane\";\nimport { State } from \"./State\";\nimport { EditorComponent } from \"./components/Editor\";\nimport { CompilerOptionsComponent } from \"./components/CompilerOptions\";\nimport { lib } from \"./lib\"\nimport { syscall } from \"./syscall\";\nimport { IFrameSandbox } from \"./iframesandbox\";\n\ndeclare var require: any;\ndeclare var WebAssembly: any;\nlet { demangle } = require(\"demangle\");\ndeclare var capstone: any;\ndeclare var Mousetrap: any;\ndeclare var Promise: any;\nfunction lazyLoad(s: string, cb: () => void) {\n  var self = this;\n  var d = window.document;\n  var b = d.body;\n  var e = d.createElement(\"script\");\n  e.async = true;\n  e.src = s;\n  b.appendChild(e);\n  e.onload = function () {\n    cb.call(this);\n  }\n}\n\nfunction toAddress(n: number) {\n  var s = n.toString(16);\n  while (s.length < 6) {\n    s = \"0\" + s;\n  }\n  return \"0x\" + s;\n}\n\nfunction padRight(s: string, n: number, c: string) {\n  s = String(s);\n  while (s.length < n) {\n    s = s + c;\n  }\n  return s;\n}\n\nfunction padLeft(s: string, n: number, c: string) {\n  s = String(s);\n  while (s.length < n) {\n    s = c + s;\n  }\n  return s;\n}\n\nvar x86JumpInstructions = [\n  \"jmp\", \"ja\", \"jae\", \"jb\", \"jbe\", \"jc\", \"je\", \"jg\", \"jge\", \"jl\", \"jle\", \"jna\", \"jnae\",\n  \"jnb\", \"jnbe\", \"jnc\", \"jne\", \"jng\", \"jnge\", \"jnl\", \"jnle\", \"jno\", \"jnp\", \"jns\", \"jnz\",\n  \"jo\", \"jp\", \"jpe\", \"jpo\", \"js\", \"jz\"\n];\n\nfunction isBranch(instr: any) {\n  return x86JumpInstructions.indexOf(instr.mnemonic) >= 0;\n}\n\nvar base64DecodeMap = [ // starts at 0x2B\n  62, 0, 0, 0, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,\n  0, 0, 0, 0, 0, 0, 0, // 0x3A-0x40\n  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,\n  19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, // 0x5B-0x0x60\n  26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,\n  44, 45, 46, 47, 48, 49, 50, 51\n];\n\nvar base64DecodeMapOffset = 0x2B;\nvar base64EOF = 0x3D;\n\nfunction decodeRestrictedBase64ToBytes(encoded: any) {\n  var ch: any;\n  var code: any;\n  var code2: any;\n\n  var len = encoded.length;\n  var padding = encoded.charAt(len - 2) === '=' ? 2 : encoded.charAt(len - 1) === '=' ? 1 : 0;\n  var decoded = new Uint8Array((encoded.length >> 2) * 3 - padding);\n\n  for (var i = 0, j = 0; i < encoded.length;) {\n    ch = encoded.charCodeAt(i++);\n    code = base64DecodeMap[ch - base64DecodeMapOffset];\n    ch = encoded.charCodeAt(i++);\n    code2 = base64DecodeMap[ch - base64DecodeMapOffset];\n    decoded[j++] = (code << 2) | ((code2 & 0x30) >> 4);\n\n    ch = encoded.charCodeAt(i++);\n    if (ch == base64EOF) {\n      return decoded;\n    }\n    code = base64DecodeMap[ch - base64DecodeMapOffset];\n    decoded[j++] = ((code2 & 0x0f) << 4) | ((code & 0x3c) >> 2);\n\n    ch = encoded.charCodeAt(i++);\n    if (ch == base64EOF) {\n      return decoded;\n    }\n    code2 = base64DecodeMap[ch - base64DecodeMapOffset];\n    decoded[j++] = ((code & 0x03) << 6) | code2;\n  }\n  return decoded;\n}\n\nconst defaultHarnessText =\n  `var wasmModule = new WebAssembly.Module(wasmCode);\\n` +\n  `var wasmInstance = new WebAssembly.Instance(wasmModule, wasmImports);\\n` +\n  `log(wasmInstance.exports.main());\\n`;\n\nexport class AppComponent extends React.Component<any, {\n  compilerOptions: string,\n  compilerVersion: number,\n  isCompiling: boolean;\n  isC: boolean;\n  view: string;\n  showCanvas: boolean;\n  showSettings: boolean;\n  showHelp: boolean;\n}> {\n\n  constructor(props: any) {\n    super(props);\n    this.installKeyboardShortcuts();\n    State.app = this;\n    this.state = {\n      compilerOptions: \"-O3 -std=C99\",\n      compilerVersion: 1,\n      isCompiling: false,\n      isC: true,\n      view: \"wast\",\n      showCanvas: false,\n      showSettings: false,\n      showHelp: false\n    } as any;\n  }\n\n  canvas: HTMLCanvasElement;\n  func: IFrameSandbox;\n\n  installKeyboardShortcuts() {\n    Mousetrap.bind(['ctrl+shift+enter'], (e: any) => {\n      this.build();\n      e.preventDefault();\n    });\n    Mousetrap.bind(['ctrl+shift+k'], (e: any) => {\n      this.clear();\n      e.preventDefault();\n    });\n    Mousetrap.bind(['ctrl+enter'], (e: any) => {\n      this.runHarness();\n      e.preventDefault();\n    });\n    Mousetrap.bind(['command+s'], (e: any) => {\n      this.saveFiddleStateToURI();\n      e.preventDefault();\n    });\n  }\n\n  componentDidMount() {\n    this.init();\n  }\n\n  compilerOptionsChanged(options: string, compilerVersion: number) {\n    let isC = options.indexOf(\"C++\") < 0;\n    this.setState({ compilerOptions: options, compilerVersion, isC } as any);\n  }\n\n  onResize() {\n    // State.resize();\n    this.mainEditor.editor.resize();\n  }\n\n  download(what: string) {\n    var url = \"\";\n    var name = \"\";\n    if (what == \"wasm\") {\n      url = URL.createObjectURL(new Blob([this.wasmCode], { type: 'application/wasm' }));\n      name = \"program.wasm\";\n    } else if (what == \"wast\") {\n      url = URL.createObjectURL(new Blob([this.viewEditor.editor.getValue()], { type: 'text/wat' }));\n      name = \"program.wat\";\n    } else {\n      return;\n    }\n    State.sendAppEvent(\"download\", what);\n    this.downloadLink.href = url;\n    this.downloadLink.download = name;\n    if (this.downloadLink.href as any != document.location) {\n      this.downloadLink.click();\n    }\n  }\n\n  assemble() {\n\n  }\n\n  loadFiddledStateFromURI(fiddleURI: string) {\n    State.fiddleURI = fiddleURI;\n    var xhr = new XMLHttpRequest();\n    let self = this;\n    xhr.addEventListener(\"load\", function () {\n      self.loadFiddledState(JSON.parse(this.response));\n      history.replaceState({}, fiddleURI, '?' + State.fiddleURI);\n    });\n    let url = \"https://api.myjson.com/bins/\" + fiddleURI;\n    xhr.open(\"GET\", url, true);\n    xhr.setRequestHeader(\"Content-type\", \"application/json; charset=utf-8\");\n    xhr.send();\n  }\n\n  saveFiddleStateToURI() {\n    var xhr = new XMLHttpRequest();\n    xhr.addEventListener(\"load\", function () {\n      let uri = JSON.parse(this.response).uri;\n      uri = uri.substring(uri.lastIndexOf(\"/\") + 1);\n      State.fiddleURI = uri;\n      State.app.forceUpdate();\n      history.replaceState({}, State.fiddleURI, '?' + State.fiddleURI);\n    });\n    xhr.open(\"POST\", \"//api.myjson.com/bins\", true);\n    xhr.setRequestHeader(\"Content-type\", \"application/json; charset=utf-8\");\n    xhr.send(JSON.stringify(this.saveFiddleState()));\n  }\n\n  init() {\n    let uri: string = window.location.search.substring(1);\n    if (uri) {\n      let i = uri.indexOf(\"/\");\n      if (i > 0) {\n        uri = uri.substring(0, i);\n      }\n      this.loadFiddledStateFromURI(uri);\n      this.forceUpdate();\n    } else {\n      this.loadFiddledState({\n        editors: {\n          \"main\": \"int main() { \\n  return 42;\\n}\",\n          \"harness\": defaultHarnessText\n        }\n      });\n    }\n  }\n\n  saveFiddleState() {\n    return {\n      editors: {\n        main: this.mainEditor.editor.getValue(),\n        harness: this.harnessEditor.editor.getValue()\n      },\n      compilerOptions: this.state.compilerOptions,\n      compilerVersion: this.state.compilerVersion\n    }\n  }\n  loadFiddledState(fiddleState: any) {\n    // For backwards compatibility.\n    if (fiddleState.editors[\"main.c\"]) {\n      fiddleState.editors.main = fiddleState.editors[\"main.c\"];\n    }\n    if (fiddleState.editors[\"harness.js\"]) {\n      fiddleState.editors.harness = fiddleState.editors[\"harness.js\"];\n    }\n    this.mainEditor.editor.setValue(fiddleState.editors.main, -1);\n    this.harnessEditor.editor.setValue(fiddleState.editors.harness, -1);\n\n    if (fiddleState.compilerOptions) {\n      let isC = fiddleState.compilerOptions.indexOf(\"C++\") < 0;\n      this.setState({\n        compilerOptions: fiddleState.compilerOptions,\n        compilerVersion: fiddleState.compilerVersion,\n        isC\n      } as any);\n    }\n  }\n\n  mainEditor: EditorComponent = null;\n  viewEditor: EditorComponent = null;\n  wasmEditor: EditorComponent = null;\n  outputEditor: EditorComponent = null;\n  harnessEditor: EditorComponent = null;\n\n  wasmCode: Uint8Array = null;\n\n  wast: string = \"\";\n  wastAssembly: any = {};\n\n  build() {\n    let self = this;\n    let main = this.mainEditor;\n    let options = this.state.compilerOptions;\n    let compilerVersion = this.state.compilerVersion;\n\n    const complete = (result: Uint8Array | string, wast: string, annotations: any[]) => {\n      main.editor.getSession().clearAnnotations();\n      if (annotations.length) {\n        main.editor.getSession().setAnnotations(annotations);\n        this.appendOutput(String(result));\n        return;\n      }\n      self.wasmCode = result as Uint8Array;\n      self.wastAssembly = {};\n      this.forceUpdate();\n    };\n\n    if (compilerVersion == 2) {\n      this.compileToWasmV2(main.editor.getValue(), options, complete);\n    } else {\n      this.compileToWasm(main.editor.getValue(), options, complete);\n    }\n  }\n\n  disassemble(json: any) {\n    let self = this;\n    if (typeof capstone === \"undefined\") {\n      lazyLoad(\"lib/capstone.x86.min.js\", go);\n    } else {\n      go();\n    }\n    function toBytes(a: any) {\n      return a.map(function (x: any) { return padLeft(Number(x).toString(16), 2, \"0\"); }).join(\" \");\n    }\n    function go() {\n      let s = \"\";\n      var cs = new capstone.Cs(capstone.ARCH_X86, capstone.MODE_64);\n      var annotations: any[] = [];\n      var assemblyInstructionsByAddress = Object.create(null);\n      for (var i = 0; i < json.regions.length; i++) {\n        var region = json.regions[i];\n        s += region.name + \":\\n\";\n        var csBuffer = decodeRestrictedBase64ToBytes(region.bytes);\n        var instructions = cs.disasm(csBuffer, region.entry);\n        var basicBlocks: any = {};\n        instructions.forEach(function (instr: any, i: any) {\n          assemblyInstructionsByAddress[instr.address] = instr;\n          if (isBranch(instr)) {\n            var targetAddress = parseInt(instr.op_str);\n            if (!basicBlocks[targetAddress]) {\n              basicBlocks[targetAddress] = [];\n            }\n            basicBlocks[targetAddress].push(instr.address);\n            if (i + 1 < instructions.length) {\n              basicBlocks[instructions[i + 1].address] = [];\n            }\n          }\n        });\n        instructions.forEach(function (instr: any) {\n          if (basicBlocks[instr.address]) {\n            s += \" \" + padRight(toAddress(instr.address) + \":\", 39, \" \");\n            if (basicBlocks[instr.address].length > 0) {\n              s += \"; \" + toAddress(instr.address) + \" from: [\" + basicBlocks[instr.address].map(toAddress).join(\", \") + \"]\";\n            }\n            s += \"\\n\";\n          }\n          s += \"  \" + padRight(instr.mnemonic + \" \" + instr.op_str, 38, \" \");\n          s += \"; \" + toAddress(instr.address) + \" \" + toBytes(instr.bytes) + \"\\n\";\n        });\n        s += \"\\n\";\n      }\n      self.viewEditor.editor.getSession().setValue(s, 1);\n      self.viewEditor.editor.getSession().setMode(\"ace/mode/assembly_x86\");\n    }\n  }\n  runHarness() {\n    State.sendAppEvent(\"run\", \"Harness\");\n    if (!this.wasmCode) {\n      this.appendOutput(\"Build a WebAssembly module first.\");\n      return;\n    }\n    // |buffer| is needed for backward compatibility\n    let self = this;\n    let func = new IFrameSandbox(\"wasmCode\", \"buffer\", \"wasmImports\", \"lib\", \"log\", \"canvas\", this.harnessEditor.editor.getValue());\n\n    if (self.func) self.func.destroy();\n    self.func = func;\n\n    lib.log = function (x: any) {\n      self.appendOutput(String(x));\n    };\n    lib.showCanvas = function (x: boolean = true) {\n      self.setState({ showCanvas: x } as any);\n    };\n    lib.currentInstance = null;\n    lib.syscall = syscall;\n    func.onerror = (x) => {\n      self.appendOutput(x);\n      State.sendAppEvent(\"error\", \"Run Harness\");\n    };\n\n    func.call(this.wasmCode, this.wasmCode, this.createWasmImports(false), lib, lib.log, State.app.canvas);\n  }\n\n  createWasmImports(string: boolean): any {\n    let wasmImports: any = {};\n    if (!this.wasmCode || !WebAssembly.Module.imports) {\n      return wasmImports;\n    }\n    WebAssembly.Module.imports(new WebAssembly.Module(this.wasmCode)).forEach((i: any) => {\n      if (!wasmImports[i.module]) {\n        wasmImports[i.module] = {};\n      }\n      if (/^__syscall\\d+$/.test(i.name) && i.kind === \"function\") {\n        let num = +i.name.substring(\"__syscall\".length);\n        if (string) {\n          let args = [];\n          for (let j = 0; j < num; j++)\n            args.push(', ', String.fromCharCode(97 + j));\n          wasmImports[i.module][i.name] =\n            `    // ${name}\\n` +\n            `    ${i.name}: function ${i.name} (n${args.join('')}) {\\n` +\n            `      return lib.syscall(wasmInstance, n${args.join('')});\\n` +\n            `    }`;\n        } else {\n          wasmImports[i.module][i.name] = function () {\n            if (!lib.currentInstance) {\n              throw new Error(`${i.name}: lib.currentInstance must be specified`);\n            }\n            return lib.syscall(lib.currentInstance, ...arguments);\n          };\n        }\n        return;\n      }\n      if (i.kind === \"function\") {\n        let name = demangle(\"_\" + i.name);\n        if (string) {\n          wasmImports[i.module][i.name] =\n            `    // ${name}\\n` +\n            `    ${i.name}: function ${i.name} () {\\n` +\n            `      // ...\\n` +\n            `    }`;\n        } else {\n          wasmImports[i.module][i.name] = function () {\n            lib.log(`NYI: ${i.name} ${name}`);\n          };\n        }\n      }\n    });\n    if (string) {\n      let keys = Object.keys(wasmImports);\n      let str = \"var wasmImports = {\\n\";\n      str += keys.map(key => {\n        let fun = Object.keys(wasmImports[key]).map(name => {\n          return wasmImports[key][name];\n        }).join(\",\\n\");\n        return \"  \" + key + \": {\\n\" + fun + \"\\n  }\";\n      }).join(\",\");\n      str += \"\\n};\"\n      return str;\n    }\n    return wasmImports;\n  }\n\n  compileToWasm(src: string, options: string, cb: (buffer: Uint8Array, wast: string, annotations?: any[]) => void) {\n    State.sendAppEvent(\"compile\", \"To Wasm\");\n    let self = this;\n    src = encodeURIComponent(src).replace('%20', '+');\n    let action = this.state.isC ? \"c2wast\" : \"cpp2wast\";\n    let compilerVersion = this.state.compilerVersion;\n    options = encodeURIComponent(options);\n    self.setState({ isCompiling: true } as any);\n    State.sendRequest(\"input=\" + src + \"&action=\" + action + \"&version=\" + compilerVersion + \"&options=\" + options, function () {\n      self.setState({ isCompiling: false } as any);\n      if (!this.responseText) {\n        self.appendOutput(\"Something went wrong while compiling \" + action + \".\");\n        State.sendAppEvent(\"error\", \"Compile to Wasm\");\n        return;\n      }\n      let annotations = State.getAnnotations(this.responseText);\n      if (annotations.length) {\n        cb(this.responseText, null, annotations);\n        State.sendAppEvent(\"error\", \"Compile to Wasm (Error or Warnings)\");\n        return;\n      }\n      self.wast = this.responseText;\n      let wast = encodeURIComponent(this.responseText).replace('%20', '+');\n      self.setState({ isCompiling: true } as any);\n      State.sendRequest(\"input=\" + wast + \"&action=\" + \"wast2wasm\" + \"&options=\" + options, function () {\n        self.setState({ isCompiling: false } as any);\n        var buffer = atob(this.responseText.split('\\n', 2)[1]);\n        var data = new Uint8Array(buffer.length);\n        for (var i = 0; i < buffer.length; i++) {\n          data[i] = buffer.charCodeAt(i);\n        }\n        cb(data, self.wast, []);\n      });\n    });\n  }\n\n  compileToWasmV2(src: string, options: string, cb: (buffer: Uint8Array | string, wast: string, annotations?: any[]) => void) {\n    State.sendAppEvent(\"compile\", \"To Wasm\");\n    let self = this;\n    let fileType = this.state.isC ? \"c\" : \"cpp\";\n    var project = {\n      output: \"wasm\",\n      files: [\n        {\n          type: fileType,\n          name: \"file.\" + fileType,\n          options: options,\n          src: src\n        }\n      ]\n    };\n    let input = encodeURIComponent(JSON.stringify(project)).replace('%20', '+');\n    self.setState({ isCompiling: true } as any);\n    State.sendRequest(\"input=\" + input + \"&action=build\", function () {\n      self.setState({ isCompiling: false } as any);\n      if (!this.responseText) {\n        self.appendOutput(\"Something went wrong while compiling.\");\n        State.sendAppEvent(\"error\", \"Compile to Wasm\");\n        return;\n      }\n      let annotations = State.getAnnotations(this.responseText);\n      if (annotations.length) {\n        cb(State.getOutput(this.responseText), null, annotations);\n        State.sendAppEvent(\"error\", \"Compile to Wasm (Error or Warnings)\");\n        return;\n      }\n      const data = State.getResultBinary(this.responseText);\n      const wasmBase64 = btoa(Array.prototype.map.call(data,\n        (ch: number) => String.fromCharCode(ch)).join(''));\n      self.setState({ isCompiling: true } as any);\n      State.sendRequest(\"input=\" + encodeURIComponent(wasmBase64) + \"&action=\" + \"wasm2wast\" + \"&options=\" + options, function () {\n        self.setState({ isCompiling: false } as any);\n        self.wast = this.responseText;\n        cb(data, self.wast, []);\n      });\n    });\n  }\n\n  appendOutput(s: string) {\n    this.outputEditor.editor.insert(s + \"\\n\");\n    this.outputEditor.editor.gotoLine(Infinity);\n  }\n  share() {\n    this.saveFiddleStateToURI();\n    State.sendAppEvent(\"save\", \"Fiddle state to URI\");\n  }\n  toggleCanvas() {\n    this.setState({ showCanvas: !this.state.showCanvas } as any);\n  }\n  toggleSettings() {\n    this.setState({ showSettings: !this.state.showSettings } as any);\n  }\n  toggleHelp() {\n    this.setState({ showHelp: !this.state.showHelp } as any);\n  }\n  clear() {\n    this.outputEditor.editor.setValue(\"\");\n  }\n  downloadLink: HTMLAnchorElement = null;\n  onViewChanged(e: any) {\n    this.setState({ view: e.target.value } as any);\n  }\n  render(): any {\n    if (this.viewEditor) {\n      if (this.state.view === \"wast\") {\n        this.viewEditor.editor.getSession().setMode(\"ace/mode/text\");\n        this.viewEditor.editor.setValue(this.wast, -1);\n      } else if (this.state.view === \"wasm\") {\n        this.viewEditor.editor.getSession().setMode(\"ace/mode/javascript\");\n        this.viewEditor.editor.setValue(\"var wasmCode = new Uint8Array([\" + String(this.wasmCode) + \"]);\", -1);\n      } else if (this.state.view == \"imports\") {\n        this.viewEditor.editor.getSession().setMode(\"ace/mode/javascript\");\n        this.viewEditor.editor.setValue(this.createWasmImports(true), -1);\n      } else if (this.state.view.indexOf(\"x86\") == 0) {\n        this.viewEditor.editor.setValue(\"\");\n        if (this.wast) {\n          let type = this.state.view;\n          let self = this;\n          let options = type == \"x86-baseline\" ? \"--wasm-always-baseline\" : \"\";\n          if (this.wastAssembly[type]) {\n            self.disassemble(self.wastAssembly[type]);\n          } else {\n            let wast = encodeURIComponent(this.wast).replace('%20', '+');\n            State.sendRequest(\"input=\" + wast + \"&action=wast2assembly&options=\" + options, function () {\n              self.wastAssembly[type] = JSON.parse(this.responseText);\n              self.disassemble(self.wastAssembly[type]);\n            });\n          }\n        }\n      }\n    }\n    return <div className=\"gAppContainer\">\n      <a style={{ display: \"none\" }} ref={(self: any) => this.downloadLink = self} />\n      <div className=\"gHeader\">\n        <div>\n          <div className=\"canvasOverlay\" style={{ display: this.state.showCanvas ? \"\" : \"none\" }}>\n            <div className=\"editorHeader\">\n              <span className=\"editorHeaderTitle\">\n                Canvas\n              </span>\n              <div className=\"editorHeaderButtons\">\n                <a title=\"Toggle Canvas\" onClick={this.toggleCanvas.bind(this)}>Hide <i className=\"fa fa-window-close fa-lg\" aria-hidden=\"true\"></i></a>\n              </div>\n            </div>\n            <canvas className=\"outputCanvas\" ref={(self: any) => this.canvas = self} width={1200} height={1200} />\n          </div>\n          <div className=\"settingsOverlay\" style={{ display: this.state.showSettings ? \"\" : \"none\" }}>\n            <span className=\"editorHeaderTitle\">\n              Settings\n              </span>\n            <div className=\"editorHeader\">\n              <div className=\"editorHeaderButtons\">\n                <a title=\"Toggle Settings\" onClick={this.toggleSettings.bind(this)}>Hide <i className=\"fa fa-window-close fa-lg\" aria-hidden=\"true\"></i></a>\n              </div>\n            </div>\n            <div className=\"settingSectionHeader\">\n              Compiler Options\n            </div>\n            <div className=\"settingSection\">\n              <CompilerOptionsComponent options={this.state.compilerOptions} compilerVersion={this.state.compilerVersion} onChange={this.compilerOptionsChanged.bind(this)} />{' '}\n            </div>\n          </div>\n          <div className=\"helpOverlay\" style={{ display: this.state.showHelp ? \"\" : \"none\" }}>\n            <div className=\"editorHeader\">\n              <span className=\"editorHeaderTitle\">\n                Help\n              </span>\n              <div className=\"editorHeaderButtons\">\n                <a title=\"Toggle Settings\" onClick={this.toggleHelp.bind(this)}>Hide <i className=\"fa fa-window-close fa-lg\" aria-hidden=\"true\"></i></a>\n              </div>\n            </div>\n            <div className=\"settingSection\">\n              WasmFiddle lets you compile C/C++ code to WebAssembly and run it in the browser.\n              The JavaScript harness on the right has several global variables and helper functions.\n            </div>\n            <div className=\"settingSectionHeader\">\n              wasmCode: Uint8Array\n            </div>\n            <div className=\"settingSection\">\n              The compiled WebAssembly buffer.\n            </div>\n            <div className=\"settingSectionHeader\">\n              wasmImports: {\"{ ... }\"}\n            </div>\n            <div className=\"settingSection\">\n              This object is automatically generated by WasmFiddle for your convenience.\n              It's a template containing function stubs for each imported WebAssembly function.\n            </div>\n            <div className=\"settingSectionHeader\">\n              canvas: HTMLCanvasElement\n            </div>\n            <div className=\"settingSection\">\n              WasmFiddle creates a 1200x1200 canvas element that you can draw into.\n              You can display the canvas programmatically using <span className=\"codeSpan\">lib.showCanvas()</span>.\n            </div>\n            <div className=\"settingSectionHeader\">\n              log()\n            </div>\n            <div className=\"settingSection\">\n              A simple logging function whose output is shown on the bottom right.\n              You may also use the browser's <span className=\"codeSpan\">console</span> object but you'll need to open up the developer tools to see the output.\n            </div>\n            <div className=\"settingSectionHeader\">\n              lib.UTF8ArrayToString(heap: Uint8Array, ptr: number)\n            </div>\n            <div className=\"settingSection\">\n              Converts a C string into a JavaScript string.\n            </div>\n            <div className=\"settingSectionHeader\">\n              lib.dumpMemory(heap: Uint8Array, ptr: number, len: number)\n            </div>\n            <div className=\"settingSection\">\n              Prints memory contents.\n            </div>\n            <div className=\"settingSectionHeader\">\n              lib.setStackPtr(heap: Uint8Array, ptr: number)\n            </div>\n            <div className=\"settingSection\">\n              Sets the default stack pointer address.\n            </div>\n          </div>\n          <img src=\"img/web-assembly-icon-white-64px.png\" className=\"waIcon\" />\n        </div>\n        <div className=\"gShareURI\">\n          {window.location.origin + window.location.pathname + '?' + State.fiddleURI}\n        </div>\n        <div className=\"gShareButton\">\n          <a title=\"Build: CTRL + Shift + Return\" onClick={this.build.bind(this)}><i className={\"fa fa-cog \" + (this.state.isCompiling ? \"fa-spin\" : \"\") + \" fa-lg\"} aria-hidden=\"true\"></i></a>{' '}\n          <a className={this.wasmCode ? \"\" : \"disabled-link\"} title=\"Run: CTRL + Return\" onClick={this.runHarness.bind(this)}><i className=\"fa fa-play-circle fa-lg\" aria-hidden=\"true\"></i></a>{' '}\n          <a title=\"Toggle Settings\" onClick={this.toggleSettings.bind(this)}><i className=\"fa fa-wrench fa-lg\" aria-hidden=\"true\"></i></a>{' '}\n          <a title=\"Toggle Help\" onClick={this.toggleHelp.bind(this)}><i className=\"fa fa-book fa-lg\" aria-hidden=\"true\"></i></a>{' '}\n          <i title=\"Share\" onClick={this.share.bind(this)} className=\"fa fa-cloud-upload fa-lg\" aria-hidden=\"true\"></i>\n        </div>\n      </div>\n      <div>\n        <div className=\"gV2\">\n          <div>\n            <div className=\"editorHeader\"><span className=\"editorHeaderTitle\">{this.state.isC ? \"C\" : \"C++\"}</span>\n              <div className=\"editorHeaderButtons\">\n                <a title=\"Build: CTRL + Shift + Return\" onClick={this.build.bind(this)}>Build <i className={\"fa fa-cog \" + (this.state.isCompiling ? \"fa-spin\" : \"\") + \" fa-lg\"} aria-hidden=\"true\"></i></a>{' '}\n                <a className={this.wasmCode ? \"\" : \"disabled-link\"} title=\"Run: CTRL + Return\" onClick={this.runHarness.bind(this)}>Run <i className=\"fa fa-play-circle fa-lg\" aria-hidden=\"true\"></i></a>\n              </div>\n            </div>\n            <EditorComponent ref={(self: any) => this.mainEditor = self} name=\"main\" mode=\"ace/mode/c_cpp\" showGutter={true} showLineNumbers={true} />\n          </div>\n          <div>\n            <div className=\"editorHeader\"><span className=\"editorHeaderTitle\">JS</span>\n              <div className=\"editorHeaderButtons\">\n\n              </div>\n            </div>\n            <EditorComponent ref={(self: any) => this.harnessEditor = self} name=\"harness\" mode=\"ace/mode/javascript\" showGutter={true} showLineNumbers={true} />\n          </div>\n        </div>\n      </div>\n      <div>\n        <div className=\"gV2\">\n          <div>\n            <div className=\"editorHeader\">\n              <select title=\"Optimization Level\" value={this.state.view} onChange={this.onViewChanged.bind(this)}>\n                <option value=\"wast\">Text Format</option>\n                <option value=\"wasm\">Code Buffer</option>\n                <option value=\"imports\">Imports Template</option>\n                <option value=\"x86\">Firefox x86</option>\n                <option value=\"x86-baseline\">Firefox x86 Baseline</option>\n              </select>\n              <div className=\"editorHeaderButtons\">\n                {/*<a title=\"Assemble\" onClick={this.assemble.bind(this)}>Assemble <i className=\"fa fa-download fa-lg\" aria-hidden=\"true\"></i></a>*/}\n                <a className={this.wasmCode ? \"\" : \"disabled-link\"} title=\"Download WebAssembly Text\" onClick={this.download.bind(this, \"wast\")}>Wat <i className=\"fa fa-download fa-lg\" aria-hidden=\"true\"></i></a>{' '}\n                <a className={this.wasmCode ? \"\" : \"disabled-link\"} title=\"Download WebAssembly Binary\" onClick={this.download.bind(this, \"wasm\")}>Wasm <i className=\"fa fa-download fa-lg\" aria-hidden=\"true\"></i></a>\n              </div>\n            </div>\n            <EditorComponent ref={(self: any) => this.viewEditor = self} name=\"view\" save={false} readOnly={true} fontSize={10} />\n          </div>\n          <div>\n            <div className=\"editorHeader\"><span className=\"editorHeaderTitle\">Output</span>\n              <div className=\"editorHeaderButtons\">\n                <a title=\"Toggle Canvas\" onClick={this.toggleCanvas.bind(this)}>Canvas <i className=\"fa fa-picture-o fa-lg\" aria-hidden=\"true\"></i></a>{' '}\n                <a title=\"Clear Output: CTRL + Shift + K\" onClick={this.clear.bind(this)}>Clear <i className=\"fa fa-close fa-lg\" aria-hidden=\"true\"></i></a>\n              </div>\n            </div>\n            <EditorComponent ref={(self: any) => this.outputEditor = self} name=\"output\" save={false} readOnly={true} fontSize={10} />\n          </div>\n        </div>\n      </div>\n    </div>\n  }\n}"
  },
  {
    "path": "src/State.tsx",
    "content": "declare var WebAssembly: any;\n\nimport { EditorComponent } from \"./components/Editor\";\nimport { AppComponent } from \"./App\";\nimport { lib } from \"./lib\";\nimport { WasmFiddleConfig } from \"./config\";\n\nexport class State {\n  static sendServiceEvent(label: string) {\n    var evt = document.createEvent('CustomEvent');\n    evt.initCustomEvent('serviceevent', false, false,\n      { 'category': 'Service', 'action': 'send', 'label': label });\n    window.dispatchEvent(evt);\n  }\n\n  static sendAppEvent(action: string, label?: string): void {\n    var evt = document.createEvent('CustomEvent');\n    evt.initCustomEvent('serviceevent', false, false,\n      { 'category': 'App', 'action': action, 'label': label });\n    window.dispatchEvent(evt);\n  }\n\n  static sendRequest(command: string, cb: (any)) {\n    var self = this;\n    var xhr = new XMLHttpRequest();\n    xhr.addEventListener(\"load\", function () {\n      cb.call(this);\n    });\n    xhr.open(\"POST\", WasmFiddleConfig.serviceURL, true);\n    xhr.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\")\n    xhr.send(command);\n  }\n\n  static getOutput(response: string): string {\n    if (/^\\{.*\\}$/.test(response)) { // Is JSON?\n      try {\n        const obj = JSON.parse(response);\n        if (obj.success) {\n          return '';\n        } else {\n          return (!obj.tasks ? '' :\n            obj.tasks.map((t : any) => '===== ' + t.name + '\\n' + t.console)\n            .join('\\n') + '\\n') + 'ERROR: ' + obj.message;\n        }\n      } catch (e) {\n        // Ignore invalid JSON\n      }\n      // Fall through\n    }\n    if (response.indexOf(\"(module\") !== 0 &&\n        response.indexOf(\"AGFzbQE\") !== 0) {\n      return response;\n    } else {\n      return '';\n    }\n  }\n\n  static getAnnotations(response: string) {\n    var output = State.getOutput(response);\n    // Parse and annotate errors if compilation fails.\n    var annotations: any[] = [];\n    if (!output) {\n      return annotations;\n    }\n    var re = /^.*?:(\\d+?):(\\d+?):(.*)$/gm;\n    var m: any;\n    while ((m = re.exec(output)) !== null) {\n      if (m.index === re.lastIndex) {\n        re.lastIndex++;\n      }\n      var line = parseInt(m[1]) - 1;\n      var column = parseInt(m[2]) - 1;\n      var message = m[3];\n      annotations.push({\n        row: line,\n        column: column,\n        text: message,\n        type: message.indexOf(\"error\") >= 0 ? \"error\" : \"warning\" // also warning and information\n      });\n    }\n    return annotations;\n  }\n\n  static getResultBinary(response: string): Uint8Array {\n    if (/^\\{.*\\}$/.test(response)) { // Is JSON?\n      try {\n        const obj = JSON.parse(response);\n        if (!obj.success) {\n          return null;\n        }\n        response = obj.output;\n      } catch (e) {\n        // Ignore invalid JSON\n      }\n      // Fall through\n    }\n    var buffer = atob(response);\n    var data = new Uint8Array(buffer.length);\n    for (var i = 0; i < buffer.length; i++) {\n      data[i] = buffer.charCodeAt(i);\n    }\n    return data;\n  }\n\n  static fiddleURI: string = \"\";\n  static app: AppComponent;\n}"
  },
  {
    "path": "src/components/CompilerOptions.tsx",
    "content": "import * as React from \"react\";\n\ninterface CompilerOptionsComponentState {\n  dialect: string;\n  optimizationLevel: string;\n  compilerVersion: number;\n}\n\nexport class CompilerOptionsComponent extends React.Component<{\n  options?: string;\n  compilerVersion?: number;\n  onChange?: (options: string, version: number) => void\n}, CompilerOptionsComponentState> {\n  constructor(props: any) {\n    super(props);\n    this.state = {\n      dialect: \"-std=C99\",\n      optimizationLevel: \"-O3\",\n      compilerVersion: 1\n    } as any;\n  }\n\n  dialects = [\"-std=C89\", \"-std=C99\", \"-std=C++98\", \"-std=C++11\", \"-std=C++14\", \"-std=C++1z\"];\n  optimizationLevels = [\"-O0\", \"-O1\", \"-O2\", \"-O3\", \"-O4\", \"-Os\"];\n\n  componentDidMount() {\n    if (this.props.options) {\n      this.loadState(this.props.options, this.props.compilerVersion || 1);\n    }\n  }\n  componentWillReceiveProps(props: any) {\n    if (props.options) {\n      this.loadState(props.options, props.compilerVersion);\n    }\n  }\n  optimizationLevelChanged(e: any) {\n    this.setState({ optimizationLevel: e.target.value } as any, () => {\n      this.onChange();\n    });\n  }\n  newCompilerChanged(e: any) {\n    this.setState({ compilerVersion: e.target.checked ? 2 : 1 } as any, () => {\n      this.onChange();\n    })\n  }\n\n  dialectChanged(e: any) {\n    this.setState({ dialect: e.target.value } as any, () => {\n      this.onChange();\n    });\n  }\n\n  loadState(options: string, compilerVersion: number) {\n    let s: CompilerOptionsComponentState = {} as any;\n    options.split(\" \").forEach(o => {\n      if (o.indexOf(\"-O\") == 0) {\n        s.optimizationLevel = o;\n      } else if (o.indexOf(\"-std=\") == 0) {\n        s.dialect = o;\n      }\n    });\n    s.compilerVersion = compilerVersion;\n    this.setState(s);\n  }\n\n  saveState() {\n    return [this.state.optimizationLevel, this.state.dialect].join(\" \");\n  }\n\n  onChange() {\n    if (this.props.onChange) {\n      this.props.onChange(this.saveState(), this.state.compilerVersion);\n    }\n  }\n\n  render() {\n    return <div>\n      <span>\n        <select title=\"Optimization Level\" value={this.state.optimizationLevel} onChange={this.optimizationLevelChanged.bind(this)}>\n          {this.optimizationLevels.map(x => <option key={x}>{x}</option>)}\n        </select>{' '}\n        <select title=\"Dialect\" value={this.state.dialect} onChange={this.dialectChanged.bind(this)}>\n          {this.dialects.map(x => <option key={x}>{x}</option>)}\n        </select>\n      </span><br />\n      <span>\n        <label>\n          New compiler:\n          <input type=\"checkbox\" checked={this.state.compilerVersion == 2} onChange={this.newCompilerChanged.bind(this)} />\n        </label>\n      </span>\n    </div>\n  }\n}"
  },
  {
    "path": "src/components/Editor.tsx",
    "content": "import * as React from \"react\";\nimport { State } from \"../State\";\nimport { AsyncEvent } from 'ts-events';\n\ndeclare var monaco: any;\ndeclare var require: any;\ndeclare var ace: any;\n\nexport class EditorComponent extends React.Component<{\n  save?: boolean;\n  readOnly?: boolean;\n  name: string;\n  mode?: string;\n  action?: string;\n  showGutter?: boolean;\n  showLineNumbers?: boolean;\n  fontSize?: number;\n  style?: any;\n}, any> {\n  container: HTMLDivElement;\n  public editor: any;\n  public static defaultProps = {\n    // source: \"\",\n    mode: \"\",\n    action: \"\",\n    save: true,\n    readOnly: false,\n    showGutter: false,\n    showLineNumbers: false,\n    fontSize: 12,\n    style: null as any\n  };\n  componentDidMount() {\n    let editor = this.editor = ace.edit(this.container);\n    var theme = true ? \"ace/theme/monokai\" : \"ace/theme/github\";\n    // editor.setValue(this.props.source, -1);\n    editor.setReadOnly(this.props.readOnly);\n    editor.setTheme(theme);\n    editor.setFontSize(this.props.fontSize);\n    editor.getSession().setUseSoftTabs(true);\n    editor.getSession().setTabSize(2);\n    editor.setShowPrintMargin(false);\n    editor.setOptions({\n      wrap: true,\n      enableBasicAutocompletion: true,\n      // enableSnippets: true,\n      // enableLiveAutocompletion: true,\n      showLineNumbers: this.props.showLineNumbers,\n      showGutter: this.props.showGutter\n    });\n    editor.$blockScrolling = Infinity;\n    editor.renderer.setScrollMargin(10, 10);\n    editor.getSession().setMode(this.props.mode);\n    let action = this.props.action;\n    let self = this;\n    editor.commands.addCommands(\n      [{\n        bindKey: { win: \"Ctrl-S\", mac: \"Command-S\" }, exec: function () {\n          State.app.share();\n        }\n      },\n      {\n        bindKey: { win: \"Ctrl-Shift-Return\", mac: \"Ctrl-Shift-Return\" }, exec: function () {\n          State.app.build();\n        }\n      },\n      {\n        bindKey: { win: \"Ctrl-Shift-K\", mac: \"Ctrl-Shift-K\" }, exec: function () {\n          State.app.clear();\n        }\n      },\n      {\n        bindKey: { win: \"Ctrl-Return\", mac: \"Ctrl-Return\" }, exec: function () {\n          State.app.runHarness();\n        }\n      }\n      ]\n    );\n  }\n  onChange() {\n\n  }\n  render(): any {\n    return <div style={this.props.style} ref={(self: any) => this.container = self} className=\"editorBody\" />\n  }\n}"
  },
  {
    "path": "src/config.ts",
    "content": "export const WasmFiddleConfig = {\n  version: \"2.2\",\n  serviceURL: \"//wasmexplorer-service.herokuapp.com/service.php\",\n};\n"
  },
  {
    "path": "src/iframesandbox.ts",
    "content": "declare var Promise: any;\n\nexport class IFrameSandbox {\n  private _iframe: Element;\n\n  public onerror: (e: any) => void;\n  public call: Function;\n\n  public constructor(...args: any[]) {\n    var body = args.pop();\n    var iframe = document.createElement('iframe');\n    iframe.className = 'hidden';\n    const BodyAtLine: number = 6;\n    iframe.src = URL.createObjectURL(new Blob([`<!DOCTYPE html>\n  <html>\n  <head><meta charset='utf-8'></head>\n  <body>\n    <script>\n  function run() {\n  ${body}\n  }\n  frameElement.onready();\n    </script>\n  </body></html>`], {type: 'text/html'}));\n    document.body.appendChild(iframe);\n    this._iframe = iframe;\n    var onerror = (e: any, url: string, line: number) => {\n      if (line)\n        this.onerror(`line ${line - BodyAtLine}: ${e}`);\n      else\n        this.onerror(e);\n    };\n    var ready = new Promise((resolve: (w: any)=>void) => {\n      var iframe_: any = iframe;\n      iframe_.onready = () => {\n        resolve(iframe.contentWindow);\n      };\n    });\n\n    this.call = function(...values: any[]) {\n      ready.then((w: any) => {\n        w.onerror = onerror;\n        for (var i = 0; i < values.length; i++)\n          w[args[i]] = values[i];\n        w.setTimeout(w.run, 4);\n      });\n    };\n  }\n\n  public destroy() {\n    this._iframe.remove();\n  }\n}"
  },
  {
    "path": "src/index.tsx",
    "content": "import * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\n\nimport { AppComponent } from \"./App\"\n\n\nif ('WebAssembly' in window) {\n  ReactDOM.render(\n    <AppComponent />,\n    document.getElementById(\"app\")\n  );\n} else {\n  ReactDOM.render(\n    <div className=\"notSupported\">\n      WebAssembly is not yet available in your browser. Please use the latest version of Firefox or Chrome.\n    </div>,\n    document.getElementById(\"app\")\n  );\n}"
  },
  {
    "path": "src/lib.ts",
    "content": "declare var UTF8Decoder: any;\n\nfunction UTF8ArrayToString(u8Array: Uint8Array, idx: number) {\n  var endPtr = idx;\n  while (u8Array[endPtr])++endPtr;\n  if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) {\n    return UTF8Decoder.decode(u8Array.subarray(idx, endPtr))\n  } else {\n    var u0 = 0, u1 = 0, u2 = 0, u3 = 0, u4 = 0, u5 = 0;\n    var str = \"\";\n    while (1) {\n      u0 = u8Array[idx++];\n      if (!u0) return str;\n      if (!(u0 & 128)) {\n        str += String.fromCharCode(u0);\n        continue\n      }\n      u1 = u8Array[idx++] & 63;\n      if ((u0 & 224) == 192) {\n        str += String.fromCharCode((u0 & 31) << 6 | u1);\n        continue\n      }\n      u2 = u8Array[idx++] & 63;\n      if ((u0 & 240) == 224) {\n        u0 = (u0 & 15) << 12 | u1 << 6 | u2\n      } else {\n        u3 = u8Array[idx++] & 63;\n        if ((u0 & 248) == 240) {\n          u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | u3\n        } else {\n          u4 = u8Array[idx++] & 63;\n          if ((u0 & 252) == 248) {\n            u0 = (u0 & 3) << 24 | u1 << 18 | u2 << 12 | u3 << 6 | u4\n          } else {\n            u5 = u8Array[idx++] & 63;\n            u0 = (u0 & 1) << 30 | u1 << 24 | u2 << 18 | u3 << 12 | u4 << 6 | u5\n          }\n        }\n      }\n      if (u0 < 65536) {\n        str += String.fromCharCode(u0)\n      } else {\n        var ch = u0 - 65536;\n        str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023)\n      }\n    }\n  }\n}\n\nfunction setStackPtr(memory: (Uint8Array|ArrayBuffer), ptr: number): void {\n  var buffer : ArrayBuffer = (<any>memory).buffer || memory;\n  new Int32Array(buffer)[1] = ptr;\n}\n\nfunction dumpMemory(memory: (Uint8Array|ArrayBuffer), ptr: number, len: number): void {\n  let m = new Uint8Array((<any>memory).buffer || memory);\n  function padAddress(s: string) {\n    while (s.length < 8) s = \"0\" + s;\n    return s;\n  }\n  function padByte(s: string) {\n    while (s.length < 2) s = \"0\" + s;\n    return s;\n  }\n  function ascii(i: number) {\n    if (i < 32) {\n      return \".\";\n    }\n    return String.fromCharCode(i);\n  }\n  let str = \"\";\n  for (let i = ptr; i < ptr + len; i += 16) {\n    str += padAddress(i.toString(16).toUpperCase());\n    str += \" \";\n    for (let j = i; j < i + 16; j++) {\n      str += padByte(m[j].toString(16).toUpperCase());\n    }\n    str += \" \";\n    for (let j = i; j < i + 16; j++) {\n      str += ascii(m[j]);\n    }\n    str += \"\\n\";\n  }\n  lib.log(str);\n}\n\n\nexport let lib = {\n  log: null as any,\n  showCanvas: null as any,\n  currentInstance: null as any,\n  syscall: null as any,\n  UTF8ArrayToString: UTF8ArrayToString,\n  setStackPtr: setStackPtr,\n  dumpMemory: dumpMemory\n};\n"
  },
  {
    "path": "src/syscall.ts",
    "content": "interface MemoryState {\n    object: any,\n    currentPosition: number,\n}\n\nlet memoryStates: WeakMap<any, MemoryState> = new WeakMap();\n\nexport function syscall(wasmInstance: any, n: number, ...args: any[]) {\n    switch (n) {\n        default:\n          console.error(\"NYI syscall\", arguments);\n          throw new Error(\"NYI syscall\");    \n    \n        case /*brk*/ 45:\n          return 0;\n        case /*mmap2*/ 192:\n          const memory = wasmInstance.exports.memory;\n          let memoryState = memoryStates.get(wasmInstance);\n          const requested = args[1];\n          if (!memoryState) {\n                memoryState = {\n                    object: memory,\n                    currentPosition: memory.buffer.byteLength,\n                };\n                memoryStates.set(wasmInstance, memoryState);\n          }\n          let cur = memoryState.currentPosition;\n          if (cur + requested > memory.buffer.byteLength) {\n            const need = Math.ceil((cur + requested - memory.buffer.byteLength) / 65536);\n            memory.grow(need);\n          }\n          memoryState.currentPosition += requested;\n          return cur;\n    }    \n}"
  },
  {
    "path": "tsconfig.json",
    "content": "{\n    \"compilerOptions\": {\n        \"outDir\": \"./dist/\",\n        \"sourceMap\": true,\n        \"noImplicitAny\": true,\n        \"module\": \"commonjs\",\n        \"target\": \"es6\",\n        \"jsx\": \"react\",\n        \"baseUrl\": \"src\",\n        \"moduleResolution\": \"node\",\n        \"noImplicitAny\": true,\n        \"sourceMap\": true\n    },\n    \"exclude\": [\n        \"node_modules\"\n    ]\n}"
  }
]